ZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzN2E4MTIKLS0tIC9kZXYvbnVsbAorKysgYi8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsNiBAQAorZG9jCitjbGFzc2VzCisuY2xhc3NwYXRoCisuZXh0ZXJuYWxUb29sQnVpbGRlcnMKKy5wcm9qZWN0CisuY2xvdmVyCmRpZmYgLS1naXQgYS8uZ2l0YXR0cmlidXRlcyBiLy5naXRhdHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlODFlZmUKLS0tIC9kZXYvbnVsbAorKysgYi8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsxLDExOCBAQAorKiB0ZXh0PWF1dG8gIWVvbAorCisqLmMgdGV4dCAhZW9sCisqLmNjIHRleHQgIWVvbAorKi5jbGFzc3BhdGggdGV4dCAhZW9sCisqLmNwcCB0ZXh0ICFlb2wKKyouY3NzIHRleHQgIWVvbAorKi5kc3AgdGV4dCAhZW9sCisqLmRzdyB0ZXh0ICFlb2wKKyouZmlsdGVycyB0ZXh0ICFlb2wKKyouaCB0ZXh0ICFlb2wKKyouaHRtIHRleHQgIWVvbAorKi5odG1sIHRleHQgIWVvbAorKi5pbiB0ZXh0ICFlb2wKKyouamF2YSB0ZXh0ICFlb2wKKyoubGF1bmNoIHRleHQgIWVvbAorKi5tYWsgdGV4dCAhZW9sCisqLm1kIHRleHQgIWVvbAorKi5NRiB0ZXh0ICFlb2wKKyoubWsgdGV4dCAhZW9sCisqLnBsIHRleHQgIWVvbAorKi5wbSB0ZXh0ICFlb2wKKyoucHJvamVjdCB0ZXh0ICFlb2wKKyoucHJvcGVydGllcyB0ZXh0ICFlb2wKKyoucHkgdGV4dCAhZW9sCisqLnJjIHRleHQgIWVvbAorKi5zaCB0ZXh0IGVvbD1sZgorKi5zbG4gdGV4dCAhZW9sCisqLnN0dWIgdGV4dCAhZW9sCisqLnR4dCB0ZXh0ICFlb2wKKyoudWNtIHRleHQgIWVvbAorKi52Y3Byb2ogdGV4dCAhZW9sCisqLnZjeHByb2ogdGV4dCAhZW9sCisqLnhtbCB0ZXh0ICFlb2wKKyoueHNsIHRleHQgIWVvbAorKi54c2x0IHRleHQgIWVvbAorTWFrZWZpbGUgdGV4dCAhZW9sCitjb25maWd1cmUgdGV4dCAhZW9sCitMSUNFTlNFIHRleHQgIWVvbAorUkVBRE1FIHRleHQgIWVvbAorCisqLmJpbiAtdGV4dAorKi5icmsgLXRleHQKKyouY252IC10ZXh0CisqLmljdSAtdGV4dAorKi5yZXMgLXRleHQKKyoubnJtIC10ZXh0CisqLnNwcCAtdGV4dAorKi50cmkyIC10ZXh0CisKKy9lZS5mb3VuZGF0aW9uLmphciAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyIC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfS29yZWFuLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0xhdGluLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1J1c3NpYW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNILnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TUi50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TaW1wbGlmaWVkX0NoaW5lc2UudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGoyOC5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMyLmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNC5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDIuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0My5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrIC10ZXh0CitzcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkIC10ZXh0CitzcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkIC10ZXh0CisKKyMgVGhlIGZvbGxvd2luZyBmaWxlIHR5cGVzIGFyZSBzdG9yZWQgaW4gR2l0LUxGUy4KKyouamFyIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLmRhdCBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi56aXAgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZ3ogZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouYnoyIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLmdpZiBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTU5YTI5Ci0tLSAvZGV2L251bGwKKysrIGIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDYgQEAKKy8uY2xhc3NwYXRoCisvLmNsb3ZlcgorLy5leHRlcm5hbFRvb2xCdWlsZGVycworLy5wcm9qZWN0CisvY2xhc3NlcworL2RvYwpkaWZmIC0tZ2l0IGEvQVBJQ2hhbmdlUmVwb3J0Lmh0bWwgYi9BUElDaGFuZ2VSZXBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjIyMDUwCi0tLSAvZGV2L251bGwKKysrIGIvQVBJQ2hhbmdlUmVwb3J0Lmh0bWwKQEAgLTAsMCArMSw2MzIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5JQ1U0SiBBUEkgQ29tcGFyaXNvbjogSUNVNEogMy40IHdpdGggSUNVNEogMy42PC90aXRsZT4KKzwhLS0gQ29weXJpZ2h0IDIwMDYsIElCTSwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gLS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5JQ1U0SiBBUEkgQ29tcGFyaXNvbjogSUNVNEogMy40IHdpdGggSUNVNEogMy42PC9oMT4KKworPGhyLz4KKzxoMj5SZW1vdmVkIGZyb20gSUNVNEogMy40PC9oMj4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudXRpbDwvaDM+Cis8dWw+CitVUmVzb3VyY2VCdW5kbGUKKzx1bD4KKzxsaT4oZHJhZnQpICAgICAgcHJvdGVjdGVkIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgPGk+aW5zdGFudGlhdGVJQ1VSZXNvdXJjZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkNsYXNzTG9hZGVyKTwvbGk+Cis8L3VsPgorPC91bD4KKworCis8aHIvPgorPGgyPldpdGhkcmF3biwgRGVwcmVjYXRlZCwgb3IgT2Jzb2xldGVkIGluIElDVTRKIDMuNjwvaDI+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc8L2gzPgorPHVsPgorVUNoYXJhY3RlcgorPHVsPgorPGxpPihkZXByZWNhdGVkKSBwdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNKYXZhTGV0dGVyPC9pPihpbnQpPC9saT4KKzxsaT4oZGVwcmVjYXRlZCkgcHVibGljIHN0YXRpYyBib29sZWFuIDxpPmlzSmF2YUxldHRlck9yRGlnaXQ8L2k+KGludCk8L2xpPgorPGxpPihkZXByZWNhdGVkKSBwdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNTcGFjZTwvaT4oaW50KTwvbGk+Cis8L3VsPgorPC91bD4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudGV4dDwvaDM+Cis8dWw+CitOdW1iZXJGb3JtYXQKKzx1bD4KKzxsaT4oZGVwcmVjYXRlZCkgcHJvdGVjdGVkIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFBhdHRlcm48L2k+KGphdmEudXRpbC5Mb2NhbGUsIGludCk8L2xpPgorPC91bD4KK1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIDxpPmdldEluc3RhbmNlRnJvbUNvbXBpbGVkUnVsZXM8L2k+KGphdmEuaW8uSW5wdXRTdHJlYW0pPC9saT4KKzwvdWw+Cis8L3VsPgorCisKKzxoci8+Cis8aDI+Q2hhbmdlZCBpbiBJQ1U0SiAzLjYgKG9sZCwgbmV3KTwvaDI+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ8L2gzPgorPHVsPgorPGxpPiAgICAoc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2k+IGV4dGVuZHMgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZDwvYnI+Cisoc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2k+IGV4dGVuZHMgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yPC9saT4KKzxsaT4gICAgKHN0YWJsZSkgICAgIHB1YmxpYyBjbGFzcyA8aT5Vbmljb2RlU2V0PC9pPiBleHRlbmRzIGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZUZpbHRlcjwvYnI+Cisoc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPlVuaWNvZGVTZXQ8L2k+IGV4dGVuZHMgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlRmlsdGVyIGltcGxlbWVudHMgY29tLmlibS5pY3UudXRpbC5GcmVlemFibGU8L2xpPgorPC91bD4KKworCis8aHIvPgorPGgyPlByb21vdGVkIHRvIHN0YWJsZSBpbiBJQ1U0SiAzLjY8L2gyPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS5sYW5nPC9oMz4KKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGNsYXNzIDxpPlVDaGFyYWN0ZXJFbnVtczwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSA8aT5VQ2hhcmFjdGVyRW51bXMuRUNoYXJhY3RlckNhdGVnb3J5PC9pPjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIDxpPlVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyRGlyZWN0aW9uPC9pPjwvbGk+CitVQ2hhcmFjdGVyCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9DT0RFX1BPSU5UPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9ISUdIX1NVUlJPR0FURTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNQVhfTE9XX1NVUlJPR0FURTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNQVhfU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0NPREVfUE9JTlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUlOX0hJR0hfU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1JTl9MT1dfU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNSU5fU1VSUk9HQVRFPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnQgPGk+Y2hhckNvdW50PC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Y29kZVBvaW50QXQ8L2k+KGNoYXJbXSwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxpPmNvZGVQb2ludEF0PC9pPihjaGFyW10sIGludCwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxpPmNvZGVQb2ludEF0PC9pPihqYXZhLmxhbmcuQ2hhclNlcXVlbmNlLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Y29kZVBvaW50QmVmb3JlPC9pPihjaGFyW10sIGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCA8aT5jb2RlUG9pbnRCZWZvcmU8L2k+KGNoYXJbXSwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+Y29kZVBvaW50QmVmb3JlPC9pPihqYXZhLmxhbmcuQ2hhclNlcXVlbmNlLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnQgPGk+Y29kZVBvaW50Q291bnQ8L2k+KGNoYXJbXSwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnQgPGk+Y29kZVBvaW50Q291bnQ8L2k+KGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgY2hhciA8aT5mb3JEaWdpdDwvaT4oaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBieXRlIDxpPmdldERpcmVjdGlvbmFsaXR5PC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIDxpPmlzSGlnaFN1cnJvZ2F0ZTwvaT4oY2hhcik8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gPGk+aXNMb3dTdXJyb2dhdGU8L2k+KGNoYXIpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIDxpPmlzU3VwcGxlbWVudGFyeUNvZGVQb2ludDwvaT4oaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiA8aT5pc1N1cnJvZ2F0ZVBhaXI8L2k+KGNoYXIsIGNoYXIpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIDxpPmlzVmFsaWRDb2RlUG9pbnQ8L2k+KGludCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGludCA8aT5vZmZzZXRCeUNvZGVQb2ludHM8L2k+KGNoYXJbXSwgaW50LCBpbnQsIGludCwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgaW50IDxpPm9mZnNldEJ5Q29kZVBvaW50czwvaT4oamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSwgaW50LCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyW10gPGk+dG9DaGFyczwvaT4oaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxpPnRvQ2hhcnM8L2k+KGludCwgY2hhcltdLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPGk+dG9Db2RlUG9pbnQ8L2k+KGNoYXIsIGNoYXIpPC9saT4KKzwvdWw+CitVQ2hhcmFjdGVyLkxpbmVCcmVhaworPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlNFUEFSQUJMRTwvbGk+Cis8L3VsPgorVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBDWVJJTExJQ19TVVBQTEVNRU5UPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUNfU1VQUExFTUVOVF9JRDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgPGk+Zm9yTmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPC91bD4KK1VQcm9wZXJ0eQorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkNfSU5FUlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkNfUVVJQ0tfQ0hFQ0s8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkRfSU5FUlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkRfUVVJQ0tfQ0hFQ0s8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktDX0lORVJUPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZLQ19RVUlDS19DSEVDSzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0RfSU5FUlQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktEX1FVSUNLX0NIRUNLPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VHTUVOVF9TVEFSVEVSPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU19URVJNPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBUklBVElPTl9TRUxFQ1RPUjwvbGk+Cis8L3VsPgorVVNjcmlwdAorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVRBS0FOQV9PUl9ISVJBR0FOQTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50W10gPGk+Z2V0Q29kZTwvaT4oVUxvY2FsZSk8L2xpPgorPC91bD4KKzwvdWw+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ8L2gzPgorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgPGk+TWVhc3VyZUZvcm1hdDwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+TWVzc2FnZUZvcm1hdDwvaT48L2xpPgorQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHByb3RlY3RlZCB2b2lkIDxpPmluaXRpYWxpemVEYXRhPC9pPihVTG9jYWxlLCBDYWxlbmRhckRhdGEpPC9saT4KKzwvdWw+CitDb2xsYXRvcgorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGVbXSA8aT5nZXRBdmFpbGFibGVVTG9jYWxlczwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSA8aT5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudDwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgPGk+Z2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUsIGJvb2xlYW5bXSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIDxpPmdldEluc3RhbmNlPC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZ1tdIDxpPmdldEtleXdvcmRWYWx1ZXM8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nW10gPGk+Z2V0S2V5d29yZHM8L2k+KCk8L2xpPgorPC91bD4KK0RhdGVGb3JtYXQKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9XX0xPQ0FMX0ZJRUxEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERURfWUVBUl9GSUVMRDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZJRUxEX0NPVU5UPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQ8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVUxJQU5fREFZX0ZJRUxEPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTRUNPTkRTX0lOX0RBWV9GSUVMRDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJTUVaT05FX1JGQ19GSUVMRDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFQVJfV09ZX0ZJRUxEPC9saT4KKzwvdWw+CitEYXRlRm9ybWF0U3ltYm9scworPHVsPgorPGxpPihzdGFibGUpICAgICBwcm90ZWN0ZWQgdm9pZCA8aT5pbml0aWFsaXplRGF0YTwvaT4oVUxvY2FsZSwgQ2FsZW5kYXJEYXRhKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHByb3RlY3RlZCB2b2lkIDxpPmluaXRpYWxpemVEYXRhPC9pPihVTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8L3VsPgorRGVjaW1hbEZvcm1hdAorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYm9vbGVhbiA8aT5hcmVTaWduaWZpY2FudERpZ2l0c1VzZWQ8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgaW50IDxpPmdldE1heGltdW1TaWduaWZpY2FudERpZ2l0czwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBpbnQgPGk+Z2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHZvaWQgPGk+c2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzPC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHZvaWQgPGk+c2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzPC9pPihpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHZvaWQgPGk+c2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkPC9pPihib29sZWFuKTwvbGk+Cis8L3VsPgorRGVjaW1hbEZvcm1hdFN5bWJvbHMKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGNoYXIgPGk+Z2V0U2lnbmlmaWNhbnREaWdpdDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyB2b2lkIDxpPnNldFNpZ25pZmljYW50RGlnaXQ8L2k+KGNoYXIpPC9saT4KKzwvdWw+CitOdW1iZXJGb3JtYXQKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPGk+Zm9ybWF0PC9pPihDdXJyZW5jeUFtb3VudCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciA8aT5mb3JtYXQ8L2k+KEN1cnJlbmN5QW1vdW50LCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbik8L2xpPgorPC91bD4KK1J1bGVCYXNlZE51bWJlckZvcm1hdAorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREZWZhdWx0UnVsZVNldE5hbWU8L2k+KCk8L2xpPgorPC91bD4KK1RyYW5zbGl0ZXJhdG9yCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvcltdIDxpPmdldEVsZW1lbnRzPC9pPigpPC9saT4KKzwvdWw+CitVVEYxNgorPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgPGk+YXBwZW5kQ29kZVBvaW50PC9pPihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBpbnQpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPm5ld1N0cmluZzwvaT4oaW50W10sIGludCwgaW50KTwvbGk+Cis8L3VsPgorPC91bD4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudXRpbDwvaDM+Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBjbGFzcyA8aT5DdXJyZW5jeUFtb3VudDwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgPGk+TWVhc3VyZTwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgPGk+TWVhc3VyZVVuaXQ8L2k+PC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGFic3RyYWN0IGNsYXNzIDxpPlVSZXNvdXJjZUJ1bmRsZTwvaT48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgY2xhc3MgPGk+VVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uPC9pPjwvbGk+CitMb2NhbGVEYXRhCis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCA8aT5nZXRFeGVtcGxhclNldDwvaT4oVUxvY2FsZSwgaW50KTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlRGF0YS5NZWFzdXJlbWVudFN5c3RlbSA8aT5nZXRNZWFzdXJlbWVudFN5c3RlbTwvaT4oVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIExvY2FsZURhdGEuUGFwZXJTaXplIDxpPmdldFBhcGVyU2l6ZTwvaT4oVUxvY2FsZSk8L2xpPgorPC91bD4KK1VMb2NhbGUKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDQU5BREFfRlJFTkNIPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5BPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5FU0U8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRU5HTElTSDwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkFOQ0U8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRlJFTkNIPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTjwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBHRVJNQU5ZPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIElUQUxJQU48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTFk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU48L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU5FU0U8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUE8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUFOPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFBSQzwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBTSU1QTElGSUVEX0NISU5FU0U8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVEFJV0FOPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFRSQURJVElPTkFMX0NISU5FU0U8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVUs8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVVM8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgPGk+VUxvY2FsZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgPGk+VUxvY2FsZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Y2Fub25pY2FsaXplPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxpPmNsb25lPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIDxpPmNyZWF0ZUNhbm9uaWNhbDwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgYm9vbGVhbiA8aT5lcXVhbHM8L2k+KGphdmEubGFuZy5PYmplY3QpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIDxpPmZvckxvY2FsZTwvaT4oamF2YS51dGlsLkxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSA8aT5nZXRBdmFpbGFibGVMb2NhbGVzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0QmFzZU5hbWU8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0QmFzZU5hbWU8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0Q291bnRyeTwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRDb3VudHJ5PC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlDb3VudHJ5PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUNvdW50cnk8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlDb3VudHJ5PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5Q291bnRyeTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUtleXdvcmQ8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5S2V5d29yZDwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5S2V5d29yZFZhbHVlPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUxhbmd1YWdlPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheUxhbmd1YWdlPC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlMYW5ndWFnZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TmFtZTwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlOYW1lPC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5TmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheU5hbWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVNjcmlwdDwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlTY3JpcHQ8L2k+KFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlTY3JpcHQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlTY3JpcHQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVZhcmlhbnQ8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXREaXNwbGF5VmFyaWFudDwvaT4oVUxvY2FsZSk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RGlzcGxheVZhcmlhbnQ8L2k+KGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldERpc3BsYXlWYXJpYW50PC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBVTG9jYWxlIDxpPmdldEZhbGxiYWNrPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldEZhbGxiYWNrPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldElTTzNDb3VudHJ5PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldElTTzNDb3VudHJ5PC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldElTTzNMYW5ndWFnZTwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRJU08zTGFuZ3VhZ2U8L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nW10gPGk+Z2V0SVNPQ291bnRyaWVzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nW10gPGk+Z2V0SVNPTGFuZ3VhZ2VzPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0S2V5d29yZFZhbHVlPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRLZXl3b3JkVmFsdWU8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGphdmEudXRpbC5JdGVyYXRvciA8aT5nZXRLZXl3b3JkczwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkl0ZXJhdG9yIDxpPmdldEtleXdvcmRzPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldExhbmd1YWdlPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldExhbmd1YWdlPC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldE5hbWU8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0TmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRTY3JpcHQ8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0U2NyaXB0PC9pPihqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFZhcmlhbnQ8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VmFyaWFudDwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgaW50IDxpPmhhc2hDb2RlPC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCA8aT5zZXREZWZhdWx0PC9pPihVTG9jYWxlKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBVTG9jYWxlIDxpPnNldEtleXdvcmRWYWx1ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+c2V0S2V5d29yZFZhbHVlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPnRvU3RyaW5nPC9pPigpPC9saT4KKzwvdWw+Cis8L3VsPgorCisKKzxoci8+Cis8aDI+QWRkZWQgaW4gSUNVNEogMy42PC9oMj4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UubGFuZzwvaDM+Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBmaW5hbCBjbGFzcyA8aT5VU2NyaXB0UnVuPC9pPjwvbGk+CitVQ2hhcmFjdGVyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXROYW1lPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRTdHJpbmdQcm9wZXJ0eVZhbHVlPC9pPihpbnQsIGludCwgaW50KTwvbGk+Cis8L3VsPgorVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sKKzx1bD4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBCQUxJTkVTRTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBTElORVNFX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBDT1VOVElOR19ST0RfTlVNRVJBTFM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVElOR19ST0RfTlVNRVJBTFNfSUQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIENVTkVJRk9STTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENVTkVJRk9STV9JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgQ1VORUlGT1JNX05VTUJFUlNfQU5EX1BVTkNUVUFUSU9OPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VORUlGT1JNX05VTUJFUlNfQU5EX1BVTkNUVUFUSU9OX0lEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9DPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfQ19JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0VYVEVOREVEX0RfSUQ8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIE5LTzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5LT19JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgUEhBR1NfUEE8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSEFHU19QQV9JRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgUEhPRU5JQ0lBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIT0VOSUNJQU5fSUQ8L2xpPgorPC91bD4KK1VTY3JpcHQKKzx1bD4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFMSU5FU0U8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVRBSzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMSVNTWU1CT0xTPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJBSE1JPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hBTTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENJUlRIPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VORUlGT1JNPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVNT1RJQ19FR1lQVElBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVBU1RFUk5fU1lSSUFDPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUdZUFRJQU5fSElFUk9HTFlQSFM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFU1RSQU5HRUxPX1NZUklBQzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBUkFQUEFOX0lORFVTPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElFUkFUSUNfRUdZUFRJQU48L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQVZBTkVTRTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBWUFIX0xJPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hVVFNVUkk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl9GUkFLVFVSPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fR0FFTElDPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVQQ0hBPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0E8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQU5EQUVBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWUFOX0hJRVJPR0xZUEhTPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVST0lUSUM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOS088L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfQ0hVUkNIX1NMQVZPTklDX0NZUklMTElDPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX0hVTkdBUklBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9QRVJNSUM8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUktIT048L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUhBV0hfSE1PTkc8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSEFHU19QQTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIT0VOSUNJQU48L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9ORVRJQ19QT0xMQVJEPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9OR09ST05HTzwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNBUkFUSTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTVBMSUZJRURfSEFOPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVOR1dBUjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQURJVElPTkFMX0hBTjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOS05PV048L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTldSSVRURU5fTEFOR1VBR0VTPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFJPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVklTSUJMRV9TUEVFQ0g8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRVNURVJOX1NZUklBQzwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxpPmdldENvZGVGcm9tTmFtZTwvaT4oamF2YS5sYW5nLlN0cmluZyk8L2xpPgorPC91bD4KKzwvdWw+CisKKzxoMz5QYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ8L2gzPgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgY2xhc3MgPGk+QnJlYWtEaWN0aW9uYXJ5PC9pPjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBjbGFzcyA8aT5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3I8L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBjbGFzcyA8aT5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuRm9ybWF0UGFyc2VyPC9pPjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgPGk+RGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLlBhdHRlcm5JbmZvPC9pPjwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgY2xhc3MgPGk+RGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLlZhcmlhYmxlRmllbGQ8L2k+PC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBjbGFzcyA8aT5OdW1iZXJGb3JtYXQuRmllbGQ8L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGNsYXNzIDxpPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9pPjwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgPGk+VW5pY29kZVNldC5YU3ltYm9sVGFibGU8L2k+PC9saT4KK0FyYWJpY1NoYXBpbmdFeGNlcHRpb24KKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIDxpPkFyYWJpY1NoYXBpbmdFeGNlcHRpb248L2k+KGphdmEubGFuZy5TdHJpbmcpPC9saT4KKzwvdWw+CitCcmVha0l0ZXJhdG9yCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciA8aT5nZXRCcmVha0luc3RhbmNlPC9pPihVTG9jYWxlLCBpbnQpPC9saT4KKzwvdWw+CitDYW5vbmljYWxJdGVyYXRvcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIHZvaWQgPGk+cGVybXV0ZTwvaT4oamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgamF2YS51dGlsLlNldCk8L2xpPgorPC91bD4KK0NoaW5lc2VEYXRlRm9ybWF0Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCB2b2lkIDxpPnN1YkZvcm1hdDwvaT4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgY2hhciwgaW50LCBpbnQsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uLCBDYWxlbmRhcik8L2xpPgorPC91bD4KK0RhdGVGb3JtYXQKKzx1bD4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVBUlRFUl9GSUVMRDwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQUxPTkVfUVVBUlRFUl9GSUVMRDwvbGk+Cis8L3VsPgorRGF0ZUZvcm1hdFN5bWJvbHMKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRFRfQ09OVEVYVF9DT1VOVDwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERUX1dJRFRIX0NPVU5UPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8aT5nZXRRdWFydGVyczwvaT4oaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHZvaWQgPGk+c2V0RXJhTmFtZXM8L2k+KGphdmEubGFuZy5TdHJpbmdbXSk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgdm9pZCA8aT5zZXRNb250aHM8L2k+KGphdmEubGFuZy5TdHJpbmdbXSwgaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHZvaWQgPGk+c2V0UXVhcnRlcnM8L2k+KGphdmEubGFuZy5TdHJpbmdbXSwgaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHZvaWQgPGk+c2V0V2Vla2RheXM8L2k+KGphdmEubGFuZy5TdHJpbmdbXSwgaW50LCBpbnQpPC9saT4KKzwvdWw+CitEZWNpbWFsRm9ybWF0Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIDxpPmZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3I8L2k+KGphdmEubGFuZy5PYmplY3QpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIEN1cnJlbmN5IDxpPmdldEVmZmVjdGl2ZUN1cnJlbmN5PC9pPigpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIGJvb2xlYW4gPGk+aXNQYXJzZUJpZ0RlY2ltYWw8L2k+KCk8L2xpPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgdm9pZCA8aT5zZXRQYXJzZUJpZ0RlY2ltYWw8L2k+KGJvb2xlYW4pPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHZvaWQgPGk+c2V0Um91bmRpbmdJbmNyZW1lbnQ8L2k+KEJpZ0RlY2ltYWwpPC9saT4KKzwvdWw+CitEZWNpbWFsRm9ybWF0U3ltYm9scworPHVsPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgY2hhciA8aT5nZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yPC9pPigpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIHZvaWQgPGk+c2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcjwvaT4oY2hhcik8L2xpPgorPC91bD4KK0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIDxpPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2k+KGphdmEuaW8uSW5wdXRTdHJlYW0sIGphdmEuaW8uSW5wdXRTdHJlYW0pPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGludCA8aT5nZXRSdWxlU3RhdHVzPC9pPigpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGludCA8aT5nZXRSdWxlU3RhdHVzVmVjPC9pPihpbnRbXSk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgaW50IDxpPmhhbmRsZU5leHQ8L2k+KCk8L2xpPgorPC91bD4KK01lYXN1cmVGb3JtYXQKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIDxpPk1lYXN1cmVGb3JtYXQ8L2k+KCk8L2xpPgorPC91bD4KK05vcm1hbGl6ZXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBpbnQgPGk+Z2V0RkNfTkZLQ19DbG9zdXJlPC9pPihpbnQsIGNoYXJbXSk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0RkNfTkZLQ19DbG9zdXJlPC9pPihpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBib29sZWFuIDxpPmlzTkZTa2lwcGFibGU8L2k+KGludCwgTm9ybWFsaXplci5Nb2RlKTwvbGk+Cis8L3VsPgorTnVtYmVyRm9ybWF0Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBDdXJyZW5jeSA8aT5nZXRFZmZlY3RpdmVDdXJyZW5jeTwvaT4oKTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBib29sZWFuIDxpPmlzUGFyc2VTdHJpY3Q8L2k+KCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgdm9pZCA8aT5zZXRQYXJzZVN0cmljdDwvaT4oYm9vbGVhbik8L2xpPgorPC91bD4KK1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGZEZWJ1Z0VudjwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBpbnQgZkRpY3Rpb25hcnlDaGFyQ291bnQ8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgUkJCSURhdGFXcmFwcGVyIGZSRGF0YTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgYm9vbGVhbiBmVHJhY2U8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcjwvaT4oKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgdm9pZCA8aT5jaGVja09mZnNldDwvaT4oaW50LCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHZvaWQgPGk+ZHVtcDwvaT4oKTwvbGk+Cis8L3VsPgorU2ltcGxlRGF0ZUZvcm1hdAorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+U2ltcGxlRGF0ZUZvcm1hdDwvaT4oamF2YS5sYW5nLlN0cmluZywgRGF0ZUZvcm1hdFN5bWJvbHMsIFVMb2NhbGUpPC9saT4KKzxsaT4oc3RhYmxlKSAgICAgcHJvdGVjdGVkIGludCA8aT5tYXRjaFF1YXJ0ZXJTdHJpbmc8L2k+KGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50LCBqYXZhLmxhbmcuU3RyaW5nW10sIENhbGVuZGFyKTwvbGk+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyB2b2lkIDxpPnNldE51bWJlckZvcm1hdDwvaT4oTnVtYmVyRm9ybWF0KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCB2b2lkIDxpPnN1YkZvcm1hdDwvaT4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgY2hhciwgaW50LCBpbnQsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uLCBDYWxlbmRhcik8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgdm9pZCA8aT56ZXJvUGFkZGluZ051bWJlcjwvaT4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgaW50LCBpbnQsIGludCk8L2xpPgorPC91bD4KK1RyYW5zbGl0ZXJhdG9yCis8dWw+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCA8aT5yZWdpc3RlckFsaWFzPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8L3VsPgorVVRGMTYKKzx1bD4KKzxsaT4oc3RhYmxlKSAgICAgcHVibGljIHN0YXRpYyBpbnQgPGk+Y2hhckF0PC9pPihqYXZhLmxhbmcuQ2hhclNlcXVlbmNlLCBpbnQpPC9saT4KKzwvdWw+CitVbmljb2RlRmlsdGVyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCA8aT5Vbmljb2RlRmlsdGVyPC9pPigpPC9saT4KKzwvdWw+CitVbmljb2RlU2V0Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBU0U8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBJR05PUkVfU1BBQ0U8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+VW5pY29kZVNldDwvaT4oamF2YS5sYW5nLlN0cmluZywgaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIDxpPl9nZW5lcmF0ZVBhdHRlcm48L2k+KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGJvb2xlYW4sIGJvb2xlYW4pPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIFVuaWNvZGVTZXQgPGk+YXBwbHlQYXR0ZXJuPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5PYmplY3QgPGk+Y2xvbmVBc1RoYXdlZDwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBVbmljb2RlU2V0IDxpPmNsb3NlT3ZlcjwvaT4oaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxpPmZyZWV6ZTwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFJlZ2V4RXF1aXZhbGVudDwvaT4oKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBib29sZWFuIDxpPmlzRnJvemVuPC9pPigpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGludCA8aT5tYXRjaGVzQXQ8L2k+KGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCk8L2xpPgorPC91bD4KK1VuaWNvZGVTZXRJdGVyYXRvcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgaW50IGVuZEVsZW1lbnQ8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgaW50IG5leHRFbGVtZW50PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0U3RyaW5nPC9pPigpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHZvaWQgPGk+bG9hZFJhbmdlPC9pPihpbnQpPC9saT4KKzwvdWw+Cis8L3VsPgorCis8aDM+UGFja2FnZSBjb20uaWJtLmljdS51dGlsPC9oMz4KKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGZpbmFsIGNsYXNzIDxpPkNvbXBhY3RCeXRlQXJyYXk8L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGZpbmFsIGNsYXNzIDxpPkNvbXBhY3RDaGFyQXJyYXk8L2k+PC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGludGVyZmFjZSA8aT5GcmVlemFibGU8L2k+PC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGNsYXNzIDxpPkdsb2JhbGl6YXRpb25QcmVmZXJlbmNlczwvaT48L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgY2xhc3MgPGk+T3ZlcmxheUJ1bmRsZTwvaT48L2xpPgorQnVkZGhpc3RDYWxlbmRhcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitDYWxlbmRhcgorPHVsPgorPGxpPihkcmFmdCkgICAgICBwcm90ZWN0ZWQgaW50IDxpPmdldERlZmF1bHREYXlJbk1vbnRoPC9pPihpbnQsIGludCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwcm90ZWN0ZWQgaW50IDxpPmdldERlZmF1bHRNb250aEluWWVhcjwvaT4oaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0Nhc2VJbnNlbnNpdGl2ZVN0cmluZworPHVsPgorPGxpPihzdGFibGUpICAgICBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT50b1N0cmluZzwvaT4oKTwvbGk+Cis8L3VsPgorQ2hpbmVzZUNhbGVuZGFyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK0NvcHRpY0NhbGVuZGFyCis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkludGVnZXJbXSA8aT5nZXREYXRlRnJvbUpEPC9pPihpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VHlwZTwvaT4oKTwvbGk+Cis8L3VsPgorQ3VycmVuY3kKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPnBhcnNlPC9pPihVTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbik8L2xpPgorPC91bD4KK0V0aGlvcGljQ2FsZW5kYXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBqYXZhLmxhbmcuSW50ZWdlcltdIDxpPmdldERhdGVGcm9tSkQ8L2k+KGludCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitHcmVnb3JpYW5DYWxlbmRhcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitIZWJyZXdDYWxlbmRhcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8aT5nZXRUeXBlPC9pPigpPC9saT4KKzwvdWw+CitJc2xhbWljQ2FsZW5kYXIKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+Z2V0VHlwZTwvaT4oKTwvbGk+Cis8L3VsPgorSmFwYW5lc2VDYWxlbmRhcgorPHVsPgorPGxpPihkcmFmdCkgICAgICBwcm90ZWN0ZWQgaW50IDxpPmdldERlZmF1bHREYXlJbk1vbnRoPC9pPihpbnQsIGludCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwcm90ZWN0ZWQgaW50IDxpPmdldERlZmF1bHRNb250aEluWWVhcjwvaT4oaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxpPmdldFR5cGU8L2k+KCk8L2xpPgorPC91bD4KK01lYXN1cmVVbml0Cis8dWw+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCA8aT5NZWFzdXJlVW5pdDwvaT4oKTwvbGk+Cis8L3VsPgorU2ltcGxlVGltZVpvbmUKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIDxpPlNpbXBsZVRpbWVab25lPC9pPihpbnQsIGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5TaW1wbGVUaW1lWm9uZTwvaT4oamF2YS51dGlsLlNpbXBsZVRpbWVab25lLCBqYXZhLmxhbmcuU3RyaW5nKTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxpPmNsb25lPC9pPigpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGJvb2xlYW4gPGk+ZXF1YWxzPC9pPihqYXZhLmxhbmcuT2JqZWN0KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBpbnQgPGk+Z2V0T2Zmc2V0PC9pPihpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50KTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBpbnQgPGk+Z2V0T2Zmc2V0PC9pPihpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIGludCA8aT5nZXRSYXdPZmZzZXQ8L2k+KCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgYm9vbGVhbiA8aT5oYXNTYW1lUnVsZXM8L2k+KFRpbWVab25lKTwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBpbnQgPGk+aGFzaENvZGU8L2k+KCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgYm9vbGVhbiA8aT5pbkRheWxpZ2h0VGltZTwvaT4oamF2YS51dGlsLkRhdGUpPC9saT4KKzxsaT4oZHJhZnQpICAgICAgcHVibGljIGphdmEubGFuZy5TdHJpbmcgPGk+dG9TdHJpbmc8L2k+KCk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgYm9vbGVhbiA8aT51c2VEYXlsaWdodFRpbWU8L2k+KCk8L2xpPgorPC91bD4KK1N0cmluZ1Rva2VuaXplcgorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgPGk+U3RyaW5nVG9rZW5pemVyPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBVbmljb2RlU2V0LCBib29sZWFuLCBib29sZWFuKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyA8aT5TdHJpbmdUb2tlbml6ZXI8L2k+KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pPC9saT4KKzwvdWw+CitUaW1lWm9uZQorPHVsPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0RBWTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTExJU19QRVJfSE9VUjwvbGk+Cis8bGk+KGRyYWZ0KSAgICAgIHB1YmxpYyBib29sZWFuIDxpPmVxdWFsczwvaT4oamF2YS5sYW5nLk9iamVjdCk8L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgaW50IDxpPmhhc2hDb2RlPC9pPigpPC9saT4KKzwvdWw+CitVUmVzb3VyY2VCdW5kbGUKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCA8aT5hZGRUb0NhY2hlPC9pPihqYXZhLmxhbmcuQ2xhc3NMb2FkZXIsIGphdmEubGFuZy5TdHJpbmcsIFVMb2NhbGUsIFVSZXNvdXJjZUJ1bmRsZSk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSA8aT5nZXRCdW5kbGVJbnN0YW5jZTwvaT4oamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSwgamF2YS5sYW5nLkNsYXNzTG9hZGVyKTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIDxpPmdldEJ1bmRsZUluc3RhbmNlPC9pPihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIpPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIDxpPmxvYWRGcm9tQ2FjaGU8L2k+KGphdmEubGFuZy5DbGFzc0xvYWRlciwgamF2YS5sYW5nLlN0cmluZywgVUxvY2FsZSk8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCA8aT5zZXRMb2FkaW5nU3RhdHVzPC9pPihpbnQpPC9saT4KKzwvdWw+CitVbml2ZXJzYWxUaW1lU2NhbGUKKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVBPQ0hfT0ZGU0VUX01JTlVTXzFfVkFMVUU8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfUk9VTkRfVkFMVUU8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfU0NBTEVfVkFMVUU8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fUk9VTkRfVkFMVUU8L2xpPgorPGxpPjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPippbnRlcm5hbCogIDwvc3Bhbj5wdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklUU19ST1VORF9WQUxVRTwvbGk+Cis8bGk+PHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+KmludGVybmFsKiAgPC9zcGFuPnB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCA8aT50b0JpZ0RlY2ltYWxUcnVuYzwvaT4oQmlnRGVjaW1hbCwgaW50KTwvbGk+Cis8L3VsPgorVmVyc2lvbkluZm8KKzx1bD4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIElDVV9EQVRBX1ZFUlNJT048L2xpPgorPGxpPihkcmFmdCkgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNV8wPC9saT4KKzxsaT48c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4qaW50ZXJuYWwqICA8L3NwYW4+cHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyA8aT5qYXZhVmVyc2lvbjwvaT4oKTwvbGk+Cis8L3VsPgorPC91bD4KKworPGhyLz4KKzxwPjxpPjxmb250IHNpemU9Ii0xIj5Db250ZW50cyBnZW5lcmF0ZWQgYnkgUmVwb3J0QVBJIHRvb2wgb24gTW9uIFNlcCAxOCAxODowNzoyNyBFRFQgMjAwNjxici8+Q29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uLCBBbGwgUmlnaHRzIFJlc2VydmVkLjwvZm9udD48L2k+PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvYnVpbGQucHJvcGVydGllcyBiL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4MmY3ZQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNCBAQAorIyoKKyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorIyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKiBUaGlzIGlzIHRoZSBwcm9wZXJ0aWVzIGZpbGUgZm9yIElDVTRKIGJ1aWxkcy4gCisjKgoraWN1NGoudmVyc2lvbi5zdHJpbmc9My42CitpY3U0ai52ZXJzaW9uLm51bWJlcj0zNgorY3VycmVudC55ZWFyPTIwMDYKK2ljdTRqLnByZXZpb3VzLnZlcnNpb24ubnVtYmVyPTM0CithcGkucmVwb3J0Lm91dD0ke2FwaS5kaXJ9L2ljdTRqX2NvbXBhcmVfJHtpY3U0ai5wcmV2aW91cy52ZXJzaW9uLm51bWJlcn1fJHtpY3U0ai52ZXJzaW9uLm51bWJlcn0uaHRtbAorY29weXJpZ2h0PUNvcHlyaWdodCAoYykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorY29ycD1JQk0gQ29ycG9yYXRpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9idWlsZC54bWwgYi9idWlsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYzMzE0ZgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLnhtbApAQCAtMCwwICsxLDE3MTYgQEAKKzwhLS0KKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRoaXMgaXMgdGhlIGFudCBidWlsZCBmaWxlIGZvciBJQ1U0Si4gIFNlZSByZWFkbWUuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyovCistLT4KKworPHByb2plY3QgbmFtZT0iSUNVNEoiIGRlZmF1bHQ9ImNvcmUiIGJhc2VkaXI9Ii4iPgorCisgICAgPCEtLSAjIyMgQmVnaW4gQ2xvdmVyIDEuMiBzZXR1cCAjIyMgLS0+CisgICAgPHR5cGVkZWYgcmVzb3VyY2U9ImNsb3ZlcnR5cGVzIi8+CisgICAgPHRhc2tkZWYgcmVzb3VyY2U9ImNsb3ZlcnRhc2tzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPG1rZGlyIGRpcj0idG1wLyIvPgorICAgICAgICA8Y2xvdmVyLXNldHVwIGluaXRTdHJpbmc9InRtcC9pY3U0ai5kYiI+CisgICAgICAgICAgICA8ZmlsZXM+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovZGV2LyoqLyouamF2YSIvPgorICAgICAgICAgICAgIDwvZmlsZXM+CisgICAgICAgICAgICAgPG1ldGhvZENvbnRleHQgbmFtZT0iQVBJIiByZWdleHA9IiguKiApP3B1YmxpYyAuKiIvPgorICAgICAgICA8L2Nsb3Zlci1zZXR1cD4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xvdmVyLnN1bW1hcnkiIGRlcGVuZHM9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPGNsb3Zlci1yZXBvcnQgPgorICAgICAgICAgICAgPGN1cnJlbnQgb3V0ZmlsZT0iaWN1NGpfaHRtbCIgc3VtbWFyeT0idHJ1ZSI+CisgICAgICAgICAgICAgICAgPGZvcm1hdCB0eXBlPSJodG1sIiBzcmNMZXZlbD0iZmFsc2UiLz4KKyAgICAgICAgICAgIDwvY3VycmVudD4KKyAgICAgICAgPC9jbG92ZXItcmVwb3J0PgorICAgIDwvdGFyZ2V0PgorICAgPHRhcmdldCBuYW1lPSJjbG92ZXIucmVwb3J0IiBkZXBlbmRzPSJ3aXRoLmNsb3ZlciI+CisgICAgICAgIDxjbG92ZXItcmVwb3J0ID4KKyAgICAgICAgICAgIDxjdXJyZW50IG91dGZpbGU9ImljdTRqX2h0bWwiPgorICAgICAgICAgICAgICAgIDxmb3JtYXQgdHlwZT0iaHRtbCIvPgorICAgICAgICAgICAgPC9jdXJyZW50PgorICAgICAgICA8L2Nsb3Zlci1yZXBvcnQ+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJjbG92ZXIubG9nIiBkZXBlbmRzPSJ3aXRoLmNsb3ZlciI+CisgICAgICAgIDxjbG92ZXItbG9nIGxldmVsPSJtZXRob2QiIGZpbHRlcj0icHJpdmF0ZSI+CisgICAgICAgICAgICAgPHBhY2thZ2UgbmFtZT0iY29tLmlibS5pY3UudGV4dCIvPgorICAgICAgICAgICAgIDxwYWNrYWdlIG5hbWU9ImNvbS5pYm0uaWN1LmxhbmciLz4KKyAgICAgICAgICAgICA8cGFja2FnZSBuYW1lPSJjb20uaWJtLmljdS5tYXRoIi8+CisgICAgICAgICAgICAgPHBhY2thZ2UgbmFtZT0iY29tLmlibS5pY3UudXRpbCIvPgorICAgICAgICA8L2Nsb3Zlci1sb2c+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tICMjIyBFbmQgQ2xvdmVyIDEuMiBzZXR1cCAjIyMgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImFudGhhY2sxIj4KKyAgICAgICAgPCEtLSBJdCdzIGEgcmVhbCBwYWluIHRvIHNldCBwcm9wZXJ0aWVzIGNvbmRpdGlvbmFsbHkuCisgICAgICAgICAgQW50IDEuNSBpc24ndCByZWFsbHkgYW55IGJldHRlciB0aGFuIDEuNCwgaW4gZmFjdCAxLjUgZW5mb3JjZXMgdGhhdAorICAgICAgICAgIHByb3BlcnRpZXMgYXJlIHdyaXRlLW9uY2Ugc28geW91IGNhbid0IGV2ZW4gc2V0IGEgZGVmYXVsdCBhbmQgdGhlbgorICAgICAgICAgIG92ZXJyaWRlIGl0LCB3aGljaCB3ZSB1c2VkIHRvIGRvIGZvciBBbnQgMS40LiAtLT4KKyAgICAgICAgPGNvbmRpdGlvbiBwcm9wZXJ0eT0idmVyc2lvbi4xLjQiPgorICAgICAgICAgICAgPG9yPgorICAgICAgICAgICAgICAgIDxlcXVhbHMgYXJnMT0iJHthbnQuamF2YS52ZXJzaW9ufSIgYXJnMj0iMS40Ii8+CisgICAgICAgICAgICAgICAgPGVxdWFscyBhcmcxPSIke2FudC5qYXZhLnZlcnNpb259IiBhcmcyPSIxLjUiLz4KKyAgICAgICAgICAgICAgICA8ZXF1YWxzIGFyZzE9IiR7YW50LmphdmEudmVyc2lvbn0iIGFyZzI9IjEuNiIvPgorICAgICAgICAgICAgPC9vcj4KKyAgICAgICAgPC9jb25kaXRpb24+CisgICAgICAgIAorICAgICAgICA8Y29uZGl0aW9uIHByb3BlcnR5PSJkb2MucGFyYW1zIgorICAgICAgICAgICAgdmFsdWU9Ii1icmVha2l0ZXJhdG9yIC11c2UgLXRhZ2xldHBhdGggLi9jbGFzc2VzIC10YWdsZXQgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5JQ1VUYWdsZXQgLWdyb3VwICdJQ1UgQ29yZScgJ2NvbS5pYm0uaWN1LmxhbmcqOmNvbS5pYm0uaWN1Lm1hdGgqOmNvbS5pYm0uaWN1LnRleHQqOmNvbS5pYm0uaWN1LnV0aWwqOmNvbS5pYm0uaWN1LmNoYXJzZXQnIC1ncm91cCAnSUNVIFRlc3RzJyAnY29tLmlibS5pY3UuZGV2LnRlc3QqJyAtZ3JvdXAgJ0RlbW9zJyAnY29tLmlibS5pY3UuZGV2LmRlbW8qJyAtZ3JvdXAgJ0lDVSBUb29scycgJ2NvbS5pYm0uaWN1LmRldionIj4KKyAgICAgICAgICAgICAgICA8ZXF1YWxzIGFyZzE9IiR7dmVyc2lvbi4xLjR9IiBhcmcyPSJ0cnVlIi8+CisgICAgICAgIDwvY29uZGl0aW9uPgorCisgICAgICAgIDxjb25kaXRpb24gcHJvcGVydHk9InJpY2hlZGl0ZG9jLnBhcmFtcyIKKyAgICAgICAgICAgIHZhbHVlPSItYnJlYWtpdGVyYXRvciAtdXNlIC10YWdsZXRwYXRoIC4vY2xhc3NlcyAtdGFnbGV0IGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuSUNVVGFnbGV0IC1ncm91cCAnUmljaCBUZXh0IEVkaXRpbmcnICdjb20uaWJtLnJpY2h0ZXh0KiciPgorICAgICAgICAgICAgICAgIDxlcXVhbHMgYXJnMT0iJHt2ZXJzaW9uLjEuNH0iIGFyZzI9InRydWUiLz4KKyAgICAgICAgPC9jb25kaXRpb24+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImFudGhhY2syIiB1bmxlc3M9ImRvYy5wYXJhbXMiPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZG9jLnBhcmFtcyIgdmFsdWU9IiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJpbml0Ij4KKyAgICAgICAgPHRzdGFtcC8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzcmMuZGlyIiB2YWx1ZT0ic3JjIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJidWlsZC5kaXIiIHZhbHVlPSJjbGFzc2VzIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhcGkuZGlyIiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJkb2MuZGlyIiB2YWx1ZT0iZG9jIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXN0amFyLmZpbGUiIHZhbHVlPSJpY3U0anRlc3RzLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iamFyLmZpbGUiIHZhbHVlPSJpY3U0ai5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNoYXJzZXRzLmphci5maWxlIiB2YWx1ZT0iaWN1NGotY2hhcnNldHMuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXJTcmMuZmlsZSIgdmFsdWU9ImljdTRqc3JjLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwQ29yZVNyYy5maWxlIiB2YWx1ZT0iaWN1NGpjc3JjLnppcCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwVGVzdFNyYy5maWxlIiB2YWx1ZT0iaWN1NGp0c3JjLnppcCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iamRrLndyYXBwZXIuamFyLmZpbGUiIHZhbHVlPSJpY3U0andyYXBwZXIuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJlY2xpcHNlLmRpciIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2VjbGlwc2UiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVjbGlwc2UucHJvamVjdHMuZGlyIiB2YWx1ZT0iZWNsaXBzZVByb2plY3RzIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ3cmFwcGVyLmJ1aWxkLmRpciIgdmFsdWU9ImNsYXNzZXMud3JhcHBlciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iamFyRG9jcy5maWxlIiB2YWx1ZT0iaWN1NGpkb2NzLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1lLnRyYW5zbGl0Lmphci5maWxlIiB2YWx1ZT0iaWN1dHJhbnNpbWUuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpbWUuaW5kaWMuamFyLmZpbGUiIHZhbHVlPSJpY3VpbmRpY2ltZS5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImltZS50cmFuc2xpdC5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImltZS5pbmRpYy5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL21hbmlmZXN0LnN0dWIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InppcC5maWxlIiB2YWx1ZT0iLi4vaWN1NGoke0RTVEFNUH0uemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ6aXBTcmMuZmlsZSIgdmFsdWU9Ii4uL2ljdTRqU3JjJHtEU1RBTVB9LnppcCIvPgorCisgICAgICAgIDxwcm9wZXJ0eSBmaWxlPSJidWlsZC5wcm9wZXJ0aWVzIiAvPgorICAgICAgICA8IS0tIGZpeCB0aGUgZGF0YSBmb2xkZXIgZXZlcnkgdGltZSB0aGVyZSBpcyBhIHZlcnNpb24gdXBkYXRlLS0+CisKKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLmRhdGEucGF0aCIgdmFsdWU9ImNvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkdCR7aWN1NGoudmVyc2lvbi5udW1iZXJ9Yi8iIC8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai50ZXN0ZGF0YS5wYXRoIiB2YWx1ZT0iY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiAvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGouamF2YWMuc291cmNlIiB2YWx1ZT0iMS4zIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai5qYXZhYy50YXJnZXQiIHZhbHVlPSIxLjMiLz4KKworICAgICAgICA8cGF0aCBpZD0iYnVpbGQuY2xhc3NwYXRoIj4KKyAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPC9wYXRoPgorCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5kaXIiIHZhbHVlPSJyaWNoZWRpdCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuZG9jLmRpciIgdmFsdWU9IiR7cmljaGVkaXQuZGlyfS9kb2MiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0Lmphci5maWxlIiB2YWx1ZT0iJHtyaWNoZWRpdC5kaXJ9L3JpY2hlZGl0LmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuemlwLmZpbGUiIHZhbHVlPSIke3JpY2hlZGl0LmRpcn0vcmljaGVkaXQuemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9yaWNodGV4dC9tYW5pZmVzdC5zdHViIi8+CisgICAgICAgIAorICAgICAgICA8IS0tIExvYWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIC0tPgorICAgICAgICA8cHJvcGVydHkgZW52aXJvbm1lbnQ9ImVudiIvPgorCisgICAgICAgIDwhLS0gQ2FwdHVyZSB0aGUgY29tcHV0ZXIgbmFtZSBpbiBhIGNyb3NzLXBsYXRmb3JtIG1hbm5lciAtLT4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVudi5DT01QVVRFUk5BTUUiIHZhbHVlPSIke2Vudi5IT1NUTkFNRX0iLz4KKworICAgICAgICA8bWtkaXIgZGlyPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPG1rZGlyIGRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKworICAgICAgICA8ZWNobyBtZXNzYWdlPSJqYXZhIGhvbWU6ICR7amF2YS5ob21lfSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJqYXZhIHZlcnNpb246ICR7amF2YS52ZXJzaW9ufSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJhbnQgamF2YSB2ZXJzaW9uOiAke2FudC5qYXZhLnZlcnNpb259Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9IiR7YW50LnZlcnNpb259Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9IiR7ZW52LkNPTVBVVEVSTkFNRX0gd2l0aCAke29zLm5hbWV9ICR7b3MudmVyc2lvbn0gb24gJHtvcy5hcmNofSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJjbG92ZXIgaW5pdHN0cmluZyA9ICcke2Nsb3Zlci5pbml0c3RyaW5nfSciLz4KKworICAgICAgICA8dXB0b2RhdGUgcHJvcGVydHk9ImljdTRqLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICAgICAgPCEtLSBub3RlIG11c3Qgbm90IGhhdmUgJy8nIGJlZm9yZSAnY29tJyBpbiBzcmNmaWxlcyBpbmNsdWRlcyBhcmchIC0tPgorICAgICAgICAgICAgPHNyY2ZpbGVzIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iJHtpY3U0ai5kYXRhLnBhdGh9L3Jlc19pbmRleC5yZXMiLz4KKyAgICAgICAgPC91cHRvZGF0ZT4KKworICAgICAgICA8dXB0b2RhdGUgcHJvcGVydHk9ImljdTRqLnRlc3RkYXRhLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSI+CisgICAgICAgICAgICA8IS0tIG5vdGUgbXVzdCBub3QgaGF2ZSAnLycgYmVmb3JlICdjb20nIGluIHNyY2ZpbGVzIGluY2x1ZGVzIGFyZyEgLS0+CisgICAgICAgICAgICA8c3JjZmlsZXMgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSIke2ljdTRqLnRlc3RkYXRhZGF0YS5wYXRofS9yb290LnJlcyIvPgorICAgICAgICA8L3VwdG9kYXRlPgorCisgICAgICAgIDx1cHRvZGF0ZSBwcm9wZXJ0eT0iaWN1NGoubW9kdWxlLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiID4KKyAgICAgICAgICAgIDxzcmNmaWxlcyBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9IiR7aWN1NGouZGF0YS5wYXRofS8qLmljdSIvPgorICAgICAgICA8L3VwdG9kYXRlPgorICAgICAgICA8IS0tIDxlY2hvIG1lc3NhZ2U9ImljdTRqLm1vZHVsZS5yZXNvdXJjZXMgcmVzdWx0OiAke2ljdTRqLm1vZHVsZS5yZXNvdXJjZXN9IiAvPiAtLT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gYnVpbGQgZXZlcnl0aGluZyBidXQgZGlzdC1yZWxhdGVkIHN0dWZmIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iYWxsIiBkZXBlbmRzPSJjb3JlLHRlc3RzLHRvb2xzLHJpY2hlZGl0LGRlbW9zLGphcixkb2NzIiBkZXNjcmlwdGlvbj0iYnVpbGQgYWxsIHByaW1hcnkgdGFyZ2V0cyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJyZXNvdXJjZXMiIGRlcGVuZHM9ImluaXQsIGljdWRhdGEsIGNvcmVEYXRhLCB0ZXN0ZGF0YSIgZGVzY3JpcHRpb249ImJ1aWxkcyBhbGwgdGhlIHJlc291cmNlcyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJpY3VkYXRhIiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoucmVzb3VyY2VzIj4KKyAgICAgICAgPCEtLSB1c2UgdGhpcyB0YXJnZXQgdG8gZm9yY2UgcmVzb3VyY2VzIHRvIGJlIHJlYnVpbHQgLS0+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vcmVzX2luZGV4LnJlcyIvPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L01FVEEtSU5GIj4KKyAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vTUVUQS1JTkYiIGluY2x1ZGVzPSIqKi8qIi8+CisgICAgICAgIDwvY29weT4KKyAgICA8L3RhcmdldD4KKworPCEtLQorICAgIHVzZSB0aGlzIHRhcmdldCB0byBjb25kaXRpb25hbGx5IGJ1aWxkIHJlc291cmNlcyBvbmx5IGlmIGljdTRqLnJlc291cmNlcyBpcyBzZXQKKyAgICA8dGFyZ2V0IG5hbWU9ImljdSIgZGVwZW5kcz0iaW5pdCIgaWY9ImljdTRqLnJlc291cmNlcyI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL0lDVUxvY2FsZURhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvTG9jYWxlRWxlbWVudHNfaW5kZXguY2xhc3MiLz4KKyAgICA8L3RhcmdldD4KKyAtLT4KKworICAgIDwhLS0gY29yZSBkb2VzIG5vdCBidWlsZCByaWNoZWRpdCBvciB0ZXN0cyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImNvcmUiIGRlcGVuZHM9ImluaXQsY29yZURhdGEsaWN1ZGF0YSIgZGVzY3JpcHRpb249ImJ1aWxkIGNvcmUgY2xhc3NlcyBhbmQgZGF0YSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLmphdmEsY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEsY29tL2libS9pY3UvbWF0aC8qKi8qLmphdmEsY29tL2libS9pY3UvaW1wbC8qKi8qLmphdmEsY29tL2libS9pY3UvbGFuZy8qLmphdmEsY29tL2libS9pY3UvY2hhcnNldC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiCisgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idGVzdHMiIGRlcGVuZHM9ImNvcmUsdGVzdGRhdGEiIGRlc2NyaXB0aW9uPSJidWlsZCB0ZXN0cyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0LyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0LyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvKiovKi5qYXZhLCBjb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4gICAgICAgICAgICAKKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZGVtb3MiIGRlcGVuZHM9ImNvcmUsdGVzdGRhdGEiIGRlc2NyaXB0aW9uPSJidWlsZCBkZW1vcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L2RlbW8vKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImJ1aWxkbWFuZ2xlIiBkZXBlbmRzPSJpbml0LGFudGhhY2sxIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NvZGVNYW5nbGVyLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ibWFuZ2xlIiBkZXBlbmRzPSJidWlsZG1hbmdsZSI+CisgICAgPCEtLSB0aGlzIGlzIGEgaGFjayBmb3Igbm93LCBuZWVkIGEgd2F5IHRvIGV4cHJlc3MgZGVwZW5kZW5jeSBvbiB0aGUgLmpwcCBmaWxlcworICAgIGFuZCB0byBwcm92aWRlIGRpcmVjdG9yaWVzIG9yIHRyZWVzIG9mIGZpbGVzIHRvIHRoZSBjb2RlIG1hbmdsZXIgdG9vbC4gLS0+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kVkVSU0lPTl8ke2FudC5qYXZhLnZlcnNpb259Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvSUNVVGFnbGV0LmphdmEiLz4KKyAgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iaW5kaWNlcyIgZGVwZW5kcz0iaWN1ZGF0YSxidWlsZF9pbmRleGdlbmVyYXRvciI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuaW5kZXguSW5kZXhHZW5lcmF0b3IiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9IiAvPgorICAgICAgICA8L2phdmE+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuaW5kZXguSW5kZXhHZW5lcmF0b3IiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3JibmYiIC8+CisgICAgICAgIDwvamF2YT4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5pbmRleC5JbmRleEdlbmVyYXRvciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vY29sbCIgLz4KKyAgICAgICAgPC9qYXZhPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmluZGV4LkluZGV4R2VuZXJhdG9yIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS90cmFuc2xpdCIgLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJvbmU0dG9vbHMiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLG1hbmdsZSIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvbG9jYWxlY29udmVydGVyL2RvY3MvKi5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIgCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJ0b29scyIgZGVwZW5kcz0iY29yZSxvbmU0dG9vbHMiIGRlc2NyaXB0aW9uPSJidWlsZCB0b29scyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90b29sL2NsZHIvKixjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvKixjb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzLyosKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iYnVpbGRfaW5kZXhnZW5lcmF0b3IiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKyAgICAgICAgICAgIAorICAgIDwhLS0gdXNlIGV4Y2x1ZGVmaWxlcyBiZWxvdyB3aGVuIHdlIG1vdmUgdG8gYW50IDEuNSAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImRvY3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLHRvb2xzIiBkZXNjcmlwdGlvbj0iYnVpbGQgdXNlciBqYXZhZG9jIj4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iZG9jIHBhcmFtczogJHtkb2MucGFyYW1zfSIvPgorICAgICAgICA8bWtkaXIgZGlyPSIke2RvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LmxhbmcsY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsLGNvbS5pYm0uaWN1Lm1hdGgsY29tLmlibS5pY3UuY2hhcnNldCxjb20uaWJtLmljdS5kZXYiCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtkb2MuZGlyfSIKKyAgICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3Q9InRydWUiCisgICAgICAgICAgICB3aW5kb3d0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBkb2N0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgJHtjdXJyZW50LnllYXJ9IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiZsdDsvZm9udD4iCisgICAgICAgICAgICBhZGRpdGlvbmFscGFyYW09IiR7ZG9jLnBhcmFtc30iCisgICAgICAgICAgICBsaW5rPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS41L2RvY3MvYXBpIgorICAgICAgICAgICAgc291cmNlPSIxLjQiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZnVsbGRvY3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLHRvb2xzIiBkZXNjcmlwdGlvbj0iYnVpbGQgYWxsIGphdmFkb2MiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJkb2MgcGFyYW1zOiAke2RvYy5wYXJhbXN9Ii8+CisgICAgICAgIDxta2RpciBkaXI9IiR7ZG9jLmRpcn0iLz4KKyAgICAgICAgPGphdmFkb2MKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UuKiIKKyAgICAgICAgICAgIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2RvYy5kaXJ9IgorICAgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdD0idHJ1ZSIKKyAgICAgICAgICAgIHdpbmRvd3RpdGxlPSJpY3U0aiIKKyAgICAgICAgICAgIGRvY3RpdGxlPSJpY3U0aiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgZG9jZW5jb2Rpbmc9Imlzby04ODU5LTEiCisgICAgICAgICAgICBib3R0b209IiZsdDtmb250IHNpemU9LTE+Q29weXJpZ2h0IChjKSAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiZsdDsvZm9udD4iCisgICAgICAgICAgICBhZGRpdGlvbmFscGFyYW09IiR7ZG9jLnBhcmFtc30iCisgICAgICAgICAgICBsaW5rPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40L2RvY3MvYXBpIgorICAgICAgICAgICAgc291cmNlPSIxLjQiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZSA9ImNvcmVEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YSIKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKi5pY3UsKi5zcHAsKi5icmsiCisgICAgICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLFRyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl8qLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWUgPSJ0ZXN0ZGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9DaGFyc2V0RGV0ZWN0aW9uVGVzdHMueG1sIgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0Ii8+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhIj4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLmRhdCIvPgorICAgICAgICAgICAgPC9maWxlc2V0PgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvcml3b3Jkcy50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvSUROQVRlc3RJbnB1dC50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L2RhdGEvKi5qYXZhLCBjb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIgorICAgICAgICAgICAgICAgIGluY2x1ZGVzPSIqLnNwcCwqLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvIgorICAgICAgICAgICAgICAgIGluY2x1ZGVzPSIqLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3RDYXNlcy50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdCIvPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy8iCisgICAgICAgICAgICAgICAgaW5jbHVkZXM9IioucHJvcGVydGllcyIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gdXNlIHRoaXMgdGFyZ2V0IHRvIGZvcmNlIHJlc291cmNlcyB0byBiZSByZWJ1aWx0IC0tPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai50ZXN0ZGF0YS5wYXRofS9yb290LnJlcyIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBidWlsZHMgcmljaGVkaXQgYW5kIHJpY2hlZGl0IHRlc3RzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0icmljaGVkaXQiIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJidWlsZCByaWNoZWRpdCBjbGFzc2VzIGFuZCB0ZXN0cyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9yaWNodGV4dC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcyIgb3ZlcndyaXRlPSJ5ZXMiIGluY2x1ZGVFbXB0eURpcnM9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcyIgaW5jbHVkZXM9IioucmVkIi8+CisgICAgICAgIDwvY29weT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gQ3JlYXRlcyB0aGUgMyByZWxlYXNlIGphciBhcmNoaXZlcyBmb3IgZGlzdHJpYnV0aW9uIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iamFyUmVsZWFzZSIgZGVwZW5kcz0iamFyLGphclNyYyxqYXJEb2NzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImphciIgZGVwZW5kcz0iY29yZSxpbmRpY2VzLGNoYXJzZXRzSmFyIiBkZXNjcmlwdGlvbj0iYnVpbGQgJ2ljdTRqLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amFyLmZpbGV9IiBjb21wcmVzcz0idHJ1ZSI+CisgICAgICAgICAgICA8ZmlsZXNldCAgICBkaXI9IiR7YmFzZWRpcn0iIGluY2x1ZGVzPSJsaWNlbnNlLmh0bWwsIHVuaWNvZGUtbGljZW5zZS50eHQiIC8+CisgICAgICAgICAgICA8ZmlsZXNldCAgICBkaXI9IiR7YnVpbGQuZGlyfSIgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKixjb20vaWJtL2ljdS90ZXh0LyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyoiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZXM9Ik1FVEEtSU5GL3NlcnZpY2VzLyoqLyosY29tL2libS9pY3UvY2hhcnNldC8qKi8qLCR7aWN1NGouZGF0YS5wYXRofS8qLmNudiwgJHtpY3U0ai5kYXRhLnBhdGh9L2NudmFsaWFzLmljdSIvPgorICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQnVpbHQtQnkiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgPHNlY3Rpb24gbmFtZT0iY29tbW9uIj4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IklDVTRKIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0iY2hhcnNldHNKYXIiIGRlcGVuZHM9ImNvcmUsaW5kaWNlcyIgZGVzY3JpcHRpb249ImJ1aWxkICAnaWN1NGotY2hhcnN0ZXMuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtjaGFyc2V0cy5qYXIuZmlsZX0iIGNvbXByZXNzPSJ0cnVlIj4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtiYXNlZGlyfSIgaW5jbHVkZXM9ImxpY2Vuc2UuaHRtbCwgdW5pY29kZS1saWNlbnNlLnR4dCIgLz4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtidWlsZC5kaXJ9IiAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz0iTUVUQS1JTkYvc2VydmljZXMvKiovKixjb20vaWJtL2ljdS9jaGFyc2V0LyoqLyosJHtpY3U0ai5kYXRhLnBhdGh9LyouY252LCAke2ljdTRqLmRhdGEucGF0aH0vY252YWxpYXMuaWN1Ii8+CisgICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQnVpbHQtQnkiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgPHNlY3Rpb24gbmFtZT0iY29tbW9uIj4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IklDVTRKIENoYXJzZXRzIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSBDaGFyc2V0cyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0iamFyVGVzdHMiIGRlcGVuZHM9InRlc3RzLGphciIgZGVzY3JpcHRpb249ImJ1aWxkIHJ1bnRpbWUgJ2ljdTRqdGVzdHMuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHt0ZXN0amFyLmZpbGV9IiBjb21wcmVzcz0idHJ1ZSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0LyoqLyoiLz4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBUZXN0cyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEgVGVzdHMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iamFyU3JjIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgc291cmNlICdpY3U0anNyYy5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPCEtLUNyZWF0ZSBhIGphciBhcmNoaXZlIG9mIGp1c3QgdGhlIHNvdXJjZSBmb3IgZGlzdHJpYnV0aW9uLiAgVGhlCisgICAgICAgIGphciBmaWxlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGlyZWN0b3J5IGFib3ZlIHRoZSByb290IElDVTRKCisgICAgICAgIGRpcmVjdG9yeS4gVGhlIGV4Y2x1ZGUgcGF0dGVybiAke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtKi50eHQKKyAgICAgICAgYW5kICR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLSoudHh0CisgICAgICAgIGVsaW1pbmF0ZXMgb2xkIGFyY2hpdmUgY29waWVzIGxpa2UgU3BlY2lhbENhc2luZy0yLnR4dCBhbmQKKyAgICAgICAgVW5pY29kZURhdGEtMi4xLjgudHh0IC0tPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amFyU3JjLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIuIgorICAgICAgICAgICAgZXhjbHVkZXM9IiR7cmljaGVkaXQuZGlyfS8qKi8qLHRlc3RfKiwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvL1VuaWNvZGVEYXRhLSoudHh0LCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLSoudHh0LCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtKi50eHQsJHtvYnNvbGV0ZS5kaXJ9LyoqLCoqLyp+LCR7c3JjLmRpcn0vKiovKi5jbGFzcywke2J1aWxkLmRpcn0vKiosKiovQ1ZTLyoqLyosJHtkb2MuZGlyfS8qKiwqLmphciwqLnppcCwgKi5neiI+CisgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iSUNVNEogU291cmNlIEZpbGVzIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPiAgICAgICAgCisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImphckRvY3MiIGRlcGVuZHM9ImRvY3MiIGRlc2NyaXB0aW9uPSJidWlsZCBkb2N1bWVudGF0aW9uICdpY3U0amRvY3MuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXJEb2NzLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2RvYy5kaXJ9Ij4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBTb3VyY2UgRmlsZXMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSIgSUNVIGZvciBKYXZhIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRyYW5zbGl0SU1FSmFyIiBkZXBlbmRzPSJjb2xsYXRvciwgdHJhbnNsaXRlcmF0b3IiIGRlc2NyaXB0aW9uPSJidWlsZCB0cmFuc2xpdGVyYXRvciBJTUUgJ2ljdXRyYW5zaW1lLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3IucHJvcGVydGllcyIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0Ii8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtpbWUudHJhbnNsaXQuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyoqLyoiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpbWUudHJhbnNsaXQubWFuaWZlc3R9Ij4KKyAgICAgICAgICAgIDxtZXRhaW5mIGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQiIGluY2x1ZGVzPSJzZXJ2aWNlcy8qIi8+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJpbmRpY0lNRUphciIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIGluZGljIElNRSAnaWN1aW5kaWNpbWUuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcyIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljIi8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtpbWUuaW5kaWMuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljLyoqLyoiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpbWUuaW5kaWMubWFuaWZlc3R9Ij4KKyAgICAgICAgICAgIDxtZXRhaW5mIGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMiIGluY2x1ZGVzPSJzZXJ2aWNlcy8qIi8+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCis8IS0tCisgICAgPHRhcmdldCBuYW1lPSJ0cmFuc2xpdGltZVN0YW5kYWxvbmVKYXIiIGRlcGVuZHM9ImNvbGxhdG9yLCB0cmFuc2xpdGVyYXRvciI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdCI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0IiBpbmNsdWRlcz0iKi5wcm9wZXJ0aWVzIi8+CisgICAgICAgIDwvY29weT4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2ltZS5qYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC8qKi8qIgorICAgICAgICAgICAgbWFuaWZlc3Q9IiR7aW1lLnRyYW5zbGl0Lm1hbmlmZXN0fSI+CisgICAgICAgICAgICA8bWV0YWluZiBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0IiBpbmNsdWRlcz0ic2VydmljZXMvKiIvPgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKy0tPgorCisgICAgPCEtLSBqYXJzIHVwIHJpY2hlZGl0IGJ1dCB3aXRob3V0IHRlc3RzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0icmljaGVkaXRKYXIiIGRlcGVuZHM9InJpY2hlZGl0IiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgcnVudGltZSAncmljaGVkaXQuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxta2RpciBkaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7cmljaGVkaXQuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9yaWNodGV4dC8qKi8qIgorICAgICAgICBleGNsdWRlcz0iY29tL2libS9yaWNodGV4dC90ZXN0LyoqLyoiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtyaWNoZWRpdC5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgTm90ZTogIEkgdXNlZCB0byB1c2UgLWxpbmtvZmZsaW5lIGh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamRrLzEuMi9kb2NzL2FwaS8gQzpcamRrMS4yLjJcZG9jc1xhcGkKKyAgICAgICAgVGhpcyBsaW5rcyB0byBjb3JlIGRvY3Mgb24gU3VuJ3Mgc2l0ZSAtIGEgdmVyeSBuaWNlIGZlYXR1cmUuICBCdXQgaXQgcmVxdWlyZXMgdGhlIDEuMiBkb2NzIHRvIGJlCisgICAgICAgIG9uIHRoZSBidWlsZCBtYWNoaW5lIGF0IGEga25vd24gbG9jYXRpb24uCisgICAgLS0+CisKKyAgICA8IS0tIHRoZSAncHVibGljJyBkb2NzIGZvciByaWNoZWRpdCAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0RG9jcyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHJpY2hlZGl0IGphdmFkb2MiPgorICAgICAgICA8bWtkaXIgZGlyPSIke3JpY2hlZGl0LmRvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0ucmljaHRleHQuZGVtbyxjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aSxjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbCxjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQsY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMsY29tLmlibS5yaWNodGV4dC5wcmludCIKKyAgICAgICAgICAgIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke3JpY2hlZGl0LmRvYy5kaXJ9IgorICAgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdD0idHJ1ZSIKKyAgICAgICAgICAgIHdpbmRvd3RpdGxlPSJSaWNoRWRpdCBDb250cm9sIgorICAgICAgICAgICAgZG9jdGl0bGU9IlJpY2hFZGl0IENvbnRyb2wiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgMTk5OC0yMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiZsdDsvZm9udD4iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gcmljaGVkaXQgYWxwaGF3b3JrcyBkaXN0cmlidXRpb24gLSBqYXIgYW5kIGRvY3MsIGJ1dCBubyBzb3VyY2UgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyaWNoZWRpdFppcCIgZGVwZW5kcz0icmljaGVkaXRKYXIscmljaGVkaXREb2NzIiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgemlwIGZpbGUiPgorICAgICAgICA8IS0tQ3JlYXRlIGEgemlwIGFyY2hpdmUgb2YgdGhlIHJpY2hlZGl0IGphciBhbmQgcmVhZG1lIC0tPgorICAgICAgICA8Y29weSBmaWxlPSJsaWNlbnNlLmh0bWwiIHRvZGlyPSIke3JpY2hlZGl0LmRpcn0iLz4KKyAgICAgICAgPHppcCB6aXBmaWxlPSIke3JpY2hlZGl0LnppcC5maWxlfSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7cmljaGVkaXQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJkb2MvKiovKixyaWNoZWRpdC5qYXIsbGljZW5zZS5odG1sIi8+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJkZWxldGVDb3JlIiBkZXBlbmRzPSJpbml0IiA+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L3RleHQiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L21hdGgiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2xhbmciLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L3V0aWwiLz4gICAgICAgCisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9jaGFyc2V0Ii8+ICAgICAgICAgICAgICAgICAgIAorICAgICAgICA8L2RlbGV0ZT4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNoZWNrIiBkZXBlbmRzPSJ0ZXN0cywgamFyLCBkZWxldGVDb3JlIiBkZXNjcmlwdGlvbj0icnVuIHN0YW5kYXJkIGljdTRqIHRlc3Qgc3VpdGUiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGp2bWFyZyB2YWx1ZT0iLWVhIi8+ICA8IS0tIGVuYWJsZSBhc3NlcnRpb24gY2hlY2tzIC0tPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7amFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NoYXJzZXRzLmphci5maWxlfSIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItZWEiLz4gIDwhLS0gZW5hYmxlIGFzc2VydGlvbiBjaGVja3MgLS0+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbiIvPgorICAgICAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtqYXZhLmNsYXNzLnBhdGh9LyIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZXhoYXVzdGl2ZUNoZWNrIiBkZXBlbmRzPSJ0ZXN0cywgamFyLCBkZWxldGVDb3JlIiBkZXNjcmlwdGlvbj0icnVuIHN0YW5kYXJkIGljdTRqIHRlc3Qgc3VpdGUgaW4gZXhoYXVzdGl2ZSBtb2RlIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1lYSIvPiAgPCEtLSBlbmFibGUgYXNzZXJ0aW9uIGNoZWNrcyAtLT4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1YbXgxMjhtIi8+ICA8IS0tIHNldCB0aGUgbWF4IGhlYXAgc2l6ZSB0byAxMjhtIC0tPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1lMTAiLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7amFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NoYXJzZXRzLmphci5maWxlfSIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJzZWN1cmUiIGRlcGVuZHM9ImphclRlc3RzIiBkZXNjcmlwdGlvbj0iYnVpbGRzIGljdTRqLmphciBhbmQgaWN1NGp0ZXN0cy5qYXIiLz4KKworICAgIDx0YXJnZXQgbmFtZT0ic2VjdXJlQ2hlY2siIGRlcGVuZHM9InNlY3VyZSIgZGVzY3JpcHRpb249InJ1biBzZWN1cmUgKGFwcGxldC1saWtlKSBpY3U0aiB0ZXN0IHN1aXRlIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgPCEtLSBqdm1hcmcgdmFsdWU9Ii12ZXJib3NlIi8gLS0+CisgICAgICAgIDwhLS0gKHVzZSBmb3IgZGVidWdnaW5nLCBMT1RTIG9mIG91dHB1dCkgPGp2bWFyZyB2YWx1ZT0iLURqYXZhLnNlY3VyaXR5LmRlYnVnPWFjY2Vzczp0cmFjZSIvIC0tPgorICAgICAgICA8IS0tIDxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5kZWJ1Zz1hY2Nlc3M6ZmFpbHVyZSxkb21haW4iLz4gLS0+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItRGphdmEuc2VjdXJpdHkubWFuYWdlciIvPgorICAgICAgICAgICAgPGp2bWFyZyB2YWx1ZT0iLURqYXZhLnNlY3VyaXR5LnBvbGljeT0ke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlY3VyaXR5LnBvbGljeSIvPgorICAgICAgICAgICAgPCEtLTxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5kZWJ1Zz1hY2Nlc3M6ZmFpbHVyZSIvPi0tPgorICAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii13Ii8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke3Rlc3RqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im5vRGF0YSIgZGVwZW5kcz0iY29yZSwgdGVzdHMiIGRlc2NyaXB0aW9uPSJidWlsZHMgSUNVNEogd2l0aG91dCBhbnkgZGF0YSI+CisgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ibm8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9Ly4uLyIgaW5jbHVkZXM9IkhvbGlkYXkqLmNsYXNzIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vLi4vIiBpbmNsdWRlcz0iQnJlYWtJdGVyYXRvciouY2xhc3MiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai50ZXN0ZGF0YS5wYXRofSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai50ZXN0ZGF0YS5wYXRofS4uLyIvPiAgICAgICAgICAgICAgICAgCisgICAgICAgIDwvZGVsZXRlPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0ibm9EYXRhQ2hlY2siIGRlcGVuZHM9Im5vRGF0YSIgZGVzY3JpcHRpb249InJ1bnMgdGhlIHRlc3RzIHdoZW4gbm8gZGF0YSBpcyBwcmVzZW50Ij4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub3Rocm93Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbm9kYXRhIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0iX3JlcXVpcmVzMTQiIHVubGVzcz0idmVyc2lvbi4xLjQiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJPbmUgb2YgeW91ciB0YXJnZXRzIHJlcXVpcmVzIEpBVkFfSE9NRSB0byBiZSBzZXQgdG8gSkRLIHZlcnNpb24gMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Il9jaGVja3RhZ3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLHRvb2xzIiBpZj0idmVyc2lvbi4xLjQiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJkb2MgcGFyYW1zOiAke2RvYy5wYXJhbXN9Ii8+CisgICAgICAgIDxqYXZhZG9jIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LioiCisgICAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS5kZXYuKixjb20uaWJtLmljdS5pbXBsLioiCisgICAgICAgICAgICBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ij4KKyAgICAgICAgICAgIDxkb2NsZXQgbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5DaGVja1RhZ3MiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8IS0tIDxwYXJhbSBuYW1lPSItc2hvcnQiLz4gLS0+CisgICAgICAgICAgICA8L2RvY2xldD4KKyAgICAgICAgPC9qYXZhZG9jPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjaGVja3RhZ3MiIGRlcGVuZHM9ImFudGhhY2sxLGFudGhhY2syLF9yZXF1aXJlczE0LF9jaGVja3RhZ3MiIGRlc2NyaXB0aW9uPSJjaGVjayBBUEkgdGFncyBiZWZvcmUgcmVsZWFzZSIvPgorCisgICAgPHRhcmdldCBuYW1lPSJnYXRoZXJhcGkiIGRlcGVuZHM9InRvb2xzIiBpZj0idmVyc2lvbi4xLjQiIGRlc2NyaXB0aW9uPSJydW4gQVBJIGRhdGFiYXNlIGdlbmVyYXRvciB0b29sIj4KKyAgICAgICAgPGphdmFkb2MgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJjb20uaWJtLmljdS5sYW5nLGNvbS5pYm0uaWN1Lm1hdGgsY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItb3V0cHV0IiB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0aiR7aWN1NGoudmVyc2lvbi5udW1iZXJ9LmFwaSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItaW50ZXJuYWwiLz4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLWd6aXAiLz4KKyAgICAgICAgICAgIDwvZG9jbGV0PgorICAgICAgICA8L2phdmFkb2M+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImFwaXJlcG9ydCIgZGVwZW5kcz0idG9vbHMsIGdhdGhlcmFwaSIgaWY9InZlcnNpb24uMS40IiBkZXNjcmlwdGlvbj0icnVuIEFQSSByZXBvcnQgZ2VuZXJhdG9yIHRvb2wiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuUmVwb3J0QVBJIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW9sZDoiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGoke2ljdTRqLnByZXZpb3VzLnZlcnNpb24ubnVtYmVyfS5hcGkuZ3oiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uZXc6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqJHtpY3U0ai52ZXJzaW9uLm51bWJlcn0uYXBpLmd6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItaHRtbCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWludGVybmFsIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb3V0OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkucmVwb3J0Lm91dH0iLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249InJlbW92ZSBhbGwgYnVpbGQgdGFyZ2V0cyI+CisgICAgICAgIDxkZWxldGUgZGlyPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBkaXI9IiR7ZG9jLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2phci5maWxlfSIvPgorICAgICAgICA8ZGVsZXRlIGZpbGU9IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgIDxkZWxldGUgZGlyPSIke3JpY2hlZGl0LmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3Rlc3RqYXIuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2phclNyYy5maWxlfSIvPgorCisgICAgICAgIDxkZWxldGUgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcENvcmVTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcFRlc3RTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2pkay53cmFwcGVyLmphci5maWxlfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICBUYXJnZXRzIHRvIGNvcHkgdGhlIHJlcXVpcmVkICouaWN1IGZpbGVzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0ibm9ybWFsaXplckRhdGEiIGRlcGVuZHM9ImluaXQiID4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5RnVsbFByb3BzRGF0YSIgZGVwZW5kcz0iaW5pdCIgPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vub3JtLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vwcm9wcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91YmlkaS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91Y2FzZS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUJhc2ljUHJvcHNEYXRhIiBkZXBlbmRzPSJpbml0IiA+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ViaWRpLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VjYXNlLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUNvbGxhdG9yRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5Q2FsZW5kYXJEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPCEtLSBDYWxlbmRhciBkb2VzIG5vdCByZXF1aXJlIENvbGxhdGlvbiBkYXRhLCBCcmVha0l0ZXJhdG9yIGRhdGEgLS0+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlUcmFuc2xpdERhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8IS0tIENhbGVuZGFyIGRvZXMgbm90IHJlcXVpcmUgQ29sbGF0aW9uIGRhdGEsIEJyZWFrSXRlcmF0b3IgZGF0YSAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWJpZGkuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWNhc2UuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLmJyayIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3RyYW5zbGl0LyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlGb3JtYXREYXRhIiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoubW9kdWxlLnJlc291cmNlcyI+CisgICAgICAgIDwhLS0gRm9ybWF0IGRvZXMgbm90IHJlcXVpcmUgQnJlYWtJdGVyYXRvciBkYXRhIC0tPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyouaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi90cmFuc2xpdC8qLnJlcyIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS91cHJvcHMuaWN1Ii8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJjb3B5QWxsSUNVRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ibW9kdWxlSmFyIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiAnaWN1NGouamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJJQ1U0SiBNb2R1bGFyaXplZCBCdWlsZCIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEgTW9kdWxlIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPiAKKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yIiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkNvcHlyaWdodC1JbmZvIiB2YWx1ZT0iJHtjb3B5cmlnaHR9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNlYWxlZCIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgTm9ybWFsaXphdGlvbiBBUEkgYW5kIE5vcm1hbGl6YXRpb24gdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im5vcm1hbGl6ZXIiIGRlcGVuZHM9ImluaXQsbm9ybWFsaXplckRhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIG5vcm1hbGl6ZXIgc2VydmljZXMiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5qYXZhLGNvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VURjE2LmphdmEsY29tL2libS9pY3UvdGV4dC9VQ2hhcmFjdGVySXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEsY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhLGNvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhLGNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEsY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLCBjb20vaWJtL2ljdS9pbXBsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhLCBjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEsY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSxjb20vaWJtL2ljdS9pbXBsL1VuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im5vcm1hbGl6ZXJUZXN0cyIgZGVwZW5kcz0ibm9ybWFsaXplciI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENvbGxhdGlvbiBBUEkgYW5kIENvbGxhdGlvbiB0ZXN0cworICAgICAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iY29sbGF0b3IiIGRlcGVuZHM9ImluaXQsY29weUNvbGxhdG9yRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgY29sbGF0b3Igc2VydmljZXMiPgorICAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0LypDb2xsYXRvciouamF2YSxjb20vaWJtL2ljdS90ZXh0LypDb2xsYXRpb24qLmphdmEsY29tL2libS9pY3UvdGV4dC8qQnJlYWtJdGVyYXRvciouamF2YSxjb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VURjE2LmphdmEsY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZS5qYXZhLGNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhLCBjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLCBjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEsY29tL2libS9pY3UvaW1wbC9Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorICAgPHRhcmdldCBuYW1lPSJjb2xsYXRvclRlc3RzIiBkZXBlbmRzPSJjb2xsYXRvciwgdGVzdGRhdGEiIGRlc2NyaXB0aW9uPSJ0ZXN0IGNvbGxhdG9yIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci8qKi8qLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwgY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENoYXJhY3RlciBwcm9wZXJ0aWVzIEFQSSBhbmQgdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9InByb3BlcnRpZXNCYXNpYyIgZGVwZW5kcz0iaW5pdCwgcHJvcGVydGllc0NsYXNzZXMsIGNvcHlCYXNpY1Byb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgYmFzaWMgY2hhcmFjdGVyIHByb3BlcnRpZXMiPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzRnVsbCIgZGVwZW5kcz0iaW5pdCxwcm9wZXJ0aWVzQ2xhc3Nlcyxjb3B5RnVsbFByb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgZnVsbCBjaGFyYWN0ZXIgcHJvcGVydGllcyI+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzQ2xhc3NlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvbGFuZy8qKi8qLCBjb20vaWJtL2ljdS90ZXh0LypCcmVha0l0ZXJhdG9yKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKkJyZWFrRGljdGlvbmFyeSouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEsIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0icHJvcGVydGllc0Jhc2ljVGVzdHMiIGRlcGVuZHM9InByb3BlcnRpZXNCYXNpYyIgZGVzY3JpcHRpb249InRlc3QgcHJvcGVydGllc0Jhc2ljIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLyIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzRnVsbFRlc3RzIiBkZXBlbmRzPSJwcm9wZXJ0aWVzRnVsbCIgZGVzY3JpcHRpb249InRlc3QgcHJvcGVydGllc0Z1bGwgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENvbXByZXNzaW9uIEFQSSBBUEkgYW5kIHRlc3RzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY29tcHJlc3Npb24iIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIGNvbXByZXNzaW9uIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0L1NDU1UuamF2YSwgY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhLCBjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb21wcmVzc2lvblRlc3RzIiBkZXBlbmRzPSJjb21wcmVzc2lvbiIgZGVzY3JpcHRpb249InRlc3QgY29tcHJlc3Npb24gbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENhbGVuZGFyIEFQSSBhbmQgQ2FsZW5kYXIgdGVzdHMKKyAgICAgLS0+CisgICAgPHRhcmdldCBuYW1lPSJjYWxlbmRhciIgZGVwZW5kcz0iaW5pdCxjb3B5Q2FsZW5kYXJEYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBjYWxlbmRhciBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qQ2FsZW5kYXIqLmphdmEsY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdCpTaGltLmphdmEsY29tL2libS9pY3UvaW1wbC9kYXRhLypDYWxlbmRhciouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkhvbGlkYXkqLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosIGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSxjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSxjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNhbGVuZGFyVGVzdHMiIGRlcGVuZHM9ImNhbGVuZGFyIiBkZXNjcmlwdGlvbj0idGVzdCBjYWxlbmRhciBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IFRyYW5zbGl0ZXJhdG9yIEFQSSBhbmQgIHRlc3RzCisgICAgIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJ0cmFuc2xpdGVyYXRvciIgZGVwZW5kcz0iaW5pdCxwcm9wZXJ0aWVzQ2xhc3Nlcyxjb3B5VHJhbnNsaXREYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiB1bmljb2RlIHRyYW5zZm9ybSBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdGV4dC8qVHJhbnNsaXRlcmF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS9pbXBsLypQcm9wZXJ0eSouamF2YSxjb20vaWJtL2ljdS9pbXBsLypJdGVyYXRvciouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosIGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyTG9naWMqLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idHJhbnNsaXRlcmF0b3JUZXN0cyIgZGVwZW5kcz0idHJhbnNsaXRlcmF0b3IiIGRlc2NyaXB0aW9uID0gInRlc3QgdHJhbnNsaXRlcmF0b3IgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0LyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZUZpbHRlckxvZ2ljKi5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgRm9ybWF0IEFQSQorICAgICAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iZm9ybWF0IiBkZXBlbmRzPSJpbml0LGNvcHlGb3JtYXREYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBmb3JtYXR0aW5nIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0LypGb3JtYXQqLmphdmEsY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEsY29tL2libS9pY3UvdGV4dC8qQ29sbGF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLCBjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEsY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEsY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJmb3JtYXRUZXN0cyIgZGVwZW5kcz0iZm9ybWF0IiBkZXNjcmlwdGlvbj0idGVzdCBmb3JtYXQgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXNUZXN0LmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdENhc2VzLnR4dCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgQnJlYWtJdGVyYXRvciBBUEkKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImJyZWFrSXRlcmF0b3IiIGRlcGVuZHM9ImluaXQsY29weUZ1bGxQcm9wc0RhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIGJyZWFrIGl0ZXJhdG9yIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0LypCcmVha0l0ZXJhdG9yKi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvZGF0YS8qQnJlYWsqLmphdmEsY29tL2libS9pY3UvbGFuZy8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLCBjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEsY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEsY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrIgorICAgICAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhLyIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJicmVha0l0ZXJhdG9yVGVzdHMiIGRlcGVuZHM9ImJyZWFrSXRlcmF0b3IiIGRlc2NyaXB0aW9uPSJ0ZXN0IGJyZWFrSXRlcmF0b3IgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkiLz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgU3RyaW5nUHJlcCBhbmQgSUROQSBBUEkKKyAgICAgLS0+ICAgIAorICAgIDx0YXJnZXQgbmFtZT0iY29weVN0cmluZ1ByZXBEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLnNwcCIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ViaWRpLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VjYXNlLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vub3JtLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vwcm9wcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9wbmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5hbWVzLmljdSIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJzdHJpbmdQcmVwIiBkZXBlbmRzPSJpbml0LG5vcm1hbGl6ZXIsY29weVN0cmluZ1ByZXBEYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBzdHJpbmdwcmVwIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0LypTdHJpbmdQcmVwKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKklETkEqLmphdmEsY29tL2libS9pY3UvaW1wbC8qU3RyaW5nUHJlcCouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwgY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEsY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEsIGNvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXIqLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ic3RyaW5nUHJlcFRlc3RzIiBkZXBlbmRzPSJzdHJpbmdQcmVwIiBkZXNjcmlwdGlvbj0idGVzdCBzdHJpbmdQcmVwIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLnNwcCIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL2lkbmFfcnVsZXMucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImV4Y2x1ZGVDaGFyc2V0IiBkZXBlbmRzPSJjb3JlIiBkZXNjcmlwdGlvbj0iZXhjbHVkZXMgY2hhcnNldCBtb2R1bGUgZnJvbSBJQ1U0SiI+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9InllcyI+ICAgICAgICAgICAgCisgICAgICAgICAgICA8ZmlsZXNldCAgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWR0JHtpY3U0ai52ZXJzaW9uLm51bWJlcn1iLyI+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKi5jbnYiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJjbnZhbGlhcy5pY3UiLz4KKyAgICAgICAgICAgIDwvZmlsZXNldD4KKyAgICAgICAgICAgIDxmaWxlc2V0ICBkaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9jaGFyc2V0Ii8+CisgICAgICAgICAgICA8ZmlsZXNldCAgZGlyPSIke2J1aWxkLmRpcn0vTUVUQS1JTkYvIi8+CisgICAgICAgIDwvZGVsZXRlPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0iZXhjbHVkZUNoYXJzZXRUZXN0cyIgZGVwZW5kcz0idGVzdHMiIGRlc2NyaXB0aW9uPSJleGNsdWRlcyBjaGFyc2V0ICB0ZXN0IGZyb20gSUNVNEoiPgorICAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJ5ZXMiPiAgICAgICAgICAgIAorICAgICAgICAgICAgPGZpbGVzZXQgIGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgPC90YXJnZXQ+ICAgIAorICAgIAorICAgIDx0YXJnZXQgbmFtZT0ibW9kdWxlQ2hlY2siIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJydW4gdGVzdHMgZm9yIG1vZHVsZSBqYXIiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW5vdGhyb3ciLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub2RhdGEiLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPCEtLSBidWlsZCB0aGUgZXh0cmEgVHJhbnNsaXRlcmF0b3IgZGF0YSBwZXJ0YWluaW5nIHRvIEhhbi1MYXRpbiB0cmFuc2xpdGVyYXRpb24gLS0+CisgICAgPHRhcmdldCBuYW1lPSJleHRyYVRyYW5zbGl0ZXJhdG9yRGF0YSIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIGhhbi10by1sYXRpbiB0cmFuc2xpdGVyYXRvciBkYXRhIChub3JtYWxseSBvbWl0dGVkKSI+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiIGluY2x1ZGVzPSJUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBUYXJnZXQgZm9yIGJ1aWxpbmcgWExJRkYySUNVQ29udmVydGVyIEphciAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0ieGxpZmYiIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJidWlsZCB4bGlmZiBjb252ZXJ0ZXIgdG9vbCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlci5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9DYWxjdWxhdGVDUkMzMi5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YSxjb20vaWJtL2ljdS9kZXYvdG9vbC94bWxjb21wYXJhdG9yL1hNTFZhbGlkYXRvci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxqYXIgamFyZmlsZT0ieGxpZmYuamFyIgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlciouY2xhc3MsY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uY2xhc3MiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQnVpbHQtQnkiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgPHNlY3Rpb24gbmFtZT0iY29tbW9uIj4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGIFRvIElDVSBDb252ZXJ0ZXIiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSJYTElGRjJJQ1VDb252ZXJ0ZXIiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICAgICAgICAgIAorICAgICAgICA8amFyIGphcmZpbGU9InhsaWZmLXNyYy5qYXIiCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSI+CisgICAgICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGIFRvIElDVSBDb252ZXJ0ZXIgU291cmNlcyIvPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IlhMSUZGMklDVUNvbnZlcnRlciBTb3VyY2VzIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQiIHZhbHVlPSJjb20uaWJtIi8+CisgICAgICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgorICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgICAgICA8L2phcj4KKyAgICAgPC90YXJnZXQ+CisgICAgIAorICAgIDwhLS0gVGFyZ2V0IGZvciBidWlsaW5nIFV0aWxpdGllcyBKYXIgZm9yIENMRFIgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZHJVdGlsIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgVXRpbGl0aWVzIGZvciBDTERSIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsLyouamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amFyIGphcmZpbGU9InV0aWxpdGllcy5qYXIiCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsLyouY2xhc3MsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2sqLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90ZXN0L0Fic3RyYWN0VGVzdCouY2xhc3MsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZyouY2xhc3MsY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbiouY2xhc3MiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkJ1aWx0LUJ5IiB2YWx1ZT0iJHtjb3JwfSIvPgorICAgICAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9ImNvbW1vbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVGl0bGUiIHZhbHVlPSJVdGlsaXRpZXMgZm9yIENMRFIgVG9vbHMiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU3BlY2lmaWNhdGlvbi1WZW5kb3IiIHZhbHVlPSJJQ1UiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVGl0bGUiIHZhbHVlPSJDTERSIFV0aWxpdGllcyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgICA8L3RhcmdldD4KKyAgICAgPCEtLVRhcmdldCBmb3IgYnVpbGRpbmcgamFycyAtLT4KKyAgICAgPHRhcmdldCBuYW1lPSJkaXN0SmFycyIgZGVwZW5kcz0iamFyU3JjLCBqYXIsIGphckRvY3MiIC8+ICAgCisgICAgIAorICAgICA8IS0tIFRhcmdldCBmb3IgY2hlY2tpbmcgdGhlIGxvYWRpbmcgb2YgYnVuZGxlcyBmcm9tIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAgVGhpcyBpcyBoYWNrIHRvIGdldCBhcm91bmQgRWNsaXBzZSdzIGJ1aWxkIHByb2JsZW1zLiAKKyAgICAgLS0+CisgICAgPHRhcmdldCBuYW1lPSJkZWZhdWx0UGFja2FnZSIgZGVwZW5kcz0idGVzdHMiIGRlc2NyaXB0aW9uPSJUZXN0cyBmb3IgbG9hZGluZyByZXNvdXJjZXMgaW4gdGhlIGRlZmF1bHQgcGFja2FnZSI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmpwcCIKKyAgICAgICAgICAgIHRvZmlsZT0iJHtzcmMuZGlyfS9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmphdmEiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REYXRhX2VuLmpwcCIKKyAgICAgICAgICAgIHRvZmlsZT0iJHtzcmMuZGlyfS9UZXN0RGF0YV9lbi5qYXZhIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iVGVzdERhdGFfZW4uamF2YSwgVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZy5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDwhLS0gY29weSB0aGUgZmlsZSB0byBkZWZhdWx0IHBhY2thZ2UgYW5kIHRlc3QgaWYgd2UgY2FuIGxvYWQgaXQgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS90ZS5yZXMiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9LyIvPgorICAgICAgICA8IS0tIGNvcHkgdGhlIGZpbGUgdXAgb25lIGxldmVsIGFuZCB0ZXN0IGlmIGphdmEgc3R5bGUgYmFzZSBuYW1lIGxvYWRpbmcgd29ya3MgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS90ZS5yZXMiCisgICAgICAgICAgICB0b2ZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YV9iZ2UucmVzIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJkZWZhdWx0UGFja2FnZUNoZWNrIiBkZXBlbmRzPSJ0ZXN0cywgZGVmYXVsdFBhY2thZ2UiIGRlc2NyaXB0aW9uPSJSdW4gVGVzdHMgZm9yIGxvYWRpbmcgcmVzb3VyY2VzIGluIHRoZSBkZWZhdWx0IHBhY2thZ2UiPgorICAgICAgICAgICAgPCEtLXJ1biB0aGUgdGVzdHMgLS0+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZyIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItZWEiLz4gIDwhLS0gZW5hYmxlIGFzc2VydGlvbiBjaGVja3MgLS0+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbiIvPgorICAgICAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtqYXZhLmNsYXNzLnBhdGh9LyIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIGNvbnZlcnQgQGRlcHJlY2F0ZWQgQGRyYWZ0IHRhZ3MgdG8gQHByb3Zpc2lvbmFsIC0tPgorICAgIDx0YXJnZXQgbmFtZT0ic3dhdERlcHJlY2F0ZWQiIGRlcGVuZHM9ImluaXQsIHRvb2xzIiBpZj0idmVyc2lvbi4xLjQiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuU3dhdERlcHJlY2F0ZWQiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1zcmMiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfSIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItZHN0Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7c3JjLmRpcn0iLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW92ZXJ3cml0ZSIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItdmVyYm9zZSIvPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIGNvbnZlcnQgQHByb3Zpc2lvbmFsIHRhZ3MgdG8gQGRlcHJlY2F0ZWQgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyZXN0b3JlRGVwcmVjYXRlZCIgZGVwZW5kcz0iaW5pdCwgdG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Td2F0RGVwcmVjYXRlZCIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXByb3YiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXNyYyIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kc3QiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfSIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItb3ZlcndyaXRlIi8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii12ZXJib3NlIi8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8IS0tIGZvciBidWlsZGluZyBlY2xpcHNlIGRpc3RyaWJ1dGlvbiAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VQcm9qZWN0cyIgCisgICAgICAgIGRlcGVuZHM9ImVjbGlwc2VDb3JlUHJvamVjdCxlY2xpcHNlVGVzdFByb2plY3QsZWNsaXBzZVdyYXBwZXJQcm9qZWN0IgorICAgICAgICBkZXNjcmlwdGlvbj0iY3JlYXRlIGFsbCBlY2xpcHNlIGljdSBwcm9qZWN0cyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJ1bmRvRWNsaXBzZU1hbmdsZSIgZGVwZW5kcz0iYnVpbGRtYW5nbGUiIGRlc2NyaXB0aW9uPSJwcmVwcm9jZXNzIGZpbGVzIGJhY2sgdG8gZGVmYXVsdCkiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSJAZWNsaXBzZUNvcmVBcmdzLnR4dCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iQGVjbGlwc2VUZXN0QXJncy50eHQiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29yZU1hbmdsZSIgZGVwZW5kcz0iYnVpbGRtYW5nbGUiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZEZPVU5EQVRJT04iLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii10Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSJAZWNsaXBzZUNvcmVBcmdzLnR4dCIvPgorICAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29yZSIgZGVwZW5kcz0iaW5pdCxjb3JlRGF0YSxpY3VkYXRhLGVjbGlwc2VDb3JlTWFuZ2xlIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyouamF2YSxjb20vaWJtL2ljdS90ZXh0LyoqLyouamF2YSxjb20vaWJtL2ljdS9tYXRoLyoqLyouamF2YSxjb20vaWJtL2ljdS9pbXBsLyoqLyouamF2YSxjb20vaWJtL2ljdS9sYW5nLyouamF2YSIKKyAgICAgICAgICAgIGNvbXBpbGVyPSJqYXZhYzEuMyIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgYm9vdGNsYXNzcGF0aD0iZWUuZm91bmRhdGlvbi5qYXIiCisgICAgICAgICAgICBzb3VyY2U9IjEuMyIKKyAgICAgICAgICAgIHRhcmdldD0iMS4xIgorICAgICAgICAgICAgZGVidWc9Im9uIiAKKyAgICAgICAgICAgIGRlcHJlY2F0aW9uPSJvZmYiCisgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLz4KKyAgICAgICAgPGFudGNhbGwgdGFyZ2V0PSJpbmRpY2VzIi8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXIuZmlsZX0iIGNvbXByZXNzPSJ0cnVlIj4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtiYXNlZGlyfSIgaW5jbHVkZXM9ImxpY2Vuc2UuaHRtbCwgdW5pY29kZS1saWNlbnNlLnR4dCIgLz4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtidWlsZC5kaXJ9IiAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLGNvbS9pYm0vaWN1L3RleHQvKiovKixjb20vaWJtL2ljdS9tYXRoLyoqLyosY29tL2libS9pY3UvaW1wbC8qKi8qLGNvbS9pYm0vaWN1L2xhbmcvKiovKiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlcz0iTUVUQS1JTkYvc2VydmljZXMvKiovKixjb20vaWJtL2ljdS9jaGFyc2V0LyoqLyosJHtpY3U0ai5kYXRhLnBhdGh9LyouY252LCAke2ljdTRqLmRhdGEucGF0aH0vY252YWxpYXMuaWN1Ii8+CisgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iSUNVNEogRWNsaXBzZSBCdWlsZCIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IiBJQ1UgZm9yIEphdmEiLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+IAorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZW5kb3IiIHZhbHVlPSIke2NvcnB9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvci1JZCIgdmFsdWU9ImNvbS5pYm0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iQ29weXJpZ2h0LUluZm8iIHZhbHVlPSIke2NvcHlyaWdodH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iU2VhbGVkIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZUNvcmVQcm9qZWN0IiBkZXBlbmRzPSJlY2xpcHNlQ29yZSIgZGVzY3JpcHRpb249ImdhdGhlciBlY2xpcHNlIGljdSBjb3JlIHByb2plY3QgZmlsZXMiPgorICAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1Ii8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LWZlYXR1cmUiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgICAgIDwhLS0gY29sbGVjdCBzb3VyY2UgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvRGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS9zcmMvY29tL2libS9pY3UiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSJzcmMvY29tL2libS9pY3UiCisgICAgICAgICAgICBpbmNsdWRlcz0iaW1wbC8qKi8qLGxhbmcvKiovKixtYXRoLyoqLyosdGV4dC8qKi8qLHV0aWwvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwqKi8qLmphciwqKi9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW4qLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29sbGVjdCBpY3UgZGF0YSBmaWxlcyAtLT4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1L3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIiAKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKiovKi5icmssKiovKi5pY3UsKiovKi5yZXMsKiovKi5zcHAsKiovKi50eHQiCisgICAgICAgICAgICAgICAgZXhjbHVkZXM9IioqL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbioudHh0Ii8+CisgICAgICAgIDwvY29weT4KKyAgICAgICAgPCEtLSBjb2xsZWN0IGVjbGlwc2UgcHJvamVjdCBmaWxlcyAtLT4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9Ij4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLmRpcn0iCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tLmlibS5pY3UvKiovKixjb20uaWJtLmljdS1mZWF0dXJlLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvcHkgSUNVIGxpY2Vuc2UgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0ibGljZW5zZS5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UvYWJvdXRfZmlsZXMiLz4KKyAgICAgICAgPCEtLSB1Y2QgdGVybXMgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9InNyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dCIKKyAgICAgICAgdG9kaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1L2Fib3V0X2ZpbGVzIi8+CisgICAgICAgIDwhLS0gY29weSBJQ1UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dF9pY3UuaHRtbCIKKyAgICAgICAgdG9maWxlPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS9hYm91dC5odG1sIi8+CisgICAgICAgIDwhLS0gY29tbW9uIGVjbGlwc2UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dC5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbiIvPgorICAgIDwvdGFyZ2V0PgorCisKKyAgICA8IS0tIGVuc3VyZSBlY2xpcHNlIHdyYXBwZXIgY29kZSBidWlsZHMgd2l0aCBmb3VuZGF0aW9uMS4wL2phdmExLjMgLS0+CisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlV3JhcHBlciIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLmphdmEsY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEiCisgICAgICAgICAgICBjb21waWxlcj0iamF2YWMxLjMiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMiCisgICAgICAgICAgICBkZXN0ZGlyPSIke3dyYXBwZXIuYnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgYm9vdGNsYXNzcGF0aD0iZWUuZm91bmRhdGlvbi5qYXIiCisgICAgICAgICAgICBzb3VyY2U9IjEuMyIKKyAgICAgICAgICAgIHRhcmdldD0iMS4xIgorICAgICAgICAgICAgZGVidWc9Im9uIiAKKyAgICAgICAgICAgIGRlcHJlY2F0aW9uPSJvZmYiCisgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2pkay53cmFwcGVyLmphci5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVdyYXBwZXJUZXN0IiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPCEtLSBUT0RPOiBidWlsZCB0aGUgd3JhcHBlciB0ZXN0IGNvZGUgdGhpcyBhbnQgdGFyZ2V0IC0tPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlV3JhcHBlclByb2plY3QiIGRlcGVuZHM9ImVjbGlwc2VXcmFwcGVyLGVjbGlwc2VXcmFwcGVyVGVzdCIgZGVzY3JpcHRpb249ImdhdGhlciBlY2xpcHNlIGljdSBjb3JlIHByb2plY3QgZmlsZXMiPgorICAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LmJhc2UiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LmJhc2UudGVzdHMiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgICAgIDwhLS0gY29sbGVjdCBlY2xpcHNlIHByb2plY3QgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS5pYm0uaWN1LmJhc2UvKiovKixjb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvKiovKixjb20uaWJtLmljdS5iYXNlLnRlc3RzLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvcHkgSUNVIGxpY2Vuc2UgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0ibGljZW5zZS5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS9hYm91dF9maWxlcyIvPgorICAgICAgICA8IS0tIGNvcHkgSUNVIGFib3V0IGZpbGUgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7ZWNsaXBzZS5kaXJ9L21pc2MvYWJvdXRfaWN1Lmh0bWwiCisgICAgICAgIHRvZmlsZT0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS9hYm91dC5odG1sIi8+CisgICAgICAgIDwhLS0gY29tbW9uIGVjbGlwc2UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dC5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VUZXN0TWFuZ2xlIiBkZXBlbmRzPSJidWlsZG1hbmdsZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kRk9VTkRBVElPTiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXQiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IkBlY2xpcHNlVGVzdEFyZ3MudHh0Ii8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVRlc3RzIiBkZXBlbmRzPSJlY2xpcHNlQ29yZSx0ZXN0ZGF0YSxlY2xpcHNlVGVzdE1hbmdsZSIgZGVzY3JpcHRpb249ImJ1aWxkIHRlc3RzIHRyaW1tZWQgZm9yIGVjbGlwc2UgQVBJIj4KKyAgICAJPCEtLSBUT0RPOiB3ZSBzaG91bGQgYWN0dWFsbHkgdXNlIGVlLmZvdW5kYXRpb24uamFyIGZvciBlY2xpcHNlIGVudiAtLT4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldC8qKi8qLiosY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi8qKi8qLioiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IjEuMyIKKyAgICAgICAgICAgIHRhcmdldD0iMS4zIgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iCisgICAgICAgICAgICBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxhbnRjYWxsIHRhcmdldD0iaW5kaWNlcyIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7dGVzdGphci5maWxlfSIgY29tcHJlc3M9InRydWUiID4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvKiovKiIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvZGF0YS8qKi8qIi8+CisgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iVGVzdHMgZm9yIElDVTRKICIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlcnNpb24iIHZhbHVlPSIke2ljdTRqLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVZlbmRvciIgdmFsdWU9IklDVSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1UaXRsZSIgdmFsdWU9IlRlc3RzIGZvciBJQ1U0SiIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlVGVzdFByb2plY3QiIGRlcGVuZHM9ImVjbGlwc2VUZXN0cyx6aXBUZXN0U3JjIiBkZXNjcmlwdGlvbj0iZ2F0aGVyIGVjbGlwc2UgaWN1IHRlc3QgcHJvamVjdCBmaWxlcyI+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgICAgIDwhLS0gY29weSBlY2xpcHNlIHRlc3Qgc291cmNlIGFuZCBwcm9qZWN0IGZpbGVzIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UuZGlyfS9jb20uaWJtLmljdS50ZXN0cyIKKyAgICAgICAgICAgIGluY2x1ZGVzPSIqKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8iLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvcHkgaWN1IHRlc3QgamFyIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiIGZpbGU9IiR7dGVzdGphci5maWxlfSIvPgorICAgICAgICA8IS0tIGNvcHkgaWN1IHRlc3Qgc291cmNlIHppcCAtLT4KKyAgICAgICAgPGNvcHkgdG9EaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LnRlc3RzIiBmaWxlPSIke3ppcFRlc3RTcmMuZmlsZX0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iemlwQ29yZVNyYyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHppcCBvZiBjb3JlIHNvdXJjZXMgZm9yIGRlYnVnZ2luZyI+CisgICAgICAgIDwhLS0gZm9yIGVjbGlwc2UgLS0+CisgICAgICAgIDx6aXAgZGVzdGZpbGU9IiR7emlwQ29yZVNyYy5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSIuLi9saWNlbnNlLmh0bWwsLi4vQ29weXJpZ2h0X0Fzc2lnbm1lbnQucnRmLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L3RleHQvKiovKixjb20vaWJtL2ljdS91dGlsLyoqLyoiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iemlwVGVzdFNyYyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHppcCBvZiB0ZXN0IHNvdXJjZXMgZm9yIGRlYnVnZ2luZyI+CisgICAgICAgIDwhLS0gZm9yIGVjbGlwc2UgLS0+CisgICAgICAgIDx6aXAgZGVzdGZpbGU9IiR7emlwVGVzdFNyYy5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvKiovKiwgY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi8qKi8qIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImdhdGhlcklDVTRKV3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhZG9jIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAzLjYiLz4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLWJhc2UiIHZhbHVlPSJjb20uaWJtLmljdSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItb3V0cHV0IiB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0ajM2d19pLmFwaSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItZmlsdGVyIiB2YWx1ZT0iQnJlYWtJdGVyYXRvcnxDb2xsYXRpb25LZXl8Q29sbGF0b3J8RGF0ZUZvcm1hdHxEZWNpbWFsRm9ybWF0fE1lc3NhZ2VGb3JtYXR8TnVtYmVyRm9ybWF0fFNpbXBsZURhdGVGb3JtYXR8U3RyaW5nVG9rZW5pemVyfENhbGVuZGFyfFRpbWVab25lfFVMb2NhbGV8RGF0ZUZvcm1hdFN5bWJvbHN8RGVjaW1hbEZvcm1hdFN5bWJvbHN8Q2FsZW5kYXJ8VGltZVpvbmUiLz4KKyAgICAgICAgICAgICAgICA8IS0tIHBhcmFtIG5hbWU9Ii1nemlwIi8gLS0+CisgICAgICAgICAgICA8L2RvY2xldD4KKyAgICAgICAgPC9qYXZhZG9jPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJnYXRoZXJFY2xpcHNlV3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhZG9jIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYyIKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAzLjYgV3JhcHBlciIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItYmFzZSIgdmFsdWU9ImNvbS5pYm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1vdXRwdXQiIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqMzZ3X2UuYXBpIi8+CisgICAgICAgICAgICAgICAgPCEtLSBwYXJhbSBuYW1lPSItZ3ppcCIvIC0tPgorICAgICAgICAgICAgPC9kb2NsZXQ+CisgICAgICAgIDwvamF2YWRvYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0icmVwb3J0V3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5SZXBvcnRBUEkiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb2xkOiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0aiR7aWN1NGoucHJldmlvdXMudmVyc2lvbi5udW1iZXJ9d19pLmFwaSIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW5ldzoiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGoke2ljdTRqLnZlcnNpb24ubnVtYmVyfXdfZS5hcGkiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1odG1sIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb3V0OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0al9jb21wYXJlXyR7aWN1NGoucHJldmlvdXMudmVyc2lvbi5udW1iZXJ9X3dyYXBwZXJfamF2YS5odG1sIi8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0icnVuQ2hlY2siIGRlcGVuZHM9ImluaXQsdGVzdHMiPiAgICAKKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2phdmEuY2xhc3MucGF0aH0vIi8+CisgICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y2hhcnNldHMuamFyLmZpbGV9Ii8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVJ1bkNoZWNrIiBkZXBlbmRzPSJpbml0LGVjbGlwc2VUZXN0cyI+ICAgIAorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249ImljdTRqLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VDb21wYXQiIGRlcGVuZHM9ImluaXQsIGVjbGlwc2VDb3JlIi8+CisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29tcGF0VGVzdHMiIGRlcGVuZHM9ImluaXQsIGVjbGlwc2VUZXN0TWFuZ2xlLCBlY2xpcHNlVGVzdHMiIC8+CisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29tcGF0Q2hlY2siIGRlcGVuZHM9ImluaXQsIGVjbGlwc2VDb21wYXQsIGVjbGlwc2VDb21wYXRUZXN0cywgZGVsZXRlQ29yZSwgZWNsaXBzZVJ1bkNoZWNrIi8+CisKKworICAgIDx0YXJnZXQgbmFtZT0iY29yZTEzIiBkZXBlbmRzPSJpbml0LGNvcmVEYXRhLGljdWRhdGEiIGRlc2NyaXB0aW9uPSJidWlsZCBjb3JlIGNsYXNzZXMgYW5kIGRhdGEiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKiovKi5qYXZhLGNvbS9pYm0vaWN1L21hdGgvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2xhbmcvKi5qYXZhLGNvbS9pYm0vaWN1L2NoYXJzZXQvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2NoYXJzZXQvKiovKi4qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIgorICAgICAgICAgICAgZW5jb2Rpbmc9ImFzY2lpIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImphcjEzIiBkZXBlbmRzPSJjb3JlMTMsaW5kaWNlcyIgZGVzY3JpcHRpb249ImJ1aWxkIGZ1bGwgJ2ljdTRqLmphcicgamFyIGZpbGUgZm9yIGpkazEuMyI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXIuZmlsZX0iICAgIGNvbXByZXNzPSJ0cnVlIj4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtiYXNlZGlyfSIgaW5jbHVkZXM9ImxpY2Vuc2UuaHRtbCwgdW5pY29kZS1saWNlbnNlLnR4dCIgLz4KKyAgICAgICAgICAgIDxmaWxlc2V0ICAgIGRpcj0iJHtidWlsZC5kaXJ9IiAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLGNvbS9pYm0vaWN1L3RleHQvKiovKixjb20vaWJtL2ljdS9tYXRoLyoqLyosY29tL2libS9pY3UvaW1wbC8qKi8qLGNvbS9pYm0vaWN1L2xhbmcvKiovKiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlcz0iTUVUQS1JTkYvc2VydmljZXMvKiovKixjb20vaWJtL2ljdS9jaGFyc2V0LyoqLyosJHtpY3U0ai5kYXRhLnBhdGh9LyouY252LCAke2ljdTRqLmRhdGEucGF0aH0vY252YWxpYXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8bWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJCdWlsdC1CeSIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb21tb24iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTcGVjaWZpY2F0aW9uLVRpdGxlIiB2YWx1ZT0iSUNVNEogSkRLIDEuMyBDb21wYXRpYmxlIEJ1aWxkIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVyc2lvbiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IlNwZWNpZmljYXRpb24tVmVuZG9yIiB2YWx1ZT0iSUNVIi8+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVRpdGxlIiB2YWx1ZT0iIElDVSBmb3IgSmF2YSBDaGFyc2V0cyIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJJbXBsZW1lbnRhdGlvbi1WZXJzaW9uIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLnN0cmluZ30iLz4gCisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IkltcGxlbWVudGF0aW9uLVZlbmRvciIgdmFsdWU9IiR7Y29ycH0iLz4KKyAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkIiB2YWx1ZT0iY29tLmlibSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJDb3B5cmlnaHQtSW5mbyIgdmFsdWU9IiR7Y29weXJpZ2h0fSIvPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJTZWFsZWQiIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJqZGsxM0NvbXBhdCIgZGVwZW5kcz0iaW5pdCwgZWNsaXBzZUNvcmVNYW5nbGUsIGNvcmUxMyIgZGVzY3JpcHRpb249ImJ1aWxkcyBJQ1U0SiBjb3JlIHdpdGggSkRLIDEuMyIvPgorICAgIDx0YXJnZXQgbmFtZT0iamRrMTNDb21wYXRUZXN0cyIgZGVwZW5kcz0iaW5pdCwgamRrMTNDb21wYXQsIGVjbGlwc2VUZXN0TWFuZ2xlLCBlY2xpcHNlVGVzdHMiIGRlc2NyaXB0aW9uPSJidWlsZHMgSUNVNEogdGVzdHMgd2l0aCBKREsgMS4zIi8+CisgICAgPHRhcmdldCBuYW1lPSJqZGsxM0NvbXBhdENoZWNrIiBkZXBlbmRzPSJpbml0LCBqZGsxM0NvbXBhdFRlc3RzLCBqYXIxMywgZGVsZXRlQ29yZSwgZWNsaXBzZVJ1bkNoZWNrIiBkZXNjcmlwdGlvbj0icnVucyB0aGUgdGVzdHMgd2l0aCBKREsgMS4zIi8+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlQ29yZUFyZ3MudHh0IGIvZWNsaXBzZUNvcmVBcmdzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzdkOGMyCi0tLSAvZGV2L251bGwKKysrIGIvZWNsaXBzZUNvcmVBcmdzLnR4dApAQCAtMCwwICsxLDIyIEBACisjIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitzcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9MUlVNYXAuamF2YQorc3JjL2NvbS9pYm0vaWN1L2ltcGwvUGF0dGVyblRva2VuaXplci5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEKK3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXIuamF2YQorc3JjL2NvbS9pYm0vaWN1L21hdGgvQmlnRGVjaW1hbC5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQorc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnl0ZUFycmF5V3JhcHBlci5qYXZhCitzcmMvY29tL2libS9pY3UvdXRpbC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuamF2YQpkaWZmIC0tZ2l0IGEvZWNsaXBzZVRlc3RBcmdzLnR4dCBiL2VjbGlwc2VUZXN0QXJncy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QyMjMzMQotLS0gL2Rldi9udWxsCisrKyBiL2VjbGlwc2VUZXN0QXJncy50eHQKQEAgLTAsMCArMSw0MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyMgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2JpZ2RlYy9EaWFnQmlnRGVjaW1hbC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2xkci9UZXN0Q0xEUlZzSUNVLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0L1Rlc3RDaGFyc2V0RGV0ZWN0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1JhbmRvbUNvbGxhdG9yLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0QWxsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvQmlnTnVtYmVyRm9ybWF0VGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVUaW1lR2VuZXJhdG9yVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlc1Rlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyUmVncmVzc2lvbi5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUFsaWFzVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVSZWdyZXNzaW9uLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVJlc291cmNlQnVuZGxlVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VdGlsaXR5VGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTWFwLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eS5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CYWdGb3JtYXR0ZXIuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUHJvcGVydHlGYWN0b3J5LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCYWdGb3JtYXR0ZXIuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9GaWxlVXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyYW5zbGl0ZXJhdG9yVXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RhdGFJbnB1dENvbXByZXNzb3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YU91dHB1dENvbXByZXNzb3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdFV0aWxpdGllcy5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Ub2tlbml6ZXIuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQk5GLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCTkYuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Gb3JtYXRUZXN0cy5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Jlc291cmNlTW9kdWxlLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lZS5mb3VuZGF0aW9uLmphciBiL2VlLmZvdW5kYXRpb24uamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMTY4ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9lZS5mb3VuZGF0aW9uLmphcgpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo3ZjczMGZkNGE4Y2E3MWZjZGRjNjFhNGY2MjQ5MGNlYTc4MDVlZmZmYzdlYjJiODY2OTk0MmY2ZDEyM2Y3MjQ5CitzaXplIDEwNTkwNzcKZGlmZiAtLWdpdCBhL2xpY2Vuc2UuaHRtbCBiL2xpY2Vuc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA1ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvbGljZW5zZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzxodG1sPgorCis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXVzLWFzY2lpIj48L21ldGE+Cis8dGl0bGU+SUNVIExpY2Vuc2UgLSBJQ1UgMS44LjEgYW5kIGxhdGVyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgQkdDT0xPUj0iI2ZmZmZmZiI+Cis8aDI+SUNVIExpY2Vuc2UgLSBJQ1UgMS44LjEgYW5kIGxhdGVyPC9oMj4KKworPHA+Q09QWVJJR0hUIEFORCBQRVJNSVNTSU9OIE5PVElDRTwvcD4KKworPHA+CitDb3B5cmlnaHQgKGMpIDE5OTUtMjAwNiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMKKzwvcD4KKzxwPgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzwvcD4KKzxwPgorUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCit0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCit0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucwordG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcworb2YgdGhlIFNvZnR3YXJlIGFuZCB0aGF0IGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMKK3Blcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCis8L3A+Cis8cD4KK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIAorSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5UIE9GIFRISVJEIFBBUlRZIFJJR0hUUy4gSU4gTk8gRVZFTlQgU0hBTEwKK1RIRSBDT1BZUklHSFQgSE9MREVSIE9SIEhPTERFUlMgSU5DTFVERUQgSU4gVEhJUyBOT1RJQ0UgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCitPUiBBTlkgU1BFQ0lBTCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIKK1JFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKK1VTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorPC9wPgorPHA+CitFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBhIGNvcHlyaWdodCBob2xkZXIgc2hhbGwgbm90IGJlCit1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbGluZ3MgaW4KK3RoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gb2YgdGhlIGNvcHlyaWdodCBob2xkZXIuCis8L3A+CisKKzxocj4KKzxwPjxzbWFsbD4KK0FsbCB0cmFkZW1hcmtzIGFuZCByZWdpc3RlcmVkIHRyYWRlbWFya3MgbWVudGlvbmVkIGhlcmVpbiBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLgorPC9zbWFsbD48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9yZWFkbWUuaHRtbCBiL3JlYWRtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NWY1NzIKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbWUuaHRtbApAQCAtMCwwICsxLDE3NzYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vdzNjLy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsLy9lbiI+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiCisgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzMiI+CisgIDx0aXRsZT5SZWFkTWUgZm9yIElDVTRKPC90aXRsZT4KKzwhLS0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy0tPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoraDMuZG9jIHsgYmFja2dyb3VuZDogI0NDQ0NGRiB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyIgbGFuZz0iRU4tVVMiCisgbGluaz0iIzAwMDBmZiIgdmxpbms9IiM4MDAwODAiPgorPGgyPkludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSAoSUNVNEopPC9oMj4KKzxoMz5SZWFkIE1lIGZvciBJQ1U0SiAzLjY8L2gzPgorPGhyIHNpemU9IjIiIHdpZHRoPSIxMDAlIj4KKzxwPjxiPlJlbGVhc2UgRGF0ZTwvYj48YnI+CitPY3RvYmVyIDEsIDIwMDY8YnI+Cis8L3A+Cis8cD48Yj5Ob3RlOjwvYj4gVGhpcyBpcyBtYWpvciByZWxlYXNlIG9mIElDVTRKLiAgSXQgY29udGFpbnMgYnVnIGZpeGVzCithbmQgYWRkcyBpbXBsZW1lbnRhdGlvbnMgb2YgaW5oZXJpdGVkIEFQSSBhbmQgaW50cm9kdWNlcyBuZXcgQVBJCitvciBmdW5jdGlvbmFsaXR5LgorPC9wPgorPHA+Rm9yIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlLCBzZWUgdGhlIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG93bmxvYWQvIj4gSUNVNEoKK2Rvd25sb2FkIHNpdGU8L2E+LiA8L3A+Cis8aDMgY2xhc3M9ImRvYyI+Q29udGVudHM8L2gzPgorPHVsIHR5cGU9ImRpc2MiPgorICA8bGk+PGEgaHJlZj0iI2ludHJvZHVjdGlvbiI+SW50cm9kdWN0aW9uIHRvIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjbmV3cyI+V2hhdCBJcyBOZXcgSW4gVGhpcyBSZWxlYXNlPzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2xpY2Vuc2UiPkxpY2Vuc2UgSW5mb3JtYXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNQbGF0Zm9ybURlcGVuZGVuY2llcyI+UGxhdGZvcm0gRGVwZW5kZW5jaWVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjZG93bmxvYWQiPkhvdyB0byBEb3dubG9hZCBJQ1U0SjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1doYXRDb250YWluIj5UaGUgU3RydWN0dXJlIGFuZCBDb250ZW50cyBvZiBJQ1U0SjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0FQSSI+V2hlcmUgdG8gR2V0IERvY3VtZW50YXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNIb3dUb0luc3RhbGxKYXZhYyI+SG93IHRvIEluc3RhbGwgYW5kIEJ1aWxkPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjSG93VG9Nb2R1bGFyaXplIj5Ib3cgdG8gbW9kdWxhcml6ZSBJQ1U0SjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI3RyeWluZ291dCI+VHJ5aW5nIE91dCBJQ1U0SjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI3Jlc291cmNlcyI+SUNVNEogUmVzb3VyY2UgSW5mb3JtYXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNXaGVyZVRvRmluZE1vcmUiPldoZXJlIHRvIEZpbmQgTW9yZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1N1Ym1pdHRpbmdDb21tZW50cyI+U3VibWl0dGluZyBDb21tZW50cywgUmVxdWVzdGluZworRmVhdHVyZXMgYW5kIFJlcG9ydGluZyBCdWdzPC9hPjwvbGk+Cis8L3VsPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9ImludHJvZHVjdGlvbiI+PC9hPkludHJvZHVjdGlvbiB0byBJQ1U0SjwvaDM+Cis8cD5UaGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIChJQ1UpIGxpYnJhcnkgcHJvdmlkZXMKK3JvYnVzdCBhbmQKK2Z1bGwtZmVhdHVyZWQgVW5pY29kZSBzZXJ2aWNlcyBvbiBhIHdpZGUgdmFyaWV0eSBvZiBwbGF0Zm9ybXMuIElDVQorc3VwcG9ydHMgdGhlCittb3N0IGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgVW5pY29kZSBzdGFuZGFyZCwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yCitzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgKG5lZWRlZCBmb3IgR0IgMTgwMzAgcmVwZXJ0b2lyZSBzdXBwb3J0KS48L3A+Cis8cD5KYXZhIHByb3ZpZGVzIGEgc3Ryb25nIGZvdW5kYXRpb24gZm9yIGdsb2JhbCBwcm9ncmFtcywgYW5kIElCTSBhbmQKK3RoZQorSUNVIHRlYW0gcGxheWVkIGEga2V5IHJvbGUgaW4gcHJvdmlkaW5nIGdsb2JhbGl6YXRpb24gdGVjaG5vbG9neSB0bworSmF2YS4gQnV0IGJlY2F1c2Ugb2YgaXRzIGxvbmcgcmVsZWFzZSBzY2hlZHVsZSwgSmF2YSBjYW5ub3QgYWx3YXlzIGtlZXAKK3VwIHdpdGggZXZvbHZpbmcgc3RhbmRhcmRzLiBUaGUgSUNVIHRlYW0gY29udGludWVzIHRvIGV4dGVuZCBKYXZhJ3MKK1VuaWNvZGUgYW5kIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQsIGZvY3VzaW5nIG9uIGltcHJvdmluZworcGVyZm9ybWFuY2UsCitrZWVwaW5nIGN1cnJlbnQgd2l0aCB0aGUgVW5pY29kZSBzdGFuZGFyZCwgYW5kIHByb3ZpZGluZyByaWNoZXIgQVBJcywKK3doaWxlCityZW1haW5pbmcgYXMgY29tcGF0aWJsZSBhcyBwb3NzaWJsZSB3aXRoIHRoZSBvcmlnaW5hbCBKYXZhIHRleHQgYW5kCitpbnRlcm5hdGlvbmFsaXphdGlvbiBBUEkgZGVzaWduLjwvcD4KKzxwPklDVTRKIGlzIGFuIGFkZC1vbiB0byB0aGUgcmVndWxhciBKVk0gdGhhdCBwcm92aWRlczoKKzwvcD4KKzx1bD4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfSW50cm8uaHRtbCI+PGI+Q29sbGF0aW9uPC9iPjwvYT4KKyYjODIxMTsgcnVsZS1iYXNlZCwgdXAtdG8tZGF0ZSBVbmljb2RlIENvbGxhdGlvbiBBbGdvcml0aG0gKFVDQSkgc29ydGluZyBvcmRlcjxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvciBmYXN0IG11bHRpbGluZ3VhbCBzdHJpbmcgY29tcGFyaXNvbjsgZmFzdGVyCithbmQgbW9yZSBjb21wbGV0ZSB0aGFuCit0aGUgSkRLPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9zdHJpbmdzLmh0bWwiPjxiPlN1cHBsZW1lbnRhcnkKK0NoYXJhY3RlcnM8L2I+PC9hPiAmIzgyMTE7IFN0cmluZyBtYW5pcHVsYXRpb24gYW5kIGNoYXJhY3RlciBwcm9wZXJ0aWVzPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIHByb3BlciBHQiAxODAzMCBhbmQgSklTIDIxMworcmVwZXJ0b2lyZSBzdXBwb3J0PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9jaGFyc2V0RGV0ZWN0aW9uLmh0bWwiPjxiPkNoYXJzZXQKK0RldGVjdGlvbjwvYj48L2E+ICYjODIxMTsgUmVjb2duaXRpb24gb2YgdmFyaW91cyBzaW5nbGUgYW5kIG11bHRpYnl0ZSBjaGFyc2V0czxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZWZ1bCBmb3IgcmVjb2duaXppbmcgdW50YWdnZWQgdGV4dCBkYXRhPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3VuaWNvZGVTZXQuaHRtbCI+PGI+VW5pY29kZVNldDwvYj48L2E+CismIzgyMTE7IHN0YW5kYXJkIHNldCBvcGVyYXRpb25zIG9wdGltaXplZCBmb3Igc2V0cyBvZiBVbmljb2RlIGNoYXJhY3RlcnM8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtVbmljb2RlU2V0cyBjYW4gYmUgYnVpbHQgZnJvbSBzdHJpbmcgcGF0dGVybnMKK3VzaW5nIGFueSBVbmljb2RlIHByb3BlcnRpZXMuPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9UcmFuc2Zvcm0uaHRtbCI+PGI+VHJhbnNmb3JtczwvYj48L2E+CismIzgyMTE7IGEgZmxleGlibGUgbWVjaGFuaXNtIGZvciBVbmljb2RlIHRleHQgY29udmVyc2lvbnM8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmNsdWRpbmcgRnVsbC9IYWxmd2lkdGggY29udmVyc2lvbnMsCitOb3JtYWxpemF0aW9uLCBDYXNlIGNvbnZlcnNpb25zLCBIZXgKK2NvbnZlcnNpb25zLCBhbmQgdHJhbnNsaXRlcmF0aW9ucyBiZXR3ZWVuIHNjcmlwdHMgKDUwKyBwYWlycyk8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvbm9ybWFsaXphdGlvbi5odG1sIj48Yj5Vbmljb2RlCitOb3JtYWxpemF0aW9uPC9iPjwvYT4gJiM4MjExOyBORkMsIE5GRCwgTkZLRCwgTkZLQzxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvciBjYW5vbmljYWwgdGV4dCByZXByZXNlbnRhdGlvbnMsIG5lZWRlZCBmb3IKK1hNTCBhbmQgdGhlIG5ldDwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9kYXRlQ2FsZW5kYXIuaHRtbCI+PGI+SW50ZXJuYXRpb25hbAorQ2FsZW5kYXJzPC9iPjwvYT4gJiM4MjExOyBBcmFiaWMsIEJ1ZGRoaXN0LCBIZWJyZXcsIEphcGFuZXNlLCBFdGhpb3BpYywgSXNsYW1pYywgQ29wdGljIGFuZCBDaGluZXNlIGNhbGVuZGFyczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHByZXNlbnRhdGlvbiBvZiBkYXRlcyBpbgorY2VydGFpbiBjb3VudHJpZXM8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvZm9ybWF0TnVtYmVycy5odG1sIj48Yj5OdW1iZXIKK0Zvcm1hdAorRW5oYW5jZW1lbnRzPC9iPjwvYT4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCwgZXRjLjxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuaGFuY2VtZW50cyB0byB0aGUgbm9ybWFsIEphdmEgbnVtYmVyCitmb3JtYXR0aW5nLiBUaGUgc3BlbGwtb3V0IGZvcm1hdCBpcwordXNlZCBmb3IgY2hlY2tzIGFuZCBzaW1pbGFyIGRvY3VtZW50czwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwiPjxiPkVuaGFuY2VkCitXb3JkLUJyZWFrIERldGVjdGlvbjwvYj48L2E+ICYjODIxMTsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHN1cHBvcnQgb2YgVGhhaTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9jb21wcmVzc2lvbi5odG1sIj48Yj5Vbmljb2RlCitUZXh0CitDb21wcmVzc2lvbjwvYj48L2E+ICYjODIxMTsgU3RhbmRhcmQgY29tcHJlc3Npb24gb2YgVW5pY29kZSB0ZXh0PGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3VpdGFibGUgZm9yIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgZmllbGRzLAord2hlcmUgTFpXIGFuZCBzaW1pbGFyIHNjaGVtZXMKK2RvIG5vdCBhcHBseTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9jb252ZXJzaW9uLmh0bWwiPjxiPkNoYXJzZXQgQ29udmVyc2lvbjwvYj48L2E+ICYjODIxMTsgQ29udmVyc2lvbiB0byBhbmQgZnJvbSBkaWZmZXJlbnQgY2hhcnNldHMuPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGx1Z3MgaW50byBKREsncyBDaGFyc2V0UHJvdmlkZXIgU2VydmljZSBQcm92aWRlciBJbnRlcmZhY2UgKFNQSSk8L2xpPgorCis8L3VsPgorPGJsb2NrcXVvdGU+CisgIDxwPjxiPk5vdGU6PC9iPiBXZSBjb250aW51ZSB0byBwcm92aWRlIGFzc2lzdGFuY2UgdG8gU3VuLCBhbmQgaW4gc29tZQorY2FzZXMsIElDVTRKIHN1cHBvcnQgaGFzIGJlZW4gcm9sbGVkIGludG8gYSBsYXRlciByZWxlYXNlIG9mIEphdmEuIEZvcgorZXhhbXBsZSwgdGhlIFRoYWkgd29yZC1icmVhayBpcyBub3cgaW4gSmF2YSAxLjQuIEhvd2V2ZXIsIHRoZSBtb3N0CitjdXJyZW50IGFuZCBjb21wbGV0ZSB2ZXJzaW9uIGlzIGFsd2F5cyBmb3VuZCBpbiBJQ1U0Si48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8IS0tCisKKzxwPjxiPklDVTRKIGlzIGFuIGFkZC1vbiBsaWJyYXJ5IHRoYXQgZXh0ZW5kcyBKYXZhJ3MgZ2xvYmFsaXphdGlvbgorCisgICAgdGVjaG5vbG9neS48L2I+IEphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsCisKKyAgICBwcm9ncmFtcywgYnV0IEphdmEgZG9lcyBub3QgeWV0IHByb3ZpZGUgYWxsIHRoZSBnbG9iYWxpemF0aW9uCisKKyAgICBmZWF0dXJlcyB0aGF0IHNvbWUgcHJvZHVjdHMgcmVxdWlyZS4gIElCTSBwbGF5ZWQgYSBrZXkgcm9sZSBpbgorCisgICAgcHJvdmlkaW5nIGdsb2JhbGl6YXRpb24gdGVjaG5vbG9neSB0byBTdW4gZm9yIHVzZSBpbiBKYXZhLiAgT3ZlcgorCisgICAgdGhlIHBhc3Qgc2V2ZW4geWVhcnMsIHRoZSBJQ1UgdGVhbSBoYXMgY29udGludWVkIHRvIGVuaGFuY2UgYW5kCisKKyAgICBleHRlbmQgdGhpcyB0ZWNobm9sb2d5LiAgSUJNIG1ha2VzIHRoaXMgdGVjaG5vbG9neSBhdmFpbGFibGUKKworICAgIGluIEphdmEgdGhyb3VnaCB0aGUgSUNVNEogb3Blbi1zb3VyY2UgcHJvamVjdC48L3A+CisKKworCis8cD5JQ1U0SiBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHRvb2xzOgorCisgICAgPHVsPgorCisgICAgPGxpPjxiPlVuaWNvZGUgTm9ybWFsaXphdGlvbjwvYj4gJiM4MjExOyBORkMsIE5GRCwgTkZLRCwgTkZLQzxicj4KKworICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9kdWNlcyBjYW5vbmljYWwgdGV4dCByZXByZXNlbnRhdGlvbnMsIG5lZWRlZCBmb3IgWE1MIGFuZCB0aGUgbmV0LgorCisgICAgPGxpPjxiPkludGVybmF0aW9uYWwgQ2FsZW5kYXJzPC9iPiAmIzgyMTE7IEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgYW5kIEphcGFuZXNlPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHByZXNlbnRhdGlvbiBvZiBkYXRlcyBpbiBzb21lIGNvdW50cmllcy4KKworICAgIDxsaT48Yj5OdW1iZXIgRm9ybWF0IEVuaGFuY2VtZW50czwvYj4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCBOdW1iZXJzPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuaGFuY2VzIHN0YW5kYXJkIEphdmEgbnVtYmVyIGZvcm1hdHRpbmcuIFRoZSBzcGVsbGVkLW91dCBmb3JtYXQgaXMgdXNlZAorCitmb3IgY2hlY2tzIGFuZCBzaW1pbGFyIGRvY3VtZW50cy4KKworICAgIDxsaT48Yj5FbmhhbmNlZCB3b3JkLWJyZWFrIGRldGVjdGlvbjwvYj4gJiM4MjExOyBSdWxlLWJhc2VkLCBzdXBwb3J0cyBUaGFpPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHN1cHBvcnQgb2YgVGhhaS4KKworICAgIDxsaT48Yj5Vbmljb2RlIFRleHQgQ29tcHJlc3Npb248L2I+ICYjODIxMTsgU3RhbmRhcmQgY29tcHJlc3Npb24gb2YgVW5pY29kZSB0ZXh0PGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N1aXRhYmxlIGZvciBsYXJnZSBudW1iZXJzIG9mIHNtYWxsIGZpZWxkcywgd2hlcmUgTFpXIGFuZCBzaW1pbGFyIHNjaGVtZXMKKworZG8gbm90IGFwcGx5LgorCisgICAgPGxpPjxiPkNvbGxhdGlvbjwvYj4gJiM4MjExOyBSdWxlLWJhc2VkLCB1cC10by1kYXRlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSBzb3J0aW5nIG9yZGVyPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvciBmYXN0IG11bHRpbGluZ3VhbCBzdHJpbmcgY29tcGFyaXNvbgorCisgICAgPGxpPjxiPlRyYW5zZm9ybXM8L2I+ICYjODIxMTsgUnVsZS1iYXNlZCB0cmFuc2Zvcm1hdGlvbnMgb2YgdW5pY29kZSBkYXRhPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZWZ1bCBmb3IgYW5hbHlzaXMgYW5kIHRyYW5zbGl0ZXJhdGlvbgorCisgICAgPC91bD4KKworICAgICAgICAKKworSW4gc29tZSBjYXNlcywgdGhlIGFib3ZlIHN1cHBvcnQgaGFzIGJlZW4gcm9sbGVkIGludG8gYSBsYXRlciByZWxlYXNlIG9mCisKK0phdmEuIEZvciBleGFtcGxlLCB0aGUgVGhhaSB3b3JkLWJyZWFrIGlzIG5vdyBpbiBKYXZhIDEuNC4gSG93ZXZlciwgdGhlIG1vc3QKKworY3VycmVudCBhbmQgY29tcGxldGUgdmVyc2lvbiBvZiB0aGlzIHN1cHBvcnQgaXMgYWx3YXlzIGZvdW5kIGluIElDVTRKLgorCistLT4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJuZXdzIj48L2E+V2hhdCBJcyBOZXcgSW4gVGhpcyBSZWxlYXNlPzwvaDM+Cis8dWw+CisgICAgICA8bGk+PHN0cm9uZz5Vbmljb2RlPC9zdHJvbmc+OiBJQ1UgdXNlcyBhbmQgc3VwcG9ydHMgVW5pY29kZSA1LjAsIHdoaWNoIGlzIHRoZQorICAgICAgbGF0ZXN0IG1ham9yIHJlbGVhc2Ugb2YgVW5pY29kZS4gVW5pY29kZSA1LjAgd2lsbCBiZSB1c2VkIGluIG1hbnkKKyAgICAgIG9wZXJhdGluZyBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMsIGFuZCB0aGlzIHZlcnNpb24gb2YgSUNVIGlzIGltcG9ydGFudAorICAgICAgbWFpbnRhaW4gaW50ZXJvcGVyYWJpbGl0eSB3aXRoIHRoZXNlIG5ldyBvcGVyYXRpbmcgc3lzdGVtcyBhbmQgYXBwbGljYXRpb25zLgorICAgICAgTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIDUuMCBjYW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvcHJlc3MvcHItdWNkNS4wLmh0bWwiPlVuaWNvZGUgcHJlc3MKKyAgICAgIHJlbGVhc2U8L2E+LjwvbGk+CisgICAgICA8bGk+PHN0cm9uZz5Mb2NhbGUgRGF0YTwvc3Ryb25nPjogSUNVIHVzZXMgYW5kIHN1cHBvcnRzIGRhdGEgZnJvbSA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3ByZXNzL3ByLWNsZHIxLjQuaHRtbCI+Q29tbW9uIExvY2FsZSBEYXRhCisgICAgICBSZXBvc2l0b3J5IChDTERSKSAxLjQ8L2E+LCB3aGljaCBpbmNsdWRlcyBtYW55IGltcHJvdmVtZW50cyBpbiBxdWFsaXR5CisgICAgICBhbmQgcXVhbnRpdHkgb2YgZGF0YS4gVGhlcmUgaXMgMjUlIG1vcmUgQ0xEUiBsb2NhbGUgZGF0YSBpbiAyNDUgbG9jYWxlcyBpbiBJQ1UuPC9saT4KKyAgICA8bGk+PHN0cm9uZz5HbG9iYWxpemF0aW9uIFByZWZlcmVuY2VzPC9zdHJvbmc+OiBBIG5ldyBmbGV4aWJsZSBjb250YWluZXIgZm9yIGxvY2FsZSBkYXRhIHdhcyBhZGRlZC48L2xpPgorICAgIDxsaT48c3Ryb25nPkZvcm1hdHRpbmc8L3N0cm9uZz46IEEgPHN0cm9uZz5wcmV2aWV3PC9zdHJvbmc+IG9mIHRoZSBmbGV4aWJsZSBkYXRlL3RpbWUgZm9ybWF0IGdlbmVyYXRvciBoYXMgYmVlbiBhZGRlZC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0ZSBhbmQgdGltZSBmb3JtYXQgcGF0dGVybnMgdG8gYmUgZ2VuZXJhdGVkIHRoYXQgYXJlIHZhbGlkIGZvciBzcGVjaWZpYyBsb2NhbGVzLjwvbGk+CisgICAgPGxpPjxzdHJvbmc+Q2hhcnNldCBDb252ZXJzaW9uPC9zdHJvbmc+OiBBIDxzdHJvbmc+cHJldmlldzwvc3Ryb25nPiBvZiB0aGUgSUNVNEogaW1wbGVtZW50YXRpb24gb2YgdGhlIGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldCBBUEkgd2FzIGFkZGVkLjwvbGk+Cis8L3VsPgorPHA+PGk+PGZvbnQgY29sb3I9InJlZCI+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBEbyBub3QgdXNlIHByZXZpZXcgQVBJcyBpbiBwcm9kdWN0aW9uIGNvZGUuIFRoZXkgbWF5IGNoYW5nZSBkcmFzdGljYWxseSBpbiBzdWJzZXF1ZW50IHJlbGVhc2VzLjwvZm9udD48L2k+PC9wPgorCis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0ibGljZW5zZSI+PC9hPkxpY2Vuc2UgSW5mb3JtYXRpb248L2gzPgorPHA+CitUaGUgSUNVIHByb2plY3RzIChJQ1U0QyBhbmQgSUNVNEopIHVzZSB0aGUgWCBsaWNlbnNlLiBUaGUgWAorbGljZW5zZSBpcyA8Yj5zdWl0YWJsZSBmb3IgY29tbWVyY2lhbCB1c2U8L2I+IGFuZCBpcyBhIHJlY29tbWVuZGVkIGZyZWUgc29mdHdhcmUgbGljZW5zZQordGhhdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEdOVSBHUEwgbGljZW5zZS4gVGhpcyBiZWNhbWUKK2VmZmVjdGl2ZSB3aXRoIHJlbGVhc2UgMS44LjEgb2YgSUNVNEMgYW5kIHJlbGVhc2UgMS4zLjEgb2YgSUNVNEogaW4KK21pZC0yMDAxLiBBbGwgbmV3IElDVSByZWxlYXNlcyB3aWxsIGFkb3B0IHRoZSBYIGxpY2Vuc2U7IHByZXZpb3VzIElDVQorcmVsZWFzZXMgY29udGludWUgdG8gdXRpbGl6ZSB0aGUgSVBMIChJQk0gUHVibGljIExpY2Vuc2UpLiBVc2Vycworb2YgcHJldmlvdXMgcmVsZWFzZXMgb2YgSUNVIHdobyB3YW50IHRvIGFkb3B0IG5ldyBJQ1UgcmVsZWFzZXMgd2lsbAorbmVlZCB0byBhY2NlcHQgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBYIGxpY2Vuc2UuCis8L3A+Cis8cD4KK1RoZSBtYWluIGVmZmVjdCBvZiB0aGUgY2hhbmdlIGlzIHRvIHByb3ZpZGUgR1BMIGNvbXBhdGliaWxpdHkuCitUaGUgWCBsaWNlbnNlIGlzIGxpc3RlZCBhcyBHUEwgY29tcGF0aWJsZSwgc2VlIHRoZSBHTlUgcGFnZSBhdCAKKzxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2xpY2Vuc2UtbGlzdC5odG1sI0dQTENvbXBhdGlibGVMaWNlbnNlcyI+CitodHRwOi8vd3d3LmdudS5vcmcvcGhpbG9zb3BoeS9saWNlbnNlLWxpc3QuaHRtbCNHUExDb21wYXRpYmxlTGljZW5zZXM8L2E+LgorVGhpcyBtZWFucyB0aGF0IEdQTCBwcm9qZWN0cyBjYW4gbm93IHVzZSBJQ1UgY29kZSwgaXQgZG9lcyA8Yj5ub3Q8L2I+CittZWFuIHRoYXQgcHJvamVjdHMgdXNpbmcgSUNVIGJlY29tZSBzdWJqZWN0IHRvIEdQTC4KKzwvcD4KKzxwPgorIFRoZSBJQk0gdmVyc2lvbiBjb250YWlucyB0aGUgZXNzZW50aWFsIHRleHQgb2YgdGhlIGxpY2Vuc2UsIG9taXR0aW5nIHRoZQorWC1zcGVjaWZpYyB0cmFkZW1hcmtzIGFuZCBjb3B5cmlnaHQgbm90aWNlcy4gVGhlIGZ1bGwgY29weSBvZiA8YQorIGhyZWY9ImxpY2Vuc2UuaHRtbCI+SUNVJ3MgbGljZW5zZTwvYT4gaXMgaW5jbHVkZWQgaW4gdGhlIGRvd25sb2FkCitwYWNrYWdlLgorPC9wPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IlBsYXRmb3JtRGVwZW5kZW5jaWVzIj48L2E+UGxhdGZvcm0gRGVwZW5kZW5jaWVzPC9oMz4KKzxwPiBCeSBkZWZhdWx0IElDVTRKIGRlcGVuZHMgb24gZnVuY3Rpb25hbGl0eSB0aGF0IGlzIG9ubHkgYXZhaWxhYmxlCitpbiBKREsgMS40LiAgV2UgcHJvdmlkZSB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHZhcmlhbnQgb2YgSUNVNEoKK3RoYXQgd2lsbCBydW4gb24gSkRLIDEuMywgYnV0IG5vdCBhbGwgYnVpbGQgdGFyZ2V0cyB3b3JrIG9uIHRoYXQKK3BsYXRmb3JtLiBDdXJyZW50bHkgMS4xLnggYW5kIDEuMi54IEpWTXMgYXJlIHVuc3VwcG9ydGVkIGFuZCB1bnRlc3RlZCwKK2FuZCB5b3UgdXNlIHRoZSBjb21wb25lbnRzIG9uIHRoZXNlIEpWTXMgYXQgeW91ciBvd24gcmlzay48L3A+Cis8cD4gVGhlIHJlZmVyZW5jZSBwbGF0Zm9ybXMgd2hpY2ggd2Ugc3VwcG9ydCBhbmQgdGVzdCBJQ1U0SiBvbiBhcmU6PC9wPgorPHVsPgorICA8bGk+IFdpblhQLCBJQk0gSkRLIDEuNS4wPC9saT4KKyAgPGxpPiBTb2xhcmlzIDUuOSwgU3VuIEpESyAxLjUuMDwvbGk+CisgIDxsaT4gQUlYIDUuMiwgSUJNIEpESyAxLjUuMDwvbGk+Cis8L3VsPgorPHA+UGxlYXNlIHVzZSB0aGUgbW9zdCByZWNlbnQgdXBkYXRlcyBvZiB0aGUgc3VwcG9ydGVkIEpESyB2ZXJzaW9ucy48L3A+Cis8cD5BZGRpdGlvbmFsbHksIHdlIGhhdmUgYnVpbHQgYW5kIHRlc3RlZCBJQ1U0SiBvbiB0aGUgZm9sbG93aW5nIDxiPnVuc3VwcG9ydGVkPC9iPgorcGxhdGZvcm1zIChub3RlLCBvbmx5IHNvbWUgYnVpbGQvdGVzdCB0YXJnZXRzIHdvcmsgb24gMS4zIHBsYXRmb3Jtcyk6Cis8L3A+Cis8dWw+Cis8bGk+IFdpblhQIC8gSUJNIEpESyAxLjQuMiwgMS40LjEsIFN1biBKREsgIDEuNS4wLCAxLjQuMjwvbGk+Cis8bGk+IFNvbGFyaXMgNS42ICwgU29sYXJpcyA1LjcgLyBTdW4gSkRLIDEuNC4yLCAxLjQuMSwgMS40LjA8L2xpPgorPGxpPiBTb2xhcmlzIDUuOSAvIFN1biBKREsgMS40LjIsIDEuNC4xLCAxLjQuMDwvbGk+Cis8bGk+IEFJWCA1LjIgLyBJQk0gSkRLIDEuNC4yLCAxLjQuMTwvbGk+Cis8bGk+IEFJWCA1LjEgLyBJQk0gSkRLIDEuNC4yLCAxLjQuMTwvbGk+Cis8bGk+IFJlZEhhdCBFbnRlcnByaXNlIExpbnV4IDMvICBJQk0gSkRLIDEuNS4wLCAxLjQuMiwgU3VuIEpESyAgMS41LjAsIDEuNC4yLCAxLjQuMSwgMS40LjA8L2xpPgorPGxpPiBIUCBVWCBTdW4gSkRLICAxLjUuMCwgMS40LjI8L2xpPgorPC91bD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJkb3dubG9hZCI+PC9hPkhvdyB0byBEb3dubG9hZCBJQ1U0SjwvaDM+Cis8cD5UaGVyZSBhcmUgdHdvIHdheXMgdG8gZG93bmxvYWQgdGhlIElDVTRKIHJlbGVhc2VzLgorPC9wPgorPHVsIHR5cGU9ImRpc2MiPgorICA8bGk+PGI+T2ZmaWNpYWwgUmVsZWFzZSBTbmFwc2hvdDo8L2I+PGJyPgorSWYgeW91IHdhbnQgdG8gdXNlIElDVTRKIChhcyBvcHBvc2VkIHRvIGRldmVsb3BpbmcgaXQpLCB5b3VyIGJlc3QgYmV0CitpcyB0byBkb3dubG9hZCBhbiBvZmZpY2lhbCwgcGFja2FnZWQgdmVyc2lvbiBvZiB0aGUgSUNVNEogc291cmNlCitjb2RlLiBUaGVzZSB2ZXJzaW9ucyBhcmUgdGVzdGVkIG1vcmUgdGhvcm91Z2hseSB0aGFuIGRheS10by1kYXkKK2RldmVsb3BtZW50IGJ1aWxkcywgYW5kIHRoZXkgYXJlIHBhY2thZ2VkIGluIGphciBmaWxlcyBmb3IgY29udmVuaWVudAorZG93bmxvYWQuIFRoZXNlIHBhY2thZ2VkIGZpbGVzIGNhbiBiZSBmb3VuZCBhdCB0aGUgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb3dubG9hZC8iPklDVSBEb3dubG9hZHMgcGFnZTwvYT4uCitBIHBhY2thZ2VkIHNuYXBzaG90IGlzIG5hbWVkIDxiPmljdTRqLVhYWC1zcmMuamFyPC9iPiwgd2hlcmUgWFhYCitpcyB0aGUgcmVsZWFzZSB2ZXJzaW9uIG51bWJlci4gUGxlYXNlIHVuamFyIHRoaXMgZmlsZS4gSXQKK3dpbGwgcmVjb25zdHJ1Y3QgdGhlIHNvdXJjZSBkaXJlY3RvcnkuPC9saT4KKzwvdWw+Cis8dWwgdHlwZT0iZGlzYyI+CisgIDxsaT48Yj5DVlMgU291cmNlIFJlcG9zaXRvcnk6PC9iPjxicj4KK0lmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBkZXZlbG9waW5nIGZlYXR1cmVzLCBwYXRjaGVzLCBvciBidWcgZml4ZXMgZm9yCitJQ1U0SiwgeW91IHNob3VsZCBwcm9iYWJseSBiZSB3b3JraW5nIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZQorSUNVNEogc291cmNlIGNvZGUuIFlvdSB3aWxsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgb3V0IG9mIG91ciBDVlMKK3JlcG9zaXRvcnkgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgYWxsIG9mCit0aGUgZmlsZXMuIFRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gZG8gdGhpcy4gUGxlYXNlIGZvbGxvdyB0aGUKK2RpcmVjdGlvbnMgdGhhdCBhcmUgY29udGFpbmVkIG9uIHRoZSA8YQorIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9yZXBvc2l0b3J5LmpzcCI+U291cmNlCisgUmVwb3NpdG9yeSBwYWdlPC9hPiBmb3IgZGV0YWlscy4KKyAgPC9saT4KKzwvdWw+Cis8cD5Gb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkb3dubG9hZCBJQ1U0SiBkaXJlY3RseSBmcm9tIHRoZSB3ZWIKK3NpdGUsIHBsZWFzZSBzZWUgdGhlIElDVSBkb3dubG9hZHMgcGFnZSBhdCA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2Rvd25sb2FkLyI+aHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG93bmxvYWQvPC9hPgorPC9wPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IldoYXRDb250YWluIj48L2E+VGhlIFN0cnVjdHVyZSBhbmQgQ29udGVudHMgb2YKK0lDVTRKPC9oMz4KKzxwPkJlbG93LCA8Yj4kUm9vdDwvYj4gaXMgdGhlIHBsYWNlbWVudCBvZiB0aGUgaWN1IGRpcmVjdG9yeSBpbiB5b3VyCitmaWxlIHN5c3RlbSwgbGlrZQorImRyaXZlOlwuLi5caWN1NGoiIGluIHlvdXIgZW52aXJvbm1lbnQuICJkcml2ZTpcLi4uIiBzdGFuZHMgZm9yIGFueQorZHJpdmUgYW5kIGFueSBkaXJlY3Rvcnkgb24gdGhhdCBkcml2ZSB0aGF0IHlvdSBjaG9zZSB0byBpbnN0YWxsIGljdTRqCitpbnRvLiA8L3A+Cis8cD48Yj5JbmZvcm1hdGlvbiBhbmQgYnVpbGQgZmlsZXM6PC9iPjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+PGI+cmVhZG1lLmh0bWw8L2I+PGJyPgorKHRoaXMgZmlsZSk8L3RkPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkEgZGVzY3JpcHRpb24gb2YgSUNVNEoKKyhJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEpPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmxpY2Vuc2UuaHRtbDwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+VGhlIFggbGljZW5zZSwgdXNlZCBieQorSUNVNEo8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+YnVpbGQueG1sPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5BbnQgYnVpbGQgZmlsZS4gU2VlIDxhCisgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+IGZvciBtb3JlCitpbmZvcm1hdGlvbjwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8cD48Yj5UaGUgc291cmNlIGRpcmVjdG9yaWVzIG1pcnJvciB0aGUgcGFja2FnZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUuPC9iPjxicj4KKzxmb250IGNvbG9yPSJyZWQiPkNvcmU8L2ZvbnQ+IHBhY2thZ2VzIGJlY29tZSBwYXJ0IG9mIHRoZSBJQ1U0SiBqYXIKK2ZpbGUuPGJyPgorPGZvbnQgY29sb3I9InJlZCI+QVBJPC9mb250PiBwYWNrYWdlcyBjb250YWluIGNsYXNzZXMgd2l0aCBzdXBwb3J0ZWQKK0FQSS4gPGJyPgorPGZvbnQgY29sb3I9InJlZCI+UmljaFRleHQ8L2ZvbnQ+IGNsYXNzZXMgYXJlIENvcmUgYW5kIEFQSSwgYnV0IGNhbiBiZQorcmVtb3ZlZCBmcm9tIGljdTRqLmphciwgYW5kIGNhbiBiZSBidWlsdCBpbnRvIHRoZWlyIG93biBqYXIuPC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIgorIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQ8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEkgKFByZXZpZXcpPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZXMgdGhhdCBwcm92aWRlIENoYXJzZXQgY29udmVyc2lvbgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS9kZXY8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Ob24tQ29yZSwgTm9uLUFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlBhY2thZ2VzIHVzZWQgZm9yCitpbnRlcm5hbCBkZXZlbG9wbWVudDoKKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPkRhdGE6IGRhdGEgdXNlZCBieSB0ZXN0cyBhbmQgaW4gYnVpbGRpbmcgSUNVPC9saT4KKyAgICAgICAgPGxpPkRlbW9zOiBDYWxlbmRhciwgSG9saWRheSwgQnJlYWsgSXRlcmF0b3IsIFJ1bGUtYmFzZWQgTnVtYmVyCitGb3JtYXQsIFRyYW5zZm9ybWF0aW9uczxicj4KKyhTZWUgPGEgaHJlZj0iI3RyeWluZ291dCI+YmVsb3c8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQorZGVtb3MuKTwvbGk+CisgICAgICAgIDxsaT5UZXN0czogQVBJIGFuZCBjb3ZlcmFnZSB0ZXN0cyBvZiBhbGwgZnVuY3Rpb25hbGl0eS48YnI+CitGb3IgaW5mb3JtYXRpb24gYWJvdXQgcnVubmluZyB0aGUgdGVzdHMsIHNlZQorJFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YS48L2xpPgorICAgICAgICA8bGk+VG9vbHM6IHRvb2xzIHVzZWQgdG8gYnVpbGQgZGF0YSB0YWJsZXMsIGV0Yy48L2xpPgorICAgICAgPC91bD4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvaW1wbDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIE5vbi1BUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5UaGVzZSBhcmUgdXRpbGl0eSBjbGFzc2VzCit1c2VkIGZyb20gZGlmZmVyZW50IElDVTRKIGNvcmUgcGFja2FnZXMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS9sYW5nPGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q2hhcmFjdGVyIHByb3BlcnRpZXMKK3BhY2thZ2UuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS9tYXRoPGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QWRkaXRpb25hbCBtYXRoIGNsYXNzZXMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS90ZXh0PGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QWRkaXRpb25hbCB0ZXh0IGNsYXNzZXMuCitUaGVzZSBhZGQgdG8sIGFuZCBpbiBzb21lIGNhc2VzIHJlcGxhY2UsIHJlbGF0ZWQgY29yZSBKYXZhIGNsYXNzZXM6CisgICAgICA8dWw+CisgICAgICAgIDxsaT5BcmFiaWMgc2hhcGluZyA8L2xpPgorICAgICAgICA8bGk+QnJlYWsgaXRlcmF0aW9uIDwvbGk+CisgICAgICAgIDxsaT5EYXRlIGZvcm1hdHRpbmcgPC9saT4KKyAgICAgICAgPGxpPk51bWJlciBmb3JtYXR0aW5nIDwvbGk+CisgICAgICAgIDxsaT5UcmFuc2xpdGVyYXRpb24gPC9saT4KKyAgICAgICAgPGxpPk5vcm1hbGl6YXRpb24gPC9saT4KKyAgICAgICAgPGxpPlN0cmluZyBtYW5pcHVsYXRpb24gPC9saT4KKyAgICAgICAgPGxpPkNvbGxhdGlvbiA8L2xpPgorICAgICAgICA8bGk+U3RyaW5nIHNlYXJjaCA8L2xpPgorICAgICAgICA8bGk+VW5pY29kZSBjb21wcmVzc2lvbiA8L2xpPgorICAgICAgICA8bGk+VW5pY29kZSBzZXRzIDwvbGk+CisgICAgICA8L3VsPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS91dGlsPGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QWRkaXRpb25hbCB1dGlsaXR5CitjbGFzc2VzOgorICAgICAgPHVsPgorICAgICAgICA8bGk+Q2FsZW5kYXJzIC0gR3JlZ29yaWFuLCBCdWRkaGlzdCwgQ29wdGljLCBFdGhpb3BpYywgSGVicmV3LCBJc2xhbWljLCBKYXBhbmVzZSwgQ2hpbmVzZSA8L2xpPgorICAgICAgICA8bGk+SG9saWRheTwvbGk+CisgICAgICAgIDxsaT5UaW1lWm9uZTwvbGk+CisgICAgICAgIDxsaT5WZXJzaW9uSW5mbzwvbGk+CisgICAgICAgIDxsaT5JdGVyYXRpb248L2xpPgorICAgICAgPC91bD4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9yaWNodGV4dDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPlJpY2hUZXh0PC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+U3R5bGVkIHRleHQgZWRpdGluZworcGFja2FnZS4gVGhpcyBpbmNsdWRlcyBkZW1vcywgdGVzdHMsIGFuZCBHVUlzIGZvciBlZGl0aW5nIGFuZAorZGlzcGxheWluZyBzdHlsZWQgdGV4dC4gVGhlIHJpY2h0ZXh0IHBhY2thZ2UgcHJvdmlkZXMgYSBzY3JvbGxhYmxlCitkaXNwbGF5LCB0eXBpbmcsIGFycm93LWtleSBzdXBwb3J0LCB0YWJzLCBhbGlnbm1lbnQgYW5kIGp1c3RpZmljYXRpb24sCit3b3JkLSBhbmQgc2VudGVuY2Utc2VsZWN0aW9uIChieSBkb3VibGUtY2xpY2tpbmcgYW5kIHRyaXBsZS1jbGlja2luZywKK3Jlc3BlY3RpdmVseSksIHRleHQgc3R5bGVzLCBjbGlwYm9hcmQgb3BlcmF0aW9ucyAoY3V0LCBjb3B5IGFuZCBwYXN0ZSkKK2FuZCBhIGxvZyBvZiBjaGFuZ2VzIGZvciB1bmRvLXJlZG8uIFJpY2h0ZXh0IHVzZXMgSmF2YSdzIFRleHRMYXlvdXQgYW5kCitjb21wbGV4IHRleHQgc3VwcG9ydCAocHJvdmlkZWQgdG8gU3VuIGJ5IHRoZSBJQ1U0SiB0ZWFtKS48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPHA+PGI+QnVpbGRpbmcgSUNVNEogY3JlYXRlcyBhbmQgcG9wdWxhdGVzIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3JpZXM6PC9iPjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3QvY2xhc3NlczwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y29udGFpbnMgYWxsIGNsYXNzIGZpbGVzPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L2RvYzwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y29udGFpbnMgSmF2YURvYyBmb3IgYWxsCitwYWNrYWdlczwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8YnI+Cis8cD48Yj5JQ1U0SiBkYXRhIGlzIHN0b3JlZCBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L2I+PC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIgorIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+PGNvZGU+Y29tLmlibS5pY3UuaW1wbC5kYXRhPC9jb2RlPjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+SG9sZHMgZGF0YSB1c2VkIGJ5IHRoZQorSUNVNEogY29yZSBwYWNrYWdlcyAoPGNvZGU+Y29tLmlibS5pY3UubGFuZzwvY29kZT4sIDxjb2RlPmNvbS5pYm0uaWN1LnRleHQ8L2NvZGU+LAorICAgICAgPGNvZGU+Y29tLmlibS5pY3UudXRpbDwvY29kZT4sIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGg8L2NvZGU+IGFuZAorICAgICAgPGNvZGU+Y29tLmlibS5pY3UudGV4dDwvY29kZT4pLiBJbiBwYXJ0aWN1bGFyLCBhbGwgcmVzb3VyY2UKK2luZm9ybWF0aW9uIGlzIHN0b3JlZCBoZXJlLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Y29kZT5jb20uaWJtLmljdS5kZXYuZGF0YTwvY29kZT48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkhvbGRzIGRhdGEgdGhhdCBpcyBub3QKK3BhcnQgb2YgSUNVNEogY29yZSwgYnV0IHJhdGhlciBwYXJ0IG9mIGEgdGVzdCwgc2FtcGxlLCBvciBkZW1vLjwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8YnI+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iQVBJIj48L2E+V2hlcmUgdG8gZ2V0IERvY3VtZW50YXRpb248L2gzPgorPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS8iPklDVSB1c2VyJ3MKK2d1aWRlPC9hPiBjb250YWlucyBsb3RzIG9mIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgSUNVLCBpbiBpdHMgQywKK0MrKywgYW5kIEphdmEgaW5jYXJuYXRpb25zLjwvcD4KKzxwPlRoZSBjb21wbGV0ZSBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgSUNVNEogKGphdmFkb2MpIGlzIGF2YWlsYWJsZSBvbgordGhlIElDVTRKIHdlYiBzaXRlLCBhbmQgY2FuIGJlIGJ1aWx0IGZyb20gdGhlIHNvdXJjZXM6Cis8L3A+Cis8dWw+CisgIDxsaT48YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovIj5JbmRleAordG8gYWxsIElDVTRKIEFQSTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldERldGVjdG9yLmh0bWwiPkNoYXJzZXQgRGV0ZWN0b3I8L2E+ICYjODIxMTsgRGV0ZWN0aW9uIG9mIGNoYXJzZXQgZnJvbSBhIGJ5dGUgc3RyZWFtPC9saT4KKyAgPGxpPkludGVybmF0aW9uYWwgQ2FsZW5kYXJzICYjODIxMTsgPGEKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0J1ZGRoaXN0Q2FsZW5kYXIuaHRtbCI+QnVkZGhpc3Q8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmh0bWwiPkNoaW5lc2U8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuaHRtbCI+Q29wdGljPC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0V0aGlvcGljQ2FsZW5kYXIuaHRtbCI+RXRoaW9waWM8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvR3JlZ29yaWFuQ2FsZW5kYXIuaHRtbCI+R3JlZ29yaWFuPC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmh0bWwiPkhlYnJldzwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9Jc2xhbWljQ2FsZW5kYXIuaHRtbCI+SXNsYW1pYzwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9KYXBhbmVzZUNhbGVuZGFyLmh0bWwiPkphcGFuZXNlPC9hPi48L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmh0bWwiPlVuaWNvZGUKK05vcm1hbGl6YXRpb248L2E+ICYjODIxMTsgQ2Fub25pY2FsIHRleHQgcmVwcmVzZW50YXRpb24gZm9yIFczQy48L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuaHRtbCI+TnVtYmVyCitGb3JtYXQgRW5oYW5jZW1lbnRzPC9hPiAmIzgyMTE7IFNjaWVudGlmaWMgTm90YXRpb24sIFNwZWxsZWQgb3V0LjwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuaHRtbCI+RW5oYW5jZWQKK3dvcmQtYnJlYWsgZGV0ZWN0aW9uPC9hPiAmIzgyMTE7IFJ1bGUtYmFzZWQsIHN1cHBvcnRzIFRoYWk8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5odG1sIj5UcmFuc2xpdGVyYXRpb248L2E+CismIzgyMTE7IEEgZ2VuZXJhbCBmcmFtZXdvcmsgZm9yIG9udmVydGluZyB0ZXh0IGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLAorZS5nLiBDeXJpbGxpYyB0byBMYXRpbiwgb3IgSGV4IHRvIFVuaWNvZGUuIDwvbGk+CisgIDxsaT5Vbmljb2RlIFRleHQgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5odG1sIj5Db21wcmVzc2lvbjwvYT4KKyZhbXA7IDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZURlY29tcHJlc3Nvci5odG1sIj5EZWNvbXByZXNzaW9uPC9hPgorJiM4MjExOyAyOjEgY29tcHJlc3Npb24gb24gRW5nbGlzaCBVbmljb2RlIHRleHQuPC9saT4KKyAgPGxpPkNvbGxhdGlvbiAtIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuaHRtbCI+UnVsZS1iYXNlZAorc29ydGluZzwvYT4sIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmh0bWwiPkVmZmljaWVudAorbXVsdGktbGluZ3VhbCBzZWFyY2hpbmc8L2E+IDwvbGk+Cis8L3VsPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9Ikhvd1RvSW5zdGFsbEphdmFjIj48L2E+SG93IHRvIEluc3RhbGwgYW5kIEJ1aWxkPC9oMz4KKzxwPlRvIGluc3RhbGwgSUNVNEosIHNpbXBseSBwbGFjZSB0aGUgcHJlYnVpbHQgamFyIGZpbGUgPHN0cm9uZz5pY3U0ai5qYXI8L3N0cm9uZz4KK29uIHlvdXIKK0phdmEgQ0xBU1NQQVRILiBJZiB5b3UgbmVlZCBDaGFyc2V0IEFQSSBzdXBwb3J0IHBsZWFzZSBwbGFjZSA8c3Ryb25nPmljdTRqLWNoYXJzZXRzLmphcjwvc3Ryb25nPiBvbiB5b3VyIGNsYXNzIHBhdGguCitObyBvdGhlciBmaWxlcyBhcmUgbmVlZGVkLjwvcD4KKzxwPjxiPkVjbGlwc2UgdXNlcnM6PC9iPiBTZWUgdGhlIElDVTRKIHNpdGUgZm9yIGluZm9ybWF0aW9uIG9uPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb2NzL2VjbGlwc2VfaG93dG8vZWNsaXBzZV9ob3d0by5odG1sIj4KK2hvdyB0byBjb25maWd1cmUgRWNsaXBzZTwvYT4gdG8gYnVpbGQgSUNVNEouPC9wPgorPHA+VG8gYnVpbGQgSUNVNEosIHlvdSB3aWxsIG5lZWQgYSBKYXZhMiBKREsgYW5kIHRoZSBBbnQgYnVpbGQgc3lzdGVtLgorV2Ugc3Ryb25nbHkgcmVjb21tZW5kIHVzaW5nIHRoZSBBbnQgYnVpbGQgc3lzdGVtIHRvIGJ1aWxkIElDVTRKLgorSXQncyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIGJvdGggdGhlIEpESyBhbmQgQW50IHNvbWV3aGVyZSA8ZW0+b3V0c2lkZTwvZW0+Cit0aGUgSUNVNEogZGlyZWN0b3J5LiBGb3IgZXhhbXBsZSwgb24gTGludXggeW91IG1pZ2h0IGluc3RhbGwgdGhlc2UgaW4KKy91c3IvbG9jYWwuPC9wPgorPHVsPgorICA8bGk+SW5zdGFsbCBhIHJlY2VudCBKREssIHZlcnNpb24gMS40Lnggd2lsbCB3b3JrLjwvbGk+CisgIDxsaT5JbnN0YWxsIHRoZSA8YSBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvIj48c3Ryb25nPkFudDwvc3Ryb25nPjwvYT4KK2J1aWxkIHN5c3RlbS4gQW50IGlzIGEgcG9ydGFibGUsIEphdmEtYmFzZWQgYnVpbGQgc3lzdGVtIHNpbWlsYXIgdG8KK21ha2UuIElDVTRKIHVzZXMgQW50IGJlY2F1c2UgaXQgaW50cm9kdWNlcyBubyBvdGhlciBkZXBlbmRlbmNpZXMsIGl0J3MKK3BvcnRhYmxlLCBhbmQgaXQncyBlYXNpZXIgdG8gbWFuYWdlIHRoYW4gYSBjb2xsZWN0aW9uIG9mIG1ha2VmaWxlcy4gV2UKK2N1cnJlbnRseSBidWlsZCBJQ1U0SiB1c2luZyBhIHNpbmdsZSBtYWtlZmlsZSBvbiBib3RoIFdpbmRvd3MgOXggYW5kCitMaW51eCB1c2luZyBBbnQuIFRoZSBidWlsZCBzeXN0ZW0gcmVxdWlyZXMgQW50IDEuNiBvciBsYXRlci4KKyAgICA8cD5JbnN0YWxsaW5nIEFudCBpcyBzdHJhaWdodGZvcndhcmQuIERvd25sb2FkIGl0IChzZWUgPGEKKyBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvYmluZG93bmxvYWQuY2dpIj5odHRwOi8vYW50LmFwYWNoZS5vcmcvYmluZG93bmxvYWQuY2dpPC9hPiksCitleHRyYWN0IGl0IG9udG8geW91ciBzeXN0ZW0sIHNldCBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcywgYW5kIGFkZAoraXRzIGJpbiBkaXJlY3RvcnkgdG8geW91ciBwYXRoLiBGb3IgZXhhbXBsZTogPC9wPgorICAgIDxwcmU+ICAgIHNldCBKQVZBX0hPTUU9QzpcamRrMS41LjA8YnI+ICAgIHNldCBBTlRfSE9NRT1DOlxhbnQ8YnI+ICAgIHNldCBQQVRIPSVQQVRIJTslQU5UX0hPTUUlXGJpbjwvcHJlPgorICAgIDxwPlNlZSB0aGUgY3VycmVudCBBbnQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy48L3A+CisgIDwvbGk+Cis8L3VsPgorPHA+T25jZSB0aGUgSkRLIGFuZCBBbnQgYXJlIGluc3RhbGxlZCwgYnVpbGRpbmcgaXMganVzdCBhIG1hdHRlciBvZgordHlwaW5nIDxzdHJvbmc+YW50PC9zdHJvbmc+IGluIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeS4gVGhpcyBjYXVzZXMKK3RoZSBBbnQgYnVpbGQgc3lzdGVtIHRvIHBlcmZvcm0gYSBidWlsZCBhcyBzcGVjaWZpZWQgYnkgdGhlIGZpbGUKKzxzdHJvbmc+YnVpbGQueG1sPC9zdHJvbmc+LCBsb2NhdGVkIGluIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeS4gWW91CitjYW4gZ2l2ZSBBbnQgb3B0aW9ucyBsaWtlIC12ZXJib3NlLCBhbmQgeW91IGNhbiBzcGVjaWZ5IHRhcmdldHMuIEFudAord2lsbCBvbmx5IGJ1aWxkIHdoYXQncyBiZWVuIGNoYW5nZWQgYW5kIHdpbGwgcmVzb2x2ZSBkZXBlbmRlbmNpZXMKK3Byb3Blcmx5LiBGb3IgZXhhbXBsZTo8L3A+Cis8YmxvY2txdW90ZT4KKyAgPHByZT5GOlxpY3U0aiZndDthbnQgdGVzdHM8YnI+QnVpbGRmaWxlOiBidWlsZC54bWw8YnI+UHJvamVjdCBiYXNlIGRpciBzZXQgdG86IEY6XGljdTRqPGJyPkV4ZWN1dGluZyBUYXJnZXQ6IGNvcmU8YnI+Q29tcGlsaW5nIDcxIHNvdXJjZSBmaWxlcyB0byBGOlxpY3U0alxjbGFzc2VzPGJyPkV4ZWN1dGluZyBUYXJnZXQ6IHRlc3RzPGJyPkNvbXBpbGluZyAyNCBzb3VyY2UgZmlsZXMgdG8gRjpcaWN1NGpcY2xhc3Nlczxicj5Db21wbGV0ZWQgaW4gMTkgc2Vjb25kczwvcHJlPgorPC9ibG9ja3F1b3RlPgorPGk+Tm90ZTogVGhlIGFib3ZlIG91dHB1dCBpcyBhbiBleGFtcGxlLiBUaGUgbnVtYmVycyBhcmUgbGlrZWx5IHRvIGJlIGRpZmZlcmVudCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gSUNVNEouPC9pPgorPHA+VGhlIGZvbGxvd2luZyBhcmUgc29tZSB0YXJnZXRzIHRoYXQgeW91IGNhbiBwcm92aWRlIHRvIDxiPmFudDwvYj4uCitGb3IgbW9yZSB0YXJnZXRzIHJ1biA8Y29kZT5hbnQgLXByb2plY3RoZWxwPC9jb2RlPiBvciBzZWUgdGhlIGJ1aWxkLnhtbCBmaWxlLjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIKKyB3aWR0aD0iNjIzIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmFsbDwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgYWxsIHRhcmdldHMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmNvcmU8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIHRoZSBtYWluIGNsYXNzCitmaWxlcyBpbiB0aGUgc3ViZGlyZWN0b3J5IDxzdHJvbmc+Y2xhc3Nlczwvc3Ryb25nPi4gSWYgbm8gdGFyZ2V0IGlzCitzcGVjaWZpZWQsIGNvcmUgaXMgYXNzdW1lZC48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+dGVzdHM8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIHRoZSB0ZXN0IGNsYXNzCitmaWxlcy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+ZGVtb3M8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIHRoZSBkZW1vcy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+dG9vbHM8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIHRoZSB0b29scy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+ZG9jczwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UnVuIGphdmFkb2Mgb3ZlciB0aGUgbWFpbgorY2xhc3MgZmlsZXMsIGdlbmVyYXRpbmcgYW4gSFRNTCBkb2N1bWVudGF0aW9uIHRyZWUgaW4gdGhlIHN1YmRpcmVjdG9yeSA8c3Ryb25nPmRvYzwvc3Ryb25nPi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+amFyPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5DcmVhdGUgYSBqYXIgYXJjaGl2ZSA8c3Ryb25nPmljdTRqLmphcjwvc3Ryb25nPgoraW4gdGhlIHJvb3QgSUNVNEogZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIG1haW4gY2xhc3MgZmlsZXMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmphclNyYzwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+TGlrZSB0aGUgPHN0cm9uZz5qYXI8L3N0cm9uZz4KK3RhcmdldCwgYnV0IGNvbnRhaW5pbmcgb25seSB0aGUgc291cmNlIGZpbGVzLiA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+amFyRG9jczwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+TGlrZSB0aGUgPHN0cm9uZz5qYXI8L3N0cm9uZz4KK3RhcmdldCwgYnV0IGNvbnRhaW5pbmcgb25seSB0aGUgZG9jcy4gPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnJpY2hlZGl0PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgcmljaGVkaXQgY29yZQorY2xhc3MgZmlsZXMgYW5kIHRlc3RzLiA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+cmljaGVkaXRKYXI8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkNyZWF0ZSB0aGUgcmljaGVkaXQgamFyCitmaWxlICh3aGljaCBjb250YWlucyBvbmx5IHRoZSByaWNoZWRpdCBjb3JlIGNsYXNzIGZpbGVzKS4gVGhlIGZpbGUgPHN0cm9uZz5yaWNoZWRpdC5qYXI8L3N0cm9uZz4KK3dpbGwgYmUgY3JlYXRlZCBpbiB0aGUgPHN0cm9uZz4uL3JpY2hlZGl0PC9zdHJvbmc+IHN1YmRpcmVjdG9yeS4gQW55CitleGlzdGluZyBmaWxlIG9mIHRoYXQgbmFtZSB3aWxsIGJlIG92ZXJ3cml0dGVuLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5yaWNoZWRpdFppcDwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q3JlYXRlIGEgemlwIGFyY2hpdmUgb2YKK3RoZSByaWNoZWRpdCBkb2NzIGFuZCBqYXIgZmlsZSBmb3IgZGlzdHJpYnV0aW9uLiBUaGUgemlwIGZpbGUgPHN0cm9uZz5yaWNoZWRpdC56aXA8L3N0cm9uZz4KK3dpbGwgYmUgY3JlYXRlZCBpbiB0aGUgPHN0cm9uZz4uL3JpY2hlZGl0PC9zdHJvbmc+IHN1YmRpcmVjdG9yeS4gQW55CitleGlzdGluZyBmaWxlIG9mIHRoYXQgbmFtZSB3aWxsIGJlIG92ZXJ3cml0dGVuLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5jbGVhbjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UmVtb3ZlIGFsbCBidWlsdCB0YXJnZXRzLAorbGVhdmluZyB0aGUgc291cmNlLjwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhZCB0aGUgQW50IGRvY3VtZW50YXRpb24gYW5kIHRoZSA8c3Ryb25nPmJ1aWxkLnhtbDwvc3Ryb25nPgorZmlsZS48L3A+Cis8cD5BZnRlciBkb2luZyBhIGJ1aWxkIGl0IGlzIGEgZ29vZCBpZGVhIHRvIHJ1biBhbGwgdGhlIGljdTRqIHRlc3RzIGJ5Cit0eXBpbmc8YnI+Cis8dHQ+ImFudCBjaGVjayI8L3R0PiBvcgorImphdmEKKy1jbGFzc3BhdGggJFJvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCAtbm90aHJvdyIuPC9wPgorPHA+KElmIHlvdSBhcmUgYWxsZXJnaWMgdG8gYnVpbGQgc3lzdGVtcywgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gdXNpbmcKK0FudCB5b3UgY2FuIGJ1aWxkIGJ5IHJ1bm5pbmcgamF2YWMgYW5kIGphdmFkb2MgZGlyZWN0bHkuIFRoaXMKK2lzIG5vdCByZWNvbW1lbmRlZC4gWW91IG1heSBoYXZlIHRvIG1hbnVhbGx5IGNyZWF0ZSBkZXN0aW5hdGlvbgorZGlyZWN0b3JpZXMuKTwvcD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJIb3dUb01vZHVsYXJpemUiPjwvYT5Ib3cgdG8gbW9kdWxhcml6ZSBJQ1U0SjwvaDM+Cis8cD5Tb21lIGNsaWVudHMgbWF5IG5vdCB3aXNoIHRvIHNoaXAgYWxsIG9mIElDVTRKIHdpdGggdGhlaXIKK2FwcGxpY2F0aW9uLCBzaW5jZSB0aGUgYXBwbGljYXRpb24gbWlnaHQgb25seSB1c2UgYSBzbWFsbCBwYXJ0IG9mCitJQ1U0Si4KK0lDVTRKIHJlbGVhc2UgMi42IGFuZCBsYXRlciBwcm92aWRlIGJ1aWxkIG9wdGlvbnMgdG8gYnVpbGQgaW5kaXZpZHVhbAorSUNVNEogJ21vZHVsZXMnIGZvciBhIG1vcmUgY29tcGFjdCBkaXN0cmlidXRpb24uCitUaGUgbW9kdWxlcyBhcmUgYmFzZWQgb24gYSBzZXJ2aWNlIGFuZCB0aGUgQVBJcyB0aGF0IGRlZmluZSBpdCwgZS5nLiwKK3RoZSBub3JtYWxpemVyIG1vZHVsZSBzdXBwb3J0cyBhbGwgdGhlIEFQSXMgb2YgdGhlIE5vcm1hbGl6ZXIgY2xhc3MKKyhhbmQgc29tZSBvdGhlcnMpLiBUZXN0cyBjYW4gYmUgcnVuIHRvIHZlcmlmeSB0aGF0IHRoZSBBUElzIHN1cHBvcnRlZAorYnkgdGhlIG1vZHVsZSBmdW5jdGlvbiBjb3JyZWN0bHkuCitCZWNhdXNlIG9mIGludGVybmFsIGNvZGUgZGVwZW5kZW5jaWVzLCBhIG1vZHVsZSBjb250YWlucyBleHRyYSBjbGFzc2VzCit0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgbW9kdWxlJ3MgY29yZSBzZXJ2aWNlIEFQSS4gU29tZSBvciBtb3N0IG9mIHRoZQorQVBJcyBvZiB0aGVzZSBleHRyYSBjbGFzc2VzIHdpbGwgbm90IHdvcmsuIDxiPk9ubHkgdGhlIG1vZHVsZSdzIGNvcmUKK3NlcnZpY2UgQVBJIGlzIGd1YXJhbnRlZWQuPC9iPiBPdGhlciBBUElzIG1heSB3b3JrIHBhcnRpYWxseSBvciBub3QgYXQKK2FsbCwgc28gY2xpZW50IGNvZGUgc2hvdWxkIGF2b2lkIHRoZW0uPC9wPgorPHA+CitJbmRpdmlkdWFsIG1vZHVsZXMgYXJlIG5vdCBidWlsdCBkaXJlY3RseSBpbnRvIHRoZWlyIG93biBzZXBhcmF0ZSBqYXIKK2ZpbGVzLiBTaW5jZSB0aGVpciBkZXBlbmRlbmNpZXMKK29mdGVuIG92ZXJsYXAsIHVzaW5nIHNlcGFyYXRlIG1vZHVsZXMgdG8gJ2FkZCBvbicgSUNVNEogZnVuY3Rpb25hbGl0eQord291bGQgcmVzdWx0IGluCit1bndhbnRlZCBkdXBsaWNhdGlvbiBvZiBjbGFzcyBmaWxlcy4gSW5zdGVhZCwgYnVpbGRpbmcgYSBtb2R1bGUgY2F1c2VzCithIHN1YnNldCBvZiBJQ1U0SidzCitjbGFzc2VzIHRvIGJlIGJ1aWx0IGFuZCBwdXQgaW50byBJQ1U0SidzIHN0YW5kYXJkIGJ1aWxkIGRpcmVjdG9yeS4KK0FmdGVyIG9uZSBvciBtb3JlIG1vZHVsZSB0YXJnZXRzIGFyZSBidWlsdCwgdGhlICdtb2R1bGVKYXInIHRhcmdldCBjYW4KK3RoZW4gYmUKK2J1aWx0LCB3aGljaCBwYWNrYWdlcyB0aGUgY2xhc3MgZmlsZXMgaW50byBhICdtb2R1bGUgamFyLicgT3RoZXIgdGhhbgordGhlIGZhY3QgdGhhdCBpdAorY29udGFpbnMgZmV3ZXIgY2xhc3MgZmlsZXMsIGxpdHRsZSBkaXN0aW5ndWlzaGVzIHRoaXMgamFyIGZpbGUgZnJvbSBhCitmdWxsIElDVTRKIGphciBmaWxlLAorYW5kIGluIGZhY3QgdGhleSBzaGFyZSB0aGUgc2FtZSBuYW1lLjwvcD4KKzxwPgorQ3VycmVudGx5IElDVTRKIGNhbiBiZSBkaXZpZGVkIGludG8gdGhlIGZvbGxvd2luZyBtb2R1bGVzOgorPC9wPgorPHA+PGI+S2V5OjwvYj48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIiB3aWR0aD0iNjIzIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKworICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5Nb2R1bGUgTmFtZTwvYj48L3RoPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5BbnQgVGFyZ2V0czwvYj48L3RoPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5UZXN0IFBhY2thZ2UgU3VwcG9ydGVkPC9iPjwvdGg+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5TaXplhzwvYj48L3RoPgorICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorCisgICAgICA8dGQgY29sc3Bhbj0iNCI+CisgICAgICA8dGFibGU+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZSo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPk1haW4gQ2xhc3Nlc4YgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorCisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxiPjxmb250IHNpemU9IjIiPiogY29tLmlibS4gc2hvdWxkIGJlIHByZXBlbmRlZCB0byB0aGUgcGFja2FnZSBuYW1lcworbGlzdGVkLgorPGJyPgorhiBDbGFzcyBuYW1lIGluIGJvbGQgaW5kaWNhdGVzIGNvcmUgc2VydmljZSBBUEkuIE9ubHkgQVBJcyBpbiB0aGVzZSBjbGFzc2VzIGFyZQorZnVsbHkgc3VwcG9ydGVkLgorPGJyPgorhyBTaXplcyBhcmUgb2YgdGhlIGNvbXByZXNzZWQgamFyIGZpbGUgY29udGFpbmluZyBvbmx5IHRoaXMgbW9kdWxlLgorVGhlc2Ugc2l6ZXMgYXJlIGFwcHJveGltYXRlIGZvciByZWxlYXNlIDMuNi4KKzwvZm9udD48L2I+Cis8cD48Yj5Nb2R1bGVzOjwvYj48L3A+CisKKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgorCisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPk5vcm1hbGl6ZXI8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5ub3JtYWxpemVyLCBub3JtYWxpemVyVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjY5OCZuYnNwO0tCPC90ZD4KKworICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAorICAgICAgICAgICAgICBVUHJvcGVydHksCisgICAgICAgICAgICAgIFVTY3JpcHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwgCisgICAgICAgICAgICAgIENvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgQ29sbGF0b3IsCisgICAgICAgICAgICAgIDxiPk5vcm1hbGl6ZXI8L2I+LAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0aW9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCisgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciwKKyAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVTZXQsCisgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciwKKyAgICAgICAgICAgICAgVVRGMTYKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCisgICAgICAgICAgICAgIEZyZWV6YWJsZSwKKyAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKworICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Q29sbGF0b3I8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb2xsYXRvciwgY29sbGF0b3JUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjIsMDMxJm5ic3A7S0I8L3RkPgorCisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisKKyAgICAgICAgICAgICAgVUNoYXJhY3RlciwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRW51bXMsCisgICAgICAgICAgICAgIFVQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgVVNjcmlwdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCcmVha0RpY3Rpb25hcnksCisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5Db2xsYXRpb25LZXk8L2I+LAorICAgICAgICAgICAgICA8Yj5Db2xsYXRvcjwvYj4sCisgICAgICAgICAgICAgIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPk5vcm1hbGl6ZXI8L2I+LAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+UnVsZUJhc2VkQ29sbGF0b3I8L2I+LAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICBVVEYxNgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgVUxvY2FsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCisgICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIFZlcnNpb25JbmZvCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5DYWxlbmRhcjwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNhbGVuZGFyLCBjYWxlbmRhclRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MiwwMDYmbmJzcDtLQjwvdGQ+CisKKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnksCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKKyAgICAgICAgICAgICAgVVByb3BlcnR5LAorICAgICAgICAgICAgICBVU2NyaXB0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5tYXRoOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJpZ0RlY2ltYWw8L2I+LAorICAgICAgICAgICAgICBNYXRoQ29udGV4dAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5DaGluZXNlRGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIDxiPkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9sczwvYj4sCisgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBDb2xsYXRvciwKKyAgICAgICAgICAgICAgPGI+RGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIDxiPkRhdGVGb3JtYXRTeW1ib2xzPC9iPiwKKyAgICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIDxiPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9iPiwKKyAgICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCwKKyAgICAgICAgICAgICAgTm9ybWFsaXplciwKKyAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlNpbXBsZURhdGVGb3JtYXQ8L2I+LAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFVGb3JtYXQsCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICBVVEYxNgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJ1ZGRoaXN0Q2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICA8Yj5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgPGI+Q2hpbmVzZUNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+Q29wdGljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5DdXJyZW5jeTwvYj4sCisgICAgICAgICAgICAgIEN1cnJlbmN5QW1vdW50LAorICAgICAgICAgICAgICA8Yj5EYXRlUnVsZTwvYj4sCisgICAgICAgICAgICAgIDxiPkVhc3RlckhvbGlkYXk8L2I+LAorICAgICAgICAgICAgICA8Yj5FdGhpb3BpY0NhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICA8Yj5HcmVnb3JpYW5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIDxiPkhlYnJld0NhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+SGVicmV3SG9saWRheTwvYj4sCisgICAgICAgICAgICAgIDxiPkhvbGlkYXk8L2I+LAorICAgICAgICAgICAgICA8Yj5Jc2xhbWljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5KYXBhbmVzZUNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgTWVhc3VyZSwKKyAgICAgICAgICAgICAgTWVhc3VyZVVuaXQsCisgICAgICAgICAgICAgIDxiPlJhbmdlRGF0ZVJ1bGU8L2I+LAorICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlNpbXBsZURhdGVSdWxlPC9iPiwKKyAgICAgICAgICAgICAgPGI+U2ltcGxlSG9saWRheTwvYj4sCisgICAgICAgICAgICAgIDxiPlNpbXBsZVRpbWVab25lPC9iPiwKKyAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAorICAgICAgICAgICAgICA8Yj5UaW1lWm9uZTwvYj4sCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+QnJlYWtJdGVyYXRvcjwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmJyZWFrSXRlcmF0b3IsCiticmVha0l0ZXJhdG9yVGVzdHM8L3RkPgorCisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmJyZWFraXRlcmF0b3I8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MSw4OTMmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisKKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgVUNoYXJhY3RlciwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyRW51bXMsCisgICAgICAgICAgICAgIFVQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgVVNjcmlwdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorCisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJyZWFrRGljdGlvbmFyeTwvYj4sCisgICAgICAgICAgICAgIDxiPkJyZWFrSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIENvbGxhdG9yLAorICAgICAgICAgICAgICA8Yj5EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgTm9ybWFsaXplciwKKyAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCisgICAgICAgICAgICAgIDxiPlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICBVVEYxNjwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKworICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCisgICAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXksCisgICAgICAgICAgICAgIEZyZWV6YWJsZSwKKyAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisKKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+QmFzaWMgUHJvcGVydGllczwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPnByb3BlcnRpZXNCYXNpYywKK3Byb3BlcnRpZXNCYXNpY1Rlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj44MDImbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJEaXJlY3Rpb248L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRW51bXM8L2I+LAorICAgICAgICAgICAgICA8Yj5VUHJvcGVydHk8L2I+LAorICAgICAgICAgICAgICA8Yj5VU2NyaXB0PC9iPiwKKyAgICAgICAgICAgICAgPGI+VVNjcmlwdFJ1bjwvYj4KKworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCcmVha0RpY3Rpb25hcnksCisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgQ29sbGF0b3IsCisgICAgICAgICAgICAgIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIE5vcm1hbGl6ZXIsCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAorICAgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAorICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5VVEYxNjwvYj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCisgICAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXksCisgICAgICAgICAgICAgIEZyZWV6YWJsZSwKKyAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAorICAgICAgICAgICAgICBWZXJzaW9uSW5mbworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKworICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+RnVsbCBQcm9wZXJ0aWVzPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+cHJvcGVydGllc0Z1bGwsCitwcm9wZXJ0aWVzRnVsbFRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj4xLDgzNyZuYnNwO0tCPC90ZD4KKworICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXI8L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyQ2F0ZWdvcnk8L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRGlyZWN0aW9uPC9iPiwKKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckVudW1zPC9iPiwKKyAgICAgICAgICAgICAgPGI+VVByb3BlcnR5PC9iPiwKKyAgICAgICAgICAgICAgPGI+VVNjcmlwdDwvYj4sCisgICAgICAgICAgICAgIDxiPlVTY3JpcHRSdW48L2I+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnJlYWtEaWN0aW9uYXJ5LAorICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKKyAgICAgICAgICAgICAgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+Tm9ybWFsaXplcjwvYj4sCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgPGI+UmVwbGFjZWFibGU8L2I+LAorICAgICAgICAgICAgICA8Yj5SZXBsYWNlYWJsZVN0cmluZzwvYj4sCisgICAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCisgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+VW5pY29kZUZpbHRlcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVuaWNvZGVNYXRjaGVyPC9iPiwKKyAgICAgICAgICAgICAgPGI+VW5pY29kZVNldDwvYj4sCisgICAgICAgICAgICAgIDxiPlVuaWNvZGVTZXRJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVURjE2PC9iPgorCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICA8Yj5SYW5nZVZhbHVlSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCisgICAgICAgICAgICAgIFVMb2NhbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKKyAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAorICAgICAgICAgICAgICA8Yj5WYWx1ZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgPGI+VmVyc2lvbkluZm88L2I+CisKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5Gb3JtYXR0aW5nPC90aD4KKworICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5mb3JtYXQsIGZvcm1hdFRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0PC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjMsMjA3Jm5ic3A7S0I8L3RkPgorICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKworICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAorICAgICAgICAgICAgICBVUHJvcGVydHksCisgICAgICAgICAgICAgIFVTY3JpcHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lm1hdGg6PC90ZD4KKworICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICA8Yj5CaWdEZWNpbWFsPC9iPgorICAgICAgICAgICAgICBNYXRoQ29udGV4dAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorCisgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCisgICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCwKKyAgICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLAorICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgQ29sbGF0b3IsCisgICAgICAgICAgICAgIDxiPkRhdGVGb3JtYXQ8L2I+LAorICAgICAgICAgICAgICA8Yj5EYXRlRm9ybWF0U3ltYm9sczwvYj4sCisgICAgICAgICAgICAgIDxiPkRlY2ltYWxGb3JtYXQ8L2I+LAorICAgICAgICAgICAgICA8Yj5EZWNpbWFsRm9ybWF0U3ltYm9sczwvYj4sCisgICAgICAgICAgICAgIE1lYXN1cmVGb3JtYXQsCisgICAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQsCisgICAgICAgICAgICAgIE5vcm1hbGl6ZXIsCisgICAgICAgICAgICAgIDxiPk51bWJlckZvcm1hdDwvYj4sCisgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCisgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAorICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKKyAgICAgICAgICAgICAgPGI+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC9iPiwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlNpbXBsZURhdGVGb3JtYXQ8L2I+LAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIFVGb3JtYXQsCisgICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAorICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciwKKyAgICAgICAgICAgICAgVW5pY29kZVNldCwKKyAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAorICAgICAgICAgICAgICBVVEYxNgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIDxiPkJ1ZGRoaXN0Q2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICA8Yj5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKKyAgICAgICAgICAgICAgPGI+Q2hpbmVzZUNhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+Q29wdGljQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgICA8Yj5DdXJyZW5jeTwvYj4sCisgICAgICAgICAgICAgIEN1cnJlbmN5QW1vdW50LAorICAgICAgICAgICAgICA8Yj5FdGhpb3BpY0NhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgRnJlZXphYmxlLAorICAgICAgICAgICAgICA8Yj5HcmVnb3JpYW5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIDxiPkhlYnJld0NhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+SXNsYW1pY0NhbGVuZGFyPC9iPiwKKyAgICAgICAgICAgICAgPGI+SmFwYW5lc2VDYWxlbmRhcjwvYj4sCisgICAgICAgICAgICAgIE1lYXN1cmUsCisgICAgICAgICAgICAgIE1lYXN1cmVVbml0LAorICAgICAgICAgICAgICA8Yj5SYW5nZVZhbHVlSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5TaW1wbGVUaW1lWm9uZTwvYj4sCisgICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKKyAgICAgICAgICAgICAgPGI+VGltZVpvbmU8L2I+LAorICAgICAgICAgICAgICBVTG9jYWxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgVmVyc2lvbkluZm8KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPlN0cmluZ1ByZXAsIElETkE8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5zdHJpbmdQcmVwLCBzdHJpbmdQcmVwVGVzdHM8L3RkPgorCisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+NzI1Jm5ic3A7S0I8L3RkPgorICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorCisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAorICAgICAgICAgICAgICBVUHJvcGVydHksCisgICAgICAgICAgICAgIFVTY3JpcHQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKworICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLAorICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAorICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIENvbGxhdG9yLAorICAgICAgICAgICAgICA8Yj5JRE5BPC9iPiwKKyAgICAgICAgICAgICAgTm9ybWFsaXplciwKKyAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBSZXBsYWNlYWJsZSwKKyAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgICAgICAgICAgPGI+U3RyaW5nUHJlcDwvYj4sCisgICAgICAgICAgICAgIDxiPlN0cmluZ1BhcnNlRXhjZXB0aW9uPC9iPiwKKyAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCisgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCisgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAorICAgICAgICAgICAgICBVbmljb2RlU2V0LAorICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCisgICAgICAgICAgICAgIFVURjE2CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKKyAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAorICAgICAgICAgICAgICBGcmVlemFibGUsCisgICAgICAgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAorICAgICAgICAgICAgICBVTG9jYWxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKKyAgICAgICAgICAgICAgVmVyc2lvbkluZm8KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorCisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPlRyYW5zZm9ybXM8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj50cmFuc2xpdGVyYXRvciwKK3RyYW5zbGl0ZXJhdG9yVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj45ODgmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KKyAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlcjwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYj4sCisgICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJEaXJlY3Rpb248L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRW51bXM8L2I+LAorICAgICAgICAgICAgICA8Yj5VUHJvcGVydHk8L2I+LAorICAgICAgICAgICAgICA8Yj5VU2NyaXB0PC9iPiwKKyAgICAgICAgICAgICAgPGI+VVNjcmlwdFJ1bjwvYj4KKworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICA8Yj5CcmVha0RpY3Rpb25hcnk8L2I+LAorICAgICAgICAgICAgICA8Yj5CcmVha0l0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCisgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwKKyAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAorICAgICAgICAgICAgICBDb2xsYXRvciwKKyAgICAgICAgICAgICAgPGI+RGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPk5vcm1hbGl6ZXI8L2I+LAorICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCisgICAgICAgICAgICAgIDxiPlJlcGxhY2VhYmxlPC9iPiwKKyAgICAgICAgICAgICAgPGI+UmVwbGFjZWFibGVTdHJpbmc8L2I+LAorICAgICAgICAgICAgICA8Yj5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAorICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKKyAgICAgICAgICAgICAgPGI+VHJhbnNsaXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciwKKyAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCisgICAgICAgICAgICAgIDxiPlVuaWNvZGVTZXQ8L2I+LAorICAgICAgICAgICAgICA8Yj5Vbmljb2RlU2V0SXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgICA8Yj5VVEYxNjwvYj4KKworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZD4gPGJyPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgorICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAorICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCisgICAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXksCisgICAgICAgICAgICAgIEZyZWV6YWJsZSwKKyAgICAgICAgICAgICAgPGI+UmFuZ2VWYWx1ZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAorICAgICAgICAgICAgICBVTG9jYWxlLAorICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCisgICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgPGI+VmFsdWVJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICAgIDxiPlZlcnNpb25JbmZvPC9iPgorCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorPCEtLSB0cj4KKworICAgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPk1vZHVsZSBOYW1lPC9iPjwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5BbnQgVGFyZ2V0czwvYj48L3RoPgorCisgICAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+PGI+VGVzdCBQYWNrYWdlIFN1cHBvcnRlZDwvYj48L3RoPgorCisgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlNpemU8L2I+PC90aD4KKworPC90ciAtLT4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8cD5CdWlsZGluZyBhbnkgb2YgdGhlc2UgbW9kdWxlcyBpcyBhcyBlYXN5IGFzIHNwZWNpZnlpbmcgYSBidWlsZAordGFyZ2V0IHRvIHRoZSBBbnQgYnVpbGQgc3lzdGVtLCBlLmc6Cis8YnI+CitUbyBidWlsZCBhIG1vZHVsZSB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIE5vcm1hbGl6ZXIgQVBJOiA8L3A+Cis8b2w+CisgIDxsaT4gQnVpbGQgdGhlIG1vZHVsZS4gPGJyPgorICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplciA8L2NvZGU+IDwvbGk+CisgIDxsaT4gQnVpbGQgdGhlIGphciBjb250YWluaW5nIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT5hbnQgbW9kdWxlSmFyIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXJUZXN0cyA8L2NvZGU+IDwvbGk+CisgIDxsaT4gUnVuIHRoZSB0ZXN0cyBhbmQgdmVyaWZ5IHRoYXQgdGhlIHNlbGYgdGVzdHMgcGFzcy4gPGJyPgorICAgIDxjb2RlPiBqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCAtbm90aHJvdyAtdyA8L2NvZGU+IDwvbGk+Cis8L29sPgorSWYgbW9yZSB0aGFuIG9uZSBtb2R1bGUgaXMgcmVxdWlyZWQsIHRoZSBtb2R1bGUgYnVpbGQgdGFyZ2V0cyBjYW4gYmUKK2NvbmNhdGVuYXRlZCwgZS5nOgorPG9sPgorICA8bGk+IEJ1aWxkIHRoZSBtb2R1bGVzLiA8YnI+CisgICAgPGNvZGU+IGFudCBub3JtYWxpemVyIGNvbGxhdG9yIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgamFyIGNvbnRhaW5pbmcgdGhlIG1vZHVsZXMuIDxicj4KKyAgICA8Y29kZT5hbnQgbW9kdWxlSmFyIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXJUZXN0cyBjb2xsYXRvclRlc3RzIDwvY29kZT4gPC9saT4KKyAgPGxpPiBSdW4gdGhlIHRlc3RzIGFuZCB2ZXJpZnkgdGhhdCB0aGV5IHBhc3MuIDxicj4KKyAgICA8Y29kZT4gamF2YSAtY2xhc3NwYXRoICRpY3U0al9yb290L2NsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwgLW5vdGhyb3cgLXcgPC9jb2RlPiA8L2xpPgorPC9vbD4KK1RoZSBqYXIgc2hvdWxkIGJlIGJ1aWx0IGJlZm9yZSB0aGUgdGVzdHMsIHNpbmNlIGZvciBzb21lIHRhcmdldHMKK2J1aWxkaW5nIHRoZSB0ZXN0cyB3aWxsIGNhdXNlIGFkZGl0aW9uYWwgY2xhc3NlcyB0byBiZSBjb21waWxlZCB0aGF0CithcmUgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBmb3IgdGhlIG1vZHVsZSBpdHNlbGYuCis8aDU+IE5vdGVzOiA8L2g1PgorPHVsPgorICA8bGk+UmVnYXJkbGVzcyBvZiB3aGV0aGVyIElDVTRKIGlzIGJ1aWx0IGFzIGEgd2hvbGUgb3IgYXMgbW9kdWxlcywKK3RoZSBqYXIgZmlsZSBwcm9kdWNlZCBpcyBuYW1lZCA8ZW0+aWN1NGouamFyPC9lbT4uPC9saT4KKyAgPGxpPlRvIGFzY2VydGFpbiBpZiBhbiBpY3U0ai5qYXIgY29udGFpbnMgYWxsIG9mIElDVTRKIG9yIG5vdCwgcGxlYXNlCitzZWUgdGhlIG1hbmlmZXN0IGZpbGUgaW4gdGhlIGphcjwvbGk+CisgIDxsaT5UaGUgdGFyZ2V0IG1vZHVsZUphciBkb2VzIG5vdCBkZXBlbmQgb24gYW55IG90aGVyIHRhcmdldC4gSXQganVzdAorY3JlYXRlcyBhIGphciBvZiBhbGwgY2xhc3MgZmlsZXMgdW5kZXIKKyRpY3U0al9yb290L2NsYXNzZXMvY29tL2libS9pY3UvLCBleGNsdWRpbmcgdGhlIGNsYXNzcyBmaWxlcyBpbgorJGljdTRqX3Jvb3QvY2xhc3Nlcy9jb20vaWJtL2ljdS9kZXYgZm9sZGVyPC9saT4KKyAgPGxpPlRoZSBsaXN0IG9mIG1vZHVsZSBidWlsZCB0YXJnZXRzIGNhbiBiZSBvYnRhaW5lZCBieSBydW5uaW5nIHRoZQorY29tbWFuZDogPGNvZGU+YW50IC1wcm9qZWN0aGVscDwvY29kZT48L2xpPgorPC91bD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJ0cnlpbmdvdXQiPjwvYT5UcnlpbmcgT3V0IElDVTRKPC9oMz4KKzxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlIGRlbW9zIHByb3ZpZGVkIHdpdGggSUNVNEogYXJlIGZvciB0aGUKK21vc3QgcGFydCB1bmRvY3VtZW50ZWQuIFRoaXMgbGlzdCBjYW4gc2hvdyB5b3Ugd2hlcmUgdG8gbG9vaywgYnV0Cit5b3UnbGwKK2hhdmUgdG8gZXhwZXJpbWVudCBhIGJpdC4gVGhlIGRlbW9zICh3aXRoIHRoZQorZXhjZXB0aW9uIG9mIHJpY2hlZGl0KSBhcmUgPHN0cm9uZz51bnN1cHBvcnRlZDwvc3Ryb25nPiBhbmQgbWF5IGNoYW5nZQorb3IgZGlzYXBwZWFyIHdpdGhvdXQgbm90aWNlLjwvcD4KKzxwPlRoZSBpY3U0ai5qYXIgZmlsZSBjb250YWlucyBvbmx5IHRoZSBjb3JlIElDVTRKIGNsYXNzZXMsIG5vdCB0aGUKK2RlbW8gY2xhc3Nlcywgc28gdW5sZXNzIHlvdSBidWlsZCBJQ1U0SiB0aGVyZSBpcyBsaXR0bGUgdG8gdHJ5IG91dC4KKzwvcD4KKzxoND5DaGFyc2V0PC9oND4KK1RvIHRyeSBvdXQgdGhlIDxzdHJvbmc+Q2hhcnNldDwvc3Ryb25nPiBwYWNrYWdlLCBidWlsZCA8c3Ryb25nPmljdTRqLmphcjwvc3Ryb25nPiBhbmQgPHN0cm9uZz5pY3U0ai1jaGFyc2V0cy5qYXI8L3N0cm9uZz4gdXNpbmcgJ2phcicgdGFyZ2V0LgorWW91IGNhbiB1c2UgdGhlIGNoYXJzZXRzIGJ5IHBsYWNpbmcgdGhlc2UgZmlsZXMgb24geW91ciBjbGFzc3BhdGguCis8YmxvY2txdW90ZT48dHQ+amF2YSAtY3AgJFJvb3QvaWN1NGouamFyOiRSb290L2ljdTRqLWNoYXJzZXRzLmphciAmbHQ7eW91ciBwcm9ncmFtJmd0OzwvdHQ+PC9ibG9ja3F1b3RlPgorPGg0PlJpY2ggRWRpdDwvaDQ+CitUbyB0cnkgb3V0IHRoZSA8c3Ryb25nPnJpY2hlZGl0PC9zdHJvbmc+IHBhY2thZ2UsIGZpcnN0IGJ1aWxkIHRoZQorcmljaGVkaXRKYXIgdGFyZ2V0LgorVGhpcyBpcyBhICdydW5uYWJsZScgamFyIGZpbGUuIFRvIHJ1biB0aGUgcmljaGVkaXQgZGVtbywgdHlwZToKKzxibG9ja3F1b3RlPjx0dD5qYXZhIC1qYXIgJFJvb3QvcmljaGVkaXQvcmljaGVkaXQuamFyPC90dD48L2Jsb2NrcXVvdGU+CitUaGlzIHdpbGwgcHJlc2VudCBhbiBlbXB0eSBlZGl0IHBhbmUgd2l0aCBhbiBhd3QgaW50ZXJmYWNlLgorPHA+V2l0aCBhIGZ1bGxlciBjb21tYW5kIGxpbmUgeW91IGNhbiB0cnkgb3V0IG90aGVyIG9wdGlvbnMsIGZvcgorZXhhbXBsZTo8L3A+Cis8YmxvY2txdW90ZT48dHQ+amF2YSAtY2xhc3NwYXRoICRSb290L3JpY2hlZGl0L3JpY2hlZGl0LmphcgorY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vIFstc3dpbmddW2ZpbGVdPC90dD48L2Jsb2NrcXVvdGU+Cis8cD5UaGlzIHdpbGwgdXNlIGFuIGF3dCBHVUksIG9yIGEgc3dpbmcgR1VJIGlmCis8dHQ+LXN3aW5nPC90dD4gaXMgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuIEl0IHdpbGwgb3BlbiBhIHRleHQKK2ZpbGUgaWYgb25lIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgaXQgd2lsbCBvcGVuIGEgYmxhbmsgcGFnZS4gQ2xpY2sKK3RvIHR5cGUuPC9wPgorPHA+CitZb3UgY2FuIGFkZCB0YWJzIHRvIHRoZSB0YWIgcnVsZXIgYnkgY2xpY2tpbmcgaW4gdGhlIHJ1bGVyIHdoaWxlCitob2xkaW5nIGRvd24gdGhlIGNvbnRyb2wga2V5LgorQ2xpY2tpbmcgb24gYW4gZXhpc3RpbmcgdGFiIGNoYW5nZXMgYmV0d2VlbiBsZWZ0LCByaWdodCwgY2VudGVyLCBhbmQKK2RlY2ltYWwgdGFicy4gRHJhZ2dpbmcKK2EgdGFiIG1vdmVzIGl0LCBkcmFnZ2luZyBpdCBvZmYgdGhlIHJ1bGVyIHJlbW92ZXMgaXQuPC9wPgorPHA+CitZb3UgY2FuIGV4cGVyaW1lbnQgd2l0aCBjb21wbGV4IHRleHQgYnkgdXNpbmcgdGhlIGtleW1hcCBmdW5jdGlvbnMuCitQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIGFyZSBtYWlubHkgZm9yIGRlbW8gcHVycG9zZXMsIGZvciByZWFsIHdvcmsKK3dpdGggQXJhYmljIG9yIEhlYnJldyB5b3Ugd2lsbCB3YW50IHRvIHVzZSBhbiBpbnB1dCBtZXRob2QuIFlvdSB3aWxsCituZWVkIHRvIHVzZSBhIGZvbnQgdGhhdCBzdXBwb3J0cyBBcmFiaWMgb3IgSGVicmV3LCAnTHVjaWRhIFNhbnMnCisocHJvdmlkZWQKK3dpdGggSmF2YSkgc3VwcG9ydHMgdGhlc2UgbGFuZ3VhZ2VzLjwvcD4KKzxoND5PdGhlciBkZW1vczwvaDQ+Cis8cD5UaGUgb3RoZXIgZGVtbyBwcm9ncmFtcyBhcmUgPHN0cm9uZz5ub3Qgc3VwcG9ydGVkPC9zdHJvbmc+IGFuZAorZXhpc3Qgb25seSB0byBsZXQgeW91CitleHBlcmltZW50IHdpdGggdGhlIElDVTRKIGNsYXNzZXMuIEZpcnN0LCBidWlsZCBJQ1U0SiB1c2luZyA8dHQ+YW50Jm5ic3A7YWxsPC90dD4uCitUaGVuIHRyeQorb25lIG9mIHRoZSBmb2xsb3dpbmc6Cis8L3A+Cis8dWw+CisgIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyLkNhbGVuZGFyQXBwPC90dD4gPC9saT4KKyAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcworY29tLmlibS5pY3UuZGV2LmRlbW8uaG9saWRheS5Ib2xpZGF5Q2FsZW5kYXJEZW1vPC90dD4gPC9saT4KKyAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcworY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaS5UZXh0Qm91bmREZW1vPC90dD48YnI+CisoQ2xpY2sgaW4gdGhlIHRleHQsIHRoZW4gdXNlIDx0dD5jdHJsLU48L3R0PiBhbmQgPHR0PmN0cmwtUDwvdHQ+IHRvCitzZWxlY3QgdGhlIG5leHQgb3IgcHJldmlvdXMgYmxvY2sgb2YgdGV4dC4pIDwvbGk+CisgIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJuZi5SYm5mRGVtbzwvdHQ+CisgIDwvbGk+CisgIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQuRGVtbzwvdHQ+CisgIDwvbGk+Cis8L3VsPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9InJlc291cmNlcyI+SUNVNEogUmVzb3VyY2UgSW5mb3JtYXRpb248L2E+PC9oMz4KK1N0YXJ0aW5nIHdpdGggcmVsZWFzZSAyLjEsIElDVTRKIGluY2x1ZGVzIGl0cyBvd24KK3Jlc291cmNlIGluZm9ybWF0aW9uCit3aGljaCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBKREsgcmVzb3VyY2UgaW5mb3JtYXRpb24uIChOb3RlLAoraW4gSUNVNEogMy4yIGFuZCAzLjQsIHRpbWUgem9uZSBpbmZvcm1hdGlvbiBzdGlsbCBkZXBlbmRzIG9uIHRoZQordW5kZXJseWluZyBKREspLiBUaGUKK25ldyBJQ1U0SiBpbmZvcm1hdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSBpbmZvcm1hdGlvbiBpbiBJQ1U0QyBhbmQKK21hbnkKK3Jlc291cmNlcyBhcmUsIGluIGZhY3QsIHRoZSBzYW1lIGJpbmFyeSBmaWxlcyB0aGF0IElDVTRDIHVzZXMuCis8cD4KK0J5IGRlZmF1bHQgdGhlIElDVTRKIGRpc3RyaWJ1dGlvbiBpbmNsdWRlcyBhbGwgb2YgdGhlIHN0YW5kYXJkIHJlc291cmNlCitpbmZvcm1hdGlvbi4gSXQgaXMgbG9jYXRlZCB1bmRlciB0aGUgZGlyZWN0b3J5IGNvbS9pYm0vaWN1L2ltcGwvZGF0YS4KK0RlcGVuZGluZyBvbiB0aGUgc2VydmljZSwgdGhlIGRhdGEgaXMgaW4gZGlmZmVyZW50IGxvY2F0aW9ucyBhbmQgaW4KK2RpZmZlcmVudCBmb3JtYXRzLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgd2lsbCBjb250aW51ZSB0byBjaGFuZ2UKK2Zyb20gcmVsZWFzZSB0byByZWxlYXNlLCBzbyBjbGllbnRzIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBleGFjdAorb3JnYW5pemF0aW9uCitvZiB0aGUgZGF0YSBpbiBJQ1U0Si48L3A+Cis8dWw+CisgIDxsaT5UaGUgcHJpbWFyeSA8Yj5sb2NhbGUgZGF0YTwvYj4gaXMgdW5kZXIgdGhlIGRpcmVjdG9yeSA8dHQ+aWN1ZHQzNmI8L3R0PiwKK2FzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcyB3aG9zZSBuYW1lcyBhcmUgdGhlIGxvY2FsZSBpZGVudGlmaWVycy4gCitMb2NhbGUgbmFtaW5nIGlzIGRvY3VtZW50ZWQgdGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTwvY29kZT4KK2NsYXNzLCBhbmQgdGhlIHVzZSBvZiB0aGVzZSBuYW1lcyBpbiBzZWFyY2hpbmcgZm9yIHJlc291cmNlcyBpcyBkb2N1bWVudGVkIAoraW4gPGNvZGU+amF2YS51dGlsLlJlc291cmNlQnVuZGxlPC9jb2RlPi4KKyAgPC9saT4KKyAgPGxpPlRoZSA8Yj5jb2xsYXRpb24gZGF0YTwvYj4gaXMgdW5kZXIgdGhlIGRpcmVjdG9yeSA8dHQ+aWN1ZHQzNmIvY29sbDwvdHQ+LAorYXMgYSBzZXQgb2YgPHR0PiIucmVzIjwvdHQ+IGZpbGVzLjwvbGk+CisgIDxsaT5UaGUgPGI+cnVsZS1iYXNlZCB0cmFuc2xpdGVyYXRvciBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5Cis8dHQ+aWN1ZHQzNmIvdHJhbnNsaXQ8L3R0PiBhcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMuICAoPGI+Tm90ZTo8L2I+IHRoZQorSGFuIHRyYW5zbGl0ZXJhdG9yIHRlc3QgZGF0YSBpcyBubyBsb25nZXIgaW5jbHVkZWQgaW4gdGhlIGNvcmUgaWN1NGouamFyIAorZmlsZSBieSBkZWZhdWx0Lik8L2xpPgorICA8bGk+VGhlIDxiPnJ1bGUtYmFzZWQgbnVtYmVyIGZvcm1hdCBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5Cis8dHQ+aWN1ZHQzNmIvcmJuZjwvdHQ+IGFzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcy4KKyAgPGxpPlRoZSA8Yj5icmVhayBpdGVyYXRvciBkYXRhPC9iPiBpcyBkaXJlY3RseSB1bmRlciB0aGUgZGF0YQorZGlyZWN0b3J5LCBhcyBhIHNldCBvZiA8dHQ+Ii5icmsiPC90dD4gZmlsZXMsIG5hbWVkIGFjY29yZGluZyB0byB0aGUKK3R5cGUgb2YgYnJlYWsgYW5kIHRoZSBsb2NhbGUgd2hlcmUgdGhlcmUgYXJlIGxvY2FsZS1zcGVjaWZpYyB2ZXJzaW9ucy48L2xpPgorICA8bGk+VGhlIDxiPmhvbGlkYXkgZGF0YTwvYj4gaXMgdW5kZXIgdGhlIDx0dD5kYXRhPC90dD4gZGlyZWN0b3J5LAorYXMgYSBzZXQgb2YgPHR0PiIuY2xhc3MiPC90dD4gZmlsZXMsIG5hbWVkIDx0dD4iSG9saWRheUJ1bmRsZV8iPC90dD4KK2ZvbGxvd2VkIGJ5IHRoZSBsb2NhbGUgSUQuPC9saT4KKyAgPGxpPlRoZSA8Yj5jaGFyYWN0ZXIgcHJvcGVydHkgZGF0YTwvYj4gYXMgd2VsbCBhcyBhc3NvcnRlZCA8Yj5ub3JtYWxpemF0aW9uCitkYXRhPC9iPiBhbmQgZGVmYXVsdCA8Yj51bmljb2RlIGNvbGxhdGlvbiBhbGdvcml0aG0gKFVDQSkgZGF0YTwvYj4KK2lzIGZvdW5kIHVuZGVyIHRoZSA8dHQ+ZGF0YTwvdHQ+IGRpcmVjdG9yeSBhcyBhIHNldCBvZiA8dHQ+Ii5pY3UiPC90dD4KK2ZpbGVzLiA8L2xpPgorPC91bD4KKzxwPgorU29tZSBvZiB0aGUgZGF0YSBmaWxlcyBhbGlhcyBvciBvdGhlcndpc2UgcmVmZXJlbmNlIGRhdGEgZnJvbSBvdGhlcgorZGF0YSBmaWxlcy4gT25lIHJlYXNvbiBmb3IgdGhpcyBpcyBiZWNhdXNlIHNvbWUgbG9jYWxlIG5hbWVzIGhhdmUKK2NoYW5nZWQuIEZvciBleGFtcGxlLCA8dHQ+aGVfSUw8L3R0PiB1c2VkIHRvIGJlIDx0dD5pd19JTDwvdHQ+LiBJbgorb3JkZXIgdG8gc3VwcG9ydCBib3RoIG5hbWVzIGJ1dCBub3QgZHVwbGljYXRlIHRoZSBkYXRhLCBvbmUgb2YgdGhlCityZXNvdXJjZSBmaWxlcyByZWZlcnMgdG8gdGhlIG90aGVyIGZpbGUncyBkYXRhLiBJbiBvdGhlciBjYXNlcywgYQorZmlsZSBtYXkgYWxpYXMgYSBwb3J0aW9uIG9mIGFub3RoZXIgZmlsZSdzIGRhdGEgaW4gb3JkZXIgdG8gc2F2ZQorc3BhY2UuIEN1cnJlbnRseSBJQ1U0SiBwcm92aWRlcyBubyB0b29sIGZvciByZXZlYWxpbmcgdGhlc2UKK2RlcGVuZGVuY2llcy48L3A+Cis8YmxvY2txdW90ZT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICBKYXZhJ3MgPGNvZGU+TG9jYWxlPC9jb2RlPiBjbGFzcworc2lsZW50bHkgY29udmVydHMgdGhlIGxhbmd1YWdlIGNvZGUgPHR0PiJoZSI8L3R0PiB0byA8dHQ+Iml3IjwvdHQ+Cit3aGVuIHlvdSBjb25zdHJ1Y3QgdGhlIExvY2FsZSAoZm9yIHZlcnNpb25zIG9mIEphdmEgdGhyb3VnaCBKYXZhIDUpLiBUaHVzCitKYXZhIGNhbm5vdCBiZSB1c2VkIHRvIGxvY2F0ZSByZXNvdXJjZXMgdGhhdCB1c2UgdGhlIDx0dD4iaGUiPC90dD4KK2xhbmd1YWdlIGNvZGUuIElDVSwgb24gdGhlIG90aGVyIGhhbmQsIGRvZXMgbm90IHBlcmZvcm0gdGhpcworY29udmVyc2lvbiBpbiBVTG9jYWxlLCBhbmQgaW5zdGVhZCB1c2VzIGFsaWFzaW5nIGluIHRoZSBsb2NhbGUgZGF0YSB0bworcmVwcmVzZW50IHRoZSBzYW1lIHNldCBvZiBkYXRhIHVuZGVyIGRpZmZlcmVudCBsb2NhbGUKK2lkcy48L2Jsb2NrcXVvdGU+Cis8cD4KK1Jlc291cmNlIGZpbGVzIHRoYXQgdXNlIGxvY2FsZSBpZHMgZm9ybSBhIGhpZXJhcmNoeSwgd2l0aCB1cCB0byBmb3VyCitsZXZlbHM6IGEgcm9vdCwgbGFuZ3VhZ2UsIHJlZ2lvbiAoY291bnRyeSksIGFuZCB2YXJpYW50LiBTZWFyY2hlcyBmb3IKK2xvY2FsZSBkYXRhIGF0dGVtcHQgdG8gbWF0Y2ggYXMgZmFyIGRvd24gdGhlIGhpZXJhcmNoeSBhcyBwb3NzaWJsZSwKK2ZvciBleGFtcGxlLCA8dHQ+ImhlX0lMIjwvdHQ+IHdpbGwgbWF0Y2ggPHR0PmhlX0lMPC90dD4sIGJ1dAorPHR0PiJoZV9VUyI8L3R0PiB3aWxsIG1hdGNoIDx0dD5oZTwvdHQ+IChzaW5jZSB0aGVyZSBpcyBubyA8dHQ+VVM8L3R0PgordmFyaWFudCBmb3IgaGUsIGFuZCA8dHQ+Inh4X1lZPC90dD4gd2lsbCBtYXRjaCByb290ICh0aGUKK2RlZmF1bHQgZmFsbGJhY2sgbG9jYWxlKSBzaW5jZSB0aGVyZSBpcyBubyA8dHQ+eHg8L3R0PiBsYW5ndWFnZSBjb2RlCitpbiB0aGUgbG9jYWxlIGhpZXJhcmNoeS4gQWdhaW4sIHNlZQorPGNvZGU+amF2YS51dGlsLlJlc291cmNlQnVuZGxlPC9jb2RlPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKzwvcD4KKzxwPgorPHN0cm9uZz5DdXJyZW50bHkgSUNVNEogcHJvdmlkZXMgbm8gdG9vbCBmb3IgcmV2ZWFsaW5nIHRoZXNlCitkZXBlbmRlbmNpZXM8L3N0cm9uZz4gYmV0d2VlbiBkYXRhIGZpbGVzLCBzbyB0cmltbWluZyB0aGUgZGF0YQorZGlyZWN0bHkgaW4gdGhlIElDVTRKIHByb2plY3QgaXMgYSBoaXQtb3ItbWlzcyBhZmZhaXIuIFRoZSBrZXkgcG9pbnQKK3doZW4geW91IHJlbW92ZSBkYXRhIGlzIHRvIG1ha2Ugc3VyZSB0byByZW1vdmUgYWxsIGRlcGVuZGVuY2llcyBvbgordGhhdCBkYXRhIGFzIHdlbGwuIEZvciBleGFtcGxlLCBpZiB5b3UgcmVtb3ZlIDx0dD5oZS5yZXM8L3R0PiwgeW91CituZWVkIHRvIHJlbW92ZSA8dHQ+aGVfSUwucmVzPC90dD4sIHNpbmNlIGl0IGlzIGxvd2VyIGluIHRoZSBoaWVyYXJjaHksCithbmQgeW91IG11c3QgcmVtb3ZlIGl3LnJlcywgc2luY2UgaXQgcmVmZXJlbmNlcyA8dHQ+aGUucmVzPC90dD4sIGFuZAorPHR0Pml3X0lMLnJlczwvdHQ+LCBzaW5jZSBpdCBkZXBlbmRzIG9uIGl0IChhbmQgYWxzbyByZWZlcmVuY2VzCis8dHQ+aGVfSUwucmVzPC90dD4pLgorPC9wPgorPHA+CitVbmZvcnR1bmF0ZWx5LCB0aGUgamFyIHRvb2wgaW4gdGhlIEpESyBwcm92aWRlcyBubyB3YXkgdG8gcmVtb3ZlIGl0ZW1zCitmcm9tIGEgamFyIGZpbGUuIFRodXMgeW91IGhhdmUgdG8gZXh0cmFjdCB0aGUgcmVzb3VyY2VzLCByZW1vdmUgdGhlCitvbmVzIHlvdSBkb24ndCB3YW50LCBhbmQgdGhlbiBjcmVhdGUgYSBuZXcgamFyIGZpbGUgd2l0aCB0aGUgcmVtaW5pbmcKK3Jlc291cmNlcy4gU2VlIHRoZSBqYXIgdG9vbCBpbmZvcm1hdGlvbiBmb3IgaG93IHRvIGRvIHRoaXMuIEJlZm9yZQorJ3JlamFyaW5nJyB0aGUgZmlsZXMsIGJlIHN1cmUgdG8gdGhvcm91Z2hseSB0ZXN0IHlvdXIgYXBwbGljYXRpb24gd2l0aAordGhlIHJlbWFpbmluZyByZXNvdXJjZXMsIG1ha2luZyBzdXJlIGVhY2ggcmVxdWlyZWQgcmVzb3VyY2UgaXMKK3ByZXNlbnQuCis8L3A+Cis8aDQ+VXNpbmcgYWRkaXRpb25hbCByZXNvdXJjZSBmaWxlcyB3aXRoIElDVTRKPC9oND4KKzxibG9ja3F1b3RlPgorICA8dGFibGUgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJib3JkZXIiIHJ1bGVzPSJub25lIiB3aWR0aD0iNTAlIj4KKyAgICA8dGJvZHk+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD48Yj48Zm9udCBjb2xvcj0icmVkIiBzaXplPSIrMSI+V2FybmluZzo8L2ZvbnQ+IFJlc291cmNlCitmaWxlIGZvcm1hdHMgY2FuIGNoYW5nZSBhY3Jvc3MgcmVsZWFzZXMgb2YgSUNVNEohPC9iPjwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+VGhlIGZvcm1hdCBvZiBJQ1U0SiByZXNvdXJjZXMgaXMgbm90IHBhcnQgb2YgdGhlIEFQSS4KK0NsaWVudHMgd2hvIGRldmVsb3AgdGhlaXIgb3duIHJlc291cmNlcyBmb3IgdXNlIHdpdGggSUNVNEogc2hvdWxkIGJlCitwcmVwYXJlZCB0bworcmVnZW5lcmF0ZSB0aGVtIHdoZW4gdGhleSBtb3ZlIHRvIG5ldyByZWxlYXNlcyBvZiBJQ1U0Si48L3RkPgorICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICA8L3RhYmxlPgorPC9ibG9ja3F1b3RlPgorPHA+CitXZSBhcmUgc3RpbGwgZGV2ZWxvcGluZyBJQ1U0SidzIHJlc291cmNlIG1lY2hhbmlzbS4gQ3VycmVudGx5IGl0IAoraXMgbm90IHBvc3NpYmxlIHRvIG1peCBpY3UncyBuZXcgYmluYXJ5IDx0dD4ucmVzPC90dD4KK3Jlc291cmNlcword2l0aCB0cmFkaXRpb25hbCBqYXZhLXN0eWxlIDx0dD4uY2xhc3M8L3R0PiBvciA8dHQ+LnR4dDwvdHQ+CityZXNvdXJjZXMuIFdlIG1pZ2h0CithbGxvdyBmb3IgdGhpcyBpbiBhIGZ1dHVyZSByZWxlYXNlLCBidXQgc2luY2UgdGhlIHJlc291cmNlIGRhdGEgYW5kCitmb3JtYXQgaXMgbm90IGZvcm1hbGx5CitzdXBwb3J0ZWQsIHlvdSBydW4gdGhlIHJpc2sgb2YgaW5jb21wYXRpYmlsaXRpZXMgd2l0aCBmdXR1cmUgcmVsZWFzZXMKK29mIElDVTRKLgorPC9wPgorPHA+CitSZXNvdXJjZSBkYXRhIGluIElDVTRKIGlzIGNoZWNrZWQgaW4gdG8gdGhlIHJlcG9zaXRvcnkgYXMgYSBqYXIgZmlsZQorY29udGFpbmluZyB0aGUgcmVzb3VyY2UgYmluYXJpZXMsIDx0dD5pY3VkYXRhLmphcjwvdHQ+LiBUaGlzCittZWFucyB0aGF0IGluc3BlY3RpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZXNlIHJlc291cmNlcyBpcyBkaWZmaWN1bHQuCitUaGV5IGN1cnJlbnRseSBhcmUgY29tcGlsZWQgZnJvbSBJQ1U0QyA8dHQ+LnR4dDwvdHQ+IGZpbGUgZGF0YS4gWW91CitjYW4gdmlldyB0aGUgY29udGVudHMgb2YgdGhlIElDVTRDIHRleHQgcmVzb3VyY2UgZmlsZXMgdG8gdW5kZXJzdGFuZAordGhlIGNvbnRlbnRzIG9mIHRoZSBJQ1U0SiByZXNvdXJjZXMuCis8L3A+Cis8cD4KK1RoZSBmaWxlcyBpbiA8dHQ+aWN1ZGF0YS5qYXI8L3R0PiBnZXQgZXh0cmFjdGVkIHRvIDx0dD5jb20vaWJtL2ljdS9pbXBsL2RhdGE8L3R0PgoraW4KK3RoZSBidWlsZCBkaXJlY3Rvcnkgd2hlbiB0aGUgJ2NvcmUnIHRhcmdldCBpcyBidWlsdC4KK0J1aWxkaW5nIHRoZSA8dHQ+J3Jlc291cmNlcyc8L3R0PiB0YXJnZXQgd2lsbCBmb3JjZSB0aGUKK3Jlc291cmNlcyB0byBvbmNlIGFnYWluIGJlIGV4dHJhY3RlZC4gRXh0cmFjdGlvbiB3aWxsCitvdmVyd3JpdGUgYW55IGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgZmlsZXMgYWxyZWFkeSBpbiB0aGF0IGRpcmVjdG9yeS4KKzwvcD4KKzxoND48YSBuYW1lPSJyZXNvdXJjZXNJQ1U0QyI+QnVpbGRpbmcgSUNVNEogUmVzb3VyY2VzIGZyb20gSUNVNEM8L2E+PC9oND4KKzxoNT5SZXF1aXJlbWVudHM8L2g1PgorPHVsPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vd3d3LmlibS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi9pY3UvZG93bmxvYWRzLmpzcCI+SUNVNEM8L2E+PC9saT4KKyAgPGxpPkNvbXBpbGVycyBhbmQgdG9vbHMgcmVxdWlyZWQgZm9yIGJ1aWxkaW5nIDxhCisgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3UvcmVhZG1lLmh0bWw/dmlldz1jbyNIb3dUb0J1aWxkIj5JQ1U0QzwvYT4uPC9saT4KKyAgPGxpPkphdmEgU0RLIHZlcnNpb24gMS40LjAgb3IgYWJvdmUuPC9saT4KKyAgPGxpPlBlcmwgdmVyc2lvbiA1IG9yIGFib3ZlLjwvbGk+Cis8L3VsPgorPGg1PiBQcm9jZWR1cmU8L2g1PgorPG9sPgorICA8bGk+IERvd25sb2FkIGFuZCBidWlsZCBJQ1U0QyBvbiBhIFdpbmRvd3MgbWFjaGluZS4gRm9yIGluc3RydWN0aW9ucyBvbgorZG93bmxvYWRpbmcgYW5kIGJ1aWxkaW5nIElDVTRDLCBwbGVhc2UgY2xpY2sgPGEKKyBocmVmPSJodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL2ljdS9yZWFkbWUuaHRtbD92aWV3PWNvI0hvd1RvQnVpbGQiPmhlcmU8L2E+LjwvbGk+CisgIDxsaT4gQ2hhbmdlIGRpcmVjdG9yeSB0byA8aT4kaWN1X3Jvb3Q8L2k+L3NvdXJjZS90b29scy9nZW5yYiA8L2xpPgorICA8bGk+IExhdW5jaCBnZW5kdGphci5wbCBmcm9tIHRoYXQgZGlyZWN0b3J5IGl0c2VsZiB3aXRoIHRoZSBjb21tYW5kIDxicj4KK2dlbmR0amFyLnBsIC0taWN1LXJvb3Q9PGk+JGljdV9yb290PC9pPiAtLWphcj08aT4kamRrX2hvbWUvYmluPC9pPgorLS1pY3U0ai1yb290PTxpPiRpY3U0al9yb290PC9pPiAtLXZlcnNpb249PGk+JGljdV92ZXJzaW9uPC9pPiA8YnI+CitlLmc6IGdlbmR0amFyLnBsIC0taWN1LXJvb3Q9XHdvcmtcaWN1IC0tamFyPVxqZGsxLjQuMVxiaW4KKy0taWN1NGotcm9vdD1cd29ya1xpY3U0aiAtLXZlcnNpb249My4wIDxicj4KK0V4ZWN1dGlvbiBvZiBnZW5kdGphci5wbCBzY3JpcHQgd2lsbCBjcmVhdGUgdGhlIHJlcXVpcmVkIGphciBmaWxlcyBpbgordGhlICRpY3Vfcm9vdFxzb3VyY2VcdG9vbHNcZ2VucmJcdGVtcCBkaXJlY3RvcnkuPC9saT4KKyAgPGxpPiBNb3ZlIGljdWRhdGEuamFyIHRvIDxpPiRpY3U0al9yb290PC9pPi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhCitkaXJlY3RvcnkuPC9saT4KKyAgPGxpPiBNb3ZlIHRlc3RkYXRhLmphciB0byA8aT4kaWN1NGpfcm9vdDwvaT4vc3JjL2NvbS9pYm0vZGV2L2RhdGEKK2RpcmVjdG9yeS48L2xpPgorICA8bGk+IEJ1aWxkIHJlc291cmNlcyB0YXJnZXQgb2YgYW50IHRvIHVucGFjayB0aGUgamFyIGZpbGVzIHdpdGggdGhlCitmb2xsb3dpbmcgY29tbWFuZC4gPGJyPgorICAgIDxpPiRhbnRfaG9tZTwvaT4vYmluL2FudCByZXNvdXJjZXM8L2xpPgorPC9vbD4KKzxoNT4gR2VuZXJhdGluZyBEYXRhIGZyb20gQ0xEUiA8L2g1PgorPGk+IE5vdGU6IFRoaXMgcHJvY2VkdXJlIGFzc3VtZXMgdGhhdCBhbGwgMyBzb3VyY2VzIGFyZSBpbiBzaWJsaW5nIGRpcmVjdG9yaWVzPC9pPgorPG9sPgorICAgIDxsaT5DaGVja291dCBDTERSPC9saT4KKyAgICA8bGk+VXBkYXRlIDxpPiRjbGRyX3Jvb3Q8L2k+L2NvbW1vbiB0byAncmVsZWFzZS0xLTQnIHRhZzwvbGk+CisgICAgPGxpPlVwZGF0ZSA8aT4kY2xkcl9yb290PC9pPi90b29scyB0byAncmVsZWFzZS0xLTQnIHRhZzwvbGk+CisgICAgPGxpPkNoZWNrb3V0IElDVSB3aXRoIHRhZyAncmVsZWFzZS0zLTYnPC9saT4KKyAgICA8bGk+Q2hlY2tvdXQgSUNVNEogd2l0aCB0YWcgJ3JlbGVhc2UtMy02JzwvbGk+CisgICAgPGxpPkJ1aWxkIElDVTRKPC9saT4KKyAgICA8bGk+QnVpbGQgSUNVNEM8L2xpPgorICAgIDxsaT5DaGFuZ2UgdG8gPGk+JGNsZHJfcm9vdDwvaT4vdG9vbHMvamF2YSBkaXJlY3Rvcnk8L2xpPgorICAgIDxsaT5CdWlsZCBDTERSIHVzaW5nIGFudCBhZnRlciBwb2ludGluZyBJQ1U0Sl9DTEFTU0VTIGVudiB2YXIgdG8gdGhlIG5ld2x5IGJ1aWxkIElDVTRKPC9saT4KKyAgICA8bGk+Y2QgdG8gPGk+JGljdTRjX3Jvb3Q8L2k+L3NvdXJjZS9kYXRhIGRpcmVjdG9yeTwvbGk+CisgICAgPGxpPkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBjbGRyLWljdS1yZWFkbWUudHh0PC9saT4KKyAgICA8bGk+QnVpbGQgSUNVIGRhdGEgZnJvbSBDTERSPC9saT4KKyAgICA8bGk+Y2QgdG8gPGk+JGljdTRjX3Jvb3Qvc291cmNlL3Rvb2xzL2dlbnJiPC9pPjwvbGk+CisgICAgPGxpPnJ1biAuL2dlbmR0amFyLnBsPC9saT4KKyAgICA8bGk+Y2QgdG8gPGk+JGljdTRqX3Jvb3Q8L2k+IGRpcjwvbGk+CisgICAgPGxpPkJ1aWxkIGFuZCB0ZXN0IGljdTRqPC9saT4KKzwvb2w+CisKKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJXaGVyZVRvRmluZE1vcmUiPjwvYT5XaGVyZSB0byBGaW5kIE1vcmUKK0luZm9ybWF0aW9uPC9oMz4KKzxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS8iPmh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS88L2E+CitpcyBhCitwb2ludGVyIHRvIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IKK1VuaWNvZGUgaW4gSmF2YSA8L3A+Cis8cD48YSBocmVmPSJodHRwOi8vd3d3LmlibS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi8iPmh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uLzwvYT4KK2lzIGEgcG9pbnRlciB0bworaW5mb3JtYXRpb24gb24gaG93IHRvIG1ha2UgYXBwbGljYXRpb25zIGdsb2JhbC4gPC9wPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IlN1Ym1pdHRpbmdDb21tZW50cyI+PC9hPlN1Ym1pdHRpbmcgQ29tbWVudHMsCitSZXF1ZXN0aW5nIEZlYXR1cmVzIGFuZAorUmVwb3J0aW5nIEJ1Z3M8L2gzPgorPHA+WW91ciBjb21tZW50cyBhcmUgaW1wb3J0YW50IHRvIG1ha2luZyBJQ1U0SiBzdWNjZXNzZnVsLiBXZSBhcmUKK2NvbW1pdHRlZAordG8gZml4aW5nIGFueSBidWdzLCBhbmQgd2lsbCB1c2UgeW91ciBmZWVkYmFjayB0byBoZWxwIHBsYW4gZnV0dXJlCityZWxlYXNlcy48L3A+Cis8cD5UbyBzdWJtaXQgY29tbWVudHMsIHJlcXVlc3QgZmVhdHVyZXMgYW5kIHJlcG9ydCBidWdzLCBjb250YWN0IHVzCit0aHJvdWdoIHRoZSA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2NvbnRhY3RzLmh0bWwiPklDVSBTdXBwb3J0CittYWlsaW5nIGxpc3Q8L2E+Ljxicj4KK1doaWxlIHdlIGFyZSBub3QgYWJsZSB0byByZXNwb25kIGluZGl2aWR1YWxseSB0byBlYWNoIGNvbW1lbnQsIHdlIGRvCityZXZpZXcgYWxsIGNvbW1lbnRzLjwvcD4KKzxicj4KKzxicj4KKzxoMj5UaGFuayB5b3UgZm9yIHlvdXIgaW50ZXJlc3QgaW4gSUNVNEohPC9oMj4KKzxicj4KKzxociBhbGlnbj0iY2VudGVyIiBzaXplPSIyIiB3aWR0aD0iMTAwJSI+Cis8cD48aT48Zm9udCBzaXplPSItMSI+Q29weXJpZ2h0ICZjb3B5OyAyMDAyLTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcworTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cworUmVzZXJ2ZWQuPGJyPgorNDQwMCBOb3J0aCBGaXJzdCBTdHJlZXQsIFNhbiBKb3MmZWFjdXRlOywgQ0EgOTUxOTMsIFVTQQorPC9mb250PjwvaT48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvTUVUQS1JTkYvc2VydmljZXMvamF2YS5uaW8uY2hhcnNldC5zcGkuQ2hhcnNldFByb3ZpZGVyIGIvc3JjL01FVEEtSU5GL3NlcnZpY2VzL2phdmEubmlvLmNoYXJzZXQuc3BpLkNoYXJzZXRQcm92aWRlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTc5OGU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL01FVEEtSU5GL3NlcnZpY2VzL2phdmEubmlvLmNoYXJzZXQuc3BpLkNoYXJzZXRQcm92aWRlcgpAQCAtMCwwICsxLDMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgCisjIGljdTRqIGNvbnZlcnRlcnMKK2NvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFByb3ZpZGVySUNVCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0ODg1OTEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXQ4ODU5MS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MGEwNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0ODg1OTEuamF2YQpAQCAtMCwwICsxLDIxMCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK2NsYXNzIENoYXJzZXQ4ODU5MSBleHRlbmRzIENoYXJzZXRJQ1UgeworICAgIHByb3RlY3RlZCBieXRlW10gZnJvbVVTdWJzdGl0dXRpb24gPSBuZXcgYnl0ZVtdeyhieXRlKTB4MWF9OworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0ODg1OTEoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUsIFN0cmluZyBqYXZhQ2Fub25pY2FsTmFtZSwgU3RyaW5nW10gYWxpYXNlcyl7CisgICAgICAgIHN1cGVyKGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzKTsKKyAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyID0gMTsKKyAgICAgICAgbWluQnl0ZXNQZXJDaGFyID0gMTsKKyAgICAgICAgbWF4Q2hhcnNQZXJCeXRlID0gMTsKKyAgICB9CisgICAgY2xhc3MgQ2hhcnNldERlY29kZXI4ODU5MSBleHRlbmRzIENoYXJzZXREZWNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RGVjb2Rlcjg4NTkxKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpZighc291cmNlLmhhc1JlbWFpbmluZygpICYmIHRvVW5pY29kZVN0YXR1cz09MCkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleD1zb3VyY2UucG9zaXRpb24oKSwgY291bnQ9MDsKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgICAgICBjaGFyIGM9MDsKKyAgICAgICAgICAgIGludCBvbGRUYXJnZXQgPSB0YXJnZXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJgorICAgICAgICAgICAgICAgICAgICAoYz0oY2hhcikoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSYweEZGKSk8PTB4ZmYgJiYKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKGM+MHhmZikgeworICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpOyBjb3B5IHRoZSBjdXJyZW50IGJ5dGVzIHRvIHRvVUJ5dGVzW10gKi8KKyAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5WzBdPShieXRlKWM7CisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgodG9VTGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIHNldCBvZmZzZXRzIHNpbmNlIHRoZSBzdGFydCAqLworICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgIGNvdW50PXRhcmdldC5wb3NpdGlvbigpLW9sZFRhcmdldDsKKyAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RW5jb2Rlcjg4NTkxIGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyODg1OTEoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IE5FRURfVE9fV1JJVEVfQk9NID0gMTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSBORUVEX1RPX1dSSVRFX0JPTTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg9c291cmNlLnBvc2l0aW9uKCksIGNvdW50PTA7CisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXggPSAwOworICAgICAgICAgICAgaW50IGNoPTA7CisgICAgICAgICAgICBpbnQgb2xkVGFyZ2V0ID0gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisKKyAgICAgICAgICAgIGlmIChmcm9tVUNoYXIzMiAhPSAwICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgY2ggPSBmcm9tVUNoYXIzMjsKKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgZm9sbG93aW5nIGNvZGUgdW5pdCAqLworICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpY2gsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgdGhpcyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQudW5tYXBwYWJsZUZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgbGVhZCBjb2RlIHVuaXQgKDFzdCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAoaW50KWNoOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1vcmUgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAoaW50KWNoOworICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZG9sb29wKXsKKyAgICAgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgICAgICBjaD0wOworICAgICAgICAgICAgICAgIGludCBjaDI9MDsKKyAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKXsKKyAgICAgICAgICAgICAgICAgICAgY2g9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICBpZihjaDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb3dzdXJvZ2F0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2gyID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9ICgoY2ggLSBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkgPDwgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBjaDIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmFuIG91dCBvZiBzb3VyY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0ICovCisgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgY291bnQ9dGFyZ2V0LnBvc2l0aW9uKCktb2xkVGFyZ2V0OworICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyODg1OTEodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXI4ODU5MSh0aGlzKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRBU0NJSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEFTQ0lJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIzZTEwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRBU0NJSS5qYXZhCkBAIC0wLDAgKzEsMjExIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5JbnRCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworY2xhc3MgQ2hhcnNldEFTQ0lJIGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHgxYX07CisgICAgCisgICAgcHVibGljIENoYXJzZXRBU0NJSShTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSAxOworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSAxOworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlckFTQ0lJIGV4dGVuZHMgQ2hhcnNldERlY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXREZWNvZGVyQVNDSUkoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkgJiYgdG9Vbmljb2RlU3RhdHVzPT0wKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4PXNvdXJjZS5wb3NpdGlvbigpLCBjb3VudD0wOworICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgICAgIGNoYXIgYz0wOworICAgICAgICAgICAgaW50IG9sZFRhcmdldCA9IHRhcmdldC5wb3NpdGlvbigpOworCisgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgIHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkmJgorICAgICAgICAgICAgICAgICAgICAoYz0oY2hhcilzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKTw9MHg3ZiAmJgorICAgICAgICAgICAgICAgICAgICB0YXJnZXQuaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7ICAgIAorICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoYz4weDdmKSB7CisgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCk7IGNvcHkgdGhlIGN1cnJlbnQgYnl0ZXMgdG8gdG9VQnl0ZXNbXSAqLworICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbMF09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCh0b1VMZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0ICovCisgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgY291bnQ9dGFyZ2V0LnBvc2l0aW9uKCktb2xkVGFyZ2V0OworICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RW5jb2RlckFTQ0lJIGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyQVNDSUkoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IE5FRURfVE9fV1JJVEVfQk9NID0gMTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSBORUVEX1RPX1dSSVRFX0JPTTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg9c291cmNlLnBvc2l0aW9uKCksIGNvdW50PTA7CisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXggPSAwOworICAgICAgICAgICAgaW50IGNoPTA7CisgICAgICAgICAgICBpbnQgb2xkVGFyZ2V0ID0gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmcm9tVUNoYXIzMiAhPSAwICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgY2ggPSBmcm9tVUNoYXIzMjsKKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgZm9sbG93aW5nIGNvZGUgdW5pdCAqLworICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpY2gsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgdGhpcyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKHVuYXNzaWduZWQpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gKGludCljaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGlucHV0ICovCisgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gKGludCljaDsKKyAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGRvbG9vcCl7CisgICAgICAgICAgICAgICAgLyogY29udmVyc2lvbiBsb29wICovCisgICAgICAgICAgICAgICAgY2g9MDsKKyAgICAgICAgICAgICAgICBpbnQgY2gyPTA7CisgICAgICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSl7CisgICAgICAgICAgICAgICAgICAgIGNoPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2g8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb3dzdXJvZ2F0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2gyID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9ICgoY2ggLSBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkgPDwgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBjaDIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmFuIG91dCBvZiBzb3VyY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0ICovCisgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgY291bnQ9dGFyZ2V0LnBvc2l0aW9uKCktb2xkVGFyZ2V0OworICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyQVNDSUkodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJBU0NJSSh0aGlzKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRDYWxsYmFjay5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldENhbGxiYWNrLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM2OTI0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRDYWxsYmFjay5qYXZhCkBAIC0wLDAgKzEsMjM0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCisvKioKKyAqIDxoMj4gQ2FsbGJhY2sgQVBJIGZvciBDaGFyc2V0SUNVIEFQSSA8L2gyPgorICogCisgKiAgQ2hhcnNldENhbGxiYWNrIGNsYXNzIGRlZmluZXMgc29tZSBlcnJvciBiZWhhdmlvdXIgZnVuY3Rpb25zIGNhbGxlZCAKKyAqICBieSBDaGFyc2V0RGVjb2RlcklDVSBhbmQgQ2hhcnNldEVuY29kZXJJQ1UuIFRoZSBjbGFzcyBhbHNvIHByb3ZpZGVzCisgKiAgdGhlIGZhY2lsaXR5IGJ5IHdoaWNoIGNsaWVudHMgY2FuIHdyaXRlIHRoZWlyIG93biBjYWxsYmFja3MuCisgKgorICogIFRoZXNlIGZ1bmN0aW9ucywgYWx0aG91Z2ggcHVibGljLCBzaG91bGQgTkVWRVIgYmUgY2FsbGVkIGRpcmVjdGx5LgorICogIFRoZXkgc2hvdWxkIGJlIHVzZWQgYXMgcGFyYW1ldGVycyB0byB0aGUgb25VbWFwcGFibGVDaGFyYWN0ZXIoKSBhbmQgCisgKiAgb25NYWxmb3JtZWRJbnB1dCgpIG1ldGhvZHMsIHRvIHNldCB0aGUgYmVoYXZpb3VyIG9mIGEgY29udmVydGVyCisgKiAgd2hlbiBpdCBlbmNvdW50ZXJzIFVOTUFQUEVEL0lOVkFMSUQgc2VxdWVuY2VzLgorICogIEN1cnJlbnRseSB0aGUgb25seSB3YXkgdG8gc2V0IGNhbGxiYWNrcyBpcyBieSB1c2luZyBDb2RpbmdFcnJvckFjdGlvbi4KKyAqICBJbiB0aGUgZnV0dXJlIHdlIHdpbGwgcHJvdmlkZSBzZXQgbWV0aG9kcyBvbiBDaGFyc2V0RW5jb2RlciBhbmQgQ2hhcnNldERlY29kZXIKKyAqICB0aGF0IHdpbGwgYWNjZXB0IENoYXJzZXRDYWxsYmFjayBmaWVsZHMuCisgKgorICogQGRyYWZ0IElDVSAzLjYKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCisKKy8qcHVibGljKi8gY2xhc3MgQ2hhcnNldENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBGUk9NX1UsIFRPX1UgY29udGV4dCBvcHRpb25zIGZvciBzdWIgY2FsbGJhY2sKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIGZpbmFsIFN0cmluZyBTVUJfU1RPUF9PTl9JTExFR0FMID0gImkiOworCisgICAgLyoqCisgICAgICogRlJPTV9VLCBUT19VIGNvbnRleHQgb3B0aW9ucyBmb3Igc2tpcCBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIFNLSVBfU1RPUF9PTl9JTExFR0FMID0gImkiOworCisgICAgLyoqCisgICAgICogRlJPTV9VX0NBTExCQUNLX0VTQ0FQRSBjb250ZXh0IG9wdGlvbiB0byBlc2NhcGUgdGhlIGNvZGUgdW5pdCBhY2NvcmRpbmcgdG8gSUNVICglVVhYWFgpIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIEVTQ0FQRV9JQ1UgID0gbnVsbDsKKyAgICAvKioKKyAgICAgKiBGUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY29kZSB1bml0IGFjY29yZGluZyB0byBKQVZBIChcXHVYWFhYKQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIEVTQ0FQRV9KQVZBICAgICA9ICAiSiI7CisgICAgLyoqCisgICAgICogRlJPTV9VX0NBTExCQUNLX0VTQ0FQRSBjb250ZXh0IG9wdGlvbiB0byBlc2NhcGUgdGhlIGNvZGUgdW5pdCBhY2NvcmRpbmcgdG8gQyAoXFx1WFhYWCBcXFVYWFhYWFhYWCkKKyAgICAgKiBUT19VX0NBTExCQUNLX0VTQ0FQRSBvcHRpb24gdG8gZXNjYXBlIHRoZSBjaGFyYWN0ZXIgdmFsdWUgYWNjb2RpbmcgdG8gQyAoXFx4WFhYWCkKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIGZpbmFsIFN0cmluZyBFU0NBUEVfQyAgICAgICAgPSAiQyI7CisgICAgLyoqCisgICAgICogRlJPTV9VX0NBTExCQUNLX0VTQ0FQRSBjb250ZXh0IG9wdGlvbiB0byBlc2NhcGUgdGhlIGNvZGUgdW5pdCBhY2NvcmRpbmcgdG8gWE1MIERlY2ltYWwgZXNjYXBlIFxodG1sb25seSgmYW1wOyNEREREOylcZW5kaHRtbG9ubHkKKyAgICAgKiBUT19VX0NBTExCQUNLX0VTQ0FQRSBjb250ZXh0IG9wdGlvbiB0byBlc2NhcGUgdGhlIGNoYXJhY3RlciB2YWx1ZSBhY2NvZGluZyB0byBYTUwgRGVjaW1hbCBlc2NhcGUgXGh0bWxvbmx5KCZhbXA7I0REREQ7KVxlbmRodG1sb25seQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgU3RyaW5nIEVTQ0FQRV9YTUxfREVDICA9ICJEIjsKKyAgICAvKioKKyAgICAgKiBGUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY29kZSB1bml0IGFjY29yZGluZyB0byBYTUwgSGV4IGVzY2FwZSBcaHRtbG9ubHkoJmFtcDsjeFhYWFg7KVxlbmRodG1sb25seQorICAgICAqIFRPX1VfQ0FMTEJBQ0tfRVNDQVBFIGNvbnRleHQgb3B0aW9uIHRvIGVzY2FwZSB0aGUgY2hhcmFjdGVyIHZhbHVlIGFjY29kaW5nIHRvIFhNTCBIZXggZXNjYXBlIFxodG1sb25seSgmYW1wOyN4WFhYWDspXGVuZGh0bWxvbmx5CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVNDQVBFX1hNTF9IRVggID0gIlgiOworICAgIC8qKgorICAgICAqIEZST01fVV9DQUxMQkFDS19FU0NBUEUgY29udGV4dCBvcHRpb24gdG8gZXNjYXBlIHRlaCBjb2RlIHVuaXQgYWNjb3JkaW5nIHRvIFVuaWNvZGUgKFUrWFhYWFgpCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVNDQVBFX1VOSUNPREUgID0gIlUiOworCisgICAgLyoqCisgICAgICogRGVjb2RlciBDYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgRGVjb2RlciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSBieXRlcyBpbiB0aGUgc291cmNlIGNhbm5vdCBiZSBoYW5kbGVkLAorICAgICAgICAgKiBhbmQgdGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBoYW5kbGUgb3IgZml4IHRoZSBlcnJvciBpZiBwb3NzaWJsZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gUmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gVGhpcyByZXR1cm5lZCBvYmplY3QgaXMgc2V0IHRvIGFuIGVycm9yCisgICAgICAgICAqICBpZiB0aGlzIGZ1bmN0aW9uIGNvdWxkIG5vdCBoYW5kbGUgdGhlIGNvbnZlcnNpb24uCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldERlY29kZXJJQ1UgZGVjb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBDb2RlclJlc3VsdCBjcik7CisgICAgfQorICAgIC8qKgorICAgICAqIEVuY29kZXIgQ2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIEVuY29kZXIgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJzIGluIHRoZSBzb3VyY2UgY2Fubm90IGJlIGhhbmRsZWQsCisgICAgICAgICAqIGFuZCB0aGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGhhbmRsZSBvciBmaXggdGhlIGVycm9yIGlmIHBvc3NpYmxlLgorICAgICAgICAgKiBAcmV0dXJuIFJlc3VsdCBvZiBkZWNvZGluZyBhY3Rpb24uIFRoaXMgcmV0dXJuZWQgb2JqZWN0IGlzIHNldCB0byBhbiBlcnJvcgorICAgICAgICAgKiAgaWYgdGhpcyBmdW5jdGlvbiBjb3VsZCBub3QgaGFuZGxlIHRoZSBjb252ZXJzaW9uLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXRFbmNvZGVySUNVIGVuY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIGludCBjcCwgQ29kZXJSZXN1bHQgY3IpOworICAgIH0gICAgCisgICAgLyoqCisgICAgICogU2tpcCBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFbmNvZGVyIEZST01fVV9DQUxMQkFDS19TS0lQID0gbmV3IEVuY29kZXIoKSB7CisgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXRFbmNvZGVySUNVIGVuY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCBpbnQgbGVuZ3RoLCBpbnQgY3AsIENvZGVyUmVzdWx0IGNyKXsKKyAgICAgICAgICAgIGlmKGNvbnRleHQ9PW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICB9ZWxzZSBpZigoKFN0cmluZyljb250ZXh0KS5lcXVhbHMoU1VCX1NUT1BfT05fSUxMRUdBTCkpeworICAgICAgICAgICAgICAgIGlmKCFjci5pc1VubWFwcGFibGUoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9OworICAgIC8qKgorICAgICAqIFNraXAgY2FsbGJhY2sKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGVjb2RlciBUT19VX0NBTExCQUNLX1NLSVAgPSBuZXcgRGVjb2RlcigpIHsKKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldERlY29kZXJJQ1UgZGVjb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsCisgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgQ29kZXJSZXN1bHQgY3IpeworICAgICAgICAgICAgaWYoY29udGV4dD09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIH1lbHNlIGlmKCgoU3RyaW5nKWNvbnRleHQpLmVxdWFscyhTVUJfU1RPUF9PTl9JTExFR0FMKSl7CisgICAgICAgICAgICAgICAgaWYoIWNyLmlzVW5tYXBwYWJsZSgpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH07CisgICAgLyoqCisgICAgICogU2tpcCBjYWxsYmFjaworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFbmNvZGVyIEZST01fVV9DQUxMQkFDS19TVUJTVElUVVRFID0gbmV3IEVuY29kZXIoKXsgICAgICAgIAorICAgICAgICBwdWJsaWMgQ29kZXJSZXN1bHQgY2FsbChDaGFyc2V0RW5jb2RlcklDVSBlbmNvZGVyLCBPYmplY3QgY29udGV4dCwgCisgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgaW50IGNwLCBDb2RlclJlc3VsdCBjcil7CisgICAgICAgICAgICBpZihjb250ZXh0PT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2Rlci5jYkZyb21VV3JpdGVTdWIoZW5jb2Rlciwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMpOworICAgICAgICAgICAgfWVsc2UgaWYoKChTdHJpbmcpY29udGV4dCkuZXF1YWxzKFNVQl9TVE9QX09OX0lMTEVHQUwpKXsKKyAgICAgICAgICAgICAgICBpZighY3IuaXNVbm1hcHBhYmxlKCkpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZXIuY2JGcm9tVVdyaXRlU3ViKGVuY29kZXIsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9OworICAgIC8qKgorICAgICAqIFNraXAgY2FsbGJhY2sKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGVjb2RlciBUT19VX0NBTExCQUNLX1NVQlNUSVRVVEUgID0gbmV3IERlY29kZXIoKSB7CisgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXREZWNvZGVySUNVIGRlY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLAorICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIENvZGVyUmVzdWx0IGNyKXsKKworICAgICAgICAgICAgY2hhcltdIGtTdWJzdGl0dXRlQ2hhcjEgPSBuZXcgY2hhcltdezB4MUF9OworICAgICAgICAgICAgY2hhcltdIGtTdWJzdGl0dXRlQ2hhciA9IG5ldyBjaGFyW10gezB4RkZGRH07CisgICAgICAgICAgICBDaGFyc2V0SUNVIGNzID0gKENoYXJzZXRJQ1UpIGRlY29kZXIuY2hhcnNldCgpOworICAgICAgICAgICAgLyogY291bGQgb3B0aW1pemUgdGhpcyBjYXNlLCBqdXN0IG9uZSB1Y2hhciAqLworICAgICAgICAgICAgaWYoZGVjb2Rlci5pbnZhbGlkQ2hhckxlbmd0aCA9PSAxICYmIGNzLnN1YkNoYXIxICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ2hhcnNldERlY29kZXJJQ1UudG9VV3JpdGVVQ2hhcnMoZGVjb2Rlciwga1N1YnN0aXR1dGVDaGFyMSwgMCwgMSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBDaGFyc2V0RGVjb2RlcklDVS50b1VXcml0ZVVDaGFycyhkZWNvZGVyLCBrU3Vic3RpdHV0ZUNoYXIsIDAsIDEsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKyAgICAvKioKKyAgICAgKiBTa2lwIGNhbGxiYWNrCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVuY29kZXIgRlJPTV9VX0NBTExCQUNLX1NUT1AgPSBuZXcgRW5jb2RlcigpIHsKKyAgICAgICAgcHVibGljIENvZGVyUmVzdWx0IGNhbGwoQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgT2JqZWN0IGNvbnRleHQsIAorICAgICAgICAgICAgICAgIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIAorICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIGludCBjcCwgQ29kZXJSZXN1bHQgY3IpeworICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICB9CisgICAgfTsKKyAgICAvKioKKyAgICAgKiBTa2lwIGNhbGxiYWNrCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERlY29kZXIgVE9fVV9DQUxMQkFDS19TVE9QID0gbmV3IERlY29kZXIoKSB7CisgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXREZWNvZGVySUNVIGRlY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLAorICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIGludCBsZW5ndGgsIENvZGVyUmVzdWx0IGNyKXsKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH07ICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXREZWNvZGVySUNVLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0RGVjb2RlcklDVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjQ0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0RGVjb2RlcklDVS5qYXZhCkBAIC0wLDAgKzEsNjYxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5JbnRCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kaW5nRXJyb3JBY3Rpb247CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldENhbGxiYWNrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIHRoYXQgcHJvdmlkZXMgZnJhbWV3b3JrIG1ldGhvZHMgb2YgZGVjb2Rpbmcgb3BlcmF0aW9ucyBmb3IgY29uY3JldGUKKyAqIHN1YmNsYXNzZXMuIAorICogSW4gdGhlIGZ1dHVyZSB0aGlzIGNsYXNzIHdpbGwgY29udGFpbiBBUEkgdGhhdCB3aWxsIGltcGxlbWVudCBjb252ZXJ0ZXIgc2VtYXRpY3Mgb2YgSUNVNEMuCisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIENoYXJzZXREZWNvZGVySUNVIGV4dGVuZHMgQ2hhcnNldERlY29kZXJ7IAorCisgICAgaW50ICAgIHRvVW5pY29kZVN0YXR1czsKKyAgICBieXRlW10gdG9VQnl0ZXNBcnJheSA9IG5ldyBieXRlWzEyOF07CisgICAgaW50ICAgIHRvVUJ5dGVzQmVnaW4gPSAwOworICAgIGludCAgICB0b1VMZW5ndGg7CisgICAgY2hhcltdIGNoYXJFcnJvckJ1ZmZlckFycmF5ID0gbmV3IGNoYXJbMTI4XTsKKyAgICBpbnQgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoOworICAgIGludCAgICBjaGFyRXJyb3JCdWZmZXJCZWdpbjsKKyAgICBjaGFyW10gaW52YWxpZENoYXJCdWZmZXIgPSBuZXcgY2hhclsxMjhdOworICAgIGludCAgICBpbnZhbGlkQ2hhckxlbmd0aDsKKyAgICAKKyAgICAvKiBzdG9yZSBwcmV2aW91cyBVQ2hhcnMvY2hhcnMgdG8gY29udGludWUgcGFydGlhbCBtYXRjaGVzICovCisgICAgYnl0ZVtdIHByZVRvVUFycmF5OworICAgIGludCAgICBwcmVUb1VCZWdpbjsKKyAgICBpbnQgICAgcHJlVG9VTGVuZ3RoOyAgICAgICAvKiBuZWdhdGl2ZTogcmVwbGF5ICovCisgICAgaW50ICAgIHByZVRvVUZpcnN0TGVuZ3RoOyAgLyogbGVuZ3RoIG9mIGZpcnN0IGNoYXJhY3RlciAqLworICAgIGludCBtb2RlOworICAgIAorICAgIE9iamVjdCB0b1VDb250ZXh0ID0gbnVsbDsKKyAgICBwcml2YXRlIENoYXJzZXRDYWxsYmFjay5EZWNvZGVyIG9uVW5tYXBwYWJsZUlucHV0ID0gQ2hhcnNldENhbGxiYWNrLlRPX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICBwcml2YXRlIENoYXJzZXRDYWxsYmFjay5EZWNvZGVyIG9uTWFsZm9ybWVkSW5wdXQgPSBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TVE9QOworICAgIENoYXJzZXRDYWxsYmFjay5EZWNvZGVyIHRvQ2hhckVycm9yQmVoYXZpb3VyPSBuZXcgQ2hhcnNldENhbGxiYWNrLkRlY29kZXIoKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXREZWNvZGVySUNVIGRlY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgQ29kZXJSZXN1bHQgY3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjci5pc1VubWFwcGFibGUoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvblVubWFwcGFibGVJbnB1dC5jYWxsKGRlY29kZXIsIGNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBsZW5ndGgsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjci5pc01hbGZvcm1lZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uTWFsZm9ybWVkSW5wdXQuY2FsbChkZWNvZGVyLCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBsZW5ndGgsIGNyKTsgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TVE9QLmNhbGwoZGVjb2RlciwgY29udGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIGxlbmd0aCwgY3IpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoYXJzZXREZWNvcmRlcklDVSBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gcHJvdmlkZWQgZnJvbSBhCisgICAgICogQ2hhcnNldElDVSBvYmplY3QuCisgICAgICogQHBhcmFtIGNzIFRoZSBDaGFyc2V0SUNVIG9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0bworICAgICAqICBjaGFyc2V0IHRvIGRlY29kZS4gCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBDaGFyc2V0RGVjb2RlcklDVShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgIHN1cGVyKGNzLCAoZmxvYXQpICgxLyhmbG9hdCljcy5tYXhDaGFyc1BlckJ5dGUpLCBjcy5tYXhDaGFyc1BlckJ5dGUpOworICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGFjdGlvbiB0byBiZSB0YWtlbiBpZiBhbiBpbGxlZ2FsIHNlcXVlbmNlIGlzIGVuY291bnRlcmVkCisgICAgICogQHBhcmFtIG5ld0FjdGlvbiBhY3Rpb24gdG8gYmUgdGFrZW4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGltcGxPbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uIG5ld0FjdGlvbikgeworICAgICAgICBvbk1hbGZvcm1lZElucHV0ID0gZ2V0Q2FsbGJhY2sobmV3QWN0aW9uKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWN0aW9uIHRvIGJlIHRha2VuIGlmIGFuIGlsbGVnYWwgc2VxdWVuY2UgaXMgZW5jb3VudGVyZWQKKyAgICAgKiBAcGFyYW0gbmV3QWN0aW9uIGFjdGlvbiB0byBiZSB0YWtlbgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgaW1wbE9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbiBuZXdBY3Rpb24pIHsKKyAgICAgICAgb25Vbm1hcHBhYmxlSW5wdXQgPSBnZXRDYWxsYmFjayhuZXdBY3Rpb24pOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBDaGFyc2V0Q2FsbGJhY2suRGVjb2RlciBnZXRDYWxsYmFjayhDb2RpbmdFcnJvckFjdGlvbiBhY3Rpb24peworICAgICAgICBpZihhY3Rpb249PUNvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5UT19VX0NBTExCQUNLX1NVQlNUSVRVVEU7CisgICAgICAgIH1lbHNlIGlmKGFjdGlvbj09Q29kaW5nRXJyb3JBY3Rpb24uSUdOT1JFKXsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suVE9fVV9DQUxMQkFDS19TS0lQOworICAgICAgICB9ZWxzZSBpZihhY3Rpb249PUNvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCl7CisgICAgICAgICAgICByZXR1cm4gQ2hhcnNldENhbGxiYWNrLlRPX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcnNldENhbGxiYWNrLlRPX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICB9CisgICAgcHJpdmF0ZSBmaW5hbCBCeXRlQnVmZmVyIEVNUFRZID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgwKTsKKyAgICAvKioKKyAgICAgKiBGbHVzaGVzIGFueSBjaGFyYWN0ZXJzIHNhdmVkIGluIHRoZSBjb252ZXJ0ZXIncyBpbnRlcm5hbCBidWZmZXIgYW5kCisgICAgICogcmVzZXRzIHRoZSBjb252ZXJ0ZXIuCisgICAgICogQHBhcmFtIG91dCBhY3Rpb24gdG8gYmUgdGFrZW4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBvZiBmbHVzaGluZyBhY3Rpb24gYW5kIGNvbXBsZXRlcyB0aGUgZGVjb2RpbmcgYWxsIGlucHV0LiAKKyAgICAgKiAgICAgICAgIFJldHVybnMgQ29kZXJSZXN1bHQuVU5ERVJGTE9XIGlmIHRoZSBhY3Rpb24gc3VjY2VlZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIENvZGVyUmVzdWx0IGltcGxGbHVzaChDaGFyQnVmZmVyIG91dCkgeworICAgICAgICByZXR1cm4gZGVjb2RlKEVNUFRZLCBvdXQsIG51bGwsIHRydWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhlIHRvIFVuaWNvZGUgbW9kZSBvZiBjb252ZXJ0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbXBsUmVzZXQoKSB7CisgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IDAgOworICAgICAgICB0b1VMZW5ndGggPSAwOworICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSAwOworICAgICAgICBjaGFyRXJyb3JCdWZmZXJCZWdpbiA9IDA7CisgICAgICAgIAorICAgICAgICAvKiBzdG9yZSBwcmV2aW91cyBVQ2hhcnMvY2hhcnMgdG8gY29udGludWUgcGFydGlhbCBtYXRjaGVzICovCisgICAgICAgIHByZVRvVUJlZ2luID0gMDsKKyAgICAgICAgcHJlVG9VTGVuZ3RoID0gMDsgICAgICAgLyogbmVnYXRpdmU6IHJlcGxheSAqLworICAgICAgICBwcmVUb1VGaXJzdExlbmd0aCA9IDA7IAorCisgICAgICAgIG1vZGUgPSAwOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIERlY29kZXMgb25lIG9yIG1vcmUgYnl0ZXMuIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUgY29udmVydGVyCisgICAgICogaXMgc3RvcCBhbmQgcmVwb3J0IGlmIGFuIGVycm9yIGluIGlucHV0IHN0cmVhbSBpcyBlbmNvdW50ZXJlZC4gCisgICAgICogVG8gc2V0IGRpZmZlcmVudCBiZWhhdmlvdXIgdXNlIEBzZWUgQ2hhcnNldERlY29kZXIub25NYWxmb3JtZWRJbnB1dCgpCisgICAgICogVGhpcyAgbWV0aG9kIGFsbG93cyBhIGJ1ZmZlciBieSBidWZmZXIgY29udmVyc2lvbiBvZiBhIGRhdGEgc3RyZWFtLiAgCisgICAgICogVGhlIHN0YXRlIG9mIHRoZSBjb252ZXJzaW9uIGlzIHNhdmVkIGJldHdlZW4gY2FsbHMgdG8gY29udmVydC4gIAorICAgICAqIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBtZWFucyBtdWx0aWJ5dGUgaW5wdXQgc2VxdWVuY2VzIGNhbiBiZSAKKyAgICAgKiBzcGxpdCBiZXR3ZWVuIGNhbGxzLiBJZiBhIGNhbGwgdG8gY29udmVydCByZXN1bHRzIGluIGFuIEVycm9yLCB0aGUgCisgICAgICogY29udmVyc2lvbiBtYXkgYmUgY29udGludWVkIGJ5IGNhbGxpbmcgY29udmVydCBhZ2FpbiB3aXRoIHN1aXRhYmx5IAorICAgICAqIG1vZGlmaWVkIHBhcmFtZXRlcnMuQWxsIGNvbnZlcnNpb25zIHNob3VsZCBiZSBmaW5pc2hlZCB3aXRoIGEgY2FsbCB0byAKKyAgICAgKiB0aGUgZmx1c2ggbWV0aG9kLgorICAgICAqIEBwYXJhbSBpbiBidWZmZXIgdG8gZGVjb2RlCisgICAgICogQHBhcmFtIG91dCBidWZmZXIgdG8gcG9wdWxhdGUgd2l0aCBkZWNvZGVkIHJlc3VsdAorICAgICAqIEByZXR1cm4gUmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gUmV0dXJucyBDb2RlclJlc3VsdC5VTkRFUkZMT1cgaWYgdGhlIGRlY29kaW5nCisgICAgICogICAgICAgICBhY3Rpb24gc3VjY2VlZHMgb3IgbW9yZSBpbnB1dCBpcyBuZWVkZWQgZm9yIGNvbXBsZXRpbmcgdGhlIGRlY29kaW5nIGFjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZGVjb2RlTG9vcChCeXRlQnVmZmVyIGluLENoYXJCdWZmZXIgb3V0KXsKKyAgICAgICAgaWYoIWluLmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIH0KKyAgICAgICAgaW4ucG9zaXRpb24oaW4ucG9zaXRpb24oKSt0b1VDb3VudFBlbmRpbmcoKSk7CisgICAgICAgIC8qIGRvIHRoZSBjb252ZXJzaW9uICovCisgICAgICAgIENvZGVyUmVzdWx0IHJldCA9IGRlY29kZShpbiwgb3V0LCBudWxsLCBmYWxzZSk7CisKKyAgICAgICAgc2V0U291cmNlUG9zaXRpb24oaW4pOworICAgICAgICByZXR1cm4gcmV0OworCX0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHRoZSBJQ1Ugc2VtYW50aWMgZm9yIGRlY29kZSBvcGVyYXRpb24KKyAgICAgKiBAcGFyYW0gaW4gVGhlIGlucHV0IGJ5dGUgYnVmZmVyCisgICAgICogQHBhcmFtIG91dCBUaGUgb3V0cHV0IGNoYXJhY3RlciBidWZmZXIKKyAgICAgKiBAcmV0dXJuIFJlc3VsdCBvZiBkZWNvZGluZyBhY3Rpb24uIFJldHVybnMgQ29kZXJSZXN1bHQuVU5ERVJGTE9XIGlmIHRoZSBkZWNvZGluZworICAgICAqICAgICAgICAgYWN0aW9uIHN1Y2NlZWRzIG9yIG1vcmUgaW5wdXQgaXMgbmVlZGVkIGZvciBjb21wbGV0aW5nIHRoZSBkZWNvZGluZyBhY3Rpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBDb2RlclJlc3VsdCBkZWNvZGVMb29wKEJ5dGVCdWZmZXIgaW4sIENoYXJCdWZmZXIgb3V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCk7CisgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB0aGUgSUNVIHNlbWFudGljIGZvciBkZWNvZGUgb3BlcmF0aW9uCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgaW5wdXQgYnl0ZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXRzCisgICAgICogQHBhcmFtIGZsdXNoIHRydWUgaWYsIGFuZCBvbmx5IGlmLCB0aGUgaW52b2tlciBjYW4gcHJvdmlkZSBubworICAgICAqICBhZGRpdGlvbmFsIGlucHV0IGJ5dGVzIGJleW9uZCB0aG9zZSBpbiB0aGUgZ2l2ZW4gYnVmZmVyLgorICAgICAqIEByZXR1cm4gUmVzdWx0IG9mIGRlY29kaW5nIGFjdGlvbi4gUmV0dXJucyBDb2RlclJlc3VsdC5VTkRFUkZMT1cgaWYgdGhlIGRlY29kaW5nCisgICAgICogICAgICAgICBhY3Rpb24gc3VjY2VlZHMgb3IgbW9yZSBpbnB1dCBpcyBuZWVkZWQgZm9yIGNvbXBsZXRpbmcgdGhlIGRlY29kaW5nIGFjdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGZpbmFsIENvZGVyUmVzdWx0IGRlY29kZShCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKSB7CisgICAgCisgICAgICAgIC8qIGNoZWNrIHBhcmFtZXRlcnMgKi8KKyAgICAgICAgaWYodGFyZ2V0PT1udWxsIHx8IHNvdXJjZT09bnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICAqIE1ha2Ugc3VyZSB0aGF0IHRoZSBidWZmZXIgc2l6ZXMgZG8gbm90IGV4Y2VlZCB0aGUgbnVtYmVyIHJhbmdlIGZvcgorICAgICAgICAgKiBpbnQzMl90IGJlY2F1c2Ugc29tZSBmdW5jdGlvbnMgdXNlIHRoZSBzaXplIChpbiB1bml0cyBvciBieXRlcykKKyAgICAgICAgICogcmF0aGVyIHRoYW4gY29tcGFyaW5nIHBvaW50ZXJzLCBhbmQgYmVjYXVzZSBvZmZzZXRzIGFyZSBpbnQzMl90IHZhbHVlcy4KKyAgICAgICAgICoKKyAgICAgICAgICogc2l6ZV90IGlzIGd1YXJhbnRlZWQgdG8gYmUgdW5zaWduZWQgYW5kIGxhcmdlIGVub3VnaCBmb3IgdGhlIGpvYi4KKyAgICAgICAgICoKKyAgICAgICAgICogUmV0dXJuIHdpdGggYW4gZXJyb3IgaW5zdGVhZCBvZiBhZGp1c3RpbmcgdGhlIGxpbWl0cyBiZWNhdXNlIHdlIHdvdWxkCisgICAgICAgICAqIG5vdCBiZSBhYmxlIHRvIG1haW50YWluIHRoZSBzZW1hbnRpY3MgdGhhdCBlaXRoZXIgdGhlIHNvdXJjZSBtdXN0IGJlCisgICAgICAgICAqIGNvbnN1bWVkIG9yIHRoZSB0YXJnZXQgZmlsbGVkICh1bmxlc3MgYW4gZXJyb3Igb2NjdXJzKS4KKyAgICAgICAgICogQW4gYWRqdXN0bWVudCB3b3VsZCBiZSBzb3VyY2VMaW1pdD10KzB4N2ZmZmZmZmY7IGZvciBleGFtcGxlLgorICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qYWdsanBvcnQ6Zml4CisgICAgICAgIGlmKAorICAgICAgICAgICAgKChzaXplX3QpKHNvdXJjZUxpbWl0LXMpPihzaXplX3QpMHg3ZmZmZmZmZiAmJiBzb3VyY2VMaW1pdD5zKSB8fAorICAgICAgICAgICAgKChzaXplX3QpKHRhcmdldExpbWl0LXQpPihzaXplX3QpMHgzZmZmZmZmZiAmJiB0YXJnZXRMaW1pdD50KQorICAgICAgICApIHsKKyAgICAgICAgICAgICplcnI9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgLyogZmx1c2ggdGhlIHRhcmdldCBvdmVyZmxvdyBidWZmZXIgKi8KKyAgICAgICAgaWYoY2hhckVycm9yQnVmZmVyTGVuZ3RoPjApIHsKKyAgICAgICAgICAgIGNoYXJbXSBvdmVyZmxvdyA9IG51bGw7CisgICAgICAgICAgICBpbnQgaSwgbGVuZ3RoOworICAgIAorICAgICAgICAgICAgb3ZlcmZsb3c9Y2hhckVycm9yQnVmZmVyQXJyYXk7CisgICAgICAgICAgICBsZW5ndGg9Y2hhckVycm9yQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgaT0wOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlmKHRhcmdldC5yZW1haW5pbmcoKTw9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGNvbnRhaW5zIHRvbyBtdWNoLCBrZWVwIHRoZSByZXN0ICovCisgICAgICAgICAgICAgICAgICAgIGludCBqPTA7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93W2orK109b3ZlcmZsb3dbaSsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShpPGxlbmd0aCk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0oYnl0ZSlqOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIGNvcHkgdGhlIG92ZXJmbG93IGNvbnRlbnRzIHRvIHRoZSB0YXJnZXQgKi8KKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KG92ZXJmbG93W2krK10pOworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOyAvKiBubyBzb3VyY2UgaW5kZXggYXZhaWxhYmxlIGZvciBvbGQgb3V0cHV0ICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZShpPGxlbmd0aCk7CisgICAgCisgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGlzIGNvbXBsZXRlbHkgY29waWVkIHRvIHRoZSB0YXJnZXQgKi8KKyAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0wOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmKCFmbHVzaCAmJiBzb3VyY2UucmVtYWluaW5nKCk9PTAgJiYgcHJlVG9VTGVuZ3RoPj0wKSB7CisgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGlzIGVtcHRpZWQgYW5kIHRoZXJlIGlzIG5vIG5ldyBpbnB1dDogd2UgYXJlIGRvbmUgKi8KKyAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gbm90IHNpbXBseSByZXR1cm4gd2l0aCBhIGJ1ZmZlciBvdmVyZmxvdyBlcnJvciBpZgorICAgICAgICAgKiAhZmx1c2ggJiYgdD09dGFyZ2V0TGltaXQKKyAgICAgICAgICogYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBzb3VyY2Ugd2lsbCBub3QgZ2VuZXJhdGUgYW55IG91dHB1dC4KKyAgICAgICAgICogRm9yIGV4YW1wbGUsIHRoZSBza2lwIGNhbGxiYWNrIG1heSBiZSBjYWxsZWQ7CisgICAgICAgICAqIGl0IGRvZXMgbm90IG91dHB1dCBhbnl0aGluZy4KKyAgICAgICAgICovCisgICAgCisgICAgICAgIHJldHVybiB0b1VuaWNvZGVXaXRoQ2FsbGJhY2soc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKyAgICB9CisKKyAgICAvKiBtYXhpbXVtIG51bWJlciBvZiBpbmRleGVkIGJ5dGVzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVF9NQVhfQllURVMgPSAweDFmOworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVPZmZzZXRzKEludEJ1ZmZlciBvZmZzZXRzLGludCBsZW5ndGgsIGludCBzb3VyY2VJbmRleCwgaW50IGVycm9ySW5wdXRMZW5ndGgpIHsKKyAgICAgICAgaW50IGxpbWl0OworICAgICAgICBpbnQgZGVsdGEsIG9mZnNldDsKKworICAgICAgICBpZihzb3VyY2VJbmRleD49MCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGFkanVzdCBlYWNoIG9mZnNldCBieSBhZGRpbmcgdGhlIHByZXZpb3VzIHNvdXJjZUluZGV4CisgICAgICAgICAgICAgKiBtaW51cyB0aGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBzZXF1ZW5jZSB0aGF0IGNhdXNlZCBhbgorICAgICAgICAgICAgICogZXJyb3IsIGlmIGFueQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBkZWx0YT1zb3VyY2VJbmRleC1lcnJvcklucHV0TGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHNldCBlYWNoIG9mZnNldCB0byAtMSBiZWNhdXNlIHRoaXMgY29udmVyc2lvbiBmdW5jdGlvbgorICAgICAgICAgICAgICogZG9lcyBub3QgaGFuZGxlIG9mZnNldHMKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZGVsdGE9LTE7CisgICAgICAgIH0KKyAgICAgICAgbGltaXQ9b2Zmc2V0cy5wb3NpdGlvbigpK2xlbmd0aDsKKyAgICAgICAgaWYoZGVsdGE9PTApIHsKKyAgICAgICAgICAgIC8qIG1vc3QgY29tbW9uIGNhc2UsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgfSBlbHNlIGlmKGRlbHRhPjApIHsKKyAgICAgICAgICAgIC8qIGFkZCB0aGUgZGVsdGEgdG8gZWFjaCBvZmZzZXQgKGJ1dCBub3QgaWYgdGhlIG9mZnNldCBpcyA8MCkgKi8KKyAgICAgICAgICAgIHdoaWxlKG9mZnNldHMucG9zaXRpb24oKTxsaW1pdCkgeworICAgICAgICAgICAgICAgIG9mZnNldD1vZmZzZXRzLmdldChvZmZzZXRzLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIGlmKG9mZnNldD49MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChvZmZzZXQrZGVsdGEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL0ZJWE1FOiArK29mZnNldHM7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSAvKiBkZWx0YTwwICovIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzZXQgZWFjaCBvZmZzZXQgdG8gLTEgYmVjYXVzZSB0aGlzIGNvbnZlcnNpb24gZnVuY3Rpb24KKyAgICAgICAgICAgICAqIGRvZXMgbm90IGhhbmRsZSBvZmZzZXRzCisgICAgICAgICAgICAgKiBvciB0aGUgZXJyb3IgaW5wdXQgc2VxdWVuY2Ugc3RhcnRlZCBpbiBhIHByZXZpb3VzIGJ1ZmZlcgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB3aGlsZShvZmZzZXRzLnBvc2l0aW9uKCk8bGltaXQpIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZmluYWwgQ29kZXJSZXN1bHQgdG9Vbmljb2RlV2l0aENhbGxiYWNrKEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAKKyAgICAgICAgaW50IHNvdXJjZUluZGV4OworICAgICAgICBpbnQgZXJyb3JJbnB1dExlbmd0aDsKKyAgICAgICAgYm9vbGVhbiBjb252ZXJ0ZXJTYXdFbmRPZklucHV0LCBjYWxsZWRDYWxsYmFjazsKKyAgICAgICAgaW50IHQ9dGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgIGludCBzPXNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAvKiB2YXJpYWJsZXMgZm9yIG06biBjb252ZXJzaW9uICovCisgICAgICAgIEJ5dGVCdWZmZXIgcmVwbGF5QXJyYXkgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKEVYVF9NQVhfQllURVMpOworICAgICAgICBpbnQgcmVwbGF5QXJyYXlJbmRleCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgQnl0ZUJ1ZmZlciByZWFsU291cmNlPW51bGw7CisgICAgICAgIGJvb2xlYW4gcmVhbEZsdXNoPWZhbHNlOworICAgICAgICBpbnQgcmVhbFNvdXJjZUluZGV4PTA7CisgICAgCisKKyAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIAorICAgICAgICAvKiBnZXQgdGhlIGNvbnZlcnRlciBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiAqLworICAgICAgICBzb3VyY2VJbmRleD0wOworCisgICAgICAgIGlmKHByZVRvVUxlbmd0aD49MCkgeworICAgICAgICAgICAgLyogbm9ybWFsIG1vZGUgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBQcmV2aW91cyBtOm4gY29udmVyc2lvbiBzdG9yZWQgc291cmNlIHVuaXRzIGZyb20gYSBwYXJ0aWFsIG1hdGNoCisgICAgICAgICAgICAgKiBhbmQgZmFpbGVkIHRvIGNvbnN1bWUgYWxsIG9mIHRoZW0uCisgICAgICAgICAgICAgKiBXZSBuZWVkIHRvICJyZXBsYXkiIHRoZW0gZnJvbSBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGNvbnZlcnQgdGhlbSBmaXJzdC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmVhbFNvdXJjZT1zb3VyY2U7CisgICAgICAgICAgICByZWFsRmx1c2g9Zmx1c2g7CisgICAgICAgICAgICByZWFsU291cmNlSW5kZXg9c291cmNlSW5kZXg7CisgICAgICAgICAgICAvL1VDb252ZXJ0ZXJVdGlsaXR5LnVwcnZfbWVtY3B5KHJlcGxheUFycmF5LCByZXBsYXlCZWdpbiwgcHJlVG9VQXJyYXksIHByZVRvVUJlZ2luLCAtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgIHJlcGxheUFycmF5LnB1dChwcmVUb1VBcnJheSwwLCAtcHJlVG9VTGVuZ3RoKTsKKyAgICAgICAgICAgIHNvdXJjZT1yZXBsYXlBcnJheTsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNvdXJjZS5saW1pdChyZXBsYXlBcnJheUluZGV4LXByZVRvVUxlbmd0aCk7CisgICAgICAgICAgICBmbHVzaD1mYWxzZTsKKyAgICAgICAgICAgIHNvdXJjZUluZGV4PS0xOworICAgICAgICAgICAgcHJlVG9VTGVuZ3RoPTA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogbG9vcCBmb3IgY29udmVyc2lvbiBhbmQgZXJyb3IgaGFuZGxpbmcKKyAgICAgICAgICoKKyAgICAgICAgICogbG9vcCB7CisgICAgICAgICAqICAgY29udmVydAorICAgICAgICAgKiAgIGxvb3AgeworICAgICAgICAgKiAgICAgdXBkYXRlIG9mZnNldHMKKyAgICAgICAgICogICAgIGhhbmRsZSBlbmQgb2YgaW5wdXQKKyAgICAgICAgICogICAgIGhhbmRsZSBlcnJvcnMvY2FsbCBjYWxsYmFjaworICAgICAgICAgKiAgIH0KKyAgICAgICAgICogfQorICAgICAgICAgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBpZihjci5pc1VuZGVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgLyogY29udmVydCAqLworICAgICAgICAgICAgICAgIGNyID0gZGVjb2RlTG9vcChzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogc2V0IGEgZmxhZyBmb3Igd2hldGhlciB0aGUgY29udmVydGVyCisgICAgICAgICAgICAgICAgICogc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgZW5kIG9mIHRoZSBpbnB1dAorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogbmVlZCBub3QgY2hlY2sgY252LT5wcmVUb1VMZW5ndGg9PTAgYmVjYXVzZSBhIHJlcGxheSAoPDApIHdpbGwgY2F1c2UKKyAgICAgICAgICAgICAgICAgKiBzPHNvdXJjZUxpbWl0IGJlZm9yZSBjb252ZXJ0ZXJTYXdFbmRPZklucHV0IGlzIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBjb252ZXJ0ZXJTYXdFbmRPZklucHV0PSAoY3IuaXNVbmRlcmZsb3coKSAmJiBmbHVzaCAmJiBzb3VyY2UucmVtYWluaW5nKCk9PTAgJiYgdG9VTGVuZ3RoPT0wKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogaGFuZGxlIGVycm9yIGZyb20gZ2V0TmV4dFVDaGFyKCkgKi8KKyAgICAgICAgICAgICAgICBjb252ZXJ0ZXJTYXdFbmRPZklucHV0PWZhbHNlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogbm8gY2FsbGJhY2sgY2FsbGVkIHlldCBmb3IgdGhpcyBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIGNhbGxlZENhbGxiYWNrPWZhbHNlOworICAgIAorICAgICAgICAgICAgLyogbm8gc291cmNlSW5kZXggYWRqdXN0bWVudCBmb3IgY29udmVyc2lvbiwgb25seSBmb3IgY2FsbGJhY2sgb3V0cHV0ICovCisgICAgICAgICAgICBlcnJvcklucHV0TGVuZ3RoPTA7CisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbG9vcCBmb3Igb2Zmc2V0cyBhbmQgZXJyb3IgaGFuZGxpbmcKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBpdGVyYXRlcyBhdCBtb3N0IDMgdGltZXM6CisgICAgICAgICAgICAgKiAxLiB0byBjbGVhbiB1cCBhZnRlciB0aGUgY29udmVyc2lvbiBmdW5jdGlvbgorICAgICAgICAgICAgICogMi4gYWZ0ZXIgdGhlIGNhbGxiYWNrCisgICAgICAgICAgICAgKiAzLiBhZnRlciB0aGUgY2FsbGJhY2sgYWdhaW4gaWYgdGhlcmUgd2FzIHRydW5jYXRlZCBpbnB1dAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAvKiB1cGRhdGUgb2Zmc2V0cyBpZiB3ZSB3cml0ZSBhbnkgKi8KKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aD0odGFyZ2V0LnBvc2l0aW9uKCktdCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVPZmZzZXRzKG9mZnNldHMsIGxlbmd0aCwgc291cmNlSW5kZXgsIGVycm9ySW5wdXRMZW5ndGgpOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiBhIGNvbnZlcnRlciBoYW5kbGVzIG9mZnNldHMgYW5kIHVwZGF0ZXMgdGhlIG9mZnNldHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHBvaW50ZXIgYXQgdGhlIGVuZCwgdGhlbiBwQXJncy0+b2Zmc2V0IHNob3VsZCBub3QgY2hhbmdlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBoZXJlOworICAgICAgICAgICAgICAgICAgICAgICAgICogaG93ZXZlciwgc29tZSBjb252ZXJ0ZXJzIGRvIG5vdCBoYW5kbGUgb2Zmc2V0cyBhdCBhbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIChzb3VyY2VJbmRleDwwKSBvciBtYXkgbm90IHVwZGF0ZSB0aGUgb2Zmc2V0cyBwb2ludGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vVE9ETzogcEFyZ3MtPm9mZnNldHM9b2Zmc2V0cys9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZUluZGV4Pj0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9KHNvdXJjZS5wb3NpdGlvbigpLXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgaWYocHJlVG9VTGVuZ3RoPDApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogc3dpdGNoIHRoZSBzb3VyY2UgdG8gbmV3IHJlcGxheSB1bml0cyAoY2Fubm90IG9jY3VyIHdoaWxlIHJlcGxheWluZykKKyAgICAgICAgICAgICAgICAgICAgICogYWZ0ZXIgb2Zmc2V0IGhhbmRsaW5nIGFuZCBiZWZvcmUgZW5kLW9mLWlucHV0IGFuZCBjYWxsYmFjayBoYW5kbGluZworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYocmVhbFNvdXJjZT09bnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxTb3VyY2U9c291cmNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbEZsdXNoPWZsdXNoOworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFNvdXJjZUluZGV4PXNvdXJjZUluZGV4OworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy9VQ29udmVydGVyVXRpbGl0eS51cHJ2X21lbWNweShyZXBsYXlBcnJheSwgcmVwbGF5QmVnaW4sIHByZVRvVUFycmF5LCBwcmVUb1VCZWdpbiwgLXByZVRvVUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBsYXlBcnJheS5wdXQocHJlVG9VQXJyYXksMCwgLXByZVRvVUxlbmd0aCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT1yZXBsYXlBcnJheTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChyZXBsYXlBcnJheUluZGV4LXByZVRvVUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaD1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKChzb3VyY2VJbmRleCs9cHJlVG9VTGVuZ3RoKTwwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXg9LTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGg9MDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlZSBpbXBsZW1lbnRhdGlvbiBub3RlIGJlZm9yZSBfZnJvbVVuaWNvZGVXaXRoQ2FsbGJhY2soKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIFVfQVNTRVJUKHJlYWxTb3VyY2U9PU5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQocmVhbFNvdXJjZT09bnVsbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogdXBkYXRlIHBvaW50ZXJzICovCisgICAgICAgICAgICAgICAgcz1zb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICB0PXRhcmdldC5wb3NpdGlvbigpOworICAgIAorICAgICAgICAgICAgICAgIGlmKGNyLmlzVW5kZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoczxzb3VyY2UubGltaXQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBjb250aW51ZSB3aXRoIHRoZSBjb252ZXJzaW9uIGxvb3Agd2hpbGUgdGhlcmUgaXMgc3RpbGwgaW5wdXQgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICogKGNvbnRpbnVlIGNvbnZlcnRpbmcgYnkgYnJlYWtpbmcgb3V0IG9mIG9ubHkgdGhlIGlubmVyIGxvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYocmVhbFNvdXJjZSE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc3dpdGNoIGJhY2sgZnJvbSByZXBsYXlpbmcgdG8gdGhlIHJlYWwgc291cmNlIGFuZCBjb250aW51ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gcmVhbFNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoPXJlYWxGbHVzaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4PXJlYWxTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxTb3VyY2U9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZmx1c2ggJiYgdG9VTGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgZW50aXJlIGlucHV0IHN0cmVhbSBpcyBjb25zdW1lZAorICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIHRoZXJlIGlzIGEgcGFydGlhbCwgdHJ1bmNhdGVkIGlucHV0IHNlcXVlbmNlIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5qZWN0IGFuIGVycm9yIGFuZCBjb250aW51ZSB3aXRoIGNhbGxiYWNrIGhhbmRsaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCh0b1VMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGVkQ2FsbGJhY2s9ZmFsc2U7IC8qIG5ldyBlcnJvciBjb25kaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlucHV0IGNvbnN1bWVkICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmV0dXJuIHRvIHRoZSBjb252ZXJzaW9uIGxvb3Agb25jZSBtb3JlIGlmIHRoZSBmbHVzaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGZsYWcgaXMgc2V0IGFuZCB0aGUgY29udmVyc2lvbiBmdW5jdGlvbiBoYXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChjb250aW51ZSBjb252ZXJ0aW5nIGJ5IGJyZWFraW5nIG91dCBvZiBvbmx5IHRoZSBpbm5lciBsb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFjb252ZXJ0ZXJTYXdFbmRPZklucHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXNldCB0aGUgY29udmVydGVyIHdpdGhvdXQgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsUmVzZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvbmUgc3VjY2Vzc2Z1bGx5ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogVV9GQUlMVVJFKCplcnIpICovCisgICAgICAgICAgICAgICAgeworICAgIAorICAgICAgICAgICAgICAgICAgICBpZiggY2FsbGVkQ2FsbGJhY2sgfHwgY3IuaXNPdmVyZmxvdygpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY3IuaXNNYWxmb3JtZWQoKSAmJiBjci5pc1VubWFwcGFibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgY2FsbGJhY2sgZGlkIG5vdCBvciBjYW5ub3QgcmVzb2x2ZSB0aGUgZXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBzZXQgb3V0cHV0IHBvaW50ZXJzIGFuZCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgY2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyBpcyByZWR1bmRhbnQgYnV0IGl0IGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIGhpZ2gtcnVubmVyIGNhc2UgYW5kIGhvcGVmdWxseSBkb2N1bWVudHMgdGhlIGludGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICogd2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIHdlIHdlcmUgcmVwbGF5aW5nLCB0aGVuIHRoZSByZXBsYXkgYnVmZmVyIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGNvcGllZCBiYWNrIGludG8gdGhlIFVDb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCB0aGUgcmVhbCBhcmd1bWVudHMgbXVzdCBiZSByZXN0b3JlZAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihyZWFsU291cmNlIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQocHJlVG9VTGVuZ3RoPT0wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9KGludCkoc291cmNlLmxpbWl0KCktc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVUNvbnZlcnRlclV0aWxpdHkudXBydl9tZW1jcHkocHJlVG9VQXJyYXksIHByZVRvVUJlZ2luLCBwQXJncy5zb3VyY2VBcnJheSwgcEFyZ3Muc291cmNlQmVnaW4sIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXQocHJlVG9VQXJyYXksIHByZVRvVUJlZ2luLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGg9KGJ5dGUpLWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlPXJlYWxTb3VyY2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmx1c2g9cmVhbEZsdXNoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIGNvcHkgdG9VQnl0ZXNbXSB0byBpbnZhbGlkQ2hhckJ1ZmZlcltdICovCisgICAgICAgICAgICAgICAgZXJyb3JJbnB1dExlbmd0aD1pbnZhbGlkQ2hhckxlbmd0aD10b1VMZW5ndGg7CisgICAgICAgICAgICAgICAgaWYoZXJyb3JJbnB1dExlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgIGNvcHkodG9VQnl0ZXNBcnJheSwgMCwgaW52YWxpZENoYXJCdWZmZXIsIDAsIGVycm9ySW5wdXRMZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIGNvbnZlcnRlciBzdGF0ZSB0byBkZWFsIHdpdGggdGhlIG5leHQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTA7CisgICAgCisgICAgICAgICAgICAgICAgLyogY2FsbCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgICAgICBjciA9IHRvQ2hhckVycm9yQmVoYXZpb3VyLmNhbGwodGhpcywgdG9VQ29udGV4dCwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGludmFsaWRDaGFyQnVmZmVyLCBlcnJvcklucHV0TGVuZ3RoLCBjcik7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBsb29wIGJhY2sgdG8gdGhlIG9mZnNldCBoYW5kbGluZworICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogdGhpcyBmbGFnIHdpbGwgaW5kaWNhdGUgYWZ0ZXIgb2Zmc2V0IGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICogdGhhdCBhIGNhbGxiYWNrIHdhcyBjYWxsZWQ7CisgICAgICAgICAgICAgICAgICogaWYgdGhlIGNhbGxiYWNrIGRpZCBub3QgcmVzb2x2ZSB0aGUgZXJyb3IsIHRoZW4gd2UgcmV0dXJuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgY2FsbGVkQ2FsbGJhY2s9dHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFycyBoZWxkIGluIHRoZSBjb252ZXJ0ZXIncyBpbnRlcm5hbCBzdGF0ZQorICAgICAqIGJlY2F1c2UgbW9yZSBpbnB1dCBpcyBuZWVkZWQgZm9yIGNvbXBsZXRpbmcgdGhlIGNvbnZlcnNpb24uIFRoaXMgZnVuY3Rpb24gaXMgCisgICAgICogdXNlZnVsIGZvciBtYXBwaW5nIHNlbWFudGljcyBvZiBJQ1UncyBjb252ZXJ0ZXIgaW50ZXJmYWNlIHRvIHRob3NlIG9mIGljb252LAorICAgICAqIGFuZCB0aGlzIGluZm9ybWF0aW9uIGlzIG5vdCBuZWVkZWQgZm9yIG5vcm1hbCBjb252ZXJzaW9uLgorICAgICAqIEByZXR1cm4gVGhlIG51bWJlciBvZiBjaGFycyBpbiB0aGUgc3RhdGUuIC0xIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgLypwdWJsaWMqLyBpbnQgdG9VQ291bnRQZW5kaW5nKCkgICAgeworICAgICAgICBpZihwcmVUb1VMZW5ndGggPiAwKXsKKyAgICAgICAgICAgIHJldHVybiBwcmVUb1VMZW5ndGggOworICAgICAgICB9ZWxzZSBpZihwcmVUb1VMZW5ndGggPCAwKXsKKyAgICAgICAgICAgIHJldHVybiAtcHJlVG9VTGVuZ3RoOworICAgICAgICB9ZWxzZSBpZih0b1VMZW5ndGggPiAwKXsKKyAgICAgICAgICAgIHJldHVybiB0b1VMZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHNldFNvdXJjZVBvc2l0aW9uKEJ5dGVCdWZmZXIgc291cmNlKXsKKyAgICAgICAgLy8gb2sgd2FzIHRoZXJlIGlucHV0IGhlbGQgaW4gdGhlIHByZXZpb3VzIGludm9jYXRpb24gb2YgZGVjb2RlTG9vcCAKKyAgICAgICAgLy8gdGhhdCByZXN1bHRlZCBpbiBvdXRwdXQgaW4gdGhpcyBpbnZvY2F0aW9uPworICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkgLSB0b1VDb3VudFBlbmRpbmcoKSk7CisgICAgICAgIAorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29weShieXRlW10gc3JjLCBpbnQgc3JjT2Zmc2V0LCBjaGFyW10gZHN0LCBpbnQgZHN0T2Zmc2V0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGZvcihpbnQgaT1zcmNPZmZzZXQ7IGk8bGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZHN0W2RzdE9mZnNldCsrXT0oY2hhcilzcmNbc3JjT2Zmc2V0KytdOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIE9OTFkgdXNlZCBieSBUb1UgY2FsbGJhY2sgZnVuY3Rpb25zLgorICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCB3cml0ZSBvdXQgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXJzIHRvIHRoZSB0YXJnZXQKKyAgICAgKiBjaGFyYWN0ZXIgYnVmZmVyLgorICAgICAqIEByZXR1cm4gQSBDb2RlclJlc3VsdCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZXJyb3IgcmVzdWx0IHdoZW4gYW4gZXJyb3Igb2NjdXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIENvZGVyUmVzdWx0IHRvVVdyaXRlVUNoYXJzKCBDaGFyc2V0RGVjb2RlcklDVSBjbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gdWNoYXJzQXJyYXksIGludCB1Y2hhcnNCZWdpbiwgaW50IGxlbmd0aCwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc291cmNlSW5kZXgpIHsKKyAgICAgICAgCisgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAKKyAgICAgICAgLyogd3JpdGUgVUNoYXJzICovCisgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgIHdoaWxlKGxlbmd0aD4wICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodWNoYXJzQXJyYXlbdWNoYXJzQmVnaW4rK10pOworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBvdXRwdXQgd2l0aCBvZmZzZXRzICovCisgICAgICAgICAgICB3aGlsZShsZW5ndGg+MCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHVjaGFyc0FycmF5W3VjaGFyc0JlZ2luKytdKTsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogd3JpdGUgb3ZlcmZsb3cgKi8KKyAgICAgICAgaWYobGVuZ3RoPjApIHsgICAgICAgIAorICAgICAgICAgICAgY252LmNoYXJFcnJvckJ1ZmZlckxlbmd0aD0gMDsKKyAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgY252LmNoYXJFcnJvckJ1ZmZlckFycmF5W2Nudi5jaGFyRXJyb3JCdWZmZXJMZW5ndGgrK109dWNoYXJzQXJyYXlbdWNoYXJzQmVnaW4rK107CisgICAgICAgICAgICB9IHdoaWxlKC0tbGVuZ3RoPjApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcjsKKyAgICB9CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIHdyaXRlIG91dCB0aGUgVW5pY29kZSBzdWJzdGl0dXRpb24gY2hhcmFjdGVyIHRvIHRoZQorICAgICAqIHRhcmdldCBjaGFyYWN0ZXIgYnVmZmVyLgorICAgICAqIFN1YiBjbGFzc2VzIHRvIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHJlcXVpcmVkCisgICAgICogQHBhcmFtIGRlY29kZXIKKyAgICAgKiBAcGFyYW0gc291cmNlCisgICAgICogQHBhcmFtIHRhcmdldAorICAgICAqIEBwYXJhbSBvZmZzZXRzCisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAgQ29kZXJSZXN1bHQgY2JUb1VXcml0ZVN1YihDaGFyc2V0RGVjb2RlcklDVSBkZWNvZGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludEJ1ZmZlciBvZmZzZXRzKXsKKyAgICAgICAgU3RyaW5nIHN1YiA9IGRlY29kZXIucmVwbGFjZW1lbnQoKTsKKyAgICAgICAgQ2hhcnNldElDVSBjcyA9IChDaGFyc2V0SUNVKSBkZWNvZGVyLmNoYXJzZXQoKTsKKyAgICAgICAgaWYgKGRlY29kZXIuaW52YWxpZENoYXJMZW5ndGg9PTEgJiYgY3Muc3ViQ2hhcjEgIT0gMHgwMCkgeworICAgICAgICAgICAgY2hhcltdIHN1YkFyciA9IG5ldyBjaGFyW10geyAweDFhIH07CisgICAgICAgICAgICByZXR1cm4gQ2hhcnNldERlY29kZXJJQ1UudG9VV3JpdGVVQ2hhcnMoZGVjb2Rlciwgc3ViQXJyLCAwLCBzdWIKKyAgICAgICAgICAgICAgICAgICAgLmxlbmd0aCgpLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0RGVjb2RlcklDVS50b1VXcml0ZVVDaGFycyhkZWNvZGVyLCBzdWIudG9DaGFyQXJyYXkoKSwKKyAgICAgICAgICAgICAgICAgICAgMCwgc3ViLmxlbmd0aCgpLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldEVuY29kZXJJQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRFbmNvZGVySUNVLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc3MTY4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRFbmNvZGVySUNVLmphdmEKQEAgLTAsMCArMSw2NzMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnVmZmVyT3ZlcmZsb3dFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyBmcmFtZXdvcmsgbWV0aG9kcyBvZiBkZWNvZGluZyBvcGVyYXRpb25zIGZvciBjb25jcmV0ZQorICogc3ViY2xhc3Nlcy4gCisgKiBJbiB0aGUgZnV0dXJlIHRoaXMgY2xhc3Mgd2lsbCBjb250YWluIEFQSSB0aGF0IHdpbGwgaW1wbGVtZW50IGNvbnZlcnRlciBzZW1hdGljcyBvZiBJQ1U0Qy4KKyAqIEBkcmFmdCBJQ1UgMy42CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIENoYXJzZXRFbmNvZGVySUNVIGV4dGVuZHMgQ2hhcnNldEVuY29kZXIgeworCisgICAgYnl0ZVtdIGVycm9yQnVmZmVyID0gbmV3IGJ5dGVbMzBdOworICAgIGludCBlcnJvckJ1ZmZlckxlbmd0aCA9IDA7CisgICAgCisgICAgLyoqIHRoZXNlIGFyZSBmb3IgZW5jb2RlTG9vcElDVSAqLworICAgIGludCBmcm9tVW5pY29kZVN0YXR1czsKKyAgICBpbnQgZnJvbVVDaGFyMzI7CisgICAgYm9vbGVhbiB1c2VTdWJDaGFyMTsKKyAgICAKKyAgICAvKiBzdG9yZSBwcmV2aW91cyBVQ2hhcnMvY2hhcnMgdG8gY29udGludWUgcGFydGlhbCBtYXRjaGVzICovCisgICAgaW50IHByZUZyb21VRmlyc3RDUDsgLyogPj0wOiBwYXJ0aWFsIG1hdGNoICovCisgICAgY2hhcltdIHByZUZyb21VQXJyYXk7CisgICAgaW50IHByZUZyb21VQmVnaW47CisgICAgaW50IHByZUZyb21VTGVuZ3RoOyAgICAvKiBuZWdhdGl2ZTogcmVwbGF5ICovCisgICAgCisgICAgY2hhcltdIGludmFsaWRVQ2hhckJ1ZmZlciA9IG5ldyBjaGFyWzJdOyAgICAKKyAgICBpbnQgICAgaW52YWxpZFVDaGFyTGVuZ3RoOworICAgIE9iamVjdCBmcm9tVUNvbnRleHQ7CisgICAgcHJpdmF0ZSBDaGFyc2V0Q2FsbGJhY2suRW5jb2RlciBvblVubWFwcGFibGVJbnB1dCA9IENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICBwcml2YXRlIENoYXJzZXRDYWxsYmFjay5FbmNvZGVyIG9uTWFsZm9ybWVkSW5wdXQgPSBDaGFyc2V0Q2FsbGJhY2suRlJPTV9VX0NBTExCQUNLX1NUT1A7CisgICAgQ2hhcnNldENhbGxiYWNrLkVuY29kZXIgZnJvbUNoYXJFcnJvckJlaGF2aW91ciA9IG5ldyBDaGFyc2V0Q2FsbGJhY2suRW5jb2RlcigpeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDb2RlclJlc3VsdCBjYWxsKENoYXJzZXRFbmNvZGVySUNVIGVuY29kZXIsIE9iamVjdCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciwgaW50IGxlbmd0aCwgaW50IGNwLCBDb2RlclJlc3VsdCBjcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjci5pc1VubWFwcGFibGUoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25Vbm1hcHBhYmxlSW5wdXQuY2FsbChlbmNvZGVyLCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgbGVuZ3RoLCBjcCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjci5pc01hbGZvcm1lZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbk1hbGZvcm1lZElucHV0LmNhbGwoZW5jb2RlciwgY29udGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBsZW5ndGgsIGNwLCBjcik7ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suRlJPTV9VX0NBTExCQUNLX1NUT1AuY2FsbChlbmNvZGVyLCBjb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgbGVuZ3RoLCBjcCwgY3IpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisKKyAgIC8qKiAKKyAgICAgKiBDb25zdHJ1Y3MgYSBuZXcgZW5jb2RlciBmb3IgdGhlIGdpdmVuIGNoYXJzZXQKKyAgICAgKiBAcGFyYW0gY3MgZm9yIHdoaWNoIHRoZSBkZWNvZGVyIGlzIGNyZWF0ZWQKKyAgICAgKiBAcGFyYW0gcmVwbGFjZW1lbnQgdGhlIHN1YnN0aXR1dGlvbiBieXRlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgQ2hhcnNldEVuY29kZXJJQ1UoQ2hhcnNldElDVSBjcywgYnl0ZVtdIHJlcGxhY2VtZW50KSB7CisgICAgICAgIHN1cGVyKGNzLCAoY3MubWluQnl0ZXNQZXJDaGFyK2NzLm1heEJ5dGVzUGVyQ2hhcikvMiwgY3MubWF4Qnl0ZXNQZXJDaGFyLCByZXBsYWNlbWVudCk7CisgICAgfQorCisJLyoqCisJICogU2V0cyB0aGUgYWN0aW9uIHRvIGJlIHRha2VuIGlmIGFuIGlsbGVnYWwgc2VxdWVuY2UgaXMgZW5jb3VudGVyZWQKKwkgKiBAcGFyYW0gbmV3QWN0aW9uIGFjdGlvbiB0byBiZSB0YWtlbgorCSAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisJICovCisJcHJvdGVjdGVkIHZvaWQgaW1wbE9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24gbmV3QWN0aW9uKSB7CisJICAgIG9uTWFsZm9ybWVkSW5wdXQgPSBnZXRDYWxsYmFjayhuZXdBY3Rpb24pOworCX0KKworCS8qKgorCSAqIFNldHMgdGhlIGFjdGlvbiB0byBiZSB0YWtlbiBpZiBhbiBpbGxlZ2FsIHNlcXVlbmNlIGlzIGVuY291bnRlcmVkCisJICogQHBhcmFtIG5ld0FjdGlvbiBhY3Rpb24gdG8gYmUgdGFrZW4KKwkgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorCSAqLworICAgIHByb3RlY3RlZCB2b2lkIGltcGxPblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24gbmV3QWN0aW9uKSB7CisgICAgICAgIG9uVW5tYXBwYWJsZUlucHV0ID0gZ2V0Q2FsbGJhY2sobmV3QWN0aW9uKTsKKwl9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2hhcnNldENhbGxiYWNrLkVuY29kZXIgZ2V0Q2FsbGJhY2soQ29kaW5nRXJyb3JBY3Rpb24gYWN0aW9uKXsKKyAgICAgICAgaWYoYWN0aW9uPT1Db2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKXsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suRlJPTV9VX0NBTExCQUNLX1NVQlNUSVRVVEU7CisgICAgICAgIH1lbHNlIGlmKGFjdGlvbj09Q29kaW5nRXJyb3JBY3Rpb24uSUdOT1JFKXsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suRlJPTV9VX0NBTExCQUNLX1NLSVA7CisgICAgICAgIH1lbHNlIGlmKGFjdGlvbj09Q29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKXsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0Q2FsbGJhY2suRlJPTV9VX0NBTExCQUNLX1NUT1A7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENoYXJzZXRDYWxsYmFjay5GUk9NX1VfQ0FMTEJBQ0tfU1RPUDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDaGFyQnVmZmVyIEVNUFRZID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSgwKTsKKwkvKioKKwkgKiBGbHVzaGVzIGFueSBjaGFyYWN0ZXJzIHNhdmVkIGluIHRoZSBjb252ZXJ0ZXIncyBpbnRlcm5hbCBidWZmZXIgYW5kCisJICogcmVzZXRzIHRoZSBjb252ZXJ0ZXIuCisJICogQHBhcmFtIG91dCBhY3Rpb24gdG8gYmUgdGFrZW4KKwkgKiBAcmV0dXJuIHJlc3VsdCBvZiBmbHVzaGluZyBhY3Rpb24gYW5kIGNvbXBsZXRlcyB0aGUgZGVjb2RpbmcgYWxsIGlucHV0LiAKKwkgKgkgICBSZXR1cm5zIENvZGVyUmVzdWx0LlVOREVSRkxPVyBpZiB0aGUgYWN0aW9uIHN1Y2NlZWRzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorCSAqLworICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBpbXBsRmx1c2goQnl0ZUJ1ZmZlciBvdXQpIHsKKyAgICAgICAgcmV0dXJuIGVuY29kZShFTVBUWSwgb3V0LCBudWxsLCB0cnVlKTsKKwl9CisKKwkvKioKKwkgKiBSZXNldHMgdGhlIGZyb20gVW5pY29kZSBtb2RlIG9mIGNvbnZlcnRlcgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorCSAqLworICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKwkgICAgZXJyb3JCdWZmZXJMZW5ndGg9MDsKKyAgICAgICAgZnJvbVVDaGFyMzI9MDsKKyAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSAwOworICAgICAgICBwcmVGcm9tVUJlZ2luID0gMDsKKyAgICAgICAgcHJlRnJvbVVGaXJzdENQID0gMDsKKyAgICAgICAgcHJlRnJvbVVMZW5ndGggPSAwOworCX0KKworCS8qKgorCSAqIEVuY29kZXMgb25lIG9yIG1vcmUgY2hhcnMuIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUKKwkgKiBjb252ZXJ0ZXIgaXMgc3RvcCBhbmQgcmVwb3J0IGlmIGFuIGVycm9yIGluIGlucHV0IHN0cmVhbSBpcyBlbmNvdW50ZXJlZC4KKwkgKiBUbyBzZXQgZGlmZmVyZW50IGJlaGF2aW91ciB1c2UgQHNlZSBDaGFyc2V0RW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KCkKKwkgKiBAcGFyYW0gaW4gYnVmZmVyIHRvIGRlY29kZQorCSAqIEBwYXJhbSBvdXQgYnVmZmVyIHRvIHBvcHVsYXRlIHdpdGggZGVjb2RlZCByZXN1bHQKKwkgKiBAcmV0dXJuIHJlc3VsdCBvZiBkZWNvZGluZyBhY3Rpb24uIFJldHVybnMgQ29kZXJSZXN1bHQuVU5ERVJGTE9XIGlmIHRoZSBkZWNvZGluZworCSAqCSAgIGFjdGlvbiBzdWNjZWVkcyBvciBtb3JlIGlucHV0IGlzIG5lZWRlZCBmb3IgY29tcGxldGluZyB0aGUgZGVjb2RpbmcgYWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorCSAqLworICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBlbmNvZGVMb29wKENoYXJCdWZmZXIgaW4sIEJ5dGVCdWZmZXIgb3V0KSB7CisgICAgICAgIGlmKCFpbi5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICB9CisgICAgICAgIGluLnBvc2l0aW9uKGluLnBvc2l0aW9uKCkrZnJvbVVDb3VudFBlbmRpbmcoKSk7CisgICAgICAgIC8qIGRvIHRoZSBjb252ZXJzaW9uICovCisgICAgICAgIENvZGVyUmVzdWx0IHJldCA9IGVuY29kZShpbiwgb3V0LCBudWxsLCBmYWxzZSk7CisgICAgICAgIHNldFNvdXJjZVBvc2l0aW9uKGluKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBJQ1Ugc2VtYW50aWNzIG9mIGJ1ZmZlciBtYW5hZ2VtZW50CisgICAgICogQHBhcmFtIHNvdXJjZQorICAgICAqIEBwYXJhbSB0YXJnZXQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0cworICAgICAqIEByZXR1cm4gQSBDb2RlclJlc3VsdCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZXJyb3IgcmVzdWx0IHdoZW4gYW4gZXJyb3Igb2NjdXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIElDVSBzZW1hbnRpY3MgZm9yIGVuY29kaW5nIHRoZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBjaGFyYWN0ZXIgYnVmZmVyCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgb3V0cHV0IGJ5dGUgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldHMKKyAgICAgKiBAcGFyYW0gZmx1c2ggdHJ1ZSBpZiwgYW5kIG9ubHkgaWYsIHRoZSBpbnZva2VyIGNhbiBwcm92aWRlIG5vCisgICAgICogIGFkZGl0aW9uYWwgaW5wdXQgYnl0ZXMgYmV5b25kIHRob3NlIGluIHRoZSBnaXZlbiBidWZmZXIuCisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBmaW5hbCBDb2RlclJlc3VsdCBlbmNvZGUoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisKKyAgICAKKyAgICAgICAgLyogY2hlY2sgcGFyYW1ldGVycyAqLyAgICAKKyAgICAgICAgaWYodGFyZ2V0PT1udWxsIHx8IHNvdXJjZT09bnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogTWFrZSBzdXJlIHRoYXQgdGhlIGJ1ZmZlciBzaXplcyBkbyBub3QgZXhjZWVkIHRoZSBudW1iZXIgcmFuZ2UgZm9yCisgICAgICAgICAqIGludDMyX3QgYmVjYXVzZSBzb21lIGZ1bmN0aW9ucyB1c2UgdGhlIHNpemUgKGluIHVuaXRzIG9yIGJ5dGVzKQorICAgICAgICAgKiByYXRoZXIgdGhhbiBjb21wYXJpbmcgcG9pbnRlcnMsIGFuZCBiZWNhdXNlIG9mZnNldHMgYXJlIGludDMyX3QgdmFsdWVzLgorICAgICAgICAgKgorICAgICAgICAgKiBzaXplX3QgaXMgZ3VhcmFudGVlZCB0byBiZSB1bnNpZ25lZCBhbmQgbGFyZ2UgZW5vdWdoIGZvciB0aGUgam9iLgorICAgICAgICAgKgorICAgICAgICAgKiBSZXR1cm4gd2l0aCBhbiBlcnJvciBpbnN0ZWFkIG9mIGFkanVzdGluZyB0aGUgbGltaXRzIGJlY2F1c2Ugd2Ugd291bGQKKyAgICAgICAgICogbm90IGJlIGFibGUgdG8gbWFpbnRhaW4gdGhlIHNlbWFudGljcyB0aGF0IGVpdGhlciB0aGUgc291cmNlIG11c3QgYmUKKyAgICAgICAgICogY29uc3VtZWQgb3IgdGhlIHRhcmdldCBmaWxsZWQgKHVubGVzcyBhbiBlcnJvciBvY2N1cnMpLgorICAgICAgICAgKiBBbiBhZGp1c3RtZW50IHdvdWxkIGJlIHRhcmdldExpbWl0PXQrMHg3ZmZmZmZmZjsgZm9yIGV4YW1wbGUuCisgICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgLyogZmx1c2ggdGhlIHRhcmdldCBvdmVyZmxvdyBidWZmZXIgKi8KKyAgICAgICAgaWYoZXJyb3JCdWZmZXJMZW5ndGg+MCkgeworICAgICAgICAgICAgYnl0ZVtdIG92ZXJmbG93QXJyYXk7CisgICAgICAgICAgICBpbnQgaSwgbGVuZ3RoOworICAgIAorICAgICAgICAgICAgb3ZlcmZsb3dBcnJheT1lcnJvckJ1ZmZlcjsKKyAgICAgICAgICAgIGxlbmd0aD1lcnJvckJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZih0YXJnZXQucmVtYWluaW5nKCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIG92ZXJmbG93IGJ1ZmZlciBjb250YWlucyB0b28gbXVjaCwga2VlcCB0aGUgcmVzdCAqLworICAgICAgICAgICAgICAgICAgICBpbnQgaj0wOworICAgIAorICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd0FycmF5W2orK109b3ZlcmZsb3dBcnJheVtpKytdOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKGk8bGVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGg9KGJ5dGUpajsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiBjb3B5IHRoZSBvdmVyZmxvdyBjb250ZW50cyB0byB0aGUgdGFyZ2V0ICovCisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChvdmVyZmxvd0FycmF5W2krK10pOworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOyAvKiBubyBzb3VyY2UgaW5kZXggYXZhaWxhYmxlIGZvciBvbGQgb3V0cHV0ICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZShpPGxlbmd0aCk7CisgICAgCisgICAgICAgICAgICAvKiB0aGUgb3ZlcmZsb3cgYnVmZmVyIGlzIGNvbXBsZXRlbHkgY29waWVkIHRvIHRoZSB0YXJnZXQgKi8KKyAgICAgICAgICAgIGVycm9yQnVmZmVyTGVuZ3RoPTA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYoIWZsdXNoICYmIHNvdXJjZS5yZW1haW5pbmcoKT09MCAmJiBwcmVGcm9tVUxlbmd0aD49MCkgeworICAgICAgICAgICAgLyogdGhlIG92ZXJmbG93IGJ1ZmZlciBpcyBlbXB0aWVkIGFuZCB0aGVyZSBpcyBubyBuZXcgaW5wdXQ6IHdlIGFyZSBkb25lICovCisgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIERvIG5vdCBzaW1wbHkgcmV0dXJuIHdpdGggYSBidWZmZXIgb3ZlcmZsb3cgZXJyb3IgaWYKKyAgICAgICAgICogIWZsdXNoICYmIHQ9PXRhcmdldExpbWl0CisgICAgICAgICAqIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgc291cmNlIHdpbGwgbm90IGdlbmVyYXRlIGFueSBvdXRwdXQuCisgICAgICAgICAqIEZvciBleGFtcGxlLCB0aGUgc2tpcCBjYWxsYmFjayBtYXkgYmUgY2FsbGVkOworICAgICAgICAgKiBpdCBkb2VzIG5vdCBvdXRwdXQgYW55dGhpbmcuCisgICAgICAgICAqLworICAgIAorICAgICAgICByZXR1cm4gZnJvbVVuaWNvZGVXaXRoQ2FsbGJhY2soc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKworICAgIH0KKyAgICAvKiBtYXhpbXVtIG51bWJlciBvZiBpbmRleGVkIFVDaGFycyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRfTUFYX1VDSEFSUyA9IDE5OworCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gbm90ZSBmb3IgbTpuIGNvbnZlcnNpb25zCisgICAgICoKKyAgICAgKiBXaGlsZSBjb2xsZWN0aW5nIHNvdXJjZSB1bml0cyB0byBmaW5kIHRoZSBsb25nZXN0IG1hdGNoIGZvciBtOm4gY29udmVyc2lvbiwKKyAgICAgKiBzb21lIHNvdXJjZSB1bml0cyBtYXkgbmVlZCB0byBiZSBzdG9yZWQgZm9yIGEgcGFydGlhbCBtYXRjaC4KKyAgICAgKiBXaGVuIGEgc2Vjb25kIGJ1ZmZlciBkb2VzIG5vdCB5aWVsZCBhIG1hdGNoIG9uIGFsbCBvZiB0aGUgcHJldmlvdXNseSBzdG9yZWQKKyAgICAgKiBzb3VyY2UgdW5pdHMsIHRoZW4gdGhleSBtdXN0IGJlICJyZXBsYXllZCIsIGkuZS4sIGZlZCBiYWNrIGludG8gdGhlIGNvbnZlcnRlci4KKyAgICAgKgorICAgICAqIFRoZSBjb2RlIHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IHJlcGxheWluZyB3aWxsIG5vdCBuZXN0IC0KKyAgICAgKiBjb252ZXJ0aW5nIGEgcmVwbGF5IGJ1ZmZlciB3aWxsIG5vdCByZXN1bHQgaW4gYSByZXBsYXkuCisgICAgICogVGhpcyBpcyBiZWNhdXNlIGEgcmVwbGF5IGlzIG5lY2Vzc2FyeSBvbmx5IGFmdGVyIHRoZSBfY29udGludWF0aW9uXyBvZiBhCisgICAgICogcGFydGlhbCBtYXRjaCBmYWlsZWQsIGJ1dCBhIHJlcGxheSBidWZmZXIgaXMgY29udmVydGVkIGFzIGEgd2hvbGUuCisgICAgICogSXQgbWF5IHJlc3VsdCBpbiBzb21lIG9mIGl0cyB1bml0cyBiZWluZyBzdG9yZWQgYWdhaW4gZm9yIGEgcGFydGlhbCBtYXRjaCwKKyAgICAgKiBidXQgdGhlcmUgd2lsbCBub3QgYmUgYSBjb250aW51YXRpb24gX2R1cmluZ18gdGhlIHJlcGxheSB3aGljaCBjb3VsZCBmYWlsLgorICAgICAqCisgICAgICogSXQgaXMgY29uY2VpdmFibGUgdGhhdCBhIGNhbGxiYWNrIGZ1bmN0aW9uIGNvdWxkIGNhbGwgdGhlIGNvbnZlcnRlcgorICAgICAqIHJlY3Vyc2l2ZWx5IGluIGEgd2F5IHRoYXQgY2F1c2VzIGFub3RoZXIgcmVwbGF5IHRvIGJlIHN0b3JlZCwgYnV0IHRoYXQKKyAgICAgKiB3b3VsZCBiZSBhbiBlcnJvciBpbiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICogU3VjaCB2aW9sYXRpb25zIHdpbGwgY2F1c2UgYXNzZXJ0aW9uIGZhaWx1cmVzIGluIGEgZGVidWcgYnVpbGQsCisgICAgICogYW5kIHdyb25nIG91dHB1dCwgYnV0IHRoZXkgd2lsbCBub3QgY2F1c2UgYSBjcmFzaC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGZpbmFsIENvZGVyUmVzdWx0IGZyb21Vbmljb2RlV2l0aENhbGxiYWNrKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICBpbnQgc0J1ZmZlckluZGV4OworICAgICAgICBpbnQgc291cmNlSW5kZXg7CisgICAgICAgIGludCBlcnJvcklucHV0TGVuZ3RoOworICAgICAgICBib29sZWFuIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQsIGNhbGxlZENhbGxiYWNrOworICAgICAgICAKKworICAgICAgICAvKiB2YXJpYWJsZXMgZm9yIG06biBjb252ZXJzaW9uICovCisgICAgICAgIENoYXJCdWZmZXIgcmVwbGF5QXJyYXkgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKEVYVF9NQVhfVUNIQVJTKTsKKyAgICAgICAgaW50IHJlcGxheUFycmF5SW5kZXg9MDsKKyAgICAgICAgQ2hhckJ1ZmZlciByZWFsU291cmNlOworICAgICAgICBib29sZWFuIHJlYWxGbHVzaDsKKyAgICAgICAgCisgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAKKyAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gKi8KKyAgICAgICAgc291cmNlSW5kZXg9MDsKKworICAgICAgICBpZihwcmVGcm9tVUxlbmd0aD49MCkgeworICAgICAgICAgICAgLyogbm9ybWFsIG1vZGUgKi8KKyAgICAgICAgICAgIHJlYWxTb3VyY2U9bnVsbDsgICAgCisgICAgICAgICAgICByZWFsRmx1c2g9ZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogUHJldmlvdXMgbTpuIGNvbnZlcnNpb24gc3RvcmVkIHNvdXJjZSB1bml0cyBmcm9tIGEgcGFydGlhbCBtYXRjaAorICAgICAgICAgICAgICogYW5kIGZhaWxlZCB0byBjb25zdW1lIGFsbCBvZiB0aGVtLgorICAgICAgICAgICAgICogV2UgbmVlZCB0byAicmVwbGF5IiB0aGVtIGZyb20gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBjb252ZXJ0IHRoZW0gZmlyc3QuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHJlYWxTb3VyY2U9c291cmNlOworICAgICAgICAgICAgcmVhbEZsdXNoID0gZmx1c2g7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vVUNvbnZlcnRlclV0aWxpdHkudXBydl9tZW1jcHkocmVwbGF5QXJyYXksIHJlcGxheUFycmF5SW5kZXgsIHByZUZyb21VQXJyYXksIDAsIC1wcmVGcm9tVUxlbmd0aCpVTWFjaGluZS5VX1NJWkVPRl9VQ0hBUik7CisgICAgICAgICAgICByZXBsYXlBcnJheS5wdXQocHJlRnJvbVVBcnJheSwwLCAtcHJlRnJvbVVMZW5ndGgpOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHJlcGxheUFycmF5SW5kZXgpOworICAgICAgICAgICAgc291cmNlLmxpbWl0KHJlcGxheUFycmF5SW5kZXgtcHJlRnJvbVVMZW5ndGgpOyAvL3ByZUZyb21VTGVuZ3RoIGlzIG5lZ2F0aXZlLCBzZWUgZGVjbGFyYXRpb24KKyAgICAgICAgICAgIHNvdXJjZT1yZXBsYXlBcnJheTsKKyAgICAgICAgICAgIGZsdXNoPWZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0wOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogbG9vcCBmb3IgY29udmVyc2lvbiBhbmQgZXJyb3IgaGFuZGxpbmcKKyAgICAgICAgICoKKyAgICAgICAgICogbG9vcCB7CisgICAgICAgICAqICAgY29udmVydAorICAgICAgICAgKiAgIGxvb3AgeworICAgICAgICAgKiAgICAgdXBkYXRlIG9mZnNldHMKKyAgICAgICAgICogICAgIGhhbmRsZSBlbmQgb2YgaW5wdXQKKyAgICAgICAgICogICAgIGhhbmRsZSBlcnJvcnMvY2FsbCBjYWxsYmFjaworICAgICAgICAgKiAgIH0KKyAgICAgICAgICogfQorICAgICAgICAgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjb252ZXJ0ICovCisgICAgICAgICAgICBjciA9IGVuY29kZUxvb3Aoc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzZXQgYSBmbGFnIGZvciB3aGV0aGVyIHRoZSBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAqIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQgdGhlIGVuZCBvZiB0aGUgaW5wdXQKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBuZWVkIG5vdCBjaGVjayBjbnYucHJlRnJvbVVMZW5ndGg9PTAgYmVjYXVzZSBhIHJlcGxheSAoPDApIHdpbGwgY2F1c2UKKyAgICAgICAgICAgICAqIHM8c291cmNlTGltaXQgYmVmb3JlIGNvbnZlcnRlclNhd0VuZE9mSW5wdXQgaXMgY2hlY2tlZAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb252ZXJ0ZXJTYXdFbmRPZklucHV0PSAoYm9vbGVhbikoY3IuaXNVbmRlcmZsb3coKSAmJiBmbHVzaCAmJiBzb3VyY2UucmVtYWluaW5nKCk9PTAgJiYgZnJvbVVDaGFyMzI9PTApOworICAgIAorICAgICAgICAgICAgLyogbm8gY2FsbGJhY2sgY2FsbGVkIHlldCBmb3IgdGhpcyBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIGNhbGxlZENhbGxiYWNrPWZhbHNlOworICAgIAorICAgICAgICAgICAgLyogbm8gc291cmNlSW5kZXggYWRqdXN0bWVudCBmb3IgY29udmVyc2lvbiwgb25seSBmb3IgY2FsbGJhY2sgb3V0cHV0ICovCisgICAgICAgICAgICBlcnJvcklucHV0TGVuZ3RoPTA7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBsb29wIGZvciBvZmZzZXRzIGFuZCBlcnJvciBoYW5kbGluZworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIGl0ZXJhdGVzIGF0IG1vc3QgMyB0aW1lczoKKyAgICAgICAgICAgICAqIDEuIHRvIGNsZWFuIHVwIGFmdGVyIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgKiAyLiBhZnRlciB0aGUgY2FsbGJhY2sKKyAgICAgICAgICAgICAqIDMuIGFmdGVyIHRoZSBjYWxsYmFjayBhZ2FpbiBpZiB0aGVyZSB3YXMgdHJ1bmNhdGVkIGlucHV0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIC8qIHVwZGF0ZSBvZmZzZXRzIGlmIHdlIHdyaXRlIGFueSAqLworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiBhIGNvbnZlcnRlciBoYW5kbGVzIG9mZnNldHMgYW5kIHVwZGF0ZXMgdGhlIG9mZnNldHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHBvaW50ZXIgYXQgdGhlIGVuZCwgdGhlbiBvZmZzZXQgc2hvdWxkIG5vdCBjaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGhlcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBob3dldmVyLCBzb21lIGNvbnZlcnRlcnMgZG8gbm90IGhhbmRsZSBvZmZzZXRzIGF0IGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICogKHNvdXJjZUluZGV4PDApIG9yIG1heSBub3QgdXBkYXRlIHRoZSBvZmZzZXRzIHBvaW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wb3NpdGlvbihvZmZzZXRzLnBvc2l0aW9uKCkrbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VJbmRleD49MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXgrPShpbnQpKHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKHByZUZyb21VTGVuZ3RoPDApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogc3dpdGNoIHRoZSBzb3VyY2UgdG8gbmV3IHJlcGxheSB1bml0cyAoY2Fubm90IG9jY3VyIHdoaWxlIHJlcGxheWluZykKKyAgICAgICAgICAgICAgICAgICAgICogYWZ0ZXIgb2Zmc2V0IGhhbmRsaW5nIGFuZCBiZWZvcmUgZW5kLW9mLWlucHV0IGFuZCBjYWxsYmFjayBoYW5kbGluZworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYocmVhbFNvdXJjZT09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFNvdXJjZT1zb3VyY2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZWFsRmx1c2g9Zmx1c2g7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvL1VDb252ZXJ0ZXJVdGlsaXR5LnVwcnZfbWVtY3B5KHJlcGxheUFycmF5LCByZXBsYXlBcnJheUluZGV4LCBwcmVGcm9tVUFycmF5LCAwLCAtcHJlRnJvbVVMZW5ndGgqVU1hY2hpbmUuVV9TSVpFT0ZfVUNIQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGF5QXJyYXkucHV0KHByZUZyb21VQXJyYXksMCwgLXByZUZyb21VTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlPXJlcGxheUFycmF5OworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHJlcGxheUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KHJlcGxheUFycmF5SW5kZXgtcHJlRnJvbVVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgZmx1c2g9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZigoc291cmNlSW5kZXgrPXByZUZyb21VTGVuZ3RoKTwwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXg9LTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2VlIGltcGxlbWVudGF0aW9uIG5vdGUgYmVmb3JlIF9mcm9tVW5pY29kZVdpdGhDYWxsYmFjaygpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OnRvZG8gVV9BU1NFUlQocmVhbFNvdXJjZT09TlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQocmVhbFNvdXJjZT09bnVsbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKiB1cGRhdGUgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgICAgICBzQnVmZmVySW5kZXg9c291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgaWYoY3IuaXNVbmRlcmZsb3coKSkgeworICAgICAgICAgICAgICAgICAgICBpZihzQnVmZmVySW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBjb250aW51ZSB3aXRoIHRoZSBjb252ZXJzaW9uIGxvb3Agd2hpbGUgdGhlcmUgaXMgc3RpbGwgaW5wdXQgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICogKGNvbnRpbnVlIGNvbnZlcnRpbmcgYnkgYnJlYWtpbmcgb3V0IG9mIG9ubHkgdGhlIGlubmVyIGxvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYocmVhbFNvdXJjZSE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc3dpdGNoIGJhY2sgZnJvbSByZXBsYXlpbmcgdG8gdGhlIHJlYWwgc291cmNlIGFuZCBjb250aW51ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlPXJlYWxTb3VyY2U7CisgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaD1yZWFsRmx1c2g7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD1zb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxTb3VyY2U9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZmx1c2ggJiYgZnJvbVVDaGFyMzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgZW50aXJlIGlucHV0IHN0cmVhbSBpcyBjb25zdW1lZAorICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIHRoZXJlIGlzIGEgcGFydGlhbCwgdHJ1bmNhdGVkIGlucHV0IHNlcXVlbmNlIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5qZWN0IGFuIGVycm9yIGFuZCBjb250aW51ZSB3aXRoIGNhbGxiYWNrIGhhbmRsaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICAvL2VyclswXT1FcnJvckNvZGUuVV9UUlVOQ0FURURfQ0hBUl9GT1VORDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGVkQ2FsbGJhY2s9ZmFsc2U7IC8qIG5ldyBlcnJvciBjb25kaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlucHV0IGNvbnN1bWVkICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmV0dXJuIHRvIHRoZSBjb252ZXJzaW9uIGxvb3Agb25jZSBtb3JlIGlmIHRoZSBmbHVzaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGZsYWcgaXMgc2V0IGFuZCB0aGUgY29udmVyc2lvbiBmdW5jdGlvbiBoYXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChjb250aW51ZSBjb252ZXJ0aW5nIGJ5IGJyZWFraW5nIG91dCBvZiBvbmx5IHRoZSBpbm5lciBsb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFjb252ZXJ0ZXJTYXdFbmRPZklucHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXNldCB0aGUgY29udmVydGVyIHdpdGhvdXQgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsUmVzZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvbmUgc3VjY2Vzc2Z1bGx5ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKlVfRkFJTFVSRSgqZXJyKSAqLworICAgICAgICAgICAgICAgIHsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoIGNhbGxlZENhbGxiYWNrIHx8IGNyLmlzT3ZlcmZsb3coKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgKGNyLmlzTWFsZm9ybWVkKCkgJiYgY3IuaXNVbm1hcHBhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgICAgKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgY2FsbGJhY2sgZGlkIG5vdCBvciBjYW5ub3QgcmVzb2x2ZSB0aGUgZXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBzZXQgb3V0cHV0IHBvaW50ZXJzIGFuZCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgY2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyBpcyByZWR1bmRhbnQgYnV0IGl0IGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIGhpZ2gtcnVubmVyIGNhc2UgYW5kIGhvcGVmdWxseSBkb2N1bWVudHMgdGhlIGludGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICogd2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIHdlIHdlcmUgcmVwbGF5aW5nLCB0aGVuIHRoZSByZXBsYXkgYnVmZmVyIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGNvcGllZCBiYWNrIGludG8gdGhlIFVDb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCB0aGUgcmVhbCBhcmd1bWVudHMgbXVzdCBiZSByZXN0b3JlZAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihyZWFsU291cmNlIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OnRvZG8gVV9BU1NFUlQoY252LnByZUZyb21VTGVuZ3RoPT0wKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9c291cmNlLnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVUNvbnZlcnRlclV0aWxpdHkudXBydl9tZW1jcHkocHJlRnJvbVVBcnJheSwgMCwgc291cmNlQXJyYXksIHBBcmdzLnNvdXJjZUJlZ2luLCBsZW5ndGgqVU1hY2hpbmUuVV9TSVpFT0ZfVUNIQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZ2V0KHByZUZyb21VQXJyYXksIDAsIGxlbmd0aCApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0oYnl0ZSktbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9cmVhbFNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaD1yZWFsRmx1c2g7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayBoYW5kbGluZyAqLworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZ2V0IGFuZCB3cml0ZSB0aGUgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICBlcnJvcklucHV0TGVuZ3RoID0gVVRGMTYuYXBwZW5kKGludmFsaWRVQ2hhckJ1ZmZlciwgMCwgZnJvbVVDaGFyMzIpOworICAgICAgICAgICAgICAgICAgICBpbnZhbGlkVUNoYXJMZW5ndGggPSBlcnJvcklucHV0TGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIGNvbnZlcnRlciBzdGF0ZSB0byBkZWFsIHdpdGggdGhlIG5leHQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyPTA7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGNhbGwgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGNyID0gZnJvbUNoYXJFcnJvckJlaGF2aW91ci5jYWxsKHRoaXMsIGZyb21VQ29udGV4dCwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGludmFsaWRVQ2hhckJ1ZmZlciwgaW52YWxpZFVDaGFyTGVuZ3RoLCBmcm9tVUNoYXIzMiwgY3IpOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGxvb3AgYmFjayB0byB0aGUgb2Zmc2V0IGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiB0aGlzIGZsYWcgd2lsbCBpbmRpY2F0ZSBhZnRlciBvZmZzZXQgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAgKiB0aGF0IGEgY2FsbGJhY2sgd2FzIGNhbGxlZDsKKyAgICAgICAgICAgICAgICAgKiBpZiB0aGUgY2FsbGJhY2sgZGlkIG5vdCByZXNvbHZlIHRoZSBlcnJvciwgdGhlbiB3ZSByZXR1cm4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBjYWxsZWRDYWxsYmFjaz10cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCS8qKgorCSAqIEFzY2VydGFpbnMgaWYgYSBnaXZlbiBVbmljb2RlIGNvZGUgcG9pbnQgKDMyYml0IHZhbHVlIGZvciBoYW5kbGluZyBzdXJyb2dhdGVzKQorCSAqIGNhbiBiZSBjb252ZXJ0ZWQgdG8gdGhlIHRhcmdldCBlbmNvZGluZy4gSWYgdGhlIGNhbGxlciB3YW50cyB0byB0ZXN0IGlmIGEKKwkgKiBzdXJyb2dhdGUgcGFpciBjYW4gYmUgY29udmVydGVkIHRvIHRhcmdldCBlbmNvZGluZyB0aGVuIHRoZQorCSAqIHJlc3BvbnNpYmlsaXR5IG9mIGFzc2VtYmxpbmcgdGhlIGludCB2YWx1ZSBsaWVzIHdpdGggdGhlIGNhbGxlci4KKwkgKiBGb3IgYXNzZW1ibGluZyBhIGNvZGUgcG9pbnQgdGhlIGNhbGxlciBjYW4gdXNlIFVURjE2IGNsYXNzIG9mIElDVTRKIGFuZCBkbyBzb21ldGhpbmcgbGlrZToKKwkgKiA8cHJlPgorCSAqIHdoaWxlKGk8bXlTb3VyY2UubGVuZ3RoKXsKKwkgKgkgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShteVNvdXJjZVtpXSkmJiBpKzE8IG15U291cmNlLmxlbmd0aCl7CisJICoJICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShteVNvdXJjZVtpKzFdKSl7CisJICoJICAgICAgICAgIGludCB0ZW1wID0gVVRGMTYuY2hhckF0KG15U291cmNlLGksaSsxLDApOworCSAqCSAgICAgICAgICBpZighKChDaGFyc2V0RW5jb2RlcklDVSkgbXlDb252KS5jYW5FbmNvZGUodGVtcCkpeworCSAqCQkgIHBhc3NlZD1mYWxzZTsKKwkgKgkgICAgICAgICAgfQorCSAqCSAgICAgICAgICBpKys7CisJICoJICAgICAgICAgIGkrKzsKKwkgKgkgICAgICB9CisJICoJIH0KKwkgKiB9CisJICogPC9wcmU+CisJICogb3IKKwkgKiA8cHJlPgorCSAqIFN0cmluZyBzcmMgPSBuZXcgU3RyaW5nKG15U291cmNlKTsKKwkgKiBpbnQgaSxjb2RlcG9pbnQ7CisJICogYm9vbGVhbiBwYXNzZWQgPSBmYWxzZTsKKwkgKiB3aGlsZShpPHNyYy5sZW5ndGgoKSl7CisJICoJY29kZXBvaW50ID0gVVRGMTYuY2hhckF0KHNyYyxpKTsKKwkgKglpKz0gKGNvZGVwb2ludD4weGZmZik/IDI6MTsKKwkgKglpZighKENoYXJzZXRFbmNvZGVySUNVKSBteUNvbnYpLmNhbkVuY29kZShjb2RlcG9pbnQpKXsKKwkgKgkgICAgcGFzc2VkID0gZmFsc2U7CisJICoJfQorCSAqIH0KKwkgKiA8L3ByZT4KKwkgKgorCSAqIEBwYXJhbSBjb2RlcG9pbnQgVW5pY29kZSBjb2RlIHBvaW50IGFzIGludCB2YWx1ZQorCSAqIEByZXR1cm4gdHJ1ZSBpZiBhIGNoYXJhY3RlciBjYW4gYmUgY29udmVydGVkCisgICAgICogQGRyYWZ0IElDVSAzLjYKKwkgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBjYW5FbmNvZGUoaW50IGNvZGVwb2ludCkgeworCSAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisJLyoqCisgICAgICogT3ZlcnJpZGVzIHN1cGVyIGNsYXNzIG1ldGhvZAorICAgICAqIEBzdGFibGUgSUNVIDMuNiAKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0xlZ2FsUmVwbGFjZW1lbnQoYnl0ZVtdIHJlcGwpeworCSAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV3JpdGVzIG91dCB0aGUgc3BlY2lmaWVkIG91dHB1dCBieXRlcyB0byB0aGUgdGFyZ2V0IGJ5dGUgYnVmZmVyIG9yIHRvIGNvbnZlcnRlciBpbnRlcm5hbCBidWZmZXJzLgorICAgICAqIEBwYXJhbSBjbnYKKyAgICAgKiBAcGFyYW0gYnl0ZXNBcnJheQorICAgICAqIEBwYXJhbSBieXRlc0JlZ2luCisgICAgICogQHBhcmFtIGJ5dGVzTGVuZ3RoCisgICAgICogQHBhcmFtIG91dAorICAgICAqIEBwYXJhbSBvZmZzZXRzCisgICAgICogQHBhcmFtIHNvdXJjZUluZGV4CisgICAgICogQHJldHVybiBBIENvZGVyUmVzdWx0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlcnJvciByZXN1bHQgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIENvZGVyUmVzdWx0IGZyb21VV3JpdGVCeXRlcyhDaGFyc2V0RW5jb2RlcklDVSBjbnYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXNBcnJheSwgaW50IGJ5dGVzQmVnaW4sIGludCBieXRlc0xlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgb3V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNvdXJjZUluZGV4KXsKKworICAgICAgICAvL3dyaXRlIGJ5dGVzCisgICAgICAgIGludCBvYmwgPSBieXRlc0xlbmd0aDsKKyAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgIGludCBieXRlc0xpbWl0ID0gYnl0ZXNCZWdpbiArIGJ5dGVzTGVuZ3RoOworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IgKDtieXRlc0JlZ2luPCBieXRlc0xpbWl0Oyl7CisgICAgICAgICAgICAgICAgb3V0LnB1dChieXRlc0FycmF5W2J5dGVzQmVnaW5dKTsKKyAgICAgICAgICAgICAgICBieXRlc0JlZ2luKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBzdWNjZXNzIAorICAgICAgICAgICAgYnl0ZXNMZW5ndGg9MDsKKyAgICAgICAgfWNhdGNoKCBCdWZmZXJPdmVyZmxvd0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICB9CisgICAgICAgIAorICAgIAorICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICB3aGlsZShvYmw+Ynl0ZXNMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgLS1vYmw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy93cml0ZSBvdmVyZmxvdyAKKyAgICAgICAgY252LmVycm9yQnVmZmVyTGVuZ3RoID0gYnl0ZXNMaW1pdCAtIGJ5dGVzQmVnaW47CisgICAgICAgIGlmKGNudi5lcnJvckJ1ZmZlckxlbmd0aCA+MCkgeworICAgICAgICAgICAgaWYoY252IT1udWxsKSB7CisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0gMDsgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlKGJ5dGVzQmVnaW48Ynl0ZXNMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjbnYuZXJyb3JCdWZmZXJbaW5kZXgrK109Ynl0ZXNBcnJheVtieXRlc0JlZ2luKytdOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICB9CisgICAgICAgIHJldHVybiAgY3I7CisgICAgfSAgIAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJzIGhlbGQgaW4gdGhlIGNvbnZlcnRlcidzIGludGVybmFsIHN0YXRlCisgICAgICogYmVjYXVzZSBtb3JlIGlucHV0IGlzIG5lZWRlZCBmb3IgY29tcGxldGluZyB0aGUgY29udmVyc2lvbi4gVGhpcyBmdW5jdGlvbiBpcyAKKyAgICAgKiB1c2VmdWwgZm9yIG1hcHBpbmcgc2VtYW50aWNzIG9mIElDVSdzIGNvbnZlcnRlciBpbnRlcmZhY2UgdG8gdGhvc2Ugb2YgaWNvbnYsCisgICAgICogYW5kIHRoaXMgaW5mb3JtYXRpb24gaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIGNvbnZlcnNpb24uCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBzdGF0ZS4gLTEgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIGludCBmcm9tVUNvdW50UGVuZGluZygpeyAgICAKKyAgICAgICAgaWYocHJlRnJvbVVMZW5ndGggPiAwKXsKKyAgICAgICAgICAgIHJldHVybiBVVEYxNi5nZXRDaGFyQ291bnQocHJlRnJvbVVGaXJzdENQKStwcmVGcm9tVUxlbmd0aCA7CisgICAgICAgIH1lbHNlIGlmKHByZUZyb21VTGVuZ3RoIDwgMCl7CisgICAgICAgICAgICByZXR1cm4gLXByZUZyb21VTGVuZ3RoIDsKKyAgICAgICAgfWVsc2UgaWYoZnJvbVVDaGFyMzIgPiAwKXsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9ZWxzZSBpZihwcmVGcm9tVUZpcnN0Q1AgPjApeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LmdldENoYXJDb3VudChwcmVGcm9tVUZpcnN0Q1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOyAKKyAgICAgfQorICAgIC8qKgorICAgICAqIAorICAgICAqIEBwYXJhbSBzb3VyY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgc2V0U291cmNlUG9zaXRpb24oQ2hhckJ1ZmZlciBzb3VyY2UpeworICAgICAgICAKKyAgICAgICAgLy8gb2sgd2FzIHRoZXJlIGlucHV0IGhlbGQgaW4gdGhlIHByZXZpb3VzIGludm9jYXRpb24gb2YgZGVjb2RlTG9vcCAKKyAgICAgICAgLy8gdGhhdCByZXN1bHRlZCBpbiBvdXRwdXQgaW4gdGhpcyBpbnZvY2F0aW9uPworICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkgLSBmcm9tVUNvdW50UGVuZGluZygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogV3JpdGUgdGhlIGNvZGVwYWdlIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIuCisgICAgICogU3ViY2xhc3NlcyB0byBvdmVycmlkZSB0aGlzIG1ldGhvZC4KKyAgICAgKiBGb3Igc3RhdGVmdWwgY29udmVydGVycywgaXQgaXMgdHlwaWNhbGx5IG5lY2Vzc2FyeSB0byBoYW5kbGUgdGhpcworICAgICAqIHNwZWNpZmljaWFsbHkgZm9yIHRoZSBjb252ZXJ0ZXIgaW4gb3JkZXIgdG8gcHJvcGVybHkgbWFpbnRhaW4gdGhlIHN0YXRlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGlucHV0IGNoYXJhY3RlciBidWZmZXIKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBvdXRwdXQgYnl0ZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0cworICAgICAqIEByZXR1cm4gQSBDb2RlclJlc3VsdCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZXJyb3IgcmVzdWx0IHdoZW4gYW4gZXJyb3Igb2NjdXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIENvZGVyUmVzdWx0IGNiRnJvbVVXcml0ZVN1YiAoQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRCdWZmZXIgb2Zmc2V0cyl7CisgICAgICAgIENoYXJzZXRJQ1UgY3MgPSAoQ2hhcnNldElDVSkgZW5jb2Rlci5jaGFyc2V0KCk7CisgICAgICAgIGJ5dGVbXSBzdWIgPSBlbmNvZGVyLnJlcGxhY2VtZW50KCk7CisgICAgICAgIGlmIChjcy5zdWJDaGFyMSAhPSAwICYmIGVuY29kZXIuaW52YWxpZFVDaGFyQnVmZmVyWzBdIDw9IDB4ZmYpIHsKKyAgICAgICAgICAgIHJldHVybiBDaGFyc2V0RW5jb2RlcklDVS5mcm9tVVdyaXRlQnl0ZXMoZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgbmV3IGJ5dGVbXSB7IGNzLnN1YkNoYXIxIH0sIDAsIDEsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBvc2l0aW9uKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIENoYXJzZXRFbmNvZGVySUNVLmZyb21VV3JpdGVCeXRlcyhlbmNvZGVyLCBzdWIsIDAsCisgICAgICAgICAgICAgICAgICAgIHN1Yi5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldElDVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldElDVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMjI0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0SUNVLmphdmEKQEAgLTAsMCArMSwyMjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3I7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LklsbGVnYWxDaGFyc2V0TmFtZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LlVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKy8qKgorICogPHA+QSBzdWJjbGFzcyBvZiBqYXZhLm5pby5DaGFyc2V0IGZvciBwcm92aWRpbmcgaW1wbGVtZW50YXRpb24gb2YgSUNVJ3MgY2hhcnNldCBjb252ZXJ0ZXJzLgorICogVGhpcyBBUEkgaXMgdXNlZCB0byBjb252ZXJ0IGNvZGVwYWdlIG9yIGNoYXJhY3RlciBlbmNvZGVkIGRhdGEgdG8gYW5kCisgKiBmcm9tIFVURi0xNi4gWW91IGNhbiBvcGVuIGEgY29udmVydGVyIHdpdGgge0BsaW5rIENoYXJzZXQjZm9yTmFtZSB9IGFuZCB7QGxpbmsgI2Zvck5hbWVJQ1UgfS4gV2l0aCB0aGF0CisgKiBjb252ZXJ0ZXIsIHlvdSBjYW4gZ2V0IGl0cyBwcm9wZXJ0aWVzLCBzZXQgb3B0aW9ucywgY29udmVydCB5b3VyIGRhdGEuPC9wPgorICoKKyAqIDxwPlNpbmNlIG1hbnkgc29mdHdhcmUgcHJvZ3JhbXMgcmVjb2dpemUgZGlmZmVyZW50IGNvbnZlcnRlciBuYW1lcyBmb3IKKyAqIGRpZmZlcmVudCB0eXBlcyBvZiBjb252ZXJ0ZXJzLCB0aGVyZSBhcmUgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgQVBJIHRvCisgKiBpdGVyYXRlIG92ZXIgdGhlIGNvbnZlcnRlciBhbGlhc2VzLiAKKyAqIAorICogQGRyYWZ0IElDVSAzLjYKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2hhcnNldElDVSBleHRlbmRzIENoYXJzZXR7CisJCisgICAgIFN0cmluZyBpY3VDYW5vbmljYWxOYW1lOworICAgICBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWU7CisgICAgIGludCBvcHRpb25zOworCisgICAgIGZsb2F0ICBtYXhDaGFyc1BlckJ5dGU7CisgICAgCisgICAgIGJvb2xlYW4gdXNlRmFsbGJhY2s7CisgICAgCisgICAgIFN0cmluZyBuYW1lOyAvKiArNDogNjAgIGludGVybmFsIG5hbWUgb2YgdGhlIGNvbnZlcnRlci0gaW52YXJpYW50IGNoYXJzICovCisKKyAgICAgaW50IGNvZGVwYWdlOyAgICAgICAgICAgICAgIC8qICs2NDogNCBjb2RlcGFnZSAjIChub3cgSUJNLSRjb2RlcGFnZSkgKi8KKworICAgICBieXRlIHBsYXRmb3JtOyAgICAgICAgICAgICAgICAvKiArNjg6IDEgcGxhdGZvcm0gb2YgdGhlIGNvbnZlcnRlciAob25seSBJQk0gbm93KSAqLworICAgICBieXRlIGNvbnZlcnNpb25UeXBlOyAgICAgICAgICAvKiArNjk6IDEgY29udmVyc2lvbiB0eXBlICovCisKKyAgICAgaW50IG1pbkJ5dGVzUGVyQ2hhcjsgICAgICAgICAvKiArNzA6IDEgTWluaW11bSAjIGJ5dGVzIHBlciBjaGFyIGluIHRoaXMgY29kZXBhZ2UgKi8KKyAgICAgaW50IG1heEJ5dGVzUGVyQ2hhcjsgICAgICAgICAvKiArNzE6IDEgTWF4aW11bSAjIGJ5dGVzIG91dHB1dCBwZXIgVUNoYXIgaW4gdGhpcyBjb2RlcGFnZSAqLworCisgICAgIGJ5dGUgc3ViQ2hhclsvKlVDTlZfTUFYX1NVQkNIQVJfTEVOKi9dOyAvKiArNzI6IDQgIFtub3RlOiAgNCBhbmQgOCBieXRlIGJvdW5kYXJ5XSAqLworICAgICBieXRlIHN1YkNoYXJMZW47ICAgICAgICAgICAgICAvKiArNzY6IDEgKi8KKyAgICAKKyAgICAgYnl0ZSBoYXNUb1VuaWNvZGVGYWxsYmFjazsgICAvKiArNzc6IDEgVUJvb2wgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBVQm9vbCB0byBiZSBjb25zaXN0ZW50IGFjcm9zcyBwbGF0Zm9ybSAqLworICAgICBieXRlIGhhc0Zyb21Vbmljb2RlRmFsbGJhY2s7IC8qICs3ODogMSAqLworICAgICBzaG9ydCB1bmljb2RlTWFzazsgICAgICAgICAgICAvKiArNzk6IDEgIGJpdCAwOiBoYXMgc3VwcGxlbWVudGFyeSAgYml0IDE6IGhhcyBzaW5nbGUgc3Vycm9nYXRlcyAqLworICAgICBieXRlIHN1YkNoYXIxOyAgICAgICAgICAgICAgIC8qICs4MDogMSAgc2luZ2xlLWJ5dGUgc3Vic3RpdHV0aW9uIGNoYXJhY3RlciBmb3IgSUJNIE1CQ1MgKDAgaWYgbm9uZSkgKi8KKyAgICAgYnl0ZSByZXNlcnZlZFsvKjE5Ki9dOyAgICAgICAgICAgLyogKzgxOiAxOSB0byByb3VuZCBvdXQgdGhlIHN0cnVjdHVyZSAqLworICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqIEBwYXJhbSBpY3VDYW5vbmljYWxOYW1lCisgICAgICogQHBhcmFtIGNhbm9uaWNhbE5hbWUKKyAgICAgKiBAcGFyYW0gYWxpYXNlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIENoYXJzZXRJQ1UoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUsIFN0cmluZyBjYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKSB7CisJCXN1cGVyKGNhbm9uaWNhbE5hbWUsYWxpYXNlcyk7CisgICAgICAgIGlmKGNhbm9uaWNhbE5hbWUubGVuZ3RoKCkgPT0gMCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbENoYXJzZXROYW1lRXhjZXB0aW9uKGNhbm9uaWNhbE5hbWUpOworICAgICAgICB9CisgICAgICAgIHRoaXMuamF2YUNhbm9uaWNhbE5hbWUgPSBjYW5vbmljYWxOYW1lOworICAgICAgICB0aGlzLmljdUNhbm9uaWNhbE5hbWUgID0gaWN1Q2Fub25pY2FsTmFtZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNjZXJ0YWlucyBpZiBhIGNoYXJzZXQgaXMgYSBzdWIgc2V0IG9mIHRoaXMgY2hhcnNldAorICAgICAqIEltcGxlbWVudHMgdGhlIGFic3RyYWN0IG1ldGhvZCBvZiBzdXBlciBjbGFzcy4KKyAgICAgKiBAcGFyYW0gY3MgY2hhcnNldCB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFyc2V0IGlzIGEgc3Vic2V0IG9mIHRoaXMgY2hhcnNldAorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKENoYXJzZXQgY3MpeworICAgICAgICBpZiAobnVsbCA9PSBjcykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXF1YWxzKGNzKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNoTWFwIGFsZ29yaXRobWljQ2hhcnNldHMgPSBuZXcgSGFzaE1hcCgpOworICAgIHN0YXRpY3sKKyAgICAgICAgLyphbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiQk9DVS0xIiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldEJPQ1UxIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiQ0VTVS04IiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldENFU1U4IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiSFoiLCAgICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldEhaIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiaW1hcG1haWxib3huYW1lIiwgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldElNQVAiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJJU0NJSSIsICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0SVNDSUkiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJpc28yMDIyIiwgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0SVNPMjAyMiIgKTsqLworICAgICAgICAvKmFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczEiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3MxMSIsICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTMTEiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczE2IiwgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxNiIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzMTciLCAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzE3IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3MxOCIsICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTMTgiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczE5IiwgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MxOSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzMiIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzIiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczMiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1MzIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3M0IiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTNCIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoImxtYmNzNSIsICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRMTUJDUzUiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJsbWJjczYiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TE1CQ1M2IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgibG1iY3M4IiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldExNQkNTOCIgKQorICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgic2NzdSIsICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFNDU1UiICk7ICovCisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVUy1BU0NJSSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0QVNDSUkiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJJU08tODg1OS0xIiwgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0ODg1OTEiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTYiLCAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTYiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTZCRSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTYiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYtMTZMRSIsICAgICAgICAgICAgICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMTZMRSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURjE2X09wcG9zaXRlRW5kaWFuIiwgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEYxNkxFIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGMTZfUGxhdGZvcm1FbmRpYW4iLCAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjE2IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyIiwgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyQkUiLCAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyIiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTMyTEUiLCAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjMyTEUiICk7CisgICAgICAgIGFsZ29yaXRobWljQ2hhcnNldHMucHV0KCJVVEYzMl9QbGF0Zm9ybUVuZGlhbiIsICAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0VVRGMzJMRSIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURjMyX09wcG9zaXRlRW5kaWFuIiwgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEYzMiIgKTsKKyAgICAgICAgYWxnb3JpdGhtaWNDaGFyc2V0cy5wdXQoIlVURi03IiwgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRVVEY3IiApOworICAgICAgICBhbGdvcml0aG1pY0NoYXJzZXRzLnB1dCgiVVRGLTgiLCAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmNoYXJzZXQuQ2hhcnNldFVURjgiICk7CisgICAgfQorCisgICAgLypwdWJsaWMqLyBzdGF0aWMgZmluYWwgQ2hhcnNldCBnZXRDaGFyc2V0KFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSAoU3RyaW5nKSBhbGdvcml0aG1pY0NoYXJzZXRzLmdldChpY3VDYW5vbmljYWxOYW1lKTsKKyAgICAgICBpZihjbGFzc05hbWU9PW51bGwpeworICAgICAgICAgICAvL2FsbCB0aGUgY252IGZpbGVzIGFyZSBsb2FkZWQgYXMgTUJDUworICAgICAgICAgICBjbGFzc05hbWUgPSAiY29tLmlibS5pY3UuY2hhcnNldC5DaGFyc2V0TUJDUyI7CisgICAgICAgfQorICAgICAgIHRyeXsKKyAgICAgICAgICAgQ2hhcnNldElDVSBjb252ID0gbnVsbDsKKyAgICAgICAgICAgQ2xhc3MgY3MgPSBDbGFzcy5mb3JOYW1lKGNsYXNzTmFtZSk7CisgICAgICAgICAgIENsYXNzW10gcGFyYW1UeXBlcyA9IG5ldyBDbGFzc1tdeyBTdHJpbmcuY2xhc3MsIFN0cmluZy5jbGFzcywgIFN0cmluZ1tdLmNsYXNzfTsKKyAgICAgICAgICAgZmluYWwgQ29uc3RydWN0b3IgYyA9IGNzLmdldENvbnN0cnVjdG9yKHBhcmFtVHlwZXMpOworICAgICAgICAgICBPYmplY3RbXSBwYXJhbXMgPSBuZXcgT2JqZWN0W117IGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzfTsKKyAgICAgICAgICAgCisgICAgICAgICAgIC8vIFJ1biBjb25zdHJ1Y3RvcgorICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgT2JqZWN0IG9iaiA9IGMubmV3SW5zdGFuY2UocGFyYW1zKTsKKyAgICAgICAgICAgICAgIGlmKG9iaiE9bnVsbCAmJiBvYmogaW5zdGFuY2VvZiBDaGFyc2V0SUNVKXsKKyAgICAgICAgICAgICAgICAgICBjb252ID0gKENoYXJzZXRJQ1Upb2JqOworICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252OworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9Y2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiggaWN1Q2Fub25pY2FsTmFtZSsiOiAiKyJDb3VsZCBub3QgbG9hZCAiICsgY2xhc3NOYW1lKyAiLiBFeGNlcHRpb246IiArIGUuZ2V0VGFyZ2V0RXhjZXB0aW9uKCkpOyAgICAKKyAgICAgICAgICAgfQorICAgICAgIH1jYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGV4KXsKKyAgICAgICB9Y2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGV4KXsKKyAgICAgICB9Y2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZXgpeyAKKyAgICAgICB9Y2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZXgpeyAKKyAgICAgICB9CisgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiggaWN1Q2Fub25pY2FsTmFtZSsiOiAiKyJDb3VsZCBub3QgbG9hZCAiICsgY2xhc3NOYW1lKTsgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3Vycm9nYXRlKGludCBjKXsKKyAgICAgICAgcmV0dXJuICgoKGMpJjB4ZmZmZmY4MDApPT0weGQ4MDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBbHdheXMgdXNlIGZhbGxiYWNrcyBmcm9tIGNvZGVwYWdlIHRvIFVuaWNvZGU/CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBmaW5hbCBib29sZWFuIGlzVG9VVXNlRmFsbGJhY2soKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogVXNlIGZhbGxiYWNrcyBmcm9tIFVuaWNvZGUgdG8gY29kZXBhZ2Ugd2hlbiB1c2VGYWxsYmFjayBvciBmb3IgcHJpdmF0ZS11c2UgY29kZSBwb2ludHMKKyAgICAgKiBAcGFyYW0gYyBBIGNvZGVwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBpc0Zyb21VVXNlRmFsbGJhY2soaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICh1c2VGYWxsYmFjaykgfHwgaXNQcml2YXRlVXNlKGMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGNoYXJzZXQgbmFtZSAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGdldERlZmF1bHRDaGFyc2V0TmFtZSgpeworICAgICAgICBTdHJpbmcgZGVmYXVsdEVuY29kaW5nID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShuZXcgYnl0ZVswXSkpLmdldEVuY29kaW5nKCk7CisgICAgICAgIHJldHVybiBkZWZhdWx0RW5jb2Rpbmc7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUHJpdmF0ZVVzZShpbnQgYykgeworICAgICAgICByZXR1cm4gKFVDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBVQ2hhcmFjdGVyLlBSSVZBVEVfVVNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY2hhcnNldCBvYmplY3QgZm9yIHRoZSBuYW1lZCBjaGFyc2V0LgorICAgICAqIFRoaXMgbWV0aG9kIGd1cmFudGVlIHRoYXQgSUNVIGNoYXJzZXQgaXMgcmV0dXJuZWQgd2hlbgorICAgICAqIGF2YWlsYWJsZS4gIElmIHRoZSBJQ1UgY2hhcnNldCBwcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0CisgICAgICogdGhlIHNwZWNpZmllZCBjaGFyc2V0LCB0aGVuIHRyeSBvdGhlciBjaGFyc2V0IHByb3ZpZGVycworICAgICAqIGluY2x1ZGluZyB0aGUgc3RhbmRhcmQgSmF2YSBjaGFyc2V0IHByb3ZpZGVyLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjaGFyc2V0TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGNoYXJzZXQsCisgICAgICogbWF5IGJlIGVpdGhlciBhIGNhbm9uaWNhbCBuYW1lIG9yIGFuIGFsaWFzCisgICAgICogQHJldHVybiBBIGNoYXJzZXQgb2JqZWN0IGZvciB0aGUgbmFtZWQgY2hhcnNldAorICAgICAqIEB0aHJvd3MgSWxsZWdhbENoYXJzZXROYW1lRXhjZXB0aW9uIElmIHRoZSBnaXZlbiBjaGFyc2V0IG5hbWUKKyAgICAgKiBpcyBpbGxlZ2FsCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gSWYgbm8gc3VwcG9ydCBmb3IgdGhlCisgICAgICogbmFtZWQgY2hhcnNldCBpcyBhdmFpbGFibGUgaW4gdGhpcyBpbnN0YW5jZSBvZiB0aCBKYXZhCisgICAgICogdmlydHVhbCBtYWNoaW5lCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENoYXJzZXQgZm9yTmFtZUlDVShTdHJpbmcgY2hhcnNldE5hbWUpIHRocm93cyBJbGxlZ2FsQ2hhcnNldE5hbWVFeGNlcHRpb24sIFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBpY3VQcm92aWRlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBjcyA9IGljdVByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKGNoYXJzZXROYW1lKTsKKyAgICAgICAgaWYgKGNzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBjczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcnNldC5mb3JOYW1lKGNoYXJzZXROYW1lKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRNQkNTLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0TUJDUy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYzM3OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0TUJDUy5qYXZhCkBAIC0wLDAgKzEsMzcwNyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEubmlvLkJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5CdWZmZXJPdmVyZmxvd0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UuY2hhcnNldC5VQ29udmVydGVyU2hhcmVkRGF0YS5VQ29udmVydGVyVHlwZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludmFsaWRGb3JtYXRFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK2NsYXNzIENoYXJzZXRNQkNTIGV4dGVuZHMgQ2hhcnNldElDVSB7CisKKyAgICBwcm90ZWN0ZWQgYnl0ZVtdICAgICAgICAgICAgICAgIGZyb21VU3Vic3RpdHV0aW9uID0gbnVsbDsKKyAgICBwcm90ZWN0ZWQgVUNvbnZlcnRlclNoYXJlZERhdGEgIHNoYXJlZERhdGEgPSBudWxsOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1ZFUlNJT05fTEVOR1RIPTQ7CisgICAgLyoqCisgICAgICogRmFsbGJhY2tzIHRvIFVuaWNvZGUgYXJlIHN0b3JlZCBvdXRzaWRlIHRoZSBub3JtYWwgc3RhdGUgdGFibGUgYW5kIGNvZGUgcG9pbnQgc3RydWN0dXJlcworICAgICAqIGluIGEgdmVjdG9yIG9mIGl0ZW1zIG9mIHRoaXMgdHlwZS4gVGhleSBhcmUgc29ydGVkIGJ5IG9mZnNldC4KKyAgICAgKi8KKyAgICBmaW5hbCBjbGFzcyBNQkNTVG9VRmFsbGJhY2sgeworICAgICAgICBpbnQgb2Zmc2V0OworICAgICAgICBpbnQgY29kZVBvaW50OworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBNQkNTIHBhcnQgb2YgdGhlIFVDb252ZXJ0ZXJUYWJsZSB1bmlvbiAoYSBydW50aW1lIGRhdGEgc3RydWN0dXJlKS4KKyAgICAgKiBJdCBrZWVwcyBhbGwgdGhlIHBlci1jb252ZXJ0ZXIgZGF0YSBhbmQgcG9pbnRzIGludG8gdGhlIGxvYWRlZCBtYXBwaW5nIHRhYmxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgVUNvbnZlcnRlck1CQ1NUYWJsZSB7CisgICAgICAgIC8qIHRvVW5pY29kZSAqLworICAgICAgICBzaG9ydCBjb3VudFN0YXRlczsKKyAgICAgICAgYnl0ZSBkYmNzT25seVN0YXRlOworICAgICAgICBib29sZWFuIHN0YXRlVGFibGVPd25lZDsKKyAgICAgICAgaW50IGNvdW50VG9VRmFsbGJhY2tzOworICAgIAorICAgICAgICBpbnQgc3RhdGVUYWJsZVsvKmNvdW50U3RhdGVzKi9dWy8qMjU2Ki9dOworICAgICAgICBpbnQgc3dhcExGTkxTdGF0ZVRhYmxlWy8qY291bnRTdGF0ZXMqL11bLyoyNTYqL107IC8qIGZvciBzd2FwbGZubCAqLworICAgICAgICBjaGFyIHVuaWNvZGVDb2RlVW5pdHNbLypjb3VudFVuaWNvZGVSZXN1bHRzKi9dOworICAgICAgICBNQkNTVG9VRmFsbGJhY2sgdG9VRmFsbGJhY2tzWy8qY291bnRUb1VGYWxsYmFja3MqL107CisgICAgCisgICAgICAgIC8qIGZyb21Vbmljb2RlICovCisgICAgICAgIGNoYXIgZnJvbVVuaWNvZGVUYWJsZVtdOworICAgICAgICBieXRlIGZyb21Vbmljb2RlQnl0ZXNbXTsKKyAgICAgICAgYnl0ZSBzd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXNbXTsgLyogZm9yIHN3YXBsZm5sICovCisgICAgICAgIGludCBmcm9tVUJ5dGVzTGVuZ3RoOworICAgICAgICBzaG9ydCBvdXRwdXRUeXBlLCB1bmljb2RlTWFzazsKKyAgICAKKyAgICAgICAgLyogY29udmVydGVyIG5hbWUgZm9yIHN3YXBsZm5sICovCisgICAgICAgIFN0cmluZyBzd2FwTEZOTE5hbWU7CisgICAgCisgICAgICAgIC8qIGV4dGVuc2lvbiBkYXRhICovCisgICAgICAgIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGJhc2VTaGFyZWREYXRhOworICAgICAgICAvL2ludCBleHRJbmRleGVzW107CisgICAgICAgIEJ5dGVCdWZmZXIgZXh0SW5kZXhlczsgLy8gY3JlYXRlIGludFtdIHZpZXcgZXRjLiBhcyBuZWVkZWQKKworICAgICAgICBVQ29udmVydGVyTUJDU1RhYmxlKCkKKyAgICAgICAgeworICAgICAgICB9CisKKy8qICAgICAgICBVQ29udmVydGVyTUJDU1RhYmxlKFVDb252ZXJ0ZXJNQkNTVGFibGUgdCkKKyAgICAgICAgeworICAgICAgICAgICAgY291bnRTdGF0ZXMgPSB0LmNvdW50U3RhdGVzOworICAgICAgICAgICAgZGJjc09ubHlTdGF0ZSA9IHQuZGJjc09ubHlTdGF0ZTsKKyAgICAgICAgICAgIHN0YXRlVGFibGVPd25lZCA9IHQuc3RhdGVUYWJsZU93bmVkOworICAgICAgICAgICAgY291bnRUb1VGYWxsYmFja3MgPSB0LmNvdW50VG9VRmFsbGJhY2tzOworICAgICAgICAgICAgc3RhdGVUYWJsZSA9IHQuc3RhdGVUYWJsZTsKKyAgICAgICAgICAgIHN3YXBMRk5MU3RhdGVUYWJsZSA9IHQuc3dhcExGTkxTdGF0ZVRhYmxlOworICAgICAgICAgICAgdW5pY29kZUNvZGVVbml0cyA9IHQudW5pY29kZUNvZGVVbml0czsKKyAgICAgICAgICAgIHRvVUZhbGxiYWNrcyA9IHQudG9VRmFsbGJhY2tzOworICAgICAgICAgICAgZnJvbVVuaWNvZGVUYWJsZSA9IHQuZnJvbVVuaWNvZGVUYWJsZTsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlQnl0ZXMgPSB0LmZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICBzd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXMgPSB0LnN3YXBMRk5MRnJvbVVuaWNvZGVCeXRlczsKKyAgICAgICAgICAgIGZyb21VQnl0ZXNMZW5ndGggPSB0LmZyb21VQnl0ZXNMZW5ndGg7CisgICAgICAgICAgICBvdXRwdXRUeXBlID0gdC5vdXRwdXRUeXBlOworICAgICAgICAgICAgdW5pY29kZU1hc2sgPSB0LnVuaWNvZGVNYXNrOworICAgICAgICAgICAgc3dhcExGTkxOYW1lID0gdC5zd2FwTEZOTE5hbWU7CisgICAgICAgICAgICBiYXNlU2hhcmVkRGF0YSA9IHQuYmFzZVNoYXJlZERhdGE7CisgICAgICAgICAgICBleHRJbmRleGVzID0gdC5leHRJbmRleGVzOworICAgICAgICB9Ki8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNQkNTIGRhdGEgaGVhZGVyLiBTZWUgZGF0YSBmb3JtYXQgZGVzY3JpcHRpb24gYWJvdmUuCisgICAgICovCisgICAgZmluYWwgY2xhc3MgTUJDU0hlYWRlciB7CisgICAgICAgIGJ5dGUgdmVyc2lvblsvKlVfTUFYX1ZFUlNJT05fTEVOR1RIKi9dOworICAgICAgICBpbnQgY291bnRTdGF0ZXMsIGNvdW50VG9VRmFsbGJhY2tzLCBvZmZzZXRUb1VDb2RlVW5pdHMsIG9mZnNldEZyb21VVGFibGUsIG9mZnNldEZyb21VQnl0ZXM7CisgICAgICAgIGludCBmbGFnczsKKyAgICAgICAgaW50IGZyb21VQnl0ZXNMZW5ndGg7CisKKyAgICAgICAgTUJDU0hlYWRlcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZlcnNpb24gPSBuZXcgYnl0ZVtNQVhfVkVSU0lPTl9MRU5HVEhdOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRhZ3MgZm9yIHBhY2lmeWluZyB0aGUgY2hlY2sgdGFncyB0b29sCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldE1CQ1MoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUsIFN0cmluZyBqYXZhQ2Fub25pY2FsTmFtZSwgU3RyaW5nW10gYWxpYXNlcykgdGhyb3dzIEludmFsaWRGb3JtYXRFeGNlcHRpb257CisgICAgICAgIHN1cGVyKGljdUNhbm9uaWNhbE5hbWUsIGphdmFDYW5vbmljYWxOYW1lLCBhbGlhc2VzKTsKKyAgICAgICAgCisgICAgICAgIC8vIG5vdyB0cnkgdG8gbG9hZCB0aGUgZGF0YSAgIAorICAgICAgICBMb2FkQXJndW1lbnRzIGFyZ3MgPSBuZXcgTG9hZEFyZ3VtZW50cygxLCBpY3VDYW5vbmljYWxOYW1lKTsKKyAgICAgICAgc2hhcmVkRGF0YSA9IGxvYWRDb252ZXJ0ZXIoYXJncyk7CisgICAgICAgICAgIAorICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSBzaGFyZWREYXRhLnN0YXRpY0RhdGEubWF4Qnl0ZXNQZXJDaGFyOworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSBzaGFyZWREYXRhLnN0YXRpY0RhdGEubWluQnl0ZXNQZXJDaGFyOworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgICAgICBmcm9tVVN1YnN0aXR1dGlvbiA9IHNoYXJlZERhdGEuc3RhdGljRGF0YS5zdWJDaGFyOworICAgICAgICBzdWJDaGFyID0gc2hhcmVkRGF0YS5zdGF0aWNEYXRhLnN1YkNoYXI7CisgICAgICAgIHN1YkNoYXJMZW4gPSBzaGFyZWREYXRhLnN0YXRpY0RhdGEuc3ViQ2hhckxlbjsKKyAgICAgICAgc3ViQ2hhcjEgPSBzaGFyZWREYXRhLnN0YXRpY0RhdGEuc3ViQ2hhcjE7CisgICAgICAgIGZyb21VU3Vic3RpdHV0aW9uID0gbmV3IGJ5dGVbc2hhcmVkRGF0YS5zdGF0aWNEYXRhLnN1YkNoYXJMZW5dOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNoYXJlZERhdGEuc3RhdGljRGF0YS5zdWJDaGFyLCAwLCBmcm9tVVN1YnN0aXR1dGlvbiwgMCwgc2hhcmVkRGF0YS5zdGF0aWNEYXRhLnN1YkNoYXJMZW4pOworICAgICAgICAKKyAgICAgICAgLy8gVG9kbzogcGFzcyBvcHRpb25zCisgICAgICAgIGluaXRpYWxpemVDb252ZXJ0ZXIoMCk7CisgICAgfQorICAgIAorICAgIGNsYXNzIExvYWRBcmd1bWVudHMKKyAgICB7CisgICAgICAgIGludCBuZXN0ZWRMb2FkczsgICAgICAgIC8qIGNvdW50IG5lc3RlZCBsb2FkQ29udmVydGVyKCkgY2FsbHMgKi8KKyAgICAgICAgLy8gaW50IHJlc2VydmVkOyAgICAgICAgLyogcmVzZXJ2ZWQgLSBmb3IgZ29vZCBhbGlnbm1lbnQgb2YgdGhlIHBvaW50ZXJzICovCisgICAgICAgIC8vIGxvbmcgb3B0aW9uczsKKyAgICAgICAgLy8gU3RyaW5nIHBrZzsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIAorICAgICAgICBMb2FkQXJndW1lbnRzKGludCBuZXN0ZWRMb2FkcywgU3RyaW5nIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMubmVzdGVkTG9hZHMgPSBuZXN0ZWRMb2FkczsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVUNvbnZlcnRlclNoYXJlZERhdGEgbG9hZENvbnZlcnRlcihMb2FkQXJndW1lbnRzIGFyZ3MpIHRocm93cyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uCisgICAgeyAgICAgICAgCisgICAgICAgIC8vIFJlYWQgY29udmVydGVyIGRhdGEgZnJvbSBmaWxlICAgICAgICAKKyAgICAgICAgVUNvbnZlcnRlclN0YXRpY0RhdGEgc3RhdGljRGF0YSA9IG5ldyBVQ29udmVydGVyU3RhdGljRGF0YSgpOworICAgICAgICBVQ29udmVydGVyRGF0YVJlYWRlciByZWFkZXIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSArICIvIiArIGFyZ3MubmFtZSArICIuIiArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLkRBVEFfVFlQRSk7CisgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpLCBVQ29udmVydGVyQ29uc3RhbnRzLkNOVl9EQVRBX0JVRkZFUl9TSVpFKTsKKyAgICAgICAgICAgIHJlYWRlciA9IG5ldyBVQ29udmVydGVyRGF0YVJlYWRlcihiKTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkU3RhdGljRGF0YShzdGF0aWNEYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgCisgICAgICAgIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGRhdGEgPSBudWxsOworICAgICAgICBpbnQgdHlwZSA9IHN0YXRpY0RhdGEuY29udmVyc2lvblR5cGU7CisgICAgCisgICAgICAgIGlmKCB0eXBlICE9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLlVDb252ZXJ0ZXJUeXBlLk1CQ1MgfHwKKyAgICAgICAgICAgIHN0YXRpY0RhdGEuc3RydWN0U2l6ZSAhPSBVQ29udmVydGVyU2hhcmVkRGF0YS5TSVpFX09GX1VDT05WRVJURVJfU0hBUkVEX0RBVEEpIAorICAgICAgICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgCisgICAgICAgIGRhdGEgPSBuZXcgVUNvbnZlcnRlclNoYXJlZERhdGEoVUNvbnZlcnRlclNoYXJlZERhdGEuU0laRV9PRl9VQ09OVkVSVEVSX1NIQVJFRF9EQVRBLCAxLCBudWxsLCBmYWxzZSwgMCk7CisgICAgICAgIGRhdGEuZGF0YVJlYWRlciA9IHJlYWRlcjsKKyAgICAgICAgZGF0YS5zdGF0aWNEYXRhID0gc3RhdGljRGF0YTsgICAgCisgICAgICAgIGRhdGEuc2hhcmVkRGF0YUNhY2hlZCA9IGZhbHNlOworICAgIAorICAgICAgICAvLyBMb2FkIGRhdGEKKyAgICAgICAgVUNvbnZlcnRlck1CQ1NUYWJsZSBtYmNzVGFibGUgPSBkYXRhLm1iY3M7CisgICAgICAgIE1CQ1NIZWFkZXIgaGVhZGVyID0gbmV3IE1CQ1NIZWFkZXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkTUJDU0hlYWRlcihoZWFkZXIpOyAgCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IG9mZnNldDsgICAgCisgICAgICAgIC8vaW50W10gZXh0SW5kZXhlc0FycmF5ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lU3RyaW5nID0gbnVsbDsKKyAgICAgICAgaW50W11bXSBzdGF0ZVRhYmxlQXJyYXkgPSBudWxsOworICAgICAgICBNQkNTVG9VRmFsbGJhY2tbXSB0b1VGYWxsYmFja3NBcnJheSA9IG51bGw7CisgICAgICAgIGNoYXJbXSB1bmljb2RlQ29kZVVuaXRzQXJyYXkgPSBudWxsOworICAgICAgICBjaGFyW10gZnJvbVVuaWNvZGVUYWJsZUFycmF5ID0gbnVsbDsKKyAgICAgICAgYnl0ZVtdIGZyb21Vbmljb2RlQnl0ZXNBcnJheSA9IG51bGw7CisgICAgICAgICAgICAKKyAgICAgICAgaWYoaGVhZGVyLnZlcnNpb25bMF0hPTQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbWJjc1RhYmxlLm91dHB1dFR5cGU9KGJ5dGUpaGVhZGVyLmZsYWdzOworICAgIAorICAgICAgICAvKiBleHRlbnNpb24gZGF0YSwgaGVhZGVyIHZlcnNpb24gNC4yIGFuZCBoaWdoZXIgKi8KKyAgICAgICAgb2Zmc2V0PWhlYWRlci5mbGFncz4+Pjg7CisgICAgICAgIC8vaWYob2Zmc2V0IT0wICYmIG1iY3NUYWJsZS5vdXRwdXRUeXBlID09IE1CQ1NfT1VUUFVUX0VYVF9PTkxZKSB7CisgICAgICAgIGlmKG1iY3NUYWJsZS5vdXRwdXRUeXBlID09IE1CQ1NfT1VUUFVUX0VYVF9PTkxZKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJhc2VOYW1lU3RyaW5nID0gcmVhZGVyLnJlYWRCYXNlVGFibGVOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tbWVudCBzdWJ0cmFjdCAzMiBmb3Igc2l6ZW9mKF9NQkNTSGVhZGVyKSBhbmQgbGVuZ3RoIG9mIGJhc2VOYW1lU3RyaW5nIGFuZCAxIG51bGwgdGVybWluYXRvciBieXRlIGFsbCBhbHJlYWR5IHJlYWQ7CisgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5leHRJbmRleGVzPXJlYWRlci5yZWFkRXh0SW5kZXhlcyhvZmZzZXQgLSAzMiAtIGJhc2VOYW1lU3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgaWYob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tbWVudCBzdWJ0cmFjdCAzMiBmb3Igc2l6ZW9mKF9NQkNTSGVhZGVyKSBhbmQgbGVuZ3RoIG9mIGJhc2VOYW1lU3RyaW5nIGFuZCAxIG51bGwgdGVybWluYXRvciBieXRlIGFsbCBhbHJlYWR5IHJlYWQ7CisgICAgICAgICAgICAgICAgaW50IG5hbWVsZW4gPSBiYXNlTmFtZVN0cmluZyAhPSBudWxsPyBiYXNlTmFtZVN0cmluZy5sZW5ndGgoKSArIDE6IDA7CisgICAgICAgICAgICAgICAgbWJjc1RhYmxlLmV4dEluZGV4ZXM9ZGF0YVJlYWRlci5yZWFkRXh0SW5kZXhlcyhvZmZzZXQgLSAzMiAtIG5hbWVsZW4pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0uZXJyLnByaW50bG4oIkNhdWdodCBJT0V4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBwRXJyb3JDb2RlWzBdID0gVUVycm9yQ29kZS5VX0lOVkFMSURfRk9STUFUX0VSUk9SOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvL2FnbGpwb3J0OmFkZCB0aGlzIHdvdWxkIGJlIHVubmVjZXNzYXJ5IGlmIGV4dEluZGV4ZXMgd2VyZSBtZW1vcnkgbWFwcGVkCisgICAgICAgIGlmKG1iY3NUYWJsZS5leHRJbmRleGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vaW50IG5ieXRlcyA9IG1iY3NUYWJsZS5leHRJbmRleGVzW1VDb252ZXJ0ZXJFeHQuVUNOVl9FWFRfVE9fVV9MRU5HVEhdKjQgKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX1RPX1VfVUNIQVJTX0xFTkdUSF0qMiArIG1iY3NUYWJsZS5leHRJbmRleGVzW1VDb252ZXJ0ZXJFeHQuVUNOVl9FWFRfRlJPTV9VX0xFTkdUSF0qNiArIG1iY3NUYWJsZS5leHRJbmRleGVzW1VDb252ZXJ0ZXJFeHQuVUNOVl9FWFRfRlJPTV9VX0JZVEVTX0xFTkdUSF0gKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX0ZST01fVV9TVEFHRV8xMl9MRU5HVEhdKjIgKyBtYmNzVGFibGUuZXh0SW5kZXhlc1tVQ29udmVydGVyRXh0LlVDTlZfRVhUX0ZST01fVV9TVEFHRV8zX0xFTkdUSF0qMiArIG1iY3NUYWJsZS5leHRJbmRleGVzW1VDb252ZXJ0ZXJFeHQuVUNOVl9FWFRfRlJPTV9VX1NUQUdFXzNCX0xFTkdUSF0qNDsgCisgICAgICAgICAgICAgICAgLy9pbnQgbmJ5dGVzID0gbWJjc1RhYmxlLmV4dEluZGV4ZXNbVUNvbnZlcnRlckV4dC5VQ05WX0VYVF9TSVpFXSAKKyAgICAgICAgICAgICAgICAvL2J5dGVbXSBleHRUYWJsZXMgPSBkYXRhUmVhZGVyLnJlYWRFeHRUYWJsZXMobmJ5dGVzKTsKKyAgICAgICAgICAgICAgICAvL21iY3NUYWJsZS5leHRUYWJsZXMgPSBCeXRlQnVmZmVyLndyYXAoZXh0VGFibGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNhdWdodCBJT0V4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBwRXJyb3JDb2RlWzBdID0gVUVycm9yQ29kZS5VX0lOVkFMSURfRk9STUFUX0VSUk9SOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYobWJjc1RhYmxlLm91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUX0VYVF9PTkxZKSB7CisgICAgICAgICAgICBVQ29udmVydGVyU2hhcmVkRGF0YSBiYXNlU2hhcmVkRGF0YSA9IG51bGw7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGV4dEluZGV4ZXM7CisgICAgICAgICAgICBTdHJpbmcgYmFzZU5hbWU7CisgICAgCisgICAgICAgICAgICAvKiBleHRlbnNpb24tb25seSBmaWxlLCBsb2FkIHRoZSBiYXNlIHRhYmxlIGFuZCBzZXQgdmFsdWVzIGFwcHJvcHJpYXRlbHkgKi8KKyAgICAgICAgICAgIGlmKChleHRJbmRleGVzPW1iY3NUYWJsZS5leHRJbmRleGVzKT09bnVsbCkgeworICAgICAgICAgICAgICAgIC8qIGV4dGVuc2lvbi1vbmx5IGZpbGUgd2l0aG91dCBleHRlbnNpb24gKi8KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoYXJncy5uZXN0ZWRMb2FkcyE9MSkgeworICAgICAgICAgICAgICAgIC8qIGFuIGV4dGVuc2lvbiB0YWJsZSBtdXN0IG5vdCBiZSBsb2FkZWQgYXMgYSBiYXNlIHRhYmxlICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGxvYWQgdGhlIGJhc2UgdGFibGUgKi8KKyAgICAgICAgICAgIGJhc2VOYW1lPWJhc2VOYW1lU3RyaW5nOworICAgICAgICAgICAgaWYoYmFzZU5hbWUuZXF1YWxzKHN0YXRpY0RhdGEubmFtZSkpIHsKKyAgICAgICAgICAgICAgICAvKiBmb3JiaWQgbG9hZGluZyB0aGlzIHNhbWUgZXh0ZW5zaW9uLW9ubHkgZmlsZSAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBUT0RPIHBhcnNlIHBhY2thZ2UgbmFtZSBvdXQgb2YgdGhlIHByZWZpeCBvZiB0aGUgYmFzZSBuYW1lIGluIHRoZSBleHRlbnNpb24gLmNudiBmaWxlPyAqLworICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggYXJncy5zaXplPXNpemVvZihVQ29udmVydGVyTG9hZEFyZ3MpOworICAgICAgICAgICAgTG9hZEFyZ3VtZW50cyBhcmdzMiA9IG5ldyBMb2FkQXJndW1lbnRzKDIsIGJhc2VOYW1lKTsKKyAgICAgICAgICAgIGJhc2VTaGFyZWREYXRhPWxvYWRDb252ZXJ0ZXIoYXJnczIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiggYmFzZVNoYXJlZERhdGEuc3RhdGljRGF0YS5jb252ZXJzaW9uVHlwZSE9VUNvbnZlcnRlclR5cGUuTUJDUyB8fAorICAgICAgICAgICAgICAgIGJhc2VTaGFyZWREYXRhLm1iY3MuYmFzZVNoYXJlZERhdGEhPW51bGwKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IHVjbnZfdW5sb2FkKGJhc2VTaGFyZWREYXRhKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogY29weSB0aGUgYmFzZSB0YWJsZSBkYXRhICovCisgICAgICAgICAgICAvL2FnbGpwb3J0OmNvbW1lbnQgZGVlcCBjb3B5IGluIEMgY2hhbmdlcyBtYmNzIHRocm91Z2ggbG9jYWwgcmVmZXJlbmNlIG1iY3NUYWJsZTsgaW4gamF2YSB3ZSBwcm9iYWJseSBkb24ndCBuZWVkIHRoZSBkZWVwIGNvcHkgc28gY2FuIGp1c3QgbWFrZSBzdXJlIG1iY3MgYW5kIGl0cyBsb2NhbCByZWZlcmVuY2UgYm90aCByZWZlciB0byB0aGUgc2FtZSBuZXcgb2JqZWN0CisgICAgICAgICAgICBtYmNzVGFibGUgPSBkYXRhLm1iY3MgPSBiYXNlU2hhcmVkRGF0YS5tYmNzOworICAgIAorICAgICAgICAgICAgLyogb3ZlcndyaXRlIHZhbHVlcyB3aXRoIHJlbGV2YW50IG9uZXMgZm9yIHRoZSBleHRlbnNpb24gY29udmVydGVyICovCisgICAgICAgICAgICBtYmNzVGFibGUuYmFzZVNoYXJlZERhdGE9YmFzZVNoYXJlZERhdGE7CisgICAgICAgICAgICBtYmNzVGFibGUuZXh0SW5kZXhlcz1leHRJbmRleGVzOworICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIHNoYXJlIHRoZSBzd2FwTEZOTCBkYXRhIHdpdGggYSBiYXNlIGNvbnZlcnRlciwKKyAgICAgICAgICAgICAqIGJ1dCB0aGUgZ2VuZXJhdGVkIG5hbWUgd291bGQgaGF2ZSB0byBiZSBkaWZmZXJlbnQsIGFuZCB0aGUgbWVtb3J5CisgICAgICAgICAgICAgKiB3b3VsZCBoYXZlIHRvIGJlIGZyZWUnZCBvbmx5IG9uY2UuCisgICAgICAgICAgICAgKiBJdCBpcyBlYXNpZXIgdG8ganVzdCBjcmVhdGUgdGhlIGRhdGEgZm9yIHRoZSBleHRlbnNpb24gY29udmVydGVyCisgICAgICAgICAgICAgKiBzZXBhcmF0ZWx5IHdoZW4gaXQgaXMgcmVxdWVzdGVkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtYmNzVGFibGUuc3dhcExGTkxTdGF0ZVRhYmxlPW51bGw7CisgICAgICAgICAgICBtYmNzVGFibGUuc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzPW51bGw7CisgICAgICAgICAgICBtYmNzVGFibGUuc3dhcExGTkxOYW1lPW51bGw7CisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogU2V0IGEgc3BlY2lhbCwgcnVudGltZS1vbmx5IG91dHB1dFR5cGUgaWYgdGhlIGV4dGVuc2lvbiBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAqIGlzIGEgREJDUyB2ZXJzaW9uIG9mIGEgYmFzZSBjb252ZXJ0ZXIgdGhhdCBhbHNvIG1hcHMgc2luZ2xlIGJ5dGVzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihzdGF0aWNEYXRhLmNvbnZlcnNpb25UeXBlPT1VQ29udmVydGVyVHlwZS5EQkNTIHx8CisgICAgICAgICAgICAgICAoc3RhdGljRGF0YS5jb252ZXJzaW9uVHlwZT09VUNvbnZlcnRlclR5cGUuTUJDUyAmJiBzdGF0aWNEYXRhLm1pbkJ5dGVzUGVyQ2hhcj49MikpeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGJhc2VTaGFyZWREYXRhLm1iY3Mub3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMl9TSVNPKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBiYXNlIGNvbnZlcnRlciBpcyBTSS9TTy1zdGF0ZWZ1bCAqLworICAgICAgICAgICAgICAgICAgICBpbnQgZW50cnk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgZGJjcyBzdGF0ZSBmcm9tIHRoZSBzdGF0ZSB0YWJsZSBlbnRyeSBmb3IgU089MHgwZSAqLworICAgICAgICAgICAgICAgICAgICBlbnRyeT1tYmNzVGFibGUuc3RhdGVUYWJsZVswXVsweGVdOworICAgICAgICAgICAgICAgICAgICBpZiggTUJDU19FTlRSWV9JU19GSU5BTChlbnRyeSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIE1CQ1NfRU5UUllfRklOQUxfQUNUSU9OKGVudHJ5KT09TUJDU19TVEFURV9DSEFOR0VfT05MWSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSkhPTAKKyAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUuZGJjc09ubHlTdGF0ZT0oYnl0ZSlNQkNTX0VOVFJZX0ZJTkFMX1NUQVRFKGVudHJ5KTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5vdXRwdXRUeXBlPU1CQ1NfT1VUUFVUX0RCQ1NfT05MWTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihiYXNlU2hhcmVkRGF0YS5zdGF0aWNEYXRhLmNvbnZlcnNpb25UeXBlPT1VQ29udmVydGVyVHlwZS5NQkNTICYmCisgICAgICAgICAgICAgICAgICAgICAgICBiYXNlU2hhcmVkRGF0YS5zdGF0aWNEYXRhLm1pbkJ5dGVzUGVyQ2hhcj09MSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVNoYXJlZERhdGEuc3RhdGljRGF0YS5tYXhCeXRlc1BlckNoYXI9PTIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIG1iY3NUYWJsZS5jb3VudFN0YXRlczw9MTI3KXsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIG5vbi1zdGF0ZWZ1bCBiYXNlIGNvbnZlcnRlciwgbmVlZCB0byBtb2RpZnkgdGhlIHN0YXRlIHRhYmxlICovCisgICAgICAgICAgICAgICAgICAgIGludCBuZXdTdGF0ZVRhYmxlW11bLyoyNTYqL107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhdGVbXTsgLy8gdGhpcyB3b3JrcyBiZWNhdXNlIGphdmEgMi1EIGFycmF5IGlzIGFycmF5IG9mIHJlZmVyZW5jZXMgYW5kIHdlIGNhbiBoYXZlIHN0YXRlID0gbmV3U3RhdGVUYWJsZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGksIGNvdW50OworICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBhbGxvY2F0ZSBhIG5ldyBzdGF0ZSB0YWJsZSBhbmQgY29weSB0aGUgYmFzZSBzdGF0ZSB0YWJsZSBjb250ZW50cyAqLworICAgICAgICAgICAgICAgICAgICBjb3VudD1tYmNzVGFibGUuY291bnRTdGF0ZXM7CisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlVGFibGU9bmV3IGludFsoY291bnQrMSkqMTAyNF1bMjU2XTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IG1iY3NUYWJsZS5zdGF0ZVRhYmxlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtYmNzVGFibGUuc3RhdGVUYWJsZVtpXSwgMCwgbmV3U3RhdGVUYWJsZVtpXSwgMCwgbWJjc1RhYmxlLnN0YXRlVGFibGVbaV0ubGVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogY2hhbmdlIGFsbCBmaW5hbCBzaW5nbGUtYnl0ZSBlbnRyaWVzIHRvIGdvIHRvIGEgbmV3IGFsbC1pbGxlZ2FsIHN0YXRlICovCisgICAgICAgICAgICAgICAgICAgIHN0YXRlPW5ld1N0YXRlVGFibGVbMF07CisgICAgICAgICAgICAgICAgICAgIGZvcihpPTA7IGk8MjU2OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfSVNfRklOQUwoc3RhdGVbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbaV09TUJDU19FTlRSWV9UUkFOU0lUSU9OKGNvdW50LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBidWlsZCB0aGUgbmV3IGFsbC1pbGxlZ2FsIHN0YXRlICovCisgICAgICAgICAgICAgICAgICAgIHN0YXRlPW5ld1N0YXRlVGFibGVbY291bnRdOworICAgICAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPDI1NjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVtpXT1NQkNTX0VOVFJZX0ZJTkFMKDAsIE1CQ1NfU1RBVEVfSUxMRUdBTCwgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLnN0YXRlVGFibGU9bmV3U3RhdGVUYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLmNvdW50U3RhdGVzPShieXRlKShjb3VudCsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWJjc1RhYmxlLnN0YXRlVGFibGVPd25lZD10cnVlOworICAgIAorICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUub3V0cHV0VHlwZT1NQkNTX09VVFBVVF9EQkNTX09OTFk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHVubGlrZSBiZWxvdyBmb3IgZmlsZXMgd2l0aCBiYXNlIHRhYmxlcywgZG8gbm90IGdldCB0aGUgdW5pY29kZU1hc2sKKyAgICAgICAgICAgICAqIGZyb20gdGhlIHNoYXJlZERhdGE7IGluc3RlYWQsIHVzZSB0aGUgYmFzZSB0YWJsZSdzIHVuaWNvZGVNYXNrLAorICAgICAgICAgICAgICogd2hpY2ggd2UgY29waWVkIGluIHRoZSBtZW1jcHkgYWJvdmU7CisgICAgICAgICAgICAgKiB0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBzdGF0aWMgZGF0YSB1bmljb2RlTWFzaywgZXNwZWNpYWxseQorICAgICAgICAgICAgICogdGhlIFVDTlZfSEFTX1NVUFBMRU1FTlRBUlkgZmxhZywgaXMgcGFydCBvZiB0aGUgYmFzZSB0YWJsZSBkYXRhCisgICAgICAgICAgICAgKi8KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGZpbGUgd2l0aCBhIGJhc2UgdGFibGU7IGFuIGFkZGl0aW9uYWwgZXh0ZW5zaW9uIHRhYmxlIGlzIG9wdGlvbmFsICovCisgICAgICAgICAgICAvKiBtYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IHR5cGUgaXMga25vd24gKi8KKyAgICAgICAgICAgIHN3aXRjaChtYmNzVGFibGUub3V0cHV0VHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfMToKKyAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzI6CisgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8zOgorICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfNDoKKyAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzNfRVVDOgorICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfNF9FVUM6CisgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8yX1NJU086CisgICAgICAgICAgICAgICAgICAgIC8qIE9LICovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6IAorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RhdGVUYWJsZUFycmF5ID0gbmV3IGludFtoZWFkZXIuY291bnRTdGF0ZXNdWzI1Nl07CisgICAgICAgICAgICB0b1VGYWxsYmFja3NBcnJheSA9IG5ldyBNQkNTVG9VRmFsbGJhY2tbaGVhZGVyLmNvdW50VG9VRmFsbGJhY2tzXTsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB0b1VGYWxsYmFja3NBcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0b1VGYWxsYmFja3NBcnJheVtpXSA9IG5ldyBNQkNTVG9VRmFsbGJhY2soKTsKKyAgICAgICAgICAgIHVuaWNvZGVDb2RlVW5pdHNBcnJheSA9IG5ldyBjaGFyWyhoZWFkZXIub2Zmc2V0RnJvbVVUYWJsZSAtIGhlYWRlci5vZmZzZXRUb1VDb2RlVW5pdHMpLzJdOworICAgICAgICAgICAgZnJvbVVuaWNvZGVUYWJsZUFycmF5ID0gbmV3IGNoYXJbKGhlYWRlci5vZmZzZXRGcm9tVUJ5dGVzIC0gaGVhZGVyLm9mZnNldEZyb21VVGFibGUpLzJdOworICAgICAgICAgICAgZnJvbVVuaWNvZGVCeXRlc0FycmF5ID0gbmV3IGJ5dGVbaGVhZGVyLmZyb21VQnl0ZXNMZW5ndGhdOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZWFkZXIucmVhZE1CQ1NUYWJsZShzdGF0ZVRhYmxlQXJyYXksIHRvVUZhbGxiYWNrc0FycmF5LCB1bmljb2RlQ29kZVVuaXRzQXJyYXksIGZyb21Vbmljb2RlVGFibGVBcnJheSwgZnJvbVVuaWNvZGVCeXRlc0FycmF5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG1iY3NUYWJsZS5jb3VudFN0YXRlcz0oYnl0ZSloZWFkZXIuY291bnRTdGF0ZXM7CisgICAgICAgICAgICBtYmNzVGFibGUuY291bnRUb1VGYWxsYmFja3M9aGVhZGVyLmNvdW50VG9VRmFsbGJhY2tzOworICAgICAgICAgICAgbWJjc1RhYmxlLnN0YXRlVGFibGU9c3RhdGVUYWJsZUFycmF5OworICAgICAgICAgICAgbWJjc1RhYmxlLnRvVUZhbGxiYWNrcz10b1VGYWxsYmFja3NBcnJheTsKKyAgICAgICAgICAgIG1iY3NUYWJsZS51bmljb2RlQ29kZVVuaXRzPXVuaWNvZGVDb2RlVW5pdHNBcnJheTsKKyAgICAKKyAgICAgICAgICAgIG1iY3NUYWJsZS5mcm9tVW5pY29kZVRhYmxlPWZyb21Vbmljb2RlVGFibGVBcnJheTsKKyAgICAgICAgICAgIG1iY3NUYWJsZS5mcm9tVW5pY29kZUJ5dGVzPWZyb21Vbmljb2RlQnl0ZXNBcnJheTsKKyAgICAgICAgICAgIG1iY3NUYWJsZS5mcm9tVUJ5dGVzTGVuZ3RoPWhlYWRlci5mcm9tVUJ5dGVzTGVuZ3RoOworICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGNvbnZlcnRlciB2ZXJzaW9ucyA2LjEgYW5kIHVwIGNvbnRhaW4gYSB1bmljb2RlTWFzayB0aGF0IGlzCisgICAgICAgICAgICAgKiB1c2VkIGhlcmUgdG8gc2VsZWN0IHRoZSBtb3N0IGVmZmljaWVudCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggaW5mby5zaXplPXNpemVvZihVRGF0YUluZm8pOworICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggdWRhdGFfZ2V0SW5mbygoVURhdGFNZW1vcnkgKilzaGFyZWREYXRhLT5kYXRhTWVtb3J5LCAmaW5mbyk7CisgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCBpZihpbmZvLmZvcm1hdFZlcnNpb25bMF0+NiB8fCAoaW5mby5mb3JtYXRWZXJzaW9uWzBdPT02ICYmIGluZm8uZm9ybWF0VmVyc2lvblsxXT49MSkpIHsKKyAgICAgICAgICAgIC8qIG1hc2sgb2ZmIHBvc3NpYmxlIGZ1dHVyZSBleHRlbnNpb25zIHRvIGJlIHNhZmUgKi8KKyAgICAgICAgICAgIG1iY3NUYWJsZS51bmljb2RlTWFzaz0oc2hvcnQpKHN0YXRpY0RhdGEudW5pY29kZU1hc2smMyk7CisgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGZvciBvbGRlciB2ZXJzaW9ucywgYXNzdW1lIHdvcnN0IGNhc2U6IGNvbnRhaW5zIGFueXRoaW5nIHBvc3NpYmxlIChwcmV2ZW50IG92ZXItb3B0aW1pemF0aW9ucykgKi8KKyAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCBtYmNzVGFibGUtPnVuaWNvZGVNYXNrPVVDTlZfSEFTX1NVUFBMRU1FTlRBUll8VUNOVl9IQVNfU1VSUk9HQVRFUzsKKyAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IH0KKyAgICAgICAgICAgIGlmKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tbWVudCBzdWJ0cmFjdCAzMiBmb3Igc2l6ZW9mKF9NQkNTSGVhZGVyKSBhbmQgbGVuZ3RoIG9mIGJhc2VOYW1lU3RyaW5nIGFuZCAxIG51bGwgdGVybWluYXRvciBieXRlIGFsbCBhbHJlYWR5IHJlYWQ7CisgICAgICAgICAgICAgICAgICAgIC8vaW50IG5hbWVsZW4gPSBiYXNlTmFtZVN0cmluZyAhPSBudWxsPyBiYXNlTmFtZVN0cmluZy5sZW5ndGgoKSArIDE6IDA7CisgICAgICAgICAgICAgICAgICAgIC8vbWJjc1RhYmxlLmV4dEluZGV4ZXM9ZGF0YVJlYWRlci5yZWFkRXh0SW5kZXhlcyhvZmZzZXQgLSAzMiAtIG5hbWVsZW4pOworICAgICAgICAgICAgICAgICAgICBtYmNzVGFibGUuZXh0SW5kZXhlcz1yZWFkZXIucmVhZEV4dEluZGV4ZXMoMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcihpbnQgb3B0aW9ucykKKyAgICB7CisgICAgICAgIFVDb252ZXJ0ZXJNQkNTVGFibGUgbWJjc1RhYmxlOworICAgICAgICBCeXRlQnVmZmVyIGV4dEluZGV4ZXM7CisgICAgICAgIHNob3J0IG91dHB1dFR5cGU7CisgICAgICAgIGJ5dGUgbWF4Qnl0ZXNQZXJVQ2hhcjsKKyAgICAKKyAgICAgICAgbWJjc1RhYmxlPXNoYXJlZERhdGEubWJjczsKKyAgICAgICAgb3V0cHV0VHlwZT1tYmNzVGFibGUub3V0cHV0VHlwZTsKKyAgICAKKyAgICAgICAgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfREJDU19PTkxZKSB7CisgICAgICAgICAgICAvKiB0aGUgc3dhcGxmbmwgb3B0aW9uIGRvZXMgbm90IGFwcGx5LCByZW1vdmUgaXQgKi8KKyAgICAgICAgICAgIHRoaXMub3B0aW9ucz1vcHRpb25zJj1+VUNvbnZlcnRlckNvbnN0YW50cy5PUFRJT05fU1dBUF9MRk5MOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgIC8qIGRvIHRoaXMgYmVjYXVzZSBkb3VibGUtY2hlY2tlZCBsb2NraW5nIGlzIGJyb2tlbiAqLworICAgICAgICAgICAgYm9vbGVhbiBpc0NhY2hlZDsKKyAgICAKKyAgICAgICAgICAgIC8vYWdsanBvcnQ6dG9kbyB1bXR4X2xvY2soTlVMTCk7CisgICAgICAgICAgICBpc0NhY2hlZD1tYmNzVGFibGUuc3dhcExGTkxTdGF0ZVRhYmxlIT1udWxsOworICAgICAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIHVtdHhfdW5sb2NrKE5VTEwpOworICAgIAorICAgICAgICAgICAgaWYoIWlzQ2FjaGVkKSB7CisgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggaWYoIV9FQkNESUNTd2FwTEZOTChjbnYtPnNoYXJlZERhdGEsIHBFcnJvckNvZGUpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IGlmKFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vYWdsanBvcnQ6Zml4IHJldHVybjsgLyogc29tZXRoaW5nIHdlbnQgd3JvbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgb3B0aW9uIGRvZXMgbm90IGFwcGx5LCByZW1vdmUgaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggY252LT5vcHRpb25zPW9wdGlvbnMmPX5VQ05WX09QVElPTl9TV0FQX0xGTkw7CisgICAgICAgICAgICAgICAgLy9hZ2xqcG9ydDpmaXggfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmKGljdUNhbm9uaWNhbE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJnYjE4MDMwIikgPj0gMCkgeworICAgICAgICAgICAgLyogc2V0IGEgZmxhZyBmb3IgR0IgMTgwMzAgbW9kZSwgd2hpY2ggY2hhbmdlcyB0aGUgY2FsbGJhY2sgYmVoYXZpb3IgKi8KKyAgICAgICAgICAgIHRoaXMub3B0aW9uc3w9TUJDU19PUFRJT05fR0IxODAzMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBmaXggbWF4Qnl0ZXNQZXJVQ2hhciBkZXBlbmRpbmcgb24gb3V0cHV0VHlwZSBhbmQgb3B0aW9ucyBldGMuICovCisgICAgICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzJfU0lTTykgeworICAgICAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyPTM7IC8qIFNPK0RCQ1MgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICBleHRJbmRleGVzPW1iY3NUYWJsZS5leHRJbmRleGVzOworICAgICAgICBpZihleHRJbmRleGVzIT1udWxsKSB7CisgICAgICAgICAgICBtYXhCeXRlc1BlclVDaGFyPShieXRlKUdFVF9NQVhfQllURVNfUEVSX1VDSEFSKGV4dEluZGV4ZXMpOworICAgICAgICAgICAgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMl9TSVNPKSB7CisgICAgICAgICAgICAgICAgKyttYXhCeXRlc1BlclVDaGFyOyAvKiBTTyArIG11bHRpcGxlIERCQ1MgKi8KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKG1heEJ5dGVzUGVyVUNoYXI+bWF4Qnl0ZXNQZXJDaGFyKSB7CisgICAgICAgICAgICAgICAgbWF4Qnl0ZXNQZXJDaGFyPW1heEJ5dGVzUGVyVUNoYXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTUJDUyBvdXRwdXQgdHlwZXMgZm9yIGNvbnZlcnNpb25zIGZyb20gVW5pY29kZS4KKyAgICAgKiBUaGVzZSBwZXItY29udmVydGVyIHR5cGVzIGRldGVybWluZSB0aGUgc3RvcmFnZSBtZXRob2QgaW4gc3RhZ2UgMyBvZiB0aGUgbG9va3VwIHRhYmxlLAorICAgICAqIG1vc3RseSBob3cgbWFueSBieXRlcyBhcmUgc3RvcmVkIHBlciBlbnRyeS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF8xID0gMDsgICAgICAgICAgLyogMCAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzIgPSBNQkNTX09VVFBVVF8xICsgMTsgICAgICAgICAgLyogMSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzMgPSBNQkNTX09VVFBVVF8yICsgMTsgICAgICAgICAgLyogMiAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzQgPSBNQkNTX09VVFBVVF8zICsgMTsgICAgICAgICAgLyogMyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzNfRVVDPTg7ICAgIC8qIDggKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX09VVFBVVF80X0VVQyA9IE1CQ1NfT1VUUFVUXzNfRVVDICsgMTsgICAgICAvKiA5ICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfMl9TSVNPPTEyOyAgLyogYyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1VUUFVUXzJfSFogPSBNQkNTX09VVFBVVF8yX1NJU08gKyAxOyAgICAgICAvKiBkICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfRVhUX09OTFkgPSBNQkNTX09VVFBVVF8yX0haICsgMTsgICAvKiBlICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfQ09VTlQgPSBNQkNTX09VVFBVVF9FWFRfT05MWSArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19PVVRQVVRfREJDU19PTkxZPTB4ZGI7ICAvKiBydW50aW1lLW9ubHkgdHlwZSBmb3IgREJDUy1vbmx5IGhhbmRsaW5nIG9mIFNJU08gdGFibGVzICovCisgICAgCisgICAgLyogR0IgMTgwMzAgZGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAKKyAgICAvKiBoZWxwZXIgbWFjcm9zIGZvciBsaW5lYXIgdmFsdWVzIGZvciBHQiAxODAzMCBmb3VyLWJ5dGUgc2VxdWVuY2VzICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBsb25nIExJTkVBUl8xODAzMChsb25nIGEsIGxvbmcgYiwgbG9uZyBjLCBsb25nIGQpIHtyZXR1cm4gKCgoKGEpKjEwKyhiKSkqMTI2TCsoYykpKjEwTCsoZCkpO30KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGxvbmcgTElORUFSXzE4MDMwX0JBU0UgPSBMSU5FQVJfMTgwMzAoMHg4MSwgMHgzMCwgMHg4MSwgMHgzMCk7CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBsb25nIExJTkVBUihsb25nIHgpIHtyZXR1cm4gTElORUFSXzE4MDMwKHg+Pj4yNCwgKHg+Pj4xNikmMHhmZiwgKHg+Pj44KSYweGZmLCB4JjB4ZmYpO30KKyAgICAKKyAgICAvKgorICAgICAqIFNvbWUgcmFuZ2VzIG9mIEdCIDE4MDMwIHdoZXJlIGJvdGggdGhlIFVuaWNvZGUgY29kZSBwb2ludHMgYW5kIHRoZQorICAgICAqIEdCIGZvdXItYnl0ZSBzZXF1ZW5jZXMgYXJlIGNvbnRpZ3VvdXMgYW5kIGFyZSBoYW5kbGVkIGFsZ29yaXRobWljYWxseSBieQorICAgICAqIHRoZSBzcGVjaWFsIGNhbGxiYWNrIGZ1bmN0aW9ucyBiZWxvdy4KKyAgICAgKiBUaGUgdmFsdWVzIGFyZSBzdGFydCAmIGVuZCBvZiBVbmljb2RlICYgR0IgY29kZXMuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgc2luZ2xlIHN1cnJvZ2F0ZXMgYXJlIG5vdCBtYXBwZWQgYnkgR0IgMTgwMzAKKyAgICAgKiBhcyBvZiB0aGUgcmUtcmVsZWFzZWQgbWFwcGluZyB0YWJsZXMgZnJvbSAyMDAwLW5vdi0zMC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgZ2IxODAzMFJhbmdlc1tdW10gPSBuZXcgbG9uZ1svKjEzKi9dWy8qNCovXXsKKyAgICAgICAgezB4MTAwMDBMLCAweDEwRkZGRkwsIExJTkVBUigweDkwMzA4MTMwTCksIExJTkVBUigweEUzMzI5QTM1TCl9LAorICAgICAgICB7MHg5RkE2TCwgMHhEN0ZGTCwgTElORUFSKDB4ODIzNThGMzNMKSwgTElORUFSKDB4ODMzNkM3MzhMKX0sCisgICAgICAgIHsweDA0NTJMLCAweDIwMEZMLCBMSU5FQVIoMHg4MTMwRDMzMEwpLCBMSU5FQVIoMHg4MTM2QTUzMUwpfSwKKyAgICAgICAgezB4RTg2NUwsIDB4RjkyQkwsIExJTkVBUigweDgzMzZEMDMwTCksIExJTkVBUigweDg0MzA4NTM0TCl9LAorICAgICAgICB7MHgyNjQzTCwgMHgyRTgwTCwgTElORUFSKDB4ODEzN0E4MzlMKSwgTElORUFSKDB4ODEzOEZEMzhMKX0sCisgICAgICAgIHsweEZBMkFMLCAweEZFMkZMLCBMSU5FQVIoMHg4NDMwOUMzOEwpLCBMSU5FQVIoMHg4NDMxODUzN0wpfSwKKyAgICAgICAgezB4M0NFMUwsIDB4NDA1NUwsIExJTkVBUigweDgyMzFENDM4TCksIExJTkVBUigweDgyMzJBRjMyTCl9LAorICAgICAgICB7MHgzNjFCTCwgMHgzOTE3TCwgTElORUFSKDB4ODIzMEE2MzNMKSwgTElORUFSKDB4ODIzMEYyMzdMKX0sCisgICAgICAgIHsweDQ5QjhMLCAweDRDNzZMLCBMSU5FQVIoMHg4MjM0QTEzMUwpLCBMSU5FQVIoMHg4MjM0RTczM0wpfSwKKyAgICAgICAgezB4NDE2MEwsIDB4NDMzNkwsIExJTkVBUigweDgyMzJDOTM3TCksIExJTkVBUigweDgyMzJGODM3TCl9LAorICAgICAgICB7MHg0NzhFTCwgMHg0OTQ2TCwgTElORUFSKDB4ODIzM0U4MzhMKSwgTElORUFSKDB4ODIzNDk2MzhMKX0sCisgICAgICAgIHsweDQ0RDdMLCAweDQ2NEJMLCBMSU5FQVIoMHg4MjMzQTMzOUwpLCBMSU5FQVIoMHg4MjMzQzkzMUwpfSwKKyAgICAgICAgezB4RkZFNkwsIDB4RkZGRkwsIExJTkVBUigweDg0MzFBMjM0TCksIExJTkVBUigweDg0MzFBNDM5TCl9CisgICAgfTsKKyAgICAKKyAgICAvKiBiaXQgZmxhZyBmb3IgVUNvbnZlcnRlci5vcHRpb25zIGluZGljYXRpbmcgR0IgMTgwMzAgc3BlY2lhbCBoYW5kbGluZyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfT1BUSU9OX0dCMTgwMzAgPSAweDgwMDA7CisgICAgCisgICAgLyoqCisgICAgICogTUJDUyBhY3Rpb24gY29kZXMgZm9yIGNvbnZlcnNpb25zIHRvIFVuaWNvZGUuCisgICAgICogVGhlc2UgdmFsdWVzIGFyZSBpbiBiaXRzIDIzLi4yMCBvZiB0aGUgc3RhdGUgdGFibGUgZW50cmllcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX1NUQVRFX1ZBTElEX0RJUkVDVF8xNiA9IDA7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMjAgPSBNQkNTX1NUQVRFX1ZBTElEX0RJUkVDVF8xNiArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9GQUxMQkFDS19ESVJFQ1RfMTYgPSBNQkNTX1NUQVRFX1ZBTElEX0RJUkVDVF8yMCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9GQUxMQkFDS19ESVJFQ1RfMjAgPSBNQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8xNiArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9WQUxJRF8xNiA9IE1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzIwICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX1NUQVRFX1ZBTElEXzE2X1BBSVIgPSBNQkNTX1NUQVRFX1ZBTElEXzE2ICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQkNTX1NUQVRFX1VOQVNTSUdORUQgPSBNQkNTX1NUQVRFX1ZBTElEXzE2X1BBSVIgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1CQ1NfU1RBVEVfSUxMRUdBTCA9IE1CQ1NfU1RBVEVfVU5BU1NJR05FRCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUJDU19TVEFURV9DSEFOR0VfT05MWSA9IE1CQ1NfU1RBVEVfSUxMRUdBTCArIDE7CisgICAgCisgICAgLyogTWV0aG9kcyBmb3Igc3RhdGUgdGFibGUgZW50cmllcyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfVFJBTlNJVElPTihpbnQgc3RhdGUsIGludCBvZmZzZXQpIHtyZXR1cm4gKHN0YXRlPDwyNEwpfG9mZnNldDsgfQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfRklOQUwoaW50IHN0YXRlLCBpbnQgYWN0aW9uLCBpbnQgdmFsdWUpIHtyZXR1cm4gKGludCkoMHg4MDAwMDAwMHwoKGludCkoc3RhdGUpPDwyNEwpfCgoYWN0aW9uKTw8MjBMKXwodmFsdWUpKTt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIE1CQ1NfRU5UUllfSVNfVFJBTlNJVElPTihpbnQgZW50cnkpIHtyZXR1cm4gKGVudHJ5KT49MDsgfQorICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBNQkNTX0VOVFJZX0lTX0ZJTkFMKGludCBlbnRyeSkge3JldHVybiAoZW50cnkpPDA7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfVFJBTlNJVElPTl9TVEFURShpbnQgZW50cnkpIHtyZXR1cm4gKChlbnRyeSk+Pj4yNCk7fQorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IE1CQ1NfRU5UUllfVFJBTlNJVElPTl9PRkZTRVQoaW50IGVudHJ5KSB7cmV0dXJuICgoZW50cnkpJjB4ZmZmZmZmKTt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19FTlRSWV9GSU5BTF9TVEFURShpbnQgZW50cnkpIHtyZXR1cm4gKChlbnRyeSk+Pj4yNCkmMHg3Zjt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIE1CQ1NfRU5UUllfRklOQUxfSVNfVkFMSURfRElSRUNUXzE2KGludCBlbnRyeSkge3JldHVybiAoKGVudHJ5KTwweDgwMTAwMDAwKTt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oaW50IGVudHJ5KSB7cmV0dXJuICgoZW50cnkpPj4+MjApJjB4Zjt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19FTlRSWV9GSU5BTF9WQUxVRShpbnQgZW50cnkpIHtyZXR1cm4gKChlbnRyeSkmMHhmZmZmZik7IH0KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNoYXIgTUJDU19FTlRSWV9GSU5BTF9WQUxVRV8xNihpbnQgZW50cnkpIHtyZXR1cm4gKGNoYXIpKGVudHJ5KTt9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtYWNybyB2ZXJzaW9uIG9mIF9NQkNTU2luZ2xlU2ltcGxlR2V0TmV4dFVDaGFyKCkgZ2V0cyBhIGNvZGUgcG9pbnQgZnJvbSBhIGJ5dGUuCisgICAgICogSXQgd29ya3MgZm9yIHNpbmdsZS1ieXRlLCBzaW5nbGUtc3RhdGUgY29kZXBhZ2VzIHRoYXQgb25seSBtYXAKKyAgICAgKiB0byBhbmQgZnJvbSBCTVAgY29kZSBwb2ludHMsIGFuZCBpdCBhbHdheXMKKyAgICAgKiByZXR1cm5zIGZhbGxiYWNrIHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNoYXIgTUJDU19TSU5HTEVfU0lNUExFX0dFVF9ORVhUX0JNUChVQ29udmVydGVyTUJDU1RhYmxlIG1iY3MsIGZpbmFsIGludCBiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYobWJjcy5zdGF0ZVRhYmxlWzBdW2IgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTS10pOworICAgIH0KKyAgICAKKyAgICAvKiBzaW5nbGUtYnl0ZSBmcm9tVW5pY29kZTogZ2V0IHRoZSAxNi1iaXQgcmVzdWx0IHdvcmQgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNoYXIgTUJDU19TSU5HTEVfUkVTVUxUX0ZST01fVShjaGFyW10gdGFibGUsIGJ5dGVbXSByZXN1bHRzLCBpbnQgYykgCisgICAgeworICAgICAgICBpbnQgaTEgPSB0YWJsZVtjPj4+MTBdICsoKGM+Pj40KSYweDNmKTsKKyAgICAgICAgaW50IGkgPSAyKiAodGFibGVbaTFdICsoYyYweGYpKTsgLy8gdXNlZCBhcyBpbmRleCBpbnRvIGJ5dGVbXSBhcnJheSB0cmVhdGVkIGFzIGNoYXJbXSBhcnJheQorICAgICAgICByZXR1cm4gKGNoYXIpKCgocmVzdWx0c1tpXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSA8PDgpIHwgKHJlc3VsdHNbaSsxXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgfQorICAgIAorICAgIC8qIG11bHRpLWJ5dGUgZnJvbVVuaWNvZGU6IGdldCB0aGUgMzItYml0IHN0YWdlIDIgZW50cnkgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX1NUQUdFXzJfRlJPTV9VKGNoYXJbXSB0YWJsZSwgaW50IGMpCisgICAgeworICAgICAgICBpbnQgaSA9IDIgKiAodGFibGVbKGMpPj4+MTBdICsoKGM+Pj40KSYweDNmKSk7IC8vIDJ4IGJlY2F1c2UgdXNlZCBhcyBpbmRleCBpbnRvIGNoYXJbXSBhcnJheSB0cmVhdGVkIGFzIGludFtdIGFycmF5CisgICAgICAgIHJldHVybiAoKHRhYmxlW2ldICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9TSE9SVF9NQVNLKSA8PDE2KSB8ICh0YWJsZVtpKzFdICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9TSE9SVF9NQVNLKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIE1CQ1NfRlJPTV9VX0lTX1JPVU5EVFJJUChpbnQgc3RhZ2UyRW50cnksIGludCBjKSB7cmV0dXJuICggKChzdGFnZTJFbnRyeSkgJiAoMTw8ICgxNisoKGMpJjB4ZikpICkpICE9MCk7fQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgY2hhciBNQkNTX1ZBTFVFXzJfRlJPTV9TVEFHRV8yKGJ5dGVbXSBieXRlcywgaW50IHN0YWdlMkVudHJ5LCBpbnQgYykKKyAgICB7CisgICAgICAgIGludCBpID0gMiAqICgxNiooKGNoYXIpc3RhZ2UyRW50cnkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX1NIT1JUX01BU0spKyhjJjB4ZikpOworICAgICAgICByZXR1cm4gKGNoYXIpKCgoYnl0ZXNbaV0gJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykgPDw4KSB8IChieXRlc1tpKzFdICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgTUJDU19WQUxVRV80X0ZST01fU1RBR0VfMihieXRlW10gYnl0ZXMsIGludCBzdGFnZTJFbnRyeSwgaW50IGMpCisgICAgeworICAgICAgICBpbnQgaSA9IDQgKiAoMTYqKChjaGFyKXN0YWdlMkVudHJ5ICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9TSE9SVF9NQVNLKSsoYyYweGYpKTsKKyAgICAgICAgcmV0dXJuICgoYnl0ZXNbaV0gJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykgPDwyNCkgfCAKKyAgICAgICAgICAgICgoYnl0ZXNbaSsxXSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSA8PDE2KSB8IAorICAgICAgICAgICAgKChieXRlc1tpKzJdICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spIDw8OCkgfCAKKyAgICAgICAgICAgIChieXRlc1tpKzNdICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBNQkNTX1BPSU5URVJfM19GUk9NX1NUQUdFXzIoYnl0ZVtdIGJ5dGVzLCBpbnQgc3RhZ2UyRW50cnksIGludCBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgoMTYqKChjaGFyKShzdGFnZTJFbnRyeSkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX1NIT1JUX01BU0spKygoYykmMHhmKSkqMyk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tVUNvbnZlcnRlckV4dC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfSU5ERVhFU19MRU5HVEggPSAwOyAgICAgICAgICAgIC8qIDAgKi8KKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9UT19VX0lOREVYID0gRVhUX0lOREVYRVNfTEVOR1RIICsgMTsgICAgICAgICAgICAgICAgLyogMSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9UT19VX0xFTkdUSCA9IEVYVF9UT19VX0lOREVYICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfVE9fVV9VQ0hBUlNfSU5ERVggPSBFWFRfVE9fVV9MRU5HVEggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9UT19VX1VDSEFSU19MRU5HVEggPSBFWFRfVE9fVV9VQ0hBUlNfSU5ERVggKyAxOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9VQ0hBUlNfSU5ERVggPSBFWFRfVE9fVV9VQ0hBUlNfTEVOR1RIICsgMTsgICAgICAgLyogNSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfVkFMVUVTX0lOREVYID0gRVhUX0ZST01fVV9VQ0hBUlNfSU5ERVggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfTEVOR1RIID0gRVhUX0ZST01fVV9WQUxVRVNfSU5ERVggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfQllURVNfSU5ERVggPSBFWFRfRlJPTV9VX0xFTkdUSCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9CWVRFU19MRU5HVEggPSBFWFRfRlJPTV9VX0JZVEVTX0lOREVYICsgMTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfU1RBR0VfMTJfSU5ERVggPSBFWFRfRlJPTV9VX0JZVEVTX0xFTkdUSCArIDE7ICAgICAvKiAxMCAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfU1RBR0VfMV9MRU5HVEggPSBFWFRfRlJPTV9VX1NUQUdFXzEyX0lOREVYICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzEyX0xFTkdUSCA9IEVYVF9GUk9NX1VfU1RBR0VfMV9MRU5HVEggKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GUk9NX1VfU1RBR0VfM19JTkRFWCA9IEVYVF9GUk9NX1VfU1RBR0VfMTJfTEVOR1RIICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzNfTEVOR1RIID0gRVhUX0ZST01fVV9TVEFHRV8zX0lOREVYICsgMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFWFRfRlJPTV9VX1NUQUdFXzNCX0lOREVYID0gRVhUX0ZST01fVV9TVEFHRV8zX0xFTkdUSCArIDE7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX0ZST01fVV9TVEFHRV8zQl9MRU5HVEggPSBFWFRfRlJPTV9VX1NUQUdFXzNCX0lOREVYICsgMTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9DT1VOVF9CWVRFUyA9IEVYVF9GUk9NX1VfU1RBR0VfM0JfTEVOR1RIICsgMTsgICAgICAgICAgICAgICAvKiAxNyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9DT1VOVF9VQ0hBUlMgPSBFWFRfQ09VTlRfQllURVMgKyAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9GTEFHUyA9IEVYVF9DT1VOVF9VQ0hBUlMgKyAxOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVhUX1JFU0VSVkVEX0lOREVYID0gRVhUX0ZMQUdTICsgMTsgICAgICAgICAgICAvKiAyMCwgbW92ZXMgd2l0aCBhZGRpdGlvbmFsIGluZGV4ZXMgKi8KKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9TSVpFPTMxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVYVF9JTkRFWEVTX01JTl9MRU5HVEg9MzI7CisgICAgCisgICAgLyogdG9Vbmljb2RlIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX0JZVEVfU0hJRlQgPSAyNDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX1ZBTFVFX01BU0sgPSAweGZmZmZmZjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX01JTl9DT0RFX1BPSU5UID0gMHgxZjAwMDA7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9NQVhfQ09ERV9QT0lOVCA9IDB4MmZmZmZmOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRPX1VfUk9VTkRUUklQX0ZMQUcgPSAoMTw8MjMpOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRPX1VfSU5ERVhfTUFTSyA9IDB4M2ZmZmY7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVE9fVV9MRU5HVEhfU0hJRlQgPSAxODsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUT19VX0xFTkdUSF9PRkZTRVQgPSAxMjsKKyAgICAKKyAgICAvKiBtYXhpbXVtIG51bWJlciBvZiBpbmRleGVkIFVDaGFycyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9VQ0hBUlMgPSAxOTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX0dFVF9CWVRFKGludCB3b3JkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdvcmQ+Pj5UT19VX0JZVEVfU0hJRlQ7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IFRPX1VfR0VUX1ZBTFVFKGludCB3b3JkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdvcmQmVE9fVV9WQUxVRV9NQVNLOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGJvb2xlYW4gVE9fVV9JU19ST1VORFRSSVAoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZSZUT19VX1JPVU5EVFJJUF9GTEFHKSE9MDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIFRPX1VfSVNfUEFSVElBTChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gKHZhbHVlJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spPFRPX1VfTUlOX0NPREVfUE9JTlQ7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IFRPX1VfR0VUX1BBUlRJQUxfSU5ERVgoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX01BU0tfUk9VTkRUUklQKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZSZ+VE9fVV9ST1VORFRSSVBfRkxBRzsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9NQUtFX1dPUkQoYnl0ZSBiLCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gKChiJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8VE9fVV9CWVRFX1NISUZUKXx2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLyogdXNlIGFmdGVyIG1hc2tpbmcgb2ZmIHRoZSByb3VuZHRyaXAgZmxhZyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBUT19VX0lTX0NPREVfUE9JTlQoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKTw9VE9fVV9NQVhfQ09ERV9QT0lOVDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgVE9fVV9HRVRfQ09ERV9QT0lOVChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gKGludCkoKHZhbHVlJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spLVRPX1VfTUlOX0NPREVfUE9JTlQpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX0dFVF9JTkRFWChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWUmVE9fVV9JTkRFWF9NQVNLOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBUT19VX0dFVF9MRU5HVEgoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZT4+PlRPX1VfTEVOR1RIX1NISUZUKS1UT19VX0xFTkdUSF9PRkZTRVQ7CisgICAgfQorICAgIAorICAgIC8qIGZyb21Vbmljb2RlIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyogbW9zdCB0cmllIGNvbnN0YW50cyBhcmUgc2hhcmVkIHdpdGggdWNudm1iY3MuaCAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNUQUdFXzJfTEVGVF9TSElGVCA9IDI7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1RBR0VfM19HUkFOVUxBUklUWSA9IDQ7CisgICAgCisgICAgLyogdHJpZSBhY2Nlc3MsIHJldHVybnMgdGhlIHN0YWdlIDMgdmFsdWU9aW5kZXggdG8gc3RhZ2UgM2I7IHMxSW5kZXg9Yz4+MTAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBGUk9NX1UoQ2hhckJ1ZmZlciBzdGFnZTEyLCBDaGFyQnVmZmVyIHN0YWdlMywgaW50IHMxSW5kZXgsIGludCBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YWdlMy5nZXQoc3RhZ2UzLnBvc2l0aW9uKCkgKyAoKGludClzdGFnZTEyLmdldCggc3RhZ2UxMi5wb3NpdGlvbigpICsgKHN0YWdlMTIuZ2V0KHN0YWdlMTIucG9zaXRpb24oKStzMUluZGV4KSArKChjPj4+NCkmMHgzZikpICk8PFNUQUdFXzJfTEVGVF9TSElGVCkgKyhjJjB4ZikgKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRlJPTV9VX0xFTkdUSF9TSElGVCA9IDI0OworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEZST01fVV9ST1VORFRSSVBfRkxBRyA9IDE8PDMxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEZST01fVV9SRVNFUlZFRF9NQVNLID0gMHg2MDAwMDAwMDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBGUk9NX1VfREFUQV9NQVNLID0gMHhmZmZmZmY7CisgICAgCisgICAgLyogc3BlY2lhbCB2YWx1ZSBmb3IgIm5vIG1hcHBpbmciIHRvIDxzdWJjaGFyMT4gKGltcG9zc2libGUgcm91bmR0cmlwIHRvIDAgYnl0ZXMsIHZhbHVlIDAxKSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEZST01fVV9TVUJDSEFSMSA9IDB4ODAwMDAwMDE7CisgICAgCisgICAgLyogYXQgbW9zdCAzIGJ5dGVzIGluIHRoZSBsb3dlciBwYXJ0IG9mIHRoZSB2YWx1ZSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEZST01fVV9NQVhfRElSRUNUX0xFTkdUSCA9IDM7CisgICAgCisgICAgLyogbWF4aW11bSBudW1iZXIgb2YgaW5kZXhlZCBieXRlcyAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9CWVRFUyA9IDB4MWY7CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIEZST01fVV9JU19QQVJUSUFMKGludCB2YWx1ZSkge3JldHVybiAodmFsdWU+Pj5GUk9NX1VfTEVOR1RIX1NISUZUKT09MDt9CisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgRlJPTV9VX0dFVF9QQVJUSUFMX0lOREVYKGludCB2YWx1ZSkge3JldHVybiB2YWx1ZTt9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBib29sZWFuIEZST01fVV9JU19ST1VORFRSSVAoaW50IHZhbHVlKSB7cmV0dXJuICh2YWx1ZSZGUk9NX1VfUk9VTkRUUklQX0ZMQUcpIT0wO30KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBGUk9NX1VfTUFTS19ST1VORFRSSVAoaW50IHZhbHVlKSB7cmV0dXJuIHZhbHVlJn5GUk9NX1VfUk9VTkRUUklQX0ZMQUc7fQorICAgIAorICAgIC8qIHVzZSBhZnRlciBtYXNraW5nIG9mZiB0aGUgcm91bmR0cmlwIGZsYWcgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBGUk9NX1VfR0VUX0xFTkdUSChpbnQgdmFsdWUpIHtyZXR1cm4gKHZhbHVlPj4+RlJPTV9VX0xFTkdUSF9TSElGVCkmTUFYX0JZVEVTO30KKyAgICAKKyAgICAvKiBnZXQgYnl0ZXMgb3IgYnl0ZXMgaW5kZXggKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBGUk9NX1VfR0VUX0RBVEEoaW50IHZhbHVlKSB7cmV0dXJuIHZhbHVlJkZST01fVV9EQVRBX01BU0s7fQorICAgIAorICAgIC8qIGdldCB0aGUgcG9pbnRlciB0byBhbiBleHRlbnNpb24gYXJyYXkgZnJvbSBpbmRleGVzW2luZGV4XSAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgQnVmZmVyIEFSUkFZKEJ5dGVCdWZmZXIgaW5kZXhlcywgaW50IGluZGV4LCBDbGFzcyBpdGVtVHlwZSkKKyAgICB7CisgICAgICAgIGludCBvbGRwb3MgPSBpbmRleGVzLnBvc2l0aW9uKCk7CisgICAgICAgIEJ1ZmZlciBiOworICAgIAorICAgICAgICBpbmRleGVzLnBvc2l0aW9uKGluZGV4ZXMuZ2V0SW50KGluZGV4KjQpKTsKKyAgICAgICAgaWYoaXRlbVR5cGUgPT0gaW50LmNsYXNzKQorICAgICAgICAgICAgYiA9IGluZGV4ZXMuYXNJbnRCdWZmZXIoKTsKKyAgICAgICAgZWxzZSBpZihpdGVtVHlwZSA9PSBzaG9ydC5jbGFzcykKKyAgICAgICAgICAgIGIgPSBpbmRleGVzLmFzU2hvcnRCdWZmZXIoKTsKKyAgICAgICAgZWxzZSBpZihpdGVtVHlwZSA9PSBieXRlLmNsYXNzKQorICAgICAgICAgICAgYiA9IGluZGV4ZXMuc2xpY2UoKTsKKyAgICAgICAgZWxzZSBpZihpdGVtVHlwZSA9PSBjaGFyLmNsYXNzKQorICAgICAgICAgICAgYiA9IGluZGV4ZXMuYXNDaGFyQnVmZmVyKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGIgPSBpbmRleGVzLnNsaWNlKCk7CisgICAgICAgIGluZGV4ZXMucG9zaXRpb24ob2xkcG9zKTsKKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IEdFVF9NQVhfQllURVNfUEVSX1VDSEFSKEJ5dGVCdWZmZXIgaW5kZXhlcykgCisgICAgeworICAgICAgICBpbmRleGVzLnBvc2l0aW9uKDApOyAgICAgICAgCisgICAgICAgIHJldHVybiBpbmRleGVzLmdldEludChFWFRfQ09VTlRfQllURVMpJjB4ZmY7IAorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEByZXR1cm4gaW5kZXggb2YgdGhlIFVDaGFyLCBpZiBmb3VuZDsgZWxzZSA8MAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IGZpbmRGcm9tVShDaGFyQnVmZmVyIGZyb21VU2VjdGlvbiwgaW50IGxlbmd0aCwgY2hhciB1KQorICAgIHsKKyAgICAgICAgaW50IGksIHN0YXJ0LCBsaW1pdDsKKyAgICAKKyAgICAgICAgLyogYmluYXJ5IHNlYXJjaCAqLworICAgICAgICBzdGFydD0wOworICAgICAgICBsaW1pdD1sZW5ndGg7CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgaT1saW1pdC1zdGFydDsKKyAgICAgICAgICAgIGlmKGk8PTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogZG9uZSAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogc3RhcnQ8bGltaXQtMSAqLworICAgIAorICAgICAgICAgICAgaWYoaTw9NCkgeworICAgICAgICAgICAgICAgIC8qIGxpbmVhciBzZWFyY2ggZm9yIHRoZSBsYXN0IHBhcnQgKi8KKyAgICAgICAgICAgICAgICBpZih1PD1mcm9tVVNlY3Rpb24uZ2V0KGZyb21VU2VjdGlvbi5wb3NpdGlvbigpICsgc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZigrK3N0YXJ0PGxpbWl0ICYmIHU8PWZyb21VU2VjdGlvbi5nZXQoZnJvbVVTZWN0aW9uLnBvc2l0aW9uKCkgK3N0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoKytzdGFydDxsaW1pdCAmJiB1PD1mcm9tVVNlY3Rpb24uZ2V0KGZyb21VU2VjdGlvbi5wb3NpdGlvbigpICsgc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBhbHdheXMgYnJlYWsgYXQgc3RhcnQ9PWxpbWl0LTEgKi8KKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaT0oc3RhcnQrbGltaXQpLzI7CisgICAgICAgICAgICBpZih1PGZyb21VU2VjdGlvbi5nZXQoZnJvbVVTZWN0aW9uLnBvc2l0aW9uKCkgK2kpKSB7CisgICAgICAgICAgICAgICAgbGltaXQ9aTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhcnQ9aTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBkaWQgd2UgcmVhbGx5IGZpbmQgaXQ/ICovCisgICAgICAgIGlmKHN0YXJ0PGxpbWl0ICYmIHU9PWZyb21VU2VjdGlvbi5nZXQoZnJvbVVTZWN0aW9uLnBvc2l0aW9uKCkgK3N0YXJ0KSkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiBub3QgZm91bmQgKi8KKyAgICAgICAgfQorICAgIH0gICAgCisgICAgCisgICAgLyoKKyAgICAgKiBAcmV0dXJuIGxvb2t1cCB2YWx1ZSBmb3IgdGhlIGJ5dGUsIGlmIGZvdW5kOyBlbHNlIDAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBmaW5kVG9VKEludEJ1ZmZlciB0b1VTZWN0aW9uLCBpbnQgbGVuZ3RoLCBzaG9ydCBieXQpCisgICAgeworICAgICAgICBsb25nIHdvcmQwLCB3b3JkOworICAgICAgICBpbnQgaSwgc3RhcnQsIGxpbWl0OworICAgIAorICAgICAgICAvKiBjaGVjayB0aGUgaW5wdXQgYnl0ZSBhZ2FpbnN0IHRoZSBsb3dlc3QgYW5kIGhpZ2hlc3Qgc2VjdGlvbiBieXRlcyAqLworICAgICAgICAgICAgLy9hZ2xqcG9ydDpjb21tZW50IGluc3RlYWQgb2YgcmVjZWl2aW5nIGEgc3RhcnQgcG9zaXRpb24gcGFyYW1ldGVyIGZvciB0b1VTZWN0aW9uIHdlJ2xsIHJlbHkgb24gaXRzIHBvc2l0aW9uIHByb3BlcnR5CisgICAgICAgIHN0YXJ0ID0gVE9fVV9HRVRfQllURSh0b1VTZWN0aW9uLmdldCh0b1VTZWN0aW9uLnBvc2l0aW9uKCkpKTsKKyAgICAgICAgbGltaXQgPSBUT19VX0dFVF9CWVRFKHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKSArIGxlbmd0aC0xKSk7CisgICAgICAgIGlmKGJ5dDxzdGFydCB8fCBsaW1pdDxieXQpIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvKiB0aGUgYnl0ZSBpcyBvdXQgb2YgcmFuZ2UgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihsZW5ndGg9PSgobGltaXQtc3RhcnQpKzEpKSB7CisgICAgICAgICAgICAvKiBkaXJlY3QgYWNjZXNzIG9uIGEgbGluZWFyIGFycmF5ICovCisgICAgICAgICAgICByZXR1cm4gVE9fVV9HRVRfVkFMVUUodG9VU2VjdGlvbi5nZXQodG9VU2VjdGlvbi5wb3NpdGlvbigpK2J5dC1zdGFydCkpOyAvKiBjb3VsZCBiZSAwICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogd29yZDAgaXMgc3VpdGFibGUgZm9yIDw9dG9VU2VjdGlvbltdIGNvbXBhcmlzb24sIHdvcmQgZm9yIDx0b1VTZWN0aW9uW10gKi8KKyAgICAgICAgd29yZDAgPSBUT19VX01BS0VfV09SRCgoYnl0ZSlieXQsIDApICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSzsKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogU2hpZnQgYnl0ZSBvbmNlIGluc3RlYWQgb2YgZWFjaCBzZWN0aW9uIHdvcmQgYW5kIGFkZCAweGZmZmZmZi4KKyAgICAgICAgICogV2Ugd2lsbCBjb21wYXJlIHRoZSBzaGlmdGVkL2FkZGVkIGJ5dGUgKGJiZmZmZmZmKSBhZ2FpbnN0CisgICAgICAgICAqIHNlY3Rpb24gd29yZHMgd2hpY2ggaGF2ZSBieXRlIHZhbHVlcyBpbiB0aGUgc2FtZSBiaXQgcG9zaXRpb24uCisgICAgICAgICAqIElmIGFuZCBvbmx5IGlmIGJ5dGUgYmIgPCBzZWN0aW9uIGJ5dGUgc3MgdGhlbiBiYmZmZmZmZjxzc3Z2dnZ2dgorICAgICAgICAgKiBmb3IgYWxsIHY9MC4uZgorICAgICAgICAgKiBzbyB3ZSBuZWVkIG5vdCBtYXNrIG9mZiB0aGUgbG93ZXIgMjQgYml0cyBvZiBlYWNoIHNlY3Rpb24gd29yZC4KKyAgICAgICAgICovCisgICAgICAgIHdvcmQgPSB3b3JkMHxUT19VX1ZBTFVFX01BU0s7CisgICAgCisgICAgICAgIC8qIGJpbmFyeSBzZWFyY2ggKi8KKyAgICAgICAgc3RhcnQgPSAwOworICAgICAgICBsaW1pdCA9IGxlbmd0aDsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBpPWxpbWl0LXN0YXJ0OworICAgICAgICAgICAgaWYoaTw9MSkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBkb25lICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBzdGFydDxsaW1pdC0xICovCisgICAgCisgICAgICAgICAgICBpZihpPD00KSB7CisgICAgICAgICAgICAgICAgLyogbGluZWFyIHNlYXJjaCBmb3IgdGhlIGxhc3QgcGFydCAqLworICAgICAgICAgICAgICAgIGlmKHdvcmQwPD0odG9VU2VjdGlvbi5nZXQodG9VU2VjdGlvbi5wb3NpdGlvbigpK3N0YXJ0KSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZigrK3N0YXJ0PGxpbWl0ICYmIHdvcmQwPD0odG9VU2VjdGlvbi5nZXQodG9VU2VjdGlvbi5wb3NpdGlvbigpK3N0YXJ0KSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoKytzdGFydDxsaW1pdCAmJiB3b3JkMDw9KHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStzdGFydCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIGFsd2F5cyBicmVhayBhdCBzdGFydD09bGltaXQtMSAqLworICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpPShzdGFydCtsaW1pdCkvMjsKKyAgICAgICAgICAgIGlmKHdvcmQ8KHRvVVNlY3Rpb24uZ2V0KHRvVVNlY3Rpb24ucG9zaXRpb24oKStpKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSkgeworICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0PWk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogZGlkIHdlIHJlYWxseSBmaW5kIGl0PyAqLworICAgICAgICBpZihzdGFydDxsaW1pdCAmJiBieXQ9PVRPX1VfR0VUX0JZVEUoKGludCkod29yZD0odG9VU2VjdGlvbi5nZXQodG9VU2VjdGlvbi5wb3NpdGlvbigpK3N0YXJ0KSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSkpKSB7CisgICAgICAgICAgICByZXR1cm4gVE9fVV9HRVRfVkFMVUUoKGludCl3b3JkKTsgLyogbmV2ZXIgMCAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8qIG5vdCBmb3VuZCAqLworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogVFJVRSBpZiBub3QgYW4gU0kvU08gc3RhdGVmdWwgY29udmVydGVyLAorICAgICAqIG9yIGlmIHRoZSBtYXRjaCBsZW5ndGggZml0cyB3aXRoIHRoZSBjdXJyZW50IGNvbnZlcnRlciBzdGF0ZQorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiBUT19VX1ZFUklGWV9TSVNPX01BVENIKGJ5dGUgc2lzb1N0YXRlLCBpbnQgbWF0Y2gpCisgICAgeworICAgICAgICByZXR1cm4gc2lzb1N0YXRlPDAgfHwgKHNpc29TdGF0ZT09MCkgPT0gKG1hdGNoPT0xKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBnZXQgdGhlIFNJL1NPIHRvVSBzdGF0ZSAoc3RhdGUgMCBpcyBmb3IgU0JDUywgMSBmb3IgREJDUyksCisgICAgICogb3IgMSBmb3IgREJDUy1vbmx5LAorICAgICAqIG9yIC0xIGlmIHRoZSBjb252ZXJ0ZXIgaXMgbm90IFNJL1NPIHN0YXRlZnVsCisgICAgICoKKyAgICAgKiBOb3RlOiBGb3IgU0kvU08gc3RhdGVmdWwgY29udmVydGVycyBnZXR0aW5nIGhlcmUsCisgICAgICogY252LT5tb2RlPT0wIGlzIGVxdWl2YWxlbnQgdG8gZmlyc3RMZW5ndGg9PTEuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBpbnQgU0lTT19TVEFURShVQ29udmVydGVyU2hhcmVkRGF0YSBzaGFyZWREYXRhLCBpbnQgbW9kZSkKKyAgICB7CisgICAgICAgcmV0dXJuIHNoYXJlZERhdGEubWJjcy5vdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8yX1NJU08gPyAoYnl0ZSltb2RlIDoKKyAgICAgICAgIHNoYXJlZERhdGEubWJjcy5vdXRwdXRUeXBlPT1NQkNTX09VVFBVVF9EQkNTX09OTFkgPyAxIDogLTE7CisgICAgfQorICAgIAorICAgIGNsYXNzIENoYXJzZXREZWNvZGVyTUJDUyBleHRlbmRzIENoYXJzZXREZWNvZGVySUNVeworCisgICAgICAgIENoYXJzZXREZWNvZGVyTUJDUyhDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcyk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZGVjb2RlTG9vcChCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0W10gY3IgPSB7Q29kZXJSZXN1bHQuVU5ERVJGTE9XfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICBpbnQgc3RhdGVUYWJsZVtdWy8qMjU2Ki9dOworICAgICAgICAgICAgY2hhcltdIHVuaWNvZGVDb2RlVW5pdHM7CisgICAgCisgICAgICAgICAgICBpbnQgb2Zmc2V0OworICAgICAgICAgICAgYnl0ZSBzdGF0ZTsKKyAgICAgICAgICAgIGludCBieXRlSW5kZXg7CisgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXg7CisgICAgCisgICAgICAgICAgICBpbnQgZW50cnkgPSAwOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgYnl0ZSBhY3Rpb247CisgICAgICAgIAorICAgICAgICAgICAgaWYocHJlVG9VTGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIHBhc3Mgc291cmNlSW5kZXg9LTEgYmVjYXVzZSB3ZSBjb250aW51ZSBmcm9tIGFuIGVhcmxpZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgICogaW4gdGhlIGZ1dHVyZSwgdGhpcyBtYXkgY2hhbmdlIHdpdGggY29udGludW91cyBvZmZzZXRzCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgY3JbMF0gPSBjb250aW51ZU1hdGNoVG9VKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCAtMSwgZmx1c2gpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkgfHwgcHJlVG9VTGVuZ3RoPDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihzaGFyZWREYXRhLm1iY3MuY291bnRTdGF0ZXM9PTEpIHsKKyAgICAgICAgICAgICAgICBpZigoc2hhcmVkRGF0YS5tYmNzLnVuaWNvZGVNYXNrJlVDb252ZXJ0ZXJDb25zdGFudHMuSEFTX1NVUFBMRU1FTlRBUlkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBjbnZNQkNTU2luZ2xlVG9CTVBXaXRoT2Zmc2V0cyhzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgZmx1c2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBjbnZNQkNTU2luZ2xlVG9Vbmljb2RlV2l0aE9mZnNldHMoc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogc2V0IHVwIHRoZSBsb2NhbCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAgICAgc3RhdGVUYWJsZSA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTFN0YXRlVGFibGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLnN0YXRlVGFibGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1bmljb2RlQ29kZVVuaXRzID0gc2hhcmVkRGF0YS5tYmNzLnVuaWNvZGVDb2RlVW5pdHM7CisgICAgICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgZnJvbSBVQ29udmVydGVyICovCisgICAgICAgICAgICBvZmZzZXQgPSAoaW50KXRvVW5pY29kZVN0YXR1czsKKyAgICAgICAgICAgIGJ5dGVJbmRleCA9IHRvVUxlbmd0aDsKKyAgICAgICAgICAgIGJ5dGVzID0gdG9VQnl0ZXNBcnJheTsKKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBpZiB3ZSBhcmUgaW4gdGhlIFNCQ1Mgc3RhdGUgZm9yIGEgREJDUy1vbmx5IGNvbnZlcnRlciwKKyAgICAgICAgICAgICAqIHRoZW4gbG9hZCB0aGUgREJDUyBzdGF0ZSBmcm9tIHRoZSBNQkNTIGRhdGEKKyAgICAgICAgICAgICAqIChkYmNzT25seVN0YXRlPT0wIGlmIGl0IGlzIG5vdCBhIERCQ1Mtb25seSBjb252ZXJ0ZXIpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKChzdGF0ZT0oYnl0ZSkobW9kZSkpPT0wKSB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBzaGFyZWREYXRhLm1iY3MuZGJjc09ubHlTdGF0ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIHNvdXJjZUluZGV4PS0xIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBiZWdhbiBpbiB0aGUgcHJldmlvdXMgYnVmZmVyICovCisgICAgICAgICAgICBzb3VyY2VJbmRleCA9IGJ5dGVJbmRleD09MCA/IDAgOiAtMTsKKyAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IDA7CisgICAgICAgIAorICAgICAgICAgICAgLyogY29udmVyc2lvbiBsb29wICovCisgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBUaGlzIGZvbGxvd2luZyB0ZXN0IGlzIHRvIHNlZSBpZiBhdmFpbGFibGUgaW5wdXQgd291bGQgb3ZlcmZsb3cgdGhlIG91dHB1dC4KKyAgICAgICAgICAgICAgICAgKiBJdCBkb2VzIG5vdCBjYXRjaCBvdXRwdXQgb2YgbW9yZSB0aGFuIG9uZSBjb2RlIHVuaXQgdGhhdAorICAgICAgICAgICAgICAgICAqIG92ZXJmbG93cyBhcyBhIHJlc3VsdCBvZiBhIHN1cnJvZ2F0ZSBwYWlyIG9yIGNhbGxiYWNrIG91dHB1dAorICAgICAgICAgICAgICAgICAqIGZyb20gdGhlIGxhc3Qgc291cmNlIGJ5dGUuCisgICAgICAgICAgICAgICAgICogVGhlcmVmb3JlLCB0aG9zZSBzaXR1YXRpb25zIGFsc28gdGVzdCBmb3Igb3ZlcmZsb3dzIGFuZCB3aWxsCisgICAgICAgICAgICAgICAgICogdGhlbiBicmVhayB0aGUgbG9vcCwgdG9vLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihieXRlSW5kZXg9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogb3B0aW1pemVkIGxvb3AgZm9yIDEvMi1ieXRlIGlucHV0IGFuZCBCTVAgb3V0cHV0ICovCisgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IHN0YXRlVGFibGVbc3RhdGVdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTS107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoTUJDU19FTlRSWV9JU19UUkFOU0lUSU9OKGVudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChieXRlKU1CQ1NfRU5UUllfVFJBTlNJVElPTl9TVEFURShlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IE1CQ1NfRU5UUllfVFJBTlNJVElPTl9PRkZTRVQoZW50cnkpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkNTX0VOVFJZX0lTX0ZJTkFMKGVudHJ5PXN0YXRlVGFibGVbc3RhdGVdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTS10pICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkNTX0VOVFJZX0ZJTkFMX0FDVElPTihlbnRyeSk9PU1CQ1NfU1RBVEVfVkFMSURfMTYgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjPXVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0K01CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpXSk8MHhmZmZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoYnl0ZSlNQkNTX0VOVFJZX0ZJTkFMX1NUQVRFKGVudHJ5KTsgLyogdHlwaWNhbGx5IDAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBzdGF0ZSBhbmQgbGVhdmUgdGhlIG9wdGltaXplZCBsb29wICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1swXSA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfRklOQUxfSVNfVkFMSURfRElSRUNUXzE2KGVudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7IC8qIHR5cGljYWxseSAwICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVhdmUgdGhlIG9wdGltaXplZCBsb29wICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIC8qIG9mZnNldHMhPU5VTEwgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OnRvZG8gc2VlIHVjbnZtYmNzLmMgZm9yIGRlbGV0ZWQgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IHN0YXRlVGFibGVbc3RhdGVdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfSVNfVFJBTlNJVElPTihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoYnl0ZSlNQkNTX0VOVFJZX1RSQU5TSVRJT05fU1RBVEUoZW50cnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBNQkNTX0VOVFJZX1RSQU5TSVRJT05fT0ZGU0VUKGVudHJ5KTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkNTX0VOVFJZX0lTX0ZJTkFMKGVudHJ5PXN0YXRlVGFibGVbc3RhdGVdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCldKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkNTX0VOVFJZX0ZJTkFMX0FDVElPTihlbnRyeSk9PU1CQ1NfU1RBVEVfVkFMSURfMTYgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGM9dW5pY29kZUNvZGVVbml0c1tvZmZzZXQrTUJDU19FTlRSWV9GSU5BTF9WQUxVRV8xNihlbnRyeSldKTwweGZmZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSAobmV4dFNvdXJjZUluZGV4Kz0yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7IC8qIHR5cGljYWxseSAwICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgc3RhdGUgYW5kIGxlYXZlIHRoZSBvcHRpbWl6ZWQgbG9vcCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1swXSA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfRklOQUxfSVNfVkFMSURfRElSRUNUXzE2KGVudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSArK25leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7IC8qIHR5cGljYWxseSAwICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVhdmUgdGhlIG9wdGltaXplZCBsb29wICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHRoZXNlIHRlc3RzIGFuZCBicmVhayBzdGF0ZW1lbnRzIGNvdWxkIGJlIHB1dCBpbnNpZGUgdGhlIGxvb3AKKyAgICAgICAgICAgICAgICAgICAgICogaWYgQyBoYWQgImJyZWFrIG91dGVyTG9vcCIgbGlrZSBKYXZhCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VBcnJheUluZGV4Pj1zb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICArK25leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgYnl0ZXNbYnl0ZUluZGV4KytdID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgICAgICBlbHNlIC8qIGJ5dGVJbmRleD4wICovIHsKKyAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGVudHJ5ID0gc3RhdGVUYWJsZVtzdGF0ZV1bKGJ5dGVzW2J5dGVJbmRleCsrXSA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKSkgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTS107CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKE1CQ1NfRU5UUllfSVNfVFJBTlNJVElPTihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoYnl0ZSlNQkNTX0VOVFJZX1RSQU5TSVRJT05fU1RBVEUoZW50cnkpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gTUJDU19FTlRSWV9UUkFOU0lUSU9OX09GRlNFVChlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvKiBzYXZlIHRoZSBwcmV2aW91cyBzdGF0ZSBmb3IgcHJvcGVyIGV4dGVuc2lvbiBtYXBwaW5nIHdpdGggU0kvU08tc3RhdGVmdWwgY29udmVydGVycyAqLworICAgICAgICAgICAgICAgIG1vZGUgPSBzdGF0ZTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBuZXh0IHN0YXRlIGVhcmx5IHNvIHRoYXQgd2UgY2FuIHJldXNlIHRoZSBlbnRyeSB2YXJpYWJsZSAqLworICAgICAgICAgICAgICAgIHN0YXRlID0gKGJ5dGUpTUJDU19FTlRSWV9GSU5BTF9TVEFURShlbnRyeSk7IC8qIHR5cGljYWxseSAwICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogQW4gaWYtZWxzZS1pZiBjaGFpbiBwcm92aWRlcyBtb3JlIHJlbGlhYmxlIHBlcmZvcm1hbmNlIGZvcgorICAgICAgICAgICAgICAgICAqIHRoZSBtb3N0IGNvbW1vbiBjYXNlcyBjb21wYXJlZCB0byBhIHN3aXRjaC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBhY3Rpb24gPSAoYnl0ZSkoTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oZW50cnkpKTsKKyAgICAgICAgICAgICAgICBpZihhY3Rpb249PU1CQ1NfU1RBVEVfVkFMSURfMTYpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IE1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpOworICAgICAgICAgICAgICAgICAgICBjID0gdW5pY29kZUNvZGVVbml0c1tvZmZzZXRdOworICAgICAgICAgICAgICAgICAgICBpZihjPDB4ZmZmZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihjPT0weGZmZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzVG9VVXNlRmFsbGJhY2soKSAmJiAoZW50cnk9KGludClnZXRGYWxsYmFjayhzaGFyZWREYXRhLm1iY3MsIG9mZnNldCkpIT0weGZmZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgZmFsbGJhY2sgQk1QIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoYnl0ZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfVkFMSURfRElSRUNUXzE2KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1ZBTElEXzE2X1BBSVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IE1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpOworICAgICAgICAgICAgICAgICAgICBjID0gdW5pY29kZUNvZGVVbml0c1tvZmZzZXQrK107CisgICAgICAgICAgICAgICAgICAgIGlmKGM8MHhkODAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgQk1QIGNvZGUgcG9pbnQgYmVsb3cgMHhkODAwICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihpc1RvVVVzZUZhbGxiYWNrKCkgPyBjPD0weGRmZmYgOiBjPD0weGRiZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCByb3VuZHRyaXAgb3IgZmFsbGJhY2sgc3Vycm9nYXRlIHBhaXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpKGMmMHhkYmZmKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodW5pY29kZUNvZGVVbml0c1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5WzBdID0gdW5pY29kZUNvZGVVbml0c1tvZmZzZXRdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihpc1RvVVVzZUZhbGxiYWNrKCkgPyAoYyYweGZmZmUpPT0weGUwMDAgOiBjPT0weGUwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCByb3VuZHRyaXAgQk1QIGNvZGUgcG9pbnQgYWJvdmUgMHhkODAwIG9yIGZhbGxiYWNrIEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHVuaWNvZGVDb2RlVW5pdHNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihjPT0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChieXRlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmKGFjdGlvbj09TUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMjAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpb249PU1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzIwICYmIGlzVG9VVXNlRmFsbGJhY2soKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBNQkNTX0VOVFJZX0ZJTkFMX1ZBTFVFKGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpKDB4ZDgwMHwoY2hhcikoZW50cnk+PjEwKSkpOworICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYyA9IChjaGFyKSgweGRjMDB8KGNoYXIpKGVudHJ5JjB4M2ZmKSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVswXT1jOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKGFjdGlvbj09TUJDU19TVEFURV9DSEFOR0VfT05MWSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIHNlcnZlcyBhcyBhIHN0YXRlIGNoYW5nZSB3aXRob3V0IGFueSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAqIEl0IGlzIHVzZWZ1bCBmb3IgcmVhZGluZyBzaW1wbGUgc3RhdGVmdWwgZW5jb2RpbmdzLAorICAgICAgICAgICAgICAgICAgICAgKiBmb3IgZXhhbXBsZSB1c2luZyBqdXN0IFNoaWZ0LUluL1NoaWZ0LU91dCBjb2Rlcy4KKyAgICAgICAgICAgICAgICAgICAgICogVGhlIDIxIHVudXNlZCBiaXRzIG1heSBsYXRlciBiZSB1c2VkIGZvciBtb3JlIHNvcGhpc3RpY2F0ZWQKKyAgICAgICAgICAgICAgICAgICAgICogc3RhdGUgdHJhbnNpdGlvbnMuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihzaGFyZWREYXRhLm1iY3MuZGJjc09ubHlTdGF0ZT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJL1NPIGFyZSBpbGxlZ2FsIGZvciBEQkNTLW9ubHkgY29udmVyc2lvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoYnl0ZSkobW9kZSk7IC8qIHJlc3RvcmUgdGhlIHByZXZpb3VzIHN0YXRlICovCisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKGJ5dGVJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzE2KSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzVG9VVXNlRmFsbGJhY2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1VOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IGZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfSUxMRUdBTCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChieXRlSW5kZXgpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHJlc2VydmVkLCBtdXN0IG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIGVuZCBvZiBhY3Rpb24gY29kZXM6IHByZXBhcmUgZm9yIGEgbmV3IGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgIG9mZnNldD0wOworICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihieXRlSW5kZXg9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSBuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmKGNyWzBdLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgLyogdW5hc3NpZ25lZCBzZXF1ZW5jZXMgaW5kaWNhdGVkIHdpdGggYnl0ZUluZGV4PjAgKi8geworICAgICAgICAgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZUJlZ2luSW5kZXggPSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGJ5dGVJbmRleCA9IHRvVShieXRlSW5kZXgsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IG5leHRTb3VyY2VJbmRleCsoaW50KShzb3VyY2VBcnJheUluZGV4LXNvdXJjZUJlZ2luSW5kZXgpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpfHwgY3JbMF0uaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3QgbWFwcGFibGUgb3IgYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIHNldCB0aGUgY29udmVydGVyIHN0YXRlIGJhY2sgaW50byBVQ29udmVydGVyICovCisgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXMgPSBvZmZzZXQ7CisgICAgICAgICAgICBtb2RlID0gc3RhdGU7CisgICAgICAgICAgICB0b1VMZW5ndGggPSBieXRlSW5kZXg7CisgICAgCisgICAgICAgICAgICAvKiB3cml0ZSBiYWNrIHRoZSB1cGRhdGVkIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogY29udGludWUgcGFydGlhbCBtYXRjaCB3aXRoIG5ldyBpbnB1dAorICAgICAgICAgKiBuZXZlciBjYWxsZWQgZm9yIHNpbXBsZSwgc2luZ2xlLWNoYXJhY3RlciBjb252ZXJzaW9uCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY29udGludWVNYXRjaFRvVShCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc3JjSW5kZXgsIGJvb2xlYW4gZmx1c2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnRbXSB2YWx1ZSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBpbnQgbWF0Y2gsIGxlbmd0aDsKKyAgICAgICAgCisgICAgICAgICAgICBtYXRjaCA9IG1hdGNoVG9VKChieXRlKVNJU09fU1RBVEUoc2hhcmVkRGF0YSwgbW9kZSksIHByZVRvVUFycmF5LCBwcmVUb1VCZWdpbiwgcHJlVG9VTGVuZ3RoLCBzb3VyY2UsIHZhbHVlLCBmbHVzaCk7CisgICAgICAgIAorICAgICAgICAgICAgaWYobWF0Y2g+MCkgeworICAgICAgICAgICAgICAgIGlmKG1hdGNoPj1wcmVUb1VMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYWR2YW5jZSBzcmMgcG9pbnRlciBmb3IgdGhlIGNvbnN1bWVkIGlucHV0ICovCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSttYXRjaC1wcmVUb1VMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGggPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIG1hdGNoIGRpZCBub3QgdXNlIGFsbCBvZiBwcmVUb1VbXSAtIGtlZXAgdGhlIHJlc3QgZm9yIHJlcGxheSAqLworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSBwcmVUb1VMZW5ndGggLSBtYXRjaDsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4rbWF0Y2gsIHByZVRvVUFycmF5LCBwcmVUb1VCZWdpbiwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJlVG9VTGVuZ3RoPShieXRlKS1sZW5ndGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3cml0ZSByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBjciA9IHdyaXRlVG9VKHZhbHVlWzBdLCB0YXJnZXQsIG9mZnNldHMsIHNyY0luZGV4KTsgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYobWF0Y2g8MCkgeworICAgICAgICAgICAgICAgIC8qIHNhdmUgc3RhdGUgZm9yIHBhcnRpYWwgbWF0Y2ggKi8KKyAgICAgICAgICAgICAgICBpbnQgaiwgc0FycmF5SW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGp1c3QgX2FwcGVuZF8gdGhlIG5ld2x5IGNvbnN1bWVkIGlucHV0IHRvIHByZVRvVVtdICovCisgICAgICAgICAgICAgICAgc0FycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBtYXRjaCA9LSBtYXRjaDsKKyAgICAgICAgICAgICAgICBmb3Ioaj1wcmVUb1VMZW5ndGg7IGo8bWF0Y2g7ICsraikgeworICAgICAgICAgICAgICAgICAgICBwcmVUb1VBcnJheVtqXSA9IHNvdXJjZS5nZXQoc0FycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzQXJyYXlJbmRleCk7IC8qIHNhbWUgYXMgKnNyYz1zcmNMaW1pdDsgYmVjYXVzZSB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGg9KGJ5dGUpbWF0Y2g7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSAvKiBtYXRjaD09MCAqLyB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBubyBtYXRjaAorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogV2UgbmVlZCB0byBzcGxpdCB0aGUgcHJldmlvdXMgaW5wdXQgaW50byB0d28gcGFydHM6CisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAxLiBUaGUgZmlyc3QgY29kZXBhZ2UgY2hhcmFjdGVyIGlzIHVubWFwcGFibGUgLSB0aGF0J3MgaG93IHdlIGdvdCBpbnRvCisgICAgICAgICAgICAgICAgICogICAgdHJ5aW5nIHRoZSBleHRlbnNpb24gZGF0YSBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAgICAgICAgICAgICAgICogICAgV2UgbmVlZCB0byBtb3ZlIGl0IGZyb20gdGhlIHByZVRvVSBidWZmZXIKKyAgICAgICAgICAgICAgICAgKiAgICB0byB0aGUgZXJyb3IgYnVmZmVyLCBzZXQgYW4gZXJyb3IgY29kZSwKKyAgICAgICAgICAgICAgICAgKiAgICBhbmQgcHJlcGFyZSB0aGUgcmVzdCBvZiB0aGUgcHJldmlvdXMgaW5wdXQgZm9yIDIuCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAyLiBUaGUgcmVzdCBvZiB0aGUgcHJldmlvdXMgaW5wdXQgbXVzdCBiZSBjb252ZXJ0ZWQgb25jZSB3ZQorICAgICAgICAgICAgICAgICAqICAgIGNvbWUgYmFjayBmcm9tIHRoZSBjYWxsYmFjayBmb3IgdGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgKiAgICBBdCB0aGF0IHRpbWUsIHdlIGhhdmUgdG8gdHJ5IGFnYWluIGZyb20gc2NyYXRjaCB0byBjb252ZXJ0CisgICAgICAgICAgICAgICAgICogICAgdGhlc2UgaW5wdXQgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICAgKiAgICBUaGUgcmVwbGF5IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgdWNudi5jIGNvbnZlcnNpb24gY29kZS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbW92ZSB0aGUgZmlyc3QgY29kZXBhZ2UgY2hhcmFjdGVyIHRvIHRoZSBlcnJvciBmaWVsZCAqLworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocHJlVG9VQXJyYXksIHByZVRvVUJlZ2luLCB0b1VCeXRlc0FycmF5LCB0b1VCeXRlc0JlZ2luLCBwcmVUb1VGaXJzdExlbmd0aCk7CisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gcHJlVG9VRmlyc3RMZW5ndGg7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1vdmUgdGhlIHJlc3QgdXAgaW5zaWRlIHRoZSBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICBsZW5ndGggPSBwcmVUb1VMZW5ndGgtcHJlVG9VRmlyc3RMZW5ndGg7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShwcmVUb1VBcnJheSwgcHJlVG9VQmVnaW4rcHJlVG9VRmlyc3RMZW5ndGgsIHByZVRvVUFycmF5LCBwcmVUb1VCZWdpbiwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1hcmsgcHJlVG9VIGZvciByZXBsYXkgKi8KKyAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGggPSAoYnl0ZSktbGVuZ3RoOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIGVycm9yIGNvZGUgZm9yIHVuYXNzaWduZWQgKi8KKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgocHJlVG9VRmlyc3RMZW5ndGgpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIHRoaXMgd29ya3MgbGlrZSBuYXRjaEZyb21VKCkgZXhjZXB0CisgICAgICAgICAqIC0gdGhlIGZpcnN0IGNoYXJhY3RlciBpcyBpbiBwcmUKKyAgICAgICAgICogLSBubyB0cmllIGlzIHVzZWQKKyAgICAgICAgICogLSB0aGUgcmV0dXJuZWQgbWF0Y2hMZW5ndGggaXMgbm90IG9mZnNldCBieSAyCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1hdGNoVG9VKGJ5dGUgc2lzb1N0YXRlLCBieXRlW10gcHJlQXJyYXksIGludCBwcmVBcnJheUJlZ2luLCBpbnQgcHJlTGVuZ3RoLCBCeXRlQnVmZmVyIHNvdXJjZSwgaW50W10gcE1hdGNoVmFsdWUsIGJvb2xlYW4gZmx1c2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgY3ggPSBzaGFyZWREYXRhLm1iY3MuZXh0SW5kZXhlczsKKyAgICAgICAgICAgIEludEJ1ZmZlciB0b1VUYWJsZSwgdG9VU2VjdGlvbjsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgdmFsdWUsIG1hdGNoVmFsdWUsIHNyY0xlbmd0aDsKKyAgICAgICAgICAgIGludCBpLCBqLCBpbmRleCwgbGVuZ3RoLCBtYXRjaExlbmd0aDsKKyAgICAgICAgICAgIHNob3J0IGI7CisgICAgICAgIAorICAgICAgICAgICAgaWYoY3g9PW51bGwgfHwgY3guYXNJbnRCdWZmZXIoKS5nZXQoRVhUX1RPX1VfTEVOR1RIKTw9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBubyBleHRlbnNpb24gZGF0YSwgbm8gbWF0Y2ggKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBpbml0aWFsaXplICovCisgICAgICAgICAgICB0b1VUYWJsZSA9IChJbnRCdWZmZXIpQVJSQVkoY3gsIEVYVF9UT19VX0lOREVYLCBpbnQuY2xhc3MpOworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgICAgIG1hdGNoVmFsdWUgPSAwOworICAgICAgICAgICAgaSA9IGogPSBtYXRjaExlbmd0aD0wOworICAgICAgICAgICAgc3JjTGVuZ3RoID0gc291cmNlLnJlbWFpbmluZygpOworICAgICAgICAKKyAgICAgICAgICAgIGlmKHNpc29TdGF0ZT09MCkgeworICAgICAgICAgICAgICAgIC8qIFNCQ1Mgc3RhdGUgb2YgYW4gU0kvU08gc3RhdGVmdWwgY29udmVydGVyLCBsb29rIGF0IG9ubHkgZXhhY3RseSAxIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICBpZihwcmVMZW5ndGg+MSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogbm8gbWF0Y2ggb2YgYSBEQkNTIHNlcXVlbmNlIGluIFNCQ1MgbW9kZSAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKHByZUxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICBzcmNMZW5ndGggPSAwOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSAvKiBwcmVMZW5ndGg9PTAgKi8geworICAgICAgICAgICAgICAgICAgICBpZihzcmNMZW5ndGg+MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3JjTGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmbHVzaCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogd2UgbXVzdCBub3QgcmVtZW1iZXIgZmFsbGJhY2sgbWF0Y2hlcyB3aGVuIG5vdCB1c2luZyBmYWxsYmFja3MgKi8KKyAgICAgICAgCisgICAgICAgICAgICAvKiBtYXRjaCBpbnB1dCB1bml0cyB1bnRpbCB0aGVyZSBpcyBhIGZ1bGwgbWF0Y2ggb3IgdGhlIGlucHV0IGlzIGNvbnN1bWVkICovCisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAvKiBnbyB0byB0aGUgbmV4dCBzZWN0aW9uICovCisgICAgICAgICAgICAgICAgaW50IG9sZHBvcyA9IHRvVVRhYmxlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgdG9VU2VjdGlvbj0oKEludEJ1ZmZlcil0b1VUYWJsZS5wb3NpdGlvbihpbmRleCkpLnNsaWNlKCk7CisgICAgICAgICAgICAgICAgdG9VVGFibGUucG9zaXRpb24ob2xkcG9zKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogcmVhZCBmaXJzdCBwYWlyIG9mIHRoZSBzZWN0aW9uICovCisgICAgICAgICAgICAgICAgdmFsdWUgPSB0b1VTZWN0aW9uLmdldCgpOworICAgICAgICAgICAgICAgIGxlbmd0aCA9IFRPX1VfR0VUX0JZVEUodmFsdWUpOworICAgICAgICAgICAgICAgIHZhbHVlID1UT19VX0dFVF9WQUxVRSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYodmFsdWUhPTAgJiYKKyAgICAgICAgICAgICAgICAgICAoVE9fVV9JU19ST1VORFRSSVAodmFsdWUpIHx8IGlzVG9VVXNlRmFsbGJhY2soKSkgJiYKKyAgICAgICAgICAgICAgICAgICBUT19VX1ZFUklGWV9TSVNPX01BVENIKHNpc29TdGF0ZSwgaStqKSkgeworICAgICAgICAgICAgICAgICAgICAvKiByZW1lbWJlciBsb25nZXN0IG1hdGNoIHNvIGZhciAqLworICAgICAgICAgICAgICAgICAgICBtYXRjaFZhbHVlPXZhbHVlOworICAgICAgICAgICAgICAgICAgICBtYXRjaExlbmd0aD1pK2o7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBtYXRjaCBwcmVbXSB0aGVuIHNyY1tdICovCisgICAgICAgICAgICAgICAgaWYoaTxwcmVMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYj0oc2hvcnQpKHByZUFycmF5W3ByZUFycmF5QmVnaW4gKyBpKytdICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmKGo8c3JjTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGI9KHNob3J0KShzb3VyY2UuZ2V0KHNvdXJjZS5wb3NpdGlvbigpICsgaisrKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGFsbCBpbnB1dCBjb25zdW1lZCwgcGFydGlhbCBtYXRjaCAqLworICAgICAgICAgICAgICAgICAgICBpZihmbHVzaCB8fCAobGVuZ3RoPShpK2opKT5NQVhfQllURVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBlbmQgb2YgdGhlIGVudGlyZSBpbnB1dCBzdHJlYW0sIHN0b3Agd2l0aCB0aGUgbG9uZ2VzdCBtYXRjaCBzbyBmYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG9yOiBwYXJ0aWFsIG1hdGNoIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIFVDTlZfRVhUX01BWF9CWVRFUworICAgICAgICAgICAgICAgICAgICAgICAgICogYmVjYXVzZSBpdCBtdXN0IGZpdCBpbnRvIHN0YXRlIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udGludWUgd2l0aCBtb3JlIGlucHV0IG5leHQgdGltZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIGN1cnJlbnQgVUNoYXIgKi8KKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpbmRUb1UodG9VU2VjdGlvbiwgbGVuZ3RoLCBiKTsKKyAgICAgICAgICAgICAgICBpZih2YWx1ZT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBtYXRjaCBoZXJlLCBzdG9wIHdpdGggdGhlIGxvbmdlc3QgbWF0Y2ggc28gZmFyICovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmKFRPX1VfSVNfUEFSVElBTCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBhcnRpYWwgbWF0Y2gsIGNvbnRpbnVlICovCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IFRPX1VfR0VUX1BBUlRJQUxfSU5ERVgodmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoKFRPX1VfSVNfUk9VTkRUUklQKHZhbHVlKSB8fCBpc1RvVVVzZUZhbGxiYWNrKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUT19VX1ZFUklGWV9TSVNPX01BVENIKHNpc29TdGF0ZSwgaStqKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZ1bGwgbWF0Y2gsIHN0b3Agd2l0aCByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hMZW5ndGggPSBpK2o7CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZnVsbCBtYXRjaCBvbiBmYWxsYmFjayBub3QgdGFrZW4sIHN0b3Agd2l0aCB0aGUgbG9uZ2VzdCBtYXRjaCBzbyBmYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKG1hdGNoTGVuZ3RoPT0wKSB7CisgICAgICAgICAgICAgICAgLyogbm8gbWF0Y2ggYXQgYWxsICovCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogcmV0dXJuIHJlc3VsdCAqLworICAgICAgICAgICAgcE1hdGNoVmFsdWVbMF0gPSBUT19VX01BU0tfUk9VTkRUUklQKG1hdGNoVmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIG1hdGNoTGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgd3JpdGVUb1UoaW50IHZhbHVlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzcmNJbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBjeCA9IHNoYXJlZERhdGEubWJjcy5leHRJbmRleGVzOworICAgICAgICAgICAgLyogb3V0cHV0IHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKFRPX1VfSVNfQ09ERV9QT0lOVCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAvKiBvdXRwdXQgYSBzaW5nbGUgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIHJldHVybiB0b1VXcml0ZUNvZGVQb2ludChUT19VX0dFVF9DT0RFX1BPSU5UKHZhbHVlKSwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG91dHB1dCBhIHN0cmluZyAtIHdpdGggY29ycmVjdCBkYXRhIHdlIGhhdmUgcmVzdWx0TGVuZ3RoPjAgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNoYXJbXSBhID0gbmV3IGNoYXJbVE9fVV9HRVRfTEVOR1RIKHZhbHVlKV07CisgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBjYiA9ICgoQ2hhckJ1ZmZlcilBUlJBWShjeCwgRVhUX1RPX1VfVUNIQVJTX0lOREVYLCBjaGFyLmNsYXNzKSk7CisgICAgICAgICAgICAgICAgY2IucG9zaXRpb24oVE9fVV9HRVRfSU5ERVgodmFsdWUpKTsKKyAgICAgICAgICAgICAgICBjYi5nZXQoYSwgMCwgYS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHJldHVybiB0b1VXcml0ZVVDaGFycyh0aGlzLCBhLCAwLCBhLmxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCBzcmNJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCB0b1VXcml0ZUNvZGVQb2ludChpbnQgYywgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc291cmNlSW5kZXgpIAorICAgICAgICB7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGludCB0QmVnaW5JbmRleCA9IHRhcmdldC5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljKTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVDb252ZXJ0ZXJDb25zdGFudHMuVV9TRU5USU5FTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgLyogYyBpcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKSk7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFVDb252ZXJ0ZXJDb25zdGFudHMuVV9TRU5USU5FTDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogd3JpdGUgb2Zmc2V0cyAqLworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZigodEJlZ2luSW5kZXgrMSk8dGFyZ2V0LnBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiB3cml0ZSBvdmVyZmxvdyBmcm9tIGMgKi8KKyAgICAgICAgICAgIGlmKGM+PTApIHsKKyAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSBVVEYxNi5hcHBlbmQoY2hhckVycm9yQnVmZmVyQXJyYXksIDAsIGMpOworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIElucHV0IHNlcXVlbmNlOiBjbnYtPnRvVUJ5dGVzWzAuLmxlbmd0aFsKKyAgICAgICAgICogQHJldHVybiBpZihVX0ZBSUxVUkUpIHJldHVybiB0aGUgbGVuZ3RoICh0b1VMZW5ndGgsIGJ5dGVJbmRleCkgZm9yIHRoZSBpbnB1dAorICAgICAgICAgKiAgICAgICAgIGVsc2UgcmV0dXJuIDAgYWZ0ZXIgb3V0cHV0IGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhlIHRhcmdldAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCB0b1UoaW50IGxlbmd0aCwgQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNvdXJjZUluZGV4LCBib29sZWFuIGZsdXNoLCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICAvL0J5dGVCdWZmZXIgY3g7CisgICAgICAgIAorICAgICAgICAgICAgaWYoc2hhcmVkRGF0YS5tYmNzLmV4dEluZGV4ZXMhPW51bGwgJiYKKyAgICAgICAgICAgICAgICBpbml0aWFsTWF0Y2hUb1UobGVuZ3RoLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgsIGZsdXNoLCBjcikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogYW4gZXh0ZW5zaW9uIG1hcHBpbmcgaGFuZGxlZCB0aGUgaW5wdXQgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBHQiAxODAzMCAqLworICAgICAgICAgICAgaWYobGVuZ3RoPT00ICYmIChvcHRpb25zJk1CQ1NfT1BUSU9OX0dCMTgwMzApIT0wKSB7CisgICAgICAgICAgICAgICAgbG9uZ1tdIHJhbmdlOworICAgICAgICAgICAgICAgIGxvbmcgbGluZWFyOworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW5lYXIgPSBMSU5FQVJfMTgwMzAodG9VQnl0ZXNBcnJheVswXSwgdG9VQnl0ZXNBcnJheVsxXSwgdG9VQnl0ZXNBcnJheVsyXSwgdG9VQnl0ZXNBcnJheVszXSk7CisgICAgICAgICAgICAgICAgcmFuZ2UgPSBnYjE4MDMwUmFuZ2VzWzBdOworICAgICAgICAgICAgICAgIGZvcihpPTA7IGk8Z2IxODAzMFJhbmdlcy5sZW5ndGgvZ2IxODAzMFJhbmdlc1swXS5sZW5ndGg7IHJhbmdlPWdiMTgwMzBSYW5nZXNbKytpXSkgeworICAgICAgICAgICAgICAgICAgICBpZihyYW5nZVsyXTw9bGluZWFyICYmIGxpbmVhcjw9cmFuZ2VbM10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIHRoZSBzZXF1ZW5jZSwgb3V0cHV0IHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgZm9yIGl0ICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBhZGQgdGhlIGxpbmVhciBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGlucHV0IGFuZCBzdGFydCBzZXF1ZW5jZXMgdG8gdGhlIHN0YXJ0IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhciA9IHJhbmdlWzBdKyhsaW5lYXItcmFuZ2VbMl0pOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGlzIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gdG9VV3JpdGVDb2RlUG9pbnQoKGludClsaW5lYXIsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIG5vIG1hcHBpbmcgKi8KKyAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQudW5tYXBwYWJsZUZvckxlbmd0aChsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogdGFyZ2V0PHRhcmdldExpbWl0OyBzZXQgZXJyb3IgY29kZSBmb3Igb3ZlcmZsb3cKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGluaXRpYWxNYXRjaFRvVShpbnQgZmlyc3RMZW5ndGgsIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzcmNJbmRleCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgaW50W10gdmFsdWUgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgaW50IG1hdGNoID0gMDsKKyAgICAgICAgCisgICAgICAgICAgICAvKiB0cnkgdG8gbWF0Y2ggKi8KKyAgICAgICAgICAgIG1hdGNoID0gbWF0Y2hUb1UoKGJ5dGUpU0lTT19TVEFURShzaGFyZWREYXRhLCBtb2RlKSwgdG9VQnl0ZXNBcnJheSwgdG9VQnl0ZXNCZWdpbiwgZmlyc3RMZW5ndGgsIHNvdXJjZSwgdmFsdWUsIGZsdXNoKTsKKyAgICAgICAgICAgIGlmKG1hdGNoPjApIHsKKyAgICAgICAgICAgICAgICAvKiBhZHZhbmNlIHNyYyBwb2ludGVyIGZvciB0aGUgY29uc3VtZWQgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkrbWF0Y2gtZmlyc3RMZW5ndGgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdyaXRlIHJlc3VsdCB0byB0YXJnZXQgKi8KKyAgICAgICAgICAgICAgICBjclswXSA9IHdyaXRlVG9VKHZhbHVlWzBdLCB0YXJnZXQsIG9mZnNldHMsIHNyY0luZGV4KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYobWF0Y2g8MCkgeworICAgICAgICAgICAgICAgIC8qIHNhdmUgc3RhdGUgZm9yIHBhcnRpYWwgbWF0Y2ggKi8KKyAgICAgICAgICAgICAgICBieXRlW10gc0FycmF5OworICAgICAgICAgICAgICAgIGludCBzQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogY29weSB0aGUgZmlyc3QgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIHNBcnJheSA9IHRvVUJ5dGVzQXJyYXk7CisgICAgICAgICAgICAgICAgc0FycmF5SW5kZXggPSB0b1VCeXRlc0JlZ2luOworICAgICAgICAgICAgICAgIHByZVRvVUZpcnN0TGVuZ3RoID0gKGJ5dGUpZmlyc3RMZW5ndGg7CisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxmaXJzdExlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHByZVRvVUFycmF5W2pdPXNBcnJheVtzQXJyYXlJbmRleCsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG5vdyBjb3B5IHRoZSBuZXdseSBjb25zdW1lZCBpbnB1dCAqLworICAgICAgICAgICAgICAgIHNBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgbWF0Y2ggPS0gbWF0Y2g7CisgICAgICAgICAgICAgICAgZm9yKDsgajxtYXRjaDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHByZVRvVUFycmF5W2pdID0gc291cmNlLmdldChzQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICBwcmVUb1VMZW5ndGg9KGJ5dGUpbWF0Y2g7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSAvKiBtYXRjaD09MCBubyBtYXRjaCAqLyB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhpcyB2ZXJzaW9uIG9mIGNudk1CQ1NTaW5nbGVUb1VuaWNvZGVXaXRoT2Zmc2V0cygpIGlzIG9wdGltaXplZCBmb3Igc2luZ2xlLWJ5dGUsIHNpbmdsZS1zdGF0ZSBjb2RlcGFnZXMKKyAgICAgICAgICogdGhhdCBvbmx5IG1hcCB0byBhbmQgZnJvbSB0aGUgQk1QLgorICAgICAgICAgKiBJbiBhZGRpdGlvbiB0byBzaW5nbGUtYnl0ZSBvcHRpbWl6YXRpb25zLCB0aGUgb2Zmc2V0IGNhbGN1bGF0aW9ucworICAgICAgICAgKiBiZWNvbWUgbXVjaCBlYXNpZXIuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY252TUJDU1NpbmdsZVRvQk1QV2l0aE9mZnNldHMoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCkKKyAgICAgICAgeworICAgICAgICAgICAgQ29kZXJSZXN1bHRbXSBjciA9IHtDb2RlclJlc3VsdC5VTkRFUkZMT1d9OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCwgbGFzdFNvdXJjZTsKKyAgICAgICAgICAgIGludCB0YXJnZXRDYXBhY2l0eSwgbGVuZ3RoOworICAgICAgICAgICAgaW50W11bXSBzdGF0ZVRhYmxlOworICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgZW50cnk7CisgICAgICAgICAgICBieXRlIGFjdGlvbjsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgdXAgdGhlIGxvY2FsIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eSA9IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoKG9wdGlvbnMmVUNvbnZlcnRlckNvbnN0YW50cy5PUFRJT05fU1dBUF9MRk5MKSE9MCkgeworICAgICAgICAgICAgICAgIHN0YXRlVGFibGUgPSBzaGFyZWREYXRhLm1iY3Muc3dhcExGTkxTdGF0ZVRhYmxlOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXRlVGFibGUgPSBzaGFyZWREYXRhLm1iY3Muc3RhdGVUYWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBzb3VyY2VJbmRleD0tMSBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYmVnYW4gaW4gdGhlIHByZXZpb3VzIGJ1ZmZlciAqLworICAgICAgICAgICAgc291cmNlSW5kZXggPSAwOworICAgICAgICAgICAgbGFzdFNvdXJjZSA9IHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHNpbmNlIHRoZSBjb252ZXJzaW9uIGhlcmUgaXMgMToxIFVDaGFyOnVpbnQ4X3QsIHdlIG5lZWQgb25seSBvbmUgY291bnRlcgorICAgICAgICAgICAgICogZm9yIHRoZSBtaW5pbXVtIG9mIHRoZSBzb3VyY2VMZW5ndGggYW5kIHRhcmdldENhcGFjaXR5CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDx0YXJnZXRDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5PWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBjb252ZXJzaW9uIGxvb3AgKi8KKyAgICAgICAgICAgIHdoaWxlKHRhcmdldENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICBlbnRyeSA9IHN0YXRlVGFibGVbMF1bc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0tdOworICAgICAgICAgICAgICAgIC8qIE1CQ1NfRU5UUllfSVNfRklOQUwoZW50cnkpICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHRlc3QgdGhlIG1vc3QgY29tbW9uIGNhc2UgZmlyc3QgKi8KKyAgICAgICAgICAgICAgICBpZihNQkNTX0VOVFJZX0ZJTkFMX0lTX1ZBTElEX0RJUkVDVF8xNihlbnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpTUJDU19FTlRSWV9GSU5BTF9WQUxVRV8xNihlbnRyeSkpOworICAgICAgICAgICAgICAgICAgICAtLXRhcmdldENhcGFjaXR5OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogQW4gaWYtZWxzZS1pZiBjaGFpbiBwcm92aWRlcyBtb3JlIHJlbGlhYmxlIHBlcmZvcm1hbmNlIGZvcgorICAgICAgICAgICAgICAgICAqIHRoZSBtb3N0IGNvbW1vbiBjYXNlcyBjb21wYXJlZCB0byBhIHN3aXRjaC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBhY3Rpb24gPSAoYnl0ZSkoTUJDU19FTlRSWV9GSU5BTF9BQ1RJT04oZW50cnkpKTsKKyAgICAgICAgICAgICAgICBpZihhY3Rpb249PU1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzE2KSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzVG9VVXNlRmFsbGJhY2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tdGFyZ2V0Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfSUxMRUdBTCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4LWxhc3RTb3VyY2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHJlc2VydmVkLCBtdXN0IG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogc2V0IG9mZnNldHMgc2luY2UgdGhlIHN0YXJ0IG9yIHRoZSBsYXN0IGV4dGVuc2lvbiAqLworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gc291cmNlQXJyYXlJbmRleC1sYXN0U291cmNlOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcHJlZGVjcmVtZW50OiBkbyBub3Qgc2V0IHRoZSBvZmZzZXQgZm9yIHRoZSBjYWxsYmFjay1jYXVzaW5nIGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICB3aGlsZSgtLWNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qIG9mZnNldCBhbmQgc291cmNlSW5kZXggYXJlIG5vdyBzZXQgZm9yIHRoZSBjdXJyZW50IGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSAvKiB1bmFzc2lnbmVkIHNlcXVlbmNlcyBpbmRpY2F0ZWQgd2l0aCBieXRlSW5kZXg+MCAqLyB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRyeSBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVswXT1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgtMSk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gdG9VKChieXRlKTEsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ICs9IDErKGludCkoc291cmNlQXJyYXlJbmRleC1sYXN0U291cmNlKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90IG1hcHBhYmxlIG9yIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHJlY2FsY3VsYXRlIHRoZSB0YXJnZXRDYXBhY2l0eSBhZnRlciBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eSA9IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlLnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg8dGFyZ2V0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5ID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKCFjclswXS5pc0Vycm9yKCkgJiYgc291cmNlQXJyYXlJbmRleDxzb3VyY2UuY2FwYWNpdHkoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCBvZmZzZXRzIHNpbmNlIHRoZSBzdGFydCBvciB0aGUgbGFzdCBjYWxsYmFjayAqLworICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IHNvdXJjZUFycmF5SW5kZXgtbGFzdFNvdXJjZTsKKyAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiB3cml0ZSBiYWNrIHRoZSB1cGRhdGVkIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7ICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICAvKiBUaGlzIHZlcnNpb24gb2YgY252TUJDU1RvVW5pY29kZVdpdGhPZmZzZXRzKCkgaXMgb3B0aW1pemVkIGZvciBzaW5nbGUtYnl0ZSwgc2luZ2xlLXN0YXRlIGNvZGVwYWdlcy4gKi8KKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGNudk1CQ1NTaW5nbGVUb1VuaWNvZGVXaXRoT2Zmc2V0cyhCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKQorICAgICAgICB7CisgICAgICAgICAgICBDb2RlclJlc3VsdFtdIGNyID0ge0NvZGVyUmVzdWx0LlVOREVSRkxPV307CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgaW50W11bXSBzdGF0ZVRhYmxlOworICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgZW50cnk7CisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICBieXRlIGFjdGlvbjsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgdXAgdGhlIGxvY2FsIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLnN3YXBMRk5MU3RhdGVUYWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXRlVGFibGUgPSBzaGFyZWREYXRhLm1iY3Muc3RhdGVUYWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBzb3VyY2VJbmRleD0tMSBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYmVnYW4gaW4gdGhlIHByZXZpb3VzIGJ1ZmZlciAqLworICAgICAgICAgICAgc291cmNlSW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhpcyBmb2xsb3dpbmcgdGVzdCBpcyB0byBzZWUgaWYgYXZhaWxhYmxlIGlucHV0IHdvdWxkIG92ZXJmbG93IHRoZSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICogSXQgZG9lcyBub3QgY2F0Y2ggb3V0cHV0IG9mIG1vcmUgdGhhbiBvbmUgY29kZSB1bml0IHRoYXQKKyAgICAgICAgICAgICAgICAgKiBvdmVyZmxvd3MgYXMgYSByZXN1bHQgb2YgYSBzdXJyb2dhdGUgcGFpciBvciBjYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgKiBmcm9tIHRoZSBsYXN0IHNvdXJjZSBieXRlLgorICAgICAgICAgICAgICAgICAqIFRoZXJlZm9yZSwgdGhvc2Ugc2l0dWF0aW9ucyBhbHNvIHRlc3QgZm9yIG92ZXJmbG93cyBhbmQgd2lsbAorICAgICAgICAgICAgICAgICAqIHRoZW4gYnJlYWsgdGhlIGxvb3AsIHRvby4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgZW50cnkgPSBzdGF0ZVRhYmxlWzBdW3NvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLXTsKKyAgICAgICAgICAgICAgICAvKiBNQkNTX0VOVFJZX0lTX0ZJTkFMKGVudHJ5KSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBtb3N0IGNvbW1vbiBjYXNlIGZpcnN0ICovCisgICAgICAgICAgICAgICAgaWYoTUJDU19FTlRSWV9GSU5BTF9JU19WQUxJRF9ESVJFQ1RfMTYoZW50cnkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBub3JtYWwgZW5kIG9mIGFjdGlvbiBjb2RlczogcHJlcGFyZSBmb3IgYSBuZXcgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICsrc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBBbiBpZi1lbHNlLWlmIGNoYWluIHByb3ZpZGVzIG1vcmUgcmVsaWFibGUgcGVyZm9ybWFuY2UgZm9yCisgICAgICAgICAgICAgICAgICogdGhlIG1vc3QgY29tbW9uIGNhc2VzIGNvbXBhcmVkIHRvIGEgc3dpdGNoLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGFjdGlvbiA9IChieXRlKShNQkNTX0VOVFJZX0ZJTkFMX0FDVElPTihlbnRyeSkpOworICAgICAgICAgICAgICAgIGlmKGFjdGlvbj09TUJDU19TVEFURV9WQUxJRF9ESVJFQ1RfMjAgfHwKKyAgICAgICAgICAgICAgICAgICAoYWN0aW9uPT1NQkNTX1NUQVRFX0ZBTExCQUNLX0RJUkVDVF8yMCAmJiBpc1RvVVVzZUZhbGxiYWNrKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IE1CQ1NfRU5UUllfRklOQUxfVkFMVUUoZW50cnkpOworICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgc3Vycm9nYXRlIHBhaXIgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcikoMHhkODAwfChjaGFyKShlbnRyeT4+PjEwKSkpOworICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYyA9IChjaGFyKSgweGRjMDB8KGNoYXIpKGVudHJ5JjB4M2ZmKSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVswXT1jOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICsrc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfRkFMTEJBQ0tfRElSRUNUXzE2KSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzVG9VVXNlRmFsbGJhY2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IEJNUCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKU1CQ1NfRU5UUllfRklOQUxfVkFMVUVfMTYoZW50cnkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYoYWN0aW9uPT1NQkNTX1NUQVRFX1VOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoganVzdCBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZihhY3Rpb249PU1CQ1NfU1RBVEVfSUxMRUdBTCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgxKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByZXNlcnZlZCwgbXVzdCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGNyWzBdLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgLyogdW5hc3NpZ25lZCBzZXF1ZW5jZXMgaW5kaWNhdGVkIHdpdGggYnl0ZUluZGV4PjAgKi8geworICAgICAgICAgICAgICAgICAgICAvKiB0cnkgYW4gZXh0ZW5zaW9uIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZUJlZ2luSW5kZXggPSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5WzBdID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4LTEpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IHRvVSgoYnl0ZSkxLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggKz0gMSsoaW50KShzb3VyY2VBcnJheUluZGV4LXNvdXJjZUJlZ2luSW5kZXgpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3QgbWFwcGFibGUgb3IgYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiB3cml0ZSBiYWNrIHRoZSB1cGRhdGVkIHBvaW50ZXJzICovCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0RmFsbGJhY2soVUNvbnZlcnRlck1CQ1NUYWJsZSBtYmNzVGFibGUsIGludCBvZmZzZXQpIAorICAgICAgICB7CisgICAgICAgICAgICBNQkNTVG9VRmFsbGJhY2tbXSB0b1VGYWxsYmFja3M7CisgICAgICAgICAgICBpbnQgaSwgc3RhcnQsIGxpbWl0OworICAgICAgICAKKyAgICAgICAgICAgIGxpbWl0ID0gbWJjc1RhYmxlLmNvdW50VG9VRmFsbGJhY2tzOworICAgICAgICAgICAgaWYobGltaXQ+MCkgeworICAgICAgICAgICAgICAgIC8qIGRvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGZhbGxiYWNrIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICB0b1VGYWxsYmFja3MgPSBtYmNzVGFibGUudG9VRmFsbGJhY2tzOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZShzdGFydDxsaW1pdC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSAoc3RhcnQrbGltaXQpLzI7CisgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldDx0b1VGYWxsYmFja3NbaV0ub2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCA9IGk7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBkaWQgd2UgcmVhbGx5IGZpbmQgaXQ/ICovCisgICAgICAgICAgICAgICAgaWYob2Zmc2V0PT10b1VGYWxsYmFja3Nbc3RhcnRdLm9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9VRmFsbGJhY2tzW3N0YXJ0XS5jb2RlUG9pbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAweGZmZmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyTUJDUyBleHRlbmRzIENoYXJzZXRFbmNvZGVySUNVeworCisgICAgICAgIENoYXJzZXRFbmNvZGVyTUJDUyhDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGltcGxSZXNldCgpIHsKKyAgICAgICAgICAgIHN1cGVyLmltcGxSZXNldCgpOworICAgICAgICAgICAgcHJlRnJvbVVGaXJzdENQID0gVUNvbnZlcnRlckNvbnN0YW50cy5VX1NFTlRJTkVMOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgIAorICAgICAgICAgICAgQ29kZXJSZXN1bHRbXSBjciA9IHtDb2RlclJlc3VsdC5VTkRFUkZMT1d9OworCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIGNoYXJbXSB0YWJsZTsKKyAgICAgICAgICAgIGJ5dGVbXSBwQXJyYXksIGJ5dGVzOworICAgICAgICAgICAgaW50IHBBcnJheUluZGV4LCBvdXRwdXRUeXBlLCBjOyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHByZXZTb3VyY2VJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgIGludCBzdGFnZTJFbnRyeSwgdmFsdWUsIGxlbmd0aCwgcHJldkxlbmd0aDsKKyAgICAgICAgICAgIHNob3J0IHVuaWNvZGVNYXNrOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYocHJlRnJvbVVGaXJzdENQPj0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHBhc3Mgc291cmNlSW5kZXg9LTEgYmVjYXVzZSB3ZSBjb250aW51ZSBmcm9tIGFuIGVhcmxpZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAqIGluIHRoZSBmdXR1cmUsIHRoaXMgbWF5IGNoYW5nZSB3aXRoIGNvbnRpbnVvdXMgb2Zmc2V0cworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBjb250aW51ZU1hdGNoRnJvbVUoc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoLCAtMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoY3JbMF0uaXNFcnJvcigpIHx8IHByZUZyb21VTGVuZ3RoPDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjclswXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHVzZSBvcHRpbWl6ZWQgZnVuY3Rpb24gaWYgcG9zc2libGUgKi8KKyAgICAgICAgICAgICAgICBvdXRwdXRUeXBlID0gc2hhcmVkRGF0YS5tYmNzLm91dHB1dFR5cGU7CisgICAgICAgICAgICAgICAgdW5pY29kZU1hc2sgPSBzaGFyZWREYXRhLm1iY3MudW5pY29kZU1hc2s7CisgICAgICAgICAgICAgICAgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMSAmJiAodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VSUk9HQVRFUykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZigodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VQUExFTUVOVEFSWSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBjbnZNQkNTU2luZ2xlRnJvbUJNUFdpdGhPZmZzZXRzKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IGNudk1CQ1NTaW5nbGVGcm9tVW5pY29kZVdpdGhPZmZzZXRzKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCBmbHVzaCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8yKSB7CisgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gY252TUJDU0RvdWJsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMoc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIGZsdXNoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhYmxlID0gc2hhcmVkRGF0YS5tYmNzLmZyb21Vbmljb2RlVGFibGU7CisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmVUNvbnZlcnRlckNvbnN0YW50cy5PUFRJT05fU1dBUF9MRk5MKSE9MCkgeworICAgICAgICAgICAgICAgICAgICBieXRlcyA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnl0ZXMgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVCeXRlczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIGNvbnZlcnRlciBzdGF0ZSBmcm9tIFVDb252ZXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICBjID0gZnJvbVVDaGFyMzI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF8yX1NJU08pIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkxlbmd0aD0oaW50KWZyb21Vbmljb2RlU3RhdHVzOworICAgICAgICAgICAgICAgICAgICBpZihwcmV2TGVuZ3RoPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIHJlYWwgdmFsdWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHByZXZlbnQgZnJvbVVuaWNvZGVTdGF0dXMgZnJvbSBiZWluZyBzZXQgdG8gc29tZXRoaW5nIG5vbi0wICovCisgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGg9MDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBzb3VyY2VJbmRleD0tMSBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYmVnYW4gaW4gdGhlIHByZXZpb3VzIGJ1ZmZlciAqLworICAgICAgICAgICAgICAgIHByZXZTb3VyY2VJbmRleD0tMTsKKyAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD0gYz09MCA/IDAgOiAtMTsKKyAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXg9MDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGNvbnZlcnNpb24gbG9vcCAqLworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhpcyBpcyBhbm90aGVyIHBpZWNlIG9mIHVnbHkgY29kZToKKyAgICAgICAgICAgICAgICAgKiBBIGdvdG8gaW50byB0aGUgbG9vcCBpZiB0aGUgY29udmVydGVyIHN0YXRlIGNvbnRhaW5zIGEgZmlyc3Qgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY2FsbC4KKyAgICAgICAgICAgICAgICAgKiBJdCBzYXZlcyBtZSB0byBjaGVjayBpbiBlYWNoIGxvb3AgaXRlcmF0aW9uIGEgY2hlY2sgb2YgaWYoYz09MCkKKyAgICAgICAgICAgICAgICAgKiBhbmQgZHVwbGljYXRpbmcgdGhlIHRyYWlsLXN1cnJvZ2F0ZS1oYW5kbGluZyBjb2RlIGluIHRoZSBlbHNlCisgICAgICAgICAgICAgICAgICogYnJhbmNoIG9mIHRoYXQgY2hlY2suCisgICAgICAgICAgICAgICAgICogSSBjb3VsZCBub3QgZmluZCBhbnkgb3RoZXIgd2F5IHRvIGdldCBhcm91bmQgdGhpcyBvdGhlciB0aGFuCisgICAgICAgICAgICAgICAgICogdXNpbmcgYSBmdW5jdGlvbiBjYWxsIGZvciB0aGUgY29udmVyc2lvbiBhbmQgY2FsbGJhY2ssIHdoaWNoIHdvdWxkCisgICAgICAgICAgICAgICAgICogYmUgZXZlbiBtb3JlIGluZWZmaWNpZW50LgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogTWFya3VzIFNjaGVyZXIgMjAwMC1qdWwtMTkKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYoYyE9MCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU2lkZUVmZmVjdHMgeCA9IG5ldyBTaWRlRWZmZWN0cyhjLCBzb3VyY2VBcnJheUluZGV4LCBzb3VyY2VJbmRleCwgbmV4dFNvdXJjZUluZGV4LCBwcmV2U291cmNlSW5kZXgsIHByZXZMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBnZXRUcmFpbChzb3VyY2UsIHRhcmdldCwgdW5pY29kZU1hc2ssIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHByZXZTb3VyY2VJbmRleCA9IHgucHJldlNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoID0geC5wcmV2TGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogVGhpcyBmb2xsb3dpbmcgdGVzdCBpcyB0byBzZWUgaWYgYXZhaWxhYmxlIGlucHV0IHdvdWxkIG92ZXJmbG93IHRoZSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBJdCBkb2VzIG5vdCBjYXRjaCBvdXRwdXQgb2YgbW9yZSB0aGFuIG9uZSBieXRlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG92ZXJmbG93cyBhcyBhIHJlc3VsdCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIG9yIGNhbGxiYWNrIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgbGFzdCBzb3VyY2UgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlcmVmb3JlLCB0aG9zZSBzaXR1YXRpb25zIGFsc28gdGVzdCBmb3Igb3ZlcmZsb3dzIGFuZCB3aWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGVuIGJyZWFrIHRoZSBsb29wLCB0b28uCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogR2V0IGEgY29ycmVjdCBVbmljb2RlIGNvZGUgcG9pbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYSBzaW5nbGUgVUNoYXIgZm9yIGEgQk1QIGNvZGUgcG9pbnQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIG1hdGNoZWQgc3Vycm9nYXRlIHBhaXIgZm9yIGEgInN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK25leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoaXMgYWxzbyB0ZXN0cyBpZiB0aGUgY29kZXBhZ2UgbWFwcyBzaW5nbGUgc3Vycm9nYXRlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiBpdCBkb2VzLCB0aGVuIHN1cnJvZ2F0ZXMgYXJlIG5vdCBwYWlyZWQgYnV0IG1hcHBlZCBzZXBhcmF0ZWx5LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5vdGUgdGhhdCBpbiB0aGlzIGNhc2UgdW5tYXRjaGVkIHN1cnJvZ2F0ZXMgYXJlIG5vdCBkZXRlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljKSAmJiAodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VSUk9HQVRFUykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZ2V0VHJhaWw6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0cyB4ID0gbmV3IFNpZGVFZmZlY3RzKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgsIHByZXZTb3VyY2VJbmRleCwgcHJldkxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBnZXRUcmFpbChzb3VyY2UsIHRhcmdldCwgdW5pY29kZU1hc2ssIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlNvdXJjZUluZGV4ID0geC5wcmV2U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZG9sb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgaW4gYyBpbnRvIGNvZGVwYWdlIGJ5dGVzICovCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgYmFzaWMgbG9va3VwIGlzIGEgdHJpcGxlLXN0YWdlIGNvbXBhY3QgYXJyYXkgKHRyaWUpIGxvb2t1cC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBGb3IgZGV0YWlscyBzZWUgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZpbGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTaW5nbGUtYnl0ZSBjb2RlcGFnZXMgYXJlIGhhbmRsZWQgd2l0aCBhIGRpZmZlcmVudCBkYXRhIHN0cnVjdHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJ5IF9NQkNTU2luZ2xlLi4uIGZ1bmN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSByZXN1bHQgY29uc2lzdHMgb2YgYSAzMi1iaXQgdmFsdWUgZnJvbSBzdGFnZSAyIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgcG9pbnRlciB0byBhcyBtYW55IGJ5dGVzIGFzIGFyZSBzdG9yZWQgcGVyIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgcG9pbnRlciBwb2ludHMgdG8gdGhlIGNoYXJhY3RlcidzIGJ5dGVzIGluIHN0YWdlIDMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQml0cyAxNS4uMCBvZiB0aGUgc3RhZ2UgMiBlbnRyeSBjb250YWluIHRoZSBzdGFnZSAzIGluZGV4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZm9yIHRoYXQgcG9pbnRlciwgd2hpbGUgYml0cyAzMS4uMTYgYXJlIGZsYWdzIGZvciB3aGljaCBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSAxNiBjaGFyYWN0ZXJzIGluIHRoZSBibG9jayBhcmUgcm91bmR0cmlwLWFzc2lnbmVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRm9yIDItYnl0ZSBhbmQgNC1ieXRlIGNvZGVwYWdlcywgdGhlIGJ5dGVzIGFyZSBzdG9yZWQgYXMgdWludDE2X3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByZXNwZWN0aXZlbHkgYXMgdWludDMyX3QsIGluIHRoZSBwbGF0Zm9ybSBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBGb3IgMy1ieXRlIGNvZGVwYWdlcywgdGhlIGJ5dGVzIGFyZSBhbHdheXMgc3RvcmVkIGluIGJpZy1lbmRpYW4gb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBGb3IgRVVDIGVuY29kaW5ncyB0aGF0IHVzZSBvbmx5IGVpdGhlciAweDhlIG9yIDB4OGYgYXMgdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYnl0ZSBvZiB0aGVpciBsb25nZXN0IGJ5dGUgc2VxdWVuY2VzLCB0aGUgZmlyc3QgdHdvIGJ5dGVzIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyB0aGlyZCBzdGFnZSBpbmRpY2F0ZSB3aXRoIHRoZWlyIDd0aCBiaXRzIHdoZXRoZXIgdGhlc2UgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhcmUgdG8gYmUgd3JpdHRlbiBkaXJlY3RseSBvciBhY3R1YWxseSBuZWVkIHRvIGJlIHByZWNlZWRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG9uZSBvZiB0aGUgdHdvIFNpbmdsZS1TaGlmdCBjb2Rlcy4gV2l0aCB0aGlzLCB0aGUgdGhpcmQgc3RhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzdG9yZXMgb25lIGJ5dGUgZmV3ZXIgcGVyIGNoYXJhY3RlciB0aGFuIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBFVUMgYnl0ZSBzZXF1ZW5jZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBPdGhlciB0aGFuIHRoYXQsIGxlYWRpbmcgemVybyBieXRlcyBhcmUgcmVtb3ZlZCBhbmQgdGhlIG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYnl0ZXMgb3V0cHV0LiBBIHNpbmdsZSB6ZXJvIGJ5dGUgbWF5IGJlIG91dHB1dCBpZiB0aGUgImFzc2lnbmVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJpdCBpbiBzdGFnZSAyIHdhcyBvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgZGF0YSBzdHJ1Y3R1cmUgZG9lcyBub3Qgc3VwcG9ydCB6ZXJvIGJ5dGUgb3V0cHV0IGFzIGEgZmFsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIGFsc28gZG9lcyBub3QgYWxsb3cgb3V0cHV0IG9mIGxlYWRpbmcgemVyb3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2UyRW50cnk9TUJDU19TVEFHRV8yX0ZST01fVSh0YWJsZSwgYyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBieXRlcyBhbmQgdGhlIGxlbmd0aCBmb3IgdGhlIG91dHB1dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChvdXRwdXRUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19WQUxVRV8yX0ZST01fU1RBR0VfMihieXRlcywgc3RhZ2UyRW50cnksIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHZhbHVlICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykgPD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8yX1NJU086CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxLzItYnl0ZSBzdGF0ZWZ1bCB3aXRoIFNoaWZ0LUluL1NoaWZ0LU91dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFNhdmUgdGhlIG9sZCBzdGF0ZSBpbiB0aGUgY29udmVydGVyIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmlnaHQgaGVyZSwgdGhlbiBjaGFuZ2UgdGhlIGxvY2FsIHByZXZMZW5ndGggc3RhdGUgdmFyaWFibGUgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlbiwgaWYgdGhpcyBjaGFyYWN0ZXIgdHVybnMgb3V0IHRvIGJlIHVuYXNzaWduZWQgb3IgYSBmYWxsYmFjayB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpcyBub3QgdGFrZW4sIHRoZSBjYWxsYmFjayBjb2RlIG11c3Qgbm90IHNhdmUgdGhlIG5ldyBzdGF0ZSBpbiB0aGUgY29udmVydGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiZWNhdXNlIHRoZSBuZXcgc3RhdGUgaXMgZm9yIGEgY2hhcmFjdGVyIHRoYXQgaXMgbm90IG91dHB1dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEhvd2V2ZXIsIHRoZSBjYWxsYmFjayBtdXN0IHN0aWxsIHJlc3RvcmUgdGhlIHN0YXRlIGZyb20gdGhlIGNvbnZlcnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW4gY2FzZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gY2hhbmdlZCBpdCBmb3IgaXRzIG91dHB1dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXM9cHJldkxlbmd0aDsgLyogc2F2ZSB0aGUgb2xkIHN0YXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfMl9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlPT0wICYmIE1CQ1NfRlJPTV9VX0lTX1JPVU5EVFJJUChzdGFnZTJFbnRyeSwgYyk9PWZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1hcHBpbmcsIGxlYXZlIHZhbHVlPT0wICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHByZXZMZW5ndGg8PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGFuZ2UgZnJvbSBkb3VibGUtYnl0ZSBtb2RlIHRvIHNpbmdsZS1ieXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHw9IFVDb252ZXJ0ZXJDb25zdGFudHMuU0k8PDg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwcmV2TGVuZ3RoPT0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hhbmdlIGZyb20gc2luZ2xlLWJ5dGUgbW9kZSB0byBkb3VibGUtYnl0ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB8PSBVQ29udmVydGVyQ29uc3RhbnRzLlNPPDwxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfREJDU19PTkxZOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFibGUgd2l0aCBzaW5nbGUtYnl0ZSByZXN1bHRzLCBidXQgb25seSBEQkNTIG1hcHBpbmdzIHVzZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19WQUxVRV8yX0ZST01fU1RBR0VfMihieXRlcywgc3RhZ2UyRW50cnksIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHZhbHVlICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykgPD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gbWFwcGluZyBvciBTQkNTIHJlc3VsdCwgbm90IHRha2VuIGZvciBEQkNTLW9ubHkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YWdlMkVudHJ5PTA7IC8qIHN0YWdlMkVudHJ5PTAgdG8gcmVzZXQgcm91bmR0cmlwIGZsYWdzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwQXJyYXkgPSBieXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBBcnJheUluZGV4ID0gTUJDU19QT0lOVEVSXzNfRlJPTV9TVEFHRV8yKGJ5dGVzLCBzdGFnZTJFbnRyeSwgYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICgocEFycmF5W3BBcnJheUluZGV4XSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDE2KXwoKHBBcnJheVtwQXJyYXlJbmRleCsxXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrMl0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHZhbHVlICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykgPD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTUJDU19PVVRQVVRfNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19WQUxVRV80X0ZST01fU1RBR0VfMihieXRlcywgc3RhZ2UyRW50cnksIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHZhbHVlICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSykgPD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZmZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF8zX0VVQzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTUJDU19WQUxVRV8yX0ZST01fU1RBR0VfMihieXRlcywgc3RhZ2UyRW50cnksIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVVDIDE2LWJpdCBmaXhlZC1sZW5ndGggcmVwcmVzZW50YXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUmMHg4MDAwKT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHw9IDB4OGU4MDAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUmMHg4MCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB8PSAweDhmMDA4MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNQkNTX09VVFBVVF80X0VVQzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBBcnJheSA9IGJ5dGVzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEFycmF5SW5kZXggPSBNQkNTX1BPSU5URVJfM19GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKChwQXJyYXlbcEFycmF5SW5kZXhdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8MTYpfCgocEFycmF5W3BBcnJheUluZGV4KzFdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHBBcnJheVtwQXJyYXlJbmRleCsyXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFVUMgMTYtYml0IGZpeGVkLWxlbmd0aCByZXByZXNlbnRhdGlvbiBhcHBsaWVkIHRvIHRoZSBmaXJzdCB0d28gYnl0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0lOVF9NQVNLKSA8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZigodmFsdWUmMHg4MDAwMDApPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgfD0gMHg4ZTgwMDAwMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoKHZhbHVlJjB4ODAwMCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB8PSAweDhmMDA4MDAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbXVzdCBub3Qgb2NjdXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUbyBhdm9pZCBjb21waWxlciB3YXJuaW5ncyB0aGF0IHZhbHVlICYgbGVuZ3RoIG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdXNlZCB3aXRob3V0IGhhdmluZyBiZWVuIGluaXRpYWxpemVkLCB3ZSBzZXQgdGhlbSBoZXJlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gcmVhbGl0eSwgdGhpcyBpcyB1bnJlYWNoYWJsZSBjb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTm90IGhhdmluZyBhIGRlZmF1bHQgYnJhbmNoIGFsc28gY2F1c2VzIHdhcm5pbmdzIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNvbWUgY29tcGlsZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YWdlMkVudHJ5PTA7IC8qIHN0YWdlMkVudHJ5PTAgdG8gcmVzZXQgcm91bmR0cmlwIGZsYWdzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpcyB0aGlzIGNvZGUgcG9pbnQgYXNzaWduZWQsIG9yIGRvIHdlIHVzZSBmYWxsYmFja3M/ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCEoTUJDU19GUk9NX1VfSVNfUk9VTkRUUklQKHN0YWdlMkVudHJ5LCBjKSB8fCAoaXNGcm9tVVVzZUZhbGxiYWNrKGMpICYmIHZhbHVlIT0wKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBhbGxvdyBhIDAgYnl0ZSBvdXRwdXQgaWYgdGhlICJhc3NpZ25lZCIgYml0IGlzIHNldCBmb3IgdGhpcyBlbnRyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZXJlIGlzIG5vIHdheSB3aXRoIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgZm9yIGZhbGxiYWNrIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdG8gYmUgYSB6ZXJvIGJ5dGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3VuYXNzaWduZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0cyB4ID0gbmV3IFNpZGVFZmZlY3RzKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgsIHByZXZTb3VyY2VJbmRleCwgcHJldkxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSB1bmFzc2lnbmVkKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSB4Lm5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTb3VyY2VJbmRleCA9IHgucHJldlNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkxlbmd0aCA9IHgucHJldkxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdyaXRlIHRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ5dGVzIGZyb20gdmFsdWUgYW5kIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmcm9tIHRoZSBmaXJzdCBpZiBpbiB0aGUgbG9vcCB3ZSBrbm93IHRoYXQgdGFyZ2V0Q2FwYWNpdHk+MCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg8PXRhcmdldC5yZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cz09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZWFjaCBicmFuY2ggZmFsbHMgdGhyb3VnaCB0byB0aGUgbmV4dCBvbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodmFsdWU+Pj4yNCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjE2KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdpbGwgbmV2ZXIgb2NjdXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2gobGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVhY2ggYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+MjQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodmFsdWU+Pj4xNikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3aWxsIG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVycm9yQnVmZmVyQXJyYXlJbmRleDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFdlIGFjdHVhbGx5IGRvIHRoaXMgYmFja3dhcmRzIGhlcmU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBvcmRlciB0byBzYXZlIGFuIGludGVybWVkaWF0ZSB2YXJpYWJsZSwgd2Ugb3V0cHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBmaXJzdCB0byB0aGUgb3ZlcmZsb3cgYnVmZmVyIHdoYXQgZG9lcyBub3QgZml0IGludG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByZWd1bGFyIHRhcmdldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2Uga25vdyB0aGF0IDE8PXRhcmdldENhcGFjaXR5PGxlbmd0aDw9NCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIC09IHRhcmdldC5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlckFycmF5SW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVhY2ggYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlcltlcnJvckJ1ZmZlckFycmF5SW5kZXgrK109KGJ5dGUpKHZhbHVlPj4+MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJBcnJheUluZGV4KytdPShieXRlKSh2YWx1ZT4+PjgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJBcnJheUluZGV4XT0oYnl0ZSl2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3aWxsIG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGggPSAoYnl0ZSlsZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdyBvdXRwdXQgd2hhdCBmaXRzIGludG8gdGhlIHJlZ3VsYXIgdGFyZ2V0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT4+Pj04Kmxlbmd0aDsgLyogbGVuZ3RoIHdhcyByZWR1Y2VkIGJ5IHRhcmdldENhcGFjaXR5ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2godGFyZ2V0LnJlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZWFjaCBicmFuY2ggZmFsbHMgdGhyb3VnaCB0byB0aGUgbmV4dCBvbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+MTYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh2YWx1ZT4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2lsbCBuZXZlciBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGFyZ2V0IG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3JtYWwgZW5kIG9mIGNvbnZlcnNpb246IHByZXBhcmUgZm9yIGEgbmV3IGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTb3VyY2VJbmRleD1zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4PW5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgaXMgZnVsbCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogdGhlIGVuZCBvZiB0aGUgaW5wdXQgc3RyZWFtIGFuZCBkZXRlY3Rpb24gb2YgdHJ1bmNhdGVkIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmssIGJ1dCBmb3IgRUJDRElDX1NUQVRFRlVMIGNvbnZlcnNpb24KKyAgICAgICAgICAgICAgICAgICAgICogd2UgbmVlZCB0byBlbWl0IGFuIFNJIGF0IHRoZSB2ZXJ5IGVuZAorICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgKiBjb25kaXRpb25zOgorICAgICAgICAgICAgICAgICAgICAgKiAgIHN1Y2Nlc3NmdWwKKyAgICAgICAgICAgICAgICAgICAgICogICBFQkNESUNfU1RBVEVGVUwgaW4gREJDUyBtb2RlCisgICAgICAgICAgICAgICAgICAgICAqICAgZW5kIG9mIGlucHV0IGFuZCBubyB0cnVuY2F0ZWQgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzJfU0lTTyAmJiBwcmV2TGVuZ3RoPT0yICYmCisgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoICYmIHNvdXJjZUFycmF5SW5kZXg+PXNvdXJjZS5saW1pdCgpICYmIGM9PTApeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBFQkNESUNfU1RBVEVGVUwgZW5kaW5nIHdpdGggREJDUzogZW1pdCBhbiBTSSB0byByZXR1cm4gdGhlIG91dHB1dCBzdHJlYW0gdG8gU0JDUyAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSlVQ29udmVydGVyQ29uc3RhbnRzLlNJKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgbGFzdCBzb3VyY2UgY2hhcmFjdGVyJ3MgaW5kZXggKHNvdXJjZUluZGV4IHBvaW50cyBhdCBzb3VyY2VMaW1pdCBub3cpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHByZXZTb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbMF09KGJ5dGUpVUNvbnZlcnRlckNvbnN0YW50cy5TSTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByZXZMZW5ndGg9MTsgLyogd2Ugc3dpdGNoZWQgaW50byBTQkNTICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgYmFjayBpbnRvIFVDb252ZXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMj1jOworICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzPXByZXZMZW5ndGg7CisgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEJ1ZmZlck92ZXJmbG93RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIGNvbnRpbnVlIHBhcnRpYWwgbWF0Y2ggd2l0aCBuZXcgaW5wdXQsIHJlcXVpcmVzIGNudi0+cHJlRnJvbVVGaXJzdENQPj0wCisgICAgICAgICAqIG5ldmVyIGNhbGxlZCBmb3Igc2ltcGxlLCBzaW5nbGUtY2hhcmFjdGVyIGNvbnZlcnNpb24KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBjb250aW51ZU1hdGNoRnJvbVUoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCwgaW50IHNyY0luZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGludFtdIHZhbHVlID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBtYXRjaDsKKyAgICAgICAgCisgICAgICAgICAgICBtYXRjaCA9IG1hdGNoRnJvbVUocHJlRnJvbVVGaXJzdENQLCBwcmVGcm9tVUFycmF5LCBwcmVGcm9tVUJlZ2luLCBwcmVGcm9tVUxlbmd0aCwgc291cmNlLCB0YXJnZXQsIHZhbHVlLCBmbHVzaCk7CisgICAgICAgICAgICBpZihtYXRjaD49MikgeworICAgICAgICAgICAgICAgIG1hdGNoLT0yOyAvKiByZW1vdmUgMiBmb3IgdGhlIGluaXRpYWwgY29kZSBwb2ludCAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihtYXRjaD49cHJlRnJvbVVMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYWR2YW5jZSBzcmMgcG9pbnRlciBmb3IgdGhlIGNvbnN1bWVkIGlucHV0ICovCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSttYXRjaC1wcmVGcm9tVUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIG1hdGNoIGRpZCBub3QgdXNlIGFsbCBvZiBwcmVGcm9tVVtdIC0ga2VlcCB0aGUgcmVzdCBmb3IgcmVwbGF5ICovCisgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBwcmVGcm9tVUxlbmd0aC1tYXRjaDsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShwcmVGcm9tVUFycmF5LCBwcmVGcm9tVUJlZ2luK21hdGNoLCBwcmVGcm9tVUFycmF5LCBwcmVGcm9tVUJlZ2luLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBwcmVGcm9tVUxlbmd0aD0oYnl0ZSktbGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogZmluaXNoIHRoZSBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgcHJlRnJvbVVGaXJzdENQID0gVUNvbnZlcnRlckNvbnN0YW50cy5VX1NFTlRJTkVMOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3cml0ZSByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICB3cml0ZUZyb21VKHZhbHVlWzBdLCB0YXJnZXQsIG9mZnNldHMsIHNyY0luZGV4KTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmKG1hdGNoPDApIHsKKyAgICAgICAgICAgICAgICAvKiBzYXZlIHN0YXRlIGZvciBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgaW50IHNBcnJheUluZGV4OworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBqdXN0IF9hcHBlbmRfIHRoZSBuZXdseSBjb25zdW1lZCBpbnB1dCB0byBwcmVGcm9tVVtdICovCisgICAgICAgICAgICAgICAgc0FycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBtYXRjaCA9LSBtYXRjaC0yOyAvKiByZW1vdmUgMiBmb3IgdGhlIGluaXRpYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGZvcihqPXByZUZyb21VTGVuZ3RoOyBqPG1hdGNoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlRnJvbVVBcnJheVtqXT1zb3VyY2UuZ2V0KHNBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc0FycmF5SW5kZXgpOyAvKiBzYW1lIGFzICpzcmM9c3JjTGltaXQ7IGJlY2F1c2Ugd2UgcmVhY2hlZCB0aGUgZW5kIG9mIGlucHV0ICovCisgICAgICAgICAgICAgICAgcHJlRnJvbVVMZW5ndGg9KGJ5dGUpbWF0Y2g7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSAvKiBtYXRjaD09MCBvciAxICovIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIG5vIG1hdGNoCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBXZSBuZWVkIHRvIHNwbGl0IHRoZSBwcmV2aW91cyBpbnB1dCBpbnRvIHR3byBwYXJ0czoKKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIDEuIFRoZSBmaXJzdCBjb2RlIHBvaW50IGlzIHVubWFwcGFibGUgLSB0aGF0J3MgaG93IHdlIGdvdCBpbnRvCisgICAgICAgICAgICAgICAgICogICAgdHJ5aW5nIHRoZSBleHRlbnNpb24gZGF0YSBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAgICAgICAgICAgICAgICogICAgV2UgbmVlZCB0byBtb3ZlIGl0IGZyb20gdGhlIHByZUZyb21VIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAqICAgIHRvIHRoZSBlcnJvciBidWZmZXIsIHNldCBhbiBlcnJvciBjb2RlLAorICAgICAgICAgICAgICAgICAqICAgIGFuZCBwcmVwYXJlIHRoZSByZXN0IG9mIHRoZSBwcmV2aW91cyBpbnB1dCBmb3IgMi4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIDIuIFRoZSByZXN0IG9mIHRoZSBwcmV2aW91cyBpbnB1dCBtdXN0IGJlIGNvbnZlcnRlZCBvbmNlIHdlCisgICAgICAgICAgICAgICAgICogICAgY29tZSBiYWNrIGZyb20gdGhlIGNhbGxiYWNrIGZvciB0aGUgZmlyc3QgY29kZSBwb2ludC4KKyAgICAgICAgICAgICAgICAgKiAgICBBdCB0aGF0IHRpbWUsIHdlIGhhdmUgdG8gdHJ5IGFnYWluIGZyb20gc2NyYXRjaCB0byBjb252ZXJ0CisgICAgICAgICAgICAgICAgICogICAgdGhlc2UgaW5wdXQgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICAgKiAgICBUaGUgcmVwbGF5IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgdWNudi5jIGNvbnZlcnNpb24gY29kZS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYobWF0Y2g9PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbWF0Y2hlZCwgbm8gbWFwcGluZyBidXQgcmVxdWVzdCBmb3IgPHN1YmNoYXIxPiAqLworICAgICAgICAgICAgICAgICAgICB1c2VTdWJDaGFyMT10cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbW92ZSB0aGUgZmlyc3QgY29kZSBwb2ludCB0byB0aGUgZXJyb3IgZmllbGQgKi8KKyAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IHByZUZyb21VRmlyc3RDUDsKKyAgICAgICAgICAgICAgICBwcmVGcm9tVUZpcnN0Q1AgPSBVQ29udmVydGVyQ29uc3RhbnRzLlVfU0VOVElORUw7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIG1hcmsgcHJlRnJvbVUgZm9yIHJlcGxheSAqLworICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoID0gKGJ5dGUpIC0gcHJlRnJvbVVMZW5ndGg7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgZXJyb3IgY29kZSBmb3IgdW5hc3NpZ25lZCAqLworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQudW5tYXBwYWJsZUZvckxlbmd0aChzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIEBwYXJhbSBjeCBwb2ludGVyIHRvIGV4dGVuc2lvbiBkYXRhOyBpZiBOVUxMLCByZXR1cm5zIDAKKyAgICAgICAgICogQHBhcmFtIGZpcnN0Q1AgdGhlIGZpcnN0IGNvZGUgcG9pbnQgYmVmb3JlIGFsbCB0aGUgb3RoZXIgVUNoYXJzCisgICAgICAgICAqIEBwYXJhbSBwcmUgVUNoYXJzIHRoYXQgbXVzdCBtYXRjaDsgIWluaXRpYWxNYXRjaDogcGFydGlhbCBtYXRjaCB3aXRoIHRoZW0KKyAgICAgICAgICogQHBhcmFtIHByZUxlbmd0aCBsZW5ndGggb2YgcHJlLCA+PTAKKyAgICAgICAgICogQHBhcmFtIHNyYyBVQ2hhcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBjb21wbGV0ZSBhIG1hdGNoCisgICAgICAgICAqIEBwYXJhbSBzcmNMZW5ndGggbGVuZ3RoIG9mIHNyYywgPj0wCisgICAgICAgICAqIEBwYXJhbSBwTWF0Y2hWYWx1ZSBbb3V0XSBvdXRwdXQgcmVzdWx0IHZhbHVlIGZvciB0aGUgbWF0Y2ggZnJvbSB0aGUgZGF0YSBzdHJ1Y3R1cmUKKyAgICAgICAgICogQHBhcmFtIHVzZUZhbGxiYWNrICJ1c2UgZmFsbGJhY2siIGZsYWcsIHVzdWFsbHkgZnJvbSBjbnYtPnVzZUZhbGxiYWNrCisgICAgICAgICAqIEBwYXJhbSBmbHVzaCBUUlVFIGlmIHRoZSBlbmQgb2YgdGhlIGlucHV0IHN0cmVhbSBpcyByZWFjaGVkCisgICAgICAgICAqIEByZXR1cm4gPjE6IG1hdGNoZWQsIHJldHVybiB2YWx1ZT10b3RhbCBtYXRjaCBsZW5ndGggKG51bWJlciBvZiBpbnB1dCB1bml0cyBtYXRjaGVkKQorICAgICAgICAgKiAgICAgICAgICAxOiBtYXRjaGVkLCBubyBtYXBwaW5nIGJ1dCByZXF1ZXN0IGZvciA8c3ViY2hhcjE+CisgICAgICAgICAqICAgICAgICAgICAgIChvbmx5IGZvciB0aGUgZmlyc3QgY29kZSBwb2ludCkKKyAgICAgICAgICogICAgICAgICAgMDogbm8gbWF0Y2gKKyAgICAgICAgICogICAgICAgICA8MDogcGFydGlhbCBtYXRjaCwgcmV0dXJuIHZhbHVlPW5lZ2F0aXZlIHRvdGFsIG1hdGNoIGxlbmd0aAorICAgICAgICAgKiAgICAgICAgICAgICAocGFydGlhbCBtYXRjaGVzIGFyZSBuZXZlciByZXR1cm5lZCBmb3IgZmx1c2g9PVRSVUUpCisgICAgICAgICAqICAgICAgICAgICAgIChwYXJ0aWFsIG1hdGNoZXMgYXJlIG5ldmVyIHJldHVybmVkIGFzIGJlaW5nIGxvbmdlciB0aGFuIFVDTlZfRVhUX01BWF9VQ0hBUlMpCisgICAgICAgICAqICAgICAgICAgdGhlIG1hdGNoTGVuZ3RoIGlzIDIgaWYgb25seSBmaXJzdENQIG1hdGNoZWQsIGFuZCA+MiBpZiBmaXJzdENQIGFuZAorICAgICAgICAgKiAgICAgICAgIGZ1cnRoZXIgY29kZSB1bml0cyBtYXRjaGVkCisgICAgICAgICAqLworICAgICAgICAvL3N0YXRpYyBpbnQzMl90IHVjbnZfZXh0TWF0Y2hGcm9tVShjb25zdCBpbnQzMl90ICpjeCwgVUNoYXIzMiBmaXJzdENQLCBjb25zdCBVQ2hhciAqcHJlLCBpbnQzMl90IHByZUxlbmd0aCwgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsIHVpbnQzMl90ICpwTWF0Y2hWYWx1ZSwgVUJvb2wgdXNlRmFsbGJhY2ssIFVCb29sIGZsdXNoKQorICAgICAgICBwcm90ZWN0ZWQgaW50IG1hdGNoRnJvbVUoaW50IGZpcnN0Q1AsIGNoYXJbXSBwcmVBcnJheSwgaW50IHByZUFycmF5QmVnaW4sIGludCBwcmVMZW5ndGgsIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgaW50W10gcE1hdGNoVmFsdWUsIGJvb2xlYW4gZmx1c2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgY3ggPSBzaGFyZWREYXRhLm1iY3MuZXh0SW5kZXhlczsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2hhckJ1ZmZlciBzdGFnZTEyLCBzdGFnZTM7CisgICAgICAgICAgICBJbnRCdWZmZXIgc3RhZ2UzYjsKKyAgICAgICAgCisgICAgICAgICAgICBDaGFyQnVmZmVyIGZyb21VVGFibGVVQ2hhcnMsIGZyb21VU2VjdGlvblVDaGFyczsKKyAgICAgICAgICAgIEludEJ1ZmZlciBmcm9tVVRhYmxlVmFsdWVzLCBmcm9tVVNlY3Rpb25WYWx1ZXM7CisgICAgICAgIAorICAgICAgICAgICAgaW50IHZhbHVlLCBtYXRjaFZhbHVlOworICAgICAgICAgICAgaW50IGksIGosIGluZGV4LCBsZW5ndGgsIG1hdGNoTGVuZ3RoOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAKKyAgICAgICAgICAgIGlmKGN4PT1udWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIG5vIGV4dGVuc2lvbiBkYXRhLCBubyBtYXRjaCAqLworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHRyaWUgbG9va3VwIG9mIGZpcnN0Q1AgKi8KKyAgICAgICAgICAgIGluZGV4PWZpcnN0Q1A+Pj4xMDsgLyogc3RhZ2UgMSBpbmRleCAqLworICAgICAgICAgICAgaWYoaW5kZXg+PWN4LmFzSW50QnVmZmVyKCkuZ2V0KEVYVF9GUk9NX1VfU1RBR0VfMV9MRU5HVEgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHRoZSBmaXJzdCBjb2RlIHBvaW50IGlzIG91dHNpZGUgdGhlIHRyaWUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBzdGFnZTEyID0gKENoYXJCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfU1RBR0VfMTJfSU5ERVgsIGNoYXIuY2xhc3MpOworICAgICAgICAgICAgc3RhZ2UzID0gKENoYXJCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfU1RBR0VfM19JTkRFWCwgY2hhci5jbGFzcyk7CisgICAgICAgICAgICBpbmRleCA9IEZST01fVShzdGFnZTEyLCBzdGFnZTMsIGluZGV4LCBmaXJzdENQKTsKKyAgICAgICAgCisgICAgICAgICAgICBzdGFnZTNiID0gKEludEJ1ZmZlcilBUlJBWShjeCwgRVhUX0ZST01fVV9TVEFHRV8zQl9JTkRFWCwgaW50LmNsYXNzKTsKKyAgICAgICAgICAgIHZhbHVlID0gc3RhZ2UzYi5nZXQoc3RhZ2UzYi5wb3NpdGlvbigpICsgaW5kZXgpOworICAgICAgICAgICAgaWYodmFsdWU9PTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihUT19VX0lTX1BBUlRJQUwodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgLyogcGFydGlhbCBtYXRjaCwgZW50ZXIgdGhlIGxvb3AgYmVsb3cgKi8KKyAgICAgICAgICAgICAgICBpbmRleCA9IEZST01fVV9HRVRfUEFSVElBTF9JTkRFWCh2YWx1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGluaXRpYWxpemUgKi8KKyAgICAgICAgICAgICAgICBmcm9tVVRhYmxlVUNoYXJzID0gKENoYXJCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfVUNIQVJTX0lOREVYLCBjaGFyLmNsYXNzKTsKKyAgICAgICAgICAgICAgICBmcm9tVVRhYmxlVmFsdWVzID0gKEludEJ1ZmZlcilBUlJBWShjeCwgRVhUX0ZST01fVV9WQUxVRVNfSU5ERVgsIGludC5jbGFzcyk7CisgICAgICAgIAorICAgICAgICAgICAgICAgIG1hdGNoVmFsdWU9MDsKKyAgICAgICAgICAgICAgICBpPWo9bWF0Y2hMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogd2UgbXVzdCBub3QgcmVtZW1iZXIgZmFsbGJhY2sgbWF0Y2hlcyB3aGVuIG5vdCB1c2luZyBmYWxsYmFja3MgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbWF0Y2ggaW5wdXQgdW5pdHMgdW50aWwgdGhlcmUgaXMgYSBmdWxsIG1hdGNoIG9yIHRoZSBpbnB1dCBpcyBjb25zdW1lZCAqLworICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICAvKiBnbyB0byB0aGUgbmV4dCBzZWN0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGludCBvbGRwb3MgPSBmcm9tVVRhYmxlVUNoYXJzLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGZyb21VU2VjdGlvblVDaGFycyA9ICgoQ2hhckJ1ZmZlcilmcm9tVVRhYmxlVUNoYXJzLnBvc2l0aW9uKGluZGV4KSkuc2xpY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgZnJvbVVUYWJsZVVDaGFycy5wb3NpdGlvbihvbGRwb3MpOworICAgICAgICAgICAgICAgICAgICBvbGRwb3MgPSBmcm9tVVRhYmxlVmFsdWVzLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGZyb21VU2VjdGlvblZhbHVlcyA9ICgoSW50QnVmZmVyKWZyb21VVGFibGVWYWx1ZXMucG9zaXRpb24oaW5kZXgpKS5zbGljZSgpOworICAgICAgICAgICAgICAgICAgICBmcm9tVVRhYmxlVmFsdWVzLnBvc2l0aW9uKG9sZHBvcyk7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiByZWFkIGZpcnN0IHBhaXIgb2YgdGhlIHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gZnJvbVVTZWN0aW9uVUNoYXJzLmdldCgpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZyb21VU2VjdGlvblZhbHVlcy5nZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIHZhbHVlIT0wICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoRlJPTV9VX0lTX1JPVU5EVFJJUCh2YWx1ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpc0Zyb21VVXNlRmFsbGJhY2soZmlyc3RDUCkpCisgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogcmVtZW1iZXIgbG9uZ2VzdCBtYXRjaCBzbyBmYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMitpK2o7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIG1hdGNoIHByZVtdIHRoZW4gc3JjW10gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoaTxwcmVMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBwcmVBcnJheVtwcmVBcnJheUJlZ2luICsgaSsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGo8c291cmNlLnJlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gc291cmNlLmdldChzb3VyY2UucG9zaXRpb24oKSArIGorKyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBhbGwgaW5wdXQgY29uc3VtZWQsIHBhcnRpYWwgbWF0Y2ggKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZsdXNoIHx8IChsZW5ndGg9KGkraikpPk1BWF9VQ0hBUlMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGVuZCBvZiB0aGUgZW50aXJlIGlucHV0IHN0cmVhbSwgc3RvcCB3aXRoIHRoZSBsb25nZXN0IG1hdGNoIHNvIGZhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG9yOiBwYXJ0aWFsIG1hdGNoIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIFVDTlZfRVhUX01BWF9VQ0hBUlMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiZWNhdXNlIGl0IG11c3QgZml0IGludG8gc3RhdGUgYnVmZmVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb250aW51ZSB3aXRoIG1vcmUgaW5wdXQgbmV4dCB0aW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0oMitsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBzZWFyY2ggZm9yIHRoZSBjdXJyZW50IFVDaGFyICovCisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gZmluZEZyb21VKGZyb21VU2VjdGlvblVDaGFycywgbGVuZ3RoLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXg8MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gbWF0Y2ggaGVyZSwgc3RvcCB3aXRoIHRoZSBsb25nZXN0IG1hdGNoIHNvIGZhciAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZyb21VU2VjdGlvblZhbHVlcy5nZXQoZnJvbVVTZWN0aW9uVmFsdWVzLnBvc2l0aW9uKCkgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihGUk9NX1VfSVNfUEFSVElBTCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJ0aWFsIG1hdGNoLCBjb250aW51ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gRlJPTV9VX0dFVF9QQVJUSUFMX0lOREVYKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEZST01fVV9JU19ST1VORFRSSVAodmFsdWUpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnJvbVVVc2VGYWxsYmFjayhmaXJzdENQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmdWxsIG1hdGNoLCBzdG9wIHdpdGggcmVzdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoVmFsdWU9dmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoPTIraStqOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZ1bGwgbWF0Y2ggb24gZmFsbGJhY2sgbm90IHRha2VuLCBzdG9wIHdpdGggdGhlIGxvbmdlc3QgbWF0Y2ggc28gZmFyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihtYXRjaExlbmd0aD09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBtYXRjaCBhdCBhbGwgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIC8qIHJlc3VsdCBmcm9tIGZpcnN0Q1AgdHJpZSBsb29rdXAgKi8geworICAgICAgICAgICAgICAgIGlmKCBGUk9NX1VfSVNfUk9VTkRUUklQKHZhbHVlKSB8fAorICAgICAgICAgICAgICAgICAgICBpc0Zyb21VVXNlRmFsbGJhY2soZmlyc3RDUCkKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZnVsbCBtYXRjaCwgc3RvcCB3aXRoIHJlc3VsdCAqLworICAgICAgICAgICAgICAgICAgICBtYXRjaFZhbHVlPXZhbHVlOworICAgICAgICAgICAgICAgICAgICBtYXRjaExlbmd0aD0yOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhbGxiYWNrIG5vdCB0YWtlbiAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoKG1hdGNoVmFsdWUmRlJPTV9VX1JFU0VSVkVEX01BU0spICE9IDApIHsKKyAgICAgICAgICAgICAgICAvKiBkbyBub3QgaW50ZXJwcmV0IHZhbHVlcyB3aXRoIHJlc2VydmVkIGJpdHMgdXNlZCwgZm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eSAqLworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHJldHVybiByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKG1hdGNoVmFsdWU9PUZST01fVV9TVUJDSEFSMSkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOyAvKiBhc3NlcnQgbWF0Y2hMZW5ndGg9PTIgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBwTWF0Y2hWYWx1ZVswXT1GUk9NX1VfTUFTS19ST1VORFRSSVAobWF0Y2hWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2hMZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCB3cml0ZUZyb21VKGludCB2YWx1ZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBpbnQgc3JjSW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgY3ggPSBzaGFyZWREYXRhLm1iY3MuZXh0SW5kZXhlczsgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZSBidWZmZXJBcnJheVtdID0gbmV3IGJ5dGVbMStNQVhfQllURVNdOworICAgICAgICAgICAgaW50IGJ1ZmZlckFycmF5SW5kZXggPSAwOworICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdEFycmF5OworICAgICAgICAgICAgaW50IHJlc3VsdEFycmF5SW5kZXg7CisgICAgICAgICAgICBpbnQgbGVuZ3RoLCBwcmV2TGVuZ3RoOworICAgICAgICAKKyAgICAgICAgICAgIGxlbmd0aCA9IEZST01fVV9HRVRfTEVOR1RIKHZhbHVlKTsKKyAgICAgICAgICAgIHZhbHVlID0gRlJPTV9VX0dFVF9EQVRBKHZhbHVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBvdXRwdXQgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYobGVuZ3RoPD1GUk9NX1VfTUFYX0RJUkVDVF9MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEdlbmVyYXRlIGEgYnl0ZSBhcnJheSBhbmQgdGhlbiB3cml0ZSBpdCBiZWxvdy4KKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIG5vdCB0aGUgZmFzdGVzdCBwb3NzaWJsZSB3YXksIGJ1dCBpdCBzaG91bGQgYmUgb2sgZm9yCisgICAgICAgICAgICAgICAgICogZXh0ZW5zaW9uIG1hcHBpbmdzLCBhbmQgaXQgaXMgbXVjaCBzaW1wbGVyLgorICAgICAgICAgICAgICAgICAqIE9mZnNldCBhbmQgb3ZlcmZsb3cgaGFuZGxpbmcgYXJlIG9ubHkgZG9uZSBvbmNlIHRoaXMgd2F5LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGludCBwID0gYnVmZmVyQXJyYXlJbmRleCsxOyAvKiByZXNlcnZlIGJ1ZmZlclswXSBmb3Igc2hpZnRCeXRlIGJlbG93ICovCisgICAgICAgICAgICAgICAgc3dpdGNoKGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJBcnJheVtwKytdID0gKGJ5dGUpKHZhbHVlPj4+MTYpOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJBcnJheVtwKytdID0gKGJ5dGUpKHZhbHVlPj4+OCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckFycmF5W3ArK10gPSAoYnl0ZSl2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB3aWxsIG5ldmVyIG9jY3VyICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5ID0gYnVmZmVyQXJyYXk7CisgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXlJbmRleCA9IGJ1ZmZlckFycmF5SW5kZXgrMTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBieXRlW10gc2xpY2UgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgYmIgPSAoKEJ5dGVCdWZmZXIpQVJSQVkoY3gsIEVYVF9GUk9NX1VfQllURVNfSU5ERVgsIGJ5dGUuY2xhc3MpKTsKKyAgICAgICAgICAgICAgICBiYi5wb3NpdGlvbih2YWx1ZSk7CisgICAgICAgICAgICAgICAgYmIuZ2V0KHNsaWNlLCAwLCBzbGljZS5sZW5ndGgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5ID0gc2xpY2U7CisgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXlJbmRleCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogd2l0aCBjb3JyZWN0IGRhdGEgd2UgaGF2ZSBsZW5ndGg+MCAqLworICAgICAgICAKKyAgICAgICAgICAgIGlmKChwcmV2TGVuZ3RoPShpbnQpZnJvbVVuaWNvZGVTdGF0dXMpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogaGFuZGxlIFNJL1NPIHN0YXRlZnVsIG91dHB1dCAqLworICAgICAgICAgICAgICAgIGJ5dGUgc2hpZnRCeXRlOworICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwcmV2TGVuZ3RoPjEgJiYgbGVuZ3RoPT0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5nZSBmcm9tIGRvdWJsZS1ieXRlIG1vZGUgdG8gc2luZ2xlLWJ5dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgc2hpZnRCeXRlID0gKGJ5dGUpVUNvbnZlcnRlckNvbnN0YW50cy5TSTsKKyAgICAgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSAxOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZihwcmV2TGVuZ3RoPT0xICYmIGxlbmd0aD4xKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5nZSBmcm9tIHNpbmdsZS1ieXRlIG1vZGUgdG8gZG91YmxlLWJ5dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgc2hpZnRCeXRlID0gKGJ5dGUpVUNvbnZlcnRlckNvbnN0YW50cy5TTzsKKyAgICAgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXMgPSAyOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0Qnl0ZSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihzaGlmdEJ5dGUhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcHJlcGVuZCB0aGUgc2hpZnQgYnl0ZSB0byB0aGUgcmVzdWx0IGJ5dGVzICovCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckFycmF5WzBdID0gc2hpZnRCeXRlOworICAgICAgICAgICAgICAgICAgICBpZihyZXN1bHRBcnJheSE9YnVmZmVyQXJyYXkgfHwgcmVzdWx0QXJyYXlJbmRleCE9YnVmZmVyQXJyYXlJbmRleCsxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHJlc3VsdEFycmF5LCByZXN1bHRBcnJheUluZGV4LCBidWZmZXJBcnJheSwgYnVmZmVyQXJyYXlJbmRleCsxLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5ID0gYnVmZmVyQXJyYXk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5SW5kZXggPSBidWZmZXJBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICArK2xlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZyb21VV3JpdGVCeXRlcyh0aGlzLCByZXN1bHRBcnJheSwgcmVzdWx0QXJyYXlJbmRleCwgbGVuZ3RoLCB0YXJnZXQsIG9mZnNldHMsIHNyY0luZGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEByZXR1cm4gaWYoVV9GQUlMVVJFKSByZXR1cm4gdGhlIGNvZGUgcG9pbnQgZm9yIGNudi0+ZnJvbVVDaGFyMzIKKyAgICAgICAgICogICAgICAgICBlbHNlIHJldHVybiAwIGFmdGVyIG91dHB1dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSB0YXJnZXQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgZnJvbVUoaW50IGNwXywgQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgaW50IHNvdXJjZUluZGV4LCBib29sZWFuIGZsdXNoLCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICAvL0J5dGVCdWZmZXIgY3g7CisgICAgICAgICAgICBsb25nIGNwID0gY3BfICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSzsKKyAgICAgICAgCisgICAgICAgICAgICB1c2VTdWJDaGFyMT1mYWxzZTsKKyAgICAgICAgCisgICAgICAgICAgICBpZiggc2hhcmVkRGF0YS5tYmNzLmV4dEluZGV4ZXMhPW51bGwgJiYgaW5pdGlhbE1hdGNoRnJvbVUoKGludCljcCwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4LCBmbHVzaCwgY3IpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGFuIGV4dGVuc2lvbiBtYXBwaW5nIGhhbmRsZWQgdGhlIGlucHV0ICovCisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogR0IgMTgwMzAgKi8KKyAgICAgICAgICAgIGlmKChvcHRpb25zJk1CQ1NfT1BUSU9OX0dCMTgwMzApIT0wKSB7CisgICAgICAgICAgICAgICAgbG9uZ1tdIHJhbmdlOworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPGdiMTgwMzBSYW5nZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2U9Z2IxODAzMFJhbmdlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYocmFuZ2VbMF08PWNwICYmIGNwPD1yYW5nZVsxXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogZm91bmQgdGhlIFVuaWNvZGUgY29kZSBwb2ludCwgb3V0cHV0IHRoZSBmb3VyLWJ5dGUgc2VxdWVuY2UgZm9yIGl0ICovCisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxpbmVhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgYnl0ZXNbXSA9IG5ldyBieXRlWzRdOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbGluZWFyIHZhbHVlIG9mIHRoZSBmaXJzdCBHQiAxODAzMCBjb2RlIGluIHRoaXMgcmFuZ2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhcj1yYW5nZVsyXS1MSU5FQVJfMTgwMzBfQkFTRTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBhZGQgdGhlIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlICovCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXIrPShjcC1yYW5nZVswXSk7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNbM109KGJ5dGUpKDB4MzArbGluZWFyJTEwKTsgbGluZWFyLz0xMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzWzJdPShieXRlKSgweDgxK2xpbmVhciUxMjYpOyBsaW5lYXIvPTEyNjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzWzFdPShieXRlKSgweDMwK2xpbmVhciUxMCk7IGxpbmVhci89MTA7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1swXT0oYnl0ZSkoMHg4MStsaW5lYXIpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGlzIHNlcXVlbmNlICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLCBieXRlcywgMCwgNCwgdGFyZ2V0LCBvZmZzZXRzLCBzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBubyBtYXBwaW5nICovCisgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0LnVubWFwcGFibGVGb3JMZW5ndGgoMSk7CisgICAgICAgICAgICByZXR1cm4gKGludCljcDsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIHRhcmdldDx0YXJnZXRMaW1pdDsgc2V0IGVycm9yIGNvZGUgZm9yIG92ZXJmbG93CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpbml0aWFsTWF0Y2hGcm9tVShpbnQgY3AsIENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGludCBzcmNJbmRleCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgaW50W10gdmFsdWUgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgaW50IG1hdGNoOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHRyeSB0byBtYXRjaCAqLworICAgICAgICAgICAgbWF0Y2ggPSBtYXRjaEZyb21VKGNwLCBudWxsLCAwLCAwLCBzb3VyY2UsIHRhcmdldCwgdmFsdWUsIGZsdXNoKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiByZWplY3QgYSBtYXRjaCBpZiB0aGUgcmVzdWx0IGlzIGEgc2luZ2xlIGJ5dGUgZm9yIERCQ1Mtb25seSAqLworICAgICAgICAgICAgaWYoIG1hdGNoPj0yICYmCisgICAgICAgICAgICAgICAgIShGUk9NX1VfR0VUX0xFTkdUSCh2YWx1ZVswXSk9PTEgJiYKKyAgICAgICAgICAgICAgICAgIHNoYXJlZERhdGEubWJjcy5vdXRwdXRUeXBlPT1NQkNTX09VVFBVVF9EQkNTX09OTFkpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvKiBhZHZhbmNlIHNyYyBwb2ludGVyIGZvciB0aGUgY29uc3VtZWQgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkrbWF0Y2gtMik7IC8qIHJlbW92ZSAyIGZvciB0aGUgaW5pdGlhbCBjb2RlIHBvaW50ICovCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdyaXRlIHJlc3VsdCB0byB0YXJnZXQgKi8KKyAgICAgICAgICAgICAgICBjclswXSA9IHdyaXRlRnJvbVUodmFsdWVbMF0sIHRhcmdldCwgb2Zmc2V0cywgc3JjSW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmKG1hdGNoPDApIHsKKyAgICAgICAgICAgICAgICAvKiBzYXZlIHN0YXRlIGZvciBwYXJ0aWFsIG1hdGNoICovCisgICAgICAgICAgICAgICAgaW50IHNBcnJheUluZGV4OworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBjb3B5IHRoZSBmaXJzdCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgcHJlRnJvbVVGaXJzdENQPWNwOworICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBub3cgY29weSB0aGUgbmV3bHkgY29uc3VtZWQgaW5wdXQgKi8KKyAgICAgICAgICAgICAgICBzQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgICAgIG1hdGNoID0tIG1hdGNoLTI7IC8qIHJlbW92ZSAyIGZvciB0aGUgaW5pdGlhbCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxtYXRjaDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHByZUZyb21VQXJyYXlbal09c291cmNlLmdldChzQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNBcnJheUluZGV4KTsgLyogc2FtZSBhcyAqc3JjPXNyY0xpbWl0OyBiZWNhdXNlIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiBpbnB1dCAqLworICAgICAgICAgICAgICAgIHByZUZyb21VTGVuZ3RoPShieXRlKW1hdGNoOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmKG1hdGNoPT0xKSB7CisgICAgICAgICAgICAgICAgLyogbWF0Y2hlZCwgbm8gbWFwcGluZyBidXQgcmVxdWVzdCBmb3IgPHN1YmNoYXIxPiAqLworICAgICAgICAgICAgICAgIHVzZVN1YkNoYXIxPXRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIC8qIG1hdGNoPT0wIG5vIG1hdGNoICovIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIHZlcnNpb24gb2YgdWNudl9NQkNTRnJvbVVuaWNvZGUoKSBpcyBvcHRpbWl6ZWQgZm9yIHNpbmdsZS1ieXRlIGNvZGVwYWdlcworICAgICAgICAgKiB0aGF0IG1hcCBvbmx5IHRvIGFuZCBmcm9tIHRoZSBCTVAuCisgICAgICAgICAqIEluIGFkZGl0aW9uIHRvIHNpbmdsZS1ieXRlL3N0YXRlIG9wdGltaXphdGlvbnMsIHRoZSBvZmZzZXQgY2FsY3VsYXRpb25zCisgICAgICAgICAqIGJlY29tZSBtdWNoIGVhc2llci4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBjbnZNQkNTU2luZ2xlRnJvbUJNUFdpdGhPZmZzZXRzKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgCisgICAgICAgICAgICBDb2RlclJlc3VsdFtdIGNyID0ge0NvZGVyUmVzdWx0LlVOREVSRkxPV307CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4LCBsYXN0U291cmNlOworICAgICAgICAgICAgaW50IHRhcmdldENhcGFjaXR5LCBsZW5ndGg7CisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBieXRlW10gcmVzdWx0czsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgYywgc291cmNlSW5kZXg7ICAgICAgICAKKyAgICAgICAgICAgIGNoYXIgdmFsdWUsIG1pblZhbHVlOworICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCB1cCB0aGUgbG9jYWwgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRhcmdldENhcGFjaXR5ID0gdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgdGFibGUgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVUYWJsZTsKKyAgICAgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyZVQ29udmVydGVyQ29uc3RhbnRzLk9QVElPTl9TV0FQX0xGTkwpIT0wKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0cyA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXM7IC8vYWdsanBvcnQ6Y29tbWVudCBzaG91bGQgc3dhcExGTkxGcm9tVW5pY29kZUJ5dGVzIGJlIGEgQnl0ZUJ1ZmZlciBzbyByZXN1bHRzIGNhbiBiZSBhIDE2LWJpdCB2aWV3IG9mIGl0PworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBzaGFyZWREYXRhLm1iY3MuZnJvbVVuaWNvZGVCeXRlczsgLy9hZ2xqcG9ydDpjb21tZW50IHNob3VsZCBzd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXMgYmUgYSBCeXRlQnVmZmVyIHNvIHJlc3VsdHMgY2FuIGJlIGEgMTYtYml0IHZpZXcgb2YgaXQ/CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYodXNlRmFsbGJhY2spIHsKKyAgICAgICAgICAgICAgICAvKiB1c2UgYWxsIHJvdW5kdHJpcCBhbmQgZmFsbGJhY2sgcmVzdWx0cyAqLworICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMHg4MDA7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogdXNlIG9ubHkgcm91bmR0cmlwcyBhbmQgZmFsbGJhY2tzIGZyb20gcHJpdmF0ZS11c2UgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIG1pblZhbHVlID0gMHhjMDA7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgZnJvbSBVQ29udmVydGVyICovCisgICAgICAgICAgICBjID0gZnJvbVVDaGFyMzI7CisgICAgICAgIAorICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgIHNvdXJjZUluZGV4ID0gYz09MCA/IDAgOiAtMTsKKyAgICAgICAgICAgIGxhc3RTb3VyY2UgPSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzaW5jZSB0aGUgY29udmVyc2lvbiBoZXJlIGlzIDE6MSBVQ2hhcjp1aW50OF90LCB3ZSBuZWVkIG9ubHkgb25lIGNvdW50ZXIKKyAgICAgICAgICAgICAqIGZvciB0aGUgbWluaW11bSBvZiB0aGUgc291cmNlTGVuZ3RoIGFuZCB0YXJnZXRDYXBhY2l0eQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBsZW5ndGggPSBzb3VyY2UubGltaXQoKS1zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgaWYobGVuZ3RoPHRhcmdldENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHk9bGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gZG9sb29wID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmKGMhPTAgJiYgdGFyZ2V0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgIFNpZGVFZmZlY3RzU2luZ2xlQk1QIHggPSBuZXcgU2lkZUVmZmVjdHNTaW5nbGVCTVAoYywgc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWxTaW5nbGVCTVAoc291cmNlLCB4LCBjcik7CisgICAgICAgICAgICAgICAgYyA9IHguYzsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgIHdoaWxlKHRhcmdldENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogR2V0IGEgY29ycmVjdCBVbmljb2RlIGNvZGUgcG9pbnQ6CisgICAgICAgICAgICAgICAgICAgICAqIGEgc2luZ2xlIFVDaGFyIGZvciBhIEJNUCBjb2RlIHBvaW50IG9yCisgICAgICAgICAgICAgICAgICAgICAqIGEgbWF0Y2hlZCBzdXJyb2dhdGUgcGFpciBmb3IgYSAic3VwcGxlbWVudGFyeSBjb2RlIHBvaW50Ii4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGMgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIERvIG5vdCBpbW1lZGlhdGVseSBjaGVjayBmb3Igc2luZ2xlIHN1cnJvZ2F0ZXM6CisgICAgICAgICAgICAgICAgICAgICAqIEFzc3VtZSB0aGF0IHRoZXkgYXJlIHVuYXNzaWduZWQgYW5kIGNoZWNrIGZvciB0aGVtIGluIHRoYXQgY2FzZS4KKyAgICAgICAgICAgICAgICAgICAgICogVGhpcyBzcGVlZHMgdXAgdGhlIGNvbnZlcnNpb24gb2YgYXNzaWduZWQgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgdGhlIFVuaWNvZGUgY29kZSBwb2ludCBpbiBjIGludG8gY29kZXBhZ2UgYnl0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBNQkNTX1NJTkdMRV9SRVNVTFRfRlJPTV9VKHRhYmxlLCByZXN1bHRzLCBjKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGlzIHRoaXMgY29kZSBwb2ludCBhc3NpZ25lZCwgb3IgZG8gd2UgdXNlIGZhbGxiYWNrcz8gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYodmFsdWU+PW1pblZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBhc3NpZ25lZCwgd3JpdGUgdGhlIG91dHB1dCBjaGFyYWN0ZXIgYnl0ZXMgZnJvbSB2YWx1ZSBhbmQgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBsZW5ndGg9PTEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgZWFzeSBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgLS10YXJnZXRDYXBhY2l0eTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsLCB1bmFzc2lnbmVkIEJNUCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZ2V0VHJhaWw6CisgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c1NpbmdsZUJNUCB4ID0gbmV3IFNpZGVFZmZlY3RzU2luZ2xlQk1QKGMsIHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWxTaW5nbGVCTVAoc291cmNlLCB4LCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFkb2xvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGMgZG9lcyBub3QgaGF2ZSBhIG1hcHBpbmcgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGZvciBjIHRvIGNvcnJlY3RseSBhZHZhbmNlIHNvdXJjZUluZGV4ICovCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBzZXQgb2Zmc2V0cyBzaW5jZSB0aGUgc3RhcnQgb3IgdGhlIGxhc3QgZXh0ZW5zaW9uICovCisgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCA9IHNvdXJjZUFycmF5SW5kZXgtbGFzdFNvdXJjZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHNldCB0aGUgb2Zmc2V0IGZvciB0aGlzIGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gbGVuZ3RoOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG9mZnNldHMgYW5kIHNvdXJjZUluZGV4IGFyZSBub3cgc2V0IGZvciB0aGUgY3VycmVudCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogdHJ5IGFuIGV4dGVuc2lvbiBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIGxhc3RTb3VyY2UgPSBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGMgPSBmcm9tVShjLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0cywgc291cmNlSW5kZXgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggKz0gbGVuZ3RoKyhzb3VyY2VBcnJheUluZGV4LWxhc3RTb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlQXJyYXlJbmRleDsKKworICAgICAgICAgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdCBtYXBwYWJsZSBvciBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYSBtYXBwaW5nIHdhcyB3cml0dGVuIHRvIHRoZSB0YXJnZXQsIGNvbnRpbnVlICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlY2FsY3VsYXRlIHRoZSB0YXJnZXRDYXBhY2l0eSBhZnRlciBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHkgPSB0YXJnZXQucmVtYWluaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSBzb3VyY2UubGltaXQoKSAtIHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg8dGFyZ2V0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eT1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogdGFyZ2V0IGlzIGZ1bGwgKi8KKyAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCBvZmZzZXRzIHNpbmNlIHRoZSBzdGFydCBvciB0aGUgbGFzdCBjYWxsYmFjayAqLworICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IHNvdXJjZUFycmF5SW5kZXgtbGFzdFNvdXJjZTsKKyAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBzZXQgdGhlIGNvbnZlcnRlciBzdGF0ZSBiYWNrIGludG8gVUNvbnZlcnRlciAqLworICAgICAgICAgICAgZnJvbVVDaGFyMzI9YzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKworICAgICAgICAvKiBUaGlzIHZlcnNpb24gb2YgdWNudl9NQkNTRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cygpIGlzIG9wdGltaXplZCBmb3Igc2luZ2xlLWJ5dGUgY29kZXBhZ2VzLiAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY252TUJDU1NpbmdsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENvZGVyUmVzdWx0W10gY3IgPSB7Q29kZXJSZXN1bHQuVU5ERVJGTE9XfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJbXSB0YWJsZTsKKyAgICAgICAgICAgIGJ5dGVbXSByZXN1bHRzOyAvL2FnbGpwb3J0OmNvbW1lbnQgcmVzdWx0cyBpcyB1c2VkIHRvIHRvIGdldCAxNi1iaXQgdmFsdWVzIG91dCBvZiBieXRlW10gYXJyYXkKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgYzsgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgY2hhciB2YWx1ZSwgbWluVmFsdWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHNldCB1cCB0aGUgbG9jYWwgcG9pbnRlcnMgKi8KKyAgICAgICAgICAgIHNob3J0IHVuaWNvZGVNYXNrOworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0YWJsZSA9IHNoYXJlZERhdGEubWJjcy5mcm9tVW5pY29kZVRhYmxlOworICAgICAgICAKKyAgICAgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzID0gc2hhcmVkRGF0YS5tYmNzLnN3YXBMRk5MRnJvbVVuaWNvZGVCeXRlczsgLy9hZ2xqcG9ydDpjb21tZW50IHNob3VsZCBzd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXMgYmUgYSBCeXRlQnVmZmVyIHNvIHJlc3VsdHMgY2FuIGJlIGEgMTYtYml0IHZpZXcgb2YgaXQ/CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0cyA9IHNoYXJlZERhdGEubWJjcy5mcm9tVW5pY29kZUJ5dGVzOyAvL2FnbGpwb3J0OmNvbW1lbnQgc2hvdWxkIHN3YXBMRk5MRnJvbVVuaWNvZGVCeXRlcyBiZSBhIEJ5dGVCdWZmZXIgc28gcmVzdWx0cyBjYW4gYmUgYSAxNi1iaXQgdmlldyBvZiBpdD8KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZih1c2VGYWxsYmFjaykgeworICAgICAgICAgICAgICAgIC8qIHVzZSBhbGwgcm91bmR0cmlwIGFuZCBmYWxsYmFjayByZXN1bHRzICovCisgICAgICAgICAgICAgICAgbWluVmFsdWUgPSAweDgwMDsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiB1c2Ugb25seSByb3VuZHRyaXBzIGFuZCBmYWxsYmFja3MgZnJvbSBwcml2YXRlLXVzZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgbWluVmFsdWUgPSAweGMwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2FnbGpwb3J0OmNvbW1lbnQgaGFzU3VwcGxlbWVudGFyeSBvbmx5IHVzZWQgaW4gZ2V0VHJhaWwgYmxvY2sgd2hpY2ggbm93IHNpbXBseSByZXBlYXRzIHRoZSBtYXNrIG9wZXJhdGlvbgorICAgICAgICAgICAgdW5pY29kZU1hc2sgPSBzaGFyZWREYXRhLm1iY3MudW5pY29kZU1hc2s7CisgICAgICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgZnJvbSBVQ29udmVydGVyICovCisgICAgICAgICAgICBjID0gZnJvbVVDaGFyMzI7CisgICAgICAgIAorICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgIHNvdXJjZUluZGV4PSBjPT0wID8gMCA6IC0xOworICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4PTA7CisgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBkb2xvb3AgPSB0cnVlOworICAgICAgICAgICAgaWYoYyE9MCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgIGRvbG9vcCA9IGdldFRyYWlsRG91YmxlKHNvdXJjZSwgdGFyZ2V0LCB1bmljb2RlTWFzaywgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSB4LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgIHdoaWxlKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogVGhpcyBmb2xsb3dpbmcgdGVzdCBpcyB0byBzZWUgaWYgYXZhaWxhYmxlIGlucHV0IHdvdWxkIG92ZXJmbG93IHRoZSBvdXRwdXQuCisgICAgICAgICAgICAgICAgICAgICAqIEl0IGRvZXMgbm90IGNhdGNoIG91dHB1dCBvZiBtb3JlIHRoYW4gb25lIGJ5dGUgdGhhdAorICAgICAgICAgICAgICAgICAgICAgKiBvdmVyZmxvd3MgYXMgYSByZXN1bHQgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBvciBjYWxsYmFjayBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgbGFzdCBzb3VyY2UgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgKiBUaGVyZWZvcmUsIHRob3NlIHNpdHVhdGlvbnMgYWxzbyB0ZXN0IGZvciBvdmVyZmxvd3MgYW5kIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICogdGhlbiBicmVhayB0aGUgbG9vcCwgdG9vLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogR2V0IGEgY29ycmVjdCBVbmljb2RlIGNvZGUgcG9pbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIHNpbmdsZSBVQ2hhciBmb3IgYSBCTVAgY29kZSBwb2ludCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICogYSBtYXRjaGVkIHN1cnJvZ2F0ZSBwYWlyIGZvciBhICJzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQiLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgKytuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2dldFRyYWlsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBnZXRUcmFpbERvdWJsZShzb3VyY2UsIHRhcmdldCwgdW5pY29kZU1hc2ssIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvbG9vcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyWzBdID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGUgVW5pY29kZSBjb2RlIHBvaW50IGluIGMgaW50byBjb2RlcGFnZSBieXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBNQkNTX1NJTkdMRV9SRVNVTFRfRlJPTV9VKHRhYmxlLCByZXN1bHRzLCBjKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogaXMgdGhpcyBjb2RlIHBvaW50IGFzc2lnbmVkLCBvciBkbyB3ZSB1c2UgZmFsbGJhY2tzPyAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWU+PW1pblZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXNzaWduZWQsIHdyaXRlIHRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ5dGVzIGZyb20gdmFsdWUgYW5kIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlbmd0aD09MSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgZWFzeSBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3JtYWwgZW5kIG9mIGNvbnZlcnNpb246IHByZXBhcmUgZm9yIGEgbmV3IGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IG5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLyogdW5hc3NpZ25lZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRyeSBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZGVFZmZlY3RzRG91YmxlIHggPSBuZXcgU2lkZUVmZmVjdHNEb3VibGUoYywgc291cmNlQXJyYXlJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gdW5hc3NpZ25lZERvdWJsZShzb3VyY2UsIHRhcmdldCwgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0geC5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSB4LnNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTb3VyY2VJbmRleCA9IHgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFkb2xvb3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgYmFjayBpbnRvIFVDb252ZXJ0ZXIgKi8KKyAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM7CisgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKworICAgICAgICAvKiBUaGlzIHZlcnNpb24gb2YgdWNudl9NQkNTRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cygpIGlzIG9wdGltaXplZCBmb3IgZG91YmxlLWJ5dGUgY29kZXBhZ2VzLiAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY252TUJDU0RvdWJsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdFtdIGNyID0ge0NvZGVyUmVzdWx0LlVOREVSRkxPV307CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJbXSB0YWJsZTsKKyAgICAgICAgICAgIGJ5dGVbXSBieXRlczsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgYywgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc3RhZ2UyRW50cnk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnQgbGVuZ3RoOworICAgICAgICAgICAgc2hvcnQgdW5pY29kZU1hc2s7CisgICAgICAgIAorICAgICAgICAgICAgLyogdXNlIG9wdGltaXplZCBmdW5jdGlvbiBpZiBwb3NzaWJsZSAqLworICAgICAgICAgICAgdW5pY29kZU1hc2sgPSBzaGFyZWREYXRhLm1iY3MudW5pY29kZU1hc2s7CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHVwIHRoZSBsb2NhbCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0YWJsZSA9IHNoYXJlZERhdGEubWJjcy5mcm9tVW5pY29kZVRhYmxlOworICAgICAgICAKKyAgICAgICAgICAgIGlmKChvcHRpb25zJlVDb252ZXJ0ZXJDb25zdGFudHMuT1BUSU9OX1NXQVBfTEZOTCkhPTApIHsKKyAgICAgICAgICAgICAgICBieXRlcyA9IHNoYXJlZERhdGEubWJjcy5zd2FwTEZOTEZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ5dGVzID0gc2hhcmVkRGF0YS5tYmNzLmZyb21Vbmljb2RlQnl0ZXM7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgZnJvbSBVQ29udmVydGVyICovCisgICAgICAgICAgICBjID0gZnJvbVVDaGFyMzI7CisgICAgICAgIAorICAgICAgICAgICAgLyogc291cmNlSW5kZXg9LTEgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZ2FuIGluIHRoZSBwcmV2aW91cyBidWZmZXIgKi8KKyAgICAgICAgICAgIHNvdXJjZUluZGV4PSBjPT0wID8gMCA6IC0xOworICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4PTA7CisgICAgICAgIAorICAgICAgICAgICAgLyogY29udmVyc2lvbiBsb29wICovCisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICBpZihjIT0wICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIFNpZGVFZmZlY3RzRG91YmxlIHggPSBuZXcgU2lkZUVmZmVjdHNEb3VibGUoYywgc291cmNlQXJyYXlJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgZG9sb29wID0gZ2V0VHJhaWxEb3VibGUoc291cmNlLCB0YXJnZXQsIHVuaWNvZGVNYXNrLCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoZG9sb29wKSB7CisgICAgICAgICAgICAgICAgd2hpbGUoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGZvbGxvd2luZyB0ZXN0IGlzIHRvIHNlZSBpZiBhdmFpbGFibGUgaW5wdXQgd291bGQgb3ZlcmZsb3cgdGhlIG91dHB1dC4KKyAgICAgICAgICAgICAgICAgICAgICogSXQgZG9lcyBub3QgY2F0Y2ggb3V0cHV0IG9mIG1vcmUgdGhhbiBvbmUgYnl0ZSB0aGF0CisgICAgICAgICAgICAgICAgICAgICAqIG92ZXJmbG93cyBhcyBhIHJlc3VsdCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIG9yIGNhbGxiYWNrIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgKiBmcm9tIHRoZSBsYXN0IHNvdXJjZSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAgICAqIFRoZXJlZm9yZSwgdGhvc2Ugc2l0dWF0aW9ucyBhbHNvIHRlc3QgZm9yIG92ZXJmbG93cyBhbmQgd2lsbAorICAgICAgICAgICAgICAgICAgICAgKiB0aGVuIGJyZWFrIHRoZSBsb29wLCB0b28uCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZih0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBHZXQgYSBjb3JyZWN0IFVuaWNvZGUgY29kZSBwb2ludDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgc2luZ2xlIFVDaGFyIGZvciBhIEJNUCBjb2RlIHBvaW50IG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIG1hdGNoZWQgc3Vycm9nYXRlIHBhaXIgZm9yIGEgInN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCIuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICArK25leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGFsc28gdGVzdHMgaWYgdGhlIGNvZGVwYWdlIG1hcHMgc2luZ2xlIHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiBpdCBkb2VzLCB0aGVuIHN1cnJvZ2F0ZXMgYXJlIG5vdCBwYWlyZWQgYnV0IG1hcHBlZCBzZXBhcmF0ZWx5LgorICAgICAgICAgICAgICAgICAgICAgICAgICogTm90ZSB0aGF0IGluIHRoaXMgY2FzZSB1bm1hdGNoZWQgc3Vycm9nYXRlcyBhcmUgbm90IGRldGVjdGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljKSAmJiAodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VSUk9HQVRFUykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2dldFRyYWlsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZSB4ID0gbmV3IFNpZGVFZmZlY3RzRG91YmxlKGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBnZXRUcmFpbERvdWJsZShzb3VyY2UsIHRhcmdldCwgdW5pY29kZU1hc2ssIHgsIGZsdXNoLCBjcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSB4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4ID0geC5zb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkb2xvb3ApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgaW4gYyBpbnRvIGNvZGVwYWdlIGJ5dGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZTJFbnRyeSA9IE1CQ1NfU1RBR0VfMl9GUk9NX1UodGFibGUsIGMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIGJ5dGVzIGFuZCB0aGUgbGVuZ3RoIGZvciB0aGUgb3V0cHV0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBNQkNTX09VVFBVVF8yICovCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE1CQ1NfVkFMVUVfMl9GUk9NX1NUQUdFXzIoYnl0ZXMsIHN0YWdlMkVudHJ5LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh2YWx1ZSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfSU5UX01BU0spIDw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlzIHRoaXMgY29kZSBwb2ludCBhc3NpZ25lZCwgb3IgZG8gd2UgdXNlIGZhbGxiYWNrcz8gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCEoTUJDU19GUk9NX1VfSVNfUk9VTkRUUklQKHN0YWdlMkVudHJ5LCBjKSB8fCAoaXNGcm9tVVVzZUZhbGxiYWNrKGMpICYmIHZhbHVlIT0wKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFdlIGFsbG93IGEgMCBieXRlIG91dHB1dCBpZiB0aGUgImFzc2lnbmVkIiBiaXQgaXMgc2V0IGZvciB0aGlzIGVudHJ5LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZXJlIGlzIG5vIHdheSB3aXRoIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgZm9yIGZhbGxiYWNrIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRvIGJlIGEgemVybyBieXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91bmFzc2lnbmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZGVFZmZlY3RzRG91YmxlIHggPSBuZXcgU2lkZUVmZmVjdHNEb3VibGUoYywgc291cmNlQXJyYXlJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSB1bmFzc2lnbmVkRG91YmxlKHNvdXJjZSwgdGFyZ2V0LCB4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSB4LmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCA9IHguc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0geC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZG9sb29wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdyaXRlIHRoZSBvdXRwdXQgY2hhcmFjdGVyIGJ5dGVzIGZyb20gdmFsdWUgYW5kIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogZnJvbSB0aGUgZmlyc3QgaWYgaW4gdGhlIGxvb3Agd2Uga25vdyB0aGF0IHRhcmdldENhcGFjaXR5PjAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgZWFzeSBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAvKiBsZW5ndGg9PTIgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHZhbHVlPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKDI8PXRhcmdldC5yZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlclswXT0oYnl0ZSl2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0YXJnZXQgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JbMF0gPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4PW5leHRTb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRhcmdldCBpcyBmdWxsICovCisgICAgICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLyogc2V0IHRoZSBjb252ZXJ0ZXIgc3RhdGUgYmFjayBpbnRvIFVDb252ZXJ0ZXIgKi8KKyAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM7CisgICAgICAgIAorICAgICAgICAgICAgLyogd3JpdGUgYmFjayB0aGUgdXBkYXRlZCBwb2ludGVycyAqLworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3JbMF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBjbGFzcyBTaWRlRWZmZWN0c1NpbmdsZUJNUCB7CisgICAgICAgICAgICBpbnQgYywgc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIFNpZGVFZmZlY3RzU2luZ2xlQk1QKGludCBjXywgaW50IHNvdXJjZUFycmF5SW5kZXhfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGMgPSBjXzsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlQXJyYXlJbmRleF87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZ1bmN0aW9uIG1hZGUgb3V0IG9mIGJsb2NrIGxhYmVsZWQgZ2V0VHJhaWwgaW4gdWNudl9NQkNTU2luZ2xlRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cworICAgICAgICAvLyBhc3N1bWVzIGlucHV0IGMgaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gZ2V0VHJhaWxTaW5nbGVCTVAoQ2hhckJ1ZmZlciBzb3VyY2UsIFNpZGVFZmZlY3RzU2luZ2xlQk1QIHgsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHguc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgIC8qIHRlc3QgdGhlIGZvbGxvd2luZyBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsPXNvdXJjZS5nZXQoeC5zb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICArK3guc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgeC5jID0gVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpeC5jLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgY29kZXBhZ2UgZG9lcyBub3QgbWFwIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2sodW5hc3NpZ25lZCkgKi8KKyAgICAgICAgICAgICAgICAgICAgY3JbMF09Q29kZXJSZXN1bHQudW5tYXBwYWJsZUZvckxlbmd0aCgyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBjbGFzcyBTaWRlRWZmZWN0cyB7CisgICAgICAgICAgICBpbnQgYywgc291cmNlQXJyYXlJbmRleCwgc291cmNlSW5kZXgsIG5leHRTb3VyY2VJbmRleCwgcHJldlNvdXJjZUluZGV4LCBwcmV2TGVuZ3RoOworICAgICAgICAgICAgU2lkZUVmZmVjdHMoaW50IGNfLCBpbnQgc291cmNlQXJyYXlJbmRleF8sIGludCBzb3VyY2VJbmRleF8sIGludCBuZXh0U291cmNlSW5kZXhfLCBpbnQgcHJldlNvdXJjZUluZGV4XywgaW50IHByZXZMZW5ndGhfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGMgPSBjXzsKKyAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlQXJyYXlJbmRleF87CisgICAgICAgICAgICAgICAgc291cmNlSW5kZXggPSBzb3VyY2VJbmRleF87CisgICAgICAgICAgICAgICAgbmV4dFNvdXJjZUluZGV4ID0gbmV4dFNvdXJjZUluZGV4XzsKKyAgICAgICAgICAgICAgICBwcmV2U291cmNlSW5kZXggPSBwcmV2U291cmNlSW5kZXhfOworICAgICAgICAgICAgICAgIHByZXZMZW5ndGggPSBwcmV2TGVuZ3RoXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZnVuY3Rpb24gbWFkZSBvdXQgb2YgYmxvY2sgbGFiZWxlZCBnZXRUcmFpbCBpbiB1Y252X01CQ1NGcm9tVW5pY29kZVdpdGhPZmZzZXRzCisgICAgICAgIC8vIGFzc3VtZXMgaW5wdXQgYyBpcyBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICBwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiBnZXRUcmFpbChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIGludCB1bmljb2RlTWFzaywgU2lkZUVmZmVjdHMgeCwgYm9vbGVhbiBmbHVzaCwgQ29kZXJSZXN1bHRbXSBjcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYoeC5zb3VyY2VBcnJheUluZGV4PHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgZm9sbG93aW5nIGNvZGUgdW5pdCAqLworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuZ2V0KHguc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKyt4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICsreC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHguYyA9IFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKXguYywgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICBpZigodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VQUExFTUVOVEFSWSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogQk1QLW9ubHkgY29kZXBhZ2VzIGFyZSBzdG9yZWQgd2l0aG91dCBzdGFnZSAxIGVudHJpZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzID0geC5wcmV2TGVuZ3RoOyAvKiBzYXZlIHRoZSBvbGQgc3RhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKHVuYXNzaWduZWQpICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5hc3NpZ25lZChzb3VyY2UsIHRhcmdldCwgbnVsbCwgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoaXMgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhpcyBjb25kaXRpb24gdHJlZSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBmdW5jdGlvbiBtYWRlIG91dCBvZiBibG9jayBsYWJlbGVkIHVuYXNzaWduZWQgaW4gdWNudl9NQkNTRnJvbVVuaWNvZGVXaXRoT2Zmc2V0cworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiB1bmFzc2lnbmVkKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIFNpZGVFZmZlY3RzIHgsIGJvb2xlYW4gZmx1c2gsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIHRyeSBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgaW50IHNvdXJjZUJlZ2luID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHguc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICB4LmMgPSBmcm9tVSh4LmMsIHNvdXJjZSwgdGFyZ2V0LCBudWxsLCB4LnNvdXJjZUluZGV4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgeC5zb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICB4Lm5leHRTb3VyY2VJbmRleCArPSB4LnNvdXJjZUFycmF5SW5kZXgtc291cmNlQmVnaW47CisgICAgICAgICAgICB4LnByZXZMZW5ndGg9KGludClmcm9tVW5pY29kZVN0YXR1czsKKyAgICAgICAgCisgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBub3QgbWFwcGFibGUgb3IgYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBhIG1hcHBpbmcgd2FzIHdyaXR0ZW4gdG8gdGhlIHRhcmdldCwgY29udGludWUgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogcmVjYWxjdWxhdGUgdGhlIHRhcmdldENhcGFjaXR5IGFmdGVyIGFuIGV4dGVuc2lvbiBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgLy94LnRhcmdldENhcGFjaXR5PXBBcmdzLnRhcmdldExpbWl0LXgudGFyZ2V0QXJyYXlJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHgucHJldlNvdXJjZUluZGV4PXguc291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHguc291cmNlSW5kZXg9eC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgZmluYWwgY2xhc3MgU2lkZUVmZmVjdHNEb3VibGUgeworICAgICAgICAgICAgaW50IGMsIHNvdXJjZUFycmF5SW5kZXgsIHNvdXJjZUluZGV4LCBuZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICBTaWRlRWZmZWN0c0RvdWJsZShpbnQgY18sIGludCBzb3VyY2VBcnJheUluZGV4XywgaW50IHNvdXJjZUluZGV4XywgaW50IG5leHRTb3VyY2VJbmRleF8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYyA9IGNfOworICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2VBcnJheUluZGV4XzsKKyAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCA9IHNvdXJjZUluZGV4XzsKKyAgICAgICAgICAgICAgICBuZXh0U291cmNlSW5kZXggPSBuZXh0U291cmNlSW5kZXhfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBmdW5jdGlvbiBtYWRlIG91dCBvZiBibG9jayBsYWJlbGVkIGdldFRyYWlsIGluIHVjbnZfTUJDU0RvdWJsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMKKyAgICAgICAgLy8gYXNzdW1lcyBpbnB1dCBjIGlzIGxlYWQgc3Vycm9nYXRlCisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGdldFRyYWlsRG91YmxlKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgaW50IHVuaWNvZGVNYXNrLCBTaWRlRWZmZWN0c0RvdWJsZSB4LCBib29sZWFuIGZsdXNoLCBDb2RlclJlc3VsdFtdIGNyKQorICAgICAgICB7CisgICAgICAgICAgICBpZih4LnNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgY2hhciB0cmFpbD1zb3VyY2UuZ2V0KHguc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKyt4LnNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICsreC5uZXh0U291cmNlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHguYyA9IFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKXguYywgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICBpZigodW5pY29kZU1hc2smVUNvbnZlcnRlckNvbnN0YW50cy5IQVNfU1VQUExFTUVOVEFSWSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogQk1QLW9ubHkgY29kZXBhZ2VzIGFyZSBzdG9yZWQgd2l0aG91dCBzdGFnZSAxIGVudHJpZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKHVuYXNzaWduZWQpICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5hc3NpZ25lZERvdWJsZShzb3VyY2UsIHRhcmdldCwgeCwgZmx1c2gsIGNyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IHRoaXMgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhpcyBjb25kaXRpb24gdHJlZSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGxlYWQgY29kZSB1bml0ICgxc3Qgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICBjclswXSA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aCgyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gZnVuY3Rpb24gbWFkZSBvdXQgb2YgYmxvY2sgbGFiZWxlZCB1bmFzc2lnbmVkIGluIHVjbnZfTUJDU0RvdWJsZUZyb21Vbmljb2RlV2l0aE9mZnNldHMKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gdW5hc3NpZ25lZERvdWJsZShDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIFNpZGVFZmZlY3RzRG91YmxlIHgsIGJvb2xlYW4gZmx1c2gsIENvZGVyUmVzdWx0W10gY3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIHRyeSBhbiBleHRlbnNpb24gbWFwcGluZyAqLworICAgICAgICAgICAgaW50IHNvdXJjZUJlZ2luID0geC5zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHguc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICB4LmMgPSBmcm9tVSh4LmMsIHNvdXJjZSwgdGFyZ2V0LCBudWxsLCB4LnNvdXJjZUluZGV4LCBmbHVzaCwgY3IpOworICAgICAgICAgICAgeC5zb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICB4Lm5leHRTb3VyY2VJbmRleCArPSB4LnNvdXJjZUFycmF5SW5kZXggLSBzb3VyY2VCZWdpbjsKKyAgICAgICAgCisgICAgICAgICAgICBpZihjclswXS5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAvKiBub3QgbWFwcGFibGUgb3IgYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBhIG1hcHBpbmcgd2FzIHdyaXR0ZW4gdG8gdGhlIHRhcmdldCwgY29udGludWUgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogcmVjYWxjdWxhdGUgdGhlIHRhcmdldENhcGFjaXR5IGFmdGVyIGFuIGV4dGVuc2lvbiBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgLy94LnRhcmdldENhcGFjaXR5PXBBcmdzLnRhcmdldExpbWl0LXgudGFyZ2V0QXJyYXlJbmRleDsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLyogbm9ybWFsIGVuZCBvZiBjb252ZXJzaW9uOiBwcmVwYXJlIGZvciBhIG5ldyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICB4LnNvdXJjZUluZGV4PXgubmV4dFNvdXJjZUluZGV4OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBPdmVycmlkZXMgc3VwZXIgY2xhc3MgbWV0aG9kCisgICAgICAgICAqIEBwYXJhbSBlbmNvZGVyCisgICAgICAgICAqIEBwYXJhbSBzb3VyY2UKKyAgICAgICAgICogQHBhcmFtIHRhcmdldAorICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0cworICAgICAgICAgKiBAcmV0dXJuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgY2JGcm9tVVdyaXRlU3ViICggQ2hhcnNldEVuY29kZXJJQ1UgZW5jb2RlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50QnVmZmVyIG9mZnNldHMpeworICAgICAgICAgICAgQ2hhcnNldE1CQ1MgY3MgPSAoQ2hhcnNldE1CQ1MpIGVuY29kZXIuY2hhcnNldCgpOworICAgICAgICAgICAgYnl0ZVtdIHN1YmNoYXIsIHA7CisgICAgICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICBpbnQgbGVuZ3RoLGk9MDsKKyAgICAgICAgICAgIC8qIGZpcnN0LCBzZWxlY3QgYmV0d2VlbiBzdWJDaGFyIGFuZCBzdWJDaGFyMSAqLworICAgICAgICAgICAgaWYoIGNzLnN1YkNoYXIxIT0wICYmCisgICAgICAgICAgICAgICAgKGNzLnNoYXJlZERhdGEubWJjcy5leHRJbmRleGVzIT1udWxsID8KKyAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci51c2VTdWJDaGFyMSA6CisgICAgICAgICAgICAgICAgICAgIChlbmNvZGVyLmludmFsaWRVQ2hhckJ1ZmZlclswXTw9MHhmZikpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvKiBzZWxlY3Qgc3ViQ2hhcjEgaWYgaXQgaXMgc2V0IChub3QgMCkgYW5kIHRoZSB1bm1hcHBhYmxlIFVuaWNvZGUgY29kZSBwb2ludCBpcyB1cCB0byBVKzAwZmYgKElCTSBNQkNTIGJlaGF2aW9yKSAqLworICAgICAgICAgICAgICAgIHN1YmNoYXIgPSBuZXcgYnl0ZVsxXTsKKyAgICAgICAgICAgICAgICBzdWJjaGFyWzBdPWNzLnN1YkNoYXIxOworICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBzZWxlY3Qgc3ViQ2hhciBpbiBhbGwgb3RoZXIgY2FzZXMgKi8KKyAgICAgICAgICAgICAgICBzdWJjaGFyPWNzLnN1YkNoYXI7CisgICAgICAgICAgICAgICAgbGVuZ3RoPWNzLnN1YkNoYXJMZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIHJlc2V0IHRoZSBzZWxlY3RvciBmb3IgdGhlIG5leHQgY29kZSBwb2ludCAqLworICAgICAgICAgICAgZW5jb2Rlci51c2VTdWJDaGFyMT1mYWxzZTsKKworICAgICAgICAgICAgc3dpdGNoKGNzLnNoYXJlZERhdGEubWJjcy5vdXRwdXRUeXBlKSB7CisgICAgICAgICAgICBjYXNlIE1CQ1NfT1VUUFVUXzJfU0lTTzoKKyAgICAgICAgICAgICAgICBwPWJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBmcm9tVW5pY29kZVN0YXR1cyBjb250YWlucyBwcmV2TGVuZ3RoICovCisgICAgICAgICAgICAgICAgc3dpdGNoKGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgaWYoZW5jb2Rlci5mcm9tVW5pY29kZVN0YXR1cz09MikgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogREJDUyBtb2RlIGFuZCBTQkNTIHN1YiBjaGFyOiBjaGFuZ2UgdG8gU0JDUyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci5mcm9tVW5pY29kZVN0YXR1cz0xOworICAgICAgICAgICAgICAgICAgICAgICAgcFtpKytdPVVDb252ZXJ0ZXJDb25zdGFudHMuU0k7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcFtpKytdPXN1YmNoYXJbMF07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgaWYoZW5jb2Rlci5mcm9tVW5pY29kZVN0YXR1czw9MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogU0JDUyBtb2RlIGFuZCBEQkNTIHN1YiBjaGFyOiBjaGFuZ2UgdG8gREJDUyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci5mcm9tVW5pY29kZVN0YXR1cz0yOworICAgICAgICAgICAgICAgICAgICAgICAgcFtpKytdPVVDb252ZXJ0ZXJDb25zdGFudHMuU087CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcFtpKytdPXN1YmNoYXJbMF07CisgICAgICAgICAgICAgICAgICAgIHBbaSsrXT1zdWJjaGFyWzFdOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5jYkZyb21VV3JpdGVTdWIoZW5jb2Rlciwgc291cmNlLCB0YXJnZXQsIG9mZnNldHMpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2JGcm9tVVdyaXRlU3ViKGVuY29kZXIsIHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXRzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gICAgCisKKworICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlciBuZXdEZWNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXREZWNvZGVyTUJDUyh0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2Rlck1CQ1ModGhpcyk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0UHJvdmlkZXJJQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRQcm92aWRlcklDVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MzIxODQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0UHJvdmlkZXJJQ1UuamF2YQpAQCAtMCwwICsxLDI0OCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5VbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5zcGkuQ2hhcnNldFByb3ZpZGVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyc2V0UHJvdmlkZXIgZm9yIGxvYWRpbmcgYW5kIHByb3ZpZGluZyBjaGFyc2V0IGNvbnZlcnRlcnMKKyAqIGluIElDVS4KKyAqIEBkcmFmdCBJQ1UgMy42CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENoYXJzZXRQcm92aWRlcklDVSBleHRlbmRzIENoYXJzZXRQcm92aWRlcnsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXRQcm92aWRlcklDVSgpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgY2hhcnNldCBmb3IgdGhlIGdpdmVuIGNoYXJzZXQgbmFtZS4gCisgICAgICogSW1wbGVtZW50cyB0aGUgYWJzdHJhY3QgbWV0aG9kIG9mIHN1cGVyIGNsYXNzLgorICAgICAqIEBwYXJhbSBjaGFyc2V0TmFtZSBjaGFyc2V0IG5hbWUKKyAgICAgKiBAcmV0dXJuIGNoYXJzZXQgb2JqZXQgZm9yIHRoZSBnaXZlbiBjaGFyc2V0IG5hbWUsIG51bGwgaWYgdW5zdXBwb3J0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgQ2hhcnNldCBjaGFyc2V0Rm9yTmFtZShTdHJpbmcgY2hhcnNldE5hbWUpeworICAgICAgICB0cnl7CisgICAgICAgICAgICAvLyBnZXQgdGhlIGNhbm9uaWNhbCBuYW1lCisgICAgICAgICAgICBTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSA9IGdldElDVUNhbm9uaWNhbE5hbWUoY2hhcnNldE5hbWUpOyAgICAgIAorICAgIAorICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgY29udmVydGVyIG9iamVjdCBhbmQgcmV0dXJuIGl0CisgICAgICAgICAgICBpZihpY3VDYW5vbmljYWxOYW1lPT1udWxsIHx8IGljdUNhbm9uaWNhbE5hbWUubGVuZ3RoKCk9PTApeworICAgICAgICAgICAgICAgIC8vIHRoaXMgd291bGQgbWFrZSB0aGUgQ2hhcnNldCBBUEkgdG8gdGhyb3cgCisgICAgICAgICAgICAgICAgLy8gdW5zdXBwb3J0ZWQgZW5jb2RpbmcgZXhjZXB0aW9uCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZ2V0Q2hhcnNldChpY3VDYW5vbmljYWxOYW1lKTsKKyAgICAgICAgfWNhdGNoKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiBleCl7CisgICAgICAgIH1jYXRjaChJT0V4Y2VwdGlvbiBleCl7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBjb252ZXJ0ZXIgYXMgZGVmaW5lZCBieSBKYXZhCisgICAgICogQHBhcmFtIGVuYyBjb252ZXJ0ZXIgbmFtZQorICAgICAqIEByZXR1cm4gY2Fub25pY2FsIG5hbWUgb2YgdGhlIGNvbnZlcnRlcgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgZm9yIGludGVybmFsIElDVSB1c2Ugb25seQorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRJQ1VDYW5vbmljYWxOYW1lKFN0cmluZyBlbmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBjYW5vbmljYWxOYW1lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHJldCA9IG51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGlmKGVuYyE9bnVsbCl7CisgICAgICAgICAgICAgICAgaWYoKGNhbm9uaWNhbE5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0Q2Fub25pY2FsTmFtZShlbmMsICJNSU1FIikpIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gY2Fub25pY2FsTmFtZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZigoY2Fub25pY2FsTmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRDYW5vbmljYWxOYW1lKGVuYywgIklBTkEiKSkhPW51bGwpeworICAgICAgICAgICAgICAgICAgICByZXQgPSBjYW5vbmljYWxOYW1lOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKChjYW5vbmljYWxOYW1lID0gVUNvbnZlcnRlckFsaWFzLmdldENhbm9uaWNhbE5hbWUoZW5jLCAiIikpIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gY2Fub25pY2FsTmFtZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZigoY2Fub25pY2FsTmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRBbGlhcyhlbmMsIDApKSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIC8qIHdlIGhhdmUgc29tZSBhbGlhc2VzIGluIHRoZSBmb3JtIHgtYmxhaCAuLiBtYXRjaCB0aG9zZSBmaXJzdCAqLworICAgICAgICAgICAgICAgICAgICByZXQgPSBjYW5vbmljYWxOYW1lOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKGVuYy5pbmRleE9mKCJ4LSIpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgLyogVE9ETzogTWF0Y2ggd2l0aCBnZXRKYXZhQ2Fub25pY2FsTmFtZSBtZXRob2QgKi8KKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0ZW1wWyBVQ05WX01BWF9DT05WRVJURVJfTkFNRV9MRU5HVEhdID0gezB9OworICAgICAgICAgICAgICAgICAgICBzdHJjcHkodGVtcCwgZW5jTmFtZSsyKTsKKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gZW5jLnN1YnN0cmluZygyKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5zdXBwb3J0ZWQgZW5jb2RpbmcgKi8KKyAgICAgICAgICAgICAgICAgICByZXQgPSAiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9Y2F0Y2goSU9FeGNlcHRpb24gZXgpeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbihlbmMpOworICAgICAgICB9IAorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDaGFyc2V0IGdldENoYXJzZXQoU3RyaW5nIGljdUNhbm9uaWNhbE5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICBTdHJpbmdbXSBhbGlhc2VzID0gKFN0cmluZ1tdKWdldEFsaWFzZXMoaWN1Q2Fub25pY2FsTmFtZSk7ICAgIAorICAgICAgIFN0cmluZyBjYW5vbmljYWxOYW1lID0gZ2V0SmF2YUNhbm9uaWNhbE5hbWUoaWN1Q2Fub25pY2FsTmFtZSk7CisgICAgICAgcmV0dXJuIChDaGFyc2V0SUNVLmdldENoYXJzZXQoaWN1Q2Fub25pY2FsTmFtZSxjYW5vbmljYWxOYW1lLCBhbGlhc2VzKSk7ICAKKyAgICB9CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2Fub25pY2FsIG5hbWUgb2YgdGhlIGNvbnZlcnRlciBhcyBkZWZpbmVkIGJ5IEphdmEKKyAgICAgKiBAcGFyYW0gaWN1Q2Fub25pY2FsTmFtZSBjb252ZXJ0ZXIgbmFtZQorICAgICAqIEByZXR1cm4gY2Fub25pY2FsIG5hbWUgb2YgdGhlIGNvbnZlcnRlcgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldEphdmFDYW5vbmljYWxOYW1lKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lKXsKKyAgICAgICAgLyoKKyAgICAgICAgSWYgYSBjaGFyc2V0IGxpc3RlZCBpbiB0aGUgSUFOQSBDaGFyc2V0IFJlZ2lzdHJ5IGlzIHN1cHBvcnRlZCBieSBhbiBpbXBsZW1lbnRhdGlvbiAKKyAgICAgICAgb2YgdGhlIEphdmEgcGxhdGZvcm0gdGhlbiBpdHMgY2Fub25pY2FsIG5hbWUgbXVzdCBiZSB0aGUgbmFtZSBsaXN0ZWQgaW4gdGhlIHJlZ2lzdHJ5LiAKKyAgICAgICAgTWFueSBjaGFyc2V0cyBhcmUgZ2l2ZW4gbW9yZSB0aGFuIG9uZSBuYW1lIGluIHRoZSByZWdpc3RyeSwgaW4gd2hpY2ggY2FzZSB0aGUgcmVnaXN0cnkgCisgICAgICAgIGlkZW50aWZpZXMgb25lIG9mIHRoZSBuYW1lcyBhcyBNSU1FLXByZWZlcnJlZC4gSWYgYSBjaGFyc2V0IGhhcyBtb3JlIHRoYW4gb25lIHJlZ2lzdHJ5IAorICAgICAgICBuYW1lIHRoZW4gaXRzIGNhbm9uaWNhbCBuYW1lIG11c3QgYmUgdGhlIE1JTUUtcHJlZmVycmVkIG5hbWUgYW5kIHRoZSBvdGhlciBuYW1lcyBpbiAKKyAgICAgICAgdGhlIHJlZ2lzdHJ5IG11c3QgYmUgdmFsaWQgYWxpYXNlcy4gSWYgYSBzdXBwb3J0ZWQgY2hhcnNldCBpcyBub3QgbGlzdGVkIGluIHRoZSBJQU5BIAorICAgICAgICByZWdpc3RyeSB0aGVuIGl0cyBjYW5vbmljYWwgbmFtZSBtdXN0IGJlZ2luIHdpdGggb25lIG9mIHRoZSBzdHJpbmdzICJYLSIgb3IgIngtIi4KKyAgICAgICAgKi8KKyAgICAgICAgaWYoaWN1Q2Fub25pY2FsTmFtZT09bnVsbCApeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmcgY05hbWUgPSBudWxsOworICAgICAgICAgICAgLyogZmluZCBvdXQgdGhlIGFsaWFzIHdpdGggTUlNRSB0YWcgKi8KKyAgICAgICAgICAgIGlmKChjTmFtZT1VQ29udmVydGVyQWxpYXMuZ2V0U3RhbmRhcmROYW1lKGljdUNhbm9uaWNhbE5hbWUsICJNSU1FIikpIT1udWxsKXsKKyAgICAgICAgICAgIC8qIGZpbmQgb3V0IHRoZSBhbGlhcyB3aXRoIElBTkEgdGFnICovCisgICAgICAgICAgICB9ZWxzZSBpZigoY05hbWU9VUNvbnZlcnRlckFsaWFzLmdldFN0YW5kYXJkTmFtZShpY3VDYW5vbmljYWxOYW1lLCAiSUFOQSIpKSE9bnVsbCl7CisgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgLyogIAorICAgICAgICAgICAgICAgICAgICBjaGVjayB0byBzZWUgaWYgYW4gYWxpYXMgYWxyZWFkeSBleGlzdHMgd2l0aCB4LSBwcmVmaXgsIGlmIHllcyB0aGVuIAorICAgICAgICAgICAgICAgICAgICBtYWtlIHRoYXQgdGhlIGNhbm9uaWNhbCBuYW1lCisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpbnQgYWxpYXNOdW0gPSBVQ29udmVydGVyQWxpYXMuY291bnRBbGlhc2VzKGljdUNhbm9uaWNhbE5hbWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8YWxpYXNOdW07aSsrKXsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRBbGlhcyhpY3VDYW5vbmljYWxOYW1lLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobmFtZSE9bnVsbCAmJiBuYW1lLmluZGV4T2YoIngtIik9PTApeworICAgICAgICAgICAgICAgICAgICAgICAgY05hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogbGFzdCByZXNvcnQganVzdCBhcHBlbmQgeC0gdG8gYW55IG9mIHRoZSBhbGlhcyBhbmQgCisgICAgICAgICAgICAgICAgbWFrZSBpdCB0aGUgY2Fub25pY2FsIG5hbWUgKi8KKyAgICAgICAgICAgICAgICBpZigoY05hbWU9PW51bGwgfHwgY05hbWUubGVuZ3RoKCk9PTApKXsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRTdGFuZGFyZE5hbWUoaWN1Q2Fub25pY2FsTmFtZSwgIlVUUjIyIik7CisgICAgICAgICAgICAgICAgICAgIGlmKG5hbWU9PW51bGwgJiYgaWN1Q2Fub25pY2FsTmFtZS5pbmRleE9mKCIsIikhPS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBVQ29udmVydGVyQWxpYXMuZ2V0QWxpYXMoaWN1Q2Fub25pY2FsTmFtZSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogaWYgdGhlcmUgaXMgbm8gVVRSMjIgY2Fub25pY2FsIG5hbWUgLi4gdGhlbiBqdXN0IHJldHVybiBpdHNlbGYqLworICAgICAgICAgICAgICAgICAgICBpZihuYW1lPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpY3VDYW5vbmljYWxOYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNOYW1lID0gIngtIisgbmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY05hbWU7CisgICAgICAgIH1jYXRjaCAoSU9FeGNlcHRpb24gZXgpeworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBHZXRzIHRoZSBhbGlhc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29udmVydGVyIG5hbWUKKyAgICAgKiBAcGFyYW0gZW5jTmFtZSBjb252ZXJ0ZXIgbmFtZQorICAgICAqIEByZXR1cm4gY29udmVydGVyIG5hbWVzIGFzIGVsZW1lbnRzIGluIGFuIG9iamVjdCBhcnJheQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0QWxpYXNlcyhTdHJpbmcgZW5jTmFtZSl0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIHJldCA9IG51bGw7CisgICAgICAgIGludCBhbGlhc051bSA9IDA7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGludCBqPTA7CisgICAgICAgIFN0cmluZyBhbGlhc0FycmF5Wy8qNTAqL10gPSBuZXcgU3RyaW5nWzUwXTsKKyAgICAKKyAgICAgICAgaWYoZW5jTmFtZSAhPSBudWxsKXsKKyAgICAgICAgICAgIGFsaWFzTnVtID0gVUNvbnZlcnRlckFsaWFzLmNvdW50QWxpYXNlcyhlbmNOYW1lKTsKKyAgICAgICAgICAgIGZvcihpPTAsaj0wO2k8YWxpYXNOdW07aSsrKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRBbGlhcyhlbmNOYW1lLGkpOworICAgICAgICAgICAgICAgIGlmKG5hbWUuaW5kZXhPZignKycpPT0tMSAmJiBuYW1lLmluZGV4T2YoJywnKT09LTEpeworICAgICAgICAgICAgICAgICAgICBhbGlhc0FycmF5W2orK109IG5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gbmV3IFN0cmluZ1tqXTsKKyAgICAgICAgICAgIGZvcig7LS1qPj0wOykgeworICAgICAgICAgICAgICAgIHJldFtqXSA9IGFsaWFzQXJyYXlbal07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKHJldCk7CisgICAgCisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBwdXRDaGFyc2V0cyhNYXAgbWFwKXsKKyAgICAgICAgaW50IG51bSA9IFVDb252ZXJ0ZXJBbGlhcy5jb3VudEF2YWlsYWJsZSgpOworICAgICAgICBmb3IoaW50IGk9MDtpPG51bTtpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVUNvbnZlcnRlckFsaWFzLmdldEF2YWlsYWJsZU5hbWUoaSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENoYXJzZXQgY3MgPSAgZ2V0Q2hhcnNldChuYW1lKTsKKyAgICAgICAgICAgICAgICBtYXAucHV0KGNzLCBnZXRKYXZhQ2Fub25pY2FsTmFtZShuYW1lKSk7CisgICAgICAgICAgICB9Y2F0Y2goVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIH1jYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWRkIG9ubHkgY2hhcnNldHMgdGhhdCBjYW4gYmUgY3JlYXRlZCEKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3IgZm9yIHRoZSBhdmFpbGFibGUgY2hhcnNldHMuCisgICAgICogSW1wbGVtZW50cyB0aGUgYWJzdHJhY3QgbWV0aG9kIG9mIHN1cGVyIGNsYXNzLgorICAgICAqIEByZXR1cm4gSXRlcmF0b3IgdGhlIGNoYXJzZXQgbmFtZSBpdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBJdGVyYXRvciBjaGFyc2V0cygpeworICAgICAgICBIYXNoTWFwIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHB1dENoYXJzZXRzKG1hcCk7CisgICAgICAgIHJldHVybiBtYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2Fub25pY2FsIG5hbWVzIG9mIGF2YWlsYWJsZSBjb252ZXJ0ZXJzIAorICAgICAqIEByZXR1cm4gT2JqZWN0W10gbmFtZXMgYXMgYW4gb2JqZWN0IGFycmF5CisgICAgICogQGludGVybmFsIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBmb3IgaW50ZXJuYWwgSUNVIHVzZSBvbmx5CisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0W10gZ2V0QXZhaWxhYmxlTmFtZXMoKXsKKyAgICAgICAgSGFzaE1hcCBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBwdXRDaGFyc2V0cyhtYXApOworICAgICAgICByZXR1cm4gbWFwLnZhbHVlcygpLnRvQXJyYXkoKTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhbGwgbmFtZXMgYXZhaWxhYmxlCisgICAgICogQHJldHVybiBTdHJpbmdbXSBhbiBhcnJ5YSBvZiBhbGwgYXZhaWxhYmxlIG5hbWVzCisgICAgICogQGludGVybmFsIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBmb3IgaW50ZXJuYWwgSUNVIHVzZSBvbmx5CisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0QWxsTmFtZXMoKXsKKyAgICAgICAgaW50IG51bSA9IFVDb252ZXJ0ZXJBbGlhcy5jb3VudEF2YWlsYWJsZSgpOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IG5ldyBTdHJpbmdbbnVtXTsKKyAgICAgICAgZm9yKGludCBpPTA7aTxudW07aSsrKSB7CisgICAgICAgICAgICBuYW1lc1tpXSA9IFVDb252ZXJ0ZXJBbGlhcy5nZXRBdmFpbGFibGVOYW1lKGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMTYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYxNi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhYjg4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMTYuamF2YQpAQCAtMCwwICsxLDQ0MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworY2xhc3MgQ2hhcnNldFVURjE2IGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgCisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHhmZiwgKGJ5dGUpMHhmZH07CisgICAKKyAgICBwdWJsaWMgQ2hhcnNldFVURjE2KFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIG1heEJ5dGVzUGVyQ2hhciA9IDQ7CisgICAgICAgIG1pbkJ5dGVzUGVyQ2hhciA9IDI7CisgICAgICAgIG1heENoYXJzUGVyQnl0ZSA9IDE7CisgICAgfQorICAgIGNsYXNzIENoYXJzZXREZWNvZGVyVVRGMTYgZXh0ZW5kcyBDaGFyc2V0RGVjb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldERlY29kZXJVVEYxNihDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcyk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZGVjb2RlTG9vcChCeXRlQnVmZmVyIHNvdXJjZSwgQ2hhckJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSAmJiB0b1VuaWNvZGVTdGF0dXM9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBubyBpbnB1dCwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCF0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4PTAsIGNvdW50PTAsIGxlbmd0aCwgc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgIGNoYXIgYz0wLCB0cmFpbDsKKyAgICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKworICAgICAgICAgICAgLyogY29tcGxldGUgYSBwYXJ0aWFsIFVDaGFyIG9yIHBhaXIgZnJvbSB0aGUgbGFzdCBjYWxsICovCisgICAgICAgICAgICBpZih0b1VuaWNvZGVTdGF0dXMhPTApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIHNwZWNpYWwgY2FzZTogc2luZ2xlIGJ5dGUgZnJvbSBhIHByZXZpb3VzIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgKiB3aGVyZSB0aGUgYnl0ZSB0dXJuZWQgb3V0IG5vdCB0byBiZWxvbmcgdG8gYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICAgKiBhbmQgdGhlIHByZWNlZGluZywgdW5tYXRjaGVkIGxlYWQgc3Vycm9nYXRlIHdhcyBwdXQgaW50byB0b1VCeXRlc1tdCisgICAgICAgICAgICAgICAgICogZm9yIGVycm9yIGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VCeXRlc0JlZ2luKzBdPShieXRlKXRvVW5pY29kZVN0YXR1czsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKChjb3VudD10b1VMZW5ndGgpIT0wKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIHBBcnJheT10b1VCeXRlc0FycmF5OworICAgICAgICAgICAgICAgIGludCBwQXJyYXlJbmRleCA9IHRvVUJ5dGVzQmVnaW47CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBwQXJyYXlbY291bnQrK109c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUluZGV4OworICAgICAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgaWYoY291bnQ9PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9KGNoYXIpKCgocEFycmF5W3BBcnJheUluZGV4KzBdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHBBcnJheVtwQXJyYXlJbmRleCsxXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHRoZSBCTVAgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnRpbnVlIGNvbGxlY3RpbmcgYnl0ZXMgZm9yIHRoZSB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7IC8qIGF2b2lkIHVubmVjZXNzYXJ5IHN1cnJvZ2F0ZSBoYW5kbGluZyBiZWxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggdG8gZXJyb3IgaGFuZGxpbmcgZm9yIGFuIHVubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvdW50PT00KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPShjaGFyKSgoKHBBcnJheVtwQXJyYXlJbmRleCswXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrMV0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsPShjaGFyKSgoKHBBcnJheVtwQXJyYXlJbmRleCsyXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrM10mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHRoZSBzdXJyb2dhdGUgcGFpciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0LnJlbWFpbmluZygpPj0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogdGFyZ2V0Q2FwYWNpdHk9PTEgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVtjaGFyRXJyb3JCdWZmZXJCZWdpbiswXT10cmFpbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBsZWFkIHN1cnJvZ2F0ZSwgaGFuZGxlIGhlcmUgZm9yIGNvbnNpc3RlbnQgdG9VQnl0ZXNbXSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBiYWNrIG91dCByZWFkaW5nIHRoZSBjb2RlIHVuaXQgYWZ0ZXIgaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigoc291cmNlLnBvc2l0aW9uKCktc291cmNlQXJyYXlJbmRleCk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleC09MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiB0aGUgdHJhaWwgdW5pdCdzIGZpcnN0IGJ5dGUgd2FzIGluIGEgcHJldmlvdXMgYnVmZmVyLCB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdlIG5lZWQgdG8gcHV0IGl0IGludG8gYSBzcGVjaWFsIHBsYWNlIGJlY2F1c2UgdG9VQnl0ZXNbXSB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHVzZWQgZm9yIHRoZSBsZWFkIHVuaXQncyBieXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzPTB4MTAwfHBBcnJheVtwQXJyYXlJbmRleCsyXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gd2hpbGUobGVuZ3RoPjApOworICAgICAgICAgICAgICAgIHRvVUxlbmd0aD0oYnl0ZSljb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBjb3B5IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgIGNvdW50PTIqdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgaWYoY291bnQ+bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY291bnQ9bGVuZ3RoJn4xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYz09MCAmJiBjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoLT1jb3VudDsKKyAgICAgICAgICAgICAgICBjb3VudD4+PTE7CisgICAgICAgICAgICAgICAgLy90YXJnZXRDYXBhY2l0eS09Y291bnQ7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cz09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPShjaGFyKSgoKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tY291bnQ+MCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpICYmIGNvdW50Pj0yICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSkpCisgICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz00OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWNvdW50PjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoY291bnQ9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZG9uZSB3aXRoIHRoZSBsb29wIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgYyBmb3Igc3Vycm9nYXRlIGhhbmRsaW5nLCB0cmFpbCB3aWxsIGJlIHNldCB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICBsZW5ndGgrPTIqKGNvdW50LTEpOyAvKiBvbmUgbW9yZSBieXRlIHBhaXIgd2FzIGNvbnN1bWVkIHRoYW4gY291bnQgZGVjcmVtZW50ZWQgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoYyE9MCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYyBpcyBhIHN1cnJvZ2F0ZSwgYW5kCisgICAgICAgICAgICAgICAgICogLSBzb3VyY2Ugb3IgdGFyZ2V0IHRvbyBzaG9ydAorICAgICAgICAgICAgICAgICAqIC0gb3IgdGhlIHN1cnJvZ2F0ZSBpcyB1bm1hdGNoZWQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W3RvVUJ5dGVzQmVnaW4rMF09KGJ5dGUpKGM+Pj44KTsKKyAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W3RvVUJ5dGVzQmVnaW4rMV09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MjsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHRoZSBzdXJyb2dhdGUgcGFpciwgd2lsbCBvdmVyZmxvdyAoc2VlIGNvbmRpdGlvbnMgY29tbWVudCBhYm92ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aC09MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVtjaGFyRXJyb3JCdWZmZXJCZWdpbiswXT10cmFpbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlZSBpZiB0aGUgdHJhaWwgc3Vycm9nYXRlIGlzIGluIHRoZSBuZXh0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIGZvciBhIHJlbWFpbmluZyBzb3VyY2UgYnl0ZSAqLworICAgICAgICAgICAgaWYoIWNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGl0IG11c3QgYmUgbGVuZ3RoPT0xIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBhYm92ZSB3b3VsZCBoYXZlIGNvcGllZCBtb3JlICovCisgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W3RvVUxlbmd0aCsrXT1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgY2xhc3MgQ2hhcnNldEVuY29kZXJVVEYxNiBleHRlbmRzIENoYXJzZXRFbmNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RW5jb2RlclVURjE2KENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzLCBmcm9tVVN1YnN0aXR1dGlvbik7CisgICAgICAgICAgICBpbXBsUmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBORUVEX1RPX1dSSVRFX0JPTSA9IDE7CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpbXBsUmVzZXQoKSB7CisgICAgICAgICAgICBzdXBlci5pbXBsUmVzZXQoKTsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzID0gTkVFRF9UT19XUklURV9CT007CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBlbmNvZGVMb29wKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpZighc291cmNlLmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICAvKiB3cml0ZSB0aGUgQk9NIGlmIG5lY2Vzc2FyeSAqLworICAgICAgICAgICAgaWYoZnJvbVVuaWNvZGVTdGF0dXM9PU5FRURfVE9fV1JJVEVfQk9NKSB7CisgICAgICAgICAgICAgICAgYnl0ZSBib21bXT17IChieXRlKTB4ZmUsIChieXRlKTB4ZmYgfTsKKyAgICAgICAgICAgICAgICBjciA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLGJvbSwgMCwgYm9tLmxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCAtMSk7CisgICAgICAgICAgICAgICAgaWYoY3IuaXNFcnJvcigpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cz0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlSW5kZXggPSAwOworICAgICAgICAgICAgY2hhciB0cmFpbCA9IDA7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gc291cmNlLnJlbWFpbmluZygpOworICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKworICAgICAgICAgICAgLyogYyE9MCBpbmRpY2F0ZXMgaW4gc2V2ZXJhbCBwbGFjZXMgb3V0c2lkZSB0aGUgbWFpbiBsb29wcyB0aGF0IGEgc3Vycm9nYXRlIHdhcyBmb3VuZCAqLworICAgICAgICAKKyAgICAgICAgICAgIGlmKChjPShjaGFyKWZyb21VQ2hhcjMyKSE9MCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpICYmIHRhcmdldC5yZW1haW5pbmcoKT49NCkgeworICAgICAgICAgICAgICAgIC8qIHRoZSBsYXN0IGJ1ZmZlciBlbmRlZCB3aXRoIGEgbGVhZCBzdXJyb2dhdGUsIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIgKi8KKyAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHRyYWlsPj4+OCkpOworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdHJhaWwpOworICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwgJiYgb2Zmc2V0cy5yZW1haW5pbmcoKT49NCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4PTE7CisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzI9Yz0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnl0ZSBvdmVyZmxvd1svKjQqL10gPSBuZXcgYnl0ZVs0XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoYz09MCkgeworICAgICAgICAgICAgICAgIC8qIGNvcHkgYW4gZXZlbiBudW1iZXIgb2YgYnl0ZXMgZm9yIGNvbXBsZXRlIFVDaGFycyAqLworICAgICAgICAgICAgICAgIGludCBjb3VudD0yKmxlbmd0aDsKKyAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0Q2FwYWNpdHkgPSB0YXJnZXQucmVtYWluaW5nKCk7CisgICAgICAgICAgICAgICAgaWYoY291bnQ+dGFyZ2V0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQ9dGFyZ2V0Q2FwYWNpdHkmfjE7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogY291bnQgaXMgZXZlbiAqLworICAgICAgICAgICAgICAgIHRhcmdldENhcGFjaXR5LT1jb3VudDsKKyAgICAgICAgICAgICAgICBjb3VudD4+PTE7CisgICAgICAgICAgICAgICAgbGVuZ3RoLT1jb3VudDsKKworICAgICAgICAgICAgICAgIGlmKG9mZnNldHM9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYz0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHRyYWlsPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3aGlsZShjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpICYmIGNvdW50Pj0yICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKShjPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkodHJhaWw+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSl0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKGNvdW50PT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGRvbmUgd2l0aCB0aGUgbG9vcCBmb3IgY29tcGxldGUgVUNoYXJzICovCisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD4wICYmIHRhcmdldENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGVyZSBpcyBtb3JlIGlucHV0IGFuZCBzb21lIHRhcmdldCBjYXBhY2l0eSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCBtdXN0IGJlIHRhcmdldENhcGFjaXR5PT0xIGJlY2F1c2Ugb3RoZXJ3aXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgYWJvdmUgd291bGQgaGF2ZSBjb3BpZWQgbW9yZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHByZXBhcmUgZm9yIG92ZXJmbG93IG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYz1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMF09KGJ5dGUpKGM+Pj44KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1sxXT0oYnl0ZSljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOyAvKiAyIGJ5dGVzIHRvIG91dHB1dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIH0gZWxzZSB7IGtlZXAgYyBmb3Igc3Vycm9nYXRlIGhhbmRsaW5nLCBsZW5ndGggd2lsbCBiZSBzZXQgdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyoga2VlcCBjIGZvciBzdXJyb2dhdGUgaGFuZGxpbmcsIGxlbmd0aCB3aWxsIGJlIHNldCB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eSs9Mipjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxlbmd0aD0wOyAvKiBmcm9tIGhlcmUgb24sIGxlbmd0aCBjb3VudHMgdGhlIGJ5dGVzIGluIG92ZXJmbG93W10gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoYyE9MCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYyBpcyBhIHN1cnJvZ2F0ZSwgYW5kCisgICAgICAgICAgICAgICAgICogLSBzb3VyY2Ugb3IgdGFyZ2V0IHRvbyBzaG9ydAorICAgICAgICAgICAgICAgICAqIC0gb3IgdGhlIHN1cnJvZ2F0ZSBpcyB1bm1hdGNoZWQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIsIHdpbGwgb3ZlcmZsb3cgKHNlZSBjb25kaXRpb25zIGNvbW1lbnQgYWJvdmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzBdPShieXRlKShjPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMV09KGJ5dGUpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1syXT0oYnl0ZSkodHJhaWw+Pj44KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1szXT0oYnl0ZSl0cmFpbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9NDsgLyogNCBieXRlcyB0byBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBsZWFkIHN1cnJvZ2F0ZSAqLwkJCQkJCQkJCQkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlZSBpZiB0aGUgdHJhaWwgc3Vycm9nYXRlIGlzIGluIHRoZSBuZXh0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzI9YzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgLyogb3V0cHV0IGxlbmd0aCBieXRlcyB3aXRoIG92ZXJmbG93IChsZW5ndGg+dGFyZ2V0Q2FwYWNpdHk+MCkgKi8KKyAgICAgICAgICAgICAgICBjciA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLCBvdmVyZmxvdywgMCwgbGVuZ3RoLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgQ2hhcnNldERlY29kZXIgbmV3RGVjb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RGVjb2RlclVURjE2KHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyBDaGFyc2V0RW5jb2RlciBuZXdFbmNvZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IENoYXJzZXRFbmNvZGVyVVRGMTYodGhpcyk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMTZMRS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjE2TEUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2E0MDA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjE2TEUuamF2YQpAQCAtMCwwICsxLDQ0NCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkNoYXJCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uSW50QnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldERlY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RW5jb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNvZGVyUmVzdWx0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBAYXV0aG9yIE5pdGkgSGFudGF3ZWVwYW50CisgKi8KK2NsYXNzIENoYXJzZXRVVEYxNkxFIGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgCisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHhmZCwgKGJ5dGUpMHhmZn07CisgICAgCisgICAgcHVibGljIENoYXJzZXRVVEYxNkxFKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIG1heEJ5dGVzUGVyQ2hhciA9IDQ7CisgICAgICAgIG1pbkJ5dGVzUGVyQ2hhciA9IDI7CisgICAgICAgIG1heENoYXJzUGVyQnl0ZSA9IDE7CisgICAgfQorICAgIGNsYXNzIENoYXJzZXREZWNvZGVyVVRGMTZMRSBleHRlbmRzIENoYXJzZXREZWNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlclVURjE2TEUoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGlmKCFzb3VyY2UuaGFzUmVtYWluaW5nKCkgJiYgdG9Vbmljb2RlU3RhdHVzPT0wKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBzb3VyY2VJbmRleD0wLCBjb3VudD0wLCBsZW5ndGgsIHNvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICBjaGFyIGM9MCwgdHJhaWw7CisgICAgICAgICAgICBsZW5ndGggPSBzb3VyY2UucmVtYWluaW5nKCk7CisgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIC8qIGNvbXBsZXRlIGEgcGFydGlhbCBVQ2hhciBvciBwYWlyIGZyb20gdGhlIGxhc3QgY2FsbCAqLworICAgICAgICAgICAgaWYodG9Vbmljb2RlU3RhdHVzIT0wKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBzcGVjaWFsIGNhc2U6IHNpbmdsZSBieXRlIGZyb20gYSBwcmV2aW91cyBidWZmZXIsCisgICAgICAgICAgICAgICAgICogd2hlcmUgdGhlIGJ5dGUgdHVybmVkIG91dCBub3QgdG8gYmVsb25nIHRvIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICogYW5kIHRoZSBwcmVjZWRpbmcsIHVubWF0Y2hlZCBsZWFkIHN1cnJvZ2F0ZSB3YXMgcHV0IGludG8gdG9VQnl0ZXNbXQorICAgICAgICAgICAgICAgICAqIGZvciBlcnJvciBoYW5kbGluZworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbdG9VQnl0ZXNCZWdpbiswXT0oYnl0ZSl0b1VuaWNvZGVTdGF0dXM7CisgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoY291bnQ9dG9VTGVuZ3RoKSE9MCkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBwQXJyYXk9dG9VQnl0ZXNBcnJheTsKKyAgICAgICAgICAgICAgICBpbnQgcEFycmF5SW5kZXggPSB0b1VCeXRlc0JlZ2luOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcEFycmF5W2NvdW50KytdPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50PT0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPShjaGFyKSgoKHBBcnJheVtwQXJyYXlJbmRleCsxXSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChwQXJyYXlbcEFycmF5SW5kZXgrMF0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgQk1QIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb250aW51ZSBjb2xsZWN0aW5nIGJ5dGVzIGZvciB0aGUgdHJhaWwgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOyAvKiBhdm9pZCB1bm5lY2Vzc2FyeSBzdXJyb2dhdGUgaGFuZGxpbmcgYmVsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoIHRvIGVycm9yIGhhbmRsaW5nIGZvciBhbiB1bm1hdGNoZWQgdHJhaWwgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb3VudD09NCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChwQXJyYXlbcEFycmF5SW5kZXgrMV0mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzBdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbD0oY2hhcikoKChwQXJyYXlbcEFycmF5SW5kZXgrM10mVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwocEFycmF5W3BBcnJheUluZGV4KzJdJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB0aGUgc3Vycm9nYXRlIHBhaXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhcmdldC5yZW1haW5pbmcoKT49MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYob2Zmc2V0cyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8qIHRhcmdldENhcGFjaXR5PT0xICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbY2hhckVycm9yQnVmZmVyQmVnaW4rMF09dHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBsZWFkIHN1cnJvZ2F0ZSwgaGFuZGxlIGhlcmUgZm9yIGNvbnNpc3RlbnQgdG9VQnl0ZXNbXSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBiYWNrIG91dCByZWFkaW5nIHRoZSBjb2RlIHVuaXQgYWZ0ZXIgaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigoc291cmNlLnBvc2l0aW9uKCktc291cmNlQXJyYXlJbmRleCk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleC09MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiB0aGUgdHJhaWwgdW5pdCdzIGZpcnN0IGJ5dGUgd2FzIGluIGEgcHJldmlvdXMgYnVmZmVyLCB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdlIG5lZWQgdG8gcHV0IGl0IGludG8gYSBzcGVjaWFsIHBsYWNlIGJlY2F1c2UgdG9VQnl0ZXNbXSB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHVzZWQgZm9yIHRoZSBsZWFkIHVuaXQncyBieXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzPTB4MTAwfHBBcnJheVtwQXJyYXlJbmRleCsyXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1zb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gd2hpbGUobGVuZ3RoPjApOworICAgICAgICAgICAgICAgIHRvVUxlbmd0aD0oYnl0ZSljb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvKiBjb3B5IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgIGNvdW50PTIqdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgaWYoY291bnQ+bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY291bnQ9bGVuZ3RoJn4xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYz09MCAmJiBjb3VudD4wKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoLT1jb3VudDsKKyAgICAgICAgICAgICAgICBjb3VudD4+PTE7CisgICAgICAgICAgICAgICAgLy90YXJnZXRDYXBhY2l0eS09Y291bnQ7CisgICAgICAgICAgICAgICAgaWYob2Zmc2V0cz09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBjPShjaGFyKSgoKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsxKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSyk8PDgpfChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMCkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9KGNoYXIpKCgoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzEpJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTw8OCl8KHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCswKSZVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tY291bnQ+MCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgYz0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5kZXgrPTI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpICYmIGNvdW50Pj0yICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSkpCisgICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZGV4Kz00OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWNvdW50PjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoY291bnQ9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZG9uZSB3aXRoIHRoZSBsb29wIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgYyBmb3Igc3Vycm9nYXRlIGhhbmRsaW5nLCB0cmFpbCB3aWxsIGJlIHNldCB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICBsZW5ndGgrPTIqKGNvdW50LTEpOyAvKiBvbmUgbW9yZSBieXRlIHBhaXIgd2FzIGNvbnN1bWVkIHRoYW4gY291bnQgZGVjcmVtZW50ZWQgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoYyE9MCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYyBpcyBhIHN1cnJvZ2F0ZSwgYW5kCisgICAgICAgICAgICAgICAgICogLSBzb3VyY2Ugb3IgdGFyZ2V0IHRvbyBzaG9ydAorICAgICAgICAgICAgICAgICAqIC0gb3IgdGhlIHN1cnJvZ2F0ZSBpcyB1bm1hdGNoZWQKKyAgICAgICAgICAgICAgICAgKi8JCSAgCisgCisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VCeXRlc0JlZ2luKzBdPShieXRlKWM7CisgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVt0b1VCeXRlc0JlZ2luKzFdPShieXRlKShjPj4+OCk7CSAKKyAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MjsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD0oY2hhcikoKChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrMSkmVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDw4KXwoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KzApJlVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3V0cHV0IHRoZSBzdXJyb2dhdGUgcGFpciwgd2lsbCBvdmVyZmxvdyAoc2VlIGNvbmRpdGlvbnMgY29tbWVudCBhYm92ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kz0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aC09MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9mZnNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVtjaGFyRXJyb3JCdWZmZXJCZWdpbiswXT10cmFpbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGg9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlZSBpZiB0aGUgdHJhaWwgc3Vycm9nYXRlIGlzIGluIHRoZSBuZXh0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIGZvciBhIHJlbWFpbmluZyBzb3VyY2UgYnl0ZSAqLworICAgICAgICAgICAgaWYoIWNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGl0IG11c3QgYmUgbGVuZ3RoPT0xIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBhYm92ZSB3b3VsZCBoYXZlIGNvcGllZCBtb3JlICovCisgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W3RvVUxlbmd0aCsrXT1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgY2xhc3MgQ2hhcnNldEVuY29kZXJVVEYxNkxFIGV4dGVuZHMgQ2hhcnNldEVuY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXRFbmNvZGVyVVRGMTZMRShDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgLyogd3JpdGUgdGhlIEJPTSBpZiBuZWNlc3NhcnkgKi8KKyAgICAgICAgICAgIGlmKGZyb21Vbmljb2RlU3RhdHVzPT1ORUVEX1RPX1dSSVRFX0JPTSkgeworICAgICAgICAgICAgICAgIGJ5dGUgYm9tW109eyAoYnl0ZSkweGZmLCAoYnl0ZSkweGZlIH07CisgICAgICAgICAgICAgICAgY3IgPSBmcm9tVVdyaXRlQnl0ZXModGhpcyxib20sIDAsIGJvbS5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgLTEpOworICAgICAgICAgICAgICAgIGlmKGNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUluZGV4ID0gMDsKKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSAwOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IHNvdXJjZS5yZW1haW5pbmcoKTsKKyAgICAgICAgICAgIGludCBzb3VyY2VBcnJheUluZGV4ID0gc291cmNlLnBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIGMhPTAgaW5kaWNhdGVzIGluIHNldmVyYWwgcGxhY2VzIG91dHNpZGUgdGhlIG1haW4gbG9vcHMgdGhhdCBhIHN1cnJvZ2F0ZSB3YXMgZm91bmQgKi8KKyAgICAgICAgCisgICAgICAgICAgICBpZigoYz0oY2hhcilmcm9tVUNoYXIzMikhPTAgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSAmJiB0YXJnZXQucmVtYWluaW5nKCk+PTQpIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUgbGFzdCBidWZmZXIgZW5kZWQgd2l0aCBhIGxlYWQgc3Vycm9nYXRlLCBvdXRwdXQgdGhlIHN1cnJvZ2F0ZSBwYWlyICovCisgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXRyYWlsKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh0cmFpbD4+PjgpKTsKKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzIT1udWxsICYmIG9mZnNldHMucmVtYWluaW5nKCk+PTQpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dCgtMSk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2VJbmRleD0xOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyPWM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ5dGUgb3ZlcmZsb3dbLyo0Ki9dID0gbmV3IGJ5dGVbNF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGM9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBjb3B5IGFuIGV2ZW4gbnVtYmVyIG9mIGJ5dGVzIGZvciBjb21wbGV0ZSBVQ2hhcnMgKi8KKyAgICAgICAgICAgICAgICBpbnQgY291bnQ9MipsZW5ndGg7CisgICAgICAgICAgICAgICAgaW50IHRhcmdldENhcGFjaXR5ID0gdGFyZ2V0LnJlbWFpbmluZygpOworICAgICAgICAgICAgICAgIGlmKGNvdW50PnRhcmdldENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50PXRhcmdldENhcGFjaXR5Jn4xOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIGNvdW50IGlzIGV2ZW4gKi8KKyAgICAgICAgICAgICAgICB0YXJnZXRDYXBhY2l0eS09Y291bnQ7CisgICAgICAgICAgICAgICAgY291bnQ+Pj0xOworICAgICAgICAgICAgICAgIGxlbmd0aC09Y291bnQ7CisKKyAgICAgICAgICAgICAgICBpZihvZmZzZXRzPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKGNvdW50PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgY291bnQ+PTIgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbD1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkoYz4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKXRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKSh0cmFpbD4+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoY291bnQ+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYz1zb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKGM+Pj44KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudD49MiAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsPXNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSljKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChieXRlKShjPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpKHRyYWlsPj4+OCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnB1dChzb3VyY2VJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXQoc291cmNlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMucHV0KHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCs9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihjb3VudD09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBkb25lIHdpdGggdGhlIGxvb3AgZm9yIGNvbXBsZXRlIFVDaGFycyAqLworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg+MCAmJiB0YXJnZXRDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlcmUgaXMgbW9yZSBpbnB1dCBhbmQgc29tZSB0YXJnZXQgY2FwYWNpdHkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICogaXQgbXVzdCBiZSB0YXJnZXRDYXBhY2l0eT09MSBiZWNhdXNlIG90aGVyd2lzZQorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIGFib3ZlIHdvdWxkIGhhdmUgY29waWVkIG1vcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBwcmVwYXJlIGZvciBvdmVyZmxvdyBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGM9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzBdPShieXRlKWM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMV09KGJ5dGUpKGM+Pj44KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsgLyogMiBieXRlcyB0byBvdXRwdXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB9IGVsc2UgeyBrZWVwIGMgZm9yIHN1cnJvZ2F0ZSBoYW5kbGluZywgbGVuZ3RoIHdpbGwgYmUgc2V0IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9MDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgYyBmb3Igc3Vycm9nYXRlIGhhbmRsaW5nLCBsZW5ndGggd2lsbCBiZSBzZXQgdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2FwYWNpdHkrPTIqY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsgLyogZnJvbSBoZXJlIG9uLCBsZW5ndGggY291bnRzIHRoZSBieXRlcyBpbiBvdmVyZmxvd1tdICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGMhPTApIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBzdXJyb2dhdGUsIGFuZAorICAgICAgICAgICAgICAgICAqIC0gc291cmNlIG9yIHRhcmdldCB0b28gc2hvcnQKKyAgICAgICAgICAgICAgICAgKiAtIG9yIHRoZSBzdXJyb2dhdGUgaXMgdW5tYXRjaGVkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZUFycmF5SW5kZXg8c291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWw9c291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdXRwdXQgdGhlIHN1cnJvZ2F0ZSBwYWlyLCB3aWxsIG92ZXJmbG93IChzZWUgY29uZGl0aW9ucyBjb21tZW50IGFib3ZlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1swXT0oYnl0ZSljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WzFdPShieXRlKShjPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbMl09KGJ5dGUpdHJhaWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dbM109KGJ5dGUpKHRyYWlsPj4+OCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTQ7IC8qIDQgYnl0ZXMgdG8gb3V0cHV0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz0wOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgbGVhZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlZSBpZiB0aGUgdHJhaWwgc3Vycm9nYXRlIGlzIGluIHRoZSBuZXh0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzI9YzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgLyogb3V0cHV0IGxlbmd0aCBieXRlcyB3aXRoIG92ZXJmbG93IChsZW5ndGg+dGFyZ2V0Q2FwYWNpdHk+MCkgKi8KKyAgICAgICAgICAgICAgICBjciA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLCBvdmVyZmxvdywgMCwgbGVuZ3RoLCB0YXJnZXQsIG9mZnNldHMsIHNvdXJjZUluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgQ2hhcnNldERlY29kZXIgbmV3RGVjb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RGVjb2RlclVURjE2TEUodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJVVEYxNkxFKHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjMyLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMzIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzdjYTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvQ2hhcnNldFVURjMyLmphdmEKQEAgLTAsMCArMSwzMDkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisvKioKKyAqIEBhdXRob3IgTml0aSBIYW50YXdlZXBhbnQKKyAqLworY2xhc3MgQ2hhcnNldFVURjMyIGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgCisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMCwgKGJ5dGUpMCwgKGJ5dGUpMHhmZiwgKGJ5dGUpMHhmZH07CisgICAgCisgICAgcHVibGljIENoYXJzZXRVVEYzMihTdHJpbmcgaWN1Q2Fub25pY2FsTmFtZSwgU3RyaW5nIGphdmFDYW5vbmljYWxOYW1lLCBTdHJpbmdbXSBhbGlhc2VzKXsKKyAgICAgICAgc3VwZXIoaWN1Q2Fub25pY2FsTmFtZSwgamF2YUNhbm9uaWNhbE5hbWUsIGFsaWFzZXMpOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSA0OworICAgICAgICBtYXhDaGFyc1BlckJ5dGUgPSAxOworICAgIH0KKyAgICBjbGFzcyBDaGFyc2V0RGVjb2RlclVURjMyIGV4dGVuZHMgQ2hhcnNldERlY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXREZWNvZGVyVVRGMzIoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIGludCBjaCwgaTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG9uZWZvcm5vdzoKKyAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIFVURi04IHJldHVybnMgaGVyZSBmb3Igb25seSBub24tb2Zmc2V0LCB0aGlzIG5lZWRzIHRvIGNoYW5nZS4qLworICAgICAgICAgICAgICAgIGlmICh0b1VuaWNvZGVTdGF0dXMgIT0gMCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHRvVUxlbmd0aDsgICAgICAgLyogcmVzdG9yZSAjIG9mIGJ5dGVzIGNvbnN1bWVkICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAoaW50KSh0b1VuaWNvZGVTdGF0dXMgLSAxKTsvKlN0b3JlcyB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGVkIGNoIGZyb20gYSBwcmV2aW91cyBjYWxsKi8KKyAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0wOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2ggPDwgOCkgfCAoKGJ5dGUpKHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCkpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbaSsrXSA9IChieXRlKSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZXMgYSBwYXJ0aWFsbHkgY2FsY3VsYXRlZCB0YXJnZXQqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICsgMSB0byBtYWtlIDAgYSB2YWxpZCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXMgPSBjaCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpIGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyQ29uc3RhbnRzLk1BWElNVU1fVVRGICYmICFpc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyQ29uc3RhbnRzLk1BWElNVU1fVUNTMikgCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZml0cyBpbiAxNiBiaXRzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSBvdXQgdGhlIHN1cnJvZ2F0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHV0IGluIG92ZXJmbG93IGJ1ZmZlciAobm90IGhhbmRsZWQgaGVyZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbMF0gPSAoY2hhcikgY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoIDw8IDgpIHwgKChieXRlKShzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpKSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VCeXRlc0FycmF5W2krK10gPSAoYnl0ZSkgc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RvcmVzIGEgcGFydGlhbGx5IGNhbGN1bGF0ZWQgdGFyZ2V0Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiArIDEgdG8gbWFrZSAwIGEgdmFsaWQgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gY2ggKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGRvbmVmb3Jub3c7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gVUNvbnZlcnRlclNoYXJlZERhdGEuTUFYSU1VTV9VVEYgJiYgIWlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogTm9ybWFsIHZhbGlkIGJ5dGUgd2hlbiB0aGUgbG9vcCBoYXMgbm90IHByZW1hdHVyZWx5IHRlcm1pbmF0ZWQgKGkgPCBpbkJ5dGVzKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVUNTMikgCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZml0cyBpbiAxNiBiaXRzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcikgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd3JpdGUgb3V0IHRoZSBzdXJyb2dhdGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFB1dCBpbiBvdmVyZmxvdyBidWZmZXIgKG5vdCBoYW5kbGVkIGhlcmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckFycmF5WzBdID0gKGNoYXIpIGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOyAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAoYnl0ZSlpOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogRW5kIG9mIHRhcmdldCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIAorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyVVRGMzIgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXJVVEYzMihDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcywgZnJvbVVTdWJzdGl0dXRpb24pOworICAgICAgICAgICAgaW1wbFJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTkVFRF9UT19XUklURV9CT00gPSAxOworICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaW1wbFJlc2V0KCkgeworICAgICAgICAgICAgc3VwZXIuaW1wbFJlc2V0KCk7CisgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cyA9IE5FRURfVE9fV1JJVEVfQk9NOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgQ29kZXJSZXN1bHQgZW5jb2RlTG9vcChDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQsIEludEJ1ZmZlciBvZmZzZXRzLCBib29sZWFuIGZsdXNoKXsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgaWYoIXNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIG5vIGlucHV0LCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvKiB3cml0ZSB0aGUgQk9NIGlmIG5lY2Vzc2FyeSAqLworICAgICAgICAgICAgaWYoZnJvbVVuaWNvZGVTdGF0dXM9PU5FRURfVE9fV1JJVEVfQk9NKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJvbT17IDAsIDAsIChieXRlKTB4ZmUsIChieXRlKTB4ZmYgfTsKKyAgICAgICAgICAgICAgICBjciA9IGZyb21VV3JpdGVCeXRlcyh0aGlzLCBib20sIDAsIGJvbS5sZW5ndGgsIHRhcmdldCwgb2Zmc2V0cywgLTEpOworICAgICAgICAgICAgICAgIGlmKGNyLmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZnJvbVVuaWNvZGVTdGF0dXM9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNoLCBjaDI7CisgICAgICAgICAgICBpbnQgaW5kZXhUb1dyaXRlOworICAgICAgICAgICAgYnl0ZSB0ZW1wW10gPSBuZXcgYnl0ZVs0XTsKKyAgICAgICAgICAgIHRlbXBbMF0gPSAwOworICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBkb2xvb3AgPSB0cnVlOworICAgICAgICAgICAgaWYgKGZyb21VQ2hhcjMyICE9IDApIHsKKyAgICAgICAgICAgICAgICBjaCA9IGZyb21VQ2hhcjMyOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gMDsKKyAgICAgICAgICAgICAgICAvL2xvd3N1cm9nYXRlOgorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2gyID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAoKGNoIC0gVUNvbnZlcnRlckNvbnN0YW50cy5TVVJST0dBVEVfSElHSF9TVEFSVCkgPDwgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBjaDIgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VBcnJheUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHJhbiBvdXQgb2Ygc291cmNlICovCisgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiBXZSBjYW5ub3QgZ2V0IGFueSBsYXJnZXIgdGhhbiAxMEZGRkYgYmVjYXVzZSB3ZSBhcmUgY29taW5nIGZyb20gVVRGLTE2ICovCisgICAgICAgICAgICAgICAgdGVtcFsxXSA9IChieXRlKSAoY2ggPj4+IDE2ICYgMHgxRik7CisgICAgICAgICAgICAgICAgdGVtcFsyXSA9IChieXRlKSAoY2ggPj4+IDgpOyAgLyogdW5zaWduZWQgY2FzdCBpbXBsaWNpdGx5IGRvZXMgKGNoICYgRkYpICovCisgICAgICAgICAgICAgICAgdGVtcFszXSA9IChieXRlKSAoY2gpOyAgICAgICAvKiB1bnNpZ25lZCBjYXN0IGltcGxpY2l0bHkgZG9lcyAoY2ggJiBGRikgKi8KKyAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbmRleFRvV3JpdGUgPSAwOyBpbmRleFRvV3JpdGUgPD0gMzsgaW5kZXhUb1dyaXRlKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCh0ZW1wW2luZGV4VG9Xcml0ZV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJMZW5ndGgrK10gPSB0ZW1wW2luZGV4VG9Xcml0ZV07CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgIHdoaWxlIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KyspOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb3dzdXJvZ2F0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoMiA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKChjaCAtIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9ISUdIX1NUQVJUKSA8PCBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIGNoMiArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByYW4gb3V0IG9mIHNvdXJjZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogV2UgY2Fubm90IGdldCBhbnkgbGFyZ2VyIHRoYW4gMTBGRkZGIGJlY2F1c2Ugd2UgYXJlIGNvbWluZyBmcm9tIFVURi0xNiAqLworICAgICAgICAgICAgICAgICAgICB0ZW1wWzFdID0gKGJ5dGUpIChjaCA+Pj4gMTYgJiAweDFGKTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFsyXSA9IChieXRlKSAoY2ggPj4+IDgpOyAgLyogdW5zaWduZWQgY2FzdCBpbXBsaWNpdGx5IGRvZXMgKGNoICYgRkYpICovCisgICAgICAgICAgICAgICAgICAgIHRlbXBbM10gPSAoYnl0ZSkgKGNoKTsgICAgICAgLyogdW5zaWduZWQgY2FzdCBpbXBsaWNpdGx5IGRvZXMgKGNoICYgRkYpICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleFRvV3JpdGUgPSAwOyBpbmRleFRvV3JpdGUgPD0gMzsgaW5kZXhUb1dyaXRlKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRlbXBbaW5kZXhUb1dyaXRlXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlcltlcnJvckJ1ZmZlckxlbmd0aCsrXSA9IHRlbXBbaW5kZXhUb1dyaXRlXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIENoYXJzZXREZWNvZGVyIG5ld0RlY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldERlY29kZXJVVEYzMih0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXIgbmV3RW5jb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RW5jb2RlclVURjMyKHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEYzMkxFLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMzJMRS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZDM4NjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGMzJMRS5qYXZhCkBAIC0wLDAgKzEsMzA5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5JbnRCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworLyoqCisgKiBAYXV0aG9yIE5pdGkgSGFudGF3ZWVwYW50CisgKi8KK2NsYXNzIENoYXJzZXRVVEYzMkxFIGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgCisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHhmZCwgKGJ5dGUpMHhmZiwgKGJ5dGUpMCwgKGJ5dGUpMH07CisgICAgCisgICAgcHVibGljIENoYXJzZXRVVEYzMkxFKFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIG1heEJ5dGVzUGVyQ2hhciA9IDQ7CisgICAgICAgIG1pbkJ5dGVzUGVyQ2hhciA9IDQ7CisgICAgICAgIG1heENoYXJzUGVyQnl0ZSA9IDE7CisgICAgfQorICAgIGNsYXNzIENoYXJzZXREZWNvZGVyVVRGMzJMRSBleHRlbmRzIENoYXJzZXREZWNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RGVjb2RlclVURjMyTEUoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKyAgICAgICAgICAgIGludCBjaCwgaTsKKworICAgICAgICAgICAgZG9uZWZvcm5vdzoKKyAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIFVURi04IHJldHVybnMgaGVyZSBmb3Igb25seSBub24tb2Zmc2V0LCB0aGlzIG5lZWRzIHRvIGNoYW5nZS4qLworICAgICAgICAgICAgICAgIGlmICh0b1VuaWNvZGVTdGF0dXMgIT0gMCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHRvVUxlbmd0aDsgICAgICAgLyogcmVzdG9yZSAjIG9mIGJ5dGVzIGNvbnN1bWVkICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAoaW50KSh0b1VuaWNvZGVTdGF0dXMgLSAxKTsvKlN0b3JlcyB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGVkIGNoIGZyb20gYSBwcmV2aW91cyBjYWxsKi8KKyAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCB8PSAoc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKSA8PCAoaSAqIDgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbaSsrXSA9IChieXRlKSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZXMgYSBwYXJ0aWFsbHkgY2FsY3VsYXRlZCB0YXJnZXQqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICsgMSB0byBtYWtlIDAgYSB2YWxpZCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VuaWNvZGVTdGF0dXMgPSBjaCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpIGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyQ29uc3RhbnRzLk1BWElNVU1fVVRGICYmICFpc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyQ29uc3RhbnRzLk1BWElNVU1fVUNTMikgCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZml0cyBpbiAxNiBiaXRzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3cml0ZSBvdXQgdGhlIHN1cnJvZ2F0ZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHV0IGluIG92ZXJmbG93IGJ1ZmZlciAobm90IGhhbmRsZWQgaGVyZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyQXJyYXlbMF0gPSAoY2hhcikgY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmIHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoIHw9IChzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spIDw8IChpICogOCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVtpKytdID0gKGJ5dGUpIHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3JlcyBhIHBhcnRpYWxseSBjYWxjdWxhdGVkIHRhcmdldCovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKyAxIHRvIG1ha2UgMCBhIHZhbGlkIGNoYXJhY3RlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IGNoICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAoYnl0ZSkgaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBkb25lZm9ybm93OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVVRGICYmICFpc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyU2hhcmVkRGF0YS5NQVhJTVVNX1VDUzIpIAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpdHMgaW4gMTYgYml0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdyaXRlIG91dCB0aGUgc3Vycm9nYXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQdXQgaW4gb3ZlcmZsb3cgYnVmZmVyIChub3QgaGFuZGxlZCBoZXJlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVswXSA9IChjaGFyKSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgIXRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgIC8qIEVuZCBvZiB0YXJnZXQgYnVmZmVyICovCisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBjbGFzcyBDaGFyc2V0RW5jb2RlclVURjMyTEUgZXh0ZW5kcyBDaGFyc2V0RW5jb2RlcklDVXsKKworICAgICAgICBwdWJsaWMgQ2hhcnNldEVuY29kZXJVVEYzMkxFKENoYXJzZXRJQ1UgY3MpIHsKKyAgICAgICAgICAgIHN1cGVyKGNzLCBmcm9tVVN1YnN0aXR1dGlvbik7CisgICAgICAgICAgICBpbXBsUmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBORUVEX1RPX1dSSVRFX0JPTSA9IDE7CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpbXBsUmVzZXQoKSB7CisgICAgICAgICAgICBzdXBlci5pbXBsUmVzZXQoKTsKKyAgICAgICAgICAgIGZyb21Vbmljb2RlU3RhdHVzID0gTkVFRF9UT19XUklURV9CT007CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBDb2RlclJlc3VsdCBlbmNvZGVMb29wKENoYXJCdWZmZXIgc291cmNlLCBCeXRlQnVmZmVyIHRhcmdldCwgSW50QnVmZmVyIG9mZnNldHMsIGJvb2xlYW4gZmx1c2gpeworICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBDb2RlclJlc3VsdC5VTkRFUkZMT1c7CisgICAgICAgICAgICBpZighc291cmNlLmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgLyogbm8gaW5wdXQsIG5vdGhpbmcgdG8gZG8gKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHdyaXRlIHRoZSBCT00gaWYgbmVjZXNzYXJ5ICovCisgICAgICAgICAgICBpZihmcm9tVW5pY29kZVN0YXR1cz09TkVFRF9UT19XUklURV9CT00pIHsKKyAgICAgICAgICAgICAgICBieXRlW10gYm9tPXsgKGJ5dGUpMHhmZiwgKGJ5dGUpMHhmZSwgMCwgMCB9OworICAgICAgICAgICAgICAgIGNyID0gZnJvbVVXcml0ZUJ5dGVzKHRoaXMsIGJvbSwgMCwgYm9tLmxlbmd0aCwgdGFyZ2V0LCBvZmZzZXRzLCAtMSk7CisgICAgICAgICAgICAgICAgaWYoY3IuaXNFcnJvcigpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcm9tVW5pY29kZVN0YXR1cz0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgY2gsIGNoMjsKKyAgICAgICAgICAgIGludCBpbmRleFRvV3JpdGU7CisgICAgICAgICAgICBieXRlIHRlbXBbXSA9IG5ldyBieXRlWzRdOworICAgICAgICAgICAgdGVtcFszXSA9IDA7CisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGRvbG9vcCA9IHRydWU7CisgICAgICAgICAgICBpZiAoZnJvbVVDaGFyMzIgIT0gMCkgeworICAgICAgICAgICAgICAgIGNoID0gZnJvbVVDaGFyMzI7CisgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAwOworICAgICAgICAgICAgICAgIC8vbG93c3Vyb2dhdGU6CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICBjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9ICgoY2ggLSBVQ29udmVydGVyQ29uc3RhbnRzLlNVUlJPR0FURV9ISUdIX1NUQVJUKSA8PCBVQ29udmVydGVyU2hhcmVkRGF0YS5IQUxGX1NISUZUKSArIGNoMiArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUFycmF5SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgYW4gdW5tYXRjaGVkIHRyYWlsIGNvZGUgdW5pdCAoMm5kIHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2xvb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmFuIG91dCBvZiBzb3VyY2UgKi8KKyAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCB0cmFpbCBjb2RlIHVuaXQgKDJuZCBzdXJyb2dhdGUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZG9sb29wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIFdlIGNhbm5vdCBnZXQgYW55IGxhcmdlciB0aGFuIDEwRkZGRiBiZWNhdXNlIHdlIGFyZSBjb21pbmcgZnJvbSBVVEYtMTYgKi8KKyAgICAgICAgICAgICAgICB0ZW1wWzJdID0gKGJ5dGUpIChjaCA+Pj4gMTYgJiAweDFGKTsKKyAgICAgICAgICAgICAgICB0ZW1wWzFdID0gKGJ5dGUpIChjaCA+Pj4gOCk7ICAvKiB1bnNpZ25lZCBjYXN0IGltcGxpY2l0bHkgZG9lcyAoY2ggJiBGRikgKi8KKyAgICAgICAgICAgICAgICB0ZW1wWzBdID0gKGJ5dGUpIChjaCk7ICAgICAgIC8qIHVuc2lnbmVkIGNhc3QgaW1wbGljaXRseSBkb2VzIChjaCAmIEZGKSAqLworICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGluZGV4VG9Xcml0ZSA9IDA7IGluZGV4VG9Xcml0ZSA8PSAzOyBpbmRleFRvV3JpdGUrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRlbXBbaW5kZXhUb1dyaXRlXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJ1ZmZlcltlcnJvckJ1ZmZlckxlbmd0aCsrXSA9IHRlbXBbaW5kZXhUb1dyaXRlXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYoZG9sb29wKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvd3N1cm9nYXRlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2gyID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAoKGNoIC0gVUNvbnZlcnRlclNoYXJlZERhdGEuU1VSUk9HQVRFX0hJR0hfU1RBUlQpIDw8IFVDb252ZXJ0ZXJTaGFyZWREYXRhLkhBTEZfU0hJRlQpICsgY2gyICsgVUNvbnZlcnRlclNoYXJlZERhdGEuU1VSUk9HQVRFX0xPV19CQVNFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQXJyYXlJbmRleCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJhbiBvdXQgb2Ygc291cmNlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhbiB1bm1hdGNoZWQgdHJhaWwgY29kZSB1bml0ICgybmQgc3Vycm9nYXRlKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2FsbGJhY2soaWxsZWdhbCkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBXZSBjYW5ub3QgZ2V0IGFueSBsYXJnZXIgdGhhbiAxMEZGRkYgYmVjYXVzZSB3ZSBhcmUgY29taW5nIGZyb20gVVRGLTE2ICovCisgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKGNoID4+PiAxNiAmIDB4MUYpOworICAgICAgICAgICAgICAgICAgICB0ZW1wWzFdID0gKGJ5dGUpIChjaCA+Pj4gOCk7ICAvKiB1bnNpZ25lZCBjYXN0IGltcGxpY2l0bHkgZG9lcyAoY2ggJiBGRikgKi8KKyAgICAgICAgICAgICAgICAgICAgdGVtcFswXSA9IChieXRlKSAoY2gpOyAgICAgICAvKiB1bnNpZ25lZCBjYXN0IGltcGxpY2l0bHkgZG9lcyAoY2ggJiBGRikgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4VG9Xcml0ZSA9IDA7IGluZGV4VG9Xcml0ZSA8PSAzOyBpbmRleFRvV3JpdGUrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQodGVtcFtpbmRleFRvV3JpdGVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyTGVuZ3RoKytdID0gdGVtcFtpbmRleFRvV3JpdGVdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiBjcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgQ2hhcnNldERlY29kZXIgbmV3RGVjb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RGVjb2RlclVURjMyTEUodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJVVEYzMkxFKHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L0NoYXJzZXRVVEY4LmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGOC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZDg0YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9DaGFyc2V0VVRGOC5qYXZhCkBAIC0wLDAgKzEsNDgxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKKworcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLkludEJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RlclJlc3VsdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworLyoqCisgKiBAYXV0aG9yIE5pdGkgSGFudGF3ZWVwYW50CisgKi8KK2NsYXNzIENoYXJzZXRVVEY4IGV4dGVuZHMgQ2hhcnNldElDVSB7CisgICAgCisgICAgcHJvdGVjdGVkIGJ5dGVbXSBmcm9tVVN1YnN0aXR1dGlvbiA9IG5ldyBieXRlW117KGJ5dGUpMHhlZiwgKGJ5dGUpMHhiZiwgKGJ5dGUpMHhiZH07CisgICAgCisgICAgcHVibGljIENoYXJzZXRVVEY4KFN0cmluZyBpY3VDYW5vbmljYWxOYW1lLCBTdHJpbmcgamF2YUNhbm9uaWNhbE5hbWUsIFN0cmluZ1tdIGFsaWFzZXMpeworICAgICAgICBzdXBlcihpY3VDYW5vbmljYWxOYW1lLCBqYXZhQ2Fub25pY2FsTmFtZSwgYWxpYXNlcyk7CisgICAgICAgIG1heEJ5dGVzUGVyQ2hhciA9IDQ7CisgICAgICAgIG1pbkJ5dGVzUGVyQ2hhciA9IDE7CisgICAgICAgIG1heENoYXJzUGVyQnl0ZSA9IDE7CisgICAgfQorICAgIAorICAgIC8qIFVURi04IENvbnZlcnNpb24gREFUQQorICAgICAqICAgZm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIFVuaWNvZGUgU3RyYW5kYXJkIDIuMCAsIFRyYW5zZm9ybWF0aW9uIEZvcm1hdHMgQXBwZW5kaXggQS05CisgICAgICovICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT0ZGU0VUU19GUk9NX1VURjhbXSA9IHswLAorICAJICAweDAwMDAwMDAwTCwgMHgwMDAwMzA4MEwsIDB4MDAwRTIwODBMLAorICAJICAweDAzQzgyMDgwTCwgMHhGQTA4MjA4MEwsIDB4ODIwODIwODBMfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVTX0ZST01fVVRGOFtdID0gCisgICAgeworICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKKyAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCisgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAorICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKKyAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwKKyAgICAgIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDUsIDUsIDUsIDUsIDYsIDYsIDAsIDAKKyAgICB9OworICAgIAorICAgIC8qCisJICogU3RhcnRpbmcgd2l0aCBVbmljb2RlIDMuMC4xOgorCSAqIFVURi04IGJ5dGUgc2VxdWVuY2VzIG9mIGxlbmd0aCBOIF9tdXN0XyBlbmNvZGUgY29kZSBwb2ludHMgb2Ygb3IgYWJvdmUgdXRmOF9taW5DaGFyMzJbTl07CisJICogYnl0ZSBzZXF1ZW5jZXMgd2l0aCBtb3JlIHRoYW4gNCBieXRlcyBhcmUgaWxsZWdhbCBpbiBVVEYtOCwKKwkgKiB3aGljaCBpcyB0ZXN0ZWQgd2l0aCBpbXBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlbQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgVVRGOF9NSU5fQ0hBUjMyW10gPSB7IDBMLCAwTCwgMHg4MEwsIDB4ODAwTCwgMHgxMDAwMEwsIDB4ZmZmZmZmZmZMLCAweGZmZmZmZmZmTCB9OworCisgICAgY2xhc3MgQ2hhcnNldERlY29kZXJVVEY4IGV4dGVuZHMgQ2hhcnNldERlY29kZXJJQ1V7CisKKyAgICAgICAgcHVibGljIENoYXJzZXREZWNvZGVyVVRGOChDaGFyc2V0SUNVIGNzKSB7CisgICAgICAgICAgICBzdXBlcihjcyk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGRlY29kZUxvb3AoQnl0ZUJ1ZmZlciBzb3VyY2UsIENoYXJCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgc291cmNlQXJyYXlJbmRleCA9IHNvdXJjZS5wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUb2RvOiBDRVNVOCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgICAgLy8gYm9vbGVhbiBpc0NFU1U4ID0gYXJncy5jb252ZXJ0ZXIuc2hhcmVkRGF0YSA9PSBfQ0VTVThEYXRhOworICAgICAgICAgICAgYm9vbGVhbiBpc0NFU1U4ID0gKFVDb252ZXJ0ZXJTaGFyZWREYXRhLl9DRVNVOERhdGEgIT0gbnVsbCk7CisgICAgICAgICAgICBpbnQgY2gsIGNoMiA9IDA7CisgICAgCSAgICBpbnQgaSwgaW5CeXRlczsgICAgCSAgCisgICAgCSAgICAKKwkJCWRvbmVmb3Jub3c6CisJCQl7CisJICAgIAkgICAgaWYgKHRvVW5pY29kZVN0YXR1cyE9MCAmJiB0YXJnZXQuaGFzUmVtYWluaW5nKCkpCisJICAgIAkgICAgeworCQkJICAgICAgICBpbkJ5dGVzID0gbW9kZTsgICAgICAgICAgICAJLyogcmVzdG9yZSAjIG9mIGJ5dGVzIHRvIGNvbnN1bWUgKi8KKwkJCSAgICAgICAgaSA9IHRvVUxlbmd0aDsgICAgICAgICAgICAgCS8qIHJlc3RvcmUgIyBvZiBieXRlcyBjb25zdW1lZCAqLworCQkJCisJICAgIAkgICAgICAgIGNoID0gdG9Vbmljb2RlU3RhdHVzOwkJLypTdG9yZXMgdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBjaCBmcm9tIGEgcHJldmlvdXMgY2FsbCovCisJICAgIAkgICAgICAgIHRvVW5pY29kZVN0YXR1cyA9IDA7CisKKwkJCQkJd2hpbGUgKGkgPCBpbkJ5dGVzKQorCQkJCQl7CisJCQkJCQlpZiAoc291cmNlQXJyYXlJbmRleDxzb3VyY2UubGltaXQoKSkKKwkJCQkJCXsKKwkJCQkJCQl0b1VCeXRlc0FycmF5W2ldID0gKGJ5dGUpIChjaDIgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spOworCQkJCQkJCWlmICghaXNUcmFpbCgoYnl0ZSljaDIpKQorCQkJCQkJCXsKKwkJCQkJCQkJYnJlYWs7IC8qIGkgPCBpbkJ5dGVzICovCisJCQkJCQkJfQorCQkJCQkJCWNoID0gKGNoIDw8IDYpICsgY2gyOworCQkJCQkJCSsrc291cmNlQXJyYXlJbmRleDsKKwkJCQkJCQlpKys7CisJCQkJCQl9CisJCQkJCQllbHNlCisJCQkJCQl7CisJCQkJCQkJLyogc3RvcmVzIGEgcGFydGlhbGx5IGNhbGN1bGF0ZWQgdGFyZ2V0Ki8KKwkJCQkJCQl0b1VuaWNvZGVTdGF0dXMgPSBjaDsKKwkJCQkJCQltb2RlID0gaW5CeXRlczsKKwkJCQkJCQl0b1VMZW5ndGggPSAoYnl0ZSkgaTsKKwkJCQkJCQlicmVhayBkb25lZm9ybm93OworCQkJCQkJfQorCQkJCQl9CisgICAgICAgICAgICAJCisgICAgCSAgICAgICAgICAgIC8qIFJlbW92ZSB0aGUgYWNjdW11bGF0ZWQgaGlnaCBiaXRzICovCisgICAgCSAgICAgICAgICAgIGNoIC09IE9GRlNFVFNfRlJPTV9VVEY4W2luQnl0ZXNdOworICAgIAkKKyAgICAJICAgICAgICAgICAgLyoKKyAgICAJICAgICAgICAgICAgICogTGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZXMgaW4gVW5pY29kZSAzLjAuMSBhbmQgdXA6CisgICAgCSAgICAgICAgICAgICAqIC0gdXNlIG9ubHkgdHJhaWwgYnl0ZXMgYWZ0ZXIgYSBsZWFkIGJ5dGUgKGNoZWNrZWQgYWJvdmUpCisgICAgCSAgICAgICAgICAgICAqIC0gdXNlIHRoZSByaWdodCBudW1iZXIgb2YgdHJhaWwgYnl0ZXMgZm9yIGEgZ2l2ZW4gbGVhZCBieXRlCisgICAgCSAgICAgICAgICAgICAqIC0gZW5jb2RlIGEgY29kZSBwb2ludCA8PSBVKzEwZmZmZgorICAgIAkgICAgICAgICAgICAgKiAtIHVzZSB0aGUgZmV3ZXN0IHBvc3NpYmxlIG51bWJlciBvZiBieXRlcyBmb3IgdGhlaXIgY29kZSBwb2ludHMKKyAgICAJICAgICAgICAgICAgICogLSB1c2UgYXQgbW9zdCA0IGJ5dGVzIChmb3IgaT49NSBpdCBpcyAweDEwZmZmZjx1dGY4X21pbkNoYXIzMltdKQorICAgIAkgICAgICAgICAgICAgKgorICAgIAkgICAgICAgICAgICAgKiBTdGFydGluZyB3aXRoIFVuaWNvZGUgMy4yLCBzdXJyb2dhdGUgY29kZSBwb2ludHMgbXVzdCBub3QgYmUgZW5jb2RlZCBpbiBVVEYtOC4KKyAgICAJICAgICAgICAgICAgICogVGhlcmUgYXJlIG5vIGlycmVndWxhciBzZXF1ZW5jZXMgYW55IG1vcmUuCisgICAgCSAgICAgICAgICAgICAqIEluIENFU1UtOCwgb25seSBzdXJyb2dhdGVzLCBub3Qgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cywgYXJlIGVuY29kZWQgZGlyZWN0bHkuCisgICAgCSAgICAgICAgICAgICAqLworICAgIAkgICAgICAgICAgICBpZiAoaSA9PSBpbkJ5dGVzICYmIGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVVRGICYmIGNoID49IFVURjhfTUlOX0NIQVIzMltpXSAmJiAoaXNDRVNVOCA/IGkgPD0gMyA6ICFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkpKQorICAgIAkgICAgICAgICAgICB7CisgICAgCSAgICAgICAgICAgICAgICAvKiBOb3JtYWwgdmFsaWQgYnl0ZSB3aGVuIHRoZSBsb29wIGhhcyBub3QgcHJlbWF0dXJlbHkgdGVybWluYXRlZCAoaSA8IGluQnl0ZXMpICovCisgICAgCSAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAwOworICAgIAkgICAgICAgICAgICAgICAgaWYgKGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVUNTMikgCisgICAgCSAgICAgICAgICAgICAgICB7CisgICAgCSAgICAgICAgICAgICAgICAgICAgLyogZml0cyBpbiAxNiBiaXRzICovCisgICAgCSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhciljaCk7CisgICAgCSAgICAgICAgICAgICAgICB9CisgICAgCSAgICAgICAgICAgICAgICBlbHNlCisgICAgCSAgICAgICAgICAgICAgICB7CisgICAgCSAgICAgICAgICAgICAgICAgICAgLyogd3JpdGUgb3V0IHRoZSBzdXJyb2dhdGVzICovCisgICAgCSAgICAgICAgICAgICAgICAgICAgY2ggLT0gVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9CQVNFOworICAgIAkgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpICgoY2ggPj4gVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkpOworICAgIAkgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoICYgVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9NQVNLKSArIFVDb252ZXJ0ZXJTaGFyZWREYXRhLlNVUlJPR0FURV9MT1dfU1RBUlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGFyZ2V0Lmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogdGFyZ2V0Q2FwYWNpdHk9PTEgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVtjaGFyRXJyb3JCdWZmZXJCZWdpbiswXT0oY2hhciljaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckVycm9yQnVmZmVyTGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAkgICAgICAgICAgICAgICAgfQorICAgIAkgICAgICAgICAgICB9CisgICAgCSAgICAgICAgICAgIGVsc2UKKyAgICAJICAgICAgICAgICAgeworICAgIAkgICAgICAgICAgICAgICAgdG9VTGVuZ3RoID0gKGJ5dGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQubWFsZm9ybWVkRm9yTGVuZ3RoKHNvdXJjZUFycmF5SW5kZXgpOworICAgIAkgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAJICAgICAgICAgICAgfQorICAgICAgICAgICAgCX0gIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKykgJiBVQ29udmVydGVyQ29uc3RhbnRzLlVOU0lHTkVEX0JZVEVfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHg4MCkgICAgICAgIC8qIFNpbXBsZSBjYXNlICovCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RvcmUgdGhlIGZpcnN0IGNoYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRvVUJ5dGVzQXJyYXlbMF0gPSAoYnl0ZSljaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluQnl0ZXMgPSBCWVRFU19GUk9NX1VURjhbKGludCljaF07IC8qIGxvb2t1cCBjdXJyZW50IHNlcXVlbmNlIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgaW5CeXRlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VQnl0ZXNBcnJheVtpXSA9IChieXRlKSAoY2gyID0gc291cmNlLmdldChzb3VyY2VBcnJheUluZGV4KSAmIFVDb252ZXJ0ZXJDb25zdGFudHMuVU5TSUdORURfQllURV9NQVNLKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1RyYWlsKChieXRlKWNoMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBpIDwgaW5CeXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoIDw8IDYpICsgY2gyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NvdXJjZUFycmF5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RvcmVzIGEgcGFydGlhbGx5IGNhbGN1bGF0ZWQgdGFyZ2V0Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Vbmljb2RlU3RhdHVzID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBpbkJ5dGVzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAoYnl0ZSkgaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZG9uZWZvcm5vdzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlbW92ZSB0aGUgYWNjdW11bGF0ZWQgaGlnaCBiaXRzICovCisgICAgICAgICAgICAgICAgICAgICAgICBjaCAtPSBPRkZTRVRTX0ZST01fVVRGOFtpbkJ5dGVzXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIExlZ2FsIFVURi04IGJ5dGUgc2VxdWVuY2VzIGluIFVuaWNvZGUgMy4wLjEgYW5kIHVwOgorICAgICAgICAgICAgICAgICAgICAgICAgICogLSB1c2Ugb25seSB0cmFpbCBieXRlcyBhZnRlciBhIGxlYWQgYnl0ZSAoY2hlY2tlZCBhYm92ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIC0gdXNlIHRoZSByaWdodCBudW1iZXIgb2YgdHJhaWwgYnl0ZXMgZm9yIGEgZ2l2ZW4gbGVhZCBieXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAtIGVuY29kZSBhIGNvZGUgcG9pbnQgPD0gVSsxMGZmZmYKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIC0gdXNlIHRoZSBmZXdlc3QgcG9zc2libGUgbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGVpciBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICAgICAgICogLSB1c2UgYXQgbW9zdCA0IGJ5dGVzIChmb3IgaT49NSBpdCBpcyAweDEwZmZmZjx1dGY4X21pbkNoYXIzMltdKQorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFN0YXJ0aW5nIHdpdGggVW5pY29kZSAzLjIsIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBtdXN0IG5vdCBiZSBlbmNvZGVkIGluIFVURi04LgorICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlcmUgYXJlIG5vIGlycmVndWxhciBzZXF1ZW5jZXMgYW55IG1vcmUuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBDRVNVLTgsIG9ubHkgc3Vycm9nYXRlcywgbm90IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIGFyZSBlbmNvZGVkIGRpcmVjdGx5LgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSBpbkJ5dGVzICYmIGNoIDw9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLk1BWElNVU1fVVRGICYmIGNoID49IFVURjhfTUlOX0NIQVIzMltpXSAmJiAoaXNDRVNVOCA/IGkgPD0gMyA6ICFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljaCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vcm1hbCB2YWxpZCBieXRlIHdoZW4gdGhlIGxvb3AgaGFzIG5vdCBwcmVtYXR1cmVseSB0ZXJtaW5hdGVkIChpIDwgaW5CeXRlcykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VMZW5ndGggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBVQ29udmVydGVyU2hhcmVkRGF0YS5NQVhJTVVNX1VDUzIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZml0cyBpbiAxNiBiaXRzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGNoYXIpIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd3JpdGUgb3V0IHRoZSBzdXJyb2dhdGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoIC09IFVDb252ZXJ0ZXJTaGFyZWREYXRhLkhBTEZfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoY2hhcikgKChjaCA+Pj4gVUNvbnZlcnRlclNoYXJlZERhdGEuSEFMRl9TSElGVCkgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfSElHSF9TVEFSVCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IChjaCAmIFVDb252ZXJ0ZXJTaGFyZWREYXRhLkhBTEZfTUFTSykgKyBVQ29udmVydGVyU2hhcmVkRGF0YS5TVVJST0dBVEVfTE9XX1NUQVJUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1JlbWFpbmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KChjaGFyKWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFB1dCBpbiBvdmVyZmxvdyBidWZmZXIgKG5vdCBoYW5kbGVkIGhlcmUpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyRXJyb3JCdWZmZXJBcnJheVtjaGFyRXJyb3JCdWZmZXJCZWdpbiswXT0oY2hhciljaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJFcnJvckJ1ZmZlckxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvVUxlbmd0aCA9IChieXRlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisJCQl9CisgICAgICAgIAorICAgIAkgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSAmJiAhdGFyZ2V0Lmhhc1JlbWFpbmluZygpKQorICAgIAkgICAgeworICAgIAkgICAgICAgIC8qIEVuZCBvZiB0YXJnZXQgYnVmZmVyICovCisgICAgCSAgICAJY3IgPSBDb2RlclJlc3VsdC5PVkVSRkxPVzsKKyAgICAJICAgIH0gICAgICAgIAkgICAgICAgIAkKKyAgICAgICAgCQorICAgIAkgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIGNsYXNzIENoYXJzZXRFbmNvZGVyVVRGOCBleHRlbmRzIENoYXJzZXRFbmNvZGVySUNVeworCisgICAgICAgIHB1YmxpYyBDaGFyc2V0RW5jb2RlclVURjgoQ2hhcnNldElDVSBjcykgeworICAgICAgICAgICAgc3VwZXIoY3MsIGZyb21VU3Vic3RpdHV0aW9uKTsKKyAgICAgICAgICAgIGltcGxSZXNldCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpbXBsUmVzZXQoKSB7CisgICAgICAgICAgICBzdXBlci5pbXBsUmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIENvZGVyUmVzdWx0IGVuY29kZUxvb3AoQ2hhckJ1ZmZlciBzb3VyY2UsIEJ5dGVCdWZmZXIgdGFyZ2V0LCBJbnRCdWZmZXIgb2Zmc2V0cywgYm9vbGVhbiBmbHVzaCl7CisgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNvdXJjZUFycmF5SW5kZXggPSBzb3VyY2UucG9zaXRpb24oKTsKKworICAgICAgICAgICAgLy8gVG9kbzogQ0VTVTggaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgIC8vIGJvb2xlYW4gaXNDRVNVOCA9IGFyZ3MuY29udmVydGVyLnNoYXJlZERhdGEgPT0gX0NFU1U4RGF0YTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNDRVNVOCA9IChVQ29udmVydGVyU2hhcmVkRGF0YS5fQ0VTVThEYXRhICE9IG51bGwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgY2g7CisgICAgICAgICAgICBzaG9ydCBpbmRleFRvV3JpdGU7CisgICAgICAgICAgICBieXRlIHRlbXBbXSA9IG5ldyBieXRlWzRdOworICAgICAgICAgICAgYm9vbGVhbiBkb2xvb3AgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21VQ2hhcjMyICE9IDAgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICBjaCA9IGZyb21VQ2hhcjMyOworICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAvKiB0ZXN0IHRoZSBmb2xsb3dpbmcgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzb3VyY2VBcnJheUluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludCgoY2hhciljaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0aGlzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aGlzIGNvbmRpdGlvbiB0cmVlICovCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGxiYWNrKGlsbGVnYWwpICovCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IChpbnQpY2g7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgICAgICBmcm9tVUNoYXIzMiA9IChpbnQpY2g7CisgICAgICAgICAgICAgICAgICAgIGRvbG9vcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGNoIDwgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpeworICAgICAgICAgICAgICAgICAgICBpbmRleFRvV3JpdGUgPSAyOworICAgICAgICAgICAgICAgICAgICB0ZW1wWzJdID0gKGJ5dGUpICgoY2ggPj4+IDEyKSB8IDB4ZTApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBpbmRleFRvV3JpdGUgPSAzOworICAgICAgICAgICAgICAgICAgICB0ZW1wWzNdID0gKGJ5dGUpICgoY2ggPj4+IDE4KSB8IDB4ZjApOworICAgICAgICAgICAgICAgICAgICB0ZW1wWzJdID0gKGJ5dGUpICgoKGNoID4+PiAxMikgJiAweDNmKSB8IDB4ODApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZW1wWzFdID0gKGJ5dGUpICgoKGNoID4+PiA2KSAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAgICAgdGVtcFswXSA9IChieXRlKSAoKGNoICYgMHgzZikgfCAweDgwKTsKKyAgICAKKyAgICAgICAgICAgICAgICBmb3IgKDsgaW5kZXhUb1dyaXRlID49IDA7IGluZGV4VG9Xcml0ZS0tKXsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRlbXBbaW5kZXhUb1dyaXRlXSk7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbZXJyb3JCdWZmZXJMZW5ndGgrK10gPSB0ZW1wW2luZGV4VG9Xcml0ZV07CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKGRvbG9vcCkgeworICAgICAgICAgICAgICAgIHdoaWxlIChzb3VyY2VBcnJheUluZGV4IDwgc291cmNlLmxpbWl0KCkgJiYgdGFyZ2V0Lmhhc1JlbWFpbmluZygpKXsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuZ2V0KHNvdXJjZUFycmF5SW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IDB4ODApeyAgICAgICAgLyogU2luZ2xlIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpY2gpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoY2ggPCAweDgwMCkgeyAgLyogRG91YmxlIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wdXQoKGJ5dGUpICgoY2ggPj4+IDYpIHwgMHhjMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1dCgoYnl0ZSkgKChjaCAmIDB4M2YpIHwgMHg4MCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJbMF0gPSAoYnl0ZSkgKChjaCAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JCdWZmZXJMZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH1lbHNleyAvKiBDaGVjayBmb3Igc3Vycm9nYXRlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpY2gpICYmICFpc0NFU1U4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSkgeworICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUFycmF5SW5kZXggPCBzb3VyY2UubGltaXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGVzdCB0aGUgZm9sbG93aW5nIGNvZGUgdW5pdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZS5nZXQoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc291cmNlQXJyYXlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKWNoLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jaDIgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgdGhpcyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRoaXMgY29uZGl0aW9uIHRyZWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGFuIHVubWF0Y2hlZCBsZWFkIGNvZGUgdW5pdCAoMXN0IHN1cnJvZ2F0ZSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayhpbGxlZ2FsKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VQ2hhcjMyID0gY2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBDb2RlclJlc3VsdC5tYWxmb3JtZWRGb3JMZW5ndGgoc291cmNlQXJyYXlJbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBpbnB1dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVDaGFyMzIgPSAoaW50KWNoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lm1hbGZvcm1lZEZvckxlbmd0aChzb3VyY2VBcnJheUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleFRvV3JpdGUgPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKChjaCA+Pj4gMTIpIHwgMHhlMCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhUb1dyaXRlID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wWzNdID0gKGJ5dGUpICgoY2ggPj4+IDE4KSB8IDB4ZjApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbMl0gPSAoYnl0ZSkgKCgoY2ggPj4+IDEyKSAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wWzFdID0gKGJ5dGUpICgoKGNoID4+PiA2KSAmIDB4M2YpIHwgMHg4MCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wWzBdID0gKGJ5dGUpICgoY2ggJiAweDNmKSB8IDB4ODApOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgaW5kZXhUb1dyaXRlID49IDA7IGluZGV4VG9Xcml0ZS0tKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUmVtYWluaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHV0KHRlbXBbaW5kZXhUb1dyaXRlXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQnVmZmVyW2Vycm9yQnVmZmVyTGVuZ3RoKytdID0gdGVtcFtpbmRleFRvV3JpdGVdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IENvZGVyUmVzdWx0Lk9WRVJGTE9XOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoc291cmNlQXJyYXlJbmRleCA8IHNvdXJjZS5saW1pdCgpICYmICF0YXJnZXQuaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgICAgIGNyID0gQ29kZXJSZXN1bHQuT1ZFUkZMT1c7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNvdXJjZUFycmF5SW5kZXgpOworICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICByZXR1cm4gY3I7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogc2luZ2xlLWNvZGUgcG9pbnQgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogRG9lcyB0aGlzIGNvZGUgdW5pdCAoYnl0ZSkgZW5jb2RlIGEgY29kZSBwb2ludCBieSBpdHNlbGYgKFVTLUFTQ0lJIDAuLjB4N2YpPworICAgICAqIEBwYXJhbSBjIDgtYml0IGNvZGUgdW5pdCAoYnl0ZSkKKyAgICAgKiBAcmV0dXJuIFRSVUUgb3IgRkFMU0UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqLworICAgIC8vc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTaW5nbGUoYnl0ZSBjKSB7cmV0dXJuICgoKGMpJjB4ODApPT0wKTt9CisKKyAgICAvKgorICAgICAqIElzIHRoaXMgY29kZSB1bml0IChieXRlKSBhIFVURi04IGxlYWQgYnl0ZT8KKyAgICAgKiBAcGFyYW0gYyA4LWJpdCBjb2RlIHVuaXQgKGJ5dGUpCisgICAgICogQHJldHVybiBUUlVFIG9yIEZBTFNFCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAvL3N0YXRpYyBmaW5hbCBib29sZWFuIGlzTGVhZChieXRlIGMpIHtyZXR1cm4gKCgoKGMpLTB4YzApICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9CWVRFX01BU0spPDB4M2UpO30KKworICAgIC8qKgorICAgICAqIElzIHRoaXMgY29kZSB1bml0IChieXRlKSBhIFVURi04IHRyYWlsIGJ5dGU/CisgICAgICogQHBhcmFtIGMgOC1iaXQgY29kZSB1bml0IChieXRlKQorICAgICAqIEByZXR1cm4gVFJVRSBvciBGQUxTRQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNUcmFpbChieXRlIGMpIHtyZXR1cm4gKCgoYykmMHhjMCk9PTB4ODApO30KKworICAgIC8qCisgICAgICogSG93IG1hbnkgY29kZSB1bml0cyAoYnl0ZXMpIGFyZSB1c2VkIGZvciB0aGUgVVRGLTggZW5jb2RpbmcKKyAgICAgKiBvZiB0aGlzIFVuaWNvZGUgY29kZSBwb2ludD8KKyAgICAgKiBAcGFyYW0gYyAzMi1iaXQgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gMS4uNCwgb3IgMCBpZiBjIGlzIGEgc3Vycm9nYXRlIG9yIG5vdCBhIFVuaWNvZGUgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgLypzdGF0aWMgZmluYWwgaW50IGxlbmd0aChpbnQgYykKKyAgICB7CisgICAgCWxvbmcgdWMgPSBjICYgVUNvbnZlcnRlckNvbnN0YW50cy5VTlNJR05FRF9JTlRfTUFTSzsKKyAgICAJcmV0dXJuCisgICAgICAgICh1Yzw9MHg3ZiA/IDEgOiAKKyAgICAgICAgICAgICh1Yzw9MHg3ZmYgPyAyIDogCisgICAgICAgICAgICAgICAgKHVjPD0weGQ3ZmYgPyAzIDogCisgICAgICAgICAgICAgICAgICAgICh1Yzw9MHhkZmZmIHx8IHVjPjB4MTBmZmZmID8gMCA6IAorICAgICAgICAgICAgICAgICAgICAgICAgKHVjPD0weGZmZmYgPyAzIDogNCkKKyAgICAgICAgICAgICAgICAgICAgKSAKKyAgICAgICAgICAgICAgICApIAorICAgICAgICAgICAgKSAKKyAgICAgICAgKTsKKyAgICB9Ki8KKyAgICAKKyAgICBwdWJsaWMgQ2hhcnNldERlY29kZXIgbmV3RGVjb2RlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyc2V0RGVjb2RlclVURjgodGhpcyk7CisgICAgfQorCisgICAgcHVibGljIENoYXJzZXRFbmNvZGVyIG5ld0VuY29kZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcnNldEVuY29kZXJVVEY4KHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJBbGlhcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckFsaWFzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkMzdiNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJBbGlhcy5qYXZhCkBAIC0wLDAgKzEsODMxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworCitmaW5hbCBjbGFzcyBVQ29udmVydGVyQWxpYXMgeworICAgIHN0YXRpYyBmaW5hbCBpbnQgVU5OT1JNQUxJWkVEID0gMDsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1REX05PUk1BTElaRUQgPSAxOworCisgICAgc3RhdGljIGZpbmFsIGludCBBTUJJR1VPVVNfQUxJQVNfTUFQX0JJVCA9IDB4ODAwMDsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IENPTlRBSU5TX09QVElPTl9CSVQgPSAweDQwMDA7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IENPTlZFUlRFUl9JTkRFWF9NQVNLID0gMHhGRkY7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE5VTV9SRVNFUlZFRF9UQUdTID0gMjsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTlVNX0hJRERFTl9UQUdTID0gMTsKKworICAgIHN0YXRpYyBpbnRbXSBnQ29udmVydGVyTGlzdCA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50W10gZ1RhZ0xpc3QgPSBudWxsOworCisgICAgc3RhdGljIGludFtdIGdBbGlhc0xpc3QgPSBudWxsOworCisgICAgc3RhdGljIGludFtdIGdVbnRhZ2dlZENvbnZBcnJheSA9IG51bGw7CisKKyAgICBzdGF0aWMgaW50W10gZ1RhZ2dlZEFsaWFzQXJyYXkgPSBudWxsOworCisgICAgc3RhdGljIGludFtdIGdUYWdnZWRBbGlhc0xpc3RzID0gbnVsbDsKKworICAgIHN0YXRpYyBpbnRbXSBnT3B0aW9uVGFibGUgPSBudWxsOworCisgICAgc3RhdGljIGJ5dGVbXSBnU3RyaW5nVGFibGUgPSBudWxsOworCisgICAgc3RhdGljIGJ5dGVbXSBnTm9ybWFsaXplZFN0cmluZ1RhYmxlID0gbnVsbDsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgR0VUX1NUUklORyhpbnQgaWR4KSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGdTdHJpbmdUYWJsZSwgMiAqIGlkeCwgKGludCkgc3RybGVuKGdTdHJpbmdUYWJsZSwgMiAqIGlkeCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHRVRfTk9STUFMSVpFRF9TVFJJTkcoaW50IGlkeCkgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhnTm9ybWFsaXplZFN0cmluZ1RhYmxlLCAyICogaWR4LCAoaW50KSBzdHJsZW4oZ05vcm1hbGl6ZWRTdHJpbmdUYWJsZSwgMiAqIGlkeCkpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHN0cmxlbihieXRlW10gc0FycmF5LCBpbnQgc0JlZ2luKQorICAgIHsKKyAgICAgICAgaW50IGkgPSBzQmVnaW47CisgICAgICAgIHdoaWxlKGkgPCBzQXJyYXkubGVuZ3RoICYmIHNBcnJheVtpKytdICE9IDApIHt9CisgICAgICAgIHJldHVybiBpIC0gc0JlZ2luIC0gMTsKKyAgICB9CisKKyAgICAvKnByaXZhdGUqLyBzdGF0aWMgZmluYWwgaW50IHRvY0xlbmd0aEluZGV4ID0gMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjb252ZXJ0ZXJMaXN0SW5kZXggPSAxOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRhZ0xpc3RJbmRleCA9IDI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgYWxpYXNMaXN0SW5kZXggPSAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHVudGFnZ2VkQ29udkFycmF5SW5kZXggPSA0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRhZ2dlZEFsaWFzQXJyYXlJbmRleCA9IDU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdGFnZ2VkQWxpYXNMaXN0c0luZGV4ID0gNjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBvcHRpb25UYWJsZUluZGV4ID0gNzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzdHJpbmdUYWJsZUluZGV4ID0gODsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBub3JtYWxpemVkU3RyaW5nVGFibGVJbmRleCA9IDk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWluVG9jTGVuZ3RoID0gOTsgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG1pbi4gdG9jTGVuZ3RoIGluIHRoZSBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZG9lcyBub3QgY291bnQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0b2NMZW5ndGhJbmRleCEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG9mZnNldHNDb3VudCA9IG1pblRvY0xlbmd0aCArIDE7IC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbGVuZ3RoIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHN3YXBwZXIncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRlbXBvcmFyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG9mZnNldHNbXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgc3RhdGljIEJ5dGVCdWZmZXIgZ0FsaWFzRGF0YSA9IG51bGw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQWxpYXMoU3RyaW5nIGFsaWFzKSB7CisgICAgICAgIGlmIChhbGlhcyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBbGlhcyBwYXJhbSBpcyBudWxsISIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoYWxpYXMubGVuZ3RoKCkgIT0gMCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENOVkFMSUFTX0RBVEFfRklMRV9OQU1FID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSArICIvY252YWxpYXMuaWN1IjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ05WQUxJQVNfREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIGJvb2xlYW4gaGF2ZUFsaWFzRGF0YSgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGJvb2xlYW4gbmVlZEluaXQ7CisKKyAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyB1bXR4X2xvY2soTlVMTCk7CisgICAgICAgIG5lZWRJbml0ID0gZ0FsaWFzRGF0YSA9PSBudWxsOworCisgICAgICAgIC8qIGxvYWQgY29udmVydGVyIGFsaWFzIGRhdGEgZnJvbSBmaWxlIGlmIG5lY2Vzc2FyeSAqLworICAgICAgICBpZiAobmVlZEluaXQpIHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgZGF0YSA9IG51bGw7CisgICAgICAgICAgICBpbnRbXSB0YWJsZUFycmF5ID0gbnVsbDsKKyAgICAgICAgICAgIGludCB0YWJsZVN0YXJ0OworICAgICAgICAgICAgLy9ieXRlW10gcmVzZXJ2ZWRCeXRlcyA9IG51bGw7CisKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGkgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKENOVkFMSUFTX0RBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIENOVkFMSUFTX0RBVEFfQlVGRkVSX1NJWkUpOworICAgICAgICAgICAgVUNvbnZlcnRlckFsaWFzRGF0YVJlYWRlciByZWFkZXIgPSBuZXcgVUNvbnZlcnRlckFsaWFzRGF0YVJlYWRlcihiKTsKKyAgICAgICAgICAgIHRhYmxlQXJyYXkgPSByZWFkZXIucmVhZFRvYyhvZmZzZXRzQ291bnQpOworCisgICAgICAgICAgICB0YWJsZVN0YXJ0ID0gdGFibGVBcnJheVswXTsKKyAgICAgICAgICAgIGlmICh0YWJsZVN0YXJ0IDwgbWluVG9jTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIGRhdGEgZm9ybWF0LiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ0NvbnZlcnRlckxpc3QgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVtjb252ZXJ0ZXJMaXN0SW5kZXhdXTsKKyAgICAgICAgICAgIGdUYWdMaXN0PSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVt0YWdMaXN0SW5kZXhdXTsKKyAgICAgICAgICAgIGdBbGlhc0xpc3QgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVthbGlhc0xpc3RJbmRleF1dOworICAgICAgICAgICAgZ1VudGFnZ2VkQ29udkFycmF5ID0gbmV3IGludFsoaW50KXRhYmxlQXJyYXlbdW50YWdnZWRDb252QXJyYXlJbmRleF1dOworICAgICAgICAgICAgZ1RhZ2dlZEFsaWFzQXJyYXkgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVt0YWdnZWRBbGlhc0FycmF5SW5kZXhdXTsKKyAgICAgICAgICAgIGdUYWdnZWRBbGlhc0xpc3RzID0gbmV3IGludFsoaW50KXRhYmxlQXJyYXlbdGFnZ2VkQWxpYXNMaXN0c0luZGV4XV07CisgICAgICAgICAgICBnT3B0aW9uVGFibGUgPSBuZXcgaW50WyhpbnQpdGFibGVBcnJheVtvcHRpb25UYWJsZUluZGV4XV07CisgICAgICAgICAgICBnU3RyaW5nVGFibGUgPSBuZXcgYnl0ZVsoaW50KXRhYmxlQXJyYXlbc3RyaW5nVGFibGVJbmRleF0qMl07CisgICAgICAgICAgICBnTm9ybWFsaXplZFN0cmluZ1RhYmxlID0gbmV3IGJ5dGVbKGludCl0YWJsZUFycmF5W25vcm1hbGl6ZWRTdHJpbmdUYWJsZUluZGV4XSoyXTsKKworICAgICAgICAgICAgcmVhZGVyLnJlYWQoZ0NvbnZlcnRlckxpc3QsIGdUYWdMaXN0LAorICAgICAgICAgICAgICAgICAgICBnQWxpYXNMaXN0LCBnVW50YWdnZWRDb252QXJyYXksCisgICAgICAgICAgICAgICAgICAgIGdUYWdnZWRBbGlhc0FycmF5LCBnVGFnZ2VkQWxpYXNMaXN0cywKKyAgICAgICAgICAgICAgICAgICAgZ09wdGlvblRhYmxlLCBnU3RyaW5nVGFibGUsIGdOb3JtYWxpemVkU3RyaW5nVGFibGUpOworICAgICAgICAgICAgZGF0YSA9ICBCeXRlQnVmZmVyLmFsbG9jYXRlKDApOyAvLyBkdW1teSBVRGF0YU1lbW9yeSBvYmplY3QgaW4gYWJzZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIG1lbW9yeSBtYXBwaW5nCisKKyAgICAgICAgICAgIGlmIChnT3B0aW9uVGFibGVbMF0gIT0gU1REX05PUk1BTElaRUQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIlVuc3VwcG9ydGVkIGFsaWFzIG5vcm1hbGl6YXRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyB1bXR4X2xvY2soTlVMTCk7CisgICAgICAgICAgICBpZiAoZ0FsaWFzRGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZ0FsaWFzRGF0YSA9IGRhdGE7CisgICAgICAgICAgICAgICAgZGF0YSA9IG51bGw7CisKKyAgICAgICAgICAgICAgICAvLyBhZ2xqcG9ydDpmaXggdWNsbl9jb21tb25fcmVnaXN0ZXJDbGVhbnVwKFVDTE5fQ09NTU9OX0lPLAorICAgICAgICAgICAgICAgIC8vIGlvX2NsZWFudXApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyB1bXR4X3VubG9jayhOVUxMKTsKKworICAgICAgICAgICAgLyogaWYgYSBkaWZmZXJlbnQgdGhyZWFkIHNldCBpdCBmaXJzdCwgdGhlbiBjbG9zZSB0aGUgZXh0cmEgZGF0YSAqLworICAgICAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIGFnbGpwb3J0OmZpeCB1ZGF0YV9jbG9zZShkYXRhKTsgLyogTlVMTCBpZiBpdCB3YXMgc2V0CisgICAgICAgICAgICAgICAgLy8gY29ycmVjdGx5ICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBVX0NGVU5DIGNvbnN0IGNoYXIgKiBpb19nZXRDb252ZXJ0ZXJOYW1lKGNvbnN0IGNoYXIgKmFsaWFzLCBVRXJyb3JDb2RlCisgICAgLy8gKnBFcnJvckNvZGUpCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgaW9fZ2V0Q29udmVydGVyTmFtZShTdHJpbmcgYWxpYXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmIChoYXZlQWxpYXNEYXRhKCkgJiYgaXNBbGlhcyhhbGlhcykpIHsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBpc0FtYmlnb3VzID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICBpbnQgY29udk51bSA9IGZpbmRDb252ZXJ0ZXIoYWxpYXMsIGlzQW1iaWdvdXMpOworICAgICAgICAgICAgaWYgKGNvbnZOdW0gPCBnQ29udmVydGVyTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gR0VUX1NUUklORyhnQ29udmVydGVyTGlzdFsoaW50KSBjb252TnVtXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBlbHNlIGNvbnZlcnRlciBub3QgZm91bmQgKi8KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHNlYXJjaCBmb3IgYW4gYWxpYXMgcmV0dXJuIHRoZSBjb252ZXJ0ZXIgbnVtYmVyIGluZGV4IGZvciBnQ29udmVydGVyTGlzdAorICAgICAqLworICAgIC8vIHN0YXRpYyBVX0lOTElORSB1aW50MzJfdCBmaW5kQ29udmVydGVyKGNvbnN0IGNoYXIgKmFsaWFzLCBVRXJyb3JDb2RlCisgICAgLy8gKnBFcnJvckNvZGUpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGZpbmRDb252ZXJ0ZXIoU3RyaW5nIGFsaWFzLCBib29sZWFuW10gaXNBbWJpZ291cykgeworICAgICAgICBpbnQgbWlkLCBzdGFydCwgbGltaXQ7CisgICAgICAgIGludCBsYXN0TWlkOworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyaXBwZWROYW1lID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgYWxpYXNUb0NvbXBhcmU7CisKKyAgICAgICAgc3RyaXBGb3JDb21wYXJlKHN0cmlwcGVkTmFtZSwgYWxpYXMpOworICAgICAgICBhbGlhcyA9IHN0cmlwcGVkTmFtZS50b1N0cmluZygpOworCisgICAgICAgIC8qIGRvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGFsaWFzICovCisgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgbGltaXQgPSBnVW50YWdnZWRDb252QXJyYXkubGVuZ3RoOworICAgICAgICBtaWQgPSBsaW1pdDsKKyAgICAgICAgbGFzdE1pZCA9IEludGVnZXIuTUFYX1ZBTFVFOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIG1pZCA9IChzdGFydCArIGxpbWl0KSAvIDI7CisgICAgICAgICAgICBpZiAobGFzdE1pZCA9PSBtaWQpIHsgLyogSGF2ZSB3ZSBtb3ZlZD8gKi8KKyAgICAgICAgICAgICAgICBicmVhazsgLyogV2UgaGF2ZW4ndCBtb3ZlZCwgYW5kIGl0IHdhc24ndCBmb3VuZC4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RNaWQgPSBtaWQ7CisgICAgICAgICAgICBhbGlhc1RvQ29tcGFyZSA9IEdFVF9OT1JNQUxJWkVEX1NUUklORyhnQWxpYXNMaXN0WyhpbnQpIG1pZF0pOworICAgICAgICAgICAgcmVzdWx0ID0gYWxpYXMuY29tcGFyZVRvKGFsaWFzVG9Db21wYXJlKTsKKworICAgICAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IG1pZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFNpbmNlIHRoZSBnZW5jbnZhbCB0b29sIGZvbGRzIGR1cGxpY2F0ZXMgaW50byBvbmUgZW50cnksIHRoaXMKKyAgICAgICAgICAgICAgICAgKiBhbGlhcyBpbiBnQWxpYXNMaXN0IGlzIHVuaXF1ZSwgYnV0IGRpZmZlcmVudCBzdGFuZGFyZHMgbWF5CisgICAgICAgICAgICAgICAgICogbWFwIGFuIGFsaWFzIHRvIGRpZmZlcmVudCBjb252ZXJ0ZXJzLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmICgoZ1VudGFnZ2VkQ29udkFycmF5WyhpbnQpIG1pZF0gJiBBTUJJR1VPVVNfQUxJQVNfTUFQX0JJVCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpc0FtYmlnb3VzWzBdPXRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIFN0YXRlIHdoZXRoZXIgdGhlIGNhbm9uaWNhbCBjb252ZXJ0ZXIgbmFtZSBjb250YWlucyBhbiBvcHRpb24uCisgICAgICAgICAgICAgICAgVGhpcyBpbmZvcm1hdGlvbiBpcyBjb250YWluZWQgaW4gdGhpcyBsaXN0IGluIG9yZGVyIHRvIG1haW50YWluIGJhY2t3YXJkICYgZm9yd2FyZCBjb21wYXRpYmlsaXR5LiAqLworICAgICAgICAgICAgICAgIC8qaWYgKGNvbnRhaW5zT3B0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIFVCb29sIGNvbnRhaW5zQ252T3B0aW9uSW5mbyA9IChVQm9vbClnTWFpblRhYmxlLm9wdGlvblRhYmxlLT5jb250YWluc0Nudk9wdGlvbkluZm87CisgICAgICAgICAgICAgICAgICAgICpjb250YWluc09wdGlvbiA9IChVQm9vbCkoKGNvbnRhaW5zQ252T3B0aW9uSW5mbworICAgICAgICAgICAgICAgICAgICAgICAgJiYgKChnTWFpblRhYmxlLnVudGFnZ2VkQ29udkFycmF5W21pZF0gJiBVQ05WX0NPTlRBSU5TX09QVElPTl9CSVQpICE9IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWNvbnRhaW5zQ252T3B0aW9uSW5mbyk7CisgICAgICAgICAgICAgICAgfSovCisgICAgICAgICAgICAgICAgcmV0dXJuIGdVbnRhZ2dlZENvbnZBcnJheVsoaW50KSBtaWRdICYgQ09OVkVSVEVSX0lOREVYX01BU0s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEludGVnZXIuTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIHN0cmlwRm9yQ29tcGFyZSBSZW1vdmUgdGhlIHVuZGVyc2NvcmVzLCBkYXNoZXMgYW5kIHNwYWNlcyBmcm9tCisgICAgICogdGhlIG5hbWUsIGFuZCBjb252ZXJ0IHRoZSBuYW1lIHRvIGxvd2VyIGNhc2UuCisgICAgICogCisgICAgICogQHBhcmFtIGRzdCBUaGUgZGVzdGluYXRpb24gYnVmZmVyLCB3aGljaCBpcyA8PSB0aGUgYnVmZmVyIG9mIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIGFsaWFzIHRvIHN0cmlwCisgICAgICogQHJldHVybiB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIHN0cmlwRm9yQ29tcGFyZShTdHJpbmdCdWZmZXIgZHN0LCBTdHJpbmcgbmFtZSkgeworICAgICAgICByZXR1cm4gaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUoZHN0LCBuYW1lKTsKKyAgICB9CisKKyAgICAvLyBlbnVtIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElHTk9SRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBaRVJPID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE5PTlpFUk8gPSAyOworICAgIHN0YXRpYyBmaW5hbCBieXRlIE1JTkxFVFRFUiA9IDM7IC8qIGFueSB2YWx1ZXMgZnJvbSBoZXJlIG9uIGFyZSBsb3dlcmNhc2UgbGV0dGVyIG1hcHBpbmdzICovCisgICAgLy8gfQorICAgIAorICAgIC8qIGNoYXJhY3RlciB0eXBlcyBmb3IgQVNDSUkgMDAuLjdGICovCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgYXNjaWlUeXBlc1tdID0gbmV3IGJ5dGVbXSB7CisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIFpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIE5PTlpFUk8sIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIDAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsIDB4NmQsIDB4NmUsIDB4NmYsCisgICAgICAgIDB4NzAsIDB4NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4NzUsIDB4NzYsIDB4NzcsIDB4NzgsIDB4NzksIDB4N2EsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgIDAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsIDB4NmQsIDB4NmUsIDB4NmYsCisgICAgICAgIDB4NzAsIDB4NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4NzUsIDB4NzYsIDB4NzcsIDB4NzgsIDB4NzksIDB4N2EsIDAsIDAsIDAsIDAsIDAKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBHRVRfQ0hBUl9UWVBFKGNoYXIgYykgeworICAgICAgICByZXR1cm4gKGNoYXIpKChjIDwgYXNjaWlUeXBlcy5sZW5ndGgpID8gYXNjaWlUeXBlc1tjXSA6IChjaGFyKUlHTk9SRSk7CisgICAgfQorICAgIAorICAgIC8qKiBAc2VlIFVDb252ZXJ0ZXJBbGlhcyNjb21wYXJlTmFtZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUoU3RyaW5nQnVmZmVyIGRzdCwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW50IG5hbWVJbmRleCA9IDA7CisgICAgICAgIGNoYXIgdHlwZSwgbmV4dFR5cGU7CisgICAgICAgIGNoYXIgYzE7CisgICAgICAgIGJvb2xlYW4gYWZ0ZXJEaWdpdCA9IGZhbHNlOworCisgICAgICAgIHdoaWxlIChuYW1lSW5kZXggPCBuYW1lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjMSA9IG5hbWUuY2hhckF0KG5hbWVJbmRleCsrKTsKKyAgICAgICAgICAgIHR5cGUgPSBHRVRfQ0hBUl9UWVBFKGMxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBJR05PUkU6CisgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBpZ25vcmUgYWxsIGJ1dCBsZXR0ZXJzIGFuZCBkaWdpdHMgKi8KKyAgICAgICAgICAgIGNhc2UgWkVSTzoKKyAgICAgICAgICAgICAgICBpZiAoIWFmdGVyRGlnaXQgJiYgbmFtZUluZGV4IDwgbmFtZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0VHlwZSA9IEdFVF9DSEFSX1RZUEUobmFtZS5jaGFyQXQobmFtZUluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0VHlwZSA9PSBaRVJPIHx8IG5leHRUeXBlID09IE5PTlpFUk8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBpZ25vcmUgbGVhZGluZyB6ZXJvIGJlZm9yZSBhbm90aGVyIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE5PTlpFUk86CisgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGMxID0gKGNoYXIpdHlwZTsgLyogbG93ZXJjYXNlZCBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAgICBhZnRlckRpZ2l0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkc3QuYXBwZW5kKGMxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIGEgZnV6enkgY29tcGFyZSBvZiBhIHR3byBjb252ZXJ0ZXIvYWxpYXMgbmFtZXMuIFRoZSBjb21wYXJpc29uIGlzCisgICAgICogY2FzZS1pbnNlbnNpdGl2ZS4gSXQgYWxzbyBpZ25vcmVzIHRoZSBjaGFyYWN0ZXJzICctJywgJ18nLCBhbmQgJyAnIChkYXNoLAorICAgICAqIHVuZGVyc2NvcmUsIGFuZCBzcGFjZSkuIFRodXMgdGhlIHN0cmluZ3MgIlVURi04IiwgInV0Zl84IiwgYW5kICJVdGYgOCIKKyAgICAgKiBhcmUgZXhhY3RseSBlcXVpdmFsZW50LgorICAgICAqIAorICAgICAqIFRoaXMgaXMgYSBzeW1tZXRyaWNhbCAoY29tbXV0YXRpdmUpIG9wZXJhdGlvbjsgb3JkZXIgb2YgYXJndW1lbnRzIGlzCisgICAgICogaW5zaWduaWZpY2FudC4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcHJvcGVydHkgZm9yIHNvcnRpbmcgdGhlIGxpc3QgKHdoZW4KKyAgICAgKiB0aGUgbGlzdCBpcyBwcmVwcm9jZXNzZWQgaW50byBiaW5hcnkgZm9ybSkgYW5kIGZvciBwZXJmb3JtaW5nIGJpbmFyeQorICAgICAqIHNlYXJjaGVzIG9uIGl0IGF0IHJ1biB0aW1lLgorICAgICAqIAorICAgICAqIEBwYXJhbSBuYW1lMQorICAgICAqICAgICAgICAgICAgYSBjb252ZXJ0ZXIgbmFtZSBvciBhbGlhcywgemVyby10ZXJtaW5hdGVkCisgICAgICogQHBhcmFtIG5hbWUyCisgICAgICogICAgICAgICAgICBhIGNvbnZlcnRlciBuYW1lIG9yIGFsaWFzLCB6ZXJvLXRlcm1pbmF0ZWQKKyAgICAgKiBAcmV0dXJuIDAgaWYgdGhlIG5hbWVzIG1hdGNoLCBvciBhIG5lZ2F0aXZlIHZhbHVlIGlmIHRoZSBuYW1lMSBsZXhpY2FsbHkKKyAgICAgKiAgICAgICAgIHByZWNlZGVzIG5hbWUyLCBvciBhIHBvc2l0aXZlIHZhbHVlIGlmIHRoZSBuYW1lMSBsZXhpY2FsbHkKKyAgICAgKiAgICAgICAgIGZvbGxvd3MgbmFtZTIuCisgICAgICogCisgICAgICogQHNlZSBVQ29udmVydGVyQWxpYXMjc3RyaXBGb3JDb21wYXJlCisgICAgICovCisgICAgc3RhdGljIGludCBjb21wYXJlTmFtZXMoU3RyaW5nIG5hbWUxLCBTdHJpbmcgbmFtZTIpeworICAgICAgICBpbnQgcmMsIG5hbWUxSW5kZXggPSAwLCBuYW1lMkluZGV4ID0gMDsKKyAgICAgICAgY2hhciB0eXBlLCBuZXh0VHlwZTsKKyAgICAgICAgY2hhciBjMSA9IDAsIGMyID0gMDsKKyAgICAgICAgYm9vbGVhbiBhZnRlckRpZ2l0MSA9IGZhbHNlLCBhZnRlckRpZ2l0MiA9IGZhbHNlOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHdoaWxlIChuYW1lMUluZGV4IDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjMSA9IG5hbWUxLmNoYXJBdChuYW1lMUluZGV4KyspOworICAgICAgICAgICAgICAgIHR5cGUgPSBHRVRfQ0hBUl9UWVBFKGMxKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIElHTk9SRToKKyAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdDEgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGlnbm9yZSBhbGwgYnV0IGxldHRlcnMgYW5kIGRpZ2l0cyAqLworICAgICAgICAgICAgICAgIGNhc2UgWkVSTzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhZnRlckRpZ2l0MSAmJiBuYW1lMUluZGV4IDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRUeXBlID0gR0VUX0NIQVJfVFlQRShuYW1lMS5jaGFyQXQobmFtZTFJbmRleCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRUeXBlID09IFpFUk8gfHwgbmV4dFR5cGUgPT0gTk9OWkVSTykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBpZ25vcmUgbGVhZGluZyB6ZXJvIGJlZm9yZSBhbm90aGVyIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOT05aRVJPOgorICAgICAgICAgICAgICAgICAgICBhZnRlckRpZ2l0MSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGMxID0gKGNoYXIpdHlwZTsgLyogbG93ZXJjYXNlZCBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdDEgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBkZWxpdmVyIGMxICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAobmFtZTJJbmRleCA8IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYzIgPSBuYW1lMi5jaGFyQXQobmFtZTJJbmRleCsrKTsKKyAgICAgICAgICAgICAgICB0eXBlID0gR0VUX0NIQVJfVFlQRShjMik7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBJR05PUkU6CisgICAgICAgICAgICAgICAgICAgIGFmdGVyRGlnaXQyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBpZ25vcmUgYWxsIGJ1dCBsZXR0ZXJzIGFuZCBkaWdpdHMgKi8KKyAgICAgICAgICAgICAgICBjYXNlIFpFUk86CisgICAgICAgICAgICAgICAgICAgIGlmICghYWZ0ZXJEaWdpdDIgJiYgbmFtZTFJbmRleCA8IG5hbWUxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0VHlwZSA9IEdFVF9DSEFSX1RZUEUobmFtZTIuY2hhckF0KG5hbWUySW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0VHlwZSA9PSBaRVJPIHx8IG5leHRUeXBlID09IE5PTlpFUk8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLyogaWdub3JlIGxlYWRpbmcgemVybyBiZWZvcmUgYW5vdGhlciBkaWdpdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9OWkVSTzoKKyAgICAgICAgICAgICAgICAgICAgYWZ0ZXJEaWdpdDIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBjMiA9IChjaGFyKXR5cGU7IC8qIGxvd2VyY2FzZWQgbGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgIGFmdGVyRGlnaXQyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsgLyogZGVsaXZlciBjMiAqLworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoICovCisgICAgICAgICAgICBpZiAobmFtZTFJbmRleCA+PSBuYW1lMS5sZW5ndGgoKSAmJiBuYW1lMkluZGV4ID49IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIENhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiAqLworICAgICAgICAgICAgcmMgPSAoaW50KWMxIC0gKGludCljMjsKKyAgICAgICAgICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGludCBpb19jb3VudEFsaWFzZXMoU3RyaW5nIGFsaWFzKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSAmJiBpc0FsaWFzKGFsaWFzKSkgeworICAgICAgICAgICAgYm9vbGVhbltdIGlzQW1iaWdvdXMgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIGludCBjb252TnVtID0gZmluZENvbnZlcnRlcihhbGlhcywgaXNBbWJpZ291cyk7CisgICAgICAgICAgICBpZiAoY29udk51bSA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8qIHRhZ0xpc3ROdW0gLSAxIGlzIHRoZSBBTEwgdGFnICovCisgICAgICAgICAgICAgICAgaW50IGxpc3RPZmZzZXQgPSBnVGFnZ2VkQWxpYXNBcnJheVsoaW50KSAoKGdUYWdMaXN0Lmxlbmd0aCAtIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCArIGNvbnZOdW0pXTsKKworICAgICAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdUYWdnZWRBbGlhc0xpc3RzW2xpc3RPZmZzZXRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBlbHNlIHRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogZWxzZSBjb252ZXJ0ZXIgbm90IGZvdW5kICovCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgYWxsIGFsaWFzZXMgKGFuZCBjb252ZXJ0ZXIgbmFtZXMpLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBhbGwgYWxpYXNlcworICAgICAqLworICAgIC8vIFVfQ0ZVTkMgdWludDE2X3QgaW9fY291bnRUb3RhbEFsaWFzZXMoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisgICAgc3RhdGljIGludCBpb19jb3VudFRvdGFsQWxpYXNlcygpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSkgeworICAgICAgICAgICAgcmV0dXJuIChpbnQpIGdBbGlhc0xpc3QubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIFVfQ0ZVTkMgY29uc3QgY2hhciAqIGlvX2dldEFsaWFzKGNvbnN0IGNoYXIgKmFsaWFzLCB1aW50MTZfdCBuLAorICAgIC8vIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpCisgICAgc3RhdGljIFN0cmluZyBpb19nZXRBbGlhcyhTdHJpbmcgYWxpYXMsIGludCBuKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmIChoYXZlQWxpYXNEYXRhKCkgJiYgaXNBbGlhcyhhbGlhcykpIHsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBpc0FtYmlnb3VzID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICBpbnQgY29udk51bSA9IGZpbmRDb252ZXJ0ZXIoYWxpYXMsaXNBbWJpZ291cyk7CisgICAgICAgICAgICBpZiAoY29udk51bSA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8qIHRhZ0xpc3ROdW0gLSAxIGlzIHRoZSBBTEwgdGFnICovCisgICAgICAgICAgICAgICAgaW50IGxpc3RPZmZzZXQgPSBnVGFnZ2VkQWxpYXNBcnJheVsoaW50KSAoKGdUYWdMaXN0Lmxlbmd0aCAtIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCArIGNvbnZOdW0pXTsKKworICAgICAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy9pbnQgbGlzdENvdW50ID0gZ1RhZ2dlZEFsaWFzTGlzdHNBcnJheVtsaXN0T2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgLyogKzEgdG8gc2tpcCBsaXN0Q291bnQgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyckxpc3RBcnJheSA9IGdUYWdnZWRBbGlhc0xpc3RzOworICAgICAgICAgICAgICAgICAgICBpbnQgY3Vyckxpc3RBcnJheUluZGV4ID0gbGlzdE9mZnNldCArIDE7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdFVF9TVFJJTkcoY3Vyckxpc3RBcnJheVtjdXJyTGlzdEFycmF5SW5kZXggKyBuXSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBlbHNlIHRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogZWxzZSBjb252ZXJ0ZXIgbm90IGZvdW5kICovCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gVV9DRlVOQyB1aW50MTZfdCBpb19jb3VudFN0YW5kYXJkcyhVRXJyb3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgc3RhdGljIGludCBpb19jb3VudFN0YW5kYXJkcygpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSkgeworICAgICAgICAgICAgcmV0dXJuIChpbnQpIChnVGFnTGlzdC5sZW5ndGggLSBOVU1fSElEREVOX1RBR1MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIFVfQ0FQSSBjb25zdCBjaGFyICogVV9FWFBPUlQyZ2V0U3RhbmRhcmQodWludDE2X3QgbiwgVUVycm9yQ29kZQorICAgIC8vICpwRXJyb3JDb2RlKQorICAgIHN0YXRpYyBTdHJpbmcgZ2V0U3RhbmRhcmQoaW50IG4pIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSkgeworICAgICAgICAgICAgcmV0dXJuIEdFVF9TVFJJTkcoZ1RhZ0xpc3Rbbl0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vIFVfQ0FQSSBjb25zdCBjaGFyICogVV9FWFBPUlQyIGdldFN0YW5kYXJkTmFtZShjb25zdCBjaGFyICphbGlhcywgY29uc3QKKyAgICAvLyBjaGFyICpzdGFuZGFyZCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGdldFN0YW5kYXJkTmFtZShTdHJpbmcgYWxpYXMsIFN0cmluZyBzdGFuZGFyZCl0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoaGF2ZUFsaWFzRGF0YSgpICYmIGlzQWxpYXMoYWxpYXMpKSB7CisgICAgICAgICAgICBpbnQgbGlzdE9mZnNldCA9IGZpbmRUYWdnZWRBbGlhc0xpc3RzT2Zmc2V0KGFsaWFzLCBzdGFuZGFyZCk7CisKKyAgICAgICAgICAgIGlmICgwIDwgbGlzdE9mZnNldCAmJiBsaXN0T2Zmc2V0IDwgZ1RhZ2dlZEFsaWFzTGlzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW50W10gY3Vyckxpc3RBcnJheSA9IGdUYWdnZWRBbGlhc0xpc3RzOworICAgICAgICAgICAgICAgIGludCBjdXJyTGlzdEFycmF5SW5kZXggPSBsaXN0T2Zmc2V0ICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoY3Vyckxpc3RBcnJheVswXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBHRVRfU1RSSU5HKGN1cnJMaXN0QXJyYXlbKGludCkgY3Vyckxpc3RBcnJheUluZGV4XSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vIFVfQ0FQSSB1aW50MTZfdCBVX0VYUE9SVDIgY291bnRBbGlhc2VzKGNvbnN0IGNoYXIgKmFsaWFzLCBVRXJyb3JDb2RlCisgICAgLy8gKnBFcnJvckNvZGUpCisgICAgc3RhdGljIGludCBjb3VudEFsaWFzZXMoU3RyaW5nIGFsaWFzKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIHJldHVybiBpb19jb3VudEFsaWFzZXMoYWxpYXMpOworICAgIH0KKworICAgIC8vIFVfQ0FQSSBjb25zdCBjaGFyKiBVX0VYUE9SVDIgZ2V0QWxpYXMoY29uc3QgY2hhciAqYWxpYXMsIHVpbnQxNl90IG4sCisgICAgLy8gVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgU3RyaW5nIGdldEFsaWFzKFN0cmluZyBhbGlhcywgaW50IG4pIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIGlvX2dldEFsaWFzKGFsaWFzLCBuKTsKKyAgICB9CisKKyAgICAvLyBVX0NGVU5DIHVpbnQxNl90IGNvdW50U3RhbmRhcmRzKHZvaWQpCisgICAgc3RhdGljIGludCBjb3VudFN0YW5kYXJkcygpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gaW9fY291bnRTdGFuZGFyZHMoKTsKKyAgICB9CisgICAgCisgICAgLypyZXR1cm5zIGEgc2luZ2xlIE5hbWUgZnJvbSB0aGUgbGlzdCwgd2lsbCByZXR1cm4gTlVMTCBpZiBvdXQgb2YgYm91bmRzCisgICAgICovCisgICAgc3RhdGljIFN0cmluZyBnZXRBdmFpbGFibGVOYW1lIChpbnQgbil7CisgICAgICAgIHRyeXsKKyAgICAgICAgICBpZiAoMCA8PSBuICYmIG4gPD0gMHhmZmZmKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGJsZF9nZXRBdmFpbGFibGVDb252ZXJ0ZXIobik7CisgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChJT0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAvL3Rocm93IGF3YXkgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIC8vIFVfQ0FQSSBjb25zdCBjaGFyICogVV9FWFBPUlQyIGdldENhbm9uaWNhbE5hbWUoY29uc3QgY2hhciAqYWxpYXMsIGNvbnN0CisgICAgLy8gY2hhciAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICBzdGF0aWMgU3RyaW5nIGdldENhbm9uaWNhbE5hbWUoU3RyaW5nIGFsaWFzLCBTdHJpbmcgc3RhbmRhcmQpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSAmJiBpc0FsaWFzKGFsaWFzKSkgeworICAgICAgICAgICAgaW50IGNvbnZOdW0gPSBmaW5kVGFnZ2VkQ29udmVydGVyTnVtKGFsaWFzLCBzdGFuZGFyZCk7CisKKyAgICAgICAgICAgIGlmIChjb252TnVtIDwgZ0NvbnZlcnRlckxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEdFVF9TVFJJTkcoZ0NvbnZlcnRlckxpc3RbKGludCkgY29udk51bV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIHN0YXRpYyBpbnQgY291bnRBdmFpbGFibGUgKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHJldHVybiBibGRfY291bnRBdmFpbGFibGVDb252ZXJ0ZXJzKCk7CisgICAgICAgIH1jYXRjaChJT0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAvL3Rocm93IGF3YXkgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAgICAgCisgICAgLy8gVV9DQVBJIFVFbnVtZXJhdGlvbiAqIFVfRVhQT1JUMiBvcGVuU3RhbmRhcmROYW1lcyhjb25zdCBjaGFyICpjb252TmFtZSwKKyAgICAvLyBjb25zdCBjaGFyICpzdGFuZGFyZCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKy8qICAgIHN0YXRpYyBmaW5hbCBVQ29udmVydGVyQWxpYXNlc0VudW1lcmF0aW9uIG9wZW5TdGFuZGFyZE5hbWVzKFN0cmluZyBjb252TmFtZSwgU3RyaW5nIHN0YW5kYXJkKXRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFVDb252ZXJ0ZXJBbGlhc2VzRW51bWVyYXRpb24gYWxpYXNFbnVtID0gbnVsbDsKKyAgICAgICAgaWYgKGhhdmVBbGlhc0RhdGEoKSAmJiBpc0FsaWFzKGNvbnZOYW1lKSkgeworICAgICAgICAgICAgaW50IGxpc3RPZmZzZXQgPSBmaW5kVGFnZ2VkQWxpYXNMaXN0c09mZnNldChjb252TmFtZSwgc3RhbmRhcmQpOworCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAqIFdoZW4gbGlzdE9mZnNldCA9PSAwLCB3ZSB3YW50IHRvIGFja25vd2xlZGdlIHRoYXQgdGhlIGNvbnZlcnRlcgorICAgICAgICAgICAgICogbmFtZSBhbmQgc3RhbmRhcmQgYXJlIG9rYXksIGJ1dCB0aGVyZSBpcyBub3RoaW5nIHRvIGVudW1lcmF0ZS4KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0IDwgZ1RhZ2dlZEFsaWFzTGlzdHMubGVuZ3RoKSB7CisKKyAgICAgICAgICAgICAgICBVQ29udmVydGVyQWxpYXNlc0VudW1lcmF0aW9uLlVBbGlhc0NvbnRleHQgY29udGV4dCA9IG5ldyBVQ29udmVydGVyQWxpYXNlc0VudW1lcmF0aW9uLlVBbGlhc0NvbnRleHQobGlzdE9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgYWxpYXNFbnVtID0gbmV3IFVDb252ZXJ0ZXJBbGlhc2VzRW51bWVyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhbGlhc0VudW0uc2V0Q29udGV4dChjb250ZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGNvbnZlcnRlciBvciB0YWcgbm90IGZvdW5kIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBhbGlhc0VudW07CisgICAgfSovCisKKyAgICAvLyBzdGF0aWMgdWludDMyX3QgZ2V0VGFnTnVtYmVyKGNvbnN0IGNoYXIgKnRhZ25hbWUpCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFRhZ051bWJlcihTdHJpbmcgdGFnTmFtZSkgeworICAgICAgICBpZiAoZ1RhZ0xpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IHRhZ051bTsKKyAgICAgICAgICAgIGZvciAodGFnTnVtID0gMDsgdGFnTnVtIDwgZ1RhZ0xpc3QubGVuZ3RoOyB0YWdOdW0rKykgeworICAgICAgICAgICAgICAgIGlmICh0YWdOYW1lLmVxdWFscyhHRVRfU1RSSU5HKGdUYWdMaXN0WyhpbnQpIHRhZ051bV0pKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFnTnVtOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLyBzdGF0aWMgdWludDMyX3QgZmluZFRhZ2dlZEFsaWFzTGlzdHNPZmZzZXQoY29uc3QgY2hhciAqYWxpYXMsIGNvbnN0IGNoYXIKKyAgICAvLyAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRUYWdnZWRBbGlhc0xpc3RzT2Zmc2V0KFN0cmluZyBhbGlhcywgU3RyaW5nIHN0YW5kYXJkKSB7CisgICAgICAgIGludCBpZHg7CisgICAgICAgIGludCBsaXN0T2Zmc2V0OworICAgICAgICBpbnQgY29udk51bTsKKyAgICAgICAgaW50IHRhZ051bSA9IGdldFRhZ051bWJlcihzdGFuZGFyZCk7CisgICAgICAgIGJvb2xlYW5bXSBpc0FtYmlnb3VzID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIC8qIE1ha2UgYSBxdWljayBndWVzcy4gSG9wZWZ1bGx5IHRoZXkgdXNlZCBhIFRSMjIgY2Fub25pY2FsIGFsaWFzLiAqLworICAgICAgICBjb252TnVtID0gZmluZENvbnZlcnRlcihhbGlhcywgaXNBbWJpZ291cyk7CisKKyAgICAgICAgaWYgKHRhZ051bSA8IChnVGFnTGlzdC5sZW5ndGggLSBOVU1fSElEREVOX1RBR1MpCisgICAgICAgICAgICAgICAgJiYgY29udk51bSA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpICh0YWdOdW0KKyAgICAgICAgICAgICAgICAgICAgKiBnQ29udmVydGVyTGlzdC5sZW5ndGggKyBjb252TnVtKV07CisgICAgICAgICAgICBpZiAobGlzdE9mZnNldCAhPSAwCisgICAgICAgICAgICAgICAgICAgICYmIGdUYWdnZWRBbGlhc0xpc3RzWyhpbnQpIGxpc3RPZmZzZXQgKyAxXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNBbWJpZ291c1swXT09dHJ1ZSkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVWggT2ghIFRoZXkgdXNlZCBhbiBhbWJpZ3VvdXMgYWxpYXMuIFdlIGhhdmUgdG8gc2VhcmNoIHRoZQorICAgICAgICAgICAgICAgICAqIHdob2xlIHN3aXNzIGNoZWVzZSBzdGFydGluZyBhdCB0aGUgaGlnaGVzdCBzdGFuZGFyZCBhZmZpbml0eS4KKyAgICAgICAgICAgICAgICAgKiBUaGlzIG1heSB0YWtlIGEgd2hpbGUuCisgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGdUYWdnZWRBbGlhc0FycmF5Lmxlbmd0aDsgaWR4KyspIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpIGlkeF07CisgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDAgJiYgaXNBbGlhc0luTGlzdChhbGlhcywgbGlzdE9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyVGFnTnVtID0gaWR4IC8gZ0NvbnZlcnRlckxpc3QubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnJDb252TnVtID0gKGlkeCAtIGN1cnJUYWdOdW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBnQ29udmVydGVyTGlzdC5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXBMaXN0T2Zmc2V0ID0gZ1RhZ2dlZEFsaWFzQXJyYXlbKGludCkgKHRhZ051bQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCArIGN1cnJDb252TnVtKV07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcExpc3RPZmZzZXQgIT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnVGFnZ2VkQWxpYXNMaXN0c1soaW50KSB0ZW1wTGlzdE9mZnNldCArIDFdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcExpc3RPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogZWxzZSBrZWVwIG9uIGxvb2tpbmcgV2UgY291bGQgc3BlZWQgdGhpcyB1cCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICogc3RhcnRpbmcgb24gdGhlIG5leHQgcm93IGJlY2F1c2UgYW4gYWxpYXMgaXMgdW5pcXVlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBwZXIgcm93LCByaWdodCBub3cuIFRoaXMgd291bGQgY2hhbmdlIGlmIGFsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB2ZXJzaW9uaW5nIGFwcGVhcnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBUaGUgc3RhbmRhcmQgZG9lc24ndCBrbm93IGFib3V0IHRoZSBhbGlhcyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogZWxzZSBubyBkZWZhdWx0IG5hbWUgKi8KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8qIGVsc2UgY29udmVydGVyIG9yIHRhZyBub3QgZm91bmQgKi8KKworICAgICAgICByZXR1cm4gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgfQorCisgICAgLyogUmV0dXJuIHRoZSBjYW5vbmljYWwgbmFtZSAqLworICAgIC8vIHN0YXRpYyB1aW50MzJfdCBmaW5kVGFnZ2VkQ29udmVydGVyTnVtKGNvbnN0IGNoYXIgKmFsaWFzLCBjb25zdCBjaGFyCisgICAgLy8gKnN0YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKQorICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kVGFnZ2VkQ29udmVydGVyTnVtKFN0cmluZyBhbGlhcywgU3RyaW5nIHN0YW5kYXJkKSB7CisgICAgICAgIGludCBpZHg7CisgICAgICAgIGludCBsaXN0T2Zmc2V0OworICAgICAgICBpbnQgY29udk51bTsKKyAgICAgICAgaW50IHRhZ051bSA9IGdldFRhZ051bWJlcihzdGFuZGFyZCk7CisgICAgICAgIGJvb2xlYW5bXSBpc0FtYmlnb3VzID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIAorICAgICAgICAvKiBNYWtlIGEgcXVpY2sgZ3Vlc3MuIEhvcGVmdWxseSB0aGV5IHVzZWQgYSBUUjIyIGNhbm9uaWNhbCBhbGlhcy4gKi8KKyAgICAgICAgY29udk51bSA9IGZpbmRDb252ZXJ0ZXIoYWxpYXMsIGlzQW1iaWdvdXMpOyAgICAgICAgCisKKyAgICAgICAgaWYgKHRhZ051bSA8IChnVGFnTGlzdC5sZW5ndGggLSBOVU1fSElEREVOX1RBR1MpCisgICAgICAgICAgICAgICAgJiYgY29udk51bSA8IGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgbGlzdE9mZnNldCA9IGdUYWdnZWRBbGlhc0FycmF5WyhpbnQpICh0YWdOdW0KKyAgICAgICAgICAgICAgICAgICAgKiBnQ29udmVydGVyTGlzdC5sZW5ndGggKyBjb252TnVtKV07CisgICAgICAgICAgICBpZiAobGlzdE9mZnNldCAhPSAwICYmIGlzQWxpYXNJbkxpc3QoYWxpYXMsIGxpc3RPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZOdW07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNBbWJpZ291c1swXSA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBVaCBPaCEgVGhleSB1c2VkIGFuIGFtYmlndW91cyBhbGlhcy4gV2UgaGF2ZSB0byBzZWFyY2ggb25lCisgICAgICAgICAgICAgICAgICogc2xpY2Ugb2YgdGhlIHN3aXNzIGNoZWVzZS4gV2Ugc2VhcmNoIG9ubHkgaW4gdGhlIHJlcXVlc3RlZAorICAgICAgICAgICAgICAgICAqIHRhZywgbm90IHRoZSB3aG9sZSB0aGluZy4gVGhpcyBtYXkgdGFrZSBhIHdoaWxlLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGludCBjb252U3RhcnQgPSAodGFnTnVtKSAqIGdDb252ZXJ0ZXJMaXN0Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICBpbnQgY29udkxpbWl0ID0gKHRhZ051bSArIDEpICogZ0NvbnZlcnRlckxpc3QubGVuZ3RoOworICAgICAgICAgICAgICAgIGZvciAoaWR4ID0gY29udlN0YXJ0OyBpZHggPCBjb252TGltaXQ7IGlkeCsrKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3RPZmZzZXQgPSBnVGFnZ2VkQWxpYXNBcnJheVsoaW50KSBpZHhdOworICAgICAgICAgICAgICAgICAgICBpZiAobGlzdE9mZnNldCAhPSAwICYmIGlzQWxpYXNJbkxpc3QoYWxpYXMsIGxpc3RPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWR4IC0gY29udlN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIFRoZSBzdGFuZGFyZCBkb2Vzbid0IGtub3cgYWJvdXQgdGhlIGFsaWFzICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBlbHNlIG5vIGNhbm9uaWNhbCBuYW1lICovCisgICAgICAgIH0KKyAgICAgICAgLyogZWxzZSBjb252ZXJ0ZXIgb3IgdGFnIG5vdCBmb3VuZCAqLworCisgICAgICAgIHJldHVybiBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLyBzdGF0aWMgVV9JTkxJTkUgVUJvb2wgaXNBbGlhc0luTGlzdChjb25zdCBjaGFyICphbGlhcywgdWludDMyX3QKKyAgICAvLyBsaXN0T2Zmc2V0KQorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNBbGlhc0luTGlzdChTdHJpbmcgYWxpYXMsIGludCBsaXN0T2Zmc2V0KSB7CisgICAgICAgIGlmIChsaXN0T2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgIGludCBjdXJyQWxpYXM7CisgICAgICAgICAgICBpbnQgbGlzdENvdW50ID0gZ1RhZ2dlZEFsaWFzTGlzdHNbKGludCkgbGlzdE9mZnNldF07CisgICAgICAgICAgICAvKiArMSB0byBza2lwIGxpc3RDb3VudCAqLworICAgICAgICAgICAgaW50W10gY3Vyckxpc3QgPSBnVGFnZ2VkQWxpYXNMaXN0czsKKyAgICAgICAgICAgIGludCBjdXJyTGlzdEFycmF5SW5kZXggPSBsaXN0T2Zmc2V0ICsgMTsKKyAgICAgICAgICAgIGZvciAoY3VyckFsaWFzID0gMDsgY3VyckFsaWFzIDwgbGlzdENvdW50OyBjdXJyQWxpYXMrKykgeworICAgICAgICAgICAgICAgIGlmIChjdXJyTGlzdFsoaW50KSAoY3VyckFsaWFzICsgY3Vyckxpc3RBcnJheUluZGV4KV0gIT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgY29tcGFyZU5hbWVzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VUX1NUUklORyhjdXJyTGlzdFsoaW50KSAoY3VyckFsaWFzICsgY3Vyckxpc3RBcnJheUluZGV4KV0pKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gYmVnaW4gYmxkLmMKKyAgICBzdGF0aWMgU3RyaW5nW10gZ0F2YWlsYWJsZUNvbnZlcnRlcnMgPSBudWxsOworCisgICAgc3RhdGljIGludCBnQXZhaWxhYmxlQ29udmVydGVyQ291bnQgPSAwOworCisgICAgc3RhdGljIGJ5dGVbXSBnRGVmYXVsdENvbnZlcnRlck5hbWVCdWZmZXI7IC8vIFtNQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDFdOyAvKiArMSBmb3IgTlVMTCAqLworCisgICAgc3RhdGljIFN0cmluZyBnRGVmYXVsdENvbnZlcnRlck5hbWUgPSBudWxsOworCisgICAgLy8gc3RhdGljIFVCb29sIGhhdmVBdmFpbGFibGVDb252ZXJ0ZXJMaXN0KFVFcnJvckNvZGUgKnBFcnJvckNvZGUpCisgICAgc3RhdGljIGJvb2xlYW4gaGF2ZUF2YWlsYWJsZUNvbnZlcnRlckxpc3QoKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmIChnQXZhaWxhYmxlQ29udmVydGVycyA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnQgaWR4OworICAgICAgICAgICAgaW50IGxvY2FsQ29udmVydGVyQ291bnQ7CisgICAgICAgICAgICBTdHJpbmcgY29udmVydGVyTmFtZTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsQ29udmVydGVyTGlzdDsKKworICAgICAgICAgICAgaWYgKCFoYXZlQWxpYXNEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIFdlIGNhbid0IGhhdmUgbW9yZSB0aGFuICIqY29udmVydGVyVGFibGUiIGNvbnZlcnRlcnMgdG8gb3BlbiAqLworICAgICAgICAgICAgbG9jYWxDb252ZXJ0ZXJMaXN0ID0gbmV3IFN0cmluZ1soaW50KSBnQ29udmVydGVyTGlzdC5sZW5ndGhdOworCisgICAgICAgICAgICBsb2NhbENvbnZlcnRlckNvdW50ID0gMDsKKworICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBnQ29udmVydGVyTGlzdC5sZW5ndGg7IGlkeCsrKSB7CisgICAgICAgICAgICAgICAgY29udmVydGVyTmFtZSA9IEdFVF9TVFJJTkcoZ0NvbnZlcnRlckxpc3RbaWR4XSk7CisgICAgICAgICAgICAgICAgLy9VQ29udmVydGVyIGNudiA9IFVDb252ZXJ0ZXIub3Blbihjb252ZXJ0ZXJOYW1lKTsKKyAgICAgICAgICAgICAgICAvL1RPRE86IEZpeCBtZQorICAgICAgICAgICAgICAgIGxvY2FsQ29udmVydGVyTGlzdFtsb2NhbENvbnZlcnRlckNvdW50KytdID0gY29udmVydGVyTmFtZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyB1bXR4X2xvY2soTlVMTCk7CisgICAgICAgICAgICBpZiAoZ0F2YWlsYWJsZUNvbnZlcnRlcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGdBdmFpbGFibGVDb252ZXJ0ZXJzID0gbG9jYWxDb252ZXJ0ZXJMaXN0OworICAgICAgICAgICAgICAgIGdBdmFpbGFibGVDb252ZXJ0ZXJDb3VudCA9IGxvY2FsQ29udmVydGVyQ291bnQ7CisgICAgICAgICAgICAgICAgLyogaGF2ZURhdGEgc2hvdWxkIGhhdmUgYWxyZWFkeSByZWdpc3RlcmVkIHRoZSBjbGVhbnVwIGZ1bmN0aW9uICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFnbGpwb3J0OnRvZG8gZnJlZSgoY2hhciAqKilsb2NhbENvbnZlcnRlckxpc3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWdsanBvcnQ6dG9kbyB1bXR4X3VubG9jayhOVUxMKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBVX0NGVU5DIHVpbnQxNl90IGJsZF9jb3VudEF2YWlsYWJsZUNvbnZlcnRlcnMoVUVycm9yQ29kZSAqcEVycm9yQ29kZSkKKyAgICBzdGF0aWMgaW50IGJsZF9jb3VudEF2YWlsYWJsZUNvbnZlcnRlcnMoKSB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmIChoYXZlQXZhaWxhYmxlQ29udmVydGVyTGlzdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZ0F2YWlsYWJsZUNvbnZlcnRlckNvdW50OworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIFVfQ0ZVTkMgY29uc3QgY2hhciAqIGJsZF9nZXRBdmFpbGFibGVDb252ZXJ0ZXIodWludDE2X3QgbiwgVUVycm9yQ29kZQorICAgIC8vICpwRXJyb3JDb2RlKQorICAgIHN0YXRpYyBTdHJpbmcgYmxkX2dldEF2YWlsYWJsZUNvbnZlcnRlcihpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZiAoaGF2ZUF2YWlsYWJsZUNvbnZlcnRlckxpc3QoKSkgeworICAgICAgICAgICAgaWYgKG4gPCBnQXZhaWxhYmxlQ29udmVydGVyQ291bnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ0F2YWlsYWJsZUNvbnZlcnRlcnNbbl07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyogZGVmYXVsdCBjb252ZXJ0ZXIgbmFtZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogSW4gb3JkZXIgdG8gYmUgcmVhbGx5IHRocmVhZC1zYWZlLCB0aGUgZ2V0IGZ1bmN0aW9uIHdvdWxkIGhhdmUgdG8gdGFrZQorICAgICAqIGEgYnVmZmVyIHBhcmFtZXRlciBhbmQgY29weSB0aGUgY3VycmVudCBzdHJpbmcgaW5zaWRlIGEgbXV0ZXggYmxvY2suCisgICAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvbmx5IHRyaWVzIHRvIGJlIHJlYWxseSB0aHJlYWQtc2FmZSB3aGlsZQorICAgICAqIHNldHRpbmcgdGhlIG5hbWUuCisgICAgICogSXQgYXNzdW1lcyB0aGF0IHNldHRpbmcgYSBwb2ludGVyIGlzIGF0b21pYy4KKyAgICAgKi8KKworICAgIC8vIFVfQ0ZVTkMgY29uc3QgY2hhciAqIGdldERlZmF1bHROYW1lKCkKKyAgICBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIFN0cmluZyBnZXREZWZhdWx0TmFtZSgpIHsKKyAgICAgICAgLyogbG9jYWwgdmFyaWFibGUgdG8gYmUgdGhyZWFkLXNhZmUgKi8KKyAgICAgICAgU3RyaW5nIG5hbWU7CisKKyAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIHVtdHhfbG9jayhudWxsKTsKKyAgICAgICAgbmFtZSA9IGdEZWZhdWx0Q29udmVydGVyTmFtZTsKKyAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIHVtdHhfdW5sb2NrKG51bGwpOworCisgICAgICAgIGlmIChuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vVUNvbnZlcnRlciBjbnYgPSBudWxsOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IDA7CisKKyAgICAgICAgICAgIG5hbWUgPSBDaGFyc2V0SUNVLmdldERlZmF1bHRDaGFyc2V0TmFtZSgpOworCisgICAgICAgICAgICAvKiBpZiB0aGUgbmFtZSBpcyB0aGVyZSwgdGVzdCBpdCBvdXQgYW5kIGdldCB0aGUgY2Fub25pY2FsIG5hbWUgd2l0aCBvcHRpb25zICovCisgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAvLyBjbnYgPSBVQ29udmVydGVyLm9wZW4obmFtZSk7IAorICAgICAgICAgICAgICAgLy8gbmFtZSA9IGNudi5nZXROYW1lKGNudik7CisgICAgICAgICAgICAgICAgLy8gVE9ETzogZml4IG1lCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChuYW1lID09IG51bGwgfHwgbmFtZS5sZW5ndGgoKSA9PSAwIHx8LyogY252ID09IG51bGwgfHwqLworICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID49IGdEZWZhdWx0Q29udmVydGVyTmFtZUJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvKiBQYW5pYyB0aW1lLCBsZXQncyB1c2UgYSBmYWxsYmFjay4gKi8KKyAgICAgICAgICAgICAgICBuYW1lID0gbmV3IFN0cmluZygiVVMtQVNDSUkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9sZW5ndGg9KGludDMyX3QpKHN0cmxlbihuYW1lKSk7CisKKyAgICAgICAgICAgIC8qIENvcHkgdGhlIG5hbWUgYmVmb3JlIHdlIGNsb3NlIHRoZSBjb252ZXJ0ZXIuICovCisgICAgICAgICAgICBuYW1lID0gZ0RlZmF1bHRDb252ZXJ0ZXJOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLy9lbmQgYmxkLmMKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBmMWVlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJBbGlhc0RhdGFSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIyMiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCisKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKK2ltcG9ydCBqYXZhLmlvLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUJpbmFyeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworCisvKiBGb3JtYXQgb2YgY252YWxpYXMuaWN1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY252YWxpYXMuaWN1IGlzIGEgYmluYXJ5LCBtZW1vcnktbWFwcGFibGUgZm9ybSBvZiBjb252cnRycy50eHQuCisgKiBUaGlzIGJpbmFyeSBmb3JtIGNvbnRhaW5zIHNldmVyYWwgdGFibGVzLiBBbGwgaW5kZXhlcyBhcmUgdG8gdWludDE2X3QKKyAqIHVuaXRzLCBhbmQgbm90IHRvIHRoZSBieXRlcyAodWludDhfdCB1bml0cykuIEFkZHJlc3NpbmcgZXZlcnl0aGluZyBvbgorICogMTYtYml0IGJvdW5kYXJpZXMgYWxsb3dzIHVzIHRvIHN0b3JlIG1vcmUgaW5mb3JtYXRpb24gd2l0aCBzbWFsbCBpbmRleAorICogbnVtYmVycywgd2hpY2ggYXJlIGFsc28gMTYtYml0IGluIHNpemUuIFRoZSBtYWpvcml0eSBvZiB0aGUgdGFibGUgKGV4Y2VwdAorICogdGhlIHN0cmluZyB0YWJsZSkgYXJlIDE2LWJpdCBudW1iZXJzLgorICoKKyAqIEZpcnN0IHRoZXJlIGlzIHRoZSBzaXplIG9mIHRoZSBUYWJsZSBvZiBDb250ZW50cyAoVE9DKS4gVGhlIFRPQworICogZW50cmllcyBjb250YWluIHRoZSBzaXplIG9mIGVhY2ggc2VjdGlvbi4gSW4gb3JkZXIgdG8gZmluZCB0aGUgb2Zmc2V0CisgKiB5b3UganVzdCBuZWVkIHRvIHN1bSB1cCB0aGUgcHJldmlvdXMgb2Zmc2V0cy4KKyAqIFRoZSBUT0MgbGVuZ3RoIGFuZCBlbnRyaWVzIGFyZSBhbiBhcnJheSBvZiB1aW50MzJfdCB2YWx1ZXMuCisgKiBUaGUgZmlyc3Qgc2VjdGlvbiBhZnRlciB0aGUgVE9DIHN0YXJ0cyBpbW1lZGlhdGVseSBhZnRlciB0aGUgVE9DLgorICoKKyAqIDEpIFRoaXMgc2VjdGlvbiBjb250YWlucyBhIGxpc3Qgb2YgY29udmVydGVycy4gVGhpcyBsaXN0IGNvbnRhaW5zIGluZGV4ZXMKKyAqIGludG8gdGhlIHN0cmluZyB0YWJsZSBmb3IgdGhlIGNvbnZlcnRlciBuYW1lLiBUaGUgaW5kZXggb2YgdGhpcyBsaXN0IGlzCisgKiBhbHNvIHVzZWQgYnkgb3RoZXIgc2VjdGlvbnMsIHdoaWNoIGFyZSBtZW50aW9uZWQgbGF0ZXIgb24uCisgKiBUaGlzIGxpc3QgaXMgbm90IHNvcnRlZC4KKyAqCisgKiAyKSBUaGlzIHNlY3Rpb24gY29udGFpbnMgYSBsaXN0IG9mIHRhZ3MuIFRoaXMgbGlzdCBjb250YWlucyBpbmRleGVzCisgKiBpbnRvIHRoZSBzdHJpbmcgdGFibGUgZm9yIHRoZSB0YWcgbmFtZS4gVGhlIGluZGV4IG9mIHRoaXMgbGlzdCBpcworICogYWxzbyB1c2VkIGJ5IG90aGVyIHNlY3Rpb25zLCB3aGljaCBhcmUgbWVudGlvbmVkIGxhdGVyIG9uLgorICogVGhpcyBsaXN0IGlzIGluIHByaW9yaXR5IG9yZGVyIG9mIHN0YW5kYXJkcy4KKyAqCisgKiAzKSBUaGlzIHNlY3Rpb24gY29udGFpbnMgYSBsaXN0IG9mIHNvcnRlZCB1bmlxdWUgYWxpYXNlcy4gVGhpcworICogbGlzdCBjb250YWlucyBpbmRleGVzIGludG8gdGhlIHN0cmluZyB0YWJsZSBmb3IgdGhlIGFsaWFzIG5hbWUuIFRoZQorICogaW5kZXggb2YgdGhpcyBsaXN0IGlzIGFsc28gdXNlZCBieSBvdGhlciBzZWN0aW9ucywgbGlrZSB0aGUgNHRoIHNlY3Rpb24uCisgKiBUaGUgaW5kZXggZm9yIHRoZSAzcmQgYW5kIDR0aCBzZWN0aW9uIGlzIHVzZWQgdG8gZ2V0IHRoZQorICogYWxpYXMgLT4gY29udmVydGVyIG5hbWUgbWFwcGluZy4gU2VjdGlvbiAzIGFuZCA0IGZvcm0gYSB0d28gY29sdW1uIHRhYmxlLgorICoKKyAqIDQpIFRoaXMgc2VjdGlvbiBjb250YWlucyBhIGxpc3Qgb2YgbWFwcGVkIGNvbnZlcnRlciBuYW1lcy4gQ29uc2lkZXIgdGhpcworICogYXMgYSB0YWJsZSB0aGF0IG1hcHMgdGhlIDNyZCBzZWN0aW9uIHRvIHRoZSAxc3Qgc2VjdGlvbi4gVGhpcyBsaXN0IGNvbnRhaW5zCisgKiBpbmRleGVzIGludG8gdGhlIDFzdCBzZWN0aW9uLiBUaGUgaW5kZXggb2YgdGhpcyBsaXN0IGlzIHRoZSBzYW1lIGluZGV4IGluCisgKiB0aGUgM3JkIHNlY3Rpb24uIFRoZXJlIGlzIGFsc28gc29tZSBleHRyYSBpbmZvcm1hdGlvbiBpbiB0aGUgaGlnaCBiaXRzIG9mCisgKiBlYWNoIGNvbnZlcnRlciBpbmRleCBpbiB0aGlzIHRhYmxlLiBDdXJyZW50bHkgaXQncyBvbmx5IHVzZWQgdG8gc2F5IHRoYXQKKyAqIGFuIGFsaWFzIG1hcHBlZCB0byB0aGlzIGNvbnZlcnRlciBpcyBhbWJpZ3VvdXMuIFNlZSBVQ05WX0NPTlZFUlRFUl9JTkRFWF9NQVNLCisgKiBhbmQgVUNOVl9BTUJJR1VPVVNfQUxJQVNfTUFQX0JJVCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gVGhpcyBzZWN0aW9uIGlzCisgKiB0aGUgcHJlZGlnZXN0ZWQgZm9ybSBvZiB0aGUgNXRoIHNlY3Rpb24gc28gdGhhdCBhbiBhbGlhcyBsb29rdXAgY2FuIGJlIGZhc3QuCisgKgorICogNSkgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGEgMkQgYXJyYXkgd2l0aCBpbmRleGVzIHRvIHRoZSA2dGggc2VjdGlvbi4gVGhpcworICogc2VjdGlvbiBpcyB0aGUgZnVsbCBmb3JtIG9mIGFsbCBhbGlhcyBtYXBwaW5ncy4gVGhlIGNvbHVtbiBpbmRleCBpcyB0aGUKKyAqIGluZGV4IGludG8gdGhlIGNvbnZlcnRlciBsaXN0IChjb2x1bW4gaGVhZGVyKS4gVGhlIHJvdyBpbmRleCBpcyB0aGUgaW5kZXgKKyAqIHRvIHRhZyBsaXN0IChyb3cgaGVhZGVyKS4gVGhpcyAyRCBhcnJheSBpcyB0aGUgdG9wIHBhcnQgYSAzRCBhcnJheS4gVGhlCisgKiB0aGlyZCBkaW1lbnNpb24gaXMgaW4gdGhlIDZ0aCBzZWN0aW9uLgorICoKKyAqIDYpIFRoaXMgaXMgYmxvYiBvZiB2YXJpYWJsZSBsZW5ndGggYXJyYXlzLiBFYWNoIGFycmF5IHN0YXJ0cyB3aXRoIGEgc2l6ZSwKKyAqIGFuZCBpcyBmb2xsb3dlZCBieSBpbmRleGVzIHRvIGFsaWFzIG5hbWVzIGluIHRoZSBzdHJpbmcgdGFibGUuIFRoaXMgaXMKKyAqIHRoZSB0aGlyZCBkaW1lbnNpb24gdG8gdGhlIHNlY3Rpb24gNS4gTm8gb3RoZXIgc2VjdGlvbiBzaG91bGQgYmUgcmVmZXJlbmNpbmcKKyAqIHRoaXMgc2VjdGlvbi4KKyAqCisgKiA3KSBSZXNlcnZlZCBhdCB0aGlzIHRpbWUgKFRoZXJlIGlzIG5vIGluZm9ybWF0aW9uKS4gVGhpcyBfdXN1YWxseV8gaGFzIGEKKyAqIHNpemUgb2YgMC4gRnV0dXJlIHZlcnNpb25zIG1heSBhZGQgbW9yZSBpbmZvcm1hdGlvbiBoZXJlLgorICoKKyAqIDgpIFRoaXMgaXMgdGhlIHN0cmluZyB0YWJsZS4gQWxsIHN0cmluZ3MgYXJlIGluZGV4ZWQgb24gYW4gZXZlbiBhZGRyZXNzLgorICogVGhlcmUgYXJlIHR3byByZWFzb25zIGZvciB0aGlzLiBGaXJzdCBtYW55IGNoaXAgYXJjaGl0ZWN0dXJlcyBsb2NhdGUgc3RyaW5ncworICogZmFzdGVyIG9uIGV2ZW4gYWRkcmVzcyBib3VuZGFyaWVzLiBTZWNvbmQsIHNpbmNlIGFsbCBpbmRleGVzIGFyZSAxNi1iaXQKKyAqIG51bWJlcnMsIHRoaXMgc3RyaW5nIHRhYmxlIGNhbiBiZSAxMjhLQiBpbiBzaXplIGluc3RlYWQgb2YgNjRLQiB3aGVuIHdlCisgKiBvbmx5IGhhdmUgc3RyaW5ncyBzdGFydGluZyBvbiBhbiBldmVuIGFkZHJlc3MuCisgKgorICoKKyAqIEhlcmUgaXMgdGhlIGNvbmNlcHQgb2Ygc2VjdGlvbiA1IGFuZCA2LiBJdCdzIGEgM0QgY3ViZS4gRWFjaCB0YWcKKyAqIGhhcyBhIHVuaXF1ZSBhbGlhcyBhbW9uZyBhbGwgY29udmVydGVycy4gVGhhdCBzYW1lIGFsaWFzIGNhbgorICogYmUgbWVudGlvbmVkIGluIG90aGVyIHN0YW5kYXJkcyBvbiBkaWZmZXJlbnQgY29udmVydGVycywKKyAqIGJ1dCBvbmx5IG9uZSBhbGlhcyBwZXIgdGFnIGNhbiBiZSB1bmlxdWUuCisgKgorICoKKyAqICAgICAgICAgICAgICBDb252ZXJ0ZXIgTmFtZXMgKFVzdWFsbHkgaW4gVFIyMiBmb3JtKQorICogICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCisgKiAgICAgVCAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL3wKKyAqICAgICBhICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gfAorICogICAgIGcgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICB8CisgKiAgICAgcyAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgIHwKKyAqICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgfAorICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vICAgICB8CisgKiAgICBBIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKKyAqICAgIGwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorICogICAgaSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIC8KKyAqICAgIGEgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIC8KKyAqICAgIHMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgLworICogICAgZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC8KKyAqICAgIHMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC8KKyAqICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqCisgKgorICogSGVyZSBpcyB3aGF0IGl0IHJlYWxseSBsb29rcyBsaWtlLiBJdCdzIGxpa2Ugc3dpc3MgY2hlZXNlLgorICogVGhlcmUgYXJlIGhvbGVzLiBTb21lIGNvbnZlcnRlcnMgYXJlbid0IHJlY29nbml6ZWQgYnkKKyAqIGEgc3RhbmRhcmQsIG9yIHRoZXkgYXJlIHJlYWxseSBvbGQgY29udmVydGVycyB0aGF0IHRoZQorICogc3RhbmRhcmQgZG9lc24ndCByZWNvZ25pemUgYW55bW9yZS4KKyAqCisgKiAgICAgICAgICAgICAgQ29udmVydGVyIE5hbWVzIChVc3VhbGx5IGluIFRSMjIgZm9ybSkKKyAqICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgorICogICAgIFQgICAgLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy98CisgKiAgICAgYSAgIC8gICAgICMgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAvIworICogICAgIGcgIC8gICMgICAgICAjIyAgICAgIyMgICAgICMjIyAjICMjIyAjIyMgIyMjICMvCisgKiAgICAgcyAvICMgICAgICAgICAgICAgIyMjIyMgICMjIyMgICAgICAgICMjICAjIyAjLyMKKyAqICAgICAgLyAjIyMgIyAjICMjICAjICAjICAgIyAgICAgICAgICAjIyMgIyAjICAgIy8jIworICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vIyAjCisgKiAgICBBIHwjIyMgIyAjICMjICAjICAjICAgIyAgICAgICAgICAjIyMgIyAjICAgI3wjICMKKyAqICAgIGwgfCMgIyAjICAgICMgICAgICMgICAgICAgICAgICAgICAjIyAjICAgICAjfCMgIworICogICAgaSB8IyAjICMgICAgIyAgICAgIyAgICAgICAgICAgICAgICAjICAgICAgICN8IworICogICAgYSB8IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN8IworICogICAgcyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN8IworICogICAgZQorICogICAgcworICoKKyAqLworCitmaW5hbCBjbGFzcyBVQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSB7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IElDVURlYnVnLmVuYWJsZWQoIlVDb252ZXJ0ZXJBbGlhc0RhdGFSZWFkZXIiKTsKKyAgICAKKyAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgdXByb3AuZGF0IGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBVQ29udmVydGVyQWxpYXNEYXRhUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGluIGlucHV0U3RyZWFtICIgKyBpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICB1bmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGlucHV0U3RyZWFtICIgK2lucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgbGVmdCBpbiBkYXRhSW5wdXRTdHJlYW0gIiArZGF0YUlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorCXByb3RlY3RlZCBpbnRbXSByZWFkVG9jKGludCBuKXRocm93cyBJT0V4Y2VwdGlvbgorCXsKKwkJaW50W10gdG9jID0gbmV3IGludFtuXTsKKwkJLy9SZWFkIHRoZSB0b2MKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBuIDsgKytpKSB7CisJCQl0b2NbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpICYgVU5TSUdORURfSU5UX01BU0s7CisJCX0KKwkJcmV0dXJuIHRvYzsKKwl9IAorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkKGludFtdIGNvbnZMaXN0LCBpbnRbXSB0YWdMaXN0LCBpbnRbXSBhbGlhc0xpc3QsIGludFtddW50YWdnZWRDb252QXJyYXksIGludFtdIHRhZ2dlZEFsaWFzQXJyYXksIGludFtdIHRhZ2dlZEFsaWFzTGlzdHMsIGludFtdIG9wdGlvblRhYmxlLCBieXRlW10gc3RyaW5nVGFibGUsIGJ5dGVbXSBub3JtYWxpemVkU3RyaW5nVGFibGUpIHRocm93cyBJT0V4Y2VwdGlvbnsKKwkJaW50IGk7CisJCS8vaW50IGxpc3RudW0gPSAxOworCQkvL2xvbmcgbGlzdHNpemU7CisKKwkJZm9yKGkgPSAwOyBpIDwgY29udkxpc3QubGVuZ3RoOyArK2kpCisJCQljb252TGlzdFtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCQkKKwkJZm9yKGkgPSAwOyBpIDwgdGFnTGlzdC5sZW5ndGg7ICsraSkKKwkJCXRhZ0xpc3RbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZFVuc2lnbmVkU2hvcnQoKTsKKwkJCisJCWZvcihpID0gMDsgaSA8IGFsaWFzTGlzdC5sZW5ndGg7ICsraSkKKwkJCWFsaWFzTGlzdFtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCQkKKwkJZm9yKGkgPSAwOyBpIDwgdW50YWdnZWRDb252QXJyYXkubGVuZ3RoOyArK2kpCisJCQl1bnRhZ2dlZENvbnZBcnJheVtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCQkKKwkJZm9yKGkgPSAwOyBpIDwgdGFnZ2VkQWxpYXNBcnJheS5sZW5ndGg7ICsraSkKKwkJCXRhZ2dlZEFsaWFzQXJyYXlbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZFVuc2lnbmVkU2hvcnQoKTsKKwkJCisJCWZvcihpID0gMDsgaSA8IHRhZ2dlZEFsaWFzTGlzdHMubGVuZ3RoOyArK2kpCisJCQl0YWdnZWRBbGlhc0xpc3RzW2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRVbnNpZ25lZFNob3J0KCk7CisKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgb3B0aW9uVGFibGUubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBvcHRpb25UYWJsZVtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpOworCisJCWRhdGFJbnB1dFN0cmVhbS5yZWFkKHN0cmluZ1RhYmxlKTsKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQobm9ybWFsaXplZFN0cmluZ1RhYmxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pCisgICAgeworICAgICAgICByZXR1cm4gdmVyc2lvbi5sZW5ndGggPj0gREFUQV9GT1JNQVRfVkVSU0lPTi5sZW5ndGgKKyAgICAgICAgICAgICYmIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXQorICAgICAgICAgICAgJiYgdmVyc2lvblsxXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OWzFdCisgICAgICAgICAgICAmJiB2ZXJzaW9uWzJdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMl07CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOyAgICAKKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisKKyAgICAvKioKKyAgICAqIElDVSBkYXRhIGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBkYXRhSW5wdXRTdHJlYW07CisgICAgCisgICAgcHJpdmF0ZSBieXRlW10gdW5pY29kZVZlcnNpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICogc2VlIHN0b3JlLmMgb2YgZ2Vubm9ybSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdmFsdWVzCisgICAgKi8KKwkJLy8gREFUQV9GT1JNQVRfSURfIHZhbHVlcyB0YWtlbiBmcm9tIGljdTRjIGlzQWNjZXB0YWJsZSAodWNudl9pby5jKQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDQzLCAoYnl0ZSkweDc2LCAoYnl0ZSkweDQxLCAoYnl0ZSkweDZjfTsgLy8gZGF0YUZvcm1hdD0iQ3ZBbCIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05bXSA9IHszLCAwLCAxfTsKKworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX1NIT1JUX01BU0sgPSAweGZmZmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZjsKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJDb25zdGFudHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJDb25zdGFudHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmI1MWE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckNvbnN0YW50cy5qYXZhCkBAIC0wLDAgKzEsMTgwIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLyAKK3BhY2thZ2UgY29tLmlibS5pY3UuY2hhcnNldDsKKworaW50ZXJmYWNlIFVDb252ZXJ0ZXJDb25zdGFudHMgeworCisgICAgc3RhdGljIGZpbmFsIHNob3J0IFVOU0lHTkVEX0JZVEVfTUFTSyA9IDB4ZmY7CisgICAgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9TSE9SVF9NQVNLID0gMHhmZmZmOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0lTX0JJR19FTkRJQU4gPSAwOworCQorCS8qKgorCSAqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgd2hvbGUgbG9jYWxlIElECisJICogKGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMTCkuCisJICogQGRyYWZ0IElDVSAzLjYKKwkgKi8KKwlzdGF0aWMgZmluYWwgaW50IFVMT0NfRlVMTE5BTUVfQ0FQQUNJVFkgPSA1NjsKKwkKKwkvKioKKwkgKiBUaGlzIHZhbHVlIGlzIGludGVuZGVkIGZvciBzZW50aW5lbCB2YWx1ZXMgZm9yIEFQSXMgdGhhdAorCSAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4KKwkgKiBJdCBpcyBvdXRzaWRlIG9mIHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCisJICogCisJICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4gYSBuZXcgQVBJCisJICogY291bGQgYmUgaW5kaWNhdGVkIHdpdGggVV9TRU5USU5FTC4KKwkgKgorCSAqIElDVSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Utc3BlY2lmaWMgImRvbmUiCisJICogdmFsdWVzLCBtb3N0bHkgMHhmZmZmLgorCSAqIFRob3NlIG1heSBuZWVkIHRvIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbQorCSAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250ZW50cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCisJICogQ2hhcmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3RyaW5nOjpsZW5ndGgoKS4KKwkgKiBAZHJhZnQgSUNVIDIuNAorCSAqLworCXN0YXRpYyBmaW5hbCBpbnQgVV9TRU5USU5FTCA9IC0xOworCQorCS8vZW5kIHV0Zi5oCisJCisJLy9iZWdpbiB1Y252LmgJCisJLyoqCisJICogQ2hhcmFjdGVyIHRoYXQgc2VwYXJhdGVzIGNvbnZlcnRlciBuYW1lcyBmcm9tIG9wdGlvbnMgYW5kIG9wdGlvbnMgZnJvbSBlYWNoIG90aGVyLgorCSAqIEBzZWUgQ2hhcnNldElDVSNmb3JOYW1lSUNVKFN0cmluZykKKwkgKiBAZHJhZnQgSUNVIDMuNgorCSAqLworCXN0YXRpYyBmaW5hbCBieXRlIE9QVElPTl9TRVBfQ0hBUiAgPSAnLCc7CisJCisJLyoqIE1heGltdW0gbGVuZ3RoIG9mIGEgY29udmVydGVyIG5hbWUgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUxMIEBkcmFmdCBJQ1UgMy42ICovCisJc3RhdGljIGZpbmFsIGludCBNQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIICA9IDYwOworCS8qKiBNYXhpbXVtIGxlbmd0aCBvZiBhIGNvbnZlcnRlciBuYW1lIGluY2x1ZGluZyBwYXRoIGFuZCB0ZXJtaW5hdGluZyBOVUxMIEBkcmFmdCBJQ1UgMy42ICovCisJc3RhdGljIGZpbmFsIGludCBNQVhfRlVMTF9GSUxFX05BTUVfTEVOR1RIID0gKDYwMCtNQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIKTsKKwkKKwkvKiogU2hpZnQgaW4gZm9yIEVCRENESUNfU1RBVEVGVUwgYW5kIGlzbzIwMjIgc3RhdGVzIEBkcmFmdCBJQ1UgMy42ICovCisJc3RhdGljIGZpbmFsIGludCBTSSA9IDB4MEY7CisJLyoqIFNoaWZ0IG91dCBmb3IgRUJEQ0RJQ19TVEFURUZVTCBhbmQgaXNvMjAyMiBzdGF0ZXMgQGRyYWZ0IElDVSAzLjYgKi8KKwlzdGF0aWMgZmluYWwgaW50IFNPID0gMHgwRTsKKwkKKwkvL2VuZCB1Y252LmgKKwkKKwkvLyBiZWdpbiBibGQuaAorCS8qIHNpemUgb2YgdGhlIG92ZXJmbG93IGJ1ZmZlcnMgaW4gVUNvbnZlcnRlciwgZW5vdWdoIGZvciBlc2NhcGluZyBjYWxsYmFja3MgKi8KKwkvLyNkZWZpbmUgRVJST1JfQlVGRkVSX0xFTkdUSCAzMgorCXN0YXRpYyBmaW5hbCBpbnQgRVJST1JfQlVGRkVSX0xFTkdUSCA9IDMyOworCQorCS8qIGF0IG1vc3QgNCBieXRlcyBwZXIgc3Vic3RpdHV0aW9uIGNoYXJhY3RlciAocGFydCBvZiAuY252IGZpbGUgZm9ybWF0ISBzZWUgVUNvbnZlcnRlclN0YXRpY0RhdGEpICovCisJc3RhdGljIGZpbmFsIGludCBNQVhfU1VCQ0hBUl9MRU4gPSA0OworCQorCS8qIGF0IG1vc3QgOCBieXRlcyBwZXIgY2hhcmFjdGVyIGluIHRvVUJ5dGVzW10gKFVURi04IHVzZXMgdXAgdG8gNikgKi8KKwlzdGF0aWMgZmluYWwgaW50IE1BWF9DSEFSX0xFTiA9IDg7CisJCisJLyogY29udmVydGVyIG9wdGlvbnMgYml0cyAqLworCXN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OX1ZFUlNJT04gICAgID0gMHhmOworCXN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OX1NXQVBfTEZOTCAgID0gMHgxMDsKKwlzdGF0aWMgZmluYWwgaW50IE9QVElPTl9NQUMgICA9IDB4MjA7IC8vYWdsanBvcnQ6Y29tbWVudCBhZGRlZCBmb3IgTWFjIElTQ0lJIGVuY29kaW5ncworCQorCS8qKiB2YWx1ZXMgZm9yIHRoZSB1bmljb2RlTWFzayAqLworCXN0YXRpYyBmaW5hbCBpbnQgSEFTX1NVUFBMRU1FTlRBUlkgPSAxOworCXN0YXRpYyBmaW5hbCBpbnQgSEFTX1NVUlJPR0FURVMgPSAgIDI7CisJLy8gZW5kIGJsZC5oCisJCisJLy8gYmVnaW4gY252LmgKKwkvKiB0aGlzIGlzIHVzZWQgaW4gZnJvbVVuaWNvZGUgREJDUyB0YWJsZXMgYXMgYW4gInVuYXNzaWduZWQiIG1hcmtlciAqLworCXN0YXRpYyBmaW5hbCBpbnQgbWlzc2luZ0NoYXJNYXJrZXIgPSAweEZGRkY7CisJIC8qKgorICAgICAgKiAKKyAgICAgICogQGF1dGhvciByYW0KKyAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisJICAqLworCXN0YXRpYyBpbnRlcmZhY2UgVUNvbnZlcnRlclJlc2V0Q2hvaWNlIHsKKwkgICAgc3RhdGljIGZpbmFsIGludCBSRVNFVF9CT1RIID0gMDsKKwkgICAgc3RhdGljIGZpbmFsIGludCBSRVNFVF9UT19VTklDT0RFID0gUkVTRVRfQk9USCArIDE7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVTRVRfRlJPTV9VTklDT0RFID0gUkVTRVRfVE9fVU5JQ09ERSArIDE7CisJfQorCQorCS8vIGJlZ2luIHV0ZjE2LmgKKwkvKioKKwkgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgMTYtYml0IGNvZGUgdW5pdHMgcGVyIFVuaWNvZGUgY29kZSBwb2ludCAoVSswMDAwLi5VKzEwZmZmZikuCisJICogQGRyYWZ0IElDVSAyLjQKKwkgKi8KKwlzdGF0aWMgZmluYWwgaW50IFUxNl9NQVhfTEVOR1RIID0gMjsKKwkvLyBlbmQgdXRmMTYuaAkKKwkKKwkvLyBiZWdpbiBlcnIuaAkKKwkvKioKKwkgKiBGUk9NX1UsIFRPX1UgY29udGV4dCBvcHRpb25zIGZvciBzdWIgY2FsbGJhY2sKKwkgKiBAZHJhZnQgSUNVIDMuNgorCSAqLworCXN0YXRpYyBieXRlW10gU1VCX1NUT1BfT05fSUxMRUdBTCA9IHsnaSd9OworCQorCS8qKgorCSAqIEZST01fVSwgVE9fVSBjb250ZXh0IG9wdGlvbnMgZm9yIHNraXAgY2FsbGJhY2sKKwkgKiBAZHJhZnQgSUNVIDMuNgorCSAqLworCXN0YXRpYyBieXRlW10gU0tJUF9TVE9QX09OX0lMTEVHQUwgPSB7J2knfTsJCisJCisJLyoqIAorCSAqIFRoZSBwcm9jZXNzIGNvbmRpdGlvbiBjb2RlIHRvIGJlIHVzZWQgd2l0aCB0aGUgY2FsbGJhY2tzLiAgCisJICogQ29kZXMgd2hpY2ggYXJlIGdyZWF0ZXIgdGhhbiBJUlJFR1VMQVIgc2hvdWxkIGJlIAorCSAqIHBhc3NlZCBvbiB0byBhbnkgY2hhaW5lZCBjYWxsYmFja3MuCisJICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKwkgKi8KKwlzdGF0aWMgaW50ZXJmYWNlIFVDb252ZXJ0ZXJDYWxsYmFja1JlYXNvbiB7CisJCSBzdGF0aWMgZmluYWwgaW50IFVOQVNTSUdORUQgPSAwOyAgLyoqPCBUaGUgY29kZSBwb2ludCBpcyB1bmFzc2lnbmVkLgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGVycm9yIGNvZGUgVV9JTlZBTElEX0NIQVJfRk9VTkQgd2lsbCBiZSBzZXQuICovCisJCSBzdGF0aWMgZmluYWwgaW50IElMTEVHQUwgPSAxOyAgICAgLyoqPCBUaGUgY29kZSBwb2ludCBpcyBpbGxlZ2FsLiBGb3IgZXhhbXBsZSwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXHg4MVxceDJFIGlzIGlsbGVnYWwgaW4gU0pJUyBiZWNhdXNlIFxceDJFCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBub3QgYSB2YWxpZCB0cmFpbCBieXRlIGZvciB0aGUgXFx4ODEgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkIGJ5dGUuCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbHNvLCBzdGFydGluZyB3aXRoIFVuaWNvZGUgMy4wLjEsIG5vbi1zaG9ydGVzdCBieXRlIHNlcXVlbmNlcworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gVVRGLTggKGxpa2UgXFx4QzFcXHhBMSBpbnN0ZWFkIG9mIFxceDYxIGZvciBVKzAwNjEpCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgYWxzbyBpbGxlZ2FsLCBub3QganVzdCBpcnJlZ3VsYXIuCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgZXJyb3IgY29kZSBVX0lMTEVHQUxfQ0hBUl9GT1VORCB3aWxsIGJlIHNldC4gKi8KKwkJIHN0YXRpYyBmaW5hbCBpbnQgSVJSRUdVTEFSID0gMjsgICAvKio8IFRoZSBjb2RlcG9pbnQgaXMgbm90IGEgcmVndWxhciBzZXF1ZW5jZSBpbiAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlbmNvZGluZy4gRm9yIGV4YW1wbGUsIFxceEVEXFx4QTBcXHg4MC4uXFx4RURcXHhCRlxceEJGCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgaXJyZWd1bGFyIFVURi04IGJ5dGUgc2VxdWVuY2VzIGZvciBzaW5nbGUgc3Vycm9nYXRlCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlIHBvaW50cy4KKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBlcnJvciBjb2RlIFVfSU5WQUxJRF9DSEFSX0ZPVU5EIHdpbGwgYmUgc2V0LiAqLworCQkgc3RhdGljIGZpbmFsIGludCBSRVNFVCA9IDM7ICAgICAgIC8qKjwgVGhlIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHRoaXMgcmVhc29uIHdoZW4gYQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc2V0JyBoYXMgb2NjdXJlZC4gQ2FsbGJhY2sgc2hvdWxkIHJlc2V0IGFsbAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuICovCisJCSBzdGF0aWMgZmluYWwgaW50IENMT1NFID0gNDsgICAgICAgIC8qKjwgQ2FsbGVkIHdoZW4gdGhlIGNvbnZlcnRlciBpcyBjbG9zZWQuIFRoZQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgc2hvdWxkIHJlbGVhc2UgYW55IGFsbG9jYXRlZCBtZW1vcnkuKi8KKwkJIHN0YXRpYyBmaW5hbCBpbnQgQ0xPTkUgPSA1OyAgICAgICAgIC8qKjwgQ2FsbGVkIHdoZW4gc2FmZUNsb25lKCkgaXMgY2FsbGVkIG9uIHRoZQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlci4gdGhlIHBvaW50ZXIgYXZhaWxhYmxlIGFzIHRoZQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250ZXh0JyBpcyBhbiBhbGlhcyB0byB0aGUgb3JpZ2luYWwgY29udmVydGVycycKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0IHBvaW50ZXIuIElmIHRoZSBjb250ZXh0IG11c3QgYmUgb3duZWQKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgbmV3IGNvbnZlcnRlciwgdGhlIGNhbGxiYWNrIG11c3QgY2xvbmUgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRhdGEgYW5kIGNhbGwgc2V0RnJvbVVDYWxsYmFjayAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Igc2V0VG9VQ2FsbGJhY2spIHdpdGggdGhlIGNvcnJlY3QgcG9pbnRlci4KKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZHJhZnQgSUNVIDIuMgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisJfQorCS8vZW5kIGVyci5oCisgICAgCisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1RZUEUgPSAiY252IjsKKyAgICBzdGF0aWMgZmluYWwgaW50IENOVl9EQVRBX0JVRkZFUl9TSVpFID0gMjUwMDA7CisgICAgc3RhdGljIGZpbmFsIGludCBTSVpFX09GX1VDT05WRVJURVJfU0hBUkVEX0RBVEEgPSAxMDA7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWElNVU1fVUNTMiA9ICAgICAgICAgICAgMHgwMDAwRkZGRjsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWElNVU1fVVRGID0gICAgICAgICAgICAgMHgwMDEwRkZGRjsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWElNVU1fVUNTNCA9ICAgICAgICAgICAgMHg3RkZGRkZGRjsKKyAgICBzdGF0aWMgZmluYWwgaW50IEhBTEZfU0hJRlQgPSAgICAgICAgICAgICAgMTA7CisgICAgc3RhdGljIGZpbmFsIGludCBIQUxGX0JBU0UgPSAgICAgICAgICAgICAgIDB4MDAxMDAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEhBTEZfTUFTSyA9ICAgICAgICAgICAgICAgMHgzRkY7CisgICAgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfSElHSF9TVEFSVCA9ICAgIDB4RDgwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9ISUdIX0VORCA9ICAgICAgMHhEQkZGOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0xPV19TVEFSVCA9ICAgICAweERDMDA7CisgICAgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTE9XX0VORCA9ICAgICAgIDB4REZGRjsKKyAgICAKKyAgICAvKiAtU1VSUk9HQVRFX0xPV19TVEFSVCArIEhBTEZfQkFTRSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0xPV19CQVNFID0gICAgICA5MjE2OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlckRhdGFSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJEYXRhUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU3ZGIxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJEYXRhUmVhZGVyLmphdmEKQEAgLTAsMCArMSw1NTMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VCaW5hcnk7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKworLyoqCisgKiB1Y252bWJjcy5oCisgKgorICogSUNVIGNvbnZlcnNpb24gKC5jbnYpIGRhdGEgZmlsZSBzdHJ1Y3R1cmUsIGZvbGxvd2luZyB0aGUgdXN1YWwgVURhdGFJbmZvCisgKiBoZWFkZXIuCisgKgorICogRm9ybWF0IHZlcnNpb246IDYuMgorICoKKyAqIHN0cnVjdCBVQ29udmVydGVyU3RhdGljRGF0YSAtLSBzdHJ1Y3QgY29udGFpbmluZyB0aGUgY29udmVydGVyIG5hbWUsIElCTSBDQ1NJRCwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4vbWF4IGJ5dGVzIHBlciBjaGFyYWN0ZXIsIGV0Yy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgdWNudl9ibGQuaAorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhlIHN0YXRpYyBkYXRhIGlzIGZvbGxvd2VkIGJ5IGNvbnZlcnNpb25UeXBlLXNwZWNpZmljIGRhdGEgc3RydWN0dXJlcy4KKyAqIEF0IHRoZSBtb21lbnQsIHRoZXJlIGFyZSBvbmx5IHZhcmlhdGlvbnMgb2YgTUJDUyBjb252ZXJ0ZXJzLiBUaGV5IGFsbCBoYXZlCisgKiB0aGUgc2FtZSB0b1VuaWNvZGUgc3RydWN0dXJlcywgd2hpbGUgdGhlIGZyb21Vbmljb2RlIHN0cnVjdHVyZXMgZm9yIFNCQ1MKKyAqIGRpZmZlciBmcm9tIHRob3NlIGZvciBvdGhlciBNQkNTLXN0eWxlIGNvbnZlcnRlcnMuCisgKgorICogX01CQ1NIZWFkZXIudmVyc2lvbiA0LjIgYWRkcyBhbiBvcHRpb25hbCBjb252ZXJzaW9uIGV4dGVuc2lvbiBkYXRhIHN0cnVjdHVyZS4KKyAqIElmIGl0IGlzIHByZXNlbnQsIHRoZW4gYW4gSUNVIHZlcnNpb24gcmVhZGluZyBoZWFkZXIgdmVyc2lvbnMgNC4wIG9yIDQuMQorICogd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGUgYmFzZSB0YWJsZSBhbmQgaWdub3JlIHRoZSBleHRlbnNpb24uCisgKgorICogVGhlIHVuaWNvZGVNYXNrIGluIHRoZSBzdGF0aWMgZGF0YSBpcyBwYXJ0IG9mIHRoZSBiYXNlIHRhYmxlIGRhdGEgc3RydWN0dXJlLgorICogRXNwZWNpYWxseSwgdGhlIFVDTlZfSEFTX1NVUFBMRU1FTlRBUlkgZmxhZyBkZXRlcm1pbmVzIHRoZSBsZW5ndGggb2YgdGhlCisgKiBmcm9tVW5pY29kZSBzdGFnZSAxIGFycmF5LgorICogVGhlIHN0YXRpYyBkYXRhIHVuaWNvZGVNYXNrIHJlZmVycyBvbmx5IHRvIHRoZSBiYXNlIHRhYmxlJ3MgcHJvcGVydGllcyBpZgorICogYSBiYXNlIHRhYmxlIGlzIGluY2x1ZGVkLgorICogSW4gYW4gZXh0ZW5zaW9uLW9ubHkgZmlsZSwgdGhlIHN0YXRpYyBkYXRhIHVuaWNvZGVNYXNrIGlzIDAuCisgKiBUaGUgZXh0ZW5zaW9uIGRhdGEgaW5kZXhlcyBoYXZlIGEgc2VwYXJhdGUgZmllbGQgd2l0aCB0aGUgdW5pY29kZU1hc2sgZmxhZ3MuCisgKgorICogTUJDUy1zdHlsZSBkYXRhIHN0cnVjdHVyZSBmb2xsb3dpbmcgdGhlIHN0YXRpYyBkYXRhLgorICogT2Zmc2V0cyBhcmUgY291bnRlZCBpbiBieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIE1CQ1MgaGVhZGVyIHN0cnVjdHVyZS4KKyAqIERldGFpbHMgYWJvdXQgdXNhZ2UgaW4gY29tbWVudHMgaW4gdWNudm1iY3MuYy4KKyAqCisgKiBzdHJ1Y3QgX01CQ1NIZWFkZXIgKHNlZSB0aGUgZGVmaW5pdGlvbiBpbiB0aGlzIGhlYWRlciBmaWxlIGJlbG93KQorICogY29udGFpbnMgMzItYml0IGZpZWxkcyBhcyBmb2xsb3dzOgorICogOCB2YWx1ZXM6CisgKiAgMCAgIHVpbnQ4X3RbNF0gIE1CQ1MgdmVyc2lvbiBpbiBVVmVyc2lvbkluZm8gZm9ybWF0IChjdXJyZW50bHkgNC4yLjAuMCkKKyAqICAxICAgdWludDMyX3QgICAgY291bnRTdGF0ZXMKKyAqICAyICAgdWludDMyX3QgICAgY291bnRUb1VGYWxsYmFja3MKKyAqICAzICAgdWludDMyX3QgICAgb2Zmc2V0VG9VQ29kZVVuaXRzCisgKiAgNCAgIHVpbnQzMl90ICAgIG9mZnNldEZyb21VVGFibGUKKyAqICA1ICAgdWludDMyX3QgICAgb2Zmc2V0RnJvbVVCeXRlcworICogIDYgICB1aW50MzJfdCAgICBmbGFncywgYml0czoKKyAqICAgICAgICAgICAgICAgICAgICAgIDMxLi4gOCBvZmZzZXRFeHRlbnNpb24gLS0gX01CQ1NIZWFkZXIudmVyc2lvbiA0LjIgKElDVSAyLjgpIGFuZCBoaWdoZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBmb3Igb2xkZXIgdmVyc2lvbnMgYW5kIGlmCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXJlIGlzIG5vdCBleHRlbnNpb24gc3RydWN0dXJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgNy4uIDAgb3V0cHV0VHlwZQorICogIDcgICB1aW50MzJfdCAgICBmcm9tVUJ5dGVzTGVuZ3RoIC0tIF9NQkNTSGVhZGVyLnZlcnNpb24gNC4xIChJQ1UgMi40KSBhbmQgaGlnaGVyCisgKiAgICAgICAgICAgICAgICAgIGNvdW50cyBieXRlcyBpbiBmcm9tVUJ5dGVzW10KKyAqCisgKiBpZihvdXRwdXRUeXBlPT1NQkNTX09VVFBVVF9FWFRfT05MWSkgeworICogICAgIC0tIGJhc2UgdGFibGUgbmFtZSBmb3IgZXh0ZW5zaW9uLW9ubHkgdGFibGUKKyAqICAgICBjaGFyIGJhc2VUYWJsZU5hbWVbdmFyaWFibGVdOyAtLSB3aXRoIE5VTCBwbHVzIHBhZGRpbmcgZm9yIDQtYWxpZ25tZW50CisgKgorICogICAgIC0tIGFsbCBfTUJDU0hlYWRlciBmaWVsZHMgZXhjZXB0IGZvciB2ZXJzaW9uIGFuZCBmbGFncyBhcmUgMAorICogfSBlbHNlIHsKKyAqICAgICAtLSBub3JtYWwgYmFzZSB0YWJsZSB3aXRoIG9wdGlvbmFsIGV4dGVuc2lvbgorICoKKyAqICAgICBpbnQzMl90IHN0YXRlVGFibGVbY291bnRTdGF0ZXNdWzI1Nl07CisgKiAgICAKKyAqICAgICBzdHJ1Y3QgX01CQ1NUb1VGYWxsYmFjayB7IChmYWxsYmFja3MgYXJlIHNvcnRlZCBieSBvZmZzZXQpCisgKiAgICAgICAgIHVpbnQzMl90IG9mZnNldDsKKyAqICAgICAgICAgVUNoYXIzMiBjb2RlUG9pbnQ7CisgKiAgICAgfSB0b1VGYWxsYmFja3NbY291bnRUb1VGYWxsYmFja3NdOworICogICAgCisgKiAgICAgdWludDE2X3QgdW5pY29kZUNvZGVVbml0c1sob2Zmc2V0RnJvbVVUYWJsZS1vZmZzZXRUb1VDb2RlVW5pdHMpLzJdOworICogICAgICAgICAgICAgICAgICAocGFkZGVkIHRvIGFuIGV2ZW4gbnVtYmVyIG9mIHVuaXRzKQorICogICAgCisgKiAgICAgLS0gc3RhZ2UgMSB0YWJsZXMKKyAqICAgICBpZihzdGF0aWNEYXRhLnVuaWNvZGVNYXNrJlVDTlZfSEFTX1NVUFBMRU1FTlRBUlkpIHsKKyAqICAgICAgICAgLS0gc3RhZ2UgMSB0YWJsZSBmb3IgYWxsIG9mIFVuaWNvZGUKKyAqICAgICAgICAgdWludDE2X3QgZnJvbVVUYWJsZVsweDQ0MF07ICgzMi1iaXQtYWxpZ25lZCkKKyAqICAgICB9IGVsc2UgeworICogICAgICAgICAtLSBCTVAtb25seSB0YWJsZXMgaGF2ZSBhIHNtYWxsZXIgc3RhZ2UgMSB0YWJsZQorICogICAgICAgICB1aW50MTZfdCBmcm9tVVRhYmxlWzB4NDBdOyAoMzItYml0LWFsaWduZWQpCisgKiAgICAgfQorICogICAgCisgKiAgICAgLS0gc3RhZ2UgMiB0YWJsZXMKKyAqICAgICAgICBsZW5ndGggZGV0ZXJtaW5lZCBieSB0b3Agb2Ygc3RhZ2UgMSBhbmQgYm90dG9tIG9mIHN0YWdlIDMgdGFibGVzCisgKiAgICAgaWYob3V0cHV0VHlwZT09TUJDU19PVVRQVVRfMSkgeworICogICAgICAgICAtLSBTQkNTOiBwdXJlIGluZGV4ZXMKKyAqICAgICAgICAgdWludDE2X3Qgc3RhZ2UgMiBpbmRleGVzWz9dOworICogICAgIH0gZWxzZSB7CisgKiAgICAgICAgIC0tIERCQ1MsIE1CQ1MsIEVCQ0RJQ19TVEFURUZVTCwgLi4uOiByb3VuZHRyaXAgZmxhZ3MgYW5kIGluZGV4ZXMKKyAqICAgICAgICAgdWludDMyX3Qgc3RhZ2UgMiBmbGFncyBhbmQgaW5kZXhlc1s/XTsKKyAqICAgICB9CisgKiAgICAKKyAqICAgICAtLSBzdGFnZSAzIHRhYmxlcyB3aXRoIGJ5dGUgcmVzdWx0cworICogICAgIGlmKG91dHB1dFR5cGU9PU1CQ1NfT1VUUFVUXzEpIHsKKyAqICAgICAgICAgLS0gU0JDUzogZWFjaCAxNi1iaXQgcmVzdWx0IGNvbnRhaW5zIGZsYWdzIGFuZCB0aGUgcmVzdWx0IGJ5dGUsIHNlZSB1Y252bWJjcy5jCisgKiAgICAgICAgIHVpbnQxNl90IGZyb21VQnl0ZXNbZnJvbVVCeXRlc0xlbmd0aC8yXTsKKyAqICAgICB9IGVsc2UgeworICogICAgICAgICAtLSBEQkNTLCBNQkNTLCBFQkNESUNfU1RBVEVGVUwsIC4uLiAyLzMvNCBieXRlcyByZXN1bHQsIHNlZSB1Y252bWJjcy5jCisgKiAgICAgICAgIHVpbnQ4X3QgZnJvbVVCeXRlc1tmcm9tVUJ5dGVzTGVuZ3RoXTsgb3IKKyAqICAgICAgICAgdWludDE2X3QgZnJvbVVCeXRlc1tmcm9tVUJ5dGVzTGVuZ3RoLzJdOyBvcgorICogICAgICAgICB1aW50MzJfdCBmcm9tVUJ5dGVzW2Zyb21VQnl0ZXNMZW5ndGgvNF07CisgKiAgICAgfQorICogfQorICoKKyAqIC0tIGV4dGVuc2lvbiB0YWJsZSwgZGV0YWlscyBzZWUgdWNudl9leHQuaAorICogaW50MzJfdCBpbmRleGVzWz49MzJdOyAuLi4KKyAqLworLyoKKyAqIHVjbnZfZXh0LmgKKyAqCisgKiBTZWUgaWN1aHRtbC9kZXNpZ24vY29udmVyc2lvbi9jb252ZXJzaW9uX2V4dGVuc2lvbnMuaHRtbAorICoKKyAqIENvbnZlcnNpb24gZXh0ZW5zaW9ucyBzZXJ2ZSB0d28gcHVycG9zZXM6CisgKiAxLiBUaGV5IHN1cHBvcnQgbTpuIG1hcHBpbmdzLgorICogMi4gVGhleSBzdXBwb3J0IGV4dGVuc2lvbi1vbmx5IGNvbnZlcnNpb24gZmlsZXMgdGhhdCBhcmUgdXNlZCB0b2dldGhlcgorICogICAgd2l0aCB0aGUgcmVndWxhciBjb252ZXJzaW9uIGRhdGEgaW4gYmFzZSBmaWxlcy4KKyAqCisgKiBBIGJhc2UgZmlsZSBtYXkgY29udGFpbiBhbiBleHRlbnNpb24gdGFibGUgKGV4cGxpY2l0bHkgcmVxdWVzdGVkIG9yCisgKiBpbXBsaWNpdGx5IGdlbmVyYXRlZCBmb3IgbTpuIG1hcHBpbmdzKSwgYnV0IGl0cyBleHRlbnNpb24gdGFibGUgaXMgbm90CisgKiB1c2VkIHdoZW4gYW4gZXh0ZW5zaW9uLW9ubHkgZmlsZSBpcyB1c2VkLgorICoKKyAqIEl0IGlzIGFuIGVycm9yIGlmIGEgYmFzZSBmaWxlIGNvbnRhaW5zIGFueSByZWd1bGFyIChub3QgZXh0ZW5zaW9uKSBtYXBwaW5nCisgKiBmcm9tIHRoZSBzYW1lIHNlcXVlbmNlIGFzIGEgbWFwcGluZyBpbiB0aGUgZXh0ZW5zaW9uIGZpbGUKKyAqIGJlY2F1c2UgdGhlIGJhc2UgbWFwcGluZyB3b3VsZCBoaWRlIHRoZSBleHRlbnNpb24gbWFwcGluZy4KKyAqCisgKgorICogRGF0YSBmb3IgY29udmVyc2lvbiBleHRlbnNpb25zOgorICoKKyAqIE9uZSBzZXQgb2YgZGF0YSBzdHJ1Y3R1cmVzIHBlciBjb252ZXJzaW9uIGRpcmVjdGlvbiAodG8vZnJvbSBVbmljb2RlKS4KKyAqIFRoZSBkYXRhIHN0cnVjdHVyZXMgYXJlIHNvcnRlZCBieSBpbnB1dCB1bml0cyB0byBhbGxvdyBmb3IgYmluYXJ5IHNlYXJjaC4KKyAqIElucHV0IHNlcXVlbmNlcyBvZiBtb3JlIHRoYW4gb25lIHVuaXQgYXJlIGhhbmRsZWQgbGlrZSBjb250cmFjdGlvbiB0YWJsZXMKKyAqIGluIGNvbGxhdGlvbjoKKyAqIFRoZSBsb29rdXAgdmFsdWUgb2YgYSB1bml0IHBvaW50cyB0byBhbm90aGVyIHRhYmxlIHRoYXQgaXMgdG8gYmUgc2VhcmNoZWQKKyAqIGZvciB0aGUgbmV4dCB1bml0LCByZWN1cnNpdmVseS4KKyAqCisgKiBGb3IgY29udmVyc2lvbiBmcm9tIFVuaWNvZGUsIHRoZSBpbml0aWFsIGNvZGUgcG9pbnQgaXMgbG9va2VkIHVwIGluCisgKiBhIDMtc3RhZ2UgdHJpZSBmb3Igc3BlZWQsCisgKiB3aXRoIGFuIGFkZGl0aW9uYWwgdGFibGUgb2YgdW5pcXVlIHJlc3VsdHMgdG8gc2F2ZSBzcGFjZS4KKyAqCisgKiBMb25nIG91dHB1dCBzdHJpbmdzIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgYXJyYXlzLCB3aXRoIGxlbmd0aCBhbmQgaW5kZXgKKyAqIGluIHRoZSBsb29rdXAgdGFibGVzLgorICogT3V0cHV0IHJlc3VsdHMgYWxzbyBpbmNsdWRlIGEgZmxhZyBkaXN0aW5ndWlzaGluZyByb3VuZHRyaXAgZnJvbQorICogKHJldmVyc2UpIGZhbGxiYWNrIG1hcHBpbmdzLgorICoKKyAqIElucHV0IFVuaWNvZGUgc3RyaW5ncyBtdXN0IG5vdCBiZWdpbiBvciBlbmQgd2l0aCB1bnBhaXJlZCBzdXJyb2dhdGVzCisgKiB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIG1hdGNoZXMgb24gcGFydHMgb2Ygc3Vycm9nYXRlIHBhaXJzLgorICoKKyAqIE1hcHBpbmdzIGZyb20gbXVsdGlwbGUgY2hhcmFjdGVycyAoY29kZSBwb2ludHMgb3IgY29kZXBhZ2Ugc3RhdGUKKyAqIHRhYmxlIHNlcXVlbmNlcykgbXVzdCBiZSBzZWFyY2hlZCBwcmVmZXJyaW5nIHRoZSBsb25nZXN0IG1hdGNoLgorICogRm9yIHRoaXMgdG8gd29yayBhbmQgYmUgZWZmaWNpZW50LCB0aGUgdmFyaWFibGUtd2lkdGggdGFibGUgbXVzdCBjb250YWluCisgKiBhbGwgbWFwcGluZ3MgdGhhdCBjb250YWluIHByZWZpeGVzIG9mIHRoZSBtdWx0aXBsZSBjaGFyYWN0ZXJzLgorICogSWYgYW4gZXh0ZW5zaW9uIHRhYmxlIGlzIGJ1aWx0IG9uIHRvcCBvZiBhIGJhc2UgdGFibGUgaW4gYW5vdGhlciBmaWxlCisgKiBhbmQgYSBiYXNlIHRhYmxlIGVudHJ5IGlzIGEgcHJlZml4IG9mIGEgbXVsdGktY2hhcmFjdGVyIG1hcHBpbmcsIHRoZW4KKyAqIHRoaXMgaXMgYW4gZXJyb3IuCisgKgorICoKKyAqIEltcGxlbWVudGF0aW9uIG5vdGU6CisgKgorICogQ3VycmVudGx5LCB0aGUgcGFyc2VyIGFuZCBzZXZlcmFsIGNoZWNrcyBpbiB0aGUgY29kZSBsaW1pdCB0aGUgbnVtYmVyCisgKiBvZiBVQ2hhcnMgb3IgYnl0ZXMgaW4gYSBtYXBwaW5nIHRvCisgKiBVQ05WX0VYVF9NQVhfVUNIQVJTIGFuZCBVQ05WX0VYVF9NQVhfQllURVMsIHJlc3BlY3RpdmVseSwKKyAqIHdoaWNoIGFyZSBvdXRwdXQgdmFsdWUgbGltaXRzIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4KKyAqCisgKiBGb3IgaW5wdXQsIHRoaXMgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSAtIGl0IGlzIGEgaGFyZCBsaW1pdCBvbmx5IGZvciB0aGUKKyAqIGJ1ZmZlcnMgaW4gVUNvbnZlcnRlciB0aGF0IGFyZSB1c2VkIHRvIHN0b3JlIHBhcnRpYWwgbWF0Y2hlcy4KKyAqCisgKiBJbnB1dCBzZXF1ZW5jZXMgY291bGQgb3RoZXJ3aXNlIGJlIGFyYml0cmFyaWx5IGxvbmcgaWYgcGFydGlhbCBtYXRjaGVzCisgKiBuZWVkIG5vdCBiZSBzdG9yZWQgKGkuZS4sIGlmIGEgc2VxdWVuY2UgZG9lcyBub3Qgc3BhbiBzZXZlcmFsIGJ1ZmZlcnMgd2l0aCB0b28KKyAqIG1hbnkgdW5pdHMgYmVmb3JlIHRoZSBsYXN0IGJ1ZmZlciksIGFsdGhvdWdoIHRoZW4gcmVzdWx0cyB3b3VsZCBkaWZmZXIKKyAqIGRlcGVuZGluZyBvbiB3aGV0aGVyIHBhcnRpYWwgbWF0Y2hlcyBleGNlZWQgdGhlIGxpbWl0cyBvciBub3QsCisgKiB3aGljaCBkZXBlbmRzIG9uIHRoZSBwYXR0ZXJuIG9mIGJ1ZmZlciBzaXplcy4KKyAqCisgKgorICogRGF0YSBzdHJ1Y3R1cmU6CisgKgorICogaW50MzJfdCBpbmRleGVzWz49MzJdOworICoKKyAqICAgQXJyYXkgb2YgaW5kZXhlcyBhbmQgbGVuZ3RocyBldGMuIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IGlzIGF0IGxlYXN0IDMyLgorICogICBUaGUgYWN0dWFsIGxlbmd0aCBpcyBzdG9yZWQgaW4gaW5kZXhlc1swXSB0byBiZSBmb3J3YXJkIGNvbXBhdGlibGUuCisgKgorICogICBFYWNoIGluZGV4IHRvIGFub3RoZXIgYXJyYXkgaXMgdGhlIG51bWJlciBvZiBieXRlcyBmcm9tIGluZGV4ZXNbXS4KKyAqICAgRWFjaCBsZW5ndGggb2YgYW4gYXJyYXkgaXMgdGhlIG51bWJlciBvZiBhcnJheSBiYXNlIHVuaXRzIGluIHRoYXQgYXJyYXkuCisgKgorICogICBTb21lIG9mIHRoZSBzdHJ1Y3R1cmVzIG1heSBub3QgYmUgcHJlc2VudCwgaW4gd2hpY2ggY2FzZSB0aGVpciBpbmRleGVzCisgKiAgIGFuZCBsZW5ndGhzIGFyZSAwLgorICoKKyAqICAgVXNhZ2Ugb2YgaW5kZXhlc1tpXToKKyAqICAgWzBdICBsZW5ndGggb2YgaW5kZXhlc1tdCisgKgorICogICAvLyB0byBVbmljb2RlIHRhYmxlCisgKiAgIFsxXSAgaW5kZXggb2YgdG9VVGFibGVbXSAoYXJyYXkgb2YgdWludDMyX3QpCisgKiAgIFsyXSAgbGVuZ3RoIG9mIHRvVVRhYmxlW10KKyAqICAgWzNdICBpbmRleCBvZiB0b1VVQ2hhcnNbXSAoYXJyYXkgb2YgVUNoYXIpCisgKiAgIFs0XSAgbGVuZ3RoIG9mIHRvVVVDaGFyc1tdCisgKgorICogICAvLyBmcm9tIFVuaWNvZGUgdGFibGUsIG5vdCBmb3IgdGhlIGluaXRpYWwgY29kZSBwb2ludAorICogICBbNV0gIGluZGV4IG9mIGZyb21VVGFibGVVQ2hhcnNbXSAoYXJyYXkgb2YgVUNoYXIpCisgKiAgIFs2XSAgaW5kZXggb2YgZnJvbVVUYWJsZVZhbHVlc1tdIChhcnJheSBvZiB1aW50MzJfdCkKKyAqICAgWzddICBsZW5ndGggb2YgZnJvbVVUYWJsZVVDaGFyc1tdIGFuZCBmcm9tVVRhYmxlVmFsdWVzW10KKyAqICAgWzhdICBpbmRleCBvZiBmcm9tVUJ5dGVzW10gKGFycmF5IG9mIGNoYXIpCisgKiAgIFs5XSAgbGVuZ3RoIG9mIGZyb21VQnl0ZXNbXQorICoKKyAqICAgLy8gZnJvbSBVbmljb2RlIHRyaWUgZm9yIGluaXRpYWwtY29kZSBwb2ludCBsb29rdXAKKyAqICAgWzEwXSBpbmRleCBvZiBmcm9tVVN0YWdlMTJbXSAoY29tYmluZWQgYXJyYXkgb2YgdWludDE2X3QgZm9yIHN0YWdlcyAxICYgMikKKyAqICAgWzExXSBsZW5ndGggb2Ygc3RhZ2UgMSBwb3J0aW9uIG9mIGZyb21VU3RhZ2UxMltdCisgKiAgIFsxMl0gbGVuZ3RoIG9mIGZyb21VU3RhZ2UxMltdCisgKiAgIFsxM10gaW5kZXggb2YgZnJvbVVTdGFnZTNbXSAoYXJyYXkgb2YgdWludDE2X3QgaW5kZXhlcyBpbnRvIGZyb21VU3RhZ2UzYltdKQorICogICBbMTRdIGxlbmd0aCBvZiBmcm9tVVN0YWdlM1tdCisgKiAgIFsxNV0gaW5kZXggb2YgZnJvbVVTdGFnZTNiW10gKGFycmF5IG9mIHVpbnQzMl90IGxpa2UgZnJvbVVUYWJsZVZhbHVlc1tdKQorICogICBbMTZdIGxlbmd0aCBvZiBmcm9tVVN0YWdlM2JbXQorICoKKyAqICAgWzE3XSBCaXQgZmllbGQgY29udGFpbmluZyBudW1iZXJzIG9mIGJ5dGVzOgorICogICAgICAgIDMxLi4yNCByZXNlcnZlZCwgMAorICogICAgICAgIDIzLi4xNiBtYXhpbXVtIGlucHV0IGJ5dGVzCisgKiAgICAgICAgMTUuLiA4IG1heGltdW0gb3V0cHV0IGJ5dGVzCisgKiAgICAgICAgIDcuLiAwIG1heGltdW0gYnl0ZXMgcGVyIFVDaGFyCisgKgorICogICBbMThdIEJpdCBmaWVsZCBjb250YWluaW5nIG51bWJlcnMgb2YgVUNoYXJzOgorICogICAgICAgIDMxLi4yNCByZXNlcnZlZCwgMAorICogICAgICAgIDIzLi4xNiBtYXhpbXVtIGlucHV0IFVDaGFycworICogICAgICAgIDE1Li4gOCBtYXhpbXVtIG91dHB1dCBVQ2hhcnMKKyAqICAgICAgICAgNy4uIDAgbWF4aW11bSBVQ2hhcnMgcGVyIGJ5dGUKKyAqCisgKiAgIFsxOV0gQml0IGZpZWxkIGNvbnRhaW5pbmcgZmxhZ3M6CisgKiAgICAgICAgICAgICAgIChleHRlbnNpb24gdGFibGUgdW5pY29kZU1hc2spCisgKiAgICAgICAgIDEgICAgIFVDTlZfSEFTX1NVUlJPR0FURVMgZmxhZyBmb3IgdGhlIGV4dGVuc2lvbiB0YWJsZQorICogICAgICAgICAwICAgICBVQ05WX0hBU19TVVBQTEVNRU5UQVJZIGZsYWcgZm9yIHRoZSBleHRlbnNpb24gdGFibGUKKyAqCisgKiAgIFsyMF0uLlszMF0gcmVzZXJ2ZWQsIDAKKyAqICAgWzMxXSBudW1iZXIgb2YgYnl0ZXMgZm9yIHRoZSBlbnRpcmUgZXh0ZW5zaW9uIHN0cnVjdHVyZQorICogICBbPjMxXSByZXNlcnZlZDsgdGhlcmUgYXJlIGluZGV4ZXNbMF0gaW5kZXhlcworICoKKyAqCisgKiB1aW50MzJfdCB0b1VUYWJsZVtdOworICoKKyAqICAgQXJyYXkgb2YgYnl0ZS92YWx1ZSBwYWlycyBmb3IgbG9va3VwcyBmb3IgdG9Vbmljb2RlIGNvbnZlcnNpb24uCisgKiAgIFRoZSBhcnJheSBpcyBwYXJ0aXRpb25lZCBpbnRvIHNlY3Rpb25zIGxpa2UgY29sbGF0aW9uIGNvbnRyYWN0aW9uIHRhYmxlcy4KKyAqICAgRWFjaCBzZWN0aW9uIGNvbnRhaW5zIG9uZSB3b3JkIHdpdGggdGhlIG51bWJlciBvZiBmb2xsb3dpbmcgd29yZHMgYW5kCisgKiAgIGEgZGVmYXVsdCB2YWx1ZSBmb3Igd2hlbiB0aGUgbG9va3VwIGluIHRoaXMgc2VjdGlvbiB5aWVsZHMgbm8gbWF0Y2guCisgKgorICogICBBIHNlY3Rpb24gaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBvZiBpbnB1dCBieXRlcywKKyAqICAgYWxsb3dpbmcgZm9yIGZhc3QgbGluZWFyIG9yIGJpbmFyeSBzZWFyY2hlcy4KKyAqICAgVGhlIGJ1aWxkZXIgbWF5IHN0b3JlIGVudHJpZXMgZm9yIGEgY29udGlndW91cyByYW5nZSBvZiBieXRlIHZhbHVlcworICogICAoY29tcGFyZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBsYXN0IG9uZSB3aXRoIGNvdW50KSwKKyAqICAgd2hpY2ggdGhlbiBhbGxvd3MgZm9yIGRpcmVjdCBhcnJheSBhY2Nlc3MuCisgKiAgIFRoZSBidWlsZGVyIHNob3VsZCBhbHdheXMgZG8gdGhpcyBmb3IgdGhlIGluaXRpYWwgdGFibGUgc2VjdGlvbi4KKyAqCisgKiAgIEVudHJpZXMgbWF5IGhhdmUgMCB2YWx1ZXMsIHNlZSBiZWxvdy4KKyAqICAgTm8gdHdvIGVudHJpZXMgaW4gYSBzZWN0aW9uIGhhdmUgdGhlIHNhbWUgYnl0ZSB2YWx1ZXMuCisgKgorICogICBFYWNoIHVpbnQzMl90IGNvbnRhaW5zIGFuIGlucHV0IGJ5dGUgdmFsdWUgaW4gYml0cyAzMS4uMjQgYW5kIHRoZQorICogICBjb3JyZXNwb25kaW5nIGxvb2t1cCB2YWx1ZSBpbiBiaXRzIDIzLi4wLgorICogICBJbnRlcnByZXQgdGhlIHZhbHVlIGFzIGZvbGxvd3M6CisgKiAgICAgaWYodmFsdWU9PTApIHsKKyAqICAgICAgIG5vIG1hdGNoLCBzZWUgYmVsb3cKKyAqICAgICB9IGVsc2UgaWYodmFsdWU8MHgxZjAwMDApIHsKKyAqICAgICAgIHBhcnRpYWwgbWF0Y2ggLSB1c2UgdmFsdWUgYXMgaW5kZXggdG8gdGhlIG5leHQgdG9VVGFibGUgc2VjdGlvbgorICogICAgICAgYW5kIG1hdGNoIHRoZSBuZXh0IHVuaXQ7ICh2YWx1ZSBpbmRleGVzIHRvVVRhYmxlW3ZhbHVlXSkKKyAqICAgICB9IGVsc2UgeworICogICAgICAgaWYoYml0IDIzIHNldCkgeworICogICAgICAgICByb3VuZHRyaXA7CisgKiAgICAgICB9IGVsc2UgeworICogICAgICAgICBmYWxsYmFjazsKKyAqICAgICAgIH0KKyAqICAgICAgIHVuc2V0IHZhbHVlIGJpdCAyMzsKKyAqICAgICAgIGlmKHZhbHVlPD0weDJmZmZmZikgeworICogICAgICAgICAodmFsdWUtMHgxZjAwMDApIGlzIGEgY29kZSBwb2ludDsgKEJNUDogdmFsdWU8PTB4MWZmZmZmKQorICogICAgICAgfSBlbHNlIHsKKyAqICAgICAgICAgYml0cyAxNy4uMCAodmFsdWUmMHgzZmZmZikgaXMgYW4gaW5kZXggdG8KKyAqICAgICAgICAgICB0aGUgcmVzdWx0IFVDaGFycyBpbiB0b1VVQ2hhcnNbXTsgKDAgaW5kZXhlcyB0b1VVQ2hhcnNbMF0pCisgKiAgICAgICAgIGxlbmd0aCBvZiB0aGUgcmVzdWx0PSgodmFsdWU+PjE4KS0xMik7IChsZW5ndGg9MC4uMTkpCisgKiAgICAgICB9CisgKiAgICAgfQorICoKKyAqICAgVGhlIGZpcnN0IHdvcmQgaW4gYSBzZWN0aW9uIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgZm9sbG93aW5nIHdvcmRzIGluIHRoZQorICogICBpbnB1dCBieXRlIHBvc2l0aW9uIChiaXRzIDMxLi4yNCwgbnVtYmVyPTEuLjB4ZmYpLgorICogICBUaGUgdmFsdWUgb2YgdGhlIGluaXRpYWwgd29yZCBpcyB1c2VkIHdoZW4gdGhlIGN1cnJlbnQgYnl0ZSBpcyBub3QgZm91bmQKKyAqICAgaW4gdGhpcyBzZWN0aW9uLgorICogICBJZiB0aGUgdmFsdWUgaXMgbm90IDAsIHRoZW4gaXQgcmVwcmVzZW50cyBhIHJlc3VsdCBhcyBhYm92ZS4KKyAqICAgSWYgdGhlIHZhbHVlIGlzIDAsIHRoZW4gdGhlIHNlYXJjaCBoYXMgdG8gcmV0dXJuIGEgc2hvcnRlciBtYXRjaCB3aXRoIGFuCisgKiAgIGVhcmxpZXIgZGVmYXVsdCB2YWx1ZSBhcyB0aGUgcmVzdWx0LCBvciByZXN1bHQgaW4gInVubWFwcGFibGUiIGV2ZW4gZm9yIHRoZQorICogICBpbml0aWFsIGJ5dGVzLgorICogICBJZiB0aGUgdmFsdWUgaXMgMCBmb3IgdGhlIGluaXRpYWwgdG9VVGFibGUgZW50cnksIHRoZW4gdGhlIGluaXRpYWwgYnl0ZQorICogICBkb2VzIG5vdCBzdGFydCBhbnkgbWFwcGluZyBpbnB1dC4KKyAqCisgKgorICogVUNoYXIgdG9VVUNoYXJzW107CisgKgorICogICBDb250YWlucyB0b1VuaWNvZGUgbWFwcGluZyByZXN1bHRzLCBzdG9yZWQgYXMgc2VxdWVuY2VzIG9mIFVDaGFycy4KKyAqICAgSW5kZXhlcyBhbmQgbGVuZ3RocyBzdG9yZWQgaW4gdGhlIHRvVVRhYmxlW10uCisgKgorICoKKyAqIFVDaGFyIGZyb21VVGFibGVVQ2hhcnNbXTsKKyAqIHVpbnQzMl90IGZyb21VVGFibGVWYWx1ZXNbXTsKKyAqCisgKiAgIFRoZSBmcm9tVVRhYmxlIGlzIHNwbGl0IGludG8gdHdvIGFycmF5cywgYnV0IHdvcmtzIG90aGVyd2lzZSBtdWNoIGxpa2UKKyAqICAgdGhlIHRvVVRhYmxlLiBUaGUgYXJyYXkgaXMgcGFydGl0aW9uZWQgaW50byBzZWN0aW9ucyBsaWtlIGNvbGxhdGlvbgorICogICBjb250cmFjdGlvbiB0YWJsZXMgYW5kIHRvVVRhYmxlLgorICogICBBIHJvdyBpbiB0aGUgdGFibGUgY29uc2lzdHMgb2Ygc2FtZS1pbmRleCBlbnRyaWVzIGluIGZyb21VVGFibGVVQ2hhcnNbXQorICogICBhbmQgZnJvbVVUYWJsZVZhbHVlc1tdLgorICoKKyAqICAgSW50ZXJwcmV0IGEgdmFsdWUgYXMgZm9sbG93czoKKyAqICAgICBpZih2YWx1ZT09MCkgeworICogICAgICAgbm8gbWF0Y2gsIHNlZSBiZWxvdworICogICAgIH0gZWxzZSBpZih2YWx1ZTw9MHhmZmZmZmYpIHsgKGJpdHMgMzEuLjI0IGFyZSAwKQorICogICAgICAgcGFydGlhbCBtYXRjaCAtIHVzZSB2YWx1ZSBhcyBpbmRleCB0byB0aGUgbmV4dCBmcm9tVVRhYmxlIHNlY3Rpb24KKyAqICAgICAgIGFuZCBtYXRjaCB0aGUgbmV4dCB1bml0OyAodmFsdWUgaW5kZXhlcyBmcm9tVVRhYmxlW3ZhbHVlXSkKKyAqICAgICB9IGVsc2UgeworICogICAgICAgaWYodmFsdWU9PTB4ODAwMDAwMDEpIHsKKyAqICAgICAgICAgcmV0dXJuIG5vIG1hcHBpbmcsIGJ1dCByZXF1ZXN0IGZvciA8c3ViY2hhcjE+OworICogICAgICAgfQorICogICAgICAgaWYoYml0IDMxIHNldCkgeworICogICAgICAgICByb3VuZHRyaXA7CisgKiAgICAgICB9IGVsc2UgeworICogICAgICAgICBmYWxsYmFjazsKKyAqICAgICAgIH0KKyAqICAgICAgIC8vIGJpdHMgMzAuLjI5IHJlc2VydmVkLCAwCisgKiAgICAgICBsZW5ndGg9KHZhbHVlPj4yNCkmMHgxZjsgKGJpdHMgMjguLjI0KQorICogICAgICAgaWYobGVuZ3RoPT0xLi4zKSB7CisgKiAgICAgICAgIGJpdHMgMjMuLjAgY29udGFpbiAxLi4zIGJ5dGVzLCBwYWRkZWQgd2l0aCAwMHMgb24gdGhlIGxlZnQ7CisgKiAgICAgICB9IGVsc2UgeworICogICAgICAgICBiaXRzIDIzLi4wICh2YWx1ZSYweGZmZmZmZikgaXMgYW4gaW5kZXggdG8KKyAqICAgICAgICAgICB0aGUgcmVzdWx0IGJ5dGVzIGluIGZyb21VQnl0ZXNbXTsgKDAgaW5kZXhlcyBmcm9tVUJ5dGVzWzBdKQorICogICAgICAgfQorICogICAgIH0KKyAqICAgICAgIAorICogICBUaGUgZmlyc3QgcGFpciBpbiBhIHNlY3Rpb24gY29udGFpbnMgdGhlIG51bWJlciBvZiBmb2xsb3dpbmcgcGFpcnMgaW4gdGhlCisgKiAgIFVDaGFyIHBvc2l0aW9uICgxNiBiaXRzLCBudW1iZXI9MS4uMHhmZmZmKS4KKyAqICAgVGhlIHZhbHVlIG9mIHRoZSBpbml0aWFsIHBhaXIgaXMgdXNlZCB3aGVuIHRoZSBjdXJyZW50IFVDaGFyIGlzIG5vdCBmb3VuZAorICogICBpbiB0aGlzIHNlY3Rpb24uCisgKiAgIElmIHRoZSB2YWx1ZSBpcyBub3QgMCwgdGhlbiBpdCByZXByZXNlbnRzIGEgcmVzdWx0IGFzIGFib3ZlLgorICogICBJZiB0aGUgdmFsdWUgaXMgMCwgdGhlbiB0aGUgc2VhcmNoIGhhcyB0byByZXR1cm4gYSBzaG9ydGVyIG1hdGNoIHdpdGggYW4KKyAqICAgZWFybGllciBkZWZhdWx0IHZhbHVlIGFzIHRoZSByZXN1bHQsIG9yIHJlc3VsdCBpbiAidW5tYXBwYWJsZSIgZXZlbiBmb3IgdGhlCisgKiAgIGluaXRpYWwgVUNoYXJzLgorICoKKyAqICAgSWYgdGhlIGZyb20gVW5pY29kZSB0cmllIGlzIHByZXNlbnQsIHRoZW4gdGhlIGZyb20gVW5pY29kZSBzZWFyY2ggdGFibGVzCisgKiAgIGFyZSBub3QgdXNlZCBmb3IgaW5pdGlhbCBjb2RlIHBvaW50cy4KKyAqICAgSW4gdGhpcyBjYXNlLCB0aGUgZmlyc3QgZW50cmllcyAoaW5kZXggMCkgaW4gdGhlIHRhYmxlcyBhcmUgbm90IHVzZWQKKyAqICAgKHJlc2VydmVkLCBzZXQgdG8gMCkgYmVjYXVzZSBhIHZhbHVlIG9mIDAgaXMgdXNlZCBpbiB0cmllIHJlc3VsdHMKKyAqICAgdG8gaW5kaWNhdGUgbm8gbWFwcGluZy4KKyAqCisgKgorICogdWludDE2X3QgZnJvbVVTdGFnZTEyW107CisgKgorICogICBTdGFnZXMgMSAmIDIgb2YgYSB0cmllIHRoYXQgbWFwcyBhbiBpbml0aWFsIGNvZGUgcG9pbnQuCisgKiAgIEluZGV4ZXMgaW4gc3RhZ2UgMSBhcmUgYWxsIG9mZnNldCBieSB0aGUgbGVuZ3RoIG9mIHN0YWdlIDEgc28gdGhhdCB0aGUKKyAqICAgc2FtZSBhcnJheSBwb2ludGVyIGNhbiBiZSB1c2VkIGZvciBib3RoIHN0YWdlcy4KKyAqICAgSWYgKGM+PjEwKT49KGxlbmd0aCBvZiBzdGFnZSAxKSB0aGVuIGMgZG9lcyBub3Qgc3RhcnQgYW55IG1hcHBpbmcuCisgKiAgIFNhbWUgYml0IGRpc3RyaWJ1dGlvbiBhcyBmb3IgcmVndWxhciBjb252ZXJzaW9uIHRyaWVzLgorICoKKyAqCisgKiB1aW50MTZfdCBmcm9tVVN0YWdlM1tdOworICogdWludDMyX3QgZnJvbVVTdGFnZTNiW107CisgKgorICogICBTdGFnZSAzIG9mIHRoZSB0cmllLiBUaGUgZmlyc3QgYXJyYXkgc2ltcGx5IGNvbnRhaW5zIGluZGV4ZXMgdG8gdGhlIHNlY29uZCwKKyAqICAgd2hpY2ggY29udGFpbnMgd29yZHMgaW4gdGhlIHNhbWUgZm9ybWF0IGFzIGZyb21VVGFibGVWYWx1ZXNbXS4KKyAqICAgVXNlIGEgc3RhZ2UgMyBncmFudWxhcml0eSBvZiA0LCB3aGljaCBhbGxvd3MgZm9yIDI1Nmsgc3RhZ2UgMyBlbnRyaWVzLAorICogICBhbmQgMTYtYml0IGVudHJpZXMgaW4gc3RhZ2UgMyBhbGxvdyBmb3IgNjRrIHN0YWdlIDNiIGVudHJpZXMuCisgKiAgIFRoZSBzdGFnZSAzIGdyYW51bGFyaXR5IG1lYW5zIHRoYXQgdGhlIHN0YWdlIDIgZW50cnkgbmVlZHMgdG8gYmUgbGVmdC1zaGlmdGVkLgorICoKKyAqICAgVHdvIGFycmF5cyBhcmUgdXNlZCBiZWNhdXNlIGl0IGlzIGV4cGVjdGVkIHRoYXQgbW9yZSB0aGFuIGhhbGYgb2YgdGhlIHN0YWdlIDMKKyAqICAgZW50cmllcyB3aWxsIGJlIHplcm8uIFRoZSAxNi1iaXQgaW5kZXggc3RhZ2UgMyBhcnJheSBzYXZlcyBzcGFjZSBldmVuCisgKiAgIGNvbnNpZGVyaW5nIHN0b3JpbmcgYSB0b3RhbCBvZiA2IGJ5dGVzIHBlciBub24temVybyBlbnRyeSBpbiBib3RoIGFycmF5cworICogICB0b2dldGhlci4KKyAqICAgVXNpbmcgYSBzdGFnZSAzIGdyYW51bGFyaXR5IG9mID4xIGRpbWluaXNoZXMgdGhlIGNvbXBhY3RhYmlsaXR5IGluIHRoYXQgc3RhZ2UKKyAqICAgYnV0IHByb3ZpZGVzIGEgbGFyZ2VyIGVmZmVjdGl2ZSBhZGRyZXNzaW5nIHNwYWNlIGluIHN0YWdlIDIuCisgKiAgIEFsbCBidXQgdGhlIGZpbmFsIHJlc3VsdCBzdGFnZSB1c2UgMTYtYml0IGVudHJpZXMgdG8gc2F2ZSBzcGFjZS4KKyAqCisgKiAgIGZyb21VU3RhZ2UzYltdIGNvbnRhaW5zIGEgemVybyBmb3IgIm5vIG1hcHBpbmciIGF0IGl0cyBpbmRleCAwLAorICogICBhbmQgbWF5IGNvbnRhaW4gVUNOVl9FWFRfRlJPTV9VX1NVQkNIQVIxIGF0IGluZGV4IDEgZm9yICI8c3ViY2hhcjE+IFNVQiBtYXBwaW5nIgorICogICAoaS5lLiwgIm5vIG1hcHBpbmciIHdpdGggcHJlZmVyZW5jZSBmb3IgPHN1YmNoYXIxPiByYXRoZXIgdGhhbiA8c3ViY2hhcj4pLAorICogICBhbmQgYWxsIG90aGVyIGl0ZW1zIGFyZSB1bmlxdWUgbm9uLXplcm8gcmVzdWx0cy4KKyAqCisgKiAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgZnJvbVVUYWJsZVZhbHVlc1tdIHNlY3Rpb24gdGhhdCBpcyByZWZlcmVuY2VkCisgKiAgIF9kaXJlY3RseV8gZnJvbSBhIGZyb21VU3RhZ2UzYltdIGl0ZW0gbWF5IGFsc28gYmUgVUNOVl9FWFRfRlJPTV9VX1NVQkNIQVIxLAorICogICBidXQgdGhpcyB2YWx1ZSBtdXN0IG5vdCBvY2N1ciBhbnl3aGVyZSBlbHNlIGluIGZyb21VVGFibGVWYWx1ZXNbXQorICogICBiZWNhdXNlICJubyBtYXBwaW5nIiBpcyBhbHdheXMgYSBwcm9wZXJ0eSBvZiBhIHNpbmdsZSBjb2RlIHBvaW50LAorICogICBuZXZlciBvZiBtdWx0aXBsZS4KKyAqCisgKgorICogY2hhciBmcm9tVUJ5dGVzW107CisgKgorICogICBDb250YWlucyBmcm9tVW5pY29kZSBtYXBwaW5nIHJlc3VsdHMsIHN0b3JlZCBhcyBzZXF1ZW5jZXMgb2YgY2hhcnMuCisgKiAgIEluZGV4ZXMgYW5kIGxlbmd0aHMgc3RvcmVkIGluIHRoZSBmcm9tVVRhYmxlVmFsdWVzW10uCisgKi8KKworZmluYWwgY2xhc3MgVUNvbnZlcnRlckRhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAvL3ByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gZGVidWcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJVQ29udmVydGVyRGF0YVJlYWRlciIpOworCisgICAgLyoKKyAgICAgKiAJIFVDb252ZXJ0ZXJEYXRhUmVhZGVyKFVDb252ZXJ0ZXJEYXRhUmVhZGVyIHIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oci5kYXRhSW5wdXRTdHJlYW0pOworICAgICAgICAgICAgdW5pY29kZVZlcnNpb24gPSByLnVuaWNvZGVWZXJzaW9uOworICAgICAgICB9CisgICAgICAgICovCisgICAgCisgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNvbnZlcnRlckRhdGFSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgLy9pZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBpbiBpbnB1dFN0cmVhbSAiICsgaW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgdW5pY29kZVZlcnNpb24gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSUQsIHRoaXMpOworICAgICAgICAKKyAgICAgICAgLy9pZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGlucHV0U3RyZWFtICIgK2lucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAKKyAgICAgICAgLy9pZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGRhdGFJbnB1dFN0cmVhbSAiICtkYXRhSW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcmVhZFN0YXRpY0RhdGEoVUNvbnZlcnRlclN0YXRpY0RhdGEgc2QpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc2Quc3RydWN0U2l6ZSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIGJ5dGVbXSBuYW1lID0gbmV3IGJ5dGVbVUNvbnZlcnRlckNvbnN0YW50cy5NQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkKG5hbWUpOworICAgICAgICBzZC5uYW1lID0gbmV3IFN0cmluZyhuYW1lLCAwLCBsZW5ndGgpOworICAgICAgICBzZC5jb2RlcGFnZSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIHNkLnBsYXRmb3JtID0gZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIHNkLmNvbnZlcnNpb25UeXBlID0gZGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIHNkLm1pbkJ5dGVzUGVyQ2hhciA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBzZC5tYXhCeXRlc1BlckNoYXIgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQoc2Quc3ViQ2hhcik7CisgICAgICAgIHNkLnN1YkNoYXJMZW4gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgc2QuaGFzVG9Vbmljb2RlRmFsbGJhY2sgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgc2QuaGFzRnJvbVVuaWNvZGVGYWxsYmFjayA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBzZC51bmljb2RlTWFzayA9IChzaG9ydClkYXRhSW5wdXRTdHJlYW0ucmVhZFVuc2lnbmVkQnl0ZSgpOworICAgICAgICBzZC5zdWJDaGFyMSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpOworICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChzZC5yZXNlcnZlZCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgcmVhZE1CQ1NIZWFkZXIoQ2hhcnNldE1CQ1MuTUJDU0hlYWRlciBoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGgudmVyc2lvbik7CisgICAgICAgIGguY291bnRTdGF0ZXMgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLmNvdW50VG9VRmFsbGJhY2tzID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgaC5vZmZzZXRUb1VDb2RlVW5pdHMgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLm9mZnNldEZyb21VVGFibGUgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLm9mZnNldEZyb21VQnl0ZXMgPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBoLmZsYWdzID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgaC5mcm9tVUJ5dGVzTGVuZ3RoID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcmVhZE1CQ1NUYWJsZShpbnRbXVtdIHN0YXRlVGFibGVBcnJheSwgQ2hhcnNldE1CQ1MuTUJDU1RvVUZhbGxiYWNrW10gdG9VRmFsbGJhY2tzQXJyYXksIGNoYXJbXSB1bmljb2RlQ29kZVVuaXRzQXJyYXksIGNoYXJbXSBmcm9tVW5pY29kZVRhYmxlQXJyYXksIGJ5dGVbXSBmcm9tVW5pY29kZUJ5dGVzQXJyYXkpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IGksIGo7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHN0YXRlVGFibGVBcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGZvcihqID0gMDsgaiA8IHN0YXRlVGFibGVBcnJheVtpXS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlQXJyYXlbaV1bal0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCB0b1VGYWxsYmFja3NBcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdG9VRmFsbGJhY2tzQXJyYXlbaV0ub2Zmc2V0ID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHRvVUZhbGxiYWNrc0FycmF5W2ldLmNvZGVQb2ludCA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgdW5pY29kZUNvZGVVbml0c0FycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdW5pY29kZUNvZGVVbml0c0FycmF5W2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgIGZvcihpID0gMDsgaSA8IGZyb21Vbmljb2RlVGFibGVBcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGZyb21Vbmljb2RlVGFibGVBcnJheVtpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCBmcm9tVW5pY29kZUJ5dGVzQXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBmcm9tVW5pY29kZUJ5dGVzQXJyYXlbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHJlYWRCYXNlVGFibGVOYW1lKCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBjaGFyIGM7CisgICAgICAgIFN0cmluZ0J1ZmZlciBuYW1lID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSgoYyA9IChjaGFyKWRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZSgpKSAhPSAgMCkKKyAgICAgICAgICAgIG5hbWUuYXBwZW5kKGMpOworICAgICAgICByZXR1cm4gbmFtZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8vcHJvdGVjdGVkIGludFtdIHJlYWRFeHRJbmRleGVzKGludCBza2lwKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICBwcm90ZWN0ZWQgQnl0ZUJ1ZmZlciByZWFkRXh0SW5kZXhlcyhpbnQgc2tpcCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBkYXRhSW5wdXRTdHJlYW0uc2tpcEJ5dGVzKHNraXApOworCisgICAgICAgIGludCBuID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgaW50W10gaW5kZXhlcyA9IG5ldyBpbnRbbl07CisgICAgICAgIGluZGV4ZXNbMF0gPSBuOworICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDwgbjsgKytpKSB7CisgICAgICAgICAgICBpbmRleGVzW2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICAvL3JldHVybiBpbmRleGVzOworCisgICAgICAgIEJ5dGVCdWZmZXIgYiA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoaW5kZXhlc1szMV0pOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgICAgICAgICBiLnB1dEludChpbmRleGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChiLmFycmF5KCksIGIucG9zaXRpb24oKSwgYi5yZW1haW5pbmcoKSk7CisgICAgICAgIHJldHVybiBiOworICAgIH0KKworICAgIHByb3RlY3RlZCBieXRlW10gcmVhZEV4dFRhYmxlcyhpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBieXRlW10gdGFibGVzID0gbmV3IGJ5dGVbbl07CisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKHRhYmxlcyk7CisgICAgICAgIHJldHVybiB0YWJsZXM7CisgICAgfQorCisgICAgIGJ5dGVbXSBnZXREYXRhRm9ybWF0VmVyc2lvbigpeworICAgICAgICByZXR1cm4gREFUQV9GT1JNQVRfVkVSU0lPTjsKKyAgICB9CisgICAgLyoqCisgICAgICogSW5oZXJpdGVkIG1ldGhvZAorICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSl7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMF07CisgICAgfQorICAgIAorICAgICBieXRlW10gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOyAgICAKKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gZGF0YUlucHV0U3RyZWFtOworICAgIAorICAgIHByaXZhdGUgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqIHNlZSBzdG9yZS5jIG9mIGdlbm5vcm0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHZhbHVlcworICAgICovCisgICAgLy8gREFUQV9GT1JNQVRfSURfIHZhbHVlcyB0YWtlbiBmcm9tIGljdTRjIGlzQ252QWNjZXB0YWJsZSAodWNudl9ibGQuYykKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg2MywgKGJ5dGUpMHg2ZSwgKGJ5dGUpMHg3NiwgKGJ5dGUpMHg3NH07IC8vIGRhdGFGb3JtYXQ9ImNudnQiCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7KGJ5dGUpMHg2fTsKKworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU2hhcmVkRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlclNoYXJlZERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzgwZGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvVUNvbnZlcnRlclNoYXJlZERhdGEuamF2YQpAQCAtMCwwICsxLDQ2MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8gCitwYWNrYWdlIGNvbS5pYm0uaWN1LmNoYXJzZXQ7CisKKworCisvKgorICogRGVmaW5lcyB0aGUgVUNvbnZlcnRlclNoYXJlZERhdGEgc3RydWN0LAorICogdGhlIGltbXV0YWJsZSwgc2hhcmVkIHBhcnQgb2YgVUNvbnZlcnRlci4KKyAqLworZmluYWwgY2xhc3MgVUNvbnZlcnRlclNoYXJlZERhdGEgeworICAgIC8vdWludDMyX3Qgc3RydWN0U2l6ZTsgICAgICAgICAgICAvKiBTaXplIG9mIHRoaXMgc3RydWN0dXJlICovCisJIGludCBzdHJ1Y3RTaXplOyAgICAgICAgICAgIC8qIFNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUgKi8KKyAgICAvL3VpbnQzMl90IHJlZmVyZW5jZUNvdW50ZXI7ICAgICAgLyogdXNlZCB0byBjb3VudCBudW1iZXIgb2YgY2xpZW50cywgMHhmZmZmZmZmZiBmb3Igc3RhdGljIFNoYXJlZERhdGEgKi8KKwkgaW50IHJlZmVyZW5jZUNvdW50ZXI7ICAgICAgLyogdXNlZCB0byBjb3VudCBudW1iZXIgb2YgY2xpZW50cywgMHhmZmZmZmZmZiBmb3Igc3RhdGljIFNoYXJlZERhdGEgKi8KKworCS8vYWdsanBvcnQ6dG9kbyBjb25zdCB2b2lkICpkYXRhTWVtb3J5OyAgICAgICAgIC8qIGZyb20gdWRhdGFfb3BlbkNob2ljZSgpIC0gZm9yIGNsZWFudXAgKi8KKwkvL2FnbGpwb3J0OnRvZG8gdm9pZCAqdGFibGU7ICAgICAgICAgICAgICAgICAgICAvKiBVbnVzZWQuIFRoaXMgdXNlZCB0byBiZSBhIFVDb252ZXJ0ZXJUYWJsZSAtIFBvaW50ZXIgdG8gY29udmVyc2lvbiBkYXRhIC0gc2VlIG1iY3MgYmVsb3cgKi8KKworICAgIC8vY29uc3QgVUNvbnZlcnRlclN0YXRpY0RhdGEgKnN0YXRpY0RhdGE7IC8qIHBvaW50ZXIgdG8gdGhlIHN0YXRpYyAobm9uIGNoYW5naW5nKSBkYXRhLiAqLworCSBVQ29udmVydGVyU3RhdGljRGF0YSBzdGF0aWNEYXRhOyAvKiBwb2ludGVyIHRvIHRoZSBzdGF0aWMgKG5vbiBjaGFuZ2luZykgZGF0YS4gKi8KKworICAgIC8vVUJvb2wgICAgICAgICAgICAgICAgc2hhcmVkRGF0YUNhY2hlZDsgICAvKiBUUlVFOiAgc2hhcmVkIGRhdGEgaXMgaW4gY2FjaGUsIGRvbid0IGRlc3Ryb3kgb24gY2xvc2UoKSBpZiAwIHJlZi4gIEZBTFNFOiBzaGFyZWQgZGF0YSBpc24ndCBpbiB0aGUgY2FjaGUsIGRvIGF0dGVtcHQgdG8gY2xlYW4gaXQgdXAgaWYgdGhlIHJlZiBpcyAwICovCisJIGJvb2xlYW4gICAgICAgICAgICAgICAgc2hhcmVkRGF0YUNhY2hlZDsgICAvKiBUUlVFOiAgc2hhcmVkIGRhdGEgaXMgaW4gY2FjaGUsIGRvbid0IGRlc3Ryb3kgb24gY2xvc2UoKSBpZiAwIHJlZi4gIEZBTFNFOiBzaGFyZWQgZGF0YSBpc24ndCBpbiB0aGUgY2FjaGUsIGRvIGF0dGVtcHQgdG8gY2xlYW4gaXQgdXAgaWYgdGhlIHJlZiBpcyAwICovCisJLypVQm9vbCAgICAgICAgICAgICAgIHN0YXRpY0RhdGFPd25lZDsgICBUUlVFIGlmIHN0YXRpYyBkYXRhIG93bmVkIGJ5IHNoYXJlZCBkYXRhICYgc2hvdWxkIGJlIGZyZWVkIHdpdGggaXQsIE5FVkVSIHRydWUgZm9yIHVkYXRhKCkgbG9hZGVkIHN0YXRpY3MuIFRoaXMgaWdub3JlZCB2YXJpYWJsZSB3YXMgcmVtb3ZlZCB0byBtYWtlIHNwYWNlIGZvciBzaGFyZWREYXRhQ2FjaGVkLiAgICovCisKKyAgICAvL2NvbnN0IFVDb252ZXJ0ZXJJbXBsICppbXBsOyAgICAgLyogdnRhYmxlLXN0eWxlIHN0cnVjdCBvZiBtb3N0bHkgZnVuY3Rpb24gcG9pbnRlcnMgKi8KKwkvLyBVQ29udmVydGVySW1wbCBpbXBsOyAgICAgLyogdnRhYmxlLXN0eWxlIHN0cnVjdCBvZiBtb3N0bHkgZnVuY3Rpb24gcG9pbnRlcnMgKi8KKworCS8qaW5pdGlhbCB2YWx1ZXMgb2Ygc29tZSBtZW1iZXJzIG9mIHRoZSBtdXRhYmxlIHBhcnQgb2Ygb2JqZWN0ICovCisgICAgLy91aW50MzJfdCB0b1VuaWNvZGVTdGF0dXM7CisJIGxvbmcgdG9Vbmljb2RlU3RhdHVzOworCisJLyoKKwkgKiBTaGFyZWQgZGF0YSBzdHJ1Y3R1cmVzIGN1cnJlbnRseSBjb21lIGluIHR3byBmbGF2b3JzOgorCSAqIC0gcmVhZG9ubHkgZm9yIGJ1aWx0LWluIGFsZ29yaXRobWljIGNvbnZlcnRlcnMKKwkgKiAtIGFsbG9jYXRlZCBmb3IgTUJDUywgd2l0aCBhIHBvaW50ZXIgdG8gYW4gYWxsb2NhdGVkIFVDb252ZXJ0ZXJUYWJsZQorCSAqICAgd2hpY2ggYWx3YXlzIGhhcyBhIFVDb252ZXJ0ZXJNQkNTVGFibGUKKwkgKgorCSAqIFRvIGVsaW1pbmF0ZSBvbmUgYWxsb2NhdGlvbiwgSSBhbSBtYWtpbmcgdGhlIFVDb252ZXJ0ZXJNQkNTVGFibGUKKwkgKiBhIG1lbWJlciBvZiB0aGUgc2hhcmVkIGRhdGEuIEl0IGlzIHRoZSBsYXN0IG1lbWJlciBzbyB0aGF0IHN0YXRpYworCSAqIGRlZmluaXRpb25zIG9mIFVDb252ZXJ0ZXJTaGFyZWREYXRhIHdvcmsgYXMgYmVmb3JlLgorCSAqIFRoZSB0YWJsZSBmaWVsZCBhYm92ZSBhbHNvIHJlbWFpbnMgdG8gYXZvaWQgdXBkYXRpbmcgYWxsIHN0YXRpYworCSAqIGRlZmluaXRpb25zLCBidXQgaXMgbm93IHVudXNlZC4KKwkgKgorCSAqLworCSBDaGFyc2V0TUJDUy5VQ29udmVydGVyTUJDU1RhYmxlIG1iY3M7CisKKwkgVUNvbnZlcnRlclNoYXJlZERhdGEoKQorCXsKKwkJbWJjcyA9IG5ldyBDaGFyc2V0TUJDUy5VQ29udmVydGVyTUJDU1RhYmxlKCk7CisJfQorCQorCSBVQ29udmVydGVyU2hhcmVkRGF0YShpbnQgc3RydWN0U2l6ZV8sIGludCByZWZlcmVuY2VDb3VudGVyXywgVUNvbnZlcnRlclN0YXRpY0RhdGEgc3RhdGljRGF0YV8sIGJvb2xlYW4gc2hhcmVkRGF0YUNhY2hlZF8sLyogVUNvbnZlcnRlckltcGwgaW1wbF8sKi8gbG9uZyB0b1VuaWNvZGVTdGF0dXNfKQorCXsKKwkJdGhpcygpOworCQlzdHJ1Y3RTaXplID0gc3RydWN0U2l6ZV87CisJCXJlZmVyZW5jZUNvdW50ZXIgPSByZWZlcmVuY2VDb3VudGVyXzsKKwkJc3RhdGljRGF0YSA9IHN0YXRpY0RhdGFfOworCQlzaGFyZWREYXRhQ2FjaGVkID0gc2hhcmVkRGF0YUNhY2hlZF87CisJCS8vaW1wbCA9IGltcGxfOworCQl0b1VuaWNvZGVTdGF0dXMgPSB0b1VuaWNvZGVTdGF0dXNfOworCX0KKworCS8qKgorCSAqIFVDb252ZXJ0ZXJJbXBsIGNvbnRhaW5zIGFsbCB0aGUgZGF0YSBhbmQgZnVuY3Rpb25zIGZvciBhIGNvbnZlcnRlciB0eXBlLgorCSAqIEl0cyBmdW5jdGlvbiBwb2ludGVycyB3b3JrIG11Y2ggbGlrZSBhIEMrKyB2dGFibGUuCisJICogTWFueSBjb252ZXJ0ZXIgdHlwZXMgbmVlZCB0byBkZWZpbmUgb25seSBhIHN1YnNldCBvZiB0aGUgZnVuY3Rpb25zOworCSAqIHdoZW4gYSBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGFjdGlvbiB3aWxsIGJlIHBlcmZvcm1lZC4KKwkgKgorCSAqIEV2ZXJ5IGNvbnZlcnRlciB0eXBlIG11c3QgaW1wbGVtZW50IHRvVW5pY29kZSwgZnJvbVVuaWNvZGUsIGFuZCBnZXROZXh0VUNoYXIsCisJICogb3RoZXJ3aXNlIHRoZSBjb252ZXJ0ZXIgbWF5IGNyYXNoLgorCSAqIEV2ZXJ5IGNvbnZlcnRlciB0eXBlIHRoYXQgaGFzIHZhcmlhYmxlLWxlbmd0aCBjb2RlcGFnZSBzZXF1ZW5jZXMgc2hvdWxkCisJICogYWxzbyBpbXBsZW1lbnQgdG9Vbmljb2RlV2l0aE9mZnNldHMgYW5kIGZyb21Vbmljb2RlV2l0aE9mZnNldHMgZm9yCisJICogY29ycmVjdCBvZmZzZXQgaGFuZGxpbmcuCisJICogQWxsIG90aGVyIGZ1bmN0aW9ucyBtYXkgb3IgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCAtIGl0IGRlcGVuZHMgb25seSBvbgorCSAqIHdoZXRoZXIgdGhlIGNvbnZlcnRlciB0eXBlIG5lZWRzIHRoZW0uCisJICoKKwkgKiBXaGVuIG9wZW4oKSBmYWlscywgdGhlbiBjbG9zZSgpIHdpbGwgYmUgY2FsbGVkLCBpZiBwcmVzZW50LgorCSAqLworCS8vIGNsYXNzIFVDb252ZXJ0ZXJJbXBsIHsKKwkgICAgLy9VQ29udmVydGVyVHlwZSB0eXBlOworCSAgICAvL1VDb252ZXJ0ZXJUb1VuaWNvZGUgdG9Vbmljb2RlOworLyoJcHJvdGVjdGVkIHZvaWQgZG9Ub1VuaWNvZGUoVUNvbnZlcnRlclRvVW5pY29kZUFyZ3MgYXJncywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJfQorCQorCSBmaW5hbCB2b2lkIHRvVW5pY29kZShVQ29udmVydGVyVG9Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9Ub1VuaWNvZGUoYXJncywgcEVycm9yQ29kZSk7CisJfQorCQorCS8vVUNvbnZlcnRlckZyb21Vbmljb2RlIGZyb21Vbmljb2RlOworCXByb3RlY3RlZCB2b2lkIGRvRnJvbVVuaWNvZGUoVUNvbnZlcnRlckZyb21Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisJIGZpbmFsIHZvaWQgZnJvbVVuaWNvZGUoVUNvbnZlcnRlckZyb21Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9Gcm9tVW5pY29kZShhcmdzLCBwRXJyb3JDb2RlKTsKKwl9CisJCisJcHJvdGVjdGVkIGludCBkb0dldE5leHRVQ2hhcihVQ29udmVydGVyVG9Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJcmV0dXJuIDA7CisJfQorCQorCS8vVUNvbnZlcnRlckdldE5leHRVQ2hhciBnZXROZXh0VUNoYXI7CisJIGZpbmFsIGludCBnZXROZXh0VUNoYXIoVUNvbnZlcnRlclRvVW5pY29kZUFyZ3MgYXJncywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJCXJldHVybiBkb0dldE5leHRVQ2hhcihhcmdzLCBwRXJyb3JDb2RlKTsKKwl9CisJCisJLy8gaW50ZXJmYWNlIFVDb252ZXJ0ZXJJbXBsTG9hZGFibGUgZXh0ZW5kcyBVQ29udmVydGVySW1wbAorCXByb3RlY3RlZCB2b2lkIGRvTG9hZChVQ29udmVydGVyTG9hZEFyZ3MgcEFyZ3MsIHNob3J0W10gcmF3LCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisqLwkKKwlwcm90ZWN0ZWQgdm9pZCBkb1VubG9hZCgpCisJeworCX0KKworCS8qCisJLy8gaW50ZXJmYWNlIFVDb252ZXJ0ZXJJbXBsT3BlbmFibGUgZXh0ZW5kcyBVQ29udmVydGVySW1wbAorCXByb3RlY3RlZCB2b2lkIGRvT3BlbihVQ29udmVydGVyIGNudiwgU3RyaW5nIG5hbWUsIFN0cmluZyBsb2NhbGUsIGxvbmcgb3B0aW9ucywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJfQorICAgIAorCS8vVUNvbnZlcnRlck9wZW4gb3BlbjsKKwkgZmluYWwgdm9pZCBvcGVuKFVDb252ZXJ0ZXIgY252LCBTdHJpbmcgbmFtZSwgU3RyaW5nIGxvY2FsZSwgbG9uZyBvcHRpb25zLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9PcGVuKGNudiwgbmFtZSwgbG9jYWxlLCBvcHRpb25zLCBwRXJyb3JDb2RlKTsKKwl9CisJCisJcHJvdGVjdGVkIHZvaWQgZG9DbG9zZShVQ29udmVydGVyIGNudikKKwl7CisJfQorCQorICAgIC8vVUNvbnZlcnRlckNsb3NlIGNsb3NlOworCSBmaW5hbCB2b2lkIGNsb3NlKFVDb252ZXJ0ZXIgY252KQorCXsKKwkJZG9DbG9zZShjbnYpOworCX0KKwkKKwlwcm90ZWN0ZWQgdm9pZCBkb1Jlc2V0KFVDb252ZXJ0ZXIgY252LCBpbnQgY2hvaWNlKQorCXsKKwl9CisJCisJLy90eXBlZGVmIHZvaWQgKCpVQ29udmVydGVyUmVzZXQpIChVQ29udmVydGVyICpjbnYsIFVDb252ZXJ0ZXJSZXNldENob2ljZSBjaG9pY2UpOworCS8vVUNvbnZlcnRlclJlc2V0IHJlc2V0OworCSBmaW5hbCB2b2lkIHJlc2V0KFVDb252ZXJ0ZXIgY252LCBpbnQgY2hvaWNlKQorCXsKKwkJZG9SZXNldChjbnYsIGNob2ljZSk7CisJfQorCisJLy8gaW50ZXJmYWNlIFVDb252ZXJ0ZXJJbXBsVmFyaWFibGVMZW5ndGggZXh0ZW5kcyBVQ29udmVydGVySW1wbAorCXByb3RlY3RlZCB2b2lkIGRvVG9Vbmljb2RlV2l0aE9mZnNldHMoVUNvbnZlcnRlclRvVW5pY29kZUFyZ3MgYXJncywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJfQorCQorICAgIC8vVUNvbnZlcnRlclRvVW5pY29kZSB0b1VuaWNvZGVXaXRoT2Zmc2V0czsKKwkgZmluYWwgdm9pZCB0b1VuaWNvZGVXaXRoT2Zmc2V0cyhVQ29udmVydGVyVG9Vbmljb2RlQXJncyBhcmdzLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9Ub1VuaWNvZGVXaXRoT2Zmc2V0cyhhcmdzLCBwRXJyb3JDb2RlKTsKKwl9CisJCisJcHJvdGVjdGVkIHZvaWQgZG9Gcm9tVW5pY29kZVdpdGhPZmZzZXRzKFVDb252ZXJ0ZXJGcm9tVW5pY29kZUFyZ3MgYXJncywgaW50W10gcEVycm9yQ29kZSkKKwl7CisJfQorCQorICAgIC8vVUNvbnZlcnRlckZyb21Vbmljb2RlIGZyb21Vbmljb2RlV2l0aE9mZnNldHM7CisJIGZpbmFsIHZvaWQgZnJvbVVuaWNvZGVXaXRoT2Zmc2V0cyhVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIGFyZ3MsIGludFtdIHBFcnJvckNvZGUpCisJeworCQlkb0Zyb21Vbmljb2RlV2l0aE9mZnNldHMoYXJncywgcEVycm9yQ29kZSk7CisJfQorCisJLy8gaW50ZXJmYWNlIFVDb252ZXJ0ZXJJbXBsTWlzYyBleHRlbmRzIFVDb252ZXJ0ZXJJbXBsCisJcHJvdGVjdGVkIHZvaWQgZG9HZXRTdGFydGVycyhVQ29udmVydGVyIGNvbnZlcnRlciwgYm9vbGVhbiBzdGFydGVyc1tdLCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwl9CisJCisgICAgLy9VQ29udmVydGVyR2V0U3RhcnRlcnMgZ2V0U3RhcnRlcnM7CisJIGZpbmFsIHZvaWQgZ2V0U3RhcnRlcnMoVUNvbnZlcnRlciBjb252ZXJ0ZXIsIGJvb2xlYW4gc3RhcnRlcnNbXSwgaW50W10gcEVycm9yQ29kZSkKKwl7CisJCWRvR2V0U3RhcnRlcnMoY29udmVydGVyLCBzdGFydGVycywgcEVycm9yQ29kZSk7CisJfQorCQorCXByb3RlY3RlZCBTdHJpbmcgZG9HZXROYW1lKFVDb252ZXJ0ZXIgY252KQorCXsKKwkJcmV0dXJuICIiOworCX0KKwkKKyAgICAvL1VDb252ZXJ0ZXJHZXROYW1lIGdldE5hbWU7CisJIGZpbmFsIFN0cmluZyBnZXROYW1lKFVDb252ZXJ0ZXIgY252KQorCXsKKwkJcmV0dXJuIGRvR2V0TmFtZShjbnYpOworCX0KKwkKKwlwcm90ZWN0ZWQgdm9pZCBkb1dyaXRlU3ViKFVDb252ZXJ0ZXJGcm9tVW5pY29kZUFyZ3MgcEFyZ3MsIGxvbmcgb2Zmc2V0SW5kZXgsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKwkvL1VDb252ZXJ0ZXJXcml0ZVN1YiB3cml0ZVN1YjsKKwkgZmluYWwgdm9pZCB3cml0ZVN1YihVQ29udmVydGVyRnJvbVVuaWNvZGVBcmdzIHBBcmdzLCBsb25nIG9mZnNldEluZGV4LCBpbnRbXSBwRXJyb3JDb2RlKQorCXsKKwkJZG9Xcml0ZVN1YihwQXJncywgb2Zmc2V0SW5kZXgsIHBFcnJvckNvZGUpOworCX0KKwkKKwlwcm90ZWN0ZWQgVUNvbnZlcnRlciBkb1NhZmVDbG9uZShVQ29udmVydGVyIGNudiwgYnl0ZVtdIHN0YWNrQnVmZmVyLCBpbnRbXSBwQnVmZmVyU2l6ZSwgaW50W10gc3RhdHVzKQorCXsKKwkJcmV0dXJuIG5ldyBVQ29udmVydGVyKCk7CisJfQorCisgICAgLy9VQ29udmVydGVyU2FmZUNsb25lIHNhZmVDbG9uZTsKKwkgZmluYWwgVUNvbnZlcnRlciAgc2FmZUNsb25lKFVDb252ZXJ0ZXIgY252LCBieXRlW10gc3RhY2tCdWZmZXIsIGludFtdIHBCdWZmZXJTaXplLCBpbnRbXSBzdGF0dXMpCisJeworCQlyZXR1cm4gZG9TYWZlQ2xvbmUoY252LCBzdGFja0J1ZmZlciwgcEJ1ZmZlclNpemUsIHN0YXR1cyk7CisJfQorCQorCXByb3RlY3RlZCB2b2lkIGRvR2V0VW5pY29kZVNldChVQ29udmVydGVyIGNudiwgVW5pY29kZVNldCAvKlVTZXRBZGRlciogLyBzYSwgaW50IC8qVUNvbnZlcnRlclVuaWNvZGVTZXQqIC8gd2hpY2gsIGludFtdIHBFcnJvckNvZGUpCisJeworCX0KKwkKKyAgICAvL1VDb252ZXJ0ZXJHZXRVbmljb2RlU2V0IGdldFVuaWNvZGVTZXQ7CisJLy8gZmluYWwgdm9pZCBnZXRVbmljb2RlU2V0KFVDb252ZXJ0ZXIgY252LCBVbmljb2RlU2V0IC8qVVNldEFkZGVyKiAvIHNhLCBpbnQgLypVQ29udmVydGVyVW5pY29kZVNldCogLyB3aGljaCwgaW50W10gcEVycm9yQ29kZSkKKwkvL3sKKwkvLwlkb0dldFVuaWNvZGVTZXQoY252LCBzYSwgd2hpY2gsIHBFcnJvckNvZGUpOworCS8vfQorCisJLy99CisKKwlzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfVFlQRSA9ICJjbnYiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTlZfREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworCSBzdGF0aWMgZmluYWwgaW50IHNpemVvZlVDb252ZXJ0ZXJTaGFyZWREYXRhID0gMTAwOworCQorCS8vc3RhdGljIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlIGlzQ252QWNjZXB0YWJsZTsKKworCS8qKgorCSAqIExvYWQgYSBub24tYWxnb3JpdGhtaWMgY29udmVydGVyLgorCSAqIElmIHBrZz09TlVMTCwgdGhlbiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGluc2lkZSB1bXR4X2xvY2soJmNudkNhY2hlTXV0ZXgpLgorCSAKKwkvLyBVQ29udmVydGVyU2hhcmVkRGF0YSAqIGxvYWQoVUNvbnZlcnRlckxvYWRBcmdzICpwQXJncywgVUVycm9yQ29kZSAqZXJyKQorCSBzdGF0aWMgZmluYWwgVUNvbnZlcnRlclNoYXJlZERhdGEgbG9hZChVQ29udmVydGVyTG9hZEFyZ3MgcEFyZ3MsIGludFtdIGVycikKKwl7CisJICAgIFVDb252ZXJ0ZXJTaGFyZWREYXRhIG15U2hhcmVkQ29udmVydGVyRGF0YSA9IG51bGw7CisJCisJICAgIGlmKGVyciA9PSBudWxsIHx8IEVycm9yQ29kZS5pc0ZhaWx1cmUoZXJyWzBdKSkgeworCSAgICAgICAgcmV0dXJuIG51bGw7CisJICAgIH0KKwkKKwkgICAgaWYocEFyZ3MucGtnICE9IG51bGwgJiYgcEFyZ3MucGtnLmxlbmd0aCgpICE9IDApIHsKKwkgICAgICAgICBhcHBsaWNhdGlvbi1wcm92aWRlZCBjb252ZXJ0ZXJzIGFyZSBub3QgY3VycmVudGx5IGNhY2hlZCAKKwkgICAgICAgIHJldHVybiBVQ29udmVydGVyU2hhcmVkRGF0YS5jcmVhdGVDb252ZXJ0ZXJGcm9tRmlsZShwQXJncywgZXJyKTsKKwkgICAgfQorCQorCSAgICAvL2FnbGpwb3J0OmZpeCBteVNoYXJlZENvbnZlcnRlckRhdGEgPSBnZXRTaGFyZWRDb252ZXJ0ZXJEYXRhKHBBcmdzLm5hbWUpOworCSAgICBpZiAobXlTaGFyZWRDb252ZXJ0ZXJEYXRhID09IG51bGwpCisJICAgIHsKKwkgICAgICAgIE5vdCBjYWNoZWQsIHdlIG5lZWQgdG8gc3RyZWFtIGl0IGluIGZyb20gZmlsZSAKKwkgICAgICAgIG15U2hhcmVkQ29udmVydGVyRGF0YSA9IFVDb252ZXJ0ZXJTaGFyZWREYXRhLmNyZWF0ZUNvbnZlcnRlckZyb21GaWxlKHBBcmdzLCBlcnIpOworCSAgICAgICAgaWYgKEVycm9yQ29kZS5pc0ZhaWx1cmUoZXJyWzBdKSB8fCAobXlTaGFyZWRDb252ZXJ0ZXJEYXRhID09IG51bGwpKQorCSAgICAgICAgeworCSAgICAgICAgICAgIHJldHVybiBudWxsOworCSAgICAgICAgfQorCSAgICAgICAgZWxzZQorCSAgICAgICAgeworCSAgICAgICAgICAgICBzaGFyZSBpdCB3aXRoIG90aGVyIGxpYnJhcnkgY2xpZW50cyAKKwkgICAgICAgICAgICAvL2FnbGpwb3J0OmZpeCBzaGFyZUNvbnZlcnRlckRhdGEobXlTaGFyZWRDb252ZXJ0ZXJEYXRhKTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICBlbHNlCisJICAgIHsKKwkgICAgICAgICBUaGUgZGF0YSBmb3IgdGhpcyBjb252ZXJ0ZXIgd2FzIGFscmVhZHkgaW4gdGhlIGNhY2hlLiAgICAgICAgICAgIAorCSAgICAgICAgIFVwZGF0ZSB0aGUgcmVmZXJlbmNlIGNvdW50ZXIgb24gdGhlIHNoYXJlZCBkYXRhOiBvbmUgbW9yZSBjbGllbnQgCisJICAgICAgICBteVNoYXJlZENvbnZlcnRlckRhdGEucmVmZXJlbmNlQ291bnRlcisrOworCSAgICB9CisJCisJICAgIHJldHVybiBteVNoYXJlZENvbnZlcnRlckRhdGE7CisJfQorCQorCVRha2VzIGFuIGFsaWFzIG5hbWUgZ2V0cyBhbiBhY3R1YWwgY29udmVydGVyIGZpbGUgbmFtZQorCSAqZ29lcyB0byBkaXNrIGFuZCBvcGVucyBpdC4KKwkgKmFsbG9jYXRlcyB0aGUgbWVtb3J5IGFuZCByZXR1cm5zIGEgbmV3IFVDb252ZXJ0ZXIgb2JqZWN0CisJIAorCS8vc3RhdGljIFVDb252ZXJ0ZXJTaGFyZWREYXRhICpjcmVhdGVDb252ZXJ0ZXJGcm9tRmlsZShVQ29udmVydGVyTG9hZEFyZ3MgKnBBcmdzLCBVRXJyb3JDb2RlICogZXJyKQorCSBzdGF0aWMgZmluYWwgVUNvbnZlcnRlclNoYXJlZERhdGEgY3JlYXRlQ29udmVydGVyRnJvbUZpbGUoVUNvbnZlcnRlckxvYWRBcmdzIHBBcmdzLCBpbnRbXSBlcnIpCisJeworCSAgICBVRGF0YU1lbW9yeSBkYXRhID0gbnVsbDsKKwkgICAgVUNvbnZlcnRlclNoYXJlZERhdGEgc2hhcmVkRGF0YSA9IG51bGw7CisJCisJICAgIC8vYWdsanBvcnQ6dG9kbyBVVFJBQ0VfRU5UUllfT0MoVVRSQUNFX0xPQUQpOworCQorCSAgICBpZiAoZXJyID09IG51bGwgfHwgRXJyb3JDb2RlLmlzRmFpbHVyZShlcnJbMF0pKSB7CisJICAgICAgICAvL2FnbGpwb3J0OnRvZG8gVVRSQUNFX0VYSVRfU1RBVFVTKCplcnIpOworCSAgICAgICAgcmV0dXJuIG51bGw7CisJICAgIH0KKwkKKwkgICAgLy9hZ2xqcG9ydDp0b2RvIFVUUkFDRV9EQVRBMihVVFJBQ0VfT1BFTl9DTE9TRSwgImxvYWQgY29udmVydGVyICVzIGZyb20gcGFja2FnZSAlcyIsIHBBcmdzLT5uYW1lLCBwQXJncy0+cGtnKTsKKwkKKwkgICAgLy9hZ2xqcG9ydDpmaXggZGF0YSA9IHVkYXRhX29wZW5DaG9pY2UocEFyZ3MucGtnQXJyYXksIERBVEFfVFlQRS5nZXRCeXRlcygpLCBwQXJncy5uYW1lLCBpc0NudkFjY2VwdGFibGUsIG51bGwsIGVycik7CisJICAgIGlmKEVycm9yQ29kZS5pc0ZhaWx1cmUoZXJyWzBdKSkKKwkgICAgeworCSAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIFVUUkFDRV9FWElUX1NUQVRVUygqZXJyKTsKKwkgICAgICAgIHJldHVybiBudWxsOworCSAgICB9CisJCisJICAgIHNoYXJlZERhdGEgPSBkYXRhX3VuRmxhdHRlbkNsb25lKHBBcmdzLCBkYXRhLCBlcnIpOworCSAgICBpZihFcnJvckNvZGUuaXNGYWlsdXJlKGVyclswXSkpCisJICAgIHsKKwkgICAgICAgIC8vYWdsanBvcnQ6Zml4IHVkYXRhX2Nsb3NlKGRhdGEpOworCSAgICAgICAgLy9hZ2xqcG9ydDp0b2RvIFVUUkFDRV9FWElUX1NUQVRVUygqZXJyKTsKKwkgICAgICAgIHJldHVybiBudWxsOworCSAgICB9CisJCisJICAgIAorCSAgICAgKiBUT0RPIFN0b3JlIHBrZyBpbiBhIGZpZWxkIGluIHRoZSBzaGFyZWQgZGF0YSBzbyB0aGF0IGRlbHRhLW9ubHkgY29udmVydGVycworCSAgICAgKiBjYW4gbG9hZCBiYXNlIGNvbnZlcnRlcnMgZnJvbSB0aGUgc2FtZSBwYWNrYWdlLgorCSAgICAgKiBJZiB0aGUgcGtnIG5hbWUgaXMgbG9uZ2VyIHRoYW4gdGhlIGZpZWxkLCB0aGVuIGVpdGhlciBkbyBub3QgbG9hZCB0aGUgY29udmVydGVyCisJICAgICAqIGluIHRoZSBmaXJzdCBwbGFjZSwgb3IganVzdCBzZXQgdGhlIHBrZyBmaWVsZCB0byAiIi4KKwkgICAgIAorCQorCSAgICByZXR1cm4gc2hhcmVkRGF0YTsKKwl9CisqLworCVVDb252ZXJ0ZXJEYXRhUmVhZGVyIGRhdGFSZWFkZXIgPSBudWxsOworCQorCisKKwkvKnJldHVybnMgYSBjb252ZXJ0ZXIgdHlwZSBmcm9tIGEgc3RyaW5nCisJICovCisJLy8gc3RhdGljIGNvbnN0IFVDb252ZXJ0ZXJTaGFyZWREYXRhICogZ2V0QWxnb3JpdGhtaWNUeXBlRnJvbU5hbWUoY29uc3QgY2hhciAqcmVhbE5hbWUpCisvKgkgc3RhdGljIGZpbmFsIFVDb252ZXJ0ZXJTaGFyZWREYXRhIGdldEFsZ29yaXRobWljVHlwZUZyb21OYW1lKFN0cmluZyByZWFsTmFtZSkKKwl7CisJICAgIGxvbmcgbWlkLCBzdGFydCwgbGltaXQ7CisJICAgIGxvbmcgbGFzdE1pZDsKKwkgICAgaW50IHJlc3VsdDsKKwkgICAgU3RyaW5nQnVmZmVyIHN0cmlwcGVkTmFtZSA9IG5ldyBTdHJpbmdCdWZmZXIoVUNvbnZlcnRlckNvbnN0YW50cy5NQVhfQ09OVkVSVEVSX05BTUVfTEVOR1RIKTsKKwkKKwkgICAgLy8gTG93ZXIgY2FzZSBhbmQgcmVtb3ZlIGlnbm9yZWFibGUgY2hhcmFjdGVycy4KKwkgICAgVUNvbnZlcnRlckFsaWFzLnN0cmlwRm9yQ29tcGFyZShzdHJpcHBlZE5hbWUsIHJlYWxOYW1lKTsKKwkKKwkgICAgLy8gZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUgYWxpYXMKKwkgICAgc3RhcnQgPSAwOworCSAgICBsaW1pdCA9IGNudk5hbWVUeXBlLmxlbmd0aDsKKwkgICAgbWlkID0gbGltaXQ7CisJICAgIGxhc3RNaWQgPSAtMTsKKwkKKwkgICAgZm9yICg7OykgeworCSAgICAgICAgbWlkID0gKGxvbmcpKChzdGFydCArIGxpbWl0KSAvIDIpOworCSAgICAgICAgaWYgKGxhc3RNaWQgPT0gbWlkKSB7ICAgLy8gSGF2ZSB3ZSBtb3ZlZD8KKwkgICAgICAgICAgICBicmVhazsgIC8vIFdlIGhhdmVuJ3QgbW92ZWQsIGFuZCBpdCB3YXNuJ3QgZm91bmQuCisJICAgICAgICB9CisJICAgICAgICBsYXN0TWlkID0gbWlkOworCSAgICAgICAgcmVzdWx0ID0gc3RyaXBwZWROYW1lLnN1YnN0cmluZygwKS5jb21wYXJlVG8oY252TmFtZVR5cGVbKGludCltaWRdLm5hbWUpOworCQorCSAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKwkgICAgICAgICAgICBsaW1pdCA9IG1pZDsKKwkgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gMCkgeworCSAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICByZXR1cm4gY29udmVydGVyRGF0YVtjbnZOYW1lVHlwZVsoaW50KW1pZF0udHlwZV07CisJICAgICAgICB9CisJICAgIH0KKwkKKwkgICAgcmV0dXJuIG51bGw7CisJfSovCisJLyoKKwkgKiBFbnVtIGZvciBzcGVjaWZ5aW5nIGJhc2ljIHR5cGVzIG9mIGNvbnZlcnRlcnMKKwkgKiBAc2VlIGdldFR5cGUKKwkgKiBAZHJhZnQgSUNVIDMuNgorCSAqLworCXN0YXRpYyBmaW5hbCBjbGFzcyBVQ29udmVydGVyVHlwZSB7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVU5TVVBQT1JURURfQ09OVkVSVEVSID0gLTE7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgU0JDUyA9IDA7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgREJDUyA9IDE7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTUJDUyA9IDI7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fMSA9IDM7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGOCA9IDQ7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGMTZfQmlnRW5kaWFuID0gNTsKKwkgICAgc3RhdGljIGZpbmFsIGludCBVVEYxNl9MaXR0bGVFbmRpYW4gPSA2OworCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjMyX0JpZ0VuZGlhbiA9IDc7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGMzJfTGl0dGxlRW5kaWFuID0gODsKKwkgICAgc3RhdGljIGZpbmFsIGludCBFQkNESUNfU1RBVEVGVUwgPSA5OworCSAgICBzdGF0aWMgZmluYWwgaW50IElTT18yMDIyID0gMTA7CisKKwkgICAgc3RhdGljIGZpbmFsIGludCBMTUJDU18xID0gMTE7CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMiA9IExNQkNTXzEgKyAxOyAvLzEyCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMyA9IExNQkNTXzIgKyAxOyAvLzEzCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfNCA9IExNQkNTXzMgKyAxOyAvLzE0CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfNSA9IExNQkNTXzQgKyAxOyAvLzE1CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfNiA9IExNQkNTXzUgKyAxOyAvLzE2CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfOCA9IExNQkNTXzYgKyAxOyAvLzE3CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMTEgPSBMTUJDU184ICsgMTsgLy8xOAorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzE2ID0gTE1CQ1NfMTEgKyAxOyAvLzE5CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfMTcgPSBMTUJDU18xNiArIDE7IC8vMjAKKwkgICAgc3RhdGljIGZpbmFsIGludCBMTUJDU18xOCA9IExNQkNTXzE3ICsgMTsgLy8yMQorCSAgICBzdGF0aWMgZmluYWwgaW50IExNQkNTXzE5ID0gTE1CQ1NfMTggKyAxOyAvLzIyCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTE1CQ1NfTEFTVCA9IExNQkNTXzE5OyAvLzIyCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgSFogPUxNQkNTX0xBU1QgKyAxOyAvLzIzCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgU0NTVSA9IEhaICsgMTsgLy8yNAorCSAgICBzdGF0aWMgZmluYWwgaW50IElTQ0lJID0gU0NTVSArIDE7IC8vMjUKKwkgICAgc3RhdGljIGZpbmFsIGludCBVU19BU0NJSSA9IElTQ0lJICsgMTsgLy8yNgorCSAgICBzdGF0aWMgZmluYWwgaW50IFVURjcgPSBVU19BU0NJSSArIDE7IC8vMjcKKwkgICAgc3RhdGljIGZpbmFsIGludCBCT0NVMSA9IFVURjcgKyAxOyAvLzI4CisJICAgIHN0YXRpYyBmaW5hbCBpbnQgVVRGMTYgPSBCT0NVMSArIDE7IC8vMjkKKwkgICAgc3RhdGljIGZpbmFsIGludCBVVEYzMiA9IFVURjE2ICsgMTsgLy8zMAorCSAgICBzdGF0aWMgZmluYWwgaW50IENFU1U4ID0gVVRGMzIgKyAxOyAvLzMxCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1BUF9NQUlMQk9YID0gQ0VTVTggKyAxOyAvLzMyCisJICAgIC8vc3RhdGljIGZpbmFsIGludCBNQUNfQVJBQklDID0gSU1BUF9NQUlMQk9YICsgMTsgLy8zMyBOb3QgaW4gSUNVNEMKKwkgICAgLy9zdGF0aWMgZmluYWwgaW50IE1BQ19IRUJSRVcgPSBNQUNfQVJBQklDICsgMTsgLy8zNCBOb3QgaW4gSUNVNEMKKworCSAgICAvLyBOdW1iZXIgb2YgY29udmVydGVyIHR5cGVzIGZvciB3aGljaCB3ZSBoYXZlIGNvbnZlcnNpb24gcm91dGluZXMuCisJICAgIC8vc3RhdGljIGZpbmFsIGludCBOVU1CRVJfT0ZfU1VQUE9SVEVEX0NPTlZFUlRFUl9UWVBFUyA9IE1BQ19IRUJSRVcgKyAxOworCX0KKwkKKwkvKioKKwkgKiBFbnVtIGZvciBzcGVjaWZ5aW5nIHdoaWNoIHBsYXRmb3JtIGEgY29udmVydGVyIElEIHJlZmVycyB0by4KKwkgKiBUaGUgdXNlIG9mIHBsYXRmb3JtL0NDU0lEIGlzIG5vdCByZWNvbW1lbmRlZC4gU2VlIG9wZW5DQ1NJRCgpLgorCSAqIEBkcmFmdCBJQ1UgMy42CisJICovCisJIHN0YXRpYyBmaW5hbCBjbGFzcyBVQ29udmVydGVyUGxhdGZvcm0geworCSAgICAgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisJICAgICBzdGF0aWMgZmluYWwgaW50IElCTSA9IDA7CisJfQorCisJc3RhdGljIFVDb252ZXJ0ZXJTaGFyZWREYXRhIF9NQkNTRGF0YSA9IG51bGwsIC8qX0xhdGluMURhdGEgPSBudWxsLCovIC8qX1VURjhEYXRhID0gbnVsbCwqLyAvKl9VVEYxNkJFRGF0YSA9IG51bGwsKi8gLypfVVRGMTZMRURhdGEgPSBudWxsLCovIC8qX1VURjMyQkVEYXRhID0gbnVsbCwqLyAvKl9VVEYzMkxFRGF0YSA9IG51bGwsKi8gIC8qX0lTTzIwMjJEYXRhID0gbnVsbCwqLyBfTE1CQ1NEYXRhMSA9IG51bGwsX0xNQkNTRGF0YTIgPSBudWxsLCBfTE1CQ1NEYXRhMyA9IG51bGwsIF9MTUJDU0RhdGE0ID0gbnVsbCwgX0xNQkNTRGF0YTUgPSBudWxsLCBfTE1CQ1NEYXRhNiA9IG51bGwsIF9MTUJDU0RhdGE4ID0gbnVsbCxfTE1CQ1NEYXRhMTEgPSBudWxsLF9MTUJDU0RhdGExNiA9IG51bGwsX0xNQkNTRGF0YTE3ID0gbnVsbCxfTE1CQ1NEYXRhMTggPSBudWxsLF9MTUJDU0RhdGExOSA9IG51bGwsIF9IWkRhdGEgPSBudWxsLCBfU0NTVURhdGEgPSBudWxsLCAvKl9JU0NJSURhdGEgPSBudWxsLCovIC8qX0FTQ0lJRGF0YSA9IG51bGwsKi8gX1VURjdEYXRhID0gbnVsbCwgX0JvY3UxRGF0YSA9IG51bGwsIC8qX1VURjE2RGF0YSA9IG51bGwsIF9VVEYzMkRhdGEgPSBudWxsLCovIF9DRVNVOERhdGEgPSBudWxsLCBfSU1BUERhdGEgPSBudWxsOworCXN0YXRpYyBVQ29udmVydGVyU2hhcmVkRGF0YVtdIGNvbnZlcnRlckRhdGE7CisvKglzdGF0aWMgY2xhc3MgY252TmFtZVR5cGVDbGFzcyB7CisJICBTdHJpbmcgbmFtZTsKKwkJaW50IHR5cGU7CisJCWNudk5hbWVUeXBlQ2xhc3MoU3RyaW5nIG5hbWVfLCBpbnQgdHlwZV8pIHsgbmFtZSA9IG5hbWVfOyB0eXBlID0gdHlwZV87IH0KKwl9IAorCQorCXN0YXRpYyBjbnZOYW1lVHlwZUNsYXNzIGNudk5hbWVUeXBlW107Ki8KKwkKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfVFlQRSA9ICJjbnYiOworICAgIC8vc3RhdGljIGZpbmFsIGludCBDTlZfREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0laRV9PRl9VQ09OVkVSVEVSX1NIQVJFRF9EQVRBID0gMTAwOworCisJc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VDUzIgPSAgICAgICAgICAgIDB4MDAwMEZGRkY7CisJc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VURiA9ICAgICAgICAgICAgIDB4MDAxMEZGRkY7CisJc3RhdGljIGZpbmFsIGludCBNQVhJTVVNX1VDUzQgPSAgICAgICAgICAgIDB4N0ZGRkZGRkY7CisJc3RhdGljIGZpbmFsIGludCBIQUxGX1NISUZUID0gICAgICAgICAgICAgIDEwOworCXN0YXRpYyBmaW5hbCBpbnQgSEFMRl9CQVNFID0gICAgICAgICAgICAgICAweDAwMTAwMDA7CisJc3RhdGljIGZpbmFsIGludCBIQUxGX01BU0sgPSAgICAgICAgICAgICAgIDB4M0ZGOworCXN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0hJR0hfU1RBUlQgPSAgICAweEQ4MDA7CisJc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfSElHSF9FTkQgPSAgICAgIDB4REJGRjsKKwlzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9MT1dfU1RBUlQgPSAgICAgMHhEQzAwOworCXN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0xPV19FTkQgPSAgICAgICAweERGRkY7CisJCisJLyogLVNVUlJPR0FURV9MT1dfU1RBUlQgKyBIQUxGX0JBU0UgKi8KKwlzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9MT1dfQkFTRSA9ICAgICAgOTIxNjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L1VDb252ZXJ0ZXJTdGF0aWNEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU3RhdGljRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ODM5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvY2hhcnNldC9VQ29udmVydGVyU3RhdGljRGF0YS5qYXZhCkBAIC0wLDAgKzEsNjEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5jaGFyc2V0OworCitmaW5hbCBjbGFzcyBVQ29udmVydGVyU3RhdGljRGF0YSB7ICAgLyogK29mZnNldDogc2l6ZSAqLworICAgIGludCBzdHJ1Y3RTaXplOyAgICAgICAgICAgICAgICAvKiArMDogNCBTaXplIG9mIHRoaXMgc3RydWN0dXJlICovCisgICAgCisgICAgU3RyaW5nIG5hbWU7IC8qICs0OiA2MCAgaW50ZXJuYWwgbmFtZSBvZiB0aGUgY29udmVydGVyLSBpbnZhcmlhbnQgY2hhcnMgKi8KKworICAgIGludCBjb2RlcGFnZTsgICAgICAgICAgICAgICAvKiArNjQ6IDQgY29kZXBhZ2UgIyAobm93IElCTS0kY29kZXBhZ2UpICovCisKKyAgICBieXRlIHBsYXRmb3JtOyAgICAgICAgICAgICAgICAvKiArNjg6IDEgcGxhdGZvcm0gb2YgdGhlIGNvbnZlcnRlciAob25seSBJQk0gbm93KSAqLworICAgIGJ5dGUgY29udmVyc2lvblR5cGU7ICAgICAgICAgIC8qICs2OTogMSBjb252ZXJzaW9uIHR5cGUgKi8KKworICAgIGJ5dGUgbWluQnl0ZXNQZXJDaGFyOyAgICAgICAgIC8qICs3MDogMSBNaW5pbXVtICMgYnl0ZXMgcGVyIGNoYXIgaW4gdGhpcyBjb2RlcGFnZSAqLworICAgIGJ5dGUgbWF4Qnl0ZXNQZXJDaGFyOyAgICAgICAgIC8qICs3MTogMSBNYXhpbXVtICMgYnl0ZXMgb3V0cHV0IHBlciBVQ2hhciBpbiB0aGlzIGNvZGVwYWdlICovCisKKyAgICBieXRlIHN1YkNoYXJbLypVQ05WX01BWF9TVUJDSEFSX0xFTiovXTsgLyogKzcyOiA0ICBbbm90ZTogIDQgYW5kIDggYnl0ZSBib3VuZGFyeV0gKi8KKyAgICBieXRlIHN1YkNoYXJMZW47ICAgICAgICAgICAgICAvKiArNzY6IDEgKi8KKyAgICAKKyAgICBieXRlIGhhc1RvVW5pY29kZUZhbGxiYWNrOyAgIC8qICs3NzogMSBVQm9vbCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFVCb29sIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIHBsYXRmb3JtICovCisgICAgYnl0ZSBoYXNGcm9tVW5pY29kZUZhbGxiYWNrOyAvKiArNzg6IDEgKi8KKyAgICBzaG9ydCB1bmljb2RlTWFzazsgICAgICAgICAgICAvKiArNzk6IDEgIGJpdCAwOiBoYXMgc3VwcGxlbWVudGFyeSAgYml0IDE6IGhhcyBzaW5nbGUgc3Vycm9nYXRlcyAqLworICAgIGJ5dGUgc3ViQ2hhcjE7ICAgICAgICAgICAgICAgLyogKzgwOiAxICBzaW5nbGUtYnl0ZSBzdWJzdGl0dXRpb24gY2hhcmFjdGVyIGZvciBJQk0gTUJDUyAoMCBpZiBub25lKSAqLworICAgIGJ5dGUgcmVzZXJ2ZWRbLyoxOSovXTsgICAgICAgICAgIC8qICs4MTogMTkgdG8gcm91bmQgb3V0IHRoZSBzdHJ1Y3R1cmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRvdGFsIHNpemU6IDEwMCAqLworICAgIHB1YmxpYyBVQ29udmVydGVyU3RhdGljRGF0YSgpCisgICAgeworICAgICAgICBzdWJDaGFyID0gbmV3IGJ5dGVbVUNvbnZlcnRlckNvbnN0YW50cy5NQVhfU1VCQ0hBUl9MRU5dOworICAgICAgICByZXNlcnZlZCA9IG5ldyBieXRlWzE5XTsKKyAgICB9CisKKy8qICAgIHB1YmxpYyBVQ29udmVydGVyU3RhdGljRGF0YShpbnQgc3RydWN0U2l6ZV8sIFN0cmluZyBuYW1lXywgaW50IGNvZGVwYWdlXywgYnl0ZSBwbGF0Zm9ybV8sIGJ5dGUgY29udmVyc2lvblR5cGVfLCBieXRlIG1pbkJ5dGVzUGVyQ2hhcl8sIGJ5dGUgbWF4Qnl0ZXNQZXJDaGFyXywgYnl0ZVtdIHN1YkNoYXJfLCBieXRlIHN1YkNoYXJMZW5fLCBieXRlIGhhc1RvVW5pY29kZUZhbGxiYWNrXywgYnl0ZSBoYXNGcm9tVW5pY29kZUZhbGxiYWNrXywgc2hvcnQgdW5pY29kZU1hc2tfLCBieXRlIHN1YkNoYXIxXywgYnl0ZVtdIHJlc2VydmVkXykKKyAgICB7CisgICAgICAgIHN0cnVjdFNpemUgPSBzdHJ1Y3RTaXplXzsKKyAgICAgICAgbmFtZSA9IG5hbWVfOworICAgICAgICBjb2RlcGFnZSA9IGNvZGVwYWdlXzsKKyAgICAgICAgcGxhdGZvcm0gPSBwbGF0Zm9ybV87CisgICAgICAgIGNvbnZlcnNpb25UeXBlID0gY29udmVyc2lvblR5cGVfOworICAgICAgICBtaW5CeXRlc1BlckNoYXIgPSBtaW5CeXRlc1BlckNoYXJfOworICAgICAgICBtYXhCeXRlc1BlckNoYXIgPSBtYXhCeXRlc1BlckNoYXJfOworICAgICAgICBzdWJDaGFyID0gbmV3IGJ5dGVbVUNvbnZlcnRlckNvbnN0YW50cy5NQVhfU1VCQ0hBUl9MRU5dOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1YkNoYXJfLCAwLCBzdWJDaGFyLCAwLCAoc3ViQ2hhci5sZW5ndGggPCBzdWJDaGFyXy5sZW5ndGg/IHN1YkNoYXIubGVuZ3RoIDogc3ViQ2hhcl8ubGVuZ3RoKSk7CisgICAgICAgIHN1YkNoYXJMZW4gPSBzdWJDaGFyTGVuXzsKKyAgICAgICAgaGFzVG9Vbmljb2RlRmFsbGJhY2sgPSBoYXNUb1VuaWNvZGVGYWxsYmFja187CisgICAgICAgIGhhc0Zyb21Vbmljb2RlRmFsbGJhY2sgPSBoYXNGcm9tVW5pY29kZUZhbGxiYWNrXzsKKyAgICAgICAgdW5pY29kZU1hc2sgPSB1bmljb2RlTWFza187CisgICAgICAgIHN1YkNoYXIxID0gc3ViQ2hhcjFfOworICAgICAgICByZXNlcnZlZCA9IG5ldyBieXRlWzE5XTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShyZXNlcnZlZF8sIDAsIHJlc2VydmVkLCAwLCAocmVzZXJ2ZWQubGVuZ3RoIDwgcmVzZXJ2ZWRfLmxlbmd0aD8gcmVzZXJ2ZWQubGVuZ3RoIDogcmVzZXJ2ZWRfLmxlbmd0aCkpOworICAgIH0qLworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgc2l6ZW9mVUNvbnZlcnRlclN0YXRpY0RhdGEgPSAxMDA7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9jaGFyc2V0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWU4N2VmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2NoYXJzZXQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKworPHRpdGxlPkM6SUNVNEogLmNoYXJzZXQgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+RW5oYW5jZWQgY2hhcnNldCBjb252ZXJzaW9uIHN1cHBvcnQuPC9wPgorQ2hhcnNldElDVSwgQ2hhcnNldFByb3ZpZGVySUNVLCBDaGFyc2V0RW5jb2RlcklDVSBhbmQgQ2hhcnNldERlY29kZXJJQ1UgIHByb3ZpZGUgY29udmVyc2lvbiBzZXJ2aWNlcyBmb3IgbWFueSBjaGFyc2V0cy4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X05PTl9JR05PUkFCTEVfU1RVQi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9OT05fSUdOT1JBQkxFX1NUVUIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MDAwNjI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfTk9OX0lHTk9SQUJMRV9TVFVCLnR4dApAQCAtMCwwICsxLDQxMDMgQEAKKzAzMzQgMDVBODsKKzAzMzQgMDZFNzsKKzAzMzQgMUQxODA7CiswNTlFIDAzMzQ7CiswNkQ5IDAzMzQ7CisxRDE2OCAwMzM0OworMDMzMiAwMzM0OworMDMzNCAwMzA4IDAzMDE7CiswMzE1IDAzMzQ7CiswMzI0IDAzMzQ7CiswMzNBIDAzMzQ7CiswMzRFIDAzMzQ7CiswMzVFIDAzMzQ7CiswNUIwIDAzMzQ7CiswMzM0IEZCMUU7CiswMzM0IDA2NTk7CiswMzM0IDA3Mzc7CiswMzM0IDA3NDY7CiswMzM0IDEwQTBEOworMDMzNCAxN0REOworMDMzNCAyMEQ1OworMjBFQiAwMzM0OworMDA4NSAwMDYyOworMjAwMSAwMDNGOworMjAwMiAwMDQxOworMjAyRiAwMDYyOworMDM4NCAwMDNGOworMDBBRiAwMDYxOworRkU0QyAwMDYyOworMUZFRCAwMDNGOworMUZDRSAwMzM0OworMUZDRSAwMDYyOworMUZGRSAwMDYyOworRkYzRiAwMDYxOworMzA5QiAwMDNGOworMDU4QSAwMDNGOworRkUzMiAwMDIxOworMjA1MyAwMDNGOworRkY2NSAwMDYxOworMDYwQyAwMDNGOworRkU1MSAwMDIxOworMDM3RSAwMDIxOworMjA0RiAwMDNGOworMDU4OSAwMDNGOworMDcwNyAwMDNGOworMTM2NiAwMDNGOworMTZFQyAwMDNGOworMDAxQSAwMDIxOworMDA5OCAwMDIxOworMDVBNCAwMDIxOworMDZEQiAwMDIxOworMjAwQiAwMDIxOworRkREMyAwMDIxOworMUQxNjcgMDAyMTsKKzFEMThBIDAwMjE7CitCRkZGRiAwMDIxOworRTAwMzggMDAyMTsKK0UwMDU2IDAwMjE7CitFMDA3NCAwMDIxOworRTAxMTIgMDAyMTsKK0UwMTMwIDAwMjE7CitFMDE0RSAwMDIxOworRTAxNkMgMDAyMTsKK0UwMThBIDAwMjE7CitFMDFBOCAwMDIxOworRTAxQzYgMDAyMTsKK0UwMUU0IDAwMjE7CiswMzQ0IDAwMjE7CiswMzIzIDAwMjE7CiswMzRBIDAwMjE7CiswNDgzIDAwMjE7CitGRTc2IDAwMjE7CiswNjVCIDAwMjE7CiswNzQ4IDAwMjE7CiswQzAxIDAwMjE7CiswRUNEIDAwMjE7CiszMDJGIDAwMjE7CisyMEU5IDAwMjE7CitGRjAxIDAwNjI7CiswMDExIDAwM0Y7CiswMDhGIDAwM0Y7CiswNTlCIDAwM0Y7CiswNjEyIDAwM0Y7CiswRjgyIDAwM0Y7CitEODAxIDAwM0Y7CitGRTczIDAwM0Y7CisxRDE3RiAwMDNGOworN0ZGRkUgMDAzRjsKK0UwMDJGIDAwM0Y7CitFMDA0RCAwMDNGOworRTAwNkIgMDAzRjsKK0UwMTA5IDAwM0Y7CitFMDEyNyAwMDNGOworRTAxNDUgMDAzRjsKK0UwMTYzIDAwM0Y7CitFMDE4MSAwMDNGOworRTAxOUYgMDAzRjsKK0UwMUJEIDAwM0Y7CitFMDFEQiAwMDNGOworMDM0MSAwMDNGOworMDMxQSAwMDNGOworMDMzQyAwMDNGOworMDM2MCAwMDNGOworMDY0QiAwMDNGOworRkU3RSAwMDNGOworMDczRiAwMDNGOworMEFCQyAwMDNGOworMEU0QSAwMDNGOworMTdERCAwMDNGOworMjBFMCAwMDNGOworMDAzRiAwMDYxOworMDcwOSAwMDQxOworRkU1MiAwMDIxOworMjAyNCAwMDQxOworMTM2MiAwMDQxOworMzAwMiAwMDNGOworMDk2NSAwMDQxOworMTdENSAwMDQxOworMTM2OCAwMDQxOworMjA1OSAwMDQxOworMkNGQyAwMDQxOworMTAzRDAgMDA0MTsKKzIwMUIgMDA0MTsKKzIwMUQgMDA0MTsKKzAwQUIgMDA0MTsKKzI0N0UgMDAzRjsKKzI0ODQgMDAzRjsKKzI0NzcgMDAzRjsKKzAwMjggMDA0MTsKKzI0OUUgMDA0MTsKKzI0QTQgMDA0MTsKKzI0QUEgMDA0MTsKKzI0QjAgMDA0MTsKKzMyMDAgMDA0MTsKKzMyMDMgMDA0MTsKKzMyMDYgMDA0MTsKKzMyMDggMDA0MTsKKzMyMTggMDA0MTsKKzMyMUIgMDA0MTsKKzMyMjQgMDA0MTsKKzMyMzggMDA0MTsKKzMyMkYgMDA0MTsKKzMyMzEgMDA0MTsKKzMyMzcgMDA0MTsKKzMyMkUgMDA0MTsKKzIwOEUgMDA2MjsKK0ZGM0QgMDA2MjsKKzAwN0QgMDA2MTsKKzBGM0QgMDA0MTsKKzI5RkQgMDA0MTsKKzI5ODYgMDA2MjsKKzI5OEMgMDA0MTsKKzI5OTIgMDA0MTsKKzI5OTggMDA0MTsKKzJFMEEgMDA0MTsKKzIzMjkgMDA0MTsKKzMwMEEgMDA2MjsKKzMwMEQgMDAzRjsKKzMwMEYgMDA2MjsKK0ZFNUQgMDA2MTsKKzMwMTYgMDA2MjsKKzMwMUIgMDA0MTsKKzAwQTkgMDA0MTsKK0ZGMEEgMDA2MTsKKzAwMkYgMDA2MjsKK0ZGMDYgMDA2MTsKK0ZGMDMgMDA2MjsKKzIwMzEgMDA0MTsKKzIwMjcgMDA0MTsKKzIwMzQgMDA2MjsKKzMwM0QgMDA0MTsKKzIwNTAgMDA0MTsKKzJFMDcgMDA0MTsKKzJFMTEgMDA0MTsKKzA1NUEgMDA0MTsKKzA1QzYgMDA0MTsKKzA3MEQgMDA0MTsKKzBFNUIgMDA0MTsKKzBGMDkgMDA0MTsKKzBGMEQgMDA0MTsKKzBGODUgMDA0MTsKKzE3RDcgMDA0MTsKKzEwQTUxIDAwNDE7CiswMzc0IDAwM0Y7CiswMkM0IDAwNDE7CiswMkNBIDAwNDE7CiswMkQyIDAwNDE7CiswMkRFIDAwNDE7CiswMkU5IDAwNDE7CiswMkYwIDAwNDE7CiswMkY2IDAwNDE7CiswMkZDIDAwNDE7CisxMzkyIDAwNDE7CisxMzk4IDAwNDE7CitBNzA0IDAwNDE7CitBNzBBIDAwNDE7CitBNzEwIDAwNDE7CitBNzE2IDAwNDE7CiswNjBGIDAwNDE7CiswQkY0IDAwNDE7CitBODI4IDAwNDE7CiswRjAyIDAwNDE7CiswRjFBIDAwNDE7CiswRjM0IDAwNDE7CiswRkJGIDAwNDE7CiswRkM1IDAwNDE7CiswRkNDIDAwNDE7CisxOUU0IDAwNDE7CisxOUVBIDAwNDE7CisxOUYwIDAwNDE7CisxOUY2IDAwNDE7CisxOUZDIDAwNDE7CisyMTE0IDAwNDE7CisyMTI1IDAwNDE7CisyMTQxIDAwNDE7CitGRkU5IDAwMjE7CisyMTlCIDAwNjI7CisyMUFFIDAwNDE7CisyMTlDIDAwNjE7CisyMUEyIDAwNjE7CisyMUE4IDAwNjE7CisyMUFGIDAwNjE7CisyMUI1IDAwNjE7CisyMUJCIDAwNjE7CisyMUMxIDAwNjE7CisyMUM3IDAwNjE7CisyMUQwIDAwMjE7CisyMUQzIDAwNDE7CisyMUQ4IDAwM0Y7CisyMURFIDAwM0Y7CisyMUU0IDAwM0Y7CisyMUVBIDAwM0Y7CisyMUYwIDAwM0Y7CisyMUY2IDAwM0Y7CisyMUZDIDAwM0Y7CisxRDZEQiAwMDIxOworMjIwNCAwMzM0OworMUQ3MzUgMDAzRjsKKzIyMDkgMDA0MTsKKzIyMEUgMDAyMTsKKzIwOEEgMDAyMTsKKzAwRjcgMDAyMTsKK0ZFNjQgMDA2MjsKK0ZFNjYgMDA2MTsKKzIyNkYgMDA2MTsKKzAwQTYgMDA2MTsKKzIwN0IgMDA0MTsKKzIyMTcgMDA2MjsKKzIyMUQgMDA2MjsKKzIyMjMgMDAzRjsKKzIyMjkgMDAyMTsKKzIyMkUgMDAyMTsKKzIyMzQgMDAyMTsKKzIyM0EgMDAyMTsKKzIyM0UgMDA0MTsKKzIyNDcgMDMzNDsKKzIyNEEgMDA2MTsKKzIyNEYgMDAyMTsKKzIyNTUgMDAyMTsKKzIyNUIgMDAyMTsKKzIyNjIgMDAzRjsKKzIyNjUgMDA2MTsKKzIyNkEgMDA2MjsKKzIyNzMgMDA0MTsKKzIyODAgMDMzNDsKKzIyN0MgMDA0MTsKKzIyODQgMDAyMTsKKzIyODggMDA0MTsKKzIyOEQgMDAyMTsKKzIyOTEgMDA2MjsKKzIyOTYgMDAzRjsKKzIyOUMgMDAzRjsKKzIyQUMgMDMzNDsKKzIyQTYgMDA2MjsKKzIyQUEgMDAyMTsKKzIyRUEgMDAyMTsKKzIyRUMgMDA0MTsKKzIyQjkgMDAyMTsKKzIyQkYgMDAyMTsKKzIyQzUgMDAyMTsKKzIyQ0IgMDAyMTsKKzIyRDEgMDAyMTsKKzIyRDcgMDAyMTsKKzIyREQgMDAyMTsKKzIyRTcgMDAyMTsKKzIyRjEgMDAyMTsKKzIyRjcgMDAyMTsKKzIyRkQgMDAyMTsKKzIzMDMgMDAyMTsKKzIzMDkgMDAyMTsKKzIzMEYgMDAyMTsKKzIzMTUgMDAyMTsKKzIzMUIgMDAyMTsKKzIzMjEgMDAyMTsKKzIzMjcgMDAyMTsKKzIzMkYgMDAyMTsKKzIzMzUgMDAyMTsKKzIzM0IgMDAyMTsKKzIzNDEgMDAyMTsKKzIzNDcgMDAyMTsKKzIzNEQgMDAyMTsKKzIzNTMgMDAyMTsKKzIzNTkgMDAyMTsKKzIzNUYgMDAyMTsKKzIzNjUgMDAyMTsKKzIzNkIgMDAyMTsKKzIzNzEgMDAyMTsKKzIzNzcgMDAyMTsKKzIzN0QgMDAyMTsKKzIzODMgMDAyMTsKKzIzODkgMDAyMTsKKzIzOEYgMDAyMTsKKzIzOTUgMDAyMTsKKzIzOUIgMDAyMTsKKzIzQTEgMDAyMTsKKzIzQTcgMDAyMTsKKzIzQUQgMDAyMTsKKzIzQjMgMDAyMTsKKzIzQjkgMDAyMTsKKzIzQkYgMDAyMTsKKzIzQzUgMDAyMTsKKzIzQ0IgMDAyMTsKKzIzRDEgMDAyMTsKKzIzRDcgMDAyMTsKKzI0MDEgMDAyMTsKKzI0MDcgMDAyMTsKKzI0MEQgMDAyMTsKKzI0MTMgMDAyMTsKKzI0MTkgMDAyMTsKKzI0MUYgMDAyMTsKKzI0MjUgMDAyMTsKKzI0NDQgMDAyMTsKKzI0NEEgMDAyMTsKKzI1MDQgMDAyMTsKKzI1MEEgMDAyMTsKKzI1MTAgMDAyMTsKKzI1MTYgMDAyMTsKKzI1MUMgMDAyMTsKKzI1MjIgMDAyMTsKKzI1MjggMDAyMTsKKzI1MkUgMDAyMTsKKzI1MzQgMDAyMTsKKzI1M0EgMDAyMTsKKzI1NDAgMDAyMTsKKzI1NDYgMDAyMTsKKzI1NEMgMDAyMTsKKzI1NTIgMDAyMTsKKzI1NTggMDAyMTsKKzI1NUUgMDAyMTsKKzI1NjQgMDAyMTsKKzI1NkEgMDAyMTsKKzI1NzAgMDAyMTsKKzI1NzYgMDAyMTsKKzI1N0MgMDAyMTsKKzI1ODIgMDAyMTsKKzI1ODggMDAyMTsKKzI1OEUgMDAyMTsKKzI1OTQgMDAyMTsKKzI1OUEgMDAyMTsKKzI1QTAgMDAyMTsKKzI1QTUgMDAyMTsKKzI1QUIgMDAyMTsKKzI1QjEgMDAyMTsKKzI1QjcgMDAyMTsKKzI1QkQgMDAyMTsKKzI1QzMgMDAyMTsKKzI1QzkgMDAyMTsKKzI1Q0UgMDAyMTsKKzI1RDQgMDAyMTsKKzI1REEgMDAyMTsKKzI1RTAgMDAyMTsKKzI1RTYgMDAyMTsKKzI1RUMgMDAyMTsKKzI1RjIgMDAyMTsKKzI1RjggMDAyMTsKKzI1RkUgMDAyMTsKKzI2MDQgMDAyMTsKKzI2MEEgMDAyMTsKKzI2MTAgMDAyMTsKKzI2MTYgMDAyMTsKKzI2MUMgMDAyMTsKKzI2MjIgMDAyMTsKKzI2MjggMDAyMTsKKzI2MkUgMDAyMTsKKzI2M0MgMDAyMTsKKzI2NDIgMDAyMTsKKzI2NDggMDAyMTsKKzI2NEUgMDAyMTsKKzI2NTQgMDAyMTsKKzI2NUEgMDAyMTsKKzI2NjAgMDAyMTsKKzI2NjYgMDAyMTsKKzI2NkMgMDAyMTsKKzI2NzUgMDAyMTsKKzI2N0IgMDAyMTsKKzI2ODEgMDAyMTsKKzI2ODcgMDAyMTsKKzI2OTMgMDAyMTsKKzI2OTkgMDAyMTsKKzI2QTIgMDAyMTsKKzI2QTggMDAyMTsKKzI2QUUgMDAyMTsKKzI3MDMgMDAyMTsKKzI3MEMgMDAyMTsKKzI3MTIgMDAyMTsKKzI3MTggMDAyMTsKKzI3MUUgMDAyMTsKKzI3MjQgMDAyMTsKKzI3MkIgMDAyMTsKKzI3MzEgMDAyMTsKKzI3MzcgMDAyMTsKKzI3M0QgMDAyMTsKKzI3NDMgMDAyMTsKKzI3NDkgMDAyMTsKKzI3NTEgMDAyMTsKKzI3NUIgMDAyMTsKKzI3NjMgMDAyMTsKKzI3NjkgMDAyMTsKKzI3NkYgMDAyMTsKKzI3NzUgMDAyMTsKKzI3OUMgMDAyMTsKKzI3QTIgMDAyMTsKKzI3QTggMDAyMTsKKzI3QUUgMDAyMTsKKzI3QjUgMDAyMTsKKzI3QkIgMDAyMTsKKzI3QzIgMDAyMTsKKzI3RDEgMDAyMTsKKzI3RDcgMDAyMTsKKzI3REQgMDAyMTsKKzI3RTMgMDAyMTsKKzI3RTkgMDAyMTsKKzI3RjMgMDAyMTsKKzI3RjkgMDAyMTsKKzI3RkYgMDAyMTsKKzI5MDUgMDAyMTsKKzI5MEIgMDAyMTsKKzI5MTEgMDAyMTsKKzI5MTcgMDAyMTsKKzI5MUQgMDAyMTsKKzI5MjMgMDAyMTsKKzI5MjkgMDAyMTsKKzI5MkYgMDAyMTsKKzI5MzUgMDAyMTsKKzI5M0IgMDAyMTsKKzI5NDEgMDAyMTsKKzI5NDcgMDAyMTsKKzI5NEQgMDAyMTsKKzI5NTMgMDAyMTsKKzI5NTkgMDAyMTsKKzI5NUYgMDAyMTsKKzI5NjUgMDAyMTsKKzI5NkIgMDAyMTsKKzI5NzEgMDAyMTsKKzI5NzcgMDAyMTsKKzI5N0QgMDAyMTsKKzI5OTkgMDAyMTsKKzI5OUYgMDAyMTsKKzI5QTUgMDAyMTsKKzI5QUIgMDAyMTsKKzI5QjEgMDAyMTsKKzI5QjcgMDAyMTsKKzI5QkQgMDAyMTsKKzI5QzMgMDAyMTsKKzI5QzkgMDAyMTsKKzI5Q0YgMDAyMTsKKzI5RDUgMDAyMTsKKzI5REIgMDAyMTsKKzI5RTEgMDAyMTsKKzI5RTcgMDAyMTsKKzI5RUQgMDAyMTsKKzI5RjMgMDAyMTsKKzI5RjkgMDAyMTsKKzJBMDEgMDAyMTsKKzJBMDcgMDAyMTsKKzJBMEUgMDAyMTsKKzJBMTQgMDAyMTsKKzJBMUEgMDAyMTsKKzJBMjAgMDAyMTsKKzJBMjYgMDAyMTsKKzJBMkMgMDAyMTsKKzJBMzIgMDAyMTsKKzJBMzggMDAyMTsKKzJBM0UgMDAyMTsKKzJBNDQgMDAyMTsKKzJBNEEgMDAyMTsKKzJBNTAgMDAyMTsKKzJBNTYgMDAyMTsKKzJBNUMgMDAyMTsKKzJBNjIgMDAyMTsKKzJBNjggMDAyMTsKKzJBNkUgMDAyMTsKKzJBNzcgMDAyMTsKKzJBN0QgMDAyMTsKKzJBODMgMDAyMTsKKzJBODkgMDAyMTsKKzJBOEYgMDAyMTsKKzJBOTUgMDAyMTsKKzJBOUIgMDAyMTsKKzJBQTEgMDAyMTsKKzJBQTcgMDAyMTsKKzJBQUQgMDAyMTsKKzJBQjMgMDAyMTsKKzJBQjkgMDAyMTsKKzJBQkYgMDAyMTsKKzJBQzUgMDAyMTsKKzJBQ0IgMDAyMTsKKzJBRDEgMDAyMTsKKzJBRDcgMDAyMTsKKzJBREMgMDAzRjsKKzJBRTIgMDA0MTsKKzJBRTggMDA0MTsKKzJBRUUgMDA0MTsKKzJBRjQgMDA0MTsKKzJBRkEgMDA0MTsKKzJCMDAgMDA0MTsKKzJCMDYgMDA0MTsKKzJCMEMgMDA0MTsKKzJCMTIgMDA0MTsKKzJDRTkgMDA0MTsKKzI4MDQgMDA0MTsKKzI4MEEgMDA0MTsKKzI4MTAgMDA0MTsKKzI4MTYgMDA0MTsKKzI4MUMgMDA0MTsKKzI4MjIgMDA0MTsKKzI4MjggMDA0MTsKKzI4MkUgMDA0MTsKKzI4MzQgMDA0MTsKKzI4M0EgMDA0MTsKKzI4NDAgMDA0MTsKKzI4NDYgMDA0MTsKKzI4NEMgMDA0MTsKKzI4NTIgMDA0MTsKKzI4NTggMDA0MTsKKzI4NUUgMDA0MTsKKzI4NjQgMDA0MTsKKzI4NkEgMDA0MTsKKzI4NzAgMDA0MTsKKzI4NzYgMDA0MTsKKzI4N0MgMDA0MTsKKzI4ODIgMDA0MTsKKzI4ODggMDA0MTsKKzI4OEUgMDA0MTsKKzI4OTQgMDA0MTsKKzI4OUEgMDA0MTsKKzI4QTAgMDA0MTsKKzI4QTYgMDA0MTsKKzI4QUMgMDA0MTsKKzI4QjIgMDA0MTsKKzI4QjggMDA0MTsKKzI4QkUgMDA0MTsKKzI4QzQgMDA0MTsKKzI4Q0EgMDA0MTsKKzI4RDAgMDA0MTsKKzI4RDYgMDA0MTsKKzI4REMgMDA0MTsKKzI4RTIgMDA0MTsKKzI4RTggMDA0MTsKKzI4RUUgMDA0MTsKKzI4RjQgMDA0MTsKKzI4RkEgMDA0MTsKKzI2OEEgMDA0MTsKKzI2MzAgMDA0MTsKKzI2MzYgMDA0MTsKKzREQzQgMDA0MTsKKzREQ0EgMDA0MTsKKzRERDAgMDA0MTsKKzRERDYgMDA0MTsKKzREREMgMDA0MTsKKzRERTIgMDA0MTsKKzRERTggMDA0MTsKKzRERUUgMDA0MTsKKzRERjQgMDA0MTsKKzRERkEgMDA0MTsKKzFEMzAwIDAwNDE7CisxRDMwNiAwMDQxOworMUQzMEMgMDA0MTsKKzFEMzEyIDAwNDE7CisxRDMxOCAwMDQxOworMUQzMUUgMDA0MTsKKzFEMzI0IDAwNDE7CisxRDMyQSAwMDQxOworMUQzMzAgMDA0MTsKKzFEMzM2IDAwNDE7CisxRDMzQyAwMDQxOworMUQzNDIgMDA0MTsKKzFEMzQ4IDAwNDE7CisxRDM0RSAwMDQxOworMUQzNTQgMDA0MTsKK0E0OTMgMDA0MTsKK0E0OTkgMDA0MTsKK0E0OUYgMDA0MTsKK0E0QTUgMDA0MTsKK0E0QUIgMDA0MTsKK0E0QjEgMDA0MTsKK0E0QjcgMDA0MTsKK0E0QkQgMDA0MTsKK0E0QzMgMDA0MTsKKzEwMTM5IDAwNDE7CisxMDEzRiAwMDQxOworMTAxN0UgMDA0MTsKKzEwMTg0IDAwNDE7CisxRDAwMCAwMDQxOworMUQwMDYgMDA0MTsKKzFEMDBDIDAwNDE7CisxRDAxMiAwMDQxOworMUQwMTggMDA0MTsKKzFEMDFFIDAwNDE7CisxRDAyNCAwMDQxOworMUQwMkEgMDA0MTsKKzFEMDMwIDAwNDE7CisxRDAzNiAwMDQxOworMUQwM0MgMDA0MTsKKzFEMDQyIDAwNDE7CisxRDA0OCAwMDQxOworMUQwNEUgMDA0MTsKKzFEMDU0IDAwNDE7CisxRDA1QSAwMDQxOworMUQwNjAgMDA0MTsKKzFEMDY2IDAwNDE7CisxRDA2QyAwMDQxOworMUQwNzIgMDA0MTsKKzFEMDc4IDAwNDE7CisxRDA3RSAwMDQxOworMUQwODQgMDA0MTsKKzFEMDhBIDAwNDE7CisxRDA5MCAwMDQxOworMUQwOTYgMDA0MTsKKzFEMDlDIDAwNDE7CisxRDBBMiAwMDQxOworMUQwQTggMDA0MTsKKzFEMEFFIDAwNDE7CisxRDBCNCAwMDQxOworMUQwQkEgMDA0MTsKKzFEMEMwIDAwNDE7CisxRDBDNiAwMDQxOworMUQwQ0MgMDA0MTsKKzFEMEQyIDAwNDE7CisxRDBEOCAwMDQxOworMUQwREUgMDA0MTsKKzFEMEU0IDAwNDE7CisxRDBFQSAwMDQxOworMUQwRjAgMDA0MTsKKzFEMTAwIDAwNDE7CisxRDEwNiAwMDQxOworMUQxMEMgMDA0MTsKKzFEMTEyIDAwNDE7CisxRDExOCAwMDQxOworMUQxMUUgMDA0MTsKKzFEMTI0IDAwNDE7CisxRDEyQSAwMDQxOworMUQxMzAgMDA0MTsKKzFEMTM2IDAwNDE7CisxRDEzQyAwMDQxOworMUQxNDIgMDA0MTsKKzFEMTQ4IDAwNDE7CisxRDE0RSAwMDQxOworMUQxNTQgMDA0MTsKKzFEMTU4IDFEMTY1IDAzMzQ7CisxRDE2MyAwMDNGOworMUQxNUEgMDA2MTsKKzFEMTZDIDAwNjE7CisxRDE4RiAwMDYxOworMUQxOTUgMDA2MTsKKzFEMTlCIDAwNjE7CisxRDFBMSAwMDYxOworMUQxQTcgMDA2MTsKKzFEMUIxIDAwNjE7CisxRDFCNyAwMDYxOworMUQxQkYgMDA2MTsKKzFEMUJFIDAwNjE7CisxRDFDNSAwMDIxOworMUQxQ0IgMDAyMTsKKzFEMUQxIDAwMjE7CisxRDFENyAwMDIxOworMUQxREQgMDAyMTsKKzFEMjA1IDAwMjE7CisxRDIwQiAwMDIxOworMUQyMTEgMDAyMTsKKzFEMjE3IDAwMjE7CisxRDIxRCAwMDIxOworMUQyMjMgMDAyMTsKKzFEMjI5IDAwMjE7CisxRDIyRiAwMDIxOworMUQyMzUgMDAyMTsKKzFEMjNCIDAwMjE7CisxRDI0MSAwMDIxOworMkZGNCAwMDIxOworMkZGQSAwMDIxOworMzFDNCAwMDIxOworMzFDQSAwMDIxOworMzAwNCAwMDIxOworMzAzRSAwMDIxOworRkZGRCAwMDIxOworMTM3MiAwMDIxOworMTM3OCAwMDIxOworMjE4MSAwMDIxOworMTAxMTAgMDAyMTsKKzEwMTE2IDAwMjE7CisxMDExQyAwMDIxOworMTAxMjIgMDAyMTsKKzEwMTI4IDAwMjE7CisxMDEyRSAwMDIxOworMTAxNDAgMDAyMTsKKzEwMTQ5IDAwMjE7CisxMDE1MCAwMDIxOworMTAxNTYgMDAyMTsKKzEwMTY0IDAwMjE7CisxMDE2QSAwMDIxOworMTAxNzAgMDAyMTsKKzEwMTc3IDAwMjE7CisxMEE0NSAwMDIxOworMEVDNiAwMDIxOworMzAzMyAwMDQxOworRkY3MCAwMDQxOworRkZFMCAwMDYyOworMDBBNSAwMDYxOworMEJGOSAwMDYyOworMjBBMyAwMDYyOworRkZFNiAwMDYyOworMjBBRiAwMDYyOworMjBCNSAwMDYyOworMTA0MCAwMDIxOworMTlEMCAwMDNGOworMjA3MCAwMDQxOworMTlEMCAwMDQxOworMjA3MCAwMDYyOworMzM1OCAwMDYyOworMTlEMSAwMDIxOworMDBCOSAwMDNGOworMTAxNTkgMDAzRjsKKzIxNTUgMDA0MTsKKzI0NjkgMDA2MTsKKzI0NkEgMDAyMTsKKzI0NkIgMDAyMTsKKzI0NkMgMDAyMTsKKzI0OTUgMDAzRjsKKzI0RUYgMDA2MTsKKzMzRUYgMDAyMTsKKzMzNjkgMDAyMTsKKzI0NzIgMDAyMTsKKzFEN0Q5IDAwNjE7CisxMDRBMSAwMDQxOworMEYyMSAwMDQxOworRkYxMSAwMDYyOworMEVEMSAwMDYyOworMzM1OSAwMDYyOworMTlEMiAwMDIxOworMjA4MiAwMDNGOworMTAxNUUgMDAzRjsKKzI0RjQgMDA0MTsKKzMyNTIgMDA2MTsKKzMyNTQgMDA2MTsKKzMzRjkgMDA2MTsKKzMzRkMgMDA2MTsKKzIwODIgMDA0MTsKKzE5NDggMDA0MTsKKzEwMTVFIDAwNDE7CiswQzY4IDAwNjI7CiszMkMxIDAwNjI7CiswQkU5IDAwMjE7CisyMDgzIDAwM0Y7CisyNDhBIDAwNjE7CiszMjVCIDAwNjE7CiszMkIxIDAwNjE7CisxRDdFRiAwMDQxOworMEE2OSAwMDYxOworMTdGMyAwMDYxOworMDlGNiAwMDYyOworMzJDMiAwMDYyOworMEJFQSAwMDIxOworMjA4NCAwMDNGOworMjQ4QiAwMDYxOworMzJCOSAwMDYxOworRkYxNCAwMDYxOworMTM2QyAwMDYxOworMEVENCAwMDYxOworMjc4MyAwMDYyOworMTBBNDMgMDA2MjsKKzA2NjUgMDAyMTsKKzEwMzIxIDAwMjE7CiswRTU1IDAwM0Y7CisyMTVEIDAwNjI7CisyMDc1IDAwNjE7CisxOTRCIDAwNjE7CisxMDE0OCAwMDQxOworMEM2QiAwMDYyOworMzJDNCAwMDYyOworMEM2QyAwMDIxOworMDZGNiAwMDNGOworMDAzNiAwMDQxOworMDZGNiAwMDQxOworMEVENiAwMDQxOworMjA4NiAwMDYyOworMzNFNSAwMDYyOworMDlFRCAwMDIxOworMjc4NiAwMDNGOworMjQ4RSAwMDNGOworMjc3QyAwMDQxOworMENFRCAwMDQxOworMUQ3REYgMDA2MjsKKzEwNDcgMDA2MjsKKzI3N0QgMDAyMTsKKzAwMzggMDAzRjsKKzBFRDggMDAzRjsKKzI3N0QgMDA2MTsKKzBCRUUgMDA2MTsKKzEwMTBFIDAwNjE7CisxOUQ4IDAwNjI7CisxRDdFQiAwMDIxOworMTdFOSAwMDIxOworMENFRiAwMDNGOworMUQ3RUIgMDA0MTsKKzBBNkYgMDA0MTsKKzE3RjkgMDA0MTsKKzBCRUYgMDA2MjsKKzMzNjEgMDA2MjsKKzAwODEgMDA2MTsKKzAzNEYgMDA2MTsKKzA1QUMgMDA2MTsKKzA2RTMgMDA2MTsKKzIwMkQgMDA2MTsKK0ZFMDUgMDA2MTsKKzFEMTcyIDAwNjE7CisxRDI0NCAwMDYxOworRTAwMjIgMDA2MTsKK0UwMDQwIDAwNjE7CitFMDA1RSAwMDYxOworRTAwN0MgMDA2MTsKK0UwMTFBIDAwNjE7CitFMDEzOCAwMDYxOworRTAxNTYgMDA2MTsKK0UwMTc0IDAwNjE7CitFMDE5MiAwMDYxOworRTAxQjAgMDA2MTsKK0UwMUNFIDAwNjE7CitFMDFFQyAwMDYxOworMDAxQiAwMDQxOworMDA5OSAwMDQxOworMDVBNSAwMDQxOworMDZEQyAwMDQxOworMjAwQyAwMDQxOworRkRENCAwMDQxOworMUQxNjggMDA0MTsKKzFEMThCIDAwNDE7CitDRkZGRSAwMDQxOworRTAwMzkgMDA0MTsKK0UwMDU3IDAwNDE7CitFMDA3NSAwMDQxOworRTAxMTMgMDA0MTsKK0UwMTMxIDAwNDE7CitFMDE0RiAwMDQxOworRTAxNkQgMDA0MTsKK0UwMThCIDAwNDE7CitFMDFBOSAwMDQxOworRTAxQzcgMDA0MTsKK0UwMUU1IDAwNDE7CiswMEMwIDAzMzQ7CiswMTAyIDAzMzQgMDMwMzsKKzAwQzIgMDMzNCAwMzQwOworMDA2MSAwMzBBIDAzMDEgMDMzNDsKKzAyMjcgMDMzNDsKKzAwNjEgMDMwRiAwMzM0OworMDA0MSAwMzIzIDAzMzQgMDMwMjsKKzAzMEMgMDA2MTsKKzAzMEUgMDA2MTsKKzAzMUYgMDA2MTsKKzAzMzAgMDA2MTsKKzAzNDUgMDA2MTsKKzAzNTUgMDA2MTsKKzAzNjIgMDA2MTsKKzA1QjYgMDA2MTsKK0ZFNzIgMDA2MTsKK0ZDRjIgMDA0MTsKKzA2NTYgMDA2MTsKKzA3MzQgMDA2MTsKKzA3NDMgMDA2MTsKKzA5NTQgMDA2MTsKKzBCM0MgMDA2MTsKK0E4MEIgMDA2MTsKKzBFQzggMDA2MTsKKzE3QzggMDA2MTsKKzMwMkEgMDA2MTsKKzIwRDUgMDA2MTsKKzIwRTQgMDA2MTsKKzFENjU2IDAwMjE7CisxRUFFIDAwMjE7CiswMjI3IDAwMjE7CisxRDUxRSAwMDNGOworMDBDMSAwMDNGOworMDBFNCAwMDNGOworMzNDMiAwMDYxOworMUQ1NTIgMDA2MTsKKzFENEQwIDAwNjE7CisxRDJDIDAwNjE7CiswMEUyIDAwNjE7CiswMUZCIDAwNjE7CiswMTAwIDAwNjE7CiswMDYxIDAwNjI7CisxRDYzQyAwMDYyOworMUVBOCAwMDYyOworMUVCNyAwMDYyOworMDFGRCAwMDNGOworMUU5QSAwMDIxOworMUQwMiAwMDQxOworMDI1MiAwMDIxOworMDAxOSAwMDYyOworMDA5NyAwMDYyOworMDVBMyAwMDYyOworMDZEQSAwMDYyOworMTgwRSAwMDYyOworRkREMiAwMDYyOworMUQxNjYgMDA2MjsKKzFEMTg5IDAwNjI7CitCRkZGRSAwMDYyOworRTAwMzcgMDA2MjsKK0UwMDU1IDAwNjI7CitFMDA3MyAwMDYyOworRTAxMTEgMDA2MjsKK0UwMTJGIDAwNjI7CitFMDE0RCAwMDYyOworRTAxNkIgMDA2MjsKK0UwMTg5IDAwNjI7CitFMDFBNyAwMDYyOworRTAxQzUgMDA2MjsKK0UwMUUzIDAwNjI7CiswMDYyIDAzMzQgMDMzMTsKKzAzMEUgMDA2MjsKKzAzMzAgMDA2MjsKKzAzNTYgMDA2MjsKKzA1QjcgMDA2MjsKK0ZFN0QgMDA2MjsKKzA3MzUgMDA2MjsKKzA5QkMgMDA2MjsKKzEwQTBEIDAwNjI7CisxN0M5IDAwNjI7CisyMEQ2IDAwNjI7CisxRDU1MyAwMDIxOworMUUwNyAwMDIxOworMUQ2MDkgMDAzRjsKKzFENDRGIDAwNDE7CisxRDY3MSAwMDYxOworMUUwNiAwMDYxOworMUQ1MDUgMDA2MjsKKzAxODAgMDA0MTsKKzAyNTMgMDA2MjsKKzAwNDMgMDMzNCAwMzBDOworMUQ0ODQgMDAyMTsKKzAxMDcgMDAyMTsKKzAwNDMgMDAzRjsKKzIxMDUgMDAyMTsKKzFENTg4IDAwNjE7CisxRDQzNiAwMDYxOworMDEwNiAwMDQxOworMUQ0MUMgMDA2MjsKKzI0QjggMDA2MjsKKzMzQTAgMDA2MjsKKzAxODcgMDAyMTsKKzFFMEEgMDMzNDsKKzIxN0UgMDAyMTsKKzFENjBCIDAwMjE7CisxRDQ4NSAwMDNGOworMUQ0OCAwMDNGOworMUQ0ODUgMDA2MTsKK0ZGMjQgMDA0MTsKKzFENjczIDAwNDE7CisxRTBFIDAwNDE7CisxRDVGMSAwMDYyOworMUUxMCAwMDYyOworMzM3OCAwMDNGOworMDFGMiAwMDYxOworMUQwNSAwMDQxOworMDE4QSAwMDNGOworMDBFOSAwMzM0OworMDA0NSAwMzM0IDAzMDIgMDM0MTsKKzAwNDUgMDMwQyAwMzM0OworMDExNSAwMzM0IDAzMjc7CiswMTEyIDAzMDAgMDMzNDsKKzFFQzcgMDMzNDsKKzFENThBIDAwMjE7CiswMTE1IDAwMjE7CisxRTE1IDAwMjE7CisxRDYyNiAwMDNGOworMDBDQSAwMDNGOworMUVCQSAwMDNGOworMUQ2MjYgMDA2MTsKKzFENTcwIDAwNjE7CiswMEM5IDAwNDE7CiswMTFCIDAwNDE7CiswMTEyIDAwNDE7CisxRTE5IDAwNDE7CisxRDQ2QyAwMDYyOworMDExQiAwMDYyOworMUUxOSAwMDYyOworMDFERCAwMDYxOworMUQ5NSAwMDNGOworMDI1OCAwMDNGOworMUQ0QyAwMDYxOworMDA2NiAwMDIxOworMUQ2NzUgMDAyMTsKKzFENTcxIDAwM0Y7CisxRDRCQiAwMDQxOworMUQ0MDUgMDA0MTsKKzFENEJCIDAwNjI7CitGQjAwIDAwMjE7CiswMkE5IDAwMjE7CiswMDQ3IDAzMzQgMDMwMTsKKzAwNDcgMDMyNyAwMzM0OworMUQ0QTIgMDAyMTsKKzFENDIwIDAwM0Y7CisxRDMzIDAwM0Y7CisxRDY1QyAwMDYxOworMUQ1REEgMDA2MTsKKzAxMUUgMDA0MTsKKzFENDU0IDAwNjI7CiswMUY1IDAwNjI7CiszM0M5IDAwM0Y7CiswMUU0IDAwNjE7CiswMTk0IDAwMjE7CiswMDY4IDAzMEMgMDMzNDsKKzAwNjggMDMyRSAwMzM0OworMjEwQiAwMDIxOworMUU5NiAwMDIxOworMUQ1NzMgMDAzRjsKK0ZGNDggMDA0MTsKKzI0RDcgMDA0MTsKKzFENjc3IDAwNDE7CisxRTI0IDAwNDE7CisxRDVGNSAwMDYyOworMUUyMiAwMDYyOworMzM5MCAwMDYyOworMDI2NyAwMDYyOworMDA0OSAwMzA2IDAzMzQ7CiswMDY5IDAzMzQgMDMwMzsKKzAwNDkgMDMzNCAwMzBGOworMUQ0OEEgMDAyMTsKKzFENjIgMDAyMTsKKzFFQ0EgMDAyMTsKKzFENDcwIDAwM0Y7CiswMTJGIDAwM0Y7CisxRDU1QSAwMDYxOworMjExMCAwMDYxOworMUQ2MiAwMDYxOworMUUyRSAwMDYxOworMUVDQSAwMDYxOworMjExMSAwMDYyOworMDEyOSAwMDYyOworMjE2MiAwMDNGOworMjE2MyAwMDNGOworMURBNiAwMDNGOworMDE5NyAwMDYyOworMDE5NiAwMDYyOworMUQ2NUYgMDAyMTsKKzFENEJGIDAwM0Y7CiswMTM0IDAwM0Y7CisxRDVGNyAwMDQxOworMUQ1NzUgMDA0MTsKKzFENUY3IDAwNjI7CiswMjM3IDAwNjE7CisxREExIDAwNjI7CisxRTMzIDAzMzQ7CitGRjJCIDAwMjE7CisxRDQ1OCAwMDNGOworMUQ0RiAwMDNGOworMUQ0NTggMDA0MTsKKzFENjEyIDAwNjE7CiswMTM3IDAwNjE7CisxRDY2MCAwMDYyOworMUUzNSAwMDYyOworMzM5OCAwMDQxOworMzNDRiAwMDQxOworMDE5OCAwMDNGOworMDA0QyAwMzM0IDAzMjc7CisyMTdDIDAwMjE7CisxRDY0NyAwMDIxOworMUQ1MjkgMDAzRjsKKzAxM0UgMDAzRjsKKzIxMTMgMDA2MTsKKzAwNEMgMDA2MTsKKzFENjQ3IDAwNDE7CisxRTNDIDAwNjE7CisyMTZDIDAwNjI7CisxRTNBIDAwNjI7CiszM0QyIDAwNjE7CisxREFCIDAwNDE7CisxRDg1IDAwM0Y7CiswMTlCIDAwNjE7CiswMDZEIDAwMjE7CisxRDVFMCAwMDIxOworMjREQyAwMDNGOworMzNBOCAwMDYxOworMUQ1NUUgMDA2MTsKKzFENDQwIDAwNjE7CisxRTNGIDAwNjE7CisxRDVGQSAwMDYyOworMzNENCAwMDIxOworMzM5QyAwMDIxOworMzNCNyAwMDIxOworMUQ2RiAwMDIxOworMDA2RSAwMzM0IDAzNDA7CiswMDZFIDAzMjMgMDMzNDsKKzFENjJGIDAwMjE7CisxRTQ1IDAwMjE7CisxRDQ0MSAwMDNGOworMUU0OSAwMDNGOworMUQ2NjMgMDA0MTsKKzFENUUxIDAwNDE7CiswMTQ2IDAwNjE7CisxRDU5MyAwMDYyOworMDE0NyAwMDYyOworMDFDQyAwMDYyOworMDI3NCAwMDNGOworMDI3MiAwMDQxOworMURBRiAwMDQxOworMDBEOCAwMzQxIDAzMzQ7CiswMDZGIDAzMDIgMDMzNCAwMzQxOworMUVENCAwMzM0OworMDA0RiAwMzAzIDAzMzQ7CiswMDRGIDAzMDcgMDMzNDsKKzAxNEMgMDMzNDsKKzAwNkYgMDMzNCAwMzExOworMUVFMSAwMzM0OworMUVDRCAwMzM0IDAzMDI7CisxRDRERSAwMDIxOworMDFEMiAwMDIxOworMUU1MyAwMDIxOworMUQ0MjggMDAzRjsKKzFENTIgMDAzRjsKKzFFNEMgMDAzRjsKKzAxQTAgMDAzRjsKKzFENUZDIDAwNjE7CisxRDU3QSAwMDYxOworMDBGMyAwMDQxOworMUVENCAwMDQxOworMDIyRCAwMDQxOworMDE0QyAwMDQxOworMUVERCAwMDQxOworMUQ0RjggMDA2MjsKKzAwRjMgMDA2MjsKKzAyMkQgMDA2MjsKKzFFREQgMDA2MjsKKzFEMEYgMDA0MTsKKzAxODYgMDA2MTsKKzFEMTYgMDA2MjsKKzAyNzcgMDA0MTsKKzAwNzAgMDMwNyAwMzM0OworMUQ1MTMgMDAyMTsKKzAwNTAgMDAzRjsKK0ZGNTAgMDA0MTsKKzAwNTAgMDA0MTsKKzI0QzUgMDA0MTsKKzFENTJEIDAwNjI7CisxRTU2IDAwNjI7CiszM0IwIDAwNjI7CisxRDcxIDAwNjI7CisxRDQ5MiAwMDIxOworMUQ0MkEgMDAzRjsKKzAwNzEgMDA2MTsKKzI0RTAgMDA2MTsKKzFENjRDIDAwNDE7CisxRDVCMCAwMDYyOworMDA3MiAwMzM0IDAzMEM7CiswMDcyIDAzMzQgMDMyMzsKKzFENTYzIDAwMjE7CiswMTU4IDAwMjE7CisxRDY5QiAwMDNGOworMDIxMCAwMDNGOworMUQ0OTMgMDA0MTsKKzIxMUIgMDA0MTsKKzFFNTkgMDA0MTsKKzMzQUUgMDAzRjsKK0ZGMzIgMDA2MjsKKzFFNUIgMDA2MjsKKzFENzIgMDA2MjsKKzAyN0IgMDA2MTsKKzAyN0YgMDA2MjsKKzAwNTMgMDMwMiAwMzM0OworMDA3MyAwMzM0IDAzMjM7CisxRDU2NCAwMDIxOworMDE1QyAwMDIxOworMUQ2NjggMDAzRjsKKzFFNjEgMDAzRjsKKzFENDYwIDAwNDE7CisxRDY4MiAwMDYxOworMDE2MSAwMDYxOworMUU5QiAwMDYxOworMUQ2MUEgMDA2MjsKKzIxMjAgMDA0MTsKKzFENzQgMDA0MTsKKzAxQTkgMDA2MTsKKzAyODYgMDA0MTsKKzAwNzQgMDMzNCAwMzI2OworMUQ1Q0QgMDAyMTsKKzAxNjIgMDAyMTsKKzFENDdCIDAwM0Y7CiswMDc0IDAwNDE7CisxRDY5RCAwMDQxOworMUQ2MUIgMDA0MTsKKzAyMUEgMDA0MTsKKzFENDdCIDAwNjI7CiswMkE4IDAwM0Y7CiswMUJFIDAwNDE7CisxRDc1IDAwM0Y7CiswMUFFIDAwNjE7CiswMDc1IDAzMDYgMDMzNDsKKzAwNzUgMDMwOCAwMzM0IDAzNDE7CiswMERDIDAzMDQgMDMzNDsKKzAxNkIgMDMzNDsKKzAwNzUgMDMxQiAwMzM0OworMDA3NSAwMzA5IDAzMUIgMDMzNDsKKzFFNzcgMDMzNDsKK0ZGMzUgMDAyMTsKKzAwRkMgMDAyMTsKKzFFRTkgMDAyMTsKKzFENjAyIDAwM0Y7CiswMEZCIDAwM0Y7CiswMjE1IDAwM0Y7CisxRDQyRSAwMDYxOworRkYzNSAwMDYxOworMUQ1OCAwMDYxOworMDBGQyAwMDYxOworMUU3OCAwMDYxOworMUVFOSAwMDYxOworMUU3NiAwMDYxOworMUQ1MTggMDA2MjsKKzAxREEgMDA2MjsKKzFFRUQgMDA2MjsKKzFEMUQgMDA2MjsKKzFEOTkgMDA0MTsKKzAxOUMgMDA2MTsKKzAxQjEgMDA2MTsKKzFENDJGIDAwMjE7CisyNENCIDAwMjE7CisxRDQ3RCAwMDNGOworMjE3NCAwMDQxOworMDA1NiAwMDQxOworMUQ2ODUgMDA0MTsKKzFENjZCIDAwNjI7CisyMTc1IDAwNjE7CisxRDIwIDAwNjI7CisxREJBIDAwNjI7CiswMDU3IDAzMzQgMDMwODsKKzAwNTcgMDAyMTsKKzFFODggMDAyMTsKKzFENjUyIDAwM0Y7CisxRDVEMCAwMDYxOworMUQ1NEUgMDA2MTsKKzFFODEgMDA2MTsKKzFENTY4IDAwNjI7CiswMTc1IDAwNjI7CiswMDc4IDAzMDcgMDMzNDsKKzFENDRCIDAwMjE7CisxRDU5RCAwMDNGOworMDA3OCAwMDYxOworMUQ2MDUgMDA0MTsKKzFENTFCIDAwNDE7CisxRDUwMSAwMDYyOworMUU4QyAwMDYyOworMDA3OSAwMzM0IDAzNDE7CiswMDc5IDAzMzQgMDMwMzsKK0ZGNTkgMDAyMTsKKzI0Q0UgMDAyMTsKKzFENTlFIDAwM0Y7CisxRTk5IDAwM0Y7CisxRDQzMiAwMDQxOworMUQ2NTQgMDA2MTsKKzAxNzYgMDA0MTsKKzFENDY2IDAwNjI7CiswMEZEIDAwNjI7CiswMUIzIDAwNjE7CiswMDdBIDAzMjMgMDMzNDsKKzIxMjQgMDAyMTsKKzFENDY3IDAwM0Y7CiswMTdBIDAwM0Y7CisxRDQ2NyAwMDQxOworMUQ2ODkgMDA2MTsKKzAxN0MgMDA2MTsKKzIxMjQgMDA2MjsKKzAxOEQgMDA0MTsKKzAyMjQgMDAzRjsKKzAyNDAgMDA0MTsKKzFEQkUgMDA2MjsKKzAyOTMgMDA2MTsKKzAxRjcgMDA0MTsKKzAxODUgMDAzRjsKKzAxNDkgMDA2MTsKKzAyQzEgMDA2MTsKKzAyOTYgMDA2MTsKKzAyOTggMDA2MTsKKzAzQjEgMDM0MyAwMzAxIDAzMzQgMDM0NTsKKzFGMEUgMDMzNDsKKzFGMDkgMDMwMSAwMzM0OworMUYwOSAwMzM0IDAzNDI7CisxRkIzIDAzNDEgMDMzNDsKKzAzOTEgMDMzNCAwMzA0OworMUYwNiAwMDIxOworMUZCMCAwMDIxOworMUYwNiAwMDNGOworMUZCMCAwMDNGOworMUQ3NTYgMDA0MTsKKzFGODAgMDA2MTsKKzFGOEYgMDA2MTsKKzFGQjEgMDA2MTsKKzFGMDYgMDA2MjsKKzFGQjAgMDA2MjsKKzAzOTIgMDAzRjsKKzFENkUzIDAwNDE7CiswMzkzIDAwMjE7CisxRDczOCAwMDYxOworMUQ2RkUgMDA2MjsKKzFENUYgMDAyMTsKKzFENzFGIDAwNjE7CisxRjE4IDAzMzQ7CisxRjE5IDAzMzQgMDM0MTsKKzFENzE2IDAwMjE7CisxRkM4IDAwMjE7CisxRjFCIDAwM0Y7CisxRDdDNCAwMDQxOworMUYxNSAwMDQxOworMUQ3QzQgMDA2MjsKKzAzREQgMDA0MTsKKzFENzNCIDAwM0Y7CisxRDcyMSAwMDQxOworMDM5NyAwMzQzIDAzMzQgMDMwMTsKKzAzOTcgMDMxMyAwMzQyIDAzMzQ7CisxRjI5IDAzMzQgMDMwMTsKKzFGMjcgMDMzNDsKKzAzQjcgMDM0MSAwMzM0IDAzNDU7CisxRDcwMiAwMDIxOworMUY5NSAwMDIxOworMDM5NyAwMDNGOworMUY5MyAwMDNGOworMUQ3NzYgMDA0MTsKKzFGOTIgMDA2MTsKKzFGMkIgMDA2MTsKKzFGQ0EgMDA2MTsKKzFGMjIgMDA2MjsKKzFGQzQgMDA2MjsKKzFENzk3IDAwMjE7CiswM0QxIDAwNjE7CisxRDcyMyAwMDYxOworMDM5OCAwMDYyOworMUZCRSAwMzEzIDAzMDAgMDMzNDsKKzFGMzMgMDMzNDsKKzAzOTkgMDMzNCAwMzQwOworMUZCRSAwMzA4IDAzNDIgMDMzNDsKKzFGM0UgMDAyMTsKKzFENzA0IDAwM0Y7CisxRjc2IDAwM0Y7CiswMzk5IDAwNDE7CisxRjM5IDAwNDE7CisxRkQ2IDAwNDE7CisxRDc5OCAwMDYyOworMUZEMiAwMDYyOworMUQ2REUgMDAzRjsKKzFENkRFIDAwNDE7CisxRDc4QyAwMDYyOworMUQ3N0EgMDAzRjsKKzFENzYwIDAwNDE7CisxRDc2MSAwMDIxOworMDM5QyAwMDQxOworMzM4QyAwMDNGOworMzNCQyAwMDNGOworMUQ2Q0UgMDA2MTsKKzFENkVFIDAwNjI7CisxRDZDRiAwMDYxOworMUQ2RUYgMDA2MjsKKzFGNDEgMDMzNDsKKzAzQkYgMDM0MCAwMzM0OworMDNDQyAwMDIxOworMDNDQyAwMDNGOworMUY0MCAwMDYxOworMDM4QyAwMDQxOworMDNDQyAwMDYyOworMUQ2RTEgMDAzRjsKKzFEN0M5IDAwNjE7CisxRDZFMSAwMDYyOworMDNGQSAwMDYyOworMUZFQyAwMzM0OworMUQ3NTQgMDAzRjsKKzFENkUwIDAwNDE7CiswM0YxIDAwNjI7CiswM0ZDIDAwNjI7CisxRDc4MiAwMDNGOworMUQ3NDggMDA0MTsKKzFENzgyIDAwNjI7CisxRDc4MyAwMDIxOworMUQ3ODMgMDA0MTsKKzAzQzUgMDMxMyAwMzAxIDAzMzQ7CiswM0E1IDAzMTQgMDMzNCAwMzQwOworMDNBNSAwMzQwIDAzMzQ7CiswM0M1IDAzMzQgMDMwOCAwMzQyOworMUY1QiAwMDIxOworMUQ2QkMgMDAzRjsKKzAzQjAgMDAzRjsKKzFENzZBIDAwNDE7CiswMzhFIDAwNjE7CisxRkUxIDAwNjE7CisxRjdCIDAwNjI7CiswM0E2IDAwMjE7CiswM0Q1IDAwNjE7CisxRDZGNyAwMDQxOworMUQ3MTIgMDAyMTsKKzFENzRDIDAwNjE7CiswM0E3IDAwNjI7CisxRDc2RCAwMDNGOworMUQ3ODcgMDA2MjsKKzAzQzkgMDM0MyAwMzQ1IDAzMDEgMDMzNDsKKzIxMjYgMDM0MyAwMzQyIDAzMzQ7CiswM0E5IDAzMTQgMDM0MSAwMzM0OworMDNBOSAwMzE0IDAzMzQgMDM0MjsKKzFGN0QgMDM0NSAwMzM0OworMUQ3MTQgMDAyMTsKKzFGNkQgMDAyMTsKKzFEN0MyIDAwM0Y7CisxRjYzIDAwM0Y7CisxRDcxNCAwMDQxOworMUY2MiAwMDYxOworMUZBRCAwMDYxOworMUZGNCAwMDYxOworMUY2OCAwMDYyOworMUZBOSAwMDYyOworMDNGNyAwMDQxOworMkM4NCAwMDQxOworMkNCNiAwMDQxOworMkM4RSAwMDQxOworMkM5NCAwMDQxOworMkM5OSAwMDNGOworMkNCRCAwMDNGOworMkNBMSAwMDNGOworMkNBNyAwMDNGOworMkNBRCAwMDNGOworMkNCRiAwMDNGOworMkNDMyAwMDNGOworMDNFNSAwMDNGOworMDNFOSAwMDNGOworMkNDRiAwMDNGOworMkNENSAwMDNGOworMDNFRCAwMDNGOworMkNERCAwMDNGOworMkNCNSAwMDNGOworMkNFMyAwMDNGOworMDQxMCAwMzA2IDAwMjE7CiswNDEwIDAzMDggMDAyMTsKKzA0RDkgMDAwMSAwMzA4IDAwNjE7CiswNEQ5IDAzMDggMDA2MjsKKzA0MTIgMDA2MTsKKzA0OTMgMDAzRjsKKzA0MzQgMDAzRjsKKzA1MDMgMDAzRjsKKzA0MzMgMDU5MSAwMzAxIDAwNjE7CiswNDk4IDAwNjE7CiswNDM1IDAwNjE7CiswNDM1IDAzMDYgMDAzRjsKKzA0MzYgMDMwNiAwMzM0OworMDRERCAwMzM0OworMDQ5NyAwMDNGOworMDQzNyAwMzA4IDAzMzQ7CiswNDU1IDAwMjE7CiswNDM4IDAzMDAgMDMzNDsKKzA0NUQgMDA2MTsKKzA0RTUgMDMzNDsKKzA0NTYgMDAzRjsKKzA0MDYgMDMwOCAwMDYxOworMDQxOCAwMzA2IDAwNjE7CiswNDFBIDAwMDEgMDMwMSAwMDYxOworMDRBMCAwMDYxOworMDQxQiAwMDYxOworMDUwOCAwMDIxOworMDQxRCAwMDIxOworMDRBMiAwMDYxOworMDQwQSAwMDYxOworMDQxRSAwMzM0IDAzMDg7CiswNEU5IDAwNjE7CiswNEU4IDFEMTY1IDAzMDggMDA2MTsKKzA0ODEgMDAzRjsKKzA0NDEgMDAzRjsKKzA0NDIgMDAzRjsKKzA0NUIgMDAzRjsKKzA0M0EgMDU5MSAwMzAxIDAwNjE7CiswNDQzIDAwMjE7CiswNDIzIDAzMDYgMDMzNDsKKzA0MjMgMDMzNCAwMzA4OworMDQyMyAwMzM0IDAzMEI7CiswNEFGIDAwNjE7CiswNDQ0IDAwNjE7CiswNEJCIDAwNjE7CiswNDdEIDAwNjE7CiswNEI1IDAwNjE7CiswNDI3IDAzMDggMDAzRjsKKzA0Q0MgMDAzRjsKKzA0QkYgMDAzRjsKKzA0NDkgMDAzRjsKKzA0NEIgMDMwOCAwMzM0OworMDQ0QyAwMDIxOworMDQ0RCAwMDIxOworMDQ0RCAwMzA4IDAwNDE7CiswNDRGIDAwNjI7CiswNDZCIDAwNjI7CiswNDZGIDAwNjI7CiswNDc1IDAwMDEgMDMwRiAwMDYxOworMDQ3NSAwMzBGIDAwNjI7CisyQzAxIDAwMjE7CisyQzA0IDAwMjE7CisyQzA3IDAwMjE7CisyQzBBIDAwMjE7CisyQzBEIDAwMjE7CisyQzEwIDAwMjE7CisyQzEzIDAwMjE7CisyQzE2IDAwMjE7CisyQzE5IDAwMjE7CisyQzFDIDAwMjE7CisyQzFGIDAwMjE7CisyQzIyIDAwMjE7CisyQzI1IDAwMjE7CisyQzI4IDAwMjE7CisyQzJCIDAwMjE7CisyQzJFIDAwMjE7CisxMEExIDAwMjE7CisxMEEzIDAwMjE7CisxMEE1IDAwMjE7CisxMEMxIDAwMjE7CisxMEE4IDAwMjE7CisxMEFBIDAwMjE7CisxMEZDIDAwNjE7CisxMEREIDAwM0Y7CisxMERGIDAwM0Y7CisxMEUxIDAwM0Y7CisxMEYzIDAwM0Y7CisxMEU0IDAwM0Y7CisxMEU2IDAwM0Y7CisxMEU4IDAwM0Y7CisxMEVBIDAwM0Y7CisxMEVDIDAwM0Y7CisxMEVFIDAwM0Y7CisxMEVGIDAwM0Y7CisxMEY1IDAwM0Y7CisxMEY5IDAwM0Y7CiswNTMzIDAwMjE7CiswNTg3IDAwM0Y7CiswNTM4IDAwNjE7CiswNTNCIDAwNjE7CiswNTNFIDAwNjE7CiswNTQxIDAwNjE7CiswNTQ0IDAwNjE7CiswNTQ1IDAwNjE7CiswNTQ4IDAwNjE7CiswNTRCIDAwNjE7CiswNTRFIDAwNjE7CiswNTUxIDAwMjE7CiswNTU0IDAwMjE7CiswNTU5IDAwM0Y7CitGQjIxIDAwNDE7CitGQjMxIDAwM0Y7CisyMTM3IDAwNjI7CitGQjM0IDAwMjE7CitGQjM1IDAwNDE7CiswNUQ3IDAwNDE7CitGQjFEIDAwNDE7CiswNURBIDAwMjE7CitGQjNDIDAzMzQ7CitGQjI2IDAwNDE7CiswNUUxIDAwMjE7CiswNUUzIDAwMjE7CiswNUU2IDAwM0Y7CitGQjQ4IDAwMjE7CiswNUU5IDAwMjE7CiswNUVBIDAzMzQgMDVCQzsKK0ZFODAgMDA2MTsKKzA2MjcgMDY1MyAwMDYyOworMDY3MiAwMDYxOworMDY0OCAwNTkxIDA2NTQgMDA2MTsKK0ZFODggMDA0MTsKKzA2NEEgMUQxNjUgMDY1NCAwMDYxOworRkMwMCAwMDNGOworRkM2NSAwMDQxOworRkNFMCAwMDNGOworRkJGMiAwMDNGOworRkJGOSAwMDIxOworRkM2OSAwMDYyOworRkU4RSAwMDQxOworRkRGMiAwMDYyOworRkU4RiAwMDYyOworRkM5RSAwMDYxOworRkM5RiAwMDQxOworRkM2RSAwMDYxOworRkI1NSAwMDYxOworRkI1NiAwMDQxOworRkI1QSAwMDYyOworMDc1NSAwMDYyOworRkU5NSAwMDNGOworRkQ1MCAwMDYyOworRkQ1MSAwMDYyOworRkRBMSAwMDYyOworRkMwRSAwMDYyOworRkM3MyAwMDYyOworRkMxMCAwMDYyOworRkMxMSAwMDYyOworRkMxMiAwMDYyOworRkMxNCAwMDYyOworRkI1RSAwMDIxOworMDY3RCAwMDYyOworRkU5RCAwMDIxOworRkMxNSAwMDYyOworRkQ1OSAwMDYxOworRkQxRSAwMDYxOworRkI3NiAwMDYyOworRkI3QSAwMDIxOworRkI3RSAwMDIxOworRkVBMSAwMDNGOworRkRCRiAwMDYyOworRkNGRiAwMDYyOworRkVBNSAwMDQxOworRkMxQiAwMDYyOworMDY4MiAwMDYyOworRkVBOSAwMDYyOworRkI4OSAwMDQxOworRkI4NSAwMDQxOworRkI4NyAwMDQxOworMDc1QSAwMDYyOworRkRGQyAwMDYyOworRkI4QyAwMDYyOworMDY5NyAwMDYyOworMDc1QiAwMDYyOworRkVCMSAwMDQxOworRkQ1RSAwMDYyOworRkQzNiAwMDQxOworRkNFNyAwMDNGOworRkQ2MyAwMDYxOworRkQxOCAwMDYxOworRkVCNSAwMDYyOworRkQyRSAwMDNGOworRkRBQSAwMDYyOworRkQwRCAwMDYyOworRkQ2QSAwMDYyOworRkNGRCAwMDYyOworMDZGQSAwMDYyOworRkVCOSAwMDQxOworRkRBOSAwMDYyOworRkRGOSAwMDYyOworRkQyMSAwMDYxOworRkVDMCAwMDYxOworRkMyMyAwMDYyOworRkQ2RiAwMDYyOworRkQwNyAwMDYyOworRkVDMSAwMDIxOworRkMyNiAwMDYyOworRkQ3MyAwMDYyOworRkVDNSAwMDIxOworRkQzQiAwMDQxOworRkVDOSAwMDQxOworRkRGNyAwMDYyOworRkRCNiAwMDYyOworRkVDRCAwMDNGOworRkNCRCAwMDYxOworRkNGOSAwMDYyOworMDc1RSAwMDYyOworRkVEMSAwMDYyOworRkMyRiAwMDYyOworRkM3QyAwMDYxOworMDZBMyAwMDYyOworMDZBNSAwMDYyOworMDc2MCAwMDYyOworRkVENSAwMDQxOworRkMzNCAwMDYyOworRkMzNSAwMDYyOworRkVEOSAwMDNGOworRkNDNCAwMDYxOworRkNDNyAwMDNGOworRkMzQyAwMDYxOworRkMzRCAwMDYyOworRkI4RSAwMDQxOworRkJEMyAwMDNGOworRkI5MiAwMDNGOworRkI5QSAwMDNGOworRkI5NiAwMDNGOworMDc2MyAwMDYyOworRkVERCAwMDYyOworRkVGOSAwMDYyOworRkQ4NCAwMDYyOworRkRCNSAwMDYxOworRkQ4NiAwMDYxOworRkQ4OCAwMDYxOworRkM4NyAwMDYxOworMDc2QSAwMDYyOworMDZGRSAwMDYyOworRkQ4RCAwMDYyOworRkRGNCAwMDYyOworRkRCOSAwMDYyOworRkM0QSAwMDYyOworRkVFNSAwMDQxOworRkQ5OCAwMDYxOworRkQ5NSAwMDYyOworRkM4QiAwMDYyOworRkQ5QSAwMDYyOworRkM4RiAwMDYxOworRkJBMCAwMDNGOworMDZCOSAwMDYyOworRkVFQiAwMDYxOworRkNEOCAwMDYxOworRkJBQSAwMDIxOworMDZDMSAwMDNGOworMDZGRiAwMDNGOworRkVFRCAwMDIxOworMDZDNCAwMDYxOworMDZDNiAwMDYyOworRkJEQiAwMDIxOworMDZDQSAwMDYxOworMDY0OSAwMDNGOworRkVGMyAwMDIxOworMDY3OCAwMDNGOworRkRBRSAwMDNGOworRkM5MyAwMDNGOworRkM5NCAwMDNGOworRkM1QSAwMDYxOworMDZDRCAwMDNGOworRkJFNiAwMDYyOworMDZEMyAwMDYxOworMDcxMyAwMDNGOworMDcxNyAwMDQxOworMDcxQiAwMDYyOworMDcyMSAwMDQxOworMDcyNiAwMDYyOworMDcyQyAwMDQxOworMDc4MyAwMDQxOworMDdBMiAwMDQxOworMDc4QiAwMDQxOworMDc4RCAwMDQxOworMDc5RSAwMDQxOworMDc5NSAwMDQxOworMDdBOCAwMDQxOworMDdBRSAwMDQxOworMkQzMyAwMDQxOworMkQzOSAwMDQxOworMkQzRiAwMDQxOworMkQ0NSAwMDQxOworMkQ0QiAwMDQxOworMkQ1MSAwMDQxOworMkQ1NyAwMDQxOworMkQ1RCAwMDQxOworMkQ2MiAwMDQxOworMTIwMiAwMDQxOworMTIwOCAwMDQxOworMTIwRSAwMDQxOworMTIxMyAwMDQxOworMTIxOSAwMDQxOworMTIxRiAwMDQxOworMTIyMCAwMDQxOworMTIyNiAwMDQxOworMTIyQyAwMDQxOworMTIzMSAwMDQxOworMTIzNyAwMDQxOworMTIzQyAwMDQxOworMTI0MSAwMDQxOworMTI0NyAwMDQxOworMTI1MCAwMDQxOworMTI1NiAwMDQxOworMTI2MCAwMDQxOworMTI2NiAwMDQxOworMkQ4NSAwMDQxOworMTI2RCAwMDQxOworMTI3MyAwMDQxOworMTI3OCAwMDQxOworMTI3RSAwMDQxOworMTI4MyAwMDQxOworMTI4QSAwMDQxOworMTI5MiAwMDQxOworMkQ4OCAwMDQxOworMTI5RCAwMDQxOworMTJBMiAwMDQxOworMkQ4QSAwMDQxOworMTJBRCAwMDQxOworMTJCNCAwMDQxOworMTJCQyAwMDQxOworMTJDNCAwMDQxOworMTJDQyAwMDQxOworMTJEMiAwMDQxOworMTJEOSAwMDQxOworMTJERiAwMDQxOworMTJFNCAwMDQxOworMTJFQSAwMDQxOworMTJGMCAwMDQxOworMTJGNiAwMDQxOworMTJGQiAwMDQxOworMTMwMCAwMDQxOworMTMwNiAwMDQxOworMTMwQiAwMDQxOworMTMxMiAwMDQxOworMTMxQSAwMDQxOworMkQ5MyAwMDQxOworMTMyMiAwMDQxOworMkQ4RiAwMDQxOworMTMyRCAwMDQxOworMTMzMiAwMDQxOworMkQ5MSAwMDQxOworMTMzRCAwMDQxOworMTM0MyAwMDQxOworMTM0OSAwMDQxOworMTM0RiAwMDQxOworMTM1MSAwMDQxOworMTM1NyAwMDQxOworMTM1OCAwMDQxOworMkRBMyAwMDQxOworMkRBQSAwMDQxOworMkRCMSAwMDQxOworMkRCOCAwMDQxOworMkRCRSAwMDQxOworMkRDNSAwMDQxOworMkRDQyAwMDQxOworMkREMyAwMDQxOworMkREQSAwMDQxOworMDkwNCAwMDQxOworMDkwQSAwMDQxOworMDkwRSAwMDQxOworMDkxNCAwMDQxOworMDk1QSAwMzM0OworMDkxQiAwMDYyOworMDkyMCAwMDNGOworMDkyMyAwMDIxOworMDkyOCAwMDNGOworMDkyQyAwMDYyOworMDkzMSAwMDNGOworMDkzNiAwMDIxOworMDkzRSAwMDIxOworMDk0NCAwMDIxOworMDk0OCAwMDIxOworMDk0RCAwMDQxOworMDk4QSAwMDQxOworMDk5MCAwMDQxOworMDk5OCAwMDQxOworMDk5RSAwMDQxOworMDlBMiAwMDNGOworMDlBNiAwMDYxOworMDlBRCAwMDYxOworMDlGMCAwMDYyOworMDlCOSAwMDYyOworMDlDMiAwMDYyOworMDlDNyAwNTkxIDA5RDcgMDA2MTsKKzA5Q0QgMDAzRjsKKzBBMTMgMDAzRjsKKzBBMDcgMDAzRjsKKzBBMzkgMDA0MTsKKzBBNUEgMDA0MTsKKzBBMUMgMDA2MTsKKzBBMjEgMDA2MjsKKzBBMjcgMDA2MjsKKzBBMkQgMDAzRjsKKzBBMzIgMDA2MjsKKzBBNDEgMDA0MTsKKzBBNEQgMDAzRjsKKzBBODkgMDAzRjsKKzBBOEQgMDAzRjsKKzBBOTUgMDAzRjsKKzBBOUIgMDAzRjsKKzBBQTEgMDAzRjsKKzBBQTcgMDAzRjsKKzBBQUUgMDAzRjsKKzBBQjYgMDAzRjsKKzBBQkYgMDAzRjsKKzBBRTIgMDAzRjsKKzBBQ0IgMDAzRjsKKzBCMDcgMDA2MjsKKzBCMEMgMDA2MjsKKzBCMTUgMDA2MjsKKzBCMUIgMDA2MjsKKzBCNUMgMDAyMTsKKzBCMjQgMDA0MTsKKzBCMkIgMDA0MTsKKzBCMzAgMDA0MTsKKzBCMzcgMDA0MTsKKzBCNDAgMDA0MTsKKzBCNDcgMUQxNjUgMEI1NyAwMDYxOworMEI0QyAwMDYyOworMEI4NiAwMDYxOworMEI4RiAwMDYxOworMEI5NCAwMDYyOworMEI5RiAwMDYyOworMEJBRSAwMDYyOworMEJCNCAwMDYyOworMEJCRSAwMDYyOworMEJDNiAwNTkxIDBCRDcgMDA2MTsKKzBCQ0IgMDA2MTsKKzBDMDUgMDA0MTsKKzBDMEIgMDA0MTsKKzBDMTAgMDA0MTsKKzBDMTcgMDA0MTsKKzBDMUQgMDA0MTsKKzBDMjMgMDA0MTsKKzBDMkEgMDA0MTsKKzBDMzAgMDA0MTsKKzBDMzcgMDA0MTsKKzBDNDEgMDA0MTsKKzBDNDggMDMzNDsKKzBDNEQgMDAyMTsKKzBDODcgMDAzRjsKKzBDOEMgMDAzRjsKKzBDOTMgMDAzRjsKKzBDOTkgMDAzRjsKKzBDOUYgMDAzRjsKKzBDQTUgMDAzRjsKKzBDQUMgMDAzRjsKKzBDQjIgMDAzRjsKKzBDQjMgMDAzRjsKKzBDQzAgMDAzRjsKKzBDQzYgMDA0MTsKKzBDQzYgMENENiAwMDQxOworMENDQSAwQ0Q1IDAwNDE7CiswRDA1IDAwNDE7CiswRDBCIDAwNDE7CiswRDEwIDAwNDE7CiswRDE3IDAwNDE7CiswRDFEIDAwNDE7CiswRDIzIDAwNDE7CiswRDJBIDAwNDE7CiswRDMwIDAwNDE7CiswRDM2IDAwNDE7CiswRDQwIDAwNDE7CiswRDQ3IDAwNjE7CiswRDRCIDAwNjI7CiswRDg2IDAwNjE7CiswRDhDIDAwNjE7CiswRDkyIDAwNjE7CiswRDlCIDAwNjE7CiswREExIDAwNjE7CiswREE3IDAwNjE7CiswREFEIDAwNjE7CiswREI0IDAwNjE7CiswREJBIDAwNjE7CiswREMzIDAwNjE7CiswREQwIDAwMjE7CiswREQ4IDAwMjE7CiswRERBIDAwNjE7CiswRERDIDBEQ0EgMDAzRjsKKzBERjIgMDAyMTsKK0E4MDQgMDAyMTsKK0E4MDkgMDA0MTsKK0E4MTAgMDA0MTsKK0E4MTYgMDA0MTsKK0E4MUMgMDA0MTsKK0E4MjIgMDA0MTsKKzEwQTAwIDAwNDE7CisxMEEwQyAwMDQxOworMTBBMTYgMDA0MTsKKzEwQTFEIDAwNDE7CisxMEEyMyAwMDQxOworMTBBMjkgMDA0MTsKKzEwQTJGIDAwNDE7CiswRTAxIDAwM0Y7CiswRTAyIDAwM0Y7CiswRTAzIDAwM0Y7CiswRTA0IDAwM0Y7CiswRTA1IDAwM0Y7CiswRTA2IDAwM0Y7CiswRTA3IDAwM0Y7CiswRTA4IDAwM0Y7CiswRTA5IDAwM0Y7CiswRTBBIDAwM0Y7CiswRTBCIDAwM0Y7CiswRTBDIDAwM0Y7CiswRTBEIDAwM0Y7CiswRTBFIDAwM0Y7CiswRTBGIDAwM0Y7CiswRTEwIDAwM0Y7CiswRTExIDAwM0Y7CiswRTEyIDAwM0Y7CiswRTEzIDAwM0Y7CiswRTE0IDAwM0Y7CiswRTE1IDAwM0Y7CiswRTE2IDAwM0Y7CiswRTE3IDAwM0Y7CiswRTE4IDAwM0Y7CiswRTE5IDAwM0Y7CiswRTFBIDAwM0Y7CiswRTFCIDAwM0Y7CiswRTFDIDAwM0Y7CiswRTFEIDAwM0Y7CiswRTFFIDAwM0Y7CiswRTFGIDAwM0Y7CiswRTIwIDAwM0Y7CiswRTIxIDAwM0Y7CiswRTIyIDAwM0Y7CiswRTIzIDAwM0Y7CiswRTI0IDAwM0Y7CiswRTI1IDAwM0Y7CiswRTI2IDAwM0Y7CiswRTI3IDAwM0Y7CiswRTI4IDAwM0Y7CiswRTI5IDAwM0Y7CiswRTJBIDAwM0Y7CiswRTJCIDAwM0Y7CiswRTJDIDAwM0Y7CiswRTJEIDAwM0Y7CiswRTJFIDAwM0Y7CiswRTJGIDAwM0Y7CiswRTMzIDAwNjI7CiswRTM5IDAzMzQ7CiswRTQwIDAwMDEgMEUwNSAwMDYxOworMEU0MCAwMDAxIDBFMEYgMDA2MTsKKzBFNDAgMDAwMSAwRTE5IDAwNjE7CiswRTQwIDAwMDEgMEUyMyAwMDYxOworMEU0MCAwMDAxIDBFMkQgMDA2MTsKKzBFNDEgMDU5MSAwRTA3IDAwNjE7CiswRTQxIDA1OTEgMEUxMSAwMDYxOworMEU0MSAwNTkxIDBFMUIgMDA2MTsKKzBFNDEgMDU5MSAwRTI1IDAwNjE7CiswRTQyIDAwM0Y7CiswRTQyIDFEMTY1IDBFMDkgMDA2MTsKKzBFNDIgMUQxNjUgMEUxMyAwMDYxOworMEU0MiAxRDE2NSAwRTFEIDAwNjE7CiswRTQyIDFEMTY1IDBFMjcgMDA2MTsKKzBFNDMgMDAwMSAwRTAyIDAwNjE7CiswRTQzIDAwMDEgMEUwQyAwMDYxOworMEU0MyAwMDAxIDBFMTYgMDA2MTsKKzBFNDMgMDAwMSAwRTIwIDAwNjE7CiswRTQzIDAwMDEgMEUyQSAwMDYxOworMEU0NCAwNTkxIDBFMDQgMDA2MTsKKzBFNDQgMDU5MSAwRTBFIDAwNjE7CiswRTQ0IDA1OTEgMEUxOCAwMDYxOworMEU0NCAwNTkxIDBFMjIgMDA2MTsKKzBFNDQgMDU5MSAwRTJDIDAwNjE7CiswRUMyIDBFODEgMDA2MTsKKzBFQzIgMEU4MiAwMDYxOworMEVDMiAwRTg0IDAwNjE7CiswRUMyIDBFODcgMDA2MTsKKzBFQzIgMEU4OCAwMDYxOworMEVDMiAwRThBIDAwNjE7CiswRUMyIDBFOEQgMDA2MTsKKzBFQzIgMEU5NCAwMDYxOworMEVDMiAwRTk1IDAwNjE7CiswRUMyIDBFOTYgMDA2MTsKKzBFQzIgMEU5NyAwMDYxOworMEVDMiAwRTk5IDAwNjE7CiswRUMyIDBFOUEgMDA2MTsKKzBFQzIgMEU5QiAwMDYxOworMEVDMiAwRTlDIDAwNjE7CiswRUMyIDBFOUQgMDA2MTsKKzBFQzIgMEU5RSAwMDYxOworMEVDMiAwRTlGIDAwNjE7CiswRUMyIDBFQTEgMDA2MTsKKzBFQzIgMEVBMiAwMDYxOworMEVDMiAwRUEzIDAwNjE7CiswRUMyIDBFQTUgMDA2MTsKKzBFQzIgMEVBNyAwMDYxOworMEVDMiAwRUFBIDAwNjE7CiswRUMxIDBFREMgMDA2MTsKKzBFQzEgMEVERCAwMDYxOworMEVDMiAwRUFCIDAwNjE7CiswRUMyIDBFQUQgMDA2MTsKKzBFQzIgMEVBRSAwMDYxOworMEVCMiAwMDYxOworMEVCNiAwMDYyOworMEVCRCAwMDIxOworMEVDMCAxRDE2NSAwRThEIDAwNjE7CiswRUMwIDFEMTY1IDBFOUUgMDA2MTsKKzBFQzAgMUQxNjUgMEVERCAwMDYxOworMEVDMSAwMDAxIDBFOEQgMDA2MTsKKzBFQzEgMDAwMSAwRTlFIDAwNjE7CiswRUMxIDAwMDEgMEVERCAwMDYxOworMEVDMiAwNTkxIDBFOEEgMDA2MTsKKzBFQzIgMDU5MSAwRTlEIDAwNjE7CiswRUMyIDA1OTEgMEVEQyAwMDYxOworMEVDMyAxRDE2NSAwRTg4IDAwNjE7CiswRUMzIDFEMTY1IDBFOUMgMDA2MTsKKzBFQzMgMUQxNjUgMEVBQiAwMDYxOworMEVDNCAwMDAxIDBFODggMDA2MTsKKzBFQzQgMDAwMSAwRTlDIDAwNjE7CiswRUM0IDAwMDEgMEVBQiAwMDYxOworMEZCOSAwMDIxOworMEY5MyAwMDIxOworMEY5NiAwMDIxOworMEY5QSAwMDIxOworMEY5RCAwMDIxOworMEZBMCAwMDIxOworMEZBMyAwMDIxOworMEY1NyAwMDIxOworMEZBOSAwMDIxOworMEZBQyAwMDIxOworMEY1RiAwMDIxOworMEZCMSAwMDQxOworMEZCMiAxRDE2NSAwRjcxIDAwNjE7CiswRjY0IDAwM0Y7CiswRjY3IDAwM0Y7CiswRjg5IDAwM0Y7CiswRjcyIDAwNjI7CiswRjcxIDBGODAgMDAzRjsKKzBGNzUgMDA0MTsKKzBGQjIgMEY4MSAwMDYxOworMEY3OSAwMDYxOworMEY3QyAwMzM0OworMTkwMiAwMDIxOworMTkwOCAwMDIxOworMTkwRSAwMDIxOworMTkxNCAwMDIxOworMTkxQSAwMDIxOworMTkyMyAwMDIxOworMTkyOSAwMDIxOworMTkzMyAwMDIxOworMTcwMCAwMDIxOworMTcwNiAwMDIxOworMTcwQyAwMDIxOworMTcxMyAwMDIxOworMTcyMyAwMDQxOworMTcyOSAwMDQxOworMTcyRiAwMDQxOworMTc0MCAwMDNGOworMTc0NiAwMDNGOworMTc0QyAwMDNGOworMTc1MiAwMDNGOworMTc2NCAwMDNGOworMTc2QSAwMDNGOworMTc3MiAwMDNGOworMUEwNCAwMDNGOworMUEwQSAwMDNGOworMUExMCAwMDNGOworMUExNiAwMDNGOworMUExQiAwMDYxOworMTAwNSAwMDYxOworMTAwQiAwMDYxOworMTAxMSAwMDYxOworMTAxNyAwMDYxOworMTAxRCAwMDYxOworMTAyMSAwMDYxOworMTAyNiAwMDYyOworMTA1NCAwMDYyOworMTAzMCAwMDYyOworMTA1OSAwMDYyOworMTc4NCAwMDYxOworMTc4QSAwMDYxOworMTc5MCAwMDYxOworMTc5NiAwMDYxOworMTc5QyAwMDYxOworMTdBMiAwMDYxOworMTdBNyAwMDYxOworMTdBRCAwMDYxOworMTdCMyAwMDYxOworMTdCOSAwMDYxOworMTdCRiAwMDYxOworMTdDNSAwMDYxOworMTk1NCAwMDIxOworMTk1QSAwMDIxOworMTk2MCAwMDIxOworMTk2NiAwMDIxOworMTk2QyAwMDIxOworMTk3NCAwMDIxOworMTk4NSAwMDIxOworMTk4QiAwMDIxOworMTk5MSAwMDIxOworMTk5NyAwMDIxOworMTlERSAwMDIxOworMTlBMSAwMDIxOworMTlBNyAwMDIxOworMTlCMyAwMDIxOworMTlCOSAwMDIxOworMTlCRiAwMDIxOworMTlDNSAwMDIxOworMTg4MSAwMDIxOworMTg0MyAwMDIxOworMTgyMiAwMDIxOworMTgyMyAwMDIxOworMTg0OCAwMDIxOworMTgyOSAwMDIxOworMTg0QiAwMDIxOworMTgyRCAwMDIxOworMTg0RiAwMDIxOworMTg5RCAwMDIxOworMTg2OCAwMDIxOworMTg3MSAwMDIxOworMTg3NyAwMDIxOworMTgzOCAwMDIxOworMTg1NyAwMDIxOworMTg1NCAwMDIxOworMTgzRSAwMDIxOworMTg0MiAwMDIxOworMTg4RCAwMDIxOworMThBMCAwMDIxOworMTg5NCAwMDIxOworMThBNiAwMDIxOworMTNBMiAwMDQxOworMTNBOCAwMDQxOworMTNBRSAwMDQxOworMTNCNCAwMDQxOworMTNCQSAwMDQxOworMTNDMCAwMDQxOworMTNDNiAwMDQxOworMTNDQyAwMDQxOworMTNEMiAwMDQxOworMTNEOCAwMDQxOworMTNERSAwMDQxOworMTNFNCAwMDQxOworMTNFQSAwMDQxOworMTNGMCAwMDQxOworMTQwMiAwMDQxOworMTQwOCAwMDQxOworMTQwRSAwMDQxOworMTQxNCAwMDQxOworMTQxQSAwMDQxOworMTQyMCAwMDQxOworMTQyNiAwMDQxOworMTQyQyAwMDQxOworMTQzMiAwMDQxOworMTQzOCAwMDQxOworMTQzRSAwMDQxOworMTQ0NCAwMDQxOworMTQ0QSAwMDQxOworMTQ1MCAwMDQxOworMTQ1NiAwMDQxOworMTQ1QyAwMDQxOworMTQ2MiAwMDQxOworMTQ2OCAwMDQxOworMTQ2RSAwMDQxOworMTQ3NCAwMDQxOworMTQ3QSAwMDQxOworMTQ4MCAwMDQxOworMTQ4NiAwMDQxOworMTQ4QyAwMDQxOworMTQ5MiAwMDQxOworMTQ5OCAwMDQxOworMTQ5RSAwMDQxOworMTRBNCAwMDQxOworMTRBQSAwMDQxOworMTRCMCAwMDQxOworMTRCNiAwMDQxOworMTRCQyAwMDQxOworMTRDMiAwMDQxOworMTRDOCAwMDQxOworMTRDRSAwMDQxOworMTRENCAwMDQxOworMTREQSAwMDQxOworMTRFMCAwMDQxOworMTRFNiAwMDQxOworMTRFQyAwMDQxOworMTRGMiAwMDQxOworMTRGOCAwMDQxOworMTRGRSAwMDQxOworMTUwNCAwMDQxOworMTUwQSAwMDQxOworMTUxMCAwMDQxOworMTUxNiAwMDQxOworMTUxQyAwMDQxOworMTUyMiAwMDQxOworMTUyOCAwMDQxOworMTUyRSAwMDQxOworMTUzNCAwMDQxOworMTUzQSAwMDQxOworMTU0MCAwMDQxOworMTU0NiAwMDQxOworMTU0QyAwMDQxOworMTU1MiAwMDQxOworMTU1OCAwMDQxOworMTU1RSAwMDQxOworMTU2NCAwMDQxOworMTU2QSAwMDQxOworMTU3MCAwMDQxOworMTU3NiAwMDQxOworMTU3RCAwMDQxOworMTU4MiAwMDQxOworMTU4OCAwMDQxOworMTY3MCAwMDQxOworMTU5MyAwMDQxOworMTY3NCAwMDQxOworMTU5OSAwMDQxOworMTU5RiAwMDQxOworMTVBNSAwMDQxOworMTVBQSAwMDQxOworMTVCMCAwMDQxOworMTVCNiAwMDQxOworMTVCQyAwMDQxOworMTVDMiAwMDQxOworMTVDOCAwMDQxOworMTVDRSAwMDQxOworMTVENCAwMDQxOworMTVEQSAwMDQxOworMTVFMCAwMDQxOworMTVFNiAwMDQxOworMTVFQyAwMDQxOworMTVGMiAwMDQxOworMTVGOCAwMDQxOworMTVGRSAwMDQxOworMTYwNCAwMDQxOworMTYwQSAwMDQxOworMTYxMCAwMDQxOworMTYxNiAwMDQxOworMTYxQyAwMDQxOworMTYyMiAwMDQxOworMTYyOCAwMDQxOworMTYyRSAwMDQxOworMTYzNCAwMDQxOworMTYzQSAwMDQxOworMTY0MCAwMDQxOworMTY0NiAwMDQxOworMTY0QyAwMDQxOworMTY1MiAwMDQxOworMTY1OCAwMDQxOworMTY1RSAwMDQxOworMTY2NCAwMDQxOworMTY2QSAwMDQxOworMTY4NCAwMDQxOworMTY4QSAwMDQxOworMTY5MCAwMDQxOworMTY5NiAwMDQxOworMTZBMCAwMDYyOworMTZGMCAwMDQxOworMTZBRiAwMDQxOworMTZCNiAwMDYxOworMTZCQSAwMDYxOworMTZDMiAwMDNGOworMTZFRSAwMDQxOworMTZFQSAwMDNGOworMTZEMCAwMDYxOworMTZENyAwMDNGOworMTZERCAwMDNGOworMTZBMyAwMDQxOworMTZFMiAwMDQxOworMTEwMCAwMDYxOworQUMwMCAxMTYxIDAwMjE7CitBQzAzIDAwNjI7CitGRkEyIDAwNDE7CiszMTM3IDAwMjE7CisxMTA0IDAwNjE7CiszMjcxIDAwM0Y7CiszMTQyIDAwMjE7CisxMTA4IDAwNjE7CiszMjc0IDAwM0Y7CiszMTQ3IDAwNDE7CiszMTQ4IDAwNDE7CitGRkI5IDAwNDE7CiszMjdDIDAwM0Y7CiszMTRDIDAwMjE7CiszMjZDIDAwM0Y7CiszMTRFIDAwNDE7CitENzg4IDExNjEgMDAyMTsKK0Q3QTAgMDA2MjsKKzMxNjUgMDA2MjsKKzExMTkgMDA2MjsKKzMxNkUgMDA2MjsKKzExMjAgMDA2MTsKKzMxNzQgMDA2MjsKKzExMjcgMDA2MTsKKzExMkIgMDA2MTsKKzExMkUgMDA2MTsKKzExMzIgMDA2MTsKKzMxN0UgMDA2MjsKKzExM0MgMDA2MjsKKzExNDEgMDA2MjsKKzExNDcgMDA2MTsKKzExNEMgMDA2MTsKKzExNTEgMDA2MjsKKzExNTcgMDA2MTsKKzExNUYgMDA2MjsKK0ZGQzIgMDA2MjsKK0ZGQzQgMDA2MjsKK0ZGQzYgMDA2MjsKK0ZGQ0EgMDA2MjsKK0ZGQ0MgMDA2MjsKK0ZGQ0UgMDA2MjsKK0ZGRDIgMDA2MjsKK0ZGRDQgMDA2MjsKK0ZGRDYgMDA2MjsKK0ZGREEgMDA2MjsKK0ZGREMgMDA2MjsKKzExN0IgMDA2MjsKKzExODEgMDA2MjsKKzMxODggMDA2MjsKKzExOEEgMDA2MjsKKzExOTAgMDA2MjsKKzExOTQgMDA2MTsKKzExOTkgMDA2MjsKKzMxOEQgMDA2MjsKKzExQTggMDA2MjsKKzMxMzUgMDAzRjsKKzExQUUgMDA2MjsKKzMxM0IgMDA0MTsKKzMxM0QgMDA0MTsKKzMxM0YgMDA0MTsKKzExQkEgMDA2MjsKKzExQzAgMDA2MjsKKzExQzYgMDA2MjsKKzExQ0EgMDA2MjsKKzMxNkEgMDA2MjsKKzMxNkIgMDA2MjsKKzExRDggMDA2MjsKKzExREQgMDA2MTsKKzExRTEgMDA2MjsKKzExRTcgMDA2MjsKKzExRUQgMDA2MjsKKzExRjIgMDA2MTsKKzExRjcgMDA2MjsKKzMwNDEgMDA2MTsKKzMzMDEgMDA2MjsKK0ZGNzIgMDA2MTsKK0ZGNjkgMDAyMTsKKzMwOTQgMDA0MTsKKzMyRDMgMDAzRjsKKzMzMDcgMDA0MTsKKzMwQUEgMDA0MTsKKzMwQUMgMDAyMTsKKzMyRDUgMDA2MjsKKzMwNEUgMDMzNDsKK0ZGNzcgMDA2MjsKKzMzMTUgMDAzRjsKK0ZGNzggMDAzRjsKKzMzMTkgMDAyMTsKKzMwNTEgMDAzRjsKKzMwRjYgMDA2MjsKKzMwNTMgMDA0MTsKKzMwQjUgMDMzNCAzMDk5OworMzJEQSAwMDYyOworMzJEQiAwMDNGOworMzMyMSAwMDNGOworRkY3RCAwMDYxOworMzJERCAwMDNGOworMzMyMyAwMDYyOworMzBCRSAwMDQxOworMzA1RiAwMDYxOworMzA2MSAwMDNGOworMzA2MyAwMDIxOworMzJFMSAwMDYxOworMzJFMiAwMDNGOworMzBDOCAzMDk5IDAzMzQ7CiszMDY4IDAwNjI7CitGRjg1IDAwNDE7CitGRjg2IDAwNjI7CiszMkU3IDAwMjE7CitGRjg5IDAwNDE7CiszMEQwIDAwMjE7CiszMUY1IDAwNDE7CiszMDcyIDMwOTkgMDMzNDsKKzMwNzIgMDA0MTsKKzMzMkUgMDA2MjsKKzMwRDUgMDAyMTsKKzMwNzcgMDA2MTsKKzMzMzUgMDA2MTsKKzMwRDkgMDAzRjsKKzMwREEgMDA0MTsKKzMzM0EgMDAyMTsKKzMyRUQgMDAzRjsKKzMwN0QgMDA0MTsKKzMzNDAgMDA0MTsKKzMzNDQgMDA0MTsKKzMwN0YgMDA2MTsKK0ZGOTEgMDAyMTsKKzMzNEQgMDAyMTsKKzMyRjIgMDAyMTsKKzMyRjMgMDAzRjsKK0ZGOTQgMDA2MjsKKzMwODUgMDA2MjsKKzMwRTcgMDA2MTsKK0ZGOTcgMDAzRjsKKzMxRkMgMDA0MTsKK0ZGOTkgMDAzRjsKK0ZGOUEgMDAyMTsKKzMzNTYgMDA0MTsKKzMwOEUgMDAyMTsKKzMwRUUgMDA2MjsKKzMwRjAgMDA2MjsKKzMwRjIgMDAyMTsKKzMwOTMgMDA2MTsKKzMxMDcgMDAzRjsKKzMxMEIgMDAzRjsKKzMxMkIgMDAzRjsKKzMxMTEgMDAzRjsKKzMxMTYgMDAzRjsKKzMxQTkgMDA2MTsKKzMxQTUgMDAyMTsKKzMxQUYgMDA2MTsKKzMxMjUgMDAzRjsKKzMxMjcgMDA2MTsKK0EwMDAgMDAzRjsKK0EwMDYgMDAzRjsKK0EwMEMgMDAzRjsKK0EwMTIgMDAzRjsKK0EwMTggMDAzRjsKK0EwMUUgMDAzRjsKK0EwMjQgMDAzRjsKK0EwMkEgMDAzRjsKK0EwMzAgMDAzRjsKK0EwMzYgMDAzRjsKK0EwM0MgMDAzRjsKK0EwNDIgMDAzRjsKK0EwNDggMDAzRjsKK0EwNEUgMDAzRjsKK0EwNTQgMDAzRjsKK0EwNUEgMDAzRjsKK0EwNjAgMDAzRjsKK0EwNjYgMDAzRjsKK0EwNkMgMDAzRjsKK0EwNzIgMDAzRjsKK0EwNzggMDAzRjsKK0EwN0UgMDAzRjsKK0EwODQgMDAzRjsKK0EwOEEgMDAzRjsKK0EwOTAgMDAzRjsKK0EwOTYgMDAzRjsKK0EwOUMgMDAzRjsKK0EwQTIgMDAzRjsKK0EwQTggMDAzRjsKK0EwQUUgMDAzRjsKK0EwQjQgMDAzRjsKK0EwQkEgMDAzRjsKK0EwQzAgMDAzRjsKK0EwQzYgMDAzRjsKK0EwQ0MgMDAzRjsKK0EwRDIgMDAzRjsKK0EwRDggMDAzRjsKK0EwREUgMDAzRjsKK0EwRTQgMDAzRjsKK0EwRUEgMDAzRjsKK0EwRjAgMDAzRjsKK0EwRjYgMDAzRjsKK0EwRkMgMDAzRjsKK0ExMDIgMDAzRjsKK0ExMDggMDAzRjsKK0ExMEUgMDAzRjsKK0ExMTQgMDAzRjsKK0ExMUEgMDAzRjsKK0ExMjAgMDAzRjsKK0ExMjYgMDAzRjsKK0ExMkMgMDAzRjsKK0ExMzIgMDAzRjsKK0ExMzggMDAzRjsKK0ExM0UgMDAzRjsKK0ExNDQgMDAzRjsKK0ExNEEgMDAzRjsKK0ExNTAgMDAzRjsKK0ExNTYgMDAzRjsKK0ExNUMgMDAzRjsKK0ExNjIgMDAzRjsKK0ExNjggMDAzRjsKK0ExNkUgMDAzRjsKK0ExNzQgMDAzRjsKK0ExN0EgMDAzRjsKK0ExODAgMDAzRjsKK0ExODYgMDAzRjsKK0ExOEMgMDAzRjsKK0ExOTIgMDAzRjsKK0ExOTggMDAzRjsKK0ExOUUgMDAzRjsKK0ExQTQgMDAzRjsKK0ExQUEgMDAzRjsKK0ExQjAgMDAzRjsKK0ExQjYgMDAzRjsKK0ExQkMgMDAzRjsKK0ExQzIgMDAzRjsKK0ExQzggMDAzRjsKK0ExQ0UgMDAzRjsKK0ExRDQgMDAzRjsKK0ExREEgMDAzRjsKK0ExRTAgMDAzRjsKK0ExRTYgMDAzRjsKK0ExRUMgMDAzRjsKK0ExRjIgMDAzRjsKK0ExRjggMDAzRjsKK0ExRkUgMDAzRjsKK0EyMDQgMDAzRjsKK0EyMEEgMDAzRjsKK0EyMTAgMDAzRjsKK0EyMTYgMDAzRjsKK0EyMUMgMDAzRjsKK0EyMjIgMDAzRjsKK0EyMjggMDAzRjsKK0EyMkUgMDAzRjsKK0EyMzQgMDAzRjsKK0EyM0EgMDAzRjsKK0EyNDAgMDAzRjsKK0EyNDYgMDAzRjsKK0EyNEMgMDAzRjsKK0EyNTIgMDAzRjsKK0EyNTggMDAzRjsKK0EyNUUgMDAzRjsKK0EyNjQgMDAzRjsKK0EyNkEgMDAzRjsKK0EyNzAgMDAzRjsKK0EyNzYgMDAzRjsKK0EyN0MgMDAzRjsKK0EyODIgMDAzRjsKK0EyODggMDAzRjsKK0EyOEUgMDAzRjsKK0EyOTQgMDAzRjsKK0EyOUEgMDAzRjsKK0EyQTAgMDAzRjsKK0EyQTYgMDAzRjsKK0EyQUMgMDAzRjsKK0EyQjIgMDAzRjsKK0EyQjggMDAzRjsKK0EyQkUgMDAzRjsKK0EyQzQgMDAzRjsKK0EyQ0EgMDAzRjsKK0EyRDAgMDAzRjsKK0EyRDYgMDAzRjsKK0EyREMgMDAzRjsKK0EyRTIgMDAzRjsKK0EyRTggMDAzRjsKK0EyRUUgMDAzRjsKK0EyRjQgMDAzRjsKK0EyRkEgMDAzRjsKK0EzMDAgMDAzRjsKK0EzMDYgMDAzRjsKK0EzMEMgMDAzRjsKK0EzMTIgMDAzRjsKK0EzMTggMDAzRjsKK0EzMUUgMDAzRjsKK0EzMjQgMDAzRjsKK0EzMkEgMDAzRjsKK0EzMzAgMDAzRjsKK0EzMzYgMDAzRjsKK0EzM0MgMDAzRjsKK0EzNDIgMDAzRjsKK0EzNDggMDAzRjsKK0EzNEUgMDAzRjsKK0EzNTQgMDAzRjsKK0EzNUEgMDAzRjsKK0EzNjAgMDAzRjsKK0EzNjYgMDAzRjsKK0EzNkMgMDAzRjsKK0EzNzIgMDAzRjsKK0EzNzggMDAzRjsKK0EzN0UgMDAzRjsKK0EzODQgMDAzRjsKK0EzOEEgMDAzRjsKK0EzOTAgMDAzRjsKK0EzOTYgMDAzRjsKK0EzOUMgMDAzRjsKK0EzQTIgMDAzRjsKK0EzQTggMDAzRjsKK0EzQUUgMDAzRjsKK0EzQjQgMDAzRjsKK0EzQkEgMDAzRjsKK0EzQzAgMDAzRjsKK0EzQzYgMDAzRjsKK0EzQ0MgMDAzRjsKK0EzRDIgMDAzRjsKK0EzRDggMDAzRjsKK0EzREUgMDAzRjsKK0EzRTQgMDAzRjsKK0EzRUEgMDAzRjsKK0EzRjAgMDAzRjsKK0EzRjYgMDAzRjsKK0EzRkMgMDAzRjsKK0E0MDIgMDAzRjsKK0E0MDggMDAzRjsKK0E0MEUgMDAzRjsKK0E0MTQgMDAzRjsKK0E0MUEgMDAzRjsKK0E0MjAgMDAzRjsKK0E0MjYgMDAzRjsKK0E0MkMgMDAzRjsKK0E0MzIgMDAzRjsKK0E0MzggMDAzRjsKK0E0M0UgMDAzRjsKK0E0NDQgMDAzRjsKK0E0NEEgMDAzRjsKK0E0NTAgMDAzRjsKK0E0NTYgMDAzRjsKK0E0NUMgMDAzRjsKK0E0NjIgMDAzRjsKK0E0NjggMDAzRjsKK0E0NkUgMDAzRjsKK0E0NzQgMDAzRjsKK0E0N0EgMDAzRjsKK0E0ODAgMDAzRjsKK0E0ODYgMDAzRjsKK0E0OEMgMDAzRjsKKzEwMzA1IDAwM0Y7CisxMDMwQiAwMDNGOworMTAzMTEgMDAzRjsKKzEwMzE3IDAwM0Y7CisxMDMxRCAwMDNGOworMTAzMzQgMDAzRjsKKzEwMzNBIDAwM0Y7CisxMDM0MCAwMDNGOworMTAzNDYgMDAzRjsKKzEwNDAwIDAwNjE7CisxMDQwMyAwMDYxOworMTA0MDYgMDA2MTsKKzEwNDA5IDAwNjE7CisxMDQwQyAwMDYxOworMTA0MEYgMDA2MTsKKzEwNDEyIDAwNjE7CisxMDQxNSAwMDYxOworMTA0MTggMDA2MTsKKzEwNDFCIDAwNjE7CisxMDQxRSAwMDYxOworMTA0MjEgMDA2MTsKKzEwNDI0IDAwNjE7CisxMDQyNyAwMDYxOworMTA0NTUgMDAzRjsKKzEwNDVCIDAwM0Y7CisxMDQ2MSAwMDNGOworMTA0NjcgMDAzRjsKKzEwNDZEIDAwM0Y7CisxMDQ3MyAwMDNGOworMTA0NzkgMDAzRjsKKzEwNDdGIDAwM0Y7CisxMDQ4NSAwMDNGOworMTA0OEIgMDAzRjsKKzEwNDkxIDAwM0Y7CisxMDQ5NyAwMDNGOworMTA0OUQgMDAzRjsKKzEwMDA1IDAwM0Y7CisxMDAwQiAwMDNGOworMTAwMTIgMDAzRjsKKzEwMDE4IDAwM0Y7CisxMDAxRSAwMDNGOworMTAwMjQgMDAzRjsKKzEwMDJCIDAwM0Y7CisxMDAzMSAwMDNGOworMTAwMzcgMDAzRjsKKzEwMDNGIDAwM0Y7CisxMDA0NSAwMDNGOworMTAwNEIgMDAzRjsKKzEwMDUzIDAwM0Y7CisxMDA1OSAwMDNGOworMTAwODEgMDAzRjsKKzEwMDg3IDAwM0Y7CisxMDA4RCAwMDNGOworMTAwOTMgMDAzRjsKKzEwMDk5IDAwM0Y7CisxMDA5RiAwMDNGOworMTAwQTUgMDAzRjsKKzEwMEFCIDAwM0Y7CisxMDBCMSAwMDNGOworMTAwQjcgMDAzRjsKKzEwMEJEIDAwM0Y7CisxMDBDMyAwMDNGOworMTAwQzkgMDAzRjsKKzEwMENGIDAwM0Y7CisxMDBENSAwMDNGOworMTAwREIgMDAzRjsKKzEwMEUxIDAwM0Y7CisxMDBFNyAwMDNGOworMTAwRUQgMDAzRjsKKzEwMEYzIDAwM0Y7CisxMDBGOSAwMDNGOworMTA4MDQgMDAzRjsKKzEwODBEIDAwM0Y7CisxMDgxMyAwMDNGOworMTA4MTkgMDAzRjsKKzEwODFGIDAwM0Y7CisxMDgyNSAwMDNGOworMTA4MkIgMDAzRjsKKzEwODMxIDAwM0Y7CisxMDgzOCAwMDNGOworMTAzODMgMDAzRjsKKzEwMzg5IDAwM0Y7CisxMDM4RiAwMDNGOworMTAzOTUgMDAzRjsKKzEwMzlCIDAwM0Y7CisxMDNBMyAwMDNGOworMTAzQTkgMDAzRjsKKzEwM0FGIDAwM0Y7CisxMDNCNSAwMDNGOworMTAzQkIgMDAzRjsKKzEwM0MxIDAwM0Y7CisxMDNDQiAwMDNGOworMzI4MCAwMDNGOworMzI4NiAwMDIxOworMzE5NiAwMDIxOworRkE3MCAwMDNGOworMkU4MCAwMDIxOworMkY4MDIgMDAzRjsKKzMyODggMDAzRjsKKzMxOTMgMDA0MTsKKzJFODUgMDAzRjsKKzJGODA0IDAwM0Y7CisyRjgwNiAwMDNGOworMkY4MEIgMDAzRjsKK0ZBMEMgMDAzRjsKKzJGMEEgMDAzRjsKKzMyODUgMDAyMTsKKzJGODE1IDAwM0Y7CisyRjgxOCAwMDNGOworRjk3OSAwMDNGOworMkYxMCAwMDIxOworMkY4NTAgMDAyMTsKKzJGODIxIDAwM0Y7CitGOTlEIDAwM0Y7CitGQTMzIDAwNDE7CisyRjEzIDAwM0Y7CisyRjgyQiAwMDIxOworMzAzOCAwMDIxOworMkY4MkQgMDAyMTsKKzJFOEIgMDAyMTsKKzJGODMyIDAwMjE7CitGOTZCIDAwM0Y7CisyRjgzOSAwMDNGOworRjlFRCAwMDNGOworMkY4NDAgMDAzRjsKKzJGODQ0IDAwM0Y7CitGQTc4IDAwMjE7CitGQTdCIDAwM0Y7CisyRjFFIDAwM0Y7CiszMjhGIDAwMjE7CisyRjg1NCAwMDNGOworRjk2QyAwMDNGOworMkYyMCAwMDNGOworMkYyMiAwMDNGOworMzM3RCAwMDNGOworMkY4NUYgMDAzRjsKKzJGODYzIDAwM0Y7CitGQTgxIDAwM0Y7CitGQTA0IDAwM0Y7CisyRjg2RiAwMDQxOworMkU4QyAwMDIxOworMkY4NzUgMDA2MjsKK0Y5NEIgMDAzRjsKKzJGMkQgMDAzRjsKKzJGODdGIDAwM0Y7CisyRjg4MSAwMDNGOworMkY4ODQgMDAzRjsKKzMzN0IgMDAzRjsKKzJGODhCIDAwM0Y7CitGQTgyIDAwM0Y7CisyRjM2IDAwNjE7CisyRTk1IDAwMjE7CitGQTg0IDAwM0Y7CitGQTg1IDAwM0Y7CitGOUEzIDAwM0Y7CitGQTNEIDAwNDE7CisyRjhBNiAwMDNGOworRkEzRSAwMDNGOworMkY4QUQgMDAzRjsKKzJGOEIwIDAwNDE7CisyRjhCMyAwMDNGOworMkY4QjQgMDAzRjsKKzJGOEJBIDAwM0Y7CisyRjhCQyAwMDNGOworRkE4RSAwMDNGOworRjk5MSAwMDNGOworMkY4QzggMDAyMTsKKzJGNDMgMDAzRjsKKzJFOUIgMDAzRjsKKzMzN0UgMDAzRjsKK0Y5QzUgMDAzRjsKKzJGNDggMDAzRjsKKzJFOUQgMDA0MTsKK0ZBOTMgMDA0MTsKK0ZBOTQgMDAzRjsKKzJGOERGIDAwM0Y7CitGOTdBIDAwM0Y7CisyRjhFOCAwMDNGOworRjk0QyAwMDNGOworMkY4RUYgMDAzRjsKKzJGNEQgMDAyMTsKK0ZBOTYgMDAyMTsKKzJGNTAgMDAzRjsKKzMyOEMgMDA2MTsKKzJGOEZDIDAwM0Y7CitGOTE1IDAwM0Y7CisyRjkwMiAwMDQxOworMkY5MDUgMDAzRjsKKzJGOTA4IDAwM0Y7CitGQTk5IDAwNDE7CitGOTkyIDAwM0Y7CisyRjkxNCAwMDIxOworMkVBMyAwMDNGOworRjk5RiAwMDNGOworMkY5MUUgMDAzRjsKKzJGNTYgMDAzRjsKKzJGNTcgMDAzRjsKKzJFQTcgMDAyMTsKKzJGNUQgMDAzRjsKK0ZBMTYgMDA0MTsKKzJGNUYgMDAzRjsKK0Y5RTQgMDAzRjsKKzJGOTMwIDAwMjE7CisyRjYwIDAwM0Y7CisyRjY0IDAwM0Y7CitGOUNEIDAwM0Y7CisyRjY3IDAwM0Y7CitGOTBFIDAwM0Y7CitGQTE3IDAwNDE7CisyRjk0MCAwMDIxOworRkFBQSAwMDNGOworMkY2RSAwMDNGOworRkE0QiAwMDNGOworMkVBQyAwMDIxOworRkE0RSAwMDNGOworMzI5NyAwMDYxOworMkY5NTYgMDAyMTsKKzMyOTkgMDAzRjsKKzJGOTVCIDAwM0Y7CisyRjk1RiAwMDNGOworMkY5NjIgMDAzRjsKK0Y5RjkgMDAzRjsKKzJGOTY4IDAwM0Y7CitGOTRGIDAwM0Y7CitGQTU3IDAwMjE7CitGQTU5IDAwM0Y7CisyRUI1IDAwMjE7CitGOUU2IDAwM0Y7CisyRUI4IDAwM0Y7CisyRjdDIDAwMjE7CisyRjdEIDAwM0Y7CisyRjk3RiAwMDNGOworMkVCQyAwMDYxOworRjkyNiAwMDNGOworMkVCRCAwMDIxOworMkY4NyAwMDNGOworRkE1RSAwMDIxOworMkY5OEYgMDAzRjsKK0Y5NzQgMDA0MTsKKzJGOUEwIDAwM0Y7CisyRjlBMiAwMDNGOworRjk2RSAwMDNGOworRjlDMiAwMDNGOworRkEyMCAwMDNGOworMkY5QjQgMDAyMTsKKzJGOUI3IDAwM0Y7CitGQUI1IDAwNDE7CisyRjhFIDAwM0Y7CisyRUMyIDAwM0Y7CitGOTEyIDAwM0Y7CisyRUM0IDAwM0Y7CitGQTYxIDAwNDE7CisyRjlDRiAwMDNGOworRjk0MSAwMDNGOworRjk1RCAwMDQxOworRjk1QSAwMDNGOworRjkwMCAwMDNGOworMkY5RDQgMDAzRjsKK0ZBQzEgMDAyMTsKKzJGOUQ3IDAwM0Y7CisyRjlEQyAwMDNGOworRjlENyAwMDNGOworMkY5RiAwMDNGOworMkVDRCAwMDNGOworMzI5QyAwMDNGOworMkY5RTIgMDAzRjsKKzJGQTMgMDAzRjsKKzJGQTUgMDA2MTsKKzJGOUU3IDAwM0Y7CitGOTlCIDAwM0Y7CisyRUQyIDAwM0Y7CisyRUQ0IDAwM0Y7CitGQTA5IDAwM0Y7CisyRkFBIDAwM0Y7CitGQTY4IDAwNDE7CitGOTM4IDAwM0Y7CisyRkFFIDAwM0Y7CisyRUQ5IDAwM0Y7CiszMkEwIDAwM0Y7CitGQUNDIDAwMjE7CisyRkI2IDAwM0Y7CisyRkEwMiAwMDNGOworMkVFMSAwMDIxOworRjkxQSAwMDNGOworMkZCQyAwMDNGOworMkZDMCAwMDNGOworRjlGMiAwMDNGOworRjkzQSAwMDNGOworMkZDNSAwMDYxOworMkZDNyAwMDYxOworMkZDQiAwMDIxOworMkZDRCAwMDNGOworMkZEMCAwMDYxOworMkVFRCAwMDYxOworMkVGMCAwMDNGOworRkFDRSAwMDYyOworOUZBMyAwMDNGOworRkExMyAwMDNGOworRkEyNyAwMDNGOworMzQwMyAwMDNGOworMzQwOSAwMDNGOworMzQwRiAwMDNGOworMzQxNSAwMDNGOworMzQxQiAwMDNGOworMzQyMSAwMDNGOworMzQyNyAwMDNGOworMzQyRCAwMDNGOworMzQzMyAwMDNGOworMzQzOSAwMDNGOworMzQzRiAwMDNGOworMzQ0NSAwMDNGOworMzQ0QiAwMDNGOworMzQ1MSAwMDNGOworMzQ1NyAwMDNGOworMzQ1RCAwMDNGOworMzQ2MyAwMDNGOworMzQ2OSAwMDNGOworMzQ2RiAwMDNGOworMzQ3NSAwMDNGOworMzQ3QiAwMDNGOworMzQ4MSAwMDNGOworMzQ4NyAwMDNGOworMzQ4RCAwMDNGOworMzQ5MyAwMDNGOworMzQ5OSAwMDNGOworMzQ5RSAwMDQxOworMzRBNCAwMDNGOworMzRBQSAwMDNGOworMzRCMCAwMDNGOworMzRCNiAwMDNGOworMkY5Q0EgMDAyMTsKKzM0QzAgMDAzRjsKKzM0QzYgMDAzRjsKKzM0Q0MgMDAzRjsKKzM0RDIgMDAzRjsKKzM0RDggMDAzRjsKKzM0REUgMDAzRjsKKzM0RTMgMDAzRjsKKzM0RTkgMDAzRjsKKzM0RUYgMDAzRjsKKzM0RjUgMDAzRjsKKzM0RkIgMDAzRjsKKzM1MDEgMDAzRjsKKzM1MDcgMDAzRjsKKzM1MEQgMDAzRjsKKzM1MTMgMDAzRjsKKzM1MTggMDAzRjsKKzM1MUUgMDAzRjsKKzM1MjQgMDAzRjsKKzM1MkEgMDAzRjsKKzM1MzAgMDAzRjsKKzM1MzYgMDAzRjsKKzM1M0MgMDAzRjsKKzM1NDIgMDAzRjsKKzM1NDggMDAzRjsKKzM1NEUgMDAzRjsKKzM1NTQgMDAzRjsKKzM1NUEgMDAzRjsKKzM1NjAgMDAzRjsKKzM1NjYgMDAzRjsKKzM1NkMgMDAzRjsKKzM1NzIgMDAzRjsKKzM1NzggMDAzRjsKKzM1N0UgMDAzRjsKKzM1ODQgMDAzRjsKKzM1OEEgMDAzRjsKKzM1OTAgMDAzRjsKKzM1OTYgMDAzRjsKKzM1OUMgMDAzRjsKKzM1QTIgMDAzRjsKKzM1QTggMDAzRjsKKzM1QUUgMDAzRjsKKzM1QjQgMDAzRjsKKzM1QkEgMDAzRjsKKzM1QzAgMDAzRjsKKzM1QzYgMDAzRjsKKzM1Q0MgMDAzRjsKKzM1RDIgMDAzRjsKKzM1RDggMDAzRjsKKzM1REUgMDAzRjsKKzM1RTQgMDAzRjsKKzM1RUEgMDAzRjsKKzM1RjAgMDAzRjsKKzM1RjYgMDAzRjsKKzM1RkMgMDAzRjsKKzM2MDIgMDAzRjsKKzM2MDggMDAzRjsKKzM2MEUgMDAzRjsKKzM2MTQgMDAzRjsKKzM2MUEgMDAzRjsKKzM2MjAgMDAzRjsKKzM2MjYgMDAzRjsKKzM2MkMgMDAzRjsKKzM2MzIgMDAzRjsKKzM2MzggMDAzRjsKKzM2M0UgMDAzRjsKKzM2NDQgMDAzRjsKKzM2NEEgMDAzRjsKKzM2NTAgMDAzRjsKKzM2NTYgMDAzRjsKKzM2NUMgMDAzRjsKKzM2NjIgMDAzRjsKKzM2NjggMDAzRjsKKzM2NkUgMDAzRjsKKzM2NzQgMDAzRjsKKzM2N0EgMDAzRjsKKzM2ODAgMDAzRjsKKzM2ODYgMDAzRjsKKzM2OEMgMDAzRjsKKzM2OTIgMDAzRjsKKzM2OTggMDAzRjsKKzM2OUUgMDAzRjsKKzM2QTQgMDAzRjsKKzM2QUEgMDAzRjsKKzM2QjAgMDAzRjsKKzM2QjYgMDAzRjsKKzM2QkMgMDAzRjsKKzM2QzIgMDAzRjsKKzM2QzggMDAzRjsKKzM2Q0UgMDAzRjsKKzM2RDQgMDAzRjsKKzM2REEgMDAzRjsKKzM2RTAgMDAzRjsKKzM2RTYgMDAzRjsKKzM2RUMgMDAzRjsKKzM2RjEgMDAzRjsKKzM2RjcgMDAzRjsKKzM2RkMgMDA0MTsKKzM3MDIgMDAzRjsKKzM3MDggMDAzRjsKKzM3MEUgMDAzRjsKKzM3MTQgMDAzRjsKKzM3MUEgMDAzRjsKKzM3MjAgMDAzRjsKKzM3MjYgMDAzRjsKKzM3MkMgMDAzRjsKKzM3MzIgMDAzRjsKKzM3MzggMDAzRjsKKzM3M0UgMDAzRjsKKzM3NDQgMDAzRjsKKzM3NEEgMDAzRjsKKzM3NTAgMDAzRjsKKzM3NTYgMDAzRjsKKzM3NUMgMDAzRjsKKzM3NjIgMDAzRjsKKzM3NjggMDAzRjsKKzM3NkUgMDAzRjsKKzM3NzQgMDAzRjsKKzM3N0EgMDAzRjsKKzM3ODAgMDAzRjsKKzM3ODUgMDAzRjsKKzM3OEIgMDAzRjsKKzM3OTEgMDAzRjsKKzM3OTcgMDAzRjsKKzM3OUQgMDAzRjsKKzM3QTMgMDAzRjsKKzM3QTkgMDAzRjsKKzM3QUYgMDAzRjsKKzM3QjUgMDAzRjsKKzM3QkIgMDAzRjsKKzM3QzEgMDAzRjsKKzM3QzcgMDAzRjsKKzM3Q0QgMDAzRjsKKzM3RDMgMDAzRjsKKzM3RDkgMDAzRjsKKzM3REYgMDAzRjsKKzM3RTUgMDAzRjsKKzM3RUIgMDAzRjsKKzM3RjEgMDAzRjsKKzM3RjcgMDAzRjsKKzM3RkQgMDAzRjsKKzM4MDMgMDAzRjsKKzM4MDkgMDAzRjsKKzM4MEYgMDAzRjsKKzM4MTUgMDAzRjsKKzM4MUIgMDAzRjsKKzM4MjEgMDAzRjsKKzM4MjcgMDAzRjsKKzM4MkQgMDAzRjsKKzM4MzIgMDAzRjsKKzM4MzggMDAzRjsKKzM4M0UgMDAzRjsKKzM4NDQgMDAzRjsKKzM4NEEgMDAzRjsKKzM4NTAgMDAzRjsKKzM4NTYgMDAzRjsKKzM4NUMgMDAzRjsKKzJGODg4IDAwMjE7CiszODY3IDAwM0Y7CiszODZEIDAwM0Y7CiszODczIDAwM0Y7CiszODc5IDAwM0Y7CiszODdFIDAwM0Y7CiszODg0IDAwM0Y7CiszODhBIDAwM0Y7CiszODkwIDAwM0Y7CiszODk2IDAwM0Y7CiszODlDIDAwM0Y7CiszOEEyIDAwM0Y7CiszOEE4IDAwM0Y7CiszOEFFIDAwM0Y7CiszOEI0IDAwM0Y7CiszOEJBIDAwM0Y7CiszOEMwIDAwM0Y7CiszOEM2IDAwM0Y7CiszOENCIDAwM0Y7CiszOEQxIDAwM0Y7CiszOEQ3IDAwM0Y7CiszOEREIDAwM0Y7CisyRjg5QiAwMDIxOworMzhFOCAwMDNGOworMzhFRSAwMDNGOworMzhGNCAwMDNGOworMzhGQSAwMDNGOworMzkwMCAwMDNGOworMzkwNiAwMDNGOworMzkwQyAwMDNGOworMzkxMiAwMDNGOworMzkxOCAwMDNGOworMzkxRCAwMDNGOworMzkyMyAwMDNGOworMzkyOSAwMDNGOworMzkyRiAwMDNGOworMzkzNSAwMDNGOworMzkzQSAwMDQxOworMzk0MCAwMDNGOworMzk0NiAwMDNGOworMzk0QyAwMDNGOworMzk1MiAwMDNGOworMzk1OCAwMDNGOworMzk1RSAwMDNGOworMzk2NCAwMDNGOworMzk2QSAwMDNGOworMzk3MCAwMDNGOworMzk3NiAwMDNGOworMzk3QyAwMDNGOworMzk4MiAwMDNGOworMzk4OCAwMDNGOworMzk4RSAwMDNGOworMzk5NCAwMDNGOworMzk5QSAwMDNGOworMzlBMCAwMDNGOworMzlBNiAwMDNGOworMzlBQyAwMDNGOworMzlCMiAwMDNGOworMzlCOCAwMDNGOworMzlCRSAwMDNGOworMzlDNCAwMDNGOworMzlDQSAwMDNGOworMzlEMCAwMDNGOworMzlENiAwMDNGOworMzlEQyAwMDNGOworMzlFMiAwMDNGOworMzlFOCAwMDNGOworMzlFRSAwMDNGOworMzlGNCAwMDNGOworMzlGQSAwMDNGOworM0EwMCAwMDNGOworM0EwNiAwMDNGOworM0EwQyAwMDNGOworM0ExMiAwMDNGOworM0ExOCAwMDNGOworM0ExRSAwMDNGOworM0EyNCAwMDNGOworM0EyQSAwMDNGOworM0EyRiAwMDNGOworM0EzNSAwMDNGOworM0EzQiAwMDNGOworM0E0MSAwMDNGOworM0E0NyAwMDNGOworM0E0RCAwMDNGOworM0E1MyAwMDNGOworM0E1OSAwMDNGOworM0E1RiAwMDNGOworM0E2NSAwMDNGOworM0E2QiAwMDNGOworM0E3MCAwMDNGOworM0E3NiAwMDNGOworM0E3QyAwMDNGOworM0E4MiAwMDNGOworM0E4OCAwMDNGOworM0E4RSAwMDNGOworM0E5NCAwMDNGOworM0E5QSAwMDNGOworM0FBMCAwMDNGOworM0FBNiAwMDNGOworM0FBQyAwMDNGOworM0FCMiAwMDNGOworM0FCOCAwMDNGOworM0FCRSAwMDNGOworM0FDNCAwMDNGOworM0FDQSAwMDNGOworM0FEMCAwMDNGOworM0FENiAwMDNGOworM0FEQyAwMDNGOworM0FFMiAwMDNGOworM0FFNyAwMDNGOworM0FFRCAwMDNGOworM0FGMyAwMDNGOworM0FGOSAwMDNGOworM0FGRiAwMDNGOworM0IwNSAwMDNGOworM0IwQSAwMDNGOworM0IxMCAwMDNGOworM0IxNiAwMDNGOworM0IxQiAwMDNGOworM0IyMSAwMDNGOworM0IyNyAwMDNGOworM0IyRCAwMDNGOworM0IzMyAwMDNGOworM0IzOSAwMDNGOworM0IzRiAwMDNGOworM0I0NSAwMDNGOworM0I0QSAwMDNGOworM0I1MCAwMDNGOworM0I1NiAwMDNGOworM0I1QyAwMDNGOworM0I2MiAwMDNGOworM0I2OCAwMDNGOworM0I2RSAwMDNGOworM0I3NCAwMDNGOworM0I3QSAwMDNGOworM0I4MCAwMDNGOworM0I4NiAwMDNGOworM0I4QyAwMDNGOworM0I5MiAwMDNGOworM0I5OCAwMDNGOworM0I5RCAwMDYxOworM0JBMiAwMDNGOworM0JBOCAwMDNGOworM0JBRSAwMDNGOworM0JCNCAwMDNGOworM0JCQSAwMDNGOworM0JDMCAwMDNGOworM0JDNiAwMDNGOworM0JDQyAwMDNGOworM0JEMiAwMDNGOworM0JEOCAwMDNGOworM0JERSAwMDNGOworM0JFNCAwMDNGOworM0JFQSAwMDNGOworM0JGMCAwMDNGOworM0JGNiAwMDNGOworM0JGQyAwMDNGOworM0MwMiAwMDNGOworM0MwOCAwMDNGOworM0MwRSAwMDNGOworM0MxNCAwMDNGOworM0MxOSAwMDNGOworM0MxRiAwMDNGOworM0MyNSAwMDNGOworM0MyQiAwMDNGOworM0MzMSAwMDNGOworM0MzNyAwMDNGOworM0MzRCAwMDNGOworM0M0MyAwMDNGOworM0M0OSAwMDNGOworM0M0RSAwMDQxOworM0M1NCAwMDNGOworM0M1QSAwMDNGOworM0M2MCAwMDNGOworM0M2NiAwMDNGOworM0M2QyAwMDNGOworM0M3MiAwMDNGOworM0M3OCAwMDNGOworM0M3RSAwMDNGOworM0M4NCAwMDNGOworM0M4QSAwMDNGOworM0M5MCAwMDNGOworM0M5NiAwMDNGOworM0M5QyAwMDNGOworM0NBMiAwMDNGOworM0NBOCAwMDNGOworM0NBRSAwMDNGOworM0NCNCAwMDNGOworM0NCQSAwMDNGOworM0NDMCAwMDNGOworM0NDNiAwMDNGOworM0NDQyAwMDNGOworM0NEMiAwMDNGOworM0NEOCAwMDNGOworM0NERSAwMDNGOworM0NFNCAwMDNGOworM0NFQSAwMDNGOworM0NGMCAwMDNGOworM0NGNiAwMDNGOworM0NGQyAwMDNGOworM0QwMiAwMDNGOworM0QwOCAwMDNGOworM0QwRSAwMDNGOworM0QxNCAwMDNGOworM0QxQSAwMDNGOworM0QyMCAwMDNGOworM0QyNiAwMDNGOworM0QyQyAwMDNGOworM0QzMiAwMDNGOworM0QzNyAwMDNGOworM0QzRCAwMDNGOworM0Q0MyAwMDNGOworM0Q0OSAwMDNGOworM0Q0RiAwMDNGOworM0Q1NSAwMDNGOworM0Q1QiAwMDNGOworM0Q2MSAwMDNGOworM0Q2NyAwMDNGOworM0Q2RCAwMDNGOworM0Q3MyAwMDNGOworM0Q3OSAwMDNGOworM0Q3RiAwMDNGOworM0Q4NSAwMDNGOworM0Q4QiAwMDNGOworM0Q5MSAwMDNGOworM0Q5NiAwMDQxOworM0Q5QyAwMDNGOworM0RBMiAwMDNGOworM0RBOCAwMDNGOworM0RBRSAwMDNGOworM0RCNCAwMDNGOworM0RCQSAwMDNGOworM0RDMCAwMDNGOworM0RDNiAwMDNGOworM0RDQyAwMDNGOworM0REMiAwMDNGOworM0REOCAwMDNGOworM0RERSAwMDNGOworM0RFNCAwMDNGOworM0RFQSAwMDNGOworM0RGMCAwMDNGOworM0RGNiAwMDNGOworM0RGQyAwMDNGOworM0UwMiAwMDNGOworM0UwOCAwMDNGOworM0UwRSAwMDNGOworM0UxNCAwMDNGOworM0UxQSAwMDNGOworM0UyMCAwMDNGOworM0UyNiAwMDNGOworM0UyQyAwMDNGOworM0UzMiAwMDNGOworM0UzOCAwMDNGOworM0UzRSAwMDNGOworM0U0NCAwMDNGOworM0U0QSAwMDNGOworM0U1MCAwMDNGOworM0U1NiAwMDNGOworM0U1QyAwMDNGOworM0U2MiAwMDNGOworM0U2OCAwMDNGOworM0U2RSAwMDNGOworM0U3NCAwMDNGOworM0U3QSAwMDNGOworM0U4MCAwMDNGOworM0U4NiAwMDNGOworM0U4QyAwMDNGOworM0U5MiAwMDNGOworM0U5OCAwMDNGOworM0U5RSAwMDNGOworM0VBNCAwMDNGOworM0VBQSAwMDNGOworM0VBRiAwMDNGOworM0VCNSAwMDNGOworM0VCOSAwMDNGOworM0VCRiAwMDNGOworM0VDNSAwMDNGOworM0VDQiAwMDNGOworM0VEMSAwMDNGOworM0VENyAwMDNGOworM0VERCAwMDNGOworM0VFMyAwMDNGOworM0VFOSAwMDNGOworM0VFRiAwMDNGOworM0VGNSAwMDNGOworM0VGQiAwMDNGOworM0YwMSAwMDNGOworM0YwNyAwMDNGOworM0YwRCAwMDNGOworM0YxMyAwMDNGOworM0YxOSAwMDNGOworM0YxRSAwMDNGOworM0YyNCAwMDNGOworM0YyQSAwMDNGOworM0YzMCAwMDNGOworM0YzNiAwMDNGOworM0YzQyAwMDNGOworM0Y0MiAwMDNGOworM0Y0OCAwMDNGOworM0Y0RSAwMDNGOworM0Y1NCAwMDNGOworM0Y1QSAwMDNGOworM0Y2MCAwMDNGOworM0Y2NiAwMDNGOworM0Y2QyAwMDNGOworM0Y3MiAwMDNGOworM0Y3OCAwMDNGOworM0Y3RSAwMDNGOworM0Y4NCAwMDNGOworM0Y4QSAwMDNGOworM0Y5MCAwMDNGOworM0Y5NiAwMDNGOworM0Y5QyAwMDNGOworM0ZBMiAwMDNGOworM0ZBOCAwMDNGOworM0ZBRSAwMDNGOworM0ZCNCAwMDNGOworM0ZCQSAwMDNGOworM0ZDMCAwMDNGOworM0ZDNiAwMDNGOworM0ZDQyAwMDNGOworM0ZEMiAwMDNGOworM0ZEOCAwMDNGOworM0ZERSAwMDNGOworM0ZFNCAwMDNGOworM0ZFQSAwMDNGOworM0ZGMCAwMDNGOworM0ZGNiAwMDNGOworMkY5M0UgMDAyMTsKKzQwMDEgMDAzRjsKKzQwMDcgMDAzRjsKKzQwMEMgMDAzRjsKKzQwMTIgMDAzRjsKK0ZBRDMgMDAyMTsKKzQwMUQgMDAzRjsKKzQwMjMgMDAzRjsKKzQwMjkgMDAzRjsKKzQwMkYgMDAzRjsKKzQwMzUgMDAzRjsKKzJGOTQ5IDAwNDE7Cis0MDNGIDAwM0Y7Cis0MDQ1IDAwM0Y7Cis0MDRBIDAwM0Y7Cis0MDUwIDAwM0Y7Cis0MDU2IDAwM0Y7Cis0MDVDIDAwM0Y7Cis0MDYyIDAwM0Y7Cis0MDY4IDAwM0Y7Cis0MDZFIDAwM0Y7Cis0MDc0IDAwM0Y7Cis0MDdBIDAwM0Y7Cis0MDgwIDAwM0Y7Cis0MDg2IDAwM0Y7Cis0MDhDIDAwM0Y7Cis0MDkyIDAwM0Y7Cis0MDk3IDAwM0Y7Cis0MDlEIDAwM0Y7Cis0MEEzIDAwM0Y7Cis0MEE5IDAwM0Y7Cis0MEFGIDAwM0Y7Cis0MEI1IDAwM0Y7Cis0MEJCIDAwM0Y7Cis0MEMxIDAwM0Y7Cis0MEM3IDAwM0Y7Cis0MENEIDAwM0Y7Cis0MEQzIDAwM0Y7Cis0MEQ5IDAwM0Y7Cis0MERGIDAwM0Y7Cis0MEU0IDAwM0Y7Cis0MEVBIDAwM0Y7Cis0MEYwIDAwM0Y7Cis0MEY2IDAwM0Y7Cis0MEZDIDAwM0Y7Cis0MTAyIDAwM0Y7Cis0MTA4IDAwM0Y7Cis0MTBFIDAwM0Y7Cis0MTE0IDAwM0Y7Cis0MTFBIDAwM0Y7Cis0MTIwIDAwM0Y7Cis0MTI2IDAwM0Y7Cis0MTJDIDAwM0Y7Cis0MTMxIDAwM0Y7Cis0MTM3IDAwM0Y7Cis0MTNEIDAwM0Y7Cis0MTQzIDAwM0Y7Cis0MTQ5IDAwM0Y7Cis0MTRGIDAwM0Y7Cis0MTU1IDAwM0Y7Cis0MTVCIDAwM0Y7Cis0MTYxIDAwM0Y7Cis0MTY3IDAwM0Y7Cis0MTZEIDAwM0Y7Cis0MTczIDAwM0Y7Cis0MTc5IDAwM0Y7Cis0MTdGIDAwM0Y7Cis0MTg1IDAwM0Y7Cis0MThCIDAwM0Y7Cis0MTkxIDAwM0Y7Cis0MTk3IDAwM0Y7Cis0MTlEIDAwM0Y7Cis0MUEzIDAwM0Y7Cis0MUE5IDAwM0Y7Cis0MUFGIDAwM0Y7Cis0MUI1IDAwM0Y7Cis0MUJCIDAwM0Y7Cis0MUMxIDAwM0Y7Cis0MUM3IDAwM0Y7Cis0MUNEIDAwM0Y7Cis0MUQzIDAwM0Y7Cis0MUQ5IDAwM0Y7Cis0MURGIDAwM0Y7Cis0MUU1IDAwM0Y7Cis0MUVCIDAwM0Y7Cis0MUYxIDAwM0Y7Cis0MUY3IDAwM0Y7Cis0MUZEIDAwM0Y7Cis0MjAyIDAwNDE7Cis0MjA4IDAwM0Y7Cis0MjBFIDAwM0Y7Cis0MjE0IDAwM0Y7Cis0MjFBIDAwM0Y7Cis0MjIwIDAwM0Y7Cis0MjI2IDAwM0Y7Cis0MjJCIDAwM0Y7Cis0MjMxIDAwM0Y7Cis0MjM3IDAwM0Y7Cis0MjNEIDAwM0Y7Cis0MjQzIDAwM0Y7Cis0MjQ5IDAwM0Y7Cis0MjRGIDAwM0Y7Cis0MjU1IDAwM0Y7Cis0MjVCIDAwM0Y7Cis0MjYxIDAwM0Y7Cis0MjY3IDAwM0Y7Cis0MjZEIDAwM0Y7Cis0MjczIDAwM0Y7Cis0Mjc5IDAwM0Y7Cis0MjdGIDAwM0Y7Cis0Mjg1IDAwM0Y7Cis0MjhCIDAwM0Y7Cis0MjkxIDAwM0Y7Cis0Mjk3IDAwM0Y7Cis0MjlEIDAwM0Y7Cis0MkEyIDAwM0Y7Cis0MkE4IDAwM0Y7Cis0MkFFIDAwM0Y7Cis0MkI0IDAwM0Y7Cis0MkJBIDAwM0Y7Cis0MkMwIDAwM0Y7Cis0MkM2IDAwM0Y7Cis0MkNDIDAwM0Y7Cis0MkQyIDAwM0Y7Cis0MkQ4IDAwM0Y7Cis0MkRFIDAwM0Y7Cis0MkU0IDAwM0Y7Cis0MkVBIDAwM0Y7Cis0MkYwIDAwM0Y7Cis0MkY2IDAwM0Y7Cis0MkZDIDAwM0Y7Cis0MzAxIDAwNDE7Cis0MzA3IDAwM0Y7Cis0MzBEIDAwM0Y7Cis0MzEzIDAwM0Y7Cis0MzE5IDAwM0Y7Cis0MzFGIDAwM0Y7Cis0MzI1IDAwM0Y7Cis0MzJCIDAwM0Y7Cis0MzMxIDAwM0Y7Cis0MzM2IDAwM0Y7Cis0MzNDIDAwM0Y7Cis0MzQyIDAwM0Y7Cis0MzQ4IDAwM0Y7Cis0MzRFIDAwM0Y7Cis0MzU0IDAwM0Y7Cis0MzU5IDAwNDE7Cis0MzVGIDAwM0Y7Cis0MzY1IDAwM0Y7Cis0MzZCIDAwM0Y7Cis0MzcxIDAwM0Y7Cis0Mzc3IDAwM0Y7Cis0MzdEIDAwM0Y7Cis0MzgzIDAwM0Y7Cis0Mzg5IDAwM0Y7Cis0MzhGIDAwM0Y7Cis0Mzk1IDAwM0Y7Cis0MzlCIDAwM0Y7Cis0M0ExIDAwM0Y7Cis0M0E3IDAwM0Y7Cis0M0FEIDAwM0Y7Cis0M0IzIDAwM0Y7Cis0M0I5IDAwM0Y7Cis0M0JGIDAwM0Y7Cis0M0M1IDAwM0Y7Cis0M0NCIDAwM0Y7Cis0M0QxIDAwM0Y7Cis0M0Q2IDAwM0Y7Cis0M0RCIDAwM0Y7Cis0M0UxIDAwM0Y7Cis0M0U3IDAwM0Y7Cis0M0VEIDAwM0Y7Cis0M0YzIDAwM0Y7Cis0M0Y5IDAwM0Y7Cis0M0ZGIDAwM0Y7Cis0NDA1IDAwM0Y7CisyRjk4NCAwMDIxOworNDQxMCAwMDNGOworNDQxNiAwMDNGOworNDQxQyAwMDNGOworNDQyMiAwMDNGOworNDQyOCAwMDNGOworNDQyRSAwMDNGOworNDQzNCAwMDNGOworNDQzQSAwMDNGOworNDQ0MCAwMDNGOworNDQ0NiAwMDNGOworNDQ0QyAwMDNGOworNDQ1MiAwMDNGOworNDQ1OCAwMDNGOworNDQ1RSAwMDNGOworNDQ2NCAwMDNGOworNDQ2QSAwMDNGOworNDQ2RiAwMDNGOworNDQ3NSAwMDNGOworNDQ3QiAwMDNGOworNDQ4MSAwMDNGOworNDQ4NyAwMDNGOworNDQ4RCAwMDNGOworNDQ5MyAwMDNGOworNDQ5OSAwMDNGOworNDQ5RiAwMDNGOworNDRBNSAwMDNGOworNDRBQiAwMDNGOworNDRCMSAwMDNGOworNDRCNyAwMDNGOworNDRCRCAwMDNGOworNDRDMyAwMDNGOworNDRDOSAwMDNGOworNDRDRiAwMDNGOworNDRENSAwMDNGOworNDREQiAwMDNGOworNDRFMSAwMDNGOworNDRFNyAwMDNGOworNDRFRCAwMDNGOworNDRGMyAwMDNGOworNDRGOSAwMDNGOworNDRGRiAwMDNGOworNDUwNSAwMDNGOworNDUwQiAwMDNGOworNDUxMSAwMDNGOworNDUxNyAwMDNGOworNDUxRCAwMDNGOworNDUyMyAwMDNGOworNDUyOSAwMDNGOworNDUyRSAwMDNGOworNDUzNCAwMDNGOworNDUzQSAwMDNGOworNDU0MCAwMDNGOworNDU0NiAwMDNGOworNDU0QyAwMDNGOworNDU1MiAwMDNGOworNDU1OCAwMDNGOworNDU1RCAwMDQxOworNDU2MiAwMDNGOworNDU2OCAwMDNGOworNDU2RCAwMDNGOworNDU3MyAwMDNGOworNDU3OSAwMDNGOworNDU3RiAwMDNGOworNDU4NSAwMDNGOworNDU4QiAwMDNGOworNDU5MSAwMDNGOworNDU5NyAwMDNGOworNDU5RCAwMDNGOworNDVBMyAwMDNGOworNDVBOSAwMDNGOworNDVBRiAwMDNGOworNDVCNSAwMDNGOworNDVCQiAwMDNGOworNDVDMSAwMDNGOworNDVDNyAwMDNGOworNDVDRCAwMDNGOworNDVEMyAwMDNGOworNDVEOCAwMDNGOworNDVERSAwMDNGOworNDVFNCAwMDNGOworNDVFQSAwMDNGOworNDVGMCAwMDNGOworNDVGNiAwMDNGOworNDVGQiAwMDNGOworNDYwMSAwMDNGOworNDYwNyAwMDNGOworNDYwRCAwMDNGOworNDYxMyAwMDNGOworNDYxOSAwMDNGOworNDYxRiAwMDNGOworNDYyNSAwMDNGOworNDYyQiAwMDNGOworNDYzMSAwMDNGOworNDYzNiAwMDNGOworNDYzQyAwMDNGOworNDY0MiAwMDNGOworNDY0OCAwMDNGOworNDY0RSAwMDNGOworNDY1NCAwMDNGOworNDY1QSAwMDNGOworNDY2MCAwMDNGOworNDY2NiAwMDNGOworNDY2QyAwMDNGOworNDY3MiAwMDNGOworNDY3OCAwMDNGOworNDY3RSAwMDNGOworNDY4NCAwMDNGOworNDY4QSAwMDNGOworNDY5MCAwMDNGOworNDY5NiAwMDNGOworNDY5QyAwMDNGOworNDZBMiAwMDNGOworNDZBOCAwMDNGOworNDZBRSAwMDNGOworNDZCNCAwMDNGOworNDZCQSAwMDNGOworNDZCRiAwMDNGOworNDZDNSAwMDNGOworNDZDQSAwMDNGOworNDZEMCAwMDNGOworNDZENiAwMDNGOworNDZEQyAwMDNGOworNDZFMiAwMDNGOworNDZFOCAwMDNGOworNDZFRSAwMDNGOworNDZGNCAwMDNGOworNDZGQSAwMDNGOworNDcwMCAwMDNGOworNDcwNiAwMDNGOworNDcwQyAwMDNGOworNDcxMiAwMDNGOworNDcxOCAwMDNGOworNDcxRSAwMDNGOworNDcyNCAwMDNGOworNDcyQSAwMDNGOworNDczMCAwMDNGOworNDczNiAwMDNGOworNDczQyAwMDNGOworNDc0MiAwMDNGOworNDc0OCAwMDNGOworNDc0RSAwMDNGOworNDc1NCAwMDNGOworNDc1QSAwMDNGOworNDc2MCAwMDNGOworNDc2NiAwMDNGOworNDc2QyAwMDNGOworNDc3MiAwMDNGOworNDc3OCAwMDNGOworNDc3RSAwMDNGOworNDc4NCAwMDNGOworNDc4QSAwMDNGOworNDc5MCAwMDNGOworNDc5NiAwMDNGOworNDc5QyAwMDNGOworNDdBMiAwMDNGOworNDdBOCAwMDNGOworNDdBRSAwMDNGOworNDdCNCAwMDNGOworNDdCQSAwMDNGOworNDdDMCAwMDNGOworNDdDNiAwMDNGOworNDdDQyAwMDNGOworNDdEMiAwMDNGOworNDdEOCAwMDNGOworNDdERSAwMDNGOworNDdFNCAwMDNGOworNDdFQSAwMDNGOworNDdGMCAwMDNGOworNDdGNiAwMDNGOworNDdGQyAwMDNGOworNDgwMiAwMDNGOworNDgwOCAwMDNGOworNDgwRSAwMDNGOworNDgxNCAwMDNGOworNDgxQSAwMDNGOworNDgyMCAwMDNGOworNDgyNiAwMDNGOworNDgyQyAwMDNGOworNDgzMiAwMDNGOworNDgzOCAwMDNGOworNDgzRSAwMDNGOworNDg0NCAwMDNGOworNDg0QSAwMDNGOworNDg1MCAwMDNGOworNDg1NiAwMDNGOworNDg1QyAwMDNGOworNDg2MiAwMDNGOworNDg2OCAwMDNGOworNDg2RSAwMDNGOworNDg3NCAwMDNGOworNDg3QSAwMDNGOworNDg4MCAwMDNGOworNDg4NiAwMDNGOworNDg4QyAwMDNGOworNDg5MiAwMDNGOworNDg5OCAwMDNGOworNDg5RSAwMDNGOworNDhBNCAwMDNGOworNDhBQSAwMDNGOworNDhCMCAwMDNGOworNDhCNiAwMDNGOworNDhCQyAwMDNGOworNDhDMiAwMDNGOworNDhDOCAwMDNGOworNDhDRSAwMDNGOworNDhENCAwMDNGOworNDhEQSAwMDNGOworNDhFMCAwMDNGOworNDhFNiAwMDNGOworNDhFQyAwMDNGOworNDhGMiAwMDNGOworNDhGOCAwMDNGOworNDhGRSAwMDNGOworNDkwNCAwMDNGOworNDkwQSAwMDNGOworNDkxMCAwMDNGOworNDkxNiAwMDNGOworNDkxQyAwMDNGOworNDkyMiAwMDNGOworNDkyOCAwMDNGOworNDkyRSAwMDNGOworNDkzNCAwMDNGOworNDkzQSAwMDNGOworNDk0MCAwMDNGOworNDk0NiAwMDNGOworNDk0QyAwMDNGOworNDk1MiAwMDNGOworNDk1OCAwMDNGOworNDk1RSAwMDNGOworNDk2NCAwMDNGOworNDk2QSAwMDNGOworNDk3MCAwMDNGOworNDk3NiAwMDNGOworNDk3QyAwMDNGOworNDk4MiAwMDNGOworNDk4OCAwMDNGOworNDk4RSAwMDNGOworNDk5NCAwMDNGOworNDk5OSAwMDNGOworNDk5RiAwMDNGOworNDlBNSAwMDNGOworNDlBQiAwMDNGOworNDlCMSAwMDNGOworNDlCNyAwMDNGOworNDlCRCAwMDNGOworNDlDMyAwMDNGOworNDlDOSAwMDNGOworNDlDRiAwMDNGOworNDlENSAwMDNGOworNDlEQiAwMDNGOworNDlFMSAwMDNGOworNDlFNiAwMDQxOworNDlFQyAwMDNGOworNDlGMiAwMDNGOworNDlGOCAwMDNGOworNDlGRSAwMDNGOworNEEwNCAwMDNGOworNEEwQSAwMDNGOworNEExMCAwMDNGOworNEExNiAwMDNGOworNEExQyAwMDNGOworNEEyMiAwMDNGOworNEEyOCAwMDNGOworNEEyRSAwMDNGOworNEEzNCAwMDNGOworNEEzQSAwMDNGOworNEE0MCAwMDNGOworNEE0NiAwMDNGOworNEE0QyAwMDNGOworNEE1MiAwMDNGOworNEE1OCAwMDNGOworNEE1RSAwMDNGOworNEE2NCAwMDNGOworNEE2QSAwMDNGOworNEE2RiAwMDNGOworNEE3NSAwMDNGOworNEE3QSAwMDNGOworNEE4MCAwMDNGOworNEE4NiAwMDNGOworNEE4QyAwMDNGOworNEE5MiAwMDNGOworNEE5OCAwMDNGOworNEE5RSAwMDNGOworNEFBNCAwMDNGOworNEFBQSAwMDNGOworNEFCMCAwMDNGOworNEFCNSAwMDNGOworNEFCQiAwMDNGOworNEFDMSAwMDNGOworNEFDNyAwMDNGOworNEFDRCAwMDNGOworNEFEMyAwMDNGOworNEFEOSAwMDNGOworNEFERiAwMDNGOworNEFFNSAwMDNGOworNEFFQiAwMDNGOworNEFGMSAwMDNGOworNEFGNyAwMDNGOworNEFGRCAwMDNGOworNEIwMyAwMDNGOworNEIwOSAwMDNGOworNEIwRiAwMDNGOworNEIxNSAwMDNGOworNEIxQiAwMDNGOworNEIyMSAwMDNGOworNEIyNyAwMDNGOworNEIyRCAwMDNGOworMkZBMDMgMDAyMTsKKzRCMzggMDAzRjsKKzRCM0UgMDAzRjsKKzRCNDQgMDAzRjsKKzRCNEEgMDAzRjsKKzRCNTAgMDAzRjsKKzRCNTYgMDAzRjsKKzRCNUMgMDAzRjsKKzRCNjIgMDAzRjsKKzRCNjggMDAzRjsKKzRCNkUgMDAzRjsKKzRCNzQgMDAzRjsKKzRCN0EgMDAzRjsKKzRCODAgMDAzRjsKKzRCODYgMDAzRjsKKzRCOEMgMDAzRjsKKzRCOTIgMDAzRjsKKzRCOTggMDAzRjsKKzRCOUUgMDAzRjsKKzRCQTQgMDAzRjsKKzRCQUEgMDAzRjsKKzRCQjAgMDAzRjsKKzRCQjYgMDAzRjsKKzRCQkMgMDAzRjsKKzRCQzIgMDAzRjsKKzRCQzggMDAzRjsKKzJGQTA4IDAwMjE7Cis0QkQzIDAwM0Y7Cis0QkQ5IDAwM0Y7Cis0QkRGIDAwM0Y7Cis0QkU1IDAwM0Y7Cis0QkVCIDAwM0Y7Cis0QkYxIDAwM0Y7Cis0QkY3IDAwM0Y7Cis0QkZEIDAwM0Y7Cis0QzAzIDAwM0Y7Cis0QzA5IDAwM0Y7Cis0QzBGIDAwM0Y7Cis0QzE1IDAwM0Y7Cis0QzFCIDAwM0Y7Cis0QzIxIDAwM0Y7Cis0QzI3IDAwM0Y7Cis0QzJEIDAwM0Y7Cis0QzMzIDAwM0Y7Cis0QzM5IDAwM0Y7Cis0QzNGIDAwM0Y7Cis0QzQ1IDAwM0Y7Cis0QzRCIDAwM0Y7Cis0QzUxIDAwM0Y7Cis0QzU3IDAwM0Y7Cis0QzVEIDAwM0Y7Cis0QzYzIDAwM0Y7Cis0QzY5IDAwM0Y7Cis0QzZGIDAwM0Y7Cis0Qzc1IDAwM0Y7Cis0QzdCIDAwM0Y7Cis0QzgxIDAwM0Y7Cis0Qzg3IDAwM0Y7Cis0QzhEIDAwM0Y7Cis0QzkzIDAwM0Y7Cis0Qzk5IDAwM0Y7Cis0QzlGIDAwM0Y7Cis0Q0E1IDAwM0Y7Cis0Q0FCIDAwM0Y7Cis0Q0IxIDAwM0Y7Cis0Q0I3IDAwM0Y7Cis0Q0JEIDAwM0Y7Cis0Q0MzIDAwM0Y7Cis0Q0M5IDAwM0Y7Cis0Q0NFIDAwNDE7Cis0Q0Q0IDAwM0Y7Cis0Q0RBIDAwM0Y7Cis0Q0UwIDAwM0Y7Cis0Q0U2IDAwM0Y7Cis0Q0VDIDAwM0Y7Cis0Q0YxIDAwM0Y7Cis0Q0Y3IDAwM0Y7Cis0Q0ZDIDAwM0Y7Cis0RDAyIDAwM0Y7Cis0RDA4IDAwM0Y7Cis0RDBFIDAwM0Y7Cis0RDE0IDAwM0Y7Cis0RDFBIDAwM0Y7Cis0RDIwIDAwM0Y7Cis0RDI2IDAwM0Y7Cis0RDJDIDAwM0Y7Cis0RDMyIDAwM0Y7Cis0RDM4IDAwM0Y7Cis0RDNFIDAwM0Y7Cis0RDQ0IDAwM0Y7Cis0RDRBIDAwM0Y7Cis0RDUwIDAwM0Y7CisyRkExNiAwMDIxOworNEQ1QiAwMDNGOworNEQ2MSAwMDNGOworNEQ2NyAwMDNGOworNEQ2RCAwMDNGOworNEQ3MyAwMDNGOworNEQ3OSAwMDNGOworNEQ3RiAwMDNGOworNEQ4NSAwMDNGOworNEQ4QiAwMDNGOworNEQ5MSAwMDNGOworNEQ5NyAwMDNGOworNEQ5RCAwMDNGOworNERBMyAwMDNGOworNERBOSAwMDNGOworNERBRiAwMDNGOworNERCNSAwMDNGOworMjAwMDUgMDAzRjsKKzJGOUQ5IDAwM0Y7CisyRjg2MSAwMDNGOworMkY4ODkgMDAzRjsKK0ZBQ0YgMDAzRjsKKzJGOTg5IDAwM0Y7CisyRjhGMCAwMDNGOworMkY5MTAgMDAzRjsKKzJGOTI3IDAwM0Y7CisyRjk0MiAwMDNGOworMkY5NTIgMDAzRjsKKzJGOTYxIDAwM0Y7CisyRjk3MyAwMDNGOworMkY5ODcgMDAzRjsKKzJGOUFEIDAwM0Y7CisyRjlDQyAwMDNGOworMkY5RTUgMDAzRjsKKzJGOUZCIDAwM0Y7CisyRkExMyAwMDNGOworMkE2RDMgMDAzRjsKK0UwMDEgMDAzRjsKK0Y4RkIgMDAzRjsKK0MwMDAwIDAwM0Y7CitFMDAwNSAwMDNGOworRjAwMDUgMDAzRjsKK0YwMEZEIDAwM0Y7CitGRkYwNSAwMDNGOworRkZGRkQgMDAzRjsKKzEwMDAwNSAwMDNGOworMTAwMEZEIDAwM0Y7CisxMEZGMDUgMDAzRjsKKzEwRkZGRCAwMDNGOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfU0hJRlRFRF9TVFVCLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X1NISUZURURfU1RVQi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRmZTk0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X1NISUZURURfU1RVQi50eHQKQEAgLTAsMCArMSw0MTAzIEBACisyMDA2IDAwMjE7CitGRjQwIDAwMjE7CiswMkQ4IDAwMjE7CisxRkJGIDAzMzQgMDMwMDsKKzFGRkUgMDM0MiAwMzM0OworMUZDMCAwMDNGOworRkUzMSAwMDIxOworMDU1RCAwMDNGOworMDAzQiAwMDNGOworMDcwNiAwMDNGOworMDAwMSAwMDIxOworMDA4MyAwMDIxOworMDQ4OSAwMDIxOworMDVBRSAwMDIxOworMDZFNyAwMDIxOworMjA2MCAwMDIxOworRkUwNyAwMDIxOworMUQxNzQgMDAyMTsKKzFGRkZGIDAwMjE7CitFMDAyNCAwMDIxOworRTAwNDIgMDAyMTsKK0UwMDYwIDAwMjE7CitFMDA3RSAwMDIxOworRTAxMUMgMDAyMTsKK0UwMTNBIDAwMjE7CitFMDE1OCAwMDIxOworRTAxNzYgMDAyMTsKK0UwMTk0IDAwMjE7CitFMDFCMiAwMDIxOworRTAxRDAgMDAyMTsKK0UwMUVFIDAwMjE7CiswMDA2IDAwM0Y7CiswMDg5IDAwM0Y7CiswNTk1IDAwM0Y7CiswNjAwIDAwM0Y7CiswNkVEIDAwM0Y7CisyMDZCIDAwM0Y7CitGRTBDIDAwM0Y7CisxRDE3OSAwMDNGOworNEZGRkUgMDAzRjsKK0UwMDI5IDAwM0Y7CitFMDA0NyAwMDNGOworRTAwNjUgMDAzRjsKK0UwMTAzIDAwM0Y7CitFMDEyMSAwMDNGOworRTAxM0YgMDAzRjsKK0UwMTVEIDAwM0Y7CitFMDE3QiAwMDNGOworRTAxOTkgMDAzRjsKK0UwMUI3IDAwM0Y7CitFMDFENSAwMDNGOworMTBGRkZGIDAwM0Y7CisyMDNEIDAwM0Y7CisxODA5IDAwM0Y7CisxN0Q0IDAwM0Y7CisyMDVCIDAwM0Y7CisyMDFBIDAwM0Y7CisyMDdEIDAwMjE7CitGRTQ4IDAwMjE7CisxNjlCIDAwM0Y7CisyOThBIDAwM0Y7CisyRTAyIDAwM0Y7CitGRTQwIDAwM0Y7CitGRTNCIDAwMjE7CiszMDE5IDAwM0Y7CitGRjBBIDAwM0Y7CitGRTVGIDAwMjE7CisyMDQzIDAwM0Y7CisyMDU0IDAwM0Y7CisyRTEyIDAwM0Y7CiswNzBCIDAwM0Y7CiswRjBBIDAwM0Y7CisxMDRFIDAwM0Y7CiswMzc0IDAwM0Y7CiswMkNFIDAwM0Y7CiswMkVBIDAwM0Y7CiswMkZBIDAwM0Y7CisxMzk5IDAwM0Y7CitBNzBFIDAwM0Y7CiswOUZBIDAwM0Y7CiswRjAyIDAwM0Y7CiswRjNFIDAwM0Y7CiswRkNDIDAwM0Y7CisxOUVEIDAwM0Y7CisxOUZDIDAwM0Y7CisyMTJFIDAwM0Y7CisyMTkyIDAwM0Y7CisyMTlEIDAwM0Y7CisyMUFDIDAwM0Y7CisyMUJDIDAwM0Y7CisyMUNCIDAwM0Y7CisyMUQ3IDAwM0Y7CisyMUU2IDAwM0Y7CisyMUY1IDAwM0Y7CisxRDdDMyAwMDIxOworMjIwOSAwMzM0OworRkIyOSAwMDIxOworMjI2MCAwMDIxOworRkY1QyAwMDNGOworMjIxOSAwMDNGOworMjIyNiAwMDNGOworMjIzNCAwMDNGOworMjI0MiAwMDNGOworMjI2RCAwMDIxOworMjI1QiAwMDNGOworMjI2NiAwMDNGOworMjI3OCAwMDNGOworMjJFMSAwMDNGOworMjI4QSAwMDNGOworMjI5NSAwMDNGOworMjJBQyAwMDNGOworMjJBRiAwMDNGOworMjJCNiAwMDNGOworMjJDNSAwMDNGOworMjJENCAwMDNGOworMjJFNyAwMDNGOworMjJGQSAwMDNGOworMjMwOSAwMDNGOworMjMxOCAwMDNGOworMjMyNyAwMDNGOworMjMzOCAwMDNGOworMjM0NyAwMDNGOworMjM1NiAwMDNGOworMjM2NSAwMDNGOworMjM3NCAwMDNGOworMjM4MyAwMDNGOworMjM5MiAwMDNGOworMjNBMSAwMDNGOworMjNCMCAwMDNGOworMjNCRiAwMDNGOworMjNDRSAwMDNGOworMjQwMSAwMDNGOworMjQxMCAwMDNGOworMjQxRiAwMDNGOworMjQ0NyAwMDNGOworMjUwQSAwMDNGOworMjUxOSAwMDNGOworMjUyOCAwMDNGOworMjUzNyAwMDNGOworMjU0NiAwMDNGOworMjU1NSAwMDNGOworMjU2NCAwMDNGOworMjU3MyAwMDNGOworMjU4MiAwMDNGOworMjU5MSAwMDNGOworRkZFRCAwMDIxOworMjVBRSAwMDNGOworMjVCRCAwMDNGOworRkZFRSAwMDNGOworMjVEQSAwMDNGOworMjVFOSAwMDNGOworMjVGOCAwMDNGOworMjYwNyAwMDNGOworMjYxNiAwMDNGOworMjYyNSAwMDNGOworMjYzQyAwMDNGOworMjY0QiAwMDNGOworMjY1QSAwMDNGOworMjY2OSAwMDNGOworMjY3QiAwMDNGOworMjY5MCAwMDNGOworMjZBMiAwMDNGOworMjZCMSAwMDNGOworMjcxMiAwMDNGOworMjcyMSAwMDNGOworMjczMSAwMDNGOworMjc0MCAwMDNGOworMjc1MSAwMDNGOworMjc2NiAwMDNGOworMjc3NSAwMDNGOworMjdBNSAwMDNGOworMjdCNSAwMDNGOworMjdDNSAwMDNGOworMjdERCAwMDNGOworMjdGMCAwMDNGOworMjdGRiAwMDNGOworMjkwRSAwMDNGOworMjkxRCAwMDNGOworMjkyQyAwMDNGOworMjkzQiAwMDNGOworMjk0QSAwMDNGOworMjk1OSAwMDNGOworMjk2OCAwMDNGOworMjk3NyAwMDNGOworMjk5QyAwMDNGOworMjlBQiAwMDNGOworMjlCQSAwMDNGOworMjlDOSAwMDNGOworMjlEOCAwMDNGOworMjlFNyAwMDNGOworMjlGNiAwMDNGOworMkEwNyAwMDNGOworMkExNyAwMDNGOworMkEyNiAwMDNGOworMkEzNSAwMDNGOworMkE0NCAwMDNGOworMkE1MyAwMDNGOworMkE2MiAwMDNGOworMkE3MSAwMDNGOworMkE4MyAwMDNGOworMkE5MiAwMDNGOworMkFBMSAwMDNGOworMkFCMCAwMDNGOworMkFCRiAwMDNGOworMkFDRSAwMDNGOworMkFERCAwMDIxOworMkFFQiAwMDNGOworMkFGQSAwMDNGOworMkIwOSAwMDNGOworMkNFOSAwMDNGOworMjgwRCAwMDNGOworMjgxQyAwMDNGOworMjgyQiAwMDNGOworMjgzQSAwMDNGOworMjg0OSAwMDNGOworMjg1OCAwMDNGOworMjg2NyAwMDNGOworMjg3NiAwMDNGOworMjg4NSAwMDNGOworMjg5NCAwMDNGOworMjhBMyAwMDNGOworMjhCMiAwMDNGOworMjhDMSAwMDNGOworMjhEMCAwMDNGOworMjhERiAwMDNGOworMjhFRSAwMDNGOworMjhGRCAwMDNGOworMjYzNiAwMDNGOworNERDRCAwMDNGOworNEREQyAwMDNGOworNERFQiAwMDNGOworNERGQSAwMDNGOworMUQzMDkgMDAzRjsKKzFEMzE4IDAwM0Y7CisxRDMyNyAwMDNGOworMUQzMzYgMDAzRjsKKzFEMzQ1IDAwM0Y7CisxRDM1NCAwMDNGOworQTQ5QyAwMDNGOworQTRBQiAwMDNGOworQTRCQSAwMDNGOworMTAxMzkgMDAzRjsKKzEwMTgxIDAwM0Y7CisxRDAwNiAwMDNGOworMUQwMTUgMDAzRjsKKzFEMDI0IDAwM0Y7CisxRDAzMyAwMDNGOworMUQwNDIgMDAzRjsKKzFEMDUxIDAwM0Y7CisxRDA2MCAwMDNGOworMUQwNkYgMDAzRjsKKzFEMDdFIDAwM0Y7CisxRDA4RCAwMDNGOworMUQwOUMgMDAzRjsKKzFEMEFCIDAwM0Y7CisxRDBCQSAwMDNGOworMUQwQzkgMDAzRjsKKzFEMEQ4IDAwM0Y7CisxRDBFNyAwMDNGOworMUQxMDAgMDAzRjsKKzFEMTBGIDAwM0Y7CisxRDExRSAwMDNGOworMUQxMkQgMDAzRjsKKzFEMTNDIDAwM0Y7CisxRDE0QiAwMDNGOworMUQxNTggMDMzNCAxRDE2NTsKKzFEMTU4IDAwM0Y7CisxRDE4RCAwMDNGOworMUQxOUMgMDAzRjsKKzFEMUFGIDAwM0Y7CisxRDFCOSAwMDIxOworMUQxQzIgMDAzRjsKKzFEMUQxIDAwM0Y7CisxRDIwMiAwMDNGOworMUQyMTEgMDAzRjsKKzFEMjIwIDAwM0Y7CisxRDIyRiAwMDNGOworMUQyM0UgMDAzRjsKKzJGRkEgMDAzRjsKKzMxQ0QgMDAzRjsKK0ZGRkQgMDAzRjsKKzEzN0IgMDAzRjsKKzEwMTE2IDAwM0Y7CisxMDEyNSAwMDNGOworMTAxNDAgMDAzRjsKKzEwMTUzIDAwM0Y7CisxMDE2QSAwMDNGOworMTAzRDQgMDAzRjsKKzAzMDIgMDAzRjsKKzAzMEQgMDAyMTsKKzAzMUUgMDAyMTsKKzAzMkYgMDAyMTsKKzAzMzQgMDVBNzsKKzAzMzQgMDZFNDsKKzAzMzQgMUQxN0Y7CiswNTlEIDAzMzQ7CiswNkQ4IDAzMzQ7CisxRDE2NyAwMzM0OworMUQyNDQgMDMzNDsKKzAzMzQgMDMwODsKKzAzMzQgMDMxMTsKKzAzMzQgMDMyMjsKKzAzMzQgMDMzOTsKKzAzMzQgMDM0RDsKKzAzMzQgMDM1RDsKKzAzMzQgMDQ4NjsKKzA1QkMgMDMzNDsKKzA2NTcgMDMzNDsKKzA3MzUgMDMzNDsKKzA3NDQgMDMzNDsKKzBCM0MgMDMzNDsKKzEwMzcgMDMzNDsKKzIwRDEgMDMzNDsKKzAzMzkgMDAyMTsKKzAzNEQgMDAyMTsKKzAzNUQgMDAyMTsKKzA0ODYgMDAyMTsKKzA1QkMgMDAyMTsKK0ZFNzggMDAyMTsKK0ZDNjMgMDAyMTsKKzA2NUUgMDAyMTsKKzA3M0MgMDAyMTsKKzA5M0MgMDAyMTsKKzBBMDMgMDAyMTsKKzBDQkMgMDAyMTsKKzBFNEUgMDAzRjsKKzBGN0UgMDAzRjsKKzE3Q0YgMDAzRjsKK0ZGOUUgMDAzRjsKKzIwREEgMDAzRjsKKzIwRTggMDAyMTsKKzMwMDUgMDAyMTsKKzMwMzUgMDAyMTsKKzMwRkQgMDMzNCAzMDk5OworRkU2OSAwMDIxOworRkZFNSAwMDYyOworMEUzRiAwMDYyOworMjBBNCAwMDYyOworMjBBQSAwMDYyOworMjBCMCAwMDYyOworMUQ3Q0UgMDAyMTsKKzBBRTYgMDAyMTsKKzE4MTAgMDAyMTsKKzA2RjAgMDA2MTsKKzBGMjAgMDA2MTsKKzA5NjYgMDA2MjsKKzI0NzQgMDAyMTsKKzA2NjEgMDAyMTsKKzE5RDEgMDAyMTsKKzEwMzIwIDAwMjE7CisyNEZFIDAwNDE7CisyNDZBIDAwMjE7CiszMzYzIDAwNjI7CiszM0VCIDAwNjI7CisyMTUzIDAwNDE7CisyNDZEIDAwNjE7CisyMTU1IDAwM0Y7CisyNDZGIDAwMjE7CiszMzY4IDAwNjI7CiszMzY5IDAwNjI7CiszM0YxIDAwNjI7CiszM0YyIDAwNjI7CisyNEY1IDAwNDE7CiswQkU3IDAwNjE7CisxMDEwNyAwMDYxOworMDBCOSAwMDYyOworMTAxNTggMDA2MjsKKzFEN0RBIDAwMjE7CisxMDRBMiAwMDNGOworMEYyMiAwMDNGOworMjQ4NyAwMDNGOworMzI1MSAwMDQxOworMjE1NCAwMDNGOworMzM3MCAwMDQxOworMzI1NyAwMDQxOworRkYxMiAwMDQxOworMDY2MiAwMDQxOworMTlEMiAwMDQxOworMTAzRDIgMDA0MTsKKzBDNjggMDA2MjsKKzMyQzEgMDA2MjsKKzI0RjcgMDAzRjsKKzBDNjkgMDAyMTsKKzEwQTQyIDAwMjE7CiszMjVEIDAwNDE7CiszMkIyIDAwNDE7CisxRDdEMSAwMDQxOworMDlFOSAwMDQxOworMTA0MyAwMDQxOworMDZGMyAwMDYyOworMzNFMiAwMDYyOworMjRGOCAwMDIxOworMEFFQSAwMDNGOworMTgxNCAwMDNGOworMzJCOSAwMDQxOworMzJCRSAwMDQxOworMjA3NCAwMDYxOworMEQ2QSAwMDYxOworMjQ3NyAwMDYyOworMEU1NCAwMDYyOworMjQ3OCAwMDIxOworMDZGNSAwMDIxOworMEVENSAwMDIxOworMzJCRiAwMDIxOworMUQ3RTcgMDA0MTsKKzBBNkIgMDA0MTsKKzE3RjUgMDA0MTsKKzI3N0EgMDA2MjsKKzEwMTQzIDAwNjI7CisxRDdERSAwMDIxOworMTA0QTYgMDAzRjsKKzBGMkYgMDAzRjsKKzFEN0ZDIDAwNDE7CiswQUVDIDAwNDE7CisxODE2IDAwNDE7CiswQkVDIDAwNjI7CiszMzVFIDAwNjI7CisyMDc3IDAwM0Y7CisxOTREIDAwM0Y7CitGRjE3IDAwNjE7CiswNjY3IDAwNjE7CiswRTU3IDAwNjE7CisyNEZCIDAwNjI7CisxMDEwRCAwMDYyOworMUQ3RTAgMDAzRjsKKzBBNkUgMDAyMTsKKzE3RjggMDAyMTsKKzI3OTEgMDA2MTsKKzBDNkUgMDA2MTsKKzAwMzggMDA2MjsKKzE5RDggMDA2MjsKKzI0N0MgMDAyMTsKKzA2RjkgMDAyMTsKKzBFRDkgMDAyMTsKKzFEN0ZGIDAwNjE7CiswOUVGIDAwNjE7CisxN0U5IDAwNjE7CiswOTZGIDAwNjI7CiszMkM4IDAwNjI7CisxNjgwIDAwNjE7CisxRkNFIDAwNjE7CitGRTMyIDAwNjE7CiswMzdFIDAwNjE7CisxNkVEIDAwNjE7CisyMDI0IDAwNjE7CisxMzYwIDAwNjE7CisyMDFDIDAwNjE7CitGRjVCIDAwNjE7CisyOTkwIDAwNjE7CitGRTQxIDAwNjE7CiswMEI2IDAwNjE7CiswNjZBIDAwNjE7CisyRTAxIDAwNjE7CiswREY0IDAwNjE7CisxNjZEIDAwNjE7CiswMkQ2IDAwNjE7CisxMzkwIDAwNjE7CitBNzE0IDAwNjE7CiswRjFBIDAwNjE7CisxOUU0IDAwNjE7CisyMTE0IDAwNjE7CisyMTk1IDAwNjE7CisyMUI2IDAwNjE7CisyMUQ0IDAwNjE7CisyMUYyIDAwNjE7CisxRDc2RiAwMDYxOworMjA3QyAwMDYxOworMjIxQyAwMDYxOworMjIzOSAwMDYxOworMjI1NiAwMDYxOworMjI3NyAwMDYxOworMjJFMyAwMDYxOworMjJCMCAwMDYxOworMjJDQSAwMDYxOworMjJGMCAwMDYxOworMjMwRSAwMDYxOworMjMyRSAwMDYxOworMjM0QyAwMDYxOworMjM2QSAwMDYxOworMjM4OCAwMDYxOworMjNBNiAwMDYxOworMjNDNCAwMDYxOworMjQwNiAwMDYxOworMjQyNCAwMDYxOworMjUwRiAwMDYxOworMjUyRCAwMDYxOworMjU0QiAwMDYxOworMjU2OSAwMDYxOworMjU4NyAwMDYxOworMjVBNCAwMDYxOworMjVDMiAwMDYxOworMjVERiAwMDYxOworMjVGRCAwMDYxOworMjYxQiAwMDYxOworMjY0MSAwMDYxOworMjY1RiAwMDYxOworMjY4MCAwMDYxOworMjZBNyAwMDYxOworMjcxNyAwMDYxOworMjczNiAwMDYxOworMjc1QSAwMDYxOworMjc5QiAwMDYxOworMjdCQSAwMDYxOworMjdFMiAwMDYxOworMjkwNCAwMDYxOworMjkyMiAwMDYxOworMjk0MCAwMDYxOworMjk1RSAwMDYxOworMjk3QyAwMDYxOworMjlCMCAwMDYxOworMjlDRSAwMDYxOworMjlFQyAwMDYxOworMkEwRCAwMDYxOworMkEyQiAwMDYxOworMkE0OSAwMDYxOworMkE2NyAwMDYxOworMkE4OCAwMDYxOworMkFBNiAwMDYxOworMkFDNCAwMDYxOworMkFFMiAwMDYxOworMkIwMCAwMDYxOworMjgwNCAwMDYxOworMjgyMiAwMDYxOworMjg0MCAwMDYxOworMjg1RSAwMDYxOworMjg3QyAwMDYxOworMjg5QSAwMDYxOworMjhCOCAwMDYxOworMjhENiAwMDYxOworMjhGNCAwMDYxOworNERDNCAwMDYxOworNERFMiAwMDYxOworMUQzMDAgMDA2MTsKKzFEMzFFIDAwNjE7CisxRDMzQyAwMDYxOworQTQ5MyAwMDYxOworQTRCMSAwMDYxOworMTAxM0YgMDA2MTsKKzFEMDBDIDAwNjE7CisxRDAyQSAwMDYxOworMUQwNDggMDA2MTsKKzFEMDY2IDAwNjE7CisxRDA4NCAwMDYxOworMUQwQTIgMDA2MTsKKzFEMEMwIDAwNjE7CisxRDBERSAwMDYxOworMUQxMDYgMDA2MTsKKzFEMTI0IDAwNjE7CisxRDE0MiAwMDYxOworMUQxNTkgMDA2MTsKKzFEMUEwIDAwNjE7CisxRDFDMiAwMDYxOworMUQyMDIgMDA2MTsKKzFEMjIwIDAwNjE7CisxRDIzRSAwMDYxOworMzFDRCAwMDYxOworMTM3QiAwMDYxOworMTAxMjUgMDA2MTsKKzEwMTUzIDAwNjE7CisxMDNENCAwMDYxOworMDAxRCAwMDYxOworMDA5QiAwMDYxOworMDVBNyAwMDYxOworMDZERSAwMDYxOworMjAwRSAwMDYxOworRkUwMCAwMDYxOworMUQxNkQgMDA2MTsKKzFEMUFCIDAwNjE7CitERkZGRSAwMDYxOworRTAwM0IgMDA2MTsKK0UwMDU5IDAwNjE7CitFMDA3NyAwMDYxOworRTAxMTUgMDA2MTsKK0UwMTMzIDAwNjE7CitFMDE1MSAwMDYxOworRTAxNkYgMDA2MTsKK0UwMThEIDAwNjE7CitFMDFBQiAwMDYxOworRTAxQzkgMDA2MTsKK0UwMUU3IDAwNjE7CisxRDVFRSAwMDIxOworMjAwMSAwMDQxOworRkU0QyAwMDQxOworMzA5QiAwMDQxOworMDYwQyAwMDQxOworMDcwNyAwMDQxOworMDU1RSAwMDQxOworMDM4NyAwMDQxOworMTAxMDIgMDA0MTsKKzIwOEUgMDA0MTsKKzI5ODUgMDA0MTsKKzJFMUMgMDA0MTsKK0ZFM0EgMDA0MTsKK0ZFNjggMDA0MTsKKzIwMzYgMDA0MTsKKzA1QkUgMDA0MTsKKzBGMTAgMDA0MTsKKzAyQzcgMDA0MTsKKzAyRjMgMDA0MTsKK0E3MDcgMDA0MTsKKzBCRkEgMDA0MTsKKzBGQzQgMDA0MTsKKzE5RjUgMDA0MTsKKzIxNEMgMDA0MTsKKzIxQTggMDA0MTsKKzIxQzcgMDA0MTsKKzIxRTUgMDA0MTsKKzFENkRCIDAwNDE7CitGQjI5IDAwNDE7CitGRjVFIDAwNDE7CisyMjJDIDAwNDE7CisyMjRBIDAwNDE7CisyMjY2IDAwNDE7CisyMjg4IDAwNDE7CisyMkFDIDAwNDE7CisyMkJEIDAwNDE7CisyMkRCIDAwNDE7CisyMzAxIDAwNDE7CisyMzFGIDAwNDE7CisyMzNGIDAwNDE7CisyMzVEIDAwNDE7CisyMzdCIDAwNDE7CisyMzk5IDAwNDE7CisyM0I3IDAwNDE7CisyM0Q1IDAwNDE7CisyNDE3IDAwNDE7CitGRkU4IDAwNDE7CisyNTIwIDAwNDE7CisyNTNFIDAwNDE7CisyNTVDIDAwNDE7CisyNTdBIDAwNDE7CisyNTk4IDAwNDE7CisyNUI1IDAwNDE7CisyNUQyIDAwNDE7CisyNUYwIDAwNDE7CisyNjBFIDAwNDE7CisyNjJDIDAwNDE7CisyNjUyIDAwNDE7CisyNjczIDAwNDE7CisyNjk3IDAwNDE7CisyNzA4IDAwNDE7CisyNzI5IDAwNDE7CisyNzQ3IDAwNDE7CisyNzZEIDAwNDE7CisyN0FDIDAwNDE7CisyN0Q1IDAwNDE7CisyN0Y3IDAwNDE7CisyOTE1IDAwNDE7CisyOTMzIDAwNDE7CisyOTUxIDAwNDE7CisyOTZGIDAwNDE7CisyOUEzIDAwNDE7CisyOUMxIDAwNDE7CisyOURGIDAwNDE7CisyOUZGIDAwNDE7CisyQTFFIDAwNDE7CisyQTNDIDAwNDE7CisyQTVBIDAwNDE7CisyQTdCIDAwNDE7CisyQTk5IDAwNDE7CisyQUI3IDAwNDE7CisyQUQ1IDAwNDE7CisyQUYzIDAwNDE7CisyQjExIDAwNDE7CisyODE1IDAwNDE7CisyODMzIDAwNDE7CisyODUxIDAwNDE7CisyODZGIDAwNDE7CisyODhEIDAwNDE7CisyOEFCIDAwNDE7CisyOEM5IDAwNDE7CisyOEU3IDAwNDE7CisyNjhGIDAwNDE7Cis0REQ1IDAwNDE7Cis0REYzIDAwNDE7CisxRDMxMSAwMDQxOworMUQzMkYgMDA0MTsKKzFEMzREIDAwNDE7CitBNEE0IDAwNDE7CitBNEMyIDAwNDE7CisxMDE4OSAwMDQxOworMUQwMUQgMDA0MTsKKzFEMDNCIDAwNDE7CisxRDA1OSAwMDQxOworMUQwNzcgMDA0MTsKKzFEMDk1IDAwNDE7CisxRDBCMyAwMDQxOworMUQwRDEgMDA0MTsKKzFEMEVGIDAwNDE7CisxRDExNyAwMDQxOworMUQxMzUgMDA0MTsKKzFEMTUzIDAwNDE7CisxRDE5MyAwMDQxOworMUQxQjUgMDA0MTsKKzFEMUQzIDAwNDE7CisxRDIxMyAwMDQxOworMUQyMzEgMDA0MTsKKzMxQzAgMDA0MTsKKzA5RjkgMDA0MTsKKzEwMTE4IDAwNDE7CisxMDE0NCAwMDQxOworMTAxNkMgMDA0MTsKKzAwMTAgMDA0MTsKKzAwOEUgMDA0MTsKKzA1OUEgMDA0MTsKKzA2MTEgMDA0MTsKKzBGMzcgMDA0MTsKK0Q4MDAgMDA0MTsKK0ZFMjMgMDA0MTsKKzFEMTdFIDAwNDE7Cis2RkZGRiAwMDQxOworRTAwMkUgMDA0MTsKK0UwMDRDIDAwNDE7CitFMDA2QSAwMDQxOworRTAxMDggMDA0MTsKK0UwMTI2IDAwNDE7CitFMDE0NCAwMDQxOworRTAxNjIgMDA0MTsKK0UwMTgwIDAwNDE7CitFMDE5RSAwMDQxOworRTAxQkMgMDA0MTsKK0UwMURBIDAwNDE7CisxRDQwMCAwMDIxOworMDBBQSAwMDNGOworMUVCMyAwMDIxOworMDBDNSAwMDIxOworMDEwNCAwMDIxOworMUUwMSAwMDIxOworMDA0MSAwMzA2IDAzMzQgMDMwMTsKKzAwRTIgMDMzNDsKKzAwRTIgMDMwOSAwMzM0OworMDA0MSAwMzA4IDAzMzQ7CiswMjI2IDAzMzQgMDMwNDsKKzAyMDIgMDMzNDsKKzAzMzIgMDA0MTsKKzAzMEIgMDA0MTsKKzAzMTUgMDA0MTsKKzAzMjQgMDA0MTsKKzAzMzUgMDA0MTsKKzAzNEEgMDA0MTsKKzAzNUEgMDA0MTsKKzA0ODMgMDA0MTsKKzA1QkIgMDA0MTsKK0ZFNzYgMDA0MTsKK0ZDNUYgMDA0MTsKKzA2NUIgMDA0MTsKKzA3MzkgMDA0MTsKKzA3NDggMDA0MTsKKzBBM0MgMDA0MTsKKzBDMDEgMDA0MTsKKzEwQTM5IDAwNDE7CiswRUNEIDAwNDE7CisxN0NEIDAwNDE7CiszMDJGIDAwNDE7CisyMERBIDAwNDE7CisyMEU5IDAwNDE7CisxRDRFQSAwMDQxOworMUQ0NjggMDA0MTsKKzAxMDMgMDA0MTsKKzFFQTYgMDA0MTsKKzAxREUgMDA0MTsKKzAyMDMgMDA0MTsKKzFENTg2IDAwNjI7CiswMEMwIDAwNjI7CiswMURGIDAwNjI7CisyMTAwIDAwNjI7CiswMEU2IDAwNDE7CisyMTAxIDAwMjE7CisxRDAxIDAwMjE7CiswMjUxIDAwNDE7CisyMDAwIDAwNjI7CitGRTRCIDAwNjI7CisxRkMwIDAwNjI7CiswNTVEIDAwNjI7CiswNzA2IDAwNjI7CiswMEJGIDAwNjI7CiswMEI3IDAwNjI7CisxMDEwMSAwMDYyOworMjA3RSAwMDYyOworMjk4NCAwMDYyOworMkUwRCAwMDYyOworMzAxNSAwMDYyOworMDA1QyAwMDYyOworMjAzNyAwMDYyOworMDU1RiAwMDYyOworMEYwRiAwMDYyOworMDJDNiAwMDYyOworMDJGMiAwMDYyOworQTcwNiAwMDYyOworMEJGOCAwMDYyOworMEZDMyAwMDYyOworMTlGNCAwMDYyOworMjE0QSAwMDYyOworMjFBNyAwMDYyOworMjFDNiAwMDYyOworMjFFNCAwMDYyOworMjIwMiAwMDYyOworMjA4QSAwMDYyOworMDA3RSAwMDYyOworMjIyRCAwMDYyOworMjI0OSAwMDYyOworMjI3MSAwMDYyOworMjI4NiAwMDYyOworMjJBMiAwMDYyOworMjJCQyAwMDYyOworMjJEQSAwMDYyOworMjMwMCAwMDYyOworMjMxRSAwMDYyOworMjMzRSAwMDYyOworMjM1QyAwMDYyOworMjM3QSAwMDYyOworMjM5OCAwMDYyOworMjNCNiAwMDYyOworMjNENCAwMDYyOworMjQxNiAwMDYyOworMjUwMiAwMDYyOworMjUxRiAwMDYyOworMjUzRCAwMDYyOworMjU1QiAwMDYyOworMjU3OSAwMDYyOworMjU5NyAwMDYyOworMjVCNCAwMDYyOworMjVEMSAwMDYyOworMjVFRiAwMDYyOworMjYwRCAwMDYyOworMjYyQiAwMDYyOworMjY1MSAwMDYyOworMjY3MiAwMDYyOworMjY5NiAwMDYyOworMjcwNyAwMDYyOworMjcyNyAwMDYyOworMjc0NiAwMDYyOworMjc2QyAwMDYyOworMjdBQiAwMDYyOworMjdENCAwMDYyOworMjdGNiAwMDYyOworMjkxNCAwMDYyOworMjkzMiAwMDYyOworMjk1MCAwMDYyOworMjk2RSAwMDYyOworMjlBMiAwMDYyOworMjlDMCAwMDYyOworMjlERSAwMDYyOworMjlGRSAwMDYyOworMkExRCAwMDYyOworMkEzQiAwMDYyOworMkE1OSAwMDYyOworMkE3QSAwMDYyOworMkE5OCAwMDYyOworMkFCNiAwMDYyOworMkFENCAwMDYyOworMkFGMiAwMDYyOworMkIxMCAwMDYyOworMjgxNCAwMDYyOworMjgzMiAwMDYyOworMjg1MCAwMDYyOworMjg2RSAwMDYyOworMjg4QyAwMDYyOworMjhBQSAwMDYyOworMjhDOCAwMDYyOworMjhFNiAwMDYyOworMjY4RSAwMDYyOworNERENCAwMDYyOworNERGMiAwMDYyOworMUQzMTAgMDA2MjsKKzFEMzJFIDAwNjI7CisxRDM0QyAwMDYyOworQTRBMyAwMDYyOworQTRDMSAwMDYyOworMTAxODggMDA2MjsKKzFEMDFDIDAwNjI7CisxRDAzQSAwMDYyOworMUQwNTggMDA2MjsKKzFEMDc2IDAwNjI7CisxRDA5NCAwMDYyOworMUQwQjIgMDA2MjsKKzFEMEQwIDAwNjI7CisxRDBFRSAwMDYyOworMUQxMTYgMDA2MjsKKzFEMTM0IDAwNjI7CisxRDE1MiAwMDYyOworMUQxOTIgMDA2MjsKKzFEMUI0IDAwNjI7CisxRDFEMiAwMDYyOworMUQyMTIgMDA2MjsKKzFEMjMwIDAwNjI7CisyRkZCIDAwNjI7CiswOUY4IDAwNjI7CisxMDExNyAwMDYyOworMTAxNDEgMDA2MjsKKzEwMTZCIDAwNjI7CiswMDBGIDAwNjI7CiswMDhEIDAwNjI7CiswNTk5IDAwNjI7CiswNjEwIDAwNjI7CiswRjM1IDAwNjI7CisyMDZGIDAwNjI7CitGRTIxIDAwNjI7CisxRDE3RCAwMDYyOworNkZGRkUgMDA2MjsKK0UwMDJEIDAwNjI7CitFMDA0QiAwMDYyOworRTAwNjkgMDA2MjsKK0UwMTA3IDAwNjI7CitFMDEyNSAwMDYyOworRTAxNDMgMDA2MjsKK0UwMTYxIDAwNjI7CitFMDE3RiAwMDYyOworRTAxOUQgMDA2MjsKK0UwMUJCIDAwNjI7CitFMDFEOSAwMDYyOworRkY0MiAwMDNGOworMjREMSAwMDNGOworMUQ2NzEgMDAzRjsKKzFFMDQgMDMzNDsKKzAzMDkgMDA2MjsKKzAzMkUgMDA2MjsKKzAzNTQgMDA2MjsKKzA1QjUgMDA2MjsKK0ZDRjMgMDA2MjsKKzA3MzMgMDA2MjsKKzA5NTMgMDA2MjsKKzBEODMgMDA2MjsKKzE3QzcgMDA2MjsKKzIwRDQgMDA2MjsKKzFENDFCIDAwNjE7CitGRjIyIDAwNjE7CisxRDQ3IDAwNjE7CisxRDU1MyAwMDYyOworMUUwNyAwMDYyOworMUQ2QyAwMDQxOworRkY0MyAwMDNGOworMUQ2MjQgMDAzRjsKKzFENDZBIDAwM0Y7CiswMEU3IDAwM0Y7CiswMDQzIDAzMDcgMDMzNDsKKzFENDUwIDAwNjE7CitGRjIzIDAwNDE7CisxRDY3MiAwMDQxOworMzM4OCAwMDNGOworMUQ0MzYgMDA2MjsKKzMzQzUgMDAzRjsKKzMzQzcgMDA2MTsKKzAxODcgMDA2MTsKKzFENTIxIDAwMjE7CisyMTQ1IDAwMjE7CisxRDQ4IDAwMjE7CiswMTBGIDAzMzQ7CisxRTBGIDAzMzQ7CisxRDRCOSAwMDYxOworMjE2RSAwMDYxOworMjRCOSAwMDYxOworMUUwRSAwMDYxOworMUQ1ODkgMDA2MjsKKzAxMEUgMDA2MjsKKzMzNzggMDAzRjsKKzAxRjIgMDA2MTsKKzFEMDUgMDA0MTsKKzAxOEEgMDAzRjsKK0ZGNDUgMDAzRjsKKzFENjI2IDAwM0Y7CisxRDVBNCAwMDNGOworMUVCRiAwMDNGOworMDExNiAwMDNGOworMDIwNSAwMDNGOworMDA0NSAwMzQxIDAzMzQ7CiswMDY1IDAzMDIgMDMzNCAwMzAwOworMDA2NSAwMzM0IDAzMDg7CisxRTFDIDAzMzQ7CiswMDY1IDAzMzQgMDMwOTsKKzAwQ0EgMDMzNCAwMzIzOworMUQ1NTYgMDA2MTsKKzFENDZDIDAwNjE7CisxRDMxIDAwNDE7CisxRUMzIDAwNDE7CiswMTE4IDAwNDE7CisxRUM3IDAwNDE7CiswMDQ1IDAwNjI7CisxRUMwIDAwNjI7CiswMjA2IDAwNjI7CiswMUREIDAwM0Y7CiswMjU5IDAwNjI7CisxRDkzIDAwM0Y7CisxRDA4IDAwM0Y7CiswMDY2IDAwM0Y7CisxRDY4RiAwMDNGOworMUQ1QTUgMDAzRjsKKzFENTIzIDAwNjE7CisxRDQwNSAwMDYxOworMUUxRiAwMDQxOworMUQ0MzkgMDA2MjsKK0ZCMDEgMDAyMTsKKzAxOTIgMDAyMTsKKzFENDIwIDAwM0Y7CisxRDY3NiAwMDIxOworMDExQyAwMDIxOworMDA0NyAwMzM0IDAzMDY7CiswMDQ3IDAzMzQgMDMwNDsKKzFENUY0IDAwNDE7CisxRDU3MiAwMDQxOworMDEyMCAwMDYxOworMUQ2OTAgMDA2MjsKKzAxMjEgMDA2MjsKKzFEQTIgMDA2MTsKKzAyNjAgMDAzRjsKKzAyRTAgMDA0MTsKKzFENUMxIDAwMjE7CisxRDRENyAwMDIxOworMDIxRiAwMDIxOworMDA0OCAwMzM0IDAzMDI7CiswMDQ4IDAzMzQgMDMyMzsKKzFENEJEIDAwNjE7CisyMTBDIDAwNjE7CiszM0NBIDAwM0Y7CisxRTJBIDAwNDE7CiswMDQ4IDAwNjI7CisxRTJCIDAwNjI7CiswMjlDIDAwNjI7CiswMkJCIDAwNjI7CisxRDY5MiAwMDIxOworMUQ1NDAgMDAyMTsKKzAwQ0QgMDAyMTsKKzAxMzAgMDAyMTsKKzAwNjkgMDMwMSAwMzM0OworMDFEMCAwMzM0OworMDA0OSAwMzI4IDAzMzQ7CiswMDQ5IDAzMjMgMDMzNDsKKzFENThFIDAwNjE7CisyMTExIDAwNjE7CisxRDYyIDAwNDE7CisxRTJFIDAwNDE7CisxRUNBIDAwNDE7CisyMTExIDAwNjI7CiswMTI5IDAwNjI7CisyMTYyIDAwM0Y7CisyMTYzIDAwM0Y7CisxREE2IDAwM0Y7CiswMTk3IDAwNjI7CiswMTk2IDAwNjI7CisxRDQ4QiAwMDNGOworMUQ0MDkgMDAzRjsKKzAxMzQgMDMzNDsKKzFENTI3IDAwNDE7CisxRDRBNSAwMDQxOworMUQ0RjMgMDA2MjsKKzAxRjAgMDA2MjsKKzAyNUYgMDA2MTsKKzFENDI0IDAwM0Y7CisxRDVERSAwMDIxOworMDFFOCAwMDNGOworMDEzNyAwMzM0OworMUQ1MjggMDA2MTsKKzFENDNFIDAwNjE7CiszMzg0IDAwM0Y7CisxRDQ1OCAwMDYyOworMUQ0RiAwMDYyOworMzM5MSAwMDQxOworMzM5RSAwMDYyOworMUQwQiAwMDQxOworMjExMyAwMDIxOworMDA0QyAwMDIxOworMUQ2NDcgMDAzRjsKKzFFM0MgMDAyMTsKKzAwNEMgMDMzNCAwMzIzOworMDA2QyAwMDYxOworMUQ1OTEgMDA0MTsKKzFENDczIDAwNDE7CisxRTM2IDAwNjE7CisxRDRDMSAwMDYyOworMDEzQSAwMDYyOworMDFDOSAwMDYyOworMzNEMyAwMDYxOworMDIzRCAwMDQxOworMURBOSAwMDQxOworMjE3RiAwMDIxOworMjREQyAwMDNGOworMUQ2MTQgMDAzRjsKKzAwNkQgMDMzNCAwMzA3OworMjRBOCAwMDQxOworMjREQyAwMDQxOworMUQ2MTQgMDA0MTsKKzIxN0YgMDA2MjsKKzFENjdDIDAwNjI7CiszM0Q1IDAwMjE7CiszM0FCIDAwMjE7CiszM0JEIDAwMjE7CiswMjcxIDAwMjE7CisxRDQ1QiAwMDNGOworMUQ2N0QgMDAyMTsKKzAxNDcgMDAyMTsKKzAwNEUgMDMwMSAwMzM0OworMDA2RSAwMzI3IDAzMzQ7CisxRDQyNyAwMDYxOworRkYyRSAwMDYxOworMjA3RiAwMDYxOworMUU0NyAwMDYxOworMUQ2OTcgMDA2MjsKKzAxNDYgMDA2MjsKKzMzOUEgMDA2MTsKKzFEQjAgMDA0MTsKKzAyNzIgMDA2MjsKKzAyMzUgMDA2MTsKKzFENEY4IDAwMjE7CisxRDQ3NiAwMDIxOworMjA5MiAwMDIxOworMUVENiAwMDIxOworMUU0RiAwMDIxOworMDBEOCAwMzM0IDAzNDE7CiswMjBGIDAwMjE7CisxRUNDIDAwMjE7CiswMEY0IDAzMzQ7CiswMEY0IDAzMDkgMDMzNDsKKzAwNEYgMDMzNCAwMzBCOworMDBENSAwMzM0IDAzMDQ7CiswMDZGIDAzMDQgMDMzNDsKKzAyMEQgMDMzNDsKKzAwNEYgMDMzNCAwMzQwIDAzMUI7CiswMDRGIDAzMzQgMDMyMzsKKzFENjMwIDAwNjE7CisxRDVBRSAwMDYxOworMDBEMyAwMDYxOworMDFEMiAwMDYxOworMDIyQyAwMDYxOworMUU1MyAwMDYxOworMUVEQyAwMDYxOworMUQ0RjggMDA2MjsKKzAwRjMgMDA2MjsKKzAyMkQgMDA2MjsKKzFFREQgMDA2MjsKKzFEMEYgMDA0MTsKKzAxODYgMDA2MTsKKzFEMTYgMDA2MjsKKzAyNzcgMDA0MTsKKzFENDkxIDAwMjE7CisyMTE5IDAwMjE7CisxRDNFIDAwMjE7CisxRDQyOSAwMDYxOworRkYzMCAwMDYxOworMUQ1NiAwMDYxOworMUQ1MkQgMDA2MjsKKzFFNTYgMDA2MjsKKzMzREEgMDA2MjsKKzFEN0QgMDA2MjsKKzFEQjIgMDA2MjsKKzFENjMyIDAwM0Y7CisxRDVCMCAwMDNGOworMUQ0RkEgMDA0MTsKKzFENDQ0IDAwNDE7CiswMDUxIDAwNjI7CiswMTM4IDAwNjI7CisxRDVDQiAwMDNGOworMUQ0RTEgMDAzRjsKKzAxNTYgMDAzRjsKKzAwNzIgMDMzNCAwMzBDOworMDA3MiAwMzM0IDAzMjM7CisxRDQ1RiAwMDYxOworRkYzMiAwMDQxOworMDJCMyAwMDQxOworMUU1QiAwMDQxOworMUQ0MkIgMDA2MjsKKzAyQjMgMDA2MjsKKzAyODAgMDA2MTsKKzFEMUEgMDA2MjsKKzAyN0QgMDA2MjsKKzI0QUUgMDAyMTsKKzAwNTMgMDAyMTsKKzI0QzggMDAyMTsKKzAxNUUgMDAyMTsKKzAwNzMgMDMwMiAwMzM0OworMDA1MyAwMzM0IDAzMjc7CiswMDczIDAwNDE7CisxRDY5QyAwMDQxOworMUQ2MUEgMDA0MTsKKzFFNjAgMDA0MTsKKzFENTY0IDAwNjI7CiswMTVDIDAwNjI7CiswMERGIDAwNDE7CisxREIzIDAwM0Y7CisxRDhCIDAwNDE7CisxRDQyRCAwMDIxOworRkYzNCAwMDIxOworMUQ1NyAwMDIxOworMUU2RiAwMDIxOworMUU2QyAwMzM0OworMUQ0NjEgMDA2MTsKK0ZGMzQgMDA0MTsKKzFENTcgMDA0MTsKKzFFNkYgMDA0MTsKKzFENTdGIDAwNjI7CisyMTIxIDAwM0Y7CiswMkE3IDAwM0Y7CiswMUFCIDAwM0Y7CiswMjM2IDAwM0Y7CisxRDQyRSAwMDNGOworMUQ2NTAgMDAyMTsKKzAwRDkgMDAzRjsKKzAxREEgMDAzRjsKKzFFN0EgMDAzRjsKKzFFRUQgMDAzRjsKKzAwNTUgMDM0MSAwMzM0OworMDA1NSAwMzBBIDAzMzQ7CiswMDU1IDAzMzQgMDMwOCAwMzBDOworMDE2OCAwMzM0IDAzNDE7CiswMDU1IDAzMEYgMDMzNDsKKzAxQUYgMDMzNCAwMzQwOworMUVFNCAwMzM0OworMUQ0NjIgMDA2MTsKK0ZGMzUgMDA0MTsKKzFENTggMDA0MTsKKzAwRkMgMDA0MTsKKzFFNzggMDA0MTsKKzFFRTkgMDA0MTsKKzFFNzYgMDA0MTsKKzFENTE4IDAwNjI7CiswMURBIDAwNjI7CisxRUVEIDAwNjI7CisxRDFEIDAwNjI7CisxRDk5IDAwNDE7CiswMTlDIDAwNjE7CiswMUIxIDAwNjE7CisxRDVDRiAwMDIxOworMUQ0RTUgMDAyMTsKKzFFN0MgMDAyMTsKKzFENDJGIDAwNjE7CitGRjM2IDAwNjE7CisyNENCIDAwNjE7CisxRDY2QiAwMDYyOworMjE3NSAwMDYxOworMzNERSAwMDYyOworMDI4QyAwMDYxOworMUQ1MzQgMDAzRjsKKzFENEIyIDAwM0Y7CisxRTg1IDAwMjE7CiswMTc1IDAzMzQ7CisyNEIyIDAwNDE7CiswMDU3IDAwNDE7CisyNENDIDAwNDE7CisxRTg4IDAwNDE7CisxRDYxRSAwMDYyOworMDI4RCAwMDNGOworMUQ0Q0QgMDAzRjsKKzFENjg3IDAwMjE7CisxRThEIDAzMzQ7CisxRDVEMSAwMDYxOworMUQ0RTcgMDA2MTsKKzFFOEMgMDA2MTsKKzFENDdGIDAwNjI7CisyMTZCIDAwMjE7CisxRDY2RSAwMDIxOworMUQ1RUMgMDAyMTsKKzAxNzcgMDAzRjsKKzAwNzkgMDMzNCAwMzAxOworMDA3OSAwMzAzIDAzMzQ7CiswMDc5IDAwNjE7CisxRDY2RSAwMDQxOworMUQ1RUMgMDA0MTsKKzFFOEYgMDA2MTsKKzFENjZFIDAwNjI7CisxRUY4IDAwNjI7CisxRDQzMyAwMDIxOworRkYzQSAwMDIxOworMURCQiAwMDIxOworMDA1QSAwMzAxIDAzMzQ7CisxRTk1IDAzMzQ7CisxRDU5RiAwMDQxOworMUQ0QjUgMDA0MTsKKzFFOTIgMDA2MTsKKzFENEI1IDAwNjI7CisxRDIyIDAwNDE7CiswMjI1IDAwNjI7CiswMUI3IDAwM0Y7CisxRDIzIDAwNjE7CiswMjFDIDAwMjE7CiswMUJCIDAwNjE7CiswMTg0IDAwNDE7CiswMkVFIDAwNjE7CisxRDI0IDAwNjE7CiswMUMwIDAwNjE7CiswMkFDIDAwNjE7CisxRDc1NiAwMDNGOworMUY4MCAwMDIxOworMUY4RiAwMDIxOworMUZCMSAwMDIxOworMUYwMCAwMzQwIDAzMzQ7CiswM0IxIDAzMzQgMDM0MyAwMzQ1OworMDNCMSAwMzE0IDAzNDAgMDMzNDsKKzAzOTEgMDMzNCAwMzE0IDAzNDUgMDM0MjsKKzAzQjEgMDM0NSAwMzM0IDAzMDA7CisxRkIzIDAwM0Y7CisxRjA4IDAwNDE7CisxRjAxIDAwNDE7CisxRjg5IDAwNDE7CisxRkIzIDAwNDE7CisxRjg4IDAwNjI7CisxRkI5IDAwNjI7CisxRDVEIDAwM0Y7CisxRDVEIDAwNDE7CisxRDc3MiAwMDNGOworMUQ2RkUgMDA0MTsKKzIxM0UgMDA2MjsKKzFENzU5IDAwMjE7CisxRDcxRiAwMDQxOworMUQ3QUUgMDAyMTsKKzFGMUMgMDAyMTsKKzAzQjUgMDMxMyAwMzM0OworMDNCNSAwMzE0IDAzMzQgMDMwMTsKKzAzOTUgMDM0MCAwMzM0OworMUQ3MjAgMDA2MTsKKzFGMUIgMDA2MTsKKzFENzVBIDAwNjI7CiswM0RCIDAwMjE7CisxRDZFNyAwMDNGOworMUQ3MDEgMDA2MjsKKzFENkU4IDAwM0Y7CisxRjlFIDAwMjE7CisxRjk3IDAwMjE7CiswM0I3IDAzNDMgMDMzNDsKKzAzQjcgMDM0MyAwMzAwIDAzMzQgMDM0NTsKKzFGQ0MgMDMxMyAwMzM0OworMUYyOSAwMzQwIDAzMzQ7CiswMzk3IDAzMTQgMDM0NSAwMzM0OworMUZDNiAwMzM0OworMUQ2RTggMDA2MTsKKzFGMjYgMDA0MTsKKzFGOUIgMDA0MTsKKzFGQzYgMDA0MTsKKzFGMkUgMDA2MjsKKzFGQzcgMDA2MjsKKzAzRjQgMDAzRjsKKzFENzE3IDAwNjE7CisxRDdBMSAwMDYxOworMUQ2RjMgMDA2MjsKKzFENzk4IDAwMjE7CisxRjMzIDAwMjE7CiswMzkwIDAwMjE7CisxRkJFIDAzMzQgMDMxMyAwMzAwOworMUZCRSAwMzE0IDAzMDAgMDMzNDsKKzAzOTkgMDM0MCAwMzM0OworMUZCRSAwMzM0IDAzMDggMDM0MjsKKzFENzk4IDAwNjE7CisxRjMzIDAwNjE7CiswMzkwIDAwNjE7CisxRjMyIDAwNjI7CiswM0YzIDAwM0Y7CisxRDZCMSAwMDIxOworMUQ3NzkgMDA0MTsKKzFENkVCIDAwNjI7CisxRDcyNiAwMDNGOworMUQ3NDAgMDA2MjsKKzFENkIzIDAwMjE7CisxRDc5QiAwMDYxOworMzM4RCAwMDNGOworMDNCRCAwMDNGOworMUQ2Q0UgMDA0MTsKKzAzQkUgMDAzRjsKKzFENkNGIDAwNDE7CiswM0JGIDAwM0Y7CisxRjRDIDAwM0Y7CiswM0JGIDAzMzQgMDM0MzsKKzAzQkYgMDMzNCAwMzE0IDAzMDE7CisxRkY4IDAzMzQ7CisxRjQ0IDAwNDE7CisxRkY4IDAwNDE7CisxRkY4IDAwNjI7CisxRDZCNyAwMDIxOworMUQ3MUIgMDA0MTsKKzFENzdGIDAwNjI7CiswM0RGIDAwNjE7CisxRDZEMiAwMDNGOworMDNDMSAwMzM0IDAzMTM7CisxRDc4MCAwMDQxOworMUQ3NDYgMDA2MjsKKzFENkQzIDAwMjE7CisxRDZGNCAwMDNGOworMDNBMyAwMDYxOworMUQ2QkEgMDA2MjsKKzFENzQ5IDAwM0Y7CisxRDZGNSAwMDYxOworMUQ3NEEgMDAzRjsKKzFGNTUgMDAzRjsKKzFGRTYgMDAzRjsKKzAzQzUgMDM0MyAwMzQwIDAzMzQ7CisxRjUxIDAzNDIgMDMzNDsKKzFGRTggMDMzNDsKKzFGRTkgMDMzNDsKKzFGNTQgMDA0MTsKKzAzRDMgMDA0MTsKKzFENkQ2IDAwNjI7CisxRkVBIDAwNjI7CisxRDcxOSAwMDNGOworMUQ3MTkgMDA2MTsKKzFENjAgMDA0MTsKKzFENkQ4IDAwM0Y7CisxRDc0QyAwMDQxOworMUQ3QTYgMDA2MjsKKzFENzEzIDAwNjE7CisxRDczMyAwMDYyOworMUQ2RkEgMDAzRjsKKzFGQUUgMDAyMTsKKzFGQTcgMDAyMTsKKzAzQzkgMDMzNCAwMzQzOworMDNDOSAwMzEzIDAzNDUgMDMwMCAwMzM0OworMjEyNiAwMzQ1IDAzMzQgMDMxMzsKKzAzQTkgMDMzNCAwMzE0IDAzNDA7CisxRjYxIDAzNDUgMDMzNDsKKzAzQzkgMDM0MiAwMzM0OworMjEyNiAwMDYxOworMUZBMiAwMDQxOworMUY2QiAwMDQxOworMUZGQSAwMDQxOworMUY2MiAwMDYyOworMUZGNCAwMDYyOworMkM4MCAwMDIxOworMkM4NiAwMDIxOworMkM4QSAwMDIxOworMkM5MCAwMDIxOworMkNFNCAwMDYxOworMkM5OCAwMDQxOworMkNCQyAwMDQxOworMkNBMCAwMDQxOworMkNBNiAwMDQxOworMkNBQyAwMDQxOworMkNCRSAwMDQxOworMkNDMiAwMDQxOworMDNFNCAwMDQxOworMDNFOCAwMDQxOworMkNDRSAwMDQxOworMkNENCAwMDQxOworMDNFQyAwMDQxOworMkNEQyAwMDQxOworMkNCNCAwMDQxOworMkNFMiAwMDQxOworMDREMCAwMzM0OworMDREMiAwMzM0OworMDREQiAwMDIxOworMDRENSAwMDNGOworMDQzMyAwMDNGOworMDQ5MiAwMDQxOworMDQxNCAwMDQxOworMDUwMiAwMDQxOworMDQzMyAwMzAxIDAwNDE7CiswNDM1IDAwM0Y7CiswNDUwIDAwNDE7CiswNDM1IDA1OTEgMDMwNiAwMDYxOworMDRDMiAwMDNGOworMDREQyAwMDNGOworMDQ5NiAwMDQxOworMDRERSAwMDIxOworMDQ1NSAwMDQxOworMDQ1RCAwMDNGOworMDQxOCAwMDAxIDAzMDYgMDA2MTsKKzA0RTQgMDAzRjsKKzA0MDYgMDA0MTsKKzA0MDcgMDA0MTsKKzA0MTkgMDA0MTsKKzA0OUIgMDAzRjsKKzA0OUYgMDAzRjsKKzFEMkIgMDAzRjsKKzA1MDggMDA2MTsKKzA0M0QgMDA2MTsKKzA0QzggMDAzRjsKKzA1MEIgMDAzRjsKKzA0M0UgMDMzNCAwMzA4OworMDRFOCAwMDAxIDAzMDggMDA2MTsKKzA0RUIgMDA2MjsKKzA0ODAgMDA0MTsKKzA0MjEgMDA0MTsKKzA0MjIgMDA0MTsKKzA0MEIgMDA0MTsKKzA0M0EgMDMwMSAwMDQxOworMDQyMyAwMzA0IDAzMzQ7CiswNDQzIDAzMzQgMDMwNjsKKzA0NDMgMDMzNCAwMzA4OworMDQ0MyAwMzM0IDAzMEI7CiswNEFFIDAwNjI7CiswNDI0IDAwNjI7CiswNEJBIDAwNjI7CiswNDdDIDAwNjI7CiswNEI0IDAwNjI7CiswNEY1IDAwNjE7CiswNENCIDAwNDE7CiswNEJFIDAwNDE7CiswNDI5IDAwNDE7CiswNEY4IDAwMjE7CiswNDRDIDAwNDE7CiswNDREIDAwNDE7CiswNEVDIDAwNjE7CiswNDY0IDAwM0Y7CiswNDY4IDAwM0Y7CiswNDcwIDAwM0Y7CiswNDc3IDAwMjE7CiswNEE5IDAwM0Y7CisyQzAxIDAwNjE7CisyQzA0IDAwNjE7CisyQzA3IDAwNjE7CisyQzBBIDAwNjE7CisyQzBEIDAwNjE7CisyQzEwIDAwNjE7CisyQzEzIDAwNjE7CisyQzE2IDAwNjE7CisyQzE5IDAwNjE7CisyQzFDIDAwNjE7CisyQzFGIDAwNjE7CisyQzIyIDAwNjE7CisyQzI1IDAwNjE7CisyQzI4IDAwNjE7CisyQzJCIDAwNjE7CisyQzJFIDAwNjE7CisxMEExIDAwNjE7CisxMEEzIDAwNjE7CisxMEE1IDAwNjE7CisxMEMxIDAwNjE7CisxMEE4IDAwNjE7CisxMEFBIDAwNjE7CisyRDBDIDAwM0Y7CisyRDBEIDAwM0Y7CisyRDBGIDAwM0Y7CisyRDExIDAwM0Y7CisyRDIzIDAwM0Y7CisyRDE0IDAwM0Y7CisyRDE2IDAwM0Y7CisyRDE4IDAwM0Y7CisyRDFBIDAwM0Y7CisyRDFDIDAwM0Y7CisyRDFFIDAwM0Y7CisyRDFGIDAwM0Y7CisyRDI1IDAwM0Y7CisxMEZBIDAwM0Y7CiswNTMzIDAwNjE7CiswNTY2IDAwM0Y7CiswNTY5IDAwM0Y7CiswNTZDIDAwM0Y7CiswNTZGIDAwM0Y7CiswNTcyIDAwM0Y7CitGQjE0IDAwM0Y7CiswNTc2IDAwM0Y7CiswNTc5IDAwM0Y7CiswNTdDIDAwM0Y7CitGQjE2IDAwM0Y7CiswNTUxIDAwNjE7CiswNTU0IDAwNjE7CiswNUQwIDAwM0Y7CitGQjMwIDAwNjE7CisyMTM2IDAwNDE7CisyMTM4IDAwM0Y7CiswNUQ0IDAwNDE7CiswNUYwIDAwM0Y7CiswNUQ4IDA1QkMgMDMzNDsKK0ZCMzkgMDA2MjsKK0ZCM0IgMDAzRjsKK0ZCM0MgMDAyMTsKKzA1REUgMDA2MjsKKzA1RTEgMDA0MTsKK0ZCNDMgMDAyMTsKKzA1RTUgMDA2MTsKKzA1RTggMDA0MTsKK0ZCMkEgMDAzRjsKKzA1RUEgMDVCQyAwMzM0OworMDY3NCAwMDYyOworMDYyMyAwMDNGOworRkI1MSAwMDIxOworRkU4NiAwMDYxOworRkU4OCAwMDYyOworRkU4QyAwMDYxOworRkM5NyAwMDYyOworRkNERiAwMDNGOworRkM5QiAwMDYyOworRkJGMyAwMDYyOworRkJGOSAwMDNGOworRkJGNyAwMDNGOworRkQzRCAwMDYxOworMDY2RSAwMDYyOworRkM5QyAwMDYxOworRkMwNyAwMDYyOworRkMwOCAwMDYxOworRkMwOSAwMDYyOworRkI1MiAwMDQxOworRkI1NiAwMDYyOworMDc1MCAwMDYyOworMDc1NiAwMDYyOworRkU5OCAwMDYxOworRkRBMCAwMDYyOworRkQ1MyAwMDYyOworRkM3MCAwMDYyOworRkQ1NSAwMDYyOworRkNBNSAwMDYxOworRkU5QyAwMDIxOworRkM3NiAwMDYyOworRkM3OSAwMDYyOworRkI2OSAwMDIxOworRkI1RSAwMDNGOworRkI2NSAwMDIxOworRkU5RCAwMDNGOworRkRBNiAwMDYyOworRkQ1OCAwMDYyOworRkQwMiAwMDYyOworRkI3NSAwMDIxOworRkI3QSAwMDNGOworRkI3RSAwMDNGOworRkVBNCAwMDYxOworRkNBQSAwMDYxOworRkQxQyAwMDYxOworRkVBNSAwMDYyOworRkQxRiAwMDYxOworMDY4NSAwMDYyOworRkVBQiAwMDIxOworRkI4OCAwMDYyOworRkI4NCAwMDYyOworRkI4NiAwMDYyOworRkVBRCAwMDIxOworRkVBRiAwMDIxOworMDY5MiAwMDYyOworRkI4QSAwMDIxOworMDc2QiAwMDYyOworRkVCMSAwMDYyOworRkMxRCAwMDIxOworRkMxRSAwMDYyOworRkNFNyAwMDQxOworRkQ2MiAwMDYyOworRkNGQyAwMDYyOworRkQyNSAwMDIxOworRkQyRSAwMDQxOworRkQyNyAwMDIxOworRkQyOCAwMDIxOworRkQ2RCAwMDYxOworRkQxQSAwMDYxOworMDc1QyAwMDYyOworRkVCOSAwMDYyOworRkNCMiAwMDYyOworRkRGMCAwMDYyOworRkQwNSAwMDYyOworRkVCRCAwMDQxOworRkQ2RSAwMDYyOworRkQyQyAwMDYxOworRkQyNCAwMDYxOworRkVDMSAwMDNGOworRkMyNyAwMDIxOworRkQ3NCAwMDYyOworRkVDNSAwMDNGOworRkMyOCAwMDYyOworRkVDOSAwMDYyOworRkNCQiAwMDYxOworRkQxMyAwMDYxOworRkVEMCAwMDYxOworRkMyQyAwMDYyOworRkQxNiAwMDYxOworMDc1RiAwMDYyOworRkNCRSAwMDYxOworRkQ3RCAwMDYxOworRkMzMSAwMDYyOworRkI2RCAwMDIxOworRkI3MSAwMDIxOworMDc2MSAwMDYyOworRkVENSAwMDYyOworRkRCNCAwMDYxOworRkM3RiAwMDYxOworRkVEQyAwMDYxOworRkMzOCAwMDYyOworRkNDNyAwMDQxOworRkMzQyAwMDYyOworRkM4NCAwMDYxOworRkI4RSAwMDYyOworRkJENiAwMDYxOworRkI5NSAwMDYxOworRkI5RCAwMDYxOworRkI5OSAwMDYxOworMDc2NCAwMDYyOworRkVGNiAwMDYxOworRkVGQyAwMDYxOworRkRCQSAwMDYxOworRkQ4MCAwMDYyOworRkQ4NSAwMDYyOworRkQ4NyAwMDYyOworRkM0NCAwMDYyOworRkVFNCAwMDIxOworRkM4OCAwMDYyOworRkRDMCAwMDYyOworRkQ4QiAwMDYyOworRkM0OCAwMDIxOworMDc2NSAwMDYyOworRkVFNSAwMDYyOworRkQ5NyAwMDYyOworRkQ5NiAwMDYyOworRkM4QyAwMDIxOworRkM4RCAwMDYyOworRkM1MCAwMDYyOworRkJBMyAwMDYxOworMDc2NyAwMDYyOworRkVFQSAwMDQxOworRkM1MiAwMDYyOworRkJBQSAwMDNGOworMDZDMiAwMDNGOworMDZENSAwMDNGOworMDY0OCAwMDYxOworRkJFMSAwMDIxOworRkJEOCAwMDIxOworMDZDOCAwMDQxOworRkJERiAwMDIxOworRkM1RCAwMDIxOworRkVGNCAwMDNGOworRkNEQSAwMDNGOworRkNEQyAwMDNGOworRkNGMCAwMDQxOworRkNERSAwMDNGOworMDZDQyAwMDNGOworMDZDRSAwMDNGOworMDZEMSAwMDNGOworRkJCMCAwMDQxOworMDcxNCAwMDYxOworMDcxOCAwMDQxOworMDcxRCAwMDQxOworMDcyMiAwMDQxOworMDc0RiAwMDQxOworMDc4MCAwMDQxOworMDc5QyAwMDQxOworMDdBMyAwMDQxOworMDc5QiAwMDQxOworMDc4RSAwMDQxOworMDc5RiAwMDQxOworMDc5NiAwMDQxOworMDdBOSAwMDQxOworMDdBRiAwMDQxOworMkQzNCAwMDQxOworMkQzQSAwMDQxOworMkQ0MCAwMDQxOworMkQ0NiAwMDQxOworMkQ0QyAwMDQxOworMkQ1MiAwMDQxOworMkQ1OCAwMDQxOworMkQ1RSAwMDQxOworMkQ2MyAwMDQxOworMTIwMyAwMDQxOworMTIwOSAwMDQxOworMTIwRiAwMDQxOworMTIxNCAwMDQxOworMTIxQSAwMDQxOworMTM4MCAwMDQxOworMTIyMSAwMDQxOworMTIyNyAwMDQxOworMTIyRCAwMDQxOworMTIzMiAwMDQxOworMkQ4MyAwMDQxOworMTIzRCAwMDQxOworMTI0MiAwMDQxOworMTI0OCAwMDQxOworMTI1MSAwMDQxOworMTI1OCAwMDQxOworMTI2MSAwMDQxOworMTI2NyAwMDQxOworMTI2OCAwMDQxOworMTI2RSAwMDQxOworMTI3NCAwMDQxOworMTI3OSAwMDQxOworMTI3RiAwMDQxOworMTI4NCAwMDQxOworMTI4QiAwMDQxOworMTI5MyAwMDQxOworMTI5OCAwMDQxOworMTI5RSAwMDQxOworMTJBMyAwMDQxOworMTJBOCAwMDQxOworMTJBRSAwMDQxOworMTJCNSAwMDQxOworMTJCRCAwMDQxOworMTJDNSAwMDQxOworMTJDRCAwMDQxOworMTJEMyAwMDQxOworMTJEQSAwMDQxOworMkQ4QiAwMDQxOworMTJFNSAwMDQxOworMTJFQiAwMDQxOworMTJGMSAwMDQxOworMTJGNyAwMDQxOworMTJGQyAwMDQxOworMTMwMSAwMDQxOworMTMwNyAwMDQxOworMTMwQyAwMDQxOworMTMxMyAwMDQxOworMTMxQiAwMDQxOworMkQ5NCAwMDQxOworMTMyMyAwMDQxOworMTMyOCAwMDQxOworMTMyRSAwMDQxOworMTMzMyAwMDQxOworMTMzOCAwMDQxOworMTMzRSAwMDQxOworMTM0NCAwMDQxOworMTM0QSAwMDQxOworMTM4OCAwMDQxOworMTM1MiAwMDQxOworMTM4QyAwMDQxOworMTM1OSAwMDQxOworMkRBNCAwMDQxOworMkRBQiAwMDQxOworMkRCMiAwMDQxOworMkRCOSAwMDQxOworMkRDMCAwMDQxOworMkRDNiAwMDQxOworMkRDRCAwMDQxOworMkRENCAwMDQxOworMkREQiAwMDQxOworMDkwNSAwMDQxOworMDkwQiAwMDQxOworMDkwRiAwMDQxOworMDkxNSAwOTNDIDAzMzQ7CiswOTE3IDAwNjE7CiswOTVCIDAzMzQ7CiswOTIxIDAwM0Y7CiswOTI0IDAwMjE7CiswOTI5IDAwNDE7CiswOTJEIDAwNjI7CiswOTMwIDAwNjI7CiswOTM3IDAwMjE7CiswOTNGIDAwMjE7CiswOTYyIDAwMjE7CiswOTQ5IDAwMjE7CiswOTg1IDAwNDE7CiswOThCIDAwNDE7CiswOTkzIDAwNDE7CiswOTk5IDAwNDE7CiswOTlGIDAwNDE7CiswOUREIDAwNDE7CiswOUE3IDAwNjE7CiswOUFFIDAwNjE7CiswOUIyIDAwNjI7CiswOUJEIDAwNjI7CiswOUMzIDAwNjI7CiswOUM4IDAwNDE7CiswOUQ3IDAwM0Y7CiswQTA1IDAwM0Y7CiswQTA4IDAwM0Y7CiswQTE1IDAwNDE7CiswQTE4IDAwNjE7CiswQTVCIDAwNjI7CiswQTIyIDAwNjI7CiswQTI4IDAwNjI7CiswQTJFIDAwM0Y7CiswQTM1IDAwNDE7CiswQTQyIDAwNDE7CiswQUQwIDAwM0Y7CiswQThBIDAwM0Y7CiswQThGIDAwM0Y7CiswQTk2IDAwM0Y7CiswQTlDIDAwM0Y7CiswQUEyIDAwM0Y7CiswQUE4IDAwM0Y7CiswQUFGIDAwM0Y7CiswQUI3IDAwM0Y7CiswQUMwIDAwM0Y7CiswQUUzIDAwM0Y7CiswQUNDIDAwM0Y7CiswQjA4IDAwNjI7CiswQjYxIDAwNjI7CiswQjE2IDAwNjI7CiswQjFDIDAwNjI7CiswQjVDIDAwNjE7CiswQjI1IDAwNDE7CiswQjJDIDAwNDE7CiswQjMyIDAwNDE7CiswQjM4IDAwNDE7CiswQjQxIDAwNDE7CiswQjQ3IDBCNTYgMDA2MTsKKzBCNEQgMDA2MTsKKzBCODcgMDA2MTsKKzBCOTAgMDA2MTsKKzBCOTUgMDA2MjsKKzBCQTMgMDA2MjsKKzBCQUYgMDA2MjsKKzBCQjUgMDA2MjsKKzBCQkYgMDA2MjsKKzBCQzcgMDA0MTsKKzBCQzYgMEJENyAwMDIxOworMEMwNiAwMDQxOworMEM2MCAwMDQxOworMEMxMiAwMDQxOworMEMxOCAwMDQxOworMEMxRSAwMDQxOworMEMyNCAwMDQxOworMEMyQiAwMDQxOworMEMzMSAwMDQxOworMEMzOCAwMDQxOworMEM0MiAwMDQxOworMEM0NiAwNTkxIDBDNTYgMDA2MTsKKzBDNTUgMDAyMTsKKzBDODggMDAzRjsKKzBDRTEgMDAzRjsKKzBDOTQgMDAzRjsKKzBDOUEgMDAzRjsKKzBDQTAgMDAzRjsKKzBDQTYgMDAzRjsKKzBDQUQgMDAzRjsKKzBDQjUgMDAzRjsKKzBDREUgMDAzRjsKKzBDQkYgMENENSAwMDYyOworMENDNiAwMDAxIDBDQzIgMENENSAwMDYxOworMENDQSAwMDIxOworMENDQyAwMDIxOworMEQwNiAwMDQxOworMEQ2MCAwMDQxOworMEQxMiAwMDQxOworMEQxOCAwMDQxOworMEQxRSAwMDQxOworMEQyNCAwMDQxOworMEQyQiAwMDQxOworMEQzMSAwMDQxOworMEQzNyAwMDQxOworMEQ0MSAwMDQxOworMEQ0NyAxRDE2NSAwRDNFIDAwNjE7CiswRDQ2IDBENTcgMDA2MTsKKzBEODcgMDA2MTsKKzBEOEQgMDA2MTsKKzBEOTMgMDA2MTsKKzBEOUMgMDA2MTsKKzBEQTIgMDA2MTsKKzBEQTggMDA2MTsKKzBEQUUgMDA2MTsKKzBEQjUgMDA2MTsKKzBEQkIgMDA2MTsKKzBEQzQgMDA2MTsKKzBERDEgMDAyMTsKKzBERDkgMDAyMTsKKzBEREIgMDAyMTsKKzBEREMgMDU5MSAwRENBIDAwNjE7CiswREYzIDAwMjE7CitBODA1IDAwMjE7CitBODBBIDAwNDE7CitBODExIDAwNDE7CitBODE3IDAwNDE7CitBODFEIDAwNDE7CitBODIzIDAwNDE7CisxMEEwMSAwMDQxOworMTBBMTAgMDA0MTsKKzEwQTE3IDAwNDE7CisxMEExRSAwMDQxOworMTBBMjQgMDA0MTsKKzEwQTJBIDAwNDE7CisxMEEzMCAwMDQxOworMEU0MCAwRTAxIDAwM0Y7CiswRTQwIDBFMDIgMDAzRjsKKzBFNDAgMEUwMyAwMDNGOworMEU0MCAwRTA0IDAwM0Y7CiswRTQwIDBFMDUgMDAzRjsKKzBFNDAgMEUwNiAwMDNGOworMEU0MCAwRTA3IDAwM0Y7CiswRTQwIDBFMDggMDAzRjsKKzBFNDAgMEUwOSAwMDNGOworMEU0MCAwRTBBIDAwM0Y7CiswRTQwIDBFMEIgMDAzRjsKKzBFNDAgMEUwQyAwMDNGOworMEU0MCAwRTBEIDAwM0Y7CiswRTQwIDBFMEUgMDAzRjsKKzBFNDAgMEUwRiAwMDNGOworMEU0MCAwRTEwIDAwM0Y7CiswRTQwIDBFMTEgMDAzRjsKKzBFNDAgMEUxMiAwMDNGOworMEU0MCAwRTEzIDAwM0Y7CiswRTQwIDBFMTQgMDAzRjsKKzBFNDAgMEUxNSAwMDNGOworMEU0MCAwRTE2IDAwM0Y7CiswRTQwIDBFMTcgMDAzRjsKKzBFNDAgMEUxOCAwMDNGOworMEU0MCAwRTE5IDAwM0Y7CiswRTQwIDBFMUEgMDAzRjsKKzBFNDAgMEUxQiAwMDNGOworMEU0MCAwRTFDIDAwM0Y7CiswRTQwIDBFMUQgMDAzRjsKKzBFNDAgMEUxRSAwMDNGOworMEU0MCAwRTFGIDAwM0Y7CiswRTQwIDBFMjAgMDAzRjsKKzBFNDAgMEUyMSAwMDNGOworMEU0MCAwRTIyIDAwM0Y7CiswRTQwIDBFMjMgMDAzRjsKKzBFNDAgMEUyNCAwMDNGOworMEU0MCAwRTI1IDAwM0Y7CiswRTQwIDBFMjYgMDAzRjsKKzBFNDAgMEUyNyAwMDNGOworMEU0MCAwRTI4IDAwM0Y7CiswRTQwIDBFMjkgMDAzRjsKKzBFNDAgMEUyQSAwMDNGOworMEU0MCAwRTJCIDAwM0Y7CiswRTQwIDBFMkMgMDAzRjsKKzBFNDAgMEUyRCAwMDNGOworMEU0MCAwRTJFIDAwM0Y7CiswRTMwIDAwM0Y7CiswRTM0IDAwNDE7CiswRTM5IDAwNjI7CiswRTQwIDFEMTY1IDBFMDYgMDA2MTsKKzBFNDAgMUQxNjUgMEUxMCAwMDYxOworMEU0MCAxRDE2NSAwRTFBIDAwNjE7CiswRTQwIDFEMTY1IDBFMjQgMDA2MTsKKzBFNDAgMUQxNjUgMEUyRSAwMDYxOworMEU0MSAwMDAxIDBFMDkgMDA2MTsKKzBFNDEgMDAwMSAwRTEzIDAwNjE7CiswRTQxIDAwMDEgMEUxRCAwMDYxOworMEU0MSAwMDAxIDBFMjcgMDA2MTsKKzBFNDIgMDU5MSAwRTAxIDAwNjE7CiswRTQyIDA1OTEgMEUwQiAwMDYxOworMEU0MiAwNTkxIDBFMTUgMDA2MTsKKzBFNDIgMDU5MSAwRTFGIDAwNjE7CiswRTQyIDA1OTEgMEUyOSAwMDYxOworMEU0MyAxRDE2NSAwRTAzIDAwNjE7CiswRTQzIDFEMTY1IDBFMEQgMDA2MTsKKzBFNDMgMUQxNjUgMEUxNyAwMDYxOworMEU0MyAxRDE2NSAwRTIxIDAwNjE7CiswRTQzIDFEMTY1IDBFMkIgMDA2MTsKKzBFNDQgMDAwMSAwRTA2IDAwNjE7CiswRTQ0IDAwMDEgMEUxMCAwMDYxOworMEU0NCAwMDAxIDBFMUEgMDA2MTsKKzBFNDQgMDAwMSAwRTI0IDAwNjE7CiswRTQ0IDAwMDEgMEUyRSAwMDYxOworMEVDMyAwRTgxIDAwNjE7CiswRUMzIDBFODIgMDA2MTsKKzBFQzMgMEU4NCAwMDYxOworMEVDMyAwRTg3IDAwNjE7CiswRUMzIDBFODggMDA2MTsKKzBFQzMgMEU4QSAwMDYxOworMEVDMyAwRThEIDAwNjE7CiswRUMzIDBFOTQgMDA2MTsKKzBFQzMgMEU5NSAwMDYxOworMEVDMyAwRTk2IDAwNjE7CiswRUMzIDBFOTcgMDA2MTsKKzBFQzMgMEU5OSAwMDYxOworMEVDMyAwRTlBIDAwNjE7CiswRUMzIDBFOUIgMDA2MTsKKzBFQzMgMEU5QyAwMDYxOworMEVDMyAwRTlEIDAwNjE7CiswRUMzIDBFOUUgMDA2MTsKKzBFQzMgMEU5RiAwMDYxOworMEVDMyAwRUExIDAwNjE7CiswRUMzIDBFQTIgMDA2MTsKKzBFQzMgMEVBMyAwMDYxOworMEVDMyAwRUE1IDAwNjE7CiswRUMzIDBFQTcgMDA2MTsKKzBFQzMgMEVBQSAwMDYxOworMEVDMiAwRURDIDAwNjE7CiswRUMyIDBFREQgMDA2MTsKKzBFQzMgMEVBQiAwMDYxOworMEVDMyAwRUFEIDAwNjE7CiswRUMzIDBFQUUgMDA2MTsKKzBFQjIgMDA2MjsKKzBFQjcgMDA2MjsKKzBFQzAgMDAyMTsKKzBFQzAgMDU5MSAwRTk1IDAwNjE7CiswRUMwIDA1OTEgMEVBMSAwMDYxOworMEVDMCAwNTkxIDBFQUUgMDA2MTsKKzBFQzEgMUQxNjUgMEU5NCAwMDYxOworMEVDMSAxRDE2NSAwRTlGIDAwNjE7CiswRUMxIDFEMTY1IDBFQUQgMDA2MTsKKzBFQzIgMDAwMSAwRTk0IDAwNjE7CiswRUMyIDAwMDEgMEU5RiAwMDYxOworMEVDMiAwMDAxIDBFQUQgMDA2MTsKKzBFQzMgMDU5MSAwRThEIDAwNjE7CiswRUMzIDA1OTEgMEU5RSAwMDYxOworMEVDMyAwNTkxIDBFREQgMDA2MTsKKzBFQzQgMUQxNjUgMEU4QSAwMDYxOworMEVDNCAxRDE2NSAwRTlEIDAwNjE7CiswRUM0IDFEMTY1IDBFREMgMDA2MTsKKzBGNDEgMDAyMTsKKzBGNDQgMDAyMTsKKzBGNDcgMDAyMTsKKzBGNEIgMDAyMTsKKzBGNEUgMDAyMTsKKzBGNTEgMDAyMTsKKzBGNTQgMDAyMTsKKzBGQTYgMDAyMTsKKzBGNUEgMDAyMTsKKzBGNUQgMDAyMTsKKzBGQUYgMDAyMTsKKzBGNjIgMDAyMTsKKzBGQjIgMDAwMSAwRjcxIDBGODAgMDA2MTsKKzBGQjQgMDAzRjsKKzBGQjcgMDAzRjsKKzBGOEEgMDAzRjsKKzAzMzQgMEY3MiAwRjcxOworMEY4MSAwMDYxOworMEY3NiAwMDNGOworMEZCMiAwRjgxIDAwNDE7CiswRkIzIDBGNzEgMUQxNjUgMEY4MCAwMDYxOworMEY3QyAwMDYyOworMTkwMyAwMDIxOworMTkwOSAwMDIxOworMTkwRiAwMDIxOworMTkxNSAwMDIxOworMTkxQiAwMDIxOworMTkyNCAwMDIxOworMTkyQSAwMDIxOworMTkzNCAwMDIxOworMTcwMSAwMDIxOworMTcwNyAwMDIxOworMTcwRSAwMDIxOworMTcxNCAwMDIxOworMTcyNCAwMDQxOworMTcyQSAwMDQxOworMTczMCAwMDQxOworMTc0MSAwMDNGOworMTc0NyAwMDNGOworMTc0RCAwMDNGOworMTc1MyAwMDNGOworMTc2NSAwMDNGOworMTc2QiAwMDNGOworMTc3MyAwMDNGOworMUEwNSAwMDNGOworMUEwQiAwMDNGOworMUExMSAwMDNGOworMUExNyAwMDNGOworMTAwMCAwMDYxOworMTAwNiAwMDYxOworMTAwQyAwMDYxOworMTAxMiAwMDYxOworMTAxOCAwMDYxOworMTA1MCAwMDYxOworMTAyMyAwMDYxOworMTAyNyAwMDYyOworMTA1NSAwMDYyOworMTAzMSAwMDYyOworMTAzOSAwMDYxOworMTc4NSAwMDYxOworMTc4QiAwMDYxOworMTc5MSAwMDYxOworMTc5NyAwMDYxOworMTc5RCAwMDYxOworMTdEQyAwMDYxOworMTdBOCAwMDYxOworMTdBRSAwMDYxOworMTdCNCAwMDYxOworMTdCQSAwMDYxOworMTdDMCAwMDYxOworMDMzNCAxN0QyOworMTk1NSAwMDIxOworMTk1QiAwMDIxOworMTk2MSAwMDIxOworMTk2NyAwMDIxOworMTk2RCAwMDIxOworMTk4MCAwMDIxOworMTk4NiAwMDIxOworMTk4QyAwMDIxOworMTk5MiAwMDIxOworMTk5OCAwMDIxOworMTlERiAwMDIxOworMTlBMiAwMDIxOworMTlBOCAwMDIxOworMTlCNCAwMDIxOworMTlCQSAwMDIxOworMTlDMCAwMDIxOworMTlDNiAwMDIxOworMTg4MiAwMDIxOworMTgyMCAwMDIxOworMTg0NSAwMDIxOworMTg0NiAwMDIxOworMTgyNiAwMDIxOworMTg0QSAwMDIxOworMTgyQiAwMDIxOworMTg0RSAwMDIxOworMTgyRiAwMDIxOworMThBMiAwMDIxOworMTgzMyAwMDIxOworMTg1QyAwMDIxOworMTgzNiAwMDIxOworMTg1NiAwMDIxOworMTg2MyAwMDIxOworMTg2RSAwMDIxOworMTg1OSAwMDIxOworMTg1QSAwMDIxOworMTg4RSAwMDIxOworMTg5MSAwMDIxOworMThBMyAwMDIxOworMThBNyAwMDIxOworMTNBMyAwMDQxOworMTNBOSAwMDQxOworMTNBRiAwMDQxOworMTNCNSAwMDQxOworMTNCQiAwMDQxOworMTNDMSAwMDQxOworMTNDNyAwMDQxOworMTNDRCAwMDQxOworMTNEMyAwMDQxOworMTNEOSAwMDQxOworMTNERiAwMDQxOworMTNFNSAwMDQxOworMTNFQiAwMDQxOworMTNGMSAwMDQxOworMTQwMyAwMDQxOworMTQwOSAwMDQxOworMTQwRiAwMDQxOworMTQxNSAwMDQxOworMTQxQiAwMDQxOworMTQyMSAwMDQxOworMTQyNyAwMDQxOworMTQyRCAwMDQxOworMTQzMyAwMDQxOworMTQzOSAwMDQxOworMTQzRiAwMDQxOworMTQ0NSAwMDQxOworMTQ0QiAwMDQxOworMTQ1MSAwMDQxOworMTQ1NyAwMDQxOworMTQ1RCAwMDQxOworMTQ2MyAwMDQxOworMTQ2OSAwMDQxOworMTQ2RiAwMDQxOworMTQ3NSAwMDQxOworMTQ3QiAwMDQxOworMTQ4MSAwMDQxOworMTQ4NyAwMDQxOworMTQ4RCAwMDQxOworMTQ5MyAwMDQxOworMTQ5OSAwMDQxOworMTQ5RiAwMDQxOworMTRBNSAwMDQxOworMTRBQiAwMDQxOworMTRCMSAwMDQxOworMTRCNyAwMDQxOworMTRCRCAwMDQxOworMTRDMyAwMDQxOworMTRDOSAwMDQxOworMTRDRiAwMDQxOworMTRENSAwMDQxOworMTREQiAwMDQxOworMTRFMSAwMDQxOworMTRFNyAwMDQxOworMTRFRCAwMDQxOworMTRGMyAwMDQxOworMTRGOSAwMDQxOworMTRGRiAwMDQxOworMTUwNSAwMDQxOworMTUwQiAwMDQxOworMTUxMSAwMDQxOworMTUxNyAwMDQxOworMTUxRCAwMDQxOworMTUyMyAwMDQxOworMTUyOSAwMDQxOworMTUyRiAwMDQxOworMTUzNSAwMDQxOworMTUzQiAwMDQxOworMTU0MSAwMDQxOworMTU0NyAwMDQxOworMTU0RCAwMDQxOworMTU1MyAwMDQxOworMTU1OSAwMDQxOworMTU1RiAwMDQxOworMTU2NSAwMDQxOworMTU2QiAwMDQxOworMTU3MSAwMDQxOworMTU3NyAwMDQxOworMTY2RiAwMDQxOworMTU4MyAwMDQxOworMTU4OSAwMDQxOworMTU4RSAwMDQxOworMTU5NCAwMDQxOworMTY3NSAwMDQxOworMTU5QSAwMDQxOworMTVBMCAwMDQxOworMTVBNiAwMDQxOworMTVBQiAwMDQxOworMTVCMSAwMDQxOworMTVCNyAwMDQxOworMTVCRCAwMDQxOworMTVDMyAwMDQxOworMTVDOSAwMDQxOworMTVDRiAwMDQxOworMTVENSAwMDQxOworMTVEQiAwMDQxOworMTVFMSAwMDQxOworMTVFNyAwMDQxOworMTVFRCAwMDQxOworMTVGMyAwMDQxOworMTVGOSAwMDQxOworMTVGRiAwMDQxOworMTYwNSAwMDQxOworMTYwQiAwMDQxOworMTYxMSAwMDQxOworMTYxNyAwMDQxOworMTYxRCAwMDQxOworMTYyMyAwMDQxOworMTYyOSAwMDQxOworMTYyRiAwMDQxOworMTYzNSAwMDQxOworMTYzQiAwMDQxOworMTY0MSAwMDQxOworMTY0NyAwMDQxOworMTY0RCAwMDQxOworMTY1MyAwMDQxOworMTY1OSAwMDQxOworMTY1RiAwMDQxOworMTY2NSAwMDQxOworMTY2QiAwMDQxOworMTY4NSAwMDQxOworMTY4QiAwMDQxOworMTY5MSAwMDQxOworMTY5NyAwMDQxOworMTZBNCAwMDNGOworMTZBOSAwMDNGOworMTZCMCAwMDQxOworMTZCNSAwMDYyOworMTZCQyAwMDQxOworMTZDMSAwMDYyOworMTZDNyAwMDQxOworMTZDQSAwMDQxOworMTZEMCAwMDYyOworMTZEOCAwMDYxOworMTZEQyAwMDYyOworMTZFMCAwMDQxOworMTZFNSAwMDQxOworMzEzMSAwMDYxOworMzI2RSAwMDQxOworQUMwMiAwMDYyOworMTEwMSAwMDYxOworMzIwMSAwMDYyOworMzI2MiAwMDYxOworRkZBOCAwMDQxOworMzIxMSAwMDNGOworMzIwNCAwMDYyOworMzI2NSAwMDYxOworRkZCMyAwMDQxOworMzIxNCAwMDNGOworMzI2NyAwMDIxOworMzIxRCAwMDNGOworMzI2OCAwMDYxOworMTEwRCAwMDNGOworMzI2OSAwMDYxOworMzI2QSAwMDIxOworMTExMCAwMDNGOworMzI3OSAwMDYxOworMzIxQSAwMDNGOworMzIwRCAwMDYyOworRDc4OCAxMTYxIDAwMjE7CitEN0EwIDAwNjI7CiszMTY1IDAwNjI7CisxMTE5IDAwNjI7CiszMTZFIDAwNjI7CisxMTIwIDAwNjE7CiszMTc0IDAwNjI7CisxMTI3IDAwNjE7CisxMTJCIDAwNjE7CisxMTJFIDAwNjE7CisxMTMyIDAwNjE7CiszMTdFIDAwNjI7CisxMTNDIDAwNjI7CisxMTQxIDAwNjI7CisxMTQ3IDAwNjE7CisxMTRDIDAwNjE7CisxMTUxIDAwNjI7CisxMTU3IDAwNjE7CisxMTVGIDAwNjI7CitGRkMyIDAwNjI7CitGRkM0IDAwNjI7CitGRkM2IDAwNjI7CitGRkNBIDAwNjI7CitGRkNDIDAwNjI7CitGRkNFIDAwNjI7CitGRkQyIDAwNjI7CitGRkQ0IDAwNjI7CitGRkQ2IDAwNjI7CitGRkRBIDAwNjI7CitGRkRDIDAwNjI7CisxMTdCIDAwNjI7CisxMTgxIDAwNjI7CiszMTg4IDAwNjI7CisxMThBIDAwNjI7CisxMTkwIDAwNjI7CisxMTk0IDAwNjE7CisxMTk5IDAwNjI7CiszMThEIDAwNjI7CisxMUE4IDAwNjI7CitGRkE1IDAwMjE7CisxMUFFIDAwNjI7CiszMTNCIDAwNDE7CiszMTNEIDAwNDE7CiszMTNGIDAwNDE7CisxMUJBIDAwNjI7CisxMUMwIDAwNjI7CisxMUM2IDAwNjI7CisxMUNBIDAwNjI7CiszMTZBIDAwNjI7CiszMTZCIDAwNjI7CisxMUQ4IDAwNjI7CisxMUREIDAwNjE7CisxMUUxIDAwNjI7CisxMUU3IDAwNjI7CisxMUVEIDAwNjI7CisxMUYyIDAwNjE7CisxMUY3IDAwNjI7CiszMDQxIDAwNjE7CiszMzAxIDAwNjI7CitGRjcyIDAwNjE7CiszMEE2IDAwM0Y7CiszMDk0IDAwNDE7CiszMkQzIDAwM0Y7CiszMzA3IDAwNDE7CiszMEFBIDAwNDE7CiszMDRCIDMwOTkgMDMzNDsKKzMyRDUgMDA2MjsKKzMwQUQgMDAyMTsKK0ZGNzcgMDA2MjsKKzMzMTUgMDAzRjsKKzMwNTAgMDAyMTsKKzMzMTkgMDAyMTsKKzMwQjEgMDMzNCAzMDk5OworMzBGNiAwMDYyOworMzA1MyAwMDQxOworMzBCNSAwMDNGOworMzJEQSAwMDYyOworMzA1OCAwMDNGOworMzMyMSAwMDNGOworRkY3RCAwMDYxOworMzA1QyAwMDNGOworMzMyMyAwMDYyOworMzBCRSAwMDQxOworMzA1RiAwMDYxOworMzBDMSAzMDk5IDAzMzQ7CitGRjZGIDAwMjE7CiszMkUxIDAwNjE7CiszMDY3IDAwM0Y7CiszMEM4IDAwMjE7CiszMDY4IDAwNjI7CitGRjg1IDAwNDE7CitGRjg2IDAwNjI7CiszMENEIDAwM0Y7CitGRjg5IDAwNDE7CiszMDcxIDAzMzQ7CiszMUY1IDAwNDE7CiszMDcyIDAwM0Y7CiszMDcyIDAwNDE7CiszMzJFIDAwNjI7CiszMEQ1IDMwOTkgMDMzNDsKKzMwNzcgMDA2MTsKKzMzMzUgMDA2MTsKKzMwN0EgMDAzRjsKKzMwREEgMDA0MTsKKzMzM0EgMDAyMTsKKzMwREMgMDAzRjsKKzMwN0QgMDA0MTsKKzMzNDAgMDA0MTsKKzMzNDQgMDA0MTsKKzMwN0YgMDA2MTsKKzMxRkEgMDAzRjsKKzMzNEQgMDAyMTsKKzMwRTIgMDAzRjsKKzMyRjMgMDAzRjsKK0ZGOTQgMDA2MjsKKzMwODUgMDA2MjsKKzMwRTcgMDA2MTsKKzMyRjYgMDAyMTsKKzMxRkMgMDA0MTsKKzMyRjggMDAyMTsKKzMxRkUgMDAzRjsKKzMzNTYgMDA0MTsKKzMwOEYgMDAzRjsKKzMwRUUgMDA2MjsKKzMwRjAgMDA2MjsKK0ZGNjYgMDAyMTsKKzMwOTMgMDA2MTsKKzMxMDcgMDAzRjsKKzMxMEIgMDAzRjsKKzMxMkIgMDAzRjsKKzMxMTEgMDAzRjsKKzMxMTYgMDAzRjsKKzMxQTkgMDA2MTsKKzMxQTQgMDAzRjsKKzMxQUYgMDA2MTsKKzMxMjUgMDAzRjsKKzMxMjcgMDA2MTsKK0EwMDAgMDAzRjsKK0EwMDYgMDAzRjsKK0EwMEMgMDAzRjsKK0EwMTIgMDAzRjsKK0EwMTggMDAzRjsKK0EwMUUgMDAzRjsKK0EwMjQgMDAzRjsKK0EwMkEgMDAzRjsKK0EwMzAgMDAzRjsKK0EwMzYgMDAzRjsKK0EwM0MgMDAzRjsKK0EwNDIgMDAzRjsKK0EwNDggMDAzRjsKK0EwNEUgMDAzRjsKK0EwNTQgMDAzRjsKK0EwNUEgMDAzRjsKK0EwNjAgMDAzRjsKK0EwNjYgMDAzRjsKK0EwNkMgMDAzRjsKK0EwNzIgMDAzRjsKK0EwNzggMDAzRjsKK0EwN0UgMDAzRjsKK0EwODQgMDAzRjsKK0EwOEEgMDAzRjsKK0EwOTAgMDAzRjsKK0EwOTYgMDAzRjsKK0EwOUMgMDAzRjsKK0EwQTIgMDAzRjsKK0EwQTggMDAzRjsKK0EwQUUgMDAzRjsKK0EwQjQgMDAzRjsKK0EwQkEgMDAzRjsKK0EwQzAgMDAzRjsKK0EwQzYgMDAzRjsKK0EwQ0MgMDAzRjsKK0EwRDIgMDAzRjsKK0EwRDggMDAzRjsKK0EwREUgMDAzRjsKK0EwRTQgMDAzRjsKK0EwRUEgMDAzRjsKK0EwRjAgMDAzRjsKK0EwRjYgMDAzRjsKK0EwRkMgMDAzRjsKK0ExMDIgMDAzRjsKK0ExMDggMDAzRjsKK0ExMEUgMDAzRjsKK0ExMTQgMDAzRjsKK0ExMUEgMDAzRjsKK0ExMjAgMDAzRjsKK0ExMjYgMDAzRjsKK0ExMkMgMDAzRjsKK0ExMzIgMDAzRjsKK0ExMzggMDAzRjsKK0ExM0UgMDAzRjsKK0ExNDQgMDAzRjsKK0ExNEEgMDAzRjsKK0ExNTAgMDAzRjsKK0ExNTYgMDAzRjsKK0ExNUMgMDAzRjsKK0ExNjIgMDAzRjsKK0ExNjggMDAzRjsKK0ExNkUgMDAzRjsKK0ExNzQgMDAzRjsKK0ExN0EgMDAzRjsKK0ExODAgMDAzRjsKK0ExODYgMDAzRjsKK0ExOEMgMDAzRjsKK0ExOTIgMDAzRjsKK0ExOTggMDAzRjsKK0ExOUUgMDAzRjsKK0ExQTQgMDAzRjsKK0ExQUEgMDAzRjsKK0ExQjAgMDAzRjsKK0ExQjYgMDAzRjsKK0ExQkMgMDAzRjsKK0ExQzIgMDAzRjsKK0ExQzggMDAzRjsKK0ExQ0UgMDAzRjsKK0ExRDQgMDAzRjsKK0ExREEgMDAzRjsKK0ExRTAgMDAzRjsKK0ExRTYgMDAzRjsKK0ExRUMgMDAzRjsKK0ExRjIgMDAzRjsKK0ExRjggMDAzRjsKK0ExRkUgMDAzRjsKK0EyMDQgMDAzRjsKK0EyMEEgMDAzRjsKK0EyMTAgMDAzRjsKK0EyMTYgMDAzRjsKK0EyMUMgMDAzRjsKK0EyMjIgMDAzRjsKK0EyMjggMDAzRjsKK0EyMkUgMDAzRjsKK0EyMzQgMDAzRjsKK0EyM0EgMDAzRjsKK0EyNDAgMDAzRjsKK0EyNDYgMDAzRjsKK0EyNEMgMDAzRjsKK0EyNTIgMDAzRjsKK0EyNTggMDAzRjsKK0EyNUUgMDAzRjsKK0EyNjQgMDAzRjsKK0EyNkEgMDAzRjsKK0EyNzAgMDAzRjsKK0EyNzYgMDAzRjsKK0EyN0MgMDAzRjsKK0EyODIgMDAzRjsKK0EyODggMDAzRjsKK0EyOEUgMDAzRjsKK0EyOTQgMDAzRjsKK0EyOUEgMDAzRjsKK0EyQTAgMDAzRjsKK0EyQTYgMDAzRjsKK0EyQUMgMDAzRjsKK0EyQjIgMDAzRjsKK0EyQjggMDAzRjsKK0EyQkUgMDAzRjsKK0EyQzQgMDAzRjsKK0EyQ0EgMDAzRjsKK0EyRDAgMDAzRjsKK0EyRDYgMDAzRjsKK0EyREMgMDAzRjsKK0EyRTIgMDAzRjsKK0EyRTggMDAzRjsKK0EyRUUgMDAzRjsKK0EyRjQgMDAzRjsKK0EyRkEgMDAzRjsKK0EzMDAgMDAzRjsKK0EzMDYgMDAzRjsKK0EzMEMgMDAzRjsKK0EzMTIgMDAzRjsKK0EzMTggMDAzRjsKK0EzMUUgMDAzRjsKK0EzMjQgMDAzRjsKK0EzMkEgMDAzRjsKK0EzMzAgMDAzRjsKK0EzMzYgMDAzRjsKK0EzM0MgMDAzRjsKK0EzNDIgMDAzRjsKK0EzNDggMDAzRjsKK0EzNEUgMDAzRjsKK0EzNTQgMDAzRjsKK0EzNUEgMDAzRjsKK0EzNjAgMDAzRjsKK0EzNjYgMDAzRjsKK0EzNkMgMDAzRjsKK0EzNzIgMDAzRjsKK0EzNzggMDAzRjsKK0EzN0UgMDAzRjsKK0EzODQgMDAzRjsKK0EzOEEgMDAzRjsKK0EzOTAgMDAzRjsKK0EzOTYgMDAzRjsKK0EzOUMgMDAzRjsKK0EzQTIgMDAzRjsKK0EzQTggMDAzRjsKK0EzQUUgMDAzRjsKK0EzQjQgMDAzRjsKK0EzQkEgMDAzRjsKK0EzQzAgMDAzRjsKK0EzQzYgMDAzRjsKK0EzQ0MgMDAzRjsKK0EzRDIgMDAzRjsKK0EzRDggMDAzRjsKK0EzREUgMDAzRjsKK0EzRTQgMDAzRjsKK0EzRUEgMDAzRjsKK0EzRjAgMDAzRjsKK0EzRjYgMDAzRjsKK0EzRkMgMDAzRjsKK0E0MDIgMDAzRjsKK0E0MDggMDAzRjsKK0E0MEUgMDAzRjsKK0E0MTQgMDAzRjsKK0E0MUEgMDAzRjsKK0E0MjAgMDAzRjsKK0E0MjYgMDAzRjsKK0E0MkMgMDAzRjsKK0E0MzIgMDAzRjsKK0E0MzggMDAzRjsKK0E0M0UgMDAzRjsKK0E0NDQgMDAzRjsKK0E0NEEgMDAzRjsKK0E0NTAgMDAzRjsKK0E0NTYgMDAzRjsKK0E0NUMgMDAzRjsKK0E0NjIgMDAzRjsKK0E0NjggMDAzRjsKK0E0NkUgMDAzRjsKK0E0NzQgMDAzRjsKK0E0N0EgMDAzRjsKK0E0ODAgMDAzRjsKK0E0ODYgMDAzRjsKK0E0OEMgMDAzRjsKKzEwMzA1IDAwM0Y7CisxMDMwQiAwMDNGOworMTAzMTEgMDAzRjsKKzEwMzE3IDAwM0Y7CisxMDMxRCAwMDNGOworMTAzMzQgMDAzRjsKKzEwMzNBIDAwM0Y7CisxMDM0MCAwMDNGOworMTAzNDYgMDAzRjsKKzEwNDAwIDAwNjE7CisxMDQwMyAwMDYxOworMTA0MDYgMDA2MTsKKzEwNDA5IDAwNjE7CisxMDQwQyAwMDYxOworMTA0MEYgMDA2MTsKKzEwNDEyIDAwNjE7CisxMDQxNSAwMDYxOworMTA0MTggMDA2MTsKKzEwNDFCIDAwNjE7CisxMDQxRSAwMDYxOworMTA0MjEgMDA2MTsKKzEwNDI0IDAwNjE7CisxMDQyNyAwMDYxOworMTA0NTUgMDAzRjsKKzEwNDVCIDAwM0Y7CisxMDQ2MSAwMDNGOworMTA0NjcgMDAzRjsKKzEwNDZEIDAwM0Y7CisxMDQ3MyAwMDNGOworMTA0NzkgMDAzRjsKKzEwNDdGIDAwM0Y7CisxMDQ4NSAwMDNGOworMTA0OEIgMDAzRjsKKzEwNDkxIDAwM0Y7CisxMDQ5NyAwMDNGOworMTA0OUQgMDAzRjsKKzEwMDA1IDAwM0Y7CisxMDAwQiAwMDNGOworMTAwMTIgMDAzRjsKKzEwMDE4IDAwM0Y7CisxMDAxRSAwMDNGOworMTAwMjQgMDAzRjsKKzEwMDJCIDAwM0Y7CisxMDAzMSAwMDNGOworMTAwMzcgMDAzRjsKKzEwMDNGIDAwM0Y7CisxMDA0NSAwMDNGOworMTAwNEIgMDAzRjsKKzEwMDUzIDAwM0Y7CisxMDA1OSAwMDNGOworMTAwODEgMDAzRjsKKzEwMDg3IDAwM0Y7CisxMDA4RCAwMDNGOworMTAwOTMgMDAzRjsKKzEwMDk5IDAwM0Y7CisxMDA5RiAwMDNGOworMTAwQTUgMDAzRjsKKzEwMEFCIDAwM0Y7CisxMDBCMSAwMDNGOworMTAwQjcgMDAzRjsKKzEwMEJEIDAwM0Y7CisxMDBDMyAwMDNGOworMTAwQzkgMDAzRjsKKzEwMENGIDAwM0Y7CisxMDBENSAwMDNGOworMTAwREIgMDAzRjsKKzEwMEUxIDAwM0Y7CisxMDBFNyAwMDNGOworMTAwRUQgMDAzRjsKKzEwMEYzIDAwM0Y7CisxMDBGOSAwMDNGOworMTA4MDQgMDAzRjsKKzEwODBEIDAwM0Y7CisxMDgxMyAwMDNGOworMTA4MTkgMDAzRjsKKzEwODFGIDAwM0Y7CisxMDgyNSAwMDNGOworMTA4MkIgMDAzRjsKKzEwODMxIDAwM0Y7CisxMDgzOCAwMDNGOworMTAzODMgMDAzRjsKKzEwMzg5IDAwM0Y7CisxMDM4RiAwMDNGOworMTAzOTUgMDAzRjsKKzEwMzlCIDAwM0Y7CisxMDNBMyAwMDNGOworMTAzQTkgMDAzRjsKKzEwM0FGIDAwM0Y7CisxMDNCNSAwMDNGOworMTAzQkIgMDAzRjsKKzEwM0MxIDAwM0Y7CisxMDNDQiAwMDNGOworMzI4MCAwMDIxOworNEUwMiAwMDNGOworMzIyMiAwMDNGOworMzE5OCAwMDYxOworMzJBNSAwMDNGOworRjk1RSAwMDNGOworMkU4NCAwMDQxOworMkYwNSAwMDNGOworMzIyNCAwMDNGOworMkU4NSAwMDNGOworMzJBRCAwMDYxOworRjlCNSAwMDNGOworRjlENCAwMDNGOworRkEzMSAwMDQxOworRkEzMiAwMDQxOworRjk3OCAwMDNGOworMzI4NSAwMDQxOworMkY4RDIgMDAzRjsKKzJGMEUgMDAzRjsKK0Y5NTUgMDAzRjsKKzJGMTAgMDA2MTsKK0ZBMDAgMDA0MTsKKzJGODIyIDAwM0Y7CisyRjk5MiAwMDNGOworRkEzMyAwMDQxOworMkYxMyAwMDNGOworMkY4MkIgMDAyMTsKKzMyMjkgMDAzRjsKKzJGODJDIDAwM0Y7CisyRjE4IDAwM0Y7CitGOTFDIDAwM0Y7CisyRTgxIDAwNjE7CisyRjFEIDAwM0Y7CiszMjM0IDAwM0Y7CisyRjgzRSAwMDNGOworMkY4NDEgMDAzRjsKKzJGODQ1IDAwNDE7CisyRjg0OCAwMDNGOworRkEzNyAwMDQxOworMzIyMyAwMDYxOworMzIyRiAwMDYxOworMkY4NTQgMDAzRjsKK0Y5NkMgMDAzRjsKKzJGMjAgMDAzRjsKKzJGMjIgMDAzRjsKKzMzN0QgMDAzRjsKKzJGODVGIDAwM0Y7CisyRjg2MyAwMDNGOworRkE4MSAwMDNGOworMkYyNyAwMDNGOworRjk1RiAwMDYxOworMkY4NzMgMDAzRjsKKzJGMkEgMDA2MTsKKzJGODc3IDAwM0Y7CisyRjJDIDAwNDE7CitGOTIxIDAwM0Y7CisyRjJFIDAwM0Y7CisyRTkyIDAwM0Y7CisyRjMyIDAwM0Y7CitGQTAxIDAwM0Y7CitGOTI4IDAwNDE7CisyRjg5MCAwMDNGOworMkY4OTQgMDA0MTsKKzJGODk5IDAwM0Y7CitGOTY2IDAwM0Y7CisyRjg5RSAwMDNGOworMkY4QTMgMDAyMTsKK0Y5RDkgMDAzRjsKK0ZBOEEgMDAzRjsKK0Y5OEYgMDAzRjsKK0ZBNDAgMDA2MTsKKzJGOEIyIDAwM0Y7CisyRTk4IDAwM0Y7CisyRjhCNiAwMDNGOworRjlBNCAwMDNGOworMkY4QkQgMDAzRjsKKzJGOEM0IDAwM0Y7CisyRTk5IDAwM0Y7CisyRjQyIDAwM0Y7CisyRjQ2IDAwM0Y7CisyRjQ3IDAwNDE7CitGQTkxIDAwMjE7CitGQTA2IDAwM0Y7CiszMjJBIDAwM0Y7CitGQTkyIDAwMjE7CiszMjJEIDAwM0Y7CisyRjhEQiAwMDNGOworRjlEQSAwMDNGOworRjk3QSAwMDNGOworMkY4RTggMDAzRjsKK0Y5NEMgMDAzRjsKKzJGOEVGIDAwM0Y7CitGQTk1IDAwM0Y7CitGQTk2IDAwMjE7CisyRjUwIDAwM0Y7CiszMjJDIDAwNjE7CitGOTcyIDAwM0Y7CisyRjhGRiAwMDNGOworRjlDQSAwMDYxOworMkY5MDQgMDAzRjsKK0ZBNDYgMDAzRjsKKzJGOTBCIDAwMjE7CitGQTQ3IDAwNDE7CisyRjkxNSAwMDNGOworMzIyQiAwMDYxOworRjlGQiAwMDNGOworRkE5QyAwMDIxOworRjkxRSAwMDNGOworMkY5MjEgMDAyMTsKKzJGOTIyIDAwM0Y7CiszMjk1IDAwNjE7CitGOUZBIDAwM0Y7CisyRjVFIDAwM0Y7CisyRjkyQiAwMDNGOworMkY5MkUgMDAzRjsKK0Y5OTQgMDAzRjsKKzJGNjIgMDAzRjsKKzMyOUEgMDAzRjsKK0Y5NjIgMDA0MTsKK0ZBQTQgMDAzRjsKKzJGNkEgMDAzRjsKKzMyQUMgMDA2MTsKK0Y5NkQgMDAzRjsKK0ZBQTkgMDA0MTsKKzJGOTRFIDAwM0Y7CisyRjk1MCAwMDIxOworMkVBRCAwMDNGOworRkE0RCAwMDNGOworMzI5NyAwMDQxOworRkE1MyAwMDNGOworRjk5NSAwMDNGOworMkY5NUEgMDAzRjsKKzJGNzQgMDA2MTsKK0ZBNTYgMDA0MTsKK0ZBQUUgMDAzRjsKK0Y5N0IgMDAzRjsKK0Y5NkEgMDAzRjsKKzJGOTZFIDAwM0Y7CitGOTUwIDAwM0Y7CisyRjc5IDAwM0Y7CitGQTVBIDAwM0Y7CisyRUI3IDAwNDE7CisyRjk3OSAwMDNGOworMkY5N0EgMDA0MTsKK0Y5OTcgMDAzRjsKKzJGODEgMDAzRjsKKzJGOTg1IDAwM0Y7CitGQTVDIDAwM0Y7CisyRjg5MyAwMDQxOworRjk3QyAwMDNGOworMkVCRiAwMDYxOworMkY5OTQgMDAzRjsKKzJGOTlDIDAwM0Y7CisyRjk5RCAwMDNGOworRkFCNCAwMDNGOworRjk5OSAwMDNGOworRjkyMyAwMDNGOworMkY4QyAwMDNGOworMkY5QjYgMDAzRjsKKzJGOUJDIDAwM0Y7CisyRjlDMCAwMDNGOworMkY5QzMgMDAzRjsKKzJGOUM2IDAwM0Y7CitGQUI2IDAwM0Y7CitGQTBBIDAwM0Y7CisyRUM2IDAwNjE7CitGQUI5IDAwM0Y7CitGQUJBIDAwMjE7CitGQUJGIDAwMjE7CisyRUM4IDAwM0Y7CisyRjk4IDAwM0Y7CitGOTQ4IDAwM0Y7CitGQTY1IDAwNDE7CisyRjlDIDAwM0Y7CisyRjlEIDAwM0Y7CisyRjlERiAwMDIxOworMkY5OEQgMDAzRjsKKzJFQ0MgMDA0MTsKK0ZBQzMgMDAzRjsKK0Y5MkMgMDAzRjsKK0Y5MTkgMDAzRjsKK0Y5N0UgMDAzRjsKKzJGOUU3IDAwM0Y7CitGOTlCIDAwM0Y7CisyRUQyIDAwM0Y7CisyRUQ0IDAwM0Y7CitGQTA5IDAwM0Y7CisyRkFBIDAwM0Y7CitGQTY4IDAwNDE7CitGOTM4IDAwM0Y7CisyRkFFIDAwM0Y7CisyRUQ5IDAwM0Y7CiszMkEwIDAwM0Y7CitGQUNDIDAwMjE7CisyRkI2IDAwM0Y7CisyRkEwMiAwMDNGOworMkZCOCAwMDNGOworRjkxQSAwMDNGOworMkZCQyAwMDNGOworMkZDMCAwMDNGOworRjlGMiAwMDNGOworRjkzQSAwMDNGOworMkZDNSAwMDYxOworMkZDNyAwMDYxOworMkZBMTcgMDAzRjsKKzJGQ0QgMDAzRjsKKzJGRDAgMDA2MTsKKzJFRUQgMDA2MTsKKzJFRjAgMDAzRjsKK0ZBQ0UgMDA2MjsKKzlGQTMgMDAzRjsKK0ZBMTMgMDAzRjsKK0ZBMjcgMDAzRjsKKzM0MDMgMDAzRjsKKzM0MDkgMDAzRjsKKzM0MEYgMDAzRjsKKzM0MTUgMDAzRjsKKzM0MUIgMDAzRjsKKzM0MjEgMDAzRjsKKzM0MjcgMDAzRjsKKzM0MkQgMDAzRjsKKzM0MzMgMDAzRjsKKzM0MzkgMDAzRjsKKzM0M0YgMDAzRjsKKzM0NDUgMDAzRjsKKzM0NEIgMDAzRjsKKzM0NTEgMDAzRjsKKzM0NTcgMDAzRjsKKzM0NUQgMDAzRjsKKzM0NjMgMDAzRjsKKzM0NjkgMDAzRjsKKzM0NkYgMDAzRjsKKzM0NzUgMDAzRjsKKzM0N0IgMDAzRjsKKzM0ODEgMDAzRjsKKzM0ODcgMDAzRjsKKzM0OEQgMDAzRjsKKzM0OTMgMDAzRjsKKzM0OTkgMDAzRjsKKzM0OUUgMDA0MTsKKzM0QTQgMDAzRjsKKzM0QUEgMDAzRjsKKzM0QjAgMDAzRjsKKzM0QjYgMDAzRjsKKzJGOUNBIDAwMjE7CiszNEMwIDAwM0Y7CiszNEM2IDAwM0Y7CiszNENDIDAwM0Y7CiszNEQyIDAwM0Y7CiszNEQ4IDAwM0Y7CiszNERFIDAwM0Y7CiszNEUzIDAwM0Y7CiszNEU5IDAwM0Y7CiszNEVGIDAwM0Y7CiszNEY1IDAwM0Y7CiszNEZCIDAwM0Y7CiszNTAxIDAwM0Y7CiszNTA3IDAwM0Y7CiszNTBEIDAwM0Y7CiszNTEzIDAwM0Y7CiszNTE4IDAwM0Y7CiszNTFFIDAwM0Y7CiszNTI0IDAwM0Y7CiszNTJBIDAwM0Y7CiszNTMwIDAwM0Y7CiszNTM2IDAwM0Y7CiszNTNDIDAwM0Y7CiszNTQyIDAwM0Y7CiszNTQ4IDAwM0Y7CiszNTRFIDAwM0Y7CiszNTU0IDAwM0Y7CiszNTVBIDAwM0Y7CiszNTYwIDAwM0Y7CiszNTY2IDAwM0Y7CiszNTZDIDAwM0Y7CiszNTcyIDAwM0Y7CiszNTc4IDAwM0Y7CiszNTdFIDAwM0Y7CiszNTg0IDAwM0Y7CiszNThBIDAwM0Y7CiszNTkwIDAwM0Y7CiszNTk2IDAwM0Y7CiszNTlDIDAwM0Y7CiszNUEyIDAwM0Y7CiszNUE4IDAwM0Y7CiszNUFFIDAwM0Y7CiszNUI0IDAwM0Y7CiszNUJBIDAwM0Y7CiszNUMwIDAwM0Y7CiszNUM2IDAwM0Y7CiszNUNDIDAwM0Y7CiszNUQyIDAwM0Y7CiszNUQ4IDAwM0Y7CiszNURFIDAwM0Y7CiszNUU0IDAwM0Y7CiszNUVBIDAwM0Y7CiszNUYwIDAwM0Y7CiszNUY2IDAwM0Y7CiszNUZDIDAwM0Y7CiszNjAyIDAwM0Y7CiszNjA4IDAwM0Y7CiszNjBFIDAwM0Y7CiszNjE0IDAwM0Y7CiszNjFBIDAwM0Y7CiszNjIwIDAwM0Y7CiszNjI2IDAwM0Y7CiszNjJDIDAwM0Y7CiszNjMyIDAwM0Y7CiszNjM4IDAwM0Y7CiszNjNFIDAwM0Y7CiszNjQ0IDAwM0Y7CiszNjRBIDAwM0Y7CiszNjUwIDAwM0Y7CiszNjU2IDAwM0Y7CiszNjVDIDAwM0Y7CiszNjYyIDAwM0Y7CiszNjY4IDAwM0Y7CiszNjZFIDAwM0Y7CiszNjc0IDAwM0Y7CiszNjdBIDAwM0Y7CiszNjgwIDAwM0Y7CiszNjg2IDAwM0Y7CiszNjhDIDAwM0Y7CiszNjkyIDAwM0Y7CiszNjk4IDAwM0Y7CiszNjlFIDAwM0Y7CiszNkE0IDAwM0Y7CiszNkFBIDAwM0Y7CiszNkIwIDAwM0Y7CiszNkI2IDAwM0Y7CiszNkJDIDAwM0Y7CiszNkMyIDAwM0Y7CiszNkM4IDAwM0Y7CiszNkNFIDAwM0Y7CiszNkQ0IDAwM0Y7CiszNkRBIDAwM0Y7CiszNkUwIDAwM0Y7CiszNkU2IDAwM0Y7CiszNkVDIDAwM0Y7CiszNkYxIDAwM0Y7CiszNkY3IDAwM0Y7CiszNkZDIDAwNDE7CiszNzAyIDAwM0Y7CiszNzA4IDAwM0Y7CiszNzBFIDAwM0Y7CiszNzE0IDAwM0Y7CiszNzFBIDAwM0Y7CiszNzIwIDAwM0Y7CiszNzI2IDAwM0Y7CiszNzJDIDAwM0Y7CiszNzMyIDAwM0Y7CiszNzM4IDAwM0Y7CiszNzNFIDAwM0Y7CiszNzQ0IDAwM0Y7CiszNzRBIDAwM0Y7CiszNzUwIDAwM0Y7CiszNzU2IDAwM0Y7CiszNzVDIDAwM0Y7CiszNzYyIDAwM0Y7CiszNzY4IDAwM0Y7CiszNzZFIDAwM0Y7CiszNzc0IDAwM0Y7CiszNzdBIDAwM0Y7CiszNzgwIDAwM0Y7CiszNzg1IDAwM0Y7CiszNzhCIDAwM0Y7CiszNzkxIDAwM0Y7CiszNzk3IDAwM0Y7CiszNzlEIDAwM0Y7CiszN0EzIDAwM0Y7CiszN0E5IDAwM0Y7CiszN0FGIDAwM0Y7CiszN0I1IDAwM0Y7CiszN0JCIDAwM0Y7CiszN0MxIDAwM0Y7CiszN0M3IDAwM0Y7CiszN0NEIDAwM0Y7CiszN0QzIDAwM0Y7CiszN0Q5IDAwM0Y7CiszN0RGIDAwM0Y7CiszN0U1IDAwM0Y7CiszN0VCIDAwM0Y7CiszN0YxIDAwM0Y7CiszN0Y3IDAwM0Y7CiszN0ZEIDAwM0Y7CiszODAzIDAwM0Y7CiszODA5IDAwM0Y7CiszODBGIDAwM0Y7CiszODE1IDAwM0Y7CiszODFCIDAwM0Y7CiszODIxIDAwM0Y7CiszODI3IDAwM0Y7CiszODJEIDAwM0Y7CiszODMyIDAwM0Y7CiszODM4IDAwM0Y7CiszODNFIDAwM0Y7CiszODQ0IDAwM0Y7CiszODRBIDAwM0Y7CiszODUwIDAwM0Y7CiszODU2IDAwM0Y7CiszODVDIDAwM0Y7CisyRjg4OCAwMDIxOworMzg2NyAwMDNGOworMzg2RCAwMDNGOworMzg3MyAwMDNGOworMzg3OSAwMDNGOworMzg3RSAwMDNGOworMzg4NCAwMDNGOworMzg4QSAwMDNGOworMzg5MCAwMDNGOworMzg5NiAwMDNGOworMzg5QyAwMDNGOworMzhBMiAwMDNGOworMzhBOCAwMDNGOworMzhBRSAwMDNGOworMzhCNCAwMDNGOworMzhCQSAwMDNGOworMzhDMCAwMDNGOworMzhDNiAwMDNGOworMzhDQiAwMDNGOworMzhEMSAwMDNGOworMzhENyAwMDNGOworMzhERCAwMDNGOworMkY4OUIgMDAyMTsKKzM4RTggMDAzRjsKKzM4RUUgMDAzRjsKKzM4RjQgMDAzRjsKKzM4RkEgMDAzRjsKKzM5MDAgMDAzRjsKKzM5MDYgMDAzRjsKKzM5MEMgMDAzRjsKKzM5MTIgMDAzRjsKKzM5MTggMDAzRjsKKzM5MUQgMDAzRjsKKzM5MjMgMDAzRjsKKzM5MjkgMDAzRjsKKzM5MkYgMDAzRjsKKzM5MzUgMDAzRjsKKzM5M0EgMDA0MTsKKzM5NDAgMDAzRjsKKzM5NDYgMDAzRjsKKzM5NEMgMDAzRjsKKzM5NTIgMDAzRjsKKzM5NTggMDAzRjsKKzM5NUUgMDAzRjsKKzM5NjQgMDAzRjsKKzM5NkEgMDAzRjsKKzM5NzAgMDAzRjsKKzM5NzYgMDAzRjsKKzM5N0MgMDAzRjsKKzM5ODIgMDAzRjsKKzM5ODggMDAzRjsKKzM5OEUgMDAzRjsKKzM5OTQgMDAzRjsKKzM5OUEgMDAzRjsKKzM5QTAgMDAzRjsKKzM5QTYgMDAzRjsKKzM5QUMgMDAzRjsKKzM5QjIgMDAzRjsKKzM5QjggMDAzRjsKKzM5QkUgMDAzRjsKKzM5QzQgMDAzRjsKKzM5Q0EgMDAzRjsKKzM5RDAgMDAzRjsKKzM5RDYgMDAzRjsKKzM5REMgMDAzRjsKKzM5RTIgMDAzRjsKKzM5RTggMDAzRjsKKzM5RUUgMDAzRjsKKzM5RjQgMDAzRjsKKzM5RkEgMDAzRjsKKzNBMDAgMDAzRjsKKzNBMDYgMDAzRjsKKzNBMEMgMDAzRjsKKzNBMTIgMDAzRjsKKzNBMTggMDAzRjsKKzNBMUUgMDAzRjsKKzNBMjQgMDAzRjsKKzNBMkEgMDAzRjsKKzNBMkYgMDAzRjsKKzNBMzUgMDAzRjsKKzNBM0IgMDAzRjsKKzNBNDEgMDAzRjsKKzNBNDcgMDAzRjsKKzNBNEQgMDAzRjsKKzNBNTMgMDAzRjsKKzNBNTkgMDAzRjsKKzNBNUYgMDAzRjsKKzNBNjUgMDAzRjsKKzNBNkIgMDAzRjsKKzNBNzAgMDAzRjsKKzNBNzYgMDAzRjsKKzNBN0MgMDAzRjsKKzNBODIgMDAzRjsKKzNBODggMDAzRjsKKzNBOEUgMDAzRjsKKzNBOTQgMDAzRjsKKzNBOUEgMDAzRjsKKzNBQTAgMDAzRjsKKzNBQTYgMDAzRjsKKzNBQUMgMDAzRjsKKzNBQjIgMDAzRjsKKzNBQjggMDAzRjsKKzNBQkUgMDAzRjsKKzNBQzQgMDAzRjsKKzNBQ0EgMDAzRjsKKzNBRDAgMDAzRjsKKzNBRDYgMDAzRjsKKzNBREMgMDAzRjsKKzNBRTIgMDAzRjsKKzNBRTcgMDAzRjsKKzNBRUQgMDAzRjsKKzNBRjMgMDAzRjsKKzNBRjkgMDAzRjsKKzNBRkYgMDAzRjsKKzNCMDUgMDAzRjsKKzNCMEEgMDAzRjsKKzNCMTAgMDAzRjsKKzNCMTYgMDAzRjsKKzNCMUIgMDAzRjsKKzNCMjEgMDAzRjsKKzNCMjcgMDAzRjsKKzNCMkQgMDAzRjsKKzNCMzMgMDAzRjsKKzNCMzkgMDAzRjsKKzNCM0YgMDAzRjsKKzNCNDUgMDAzRjsKKzNCNEEgMDAzRjsKKzNCNTAgMDAzRjsKKzNCNTYgMDAzRjsKKzNCNUMgMDAzRjsKKzNCNjIgMDAzRjsKKzNCNjggMDAzRjsKKzNCNkUgMDAzRjsKKzNCNzQgMDAzRjsKKzNCN0EgMDAzRjsKKzNCODAgMDAzRjsKKzNCODYgMDAzRjsKKzNCOEMgMDAzRjsKKzNCOTIgMDAzRjsKKzNCOTggMDAzRjsKKzNCOUQgMDA2MTsKKzNCQTIgMDAzRjsKKzNCQTggMDAzRjsKKzNCQUUgMDAzRjsKKzNCQjQgMDAzRjsKKzNCQkEgMDAzRjsKKzNCQzAgMDAzRjsKKzNCQzYgMDAzRjsKKzNCQ0MgMDAzRjsKKzNCRDIgMDAzRjsKKzNCRDggMDAzRjsKKzNCREUgMDAzRjsKKzNCRTQgMDAzRjsKKzNCRUEgMDAzRjsKKzNCRjAgMDAzRjsKKzNCRjYgMDAzRjsKKzNCRkMgMDAzRjsKKzNDMDIgMDAzRjsKKzNDMDggMDAzRjsKKzNDMEUgMDAzRjsKKzNDMTQgMDAzRjsKKzNDMTkgMDAzRjsKKzNDMUYgMDAzRjsKKzNDMjUgMDAzRjsKKzNDMkIgMDAzRjsKKzNDMzEgMDAzRjsKKzNDMzcgMDAzRjsKKzNDM0QgMDAzRjsKKzNDNDMgMDAzRjsKKzNDNDkgMDAzRjsKKzNDNEUgMDA0MTsKKzNDNTQgMDAzRjsKKzNDNUEgMDAzRjsKKzNDNjAgMDAzRjsKKzNDNjYgMDAzRjsKKzNDNkMgMDAzRjsKKzNDNzIgMDAzRjsKKzNDNzggMDAzRjsKKzNDN0UgMDAzRjsKKzNDODQgMDAzRjsKKzNDOEEgMDAzRjsKKzNDOTAgMDAzRjsKKzNDOTYgMDAzRjsKKzNDOUMgMDAzRjsKKzNDQTIgMDAzRjsKKzNDQTggMDAzRjsKKzNDQUUgMDAzRjsKKzNDQjQgMDAzRjsKKzNDQkEgMDAzRjsKKzNDQzAgMDAzRjsKKzNDQzYgMDAzRjsKKzNDQ0MgMDAzRjsKKzNDRDIgMDAzRjsKKzNDRDggMDAzRjsKKzNDREUgMDAzRjsKKzNDRTQgMDAzRjsKKzNDRUEgMDAzRjsKKzNDRjAgMDAzRjsKKzNDRjYgMDAzRjsKKzNDRkMgMDAzRjsKKzNEMDIgMDAzRjsKKzNEMDggMDAzRjsKKzNEMEUgMDAzRjsKKzNEMTQgMDAzRjsKKzNEMUEgMDAzRjsKKzNEMjAgMDAzRjsKKzNEMjYgMDAzRjsKKzNEMkMgMDAzRjsKKzNEMzIgMDAzRjsKKzNEMzcgMDAzRjsKKzNEM0QgMDAzRjsKKzNENDMgMDAzRjsKKzNENDkgMDAzRjsKKzNENEYgMDAzRjsKKzNENTUgMDAzRjsKKzNENUIgMDAzRjsKKzNENjEgMDAzRjsKKzNENjcgMDAzRjsKKzNENkQgMDAzRjsKKzNENzMgMDAzRjsKKzNENzkgMDAzRjsKKzNEN0YgMDAzRjsKKzNEODUgMDAzRjsKKzNEOEIgMDAzRjsKKzNEOTEgMDAzRjsKKzNEOTYgMDA0MTsKKzNEOUMgMDAzRjsKKzNEQTIgMDAzRjsKKzNEQTggMDAzRjsKKzNEQUUgMDAzRjsKKzNEQjQgMDAzRjsKKzNEQkEgMDAzRjsKKzNEQzAgMDAzRjsKKzNEQzYgMDAzRjsKKzNEQ0MgMDAzRjsKKzNERDIgMDAzRjsKKzNERDggMDAzRjsKKzNEREUgMDAzRjsKKzNERTQgMDAzRjsKKzNERUEgMDAzRjsKKzNERjAgMDAzRjsKKzNERjYgMDAzRjsKKzNERkMgMDAzRjsKKzNFMDIgMDAzRjsKKzNFMDggMDAzRjsKKzNFMEUgMDAzRjsKKzNFMTQgMDAzRjsKKzNFMUEgMDAzRjsKKzNFMjAgMDAzRjsKKzNFMjYgMDAzRjsKKzNFMkMgMDAzRjsKKzNFMzIgMDAzRjsKKzNFMzggMDAzRjsKKzNFM0UgMDAzRjsKKzNFNDQgMDAzRjsKKzNFNEEgMDAzRjsKKzNFNTAgMDAzRjsKKzNFNTYgMDAzRjsKKzNFNUMgMDAzRjsKKzNFNjIgMDAzRjsKKzNFNjggMDAzRjsKKzNFNkUgMDAzRjsKKzNFNzQgMDAzRjsKKzNFN0EgMDAzRjsKKzNFODAgMDAzRjsKKzNFODYgMDAzRjsKKzNFOEMgMDAzRjsKKzNFOTIgMDAzRjsKKzNFOTggMDAzRjsKKzNFOUUgMDAzRjsKKzNFQTQgMDAzRjsKKzNFQUEgMDAzRjsKKzNFQUYgMDAzRjsKKzNFQjUgMDAzRjsKKzNFQjkgMDAzRjsKKzNFQkYgMDAzRjsKKzNFQzUgMDAzRjsKKzNFQ0IgMDAzRjsKKzNFRDEgMDAzRjsKKzNFRDcgMDAzRjsKKzNFREQgMDAzRjsKKzNFRTMgMDAzRjsKKzNFRTkgMDAzRjsKKzNFRUYgMDAzRjsKKzNFRjUgMDAzRjsKKzNFRkIgMDAzRjsKKzNGMDEgMDAzRjsKKzNGMDcgMDAzRjsKKzNGMEQgMDAzRjsKKzNGMTMgMDAzRjsKKzNGMTkgMDAzRjsKKzNGMUUgMDAzRjsKKzNGMjQgMDAzRjsKKzNGMkEgMDAzRjsKKzNGMzAgMDAzRjsKKzNGMzYgMDAzRjsKKzNGM0MgMDAzRjsKKzNGNDIgMDAzRjsKKzNGNDggMDAzRjsKKzNGNEUgMDAzRjsKKzNGNTQgMDAzRjsKKzNGNUEgMDAzRjsKKzNGNjAgMDAzRjsKKzNGNjYgMDAzRjsKKzNGNkMgMDAzRjsKKzNGNzIgMDAzRjsKKzNGNzggMDAzRjsKKzNGN0UgMDAzRjsKKzNGODQgMDAzRjsKKzNGOEEgMDAzRjsKKzNGOTAgMDAzRjsKKzNGOTYgMDAzRjsKKzNGOUMgMDAzRjsKKzNGQTIgMDAzRjsKKzNGQTggMDAzRjsKKzNGQUUgMDAzRjsKKzNGQjQgMDAzRjsKKzNGQkEgMDAzRjsKKzNGQzAgMDAzRjsKKzNGQzYgMDAzRjsKKzNGQ0MgMDAzRjsKKzNGRDIgMDAzRjsKKzNGRDggMDAzRjsKKzNGREUgMDAzRjsKKzNGRTQgMDAzRjsKKzNGRUEgMDAzRjsKKzNGRjAgMDAzRjsKKzNGRjYgMDAzRjsKKzJGOTNFIDAwMjE7Cis0MDAxIDAwM0Y7Cis0MDA3IDAwM0Y7Cis0MDBDIDAwM0Y7Cis0MDEyIDAwM0Y7CitGQUQzIDAwMjE7Cis0MDFEIDAwM0Y7Cis0MDIzIDAwM0Y7Cis0MDI5IDAwM0Y7Cis0MDJGIDAwM0Y7Cis0MDM1IDAwM0Y7CisyRjk0OSAwMDQxOworNDAzRiAwMDNGOworNDA0NSAwMDNGOworNDA0QSAwMDNGOworNDA1MCAwMDNGOworNDA1NiAwMDNGOworNDA1QyAwMDNGOworNDA2MiAwMDNGOworNDA2OCAwMDNGOworNDA2RSAwMDNGOworNDA3NCAwMDNGOworNDA3QSAwMDNGOworNDA4MCAwMDNGOworNDA4NiAwMDNGOworNDA4QyAwMDNGOworNDA5MiAwMDNGOworNDA5NyAwMDNGOworNDA5RCAwMDNGOworNDBBMyAwMDNGOworNDBBOSAwMDNGOworNDBBRiAwMDNGOworNDBCNSAwMDNGOworNDBCQiAwMDNGOworNDBDMSAwMDNGOworNDBDNyAwMDNGOworNDBDRCAwMDNGOworNDBEMyAwMDNGOworNDBEOSAwMDNGOworNDBERiAwMDNGOworNDBFNCAwMDNGOworNDBFQSAwMDNGOworNDBGMCAwMDNGOworNDBGNiAwMDNGOworNDBGQyAwMDNGOworNDEwMiAwMDNGOworNDEwOCAwMDNGOworNDEwRSAwMDNGOworNDExNCAwMDNGOworNDExQSAwMDNGOworNDEyMCAwMDNGOworNDEyNiAwMDNGOworNDEyQyAwMDNGOworNDEzMSAwMDNGOworNDEzNyAwMDNGOworNDEzRCAwMDNGOworNDE0MyAwMDNGOworNDE0OSAwMDNGOworNDE0RiAwMDNGOworNDE1NSAwMDNGOworNDE1QiAwMDNGOworNDE2MSAwMDNGOworNDE2NyAwMDNGOworNDE2RCAwMDNGOworNDE3MyAwMDNGOworNDE3OSAwMDNGOworNDE3RiAwMDNGOworNDE4NSAwMDNGOworNDE4QiAwMDNGOworNDE5MSAwMDNGOworNDE5NyAwMDNGOworNDE5RCAwMDNGOworNDFBMyAwMDNGOworNDFBOSAwMDNGOworNDFBRiAwMDNGOworNDFCNSAwMDNGOworNDFCQiAwMDNGOworNDFDMSAwMDNGOworNDFDNyAwMDNGOworNDFDRCAwMDNGOworNDFEMyAwMDNGOworNDFEOSAwMDNGOworNDFERiAwMDNGOworNDFFNSAwMDNGOworNDFFQiAwMDNGOworNDFGMSAwMDNGOworNDFGNyAwMDNGOworNDFGRCAwMDNGOworNDIwMiAwMDQxOworNDIwOCAwMDNGOworNDIwRSAwMDNGOworNDIxNCAwMDNGOworNDIxQSAwMDNGOworNDIyMCAwMDNGOworNDIyNiAwMDNGOworNDIyQiAwMDNGOworNDIzMSAwMDNGOworNDIzNyAwMDNGOworNDIzRCAwMDNGOworNDI0MyAwMDNGOworNDI0OSAwMDNGOworNDI0RiAwMDNGOworNDI1NSAwMDNGOworNDI1QiAwMDNGOworNDI2MSAwMDNGOworNDI2NyAwMDNGOworNDI2RCAwMDNGOworNDI3MyAwMDNGOworNDI3OSAwMDNGOworNDI3RiAwMDNGOworNDI4NSAwMDNGOworNDI4QiAwMDNGOworNDI5MSAwMDNGOworNDI5NyAwMDNGOworNDI5RCAwMDNGOworNDJBMiAwMDNGOworNDJBOCAwMDNGOworNDJBRSAwMDNGOworNDJCNCAwMDNGOworNDJCQSAwMDNGOworNDJDMCAwMDNGOworNDJDNiAwMDNGOworNDJDQyAwMDNGOworNDJEMiAwMDNGOworNDJEOCAwMDNGOworNDJERSAwMDNGOworNDJFNCAwMDNGOworNDJFQSAwMDNGOworNDJGMCAwMDNGOworNDJGNiAwMDNGOworNDJGQyAwMDNGOworNDMwMSAwMDQxOworNDMwNyAwMDNGOworNDMwRCAwMDNGOworNDMxMyAwMDNGOworNDMxOSAwMDNGOworNDMxRiAwMDNGOworNDMyNSAwMDNGOworNDMyQiAwMDNGOworNDMzMSAwMDNGOworNDMzNiAwMDNGOworNDMzQyAwMDNGOworNDM0MiAwMDNGOworNDM0OCAwMDNGOworNDM0RSAwMDNGOworNDM1NCAwMDNGOworNDM1OSAwMDQxOworNDM1RiAwMDNGOworNDM2NSAwMDNGOworNDM2QiAwMDNGOworNDM3MSAwMDNGOworNDM3NyAwMDNGOworNDM3RCAwMDNGOworNDM4MyAwMDNGOworNDM4OSAwMDNGOworNDM4RiAwMDNGOworNDM5NSAwMDNGOworNDM5QiAwMDNGOworNDNBMSAwMDNGOworNDNBNyAwMDNGOworNDNBRCAwMDNGOworNDNCMyAwMDNGOworNDNCOSAwMDNGOworNDNCRiAwMDNGOworNDNDNSAwMDNGOworNDNDQiAwMDNGOworNDNEMSAwMDNGOworNDNENiAwMDNGOworNDNEQiAwMDNGOworNDNFMSAwMDNGOworNDNFNyAwMDNGOworNDNFRCAwMDNGOworNDNGMyAwMDNGOworNDNGOSAwMDNGOworNDNGRiAwMDNGOworNDQwNSAwMDNGOworMkY5ODQgMDAyMTsKKzQ0MTAgMDAzRjsKKzQ0MTYgMDAzRjsKKzQ0MUMgMDAzRjsKKzQ0MjIgMDAzRjsKKzQ0MjggMDAzRjsKKzQ0MkUgMDAzRjsKKzQ0MzQgMDAzRjsKKzQ0M0EgMDAzRjsKKzQ0NDAgMDAzRjsKKzQ0NDYgMDAzRjsKKzQ0NEMgMDAzRjsKKzQ0NTIgMDAzRjsKKzQ0NTggMDAzRjsKKzQ0NUUgMDAzRjsKKzQ0NjQgMDAzRjsKKzQ0NkEgMDAzRjsKKzQ0NkYgMDAzRjsKKzQ0NzUgMDAzRjsKKzQ0N0IgMDAzRjsKKzQ0ODEgMDAzRjsKKzQ0ODcgMDAzRjsKKzQ0OEQgMDAzRjsKKzQ0OTMgMDAzRjsKKzQ0OTkgMDAzRjsKKzQ0OUYgMDAzRjsKKzQ0QTUgMDAzRjsKKzQ0QUIgMDAzRjsKKzQ0QjEgMDAzRjsKKzQ0QjcgMDAzRjsKKzQ0QkQgMDAzRjsKKzQ0QzMgMDAzRjsKKzQ0QzkgMDAzRjsKKzQ0Q0YgMDAzRjsKKzQ0RDUgMDAzRjsKKzQ0REIgMDAzRjsKKzQ0RTEgMDAzRjsKKzQ0RTcgMDAzRjsKKzQ0RUQgMDAzRjsKKzQ0RjMgMDAzRjsKKzQ0RjkgMDAzRjsKKzQ0RkYgMDAzRjsKKzQ1MDUgMDAzRjsKKzQ1MEIgMDAzRjsKKzQ1MTEgMDAzRjsKKzQ1MTcgMDAzRjsKKzQ1MUQgMDAzRjsKKzQ1MjMgMDAzRjsKKzQ1MjkgMDAzRjsKKzQ1MkUgMDAzRjsKKzQ1MzQgMDAzRjsKKzQ1M0EgMDAzRjsKKzQ1NDAgMDAzRjsKKzQ1NDYgMDAzRjsKKzQ1NEMgMDAzRjsKKzQ1NTIgMDAzRjsKKzQ1NTggMDAzRjsKKzQ1NUQgMDA0MTsKKzQ1NjIgMDAzRjsKKzQ1NjggMDAzRjsKKzQ1NkQgMDAzRjsKKzQ1NzMgMDAzRjsKKzQ1NzkgMDAzRjsKKzQ1N0YgMDAzRjsKKzQ1ODUgMDAzRjsKKzQ1OEIgMDAzRjsKKzQ1OTEgMDAzRjsKKzQ1OTcgMDAzRjsKKzQ1OUQgMDAzRjsKKzQ1QTMgMDAzRjsKKzQ1QTkgMDAzRjsKKzQ1QUYgMDAzRjsKKzQ1QjUgMDAzRjsKKzQ1QkIgMDAzRjsKKzQ1QzEgMDAzRjsKKzQ1QzcgMDAzRjsKKzQ1Q0QgMDAzRjsKKzQ1RDMgMDAzRjsKKzQ1RDggMDAzRjsKKzQ1REUgMDAzRjsKKzQ1RTQgMDAzRjsKKzQ1RUEgMDAzRjsKKzQ1RjAgMDAzRjsKKzQ1RjYgMDAzRjsKKzQ1RkIgMDAzRjsKKzQ2MDEgMDAzRjsKKzQ2MDcgMDAzRjsKKzQ2MEQgMDAzRjsKKzQ2MTMgMDAzRjsKKzQ2MTkgMDAzRjsKKzQ2MUYgMDAzRjsKKzQ2MjUgMDAzRjsKKzQ2MkIgMDAzRjsKKzQ2MzEgMDAzRjsKKzQ2MzYgMDAzRjsKKzQ2M0MgMDAzRjsKKzQ2NDIgMDAzRjsKKzQ2NDggMDAzRjsKKzQ2NEUgMDAzRjsKKzQ2NTQgMDAzRjsKKzQ2NUEgMDAzRjsKKzQ2NjAgMDAzRjsKKzQ2NjYgMDAzRjsKKzQ2NkMgMDAzRjsKKzQ2NzIgMDAzRjsKKzQ2NzggMDAzRjsKKzQ2N0UgMDAzRjsKKzQ2ODQgMDAzRjsKKzQ2OEEgMDAzRjsKKzQ2OTAgMDAzRjsKKzQ2OTYgMDAzRjsKKzQ2OUMgMDAzRjsKKzQ2QTIgMDAzRjsKKzQ2QTggMDAzRjsKKzQ2QUUgMDAzRjsKKzQ2QjQgMDAzRjsKKzQ2QkEgMDAzRjsKKzQ2QkYgMDAzRjsKKzQ2QzUgMDAzRjsKKzQ2Q0EgMDAzRjsKKzQ2RDAgMDAzRjsKKzQ2RDYgMDAzRjsKKzQ2REMgMDAzRjsKKzQ2RTIgMDAzRjsKKzQ2RTggMDAzRjsKKzQ2RUUgMDAzRjsKKzQ2RjQgMDAzRjsKKzQ2RkEgMDAzRjsKKzQ3MDAgMDAzRjsKKzQ3MDYgMDAzRjsKKzQ3MEMgMDAzRjsKKzQ3MTIgMDAzRjsKKzQ3MTggMDAzRjsKKzQ3MUUgMDAzRjsKKzQ3MjQgMDAzRjsKKzQ3MkEgMDAzRjsKKzQ3MzAgMDAzRjsKKzQ3MzYgMDAzRjsKKzQ3M0MgMDAzRjsKKzQ3NDIgMDAzRjsKKzQ3NDggMDAzRjsKKzQ3NEUgMDAzRjsKKzQ3NTQgMDAzRjsKKzQ3NUEgMDAzRjsKKzQ3NjAgMDAzRjsKKzQ3NjYgMDAzRjsKKzQ3NkMgMDAzRjsKKzQ3NzIgMDAzRjsKKzQ3NzggMDAzRjsKKzQ3N0UgMDAzRjsKKzQ3ODQgMDAzRjsKKzQ3OEEgMDAzRjsKKzQ3OTAgMDAzRjsKKzQ3OTYgMDAzRjsKKzQ3OUMgMDAzRjsKKzQ3QTIgMDAzRjsKKzQ3QTggMDAzRjsKKzQ3QUUgMDAzRjsKKzQ3QjQgMDAzRjsKKzQ3QkEgMDAzRjsKKzQ3QzAgMDAzRjsKKzQ3QzYgMDAzRjsKKzQ3Q0MgMDAzRjsKKzQ3RDIgMDAzRjsKKzQ3RDggMDAzRjsKKzQ3REUgMDAzRjsKKzQ3RTQgMDAzRjsKKzQ3RUEgMDAzRjsKKzQ3RjAgMDAzRjsKKzQ3RjYgMDAzRjsKKzQ3RkMgMDAzRjsKKzQ4MDIgMDAzRjsKKzQ4MDggMDAzRjsKKzQ4MEUgMDAzRjsKKzQ4MTQgMDAzRjsKKzQ4MUEgMDAzRjsKKzQ4MjAgMDAzRjsKKzQ4MjYgMDAzRjsKKzQ4MkMgMDAzRjsKKzQ4MzIgMDAzRjsKKzQ4MzggMDAzRjsKKzQ4M0UgMDAzRjsKKzQ4NDQgMDAzRjsKKzQ4NEEgMDAzRjsKKzQ4NTAgMDAzRjsKKzQ4NTYgMDAzRjsKKzQ4NUMgMDAzRjsKKzQ4NjIgMDAzRjsKKzQ4NjggMDAzRjsKKzQ4NkUgMDAzRjsKKzQ4NzQgMDAzRjsKKzQ4N0EgMDAzRjsKKzQ4ODAgMDAzRjsKKzQ4ODYgMDAzRjsKKzQ4OEMgMDAzRjsKKzQ4OTIgMDAzRjsKKzQ4OTggMDAzRjsKKzQ4OUUgMDAzRjsKKzQ4QTQgMDAzRjsKKzQ4QUEgMDAzRjsKKzQ4QjAgMDAzRjsKKzQ4QjYgMDAzRjsKKzQ4QkMgMDAzRjsKKzQ4QzIgMDAzRjsKKzQ4QzggMDAzRjsKKzQ4Q0UgMDAzRjsKKzQ4RDQgMDAzRjsKKzQ4REEgMDAzRjsKKzQ4RTAgMDAzRjsKKzQ4RTYgMDAzRjsKKzQ4RUMgMDAzRjsKKzQ4RjIgMDAzRjsKKzQ4RjggMDAzRjsKKzQ4RkUgMDAzRjsKKzQ5MDQgMDAzRjsKKzQ5MEEgMDAzRjsKKzQ5MTAgMDAzRjsKKzQ5MTYgMDAzRjsKKzQ5MUMgMDAzRjsKKzQ5MjIgMDAzRjsKKzQ5MjggMDAzRjsKKzQ5MkUgMDAzRjsKKzQ5MzQgMDAzRjsKKzQ5M0EgMDAzRjsKKzQ5NDAgMDAzRjsKKzQ5NDYgMDAzRjsKKzQ5NEMgMDAzRjsKKzQ5NTIgMDAzRjsKKzQ5NTggMDAzRjsKKzQ5NUUgMDAzRjsKKzQ5NjQgMDAzRjsKKzQ5NkEgMDAzRjsKKzQ5NzAgMDAzRjsKKzQ5NzYgMDAzRjsKKzQ5N0MgMDAzRjsKKzQ5ODIgMDAzRjsKKzQ5ODggMDAzRjsKKzQ5OEUgMDAzRjsKKzQ5OTQgMDAzRjsKKzQ5OTkgMDAzRjsKKzQ5OUYgMDAzRjsKKzQ5QTUgMDAzRjsKKzQ5QUIgMDAzRjsKKzQ5QjEgMDAzRjsKKzQ5QjcgMDAzRjsKKzQ5QkQgMDAzRjsKKzQ5QzMgMDAzRjsKKzQ5QzkgMDAzRjsKKzQ5Q0YgMDAzRjsKKzQ5RDUgMDAzRjsKKzQ5REIgMDAzRjsKKzQ5RTEgMDAzRjsKKzQ5RTYgMDA0MTsKKzQ5RUMgMDAzRjsKKzQ5RjIgMDAzRjsKKzQ5RjggMDAzRjsKKzQ5RkUgMDAzRjsKKzRBMDQgMDAzRjsKKzRBMEEgMDAzRjsKKzRBMTAgMDAzRjsKKzRBMTYgMDAzRjsKKzRBMUMgMDAzRjsKKzRBMjIgMDAzRjsKKzRBMjggMDAzRjsKKzRBMkUgMDAzRjsKKzRBMzQgMDAzRjsKKzRBM0EgMDAzRjsKKzRBNDAgMDAzRjsKKzRBNDYgMDAzRjsKKzRBNEMgMDAzRjsKKzRBNTIgMDAzRjsKKzRBNTggMDAzRjsKKzRBNUUgMDAzRjsKKzRBNjQgMDAzRjsKKzRBNkEgMDAzRjsKKzRBNkYgMDAzRjsKKzRBNzUgMDAzRjsKKzRBN0EgMDAzRjsKKzRBODAgMDAzRjsKKzRBODYgMDAzRjsKKzRBOEMgMDAzRjsKKzRBOTIgMDAzRjsKKzRBOTggMDAzRjsKKzRBOUUgMDAzRjsKKzRBQTQgMDAzRjsKKzRBQUEgMDAzRjsKKzRBQjAgMDAzRjsKKzRBQjUgMDAzRjsKKzRBQkIgMDAzRjsKKzRBQzEgMDAzRjsKKzRBQzcgMDAzRjsKKzRBQ0QgMDAzRjsKKzRBRDMgMDAzRjsKKzRBRDkgMDAzRjsKKzRBREYgMDAzRjsKKzRBRTUgMDAzRjsKKzRBRUIgMDAzRjsKKzRBRjEgMDAzRjsKKzRBRjcgMDAzRjsKKzRBRkQgMDAzRjsKKzRCMDMgMDAzRjsKKzRCMDkgMDAzRjsKKzRCMEYgMDAzRjsKKzRCMTUgMDAzRjsKKzRCMUIgMDAzRjsKKzRCMjEgMDAzRjsKKzRCMjcgMDAzRjsKKzRCMkQgMDAzRjsKKzJGQTAzIDAwMjE7Cis0QjM4IDAwM0Y7Cis0QjNFIDAwM0Y7Cis0QjQ0IDAwM0Y7Cis0QjRBIDAwM0Y7Cis0QjUwIDAwM0Y7Cis0QjU2IDAwM0Y7Cis0QjVDIDAwM0Y7Cis0QjYyIDAwM0Y7Cis0QjY4IDAwM0Y7Cis0QjZFIDAwM0Y7Cis0Qjc0IDAwM0Y7Cis0QjdBIDAwM0Y7Cis0QjgwIDAwM0Y7Cis0Qjg2IDAwM0Y7Cis0QjhDIDAwM0Y7Cis0QjkyIDAwM0Y7Cis0Qjk4IDAwM0Y7Cis0QjlFIDAwM0Y7Cis0QkE0IDAwM0Y7Cis0QkFBIDAwM0Y7Cis0QkIwIDAwM0Y7Cis0QkI2IDAwM0Y7Cis0QkJDIDAwM0Y7Cis0QkMyIDAwM0Y7Cis0QkM4IDAwM0Y7CisyRkEwOCAwMDIxOworNEJEMyAwMDNGOworNEJEOSAwMDNGOworNEJERiAwMDNGOworNEJFNSAwMDNGOworNEJFQiAwMDNGOworNEJGMSAwMDNGOworNEJGNyAwMDNGOworNEJGRCAwMDNGOworNEMwMyAwMDNGOworNEMwOSAwMDNGOworNEMwRiAwMDNGOworNEMxNSAwMDNGOworNEMxQiAwMDNGOworNEMyMSAwMDNGOworNEMyNyAwMDNGOworNEMyRCAwMDNGOworNEMzMyAwMDNGOworNEMzOSAwMDNGOworNEMzRiAwMDNGOworNEM0NSAwMDNGOworNEM0QiAwMDNGOworNEM1MSAwMDNGOworNEM1NyAwMDNGOworNEM1RCAwMDNGOworNEM2MyAwMDNGOworNEM2OSAwMDNGOworNEM2RiAwMDNGOworNEM3NSAwMDNGOworNEM3QiAwMDNGOworNEM4MSAwMDNGOworNEM4NyAwMDNGOworNEM4RCAwMDNGOworNEM5MyAwMDNGOworNEM5OSAwMDNGOworNEM5RiAwMDNGOworNENBNSAwMDNGOworNENBQiAwMDNGOworNENCMSAwMDNGOworNENCNyAwMDNGOworNENCRCAwMDNGOworNENDMyAwMDNGOworNENDOSAwMDNGOworNENDRSAwMDQxOworNENENCAwMDNGOworNENEQSAwMDNGOworNENFMCAwMDNGOworNENFNiAwMDNGOworNENFQyAwMDNGOworNENGMSAwMDNGOworNENGNyAwMDNGOworNENGQyAwMDNGOworNEQwMiAwMDNGOworNEQwOCAwMDNGOworNEQwRSAwMDNGOworNEQxNCAwMDNGOworNEQxQSAwMDNGOworNEQyMCAwMDNGOworNEQyNiAwMDNGOworNEQyQyAwMDNGOworNEQzMiAwMDNGOworNEQzOCAwMDNGOworNEQzRSAwMDNGOworNEQ0NCAwMDNGOworNEQ0QSAwMDNGOworNEQ1MCAwMDNGOworMkZBMTYgMDAyMTsKKzRENUIgMDAzRjsKKzRENjEgMDAzRjsKKzRENjcgMDAzRjsKKzRENkQgMDAzRjsKKzRENzMgMDAzRjsKKzRENzkgMDAzRjsKKzREN0YgMDAzRjsKKzREODUgMDAzRjsKKzREOEIgMDAzRjsKKzREOTEgMDAzRjsKKzREOTcgMDAzRjsKKzREOUQgMDAzRjsKKzREQTMgMDAzRjsKKzREQTkgMDAzRjsKKzREQUYgMDAzRjsKKzREQjUgMDAzRjsKKzIwMDA1IDAwM0Y7CisyRjlEOSAwMDNGOworMkY4NjEgMDAzRjsKKzJGODg5IDAwM0Y7CitGQUNGIDAwM0Y7CisyRjk4OSAwMDNGOworMkY4RjAgMDAzRjsKKzJGOTEwIDAwM0Y7CisyRjkyNyAwMDNGOworMkY5NDIgMDAzRjsKKzJGOTUyIDAwM0Y7CisyRjk2MSAwMDNGOworMkY5NzMgMDAzRjsKKzJGOTg3IDAwM0Y7CisyRjlBRCAwMDNGOworMkY5Q0MgMDAzRjsKKzJGOUU1IDAwM0Y7CisyRjlGQiAwMDNGOworMkZBMTMgMDAzRjsKKzJBNkQzIDAwM0Y7CitFMDAxIDAwM0Y7CitGOEZCIDAwM0Y7CitDMDAwMCAwMDNGOworRTAwMDUgMDAzRjsKK0YwMDA1IDAwM0Y7CitGMDBGRCAwMDNGOworRkZGMDUgMDAzRjsKK0ZGRkZEIDAwM0Y7CisxMDAwMDUgMDAzRjsKKzEwMDBGRCAwMDNGOworMTBGRjA1IDAwM0Y7CisxMEZGRkQgMDAzRjsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9JRE5BVGVzdElucHV0LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9JRE5BVGVzdElucHV0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGFkMDk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0lETkFUZXN0SW5wdXQudHh0CkBAIC0wLDAgKzEsMTI2NiBAQAorPT09PT0KK2Rlc2M6IENvcHlyaWdodCAyMDAzLTIwMDUgaHR0cDovL2lkbmNvbm5lY3QuamRuYS5qcC90ZXN0YmVkLmh0bWwgCituYW1lYmFzZTogPDAwRUQ+ZG4KK25hbWV1dGY4OiA/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjUwMjkxNTMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTEtMSBIYXMgb25lIElETgorbmFtZWJhc2U6IDwwMEVEPmRuCituYW1ldXRmODogPz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamEKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDI1MDI5MTUzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0xLTIgSGFzIHR3byBJRE5zCituYW1lYmFzZTogPDAwRUI+eC48MDBFRD5kbgorbmFtZXV0Zjg6ID8/eC4/P2RuCituYW1lem9uZTogeG4tLXgtZWdhLnhuLS1kbi1tamEKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDAyNzIxMTQxCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0yLTEgTGF0aW4tMQorbmFtZWJhc2U6IDwwMEU1PjwwMEZFPjwwMEU3PgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS01Y2FlMmUKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQxNTQyNjIwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0yLTIgTGF0aW4gRXh0ZW5kZWQgQQorbmFtZWJhc2U6IDwwMTAzPmI8MDEwOT4KK25hbWV1dGY4OiA/P2I/PworbmFtZXpvbmU6IHhuLS1iLXJoYXQKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDcyMjM4NjE3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0yLTMgTGF0aW4gRXh0ZW5kZWQgQgorbmFtZWJhc2U6IDwwMjI3PjwwMTgwPjwwMTg4PgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS1saGFxOThiCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0ODQ2NDM2MQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMi00IExhdGluIEV4dGVuZGVkIEFkZGl0aW9uYWwKK25hbWViYXNlOiA8MUUwMT48MUUwMz48MUUwOT4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tMmZnZXMKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQ5MzAxMjMwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTEgSGFuCituYW1lYmFzZTogPDRFM0Y+PDRFQkE+PDVDMzg+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXhpcXBsajE3YQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNTgzNjcxMTMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtMiBIaXJhZ2FuYQorbmFtZWJhc2U6IDwzMDRCPjwzMDRDPjwzMDREPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS11OGpjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNTcwMDYxOTcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtMyBLYXRha2FuYQorbmFtZWJhc2U6IDwzMEFCPjwzMEFDPjwzMEFEPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1sY2tjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODE4MjY5OTIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtNCBIYW5ndWwgSmFtbworbmFtZWJhc2U6IDwxMTAwPjwxMTYxPjwxMUE4PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1wMzlhCitmYWlsem9uZTE6IHhuLS15cGQ4cXJoCitmYWlsem9uZTI6IAordG9rZW46IDQ0MjI4MzQ2CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTUgSGFuZ3VsCituYW1lYmFzZTogPEFDNjk+PEI0QzY+PEMwM0E+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLW82OWFxMm5sMGoKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDc5MjM1NjA4CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTYgWWkKK25hbWViYXNlOiA8QTAwQT48QTAyMD48QTJCOD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tNmw3YXJieTdqCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5OTU0OTcyMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy03IEdyZWVrCituYW1lYmFzZTogPDAzQjE+PDAzQjI+PDAzQjM+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLW14YWNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4Mzg1OTkxMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy04IEdyZWVrIEV4dGVuZGVkCituYW1lYmFzZTogPDFGMDI+PDFGMjY+PDFGNTU+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWZuZzdkcGcKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDIyNTAxMzM5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTkgQ3lyaWxsaWMKK25hbWViYXNlOiA8MDQzMD48MDQzMT48MDQzMj4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tODBhY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDk4ODcxNzUxCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTEwIEFybWVpYW4KK25hbWViYXNlOiA8MDU2MT48MDU2Mj48MDU2Mz4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0teTlhY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDIzNjg3MDE1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTExIEdlb3JnaWFuCituYW1lYmFzZTogPDEwRDA+PDEwRDE+PDEwRDI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWxvZGNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3MDQ5OTU4OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNC0xIFN5bWJvbHMKK25hbWViYXNlOiA8MjIyMT48MjFCQT48MjI4Mj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tYjdneG9taworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjQ2MTc2MzgKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMSBEZXZhbmFnYXJpCituYW1lYmFzZTogPDA5MTU+PDA5MTY+PDA5MTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTExYmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxODQ3NzIyMworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0yIEJlbmdhbGkKK25hbWViYXNlOiA8MDk5NT48MDk5Nj48MDk5Nz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tcDViY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDExNDc3OTA0CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTMgR3VybXVraGkKK25hbWViYXNlOiA8MEExNT48MEExNj48MEExNz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tZDliY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDcxNTQzNTA2CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTQgR3VqYXJhdGkKK25hbWViYXNlOiA8MEE5NT48MEE5Nj48MEE5Nz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tMGRjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDc1MjY4NzYwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTUgT3JpeWEKK25hbWViYXNlOiA8MEIxNT48MEIxNj48MEIxNz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tb2hjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDM2MDc5NzQ3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTYgVGFtaWwKK25hbWViYXNlOiA8MEI5NT48MEI5OT48MEI5QT4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tY2xjaWQKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDM5ODQxNDQ2CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTcgVGVsdWd1CituYW1lYmFzZTogPDBDMTU+PDBDMTY+PDBDMTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXpvY2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNDQzODgwOAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS04IEthbm5hZGEKK25hbWViYXNlOiA8MEM5NT48MEM5Nj48MEM5Nz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbnNjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQyMzAzNDY1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTkgTWFsYXlhbGFtCituYW1lYmFzZTogPDBEMTU+PDBEMTY+PDBEMTc+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWJ3Y2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxMTgxMzU1OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xMCBTaW5oYWxhCituYW1lYmFzZTogPDBEOUE+PDBEOUI+PDBEOUM+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTN6Y2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4OTgyMzIwOQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xMSBUaGFpCituYW1lYmFzZTogPDBFMDE+PDBFMDI+PDBFMDM+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLTEyY2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5NDk5Mjg0MgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xMiBMYW8KK25hbWViYXNlOiA8MEU4MT48MEU4Mj48MEU4ND4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tcDZjY2cKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQyNDI0MzM4CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTEzIFRpYmV0YW4KK25hbWViYXNlOiA8MEY0MD48MEY0MT48MEY0Mj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tNWNkY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDI2OTYyNzc4CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTE0IE15YW5tYXIKK25hbWViYXNlOiA8MTAwMD48MTAwMT48MTAwMj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbmlkY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDA5ODI0NjExCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTE1IEtobWVyCituYW1lYmFzZTogPDE3ODA+PDE3ODE+PDE3ODI+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWkyZWNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0ODA3MTE1NgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xNiBNb25nb2xpYW4KK25hbWViYXNlOiA8MTgyMD48MTgyMT48MTgyMj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tMjZlY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQwMTMxNTcyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS02LTEgQXJhYmljCituYW1lYmFzZTogPDA2Mjc+PDA2Mjg+PDA2Mjk+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLW1nYmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwNjQxNDgxNworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNi0yIEhlYnJldworbmFtZWJhc2U6IDwwNUQwPjwwNUQxPjwwNUQyPgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS00ZGJjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDE5OTY3MDUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTYtMyBTeXJpYWMKK25hbWViYXNlOiA8MDcxMD48MDcxMT48MDcxMj4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tOW1iY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDc3OTI1MDgwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS03LTEgQVNDSUkgYW5kIG5vbi1MYXRpbgorbmFtZWJhc2U6IGFiYzwzMEFCPjwzMEFDPjwzMEFEPgorbmFtZXV0Zjg6IGFiYz8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1hYmMtbWo0YmZnCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxNDMzMzM4MAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNy0yIExhdGluIChub24tQVNDSUkpIGFuZCBub24tTGF0aW4KK25hbWViYXNlOiA8MDBFNT48MDBGRT48MDBFNz48MzBBQj48MzBBQz48MzBBRD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tNWNhZTJlMzI4d2ZhZworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDA4NDgyOTkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMS0xIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBJbmNsdWRlcyAhIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjwwMDIxPmRuCituYW1ldXRmODogPz8hZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLSFkbi1xbWEKK2ZhaWx6b25lMjogCit0b2tlbjogODk1NzExODEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMS0yIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBJbmNsdWRlcyAkIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjwwMDI0PmRuCituYW1ldXRmODogPz8kZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLSRkbi1xbWEKK2ZhaWx6b25lMjogCit0b2tlbjogMDY5NjU5MzcKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMS0zIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBJbmNsdWRlcyArIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjwwMDJCPmRuCituYW1ldXRmODogPz8rZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLStkbi1xbWEKK2ZhaWx6b25lMjogCit0b2tlbjogOTg5Njc5NTEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMi0xIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBMZWFkaW5nIGh5cGhlbiBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiA8MDAyRD48MDBFRD4xZG4KK25hbWV1dGY4OiAtPz8xZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLS0xZG4tdnBhCitmYWlsem9uZTI6IAordG9rZW46IDY1NDU3MTAwCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTItMiBJZiBVc2VTVEQzQVNDSUlSdWxlczogVHJhaWxpbmcgaHlwaGVuIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjFkbjwwMDJEPgorbmFtZXV0Zjg6ID8/MWRuLQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tMWRuLS11cGEKK2ZhaWx6b25lMjogCit0b2tlbjogODU2Mjk3MTQKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMy0xIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBHZXRzIGEgKyBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjxGRjBCPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMDMzMXgKK2ZhaWx6b25lMjogCit0b2tlbjogOTUyMzY2MjAKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMy0yIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBHZXRzIGEgPSBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEVEPjwyMDdDPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMDM0M2EKK2ZhaWx6b25lMjogCit0b2tlbjogMDQ5NjA2NjQKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtNC0xIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBMZWFkaW5nIGh5cGhlbiBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDxGRTYzPjwwMEVEPjJkbgorbmFtZXV0Zjg6ID8/Pz8/MmRuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0yZG4tcW1hMzI4NjNhCitmYWlsem9uZTI6IHhuLS0tMmRuLXZwYQordG9rZW46IDUzNTEyMDY5CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi0zLTQtMiBJZiBVc2VTVEQzQVNDSUlSdWxlczogVHJhaWxpbmcgaHlwaGVuIGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+MmRuPEZGMEQ+CituYW1ldXRmODogPz8yZG4/Pz8KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLTJkbi1xbWE3OTM2M2EKK2ZhaWx6b25lMjogeG4tLTJkbi0tdXBhCit0b2tlbjogMzk5Mzg2NTMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTQtMSBBbGwtQVNDSUkgY2hlY2ssIExhdGluCituYW1lYmFzZTogPDAwQjk+MQorbmFtZXV0Zjg6ID8/MQorbmFtZXpvbmU6IDExCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MzYxMTM3NAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItNC0yIEFsbC1BU0NJSSBjaGVjaywgc3ltYm9sCituYW1lYmFzZTogPDIxNjU+dmkKK25hbWV1dGY4OiA/Pz92aQorbmFtZXpvbmU6IHZpdmkKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDc5OTM5OTkzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi00LTMgQWxsLUFTQ0lJIGNoZWNrLCBzaGFycCBTCituYW1lYmFzZTogPDAwREY+c3MKK25hbWV1dGY4OiA/P3NzCituYW1lem9uZTogc3NzcworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzEyOTI1MzAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTUtMSBBQ0UgcHJlZml4IGV4aXN0cyBiZWZvcmUgTmFtZXByZXAKK25hbWViYXNlOiB4bi0tPDAwRUY+ZG4KK25hbWV1dGY4OiB4bi0tPz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0teG4tLWRuLXNqYQorZmFpbHpvbmUyOiB4bi0tZG4tc2phCit0b2tlbjogMzI4NDE1MTUKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTUtMiBBQ0UgcHJlZml4IGFwcGVhcnMgYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8MjE3OT5uLS08MDBFND5kbgorbmFtZXV0Zjg6ID8/P24tLT8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLXhuLS1kbi11aWEKK2ZhaWx6b25lMjogeG4tLWRuLXVpYQordG9rZW46IDUyOTk0NjMxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi04LTEgWmVyby1sZW5ndGggbGFiZWwgYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8MDBBRD4KK25hbWV1dGY4OiAKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWtiYQorZmFpbHpvbmUyOiB4bi0tCit0b2tlbjogMTg0MjAwMzcKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTktMSBVKzMwMDIgYWN0cyBhcyBhIGxhYmVsIHNlcGFyYXRvcgorbmFtZWJhc2U6IDMwMDItdGVzdDwzMDAyPjwwMEVEPmRuCituYW1ldXRmODogMzAwMi10ZXN0Pz8/Pz9kbgorbmFtZXpvbmU6IDMwMDItdGVzdC54bi0tZG4tbWphCitmYWlsem9uZTE6IHhuLS0zMDAyLXRlc3Rkbi13Y2IyMDg3bQorZmFpbHpvbmUyOiAKK3Rva2VuOiAxNDIxNzQyMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItOS0yIFUrRkYwRSBhY3RzIGFzIGEgbGFiZWwgc2VwYXJhdG9yCituYW1lYmFzZTogZmYwZS10ZXN0PEZGMEU+PDAwRUQ+ZG4KK25hbWV1dGY4OiBmZjBlLXRlc3Q/Pz8/P2RuCituYW1lem9uZTogZmYwZS10ZXN0LnhuLS1kbi1tamEKK2ZhaWx6b25lMTogeG4tLWZmMGUtdGVzdGRuLXdjYjQ1ODY1ZgorZmFpbHpvbmUyOiAKK3Rva2VuOiA5NDU3OTE3OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItOS0zIFUrRkY2MSBhY3RzIGFzIGEgbGFiZWwgc2VwYXJhdG9yCituYW1lYmFzZTogZmY2MS10ZXN0PEZGNjE+PDAwRUQ+ZG4KK25hbWV1dGY4OiBmZjYxLXRlc3Q/Pz8/P2RuCituYW1lem9uZTogZmY2MS10ZXN0LnhuLS1kbi1tamEKK2ZhaWx6b25lMTogeG4tLWZmNjEtdGVzdGRuLXdjYjMzOTc1ZgorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNzA4NDA0MgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDMtMi0xIFNoYXJwIFMgY29udmVyc2lvbjsgc2hvdWxkIGRpc3BsYXkgYXMgbTwwMEVCPnNzCituYW1lYmFzZTogeG4tLW08MDBERj4tam1hCituYW1ldXRmODogeG4tLW0/Py1qbWEKK25hbWV6b25lOiBtPDAwRUI+c3MKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDg1MTQyNDQ5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTMtMSBPbGQgcHJlZml4OyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZTs8aWN1PiBJQ1Ugd2lsbCB0cmVhdCB0aGlzIGFzIEFTQ0lJLiBUaGlzIHNlcXVlbmNlIGlzIG5vdCBleHBsaWNpdGx5IHByb2hpYml0ZWQgYnkgdGhlIFJGQy48L2ljdT4KK25hbWViYXNlOiBpZXNnLS1kbi1tamEKK25hbWV1dGY4OiBpZXNnLS1kbi1tamEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDM1OTk2MzU4CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTMtMiBPbGQgcHJlZml4OyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZTs8aWN1PiBJQ1Ugd2lsbCB0cmVhdCB0aGlzIGFzIEFTQ0lJLiBUaGlzIHNlcXVlbmNlIGlzIG5vdCBleHBsaWNpdGx5IHByb2hpYml0ZWQgYnkgdGhlIFJGQy48L2ljdT4KK25hbWViYXNlOiBpZXNnZG4tbWphCituYW1ldXRmODogaWVzZ2RuLW1qYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTM2OTM0NjcKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtMy0zIE9sZCBwcmVmaXg7IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlOzxpY3U+IElDVSB3aWxsIHRyZWF0IHRoaXMgYXMgQVNDSUkuIFRoaXMgc2VxdWVuY2UgaXMgbm90IGV4cGxpY2l0bHkgcHJvaGliaXRlZCBieSB0aGUgUkZDLjwvaWN1PgorbmFtZWJhc2U6IGJxLS1kbi1tamEKK25hbWV1dGY4OiBicS0tZG4tbWphCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3NzA0OTcxOQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy01LTEgTm9uLUFTQ0lJIGNvZGUgcG9pbnQgYmVmb3JlIHRoZSBsYXN0IGh5cGhlbjtcCisgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tZDwwMEYxPi1tamEKK25hbWV1dGY4OiB4bi0tZD8/LW1qYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNTMwNDMxNzEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNS0yIE5vbi1hbHBoYW51bWVyaWMgY29kZSBwb2ludCBhZnRlciB0aGUgbGFzdCBoeXBoZW47XAorIHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWRuLW1qKworbmFtZXV0Zjg6IHhuLS1kbi1taisKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDI0NjI2NDk0CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTUtMyBFbmRzIGluIHRoZSBtaWRkbGUgb2YgYW4gZW5jb2RlZCBkZWx0YSB2YWx1ZTtcCisgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tZG4tbWoKK25hbWV1dGY4OiB4bi0tZG4tbWoKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDMwOTIxMTMyCitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTYtMSBOYW1lcHJlcCAtLSBwcm9oaWJpdGVkIGNoYXJhY3RlciBVK0UwMDA7XAorIHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWUwMDBkbi1sNzA0YQorbmFtZXV0Zjg6IHhuLS1lMDAwZG4tbDcwNGEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDAyMzU5NzUzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTYtMiBJZiB1c2luZyBVc2VTVEQzQVNDSUlSdWxlcywgU3RlcCAzYSAtLSBsZWFkaW5nIGh5cGhlbjsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tLTNkbi12cGEKK25hbWV1dGY4OiB4bi0tLTNkbi12cGEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDk5Nzk1MTY1CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTYtMyBJZiB1c2luZyBVc2VTVEQzQVNDSUlSdWxlcywgU3RlcCAzYiAtLSB0cmFpbGluZyBoeXBoZW47IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLTNkbi0tdXBhCituYW1ldXRmODogeG4tLTNkbi0tdXBhCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4NjA1MTcxNworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy02LTQgU3RlcCA1IC0tIHByZWZpeCBleGlzdHM7IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLXhuLS1kbi02dmEKK25hbWV1dGY4OiB4bi0teG4tLWRuLTZ2YQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDI1MDY3ODkKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNy0xIFB1bnljb2RlIHdhcyBub3QgbmVjZXNzYXJ5OyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1pZG4tCituYW1ldXRmODogeG4tLWlkbi0KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDIxNjc1OTE4CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTctMiBTdHJpbmcgZGlkIG5vdCBnbyB0aHJvdWdoIE5hbWVwcmVwO1wKKyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1kbi12Z2EKK25hbWV1dGY4OiB4bi0tZG4tdmdhCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxODgzMjQ1NAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy04LTEgU2hvdWxkIHNob3cgdGhlIFVuaWNvZGUgPDAwRUQ+NGRuIDsgPGljdT4gQ2hhbmdlZCBuYW1lYmFzZSBhbmQgbmFtZXV0ZjggZnJvbSB4bi0tNGRuLWxsYSB0byB4bi0tNGRuLXFtYSA8L2ljdT4KK25hbWViYXNlOiB4bi0tNGRuLXFtYQorbmFtZXV0Zjg6IHhuLS00ZG4tcW1hCituYW1lem9uZTogPDAwRUQ+NGRuCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyMzM3NzQzNQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogNC0xLTEtMSAwMGFkb3V0PDAwQUQ+PDAwRUQ+ZG4gLT5cCisgMDBhZG91dDwwMEVEPmRuCituYW1lYmFzZTogMDBhZG91dDwwMEFEPjwwMEVEPmRuCituYW1ldXRmODogMDBhZG91dD8/Pz9kbgorbmFtZXpvbmU6IHhuLS0wMGFkb3V0ZG4tbTVhCitmYWlsem9uZTE6IHhuLS0wMGFkb3V0ZG4tY25hODFlCitmYWlsem9uZTI6IAordG9rZW46IDA0Mjk5OTUwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTEtMiAyMDBkb3V0PDIwMEQ+PDAwRUQ+ZG4gLT5cCisgMjAwZG91dDwwMEVEPmRuCituYW1lYmFzZTogMjAwZG91dDwyMDBEPjwwMEVEPmRuCituYW1ldXRmODogMjAwZG91dD8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tMjAwZG91dGRuLW01YQorZmFpbHpvbmUxOiB4bi0tMjAwZG91dGRuLW01YTE2NzhmCitmYWlsem9uZTI6IAordG9rZW46IDAwNjQzMjQzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItMSBzaW1wbGVjYXA8MDA0ND48MDBFRD5kbiAtPlwKKyBzaW1wbGVjYXA8MDA2ND48MDBFRD5kbgorbmFtZWJhc2U6IHNpbXBsZWNhcDwwMDQ0PjwwMEVEPmRuCituYW1ldXRmODogc2ltcGxlY2FwRD8/ZG4KK25hbWV6b25lOiB4bi0tc2ltcGxlY2FwZGRuLTFmYgorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzYyNDk3OTUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi0yIGxhdGludG9ncmVlazwwMEI1PjwwMEVEPmRuIC0+XAorIGxhdGludG9ncmVlazwwM0JDPjwwMEVEPmRuCituYW1lYmFzZTogbGF0aW50b2dyZWVrPDAwQjU+PDAwRUQ+ZG4KK25hbWV1dGY4OiBsYXRpbnRvZ3JlZWs/Pz8/ZG4KK25hbWV6b25lOiB4bi0tbGF0aW50b2dyZWVrZG4tY21iNzE2aQorZmFpbHpvbmUxOiB4bi0tbGF0aW50b2dyZWVrZG4tY3hhMDFnCitmYWlsem9uZTI6IAordG9rZW46IDAzMTE3NDA3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItMyBsYXRpbmV4dDwwMEM3PjwwMEVEPmRuIC0+XAorIGxhdGluZXh0PDAwRTc+PDAwRUQ+ZG4KK25hbWViYXNlOiBsYXRpbmV4dDwwMEM3PjwwMEVEPmRuCituYW1ldXRmODogbGF0aW5leHQ/Pz8/ZG4KK25hbWV6b25lOiB4bi0tbGF0aW5leHRkbi12NmE2ZQorZmFpbHpvbmUxOiB4bi0tbGF0aW5leHRkbi10d2EwN2IKK2ZhaWx6b25lMjogCit0b2tlbjogMTAyNDM1MDUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi00IHNoYXJwczwwMERGPjwwMEVEPmRuIC0+XAorIHNoYXJwc3NzPDAwRUQ+ZG4KK25hbWViYXNlOiBzaGFycHM8MDBERj48MDBFRD5kbgorbmFtZXV0Zjg6IHNoYXJwcz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1zaGFycHNzc2RuLXI4YQorZmFpbHpvbmUxOiB4bi0tc2hhcnBzZG4tdnlhNGwKK2ZhaWx6b25lMjogCit0b2tlbjogODQ5MjE2NTYKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi01IHR1cmtpc2hpPDAxMzA+PDAwRUQ+ZG4gLT5cCisgdHVya2lzaGk8MDA2OT48MDMwNz48MDBFRD5kbgorbmFtZWJhc2U6IHR1cmtpc2hpPDAxMzA+PDAwRUQ+ZG4KK25hbWV1dGY4OiB0dXJraXNoaT8/Pz9kbgorbmFtZXpvbmU6IHhuLS10dXJraXNoaWlkbi13Y2I3MDFlCitmYWlsem9uZTE6IHhuLS10dXJraXNoaWRuLXI4YTcxZgorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMjM4MTczMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTYgZXhwdHdvPDAxNDk+PDAwRUQ+ZG4gLT5cCisgZXhwdHdvPDAyQkM+PDAwNkU+PDAwRUQ+ZG4KK25hbWViYXNlOiBleHB0d288MDE0OT48MDBFRD5kbgorbmFtZXV0Zjg6IGV4cHR3bz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1leHB0d29uZG4tbTVhNTAyYworZmFpbHpvbmUxOiB4bi0tZXhwdHdvZG4taDJhMzNnCitmYWlsem9uZTI6IAordG9rZW46IDEwNTc1MjAzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItNyBhZGRmb2xkPDAzRDI+PDAwRUQ+ZG4gLT5cCisgYWRkZm9sZDwwM0M1PjwwMEVEPmRuCituYW1lYmFzZTogYWRkZm9sZDwwM0QyPjwwMEVEPmRuCituYW1ldXRmODogYWRkZm9sZD8/Pz9kbgorbmFtZXpvbmU6IHhuLS1hZGRmb2xkZG4tbTVhMTIxZgorZmFpbHpvbmUxOiB4bi0tYWRkZm9sZGRuLW01YTQ2MmYKK2ZhaWx6b25lMjogCit0b2tlbjogMzE0OTMwNDQKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi04IGV4cHRocmVlPDFGNTI+PDAwRUQ+ZG4gLT5cCisgZXhwdGhyZWU8MDNDNT48MDMxMz48MDMwMD48MDBFRD5kbgorbmFtZWJhc2U6IGV4cHRocmVlPDFGNTI+PDAwRUQ+ZG4KK25hbWV1dGY4OiBleHB0aHJlZT8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZXhwdGhyZWVkbi1yOGE1ODQ0ZworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNjgxNDQ2MjIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi05IG5vbmJtcDwxMDQwMD48MDBFRD5kbiAtPlwKKyBub25ibXA8MTA0Mjg+PDAwRUQ+ZG4KK25hbWViYXNlOiBub25ibXA8MTA0MDA+PDAwRUQ+ZG4KK25hbWV1dGY4OiBub25ibXA/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1ub25ibXBkbi1oMmEzNDc0N2QKK2ZhaWx6b25lMTogeG4tLW5vbmJtcGRuLWgyYTM3MDQ2ZAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNTM5MzIxMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTEwIG5vbmJtcHRvYXNjaWk8MUQ0MDA+PDAwRUQ+ZG4gLT5cCisgbm9uYm1wdG9hc2NpaWE8MDBFRD5kbgorbmFtZWJhc2U6IG5vbmJtcHRvYXNjaWk8MUQ0MDA+PDAwRUQ+ZG4KK25hbWV1dGY4OiBub25ibXB0b2FzY2lpPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tbm9uYm1wdG9hc2NpaWFkbi1tc2IKK2ZhaWx6b25lMTogeG4tLW5vbmJtcHRvYXNjaWlkbi1ocGI1NDExMmkKK2ZhaWx6b25lMjogCit0b2tlbjogNzgxODI1MDIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS0xIHJlZ2NvbWI8MDA2NT48MDMwMT48MDBFRD5kbiAtPlwKKyByZWdjb21iPDAwRTk+PDAwRUQ+ZG4KK25hbWViYXNlOiByZWdjb21iPDAwNjU+PDAzMDE+PDAwRUQ+ZG4KK25hbWV1dGY4OiByZWdjb21iZT8/Pz9kbgorbmFtZXpvbmU6IHhuLS1yZWdjb21iZG4taDRhOGIKK2ZhaWx6b25lMTogeG4tLXJlZ2NvbWJlZG4tcjhhNzk0ZAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4NzY0NzA0NQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTIgY29tYmFuZGNhc2U8MDA0NT48MDMwMT48MDBFRD5kbiAtPlwKKyBjb21iYW5kY2FzZTwwMEU5PjwwMEVEPmRuCituYW1lYmFzZTogY29tYmFuZGNhc2U8MDA0NT48MDMwMT48MDBFRD5kbgorbmFtZXV0Zjg6IGNvbWJhbmRjYXNlRT8/Pz9kbgorbmFtZXpvbmU6IHhuLS1jb21iYW5kY2FzZWRuLWxoYjRkCitmYWlsem9uZTE6IHhuLS1jb21iYW5kY2FzZWVkbi1jbWI1MjZmCitmYWlsem9uZTI6IAordG9rZW46IDYxNzQxMTg1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtMyBhZGpjb21iPDAwQkE+PDAzMDE+PDAwRUQ+ZG4gLT5cCisgYWRqY29tYjwwMEYzPjwwMEVEPmRuCituYW1lYmFzZTogYWRqY29tYjwwMEJBPjwwMzAxPjwwMEVEPmRuCituYW1ldXRmODogYWRqY29tYj8/Pz8/P2RuCituYW1lem9uZTogeG4tLWFkamNvbWJkbi1tNWE5ZAorZmFpbHpvbmUxOiB4bi0tYWRqY29tYmRuLTFxYTU3Y3AzcgorZmFpbHpvbmUyOiAKK3Rva2VuOiAxNDgyODQwMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTQgZXh0Y29tYm88MDA2Mz48MDMwMT48MDBFRD5kbiAtPlwKKyBleHRjb21ibzwwMTA3PjwwMEVEPmRuCituYW1lYmFzZTogZXh0Y29tYm88MDA2Mz48MDMwMT48MDBFRD5kbgorbmFtZXV0Zjg6IGV4dGNvbWJvYz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1leHRjb21ib2RuLXI4YTUyYQorZmFpbHpvbmUxOiB4bi0tZXh0Y29tYm9jZG4td2NiOTIwZQorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNjY1MTI3NworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTUgZG91YmxlZGlhYzE8MDA3NT48MDMwOD48MDMwMT48MDBFRD5kbiAtPlwKKyBkb3VibGVkaWFjMjwwMUQ4PjwwMEVEPmRuCituYW1lYmFzZTogZG91YmxlZGlhYzE8MDA3NT48MDMwOD48MDMwMT48MDBFRD5kbgorbmFtZXV0Zjg6IGRvdWJsZWRpYWMxdT8/Pz8/P2RuCituYW1lem9uZTogeG4tLWRvdWJsZWRpYWMxZG4tNmliODM2YQorZmFpbHpvbmUxOiB4bi0tZG91YmxlZGlhYzF1ZG4tY21iNTI2Zm5kCitmYWlsem9uZTI6IAordG9rZW46IDMwMTc1NTk1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtNiBkb3VibGVkaWFjMjwwMDc1PjwwMzAxPjwwMzA4PjwwMEVEPmRuIC0+XAorIGRvdWJsZWRpYWMyPDAxRDg+PDAwRUQ+ZG4KK25hbWViYXNlOiBkb3VibGVkaWFjMjwwMDc1PjwwMzAxPjwwMzA4PjwwMEVEPmRuCituYW1ldXRmODogZG91YmxlZGlhYzJ1Pz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG91YmxlZGlhYzJkbi02aWI4cXM3M2EKK2ZhaWx6b25lMTogeG4tLWRvdWJsZWRpYWMydWRuLWNtYjUyNmZvZAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNTYwNjEwOQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0yLTEgbmV3bm9ybTwyRjg3ND48MDBFRD5kbiAtPlwKKyBuZXdub3JtPDVGMzM+PDAwRUQ+ZG4gc2hvdWxkIG5vdCBiZWNvbWUgPDVGNTM+CituYW1lYmFzZTogbmV3bm9ybTwyRjg3ND48MDBFRD5kbgorbmFtZXV0Zjg6IG5ld25vcm0/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1uZXdub3JtZG4tbTVhNzg1NngKK2ZhaWx6b25lMTogeG4tLW5ld25vcm1kbi1tNWE5Mzk2eAorZmFpbHpvbmUyOiB4bi0tbmV3bm9ybWRuLW01YTk5Njh4Cit0b2tlbjogNjE5MDE4MTAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMSBJZiBVc2VTVEQzQVNDSUlSdWxlczogU3BhY2luZzsgPGljdT4gXHUwMDIwIGlzIHByb2hpYml0ZWQgZnJvbSB0aGUgb3V0cHV0IG9ubHkgd2hlbiBVc2VTVEQzQVNDSUlSdWxlcyBpcyBzZXQgPC9pY3U+CituYW1lYmFzZTogPDIwMDA+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamEzMzkyYQorZmFpbHpvbmUyOiAKK3Rva2VuOiAxMzIyNjg3OAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0yIENvbnRyb2wKK25hbWViYXNlOiA8MDZERD48MDBFRD5kbi0yCituYW1ldXRmODogPz8/P2RuLTIKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLTItdXBhMzMyZworZmFpbHpvbmUyOiAKK3Rva2VuOiAwOTg3MzMxMgorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0zIFByaXZhdGUgdXNlCituYW1lYmFzZTogPEUwMDU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamExNjU5dAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMzkzNzE4MworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy00IFByaXZhdGUgdXNlLCBub24tQk1QCituYW1lYmFzZTogPEYwMDA1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc5MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDc4NzA3ODIzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTUgTm9uLWNoYXJhY3RlcgorbmFtZWJhc2U6IDxGREREPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMTIxMHgKK2ZhaWx6b25lMjogCit0b2tlbjogNDQ0MzIxNzgKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtNiBOb24tY2hhcmFjdGVyLCBub24tQk1QCituYW1lYmFzZTogPDFGRkZFPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc5MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDY5MTQyNjg2CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTcgU3Vycm9nYXRlIHBvaW50cworbmFtZWJhc2U6IDxEODA1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzkyMngKK2ZhaWx6b25lMjogCit0b2tlbjogMDU0MjQ1NzEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtOCBJbmFwcHJvcHJpYXRlIGZvciBwbGFpbgorbmFtZWJhc2U6IDxGRkZBPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNTgyMngKK2ZhaWx6b25lMjogCit0b2tlbjogNDQ4MjU4MjQKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtOSBJbmFwcHJvcHJpYXRlIGZvciBjYW5vbmljYWwKK25hbWViYXNlOiA8MkZGNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTM3MjliCitmYWlsem9uZTI6IAordG9rZW46IDUwOTI2MTM2CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTEwIENoYW5nZSBkaXNwbGF5IHNpbXBsZQorbmFtZWJhc2U6IDwyMDZBPjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzUzM2EKK2ZhaWx6b25lMjogCit0b2tlbjogNTc5NTMzMTMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMTEgQ2hhbmdlIGRpc3BsYXkgUlRMCituYW1lYmFzZTogPDIwMEY+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamEzOTkyYQorZmFpbHpvbmUyOiAKK3Rva2VuOiAzMDcwNTI3OQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0xMiBMYW5ndWFnZSB0YWdzCituYW1lYmFzZTogPEUwMDAxPjxFMDA0NT48RTAwNEU+PDAwNjg+PDAwNjk+aWRuCituYW1ldXRmODogPz8/Pz8/Pz8/Pz8/aGlpZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWhpaWRuLWttNDNhYWEKK2ZhaWx6b25lMjogCit0b2tlbjogNDQ1OTgwMzkKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtMSBBcmFiaWMgUmFuZEFMQ2F0LUxDYXQtUmFuZEFMQ2F0CituYW1lYmFzZTogPDA2Mjg+PDAwNkY+PDA2Mzg+CituYW1ldXRmODogPz9vPz8KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMG1jM2MKK2ZhaWx6b25lMjogCit0b2tlbjogNzgyMzMwNTMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtMiBBcmFiaWMgUmFuZEFMQ2F0LVJhbmRBTENhdC1vdGhlcgorbmFtZWJhc2U6IDwwNjI4PjwwNjM4PjwwMDZGPgorbmFtZXV0Zjg6ID8/Pz9vCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTBtYzJjCitmYWlsem9uZTI6IAordG9rZW46IDk1Mjk5NjIxCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTMgQXJhYmljIG90aGVyLVJhbmRBTENhdC1SYW5kQUxDYXQKK25hbWViYXNlOiA8MDA2Rj48MDYyOD48MDYzOD4KK25hbWV1dGY4OiBvPz8/PworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0xbWMyYworZmFpbHpvbmUyOiAKK3Rva2VuOiA3OTgwNzE3NgorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC00IEhlYnJldyBSYW5kQUxDYXQtTENhdC1SYW5kQUxDYXQKK25hbWViYXNlOiA8MDVEMT48MDA2Rj48MDVFMT4KK25hbWV1dGY4OiA/P28/PworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0xaGMzYworZmFpbHpvbmUyOiAKK3Rva2VuOiAzMjIyOTQ1MAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC01IEhlYnJldyBSYW5kQUxDYXQtUmFuZEFMQ2F0LW90aGVyCituYW1lYmFzZTogPDA1RDE+PDA1RTE+PDAwNkY+CituYW1ldXRmODogPz8/P28KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMWhjMmMKK2ZhaWx6b25lMjogCit0b2tlbjogNTMyMTMzNDgKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtNiBIZWJyZXcgb3RoZXItUmFuZEFMQ2F0LVJhbmRBTENhdAorbmFtZWJhc2U6IDwwMDZGPjwwNUQxPjwwNUUxPgorbmFtZXV0Zjg6IG8/Pz8/CituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTJoYzJjCitmYWlsem9uZTI6IAordG9rZW46IDkwODM1ODYwCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNS0xLTEgVW5hc3NpZ25lZCBpbiBCTVA7IHpvbmUgZWRpdG9ycyBzaG91bGQgcmVqZWN0CituYW1lYmFzZTogPDAyMzc+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphMzNrCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4MzA3OTYwMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDUtMS0yIFVuYXNzaW5nZWQgb3V0c2lkZSBCTVA7IHpvbmUgZWRpdG9ycyBzaG91bGQgcmVqZWN0CituYW1lYmFzZTogPDEwMjA1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphNzczNHgKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTc5MjJ4CitmYWlsem9uZTI6IAordG9rZW46IDAzNjgyOTAwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNS0yLTEgTmV3bHkgYXNzaWduZWQgaW4gQk1QOyB6b25lIGVkaXRvcnMgc2hvdWxkIHJlamVjdAorbmFtZWJhc2U6IDwwMjM0PjwwMEVEPmRuCituYW1ldXRmODogPz8/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYTEyaworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogOTY2Mzc1MDEKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA1LTItMiBOZXdseSBhc3NpZ25lZCBvdXRzaWRlIG9mIEJNUDsgem9uZSBlZGl0b3JzIHNob3VsZCByZWplY3QKK25hbWViYXNlOiA8MTAwMDU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamE5MjMyeAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzkyMngKK2ZhaWx6b25lMjogCit0b2tlbjogOTU1Mzc2OTkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg1NWZkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzLmphdmEKQEAgLTAsMCArMSwxMDQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIFRlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMgICgpIHsKKyAgICAgICAgICBzdXBlci5jb250ZW50cyA9IGRhdGE7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImNvbGxhdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ayIpLAorICAgICAgICAgICAgICAgIH0sCisvLyBDaXJjdWxhciBhbGlhc2VzIHRlc3QgbW92ZWQgdG8gVGVzdENpcmN1bGFyQWxpYXNlcworLy8gICAgICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICAgICAiYWFhIiwKKy8vICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0YWxpYXNlcy9hYWIiKSwKKy8vICAgICAgICAgICAgICAgIH0sCisvLyAgICAgICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICAgICAgImFhYiIsCisvLyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGFsaWFzZXMvYWFhIiksCisvLyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFub3RoZXJhbGlhcyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL3VrL2NvbGxhdGlvbnMvc3RhbmRhcmQiKSwKKyAgICAgICAgICAgICAgICB9LAorLy8gTW92ZWQgdG8gVGVzdE5vbkV4aXN0aW5nCisvLyAgICAgICAgICAgICAgICB7CisvLyAgICAgICAgICAgICAgICAgICAgIm5vbmV4aXN0aW5nIiwKKy8vICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ayIpLAorLy8gICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJyZWZlcmVuY2luZ2FsaWFzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGFsaWFzZXMvYW5vdGhlcmFsaWFzL1NlcXVlbmNlIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJzaW1wbGVhbGlhcyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3R0eXBlcy9tZW51L2ZpbGUvb3BlbiIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC8xIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvNSIpLAorCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczBQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMxUGFjaWZpY1N0YW5kYXJkVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC8xIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczJQRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvNCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMzTG9zQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC81IiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiem9uZVN0cmluZ3MiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4iKSwKKworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiem9uZVRlc3RzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzMvMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzU4MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMuamF2YQpAQCAtMCwwICsxLDM3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKy8qKgorICogQGF1dGhvciBSYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhpcyBnZW5lcmF0ZWQgY29tbWVudCBlZGl0IHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZSAidHlwZWNvbW1lbnQiOgorICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+VGVtcGxhdGVzLgorICogVG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBjcmVhdGlvbiBvZiB0eXBlIGNvbW1lbnRzIGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzICBleHRlbmRzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIFRlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMoKSB7CisgICAgICAgICAgc3VwZXIuY29udGVudHMgPSBkYXRhOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFhYSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RjaXJjdWxhcmFsaWFzL2FhYiIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYWFiIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGNpcmN1bGFyYWxpYXMvYWFjIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhYWMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWEiKSwKKyAgICAgICAgICAgICAgICB9IAorICAgIH07Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNkYjlkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcy5qYXZhCkBAIC0wLDAgKzEsMTM4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzIGV4dGVuZHMgSUNVTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHB1YmxpYyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcyAgKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJiaW5hcnl0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5Db21wcmVzc2VkQmluYXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAwMFx1MDAwRlx1MDAwMVx1MDIwM1x1MDQwNVx1MDYwN1x1MDgwOVx1MEEwQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEMwRFx1MEUwMCIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHlhcnJheSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHliaW4iLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkNvbXByZXNzZWRCaW5hcnkobnVsbCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWV4cGxpY2l0c3RyaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWludCIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDApLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHlpbnR2IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXJbXSB7CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eXN0cmluZyIsCisgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZW1wdHl0YWJsZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiaW1wb3J0dGVzdCIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQ29tcHJlc3NlZEJpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMDBcdTAwMEZcdTAwMDFcdTAyMDNcdTA0MDVcdTA2MDdcdTA4MDlcdTBBMEIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTBDMERcdTBFMDAiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImludGVnZXJhcnJheSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyW10geworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoNCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoNyksCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJtZW51IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNhdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNhdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibWludXNvbmUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMSksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJvbmUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm9uZWh1bmRyZWR0d2VudHl0aHJlZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEyMyksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJwbHVzb25lIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMSksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInN0cmluZ1RhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0X3VuZGVyc2NvcmVzIiwKKyAgICAgICAgICAgICAgICAgICAgInRlc3QgbWVzc2FnZSAuLi4uIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3Rlc2NhcGUiLAorICAgICAgICAgICAgICAgICAgICAidGFiOlx1MDAwOSBjcjpcZiBmZjpcdTAwMEMgbmV3bGluZTpcbiBiYWNrc2xhc2g6XFwiICsKKyAgICAgICAgICAgICAgICAgICAgIiBxdW90ZT1cXFwnIGRvdWJsZVF1b3RlPVxcXCIgc2luZ2xlcXVvdXRlcz0nJyIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ6ZXJvdGVzdCIsCisgICAgICAgICAgICAgICAgICAgICJhYmNcdTAwMDBkZWYiLAorICAgICAgICAgICAgICAgIH0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL2VuZ2xpc2guZGljdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL2VuZ2xpc2guZGljdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMGY0MzBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL3dvcmRzLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpL3dvcmRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hN2UwNmFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvd29yZHMudHh0CkBAIC0wLDAgKzEsMjk5MCBAQAorLS0KKy0tc3VjaAorYQorYSdiZWwtbWl6cmFpbQorYSdpYWgKK2FiYXRlCithYmF0ZWQKK2FiZGljYXRlZAorYWJlbAorYWJpJ2RhCithYmlkZQorYWJpbSdhLWVsCithYmltJ2VsZWNoCithYmltJ2VsZWNoJ3MKK2FibGUKK2Fib2xpc2gKK2Fib2xpc2hpbmcKK2Fib21pbmF0aW9uCithYm91dAorYWJvdmUKK2FicmFoYW0KK2FicmFoYW0ncworYWJyYW0KK2FicmFtJ3MKK2Ficm9hZAorYWJzZW50CithYnNvbHV0ZQorYWJzb2x2ZWQKK2FidW5kYW5jZQorYWJ1bmRhbnRseQorYWJ1c2VzCithY2NhZAorYWNjZXB0CithY2NlcHRlZAorYWNjb21tb2RhdGlvbgorYWNjb3JkaW5nCithY2NvcmRpbmdseQorYWNjb3VudAorYWNjdXN0b21lZAorYWNoYm9yCithY2tub3dsZWRnZWQKK2FjcXVpZXNjZQorYWNxdWlyZWQKK2Fjcm9zcworYWN0CithY3RzCithZGFoCithZGFtCithZGJlZWwKK2FkZAorYWRkZWQKK2FkbWFoCithZG1pbmlzdHJhdGlvbgorYWR1bGxhbWl0ZQorYWR2YW5jZWQKK2FkdmlzZXIKK2FmYXIKK2FmZmVjdGVkCithZmZsaWN0ZWQKK2FmZmxpY3Rpb24KK2FmcmFpZAorYWZ0ZXIKK2FmdGVyd2FyZAorYWZ0ZXJ3YXJkcworYWdhaW4KK2FnYWluc3QKK2FnZQorYWdlcworYWdpbGUKK2FncmVlCithZ3JlZWQKK2FodXonemF0aAorYWkKK2FpZAorYWlyCitha2FuCithbCdsb24tYmFjdXRoCithbGlnaHRlZAorYWxpdmUKK2FsbAorYWxsZWdpYW5jZQorYWxsaWFuY2VzCithbGxpZXMKK2FsbG93CithbGxvd2FuY2UKK2FsbWlnaHR5CithbG1vJ2RhZAorYWxtb25kCithbG1vbmRzCithbG9uZQorYWxvbmcKK2Fsb3VkCithbHJlYWR5CithbHNvCithbHRhcgorYWx0ZXIKK2FsdGVyaW5nCithbHRob3VnaAorYWx0b2dldGhlcgorYWx2YWgKK2FsdmFuCithbQorYW0nYWxlaworYW0ncmFwaGVsCithbWFsJ2VraXRlcworYW1hemVtZW50CithbWVyaWNhCithbW1vbml0ZXMKK2Ftb25nCithbW9uZ3N0CithbW9yaXRlCithbW9yaXRlcworYW1vdW50CithbgorYW4nYW1pbQorYW5haAorYW5kCithbmVyCithbmdlbAorYW5nZWxzCithbmdlcgorYW5ncnkKK2FuaW1hbAorYW5pbWFscworYW5uaWhpbGF0aW9uCithbm9pbnRlZAorYW5vdGhlcgorYW5vdGhlcidzCithbnN3ZXIKK2Fuc3dlcmVkCithbnkKK2FueXRoaW5nCithbnl3aGVyZQorYXBhcnQKK2FwcGVhbGVkCithcHBlYWxpbmcKK2FwcGVhcgorYXBwZWFyZWQKK2FwcGVhc2UKK2FwcG9pbnQKK2FwcG9pbnRlZAorYXBwcm9hY2hlZAorYXBwcm9hY2hpbmcKK2FwcHJvcHJpYXRpb25zCithcHJvbnMKK2FyJ2FyYXQKK2FyJ2lvY2gKK2FyJ3ZhZGl0ZXMKK2FyYW0KK2FyYW1lYW4KK2FyYW4KK2FyYml0cmFyeQorYXJjaGVycworYXJkCithcmUKK2FyZSdsaQorYXJlYQorYXJpc2UKK2FyaworYXJraXRlcworYXJtZWQKK2FybWllcworYXJtcworYXJteQorYXJvJ2RpCithcm9zZQorYXJvdW5kCithcnBhY2gnc2hhZAorYXJyYXllZAorYXJyaXZlCithcnQKK2FzCithcydlbmF0aAorYXNjZW5kaW5nCithc2gna2VuYXoKK2FzaCd0ZXJvdGgta2FybmEnaW0KK2FzaGFtZWQKK2FzaGJlbAorYXNoZXIKK2FzaGVyJ3MKK2FzaGVzCithc2lkZQorYXNrCithc2tlZAorYXNrcworYXNsZWVwCithc3MKK2FzcydzCithc3NlbWJsZQorYXNzZW1ibGVkCithc3NlbnQKK2Fzc2VzCithc3NodSdyaW0KK2Fzc2h1cgorYXNzdW1lCithc3N1cmVkCithc3N5cmlhCithdAorYXRhZAorYXRlCithdHRhY2sKK2F0dGFja2VkCithdHRhaW5lZAorYXR0ZW1wdHMKK2F0dGVuZAorYXR0ZW5kZWQKK2F0dGVudGlvbgorYXV0aG9yaXR5CithdmVuZ2VkCithdml0aAorYXdheQorYXdlc29tZQorYXdva2UKK2JhJ2FsLWhhJ25hbgorYmEnYmVsCitiYWNrCitiYWNrd2FyZAorYmFkCitiYWRlCitiYWdzCitiYWtlZAorYmFrZXIKK2JhbG0KK2JhbmsKK2JhbmtzCitiYXJiYXJvdXMKK2JhcnJlbgorYmFzJ2VtYXRoCitiYXNrZXQKK2Jhc2tldHMKK2JhdHRsZQorYmRlbGxpdW0KK2JlCitiZSdvcgorYmUtZSdyaQorYmVhcgorYmVhcmluZworYmVhcnMKK2JlYXN0CitiZWFzdHMKK2JlYXV0aWZ1bAorYmVjYW1lCitiZWNhdXNlCitiZWNoZXIKK2JlY29tZQorYmVjb21lcworYmVkCitiZWRhZAorYmVlbgorYmVlci1sYSdoYWktcm9pCitiZWVyLXNoZWJhCitiZWZhbGwKK2JlZmFsbGVuCitiZWZhbGxzCitiZWZvcmUKK2JlZworYmVnYW4KK2JlZ2lubmluZworYmVndWlsZWQKK2JlZ3VuCitiZWhlbGQKK2JlaGluZAorYmVob2xkCitiZWluZworYmVsYQorYmVsaWV2ZQorYmVsaWV2ZWQKK2JlbGx5CitiZWxvbmcKK2JlbG9uZ2luZworYmVsb25ncworYmVsb3cKK2Jlbi1hbW1pCitiZW4tbyduaQorYmVuZWF0aAorYmVuZWZpdHMKK2JlbmphbWluCitiZW5qYW1pbidzCitiZXJhCitiZXJlYXZlZAorYmVyZWQKK2JlcmVmdAorYmVyaSdhaAorYmVzaWRlCitiZXNpZGVzCitiZXNvdWdodAorYmVzdAorYmV0aGVsCitiZXRobGVoZW0KK2JldGh1J2VsCitiZXR0ZXIKK2JldHdlZW4KK2JleW9uZAorYmlsaGFoCitiaWxoYW4KK2JpbmRpbmcKK2JpcmQKK2JpcmRzCitiaXJzaGEKK2JpcnRoCitiaXJ0aGRheQorYmlydGhyaWdodAorYml0ZXMKK2JpdHRlcgorYml0dW1lbgorYmxhY2sKK2JsYW1lCitibGFtZWxlc3MKK2JsZXNzCitibGVzc2VkCitibGVzc2VzCitibGVzc2luZworYmxlc3NpbmdzCitibGlnaHRlZAorYmxpbmRuZXNzCitibG9vZAorYmxvc3NvbXMKK2Jsb3QKK2Jsb3R0ZWQKK2Jsb3cKK2JvZGllcworYm9keQorYm9pbGluZworYm9uZHMKK2JvbmUKK2JvbmVzCitib29rCitib290aHMKK2JvcmRlcgorYm9yZQorYm9ybgorYm9ybmUKK2JvdGgKK2JvdWdoCitib3VnaHQKK2JvdW5kCitib3VuZGFyaWVzCitib3VudGllcworYm93Citib3dlZAorYm93aW5nCitib3dzaG90Citib3lzCitib3pyYWgKK2JyYWNlbGV0cworYnJhbmNoZXMKK2JyZWFjaAorYnJlYWQKK2JyZWFkdGgKK2JyZWFrCiticmVha2luZworYnJlYXN0cworYnJlYXRoCiticmVhdGhlZAorYnJlZAorYnJlZWQKK2JyZWVkaW5nCiticmV0aHJlbgorYnJpY2sKK2JyaWNrcworYnJpbXN0b25lCiticmluZworYnJpdGFpbgorYnJpdGlzaAorYnJva2VuCiticm9uemUKK2Jyb3RoZXIKK2Jyb3RoZXIncworYnJvdGhlci1pbi1sYXcKK2Jyb3RoZXJzCiticm91Z2h0Citicm93CiticnVpc2UKK2J1ZGRlZAorYnVpbGQKK2J1aWxkaW5nCitidWlsdAorYnVsbHMKK2J1bmRsZQorYnVuZGxlcworYnVyaWVkCitidXJuCitidXJuZWQKK2J1cm50CitidXJzdAorYnVyeQorYnVyeWluZworYnVzaGVzCitidXQKK2J1dGxlcgorYnV0bGVyc2hpcAorYnV5CitidXoKK2J5CitjYWluCitjYWtlCitjYWtlcworY2FsYWgKK2NhbGYKK2NhbGwKK2NhbGxlZAorY2FsbHMKK2NhbWUKK2NhbWVsCitjYW1lbCdzCitjYW1lbHMKK2NhbXAKK2NhbXBlZAorY2FuCitjYW5hYW4KK2NhbmFhbicKK2NhbmFhbml0ZQorY2FuYWFuaXRlcworY2FuYWFuaXRpc2gKK2NhbmRpZAorY2Fubm90CitjYXBoJ3RvcmltCitjYXB0YWluCitjYXB0aXZlCitjYXB0aXZlcworY2FwdHVyZWQKK2NhcmF2YW4KK2NhcmNhc3NlcworY2FyZQorY2FyZWZ1bGx5CitjYXJtaQorY2FycmllZAorY2FycnkKK2Nhc2VzCitjYXNsdSdoaW0KK2Nhc3QKK2NhdHRsZQorY2F1Z2h0CitjYXVzZQorY2F1c2VkCitjYXVzZXMKK2NhdmUKK2NlYXNlCitjZWFzZWQKK2NlcnRhaW4KK2NoYWluCitjaGFsZGUnYW5zCitjaGFtYmVyCitjaGFuZ2UKK2NoYW5nZWQKK2NoYXJhY3RlcgorY2hhcmdlCitjaGFyZ2VkCitjaGFyZ2luZworY2hhcmlvdAorY2hhcmlvdHMKK2NoYXJ0ZXJzCitjaGVhdAorY2hlYXRlZAorY2hlZC1vci1sYW8nbWVyCitjaGVyYW4KK2NoZXJ1YmltCitjaGVzZWQKK2NoZXppYgorY2hpZWYKK2NoaWVmcworY2hpbGQKK2NoaWxkYmVhcmluZworY2hpbGRsZXNzCitjaGlsZHJlbgorY2hpbGRyZW4ncworY2hvaWNlCitjaG9pY2VzdAorY2hvc2UKK2Nob3NlbgorY2lyY3VtY2lzZWQKK2NpcmN1bXN0YW5jZXMKK2NpdGllcworY2l0aXplbnMKK2NpdHkKK2NpdmlsCitjaXZpbGl6ZWQKK2NsYW5zCitjbGVhbgorY2xlYXIKK2NsZWF2ZXMKK2Nsb3NlCitjbG9zZWQKK2Nsb3RoZWQKK2Nsb3RoZXMKK2Nsb3RoaW5nCitjbG91ZAorY2xvdWRzCitjbHVzdGVycworY29hc3RsYW5kCitjb2FzdHMKK2NvZmZpbgorY29sZAorY29sb25pZXMKK2NvbG9uaWVzOgorY29sdAorY29sdHMKK2NvbWJpbmVkCitjb21lCitjb21lbHkKK2NvbWVzCitjb21mb3J0Citjb21mb3J0ZWQKK2NvbWZvcnRzCitjb21pbmcKK2NvbW1hbmQKK2NvbW1hbmRlZAorY29tbWFuZGVyCitjb21tYW5kbWVudHMKK2NvbW1lcmNlCitjb21taXQKK2NvbW1pdHRlZAorY29tbW9uCitjb21wYW5pZXMKK2NvbXBhbnkKK2NvbXBsYWluZWQKK2NvbXBsZXRlCitjb21wbGV0ZWQKK2NvbXBsaWFuY2UKK2NvbmNlYWwKK2NvbmNlaXZlZAorY29uY2VybgorY29uY2VybmluZworY29uY2x1ZGUKK2NvbmN1YmluZQorY29uY3ViaW5lcworY29uZGl0aW9uCitjb25kaXRpb25zCitjb25maW5lZAorY29uZnVzZQorY29uZnVzZWQKK2NvbmdyZXNzCitjb25qdXJlZAorY29ubmVjdGVkCitjb25uZWN0aW9uCitjb25uZWN0aW9ucworY29uc2VudAorY29uc2VudDoKK2NvbnNwaXJlZAorY29uc3RpdHV0aW9uCitjb25zdHJhaW5lZAorY29uc3RyYWlucworY29uc3VtZQorY29uc3VtZWQKK2NvbnRlbXB0Citjb250ZW5kZWQKK2NvbnRpbnVhbGx5Citjb250aW51ZQorY29udGludWVkCitjb250cmFjdAorY29udHJvbAorY29udHJvbGxpbmcKK2NvbnZ1bHNpb25zCitjb29sCitjb3JkCitjb3JyZXNwb25kZW5jZQorY29ycnVwdAorY29ycnVwdGVkCitjb3N0bHkKK2NvdWNoCitjb3VjaGVkCitjb3VjaGVzCitjb3VjaGluZworY291bGQKK2NvdW5jaWwKK2NvdW50Citjb3VudGVkCitjb3VudGVuYW5jZQorY291bnRyeQorY291cnNlCitjb3ZlbmFudAorY292ZXIKK2NvdmVyZWQKK2NvdmVyaW5nCitjb3dzCitjcmVhdGVkCitjcmVhdGlvbgorY3JlYXRvcgorY3JlYXR1cmUKK2NyZWF0dXJlcworY3JlZXBpbmcKK2NyZWVwcworY3JpZWQKK2Nyb3NzZWQKK2Nyb3NzaW5nCitjcm91Y2hpbmcKK2Nyb3duCitjcnVlbAorY3J1ZWx0eQorY3J5CitjcnlpbmcKK2N1Yml0CitjdWJpdHMKK2N1cAorY3VyZHMKK2N1cnJlbnQKK2N1cnNlCitjdXJzZWQKK2N1cnNlcworY3VzaAorY3VzdG9keQorY3V0CitjdXR0aW5nCitkYWludGllcworZGFtYXNjdXMKK2RhbgorZGFuZ2VycworZGFyZXMKK2RhcmsKK2RhcmtuZXNzCitkYXVnaHRlcgorZGF1Z2h0ZXItaW4tbGF3CitkYXVnaHRlcnMKK2Rhd25lZAorZGF5CitkYXlzCitkZWFkCitkZWFsCitkZWFsdAorZGVhdGgKK2RlYidvcmFoCitkZWNlaXRmdWxseQorZGVjZWl2ZWQKK2RlY2VudAorZGVjaWRlCitkZWNrcworZGVjbGFyYXRpb24KK2RlY2xhcmUKK2RlY2xhcmluZworZGVkYW4KK2RlZWQKK2RlZXAKK2RlZmVhdAorZGVmZWF0ZWQKK2RlZmlsZWQKK2RlZmluZQorZGVsYXkKK2RlbGF5ZWQKK2RlbGlnaHQKK2RlbGl2ZXIKK2RlbGl2ZXJlZAorZGVsaXZlcnkKK2RlbmllZAorZGVub3VuY2VzCitkZXBhcnQKK2RlcGFydGVkCitkZXBhcnRpbmcKK2RlcGVuZGVudAorZGVwZW5kZW50cworZGVwb3NpdG9yeQorZGVwcml2aW5nCitkZXJpdmluZworZGVzY2VuZGFudHMKK2Rlc2NlbmRpbmcKK2Rlc2lnbgorZGVzaXJlCitkZXNpcmVkCitkZXNvbGF0ZQorZGVzb2xhdGlvbgorZGVzcGlzZWQKK2Rlc3BvdGlzbQorZGVzdHJveQorZGVzdHJveWVkCitkZXN0cm95cworZGVzdHJ1Y3Rpb24KK2Rlc3RydWN0aXZlCitkZXRlcm1pbmVkCitkZXZvdXJlZAorZGV2b3VyaW5nCitkZXcKK2RpY3RhdGUKK2RpZAorZGlkc3QKK2RpZQorZGllZAorZGllcworZGlrbGFoCitkaW0KK2RpbidoYWJhaAorZGluYWgKK2RpbmFoJ3MKK2RpbmUKK2RpcHBlZAorZGlyZWN0CitkaXJlY3Rpb24KK2Rpc2FzdGVyCitkaXNhdm93CitkaXNjcmVldAorZGlzZ3JhY2UKK2Rpc2hhbgorZGlzaG9uCitkaXNtYXllZAorZGlzcGxlYXNlZAorZGlzcGxlYXNpbmcKK2Rpc3Bvc2VkCitkaXNzb2x1dGlvbnMKK2Rpc3NvbHZlCitkaXNzb2x2ZWQKK2Rpc3RhbmNlCitkaXN0YW50CitkaXN0cmVzcworZGlzdHJlc3NlZAorZGlzdHJpY3RzCitkaXZpZGUKK2RpdmlkZWQKK2RpdmlkaW5nCitkaXZpbmF0aW9uCitkaXZpbmUKK2RpdmluZXMKK2RvCitkbydkYW5pbQorZG9lcgorZG9lcworZG9pbmcKK2RvbWVzdGljCitkb21pbmlvbgorZG9uZQorZG9vcgorZG90aGFuCitkb3VibGUKK2RvdWJsaW5nCitkb3VidAorZG92ZQorZG93bgorZG93bmNhc3QKK2Rvd3J5CitkcmFuaworZHJhdworZHJhd24KK2RyZWFkCitkcmVhbQorZHJlYW1lZAorZHJlYW1lcgorZHJlYW1zCitkcmV3CitkcmllZAorZHJpbmsKK2RyaW5raW5nCitkcmlua3MKK2RyaXZlbgorZHJvdmUKK2Ryb3ZlcworZHJ1bmsKK2RyeQorZHVnCitkdW1haAorZHVuZ2VvbgorZHVyaW5nCitkdXN0CitkdXR5Citkd2VsbAorZHdlbGxpbmcKK2R3ZWx0CitlJ2RvbWl0ZXMKK2UncGhyYWltCitlJ3BocmFpbSdzCitlYWNoCitlYXJseQorZWFycworZWFydGgKK2Vhc2lseQorZWFzdAorZWFzdHdhcmQKK2VhdAorZWF0ZW4KK2VhdGluZworZWJhbAorZWJlcgorZWRlbgorZWRlcgorZWRvbQorZWZmZWN0CitlZ3lwdAorZWd5cHRpYW4KK2VneXB0aWFuJ3MKK2VneXB0aWFucworZWhpCitlaWdodAorZWlnaHRlZW4KK2VpZ2h0eQorZWlnaHR5LXNldmVuCitlaWdodHktc2l4CitlaWdodHktdHdvCitlaXRoZXIKK2VsJ2lwaGF6CitlbC1iZXRoZWwKK2VsLWVsJ29oZS1pc3JhZWwKK2VsLXBhcmFuCitlbGFoCitlbGFtCitlbGRhJ2FoCitlbGRlcgorZWxkZXJzCitlbGRlc3QKK2VsZWN0ZWQKK2VsZXZlbgorZWxpJ3NoYWgKK2VsaWUnemVyCitlbGxhJ3NhcgorZWxvbgorZWxzZQorZW1iYWxtCitlbWJhbG1lZAorZW1iYWxtaW5nCitlbWJyYWNlCitlbWJyYWNlZAorZW1pZ3JhdGlvbgorZW1pbQorZW1wdGllZAorZW1wdHkKK2VtcHR5LWhhbmRlZAorZW5haW0KK2VuY2FtcGVkCitlbmNhbXBtZW50cworZW5jb3VyYWdlCitlbmQKK2VuZGVhdm9yZWQKK2VuZGVkCitlbmRpbmcKK2VuZG93ZWQKK2VuZHMKK2VuZW1pZXMKK2VuZW15CitlbmdsaXNoCitlbmxhcmdlCitlbmxhcmdpbmcKK2VubWlzaCdwYXQKK2VubWl0eQorZW5vY2gKK2Vub3NoCitlbm91Z2gKK2VudGVyCitlbnRlcmVkCitlbnRpdGxlCitlbnRyYW5jZQorZW50cmVhdAorZW52aWVkCitlcGhhaAorZXBoZXIKK2VwaHJhdGgKK2VwaHJvbgorZXF1YWwKK2VyCitlcmVjaAorZXJlY3RlZAorZXJpCitlcnJhbmQKK2VzYXUKK2VzYXUncworZXNjYXBlCitlc2NhcGVkCitlc2VrCitlc2hiYW4KK2VzaGNvbAorZXN0YWJsaXNoCitlc3RhYmxpc2hlZAorZXN0YWJsaXNoaW5nCitlc3RhYmxpc2htZW50CitldGVybmFsCitldXBocmEndGVzCitldXBocmF0ZXMKK2V2ZQorZXZlbgorZXZlbmluZworZXZlbnRzCitldmVyCitldmVybGFzdGluZworZXZlcnkKK2V2ZXJ5dGhpbmcKK2V2ZXJ5d2hlcmUKK2V2aWwKK2V2aWxzCitldmluY2VzCitld2UKK2V3ZXMKK2V4YW1wbGUKK2V4Y2VlZGluZ2x5CitleGNlcHQKK2V4Y2hhbmdlCitleGNpdGVkCitleGVjdXRpb25lcnMKK2V4ZXJjaXNlCitleHBlcmllbmNlCitleHBlcnQKK2V4cGxhaW4KK2V4cG9zZWQKK2V4cG9zaW5nCitleHRlbmQKK2V4dGVuZGVkCitleWVzCitlemJvbgorZXplcgorZmFjZQorZmFjZXMKK2ZhY3RzCitmYWlsZWQKK2ZhaW50ZWQKK2ZhaXIKK2ZhaXRoZnVsbmVzcworZmFsbAorZmFsbGVuCitmYWxscworZmFsc2VseQorZmFtaWxpZXMKK2ZhbWlseQorZmFtaW5lCitmYW1pc2hlZAorZmFyCitmYXJlCitmYXJlZAorZmFyZXdlbGwKK2Zhc3QKK2ZhdAorZmF0aGVyCitmYXRoZXIncworZmF0aGVyLWluLWxhdworZmF0aGVycworZmF0aWd1aW5nCitmYXRuZXNzCitmYXVsdHMKK2Zhdm9yCitmYXZvcmFibGUKK2Zhd25zCitmZWFyCitmZWFyZWQKK2ZlYXN0CitmZWQKK2ZlZWJsZXIKK2ZlZWQKK2ZlZWwKK2ZlZXQKK2ZlbGwKK2ZlbGxvdworZmVsdAorZmVtYWxlCitmZXN0YWwKK2ZldGNoCitmZXcKK2ZpZWxkCitmaWVsZHMKK2ZpZXJjZQorZmllcmNlbHkKK2ZpZnRlZW4KK2ZpZnRoCitmaWZ0aHMKK2ZpZnR5CitmaWcKK2ZpbGwKK2ZpbGxlZAorZmluZAorZmluZHMKK2ZpbmUKK2ZpbmlzaAorZmluaXNoZWQKK2ZpcmUKK2Zpcm0KK2Zpcm1hbWVudAorZmlybW5lc3MKK2ZpcnN0CitmaXJzdC0KK2ZpcnN0LWJvcm4KK2ZpcnN0bGluZ3MKK2Zpc2gKK2ZpdAorZml2ZQorZml4ZWQKK2ZsYW1pbmcKK2ZsZWQKK2ZsZWUKK2ZsZWVpbmcKK2ZsZXNoCitmbG9hdGVkCitmbG9jaworZmxvY2tzCitmbG9vZAorZmxvb3IKK2Zsb3dlZAorZmxvd3MKK2ZseQorZm9hbAorZm9sbG93Citmb2xsb3dlZAorZm9sbG93aW5nCitmb2xsb3dzCitmb2xseQorZm9uZGxpbmcKK2Zvb2QKK2Zvb2xpc2hseQorZm9vdAorZm9yCitmb3JiaWRkZW4KK2ZvcmNlCitmb3JjZWQKK2ZvcmNlcworZm9yZAorZm9yZWlnbgorZm9yZWlnbmVyCitmb3JlaWduZXJzCitmb3JlbW9zdAorZm9yZXNraW4KK2ZvcmVza2lucworZm9yZ2VyCitmb3JnZXQKK2ZvcmdldHMKK2ZvcmdpdmUKK2ZvcmdvdAorZm9yZ290dGVuCitmb3JtCitmb3JtZWQKK2Zvcm1lcgorZm9ybWVybHkKK2Zvcm1pZGFibGUKK2Zvcm1zCitmb3JzYWtlbgorZm9ydGgKK2ZvcnR1bmUKK2ZvcnR1bmVzCitmb3J0eQorZm9ydHktZml2ZQorZm9ydHktc2V2ZW4KK2ZvdW5kCitmb3VuZGF0aW9uCitmb3VudGFpbnMKK2ZvdXIKK2ZvdXJ0ZWVuCitmb3VydGVlbnRoCitmb3VydGgKK2ZyYWlsCitmcmVlCitmcmVlbHkKK2ZyZXNoCitmcmVzaGx5CitmcmllbmQKK2ZyaWVuZGx5CitmcmllbmRzCitmcm8KK2Zyb20KK2Zyb250Citmcm9udGllcnMKK2ZydWl0CitmcnVpdGZ1bAorZnJ1aXRzCitmdWdpdGl2ZQorZnVsZmlsCitmdWxmaWxsZWQKK2Z1bGwKK2Z1bmRhbWVudGFsbHkKK2Z1cm5hY2UKK2Z1cnkKK2Z1dHVyZQorZ2FkCitnYWhhbQorZ2FpbmVkCitnYWxlZWQKK2dhbWUKK2dhcmRlbgorZ2FybWVudAorZ2FybWVudHMKK2dhdGFtCitnYXRlCitnYXRoZXIKK2dhdGhlcmVkCitnYXVudAorZ2F2ZQorZ2F2ZXN0CitnYXphCitnYXplZAorZ2VuZWFsb2dpZXMKK2dlbmVyYWwKK2dlbmVyYXRpb24KK2dlbmVyYXRpb25zCitnZXJhCitnZXJhcgorZ2Vyc2hvbgorZ2V0CitnZXRoZXIKK2dpZnQKK2dpZnRzCitnaWhvbgorZ2lsZWFkCitnaXInZ2FzaGl0ZXMKK2dpdmUKK2dpdmVuCitnaXZlc3QKK2dpdmluZworZ28KK2dvYXQKK2dvYXRzCitnb2QKK2dvZCdzCitnb2RzCitnb2VzCitnb2knaW0KK2dvaW5nCitnb2xkCitnb21lcgorZ29tb3IncmFoCitnb25lCitnb29kCitnb29kLWxvb2tpbmcKK2dvb2RzCitnb3BoZXIKK2dvc2hlbgorZ290Citnb3R0ZW4KK2dvdmVybmVkCitnb3Zlcm5tZW50Citnb3Zlcm5tZW50cworZ292ZXJubWVudHM6Citnb3Zlcm5vcgorZ292ZXJub3JzCitncmFjaW91cworZ3JhY2lvdXNseQorZ3JhaW4KK2dyYW5kY2hpbGRyZW4KK2dyYW5kc29uCitncmFudAorZ3JhbnRlZAorZ3JhcGVzCitncmFzcworZ3JhdmUKK2dyYXkKK2dyZWF0CitncmVhdGVyCitncmVhdGx5CitncmVlbgorZ3JldworZ3JpZXZlZAorZ3JpZXZvdXMKK2dyb3BpbmcKK2dyb3VuZAorZ3JvdworZ3Jvd2luZworZ3Jvd24KK2dyb3dzCitndWFyZAorZ3VhcmRzCitndWlsZQorZ3VpbHQKK2d1aWx0eQorZ3VtCitndW5pCitoYSdtYXRoaXRlcworaGFkCitoYWRhZAoraGFkYXIKK2hhZG9yJ2FtCitoYWdhcgoraGFnZ2kKK2hhaXJzCitoYWlyeQoraGFsZgoraGFsbG93ZWQKK2hhbQoraGFtb3IKK2hhbW9yJ3MKK2hhbXN0cmluZworaGFtdWwKK2hhbmQKK2hhbmRzCitoYW5kc29tZQoraGFuZworaGFuZ2VkCitoYW5vY2gKK2hhcHBlbmVkCitoYXBwaW5lc3MKK2hhcHB5CitoYXJhbgoraGFyYXNzCitoYXJhc3NlZAoraGFyZAoraGFyZHNoaXAKK2hhcmxvdAoraGFybG90cnkKK2hhcm0KK2hhcnNobHkKK2hhcnZlc3QKK2hhcnZlc3RzCitoYXMKK2hhc3QKK2hhc3RlCitoYXN0ZW5lZAoraGFzdGlseQoraGF0ZQoraGF0ZWQKK2hhdGgKK2hhdidpbGFoCitoYXZlCitoYXZlbgoraGF2aWxhaAoraGF2aW5nCitoYXonYXpvbi10YSdtYXIKK2hhemFybWEndmV0aAoraGF6bworaGUKK2hlLWFzc2VzCitoZS1nb2F0cworaGVhZAoraGVhZHMKK2hlYWxlZAoraGVhcAoraGVhcgoraGVhcmQKK2hlYXJpbmcKK2hlYXJrZW4KK2hlYXJrZW5lZAoraGVhcnMKK2hlYXJ0CitoZWFydHMKK2hlYXQKK2hlYXZlbgoraGVhdmVucworaGViZXIKK2hlYnJldworaGVicmV3cworaGVicm9uCitoZWVkCitoZWVkZWQKK2hlZWwKK2hlZWxzCitoZWlmZXIKK2hlaWdodAoraGVpcgoraGVsZAoraGVscAoraGVscGVyCitoZW1hbgoraGVtZGFuCitoZXIKK2hlcmIKK2hlcmQKK2hlcmRzCitoZXJkc21lbgoraGVyZQoraGVyc2VsZgoraGV0aAoraGV3ZWQKK2hlenJvbgoraGlkCitoaWRkZW4KK2hpZGUKK2hpZ2gKK2hpbGwKK2hpbGxzCitoaW0KK2hpbXNlbGYKK2hpbmQKK2hpbmRlcgoraGlwCitoaXJhaAoraGlyZQoraGlyZWQKK2hpcworaGlzdG9yeQoraGl0aGVyCitoaXR0aXRlCitoaXR0aXRlcworaGl2aXRlCitoaXZpdGVzCitob2JhaAoraG9sZAoraG9sbG93Citob21lCitob25lc3QKK2hvbmVzdHkKK2hvbmV5Citob25vcgoraG9ub3JlZAoraG9yaQoraG9yaXRlCitob3JpdGVzCitob3JucworaG9yc2UncworaG9yc2VtZW4KK2hvcnNlcworaG9zdAoraG90Citob3RseQoraG91c2UKK2hvdXNlaG9sZAoraG91c2Vob2xkcworaG91c2VzCitob3cKK2h1bAoraHVtYW4KK2h1bWFuZQoraHVtYmxlCitodW1ibGVkCitodW5kcmVkCitodW5kcmVkZm9sZAoraHVuZHJlZHRoCitodW50CitodW50ZWQKK2h1bnRlcgoraHVudGluZworaHVwcGltCitodXNiYW5kCitodXNoYW0KK2h1c2hpbQoraQoraWYKK2lsbAoraWxsLXRyZWF0CitpbWFnZQoraW1hZ2luYXRpb24KK2ltbWVkaWF0ZQoraW1uYWgKK2ltcGVsCitpbXBvcnRhbmNlCitpbXBvc2luZworaW1wb3NzaWJsZQoraW4KK2luYXNtdWNoCitpbmNhcGFibGUKK2luY2x1ZGluZworaW5jcmVhc2VkCitpbmRlZWQKK2luZGVwZW5kZW50CitpbmRpYW4KK2luZGlnbmFudAoraW5lc3RpbWFibGUKK2luZXZpdGFibHkKK2luaGFiaXRhbnRzCitpbmhlcml0YW5jZQoraW5pcXVpdHkKK2luanVyaWVzCitpbmp1cnkKK2lubm9jZW5jZQoraW5ub2NlbnQKK2lucXVpcmUKK2lucXVpcmVkCitpbnNpZGUKK2luc3RlYWQKK2luc3RpdHV0ZQoraW5zdGl0dXRlZAoraW5zdHJ1Y3RlZAoraW5zdHJ1Y3RpbmcKK2luc3RydW1lbnQKK2luc3RydW1lbnRzCitpbnN1bHQKK2luc3VycmVjdGlvbnMKK2ludGVncml0eQoraW50ZW5kZWQKK2ludGVudGlvbnMKK2ludGVycHJldAoraW50ZXJwcmV0YXRpb24KK2ludGVycHJldGF0aW9ucworaW50ZXJwcmV0ZWQKK2ludGVycHJldGVyCitpbnRlcnJ1cHQKK2ludG8KK2ludHJvZHVjaW5nCitpbnZhcmlhYmx5CitpbnZhc2lvbgoraW52YXNpb25zCitpbnZlc3RlZAoraW9iCitpcmFkCitpcmFtCitpcm9uCitpcworaXMnc2FjaGFyCitpc2FhYworaXNhYWMncworaXNjYWgKK2lzaCdtYWVsCitpc2gnbWFlbCdzCitpc2gnbWFlbGl0ZXMKK2lzaGJhaworaXNodmFoCitpc2h2aQoraXNyYWVsCitpc3JhZWwncworaXNyYWVsaXRlcworaXQKK2l0aHJhbgoraXRzCitpdHNlbGYKK2phYmFsCitqYWJib2sKK2phY2hpbgoramFjb2IKK2phY29iJ3MKK2phaCdsZWVsCitqYWh6ZWVsCitqYWxhbQoramFtaW4KK2phcGhldGgKK2phcgoramFyZWQKK2phdmFuCitqZSdnYXItc2FoYWR1J3RoYQoramUndXNoCitqZWFsb3VzCitqZWIndXNpdGVzCitqZW11J2VsCitqZXJhaAoramVzdGluZworamV0aGV0aAoramV0dXIKK2pld2VscnkKK2plemVyCitqaWRsYXBoCitqb2JhYgoram9pbmVkCitqb2ludAoram9rc2hhbgoram9rdGFuCitqb3JkYW4KK2pvc2VwaAoram9zZXBoJ3MKK2pvdXJuZXkKK2pvdXJuZXllZAoranViYWwKK2p1ZGFoCitqdWRhaCdzCitqdWRnZQoranVkZ2VkCitqdWRnZXMKK2p1ZGdtZW50CitqdWRpY2lhcnkKK2p1ZGl0aAoranVyaXNkaWN0aW9uCitqdXJ5OgoranVzdAoranVzdGljZQora2FkJ21vbml0ZXMKK2thZGVzaAora2VkJ2VtYWgKK2tlZGFyCitrZWVwCitrZWVwZXIKK2tlZXBlcnMKK2tlbXUnZWwKK2tlbidpdGVzCitrZW4naXp6aXRlcwora2VuYW4KK2tlbmF6CitrZXB0CitrZXR1J3JhaAora2lkCitraWRzCitraWxsCitraWxsZWQKK2tpbmQKK2tpbmRsZWQKK2tpbmRuZXNzCitraW5kcmVkCitraW5kcwora2luZwora2luZydzCitraW5nZG9tCitraW5ncwora2luc21hbgora2luc21lbgora2lyJ2lhdGgtYXInYmEKK2tpc3MKK2tpc3NlZAora2l0dGltCitrbmVhZAora25lZQora25lZWwKK2tuZWVzCitrbmV3CitrbmlmZQora25vdwora25vd2luZwora25vd2xlZGdlCitrbm93bgora25vd3MKK2tvaGF0aAora29yYWgKK2xhYmFuCitsYWJhbidzCitsYWJvcgorbGFjaworbGFja2luZworbGFkCitsYWQncworbGFkZGVyCitsYWRzCitsYWlkCitsYWluCitsYW1iCitsYW1icworbGFtZWNoCitsYW1lbnRhdGlvbgorbGFtZW50ZWQKK2xhbmQKK2xhbmRzCitsYW5ndWFnZQorbGFuZ3VhZ2VzCitsYW5ndWlzaGVkCitsYXJnZQorbGFzaGEKK2xhc3QKK2xhdGVyCitsYXVnaAorbGF1Z2hlZAorbGF1Z2h0ZXIKK2xhd3MKK2xheQorbGF5aW5nCitsZS11bSdtaW0KK2xlYWQKK2xlYWYKK2xlYWgKK2xlYWgncworbGVhbgorbGVhcAorbGVhcGVkCitsZWFybgorbGVhcm5lZAorbGVhc3QKK2xlYXZlCitsZWF2ZXMKK2xlZAorbGVmdAorbGVnaXNsYXRlCitsZWdpc2xhdGlvbjoKK2xlZ2lzbGF0aXZlCitsZWdpc2xhdHVyZQorbGVnaXNsYXR1cmVzCitsZWhhJ2JpbQorbGVuZ3RoCitsZW50aWxzCitsZXNzZXIKK2xlc3QKK2xldAorbGV0dSdzaGltCitsZXZleQorbGV2aQorbGliZXJ0eQorbGllCitsaWVzCitsaWZlCitsaWZlYmxvb2QKK2xpZnQKK2xpZnRlZAorbGlnaHQKK2xpZ2h0cworbGlrZQorbGlrZWx5CitsaWtlbmVzcworbGlrZXdpc2UKK2xpbXBpbmcKK2xpbmVuCitsaW5nZXJlZAorbGlvbgorbGlvbidzCitsaW9uZXNzCitsaXN0ZW4KK2xpc3RlbmVkCitsaXN0ZW5pbmcKK2xpdHRsZQorbGl2ZQorbGl2ZWQKK2xpdmVzCitsaXZlc3RvY2sKK2xpdmluZworbG8KK2xvYWQKK2xvYWRlZAorbG9kZ2UKK2xvZGdlZAorbG9kZ2luZworbG9pbnMKK2xvbmcKK2xvbmdlZAorbG9uZ2VyCitsb25ncworbG9vaworbG9va2VkCitsb29raW5nCitsb29zZQorbG9yZAorbG9yZCdzCitsb3JkcworbG9zcworbG90Citsb3QncworbG90YW4KK2xvdGFuJ3MKK2xvdWQKK2xvdmUKK2xvdmVkCitsb3ZlbHkKK2xvdmVzCitsb3dlcgorbG93ZXJlZAorbG95YWxseQorbHVkCitsdWRpbQorbHV6CitseWluZworbHlyZQorbWEnYWNhaAorbWEnaGFsYXRoCittYS1oYWwnYWxlbAorbWFjaC0KK21hY2gtcGUnbGFoCittYWNoaXIKK21hZGFpCittYWRlCittYWcnZGllbAorbWFnaWNpYW5zCittYWduYW5pbWl0eQorbWFnb2cKK21haGFuYSdpbQorbWFpZAorbWFpZGVuCittYWlkcworbWFpZHNlcnZhbnRzCittYWtlCittYWtlcgorbWFraW5nCittYWwnY2hpLWVsCittYWxlCittYWxlcworbWFtcmUKK21hbgorbWFuJ2FoYXRoCittYW4ncworbWFuYXMnc2VoCittYW5hcydzZWgncworbWFuZHJha2VzCittYW5raW5kCittYW5seQorbWFubmVyCittYW50bGUKK21hbnkKK21hcmsKK21hcmtlZAorbWFycmlhZ2UKK21hcnJpYWdlcworbWFycmllZAorbWFycmllcworbWFycnkKK21hc2gKK21hc3JlJ2thaAorbWFzc2EKK21hc3RlcgorbWFzdGVyJ3MKK21hdGUKK21hdGluZworbWF0cmVkCittYXR0ZXIKK21heQorbWUKK21lJ3phaGFiCittZS1odSdqYS1lbAorbWUtdGh1J3NoYS1lbAorbWVhbAorbWVhbgorbWVhbmluZworbWVhbnMKK21lYW50CittZWFudGltZQorbWVhbndoaWxlCittZWFzdXJlCittZWFzdXJlZAorbWVhc3VyZXMKK21lZGFuCittZWRpdGF0ZQorbWVldAorbWVldHMKK21laGV0J2FiZWwKK21lbC1jaGl6J2VkZWsKK21lbWJlcnMKK21lbgorbWVuJ3MKK21lbmQKK21lbmRlZAorbWVuc2VydmFudHMKK21lbnRpb24KK21lcmFyJ2kKK21lcmNlbmFyaWVzCittZXJjaGFudHMKK21lcmNpZnVsCittZXJjaWxlc3MKK21lcmN5CittZXJyeQorbWVzaGEKK21lc2hlY2gKK21lc29wb3RhJ21pYQorbWVzc2FnZQorbWVzc2VuZ2VycworbWV0CittZXRodSdzZWxhaAorbWlic2FtCittaWJ6YXIKK21pZCdpYW4KK21pZCdpYW5pdGUKK21pZCdpYW5pdGVzCittaWRzdAorbWlkd2lmZQorbWlnaHQKK21pZ2h0aWVyCittaWdodGlseQorbWlnaHR5CittaWdyYXRlZAorbWlncmF0aW9uCittaWxjYWgKK21pbGNoCittaWxpdGFyeQorbWlsaworbWluZAorbWluZQorbWlydGgKK21pc2NhcnJpZWQKK21pc2htYQorbWlzdAorbWlzdHJlc3MKK21penBhaAorbWl6emFoCittb2FiCittb2FiaXRlcworbW9jaworbW9ja2luZworbW9uZXkKK21vbnN0ZXJzCittb250aAorbW9udGhzCittb29uCittb3JlCittb3JlaAorbW9yZW92ZXIKK21vcmknYWgKK21vcm5pbmcKK21vcnNlbAorbW9ydGFyCittb3N0Cittb3RoZXIKK21vdGhlcidzCittb3RoZXJzCittb3R0bGVkCittb3VudAorbW91bnRhaW4KK21vdW50YWlucworbW91cm4KK21vdXJuZWQKK21vdXJuaW5nCittb3V0aAorbW92ZWQKK21vdmVzCittb3ZpbmcKK211Y2gKK211bHRpcGxpZWQKK211bHRpcGx5CittdWx0aXR1ZGUKK211cHBpbQorbXVyZGVycworbXVzdAorbXV0dWFsbHkKK215CitteXJyaAorbXlzZWxmCituYSdhbWFoCituYSdhbWFuCituYWhhdGgKK25haG9yCituYWhvcidzCituYWtlZAorbmFrZWRuZXNzCituYW1lCituYW1lZAorbmFtZXMKK25hcGgndGFsaQorbmFwaC10dSdoaW0KK25hcGhpc2gKK25hdGlvbgorbmF0aW9ucworbmF0aXZlCituYXR1cmFsaXphdGlvbgorbmF0dXJlCituYXR1cmUncworbmVhcgorbmViYSdpb3RoCituZWNlc3NhcnkKK25lY2Vzc2l0eQorbmVjaworbmVlZAorbmVnZWIKK25lZ2xlY3RlZAorbmVpZ2hib3JpbmcKK25laXRoZXIKK25lcGhpbGltCituZXZlcgorbmV2ZXJ0aGVsZXNzCituZXcKK25leHQKK25pZ2h0CituaWdodHMKK25pbGUKK25pbXJvZAorbmluJ2V2ZWgKK25pbmUKK25pbmV0ZWVuCituaW5ldHkKK25pbmV0eS1maXZlCituaW5ldHktbmluZQorbm8KK25vYWgKK25vYWgncworbm9kCitub25lCitub29uCitub3IKK25vcnRoCitub3J0aHdhcmQKK25vc2UKK25vc3RyaWxzCitub3QKK25vdGhpbmcKK25vdworbnVtYmVyCitudW1iZXJlZAorbnVtYmVycworbnVyc2UKK251dHMKK28KK29haworb2Frcworb2F0aAorb2JhbAorb2JlZGllbmNlCitvYmVpc2FuY2UKK29iZXkKK29iZXllZAorb2JqZWN0CitvYnN0cnVjdGVkCitvYnN0cnVjdGluZworb2J0YWluCitvYnRhaW5lZAorb2NjYXNpb24KK29jY3VwYXRpb24KK29kaW91cworb2Rvcgorb2YKK29mZgorb2ZmZW5kZWQKK29mZmVuc2UKK29mZmVuc2VzOgorb2ZmZXIKK29mZmVyZWQKK29mZmVyaW5nCitvZmZlcmluZ3MKK29mZmljZQorb2ZmaWNlcgorb2ZmaWNlcnMKK29mZmljZXMKK29mZnNwcmluZworb2gKK29oYWQKK29ob2xpYmEnbWFoCitvaWwKK29sZAorb2xkZXIKK29sZGVzdAorb2xpdmUKK29tYXIKK29uCitvbmFtCitvbmFuCitvbmNlCitvbmUKK29uZXMKK29ubHkKK29ueXgKK29wZW4KK29wZW5lZAorb3BlcmF0aW9uCitvcGhpcgorb3BpbmlvbnMKK29wcG9zaW5nCitvcHBvc2l0ZQorb3BwcmVzc2VkCitvcHByZXNzaW9ucworb3IKK29yZGVyCitvcmRlcnMKK29yZ2FuaXppbmcKK29ybmFtZW50cworb3RoZXIKK290aGVycworb3VnaHQKK291cgorb3Vycworb3Vyc2VsdmVzCitvdXQKK291dGNyeQorb3V0c2lkZQorb3V0d2l0dGVkCitvdmVyCitvdmVyZHJpdmVuCitvdmVyc2Vlcgorb3ZlcnNlZXJzCitvdmVyc2lnaHQKK292ZXJ0YWtlCitvdmVydGhyZXcKK292ZXJ0aHJvdworb3ZlcnRvb2sKK293bgorb3ducworb3hlbgorcGFjZQorcGFkZGFuCitwYWRkYW4tYXJhbQorcGFpZAorcGFpbgorcGFpcgorcGFpcnMKK3BhbGx1CitwYXJhbGxlbGVkCitwYXJhbgorcGFydAorcGFydHMKK3Bhc3MKK3Bhc3NlZAorcGFzdAorcGFzdHVyZQorcGFzdHVyZWQKK3Bhc3R1cmluZworcGF0aAorcGF0aHJ1J3NpbQorcGF0aWVudAorcGF1CitwYXkKK3BheW1lbnQKK3BlJ2xhaAorcGVhY2UKK3BlYWNlYWJseQorcGVlbGVkCitwZWxlZworcGVuaSdlbAorcGVudSdlbAorcGVvcGxlCitwZW9wbGVkCitwZW9wbGVzCitwZXInaXp6aXRlcworcGVyZXoKK3BlcmZpZHkKK3BlcmZvcm0KK3BlcmhhcHMKK3BlcmlzaAorcGVybWl0CitwZXJwZXR1YXRlZAorcGVyc29ucworcGV0aXRpb25lZAorcGV0aXRpb25zCitwaGFyYW9oCitwaGFyYW9oJ3MKK3BoaWNvbAorcGhpbGlzdGluZXMKK3BoeXNpY2lhbnMKK3BpZWNlCitwaWVjZXMKK3BpZ2VvbgorcGlsZGFzaAorcGlsbGFyCitwaW5vbgorcGlwZQorcGlzaG9uCitwaXN0YWNoaW8KK3BpdAorcGl0Y2gKK3BpdGNoZWQKK3BpdHMKK3BsYWNlCitwbGFjZWQKK3BsYWNlcworcGxhZ3VlcworcGxhaW4KK3BsYWlubHkKK3BsYW5lCitwbGFubmluZworcGxhbnQKK3BsYW50ZWQKK3BsYW50cworcGxheQorcGxheWVkCitwbGF5aW5nCitwbGVhc2FudAorcGxlYXNlCitwbGVhc2VkCitwbGVhc2VzCitwbGVhc2luZworcGxlYXN1cmUKK3BsZWRnZQorcGxlbnRlb3VzCitwbGVudHkKK3Bsb3dpbmcKK3BsdWNrZWQKK3BsdW1wCitwbHVuZGVyZWQKK3BvaW50Citwb2xpdGljYWwKK3Bvb3IKK3BvcGxhcgorcG9wdWxhdGlvbgorcG9ydGlvbgorcG9ydGlvbnMKK3Bvc3Nlc3MKK3Bvc3Nlc3Npb24KK3Bvc3Nlc3Npb25zCitwb3N0ZXJpdHkKK3BvdAorcG90J2ktcGhhcgorcG90aSdwaGVyYQorcG90dGFnZQorcG91cmVkCitwb3ZlcnR5Citwb3dlcgorcG93ZXJzCitwcmFpc2UKK3ByYWlzZWQKK3ByYXkKK3ByYXllZAorcHJheWVyCitwcmUtZW1pbmVuY2UKK3ByZS1lbWluZW50CitwcmVwYXJlCitwcmVwYXJlZAorcHJlc2VuY2UKK3ByZXNlbnQKK3ByZXNlbnRlZAorcHJlc2VydmUKK3ByZXNlcnZlZAorcHJlc3NlZAorcHJlc3NpbmcKK3ByZXRlbmRlZAorcHJldmFpbAorcHJldmFpbGVkCitwcmV2ZW50CitwcmV2ZW50ZWQKK3ByZXkKK3ByaWNlCitwcmlkZQorcHJpZXN0Citwcmllc3RzCitwcmluY2UKK3ByaW5jZXMKK3ByaW5jaXBsZXMKK3ByaXNvbgorcHJpc29uZXJzCitwcm9jZWVkCitwcm9kdWNlCitwcm9maXQKK3Byb21pc2UKK3Byb21pc2VkCitwcm9ub3VuY2UKK3Byb3BlcnR5Citwcm9waGV0Citwcm9wb3NhbAorcHJvcG9zZQorcHJvc3BlcgorcHJvc3BlcmVkCitwcm90ZWN0aW5nCitwcm90ZWN0aW9uCitwcm92ZQorcHJvdmVuZGVyCitwcm92aWRlCitwcm92aWRlZAorcHJvdmlkZW5jZQorcHJvdmluY2UKK3Byb3Zpc2lvbgorcHJvdmlzaW9ucworcHJ1ZGVuY2UKK3B1YmxpYworcHVibGlzaAorcHVuaXNobWVudAorcHVyY2hhc2VkCitwdXJpZnkKK3B1cnBvc2UKK3B1cnN1ZQorcHVyc3VlZAorcHVyc3VpbmcKK3B1cnN1aXQKK3B1dAorcHV0dGluZworcHV2YWgKK3F1YXJyZWwKK3F1YXJyZWxlZAorcXVhcnRlcmluZworcXVlc3Rpb25lZAorcXVlc3Rpb25zCitxdWlja2x5CitxdWlldAorcXVpdmVyCityYSdhbWFoCityYWNoZWwKK3JhY2hlbCdzCityYWlkCityYWlkZXJzCityYWltZW50CityYWluCityYWluZWQKK3JhaXNlCityYWlzZWQKK3JhaXNpbmcKK3JhbQorcmFtJ2VzZXMKK3JhbXMKK3JhbgorcmF0aGVyCityYXZhZ2VkCityYXZlbgorcmF2ZW5vdXMKK3JlJ3UKK3JlYWNoZWQKK3JlYWR5CityZWFsbHkKK3JlYXBlZAorcmVhc29uCityZWFzc3VyZWQKK3JlYmVrYWgKK3JlYmVrYWgncworcmViZWxsZWQKK3JlYnVrZWQKK3JlY2VkZWQKK3JlY2VpdmUKK3JlY2VpdmVkCityZWNrb25lZAorcmVja29uaW5nCityZWNvZ25pemUKK3JlY29nbml6ZWQKK3JlY29yZHMKK3JlY3RpdHVkZQorcmVkCityZWRlZW1lZAorcmVkcmVzcworcmVkdWNlCityZWVkCityZWZyZXNoCityZWZ1c2VkCityZWZ1c2luZworcmVnYXJkCityZWdhcmRlZAorcmVnYXJkcworcmVobydib3RoCityZWhvJ2JvdGgtaXIKK3JlaWduCityZWlnbmVkCityZWxpYW5jZQorcmVsaWVmCityZWxpbnF1aXNoCityZW1haW4KK3JlbWFpbmVkCityZW1haW5pbmcKK3JlbWFpbnMKK3JlbWVtYmVyCityZW1lbWJlcmVkCityZW1pbmRlZAorcmVtbmFudAorcmVtb3ZlCityZW1vdmVkCityZW1vdmluZworcmVuZGVyCityZW5vd24KK3JlbnQKK3JlcGVhdGVkCityZXBlYXRlZGx5CityZXBoJ2FpbQorcmVwbGFjZQorcmVwbGFjZWQKK3JlcGxpZWQKK3JlcG9ydAorcmVwcmVzZW50YXRpb24KK3JlcHJlc2VudGF0aXZlCityZXByZXNlbnRhdGl2ZXMKK3JlcHJvYWNoCityZXF1aXJlCityZXF1aXJlZAorcmVxdWlyZXMKK3Jlc2N1ZQorcmVzZW4KK3Jlc2VydmUKK3Jlc2VydmVkCityZXNwZWN0CityZXN0CityZXN0ZWQKK3Jlc3RpbmcKK3Jlc3RvcmUKK3Jlc3RvcmVkCityZXN0cmFpbmVkCityZXR1cm4KK3JldHVybmVkCityZXUnZWwKK3JldWJlbgorcmV1bWFoCityZXZlYWxlZAorcmV2aXZlZAorcmV3YXJkCityaWIKK3JpYnMKK3JpY2gKK3JpZGUKK3JpZGVyCityaWdodAorcmlnaHRlZAorcmlnaHRlb3VzCityaWdodGVvdXNuZXNzCityaWdodGx5CityaWdodHMKK3JpbmcKK3JpbmdzCityaXBlbmVkCityaXBoYXRoCityaXNlCityaXNlbgorcml2ZXIKK3JpdmVycworcm9hZAorcm9iZQorcm9jaworcm9kZQorcm9kcworcm9sbAorcm9sbGVkCityb29mCityb29tCityb29tcworcm9zZQorcm9zaAorcm91Z2hseQorcm91bmQKK3JvdXNlCityb3V0ZWQKK3JveWFsCitydWxlCitydWxlcgorcnVsZXIncworcnVuCitydW5uZWxzCitzYWIndGVjYQorc2FidGFoCitzYWNrCitzYWNrY2xvdGgKK3NhY2tzCitzYWNyZWQKK3NhY3JpZmljZQorc2FjcmlmaWNlcworc2FkZGxlCitzYWRkbGVkCitzYWZlbHkKK3NhZmV0eQorc2FpZAorc2FrZQorc2FsYXJpZXMKK3NhbGVtCitzYWx0CitzYWx2YXRpb24KK3NhbWUKK3NhbWxhaAorc2FuZAorc2FuZGFsLXRob25nCitzYXInYWkKK3NhcmFoCitzYXJhaCdzCitzYXQKK3NhdmFnZXMKK3NhdmVkCitzYXZpbmcKK3Nhdm9yeQorc2F3CitzYXkKK3NheWluZworc2F5cworc2NhcmNlbHkKK3NjYXJsZXQKK3NjYXR0ZXIKK3NjYXR0ZXJlZAorc2NlcHRlcgorc2UnaXIKK3NlYQorc2VhcmNoZWQKK3NlYXMKK3NlYXNob3JlCitzZWFzb24KK3NlYXNvbnMKK3NlYmEKK3NlY29uZAorc2VjcmV0bHkKK3NlY3VyZQorc2VjdXJpdHkKK3NlZQorc2VlZAorc2VlZHRpbWUKK3NlZWluZworc2Vlaworc2Vla2luZworc2VlbQorc2VlbWVkCitzZWVuCitzZWVzCitzZWl6ZQorc2VpemVkCitzZWxlY3QKK3NlbGYtZXZpZGVudAorc2VsbAorc2VtZW4KK3NlbmQKK3NlbnQKK3NlcGFyYXRlCitzZXBhcmF0ZWQKK3NlcGFyYXRpb24KK3NlcGhhcgorc2VwdWxjaHJlCitzZXB1bGNocmVzCitzZXJhaAorc2VyZWQKK3NlcnBlbnQKK3NlcnVnCitzZXJ2YW50CitzZXJ2YW50J3MKK3NlcnZhbnRzCitzZXJ2ZQorc2VydmVkCitzZXJ2aWNlCitzZXJ2aW5nCitzZXQKK3NldGgKK3NldHRsZQorc2V0dGxlZAorc2V0dGxlbWVudAorc2V2ZW4KK3NldmVuZm9sZAorc2V2ZW50ZWVuCitzZXZlbnRlZW50aAorc2V2ZW50aAorc2V2ZW50eQorc2V2ZW50eS1maXZlCitzZXZlbnR5LXNldmVuCitzZXZlbnR5LXNldmVuZm9sZAorc2V2ZXJlCitzZXdlZAorc2V4ZXMKK3NoYSd2ZWgta2lyaWF0aGEnaW0KK3NoYWxsCitzaGFtbWFoCitzaGFyZQorc2hhdWwKK3NoYXZlZAorc2hhdmVoCitzaGUKK3NoZS1hc3Nlcworc2hlLWdvYXQKK3NoZS1nb2F0cworc2hlYWYKK3NoZWFyCitzaGVhdmVzCitzaGViYQorc2hlY2hlbQorc2hlY2hlbSdzCitzaGVkCitzaGVkcworc2hlZXAKK3NoZWVwZm9sZHMKK3NoZWVwc2hlYXJlcnMKK3NoZWtlbAorc2hla2Vscworc2hlbGFoCitzaGVsZXBoCitzaGVsdGVyCitzaGVtCitzaGVtZSdiZXIKK3NoZW9sCitzaGVwaGVyZAorc2hlcGhlcmRpbmcKK3NoZXBoZXJkcworc2hlcGhvCitzaGliYWgKK3NoaWVsZAorc2hpbGxlbQorc2hpbXJvbgorc2hpbmFiCitzaGluYXIKK3NoaXBzCitzaG9iYWwKK3Nob3JlCitzaG9ydAorc2hvcnRseQorc2hvdAorc2hvdWxkCitzaG91bGRlcgorc2hvdWxkZXJzCitzaG93CitzaG93ZWQKK3Nob3duCitzaHVhCitzaHVhJ3MKK3NodWFoCitzaHVuaQorc2h1cgorc2h1dAorc2lkZGltCitzaWRlCitzaWRvbgorc2lnaHQKK3NpZ24KK3NpZ25ldAorc2lnbnMKK3NpbGVuY2UKK3NpbHZlcgorc2ltZW9uCitzaW4KK3NpbmNlCitzaW5ldworc2luaXRlcworc2lubmVkCitzaW5uZXJzCitzaW5uaW5nCitzaXN0ZXIKK3Npc3RlcidzCitzaXQKK3NpdG5haAorc2l0dGluZworc2l4CitzaXh0ZWVuCitzaXh0aAorc2l4dHkKK3NpeHR5LWZpdmUKK3NpeHR5LW5pbmUKK3NpeHR5LXNpeAorc2l4dHktdHdvCitza2lsZnVsCitza2luCitza2lucworc2xhaW4KK3NsYXVnaHRlcgorc2xhdmUKK3NsYXZlcworc2xheQorc2xheXMKK3NsZWVrCitzbGVlcAorc2xlZXZlcworc2xlcHQKK3NsZXcKK3Nsb3BlCitzbG93bHkKK3NtYWxsCitzbWVsbAorc21lbGxlZAorc21va2UKK3Ntb2tpbmcKK3Ntb290aAorc28KK3NvZG9tCitzb2lsCitzb2pvdXJuCitzb2pvdXJuZWQKK3Nvam91cm5lcgorc29qb3VybmVycworc29qb3VybmluZworc29qb3VybmluZ3MKK3NvbGQKK3NvbGUKK3NvbGVtbmx5Citzb21lCitzb24KK3NvbidzCitzb25ncworc29ucworc29ucycKK3NvbnMtaW4tbGF3Citzb29uCitzb3JlCitzb3JlbHkKK3NvcnJvdworc29ycm93ZnVsCitzb3JyeQorc29ydAorc29ydHMKK3NvdWdodAorc291bAorc291bmQKK3NvdXRoCitzb3V0aHdhcmQKK3Nvdworc293ZWQKK3NwYWNlCitzcGFyZQorc3BhcmVkCitzcGVhaworc3BlYWtpbmcKK3NwZWFrcworc3BlY2tsZWQKK3NwZWVjaAorc3BlbmQKK3NwZW50CitzcGllcworc3BpbGxlZAorc3Bpcml0CitzcGxlbmRvcgorc3BvaWwKK3Nwb2tlCitzcG9rZW4KK3Nwb3R0ZWQKK3NwcmVhZAorc3ByaW5nCitzcHJpbmdpbmcKK3NwcmluZ3MKK3Nwcm91dGVkCitzcHJ1bmcKK3N0YWZmCitzdGFnZQorc3RhbGsKK3N0YW5kCitzdGFuZGluZworc3RhbmRzCitzdGFycworc3RhdGUKK3N0YXRlcworc3RhdGVzOgorc3RhdGlvbgorc3RhdHV0ZQorc3RhdHV0ZXMKK3N0YXkKK3N0YXllZAorc3RlYWQKK3N0ZWFkZmFzdAorc3RlYWwKK3N0ZXdhcmQKK3N0aWxsCitzdG9sZQorc3RvbGVuCitzdG9uZQorc3RvbmVzCitzdG9vZAorc3Rvb3BlZAorc3RvcAorc3RvcHBlZAorc3RvcmUKK3N0b3JlZAorc3RvcmVob3VzZXMKK3N0b3J5CitzdHJhbmdlcgorc3RyYW5nZXJzCitzdHJhdworc3RyZWFrcworc3RyZWFtCitzdHJlZXQKK3N0cmVuZ3RoCitzdHJldGNoZWQKK3N0cmlmZQorc3RyaWtpbmcKK3N0cmlwZWQKK3N0cmlwcGVkCitzdHJpdmVuCitzdHJvbmcKK3N0cm9uZ2VyCitzdHJvbmdseQorc3RydWNrCitzdHJ1Z2dsZWQKK3N1YmR1ZQorc3ViZHVlZAorc3ViamVjdAorc3VibWl0CitzdWJtaXR0ZWQKK3N1YnNpZGVkCitzdWJzdGFuY2UKK3N1YnRsZQorc3VjY2Vzcworc3VjY2Vzc2Z1bAorc3VjY290aAorc3VjaAorc3Vjaworc3Vja2xlCitzdWZmZXIKK3N1ZmZlcmFibGUKK3N1ZmZlcmFuY2UKK3N1aXRhYmxlCitzdW1tZXIKK3N1bW1vbmVkCitzdW4KK3N1cGVyaW9yCitzdXBwbGFudGVkCitzdXBwbGllZAorc3VwcG9ydAorc3VwcG9zZQorc3VwcmVtZQorc3VyZWx5CitzdXJldHkKK3N1cnJvdW5kZWQKK3N1cnZpdm9ycworc3VzcGVuZGVkCitzdXNwZW5kaW5nCitzdXN0YWluZWQKK3N3YWxsb3dlZAorc3dhcm0KK3N3YXJtaW5nCitzd2FybXMKK3N3ZWFyCitzd2VhdAorc3dvcmQKK3N3b3Jkcworc3dvcmUKK3N3b3JuCitzeXN0ZW0KK3N5c3RlbXMKK3RhYmxlCit0YWhhc2gKK3Rha2UKK3Rha2VuCit0YWtpbmcKK3RhbGtlZAordGFsa2luZwordGFtYXIKK3RhbWFyaXNrCit0YW1ib3VyaW5lCit0YXJyaWVkCit0YXJyeQordGFyc2hpc2gKK3RheGVzCit0ZSdtYW5pdGVzCit0ZWJhaAordGVldGgKK3RlbGwKK3RlbGxzCit0ZW1hCit0ZW1hbgordGVuCit0ZW5kZXIKK3RlbmRlcmx5Cit0ZW50Cit0ZW50aAordGVudHMKK3RlbnVyZQordGVyYWgKK3Rlcm1zOgordGVycml0b3J5Cit0ZXJyb3IKK3Rlc3RlZAordGhhbgordGhhdAordGhlCit0aGVlCit0aGVpcgordGhlaXJzCit0aGVtCit0aGVtc2VsdmVzCit0aGVuCit0aGVuY2UKK3RoZXJlCit0aGVyZWZvcmUKK3RoZXJlaW4KK3RoZXNlCit0aGV5Cit0aGlja2V0Cit0aGlnaAordGhpbgordGhpbmcKK3RoaW5ncwordGhpbmtpbmcKK3RoaXJkCit0aGlydGVlbgordGhpcnRlZW50aAordGhpcnR5Cit0aGlydHktZml2ZQordGhpcnR5LWZvdXIKK3RoaXJ0eS1zZXZlbgordGhpcnR5LXRocmVlCit0aGlydHktdHdvCit0aGlzCit0aGlzdGxlcwordGhvcm5zCit0aG9yb3VnaGx5Cit0aG9zZQordGhvdQordGhvdWdodAordGhvdWdodHMKK3Rob3VzYW5kCit0aG91c2FuZHMKK3RocmVhZAordGhyZWUKK3RocmVzaGluZwordGhyb25lCit0aHJvdWdoCit0aHJvdWdob3V0Cit0aHJvdwordGh1cwordGh5Cit0aWRhbAordGlkaW5ncwordGllcwordGlncmlzCit0aWxsCit0aWxsZXIKK3RpbWUKK3RpbWVzCit0aW1uYQordGltbmFoCit0aXJhcwordG8KK3RvZGF5Cit0b2dhcidtYWgKK3RvZ2V0aGVyCit0b2lsCit0b2xhCit0b2xkCit0b21iCit0b25pZ2h0Cit0b28KK3Rvb2sKK3RvcAordG9wcwordG9yY2gKK3Rvcm4KK3RvdGFsbHkKK3RvdGFseQordG91Y2gKK3RvdWNoZWQKK3RvdWNoZXMKK3Rvd2FyZAordG93ZXIKK3Rvd25zCit0cmFkZQordHJhZGVycwordHJhaW4KK3RyYWluZWQKK3RyYW5zZ3Jlc3Npb24KK3RyYW5zaWVudAordHJhbnNwb3J0aW5nCit0cmF2YWlsZWQKK3RyZWFzdXJlCit0cmVhdAordHJlYXRlZAordHJlZQordHJlZXMKK3RyZW1ibGVkCit0cmVtYmxpbmcKK3RyaWFsCit0cmliZXMKK3RyaWVkCit0cm9vcHMKK3Ryb3VibGUKK3Ryb3VibGVkCit0cm91YmxlcwordHJvdWdoCit0cm91Z2hzCit0cnVseQordHJ1dGgKK3RydXRocwordHViYWwKK3R1YmFsLQordHViYWwtY2FpbgordHVybgordHVybmVkCit0dXJucwordHVydGxlZG92ZQordHdlbHZlCit0d2VudHkKK3R3ZW50eS1uaW5lCit0d2VudHktc2V2ZW4KK3R3ZW50eS1zZXZlbnRoCit0d2ljZQordHdpbnMKK3R3bwordHlyYW5ueQordHlyYW50Cit0eXJhbnRzCit1bmFja25vd2xlZGdlZAordW5hbGllbmFibGUKK3VuYXdhcmVzCit1bmNpcmN1bWNpc2VkCit1bmNvbWZvcnRhYmxlCit1bmNvdmVyZWQKK3VuZGVyCit1bmRlcnN0YW5kCit1bmRlcnN0b29kCit1bmRpc3Rpbmd1aXNoZWQKK3VuZml0Cit1bmdpcmRlZAordW5pdGVkCit1bmtub3duCit1bmxlYXZlbmVkCit1bmxlc3MKK3VubW92ZWQKK3Vuc3RhYmxlCit1bnRpbAordW51c3VhbAordW53YXJyYW50YWJsZQordW53b3J0aAordXAKK3VwYnJhaWRlZAordXBvbgordXBwZXJtb3N0Cit1cHJpZ2h0Cit1cgordXJnZWQKK3VzCit1czoKK3VzZQordXNpbmcKK3VzdXJwYXRpb25zCit1dHRlcmx5Cit1egordXphbAordmFsbGV5Cit2YWx1YWJsZQordmVnZXRhdGlvbgordmVpbAordmVuZ2VhbmNlCit2ZW50Cit2ZW50cwordmVyaWZpZWQKK3ZlcnkKK3Zlc3R1cmUKK3ZpbGxhZ2VzCit2aW5kaWNhdGlvbgordmluZQordmluZXlhcmQKK3Zpb2xlbmNlCit2aW9sZW50bHkKK3ZpcGVyCit2aXJnaW4KK3Zpc2lvbgordmlzaW9ucwordmlzaXQKK3Zpc2l0ZWQKK3ZvaWNlCit2b2lkCit2b3cKK3dhZ2VzCit3YWdpbmcKK3dhZ29ucword2FpdAord2FpdGVkCit3YWxrCit3YWxrZWQKK3dhbGtpbmcKK3dhbGwKK3dhbmRlcgord2FuZGVyZWQKK3dhbmRlcmVyCit3YW5kZXJpbmcKK3dhbnRpbmcKK3dhbnRvbm5lc3MKK3dhcgord2FyZmFyZQord2FybmVkCit3YXMKK3dhc2gKK3dhc2hlZAord2FzaGVzCit3YXRjaAord2F0ZXIKK3dhdGVyZWQKK3dhdGVyaW5nCit3YXRlcnMKK3dheQord2F5c2lkZQord2UKK3dlYWsKK3dlYWtuZXNzCit3ZWFsdGgKK3dlYWx0aHkKK3dlYW5lZAord2VhcG9ucword2Vhcgord2VhcmllZAord2VhcnkKK3dlZWsKK3dlZXAKK3dlZXBpbmcKK3dlaWdoZWQKK3dlaWdoaW5nCit3ZWlnaHQKK3dlaWdodHMKK3dlbGZhcmUKK3dlbGwKK3dlbGwncword2VsbHMKK3dlbnQKK3dlcHQKK3dlcmUKK3dlc3QKK3dlc3R3YXJkCit3aGF0Cit3aGF0ZXZlcgord2hhdHNvZXZlcgord2hlYXQKK3doZWxwCit3aGVuCit3aGVuY2UKK3doZW5ldmVyCit3aGVyZQord2hlcmVieQord2hlcmV2ZXIKK3doZXRoZXIKK3doaWNoCit3aGlsZQord2hpdGUKK3dobword2hvZXZlcgord2hvbGUKK3dob2xlc29tZQord2hvbQord2hvbWV2ZXIKK3dob3NlCit3aHkKK3dpY2tlZAord2lja2VkbHkKK3dpY2tlZG5lc3MKK3dpZG93Cit3aWRvdydzCit3aWRvd2hvb2QKK3dpZmUKK3dpZmUncword2lsZAord2lsZGVybmVzcword2lsbAord2lsbGluZword2lsdAord2luZAord2luZG93Cit3aW5kb3dzCit3aW5lCit3aW5nZWQKK3dpbnRlcgord2lzZQord2l0aAord2l0aGVyZWQKK3dpdGhoZWxkCit3aXRoaG9sZAord2l0aGluCit3aXRob3V0Cit3aXRuZXNzCit3aXZlcword29sZgord29tYW4KK3dvbWFuJ3MKK3dvbWIKK3dvbWJzCit3b21lbgord29vZAord29yZAord29yZHMKK3dvcmUKK3dvcmsKK3dvcmtzCit3b3JsZAord29ybGQ6Cit3b3JzZQord29yc2hpcAord29yc2hpcGVkCit3b3J0aAord29ydGh5Cit3b3VsZAord291bmRpbmcKK3dyYXBwaW5nCit3cmF0aAord3Jlc3RsZWQKK3dyZXN0bGluZ3MKK3dyb25nCit3cm91Z2h0Cit5ZWFyCit5ZWFybmVkCit5ZWFycworeWVzCit5ZXQKK3lpZWxkCit5aWVsZGluZworeW9rZQoreW9uZGVyCit5b3UKK3lvdW5nCit5b3VuZ2VyCit5b3VuZ2VzdAoreW91cgoreW91cnMKK3lvdXJzZWxmCit5b3Vyc2VsdmVzCit5b3V0aAoremEnYXZhbgoremFwaCdlbmF0aC1wYW5lJ2FoCit6ZWIndWx1bgoremVib2knaW0KK3plbSdhcml0ZXMKK3plcGhvCit6ZXJhaAoremliJ2VvbgoremlsbGFoCit6aWxwYWgKK3ppbXJhbgoremlwaCdpb24KK3pvJ2FyCit6b2hhcgorenV6aW0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAwZjEyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50cy5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50cyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgIHsgICAgCisgICAgICAgICAgICAiZnJvbV9yb290IiwKKyAgICAJCSJUaGlzIGRhdGEgY29tZXMgZnJvbSByb290IgorICAgIAl9LAorICAgICAgICB7CisgICAgICAgICAgICAiZnJvbV9lbiIsCisgICAgICAgICAgICAiSW4gcm9vdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiIKKyAgICAgICAgfSwKKyAgICAJeyAKKyAgICAJCSJmcm9tX2VuX0xhdG4iLAorICAgIAkJIkluIHJvb3Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4iCisgICAgCX0sCisgICAgCXsKKyAgICAJCSJmcm9tX2VuX0xhdG5fVVMiLAorICAgIAkJIkluIHJvb3Qgc2hvdWxkIGJlIG92ZXJyaWRkZW4iCisgICAgCX0KKyAgICAJCisgICAgfTsKKwlwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKwkJcmV0dXJuIGRhdGE7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW4ucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGMzZjE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMCBAQAorIyAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqCisjIFRlc3REYXRhRWxlbWVudHNfZW4ucHJvcGVydGllcworZnJvbV9lbj1UaGlzIGRhdGEgY29tZXMgZnJvbSBlbgorZnJvbV9lbl9MYXRuPUluIGVuIHNob3VsZCBiZSBvdmVycmlkZGVuCitmcm9tX2VuX0xhdG5fVVM9SW4gZW4gc2hvdWxkIGJlIG92ZXJyaWRkZW4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NWViOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorIyAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKgorIyBUZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG4ucHJvcGVydGllcworZnJvbV9lbl9MYXRuPVRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX0xhdG4KK2Zyb21fZW5fTGF0bl9VUz1JbiBlbl9MYXRuIHNob3VsZCBiZSBvdmVycmlkZGVuCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bl9VUy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG5fVVMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmNmYzNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG5fVVMuamF2YQpAQCAtMCwwICsxLDIyIEBACisgLyoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfZW5fTGF0bl9VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgCXsKKyAgICAJCSJmcm9tX2VuX0xhdG5fVVMiLAorICAgIAkJIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX0xhdG5fVVMiCisgICAgCX0KKyAgICAJCisgICAgfTsKKwlwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKwkJcmV0dXJuIGRhdGE7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX1VTLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fVVMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmE4NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX1VTLmphdmEKQEAgLTAsMCArMSwyMyBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzX2VuX1VTIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgIHsKKyAgICAgICAgICAgICJmcm9tX2VuX1VTIiwKKyAgICAgICAgICAgICJUaGlzIGRhdGEgY29tZXMgZnJvbSBlbl9VUyIKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9OworICAgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfdGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c190ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OTIwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfdGUuamF2YQpAQCAtMCwwICsxLDIyIEBACisgLyoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfdGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgIAl7CisgICAgCQkiZnJvbV90ZSIsCisgICAgCQkiSW4gcm9vdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiIKKyAgICAJfQorICAgIAkKKyAgICB9OworCXByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCQlyZXR1cm4gZGF0YTsKKwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMWI0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxtZW50c19mcl9MYXRuX0ZSLmphdmEKQEAgLTAsMCArMSwyNCBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxtZW50c19mcl9MYXRuX0ZSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgIHsKKyAgICAgICAgICAgICJmcm9tX2ZyX0xhdG5fRlIiLAorICAgICAgICAgICAgIlRoaXMgZGF0YSBjb21lcyBmcm9tIGZyX0xhdG5fRlIiCisgICAgICAgIH0KKyAgICAgICAgCisgICAgfTsKKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZGFiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcml3b3Jkcy50eHQKQEAgLTAsMCArMSwzMjk0MyBAQAor77u/IyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqCisjKiAgIENvcHlyaWdodCAoQykgMjAwMywgTmF0aW9uYWwgRWxlY3Ryb25pY3MgYW5kIENvbXB1dGVyIFRlY2hub2xvZ3kgQ2VudGVyCisjKiAgIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyogCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyBTb3J0ZWQgVGhhaSB3b3JkIGxpc3QgdXNlZCBmb3IgdGVzdGluZyB0aGUgVGhhaUNvbGxhdG9yIGNsYXNzLgorIyBUaGlzIGxpc3Qgd2FzIHRha2VuIGZyb20gdGhlIFdlYjogPGh0dHA6Ly93d3cubGlua3MubmVjdGVjLm9yLnRoL2l0ZWNoL2Rvd25sb2FkLmh0bWw+CisjCisjIExpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBpZ25vcmVkOyBvdGhlcnMgYXJlIHRyZWF0ZWQgYXMgc2luZ2xlIHdvcmRzCisjIGluIHRoZSBVVEYtOCBlbmNvZGluZy4KKyMKKyMKKyMgTGljZW5zZSBpbmZvcm1hdGlvbjoKKyMgUklXb3JkIExpY2Vuc2UKKyMgCisjIENPUFlSSUdIVCBBTkQgUEVSTUlTU0lPTiBOT1RJQ0UKKyMgCisjIENvcHlyaWdodCAoYykgMjAwMyBOYXRpb25hbCBFbGVjdHJvbmljcyBhbmQgQ29tcHV0ZXIgVGVjaG5vbG9neSBDZW50ZXIgYW5kIG90aGVycworIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyAKKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyMgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorIyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisjIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyMgZGlzdHJpYnV0ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zCisjIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBvZgorIyB0aGUgU29mdHdhcmUgYW5kIHRoYXQgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcworIyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLgorIyAKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyMgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorIyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQKKyMgT0YgVEhJUkQgUEFSVFkgUklHSFRTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorIyBIT0xERVJTIElOQ0xVREVEIElOIFRISVMgTk9USUNFIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBPUiBBTlkgU1BFQ0lBTAorIyBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HCisjIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisjIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCisjIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorIyAKKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgYSBjb3B5cmlnaHQgaG9sZGVyCisjIHNoYWxsIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2UKKyMgb3Igb3RoZXIgZGVhbGluZ3MgaW4gdGhpcyBTb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbgorIyBvZiB0aGUgY29weXJpZ2h0IGhvbGRlci4KKyMgCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFsbCB0cmFkZW1hcmtzIGFuZCByZWdpc3RlcmVkIHRyYWRlbWFya3MgbWVudGlvbmVkIGhlcmVpbiBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLgor4LiBCivguIHguYcKK+C4geC4gQor4LiB4LmK4LiBCivguIHguIHguILguJnguLLguIEKK+C4geC4geC4iuC5ieC4suC4hwor4LiB4LiB4LiY4Li54LibCivguIHguIHguKvguLkKK+C4gSDguIHguLIKK+C4geC4geC4uOC4mOC4oOC4seC4k+C4keC5jAor4LiBIOC4ggor4LiBIOC4giDguYTguKHguYjguIHguKPguLDguJTguLTguIHguKvguLkKK+C4geC4hwor4LiB4LmI4LiHCivguIHguYnguIcKK+C4geC5iuC4hwor4LiB4LiH4LiB4Lit4LiZCivguIHguIfguIHguLLguKMKK+C4geC4h+C5gOC4geC4p+C4teC4ouC4mQor4LiB4LiH4LmA4LiB4Lin4Li14Lii4LiZ4LiB4Liz4LmA4LiB4Lin4Li14Lii4LiZCivguIHguIfguYLguIHguYkKK+C4geC4h+C4hOC5ieC4suC4hwor4LiB4LmJ4LiH4LmC4LiE4LmJ4LiHCivguIHguYnguIfguIcKK+C4geC4h+C4iOC4seC4geC4owor4LiB4LiH4LiJ4Liy4LiBCivguIHguIfguYTguInguYgKK+C4geC4h+C5gOC4leC5iuC4gQor4LiB4LiH4Lie4Lix4LiUCivguIHguIfguKfguLLguJkKK+C4geC4h+C4quC4tQor4LiB4LiH4Liq4Li44LilCivguIHguIoKK+C4geC4ii0KK+C4geC4iuC4geC4owor4LiB4LiOCivguIHguI7guIHguKPguLDguJfguKPguKfguIcKK+C4geC4juC5gOC4geC4k+C4keC5jAor4LiB4LiO4LiC4LmJ4Lit4Lia4Lix4LiH4LiE4Lix4LiaCivguIHguI7guJfguJrguKfguIcKK+C4geC4juC4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiB4LiO4LiY4Lij4Lij4Lih4LiU4LiyCivguIHguI7guJrguLHguJXguKMKK+C4geC4juC4muC4seC4leC4o+C4geC4juC4q+C4oeC4suC4ogor4LiB4LiO4Lia4Lix4LiV4Lij4Liq4Lir4Lib4Lij4Liw4LiK4Liy4LiK4Liy4LiV4Li0CivguIHguI7guKHguJnguYDguJfguLXguKLguKPguJrguLLguKUKK+C4geC4juC4ouC4uOC4l+C4mOC4p+C4tOC4meC4seC4ogor4LiB4LiO4Lio4Li14Lil4LiY4Lij4Lij4LihCivguIHguI7guYDguKrguJnguLLguJrguJTguLUKK+C4geC4juC4q+C4oeC4suC4ogor4LiB4LiO4Lir4Lih4Liy4Lii4LiZ4Liy4LiZ4Liy4Lib4Lij4Liw4LmA4LiX4LioCivguIHguI7guKvguKHguLLguKLguJvguLTguJTguJvguLLguIEKK+C4geC4juC4q+C4oeC4suC4ouC4nuC4suC4k+C4tOC4iuC4ouC5jAor4LiB4LiO4Lir4Lih4Liy4Lii4LmB4Lie4LmI4LiHCivguIHguI7guKvguKHguLLguKLguKPguLDguKvguKfguYjguLLguIfguJvguKPguLDguYDguJfguKgKK+C4geC4juC4q+C4oeC4suC4ouC5gOC4q+C4leC4uAor4LiB4LiO4Lir4Lih4Liy4Lii4Lit4Liy4LiN4LiyCivguIHguI7guKvguKHguLnguYgKK+C4geC4juC5geC4q+C5iOC4h+C4geC4o+C4o+C4oQor4LiB4LiO4Lit4Lix4Lii4LiB4Liy4Lij4Lio4Li24LiBCivguIHguI/guLQKK+C4geC4j+C4uOC4gQor4LiB4LiP4Li44LiBLQor4LiB4LiP4Li44LiB4Lic4LilCivguIHguJDguLTguJkKK+C4geC4kOC4tOC4mS0KK+C4geC4kOC4tOC4meC4l+C4suC4mQor4LiB4LiQ4Li04LiZ4Lix4LiV4LiW4Liy4Lij4LiB4Lij4Lij4LihCivguIHguJPguLTguIHguJnguLHguJnguJXguYwKK+C4geC4k+C4tOC4geC4suC4o+C5jAor4LiB4LiUCivguIHguJTguILguLXguYgKK+C4geC4lOC4hOC4rQor4LiB4LiU4LiK4LiyCivguIHguJTguJTguLHguJkKK+C4geC4lOC4meC5ieC4swor4LiB4LiU4Lij4Liy4LiE4LiyCivguIHguJTguKvguLHguKcKK+C4geC4lOC5gOC4q+C4peC4t+C4reC4hwor4LiB4LmH4LiU4Li1CivguIHguYfguYTguJTguYkKK+C4geC4leC5gOC4p+C4l+C4tOC4leC4sgor4LiB4LiV4LmA4Lin4LiX4Li1CivguIHguJXguLHguI3guIrguKXguLUKK+C4geC4leC4seC4jeC4jeC4uOC4leC4sgor4LiB4LiV4Lix4LiN4LiN4Li5CivguIHguJXguLLguJjguLTguIHguLLguKMKK+C4geC4leC4suC4oOC4tOC4meC4tOC4q+C4suC4owor4LiB4LmH4LiV4Liy4LihCivguIHguJXguLTguIHguLIKK+C4geC4leC4tOC4geC4suC4quC4seC4jeC4jeC4sgor4LiB4LiW4LiyCivguIHguJbguLLguKHguKPguKPguIQKK+C4geC4luC4suC4oeC4o+C4o+C4hOC5gOC4l+C4qOC4meC4sgor4LiB4LiW4Liy4Lih4Li44LiCCivguIHguJbguLTguIHguLLguIjguLLguKPguKLguYwKK+C4geC4l+C4o+C4o+C4mwor4LiB4LiX4Lil4Li1CivguIHguJkKK+C4geC5iOC4mQor4LiB4LmJ4LiZCivguIHguJnguIEKK+C4geC5ieC4meC4geC4mgor4LiB4LmJ4LiZ4LiB4Lij4Liw4LiU4LiBCivguIHguYnguJnguIHguLjguI/guLQKK+C4geC5ieC4meC4guC4mgor4LiB4LmJ4LiZ4LiE4Lij4Lix4LinCivguIHguYjguJnguYLguITguJXguKMKK+C4geC5ieC4meC4leC4sOC4geC4o+C4mQor4LiB4LmI4LiZ4LmB4LiV4LmICivguIHguJnguJkKK+C4geC4meC4meC5gOC4iuC4rQor4LiB4LmI4LiZ4LiZ4LmC4LiW4LiHCivguIHguJnguJnguYDguKvguLTguKEKK+C4geC5ieC4meC4muC4tuC5ieC4hwor4LiB4LmJ4LiZ4Lib4Lil4LmI4Lit4LiHCivguIHguYnguJnguJvguK3guJQKK+C4geC5ieC4meC4m+C4tOC4lAor4LiB4LmJ4LiZ4Lib4Li54LiUCivguIHguYnguJnguYHguKHguKXguIfguKrguLLguJoKK+C4geC5ieC4meC4ouC5ieC4reC4ogor4LiB4LmI4LiZ4Liq4Lij4LmJ4Liy4LiHCivguIHguYnguJnguKvguJnguLHguIEKK+C4geC5ieC4meC4q+C4ouC5iOC4reC4mQor4LiB4LmJ4LiZ4Lir4Lit4LiiCivguIHguYnguJnguK3guYnguK3guKIKK+C4geC4meC4tOC4qeC4kC0KK+C4geC4meC4tOC4qeC4kOC5jAor4LiB4LiZ4Li04Lip4LiQ4Lig4LiE4Li04LiZ4Li1CivguIHguJnguLTguKnguJDguKDguLLguJTguLIKK+C4geC4meC4tOC4qeC4kOC4sgor4LiB4LiaCivguIHguJrguI8KK+C4geC4muC4lOC4suC4mQor4LiB4Lia4LmA4LiV4LmJ4LiZCivguIHguJrguJfguLkKK+C4geC4muC4l+C4ueC4lAor4LiB4Lia4Lia4Lix4LinCivguIHguJrguYDguKXguLfguK3guIHguJnguLLguKIKK+C4geC4muC4suC4pQor4LiB4Lia4Li04LiZ4LiX4Lij4LmMCivguIHguJrguLTguKUKK+C4geC4muC4teC5iAor4LiB4Lia4Li14LmI4LiY4Li44LiKCivguIHguJrguLnguKMKK+C4geC5gOC4muC4meC4l+C4o+C5jAor4LiB4LmC4Lia4LijCivguIHguYLguJrguKUKK+C4geC4m+C4kwor4LiB4Lib4LiT4LiBCivguIHguJvguJPguLIKK+C4geC4m+C4tAor4LiB4Lib4Li04LiV4Lix4LiZCivguIHguKEKK+C4geC5ieC4oQor4LiB4Lih4LiT4LiR4Lil4Liy4Lig4Li04LmA4Lip4LiBCivguIHguKHguJPguJHguYLguKXguJfguIEKK+C4geC4oeC4pQor4LiB4Lih4Lil4LiyCivguIHguKHguKXguLLguKgKK+C4geC4oeC4peC4suC4quC4meC5jAor4LiB4Lih4LmA4Lil4LioCivguIHguYnguKHguKvguJnguYnguLIKK+C4geC5ieC4oeC4q+C4meC5ieC4suC4geC5ieC4oeC4leC4sgor4LiB4LmJ4Lih4Lir4Lil4Lix4LiHCivguIHguYnguKHguKvguLHguKcKK+C4geC4oeC4seC4k+C4keC4peC4uAor4LiB4Lih4Li44LiXCivguIHguKMKK+C4geC4o+C4gQor4LiB4Lij4LiB4LiKCivguIHguKPguIHguI4KK+C4geC4o+C4geC4juC4suC4hOC4oQor4LiB4Lij4LiB4LiPCivguIHguKPguIcKK+C4geC4o+C4h+C4l+C4reC4hwor4LiB4Lij4LiH4LmA4Lil4LmH4LiaCivguIHguKPguIrguIHguLLguKIKK+C4geC4o+C4k+C4keC5jAor4LiB4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguJPguLUKK+C4geC4o+C4k+C4teC4oi0KK+C4geC4o+C4k+C4teC4ouC5jAor4LiB4Lij4LiT4Li14Lii4LiwCivguIHguKPguJQKK+C4geC4o+C4mQor4LiB4Lij4LiZ4LiX4LiyCivguIHguKPguJnguJnguYDguIrguYnguLIKK+C4geC4o+C4mgor4LiB4Lij4Lia4Li54LijCivguIHguKPguJ7guLTguJnguJjguLjguYwKK+C4geC4o+C4oOC4uOC4oQor4LiB4Lij4LihCivguIHguKPguKHguIHguKPguK3guKEKK+C4geC4o+C4oeC4geC4suC4owor4LiB4Lij4Lih4LiB4Liy4Lij4Lie4Li04LmA4Lio4LipCivguIHguKPguKHguYDguIHguKPguLXguKLguKEKK+C4geC4o+C4oeC4l+C5iOC4sgor4LiB4Lij4Lih4LiX4LmI4Liy4LiC4Lin4LiyCivguIHguKPguKHguJfguYjguLLguIvguYnguLLguKIKK+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jAor4LiB4Lij4Lih4LiY4Lij4Lij4Lih4LmM4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4LiiCivguIHguKPguKHguJnguLIKK+C4geC4o+C4oeC4p+C4seC4hwor4LiB4Lij4Lih4Lio4Lix4LiB4LiU4Li04LmMCivguIHguKPguKMKK+C4geC4o+C4o+C4geC4hwor4LiB4Lij4Lij4LiB4LiOCivguIHguKPguKPguIHguKgKK+C4geC4o+C4o+C5gOC4geC4lAor4LiB4Lij4Lij4LmE4LiB4LijCivguIHguKPguKPguYDguIjguLXguKLguIEKK+C4geC4o+C4o+C4iuC4tOC4hwor4LiB4Lij4Lij4LiK4Li04LiUCivguIHguKPguKPguYDguIrguK0KK+C4geC4o+C4o+C5gOC4iuC5ieC4sgor4LiB4Lij4Lij4LmA4LiK4Li14Lii4LiHCivguIHguKPguKPguYLguIrguIEKK+C4geC4o+C4o+C4i+C5ieC4meC4mQor4LiB4Lij4Lij4LmB4LiL4LiHCivguIHguKPguKPguJDguYwKK+C4geC4o+C4o+C4kOC4sgor4LiB4Lij4Lij4LiTCivguIHguKPguKPguJPguKLguLjguITguKUKK+C4geC4o+C4o+C4k+C4sgor4LiB4Lij4Lij4LiT4Li04LiB4LiyCivguIHguKPguKPguJPguLTguIHguLLguKPguYwKK+C4geC4o+C4o+C4lOC4tAor4LiB4Lij4Lij4LiU4Li04LiBCivguIHguKPguKPguJTguLbguIEKK+C4geC4o+C4o+C4leC4uAor4LiB4Lij4Lij4LiV4Li4LQor4LiB4Lij4Lij4LiV4Li44LiB4Liy4Lij4LiBCivguIHguKPguKPguJXguLjguKfguLLguIjguIEKK+C4geC4o+C4o+C4leC4uOC4quC4seC4jeC4jeC4sgor4LiB4Lij4Lij4LmE4LiV4LijCivguIHguKPguKPguJfguJoKK+C4geC4o+C4o+C5geC4l+C4gQor4LiB4Lij4Lij4LmB4LiX4Lij4LiBCivguIHguKPguKPguJrguLLguKrguLTguIEKK+C4geC4o+C4o+C4muC4suC4quC4tOC4geC4nuC4seC4quC4leC4o+C5jAor4LiB4Lij4Lij4Lia4Li04LiUCivguIHguKPguKPguJrguLnguKMKK+C4geC4o+C4o+C4m+C4suC4quC4tOC4gQor4LiB4Lij4Lij4Lib4Li44LijCivguIHguKPguKPguJ7guLjguKEKK+C4geC4o+C4o+C4nuC4uOC5iOC4oQor4LiB4Lij4Lij4Lig4Li04Lij4Lih4Lii4LmMCivguIHguKPguKPguKEKK+C4geC4o+C4o+C4oS0KK+C4geC4o+C4o+C4oeC5jAor4LiB4Lij4Lij4Lih4LiB4LijCivguIHguKPguKPguKHguIHguKPguJPguYwKK+C4geC4o+C4o+C4oeC4geC4suC4owor4LiB4Lij4Lij4Lih4LiB4Liy4Lij4LiBCivguIHguKPguKPguKHguIHguLLguKPguLTguJPguLUKK+C4geC4o+C4o+C4oeC4guC4seC4ogor4LiB4Lij4Lij4Lih4LiE4LiV4Li0CivguIHguKPguKPguKHguIrguKPguLnguJsKK+C4geC4o+C4o+C4oeC4iuC4p+C4suC4lQor4LiB4Lij4Lij4Lih4LiQ4Liy4LiZCivguIHguKPguKPguKHguJrguJYKK+C4geC4o+C4o+C4oeC4nuC4seC4meC4mOC4uOC5jAor4LiB4Lij4Lij4Lih4LmM4Lig4Li04Lij4Lih4Lii4LmMCivguIHguKPguKPguKHguKfguLLguIjguIEKK+C4geC4o+C4o+C4oeC4p+C4suC4iOC4sgor4LiB4Lij4Lij4Lih4Lin4Liy4LiI4Liy4LiI4Liy4Lij4Lii4LmMCivguIHguKPguKPguKHguKfguLTguJjguLUKK+C4geC4o+C4o+C4oeC4p+C4tOC4muC4suC4gQor4LiB4Lij4Lij4Lih4LmA4Lin4LijCivguIHguKPguKPguKHguKjguLLguKXguLIKK+C4geC4o+C4o+C4oeC4quC4seC4oeC4m+C4suC4l+C4tOC4gQor4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmMCivguIHguKPguKPguKHguKrguLTguJfguJjguLTguYzguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguYHguKXguLDguKLguLXguYjguKvguYnguK3guIHguLLguKPguITguYnguLLguILguLLguKIKK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jOC4nOC4ueC5ieC5geC4leC5iOC4h+C4q+C4meC4seC4h+C4quC4t+C4rQor4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmM4Lij4Lin4LihCivguIHguKPguKPguKHguLHguIrguKfguLLguJUKK+C4geC4o+C4o+C4oeC4suC4iuC4teC4ngor4LiB4Lij4Lij4Lih4Liy4LiY4Li04LiB4Liy4LijCivguIHguKPguKPguKHguLLguKMKK+C4geC4o+C4o+C4peC4tQor4LiB4Lij4Lij4Lil4Li24LiHCivguIHguKPguKPguKnguIEKK+C4geC4o+C4o+C4quC4sAor4LiB4Lij4Lij4LmB4Liq4LiHCivguIHguKPguKPguKvguLLguKIKK+C4geC4o+C4o+C5gOC4q+C4tOC4oQor4LiB4Lij4Lij4LmC4Lir4LiiCivguIHguKPguKPguYDguK3guLIKK+C4geC4o+C4o+C4uOC4k+C4sgor4LiB4Lij4Lin4LiUCivguIHguKPguKfguJTguJnguYnguLMKK+C4geC4o+C4p+C4mQor4LiB4Lij4Lin4LiaCivguIHguKPguKfguKEKK+C4geC4o+C5ieC4p+C4oQor4LiB4Lij4Lin4LiiCivguIHguKPguKfguKLguYDguIrguLTguIcKK+C4geC4o+C4p+C4ouC4muC5ieC4suC4mQor4LiB4Lij4Lin4Lii4Lib4LmI4LiyCivguIHguKPguKfguLTguIEKK+C4geC4o+C4quC4suC4m+C4meC5jAor4LiB4Lij4Liq4Li44LiX4LiY4Li04LmMCivguIHguKPguK0KK+C4geC4o+C5ieC4rQor4LiB4Lij4Lit4LiBCivguIHguKPguYfguK3guIHguIHguKPguYvguK3guKIKK+C4geC4o+C4reC4geC5geC4geC4o+C4gQor4LiB4Lij4Lit4LiB4Lij4Li44LiiCivguIHguKPguK3guIcKK+C4geC4o+C4reC4h+C4geC4o+C4reC4ogor4LiB4Lij4Lit4LiH4LiX4Lit4LiHCivguIHguKPguK3guJQKK+C4geC4o+C5iOC4reC4mQor4LiB4Lij4Lit4LiaCivguIHguKPguK3guJrguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4reC4muC5geC4geC4o+C4mgor4LiB4Lij4Lit4Lia4LmA4LiK4LmH4LiU4Lir4LiZ4LmJ4LiyCivguIHguKPguK3guJrguKvguJnguYnguLIKK+C4geC4o+C4reC4oQor4LiB4Lij4LmI4Lit4LihCivguIHguKPguYjguK3guKHguYYKK+C4geC4o+C5iOC4reC4ogor4LiB4Lij4LiwCivguIHguKPguLDguIHguKMKK+C4geC4o+C4sOC4geC4o+C4seC4muC4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4mgor4LiB4Lij4Liw4LiB4Lij4Li14LmK4LiUCivguIHguKPguLDguIHguKPguLjguYjguJkKK+C4geC4o+C4sOC4geC4peC4seC4muC4geC4peC4reC4gQor4LiB4Lij4Liw4LiB4Lin4LiUCivguIHguKPguLDguIHguK3guIcKK+C4geC4o+C4sOC4geC4seC4lAor4LiB4Lij4Liw4LiB4Li14LmJCivguIHguKPguLDguIHguLnguKUKK+C4geC4o+C4sOC5gOC4geC4o+C4reC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LiBCivguIHguKPguLDguYDguIHguKPguLTguYjguJkKKy3guIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLDguYDguIHguKPguLXguYnguKLguKcKK+C4geC4o+C4sOC5gOC4geC4peC4t+C4reC4gQor4LiB4Lij4Liw4LiE4LiZCivguIHguKPguLDguITguLLguKIKK+C4geC4o+C4sOC4hOC4uOC4gQor4LiB4Lij4Liw4LiH4LiB4LiB4Lij4Liw4LiH4Lix4LiZCivguIHguKPguLDguIfguIHguIHguKPguLDguYDguIfguLTguYjguJkKK+C4geC4o+C4sOC4h+C5iOC4reC4h+C4geC4o+C4sOC5geC4h+C5iOC4hworLeC4geC4o+C4sOC4h+C4reC4lAor4LiB4Lij4Liw4LiH4LmI4Lit4LiZ4LiB4Lij4Liw4LmB4LiH4LmI4LiZCivguIHguKPguLDguYDguIfguYnguLLguIHguKPguLDguIfguK3guJQKK+C4geC4o+C4sOC5guC4h+C4gQor4LiB4Lij4Liw4LiI4LiBCivguIHguKPguLDguIjguIHguYDguIfguLIKK+C4geC4o+C4sOC4iOC4geC4leC4sgor4LiB4Lij4Liw4LiI4LiB4LiZ4Li54LiZCivguIHguKPguLDguIjguIHguJ3guYnguLIKK+C4geC4o+C4sOC4iOC4geC5gOC4p+C5ieC4sgor4LiB4Lij4Liw4LiI4LiB4Lir4Li44LiHCivguIHguKPguLDguIjguIcKK+C4geC4o+C4sOC4iOC4owor4LiB4Lij4Liw4LiI4Lit4LiBCivguIHguKPguLDguIjguK3guIHguIfguK3guIHguIfguYjguK3guKIKK+C4geC4o+C4sOC4iOC4reC4geC4iuC4p+C4sgor4LiB4Lij4Liw4LiI4Lit4LiB4LmA4LiX4LioCivguIHguKPguLDguIjguK3guIfguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4iOC5i+C4reC4h+C4q+C4h+C5iOC4reC4hwor4LiB4Lij4Liw4LiI4Lit4LiH4Lit4LmB4LiHCivguIHguKPguLDguIjguYnguK3guJkKK+C4geC4o+C4sOC4iOC4reC4meC4q+C4uQor4LiB4Lij4Liw4LiI4LmJ4Lit4LiiCivguIHguKPguLDguIjguYnguK3guKLguKPguYjguK3guKIKK+C4geC4o+C4sOC4iOC5i+C4reC4q+C4p+C4rQor4LiB4Lij4Liw4LiI4LiwCivguIHguKPguLDguIjguLHguIEKK+C4geC4o+C4sOC4iOC4seC4hwor4LiB4Lij4Liw4LiI4Lix4LiH4Lir4Lil4Lix4LiH4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguIjguLHguJQKK+C4geC4o+C4sOC4iOC4seC4lOC4geC4o+C4sOC4iOC4suC4ogor4LiB4Lij4Liw4LiI4Lix4LiU4Lie4Lil4Lix4LiU4Lie4Lij4Liy4LiiCivguIHguKPguLDguIjguLHguJoKK+C4geC4o+C4sOC4iOC4seC4muC4muC4gQor4LiB4Lij4Liw4LiI4Lix4Lia4Lib4Li04LmJ4LiHCivguIHguKPguLDguIjguLHguJrguJvguLXguYgKK+C4geC4o+C4sOC4iOC5iOC4sgor4LiB4Lij4Liw4LiI4LmI4Liy4LiHCivguIHguKPguLDguIjguLLguJQKK+C4geC4o+C4sOC4iOC4suC4mQor4LiB4Lij4Liw4LiI4Liy4LiaCist4LiB4Lij4Liw4LiI4Liy4LihCivguIHguKPguLDguIjguLLguKIKK+C4geC4o+C4sOC4iOC4suC4ouC4meC4sOC4oeC4k+C4keC4pQor4LiB4Lij4Liw4LiI4Liy4Lii4LmA4Liq4Li14Lii4LiHCivguIHguKPguLDguIjguLLguKLguKvguLLguIfguJTguK3guIEKK+C4geC4o+C4sOC4iOC4suC4pworLeC4geC4o+C4sOC4iOC4tOC4gQorLeC4geC4o+C4sOC4iOC4tOC5i+C4hwor4LiB4Lij4Liw4LiI4Li04LiUCivguIHguKPguLDguIjguLTguJoKKy3guIHguKPguLDguIjguLTguJoKKy3guIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4tOC4o+C4tOC4lAor4LiB4Lij4Liw4LiI4Li04LmL4LinCivguIHguKPguLDguIjguLTguYvguKfguKvguKXguLTguKcKK+C4geC4o+C4sOC4iOC4teC5iQorLeC4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li44LiBCivguIHguKPguLDguIjguLjguIHguIHguKPguLDguIjguLTguIEKK+C4geC4o+C4sOC4iOC4uOC4geC4geC4o+C4sOC4iOC4uOC4ogor4LiB4Lij4Liw4LiI4Li44LmL4LiH4LiB4Lij4Liw4LiI4Li04LmL4LiHCivguIHguKPguLDguIjguLjguJoKK+C4geC4o+C4sOC4iOC4uOC5iuC4mgor4LiB4Lij4Liw4LiI4Li44Lia4LiB4Lij4Liw4LiI4Li04LiaCivguIHguKPguLDguIjguLjguYvguKHguIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4uOC4ogor4LiB4Lij4Liw4LiI4Li44Lii4LiB4Lij4Liw4LiI4Liy4LiiCivguIHguKPguLDguIjguLnguYkKK+C4geC4o+C4sOC4iOC4ueC5i+C4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li54LiUCivguIHguKPguLDguYDguIjguK3guLDguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmI4LiyCivguIHguKPguLDguYDguIjguYnguLIKK+C4geC4o+C4sOC5gOC4iOC4suC4sAor4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLTguJTguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5ieC4ouC4hwor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4LiaCivguIHguKPguLDguYDguIjguLXguYrguKLguJrguYDguJvguKPguLXguYnguKLguKcKK+C4geC4o+C4sOC5gOC4iOC4teC4ouC4pwor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4LinCivguIHguKPguLDguYHguIjguLAKK+C4geC4o+C4sOC5guC4iOC4mQor4LiB4Lij4Liw4LmC4LiI4LihCivguIHguKPguLDguYLguIjguKHguIHguKPguLDguIjguLLguKEKK+C4geC4o+C4sOC5guC4iOC4oeC4l+C4reC4hwor4LiB4Lij4Liw4LmC4LiI4Lih4LmE4LifCivguIHguKPguLDguYLguIjguKHguK3guIEKK+C4geC4o+C4sOC4ieC4hwor4LiB4Lij4Liw4LiJ4Lit4LiBCivguIHguKPguLDguInguK3guIHguIHguKPguLDguYHguInguIEKK+C4geC4o+C4sOC4ieC5iOC4reC4mQor4LiB4Lij4Liw4LiJ4Lix4Lia4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguInguLTguYjguIcKK+C4geC4o+C4sOC4ieC4teC4gQor4LiB4Lij4Liw4LiJ4Li54LiUCivguIHguKPguLDguYDguInguIEKKy3guIHguKPguLDguYDguInguIcKK+C4geC4o+C4sOC5gOC4ieC4lAorLeC4geC4o+C4sOC5geC4ieC4gQor4LiB4Lij4Liw4LmB4LiJ4LmI4LiZCivguIHguKPguLDguYLguInguIHguIHguKPguLDguYDguInguIEKK+C4geC4o+C4sOC5guC4ieC4oQor4LiB4Lij4Liw4LiK4LiHCivguIHguKPguLDguIrguJTguIHguKPguLDguIrguYnguK3guKIKKy3guIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC4iuC4reC4gQor4LiB4Lij4Liw4LiK4Lit4LiZCivguIHguKPguLDguIrguK3guKEKK+C4geC4o+C4sOC4iuC4reC4oeC4lOC4reC4gQor4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCivguIHguKPguLDguIrguYnguK3guKLguJnguLLguIfguKPguLMKK+C4geC4o+C4sOC4iuC4seC4hwor4LiB4Lij4Liw4LiK4Lix4LiH4Lir4LiZ4LmJ4Liy4LmD4Lir4LiN4LmICivguIHguKPguLDguIrguLHguYnguJkKK+C4geC4o+C4sOC4iuC4seC4mgor4LiB4Lij4Liw4LiK4Liy4LiBCivguIHguKPguLDguIrguYjguLLguIcKK+C4geC4o+C4sOC4iuC4suC5gOC4lOC4tOC4oQor4LiB4Lij4Liw4LiK4Liy4LiiCivguIHguKPguLDguIrguLTguIcKK+C4geC4o+C4sOC4iuC4tOC4lAor4LiB4Lij4Liw4LiK4Li4CivguIHguKPguLDguIrguLjguIEKK+C4geC4o+C4sOC4iuC4uOC5iOC4oeC4geC4o+C4sOC4iuC4p+C4ogor4LiB4Lij4Liw4LmA4LiK4LitCivguIHguKPguLDguYDguIrguK3guIHguYnguJnguKPguLHguYjguKcKK+C4geC4o+C4sOC5gOC4iuC4sgor4LiB4Lij4Liw4LmA4LiK4LmJ4LiyCivguIHguKPguLDguYDguIrguYnguLLguJzguLXguKHguJQKK+C4geC4o+C4sOC5gOC4iuC5ieC4suC4quC4p+C4o+C4o+C4hOC5jAor4LiB4Lij4Liw4LmA4LiK4LmJ4Liy4Liq4Li14LiU4LiyCivguIHguKPguLDguYDguIrguLXguKLguIcKK+C4geC4o+C4sOC5geC4iuC4hwor4LiB4Lij4Liw4LmB4LiK4LiwCivguIHguKPguLDguYLguIrguIEKK+C4geC4o+C4sOC5guC4iuC4geC4geC4o+C4sOC4iuC4seC5ieC4mQor4LiB4Lij4Liw4LmC4LiK4LiB4LiB4Lij4Liw4LiK4Liy4LiBCivguIHguKPguLDguYLguIrguIHguYLguK7guIHguK7guLLguIEKK+C4geC4o+C4sOC4i+C4p+C4ogorLeC4geC4o+C4sOC4i+C4p+C4ogorLeC4geC4o+C4sOC4i+C5ieC4rQor4LiB4Lij4Liw4LiL4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiL4LmI4LiHCivguIHguKPguLDguIvguLHguJoKK+C4geC4o+C4sOC4i+C5iOC4suC4hwor4LiB4Lij4Liw4LiL4Liy4LiaCivguIHguKPguLDguIvguLTguIEKK+C4geC4o+C4sOC4i+C4tOC4geC5hgor4LiB4Lij4Liw4LiL4Li04LiB4LiB4Lij4Liw4LiL4Lin4LiiCivguIHguKPguLDguIvguLTguIHguIHguKPguLDguIvguLXguYkKK+C4geC4o+C4sOC4i+C4tOC4mgor4LiB4Lij4Liw4LiL4Li04Lia4LiB4Lij4Liw4LiL4Liy4LiaCist4LiB4Lij4Liw4LiL4Li14LmJCivguIHguKPguLDguIvguLXguYnguIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C4uOC4hwor4LiB4Lij4Liw4LiL4Li44Lia4LiB4Lij4Liw4LiL4Li04LiaCivguIHguKPguLDguIvguLjguYnguKEKK+C4geC4o+C4sOC4i+C4ueC5iAorLeC4geC4o+C4sOC5gOC4iwor4LiB4Lij4Liw4LmA4LiL4LmH4LiZCivguIHguKPguLDguYDguIvguK0KK+C4geC4o+C4sOC5gOC4i+C4reC4sOC4geC4o+C4sOC5gOC4i+C4rQor4LiB4Lij4Liw4LmA4LiL4Lit4Liw4LiB4Lij4Liw4LmA4LiL4Li04LiHCivguIHguKPguLDguYDguIvguYnguLIKK+C4geC4o+C4sOC5gOC4i+C5ieC4suC4geC4o+C4sOC4i+C4teC5iQor4LiB4Lij4Liw4LmA4LiL4Li04LiHCist4LiB4Lij4Liw4LmA4LiL4Li04LiHCivguIHguKPguLDguYHguIsKK+C4geC4o+C4sOC5geC4i+C4sAor4LiB4Lij4Liw4LmC4LiL4LiB4Lij4Liw4LmA4LiLCivguIHguKPguLDguI7guLUKK+C4geC4o+C4sOC4juC4uOC4oeC4nuC4tQor4LiB4Lij4Liw4LiU4LiBCivguIHguKPguLDguJTguIHguIHguKPguLDguJTguJnguYLguJTguYgKK+C4geC4o+C4sOC4lOC5ieC4hworLeC4geC4o+C4sOC4lOC4meC5guC4lOC5iAor4LiB4Lij4Liw4LiU4Lin4LiHCivguIHguKPguLDguJTguKfguJkKK+C4geC4o+C4sOC4lOC5ieC4p+C4oeC4geC4o+C4sOC5gOC4lOC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiU4LitCivguIHguKPguLDguJTguK3guIcKK+C4geC4o+C4sOC4lOC4reC4h+C4q+C4suC4ogor4LiB4Lij4Liw4LiU4Lit4LiZCivguIHguKPguLDguJTguK3guKEKK+C4geC4o+C4sOC4lOC4seC4geC4geC4o+C4sOC5gOC4lOC4teC5ieC4ogor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Lix4LinCivguIHguKPguLDguJTguLHguIfguIfguLIKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4suC4iOC4teC4mQor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Liy4LmA4LiW4LiyCivguIHguKPguLDguJTguLHguIfguIfguLLguKXguJnguYTguJ8KK+C4geC4o+C4sOC4lOC4suC4gQor4LiB4Lij4Liw4LiU4Liy4LiB4LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHCivguIHguKPguLDguJTguYnguLLguIcKK+C4geC4o+C4sOC4lOC5ieC4suC4h+C4geC4o+C4sOC5gOC4lOC4t+C5iOC4reC4hwor4LiB4Lij4Liw4LiU4Liy4LiH4Lil4Liy4LiHCivguIHguKPguLDguJTguLLguJQKK+C4geC4o+C4sOC4lOC4suC4lOC4guC4suC4pwor4LiB4Lij4Liw4LiU4Liy4LiU4LiU4LizCivguIHguKPguLDguJTguLLguJTguYHguJTguIcKK+C4geC4o+C4sOC4lOC4suC4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LiK4LiZ4Lin4LiZCivguIHguKPguLDguJTguLLguJnguIrguLHguKIKK+C4geC4o+C4sOC4lOC4suC4meC4lOC4swor4LiB4Lij4Liw4LiU4Liy4LiZ4LmC4LiV4LmJ4LiE4Lil4Li34LmI4LiZCivguIHguKPguLDguJTguLLguJnguJbguLXguJoKK+C4geC4o+C4sOC4lOC4suC4meC4nuC4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4Lie4Li04LiHCivguIHguKPguLDguJTguLLguJnguYTguJ8KK+C4geC4o+C4sOC4lOC4suC4meC4peC4t+C5iOC4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LmA4Lil4Li14Lii4LiaCivguIHguKPguLDguJTguLLguJnguKvguIEKK+C4geC4o+C4sOC4lOC4suC4qQor4LiB4Lij4Liw4LiU4Liy4Lip4LmB4LiB4LmJ4LinCivguIHguKPguLDguJTguLLguKnguILguYjguK3guKIKK+C4geC4o+C4sOC4lOC4suC4qeC5hOC4ggor4LiB4Lij4Liw4LiU4Liy4Lip4LmA4LiH4Li04LiZ4LiB4Lij4Liw4LiU4Liy4Lip4LiX4Lit4LiHCivguIHguKPguLDguJTguLLguKnguIvguLHguJoKK+C4geC4o+C4sOC4lOC4suC4qeC4l+C4o+C4suC4ogor4LiB4Lij4Liw4LiU4Liy4Lip4LmA4LiX4LioCivguIHguKPguLDguJTguLLguKnguJ/guLLguIcKK+C4geC4o+C4sOC4lOC4suC4qeC4p+C5iOC4suC4pwor4LiB4Lij4Liw4LiU4Liy4Lip4Liq4LiyCivguIHguKPguLDguJTguLPguIHguKPguLDguJTguYjguLLguIcKK+C4geC4o+C4sOC4lOC4tOC4gQor4LiB4Lij4Liw4LiU4Li04LiB4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguJTguLTguYjguIcKKy3guIHguKPguLDguJTguLTguYnguIcKK+C4geC4o+C4sOC4lOC4tOC5iOC4h+C4l+C4reC4hwor4LiB4Lij4Liw4LiU4Li04LiaCivguIHguKPguLDguJTguLTguJrguYYKK+C4geC4o+C4sOC4lOC4teC5iAor4LiB4Lij4Liw4LiU4Li14LmJ4LiB4Lij4Liw4LmA4LiU4Li14Lii4LihCivguIHguKPguLDguJTguLXguYjguYTguJTguYnguJnguYnguLMKK+C4geC4o+C4sOC4lOC4tuC4hwor4LiB4Lij4Liw4LiU4Li24LiH4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguIHguKPguLDguJTguLbguIfguJ7guKPguLDguKPguLLguKEKK+C4geC4o+C4sOC4lOC4t+C4mgor4LiB4Lij4Liw4LiU4Li4CivguIHguKPguLDguJTguLjguIHguIHguKPguLDguJTguLTguIEKK+C4geC4o+C4sOC4lOC4uOC5ieC4h+C4geC4o+C4sOC4lOC4tOC5ieC4hwor4LiB4Lij4Liw4LiU4Li44Lia4LmGCivguIHguKPguLDguJTguLjguJrguIHguKPguLDguJTguLTguJoKK+C4geC4o+C4sOC4lOC4uOC4oQor4LiB4Lij4Liw4LiU4Li54LiBCivguIHguKPguLDguJTguLnguIHguIHguJoKK+C4geC4o+C4sOC4lOC4ueC4geC5hOC4geC5iOC4lOC4swor4LiB4Lij4Liw4LiU4Li54LiB4LiC4Lix4LiU4Lih4Lix4LiZCivguIHguKPguLDguJTguLnguIHguYDguILguLXguKLguJQKK+C4geC4o+C4sOC4lOC4ueC4geC5geC4guC5h+C4hwor4LiB4Lij4Liw4LiU4Li54LiB4LiE4LmI4Liy4LiHCivguIHguKPguLDguJTguLnguIHguIfguLkKK+C4geC4o+C4sOC4lOC4ueC4geC4lOC4swor4LiB4Lij4Liw4LiU4Li54LiB4Lij4LmJ4Lit4LiH4LmE4LiU4LmJCivguIHguKPguLDguJTguLnguIHguKrguLHguJnguKvguKXguLHguIcKK+C4geC4o+C4sOC4lOC4ueC4geC4reC4tuC5iOC4hworLeC4geC4o+C4sOC5gOC4lOC4gQor4LiB4Lij4Liw4LmA4LiU4LmJ4LiHCivguIHguKPguLDguYDguJTguYfguJkKK+C4geC4o+C4sOC5gOC4lOC5ieC4sgor4LiB4Lij4Liw4LmA4LiU4LmJ4Liy4LiU4Li04LiZCivguIHguKPguLDguYDguJTguYnguLLguKXguKEKK+C4geC4o+C4sOC5gOC4lOC4suC4sAor4LiB4Lij4Liw4LmA4LiU4Liy4Liw4Lib4Liy4LiBCivguIHguKPguLDguYDguJTguLTguJQKKy3guIHguKPguLDguYDguJTguLXguYnguKIKK+C4geC4o+C4sOC5gOC4lOC4teC4ouC4lAorLeC4geC4o+C4sOC5gOC4lOC4teC4ouC4oQorLeC4geC4o+C4sOC5gOC4lOC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LmA4LiU4Li34Lit4LiBCivguIHguKPguLDguYDguJTguLfguYjguK3guIcKK+C4geC4o+C4sOC5geC4lOC5h+C4geC5hgor4LiB4Lij4Liw4LmB4LiU4LmJ4LiHCivguIHguKPguLDguYHguJTguYnguYHguKPguYgKK+C4geC4o+C4sOC5geC4lOC5iOC4p+C5hgor4LiB4Lij4Liw4LmB4LiU4LiwCivguIHguKPguLDguYHguJTguLDguIHguKPguLDguYHguJTguYsKK+C4geC4o+C4sOC5guC4lOC4gQor4LiB4Lij4Liw4LmC4LiU4LiB4LiB4Lij4Liw4LmA4LiU4LiBCivguIHguKPguLDguYLguJTguIcKK+C4geC4o+C4sOC5guC4lOC4h+C4hOC4suC4hwor4LiB4Lij4Liw4LmC4LiU4LiH4LmB4LiU4LiHCivguIHguKPguLDguYLguJTguJQKK+C4geC4o+C4sOC5guC4lOC4lOC4o+C5iOC4oQor4LiB4Lij4Liw4LmC4LiU4LiZCivguIHguKPguLDguYLguJTguJnguJTguLTguJkKK+C4geC4o+C4sOC5g+C4lAor4LiB4Lij4Liw4LmE4LiUCivguIHguKPguLDguYTguJTguYHguIHguYnguKcKK+C4geC4o+C4sOC5hOC4lOC4peC4tOC4hwor4LiB4Lij4Liw4LiV4Lij4LiB4LiB4Lij4Liw4LiV4Lij4LizCivguIHguKPguLDguJXguKPguYnguK0KK+C4geC4o+C4sOC4leC4o+C4seC4mgor4LiB4Lij4Liw4LiV4Lij4Liy4LiBCist4LiB4Lij4Liw4LiV4Lij4LizCivguIHguKPguLDguJXguKPguLjguJQKK+C4geC4o+C4sOC4leC4o+C4uOC4oQor4LiB4Lij4Liw4LiV4LmJ4Lin4Lih4LiB4Lij4Liw4LmA4LiV4Li14LmJ4Lii4LihCivguIHguKPguLDguJXguYnguK0KK+C4geC4o+C4sOC4leC5iOC4reC4h+C4geC4o+C4sOC5geC4leC5iOC4hwor4LiB4Lij4Liw4LiV4LmK4Lit4LiaCivguIHguKPguLDguJXguYnguK3guKLguJXguLXguKfguLTguJQKK+C4geC4o+C4sOC4leC4seC4gQor4LiB4Lij4Liw4LiV4Lix4LmJ4LinCist4LiB4Lij4Liw4LiV4Liy4LiBCivguIHguKPguLDguJXguYjguLLguKIKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4guC4ueC4lAor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiI4Lix4LiZ4LiX4Lij4LmMCivguIHguKPguLDguJXguYjguLLguKLguIjguLLguKEKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4iOC4teC4mQor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiK4Lih4LiI4Lix4LiZ4LiX4Lij4LmMCivguIHguKPguLDguJXguYjguLLguKLguJXguYnguK3guIfguYHguKPguYnguKcKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4leC4t+C5iOC4meC4leC4ueC4oQor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LmA4LiV4LmJ4LiZCivguIHguKPguLDguJXguYjguLLguKLguKrguLLguKHguILguLIKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4q+C4oeC4suC4ouC4iOC4seC4meC4l+C4o+C5jAor4LiB4Lij4Liw4LiV4Li04LiBCist4LiB4Lij4Liw4LiV4Li04LiBCist4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLTguYrguJQKK+C4geC4o+C4sOC4leC4tOC5iuC4lOC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiV4Li04LiaCivguIHguKPguLDguJXguLfguK3guKPguLfguK3guKPguYnguJkKK+C4geC4o+C4sOC4leC4uOC4gQor4LiB4Lij4Liw4LiV4Li44LiB4LiB4Lij4Liw4LiV4Li04LiBCivguIHguKPguLDguJXguLjguYnguIfguIHguKPguLDguJXguLTguYnguIcKK+C4geC4o+C4sOC4leC4uOC5iOC4mQor4LiB4Lij4Liw4LiV4Li44LmJ4LiZCivguIHguKPguLDguJXguLnguJoKK+C4geC4o+C4sOC5gOC4leC4hwor4LiB4Lij4Liw4LmA4LiV4LmH4LiZCivguIHguKPguLDguYDguJXguK3guLAKK+C4geC4o+C4sOC5gOC4leC4suC4sAor4LiB4Lij4Liw4LmA4LiV4Liy4Liw4LiB4Lij4Liw4LmB4LiV4LiwCist4LiB4Lij4Liw4LmA4LiV4Li14LmJ4Lii4LihCivguIHguKPguLDguYDguJXguLfguYnguK3guIcKK+C4geC4o+C4sOC5geC4lQorLeC4geC4o+C4sOC5geC4leC5iOC4hwor4LiB4Lij4Liw4LmB4LiV4LmB4LiV4LmJ4LmB4Lin4LmJ4LiUCivguIHguKPguLDguYHguJXguYTguJXguYjguYTguKHguYkKK+C4geC4o+C4sOC5geC4leC4p+C4seC4mgorLeC4geC4o+C4sOC5geC4leC4sAor4LiB4Lij4Liw4LmC4LiV4LiB4LiB4Lij4Liw4LiV4Liy4LiBCivguIHguKPguLDguYLguJXguJkKK+C4geC4o+C4sOC5hOC4leC4owor4LiB4Lij4Liw4LiW4LiUCivguIHguKPguLDguJbguK3guJoKK+C4geC4o+C4sOC4luC4seC5iOC4pwor4LiB4Lij4Liw4LiW4Liy4LiHCivguIHguKPguLDguJbguLTguIEKK+C4geC4o+C4sOC4luC4tOC4mQor4LiB4Lij4Liw4LiW4Li04LiZ4Lir4Lit4LihCivguIHguKPguLDguJbguLbguIEKK+C4geC4o+C4sOC5gOC4luC4tOC4mgor4LiB4Lij4Liw4LmC4LiW4LiZCivguIHguKPguLDguYLguJbguJnguJfguYnguK3guIfguJ7guKPguLDguYLguKPguIcKK+C4geC4o+C4sOC5guC4luC4meC4m+C4suC4geC5geC4leC4owor4LiB4Lij4Liw4LmC4LiW4LiZ4Lik4LmF4Lip4Li1CivguIHguKPguLDguJfguIEKK+C4geC4o+C4sOC4l+C4hwor4LiB4Lij4Liw4LiX4LiH4LmB4LiW4Lil4LiHCivguIHguKPguLDguJfguIfguJnguYnguK3guKIKK+C4geC4o+C4sOC4l+C4h+C4m+C5iOC4sgor4LiB4Lij4Liw4LiX4LiH4LmA4Lie4LiK4LijCivguIHguKPguLDguJfguIfguKXguK3guKIKK+C4geC4o+C4sOC4l+C4h+C4peC4suC4ogor4LiB4Lij4Liw4LiX4LiH4LmA4Lir4Li04LiZCivguIHguKPguLDguJfguJQKK+C4geC4o+C4sOC4l+C4lOC4geC4o+C4sOC4l+C4seC4mQor4LiB4Lij4Liw4LiX4LiaCivguIHguKPguLDguJfguJrguIHguKPguLDguJfguLHguYjguIcKK+C4geC4o+C4sOC4l+C4muC4geC4o+C4sOC5gOC4l+C4teC4ouC4mgor4LiB4Lij4Liw4LiX4Lia4LiB4Lij4Liw4LmA4LiX4Li34Lit4LiZCivguIHguKPguLDguJfguJrguIHguKPguLDguYHguJfguIEKK+C4geC4o+C4sOC4l+C4o+C4p+C4hwor4LiB4Lij4Liw4LiX4Lin4LiiCivguIHguKPguLDguJfguK3guIEKK+C4geC4o+C4sOC4l+C5ieC4reC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LiZ4LiB4Lij4Liw4LmB4LiX4LmI4LiZCivguIHguKPguLDguJfguYjguK3guKEKK+C4geC4o+C4sOC4l+C5ieC4reC4oeC4geC4o+C4sOC5geC4l+C5ieC4oQor4LiB4Lij4Liw4LiX4LmI4Lit4Lih4LiC4Li14LmJ4Lir4Lih4Li5CivguIHguKPguLDguJfguYjguK3guKHguYDguKXguLfguK3guJQKK+C4geC4o+C4sOC4l+C4sAor4LiB4Lij4Liw4LiX4Liw4LmD4Lia4Lia4Lix4LinCivguIHguKPguLDguJfguLHguYjguIcKK+C4geC4o+C4sOC4l+C4seC5iOC4h+C4leC4tOC4lAorLeC4geC4o+C4sOC4l+C4seC4mQorLeC4geC4o+C4sOC4l+C4seC5ieC4mQor4LiB4Lij4Liw4LiX4LiyCivguIHguKPguLDguJfguLLguIrguLLguKIKK+C4geC4o+C4sOC4l+C4suC4ogor4LiB4Lij4Liw4LiX4Liy4Lii4LmA4Lir4Li04LiZCivguIHguKPguLDguJfguLLguKrguLUKK+C4geC4o+C4sOC4l+C4suC4q+C4reC4hwor4LiB4Lij4Liw4LiX4LizCivguIHguKPguLDguJfguLPguITguKfguLLguKHguJzguLTguJQKK+C4geC4o+C4sOC4l+C4tOC4geC4geC4o+C4sOC4l+C4p+C4ogor4LiB4Lij4Liw4LiX4Li04LiHCivguIHguKPguLDguJfguLTguIfguYLguJfguJkKK+C4geC4o+C4sOC4l+C4tuC4hwor4LiB4Lij4Liw4LiX4Li34LiaCivguIHguKPguLDguJfguLfguJrguJjguKPguJPguLUKK+C4geC4o+C4sOC4l+C4t+C4muC4ouC4reC4mgor4LiB4Lij4Liw4LiX4Li4CivguIHguKPguLDguJfguLjguIcKK+C4geC4o+C4sOC4l+C4uOC5ieC4hwor4LiB4Lij4Liw4LiX4Li44LiH4Lil4Liy4LiiCivguIHguKPguLDguJfguLjguYnguIfguYDguKrguYnguLIKK+C4geC4o+C4sOC4l+C4uOC4h+C4q+C4oeC4suC4muC5ieC4sgor4LiB4Lij4Liw4LiX4Li44LiH4LmA4Lir4LinCivguIHguKPguLDguJfguLjguYjguKEKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiX4Li44LmI4Lih4LiZ4LiyCivguIHguKPguLDguJfguLjguYjguKHguKvguKHguLkKK+C4geC4o+C4sOC4l+C4ueC5iQor4LiB4Lij4Liw4LiX4Li54LmJ4LiW4Liy4LihCivguIHguKPguLDguYDguJfguYgKK+C4geC4o+C4sOC5gOC4l+C5iOC5gOC4o+C5iAorLeC4geC4o+C4sOC5gOC4l+C4teC4ouC4mgor4LiB4Lij4Liw4LmA4LiX4Li14Lii4LihCivguIHguKPguLDguYDguJfguLXguKLguKHguKvguK3guKEKK+C4geC4o+C4sOC5gOC4l+C4t+C4reC4mQor4LiB4Lij4Liw4LmA4LiX4Li34Lit4LiZ4LmD4LiICivguIHguKPguLDguYDguJfguLfguYnguK3guKEKK+C4geC4o+C4sOC5geC4l+C4gQor4LiB4Lij4Liw4LmB4LiX4LiB4LiB4Lij4Liw4LiX4Lix4LmJ4LiZCivguIHguKPguLDguYHguJfguYjguJkKKy3guIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC5geC4l+C4sAor4LiB4Lij4Liw4LmE4LiX4LiK4Liy4LiiCivguIHguKPguLDguJnguIEKK+C4geC4o+C4sOC4meC5iOC4reC4hwor4LiB4Lij4Liw4LiZ4Lix4LmJ4LiZCivguIHguKPguLDguJnguLXguYkKK+C4geC4o+C4sOC5guC4meC5ieC4mQor4LiB4Lij4Liw4LmE4LiZCivguIHguKPguLDguJrguIEKK+C4geC4o+C4sOC4muC4geC4hOC4suC4ogor4LiB4Lij4Liw4Lia4LiWCivguIHguKPguLDguJrguKEKK+C4geC4o+C4sOC4muC4p+C4mQor4LiB4Lij4Liw4Lia4Lin4LiZ4LiB4Lij4Liw4Lia4Li04LiUCivguIHguKPguLDguJrguKfguJnguIHguLLguKMKK+C4geC4o+C4sOC4muC4p+C4meC4geC4suC4o+C4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4LiB4Lij4Liw4Lia4Lin4LiZ4LiE4Lin4Liy4LihCivguIHguKPguLDguJrguKfguJnguIjguLXguJkKK+C4geC4o+C4sOC4muC4p+C4ogor4LiB4Lij4Liw4Lia4Lin4LijCivguIHguKPguLDguJrguK3guIEKK+C4geC4o+C4sOC4muC4reC4geC5gOC4nuC4peC4sgor4LiB4Lij4Liw4Lia4Lit4LiB4Liq4Li54LiaCivguIHguKPguLDguJrguK3guIHguYDguKrguLXguKLguIcKK+C4geC4o+C4sOC4muC4reC4geC4q+C4seC4pwor4LiB4Lij4Liw4Lia4Lit4LiHCivguIHguKPguLDguJrguK3guIfguIHguKXguLbguIcKK+C4geC4o+C4sOC4muC4reC4h+C4geC4seC4mQor4LiB4Lij4Liw4Lia4Lit4LiH4LmA4Lie4LiK4LijCivguIHguKPguLDguJrguK3guIfguKPguLLguKvguLkKK+C4geC4o+C4sOC4muC4sAor4LiB4Lij4Liw4Lia4Lix4LiUCivguIHguKPguLDguJrguLHguYnguKfguIHguKPguLDguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4muC5iOC4sgor4LiB4Lij4Liw4Lia4LmJ4LiyCivguIHguKPguLDguJrguLLguIEKK+C4geC4o+C4sOC4muC4suC4ogor4LiB4Lij4Liw4Lia4Liy4LilCivguIHguKPguLDguJrguLQKK+C4geC4o+C4sOC4muC4tOC5ieC4hwor4LiB4Lij4Liw4Lia4Li04LiUCivguIHguKPguLDguJrguLTguJTguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC4muC4tOC4pQor4LiB4Lij4Liw4Lia4Li14LmICivguIHguKPguLDguJrguLXguYjguIHguKPguLDguJrguK3guIcKK+C4geC4o+C4sOC4muC4teC5iOC4mOC4uOC4igor4LiB4Lij4Liw4Lia4Li14LmI4Lil4Li14Lil4LiyCivguIHguKPguLDguJrguLfguK0KK+C4geC4o+C4sOC4muC4t+C4reC5gOC4iOC5h+C4lOC4leC4seC4pwor4LiB4Lij4Liw4Lia4Li44LiHCivguIHguKPguLDguJrguLjguYjguKHguIHguKPguLDguJrguYjguLLguKEKK+C4geC4o+C4sOC4muC4ueC5ieC4geC4o+C4sOC4muC4teC5iQor4LiB4Lij4Liw4Lia4Li54LiZCivguIHguKPguLDguJrguLnguJnguYDguKXguLfguK3guJQKK+C4geC4o+C4sOC4muC4ueC4owor4LiB4Lij4Liw4LmA4Lia4LiHCivguIHguKPguLDguYDguJrguI0KK+C4geC4o+C4sOC5gOC4muC5h+C4lOC4geC4o+C4sOC4muC4p+C4mQor4LiB4Lij4Liw4LmA4Lia4LiZCivguIHguKPguLDguYDguJrguJnguYDguKvguJnguYfguJoKK+C4geC4o+C4sOC5gOC4muC4sgor4LiB4Lij4Liw4LmA4Lia4Li04LiBCist4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguYDguJrguLXguKLguJQKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4lOC4geC4o+C4sOC4leC4seC4gQor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiU4LiB4Lij4Liw4LmA4Liq4Li14Lii4LijCivguIHguKPguLDguYDguJrguLXguKLguJkKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4hwor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4LmA4LiB4Lil4LmH4LiU4LmA4LiV4LmI4LiyCivguIHguKPguLDguYDguJrguLfguYnguK3guIfguJbguYnguKfguKIKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4luC5ieC4p+C4ouC4geC4sOC4peC4suC5geC4leC4gQor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4Lib4Lij4Li4CivguIHguKPguLDguYDguJrguLfguYnguK3guIfguKPguLkKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4q+C4meC5ieC4suC4p+C4seC4pwor4LiB4Lij4Liw4LmB4Lia4LmICivguIHguKPguLDguYHguJrguIEKK+C4geC4o+C4sOC5geC4muC4geC4h+C4sgor4LiB4Lij4Liw4LmB4Lia4LiwCivguIHguKPguLDguYHguJrguLDguKHguLfguK0KK+C4geC4o+C4sOC5guC4muC4oQor4LiB4Lij4Liw4Lib4Lih4LiB4Lij4Liw4Lib4LizCivguIHguKPguLDguJvguKHguIHguKPguLDguYDguJvguLIKK+C4geC4o+C4sOC4m+C4o+C4reC4gQor4LiB4Lij4Liw4Lib4Lij4Lit4LiB4Lin4LmI4Liy4LinCivguIHguKPguLDguJvguKPguLXguYnguIHguKPguLDguYDguJvguKPguYjguLIKK+C4geC4o+C4sOC4m+C4reC4gQor4LiB4Lij4Liw4Lib4LmJ4Lit4LiB4Lij4Liw4LmB4Lib4LmJCivguIHguKPguLDguJvguYjguK3guIcKK+C4geC4o+C4sOC4m+C5i+C4reC4hwor4LiB4Lij4Liw4Lib4Lit4LiU4LiB4Lij4Liw4LmB4Lib4LiUCivguIHguKPguLDguJvguYvguK3guKvguKXguK0KK+C4geC4o+C4sOC4m+C4seC5ieC4p+C4geC4o+C4sOC5gOC4m+C4teC5ieC4ogorLeC4geC4o+C4sOC4m+C4swor4LiB4Lij4Liw4Lib4LmI4LizCist4LiB4Lij4Liw4Lib4Li04LmI4LihCivguIHguKPguLDguJvguLjguIEKK+C4geC4o+C4sOC4m+C4uOC4geC4q+C4peC4uOC4gQor4LiB4Lij4Liw4Lib4Li44LmI4LihCivguIHguKPguLDguJvguLjguYjguKHguIHguKPguLDguJvguYjguLMKK+C4geC4o+C4sOC4m+C4uOC5iOC4oeC4geC4o+C4sOC4m+C4tOC5iOC4oQorLeC4geC4o+C4sOC5gOC4m+C4sgor4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguIHguKPguLDguYDguJvguYvguLLguKvguJnguLHguIEKK+C4geC4o+C4sOC5gOC4m+C4suC4sAor4LiB4Lij4Liw4LmA4Lib4Liy4Liw4LmA4Lir4Lil4Liy4LiwCist4LiB4Lij4Liw4LmA4Lib4Li14LmJ4LiiCist4LiB4Lij4Liw4LmB4Lib4LmJCist4LiB4Lij4Liw4LmB4Lib4LiUCivguIHguKPguLDguYLguJvguIEKK+C4geC4o+C4sOC5guC4m+C4o+C4hwor4LiB4Lij4Liw4LmC4Lib4Lij4LiH4LiX4Lit4LiHCivguIHguKPguLDguJzguKEKKy3guIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4peC4teC4geC4o+C4sOC4nOC4peC4suC4oQor4LiB4Lij4Liw4Lic4Liy4LiZCivguIHguKPguLDguJzguLXguIEKK+C4geC4o+C4sOC4nOC4teC4geC4o+C4tOC5ieC4mQor4LiB4Lij4Liw4Lie4Lij4Lin4LiZCivguIHguKPguLDguJ7guKPguLTguYnguKEKK+C4geC4o+C4sOC4nuC4reC4gQor4LiB4Lij4Liw4Lie4Lit4LiB4Lin4Lix4LinCivguIHguKPguLDguJ7guK3guIcKK+C4geC4o+C4sOC4nuC5ieC4reC4oQor4LiB4Lij4Liw4Lie4Lix4LiBCivguIHguKPguLDguJ7guLHguIcKK+C4geC4o+C4sOC4nuC4seC4h+C5gOC4q+C4tOC4owor4LiB4Lij4Liw4Lie4Lix4LiH4LmC4Lir4LihCivguIHguKPguLDguJ7guLHguJQKK+C4geC4o+C4sOC4nuC4seC4lOC5geC4oeC5iOC4oeC5iOC4suC4ogor4LiB4Lij4Liw4Lie4Lix4LiV4LijCivguIHguKPguLDguJ7guLHguJkKK+C4geC4o+C4sOC4nuC4seC5iOC4mQor4LiB4Lij4Liw4Lie4LiyCivguIHguKPguLDguJ7guLLguIEKK+C4geC4o+C4sOC4nuC4teC5iQor4LiB4Lij4Liw4Lie4Li14LmJ4LmA4LiC4Liy4LiE4Lin4Liy4LiiCivguIHguKPguLDguJ7guLfguK0KK+C4geC4o+C4sOC4nuC4t+C4reC4guC5iOC4suC4pwor4LiB4Lij4Liw4Lie4Li34Lit4Lib4Li14LiBCivguIHguKPguLDguJ7guLjguYnguIcKK+C4geC4o+C4sOC4nuC4uOC5iOC4oQor4LiB4Lij4Liw4Lie4Li44LmI4Lih4Lih4Li34LitCivguIHguKPguLDguYDguJ7guKXguLTguKgKK+C4geC4o+C4sOC5gOC4nuC4suC4sAor4LiB4Lij4Liw4LmA4Lie4Liy4Liw4Lib4Lil4LiyCivguIHguKPguLDguYDguJ7guLTguIcKK+C4geC4o+C4sOC5gOC4nuC4t+C5iOC4reC4oQor4LiB4Lij4Liw4LmB4Lie4LiHCivguIHguKPguLDguYHguJ7guYnguIcKK+C4geC4o+C4sOC4n+C4seC4lOC4geC4o+C4sOC5gOC4n+C4teC4ouC4lAorLeC4geC4o+C4sOC4n+C4suC4ogor4LiB4Lij4Liw4Lif4Li54Lih4LiB4Lij4Liw4Lif4Liy4LiiCist4LiB4Lij4Liw4LmA4Lif4Li14Lii4LiUCivguIHguKPguLDguKHguKUKK+C4geC4o+C4sOC4oeC4reC4mgor4LiB4Lij4Liw4Lih4Lit4Lih4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKHguLHguIcKK+C4geC4o+C4sOC4oeC4seC4mQor4LiB4Lij4Liw4Lih4Li04LiU4LiB4Lij4Liw4LmA4Lih4Li14LmJ4Lii4LiZCivguIHguKPguLDguKHguLbguJkKK+C4geC4o+C4sOC4oeC4uOC4lwor4LiB4Lij4Liw4LmA4Lih4Liy4LiwCist4LiB4Lij4Liw4LmA4Lih4Li14LmJ4Lii4LiZCist4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKLguYjguK3guIcKKy3guIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC5iOC4reC4h+C4geC4o+C4sOC5geC4ouC5iOC4hwor4LiB4Lij4Liw4Lii4LmI4Lit4LiZCivguIHguKPguLDguKLguYjguK3guKEKK+C4geC4o+C4sOC4ouC4sgor4LiB4Lij4Liw4Lii4Liy4LiE4LiK4Lin4Liy4LiHCivguIHguKPguLDguKLguLLguIcKK+C4geC4o+C4sOC4ouC4suC4iOC4gQorLeC4geC4o+C4sOC4ouC4suC4lAor4LiB4Lij4Liw4Lii4Liy4LiU4Lit4LiBCivguIHguKPguLDguKLguLLguJTguK3guIHguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4ouC4suC4l+C4suC4mQor4LiB4Lij4Liw4Lii4Liy4LiX4Li04Lie4Lii4LmMCivguIHguKPguLDguKLguLLguJrguKfguIoKK+C4geC4o+C4sOC4ouC4suC5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4Lii4Liy4Lij4LiH4LiE4LmMCivguIHguKPguLDguKLguLLguYDguKXguKIKK+C4geC4o+C4sOC4ouC4suC4quC4meC4suC4mQor4LiB4Lij4Liw4Lii4Liy4Liq4Lix4LiH4LmA4Lin4LiiCivguIHguKPguLDguKLguLLguKrguLHguIfguYHguKfguIcKK+C4geC4o+C4sOC4ouC4suC4quC4suC4o+C4lwor4LiB4Lij4Liw4Lii4Liy4LmA4Liq4Lin4LiiCivguIHguKPguLDguKLguLLguKvguIfguLHguJkKK+C4geC4o+C4sOC4ouC4suC4q+C4suC4owor4LiB4Lij4Liw4Lii4Li04LiBCivguIHguKPguLDguKLguLTguYnguKHguIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC4tuC4geC4geC4o+C4sOC4ouC4t+C4rQor4LiB4Lij4Liw4Lii4Li34LiU4LiB4Lij4Liw4Lii4Liy4LiUCivguIHguKPguLDguYDguKLguYnguK3guIHguKPguLDguYHguKvguKLguYjguIcKKy3guIHguKPguLDguYHguKLguYjguIcKK+C4geC4o+C4sOC4o+C4reC4gQor4LiB4Lij4Liw4Lij4Lit4LiB4LiZ4LmJ4Liz4LiC4LmJ4Liy4LinCivguIHguKPguLDguYDguKPguLXguKLguJkKK+C4geC4o+C4sOC5guC4o+C4geC4meC5ieC4s+C4guC5ieC4suC4pwor4LiB4Lij4Liw4LmC4Lij4LiB4LmD4Lir4LiN4LmICivguIHguKPguLDguYTguKMKK+C4geC4o+C4sOC4peC4lAor4LiB4Lij4Liw4Lil4LiaCivguIHguKPguLDguKXguK3guIEKK+C4geC4o+C4sOC4peC4reC4oQor4LiB4Lij4Liw4Lil4Liw4Lir4Lil4LmI4LizCivguIHguKPguLDguKXguLHguJQKK+C4geC4o+C4sOC4peC4seC4mgor4LiB4Lij4Liw4Lil4Lix4Lia4LiB4Lij4Liw4LmA4Lil4Li34Lit4LiBCivguIHguKPguLDguKXguLHguKHguJ7guKMKK+C4geC4o+C4sOC4peC4sgor4LiB4Lij4Liw4Lil4Liy4LiB4Liy4LijCivguIHguKPguLDguKXguLLguJ7guLTguJkKK+C4geC4o+C4sOC4peC4suC4ouC4geC4o+C4sOC4peC4reC4gQor4LiB4Lij4Liw4Lil4Liy4Lio4Lij4Li1CivguIHguKPguLDguKXguLMKK+C4geC4o+C4sOC4peC4s+C4nuC4owor4LiB4Lij4Liw4Lil4Liz4Lie4Lix4LiBCivguIHguKPguLDguKXguLPguJ7guLjguIEKK+C4geC4o+C4sOC4peC4tOC4hwor4LiB4Lij4Liw4Lil4Li1CivguIHguKPguLDguKXguLbguIcKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4suC4hwor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Li44LiBCivguIHguKPguLDguKXguLjguKHguJ7guLkKK+C4geC4o+C4sOC4peC4ueC4mQor4LiB4Lij4Liw4Lil4Li54LmI4LiZ4LmMCivguIHguKPguLDguYDguKXguYfguJkKK+C4geC4o+C4sOC5gOC4peC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lil4Li34Lit4LiBCivguIHguKPguLDguYLguKXguIcKK+C4geC4o+C4sOC4p+C4mQor4LiB4Lij4Liw4Lin4LiZ4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguKfguLHguJQKK+C4geC4o+C4sOC4p+C5iOC4sgorLeC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4Lin4Liy4LiZCivguIHguKPguLDguKfguLLguKIKK+C4geC4o+C4sOC4p+C4suC4ouC4geC4o+C4sOC4p+C4mQor4LiB4Lij4Liw4Lin4Li04LiZCivguIHguKPguLDguKfguLUKK+C4geC4o+C4sOC4p+C4teC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4Lin4Li54LiU4LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguYDguKfguJkKK+C4geC4o+C4sOC5gOC4p+C4meC4geC4o+C4sOC4p+C4mQor4LiB4Lij4Liw4LmA4Lin4Lii4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguYHguKfguJkKK+C4geC4o+C4sOC5guC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lio4LiBCivguIHguKPguLDguKjguLHguKIKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lij4Liw4Lip4Lix4LiV4Lij4Li1CivguIHguKPguLDguKnguLHguKIKK+C4geC4o+C4sOC4qeC4seC4ouC4geC4peC5iOC4reC4mQor4LiB4Lij4Liw4Lip4Liy4Lib4LiT4LmMCivguIHguKPguLDguKnguLTguKMKK+C4geC4o+C4sOC5gOC4qeC4oQor4LiB4Lij4Liw4LmA4Lip4Lih4Liq4Liy4LiZ4LiV4LmMCivguIHguKPguLDguYDguKnguLXguKLguKMKK+C4geC4o+C4sOC4quC4hworLeC4geC4o+C4sOC4quC4mQor4LiB4Lij4Liw4Liq4LiaCivguIHguKPguLDguKrguKEKK+C4geC4o+C4sOC4quC4o+C4p+C4pQor4LiB4Lij4Liw4Liq4Lij4LmJ4Lit4LiiCivguIHguKPguLDguKrguKfguJkKK+C4geC4o+C4sOC4quC4p+C4ogor4LiB4Lij4Liw4Liq4Lit4LiaCivguIHguKPguLDguKrguLAKK+C4geC4o+C4sOC4quC4seC4hwor4LiB4Lij4Liw4Liq4Lix4LiZCivguIHguKPguLDguKrguLHguJrguIHguKPguLDguKrguYjguLLguKIKK+C4geC4o+C4sOC4quC4sgor4LiB4Lij4Liw4Liq4Liy4LiZ4LiV4Li04LmMCivguIHguKPguLDguKrguLLguJoKK+C4geC4o+C4sOC4quC4suC4ogorLeC4geC4o+C4sOC4quC5iOC4suC4ogor4LiB4Lij4Liw4Liq4Li04LiZ4LiY4Li4CivguIHguKPguLDguKrguLfguK0KK+C4geC4o+C4sOC4quC4t+C4reC4lOC4ueC4lAor4LiB4Lij4Liw4Liq4Li44LiH4LiB4Lij4Liw4Liq4Li04LiHCivguIHguKPguLDguKrguLjguJkKK+C4geC4o+C4sOC4quC4uOC4meC4m+C4t+C4mQor4LiB4Lij4Liw4Liq4Li44LiZ4Lin4Li04LiW4Li1CivguIHguKPguLDguKrguLnguJfguJjguLTguYwKK+C4geC4o+C4sOC4quC4ueC4mgor4LiB4Lij4Liw4LmA4Liq4LiUCivguIHguKPguLDguYDguKrguYfguJnguIHguKPguLDguKrguLLguKIKK+C4geC4o+C4sOC5gOC4quC5iOC4sgor4LiB4Lij4Liw4LmA4Liq4Liy4Liw4LiB4Lij4Liw4LmB4Liq4LiwCivguIHguKPguLDguYDguKrguLXguKLguJkKK+C4geC4o+C4sOC5gOC4quC4teC4ouC4owor4LiB4Lij4Liw4LmA4Liq4Li34Lit4LiB4LiB4Lij4Liw4Liq4LiZCivguIHguKPguLDguYHguKoKK+C4geC4o+C4sOC5geC4quC4geC4suC4o+C5gOC4h+C4tOC4mQor4LiB4Lij4Liw4LmB4Liq4LiE4Lin4Liy4LihCivguIHguKPguLDguYHguKrguIcKK+C4geC4o+C4sOC5geC4quC4iOC4tOC4lQor4LiB4Lij4Liw4LmB4Liq4LiV4Lij4LiHCivguIHguKPguLDguYHguKrguJnguYnguLMKK+C4geC4o+C4sOC5geC4quC4nuC4o+C4sOC4o+C4suC4iuC4lOC4s+C4o+C4seC4qgor4LiB4Lij4Liw4LmB4Liq4Lij4Lix4Lia4Liq4Lix4LmI4LiHCivguIHguKPguLDguYHguKrguKXguKEKK+C4geC4o+C4sOC5geC4quC4quC4peC4seC4mgor4LiB4Lij4Liw4LmB4Liq4LmA4Liq4Li14Lii4LiHCivguIHguKPguLDguYHguKrguLAKK+C4geC4o+C4sOC5guC4quC4hwor4LiB4Lij4Liw4LmE4LiqCivguIHguKPguLDguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4q+C4mQor4LiB4Lij4Liw4Lir4LiZ4LiBCivguIHguKPguLDguKvguJnguIHguIHguLTguJnguKPguLUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4pOC4oeC4tOC4lQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiZ4Liy4Lij4Li1CivguIHguKPguLDguKvguJnguYjguK3guIcKK+C4geC4o+C4sOC4q+C4meC4suC4gQor4LiB4Lij4Liw4Lir4LiZ4Liy4LiaCivguIHguKPguLDguKvguJnguLLguJrguITguLLguJrguYDguIHguLXguYjguKLguKcKK+C4geC4o+C4sOC4q+C4meC5iOC4swor4LiB4Lij4Liw4Lir4Lih4Lin4LiUCivguIHguKPguLDguKvguKHguK3guJoKK+C4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lih4LmI4Lit4Lih4Lia4Liy4LiHCivguIHguKPguLDguKvguKHguLHguYjguIcKK+C4geC4o+C4sOC4q+C4oeC5iOC4sgorLeC4geC4o+C4sOC4q+C4oeC4tOC4lAor4LiB4Lij4Liw4Lir4Lih4Li04LiaCivguIHguKPguLDguKvguKHguLjguJTguIHguKPguLDguKvguKHguLTguJQKK+C4geC4o+C4sOC4q+C4oeC4uOC5iOC4mQor4LiB4Lij4Liw4Lir4Lih4Li44LiaCivguIHguKPguLDguKvguKHguLjguJrguIHguKPguLDguKvguKHguLTguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4Lir4Lii4LiUCivguIHguKPguLDguKvguKLguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lir4Lii4LmI4Lit4LihCivguIHguKPguLDguKvguKLguLAKK+C4geC4o+C4sOC4q+C4ouC4seC4hwor4LiB4Lij4Liw4Lir4Lii4Lix4LiaCivguIHguKPguLDguKvguKLguLTguYjguKEKK+C4geC4o+C4sOC4q+C4o+C4reC4lAor4LiB4Lij4Liw4Lir4Lij4Li04LmI4LiHCivguIHguKPguLDguKvguKfguJkKK+C4geC4o+C4sOC4q+C4p+C4seC4lAor4LiB4Lij4Liw4Lir4Lin4Lix4LiU4LmA4LiB4Lil4LmJ4LiyCivguIHguKPguLDguKvguKfguYjguLIKK+C4geC4o+C4sOC4q+C4reC4hwor4LiB4Lij4Liw4Lir4Lix4LiHCivguIHguKPguLDguKvguLHguJQKK+C4geC4o+C4sOC4q+C4suC4hwor4LiB4Lij4Liw4Lir4Liy4LiiCivguIHguKPguLDguKvguLbguKEKK+C4geC4o+C4sOC4q+C4tuC5iOC4oQor4LiB4Lij4Liw4Lir4Li34LiU4LiB4Lij4Liw4Lir4Lit4LiaCivguIHguKPguLDguYDguKvguYfguJkKK+C4geC4o+C4sOC5gOC4q+C4meC5h+C4iAor4LiB4Lij4Liw4LmA4Lir4LiZ4LmH4LiI4LiB4Lij4Liw4LmB4Lir4LiZ4LmICivguIHguKPguLDguYDguKvguJnguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5gOC4q+C4oeC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lir4Lih4LmH4LiU4LiB4Lij4Liw4LmB4Lir4Lih4LmICivguIHguKPguLDguYDguKvguKHguYjguJkKK+C4geC4o+C4sOC5gOC4q+C4oeC5iOC4sgor4LiB4Lij4Liw4LmA4Lir4Lil4Li14Lii4LiBCivguIHguKPguLDguYDguKvguKfguYjguLIKK+C4geC4o+C4sOC5gOC4q+C5iOC4rQor4LiB4Lij4Liw4LmA4Lir4Li04LihCivguIHguKPguLDguYDguKvguLXguYnguKLguJnguIHguKPguLDguKvguLfguK3guKPguLfguK0KK+C4geC4o+C4sOC5geC4qwor4LiB4Lij4Liw4LmB4Lir4LiX4Lit4LiHCist4LiB4Lij4Liw4LmB4Lir4LiZCivguIHguKPguLDguYHguKvguJnguYgKK+C4geC4o+C4sOC5geC4q+C4meC4mgor4LiB4Lij4Liw4LmB4Lir4LiZ4LiwCivguIHguKPguLDguYHguKvguJnguLDguIHguKPguLDguYHguKvguJkKK+C4geC4o+C4sOC5geC4q+C4oeC4mgor4LiB4Lij4Liw4LmB4Lir4Lih4LmI4LinCivguIHguKPguLDguYHguKvguKLguYjguIcKK+C4geC4o+C4sOC5geC4q+C4o+C5iOC4oQor4LiB4Lij4Liw4LmB4Lir4Lil4LmI4LiHCivguIHguKPguLDguYLguKvguYkKK+C4geC4o+C4sOC5guC4q+C4meC4lAor4LiB4Lij4Liw4LmC4Lir4LihCivguIHguKPguLDguYLguKvguKIKK+C4geC4o+C4sOC5guC4q+C4ouC5iOC4hworLeC4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lin4LilCivguIHguKPguLDguK3guYnguK3guIHguKPguLDguYHguK3guYkKK+C4geC4o+C4sOC4reC4reC4lOC4geC4o+C4sOC5geC4reC4lAor4LiB4Lij4Liw4Lit4Lit4LiaCivguIHguKPguLDguK3guK3guKEKK+C4geC4o+C4sOC4reC5ieC4reC4oeC4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4Lit4Lit4Lih4LiZ4LmJ4LizCivguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lix4LiB4LiB4Lij4Liw4LmE4LitCivguIHguKPguLDguK3guLHguYnguKfguYHguJfguIfguITguKfguLLguKIKK+C4geC4o+C4sOC4reC5ieC4sgor4LiB4Lij4Liw4Lit4Liy4LiZCivguIHguKPguLDguK3guLTguJQKK+C4geC4o+C4sOC4reC4tOC4lOC4geC4o+C4sOC5gOC4reC4t+C5ieC4reC4mQor4LiB4Lij4Liw4Lit4Li24LiBCivguIHguKPguLDguK3guLbguIHguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4tuC4lAor4LiB4Lij4Liw4Lit4Li34LiUCivguIHguKPguLDguK3guLgKK+C4geC4o+C4sOC4reC4uOC4gQor4LiB4Lij4Liw4LmA4Lit4LiaCivguIHguKPguLDguYDguK3guLIKK+C4geC4o+C4sOC5gOC4reC4tOC4gQor4LiB4Lij4Liw4LmA4Lit4Li04LiaCist4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguYHguK3guIEKKy3guIHguKPguLDguYHguK3guJQKK+C4geC4o+C4sOC5geC4reC4mgor4LiB4Lij4Liw4LmB4Lit4LihCist4LiB4Lij4Liw4LmB4Lit4LmJ4LihCivguIHguKPguLDguYTguK0KK+C4geC4o+C4sOC5hOC4reC4geC4o+C4sOC5geC4reC4oQor4LiB4Lij4Lix4LiBCivguIHguKPguLHguIHguILguLUKK+C4geC4o+C4seC4hwor4LiB4Lij4Lix4LiK4LiB4Liy4LiiCivguIHguKPguLHguJPguJEtCivguIHguKPguLHguJPguJHguYwKK+C4geC4o+C4seC4k+C4ouC5jAor4LiB4Lij4Lix4LiZCivguIHguKPguLHguJoKK+C4geC4o+C4seC4oQor4LiB4Lij4Liy4LiBCivguIHguKPguLLguIcKK+C4geC4o+C5iOC4suC4hwor4LiB4Lij4Liy4LiH4LmA4LiB4Lij4Li14Lii4LiHCivguIHguKPguLLguJQKKy3guIHguKPguLLguJQKK+C4geC4o+C4suC4lOC5gOC4geC4o+C4teC5ieC4ouC4pwor4LiB4Lij4Liy4LiU4Lin4LiHCivguIHguKPguLLguJkKK+C4geC4o+C5ieC4suC4mQor4LiB4Lij4Liy4LiZ4LiB4LiQ4Li04LiZCivguIHguKPguLLguJoKK+C4geC4o+C4suC4muC4nuC4o+C4sAor4LiB4Lij4Liy4LifCivguIHguKPguLLguKEKK+C4geC4o+C4suC4oeC4iuC5ieC4suC4hwor4LiB4Lij4Liy4Lih4Lie4Lil4Li5CivguIHguKPguLLguKIKK+C4geC4o+C5iOC4suC4ogor4LiB4Lij4Liy4LilCivguIHguKPguLLguKcKK+C4geC4o+C5ieC4suC4pwor4LiB4Lij4Liy4Lin4LiU4LmI4Liy4LiHCivguIHguKPguLLguKfguKPguLnguJQKK+C4geC4o+C4suC4quC4tOC4gQor4LiB4Lij4LizCivguIHguKPguYjguLMKK+C4geC4o+C5iOC4s+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li04LiBCivguIHguKPguLTguYrguIEKK+C4geC4o+C4tOC4geC4geC4o+C4tOC4pwor4LiB4Lij4Li04LiB4LiB4Lij4Li1CivguIHguKPguLTguYjguIcKK+C4geC4o+C4tOC5iuC4hwor4LiB4Lij4Li04LiH4LiB4Lij4Li04LinCivguIHguKPguLTguYnguIfguIHguKPguLTguYnguKcKK+C4geC4o+C4tOC5iOC4h+C5gOC4geC4o+C4hwor4LiB4Lij4Li04LmI4LiH4LmD4LiICivguIHguKPguLTguIoKK+C4geC4o+C4tOC4k+C4tQor4LiB4Lij4Li04LiV4LiiLQor4LiB4Lij4Li04LiZCivguIHguKPguLTguJnguJfguKPguYwKK+C4geC4o+C4tOC4meC4tQor4LiB4Lij4Li04LiaCivguIHguKPguLTguKEKK+C4geC4o+C4tOC5iOC4oQor4LiB4Lij4Li04Lii4LiyCivguIHguKPguLTguKLguLLguJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4geC4o+C4tOC4ouC4suC4p+C4tOC5gOC4qOC4qeC4k+C5jAor4LiB4Lij4Li04Lii4Liy4Lin4Li04LmA4Lio4Lip4LiT4LmM4Lin4Lil4Li1CivguIHguKPguLTguKLguLLguKfguLTguYDguKjguKnguJPguLLguJnguLjguJvguKPguLDguYLguKLguIQKK+C4geC4o+C4tOC4pwor4LiB4Lij4Li04LmJ4LinCivguIHguKPguLTguKfguIHguKPguLLguKcKK+C4geC4o+C4tOC4p+C4peC4suC4ogor4LiB4Lij4Li1CivguIHguKPguLXguJHguLIKK+C4geC4o+C4teC4keC4suC4geC4owor4LiB4Lij4Li14LiR4Liy4Lig4Li04Lij4Lih4Lii4LmMCivguIHguKPguLXguJHguLLguKPguKHguKLguYwKK+C4geC4o+C4teC4keC4suC4quC4luC4suC4mQor4LiB4Lij4Li14LiUCivguIHguKPguLXguYrguJQKK+C4geC4o+C4teC4lOC4geC4o+C4suC4lAor4LiB4Lij4Li14LiU4LiB4Lij4Liy4LiiCivguIHguKPguLXguJTguJnguLTguYnguKcKK+C4geC4o+C4teC4mOC4sgor4LiB4Lij4Li14LiY4Liy4LiX4Lix4LieCivguIHguKPguLXguJjguLLguJ7guKUKK+C4geC4o+C4teC4qQor4LiB4Lij4Li14LiqCivguIHguKPguLbguIcKK+C4geC4o+C4uAor4LiB4Lij4Li44LiBCivguIHguKPguLjguIHguIHguKPguLHguIEKK+C4geC4o+C4uOC4geC4geC4o+C4ueC5igor4LiB4Lij4Li44LiHCivguIHguKPguLjguYnguIfguIHguKPguLTguYjguIcKK+C4geC4o+C4uOC4h+C5gOC4guC4oeC4sgor4LiB4Lij4Li44LiH4Lie4Liy4Lil4Li1CivguIHguKPguLjguJMKK+C4geC4o+C4uOC4k+C4sgor4LiB4Lij4Li44LiT4Liy4LiX4Lik4LiE4Li44LiTCivguIHguKPguLjguJkKK+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li44LiaCivguIHguKPguLjguJrguIHguKPguLTguJoKK+C4geC4o+C4uOC5iOC4oQor4LiB4Lij4Li44LmJ4Lih4LiB4Lij4Li04LmI4LihCivguIHguKPguLjguKIKK+C4geC4o+C4uOC4ouC4geC4o+C4suC4ogor4LiB4Lij4Li44Lii4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLkKK+C4geC4o+C4ueC4lAor4LiB4Lij4Li54LihCivguIHguYDguKPguJPguLgKK+C4geC5gOC4o+C4k+C4uOC4geC4sgor4LiB4LmA4Lij4LiZ4LiX4LijCivguIHguYDguKPguJnguJfguKPguYwKK+C4geC4pOC4igor4LiB4Lik4LiULQor4LiB4Lik4LiU4Lii4Liy4LmA4LiB4Li14Lii4Lij4LiTCivguIHguKTguJTguLIKK+C4geC4pOC4lOC4suC4geC4suC4owor4LiB4Lik4LiU4Liy4LiN4LiK4Lil4Li1CivguIHguKTguJTguLLguJjguLTguIHguLLguKMKK+C4geC4pOC4lOC4suC4oOC4tOC4meC4tOC4q+C4suC4owor4LiB4Lik4LiU4Liy4Lit4Lix4LiN4LiK4Lil4Li1CivguIHguKTguJTguLQKK+C4geC4pOC4lOC4teC4geC4sgor4LiB4Lik4LiV4LiV4Li04LiB4LiyCivguIHguKTguJXguKItCivguIHguKTguJXguKLguI7guLXguIHguLIKK+C4geC4pOC4leC4ouC4sgor4LiB4Lik4LiV4Li04LiB4LiyCivguIHguKTguJXguLTguKLguLIKK+C4geC4pOC4qeC4juC4sgor4LiB4Lik4Lip4LiO4Liy4LiNCivguIHguKTguKnguI7guLLguI3guIrguKXguLTguJUKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4peC4tQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4Lil4Li04LiV4Lin4LiyCivguIHguKTguKnguI7guLLguI3guIrguKfguKXguLTguKgKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C5gOC4peC4qAor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Li44Lil4Li1CivguIHguKTguKnguI7guLLguJjguLLguKMKK+C4geC4pOC4qeC4juC4suC4oOC4tOC4meC4tOC4q+C4suC4owor4LiB4Lik4Lip4LiO4Li1CivguIHguKTguKnguI7guLXguIHguLIKK+C4geC4pOC4qeC4k+C4sgor4LiB4LilCivguIHguKUtCivguIHguKXguYTguIEKK+C4geC4peC4ieC5ieC4reC4ieC4pQor4LiB4Lil4LiUCivguIHguKXguJTguIHguLPguKHguLDguKXguK0KK+C4geC4peC4lOC4nuC4o+C4sOC4quC4uOC5gOC4oeC4o+C4uAor4LiB4Lil4LmI4LiZCivguIHguKXguJoKK+C4geC4peC4muC5gOC4geC4peC4teC5iOC4ogor4LiB4Lil4Lia4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguIHguKXguJrguJcKK+C4geC4peC4muC4muC4seC4leC4o+C4quC4uOC4oeC5gOC4nuC4peC4tOC4hwor4LiB4Lil4Lie4Lii4Liy4LiZCivguIHguKXguYTguJ8KK+C4geC4peC4oQor4LiB4Lil4Lih4LiB4Lil4LmI4Lit4LihCivguIHguKXguKHguIHguKXguLfguJkKK+C4geC4peC4oeC4geC4peC4t+C4meC4geC4peC4reC4mQor4LiB4Lil4Lih4LmA4LiB4Lil4Li14Lii4LinCivguIHguKXguKHguJTguLTguIEKK+C4geC4peC4oeC5gOC4m+C5h+C4meC4peC4ueC4geC4oeC4sOC4meC4suC4pwor4LiB4Lil4Lih4LigCivguIHguKXguYDguKHguYfguJQKK+C4geC4peC4ouC4uOC4l+C4mOC5jAor4LiB4Lil4Lil4LiwCivguIHguKXguKfguIcKK+C4geC4peC4p+C4oQor4LiB4Lil4LmJ4Lin4LiiCivguIHguKXguYnguKfguKLguIHguKXguYnguLLguKIKK+C4geC4peC5ieC4p+C4ouC5geC4guC4gQor4LiB4Lil4LmJ4Lin4Lii4LiH4Lin4LiH4LiK4LmJ4Liy4LiHCivguIHguKXguYnguKfguKLguYDguJXguYjguLIKK+C4geC4peC5ieC4p+C4ouC5g+C4leC5iQor4LiB4Lil4LmJ4Lin4Lii4LiZ4LmJ4Lit4LiiCivguIHguKXguYnguKfguKLguYTguKHguYkKK+C4geC4peC5ieC4p+C4ouC4quC4seC5ieC4mQor4LiB4Lil4LmJ4Lin4Lii4Lir4Lih4Li54Liq4Lix4LiHCivguIHguKXguKfguLTguJjguLUKK+C4geC4peC4qAor4LiB4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguIHguKXguKvguLLguKIKK+C4geC4peC5gOC4q+C4ogor4LiB4Lil4LmJ4LitCivguIHguKXguK3guIEKK+C4geC4peC4reC4geC4geC4peC4seC4mgor4LiB4Lil4Lit4LiB4LmB4LiB4Lil4LiBCivguIHguKXguK3guIcKK+C4geC4peC5iOC4reC4hwor4LiB4Lil4LmJ4Lit4LiHCivguIHguKXguYnguK3guIfguYHguIHguKXguYnguIcKK+C4geC4peC5ieC4reC4h+C4iOC4uOC4peC4l+C4o+C4o+C4qOC4meC5jAor4LiB4Lil4LmJ4Lit4LiH4LiV4Li44LiUCivguIHguKXguYnguK3guIfguYLguJfguKPguJfguKPguKPguKjguJnguYwKK+C4geC4peC4reC4h+C5gOC4nuC4pQor4LiB4Lil4LmJ4Lit4LiH4Lij4Liw4LiU4Lix4LiaCivguIHguKXguYnguK3guIfguKfguLHguJTguKHguLjguKEKK+C4geC4peC5ieC4reC4h+C4quC4meC4suC4oQor4LiB4Lil4LmJ4Lit4LiH4Liq4Lil4Lix4LiUCivguIHguKXguYnguK3guIfguKrguYjguK3guIfguJfguLLguIfguYTguIHguKUKK+C4geC4peC5ieC4reC4h+C4quC4s+C4o+C4p+C4iAor4LiB4Lil4Lit4LiZCivguIHguKXguYjguK3guJkKK+C4geC4peC5ieC4reC4mQor4LiB4Lil4Lit4LiZ4LiU4LmJ4LiZCivguIHguKXguK3guJnguJXguKXguLLguJQKK+C4geC4peC4reC4meC4peC4tOC4peC4tOC4lQor4LiB4Lil4Lit4LiZ4Liq4LiUCivguIHguKXguK3guJnguKrguKfguJQKK+C4geC4peC4reC4meC4quC4uOC4oOC4suC4ngor4LiB4Lil4LmI4Lit4LihCivguIHguKXguYjguK3guKHguYDguIHguKXguLIKK+C4geC4peC5iOC4reC4oeC5gOC4geC4peC4teC5ieC4ouC4hwor4LiB4Lil4LmJ4Lit4Lih4LmB4LiB4Lil4LmJ4LihCivguIHguKXguYjguK3guKHguJfguYnguK3guIcKK+C4geC4peC5iOC4reC4oeC4oeC4lOC4peC4ueC4gQor4LiB4Lil4LmI4Lit4Lih4Lir4LitCivguIHguKXguK3guKIKK+C4geC4peC4reC4seC4geC4qeC4owor4LiB4Lil4Lit4Li44Lib4LiB4Lij4LiT4LmMCivguIHguKXguLHguIEKK+C4geC4peC4seC4hwor4LiB4Lil4Lix4LiUCivguIHguKXguLHguJTguIHguKXguLjguYnguKEKK+C4geC4peC4seC4lOC4oeC4seC4mQor4LiB4Lil4Lix4LmI4LiZCivguIHguKXguLHguYnguJkKK+C4geC4peC4seC5iOC4meC4geC4o+C4reC4hwor4LiB4Lil4Lix4LmI4LiZ4LmB4LiB4Lil4LmJ4LiHCivguIHguKXguLHguYnguJnguYPguIgKK+C4geC4peC4seC4meC4lwor4LiB4Lil4Lix4LiZ4LiX4LiB4LmMCivguIHguKXguLHguJoKK+C4geC4peC4seC4muC4geC4peC4reC4gQor4LiB4Lil4Lix4Lia4LiB4Lil4Liy4LiiCivguIHguKXguLHguJrguYDguIHguKXguLfguK3guIEKK+C4geC4peC4seC4muC4hOC4swor4LiB4Lil4Lix4Lia4LiE4Li34LiZCivguIHguKXguLHguJrguJXguLLguKXguJvguLHguJXguKMKK+C4geC4peC4seC4muC5gOC4meC4t+C5ieC4reC4geC4peC4seC4muC4leC4seC4pwor4LiB4Lil4Lix4Lia4LmE4Lib4LiB4Lil4Lix4Lia4Lih4LiyCivguIHguKXguLHguJrguKvguJnguYnguLLguKHguLfguK3guYDguJvguYfguJnguKvguKXguLHguIfguKHguLfguK0KK+C4geC4peC4seC4oeC4nuC4gQor4LiB4Lil4Lix4Lih4Lie4LijCivguIHguKXguLHguKHguJ7guLHguIEKK+C4geC4peC4seC4pwor4LiB4Lil4Lix4LmJ4LinCivguIHguKXguLHguYnguKfguYDguIHguKXguLXguYnguKIKK+C4geC4peC4seC5ieC4p+C4hOC4rQor4LiB4Lil4Lix4Lin4LiZ4LmJ4LizCivguIHguKXguLHguKfguKXguLLguJkKK+C4geC4peC4sgor4LiB4Lil4LmI4LiyCivguIHguKXguYnguLIKK+C4geC4peC4suC4gQor4LiB4Lil4Liy4LiB4Lil4Liy4LiUCivguIHguKXguLLguIcKK+C4geC4peC4suC4h+C5gOC4geC5iOC4suC4geC4peC4suC4h+C5g+C4q+C4oeC5iAor4LiB4Lil4Liy4LiH4LiE4LiZCivguIHguKXguLLguIfguITguLHguJkKK+C4geC4peC4suC4h+C4hOC5iOC4swor4LiB4Lil4Liy4LiH4LiE4Li34LiZCivguIHguKXguLLguIfguYHguIjguYnguIcKK+C4geC4peC4suC4h+C5g+C4iOC4oeC4t+C4rQor4LiB4Lil4Liy4LiH4LiK4LmJ4Liy4LiHCivguIHguKXguLLguIfguJTguLTguJkKK+C4geC4peC4suC4h+C4lOC4tuC4gQor4LiB4Lil4Liy4LiH4LmA4LiU4Li34Lit4LiZCivguIHguKXguLLguIfguJfguLLguKrguLUKK+C4geC4peC4suC4h+C4meC4reC4gQor4LiB4Lil4Liy4LiH4Lia4LmJ4Liy4LiZCivguIHguKXguLLguIfguYHguJvguKXguIcKK+C4geC4peC4suC4h+C5gOC4oeC4t+C4reC4hwor4LiB4Lil4Liy4LiH4Lin4Lix4LiZCivguIHguKXguLLguIfguKvguLLguKcKK+C4geC4peC4suC4lAor4LiB4Lil4Liy4LiU4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguIHguKXguYnguLLguYTguJTguYnguIHguKXguYnguLLguYDguKrguLXguKIKK+C4geC4peC5ieC4suC4meC4seC4geC4oeC4seC4geC4muC4tOC5iOC4mQor4LiB4Lil4Liy4Lia4Liy4LiVCivguIHguKXguLLguJsKK+C4geC4peC5ieC4suC4oQor4LiB4Lil4Liy4LiiCivguIHguKXguYnguLLguKIKK+C4geC4peC4suC4ouC4geC4peC4reC4gQor4LiB4Lil4LmI4Liy4LinCivguIHguKXguYjguLLguKfguYDguIHguKXguLXguYnguKLguIcKK+C4geC4peC5iOC4suC4p+C4guC4p+C4seC4jQor4LiB4Lil4LmI4Liy4Lin4LmC4LiX4LipCivguIHguKXguYjguLLguKfguKvguLIKK+C4geC4peC5iOC4suC4p+C5guC4reC4oQor4LiB4Lil4Liy4LmC4Lir4LihCivguIHguKXguYjguLMKK+C4geC4peC5ieC4swor4LiB4Lil4LmJ4Liz4LiB4Lij4Liy4LiiCivguIHguKXguYnguLPguIHguKXguLfguJkKK+C4geC4peC4tOC5iOC4hwor4LiB4Lil4Li04LmJ4LiHCivguIHguKXguLTguYnguIfguIHguKXguK3guIEKK+C4geC4peC4tOC5ieC4h+C4geC4peC4suC4h+C4lOC4hwor4LiB4Lil4Li04LmJ4LiH4LmA4LiB4Lil4Li34Lit4LiBCivguIHguKXguLTguIfguITguYwKK+C4geC4peC4tOC5ieC4h+C4hOC4o+C4geC4guC4tuC5ieC4meC5gOC4guC4sgor4LiB4Lil4Li04LmJ4LiH4LmA4Lib4LmH4LiZ4Lil4Li54LiB4Lih4Liw4LiZ4Liy4LinCivguIHguKXguLTguYjguJkKK+C4geC4peC4tOC5iOC4meC4reC4suC4ogor4LiB4Lil4Li04LmJ4LihCivguIHguKXguLUKK+C4geC4peC4teC5iAor4LiB4Lil4Li14LiaCivguIHguKXguLXguJrguJXguLIKK+C4geC4peC4teC4muC4muC4seC4pwor4LiB4Lil4Li14Lia4Lir4Li04LiZCivguIHguKXguLbguIcKK+C4geC4peC4tuC5ieC4hwor4LiB4Lil4Li24LiH4LiB4Lil4LmI4Lit4LihCivguIHguKXguLbguIfguITguYwKK+C4geC4peC4t+C4mQor4LiB4Lil4Li34LiZ4LmE4Lih4LmI4LmA4LiC4LmJ4Liy4LiE4Liy4Lii4LmE4Lih4LmI4Lit4Lit4LiBCivguIHguKXguLjguYjguKEKK+C4geC4peC4uOC5ieC4oQor4LiB4Lil4Li44LmJ4Lih4LmD4LiICivguIHguKXguLjguYnguKHguKPguLjguKEKK+C4geC4peC4uOC5ieC4oeC4reC4geC4geC4peC4uOC5ieC4oeC5g+C4iAor4LiB4Lil4Li54LmICivguIHguKXguLnguYLguITguKoKK+C4geC4peC4ueC4mQor4LiB4Lil4Li54LiZ4LmMCivguIHguYDguKXguKfguKPguLAKK+C4geC4p+C4lAor4LiB4Lin4LiU4LiC4Lix4LiZCivguIHguKfguJkKK+C4geC4p+C4meC4meC5ieC4s+C5g+C4q+C5ieC4guC4uOC5iOC4mQor4LiB4Lin4LihCivguIHguKfguKIKK+C4geC4p+C4ouC4iOC4seC5iuC4mgor4LiB4Lin4Lii4LiI4Li14LmKCivguIHguYvguKfguKLguYDguJXguLXguYvguKLguKcKK+C4geC4p+C4sAor4LiB4Lin4Liw4LiB4Lin4Lix4LiBCivguIHguKfguLDguYHguIHguKfguYjguIcKK+C4geC4p+C4seC4gQor4LiB4Lin4Lix4LiUCivguIHguKfguLHguJTguYHguIHguKfguYjguIcKK+C4geC4p+C4seC4lOC5hOC4geC4pwor4LiB4Lin4Lix4LiU4LmE4LiB4Lin4LmE4Liq4Liq4LmI4LiHCivguIHguKfguLIKK+C4geC4p+C5iOC4sgor4LiB4Lin4LmJ4LiyCivguIHguKfguLLguIcKK+C4geC4p+C5iOC4suC4hwor4LiB4Lin4LmJ4Liy4LiHCivguIHguKfguYnguLLguIfguILguKfguLLguIcKK+C4geC4p+C4suC4h+C5gOC4guC4mQor4LiB4Lin4Liy4LiH4LmB4LiC4LihCivguIHguKfguLLguIfguIjguLjguIEKK+C4geC4p+C4suC4h+C5guC4iOC4mQor4LiB4Lin4LmI4Liy4LiH4LiK4LiZCivguIHguKfguLLguIfguIrguLDguKHguJQKK+C4geC4p+C5iOC4suC4h+C5guC4i+C5ieC4hwor4LiB4Lin4Liy4LiH4LmA4LiU4Li04LiZ4LiU4LiHCivguIHguKfguLLguIfguJXguLjguYnguIcKK+C4geC4p+C4suC4h+C4l+C4o+C4suC4ogor4LiB4Lin4Liy4LiH4LiX4Lit4LiHCivguIHguKfguLLguIfguJvguYjguLIKK+C4geC4p+C4suC4h+C4oeC5ieC4sgor4LiB4Lin4LmJ4Liy4LiH4LmD4Lir4LiN4LmICivguIHguKfguYjguLLguIrguLfguYjguJkKK+C4geC4p+C4suC4lAor4LiB4Lin4Liy4LiU4LiV4LmJ4Lit4LiZCivguIHguKfguLLguJTguJXguLIKK+C4geC4p+C4suC4lOC4peC5ieC4suC4hwor4LiB4Lin4Liy4LiZCivguIHguKfguYjguLLguJkKK+C4geC4p+C5ieC4suC4mQor4LiB4Lin4LmK4Liy4LiZCivguIHguKfguYjguLLguYDguJ7guLfguYjguK3guJkKK+C4geC4p+C5ieC4suC4pwor4LiB4Lin4Liy4Lin4LmA4LiE4Lij4Li34LitCivguIHguKfguLTguJkKK+C4geC4p+C4tQor4LiB4Lin4Li14LiZ4Li04Lie4LiZ4LiY4LmMCivguIHguKnguJPguLAKK+C4geC4qeC4oeC4sgor4LiB4Lip4Lix4LiV4LijCivguIHguKnguLHguJXguKPguLIKK+C4geC4qeC4seC4leC4o+C4suC4mOC4tOC4o+C4suC4igor4LiB4Lip4Lix4LiV4Lij4Li04Lii4LmMCivguIHguKnguLHguJXguKPguLTguKLguIrguLLguJXguLQKK+C4geC4qeC4seC4leC4o+C4tQor4LiB4Lip4Lix4LiV4Lij4Li14Lii4LmMCivguIHguKnguLHguJXguKPguLXguKjguLnguKMKK+C4geC4qeC4seC4ogor4LiB4Lip4Lix4LiiLQor4LiB4Lip4Lix4Lii4LiB4Lil4LmI4Lit4LiZCivguIHguKnguLHguKLguIHguLLguKMKK+C4geC4qeC4seC4ouC4meC5ieC4swor4LiB4Lip4Lix4Lii4LmA4Lil4Li34Lit4LiUCivguIHguKnguLLguJvguJPguYwKK+C4geC4qeC4tOC4lOC4tAor4LiB4Lip4Li14LiT4Liy4Lio4Lij4LieCivguIHguKnguLXguJTguLQKK+C4geC4qeC4teC4owor4LiB4Lip4Li14LijLQor4LiB4Lip4Li14Lij4LiY4Liy4Lij4LiyCivguIHguKnguLXguKPguKPguKoKK+C4geC4qeC4teC4o+C4suC4oeC4nuC4uAor4LiB4Lip4Li14Lij4Liy4Lij4LiT4LieCivguIHguKrguLLguJnguJXguLTguYwKK+C4geC4quC4tAor4LiB4Liq4Li04LiB4LijCivguIHguKrguLTguIHguKPguKPguKEKK+C4geC4quC4tOC4kwor4LiB4Lir4Lix4LiH4Lib4Liy4Lii4LiyCivguIEg4Lir4Lix4LiZCivguIHguKvguLLguJvguJPguLAKK+C4geC5h+C5geC4q+C4peC4sAor4LiB4LmA4Lis4Lin4Lij4Liy4LiBCivguIHguK0KK+C4geC5iOC4rQor4LiB4LmJ4LitCivguIHguYrguK0KK+C4geC4reC4gQor4LiB4LmK4Lit4LiBCivguIHguYjguK3guIHguKPguKPguKHguJfguLPguYDguILguYfguI0KK+C4geC5iOC4reC4geC4p+C4mQor4LiB4LmI4Lit4LiB4Liy4LijCivguIHguK3guYHguIEKK+C4geC4reC4hwor4LiB4LmI4Lit4LiHCivguIHguYnguK3guIcKK+C4geC4reC4h+C4geC4peC4suC4hwor4LiB4Lit4LiH4LiB4Lit4LiiCivguIHguK3guIfguIHguLnguJPguJHguYwKK+C4geC4reC4h+C5gOC4geC4tOC4mQor4LiB4Lit4LiH4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4LioCivguIHguK3guIfguILguYnguLLguKcKK+C4geC4reC4h+C5guC4iOC4owor4LiB4Lit4LiH4LiX4Lix4LieCivguIHguK3guIfguJfguLHguJ7guJnguYnguK3guKIKK+C4geC4reC4h+C4l+C4uOC4mQor4LiB4Lit4LiH4Lie4LilCivguIHguK3guIfguJ7guLHguJkKK+C4geC4reC4h+C4n+C4reC4mQor4LiB4Lit4LiH4Lih4Lij4LiU4LiBCivguIHguK3guIfguKPguYnguK3guKIKK+C4geC4reC4h+C4q+C4meC4uOC4mQor4LiB4Lit4LiLCivguIHguK3guJQKK+C4geC4reC4lOC5geC4guC5ieC4h+C4geC4reC4lOC4guC4sgor4LiB4Lit4LiU4Lih4Li34Lit4LiB4Lit4LiU4LiV4Li14LiZCivguIHguK3guJTguK3guIEKK+C4geC5iOC4reC4leC4seC5ieC4hwor4LiB4LmI4Lit4LiZCivguIHguYnguK3guJkKK+C4geC5ieC4reC4meC4guC4teC5ieC4q+C4oeC4sgor4LiB4LmJ4Lit4LiZ4LmA4Liq4LmJ4LiyCivguIHguK3guJoKK+C4geC4reC4muC5guC4geC4ogor4LiB4Lit4Lia4LiU4LmJ4Lin4LiiCivguIHguK3guJrguJnguLLguIcKK+C4geC5iuC4reC4muC4m+C4teC5iQor4LiB4Lit4Lib4LijCivguIHguYnguK3guKEKK+C4geC4reC4oeC4geC5ieC4rQor4LiB4LmI4Lit4Lih4LiB4LmJ4LitCivguIHguK3guKIKK+C4geC5ieC4reC4ogor4LiB4LmL4Lit4LiiCivguIHguYnguK3guKPguYjguK0KK+C4geC5ieC4reC4o+C5iOC4reC4geC5ieC4reC4leC4tOC4gQor4LiB4LmI4Lit4Lij4LmI4Liy4LiH4Liq4Lij4LmJ4Liy4LiH4LiV4Lix4LinCivguIHguK3guKPguLTguKXguKXguLIKK+C4geC5iOC4reC4pOC4geC4qeC5jAor4LiB4Lit4Lil4LmM4LifCivguIHguYjguK3guYHguKXguYnguKfguJXguYnguK3guIfguKrguLLguJkKK+C4geC4reC5geC4peC4sAor4LiB4LmI4Lit4Liq4Lij4LmJ4Liy4LiHCivguIHguYjguK3guKvguKfguK3guJQKK+C4geC4reC5gOC4reC4teC5iuC4ouC4sAor4LiB4LiwCivguIHguLDguIHguKPguYjguK3guKEKK+C4geC4sOC4geC4o+C5ieC4suC4pwor4LiB4Liw4LiB4Lil4Li04LmJ4LiHCivguIHguLDguIHguYjguK3guIcKK+C4geC4sOC4geC4seC4hwor4LiB4Liw4LiB4Li24LiBCivguIHguLDguYDguIHguJPguJHguYwKK+C4geC4sOC5gOC4geC4suC4sAor4LiB4Liw4LmC4LiB4Lij4LiwCivguIHguLDguIfguYnguK3guJnguIHguLDguYHguIfguYnguJkKK+C4geC4sOC4iOC4seC4hwor4LiB4Liw4LmB4LiI4LiwCivguIHguLDguIrguLAKK+C4geC4sOC4iuC4seC4hwor4LiB4Liw4LiK4Liy4Lih4Liy4LioCivguIHguLDguIrguLTguIcKK+C4geC4sOC4iuC4tuC5iOC4geC4geC4sOC4iuC4seC5iOC4gQor4LiB4Liw4LmB4LiK4LmICivguIHguLDguIvguKfguIEKK+C4geC4sOC4i+C5ieC4suC4q+C4reC4ogor4LiB4Liw4LiL4Li14LmICivguIHguLDguYLguIvguYgKK+C4geC4sOC5guC4i+C5iQor4LiB4Liw4LiU4LiBCivguIHguLDguJTguIcKK+C4geC4sOC4lOC4p+C4mQor4LiB4Liw4LiU4Lit4LiB4LmGCivguIHguLDguJTguLAKK+C4geC4sOC4lOC4seC4h+C4muC4suC4ogor4LiB4Liw4LiU4Lix4LiUCivguIHguLDguJTguYnguLLguIcKK+C4geC4sOC4lOC4s+C4geC4sOC4lOC5iOC4suC4hwor4LiB4Liw4LiU4Li1CivguIHguLDguJTguLXguYgKK+C4geC4sOC4lOC4uOC5ieC4hwor4LiB4Liw4LmA4LiU4LmJCivguIHguLDguYDguJTguIEKK+C4geC4sOC5gOC4lOC4teC5i+C4ouC4pwor4LiB4Liw4LmE4LiUCivguIHguLDguJXguKPguLjguJQKK+C4geC4sOC4leC4reC4gQor4LiB4Liw4LiV4LmI4Lit4LiiCivguIHguLDguJXguLHguIEKK+C4geC4sOC4leC4seC4hwor4LiB4Liw4LiV4Lix4LiH4LiB4Liw4LiV4Li04LmJ4LinCivguIHguLDguJXguLHguIfguYPguJoKK+C4geC4sOC4leC4seC4h+C4oeC4ueC4leC4owor4LiB4Liw4LiV4LmI4LiyCivguIHguLDguJXguYrguLLguIEKK+C4geC4sOC4leC5ieC4swor4LiB4Liw4LiV4Li04LmK4LiB4Lij4Li04LiBCivguIHguLDguJXguLTguIfguIHguLDguYHguJXguIcKK+C4geC4sOC4leC4teC4mgor4LiB4Liw4LiV4Li24LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLjguYrguIEKK+C4geC4sOC4leC4uOC4lAor4LiB4Liw4LiV4Li44Lih4Li5CivguIHguLDguJXguLnguIEKK+C4geC4sOC5gOC4leC4gQor4LiB4Liw4LmA4LiV4LiH4LmGCivguIHguLDguYDguJXguIfguYDguKPguIcKK+C4geC4sOC5geC4leC4pwor4LiB4Liw4LmB4LiV4LmI4LinCivguIHguLDguYLguJXguYrguIEKK+C4geC4sOC5guC4leC4h+C4geC4sOC5gOC4leC4hwor4LiB4Liw4LmC4LiV4LmJ4LiH4LmC4Lir4LmI4LiHCivguIHguLDguJbguLHguKcKK+C4geC4sOC4l+C4geC4o+C4gQor4LiB4Liw4LiX4LitCivguIHguLDguJfguLHguIcKK+C4geC4sOC4l+C4seC4h+C4q+C4seC4mQor4LiB4Liw4LiX4Lix4LiU4Lij4Lix4LiUCivguIHguLDguJfguLHguJkKK+C4geC4sOC4l+C4seC4meC4q+C4seC4mQor4LiB4Liw4LiX4Lix4LiaCivguIHguLDguJfguLMKK+C4geC4sOC4l+C4tAor4LiB4Liw4LiX4Li04LiC4Li54LiUCivguIHguLDguJfguLfguK0KK+C4geC4sOC4l+C4uOC4mQor4LiB4Liw4LmA4LiX4LiiCivguIHguLDguYDguJfguKLguJnguLLguIfguKvguKHguLHguYjguJkKK+C4geC4sOC5gOC4l+C4suC4sAor4LiB4Liw4LmB4LiX4LmJCivguIHguLDguYHguJfguYjguIcKK+C4geC4sOC5geC4l+C4mQor4LiB4Liw4LiZ4Lin4LilCivguIHguLDguJnguLHguJQKK+C4geC4sOC4muC4reC4meC4geC4sOC4muC4tuC4hwor4LiB4Liw4Lia4LmI4Lit4LiZ4LiB4Liw4LmB4Lia4LmI4LiZCivguIHguLDguJrguLHguIcKK+C4geC4sOC4muC4seC5ieC4hwor4LiB4Liw4Lia4Lix4LiH4Lij4Lix4LiH4LmA4Lid4Li34Lit4LiBCivguIHguLDguJrguLHguIfguKXguKEKK+C4geC4sOC4muC4seC4h+C4q+C4meC5ieC4sgor4LiB4Liw4Lia4Li04LmJ4LiHCivguIHguLDguJrguLTguKUKK+C4geC4sOC4muC4tuC4h+C4geC4sOC4muC4reC4mQor4LiB4Liw4Lia4Li44LiUCivguIHguLDguYDguJrguYnguK0KK+C4geC4sOC5gOC4muC4teC4ouC4mQor4LiB4Liw4LmA4Lia4Li34LitCivguIHguLDguJvguKPguLTguJTguIHguLDguJvguKPguK3guKIKK+C4geC4sOC4m+C4o+C4tOC4mgor4LiB4Liw4Lib4Lij4Li04Lia4LiB4Liw4Lib4Lij4Lit4LiiCivguIHguLDguJvguKXguIHguIHguLDguYDguJvguKXguLXguYnguKIKK+C4geC4sOC4m+C4p+C4geC4geC4sOC5gOC4m+C4teC4ouC4gQor4LiB4Liw4Lib4Lit4LihCivguIHguLDguJvguK3guKHguILguLLguIcKK+C4geC4sOC4m+C4sAor4LiB4Liw4Lib4Lix4LmI4LiZCivguIHguLDguJvguYnguLPguIHguLDguYDguJvguYvguK0KK+C4geC4sOC4m+C4tAor4LiB4Liw4Lib4Li5CivguIHguLDguJvguLnguJQKK+C4geC4sOC4m+C4ueC4lOC4q+C4peC4ueC4lAor4LiB4Liw4LmA4Lib4LiwCivguIHguLDguYDguJvguLTguYrguJrguIHguLDguJvguYrguLLguJoKK+C4geC4sOC5gOC4m+C4teC4ouC4lAor4LiB4Liw4LmB4Lib4LmJ4LiZCivguIHguLDguYHguJvguLAKK+C4geC4sOC5guC4m+C4o+C4hwor4LiB4Liw4LmC4Lib4LmC4LilCivguIHguLDguJzguKXguLjguJrguIHguLDguYLguJzguKXguYgKK+C4geC4sOC5gOC4nOC5iOC4mQor4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguYLguJzguKXguIHguIHguLDguYDguJzguKXguIEKK+C4geC4sOC4nuC4hwor4LiB4Liw4Lie4Lij4Lin4LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKPguYjguK3guIfguIHguLDguYHguJ7guKPguYjguIcKK+C4geC4sOC4nuC4o+C4tOC4mgor4LiB4Liw4Lie4Lij4Li44LiZCivguIHguLDguJ7guKPguLnguJTguIHguLDguJ7guKPguLLguJQKK+C4geC4sOC4nuC4peC5ieC4rQor4LiB4Liw4Lie4Lil4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lil4LmI4LiHCivguIHguLDguJ7guYnguK0KK+C4geC4sOC5gOC4nuC4o+C4sgor4LiB4Liw4LmA4Lie4Li14Lii4LiUCivguIHguLDguYDguJ7guLXguKLguJTguIrguYnguLLguIcKK+C4geC4sOC5gOC4nuC4teC4ouC4lOC4q+C4meC4uQor4LiB4Liw4Lih4LiHCivguIHguLDguKHguYjguIcKK+C4geC4sOC5gOC4oeC5h+C4hwor4LiB4Liw4LmA4Lih4LmH4LiH4LiV4Lix4Lin4Lic4Li54LmJCivguIHguLDguYDguKHguLXguKIKK+C4geC4sOC4ouC4uAor4LiB4Liw4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lij4LmI4LiHCivguIHguLDguKPguLDguJXguLAKK+C4geC4sOC4o+C4sOC4q+C4meC4sAor4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLHguJUKK+C4geC4sOC4o+C4seC4leC4q+C4peC4p+C4hwor4LiB4Liw4Lij4Liy4LiHCivguIHguLDguKPguLLguIfguKvguLHguKfguILguKfguLLguJkKK+C4geC4sOC4o+C4tOC4hwor4LiB4Liw4Lij4Li04LiH4LiB4Liw4LmA4Lij4Li14Lii4LiUCivguIHguLDguKPguLjguIfguIHguLDguKPguLHguIcKK+C4geC4sOC4o+C4uOC5iOC4h+C4geC4sOC4o+C4tOC5iOC4hwor4LiB4Liw4Lij4Li44LiZCivguIHguLDguYDguKMKK+C4geC4sOC5gOC4o+C4geC4sOC4o+C5iOC4reC4mQor4LiB4Liw4LmA4Lij4LmI4LiB4Liw4Lij4LmI4Lit4LiZCivguIHguLDguYDguKPguYjguK0KK+C4geC4sOC5gOC4o+C5iOC4reC4geC4sOC4o+C5iOC4sgor4LiB4Liw4LmA4Lij4Li14LmI4Lii4LiB4Liw4Lij4Liy4LiUCivguIHguLDguYLguKPguIHguLDguYDguKMKK+C4geC4sOC4peC4p+C4ogor4LiB4Liw4Lil4LitCivguIHguLDguKXguYjguK3guIHguLDguYHguKXguYgKK+C4geC4sOC4peC4reC4iOC4teC5igor4LiB4Liw4Lil4LmI4Lit4LiZCivguIHguLDguKXguYjguK3guKHguIHguLDguYHguKXguYjguKEKK+C4geC4sOC4peC5iOC4reC4ouC4geC4sOC4q+C4peC4tOC4mgor4LiB4Liw4Lil4Liw4Lib4Lix4LiH4Lir4LiyCivguIHguLDguKXguLDguKHguLHguIcKK+C4geC4sOC4peC4sOC5geC4oQor4LiB4Liw4Lil4Liw4Lit4Lit4LihCivguIHguLDguKXguLHguIfguJXguLHguIfguYTguIHguYgKK+C4geC4sOC4peC4seC4mQor4LiB4Liw4Lil4Lix4LiZ4LiX4LiyCivguIHguLDguKXguLIKK+C4geC4sOC4peC4suC4hwor4LiB4Liw4Lil4Liy4LiL4LitCivguIHguLDguKXguLLguKrguLUKK+C4geC4sOC4peC4s+C4nuC4rQor4LiB4Liw4Lil4Li04LiHCivguIHguLDguKXguLTguIfguJvguKXguLTguIcKK+C4geC4sOC4peC4tOC5ieC4oeC4geC4sOC5gOC4q+C4peC4teC5iOC4ogor4LiB4Liw4Lil4Li04Lit4LmI4Lit4LiHCivguIHguLDguKXguLjguKHguJ7guLUKK+C4geC4sOC5gOC4peC5h+C4hwor4LiB4Liw4LmA4Lil4LmI4Lit4LiB4Liw4Lil4LmI4LiyCivguIHguLDguYDguKXguLTguJQKK+C4geC4sOC5gOC4peC4teC4ouC4pwor4LiB4Liw4LmB4LilCivguIHguLDguYLguKXguYgKK+C4geC4sOC5guC4peC4hwor4LiB4Liw4Lin4Lit4LiB4LiB4Liw4LmB4Lin4LiBCivguIHguLDguKfguLAKK+C4geC4sOC4quC5ieC4oeC4iuC4t+C5iOC4mQor4LiB4Liw4Liq4LmJ4Liy4Lir4Lit4LiiCivguIHguLDguKvguJnguK3guIHguLDguYHguKvguJkKK+C4geC4sOC4q+C4meC5h+C4reC4h+C4geC4sOC5geC4q+C4meC5h+C4hwor4LiB4Liw4Lir4LiZ4LiwCivguIHguLDguKvguJnguLjguIfguIHguLDguKvguJnguLTguIcKK+C4geC4sOC4q+C4oeC4reC4gQor4LiB4Liw4Lir4Lij4LmI4Lit4LiHCivguIHguLDguKvguKPguK3guJQKK+C4geC4sOC4q+C4o+C5h+C4reC4oeC4geC4sOC5geC4q+C4o+C5h+C4oQor4LiB4Liw4Lir4Lij4Liy4LiZCivguIHguLDguKvguKPguLXguYgKK+C4geC4sOC4q+C4o+C4teC5iOC4m+C4seC5iuC4mgor4LiB4Liw4Lir4Lil4Liy4Lib4LmL4LiyCivguIHguLDguKvguKXguYjguLMKK+C4geC4sOC4q+C4peC4teC5iAor4LiB4Liw4Lir4Lil4Li14LiB4Liw4Lir4Lil4LitCivguIHguLDguKvguKXguLjguIHguIHguLDguKvguKXguLTguIEKK+C4geC4sOC4q+C4swor4LiB4Liw4Lir4Liz4LmB4Lie4LiwCivguIHguLDguKvguLfguK0KK+C4geC4sOC4q+C4ueC4lAor4LiB4Liw4LmA4Lir4Lij4Li14LmI4Lii4LiHCivguIHguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4geC4sOC5geC4q+C4ouC4gQor4LiB4Liw4LmB4Lir4LiwCivguIHguLDguYLguKvguKXguIEKK+C4geC4sOC5guC4q+C4peC5ieC4hwor4LiB4Liw4LmE4Lir4Lil4LmICivguIHguLDguK3guKfguKEKK+C4geC4sOC4reC4reC4oQor4LiB4Liw4Lit4Liy4LiZCivguIHguLDguK3guLLguKEKK+C4geC4sOC4reC4tOC4lAor4LiB4Liw4Lit4Li44LiaCivguIHguLDguYDguK3guKcKK+C4geC4sOC5geC4rQor4LiB4Liw4LmB4Lit4LiZCivguIHguLHguIEKK+C4geC4seC5iuC4gQor4LiB4Lix4LiB4LiB4Lij4LiyCivguIHguLHguIHguIHguLHguJkKK+C4geC4seC4geC4geC4suC4o+C4uAor4LiB4Lix4LiB4LiC4Lis4LiwCivguIHguLHguIHguILguLHguIcKK+C4geC4seC4geC4hOC4uOC4oQor4LiB4Lix4LiB4LiU4LmI4Liy4LiZCivguIHguLHguIHguJXguLHguKcKK+C4geC4seC4geC4leC4uOC4mQor4LiB4Lix4LiB4Lia4Lij4Li04LmA4Lin4LiTCivguIHguLHguIcKK+C4geC4seC5ieC4hwor4LiB4Lix4LiH4LiBCivguIHguLHguYnguIfguIHguKPguLDguJTguLLguJkKK+C4geC4seC4h+C4geC5ieC4sgor4LiB4Lix4LiH4LmA4LiB4Li14Lii4LiHCivguIHguLHguIfguILguLIKK+C4geC4seC4h+C4ieC4tOC4mQor4LiB4Lix4LiH4Lif4Li5CivguIHguLHguIfguKfguKUKK+C4geC4seC4h+C4p+C4suC4mQor4LiB4Lix4LiH4LmA4Lin4Li14Lii4LiZCivguIHguLHguIfguKoKK+C4geC4seC4h+C4quC4lOC4suC4pQor4LiB4Lix4LiH4LmE4LiqCivguIHguLHguIfguKvguLHguJkKK+C4geC4seC4h+C4q+C4seC4meC5g+C4muC4nuC4seC4lAor4LiB4Lix4LiH4Lir4Lix4LiZ4LmE4Lit4Lie4LmI4LiZCivguIHguLHguIjguInguJvguLAKK+C4geC4seC4iOC4ieC4sAor4LiB4Lix4LiI4LiJ4LiyCivguIHguLHguI0KK+C4geC4seC4jeC4iOC4uOC4gQor4LiB4Lix4LiN4LiI4Li44LiB4Liy4Lij4LiyCivguIHguLHguI3guIrguLIKK+C4geC4seC4jeC4jeC4sgor4LiB4Lix4LiQCivguIHguLHguJPguI/guIHguLAKK+C4geC4seC4k+C4kC0KK+C4geC4seC4k+C4kOC4gQor4LiB4Lix4LiT4LiQ4LiB4LiwCivguIHguLHguJPguJDguIrguLAKK+C4geC4seC4k+C4kOC4seC4qAor4LiB4Lix4LiT4LiQ4Lix4Lio4Lin4LmMCivguIHguLHguJPguJDguLIKK+C4geC4seC4k+C4kOC4tQor4LiB4Lix4LiT4LiR4LmMCivguIHguLHguJPguJHguYzguYDguJfguKjguJnguYwKK+C4geC4seC4k+C4k+C5jAor4LiB4Lix4LiT4LirLQor4LiB4Lix4LiT4Lir4LiY4Lij4Lij4LihCivguIHguLHguJPguKvguJvguLHguIHguKnguYwKK+C4geC4seC4lAor4LiB4Lix4LiU4Lib4LmI4LiyCivguIHguLHguJTguJ/guLHguJkKK+C4geC4seC4lOC4peC4suC4gQor4LiB4Lix4LiU4Lin4Liy4LiHCivguIHguLHguJTguKvguLLguIfguJXguLHguKfguYDguK3guIcKK+C4geC4seC4leC4leC4tOC4geC4oeC4suC4qgor4LiB4Lix4LiV4LiV4Li04LiB4LiyCivguIHguLHguJXguJXguLTguYDguIHguKLguLIKK+C4geC4seC4leC4o+C4l+C4seC4k+C4keC5jAor4LiB4Lix4LiV4Lij4LiyCivguIHguLHguJfguKXguLUKK+C4geC4seC4mQor4LiB4Lix4LmI4LiZCivguIHguLHguYnguJkKK+C4geC4seC4meC4geC4hwor4LiB4Lix4LmJ4LiZ4LiB4Liy4LiHCivguIHguLHguJnguYDguIHguKPguLIKK+C4geC4seC4meC5hOC4geC4owor4LiB4Lix4LiZ4LmA4LiC4Liy4LiB4Lix4LiZ4LmA4Lij4LiyCivguIHguLHguJnguIrguJkKK+C4geC4seC4meC4iuC4tOC4hwor4LiB4Lix4LiZ4LiK4Li14LieCivguIHguLHguJnguYDguIrguK0KK+C4geC4seC5ieC4meC4i+C4ueC5iAor4LiB4Lix4LiZ4LmB4LiL4LiHCivguIHguLHguJnguJTguK3guIcKK+C4geC4seC4meC4lOC4suC4owor4LiB4Lix4LiZ4LiU4Liy4LilCivguIHguLHguJnguYHguJTguJQKK+C4geC4seC4meC5hOC4lAor4LiB4Lix4LiZ4LiV4LmMCivguIHguLHguJnguJXguLHguIcKK+C4geC4seC4meC4leC4seC4pwor4LiB4Lix4LiZ4LmE4LiV4LijCivguIHguLHguJnguJfguKMKK+C4geC4seC4meC4l+C4o+C4suC4geC4owor4LiB4Lix4LiZ4LiX4LiwCivguIHguLHguJnguJfguYjguLIKK+C4geC4seC4meC5geC4l+C4o+C4gQor4LiB4Lix4LmJ4LiZ4Lia4Lix4LiHCivguIHguLHguJnguJ7guLTguKPguLjguJMKK+C4geC4seC4meC4oOC4seC4ogor4LiB4Lix4LiZ4Lig4Li04Lij4Lih4Lii4LmMCivguIHguLHguJnguYDguKHguLXguKLguIcKK+C4geC4seC4meC4ouC5jAor4LiB4Lix4LiZ4Lii4LiyCivguIHguLHguJnguKLguLLguKLguJkKK+C4geC4seC4meC4peC4hwor4LiB4Lix4LiZ4Lil4Lit4LiHCivguIHguLHguJnguKXguLbguIcKK+C4geC4seC4meC5geC4peC4sOC4geC4seC4mQor4LiB4Lix4LiZ4Liq4Liy4LiUCivguIHguLHguJnguYHguKrguIcKK+C4geC4seC5ieC4meC4q+C4ouC4seC5iOC4mQor4LiB4Lix4LiZ4LmA4Lit4LiHCivguIHguLHguJnguYDguK3guLIKK+C4geC4seC4mgor4LiB4Lix4Lia4LmB4LiB4LmJCivguIHguLHguJrguYHguIHguKXguYnguKEKK+C4geC4seC4muC4guC5ieC4suC4pwor4LiB4Lix4Lia4Lia4Li44LmA4Lij4LioCivguIHguLHguJrguKPguLDguYDguJrguLTguJQKK+C4geC4seC4mwor4LiB4Lix4Lib4LiV4Lix4LiZCivguIHguLHguJvguJnguIEKK+C4geC4seC4m+C4muC4suC4quC4tOC4gQor4LiB4Lix4Lib4Lib4Liy4Liq4Li04LiBCivguIHguLHguJvguJvguLTguKItCivguIHguLHguJvguJvguLTguKLguIHguLLguKPguIEKK+C4geC4seC4m+C4m+C4tOC4ouC4oOC4seC4k+C4keC5jAor4LiB4Lix4Lib4Lib4Li04Lii4LmC4Lin4Lir4Liy4LijCivguIHguLHguJvguJvguLTguKLguLAKK+C4geC4seC4m+C4m+C4teC4ouC5jAor4LiB4Lix4Lih4Lia4LiZCivguIHguLHguKHguJstCivguIHguLHguKHguJvguJktCivguIHguLHguKHguJvguJnguLLguIHguLLguKMKK+C4geC4seC4oeC4m+C4meC4suC4lwor4LiB4Lix4Lih4Lib4Lij4Liw4LmC4LiUCivguIHguLHguKHguJvguLUKK+C4geC4seC4oeC4nuC4pQor4LiB4Lix4Lih4Lie4Li44LiKCivguIHguLHguKHguJ7guLjguIotCivguIHguLHguKHguJ7guLjguIrguJ7guLLguIHguKLguYwKK+C4geC4seC4oeC4nuC4uQor4LiB4Lix4Lih4Lie4Li54LiK4LiyCivguIHguLHguKHguYLguJ7guIoKK+C4geC4seC4oeC4oeC4seC4iuC4p+C4suC4lQor4LiB4Lix4Lih4Lih4Lix4LiP4LiQ4Liy4LiZCivguIHguLHguKHguKHguLHguJnguJXguKDguLLguJ7guKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4seC4meC4leC4o+C4seC4h+C4quC4tQor4LiB4Lix4Lih4Lih4Liy4LijCivguIHguLHguKHguKXguLLguKgKK+C4geC4seC4ouC4p+C4tOC4geC4seC4ogor4LiB4Lix4Lil4LiK4Liy4LiNCivguIHguLHguKXguJrguIEKK+C4geC4seC4peC4my0KK+C4geC4seC4peC4m+C5jAor4LiB4Lix4Lil4Lib4LiZ4LiyCivguIHguLHguKXguJvguJ7guKTguIHguKnguYwKK+C4geC4seC4peC4m+C4seC4h+C4q+C4sgor4LiB4Lix4Lil4Lib4Liy4Lin4Liq4Liy4LiZCivguIHguLHguKXguJvguLTguJUKK+C4geC4seC4peC4nuC4uOC4oQor4LiB4Lix4Lil4LmA4Lih4LmH4LiUCivguIHguLHguKXguKLguLIKK+C4geC4seC4peC4ouC4suC4ky0KK+C4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4owor4LiB4Lix4Lil4Lii4Liy4LiT4Li1CivguIHguLHguKXguKLguLLguYDguKLguLXguYjguKLguKHguKvguYnguK3guIcKK+C4geC4seC4peC5gOC4p+C5ieC4sgor4LiB4Lix4Lil4Lir4Liy4LiiCivguIHguLHguKXguYLguKvguKIKK+C4geC4seC4peC4reC4reC4oQor4LiB4Lix4Lil4LmA4Lit4LiyCivguIHguLHguKjguKHguKUKK+C4geC4seC4qOC4ouC4mwor4LiB4Lix4Lip4LiTCivguIHguLIKK+C4geC5i+C4sgor4LiB4Liy4LiBCivguIHguLLguIEtCivguIHguLLguIHguIHguLDguKPguLjguJkKK+C4geC4suC4geC4guC4ouC4suC4gQor4LiB4Liy4LiB4LiC4LmJ4Liy4LinCivguIHguLLguIHguITguJXguLQKK+C4geC4suC4geC4k+C4tuC4gQor4LiB4Liy4LiB4Lia4Liy4LiXCivguIHguLLguIHguYDguJ7guIrguKMKK+C4geC4suC4geC4oOC4suC4qeC4sgor4LiB4Liy4LiB4Lij4Li44LiZCivguIHguLLguIHguKvguKHguLkKK+C4geC4suC4geC4sOC4l+C4tOC4hwor4LiB4Liy4LiB4Liw4LmA4Lii4Li14LiiCivguIHguYvguLLguIHguLHguYjguJkKK+C4geC4suC4geC4tQor4LiB4Liy4LiB4Li14LmB4LiB4Lih4LmA4LiC4Li14Lii4LinCivguIHguLLguITguLLguJrguJ7guKPguLTguIEKK+C4geC4suC4hwor4LiB4LmJ4Liy4LiHCivguIHguLLguIfguYDguIHguIcKK+C4geC4suC4h+C5gOC4geC4teC4ouC4hwor4LiB4LmJ4Liy4LiH4LiC4Lin4Liy4LiH4LiE4LitCivguIHguLLguIfguILguK3guIcKK+C4geC4suC4h+C4guC4teC5ieC4oeC4reC4lAor4LiB4Liy4LiH4LmA4LiC4LiZCivguIHguYnguLLguIfguJvguKXguLIKK+C4geC4suC4h+C5gOC4p+C4teC4ouC4mQor4LiB4Liy4LiI4Lix4Lia4Lir4Lil4Lix4LiBCivguIHguLLguIrguLLguJQKK+C4geC5iuC4suC4iwor4LiB4LmK4Liy4LiL4LmE4LiC4LmI4LmA4LiZ4LmI4LiyCivguIHguYrguLLguIvguYDguInguLfguYjguK3guKIKK+C4geC5iuC4suC4i+C4meC5ieC4s+C4leC4sgor4LiB4Liy4LiL4Liw4Lil4Lit4LiHCivguIHguLLguIvguLDguKXguK3guIfguITguLMKK+C4geC4suC4jeC4iOC4mS0KK+C4geC4suC4jeC4iOC4meC4sgor4LiB4Liy4LiQCivguIHguLLguJQKK+C4geC5iuC4suC4lAor4LiB4Liy4LiZCivguIHguYjguLLguJkKK+C4geC5ieC4suC4mQor4LiB4LmK4Liy4LiZCivguIHguYnguLLguJnguILguJQKK+C4geC5ieC4suC4meC5geC4guC5h+C4hwor4LiB4LmJ4Liy4LiZ4LiE4LitCivguIHguLLguJnguJTguLIKK+C4geC4suC4meC4leC5jAor4LiB4LmJ4Liy4LiZ4LiV4Lit4LiHCivguIHguYnguLLguJnguJXguYjguK3guJTguK3guIEKK+C4geC4suC4meC4l+C5jAor4LiB4Liy4LiZ4LiZCivguIHguYnguLLguJnguJrguLHguKcKK+C4geC5ieC4suC4meC4nuC4o+C5ieC4suC4pwor4LiB4Liy4LiZ4Lie4Lil4Li5CivguIHguYnguLLguJnguKHguLDguJ7guKPguYnguLLguKcKK+C4geC5ieC4suC4meC4ouC4suC4pwor4LiB4LmJ4Liy4LiZ4LmB4Lii4LmI4LiHCivguIHguYnguLLguJnguYDguKvguKXguLfguK3guIcKK+C4geC4suC4meC5ieC4sgor4LiB4Liy4LiZ4LmJ4LizCivguIHguLLguJoKK+C4geC5ieC4suC4muC5hgor4LiB4Liy4Lia4LiB4Li14LmJCivguIHguLLguJrguYDguILguLXguKLguIcKK+C4geC4suC4muC4hOC4ueC5iAor4LiB4Liy4Lia4LmA4LiU4Li14Lii4LinCivguIHguLLguJrguYDguJTguLXguYjguKLguKcKK+C4geC4suC4muC4meC5ieC4s+C4iOC4t+C4lAor4LiB4Liy4Lia4Lia4Lix4LinCivguIHguLLguJrguJvguLnguYDguKUKK+C4geC4suC4muC4nuC4o+C4q+C4oeC4qOC4owor4LiB4Liy4Lia4Lir4Lit4LiiCivguIHguLLguJrguLjguKPguLjguKkKK+C4geC4suC4muC4uQor4LiB4Liy4LmA4Lib4Li14LmJ4Lii4LiUCivguIHguLLguJ3guLLguIEKK+C4geC4suC4nuC4ouC5jAor4LiB4Liy4Lie4Lii4LmM4LiB4Lil4Lit4LiZCivguIHguLLguJ/guLHguIHguYTguILguYgKK+C4geC4suC5gOC4n+C4reC4teC4mQor4LiB4Liy4LmB4LifCivguIHguLLguKEKK+C4geC4suC4oS0KK+C4geC5ieC4suC4oQor4LiB4LmJ4Liy4Lih4LiB4Lij4Liy4LihCivguIHguLLguKHguIHguKPguLXguJHguLIKK+C4geC4suC4oeC4geC4tOC4iAor4LiB4LmJ4Liy4Lih4LiB4Li44LmJ4LiHCivguIHguYnguLLguKHguYDguIHguKXguLXguYnguKLguIcKK+C4geC4suC4oeC4hOC4uOC4kwor4LiB4Liy4Lih4LiJ4Lix4LiZ4LiX4LmMCivguIHguYnguLLguKHguJTguLLguJoKK+C4geC4suC4oeC4leC4seC4k+C4q+C4sgor4LiB4Liy4Lih4LiXLQor4LiB4Liy4Lih4LmA4LiX4LieCivguIHguLLguKHguJkKK+C4geC5ieC4suC4oeC4m+C4uQor4LiB4LmJ4Liy4Lih4Lib4Li54Lir4Lil4Li44LiUCivguIHguLLguKHguKDguJ4KK+C4geC4suC4oeC4o+C4suC4hAor4LiB4Liy4Lih4LmC4Lij4LiECivguIHguLLguKHguKfguLTguJXguIEKK+C4geC4suC4oeC4p+C4tOC4leC4luC4suC4owor4LiB4Liy4Lih4Liq4Lih4Lix4LiH4LiE4Li1CivguIHguLLguKHguLHguIoKK+C4geC4suC4oeC4sgor4LiB4Liy4Lih4Liy4LiX4Li14LiZ4LieCivguIHguLLguKHguLLguJ7guIjguKMKK+C4geC4suC4oeC4suC4oeC4tOC4qAor4LiB4Liy4Lih4Liy4Lij4Lih4LiT4LmMCivguIHguLLguKHguLLguKfguIjguKMKK+C4geC4suC4oeC4tOC4meC4tQor4LiB4Liy4Lih4Li04LioCivguIHguLLguYDguKHguKgKK+C4geC4suC5gOC4oeC4quC4uOC4oeC4tOC4iOC4ieC4suC4iOC4suC4owor4LiB4Liy4LmC4Lih4LiX4LiiCivguIHguLLguKIKK+C4geC4suC4oi0KK+C4geC5iOC4suC4ogor4LiB4Liy4Lii4LiB4Lij4Lij4LihCivguIHguYjguLLguKLguIHguK3guIcKK+C4geC4suC4ouC4l+C4p+C4suC4owor4LiB4Liy4Lii4Lia4Lij4Li04Lir4Liy4LijCivguIHguLLguKLguJ7guLHguJnguJjguJnguYwKK+C4geC4suC4ouC4oOC4suC4ngor4LiB4Liy4Lii4Lig4Liy4Lie4Lia4Liz4Lia4Lix4LiUCivguIHguLLguKLguKfguLTguKDguLLguITguKjguLLguKrguJXguKPguYwKK+C4geC4suC4ouC4quC4tOC4l+C4mOC4tOC5jAor4LiB4Liy4Lii4Liy4Lie4Lii4LieCivguIHguLLguKLguLTguJnguJfguKPguLXguKLguYwKK+C4geC4suC5gOC4ouC4mQor4LiB4Liy4LmA4Lii4LiZ4LiX4Lij4Li14Lii4LmMCivguIHguLLguKMKK+C4geC4suC4o+C4gQor4LiB4Liy4Lij4LiB4Lil4Lix4LmI4LiZ4LiX4Liz4Lil4Liy4LiiCivguIHguLLguKPguILguJnguKrguYjguIfguKHguKfguKXguIrguJkKK+C4geC4suC4o+C4hOC4o+C4seC4pwor4LiB4Liy4Lij4LiE4Lil4Lix4LiHCivguIHguLLguKPguYDguIfguLTguJkKK+C4geC4suC4o+C4iOC4owor4LiB4Liy4Lij4LiT4LmMCivguIHguLLguKPguJXguYjguLLguIfguJvguKPguLDguYDguJfguKgKK+C4geC4suC4o+C5jOC4leC4ueC4mQor4LiB4Liy4Lij4LmA4LiVCivguIHguLLguKPguJnguLMKK+C4geC4suC4o+C4muC5ieC4suC4mQor4LiB4Liy4Lij4Lia4LmJ4Liy4LiZ4LiB4Liy4Lij4LmA4Lih4Li34Lit4LiHCivguIHguLLguKPguJrguLjguYDguKPguLXguKLguJkKK+C4geC4suC4o+C4muC4ueC4owor4LiB4Liy4Lij4Lia4Li54Lij4Lib4LmI4LiyCivguIHguLLguKPguYDguJvguKPguLXguKLguI0KK+C4geC4suC4o+C5geC4nOC5iOC4o+C4seC4h+C4quC4tQor4LiB4Liy4Lij4Lie4LiyCivguIHguLLguKPguYDguKHguLfguK3guIcKK+C4geC4suC4o+C4ouC5jAor4LiB4Liy4Lij4LmA4Lij4Li34Lit4LiZCivguIHguLLguKPguKXguLDguYDguKXguYjguJkKK+C4geC4suC4o+C4p+C4tOC4gQor4LiB4Liy4Lij4LmA4Lin4LiBCivguIHguLLguKPguLDguYDguIHguJQKK+C4geC4suC4o+C4sOC4muC4uOC4q+C4meC4tOC4hwor4LiB4Liy4Lij4Lix4LiT4Lii4LmMCivguIHguLLguKPguLHguJnguJXguYwKK+C4geC4suC4o+C4suC4h+C4q+C4seC4p+C4guC4p+C4suC4mQor4LiB4Liy4Lij4Li04LiV4LiB4Liy4Lij4LiBCivguIHguLLguKPguLTguJXguKfguLLguIjguIEKK+C4geC4suC4o+C4uOC4jQor4LiB4Liy4Lij4Li44LiT4Lii4LmMCivguIHguLLguYDguKPguIHguLLguKPguYjguK3guJkKK+C4geC4suC5gOC4o+C4teC4ouC4mQor4LiB4Liy4LmA4Lij4Li14Lii4LiZ4LiX4Lit4LiHCivguIHguLLguKUKK+C4geC4suC4pS0KK+C4geC4suC4peC4geC4o+C4o+C4k+C4tQor4LiB4Liy4Lil4LiB4Li04LiT4Li1CivguIHguLLguKXguIHguLTguKPguLTguKLguLIKK+C4geC4suC4peC4iOC4seC4geC4owor4LiB4Liy4Lil4LmA4LiX4Lio4LiwCivguIHguLLguKXguYLguKLguIQKK+C4geC4suC4peC4quC4oeC4uOC4leC4luC4suC4mQor4LiB4Liy4Lil4Lix4LiB4LiZ4LmJ4LizCivguIHguLLguKXguLHguI3guI3guLjguJXguLIKK+C4geC4suC4peC4seC4jeC4jeC4uQor4LiB4Liy4Lil4Lix4LiUCivguIHguLLguKXguLLguJnguLjguIHguLLguKUKK+C4geC4suC4peC4tOC4gQor4LiB4Liy4Lil4Li1CivguIHguLLguYHguKXguYfguIHguIvguLUKK+C4geC4suC5geC4peC5h+C4geC5guC4l+C4qgor4LiB4Liy4LinCivguIHguYnguLLguKcKK+C4geC5ieC4suC4p+C4geC5iOC4suC4ogor4LiB4LmJ4Liy4Lin4LmA4LiJ4Li14Lii4LiHCivguIHguYnguLLguKfguKPguYnguLLguKcKK+C4geC5ieC4suC4p+C4peC5iOC4p+C4hwor4LiB4Liy4Lin4Lin4Liy4LinCivguIHguYnguLLguKfguKvguJnguYnguLIKK+C4geC4suC4p+C4suC4hwor4LiB4Liy4LmA4Lin4Li14Lii4LiZCivguIHguLLguYHguKfguJkKK+C4geC4suC4qOC4tOC4gQor4LiB4Liy4Lio4Li04LiBLQor4LiB4Liy4Lio4Li04LiB4Lie4Lix4Liq4LiV4Lij4LmMCivguIHguLLguKnguJDguLAKK+C4geC4suC4qeC4sgor4LiB4Liy4Liq4LijCivguIHguLLguKrguLAKK+C4geC4suC4quC4seC4gQor4LiB4Liy4Liq4LiyCivguIHguLLguKrguLLguKHguJvguLXguIEKK+C4geC4suC4quC4suC4owor4LiB4Liy4Liq4Liy4LinLQor4LiB4Liy4Liq4Liy4Lin4Lie4Lix4Liq4LiV4Lij4LmMCivguIHguLLguKrguLLguKfguLAKK+C4geC4suC4quC4tOC5guC4mQor4LiB4Liy4Lir4LilCivguIHguLLguKvguKXguIcKK+C4geC4suC4q+C4peC4h+C4o+C4seC4hwor4LiB4Liy4Lir4Lil4LiyCivguIHguLLguKvguLHguIEKK+C4geC4suC5gOC4q+C4p+C5iOC4sgor4LiB4Liy4LmE4Lir4Lil4LmICivguIHguLLguKwKK+C4geC4suC4rC0KK+C4geC4suC4rOC4iOC4seC4geC4owor4LiB4Liy4Lis4Lib4Lix4LiB4Lip4LmMCivguIHguLLguKzguJvguLHguIHguKnguLUKK+C4geC4suC4rOC4nuC4pOC4geC4qeC5jAor4LiB4Liy4Lis4LmC4Lij4LiECivguIHguLLguKzguKfguLLguJUKK+C4geC4suC4rOC4suC4p+C4gQor4LiB4Liy4Liu4Lix4LiHCivguIHguLMKK+C4geC5iOC4swor4LiB4LmJ4LizCivguIHguLPguIHguKfguKEKK+C4geC4s+C4geC4seC4lAor4LiB4Liz4LiB4Lix4LiaCivguIHguYnguLPguIHguLbguYjguIcKK+C4geC4s+C4geC4ueC4mQor4LiB4Liz4LmA4LiB4Lij4Li14Lii4LiBCivguIHguYnguLPguYDguIHguLTguJkKK+C4geC4s+C5gOC4geC4teC4ouC4hwor4LiB4Liz4LiC4Li14LmJ4LiU4Li14LiB4Lin4LmI4Liy4LiB4Liz4LiV4LiUCivguIHguLPguITguLnguJkKK+C4geC5iOC4s+C5gOC4hOC4t+C4rQor4LiB4Liz4LiI4LijCivguIHguLPguIjguLHguJQKK+C4geC4s+C4iOC4suC4ogor4LiB4Liz4LiK4Lix4LiaCivguIHguLPguIrguLHguJrguIHguLPguIrguLIKK+C4geC4s+C4iuC4swor4LiB4Liz4LmC4LiK4LiBCivguIHguLPguIvguLLguJoKK+C4geC4s+C4i+C4swor4LiB4Liz4LiU4LmJ4LiZCivguIHguLPguJTguLHguJQKK+C4geC4s+C4lOC4suC4pQor4LiB4Liz4LmA4LiU4LiyCivguIHguLPguYDguJTguLLguLAKK+C4geC5iOC4s+C4leC5ieC4mQor4LiB4Liz4LiV4Lix4LiUCivguIHguLPguJXguLLguIEKK+C4geC4s+C4luC4seC5iOC4pwor4LiB4Liz4LiX4Lin4LiZCivguIHguLPguJjguKMKK+C4geC4s+C4meC4pQor4LiB4Liz4LiZ4Lix4LiUCivguIHguLPguJnguLHguJkKK+C4geC4s+C4meC4seC4pQor4LiB4Liz4LmA4LiZ4Li04LiUCivguIHguLPguYDguJnguLXguKLguIgKK+C4geC4s+C4muC4lAor4LiB4Liz4Lia4LiZCivguIHguLPguJrguLHguIcKK+C4geC4s+C4muC4seC4lAor4LiB4Liz4Lia4Li04LiUCivguIHguYjguLPguJrguLbguYnguIcKK+C4geC4s+C5gOC4muC5ieC4rQor4LiB4Liz4LmC4Lia4LilCivguIHguLPguJvguK0KK+C4geC4s+C4m+C4seC5iOC4mQor4LiB4Liz4Lib4Lix4LmJ4LiZCivguIHguLPguJzguKXguLIKK+C4geC4s+C4nuC4hwor4LiB4Liz4Lie4LiUCivguIHguLPguJ7guJUKK+C4geC4s+C4nuC4o+C5ieC4sgor4LiB4Liz4Lie4Lij4Liy4LiBCivguIHguLPguJ7guKfguJQKK+C4geC4s+C4nuC4reC4hwor4LiB4Liz4Lie4Li34LiUCivguIHguLPguJ7guLjguJQKK+C4geC4s+C4nuC4uQor4LiB4Liz4LmA4Lie4Lil4Li04LiHCivguIHguLPguYHguJ7guIcKK+C4geC4s+C5geC4nuC5ieC4hwor4LiB4Liz4LmB4Lie4LiH4LmB4LiB4LmJ4LinCivguIHguLPguYHguJ7guIfguILguLLguKcKK+C4geC4s+C5geC4nuC4h+C5gOC4guC4ouC5iOC4hwor4LiB4Liz4LmB4Lie4LiH4LmA4LiI4LmH4LiU4LiK4Lix4LmJ4LiZCivguIHguLPguYHguJ7guIfguKHguLXguKvguLnguJvguKPguLDguJXguLnguKHguLXguIrguYjguK3guIcKK+C4geC4s+C5geC4nuC4h+C4oeC4teC4q+C4ueC4m+C4o+C4sOC4leC4ueC4oeC4teC4leC4sgor4LiB4Liz4LmB4Lie4LiH4LmA4Lio4Li14Lii4LijCivguIHguLPguKDguLkKK+C4geC4s+C4oQor4LiB4Liz4Lih4Lie4Lik4LiB4Lip4LmMCivguIHguLPguKHguKXguLLguKjguJnguYwKK+C4geC4s+C4oeC5gOC4peC4qAor4LiB4Liz4Lih4Liw4LiW4Lix4LiZCivguIHguLPguKHguLDguKXguK0KK+C4geC4s+C4oeC4sOC4q+C4ouC4teC5iAor4LiB4Liz4Lih4Liw4Lir4Lij4Li04LiUCivguIHguLPguKHguLHguIfguKXguLDguIHguLLguKMKK+C4geC4s+C4oeC4seC4h+C4p+C4tOC4peC4tOC4lQor4LiB4Liz4Lih4Lix4LiK4Lie4LilCivguIHguLPguKHguLIKK+C4geC4s+C4oeC4t+C4rQor4LiB4Liz4Lii4Liy4LiZCivguIHguLPguKLguLMKK+C4geC4s+C4o+C4rQor4LiB4Liz4Lij4Liy4LiBCivguIHguLPguKPguLLguJoKK+C4geC4s+C4o+C4suC4pQor4LiB4Liz4Lij4Li5CivguIHguLPguYDguKPguLTguJoKK+C4geC4s+C5gOC4o+C4tOC4muC5gOC4quC4tOC4muC4quC4suC4mQor4LiB4Liz4LmE4LijCivguIHguLPguKXguK3guIcKK+C4geC4s+C4peC4seC4hwor4LiB4Liz4Lil4Lix4LiH4LiB4Li04LiZCivguIHguLPguKXguLHguIfguIHguLTguJnguIHguLPguKXguLHguIfguJnguK3guJkKK+C4geC4s+C4peC4seC4h+C5g+C4iAor4LiB4Liz4Lil4Lix4LiH4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguIHguLPguKXguLHguIfguIrguYnguLLguIfguKrguLLguKMKK+C4geC4s+C4peC4seC4h+C4lOC4tQor4LiB4Liz4Lil4Lix4LiH4LmA4LiX4Li14Lii4LiZCivguIHguLPguKXguLHguIfguKDguLLguKLguYPguJkKK+C4geC4s+C4peC4seC4h+C4oeC5ieC4sgor4LiB4Liz4Lil4Lix4LiH4Lin4Lix4LiH4LiK4LiyCivguIHguLPguKXguLHguIfguKfguLHguKfguYDguJbguKXguLTguIcKK+C4geC4s+C4peC4uOC4hwor4LiB4Liz4Lil4Li54LiZCivguIHguLPguYDguKXguLIKK+C4geC4s+C5gOC4peC4suC4sAor4LiB4Liz4LmE4LilCivguIHguLPguYTguKXguITguLnguYjguJzguLUKK+C4geC4s+C4quC4o+C4lAor4LiB4Liz4Liq4Lij4Lin4LilCivguIHguLPguYDguKrguLLguLAKK+C4geC4s+C5geC4quC4hwor4LiB4Liz4Lir4LiZ4LiUCivguIHguLPguKvguJnguJTguIHguLLguKMKK+C4geC4s+C4q+C4meC4seC4lAor4LiB4Liz4Lir4Lih4Lix4LiUCivguIHguLPguKvguKPguLLguIEKK+C4geC4s+C5gOC4q+C4meC5h+C4iAor4LiB4Liz4LmB4Lir4LiHCivguIHguLTguIEKK+C4geC4tOC5iuC4gQor4LiB4Li04LmI4LiHCivguIHguLTguYjguIfguIHguYnguK3guKIKK+C4geC4tOC5ieC4h+C4geC5iOC4sgor4LiB4Li04LmJ4LiH4LiB4Li34LitCivguIHguLTguYnguIfguIHguLfguK3guYDguKvguKXguYfguIEKK+C4geC4tOC5ieC4h+C5guC4hOC4o+C4hwor4LiB4Li04LmI4LiH4LiX4Lit4LiH4LmD4Lia4Lir4Lii4LiBCivguIHguLTguIfguJrguLjguKPguLjguKkKK+C4geC4tOC5iOC4h+C4q+C4suC4ogor4LiB4Li04LiICivguIHguLTguIgtCivguIHguLTguIjguIHguKPguKPguKEKK+C4geC4tOC4iOC4geC4suC4owor4LiB4Li04LiI4LiI4LiwCivguIHguLTguIjguIjguLDguKXguLHguIHguKnguJPguLAKK+C4geC4tOC4iOC4iOC4sgor4LiB4Li04LiI4LiI4Liy4LiZ4Li44LiB4Li04LiICivguIHguLTguIjguKfguLHguJXguKMKK+C4geC4tOC4lOC4suC4geC4suC4owor4LiB4Li04LiU4Liy4Lir4Lii4Lix4LiZCivguIHguLTguJXguJXguLQKK+C4geC4tOC4leC4leC4tOC4geC4o+C4o+C4oeC4m+C4o+C4sOC4geC4suC4qAor4LiB4Li04LiV4LiV4Li04LiE4Li44LiTCivguIHguLTguJXguJXguLTguKHguKjguLHguIHguJTguLTguYwKK+C4geC4tOC4leC4leC4tOC4qOC4seC4nuC4l+C5jAor4LiB4Li04LiZCivguIHguLTguJnguIHguKPguLTguJoKK+C4geC4tOC4meC4geC4seC4mQor4LiB4Li04LiZ4LiB4Liz4LmE4LijCivguIHguLTguJnguYDguIHguKXguLXguKLguKcKK+C4geC4tOC4meC5gOC4geC4peC4t+C4reC4geC4tOC4meC4geC4sOC4m+C4tAor4LiB4Li04LiZ4LmB4LiB4Lil4Lia4LiB4Li04LiZ4Lij4LizCivguIHguLTguJnguILguKfguLIKK+C4geC4tOC4meC4guC4suC4lAor4LiB4Li04LiZ4LmB4LiC4LiBCivguIHguLTguJnguITguKfguLLguKEKK+C4geC4tOC4meC5gOC4hOC4o+C4sgor4LiB4Li04LiZ4LmA4LiICivguIHguLTguJnguYHguIgKK+C4geC4tOC4meC5g+C4iAor4LiB4Li04LiZ4LiK4LmJ4Lit4LiZCivguIHguLTguJnguIrguLHguJkKK+C4geC4tOC4meC4i+C5ieC4suC4ogor4LiB4Li04LiZ4LiU4Lit4LiBCivguIHguLTguJnguJTguK3guIHguYDguJrguLXguYnguKIKK+C4geC4tOC4meC4lOC4reC4hwor4LiB4Li04LiZ4LiU4LmI4Liy4LiHCivguIHguLTguJnguJTguLLguKIKK+C4geC4tOC4meC4lOC4tOC4mgor4LiB4Li04LiZ4LiV4Liw4LmA4LiB4Li14Lii4LiaCivguIHguLTguJnguJXguLHguKcKK+C4geC4tOC4meC4leC4sgor4LiB4Li04LiZ4LiV4Liz4LmB4Lir4LiZ4LmI4LiHCivguIHguLTguJnguYLguJXguYrguLAKK+C4geC4tOC4meC5geC4luC4pwor4LiB4Li04LiZ4LiX4Liy4LiHCivguIHguLTguJnguJfguLXguYgKK+C4geC4tOC4meC4l+C4teC5iOC4peC4seC4muC5hOC4guC4l+C4teC5iOC5geC4iOC5ieC4hwor4LiB4Li04LiZ4LiZ4LijCivguIHguLTguJnguJnguKPguYDguIHguYfguJrguJrguLHguKcKK+C4geC4tOC4meC4meC4o+C4n+C5ieC4reC4meC5guC4reC5iAor4LiB4Li04LiZ4LiZ4Lij4Lij4LizCivguIHguLTguJnguJnguKPguYDguKXguLXguKLguJrguJbguYnguLMKK+C4geC4tOC4meC4meC4reC4geC4geC4tOC4meC5g+C4mQor4LiB4Li04LiZ4LiZ4Lit4LiZCivguIHguLTguJnguJnguYnguLMKK+C4geC4tOC4meC4meC5ieC4s+C4leC4sgor4LiB4Li04LiZ4LiZ4LmJ4Liz4LmD4LiV4LmJ4Lio4Lit4LiBCivguIHguLTguJnguJnguYnguLPguJ7guKPguLTguIHguJbguYnguKfguKLguYDguJTguLXguKLguKcKK+C4geC4tOC4meC4meC5ieC4s+C5hOC4oeC5iOC5gOC4nOC4t+C5iOC4reC5geC4peC5ieC4hwor4LiB4Li04LiZ4LiZ4LmJ4Liz4LmA4Lir4LmH4LiZ4Lib4Lil4Li04LiHCivguIHguLTguJnguYPguJkKK+C4geC4tOC4meC4muC4meC5gOC4o+C4t+C4reC4meC4guC4teC5ieC4muC4meC4q+C4peC4seC4h+C4hOC4sgor4LiB4Li04LiZ4Lia4Lin4LiKCivguIHguLTguJnguJrguYnguLLguJnguIHguLTguJnguYDguKHguLfguK3guIcKK+C4geC4tOC4meC4muC4uOC4jQor4LiB4Li04LiZ4Lia4Li44LiN4LmA4LiB4LmI4LiyCivguIHguLTguJnguYHguJrguYjguIcKK+C4geC4tOC4meC4m+C4peC4tOC4hwor4LiB4Li04LiZ4Lib4Lil4Li1CivguIHguLTguJnguJvguLnguJnguKPguYnguK3guJnguJfguYnguK3guIcKK+C4geC4tOC4meC5gOC4m+C4peC5iOC4sgor4LiB4Li04LiZ4LmA4Lib4Li14LmJ4Lii4LinCivguIHguLTguJnguJzguLHguKcKK+C4geC4tOC4meC5gOC4nuC4o+C4sgor4LiB4Li04LiZ4Lih4Li34LitCivguIHguLTguJnguYDguKHguLXguKIKK+C4geC4tOC4meC5gOC4oeC4t+C4reC4hwor4LiB4Li04LiZ4LmE4Lih4LmI4Lil4LiHCivguIHguLTguJnguKPguLHguIfguYHguJXguJkKK+C4geC4tOC4meC4o+C4tOC4mQor4LiB4Li04LiZ4Lij4Li1CivguIHguLTguJnguKPguLnguJsKK+C4geC4tOC4meC5geC4o+C4hwor4LiB4Li04LiZ4Lil4LihCivguIHguLTguJnguKXguKHguIHguLTguJnguYHguKXguYnguIcKK+C4geC4tOC4meC4peC5ieC4suC4h+C4geC4tOC4meC4nOC4peC4suC4jQor4LiB4Li04LiZ4Lil4Li24LiBCivguIHguLTguJnguYDguKfguKXguLIKK+C4geC4tOC4meC5gOC4qOC4qeC4geC4tOC4meC5gOC4peC4ogor4LiB4Li04LiZ4Liq4LmJ4Lit4LihCivguIHguLTguJnguKrguLHguYjguIcKK+C4geC4tOC4meC4quC4s+C4o+C4seC4mgor4LiB4Li04LiZ4Liq4Li14LmI4LiW4LmJ4Lin4LiiCivguIHguLTguJnguYDguKrguYnguJkKK+C4geC4tOC4meC4q+C4meC5ieC4sgor4LiB4Li04LiZ4Lir4Lil4Lix4LiHCivguIHguLTguJnguKvguLLguIcKK+C4geC4tOC4meC4q+C4ueC5iQor4LiB4Li04LiZ4LmA4Lir4Lih4Li34Lit4LiZ4Lir4Lih4Li5IOC4reC4ouC4ueC5iOC5gOC4q+C4oeC4t+C4reC4meC4q+C4oeC4sgor4LiB4Li04LiZ4LmA4Lir4Lil4LmH4LiB4LiB4Li04LiZ4LmE4Lir4LilCivguIHguLTguJnguYHguKvguJnguIcKK+C4geC4tOC4meC4reC4ouC4ueC5iOC4geC4seC4muC4m+C4suC4gSDguK3guKLguLLguIHguK3guKLguLnguYjguIHguLHguJrguJfguYnguK3guIcKK+C4geC4tOC4meC4reC4ouC4ueC5iOC4nuC4ueC4p+C4suC4ogor4LiB4Li04LmK4LiaCivguIHguLTguKHguJXguLbguYvguIcKK+C4geC4tOC4oeC4tOC4iuC4suC4leC4tAor4LiB4Li04Lih4Li04Lin4Li04LiX4Lii4LiyCivguIHguLTguYLguKHguYLguJkKK+C4geC4tOC5guC4ouC4leC4teC4mQor4LiB4Li04Lij4LiwCivguIHguLTguKPguLTguJPguLUKK+C4geC4tOC4o+C4tOC4meC4lwor4LiB4Li04Lij4Li04LmA4LiZ4Lio4Lin4LijCivguIHguLTguKPguLTguKLguLIKK+C4geC4tOC4o+C4tOC4ouC4suC4quC4sOC4l+C5ieC4reC4mQor4LiB4Li04LmA4Lil4LiZCivguIHguLTguYDguKXguKoKK+C4geC4tOC5gOC4peC4qi0KK+C4geC4tOC5gOC4peC4quC4oeC4suC4owor4LiB4Li04LmC4LilCivguIHguLTguYLguKUtCivguIHguLTguYLguKXguIHguKPguLHguKEKK+C4geC4tOC5guC4peC5hOC4i+C5gOC4geC4tOC4pQor4LiB4Li04LmC4Lil4Lih4LiB4LiwCivguIHguLTguYLguKXguYDguKHguJXguKMKK+C4geC4tOC5guC4peC4peC4tOC4leC4owor4LiB4Li04LmC4Lil4LmA4Liu4Li04Lij4LiV4LiL4LmMCivguIHguLTguYjguKcKK+C4geC4tOC5i+C4pwor4LiB4Li04LmL4Lin4LmGCivguIHguLUKK+C4geC4teC5iAor4LiB4Li14LmJCivguIHguLXguYsKK+C4geC4teC5iOC4geC4o+C4sOC4leC4uOC4gQor4LiB4Li14LiPLQor4LiB4Li14LiP4Lin4Li04LiX4Lii4LiyCivguIHguLXguJQKK+C4geC4teC4lOC4geC4seC4mQor4LiB4Li14LiU4LiB4Lix4LmJ4LiZCivguIHguLXguJTguILguKfguLLguIcKK+C4geC4teC4lOC4q+C4meC5ieC4suC4guC4p+C4suC4h+C4leC4sgor4LiB4Li14LiV4Liy4Lij4LmMCivguIHguLXguJoKK+C4geC4teC4muC5geC4o+C4lAor4LiB4Li14LmI4Lih4Liy4LiB4LiZ4LmJ4Lit4LiiCivguIHguLXguKPguJXguLQKK+C4geC4teC4rOC4sgor4LiB4Li24LiBCivguIHguLbguIHguIHguYnguK3guIcKK+C4geC4tuC4geC4geC4seC4gQor4LiB4Li24LiB4LiB4Li34LitCivguIHguLbguIHguJbguK3guIcKK+C4geC4tuC4hwor4LiB4Li24LmI4LiHCivguIHguLbguYjguIfguIHguKXguLLguIcKK+C4geC4tuC4h+C4geC4seC4hwor4LiB4Li24LmI4LiH4Lij4Liy4LiK4LiB4Liy4LijCivguIHguLbguYvguJkKK+C4geC4uAor4LiB4Li44LiBCivguIHguLjguYrguIEKK+C4geC4uOC4geC4geC4seC4gQor4LiB4Li44LiB4LmGIOC4geC4seC4geC5hgor4LiB4Li44LmK4LiB4LiB4Li04LmK4LiBCivguIHguLjguYrguIHguYYg4LiB4Li04LmK4LiB4LmGCivguIHguLjguIHguIHguLjguI8tCivguIHguLjguIHguIHguLjguKMtCivguIHguLjguIHguILguLXguYnguKvguKHguLkKK+C4geC4uOC4geC4o+C4o+C4oQor4LiB4Li44LiB4LmI4Lit4LiHCivguIHguLjguIHguLAKK+C4geC4uOC4geC4sOC4oeC4sOC5gOC4l+C4tOC5iOC4hwor4LiB4Li44LiB4Li44LiY4Lig4Lix4LiT4LiR4LmMCivguIHguLjguYnguIcKK+C4geC4uOC5ieC4h+C4lOC4teC4lAor4LiB4Li44LmJ4LiH4LiU4Li14LiU4LiC4Lix4LiZCivguIHguLjguYnguIfguYDguJXguYnguJkKK+C4geC4uOC5ieC4h+C4meC4suC4hwor4LiB4Li44LmJ4LiH4Lid4Lit4LiiCivguIHguLjguYnguIfguJ/guLHguJQKK+C4geC4uOC5ieC4h+C4oeC4seC4h+C4geC4owor4LiB4Li44LmJ4LiH4LmE4Lih4LmJCivguIHguLjguYnguIfguKLguLTguIcKK+C4geC4uOC5ieC4h+C4quC5ieC4oQor4LiB4Li44LmJ4LiH4Lir4LiZ4Liy4Lih4LmD4Lir4LiN4LmICivguIHguLjguYnguIfguKvguKXguKfguIcKK+C4geC4uOC5ieC4h+C5gOC4q+C4peC4t+C4reC4hwor4LiB4Li44LmJ4LiH4LmB4LirCivguIHguLjguYnguIfguYHguKvguYnguIcKK+C4geC4uOC4h+C4reC4mQor4LiB4Li44LiH4Liy4LiZCivguIHguLjguYLguIfguIEKK+C4geC4uOC4iOC4tQor4LiB4Li44LiN4LmB4LiICivguIHguLjguI3guYHguIjguIHguKUKK+C4geC4uOC4jeC5geC4iOC4m+C4o+C4sOC4iOC4s+C4q+C4peC4seC4gQor4LiB4Li44LiN4LmB4LiI4Lib4Liy4LiB4LiV4Liy4LiiCivguIHguLjguI3guYHguIjguJzguLUKK+C4geC4uOC4jeC5geC4iOC4oeC4t+C4rQor4LiB4Li44LiN4LmB4LiI4Lij4Lir4Lix4LiqCivguIHguLjguI3guYHguIjguYDguKXguLfguYjguK3guJkKK+C4geC4uOC4jeC5geC4iOC5gOC4quC4teC4ouC4hwor4LiB4Li44LiN4LmB4LiI4LmB4Lir4Lin4LiZCivguIHguLjguI3guIrguKMKK+C4geC4uOC4jgor4LiB4Li44LiO4LiyCivguIHguLjguI7guLLguITguLLguKMKK+C4geC4uOC4juC4suC4mOC4suC4owor4LiB4Li44LiO4Li1CivguIHguLjguI7guLjguKHguJ7guLUKK+C4geC4uOC4j+C4kOC4seC4hwor4LiB4Li44LiP4LmE4LiVCivguIHguLjguI/guLQKK+C4geC4uOC4k+C4keC5jAor4LiB4Li44LiT4LiR4LilCivguIHguLjguJPguJHguLUKK+C4geC4uOC4k+C5guC4kQor4LiB4Li44LiT4Liy4LilCivguIHguLjguJPguLQKK+C4geC4uOC4k+C4tQor4LiB4Li44LiUCivguIHguLjguJTguLHguIcKK+C4geC4uOC4lOC4seC5iOC4mQor4LiB4Li44LiU4LiyCivguIHguLjguJfguLHguJPguJHguYwKK+C4geC4uOC4mQor4LiB4Li44LmK4LiZCivguIHguLjguJnguYDguIrguLXguKLguIcKK+C4geC4uOC4meC4l+C4tQor4LiB4Li44LmC4LiZ4LiB4Liy4Lih4LitCivguIHguLjguJoKK+C4geC4uOC4muC4geC4seC4mgor4LiB4Li44LihCivguIHguLjguYjguKEKK+C4geC4uOC4oeC4neC4reC4ogor4LiB4Li44Lih4LigLQor4LiB4Li44Lih4Lig4LmMCivguIHguLjguKHguKDguIHguLLguKMKK+C4geC4uOC4oeC4oOC4meC4tOC4ouC4sgor4LiB4Li44Lih4Lig4Lix4LiT4LiRLQor4LiB4Li44Lih4Lig4Lix4LiT4LiR4LmMCivguIHguLjguKHguKDguLHguJPguJHguKLguLHguIHguKnguYwKK+C4geC4uOC4oeC4oOC4sgor4LiB4Li44Lih4Lig4Liy4Lie4Lix4LiZ4LiY4LmMCivguIHguLjguKHguKDguLTguKUKK+C4geC4uOC4oeC4oOC4teC4peC5jAor4LiB4Li44Lih4Lil4Lix4LiE4LiZ4LmMCivguIHguLjguKHguYDguKvguIcKK+C4geC4uOC4oeC4suC4owor4LiB4Li44Lih4Liy4Lij4Lil4Lis4Li04LiV4LiyCivguIHguLjguKHguLLguKPguLIKK+C4geC4uOC4oeC4suC4o+C4tQor4LiB4Li44Lih4Li44LiXCivguIHguLjguKIKK+C4geC4uOC5iuC4ogor4LiB4Li44LmL4LiiCivguIHguLjguYvguKLguYYKK+C4geC4uOC4ouC4iuC5iOC4suC4ogor4LiB4Li44Lii4LmA4Liu4LiHCivguIHguLjguKPguKMKK+C4geC4uOC4o+C4sAor4LiB4Li44Lij4Li44LiHCivguIHguLjguKPguLjguJ7guLTguJnguJfguYwKK+C4geC4uOC4o+C4uOC4owor4LiB4Li44LmA4Lij4LiyCivguIHguLjguKUKK+C4geC4uOC4pS0KK+C4geC4uOC4peC4l+C4ueC4quC4gQor4LiB4Li44Lil4LiY4Li04LiU4LiyCivguIHguLjguKXguJrguJTguLUKK+C4geC4uOC4peC4muC4uOC4leC4owor4LiB4Li44Lil4Liq4LiV4Lij4Li1CivguIHguLjguKXguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4geC4uOC4peC4sgor4LiB4Li44Lil4Liy4LiL4LmI4Lit4LiZ4Lic4LmJ4LiyCivguIHguLjguKXguLLguJTguLMKK+C4geC4uOC4peC4suC4leC4teC5hOC4oeC5iQor4LiB4Li44Lil4Liy4LiV4Li14Lit4LiBCivguIHguLjguKXguLLguKXguLLguKIKK+C4geC4uOC4peC4suC4q+C4pQor4LiB4Li44Lil4Li1CivguIHguLjguKXguLXguIHguLjguIjguK0KK+C4geC4uOC5gOC4peC4sgor4LiB4Li44LmB4LilCivguIHguLjguYDguKfguKMKK+C4geC4uOC4qOC4o+C4suC4igor4LiB4Li44Lio4LilCivguIHguLjguKjguKXguIHguKPguKPguKHguJrguJYKK+C4geC4uOC4qOC5guC4peC4muC4suC4ogor4LiB4Li44Liq4LilCivguIHguLjguKrguLjguKEKK+C4geC4uOC4quC4uOC4oS0KK+C4geC4uOC4quC4uOC4oeC4oOC5jAor4LiB4Li44Liq4Li44Lih4Lin4Li04LiI4Li04LiV4LijCivguIHguLjguKrguLjguKHguLIKK+C4geC4uOC4quC4uOC4oeC4suC4peC4ouC5jAor4LiB4Li44Liq4Li44Lih4Li04LiV4Lil4LiU4Liy4LmA4Lin4Lil4Lil4Li04LiV4LiyCivguIHguLjguKvguJnguLUKK+C4geC4uOC4q+C4meC4uOC4hwor4LiB4Li44Lir4Lij4LmI4LiyCivguIHguLjguKvguKXguYjguLIKK+C4geC4uOC4q+C4peC4suC4mgor4LiB4Li44LmB4Lir4Lil4LiwCivguIHguLkKK+C4geC4ueC5iAor4LiB4Li54LmJCivguIHguLnguYrguIEKK+C4geC4ueC4jwor4LiB4Li54LiP4LiyCivguIHguLnguI/guLLguITguLLguKMKK+C4geC4ueC4k+C4keC5jAor4LiB4Li54LiUCivguIHguLnguJkKK+C4geC4ueC4mgor4LiB4Li54Lib4Lij4Li1CivguIHguLnguYnguKDguLHguKIKK+C4geC4ueC5iOC5hOC4oeC5iOC4geC4peC4seC4mgor4LiB4Li54LmJ4Lii4Li34LihCivguIHguLnguKPguKEtCivguIHguLnguKPguKHguLAKK+C4geC4ueC4o+C4oeC4suC4p+C4leC4suC4owor4LiB4Li54Lij4LizCivguIHguLnguYnguKvguJnguYnguLIKK+C5gOC4gQor4LmA4LiB4LmICivguYDguIHguYoKK+C5gOC4geC5iwor4LmA4LiB4LiBCivguYDguIHguYrguIEKK+C5gOC4geC4geC4oeC4sOC5gOC4q+C4o+C4gQor4LmA4LiB4LmK4LiB4Lir4LiZ4LmJ4LiyCivguYDguIHguYrguIHguK7guKfguKIKK+C5gOC4geC5ieC4geC4seC4hwor4LmA4LiB4LmJ4LmGIOC4geC4seC4h+C5hgor4LmA4LiB4LmH4LiHCivguYDguIHguYjguIcKK+C5gOC4geC5ieC4hwor4LmA4LiB4LmL4LiHCist4LmA4LiB4LiH4LiB4Lit4LiiCivguYDguIHguYnguIfguIHguYnguLLguIcKK+C5gOC4geC5iOC4h+C4geC4suC4iAor4LmA4LiB4LmH4LiH4LiB4Liz4LmE4LijCivguYDguIHguIfguYDguILguIcKK+C5gOC4geC5i+C4h+C5gOC4hOC4hwor4LmA4LiB4LmI4LiH4LmB4LiV4LmI4Lib4Liy4LiBCivguYDguIHguYvguIfguJ7guLHguYnguIcKK+C5gOC4geC5h+C4iAor4LmA4LiB4LiI4Li04Lit4Liy4LiI4Liy4Lij4Lii4LmMCivguYDguIHguIrguLIKK+C5gOC4geC4k+C4keC5jAor4LmA4LiB4LiT4LiR4LmM4LiV4Liw4Lie4Lix4LiUCivguYDguIHguJPguJHguYzguYDguKHguLfguK3guIfguKPguLHguYnguIcKK+C5gOC4geC4k+C4keC5jOC4q+C4seC4lAor4LmA4LiB4LiUCivguYDguIHguYfguJQKK+C5gOC4geC4leC4uAor4LmA4LiB4LiV4Li4LQor4LmA4LiB4LiV4Li44Lih4Liy4Lil4LiyCivguYDguIHguJkKK+C5gOC4geC4meC5hgor4LmA4LiB4LmI4LiZCivguYDguIHguYfguJoKK+C5gOC4geC5h+C4muC5gOC4geC4teC5iOC4ouC4pwor4LmA4LiB4LmH4Lia4LiC4LmJ4Liy4LinCivguYDguIHguYfguJrguILguYnguLLguKfguJXguIEKK+C5gOC4geC5h+C4muC4hOC4p+C4suC4oQor4LmA4LiB4LmH4Lia4LiH4LizCivguYDguIHguYfguJrguJXguIEKK+C5gOC4geC5h+C4muC4leC4seC4pwor4LmA4LiB4LmH4Lia4LmA4LiZ4Li34LmJ4Lit4LmA4LiB4LmH4Lia4LiV4Lix4LinCivguYDguIHguYfguJrguYDguJrguLXguYnguKLguYPguJXguYnguJbguLjguJnguKPguYnguLLguJkKK+C5gOC4geC5h+C4muC4nOC4oQor4LmA4LiB4LmH4Lia4LmE4LijCivguYDguIHguYfguJrguYDguKXguYfguIHguJzguKrguKHguJnguYnguK3guKIKK+C5gOC4geC5h+C4muC5gOC4peC5h+C4oQor4LmA4LiB4LmH4Lia4LmA4Lil4LmI4LihCivguYDguIHguYfguJrguKrguLUKK+C5gOC4geC5h+C4muC4q+C4meC5ieC4suC4nOC5ieC4sgor4LmA4LiB4LmH4Lia4Lir4Lit4Lih4Lij4Lit4Lih4Lij4Li04LiaCivguYDguIHguKEKK+C5gOC4geC4ogor4LmA4LiB4Lii4Lil4LiyCivguYDguIHguKLguYHguKvguYnguIcKK+C5gOC4geC4ouC4ueC4owor4LmA4LiB4Lij4LiHCivguYDguIHguKPguYfguIcKK+C5gOC4geC4o+C4h+C4guC4suC4oQor4LmA4LiB4Lij4LiH4LmD4LiICivguYDguIHguKPguIfguK3guIHguYDguIHguKPguIfguYPguIgKK+C5gOC4geC4o+C5h+C4lAor4LmA4LiB4Lij4LiZCivguYDguIHguKPguYjguK0KK+C5gOC4geC4o+C4reC4sAor4LmA4LiB4Lij4Lit4Liw4LiB4Lij4Lix4LiHCivguYDguIHguKPguLLguLAKK+C5gOC4geC4o+C4tOC4gQor4LmA4LiB4Lij4Li04LiZCivguYDguIHguKPguLTguYjguJkKK+C5gOC4geC4o+C4teC4ouC4gQor4LmA4LiB4Lij4Li14Lii4LiHCivguYDguIHguKPguLXguKLguIfguYTguIHguKMKK+C5gOC4geC4o+C4teC4ouC4lAor4LmA4LiB4Lij4Li14Lii4LiZCivguYDguIHguKPguLXguKLguJoKK+C5gOC4geC4o+C4teC4ouC4oQor4LmA4LiB4Lij4Li14Lii4Lih4LiB4Lij4LihCivguYDguIHguKPguLXguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4pwor4LmA4LiB4Lij4Li14LmJ4Lii4Lin4LmGCivguYDguIHguKPguLXguYnguKLguKfguIHguKPguLLguJQKK+C5gOC4geC4o+C4teC4ouC4p+C4geC4o+C4suC4pwor4LmA4LiB4LmA4LijCivguYDguIHguYDguKPguYDguIHguJXguLjguIcKK+C5gOC4geC5gOC4o+C5gOC4geC5gOC4qgor4LmA4LiB4Lil4LmH4LiUCivguYDguIHguKXguYfguJTguIHguKPguLDguJTguLXguYgKK+C5gOC4geC4peC5h+C4lOC4geC4o+C4sOC5guC4q+C5iQor4LmA4LiB4Lil4LmH4LiU4LiC4LmJ4Liy4Lin4LmA4Lih4LmI4LiyCivguYDguIHguKXguYfguJTguJbguLXguYgKK+C5gOC4geC4peC5h+C4lOC4meC4suC4hAor4LmA4LiB4Lil4LmH4LiU4Lib4Lil4Liy4LiK4LmI4Lit4LiZCivguYDguIHguKXguYfguJTguKvguK3guKIKK+C5gOC4geC4peC4qAor4LmA4LiB4Lil4LitCivguYDguIHguKXguLIKK+C5gOC4geC4peC5ieC4sgor4LmA4LiB4Lil4LmJ4Liy4LiB4Lij4Liw4Lic4LihCivguYDguIHguKXguYnguLLguIHguKPguLDguKvguKHguYjguK3guKEKK+C5gOC4geC4peC4suC4sAor4LmA4LiB4Lil4Li14LmI4LiiCivguYDguIHguKXguLXguYnguKIKK+C5gOC4geC4peC4teC5ieC4ouC4geC4peC5iOC4reC4oQor4LmA4LiB4Lil4Li14LmI4Lii4LmE4LiB4Lil4LmICivguYDguIHguKXguLXguKLguIcKK+C5gOC4geC4peC4teC5ieC4ouC4hwor4LmA4LiB4Lil4Li14LmJ4Lii4LiH4LmA4LiB4Lil4LiyCivguYDguIHguKXguLXguKLguJQKK+C5gOC4geC4peC4teC4ouC4lOC4leC4seC4p+C4geC4tOC4meC5hOC4guC5iAor4LmA4LiB4Lil4Li14Lii4LiU4Lib4Lil4Liy4LmE4Lir4Lil4LiB4Li04LiZ4LiZ4LmJ4Liz4LmB4LiB4LiHCivguYDguIHguKXguLXguKLguKcKK+C5gOC4geC4peC4teC4ouC4p+C4geC4peC4oQor4LmA4LiB4Lil4Li14Lii4Lin4LiC4LmJ4Liy4LiHCivguYDguIHguKXguLXguKLguKfguITguK0KK+C5gOC4geC4peC4teC5iOC4ouC4p+C4lOC4swor4LmA4LiB4Lil4Li14Lii4Lin4Lir4Lin4Liy4LiZCivguYDguIHguKXguLfguK0KK+C5gOC4geC4peC4t+C5ieC4rQor4LmA4LiB4Lil4Li34Lit4LiBCivguYDguIHguKXguLfguK3guIHguIHguKXguLHguYnguKcKK+C5gOC4geC4peC4t+C4reC4geC4geC4peC4tOC5ieC4hwor4LmA4LiB4Lil4Li34Lit4LiB4Lij4LiUCivguYDguIHguKXguLfguK3guYHguIHguIcKK+C5gOC4geC4peC4t+C4reC5gOC4h+C4tOC4mQor4LmA4LiB4Lil4Li34Lit4LiI4Li04LmJ4Lih4LmA4LiB4Lil4Li34LitCivguYDguIHguKXguLfguK3guIjguLfguJQKK+C5gOC4geC4peC4t+C4reC4lOC5iOC4suC4hwor4LmA4LiB4Lil4Li34Lit4LiU4LmI4Liy4LiH4LiE4Lil4Li1CivguYDguIHguKXguLfguYjguK3guJkKK+C5gOC4geC4peC4t+C5ieC4reC4mQor4LmA4LiB4Lil4Li34LmI4Lit4LiZ4LiB4Lil4LmI4LiZCivguYDguIHguKXguLfguYjguK3guJnguIHguKXguLLguJQKK+C5gOC4geC4peC4t+C5iOC4reC4meC4hOC4p+C4suC4oQor4LmA4LiB4Lil4Li34Lit4LmA4Lia4Liq4Li04LiBCivguYDguIHguKXguLfguK3guJvguKPguIHguJXguLQKK+C5gOC4geC4peC4t+C4reC5gOC4m+C5h+C4meC4q+C4meC4reC4mQor4LmA4LiB4Lil4Li34Lit4Lif4Lit4LiHCivguYDguIHguKXguLfguK3guKLguLnguYDguKPguJUKK+C5gOC4geC4peC4t+C4reC4quC4oeC4uOC4l+C4owor4LmA4LiB4Lil4Li34Lit4Liq4Li04LiZ4LmA4LiY4Liy4Lin4LmMCivguYDguIHguYTguKUKK+C5gOC4geC4p+C4seC4jwor4LmA4LiB4Lin4Li14Lii4LiZCivguYDguIHguKfguLXguKLguJnguKvguKXguKfguIcKK+C5gOC4geC4qAor4LmA4LiB4LioLQor4LmA4LiB4Lio4LiY4Liy4LiV4Li4CivguYDguIHguKjguJ4KK+C5gOC4geC4qOC4pwor4LmA4LiB4Lio4LiyCivguYDguIHguKjguLLguIHguLHguJnguJXguYwKK+C5gOC4geC4qOC4tOC4meC4tQor4LmA4LiB4Lio4Li1CivguYDguIHguKnguJXguKMKK+C5gOC4geC4qeC4leC4o+C4geC4owor4LmA4LiB4Lip4LiV4Lij4LiB4Lij4Lij4LihCivguYDguIHguKnguJXguKPguYHguKXguLDguKrguKvguIHguKPguJPguYwKK+C5gOC4geC4qeC4leC4o+C4qOC4suC4quC4leC4o+C5jAor4LmA4LiB4Lip4LihCivguYDguIHguKnguKHguKjguLLguJnguJXguYwKK+C5gOC4geC4qeC4oeC4quC4seC4meC4leC5jAor4LmA4LiB4Lip4Li14Lii4LiTCivguYDguIHguKnguLXguKLguJPguK3guLLguKLguLgKK+C5gOC4geC4qeC4teC4ouC4mQor4LmA4LiB4Lip4Li14Lii4LijCivguYDguIHguKnguLXguKLguKPguKrguKHguLjguJfguKMKK+C5gOC4geC4qgor4LmA4LiB4Liq4LijCivguYDguIHguKrguKPguJfguLHguYnguIfguKvguYnguLIKK+C5gOC4geC4quC4o+C4tQor4LmA4LiB4Liq4LiyCivguYDguIHguKrguLUKK+C5gOC4geC5ieC4rQor4LmA4LiB4Lit4Li04LiK4LiyCivguYDguIHguLAKK+C5gOC4geC4sOC4geC4sAor4LmA4LiB4LiyCivguYDguIHguYjguLIKK+C5gOC4geC5ieC4sgor4LmA4LiB4LmL4LiyCivguYDguIHguLLguJXguYwKK+C5gOC4geC4suC4l+C4seC4k+C4keC5jAor4LmA4LiB4Liy4LiX4Li44Lih4Lie4LijCivguYDguIHguLLguJrguLTguJkKK+C5gOC4geC4suC4muC4tOC4pQor4LmA4LiB4Liy4Lih4Liy4LijCivguYDguIHguLLguKXguLHguJQKK+C5gOC4geC4suC4peC4seC4lOC4iOC4teC4mQor4LmA4LiB4Liy4Lil4Li04LiZCivguYDguIHguLLguYTguKjguKIKK+C5gOC4geC4suC4q+C4peC4tQor4LmA4LiB4Liy4LmA4Lir4Lil4LiyCivguYDguIHguLLguYDguKvguKXguLXguKLguIcKK+C5gOC4geC5ieC4suC4reC4teC5iQor4LmA4LiB4Liy4LiwCivguYDguIHguLLguLDguIHguLTguJkKK+C5gOC4geC4suC4sOC5geC4geC4sAor4LmA4LiB4Li04LiHCivguYDguIHguLTguYnguIcKK+C5gOC4geC4tOC4lAor4LmA4LiB4Li04LiU4Liq4Li54Lij4Lii4LmMCivguYDguIHguLTguJkKK+C5gOC4geC4tOC4meC4geC4suC4owor4LmA4LiB4Li04LiZ4LiB4Li04LiZCivguYDguIHguLTguJnguITguJkKK+C5gOC4geC4tOC4meC4h+C4suC4oQor4LmA4LiB4Li04LiZ4LiU4Li1CivguYDguIHguLTguJnguJXguLHguKcKK+C5gOC4geC4tOC4meC5hOC4mwor4LmA4LiB4Li04LiZ4LmA4Lil4LiiCivguYDguIHguLTguJnguKvguJnguYnguLIKK+C5gOC4geC4tOC4mgor4LmA4LiB4Li14LiiCivguYDguIHguLXguKLguIHguIHguLLguKIKK+C5gOC4geC4teC4ouC4hwor4LmA4LiB4Li14LmI4Lii4LiHCivguYDguIHguLXguYvguKLguIcKK+C5gOC4geC4teC5iOC4ouC4h+C4h+C4reC4mQor4LmA4LiB4Li14LmI4Lii4LiH4LiV4Liy4LiiCivguYDguIHguLXguKLguIgKK+C5gOC4geC4teC4ouC4iOC4geC4pQor4LmA4LiB4Li14Lii4LiI4LiE4Lij4LmJ4Liy4LiZCivguYDguIHguLXguKLguJQKK+C5gOC4geC4teC4ouC4lOC4geC4seC4mQor4LmA4LiB4Li14Lii4LiZCivguYDguIHguLXguYnguKLguKHguYTguInguYgKK+C5gOC4geC4teC5ieC4ouC4oeC4reC4teC5iwor4LmA4LiB4Li14Lii4Lij4LmMCivguYDguIHguLXguKLguKPguJXguLQKK+C5gOC4geC4teC4ouC4o+C4leC4tC0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC5jAor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiE4Li44LiTCivguYDguIHguLXguKLguKPguJXguLTguJnguLTguKLguKEKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4m+C4o+C4sOC4p+C4seC4leC4tAor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lig4Li54Lih4Li0CivguYDguIHguLXguKLguKPguJXguLTguKLguKgKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4qOC4seC4geC4lOC4tOC5jAor4LmA4LiB4Li14LmI4Lii4LinCivguYDguIHguLXguYnguKLguKcKK+C5gOC4geC4teC5iuC4ouC4pwor4LmA4LiB4Li14LmI4Lii4Lin4LiB4LmJ4Lit4LiiCivguYDguIHguLXguYnguKLguKfguYDguIHguYTguKUKK+C5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4reC4hwor4LmA4LiB4Li14LmI4Lii4Lin4LiC4LmJ4Liy4LinCivguYDguIHguLXguYnguKLguKfguITguK3guYTguIHguYgKK+C5gOC4geC4teC5iOC4ouC4p+C4lOC4reC4hwor4LmA4LiB4Li14LmI4Lii4Lin4LiU4Lit4LiH4Lir4LiZ4Lit4LiH4Lii4Li44LmI4LiHCivguYDguIHguLXguYnguKLguKfguJnguKfguKEKK+C5gOC4geC4teC5iOC4ouC4p+C5gOC4muC5h+C4lAor4LmA4LiB4Li14LmJ4Lii4Lin4Lib4Lij4Liw4LiX4Li14LibCivguYDguIHguLXguYjguKLguKfguYHguJ3guIHguKHguLjguIfguJvguYjguLIKK+C5gOC4geC4teC5iOC4ouC4p+C4nuC4seC4mQor4LmA4LiB4Li14LmJ4Lii4Lin4Lie4Liy4LiZCivguYDguIHguLXguYnguKLguKfguJ7guLLguKPguLLguKrguLUKK+C5gOC4geC4teC5iOC4ouC4p+C5guC4ouC4hwor4LmA4LiB4Li14LmK4Lii4LiwCivguYDguIHguLfguYnguK0KK+C5gOC4geC4t+C4reC4gQor4LmA4LiB4Li34Lit4LiB4Lih4LmJ4LiyCivguYDguIHguLfguYnguK3guIHguLnguKUKK+C5gOC4geC4t+C4reC4mgor4LmA4LiB4Li34Lit4Lia4LmE4LibCivguYHguIEKK+C5geC4geC5iAor4LmB4LiB4LmJCivguYHguIHguYjguIHguKXguYnguLIKK+C5geC4geC5ieC5gOC4geC4teC5ieC4ouC4pwor4LmB4LiB4LmJ4LiC4Lix4LiUCivguYHguIHguYnguYTguIIKK+C5geC4geC5ieC5geC4hOC5ieC4mQor4LmB4LiB4LiHCivguYHguIHguYjguIcKK+C5geC4geC5ieC4hwor4LmB4LiB4LmK4LiHCivguYHguIHguYnguIfguIHguYnguJkKK+C5geC4geC4h+C4guC4oQor4LmB4LiB4LiH4LiI4Li34LiUCivguYHguIHguIfguYTguJQKK+C5geC4geC4h+C5geC4meC4hwor4LmB4LiB4LiH4Lia4Lin4LiUCivguYHguIHguIfguYDguJzguYfguJQKK+C5geC4geC5iOC4h+C5geC4ouC5iOC4hwor4LmB4LiB4LiH4Lij4LmJ4Lit4LiZCivguYHguIHguIfguKrguYnguKEKK+C5geC4geC5iOC4lOC4teC4geC4o+C4tQor4LmB4LiB4LmI4LmB4LiU4LiUCivguYHguIHguYLguJTguKXguLTguYDguJnguLXguKLguKEKK+C5geC4geC5ieC4leC4gQor4LmB4LiB4LmI4LiV4Lix4LinCivguYHguIHguYnguJXguLHguKcKK+C5geC4geC5ieC4leC5iOC4suC4hwor4LmB4LiB4LmJ4LiX4Li1CivguYHguIHguYnguYLguJfguKkKK+C5geC4geC4mQor4LmB4LiB4LmI4LiZCivguYHguIHguYjguJnguYHguIHguYnguKcKK+C5geC4geC5iOC4meC4quC4suC4owor4LmB4LiB4LiZ4LiwCivguYHguIHguYHguJkKK+C5geC4geC5ieC4muC4mQor4LmB4LiB4LmI4Lia4LmJ4Liy4LiZCivguYHguIHguYnguJrguLLguJsKK+C5geC4geC5iuC4mwor4LmB4LiB4LmJ4LmA4Lic4LmH4LiUCivguYHguIHguYnguJ3guLHguJkKK+C5geC4geC5iOC5hOC4nwor4LmB4LiB4LihCivguYHguIHguYnguKEKK+C5geC4geC5ieC4oeC4iuC5ieC4swor4LmB4LiB4LmJ4Lih4LmB4LiU4LiHCivguYHguIHguKHguKHguLIKK+C5geC4geC5ieC4oeC5geC4q+C4oeC5iOC4oQor4LmB4LiB4LmJ4Lih4Li34LitCivguYHguIHguKPguIEKK+C5geC4geC4o+C5iOC4hwor4LmB4LiB4Lij4LmH4LiZCivguYHguIHguKPguJnguLTguJUKK+C5geC4geC4o+C5hOC4n+C4leC5jAor4LmB4LiB4Lij4LmI4LinCivguYHguIHguKPguLAKK+C5geC4geC5iOC5geC4o+C4lAor4LmB4LiB4LilCivguYHguIHguKXguYgKK+C5geC4geC4peC5ieC4hwor4LmB4LiB4Lil4LmJ4LiH4LmA4LiB4Lil4LiyCivguYHguIHguKXguJkKK+C5geC4geC4peC4mgor4LmB4LiB4Lil4Lia4Lir4LiZ4Li5CivguYHguIHguKXguJrguKvguLnguKvguJnguLkKK+C5geC4geC4peC5ieC4oQor4LmB4LiB4Lil4Lil4Lit4LiZCivguYHguIHguKXguYDguKXguLXguKLguKEKK+C5geC4geC4peC5ieC4pwor4LmB4LiB4Lil4LiwCivguYHguIHguYnguKXguLMKK+C5geC4geC5geC4pQor4LmB4LiB4LinCivguYHguIHguYnguKcKK+C5geC4geC5ieC4p+C4geC5iuC4rQor4LmB4LiB4LmJ4Lin4LiB4Li44LmJ4LiHCivguYHguIHguYnguKfguYHguIHguKXguJoKK+C5geC4geC4p+C5iOC4hwor4LmB4LiB4Lin4LmI4LiH4LmE4LiB4LinCivguYHguIHguKfguYjguIfguJXguLXguJnguKvguLLguYDguKrguLXguYnguKLguJkKK+C5geC4geC5ieC4p+C4iuC4tOC4h+C4lOC4p+C4hwor4LmB4LiB4LmJ4Lin4LiV4LiyCivguYHguIHguKfguYjguJkKK+C5geC4geC5ieC4p+C4nOC4peC4tuC4gQor4LmB4LiB4LmJ4Lin4Lih4Lij4LiB4LiVCivguYHguIHguYnguKfguKfguLTguYDguIrguLXguKLguKMKK+C5geC4geC5ieC4p+C4quC4suC4o+C4nuC4seC4lOC4meC4tuC4gQor4LmB4LiB4LmJ4Lin4Liq4Li14LmE4Lih4LmJ4LmE4Lic4LmICivguYHguIHguYnguKfguKvguLTguJkKK+C5geC4geC5ieC4p+C4q+C4uQor4LmB4LiB4LmI4Lin4Lix4LiUCivguYHguIHguYrguKoKK+C5geC4geC5iuC4quC5hOC4guC5iOC5gOC4meC5iOC4sgor4LmB4LiB4LmK4Liq4LmA4LiJ4Li34LmI4Lit4LiiCivguYHguIHguYrguKrguJnguYnguLPguJXguLIKK+C5geC4geC5ieC4q+C4meC5ieC4sgor4LmB4LiB4LiwCivguYHguIHguLDguJTguLMKK+C5geC4geC4sOC4o+C4reC4ogor4LmB4LiB4Liw4Liq4Liw4LmA4LiB4LmH4LiUCivguYLguIHguYgKK+C5guC4geC5iQor4LmC4LiB4LmLCivguYLguIHguIEKK+C5guC4geC4geC5gOC4geC4gQor4LmC4LiB4LiB4LiZ4Li44LiXCivguYLguIHguIHguLTguKUtCivguYLguIHguIHguLTguKXguLIKK+C5guC4geC5guC4geC5iQor4LmC4LiB4LiHCivguYLguIHguYjguIcKK+C5guC4geC4h+C4geC4suC4hwor4LmC4LiB4LmJ4LiH4LmA4LiB4LmJ4LiHCivguYLguIHguIfguYLguIHguYkKK+C5guC4geC5ieC4h+C5guC4hOC5ieC4hwor4LmC4LiB4LmA4LiK4Liy4Lin4LmMCivguYLguIHguI3guIgtCivguYLguIHguI3guIjguJkKK+C5guC4geC4jeC4iOC4meC4suC4lwor4LmC4LiB4LiN4LiI4LiyCivguYLguIHguI/guLQKK+C5guC4geC4kAor4LmC4LiB4LiQ4LiB4Lij4Liw4LiU4Li54LiBCivguYLguIHguJDguIHguLDguIHguKXguLTguYnguIcKK+C5guC4geC4kOC4geC4seC4geC4geC4o+C4sgor4LmC4LiB4LiQ4LiB4LmJ4Liy4LiZ4Lie4Lij4LmJ4Liy4LinCivguYLguIHguJDguYDguILguKHguLIKK+C5guC4geC4kOC4iOC4uOC4rOC4suC4peC4seC4oeC4nuC4sgor4LmC4LiB4LiQ4LiI4Li44Lis4Liy4Lil4Liz4Lie4LiyCivguYLguIHguJDguIrguI7guLLguKHguLHguIfguKnguLUKK+C5guC4geC4kOC4iuC4juC4suC4oeC4seC4h+C4quC4tQor4LmC4LiB4LiQ4LmA4LiK4Li14Lii4LiHCivguYLguIHguJDguJnguYnguLPguYDguJXguYnguLIKK+C5guC4geC4kOC4nuC4uOC4h+C4m+C4peC4sgor4LmC4LiB4LiQ4Liq4LitCivguYLguIHguJDguKvguK3guKEKK+C5guC4geC4kOC4q+C4seC4p+C4muC4seC4pwor4LmC4LiB4LiQ4Liy4LiqCivguYLguIHguJMKK+C5guC4geC4k+C4gQor4LmC4LiB4LiU4Lix4LiHCivguYLguIHguJXguYTguJUKK+C5guC4geC4l+C4seC4k+C4keC5jAor4LmC4LiB4LiZCivguYLguIHguYjguJkKK+C5guC4geC5i+C4mQor4LmC4LiB4Lib4Li04LiZ4LizCivguYLguIHguKHguKUKK+C5guC4geC4oeC4uOC4lwor4LmC4LiB4LmA4Lih4LiZCivguYLguIHguYDguKHguKgKK+C5guC4geC4ogor4LmC4LiB4Lii4LiX4LmJ4Lit4LiHCivguYLguIHguKPguYkKK+C5guC4geC4o+C4gQor4LmC4LiB4Lij4LiB4LiB4Lij4Liy4LiBCivguYLguIHguKPguIHguYTguIHguKMKK+C5guC4geC4o+C4geC4mOC4suC4owor4LmC4LiB4Lij4LiB4Lir4Lin4Lix4LiUCivguYLguIHguKPguIcKK+C5guC4geC4o+C5iOC4hwor4LmC4LiB4Lij4LmI4LiH4LiB4Lij4LmI4Liy4LiHCivguYLguIHguKPguIfguYDguIHguKPguIcKK+C5guC4geC4o+C5i+C4h+C5gOC4geC4o+C5i+C4hwor4LmC4LiB4Lij4LiN4LiICivguYLguIHguKPguJQKK+C5guC4geC4o+C4leC5i+C4mQor4LmC4LiB4Lij4LiYCivguYLguIHguKPguJjguILguLbguYnguIcKK+C5guC4geC4o+C4mOC4sgor4LmC4LiB4Lij4LmL4LiZCivguYLguIHguKPguYvguJnguYDguIHguKPguYvguJkKK+C5guC4geC4o+C4oQor4LmC4LiB4Lij4Lih4LiY4Liy4LiV4Li4CivguYLguIHguKPguKIKK+C5guC4geC4o+C4qAor4LmC4LiB4LmC4Lij4LmC4LiB4LmA4LiVCivguYLguIHguYLguKPguYLguIHguYLguKPguIEKK+C5guC4geC5guC4o+C5guC4geC5guC4qgor4LmC4LiB4Lil4LiHCivguYLguIHguKXguJkKK+C5guC4geC4peC4suC4q+C4pQor4LmC4LiB4LmE4LilCivguYLguIHguKfguLTguJcKK+C5guC4geC4p+C4tOC4rOC4suC4owor4LmC4LiB4LioCivguYLguIHguKjguKUKK+C5guC4geC4qQor4LmC4LiB4Lip4LihCivguYLguIHguKnguKIKK+C5guC4geC4qeC4teC4ouC5jAor4LmC4LiB4LiqCivguYLguIHguKrguJkKK+C5guC4geC4quC4seC4igor4LmC4LiB4Liq4Li04LiZ4LiX4Lij4LmMCivguYLguIHguKrguLXguKLguYwKK+C5guC4geC4quC4uOC4oQor4LmC4LiB4LmE4Liq4LiiCivguYLguIHguKvguIEKK+C5guC4geC4q+C4p+C4sgor4LmD4LiB4Lil4LmJCivguYPguIHguKXguYnguYDguIHguKXguLfguK3guIHguLTguJnguJTguYjguLLguIcKK+C5hOC4gQor4LmE4LiB4LmICivguYTguIHguYkKK+C5hOC4geC5igor4LmE4LiB4LmLCivguYTguIHguYjguIHguK3guKEKK+C5hOC4geC5iOC5geC4geC5iOC5geC4oeC5iOC4m+C4peC4suC4iuC5iOC4reC4mQor4LmE4LiB4LmI4LmB4LiB4LmJ4LinCivguYTguIHguYjguYDguILguLXguYjguKIKK+C5hOC4geC5iOC4iuC4mQor4LmE4LiB4LmL4LmB4LiU4LiHCivguYTguIHguYjguYDguJXguLXguYnguKIKK+C5hOC4geC5iOC4meC4sgor4LmE4LiB4LmI4Lib4LmI4LiyCivguYTguIHguJ7guLHguKUKK+C5hOC4geC5iOC4n+C5ieC4sgor4LmE4LiB4LmI4Lif4LmJ4Liy4Lie4LiN4Liy4Lil4LitCivguYTguIHguKMKK+C5hOC4geC4o+C4ngor4LmE4LiB4Lij4Lil4Liy4LiqCivguYTguIHguKPguKjguKMKK+C5hOC4geC4o+C4qOC4o+C4tQor4LmE4LiB4Lij4Liq4LijCivguYTguIHguKPguKrguKPguLUKK+C5hOC4geC4o+C4quC4tOC4l+C4mOC4tAor4LmE4LiB4LmI4Lij4Lit4LiH4Lia4LmI4Lit4LiZCivguYTguIHguKUKK+C5hOC4geC4peC5iAor4LmE4LiB4Lil4LmI4LmA4LiB4Lil4Li14LmI4LiiCivguYTguIHguKXguJvguLfguJnguYDguJfguLXguYjguKLguIcKK+C5hOC4geC4peC4suC4qgor4LmE4LiB4LinCivguYTguIHguKfguLHguKUKK+C5hOC4geC5iOC4quC4suC4oeC4reC4ouC5iOC4suC4hwor4LmE4LiB4LmI4LmA4Lir4LmH4LiZ4LiV4Li14LiZ4LiH4Li5IOC4h+C4ueC5gOC4q+C5h+C4meC4meC4oeC5hOC4geC5iAor4LmE4LiB4LmI4LmC4Lir4LmICivguYTguIHguYjguYTguKvguYkKK+C5hOC4geC5iOC4reC5iOC4reC4mQor4LiCCivguILguIcKK+C4guC4h+C4iOC4t+C5iuC4rQor4LiC4LiI4LijCivguILguIjguKPguIjguJoKK+C4guC4iOC4reC4gQor4LiC4LiI4Lix4LiUCivguILguIjguLHguJTguILguIjguLLguKIKK+C4guC4iOC5iOC4suC4hwor4LiC4LiI4Liy4LiiCivguILguIjguLLguKcKK+C4guC4iOC4tOC4lQor4LiC4LiI4Li04Lij4Li04LiUCivguILguIjguLUKK+C4guC4iOC4uOC4ogor4LiC4LmA4LiI4LiyCivguILguJPguLAKK+C4guC4lAor4LiC4LiU4LiW4Lin4Liy4LiiCivguILguJTguLLguJkKK+C4guC4leC4reC4ogor4LiC4LiX4Li04LiHCivguILguJfguLbguIcKK+C4guC4mQor4LiC4LmJ4LiZCivguILguYnguJnguYHguITguYnguJkKK+C4guC4meC4hwor4LiC4LiZ4LiH4LmA4LiZ4Li34LmJ4LitCivguILguJnguJQKK+C4guC4meC4l+C4o+C4suC4ouC5gOC4guC5ieC4suC4p+C4seC4lAor4LiC4LiZ4LiZCivguILguJnguJoKK+C4guC4meC4muC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiC4LiZ4Lia4Lib4Lij4Liw4LmA4Lie4LiT4Li1CivguILguJnguJ7guK3guIcKK+C4guC4meC5gOC4nuC4iuC4owor4LiC4LiZ4LihCivguILguJnguKHguITguKPguIEKK+C4guC4meC4oeC4iOC4teC4mQor4LiC4LiZ4Lih4LiX4Lij4Liy4LiiCivguILguJnguKHguJzguKrguKHguJnguYnguLPguKLguLIKK+C4guC4meC4oeC4nOC4seC4geC4geC4suC4lAor4LiC4LiZ4Lih4LmA4Liq4LmJ4LiZCivguILguJnguKHguKvguLHguKfguJzguLHguIHguIHguLLguJQKK+C4guC4meC5geC4oeC4pwor4LiC4LiZ4Lil4Li44LiBCivguILguJnguKXguLjguIHguILguJnguJ7guK3guIcKK+C4guC4meC4quC5iOC4hwor4LiC4LiZ4Liq4Lix4LiV4Lin4LmMCivguILguJnguKvguJnguYnguLLguYHguILguYnguIfguYTguKHguYjguKPguYjguKfguIcKK+C4guC4meC4q+C4meC4uQor4LiC4LiZ4Lir4Lii4Lit4LiHCivguILguJnguK3guIcKK+C4guC4meC4reC4mQor4LiC4LiZ4Lit4LiaCivguILguJnguK3guLjguKIKK+C4guC4meC4seC4lAor4LiC4LiZ4Lix4LiZCivguILguJnguLLguIEKK+C4guC4meC4suC4hwor4LiC4LiZ4Liy4LiUCivguILguJnguLLguJkKK+C4guC4meC4suC4meC4meC5ieC4swor4LiC4LiZ4Liy4LiZ4Lil4Li14LmICivguILguJnguLLguJoKK+C4guC4meC4suC4ogor4LiC4LiZ4LizCivguILguJnguLTguKnguJAKK+C4guC4meC4tOC4qeC4kOC4sgor4LiC4LiZ4Li44LiZCivguILguJnguLjguJnguJnguIEKK+C4guC4meC4uOC4meC4m+C5iOC4sgor4LiC4LiZ4Li44LiZ4Liq4Liz4Lib4Liw4Lil4LitCivguILguJoKK+C4guC4muC4guC4seC4mQor4LiC4Lia4LmA4LiC4Li14LmJ4Lii4Lin4LmA4LiE4Li14LmJ4Lii4Lin4Lif4Lix4LiZCivguILguJrguITguLTguJQKK+C4guC4muC4ieC4seC4mQor4LiC4Lia4LiWCivguILguJrguJvguLHguI3guKvguLIKK+C4guC4muC5gOC4nOC4suC4sAor4LiC4Lia4LmE4Lih4LmI4LmB4LiV4LiBCivguILguJrguKfguJkKK+C4guC4muC4p+C4meC4geC4suC4owor4LiC4Lia4Lin4LijCivguILguJrguLnguKMKK+C4guC4oQor4LiC4LmI4LihCivguILguYjguKHguILguKfguLHguI0KK+C4guC5iOC4oeC4guC4teC5iAor4LiC4Lih4LiC4Li34LmI4LiZCivguILguYjguKHguILguLfguJkKK+C4guC5iOC4oeC4guC4t+C4meC4geC4o+C4sOC4l+C4s+C4iuC4s+C5gOC4o+C4sgor4LiC4LmI4Lih4LiC4Li34LiZ4LmD4LiICivguILguYjguKHguILguLnguYgKK+C4guC5iOC4oeC5gOC4guC4suC5guC4hOC4guC4t+C4meC5g+C4q+C5ieC4geC4tOC4meC4q+C4jeC5ieC4sgor4LiC4Lih4LiH4LmC4LiB4Lij4LiiCivguILguYjguKHguJfguYnguK3guIcKK+C4guC5iOC4oeC4meC4suC4oQor4LiC4Lih4LmA4Lib4LmH4LiZ4Lii4LiyCivguILguKHguKEKK+C4guC4oeC4p+C4lAor4LiC4Lih4Lin4LiU4Lii4LiyCivguILguKHguKfguJkKK+C4guC5iOC4oeC4q+C4oeC4uQor4LiC4Lih4Lir4Li04LiZCivguILguYjguKHguYDguKvguIcKK+C4guC5iOC4oeC5gOC4q+C4h+C4hOC4sOC5gOC4meC4h+C4o+C5ieC4suC4ogor4LiC4Lih4Lit4LiHCivguILguKHguYjguK3guKEKK+C4guC4oeC5iOC4reC4oeC4muC4suC4hwor4LiC4Lih4Lit4LiiCivguILguKHguLHguIcKK+C4guC4oeC4seC4mgor4LiC4Lih4LiyCivguILguKHguYnguLMKK+C4guC4oeC4tOC5ieC4mQor4LiC4Lih4Li04LmJ4LiZ4LiB4Lix4Lia4Lib4Li54LiZCivguILguKHguLTguYnguJnguILguLLguKcKK+C4guC4oeC4tOC5ieC4meC4guC4tuC5ieC4mQor4LiC4Lih4Li04LmJ4LiZ4LmA4LiE4Lij4Li34LitCivguILguKHguLTguYnguJnguIrguLHguJkKK+C4guC4oeC4tOC5ieC4meC4meC4suC4hwor4LiC4Lih4Li04LmJ4LiZ4Lil4Li04LiHCivguILguKHguLTguYnguJnguKvguLHguKfguILguLbguYnguJkKK+C4guC4oeC4tOC5ieC4meC4reC5ieC4reC4ogor4LiC4Lih4Li04LiaCivguILguKHguLXguILguKHguLHguJkKK+C4guC4oeC4tuC4hwor4LiC4Lih4Li24LiH4LiX4Li24LiHCivguILguKHguLgKK+C4guC4oeC4uOC4geC4guC4oeC4seC4pwor4LiC4Lih4Li44LiU4LiC4Lih4Li04LiUCivguILguKHguLjguJoKK+C4guC4oeC4uOC4muC4guC4oeC4tOC4mgor4LiC4Lih4Li44LihCivguILguYLguKHguKIKK+C4guC4oi0KK+C4guC4ouC4lAor4LiC4Lii4LihCivguILguKLguYjguKEKK+C4guC4ouC4pQor4LiC4Lii4Lit4LiBCivguILguKLguK3guIcKK+C4guC4ouC5iOC4reC4mQor4LiC4Lii4LmJ4Lit4LiZCivguILguKLguLAKK+C4guC4ouC4sOC5geC4guC4ouC4hwor4LiC4Lii4Lix4LiBCivguILguKLguLHguIHguILguKLguYjguK3guJkKK+C4guC4ouC4seC4geC4guC4ouC5ieC4reC4mQor4LiC4Lii4Lix4LiZCivguILguKLguLHguYnguJkKK+C4guC4ouC4seC4mgor4LiC4Lii4Lix4Lia4LiC4Lii4Liy4LiiCivguILguKLguLHguJrguYDguILguKLguLfguYnguK3guJkKK+C4guC4ouC4suC4lAor4LiC4Lii4Liy4LiaCivguILguKLguLLguKIKK+C4guC4ouC4suC4ouC4guC4teC5ieC5gOC4l+C5iOC4rQor4LiC4Lii4LizCivguILguKLguYnguLMKK+C4guC4ouC4tOC4gQor4LiC4Lii4Li04LiaCivguILguKLguLTguYjguKEKK+C4guC4ouC4teC5iQor4LiC4Lii4Li14LmI4LiC4Lii4Lix4LiZCivguILguKLguLjguIHguILguKLguLTguIEKK+C4guC4ouC4uOC4geC4guC4ouC4uOC4ogor4LiC4Lii4Li44LiaCivguILguKLguLjguJrguILguKLguLTguJoKK+C4guC4ouC4uOC4oQor4LiC4Lii4Li44LmJ4LihCivguILguKLguLjguYnguKHguJXguLXguJnguKvguKHguLIKK+C4guC4ouC4uOC4ogor4LiC4Lij4LihCivguILguKPguKPguIQtCivguILguKPguKPguITguYwKK+C4guC4o+C4seC4pwor4LiC4Lij4Lix4Lin4Lii4Liy4LiiCivguILguKPguLTguJoKK+C4guC4o+C4tQor4LiC4Lij4Li24LihCivguILguKPguLjguILguKPguLAKK+C4guC4peC5ieC4hwor4LiC4Lil4LiaCivguILguKXguKEKK+C4guC4peC4p+C4mQor4LiC4Lil4LmJ4Lit4LmA4LiH4Liy4LiwCivguILguKXguYnguK3guYDguJfguLXguKLguJkKK+C4guC4peC4seC4hwor4LiC4Lil4Lix4LiaCivguILguKXguLIKK+C4guC4peC4suC4lAor4LiC4Lil4Liy4LiiCivguILguKXguLTguJoKK+C4guC4peC4tuC4hwor4LiC4Lil4Li44LiBCivguILguKXguLjguIHguILguKXguLHguIEKK+C4guC4peC4uOC4geC4guC4peC4tOC4gQor4LiC4Lil4Li44LiB4LiC4Lil4Li44LmI4LiiCivguILguKXguLjguJoKK+C4guC4peC4uOC4oQor4LiC4Lil4Li44Lih4Lib4Lij4Liw4LmA4LiI4Li14Lii4LiUCivguILguKXguLjguYjguKIKK+C4guC4peC4uQor4LiC4Lil4Li54LmICivguILguKfguIcKK+C4guC5iOC4p+C4hwor4LiC4Lin4LiUCivguILguKfguJTguJXguLXguJnguIrguYnguLLguIcKK+C4guC4p+C4lOC5guC4q+C4pQor4LiC4Lin4LiZCivguILguYjguKfguJkKK+C4guC4p+C4meC4guC4p+C4suC4ogor4LiC4Lin4LiaCivguILguKfguKIKK+C4guC4p+C4ouC5gOC4guC4tOC4mQor4LiC4Lin4Lii4LmD4LiICivguILguKfguLDguYTguILguKfguYjguYDguILguKfguLXguYjguKIKK+C4guC4p+C4seC4geC5hOC4guC4p+C5iAor4LiC4Lin4Lix4LiNCivguILguKfguLHguI3guYDguIHguLXguYjguKLguIcKK+C4guC4p+C4seC4jeC4guC5ieC4suC4pwor4LiC4Lin4Lix4LiN4LmB4LiC4Lin4LiZCivguILguKfguLHguI3guYPguIgKK+C4guC4p+C4seC4jeC4lOC4tQor4LiC4Lin4Lix4LiN4LiV4LiyCivguILguKfguLHguI3guJrguYjguLIKK+C4guC4p+C4seC4jeC4muC4tOC4mQor4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHCivguILguKfguLHguI3guKvguJnguLUKK+C4guC4p+C4seC4jeC4q+C4meC4teC4lOC4teC4neC5iOC4rQor4LiC4Lin4Lix4LiN4Lir4Liy4LiiCivguILguKfguLHguI3guK3guYjguK3guJkKK+C4guC4p+C4seC4lAor4LiC4Lin4Lix4LiU4LiC4Lin4Li04LiUCivguILguKfguLHguJTguYHguITguKfguYnguIcKK+C4guC4p+C4seC5ieC4mQor4LiC4Lin4Lix4LiaCivguILguKfguLHguJrguYDguILguKfguLXguKLguKcKK+C4guC4p+C4sgor4LiC4Lin4Liy4LiBCivguILguKfguLLguIHguKvguJnguLLguKEKK+C4guC4p+C4suC4hwor4LiC4Lin4LmJ4Liy4LiHCivguILguKfguYnguLLguIfguIHguLIKK+C4guC4p+C5ieC4suC4h+C4guC5ieC4suC4p+C5gOC4oeC5iOC4sgor4LiC4Lin4LmJ4Liy4LiH4LiE4LmJ4Lit4LiZCivguILguKfguYnguLLguIfguIfguLnguYTguKHguYjguJ7guYnguJnguITguK0KK+C4guC4p+C5ieC4suC4h+C4iOC4seC4geC4owor4LiC4Lin4Liy4LiH4LmA4LiK4Li04LiHCivguILguKfguLLguIfguYYg4Lij4Li14LmGCivguILguKfguLLguIfguYLguKXguIEKK+C4guC4p+C4suC4lAor4LiC4Lin4Liy4LiZCivguILguKfguLLguJnguJzguYjguLLguIvguLLguIEKK+C4guC4p+C4suC4meC4n+C5ieC4sgor4LiC4Lin4Liy4Lii4LiC4Lin4LiZCivguILguKfguLLguKcKK+C4guC4p+C5ieC4suC4pwor4LiC4Lin4Li04LiUCivguILguKnguJPguLAKK+C4guC4qeC4seC4ogor4LiC4Lip4Li14LiT4Liy4Lio4Lij4LieCivguILguKnguLXguKMKK+C4guC4rQor4LiC4LmI4LitCivguILguYnguK0KK+C4guC4reC4gQor4LiC4LmJ4Lit4LiB4LiO4Lir4Lih4Liy4LiiCivguILguYnguK3guIHguJXguLTguIHguLIKK+C4guC5ieC4reC4geC4s+C4q+C4meC4lAor4LiC4Lit4LmB4LiB4LinCivguILguYnguK3guYDguILguLXguKLguJkKK+C4guC5ieC4reC5hOC4ggor4LiC4LmJ4Lit4LiE4Lin4Liy4LihCivguILguYnguK3guITguLHguJTguKLguYjguK0KK+C4guC4reC4hOC4s+C4meC5ieC4reC4ogor4LiC4LmJ4Lit4LiE4Li04LiUCivguILguYnguK3guITguLTguJTguYDguKvguYfguJkKK+C4guC4reC4hwor4LiC4LmJ4Lit4LiHCivguILguK3guIfguIHguKXguLLguIcKK+C4guC4reC4h+C4geC4reC4hwor4LiC4Lit4LiH4LiB4Liz4LiZ4Lix4LilCivguILguK3guIfguIHguLTguJkKK+C4guC4reC4h+C5gOC4geC5iOC4sgor4LiC4Lit4LiH4LiC4Lia4LmA4LiE4Li14LmJ4Lii4LinCivguILguK3guIfguILguKXguLHguIcKK+C4guC4reC4h+C4guC4p+C4seC4jQor4LiC4LmJ4Lit4LiH4LiC4Lix4LiUCivguILguK3guIfguYHguILguYfguIcKK+C4guC4reC4h+C4hOC5ieC4suC4hwor4LiC4Lit4LiH4LiE4Liy4LinCivguILguK3guIfguYDguITguYfguKEKK+C4guC4reC4h+C5gOC4hOC4teC4ouC4hwor4LiC4Lit4LiH4LmC4LiI4LijCivguILguYnguK3guIfguYPguIgKK+C4guC4reC4h+C4iuC4swor4LiC4Lit4LiH4LmD4LiK4LmJCivguILguK3guIfguJTguLUKK+C4guC4reC4h+C5gOC4luC4t+C5iOC4reC4mQor4LiC4Lit4LiH4LiZ4Lit4LiBCivguILguK3guIfguKPguYnguK3guJkKK+C4guC4reC4h+C4peC4seC4mgor4LiC4Lit4LiH4LmA4Lil4LmI4LiZCivguILguK3guIfguYDguKXguLfguYjguK3guJkKK+C4guC4reC4h+C5gOC4peC4t+C5iOC4reC4meC5gOC4leC4t+C4reC4meC4guC4seC4meC4q+C4oeC4suC4gQor4LiC4Lit4LiH4Lin4Lix4LiUCivguILguK3guIfguKfguYjguLLguIcKK+C4guC5ieC4reC4h+C5geC4p+C4sAor4LiC4Lit4LiH4Liq4LiH4LiG4LmMCivguILguK3guIfguKrguIfguKfguJkKK+C4guC4reC4h+C4quC4lAor4LiC4Lit4LiH4Liq4LiU4LiC4Lit4LiH4LiE4Liy4LinCivguILguK3guIfguKrguJTguITguLLguKcKK+C4guC4reC4h+C4q+C4peC4p+C4hwor4LiC4Lit4LiH4Lir4Lin4Liy4LiZCivguILguK3guIfguKvguLLguKLguJXguLDguJ7guLLguKLguJrguLLguJsKK+C4guC4reC4h+C5gOC4q+C4peC4pwor4LiC4Lit4LiH4LmB4Lir4LmJ4LiHCivguILguK3guIfguYTguKvguKUKK+C4guC4reC4h+C5hOC4q+C4p+C5iQor4LiC4Lit4LiH4LmJ4LitCivguILguK3guIfguYnguLLguKcKK+C4guC4reC4ieC4suC4ogor4LiC4Lit4LiK4LmJ4Liy4LiHCivguILguK3guJQKK+C4guC4reC4lOC4hOC5iOC4reC4mQor4LiC4Lit4LmA4LiU4LiK4LiwCivguILguK3guJXguLHguKcKK+C4guC4reC4l+C4reC4hwor4LiC4Lit4LiX4Liy4LiZCivguILguK3guJfguLUKK+C4guC5ieC4reC5gOC4l+C5h+C4iOC4iOC4o+C4tOC4hwor4LiC4Lit4LmC4LiX4LipCivguILguK3guJkKK+C4guC5iOC4reC4mQor4LiC4LmJ4Lit4LiZCivguILguK3guJnguJTguK3guIEKK+C4guC4reC4meC4quC4seC4gQor4LiC4Lit4LiZ4Li04Liq4Lix4LiiCivguILguK3guJoKK+C4guC4reC4muC4guC5iOC4suC4ogor4LiC4Lit4Lia4LmA4LiC4LiVCivguILguK3guJrguITguLjguJMKK+C4guC4reC4muC5g+C4iAor4LiC4Lit4Lia4LiX4Liy4LiHCivguILguK3guJrguJ7guKPguLDguITguLjguJMKK+C4guC4reC4muC5hOC4owor4LiC4Lit4Lia4LmA4Lir4Lil4LmH4LiBCivguILguYnguK3guJrguLHguIfguITguLHguJoKK+C4guC5ieC4reC4muC4seC4jeC4jeC4seC4leC4tAor4LiC4Lit4Lib4Lij4Liw4LiX4Liy4LiZCivguILguK3guJvguKPguLDguJfguLLguJnguYLguJfguKkKK+C4guC5ieC4reC4m+C4peC4teC4geC4ouC5iOC4reC4ogor4LiC4Lit4LmE4Lib4LiX4Li1CivguILguK3guYDguJ3guYnguLIKK+C4guC4reC4nuC4o+C4sOC4o+C4suC4iuC4l+C4suC4mQor4LiC4LmJ4Lit4Lie4Lix4LiaCivguILguK3guKEKK+C4guC5ieC4reC4oeC4t+C4reC4guC4suC4pwor4LiC4LmJ4Lit4Lih4Li54LilCivguILguYnguK3guYHguKHguYkKK+C4guC5iOC4reC4ogor4LiC4LmJ4Lit4LiiCivguILguYjguK3guKLguJnguYnguLMKK+C4guC5iOC4reC4ouC4q+C4meC4suC4oQor4LiC4LmI4Lit4Lii4Lir4Lii4Lit4LiHCivguILguK3guKLguLfguKEKK+C4guC4reC4o+C5ieC4reC4hwor4LiC4Lit4Lij4Lix4LiaCivguILguK3guKPguLHguJrguIHguKPguLDguJzguKEKK+C4guC4reC4o+C4seC4muC4nOC4oQor4LiC4LmJ4Lit4Lij4Liy4LiK4LiB4Liy4LijCivguILguK3guYHguKPguIcKK+C4guC5ieC4reC4qOC4reC4gQor4LiC4LmJ4Lit4Liq4Lit4LiaCivguILguK3guKrguLHguJoKK+C4guC5ieC4reC5gOC4quC4t+C4rQor4LiC4LmJ4Lit4Lir4LiyCivguILguYnguK3guYPguKvguI3guYjguYPguIjguITguKfguLLguKEKK+C4guC4reC4reC4oOC4seC4ogor4LiC4LmJ4Lit4Lit4LmJ4Lit4LiiCivguILguYnguK3guK3guYnguLLguIcKK+C4guC4sOC4guC5iOC4swor4LiC4Liw4LmB4LiC4LmI4LiZCivguILguLDguYHguILguYnguJkKK+C4guC4sOC5geC4iOC4sAor4LiC4Liw4LmB4LiW4LiBCivguILguLDguJnguLLguJkKK+C4guC4sOC5gOC4meC5h+C4lAor4LiC4Liw4Lih4Lit4Lih4LiC4Liw4LmB4Lih4LihCivguILguLDguKHguLHguIHguYDguILguKHguYnguJkKK+C4guC4sOC4oeC4uOC4geC4guC4sOC4oeC4reC4oQor4LiC4Liw4LmB4Lih4LiL4LitCivguILguLDguYHguKHguJjguKEKK+C4guC4sOC4ouC4tOC4gQor4LiC4Liw4Lii4Li44LiBCivguILguLDguYDguKLguYnguK3guYHguILguKLguYjguIcKK+C4guC4sOC5geC4ouC4sAor4LiC4Lix4LiECivguILguLHguIcKK+C4guC4seC4h+C4guC5ieC4rQor4LiC4Lix4LiH4LiC4Lit4LiBCivguILguLHguIfguJvguKXguYnguK3guIcKK+C4guC4seC4h+C4q+C4meC5iOC4p+C4ogor4LiC4Lix4LiKCivguILguLHguIrguIEKK+C4guC4seC4k+C4kS0KK+C4guC4seC4k+C4keC4quC4geC4owor4LiC4Lix4LiT4LiR4Liq4Li14Lih4LiyCivguILguLHguJQKK+C4guC4seC4lOC5gOC4geC4peC4sgor4LiC4Lix4LiU4LiC4Lin4Liy4LiHCivguILguLHguJTguILguYnguK3guIcKK+C4guC4seC4lOC4guC4t+C4mQor4LiC4Lix4LiU4LmA4LiC4Lih4LijCivguILguLHguJTguYDguILguLTguJkKK+C4guC4seC4lOC5geC4guC5h+C4hwor4LiC4Lix4LiU4LiE4LitCivguILguLHguJTguYDguITguLfguK3guIcKK+C4guC4seC4lOC5geC4hOC5ieC4mQor4LiC4Lix4LiU4LiI4Lix4LiH4Lir4Lin4LiwCivguILguLHguJTguYPguIgKK+C4guC4seC4lOC4lOC4reC4gQor4LiC4Lix4LiU4LiV4LiyCivguILguLHguJTguJXguLLguJfguLHguJ4KK+C4guC4seC4lOC4leC4s+C4meC4suC4mQor4LiC4Lix4LiU4LmB4LiV4LiwCivguILguLHguJTguJrguJcKK+C4guC4seC4lOC5gOC4muC4sgor4LiC4Lix4LiU4Lih4Lit4LiZCivguILguLHguJTguKHguK3guJnguJXguLHguKfguJzguLnguYkKK+C4guC4seC4lOC4oeC4reC4meC4q+C4peC4p+C4hwor4LiC4Lix4LiU4Lii4Lit4LiBCivguILguLHguJTguYHguKLguYnguIcKK+C4guC4seC4lOC4peC4suC4oAor4LiC4Lix4LiU4Liq4LiZCivguILguLHguJTguKrguKHguLLguJjguLQKK+C4guC4seC4lOC4q+C4meC4seC4gQor4LiC4Lix4LiU4Lir4LmJ4Liy4LiHCivguILguLHguJTguKvguLkKK+C4guC4seC4leC4leC4tOC4oi0KK+C4guC4seC4leC4leC4tOC4ouC4oeC4suC4meC4sAor4LiC4Lix4LiZCivguILguLHguYnguJkKK+C4guC4seC4meC4geC4p+C5ieC4suC4mQor4LiC4Lix4LiZ4LmB4LiC4LmH4LiHCivguILguLHguJnguIrguLDguYDguJnguLLguLAKK+C4guC4seC4meC5gOC4iuC4tOC4hwor4LiC4Lix4LiZ4LiV4LmI4LitCivguILguLHguJnguJXguLQKK+C4guC4seC4meC4leC4tQor4LiC4Lix4LiZ4LmC4LiV4LiBCivguILguLHguJnguJfguK3guIfguJ7guKLguLLguJrguLLguJcKK+C4guC4seC4meC4l+C4tQor4LiC4Lix4LiZ4LiY4LmMCivguILguLHguJnguJjguLLguKfguLLguKMKK+C4guC4seC4meC4meC5ieC4s+C4nuC4suC4meC4o+C4reC4hwor4LiC4Lix4LiZ4Lil4LiH4Lir4Li04LiZCivguILguLHguJnguKrguKHguK0KK+C4guC4seC4meC4quC4suC4hOC4owor4LiC4Lix4LiZ4Liq4Li54LmJCivguILguLHguJnguKvguKHguLLguIEKK+C4guC4seC4meC5gOC4q+C4oQor4LiC4Lix4LiZ4Lit4Liy4Liq4LiyCivguILguLHguJoKK+C4guC4seC4muC4guC4seC4mQor4LiC4Lix4Lia4LiC4Li14LmICivguILguLHguJrguYDguITguKXguLfguYjguK3guJkKK+C4guC4seC4muC5gOC4hOC4teC5iOC4ouC4pwor4LiC4Lix4Lia4LiL4LitCivguILguLHguJrguJbguYjguLLguKIKK+C4guC4seC4muC4nuC4pQor4LiC4Lix4Lia4LmE4Lih4LmJCivguILguLHguJrguYTguKHguYnguJrguLHguJPguYDguJHguLLguLDguKfguYwKK+C4guC4seC4muC4o+C5ieC4reC4hwor4LiC4Lix4LiiCivguILguLHguKcKK+C4guC4seC5ieC4pwor4LiC4Lix4LmJ4Lin4LiB4Lij4Liw4LiI4LiBCivguILguLHguYnguKfguJrguKfguIEKK+C4guC4seC5ieC4p+C5geC4oeC5iOC5gOC4q+C4peC5h+C4gQor4LiC4Lix4LmJ4Lin4LmB4Lih4LmI4LmA4Lir4Lil4LmH4LiB4LmC4Lil4LiBCivguILguLHguYnguKfguKXguJoKK+C4guC4seC5ieC4p+C5guC4peC4gQor4LiC4LiyCivguILguYjguLIKK+C4guC5ieC4sgor4LiC4Liy4LiBCivguILguLLguIHguJoKK+C4guC4suC4geC4o+C4o+C5hOC4leC4owor4LiC4Liy4LiB4LmK4Lin4LiiCivguILguLLguIHguK3guKEKK+C4guC4suC5gOC4geC4p+C4teC4ouC4mQor4LiC4LmJ4Liy4LmA4LiB4LmI4Liy4LmA4LiV4LmI4Liy4LmA4Lil4Li14LmJ4Lii4LiHCivguILguLLguYTguIHguYgKK+C4guC4suC5gOC4guC4teC4ouC4lAor4LiC4Liy4LiHCivguILguYjguLLguIcKK+C4guC5ieC4suC4hwor4LiC4LmJ4Liy4LiH4LmGCivguILguYnguLLguIfguIHguJoKK+C4guC5ieC4suC4h+C4geC4o+C4sOC4lOC4suC4mQor4LiC4LmJ4Liy4LiH4LiC4Li24LmJ4LiZCivguILguYnguLLguIfguITguKfguLLguKIKK+C4guC5ieC4suC4h+C5hiDguITguLnguYYKK+C4guC5ieC4suC4h+C5gOC4h+C4tOC4mQor4LiC4LmJ4Liy4LiH4LiI4Lix4LiZCivguILguLLguIfguJTguLHguIcKK+C4guC4suC4h+C5geC4lOC4hwor4LiC4LmJ4Liy4LiH4LiV4LiBCivguILguYnguLLguIfguJXguLDguYDguKDguLIKK+C4guC5ieC4suC4h+C4leC4teC4mQor4LiC4LmJ4Liy4LiH4LmB4Lij4LihCivguILguYnguLLguIfguKXguLLguKIKK+C4guC5ieC4suC4h+C4q+C4seC4p+C4meC4reC4mQor4LiC4LmJ4Liy4LiH4Lit4Lit4LiBCivguILguLLguIjguKMKK+C4guC5ieC4suC5gOC4iOC5ieC4sgor4LiC4Liy4LiT4Li4CivguILguLLguJQKK+C4guC4suC4lOC4geC4seC4mQor4LiC4Liy4LiU4LiE4Lij4Liy4LinCivguILguLLguJTguITguK3guIrguYnguLLguIcKK+C4guC4suC4lOC4hOC5iOC4sgor4LiC4Liy4LiU4LiE4LizCivguILguLLguJTguYHguITguKXguJkKK+C4guC4suC4lOC5g+C4iAor4LiC4Liy4LiU4LiV4LiB4Lia4LiB4Lie4Lij4LmI4Lit4LiHCivguILguLLguJTguJXguKXguLLguJQKK+C4guC4suC4lOC4leC4reC4mQor4LiC4Liy4LiU4LiV4Lix4LinCivguILguLLguJTguJfguLjguJkKK+C4guC4suC4lOC4m+C4suC4gQor4LiC4Liy4LiU4Lih4Li34LitCivguILguLLguJTguYDguKHguYfguJQKK+C4guC4suC4lOC4peC4reC4ogor4LiC4Liy4LiU4Lir4Lix4Lin4LiK4LmJ4Liy4LiHCivguILguLLguJTguYDguKvguKXguLfguK0KK+C4guC4suC4lOC4reC4suC4ouC4uAor4LiC4LmI4Liy4LmB4LiU4LiHCivguILguYjguLLguJXguYnguJkKK+C4guC4suC4l+C4meC4teC4ouC4sAor4LiC4Liy4LiX4Lij4Liy4LiiCivguILguYnguLLguYTguJcKK+C4guC4suC4mQor4LiC4Liy4LiZ4LiB4Lii4Liy4LiHCivguILguLLguJnguYTguIIKK+C4guC4suC4meC4meC4suC4hAor4LiC4Liy4LiZ4Lij4Lir4Lix4LiqCivguILguYnguLLguJnguK3guIHguYDguIjguYnguLIg4LiC4LmJ4Liy4Lin4LiZ4Lit4LiB4Lir4Lih4LmJ4LitCivguILguYnguLLguJnguYnguK3guKIKK+C4guC4suC4meC4suC4hwor4LiC4Liy4LiaCivguILguLLguJvguKPguLDguIjguLMKK+C4guC5ieC4suC5geC4nOC5iOC4meC4lOC4tOC4mQor4LiC4LmJ4Liy4LmA4Lid4LmJ4LiyCivguILguYnguLLguJ7guYDguIjguYnguLIKK+C4guC5ieC4suC4nuC4o+C4sAor4LiC4LmJ4Liy4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4LiyCivguILguLLguJ7guLHguJoKK+C4guC4suC4oQor4LiC4LmI4Liy4LihCivguILguYnguLLguKEKK+C4guC5ieC4suC4oeC5hgor4LiC4LmJ4Liy4Lih4LiZ4LmJ4Liz4LiC4LmJ4Liy4Lih4LiX4Liw4LmA4LilCivguILguYnguLLguKHguJnguYnguLPguILguYnguLLguKHguJfguYjguLIKK+C4guC5ieC4suC4oeC4quC4oeC4uOC4l+C4owor4LiC4LmJ4Liy4Lih4Lir4LiZ4LmJ4LiyCivguILguYnguLLguKHguKvguJnguYnguLLguILguYnguLLguKHguJXguLIKK+C4guC5ieC4suC4oeC4q+C4seC4pwor4LiC4Liy4Lih4LmJ4LiyCivguILguLLguKIKK+C4guC5iOC4suC4ogor4LiC4Liy4Lii4LiC4Liy4LiUCivguILguYjguLLguKLguIfguLLguJkKK+C4guC4suC4ouC4iuC4suC4leC4tAor4LiC4Liy4Lii4LiK4Li34LmI4LitCivguILguLLguKLguJXguLHguKcKK+C4guC4suC4ouC4leC4suC4oeC4hOC4s+C4nuC4o+C4o+C4k+C4meC4sgor4LiC4Liy4Lii4LiV4Liy4Lih4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiHCivguILguLLguKLguJfguK3guJTguJXguKXguLLguJQKK+C4guC4suC4ouC4muC5ieC4suC4meC4guC4suC4ouC5gOC4oeC4t+C4reC4hwor4LiC4Liy4Lii4Lib4Lil4Li14LiBCivguILguLLguKLguJzguYnguLLguYDguK3guLLguKvguJnguYnguLLguKPguK3guJQKK+C4guC4suC4ouC5gOC4nOC4t+C5iOC4reC4iuC4reC4mgor4LiC4Liy4Lii4Lid4Liy4LiBCivguILguLLguKLguKrguYjguIcKK+C4guC4suC4ouC4q+C4meC5ieC4sgor4LiC4Liy4Lii4Lir4LiZ4LmJ4Liy4LiC4Liy4Lii4LiV4LiyCivguILguLLguKLguKvguJnguYnguLLguKfguLHguJnguKXguLDguKvguYnguLLguYDguJrguLXguYnguKIKK+C4guC4suC4ouC4q+C4uQor4LiC4Liy4Lii4LmA4Lir4Lih4LiyCivguILguYnguLLguKPguLLguIrguIHguLLguKMKK+C4guC4suC4pQor4LiC4Liy4LinCivguILguYjguLLguKcKK+C4guC5ieC4suC4pwor4LiC4LmI4Liy4Lin4LiB4Lij4Lit4LiHCivguILguYnguLLguKfguIHguKPguLkKK+C4guC5ieC4suC4p+C4geC4peC5ieC4reC4hwor4LiC4LmJ4Liy4Lin4LiB4Lil4LmJ4LiyCivguILguYnguLLguKfguYDguIHguKPguLXguKLguJoKK+C4guC5ieC4suC4p+C5gOC4geC4o+C4teC4ouC4muC4m+C4suC4geC4q+C4oeC5ieC4rQor4LiC4LmJ4Liy4Lin4LmA4LiB4Lij4Li14Lii4Lia4Lit4LmI4Lit4LiZCivguILguYnguLLguKfguYDguIHguYjguLIKK+C4guC5ieC4suC4p+C5geC4geC4hwor4LiC4LmJ4Liy4Lin4LmC4LiB4LiaCivguILguYnguLLguKfguILguKfguLHguI0KK+C4guC5ieC4suC4p+C4guC4reC4hwor4LiC4LmJ4Liy4Lin4LiC4LmJ4LiyCivguILguYnguLLguKfguYHguILguIEKK+C4guC5iOC4suC4p+C4hOC4o+C4suC4pwor4LiC4LmJ4Liy4Lin4LiE4Lin4LiaCivguILguYnguLLguKfguITguLMKK+C4guC5ieC4suC4p+C5geC4hOC4mgor4LiC4LmJ4Liy4Lin4LiH4Lix4LiZCivguILguYnguLLguKfguIjguLXguYgKK+C4guC4suC4p+C4iOC4teC4mgor4LiC4LmJ4Liy4Lin4LmA4LiI4LmJ4LiyCivguILguYnguLLguKfguYHguIjguIEKK+C4guC5ieC4suC4p+C5geC4iuC5iAor4LiC4LmJ4Liy4Lin4LiL4LmJ4Lit4LihCivguILguYnguLLguKfguIvguK3guKIKK+C4guC5ieC4suC4p+C5geC4lOC4geC4h+C4sgor4LiC4LmJ4Liy4Lin4LmB4LiU4LiH4LmB4LiB4LiH4Lij4LmJ4Lit4LiZCivguILguYnguLLguKfguJXguYnguKEKK+C4guC5ieC4suC4p+C4leC5ieC4oeC4meC5ieC4s+C4p+C4uOC5ieC4mQor4LiC4LmJ4Liy4Lin4LiV4LmJ4Lih4Lib4Lix4LiUCivguILguYnguLLguKfguJXguK3guIEKK+C4guC5ieC4suC4p+C4leC4reC4geC4leC4seC5ieC4hwor4LiC4LmJ4Liy4Lin4LiV4Lit4LiB4LmB4LiV4LiBCivguILguYnguLLguKfguJXguLHguIcKK+C4guC5ieC4suC4p+C4leC4suC4gQor4LiC4LmJ4Liy4Lin4LiV4Li5CivguILguYnguLLguKfguYHguJXguIEKK+C4guC5ieC4suC4p+C5geC4leC4mQor4LiC4LmJ4Liy4Lin4LiX4Li04Lie4Lii4LmMCivguILguYnguLLguKfguJnguIEKK+C4guC5ieC4suC4p+C4meC4tuC5iOC4hwor4LiC4LmJ4Liy4Lin4Lia4Liy4LiV4LijCivguILguYnguLLguKfguJrguLTguJPguJHguYwKK+C4guC5ieC4suC4p+C4muC4uOC4q+C4o+C4teC5iAor4LiC4LmJ4Liy4Lin4LmA4Lia4LiyCivguILguYnguLLguKfguYDguJrguLfguK0KK+C4guC5ieC4suC4p+C4m+C4o+C4sOC4lOC4seC4muC4lOC4tOC4mQor4LiC4LmJ4Liy4Lin4Lib4Lil4Li54LiBCivguILguYnguLLguKfguJvguLHguJQKK+C4guC5ieC4suC4p+C4m+C5iOC4sgor4LiC4LmJ4Liy4Lin4Lib4Liy4LiUCivguILguYnguLLguKfguJvguLjguYnguJkKK+C4guC5ieC4suC4p+C5gOC4m+C4o+C4lQor4LiC4LmJ4Liy4Lin4LmA4Lib4Lil4Li34Lit4LiBCivguILguYnguLLguKfguYDguJvguLXguKLguIEKK+C4guC5ieC4suC4p+C4nOC4reC4gQor4LiC4LmJ4Liy4Lin4Lic4Lit4LiB4LiB4Lij4Liw4Lia4Lit4LiB4LiZ4LmJ4LizCivguILguYnguLLguKfguJ7guKPguLAKK+C4guC4suC4p+C4nuC4p+C4hwor4LiC4LmJ4Liy4Lin4Lie4Lit4LiHCivguILguYjguLLguKfguJ7guLLguJTguKvguLHguKcKK+C4guC5ieC4suC4p+C5guC4nuC4lAor4LiC4LmJ4Liy4Lin4Lif4LmI4Liy4LiHCivguILguYnguLLguKfguYDguKDguLIKK+C4guC5ieC4suC4p+C4oeC4seC4mQor4LiC4Liy4Lin4Lih4LmJ4LiyCivguILguYnguLLguKfguKHguLTguYjguJkKK+C4guC5ieC4suC4p+C5gOC4oeC5iOC4sgor4LiC4LmJ4Liy4Lin4LmA4Lih4LmI4Liy4LiX4Lit4LiUCivguILguYjguLLguKfguKLguIHguYDguKHguIYKK+C4guC5ieC4suC4p+C4ouC4suC4geC4q+C4oeC4suC4geC5geC4nuC4hwor4LiC4LmJ4Liy4Lin4Lii4Liy4LiE4Li5CivguILguYnguLLguKfguKLguLMKK+C4guC5ieC4suC4p+C5gOC4ouC5h+C4meC5g+C4leC5iQor4LiC4LmJ4Liy4Lin4LmA4Lii4LmH4LiZ4LmA4Lir4LiZ4Li34LitCivguILguYnguLLguKfguKXguLDguKHguLLguJkKK+C4guC5iOC4suC4p+C4peC5iOC4sgor4LiC4LmI4Liy4Lin4Liq4LiUCivguILguYnguLLguKfguKrguKfguKIKK+C4guC5ieC4suC4p+C4quC4suC4gQor4LiC4LmI4Liy4Lin4Liq4Liy4LijCivguILguYnguLLguKfguKrguLLguKMKK+C4guC5ieC4suC4p+C4quC4uOC4gQor4LiC4LmJ4Liy4Lin4LmA4Liq4LmJ4LiZCivguILguYnguLLguKfguKvguJnguLHguIEKK+C4guC5ieC4suC4p+C4q+C4oeC4gQor4LiC4LmJ4Liy4Lin4Lir4Lih4Liy4LiBCivguILguYnguLLguKfguKvguKXguLLguKEKK+C4guC5ieC4suC4p+C4q+C4peC4suC4oeC4leC4seC4lAor4LiC4LmJ4Liy4Lin4Lir4Lix4Lin4LmC4LiC4LiZCivguILguYnguLLguKfguKvguLLguIfguIrguYnguLLguIcKK+C4guC5ieC4suC4p+C5gOC4q+C4meC4teC4ouC4pwor4LiC4LmJ4Liy4Lin4LmA4Lir4LiZ4Li14Lii4Lin4LiU4LizCivguILguYnguLLguKfguYDguKvguKXguLfguK3guYDguIHguKXguLfguK3guK3guLTguYjguKEKK+C4guC4suC4p+C5g+C4q+C4jeC5iAor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmICivguILguYnguLLguKfguYPguKvguKHguYjguJnguYnguK3guKIKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC4m+C4peC4suC4oeC4seC4mQor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmI4LmD4Lir4LiN4LmICivguILguYnguLLguKfguK3guLHguIfguIHguLjguKXguLUKK+C4guC5ieC4suC4p+C4ruC4suC4hwor4LiC4LmJ4Liy4Lio4Li24LiBCivguILguLLguKvguKHguLIKK+C4guC4suC4q+C4ouC4seC5iOC4hwor4LiC4LmJ4Liy4Lir4Lil4Lin4LiHCivguILguYnguLLguKvguKXguKfguIfguYDguJTguLTguKEKK+C4guC5ieC4suC4q+C4peC4p+C4h+C4meC5ieC4reC4ogor4LiC4LmJ4Liy4Lir4Lil4Lin4LiH4Lir4Lil4Lix4LiH4Lil4Liy4LiiCivguILguLLguK3guYjguK3guJkKK+C4guC4swor4LiC4LmI4Liz4LmA4LiC4Li14Lii4LinCivguILguLTguIEKK+C4guC4tOC4geC5hgor4LiC4Li04LiHCivguILguLTguYjguIcKK+C4guC4tOC4h+C4geC5h+C4o+C4siDguILguYjguLLguIHguYfguYHguKPguIcKK+C4guC4tOC4h+C5geC4geC4peC4hwor4LiC4Li04LiH4LmB4LiE4Lij4LiHCivguILguLTguIfguYHguKvguYnguIcKK+C4guC4tOC4lAor4LiC4Li04Lib4Liq4Lix4LiX4LmC4LiXCivguILguLTguKEKK+C4guC4teC5iAor4LiC4Li14LmJCivguILguLXguYnguIHguJoKK+C4guC4teC5ieC4geC4o+C4sOC4l+C4suC5gOC4geC4peC4t+C4rQor4LiC4Li14LmJ4LiB4LmJ4Lit4LiZ4LmD4Lir4LiN4LmI4LmD4Lir4LmJ4LmA4LiU4LmH4LiB4LmA4Lir4LmH4LiZCivguILguLXguYnguIHguLDguYLguKXguYnguYLguJfguYkKK+C4guC4teC5ieC4geC4sgor4LiC4Li14LmJ4LiB4LmJ4Liy4LiHCivguILguLXguYnguIHguLLguJTguIcKK+C4guC4teC5ieC4geC4suC5geC4lOC4hwor4LiC4Li14LmJ4LiB4Liy4LmA4Lir4Lil4Li14LmI4Lii4LihCivguILguLXguYnguYDguIHguKXguLfguK0KK+C4guC4teC5ieC4guC4oQor4LiC4Li14LmJ4LiC4Lin4LiHCivguILguLXguYnguILguYnguLIKK+C4guC4teC5ieC4guC4uOC4ogor4LiC4Li14LmJ4LmA4LiC4LmH4LiaCivguILguLXguYnguITguKPguK3guIEKK+C4guC4teC5ieC4hOC4o+C4seC5iOC4hwor4LiC4Li14LmJ4LiE4Lin4Liy4LiiCivguILguLXguYnguITguLjguIEKK+C4guC4teC5ieC5gOC4hOC5ieC4sgor4LiC4Li14LmJ4LmC4LiE4Lij4LiHCivguILguLXguYnguIjguLLguJoKK+C4guC4teC5iOC4iuC5ieC4suC4h+C4iOC4seC4muC4leC4seC5iuC4geC5geC4leC4mQor4LiC4Li14LmJ4LiL4LmJ4Liy4LiiCivguILguLXguYnguYDguIvguLIKK+C4guC4teC5ieC5hOC4i+C5iQor4LiC4Li14LiT4LiwCivguILguLXguJPguLLguKrguJ4KK+C4guC4teC4lAor4LiC4Li14LiU4LiC4Lix4LmJ4LiZCivguILguLXguJTguITguKPguYjguK3guKEKK+C4guC4teC4lOC4hOC4seC5iOC4mQor4LiC4Li14LiU4LmA4Liq4LmJ4LiZ4LiV4Liy4LiiCivguILguLXguYnguYDguJTguLfguK3guJQKK+C4guC4teC5ieC5geC4lOC4lAor4LiC4Li14LmJ4LiV4LiUCivguILguLXguYnguJXguLHguIfguJnguLUKK+C4guC4teC5ieC4leC4tOC5ieC4pwor4LiC4Li14LmJ4LiV4Li34LiUCivguILguLXguYnguYDguJXguYjguLIKK+C4guC4teC5ieC5geC4leC5iQor4LiC4Li14LmJ4LmE4LiV4LmJCivguILguLXguYnguJbguLHguIcKK+C4guC4teC5ieC5gOC4luC5ieC4sgor4LiC4Li14LmJ4LmE4LiWCivguILguLXguYnguJfguLIKK+C4guC4teC5ieC4l+C4ueC4lAor4LiC4Li14LmJ4LmA4LiX4LmI4LitCivguILguLXguYnguYDguJfguLIKK+C4guC4teC5ieC5gOC4l+C4t+C4reC4gQor4LiC4Li14LmJ4LiZ4LiBCivguILguLXguJvguJnguLLguKfguLjguJgKK+C4guC4teC4m+C4meC4suC4p+C4uOC4mOC4meC4s+C4p+C4tOC4luC4tQor4LiC4Li14LmJ4Lib4Liw4LiV4Li04LmL4LinCivguILguLXguYnguJvguLLguIEKK+C4guC4teC5ieC5gOC4m+C5iQor4LiC4Li14LmJ4LmA4Lib4LmH4LiUCivguILguLXguYnguJzguIcKK+C4guC4teC5ieC4nOC4tuC5ieC4hwor4LiC4Li14LmJ4Lid4Li04LmI4LiZCivguILguLXguYnguYHguJ7guYnguIrguKfguJnguJXguLUKK+C4guC4teC5ieC4oeC4reC4lAor4LiC4Li14LmJ4Lih4LmJ4LiyCivguILguLXguYjguKHguYnguLLguJXguLXguITguKXguLUKK+C4guC4teC5iOC4oeC5ieC4suC5gOC4peC4teC4ouC4muC4hOC5iOC4suC4ogor4LiC4Li14LmI4Lih4LmJ4Liy4Liq4LmI4LiH4LmA4Lih4Li34Lit4LiHCivguILguLXguYnguKHguLTguYjguJkKK+C4guC4teC5ieC4oeC4ueC4gQor4LiC4Li14LmJ4LmA4Lih4LiGCivguILguLXguYnguYHguKHguKXguIfguKfguLHguJkKK+C4guC4teC5ieC5geC4oeC4pwor4LiC4Li14LmJ4LmE4Lih4LmI4LmD4Lir4LmJ4Lir4Lih4Liy4LiB4Li04LiZCivguILguLXguYnguKLguK3guIEKK+C4guC4teC5ieC4ouC4sgor4LiC4Li14LmJ4LmB4LiiCivguILguLXguKMKK+C4guC4teC5ieC4o+C4seC4h+C5geC4hAor4LiC4Li14LmJ4Lij4Liy4LiU4LmC4LiX4Lip4Lil4LmI4Lit4LiHCivguILguLXguYnguKPguLTguYnguKcKK+C4guC4teC5ieC5gOC4o+C4t+C5ieC4reC4mQor4LiC4Li14LmJ4LmA4Lij4Li34LmJ4Lit4LiZ4LiB4Lin4Liy4LiHCivguILguLXguYnguYHguKPguJQKK+C4guC4teC5ieC5geC4o+C4lOC4peC5ieC4reC4oeC4m+C4o+C4p+C4lAor4LiC4Li14LmJ4Lil4LihCivguILguLXguYnguKXguK3guIEKK+C4guC4teC5ieC4peC4teC4mgor4LiC4Li14LmJ4LmA4Lil4LmH4LiaCivguILguLXguYnguYLguKXguYkKK+C4guC4teC5ieC4quC4ueC4lAor4LiC4Li14LmJ4Lir4LiU4LiV4LiU4Lir4Liy4LiiCivguILguLXguYnguKvguJnguK3guJkKK+C4guC4teC5ieC4q+C4meC5ieC4sgor4LiC4Li14LmJ4Lir4LiZ4Li5CivguILguLXguYnguKvguKHguLIKK+C4guC4teC5ieC5gOC4q+C4o+C5iAor4LiC4Li14LmJ4LmA4Lir4Lil4LmH4LiBCivguILguLXguYnguYPguKvguKHguYjguKvguKHguLLguKvguK3guKEKK+C4guC4teC5ieC4reC5ieC4mQor4LiC4Li14LmJ4Lit4LmJ4Liy4LiiCivguILguLbguIcKK+C4guC4tuC5ieC4hwor4LiC4Li24LmJ4LiH4LmC4LiB4Lij4LiYCivguILguLbguIfguILguLHguIcKK+C4guC4tuC5ieC4h+C5gOC4hOC4teC4ouC4lAor4LiC4Li24LiH4LiV4LiyCivguILguLbguIfguJ7guLfguJQKK+C4guC4tuC4h+C4reC4ueC4lAor4LiC4Li24LmJ4LiZCivguILguLbguYnguJnguYDguILguLXguKLguIcKK+C4guC4tuC5ieC4meC4hOC4o+C4uQor4LiC4Li24LmJ4LiZ4LiE4Liy4LiZCivguILguLbguYnguJnguYPguIgKK+C4guC4tuC5ieC4meC4ieC5iOC4suC4ogor4LiC4Li24LmJ4LiZ4LiK4Li34LmI4LitCivguILguLbguYnguJnguIrguLfguYjguK3guKfguYjguLIKK+C4guC4tuC5ieC4meC4i+C4seC4hwor4LiC4Li24LmJ4LiZ4LiV4LmJ4LiZ4LmE4Lih4LmJ4Liq4Li44LiU4Lii4Lit4LiUCivguILguLbguYnguJnguJvguLLguIEKK+C4guC4tuC5ieC4meC4nuC4peC4seC4muC4nuC4peC4sgor4LiC4Li24LmJ4LiZ4LmE4Lih4LmJ4LiC4Li24LmJ4LiZ4Lih4Li34LitCivguILguLbguYnguJnguKPguLDguKfguLLguIcKK+C4guC4tuC5ieC4meC4o+C5ieC4suC4mQor4LiC4Li24LmJ4LiZ4Liq4Liy4LiiCivguILguLbguYnguJnguYDguKrguLXguKLguIcKK+C4guC4tuC5ieC4meC4q+C4meC5ieC4suC4guC4tuC5ieC4meC4leC4sgor4LiC4Li24LmJ4LiZ4Lir4Lih4LmJ4LitCivguILguLbguYnguJnguKvguLIKK+C4guC4tuC5ieC4meC5gOC4q+C4meC4t+C4reC4peC5iOC4reC4h+C5g+C4leC5iQor4LiC4Li34LiZCivguILguLfguYjguJkKK+C4guC4t+C5iOC4meC4guC4oQor4LiC4Li34LiZ4LmD4LiICivguILguLfguYjguK0KK+C4guC4t+C5iOC4reC4geC4sOC4peC4sOC4m+C4seC4h+C4q+C4sgor4LiC4Li34LmI4Lit4LiC4Lin4Liy4LiHCivguILguLfguYjguK3guITguLHguJQKK+C4guC4t+C5iOC4reC4iOC4oeC4ueC4gQor4LiC4Li34LmI4Lit4LmA4LiX4LmI4Liy4LiV4LmI4LitCivguILguLfguYjguK3guJzguLUKK+C4guC4t+C5iOC4reC4oeC4uOC4gQor4LiC4Li34LmI4Lit4Lir4Lih4Li54LmICivguILguLjguIEKK+C4guC4uOC4lAor4LiC4Li44LiU4LiE4Li44LmJ4LiiCivguILguLjguJTguJTguYnguKfguKLguJvguLLguIHguJbguLLguIHguJTguYnguKfguKLguJXguLIKK+C4guC4uOC4lOC4lOC4tOC4meC4geC4tOC4meC4q+C4jeC5ieC4sgor4LiC4Li44LiU4Lia4LmI4Lit4Lil4LmI4Lit4Lib4Lil4LiyCivguILguLjguJkKK+C4guC4uOC5iOC4mQor4LiC4Li44LmI4LiZ4LiC4LmJ4Lit4LiH4Lir4Lih4Lit4LiH4LmD4LiICivguILguLjguYjguJnguYDguITguLfguK3guIcKK+C4guC4uOC5iOC4meC5geC4hOC5ieC4mQor4LiC4Li44LmI4LiZ4LmD4LiICivguILguLjguJnguJfguK3guIcKK+C4guC4uOC4meC4meC4suC4hwor4LiC4Li44LiZ4LiZ4Liy4LiH4LmD4LiK4LmI4Lie4LmI4Lit4LmB4Lih4LmIIOC4q+C4tOC4meC5geC4h+C5iOC5g+C4iuC5iOC4leC4suC4ouC4suC4ogor4LiC4Li44LiZ4LiZ4LmJ4LizCivguILguLjguJnguJrguLLguKUKK+C4guC4uOC4meC5geC4nOC4mQor4LiC4Li44LiZ4Lie4LilCivguILguLjguJnguJ7guLHguJLguJnguYwKK+C4guC4uOC4meC5gOC4nuC5h+C4lAor4LiC4Li44LmI4LiZ4Lih4Lix4LinCivguILguLjguJnguYTguKHguYjguILguLbguYnguJkKK+C4guC4uOC4meC4qOC4suC4pQor4LiC4Li44LiZ4Lio4Li24LiBCivguILguLjguYjguJnguKvguKHguK3guIcKK+C4guC4uOC4meC4q+C4oeC4t+C5iOC4mQor4LiC4Li44LiZ4Lir4Lil4Lin4LiHCivguILguLjguKEKK+C4guC4uOC4ogor4LiC4Li44Lii4LmE4Lic4LmICivguILguLjguKLguK3guLTguJnguJfguKPguLXguKLguYwKK+C4guC4uQor4LiC4Li54LmICivguILguLnguYjguIHguKPguKPguYLguIrguIEKK+C4guC4ueC5iOC4guC4p+C4seC4jQor4LiC4Li54LmI4LmA4LiC4LmH4LiNCivguILguLnguJQKK+C4guC4ueC4lOC4o+C4teC4lAor4LiC4Li54LiU4LmA4Lil4Li34Lit4LiUCivguILguLnguJTguYDguKXguLfguK3guJTguILguLnguJTguYDguJnguLfguYnguK0KK+C5gOC4ggor4LmA4LiC4LmJCivguYDguILguIEKK+C5gOC4guC5h+C4hwor4LmA4LiC4LmI4LiHCivguYDguILguIjguKMKK+C5gOC4guC5h+C4jQor4LmA4LiC4LmH4LiN4LmD4LiICivguYDguILguYfguJQKK+C5gOC4guC5h+C4lOC4guC5ieC4rQor4LmA4LiC4LmH4LiU4LiC4LmJ4Lit4LmA4LiC4LmH4LiU4Lil4LizCivguYDguILguYfguJTguYDguILguLXguYnguKLguKcKK+C5gOC4guC5h+C4lOC4n+C4seC4mQor4LmA4LiC4LiU4LiyCivguYDguILguJUKK+C5gOC4guC4leC5geC4lOC4mQor4LmA4LiC4LiV4LmA4Lil4Li34Lit4LiB4LiV4Lix4LmJ4LiHCivguYDguILguJXguK3guLPguJnguLLguIjguKjguLLguKUKK+C5gOC4guC4mQor4LmA4LiC4LmH4LiZCivguYDguILguYjguJkKK+C5gOC4guC5iOC4meC5gOC4guC4teC5ieC4ouC4pwor4LmA4LiC4LmH4LiZ4LiE4Lij4LiB4LiC4Li24LmJ4LiZ4Lig4Li54LmA4LiC4LiyCivguYDguILguYjguJnguIbguYjguLIKK+C5gOC4guC4meC4hwor4LmA4LiC4LiZ4LiH4LiZ4Liy4Lii4Lie4Lij4Liy4LiZCivguYDguILguJnguYfguJQKK+C5gOC4guC4meC4ogor4LmA4LiC4Lia4LmH4LiI4LiC4Lia4Lin4LiZCivguYDguILguJrguYfguJUKK+C5gOC4guC4oS0KK+C5gOC4guC5h+C4oQor4LmA4LiC4LmJ4LihCivguYDguILguYfguKHguIHguKXguLHguJQKK+C5gOC4guC5ieC4oeC4guC5ieC4mQor4LmA4LiC4LmH4Lih4LiC4Lix4LiUCivguYDguILguYnguKHguILguLLguJoKK+C5gOC4guC5ieC4oeC4guC4suC4muC5hOC4q+C4oQor4LmA4LiC4LmJ4Lih4LmB4LiC4LmH4LiHCivguYDguILguYfguKHguITguKfguLHguIEKK+C5gOC4guC4oeC5h+C4hwor4LmA4LiC4LmJ4Lih4LiH4Lin4LiUCivguYDguILguYfguKHguIvguYjguK3guJnguJvguKXguLLguKIKK+C5gOC4guC4oeC5h+C4lOC5geC4guC4oeC5iAor4LmA4LiC4LmH4Lih4LiX4Li04LioCivguYDguILguKHguYjguJkKK+C5gOC4guC4oeC5ieC4mQor4LmA4LiC4Lih4LmJ4LiZ4LiC4Liw4Lih4Lix4LiBCivguYDguILguKHguKMKK+C5gOC4guC4oeC4o+C5hOC4l+C4o+C5guC4ouC4hAor4LmA4LiC4Lih4Lij4Lie4Lin4LiHCivguYDguILguKHguKPguKPguLLguIrguJrguLjguKPguLUKK+C5gOC4guC4oeC4o+C5gOC4q+C4peC4t+C4reC4hwor4LmA4LiC4Lih4Lij4LmD4Lir4LiN4LmICivguYDguILguKHguLIKK+C5gOC4guC4oeC5iOC4sgor4LmA4LiC4Lih4Liy4LmC4LiB4Lij4LiiCivguYDguILguKHguYjguLLguIvguLLguIcKK+C5gOC4guC4oeC4t+C4reC4mgor4LmA4LiC4LiiCivguYDguILguKLguIEKK+C5gOC4guC4ouC5iOC4hwor4LmA4LiC4Lii4LmI4LiH4LmA4LiB4LmH4LiH4LiB4Lit4LiiCivguYDguILguKLguJXguLLguKIKK+C5gOC4guC4ouC5ieC4reC5geC4guC4ouC5iOC4hwor4LmA4LiC4Lii4Lit4Liw4LiC4Lii4LiwCivguYDguILguKLguYjguLIKK+C5gOC4guC4ouC4tOC4mQor4LmA4LiC4Lii4Li04LiaCivguYDguILguKLguLTguJrguILguKLguLLguJoKK+C5gOC4guC4ouC4tOC4muC4kOC4suC4meC4sAor4LmA4LiC4Lii4Li14Lii4Lin4LiC4Lii4Lit4LiZCivguYDguILguKLguLfguYnguK3guJkKK+C5gOC4guC4o+C4reC4sAor4LmA4LiC4Lil4LiHCivguYDguILguKXguK3guLAKK+C5gOC4guC4peC4sAor4LmA4LiC4Lil4LiyCivguYDguILguKXguLLguLAKK+C5gOC4guC4pwor4LmA4LiC4Lip4LiV4LijCivguYDguILguKnguKEKK+C5gOC4guC4qeC4teC4ouC4owor4LmA4LiC4Lis4LiwCivguYDguILguLDguILguLAKK+C5gOC4guC4sgor4LmA4LiC4LmI4LiyCivguYDguILguYnguLIKK+C5gOC4guC5ieC4suC4geC4o+C4sOC5guC4iOC4oQor4LmA4LiC4LmJ4Liy4LiB4Lij4Liw4LiU4Li54LiB4LiU4LizCivguYDguILguLLguIHguKfguLLguIcKK+C5gOC4guC5ieC4suC5gOC4geC4k+C4keC5jAor4LmA4LiC4LmJ4Liy4LmA4LiB4Li14LiiCivguYDguILguLLguYHguIHguLAKK+C5gOC4guC5ieC4suC4guC5ieC4rQor4LmA4LiC4LmJ4Liy4LiC4LiyCivguYDguILguYnguLLguILguYnguLLguIcKK+C5gOC4guC5ieC4suC4hOC4rQor4LmA4LiC4LmJ4Liy4LiE4Li04LinCivguYDguILguYnguLLguITguLnguYgKK+C5gOC4guC5ieC4suC5gOC4hOC4o+C4t+C5iOC4reC4hwor4LmA4LiC4LmJ4Liy4LmA4LiE4LmJ4LiyCivguYDguILguYnguLLguYTguITguKUKK+C5gOC4guC5ieC4suC5gOC4h+C4teC4ouC4mgor4LmA4LiC4LmJ4Liy4LmB4LiH4LmICivguYDguILguYnguLLguYDguIjguYnguLIKK+C5gOC4guC5ieC4suC5gOC4iOC5ieC4suC5gOC4guC5ieC4suC4meC4suC4ogor4LmA4LiC4LmJ4Liy4LmD4LiICivguYDguILguYnguLLguIrguLfguYjguK0KK+C5gOC4guC5ieC4suC4jOC4suC4mQor4LmA4LiC4LmJ4Liy4LiU4LmJ4Liy4Lii4LmA4LiC4LmJ4Liy4LmA4LiC4LmH4LihCivguYDguILguYnguLLguYDguJTguLfguK3guKIKK+C5gOC4guC5ieC4suC4leC4o+C4teC4l+C4ueC4lQor4LmA4LiC4LmJ4Liy4LiV4Lit4LiHCivguYDguILguYnguLLguJXguLHguKcKK+C5gOC4guC5ieC4suC4leC4suC4iOC4mQor4LmA4LiC4LmJ4Liy4LiV4Liy4Lih4LiV4Lij4Lit4LiB4Lit4Lit4LiB4LiV4Liy4Lih4Lib4Lij4Liw4LiV4Li5CivguYDguILguYnguLLguJXguLLguKPguYnguLLguKIKK+C5gOC4guC5ieC4suC4leC4s+C4o+C4sgor4LmA4LiC4LmJ4Liy4LiV4Li54LmJCivguYDguILguYnguLLguYTguJXguYnguYDguILguYnguLLguYTguJ8KK+C5gOC4guC5ieC4suC4luC5ieC4swor4LmA4LiC4LmJ4Liy4LiW4Li24LiHCivguYDguILguYnguLLguYDguJbguLfguYjguK3guJnguK3guKLguYjguLLguKXguLfguKHguJ7guKPguYnguLIKK+C5gOC4guC5ieC4suC4l+C4o+C4hwor4LmA4LiC4LmJ4Liy4LiX4LmI4LiyCivguYDguILguYnguLLguJfguLUKK+C5gOC4guC5ieC4suC4l+C4teC5iAor4LmA4LiC4LmJ4Liy4LiX4Li44LiZCivguYDguILguYnguLLguJnguK3guIHguK3guK3guIHguYPguJkKK+C5gOC4guC5ieC4suC5gOC4meC4t+C5ieC4rQor4LmA4LiC4LmJ4Liy4LmB4Lia4LiaCivguYDguILguYnguLLguYHguJrguJrguYDguILguYnguLLguYHguJzguJkKK+C5gOC4guC5ieC4suC4m+C4gQor4LmA4LiC4LmJ4Liy4Lib4Liy4LiB4LmE4Lih4LmJCivguYDguILguYnguLLguJvguLTguYnguIcKK+C5gOC4guC5ieC4suC4m+C4teC4gQor4LmA4LiC4Liy4LmA4Lib4Lil4LmJ4LiyCivguYDguILguYnguLLguYTguJsKK+C5gOC4guC5ieC4suC4nOC4tQor4LmA4LiC4LmJ4Liy4Lic4Li54LmJ4LmA4LiC4LmJ4Liy4LiE4LiZCivguYDguILguYnguLLguJ3guLHguIEKK+C5gOC4guC5ieC4suC4neC4seC4mQor4LmA4LiC4LmJ4Liy4LmA4Lid4LmJ4LiyCivguYDguILguYnguLLguYDguJ3guLfguK3guIEKK+C5gOC4guC5ieC4suC4nuC4geC5gOC4guC5ieC4suC4q+C5iOC4rQor4LmA4LiC4LmJ4Liy4Lie4Lij4Lij4Lip4LiyCivguYDguILguYnguLLguJ7guKPguLDguYDguILguYnguLLguJnguLLguIcKK+C5gOC4guC5ieC4suC4nuC4uOC4hwor4LmA4LiC4Liy4Lih4LitCivguYDguILguYnguLLguKHguYjguLLguJkKK+C5gOC4guC5ieC4suC5gOC4oeC4t+C4reC4h+C4leC4suC4q+C4peC4tOC5iOC4p+C4leC5ieC4reC4h+C4q+C4peC4tOC5iOC4p+C4leC4suC4leC4suC4oQor4LmA4LiC4LmJ4Liy4LmE4Lih4LmJCivguYDguILguYnguLLguKLguLIKK+C5gOC4guC5ieC4suC4o+C4geC5gOC4guC5ieC4suC4nuC4hwor4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4LiqCivguYDguILguYnguLLguKPguYjguK3guIfguYDguILguYnguLLguKPguK3guKIKK+C5gOC4guC5ieC4suC4o+C4reC4mgor4LmA4LiC4LmJ4Liy4Lij4Lit4LiiCivguYDguILguYnguLLguKPguYnguLLguKIKK+C5gOC4guC5ieC4suC4o+C4teC4lQor4LmA4LiC4LmJ4Liy4Lij4Li54LibCivguYDguILguYnguLLguKPguLnguJvguYDguILguYnguLLguKPguK3guKIKK+C5gOC4guC5iOC4suC4peC4sgor4LmA4LiC4LmJ4Liy4Lil4Li04LmJ4LiZCivguYDguILguYnguLLguYDguKXguYjguKEKK+C5gOC4guC5ieC4suC5gOC4peC4t+C4reC4lAor4LmA4LiC4LmJ4Liy4LmA4Lil4Li34Lit4LiU4LmA4LiC4LmJ4Liy4LmA4LiZ4Li34LmJ4LitCivguYDguILguYnguLLguYLguKXguIcKK+C5gOC4guC5ieC4suC4p+C4seC4lOC5gOC4guC5ieC4suC4p+C4sgor4LmA4LiC4LmJ4Liy4Lin4LmI4LiyCivguYDguILguYnguLLguYDguKfguKMKK+C5gOC4guC5ieC4suC5geC4p+C5iOC4mQor4LmA4LiC4LmJ4Liy4LmA4Lio4Li14Lii4LijCivguYDguILguYnguLLguKrguKHguLLguJjguLQKK+C5gOC4guC5ieC4suC4quC4uOC4q+C4meC4seC4lQor4LmA4LiC4LmJ4Liy4LmD4Liq4LmICivguYDguILguYnguLLguYTguKrguYkKK+C5gOC4guC5ieC4suC4q+C4meC5ieC4sgor4LmA4LiC4LmJ4Liy4Lir4Lih4LmJ4LitCivguYDguILguYnguLLguKvguKHguLTguYnguJkKK+C5gOC4guC5ieC4suC4q+C4peC4seC4gQor4LmA4LiC4LmJ4Liy4Lir4LiyCivguYDguILguYnguLLguKvguLjguYnguJkKK+C5gOC4guC5ieC4suC4q+C4uQor4LmA4LiC4LmJ4Liy4Lir4Li54LiL4LmJ4Liy4Lii4LiX4Liw4Lil4Li44Lir4Li54LiC4Lin4LiyCivguYDguILguYnguLLguYPguKvguYkKK+C5gOC4guC5ieC4suC5hOC4q+C4meC5gOC4guC5ieC4suC5hOC4lOC5iQor4LmA4LiC4Liy4Lit4LmI4Lit4LiZCivguYDguILguYjguLLguK3guYjguK3guJkKK+C5gOC4guC4tOC4hwor4LmA4LiC4Li04LiZCivguYDguILguLTguJoKK+C5gOC4guC4teC5iOC4ogor4LmA4LiC4Li14Lii4LiHCivguYDguILguLXguKLguIfguYDguJfguYnguLIKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C4sOC4meC4suC4h+C4reC4teC5iAor4LmA4LiC4Li14Lii4LiH4Lie4Lij4LmJ4LiyCivguYDguILguLXguKLguJQKK+C5gOC4guC4teC4ouC4lOC4leC4sOC4m+C4suC4lAor4LmA4LiC4Li14Lii4LiZCivguYDguILguLXguYjguKLguJkKK+C5gOC4guC4teC4ouC4meC4lOC5ieC4p+C4ouC4oeC4t+C4reC4peC4muC4lOC5ieC4p+C4ouC4leC4teC4mQor4LmA4LiC4Li14Lii4LiZ4LiX4Lit4LiHCivguYDguILguLXguKLguJnguYTguJfguKIKK+C5gOC4guC4teC4ouC4meC5gOC4quC4t+C4reC5g+C4q+C5ieC4p+C4seC4p+C4geC4peC4seC4pwor4LmA4LiC4Li14Lii4LihCivguYDguILguLXguKLguKcKK+C5gOC4guC4teC5ieC4ouC4pwor4LmA4LiC4Li14LmJ4Lii4Lin4LiB4Lij4Liw4LmB4LiVCivguYDguILguLXguYnguKLguKfguYHguIHguYnguKcKK+C5gOC4guC4teC4ouC4p+C5hOC4guC5iOC4geC4sgor4LmA4LiC4Li14LmJ4Lii4Lin4LiH4Li5CivguYDguILguLXguYnguKLguKfguJXguLDguILguLLguJoKK+C5gOC4guC4teC5ieC4ouC4p+C5gOC4meC4t+C5ieC4rQor4LmA4LiC4Li14Lii4Lin4Lie4Lij4Liw4Lit4Li04LiZ4LiX4Lij4LmMCivguYDguILguLXguYnguKLguKfguYDguKXguYfguJoKK+C5gOC4guC4teC4ouC4p+C5gOC4quC4p+C4ogor4LmA4LiC4Li14LmJ4Lii4Lin4Lir4LiZ4Li44Lih4Liy4LiZCivguYDguILguLXguYnguKLguKfguKvguKHguLIKK+C5gOC4guC4teC4ouC4p+C4q+C4p+C4suC4mQor4LmA4LiC4Li14Lii4Lin4Lir4Liy4LiH4LmE4Lir4Lih4LmJCivguYDguILguLXguKLguLAKK+C5gOC4guC4t+C4rQor4LmA4LiC4Li34Lit4LiHCivguYDguILguLfguYjguK3guIcKK+C5gOC4guC4t+C5iOC4reC4mQor4LmA4LiC4Li34LmI4Lit4LiZ4LmA4Lie4LiK4LijCivguYDguILguLfguK3guKEKK+C5geC4ggor4LmB4LiC4LmJCivguYHguILguIEKK+C5geC4guC4geC5gOC4leC5ieC4sgor4LmB4LiC4LiB4LmA4LiV4LmJ4Liy4LmA4LiC4LmJ4Liy4Lij4Lix4LiHCivguYHguILguIHguYDguKHguLfguK3guIcKK+C5geC4guC5h+C4hwor4LmB4LiC4LmI4LiHCivguYHguILguYnguIcKK+C5geC4guC5h+C4h+C4geC4o+C5ieC4suC4pwor4LmB4LiC4LmH4LiH4LiB4Lil4LmJ4LiyCivguYHguILguYfguIfguYHguIHguKPguYjguIcKK+C5geC4guC5ieC4h+C5hOC4geC5iAor4LmB4LiC4LmH4LiH4LiC4LmJ4LitCivguYHguILguYfguIfguILguLHguJkKK+C5geC4guC5iOC4h+C4guC4seC4mQor4LmB4LiC4LmH4LiH4LmD4LiICivguYHguILguYfguIfguJXguLHguKcKK+C5geC4guC5h+C4h+C4oeC4t+C4rQor4LmB4LiC4LmH4LiH4LmA4Lih4Li34Lit4LiHCivguYHguILguYfguIfguYHguKPguIcKK+C5geC4guC5ieC4h+C4quC4tOC4h+C4q+C5jAor4LmB4LiC4LiZCivguYHguILguYjguJkKK+C5geC4guC5ieC4mQor4LmB4LiC4LiZ4LiC4Lin4LiyCivguYHguILguJnguITguLnguYkKK+C5geC4guC4meC4hwor4LmB4LiC4LiZ4LiL4LmJ4Liy4Lii4LmB4LiC4LiZ4LiC4Lin4LiyCivguYHguILguJnguJfguLjguIHguILguYwKK+C5geC4guC4meC4meC4suC4hwor4LmB4LiC4LiZ4Lie4Lix4LiaCivguYHguILguJnguLAKK+C5geC4guC4oQor4LmB4LiC4Lih4LmH4LiaCivguYHguILguKHguYjguKcKK+C5geC4guC4ouC5h+C4geC5hgor4LmB4LiC4Lii4LiHCivguYHguILguKLguYjguIcKK+C5geC4guC4ouC4h+C5geC4guC4h+C4guC4mQor4LmB4LiC4Lii4LiH4Lir4LiZ4Li5CivguYHguILguKXguLAKK+C5geC4guC4p+C4gQor4LmB4LiC4Lin4LiHCivguYHguILguKfguJkKK+C5geC4guC4p+C4meC4hOC4rQor4LmB4LiC4Lin4LiZ4LiZ4Lin4LihCivguYHguILguKfguJnguKXguK3guKIKK+C5geC4guC4p+C4sAor4LmB4LiC4Liq4Lij4LmMCivguYLguIIKK+C5guC4guC4gQor4LmC4LiC4LiB4Liq4Lix4LiaCivguYLguILguIcKK+C5guC4guC5iOC4hwor4LmC4LiC4LmI4LiH4LiX4Liw4LmA4LilCivguYLguILguJQKK+C5guC4guC4lOC4hwor4LmC4LiC4LiZCivguYLguILguJnguIcKK+C5guC4guC4oQor4LmC4LiC4LihLQor4LmC4LiC4Lih4LiHCivguYLguILguKHguJQKK+C5guC4guC4oeC4lOC4ouC4sgor4LmC4LiC4Lii4LiBCivguYLguILguKLguIHguYDguILguKLguIEKK+C5guC4guC4ouC4hwor4LmC4LiC4Lii4LmI4LiHCivguYLguILguKLguJQKK+C5guC4guC4ouC4oQor4LmC4LiC4Lil4LiBCivguYLguILguKXguIHguYYKK+C5guC4guC4peC4hwor4LmC4LiC4Lil4LiZCivguYLguILguKXguJnguJfguKfguLLguKMKK+C5guC4guC4qeC4oQor4LmE4LiCCivguYTguILguYgKK+C5hOC4guC5iQor4LmE4LiC4LiB4Lij4Liw4LiU4Li54LiBCivguYTguILguYnguIHguLLguKwKK+C5hOC4guC5ieC4geC4suC4rOC4meC4geC4meC4suC4h+C5geC4reC5iOC4mQor4LmE4LiC4LmJ4LiB4Liy4Lis4Lir4Lil4Lix4LiH4LmB4Lit4LmI4LiZCivguYTguILguYnguIHguLPguYDguJTguLIKK+C5hOC4guC5iOC5hOC4geC5iAor4LmE4LiC4LmI4LiC4Lin4Lix4LiNCivguYTguILguILguYnguK0KK+C5hOC4guC5iOC4guC4suC4hwor4LmE4LiC4LmI4LiC4Liy4LinCivguYTguILguYjguILguYnguLLguKcKK+C5hOC4guC4hOC4p+C4hwor4LmE4LiC4LmJ4LiE4Lin4Liy4Lih4Lij4LmJ4Lit4LiZCivguYTguILguYjguYDguITguYfguKEKK+C5hOC4guC5iOC4iOC4o+C4sOC5gOC4guC5iQor4LmE4LiC4LmJ4LiI4Lix4Lia4Liq4Lix4LmI4LiZCivguYTguILguYjguIjguLTguYnguIfguIjguIEKK+C5hOC4guC5iOC4iOC4tOC5ieC4h+C4q+C4o+C4teC4lAor4LmE4LiC4LmI4LmA4LiI4Li14Lii4LinCivguYTguILguYnguYPguIgKK+C5hOC4guC5iOC4jeC4teC5iOC4m+C4uOC5iOC4mQor4LmE4LiC4LmI4LiU4Lix4LiZCivguYTguILguYjguJTguLHguJnguKvguKHguLkKK+C5hOC4guC5iOC4lOC4suC4pwor4LmE4LiC4LmI4LmB4LiU4LiHCivguYTguILguYnguYHguJTguJQKK+C5hOC4guC5iOC4leC4suC4ouC5guC4hOC4oQor4LmE4LiC4LmI4LiV4Li44LmL4LiZCivguYTguILguYjguYDguJXguYjguLIKK+C5hOC4guC5ieC4l+C4o+C4nuC4tOC4qQor4LmE4LiC4LmJ4LiX4Lix4Lia4Lij4Liw4LiU4Li5CivguYTguILguYjguJnguIHguIHguKPguLDguKrguLIKK+C5hOC4guC4meC5ieC4swor4LmE4LiC4LmI4LiZ4LmJ4LizCivguYTguILguYjguJnguYnguLPguITguYnguLLguIcKK+C5hOC4guC5iOC5gOC4meC5iOC4sgor4LmE4LiC4LmI4LmD4LiZ4Lir4Li04LiZCivguYTguILguYjguJvguKXguLIKK+C5hOC4guC5ieC4m+C4reC4lOC4muC4p+C4oQor4LmE4LiC4LmJ4Lib4LmI4LiyCivguYTguILguJ7guKPguLDguKfguLTguKrguLnguJXguKMKK+C5hOC4guC5iOC4nuC4reC4gQor4LmE4LiC4LmJ4Lie4Li04LipCivguYTguILguKHguLHguJkKK+C5hOC4guC5ieC4oeC4suC4peC4suC5gOC4o+C4teC4ogor4LmE4LiC4LmI4Lih4Li44LiBCivguYTguILguKLguYjguJkKK+C5hOC4guC5iOC5gOC4ouC4teC5iOC4ouC4p+C4oeC5ieC4sgor4LmE4LiC4Lij4LiyCivguYTguILguYjguKXguKEKK+C5hOC4guC4peC4suC4mQor4LmE4LiC4LmI4Lil4Li54LiB4LmA4LiC4LiiCivguYTguILguYjguKXguLnguIHguKLguK3guJQKK+C5hOC4guC5ieC5gOC4peC4t+C4reC4lOC4reC4reC4gQor4LmE4LiC4Lin4LmICivguYTguILguKfguYkKK+C5hOC4guC4p+C5ieC5gOC4guC4pwor4LmE4LiC4Lin4LmI4LiE4Lin4LmJ4LiyCivguYTguILguKfguYnguYLguKPguIcKK+C5hOC4guC4p+C5iOC4q+C5ieC4suC4hwor4LmE4LiC4Lip4LiiCivguYTguILguYnguKrguLHguJnguJnguLTguJrguLLguJUKK+C5hOC4guC4quC4seC4meC4q+C4peC4seC4hwor4LmE4LiC4Liq4Lix4LiZ4Lir4Lil4Lix4LiH4Lit4Lix4LiB4LmA4Liq4LiaCivguYTguILguYjguKrguLPguYDguKDguLIKK+C5hOC4guC4quC4t+C4rQor4LmE4LiC4LmA4Liq4LiZ4Li14Lii4LiUCivguYTguILguYjguKvguIfguKrguYwKK+C5hOC4guC5ieC4q+C4p+C4seC4lAor4LmE4LiC4LmJ4Lir4Lin4Lix4LiU4LmD4Lir4LiN4LmICivguYTguILguYjguKvguKfguLLguJkKK+C5hOC4guC5ieC4q+C4seC4pwor4LmE4LiC4LmJ4Lir4Lix4Lin4Lil4LihCivguYTguILguYjguKvguLMKK+C5hOC4guC5iOC4q+C4tOC4mQor4LmE4LiC4Lir4Li5CivguYTguILguYnguYDguKvguKXguLfguK3guIcKK+C5hOC4guC5iOC5gOC4q+C4sgor4LmE4LiC4LmI4LmA4Lir4Li14LmJ4LiiCivguYTguILguYjguYHguKvguJkKK+C4gwor4LiECivguITguITguJktCivguITguITguJnguLAKK+C4hOC4hOC4meC4seC4oeC4nuC4owor4LiE4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguITguJnguLLguJnguJXguYwKK+C4hOC4hwor4LiE4LiH4LiB4Lij4Liw4Lie4Lix4LiZCivguITguIfguIHguKPguLDguJ7guLHguJnguIrguLLguJXguKPguLUKK+C4hOC4h+C5geC4geC5iOC5gOC4o+C4teC4ouC4mQor4LiE4LiH4LiC4Liy4LiUCivguITguIfguITguKXguLHguIcKK+C4hOC4h+C4hOC4sgor4LiE4LiH4LiE4Liy4LmA4LiU4Li34Lit4LiUCivguITguIfguITguLLguKXguLHguKIKK+C4hOC4h+C5hOC4hOC4ogor4LiE4LiH4LiV4Lix4LinCivguITguIfguJfguJkKK+C4hOC4h+C4l+C4teC5iAor4LiE4LiH4LmA4Liq4LmJ4LiZ4LiE4LiH4Lin4LiyCivguITguIfguYDguKvguKXguLfguK0KK+C4hOC4ii0KK+C4hOC4iuC4geC4o+C4o+C4oQor4LiE4LiK4LiZ4Liy4LihCivguITguIrguKPguLLguIoKK+C4hOC4iuC4peC4seC4geC4qeC4k+C5jAor4LiE4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguITguIrguKrguYjguLLguJkKK+C4hOC4iuC4quC4suC4owor4LiE4LiK4Liq4Li14Lir4LmMCivguITguIrguLLguIrguLLguJXguLQKK+C4hOC4iuC4suC4iuC4teC4ngor4LiE4LiK4Liy4LiY4Liy4LijCivguITguIrguLLguKDguKPguJPguYwKK+C4hOC4iuC4tOC4meC4l+C4o+C5jAor4LiE4LmA4LiK4LiZ4LiX4Lij4LmMCivguITguJMtCivguITguJPguJkKK+C4hOC4k+C4meC4sgor4LiE4LiT4Lia4LiU4Li1CivguITguJPguLAKK+C4hOC4k+C4sOC4o+C4seC4kOC4oeC4meC4leC4o+C4tQor4LiE4LiT4Liy4LiI4Liy4Lij4Lii4LmMCivguITguJPguLLguJjguLTguIHguLLguKMKK+C4hOC4k+C4suC4mOC4tOC4m+C5hOC4leC4ogor4LiE4LiT4Li04LiB4LiyCivguITguJPguLTguJUKK+C4hOC4k+C4tOC4lS0KK+C4hOC4k+C4tOC4leC4qOC4suC4quC4leC4o+C5jAor4LiE4LmA4LiT4LioCivguITguJQKK+C4hOC4lOC4geC4o+C4tOC4igor4LiE4LiU4LmC4LiB4LiHCivguITguJTguYDguITguLXguYnguKLguKcKK+C4hOC4lOC4h+C4rQor4LiE4LiU4LiL4LmI4Liy4LiHCivguITguJTguYPguJnguILguYnguK3guIfguK3guYPguJnguIHguKPguLDguJTguLnguIEKK+C4hOC4lOC4quC4o+C5ieC4suC4hwor4LiE4LiU4Li1CivguITguJTguLXguJTguLMKK+C4hOC4lOC4teC5geC4lOC4hwor4LiE4LiU4Li14LmB4Lie4LmI4LiHCivguITguJTguLXguKHguYLguJnguKrguLLguYDguKPguYgKK+C4hOC4lOC4teC4reC4meC4suC4luC4sgor4LiE4LiU4Li14Lit4Liy4LiN4LiyCist4LiE4LiVCivguITguJXguLQKK+C4hOC4leC4tOC4iuC4suC4p+C4muC5ieC4suC4mQor4LiE4LiV4Li04LiY4Lij4Lij4LihCivguITguJXguLTguJnguLTguKLguKEKK+C4hOC4leC4tOC4nuC4iOC4meC5jAor4LiE4LiX4LiyCivguITguJkKK+C4hOC5ieC4mQor4LiE4LiZ4LiB4Lil4Liy4LiHCivguITguJnguYTguILguYkKK+C4hOC4meC5hOC4guC5ieC4meC4reC4gQor4LiE4LiZ4LmE4LiC4LmJ4LmD4LiZCivguITguYnguJnguITguKfguYnguLIKK+C4hOC4meC4iOC4owor4LiE4LiZ4LiI4Lij4Li04LiHCivguITguJnguYPguIrguYkKK+C4hOC4meC4lOC4teC4nOC4teC4hOC4uOC5ieC4oQor4LiE4LiZ4LiV4LmJ4Lit4LiH4LiC4Lix4LiHCivguITguJnguJfguKPguIcKK+C4hOC4meC4l+C4sgor4LiE4LiZ4LiX4Li04Liq4LitCivguITguJnguJfguLTguKrguK3guJfguLDguYDguKUKK+C4hOC4meC4l+C4tQor4LiE4LiZ4LiX4Li14LmA4LiC4Lih4LiyCivguITguJnguJfguLXguKrguK0KK+C4hOC4meC5guC4lwor4LiE4LiZ4LiY4LmMCivguITguJnguJjguKPguKPguJ4tCivguITguJnguJjguKPguKPguJ7guYwKK+C4hOC4meC4mOC4o+C4o+C4nuC4p+C4tOC4p+C4suC4q+C5jAor4LiE4LiZ4LiY4Lij4Lij4Lie4Lio4Liy4Liq4LiV4Lij4LmMCivguITguJnguJnguK3guIEKK+C4hOC4meC5g+C4mQor4LiE4LiZ4LmA4Lih4Li34Lit4LiHCivguITguJnguKPguLHguIHguYDguJfguYjguLLguJzguLfguJnguKvguJnguLHguIcg4LiE4LiZ4LiK4Lix4LiH4LmA4LiX4LmI4Liy4Lic4Li34LiZ4LmA4Liq4Li34LmI4LitCivguITguJnguKPguYnguLLguKIKK+C4hOC4meC5hOC4o+C5ieC4hOC4p+C4suC4oeC4quC4suC4oeC4suC4o+C4lgor4LiE4LiZ4Lil4LiwCivguITguJnguKXguLDguYTguKHguYnguITguJnguKXguLDguKHguLfguK0KK+C4hOC4meC4quC4p+C4mQor4LiE4LiZ4Liq4Liy4Lia4Liq4Li54LiNCivguITguJnguYDguKrguKHguLfguK3guJnguYTguKPguYnguITguKfguLLguKHguKrguLLguKHguLLguKPguJYKK+C4hOC5ieC4meC4q+C4ueC4gQor4LiE4LiZ4LmD4Lir4LiN4LmI4LiE4LiZ4LmC4LiVCivguITguYDguJnguIjguKMKK+C4hOC4mgor4LiE4Lia4LiE4LiZ4LmD4Lir4LmJ4LiU4Li54Lir4LiZ4LmJ4LiyIOC4i+C4t+C5ieC4reC4nOC5ieC4suC5g+C4q+C5ieC4lOC4ueC5gOC4meC4t+C5ieC4rQor4LiE4Lia4LiE4LmJ4LiyCivguITguJrguITguLTguJQKK+C4hOC4muC4iuC4ueC5iQor4LiE4Lia4LmA4Lie4Lil4Li04LiHCivguITguJrguYTguJ8KK+C4hOC4muC4q+C4sgor4LiE4LihCivguITguKHguIHguKPguLTguJoKK+C4hOC4oeC4guC4swor4LiE4Lih4LiE4Liy4LiiCivguITguKHguJktCivguITguKHguJnguYwKK+C4hOC4oeC4meC4suC4geC4suC4owor4LiE4Lih4LiZ4Liy4LiE4LihCivguITguKHguYPguJnguJ3guLHguIEKK+C4hOC4oeC4muC4suC4hwor4LiE4Lih4Liq4Lix4LiZCivguITguKHguLTguIHguKDguLHguJUKK+C4hOC4o+C4gQor4LiE4Lij4LiB4LiB4Liw4LmA4Lia4Li34LitCivguITguKPguYjguIcKK+C4hOC4o+C4mgor4LiE4Lij4Lia4LiE4Lij4Lix4LiZCivguITguKPguJrguJbguYnguKfguJkKK+C4hOC4o+C4muC4oeC4t+C4rQor4LiE4Lij4Lij4LiK4Li04LiVCivguITguKPguKPguKAKK+C4hOC4o+C4o+C4oC0KK+C4hOC4o+C4o+C4oOC5jAor4LiE4Lij4Lij4Lig4LiY4Liy4LiV4Li4CivguITguKPguKPguKDguJjguLLguJXguLjguKHguJPguJHguKUKK+C4hOC4o+C4o+C4oOC4oeC4k+C4keC4pQor4LiE4Lij4Lij4Lig4Lih4LilCivguITguKPguKPguYLguKDguJfguKMKK+C4hOC4o+C4o+C4peC4reC4hwor4LiE4Lij4Lij4LmC4Lil4LiHCivguITguKPguKPguYTguKUKK+C4hOC4o+C4o+C4q+C4tOC4lQor4LiE4Lij4Lin4LiNCivguITguKPguKfguI3guITguKPguLLguIcKK+C4hOC4o+C4p+C4jeC4q+C4sgor4LiE4Lij4Lin4Lix4LiBCivguITguKPguKfguLUKK+C4hOC4o+C4q+C4sgor4LiE4Lij4Lit4LiBCivguITguKPguK3guIcKK+C4hOC4o+C4reC4h+C5geC4hOC4o+C4hwor4LiE4Lij4Lit4LiH4Lij4Liy4LiK4Liq4Lih4Lia4Lix4LiV4Li0CivguITguKPguYjguK3guYDguIfguLLguLAKK+C4hOC4o+C5iOC4reC5gOC4l+C4teC4ouC4mQor4LiE4Lij4Lit4LiaCivguITguKPguK3guJrguITguKPguK3guIcKK+C4hOC4o+C4reC4muC4hOC4o+C4reC4h+C4m+C4o+C4m+C4seC4geC4qeC5jAor4LiE4Lij4Lit4Lia4LiE4Lij4Lix4LinCivguITguKPguK3guJrguIfguLMKK+C4hOC4o+C4reC4muC4iOC4seC4geC4o+C4p+C4suC4pQor4LiE4Lij4Lit4Lia4LiV4Lil4Lix4LiaCivguITguKPguYjguK3guKEKK+C4hOC4o+C4sAor4LiE4Lij4Liw4LmA4Lih4Li04LihCivguITguKPguLDguYHguKXguIcKK+C4hOC4o+C4sOC5hOC4pQor4LiE4Lij4Liw4LmB4Lin4LiHCivguITguKPguLDguKvguJkKK+C4hOC4o+C4sOC4q+C4p+C4mQor4LiE4Lij4Liw4Lir4Liy4LiiCivguITguKPguLDguKvguLTguKcKK+C4hOC4o+C4sOC5guC4q+C4ogor4LiE4Lij4Lix4LmI4LiHCivguITguKPguLHguYnguIcKK+C4hOC4o+C4seC4lOC5gOC4hOC4o+C5iOC4hwor4LiE4Lij4Lix4LiZCivguITguKPguLHguYjguJkKK+C4hOC4o+C4seC5ieC4mQor4LiE4Lij4Lix4LmI4LiZ4LiE4Lij4LmJ4Liy4LihCivguITguKPguLHguYjguJnguJXguLHguKcKK+C4hOC4o+C4seC5iOC4meC5gOC4meC4t+C5ieC4reC4hOC4o+C4seC5iOC4meC4leC4seC4pwor4LiE4Lij4Lix4LiaCivguITguKPguLHguKcKK+C4hOC4o+C4seC4p+C4l+C4suC4mQor4LiE4Lij4Lix4Lin4LmE4LifCivguITguKPguLHguKfguYDguKPguLfguK3guJkKK+C4hOC4o+C4sgor4LiE4Lij4LmI4LiyCivguITguKPguLLguIEKK+C4hOC4o+C4suC4hwor4LiE4Lij4Liy4LiNCivguITguKPguLLguJQKK+C4hOC4o+C5ieC4suC4mQor4LiE4Lij4Liy4LiaCivguITguKPguLLguJrguKvguKHguLkKK+C4hOC4o+C4suC4oQor4LiE4Lij4LmJ4Liy4LihCivguITguKPguLLguKHguITguKPguLHguJkKK+C4hOC4o+C4suC4pwor4LiE4Lij4LmI4Liy4LinCivguITguKPguYjguLLguKfguYYKK+C4hOC4o+C4suC4qgor4LiE4Lij4LizCivguITguKPguYjguLMKK+C4hOC4o+C5iOC4s+C4hOC4o+C4p+C4jQor4LiE4Lij4LmI4Liz4LiE4Lij4LmI4LiyCivguITguKPguYjguLPguITguKPguLYKK+C4hOC4o+C5iOC4s+C5gOC4hOC4o+C5iOC4hwor4LiE4Lij4LmI4Liz4LmA4LiE4Lij4Lit4LiwCivguITguKPguYjguLPguYDguIfguLTguJkKK+C4hOC4o+C5iOC4s+C4l+C4reC4hwor4LiE4Lij4LmI4Liz4Lir4Lin4Lit4LiUCivguITguKPguLTguJvguJfguK3guJkKK+C4hOC4o+C4tOC4quC4leC5jAor4LiE4Lij4Li04Liq4LiV4LmM4Lih4Liy4LiqCivguITguKPguLTguKrguJXguYzguKjguLHguIHguKPguLLguIoKK+C4hOC4o+C4tOC4quC4leC4seC4hwor4LiE4Lij4Li04Liq4LmA4LiV4Li14Lii4LiZCivguITguKPguLXguYkKK+C4hOC4o+C4teC4hOC4o+C4rQor4LiE4Lij4Li14LiaCivguITguKPguLXguJrguKrguLTguIfguKvguYwKK+C4hOC4o+C4teC4oQor4LiE4Lij4Li14Lip4Lih4Liy4Lii4Lix4LiZCivguITguKPguLYKK+C4hOC4o+C4tuC4geC4hOC4o+C4t+C5ieC4mQor4LiE4Lij4Li24LiB4LmC4LiE4Lij4LihCivguITguKPguLbguYjguIcKK+C4hOC4o+C4tuC5iOC4h+C5hiDguIHguKXguLLguIfguYYKK+C4hOC4o+C4tuC5iOC4h+C4iuC4suC4leC4tAor4LiE4Lij4Li24LmI4LiH4LiV4LmI4Lit4LiE4Lij4Li24LmI4LiHCivguITguKPguLbguJkKK+C4hOC4o+C4tuC4oQor4LiE4Lij4Li24LmJ4LihCivguITguKPguLbguKHguITguKPguLgKK+C4hOC4o+C4t+C4lAor4LiE4Lij4Li34LiZCivguITguKPguLfguYnguJkKK+C4hOC4o+C4t+C4meC4hOC4o+C4seC5iOC4mQor4LiE4Lij4Li34LmJ4LiZ4LiE4Lij4Lix4LmI4LiZCivguITguKPguLfguYnguJnguITguKPguLbguIEKK+C4hOC4o+C4t+C5ieC4meC5gOC4hOC4o+C4hwor4LiE4Lij4Li34LitCivguITguKPguLgKK+C4hOC4o+C4uOC4gS0KK+C4hOC4o+C4uOC4hOC4o+C4sAor4LiE4Lij4Li44LiRCivguITguKPguLjguJHguIHguKPguLDguJfguIcKK+C4hOC4o+C4uOC4keC4nuC5iOC4suC4q+C5jAor4LiE4Lij4Li44LmI4LiZCivguITguKPguLjguYjguJnguITguLTguJQKK+C4hOC4o+C4uOC4oOC4seC4k+C4keC5jAor4LiE4Lij4Li44Lih4LmA4LiE4Lij4Li34LitCivguITguKPguLjguKIKK+C4hOC4o+C4uOC4p+C4meC4sgor4LiE4Lij4Li44Lin4Liy4LijCivguITguKPguLjguKjguLLguKrguJXguKPguYwKK+C4hOC4o+C4uQor4LiE4Lij4Li54LmICivguITguKPguLnguJQKK+C4hOC4pOC5guC4huC4qQor4LiE4Lik4LiZ4LiW4LmMCivguITguKTguKsKK+C4hOC4pOC4qy0KK+C4hOC4pOC4q+C4muC4lOC4tQor4LiE4Lik4Lir4Lib4Lix4LiV4LiZ4Li1CivguITguKTguKvguLHguKrguJbguYwKK+C4hOC4pOC4q+C4sgor4LiE4Lik4Lir4Liy4Liq4LiZ4LmMCivguITguKUKK+C4hOC4peC4p+C4hwor4LiE4Lil4LitCivguITguKXguYnguK0KK+C4hOC4peC4reC4gQor4LiE4Lil4Lit4LmA4LiE4Lil4Li14LiiCivguITguKXguK3guYHguITguKUKK+C4hOC4peC5ieC4reC5geC4hOC4peC5iQor4LiE4Lil4Lit4LiHCivguITguKXguYjguK3guIcKK+C4hOC4peC5ieC4reC4hwor4LiE4Lil4LmI4Lit4LiH4LmB4LiE4Lil4LmI4LinCivguITguKXguYnguK3guIfguIjguK3guIcKK+C4hOC4peC5iOC4reC4h+C4leC4seC4pwor4LiE4Lil4Lit4LiH4LmA4Lil4Li34LmI4Lit4LiiCivguITguKXguK3guIfguKrguYjguIfguJnguYnguLMKK+C4hOC4peC4reC4lAor4LiE4Lil4Lit4LiZCivguITguKXguK3guJnguYHguITguKXguJkKK+C4hOC4peC5ieC4reC4ogor4LiE4Lil4LmJ4Lit4Lii4LiE4Lil4LmJ4Lit4LiiCivguITguKXguK3guKPguLXguJkKK+C4hOC4peC4reC5guC4o+C4n+C4reC4o+C5jOC4oQor4LiE4Lil4Lit4LmC4Lij4Lif4Li14Lil4Lil4LmMCivguITguKXguLAKK+C4hOC4peC4sOC4hOC4peC5iOC4swor4LiE4Lil4Liw4LiE4Lil4Li44LmJ4LiHCivguITguKXguLDguJvguJkKK+C4hOC4peC4seC4gQor4LiE4Lil4Lix4LmI4LiBCivguITguKXguLHguYjguIHguYYKK+C4hOC4peC4seC4hwor4LiE4Lil4Lix4LmI4LiHCivguITguKXguLHguIfguJ7guLTguKHguLLguJnguK3guLLguIHguLLguKgKK+C4hOC4peC4seC4h+C5gOC4peC4t+C4reC4lAor4LiE4Lil4Lix4LiH4Liq4Li04LiZ4LiE4LmJ4LiyCivguITguKXguLHguIfguKrguLTguJnguITguYnguLLguJfguLHguJPguJHguYzguJrguJkKK+C4hOC4peC4seC4leC4iuC5jAor4LiE4Lil4Lix4Lia4LiE4Lil4LmJ4Liy4LiiCivguITguKXguLHguJrguITguKXguYnguLLguKLguITguKXguLHguJrguITguKXguLIKK+C4hOC4peC4sgor4LiE4Lil4LmJ4LiyCivguITguKXguLLguITguKXguYjguLMKK+C4hOC4peC4suC5hOC4hOC4pQor4LiE4Lil4Liy4LiH4LmB4LiE4Lil4LiHCivguITguKXguLLguJQKK+C4hOC4peC4suC4lOC5gOC4hOC4peC4t+C5iOC4reC4mQor4LiE4Lil4Liy4LiU4LmB4LiE4Lil4LmJ4LinCivguITguKXguLLguJkKK+C4hOC4peC4suC4ogor4LiE4Lil4LmJ4Liy4LiiCivguITguKXguLLguKLguITguKXguYnguLLguKIKK+C4hOC4peC5ieC4suC4ouC4hOC4peC5ieC4suC4ogor4LiE4Lil4LmJ4Liy4Lii4LiE4Lil4Li24LiHCivguITguKXguLLguKLguYDguITguKXguYjguIcKK+C4hOC4peC5iOC4suC4pwor4LiE4Lil4Liy4LioCivguITguKXguLMKK+C4hOC4peC5iOC4swor4LiE4Lil4LmJ4LizCivguITguKXguLTguIcKK+C4hOC4peC4tOC5ieC4h+C5guC4hOC4peC4hwor4LiE4Lil4Li04LiUCivguITguKXguLTguJnguLTguIEKK+C4hOC4peC4tQor4LiE4Lil4Li14LmICivguITguKXguLXguYjguITguKXguLLguKIKK+C4hOC4peC4tuC4hwor4LiE4Lil4Li24LiH4LmA4LiE4Lil4LmJ4LiZCivguITguKXguLbguIfguYDguITguKXguYnguLIKK+C4hOC4peC4t+C5iOC4mQor4LiE4Lil4Li34LmI4LiZ4LiB4Lij4Liw4LiX4Lia4Lid4Lix4LmI4LiHCivguITguKXguLfguYjguJnguYPguJXguYnguJnguYnguLMKK+C4hOC4peC4t+C5iOC4meC4m+C4suC4meC4geC4peC4suC4hwor4LiE4Lil4Li34LmI4LiZ4LmB4Lih4LmI4LmA4Lir4Lil4LmH4LiB4LmE4Lif4Lif4LmJ4LiyCivguITguKXguLfguYjguJnguKLguLLguKcKK+C4hOC4peC4t+C5iOC4meC4p+C4tOC4l+C4ouC4uAor4LiE4Lil4Li34LmI4LiZ4Liq4Lix4LmJ4LiZCivguITguKXguLfguYjguJnguYTguKrguYkKK+C4hOC4peC4t+C5iOC4meC5gOC4q+C4teC4ouC4mQor4LiE4Lil4Li44LiBCivguITguKXguLjguIHguITguKXguLLguJkKK+C4hOC4peC4uOC4geC4hOC4peC4tQor4LiE4Lil4Li44LiB4LiE4Lil4Li14LiV4Li14LmC4Lih4LiHCivguITguKXguLjguYnguIcKK+C4hOC4peC4uOC4mgor4LiE4Lil4Li44LihCivguITguKXguLjguYjguKEKK+C4hOC4peC4uOC5ieC4oQor4LiE4Lil4Li44LmJ4Lih4LiE4Lil4Lix4LmI4LiHCivguITguKXguLjguKHguYDguITguKPguLfguK0KK+C4hOC4peC4uOC4oeC4luC4uOC4h+C4iuC4mQor4LiE4Lil4Li44Lih4Lib4Lij4Liw4LiX4LihCivguITguKXguLjguKHguYLguJvguIcKK+C4hOC4peC4uOC4oeC4nOC4l+C4oQor4LiE4Lin4LiHCivguITguKfguIfguYHguILguJkKK+C4hOC4p+C4h+C4quC4p+C5iOC4suC4mQor4LiE4Lin4LiTCivguITguKfguJkKK+C4hOC4p+C4mgor4LiE4Lin4Lia4LiE4Li44LihCivguITguKfguJrguYHguJnguYjguJkKK+C4hOC4p+C4ogor4LiE4Lin4LijCivguITguKfguLHguIEKK+C4hOC4p+C4seC4geC4hOC5ieC4reC4mQor4LiE4Lin4Lix4LiB4Lil4LiH4Lir4Lil4Li44LihCivguITguKfguLHguYjguIfguITguKfguYnguLLguIcKK+C4hOC4p+C4seC4mQor4LiE4Lin4Lix4LmI4LiZCivguITguKfguLHguYjguJnguIjguLjguIEKK+C4hOC4p+C4seC4meC4q+C4peC4hwor4LiE4Lin4LmJ4LiyCivguITguKfguLLguIEKK+C4hOC4p+C5ieC4suC5hOC4guC4p+C5iAor4LiE4Lin4LmJ4Liy4LiHCivguITguKfguYnguLLguIfguYYKK+C4hOC4p+C5ieC4suC4h+C5gOC4hOC4p+C5ieC4hwor4LiE4Lin4Liy4LiNCivguITguKfguLLguJkKK+C4hOC4p+C5ieC4suC4mQor4LiE4Lin4LmJ4Liy4LiZ4LiX4LmJ4Lit4LiHCivguITguKfguYnguLLguJnguYnguLPguYDguKvguKXguKcKK+C4hOC4p+C4suC4oQor4LiE4Lin4Liy4Lih4LiE4Lil4Liy4LiUCivguITguKfguLLguKHguYDguITguYnguJkKK+C4hOC4p+C4suC4oeC5gOC4hOC4o+C4teC4ouC4lAor4LiE4Lin4Liy4Lih4LmA4LiJ4Li34LmI4Lit4LiiCivguITguKfguLLguKHguIrguK3guJoKK+C4hOC4p+C4suC4oeC4iuC4t+C5ieC4mQor4LiE4Lin4Liy4Lih4LiK4Li34LmJ4LiZ4Liq4Lix4Lih4Lia4Li54Lij4LiT4LmMCivguITguKfguLLguKHguIrguLfguYnguJnguKrguLHguKHguJ7guLHguJfguJjguYwKK+C4hOC4p+C4suC4oeC4luC5iOC4p+C4hwor4LiE4Lin4Liy4Lih4LiW4LmI4Lin4LiH4LiI4Liz4LmA4Lie4Liy4LiwCivguITguKfguLLguKHguJbguLXguYgKK+C4hOC4p+C4suC4oeC4luC4teC5iOC4p+C4tOC4l+C4ouC4uAor4LiE4Lin4Liy4Lih4LmC4LiZ4LmJ4Lih4LiW4LmI4Lin4LiHCivguITguKfguLLguKHguKLguLLguKfguITguKXguLfguYjguJkKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4l+C5iOC4p+C4oeC4q+C4seC4p+C5gOC4reC4suC4leC4seC4p+C5hOC4oeC5iOC4o+C4reC4lAor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LmA4LiC4Li34LmI4Lit4LiHCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguJTguYnguK3guKIKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC5gOC4lOC5iOC4mQor4LiE4Lin4Liy4Lih4LmA4Lij4LmI4LiHCivguITguKfguLLguKHguYDguKPguYfguKcKK+C4hOC4p+C4suC4oeC4q+C4meC5iOC4p+C4hwor4LiE4Lin4Liy4Lih4Lir4Lil4Lix4LiHCivguITguKfguLLguKIKK+C4hOC4p+C4suC4ouC4m+C4peC4sAor4LiE4Lin4Liy4Lii4Lie4Lij4Liw4Lit4Li04LiZ4LiX4Lij4LmMCivguITguKfguYjguLLguKcKK+C4hOC4p+C5iOC4swor4LiE4Lin4LmI4Liz4Lia4Liy4LiV4LijCivguITguKfguYjguLPguKvguKXguLHguIcKK+C4hOC4p+C4tOC4meC4tOC4mQor4LiE4Lin4Li04Lin4LmGCivguITguKfguLTguKfguITguKfguLHguIcKK+C4hOC4p+C4tOC4p+C4hOC4p+C5iOC4suC4hwor4LiE4Lin4Li04Lin4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLXguJnguKrguLTguKPguLTguIHguLTguJXguLTguYwKK+C4hOC4qy0KK+C4hOC4q+C4geC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4LiE4Lir4Lia4LiU4Li1CivguITguKvguJvguJXguLLguJnguLUKK+C4hOC4q+C4seC4kAor4LiE4LitCivguITguYnguK0KK+C4hOC4reC4gQor4LiE4LmH4Lit4LiB4LiE4Lix4LiqCivguITguK3guIHguIrguYnguLLguIcKK+C4hOC5h+C4reC4geC5gOC4l+C4pQor4LiE4Lit4LiB4Lij4Liw4LmA4LiK4LmJ4LiyCivguITguK3guIHguKXguKEKK+C4hOC4reC4geC4sOC4peC4suC4quC4tQor4LiE4Lit4LiC4Liy4LiU4Lia4Liy4LiU4LiV4Liy4LiiCivguITguK3guYHguILguYfguIcKK+C4hOC4reC4hOC4reC4lAor4LiE4Lit4LmA4LiE4LiL4Lit4Lii4LiU4LmMCivguITguYjguK3guIfguK3guYnguK3guKIKK+C4hOC4reC5gOC4iuC4tOC5ieC4lQor4LiE4Lit4LiL4Lit4LiHCivguITguK3guJQKK+C4hOC4reC5geC4lOC4hwor4LiE4Lit4LiV4LiBCivguITguK3guJXguYjguK0KK+C4hOC4reC4leC4seC5ieC4hwor4LiE4Lit4LiV4Lix4LmJ4LiH4Lia4LmI4LiyCivguITguK3guJXguLXguJoKK+C4hOC4reC4luC5iOC4p+C4hwor4LiE4Lit4LiX4Lit4LiH4LmB4LiU4LiHCivguITguK3guJkKK+C4hOC5iOC4reC4mQor4LiE4LmJ4Lit4LiZCivguITguK3guJnguIHguKPguLXguJUKK+C4hOC4reC4meC4geC4o+C4teC4leC5gOC4quC4o+C4tOC4oeC5gOC4q+C4peC5h+C4gQor4LiE4Lit4LiZ4LiB4Lij4Li14LiV4Lit4Lix4LiU4LmB4Lij4LiHCivguITguYnguK3guJnguIHguKXguK3guIcKK+C4hOC5iOC4reC4meC4guC4reC4lAor4LiE4LmI4Lit4LiZ4LiC4LmJ4Liy4LiHCivguITguYnguK3guJnguITguKfguLHguIEKK+C4hOC5iOC4reC4meC5geC4hOC4sAor4LiE4Lit4LiZ4LmA4LiU4LiZ4LmA4LiL4Lit4Lij4LmMCivguITguYnguK3guJnguJXguLTguIcKK+C4hOC5ieC4reC4meC4leC4teC4q+C4oeC4sgor4LiE4LmJ4Lit4LiZ4LiX4Lit4LiHCivguITguK3guJnguYHguKfguJnguJXguYwKK+C4hOC4reC4meC5gOC4quC4tOC4o+C5jOC4lQor4LiE4LmJ4Lit4LiZ4Lir4Lit4LiiCivguITguK3guJnguLLguIQKK+C4hOC4reC4mgor4LiE4Lit4Lia4Lix4LinCivguITguK3guYHguJrguLAKK+C4hOC4reC4m+C4suC4lAor4LiE4Lit4LmA4Lib4LmH4LiZ4LmA4Lit4LmH4LiZCivguITguK3guJ7guK3guIEKK+C4hOC4reC4nuC4seC4mgor4LiE4Lit4LmE4LifCivguITguK3guKEKK+C4hOC5iOC4reC4oQor4LiE4LmJ4Lit4LihCivguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwKK+C4hOC4reC4oeC4oeC4suC4meC5guC4lAor4LiE4Lit4Lih4Lih4Li04Lin4LiZ4Li04Liq4LiV4LmMCivguITguK3guKHguYnguLIKK+C4hOC4reC4ogor4LiE4LmI4Lit4LiiCivguITguYjguK3guKLguYYKK+C4hOC5ieC4reC4ogor4LiE4LmI4Lit4Lii4LiU4Li14LiC4Li24LmJ4LiZCivguITguK3guKLguJfguYjguLIKK+C4hOC5iOC4reC4ouC5gOC4m+C5h+C4meC4hOC5iOC4reC4ouC5hOC4mwor4LiE4LmI4Lit4Lii4Lii4Lix4LiH4LiK4Lix4LmI4LinCivguITguK3guKLguKXguYwKK+C4hOC4reC4ouC5gOC4q+C4leC4uAor4LiE4Lit4Lij4LmM4LiUCivguITguK3guKPguKfguIcKK+C4hOC4reC4o+C4sOC4huC4seC4hwor4LiE4Lit4LmB4Lij4LmJ4LiHCivguITguK3guYHguKXguJkKK+C4hOC4reC4p+C4tQor4LiE4Lit4Liq4LiV4Li04LiB4LmC4LiL4LiU4LiyCivguITguK3guKrguK3guIcKK+C4hOC4reC4quC4sOC4nuC4suC4mQor4LiE4Lit4Liq4Li54LiHCivguITguK3guYDguKrguLfguYnguK0KK+C4hOC4reC4q+C4reC4ogor4LiE4Lit4Lir4Lit4Lii4LiB4Lix4Lia4Lil4Li54LiB4LiB4Lij4Liw4LmA4LiU4Li34Lit4LiBCivguITguK3guKvguK3guKLguJXguLXguJoKK+C4hOC4reC4q+C4reC4ouC4nuC4reC4gQor4LiE4Lit4Lir4LmI4Liy4LiZCivguITguK3guYHguKvguYnguIcKK+C4hOC4reC5geC4q+C4peC4oQor4LiE4Lit4Lit4LmI4Lit4LiZCivguITguK3guK7guLLguKfguLLguKIKK+C4hOC4sAor4LiE4LmI4LiwCivguITguLDguYTguILguKfguYgKK+C4hOC4sOC4hOC5ieC4reC4ogor4LiE4Liw4LiE4Liy4LiZCivguITguLDguITguLbguIcKK+C4hOC4sOC4meC4mQor4LiE4Liw4LiZ4Lit4LiHCivguITguLDguJnguYnguLIKK+C4hOC4sOC4meC4tuC4hwor4LiE4Liw4LmA4LiZCivguITguLDguYDguJnguIfguKPguYnguLLguKIKK+C4hOC4sOC5gOC4meC5h+C4lAor4LiE4Liw4LmB4LiZ4LiZCivguITguLDguYHguJnguJnguJnguLTguKLguKEKK+C4hOC4sOC5geC4meC4meC5gOC4quC4teC4ouC4hwor4LiE4Liw4LmD4LiZCivguITguLDguKHguLMKK+C4hOC4sOC4oeC4tuC4gQor4LiE4Liw4Lii4Lix4LmJ4LiZ4LiE4Liw4Lii4LitCivguITguLDguYDguKLguK0KK+C4hOC4seC4gQor4LiE4Lix4LmI4LiBCivguITguLHguITguJktCivguITguLHguITguJnguLAKK+C4hOC4seC4hOC4meC4seC4oeC4nuC4owor4LiE4Lix4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguLHguITguJnguLLguJnguJXguYwKK+C4hOC4seC5iOC4hwor4LiE4Lix4LmI4LiH4LiE4LmJ4Liy4LiHCivguITguLHguYjguIfguYHguITguYnguJkKK+C4hOC4seC4h+C5hOC4hOC4ogor4LiE4Lix4LiI4LiJCivguITguLHguJPguJHguKHguLLguKXguLIKK+C4hOC4seC4k+C4keC4quC4ueC4leC4owor4LiE4Lix4LiUCivguITguLHguJTguITguYnguLLguJkKK+C4hOC4seC4lOC5gOC4hOC5ieC4sgor4LiE4Lix4LiU4LiH4LmJ4Liy4LiHCivguITguLHguJTguInguLLguIEKK+C4hOC4seC4lOC4iuC5ieC4reC4mQor4LiE4Lix4LiU4LiK4Li44LiZCivguITguLHguJTguJfguYnguLLguKIKK+C4hOC4seC4lOC4oeC4reC4mQor4LiE4Lix4LiU4LmA4Lih4LmH4LiHCivguITguLHguJTguYDguKXguLfguK3guIEKK+C4hOC4seC4lOC5gOC4peC4t+C4reC4lAor4LiE4Lix4LiX4Lil4Li14Lii4LiyCivguITguLHguJkKK+C4hOC4seC5iOC4mQor4LiE4Lix4LmJ4LiZCivguITguLHguJnguILguLIKK+C4hOC4seC4meC4iOC4suC4oQor4LiE4Lix4LiZ4LiJ4LmI4Lit4LiHCivguITguLHguJnguInguLHguJXguKMKK+C4hOC4seC4meC4ieC4suC4ogor4LiE4Lix4LiZ4LiK4Lix4LiBCivguITguLHguJnguIrguLHguYjguIcKK+C4hOC4seC4meC4iuC4teC4ngor4LiE4Lix4LiZ4LiU4Liy4Lil4LiJ4Lix4LiV4LijCivguITguLHguJnguYLguJTguIcKK+C4hOC4seC4meC4li0KK+C4hOC4seC4meC4luC4mOC4uOC4o+C4sAor4LiE4Lix4LiZ4LiW4Lij4LiI4LiZ4Liy4LiI4Liy4Lij4Lii4LmMCivguITguLHguJnguJfguKPguIcKK+C4hOC4seC4meC4mAor4LiE4Lix4LiZ4LiYLQor4LiE4Lix4LiZ4LiY4LmMCivguITguLHguJnguJjguIHguLjguI7guLUKK+C4hOC4seC4meC4mOC4oeC4suC4l+C4meC5jAor4LiE4Lix4LiZ4LiY4Liy4Lij4Lij4Liy4Lip4LiO4Lij4LmMCivguITguLHguJnguJnguLIKK+C4hOC4seC4meC4muC4p+C4ogor4LiE4Lix4LiZ4LmC4Lie4LiHCivguITguLHguJnguYDguKPguYjguIcKK+C4hOC4seC4meC4q+C4suC4oeC5gOC4quC4t+C4rQor4LiE4Lix4LiaCivguITguLHguJrguILguLHguJkKK+C4hOC4seC4muC4hOC5ieC4reC4mQor4LiE4Lix4Lia4LiE4Lix4LmI4LiHCivguITguLHguJrguITguLIKK+C4hOC4seC4muC5geC4hAor4LiE4Lix4Lia4LmB4LiE4LmJ4LiZCivguITguLHguJrguYHguITguJoKK+C4hOC4seC4muC5g+C4iAor4LiE4Lix4Lia4Lit4LiB4LiE4Lix4Lia4LmD4LiICivguITguLHguJ7guKAtCivguITguLHguJ7guKDguYwKK+C4hOC4seC4nuC4oOC4quC4suC4peC4tQor4LiE4Lix4Lie4LmC4Lig4LiX4LijCivguITguLHguKHguKDguLXguKMtCivguITguLHguKHguKDguLXguKPguYwKK+C4hOC4seC4oeC4oOC4teC4o+C4oOC4suC4ngor4LiE4Lix4LilCivguITguLHguKcKK+C4hOC4seC5iOC4pwor4LiE4LiyCivguITguYjguLIKK+C4hOC5ieC4sgor4LiE4Liy4LiB4Lij4Lit4LiHCivguITguYnguLLguILguLLguKIKK+C4hOC5iOC4suC4guC4tuC5ieC4meC4qOC4suC4pQor4LiE4LmI4Liy4LiE4LiaCivguITguYjguLLguITguKPguK3guIfguIrguLXguJ4KK+C4hOC5ieC4suC4hOC4p+C4suC4oQor4LiE4LmJ4Liy4LiE4LmJ4LiyCivguITguLLguIcKK+C4hOC5iOC4suC4hwor4LiE4LmJ4Liy4LiHCivguITguLLguIfguITguIEKK+C4hOC4suC4h+C4hOC4geC4guC4tuC5ieC4meC4p+C4rQor4LiE4Liy4LiH4LiE4LiB4LmE4LifCivguITguYnguLLguIfguITguLLguKcKK+C4hOC5ieC4suC4h+C4hOC4t+C4mQor4LiE4LmJ4Liy4LiH4LmA4LiU4Li34Lit4LiZ4LiE4LmJ4Liy4LiH4Lib4Li1CivguITguYnguLLguIfguYDguJXguLTguYjguIcKK+C4hOC4suC4h+C4l+C4ueC4oQor4LiE4Liy4LiH4LmC4LiX4LiZCivguITguLLguIfguYDguJrguLfguK3guJkKK+C4hOC5ieC4suC4h+C4m+C4tQor4LiE4Liy4LiH4Lir4Lih4Li5CivguITguLLguIfguYDguKvguKXguLfguK3guIcKK+C4hOC4suC4lAor4LiE4Liy4LiU4LiE4Lix4LmJ4LiZCivguITguLLguJTguITguYjguLIKK+C4hOC4suC4lOC5hOC4oeC5iOC4luC4tuC4hwor4LiE4Liy4LiU4Lir4LiZ4LmJ4LiyCivguITguLLguJTguKvguKHguLHguJQKK+C4hOC5iOC4suC4leC4seC4pwor4LiE4Liy4LiW4LiyCivguITguLLguJbguLLguJ7guLHguJkKK+C4hOC4suC4luC4suC4reC4suC4hOC4oQor4LiE4Liy4LiX4Lit4Lil4Li04LiBCivguITguYjguLLguJfguLXguYgKK+C4hOC4suC4mAor4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4LihCivguITguYjguLLguJjguKPguKPguKHguYDguJnguLXguKLguKHguKjguLLguKUKK+C4hOC4suC4mQor4LiE4LmJ4Liy4LiZCivguITguLLguJnguITguK3guJTguLTguJkKK+C4hOC4suC4meC4q+C4suC4oQor4LiE4Liy4LiZ4LmJ4LiyCivguITguYjguLLguJnguYnguLMKK+C4hOC4suC4mgor4LiE4Liy4Lia4LmA4LiB4Li14LmI4Lii4LinCivguITguLLguJrguIrguLjguJQKK+C4hOC4suC4muC4peC4ueC4geC4hOC4suC4muC4lOC4reC4gQor4LiE4Liy4Lia4Lio4Li04Lil4LiyCivguITguLLguJrguKrguKHguLjguJfguKMKK+C4hOC4suC4muC5gOC4quC5ieC4mQor4LiE4LmJ4Liy4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguITguYjguLLguJvguYjguKfguKLguIHguLLguKMKK+C4hOC5iOC4suC4m+C4suC4geC5gOC4o+C4t+C4rQor4LiE4LmI4Liy4LmA4Lic4LiyCivguITguLLguJ7guKLguLjguJUKK+C4hOC5iOC4suC4oOC4suC4hOC4q+C4peC4p+C4hwor4LiE4Liy4LihCivguITguLLguKEtCivguITguLLguKHguJPguLUKK+C4hOC4suC4oeC4k+C4teC4ouC5jAor4LiE4Liy4Lih4Lig4Li14Lij4LmMCivguITguLLguKHguYLguKDguIrguIEKK+C4hOC4suC4oeC4p+C4suC4quC4tQor4LiE4Liy4Lih4Li1CivguITguLLguKIKK+C4hOC5iOC4suC4ogor4LiE4Liy4Lii4LiBCivguITguLLguKLguIEtCivguITguLLguKLguIHguITguJPguLAKK+C4hOC5iOC4suC4ouC4geC4seC4geC4geC4seC4mQor4LiE4LmI4Liy4Lii4LmA4Lii4Liy4Lin4LiK4LiZCivguITguYjguLLguKLguK3guLLguKrguLLguJ7guLHguJLguJnguLIKK+C4hOC4suC4ouC4seC4mQor4LiE4Liy4Lij4LmM4Lia4Lit4LiZCivguITguLLguKPguYzguJrguK3guJnguYTguJTguK3guK3guIHguYTguIvguJTguYwKK+C4hOC4suC4o+C5jOC4muC4reC4meC4oeC4reC4meC4reC4geC5hOC4i+C4lOC5jAor4LiE4Liy4Lij4LmM4Lia4Lit4LmA4LiZ4LiVCivguITguLLguKPguYzguJrguK3guKXguLTguIEKK+C4hOC4suC4o+C5jOC4muC4ueC5gOC4o+C5gOC4leC4reC4o+C5jAor4LiE4Liy4Lij4LmM4LmC4Lia4Lij4Lix4LiZ4LiU4Lix4LihCivguITguLLguKPguYzguYLguJrguYTguK7guYDguJTguKPguJUKK+C4hOC4suC4o+C4ngor4LiE4Liy4Lij4LihCivguITguLLguKPguKfguLAKK+C4hOC4suC4o+C4suC4hOC4suC4geC5iOC4sgor4LiE4Liy4Lij4Liy4LiE4Liy4LiL4Lix4LiHCivguITguLLguKPguLLguYDguJXguYkKK+C4hOC4suC4o+C4suC4p+C4suC4mQor4LiE4LmI4Liy4Lik4LiK4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4LihCivguITguLLguKcKK+C4hOC5iOC4suC4pwor4LiE4LmJ4Liy4LinCivguITguLLguKfguJXguK3guIcKK+C4hOC4suC4p+C4m+C4peC4sgor4LiE4Liy4Lin4Li1CivguITguLLguKfguLjguJUKK+C4hOC4suC4qgor4LiE4LmI4Liy4Liq4Lix4Lih4Lia4Li54Lij4LiT4LmMCivguITguYjguLLguKrguLTguJnguYTguKvguKHguJfguJTguYHguJfguJkKK+C4hOC5iOC4suC5gOC4quC4oeC4reC4oOC4suC4hAor4LiE4LmI4Liy4LmA4Liq4Li14Lii4Lir4Liy4LiiCivguITguYjguLLguKvguJQKK+C4hOC4suC4q+C4meC4seC4h+C4hOC4suC5gOC4guC4sgor4LiE4LmI4Liy4Lir4LiZ4LmJ4Liy4LiU4Li04LiZCivguITguYjguLLguKvguLHguKcKK+C4hOC4swor4LiE4LmI4LizCivguITguYnguLMKK+C4hOC4s+C4guC4p+C4seC4jQor4LiE4Liz4LiC4LitCivguITguLPguILguLLguJQKK+C4hOC4s+C4hOC4oQor4LiE4LmJ4Liz4LiE4LitCivguITguYjguLPguITguLfguJkKK+C4hOC4s+C4hOC4ueC5iOC4hOC4p+C4suC4oQor4LiE4LmJ4Liz4LmA4LiH4Li04LiZCivguITguYnguLPguIjguLjguJkKK+C4hOC5ieC4s+C4iuC4uQor4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguITguLPguYLguJTguJQKK+C4hOC4s+C4leC4seC5ieC4hwor4LiE4Liz4LiV4Liy4LiiCivguITguLPguJXguLTguJTguJXguYjguK0KK+C4hOC4s+C5gOC4leC4tOC4oQor4LiE4Liz4LmD4LiV4LmJCivguITguLPguYHguJbguKXguIcKK+C4hOC4s+C5geC4luC4peC4h+C4geC4suC4o+C4k+C5jAor4LiE4Liz4LiX4Liy4LiiCivguITguLPguYDguJfguLXguKLguJoKK+C4hOC4s+C4meC4p+C4kwor4LiE4Liz4LiZ4Lin4LijCivguITguLPguJnguLHguJoKK+C4hOC4s+C4meC4seC4pQor4LiE4Liz4LiZ4LizCivguITguLPguJnguLbguIcKK+C4hOC4s+C4meC4ueC4kwor4LiE4Liz4Lia4Lix4LiH4LiE4Lix4LiaCivguITguLPguYLguJrguKUKK+C4hOC5ieC4s+C4m+C4o+C4sOC4geC4seC4mQor4LiE4Liz4Lib4Lij4Liw4Liq4LihCivguITguLPguJvguKPguLLguKPguKAKK+C4hOC4s+C5gOC4m+C5h+C4mQor4LiE4Liz4Lid4Lit4LiiCivguITguLPguJ7guLTguJ7guLLguIHguKnguLIKK+C4hOC4s+C5gOC4nuC4peC4tOC4hwor4LiE4Liz4Lif4LmJ4Lit4LiHCivguITguLPguJ/guYnguK3guIfguYHguKLguYnguIcKK+C4hOC5ieC4s+C4n+C5ieC4sgor4LiE4Liz4Lih4Lix4LmI4LiZCivguITguLPguKHguLHguYjguJnguKfguYjguLLguIjguLDguYPguKvguYnguKPguLLguIfguKfguLHguKUKK+C4hOC4s+C4oeC4suC4geC4nuC4ouC4suC4h+C4hOC5jAor4LiE4Liz4Lih4Li54LilCivguITguLPguYDguKHguLfguK3guIcKK+C4hOC4s+C4o+C4mQor4LiE4Liz4Lij4LiaCivguITguLPguKPguYnguK3guIcKK+C4hOC4s+C4o+C5ieC4reC4h+C4guC4rQor4LiE4Liz4Lij4LmJ4Lit4LiH4LiX4Li44LiB4LiC4LmMCivguITguLPguKPguLLguKEKK+C4hOC4s+C4quC4uOC4oOC4suC4ngor4LiE4Liz4LmB4Liq4LiUCivguITguLPguKvguKXguKfguIcKK+C4hOC5ieC4s+C4q+C4seC4pwor4LiE4Liz4LmB4Lir4LiHCivguITguLPguYLguK3guIcKK+C4hOC4tOC4geC5hgor4LiE4Li04LiHCivguITguLTguJQKK+C4hOC4tOC4lOC4geC4suC4o+C5g+C4q+C4jeC5iAor4LiE4Li04LiU4LiE4LiUCivguITguLTguJTguITguYnguJkKK+C4hOC4tOC4lOC4leC4gQor4LiE4Li04LiU4LiW4Li24LiHCivguITguLTguJTguKHguLLguIEKK+C4hOC4tOC4lOC5gOC4peC5h+C4geC4hOC4tOC4lOC4meC5ieC4reC4ogor4LiE4Li04LiU4Liq4Lih4Lia4Lix4LiV4Li04Lia4LmJ4LiyCivguITguLTguJTguKrguLHguYnguJkKK+C4hOC4tOC4lOC4q+C4meC5ieC4suC4hOC4tOC4lOC4q+C4peC4seC4hwor4LiE4Li04LiU4LmA4Lir4LmH4LiZCivguITguLTguJTguK3guYjguLLguJkKK+C4hOC4tOC4oeC4qwor4LiE4Li04Lih4Lir4Lix4LiZ4LiV4LmMCivguITguLTguKHguKvguLLguJnguLAKK+C4hOC4tOC4o+C4tAor4LiE4Li04Lij4Li1CivguITguLTguKXguLLguJktCivguITguLTguKXguLLguJnguJvguLHguIjguIjguLHguKIKK+C4hOC4tOC4peC4suC4meC5gOC4oOC4quC4seC4igor4LiE4Li04Lil4Liy4LiZ4LiwCivguITguLTguKcKK+C4hOC4tOC5ieC4pwor4LiE4Li04LmJ4Lin4LiZ4Liy4LiHCivguITguLXguYgKK+C4hOC4teC4lQor4LiE4Li14LiV4LiB4LiwCivguITguLXguJoKK+C4hOC4teC4oQor4LiE4Li14Lij4Li1CivguITguLXguKPguLXguJrguLnguJkKK+C4hOC4tuC4gQor4LiE4Li24LmI4LiBCivguITguLbguYjguIHguYYKK+C4hOC4tuC4geC4hOC4seC4gQor4LiE4Li24LiB4LiE4Liy4LihCivguITguLfguJkKK+C4hOC4t+C4meC4hOC4swor4LiE4Li34LiZ4LiK4Li14LieCivguITguLfguJnguJTguLUKK+C4hOC4t+C4meC4leC4seC4pwor4LiE4Li34LiZ4Lii4Lix4LiH4Lij4Li44LmI4LiHCivguITguLfguJnguYPguKvguYkKK+C4hOC4t+C4mgor4LiE4Li34Lia4LiB4LmH4LiX4Liw4LmA4LilIOC4qOC4reC4geC4geC5h+C4l+C4sOC5gOC4pQor4LiE4Li34LitCivguITguLgKK+C4hOC4uOC4gQor4LiE4Li44LiB4LiB4Li14LmJCivguITguLjguIHguYDguILguYjguLIKK+C4hOC4uOC4geC4hOC4peC4suC4mQor4LiE4Li44LiB4LiE4Liy4LihCivguITguLjguIHguJ7guLLguJfguKLguYwKK+C4hOC4uOC4hOC4sAor4LiE4Li44LiHCivguITguLjguYnguIcKK+C4hOC4uOC4kwor4LiE4Li44LiTLQor4LiE4Li44LiT4LiK4Liy4LiiCivguITguLjguJPguJjguKPguKPguKEKK+C4hOC4uOC4k+C4meC4suC4oQor4LiE4Li44LiT4LiZ4Liy4LiiCivguITguLjguJPguJrguJcKK+C4hOC4uOC4k+C4nuC4tOC5gOC4qOC4qQor4LiE4Li44LiT4Lig4Liy4LieCivguITguLjguJPguKXguLHguIHguKnguJPguLAKK+C4hOC4uOC4k+C4peC4uOC4h+C4hOC4uOC4k+C4m+C5ieC4sgor4LiE4Li44LiT4Lin4Li04LmA4Lio4LipCivguITguLjguJPguKfguLjguJLguLQKK+C4hOC4uOC4k+C4qOC4seC4nuC4l+C5jAor4LiE4Li44LiT4Liq4Lih4Lia4Lix4LiV4Li0CivguITguLjguJPguKvguI3guLTguIcKK+C4hOC4uOC4k+C4suC4geC4owor4LiE4Li44LiT4Li54Lib4LiB4Liy4LijCivguITguLjguYLguJPguJvguIHguLLguKMKK+C4hOC4uOC4lAor4LiE4Li44LiU4LiE4Li54LmJCivguITguLjguJTguJfguLDguKPguLLguJQKK+C4hOC4uOC4lOC4l+C4sOC4o+C4suC4lOC5gOC4q+C4ouC4teC4ouC4muC4geC4o+C4p+C4lAor4LiE4Li44LiVCivguITguLjguJXguJXguLQKK+C4hOC4uOC5iOC4mQor4LiE4Li44LmJ4LiZCivguITguLjguYnguJnguYDguITguKIKK+C4hOC4uOC4mwor4LiE4Li44Lib4LiV4LmMCivguITguLjguJvguJXguLQKK+C4hOC4uOC4oQor4LiE4Li44LmI4LihCivguITguLjguYnguKEKK+C4hOC4uOC5ieC4oeC4geC4seC4mQor4LiE4Li44Lih4LiB4Liz4LmA4LiZ4Li04LiUCivguITguLjguYnguKHguYDguIHguKPguIcKK+C4hOC4uOC5ieC4oeC4hOC4o+C4reC4hwor4LiE4Li44Lih4LmB4LiE4LmJ4LiZCivguITguLjguKHguYDguIrguLTguIcKK+C4hOC4uOC5ieC4oeC4lOC4teC4hOC4uOC5ieC4oeC4o+C5ieC4suC4ogor4LiE4Li44LmJ4Lih4LmA4LiX4LmJ4LiyCivguITguLjguYnguKHguYLguJfguKkKK+C4hOC4uOC4oeC4mOC4suC4leC4uAor4LiE4Li44Lih4LiZ4Li44LihCivguITguLjguKHguJ3guK3guKIKK+C4hOC4uOC5ieC4oeC4q+C5ieC4suC4oQor4LiE4Li44LiiCivguITguLjguYnguKIKK+C4hOC4uOC5ieC4ouC5gOC4guC4teC5iOC4ogor4LiE4Li44Lii4LiK4LmJ4Liy4LiHCivguITguLjguKLguKstCivguITguLjguKLguKvguJDguLLguJkKK+C4hOC4uOC4ouC4q+C4m+C4o+C4sOC5gOC4l+C4qAor4LiE4Li44Lii4Lir4Lij4Lir4Lix4Liq4Lii4LmMCivguITguLjguKPguLgKK+C4hOC4uOC4o+C4uOC4geC4o+C4o+C4oQor4LiE4Li44Lij4Li44Lin4Liy4LijCivguITguLjguKPguLjguKjguLbguIHguKnguLIKK+C4hOC4uOC4peC4sgor4LiE4Li44Lil4Liy4LiL4LmI4Lit4LiZ4Lil4Li54LiBCivguITguLjguKXguLTguIHguYjguLIKK+C4hOC4uOC4peC4teC4geC4suC4owor4LiE4Li44Lir4LiyCivguITguLkKK+C4hOC4ueC5iAor4LiE4Li54LmJCivguITguLnguYjguIHguKPguJPguLUKK+C4hOC4ueC5iOC4guC4sgor4LiE4Li54LmI4LmB4LiC4LmI4LiHCivguITguLnguYjguITguKPguK3guIcKK+C4hOC4ueC5iOC4hOC4p+C4owor4LiE4Li54LmI4LiE4Lin4Liy4LihCivguITguLnguYjguITguKfguLLguKHguKPguYjguKfguKEKK+C4hOC4ueC5iOC4hOC4tOC4lAor4LiE4Li54LmI4LiE4Li14LmICivguITguLnguYjguYDguITguLXguKLguIcKK+C4hOC4ueC5iOC5guC4hAor4LiE4Li54LmI4LmD4LiICivguITguLnguYjguInguJrguLHguJoKK+C4hOC4ueC5iOC4ieC4teC4gQor4LiE4Li54LmI4LiK4Lix4LiBCivguITguLnguYjguIrguLXguJ4KK+C4hOC4ueC5iOC4iuC4teC4p+C4tOC4lQor4LiE4Li54LiTCivguITguLnguJPguKPguYjguKfguKHguJnguYnguK3guKIKK+C4hOC4ueC4lgor4LiE4Li54LmI4LiX4Li44LiB4LiC4LmM4LiE4Li54LmI4Lii4Liy4LiBCivguITguLnguJkKK+C4hOC4ueC5ieC4muC4seC4peC4peC4seC4h+C4geC5jAor4LiE4Li54LmI4Lia4LmJ4Liy4LiZ4LiE4Li54LmI4LmA4Lih4Li34Lit4LiHCivguITguLnguYjguJrguLLguKPguKHguLUKK+C4hOC4ueC5iOC4muC4uOC4jQor4LiE4Li54LmI4Lib4Lij4Lib4Lix4LiB4Lip4LmMCivguITguLnguYjguJvguKPguLHguJoKK+C4hOC4ueC4m+C4reC4hwor4LiE4Li54LmI4Lic4Liq4LihCivguITguLnguYjguJzguLHguKfguJXguLHguKfguYDguKHguLXguKIKK+C4hOC4ueC5iOC4nuC4o+C4sOC4hOC4ueC5iOC4meC4suC4hwor4LiE4Li54LmI4Lie4Li04Lie4Liy4LiXCivguITguLnguYjguKHguYnguLIKK+C4hOC4ueC5iOC4oeC4tOC4leC4owor4LiE4Li54LmI4Lih4Li34LitCivguITguLnguYjguKLguLLguIEKK+C4hOC4ueC5iOC4o+C4seC4gQor4LiE4Li54LmA4Lij4Li14Lii4LiH4LiE4Li54Lij4Liy4LiiCivguITguLnguYjguYDguKPguLXguKLguIfguYDguITguLXguKLguIfguKvguKHguK3guJkKK+C4hOC4ueC5gOC4o+C4teC4ouC4oQor4LiE4Li54LmI4Lil4Liz4LiU4Lix4LiaCivguITguLnguYjguKjguLHguJXguKPguLkKK+C4hOC4ueC5iOC4quC4o+C5ieC4suC4hwor4LiE4Li54LmI4Liq4Lin4LiUCivguITguLnguYjguKrguLHguI3guI3guLIKK+C4hOC4ueC5iOC4quC4suC4ouC5guC4l+C4o+C4qOC4seC4nuC4l+C5jAor4LiE4Li54LmI4Lir4Lih4Lix4LmJ4LiZCivguITguLnguKvguLIKK+C4hOC4ueC5iOC4q+C4uQor4LiE4Li54LmI4LmB4Lir4LmICivguITguLnguYjguK3guKPguLQKK+C4hOC4ueC5iOC4reC4suC4huC4suC4lQor4LiE4Li54LmI4Lit4Liy4Lio4Lix4LiiCivguYDguITguYnguIEKK+C5gOC4hOC5ieC5gOC4geC5iQor4LmA4LiE4LmJ4LiHCivguYDguITguIjguIkKK+C5gOC4hOC4k+C4keC4sAor4LmA4LiE4LiUCivguYDguITguJkKK+C5gOC4hOC5ieC4mQor4LmA4LiE4LmA4Lia4Li04LilCivguYDguITguYfguKEKK+C5gOC4hOC4oeC4tQor4LmA4LiE4Lih4Li14Lig4Lix4LiT4LiR4LmMCivguYDguITguKHguLXguK3guJnguLTguJnguJfguKPguLXguKLguYwKK+C5gOC4hOC4oeC4teC4reC4tOC4meC4l+C4o+C4teC4ouC5jAor4LmA4LiE4LiiCivguYDguITguKLguJXguLHguKcKK+C5gOC4hOC4ouC4m+C4suC4gQor4LmA4LiE4Lii4Lih4Li34LitCivguYDguITguKPguIcKK+C5gOC4hOC4o+C5iOC4hwor4LmA4LiE4Lij4LmI4LiH4LiC4Lij4Li24LihCivguYDguITguKPguYjguIfguITguKPguLHguJQKK+C5gOC4hOC4o+C4h+C4hOC4o+C4sgor4LmA4LiE4Lij4LiH4LiE4Lij4LizCivguYDguITguKPguIfguITguKPguYjguLMKK+C5gOC4hOC4o+C4h+C4hOC4o+C4t+C5ieC4mQor4LmA4LiE4Lij4LmI4LiH4LmA4LiE4Lij4Li14Lii4LiUCivguYDguITguKPguIfguYDguITguKPguLXguKLguKcKK+C5gOC4hOC4o+C4lOC4tOC4lQor4LmA4LiE4Lij4LiU4Li04LiV4Lif4Lit4LiH4LiL4Li04LmA4Lit4Lij4LmMCivguYDguITguKPguJkKK+C5gOC4hOC4o+C4sgor4LmA4LiE4Lij4LmI4LiyCivguYDguITguKPguLLguYHguJ7guLAKK+C5gOC4hOC4o+C4suC4q+C4k+C4tQor4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguYDguITguKPguLLguLDguKvguYzguKvguLLguKHguKLguLLguKHguKPguYnguLLguKIKK+C5gOC4hOC4o+C4teC4ouC4lAor4LmA4LiE4Lij4Li14Lii4LinCivguYDguITguKPguLfguK0KK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4sgor4LmA4LiE4Lij4Li34Lit4LmA4LiC4Liy4LiZ4LmJ4LizCivguYDguITguKPguLfguK3guYDguILguLLguKHguKfguIEKK+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiB4LilCivguYDguITguKPguLfguYjguK3guIfguIHguLHguJPguJHguYwKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4geC4tOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmB4LiB4LiHCivguYDguITguKPguLfguYjguK3guIfguYDguILguLTguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4hOC4o+C4seC4pwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiE4Lin4Lia4LmB4LiZ4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguITguLnguYgKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4hOC4o+C4sgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiH4Li04LiZCivguYDguITguKPguLfguYjguK3guIfguIjguLHguIHguKMKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4iuC5iOC4p+C4h+C4peC5iOC4suC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiL4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguJTguJnguJXguKPguLUKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4leC5ieC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiV4Lix4LmJ4LiHCivguYDguITguKPguLfguYjguK3guIfguJfguK3guIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4l+C4reC4h+C4l+C4tOC4qAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiX4Lit4LiH4LiZ4LmJ4Lit4LiiCivguYDguITguKPguLfguYjguK3guIfguYDguJfguKgKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5g+C4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lia4LiZCivguYDguITguKPguLfguYjguK3guIfguJrguLHguJnguJfguLbguIHguYDguKrguLXguKLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4muC4tOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lia4Li54LiK4LiyCivguYDguITguKPguLfguYjguK3guIfguYHguJrguJoKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4m+C4o+C4sOC4lOC4seC4mgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lib4Lij4Li44LiHCivguYDguITguKPguLfguYjguK3guIfguJvguLHguYnguJnguJTguLTguJnguYDguJzguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4nOC4ueC4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lih4Lix4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguKHguLfguK0KK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4ouC4meC4leC5jAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lii4LiZ4LiV4LmM4LmE4Lit4Lie4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguKPguYjguK3guJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4o+C4suC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lij4Liy4LiK4Lit4Li04Liq4Lij4Li04Lii4Liy4Lig4Lij4LiT4LmMCivguYDguITguKPguLfguYjguK3guIfguKPguYjguLMKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4o+C4t+C4reC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lil4LmI4Liy4LiHCivguYDguITguKPguLfguYjguK3guIfguYDguKXguYjguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4p+C5iOC4suC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4LiUCivguYDguITguKPguLfguYjguK3guIfguKrguLDguJTguLjguYnguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4seC4mgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Liy4LiiCivguYDguITguKPguLfguYjguK3guIfguKrguLPguK3guLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4uOC4geC4s+C4qOC4ngor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Li54LiHCivguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4oeC4suC4ouC4geC4suC4o+C4hOC5ieC4sgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lii4Lin4LiBCivguYDguITguKPguLfguYjguK3guIfguKvguKXguLHguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C5ieC4sgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4Lir4Lil4LmH4LiBCivguYDguITguKPguLfguYjguK3guIfguYPguKvguI3guYgKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4reC4seC4h+C4l+C4o+C4suC4ogor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lit4Lix4LiH4LiZ4LmJ4LizCivguYDguITguKPguLfguK3guIjguLHguIHguKPguKDguJ4KK+C5gOC4hOC4o+C4t+C4reC4lOC4tOC4mQor4LmA4LiE4Lij4Li34Lit4LmB4Lii4LmI4LiHCivguYDguITguKPguLfguK3guKPguLHguJAKK+C5gOC4hOC4o+C4t+C4reC4p+C4seC4peC4ouC5jOC4nuC4seC4meC5hOC4oeC5iQor4LmA4LiE4Lil4LmJ4LiHCivguYDguITguKXguYfguJQKK+C5gOC4hOC4peC5ieC4mQor4LmA4LiE4Lil4LmJ4LiyCivguYDguITguKXguYjguLLguITguKXguYjguK3guIcKK+C5gOC4hOC4peC5ieC4suC4hOC4peC4tuC4hwor4LmA4LiE4Lil4LmJ4Liy4LmA4LiE4Lil4Li14LiiCivguYDguITguKXguLTguJrguYDguITguKXguLTguYnguKEKK+C5gOC4hOC4peC4tOC5ieC4oQor4LmA4LiE4Lil4Li14LiiCivguYDguITguKXguLXguKLguITguKXguK0KK+C5gOC4hOC4peC4teC5ieC4ouC4hOC4peC4tOC4hwor4LmA4LiE4Lil4Li14Lii4LmA4LiE4Lil4LmJ4LiyCivguYDguITguKXguLfguYjguK3guJkKK+C5gOC4hOC4peC4t+C5iOC4reC4meC4hOC4peC4suC4lAor4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LiX4Li14LmICivguYDguITguKXguLfguYjguK3guJnguYTguKvguKcKK+C5gOC4hOC4peC4t+C4reC4mgor4LmA4LiE4Lil4Li34Lit4Lia4LiE4Lil4Li44LihCivguYDguITguKXguLfguK3guJrguYHguITguKXguIcKK+C5gOC4hOC4peC4t+C4reC4muC5geC4neC4hwor4LmA4LiE4Lil4Li34Lit4Lia4Lif4Lix4LiZCivguYDguITguKfguYnguIcKK+C5gOC4hOC4p+C5ieC4h+C4hOC4p+C5ieC4suC4hwor4LmA4LiE4LirLQor4LmA4LiE4Lir4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguITguKvguYDguKjguKPguKnguJDguKjguLLguKrguJXguKPguYwKK+C5gOC4hOC4q+C4quC4luC4suC4mQor4LmA4LiE4Lir4LiwCivguYDguITguKvguLIKK+C5gOC4hOC4reC4ogor4LmA4LiE4Lit4LiwCivguYDguITguLIKK+C5gOC4hOC5ieC4sgor4LmA4LiE4LmJ4Liy4LmC4LiE4Lij4LiHCivguYDguITguYnguLLguYDguIfguLfguYjguK3guJkKK+C5gOC4hOC4suC4meC5jOC5gOC4leC4reC4o+C5jAor4LmA4LiE4LmJ4Liy4Lih4Li54LilCivguYDguITguLLguKPguJ4KK+C5gOC4hOC5ieC4suC4quC4meC4suC4oeC4q+C4peC4p+C4hwor4LmA4LiE4Liy4LiwCivguYDguITguLLguLDguYHguITguLAKK+C5gOC4hOC4teC5ieC4ogor4LmA4LiE4Li14Lii4LiHCivguYDguITguLXguKLguIfguJrguYjguLLguYDguITguLXguKLguIfguYTguKvguKXguYgKK+C5gOC4hOC4teC4ouC4lAor4LmA4LiE4Li14Lii4LiU4LmB4LiE4LmJ4LiZCivguYDguITguLXguKLguJkKK+C5gOC4hOC4teC4ouC4oQor4LmA4LiE4Li14LmI4Lii4LihCivguYDguITguLXguYjguKLguKHguITguLDguJnguK3guIcKK+C5gOC4hOC4teC4ouC4owor4LmA4LiE4Li14Lii4LinCivguYDguITguLXguYjguKLguKcKK+C5gOC4hOC4teC5ieC4ouC4pwor4LmA4LiE4Li14LmI4Lii4Lin4LiC4Lix4LiZCivguYDguITguLXguYjguKLguKfguILguLHguJoKK+C5gOC4hOC4teC5iOC4ouC4p+C5gOC4guC5h+C4jQor4LmA4LiE4Li14LmJ4Lii4Lin4Lif4Lix4LiZCivguYDguITguLXguYnguKLguKfguYDguK3guLfguYnguK3guIcKK+C5gOC4hOC4t+C5ieC4rQor4LmA4LiE4Li34Lit4LiHCivguYHguIQKK+C5geC4hOC5iAor4LmB4LiE4LmJCivguYHguITguYHguIHguKUKK+C5geC4hOC4lOC5gOC4oeC4teC4ouC4oQor4LmB4LiE4LmH4LiV4LiV4Liy4Lil4LmH4Lit4LiBCivguYHguITguYHguJXguKMKK+C5geC4hOC5guC4l+C4lAor4LmB4LiE4LiZCivguYHguITguYjguJkKK+C5geC4hOC5ieC4mQor4LmB4LiE4LmJ4LiZ4LiE4LitCivguYHguITguYjguJnguYHguITguLAKK+C5geC4hOC5iOC4meC5hOC4hOC5iQor4LmB4LiE4LiaCivguYHguITguJrguKvguKHguLkKK+C5geC4hOC4m+C4i+C4ueC4pQor4LmB4LiE4Lid4Lij4Lix4LmI4LiHCivguYHguITguJ3guK3guKIKK+C5geC4hOC4oQor4LmB4LiE4Lij4LmICivguYHguITguKPguIEKK+C5geC4hOC4o+C4hOC4o+C4seC5iOC4hwor4LmB4LiE4Lij4LiHCivguYHguITguKPguIfguYDguITguKPguLXguKLguKcKK+C5geC4hOC4o+C4sAor4LmB4LiE4Lil4LiE4Li54Lil4Lix4LiqCivguYHguITguKXguIcKK+C5geC4hOC4peC4h+C5g+C4iAor4LmB4LiE4Lil4LmA4LiL4Li14Lii4LihCivguYHguITguKXguYDguIvguLXguKLguKHguITguLLguKPguYzguYTguJrguJTguYwKK+C5geC4hOC4peC5gOC4i+C4teC4ouC4oeC5hOC4i+C4hOC4peC4suC5gOC4oeC4lQor4LmB4LiE4Lil4LiZCivguYHguITguKXguYnguKcKK+C5geC4hOC4peC5iOC4p+C4hOC4peC5iOC4reC4hwor4LmB4LiE4Lil4LmJ4Lin4LiE4Lil4Liy4LiUCivguYHguITguKXguK3guKPguLUKK+C5geC4hOC4peC4tOC4n+C4reC4o+C5jOC5gOC4meC4teC4ouC4oQor4LmB4LiE4LmB4LilCivguYHguITguKcKK+C5geC4hOC4p+C4gQor4LmB4LiE4Lin4LmJ4LiHCivguYHguITguKfguYnguJkKK+C5geC4hOC5geC4quC4lAor4LmB4LiE4LiwCivguYHguITguLDguYTguITguYkKK+C5guC4hAor4LmC4LiE4LiBCivguYLguITguIHguIHguKPguLDguKrguLjguJkKK+C5guC4hOC4geC4geC4o+C4sOC4reC4reC4oQor4LmC4LiE4LiB4Lih4LmJ4LiyCivguYLguITguYHguIHguYjguIrguK3guJrguIHguLTguJnguKvguI3guYnguLLguK3guYjguK3guJkKK+C5guC4hOC4hOC4peC4suC4mQor4LmC4LiE4LmA4LiE4LiZCivguYLguITguYjguIcKK+C5guC4hOC5ieC4hwor4LmC4LiE4LiI4LijCivguYLguITguIjguKMtCivguYLguITguIjguKPguITguLLguKEKK+C5guC4hOC5gOC4i+C5geC4hOC4meC4leC5jAor4LmC4LiE4LmE4LiL4LiZ4LmMCivguYLguITguJXguKMKK+C5guC4hOC4leC4oy0KK+C5guC4hOC4leC4o+C4oOC4uQor4LmC4LiE4LiV4Lij4Lig4Li54LiN4Liy4LiTCivguYLguITguYDguJbguKXguLTguIcKK+C5guC4hOC5geC4l+C4meC5gOC4iOC4meC4leC5jAor4LmC4LiE4LiY4LiyCivguYLguITguJkKK+C5guC4hOC5iOC4mQor4LmC4LiE4LiZ4LiU4Li04LiZ4Liq4LitCivguYLguITguJnguJXguLLguKLguJvguKXguLLguKLguYDguJvguYfguJkKK+C5guC4hOC4meC4oQor4LmC4LiE4LiZ4Liq4Lih4LitCivguYLguITguJrguK3guKXguJXguYwKK+C5guC4hOC4muC4suC4pQor4LmC4LiE4Lia4Li44LiV4LijCivguYLguITguJvguJzguIHguLAKK+C5guC4hOC5gOC4nuC4peC4suC4sAor4LmC4LiE4LmE4Lie4LijCivguYLguITguKEKK+C5guC4hOC4oeC4lOC4reC4geC5hOC4oeC5iQor4LmC4LiE4Lih4LiV4Liy4Lin4Lix4LinCivguYLguITguKHguKXguK3guKIKK+C5guC4hOC4oeC5gOC4p+C4teC4ouC4mQor4LmC4LiE4Lih4Lix4LiiCivguYLguITguKHguYjguLIKK+C5guC4hOC4oeC4ueC4leC4owor4LmC4LiE4Lij4LiBCivguYLguITguKPguIHguITguKPguK3guIEKK+C5guC4hOC4o+C4geC4hOC4o+C4suC4gQor4LmC4LiE4Lij4LiHCivguYLguITguKPguYjguIcKK+C5guC4hOC4o+C4h+C4geC4suC4owor4LmC4LiE4Lij4LmI4LiH4LiE4Lij4LmI4Liy4LiHCivguYLguITguKPguIfguYHguITguKMKK+C5guC4hOC4o+C4h+C4iOC4oeC4ueC4gQor4LmC4LiE4Lij4LiH4LmA4Lij4Li34LmI4Lit4LiHCivguYLguITguKPguIfguKrguKPguYnguLLguIcKK+C5guC4hOC4o+C4oQor4LmC4LiE4Lij4Lih4LiE4Lij4Liy4LihCivguYLguITguKPguYDguKHguLXguKLguKEKK+C5guC4hOC4o+C5guC4oeC5guC4i+C4oQor4LmC4LiE4Lij4LiqCivguYLguITguKPguLLguIoKK+C5guC4hOC4o+C4swor4LmC4LiE4LmC4Lij4LiECivguYLguITguKUKK+C5guC4hOC4peC4hwor4LmC4LiE4Lil4LiH4LmA4LiE4Lil4LiHCivguYLguITguKXguJkKK+C5guC4hOC4p+C4leC4sgor4LmC4LiE4Lin4Li04LiW4Li1CivguYLguITguKjguLHguJ7guJfguYwKK+C5guC4hOC4reC4reC4o+C5jOC4lOC4tOC5gOC4meC4lQor4LmD4LiE4LijCivguYPguITguKPguYgKK+C5g+C4hOC4o+C5iOC4hOC4o+C4p+C4jQor4LmE4LiECivguYTguITguYkKK+C5hOC4hOC4o+C5iQor4LmE4LiE4Lij4LmJ4LmA4LiE4Lij4Li34LitCivguYTguITguKUKK+C5hOC4hOC4peC5iQor4LiFCivguIYKK+C4huC4mQor4LiG4Lij4Liy4Lin4Liy4LiqCivguIbguYnguK3guIcKK+C4huC5ieC4reC4h+C4geC4o+C4sOC5geC4lQor4LiG4LmJ4Lit4LiH4LiK4Lix4LiiCivguIbguYnguK3guIfguJvguLLguIHguYHguJXguIEKK+C4huC5ieC4reC4h+C4p+C4hwor4LiG4LmJ4Lit4LiH4Liq4Liy4Lih4Lii4LmI4Liy4LiZCivguIbguYnguK3guIfguKvguLjguYjguKIKK+C4huC5ieC4reC4h+C5gOC4q+C4oeC5iOC4hwor4LiG4LmJ4Lit4LiH4LmC4Lir4Lih4LmI4LiHCivguIbguYjguLIKK+C4huC5iOC4suC4hOC4p+C4suC4ouC4reC4ouC5iOC4suC5gOC4quC4teC4ouC4lOC4suC4ouC4nuC4o+C4tOC4gQor4LiG4Liy4LiPCivguIbguLLguJUKK+C4huC4suC4lS0KK+C4huC4suC4leC4geC4owor4LiG4Liy4LiV4LiB4Lij4Lij4LihCivguIbguLLguJkKK+C4huC4suC4mS0KK+C4huC4suC4meC4m+C4o+C4sOC4quC4suC4lwor4LiG4LmI4Liy4LmE4Lih4LmI4LiV4Liy4Lii4LiC4Liy4Lii4LmE4Lih4LmI4LiC4Liy4LiUCivguYDguIbguLXguYjguKLguJkKK+C5guC4huC4o+C4p+C4tOC4qgor4LmC4LiG4Lip4LiBCivguYLguIbguKnguJPguLIKK+C5guC4huC4qeC4k+C4suC4geC4suC4owor4LmC4LiG4Lip4LiT4Liy4LiK4Lin4LiZ4LmA4LiK4Li34LmI4LitCivguYLguIbguKnguLAKK+C5guC4huC4qeC4tOC4lQor4LiHCivguIfguIEKK+C4h+C4geC5gOC4h+C4tOC5iOC4mQor4LiH4LiB4LmGIOC5gOC4h+C4tOC5iOC4meC5hgor4LiH4LiHCivguIfguIfguIfguKfguKIKK+C4h+C4h+C4h+C4seC4mQor4LiH4LiH4Li04LiUCivguIfguJQKK+C4h+C4lOC4h+C4suC4oQor4LiH4LiaCivguIfguJrguJTguLjguKUKK+C4h+C4muC4m+C4o+C4sOC4oeC4suC4kwor4LiH4LihCivguIfguKHguYDguILguYfguKHguYPguJnguKHguKvguLLguKrguKHguLjguJfguKMKK+C4h+C4oeC5guC4guC5iOC4hwor4LiH4Lih4LiH4Liy4LiiCivguIfguKfguIcKK+C4h+C5iOC4p+C4hwor4LiH4LmI4Lin4LiH4LiH4Li44LiZCivguIfguKfguIfguIrguYnguLLguIcKK+C4h+C5iOC4p+C4h+C5gOC4q+C4h+C4sgor4LiH4LmI4Lin4LiH4LmA4Lir4LiH4Liy4Lir4Liy4Lin4LiZ4Lit4LiZCivguIfguKfguJQKK+C4h+C5iOC4p+C4mQor4LiH4LmJ4Lin4LiZCivguIfguKfguKLguIfguIcKK+C4h+C4rQor4LiH4LmJ4LitCivguIfguK3guIEKK+C4h+C4reC4geC4h+C4suC4oQor4LiH4Lit4LiB4LmA4LiH4LiiCivguIfguK3guIHguYHguIfguIEKK+C4h+C4reC4geC5iOC4reC4h+C4reC4guC4tOC4hwor4LiH4LmI4Lit4LiHCivguIfguYjguK3guIfguYHguIfguYjguIcKK+C4h+C5ieC4reC4h+C4reC4mQor4LiH4Lit4LmB4LiHCivguIfguK3guJQKK+C4h+C4reC4lOC5geC4h+C4lAor4LiH4Lit4LiZCivguIfguYjguK3guJkKK+C4h+C4reC4meC4h+C5ieC4rQor4LiH4LmI4Lit4LiZ4LmB4LiH4LmI4LiZCivguIfguK3guJnguYTguJYKK+C4h+C4reC4meC4q+C4h+C5iOC4rQor4LiH4LmJ4Lit4LiZ4Lir4Lih4Li5CivguIfguK3guJoKK+C4h+C4reC4oQor4LiH4LmJ4Lit4LihCivguIfguK3guKHguYHguIfguKEKK+C4h+C4reC4oeC4nuC4o+C4sOC4o+C4suC4oQor4LiH4Lit4Lih4Li34Lit4LiH4Lit4LiV4Li14LiZCivguIfguK3guKIKK+C4h+C5iOC4reC4ogor4LiH4LmI4Lit4Lii4LmA4Lib4Lil4Li14LmJ4Lii4LmA4Liq4Li14Lii4LiC4LiyCivguIfguK3guKvguLLguKIKK+C4h+C4sAor4LiH4Lix4LiB4LmGCivguIfguLHguYjguIHguYYKK+C4h+C4seC4h+C5hgor4LiH4Lix4LmI4LiHCivguIfguLHguJQKK+C4h+C4seC4lOC4guC5ieC4rQor4LiH4Lix4LiZCivguIfguLHguJnguIfguIEKK+C4h+C4seC4mgor4LiH4Lix4Lia4LmB4LiHCivguIfguLHguKcKK+C4h+C4seC5iOC4pwor4LiH4Lix4Lin4LmA4LiH4Li14LiiCivguIfguLHguKfguIvguLHguIcKK+C4h+C4seC4p+C5gOC4peC4teC4ogor4LiH4LiyCivguIfguYjguLIKK+C4h+C4suC4geC4s+C4iOC4suC4ogor4LiH4Liy4LmA4LiE4Lij4Li34LitCivguIfguYnguLLguIcKK+C4h+C5iOC4suC5gOC4h+C4ogor4LiH4Liy4LiK4LmJ4Liy4LiHCivguIfguLLguYHguIvguIcKK+C4h+C4suC5hOC4iwor4LiH4Liy4LiV4Lix4LiUCivguIfguLLguJkKK+C4h+C5iOC4suC4mQor4LiH4Liy4LiZ4LiB4Liy4LijCivguIfguLLguJnguKvguKXguKfguIfguYTguKHguYjguYPguKvguYnguILguLLguJQg4LiH4Liy4LiZ4Lij4Liy4Lip4LiO4Lij4LmM4LmE4Lih4LmI4LmD4Lir4LmJ4LmA4Liq4Li14LiiCivguIfguLLguJrguYYKK+C4h+C4suC4oQor4LiH4LmI4Liy4LihCivguIfguLLguKHguIfguK3guJkKK+C4h+C4suC4oeC5geC4h+C4sAor4LiH4LmI4Liy4Lih4LiW4LmI4LitCivguIfguLLguKHguKvguJnguYnguLIKK+C4h+C4suC4ogor4LiH4LmI4Liy4LiiCivguIfguYjguLLguKLguYYKK+C4h+C5iOC4suC4ouC4lOC4suC4ogor4LiH4LmI4Liy4Lii4LmJ4Lit4LiiCivguIfguLLguKXguLHguYjguKcKK+C4h+C5ieC4suC4pwor4LiH4Liy4Liq4Liy4LiZCivguIfguLMKK+C4h+C5iOC4swor4LiH4LmI4Liz4LmGCivguIfguYnguLMKK+C4h+C4tOC5ieC4pwor4LiH4Li14LiaCivguIfguLbguIHguYYKK+C4h+C4tuC4mQor4LiH4Li24LihCivguIfguLbguKHguIfguLMKK+C4h+C4uOC4lAor4LiH4Li44LiU4LmGCivguIfguLjguJnguIfguIcKK+C4h+C4uOC5iOC4meC4h+C5iOC4suC4mQor4LiH4Li44LiaCivguIfguLjguJrguYYKK+C4h+C4uOC4muC4h+C4tOC4mgor4LiH4Li44LmJ4LihCivguIfguLjguYjguKHguIfguYjguLLguKEKK+C4h+C4uOC4ogor4LiH4Li5CivguIfguLnguIHguKXguLfguJnguKvguLLguIcKK+C4h+C4ueC4geC4tOC4meC4q+C4suC4hwor4LiH4Li54LiaCivguIfguLnguYYg4Lib4Lil4Liy4LmGCivguIfguLnguJzguLnguYkKK+C4h+C4ueC5gOC4oeC4teC4ogor4LiH4Li54Liq4Lin4Lix4LiUCivguIfguLnguYjguKvguJnguLUKK+C4h+C4ueC5gOC4q+C4peC4t+C4reC4oQor4LiH4Li54LmA4Lir4LmI4LiyCivguYDguIfguYkKK+C5gOC4h+C4gQor4LmA4LiH4LmH4LiZCivguYDguIfguKIKK+C5gOC4h+C4ouC4q+C4meC5ieC4suC4reC5ieC4suC4m+C4suC4gQor4LmA4LiH4Lit4LiwCivguYDguIfguK3guLDguIfguLAKK+C5gOC4h+C4sgor4LmA4LiH4Liy4LmGCivguYDguIfguYjguLIKK+C5gOC4h+C5ieC4sgor4LmA4LiH4LmJ4Liy4LiH4Lit4LiUCivguYDguIfguYnguLLguYYg4LiH4Lit4LiU4LmGCivguYDguIfguLLguJXguLLguKHguJXguLHguKcKK+C5gOC4h+C4suC4oeC4seC4pwor4LmA4LiH4Liy4Lih4Li34LiUCivguYDguIfguLLguLAKK+C5gOC4h+C4suC4sOC4m+C5iOC4sgor4LmA4LiH4Li04LiZCivguYDguIfguLTguJnguIHguYnguJnguJbguLjguIcKK+C5gOC4h+C4tOC4meC4geC5ieC4reC4mQor4LmA4LiH4Li04LiZ4LiB4Li54LmJCivguYDguIfguLTguJnguYDguIrguLfguYjguK0KK+C5gOC4h+C4tOC4meC4lOC4suC4p+C4meC5jAor4LmA4LiH4Li04LiZ4LmA4LiU4Li34Lit4LiZCivguYDguIfguLTguJnguYHguJTguIcKK+C5gOC4h+C4tOC4meC5hOC4lOC5ieC4geC4s+C4muC4seC4hwor4LmA4LiH4Li04LiZ4LiV4LmJ4LiZCivguYDguIfguLTguJnguJXguKPguLIKK+C5gOC4h+C4tOC4meC4leC4suC4ogor4LmA4LiH4Li04LiZ4LiX4Lit4LiH4LiV4Lij4LiyCivguYDguIfguLTguJnguJfguK3guJkKK+C5gOC4h+C4tOC4meC4meC4reC4mQor4LmA4LiH4Li04LiZ4LiZ4LmJ4Liz4Lir4LmJ4Liy4LiZ4LmJ4Liz4Lir4LiBCivguYDguIfguLTguJnguJvguKXguLXguIEKK+C5gOC4h+C4tOC4meC4m+C4seC4meC4nOC4pQor4LmA4LiH4Li04LiZ4Lib4Liy4LiB4LiW4Li44LiHCivguYDguIfguLTguJnguJvguLLguIHguJzguLUKK+C5gOC4h+C4tOC4meC4m+C4tQor4LmA4LiH4Li04LiZ4LmB4LibCivguYDguIfguLTguJnguJzguYjguK3guJkKK+C5gOC4h+C4tOC4meC4neC4t+C4lAor4LmA4LiH4Li04LiZ4LmA4Lif4LmJ4LitCivguYDguIfguLTguJnguKHguLjguYjguJkKK+C5gOC4h+C4tOC4meC4ouC4p+C4hwor4LmA4LiH4Li04LiZ4LmA4Lii4Lit4Lij4Lih4Lix4LiZCivguYDguIfguLTguJnguKPguYnguK3guJkKK+C5gOC4h+C4tOC4meC4o+C4suC4ouC4m+C4tQor4LmA4LiH4Li04LiZ4Liq4LiUCivguYDguIfguLTguJnguKrguYDguJXguK3guKPguYzguKXguLTguIcKK+C5gOC4h+C4tOC4meC4q+C4peC4p+C4hwor4LmA4LiH4Li04LiZ4LmB4Lir4LmJ4LiHCivguYDguIfguLXguYjguKLguIcKK+C5gOC4h+C4teC5iOC4ouC4mQor4LmA4LiH4Li14Lii4LiaCivguYDguIfguLXguKLguJrguIHguKPguLTguJoKK+C5gOC4h+C4teC4ouC4muC5gOC4iuC4teC4ouC4mgor4LmA4LiH4Li14Lii4Lia4LmA4Lib4LmH4LiZ4LmA4Lib4LmI4Liy4Liq4Liy4LiBCivguYDguIfguLXguKLguJrguYDguKvguIfguLIKK+C5gOC4h+C4teC5ieC4ouC4pwor4LmA4LiH4Li14LmJ4Lii4Lin4Lij4Liw4LmA4Lij4Li04LiHCivguYDguIfguLXguYnguKLguKfguKPguLPguKXguLbguIEKK+C5gOC4h+C4teC5iOC4ouC4q+C4uQor4LmA4LiH4Li34LmJ4LitCivguYDguIfguLfguK3guIEKK+C5gOC4h+C4t+C5iOC4reC4hwor4LmA4LiH4Li34LmI4Lit4LiH4LmGCivguYDguIfguLfguYjguK3guIfguKvguIfguK3guKIKK+C5gOC4h+C4t+C5ieC4reC4h+C5iOC4suC4o+C4suC4hOC4suC5geC4nuC4hwor4LmA4LiH4Li34Lit4LiUCivguYDguIfguLfguK3guJTguIfguJQKK+C5gOC4h+C4t+C4reC4lOC5gOC4h+C4t+C5ieC4rQor4LmA4LiH4Li34Lit4LiZCivguYDguIfguLfguYjguK3guJkKK+C5gOC4h+C4t+C5iOC4reC4meC5hOC4ggor4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4Lia4Lix4LiH4LiE4Lix4Lia4LiB4LmI4Lit4LiZCivguYDguIfguLfguYjguK3guJnguYTguILguJrguLHguIfguITguLHguJrguKvguKXguLHguIcKK+C5gOC4h+C4t+C5iOC4reC4meC4h+C4swor4LmA4LiH4Li34LmI4Lit4LiZ4LmA4Lin4Lil4LiyCivguYDguIfguLfguYjguK3guJnguYDguKfguKXguLLguYDguKPguLTguYjguKHguJXguYnguJkKK+C5gOC4h+C4t+C5iOC4reC4meC5gOC4p+C4peC4suC4quC4tOC5ieC4meC4quC4uOC4lAor4LmA4LiH4Li34Lit4LiaCivguYDguIfguLfguYnguK3guKEKK+C5gOC4h+C4t+C5ieC4reC4oeC4oeC4t+C4rQor4LmB4LiHCivguYHguIfguYYKK+C5geC4h+C5iAor4LmB4LiH4LmI4LiHCivguYHguIfguYjguIfguYYKK+C5geC4h+C5iOC4h+C4guC4tOC4hwor4LmB4LiH4LmI4LiH4Lit4LiZCivguYHguIfguYjguJkKK+C5geC4h+C5iOC4meC5hgor4LmB4LiH4LmJ4LihCivguYHguIfguLAKK+C5guC4hwor4LmC4LiH4LmICivguYLguIfguIEKK+C5guC4h+C4geC5gOC4h+C4gQor4LmC4LiH4LmI4LmB4LiB4Lih4Lir4Lii4Li04LmI4LiHCivguYLguIfguIcKK+C5guC4h+C5iOC4h+C5hgor4LmC4LiH4LmJ4LiHCivguYLguIfguIfguYDguIfguIcKK+C5guC4h+C5iOC4h+C5gOC4h+C5iOC4hwor4LmC4LiH4LmA4LiHCivguYLguIfguYjguYDguIfguYjguLIKK+C5guC4h+C5iOC5gOC4h+C5iOC4suC5gOC4leC5iOC4suC4leC4uOC5iOC4mQor4LmC4LiH4LiZCivguYLguIfguJnguYDguIfguJkKK+C5guC4h+C5iOC5geC4peC5ieC4p+C4reC4ouC4suC4geC4meC4reC4meC5gOC4leC4teC4ouC4hwor4LmE4LiH4LmJCivguIgKK+C4iOC4gQor4LiI4LiHCivguIjguYjguIcKK+C4iOC5i+C4hwor4LiI4LiH4LiB4Lij4LihCivguIjguIfguIHguKPguKHguYHguIHguYnguKcKK+C4iOC4h+C4geC4pQor4LiI4LiH4LiB4Lil4LiZ4Li1CivguIjguIfguYDguIHguKXguLXguKLguJTguIjguIfguIrguLHguIcKK+C4iOC4h+C5guC4hOC4o+C5iOC4hwor4LiI4LiH4LmD4LiICivguIjguIfguJTguLUKK+C4iOC4h+C4o+C4seC4gQor4LiI4LiH4Lij4Lix4LiB4Lig4Lix4LiB4LiU4Li1CivguIjguIfguK3guKMKK+C4iOC4h+C4reC4suC4hwor4LiI4LmB4LiI4LmJ4LiZCivguIjguI0KK+C4iOC4lAor4LiI4LiU4LiI4LmI4LitCivguIjguJTguIjguYnguK3guIcKK+C4iOC4lOC5hiDguIjguYnguK3guIfguYYKK+C4iOC4lOC4iOC4swor4LiI4LiU4LiX4Liw4LmA4Lia4Li14Lii4LiZCivguIjguJTguKvguKHguLHguJQKK+C4iOC4lOC4q+C4oeC4suC4ogor4LiI4LiU4Lir4Lih4Liy4Lii4LmA4Lin4Li14Lii4LiZCivguIjguJTguKvguKHguLLguKLguYDguKvguJXguLgKK+C4iOC4lOC4uOC4owor4LiI4LiU4Li44Lij4LiH4LiE4LmMCivguIjguJTguLnguKMtCivguIjguJXguLgtCivguIjguJXguLjguIHguLLguKXguJjguLLguJXguLgKK+C4iOC4leC4uOC4leC4li0KK+C4iOC4leC4uOC4leC4luC4tQor4LiI4LiV4Li44LiX4Li04Lie4Lii4LiE4Lix4LiZ4LiY4LiyCivguIjguJXguLjguJrguJcKK+C4iOC4leC4uOC4muC4o+C4tOC4qeC4seC4lwor4LiI4LiV4Li44Lib4Lix4LiI4LiI4Lix4LiiCivguIjguJXguLjguJvguLLguKPguLTguKrguLjguJfguJjguLTguKjguLXguKUKK+C4iOC4leC4uOC4oy0KK+C4iOC4leC4uOC4o+C4hOC4ueC4kwor4LiI4LiV4Li44Lij4LiH4LiE4LmMCivguIjguJXguLjguKPguIfguITguJnguLLguKLguIEKK+C4iOC4leC4uOC4o+C4h+C4hOC4m+C4o+C4sOC4lOC4seC4mgor4LiI4LiV4Li44Lij4LiH4LiE4Lii4Lih4LiBCivguIjguJXguLjguKPguJYtCivguIjguJXguLjguKPguJ7guLHguIHguJXguKPguYwKK+C4iOC4leC4uOC4o+C4nuC4tOC4mAor4LiI4LiV4Li44Lij4Lie4Li04LiY4Lie4LijCivguIjguJXguLjguKPguKDguLjguIoKK+C4iOC4leC4uOC4o+C4oOC4ueC4oeC4tAor4LiI4LiV4Li44Lij4Lii4Li44LiECivguIjguJXguLjguKPguLLguKPguLTguKLguKrguLHguIgKK+C4iOC4leC4uOC4peC4seC4h+C4hOC4muC4suC4lwor4LiI4LiV4Li44LmC4Lil4LiB4Lia4Liy4LilCivguIjguJXguLjguKrguJTguKHguKDguYwKK+C4iOC4l+C4tuC4hwor4LiI4LiZCivguIjguYnguJkKK+C4iOC4meC4geC4o+C4sOC4l+C4seC5iOC4hwor4LiI4LiZ4LiB4Lin4LmI4LiyCivguIjguJnguIrguLHguYnguJkKK+C4iOC4meC4lOC5ieC4p+C4ouC5gOC4geC4peC5ieC4sgor4LiI4LiZ4LiW4Li24LiHCivguIjguJnguYHguKXguYnguKfguIjguJnguKPguK3guJQKK+C4iOC4mgor4LiI4Lia4LmA4Lir4LmICivguIjguKEKK+C4iOC5iOC4oQor4LiI4Lih4LmA4Lia4LmJ4LiyCivguIjguKHguJvguKXguLHguIEKK+C4iOC4oeC5hOC4oeC5iOC4peC4hwor4LiI4Lih4LijCivguIjguKHguKPguLUKK+C4iOC4oeC4ueC4gQor4LiI4Lih4Li54LiB4Lib4Lil4Liy4Lir4Lil4LiUCivguIjguKHguLnguIHguJvguKXguLLguYTguKvguKUKK+C4iOC4oeC4ueC4geC4oeC4lAor4LiI4Lih4Li54LiB4Lin4Lix4LinCivguIjguKHguLnguIHguKvguKXguK3guJQKK+C4iOC4ouC4uOC4leC4tAor4LiI4LijCivguIjguKMtCivguIjguKPguIEKK+C4iOC4o+C4geC4peC4ueC5iAor4LiI4Lij4LmB4LiB4Lin4LmI4LiHCivguIjguKPguITguLHguYjguIcKK+C4iOC4o+C4iOC4o+C4seC4pQor4LiI4Lij4LiI4Lix4LiUCivguIjguKPguJPguLAKK+C4iOC4o+C4lAor4LiI4Lij4LiU4Lie4Lij4Liw4LiB4Lij4Lij4LmE4LiV4Lij4LiB4Lij4Lij4Lia4Li04LiUCivguIjguKPguJTguJ7guKPguLDguJnguLHguIfguITguLHguKUKK+C4iOC4o+C4lOC4pQor4LiI4Lij4Lia4LiZCivguIjguKPguJrguLHguJkKK+C4iOC4o+C4muC4suC4lwor4LiI4Lij4Lih4Lix4LiZCivguIjguKPguKHguLnguIEKK+C4iOC4o+C4o+C4iOC4sgor4LiI4Lij4Lij4LmC4LiI4LipCivguIjguKPguKPguKEKK+C4iOC4o+C4o+C4oS0KK+C4iOC4o+C4o+C4oeC4geC4suC4owor4LiI4Lij4Lij4Lih4LiC4Lix4LiT4LiR4LmMCivguIjguKPguKPguKLguLIKK+C4iOC4o+C4o+C4ouC4suC4muC4o+C4o+C4kwor4LiI4Lij4Lij4LmC4Lil4LiHCivguIjguKPguKXguKfguIcKK+C4iOC4o+C4peC5iOC4p+C4hwor4LiI4Lij4Lil4Liy4LiUCivguIjguKPguKXguLLguKIKK+C4iOC4o+C4peC5iOC4swor4LiI4Lij4Lil4Li04LmI4LinCivguIjguKPguKXguLUKK+C4iOC4o+C4peC4ueC5iAor4LiI4Lij4Lin4LiICivguIjguKPguKfguIjguYTguIjguKMKK+C4iOC4o+C4p+C4lAor4LiI4Lij4Lin4LiU4LiI4Lij4Li1CivguIjguKPguKfguJTguJnguLPguKfguLTguJbguLUKK+C4iOC4o+C4p+C4seC4gQor4LiI4Lij4LiqCivguIjguKPguK3guIEKK+C4iOC4o+C4sOC4geC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiC4Liy4LiaCivguIjguKPguLDguYDguILguYkKK+C4iOC4o+C4sOC5gOC4guC5ieC4m+C4suC4geC4geC4o+C4sOC4l+C4uOC4h+C5gOC4q+C4pwor4LiI4Lij4Liw4LmA4LiC4LmJ4Lir4Liy4LiH4Lii4Liy4LinCivguIjguKPguLDguITguKXguLHguJoKK+C4iOC4o+C4sOC4hOC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiE4Lil4Li44LmI4LihCivguIjguKPguLDguYHguITguIcKK+C4iOC4o+C4sOC4iOC4uOC5iOC4oQor4LiI4Lij4Liw4LiX4LiBCivguIjguKPguLDguYDguJfguLTguJkKK+C4iOC4o+C4sOC4meC4swor4LiI4Lij4Liw4Lia4Liy4LiZCivguIjguKPguLDguJrguLUKK+C4iOC4o+C4sOC4peC4tOC5iOC4hwor4LiI4Lij4Liw4Lil4Li24LiHCivguIjguKPguLDguKXguLjguIcKK+C4iOC4o+C4seC4pQor4LiI4Lij4Lix4LiqCivguIjguKPguLLguIEKK+C4iOC4o+C4suC4hwor4LiI4Lij4Liy4LiI4LijCivguIjguKPguLLguI0KK+C4iOC4o+C4suC4ogor4LiI4Lij4Liy4LinCivguIjguKPguLLguKoKK+C4iOC4o+C4tOC4gQor4LiI4Lij4Li04LiHCivguIjguKPguLTguIfguYYKK+C4iOC4o+C4tOC4h+C4iOC4seC4hwor4LiI4Lij4Li04LiH4LmD4LiICivguIjguKPguLTguIfguK3guKLguLnguYgKK+C4iOC4o+C4tOC4lQor4LiI4Lij4Li04LihLQor4LiI4Lij4Li04LiiLQor4LiI4Lij4Li04Lii4LiY4Lij4Lij4LihCivguIjguKPguLTguKLguKfguLHguJXguKMKK+C4iOC4o+C4tOC4ouC4qOC4suC4quC4leC4o+C5jAor4LiI4Lij4Li04Lii4Lio4Li24LiB4Lip4LiyCivguIjguKPguLTguKLguLIKK+C4iOC4o+C4tOC4ouC4suC4m+C4tOC4juC4gQor4LiI4Lij4Li04Lii4Liy4Lin4Lix4LiV4LijCivguIjguKPguLTguKcKK+C4iOC4o+C4tQor4LiI4Lij4Li24LiHCivguIjguKPguLjguIEKK+C4iOC4o+C4uOC4hwor4LiI4Lij4Li54LiHCivguIjguKPguLnguI0KK+C4iOC4o+C4ueC4qgor4LiI4LmA4LijCivguIjguKUKK+C4iOC4peC4meC4nuC4peC4qOC4suC4quC4leC4o+C5jAor4LiI4Lil4LiZ4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguKXguJnguLUKK+C4iOC4peC4sgor4LiI4Lil4Liy4LiI4LilCivguIjguKfguIEKK+C4iOC5iuC4p+C4gQor4LiI4Lin4LiHCivguIjguYnguKfguIcKK+C4iOC5i+C4p+C4hwor4LiI4LmL4Lin4LiH4LmA4LiE4Lij4Li34LitCivguIjguKfguIfguIjguLHguJnguJfguJnguYwKK+C4iOC5ieC4p+C4h+C4iOC4suC4mgor4LiI4Lin4LiH4Lir4Lit4LihCivguIjguKfguJQKK+C4iOC4p+C4lOC4peC4suC4gQor4LiI4Lin4LiZCivguIjguKfguJnguYDguIjguLXguKLguJkKK+C4iOC4p+C4meC5geC4iAor4LiI4Lin4LiZ4LiV4Lix4LinCivguIjguKfguJoKK+C4iOC4p+C4muC4iOC4p+C4mQor4LiI4Lin4Lix4LiBCivguIjguK0KK+C4iOC5iOC4rQor4LiI4LmJ4LitCivguIjguYvguK0KK+C4iOC4reC4gQor4LiI4LmJ4Lit4LiBCivguIjguYnguK3guIHguYYKK+C4iOC5iuC4reC4gQor4LiI4LmK4Lit4LiB4LmGCivguIjguYnguK3guIHguYHguIjguYnguIEKK+C4iOC5ieC4reC4geC4p+C4reC4gQor4LiI4Lit4LiB4Lir4Li54Lir4LiZ4Li5CivguIjguK3guIcKK+C4iOC5iOC4reC4hwor4LiI4LmJ4Lit4LiHCivguIjguYvguK3guIcKK+C4iOC4reC4h+C4hOC4igor4LiI4Lit4LiH4LiI4LizCivguIjguYnguK3guIfguYDguJUKK+C4iOC4reC4h+C4luC4meC4mQor4LiI4Lit4LiH4LmA4Lib4Lij4Li14Lii4LiHCivguIjguK3guIfguYDguKfguKPguIjguK3guIfguIHguKPguKPguKEKK+C4iOC4reC4h+C4q+C4h+C5iOC4reC4hwor4LiI4LmJ4Lit4LiH4Lir4LiZ4LmI4Lit4LiHCivguIjguK3guIfguKvguK3guIcKK+C4iOC4reC4h+C4q+C4reC4h+C4nuC4reC4h+C4guC4mQor4LiI4Lit4LmB4LiICivguIjguYvguK3guYHguIjguYsKK+C4iOC4reC4lAor4LiI4Lit4LiZCivguIjguYnguK3guJkKK+C4iOC4reC4meC4iOC5iOC4rQor4LiI4Lit4LiZ4Lir4Li5CivguIjguK3guJoKK+C4iOC4reC4oQor4LiI4LmI4Lit4LihCivguIjguK3guKHguILguKfguLHguI0KK+C4iOC5iOC4reC4oeC4iOC5iOC4suC4ogor4LiI4Lit4Lih4LmD4LiICivguIjguK3guKHguYTguJXguKMKK+C4iOC4reC4oeC4l+C4reC4hwor4LiI4Lit4Lih4LiX4Lix4LieCivguIjguK3guKHguJvguKXguKfguIEKK+C4iOC4reC4oeC4m+C4peC4reC4oQor4LiI4LmJ4Lit4Lih4Lib4LmJ4Lit4LihCivguIjguK3guKHguYDguJvguLLguLAKK+C4iOC4reC4oeC4nuC4pQor4LiI4Lit4Lih4Lih4Liy4Lij4LiU4LiyCivguIjguK3guKHguKrguLjguKPguLLguIfguITguYwKK+C4iOC5iOC4reC4ogor4LiI4LmJ4Lit4LiiCivguIjguYvguK3guKIKK+C4iOC5i+C4reC4ouC5hgor4LiI4Lit4LmB4LiqCivguIjguLAKK+C4iOC5ieC4sAor4LiI4LmK4LiwCivguIjguYvguLAKK+C4iOC4sOC4geC4o+C4seC4iOC4iOC4sOC4geC4o+C4suC4iAor4LiI4Liw4LiB4Lij4Li44LiZCivguIjguLDguIHguKPguLjguKHguIjguLDguIHguKPguLLguKEKK+C4iOC4sOC4geC4o+C4ueC4mQor4LiI4Liw4LiB4Lil4LiwCivguIjguLDguIHguKXguLLguKEKK+C4iOC4sOC4geC4p+C4lAor4LiI4Liw4LiB4Li54LiUCivguIjguLDguYDguIHguKPguYfguIcKK+C4iOC4sOC4guC4suC4mgor4LiI4Liw4LmA4LiC4LmJCivguIjguLDguYDguILguYfguJoKK+C4iOC4sOC4h+C4reC4ogor4LiI4Liw4LiI4LiwCivguIjguLDguIjguYnguLIKK+C4iOC4sOC5geC4iOC5ieC4hwor4LiI4Liw4LmB4LiI4LmI4LihCivguIjguLDguYTguIjguYkKK+C4iOC4sOC4muC4seC4mQor4LiI4Liw4Lib4Li04LmJ4LiHCivguIjguLDguJvguLTguYnguIfguYDguKPguLfguK0KK+C4iOC4sOC5gOC4nuC4peC4tOC4hwor4LiI4Liw4Lil4Liw4LmA4Lih4LmH4LiUCivguIjguLDguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4sOC4peC4uOC4hwor4LiI4LmK4Liw4LmA4Lit4LmLCivguIjguLHguIEKK+C4iOC4seC5ieC4geC5hgor4LiI4Lix4LiB4LiB4Liy4LiiCivguIjguLHguYrguIHguIHguLTguYnguKEKK+C4iOC4seC4geC4guC4uAor4LiI4Lix4LiB4LiC4Li44LiX4Lin4Liy4LijCivguIjguLHguIHguILguLjguJvguKPguLDguKrguLLguJcKK+C4iOC4seC4geC4guC4uOC4p+C4tOC4jeC4jeC4suC4kwor4LiI4Lix4LiB4LiC4Li44Liq4Lix4Lih4Lic4Lix4LiqCivguIjguLHguIHguIjguLHguYjguJkKK+C4iOC4seC4geC4iOC4teC5iQor4LiI4Lix4LmK4LiB4LiI4Li14LmJCivguIjguLHguYrguIHguYDguJTguLXguKLguKEKK+C4iOC4seC4geC4owor4LiI4Lix4LiB4LijLQor4LiI4Lix4LiB4Lij4Lib4Liy4LiT4Li0CivguIjguLHguIHguKPguJvguLLguJPguLUKK+C4iOC4seC4geC4o+C4nuC4o+C4o+C4lOC4tAor4LiI4Lix4LiB4Lij4Lie4Liy4LiBCivguIjguLHguIHguKPguJ7guLLguKUKK+C4iOC4seC4geC4o+C4oOC4ngor4LiI4Lix4LiB4Lij4Lii4Liy4LiZCivguIjguLHguIHguKPguKLguLLguJnguKLguJnguJXguYwKK+C4iOC4seC4geC4o+C4o+C4suC4qOC4tQor4LiI4Lix4LiB4Lij4Lin4Lij4Lij4LiU4Li0CivguIjguLHguIHguKPguKfguKPguKPguJTguLTguJnguLTguKLguKEKK+C4iOC4seC4geC4o+C4p+C4suC4gQor4LiI4Lix4LiB4Lij4Lin4Liy4LiVCivguIjguLHguIHguKPguKfguLLguKUKK+C4iOC4seC4geC4o+C4tOC4mQor4LiI4Lix4LiB4Lij4Li1CivguIjguLHguYrguIHguYDguKXguYnguK0KK+C4iOC4seC4geC4qeC4uAor4LiI4Lix4LiB4Liq4Liy4LiZCivguIjguLHguIHguYHguKvguKXguYjguJkKK+C4iOC4seC4hwor4LiI4Lix4LmJ4LiHCivguIjguLHguYvguIfguZEKK+C4iOC4seC4h+C4geC4p+C4lAor4LiI4Lix4LiH4LiB4Lit4LiaCivguIjguLHguIfguIHguLIKK+C4iOC4seC4h+C4geC5ieC4sgor4LiI4Lix4LiH4LiB4Li54LiUCivguIjguLHguIfguYDguIEKK+C4iOC4seC4h+C5guC4geC4j+C4geC5jAor4LiI4Lix4LiH4LiH4Lix4LiHCivguIjguLHguIfguKHguLHguIcKK+C4iOC4seC5ieC4h+C4oeC4seC5iOC4hwor4LiI4Lix4LiH4LmE4LijCivguIjguLHguIfguKXguK3guJkKK+C4iOC4seC4h+C5gOC4p+C5h+C4iAor4LiI4Lix4LiH4Lir4LiZ4Lix4LiaCivguIjguLHguIfguKvguJnguYnguLIKK+C4iOC4seC4h+C4q+C4o+C4teC4lAor4LiI4Lix4LiH4Lir4Lil4LmI4LitCivguIjguLHguIfguKvguKfguLAKK+C4iOC4seC4h+C4q+C4p+C4seC4lAor4LiI4Lix4LiH4Lir4Lix4LiZCivguIjguLHguIfguK3guK3guJkKK+C4iOC4seC4jeC5hOC4owor4LiI4Lix4LiT4LiRLQor4LiI4Lix4LiT4LiR4LmMCivguIjguLHguJPguJHguKfguLLguJXguLIKK+C4iOC4seC4k+C4keC4suC4pQor4LiI4Lix4LiUCivguIjguLHguJTguIHguLLguKMKK+C4iOC4seC4lOC4iOC4reC4hwor4LiI4Lix4LiU4LiI4LmJ4LiyCivguIjguLHguJTguIjguYnguLLguJkKK+C4iOC4seC4lOC5gOC4iOC4mQor4LiI4Lix4LiU4LmB4LiI4LiHCivguIjguLHguJTguJXguLHguYnguIcKK+C4iOC4seC4lOC4m+C4o+C4sOC4geC4seC4mQor4LiI4Lix4LiU4Lih4Lix4LmI4LiZCivguIjguLHguJTguKrguKPguKMKK+C4iOC4seC4lOC4q+C4sgor4LiI4Lix4LiV4LiV4Liy4Lis4Li14LiqCivguIjguLHguJXguKfguLIKK+C4iOC4seC4leC4p+C4suC4l+C4seC4k+C4keC4tQor4LiI4Lix4LiV4Lin4Liy4Lio4LiBCivguIjguLHguJXguLgKK+C4iOC4seC4leC4uOC4oy0KK+C4iOC4seC4leC4uOC4o+C4h+C4hOC5jAor4LiI4Lix4LiV4Li44Lij4Lie4Lix4LiB4LiV4Lij4LmMCivguIjguLHguJXguLjguKPguKDguLjguIoKK+C4iOC4seC4leC4uOC4o+C4oeC4uOC4ggor4LiI4Lix4LiV4Li44Lij4Lix4LiqCivguIjguLHguJXguLjguYLguKXguIHguJrguLLguKUKK+C4iOC4seC4leC4uOC4quC4lOC4oeC4oOC5jAor4LiI4Lix4LiZCivguIjguLHguYjguJkKK+C4iOC4seC4meC5guC4iOC4qQor4LiI4Lix4LmI4LiZ4LiU4Li04LiZCivguIjguLHguJnguJfguYwKK+C4iOC4seC4meC4l+C4meC5jAor4LiI4Lix4LiZ4LiX4LiZ4LmM4LiB4Liw4Lie4LmJ4LitCivguIjguLHguJnguJfguJnguYzguILguLLguKcKK+C4iOC4seC4meC4l+C4meC5jOC4iuC4sOC4oeC4lAor4LiI4Lix4LiZ4LiX4LiZ4LmM4LmB4LiU4LiHCivguIjguLHguJnguJfguJnguYzguYDguJfguKgKK+C4iOC4seC4meC4l+C4meC5jOC4nOC4sgor4LiI4Lix4LiZ4LiX4LiZ4LmM4Lir4Lit4LihCivguIjguLHguJnguJfguJnguLIKK+C4iOC4seC4meC4l+C4oy0KK+C4iOC4seC4meC4l+C4o+C5jAor4LiI4Lix4LiZ4LiX4Lij4LiB4Lil4LiyCivguIjguLHguJnguJfguKPguIHguLLguJnguJXguYwKK+C4iOC4seC4meC4l+C4o+C4hOC4leC4tAor4LiI4Lix4LiZ4LiX4Lij4LiE4Lij4Liy4LiqCivguIjguLHguJnguJfguKPguJ7guLTguKHguJ7guYwKK+C4iOC4seC4meC4l+C4o+C4oeC4k+C4keC4pQor4LiI4Lix4LiZ4LiX4Lij4LmA4Lih4LmH4LiUCivguIjguLHguJnguJfguKPguKfguIfguKjguYwKK+C4iOC4seC4meC4l+C4o+C5gOC4qOC4guC4owor4LiI4Lix4LiZ4LiX4Lij4Li44Lib4Lij4Liy4LiE4LiyCivguIjguLHguJnguJfguLHguJkKK+C4iOC4seC4meC4l+C4seC4meC4nuC4o+C4suC4hwor4LiI4Lix4LiZ4Lil4Lit4LiHCivguIjguLHguJnguYDguKXguLIKK+C4iOC4seC4meC5gOC4peC4suC4sAor4LiI4Lix4LmJ4LiZ4Lir4Lil4LmI4LitCivguIjguLHguYjguJnguKvguLHguJoKK+C4iOC4seC5iOC4meC4q+C5ieC4suC4pwor4LiI4Lix4LiZ4Lit4Lix4LiaCivguIjguLHguJoKK+C4iOC4seC4muC4geC4peC4uOC5iOC4oQor4LiI4Lix4Lia4LiB4Lix4LiHCivguIjguLHguJrguIHguLjguKEKK+C4iOC4seC4muC5gOC4guC4oeC5iOC4sgor4LiI4Lix4Lia4LmE4LiC4LmJCivguIjguLHguJrguITguKfguLLguKEKK+C4iOC4seC4muC4h+C4ueC4guC5ieC4suC4h+C4q+C4suC4hwor4LiI4Lix4Lia4LiI4LiUCivguIjguLHguJrguIjguK3guIcKK+C4iOC4seC4muC4iOC5iOC4suC4ogor4LiI4Lix4Lia4LiI4Li04LiVCivguIjguLHguJrguYDguIjguYjguLIKK+C4iOC4seC4muC5gOC4iOC4teC5i+C4ouC4pwor4LiI4Lix4Lia4LmD4LiICivguIjguLHguJrguInguYjguLLguKIKK+C4iOC4seC4muC5gOC4iuC4tOC4hwor4LiI4Lix4Lia4LiU4Liz4LiW4Lil4Liz4LmB4LiU4LiHCivguIjguLHguJrguYDguJTguLTguKEKK+C4iOC4seC4muC4leC4seC4p+C4p+C4suC4h+C4leC4suC4ogor4LiI4Lix4Lia4LiV4LiyCivguIjguLHguJrguJXguLLguJTguLkKK+C4iOC4seC4muC4leC4suC4ogor4LiI4Lix4Lia4Lib4Li04LmJ4LiHCivguIjguLHguJrguYDguJvguYfguJkKK+C4iOC4seC4muC5guC4m+C4hwor4LiI4Lix4Lia4Lic4Li04LiUCivguIjguLHguJrguJ7guKXguLHguJTguIjguLHguJrguJzguKXguLkKK+C4iOC4seC4muC5geC4nuC4sOC4iuC4meC5geC4geC4sAor4LiI4Lix4Lia4Lii4Liy4LihCivguIjguLHguJrguKLguLXguYjguIHguLUKK+C4iOC4seC4muC4o+C4sOC4muC4swor4LiI4Lix4Lia4LmA4Lin4Lil4LiyCivguIjguLHguJrguKrguLHguYjguJkKK+C4iOC4seC4muC4quC4suC4ouC4quC4tOC4jeC4iOC4meC5jAor4LiI4Lix4Lia4LmA4Liq4Li34Lit4Lih4Li34Lit4LmA4Lib4Lil4LmI4LiyCivguIjguLHguJrguKvguKXguLHguIEKK+C4iOC4seC4muC4q+C4p+C4seC4lAor4LiI4Lix4Lia4Lir4Lix4Lin4LmA4LiC4LmI4Liy4Lie4Li54LiUCivguIjguLHguKHguJrguIEKK+C4iOC4seC4oeC4m+C4gQor4LiI4Lix4Lih4Lih4LiwCivguIjguLHguKcKK+C4iOC4seC5iOC4pwor4LiI4Lix4LmK4Lin4LiwCivguIjguLIKK+C4iOC5iOC4sgor4LiI4LmJ4LiyCivguIjguYvguLIKK+C4iOC4suC4gQor4LiI4Liy4LiB4Lie4Lij4Liy4LiBCivguIjguLLguIHguJ7guLLguIEKK+C4iOC5iOC4suC4geC4peC4reC4hwor4LiI4Liy4LiELQor4LiI4Liy4LiE4Li1CivguIjguLLguIcKK+C4iOC5iOC4suC4hwor4LiI4LmJ4Liy4LiHCivguIjguLLguIfguKfguLLguIcKK+C4iOC4suC4lAor4LiI4Liy4LiU4LiV4Liw4LiB4Lix4LmI4LinCivguIjguLLguJXguLgtCivguIjguLLguJXguLjguIHguKPguJPguLXguKLguYwKK+C4iOC4suC4leC4uOC4l+C4quC4tQor4LiI4Liy4LiV4Li44Lih4Lir4Liy4Lij4Liy4LiKCivguIjguLLguJXguLjguKMtCivguIjguLLguJXguLjguKPguIfguIQtCivguIjguLLguJXguLjguKPguIfguITguYwKK+C4iOC4suC4leC4uOC4o+C4h+C4hOC4quC4seC4meC4meC4tOC4muC4suC4lQor4LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmMCivguIjguLLguJXguLjguKPguJnguJXguYzguKPguLHguKjguKHguLUKK+C4iOC4suC4leC4uOC4o+C4o+C4suC4iuC4geC4suC4owor4LiI4Liy4LiV4Li44Lij4Lix4LiZ4LiV4LmMCivguIjguLLguJkKK+C4iOC5ieC4suC4mQor4LiI4Liy4LiZ4LiI4LmI4Liy4LiiCivguIjguLLguJnguYDguIjguLfguK0KK+C4iOC4suC4meC5gOC4iuC4tOC4hwor4LiI4Liy4LiZ4Lia4Li04LiZCivguIjguLLguJnguJzguLUKK+C4iOC4suC4meC5gOC4quC4teC4ouC4hwor4LiI4Liy4LiaCivguIjguLLguJrguIjguYnguKfguIcKK+C4iOC4suC4muC4seC4pQor4LiI4Liy4Lia4Lix4Lil4Lii4LmMCivguIjguLLguJsKK+C4iOC5iOC4suC4m+C4teC5iAor4LiI4Liy4LihCivguIjguYjguLLguKHguIfguIHguLjguI4KK+C4iOC4suC4oeC4iOC4uOC4o+C4tQor4LiI4Liy4Lih4LijCivguIjguLLguKHguKPguLUKK+C4iOC4suC4oeC4teC4geC4owor4LiI4LmI4Liy4LiiCivguIjguYjguLLguKLguJXguKXguLLguJQKK+C4iOC4suC4owor4LiI4LmI4Liy4Lij4LiHCivguIjguLLguKPguKfguLLguIEKK+C4iOC4suC4o+C4sOC5hOC4mQor4LiI4Liy4Lij4Liw4Lia4Li1CivguIjguLLguKPguLTguIEKK+C4iOC4suC4o+C4tQor4LiI4Liy4Lij4Li14LiVCivguIjguLLguKPguLXguJXguJnguITguKPguJrguLLguKUKK+C4iOC4suC4o+C4teC4leC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiI4Liy4Lij4Li24LiBCivguIjguLLguKPguLgKK+C4iOC5ieC4suC4peC4sOC4q+C4p+C4seC5iOC4mQor4LiI4Liy4LinCivguIjguLLguKfguYYKK+C4iOC5iOC4suC4pwor4LiI4LmJ4Liy4LinCivguIjguLLguKfguKHguLDguJ7guKPguYnguLLguKcKK+C4iOC5iOC4suC4q+C4meC5ieC4sgor4LiI4LmI4Liy4Lir4Lin4Lix4LiBCivguIjguLMKK+C4iOC5ieC4swor4LiI4Liz4LiB4Lin4LmI4LiyCivguIjguLPguIHguLHguJQKK+C4iOC4s+C4geC4seC4lOC4hOC4p+C4suC4oQor4LiI4Liz4LiB4Lix4LiU4LiI4Liz4LmA4LiC4Li14LmI4LiiCivguIjguLPguIHguLHguJTguKrguLTguJnguYPguIrguYkKK+C4iOC4s+C4hOC4o+C4mgor4LiI4Liz4LiH4Liy4LiiCivguIjguLPguIjguK3guIcKK+C4iOC5ieC4s+C4iOC4teC5iQor4LiI4LmJ4Liz4LiI4Li14LmJ4LiI4LmJ4Liz4LmE4LiKCivguIjguLPguYDguIgKK+C4iOC4s+C5gOC4lOC4tOC4oQor4LiI4Liz4LiX4Lin4LiiCivguIjguLPguJfguLHguJoKK+C4iOC4s+C4l+C4suC4mgor4LiI4Liz4LmA4LiX4Li04LiUCivguIjguLPguYHguJfguIcKK+C4iOC4s+C4meC4hwor4LiI4Liz4LiZ4LiZCivguIjguLPguJnguKPguKPguIjguYwKK+C4iOC4s+C4meC4o+C4o+C4iOC4sgor4LiI4Liz4LiZ4Lin4LiZCivguIjguLPguJnguKfguJnguIjguKPguLTguIcKK+C4iOC4s+C4meC4p+C4meC4iOC4tOC4meC4leC4oOC4suC4ngor4LiI4Liz4LiZ4Lin4LiZ4LmA4LiK4Li04LiH4LiL4LmJ4Lit4LiZCivguIjguLPguJnguKfguJnguJXguKPguKPguIHguKLguLAKK+C4iOC4s+C4meC4p+C4meC5gOC4leC5h+C4oQor4LiI4Liz4LiZ4Lin4LiZ4LiZ4Lix4LiaCivguIjguLPguJnguKfguJnguK3guJXguKPguKPguIHguKLguLAKK+C4iOC4s+C4meC4reC4hwor4LiI4Liz4LiZ4Lix4LiaCivguIjguLPguJnguLHguKUKK+C4iOC4s+C4meC4swor4LiI4Liz4LiZ4Liz4Lie4Lij4Lij4Lip4LiyCivguIjguLPguYDguJnguLXguKLguJkKK+C4iOC4s+C5gOC4meC4teC4ouC4oQor4LiI4Liz4LmA4LiZ4Li14Lii4LijCivguIjguLPguYHguJnguIEKK+C4iOC4s+C5guC4meC4l+C4ouC5jAor4LiI4Liz4Lia4LmI4LihCivguIjguLPguJrguLHguIcKK+C4iOC4s+C4muC4seC4mgor4LiI4Liz4LmA4Lia4LioCivguIjguYnguLPguYDguJrguYnguLIKK+C4iOC4s+C5geC4mgor4LiI4Liz4Lib4LiyCivguIjguLPguJvguLLguILguK3guKEKK+C4iOC4s+C4m+C4suC5geC4guC4gQor4LiI4Liz4Lib4Liy4LiU4LiwCivguIjguLPguJvguLLguJfguK3guIfguYDguJfguKgKK+C4iOC4s+C4m+C4suC4peC4suC4pwor4LiI4Liz4Lib4Liy4Lir4Lit4LihCivguIjguLPguJvguLUKK+C4iOC4s+C4m+C4teC5geC4guC4gQor4LiI4Liz4Lib4Li54LiZCivguIjguLPguYDguJvguYfguJkKK+C4iOC4s+C4nuC4o+C4o+C4qeC4sgor4LiI4Liz4Lie4Lin4LiBCivguIjguLPguYDguJ7guLLguLAKK+C4iOC4s+C5geC4nuC4o+C4gQor4LiI4LmJ4Liz4Lih4LmI4LizCivguIjguLPguKPguJQKK+C4iOC4s+C4o+C4seC4qgor4LiI4Liz4Lij4Liy4LiNCivguIjguLPguKPguLLguKIKK+C4iOC4s+C4o+C4ueC4jQor4LiI4Liz4LmA4Lij4Li04LiNCivguIjguLPguYDguKPguLXguKLguIcKK+C4iOC4s+C4peC4reC4hwor4LiI4Liz4Lil4Lit4LiH4LiX4Lit4LiHCivguIjguLPguKXguLLguKIKK+C4iOC4s+C5gOC4peC4ogor4LiI4Liz4LmA4Lil4Liy4LiwCivguIjguLPguYDguKXguLLguLDguJXguLIKK+C4iOC4s+C5geC4peC4hwor4LiI4Liz4LmB4Lil4LmI4LiZCivguIjguLPguKfguLHguJQKK+C4iOC4s+C4qOC4teC4pQor4LiI4Liz4Lir4LiZ4Lix4LiaCivguIjguYvguLPguKvguJnguLHguJoKK+C4iOC4s+C4q+C4meC5iOC4suC4ogor4LiI4Liz4Lir4Lij4LiwCivguIjguLPguKvguKXguYjguK0KK+C4iOC4s+C4q+C4peC4reC4gQor4LiI4Liz4Lir4Lil4Lix4LiBCivguIjguLPguKvguLHguJkKK+C4iOC4s+C4q+C5ieC4suC4m+C4o+C4sOC4geC4suC4owor4LiI4Liz4Lir4Liy4LiiCivguIjguLPguKvguLjguJQKK+C4iOC4s+C5gOC4q+C4teC4ouC4hwor4LiI4Liz4Lit4Lin4LiUCivguIjguLPguK3guLfguYjguJkKK+C4iOC4tAor4LiI4Li04LiBCivguIjguLTguIHguJvguLXguIEKK+C4iOC4tOC4geC4q+C4seC4pwor4LiI4Li04LmI4LiHCivguIjguLTguYnguIfguIjguIEKK+C4iOC4tOC4h+C4iOC5ieC4rQor4LiI4Li04LmJ4LiH4LiI4Lit4LiBCivguIjguLTguIfguIjguLHguIcKK+C4iOC4tOC5ieC4h+C4iOC4seC4hwor4LiI4Li04LiH4LmC4LiI4LmJCivguIjguLTguIfguYLguIjguYnguJnguYnguLMKK+C4iOC4tOC5ieC4h+C4q+C4o+C4teC4lAor4LiI4Li04LmJ4LiH4Lir4Lij4Li14LiU4Lic4Li1CivguIjguLTguYnguIfguYDguKvguKXguJkKK+C4iOC4tOC5ieC4h+C5gOC4q+C4peC4meC4lOC5ieC4p+C4hwor4LiI4Li04LiVCivguIjguLTguJUtCivguIjguLTguJXguIHguLLguJjguLLguJkKK+C4iOC4tOC4leC4geC4tuC5iOC4h+C4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4LmD4LiICivguIjguLTguJXguJUtCivguIjguLTguJXguJXguYwKK+C4iOC4tOC4leC4leC4oOC4suC4p+C4meC4sgor4LiI4Li04LiV4LiV4Lin4Li04Liq4Li44LiX4LiY4Li0CivguIjguLTguJXguJXguLLguJnguLjguJvguLHguKrguKrguJnguLIKK+C4iOC4tOC4leC5g+C4leC5ieC4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4LiZ4Li04Lii4LihCivguIjguLTguJXguJrguLPguJrguLHguJQKK+C4iOC4tOC4leC5geC4nuC4l+C4ouC5jAor4LiI4Li04LiV4Lig4Liy4LieCivguIjguLTguJXguKMKK+C4iOC4tOC4leC4oy0KK+C4iOC4tOC4leC4o+C4geC4owor4LiI4Li04LiV4Lij4LiB4Lij4Lij4LihCivguIjguLTguJXguKPguIjguLjguKUKK+C4iOC4tOC4leC4o+C4m+C4l+C4sgor4LiI4Li04LiV4Lij4Lil4LiU4LiyCivguIjguLTguJXguKPguYDguKXguILguLIKK+C4iOC4tOC4leC4o+C4sAor4LiI4Li04LiV4Lij4LiyCivguIjguLTguJXguYTguKPguYnguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC4p+C4tOC4l+C4ouC4sgor4LiI4Li04LiV4Lin4Li04Liq4Lix4LiiCivguIjguLTguJXguYDguKfguIrguKjguLLguKrguJXguKPguYwKK+C4iOC4tOC4leC4quC4s+C4meC4tuC4gQor4LiI4Li04LiZ4LmA4LiI4LiyCivguIjguLTguJnguJTguLIKK+C4iOC4tOC4meC4lOC4suC4oeC4k+C4tQor4LiI4Li04LiZ4LiU4Liy4Lih4Lix4LiiCivguIjguLTguJnguJTguLLguKvguJnguLIKK+C4iOC4tOC4meC4lOC4suC4q+C4o+C4sgor4LiI4Li04LiZ4LiVLQor4LiI4Li04LiZ4LiV4LmMCivguIjguLTguJnguJXguIHguKfguLUKK+C4iOC4tOC4meC4leC5jOC4iOC4pQor4LiI4Li04LiZ4LiV4LiZ4Liy4LiB4Liy4LijCivguIjguLTguJnguJXguKDguLLguJ4KK+C4iOC4tOC4mgor4LiI4Li04Lib4Liy4LiW4LiwCivguIjguLTguYjguKEKK+C4iOC4tOC5ieC4oQor4LiI4Li04LmJ4Lih4LiB4LmJ4Lit4LiHCivguIjguLTguYnguKHguJ/guLHguJnguIjguKPguLDguYDguILguYkKK+C4iOC4tOC5ieC4oeC4peC4tOC5ieC4oQor4LiI4Li04LijLQor4LiI4Li04Lij4LiB4Liy4LilCivguIjguLTguKPguLHguJDguLTguJXguLTguIHguLLguKUKK+C4iOC4tOC5i+C4pwor4LiI4Li1CivguIjguLXguYgKK+C4iOC4teC5iQor4LiI4Li14LmLCivguIjguLXguYvguIjguYnguK0KK+C4iOC4teC5iOC4iOC4ueC5iQor4LiI4Li14LmB4LiI4LmK4LiaCivguIjguLXguYrguJQKK+C4iOC4teC4mQor4LiI4Li14LiZ4LmA4LiV4LmH4LiHCivguIjguLXguJnguYHguKoKK+C4iOC4teC4meC5geC4quC5guC4quC4geC4sgor4LiI4Li14LiaCivguIjguLXguJrguJvguLLguIHguIjguLXguJrguITguK0KK+C4iOC4teC4muC4nuC4peC4uQor4LiI4Li14LmC4LiaCivguIjguLXguJ7guKMKK+C4iOC4teC4oQor4LiI4Li14Lin4LijCivguIjguLXguKfguKMtCivguIjguLXguKfguKPguIHguKPguKPguKEKK+C4iOC4teC4p+C4o+C4geC4suC4o+C4quC4oeC4seC4ogor4LiI4Li14Lin4Lij4LiB4Liy4Lil4Liq4Lih4Lix4LiiCivguIjguLXguKfguKPguJfguLLguJnguKrguKHguLHguKIKK+C4iOC4teC4p+C4o+C4oOC4suC4iuC4gQor4LiI4Li14LmJ4LmA4Liq4LmJ4LiZCivguIjguLbguIcKK+C4iOC4tuC5iOC4hwor4LiI4Li24LmJ4LiHCivguIjguLfguJQKK+C4iOC4t+C4lOC4iOC4suC4hwor4LiI4Li34LiU4LiK4Li34LiUCivguIjguLfguJTguJXguLIKK+C4iOC4t+C5ieC4meC5gOC4iOC4t+C4reC4gQor4LiI4Li4CivguIjguLjguYYKK+C4iOC4uOC4gQor4LiI4Li44LmK4LiB4LiB4Lij4Li54LmKCivguIjguLjguIHguIjguLTguIEKK+C4iOC4uOC4geC5gOC4iOC5iOC4sgor4LiI4Li44LiB4LiK4LmI4Lit4LiH4Lil4LmJ4Lit4Lih4Lin4LiHCivguIjguLjguIHguIrguLUKK+C4iOC4uOC4geC4nOC4suC4oQor4LiI4Li44LiB4Lic4Liy4Lih4Lih4LmJ4Liy4Lih4Lii4LmJ4Lit4LiiCivguIjguLjguIHguJ7guKPguLLguKvguKHguJPguYwKK+C4iOC4uOC4geC4ouC4sgor4LiI4Li44LiB4LmC4Lij4Lir4Li04LiZ4Li1CivguIjguLjguYjguIcKK+C4iOC4uOC5ieC4h+C4iOC4seC4hwor4LiI4Li44LmL4LiH4LiI4Li04LmL4LiHCivguIjguLjguYPguIgKK+C4iOC4uOC4keC4sgor4LiI4Li44LiR4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguIjguLjguJHguLLguKHguJPguLUKK+C4iOC4uOC4keC4suC4oeC4suC4qAor4LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMCivguIjguLjguJMKK+C4iOC4uOC4k+C4k+C4teC4ouC4muC4lwor4LiI4Li44LiUCivguIjguLjguJTguIjguJoKK+C4iOC4uOC4lOC5gOC4lOC5iOC4mQor4LiI4Li44LiU4LmA4LiU4Li34Lit4LiUCivguIjguLjguJTguYTguJXguYnguJXguLPguJXguK0KK+C4iOC4uOC4lOC4l+C4qOC4meC4tOC4ouC4oQor4LiI4Li44LiU4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguIjguLjguJTguJrguK3guJQKK+C4iOC4uOC4lOC4ouC4t+C4mQor4LiI4Li44LiU4Lii4Li44LiX4LiY4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguLjguJTguYDguKLguLfguK3guIHguYHguILguYfguIcKK+C4iOC4uOC4lOC4o+C4p+C4oQor4LiI4Li44LiU4Lil4Li54LiB4LiZ4LmJ4LizCivguIjguLjguJTguKjguLnguJnguKLguYzguIHguKXguLLguIcKK+C4iOC4uOC4lOC4qOC4ueC4meC4ouC5jOC4luC5iOC4p+C4hwor4LiI4Li44LiU4Liq4Lix4Lih4Lic4Lix4LiqCivguIjguLjguJTguKvguKHguLLguKIKK+C4iOC4uOC4lOC4q+C4oeC4suC4ouC4m+C4peC4suC4ouC4l+C4suC4hwor4LiI4Li44LiU4Lir4Lil4Lit4Lih4LmA4Lir4Lil4LinCivguIjguLjguJTguKvguKXguLHguIcKK+C4iOC4uOC4lOC5gOC4q+C4teC5iOC4ouC4p+C5gOC4ieC4sgor4LiI4Li44LiU4Lit4LmI4Lit4LiZCivguIjguLjguJTguK3guLTguYjguKHguJXguLHguKcKK+C4iOC4uOC4leC4tAor4LiI4Li44LiV4Li54Lib4Lib4Liy4LiV4LiN4Liy4LiTCivguIjguLjguJfguKoKK+C4iOC4uOC4l+C4quC4oeC4quC4uOC4o+C4l+C4tOC4mQor4LiI4Li44LiZCivguIjguLjguYjguJkKK+C4iOC4uOC5ieC4mQor4LiI4Li44LmJ4LiZ4LiI4LmJ4Liy4LiZCivguIjguLjguJnguIjguLnguYsKK+C4iOC4uOC5ieC4meC4iOC4ueC5igor4LiI4Li44LiZ4LmA4LiI4Li34LitCivguIjguLjguJnguJfguIHguLLguKMKK+C4iOC4uOC4meC4quC4tQor4LiI4Li44LiaCivguIjguLjguYrguJoKK+C4iOC4uOC4muC4iOC4tOC4mgor4LiI4Li44LmK4Lia4LmB4LiI4LiHCivguIjguLjguJvguLLguIEKK+C4iOC4uOC5iOC4oQor4LiI4Li44LmJ4LihCivguIjguLjguYvguKHguIjguLTguYvguKEKK+C4iOC4uOC4oeC4nuC4jwor4LiI4Li44Lih4Lie4Lij4Lin4LiUCivguIjguLjguKHguJ7guKUKK+C4iOC4uOC4oeC4nuC4tOC4lQor4LiI4Li44Lih4LmC4Lie4Lil4LmICivguIjguLjguYnguKIKK+C4iOC4uOC4o+C4kwor4LiI4Li44Lij4Li1CivguIjguLjguYTguKMKK+C4iOC4uOC4pS0KK+C4iOC4uOC4peC4geC4kOC4tOC4mQor4LiI4Li44Lil4LiI4Lit4Lih4LmA4LiB4Lil4LmJ4LiyCivguIjguLjguKXguIrguLXguJ4KK+C4iOC4uOC4peC4iuC4teC4p+C4seC4mQor4LiI4Li44Lil4LiK4Li14Lin4Li04LiZCivguIjguLjguKXguJfguKPguKPguKjguJnguYwKK+C4iOC4uOC4peC4oOC4suC4hAor4LiI4Li44Lil4Lin4LiH4Lio4LmMCivguIjguLjguKXguKfguKPguKPguIQKK+C4iOC4uOC4peC4qOC4seC4geC4o+C4suC4igor4LiI4Li44Lil4Liq4Liy4LijCivguIjguLjguKXguLTguJnguJfguKPguLXguKLguYwKK+C4iOC4uOC4rOC4sgor4LiI4Li44Lis4Liy4Lih4LiT4Li1CivguIjguLjguKzguLLguKPguLLguIrguKHguJnguJXguKPguLUKK+C4iOC4uOC4rOC4suC4peC4seC4geC4qeC4k+C5jAor4LiI4Li44Lis4Liy4Lil4Lix4Lih4Lie4LiyCivguIjguLkKK+C4iOC4ueC5iAor4LiI4Li54LmI4LmGCivguIjguLnguYkKK+C4iOC4ueC5iwor4LiI4Li54LiHCivguIjguLnguIfguIjguKHguLnguIEKK+C4iOC4ueC4h+C5g+C4iAor4LiI4Li54LiH4LiZ4Liy4LiH4LmA4LiC4LmJ4Liy4Lir4LmJ4Lit4LiHCivguIjguLnguIfguJnguLLguIfguKXguLXguKXguLIKK+C4iOC4ueC4h+C4oeC4t+C4rQor4LiI4Li54LmJ4LiI4Li14LmJCivguIjguLnguYvguIjguLXguYsKK+C4iOC4ueC5iOC5guC4iOC4oQor4LiI4Li54LmK4LiUCivguIjguLnguJoKK+C4iOC4ueC4muC4neC4uOC5iOC4mQor4LiI4Li54Lij4LiTCivguIjguLnguYjguKXguLnguYgKK+C5gOC4iAor4LmA4LiI4LmK4LiBCivguYDguIjguYrguIHguJXguLfguYjguJnguYTguJ8KK+C5gOC4iOC5iOC4hwor4LmA4LiI4LmJ4LiHCivguYDguIjguYrguIcKK+C5gOC4iOC5h+C4lAor4LmA4LiI4LmH4LiU4LiK4Lix4LmI4Lin4LmC4LiE4LiV4LijCivguYDguIjguYfguJTguJXguLDguITguKXguLUKK+C5gOC4iOC4lOC4teC4oi0KK+C5gOC4iOC4lOC4teC4ouC5jAor4LmA4LiI4LiU4Li14Lii4LiW4Liy4LiZCivguYDguIjguJTguLXguKLguYzguJfguLTguKgKK+C5gOC4iOC4lOC4teC4ouC4quC4luC4suC4mQor4LmA4LiI4LiVCivguYDguIjguJUtCivguYDguIjguJXguITguJXguLQKK+C5gOC4iOC4leC4iOC4s+C4meC4hwor4LmA4LiI4LiV4LiZ4LiyCivguYDguIjguJXguJnguLLguKPguKHguJPguYwKK+C5gOC4iOC4leC4nuC4seC4h+C4hOC4tQor4LmA4LiI4LiV4Lig4Li54LiVCivguYDguIjguJXguKHguLnguKXguYDguJ7guKXguLTguIcKK+C5gOC4iOC4leC4oeC4ueC4peC5gOC4nuC4peC4tOC4h+C4neC4o+C4seC5iOC4hwor4LmA4LiI4LiV4Liq4Li04LiBCivguYDguIjguJXguLTguKItCivguYDguIjguYLguJXguKfguLTguKHguLjguJXguLQKK+C5gOC4iOC4mQor4LmA4LiI4LiZ4LiI4LiaCivguYDguIjguJnguIjguLHguJQKK+C5gOC4iOC4meC5g+C4iAor4LmA4LiI4LmH4LiaCivguYDguIjguYfguJrguYTguILguYkKK+C5gOC4iOC5h+C4muC5geC4hOC5ieC4mQor4LmA4LiI4LmH4Lia4LmD4LiICivguYDguIjguYfguJrguIrguYnguLPguJnguYnguLPguYPguIgKK+C5gOC4iOC5h+C4muC4l+C5ieC4reC4hwor4LmA4LiI4LmH4Lia4Lib4Lin4LiUCivguYDguIjguYfguJrguJvguYjguKfguKIKK+C5gOC4iOC5h+C4muC4o+C5ieC4reC4mQor4LmA4LiI4LmH4Lia4LmB4Liq4LiaCivguYDguIjguKPguIjguLIKK+C5gOC4iOC4o+C4tOC4jQor4LmA4LiI4Lij4Li04LiN4LiV4Liy4LmA4LiI4Lij4Li04LiN4LmD4LiICivguYDguIjguKPguLTguI3guJ7guKMKK+C5gOC4iOC4o+C4tOC4jeC4nuC4seC4meC4mOC4uOC5jAor4LmA4LiI4Lij4Li04LiN4Lij4Lit4LiiCivguYDguIjguKPguLTguI3guKrguKHguJPguJjguKPguKPguKEKK+C5gOC4iOC4o+C4tOC4jeC4reC4suC4q+C4suC4owor4LmA4LiI4Lij4Li04LiUCivguYDguIjguKPguLXguKLguIcKK+C5gOC4iOC4peC4teC4ouC4hwor4LmA4LiI4Lin4LmH4LiUCivguYDguIjguKnguI7guLIKK+C5gOC4iOC5iuC4quC4seC4pwor4LmA4LiI4LitCivguYDguIjguYjguK0KK+C5gOC4iOC5i+C4rQor4LmA4LiI4LmL4Lit4LmA4LiI4LmK4Lit4LiwCivguYDguIjguK3guKPguYzguYDguKHguYDguJnguLXguKLguKEKK+C5gOC4iOC4reC4sAor4LmA4LiI4LiyCivguYDguIjguYjguLIKK+C5gOC4iOC5ieC4sgor4LmA4LiI4LmK4LiyCivguYDguIjguYnguLLguIHguKPguKEKK+C5gOC4iOC5ieC4suC4geC4o+C4o+C4oQor4LmA4LiI4LmJ4Liy4LiB4Lij4Lij4Lih4LiZ4Liy4Lii4LmA4Lin4LijCivguYDguIjguYnguLLguIHguKPguLDguJfguKPguKfguIcKK+C5gOC4iOC5ieC4suC4geC4teC5ieC5gOC4iOC5ieC4suC4geC4suC4owor4LmA4LiI4LmJ4Liy4LiB4Li5CivguYDguIjguYnguLLguILguKPguLHguKcKK+C5gOC4iOC5ieC4suC4guC4reC4hwor4LmA4LiI4LmJ4Liy4LiC4LiyCivguYDguIjguYnguLLguILguYnguLIKK+C5gOC4iOC5ieC4suC4guC5ieC4suC4p+C5geC4lOC4h+C5geC4geC4h+C4o+C5ieC4reC4mQor4LmA4LiI4LmJ4Liy4LiC4Li44LiZ4Lih4Li44Lil4LiZ4Liy4LiiCivguYDguIjguYnguLLguILguLjguJnguKHguLnguKXguJnguLLguKIKK+C5gOC4iOC5ieC4suC5hOC4guC5iQor4LmA4LiI4LmJ4Liy4LiE4LiT4LiwCivguYDguIjguYnguLLguITguKPguK3guIEKK+C5gOC4iOC5ieC4suC4hOC4suC4o+C4oQor4LmA4LiI4LmJ4Liy4LiE4Li44LiTCivguYDguIjguYnguLLguITguLjguJPguIjguK3guKEKK+C5gOC4iOC5ieC4suC5geC4h+C5iOC5gOC4iOC5ieC4suC4h+C4reC4mQor4LmA4LiI4LmJ4Liy4LmB4LiH4LmI4LmB4Liq4LiZ4LiH4Lit4LiZCivguYDguIjguYnguLLguIjguK3guKEKK+C5gOC4iOC5ieC4suC4iOC4reC4oeC4oeC4suC4o+C4lOC4sgor4LmA4LiI4LmJ4Liy4LiI4Liz4LiZ4Lin4LiZCivguYDguIjguYnguLLguIjguLPguJnguLMKK+C5gOC4iOC5iOC4suC4iOC4uOC4gQor4LmA4LiI4LmJ4Liy4LiK4Li14Lin4Li04LiVCivguYDguIjguYnguLLguIrguLnguYkKK+C5gOC4iOC5ieC4suC5gOC4i+C5h+C4mQor4LmA4LiI4LmJ4Liy4LmA4LiL4LmH4LiZ4LmA4LiV4LmJ4LiZ4LiV4LmJ4Liz4Lia4Li44LiUCivguYDguIjguYnguLLguJXguLHguKcKK+C5gOC4iOC5ieC4suC4luC5ieC4reC4ouC4q+C4oeC4reC4hOC4p+C4suC4oQor4LmA4LiI4LmJ4Liy4LiX4LmI4LiyCivguYDguIjguYnguLLguJfguLXguYgKK+C5gOC4iOC5ieC4suC4l+C4uOC4geC4guC5jAor4LmA4LiI4LmJ4Liy4LmE4LiX4LiiCivguYDguIjguYnguLLguJnguLLguKIKK+C5gOC4iOC5ieC4suC5gOC4meC4t+C5ieC4rQor4LmA4LiI4LmJ4Liy4Lia4LmJ4Liy4LiZCivguYDguIjguYnguLLguJrguYjguLLguKcKK+C5gOC4iOC5ieC4suC4muC4uOC4jeC4meC4suC4ouC4hOC4uOC4kwor4LmA4LiI4LmJ4Liy4LmA4Lia4Li14LmJ4LiiCivguYDguIjguYnguLLguJvguKPguLDguITguLjguJMKK+C5gOC4iOC5ieC4suC4m+C4o+C4sOC4hOC4ueC5ieC4mQor4LmA4LiI4LmJ4Liy4Lib4Li54LmICivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJkKK+C5gOC4iOC5ieC4suC4nuC4meC4seC4geC4h+C4suC4meC4muC4seC4h+C4hOC4seC4muC4hOC4lOC4tQor4LmA4LiI4LmJ4Liy4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4Lie4Li04LiX4Lix4LiB4Lip4LmM4LiX4Lij4Lix4Lie4Lii4LmMCivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJnguKDguLnguKnguLLguKHguLLguKXguLIKK+C5gOC4iOC5ieC4suC4nuC4meC4seC4geC4h+C4suC4meC4quC4meC4oeC4nuC4peC5gOC4o+C4t+C4reC4mQor4LmA4LiI4LmJ4Liy4Lie4Lij4Liw4LmA4LiU4LiK4LiZ4Liy4Lii4Lie4Lij4Liw4LiE4Li44LiTCivguYDguIjguYnguLLguJ7guKPguLDguKLguLIKK+C5gOC4iOC5ieC4suC4nuC5iOC4rQor4LmA4LiI4LmJ4Liy4Lie4Liy4Lii4Li4CivguYDguIjguYnguLLguJ/guYnguLIKK+C5gOC4iOC5ieC4suC4n+C5ieC4suC4q+C4jeC4tOC4h+C4quC4tOC4o+C4tOC4meC4mOC4owor4LmA4LiI4LmJ4Liy4Lig4Liy4LieCivguYDguIjguYnguLLguKDguLLguKnguLUKK+C5gOC4iOC5ieC4suC4oeC4o+C4lOC4gQor4LmA4LiI4LmJ4Liy4Lih4Li34LitCivguYDguIjguYnguLLguYHguKHguYgKK+C5gOC4iOC5ieC4suC5hOC4oeC5iOC4oeC4teC4qOC4suC4pSDguKrguKHguKDguLLguKPguYTguKHguYjguKHguLXguKfguLHguJQKK+C5gOC4iOC5ieC4suC4ouC4qAor4LmA4LiI4LmJ4Liy4LmA4Lij4Li34Lit4LiZCivguYDguIjguYnguLLguYDguKXguYjguKvguYwKK+C5gOC4iOC5ieC4suC4quC4seC4pwor4LmA4LiI4LmJ4Liy4Liq4Liy4LinCivguYDguIjguYnguLLguKrguLPguJnguKfguJkKK+C5gOC4iOC5ieC4suC4quC4s+C4muC4seC4lOC4quC4s+C4meC4p+C4mQor4LmA4LiI4LmJ4Liy4Liq4Liz4Lij4Liy4LiNCivguYDguIjguYnguLLguKvguJnguYnguLIKK+C5gOC4iOC5ieC4suC4q+C4meC5ieC4suC5gOC4iOC5ieC4suC4leC4sgor4LmA4LiI4LmJ4Liy4Lir4LiZ4LmJ4Liy4LiX4Li14LmICivguYDguIjguYnguLLguKvguJnguLXguYkKK+C5gOC4iOC5ieC4suC4q+C4peC4p+C4hwor4LmA4LiI4LmJ4Liy4Lir4Lil4LmI4Lit4LiZCivguYDguIjguYnguLLguKvguLHguKcKK+C5gOC4iOC5ieC4suC4reC4mOC4tOC4geC4suC4owor4LmA4LiI4LmJ4Liy4Lit4Liy4Lij4Lih4LiT4LmMCivguYDguIjguYnguLLguK3guLLguKfguLLguKoKK+C5gOC4iOC4suC4sAor4LmA4LiI4Liy4Liw4LiI4LiHCivguYDguIjguLLguLDguIjguKHguLnguIEKK+C5gOC4iOC4tOC5iOC4hwor4LmA4LiI4Li04LiUCivguYDguIjguLTguJTguIjguYnguLIKK+C5gOC4iOC4tOC5iOC4mQor4LmA4LiI4Li04LihCivguYDguIjguLXguKIKK+C5gOC4iOC4teC4ouC4hwor4LmA4LiI4Li14Lii4LiUCivguYDguIjguLXguKLguJTguKLguLIKK+C5gOC4iOC4teC4ouC4mQor4LmA4LiI4Li14LmL4Lii4LiZCivguYDguIjguLXguYrguKLguJoKK+C5gOC4iOC4teC4ouC4oQor4LmA4LiI4Li14LmL4Lii4Lih4LmA4LiI4Li14LmJ4Lii4LihCivguYDguIjguLXguKLguKHguKrguLHguIfguILguLLguKMKK+C5gOC4iOC4teC4ouC4owor4LmA4LiI4Li14Lii4Lij4Liw4LmE4LiZCivguYDguIjguLXguKLguKPguLDguJrguLLguJQKK+C5gOC4iOC4teC4ouC4pwor4LmA4LiI4Li14LmK4Lii4Lin4LiI4LmK4Liy4LinCivguYDguIjguLfguK0KK+C5gOC4iOC4t+C4reC4iOC4suC4hwor4LmA4LiI4Li34Lit4LiI4Liy4LiZCivguYDguIjguLfguYjguK3guJkKK+C5gOC4iOC4t+C4reC4m+C4mQor4LmA4LiI4Li34LmJ4Lit4LiiCivguYDguIjguLfguYnguK3guKLguYHguIjguYnguKcKK+C5gOC4iOC4t+C4reC4quC4oQor4LmB4LiICivguYHguIjguYkKK+C5geC4iOC5iwor4LmB4LiI4LiBCivguYHguIjguIHguIjguYjguLLguKIKK+C5geC4iOC4geC5geC4iOC4hwor4LmB4LiI4LiB4LmE4Lie4LmICivguYHguIjguIHguLHguJkKK+C5geC4iOC4hwor4LmB4LiI4LmI4LiHCivguYHguIjguYnguIcKK+C5geC4iOC5ieC4h+C4hOC4p+C4suC4oQor4LmB4LiI4LiH4Lij4Li54LibCivguYHguIjguIfguKXguK3guJkKK+C5geC4iOC4h+C4quC4teC5iOC5gOC4muC4teC5ieC4ogor4LmB4LiI4LiI4LiZCivguYHguIjguIjguLHguJkKK+C5geC4iOC5iuC4lAor4LmB4LiI4LiU4LmB4LiI4LmJCivguYHguIjguYrguJTguYHguIjguYsKK+C5geC4iOC4leC4owor4LmB4LiI4LmJ4LiZCivguYHguIjguJoKK+C5geC4iOC5iOC4oQor4LmB4LiI4LmI4Lih4LmB4LiI4LmJ4LiHCivguYHguIjguYjguKHguYPguKoKK+C5geC4iOC4owor4LmB4LiI4Lij4LiBCivguYHguIjguKPguIcKK+C5geC4iOC4pwor4LmB4LiI4LmI4LinCivguYHguIjguYnguKcKK+C5geC4iOC5ieC4p+C5hgor4LmB4LiI4LmL4LinCivguYHguIjguYvguKfguYHguKvguKfguKcKK+C5geC4iOC4sAor4LmC4LiI4LiBCivguYLguIjguYrguIEKK+C5guC4iOC4hwor4LmC4LiI4LiH4LiB4Lij4Liw4LmA4Lia4LiZCivguYLguIjguIfguIHguKPguLDguYDguJrguJnguJXguLXguYDguKvguKXguYfguIEKK+C5guC4iOC5iOC4h+C4hOC4o+C4tuC5iOC4oQor4LmC4LiI4LmL4LiH4LiE4Lij4Li24LmI4LihCivguYLguIjguYjguIfguITguKPguLjguYjguKEKK+C5guC4iOC4h+C5guC4hOC4o+C5iOC4hwor4LmC4LiI4LmL4LiH4LmA4LiI4LmL4LiHCivguYLguIjguYjguIfguYHguIjguYnguIcKK+C5guC4iOC4lwor4LmC4LiI4LiX4LiB4LmMCivguYLguIjguJfguYDguIjguYnguLIKK+C5guC4iOC4l+C4meC4sgor4LmC4LiI4LiX4Lii4LmMCivguYLguIjguJkKK+C5guC4iOC4meC4o+C5iOC4oQor4LmC4LiI4LihCivguYLguIjguKHguJXguLUKK+C5guC4iOC4oeC4l+C4seC4ngor4LmC4LiI4LijCivguYLguIjguKMtCivguYLguIjguKPguIHguKPguKPguKEKK+C5guC4iOC4o+C4quC4peC4seC4lAor4LmC4LiI4LilCivguYLguIjguKkKK+C5guC4iOC4qeC4iOC4mQor4LmC4LiI4Lip4LiI4Lix4LiZCivguYLguIjguKnguYHguIgKK+C5g+C4iAor4LmD4LiI4LiB4Lil4Liy4LiHCivguYPguIjguIHguKfguYnguLLguIcKK+C5g+C4iOC4guC4uOC5iOC4mQor4LmD4LiI4LmB4LiC4LmH4LiHCivguYPguIjguITguKfguLLguKEKK+C5g+C4iOC4hOC4rQor4LmD4LiI4LmB4LiE4LiaCivguYPguIjguIfguYjguLLguKIKK+C5g+C4iOC4iOC4lOC5g+C4iOC4iOC5iOC4rQor4LmD4LiI4LiI4Li34LiUCivguYPguIjguYDguInguLfguYjguK3guKIKK+C5g+C4iOC4iuC4t+C5ieC4mQor4LmD4LiI4LiU4LizCivguYPguIjguJTguLUKK+C5g+C4iOC5gOC4lOC5h+C4lAor4LmD4LiI4LmA4LiU4Li14Lii4LinCivguYPguIjguYDguJTguLXguKLguKfguIHguLHguJkKK+C5g+C4iOC4leC5iOC4swor4LmD4LiI4LmA4LiV4Li04LiaCivguYPguIjguYHguJXguIEKK+C5g+C4iOC5guC4lQor4LmD4LiI4LiW4Li24LiHCivguYPguIjguJnguYnguK3guKIKK+C5g+C4iOC4muC4suC4mQor4LmD4LiI4Lia4Li44LiNCivguYPguIjguYDguJrguLIKK+C5g+C4iOC4m+C4peC4suC4i+C4tOC4pwor4LmD4LiI4Lib4LmJ4LizCivguYPguIjguYHguJvguYnguKcKK+C5g+C4iOC4neC5iOC4rQor4LmD4LiI4LmA4Lie4LiK4LijCivguYPguIjguKHguLIKK+C5g+C4iOC4oeC4t+C4rQor4LmD4LiI4LmE4Lih4LmI4LiU4Li1CivguYPguIjguYTguKHguYnguYTguKrguYnguKPguLDguIHguLMKK+C5g+C4iOC4ouC4seC4geC4qeC5jAor4LmD4LiI4LmA4Lii4LmH4LiZCivguYPguIjguKPguYnguK3guJkKK+C5g+C4iOC4o+C5ieC4suC4ogor4LmD4LiI4LmA4Lij4LmH4LinCivguYPguIjguKXguK3guKIKK+C5g+C4iOC4quC4ueC4hwor4LmD4LiI4LmA4Liq4Liy4LiwCivguYPguIjguYDguKrguLXguKIKK+C5g+C4iOC4q+C4meC4seC4geC5geC4meC5iOC4mQor4LmD4LiI4Lir4Liy4LiiCivguYPguIjguYDguKvguLXguYjguKLguKfguYHguKvguYnguIcKK+C5g+C4iOC5g+C4q+C4jeC5iOC5g+C4iOC5guC4lQor4LmD4LiI4Lit4LmI4Lit4LiZCivguYTguIgKK+C5hOC4iOC5iQor4LmE4LiI4LmJ4LmGCivguYTguIjguKMKK+C4iQor4LiJ4LiBCivguInguIHguIjguKfguLHguIEKK+C4ieC4geC4ieC4p+C4ogor4LiJ4LiB4LiK4Li04LiHCivguInguIHguKPguKPguIjguYwKK+C4ieC4geC4o+C4o+C4iOC5jOC4peC4s+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiJ4LiB4Lip4Lix4LiV4Lij4Li04Lii4LmMCivguInguIHguLLguIgKK+C4ieC4geC4suC4iOC4ieC4geC4o+C4o+C4iOC5jAor4LiJ4LiB4Liy4Lih4Liy4Lie4LiI4LijCivguInguIHguLLguKHguLLguKfguIjguKMKK+C4ieC4hwor4LiJ4LiH4LiZCivguInguIfguLLguKIKK+C4ieC4l+C4p+C4suC4owor4LiJ4LiX4Liy4LiZ4Lio4Liy4Lil4LiyCivguInguJfguLbguIcKK+C4ieC4meC4p+C4mQor4LiJ4LiZ4Lix4LiHCivguInguJnguLLguIEKK+C4ieC4meC4swor4LiJ4Lia4LiaCivguInguJrguLHguIcKK+C4ieC4muC4seC4lAor4LiJ4Lia4Lix4LiaCivguInguJrguLMKK+C4ieC4nuC4teC4quC4leC4tOC4oS0KK+C4ieC4oQor4LiJ4Lih4LiaCivguInguKHguKfguIEKK+C4ieC4oeC4p+C4ogor4LiJ4Lih4LmI4Lit4LiHCivguInguKHguLHguIcKK+C4ieC4oeC4seC4mQor4LiJ4Lih4LiyCivguInguKHguLMKK+C4ieC4pQor4LiJ4Lil4Lin4LiiCivguInguKXguKfguKLguInguKXguLLguJQKK+C4ieC4peC4reC4hwor4LiJ4Lil4Lit4LiH4LmE4LiUCivguInguKXguK3guIfguJ7guKPguLDguIHguKPguJnguYnguK3guKIKK+C4ieC4peC4reC4h+C4nuC4o+C4sOC5gOC4meC4leC4owor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4Lia4Liy4LiXCivguInguKXguK3guIfguJ7guKPguLDguKjguK0KK+C4ieC4peC4reC4h+C4nuC4o+C4sOC4q+C4seC4leC4luC5jAor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4Lit4LiH4LiE4LmMCivguInguKXguK3guIfguK3guIfguITguYwKK+C4ieC4peC4reC4oQor4LiJ4Lil4Lit4Lih4LiX4LmJ4Liy4Lii4LiN4Lin4LiZCivguInguKXguLHguIEKK+C4ieC4peC4seC4mgor4LiJ4Lil4Liy4LiBCivguInguKXguLLguIHguJrguLLguIcKK+C4ieC4peC4suC4hwor4LiJ4Lil4Liy4LiUCivguInguKXguLLguKEKK+C4ieC4peC4suC4oeC5gOC4quC4t+C4rQor4LiJ4Lil4Liy4LiiCivguInguKXguLTguKcKK+C4ieC4peC4teC4gQor4LiJ4Lil4Li4CivguInguKXguLjguIHguInguKXguKfguKIKK+C4ieC4peC4uOC4peC4suC4ogor4LiJ4Lil4Li5CivguInguKfguKIKK+C4ieC4p+C4ouC4ieC4suC4mgor4LiJ4Lin4LiwCivguInguKfguLHguJTguYDguInguKfguLXguKLguJkKK+C4ieC4p+C4suC4hwor4LiJ4Lin4Li1CivguInguKjguIEKK+C4ieC5ieC4rQor4LiJ4Lit4LiBCivguInguYnguK3guYLguIHguIcKK+C4ieC5iOC4reC4hwor4LiJ4LmJ4Lit4LiJ4LilCivguInguK3guJTguYYKK+C4ieC5iOC4reC4ogor4LiJ4LmJ4Lit4Lij4Liy4Lip4LiO4Lij4LmM4Lia4Lix4LiH4Lir4Lil4Lin4LiHCivguInguK3guYDguKXguLLguLAKK+C4ieC4sAor4LiJ4Liw4LiB4LiwCivguInguLDguInguLLguJQKK+C4ieC4sOC4ieC4suC4mQor4LiJ4Liw4LiJ4LmI4LizCivguInguLDguInguLXguYgKK+C4ieC4sOC5gOC4ieC4t+C5iOC4reC4ogor4LiJ4Liw4LiV4LmJ4LiyCivguInguLDguJnguLHguYnguJkKK+C4ieC4sOC4meC4teC5iQor4LiJ4Liw4Lir4LiZ4LmJ4Liy4LmC4Lij4LiHCivguInguLDguK3guYnguK3guJkKK+C4ieC4seC4geC4geC4sAor4LiJ4Lix4LiQCivguInguLHguJQKK+C4ieC4seC4leC4owor4LiJ4Lix4LiV4LijLQor4LiJ4Lix4LiV4Lij4Lia4Lij4Lij4LiTCivguInguLHguJXguKPguKHguIfguITguKUKK+C4ieC4seC4leC4o+C4quC4suC4oeC4iuC4seC5ieC4mQor4LiJ4Lix4LiX4LiX4Lix4LiZ4LiV4LmMCivguInguLHguJkKK+C4ieC4seC4meC5g+C4lAor4LiJ4Lix4LiZ4LiXLQor4LiJ4Lix4LiZ4LiX4LmMCivguInguLHguJnguJfguKXguLHguIHguKnguJPguYwKK+C4ieC4seC4meC4l+C4p+C4tOC4peC4suC4qgor4LiJ4Lix4LiZ4LiX4Lio4Liy4Liq4LiV4Lij4LmMCivguInguLHguJnguJfguLAKK+C4ieC4seC4meC4l+C4sgor4LiJ4Lix4LiZ4LiX4Liy4LiE4LiV4Li0CivguInguLHguJnguJfguLLguJnguLjguKHguLHguJXguLQKK+C4ieC4seC4meC4meC4seC5ieC4mQor4LiJ4Lix4LiZ4Lin4Li44LiV4Li0CivguInguLHguJoKK+C4ieC4seC4muC5hgor4LiJ4Lix4Lia4Lie4Lil4Lix4LiZCivguInguLHguJrguYTguKcKK+C4ieC4seC4nuC4nuC4o+C4o+C4k+C4o+C4seC4h+C4quC4tQor4LiJ4Lix4Lii4Lii4LiyCivguInguYjguLIKK+C4ieC4suC4gQor4LiJ4Liy4LiB4LiN4Li14LmI4Lib4Li44LmI4LiZCivguInguLLguIHguJXguLHguYnguIcKK+C4ieC4suC4geC4l+C4tOC5ieC4hwor4LiJ4Liy4LiB4LiZ4LmJ4Lit4LiiCivguInguLLguIHguJrguLHguIfguYDguJ7guKXguLTguIcKK+C4ieC4suC4geC5g+C4q+C4jeC5iAor4LiJ4Liy4LiHCivguInguYjguLLguIcKK+C4ieC5iOC4suC4ieC4suC4pwor4LiJ4Liy4LiUCivguInguLLguJTguInguLLguJkKK+C4ieC4suC4leC4geC4oOC4seC4ogor4LiJ4Liy4LiX4LiZCivguInguLLguJkKK+C4ieC4suC4mgor4LiJ4Liy4Lia4LiJ4Lin4LiiCivguInguLLguJsKK+C4ieC4suC4ogor4LiJ4Liy4Lii4LmA4LiJ4Li04LiUCivguInguLLguKLguLIKK+C4ieC4suC4ouC4suC4peC4seC4geC4qeC4k+C5jAor4LiJ4Liy4LinCivguInguLLguKfguYLguInguYgKK+C4ieC5iOC4swor4LiJ4Liz4LiJ4LiyCivguInguLPguYDguInguIcKK+C4ieC4s+C5geC4ieC4sAor4LiJ4Li04LmI4LiHCivguInguLTguYjguIfguJXguKPguLHguIcKK+C4ieC4tOC4mQor4LiJ4Li04LiZ4LiXLQor4LiJ4Li04LiZ4LiX4LmMCivguInguLTguJnguJfguKTguIHguKnguYwKK+C4ieC4tOC4mgor4LiJ4Li04Lia4Lir4Liy4LiiCivguInguLTguKHguJ7guKXguLUKK+C4ieC4tOC4pwor4LiJ4Li14LmICivguInguLXguIEKK+C4ieC4teC4geC4q+C4meC5ieC4sgor4LiJ4Li14LiUCivguInguLXguJTguKLguLIKK+C4ieC4uAor4LiJ4Li44LiBCivguInguLjguIHguITguLTguJQKK+C4ieC4uOC4geC5g+C4iAor4LiJ4Li44LiB4LmA4LiJ4Li04LiZCivguInguLjguIHguKXguLDguKvguLjguIEKK+C4ieC4uOC4lAor4LiJ4Li44LiZCivguInguLjguJnguYDguInguLXguKLguKcKK+C4ieC4uOC4mwor4LiJ4Li44LibLQor4LiJ4Li44Lib4Lio4Liy4Liq4LiV4Lij4LmMCivguInguLjguKIKK+C4ieC4uOC4ouC4ieC4suC4ogor4LiJ4Li44Lii4LiJ4Liy4Lii4LmA4LiC4LmJ4Liy4Lin4Lix4LiHCivguInguLnguYgKK+C4ieC4ueC5iOC4ieC4teC5iAor4LiJ4Li54LiUCivguInguLnguJTguInguLLguJQKK+C5gOC4iQor4LmA4LiJ4LiBCivguYDguInguYLguIEKK+C5gOC4ieC5iOC4hwor4LmA4LiJ4LmE4LiJCivguYDguInguJQKK+C5gOC4ieC4lwor4LmA4LiJ4LiZ4Li14Lii4LiZCivguYDguInguJ7guLLguLAKK+C5gOC4ieC4nuC4suC4sOC4geC4suC4pQor4LmA4LiJ4Lie4Liy4Liw4LiB4Li04LiICivguYDguInguJ7guLLguLDguJXguLHguKcKK+C5gOC4ieC4nuC4suC4sOC4nuC4o+C4sOC4nuC4seC4geC4leC4o+C5jAor4LmA4LiJ4Lie4Liy4Liw4Lir4LiZ4LmJ4LiyCivguYDguInguKIKK+C5gOC4ieC4ouC5hgor4LmA4LiJ4Lii4LmA4Lih4LiiCivguYDguInguKXguKIKK+C5gOC4ieC4peC4pwor4LmA4LiJ4Lil4LiyCivguYDguInguKXguLTguKEKK+C5gOC4ieC4peC4tOC4oeC4nuC4o+C4sOC4iuC4meC4oeC4nuC4o+C4o+C4qeC4sgor4LmA4LiJ4Lil4Li14LmI4LiiCivguYDguInguKXguLXguKLguIcKK+C5gOC4ieC4peC4teC5iOC4ouC4hwor4LmA4LiJ4Lil4Li14Lii4LiaCivguYDguInguKXguLXguKLguKcKK+C5gOC4ieC4peC4teC4ouC4p+C5g+C4iAor4LmA4LiJ4Lil4Li14Lii4Lin4LiJ4Lil4Liy4LiUCivguYDguInguKfguLXguKLguIcKK+C5gOC4ieC4p+C4teC4ouC4h+C4muC5iOC4sgor4LmA4LiJ4Lin4Li14Lii4LiZCivguYDguInguK3guLDguYHguInguLAKK+C5gOC4ieC4sgor4LmA4LiJ4Liy4LiB4LmK4Lin4LiiCivguYDguInguLLguYLguInguJQKK+C5gOC4ieC4suC4ruC4t+C5ieC4rQor4LmA4LiJ4Liy4LiwCivguYDguInguLLguLDguYYKK+C5gOC4ieC4suC4sOC4m+C4peC5iOC4reC4hwor4LmA4LiJ4Li04LiUCivguYDguInguLTguJTguInguLHguJkKK+C5gOC4ieC4tOC4lOC4ieC4suC4ogor4LmA4LiJ4Li04LiU4LiJ4Li04LiZCivguYDguInguLTguJoKK+C5gOC4ieC4tOC4muC5hgor4LmA4LiJ4Li14Lii4LiHCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguJTguLMKK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4meC4suC4h+C5geC4rQor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4Lih4Lit4LiNCivguYDguInguLXguKLguJQKK+C5gOC4ieC4teC4ouC4mgor4LmA4LiJ4Li14Lii4Lia4LiC4Liy4LiUCivguYDguInguLXguKLguJrguJ7guKXguLHguJkKK+C5gOC4ieC4teC4ouC4muC5geC4q+C4peC4oQor4LmA4LiJ4Li14Lii4LinCivguYDguInguLXguYjguKLguKcKK+C5gOC4ieC4teC4ouC4p+C4ieC4uOC4mQor4LmA4LiJ4Li34Lit4LiZCivguYDguInguLfguYjguK3guKIKK+C5gOC4ieC4t+C5iOC4reC4ouC5hgor4LmA4LiJ4Li34LmI4Lit4Lii4LiK4LiyCivguYHguIkKK+C5geC4ieC5iAor4LmB4LiJ4LiBCivguYHguInguIHguYYKK+C5geC4ieC4hwor4LmB4LiJ4LmI4LiHCivguYHguInguYLguJ7guKIKK+C5geC4ieC4peC4mgor4LmB4LiJ4Lil4LmJ4LihCivguYHguInguKXguLAKK+C5geC4ieC4pwor4LmB4LiJ4LiwCivguYHguInguLDguYHguJrguLAKK+C5guC4iQor4LmC4LiJ4LmICivguYLguInguYDguIEKK+C5guC4ieC5iOC4h+C4ieC5iOC4suC4hwor4LmC4LiJ4LiH4LmA4LiJ4LiHCivguYLguInguYjguInguLLguKcKK+C5guC4ieC4lAor4LmC4LiJ4LiU4LmA4LiJ4LiyCivguYLguInguJnguJQKK+C5guC4ieC4mgor4LmC4LiJ4LmA4Lia4LmKCivguYLguInguKEKK+C5guC4ieC4oeC4h+C4suC4oQor4LmC4LiJ4Lih4LiJ4Liy4LiiCivguYLguInguKHguYDguInguKXguLIKK+C5guC4ieC4oeC4leC4o+C4uQor4LmC4LiJ4Lih4Lii4LiHCivguYLguInguKHguKjguKPguLUKK+C5guC4ieC4oeC4q+C4meC5ieC4sgor4LmC4LiJ4Lil4LiBCivguYTguInguJkKK+C5hOC4ieC5hOC4pQor4LiKCivguIrguIEKK+C4iuC4geC4oeC4p+C4ogor4LiK4LiB4LiyCivguIrguIQtCivguIrguITguJTguLUKK+C4iuC4hOC4seC4leC4leC4o+C4seC4ogor4LiK4LiHCivguIrguIfguITguLIKK+C4iuC4h+C5guC4hAor4LiK4LiH4LiGLQor4LiK4LiH4LiG4LmMCivguIrguIfguIbguLIKK+C4iuC4h+C5guC4peC4hwor4LiK4LiO4LiyCivguIrguI7guLLguIHguKXguLXguJoKK+C4iuC4juC4suC5gOC4lOC4tOC4meC4q+C4mQor4LiK4LiO4Liy4LiY4Liy4LijCivguIrguI7guLLguYHguJvguKXguIcKK+C4iuC4juC4suC4nuC4reC4gQor4LiK4LiO4Liy4Lih4Lir4Liy4LiB4LiQ4Li04LiZCivguIrguI7guLLguKHguLHguIfguKnguLUKK+C4iuC4juC4suC4oeC4seC4h+C4quC4tQor4LiK4LiO4Li04LilCivguIrguJQKK+C4iuC4lOC4iuC5ieC4reC4ogor4LiK4LiU4LmA4LiK4LiiCivguIrguJTguYPguIrguYkKK+C4iuC4l+C4tuC4hwor4LiK4LiZCivguIrguJktCivguIrguJnguIEKK+C4iuC4meC4gS0KK+C4iuC4meC4geC4geC4o+C4o+C4oQor4LiK4LiZ4LiK4LmJ4Liy4LiHCivguIrguJnguJnguLUKK+C4iuC4meC4muC4lwor4LiK4LiZ4LihLQor4LiK4LiZ4Lih4LmMCivguIrguJnguKHguJ7guKPguKPguKnguLIKK+C4iuC4meC4oeC4suC4nuC4tOC4mOC4tQor4LiK4LiZ4Lih4Liy4Lii4Li44Lie4Li04LiY4Li1CivguIrguJnguKfguJkKK+C4iuC4meC4q+C4oeC4ueC5iOC4meC5ieC4reC4ogor4LiK4LiZ4LiwCivguIrguJnguLHguIEKK+C4iuC4meC4seC4geC4leC4tOC4lOC4q+C4peC4seC4hwor4LiK4LiZ4LiyCivguIrguJnguLLguIcKK+C4iuC4meC4tOC4lAor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMCivguIrguYDguJnguJXguJXguLUKK+C4iuC4muC4sgor4LiK4Lia4Liy4Lir4LiZ4Li5CivguIrguJvguYLguKLguIQKK+C4iuC4oQor4LiK4Lih4LiK4Lix4LinCivguIrguKHguIrguLLguI0KK+C4iuC4oeC5gOC4iuC4ogor4LiK4Lih4LmE4LiKCivguIrguKHguJTguIrguKHguYnguK3guKIKK+C4iuC4oeC4meC4suC4lAor4LiK4Lih4LiaCivguIrguKHguYDguJvguLLguLAKK+C4iuC4oeC4nuC4uQor4LiK4Lih4Lie4Li54LmICivguIrguKHguJ7guLnguJfguKfguLXguJsKK+C4iuC4oeC4nuC4ueC4meC4lwor4LiK4Lih4Lie4Li54LiZ4Li44LiXCivguIrguKHguJ7guLnguJ7guLLguJTguJrguYjguLIKK+C4iuC4oeC4o+C4oQor4LiK4Lih4LmA4Lil4Liy4LiwCivguIrguKHguKrguKfguJnguKrguKfguKPguKPguITguYwKK+C4iuC4oeC5ieC4reC4ogor4LiK4Lih4Lix4LiZCivguIrguKHguLIKK+C4iuC4oeC5ieC4suC4ogor4LiK4LmE4LihCivguIrguKIKK+C4iuC4oi0KK+C4iuC4ouC4sgor4LiK4LmC4LiiCivguIrguKMKK+C4iuC4o+C4l+C4tuC4hwor4LiK4Lij4LmC4Lih4LilCivguIrguKPguYTguKEKK+C4iuC4o+C4o+C4suC4hwor4LiK4Lij4Lij4Li04LiZCivguIrguKPguYDguKPguLfguK3guJQKK+C4iuC4o+C5geC4o+C4hwor4LiK4Lij4LmB4Lij4LmI4LiHCivguIrguKPguYLguKXguIcKK+C4iuC4o+C4reC4geC4iuC4o+C4seC4hwor4LiK4Lij4Lit4Lit4LiaCivguIrguKPguK3guLHguJQKK+C4iuC4o+C4reC5iOC4swor4LiK4Lij4Lit4Li34LmJ4LitCivguIrguKPguK3guLjguYjguKEKK+C4iuC4o+C4sAor4LiK4Lij4Liw4LiH4LihCivguIrguKPguLDguIfguYjguK3guJkKK+C4iuC4o+C4sOC4h+C4swor4LiK4Lij4Liw4LiU4Lix4LiUCivguIrguKPguLDguJTguLfguYjguJkKK+C4iuC4o+C4sOC5gOC4lOC4teC4ouC4lAor4LiK4Lij4Liw4LmA4LiU4Li14Lii4LiU4LiK4Lij4Liw4LiU4Lix4LiUCivguIrguKPguLDguJrguK3guJoKK+C4iuC4o+C4sOC4muC4suC4mgor4LiK4Lij4Liw4Lih4LiUCivguIrguKPguLDguKHguLHguKcKK+C4iuC4o+C4sOC4oeC4t+C5iOC4mQor4LiK4Lij4Liw4Lih4Li44LiB4LiK4Lij4Liw4Lih4Lit4LihCivguIrguKPguLDguKHguLjguYjguJkKK+C4iuC4o+C4sOC5gOC4oeC4teC4ouC4hwor4LiK4Lij4Liw4LmA4Lih4Li14Lii4LiZCivguIrguKPguLDguKXguK0KK+C4iuC4o+C4sOC4peC4reC4hwor4LiK4Lij4Liw4Lil4LmI4Lit4LiHCivguIrguKPguLDguKXguLHguYjguIcKK+C4iuC4o+C4sOC4peC4seC4lAor4LiK4Lij4Liw4Lil4LmJ4LizCivguIrguKPguLDguKXguLgKK+C4iuC4o+C4sOC5geC4peC4hwor4LiK4Lij4Liw4Lit4Lix4LiaCivguIrguKPguLDguK3guLLguJoKK+C4iuC4o+C4sOC5gOC4reC4oQor4LiK4Lij4Lix4LiUCivguIrguKPguLHguKcKK+C4iuC4o+C4sgor4LiK4Lij4Liy4LiB4Liy4LiB4Li1CivguIrguKPguLLguJjguKPguKPguKEKK+C4iuC4o+C4suC4mgor4LiK4Lij4Liy4Lia4LiK4Lij4Lix4LiaCivguIrguKPguLLguKDguLLguJ4KK+C4iuC4o+C4suC4ouC4uAor4LiK4Lij4Li04LiZCivguIrguKPguLjguIEKK+C4iuC4o+C4ueC4mgor4LiK4LilCivguIrguKUtCivguIrguKXguIjguKMKK+C4iuC4peC4iOC4seC4k+C4keC5jAor4LiK4Lil4LiK4Liy4LiV4Li0CivguIrguKXguJjguLLguKMKK+C4iuC4peC4mOC4suC4o+C4gQor4LiK4Lil4LiY4Li04LioCivguIrguKXguJjguLUKK+C4iuC4peC4meC4seC4ouC4meC5jAor4LiK4Lil4LiZ4LiyCivguIrguKXguYDguJnguJXguKMKK+C4iuC4peC4m+C4o+C4sOC4l+C4suC4mQor4LiK4Lil4Lih4Liy4Lij4LiECivguIrguKXguKrguJbguLLguJkKK+C4iuC4peC4seC4oeC4nuC4uAor4LiK4Lil4Liy4LiY4Liy4LijCivguIrguKXguLLguJ7guLjguIoKK+C4iuC4peC4suC4oeC4nuC4uOC4igor4LiK4Lil4Liy4Lil4Lix4LiiCivguIrguKXguLLguKjguLHguKIKK+C4iuC4peC4tQor4LiK4Lil4Li54LiB4LiyCivguIrguYDguKUKK+C4iuC5guC4peC4hwor4LiK4LmC4Lil4LiX4LijCivguIrguYLguKXguKEKK+C4iuC4py0KK+C4iuC5iOC4p+C4hwor4LiK4LmI4Lin4LiH4LiK4Lix4LiiCivguIrguYjguKfguIfguIrguLTguIcKK+C4iuC5iOC4p+C4h+C5guC4iuC4leC4tAor4LiK4LmI4Lin4LiH4LmD4LiK4LmJCivguIrguYjguKfguIfguJfguKPguLHguJ7guKLguYwKK+C4iuC5iOC4p+C4h+C4muC4suC4lwor4LiK4LmI4Lin4LiH4LmA4Lih4Li34Lit4LiHCivguIrguYjguKfguIfguKrguLTguJfguJjguLTguYwKK+C4iuC4p+C4lAor4LiK4Lin4LiZCivguIrguKfguJnguIrguKEKK+C4iuC4p+C4meC4q+C4seC4pwor4LiK4Lin4LiiCivguIrguYjguKfguKIKK+C4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4rQor4LiK4Lin4LijCivguIrguKfguKXguLTguJUKK+C4iuC4p+C4seC4gQor4LiK4Lin4LiyCivguIrguKfguLLguKUKK+C4iuC4p+C4suC4peC4sgor4LiK4LmI4LitCivguIrguK3guIEKK+C4iuC5h+C4reC4geC5guC4geC5gOC4peC4lQor4LiK4LmH4Lit4LiB4LmC4LiB4LmB4Lil4LiVCivguIrguK3guIHguIrguYnguLMKK+C4iuC4reC4hwor4LiK4LmI4Lit4LiHCivguIrguYnguK3guIcKK+C4iuC5iOC4reC4h+C4geC4uOC4lAor4LiK4LmI4Lit4LiH4LmA4LiC4LiyCivguIrguYjguK3guIfguYHguITguJoKK+C4iuC5iOC4reC4h+C4lOC4suC4pQor4LiK4LmI4Lit4LiH4LiV4Li14LiZ4LiB4LiyCivguIrguYnguK3guIfguJnguLLguIcKK+C4iuC5ieC4reC4h+C4meC4suC4h+C4hOC4peC4teC5iAor4LiK4LmI4Lit4LiH4LmE4LifCivguIrguYnguK3guIfguYHguKHguKcKK+C4iuC4reC4h+C4o+C4sOC4reC4sgor4LiK4Lit4LiZCivguIrguYjguK3guJkKK+C4iuC5ieC4reC4mQor4LiK4LmJ4Lit4LiZ4LiZ4Liy4LiHCivguIrguYnguK3guJnguKvguK3guKIKK+C4iuC4reC4mgor4LiK4Lit4Lia4LiB4LilCivguIrguK3guJrguYPguIgKK+C4iuC4reC4muC4mOC4o+C4o+C4oQor4LiK4Lit4Lia4Lie4LitCivguIrguK3guJrguKHguLLguJ7guLLguIHguKUKK+C4iuC5iOC4reC4n+C5ieC4sgor4LiK4Lit4LihCivguIrguYjguK3guKHguYjguKfguIcKK+C4iuC5iOC4reC4ogor4LiK4LmJ4Lit4LiiCivguIrguYnguK3guKLguIrguJQKK+C4iuC5ieC4reC4ouC4iuC5iOC4suC4h+C4o+C4swor4LiK4LmJ4Lit4Lii4LiZ4Liy4LiH4Lij4LizCivguIrguK3guKXguYzguIEKK+C4iuC5iOC4reC4reC4tOC4meC4l+C4meC4tOC4pQor4LiK4Lit4LmI4LizCivguIrguK3guLfguYnguK0KK+C4iuC4reC4uOC5iOC4oQor4LiK4LiwCivguIrguLDguITguKPguLLguKEKK+C4iuC4sOC4h+C4reC4gQor4LiK4Liw4LiH4LmI4Lit4LiZCivguIrguLDguIfguLHguIEKK+C4iuC4sOC4h+C4seC4lAor4LiK4Liw4LiH4Liy4LiaCivguIrguLDguIfguYnguLMKK+C4iuC4sOC4h+C4uOC5ieC4oQor4LiK4Liw4LmA4LiH4LmJ4LitCivguIrguLDguYDguIfguLfguYnguK3guKEKK+C4iuC4sOC5geC4h+C5iQor4LiK4Liw4LmC4LiH4LiBCivguIrguLDguYLguIfguIHguJzguLIKK+C4iuC4sOC4ieC5iOC4sgor4LiK4Liw4LiK4LmI4Lit4LiHCivguIrguLDguIrguLAKK+C4iuC4sOC4iuC5ieC4sgor4LiK4Liw4LiK4Li04LiUCivguIrguLDguJTguLXguIrguLDguKPguYnguLLguKIKK+C4iuC4sOC5guC4lAor4LiK4Liw4LiV4LiyCivguIrguLDguJXguYnguLIKK+C4iuC4sOC4meC4tQor4LiK4Liw4LiZ4Li14Lij4LmI4Liy4Lii4LmE4Lih4LmJCivguIrguLDguJnguLjguIcKK+C4iuC4sOC5gOC4meC4suC4sAor4LiK4Liw4LmA4LiZ4Li14Lii4LiHCivguIrguLDguJ7guKXguLkKK+C4iuC4sOC5gOC4nuC4peC4tOC4hwor4LiK4Liw4Lih4LiUCivguIrguLDguKHguJTguYDguIrguLXguKLguIcKK+C4iuC4sOC4oeC4lOC4leC5ieC4mQor4LiK4Liw4Lih4LiaCivguIrguLDguKHguKfguIcKK+C4iuC4sOC4oeC4seC4hwor4LiK4Liw4Lih4Lix4LiUCivguIrguLDguYHguKHguYgKK+C4iuC4sOC4o+C4reC4ogor4LiK4Liw4Lil4LitCivguIrguLDguKXguK3guKEKK+C4iuC4sOC4peC5iOC4sgor4LiK4Liw4Lil4Liy4LiZCivguIrguLDguKXguLTguJkKK+C4iuC4sOC4peC4ueC4lAor4LiK4Liw4LmA4Lil4LiHCivguIrguLDguYDguKXguKIKK+C4iuC4sOC5geC4peC5h+C4gQor4LiK4Liw4LmB4Lil4LiHCivguIrguLDguKfguLHguIcKK+C4iuC4sOC4p+C4suC4gQor4LiK4Liw4Lin4Liy4LiB4LiX4Liw4LmA4LilCivguIrguLDguKfguLLguJQKK+C4iuC4sOC4p+C4uOC5ieC4hwor4LiK4Liw4LmA4Lin4Li04LiB4LiK4Liw4Lin4Liy4LiBCivguIrguLDguYHguKfguIcKK+C4iuC4sOC4reC4oQor4LiK4Liw4Lit4LmJ4Lit4LiZCivguIrguLDguYDguK3guKEKK+C4iuC4sOC5guC4reC4mQor4LiK4Lix4LiBCivguIrguLHguIHguIHguKPguLDguJrguLXguYjguKrguLXguYjguJfguYjguLIKK+C4iuC4seC4geC4hOC4o+C4suC4oQor4LiK4Lix4LiB4LmC4LiE4Lij4LiBCivguIrguLHguIHguYDguIfguLIKK+C4iuC4seC4geC4iOC4ueC4hwor4LiK4Lix4LiB4LiK4Lin4LiZCivguIrguLHguIHguIrguYnguLIKK+C4iuC4seC4geC4i+C4reC4quC4suC4oeC4quC4suC4ogor4LiK4Lix4LiB4LiL4Li44LiH4LiV4Liy4Lih4LiC4Lin4Liy4LiHCivguIrguLHguIHguJXguLDguJ7guLLguJnguYHguKvguIfguJnguYDguJbguYjguK0KK+C4iuC4seC4geC4meC4swor4LiK4Lix4LiB4LiZ4LmJ4Liz4LmA4LiC4LmJ4Liy4Lil4Li24LiBIOC4iuC4seC4geC4qOC4tuC4geC5gOC4guC5ieC4suC4muC5ieC4suC4mQor4LiK4Lix4LiB4LmA4LiZ4Li34LmJ4LitCivguIrguLHguIHguYPguJrguYPguKvguYnguYDguKPguLfguK3guYDguKrguLXguKIKK+C4iuC4seC4geC5geC4m+C5ieC4h+C4nOC4seC4lOC4q+C4meC5ieC4sgor4LiK4Lix4LiB4Lie4Lij4LiwCivguIrguLHguIHguYHguKHguYjguJnguYnguLPguJfguLHguYnguIfguKvguYnguLIKK+C4iuC4seC4geC4ouC4seC4meC4leC5jAor4LiK4Lix4LiB4LmA4Lii4LmI4LitCivguIrguLHguIHguYPguKIKK+C4iuC4seC4geC4o+C4ueC4mwor4LiK4Lix4LiB4Lio4LieCivguIrguLHguIHguKrguK3guIfguYHguJbguKcKK+C4iuC4seC4geC4quC4t+C5iOC4rQor4LiK4Lix4LiB4Lir4LiZ4LmJ4LiyCivguIrguLHguIHguKvguJnguYnguLLguYTguKHguYjguJbguLbguIfguKvguKXguLHguIcKK+C4iuC4seC4hC0KK+C4iuC4seC4hwor4LiK4Lix4LmI4LiHCivguIrguLHguIfguITguLIKK+C4iuC4seC4h+C4hi0KK+C4iuC4seC4h+C4huC4p+C4tOC4q+C4suC4owor4LiK4Lix4LmI4LiH4LmD4LiICivguIrguLHguYjguIfguKvguKXguKfguIcKK+C4iuC4seC4iuC4p+C4suC4pQor4LiK4Lix4LiPCivguIrguLHguJQKK+C4iuC4seC4lOC5gOC4iOC4mQor4LiK4Lix4LiU4LiK4LmJ4LiyCivguIrguLHguJkKK+C4iuC4seC5ieC4mQor4LiK4Lix4LiZ4LiB4Liy4LiUCivguIrguLHguJnguITguK0KK+C4iuC4seC5ieC4meC4ieC4suC4ogor4LiK4Lix4LmJ4LiZ4LiK4Lix4LmI4LinCivguIrguLHguJnguIrguLUKK+C4iuC4seC5ieC4meC5gOC4iuC4tOC4hwor4LiK4Lix4LiZ4LiV4Liy4LiG4LijCivguIrguLHguJnguJXguLgKK+C4iuC4seC4meC4meC4sOC4leC4uAor4LiK4Lix4LiZ4LiZ4Li4CivguIrguLHguJnguJnguLjguIHguLAKK+C4iuC4seC4meC4nuC4reC4mQor4LiK4Lix4LiZ4LmC4Lij4LiHCivguIrguLHguJnguKnguLIKK+C4iuC4seC4meC4quC4mQor4LiK4Lix4LiZ4Liq4Li54LiV4LijCivguIrguLHguJnguKrguLnguJXguKPguJ7guKXguLTguIHguKjguJ4KK+C4iuC4seC4m+C4mQor4LiK4Lix4LieCivguIrguLHguKHguJ7guLnguJnguJcKK+C4iuC4seC4ogor4LiK4Lix4LiiLQor4LiK4Lix4Lii4Lia4Liy4LiZCivguIrguLHguKLguJ7guKTguIHguKnguYwKK+C4iuC4seC4ouC4oOC4ueC4oeC4tAor4LiK4Lix4Lii4LmA4Lig4Lij4Li1CivguIrguLHguKLguKjguKPguLUKK+C4iuC4seC4peC4peC4uOC4geC4sgor4LiK4Lix4LmI4LinCivguIrguLHguYnguKcKK+C4iuC4seC5iOC4p+C4hOC4mQor4LiK4Lix4LmI4Lin4LiE4Lij4Liy4LinCivguIrguLHguKfguIrguKEKK+C4iuC4seC5iOC4p+C4iuC5ieC4sgor4LiK4Lix4LmI4Lin4LiK4LmI4Liy4LiH4LiK4Li1IOC4lOC4teC4iuC5iOC4suC4h+C4quC4h+C4huC5jAor4LiK4Lix4LmI4Lin4LmB4LiV4LmI4Lin4LmI4LiyCivguIrguLHguYjguKfguJnguLLguJXguLLguJvguLUKK+C4iuC4seC5iOC4p+C5guC4oeC4hwor4LiK4Lix4LmI4Lin4LmB4Lil4LmI4LiZCivguIrguLIKK+C4iuC5ieC4sgor4LiK4LmJ4Liy4LiB4LmI4Lit4LiZCivguIrguLLguITguKMKK+C4iuC4suC4hOC4o+C4tOC4lQor4LiK4Liy4LiE4Lij4Li04Lii4Liy4LiZ4Li44LmC4Lii4LiECivguIrguYjguLLguIcKK+C4iuC5ieC4suC4hwor4LiK4LmI4Liy4LiH4LiB4Lij4Liw4LmE4LijCivguIrguYjguLLguIfguYDguITguKPguLfguYjguK3guIcKK+C4iuC5ieC4suC4h+C4h+C4p+C4hwor4LiK4LmJ4Liy4LiH4LiK4Liz4LiZ4Li0CivguIrguYnguLLguIfguIrguLnguIfguKfguIcKK+C4iuC5ieC4suC4h+C4leC5iOC4rQor4LiK4LmJ4Liy4LiH4LiV4Liy4Lii4LiX4Lix4LmJ4LiH4LiV4Lix4Lin4LmA4Lit4Liy4LmD4Lia4Lia4Lix4Lin4Lih4Liy4Lib4Li04LiUCivguIrguYjguLLguIfguJfguK3guIcKK+C4iuC5ieC4suC4h+C4l+C4s+C4peC4suC4ouC5guC4o+C4hwor4LiK4LmJ4Liy4LiH4LiZ4LmJ4Lit4LiiCivguIrguYnguLLguIfguJnguYnguLLguKcKK+C4iuC5ieC4suC4h+C4meC5ieC4swor4LiK4LmJ4Liy4LiH4Lib4Lij4Liw4Liq4Liy4LiZ4LiH4LiyCivguIrguYjguLLguIfguJvguLDguYTguKMKK+C4iuC5ieC4suC4h+C4nOC4sOC4iuC4lAor4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguIrguYnguLLguIfguJ7guKXguLLguKIKK+C4iuC5ieC4suC4h+C4nuC4seC4hwor4LiK4LmI4Liy4LiH4Lif4Li04LiVCivguIrguYjguLLguIfguYTguJ8KK+C4iuC5ieC4suC4h+C4o+C5ieC4reC4hwor4LiK4LmJ4Liy4LiH4Liq4Liw4Lia4Lix4LiU4Lir4LiN4LmJ4LiyCivguIrguYnguLLguIfguYDguKvguKLguLXguKLguJoKK+C4iuC5iOC4suC4h+C5gOC4q+C4peC5h+C4gQor4LiK4LmJ4Liy4LiH4LmD4Lir4LiN4LmICivguIrguYnguLLguIrguYjguK3guJkKK+C4iuC4suC4jQor4LiK4Liy4LiUCivguIrguLLguJTguIEKK+C4iuC4suC4lOC4q+C4o+C4hOC4uOC4kwor4LiK4LmJ4Liy4LmGIOC5hOC4lOC5ieC4nuC4o+C5ieC4suC4quC4reC4h+C5gOC4peC5iOC4oeC4h+C4suC4oQor4LiK4Liy4LiVLQor4LiK4Liy4LiV4Lia4Li44Lip4Lii4LmMCivguIrguLLguJXguKPguLUKK+C4iuC4suC4leC4o+C4ueC4mwor4LiK4Liy4LiV4Liq4Lij4LiwCivguIrguLLguJXguLAKK+C4iuC4suC4leC4sgor4LiK4Liy4LiV4Li0CivguIrguLLguJXguLQtCivguIrguLLguJXguLTguJjguKPguKPguKEKK+C4iuC4suC4leC4tOC4meC4tOC4ouC4oQor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmMCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguKfguKPguKPguJPguJnguLIKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jOC4p+C4tOC4l+C4ouC4sgor4LiK4Liy4LiV4Li04Lig4Li54Lih4Li0CivguIrguLLguJXguLTguKHguLLguKXguLIKK+C4iuC4suC4leC4tOC4o+C4qgor4LiK4Liy4LiZCivguIrguLLguJnguIrguLLguKXguLIKK+C4iuC4suC4meC4p+C4suC4l+C4tOC4gQor4LiK4LmJ4Liy4LiZ4Liy4LiH4LiZ4Lit4LiZCivguIrguYnguLLguJnguLLguJkKK+C4iuC4suC4meC4uAor4LiK4Liy4LiZ4Li44LiB4LiwCivguIrguLLguJnguLjguKHguJPguJHguKUKK+C4iuC5ieC4suC4m+C4teC5iAor4LiK4Liy4Lib4Li14LmE4Lir4LiZCivguIrguYnguLLguYDguJvguYfguJnguIHguLLguKMg4LiZ4Liy4LiZ4LmA4Lib4LmH4LiZ4LiE4Li44LiTCivguIrguYnguLLguYHguJvguYnguJkKK+C4iuC5ieC4suC4nuC4peC4uQor4LiK4Liy4LihCivguIrguLLguKHguJ7guLnguJnguJcKK+C4iuC4suC4oeC4suC4lOC4owor4LiK4Liy4Lih4Liy4LiU4LiyCivguIrguLLguKHguLLguJXguLgKK+C4iuC4suC4ogor4LiK4Liy4Lii4LiB4Lij4Liw4LmA4Lia4LiZCivguIrguLLguKLguIHguKPguLDguYDguJrguJnguYDguKvguJnguYfguJoKK+C4iuC4suC4ouC4hOC4sgor4LiK4Liy4Lii4LmB4LiE4Lij4LiHCivguIrguLLguKLguIrguLLguJXguKPguLUKK+C4iuC4suC4ouC4leC4sgor4LiK4Liy4Lii4LiX4Liw4LmA4LilCivguIrguLLguKLguJjguIcKK+C4iuC4suC4ouC4nOC5ieC4suC4quC4teC4lOC4sgor4LiK4Liy4Lii4Lid4Lix4LmI4LiHCivguIrguLLguKLguYDguJ/guLfguK3guKIKK+C4iuC4suC4ouC4quC4suC4oeC5guC4muC4quC4luC5jAor4LiK4Liy4Lii4LmE4Lir4LinCivguIrguLLguKLguLIKK+C4iuC4suC4ouC4suC4iuC4teC4ngor4LiK4Liy4Lii4Liy4LiZ4Li44LiK4Li14LieCivguIrguLLguYDguKLguJnguJfguKPguYwKK+C4iuC4suC5gOC4ouC4qAor4LiK4Liy4LijCivguIrguLLguKPguLUKK+C4iuC4suC4pQor4LiK4Liy4LilLQor4LiK4Liy4Lil4LiB4Lij4Lij4LihCivguIrguLLguKXguLIKK+C4iuC4suC4peC4tOC4meC4tQor4LiK4LmJ4Liy4Lil4Li54LiB4Lir4Lil4Lin4LiHCivguIrguYnguLLguYDguKXguLfguK3guJQKK+C4iuC4suC4pwor4LiK4Liy4Lin4LiZ4Lit4LiBCivguIrguLLguKfguJnguYnguLMKK+C4iuC4suC4p+C4oeC5iOC4suC4mQor4LiK4Liy4Lin4LmA4LilCivguIrguLLguKfguKfguLHguIcKK+C4iuC4suC4p+C4tQor4LiK4LmJ4Liy4Lir4Lih4Lit4LiHCivguIrguLMKK+C4iuC5iOC4swor4LiK4LmJ4LizCivguIrguLPguIfguLHguJQKK+C4iuC4s+C4h+C4suC4ogor4LiK4Liz4LiH4Li34LitCivguIrguYjguLPguYPguIgKK+C4iuC5ieC4s+C5g+C4iAor4LiK4LmJ4Liz4LiK4Lit4LiBCivguIrguYjguLPguIrguK3guIcKK+C4iuC5iOC4s+C4iuC5iOC4sgor4LiK4Liz4LiZ4LiZCivguIrguLPguJnguKPguKMKK+C4iuC4s+C4meC4sAor4LiK4Liz4LiZ4Lix4LiNCivguIrguLPguJnguLHguI3guJ7guLTguYDguKjguKkKK+C4iuC4s+C4meC4seC4mQor4LiK4Liz4LiZ4Liy4LiNCivguIrguLPguJnguLLguI3guYDguIHguKXguLLguIHguKXguK3guJkKK+C4iuC4s+C4meC4tAor4LiK4Liz4LiZ4Li04LiK4Liz4LiZ4Liy4LiNCivguIrguLPguYDguJnguLXguKLguJkKK+C4iuC4s+C5gOC4meC4teC4ouC4owor4LiK4LmI4Liz4Lib4Lit4LiUCivguIrguLPguKHguLDguJnguLLguJQKK+C4iuC4s+C4oeC4sOC5gOC4peC4teC4ouC4hwor4LiK4Liz4Lij4LmI4Lin4LiiCivguIrguLPguKPguLAKK+C4iuC5ieC4s+C4o+C4seC5iOC4pwor4LiK4Liz4Lij4Li44LiUCivguIrguLPguYDguKPguLIKK+C4iuC4s+C5gOC4o+C4suC4sAor4LiK4Liz4LmB4Lij4LiBCivguIrguLPguYHguKPguLAKK+C4iuC4s+C4peC4sgor4LiK4Liz4LmA4Lil4Li34Lit4LiHCivguIrguYnguLPguYDguKXguLfguK3guJTguIrguYnguLPguKvguJnguK3guIcKK+C4iuC4s+C5geC4q+C4peC4sAor4LiK4Li0CivguIrguLTguIcKK+C4iuC4tOC5iOC4hwor4LiK4Li04LiH4LiE4LihCivguIrguLTguIfguIrguYjguKfguIcKK+C4iuC4tOC4h+C4iuC4seC4hwor4LiK4Li04LiH4LiK4Lix4LiZCivguIrguLTguIfguIrguLHguKIKK+C4iuC4tOC4h+C4iuC5ieC4sgor4LiK4Li04LiH4LiK4LmJ4Liy4LiK4Liy4Lil4Li1CivguIrguLTguIfguIrguYnguLLguKrguKfguKPguKPguITguYwKK+C4iuC4tOC4h+C4iuC4teC5iAor4LiK4Li04LiH4LmA4LiK4Li04LiHCivguIrguLTguIfguJTguKfguIcKK+C4iuC4tOC4h+C4lOC4teC4iuC4tOC4h+C5gOC4lOC5iOC4mQor4LiK4Li04LiH4LiX4Lij4Lix4Lie4Lii4LmMCivguIrguLTguIfguYDguJvguKPguJUKK+C4iuC4tOC4h+C4nuC4peC4mgor4LiK4Li04LiH4Liq4Li44LiB4LiB4LmI4Lit4LiZ4Lir4LmI4Liy4LihCivguIrguLTguIfguYTguKvguKfguIrguLTguIfguJ7guKPguLTguJoKK+C4iuC4tOC4h+C4ruC4t+C5ieC4rQor4LiK4Li04LiK4LiwCivguIrguLTguIrguLQKK+C4iuC4tOC4k+C4k+C4sAor4LiK4Li04LiUCivguIrguLTguYDguJTguJnguJfguKPguLXguKLguYwKK+C4iuC4tOC4lQor4LiK4Li04LiVLQor4LiK4Li04LiV4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIrguLTguJkKK+C4iuC4tOC5iOC4mQor4LiK4Li04LmJ4LiZCivguIrguLTguJnguYLguJUKK+C4iuC4tOC4meC4muC4uOC4leC4owor4LiK4Li04LmJ4LiZ4LmA4Lit4LiBCivguIrguLTguYLguJnguKPguKoKK+C4iuC4tOC4oQor4LiK4Li04Lih4LmB4Lib4LiZ4LiL4Li1CivguIrguLTguKHguKXguLLguIcKK+C4iuC4tOC4ouC4sgor4LiK4Li04Lij4LiTLQor4LiK4Li04Lij4LiT4LiwCivguIrguLTguKPguJPguLHguITguITguLQKK+C4iuC4tOC4o+C4sAor4LiK4Li04Lin4Lir4LiyCivguIrguLTguKfguKvguLLguKrguJTguKHguKDguYwKK+C4iuC4tOC4quC4sgor4LiK4Li1CivguIrguLXguYgKK+C4iuC4teC5iQor4LiK4Li14LmJ4LiC4Liy4LiUCivguIrguLXguYnguYHguIjguIcKK+C4iuC4teC5ieC4iuC5iOC4reC4hwor4LiK4Li14LiV4LmJ4LiZCivguIrguLXguYnguJXguLHguKcKK+C4iuC4teC5ieC4meC4geC4muC4meC4m+C4peC4suC4ouC5hOC4oeC5iQor4LiK4Li14LmJ4LiZ4LiB4LmA4Lib4LmH4LiZ4LiZ4LiBIOC4iuC4teC5ieC5hOC4oeC5ieC5gOC4m+C5h+C4meC5hOC4oeC5iQor4LiK4Li14LmJ4LiZ4LizCivguIrguLXguYnguJnguLTguYnguKcKK+C4iuC4teC5ieC5geC4meC4sAor4LiK4Li14Lib4Liw4LiC4Liy4LinCivguIrguLXguYDguJvguKXguLfguK3guKIKK+C4iuC4teC4nOC4sOC4guC4suC4pwor4LiK4Li14Lic4LmJ4Liy4LiC4Liy4LinCivguIrguLXguJ3guKPguLHguYjguIcKK+C4iuC4teC4ngor4LiK4Li14LieLQor4LiK4Li14Lie4LiI4LijCivguIrguLXguJ7guLTguJUKK+C4iuC4teC4nuC4tOC4leC4seC4geC4qeC4seC4ogor4LiK4Li14Lie4Li44LiBCivguIrguLXguJ/guK3guIcKK+C4iuC4teC5ieC4n+C5ieC4sgor4LiK4Li14Lih4Li34LiUCivguIrguLXguKPguJMtCivguIrguLXguKPguJPguLHguITguITguLQKK+C4iuC4teC4o+C4sAor4LiK4Li14Lil4LmJ4Lit4LihCivguIrguLXguKXguLIKK+C4iuC4teC4peC4suC4pwor4LiK4Li14LinLQor4LiK4Li14Lin4LmA4LiE4Lih4Li1CivguIrguLXguKfguIfguITguJUKK+C4iuC4teC4p+C4m+C4o+C4sOC4p+C4seC4leC4tAor4LiK4Li14Lin4LmC4Lil4LiBCivguIrguLXguKfguKfguLTguJfguKLguLIKK+C4iuC4teC4p+C4sAor4LiK4Li14Lin4Lix4LiZCivguIrguLXguKfguLHguJnguJXguKPguLLguKIKK+C4iuC4teC4p+C4sgor4LiK4Li14Lin4Liy4LiV4Lih4LmMCivguIrguLXguKfguLLguKXguLHguKIKK+C4iuC4teC4p+C4tOC4lQor4LiK4Li14Lin4Li04LiV4LiK4Li14Lin4LiyCivguIrguLXguKfguLTguJXguLHguIHguKnguLHguKIKK+C4iuC4teC4p+C4tOC4leC4tOC4meC4l+C4o+C4teC4ouC5jAor4LiK4Li14Lin4Li04LiZCivguIrguLXguKfguLUKK+C4iuC4teC5ieC4quC4reC4h+C4quC4luC4suC4mQor4LiK4Li34LiUCivguIrguLfguYjguJkKK+C4iuC4t+C5ieC4mQor4LiK4Li34LmI4LiZ4LiK4LihCivguIrguLfguYjguJnguIrguKHguKLguLTguJnguJTguLUKK+C4iuC4t+C5iOC4meC4muC4suC4mQor4LiK4Li34LmI4LiZ4Lih4Li34LmI4LiZCivguIrguLfguYjguK0KK+C4iuC4t+C5ieC4rQor4LiK4Li34LmI4Lit4LiV4Lix4LinCivguIrguLfguYjguK3guKLguYjguK0KK+C4iuC4t+C5iOC4reC5gOC4peC5iOC4mQor4LiK4Li34LmI4Lit4Lin4LmI4LiyCivguIrguLfguYjguK3guKrguIHguLjguKUKK+C4iuC4t+C5iOC4reC5gOC4quC4teC4ouC4hwor4LiK4Li4CivguIrguLjguIEKK+C4iuC4uOC4geC4iuC4tQor4LiK4Li44LiB4LiK4Li44LihCivguIrguLjguYjguIcKK+C4iuC4uOC5ieC4hwor4LiK4Li44LiT4LirLQor4LiK4Li44LiT4Lir4Lib4Lix4LiB4Lip4LmMCivguIrguLjguJQKK+C4iuC4uOC4leC4tAor4LiK4Li44LiV4Li04Lih4LiyCivguIrguLjguJkKK+C4iuC4uOC4mgor4LiK4Li44Lia4LiK4Li14Lin4Li04LiVCivguIrguLjguJrguIrguLkKK+C4iuC4uOC4muC4leC4seC4pwor4LiK4Li44Lia4Lih4Li34Lit4LmA4Lib4Li04LiaCivguIrguLjguJrguKLguYnguK3guKEKK+C4iuC4uOC4muC5gOC4peC4teC5ieC4ouC4hwor4LiK4Li44Lia4Liq4Lij4LiHCivguIrguLjguJrguK3guLLguJoKK+C4iuC4uOC4oQor4LiK4Li44LmI4LihCivguIrguLjguYjguKHguYPguIgKK+C4iuC4uOC4oeC4iuC4mQor4LiK4Li44LmI4Lih4LiK4Li34LmI4LiZCivguIrguLjguYjguKHguIrguLfguYnguJkKK+C4iuC4uOC4oeC4l+C4suC4h+C4o+C4luC5hOC4nwor4LiK4Li44Lih4LiZ4Li44LihCivguIrguLjguKHguJnguLjguKHguIrguJkKK+C4iuC4uOC4oeC4nuC4owor4LiK4Li44Lih4Lie4LiyCivguIrguLjguKHguYDguJ7guYfguJQKK+C4iuC4uOC4oeC5geC4nuC4o+C4gQor4LiK4Li44Lih4Lij4Li44LihCivguIrguLjguKHguKrguLLguKIKK+C4iuC4uOC4oeC4quC4suC4ouC5guC4l+C4o+C4qOC4seC4nuC4l+C5jAor4LiK4Li44Lih4LmB4Liq4LiHCivguIrguLjguKHguYDguKvguYfguJQKK+C4iuC4uOC5iOC4ogor4LiK4Li44LmI4Lii4LmGCivguIrguLjguKXguKHguLjguJkKK+C4iuC4uOC4peC4tQor4LiK4Li44Lip4LiTLQor4LiK4Li44Lip4LiT4Lib4Lix4LiB4Lip4LmMCivguIrguLjguKnguJPguLAKK+C4iuC4uQor4LiK4Li54LmJCivguIrguLnguIHguKXguLTguYjguJkKK+C4iuC4ueC4hOC4rQor4LiK4Li54LmD4LiICivguIrguLnguIrguLXguJ4KK+C4iuC4ueC4o+C4qgor4LiK4Li54LmC4Lij4LiHCivguIrguLnguYnguKrguLLguKcKK+C4iuC4ueC4q+C4meC5ieC4suC4iuC4ueC4leC4sgor4LiK4Li54LmJ4LmA4Lir4LiZ4Li34Lit4LiC4Lix4LiZ4Lir4Lih4Liy4LiBCivguIrguLnguYnguYDguKvguJnguLfguK3guJzguLHguKcKK+C4iuC4ueC5ieC5gOC4q+C4meC4t+C4reC4nOC4tQor4LmA4LiK4LmH4LiECivguYDguIrguYfguITguILguLXguJTguITguKPguYjguK3guKEKK+C5gOC4iuC5h+C4hOC5hOC4m+C4o+C4qeC4k+C4teC4ouC5jAor4LmA4LiK4LmJ4LiHCivguYDguIrguIfguYDguKXguIcKK+C5gOC4iuC5ieC4h+C4p+C4seC4mgor4LmA4LiK4LmH4LiUCivguYDguIrguYfguJTguJnguYnguLMKK+C5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4LmA4LiK4LmH4LiU4Lir4Lih4LmJ4LitCivguYDguIrguJkKK+C5gOC4iuC5iOC4mQor4LmA4LiK4LiiCivguYDguIrguKLguIrguKEKK+C5gOC4iuC4o+C4sgor4LmA4LiK4Lij4Liy4LiwCivguYDguIrguKPguLTguJQKK+C5gOC4iuC4peC4hwor4LmA4LiK4Lil4LiiCivguYDguIrguKXguKLguKjguLHguIHguJTguLTguYwKK+C5gOC4iuC4peC4ouC4qOC4tuC4gQor4LmA4LiK4Lil4LmB4Lil4LmH4LiBCivguYDguIrguKXguLXguKLguIcKK+C5gOC4iuC4p+C4hwor4LmA4LiK4Lip4LiQLQor4LmA4LiK4Lip4LiQ4LiwCivguYDguIrguKnguJDguLIKK+C5gOC4iuC4rQor4LmA4LiK4LmI4LiyCivguYDguIrguYnguLIKK+C5gOC4iuC5iOC4suC4iuC5iOC4p+C4hwor4LmA4LiK4LmI4Liy4LiL4Li34LmJ4LitCivguYDguIrguYnguLLguJXguKPguLnguYgKK+C5gOC4iuC5iOC4suC4luC4t+C4reC4quC4p+C4mQor4LmA4LiK4LmI4Liy4LiX4Lij4Lix4Lie4Lii4LmMCivguYDguIrguYjguLLguJ7guKPguLAKK+C5gOC4iuC5ieC4suC4oeC4t+C4lAor4LmA4LiK4Liy4Lin4LmMCivguYDguIrguLLguKfguJnguYwKK+C5gOC4iuC4tOC4hwor4LmA4LiK4Li04LiH4LiB4Lij4Lin4LiiCivguYDguIrguLTguIfguIHguKPguLLguJkKK+C5gOC4iuC4tOC4h+C4geC4pQor4LmA4LiK4Li04LiH4LiB4Lil4Lit4LiZCivguYDguIrguLTguIfguIrguLHguYnguJkKK+C5gOC4iuC4tOC4h+C4iuC4suC4ogor4LmA4LiK4Li04LiH4LiL4LmJ4Lit4LiZCivguYDguIrguLTguIfguYDguJTguLTguJkKK+C5gOC4iuC4tOC4h+C5gOC4lOC4teC4ouC4pwor4LmA4LiK4Li04LiH4LmA4LiU4Li14LmI4Lii4LinCivguYDguIrguLTguIfguJXguLDguIHguK3guJkKK+C5gOC4iuC4tOC4h+C4l+C4o+C4hwor4LmA4LiK4Li04LiH4LmA4LiX4Li04LiZCivguYDguIrguLTguIfguKHguLjguKEKK+C5gOC4iuC4tOC4h+C5gOC4p+C4teC4ouC4mQor4LmA4LiK4Li04LiH4Lit4Lij4Lij4LiWCivguYDguIrguLTguI0KK+C5gOC4iuC4tOC4lAor4LmA4LiK4Li04LiU4LiI4Li14LiZCivguYDguIrguLTguJTguInguLTguYjguIcKK+C5gOC4iuC4tOC4lOC4iuC4uQor4LmA4LiK4Li04LiU4Lir4LiZ4Lix4LiHCivguYDguIrguLTguJTguKvguJnguYnguLLguIrguLnguJXguLIKK+C5gOC4iuC4tOC4lOC4q+C4uOC5iOC4mQor4LmA4LiK4Li04LmJ4LiVCivguYDguIrguLXguKIKK+C5gOC4iuC4teC5ieC4ogor4LmA4LiK4Li14Lii4LiHCivguYDguIrguLXguYjguKLguJkKK+C5gOC4iuC4teC5iOC4ouC4meC4q+C4oeC4suC4gQor4LmA4LiK4Li14Lii4LiaCivguYDguIrguLXguYjguKLguKEKK+C5gOC4iuC4teC4ouC4owor4LmA4LiK4Li14Lii4Lij4LmMCivguYDguIrguLXguKLguKPguJPguYwKK+C5gOC4iuC4teC4ouC4pwor4LmA4LiK4Li14LmI4Lii4LinCivguYDguIrguLXguYjguKLguKfguIrguLLguI0KK+C5gOC4iuC4t+C5iOC4rQor4LmA4LiK4Li34LmJ4LitCivguYDguIrguLfguK3guIEKK+C5gOC4iuC4t+C4reC4geC5gOC4guC4sgor4LmA4LiK4Li34Lit4LiB4Lia4Liy4LioCivguYDguIrguLfguYjguK3guIcKK+C5gOC4iuC4t+C5iOC4reC4h+C4iuC5ieC4sgor4LmA4LiK4Li34LmI4Lit4LmD4LiICivguYDguIrguLfguYnguK3guIrguLLguJXguLQKK+C5gOC4iuC4t+C5ieC4reC5gOC4iuC4tOC4jQor4LmA4LiK4Li34Lit4LiUCivguYDguIrguLfguYjguK3guJbguLfguK0KK+C5gOC4iuC4t+C4reC4mQor4LmA4LiK4Li34Lit4LiZ4LmB4LiKCivguYDguIrguLfguYnguK3guYDguJ7guKXguLTguIcKK+C5gOC4iuC4t+C5iOC4reC4n+C4seC4hwor4LmA4LiK4Li34LmJ4Lit4LmE4LifCivguYDguIrguLfguYjguK3guKEKK+C5gOC4iuC4t+C5iOC4reC4oeC4t+C4rQor4LmA4LiK4Li34LmJ4Lit4LmE4Lih4LmI4LiX4Li04LmJ4LiH4LmB4LiW4LinCivguYDguIrguLfguYnguK3guKPguLIKK+C5gOC4iuC4t+C5ieC4reC5guC4o+C4hAor4LmA4LiK4Li34LmI4Lit4Lin4Lix4LiZCivguYDguIrguLfguYnguK3guKrguLLguKIKK+C5gOC4iuC4t+C5ieC4reC4q+C4oeC4seC4gQor4LmB4LiKCivguYHguIrguYgKK+C5geC4iuC5iOC4hwor4LmB4LiK4LmI4LiH4LiK4Lix4LiB4Lir4Lix4LiB4LiB4Lij4Liw4LiU4Li54LiBCivguYHguIrguYjguIfguJnguYnguLMKK+C5geC4iuC4h+C4oeC4sgor4LmB4LiK4Lia4LmK4Lin4LiiCivguYHguIrguYjguYDguJrguYnguLIKK+C5geC4iuC5iOC4oQor4LmB4LiK4LmI4Lih4LiK4LmJ4Lit4LiiCivguYHguIrguYjguKHguIrguLfguYjguJkKK+C5geC4iuC5iOC5gOC4ouC5h+C4mQor4LmB4LiK4Lij4LmMCivguYHguIrguKPguIcKK+C5geC4iuC4peC5iOC4oQor4LmB4LiK4LmI4Lit4Li04LmI4LihCivguYHguIrguLAKK+C5guC4iuC4gQor4LmC4LiK4LiB4LmGCivguYLguIrguIHguYLguIrguJkKK+C5guC4iuC4hAor4LmC4LiK4LiH4LmC4Lil4LiHCivguYLguIrguJTguIEKK+C5guC4iuC4lOC4tuC4gQor4LmC4LiK4LiVCivguYLguIrguJXguIEKK+C5guC4iuC4leC4tAor4LmC4LiK4LiV4Li0LQor4LmC4LiK4LiV4Li04LiBLQor4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHCivguYLguIrguJXguLTguKPguKoKK+C5guC4iuC4mQor4LmC4LiK4Lih4LmC4Lij4LihCivguYLguIrguKIKK+C5guC4iuC4ouC4h+C4geC4suC4owor4LmC4LiK4Lii4LiK4Liy4LiiCivguYLguIrguKLguJXguLTguKoKK+C5guC4iuC4o+C4oQor4LmC4LiK4Lin4LmMCivguYLguIrguYLguKvguKcKK+C5g+C4iuC5iAor4LmD4LiK4LmJCivguYPguIrguYnguIHguKPguKPguKEKK+C5g+C4iuC5ieC5hOC4lOC5iQor4LmD4LiK4LmJ4LmA4LiZ4Li34LmJ4LitCivguYPguIrguYnguJrguJkKK+C5g+C4iuC5ieC5g+C4mgor4LmD4LiK4LmJ4LmA4Lij4Li34LitCivguYPguIrguYnguKrguK3guKIKK+C5hOC4igor4LmE4LiK4LiZ4LiwCivguYTguIrguKIKK+C5hOC4iuC4oi0KK+C5hOC4iuC4ouC5gOC4oOC4lwor4LmE4LiK4LmC4LiiCivguIsKK+C4i+C4gQor4LiL4LmI4LiBCivguIvguIfguJTguLMKK+C4i+C5iOC4h+C4ruC4t+C5ieC4rQor4LiL4LiH4LmJ4LiyCivguIvguJQKK+C4i+C4mQor4LiL4LmI4LiZCivguIvguYnguJkKK+C4i+C4mgor4LiL4Lia4LmA4LiL4LiyCivguIvguKEKK+C4i+C4oeC4i+C4suC4mQor4LiL4Lij4Lit4LiB4LiL4Lij4Lix4LiHCivguIvguKfguJQKK+C4i+C4p+C4lOC5gOC4iwor4LiL4Lin4LiU4LiX4Lij4LiHCivguIvguKfguJkKK+C4i+C4p+C4meC5gOC4iwor4LiL4Lin4LiiCivguIvguK0KK+C4i+C4reC4gQor4LiL4Lit4LiB4LiL4Lit4LiZCivguIvguK3guIHguIvguLHguIcKK+C4i+C4reC4geC5geC4i+C4gQor4LiL4Lit4LiHCivguIvguYjguK3guIcKK+C4i+C5iOC4reC4h+C5hgor4LiL4LmJ4Lit4LiHCivguIvguYjguK3guIfguYHguIvguYjguIcKK+C4i+C4reC4h+C4nuC4peC4uQor4LiL4Lit4LiH4Lih4Li34LitCivguIvguK3guIfguYHguKHguKcKK+C4i+C5ieC4reC4h+C5geC4oeC4pwor4LiL4LmI4Lit4LiH4Liq4Li44LihCivguIvguYjguK3guIfguYDguKrguJ4KK+C4i+C4reC4h+C4q+C4suC4hwor4LiL4Lit4LmB4LiLCivguIvguYnguK3guYHguIvguYkKK+C4i+C4reC4mQor4LiL4LmI4Lit4LiZCivguIvguYnguK3guJkKK+C4i+C5ieC4reC4meC4geC4pQor4LiL4LmI4Lit4LiZ4LiB4Lil4Li04LmI4LiZCivguIvguYjguK3guJnguYDguIfguLfguYjguK3guJkKK+C4i+C5ieC4reC4meC4i+C4seC4mgor4LiL4LmI4Lit4LiZ4LiX4Lij4Liy4LiiCivguIvguYjguK3guJnguKPguLnguJsKK+C4i+C5iOC4reC4meC4q+C4sgor4LiL4Lit4LihCivguIvguYjguK3guKEKK+C4i+C5ieC4reC4oQor4LiL4LmJ4Lit4Lih4LiE4LmJ4Liy4LiHCivguIvguK3guKHguIvguYjguK0KK+C4i+C5ieC4reC4oeC4i+C4seC4gQor4LiL4LmI4Lit4Lih4LmB4LiL4LihCivguIvguYjguK3guKHguYHguJvguKXguIcKK+C4i+C5ieC4reC4oeC4nuC4ouC4suC4mQor4LiL4LmJ4Lit4Lih4Lie4Lin4LiZCivguIvguYnguK3guKHguYPguKvguI3guYgKK+C4i+C4reC4ogor4LiL4Lit4Lii4Lic4LihCivguIvguK3guKoKK+C4i+C4sOC4i+C4o+C5ieC4suC4pwor4LiL4Liw4LiL4LmI4Lit4LiHCivguIvguLDguIvguK3guYDguIvguLXguKIKK+C4i+C4sOC4i+C4tOC4geC4i+C4sOC5geC4iwor4LiL4Liw4LiL4Li04LiaCivguIvguLDguYDguIvguLLguLAKK+C4i+C4sOC5gOC4i+C4teC4ouC4mgor4LiL4Lix4LiBCivguIvguLHguIHguIvguYnguK3guKEKK+C4i+C4seC4geC5hOC4i+C5iQor4LiL4Lix4LiB4Lif4Lit4LiBCivguIvguLHguIHguKrguYnguLLguKcKK+C4i+C4seC4geC5geC4q+C5ieC4hwor4LiL4Lix4LiHCivguIvguLHguYnguIcKK+C4i+C4seC4h+C4geC4sOC4leC4suC4ogor4LiL4Lix4LiH4LmB4LiL4LinCivguIvguLHguIfguJXguLLguKIKK+C4i+C4seC4lAor4LiL4Lix4LiU4LiC4LmJ4Liy4Lin4Liq4Liy4LijCivguIvguLHguJTguYDguIsKK+C4i+C4seC4lOC4l+C4reC4lAor4LiL4Lix4LiU4LiZ4LmJ4LizCivguIvguLHguJTguKLguLIKK+C4i+C4seC5ieC4mQor4LiL4Lix4LiaCivguIvguLHguJrguILguJnguLjguJkKK+C4i+C4seC4muC4i+C5ieC4reC4mQor4LiL4Lix4Lia4LiL4Liy4LiaCivguIvguLHguJrguIvguLXguYgKK+C4i+C4seC4muC5g+C4mQor4LiL4Lix4Lia4Lie4Lij4Liw4Lie4Lix4LiB4LiV4Lij4LmMCivguIvguLHguJrguKHguLHguJkKK+C4i+C4seC4oQor4LiL4Lix4Lil4Lif4LiyCivguIvguLHguYnguKcKK+C4i+C4sgor4LiL4LmI4LiyCivguIvguLLguIEKK+C4i+C4suC4geC4lOC4tuC4geC4lOC4s+C4muC4o+C4o+C4nuC5jAor4LiL4Liy4LiB4Lio4LieCivguIvguLLguIcKK+C4i+C5iOC4suC4hwor4LiL4Liy4LiUCivguIvguLLguJkKK+C4i+C5iOC4suC4mQor4LiL4LmI4Liy4LiZ4LmA4LiL4LmH4LiZCivguIvguLLguJrguIvguYjguLLguJkKK+C4i+C4suC4muC4i+C4tuC5ieC4hwor4LiL4LmI4Liy4LmC4Lia4LiwCivguIvguLLguYHguKHguYDguKPguLXguKLguKEKK+C4i+C5ieC4suC4ogor4LiL4Liy4Lil4Liy4LmA4Lib4LiyCivguIvguLLguKcKK+C4i+C4suC4p+C4meC5ieC4swor4LiL4Liy4Lin4LmA4Liq4Li14Lii4LiHCivguIvguYjguLLguKvguKPguLTguYjguKEKK+C4i+C5ieC4swor4LiL4LmJ4Liz4LiL4LmJ4Lit4LiZCivguIvguYnguLPguIvguLLguIEKK+C4i+C5ieC4s+C5gOC4leC4tOC4oQor4LiL4LmJ4Liz4Lij4LmJ4Liy4LiiCivguIvguYnguLPguKrguLLguKEKK+C4i+C4tAor4LiL4Li04LiBCivguIvguLTguIHguYYKK+C4i+C4tOC4geC4i+C4teC5iQor4LiL4Li04LiB4LmB4LiL4LmH4LiBCivguIvguLTguIHguLLguKPguYwKK+C4i+C4tOC4h+C5guC4hOC4meC4sgor4LiL4Li04LmI4LiZCivguIvguLTguJnguJnguLLguKHguLTguIEKK+C4i+C4tOC4meC5geC4qgor4LiL4Li04LiaCivguIvguLTguJrguYYKK+C4i+C4tOC4muC4i+C4seC4mgor4LiL4Li04LibCivguIvguLTguJ/guLTguKXguLTguKoKK+C4i+C4tOC4peC4tOC4hOC4reC4mQor4LiL4Li04LinCivguIvguLUKK+C4i+C4teC5iAor4LiL4Li14LiBCivguIvguLXguYjguYLguITguKPguIcKK+C4i+C4teC5ieC4i+C4reC4mQor4LiL4Li14LmA4LiL4Li14Lii4LihCivguIvguLXguJQKK+C4i+C4teC4lOC5gOC4i+C4teC4ouC4pwor4LiL4Li14LiZ4Lit4LiZCivguIvguLXguJvguYjguLLguKIKK+C4i+C4teC5gOC4oeC4meC4leC5jAor4LiL4Li14LmA4Lij4Li14Lii4LihCivguIvguLXguKXguLXguYDguJnguLXguKLguKEKK+C4i+C4tuC4gQor4LiL4Li24LiHCivguIvguLbguYjguIcKK+C4i+C4tuC5ieC4hwor4LiL4Li24LmI4LiH4Lir4LiZ4LmJ4LiyCivguIvguLbguKEKK+C4i+C4tuC4oeC4geC4sOC4l+C4t+C4rQor4LiL4Li24Lih4LiL4Liy4LiaCivguIvguLbguKHguJfguKPguLLguJoKK+C4i+C4t+C5iOC4rQor4LiL4Li34LmI4Lit4LmGCivguIvguLfguYnguK0KK+C4i+C4t+C5ieC4reC4guC4suC4ogor4LiL4Li34LmJ4Lit4LiE4Lin4Liy4Lii4Lir4LiZ4LmJ4Liy4LiZ4LiyIOC4i+C4t+C5ieC4reC4nOC5ieC4suC4q+C4meC5ieC4suC4leC4o+C4uOC4qQor4LiL4Li34LmJ4Lit4LiH4Lix4Lin4Lir4LiZ4LmJ4Liy4LiZ4LiyIOC4i+C4t+C5ieC4reC4nOC5ieC4suC4q+C4meC5ieC4suC4q+C4meC4suC4pwor4LiL4Li34LmI4Lit4LiV4Lij4LiHCivguIvguLfguYnguK3guKPguLPguITguLLguI0KK+C4i+C4t+C5ieC4reC4o+C4ueC5iQor4LiL4Li34LmI4Lit4Liq4Lix4LiV4Lii4LmMCivguIvguLfguYnguK3guKvguJnguYnguLIKK+C4i+C4t+C5iOC4reC5gOC4q+C4oeC4t+C4reC4meC5geC4oeC4p+C4meC4reC4meC4q+C4p+C4lAor4LiL4Li44LiBCivguIvguLjguIHguIvguJkKK+C4i+C4uOC4geC4i+C5iOC4reC4mQor4LiL4Li44LiB4LiL4Li04LiBCivguIvguLjguIcKK+C4i+C4uOC4mQor4LiL4Li44LiaCivguIvguLjguJrguIvguLTguJoKK+C4i+C4uOC4muC4i+C4ueC5iAor4LiL4Li44LibCivguIvguLjguYjguKEKK+C4i+C4uOC5ieC4oQor4LiL4Li44LmJ4Lih4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguIvguLjguYjguKHguITguKEKK+C4i+C4uOC5iOC4oeC4i+C5iOC4suC4oQor4LiL4Li44Lih4LmB4LiL4LinCivguIvguLjguYjguKHguYDguKrguLXguKLguIcKK+C4i+C4uOC4ogor4LiL4Li54LmICivguIvguLnguYjguYYKK+C4i+C4ueC5iOC4geC4seC5ieC4meC4o+C4seC5ieC4p+C5hOC4i+C4oeC4suC4mQor4LiL4Li54LmC4LiE4Lij4LiqCivguIvguLnguYjguIvguYjguLIKK+C4i+C4ueC4lAor4LiL4Li54LmJ4LiUCivguIvguLnguJTguIvguLLguJQKK+C4i+C4ueC4mgor4LmA4LiLCivguYDguIvguYfguIEKK+C5gOC4i+C5geC4hOC4meC4leC5jAor4LmA4LiL4LmH4LiHCivguYDguIvguYjguIcKK+C5gOC4i+C5ieC4hwor4LmA4LiL4LmH4LiH4LmB4LiL4LmICivguYDguIvguIvguLHguIcKK+C5gOC4i+C4lQor4LmA4LiL4LiZCivguYDguIvguYfguJkKK+C5gOC4i+C5iOC4mQor4LmA4LiL4LiZ4LiV4Li04LiB4Lij4Lix4LihCivguYDguIvguJnguJXguLTguYDguIHguKPguJQKK+C5gOC4i+C4meC4leC4tOC5gOC4oeC4leC4owor4LmA4LiL4LiZ4LiV4Li04Lil4Li04LiV4LijCivguYDguIvguYjguJnguYDguKvguKXguYnguLIKK+C5gOC4i+C4m+C4seC4geC4leC4sOC4geC4o+C5ieC4rQor4LmA4LiL4Lij4LiyCivguYDguIvguKPguLLguLAKK+C5gOC4i+C4o+C4uOC5iOC4oQor4LmA4LiL4Lil4LmA4LiL4Li14Lii4LiqCivguYDguIvguKXguKXguYwKK+C5gOC4i+C4peC4peC5jOC4l+C4uOC4leC4tOC4ouC4oOC4ueC4oeC4tAor4LmA4LiL4Lil4Lil4LmM4Lib4LiQ4Lih4Lig4Li54Lih4Li0CivguYDguIvguKXguKXguLnguKXguK3guKLguJTguYwKK+C5gOC4i+C4peC4peC4ueC5guC4peC4qgor4LmA4LiL4LmI4LitCivguYDguIvguYjguK3guIvguYjguLIKK+C5gOC4i+C4reC4o+C5jOC5guC4hOC5gOC4meC4teC4ouC4oQor4LmA4LiL4Lit4LiwCivguYDguIvguLIKK+C5gOC4i+C5ieC4suC4i+C4teC5iQor4LmA4LiL4Liy4LiwCivguYDguIvguLLguLDguKXguLLguKIKK+C5gOC4i+C4tOC4hwor4LmA4LiL4Li04LmJ4LiHCivguYDguIvguLXguKLguJkKK+C5gOC4i+C4teC4ouC4mgor4LmA4LiL4Li14Lii4Lih4LiL4Li1CivguYDguIvguLXguKLguKcKK+C5gOC4i+C4teC5iOC4ouC4pwor4LmA4LiL4Li14LmI4Lii4Lin4LiB4Liy4LiHCivguYDguIvguLfguYjguK3guIcKK+C5geC4iwor4LmB4LiL4LmICivguYHguIvguYfguIHguITguLLguKPguLTguJkKK+C5geC4i+C5h+C4geC4hOC4suC4o+C4tOC4meC5guC4i+C5gOC4lOC4teC4ouC4oQor4LmB4LiL4LiHCivguYHguIvguIfguYHguIvguKcKK+C5geC4i+C5iOC4i+C5ieC4reC4hwor4LmB4LiL4LiUCivguYHguIvguJTguYYKK+C5geC4i+C4mgor4LmB4LiL4LihCivguYHguIvguKLguLTguJQKK+C5geC4i+C5iOC4pwor4LmB4LiL4LiwCivguYLguIsKK+C5guC4i+C5iAor4LmC4LiL4LiBCivguYLguIvguYjguIcKK+C5guC4i+C4h+C5guC4guC4lOC4hwor4LmC4LiL4LiL4Lix4LiU4LmC4LiL4LmA4LiLCivguYLguIvguYDguIsKK+C5guC4i+C4lOC4sgor4LmC4LiL4LiU4Liy4LmB4Lic4LiU4LmA4Lic4LiyCivguYLguIvguJTguLLguYTguJ8KK+C5guC4i+C5gOC4lOC4teC4ouC4oQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LiE4Liy4Lij4LmM4Lia4Lit4LmA4LiZ4LiVCivguYLguIvguYDguJTguLXguKLguKHguIvguLHguKXguYDguJ/guJUKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC5hOC4i+C4hOC4peC4suC5gOC4oeC4lQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiB4Lil4Li54LiX4Liy4LmA4Lih4LiVCivguYLguIvguYDguJTguLXguKLguKHguYTguK7guYLguJTguKPguYDguIjguJnguITguLLguKPguYzguJrguK3guYDguJnguJUKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC4i+C4seC4peC5gOC4n+C4lQor4LmC4LiL4LihCivguYLguIvguKPguKEKK+C5guC4i+C4o+C4oeC4m+C4o+C4sOC4l+C4ouC4lAor4LmC4LiL4Lij4Lih4LmC4Lij4LihCivguYLguIvguKPguKHguKjguLHguKrguJXguKPguLLguKfguLjguJgKK+C5guC4i+C4peC4sgor4LmE4LiLCivguYTguIvguYkKK+C5hOC4i+C5gOC4geC4tOC4pQor4LmE4LiL4LmC4LiE4Lil4LiZCivguYTguIvguJnguYwKK+C5hOC4i+C4ouC4suC5hOC4meC4lOC5jAor4LmE4LiL4Lij4LmJCivguYTguIvguYDguKPguJkKK+C5hOC4i+C5guC4pQor4LiMCivguIzguLLguJkKK+C4jOC4suC4m+C4mS0KK+C4jOC4suC4m+C4meC4geC4tOC4iAor4LiM4Liy4Lib4LiZ4Liq4LiW4Liy4LiZCivguYDguIzguK0KK+C5gOC4jOC4reC5gOC4reC4oQor4LiNCivguI3guI3guYjguLLguKIKK+C4jeC4p+C4mQor4LiN4Lix4LiV4LiV4Li0CivguI3guLLguJMKK+C4jeC4suC4ky0KK+C4jeC4suC4k+C4l+C4seC4quC4meC4sAor4LiN4Liy4LiT4Lin4Li04LiX4Lii4LiyCivguI3guLLguJPguKjguLLguKrguJXguKPguYwKK+C4jeC4suC4leC4tAor4LiN4Liy4LiV4Li0LQor4LiN4Liy4LiV4Li04LiB4LiyCivguI3guLLguJXguLTguJTguLXguIHguLHguJkKK+C4jeC4suC4leC4tOC5gOC4oOC4lwor4LiN4Li04LiaCivguI3guLXguYgKK+C4jeC4teC5iOC4m+C4uOC5iOC4mQor4LmA4LiN4Lii4LiY4Lij4Lij4LihCivguYTguI3guKLguJjguKPguKPguKEKK+C4jgor4LiO4Li14LiB4LiyCivguI8KK+C4kAor4LiQ4LiB4Lix4LiUCivguJDguLLguIHguLnguKMKK+C4kOC4suC4mQor4LiQ4Liy4LiZLQor4LiQ4Liy4LiZ4LiB4Lij4LiT4LmMCivguJDguLLguJnguYDguILguLXguKLguIcKK+C4kOC4suC4meC5gOC4iuC4tOC4h+C4muC4suC4leC4owor4LiQ4Liy4LiZ4LmA4LiX4LmJ4Liy4Liq4Li04LiH4Lir4LmMCivguJDguLLguJnguJrguLHguJfguKHguYwKK+C4kOC4suC4meC4o+C4suC4gQor4LiQ4Liy4LiZ4Liq4Li04LiH4Lir4LmMCivguJDguLLguJnguLAKK+C4kOC4suC4meC4seC4meC4lOC4owor4LiQ4Liy4LiZ4Liy4LiZ4Li44LiB4Lij4LihCivguJDguLLguJnguLLguJnguLjguKPguLnguJsKK+C4kOC4suC4meC4suC4meC4uOC4qOC4seC4geC4lOC4tOC5jAor4LiQ4Liy4LiZ4Li14Lii4LiwCivguJDguLLguJvguJktCivguJDguLLguJvguJnguLIKK+C4kOC4suC4ouC4tQor4LiQ4Li04LiVCivguJDguLTguJXguLQKK+C4kQor4LiR4Lix4LiH4LiqLQor4LiR4Liy4LiBLQor4LiR4Liy4Lir4LiBCivguJHguLLguKvguLAKK+C4kgor4LmA4LiS4LmI4LiyCivguYDguJLguYjguLLguYHguIHguYgKK+C5gOC4kuC5iOC4suC4q+C4seC4p+C4h+C4uQor4LiTCivguJPguKPguIfguITguYwKK+C5gOC4k+C4owor4LmA4LiT4Lij4Lir4LiZ4LmJ4Liy4LmE4LifCivguYDguJPguKPguKvguLLguIfguJnguLLguIQKK+C4lAor4LiU4LiBCivguJTguIHguJTguLfguYjguJkKK+C4lOC4hwor4LiU4LmJ4LiHCivguJTguIfguJTguLLguJkKK+C4lOC4h+C4lOC4tOC4mgor4LiU4LiH4LiU4Li24LiBCivguJTguIfguKfguLLguKIKK+C4lOC5ieC4mQor4LiU4LmJ4LiZ4LiU4Lix4LmJ4LiZCivguJTguJnguYLguJTguYgKK+C4lOC4meC4leC4o+C4tQor4LiU4LmJ4LiZ4LiW4Lit4Lii4Lir4Lil4Lix4LiHCivguJTguJnguKIKK+C4lOC4meC4seC4ogor4LiU4LiZ4Li4CivguJTguJnguLjguIoKK+C4lOC4meC4uQor4LiU4Lia4Lix4Liq4Lin4Li04LiZCivguJTguJrguLHguKrguKfguLUKK+C4lOC4oQor4LiU4Lih4LmE4LijCivguJTguKMKK+C4lOC4o+C4h+C4hOC5jAor4LiU4Lij4LiT4Li1CivguJTguKPguJjguLLguJkKK+C4lOC4o+C4o+C4iuC4meC4tQor4LiU4Lij4Lij4LiK4LiZ4Li14Lir4Lix4LiB4LmA4LirCivguJTguKPguLLguJ/guJXguYwKK+C4lOC4o+C4uAor4LiU4Lij4Li44LiTCivguJTguKPguLjguJPguLLguJPguLHguJXguLQKK+C4lOC4o+C4uOC4k+C4tQor4LiU4Lik4LiW4Li1CivguJTguKUKK+C4lOC4pS0KK+C4lOC4peC5g+C4iAor4LiU4Lil4Lia4Lix4LiZ4LiU4Liy4LilCivguJTguKXguKDguLLguIQKK+C4lOC4p+C4hwor4LiU4LmJ4Lin4LiHCivguJTguKfguIfguYHguIHguYnguKcKK+C4lOC4p+C4h+C5g+C4iAor4LiU4Lin4LiH4LmA4LiU4Li34Lit4LiZ4Lib4Lij4Liw4LiU4Lix4Lia4LiU4Liy4LinCivguJTguKfguIfguJXguLIKK+C4lOC4p+C4h+C4quC4oeC4owor4LiU4LmJ4Lin4LiH4LmC4Liq4LiZCivguJTguKfguIgKK+C4lOC4p+C4lAor4LiU4LmI4Lin4LiZCivguJTguYnguKfguJkKK+C4lOC5ieC4p+C4oeC5gOC4lOC4teC5ieC4ouC4oQor4LiU4LmJ4Lin4LiiCivguJTguYnguKfguKLguKfguYjguLIKK+C4lOC4reC4gQor4LiU4Lit4LiB4LiB4Lij4Liw4Lia4Lit4LiBCivguJTguK3guIHguIHguLDguJfguLfguK0KK+C4lOC4reC4geC4geC5ieC4suC4mQor4LiU4Lit4LiB4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmICivguJTguK3guIHguIjguK3guIEKK+C4lOC4reC4geC4iOC4seC4mQor4LiU4Lit4LiB4LiI4Lix4LiZ4LiX4LiZ4LmMCivguJTguK3guIHguIjguLTguIEKK+C4lOC4reC4geC4iuC4meC4leC5ieC4mQor4LiU4Lit4LiB4LiU4Lix4LmJ4LinCivguJTguK3guIHguJTguYnguLLguKIKK+C4lOC4reC4geC4lOC4tOC4mQor4LiU4Lit4LiB4LiW4Lin4Liy4Lii4Lie4Lij4LiwCivguJTguK3guIHguJfguK3guIcKK+C4lOC4reC4geC4meC5ieC4s+C4nOC4tuC5ieC4hwor4LiU4Lit4LiB4Lia4Lix4LinCivguJTguK3guIHguJrguLjguIEKK+C4lOC4reC4geC5gOC4muC4teC5ieC4ogor4LiU4Lit4LiB4LmA4Lia4Li14LmJ4Lii4LiX4Lia4LiV4LmJ4LiZCivguJTguK3guIHguJ7guLTguIHguLjguKXguKPguYjguKfguIcKK+C4lOC4reC4geC4n+C5ieC4reC4mQor4LiU4Lit4LiB4Lif4LmJ4LiyCivguJTguK3guIHguKHguLDguILguLLguKEKK+C4lOC4reC4geC4oeC4sOC4leC4suC4lAor4LiU4Lit4LiB4LmE4Lih4LmJCivguJTguK3guIHguYTguKHguYnguIjguLHguJnguJfguJnguYwKK+C4lOC4reC4geC5hOC4oeC5ieC4iOC4teC4mQor4LiU4Lit4LiB4LmE4Lih4LmJ4LiI4Li14LiaCivguJTguK3guIHguYTguKHguYnguYDguIjguYnguLIKK+C4lOC4reC4geC5hOC4oeC5ieC4leC4suC4lAor4LiU4Lit4LiB4LmE4Lih4LmJ4LiX4Liw4LmA4LilCivguJTguK3guIHguYTguKHguYnguYDguJfguLXguKLguJkKK+C4lOC4reC4geC5hOC4oeC5ieC5hOC4l+C4owor4LiU4Lit4LiB4LmE4Lih4LmJ4LiZ4LmJ4LizCivguJTguK3guIHguYTguKHguYnguJ7guKfguIcKK+C4lOC4reC4geC5hOC4oeC5ieC4nuC4uOC5iOC4oQor4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4Lie4Lil4Li04LiHCivguJTguK3guIHguYTguKHguYnguYTguJ8KK+C4lOC4reC4geC5hOC4oeC5ieC4o+C5iOC4p+C4hwor4LiU4Lit4LiB4LmE4Lih4LmJ4Lij4Li44LmI4LiHCivguJTguK3guIHguYTguKHguYnguYTguKvguKcKK+C4lOC4reC4geC4o+C4seC4gQor4LiU4Lit4LiB4Lil4Liz4LiU4Lin4LiZCivguJTguK3guIHguKXguLPguYLguJ7guIcKK+C4lOC4reC4geC5gOC4peC5h+C4mgor4LiU4Lit4LiB4Liq4Lij4LmJ4Lit4LiiCivguJTguK3guIHguKvguKHguLLguIEKK+C4lOC4reC4geC4q+C4tOC4mQor4LiU4Lit4LiB4Lit4Liy4LinCivguJTguK3guIHguK3guLLguKfguYHguJTguIcKK+C4lOC4reC4hwor4LiU4LmI4Lit4LiH4LmGCivguJTguYnguK3guIcKK+C4lOC5ieC4reC4h+C5hgor4LiU4Lit4LiH4LiJ4Liy4LiiCivguJTguK3guIfguJTguLbguIcKK+C4lOC4reC4h+C4ouC4sgor4LiU4Lit4LiH4Lir4Liy4LiiCivguJTguK3guJQKK+C4lOC4reC4mQor4LiU4LmI4Lit4LiZCivguJTguK3guKEKK+C4lOC5iOC4reC4oQor4LiU4LmJ4Lit4LihCivguJTguK3guKIKK+C4lOC5ieC4reC4ogor4LiU4Lit4Lil4Lil4Liy4Lij4LmMCivguJTguLAKK+C4lOC4sOC5guC4leC5iuC4sOC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4LiU4Liw4Lir4Lih4Lix4LiHCivguJTguLHguIEKK+C4lOC4seC4geC4hOC4rQor4LiU4Lix4LiB4LiU4LiZCivguJTguLHguIHguJTguLLguJkKK+C4lOC4seC4geC5gOC4lOC4teC5ieC4ogor4LiU4Lix4LiB4LmB4LiU4LmJCivguJTguLHguIHguJ/guLHguIcKK+C4lOC4seC4geC4qeC4gQor4LiU4Lix4LiB4Lip4LiTCivguJTguLHguIHguKnguJPguLUKK+C4lOC4seC4geC4qeC4seC4mQor4LiU4Lix4LiHCivguJTguLHguYjguIcKK+C4lOC4seC5ieC4hwor4LiU4Lix4LiH4LiI4Lij4Li04LiHCivguJTguLHguYnguIfguYDguJTguLTguKEKK+C4lOC4seC4h+C4meC4seC5ieC4mQor4LiU4Lix4LiH4LiZ4Li14LmJCivguJTguLHguIfguKPguLfguK0KK+C4lOC4seC4h+C4pOC5hQor4LiU4Lix4LiH4Lir4LiZ4Li24LmI4LiHCivguJTguLHguIrguJnguLUKK+C4lOC4seC4lAor4LiU4Lix4LiU4LiI4Lij4Li04LiVCivguJTguLHguJTguJTguLHguYnguJkKK+C4lOC4seC4lOC4leC4mQor4LiU4Lix4LiU4Lib4Lil4Lix4LiBCivguJTguLHguJTguYHguJvguKXguIcKK+C4lOC4seC4lOC4quC4seC4meC4lOC4suC4mQor4LiU4Lix4LiV4LiK4LmMCivguJTguLHguJkKK+C4lOC4seC5ieC4mQor4LiU4Lix4LiZ4LiX4Li44Lij4Lix4LiHCivguJTguLHguYnguJnguYDguKHguIYKK+C4lOC4seC4meC5gOC4q+C4tOC4oQor4LiU4Lix4LiaCivguJTguLHguJrguILguLHguJnguJjguYwKK+C4lOC4seC4muC5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiU4Lix4Lia4LiI4Li04LiVCivguJTguLHguJrguIrguLXguJ4KK+C4lOC4seC4muC4peC4oQor4LiU4Lix4Lih4Lie4LmMCivguJTguLHguYnguKfguYDguJTguLXguYnguKIKK+C4lOC4seC4quC4geC4owor4LiU4Lix4Liq4LiB4Lij4Li1CivguJTguLIKK+C4lOC5iOC4sgor4LiU4Liy4LiBCivguJTguYjguLLguIcKK+C4lOC5ieC4suC4hwor4LiU4LmI4Liy4LiH4LiX4Lix4Lia4LiX4Li04LihCivguJTguYjguLLguIfguJ7guKPguYnguK3guKIKK+C4lOC4suC4lAor4LiU4Liy4LiU4LmGCivguJTguLLguJTguJXguLDguIHguLHguYjguKcKK+C4lOC4suC4lOC4n+C5ieC4sgor4LiU4Liy4LiU4Liy4LipCivguJTguLLguJTguLMKK+C4lOC5iOC4suC4l+C4rQor4LiU4Liy4LiZCivguJTguYjguLLguJkKK+C4lOC5ieC4suC4mQor4LiU4LmJ4Liy4LiZ4LmE4Lih4LmJCivguJTguYnguLLguJnguKvguJnguYnguLIKK+C4lOC4suC4mgor4LiU4Liy4Lia4LmA4LiH4Li04LiZCivguJTguLLguJrguJvguKXguLLguKLguJvguLfguJkKK+C4lOC4suC4muC4peC4suC4pwor4LiU4Liy4Lia4LiqCivguJTguLLguJrguKrguK3guIfguITguKEKK+C4lOC4suC4oQor4LiU4LmJ4Liy4LihCivguJTguYnguLLguKHguIjguLTguYnguKcKK+C4lOC4suC4oeC4ni0KK+C4lOC4suC4oeC4nuC5jAor4LiU4Liy4Lih4Lie4Lin4Lij4Lij4LiTCivguJTguLLguKHguKMKK+C4lOC4suC4ogor4LiU4LmJ4Liy4LiiCivguJTguYnguLLguKLguIvguLHguIcKK+C4lOC5ieC4suC4ouC4lOC4tOC4mgor4LiU4Liy4LijCivguJTguLLguKPguIEKK+C4lOC4suC4o+C4k+C4tQor4LiU4Liy4Lij4LiU4Liy4LipCivguJTguLLguKPguLIKK+C4lOC4suC4o+C4suC4muC4lgor4LiU4Liy4Lij4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguJTguLLguKUKK+C4lOC4suC4peC4ieC4seC4leC4owor4LiU4Liy4Lil4LmA4LiU4Li34Lit4LiUCivguJTguLLguKXguYLguJfguKrguLAKK+C4lOC4suC4peC4seC4lAor4LiU4Liy4Lil4Li4CivguJTguLLguKXguLjguIoKK+C4lOC4suC4pwor4LiU4LmI4Liy4LinCivguJTguYnguLLguKcKK+C4lOC4suC4p+C4geC4o+C4sOC4iOC4suC4ogor4LiU4Liy4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJTguLLguKfguJTguLbguIfguKrguYwKK+C4lOC4suC4p+C4leC4gQor4LiU4Liy4Lin4LmA4LiX4Li14Lii4LihCivguJTguLLguKfguJrguKoKK+C4lOC4suC4p+C4o+C4uOC5iOC4hwor4LiU4Liy4Lin4LmA4Lij4Li34Lit4LiHCivguJTguLLguKfguKTguIHguKnguYwKK+C4lOC4suC4p+C4peC5ieC4reC4oeC5gOC4lOC4t+C4reC4mQor4LiU4Liy4Lin4Lir4Liy4LiHCivguJTguLLguKfguYDguKvguJnguLfguK0KK+C4lOC4suC4qQor4LiU4Liy4Lip4LiU4LiyCivguJTguLLguKnguJTguLfguYjguJkKK+C4lOC4suC4qeC5gOC4lOC4teC4ouC4owor4LiU4Liy4Lir4LiH4Lix4LiZCivguJTguLLguKwKK+C4lOC4swor4LiU4LmI4LizCivguJTguYnguLMKK+C4lOC4s+C4geC4pQor4LiU4Liz4LmA4LiB4Li04LiHCivguJTguLPguYHguITguIcKK+C4lOC4s+C4lOC4hwor4LiU4Liz4LiU4Li04LiZCivguJTguLPguYHguJTguIcKK+C4lOC4s+C5hiDguYHguJTguIfguYYKK+C4lOC4s+C4meC4sgor4LiU4Liz4LiZ4Liy4LiTCivguJTguLPguJnguLLguJkKK+C4lOC4s+C4meC4uQor4LiU4Liz4LmA4LiZ4Li04LiZCivguJTguLPguYDguJnguLTguJnguITguJTguLUKK+C4lOC4s+C5gOC4meC4teC4ouC4mQor4LiU4Liz4LmA4LiZ4Li14Lii4LijCivguJTguLPguJrguKUKK+C4lOC4s+C4m+C4t+C4mQor4LiU4Liz4Lie4Lit4LiHCivguJTguLPguYLguJ7guIcKK+C4lOC4s+C4o+C4hwor4LiU4Liz4Lij4Lin4LiICivguJTguLPguKPguLHguKoKK+C4lOC4s+C4o+C4tAor4LiU4Liz4Lij4Li1CivguJTguLPguKPguLkKK+C4lOC4s+C5hOC4owor4LiU4Liz4Lik4Lip4LiT4LiyCivguJTguLPguYDguKXguLTguIcKK+C4lOC4s+C5geC4peC4hwor4LiU4Liz4Lir4LiZ4Lix4LiBCivguJTguLPguKvguJnguLQKK+C4lOC4s+C4q+C4seC4pwor4LiU4Liz4Lit4Lin4LiUCivguJTguLTguIEKK+C4lOC4tOC4geC5hgor4LiU4Li04LiHCivguJTguLTguYjguIcKK+C4lOC4tOC5iOC4h+C4nuC4quC4uOC4mOC4sgor4LiU4Li04LiJ4Lix4LiZCivguJTguLTguJAKK+C4lOC4tOC4leC4luC5jAor4LiU4Li04LiW4Li1CivguJTguLTguJkKK+C4lOC4tOC5ieC4mQor4LiU4Li04LiZ4LiB4Lij4LiUCivguJTguLTguJnguILguLLguKcKK+C4lOC4tOC4meC5gOC4hOC5h+C4oQor4LiU4Li04LiZ4LiU4Lit4LiZ4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4LihCivguJTguLTguJnguJTguLMKK+C4lOC4tOC4meC5geC4lOC4hwor4LiU4Li04LiZ4LiZ4Lin4LilCivguJTguLTguJnguJvguKPguLDguKrguLTguKcKK+C4lOC4tOC4meC4m+C4t+C4mQor4LiU4Li04LiZ4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguJTguLTguJnguJ7guK3guIHguKvguLLguIfguKvguKHguLkKK+C4lOC4tOC5ieC4meC4o+C4mQor4LiU4Li04LiZ4Lij4LmI4Lin4LiZCivguJTguLTguJnguKPguLDguYDguJrguLTguJQKK+C4lOC4tOC4meC4quC5ieC4oQor4LiU4Li04LiZ4Liq4LitCivguJTguLTguJnguKrguK3guJ7guK3guIcKK+C4lOC4tOC4meC4quC4s+C4peC4tQor4LiU4Li04LiZ4Lir4Li5CivguJTguLTguJnguK3guLXguKvguKPguK3guJoKK+C4lOC4tOC4mgor4LiU4Li04Lia4LiU4Li1CivguJTguLTguKPguLHguIjguInguLLguJkKK+C4lOC4tOC4peC4gQor4LiU4Li04LmI4LinCivguJTguLTguYnguKcKK+C4lOC4tOC5ieC4p+C5gOC4lOC4teC5ieC4ouC4pwor4LiU4Li04Lip4LiQ4LmMCivguJTguLTguKrguYLguJ7guKPguYDguIvguLXguKLguKEKK+C4lOC4tQor4LiU4Li14LmGCivguJTguLXguYDguIHguKXguLfguK0KK+C4lOC4teC5gOC4geC4peC4t+C4reC4neC4o+C4seC5iOC4hwor4LiU4Li14LiH4Li5CivguJTguLXguYPguIgKK+C4lOC4teC4ieC4seC4mQor4LiU4Li14LiJ4Liy4LiZCivguJTguLXguIvguYjguLLguJkKK+C4lOC4teC5gOC4i+C4pQor4LiU4Li14LiUCivguJTguLXguJTguILguLHguJkKK+C4lOC4teC4lOC4lOC4tOC5ieC4mQor4LiU4Li14LiU4Lid4LmJ4Liy4LiiCivguJTguLXguJTguJ7guLTguKHguJ7guYwKK+C4lOC4teC4lOC4peC4ueC4geC4hOC4tOC4lAor4LiU4Li14LiU4Lil4Li54LiB4LiE4Li04LiU4Lij4Liy4LiH4LmB4LiB4LmJ4LinCist4LiU4Li14LiU4Lix4LiBCivguJTguLXguJTguLXguJfguLUKK+C4lOC4teC5gOC4lOC4t+C4reC4lAor4LiU4Li14LmB4LiV4LiBCivguJTguLXguJnguLLguITguKPguLLguIoKK+C4lOC4teC5gOC4meC4t+C5ieC4reC4lOC4teC5g+C4iAor4LiU4Li14Lia4Lix4LinCivguJTguLXguJrguLjguIEKK+C4lOC4teC4m+C4peC4tQor4LiU4Li14LmA4Lib4Lij4Liq4LiK4Lix4LiZCivguJTguLXguJzguLIKK+C4lOC4teC4neC5iOC4rQor4LiU4Li14Lie4LijCivguJTguLXguYTguKHguYjguJTguLUKK+C4lOC4teC4ouC4sgor4LiU4Li14Lij4LmJ4Liy4LiiCivguJTguLXguKXguLAKK+C4lOC4teC5geC4peC5ieC4pwor4LiU4Li14Lir4Lih4Li1CivguJTguLXguKvguKXguLUKK+C4lOC4teC4q+C4tOC4mQor4LiU4Li14Lit4LiB4LiU4Li14LmD4LiICivguJTguLbguIEKK+C4lOC4tuC4geC4lOC4s+C4muC4o+C4o+C4nuC5jAor4LiU4Li24LiB4LiU4Li34LmI4LiZCivguJTguLbguIcKK+C4lOC4tuC5iOC4hwor4LiU4Li24LiH4LiU4Lix4LiZCivguJTguLbguIfguJTguLfguYnguK0KK+C4lOC4tuC4h+C4lOC4ueC4lAor4LiU4Li24LiH4Liq4LiwCivguJTguLbguYjguKEKK+C4lOC4t+C5iOC4mQor4LiU4Li34LmI4LiZ4LiU4Liy4LipCivguJTguLfguYjguJnguJTguLbguIEKK+C4lOC4t+C5iOC4oQor4LiU4Li34LmI4Lih4LiU4LmI4LizCivguJTguLfguK0KK+C4lOC4t+C5ieC4rQor4LiU4Li34LmJ4Lit4LiU4Lix4LiZCivguJTguLfguYnguK3guJTguYnguLLguJkKK+C4lOC4t+C5ieC4reC4lOC4tuC4hwor4LiU4Li34LmJ4Lit4LmB4Lie4LmI4LiHCivguJTguLfguYnguK3guKLguLIKK+C4lOC4uAor4LiU4Li44LiBCivguJTguLjguIHguJTguLTguIEKK+C4lOC4uOC4geC4l+C4sOC5gOC4pQor4LiU4Li44LiB4Lil4Liz4Lie4Lix4LiZCivguJTguLjguYnguIcKK+C4lOC4uOC5ieC4h+C4lOC4tOC5ieC4hwor4LiU4Li44LiICivguJTguLjguIjguJTguLHguIcKK+C4lOC4uOC4iOC4q+C4meC4tuC5iOC4hwor4LiU4Li44LiUCivguJTguLjguJTguLHguJkKK+C4lOC4uOC5gOC4lOC4t+C4reC4lAor4LiU4Li44LiZCivguJTguLjguYnguJkKK+C4lOC4uOC4muC5hgor4LiU4Li44LihCivguJTguLjguYjguKEKK+C4lOC4uOC5iOC4oeC5hgor4LiU4Li44LmI4LiiCivguJTguLjguKPguIQKK+C4lOC4uOC4o+C4h+C4hOC5jAor4LiU4Li44Lij4LiH4LiE4Li1CivguJTguLjguKPguYnguLLguKIKK+C4lOC4uOC4o+C4tOC4oi0KK+C4lOC4uOC4o+C4tOC4ouC4sAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiELQor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJTguLjguKPguLTguKLguLLguIfguITguYzguIjguLPguYDguKPguLXguKLguIcKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC4qOC4suC4quC4leC4o+C5jAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4Lio4Li04Lil4Lib4LmMCivguJTguLjguKUKK+C4lOC4uOC4pS0KK+C4lOC4uOC4peC4geC4suC4o+C4hOC5ieC4sgor4LiU4Li44Lil4LiB4Liy4Lij4LiK4Liz4Lij4Liw4LmA4LiH4Li04LiZCivguJTguLjguKXguIrguLPguKPguLDguKvguJnguLXguYkKK+C4lOC4uOC4peC4nuC4tOC4meC4tOC4iAor4LiU4Li44Lil4Lig4Liy4LiECivguJTguLjguKXguKItCivguJTguLjguKXguKLguJ7guLTguJnguLTguIgKK+C4lOC4uOC4peC4ouC4oOC4suC4ngor4LiU4Li44Lil4Lit4Liz4LiZ4Liy4LiICivguJTguLjguKnguI7guLUKK+C4lOC4uOC4qeC4juC4teC4meC4tOC4nuC4meC4mOC5jAor4LiU4Li44Lip4LiO4Li14Lia4Lix4LiT4LiR4Li04LiVCivguJTguLjguKnguI7guLXguKHguLLguKXguLIKK+C4lOC4uOC4qeC4juC4teC4quC4seC4h+C5gOC4p+C4ogor4LiU4Li44Lip4LiT4Li1CivguJTguLjguKnguJPguLXguKDguLLguJ4KK+C4lOC4uOC4qeC4tOC4lQor4LiU4Li44Liq4Li04LiVCivguJTguLjguYDguKvguKfguYjguLIKK+C4lOC4uQor4LiU4Li54LiB4LmE4LiB4LmI4LiU4LizCivguJTguLnguIHguITguYjguLLguIcKK+C4lOC4ueC4geC4owor4LiU4Li54LiB4LmI4Lit4LiZCivguJTguLnguYHguITguKXguJkKK+C4lOC4ueC5g+C4iAor4LiU4Li54LiK4LmJ4Liy4LiH4LmD4Lir4LmJ4LiU4Li54Lir4Liy4LiHIOC4lOC4ueC4meC4suC4h+C5g+C4q+C5ieC4lOC4ueC5geC4oeC5iAor4LiU4Li54LiL4Li0CivguJTguLnguJQKK+C4lOC4ueC4lOC4lOC4tuC4hwor4LiU4Li54LiU4LiU4Li34LmI4LihCivguJTguLnguJTguK3guKHguJTguLnguJTguLLguKIKK+C4lOC4ueC4lOC4suC4ogor4LiU4Li54LiU4Li54LmLCivguJTguLnguJXguLLguKHguYnguLLguJXguLLguYDguKPguLfguK0KK+C4lOC4ueC4luC4ueC4gQor4LiU4Li54LiW4Li54LiB4LiU4Li54LmB4LiE4Lil4LiZCivguJTguLnguYDguJbguK3guLAKK+C4lOC4ueC5gOC4luC4tOC4lAor4LiU4Li54LmB4LiZ4LmI4LiwCivguJTguLnguYDguJrguLIKK+C4lOC4ueC5hOC4m+C4geC5iOC4reC4mQor4LiU4Li54Lij4LiyCivguJTguLnguKPguYnguLLguKIKK+C4lOC4ueC4o+C4tgor4LiU4Li54LmB4LilCivguJTguLnguKvguKHguLTguYjguJkKK+C4lOC4ueC4q+C4oeC4tOC5iOC4meC4luC4tOC5iOC4meC5geC4hOC4peC4mQor4LiU4Li54Lir4Lij4Li34LitCivguJTguLnguKvguKPguLkKK+C4lOC4ueC5gOC4q+C4oeC4t+C4reC4mQor4LmA4LiUCivguYDguJTguYgKK+C5gOC4lOC4gQor4LmA4LiU4LmH4LiBCivguYDguJTguYfguIHguIrguLIKK+C5gOC4lOC5h+C4geC4iuC4suC4ogor4LmA4LiU4LiB4LiL4LmM4LmC4LiX4Lij4LiqCivguYDguJTguYfguIHguYHguJTguIcKK+C5gOC4lOC5h+C4geC5gOC4oeC4t+C5iOC4reC4p+C4suC4meC4i+C4t+C4mQor4LmA4LiU4LmH4LiB4Lir4LiN4Li04LiHCivguYDguJTguYfguIHguK3guKHguKHguLfguK0KK+C5gOC4lOC4hOC4suC4geC4o+C4seC4oQor4LmA4LiU4LiE4Liy4LmA4Lih4LiV4LijCivguYDguJTguITguLLguKXguLTguJXguKMKK+C5gOC4lOC5ieC4hwor4LmA4LiU4LmH4LiICivguYDguJTguIoKK+C5gOC4lOC4iuC4meC5jAor4LmA4LiU4LiK4LiZ4LiwCivguYDguJTguIrguLAKK+C5gOC4lOC5guC4igor4LmA4LiU4LmC4LiK4LiK4Lix4LiiCivguYDguJTguYLguIrguJ7guKUKK+C5gOC4lOC4i+C4tOC4geC4o+C4seC4oQor4LmA4LiU4LiL4Li04LmA4Lih4LiV4LijCivguYDguJTguIvguLTguKXguLTguJXguKMKK+C5gOC4lOC5h+C4lAor4LmA4LiU4LmH4LiU4LiC4Liy4LiUCivguYDguJTguYfguJTguJTguKfguIcKK+C5gOC4lOC5h+C4lOC4lOC4reC4geC5hOC4oeC5ieC4o+C5iOC4p+C4oeC4leC5ieC4mQor4LmA4LiU4LmH4LiU4LiU4Lit4LiB4LmE4Lih4LmI4LmE4Lin4LmJ4LiC4Lix4LmJ4LinCivguYDguJTguYfguJTguYDguJTguLXguYjguKLguKcKK+C5gOC4lOC5h+C4lOC4muC4seC4p+C5hOC4oeC5iOC5hOC4p+C5ieC5g+C4ogor4LmA4LiU4LmH4LiU4Lib4Lil4Li14LmE4Lih4LmI4Lih4Li14LmD4LiiCivguYDguJTguJkKK+C5gOC4lOC5iOC4mQor4LmA4LiU4LiZ4LiV4Liy4LiiCivguYDguJTguJnguKHguLLguKPguYzguIEKK+C5gOC4lOC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4LmL4LitCivguYDguJTguYvguK3guJTguYvguLIKK+C5gOC4lOC4sgor4LmA4LiU4LmI4LiyCivguYDguJTguYjguLLguYYKK+C5gOC4lOC5ieC4sgor4LmA4LiU4LmJ4Liy4LiU4Li04LiZCivguYDguJTguYnguLLguKXguKEKK+C5gOC4lOC4suC4quC4p+C4lAor4LmA4LiU4Liy4Liq4Li44LmI4LihCivguYDguJTguLLguLAKK+C5gOC4lOC4tOC4mQor4LmA4LiU4Li04LmI4LiZCivguYDguJTguLTguJnguILguJrguKfguJkKK+C5gOC4lOC4tOC4meC4hOC4suC4luC4sgor4LmA4LiU4Li04LiZ4LiI4Lix4LiB4LijCivguYDguJTguLTguJnguJXguKXguLLguJQKK+C5gOC4lOC4tOC4meC4leC4suC4oeC4q+C4peC4seC4h+C4nOC4ueC5ieC5g+C4q+C4jeC5iOC4q+C4oeC4suC5hOC4oeC5iOC4geC4seC4lAor4LmA4LiU4Li04LiZ4LmB4LiV4LmJ4LihCivguYDguJTguLTguJnguYLguJXguYrguLAKK+C5gOC4lOC4tOC4meC4l+C4reC4hwor4LmA4LiU4Li04LiZ4LiX4Lix4LieCivguYDguJTguLTguJnguJfguLLguIcKK+C5gOC4lOC4tOC4meC4l+C4uOC5iOC4hwor4LmA4LiU4Li04LiZ4LmA4LiX4Li14Lii4LiZCivguYDguJTguLTguJnguJjguLjguKPguLDguYPguKvguYkKK+C5gOC4lOC4tOC4meC4meC4sgor4LmA4LiU4Li04LiZ4Lib4LmJ4Liy4LiiCivguYDguJTguLTguJnguKPguJYKK+C5gOC4lOC4tOC4meC5gOC4o+C4t+C4rQor4LmA4LiU4Li04LiZ4LmA4Lij4Li34LmI4Lit4LiHCivguYDguJTguLTguJnguKrguKfguJkKK+C5gOC4lOC4tOC4meC4quC4sOC4nuC4seC4lAor4LmA4LiU4Li04LiZ4Liq4Liy4LiiCivguYDguJTguLTguJnguYDguKrguYnguJkKK+C5gOC4lOC4tOC4meC4q+C4mQor4LmA4LiU4Li04LiZ4LmA4Lir4Li04LiZCivguYDguJTguLTguJnguYTguKvguKEKK+C5gOC4lOC4tOC4meC4reC4suC4geC4suC4qAor4LmA4LiU4Li04LihCivguYDguJTguLTguKHguJfguLUKK+C5gOC4lOC4tOC4oeC4nuC4seC4mQor4LmA4LiU4Li14LmJ4LiiCivguYDguJTguLXguKLguIcKK+C5gOC4lOC4teC4ouC4h+C4quC4sgor4LmA4LiU4Li14Lii4LiUCivguYDguJTguLXguKLguJTguInguLHguJnguJfguYwKK+C5gOC4lOC4teC4ouC4owor4LmA4LiU4Li14Lii4Lij4LiU4Liy4LipCivguYDguJTguLXguKLguKPguJbguYwKK+C5gOC4lOC4teC4ouC4o+C4luC4teC4ouC5jAor4LmA4LiU4Li14Lii4Lij4Lix4LiI4LiJ4Liy4LiZCivguYDguJTguLXguKLguKcKK+C5gOC4lOC4teC5iOC4ouC4pwor4LmA4LiU4Li14LmL4Lii4LinCivguYDguJTguLXguYvguKLguKfguIHguYjguK3guJkKK+C5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4LmA4LiU4Li14Lii4Lin4LiU4Liy4LiiCivguYDguJTguLXguYvguKLguKfguYDguJTguLXguKLguKcKK+C5gOC4lOC4teC5i+C4ouC4p+C4meC4teC5iQor4LmA4LiU4Li14Lii4LiwCivguYDguJTguLfguYjguK0KK+C5gOC4lOC4t+C4reC4gQor4LmA4LiU4Li34LmI4Lit4LiHCivguYDguJTguLfguK3guJQKK+C5gOC4lOC4t+C4reC4lOC4lOC4suC4pQor4LmA4LiU4Li34Lit4LiU4Lij4LmJ4Lit4LiZCivguYDguJTguLfguK3guJkKK+C5gOC4lOC4t+C4reC4meC4guC4suC4lAor4LmA4LiU4Li34Lit4LiZ4LiE4LmJ4Liy4LiH4Lif4LmJ4LiyCivguYDguJTguLfguK3guJnguITguLXguYgKK+C5gOC4lOC4t+C4reC4meC4hOC4ueC5iAor4LmA4LiU4Li34Lit4LiZ4LmA4LiV4LmH4LihCivguYDguJTguLfguK3guJnguKHguLfguJQKK+C5gOC4lOC4t+C4reC4meC5gOC4ouC5h+C4mQor4LmA4LiU4Li34Lit4LiZ4Lij4LmJ4Lit4LiZCivguYDguJTguLfguK3guJnguKvguIfguLLguKIKK+C5gOC4lOC4t+C4reC4ogor4LmA4LiU4Li34Lit4Lii4LmE4LiB4LmICivguYHguJQKK+C5geC4lOC5iAor4LmB4LiU4LiBCivguYHguJTguYfguIHguYYKK+C5geC4lOC4geC4h+C4sgor4LmB4LiU4LiB4LiU4Lix4LiZCivguYHguJTguIHguYHguJTguYkKK+C5geC4lOC5h+C4geC5geC4lOC5iQor4LmB4LiU4LiB4Lir4LmI4LiyCivguYHguJTguIcKK+C5geC4lOC4h+C4meC5ieC4swor4LmB4LiU4LiUCivguYHguJTguJTguLLguKUKK+C5geC4lOC4lOC4tOC5ieC4mQor4LmB4LiU4LiZCivguYHguJTguYjguJkKK+C5geC4lOC4meC5hOC4leC4owor4LmB4LiU4Lii4Lix4LiZCivguYHguJTguYjguKfguYYKK+C5geC4lOC4sAor4LmB4LiU4Liw4LmB4LiU4LmLCivguYLguJQKK+C5guC4lOC5iAor4LmC4LiU4LiB4LmA4LiU4LiBCivguYLguJTguYjguIcKK+C5guC4lOC5iOC4h+C4lOC4seC4hwor4LmC4LiU4LiUCivguYLguJTguJTguYYKK+C5guC4lOC4lOC5gOC4lOC4teC5iOC4ouC4pwor4LmC4LiU4LiU4Lij4LmI4LihCivguYLguJTguYjguYDguJTguYgKK+C5guC4lOC4mQor4LmC4LiU4LiZ4LiU4Li1CivguYLguJTguKEKK+C5guC4lOC4oeC5hOC4nuC4owor4LmC4LiU4Lih4LijCivguYLguJTguYjguYTguKHguYjguKPguLnguYnguKXguYnguKEKK+C5guC4lOC4ogor4LmC4LiU4Lii4LiI4Lij4Li04LiHCivguYLguJTguKLguJfguLXguYgKK+C5guC4lOC4ouC4nuC4ouC4seC4jeC4iuC4meC4sAor4LmC4LiU4Lii4Liq4Liy4LijCivguYLguJTguKLguYDguKrguJTguYfguIgKK+C5guC4lOC4ouC4reC4o+C4o+C4lgor4LmC4LiU4LijCivguYLguJTguKPguJMKK+C5g+C4lAorLi4u4LmD4LiULi4u4Lir4LiZ4Li24LmI4LiHCivguYTguJQKK+C5hOC4lOC5iQor4LmE4LiU4LmJ4LiB4Lix4LiZCivguYTguJTguYnguIHguLLguKMKK+C5hOC4lOC5ieC5geC4geC5iAor4LmE4LiU4LmJ4LmB4LiB4LiH4LmA4LiX4LiZ4LmJ4Liz4Lie4Lij4Li04LiBCivguYTguJTguYnguITguKfguLLguKEKK+C5hOC4lOC5ieC4hOC4tOC4lAor4LmE4LiU4LmJ4LmD4LiICivguYTguJTguYnguIrguYjguK3guIcKK+C5hOC4lOC5ieC4iuC4t+C5iOC4rQor4LmE4LiU4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiU4LmMCivguYTguJTguYnguJfguYjguLIKK+C5hOC4lOC5ieC4l+C5ieC4suC4ogor4LmE4LiU4LmJ4LiX4Li1CivguYTguJTguYnguJfguLXguYgKK+C5hOC4lOC5ieC4l+C4teC4guC4teC5iOC5geC4nuC4sOC5hOC4peC5iAor4LmE4LiU4LiZ4Liy4LmC4LihCivguYTguJTguJnguLLguYTguKHguJXguYwKK+C5hOC4lOC5guC4meC5gOC4quC4suC4o+C5jAor4LmE4LiU4LmJ4Lii4Li04LiZCivguYTguJTguYDguKPguIHguJXguKPguLTguIHguIvguYwKK+C5hOC4lOC5ieC4pOC4geC4qeC5jAor4LmE4LiU4LmJ4Liq4LiV4Li0CivguYTguJTguYnguKrguYjguKfguJkKK+C5hOC4lOC5ieC4quC5iOC4p+C4meC4quC4seC4lAor4LmE4LiU4LmJ4LmA4Liq4Li14LiiCivguYTguJTguYnguYDguKrguLXguKLguIHguLHguJkKK+C5hOC4lOC5ieC4q+C4meC5ieC4sgor4LmE4LiU4LmJ4Lir4LiZ4LmJ4Liy4Lil4Li34Lih4Lir4Lil4Lix4LiHCivguJUKK+C4leC4gQor4LiV4LiB4LiB4Lij4LiwCivguJXguIHguIHguKPguLDguYTguJTguJ7guKXguK3guKLguYLguIjguJkKK+C4leC4geC4guC4reC4mgor4LiV4LiB4LiC4Liy4LinCivguJXguIHguILguYnguLLguKcKK+C4leC4geC4guC4uOC4ogor4LiV4LiB4LiE4Lil4Lix4LiBCivguJXguIHguITguYnguLLguIcKK+C4leC4geC5gOC4hOC4o+C4t+C4rQor4LiV4LiB4LiH4Liy4LiZCivguJXguIHguIjguLHguYjguJkKK+C4leC4geC5g+C4iAor4LiV4LiB4LiU4Li04LiZCivguJXguIHguJXguLDguIHguK3guJkKK+C4leC4geC4leC4sOC4peC4tuC4hwor4LiV4LiB4LiV4LmI4LizCivguJXguIHguYHguJXguYjguIcKK+C4leC5iuC4geC5guC4lQor4LiV4LiB4LmD4LiV4LmJ4LmA4LiW4Lij4LmA4LiX4Lin4LiX4Lix4LiVCivguJXguIHguJfguYnguK3guIfguIrguYnguLLguIcKK+C4leC4geC4l+C4reC4lAor4LiV4LiB4LiX4Li14LmI4LiZ4Lix4LmI4LiHCivguJXguIHguJnguKPguIHguJfguLHguYnguIfguYDguJvguYfguJkKK+C4leC4geC4meC5ieC4s+C4oeC4seC4mQor4LiV4LiB4LiZ4LmJ4Liz4LmE4Lih4LmI4Lin4LmI4Liy4LiiCivguJXguIHguJnguYnguLPguYTguKHguYjguYTguKvguKUg4LiV4LiB4LmE4Lif4LmE4Lih4LmI4LmE4Lir4Lih4LmJCivguJXguIHguYPguJkKK+C4leC4geC5gOC4muC5h+C4lAor4LiV4LiB4LmA4Lia4Li04LiBCivguJXguIHguJvguKPguLDguKvguKHguYjguLIKK+C4leC4geC4m+C4peC4reC4gQor4LiV4LiB4Lib4Lil4Lix4LiBCivguJXguIHguJvguLLguIHguJXguIHguITguLMKK+C4leC4geC5gOC4m+C5h+C4mQor4LiV4LiB4LmA4Lib4LmH4LiZ4LmA4Lia4Li14LmJ4Lii4Lil4LmI4Liy4LiHCivguJXguIHguJzguKXguLbguIEKK+C4leC4geC4nuC4uOC5iOC4oeC4oeC5iOC4suC4ogor4LiV4LiB4Lif4Lit4LiHCivguJXguIHguJ/guLLguIEKK+C4leC4geC4oeC4seC4mQor4LiV4LiB4Lih4Li54LiBCivguJXguIHguKLguLLguIEKK+C4leC4geC4o+C4suC4h+C4p+C4seC4pQor4LiV4LiB4Lil4LiHCivguJXguIHguKXguYjguK3guIfguJvguKXguYjguK3guIfguIrguLTguYnguJkKK+C4leC4geC4peC4ueC4gQor4LiV4LiB4LmA4Lil4Li34Lit4LiUCivguJXguIHguKfguYjguLIKK+C4leC4geC4quC4meC4seC4mgor4LiV4LiB4Liq4Liw4LmA4LiB4LmH4LiUCivguJXguIHguYHguKrguIEKK+C4leC4geC4q+C4meC4seC4gQor4LiV4LiB4Lir4Lih4LiBCivguJXguIHguKvguKXguYjguJkKK+C4leC4geC4q+C4peC4uOC4oQor4LiV4LiB4Lir4Lil4Li44Lih4Lie4Lij4Liy4LiHCivguJXguIHguK3guLHguJoKK+C4leC4hwor4LiV4LmL4LiHCivguJXguIfguInguLTguJkKK+C4leC4h+C4tOC4lAor4LiV4LiH4Li44LmI4LiZCivguJXguIgtCivguJXguIjguJvguLHguI3guIjguIHguIHguKPguKPguKHguJDguLLguJkKK+C4leC4iOC4quC4suC4owor4LiV4LiUCivguJXguJTguKvguKHguLnguJXguJTguKvguKHguLIKK+C4leC4leC4tOC4oi0KK+C4leC4luC4suC4hOC4lQor4LiV4LiZCivguJXguYnguJkKK+C4leC5ieC4meC4geC4pQor4LiV4LmJ4LiZ4LiC4Lix4LmJ4LinCivguJXguYnguJnguITguK0KK+C4leC5ieC4meC4hOC4tOC4lAor4LiV4LmJ4LiZ4LmA4LiH4Li04LiZCivguJXguYnguJnguInguJrguLHguJoKK+C4leC5ieC4meC4iuC4meC4lOC4reC4gQor4LiV4LmJ4LiZ4LmA4LiK4Li34Lit4LiBCivguJXguYnguJnguJXguKPguLDguIHguLnguKUKK+C4leC5ieC4meC4leC4rQor4LiV4LmJ4LiZ4LiV4Liy4Lii4LmD4Lia4LmA4Lib4LmH4LiZCivguJXguYnguJnguJXguLPguKPguLHguJoKK+C4leC5ieC4meC4l+C4suC4hwor4LiV4LmJ4LiZ4LiX4Li44LiZCivguJXguYnguJnguYDguJfguLXguKLguKEKK+C4leC5ieC4meC4meC5ieC4swor4LiV4LmJ4LiZ4Lia4LiXCivguJXguYnguJnguYHguJrguJoKK+C4leC5ieC4meC5gOC4nuC4peC4tOC4hwor4LiV4LmJ4LiZ4Lih4Li34LitCivguJXguYnguJnguYTguKHguYkKK+C4leC5ieC4meC4o+C5iOC4suC4hwor4LiV4LmJ4LiZ4Lij4LmJ4Liy4Lii4Lib4Lil4Liy4Lii4LiU4Li1CivguJXguYnguJnguYDguKPguLfguK0KK+C4leC5ieC4meC5gOC4o+C4t+C5iOC4reC4hwor4LiV4LmJ4LiZ4Lin4Liy4Lii4Lib4Lil4Liy4Lii4LiU4LiBCivguJXguYnguJnguKrguLHguIfguIHguLHguJQKK+C4leC5ieC4meC4quC4suC4ouC4m+C4peC4suC4ouC5gOC4q+C4leC4uAor4LiV4LmJ4LiZ4LmA4Liq4Li14Lii4LiHCivguJXguYnguJnguKvguJkKK+C4leC5ieC4meC5gOC4q+C4leC4uAor4LiV4LiZ4Lix4LiiCivguJXguJnguLgKK+C4leC4meC4uOC4oeC4seC4mOC4ouC4oeC4sgor4LiV4LiZ4Li44Lih4Lix4LiY4Lii4LiyCivguJXguJoKK+C4leC4muC4leC4sgor4LiV4Lia4LmB4LiV4LmI4LiHCivguJXguJrguYDguJfguYnguLIKK+C4leC4muC5geC4nOC4peC4sAor4LiV4Lia4Lih4Li34LitCivguJXguJrguKHguLfguK3guILguYnguLLguIfguYDguJTguLXguKLguKfguYTguKHguYjguJTguLHguIcKK+C4leC4muC4ouC4uOC4hwor4LiV4Lia4Lir4Lix4Lin4LiB4Lil4Liy4LiH4Lio4Liy4Lil4LiyIOC4guC4reC4guC4oeC4suC4l+C4teC5iOC4muC5ieC4suC4mQor4LiV4Lia4Lir4Lix4Lin4Lil4Li54Lia4Lir4Lil4Lix4LiHCivguJXguJrguLAKK+C4leC4m+C4meC4teC4ouC4sAor4LiV4LihLQor4LiV4LmJ4LihCivguJXguYnguKHguIHguLDguJfguLQKK+C4leC5ieC4oeC4geC4sOC4m+C4tAor4LiV4LmJ4Lih4LiC4LmI4LiyCivguJXguYnguKHguYDguITguYfguKEKK+C4leC5ieC4oeC5guC4hOC4peC5ieC4hwor4LiV4LmJ4Lih4Lib4Lil4Liy4Lij4LmJ4LiyCivguJXguYnguKHguYDguJvguKPguJUKK+C4leC5ieC4oeC5gOC4m+C4reC4sAor4LiV4LmJ4Lih4Lii4LizCivguJXguYnguKHguKLguLPguIHguLDguJfguLQKK+C4leC5ieC4oeC4quC5ieC4oQor4LiV4LmJ4Lih4Liq4Li44LiBCivguJXguKHguLnguIEKK+C4leC5guC4oS0KK+C4leC5guC4oeC4meC4uOC4lwor4LiV4LmC4Lih4LmE4Lie4Lij4Li1CivguJXguYLguKHguKvguKMKK+C4leC4ouC4suC4hAor4LiV4Lii4Liy4LiE4Li1CivguJXguKLguLjguJXguLQKK+C4leC4o+C4hwor4LiV4Lij4LiH4LmGCivguJXguKPguIfguIHguLHguJkKK+C4leC4o+C4h+C4geC4seC4meC4guC5ieC4suC4oQor4LiV4Lij4LiT4Li1CivguJXguKPguKEKK+C4leC4o+C4oeC4leC4o+C4reC4oQor4LiV4Lij4Lih4LmA4LiV4Lij4Li14Lii4LihCivguJXguKPguKHguKfguKUKK+C4leC4o+C4o+C4gS0KK+C4leC4o+C4o+C4geC4qOC4suC4quC4leC4o+C5jAor4LiV4Lij4Lij4LiB4LiwCivguJXguKPguKXguJoKK+C4leC4o+C4peC4reC4lAor4LiV4Lij4Lil4LiwCivguJXguKPguKXguLIKK+C4leC4o+C4peC4suC4lAor4LiV4Lij4LmA4Lil4Li04LiUCivguJXguKPguKfguIgKK+C4leC4o+C4p+C4iOC4geC4suC4o+C4k+C5jAor4LiV4Lij4Lin4LiI4LiC4LmI4Liy4LinCivguJXguKPguKfguIjguJXguKPguLIKK+C4leC4o+C4p+C4iOC5gOC4peC4t+C4reC4lAor4LiV4Lij4Lin4LiUCivguJXguKPguKfguJkKK+C4leC4o+C4p+C4ogor4LiV4Lij4Lit4LiBCivguJXguKPguK3guIcKK+C4leC4o+C4reC4oeC5g+C4iAor4LiV4Lij4Lit4Lih4LiV4Lij4LihCivguJXguKPguLAKK+C4leC4o+C4sOC4geC4pQor4LiV4Lij4Liw4LiB4Lin4LiZCivguJXguKPguLDguIHguK3guIcKK+C4leC4o+C4sOC4geC4seC4lAor4LiV4Lij4Liw4LiB4Liy4LijCivguJXguKPguLDguIHguLnguKUKK+C4leC4o+C4sOC4geC4ueC4peC4oeC4ueC4peC4iuC4suC4leC4tAor4LiV4Lij4Liw4LiE4Lix4LijCivguJXguKPguLDguIfguYjguK3guIcKK+C4leC4o+C4sOC4iOC4seC4gQor4LiV4Lij4Liw4LiK4Lix4LiBCivguJXguKPguLDguYDguIrguLTguI0KK+C4leC4o+C4sOC4lOC4gQor4LiV4Lij4Liw4LiU4Liy4LipCivguJXguKPguLDguYDguJXguKPguLXguKLguKEKK+C4leC4o+C4sOC5geC4leC4o+C5ieC4mQor4LiV4Lij4Liw4LiX4Lij4Lin4LiHCivguJXguKPguLDguJnguLLguKcKK+C4leC4o+C4sOC5hOC4mQor4LiV4Lij4Liw4Lia4LiBCivguJXguKPguLDguJrguK3guIEKK+C4leC4o+C4sOC4muC4reC4hwor4LiV4Lij4Liw4Lia4Lix4LiUCivguJXguKPguLDguJrguLHguJTguKrguLHguJXguKLguYwKK+C4leC4o+C4sOC4muC4seC4mQor4LiV4Lij4Liw4LmA4Lia4LmH4LiHCivguJXguKPguLDguYHguJrguYgKK+C4leC4o+C4sOC5geC4muC4gQor4LiV4Lij4Liw4LmB4Lia4LiHCivguJXguKPguLDguYHguJrguJkKK+C4leC4o+C4sOC5geC4muC5iOC4mQor4LiV4Lij4Liw4LmC4Lia4LihCivguJXguKPguLDguJ7guK3guIcKK+C4leC4o+C4sOC4nuC4seC4hwor4LiV4Lij4Liw4Lih4Li34LmI4LiZCivguJXguKPguLDguYLguKHguIgKK+C4leC4o+C4sOC4peC4suC4geC4suC4owor4LiV4Lij4Liw4Lin4Lix4LiZCivguJXguKPguLDguYDguKfguYfguJQKK+C4leC4o+C4sOC5gOC4p+C4mQor4LiV4Lij4Liw4LmA4Lin4LiZ4LmE4Lie4LijCivguJXguKPguLDguYDguKfguJnguKfguLHguJkKK+C4leC4o+C4sOC5gOC4p+C4meC5gOC4p+C4q+C4sgor4LiV4Lij4Liw4Liq4Lix4LiBCivguJXguKPguLDguKvguIfguYjguK3guIcKK+C4leC4o+C4sOC4q+C4h+C5iOC4suC4mQor4LiV4Lij4Liw4Lir4LiZ4LiBCivguJXguKPguLDguKvguJnguLHguIEKK+C4leC4o+C4sOC4q+C4meC5iOC4swor4LiV4Lij4Liw4Lir4LiZ4Li14LmICivguJXguKPguLDguKvguJnguLXguYjguJXguLHguKcKK+C4leC4o+C4sOC4reC4owor4LiV4Lij4Liw4Lit4Liy4LilCivguJXguKPguLDguYLguK3guKEKK+C4leC4o+C4seC4hwor4LiV4Lij4Lix4LiH4LiELQor4LiV4Lij4Lix4LiH4LiE4LmMCivguJXguKPguLHguIfguITguJnguJfguLUKK+C4leC4o+C4seC4h+C4hOC4p+C4iuC4tOC4o+C4suC4p+C4lOC4tQor4LiV4Lij4Lix4LiaCivguJXguKPguLHguJrguJ/guLHguIcKK+C4leC4o+C4seC4ogor4LiV4Lij4Lix4Lii4LiV4Lij4Li24LiH4Lio4LmMCivguJXguKPguLHguKoKK+C4leC4o+C4seC4quC4o+C4ueC5iQor4LiV4Lij4Lix4Liq4Liq4LiyCivguJXguKPguLIKK+C4leC4o+C4suC4geC4leC4o+C4swor4LiV4Lij4Liy4LiC4Li44LiZ4Lie4LilCivguJXguKPguLLguIjguK3guIcKK+C4leC4o+C4suC4iuC4uQor4LiV4Lij4Liy4LmB4LiU4LiHCivguJXguKPguLLguJXguLHguYnguIcKK+C4leC4o+C4suC4mgor4LiV4Lij4Liy4Lia4LmA4LiX4LmI4LiyCivguJXguKPguLLguJrguLLguJsKK+C4leC4o+C4suC5hOC4m+C4o+C4qeC4k+C4teC4ouC4suC4geC4owor4LiV4Lij4Liy4Lig4Li54Lih4Li0CivguJXguKPguLLguKLguLLguIcKK+C4leC4o+C4suC4quC4seC4hwor4LiV4Lij4Liy4Liq4Liy4LijCivguJXguKPguLLguKrguLTguJkKK+C4leC4o+C4suC4q+C4meC5ieC4sgor4LiV4Lij4LizCivguJXguKPguYjguLMKK+C4leC4o+C4tAor4LiV4Lij4Li04LiV4Lij4Lit4LiHCivguJXguKPguLTguKcKK+C4leC4o+C4tQor4LiV4Lij4Li14LiB4LiP4Li44LiBCivguJXguKPguLXguIHguLHguJnguKrguKfguLLguJUKK+C4leC4o+C4teC4geC4suC4pQor4LiV4Lij4Li14LiB4Liy4Lis4Lie4Li04LipCivguJXguKPguLXguIHguLnguI8KK+C4leC4o+C4teC5gOC4geC4quC4o+C4oeC4suC4qAor4LiV4Lij4Li14LmC4LiB4LiTCivguJXguKPguLXguYLguIHguJPguKHguLTguJXguLQKK+C4leC4o+C4teC4hOC4ueC4kwor4LiV4Lij4Li14LiI4Li14Lin4LijCivguJXguKPguLXguInguLTguJnguJfguKXguLLguKHguIHguLIKK+C4leC4o+C4teC4iuC4suC4lQor4LiV4Lij4Li14LiN4Liy4LiT4Lij4LiqCivguJXguKPguLXguJfguKgKK+C4leC4o+C4teC4l+C4tOC4ngor4LiV4Lij4Li14LiX4Li04Lie4Lii4Lij4LiqCivguJXguKPguLXguJfguLjguKPguKfguKrguLIKK+C4leC4o+C4teC4l+C4ueC4lQor4LiV4Lij4Li14LmA4LiX4Lin4LiV4Lij4Li14LiE4Lix4LiZ4LiY4LiyCivguJXguKPguLXguYLguJfguKkKK+C4leC4o+C4teC4mOC4suC4o+C4l+C4tOC4nuC4ouC5jAor4LiV4Lij4Li14LiZ4Li04Lio4LiBCivguJXguKPguLXguYDguJnguJXguKMKK+C4leC4o+C4teC4muC4lgor4LiV4Lij4Li14Lia4Li54LijCivguJXguKPguLXguJvguKPguLDguJTguLHguJoKK+C4leC4o+C4teC4m+C4p+C4suC4ogor4LiV4Lij4Li14Lib4Li04LiO4LiBCivguJXguKPguLXguJvguLTguJXguJzguKUKK+C4leC4o+C4teC4nOC4peC4mOC4suC4leC4uAor4LiV4Lij4Li14Lic4Lil4Liq4Lih4Li44LiV4LiW4Liy4LiZCivguJXguKPguLXguJzguKXguLIKK+C4leC4o+C4teC4nuC4tOC4mOC4nuC4o+C4o+C4kwor4LiV4Lij4Li14Lie4Li04Lip4LiI4Lix4LiB4LijCivguJXguKPguLXguYDguJ7guIrguKPguJfguLHguJPguJHguLUKK+C4leC4o+C4teC5gOC4nuC4iuC4o+C4nuC4p+C4hwor4LiV4Lij4Li14LmA4Lie4LiK4Lij4Liq4Lih4LiE4Li44LiTCivguJXguKPguLXguKDguJ4KK+C4leC4o+C4teC4oOC4nuC4meC4suC4lgor4LiV4Lij4Li14Lig4Li54Lih4Li0CivguJXguKPguLXguKDguLnguKcKK+C4leC4o+C4teC4oeC4mOC4uOC4owor4LiV4Lij4Li14Lih4Li54Lij4LiV4Li0CivguJXguKPguLXguKLguKHguIEKK+C4leC4o+C4teC4ouC4seC4oeC4m+C4p+C4suC4ogor4LiV4Lij4Li14Lij4Lix4LiV4LiZ4LmMCivguJXguKPguLXguYLguKXguIEKK+C4leC4o+C4teC5guC4peC4geC4meC4suC4lgor4LiV4Lij4Li14LmC4Lil4LmA4LiB4LioCivguJXguKPguLXguYLguKXguIjguJnguYwKK+C4leC4o+C4teC5guC4peC4q+C4gQor4LiV4Lij4Li14LmC4Lil4Lir4LiwCivguJXguKPguLXguKfguLLguJXguJzguKUKK+C4leC4o+C4teC4qOC4gQor4LiV4Lij4Li14Lio4Li54LilCivguJXguKPguLXguKrguKHguK0KK+C4leC4o+C4teC4quC4oeC4uOC4leC4luC4suC4mQor4LiV4Lij4Li14Liq4Lix4LiV4LiB4Li44Lil4LiyCivguJXguKPguLXguKrguLHguJnguJnguLTguJrguLLguJXguJzguKUKK+C4leC4o+C4teC4quC4suC4owor4LiV4Lij4Li14Liq4Li04LiZ4LiY4Li44Lij4LiqCivguJXguKPguLXguKrguLjguITguJnguJjguYwKK+C4leC4o+C4teC4quC4uOC4o+C4nOC4pQor4LiV4Lij4Li14LmA4Liq4Lih4Lir4Lic4LilCivguJXguKPguLXguK3guKHguKTguJUKK+C4leC4o+C4teC4reC4suC4geC4suC4qOC4nOC4pQor4LiV4Lij4Li14LmA4Lit4LiB4Lig4Liy4LieCivguJXguKPguLXguYDguK3guIHguLLguJnguLjguKDguLLguJ4KK+C4leC4o+C4tuC4gQor4LiV4Lij4Li24LiB4LiV4Lij4Lit4LiHCivguJXguKPguLbguIHguJbguK3guIcKK+C4leC4o+C4tuC4hwor4LiV4Lij4Li24LiH4LiV4Lij4LiyCivguJXguKPguLbguIfguKgtCivguJXguKPguLgKK+C4leC4o+C4uOC4kwor4LiV4Lij4Li44LiiCivguJXguKPguLjguKkKK+C4leC4o+C4uOC4qeC4iOC4teC4mQor4LiV4Lij4Li5CivguJXguKPguLnguYgKK+C4leC4pOC4kwor4LiV4Lik4LiTLQor4LiV4Lik4LiT4LiK4Liy4LiV4Li0CivguJXguKTguJPguKHguLHguKIKK+C4leC4pOC4leC4teC4oi0KK+C4leC4pOC4leC4teC4ouC4sAor4LiV4Lik4LiXCivguJXguKTguJsKK+C4leC4pOC4qeC4k+C4sgor4LiV4Lik4LmFCivguJXguKUKK+C4leC4peC4gQor4LiV4Lil4LiB4LiE4Liw4LiZ4Lit4LiHCivguJXguKXguIHguJrguLLguJXguKMKK+C4leC4peC4geC5guC4m+C4geC4ruC4sgor4LiV4Lil4LiB4Lir4Lix4Lin4LmA4Lij4Liy4LiwCivguJXguKXguJoKK+C4leC4peC4muC4leC4sOC5geC4peC4hwor4LiV4Lil4Lia4LiZ4LiBCivguJXguKXguJrguKvguKXguLHguIcKK+C4leC4peC4reC4lAor4LiV4Lil4Lit4LiU4Lij4Lit4LiU4Lid4Lix4LmI4LiHCivguJXguKXguLAKK+C4leC4peC4seC4mgor4LiV4Lil4Lix4Lia4LiZ4Liy4LiBCivguJXguKXguLLguJQKK+C4leC4peC4suC4lOC5gOC4h+C4tOC4mQor4LiV4Lil4Liy4LiU4LiX4LmJ4Lit4LiH4LiZ4LmJ4LizCivguJXguKXguLLguJTguJnguLHguJQKK+C4leC4peC4suC4lOC4meC5ieC4swor4LiV4Lil4Liy4LiU4Lih4Li34LiUCivguJXguKXguLLguJTguKLguLXguYjguKrguLLguJkKK+C4leC4peC4suC4lOC4quC4lAor4LiV4Lil4Liy4LiU4Lir4LiZ4LmJ4Liy4LiE4Li44LiBCivguJXguKXguLLguJTguKvguKXguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4leC4peC4suC4lOC4q+C4uOC5ieC4mQor4LiV4Lil4Li04LmI4LiHCivguJXguKXguLbguIcKK+C4leC4p+C4hwor4LiV4Lin4LiH4Lie4Lij4Liw4LiY4Liy4LiV4Li4CivguJXguYjguKfguJkKK+C4leC5ieC4p+C4oeC5gOC4leC4teC5ieC4ouC4oQor4LiV4Lin4Lix4LiBCivguJXguKfguLHguJQKK+C4leC4p+C4suC4lAor4LiV4LitCivguJXguYjguK0KK+C4leC5ieC4rQor4LiV4Lit4LiBCivguJXguYrguK3guIEKK+C4leC5iuC4reC4geC5hgor4LiV4LmK4Lit4LiB4LiV4LmL4Lit4LiiCivguJXguYjguK3guIHguKMKK+C4leC5ieC4reC4geC4o+C4sOC4iOC4gQor4LiV4Lit4LiB4Lir4LiZ4LmJ4LiyCivguJXguYjguK3guIHguLTguYjguIcKK+C4leC5iOC4reC4hOC4p+C4suC4oeC4ouC4suC4p+C4quC4suC4p+C4hOC4p+C4suC4oeC4ouC4t+C4lAor4LiV4Lit4LiHCivguJXguYnguK3guIcKK+C4leC4reC4h+C4geC4o+C4suC4ogor4LiV4LmJ4Lit4LiH4LiB4Lix4LiZCivguJXguYnguK3guIfguIHguLLguKMKK+C4leC5ieC4reC4h+C4hOC4lOC4tQor4LiV4LmJ4Lit4LiH4LmD4LiICivguJXguK3guIfguJXguK3guKIKK+C4leC5ieC4reC4h+C4leC4sgor4LiV4LmJ4Lit4LiH4LmA4LiVCivguJXguK3guIfguYHguJXguIEKK+C4leC5iOC4reC4h+C5geC4leC5iOC4hwor4LiV4LmJ4Lit4LiH4LmC4LiX4LipCivguJXguYnguK3guIfguJjguKPguJPguLXguKrguLLguKMKK+C4leC4reC4h+C5gOC4m+C4o+C4teC4ouC4hwor4LiV4LmJ4Lit4LiH4Liq4Li54LmJCivguJXguYnguK3guIfguKvguLIKK+C4leC4reC4h+C5gOC4q+C4peC4t+C4reC4hwor4LiV4Lit4LiUCivguJXguK3guJTguJXguYjguK0KK+C4leC5iOC4reC4leC4sgor4LiV4LmI4Lit4LiV4LmJ4Liy4LiZCivguJXguYjguK3guJXguLLguKEKK+C4leC5iOC4reC4leC4tQor4LiV4LmI4Lit4LmB4LiV4LmJ4LihCivguJXguK3guJkKK+C4leC5ieC4reC4mQor4LiV4LmJ4Lit4LiZ4Lij4Lix4LiaCivguJXguYnguK3guJnguKPguLHguJrguILguLHguJrguKrguLnguYkKK+C4leC5ieC4reC4meC4q+C4oeC4ueC5gOC4guC5ieC4suC5gOC4peC5ieC4sgor4LiV4LmI4Lit4LiZ4Lix4LiU4LiV4LmI4Lit4LmB4LiZ4LiHCivguJXguYnguK3guYDguJnguLfguYnguK0KK+C4leC4reC4mgor4LiV4Lit4Lia4LmC4LiV4LmJCivguJXguK3guJrguYHguJfguJkKK+C4leC4reC5gOC4muC4sgor4LiV4LmI4Lit4Lib4Liy4LiBCivguJXguYjguK3guJvguLLguIHguJXguYjguK3guITguLMKK+C4leC5iOC4reC4m+C4suC4geC4q+C4peC4suC4geC4hOC4swor4LiV4Lit4LihCivguJXguYjguK3guKEKK+C4leC5i+C4reC4oQor4LiV4LmI4Lit4Lih4LiZ4LmJ4LizCivguJXguYjguK3guKHguYLguKXguKvguLTguJUKK+C4leC4reC4oeC5iOC4rQor4LiV4LmI4Lit4LiiCivguJXguYnguK3guKIKK+C4leC5ieC4reC4ouC5hgor4LiV4LmJ4Lit4Lii4LiV4Lij4Li04LmI4LiHCivguJXguYnguK3guKLguJXguLTguYjguIcKK+C4leC5ieC4reC4ouC4leC4teC4p+C4tOC4lAor4LiV4LmI4Lit4Lii4Lir4Lit4LiiCivguJXguK3guYHguKIKK+C4leC5iOC4reC5geC4ouC5ieC4hwor4LiV4Lit4Lij4LmM4Lib4Li04LmC4LiUCivguJXguYjguK3guKXguYnguK3guJXguYjguK3guYDguJbguLXguKLguIcKK+C4leC5ieC4reC4peC4s+C5hOC4ogor4LiV4LmJ4Lit4Lil4Li04LmJ4LiZ4Lir4Lih4LiyCivguJXguYjguK3guKfguYjguLIKK+C4leC5iOC4reC4quC4ueC5iQor4LiV4LmI4Lit4LmE4Liq4LmJCivguJXguYjguK3guKvguJnguYnguLIKK+C4leC5iOC4reC4q+C4meC5ieC4suC4oeC4sOC4nuC4peC4seC4miDguKXguLHguJrguKvguKXguLHguIfguJXguLDguYLguIEKK+C4leC5ieC4reC4q+C4tOC4mQor4LiV4Lit4LmB4Lir4LilCivguJXguYjguK3guK3guLLguKLguLgKK+C4leC4sAor4LiV4Liw4LiB4Lij4LiZCivguJXguLDguIHguKPguKfguKIKK+C4leC4sOC4geC4o+C5ieC4rQor4LiV4Liw4LiB4Lij4LmI4Lit4LihCivguJXguLDguIHguKPguLHguJkKK+C4leC4sOC4geC4o+C4seC4mgor4LiV4Liw4LiB4Lij4LmJ4LiyCivguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4o+C4uOC4lAor4LiV4Liw4LiB4Lij4Li44LihCivguJXguLDguIHguKPguLjguKHguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4peC4sAor4LiV4Liw4LiB4Lil4Liy4LihCivguJXguLDguIHguKfguJQKK+C4leC4sOC4geC4rQor4LiV4Liw4LiB4Lit4LiZCivguJXguLDguIHguLHguIcKK+C4leC4sOC4geC4seC5iOC4pwor4LiV4Liw4LiB4Lix4LmI4Lin4LmA4LiB4Lij4Li14Lii4LiaCivguJXguLDguIHguLHguYjguKfguYHguJTguIcKK+C4leC4sOC4geC4seC5iOC4p+C4leC4seC4lAor4LiV4Liw4LiB4Liy4LiHCivguJXguLDguIHguLLguJQKK+C4leC4sOC4geC4suC4ogor4LiV4Liw4LiB4Liy4LinCivguJXguLDguIHguLjguIHguJXguLDguIHguLHguIEKK+C4leC4sOC4geC4uOC4ogor4LiV4Liw4LiB4Li44Lii4LiV4Liw4LiB4Liy4LiiCivguJXguLDguIHguLkKK+C4leC4sOC4geC4ueC4lAor4LiV4Liw4LmA4LiB4Li14Lii4LiB4LiV4Liw4LiB4Liy4LiiCivguJXguLDguYDguIHguLXguKLguIcKK+C4leC4sOC5gOC4geC4teC4ouC4h+C5geC4geC5iuC4qgor4LiV4Liw4LmA4LiB4Li14Lii4LiH4Lij4Lix4LmJ4LinCivguJXguLDguYDguIHguLXguKLguIfguKXguLLguJkKK+C4leC4sOC5gOC4geC4teC4ouC4mgor4LiV4Liw4LmB4LiBCivguJXguLDguYHguIHguYgKK+C4leC4sOC5geC4geC4o+C4hwor4LiV4Liw4LmC4LiBCivguJXguLDguYLguIHguYkKK+C4leC4sOC5guC4geC4gQor4LiV4Liw4LmC4LiB4LiC4Liy4LinCivguJXguLDguYLguIHguJTguLMKK+C4leC4sOC5guC4geC4mQor4LiV4Liw4LmC4LiB4Lij4LiHCivguJXguLDguYLguIHguKPguKEKK+C4leC4sOC5guC4geC4quC5ieC4oQor4LiV4Liw4LmE4LiB4LijCivguJXguLDguILguJoKK+C4leC4sOC4guC4muC4neC4o+C4seC5iOC4hwor4LiV4Liw4LiC4LitCivguJXguLDguILguLLguJoKK+C4leC4sOC4guC4tOC4lOC4leC4sOC4guC4p+C4hwor4LiV4Liw4LmA4LiC4LmJCivguJXguLDguYDguILguYnguILguJrguJ/guLHguJkKK+C4leC4sOC5gOC4guC5h+C4mgor4LiV4Liw4LmA4LiC4LmH4Lia4LmE4LiV4LmI4LiC4Lit4LiZCivguJXguLDguYDguILguLTguIcKK+C4leC4sOC5guC4guC4hwor4LiV4Liw4LiE4Lij4LmJ4LitCivguJXguLDguITguKPguK3guIcKK+C4leC4sOC4hOC4o+C4seC5iOC4meC4leC4sOC4hOC4o+C4rQor4LiV4Liw4LiE4Lij4LmJ4LizCivguJXguLDguITguKPguLTguKcKK+C4leC4sOC4hOC4o+C4uOC4mgor4LiV4Liw4LiE4Lij4Li44Lia4LiB4LiaCivguJXguLDguITguKXguLHguJrguJXguLDguITguKXguYnguLLguKIKK+C4leC4sOC4hOC4reC4gQor4LiV4Liw4LiE4Lix4LiZCivguJXguLDguITguYnguLIKK+C4leC4sOC4hOC4suC4gQor4LiV4Liw4LiE4Liy4LiHCivguJXguLDguITguYnguLLguJfguK3guIcKK+C4leC4sOC4hOC5ieC4suC4mQor4LiV4Liw4LiE4Li04LinCivguJXguLDguITguLjguYjguKEKK+C4leC4sOC4hOC4uOC5iOC4oeC5hgor4LiV4Liw4LmA4LiE4Lij4Li14Lii4LinCivguJXguLDguYDguITguLXguKLguJkKK+C4leC4sOC5gOC4hOC4teC4ouC4meC4l+C4reC4hwor4LiV4Liw4LmA4LiE4Li14Lii4LiZ4LmA4Lic4Li34Lit4LiBCivguJXguLDguYDguITguLXguKLguKcKK+C4leC4sOC5geC4hOC4hwor4LiV4Liw4LmE4LiE4Lij4LmICivguJXguLDguYTguITguKPguYkKK+C4leC4sOC5hOC4hOC4o+C5ieC5geC4lOC4hwor4LiV4Liw4LmE4LiE4Lij4LmJ4LiZ4LmJ4LizCivguJXguLDguYTguITguKPguYnguJrguIEKK+C4leC4sOC5hOC4hOC4o+C5ieC4q+C4reC4oQor4LiV4Liw4LmE4LiE4Lij4LmJ4Lir4Liy4LiH4LiZ4Liy4LiECivguJXguLDguYDguIbguYgKK+C4leC4sOC5geC4h+C5iQor4LiV4Liw4LiV4Li04LiZCivguJXguLDguYHguJXguKPguYnguJkKK+C4leC4sOC4meC4reC4ogor4LiV4Liw4LiZ4Liy4LinCivguJXguLDguJrguKEKK+C4leC4sOC4muC4reC4hwor4LiV4Liw4Lia4Lit4LiH4LiB4Lix4LiZCivguJXguLDguJrguK3guIfguYHguJTguIcKK+C4leC4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiV4Liw4Lia4Lit4LiiCivguJXguLDguJrguLHguJkKK+C4leC4sOC4muC4seC4meC5hOC4nwor4LiV4Liw4Lia4Li04LmJ4LiHCivguJXguLDguJrguLTguJQKK+C4leC4sOC4muC4tOC4lOC4leC4sOC4muC4reC4ogor4LiV4Liw4Lia4Li14LmJ4LiV4Liw4Lia4Lix4LiZCivguJXguLDguJrguLbguIcKK+C4leC4sOC4muC4uOC5ieC4ogor4LiV4Liw4Lia4Li44LmJ4Lii4LmGCivguJXguLDguJrguLnguJkKK+C4leC4sOC5gOC4muC5h+C4hwor4LiV4Liw4LmA4Lia4LmH4LiH4Lih4Liy4LiZCivguJXguLDguYHguJrguIEKK+C4leC4sOC5geC4muC4hwor4LiV4Liw4LmB4Lia4LiH4Lih4Liy4LiZCivguJXguLDguYLguJrguKEKK+C4leC4sOC5hOC4mgor4LiV4Liw4Lib4LiaCivguJXguLDguJvguKXguLTguIcKK+C4leC4sOC4m+C4seC4lOC4leC4sOC4m+C5iOC4reC4hwor4LiV4Liw4Lib4Li04LmJ4LiHCivguJXguLDguJvguLjguYjguKHguJXguLDguJvguYjguLMKK+C4leC4sOC4m+C4uQor4LiV4Liw4Lib4Li54LmA4LiC4LmH4LihCivguJXguLDguJvguLnguITguKfguIcKK+C4leC4sOC4m+C4ueC4q+C4seC4p+C5gOC4q+C5h+C4lAor4LiV4Liw4Lie4LiHCivguJXguLDguJ7guJQKK+C4leC4sOC4nuC4reC4hwor4LiV4Liw4Lie4Lix4LiBCivguJXguLDguJ7guLHguIcKK+C4leC4sOC4nuC4seC4lAor4LiV4Liw4Lie4Lix4LmJ4LiZCivguJXguLDguJ7guLLguIEKK+C4leC4sOC4nuC4suC4mQor4LiV4Liw4Lie4Liy4LiZ4LiK4LmJ4Liy4LiHCivguJXguLDguJ7guLLguJnguKvguJnguLkKK+C4leC4sOC4nuC4suC4mgor4LiV4Liw4Lie4Liy4Lia4LiZ4LmJ4LizCivguJXguLDguJ7guLLguKIKK+C4leC4sOC4nuC4suC4ouC5geC4peC5iOC4hwor4LiV4Liw4Lie4Li24LiUCivguJXguLDguJ7guLbguJTguJXguLDguJ7guLfguK0KK+C4leC4sOC4nuC4uOC5iOC4mQor4LiV4Liw4Lie4Li44LmI4LiZ4Lir4LiN4LmJ4Liy4LiK4LmJ4Liy4LiHCivguJXguLDguYDguJ7guKPguLIKK+C4leC4sOC5gOC4nuC4tOC4hwor4LiV4Liw4LmA4Lie4Li04LiUCivguJXguLDguYDguJ7guLTguYjguJkKK+C4leC4sOC5gOC4nuC4teC4ouC4mQor4LiV4Liw4LmA4Lie4Li14Lii4LiZ4LiX4Lit4LiHCivguJXguLDguYDguJ7guLXguKLguJnguJnguYnguLPguYDguITguYfguKEKK+C4leC4sOC5guC4nuC4gQor4LiV4Liw4LmC4Lie4LiHCivguJXguLDguYLguJ7guJkKK+C4leC4sOC5gOC4oOC4sgor4LiV4Liw4LmA4Lig4Liy4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguJXguLDguYPguKDguYkKK+C4leC4sOC4oeC5iOC4rQor4LiV4Liw4Lih4Lit4LiiCivguJXguLDguKLguK3guIfguKrguLDguKXguLIKK+C4leC4sOC4o+C4seC4hwor4LiV4Liw4Lij4Lix4LiH4LiB4Liw4LiZ4Li5CivguJXguLDguKPguLHguIfguJXguLHguIfguIHguKfguLLguIcKK+C4leC4sOC4o+C4seC4h+C4leC4seC4h+C4iuC5ieC4suC4hwor4LiV4Liw4Lij4Liy4LiHCivguJXguLDguKXguK3guIcKK+C4leC4sOC4peC4reC4mQor4LiV4Liw4Lil4LmI4Lit4LihCivguJXguLDguKXguYjguK3guKHguILguYnguLLguKcKK+C4leC4sOC4peC5iOC4reC4oeC4m+C5ieC4reC4oQor4LiV4Liw4Lil4LiwCivguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tOC4h+C4m+C4peC4tOC4hwor4LiV4Liw4Lil4Li04LiaCivguJXguLDguKXguLXguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tuC4hwor4LiV4Liw4Lil4Li24LiH4Lie4Lij4Li24LiH4LmA4Lie4Lij4Li04LiUCivguJXguLDguKXguLjguIcKK+C4leC4sOC4peC4uOC5iOC4oQor4LiV4Liw4Lil4Li44LmI4Lih4LiZ4LiBCivguJXguLDguKXguLjguKHguJrguK3guJkKK+C4leC4sOC4peC4uOC5iOC4oeC5guC4m+C4hwor4LiV4Liw4Lil4Li44Lih4Lie4LitCivguJXguLDguKXguLjguKHguJ7guLjguIEKK+C4leC4sOC4peC4uOC5iOC4oeC4reC4tOC4lAor4LiV4Liw4Lil4Li44LiiCivguJXguLDguYDguKXguIcKK+C4leC4sOC5geC4peC4h+C5geC4geC4hwor4LiV4Liw4LmE4LilCivguJXguLDguKfguLHguJkKK+C4leC4sOC4p+C4seC4meC4guC4tuC5ieC4mQor4LiV4Liw4Lin4Lix4LiZ4LiV4LiBCivguJXguLDguKfguLHguJnguKLguK3guYHguKrguIcKK+C4leC4sOC4p+C4seC4meC4reC4reC4gQor4LiV4Liw4Lin4Lix4LiZ4Lit4Lit4LiB4LiB4Lil4Liy4LiHCivguJXguLDguKfguLHguJnguK3guK3guIHguYPguIHguKXguYkKK+C4leC4sOC4p+C4seC4meC4reC4reC4geC5hOC4geC4pQor4LiV4Liw4Lin4Lix4LiZ4Lit4LmJ4Lit4Lih4LiC4LmJ4Liy4LinCivguJXguLDguKfguLLguIcKK+C4leC4sOC5gOC4p+C4mQor4LiV4Liw4Lir4LiZ4Li24LmI4LiH4Lij4Lix4LiUCivguJXguLDguKvguKXguLTguKcKK+C4leC4sOC4q+C4peC4uOC4gQor4LiV4Liw4Lir4Lil4Li44LiHCivguJXguLDguYDguKvguKXguJnguYDguJvguYvguJkKK+C4leC4sOC5gOC4q+C4peC4suC4sOC5gOC4m+C4suC4sAor4LiV4Liw4LmB4Lir4LiH4LmI4Lin4LmGCivguJXguLDguYHguKvguKHguLDguYHguILguLAKK+C4leC4sOC5geC4q+C4peC4meC5geC4m+C5i+C4mQor4LiV4Liw4LmC4Lir4LiH4LiBCivguJXguLHguIEKK+C4leC4seC4geC4geC4sAor4LiV4Lix4LiB4LiV4Lin4LiHCivguJXguLHguIHguYDguJXguLfguK3guJkKK+C4leC4seC5iuC4geC5geC4leC4mQor4LiV4Lix4LiB4LiZ4LmJ4Liz4Lij4LiU4Lir4Lix4Lin4LiV4LitCivguJXguLHguIHguJnguYnguLPguKPguJTguKvguLHguKfguKrguLLguIEKK+C4leC4seC4geC4meC5ieC4s+C5g+C4quC5iOC4geC4sOC5guC4q+C4peC4gSDguIrguLDguYLguIfguIHguJTguLnguYDguIfguLIKK+C4leC4seC4geC4muC4suC4leC4owor4LiV4Lix4LiB4Lia4Liy4LiV4Lij4Lit4Lii4LmI4Liy4LiW4Liy4Lih4Lie4Lij4LiwCivguJXguLHguIHguKnguJMKK+C4leC4seC4geC4qeC4k+C4tQor4LiV4Lix4LiB4Lip4Lix4LiiCivguJXguLHguIcKK+C4leC4seC5iOC4hwor4LiV4Lix4LmJ4LiHCivguJXguLHguYnguIfguIHguKPguKEKK+C4leC4seC4h+C5gOC4gQor4LiV4Lix4LmJ4LiH4LmA4LiC4LmH4LihCivguJXguLHguYnguIfguYTguILguYgKK+C4leC4seC5ieC4h+C5gOC4hOC5ieC4sgor4LiV4Lix4LmJ4LiH4LmB4LiH4LmICivguJXguLHguYnguIfguYPguIgKK+C4leC4seC4h+C4ieC5iOC4suC4ogor4LiV4Lix4LmJ4LiH4LiV4LmJ4LiZCivguJXguLHguYnguIfguJXguLHguKcKK+C4leC4seC5ieC4h+C4leC4suC4hOC4reC4ogor4LiV4Lix4LiH4LiV4Li04LiUCivguJXguLHguYnguIfguYHguJXguYgKK+C4leC4seC5ieC4h+C5geC4leC5iOC4hwor4LiV4Lix4LmJ4LiH4LmC4LiV4LmK4LiwCivguJXguLHguYnguIfguJfguYjguLIKK+C4leC4seC5ieC4h+C4mOC4suC4leC4uAor4LiV4Lix4LmJ4LiH4LiZ4Liy4Lis4Li04LiB4LiyCivguJXguLHguYnguIfguJnguLLguKzguLTguIHguLLguJvguKXguLjguIEKK+C4leC4seC5ieC4h+C5gOC4m+C5ieC4suC4q+C4oeC4suC4ogor4LiV4Lix4LiH4LmA4LihCivguJXguLHguIfguKfguLLguKIKK+C4leC4seC5ieC4h+C4q+C4meC5ieC4sgor4LiV4Lix4LmJ4LiH4Lir4LiZ4LmJ4Liy4LiV4Lix4LmJ4LiH4LiV4LiyCivguJXguLHguYnguIfguKvguLHguKfguYDguKPguLfguK0KK+C4leC4seC5ieC4h+C4reC4geC4leC4seC5ieC4h+C5g+C4iAor4LiV4Lix4LiH4LmC4Lit4LmLCivguJXguLHguIjguInguIEKK+C4leC4seC4iOC4ieC4meC4tQor4LiV4Lix4LiT4LiR4Li44LilCivguJXguLHguJPguKvguLHguIHguKnguLHguKIKK+C4leC4seC4k+C4q+C4sgor4LiV4Lix4LiUCivguJXguLHguJTguIHguLHguJkKK+C4leC4seC4lOC4guC4suC4lAor4LiV4Lix4LiU4LmD4LiICivguJXguLHguJTguIrguYjguK3guIfguJnguYnguK3guKLguYHguJXguYjguJ7guK3guJXguLHguKcKK+C4leC4seC4lOC4iuC5iOC4reC4h+C4ouC5iOC4reC4h+C5gOC4muC4sgor4LiV4Lix4LiU4LmA4LiK4Li34Lit4LiBCivguJXguLHguJTguI3guLLguJXguLTguILguLLguJTguKHguLTguJXguKMKK+C4leC4seC4lOC4leC5ieC4meC5hOC4nwor4LiV4Lix4LiU4LiV4Lit4LiZCivguJXguLHguJTguJbguJnguJkKK+C4leC4seC4lOC4l+C4suC4hwor4LiV4Lix4LiU4Lia4LiXCivguJXguLHguJTguJvguKPguLDguYDguJTguYfguJkKK+C4leC4seC4lOC5gOC4m+C5h+C4meC4leC4seC4lOC4leC4suC4ogor4LiV4Lix4LiU4Lie4LmJ4LitCivguJXguLHguJTguYTguJ7guYgKK+C4leC4seC4lOC5hOC4n+C4leC5ieC4meC4peC4oQor4LiV4Lix4LiU4LmE4Lif4Lir4Lix4Lin4Lil4LihCivguJXguLHguJTguYTguKHguYnguILguYjguKHguJnguLLguKEKK+C4leC4seC4lOC4o+C4reC4mQor4LiV4Lix4LiU4Lij4Liy4LiE4LiyCivguJXguLHguJTguKrguLTguJkKK+C4leC4seC4lOC4quC4tOC4meC5g+C4iAor4LiV4Lix4LiU4LmA4Liq4LmJ4LiZCivguJXguLHguJTguKvguJnguJfguLLguIcKK+C4leC4seC4lOC4q+C4meC5ieC4sgor4LiV4Lix4LiU4Lir4LiZ4LmJ4Liy4LiJ4Liy4LiZCivguJXguLHguJTguKvguJnguLLguKHguK3guKLguYjguLLguYTguKfguYnguKvguJnguYjguK0KK+C4leC4seC4lOC4q+C4suC4h+C4m+C4peC5iOC4reC4ouC4p+C4seC4lAor4LiV4Lix4LiV4LinLQor4LiV4Lix4LiV4Lin4Lio4Liy4Liq4LiV4Lij4LmMCivguJXguLHguJbguKLguYwKK+C4leC4seC4mQor4LiV4Lix4LiZ4LiE4Lit4Lir4Lit4LiiCivguJXguLHguJnguJXguKPguLAKK+C4leC4seC4meC4leC4tAor4LiV4Lix4LiZ4LiV4Li04Lig4Liy4Lip4LiyCivguJXguLHguJnguJvguLHguI3guI3guLIKK+C4leC4seC4meC4q+C4ouC4hwor4LiV4Lix4LiZ4LmA4Lir4Li04LihCivguJXguLHguJnguK3guIHguJXguLHguJnguYPguIgKK+C4leC4seC4mgor4LiV4Lix4Lia4LmB4LiC4LmH4LiHCivguJXguLHguJrguYDguJXguYjguLIKK+C4leC4seC4muC5gOC4leC5iOC4suC4guC4suC4pwor4LiV4Lix4Lia4Lib4Li04LmJ4LiHCivguJXguLHguJrguYDguJvguYfguJQKK+C4leC4seC4muC5gOC4nuC4peC4hwor4LiV4Lix4Lia4LmA4Lij4Li34LmI4Lit4LiHCivguJXguLHguJrguYDguKvguKXguYfguIEKK+C4leC4seC4muC4reC5iOC4reC4mQor4LiV4Lix4LinCivguJXguLHguYvguKcKK+C4leC4seC4p+C4geC4peC4seC5iOC4mQor4LiV4Lix4Lin4LiB4Lil4Liy4LiHCivguJXguLHguKfguIHguLLguKMKK+C4leC4seC4p+C5gOC4geC5h+C4hwor4LiV4Lix4Lin4LiE4Li54LiT4Lij4LmI4Lin4Lih4LiZ4LmJ4Lit4LiiCivguJXguLHguKfguYLguIQKK+C4leC4seC4p+C5g+C4hOC4o+C4leC4seC4p+C4oeC4seC4mQor4LiV4Lix4Lin4LmA4LiH4Li04LiZCivguJXguLHguYvguKfguYDguIfguLTguJkKK+C4leC4seC5i+C4p+C5gOC4h+C4tOC4meC4hOC4peC4seC4hwor4LiV4Lix4LmL4Lin4LmA4LiH4Li04LiZ4LiI4LmI4Liy4LiiCivguJXguLHguYvguKfguYDguIfguLTguJnguKPguLHguJoKK+C4leC4seC4p+C4iOC4seC4geC4o+C5g+C4q+C4jeC5iAor4LiV4Lix4Lin4LiI4Liz4LiZ4LizCivguJXguLHguKfguIjguLXguYrguJQKK+C4leC4seC4p+C5gOC4iuC4tOC4lAor4LiV4Lix4Lin4LiU4Li1CivguJXguLHguKfguJXguYjguK3guJXguLHguKcKK+C4leC4seC4p+C4leC4seC5ieC4hwor4LiV4Lix4Lin4LiV4Lix4LmJ4LiH4LiV4Lix4Lin4LiV4Li1CivguJXguLHguKfguJXguLLguKLguJXguLHguKfguYHguJfguJkKK+C4leC4seC4p+C4leC4t+C4lAor4LiV4Lix4Lin4LmA4LiV4LmH4LiHCivguJXguLHguKfguYHguJfguJkKK+C4leC4seC4p+C5geC4l+C4meC4hOC5ieC4suC4leC5iOC4suC4hwor4LiV4Lix4Lin4LmB4LiX4LiZ4LiK4LmI4Lin4LiHCivguJXguLHguKfguYHguJfguJnguYDguIrguLTguJQKK+C4leC4seC4p+C4meC4suC4hwor4LiV4Lix4Lin4LiZ4LizCivguJXguLHguKfguJvguKPguLDguIHguK3guJoKK+C4leC4seC4p+C4m+C4o+C4sOC4geC4seC4mQor4LiV4Lix4Lin4LmA4Lib4LmH4LiZ4LmA4LiB4Lil4Li14Lii4LinCivguJXguLHguKfguYDguJvguKXguYjguLIKK+C4leC4seC4p+C5geC4m+C4owor4LiV4Lix4Lin4Lic4Li54LmJCivguJXguLHguYnguKfguYLguJwKK+C4leC4seC4p+C4nuC4o+C4sAor4LiV4Lix4Lin4Lie4Li04Lih4Lie4LmMCivguJXguLHguKfguYDguKHguLXguKIKK+C4leC4seC4p+C5gOC4oeC4t+C4reC4hwor4LiV4Lix4Lin4LmE4Lih4LmJCivguJXguLHguKfguKLguLfguJkKK+C4leC4seC4p+C5gOC4peC4ggor4LiV4Lix4LmL4Lin4LmB4Lil4LiB4LmA4LiH4Li04LiZCivguJXguLHguKfguKrguLDguIHguJQKK+C4leC4seC5i+C4p+C4quC4seC4jeC4jeC4suC5g+C4iuC5ieC5gOC4h+C4tOC4mQor4LiV4Lix4LmJ4Lin4Liq4Li04LinCivguJXguLHguKfguKvguJnguLHguIfguKrguLfguK0KK+C4leC4seC4p+C4q+C4suC4o+C4o+C5iOC4p+C4oeC4oeC4suC4gQor4LiV4Lix4LmJ4Lin4LmA4Lir4Li14LmI4LiiCivguJXguLHguKfguK3guKLguYjguLLguIcKK+C4leC4seC4p+C5gOC4reC4gQor4LiV4LiyCivguJXguLLguIEKK+C4leC4suC4geC4leC4mQor4LiV4Liy4LiB4LiaCivguJXguLLguIHguJrguJXguLLguYDguILguLXguKLguJQKK+C4leC4suC4geC4peC5ieC4reC4hwor4LiV4Liy4LiB4Lil4Lix4LiaCivguJXguLLguIHguKXguYnguLIKK+C4leC4suC4geC4p+C4suC4hwor4LiV4Liy4LiB4Liq4Lih4Lit4LiHCivguJXguLLguIHguKvguJnguYnguLIKK+C4leC4suC4geC4reC4suC4geC4suC4qAor4LiV4Liy4LiB4Li44LmJ4LiHCivguJXguLLguYLguIHguYnguIcKK+C4leC4suC5hOC4geC5iAor4LiV4Liy4LiC4Lin4Liy4LiHCivguJXguLLguILguK0KK+C4leC4suC4guC5iOC4suC4ogor4LiV4Liy4LiC4Liy4LinCivguJXguLLguILguLjguYjguJnguJXguLLguYDguILguLXguKLguKcKK+C4leC4suC5gOC4ggor4LiV4Liy4LmB4LiC4LmH4LiHCivguJXguLLguITguKEKK+C4leC4suC4hOC5ieC4suC4hwor4LiV4Liy4LiHCivguJXguYjguLLguIcKK+C4leC5iOC4suC4h+C5hgor4LiV4LmI4Liy4LiH4LiU4LmJ4Liy4LinCivguJXguYjguLLguIfguKfguYjguLIKK+C4leC5iOC4suC4h+C4q+C4suC4gQor4LiV4Liy4LiH4Lix4LinCivguJXguLLguIjguKPguLDguYDguILguYkKK+C4leC4suC4iuC4seC5iOC4hwor4LiV4Liy4LiK4LmJ4Liy4LiHCivguJXguLLguJQKK+C4leC4suC5gOC4lOC4teC4ouC4pwor4LiV4Liy4LmB4LiU4LiHCivguJXguLLguJXguIHguIHguKXguYnguLIKK+C4leC4suC4leC4seC5iuC4geC5geC4leC4mQor4LiV4Liy4LiV4Lix4LmJ4LiHCivguJXguLLguJXguLLguKPguLLguIcKK+C4leC4suC4leC4teC5iAor4LiV4Liy4LiV4Li44LmI4LihCivguJXguLLguYDguJXguYfguIcKK+C4leC4suC5guC4lQor4LiV4Liy4LiW4Lix4LmI4LinCivguJXguLLguJfguKfguJQKK+C4leC4suC4l+C4seC4ngor4LiV4Liy4LiZCivguJXguYjguLLguJkKK+C4leC5ieC4suC4mQor4LiV4Liy4LiZ4LiB4LmB4LiB4LmJ4LinCivguJXguLLguJnguILguYLguKHguKIKK+C4leC5ieC4suC4meC4l+C4suC4mQor4LiV4Liy4LiZ4LiZ4LiB4LiB4LiUCivguJXguLLguJnguYDguKrguLXguYnguKLguJkKK+C4leC4suC4meC4q+C4gQor4LiV4Liy4LiZ4Lir4Lih4LmI4Lit4LiZCivguJXguLLguJnguYDguKvguKXguLfguK3guIcKK+C4leC4suC4meC5ieC4swor4LiV4Liy4LiZ4Li1CivguJXguLLguJoKK+C4leC4suC4muC4l+C4seC4mgor4LiV4Liy4Lia4LiX4Li04LioCivguJXguLLguJrguK3guJQKK+C4leC4suC4muC4reC4lOC4hOC4peC4s+C4iuC5ieC4suC4hwor4LiV4Liy4Lia4Lit4LiU4LmE4LiU4LmJ4LmB4Lin4LmI4LiZCivguJXguLLguJrguK3guJTguJXguLLguYPguKoKK+C4leC4suC4muC4reC4lOC4quC4reC4lOC4leC4suC5gOC4q+C5h+C4mQor4LiV4Liy4Lia4Lit4LiU4Liq4Li1CivguJXguLLguJvguKXguLIKK+C4leC4suC4m+C4peC4suC4lOC4uOC4gQor4LiV4Liy4Lib4Li1CivguJXguLLguJvguLXguJXguLLguIrguLLguJXguLQKK+C4leC4suC4m+C4uQor4LiV4Liy4LmA4Lib4LmH4LiZ4Lih4Lix4LiZCivguJXguLLguYDguJvguYfguJnguKrguLHguJrguJvguLDguKPguJQKK+C4leC4suC5guC4m+C5iOC4hwor4LiV4Liy4Lid4Lix4LmI4LiHCivguJXguLLguJ3guLLguJQKK+C4leC4suC4nuC4o+C5iOC4sgor4LiV4Liy4Lie4Lit4LiHCivguJXguLLguJ/guLLguIcKK+C4leC4suC4n+C4suC4h+C5hOC4geC5iAor4LiV4Liy4LmA4Lif4Li34LmJ4Lit4LiH4LiV4Liy4Liq4Lil4Li24LiHCivguJXguLLguKEKK+C4leC4suC4oeC4geC4p+C4suC4hwor4LiV4Liy4Lih4LiE4Lin4Liy4LiiCivguJXguLLguKHguYPguIgKK+C4leC4suC4oeC5g+C4iOC4m+C4suC4geC4oeC4suC4geC4q+C4meC4teC5iQor4LiV4Liy4Lih4LmD4LiI4Lib4Liy4LiB4Lil4Liz4Lia4Liy4LiB4LiX4LmJ4Lit4LiHCivguJXguLLguKHguJQKK+C4leC4suC4oeC4l+C4tQor4LiV4Liy4Lih4LmA4LiZ4Li34LmJ4Lit4Lic4LmJ4LiyCivguJXguLLguKHguJrguLjguI3guJXguLLguKHguIHguKPguKPguKEKK+C4leC4suC4oeC4ni0KK+C4leC4suC4oeC4nuC4q+C4seC4leC4luC4tQor4LiV4Liy4Lih4Lie4LiwCivguJXguLLguKHguYDguJ7guKXguIcKK+C4leC4suC4oeC4oeC4tQor4LiV4Liy4Lih4Lih4Li14LiV4Liy4Lih4LmA4LiB4Li04LiUCivguJXguLLguKHguKLguJbguLLguIHguKPguKPguKEKK+C4leC4suC4oeC5gOC4o+C4t+C5iOC4reC4h+C4leC4suC4oeC4o+C4suC4pwor4LiV4Liy4Lih4Lil4Lih4LiV4Liy4Lih4LmB4Lil4LmJ4LiHCivguJXguLLguKHguKXguLPguJ7guLHguIcKK+C4leC4suC4oeC4reC4s+C5gOC4oOC4reC5g+C4iAor4LiV4Liy4Lih4Liw4LmB4LiZCivguJXguLLguKHguLTguJkKK+C4leC4suC4oeC4teC4leC4suC4oeC4sgor4LiV4Liy4LmB4Lih4LinCivguJXguLLguKIKK+C4leC5ieC4suC4ogor4LiV4Liy4Lii4LiC4Liy4LiZCivguJXguLLguKLguILguLjguKIKK+C4leC4suC4ouC4hOC4suC4l+C4teC5iAor4LiV4Liy4Lii4LmC4LiE4LihCivguJXguLLguKLguYPguIgKK+C4leC4suC4ouC4i+C4suC4gQor4LiV4Liy4Lii4LiU4LmJ4Liy4LiZCivguJXguLLguKLguJTguLLguJrguKvguJnguYnguLIKK+C4leC4suC4ouC4leC4seC4pwor4LiV4Liy4Lii4LiX4Lix4LmJ4LiH4LiB4Lil4LihCivguJXguLLguKLguJnguYnguK3guKIKK+C4leC4suC4ouC4meC4tuC5iOC4hwor4LiV4Liy4Lii4Lib4Lij4Liw4LiK4LiU4Lib4LmI4Liy4LiK4LmJ4LiyCivguJXguLLguKLguYDguJvguYfguJnguYDguJrguLfguK0KK+C4leC4suC4ouC4neC4reC4ogor4LiV4Liy4Lii4Lid4Lix4LiH4Lii4Lix4LiH4LmA4Lil4Li14LmJ4Lii4LiHCivguJXguLLguKLguJ7guKPguLLguKIKK+C4leC4suC4ouC4o+C4suC4mgor4LiV4Liy4Lii4Lil4Liy4LigCivguJXguLLguKLguKvguYjguLIKK+C4leC4suC4ouC5guC4q+C4hwor4LiV4Liy4Lii4Lit4LiU4LiV4Liy4Lii4Lit4Lii4Liy4LiBCivguJXguLLguKPguLLguIcKK+C4leC4suC4o+C4suC4h+C4quC4reC4mQor4LiV4Liy4Lij4Liy4LiH4LmA4Lir4Lil4Li14LmI4Lii4LihCivguJXguLLguKPguLLguYTguJUKK+C4leC4suC4o+C5ieC4suC4ogor4LiV4Liy4Lij4Li04LmJ4LinCivguJXguLLguYDguKPguLfguK0KK+C4leC4suC5gOC4o+C4t+C4reC4iuC4seC4ogor4LiV4Liy4LilCivguJXguLLguKXguJvguLHguJXguKMKK+C4leC4suC4peC4m+C4seC4leC4o+C4muC4seC4h+C5gOC4nuC4peC4tOC4hwor4LiV4Liy4Lil4Lib4Lix4LiV4Lij4Lik4LmF4Lip4Li1CivguJXguLLguKXguKEKK+C4leC4suC4peC4ouC4reC4lOC4lOC5ieC4p+C4mQor4LiV4Liy4Lil4LitCivguJXguLLguKXguK3guKIKK+C4leC4suC4peC4suC4mQor4LiV4Liy4Lil4Liy4LiiCivguJXguLLguKXguLXguJXguLLguYDguKvguKXguLfguK3guIEKK+C4leC4suC4peC4uAor4LiV4Liy4Lil4Li44LiBCivguJXguLLguKXguLjguIHguJXguLLguIrguLHguJkKK+C4leC4suC4peC4uOC4iuC4sAor4LiV4Liy4LmA4Lil4LmH4LiB4LiV4Liy4LiZ4LmJ4Lit4LiiCivguJXguLLguKcKK+C4leC5i+C4suC4pwor4LiV4Liy4LmC4Lio4LiBCivguJXguLLguKrguYjguK3guJkKK+C4leC4suC4quC4s+C5gOC4oOC4sgor4LiV4Liy4Liq4Li14LiV4Liy4Liq4LiyCivguJXguLLguYDguKrguLfguK0KK+C4leC4suC4q+C4meC4uQor4LiV4Liy4Lir4Lih4Liy4LiB4Lij4Li44LiBCivguJXguLLguKvguKLguLUKK+C4leC4suC4q+C4peC4tOC5iOC4hwor4LiV4Liy4Lir4Lin4Liy4LiZCivguJXguLLguYDguKvguKXguYgKK+C4leC4suC5gOC4q+C4peC4pwor4LiV4Liy4LmA4Lir4Lil4Li34Lit4LiBCivguJXguLLguYDguKvguKXguLfguK3guIHguJXguLLguJ7guK3guIcKK+C4leC4suC5geC4q+C4p+C4mQor4LiV4Liy4LisCivguJXguLLguK3guYnguK3guKIKK+C4leC4suC5gOC4reC4gQor4LiV4LizCivguJXguYjguLMKK+C4leC4s+C4guC5ieC4suC4p+C4quC4suC4o+C4geC4o+C4reC4geC4q+C4oeC5ieC4rQor4LiV4LmI4Liz4LmD4LiICivguJXguYjguLPguIrguYnguLIKK+C4leC5iOC4s+C4leC4mQor4LiV4LmI4Liz4LiV4LmJ4Lit4LiiCivguJXguLPguJXguLIKK+C4leC4s+C4meC4suC4mQor4LiV4Liz4LiZ4LmJ4Liz4Lie4Lij4Li04LiB4Lil4Liw4Lil4Liy4Lii4LmB4Lih4LmI4LiZ4LmJ4LizCivguJXguLPguYDguJnguLTguJkKK+C4leC4s+C5gOC4meC4teC4ouC4mQor4LiV4Liz4Lia4LilCivguJXguLPguYHguJoKK+C4leC5ieC4s+C4m+C4uOC4gQor4LiV4LmJ4Liz4Lic4Liy4LiHCivguJXguYnguLPguJ7guKPguKfguJQKK+C4leC4s+C5geC4ogor4LiV4Liz4LmB4Lii4LmB4Lih4LinCivguJXguLPguKPguKfguIgKK+C4leC4s+C4o+C4p+C4iOC4meC4hOC4o+C4muC4suC4pQor4LiV4Liz4Lij4Lin4LiI4Lig4Li54LiY4LijCivguJXguLPguKPguKfguIjguKfguLHguIcKK+C4leC4s+C4o+C4p+C4iOC4q+C4peC4p+C4hwor4LiV4Liz4Lij4Lix4LiaCivguJXguLPguKPguLIKK+C4leC4s+C4o+C4uAor4LiV4Liz4Lil4Li24LiHCivguJXguLPguKrguYnguKEKK+C4leC4s+C5gOC4quC4sgor4LiV4Liz4Lir4LiZ4Lix4LiBCivguJXguLPguKvguJnguLHguIHguJnguYnguLMKK+C4leC4s+C4q+C4meC4seC4geC5geC4ngor4LiV4Liz4Lir4LiZ4Li0CivguJXguLPguKvguKPguLAKK+C4leC4s+C5geC4q+C4meC5iOC4hwor4LiV4Liz4LmB4Lir4LiZ4LmI4LiH4LiX4Li14LmI4LiV4Lix4LmJ4LiHCivguJXguLQKK+C4leC4tOC4gS0KK+C4leC4tOC4geC4sAor4LiV4Li04LiB4Liy4Lir4Lij4Lix4LiHCivguJXguLTguIcKK+C4leC4tOC5iOC4hwor4LiV4Li04LmL4LiHCivguJXguLTguYvguIfguYYKK+C4leC4tOC5iOC4h+C4leC4seC5iOC4hwor4LiV4Li04LiH4LiX4Li44LmA4Lil4LiyCivguJXguLTguIfguKotCivguJXguLTguIfguKrguJXguLQKK+C4leC4tOC4h+C4quC4leC4tOC4oS0KK+C4leC4tOC5iOC4h+C4q+C4suC4ogor4LiV4Li04LiTCivguJXguLTguJMtCivguJXguLTguJPguIrguLLguJXguLQKK+C4leC4tOC4lAor4LiV4Li04LiU4LmGCivguJXguLTguJTguIHguKPguLDguJTguLjguKEKK+C4leC4tOC4lOC4geC4seC4k+C4keC5jOC5gOC4l+C4qOC4meC5jAor4LiV4Li04LiU4LmA4LiB4LmJ4LiHCivguJXguLTguJTguILguLHguJQKK+C4leC4tOC4lOC5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiV4Li04LiU4LiI4LiwCivguJXguLTguJTguIjguLHguIHguKPguKLguLLguJkKK+C4leC4tOC4lOC5g+C4iAor4LiV4Li04LiU4LiV4Lil4LiBCivguJXguLTguJTguJXguKXguLLguJQKK+C4leC4tOC4lOC4leC5iOC4rQor4LiV4Li04LiU4LiV4LmJ4Lit4Lii4Lir4LmJ4Lit4Lii4LiV4Liy4LihCivguJXguLTguJTguJXguLDguIHguKPguYnguK0KK+C4leC4tOC4lOC4leC4seC4pwor4LiV4Li04LiU4LiV4LiyCivguJXguLTguJTguJXguLLguKEKK+C4leC4tOC4lOC4leC4t+C5ieC4mQor4LiV4Li04LiU4Lia4Lin4LiBCivguJXguLTguJTguJrguYjguK3guJkKK+C4leC4tOC4lOC4m+C4suC4gQor4LiV4Li04LiU4Lie4Lix4LiZCivguJXguLTguJTguYTguJ8KK+C4leC4tOC4lOC4oeC4t+C4rQor4LiV4Li04LiU4LmE4Lih4LmJ4LiV4Li04LiU4Lih4Li34LitCivguJXguLTguJTguKPguYjguLLguIfguYHguKsKK+C4leC4tOC4lOC4peC4mgor4LiV4Li04LiU4Lil4LihCivguJXguLTguJTguKjguLHguJ7guJfguYwKK+C4leC4tOC4lOC4quC4reC4ouC4q+C5ieC4reC4ouC4leC4suC4oQor4LiV4Li04LiU4Liq4Lix4LiUCivguJXguLTguJTguKrguLPguJnguKfguJkKK+C4leC4tOC4lOC4quC4tOC4meC4muC4mQor4LiV4Li04LiU4Lir4LiZ4LmJ4Liy4LiV4Liy4Lih4Lir4Lil4Lix4LiHCivguJXguLTguJTguKvguKHguLHguJQKK+C4leC4tOC4lOC4q+C4peC4seC4h+C5geC4qwor4LiV4Li04LiU4LmB4Lir4LmJ4LiHCivguJXguLTguJTguK3guLHguJnguJTguLHguJoKK+C4leC4tOC4lOC4reC5iOC4suC4hwor4LiV4Li04LiV4LiV4Li04LiBCivguJXguLTguJXguJXguLTguKMKK+C4leC4tOC4leC4lgor4LiV4Li04LmA4LiV4Li14Lii4LiZCivguJXguLTguJbguLUKK+C4leC4tOC4m+C4sgor4LiV4Li04Lib4Liy4LiW4LiwCivguJXguLTguKHguLQKK+C4leC4tOC4oeC4tOC4h+C4hOC4peC4sAor4LiV4Li04LijCivguJXguLTguKPguLHguIjguInguLLguJkKK+C4leC4tOC5gOC4o+C4t+C4reC4l+C4seC5ieC4h+C5guC4geC4peC4mQor4LiV4Li04LilCivguJXguLTguKXguIEKK+C4leC4tOC5ieC4pwor4LiV4Li04LmJ4Lin4LmD4Lia4LmA4Lil4Li34LmI4Lit4LihCivguJXguLUKK+C4leC4teC5iAor4LiV4Li14LiB4Lij4Lij4LmA4LiK4Li14Lii4LiHCivguJXguLXguIHguLLguIEKK+C4leC4teC4geC4tOC4mQor4LiV4Li14LmA4LiB4Lil4LmH4LiUCivguJXguLXguYDguIHguKXguLXguKLguKcKK+C4leC4teC5hOC4geC5iAor4LiV4Li14LiC4LiZ4Liy4LiaCivguJXguLXguILguKXguLjguKEKK+C4leC4teC4hOC4p+C4suC4oQor4LiV4Li14LiE4LitCivguJXguLXguITguLnguYgKK+C4leC4teC4h+C4ueC5g+C4q+C5ieC4geC4suC4geC4tOC4mQor4LiV4Li14LiH4Li54LmD4Lir4LmJ4Lir4Lil4Lix4LiH4Lir4Lix4LiBCivguJXguLXguIjguLLguIEKK+C4leC4teC4iuC4tOC4hwor4LiV4Li14LiV4LiZ4LiB4LmI4Lit4LiZ4LmE4LiC4LmJCivguJXguLXguJXguJnguJXguLLguKLguIHguYjguK3guJnguYTguILguYkKK+C4leC4teC4leC4o+C4p+C4mQor4LiV4Li14LiV4Lix4LmL4LinCivguJXguLXguJXguYjguLLguIcKK+C4leC4teC4leC4t+C5ieC4mQor4LiV4Li14LmB4LiV4LiwCivguJXguLXguYLguJXguYkKK+C4leC4teC4l+C4reC4hwor4LiV4Li14LiX4Liw4LmA4Lia4Li14Lii4LiZCivguJXguLXguJfguYnguLLguKLguITguKPguLHguKcKK+C4leC4teC4l+C5ieC4suC4ouC4meC5ieC4swor4LiV4Li14LiZCivguJXguLXguJnguIHguLIKK+C4leC4teC4meC4hOC4o+C4uAor4LiV4Li14LiZ4LiE4Li54LmJCivguJXguLXguJnguIjguIEKK+C4leC4teC4meC4iOC5ieC4swor4LiV4Li14LiZ4LiV4Liw4LiC4Liy4LiaCivguJXguLXguJnguJXguLjguYrguIHguYHguIEKK+C4leC4teC4meC5gOC4leC5iOC4sgor4LiV4Li14LiZ4LiW4Li14Lia4Lib4Liy4LiB4LiB4Lix4LiUCivguJXguLXguJnguYDguJfguYjguLLguJ3guLLguKvguK3guKIKK+C4leC4teC4meC5gOC4l+C4teC4ouC4mQor4LiV4Li14LiZ4LiZ4LiBCivguJXguLXguJnguYDguJvguYfguJQKK+C4leC4teC4meC4nOC4tQor4LiV4Li14LiZ4LmB4Lij4LiUCivguJXguLXguJnguYLguKPguIfguJXguLXguJnguKjguLLguKUKK+C4leC4teC4meC5gOC4q+C4ouC4teC4ouC4lAor4LiV4Li14LiaCivguJXguLXguJrguKPguKPguJfguLHguJQKK+C4leC4teC4muC4seC4h+C4geC4seC5ieC4mQor4LiV4Li14LmI4LmD4Lia4LmJCivguJXguLXguJvguKXguLLguKvguJnguYnguLLguYTguIsKK+C4leC4teC4m+C5iOC4sgor4LiV4Li14LmI4Lib4LmJ4Liy4LiaCivguJXguLXguJvguYjguLLguYPguKvguYnguYDguKrguLfguK3guIHguKXguLHguKcKK+C4leC4teC4m+C4teC4gQor4LiV4Li14LmB4Lib4Lil4LiHCivguJXguLXguJzguLUKK+C4leC4teC4nOC4tuC5ieC4hwor4LiV4Li14LmB4Lic4LmICivguJXguLXguJ3guLXguJvguLLguIEKK+C4leC4teC5guC4nuC4ouC4leC4teC4nuC4suC4ogor4LiV4Li14Lih4Lit4LiHCivguJXguLXguKPguJbguLAKK+C4leC4teC4o+C4sAor4LiV4Li14Lij4Lix4LmJ4LiHCivguJXguLXguKXguLHguIfguIHguLIKK+C4leC4teC4p+C4hwor4LiV4Li14Lin4Lix4Lin4LiB4Lij4Liw4LiX4Lia4LiE4Lij4Liy4LiUCivguJXguLXguKrguJnguLTguJcKK+C4leC4teC4quC4reC4h+C4q+C4meC5ieC4sgor4LiV4Li14Liq4Liz4LiZ4Lin4LiZCivguJXguLXguYDguKrguYnguJkKK+C4leC4teC5gOC4quC4oeC4rQor4LiV4Li14LmA4Liq4Li14Lii4LiHCivguJXguLXguYDguKrguLXguKLguKfguYjguLIKK+C4leC4teC4q+C4meC5ieC4sgor4LiV4Li14Lir4LiZ4LmJ4Liy4LiV4Liy4LiiCivguJXguLXguKvguJnguYnguLLguKLguLHguIHguKnguYwKK+C4leC4teC4q+C4peC4suC4ouC4q+C4meC5ieC4sgor4LiV4Li14Lir4LmI4Liy4LiHCivguJXguLXguK3guKfguJkKK+C4leC4teC4reC4teC4leC4t+C5ieC4rQor4LiV4Li2CivguJXguLbguYYKK+C4leC4tuC4gQor4LiV4Li24LiB4LmGCivguJXguLbguYnguIHguYYKK+C4leC4tuC5ieC4geC4leC4seC5ieC4gQor4LiV4Li24LiB4LmB4LiW4LinCivguJXguLbguIHguKPguLDguJ/guYnguLIKK+C4leC4tuC4hwor4LiV4Li24LiH4LmGCivguJXguLbguIfguYDguITguKPguLXguKLguJQKK+C4leC4tuC4h+C4leC4seC4hwor4LiV4Li24LiH4LiV4Lix4LinCivguJXguLbguIfguYDguJvguKPguLXguYrguKLguLAKK+C4leC4tuC4lOC4leC4t+C5i+C4rQor4LiV4Li24LmK4LiU4LiV4Li34LmL4LitCivguJXguLbguJXguLHguIcKK+C4leC4t+C4lAor4LiV4Li34LmI4LiZCivguJXguLfguYnguJkKK+C4leC4t+C5iOC4meC4guC5iOC4suC4pwor4LiV4Li34LmJ4LiZ4LiV4Lix4LiZCivguJXguLfguYnguJnguJXguLHguJnguYPguIgKK+C4leC4t+C5iOC4meC4leC4seC4pwor4LiV4Li34LmI4LiZ4LiV4Liy4LiV4Li34LmI4LiZ4LmD4LiICivguJXguLfguYjguJnguJXguLLguKIKK+C4leC4t+C5iOC4meC4leC4ueC4oQor4LiV4Li34LmI4LiZ4LmA4LiV4LmJ4LiZCivguJXguLfguYjguJnguYHguJXguYjguJTguLbguIEg4Liq4Li24LiB4LmB4LiV4LmI4Lir4LiZ4Li44LmI4LihCivguJXguLfguYjguJnguJ/guYnguLIKK+C4leC4t+C5ieC4rQor4LiV4Li34LmK4LitCivguJXguLfguYvguK0KK+C4leC4uAor4LiV4Li44LmGCivguJXguLjguYoKK+C4leC4uOC5iuC4geC5geC4gQor4LiV4Li44LmK4LiB4LmB4LiB4LmD4Lia4LiB4Lil4LihCivguJXguLjguYrguIHguJXguLIKK+C4leC4uOC5iuC4geC4leC4suC4peC5ieC4oeC4peC4uOC4gQor4LiV4Li44LmK4LiB4LiV4Liy4LmA4Liq4Li14Lii4LiB4Lia4Liy4LilCivguJXguLjguYrguIHguJXguYjguLMKK+C4leC4uOC5iuC4geC4leC5iOC4s+C4meC5ieC4s+C4l+C4reC4hwor4LiV4Li44LiB4LiV4Li04LiBCivguJXguLjguYrguIHguJXguLTguYrguIEKK+C4leC4uOC5iuC4geC4leC4uOC5iOC4mQor4LiV4Li44LmK4LiB4LiV4Li44LmL4LiiCivguJXguLjguIcKK+C4leC4uOC5ieC4h+C4geC5iOC4sgor4LiV4Li44LmJ4LiH4LiV4Li04LmJ4LiHCivguJXguLjguYrguJTguJXguLnguYgKK+C4leC4uOC5iuC4leC5iuC4sAor4LiV4Li44LiV4Lix4LiHCivguJXguLjguJkKK+C4leC4uOC5iOC4mQor4LiV4Li44LmI4LiZ4LmGCivguJXguLjguYvguJkKK+C4leC4uOC5iOC4meC4leC5iOC4suC4mQor4LiV4Li44LiZ4Liy4Lir4LiH4Lix4LiZCivguJXguLjguJrguYYKK+C4leC4uOC5ieC4mgor4LiV4Li44LmJ4Lia4LmGCivguJXguLjguYnguJrguJXguLHguYnguJoKK+C4leC4uOC5iuC4muC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44Lib4LmI4Lit4LiHCivguJXguLjguJvguLHguJTguJXguLjguYDguJvguYsKK+C4leC4uOC5iOC4oQor4LiV4Li44LmJ4LihCivguJXguLjguYvguKEKK+C4leC4uOC5ieC4oeC4geC4p+C5ieC4suC4pwor4LiV4Li44Lih4LiB4LiyCivguJXguLjguYnguKHguYHguIvguLAKK+C4leC4uOC4oeC4leC4seC4hwor4LiV4Li44LmJ4Lih4LmA4LiV4LmL4LiZCivguJXguLjguYnguKHguJvguLXguYgKK+C4leC4uOC4oeC4ngor4LiV4Li44Lih4Lie4Lij4Lin4LiUCivguJXguLjguYnguKHguKHguLDguJ7guKPguYnguLLguKcKK+C4leC4uOC5ieC4oeC4q+C4uQor4LiV4Li44LmI4LiiCivguJXguLjguYjguKLguYYKK+C4leC4uOC5ieC4ogor4LiV4Li44LmJ4Lii4LmGCivguJXguLjguYrguKIKK+C4leC4uOC5i+C4ouC4leC4uOC5iOC4ogor4LiV4Li44Lij4LiECivguJXguLjguKPguIfguIQtCivguJXguLjguKPguIfguITguYwKK+C4leC4uOC4o+C4h+C4hOC4o+C4suC4p+C4tQor4LiV4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJXguLjguKUKK+C4leC4uOC4peC4quC4tAor4LiV4Li44Lil4LiyCivguJXguLjguKXguLLguIHguLLguKMKK+C4leC4uOC4peC4suC4hOC4oQor4LiV4Li44Lir4Lij4Lix4LiU4LiV4Li44LmA4Lir4Lij4LmICivguJXguLkKK+C4leC4ueC5iAor4LiV4Li54LmJCivguJXguLnguIEKK+C4leC4ueC4guC5ieC4sgor4LiV4Li54LiUCivguJXguLnguJTguIfguK3guJkKK+C4leC4ueC5iOC4leC4seC4pwor4LiV4Li54LmJ4LiZ4Li04Lij4Lig4Lix4LiiCivguJXguLnguJoKK+C4leC4ueC5ieC4nuC4o+C4sOC4oeC4suC4peC4seC4ogor4LiV4Li54LmI4Lie4Li44LiX4LiY4Lie4LiI4LiZ4LmMCivguJXguLnguKEKK+C4leC4ueC4oeC5hgor4LiV4Li54Lih4LiV4Liy4LihCivguJXguLnguKXguLTguYjguJnguK7guLfguYnguK0KK+C4leC4ueC4q+C4meC4sgor4LmA4LiVCivguYDguJXguIEKK+C5gOC4leC5iuC4gQor4LmA4LiV4LmH4LiHCivguYDguJXguYjguIcKK+C5gOC4leC4igor4LmA4LiV4LmC4LiKCivguYDguJXguYLguIrguJjguLLguJXguLgKK+C5gOC4leC5ieC4mQor4LmA4LiV4LmJ4LiZ4LiB4Li04LiZ4Lij4Liz4LiB4Li04LiZCivguYDguJXguYnguJnguYDguILguJkKK+C5gOC4leC5h+C4meC4l+C5jAor4LmA4LiV4LmJ4LiZ4Lij4LizCivguYDguJXguYnguJnguYHguKPguYnguIfguYDguJXguYnguJnguIHguLIKK+C5gOC4leC5ieC4meC5geC4o+C5ieC4h+C5gOC4leC5ieC4meC5geC4ieC5iOC4hwor4LmA4LiV4LmH4LihCivguYDguJXguYfguKHguYHguIHguJkKK+C5gOC4leC5h+C4oeC4hOC4o+C4suC4mgor4LmA4LiV4LmH4Lih4LmD4LiICivguYDguJXguYfguKHguJXguLHguKcKK+C5gOC4leC5h+C4oeC4leC4sgor4LmA4LiV4LmH4Lih4LiV4Li34LmJ4LiZCivguYDguJXguYfguKHguYDguJXguYfguIcKK+C5gOC4leC5h+C4oeC4l+C4tQor4LmA4LiV4LmH4Lih4LiX4Li14LmICivguYDguJXguYfguKHguJrguLLguJcKK+C5gOC4leC5h+C4oeC4m+C4o+C4sOC4lOC4sgor4LmA4LiV4LmH4Lih4Lib4Lij4Liw4LiV4Li5CivguYDguJXguYfguKHguJvguLLguIEKK+C5gOC4leC5h+C4oeC5gOC4m+C4sgor4LmA4LiV4LmH4Lih4Lih4Li34LitCivguYDguJXguYfguKHguYDguKHguYfguJTguYDguJXguYfguKHguKvguJnguYjguKfguKIKK+C5gOC4leC5h+C4oeC5hOC4oeC5ieC5gOC4leC5h+C4oeC4oeC4t+C4rQor4LmA4LiV4LmH4Lih4Lii4LioCivguYDguJXguYfguKHguKPguLHguIEKK+C5gOC4leC5h+C4oeC4q+C4uQor4LmA4LiV4LmH4Lih4LmA4Lir4LiZ4Li14LmI4Lii4LinCivguYDguJXguYfguKHguYDguKvguKLguLXguKLguJQKK+C5gOC4leC5h+C4oeC4reC4gQor4LmA4LiV4LmH4Lih4Lit4LiB4LmA4LiV4LmH4Lih4LmD4LiICivguYDguJXguYfguKHguK3guLHguJXguKPguLIKK+C5gOC4leC4ogor4LmA4LiV4Lii4LmA4Lil4Li34LmJ4Lit4LiiCivguYDguJXguKPguYgKK+C5gOC4leC4o+C5h+C4lAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJTguYDguJXguKPguJkKK+C5gOC4leC4o+C4mQor4LmA4LiV4Lij4Li04LiHCivguYDguJXguKPguLXguKLguJQKK+C5gOC4leC4o+C4teC4ouC4mgor4LmA4LiV4Lij4Li14Lii4LihCivguYDguJXguKPguLXguKLguKHguJXguKPguKEKK+C5gOC4leC4o+C4teC4ouC4oeC4leC4seC4pwor4LmA4LiV4Lij4Li14Lii4Lih4Lie4Lij4LmJ4Lit4LihCivguYDguJXguKXguLAKK+C5gOC4leC4peC4tOC4lAor4LmA4LiV4Lin4LmH4LiUCivguYDguJXguYjguK0KK+C5gOC4leC4reC4sAor4LmA4LiV4LiwCivguYDguJXguLDguIjguKHguLnguIEKK+C5gOC4leC4sOC4ieC4suC4gQor4LmA4LiV4Liw4LmC4LiU4LmI4LiHCivguYDguJXguLDguJXguLIKK+C5gOC4leC4sOC4neC4uOC5iOC4mQor4LmA4LiV4LiyCivguYDguJXguYjguLIKK+C5gOC4leC5ieC4sgor4LmA4LiV4LmL4LiyCivguYDguJXguYjguLLguIHguKPguLDguKrguLjguJkKK+C5gOC4leC5iOC4suC4geC4tOC4meC4nOC4seC4geC4muC4uOC5ieC4hwor4LmA4LiV4LmI4Liy4LmA4LiB4Li14Lii4LiUCivguYDguJXguLLguYHguIHguYrguKoKK+C5gOC4leC5i+C4suC5gOC4guC4ouC5iOC4sgor4LmA4LiV4LmJ4Liy4LmB4LiE4LiZCivguYDguJXguYnguLLguYDguIjguLXguYnguKLguKcKK+C5gOC4leC5iOC4suC4lOC4swor4LmA4LiV4LmI4Liy4LiX4Lit4LiHCivguYDguJXguYjguLLguJfguK3guYDguKrguLfguYjguK0KK+C5gOC4leC5ieC4suC4l+C4tuC4hwor4LmA4LiV4Liy4LiX4Li44LmA4Lij4Li14Lii4LiHCivguYDguJXguYjguLLguJnguLIKK+C5gOC4leC5iOC4suC4muC5ieC4sgor4LmA4LiV4LmJ4Liy4Lib4Li34LiZCivguYDguJXguLLguJzguLTguIcKK+C5gOC4leC4suC4n+C4ueC5iAor4LmA4LiV4Liy4LmE4LifCivguYDguJXguYjguLLguKPguLHguYnguIcKK+C5gOC4leC5ieC4suC4o+C4seC4mgor4LmA4LiV4LmI4Liy4Lij4LmJ4Liy4LiHCivguYDguJXguLLguKPguLXguJQKK+C5gOC4leC5iOC4suC5gOC4peC4t+C4reC4mQor4LmA4LiV4LmJ4Liy4Liq4LmI4Lin4LiZCivguYDguJXguLLguKrguLnguJoKK+C5gOC4leC5ieC4suC5gOC4quC4teC4ouC4mgor4LmA4LiV4LmI4Liy4Lir4LiBCivguYDguJXguYjguLLguKvguKfguLLguKIKK+C5gOC4leC5iOC4suC4q+C4seC4mgor4LmA4LiV4LmJ4Liy4Lir4Li54LmJCivguYDguJXguYnguLLguKvguLnguYnguKLguLXguYkKK+C5gOC4leC5iOC4suC5gOC4q+C4peC4teC5iOC4ouC4oQor4LmA4LiV4LmI4Liy4LmA4Lir4Lil4Li34Lit4LiHCivguYDguJXguYnguLLguK7guKfguKIKK+C5gOC4leC5iuC4suC4sAor4LmA4LiV4Liy4Liw4LmB4LiV4LiwCivguYDguJXguLTguYjguIcKK+C5gOC4leC4tOC4meC5gOC4leC5iOC4rQor4LmA4LiV4Li04LiaCivguYDguJXguLTguJrguYLguJUKK+C5gOC4leC4tOC4oQor4LmA4LiV4Li14LmJ4LiiCivguYDguJXguLXguKLguIcKK+C5gOC4leC4teC4ouC4h+C4peC4sgor4LmA4LiV4Li14LmJ4Lii4LiV4LiZCivguYDguJXguLXguKLguJkKK+C5gOC4leC4teC4ouC4mgor4LmA4LiV4Li14LmL4Lii4LihCivguYDguJXguLXguKLguKPguJbguYwKK+C5gOC4leC4teC4ouC4pwor4LmA4LiV4Li14LmI4Lii4LinCivguYDguJXguLXguYnguKLguK3guLjguYnguKHguITguYjguK3guKEKK+C5gOC4leC4t+C5ieC4rQor4LmA4LiV4Li34Lit4LiZCivguYDguJXguLfguK3guJnguYPguIgKK+C5gOC4leC4t+C4reC4meC4leC4sgor4LmA4LiV4Li34Lit4LiZ4Liq4LiV4Li0CivguYHguJXguYgKK+C5geC4leC5iOC5hgor4LmB4LiV4LmJCivguYHguJXguIEKK+C5geC4leC4geC4hOC4rQor4LmB4LiV4LiB4LmA4LiH4Li04LiZCivguYHguJXguIHguInguLLguJkKK+C5geC4leC4geC4ieC4suC4meC4i+C5iOC4suC4meC5gOC4i+C5h+C4mQor4LmB4LiV4LiB4LiU4Lix4LiaCivguYHguJXguIHguJXguLfguYjguJkKK+C5geC4leC4geC5geC4leC4mQor4LmB4LiV4LiB4LiX4Lix4LieCivguYHguJXguIHguYDguJnguLfguYnguK3guKrguLLguKcKK+C5geC4leC4geC5gOC4meC4t+C5ieC4reC4q+C4meC4uOC5iOC4oQor4LmB4LiV4LiB4Lid4Li54LiHCivguYHguJXguIHguJ7guLLguJkKK+C5geC4leC4geC4oeC4seC4mQor4LmB4LiV4LiB4LmB4Lii4LiBCivguYHguJXguIHguKPguLDguYHguKvguIcKK+C5geC4leC4geC4o+C5ieC4suC4pwor4LmB4LiV4LiB4Lir4Lix4LiBCivguYHguJXguYjguIHguYjguK3guJnguYHguJXguYjguIHguLXguYkKK+C5geC4leC5iOC4geC4teC5ieC5geC4leC5iOC4geC5iOC4reC4mQor4LmB4LiV4LiHCivguYHguJXguYjguIcKK+C5geC4leC5iOC4h+C4geC4p+C5ieC4suC4mQor4LmB4LiV4LmI4LiH4LiB4Liy4LijCivguYHguJXguYjguIfguIfguLLguJkKK+C5geC4leC5iOC4h+C4leC4seC5ieC4hwor4LmB4LiV4LmI4LiH4LiV4Lix4LinCivguYHguJXguIfguYDguJbguLLguJXguLLguKIKK+C5geC4leC4h+C5gOC4oQor4LmB4LiV4LiH4Lij4LmI4Lih4LmD4LiaCivguYHguJXguYjguIfguKvguJnguYnguLIKK+C5geC4leC5iOC4h+C4q+C4meC5ieC4suC4guC4meC4oQor4LmB4LiV4LmJ4LiI4Li04LmL4LinCivguYHguJXguJQKK+C5geC4leC5iuC4lOC5geC4leC5iwor4LmB4LiV4LmI4LiX4Lin4LmI4LiyCivguYHguJXguJkKK+C5geC4leC5ieC4oQor4LmB4LiV4LmJ4Lih4LiE4Li5CivguYHguJXguYnguKHguJXguYjguK0KK+C5geC4leC4owor4LmB4LiV4Lij4LiH4Lit4LiZCivguYHguJXguKPguYDguJTguLXguYjguKLguKcKK+C5geC4leC4o+C4neC4o+C4seC5iOC4hwor4LmB4LiV4Lij4Lif4Lix4LiZ4Lif4Liy4Lij4LmMCivguYHguJXguKPguKPguJbguKLguJnguJXguYwKK+C5geC4leC4o+C4peC4s+C5guC4nuC4hwor4LmB4LiV4Lij4Lin4LiHCivguYHguJXguKPguKfguIfguYLguKLguJjguKfguLLguJfguLTguJUKK+C5geC4leC4o+C4sAor4LmB4LiV4LmI4Lil4LiwCivguYHguJXguYnguKcKK+C5geC4leC5ieC4p+C5geC4o+C5ieC4pwor4LmB4LiV4LmJ4Lin4LmB4Lil4LmJ4LinCivguYHguJXguYjguKfguYjguLIKK+C5geC4leC5ieC5geC4p+C5ieC4lAor4LmB4LiV4LiwCivguYHguJXguLDguJXguYnguK3guIcKK+C5guC4lQor4LmC4LiV4LmJCivguYLguJXguIEKK+C5guC4leC5ieC4hOC4suC4o+C4oQor4LmC4LiV4LmI4LiHCivguYLguJXguYnguIcKK+C5guC4leC5ieC4h+C5hgor4LmC4LiV4LiH4LmA4LiV4LiHCivguYLguJXguIfguYYg4LmA4LiV4LiH4LmGCivguYLguJXguI7guIEKK+C5guC4leC5iuC4lAor4LmC4LiV4LmJ4LiV4Lit4LiaCivguYLguJXguYnguYDguJbguLXguKLguIcKK+C5guC4leC4mQor4LmC4LiV4LiZ4LiUCivguYLguJXguYnguYLguJwKK+C5guC4leC4oeC4owor4LmC4LiV4Lih4LijLQor4LmC4LiV4Lih4Lij4LiY4LijCivguYLguJXguKIKK+C5guC4leC5ieC5geC4ouC5ieC4hwor4LmC4LiV4Lij4LiBCivguYLguJXguKPguIHguYTguJXguKMKK+C5guC4leC4o+C4lAor4LmC4LiV4LmJ4Lij4Li44LmI4LiHCivguYLguJXguYDguKXguYjguJnguKvguLLguIcKK+C5guC4leC5ieC4p+C4suC4l+C4tQor4LmC4LiV4LmJ4Lir4Lil4LiHCivguYLguJXguYrguLAKK+C5guC4leC5iuC4sOC4geC4peC4oQor4LmC4LiV4LmK4Liw4LmC4LiC4LiBCivguYLguJXguYrguLDguYDguJfguYnguLLguIrguYnguLLguIcKK+C5guC4leC5iuC4sOC4q+C4oeC4ueC5iAor4LmC4LiV4LmK4Liw4Lir4Lih4Li54LmI4Lia4Li54LiK4LiyCivguYLguJXguYrguLDguK3guLTguKvguKHguYjguLLguKEKK+C5g+C4leC5iQor4LmD4LiV4LmJ4LiU4Li04LiZCivguYPguJXguYnguJbguLjguJkKK+C5g+C4leC5ieC5gOC4l+C5ieC4sgor4LmD4LiV4LmJ4LmA4LiX4LmJ4Liy4LiB4Lij4Li44LiT4LiyCivguYPguJXguYnguYDguJfguYnguLLguIHguKPguLjguJPguLLguYDguIjguYnguLIKK+C5g+C4leC5ieC4neC5iOC4suC4nuC4o+C4sOC4muC4suC4lwor4LmD4LiV4LmJ4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4LiY4Li44Lil4Li14Lie4Lij4Liw4Lia4Liy4LiXCivguYPguJXguYnguJ3guYjguLLguKXguLDguK3guK3guIfguJ7guKPguLDguJrguLLguJcKK+C5hOC4lQor4LmE4LiV4LmICivguYTguJXguYkKK+C5hOC4leC5iwor4LmE4LiV4LmJ4LiB4LmL4LiHCivguYTguJXguYjguITguLnguYkKK+C5hOC4leC5iOC5gOC4leC5ieC4sgor4LmE4LiV4LmI4LiW4Liy4LihCivguYTguJXguJvguKXguLIKK+C5hOC4leC5ieC4neC4uOC5iOC4mQor4LmE4LiV4LmJ4LmE4LifCivguYTguJXguYjguYTguKHguYkKK+C5hOC4leC5iOC5hOC4oeC5ieC4peC4s+C5gOC4lOC4teC4ouC4pwor4LmE4LiV4LijCivguYTguJXguKPguIHguLTguKjguKLguLIKK+C5hOC4leC4o+C4iOC4seC4geC4owor4LmE4LiV4Lij4LiI4Li14Lin4LijCivguYTguJXguKPguJTguLLguKLguLjguIQKK+C5hOC4leC4o+C5iOC4leC4o+C4reC4hwor4LmE4LiV4Lij4LiV4Lij4LiyCivguYTguJXguKPguJXguKPguLbguIfguKnguYwKK+C5hOC4leC4o+C4l+C4p+C4suC4owor4LmE4LiV4Lij4LiX4LioCivguYTguJXguKPguJfguLTguJ4KK+C5hOC4leC4o+C4l+C4tOC4nuC4ouC5jAor4LmE4LiV4Lij4Lib4Li04LiO4LiBCivguYTguJXguKPguYDguJ7guJcKK+C5hOC4leC4o+C4oOC4ngor4LmE4LiV4Lij4Lig4Liy4LiE4Li1CivguYTguJXguKPguKDguLnguKHguLQKK+C5hOC4leC4o+C4ogor4LmE4LiV4Lij4Lii4Liy4LiH4Lio4LmMCivguYTguJXguKPguKPguIfguITguYwKK+C5hOC4leC4o+C4o+C4seC4leC4meC5jAor4LmE4LiV4Lij4Lil4Lix4LiB4Lip4LiT4LmMCivguYTguJXguKPguYLguKXguIEKK+C5hOC4leC4o+C5guC4peC4geC4ouC5jAor4LmE4LiV4Lij4Lin4Lix4LiPCivguYTguJXguKPguKfguLTguIrguIrguLIKK+C5hOC4leC4o+C4quC4o+C4k+C4hOC4oeC4meC5jAor4LmE4LiV4Lij4Liq4Lij4LiT4Liy4LiE4Lih4LiZ4LmMCivguYTguJXguKPguKrguLTguIHguILguLIKK+C5hOC4leC5iOC4peC4p+C4lAor4LmE4LiV4LmI4Liq4Lin4LiZCivguYTguJXguYnguKvguKfguLHguJkKK+C4lgor4LiW4LiBCivguJbguIHguYDguILguKHguKMKK+C4luC4geC5gOC4luC4teC4ouC4hwor4LiW4LiB4LilCivguJbguIfguLHguJkKK+C4luC4h+C4suC4lAor4LiW4LiUCivguJbguJTguJbguK3guKIKK+C4luC4mQor4LiW4LiZ4LiZCivguJbguJnguJnguKXguLLguJTguKLguLLguIcKK+C4luC4meC4mwor4LiW4LiZ4Lit4LihCivguJbguJnguK3guKHguK3guLLguKvguLLguKMKK+C4luC4meC4seC4lAor4LiW4LiZ4Lix4LiU4LiC4Lin4LiyCivguJbguJnguLHguJTguYPguIgKK+C4luC4meC4seC4lOC4i+C5ieC4suC4ogor4LiW4LiZ4Lix4LiU4LiW4LiZ4Li14LmICivguJbguJnguLHguJTguJvguLLguIEKK+C4luC4meC4seC4lOC4oeC4t+C4rQor4LiW4LiZ4Lix4LiZCivguJbguJnguLMKK+C4luC4meC4s+C4l+C4tuC4gQor4LiW4LiZ4Li04LihCivguJbguJnguLTguKHguIHguLLguKEKK+C4luC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4LiW4LiaCivguJbguJrguJTguLUKK+C4luC4oQor4LiW4LmI4LihCivguJbguKHguYDguIfguLTguJkKK+C4luC4oeC4leC4sOC4l+C4reC4hwor4LiW4Lih4LiW4Li34LiUCivguJbguKHguYDguJYKK+C4luC4oeC4l+C4reC4hwor4LiW4LmI4Lih4LiZ4LmJ4Liz4Lil4Liy4Lii4Lij4LiU4Lif4LmJ4LiyCivguJbguKHguJvguKPguLHguIHguKHguLLguKgKK+C4luC4oeC4m+C4seC4lAor4LiW4Lih4LmE4LibCivguJbguYjguKHguKPguYnguLLguKIKK+C4luC4oeC4rQor4LiW4Lih4Li24LiH4LiX4Li24LiHCivguJbguKUKK+C4luC4peC4gQor4LiW4Lil4LiB4Lia4Liy4LiV4LijCivguJbguKXguJkKK+C4luC4peC4oQor4LiW4Lil4LmI4LihCivguJbguKXguK3guIEKK+C4luC4peC4seC4mQor4LiW4Lil4LiyCivguJbguKXguLLguIEKK+C4luC4peC4suC4geC4luC4peC4swor4LiW4Lil4Liy4LiB4LmE4LiW4LilCivguJbguKXguLLguKIKK+C4luC4peC4swor4LiW4Lil4Liz4LmD4LiICivguJbguKXguLPguJXguLHguKcKK+C4luC4peC4s+C4luC4peC4suC4gQor4LiW4Lil4Li14LiW4Lil4LizCivguJbguKXguLbguIfguJXguLIKK+C4luC4peC4uOC4hwor4LiW4Lil4Li44LiZCivguJbguYjguKfguIcKK+C4luC5iOC4p+C4h+C4lOC4uOC4pQor4LiW4LmI4Lin4LiH4Lil4LmJ4LitCivguJbguYnguKfguJkKK+C4luC5ieC4p+C4meC4luC4teC5iAor4LiW4LmJ4Lin4LiiCivguJbguYnguKfguKLguJXguKfguIcKK+C4luC5ieC4p+C4ouC5guC4luC4hwor4LiW4LmJ4Lin4Lii4Lij4Liy4LiH4Lin4Lix4LilCivguJbguKfguLHguJQKK+C4luC4p+C4seC4lOC4luC4p+C4seC4mQor4LiW4Lin4Lix4LilCivguJbguKfguLHguKXguKLguYwKK+C4luC4p+C4suC4ogor4LiW4Lin4Liy4Lii4LiB4LijCivguJbguKfguLLguKLguJXguLHguKcKK+C4luC4p+C4suC4ouC5gOC4meC4leC4owor4LiW4Lin4Liy4Lii4Lie4Lij4Liw4Lie4LijCivguJbguKfguLLguKLguKvguLHguKcKK+C4luC4p+C4tOC4mQor4LiW4Lin4Li04LilCivguJbguYjguK0KK+C4luC5ieC4rQor4LiW4Lit4LiBCivguJbguK3guIcKK+C4luC5iOC4reC4hwor4LiW4LmJ4Lit4LiHCivguJbguYjguK3guIfguYHguJbguKcKK+C4luC5iOC4reC4h+C5geC4l+C5iQor4LiW4Lit4LiUCivguJbguK3guJTguYDguILguLXguYnguKLguKfguJbguK3guJTguYDguKXguYfguJoKK+C4luC4reC4lOC4hOC4p+C4suC4oQor4LiW4Lit4LiU4LiW4Lit4LiZCivguJbguK3guJTguYTguJ7guYgKK+C4luC4reC4lOC4o+C4q+C4seC4qgor4LiW4Lit4LiU4Lij4Li54LibCivguJbguK3guJTguKrguLUKK+C4luC4reC4lOC4q+C4seC4p+C5guC4guC4mQor4LiW4LmJ4Lit4LiW4Lit4LiiCivguJbguYnguK3guJbguYnguK3guKIKK+C4luC4reC4mQor4LiW4Lit4LiZ4LmA4LiH4Li04LiZCivguJbguK3guJnguYPguIjguYPguKvguI3guYgKK+C4luC4reC4meC4leC5ieC4meC4geC5iOC4meC4o+C4suC4gQor4LiW4Lit4LiZ4LiX4Li44LiZCivguJbguK3guJnguJ7guLTguKkKK+C4luC4reC4meC4ouC4p+C4hwor4LiW4Lit4LiZ4Lij4Liy4LiB4LiW4Lit4LiZ4LmC4LiE4LiZCivguJbguK3guJnguKrguKHguK0KK+C4luC4reC4meC4quC4suC4ouC4muC4seC4pwor4LiW4Lit4LiZ4Lir4LiH4Lit4LiBCivguJbguK3guJoKK+C4luC4reC4muC5geC4luC4mgor4LiW4LmI4Lit4LihCivguJbguYjguK3guKHguJXguLHguKcKK+C4luC4reC4ogor4LiW4LmI4Lit4LiiCivguJbguYnguK3guKIKK+C4luC4reC4ouC4geC4o+C4ueC4lAor4LiW4LmJ4Lit4Lii4LiE4Lin4Liy4LihCivguJbguYnguK3guKLguITguLMKK+C4luC4reC4ouC5g+C4iOC5g+C4q+C4jeC5iAor4LiW4Lit4Lii4LiJ4LiwCivguJbguK3guKLguInguLLguIEKK+C4luC4reC4ouC4luC4lAor4LiW4LmJ4Lit4Lii4LmB4LiW4Lil4LiHCivguJbguK3guKLguJfguJQKK+C4luC4reC4ouC4l+C4seC4ngor4LiW4LmJ4Lit4Lii4LiX4Li14LiW4LmJ4Lit4Lii4Lib4LiP4Li04Lia4Lix4LiV4Li04LiV4LmI4Lit4LiB4Lix4LiZCivguJbguYnguK3guKLguJfguLXguJbguYnguK3guKLguK3guLLguKjguLHguKLguIHguLHguJkKK+C4luC4reC4ouC4q+C4peC4seC4hwor4LiW4Lit4Lii4Lir4Lil4Lix4LiH4LmA4LiC4LmJ4Liy4LiE4Lil4Lit4LiHCivguJbguLAKK+C4luC4sOC4geC4seC4lAor4LiW4Liw4LmA4LiB4Li04LiZCivguJbguLDguYLguIHguJkKK+C4luC4sOC4luC4seC5iOC4mQor4LiW4Liw4LiW4Lix4LiaCivguJbguLDguJbguLjguJnguJbguLDguJbguLHguJkKK+C4luC4sOC4oeC4seC4lOC4luC4sOC5geC4oeC4hwor4LiW4Lix4LiBCivguJbguLHguIcKK+C4luC4seC5iOC4hwor4LiW4Lix4LmI4LiH4LiW4LmJ4Lit4LiiCivguJbguLHguJPguJHguLTguKUKK+C4luC4seC4k+C4keC4tOC4pS0KK+C4luC4seC4k+C4keC4tOC4peC4quC4suC4ouC4tQor4LiW4Lix4LiUCivguJbguLHguJfguJgKK+C4luC4seC4mQor4LiW4Lix4LmI4LiZCivguJbguLHguYjguJnguYYKK+C4luC4seC4mgor4LiW4Lix4Lia4LmGCivguJbguLHguKHguKDguYwKK+C4luC4seC4pwor4LiW4Lix4LmI4LinCivguJbguLHguYjguKfguILguLLguKcKK+C4luC4seC5iOC4p+C4hOC4o+C5ieC4sgor4LiW4Lix4LmI4Lin4LiE4LmJ4Liy4LiHCivguJbguLHguYjguKfguIfguK3guIEKK+C4luC4seC5iOC4p+C4lOC4swor4LiW4Lix4LmI4Lin4LiZ4LiyCivguJbguLHguYjguKfguYHguJvguJoKK+C4luC4seC5iOC4p+C5geC4m+C4muC4iuC5ieC4suC4hwor4LiW4Lix4LmI4Lin4Lid4Lix4LiB4Lii4Liy4LinCivguJbguLHguYjguKfguJ7guKPguYnguLIKK+C4luC4seC5iOC4p+C4nuC4uQor4LiW4Lix4LmI4Lin4LmA4Lie4Liy4LiwCivguJbguLHguYjguKfguYHguKHguYjguJXguLLguKIKK+C4luC4seC5iOC4p+C5geC4o+C4sAor4LiW4Lix4LmI4Lin4LmA4Lir4Lil4Li34Lit4LiHCivguJbguLIKK+C4luC5ieC4sgor4LiW4Liy4LiBCivguJbguLLguIHguJbguLLguIcKK+C4luC4suC4hwor4LiW4LmI4Liy4LiHCivguJbguYjguLLguIfguJXguLIKK+C4luC4suC4lAor4LiW4Liy4LmC4LiW4LihCivguJbguLLguJkKK+C4luC5iOC4suC4mQor4LiW4LmI4Liy4LiZ4LmC4LiE4LmJ4LiBCivguJbguYjguLLguJnguYTguJ/guYDguIHguYjguLIKK+C4luC5iOC4suC4meC5hOC4n+C4ieC4suC4ogor4LiW4LmI4Liy4LiZ4LmE4Lif4LmB4LiK4LmH4LiBCivguJbguYjguLLguJnguKvguLTguJkKK+C4luC4suC4mgor4LiW4Liy4LihCivguJbguLLguKHguITguYnguLLguJkKK+C4luC4suC4oeC4leC4tOC4hwor4LiW4Liy4Lih4LmE4LiW4LmICivguJbguLLguKHguJnguLMKK+C4luC4suC4oeC4m+C4suC4geC4hOC4swor4LiW4Liy4Lih4LiwCivguJbguYjguLLguKIKK+C4luC5iOC4suC4ouC5gOC4lOC4teC4ouC4pwor4LiW4LmI4Liy4Lii4LiX4Lit4LiUCivguJbguYjguLLguKLguJfguLjguIHguILguYwKK+C4luC5iOC4suC4ouC5gOC4lwor4LiW4LmI4Liy4Lii4LmB4Lia4LiaCivguJbguYjguLLguKLguJvguLHguKrguKrguLLguKfguLAKK+C4luC5iOC4suC4ouC4oOC4suC4nuC4ouC4meC4leC4o+C5jAor4LiW4LmI4Liy4Lii4Lii4LiyCivguJbguYjguLLguKLguKPguLnguJsKK+C4luC5iOC4suC4ouC4reC4uOC4iOC4iOC4suC4o+C4sAor4LiW4LmI4Liy4LinCivguJbguLLguKfguKMKK+C4luC4suC4p+C4oy0KK+C4luC4suC4p+C4o+C4mOC4tOC4o+C4sgor4LiW4Liy4Lin4Lij4Lin4Lix4LiV4LiW4Li4CivguJbguYnguLLguKfguYjguLIKK+C4luC5ieC4suC4q+C4suC4geC4p+C5iOC4sgor4LiW4LmJ4LizCivguJbguYnguLPguIrguLIKK+C4luC5ieC4s+C4oeC4reC4hwor4LiW4LmJ4Liz4Lii4Liy4LiU4LihCivguJbguLTguYjguJkKK+C4luC4tOC4oy0KK+C4luC4tQor4LiW4Li14LmICivguJbguLXguYjguYYKK+C4luC4teC5iOC4luC5ieC4p+C4mQor4LiW4Li14LmI4LmA4LiX4LmJ4LiyCivguJbguLXguJktCivguJbguLXguJoKK+C4luC4teC4muC4geC4o+C4sOC4lOC4suC4mQor4LiW4Li14Lia4LiI4Lix4LiB4LijCivguJbguLXguJrguIjguLHguIHguKPguKLguLLguJkKK+C4luC4teC4muC4ieC4seC4lAor4LiW4Li14Lia4LiV4Lix4LinCivguJbguLXguJrguJfguLLguIcKK+C4luC4teC4muC4o+C4lgor4LiW4Li14Lia4Lir4Lix4Lin4Liq4LmI4LiHCivguJbguLXguYjguKLguLTguJoKK+C4luC4teC5iOC4peC4reC4lOC4leC4suC4iuC5ieC4suC4hyDguKvguYjguLLguIfguKXguK3guJTguJXguLLguYDguKXguYfguJkKK+C4luC4tuC4gQor4LiW4Li24LiHCivguJbguLbguIfguIHguLHguJkKK+C4luC4tuC4h+C5geC4geC5iOC4geC4o+C4o+C4oQor4LiW4Li24LiH4LmB4LiB4LmI4LiZCivguJbguLbguIfguYHguIHguYjguJ7guLTguKPguLLguKXguLHguKIKK+C4luC4tuC4h+C5geC4geC5iOC4oeC4o+C4k+C4oOC4suC4ngor4LiW4Li24LiH4LmB4LiB4LmI4Lit4LiZ4Li04LiI4LiB4Lij4Lij4LihCivguJbguLbguIfguYHguIHguYjguK3guKrguLHguI3guIHguKPguKPguKEKK+C4luC4tuC4h+C4guC4meC4suC4lAor4LiW4Li24LiH4LiE4Lij4Liy4LinCivguJbguLbguIfguIbguLLguJUKK+C4luC4tuC4h+C5gOC4h+C4tOC4mQor4LiW4Li24LiH4LmD4LiICivguJbguLbguIfguIrguLXguJ7guLTguJXguLHguIHguKnguLHguKIKK+C4luC4tuC4h+C4iuC4teC4p+C4tOC4leC4seC4meC4leC4o+C4suC4ogor4LiW4Li24LiH4LiX4Li14LmICivguJbguLbguIfguYDguJvguYfguJnguJbguLbguIfguJXguLLguKIKK+C4luC4tuC4h+C4nOC5ieC4sgor4LiW4Li24LiH4Lie4Lij4Li04LiB4LiW4Li24LiH4LiC4Li04LiHCivguJbguLbguIfguKXguLnguIHguJbguLbguIfguITguJkKK+C4luC4tuC4h+C4p+C5iOC4sgor4LiW4Li24LiH4LmE4Lir4LiZ4LiW4Li24LiH4LiB4Lix4LiZCivguJbguLfguK0KK+C4luC4t+C4reC4geC4s+C5gOC4meC4tOC4lAor4LiW4Li34Lit4LmC4LiB4Lij4LiYCivguJbguLfguK3guYDguILguLLguJbguLfguK3guYDguKPguLIKK+C4luC4t+C4reC5g+C4iAor4LiW4Li34Lit4LiU4Li1CivguJbguLfguK3guJXguLHguKcKK+C4luC4t+C4reC4l+C5ieC4suC4ogor4LiW4Li34Lit4LiZ4LmJ4Liz4Lie4Lij4Liw4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Liq4Lix4LiV4Lii4LiyCivguJbguLfguK3guJrguKfguIoKK+C4luC4t+C4reC4muC4seC4h+C5gOC4q+C4teC4ouC4mQor4LiW4Li34Lit4Lib4Li54LiZCivguJbguLfguK3guJzguLTguKcKK+C4luC4t+C4reC4nuC4pQor4LiW4Li34Lit4Lii4LioCivguJbguLfguK3guKLguKjguJbguLfguK3guKjguLHguIHguJTguLTguYwKK+C4luC4t+C4reC5gOC4o+C4suC4luC4t+C4reC5gOC4guC4sgor4LiW4Li34Lit4Lin4LmI4LiyCivguJbguLfguK3guKjguLHguIHguJTguLTguJnguLIKK+C4luC4t+C4reC4qOC4teC4pQor4LiW4Li34Lit4Liq4LiyCivguJbguLfguK3guKrguLTguJfguJjguLTguYwKK+C4luC4t+C4reC4q+C4suC4hwor4LiW4Li34Lit4LmC4Lit4LiB4Liy4LiqCivguJbguLjguIcKK+C4luC4uOC4h+C5gOC4hOC5ieC4sgor4LiW4Li44LiH4LiV4Liw4LmA4LiE4Lij4Li14Lii4LinCivguJbguLjguIfguJXguLDguYDguITguLXguKLguKcKK+C4luC4uOC4h+C4ouC5iOC4suC4oQor4LiW4Li44LiH4Liq4Liz4LmA4Lij4LmH4LiICivguJbguLjguJkKK+C4luC4uOC4ogor4LiW4Li44LilLQor4LiW4Li44Lil4Lil4LiwCivguJbguLkKK+C4luC4ueC4gQor4LiW4Li54LiB4LiB4Lij4Liw4LiX4LizCivguJbguLnguIHguIHguLHguJkKK+C4luC4ueC4geC4guC4sgor4LiW4Li54LiB4LiE4LitCivguJbguLnguIHguITguLnguYgKK+C4luC4ueC4geC5g+C4iAor4LiW4Li54LiB4LmC4LiJ4Lil4LiBCivguJbguLnguIHguIrguLDguJXguLIKK+C4luC4ueC4geC4leC4sgor4LiW4Li54LiB4LiZ4LmJ4Lit4LiiCivguJbguLnguIHguJvguLLguIEKK+C4luC4ueC4geC4quC5iOC4p+C4mQor4LiW4Li54LiB4LmA4Liq4LmJ4LiZCivguJbguLnguIHguYPguKvguI3guYgKK+C4luC4ueC4geC4reC4geC4luC4ueC4geC5g+C4iAor4LiW4Li54LmE4LiWCivguJbguLnguJstCivguJbguLnguJvguLLguKPguKvguJrguLjguITguITguKUKK+C4luC4ueC4pS0KK+C4luC4ueC4peC4ueC5iOC4luC4ueC4geC4seC4hwor4LmA4LiW4LiB4Li04LiHCivguYDguJbguJkKK+C5gOC4luC4oeC4tOC4mQor4LmA4LiW4Lih4Li04LiZ4LmA4LiK4Li04LiHCivguYDguJbguKHguLTguJnguYTguJ7guKMKK+C5gOC4luC4oi0KK+C5gOC4luC4ouC4iOC4tOC4lQor4LmA4LiW4Lii4LmA4LiI4LiV4LiZ4LiyCivguYDguJbguKLguKrguLHguIfguKfguLLguKoKK+C5gOC4luC4owor4LmA4LiW4LijLQor4LmA4LiW4Lij4LiV4Lij4LiHCivguYDguJbguKPguKDguLnguKHguLQKK+C5gOC4luC4o+C4p+C4suC4lwor4LmA4LiW4Lij4Liq4LmI4Lit4LiH4Lia4Liy4LiV4LijCivguYDguJbguKPguLAKK+C5gOC4luC4o+C4suC4meC4uOC5gOC4luC4o+C4sAor4LmA4LiW4Lij4Li1CivguYDguJbguKXguYTguJbguKUKK+C5gOC4luC4peC4tOC4gQor4LmA4LiW4Lil4Li04LiHCivguYDguJbguKXguLTguIfguKjguIEKK+C5gOC4luC4peC4t+C4reC4geC4luC4peC4mQor4LmA4LiW4LmI4LitCivguYDguJbguK3guLAKK+C5gOC4luC4reC4sOC4meC5iOC4sgor4LmA4LiW4Liw4LmGCivguYDguJbguLIKK+C5gOC4luC5ieC4sgor4LmA4LiW4LmJ4Liy4LmB4LiB4LmICivguYDguJbguLLguITguLHguJkKK+C5gOC4luC4suC4hOC4seC4meC5gOC4q+C4peC5h+C4gQor4LmA4LiW4Liy4LmA4LiH4Liy4LiwCivguYDguJbguLLguJTguLLguJkKK+C5gOC4luC4suC4oeC4p+C4gQor4LmA4LiW4LmJ4Liy4Lij4Li24LiHCivguYDguJbguLLguKfguLHguKXguKLguYwKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4geC4o+C4lAor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4LiC4Li14Lii4LinCivguYDguJbguLLguKfguLHguKXguKLguYzguJvguLnguJkKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4m+C4o+C4teC4ouC4hwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4Lii4Lit4LiU4LiU4LmJ4Lin4LiZCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguKvguKXguYfguIEKK+C5gOC4luC4suC4quC4tOC4h+C5guC4lQor4LmA4LiW4Liy4Lir4Lix4Lin4LiU4LmJ4Lin4LiZCivguYDguJbguLLguLAKK+C5gOC4luC4tOC4gQor4LmA4LiW4Li04LiHCivguYDguJbguLTguJQKK+C5gOC4luC4tOC4lOC5gOC4l+C4tOC4hwor4LmA4LiW4Li04LiU4LiZ4LmI4LiyCivguYDguJbguLTguJkKK+C5gOC4luC4teC4ouC4hwor4LmA4LiW4Li14Lii4LijCivguYDguJbguLfguK0KK+C5gOC4luC4t+C4reC4gQor4LmA4LiW4Li34LmI4Lit4LiZCivguYHguJYKK+C5geC4luC4gQor4LmB4LiW4LiHCivguYHguJbguJkKK+C5geC4luC4mgor4LmB4LiW4Lia4Lia4Lix4LiZ4LiX4Li24LiB4Lig4Liy4LieCivguYHguJbguJrguJrguLHguJnguJfguLbguIHguYDguKrguLXguKLguIcKK+C5geC4luC4muC5gOC4q+C4peC5h+C4geC4nuC4t+C4lAor4LmB4LiW4LihCivguYHguJbguKHguJ7guIEKK+C5geC4luC4peC4hwor4LmB4LiW4Lil4LiH4LiB4Liy4Lij4LiT4LmMCivguYHguJbguKXguIfguIHguLLguKPguJPguYzguKPguYjguKfguKEKK+C5geC4luC4peC4h+C4guC5iOC4suC4pwor4LmB4LiW4Lil4LiaCivguYHguJbguKcKK+C5guC4lgor4LmC4LiW4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmB4Lib4LmJ4LiHCivguYLguJbguIcKK+C5guC4luC4h+C5gOC4luC4hwor4LmC4LiW4LiaCivguYLguJbguJvguKPguLTguIEKK+C5guC4luC4oQor4LmC4LiW4Lih4LiZ4Liy4LiB4Liy4LijCivguYLguJbguKrguYnguKfguKEKK+C5hOC4lgor4LmE4LiW4LmICivguYTguJbguYkKK+C5hOC4luC4geC4peC4mgor4LmE4LiW4LiHCivguYTguJbguJTguLAKK+C5hOC4luC5iOC4luC4reC4mQor4LmE4LiW4LmI4LiW4Liy4LihCivguYTguJbguJnguLIKK+C5hOC4luC5iOC4muC4suC4mwor4LmE4LiW4LmB4Lib4LijCivguYTguJbguKItCivguYTguJbguKUKK+C4lwor4LiX4LiBCivguJfguIHguKXguYnguLIKK+C4l+C5geC4geC4peC5ieC4pwor4LiX4LmI4LiHCivguJfguIfguLHguJkKK+C4l+C4iuC4tQor4LiX4LiUCivguJfguJTguJbguK3guKIKK+C4l+C4lOC5geC4l+C4mQor4LiX4LiU4LmC4LiX4Lij4LmI4LirCivguJfguJTguKPguK3guIcKK+C4l+C4lOC4peC4reC4hwor4LiX4LiU4LmA4Lil4LiCCivguJfguJTguKrguK3guJoKK+C4l+C4lwor4LiX4LiY4Li0CivguJfguJkKK+C4l+C5ieC4mQor4LiX4LiZ4LiU4Li1CivguJfguJnguJUtCivguJfguJnguJXguYwKK+C4l+C4meC4leC4geC4suC4qeC4kOC5jAor4LiX4LiZ4LiX4Liy4LiZCivguJfguJnguYLguJfguYgKK+C4l+C4meC4oQor4LiX4LiZ4Liy4LiiCivguJfguJnguLLguKLguITguKfguLLguKEKK+C4l+C4meC4suC4ouC5gOC4o+C4t+C4reC4mQor4LiX4LiZ4Liy4Lii4LmA4Lil4Li34Lit4LiBCivguJfguJnguLLguKLguKvguJnguYnguLLguKvguK0KK+C4l+C4mgor4LiX4Lia4LiX4Lin4LiZCivguJfguJrguKfguIcKK+C4l+C4muC4p+C4h+C4geC4suC4owor4LiX4Lia4Lin4LiH4LiB4Liy4Lij4LmA4Lih4Li34Lit4LiHCivguJfguKEKK+C4l+C4oeC4gQor4LiX4Lih4LiZCivguJfguKHguJoKK+C4l+C4oeC4rQor4LiX4Lih4Li04LisCivguJfguYDguKHguLTguJkKK+C4l+C5guC4oeC4mQor4LiX4Lii4Lit4LiiCivguJfguKLguLIKK+C4l+C4ouC4suC4peC4uAor4LiX4Lii4Liy4Lil4Li44LiBCivguJfguYHguKLguIcKK+C4l+C5geC4ouC4h+C4oeC4uOC4oQor4LiX4LijLQor4LiX4Lij4LiB4Lij4Lij4LihCivguJfguKPguIcKK+C4l+C4o+C4h+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiX4Lij4LiH4LiB4Lil4LiUCivguJfguKPguIfguILguYnguLLguKfguJrguLTguJPguJHguYwKK+C4l+C4o+C4h+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiX4Lij4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmD4Lir4LiN4LmICivguJfguKPguIfguYDguIjguYnguLIKK+C4l+C4o+C4h+C5gOC4iOC5ieC4suC5gOC4guC5ieC4suC4nOC4tQor4LiX4Lij4LiH4LiV4Lix4LiBCivguJfguKPguIfguJrguLLguJTguLLguKUKK+C4l+C4o+C4h+C4m+C4o+C4sOC4nuC4suC4qgor4LiX4Lij4LiH4Lie4Lij4Liw4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmD4Lir4LiN4LmICivguJfguKPguIfguKHguLHguJPguJHguYwKK+C4l+C4o+C4h+C4peC4seC4h+C4geC4sgor4LiX4Lij4LiH4Lir4Lih4LmJ4Lit4LiV4Liy4LilCivguJfguKPguIrguJkKK+C4l+C4o+C4iuC4suC4leC4tAor4LiX4Lij4LiX4Li24LiHCivguJfguKPguJjguLbguIEKK+C4l+C4o+C4nuC4pQor4LiX4Lij4Lie4Li04LipCivguJfguKPguJ7guLUKK+C4l+C4o+C4oOC4tOC4geC4qeC5jAor4LiX4Lij4Lih4Liy4LiX4Lij4LiB4Lij4Lij4LihCivguJfguKPguKHguLLguJkKK+C4l+C4o+C4oeC4uOC4gQor4LiX4Lij4Lii4LioCivguJfguKPguKLguLjguIQKK+C4l+C4o+C4o+C4l+C4tuC4hwor4LiX4Lij4Lij4LibCivguJfguKPguKPguJvguJPguYwKK+C4l+C4o+C4o+C4m+C4k+C4sAor4LiX4Lij4Lij4Lio4LiZ4LiwCivguJfguKPguKPguKjguJnguLLguIHguLLguKMKK+C4l+C4o+C4o+C4qOC4meC4teC4ouC5jAor4LiX4Lij4Lij4Liy4LiKCivguJfguKPguKXguLHguIHguKnguJPguYwKK+C4l+C4o+C5gOC4peC5iOC4q+C5jAor4LiX4Lij4Lin4LiHCivguJfguKPguKfguJQKK+C4l+C4o+C4p+C4lOC4l+C4o+C4hwor4LiX4Lij4Lin4Liy4LijCivguJfguKPguKrguK3guIfguJfguKPguKrguLjguKEKK+C4l+C4o+C4quC4suC4ogor4LiX4Lij4Liq4Li44LihCivguJfguKPguKvguJQKK+C4l+C4o+C4q+C4mQor4LiX4Lij4Lir4Lin4LilCivguJfguKPguKvguLbguIcKK+C4l+C4o+C4q+C4tuC4h+C4l+C4o+C4q+C4p+C4pQor4LiX4Lij4Lir4Li5CivguJfguKPguYDguKvguKUKK+C4l+C4o+C4rQor4LiX4Lij4Lit4Lih4LmC4Lia4LiZCivguJfguKPguK3guLbguIcKK+C4l+C4o+C4reC4uOC5ieC4oQor4LiX4Lij4Liw4LiZ4LiHCivguJfguKPguLDguJnguLLguKcKK+C4l+C4o+C4seC4nuC4oi0KK+C4l+C4o+C4seC4nuC4ouC5jAor4LiX4Lij4Lix4Lie4Lii4LmM4LiZ4Lit4LiB4Lie4Liy4LiT4Li04LiK4Lii4LmMCivguJfguKPguLHguJ7guKLguYzguYPguJnguJTguLTguJkg4Liq4Li04LiZ4LmD4LiZ4LiZ4LmJ4LizCivguJfguKPguLHguJ7guKLguYzguKrguKHguJrguLHguJXguLQKK+C4l+C4o+C4seC4nuC4ouC4quC4tOC4l+C4mOC4tAor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04LiZCivguJfguKPguLHguJ7guKLguYzguKrguLTguJnguKrguYjguKfguJnguJ7guKPguLDguKHguKvguLLguIHguKnguLHguJXguKPguLTguKLguYwKK+C4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4meC4quC5iOC4p+C4meC4nuC4o+C4sOC4reC4h+C4hOC5jAor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04LiZ4Liq4LmI4Lin4LiZ4Liq4Liy4LiY4Liy4Lij4LiT4Liq4Lih4Lia4Lix4LiV4Li04LiC4Lit4LiH4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguJfguKPguLHguJ7guKLguLLguIHguKMKK+C4l+C4o+C4seC4nuC4ouC4suC4geC4o+C4mOC4o+C4k+C4tQor4LiX4Lij4Lix4Lie4Lii4Liy4LiB4Lij4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0CivguJfguKPguLHguKHguYDguJvguYfguJUKK+C4l+C4o+C4suC4meC4i+C4tOC4quC5gOC4leC4reC4o+C5jAor4LiX4Lij4Liy4LiaCivguJfguKPguLLguJrguYDguIHguKXguYnguLLguJfguKPguLLguJrguIHguKPguLDguKvguKHguYjguK3guKEKK+C4l+C4o+C4suC4muC4neC5iOC4suC4nuC4o+C4sOC4muC4suC4lwor4LiX4Lij4Liy4Lia4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4LiY4Li44Lil4Li14Lie4Lij4Liw4Lia4Liy4LiXCivguJfguKPguLLguJrguJ3guYjguLLguKXguLDguK3guK3guIfguJ7guKPguLDguJrguLLguJcKK+C4l+C4o+C4suC4oQor4LiX4Lij4Liy4Lih4LiK4LihCivguJfguKPguLLguKHguYDguIrguKIKK+C4l+C4o+C4suC4oeC4p+C4seC4ogor4LiX4Lij4Liy4Lih4Liq4LiH4Lin4LiZCivguJfguKPguLLguKHguKrguKfguLLguJcKK+C4l+C4o+C4suC4ogor4LiX4Lij4Liy4Lii4LmB4LiB4LmJ4LinCivguJfguKPguLLguKLguILguLLguKcKK+C4l+C4o+C4suC4ouC5geC4m+C5ieC4hwor4LiX4Lij4Li04LiX4LijCivguJfguKPguLjguJQKK+C4l+C4o+C4uOC4lOC5guC4l+C4o+C4oQor4LiX4Lij4Li44LiU4LiZ4Lix4LmI4LiHCivguJfguKPguLjguKEKK+C4l+C4o+C4ueC5iAor4LiX4Lik4LiGLQor4LiX4Lik4Lip4LiO4Li1CivguJfguKTguKnguI7guLXguJrguJcKK+C4l+C4pQor4LiX4Lil4Lia4LihCivguJfguKXguK3guLbguIcKK+C4l+C4peC4suC4ogor4LiX4Lil4Li04LiXCivguJfguKXguLTguJfguJfguIEKK+C4l+C4p+C4hwor4LiX4LmJ4Lin4LiHCivguJfguYnguKfguIfguJXguLTguIcKK+C4l+C4p+C4h+C4luC4suC4oQor4LiX4LmI4Lin4LiH4LiX4LmI4LiyCivguJfguYjguKfguIfguJfguLPguJnguK3guIcKK+C4l+C5iOC4p+C4h+C4l+C4tQor4LiX4Lin4LiUCivguJfguKfguJTguJnguYnguK3guKIKK+C4l+C4p+C4lOC4tuC4h+C4quC5jAor4LiX4Lin4LiZCivguJfguYnguKfguJkKK+C4l+C4p+C4meC4l+C4mgor4LiX4Lin4LiZ4Liq4Lia4LiWCivguJfguKfguJnguKrguLLguJrguLLguJkKK+C4l+C5iOC4p+C4oQor4LiX4LmJ4Lin4LihCivguJfguYnguKfguKHguYYKK+C4l+C5iOC4p+C4oeC4l+C5ieC4mQor4LiX4Lin4LiiCivguJfguYjguKfguKIKK+C4l+C5ieC4p+C4ogor4LiX4Lin4Lii4LmC4LiW4LiHCivguJfguYjguKfguKLguYLguJbguIcKK+C4l+C4p+C4ouC4sAor4LiX4Lin4Lit4LiiCivguJfguKfguLHguJXguJTguLbguIfguKrguYwKK+C4l+C4p+C4seC4leC4lOC4tuC4h+C4quC4suC4geC4suC4owor4LiX4Lin4Lix4LiiCivguJfguKfguLIKK+C4l+C4p+C5iOC4sgor4LiX4Lin4Liy4LiV4Lij4Li24LiH4Lib4Lij4Liw4LiU4Lix4LiaCivguJfguKfguLLguJfguKgKK+C4l+C4p+C4suC4l+C4qOC4oS0KK+C4l+C4p+C4suC4l+C4qOC4oeC4k+C4keC4pQor4LiX4Lin4Liy4LiX4Lio4Li1CivguJfguKfguLLguJrguKMKK+C4l+C4p+C4suC4muC4o+C4ouC4uOC4hAor4LiX4Lin4Liy4LiiCivguJfguKfguLLguKMKK+C4l+C4p+C4suC4o+C4l+C4seC5ieC4h+C5gOC4geC5ieC4sgor4LiX4Lin4Liy4Lij4Lia4LiWCivguJfguKfguLLguKPguJrguLLguKUKK+C4l+C4p+C4suC4o+C4m+C4o+C4sOC4lOC4seC4mgor4LiX4Lin4Li0CivguJfguKfguLTguIoKK+C4l+C4p+C4tOC4ii0KK+C4l+C4p+C4tOC4iuC4h+C4hOC5jAor4LiX4Lin4Li04LiK4Liy4LiB4LijCivguJfguKfguLTguIrguLLguJXguLQKK+C4l+C4p+C4tOC4leC4teC4ogor4LiX4Lin4Li04LiV4Li14Lii4LiyCivguJfguKfguLTguJrguJYKK+C4l+C4p+C4tOC4muC4lwor4LiX4Lin4Li04Lia4Liy4LiXCivguJfguKfguLTguJsKK+C4l+C4p+C4tOC4oOC4suC4hAor4LiX4Lin4Li04Lig4Liy4LiE4Li1CivguJfguKfguLTguKMKK+C4l+C4p+C4tQor4LiX4Lin4Li14LiE4Li54LiTCivguJfguKfguLXguJjguLLguKDguLTguYDguKnguIEKK+C4l+C4p+C4teC4mwor4LiX4Lin4Li14Lib4Li1CivguJfguKgKK+C4l+C4qC0KK+C4l+C4qOC4iuC4suC4leC4tAor4LiX4Lio4LiX4Li04LioCivguJfguKjguJnguLTguKLguKEKK+C4l+C4qOC5gOC4muC4jeC4iOC4geC4ueC4pQor4LiX4Lio4Lie4LijCivguJfguKjguJ7guKUKK+C4l+C4qOC4nuC4tOC4mOC4o+C4suC4iuC4mOC4o+C4o+C4oQor4LiX4Lio4LihLQor4LiX4Lio4Lih4Liy4LiqCivguJfguKjguKHguLUKK+C4l+C4qOC4p+C4o+C4o+C4qQor4LiX4Lio4LiyCivguJfguKjguLLguIfguITguYwKK+C4l+C4quC4sgor4LiX4Lir4Lij4LiwCivguJfguKvguLLguKMKK+C4l+C4q+C4suC4o+C4geC4reC4h+C4m+C4o+C4sOC4iOC4s+C4geC4suC4owor4LiX4Lir4Liy4Lij4Lic4LmI4Liy4LiZ4Lio4Li24LiBCivguJfguKvguLLguKPguYDguKXguKcKK+C4l+C4rQor4LiX4LmI4LitCivguJfguYnguK0KK+C4l+C4reC4gQor4LiX4Lit4LiHCivguJfguYjguK3guIcKK+C4l+C5ieC4reC4hwor4LiX4Lit4LiH4LiB4LijCivguJfguK3guIfguIHguKfguLLguKcKK+C4l+C5ieC4reC4h+C4geC4suC4hwor4LiX4LmJ4Lit4LiH4LmB4LiB4LmICivguJfguK3guIfguILguLLguKcKK+C4l+C5ieC4reC4h+C4guC4suC4pwor4LiX4LmJ4Lit4LiH4LiC4Li24LmJ4LiZCivguJfguYnguK3guIfguILguLbguYnguJnguJfguYnguK3guIfguJ7guK3guIcKK+C4l+C5ieC4reC4h+C5geC4guC4mQor4LiX4LmJ4Lit4LiH4LmB4LiC4Lin4LiZCivguJfguYnguK3guIfguITguLHguJTguJfguYnguK3guIfguYHguILguYfguIcKK+C4l+C4reC4h+C4hOC4swor4LiX4Lit4LiH4LiE4Liz4LiC4Liy4LinCivguJfguK3guIfguITguLPguYDguJvguKXguKcKK+C4l+C5ieC4reC4h+C4hOC4uOC5ieC4hwor4LiX4Lit4LiH4LmA4LiECivguJfguK3guIfguYDguITguKPguLfguK0KK+C4l+C5iOC4reC4h+C4iOC4swor4LiX4LmJ4Lit4LiH4LiJ4LiZ4Lin4LiZCivguJfguK3guIfguIrguKHguJ7guLnguJnguLjguJcKK+C4l+C4reC4h+C4iuC4uOC4mgor4LiX4Lit4LiH4LiU4Lit4LiB4Lia4Lin4LiaCivguJfguK3guIfguJTguLMKK+C4l+C5ieC4reC4h+C5gOC4lOC4tOC4mQor4LiX4Lit4LiH4LmB4LiU4LiHCivguJfguK3guIfguJXguYnguJnguYHguILguJkKK+C4l+C5ieC4reC4h+C4leC4o+C4sgor4LiX4LmJ4Lit4LiH4LiV4Lil4Liy4LiUCivguJfguK3guIfguJXguLLguIHguLkKK+C4l+C5ieC4reC4h+C4luC4tOC5iOC4mQor4LiX4Lit4LiH4LiX4Lij4Liy4LiiCivguJfguK3guIfguJfguKgKK+C4l+C5ieC4reC4h+C4l+C4teC5iAor4LiX4Lit4LiH4LiX4Li24LiaCivguJfguYjguK3guIfguYDguJfguLXguYjguKLguKcKK+C4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiX4Lit4LiH4LiZ4Lie4LiE4Li44LiTCivguJfguYnguK3guIfguJnguYjguK3guIcKK+C4l+C5ieC4reC4h+C4meC5ieC4reC4ogor4LiX4Lit4LiH4Lia4Lij4Lit4LiZ4LiL4LmMCivguJfguYnguK3guIfguYHguJrguJkKK+C4l+C4reC4h+C5g+C4mgor4LiX4Lit4LiH4Lib4Lij4Liy4LiiCivguJfguK3guIfguJvguKXguLLguKLguYHguILguJkKK+C4l+C5ieC4reC4h+C4m+C4peC4tOC4hwor4LiX4Lit4LiH4LmB4LibCivguJfguYnguK3guIfguJzguLjguJfguYnguK3guIfguJ7guLHguIcKK+C4l+C5ieC4reC4h+C4nOC4ueC4gQor4LiX4Lit4LiH4LmA4Lic4Li34Lit4LiBCivguJfguK3guIfguYHguJzguYjguJnguYDguJTguLXguKLguKfguIHguLHguJkKK+C4l+C4reC4h+C4nuC4o+C4sOC4geC4owor4LiX4Lit4LiH4Lie4Lij4Liw4LiC4Li44LiZCivguJfguYnguK3guIfguJ7guKPguLDguITguKXguLHguIcKK+C4l+C5ieC4reC4h+C4nuC4o+C4sOC5guC4o+C4hwor4LiX4Lit4LiH4Lie4Lil4Li4CivguJfguYnguK3guIfguJ7guKXguLgKK+C4l+C5ieC4reC4h+C4nuC4reC4hwor4LiX4Lit4LiH4Lie4Lix4LiU4LiU4Li24LiH4Liq4LmMCivguJfguK3guIfguJ7guLHguJnguIrguLHguYjguIcKK+C4l+C4reC4h+C4nuC4seC4meC4lOC4uOC4pQor4LiX4Lit4LiH4Lie4Li04LioCivguJfguYnguK3guIfguYDguJ/guYnguK0KK+C4l+C4reC4h+C4oOC4uQor4LiX4Lit4LiH4Lih4LmJ4Lin4LiZCivguJfguYnguK3guIfguKHguLLguJkKK+C4l+C5ieC4reC4h+C5hOC4oeC5iQor4LiX4Lit4LiH4LmE4Lih4LmI4Lij4Li54LmJ4Lij4LmJ4Lit4LiZCivguJfguK3guIfguKLguYnguK3guKIKK+C4l+C5ieC4reC4h+C4ouC4uOC5ieC4h+C4nuC4uOC4h+C4geC4o+C4sOC4quC4reC4mgor4LiX4LmJ4Lit4LiH4Lij4LmI4Lin4LiHCivguJfguYnguK3guIfguKPguYjguK3guIcKK+C4l+C4reC4h+C4o+C4ueC4m+C4nuC4o+C4o+C4kwor4LiX4LmJ4Lit4LiH4LmA4Lij4Li34LmI4Lit4LiHCivguJfguYnguK3guIfguKXguLLguJkKK+C4l+C4reC4h+C4peC4tOC4mQor4LiX4LmJ4Lit4LiH4LmA4Lil4LinCivguJfguK3guIfguYHguKXguYjguIcKK+C4l+C4reC4h+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jAor4LiX4Lit4LiH4Liq4Lix4LiB4LmC4LiBCivguJfguK3guIfguKrguLHguKHguKTguJfguJjguLTguYwKK+C4l+C5ieC4reC4h+C4quC4suC4pwor4LiX4LmJ4Lit4LiH4Liq4Liz4LiZ4Lin4LiZCivguJfguYjguK3guIfguKrguLfguYjguK0KK+C4l+C5ieC4reC4h+C5gOC4quC4teC4ogor4LiX4Lit4LiH4Lir4Lih4Lix4LmJ4LiZCivguJfguYnguK3guIfguKvguKHguLIKK+C4l+C5ieC4reC4h+C4q+C4oeC4uQor4LiX4Lit4LiH4Lir4Lii4Lit4LiHCivguJfguK3guIfguKvguKLguK3guJQKK+C4l+C4reC4h+C4q+C4ouC4tOC4mgor4LiX4Lit4LiH4Lir4Lil4Liy4LiHCivguJfguK3guIfguYDguKvguKXguLfguK3guIcKK+C4l+C5ieC4reC4h+C5geC4q+C5ieC4hwor4LiX4Lit4LiH4LmC4Lir4Lil4LiHCivguJfguK3guIfguK3guLHguIfguIHguKTguKkKK+C4l+C5ieC4reC4h+C4reC4seC4quC4lOC4h+C4hOC4lQor4LiX4LmJ4Lit4LiH4Lit4Li34LiUCivguJfguK3guIfguK3guLjguYTguKMKK+C4l+C4reC4h+C5gOC4reC4gQor4LiX4Lit4LiUCivguJfguK3guJTguIHguJDguLTguJkKK+C4l+C4reC4lOC5guC4geC4peC4mQor4LiX4Lit4LiU4LiV4Lix4LinCivguJfguK3guJTguJXguLIKK+C4l+C4reC4lOC4l+C4pOC4qeC4juC4tQor4LiX4Lit4LiU4LiX4Li04LmJ4LiHCivguJfguK3guJTguJfguLXguYgKK+C4l+C4reC4lOC4meC5iOC4reC4hwor4LiX4Lit4LiU4LiZ4LmJ4LizCivguJfguK3guJTguJzguYnguLLguJvguYjguLIKK+C4l+C4reC4lOC4nuC4o+C4sOC4l+C4teC5iAor4LiX4Lit4LiU4Lie4Lij4Liw4LmA4LiZ4LiV4LijCivguJfguK3guJTguKHguLHguJkKK+C4l+C4reC4lOC4ouC4reC4lAor4LiX4Lit4LiU4Lij4Lin4LiHCivguJfguK3guJTguKrguIHguLIKK+C4l+C4reC4lOC4quC4oeC4rQor4LiX4Lit4LiU4Liq4Liw4Lie4Liy4LiZCivguJfguK3guJTguKrguLLguKLguJXguLIKK+C4l+C4reC4lOC5gOC4quC4teC4ouC4hwor4LiX4Lit4LiU4Lir4LiN4LmJ4LiyCivguJfguK3guJTguKvguLjguYjguKIKK+C4l+C4reC4lOC5geC4qwor4LiX4Lit4LiU4Lit4Liy4Lil4Lix4LiiCivguJfguYjguK3guJbguYnguK3guKIKK+C4l+C5ieC4reC4luC4reC4ogor4LiX4LmJ4Lit4LiW4LmJ4Lit4LiiCivguJfguYnguK3guYHguJfguYkKK+C4l+C4reC4mQor4LiX4LmI4Lit4LiZCivguJfguK3guJnguIvguLTguKUKK+C4l+C4reC4n+C4n+C4teC5iAor4LiX4LmI4Lit4Lih4LmGCivguJfguK3guKIKK+C4l+C4reC4ouC4geC4reC4hwor4LiX4Lit4LmA4Lij4Li14Lii4LihCivguJfguK3guYHguKrguIcKK+C4l+C4reC4q+C4ueC4gQor4LiX4LmI4Lit4LmE4Lit4LmA4Liq4Li14LiiCivguJfguLAKK+C4l+C4sOC4h+C4seC4mQor4LiX4Liw4LiX4Lix4LiUCivguJfguLDguJfguLIKK+C4l+C4sOC4l+C4suC4ogor4LiX4Liw4LiX4LmI4Liy4LinCivguJfguLDguJfguYnguLLguKcKK+C4l+C4sOC4l+C4tuC4gQor4LiX4Liw4LmA4LiX4Li14Lii4LiUCivguJfguLDguJnguIcKK+C4l+C4sOC4meC4h+C4leC4seC4pwor4LiX4Liw4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMCivguJfguLDguJnguJkKK+C4l+C4sOC4meC4sAor4LiX4Liw4LiZ4LiyCivguJfguLDguJnguLLguJkKK+C4l+C4sOC4meC4suC4meC4q+C4peC4p+C4hwor4LiX4Liw4LiZ4Li4CivguJfguLDguJnguLjguIEKK+C4l+C4sOC4meC4uOC4geC4luC4meC4reC4oQor4LiX4Liw4LiZ4Li44LiW4LiZ4Lit4LihCivguJfguLDguJnguLjguJrguLPguKPguLjguIcKK+C4l+C4sOC4muC4uQor4LiX4Liw4LmA4Lia4Li14Lii4LiZCivguJfguLDguYDguJrguLXguKLguJnguJrguYnguLLguJkKK+C4l+C4sOC5gOC4muC4teC4ouC4meC4o+C4suC4qeC4juC4owor4LiX4Liw4LmA4Lia4Li14Lii4LiZ4Liq4Liz4Lih4Liw4LmC4LiZ4LiE4Lij4Lix4LinCivguJfguLDguKHguLHguJTguJfguLDguYHguKHguIcKK+C4l+C4sOC4oeC4tuC4mQor4LiX4Liw4Lih4Li34LmI4LiZCivguJfguLDguYHguKHguYjguIcKK+C4l+C4sOC5geC4oeC5iOC4h+C5hgor4LiX4Liw4Lii4Liy4LiX4Liw4LmB4Lii4LmB4LiqCivguJfguLDguKLguLLguJkKK+C4l+C4sOC4ouC4suC4meC5g+C4iAor4LiX4Liw4Lii4Liy4LiZ4Lit4Lii4Liy4LiBCivguJfguLDguYDguKLguK3guJfguLDguKLguLLguJkKK+C4l+C4sOC5geC4ogor4LiX4Liw4LmB4Lii4Liq4Liy4Lih4LiK4Lix4LmJ4LiZCivguJfguLDguKPguYjguK3guJfguLDguYHguKPguYgKK+C4l+C4sOC4peC4p+C4hwor4LiX4Liw4Lil4Lit4LiBCivguJfguLDguKXguLHguIEKK+C4l+C4sOC4peC4seC4geC4l+C4sOC5geC4peC4hwor4LiX4Liw4Lil4Liy4LiiCivguJfguLDguKXguLTguYjguJkKK+C4l+C4sOC4peC4tOC5iOC4meC4iuC4o+C4sOC4peC4seC5iOC4hwor4LiX4Liw4Lil4Li24LmI4LiHCivguJfguLDguKXguLbguYjguIfguJfguLDguKXguLHguYjguIcKK+C4l+C4sOC4peC4uAor4LiX4Liw4Lil4Li44LiB4Lil4Liy4LiH4Lib4Lil4LmJ4Lit4LiHCivguJfguLDguKXguLjguJTguJfguLDguKXguLLguJQKK+C4l+C4sOC4peC4uOC4m+C4o+C4uOC5guC4m+C4o+C5iOC4hwor4LiX4Liw4LmA4LilCivguJfguLDguYDguKXguJfguKPguLLguKIKK+C4l+C4sOC5gOC4peC5ieC4mQor4LiX4Liw4LmA4Lil4LmD4LiZCivguJfguLDguYDguKXguJrguYnguLIKK+C4l+C4sOC5gOC4peC4oOC4suC4ouC5g+C4mQor4LiX4Liw4LmA4Lil4Liq4Liy4LiaCivguJfguLDguYDguKXguKvguJnguYnguLLguYPguJkKK+C4l+C4sOC5gOC4peC4q+C4peC4p+C4hwor4LiX4Liw4LmA4Lil4LmE4Lir4Lil4LmI4LiX4Lin4Li14LibCivguJfguLDguYDguKXguYjguK3guJfguLDguKXguYjguLIKK+C4l+C4sOC5gOC4peC4reC4suC4k+C4suC5gOC4guC4lQor4LiX4Liw4LmA4Lil4Liy4LiwCivguJfguLDguYDguKXguLLguLDguYDguJrguLLguLDguYHguKfguYnguIcKK+C4l+C4sOC4p+C4suC4ogor4LiX4Liw4LmA4Lin4LiZCivguJfguLHguIEKK+C4l+C4seC4geC4guC5jAor4LiX4Lix4LiB4LiC4Li04LiNCivguJfguLHguIHguILguLTguJMKK+C4l+C4seC4geC4guC4tOC4k+C4sgor4LiX4Lix4LiB4LiC4Li04LiT4Liy4Lia4LiWCivguJfguLHguIHguILguLTguJPguLLguKfguLHguI8KK+C4l+C4seC4geC4guC4tOC5guC4k+C4l+C4gQor4LiX4Lix4LiB4LiC4Li04LmE4LiT4Lii4Lia4Li44LiE4LiE4LilCivguJfguLHguIHguJfguYnguKfguIcKK+C4l+C4seC4geC4l+C4suC4ogor4LiX4Lix4LiB4LiX4Li04LiZCivguJfguLHguIHguJnguLTguKHguLTguJUKK+C4l+C4seC4geC4qS0KK+C4l+C4seC4geC4qeC4sAor4LiX4Lix4LiB4Lip4LiyCivguJfguLHguIHguKnguLTguJMKK+C4l+C4seC4geC4qeC4tOC4k+C4meC4tOC4geC4suC4ogor4LiX4Lix4LiB4Lip4Li04LiT4LiyCivguJfguLHguIHguKnguLTguJPguLLguIjguLLguKMKK+C4l+C4seC4geC4qeC4tOC4k+C4suC4l+C4suC4mQor4LiX4Lix4LiB4Lip4Li04LiT4Liy4LiZ4Li44Lib4Lij4Liw4LiX4Liy4LiZCivguJfguLHguIHguKnguLTguJPguLLguKLguLHguJkKK+C4l+C4seC4geC4qeC4tOC4k+C4suC4p+C4o+C4o+C4lQor4LiX4Lix4LiB4Lip4Li04LmC4LiT4LiX4LiBCivguJfguLHguITguJjguYwKK+C4l+C4seC4hwor4LiX4Lix4LmI4LiHCivguJfguLHguYnguIcKK+C4l+C4seC5ieC4hy4uLuC4geC4seC4mgor4LiX4Lix4LmJ4LiH4LiC4Li24LmJ4LiZ4LiX4Lix4LmJ4LiH4Lil4LmI4Lit4LiHCivguJfguLHguYnguIfguITguJkKK+C4l+C4seC5ieC4h+C4lOC4uOC5ieC4mQor4LiX4Lix4LmJ4LiHLi4u4LiX4Lix4LmJ4LiHCivguJfguLHguYnguIfguJfguLUKK+C4l+C4seC5ieC4h+C4l+C4teC5iAor4LiX4Lix4LmJ4LiH4LmGIOC4l+C4teC5iAor4LiX4Lix4LmJ4LiH4LiZ4Lix4LmJ4LiZCivguJfguLHguYnguIfguJnguLXguYkKK+C4l+C4seC5ieC4h+C4meC4teC5ieC4l+C4seC5ieC4h+C4meC4seC5ieC4mQor4LiX4Lix4LmJ4LiH4LmA4LiZ4Li34LmJ4Lit4LiX4Lix4LmJ4LiH4LiV4Lix4LinCivguJfguLHguYnguIfguJvguKfguIcKK+C4l+C4seC5ieC4h+C4nOC4reC4hwor4LiX4Lix4LmJ4LiH4LmA4LieCivguJfguLHguYnguIfguKHguKfguKUKK+C4l+C4seC5ieC4hy4uLuC5geC4peC4sAor4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKfguLXguYnguJfguLHguIfguKfguKUKK+C4l+C4seC4h+C4quC5gOC4leC4mQor4LiX4Lix4LmJ4LiH4Liq4Li04LmJ4LiZCivguJfguLHguYnguIfguKvguKHguJQKK+C4l+C4seC5ieC4h+C4q+C4peC4suC4ogor4LiX4Lix4LmJ4LiH4Lit4Lii4LmI4Liy4LiH4LiZ4Lix4LmJ4LiZCivguJfguLHguJPguJEtCivguJfguLHguJPguJHguYwKK+C4l+C4seC4k+C4keC4geC4o+C4o+C4oQor4LiX4Lix4LiT4LiR4LiG4Liy4LiVCivguJfguLHguJPguJHguJnguLTguITguKEKK+C4l+C4seC4k+C4keC5jOC4muC4mQor4LiX4Lix4LiT4LiR4Lin4Li04LiX4Lii4LiyCivguJfguLHguJPguJHguKrguJbguLLguJkKK+C4l+C4seC4k+C4keC4sAor4LiX4Lix4LiT4LiR4Li04LiB4LiyCivguJfguLHguJPguJHguLTguKHguLIKK+C4l+C4seC4k+C4keC4teC4muC4lwor4LiX4Lix4LiUCivguJfguLHguJTguJTguK3guIHguYTguKHguYkKK+C4l+C4seC4lOC4l+C4sgor4LiX4Lix4LiU4LiX4Liy4LiZCivguJfguLHguJTguYDguJfguLXguKLguKEKKy3guJfguLHguJUKK+C4l+C4seC4mQor4LiX4Lix4LiZ4LiB4Li04LiZCivguJfguLHguJnguITguKfguLHguJkKK+C4l+C4seC4meC5g+C4iAor4LiX4Lix4LiZ4LmD4LiUCivguJfguLHguJnguJUtCivguJfguLHguJnguJXguYwKK+C4l+C4seC4meC4leC4iuC4sAor4LiX4Lix4LiZ4LiV4LmB4Lie4LiX4Lii4LmMCivguJfguLHguJnguJXguLIKK+C4l+C4seC4meC4leC4tOC4mQor4LiX4Lix4LiZ4LiV4Li1CivguJfguLHguJnguJfguYjguKfguIfguJfguLUKK+C4l+C4seC4meC4l+C4tQor4LiX4Lix4LiZ4LiY4LmMCivguJfguLHguJnguJnguYnguLMKK+C4l+C4seC4meC4meC5ieC4s+C4l+C4seC4meC4neC4mQor4LiX4Lix4LiZ4Liq4Lih4Lix4LiiCivguJfguLHguJoKK+C4l+C4seC4muC5gOC4geC4qeC4leC4owor4LiX4Lix4Lia4LiW4LihCivguJfguLHguJrguJfguKPguKfguIcKK+C4l+C4seC4muC4l+C4suC4hwor4LiX4Lix4Lia4LiX4Liy4LiH4LiC4Liy4LinCivguJfguLHguJrguJfguLTguKEKK+C4l+C4seC4muC4l+C4teC5iAor4LiX4Lix4Lia4LmB4LieCivguJfguLHguJrguKXguLHguITguJnguYwKK+C4l+C4seC4muC5gOC4peC5h+C4gQor4LiX4Lix4Lia4Lio4Lix4Lie4LiX4LmMCivguJfguLHguJrguKrguKHguLTguIfguITguKXguLIKK+C4l+C4seC4muC4quC4tOC4l+C4mOC4tOC5jAor4LiX4Lix4Lia4Lir4Lil4Lix4LiHCivguJfguLHguJrguKvguKXguLHguIfguKXguLHguITguJnguYwKK+C4l+C4seC4mwor4LiX4Lix4Lib4LiZCivguJfguLHguJ4KK+C4l+C4seC4nuC4nuC4sAor4LiX4Lix4Lie4Lie4Li1CivguJfguLHguJ7guKrguLHguKHguKDguLLguKPguLAKK+C4l+C4seC5iOC4pwor4LiX4Lix4LmI4Lin4LiW4Li24LiHCivguJfguLHguYjguKfguJfguLjguIHguKrguLLguKPguJfguLTguKgKK+C4l+C4seC5iOC4p+C4l+C4uOC4geC4q+C4seC4p+C4o+C4sOC5geC4q+C4hwor4LiX4Lix4LmI4Lin4LmE4LibCivguJfguLHguYjguKfguYYg4LmE4LibCivguJfguLHguKgKK+C4l+C4seC4qOC4mS0KK+C4l+C4seC4qOC4meC5jAor4LiX4Lix4Lio4LiZ4LiE4LiV4Li0CivguJfguLHguKjguJnguKfguLTguKrguLHguKIKK+C4l+C4seC4qOC4meC4qOC4suC4quC4leC4o+C5jAor4LiX4Lix4Lio4LiZ4Lio4Li24LiB4Lip4LiyCivguJfguLHguKjguJnguLAKK+C4l+C4seC4qOC4meC4sgor4LiX4Lix4Lio4LiZ4Liy4LiB4Liy4LijCivguJfguLHguKjguJnguLLguIjguKMKK+C4l+C4seC4qOC4meC4teC4oi0KK+C4l+C4seC4qOC4meC4teC4ouC5jAor4LiX4Lix4Lio4LiZ4Li14Lii4Lig4Liy4LieCivguJfguLHguKjguJnguLnguJvguIHguKPguJPguYwKK+C4l+C4seC4qOC5hOC4meC4ogor4LiX4Lix4Liq4LiZ4Liy4LiZ4Li44LiV4Lij4Li04Lii4LiwCivguJfguLHguKzguKsKK+C4l+C4seC4rOC4q+C4tAor4LiX4Lix4Lis4Lir4Li04LiB4Lij4LiT4LmMCivguJfguLHguKzguKvguLUKK+C4l+C4seC4rOC4q+C4teC4geC4o+C4o+C4oQor4LiX4LiyCivguJfguYjguLIKK+C4l+C5ieC4sgor4LiX4Liy4LiBCivguJfguLLguIcKK+C4l+C5ieC4suC4hwor4LiX4Liy4LiH4LiB4Liy4LijCivguJfguLLguIfguYDguIHguYfguJoKK+C4l+C4suC4h+C4guC5ieC4suC4oQor4LiX4Liy4LiH4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguJfguLLguIfguJTguYjguKfguJkKK+C4l+C4suC4h+C5gOC4l+C5ieC4sgor4LiX4Liy4LiH4LmC4LiXCivguJfguLLguIfguYPguJkKK+C4l+C4suC4h+C4nOC5iOC4suC4mQor4LiX4Liy4LiH4Lie4Li04LmA4Lio4LipCivguJfguLLguIfguKHguLDguJ7guKPguYnguLLguKcKK+C4l+C4suC4h+C4oeC5ieC4suC4peC4suC4ogor4LiX4Liy4LiH4Liq4Liy4LiY4Liy4Lij4LiT4LiwCivguJfguLLguIfguKvguKXguKfguIcKK+C4l+C4suC4h+C4reC4reC4gQor4LiX4Liy4LiH4LmA4Lit4LiBCivguJfguLLguJDguLAKK+C4l+C4suC4kOC4tOC4geC4sAor4LiX4Liy4LiS4LiwCivguJfguLLguJLguLTguIHguLAKK+C4l+C5iOC4suC4lOC4teC4l+C4teC5gOC4q+C4peC4pwor4LiX4LmI4Liy4LmA4LiU4Li14Lii4LinCivguJfguYjguLLguJfguLLguIcKK+C4l+C5ieC4suC4l+C4suC4ogor4LiX4LmI4Liy4LiX4Li1CivguJfguLLguJkKK+C4l+C4suC4mS0KK+C4l+C5iOC4suC4mQor4LiX4Liy4LiZ4LiB4Lix4LiT4LiR4LmMCivguJfguYjguLLguJnguIrguLLguKIKK+C4l+C4suC4meC4leC5jAor4LiX4Liy4LiZ4LiV4Liw4Lin4Lix4LiZCivguJfguLLguJnguJrguJTguLUKK+C4l+C4suC4meC4muC4suC4o+C4oeC4tQor4LiX4LmI4Liy4LiZ4Lic4Li54LmJ4Lir4LiN4Li04LiHCivguJfguLLguJnguJ4KK+C4l+C4suC4meC4oeC4seC4ogor4LiX4Liy4LiZ4Lio4Li14LilCivguJfguYjguLLguJnguKvguI3guLTguIcKK+C4l+C5iOC4suC4meC4seC5ieC4meC4l+C5iOC4suC4meC4teC5iQor4LiX4Liy4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJfguLLguJoKK+C4l+C4suC4muC4l+C4suC4oQor4LiX4Liy4LihCivguJfguYjguLLguKHguIHguKXguLLguIcKK+C4l+C4suC4ogor4LiX4LmJ4Liy4LiiCivguJfguLLguKLguIEKK+C4l+C5ieC4suC4ouC5gOC4guC4t+C5iOC4reC4mQor4LiX4LmJ4Liy4Lii4LiE4Lij4Lix4LinCivguJfguYnguLLguKLguYLguJXguYjguIcKK+C4l+C5ieC4suC4ouC4l+C4reC4ogor4LiX4LmJ4Liy4Lii4LiZ4LmJ4LizCivguJfguYnguLLguKLguJ3guJkKK+C4l+C4suC4ouC4seC4igor4LiX4Liy4Lii4LiyCivguJfguLLguKLguLLguJQKK+C4l+C4suC4ouC4suC4lwor4LiX4Liy4Lii4Liy4LiX4LmC4LiU4Lii4LiY4Lij4Lij4LihCivguJfguLLguKMtCivguJfguLLguKPguIEKK+C4l+C4suC4o+C4nuC4tQor4LiX4Liy4Lij4Li04LiB4LiyCivguJfguLLguKPguLgKK+C4l+C4suC4o+C4uOC4kwor4LiX4Liy4Lij4Li44LiTLQor4LiX4Liy4Lij4Li44LiT4LiB4Lij4Lij4LihCivguJfguYjguLLguYDguKPguLfguK0KK+C4l+C4suC4pwor4LiX4LmI4Liy4LinCivguJfguYnguLLguKcKK+C4l+C5iOC4suC4p+C4geC4s+C4peC4seC4hwor4LiX4LmI4Liy4Lin4LiX4Lia4Lij4Liw4LiZ4Lix4LiaCivguJfguYnguLLguKfguJnguLLguIcKK+C4l+C5ieC4suC4p+C4nuC4jeC4sgor4LiX4LmJ4Liy4Lin4Lie4Lij4Liw4Lii4LiyCivguJfguLLguKkKK+C4l+C4suC4qgor4LiX4Liy4LiqLQor4LiX4Liy4Liq4LiX4Liy4LiZCivguJfguLLguKrguJvguLHguI3guI3guLIKK+C4l+C4suC4quC4tQor4LiX4LmI4Liy4Lit4Liy4LiB4Liy4Lio4Lii4Liy4LiZCivguJfguLMKK+C4l+C4s+C4geC4o+C4o+C4oQor4LiX4Liz4LiB4Liy4Lij4Lia4LmJ4Liy4LiZCivguJfguLPguILguKfguLHguI0KK+C4l+C4s+C4hOC4o+C4seC4pwor4LiX4Liz4LiE4Lil4Lit4LiUCivguJfguLPguITguKfguLLguKEKK+C4l+C4s+C4hOC4uOC4kwor4LiX4Liz4LiE4Li44LiT4Lia4Li54LiK4Liy4LmC4LiX4LipCivguJfguLPguIfguJkKK+C4l+C4s+C5gOC4iOC5h+C4mgor4LiX4Liz4LmD4LiICivguJfguLPguYTguJTguYkKK+C4l+C4s+C5hOC4lOC5ieC4peC4h+C4hOC4rQor4LiX4Liz4LiV4Lix4LinCivguJfguLPguJXguLIKK+C4l+C4s+C4l+C5iOC4sgor4LiX4Liz4LiX4Li1CivguJfguLPguYHguJfguYnguIcKK+C4l+C4s+C5guC4l+C4qQor4LiX4Liz4LiZ4LiaCivguJfguLPguJnguKfguKIKK+C4l+C4s+C4meC4reC4hwor4LiX4Liz4LiZ4Lit4LiH4LmA4Liq4LiZ4Liy4LiwCivguJfguLPguJnguLLguJrguJnguKvguKXguLHguIfguITguJkKK+C4l+C4s+C4meC4suC4ogor4LiX4Liz4LiZ4Liy4Lit4Lit4Lih4LiB4Lil4LmJ4LiyIOC4l+C4s+C4m+C4peC4suC4reC4reC4oeC5gOC4geC4peC4t+C4rQor4LiX4Liz4LiZ4Li4CivguJfguLPguJnguLjguJrguLPguKPguLjguIcKK+C4l+C4s+C4meC4ueC4pQor4LiX4Liz4LmA4LiZ4LiyCivguJfguLPguYDguJnguLXguKLguJoKK+C4l+C4s+C5gOC4meC4teC4ouC4muC4l+C5iOC4suC5gOC4o+C4t+C4rQor4LiX4Liz4LmA4LiZ4Li14Lii4Lia4LiZ4Liy4LihCivguJfguLPguYDguJnguLXguKLguKEKK+C4l+C4s+C4muC4suC4mwor4LiX4Liz4Lia4Li44LiNCivguJfguLPguJrguLjguI3guYDguK3guLLguKvguJnguYnguLIKK+C4l+C4s+C4m+C4peC4sgor4LiX4Liz4Lib4Liy4LiB4LiX4Liz4LiE4LitCivguJfguLPguYDguJvguYfguJkKK+C4l+C4s+C5hOC4m+C4l+C4s+C4oeC4sgor4LiX4Liz4Lie4Li04LipCivguJfguLPguYTguJ7guYgKK+C4l+C4s+C4n+C4seC4mQor4LiX4Liz4LmE4LifCivguJfguLPguKHguLHguIcKK+C4l+C4s+C5hOC4oQor4LiX4Liz4Lij4LmJ4Liy4LiiCivguJfguLPguKTguJfguJjguLTguYwKK+C4l+C4s+C4peC4suC4ogor4LiX4Liz4Lil4Liy4Lii4LiC4Lin4Lix4LiNCivguJfguLPguKXguLLguKLguKrguJbguLTguJXguLQKK+C4l+C4s+C4peC4tOC4hwor4LiX4Liz4LmA4LilCivguJfguLPguKfguJkKK+C4l+C4s+C4p+C4seC4leC4owor4LiX4Liz4Lin4Lix4LiV4Lij4LiE4LmI4LizCivguJfguLPguKfguLHguJXguKPguYDguIrguYnguLIKK+C4l+C4s+C5gOC4p+C4owor4LiX4Liz4LmA4Lin4Lil4LiyCivguJfguLPguKrguLLguKcKK+C4l+C4s+C5gOC4quC4meC5iOC4q+C5jAor4LiX4Liz4LmA4Liq4Li14Lii4LmA4LiI4LmH4LiaCivguJfguLPguKvguJnguYnguLLguJfguLPguJXguLIKK+C4l+C4s+C4q+C4oeC4seC4mQor4LiX4Liz4Lir4Li54LiX4Lin4LiZ4Lil4LihCivguJfguLPguYDguKvguJXguLgKK+C4l+C4s+C5g+C4q+C5iQor4LiX4Liz4LmA4Lit4LiyCivguJfguLPguYDguK3guLLguYDguIjguYfguJoKK+C4l+C4tOC4hOC4seC4oeC4nuC4owor4LiX4Li04LiG4Lix4Lih4Lie4LijCivguJfguLTguYnguIcKK+C4l+C4tOC5ieC4h+C4geC4o+C4sOC4iOC4suC4lAor4LiX4Li04LmJ4LiH4LiC4Lin4LmJ4Liy4LiHCivguJfguLTguYnguIfguYYg4LiC4Lin4LmJ4Liy4LiH4LmGCivguJfguLTguYnguIfguIjguJTguKvguKHguLLguKIKK+C4l+C4tOC4h+C5gOC4iOC4reC4o+C5jAor4LiX4Li04LmJ4LiH4LiW4LmI4Lit4LiZCivguJfguLTguYnguIfguJfguKfguJkKK+C4l+C4tOC5ieC4h+C4l+C4suC4mQor4LiX4Li04LmJ4LiH4LiX4LmJ4Liy4LiiCivguJfguLTguYnguIfguJfguLnguJQKK+C4l+C4tOC5ieC4h+C5hOC4nuC5iAor4LiX4Li04LmJ4LiH4Lif4LmJ4Lit4LiHCivguJfguLTguYnguIfguKHguLDguJ7guKPguYnguLLguKfguKvguYnguLLguKcKK+C4l+C4tOC5ieC4h+C4ouC5iOC4rQor4LiX4Li04LiKCivguJfguLTguIotCivguJfguLTguIrguLLguIHguKMKK+C4l+C4tOC4j+C4kOC4sAor4LiX4Li04LiP4LiQ4Liy4LiZ4Li44LiE4LiV4Li0CivguJfguLTguI/guJDguLjguIrguLjguIHguKPguKPguKEKK+C4l+C4tOC4kC0KK+C4l+C4tOC4kOC4mOC4o+C4o+C4oQor4LiX4Li04LiQ4Li0CivguJfguLTguJQKK+C4l+C4tOC4lQor4LiX4Li04LiZCivguJfguLTguJktCivguJfguLTguJnguIHguKMKK+C4l+C4tOC4meC4qOC4ueC4meC4ouC5jAor4LiX4Li04LiZ4Liy4LiXCivguJfguLTguJ4KK+C4l+C4tOC4ni0KK+C4l+C4tOC4nuC4oi0KK+C4l+C4tOC4nuC4ouC5jAor4LiX4Li04Lie4Lii4LiI4Lix4LiB4Lip4Li4CivguJfguLTguJ7guKLguIjguLHguIHguKnguLjguI3guLLguJMKK+C4l+C4tOC4nuC4ouC4jeC4suC4kwor4LiX4Li04Lie4Lii4LmA4LiZ4LiV4LijCivguJfguLTguJ7guKLguJ7guKLguLLguJkKK+C4l+C4tOC4nuC4ouC4oeC4suC4meC4uOC4qQor4LiX4Li04Lie4Lii4Lij4LiqCivguJfguLTguJ7guKLguYLguKjguKPguJXguKMKK+C4l+C4tOC4nuC5guC4quC4lQor4LiX4Li04Lie4LiyCivguJfguLTguJ7guLLguIHguKMKK+C4l+C4tOC4oQor4LiX4Li04LmI4LihCivguJfguLTguKHguJTguLLguJoKK+C4l+C4tOC5iOC4oeC4leC4swor4LiX4Li04Lih4LiX4Lit4LiHCivguJfguLTguYjguKHguYHguJfguIcKK+C4l+C4tOC4pwor4LiX4Li04LinLQor4LiX4Li04Lin4LiB4Liy4LilCivguJfguLTguKfguIfguITguJUKK+C4l+C4tOC4p+C4l+C4seC4qOC4meC5jAor4LiX4Li04Lin4LiqLQor4LiX4Li04Lin4Liq4Lig4Liy4LiECivguJfguLTguKfguKrguLAKK+C4l+C4tOC4p+C4sgor4LiX4Li04Lin4Liy4LiB4LijCivguJfguLTguKfguLLguIHguLLguKUKK+C4l+C4tOC4qAor4LiX4Li04Lio4LiX4Liy4LiHCivguJfguLTguKjguLIKK+C4l+C4tOC4qOC4suC4lOC4owor4LiX4Li04Lio4Liy4LiZ4Li44LiX4Li04LioCivguJfguLTguKjguLLguJvguLLguYLguKHguIHguILguYwKK+C4l+C4tQor4LiX4Li14LmICivguJfguLXguYjguIHguLHguKXguJvguJnguLIKK+C4l+C4teC5g+C4hOC4o+C4l+C4teC4oeC4seC4mQor4LiX4Li14LiGLQor4LiX4Li14LiG4LiK4Liy4LiV4Li0CivguJfguLXguIbguJnguLTguIHguLLguKIKK+C4l+C4teC4huC4quC4o+C4sAor4LiX4Li14LiG4Liy4Lii4Li4CivguJfguLXguYjguIjguKPguLTguIcKK+C4l+C4teC5iOC4lOC4tOC4mQor4LiX4Li14LmI4LiU4Li04LiZ4Lih4Li34Lit4LmA4Lib4Lil4LmI4LiyCivguJfguLXguYDguJTguYfguJQKK+C4l+C4teC5gOC4lOC4teC4ouC4pwor4LiX4Li14LiX4LmI4LiyCivguJfguLXguYjguJfguLLguIcKK+C4l+C4teC5iOC4l+C4s+C4geC4suC4owor4LiX4Li14LmI4LmA4LiX4LmI4Liy4LmB4Lih4Lin4LiU4Li04LmJ4LiZ4LiV4Liy4LiiCivguJfguLXguYjguYHguJfguYkKK+C4l+C4teC5iOC4mOC4o+C4k+C4teC4quC4h+C4huC5jAor4LiX4Li14LmI4LiZ4Lit4LiZCivguJfguLXguYjguJnguLHguYjguIcKK+C4l+C4teC4meC4teC5iQor4LiX4Li14LibCivguJfguLXguYjguJ7guLbguYjguIcKK+C4l+C4teC4oQor4LiX4Li14LmI4Lih4Lix4LmI4LiZCivguJfguLXguYjguKHguLIKK+C4l+C4teC4o+C4hi0KK+C4l+C4teC5iOC4o+C4seC4gQor4LiX4Li14LmI4Lij4Liy4LiaCivguJfguLXguYjguKPguLLguJrguKrguLnguIcKK+C4l+C4teC5gOC4peC5iOC4meC4l+C4teC4iOC4o+C4tOC4hwor4LiX4Li14LmI4Lin4Lix4LiUCivguJfguLXguYjguKfguYjguLLguIHguLLguKMKK+C4l+C4teC5iOC4quC4uOC4lAor4LiX4Li14LmI4Lir4Lih4Liy4LiiCivguJfguLXguKvguKXguLHguIcKK+C4l+C4teC5iOC5hOC4q+C4mQor4LiX4Li14LmI4LmE4Lir4LiZ4LmE4LiU4LmJCivguJfguLXguYDguK3guYfguJnguJfguLUKK+C4l+C4tuC4gQor4LiX4Li24LiB4LiX4Lix4LiBCivguJfguLbguYjguIcKK+C4l+C4tuC5ieC4hwor4LiX4Li24LiU4LiX4Li34LitCivguJfguLbguJnguJfguLbguIEKK+C4l+C4tuC4mgor4LiX4Li24LihCivguJfguLbguKHguYYKK+C4l+C4tuC5iOC4oQor4LiX4Li34LmI4LitCivguJfguLgKK+C4l+C4uOC4gQor4LiX4Li44LiB4LmGCivguJfguLjguIHguIItCivguJfguLjguIHguILguYwKK+C4l+C4uOC4geC4guC4meC4tOC5guC4o+C4mAor4LiX4Li44LiB4LiC4Lil4Liy4LigCivguJfguLjguIHguILguYDguKfguJfguJnguLIKK+C4l+C4uOC4geC4guC4quC4oeC4uOC4l+C4seC4ogor4LiX4Li44LiB4LiC4LmM4Liq4Li44LiCCivguJfguLjguIHguILguLHguIHguKnguLHguKIKK+C4l+C4uOC4geC4guC4suC4o+C4oeC4k+C5jAor4LiX4Li44LiB4LiPCivguJfguLjguIHguJfguLUKK+C4l+C4uOC4geC4meC4tOC4muC4suC4lQor4LiX4Li44LiB4Lie4Liy4LiiCivguJfguLjguIHguYDguKHguLfguYjguK0KK+C4l+C4uOC4geC5gOC4oeC4t+C5iOC4reC5gOC4iuC4t+C5iOC4reC4p+C4seC4mQor4LiX4Li44LiB4LijLQor4LiX4Li44LiB4Lij4LiB4Li04Lij4Li04Lii4LiyCivguJfguLjguIHguKfguLHguJnguJnguLXguYkKK+C4l+C4uOC4geC4qeC4lOC4owor4LiX4Li44LiB4Liq4Li04LmI4LiH4LiX4Li44LiB4Lit4Lii4LmI4Liy4LiHCivguJfguLjguIHguKvguJkKK+C4l+C4uOC4geC4q+C4meC4l+C4uOC4geC5geC4q+C5iOC4hwor4LiX4Li44LiB4Lir4Lii4LmI4Lit4Lih4Lir4LiN4LmJ4LiyCivguJfguLjguIHguKvguLHguKfguKPguLDguYHguKvguIcKK+C4l+C4uOC4geC5geC4q+C5iOC4hwor4LiX4Li44LiB4LiwCivguJfguLjguIHguLHguIcKK+C4l+C4uOC4geC4ueC4pQor4LiX4Li44LiE4LiV4LiwCivguJfguLjguITguJXguLQKK+C4l+C4uOC5iOC4hwor4LiX4Li44LmJ4LiHCivguJfguLjguIfguIfguLAKK+C4l+C4uOC4h+C5gOC4l+C4hwor4LiX4Li44LiI4LiI4Li04LiT4LiT4LiwCivguJfguLjguIjguKPguLTguJUKK+C4l+C4uOC4lAor4LiX4Li44LiV4Lin4Li04Lil4Lix4Lih4Lie4Li04LiV4Lih4Liy4Lil4LiyCivguJfguLjguJXguLTguKItCivguJfguLjguJXguLTguKLguLLguKrguLLguKzguKsKK+C4l+C4uOC4l+C4o+C4o+C4qOC4meC4meC4tOC4ouC4oQor4LiX4Li44LiZCivguJfguLjguYjguJkKK+C4l+C4uOC4meC4iOC4lOC4l+C4sOC5gOC4muC4teC4ouC4mQor4LiX4Li44LiZ4LiX4Lij4Lix4Lie4Lii4LmMCivguJfguLjguJnguJnguK3guJkKK+C4l+C4uOC4meC4meC4tOC4oeC4tOC4lQor4LiX4Li44LiZ4LiZ4Li04Lii4LihCivguJfguLjguYjguJnguYDguJrguYfguJQKK+C4l+C4uOC4meC4o+C4reC4mQor4LiX4Li44LmI4LiZ4Lij4Liw4LmA4Lia4Li04LiUCivguJfguLjguJnguYDguKPguLfguK3guJnguKvguLjguYnguJkKK+C4l+C4uOC4meC4quC4s+C4o+C4reC4hwor4LiX4Li44LiZ4Liq4Liz4Lij4Lit4LiH4LmA4LiH4Li04LiZ4LiV4Lij4LiyCivguJfguLjguJnguKvguKHguLjguJnguYDguKfguLXguKLguJkKK+C4l+C4uOC5iOC4meC4reC4p+C4mQor4LiX4Li44LiZ4Li04Lii4LihCivguJfguLjguJoKK+C4l+C4uOC4muC4leC4tQor4LiX4Li44Lia4LiX4Li5CivguJfguLjguJrguKvguKHguYnguK3guILguYnguLLguKcKK+C4l+C4uOC4m+C4m+C4seC4jeC4jeC4sgor4LiX4Li44Lie4Lie4Lij4Lij4LiTCivguJfguLjguJ7guJ7guKUKK+C4l+C4uOC4nuC4nuC4peC4oOC4suC4ngor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lig4Lix4LiiCivguJfguLjguJ7guKDguLTguIHguILguLHguJnguJTguKPguIHguLHguJsKK+C4l+C4uOC4oQor4LiX4Li44LihLQor4LiX4Li44LmI4LihCivguJfguLjguYnguKEKK+C4l+C4uOC5iOC4oeC4leC4peC4suC4lAor4LiX4Li44LmI4Lih4LmA4LiW4Li14Lii4LiHCivguJfguLjguYjguKHguYDguJcKK+C4l+C4uOC4oeC5guC4mQor4LiX4Li44Lih4Lij4Liy4LiK4LiyCivguJfguLjguKIKK+C4l+C4uOC5ieC4ogor4LiX4Li44LijLQor4LiX4Li44Lij4LiB4Lix4LiZ4LiU4Liy4LijCivguJfguLjguKPguITguKEKK+C4l+C4uOC4o+C4iuC4mQor4LiX4Li44Lij4LiK4Liy4LiV4Li0CivguJfguLjguKPguJkKK+C4l+C4uOC4o+C4meC4l+C4uOC4o+C4suC4ogor4LiX4Li44Lij4Lie4LilCivguJfguLjguKPguKDguLTguIHguKnguYwKK+C4l+C4uOC4o+C4peC4seC4geC4qeC4k+C5jAor4LiX4Li44Lij4Lix4LiW4Lii4LiyCivguJfguLjguKPguLHguKgKK+C4l+C4uOC4o+C4suC4hOC4oQor4LiX4Li44Lij4Liy4LiI4Liy4LijCivguJfguLjguKPguLLguJjguKfguLIKK+C4l+C4uOC5gOC4o+C4qAor4LiX4Li44LmA4Lij4Li14Lii4LiZCivguJfguLjguYDguKPguLXguKLguJnguYHguILguIEKK+C4l+C4uOC5gOC4o+C4teC4ouC4meC5gOC4l+C4qAor4LiX4Li44Lil4Lix4LiB4LiX4Li44LmA4LilCivguJfguLjguYDguKXguLIKK+C4l+C4uOC4p+C4tOC4mAor4LiX4Li44Lio4Li14LilCivguJfguLjguKnguJAtCivguJfguLjguKotCivguJfguLjguKrguKrguLAKK+C4l+C4uOC4quC4quC4teC4pQor4LiX4Li5CivguJfguLnguYgKK+C4l+C4ueC5iQor4LiX4Li54LiB4Lix4LiHCivguJfguLnguYjguIvguLXguYkKK+C4l+C4ueC4lQor4LiX4Li54LiV4Liy4LiZ4Li44LiX4Li54LiVCivguJfguLnguJkKK+C4l+C4ueC4meC5ieC4s+C4iOC4t+C4lAor4LiX4Li54LiaCivguJfguLnguKEKK+C4l+C4ueC4oeC4l+C4suC4oQor4LiX4Li54LmC4Lih4LmI4LiHCivguJfguLnguKMtCivguJfguLnguKUKK+C4l+C4ueC4peC4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4LiX4Li54Lil4LmA4LiB4Lil4LmJ4Liy4LiX4Li54Lil4LiB4Lij4Liw4Lir4Lih4LmI4Lit4Lih4LiW4Lin4Liy4LiiCivguJfguLnguYDguKXguLXguKLguKEKK+C4l+C4ueC4qeC4gQor4LmA4LiXCivguYDguJfguYgKK+C5gOC4l+C4geC4o+C4sOC4iOC4suC4lAor4LmA4LiX4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguYDguJfguITguJnguLTguIQKK+C5gOC4l+C4hOC4meC4teC5gOC4iuC4teC4ouC4oQor4LmA4LiX4LiE4LmC4LiZ4LmC4Lil4Lii4Li1CivguYDguJfguITguKPguLHguKcKK+C5gOC4l+C4hOC4reC4meC4geC4o+C4teC4lQor4LmA4LiX4LiHCivguYDguJfguYnguIcKK+C5gOC4l+C5ieC4h+C5gOC4leC5ieC4hwor4LmA4LiX4LmJ4LiH4LiX4Li54LiUCivguYDguJfguYfguIgKK+C5gOC4l+C5h+C4iOC4iOC4o+C4tOC4hwor4LmA4LiX4LmH4LiI4LmA4LiX4Li14Lii4LihCivguYDguJfguJnguJnguLTguKoKK+C5gOC4l+C4meC5ieC4s+C5gOC4l+C4l+C5iOC4sgor4LmA4LiX4Lib4Li54LiZCivguYDguJfguJ4KK+C5gOC4l+C4ni0KK+C5gOC4l+C4nuC4geC4uOC4quC4uOC4oQor4LmA4LiX4Lie4LmA4LiI4LmJ4LiyCivguYDguJfguJ7guIrguLjguKHguJnguLjguKEKK+C5gOC4l+C4nuC4lOC4sgor4LmA4LiX4Lie4LiU4Liz4Lij4Li5CivguYDguJfguJ7guJfguLHguJPguJHguYwKK+C5gOC4l+C4nuC4l+C4suC4o+C4uQor4LmA4LiX4Lie4LiX4Liy4LmC4LijCivguYDguJfguJ7guJjguLTguJTguLIKK+C5gOC4l+C4nuC4meC4oQor4LmA4LiX4Lie4LiZ4Liy4Lij4Li1CivguYDguJfguJ7guJnguLTguKLguKEKK+C5gOC4l+C4nuC4meC4tOC4ouC4suC4ogor4LmA4LiX4Lie4LiZ4Li04Lii4Liy4Lii4Lin4Li04LiX4Lii4LiyCivguYDguJfguJ7guJnguLTguKPguKHguLTguJUKK+C5gOC4l+C4nuC4muC4lOC4tQor4LmA4LiX4Lie4Lia4Lij4Li04Lip4Lix4LiXCivguYDguJfguJ7guJrguLjguJXguKMKK+C5gOC4l+C4nuC4m+C4o+C4sOC4leC4tOC4oeC4sgor4LmA4LiX4Lie4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguYDguJfguJ7guKItCivguYDguJfguJ7guKLguYDguIjguYnguLIKK+C5gOC4l+C4nuC4ouC4lOC4sgor4LmA4LiX4Lie4Lii4Li44LiU4LiyCivguYDguJfguJ7guKrguLHguIfguKvguKPguJPguYwKK+C5gOC4l+C4nuC4sgor4LmA4LiX4Lie4Liy4LiU4Li04LmA4LiX4LieCivguYDguJfguJ7guLLguJjguLTguJrguJTguLUKK+C5gOC4l+C4nuC4suC4o+C4seC4geC4qeC5jAor4LmA4LiX4Lie4Li04LiZCivguYDguJfguJ7guLTguJnguJfguKPguYwKK+C5gOC4l+C4nuC4tQor4LmA4LiX4Lie4Li14Lib4Lix4LiB4Lip4Li1CivguYDguJfguYDguJ7guJnguJfguKPguYwKK+C5gOC4l+C5guC4ngor4LmA4LiX4Lij4Li04LiUCivguYDguJfguKXguKXguLnguYDguKPguLXguKLguKEKK+C5gOC4l+C4py0KK+C5gOC4l+C4p+C4lOC4sgor4LmA4LiX4Lin4LiX4Lix4LiT4LiR4LmMCivguYDguJfguKfguJfguLnguJUKK+C5gOC4l+C4p+C4mOC4o+C4o+C4oQor4LmA4LiX4Lin4LiY4Li04LiU4LiyCivguYDguJfguKfguJnguLAKK+C5gOC4l+C4p+C4meC4suC4hOC4o+C4tQor4LmA4LiX4Lin4LiZ4Li04Lii4LihCivguYDguJfguKfguKDguLLguKfguLAKK+C5gOC4l+C4p+C4o+C4sAor4LmA4LiX4Lin4Lij4Li54LibCivguYDguJfguKfguYLguKXguIEKK+C5gOC4l+C4p+C4p+C4suC4iOC4tOC4geC4sAor4LmA4LiX4Lin4Lin4Li04LiX4Lii4LiyCivguYDguJfguKfguKgKK+C5gOC4l+C4p+C4qQor4LmA4LiX4Lin4Liq4LiW4Liy4LiZCivguYDguJfguKfguKrguLjguITguJnguJjguYwKK+C5gOC4l+C4p+C4rQor4LmA4LiX4Lin4Lix4LiNCivguYDguJfguKfguLHguJkKK+C5gOC4l+C4p+C4suC4hOC4suC4owor4LmA4LiX4Lin4Liy4Lij4Lix4LiT4Lii4LmMCivguYDguJfguKfguLLguKXguLHguKIKK+C5gOC4l+C4p+C4suC4p+C4suC4qgor4LmA4LiX4Lin4Li04LiZ4LiX4Lij4LmMCivguYDguJfguKfguLUKK+C5gOC4l+C5gOC4p+C4meC4l+C4o+C5jAor4LmA4LiX4LmA4Lin4LioCivguYDguJfguYDguKfguKjguKPguYwKK+C5gOC4l+C5gOC4p+C4qOC4p+C4o+C5jAor4LmA4LiX4LioCivguYDguJfguKgtCivguYDguJfguKjguIEKK+C5gOC4l+C4qOC4geC4suC4pQor4LmA4LiX4Lio4LiZ4LmMCivguYDguJfguKjguJnguYzguYHguIjguIcKK+C5gOC4l+C4qOC4meC4sgor4LmA4LiX4Lio4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguYDguJfguKjguJrguLLguKUKK+C5gOC4l+C4qOC4oeC4meC4leC4o+C4tQor4LmA4LiX4Lio4LiwCivguYDguJfguKjguLLguIjguLLguKMKK+C5gOC4l+C4qOC4suC4oOC4tOC4muC4suC4pQor4LmA4LiX4LirLQor4LmA4LiX4Lir4LmMCivguYDguJfguYjguKvguYwKK+C5gOC4l+C4q+C5jOC4n+C4suC4geC4n+C5ieC4sgor4LmA4LiX4Lir4Lin4Lix4LiV4LiW4Li4CivguYDguJfguYjguK0KK+C5gOC4l+C5ieC4rQor4LmA4LiX4Lit4LiNCivguYDguJfguK3guKEKK+C5gOC4l+C4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4LmA4LiX4Lit4Lij4LmM4LmC4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYDguJfguK3guLDguJfguLAKK+C5gOC4l+C4sgor4LmA4LiX4LmI4LiyCivguYDguJfguYnguLIKK+C5gOC4l+C5iOC4suC4geC4seC4mgor4LmA4LiX4LmJ4Liy4LmB4LiC4LiZCivguYDguJfguYnguLLguITguLnguYkKK+C5gOC4l+C5ieC4suC4iuC5ieC4suC4hwor4LmA4LiX4LmI4Liy4LmD4LiUCivguYDguJfguYjguLLguJXguLHguKcKK+C5gOC4l+C5iOC4suC4l+C4seC4mQor4LmA4LiX4LmI4Liy4LiX4Li44LiZCivguYDguJfguYjguLLguYDguJfguLXguKLguKEKK+C5gOC4l+C5iOC4suC4meC4seC5ieC4mQor4LmA4LiX4LmI4Liy4LmA4Lic4LmJ4LiyCivguYDguJfguYnguLLguKLguLLguKLguKHguYjguK3guKEKK+C5gOC4l+C5iOC4suC4o+C4tuC4hwor4LmA4LiX4LmI4Liy4LmE4LijCivguYDguJfguYnguLLguKrguLLguJkKK+C5gOC4l+C5ieC4suC4quC4tOC4h+C4q+C5jAor4LmA4LiX4Liy4Liw4Lir4LmMCivguYDguJfguLTguIEKK+C5gOC4l+C4tOC5iOC4hwor4LmA4LiX4Li04LiH4Lia4Lit4LiHCivguYDguJfguLTguJQKK+C5gOC4l+C4tOC4lOC4l+C4ueC4mQor4LmA4LiX4Li04LiZCivguYDguJfguLTguJoKK+C5gOC4l+C4tOC4muC5hgor4LmA4LiX4Li04Lia4LiX4Liy4LiaCivguYDguJfguLTguYnguKEKK+C5gOC4l+C4teC4ouC4hwor4LmA4LiX4Li14LmI4Lii4LiHCivguYDguJfguLXguYjguKLguIfguYYKK+C5gOC4l+C4teC5iOC4ouC4h+C4leC4o+C4hwor4LmA4LiX4Li14LmI4Lii4LiH4LmB4LiX4LmJCivguYDguJfguLXguYjguKLguIfguJjguKPguKPguKEKK+C5gOC4l+C4teC4ouC4mQor4LmA4LiX4Li14LmJ4Lii4LiZCivguYDguJfguLXguKLguJnguIHguLTguYjguIcKK+C5gOC4l+C4teC4ouC4meC5gOC4geC4peC5h+C4lOC4q+C4reC4ogor4LmA4LiX4Li14Lii4LiZ4LmB4LiB4Lil4LiaCivguYDguJfguLXguKLguJnguILguKEKK+C5gOC4l+C4teC4ouC4meC4guC4suC4pwor4LmA4LiX4Li14Lii4LiZ4LiC4LmJ4Liy4Lin4LmA4Lib4Lil4Li34Lit4LiBCivguYDguJfguLXguKLguJnguJTguLMKK+C5gOC4l+C4teC4ouC4meC5geC4lOC4hwor4LmA4LiX4Li14Lii4LiZ4LiV4Liy4LiB4LiaCivguYDguJfguLXguKLguJnguJXguLLguJXguLHguYrguIHguYHguJXguJkKK+C5gOC4l+C4teC4ouC4meC4muC5ieC4suC4mQor4LmA4LiX4Li14Lii4LiZ4Lie4Lij4Lij4Lip4LiyCivguYDguJfguLXguKLguJnguYDguKLguLLguKfguJ7guLLguJPguLUKK+C5gOC4l+C4teC4ouC4meC4o+C4uOC5iOC4hwor4LmA4LiX4Li14Lii4LiZ4Lil4Lin4LiUCivguYDguJfguLXguKLguJnguKrguLHguJXguJXguJrguLjguKnguKLguYwKK+C5gOC4l+C4teC4ouC4meC4reC4mgor4LmA4LiX4Li14Lii4LiaCivguYDguJfguLXguKLguJrguYDguITguLXguKLguIcKK+C5gOC4l+C4teC4ouC4muC5gOC4l+C5iOC4sgor4LmA4LiX4Li14Lii4LihCivguYDguJfguLXguKLguKMKK+C5gOC4l+C4teC5ieC4ouC4owor4LmA4LiX4Li14Lii4Lij4LiGLQor4LmA4LiX4Li14Lii4Lij4LiG4LiK4Liy4LiV4Li0CivguYDguJfguLXguKLguKPguIbguKPguLLguJXguKMKK+C5gOC4l+C4teC4ouC4pwor4LmA4LiX4Li14LmI4Lii4LinCivguYDguJfguLfguK0KK+C5gOC4l+C4t+C5iOC4rQor4LmA4LiX4Li34LmJ4LitCivguYDguJfguLfguK3guIEKK+C5gOC4l+C4t+C4reC4geC5gOC4guC4sgor4LmA4LiX4Li34Lit4LiB4LmA4LiW4Liy4LmA4Lir4Lil4LmI4Liy4LiB4LitCivguYDguJfguLfguK3guJkKK+C5geC4l+C5iAor4LmB4LiX4LmJCivguYHguJfguYnguYYKK+C5geC4l+C5h+C4geC4i+C4teC5iAor4LmB4LiX4LmH4LiB4LiL4Li14LmI4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYHguJfguIcKK+C5geC4l+C5iOC4hwor4LmB4LiX4LmJ4LiHCivguYHguJfguYfguIfguIHguYzguJnguYnguLMKK+C5geC4l+C4h+C5g+C4iAor4LmB4LiX4LiH4LmD4LiI4LiU4LizCivguYHguJfguIfguJXguLDguYTguJoKK+C5geC4l+C4h+C4l+C4p+C4ogor4LmB4LiX4LiH4Lin4Li04Liq4Lix4LiiCivguYHguJfguIfguKvguKLguKfguIEKK+C5geC4l+C5ieC4iOC4o+C4tOC4hwor4LmB4LiX4LiV4Lii4LmMCivguYHguJfguYnguJfguLXguYjguIjguKPguLTguIcKK+C5geC4l+C4mQor4LmB4LiX4LmI4LiZCivguYHguJfguJnguYDguIjguJnguJXguYwKK+C5geC4l+C4meC4l+C4suC4peC4seC4oQor4LmB4LiX4LiZ4LiX4Li14LmI4LiI4LiwCivguYHguJfguYjguJnguJ7guLTguKHguJ7guYwKK+C5geC4l+C5iOC4meC4oeC4k+C4keC4pQor4LmB4LiX4LmI4LiZ4Lil4LiyCivguYHguJfguYjguJnguKvguKHguLbguIEKK+C5geC4l+C4mgor4LmB4LiX4Lij4LiBCivguYHguJfguKPguIHguIvguK3guJkKK+C5geC4l+C4o+C4geC4i+C5ieC4reC4mQor4LmB4LiX4Lij4LiB4LiL4Li24LihCivguYHguJfguKPguIHguYHguIvguIcKK+C5geC4l+C4o+C4geC5gOC4leC4reC4o+C5jAor4LmB4LiX4Lij4LiB4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguYHguJfguKPguIHguYLguJ7guJkKK+C5geC4l+C4peC5gOC4peC4teC4ouC4oQor4LmB4LiX4LiwCivguYHguJfguLDguYLguKXguKEKK+C5guC4lwor4LmC4LiX4LmICivguYLguJfguIHguYDguJfguIEKK+C5guC4l+C4h+C5hgor4LmC4LiX4LiH4LmA4LiX4LiHCivguYLguJfguJPguLAKK+C5guC4l+C5guC4l+C4qQor4LmC4LiX4LiY4LiBCivguYLguJfguJkKK+C5guC4l+C4meC5guC4l+C5iAor4LmC4LiX4Lih4LiZ4Lix4LiqCivguYLguJfguKMtCivguYLguJfguKPguITguKHguJnguLLguITguKEKK+C5guC4l+C4o+C4l+C4o+C4o+C4qOC4meC5jAor4LmC4LiX4Lij4LiX4Lix4Lio4LiZ4LmMCivguYLguJfguKPguJ7guLTguKHguJ7guYwKK+C5guC4l+C4o+C4oOC4suC4ngor4LmC4LiX4Lij4LihCivguYLguJfguKPguKHguKjguLHguKrguJXguKPguLLguKfguLjguJgKK+C5guC4l+C4o+C4oeC4q+C4jeC4tOC4hwor4LmC4LiX4Lij4LmA4Lil4LiCCivguYLguJfguKPguKjguLHguJ7guJfguYwKK+C5guC4l+C4o+C4quC4suC4owor4LmC4LiX4Lil4LiyCivguYLguJfguKjguIEKK+C5guC4l+C4qQor4LmC4LiX4LipLQor4LmC4LiX4Lip4LiB4Lij4LiT4LmMCivguYLguJfguKnguJXguKPguLHguKIKK+C5guC4l+C4qeC4l+C4suC4h+C4p+C4tOC4meC4seC4ogor4LmC4LiX4Lip4LmC4Lie4LiiCivguYLguJfguKnguLIKK+C5guC4l+C4qeC4suC4geC4owor4LmC4LiX4Lip4Liy4LiU4Li04Lil4LiBCivguYLguJfguKnguLLguJnguLjguYLguJfguKkKK+C5guC4l+C4qeC4suC4o+C4oeC4k+C5jAor4LmC4LiX4LiqLQor4LmC4LiX4Liq4LiwCivguYLguJfguKrguLLguITguJXguLQKK+C5guC4l+C5guC4qgor4LmC4LiX4Lir4Lis4LiwCivguYLguJfguKvguKzguLTguJnguLUKK+C5hOC4lwor4LmE4LiX4LmJCivguYTguJfguYDguJfguYDguJnguLXguKLguKEKK+C5hOC4l+C5gOC4l+C4o+C4lQor4LmE4LiX4LiiCivguYTguJfguKLguJTguLMKK+C5hOC4l+C4ouC4l+C4suC4mQor4LmE4LiX4Lii4LiY4Lij4Lij4LihCivguYTguJfguKLguJnguYnguK3guKIKK+C5hOC4l+C4ouC4meC4seC4muC4quC4suC4oQor4LmE4LiX4Lii4LiZ4Lix4Lia4Lir4LmJ4LiyCivguYTguJfguKLguKvguKXguIcKK+C5hOC4l+C4ouC4q+C4peC4p+C4hwor4LmE4LiX4Lii4LmD4Lir4LiN4LmICivguYTguJfguKMKK+C5hOC4l+C4o+C4l+C4reC4hwor4LmE4LiX4Lij4LmA4Lil4Li14Lii4LiaCivguYTguJfguKfguLAKK+C4mAor4LiY4LiHCivguJjguIfguIHguYwKK+C4mOC4h+C4geC4o+C4sOC4muC4teC5iOC4mOC4uOC4igor4LiY4LiH4LiI4Lij4Liw4LmA4LiC4LmJCivguJjguIfguInguLLguJkKK+C4mOC4h+C4iuC4seC4ogor4LiY4LiH4LiK4Lix4Lii4LmA4LiJ4Lil4Li04Lih4Lie4Lil4LiC4Lit4LiH4LiX4Lir4Liy4Lij4Lia4LiBCivguJjguIfguIrguLHguKLguYDguInguKXguLTguKHguJ7guKXguILguK3guIfguJfguKvguLLguKPguYDguKPguLfguK0KK+C4mOC4h+C4iuC4seC4ouC5gOC4ieC4peC4tOC4oeC4nuC4peC4guC4reC4h+C4l+C4q+C4suC4o+C4reC4suC4geC4suC4qAor4LiY4LiH4LiK4Liy4LiV4Li0CivguJjguIfguIrguLLguKIKK+C4mOC4h+C4leC4sOC4guC4suC4mgor4LiY4LiH4LiZ4Liz4Lij4Li04LmJ4LinCivguJjguIfguJrguKPguKHguKPguLLguIrguKfguIfguKjguYzguJnguYnguK3guKIKK+C4mOC4h+C4muC4o+C4oeC4o+C4suC4iuC4p+C4h+C4qOC5jOC5g+C4q+C4jeC5iAor4LiY4LiH4Lib4Lij4Liw4LiI4Liz4LiB4Lit4LiH4LiX4Lix4Lie4Lia4LiBCivguJjguIfguJvguKPguLDguIjguLPguIHguK3guIfguJfguLHguJ7guYDguKPguLfguK0KK+C4mOC4h+C4m+C4o+C4sOC4iOC4s+C4geC4reC4h+C4l+C4seC4nuC4reC4suC4geC4suC4qAor4LiY4LiH4Lie4Lij4Liw4LiE4Lij4Li44LiR4Lie4LmI4Liy4Lir4LmMCivguJjguIfguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLTguKPguLLguKnguI7guKPguYwKK+C4mOC4h+C4oeC4q+C4suC4o+C4suC4iuC4meC5ieC4reC4ogor4LiY4LiH4Lih4Lir4Liy4Lij4Liy4LiK4LmD4Lir4LiN4LmICivguJjguIfguYDguKLguLLguKfguKPguLLguIrguJnguYnguK3guKIKK+C4mOC4h+C5gOC4ouC4suC4p+C4o+C4suC4iuC5g+C4q+C4jeC5iAor4LiY4LiH4Lij4Liy4LiK4LiZ4Liy4Lin4Li1CivguJjguIfguKPguLLguIrguLTguJnguLXguJnguYnguK3guKIKK+C4mOC4h+C4o+C4suC4iuC4tOC4meC4teC5g+C4q+C4jeC5iAor4LiY4LiH4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4LihCivguJjguIoKK+C4mOC4iuC4tQor4LiY4LiV4Lij4LiQCivguJjguJkKK+C4mOC4mS0KK+C4mOC4meC4mOC4suC4meC4tQor4LiY4LiZ4Lia4LiU4Li1CivguJjguJnguJrguLHguJXguKMKK+C4mOC4meC4quC4oeC4muC4seC4leC4tAor4LiY4LiZ4Liq4Liy4LijCivguJjguJnguLHguIcKK+C4mOC4meC4suC4hOC4oQor4LiY4LiZ4Liy4LiE4Liy4LijCivguJjguJnguLLguITguLLguKPguJ7guLLguJPguLTguIrguKLguYwKK+C4mOC4meC4suC4hOC4suC4o+C5guC4peC4gQor4LiY4LiZ4Liy4LiE4Liy4Lij4Lit4Lit4Lih4Liq4Li04LiZCivguJjguJnguLLguJPguLHguJXguLQKK+C4mOC4meC4tOC4lQor4LiY4LiZ4Li04Lip4LiQ4LiwCivguJjguJnguLTguKnguJDguLIKK+C4mOC4meC4uAor4LiY4LiZ4Li44LijLQor4LiY4LiZ4Li44Lij4Lih4Liy4Lij4LiECivguJjguJnguLjguKPguKfguLTguJfguKLguLIKK+C4mOC4meC4uOC4o+C5gOC4p+C4lwor4LiY4LiZ4Li5CivguJjguJnguLnguKjguLTguKXguJvguYwKK+C4mOC5gOC4meC4qAor4LiY4LmA4LiZ4Lio4Lin4LijCivguJjguYLguJnguJvguIjguLHguKIKK+C4mOC5hOC4meC4qOC4p+C4o+C4o+C4ouC5jAor4LiY4LihCivguJjguKHguIHguKPguIEKK+C4mOC4owor4LiY4Lij4LiHCivguJjguKPguJMKK+C4mOC4o+C4k+C4tOC4mQor4LiY4Lij4LiT4Li04LiZ4LiX4Lij4LmMCivguJjguKPguJPguLTguKgKK+C4mOC4o+C4k+C4tOC4qOC4owor4LiY4Lij4LiT4Li04Lio4Lin4Lij4LmMCivguJjguKPguJPguLUKK+C4mOC4o+C4k+C4teC4geC4seC4meC5geC4quC4hwor4LiY4Lij4LiT4Li14Lib4Lij4Liw4LiV4Li5CivguJjguKPguJPguLXguKHguJPguJHguKUKK+C4mOC4o+C4k+C4teC4o+C5ieC4reC4h+C5hOC4q+C5iQor4LiY4Lij4LiT4Li14Lin4Li04LiX4Lii4LiyCivguJjguKPguJPguLXguKjguKfguKMKK+C4mOC4o+C4k+C4teC4quC4h+C4huC5jAor4LiY4Lij4LiT4Li14Liq4Liy4LijCivguJjguKPguJPguLXguKrguLnguJoKK+C4mOC4o+C4oeC4suC4mQor4LiY4Lij4Lij4LihCivguJjguKPguKPguKEtCivguJjguKPguKPguKHguIHguJbguLIKK+C4mOC4o+C4o+C4oeC4geC4luC4tuC4gQor4LiY4Lij4Lij4Lih4LiB4Liy4LihCivguJjguKPguKPguKHguIHguLLguKIKK+C4mOC4o+C4o+C4oeC4geC4suC4owor4LiY4Lij4Lij4Lih4LiB4Liy4Lij4Lii4LmMCivguJjguKPguKPguKHguYDguIHguKnguJXguKMKK+C4mOC4o+C4o+C4oeC4guC4seC4meC4mOC5jAor4LiY4Lij4Lij4Lih4LiE4Li44LiTCivguJjguKPguKPguKHguIjguKPguJPguLAKK+C4mOC4o+C4o+C4oeC4iOC4o+C4o+C4ouC4sgor4LiY4Lij4Lij4Lih4LiI4Lij4Li04Lii4LiyCivguJjguKPguKPguKHguIjguLHguIHguKMKK+C4mOC4o+C4o+C4oeC4iOC4seC4geC4qeC4uAor4LiY4Lij4Lij4Lih4LiI4Liy4LiE4LiwCivguJjguKPguKPguKHguIjguLLguKPguLUKK+C4mOC4o+C4o+C4oeC4iOC4tOC4meC4lOC4sgor4LiY4Lij4Lij4Lih4LmA4LiI4LiU4Li14Lii4LmMCivguJjguKPguKPguKHguIrguLLguJXguLQKK+C4mOC4o+C4o+C4oeC4kOC4tOC4leC4tAor4LiY4Lij4Lij4Lih4LiU4LiyCivguJjguKPguKPguKHguJfguKPguKPguKjguJnguLAKK+C4mOC4o+C4o+C4oeC4mOC4suC4lOC4sgor4LiY4Lij4Lij4Lih4LiY4Liy4LiV4Li4CivguJjguKPguKPguKHguJnguLLguJYKK+C4mOC4o+C4o+C4oeC4meC4tOC4leC4ouC5jAor4LiY4Lij4Lij4Lih4LiZ4Li04Lii4LihCivguJjguKPguKPguKHguJnguLTguKLguLLguKEKK+C4mOC4o+C4o+C4oeC4meC4tOC5gOC4p+C4qAor4LiY4Lij4Lij4Lih4LiZ4Li54LiNCivguJjguKPguKPguKHguJnguLnguI3guIHguLLguKPguJvguIHguITguKPguK3guIfguKPguLLguIrguK3guLLguJPguLLguIjguLHguIHguKMKK+C4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4Lib4Lij4Liw4LmA4Lie4LiT4Li1CivguJjguKPguKPguKHguJrguJcKK+C4mOC4o+C4o+C4oeC4muC4suC4pQor4LiY4Lij4Lij4Lih4Lia4Li04LiQCivguJjguKPguKPguKHguJvguI/guLTguKPguLnguJsKK+C4mOC4o+C4o+C4oeC4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4LiY4Lij4Lij4Lih4Lib4Lij4Liw4LiV4Li04Lij4Li54LibCivguJjguKPguKPguKHguKLguLjguJUKK+C4mOC4o+C4o+C4oeC4ouC4uOC4l+C4mOC5jAor4LiY4Lij4Lij4Lih4Lij4Lix4LiV4LiZ4LmMCivguJjguKPguKPguKHguKPguLLguIrguLIKK+C4mOC4o+C4o+C4oeC4p+C4seC4leC4owor4LiY4Lij4Lij4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguJjguKPguKPguKHguKrguJbguLTguJXguLQKK+C4mOC4o+C4o+C4oeC4quC4oOC4sgor4LiY4Lij4Lij4Lih4Liq4Lij4Li14Lij4LiwCivguJjguKPguKPguKHguKrguLHguIfguITguLXguJXguLQKK+C4mOC4o+C4o+C4oeC4quC4seC4h+C5gOC4p+C4igor4LiY4Lij4Lij4Lih4Liq4Liy4LiB4Lix4LiI4LiJ4LiyCivguJjguKPguKPguKHguKrguLLguKHguLTguKrguKMKK+C4mOC4o+C4o+C4oeC4quC4suC4oeC4tQor4LiY4Lij4Lij4Lih4Liq4Liy4LijCivguJjguKPguKPguKHguLAKK+C4mOC4o+C4o+C4oeC4sOC4mOC4seC4oeC5guC4oQor4LiY4Lij4Lij4Lih4Lix4LiZ4LmA4LiV4Lin4Liy4Liq4Li04LiBCivguJjguKPguKPguKHguLLguJfguLTguJXguKLguYwKK+C4mOC4o+C4o+C4oeC4suC4mOC4o+C4o+C4oQor4LiY4Lij4Lij4Lih4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguJjguKPguKPguKHguLLguJjguLTguKnguJDguLLguJkKK+C4mOC4o+C4o+C4oeC4suC4meC4uOC4mOC4o+C4o+C4oeC4m+C4j+C4tOC4muC4seC4leC4tAor4LiY4Lij4Lij4Lih4Liy4LiZ4Li44Liq4Liy4LijCivguJjguKPguKPguKHguLLguKDguLTguKHguLjguIIKK+C4mOC4o+C4o+C4oeC4suC4oOC4tOC4quC4oeC4seC4ogor4LiY4Lij4Lij4Lih4Liy4Lii4LiV4LiZ4LiwCivguJjguKPguKPguKHguLLguKPguKHguJPguYwKK+C4mOC4o+C4o+C4oeC4suC4quC4meC5jAor4LiY4Lij4Lij4Lih4Li04LiBCivguJjguKPguKPguKHguLTguIEtCivguJjguKPguLIKK+C4mOC4o+C4suC4lOC4pQor4LiY4Lij4Liy4LiY4LijCivguJjguKPguLLguJjguLLguKMKK+C4mOC4o+C4suC4mOC4tOC4muC4lOC4tQor4LiY4Lij4Liy4LiY4Li04LibCivguJjguKPguLTguKnguJXguKPguLUKK+C4mOC5gOC4o+C4qAor4LiY4LmA4Lij4Lip4LiV4Lij4Li1CivguJjguYDguKPguKnguJXguKPguLXguKjguKfguKMKK+C4mOC4p+C4seC4igor4LiY4Lix4LiH4LiBCivguJjguLHguIoKK+C4mOC4seC4jQor4LiY4Lix4LiNLQor4LiY4Lix4LiN4LmC4LiB4LioCivguJjguLHguI3guYDguILguJUKK+C4mOC4seC4jeC4iuC4suC4leC4tAor4LiY4Lix4LiN4LiN4Liy4Lir4Liy4LijCivguJjguLHguI3guJTguLHguIgKK+C4mOC4seC4jeC5gOC4muC4jeC4iOC4gQor4LiY4Lix4LiN4Lie4Li34LiKCivguJjguLHguI3guKHguLLguKoKK+C4mOC4seC4meC4ouC4sgor4LiY4Lix4LiZ4Lii4Liy4Lin4Liy4LiXCivguJjguLHguJnguKfguLLguITguKEKK+C4mOC4seC4oeC4oeC4sAor4LiY4Liy4LiU4LiyCivguJjguLLguJXguKPguLUKK+C4mOC4suC4leC4p+C4suC4geC4owor4LiY4Liy4LiV4Li4CivguJjguLLguJXguLgtCivguJjguLLguJXguLjguYLguILguKAKK+C4mOC4suC4leC4uOC4hOC4o+C4o+C4oAor4LiY4Liy4LiV4Li44LmA4LiI4LiU4Li14Lii4LmMCivguJjguLLguJXguLjguYDguJrguLIKK+C4mOC4suC4leC4uOC4oeC4oeC4tOC4quC4quC4sgor4LiY4Liy4LiV4Li44Liq4LiW4Li54LibCivguJjguLLguJXguLjguKvguJnguLHguIEKK+C4mOC4suC4meC4tOC4mQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMCivguJjguLLguJnguLUKK+C4mOC4suC4owor4LiY4Liy4Lij4LiB4Liz4LiZ4Lix4LilCivguJjguLLguKPguITguLPguJnguLHguKUKK+C4mOC4suC4o+C4kwor4LiY4Liy4Lij4LiT4LiwCivguJjguLLguKPguJPguLIKK+C4mOC4suC4o+C4k+C4suC4oeC4seC4ogor4LiY4Liy4Lij4Lie4Lij4Liw4LiB4LijCivguJjguLLguKPguKLguLHguIHguKnguYwKK+C4mOC4suC4o+C4sgor4LiY4Liy4Lij4Liy4LmA4LiE4Lir4LiwCivguJjguLLguKPguLLguJjguLTguITguLjguJMKK+C4mOC4suC4o+C4suC4ouC4meC4leC5jAor4LiY4Liy4Lip4LiV4Lij4Li1CivguJjguLPguKHguKPguIfguITguYwKK+C4mOC4s+C4o+C4hwor4LiY4Li04LiU4LiyCivguJjguLTguJXguLQKK+C4mOC4teC4oy0KK+C4mOC4teC4o+C4oOC4suC4ngor4LiY4Li14Lij4Lij4Liy4LiKCivguJjguLjguIoKK+C4mOC4uOC4lOC4h+C4hC0KK+C4mOC4uOC4lOC4h+C4hOC5jAor4LiY4Li44LiU4LiH4LiE4Lin4Lix4LiV4LijCivguJjguLjguJTguIfguITguKrguKHguLLguJfguLLguJkKK+C4mOC4uOC4lQor4LiY4Li44LiV4LiV4LiwCivguJjguLjguKEtCivguJjguLjguKHguYDguIHguJXguLgKK+C4mOC4uOC4oeC4iuC4suC4pQor4LiY4Li44Lih4LmA4Lie4Lil4Li04LiHCivguJjguLjguKHguLIKK+C4mOC4uOC4oy0KK+C4mOC4uOC4o+C4geC4suC4owor4LiY4Li44Lij4LiB4Li04LiICivguJjguLjguKPguLAKK+C4mOC4uOC4o+C4swor4LiY4Li44Lil4Li1CivguJjguLjguKctCivguJjguLjguKfguJTguLLguKPguLIKK+C4mOC4uOC4p+C4oOC4suC4hAor4LiY4Li44Lin4Lih4LiT4LiR4LilCivguJjguLjguKfguKLguLHguKnguI7guLUKK+C4mOC4ueC4mwor4LiY4Li54LibLQor4LiY4Li54Lib4Lia4Liy4LiV4LijCivguJjguLnguJvguYHguJ7guYDguJfguLXguKLguJnguYHguJ4KK+C4mOC4ueC4m+C5hOC4oeC5ieC4o+C4sOC4geC4swor4LiY4Li54Lib4Lik4LmF4Lip4Li1CivguYDguJjguJnguLgKK+C5gOC4mOC4rQor4LmA4LiY4Li14Lii4LijCivguYLguJjguYgKK+C5guC4mOC4p+C4mQor4LiZCivguJnguIEKK+C4meC4geC4geC4o+C4sOC4iOC4reC4gQor4LiZ4LiB4LiB4Lij4Liw4LiI4Lit4LiB4LiX4Lit4LiHCivguJnguIHguIHguKPguLDguJfguLjguIcKK+C4meC4geC4geC4sOC4m+C4ueC4lAor4LiZ4LiB4LiB4Liy4LiH4Lib4Li14LiBCivguJnguIHguYDguILguLIKK+C4meC4geC4hOC4uOC5iOC4oQor4LiZ4LiB4LiI4Liy4LiBCivguJnguIHguJXguYjguK0KK+C4meC4geC4ouC4ueC4hwor4LiZ4LiB4Lij4Li54LmJCivguJnguIHguKrguK3guIfguKvguLHguKcKK+C4meC4geC4q+C4gQor4LiZ4LiB4Lir4Lin4Li14LiUCivguJnguIHguK3guKLguLnguYjguYPguJnguJvguKXguYjguK3guIcKK+C4meC4geC4uOC4pQor4LiZ4LiCCivguJnguIItCivguJnguILguJfguLLguKPguJPguYwKK+C4meC4guC4peC4tOC4guC4tOC4lQor4LiZ4LiC4LmA4Lil4LiC4LiyCivguJnguILguLIKK+C4meC4hAor4LiZ4LiE4LijCivguJnguITguKMtCivguJnguITguKPguJrguLLguKUKK+C4meC4hOC4o+C4muC4suC4peC4iOC4seC4h+C4q+C4p+C4seC4lAor4LiZ4LiE4Lij4Lij4Lix4LiQCivguJnguITguKPguKfguLLguKrguLUKK+C4meC4hOC4o+C5guC4quC4oOC4tOC4k+C4tQor4LiZ4LiE4Lij4LmC4Liq4LmA4Lig4LiT4Li1CivguJnguITguKPguLLguJfguKMKK+C4meC4hOC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4LiE4LmA4Lij4LioCivguJnguITguLTguJnguJfguKMKK+C4meC4hOC4tOC4meC4l+C4o+C5jAor4LiZ4LmA4LiE4LiZ4LiX4Lij4LmMCivguJnguYDguITguKjguKfguKMKK+C4meC5guC4hOC4l+C4owor4LiZ4LiHCivguJnguIfguITguKPguLLguI0KK+C4meC4h+C4hOC4uOC4kAor4LiZ4LiH4LiZ4Li44LiKCivguJnguIfguJ7guLDguIfguLIKK+C4meC4h+C4nuC4suC4pQor4LiZ4LiH4Lie4Li44LiYCivguJnguIfguYLguJ7guJgKK+C4meC4h+C5gOC4ouC4suC4p+C5jAor4LiZ4LiH4Lij4Liy4LihCivguJnguIfguKXguLHguIHguKnguJPguYwKK+C4meC4lwor4LiZ4LiX4Li1CivguJnguJfguLXguKPguLHguKIKK+C4meC4meC4leC4o+C4sgor4LiZ4LiZ4LiX4LmMCivguJnguJnguJfguKPguLUKK+C4meC4meC4l+C4peC4tQor4LiZ4LiZ4LiX4Li0CivguJnguJoKK+C4meC4muC4meC4reC4mgor4LiZ4Lib4Li44LiH4Liq4LiB4Lil4Li04LiH4LiE4LmMCivguJnguJvguLjguIfguKrguIHguKXguLbguIfguITguYwKK+C4meC4ngor4LiZ4LieLQor4LiZ4Lie4LiB4LiwCivguJnguJ7guYDguIHguYnguLIKK+C4meC4nuC4hOC4uOC4kwor4LiZ4Lie4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguJ7guJnguLTguJUKK+C4meC4nuC4m+C4juC4pQor4LiZ4Lie4Lie4LilCivguJnguJ7guJ7guKfguIcKK+C4meC4nuC4nuC4seC4mQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMCivguJnguJ7guKjguIEKK+C4meC4nuC4qOC4ueC4pQor4LiZ4LigLQor4LiZ4Lig4LiI4LijCivguJnguKDguJTguKUKK+C4meC4oOC4oeC4k+C4keC4pQor4LiZ4Lig4Lin4Li04LiW4Li1CivguJnguKDguKjguLnguKUKK+C4meC4oOC4quC4tOC4meC4mOC4uOC5jAor4LiZ4Lig4LiyCivguJnguKDguLLguKXguLHguKIKK+C4meC4oQor4LiZ4Lih4LiB4Lij4Liw4LmB4LiK4LiHCivguJnguKHguILguYnguJkKK+C4meC4oeC4hOC4p+C4suC4ogor4LiZ4Lih4LiK4Liw4LiZ4Li1CivguJnguKHguIrguYnguLLguIcKK+C4meC4oeC4leC4suC4muC4reC4lAor4LiZ4Lih4LiV4Liy4Liq4Liw4LmB4LiBCivguJnguKHguJXguLPguYDguKPguLXguKIKK+C4meC4oeC4leC4s+C5gOC4peC4teC4ogor4LiZ4Lih4LiZ4Liy4LiHCivguJnguKHguJnguLLguJkKK+C4meC4oeC4muC4geC4reC4geC4nuC4o+C5iOC4reC4hwor4LiZ4Lih4Lia4Lit4LiUCivguJnguKHguJzguIcKK+C4meC4oeC4nOC4sgor4LiZ4Lih4Lie4Lin4LiHCivguJnguKHguJ7guLTguIjguLTguJXguKMKK+C4meC4oeC5geC4oeC4pwor4LiZ4Lih4LmE4Lih4LmJCivguJnguKHguKfguLHguKcKK+C4meC4oeC4quC4p+C4o+C4o+C4hOC5jAor4LiZ4Lih4Liq4Liy4LinCivguJnguKHguKvguJnguLkKK+C4meC4oeC4sAor4LiZ4Lih4Lix4LiB4LiB4Liy4LijCivguJnguKHguLHguKrguIHguLLguKMKK+C4meC4oeC4suC4iwor4LiZ4LiiLQor4LiZ4Lii4LiZ4LiwCivguJnguKLguJnguLIKK+C4meC4ouC4sAor4LiZ4Lii4Lix4LiB4Lip4LmMCivguJnguYLguKLguJrguLLguKIKK+C4meC4oy0KK+C4meC4o+C4gQor4LiZ4Lij4LiB4Liy4LiZ4LiV4LmMCivguJnguKPguIHguLLguKMKK+C4meC4o+C5gOC4l+C4ngor4LiZ4Lij4LiZ4Liy4LiWCivguJnguKPguJnguLLguKLguIEKK+C4meC4o+C4muC4lOC4tQor4LiZ4Lij4Lia4Liy4LilCivguJnguKPguJ7guKLguLHguITguIbguYwKK+C4meC4o+C4o+C4suC4igor4LiZ4Lij4LmA4Lio4Lij4Lip4LiQ4LmMCivguJnguKPguKrguLTguIfguKvguYwKK+C4meC4o+C4quC4teC4q+C5jAor4LiZ4Lij4LiyCivguJnguKPguLLguJjguLTguJsKK+C4meC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4Lij4Li04LioCivguJnguKPguLTguKjguKMKK+C4meC4o+C4tOC4qOC4p+C4owor4LiZ4Lij4Li1CivguJnguKPguLXguYDguKfguIrguKfguLTguJfguKLguLIKK+C4meC5gOC4o+C4meC4l+C4o+C4quC4ueC4owor4LiZ4LmA4Lij4LioCivguJnguYDguKPguKjguKfguKMKK+C4meC5gOC4o+C4qOC4p+C4o+C5jOC4iuC4meC4iuC5ieC4suC4hwor4LiZ4LmA4Lij4Lio4Li54LijCivguJnguYLguKPguJTguKEKK+C4meC4pC0KK+C4meC4pOC4hOC4q+C4tOC4lQor4LiZ4Lik4LmC4LiG4LipCivguJnguKTguJTguKEKK+C4meC4pOC4leC4oi0KK+C4meC4pOC4leC4ouC5jAor4LiZ4Lik4LiV4Lii4Lio4Liy4Lil4LiyCivguJnguKTguJXguKLguKjguLLguKrguJXguKPguYwKK+C4meC4pOC4leC4ouC4quC4luC4suC4mQor4LiZ4Lik4LmA4LiX4LieCivguJnguKTguJnguLLguJcKK+C4meC4pOC4muC4lOC4tQor4LiZ4Lik4Lia4Liy4LilCivguJnguKTguYDguJrguKgKK+C4meC4pOC4mwor4LiZ4Lik4Lib4LiZ4Li14LiV4Li0CivguJnguKTguJvguYDguKfguKjguKHguYwKK+C4meC4pOC4m+C4seC4leC4meC4tQor4LiZ4Lik4Lie4Liy4LiZCivguJnguKTguKHguKUKK+C4meC4pOC4oeC4suC4kwor4LiZ4Lik4Lih4Li04LiVCivguJnguKXguLLguI8KK+C4meC4peC4tOC4mQor4LiZ4Lil4Li04LiZ4Li1CivguJnguKctCivguJnguKfguIEtCivguJnguKfguIHguKDguLnguKHguLQKK+C4meC4p+C4geC4o+C4o+C4oQor4LiZ4Lin4LiB4Lij4Lij4Lih4Li04LiBCivguJnguKfguIHguLAKK+C4meC4p+C4geC4suC4owor4LiZ4Lin4LiB4Li04LiICivguJnguKfguYLguIHguKfguLLguJcKK+C4meC4p+C4hOC4o+C4q+C4sAor4LiZ4Lin4LiE4Li44LiTCivguJnguKfguYDguITguKPguLLguLDguKvguYwKK+C4meC4p+C4iuC4suC4lQor4LiZ4Lin4LiUCivguJnguKfguJTguILguYnguLLguKcKK+C4meC4p+C4lOC5geC4m+C5ieC4hwor4LiZ4Lin4LiU4Lif4Lix4LmJ4LiZCivguJnguKfguJfguKfguLLguKMKK+C4meC4p+C4meC4tOC4lQor4LiZ4Lin4LiZ4Li04Lii4Liy4LiiCivguJnguKfguJvguI7guKUKK+C4meC4p+C4nuC4mOC4uQor4LiZ4Lin4LihCivguJnguYjguKfguKEKK+C4meC4p+C4oeC4tQor4LiZ4Lin4Lih4Li44LiCCivguJnguKfguKIKK+C4meC4p+C4ouC4meC4suC4lAor4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMCivguJnguKfguKUKK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jAor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Liw4LmA4LilCivguJnguKfguKXguJnguYnguK3guKIKK+C4meC4p+C4peC4o+C4sOC4q+C4hwor4LiZ4Lin4Lil4Lil4Lit4LitCivguJnguKfguKXguKXguLDguK3guK3guIcKK+C4meC4p+C4peC4q+C4hwor4LiZ4Lin4LmC4Lil4Lir4LiwCivguJnguKfguKfguLTguJgKK+C4meC4p+C4reC4o+C4q+C4suC4l+C4tOC4hOC4uOC4kwor4LiZ4Lin4Lix4LiH4LiE4Liq4Lix4LiV4LiW4Li44Lio4Liy4Liq4LiZ4LmMCivguJnguKfguLLguKPguKvguLLguJfguLTguITguLjguJMKK+C4meC4p+C4suC4o+C4sAor4LiZ4Lir4Liy4LiU4LiBCivguJnguKvguLLguJkKK+C4meC4q+C4suC4o+C4uAor4LiZ4Lir4Li44LiVCivguJnguKwKK+C4meC4rC0KK+C4meC4rOC4geC4suC4owor4LiZ4Lis4LibCivguJnguK0KK+C4meC4reC4gQor4LiZ4Lit4LiB4LiB4LiO4Lir4Lih4Liy4LiiCivguJnguK3guIHguITguKPguLkKK+C4meC4reC4geC4hOC4reC4gQor4LiZ4Lit4LiB4LiI4Liy4LiBCivguJnguK3guIHguYPguIgKK+C4meC4reC4geC4iuC4suC4mQor4LiZ4Lit4LiB4LiV4Liz4Lij4LiyCivguJnguK3guIHguJbguJnguJkKK+C4meC4reC4geC4muC4suC4peC4tQor4LiZ4Lit4LiB4Lij4Li14LiVCivguJnguK3guIHguKPguLXguJXguJnguK3guIHguKPguK3guKIKK+C4meC4reC4geC4peC4ueC5iOC4meC4reC4geC4l+C4suC4hwor4LiZ4Lit4LiB4LmA4Lir4LiZ4Li34LitCivguJnguK3guIcKK+C4meC5iOC4reC4hwor4LiZ4LmJ4Lit4LiHCivguJnguYnguK3guIfguYYKK+C4meC4reC4h+C5gOC4meC4t+C4reC4hwor4LiZ4LmI4Lit4LiH4LmB4LiZ4LmI4LiHCivguJnguYnguK3guIfguYDguJ7guKUKK+C4meC4reC4h+C5gOC4peC4t+C4reC4lAor4LiZ4LmI4Lit4LiH4Liq4Li04LiH4Lir4LmMCivguJnguK3guIfguKvguJnguYnguLIKK+C4meC4reC4lQor4LiZ4Lit4LiZCivguJnguK3guJnguIHguYnguJkKK+C4meC4reC4meC4geC4tOC4mQor4LiZ4Lit4LiZ4LmD4LiICivguJnguK3guJnguJXguLLguYTguKHguYjguKvguKXguLHguJoKK+C4meC4reC4meC4leC4teC4nuC4uOC4hwor4LiZ4Lit4LiZ4LiZ4LiBCivguJnguK3guJnguYHguJrguYfguJoKK+C4meC4reC4meC5guC4o+C4hwor4LiZ4Lit4LiZ4LmA4Lil4LmI4LiZCivguJnguK3guJnguKfguLHguJkKK+C4meC4reC4meC5gOC4p+C4owor4LiZ4Lit4LiZ4Lir4Lil4Lix4Lia4LiX4Lix4Lia4Liq4Li04LiX4LiY4Li04LmMCivguJnguK3guJnguKvguKXguLHguJrguYTguKHguYjguKPguLnguYkg4LiZ4Lit4LiZ4LiE4Li54LmJ4LmE4Lih4LmI4LmA4Lir4LmH4LiZCivguJnguK3guJoKK+C4meC4reC4muC4meC4mgor4LiZ4Lit4Lia4LiZ4LmJ4Lit4LihCivguJnguYnguK3guKEKK+C4meC5ieC4reC4oeC5gOC4geC4peC5ieC4suC4meC5ieC4reC4oeC4geC4o+C4sOC4q+C4oeC5iOC4reC4oeC4luC4p+C4suC4ogor4LiZ4LmJ4Lit4Lih4LiZ4LizCivguJnguYnguK3guKIKK+C4meC5ieC4reC4ouC5geC4h+C5iAor4LiZ4LmJ4Lit4Lii4LmD4LiICivguJnguYnguK3guKLguYDguJnguLfguYnguK3guJXguYjguLPguYPguIgKK+C4meC5ieC4reC4ouC4q+C4meC5iOC4sgor4LiZ4LmJ4Lit4Lii4Lir4LiZ4LmJ4LiyCivguJnguYnguK3guKLguKvguKPguLfguK0KK+C4meC5ieC4reC4ouC5guC4q+C4meC5iOC4hwor4LiZ4LiwCivguJnguLDguYHguJnguYjguIcKK+C4meC4seC4gQor4LiZ4Lix4LiB4LiB4LiwCivguJnguLHguIHguIHguLLguKMKK+C4meC4seC4geC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4LiZ4Lix4LiB4LiB4Li14Lis4LiyCivguJnguLHguIHguILguLHguJUKK+C4meC4seC4geC4guC4seC4lS0KK+C4meC4seC4geC4guC4seC4leC4pOC4geC4qeC5jAor4LiZ4Lix4LiB4LiC4LmI4Liy4LinCivguJnguLHguIHguIfguLLguJkKK+C4meC4seC4geC4leC4sAor4LiZ4Lix4LiB4LiX4LmI4Lit4LiH4LmA4LiX4Li14LmI4Lii4LinCivguJnguLHguIHguYDguJfguKgKK+C4meC4seC4geC5gOC4l+C4qOC4meC5jAor4LiZ4Lix4LiB4LmC4LiX4LipCivguJnguLHguIHguYLguJfguKnguYDguJTguYfguJTguILguLLguJQKK+C4meC4seC4geC5guC4l+C4qeC4nuC4tOC5gOC4qOC4qQor4LiZ4Lix4LiB4LiY4Lij4Lij4LihCivguJnguLHguIHguJrguKfguIoKK+C4meC4seC4geC4muC4tOC4mQor4LiZ4Lix4LiB4Lia4Li44LiNCivguJnguLHguIHguJvguKPguLLguIrguI3guYwKK+C4meC4seC4geC4nuC4o+C4lQor4LiZ4Lix4LiB4LijCivguJnguLHguIHguKPguJoKK+C4meC4seC4geC5gOC4o+C4teC4ouC4mQor4LiZ4Lix4LiB4LmA4Lil4LiHCivguJnguLHguIHguKjguLbguIHguKnguLIKK+C4meC4seC4geC4qeC4seC4leC4owor4LiZ4Lix4LiB4Lip4Lix4LiV4LijLQor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4LiI4Lix4LiB4LijCivguJnguLHguIHguKnguLHguJXguKPguYDguJnguKHguLUKK+C4meC4seC4geC4qeC4seC4leC4o+C4muC4lOC4tQor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4Lia4LiWCivguJnguLHguIHguKnguLHguJXguKPguJvguLLguJDguIEKK+C4meC4seC4geC4qeC4seC4leC4o+C4oeC4k+C4keC4pQor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4Lih4Liy4Lil4LiyCivguJnguLHguIHguKnguLHguJXguKPguYLguKLguIQKK+C4meC4seC4geC4qeC4seC4leC4o+C4p+C4tOC4l+C4ouC4sgor4LiZ4Lix4LiB4Liq4LiZ4LihCivguJnguLHguIHguKrguKPguLLguIoKK+C4meC4seC4geC4quC4p+C4lAor4LiZ4Lix4LiB4Liq4Li04LiX4LiY4Li04LmMCivguJnguLHguIHguKrguLfguJoKK+C4meC4seC4geC4q+C4meC4sgor4LiZ4Lix4LiCCivguJnguLHguIQKK+C4meC4seC4hOC4hOC4sAor4LiZ4Lix4LmI4LiHCivguJnguLHguYjguIfguIHguLTguJnguJnguK3guJnguIHguLTguJkKK+C4meC4seC5iOC4h+C4guC4seC4lOC4quC4oeC4suC4mOC4tAor4LiZ4Lix4LiH4LiE4Lix4LilCivguJnguLHguYjguIfguITguLjguIHguYDguILguYjguLIKK+C4meC4seC5iOC4h+C4i+C4seC4hwor4LiZ4Lix4LmI4LiH4LiX4Liy4LiHCivguJnguLHguYjguIfguJfguLLguIfguYPguJkKK+C4meC4seC5iOC4h+C5gOC4l+C4teC4ouC4mQor4LiZ4Lix4LmI4LiH4LmD4LiZ4Lir4Lix4Lin4LmD4LiICivguJnguLHguYjguIfguJvguKPguIEKK+C4meC4seC5iOC4h+C5guC4m+C5iOC4hwor4LiZ4Lix4LmI4LiH4Lie4Lix4Lia4LmA4Lie4Li14Lii4LiaCivguJnguLHguYjguIfguYDguKHguLfguK3guIcKK+C4meC4seC5iOC4h+C4ouC4reC4h+C5hgor4LiZ4Lix4LmI4LiH4Lij4LmJ4Liy4LiZCivguJnguLHguYjguIfguKPguLLguKcKK+C4meC4seC5iOC4h+C5gOC4peC5iOC4mQor4LiZ4Lix4LmI4LiH4Lir4LmJ4Liy4LiHCivguJnguLHguIgKK+C4meC4seC4jwor4LiZ4Lix4LiP4LiBCivguJnguLHguJEKK+C4meC4seC4lAor4LiZ4Lix4LiU4LiU4LiyCivguJnguLHguJTguYHguJnguLAKK+C4meC4seC4lOC4q+C4oeC4suC4ogor4LiZ4Lix4LiV4LiW4Li44LmMCivguJnguLHguYjguJkKK+C4meC4seC5ieC4mQor4LiZ4Lix4LmI4LiZ4LiL4Li1CivguJnguLHguJnguJctCivguJnguLHguJnguJfguJfguLLguKLguLUKK+C4meC4seC4meC4l+C4meC5jAor4LiZ4Lix4LiZ4LiX4LiZ4Liy4LiB4Liy4LijCivguJnguLHguJnguJfguJvguLHguIHguKnguLUKK+C4meC4seC4meC4l+C4tAor4LiZ4Lix4LmI4LiZ4LmB4LiZ4LmICivguJnguLHguYjguJnguJvguLDguYTguKMKK+C4meC4seC5ieC4meC5geC4pQor4LiZ4Lix4LmI4LiZ4LmB4Lir4Lil4LiwCivguJnguLHguYjguJnguYDguK3guIcKK+C4meC4seC4mgor4LiZ4Lix4Lia4LiW4Li34LitCivguJnguLHguJrguJvguKPguLDguKrguLIKK+C4meC4seC4muC4q+C4meC5ieC4suC4luC4t+C4reC4leC4sgor4LiZ4Lix4LiiCivguJnguLHguKLguJnguYwKK+C4meC4seC4ouC4meC5jOC4leC4sgor4LiZ4Lix4Lii4LiZ4LmM4LmA4LiZ4LiV4LijCivguJnguLHguKLguJnguLIKK+C4meC4seC4ouC4meC4suC4oeC4nuC4uAor4LiZ4Lix4Lii4Lin4LmI4LiyCivguJnguLHguKcKK+C4meC4seC4p+C5gOC4meC4teC4ogor4LiZ4LiyCivguJnguYjguLIKK+C4meC5ieC4sgor4LiZ4Liy4LiBCivguJnguLLguIHguJrguLjguJQKK+C4meC4suC4geC4quC4p+C4suC4lAor4LiZ4Liy4LiB4Liy4Liq4Liy4Lir4Lij4Li1CivguJnguYjguLLguYDguIHguKXguLXguKLguJTguJnguYjguLLguIrguLHguIcKK+C4meC4suC4guC4reC4muC5gOC4q+C4peC5h+C4gQor4LiZ4Liy4LiECivguJnguLLguIQtCivguJnguLLguITguYDguIHguLXguYjguKLguKcKK+C4meC4suC4hOC5gOC4geC4teC5ieC4ouC4pwor4LiZ4Liy4LiE4LmA4LiB4Li14LmJ4Lii4Lin4LiB4Lij4Liw4Lir4Lin4Lix4LiUCivguJnguLLguITguYDguIHguLXguYjguKLguKfguJ7guKPguLDguKrguLjguYDguKHguKPguLgKK+C4meC4suC4hOC4l+C4meC4leC5jAor4LiZ4Liy4LiE4Lia4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJnguLLguITguJrguLLguKgKK+C4meC4suC4hOC4m+C4o+C4gQor4LiZ4Liy4LiE4Lib4Lix4LiBCivguJnguLLguITguJ7guLHguJnguJjguYwKK+C4meC4suC4hOC4owor4LiZ4Liy4LiE4Lij4Lin4LiiCivguJnguLLguITguKPguLLguIoKK+C4meC4suC4hOC4o+C4suC4iuC5geC4nOC4peC4h+C4pOC4l+C4mOC4tOC5jAor4LiZ4Liy4LiE4Lil4LiU4LiyCivguJnguLLguITguYDguKXguYjguJnguJnguYnguLMKK+C4meC4suC4hOC4p+C4tOC4luC4tQor4LiZ4Liy4LiE4Liq4Liw4LiU4Li44LmJ4LiHCivguJnguLLguITguKrguLHguIfguKfguLHguIjguInguKMKK+C4meC4suC4hOC4sgor4LiZ4Liy4LiE4Liy4Lin4LmC4Lil4LiBCivguJnguLLguITguLTguJnguJfguKPguYwKK+C4meC4suC4hOC4tQor4LiZ4Liy4LiE4Li54LmI4LmC4LiECivguJnguLLguYDguITguJnguJfguKPguYwKK+C4meC4suC5gOC4hOC4qAor4LiZ4Liy4LmA4LiE4Lio4Lin4LijCivguJnguLLguYLguITguKPguITguLTguJnguJfguKMKK+C4meC4suC4hwor4LiZ4Liy4LiH4LiB4Lij4Liy4LiiCivguJnguLLguIfguIHguKfguLHguIEKK+C4meC4suC4h+C5gOC4geC4peC5h+C4lAor4LiZ4Liy4LiH4LiH4Liy4LihCivguJnguLLguIfguIjguKPguLHguKUKK+C4meC4suC4h+C4iOC4uOC4oQor4LiZ4Liy4LiH4LiK4LihCivguJnguLLguIfguJTguLMKK+C4meC4suC4h+C4l+C5ieC4suC4pwor4LiZ4Liy4LiH4LiZ4Lin4LilCivguJnguLLguIfguJnguLnguJkKK+C4meC4suC4h+C5geC4meC4mgor4LiZ4Liy4LiH4LmD4LiZCivguJnguLLguIfguJrguLPguYDguKPguK0KK+C4meC4suC4h+C4nuC4jeC4sgor4LiZ4Liy4LiH4Lie4Lij4Liw4LiB4Liz4LiZ4Lix4LilCivguJnguLLguIfguJ/guYnguLIKK+C4meC4suC4h+C5gOC4oeC4t+C4reC4hwor4LiZ4Liy4LiH4LmE4Lih4LmJCivguJnguLLguIfguYHguKLguYnguKEKK+C4meC4suC4h+C4o+C4oQor4LiZ4Liy4LiH4Lij4Lih4LmD4Lir4LiN4LmICivguJnguLLguIfguKPguK3guIcKK+C4meC4suC4h+C4o+C5ieC4reC4h+C5hOC4q+C5iQor4LiZ4Liy4LiH4Lij4LizCivguJnguLLguIfguYDguKPguLXguKLguIcKK+C4meC4suC4h+C4peC5ieC4reC4oQor4LiZ4Liy4LiH4LmA4Lil4LmH4LiUCivguJnguLLguIfguYDguKXguLTguYnguIcKK+C4meC4suC4h+C4quC4meC4reC4h+C4nuC4o+C4sOC5guC4reC4qeC4kOC5jAor4LiZ4Liy4LiH4Liq4Liy4LinCivguJnguLLguIfguKvguIfguKrguYwKK+C4meC4suC4h+C4q+C5ieC4suC4oQor4LiZ4Liy4LiH4Lit4LmJ4Lit4LihCivguJnguLLguIfguK3guLLguKIKK+C4meC4suC4h+C5gOC4reC4gQor4LiZ4Liy4LiH4LmB4Lit4LmI4LiZCivguJnguLLguYDguIrguLTguIfguJfguKPguIcKK+C4meC4suC4jwor4LiZ4Liy4LiPLQor4LiZ4Liy4LiP4LiBCivguJnguLLguI/guIHguKPguKPguKEKK+C4meC4suC4j+C4lOC4meC4leC4o+C4tQor4LiZ4Liy4LiP4LiiLQor4LiZ4Liy4LiP4Lio4Li04Lil4Lib4LmMCivguJnguLLguJQKK+C4meC4suC4lOC4swor4LiZ4Liy4LiWCivguJnguLLguJcKK+C4meC4suC4l+C4tQor4LiZ4Liy4LiZCivguJnguYjguLLguJkKK+C4meC4suC4meC4meC4oQor4LiZ4LmI4Liy4LiZ4LiZ4LmJ4LizCivguJnguYjguLLguJnguJnguYnguLPguK3guLLguJPguLLguYDguILguJUKK+C4meC5iOC4suC4meC4n+C5ieC4sgor4LiZ4Liy4LiZ4Liq4Lit4LiH4LiZ4Liy4LiZCivguJnguLLguJnguYHguKrguJnguJnguLLguJkKK+C4meC4suC4meC4seC4hOC4o+C4qgor4LiZ4Liy4LiZ4Lix4LiV4LinCivguJnguLLguJnguLHguJvguIHguLLguKMKK+C4meC4suC4meC4sgor4LiZ4Liy4LiZ4Liy4LmA4LiZ4LiBCivguJnguLLguJnguLLguJvguKPguLDguIHguLLguKMKK+C4meC4suC5gOC4meC4gQor4LiZ4Liy4LiaCivguJnguLLguJrguILguYnguLLguKcKK+C4meC4suC4m+C4o+C4seC4hwor4LiZ4Liy4Lib4Li1CivguJnguLLguJ/guLLguIfguKXguK3guKIKK+C4meC4suC4oOC4tAor4LiZ4Liy4Lig4Li1CivguJnguLLguKEKK+C4meC4suC4oS0KK+C4meC4suC4oeC4geC4owor4LiZ4Liy4Lih4LiY4Lij4Lij4LihCivguJnguLLguKHguYTguJjguKIKK+C4meC4suC4oeC4muC4seC4leC4owor4LiZ4Liy4Lih4Lib4Liy4LiB4LiB4LiyCivguJnguLLguKHguYHguJ3guIcKK+C4meC4suC4oeC4quC4geC4uOC4pQor4LiZ4Liy4Lih4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguLLguKHguKrguKHguI3guLIKK+C4meC4suC4oeC4suC4meC4uOC4geC4o+C4oQor4LiZ4Liy4Lih4Liy4LiZ4Li44Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLLguKHguLLguKDguLTguYTguJjguKIKK+C4meC4suC5gOC4oeC4t+C4reC4hwor4LiZ4Liy4LiiCivguJnguYjguLLguKIKK+C4meC4suC4ouC4gQor4LiZ4Liy4Lii4LiB4LmA4LiX4Lio4Lih4LiZ4LiV4Lij4Li1CivguJnguLLguKLguIHguKPguLHguJDguKHguJnguJXguKPguLUKK+C4meC4suC4ouC4h+C4suC4mQor4LiZ4Liy4Lii4LmA4LiH4Li04LiZCivguJnguLLguKLguIjguYnguLLguIcKK+C4meC4suC4ouC4leC4o+C4p+C4iAor4LiZ4Liy4Lii4LiX4LmI4LiyCivguJnguLLguKLguJfguYnguLLguKIKK+C4meC4suC4ouC4l+C4uOC4mQor4LiZ4Liy4Lii4LiY4LiHCivguJnguLLguKLguJvguKPguLDguIHguLHguJkKK+C4meC4suC4ouC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiZ4Liy4Lii4LmC4Lij4LiHCivguJnguLLguKLguKfguYjguLLguILguLXguYnguILguYnguLLguJ7guKXguK3guKIKK+C4meC4suC4ouC5gOC4p+C4owor4LiZ4Liy4Lii4Lir4LiZ4LmJ4LiyCivguJnguLLguKLguK3guLLguIHguKMKK+C4meC4suC4ouC4reC4s+C5gOC4oOC4rQor4LiZ4Liy4Lii4Li04LiB4LiyCivguJnguLLguKPguLIKK+C4meC4suC4o+C4suC4ouC4k+C5jAor4LiZ4Liy4Lij4Liy4Lii4LiT4LmM4LiX4Lij4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguJnguLLguKPguLLguKLguJPguYzguJvguKPguLDguKXguK3guIfguKjguLTguKXguJvguYwKK+C4meC4suC4o+C4suC4ouC4k+C5jOC4q+C4seC4leC4luC5jAor4LiZ4Liy4Lij4Li1CivguJnguLLguKPguLXguJrguLnguKMKK+C4meC4suC4o+C4teC4nOC4pQor4LiZ4Liy4Lij4Li14Liq4Li54LijCivguJnguLLguYDguKPguKgKK+C4meC4suC4peC4tOC4p+C4seC4mQor4LiZ4Liy4Lil4Li1CivguJnguLLguKcKK+C4meC5ieC4suC4pwor4LiZ4Liy4Lin4LiyCivguJnguLLguKfguLTguIEKK+C4meC4suC4p+C4tOC4gS0KK+C4meC4suC4p+C4tOC4geC5guC4ouC4mOC4tOC4mQor4LiZ4Liy4Lin4Li04LiZCivguJnguLLguKfguLUKK+C4meC4suC5gOC4p+C4qAor4LiZ4Liy4LioCivguJnguLLguKrguKfguJkKK+C4meC4suC4quC4sgor4LiZ4Liy4Liq4Li04LiBCivguJnguLLguKvguKfguYjguLLguJkKK+C4meC4suC4rOC4tOC4geC4sgor4LiZ4Liy4Lis4Li04LiB4Liy4LmB4LiU4LiUCivguJnguLLguKzguLTguIHguLLguJfguKPguLLguKIKK+C4meC4suC4rOC4tOC4geC4suC4meC5ieC4swor4LiZ4Liy4Lis4Li04LmA4LiBCivguJnguLLguKzguLUKK+C4meC4swor4LiZ4LmJ4LizCivguJnguYnguLPguIHguKPguJQKK+C4meC5ieC4s+C4geC4o+C4sOC4lOC5ieC4suC4hwor4LiZ4LmJ4Liz4LiB4Lij4Liw4Liq4Liy4LiiCivguJnguYnguLPguIHguLDguJfguLQKK+C4meC5ieC4s+C4geC4suC4oQor4LiZ4LmJ4Liz4LmA4LiB4Lil4Li34LitCivguJnguYnguLPguYDguIHguLTguJQKK+C4meC5ieC4s+C4guC4suC4pwor4LiZ4LmJ4Liz4LiC4LmJ4Liy4LinCivguJnguYnguLPguILguLbguYnguJkKK+C4meC5ieC4s+C4guC4tuC5ieC4meC5g+C4q+C5ieC4o+C4teC4muC4leC4seC4gQor4LiZ4LmJ4Liz4LiC4Li44LmI4LiZ4LmE4Lin4LmJ4LmD4LiZIOC4meC5ieC4s+C5g+C4quC5hOC4p+C5ieC4meC4reC4gQor4LiZ4LmJ4Liz4LmB4LiC4LmH4LiHCivguJnguYnguLPguYHguILguYfguIfguYHguKvguYnguIcKK+C4meC5ieC4s+C4hOC4o+C4swor4LiZ4LmJ4Liz4LiE4Lij4LmI4LizCivguJnguYnguLPguITguLHguJkKK+C4meC5ieC4s+C4hOC5ieC4suC4hwor4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiH4LmB4LiC4LmH4LiHCivguJnguYnguLPguITguLLguKfguJvguKXguLIKK+C4meC5ieC4s+C4hOC4swor4LiZ4LmJ4Liz4LmA4LiE4LmH4LihCivguJnguYnguLPguYDguITguKIKK+C4meC5ieC4s+C5gOC4h+C4tOC4mQor4LiZ4LmJ4Liz4LiI4Lix4LiT4LiR4LmMCivguJnguLPguIjguLHguJoKK+C4meC5ieC4s+C4iOC4tOC5ieC4oQor4LiZ4LmJ4Liz4LmD4LiICivguJnguYnguLPguYPguIjguYPguITguKPguYgKK+C4meC5ieC4s+C4iuC4mQor4LiZ4LmJ4Liz4LiK4Li44LiaCivguJnguYnguLPguYDguIrguLXguYjguKLguKfguK3guKLguYjguLLguILguKfguLLguIfguYDguKPguLfguK0KK+C4meC5ieC4s+C5gOC4iuC4t+C5ieC4rQor4LiZ4LmJ4Liz4LmA4LiK4Li34LmI4Lit4LihCivguJnguYnguLPguIvguLHguJoKK+C4meC5ieC4s+C4i+C4suC4p+C4guC5ieC4suC4pwor4LiZ4LmJ4Liz4LiL4Li24LihCivguJnguYnguLPguIvguLbguKHguJrguYjguK3guJfguKPguLLguKIKK+C4meC5ieC4s+C4lOC4reC4geC5hOC4oeC5iQor4LiZ4LmJ4Liz4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4LiX4LioCivguJnguYnguLPguJTguK3guIHguYTguKHguYnguKrguJQKK+C4meC5ieC4s+C4lOC4seC4muC5hOC4nwor4LiZ4LmJ4Liz4LiU4Li04LiaCivguJnguYnguLPguJTguLUKK+C4meC5ieC4s+C4leC4gQor4LiZ4LmJ4Liz4LiV4LmJ4Lit4LiiCivguJnguYnguLPguJXguLDguIHguLkKK+C4meC5ieC4s+C4leC4sOC5guC4gQor4LiZ4LmJ4Liz4LiV4Liw4LmE4LiE4Lij4LmJCivguJnguYnguLPguJXguLHguJoKK+C4meC5ieC4s+C4leC4sgor4LiZ4LmJ4Liz4LiV4Liy4LmA4LiK4LmH4LiU4Lir4Lix4Lin4LmA4LiC4LmI4LiyCivguJnguYnguLPguJXguLLguJXguIHguYPguJkKK+C4meC5ieC4s+C4leC4suC5gOC4l+C4teC4ouC4mQor4LiZ4LmJ4Liz4LiV4Liy4LiiCivguJnguYnguLPguJXguLLguKUKK+C4meC5ieC4s+C4leC4suC4peC5g+C4geC4peC5ieC4oeC4lCDguYPguITguKPguIjguLDguK3guJTguYTguJTguYkKK+C4meC5ieC4s+C4leC4suC4peC4iOC4teC4mQor4LiZ4LmJ4Liz4LmA4LiV4LmJ4LiyCivguJnguYnguLPguYPguJXguYnguJTguLTguJkKK+C4meC5ieC4s+C4l+C4o+C4hwor4LiZ4LmJ4Liz4LiX4LmI4Lin4Lih4LiX4Li44LmI4LiHIOC4nOC4seC4geC4muC4uOC5ieC4h+C5guC4q+C4o+C4h+C5gOC4q+C4o+C4hwor4LiZ4LmJ4Liz4LiX4LmI4Lin4Lih4Lib4Liy4LiBCivguJnguYnguLPguJfguYjguLIKK+C4meC4s+C4l+C4suC4hwor4LiZ4LmJ4Liz4LiX4Li54LiZ4Lir4Lix4LinCivguJnguLPguYDguJfguLXguYjguKLguKcKK+C4meC5ieC4s+C5hOC4l+C4ogor4LiZ4LmJ4Liz4LiZ4LihCivguJnguYnguLPguJnguKHguYHguKHguKcKK+C4meC5ieC4s+C4meC4oeC4o+C4suC4iuC4quC4teC4q+C5jAor4LiZ4LmJ4Liz4LiZ4Lin4LilCivguJnguYnguLPguJnguK3guIcKK+C4meC5ieC4s+C4meC4reC4meC4hOC4peC4reC4hwor4LiZ4LmJ4Liz4LiZ4LmJ4Lit4Lii4LmB4Lie4LmJ4LmE4LifCivguJnguYnguLPguJnguLTguYjguIfguYTguKvguKXguKXguLbguIEKK+C4meC5ieC4s+C4muC5iOC4reC4meC5ieC4reC4ogor4LiZ4LmJ4Liz4LmC4Lia4LiiCivguJnguYnguLPguJvguKPguLDguKrguLLguJnguJfguK3guIcKK+C4meC5ieC4s+C4m+C4peC4sgor4LiZ4LmJ4Liz4Lib4LmI4LiyCivguJnguYnguLPguJzguKXguLbguIEKK+C4meC5ieC4s+C4nOC4tuC5ieC4hwor4LiZ4LmJ4Liz4Lie4Lij4Liw4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Liq4Lix4LiV4Lii4LiyCivguJnguYnguLPguJ7guKPguLTguIEKK+C4meC5ieC4s+C4nuC4o+C4tOC4geC5gOC4nOC4sgor4LiZ4LmJ4Liz4Lie4Lix4LiB4LiZ4LmJ4Liz4LmB4Lij4LiHCivguJnguLPguJ7guLIKK+C4meC5ieC4s+C4nuC4tuC5iOC4h+C5gOC4o+C4t+C4reC5gOC4quC4t+C4reC4nuC4tuC5iOC4h+C4m+C5iOC4sgor4LiZ4LmJ4Liz4Lie4Li4CivguJnguYnguLPguKHguJnguJXguYwKK+C4meC5ieC4s+C4oeC4meC4leC4o+C5jAor4LiZ4LmJ4Liz4Lih4Lix4LiZCivguJnguYnguLPguKHguLHguJnguIHguYrguLLguJQKK+C4meC5ieC4s+C4oeC4seC4meC5gOC4guC4teC4ouC4pwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguJnguYnguLPguKHguLHguJnguIjguLHguJnguJfguJnguYwKK+C4meC5ieC4s+C4oeC4seC4meC5guC4i+C4peC4sgor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiU4Li04LiZCivguJnguYnguLPguKHguLHguJnguJTguLTguJoKK+C4meC5ieC4s+C4oeC4seC4meC4lOC4teC5gOC4i+C4pQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiV4Liy4LiZ4Li1CivguJnguYnguLPguKHguLHguJnguYDguJXguLIKK+C4meC5ieC4s+C4oeC4seC4meC5gOC4muC4meC4i+C4tOC4mQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lie4Lij4Liy4LiiCivguJnguYnguLPguKHguLHguJnguKHguJnguJXguKPguYwKK+C4meC5ieC4s+C4oeC4seC4meC4ouC4suC4hwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lij4Liw4LiB4LizCivguJnguYnguLPguKHguLHguJnguKrguJkKK+C4meC5ieC4s+C4oeC4seC4meC4quC4peC4seC4lAor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lir4Lih4LmI4Lit4LiHCivguJnguYnguLPguKHguLHguJnguKvguKXguYjguK3guKXguLfguYjguJkKK+C4meC5ieC4s+C4oeC4suC4m+C4peC4suC4geC4tOC4meC4oeC4lCDguJnguYnguLPguKXguJTguKHguJTguIHguLTguJnguJvguKXguLIKK+C4meC5ieC4s+C4oeC4t+C4rQor4LiZ4LmJ4Liz4Lih4Li54LiBCivguJnguYnguLPguYDguKHguLIKK+C4meC5ieC4s+C4ouC5iOC4reC4ogor4LiZ4LmJ4Liz4Lii4LiyCivguJnguYnguLPguKLguLLguYDguITguKHguLUKK+C4meC5ieC4s+C5gOC4ouC5h+C4meC4m+C4peC4suC4leC4suC4ogor4LiZ4Liz4Lij4LmI4Lit4LiHCivguJnguYnguLPguKPguYnguK3guJnguJvguKXguLLguYDguJvguYfguJkKK+C4meC5ieC4s+C4o+C4seC4gQor4LiZ4LmJ4Liz4LmB4Lij4LmICivguJnguYnguLPguKXguIcKK+C4meC5ieC4s+C4peC4lOC4leC4reC4nOC4uOC4lAor4LiZ4LmJ4Liz4Lil4Liw4Lin4LmJ4LiyCivguJnguYnguLPguKXguLLguKIKK+C4meC5ieC4s+C4peC4suC4ouC4quC4rQor4LiZ4LmJ4Liz4Lil4Liy4Lii4Lir4LiBCivguJnguYnguLPguKXguLLguKLguYTguKvguKUKK+C4meC5ieC4s+C5gOC4peC4teC5ieC4ouC4hwor4LiZ4LmJ4Liz4Lin4LiZCivguJnguYnguLPguKfguYnguLIKK+C4meC5ieC4s+C5hOC4pwor4LiZ4LmJ4Liz4Liq4LmJ4LihCivguJnguYnguLPguKrguYnguKHguKrguLLguKLguIrguLkKK+C4meC4s+C4quC4oeC4seC4ogor4LiZ4LmJ4Liz4Liq4Lix4LiH4LiC4LmMCivguJnguYnguLPguKrguLHguYjguIfguJ/guYnguLIg4Lib4Lil4Liy4Liq4Lix4LmI4LiH4Lid4LiZCivguJnguLPguKrguLfguJoKK+C4meC5ieC4s+C4quC4uOC4gQor4LiZ4LmJ4Liz4LmA4Liq4Li14Lii4LiHCivguJnguLPguYHguKrguJTguIcKK+C4meC5ieC4s+C4q+C4meC4p+C4gQor4LiZ4LmJ4Liz4Lir4LiZ4Lix4LiBCivguJnguYnguLPguKvguJnguYnguLIKK+C4meC5ieC4s+C4q+C4meC4tuC5iOC4hwor4LiZ4LmJ4Liz4Lir4LiZ4Li24LmI4LiH4LmD4LiI4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguJnguYnguLPguKvguKHguLLguIEKK+C4meC5ieC4s+C4q+C4reC4oQor4LiZ4LmJ4Liz4LmA4Lir4Lil4Li34Lit4LiHCivguJnguYnguLPguYDguKvguKXguLfguK3guIfguJnguYnguLPguJXguLLguKUKK+C4meC5ieC4s+C5hOC4q+C4peC5hOC4n+C4lOC4seC4mgor4LiZ4LmJ4Liz4Lit4LiU4LiZ4LmJ4Liz4LiX4LiZCivguJnguYnguLPguK3guJoKK+C4meC5ieC4s+C4reC4muC4neC4o+C4seC5iOC4hwor4LiZ4LmJ4Liz4Lit4LmI4Lit4LiZCivguJnguYnguLPguK3guYnguK3guKIKK+C4meC5ieC4s+C4reC4seC4lOC4peC4oQor4LiZ4LmJ4Liz4Lit4Liy4Lia4LiH4Lix4LinCivguJnguLQKK+C4meC4tOC4geC5gOC4geC4tOC4pQor4LiZ4Li04LiB4LiC4LiwCivguJnguLTguIHguILguLHguJnguJXguYwKK+C4meC4tOC4geC4owor4LiZ4Li04LiB4Lij4Lit4Lii4LiU4LmMCivguJnguLTguIHguLLguKIKK+C4meC4tOC4hOC4oQor4LiZ4Li04LiE4Lih4LiX4Li14LmI4LiU4Li04LiZCivguJnguLTguITguKHguKrguKPguYnguLLguIfguJXguJnguYDguK3guIcKK+C4meC4tOC4hOC4oeC4quC4q+C4geC4o+C4k+C5jAor4LiZ4Li04LiE4Lih4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihCivguJnguLTguITguKPguJnguJbguYwKK+C4meC4tOC4hOC4qy0KK+C4meC4tOC4hOC4q+C4geC4o+C4o+C4oQor4LiZ4Li04LiE4Lir4LiwCivguJnguLTguITguKvguLTguJUKK+C4meC4tOC4hOC4suC4peC4seC4ogor4LiZ4Li04LiE4Liy4Lir4LiBCivguJnguLTguITguLLguKvguIEtCivguJnguLTguYDguITguKPguLLguLDguKvguYwKK+C4meC4tOC5guC4hOC4leC4tOC4mQor4LiZ4Li04LmC4LiE4Lij4LiYCivguJnguLTguYLguITguKPguKEKK+C4meC4tOC4hwor4LiZ4Li04LmI4LiHCivguJnguLTguYjguIfguYDguIfguLXguKLguJoKK+C4meC4tOC5iOC4h+C5gOC4ieC4ogor4LiZ4Li04LmI4LiH4LmB4LiZ4LmICivguJnguLTguIgKK+C4meC4tOC4iC0KK+C4meC4tOC4iOC4qOC4teC4pQor4LiZ4Li04LiUCivguJnguLTguJTguYDguJTguLXguKLguKcKK+C4meC4tOC4lOC4q+C4meC5iOC4reC4ogor4LiZ4Li04LiU4Lir4LiZ4Li24LmI4LiHCivguJnguLTguJXguKItCivguJnguLTguJXguKLguYwKK+C4meC4tOC4leC4ouC4l+C4suC4mQor4LiZ4Li04LiV4Lii4Lig4Lix4LiVCivguJnguLTguJXguKLguKrguLLguKMKK+C4meC4tOC4leC4tAor4LiZ4Li04LiV4Li04LiB4LijCivguJnguLTguJXguLTguIHguKPguJPguYwKK+C4meC4tOC4leC4tOC4geC4o+C4o+C4oQor4LiZ4Li04LiV4Li04LiB4Liy4LijCivguJnguLTguJXguLTguIHguLLguKPguJPguYwKK+C4meC4tOC4leC4tOC4mOC4o+C4o+C4oQor4LiZ4Li04LiV4Li04LiZ4Lix4LiiCivguJnguLTguJXguLTguJrguLHguI3guI3guLHguJXguLQKK+C4meC4tOC4leC4tOC4muC4uOC4hOC4hOC4pQor4LiZ4Li04LiV4Li04Lig4Liy4Lin4LiwCivguJnguLTguJXguLTguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYwKK+C4meC4tOC4leC4tOC5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jAor4LiZ4Li04LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguJXguLTguKrguKHguKHguJXguLQKK+C4meC4tOC4leC4tOC4quC4seC4oeC4nuC4seC4meC4mOC5jAor4LiZ4Li04LiV4Li04LmA4Lir4LiV4Li4CivguJnguLTguJfguKMKK+C4meC4tOC4l+C4o+C4o+C4qOC4geC4suC4owor4LiZ4Li04LiX4Lij4LiyCivguJnguLTguJfguKPguLLguKPguKHguJPguYwKK+C4meC4tOC4l+C4seC4qOC4meC5jAor4LiZ4Li04LiX4Liy4LiGCivguJnguLTguJfguLLguJkKK+C4meC4tOC4l+C4suC4meC4p+C4iOC4meC4sAor4LiZ4Li04LmA4LiX4LioCivguJnguLTguYDguJfguKjguKjguLLguKrguJXguKPguYwKK+C4meC4tOC4mOC4suC4mQor4LiZ4Li04LiY4Li0CivguJnguLTguJnguJfguLIKK+C4meC4tOC4meC4meC4sAor4LiZ4Li04LiZ4LiZ4Liy4LiXCivguJnguLTguJnguKvguLjguJUKK+C4meC4tOC4meC4suC4lwor4LiZ4Li04Lia4Liy4LiVCivguJnguLTguJvguKPguLTguKLguLLguKIKK+C4meC4tOC4m+C4seC4iOC4geC4suC4owor4LiZ4Li04Lie4LiI4LiZ4LmMCivguJnguLTguJ7guJnguJjguYwKK+C4meC4tOC4nuC4nuC4suC4mQor4LiZ4Li04Lie4Lie4Li04LiX4LiyCivguJnguLTguJ7guJ7guLTguJfguLLguI3guLLguJMKK+C4meC4tOC4nuC4seC4l+C4mC0KK+C4meC4tOC4nuC4seC4l+C4mOC5jAor4LiZ4Li04Lie4Lix4LiX4LiY4LiB4Li44Lio4LilCivguJnguLTguJ7guLHguJnguJjguYwKK+C4meC4tOC4nuC4tOC4lwor4LiZ4Li04LmA4Lie4LiXCivguJnguLTguKDguLIKK+C4meC4tOC5iOC4oQor4LiZ4Li04LmJ4LihCivguJnguLTguKHguJnguJXguYwKK+C4meC4tOC5iOC4oeC4meC4p+C4pQor4LiZ4Li04Lih4Lih4Liy4LiZCivguJnguLTguKHguKHguLLguJnguKPguJTguLUKK+C4meC4tOC4oeC4tOC4lQor4LiZ4Li04Lii4LiVCivguJnguLTguKLguJUtCivguJnguLTguKLguKEKK+C4meC4tOC4ouC4oeC4meC4tOC4ouC4suC4ogor4LiZ4Li04Lii4Lii4Liy4LiZCivguJnguLTguKLguKLguLLguJnguLTguIEtCivguJnguLTguKLguLHguJXguLTguJnguLTguKLguKEKK+C4meC4tOC4ouC4suC4oQor4LiZ4Li04Lii4Liy4LiiCivguJnguLTguKLguLjguJUKK+C4meC4tOC4owor4LiZ4Li04Lij4LiE4Li44LiTCivguJnguLTguKPguYLguIbguKkKK+C4meC4tOC4o+C4iuC4owor4LiZ4Li04Lij4LiK4Lij4LiyCivguJnguLTguKPguJfguLjguIHguILguYwKK+C4meC4tOC4o+C5gOC4l+C4qAor4LiZ4Li04Lij4LmC4LiX4LipCivguJnguLTguKPguYLguJfguKnguIHguKPguKPguKEKK+C4meC4tOC4o+C4meC4seC4ogor4LiZ4Li04Lij4LiZ4Liy4LihCivguJnguLTguKPguJ7guLHguJXguKMKK+C4meC4tOC4o+C4oOC4seC4ogor4LiZ4Li04Lij4Lih4LilCivguJnguLTguKPguKHguLLguJMKK+C4meC4tOC4o+C4oeC4suC4k+C4geC4suC4ogor4LiZ4Li04Lij4Lih4Liy4LiZCivguJnguLTguKPguKHguLTguJUKK+C4meC4tOC4o+C4oi0KK+C4meC4tOC4o+C4ouC4muC4suC4pQor4LiZ4Li04Lij4Lix4LiV4Li04Lio4Lix4LiiCivguJnguLTguKPguLHguJnguJTguKMKK+C4meC4tOC4o+C4seC4meC4leC4oy0KK+C4meC4tOC4o+C4seC4meC4leC4o+C4suC4ogor4LiZ4Li04Lij4Lix4Lie4Lie4Li44LiXCivguJnguLTguKPguLIKK+C4meC4tOC4o+C4suC4nuC4suC4mAor4LiZ4Li04Lij4Liy4Lih4Lix4LiiCivguJnguLTguKPguLLguKHguLTguKkKK+C4meC4tOC4o+C4suC4peC4seC4ogor4LiZ4Li04Lij4Liy4LioCivguJnguLTguKPguLLguKjguKPguJ4KK+C4meC4tOC4o+C4suC4qOC4o+C4seC4ogor4LiZ4Li04Lij4Li04LiZ4LiY4LiZ4LmMCivguJnguLTguKPguLTguJnguJjguJnguJ7guLTguJnguLLguKgKK+C4meC4tOC4o+C4uOC4geC4leC4tAor4LiZ4Li04Lij4Li44LiB4LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguKPguLjguJXguJXguLQKK+C4meC4tOC4o+C4uOC4leC4leC4tOC4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4LiZ4Li04Lij4Li44LiX4LiBCivguJnguLTguKPguLjguJfguJjguYwKK+C4meC4tOC5guC4o+C4igor4LiZ4Li04LmC4Lij4LiYCivguJnguLTguYLguKPguJgtCivguJnguLTguYLguKPguJjguKrguKHguLLguJrguLHguJXguLQKK+C4meC4tOC4pQor4LiZ4Li04LilLQor4LiZ4Li04Lil4Lia4Lix4LiV4LijCivguJnguLTguKXguJvguLHguJfguKHguYwKK+C4meC4tOC4peC4o+C4seC4leC4meC5jAor4LiZ4Li04Lil4Li44Lia4LilCivguJnguLTguYLguKXguJXguJrguKUKK+C4meC4tOC5guC4peC4muC4pQor4LiZ4Li04LmI4LinCivguJnguLTguYnguKcKK+C4meC4tOC4p+C4hOC4peC4tOC4reC4tOC4gQor4LiZ4Li04Lin4LmA4LiE4Lil4Li14Lii4Lij4LmMCivguJnguLTguKfguYDguITguKXguLXguKLguKoKK+C4meC4tOC4p+C4leC4o+C4reC4mQor4LiZ4Li04Lin4Lij4LiT4LmMCivguJnguLTguYnguKfguYTguKvguJnguKPguYnguLLguKLguIHguYfguJXguLHguJTguJnguLTguYnguKfguJnguLHguYnguJkKK+C4meC4tOC4p+C4seC4lQor4LiZ4Li04Lin4Lix4LiV4LiZ4LmMCivguJnguLTguKfguLLguJUKK+C4meC4tOC4p+C4suC4qgor4LiZ4Li04LmA4Lin4LioCivguJnguLTguYDguKfguKgtCivguJnguLTguYDguKfguKjguJnguYwKK+C4meC4tOC5gOC4p+C4qOC4p+C4tOC4l+C4ouC4sgor4LiZ4Li04Lio4LiyCivguJnguLTguKjguLLguIHguKMKK+C4meC4tOC4qOC4suC4geC4suC4pQor4LiZ4Li04Lio4Liy4LiE4LihCivguJnguLTguKjguLLguIrguKUKK+C4meC4tOC4qOC4suC4l+C4tAor4LiZ4Li04Lio4Liy4LiZ4Liy4LiWCivguJnguLTguKjguLLguJrguJTguLUKK+C4meC4tOC4qOC4suC4oeC4k+C4tQor4LiZ4Li04Lio4Liy4Lij4Lix4LiV4LiZ4LmMCivguJnguLTguKnguIHguKPguKEKK+C4meC4tOC4qeC4suC4lwor4LiZ4Li04Liq4LigLQor4LiZ4Li04Liq4Lix4LiKCivguJnguLTguKrguLHguIrguIrguLLguIHguLLguKMKK+C4meC4tOC4quC4seC4ogor4LiZ4Li04Liq4Lix4Lii4LmD4LiI4LiE4LitCivguJnguLTguKrguLLguJcKK+C4meC4tOC4quC4tOC4lQor4LiZ4Li04Liq4Li14LiX4LiZLQor4LiZ4Li04Liq4Li14LiX4LiZ4LiwCivguJnguLTguKrguLXguJfguJnguLLguIHguLLguKMKK+C4meC4tOC5gOC4quC4mAor4LiZ4Li14LmICivguJnguLXguYkKK+C4meC4teC4leC4tAor4LiZ4Li14LiV4Li04LiY4Lij4Lij4LihCivguJnguLXguJXguLTguKjguLLguKrguJXguKPguYwKK+C4meC4teC5iOC4meC4seC4mQor4LiZ4Li14LmI4LmB4LiZ4LmI4LiwCivguJnguLXguKMtCivguJnguLXguKPguIjguKMKK+C4meC4teC4o+C4igor4LiZ4Li14Lij4LiZ4Liy4LiXCivguJnguLXguYjguYHguKvguKXguLAKK+C4meC4teC4reC4reC4mQor4LiZ4Li14LmI4LmA4Lit4LiHCivguJnguLXguYLguK3guJTguLTguYDguKHguLXguKLguKEKK+C4meC4tuC4gQor4LiZ4Li24LiB4LiE4Li04LiUCivguJnguLbguIHguJTguLkKK+C4meC4tuC4geC4luC4tuC4hwor4LiZ4Li24LiB4LmA4Lir4LmH4LiZCivguJnguLbguIHguK3guK3guIEKK+C4meC4tuC5iOC4hwor4LiZ4Li24LmI4LiH4Lir4Lih4LmJ4Lit4LmA4LiB4Lil4Li34LitCivguJnguLgKK+C4meC4uOC4hwor4LiZ4Li44LmI4LiHCivguJnguLjguYjguIfguIHguKPguLDguYLguIjguKHguK3guIEKK+C4meC4uOC5iOC4h+C5gOC4iOC4teC4ouC4oeC4q+C5iOC4oeC5gOC4iOC4teC4ouC4oQor4LiZ4Li44LiH4LiW4Li44LiHCivguJnguLjguIfguJnguLHguIcKK+C4meC4uOC5iOC4h+C4q+C5iOC4oQor4LiZ4Li44LiKCivguJnguLjguJQKK+C4meC4uOC4lQor4LiZ4Li44LmI4LiZCivguJnguLjguYjguKEKK+C4meC4uOC5iOC4oeC4meC4p+C4pQor4LiZ4Li44LmI4Lih4LiZ4Li04LmI4LihCivguJnguLjguYjguKHguYDguJnguLfguYnguK0KK+C4meC4uOC5ieC4ogor4LiZ4Li54LiZCivguJnguLnguYjguJkKK+C4meC4ueC5ieC4mQor4LmA4LiZ4LiB4LiC4LiwCivguYDguJnguIHguILguLHguKEKK+C5gOC4meC5iOC4hwor4LmA4LiZ4LiV4Lia4Lit4LilCivguYDguJnguJXguKMKK+C5gOC4meC4leC4tAor4LmA4LiZ4LiV4Li04Lia4Lix4LiT4LiR4Li04LiVCivguYDguJnguYnguJkKK+C5gOC4meC4muC4tOC4p+C4peC4sgor4LmA4LiZ4Lib4LiI4Li54LiZCivguYDguJnguJvguJfguLnguYDguJnguLXguKLguKEKK+C5gOC4meC4oeC4tAor4LmA4LiZ4Lih4Li04LiV4LiBLQor4LmA4LiZ4Lih4Li04LiV4LiB4LiZ4Liy4LihCivguYDguJnguKHguLTguJXguIHguLAKK+C5gOC4meC4ogor4LmA4LiZ4Lii4LmA4LiX4Li14Lii4LihCivguYDguJnguKLguYPguKoKK+C5gOC4meC4o+C4geC4seC4k+C4kOC4tQor4LmA4LiZ4Lij4LiE4Li44LiTCivguYDguJnguKPguYDguJfguKgKK+C5gOC4meC4o+C4meC4suC4lAor4LmA4LiZ4Lij4LiZ4Liy4LiWCivguYDguJnguKPguKHguLTguJUKK+C5gOC4meC4o+C4sOC4nuC4ueC4quC4tQor4LmA4LiZ4Lip4Liy4LiXCivguYDguJnguK0KK+C5gOC4meC5ieC4rQor4LmA4LiZ4LiyCivguYDguJnguYjguLIKK+C5gOC4meC5iOC4suC5hOC4nwor4LmA4LiZ4Liy4LinLQor4LmA4LiZ4Liy4Lin4LiZ4Li04LiVCivguYDguJnguLLguKfguKPguLHguJXguJnguYwKK+C5gOC4meC4tOC4mQor4LmA4LiZ4Li04LmI4LiZCivguYDguJnguLTguYjguJnguYYKK+C5gOC4meC4tOC5iOC4meC4meC4suC4mQor4LmA4LiZ4Li04LiaCivguYDguJnguLTguJrguYYKK+C5gOC4meC4tOC4muC4meC4suC4mgor4LmA4LiZ4Li14Lii4LiHCivguYDguJnguLXguKLguJkKK+C5gOC4meC4teC4ouC4oQor4LmA4LiZ4Li14Lii4LijCivguYDguJnguLXguKLguKPguJfguLjguIHguILguYwKK+C5gOC4meC4teC4ouC4o+C5gOC4l+C4qAor4LmA4LiZ4Li14Lii4Lij4LiZ4Liy4LiXCivguYDguJnguLfguYnguK0KK+C5gOC4meC4t+C5ieC4reC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LmA4LiZ4Li34LmJ4Lit4LiE4Lin4Liy4LihCivguYDguJnguLfguYnguK3guITguLnguYgKK+C5gOC4meC4t+C5ieC4reC5gOC4hOC5h+C4oQor4LmA4LiZ4Li34Lit4LiHCivguYDguJnguLfguK3guIfguYYKK+C5gOC4meC4t+C5iOC4reC4hwor4LmA4LiZ4Li34LmI4Lit4LiH4LiI4Liy4LiBCivguYDguJnguLfguYjguK3guIfguJTguYnguKfguKIKK+C5gOC4meC4t+C5iOC4reC4h+C5geC4leC5iAor4LmA4LiZ4Li34Lit4LiH4LiZ4Lit4LiHCivguYDguJnguLfguK3guIfguJnguLTguJXguKLguYwKK+C5gOC4meC4t+C4reC4h+C5geC4meC5iOC4mQor4LmA4LiZ4Li34LmJ4Lit4LiH4Lit4LiBCivguYDguJnguLfguYnguK3guJXguLHguKcKK+C5gOC4meC4t+C5ieC4reC4leC4suC4ogor4LmA4LiZ4Li34LmJ4Lit4LmA4LiV4LmI4Liy4Lii4Liz4LmA4LiV4LmI4LiyCivguYDguJnguLfguYnguK3guJbguYnguK3guKLguIHguKPguLDguJfguIfguITguKfguLLguKEKK+C5gOC4meC4t+C5ieC4reC4l+C4o+C4suC4ogor4LmA4LiZ4Li34LmJ4Lit4LiX4Li14LmICivguYDguJnguLfguYnguK3guYHguJfguYkKK+C5gOC4meC4t+C5ieC4reC5gOC4m+C4t+C5iOC4reC4ogor4LmA4LiZ4Li34LmJ4Lit4LmA4Lie4Lil4LiHCivguYDguJnguLfguYnguK3guYTguKHguYkKK+C5gOC4meC4t+C4reC4ogor4LmA4LiZ4Li34Lit4Lii4LmGCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK0KK+C5gOC4meC4t+C5ieC4reC5gOC4ouC4t+C5iOC4reC4geC4peC5ieC4suC4oeC5gOC4meC4t+C5ieC4rQor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmI4Lit4Lia4Li44Lic4Li04LinCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK3guJvguKPguLDguKrguLLguJcKK+C5gOC4meC4t+C5ieC4reC5gOC4ouC4t+C5iOC4reC4ouC4tuC4lOC4leC5iOC4rQor4LmA4LiZ4Li34LmJ4Lit4Lij4LmJ4Lit4LiHCivguYDguJnguLfguYnguK3guKPguYnguLLguKIKK+C5gOC4meC4t+C5ieC4reC5gOC4o+C4t+C5iOC4reC4hwor4LmA4LiZ4Li34LmJ4Lit4Liq4Lih4Lix4LiZCivguYDguJnguLfguYnguK3guKvguLIKK+C5gOC4meC4t+C5ieC4reC4reC5iOC4reC4mQor4LmB4LiZ4LmICivguYHguJnguYjguIcKK+C5geC4meC5iOC4h+C4meC5ieC4reC4ogor4LmB4LiZ4LmI4LmD4LiICivguYHguJnguYjguIrguLHguJQKK+C5geC4meC5iOC5geC4l+C5iQor4LmB4LiZ4LmI4LiZCivguYHguJnguYjguJnguILguJnguLHguJQKK+C5geC4meC5iOC4meC4l+C5ieC4reC4hwor4LmB4LiZ4LmI4LiZ4LiZ4Lix4LiZ4LiV4LmMCivguYHguJnguYjguJnguYHguJ/guYnguJkKK+C5geC4meC5iOC4meC4q+C4meC4sgor4LmB4LiZ4LmI4LiZ4Lir4LiZ4LmJ4Liy4Lit4LiBCivguYHguJnguYjguJnguK3guJkKK+C5geC4meC5iOC4meC4tOC5iOC4hwor4LmB4LiZ4LmI4LmB4LiZ4LmI4LinCivguYHguJnguJoKK+C5geC4meC4muC5gOC4meC4teC4ouC4mQor4LmB4LiZ4Lia4LmB4LiZ4LmI4LiZCivguYHguJnguKEKK+C5geC4meC4pwor4LmB4LiZ4LmI4LinCivguYHguJnguKfguJfguLLguIcKK+C5geC4meC4p+C4l+C4teC5iOC4q+C5ieC4sgor4LmB4LiZ4LmI4Lin4LmB4LiZ4LmICivguYHguJnguKfguYLguJnguYnguKEKK+C5geC4meC4p+C4m+C5iOC4sgor4LmB4LiZ4Lin4Lij4LiaCivguYHguJnguKfguKPguYjguKfguKEKK+C5geC4meC4p+C5gOC4o+C4t+C4rQor4LmB4LiZ4Lin4Lir4LiZ4LmJ4LiyCivguYHguJnguKfguKvguKXguLHguIcKK+C5geC4meC4sAor4LmB4LiZ4LmI4LiwCivguYHguJnguLDguJnguLHguJQKK+C5geC4meC4sOC4meC4swor4LmB4LiZ4Liw4LmB4LiZ4LinCivguYHguJnguLDguYHguKvguJkKK+C5guC4mQor4LmC4LiZ4LmJ4LiVCivguYLguJnguYnguJXguYDguJ7guKXguIcKK+C5guC4meC4mQor4LmC4LiZ4LmI4LiZCivguYLguJnguYnguJkKK+C5guC4meC5gOC4mQor4LmC4LiZ4LmA4Lia4LmA4Lil4Li14Lii4LihCivguYLguJnguYnguKEKK+C5guC4meC5ieC4oeC4meC5ieC4suC4pwor4LmC4LiZ4Lih4Lie4Lij4Lij4LiTCivguYLguJnguKPguLIKK+C5guC4meC4o+C4tQor4LmD4LiZCivguYPguJnguIHguKPguKEKK+C5g+C4meC5hOC4quC5iQor4LmD4LiZ4Lir4Lil4Lin4LiHCivguYTguJkKK+C5hOC4meC4leC5jOC4hOC4peC4seC4mgor4LmE4LiZ4LmC4LiV4Lij4LmA4LiI4LiZCivguYTguJnguKXguK3guJkKK+C5hOC4meC5guC4reC5gOC4muC4teC4ouC4oQor4LiaCivguJrguYgKK+C4muC4gQor4Lia4LiB4Lie4Lij4LmI4Lit4LiHCivguJrguIcKK+C4muC5iOC4hwor4Lia4LiH4LiBLQor4Lia4LiH4LiB4LmMCivguJrguIfguIHguIoKK+C4muC4h+C4geC4iuC4geC4owor4Lia4LiH4LiB4Liy4LijCivguJrguYrguIfguYDguJrguYrguIcKK+C4muC4h+C4quC4uC0KK+C4muC4h+C4quC4uOC5jAor4Lia4LiH4Liq4Li44LiB4Li44LilCivguJrguIfguKrguLjguIHguLnguKXguLTguIEKK+C4muC4h+C4reC4seC4muC4muC4h+C4o+C4sgor4Lia4LmI4LiH4Lit4Lix4Lia4Lia4LmI4LiH4Lij4LiyCivguJrguI8KK+C4muC4lAor4Lia4LiU4LiC4Lii4Li14LmJCivguJrguJTguJrguLHguIcKK+C4muC4lOC5gOC4reC4t+C5ieC4reC4hwor4Lia4LiU4Li04LiZ4LiX4Lij4LmMCivguJrguJTguLUKK+C4muC4lOC4teC4mOC4o+C4o+C4oQor4Lia4LiU4Li14Lie4Lij4LiVCivguJrguJTguLXguKfguKPguJTguLIKK+C4muC4lOC4teC4qOC4owor4Lia4LiWCivguJrguJcKK+C4muC4ly0KK+C4muC4l+C4geC4peC4reC4mQor4Lia4LiX4LiB4Lin4Li14LiZ4Li04Lie4LiZ4LiY4LmMCivguJrguJfguIHguLPguKvguJnguJTguYLguJfguKkKK+C4muC4l+C4hOC4p+C4suC4oQor4Lia4LiX4LiE4Lix4LiU4Lii4LmI4LitCivguJrguJfguIjguKMKK+C4muC4l+C5gOC4iOC4o+C4iOC4sgor4Lia4LiX4LmA4LiJ4Lie4Liy4Liw4LiB4Liy4LilCivguJrguJfguJTguK3guIHguKrguKPguYnguK3guKIKK+C4muC4l+C4meC4swor4Lia4LiX4Lia4LiH4LiB4LiKCivguJrguJfguJrguIfguKrguLjguYwKK+C4muC4l+C4muC4o+C4o+C4k+C4suC4mOC4tOC4geC4suC4owor4Lia4LiX4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJrguJfguJrguLLguJcKK+C4muC4l+C4muC4suC4l+C4oeC4suC4gQor4Lia4LiX4Lia4Li54Lij4LiT4LmMCivguJrguJfguJvguKPguLDguJ7guLHguJnguJjguYwKK+C4muC4l+C4nuC4suC4geC4ouC5jAor4Lia4LiX4LmA4Lie4Lil4LiHCivguJrguJfguKDguLLguIrguJnguYwKK+C4muC4l+C4oOC4suC4iuC4meC4teC4ouC5jAor4Lia4LiX4Lih4Liy4Lil4Lii4LmMCivguJrguJfguKPguYnguK3guIcKK+C4muC4l+C4o+C4seC4igor4Lia4LiX4LmA4Lij4LioCivguJrguJfguYDguKPguLXguKLguJkKK+C4muC4l+C4p+C5gOC4o+C4qAor4Lia4LiX4Lin4Lil4Lix4LiN4LiK4LmMCivguJrguJfguKfguLLguKMKK+C4muC4l+C4qOC4o+C4tQor4Lia4LiX4Liq4LiZ4LiX4LiZ4LiyCivguJrguJfguKrguLHguIfguILguKLguLIKK+C4muC4l+C4suC4oeC4nuC4uOC4igor4Lia4LmC4LiX4LiZCivguJrguJkKK+C4muC5iOC4mQor4Lia4LiZ4LiC4LmJ4Liy4Lin4Lic4Li1IOC4leC4teC4guC5ieC4suC4p+C4nuC4o+C4sAor4Lia4LmI4LiZ4LiW4Li24LiHCivguJrguJnguJrguLLguJkKK+C4muC4meC4muC4suC4meC4qOC4suC4peC4geC4peC5iOC4suC4pwor4Lia4Lie4Li04LiV4LijCivguJrguJ7guLTguJXguKPguJ7guKPguLDguKPguLLguIrguKrguKHguKDguLLguKMKK+C4muC4nuC4tOC4mAor4Lia4LmI4LihCivguJrguYjguKHguJzguLTguKcKK+C4muC5iOC4oeC4oeC4seC4mQor4Lia4LmI4Lih4Lir4LiZ4Lit4LiHCivguJrguKHguLQKK+C4muC4oy0KK+C4muC4o+C4l+C4suC4owor4Lia4Lij4LiX4Liy4Lij4LiB4Lij4Lij4LihCivguJrguKPguKEKK+C4muC4o+C4oS0KK+C4muC4o+C4oeC4mOC4suC4leC4uAor4Lia4Lij4Lih4Lia4Lie4Li04LiV4LijCivguJrguKPguKHguKfguIfguKjguLLguJnguLjguKfguIfguKjguYwKK+C4muC4o+C4oeC4reC4seC4kOC4tAor4Lia4Lij4Lih4Lix4LiV4LiW4LmMCivguJrguKPguKPguIHguKfguJQKK+C4muC4o+C4o+C4iOC4hwor4Lia4Lij4Lij4LiI4LiW4Lij4LiT4LmMCivguJrguKPguKPguIjguJoKK+C4muC4o+C4o+C4iOC4p+C4mgor4Lia4Lij4Lij4LiI4Li4CivguJrguKPguKPguYDguIjguLTguJQKK+C4muC4o+C4o+C4kwor4Lia4Lij4Lij4LiTLQor4Lia4Lij4Lij4LiT4LiB4Li44LiO4Li1CivguJrguKPguKPguJPguJ7guLTguKDguJ4KK+C4muC4o+C4o+C4k+C5guC4peC4gQor4Lia4Lij4Lij4LiT4Lio4Liy4Lil4LiyCivguJrguKPguKPguJPguKrguLLguKMKK+C4muC4o+C4o+C4k+C4suC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiE4LihCivguJrguKPguKPguJPguLLguJjguLTguIHguKMKK+C4muC4o+C4o+C4k+C4suC4mOC4tOC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiZ4Li44LiB4Lij4LihCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguYwKK+C4muC4o+C4o+C4k+C4suC4o+C4seC4geC4qeC4qOC4suC4quC4leC4o+C5jAor4Lia4Lij4Lij4LiU4LiyCivguJrguKPguKPguJTguLLguIEKK+C4muC4o+C4o+C4lOC4suC4oeC4tQor4Lia4Lij4Lij4LiU4Liy4Lio4Lix4LiB4LiU4Li04LmMCivguJrguKPguKPguJXguLLguJnguLbguIEKK+C4muC4o+C4o+C4luC4owor4Lia4Lij4Lij4LiX4LihCivguJrguKPguKPguJfguLHguJQKK+C4muC4o+C4o+C4l+C4seC4lOC4kOC4suC4mQor4Lia4Lij4Lij4LiX4Lix4LiaCivguJrguKPguKPguJfguLLguJkKK+C4muC4o+C4o+C4l+C4uOC4gQor4Lia4Lij4Lij4LmA4LiX4LiyCivguJrguKPguKPguYDguJfguLfguK3guIcKK+C4muC4o+C4o+C4ngor4Lia4Lij4Lij4LieLQor4Lia4Lij4Lij4Lie4LmMCivguJrguKPguKPguJ7guIrguLIKK+C4muC4o+C4o+C4nuC4iuC4tOC4lQor4Lia4Lij4Lij4Lie4LiVCivguJrguKPguKPguJ7guJUtCivguJrguKPguKPguJ7guJXguIHguLXguKXguLIKK+C4muC4o+C4o+C4nuC4leC4iuC4suC4pQor4Lia4Lij4Lij4Lie4LiV4LiY4Liy4LiV4Li4CivguJrguKPguKPguJ7guJXguKHguLLguKXguLIKK+C4muC4o+C4o+C4nuC4leC4o+C4suC4igor4Lia4Lij4Lij4Lie4LiV4Lin4Liy4Liq4Li1CivguJrguKPguKPguJ7guJXguKjguLTguILguKMKK+C4muC4o+C4o+C4nuC4muC4uOC4o+C4uOC4qQor4Lia4Lij4Lij4Lie4Lig4Liy4LiECivguJrguKPguKPguJ7guYDguKDguJcKK+C4muC4o+C4o+C4nuC4oeC4ueC4pQor4Lia4Lij4Lij4Lie4Liq4LiV4Lij4Li1CivguJrguKPguKPguKLguIcKK+C4muC4o+C4o+C4ouC4h+C4geC5jAor4Lia4Lij4Lij4Lii4LmA4Lin4LiB4Lip4LiB4LmMCivguJrguKPguKPguKLguLLguIHguLLguKgKK+C4muC4o+C4o+C4ouC4suC4ogor4Lia4Lij4Lij4Lil4Lix4LiiCivguJrguKPguKPguKXguLHguKLguIHguLHguKXguJvguYwKK+C4muC4o+C4o+C4peC4seC4ouC4iOC4seC4geC4owor4Lia4Lij4Lij4Lil4Liy4LiiCivguJrguKPguKPguKXguLgKK+C4muC4o+C4o+C4peC4uOC4meC4tOC4leC4tOC4oOC4suC4p+C4sAor4Lia4Lij4Lij4LmA4Lil4LiHCivguJrguKPguKPguYLguKXguKEKK+C4muC4o+C4o+C4qeC4seC4lwor4Lia4Lij4Lij4Liq4LiaCivguJrguKPguKPguKrguJ4KK+C4muC4o+C4o+C4quC4oQor4Lia4Lij4Lij4Liq4Liy4LiZCivguJrguKPguKPguKrguLLguKMKK+C4muC4o+C4o+C4q+C4suC4mQor4Lia4Lij4Lij4Lir4Liy4LijCivguJrguKPguK3guJnguIvguYwKK+C4muC4o+C4seC4lAor4Lia4Lij4Lix4LmI4LiZ4LiU4Li1CivguJrguKPguLHguKjguKfguYwKK+C4muC4o+C4suC4geC4o+C4oQor4Lia4Lij4Liy4LiHCivguJrguKPguLLguJfguLjguIHguKPguLIKK+C4muC4o+C4suC4peC4tQor4Lia4Lij4Li04LiB4Lij4LihCivguJrguKPguLTguIHguKPguKPguKEKK+C4muC4o+C4tOC4geC4seC4mwor4Lia4Lij4Li04LiB4Liy4LijCivguJrguKPguLTguILguLIKK+C4muC4o+C4tOC4guC4suC4owor4Lia4Lij4Li04LiC4Liy4Lij4LmC4LiI4LilCivguJrguKPguLTguITguJPguKvguYwKK+C4muC4o+C4tOC4hOC4k+C4q+C5jOC4quC4meC4mOC4tAor4Lia4Lij4Li04LiI4Liy4LiECivguJrguKPguLTguIjguLLguKPguIEKK+C4muC4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lia4Lij4Li04LmA4LiJ4LiXCivguJrguKPguLTguYDguInguJctCivguJrguKPguLTguYDguInguJfguIHguLLguKUKK+C4muC4o+C4tOC4iuC4mQor4Lia4Lij4Li04LiT4Liy4Lii4LiBCivguJrguKPguLTguJPguLLguKLguIHguKPguLHguJXguJnguYwKK+C4muC4o+C4tOC4lOC4iOC5jAor4Lia4Lij4Li04Lia4LiXCivguJrguKPguLTguJrguKfguKPguJPguYwKK+C4muC4o+C4tOC4muC4suC4pQor4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMCivguJrguKPguLTguJ7guJnguJjguYwKK+C4muC4o+C4tOC4nuC4seC4leC4owor4Lia4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJrguKPguLTguJ7guLLguIrguIEKK+C4muC4o+C4tOC4nuC4suC4iuC4tOC4geC4sgor4Lia4Lij4Li04Lie4Liy4LiK4Li1CivguJrguKPguLTguJ7guLLguKMKK+C4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Lia4Lij4Li04Lig4Liy4LipCivguJrguKPguLTguYLguKDguIQKK+C4muC4o+C4tOC5guC4oOC4hOC5gOC4iOC4lOC4teC4ouC5jAor4Lia4Lij4Li04Lih4Liy4LiqCivguJrguKPguLTguKLguLLguKIKK+C4muC4o+C4tOC4o+C4oQor4Lia4Lij4Li04Lij4Lix4LiB4Lip4LmMCivguJrguKPguLTguKPguLLguIoKK+C4muC4o+C4tOC4p+C4o+C4o+C4lQor4Lia4Lij4Li04Lin4Liy4LijCivguJrguKPguLTguKfguLLguKoKK+C4muC4o+C4tOC5gOC4p+C4kwor4Lia4Lij4Li04Lip4LiB4Liy4LijCivguJrguKPguLTguKnguLHguJcKK+C4muC4o+C4tOC4qeC4seC4l+C5gOC4hOC4o+C4lOC4tOC4leC4n+C4reC4h+C4i+C4tOC5gOC4reC4o+C5jAor4Lia4Lij4Li04Lip4Lix4LiX4LiI4Liz4LiB4Lix4LiUCivguJrguKPguLTguKnguLHguJfguJrguKPguLTguKfguLLguKMKK+C4muC4o+C4tOC4qeC4seC4l+C4oeC4q+C4suC4iuC4meC4iOC4s+C4geC4seC4lAor4Lia4Lij4Li04Liq4LiK4LiZCivguJrguKPguLTguKrguLjguJfguJjguLTguYwKK+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jOC5g+C4iAor4Lia4Lij4Li04Lir4Liy4LijCivguJrguKPguLTguKvguLLguKoKK+C4muC5geC4o+C4hwor4Lia4LmB4Lij4LiH4Lig4Lix4LiB4Lip4LmMCivguJrguKTguIfguITguJ4KK+C4muC4peC5h+C4reC4gQor4Lia4Lin4LiBCivguJrguKfguIcKK+C4muC5iOC4p+C4hwor4Lia4LmI4Lin4LiH4Lia4Liy4LioCivguJrguKfguIfguKrguKPguKfguIcKK+C4muC4p+C4igor4Lia4Lin4LiK4LiK4Li1CivguJrguKfguJkKK+C4muC5ieC4p+C4mQor4Lia4LmJ4Lin4LiZ4Lib4Liy4LiBCivguJrguYnguKfguJnguJ7guKPguLDguYLguK3guKnguJDguYwKK+C4muC4p+C4mgor4Lia4Lin4Lia4LiC4LihCivguJrguKfguKEKK+C4muC4p+C4oeC4meC5ieC4swor4Lia4LmK4Lin4LiiCivguJrguKfguKMKK+C4muC4p+C4oy0KK+C4muC4p+C4o+C5guC4leC4juC4gQor4Lia4Lir4Lil4Li04LmI4LihCivguJrguK0KK+C4muC5iOC4rQor4Lia4Lit4LiBCivguJrguK3guIHguIHguKXguYjguLLguKcKK+C4muC4reC4geC5geC4guC4gQor4Lia4Lit4LiB4LiE4Liz4Lia4Lit4LiBCivguJrguK3guIHguJrguJcKK+C4muC4reC4geC4muC4seC4jeC4iuC4tQor4Lia4Lit4LiB4Lia4Li44LiNCivguJrguK3guIHguYPguJrguYkKK+C4muC4reC4geC4m+C4seC4lAor4Lia4Lit4LiB4LmA4Lib4Li04LiUCivguJrguK3guIHguKLguLXguYjguKvguYnguK0KK+C4muC4reC4geC5gOC4peC5iOC4suC5gOC4geC5ieC4suC4quC4tOC4mgor4Lia4Lit4LiB4Lin4Lix4LiV4LijCivguJrguK3guIHguKjguLLguKXguLIKK+C4muC4reC4geC4q+C4meC4l+C4suC4hwor4Lia4Lit4LiB4Lir4LiZ4Lix4LiH4Liq4Li34Lit4Liq4Lix4LiH4LiG4Lij4Liy4LiKCivguJrguYjguK3guYDguIHguLTguJQKK+C4muC4reC4hwor4Lia4LmI4Lit4LiHCivguJrguYnguK3guIcKK+C4muC5iuC4reC4hwor4Lia4LmK4Lit4LiH4LmGCivguJrguYnguK3guIfguIHguLHguI3guIrguLIKK+C4muC5ieC4reC4h+C4leC4sOC4peC4sgor4Lia4LmJ4Lit4LiH4LiV4Lix4LiZCivguJrguYnguK3guIfguJXguLfguYnguJkKK+C4muC5ieC4reC4h+C5geC4muC5iuC4pwor4Lia4LmJ4Lit4LiH4LmE4LifCivguJrguYnguK3guIfguKLguLLguYHguJTguIcKK+C4muC4reC4h+C4q+C4peC4sgor4Lia4LmJ4Lit4LiH4Lir4Li5CivguJrguK3guJQKK+C4muC4reC4lOC4quC4tQor4Lia4Lit4LiZCivguJrguYjguK3guJkKK+C4muC5iOC4reC4meC5geC4leC4gQor4Lia4LmI4Lit4LiZ4LiX4Liz4Lil4Liy4LiiCivguJrguK3guJnguKXguLLguKLguIHguKPguLDguKvguJnguIEKK+C4muC5iOC4reC4meC5ieC4s+C4o+C5ieC4reC4mQor4Lia4Lit4LiaCivguJrguK3guJrguIrguYnguLMKK+C4muC4reC4muC4muC4suC4hwor4Lia4Lit4Lia4LmB4Lia4LiaCivguJrguYnguK3guKEKK+C4muC5i+C4reC4oQor4Lia4LmI4Lit4LiiCivguJrguYjguK3guKLguYYKK+C4muC4reC4o+C4sOC5gOC4nuC5h+C4lAor4Lia4Lit4Lij4Liw4Lih4Liy4LiZCivguJrguK3guKUKK+C4muC4reC4peC4peC4ueC4mQor4Lia4LmJ4Lit4Lir4Li44LmJ4LiZCivguJrguYDguK0KK+C4muC5iuC4sAor4Lia4Liw4Lir4Lih4Li14LmICivguJrguLHguIEKK+C4muC4seC4geC5guC4geC4o+C4gQor4Lia4Lix4LiB4Lit4Liy4LiZCivguJrguLHguITguYDguJXguKPguLUKK+C4muC4seC4hwor4Lia4Lix4LmJ4LiHCivguJrguLHguIfguIHguLDguYLguKUKK+C4muC4seC4h+C4geC4seC4lAor4Lia4Lix4LiH4LmA4LiB4Li04LiUCivguJrguLHguIfguYLguIHguKPguKLguJXguLHguKfguJzguLnguYkKK+C4muC4seC4h+C5guC4geC4o+C4ouC4leC4seC4p+C5gOC4oeC4teC4ogor4Lia4Lix4LiH4LmC4LiB4Lil4LiZCivguJrguLHguIfguITguJkKK+C4muC4seC4h+C4hOC4meC5gOC4muC4sgor4Lia4Lix4LiH4LiE4LiZ4Lir4LiZ4Lix4LiBCivguJrguLHguIfguITguKEKK+C4muC4seC4h+C4hOC4pQor4Lia4Lix4LiH4LiE4Lin4LijCivguJrguLHguIfguITguKfguLLguKEKK+C4muC4seC4h+C4hOC4seC4mgor4Lia4Lix4LiH4LiE4Lix4Lia4LiB4Liy4LijCivguJrguLHguIfguITguLHguJrguITguKPguLgKK+C4muC4seC4h+C4hOC4seC4muC5g+C4iAor4Lia4Lix4LiH4LiE4Lix4Lia4LmC4LiXCivguJrguLHguIfguITguLHguJrguJrguLHguI3guIrguLIKK+C4muC4seC4h+C4hOC4seC4muC4peC4q+C4uAor4Lia4Lix4LiH4LiE4Lix4Lia4Liq4Lix4Lih4Lic4Lix4LiqCivguJrguLHguIfguITguLHguJrguYDguK3guIEKK+C4muC4seC4h+C4hOC4seC4pQor4Lia4Lix4LiH4LmC4LiE4Lil4LiZCivguJrguLHguIfguYDguIfguLIKK+C4muC4seC4h+C4leC4sOC4p+C4seC4mQor4Lia4Lix4LiH4LiV4LiyCivguJrguLHguIfguYHguJfguKPguIEKK+C4muC4seC4h+C5g+C4mgor4Lia4Lix4LiH4LmA4Lie4Lil4Li04LiHCivguJrguLHguIfguYTguJ7guKMKK+C4muC4seC4h+C4n+C4seC4mQor4Lia4Lix4LmJ4LiH4LmE4LifCivguJrguLHguIfguKHguLfguJQKK+C4muC4seC4h+C4p+C4suC4ogor4Lia4Lix4LiH4LmA4Lin4Li14Lii4LiZCivguJrguLHguIfguKrguLLguJQKK+C4muC4seC4h+C4quC4uOC4geC4uOC4pQor4Lia4Lix4LiH4Liq4Li44LiB4Li54Lil4Li04LiBCivguJrguLHguIfguKrguLnguKPguKLguYwKK+C4muC4seC4h+C4q+C4meC5ieC4sgor4Lia4Lix4LiH4Lir4Lin4LiZ4LiE4Lin4Lix4LiZCivguJrguLHguIfguYDguKvguJXguLgKK+C4muC4seC4h+C5gOC4q+C4tOC4mQor4Lia4Lix4LiH4LmA4Lir4Li14Lii4LiZCivguJrguLHguIfguK3guKMKK+C4muC4seC4h+C4reC4p+C4iAor4Lia4Lix4LiH4Lit4Liy4LiICivguJrguLHguIfguK3guLTguIcKK+C4muC4seC4h+C4reC4ueC4owor4Lia4Lix4LiH4LmA4Lit4Li04LiNCivguJrguLHguI3guIjguIEKK+C4muC4seC4jeC4iOC4o+C4h+C4hOC5jAor4Lia4Lix4LiN4LiK4LijCivguJrguLHguI3guIrguLIKK+C4muC4seC4jeC4iuC4suC4geC4suC4owor4Lia4Lix4LiN4LiK4Li1CivguJrguLHguI3guIrguLXguIHguKPguLDguYHguKrguKPguLLguKLguKfguLHguJkKK+C4muC4seC4jeC4iuC4teC5gOC4lOC4tOC4meC4quC4sOC4nuC4seC4lAor4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJrguLHguI3guI3guLHguJXguLTguYTguJXguKPguKLguLLguIfguKjguYwKK+C4muC4seC4jeC4q+C4sgor4Lia4Lix4LiPCivguJrguLHguJDguKLguLLguJ7guKTguJUKK+C4muC4seC4k+C4keC4owor4Lia4Lix4LiT4LiR4LijLQor4Lia4Lix4LiT4LiR4Lij4LiZ4Liy4LiECivguJrguLHguJPguJHguLTguJUKK+C4muC4seC4k+C4keC4tOC4leC4ouC5jAor4Lia4Lix4LiT4LiR4Li4CivguJrguLHguJPguJHguLjguIHguLHguKHguJ7guKUKK+C4muC4seC4k+C4keC4uOC4geC4seC4oeC4nuC4peC4qOC4tOC4peC4suC4reC4suC4quC4meC5jAor4Lia4Lix4LiT4LiR4Li44LiZ4Liy4LiECivguJrguLHguJPguJHguLjguYLguKPguIQKK+C4muC4seC4k+C4keC4ueC4owor4Lia4Lix4LiT4LmA4LiR4Liy4Liw4LiB4LmMCivguJrguLHguJPguYDguJHguLLguLDguKfguYwKK+C4muC4seC4k+C4k+C4suC4qgor4Lia4Lix4LiT4Lij4LiqCivguJrguLHguJPguKPguKrguLUKK+C4muC4seC4lAor4Lia4Lix4LiU4LiB4Lij4Li1CivguJrguLHguJTguIvguJoKK+C4muC4seC4lOC4lOC4pQor4Lia4Lix4LiU4LmA4LiU4Li14LmL4Lii4LinCivguJrguLHguJTguJnguLHguYnguJkKK+C4muC4seC4lOC4meC4teC5iQor4Lia4Lix4LiU4Lia4LiHCivguJrguLHguJTguYHguJrguYjguIcKK+C4muC4seC4lOC5geC4oeC4peC5iOC4hwor4Lia4Lix4LiU4Liq4Li1CivguJrguLHguJTguKrguLXguJrguLHguJTguYDguJbguKXguLTguIcKK+C4muC4seC4leC4owor4Lia4Lix4LiV4Lij4LmA4LiX4Lin4LiU4LiyCivguJrguLHguJXguKPguJjguJnguLLguITguLLguKMKK+C4muC4seC4leC4o+C4nuC4peC4tQor4Lia4Lix4LiV4Lij4Liq4LiZ4LmA4LiX4LmI4Lir4LmMCivguJrguLHguJXguKPguKvguKHguLLguKIKK+C4muC4seC4l+C4oeC5jAor4Lia4Lix4LiZCivguJrguLHguYjguJkKK+C4muC4seC5ieC4mQor4Lia4Lix4LiZ4LiB4Lin4LiUCivguJrguLHguJnguIjguKfguJoKK+C4muC4seC4meC4iOC4reC4ogor4Lia4Lix4LiZ4LiU4LilCivguJrguLHguJnguJTguLLguKUKK+C4muC4seC4meC5gOC4lOC4tOC4mQor4Lia4Lix4LiZ4LmC4LiU4LiiCivguJrguLHguJnguYTguJQKK+C4muC4seC4meC5hOC4lOC5geC4geC5ieC4pwor4Lia4Lix4LiZ4LmE4LiU4Lil4Li04LiHCivguJrguLHguJnguYTguJTguYDguKXguLfguYjguK3guJkKK+C4muC4seC4meC5geC4luC4peC4hwor4Lia4Lix4LmI4LiZ4LiX4Lit4LiZCivguJrguLHguYnguJnguJfguYnguLLguKIKK+C4muC4seC4meC4l+C4tuC4gQor4Lia4Lix4LiZ4LiX4Li24LiHCivguJrguLHguJnguYDguJfguLTguIcKK+C4muC4seC4meC5gOC4l+C4tOC4h+C4hOC4lOC4tQor4Lia4Lix4LiZ4LmA4Lia4LiyCivguJrguLHguYnguJnguJvguKXguLLguKIKK+C4muC4seC5ieC4meC4nuC4o+C4sOC4reC4h+C4hOC5jAor4Lia4Lix4LiZ4Lii4Liw4Lia4Lix4LiZ4Lii4Lix4LiHCivguJrguLHguJnguKXguLfguK0KK+C4muC4seC5ieC4meC4q+C4peC4p+C4hwor4Lia4Lix4LiZ4LmA4Lir4Li04LiZCivguJrguLHguYnguJnguYDguK3guKcKK+C4muC4seC4m+C4nOC4suC4quC4sAor4Lia4Lix4LieCivguJrguLHguJ7guIrguLIKK+C4muC4seC4nuC4iuC4tOC4lQor4Lia4Lix4Lie4Lie4Liy4LiKCivguJrguLHguJ7guJ7guLLguIrguJnguYwKK+C4muC4seC4nuC4nuC4suC4iuC4meC4teC4ouC4geC4o+C4o+C4oQor4Lia4Lix4LilCivguJrguLHguKXguKXguJ4KK+C4muC4seC4peC4peC4seC4h+C4geC5jAor4Lia4Lix4Lil4Lil4Li54LiZCivguJrguLHguKXguKfguLAKK+C4muC4seC4pwor4Lia4Lix4Lin4LiB4Lil4Li44LmI4LihCivguJrguLHguKfguILguLLguJoKK+C4muC4seC4p+C4hOC4reC5gOC4quC4t+C5ieC4rQor4Lia4Lix4Lin4LiV4Liw4LiB4Lix4LmI4LinCivguJrguLHguKfguJXguLnguKEKK+C4muC4seC4p+C4luC4peC4sgor4Lia4Lix4Lin4LiZ4Liy4LiHCivguJrguLHguKfguJrguIEKK+C4muC4seC4p+C4muC4seC4h+C5g+C4mgor4Lia4Lix4Lin4Lia4Liy4LiXCivguJrguLHguKfguJzguLjguJQKK+C4muC4seC4p+C5hOC4oeC5iOC4iuC5ieC4syDguJnguYnguLPguYTguKHguYjguILguLjguYjguJkKK+C4muC4seC4p+C5guC4o+C4ogor4Lia4Lix4Lin4Lil4Lit4LiiCivguJrguLHguKfguKrguKfguKPguKPguITguYwKK+C4muC4seC4p+C4quC4suC4ouC4leC4tOC5iOC4hwor4Lia4Lix4Lin4Liq4Liy4Lii4LiX4Li04LmJ4LiHCivguJrguLHguKfguK7guLLguJTguLMKK+C4muC4sgor4Lia4LmI4LiyCivguJrguYnguLIKK+C4muC5ieC4suC5hgor4Lia4Liy4LiBCivguJrguLLguIHguJfguYjguLIKK+C4muC4suC4geC4muC4seC5iOC4mQor4Lia4Liy4LiB4Lir4LiZ4LmJ4LiyCivguJrguLLguIcKK+C4muC5iOC4suC4hwor4Lia4LmJ4Liy4LiHCivguJrguLLguIfguILguLjguJnguJnguJnguJfguYwKK+C4muC5iOC4suC4h+C4iuC5iOC4suC4h+C4ouC4uAor4Lia4Liy4LiH4LiV4LiyCivguJrguLLguIfguJfguLUKK+C4muC4suC4h+C5gOC4muC4sgor4Lia4Liy4LiH4Liq4Li4CivguJrguLLguIjguIEKK+C4muC4suC4iOC4o+C4teC4ouC5jAor4Lia4Liy4LiI4Li04LiB4LiyCivguJrguYnguLLguIjguLXguYkKK+C4muC4suC4i+C4tOC4peC4peC4seC4qgor4Lia4Liy4LiUCivguJrguLLguJTguITguK0KK+C4muC4suC4lOC5gOC4iOC5h+C4mgor4Lia4Liy4LiU4LmD4LiICivguJrguLLguJTguJXguLIKK+C4muC4suC4lOC4l+C4sOC4iOC4tOC4lQor4Lia4Liy4LiU4LiX4Liw4Lie4Li04LipCivguJrguLLguJTguJfguLDguKLguLHguIEKK+C4muC4suC4lOC5geC4nOC4pQor4Lia4Liy4LiU4LmA4Liq4Li14LmJ4Lii4LiZ4Lia4Liy4LiU4Lir4LiZ4Liy4LihCivguJrguLLguJTguKvguKHguLLguIcKK+C4muC4suC4lOC4q+C4oeC4suC4ogor4Lia4Liy4LiU4Lir4Li5CivguJrguLLguJTguYTguKvguKEKK+C4muC4suC4lOC4suC4pQor4Lia4LmJ4Liy4LiU4Li14LmA4LiU4Li34Lit4LiUCivguJrguLLguYHguJTguIcKK+C4muC4suC4lQor4Lia4Liy4LiV4LijCivguJrguLLguJXguKPguYHguIHguYnguKcKK+C4muC4suC4leC4o+C5g+C4q+C4jeC5iAor4Lia4Liy4LiXCivguJrguLLguJctCivguJrguLLguJfguJnguLTguYDguIHguJUKK+C4muC4suC4l+C4mgor4Lia4Liy4LiX4Lia4LiH4LiB4LiKCivguJrguLLguJfguJrguIfguKrguLjguYwKK+C4muC4suC4l+C4muC4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lia4Liy4LiX4Lia4Li54Lij4LiT4LmMCivguJrguLLguJfguKDguLHguI8KK+C4muC4suC4l+C4oOC4suC4hAor4Lia4Liy4LiX4Lih4Li44LiX4Lij4LiyCivguJrguLLguJfguKHguLnguKUKK+C4muC4suC4l+C4oeC4ueC4peC4tOC4geC4suC4geC4owor4Lia4Liy4LiX4Lii4Li44LiE4LilCivguJrguLLguJfguKPguIoKK+C4muC4suC4l+C4o+C4seC4igor4Lia4Liy4LiX4Liq4LiB4Li44LiT4Li1CivguJrguLLguJfguKvguKXguKfguIcKK+C4muC4suC4l+C4suC4mOC4tuC4gQor4Lia4Liy4LiX4Li44LiB4LiyCivguJrguLLguJjguKPguKPguKEKK+C4muC4suC4mQor4Lia4Liy4LiZLQor4Lia4LmJ4Liy4LiZCivguJrguLLguJnguIHguJoKK+C4muC4suC4meC5gOC4geC4peC5h+C4lAor4Lia4LmJ4Liy4LiZ4LmA4LiB4Li04LiU4LmA4Lih4Li34Lit4LiH4LiZ4Lit4LiZCivguJrguYnguLLguJnguYDguITguKLguK3guKLguLnguYgg4Lit4Li54LmI4LmA4LiE4Lii4LiZ4Lit4LiZCivguJrguYnguLLguJnguIjguLHguJTguKrguKPguKMKK+C4muC5ieC4suC4meC4iuC5iOC4reC4hwor4Lia4Liy4LiZ4LiK4Li34LmI4LiZCivguJrguLLguJnguYDguIrguYnguLIKK+C4muC4suC4meC4leC4sOC5gOC4geC4teC4ouC4hwor4Lia4Liy4LiZ4LiV4Liw4LmC4LiB4LmJCivguJrguLLguJnguJXguLDguYTguJcKK+C4muC5ieC4suC4meC5geC4leC4geC4quC4suC5geC4q+C4o+C4geC4guC4suC4lAor4Lia4Liy4LiZ4LiX4Liw4LmC4Lij4LiECivguJrguYnguLLguJnguJnguK3guIEKK+C4muC5ieC4suC4meC4meC4reC4geC4guC4reC4geC4meC4sgor4Lia4Liy4LiZ4Lia4Liy4LiV4LijCivguJrguLLguJnguJrguLjguKPguLUKK+C4muC4suC4meC4muC4uOC4o+C4teC4oeC5iOC4p+C4hwor4Lia4Liy4LiZ4LmA4Lia4Lit4LiwCivguJrguLLguJnguYDguJrguLTguIEKK+C4muC4suC4meC5gOC4muC4teC4ouC4hwor4Lia4Liy4LiZ4LmB4Lia4LiwCivguJrguLLguJnguJvguKXguLLguKIKK+C4muC4suC4meC5geC4nOC4meC4gQor4Lia4Liy4LiZ4LmB4Lic4Lil4LiwCivguJrguYnguLLguJnguJ7guLHguIEKK+C4muC4suC4meC4nuC4seC4mgor4Lia4Liy4LiZ4LmB4Lie4LiZ4LiBCivguJrguLLguJnguYLguKDguIrguJnguYwKK+C4muC4suC4meC4oeC4h+C4hOC4pQor4Lia4LmJ4Liy4LiZ4LmA4Lih4Li34Lit4LiHCivguJrguYnguLLguJnguYDguKHguLfguK3guIfguKHguLXguILguLfguYjguK3guKHguLXguYHguJsKK+C4muC4suC4meC5hOC4oeC5iOC4o+C4ueC5ieC5guC4o+C4ogor4Lia4Liy4LiZ4LmA4Lii4LmH4LiZCivguJrguYnguLLguJnguKPguLHguJrguKPguK3guIcKK+C4muC5ieC4suC4meC5gOC4o+C4t+C4reC4mQor4Lia4LmJ4Liy4LiZ4LmJ4Liz4Lil4Liy4LiiCivguJrguYjguLLguJnguLXguYgKK+C4muC4suC4meC4teC4ouC4sAor4Lia4Liy4LiZ4Li14LmC4Lii4LiX4LiBCivguJrguYnguLLguJrguYjguJkKK+C4muC5ieC4suC4muC5i+C4sgor4Lia4LmJ4Liy4Lia4Li04LmI4LiZCivguJrguLLguJrguLUKK+C4muC4suC4mwor4Lia4Liy4LibLQor4Lia4Liy4Lib4LiB4Lij4Lij4LihCivguJrguLLguJvguYDguITguKPguLLguLDguKvguYwKK+C4muC4suC4m+C4oeC4tOC4leC4owor4Lia4Liy4Lib4Lir4LiZ4LiyCivguJrguLLguJ7guIEKK+C4muC4suC4ogor4Lia4LmI4Liy4LiiCivguJrguYnguLLguKIKK+C4muC5iOC4suC4ouC4hOC4p+C4suC4ogor4Lia4LmI4Liy4Lii4LmA4Lia4Li14LmI4Lii4LiHCivguJrguLLguKLguKjguKPguLUKK+C4muC4suC4ouC4qOC4o+C4teC4m+C4suC4geC4iuC4suC4oQor4Lia4Liy4Lii4Liq4Li44Lir4Lij4Li1CivguJrguYjguLLguKLguKvguJnguYnguLIKK+C4muC4suC4o+C5jAor4Lia4Liy4Lij4LiZ4Li1CivguJrguLLguKPguKHguLUKK+C4muC4suC4o+C5jOC5gOC4o+C4pQor4Lia4Liy4Lij4LmM4LmA4Lil4Lii4LmMCivguJrguLLguKPguK3guKHguLTguYDguJXguK3guKPguYwKK+C4muC5ieC4suC4o+C4sOC4muC4uOC5iOC4mQor4Lia4LmJ4Liy4Lij4Liw4Lir4LmI4LizCivguJrguYnguLLguKPguYjguLLguJfguYjguLIKK+C4muC4suC5gOC4o+C4teC4ouC4mQor4Lia4Liy4LmA4Lij4Li14Lii4LihCivguJrguLLguKUKK+C4muC5ieC4suC4peC4s+C5guC4nuC4hwor4Lia4Liy4Lil4Li1CivguJrguYnguLLguYDguKXguLfguK3guJQKK+C4muC5iOC4suC4pwor4Lia4LmI4Liy4Lin4LiC4Li44LiZCivguJrguYjguLLguKfguYTguJ7guKPguYgKK+C4muC4suC4qAor4Lia4Liy4Lio4LiB4LmMCivguJrguLLguKrguYDguIHguJXguJrguK3guKUKK+C4muC5ieC4suC4quC4oeC4muC4seC4leC4tAor4Lia4LmJ4Liy4Lir4Lih4Li5CivguJrguLLguKvguKXguLUKK+C4muC5ieC4suC4q+C4p+C5iOC4sgor4Lia4LmJ4Liy4Lir4Lit4Lia4Lif4Liy4LiHCivguJrguYnguLLguKvguYnguLLguKPguYnguK3guKLguIjguLPguJ7guKfguIEKK+C4muC5i+C4swor4Lia4Liz4LmA4LiX4Li04LiHCivguJrguLPguJnguLLguI0KK+C4muC4s+C4muC4p+C4hwor4Lia4Liz4Lia4Lix4LiUCivguJrguLPguYLguJoKK+C4muC4s+C5guC4muC4ogor4Lia4Liz4LmC4Lia4LilCivguJrguLPguYDguJ7guYfguI0KK+C4muC4s+C4o+C4suC4mgor4Lia4Liz4Lij4Liy4LioCivguJrguLPguKPguLjguIcKK+C4muC4s+C4o+C4uOC4h+C4guC4p+C4seC4jQor4Lia4Liz4Lij4Li5CivguJrguLPguYDguKPguK0KK+C4muC4s+C5gOC4o+C4reC5gOC4iuC4reC4oOC4seC4geC4lOC4tOC5jAor4Lia4Liz4Lir4Lii4Lix4LiUCivguJrguLPguYDguKvguJnguYfguIgKK+C4muC4tAor4Lia4Li04LiB4Li5CivguJrguLTguIHguLnguJvguLDguKPguLDguKHguLLguKvguJnguLIKK+C4muC4tOC4geC4ueC4m+C4sOC4o+C4sOC4q+C4oeC4seC5iOC4meC4q+C4meC4sgor4Lia4Li04LiQCivguJrguLTguJPguJEtCivguJrguLTguJPguJHguJrguLLguJUKK+C4muC4tOC4lAor4Lia4Li04LiU4LiC4Lin4LiyCivguJrguLTguJTguILguLXguYnguYDguIHguLXguKLguIgKK+C4muC4tOC4lOC4iOC4sOC4geC4ueC4lAor4Lia4Li04LiU4LiL4LmJ4Liy4LiiCivguJrguLTguJTguJXguLDguIHguLnguJQKK+C4muC4tOC4lOC5gOC4muC4teC5ieC4ouC4pwor4Lia4Li04LiU4LmA4Lia4Li34Lit4LiZCivguJrguLTguJTguJ7guKXguLTguYnguKcKK+C4muC4tOC4lOC4owor4Lia4Li04LiU4LmE4Liq4LmJCivguJrguLTguJTguKvguKXguYjguLIKK+C4muC4tOC4lOC4q+C4seC4p+C4peC4ueC4gQor4Lia4Li04LiU4LiyCivguJrguLTguJXguLgKK+C4muC4tOC4leC4uOC4iOC4ieC4sgor4Lia4Li04LiV4Li44Lij4LiH4LiE4LmMCivguJrguLTguJXguLjguYDguKPguKgKK+C4muC4tOC4leC4uOC4pQor4Lia4Li04LiV4Li44Lil4LiyCivguJrguLTguJXguLjguKXguLLguJnguLUKK+C4muC4tOC4mQor4Lia4Li04LmI4LiZCivguJrguLTguJnguKLguLIKK+C4muC4tOC4peC5gOC4peC4teC4ouC4lAor4Lia4Li04Lin4LmA4Lij4LiV4LiV4LmMCivguJrguLTguKjguLLguIgKK+C4muC4tOC4quC4oeC4seC4lwor4Lia4Li14LmJCivguJrguLXguIHguLkKK+C4muC4teC4keC4sgor4Lia4Li14LiV4LiyCivguJrguLXguJoKK+C4muC4teC4muC4guC4meC4oeC4iOC4teC4mQor4Lia4Li14Lia4LiC4Lih4Lix4LiaCivguJrguLXguJrguITguLHguYnguJkKK+C4muC4teC4muC4meC5ieC4s+C4leC4sgor4Lia4Li14Lia4Lia4Lix4LiH4LiE4Lix4LiaCivguJrguLXguJrguKPguLHguJQKK+C4muC4teC5ieC5geC4muC4mQor4Lia4Li14LmA4Lii4LioCivguJrguLbguIEKK+C4muC4tuC4geC4muC4tuC4mQor4Lia4Li24LiHCivguJrguLbguYjguIcKK+C4muC4tuC5ieC4hwor4Lia4Li24LmJ4LiH4LiV4Li24LiHCivguJrguLbguIfguJrguLLguIcKK+C4muC4tuC5ieC4h+C4muC4ueC4lAor4Lia4Li4CivguJrguLjguIEKK+C4muC4uOC4geC4muC4seC4mQor4Lia4Li44LiB4Lia4Lix4LmI4LiZCivguJrguLjguIHguYDguJrguLTguIEKK+C4muC4uOC4geC4m+C5iOC4suC4neC5iOC4suC4lOC4hwor4Lia4Li44LiB4Lij4Li44LiBCivguJrguLjguITguITguKUKK+C4muC4uOC4hOC4hOC4pS0KK+C4muC4uOC4hOC4hOC4peC4mOC4o+C4o+C4oeC4lOC4sgor4Lia4Li44LiE4LiE4Lil4LiZ4Li04LiV4Li04Liq4Lih4Lih4LiV4Li0CivguJrguLjguITguITguKXguJzguLnguYnguYTguKPguYnguITguKfguLLguKHguKrguLLguKHguLLguKPguJYKK+C4muC4uOC4hOC4hOC4peC4quC4tOC4l+C4mOC4tAor4Lia4Li44LiE4Lil4Liy4LiB4LijCivguJrguLjguITguKXguLLguJjguLTguKnguJDguLLguJkKK+C4muC4uOC4hOC4peC4tOC4gQor4Lia4Li44LiE4Lil4Li04LiBLQor4Lia4Li44LiE4Lil4Li04LiB4LiX4Liy4LiZCivguJrguLjguITguKXguLTguIHguKDguLLguJ4KK+C4muC4uOC4hOC4peC4tOC4geC4peC4seC4geC4qeC4k+C4sAor4Lia4Li44LiHCivguJrguLjguYjguIcKK+C4muC4uOC5ieC4hwor4Lia4Li44LmJ4LiH4LiC4Lix4LiZCivguJrguLjguYnguIfguIjguLXguJkKK+C4muC4uOC5ieC4h+C4l+C4sOC5gOC4pQor4Lia4Li44LmJ4LiH4Lid4Lij4Lix4LmI4LiHCivguJrguLjguYnguIfguKPguYnguKfguKEKK+C4muC4uOC4jQor4Lia4Li44LiNLQor4Lia4Li44LiN4LmA4LiC4LiVCivguJrguLjguI3guI3guLLguJnguLjguKDguLLguJ4KK+C4muC4uOC4jeC4jeC4suC4oOC4tOC4meC4tOC4q+C4suC4owor4Lia4Li44LiN4LiN4Liy4Lig4Li04Liq4Lix4LiH4LiC4Liy4LijCivguJrguLjguI3guJfguLLguKIKK+C4muC4uOC4jeC4l+C4s+C4geC4o+C4o+C4oeC5geC4leC5iOC4hwor4Lia4Li44LiN4LiY4Lij4Lij4LihCivguJrguLjguI3guJnguLTguJjguLQKK+C4muC4uOC4jeC4oeC4suC4p+C4suC4quC4meC4suC4quC5iOC4hwor4Lia4Li44LiN4Lij4Liy4Lio4Li1CivguJrguLjguI3guKTguJfguJjguLTguYwKK+C4muC4uOC4jeC4q+C4meC4seC4geC4qOC4seC4geC4lOC4tOC5jOC5g+C4q+C4jeC5iAor4Lia4Li44LiT4LiR4Lij4Li04LiBCivguJrguLjguJPguKHguLUKK+C4muC4uOC4k+C4ouC5jAor4Lia4Li44LiV4LijCivguJrguLjguJXguKMtCivguJrguLjguJXguKPguJjguKPguKPguKEKK+C4muC4uOC4leC4o+C4muC4uOC4jeC4mOC4o+C4o+C4oQor4Lia4Li44LiV4Lij4LiyCivguJrguLjguJXguKPguLUKK+C4muC4uOC4leC4o+C4teC4leC4o+C4sOC4quC4uOC4oQor4Lia4Li44LiW4Li44LiK4LiZCivguJrguLjguJfguITguKUKK+C4muC4uOC4meC4meC4sOC4muC4uOC4meC4meC4seC4hwor4Lia4Li44LiZ4LiZ4Liy4LiECivguJrguLjguJoKK+C4muC4uOC4muC4muC4tOC4mgor4Lia4Li44Lia4Liq4Lil4Liy4LiiCivguJrguLjguJvguJwtCivguJrguLjguJvguJzguIrguLLguJXguLQKK+C4muC4uOC4m+C4nOC4p+C4tOC4geC4seC4leC4tAor4Lia4Li44LieLQor4Lia4Li44Lie4LiB4Lij4Lij4LihCivguJrguLjguJ7guIHguLLguKPguLUKK+C4muC4uOC4nuC4geC4tOC4iAor4Lia4Li44Lie4LiK4Liy4LiV4Li0CivguJrguLjguJ7guJfguLHguIHguKnguLTguJMKK+C4muC4uOC4nuC4meC4tOC4oeC4tOC4lQor4Lia4Li44Lie4Lia4LiXCivguJrguLjguJ7guYDguJvguJXguJ7guKXguLUKK+C4muC4uOC4nuC4ni0KK+C4muC4uOC4nuC4nuC4seC4k+C4iuC4suC4leC4tAor4Lia4Li44Lie4Lie4Lix4LiT4Lir4Liq4Lih4Lix4LiiCivguJrguLjguJ7guJ7guLLguIjguLLguKPguKLguYwKK+C4muC4uOC4nuC4nuC4suC4qeC4suC4kgor4Lia4Li44Lie4Lie4Liy4Liq4Liy4Lis4Lir4LiwCivguJrguLjguJ7guYDguJ7guJnguLTguKfguLLguKrguLLguJnguLjguKrguJXguLTguI3guLLguJMKK+C4muC4uOC4nuC5gOC4nuC4quC4seC4meC4meC4tOC4p+C4suC4qgor4Lia4Li44Lie4LmC4LieCivguJrguLjguJ7guKDguLLguIQKK+C4muC4uOC4nuC4p+C4tOC5gOC4l+C4q+C5jAor4Lia4Li44LmL4LihCivguJrguLjguYjguKHguJrguYjguLLguKEKK+C4muC4uOC5ieC4ogor4Lia4Li44LmJ4Lii4LmD4Lia4LmJCivguJrguLjguYnguKLguJvguLLguIEKK+C4muC4uOC4o+C4k+C4sAor4Lia4Li44Lij4LieLQor4Lia4Li44Lij4Lie4LiX4Li04LioCivguJrguLjguKPguJ7guJrguJcKK+C4muC4uOC4o+C4nuC4nOC4peC4hOC4uOC4meC4tQor4Lia4Li44Lij4Lie4Lig4Lix4LiX4Lij4Lia4LiXCivguJrguLjguKPguJ7guK3guLLguKnguLLguJIKK+C4muC4uOC4o+C4nuC4suC4iOC4suC4o+C4ouC5jAor4Lia4Li44Lij4LiwCivguJrguLjguKPguLHguJXguJbguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4suC4kwor4Lia4Li44Lij4Liy4LiT4LiX4Li44LiV4Li04Lii4Li04LiB4LiyCivguJrguLjguKPguLTguJnguJfguKPguYwKK+C4muC4uOC4o+C4tOC4oeC4l+C4tOC4qAor4Lia4Li44Lij4Li04Lih4Lie4Lij4Lij4Lip4LiyCivguJrguLjguKPguLTguKHguKrguLTguJfguJjguLQKK+C4muC4uOC4o+C4tQor4Lia4Li44Lij4Li44LipCivguJrguLjguKPguLjguKktCivguJrguLjguKPguLjguKnguYLguJfguKkKK+C4muC4uOC4o+C4uOC4qeC4mOC4o+C4o+C4oQor4Lia4Li44LmC4Lij4LiX4Lix4LmI4LiHCivguJrguLjguKnguIHguKMKK+C4muC4uOC4qeC4mi0KK+C4muC4uOC4qeC4muC4gQor4Lia4Li44Lip4Lia4LiHCivguJrguLjguKnguJrguKPguLLguIQKK+C4muC4uOC4qeC4muC4p+C4o+C4o+C4qQor4Lia4Li44Lip4Lia4Lix4LiZCivguJrguLjguKnguJrguLIKK+C4muC4uOC4qeC4muC4suC4geC4owor4Lia4Li44Lip4Lia4Liy4LiE4LihCivguJrguLjguKnguJrguLLguJrguLHguJMKK+C4muC4uOC4qeC4muC4suC4oeC4tOC4meC4leC4o+C4sgor4Lia4Li44Lip4Lia4Liy4Lij4Lix4LiB4Lij4LmJ4Lit4LiiCivguJrguLjguKnguJstCivguJrguLjguKnguJvguKPguLLguIQKK+C4muC4uOC4qeC4m+C4sAor4Lia4Li44Lip4LiiLQor4Lia4Li44Lip4Lii4LmMCivguJrguLjguKnguKLguYzguJnguYnguLPguJfguK3guIcKK+C4muC4uOC4qeC4ouC4oeC4suC4qgor4Lia4Li44Lip4Lii4Liq4LiZ4Liy4LiZCivguJrguLjguKnguKLguLAKK+C4muC4uOC4qeC4ouC4suC4oOC4tOC5gOC4qeC4gQor4Lia4Li44Lip4Lij4Liy4LiE4Lix4LihCivguJrguLjguKvguIfguIcKK+C4muC4uOC4q+C4h+C4seC4mQor4Lia4Li44Lir4LiH4LiyCivguJrguLjguKvguIfguLLguJvguKPguLDguKvguIfguLHguJkKK+C4muC4uOC4q+C4h+C4suC4oeC4peC4suC4i+C4rQor4Lia4Li44Lir4LiH4Liy4Lij4Liz4LmE4LibCivguJrguLjguKvguIfguLLguKXguLPguYDguIjguLXguKLguIEKK+C4muC4uOC4q+C4o+C4hwor4Lia4Li44Lir4Lij4Li14LmICivguJrguLjguKvguKPguLXguYjguJ7guKPguLDguKPguLLguKEKK+C4muC4uOC4q+C4peC4seC4mQor4Lia4Li54LmICivguJrguLnguYkKK+C4muC4ueC4iuC4meC4teC4oi0KK+C4muC4ueC4iuC4meC4teC4ouC4quC4luC4suC4mQor4Lia4Li54LiK4LiyCivguJrguLnguIrguLLguIHguLHguJPguJHguYzguYDguJfguKjguJnguYwKK+C4muC4ueC4iuC4suC4ouC4seC4jQor4Lia4Li54LiK4Li04LiVCivguJrguLnguJQKK+C4muC4ueC4lOC4muC4tuC5ieC4hwor4Lia4Li54LiU4LmA4Lia4Li14LmJ4Lii4LinCivguJrguLnguYjguJfguLDguYDguKUKK+C4muC4ueC5ieC4muC4teC5iQor4Lia4Li54LijCivguJrguLnguKPguJMtCivguJrguLnguKPguJPguYwKK+C4muC4ueC4o+C4k+C4oOC4suC4ngor4Lia4Li54Lij4LiT4Lih4Li1CivguJrguLnguKPguJPguLAKK+C4muC4ueC4o+C4k+C4suC4geC4suC4o+C4o+C4p+C4oeC4q+C4meC5iOC4p+C4ogor4Lia4Li54Lij4LieCivguJrguLnguKPguJ7guLIKK+C4muC4ueC4o+C4nuC4suC4iOC4suC4o+C4ouC5jAor4Lia4Li54Lij4Lie4Liy4Lip4Liy4LiSCivguJrguLnguKPguLUKK+C5gOC4muC5iQor4LmA4Lia4LmI4LiHCivguYDguJrguYrguIjguLXguYsKK+C5gOC4muC4jeC4geC4suC4meC4tQor4LmA4Lia4LiN4LiICivguYDguJrguI3guIgtCivguYDguJrguI3guIjguIEKK+C5gOC4muC4jeC4iOC4geC4seC4peC4ouC4suC4k+C4tQor4LmA4Lia4LiN4LiI4LiB4Liy4Lih4LiE4Li44LiTCivguYDguJrguI3guIjguIHguLnguKUKK+C5gOC4muC4jeC4iOC4guC4seC4meC4mOC5jAor4LmA4Lia4LiN4LiI4LiE4Lix4Lie4Lii4LmMCivguYDguJrguI3guIjguITguLXguKPguLXguJnguITguKMKK+C5gOC4muC4jeC4iOC5guC4hOC4o+C4qgor4LmA4Lia4LiN4LiI4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguYDguJrguI3guIjguJjguKPguKPguKEKK+C5gOC4muC4jeC4iOC4muC4o+C4o+C4nuC4lQor4LmA4Lia4LiN4LiI4Lie4Lij4Lij4LiTCivguYDguJrguI3guIjguJ7guKUKK+C5gOC4muC4jeC4iOC5gOC4nuC4qgor4LmA4Lia4LiN4LiI4Lig4Li54LiVCivguYDguJrguI3guIjguKEtCivguYDguJrguI3guIjguKHguKrguLjguKPguJfguLTguJkKK+C5gOC4muC4jeC4iOC4oeC4suC4qAor4LmA4Lia4LiN4LiI4Lih4Liy4Lio4Liq4Lin4LiZCivguYDguJrguI3guIjguKHguLLguKjguKvguJnguLkKK+C5gOC4muC4jeC4iOC4o+C4h+C4hOC5jAor4LmA4Lia4LiN4LiI4LmC4Lil4Lir4LiB4LiwCivguYDguJrguI3guIjguKfguKPguKPguIQKK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kwor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiT4Lir4LmJ4Liy4Liq4Li1CivguYDguJrguI3guIjguKjguIEKK+C5gOC4muC4jeC4iOC4qOC4teC4pQor4LmA4Lia4LiN4LiI4LiyCivguYDguJrguI3guIjguLLguIfguIQtCivguYDguJrguI3guIjguLLguIfguITguYwKK+C5gOC4muC4jeC4iOC4suC4h+C4hOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jAor4LmA4Lia4LiN4LiN4LiyCivguYDguJrguI3guJ7guLLguJQKK+C5gOC4muC5h+C4lAor4LmA4Lia4LmH4LiU4LmA4LiV4Lil4LmH4LiUCivguYDguJrguYfguJTguYDguKrguKPguYfguIgKK+C5gOC4muC4mQor4LmA4Lia4LiZ4LiL4Li04LiZCivguYDguJrguKPguIEKK+C5gOC4muC4o+C4tOC4peC5gOC4peC4teC4ouC4oQor4LmA4Lia4Lij4Li14Lii4LiZCivguYDguJrguKoKK+C5gOC4muC5ieC4rQor4LmA4Lia4Lit4Lij4LmMCivguYDguJrguK3guKPguYzguITguLXguYDguKXguLXguKLguKEKK+C5gOC4muC5ieC4reC5gOC4o+C5iOC4rQor4LmA4Lia4LmJ4Lit4LmA4Lij4LmI4Lit4LmA4LiX4LmI4LitCivguYDguJrguYnguK3guYDguKPguLTguYjguKEKK+C5gOC4muC5ieC4reC5gOC4o+C4tOC5iOC4oeC5gOC4l+C4tOC5iOC4oQor4LmA4Lia4Lit4LiwCivguYDguJrguK3guLDguJrguLAKK+C5gOC4muC4sAor4LmA4Lia4LiyCivguYDguJrguYnguLIKK+C5gOC4muC5ieC4suC4guC4peC4uOC4mgor4LmA4Lia4Liy4LiE4Lin4Liy4LihCivguYDguJrguLLguYPguIgKK+C5gOC4muC4suC4leC4seC4pwor4LmA4Lia4LmJ4Liy4LiV4LiyCivguYDguJrguLLguYDguJXguYfguIcKK+C5gOC4muC4suC5gOC4meC4t+C5ieC4reC5gOC4muC4suC4leC4seC4pwor4LmA4Lia4Liy4Lia4Liy4LiHCivguYDguJrguLLguJvguLHguI3guI3guLIKK+C5gOC4muC4suC4oeC4t+C4rQor4LmA4Lia4Liy4LmE4Lih4LmJCivguYDguJrguLLguYTguKHguYnguYDguJrguLLguKHguLfguK0KK+C5gOC4muC4suC4o+C4suC4kwor4LmA4Lia4Liy4LmB4Lij4LiHCivguYDguJrguLLguKrguKHguK3guIcKK+C5gOC4muC5ieC4suC4q+C4peC4uOC4lAor4LmA4Lia4Liy4Lir4Lin4Liy4LiZCivguYDguJrguLLguYDguKvguKfguIcKK+C5gOC4muC4suC5guC4q+C4p+C4hwor4LmA4Lia4Liy4LiwCivguYDguJrguLLguLDguYYKK+C5gOC4muC4suC4sOC4peC4oQor4LmA4Lia4Liy4Liw4LmB4LiqCivguYDguJrguLTguIEKK+C5gOC4muC4tOC4geC4hOC4p+C4suC4oQor4LmA4Lia4Li04LiB4LiX4Liy4LiHCivguYDguJrguLTguIHguJfguLnguJUKK+C5gOC4muC4tOC4geC4muC4suC4mQor4LmA4Lia4Li04LiB4Lie4Lii4Liy4LiZCivguYDguJrguLTguIHguJ7guKPguLDguYDguJnguJXguKMKK+C5gOC4muC4tOC4geC4nuC4o+C4sOC5guC4reC4qeC4kOC5jAor4LmA4Lia4Li04LiB4LmE4Lie4LijCivguYDguJrguLTguIHguYTguKHguYkKK+C5gOC4muC4tOC4geC5gOC4o+C4t+C4rQor4LmA4Lia4Li04LiB4LmC4Lij4LiHCivguYDguJrguLTguIHguYLguKXguIcKK+C5gOC4muC4tOC4geC5geC4p+C5iOC4meC5gOC4p+C4teC4ouC4meC5gOC4l+C4teC4ouC4mQor4LmA4Lia4Li04LiB4Lit4Lij4Li44LiTCivguYDguJrguLTguYjguIcKK+C5gOC4muC4teC5ieC4ogor4LmA4Lia4Li14Lii4LiBCivguYDguJrguLXguKLguIHguJrguYnguLLguKIKK+C5gOC4muC4teC5ieC4ouC4geC4seC4meC4lOC4suC4owor4LmA4Lia4Li14LmJ4Lii4LmB4LiB4LmJCivguYDguJrguLXguYjguKLguIcKK+C5gOC4muC4teC5iOC4ouC4h+C4muC5iOC4suC4ogor4LmA4Lia4Li14Lii4LiUCivguYDguJrguLXguKLguJTguIHguKPguK0KK+C5gOC4muC4teC4ouC4lOC4muC4seC4hwor4LmA4Lia4Li14Lii4LiU4LmA4Lia4Li14Lii4LiZCivguYDguJrguLXguKLguJTguYHguKfguYnguIcKK+C5gOC4muC4teC4ouC4lOC5gOC4quC4teC4ouC4lAor4LmA4Lia4Li14LmJ4Lii4LiV4LmI4Lit4LmE4Liq4LmJCivguYDguJrguLXguYnguKLguJfguLPguILguKfguLHguI0KK+C5gOC4muC4teC4ouC4mQor4LmA4Lia4Li14Lii4LiZ4LiY4Liy4LiV4Li4CivguYDguJrguLXguYnguKLguJnguYnguK3guKLguKvguK3guKLguJnguYnguK3guKIKK+C5gOC4muC4teC5ieC4ouC4muC4mQor4LmA4Lia4Li14LmJ4Lii4Lia4LmJ4Liy4Lii4Lij4Liy4Lii4LiX4Liy4LiHCivguYDguJrguLXguYnguKLguJrguLPguJnguLLguI0KK+C5gOC4muC4teC5ieC4ouC5guC4muC4gQor4LmA4Lia4Li14LmJ4Lii4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4LiiCivguYDguJrguLXguYnguKLguJvguKPguLDguIrguLjguKEKK+C5gOC4muC4teC5ieC4ouC4m+C4o+C4seC4mgor4LmA4Lia4Li14Lii4Lij4LmMCivguYDguJrguLXguYnguKLguKXguYjguLLguIcKK+C5gOC4muC4teC5ieC4ouC5gOC4peC4teC5ieC4ouC4hwor4LmA4Lia4Li14LmJ4Lii4LinCivguYDguJrguLXguYnguKLguKfguYYg4Lia4Li54LiU4LmGCivguYDguJrguLXguYnguKLguKvguKfguLHguJQKK+C5gOC4muC4teC5ieC4ouC4q+C4seC4p+C5geC4leC4gQor4LmA4Lia4Li14LmJ4Lii4Lir4Lix4Lin4LmB4Lir4Lil4LiBCivguYDguJrguLfguK0KK+C5gOC4muC4t+C5iOC4rQor4LmA4Lia4Li34LmJ4LitCivguYDguJrguLfguYnguK3guIcKK+C5gOC4muC4t+C5ieC4reC4h+C4jeC4p+C4mQor4LmA4Lia4Li34LmJ4Lit4LiH4LiV4LmJ4LiZCivguYDguJrguLfguYnguK3guIfguJrguJkKK+C5gOC4muC4t+C5ieC4reC4h+C4p+C5iOC4sgor4LmA4Lia4Li34LmJ4Lit4LiH4Lir4LiZ4LmJ4LiyCivguYDguJrguLfguYnguK3guIfguKvguKXguLHguIcKK+C5gOC4muC4t+C4reC4mQor4LmB4LiaCivguYHguJrguYkKK+C5geC4muC4gQor4LmB4Lia4LiB4Lir4LiZ4LmJ4LiyCivguYHguJrguIHguLDguJTguLTguJkKK+C5geC4muC4hOC4l+C4teC5gOC4o+C4teC4ogor4LmB4Lia4LmI4LiHCivguYHguJrguIfguIHguYwKK+C5geC4muC5iOC4h+C4hOC5ieC4suC4hwor4LmB4Lia4LmI4LiH4LmA4Lia4LiyCivguYHguJrguYjguIfguJvguLHguJkKK+C5geC4muC5iOC4h+C4oOC4suC4hAor4LmB4Lia4LmI4LiH4LmB4Lii4LiBCivguYHguJrguYjguIfguKPguLHguJrguYHguJrguYjguIfguKrguLnguYkKK+C5geC4muC5iOC4h+C4quC4seC4meC4m+C4seC4meC4quC5iOC4p+C4mQor4LmB4Lia4LiU4Lih4Li04LiZ4LiV4Lix4LiZCivguYHguJrguJXguYDguJXguK3guKPguLXguYgKK+C5geC4muC5hOC4leC5iwor4LmB4Lia4LiZCivguYHguJrguJnguYLguIgKK+C5geC4muC4mgor4LmB4Lia4LmH4LiaCivguYHguJrguJrguILguYnguK3guITguLPguJbguLLguKEKK+C5geC4muC4muC4ieC4muC4seC4mgor4LmB4Lia4Lia4Lia4Liy4LiHCivguYHguJrguJrguYHguJzguJkKK+C5geC4muC4muC4neC4tuC4geC4q+C4seC4lAor4LmB4Lia4Lia4Lie4Li04LiY4Li1CivguYHguJrguJrguJ7guLTguKHguJ7guYwKK+C5geC4muC4muC4quC4reC4muC4luC4suC4oQor4LmB4Lia4Lia4Lit4Lii4LmI4Liy4LiHCivguYHguJrguYDguJrguLLguLAKK+C5geC4muC4oeC4t+C4rQor4LmB4Lia4Lij4LiBCivguYHguJrguYDguKPguLXguKLguKEKK+C5geC4muC4q+C4peC4sgor4LmB4Lia4LiwCivguYHguJrguLDguYHguInguLAKK+C5geC4muC4sOC4l+C5iOC4sgor4LmB4Lia4Liw4Lib4Liy4LiBCivguYHguJrguLDguK3guIEKK+C5guC4mgor4LmC4Lia4LmJCivguYLguJrguYsKK+C5guC4muC4gQor4LmC4Lia4LiB4LiC4LijLQor4LmC4Lia4LiB4LiC4Lij4LiT4Li1CivguYLguJrguIHguILguKPguJ7guKPguKPguKkKK+C5guC4muC4geC4oeC4t+C4rQor4LmC4Lia4LiK4Li44LiBCivguYLguJrguJTguIEKK+C5guC4muC5geC4lOC4hwor4LmC4Lia4LiVCivguYLguJrguJnguLHguKoKK+C5guC4muC5iuC5gOC4muC5igor4LmC4Lia4LiiCivguYLguJrguKLguJrguLTguJkKK+C5guC4muC4o+C4oeC4teC4mQor4LmC4Lia4Lij4Lit4LiZCivguYLguJrguKPguLLguJMKK+C5guC4muC4o+C4suC4ky0KK+C5guC4muC4o+C4suC4k+C4hOC4lOC4tQor4LmC4Lia4Lij4Liy4LiT4Lin4Lix4LiV4LiW4Li4CivguYLguJrguKPguLLguJPguKrguJbguLLguJkKK+C5guC4muC4quC4luC5jAor4LmD4LiaCivguYPguJrguYkKK+C5g+C4muC4geC5ieC4meC4m+C4tOC4lAor4LmD4Lia4LiB4Lit4LiH4LmA4LiB4Li04LiZCivguYPguJrguIHguK3guIfguKvguJnguLjguJkKK+C5g+C4muC4guC4meC4quC4tOC4meC4hOC5ieC4sgor4LmD4Lia4LiC4LiZ4Li44LiZCivguYPguJrguILguLHguJrguILguLXguYgKK+C5g+C4muC5geC4guC5h+C4hwor4LmD4Lia4LmJ4LiE4Lil4Lix4LmI4LiHCivguYPguJrguYDguIfguLTguJkKK+C5g+C4muC4iOC4reC4hwor4LmD4Lia4LiO4Li14LiB4LiyCivguYPguJrguJTguLLguKUKK+C5g+C4muC4lOC4swor4LmD4Lia4LmB4LiU4LiHCivguYPguJrguYHguJTguIfguYHguIjguYnguIfguYLguJfguKkKK+C5g+C4muC4leC4o+C4suC4quC5iOC4hwor4LmD4Lia4LiV4Lit4LiHCivguYPguJrguJXguLLguKUKK+C5g+C4muC4l+C4reC4hwor4LmD4Lia4LiX4LmJ4Lit4LiH4LmB4LiU4LiHCivguYPguJrguYHguJfguKPguIEKK+C5g+C4muC4meC4suC4gQor4LmD4Lia4Lia4Lit4LiBCivguYPguJrguJrguLjguI0KK+C5g+C4muC5gOC4muC4tOC4gQor4LmD4Lia4LmA4Lia4Li04LiB4LiX4Liy4LiHCivguYPguJrguYDguJrguLTguIHguKPguYjguK3guIcKK+C5g+C4muC4m+C4gQor4LmD4Lia4Lib4Lij4Li34LitCivguYPguJrguJvguKXguLTguKcKK+C5g+C4muC4nuC4seC4lAor4LmD4Lia4Lie4Lix4LiX4LiY4Liq4Li14Lih4LiyCivguYPguJrguYLguJ4KK+C5g+C4muC5gOC4oeC4teC5iOC4ouC4hwor4LmD4Lia4LmE4Lih4LmJCivguYPguJrguKPguLDguIHguLIKK+C5g+C4muC4o+C4seC4mgor4LmD4Lia4Lij4Lix4Lia4Lij4Lit4LiHCivguYPguJrguKXguLIKK+C5g+C4muC5gOC4peC4teC5ieC4ouC4hwor4LmD4Lia4Liq4LitCivguYPguJrguKrguLHguYjguIcKK+C5g+C4muC4quC4seC5iOC4h+C4iOC5iOC4suC4ogor4LmD4Lia4Liq4Lix4LiICivguYPguJrguKrguLPguITguLHguI0KK+C5g+C4muC4quC4s+C4hOC4seC4jeC4hOC4ueC5iOC4iOC5iOC4suC4ogor4LmD4Lia4Liq4Li14Lih4LiyCivguYPguJrguKrguLjguJfguJjguLQKK+C5g+C4muC5gOC4quC4oeC4sgor4LmD4Lia4LmA4Liq4Lij4LmH4LiICivguYPguJrguKvguJnguYnguLIKK+C5g+C4muC4q+C4uOC5ieC4mQor4LmD4Lia4Lir4Li54LiK4LmJ4Liy4LiHCivguYPguJrguYDguKvguKLguLXguKLguJrguKLguYjguLMKK+C5g+C4muC4reC4meC4uOC4jeC4suC4leC4guC4seC4muC4guC4teC5iAor4LmE4Lia4LmI4LmGCivguJsKK+C4m+C4gQor4Lib4LiB4LiB4Lij4Liw4Lie4Lit4LiHCivguJvguIHguYDguIHguKgKK+C4m+C4geC4hOC4o+C4reC4hwor4Lib4LiB4LiE4Lil4Li44LihCivguJvguIHguJXguLQKK+C4m+C4geC4m+C5ieC4reC4hwor4Lib4LiB4Lib4Lix4LiB4Lij4Lix4LiB4Lip4LiyCivguJvguIHguJvguLTguJQKK+C4m+C4geC4o+C4k+C5jAor4Lib4LiB4Lij4LiT4Lix4LihCivguJvguIHguLLguKMKK+C4m+C4geC4tOC4k+C4geC4sAor4Lib4LiB4Li14Lij4LiT4Lix4LihCivguJvguYLguIHguI/guLQKK+C4m+C4hwor4Lib4LmI4LiHCivguJvguIfguIrguYnguLLguIcKK+C4m+C4h+C4m+C4seC4hwor4Lib4LiO4LilCivguJvguI/guLHguIEKK+C4m+C4j+C4tC0KK+C4m+C4j+C4tOC4geC4o+C4k+C5jAor4Lib4LiP4Li04LiB4Lij4Lij4Lih4Liq4LiH4LiE4Lij4Liy4LihCivguJvguI/guLTguIHguLLguKMtCivguJvguI/guLTguIHguLLguKPguLAKK+C4m+C4j+C4tOC4geC4tOC4o+C4tOC4ouC4sgor4Lib4LiP4Li04LiB4Li54LilCivguJvguI/guLTguITguITguKvguLTguJUKK+C4m+C4j+C4tOC4hOC4oQor4Lib4LiP4Li04LiE4Lir4Li04LiVLQor4Lib4LiP4Li04LiE4Liy4Lir4LiBCivguJvguI/guLTguIbguLAKK+C4m+C4j+C4tOC4iuC4teC4p+C4meC4sAor4Lib4LiP4Li04LiN4LiN4LiyCivguJvguI/guLTguI3guI3guLLguKrguLLguIHguKXguKfguYjguLLguJTguYnguKfguKLguKrguLTguJfguJjguLTguKHguJnguLjguKnguKLguIrguJkKK+C4m+C4j+C4tOC4jeC4suC4kwor4Lib4LiP4Li04LiX4Li04LiZCivguJvguI/guLTguJrguJYKK+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lib4LiP4Li04Lia4Lix4LiV4Li04LiB4Liy4LijCivguJvguI/guLTguJrguLHguJXguLTguJjguKPguKPguKEKK+C4m+C4j+C4tOC4m+C4l+C4sgor4Lib4LiP4Li04Lib4Lix4LiB4Lip4LmMCivguJvguI/guLTguJvguLHguJkKK+C4m+C4j+C4tOC4m+C4uOC4iOC4ieC4suC4nuC4ouC4suC4geC4o+C4k+C5jAor4Lib4LiP4Li04Lib4Li44LiI4LiJ4Liy4Lin4Liy4LiX4Li1CivguJvguI/guLTguJ7guLHguJfguJjguYwKK+C4m+C4j+C4tOC4nuC4suC4geC4ouC5jAor4Lib4LiP4Li04Lig4Liy4LiECivguJvguI/guLTguKDguLLguIQtCivguJvguI/guLTguKDguLLguITguJnguLTguKHguLTguJUKK+C4m+C4j+C4tOC4oOC4suC4kwor4Lib4LiP4Li04Lig4Liy4LiTLQor4Lib4LiP4Li04Lig4Liy4LiT4LiB4Lin4Li1CivguJvguI/guLTguKDguLLguJPguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC4oOC4suC4k+C5guC4p+C4q+C4suC4owor4Lib4LiP4Li04Lih4LiyCivguJvguI/guLTguKHguLLguIHguKMKK+C4m+C4j+C4tOC4ouC4uOC4l+C4mOC5jAor4Lib4LiP4Li04Lij4LieCivguJvguI/guLTguKPguLnguJsKK+C4m+C4j+C4tOC4o+C4ueC4my0KK+C4m+C4j+C4tOC5guC4peC4oQor4Lib4LiP4Li04Lin4Lix4LiV4Li0CivguJvguI/guLTguKfguLLguJUKK+C4m+C4j+C4tOC4p+C4suC4lwor4Lib4LiP4Li04LmA4Lin4LiYCivguJvguI/guLTguKrguJnguJjguLQKK+C4m+C4j+C4tOC4quC4p+C4sAor4Lib4LiP4Li04Liq4Lix4LiH4LiC4Lij4LiT4LmMCivguJvguI/guLTguKrguLHguJnguJbguLLguKMKK+C4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4Lib4LiP4Li04LmA4Liq4LiYCivguJvguI/guLTguYDguKrguJjguILguYjguLLguKcKK+C4m+C4kOC4nuC4tQor4Lib4LiQ4Lie4Li14Lin4Li04LiX4Lii4LiyCivguJvguJDguKEKK+C4m+C4kOC4oS0KK+C4m+C4kOC4oeC4geC4o+C4o+C4oQor4Lib4LiQ4Lih4LiM4Liy4LiZCivguJvguJDguKHguJTguLjguKrguLTguJUKK+C4m+C4kOC4oeC4l+C4seC4qOC4meC5jAor4Lib4LiQ4Lih4LmA4LiX4Lio4LiZ4LiyCivguJvguJDguKHguJnguLTguYDguJfguKgKK+C4m+C4kOC4oeC4muC4uOC4o+C4uOC4qQor4Lib4LiQ4Lih4Lie4Lii4Liy4Lia4Liy4LilCivguJvguJDguKHguYLguJ7guJjguLTguIHguLLguKUKK+C4m+C4kOC4oeC4ouC4suC4oQor4Lib4LiQ4Lih4Lik4LiB4Lip4LmMCivguJvguJDguKHguKfguLHguKIKK+C4m+C4kOC4oeC4quC4oeC5guC4nuC4mOC4tAor4Lib4LiQ4Lih4Liq4Li44Lij4LiX4Li04LiZCivguJvguJDguKHguLLguKnguLLguJIKK+C4m+C4kOC4p+C4tQor4Lib4LiT4LiVCivguJvguJPguLLguKEKK+C4m+C4k+C4tOC4mOC4suC4mQor4Lib4LiT4Li04LiY4Li0CivguJvguJPguLXguJUKK+C4m+C4lAor4Lib4LiU4LmC4Lib4LmJCivguJvguJTguLTguKfguKPguLHguJTguLIKK+C4m+C4leC4tAor4Lib4LiV4Li04Lii4Lix4LiVCivguJvguJXguLTguKfguLHguJXguKMKK+C4m+C4luC4nuC4tQor4Lib4LiW4Lih4Lix4LiHCivguJvguJbguKfguLUKK+C4m+C4l+C4seC4j+C4kOC4suC4mQor4Lib4LiX4Lix4Liq4LiW4Liy4LiZCivguJvguJfguLLguJnguLjguIHguKPguKEKK+C4m+C4l+C4teC4mwor4Lib4LiX4Li44LihCivguJvguJkKK+C4m+C5iOC4mQor4Lib4LmI4LiZ4Lib4Li14LmJCivguJvguJnguYDguJsKK+C4m+C4meC4seC4lOC4lOC4sgor4Lib4LiaCivguJvguJvguLHguI3guIgtCivguJvguJvguLHguI3guIjguJjguKPguKPguKEKK+C4m+C4m+C4seC4jeC4iOC4sAor4Lib4LihCivguJvguKHguYDguILguLfguYjguK3guIcKK+C4m+C4oeC4iOC4tOC4lQor4Lib4Lih4LiU4LmJ4Lit4LiiCivguJvguKHguYDguJTguYjguJkKK+C4m+C4oeC4m+C4o+C4sOC4quC4suC4lwor4Lib4Lih4LmA4Lib4LiyCivguJvguYLguKItCivguJvguYLguKLguIrguJnguKHguYwKK+C4m+C5guC4ouC4mOC4owor4Lib4LmC4Lii4LiY4Lij4LiyCivguJvguYLguKLguJnguLTguJjguLQKK+C4m+C5guC4ouC4o+C4suC4qOC4tAor4Lib4LijLQor4Lib4Lij4LiBCivguJvguKPguIHguJXguLQKK+C4m+C4o+C4hwor4Lib4Lij4LiUCivguJvguKPguJXguKLguLHguIHguKnguYwKK+C4m+C4o+C4leC4ouC4suC4hAor4Lib4Lij4LiV4LmA4Lii4LiBCivguJvguKPguJkKK+C4m+C4o+C4meC4meC4tOC4muC4seC4leC4tAor4Lib4Lij4LiZ4Lib4Lij4Li34LitCivguJvguKPguJnguYDguJvguKPguK0KK+C4m+C4o+C4meC4seC4ogor4Lib4Lij4LiaCivguJvguKPguJrguYTguIHguYgKK+C4m+C4o+C4muC4oeC4t+C4reC5g+C4q+C5iQor4Lib4Lij4Lib4Lix4LiB4Lip4LmMCivguJvguKPguKEtCivguJvguKPguKHguLHguJXguJbguYwKK+C4m+C4o+C4oeC4suC4iOC4suC4o+C4ouC5jAor4Lib4Lij4Lih4Liy4LiT4Li5CivguJvguKPguKHguLLguJXguKHguLHguJkKK+C4m+C4o+C4oeC4suC4oOC4tOC5hOC4mOC4ogor4Lib4Lij4Lih4Liy4Lig4Li04LmA4Lip4LiBCivguJvguKPguKHguLTguJnguJfguKPguYwKK+C4m+C4o+C5gOC4oeC4meC4l+C4o+C5jAor4Lib4Lij4LmA4Lih4Lio4Lin4Lij4LmMCivguJvguKPguYDguKHguKnguJDguYwKK+C4m+C4o+C5gOC4oeC4q+C4sAor4Lib4Lij4LmC4Lil4LiBCivguJvguKPguKfguJQKK+C4m+C4o+C4p+C4meC5geC4m+C4owor4Lib4Lij4Lin4Liy4LiX4Li1CivguJvguKPguKjguLgKK+C4m+C4o+C4quC4tOC4lQor4Lib4Lij4Liq4Li04LiVLQor4Lib4Lij4Liq4Li04LiV4Lin4Li04LiX4Lii4LiyCivguJvguKPguYvguK0KK+C4m+C4o+C4reC4h+C4lOC4reC4hwor4Lib4Lij4Lit4LiUCivguJvguKPguK3guJTguYYKK+C4m+C4o+C4reC4lwor4Lib4Lij4Lit4LiiCivguJvguKPguK3guKLguYYKK+C4m+C4o+C4sC0KK+C4m+C4o+C4sOC4geC4mgor4Lib4Lij4Liw4LiB4Lia4LiV4Lix4LinCivguJvguKPguLDguIHguKTguJUKK+C4m+C4o+C4sOC4geC4pOC4leC4tAor4Lib4Lij4Liw4LiB4LilCivguJvguKPguLDguIHguKfguJQKK+C4m+C4o+C4sOC4geC4p+C4lOC4m+C4o+C4sOC4guC4seC4mQor4Lib4Lij4Liw4LiB4Lin4LiU4Lij4Liy4LiE4LiyCivguJvguKPguLDguIHguK3guJoKK+C4m+C4o+C4sOC4geC4reC4muC4lOC5ieC4p+C4ogor4Lib4Lij4Liw4LiB4Lit4Lia4Lit4Liy4Lir4Liy4LijCivguJvguKPguLDguIHguLHguJkKK+C4m+C4o+C4sOC4geC4seC4meC4iuC4teC4p+C4tOC4lQor4Lib4Lij4Liw4LiB4Lix4LiZ4LmA4LiK4Li04LiH4Lil4LiyCivguJvguKPguLDguIHguLHguJnguJXguLHguKfguJzguLnguYnguJXguYnguK3guIfguKvguLLguKvguKPguLfguK3guIjguLPguYDguKXguKIKK+C4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4Lii4LiE4LmJ4Liz4LiI4Li44LiZCivguJvguKPguLDguIHguLHguJnguKfguLTguJnguLLguKjguKDguLHguKIKK+C4m+C4o+C4sOC4geC4seC4mgor4Lib4Lij4Liw4LiB4Liy4LiiCivguJvguKPguLDguIHguLLguKLguJ7guKPguLbguIEKK+C4m+C4o+C4sOC4geC4suC4owor4Lib4Lij4Liw4LiB4Liy4LioCivguJvguKPguLDguIHguLLguKjguIEKK+C4m+C4o+C4sOC4geC4suC4qOC4meC4teC4ouC4muC4seC4leC4owor4Lib4Lij4Liw4LiB4Liy4Lio4Li04LiVCivguJvguKPguLDguIHguLMKK+C4m+C4o+C4sOC4geC4tOC4lAor4Lib4Lij4Liw4LiB4Li04LiVCivguJvguKPguLDguIHguLXguKPguJPguIEKK+C4m+C4o+C4sOC5gOC4geC4teC4ouC4o+C4k+C4gQor4Lib4Lij4Liw4LmB4LiB4LiBCivguJvguKPguLDguITguJQKK+C4m+C4o+C4sOC4hOC4meC4mOC4o+C4o+C4ngor4Lib4Lij4Liw4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguITguJoKK+C4m+C4o+C4sOC4hOC4muC4m+C4o+C4sOC4q+C4h+C4oQor4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguJrguJvguKPguLDguITguK3guIcKK+C4m+C4o+C4sOC4hOC4seC4peC4oOC5jAor4Lib4Lij4Liw4LiE4Liy4Lij4LihCivguJvguKPguLDguITguLMKK+C4m+C4o+C4sOC4hOC4s+C5hOC4geC5iAor4Lib4Lij4Liw4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguJvguKPguLDguITguLPguKPguYnguK3guKIKK+C4m+C4o+C4sOC4hOC4tOC5iOC4mQor4Lib4Lij4Liw4LiE4Li04LmI4LiZ4Lin4Li04LiZ4LiK4LiyCivguJvguKPguLDguITguLjguJMKK+C4m+C4o+C4sOC5gOC4hOC4mQor4Lib4Lij4Liw4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJvguKPguLDguYLguITguJkKK+C4m+C4o+C4sOC5guC4hOC4meC4mOC4o+C4o+C4ngor4Lib4Lij4Liw4LmC4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguYLguITguKEKK+C4m+C4o+C4sOC5guC4hOC4oeC4guC5iOC4suC4pwor4Lib4Lij4Liw4LiI4LiHCivguJvguKPguLDguIjguI0KK+C4m+C4o+C4sOC4iOC4mgor4Lib4Lij4Liw4LiI4Lia4Lib4Lij4Liw4LmB4LiI4LiHCivguJvguKPguLDguIjguKfguJoKK+C4m+C4o+C4sOC4iOC5i+C4reC4m+C4o+C4sOC5geC4iOC5iwor4Lib4Lij4Liw4LiI4Lix4LiB4LipLQor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMCivguJvguKPguLDguIjguLHguIHguKnguJnguLTguKLguKEKK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jOC4nuC4ouC4suC4mQor4Lib4Lij4Liw4LiI4Lix4LiNCivguJvguKPguLDguIjguLHguI3guJrguLLguJkKK+C4m+C4o+C4sOC4iOC4seC4mQor4Lib4Lij4Liw4LiI4Lix4LiZ4Lir4LiZ4LmJ4LiyCivguJvguKPguLDguIjguLLguIEKK+C4m+C4o+C4sOC4iOC4suC4hAor4Lib4Lij4Liw4LiI4Liy4LiZCivguJvguKPguLDguIjguLMKK+C4m+C4o+C4sOC4iOC4s+C4geC4suC4owor4Lib4Lij4Liw4LiI4Liz4LiE4Lij4Lix4LmI4LiHCivguJvguKPguLDguIjguLPguInguLHguJXguKMKK+C4m+C4o+C4sOC4iOC4s+C4i+C4reC4hwor4Lib4Lij4Liw4LiI4Liz4LmA4LiU4Li34Lit4LiZCivguJvguKPguLDguIjguLPguJXguKPguLIKK+C4m+C4o+C4sOC4iOC4s+C5gOC4oeC4t+C4reC4hwor4Lib4Lij4Liw4LiI4Liz4Lii4Liy4LihCivguJvguKPguLDguIjguLTguKEKK+C4m+C4o+C4sOC4iOC4tOC5ieC4oeC4m+C4o+C4sOC4iOC5iOC4reC4hwor4Lib4Lij4Liw4LiI4Li04LmJ4Lih4Lib4Lij4Liw4LmA4LiI4LmL4LitCivguJvguKPguLDguIjguLgKK+C4m+C4o+C4sOC4iOC4uOC4guC4suC4lAor4Lib4Lij4Liw4LiI4Li44LiE4Lih4LiZ4LmMCivguJvguKPguLDguIjguLjguJrguLHguJkKK+C4m+C4o+C4sOC4iOC4uOC5hOC4n+C4n+C5ieC4sgor4Lib4Lij4Liw4LiI4Li44LmC4Lil4Lir4Li04LiVCivguJvguKPguLDguYDguIjguIEKK+C4m+C4o+C4sOC5gOC4iOC4tOC4lAor4Lib4Lij4Liw4LmA4LiI4Li04LiU4Lib4Lij4Liw4LmA4LiI4LmJ4LitCivguJvguKPguLDguYDguIjguLXguKLguJQKK+C4m+C4o+C4sOC5geC4iAor4Lib4Lij4Liw4LmB4LiI4LiI4Li14LiZCivguJvguKPguLDguIrguJQKK+C4m+C4o+C4sOC4iuC4lOC4m+C4o+C4sOC4iuC4seC4mQor4Lib4Lij4Liw4LiK4LiZCivguJvguKPguLDguIrguKfguKEKK+C4m+C4o+C4sOC4iuC4p+C4owor4Lib4Lij4Liw4LiK4Lix4LiZCivguJvguKPguLDguIrguLIKK+C4m+C4o+C4sOC4iuC4suC4geC4owor4Lib4Lij4Liw4LiK4Liy4LiB4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguJvguKPguLDguIrguLLguITguKEKK+C4m+C4o+C4sOC4iuC4suC4iuC4mQor4Lib4Lij4Liw4LiK4Liy4LiK4Liy4LiV4Li0CivguJvguKPguLDguIrguLLguJfguLHguJPguJHguYwKK+C4m+C4o+C4sOC4iuC4suC4mOC4tOC4m+C5hOC4leC4ogor4Lib4Lij4Liw4LiK4Liy4LiZ4Liy4LiWCivguJvguKPguLDguIrguLLguJrguJTguLUKK+C4m+C4o+C4sOC4iuC4suC4muC4suC4pQor4Lib4Lij4Liw4LiK4Liy4Lig4Li04Lia4Liy4LilCivguJvguKPguLDguIrguLLguKHguJXguLQKK+C4m+C4o+C4sOC4iuC4suC4o+C4suC4qeC4juC4o+C5jAor4Lib4Lij4Liw4LiK4Liy4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJvguKPguLDguIrguLLguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4m+C4o+C4sOC4iuC4tOC4lAor4Lib4Lij4Liw4LiK4Li1CivguJvguKPguLDguIrguLjguKEKK+C4m+C4o+C4sOC4iuC4uOC4oeC5gOC4nuC4peC4tOC4hwor4Lib4Lij4Liw4LiK4Li44Lih4Liq4Li44LiU4Lii4Lit4LiUCivguJvguKPguLDguYDguIrguLTguI0KK+C4m+C4o+C4sOC4k+C4lQor4Lib4Lij4Liw4LiT4LihCivguJvguKPguLDguJPguLLguKEKK+C4m+C4o+C4sOC4k+C4tOC4mOC4suC4mQor4Lib4Lij4Liw4LiT4Li04LiY4Li0CivguJvguKPguLDguJPguLXguJUKK+C4m+C4o+C4sOC4k+C4uOC4lwor4Lib4Lij4Liw4LiU4LiHCivguJvguKPguLDguJTguIfguYHguJTguIcKK+C4m+C4o+C4sOC4lOC4mQor4Lib4Lij4Liw4LiU4LiZ4LiY4Lij4Lij4LihCivguJvguKPguLDguJTguKfguJkKK+C4m+C4o+C4sOC4lOC4reC4mQor4Lib4Lij4Liw4LiU4Lit4LiiCivguJvguKPguLDguJTguLHguIHguYYKK+C4m+C4o+C4sOC4lOC4seC4geC4m+C4o+C4sOC5gOC4lOC4tOC4lAor4Lib4Lij4Liw4LiU4Lix4LiHCivguJvguKPguLDguJTguLHguJoKK+C4m+C4o+C4sOC4lOC4seC4muC4m+C4o+C4sOC4lOC4sgor4Lib4Lij4Liw4LiU4LiyCivguJvguKPguLDguJTguLLguIEKK+C4m+C4o+C4sOC4lOC4suC4leC4suC4ogor4Lib4Lij4Liw4LiU4Liy4LiX4Lix4LieCivguJvguKPguLDguJTguLLguJnguYnguLMKK+C4m+C4o+C4sOC4lOC4suC4mwor4Lib4Lij4Liw4LiU4Liy4Lie4LilCivguJvguKPguLDguJTguLLguKHguLUKK+C4m+C4o+C4sOC4lOC4suC4qQor4Lib4Lij4Liw4LiU4Liy4LmA4Liq4Li14LiiCivguJvguKPguLDguJTguLQtCivguJvguKPguLDguJTguLTguIrguI3guLIKK+C4m+C4o+C4sOC4lOC4tOC4lOC4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Li04LiX4Li04LiZCivguJvguKPguLDguJTguLTguKPguJ4KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kC0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jAor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LiB4Lij4Lij4LihCivguJvguKPguLDguJTguLTguKnguJDguLLguJkKK+C4m+C4o+C4sOC4lOC4uOC4hwor4Lib4Lij4Liw4LiU4Li44LiICivguJvguKPguLDguJTguLnguYgKK+C4m+C4o+C4sOC4lOC4ueC5iOC5geC4guC4gQor4Lib4Lij4Liw4LiU4Li54LmI4LiK4Li04LiH4LiK4Lix4LiZCivguJvguKPguLDguJTguLnguYjguYHguJTguIcKK+C4m+C4o+C4sOC4lOC4ueC5iOC4peC4suC4ogor4Lib4Lij4Liw4LmA4LiUCivguJvguKPguLDguYDguJTguYfguJkKK+C4m+C4o+C4sOC5gOC4lOC4ouC4gQor4Lib4Lij4Liw4LmA4LiU4Li04LihCivguJvguKPguLDguYDguJTguLXguKLguIcKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4pwor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4Lin4LiB4LmI4Lit4LiZCivguJvguKPguLDguYDguJTguLXguYvguKLguKfguYDguJTguLXguKLguKcKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4p+C4meC4teC5iQor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4Lin4Lib4Lij4Liw4LiU4LmL4Liy4LinCivguJvguKPguLDguYHguJTguIcKK+C4m+C4o+C4sOC5geC4lOC4sAor4Lib4Lij4Liw4LmC4LiU4LiiCivguJvguKPguLDguJXguIcKK+C4m+C4o+C4sOC4leC4ouC4suC4hAor4Lib4Lij4Liw4LiV4Lix4LiBCivguJvguKPguLDguJXguLLguJvguLAKK+C4m+C4o+C4sOC4leC4tC0KK+C4m+C4o+C4sOC4leC4tOC4iuC4jeC4sgor4Lib4Lij4Liw4LiV4Li04LiN4Liy4LiTCivguJvguKPguLDguJXguLTguJfguLTguJkKK+C4m+C4o+C4sOC4leC4tOC4oeC4suC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiV4Li04Lij4LieCivguJvguKPguLDguJXguLTguKjguKPguLHguJ4KK+C4m+C4o+C4sOC4leC4uQor4Lib4Lij4Liw4LiV4Li54LiK4Lix4LiiCivguJvguKPguLDguJXguLnguJnguYnguLMKK+C4m+C4o+C4sOC4leC4ueC4m+C5iOC4sgor4Lib4Lij4Liw4LiV4Li54Lic4Li1CivguJvguKPguLDguJXguLnguJ/guLjguJXguJrguK3guKUKK+C4m+C4o+C4sOC4leC4ueC4o+C4sOC4muC4suC4ogor4Lib4Lij4Liw4LiV4Li54Lij4Lix4Lia4LiZ4LmJ4LizCivguJvguKPguLDguJXguLnguKXguKEKK+C4m+C4o+C4sOC4luC4oQor4Lib4Lij4Liw4LiW4Lih4LiI4Li04LiZ4LiU4LiyCivguJvguKPguLDguJfguKEKK+C4m+C4o+C4sOC4l+C4ouC4lAor4Lib4Lij4Liw4LiX4LmJ4Lin4LiHCivguJvguKPguLDguJfguKfguJkKK+C4m+C4o+C4sOC4l+C4p+C4meC4quC4tOC4meC4hOC5ieC4sgor4Lib4Lij4Liw4LiX4Lix4LiB4Lip4LmMCivguJvguKPguLDguJfguLHguIHguKnguLTguJMKK+C4m+C4o+C4sOC4l+C4seC4hwor4Lib4Lij4Liw4LiX4Lix4LiUCivguJvguKPguLDguJfguLHguJTguIjguLXguJkKK+C4m+C4o+C4sOC4l+C4seC4lOC4l+C4reC4hwor4Lib4Lij4Liw4LiX4Lix4LiU4Lid4Lij4Lix4LmI4LiHCivguJvguKPguLDguJfguLHguJTguKXguKEKK+C4m+C4o+C4sOC4l+C4seC4lOC5gOC4peC5h+C4gQor4Lib4Lij4Liw4LiX4Lix4LiU4LmD4Lir4LiN4LmICivguJvguKPguLDguJfguLHguJoKK+C4m+C4o+C4sOC4l+C4seC4muC5g+C4iAor4Lib4Lij4Liw4LiX4Lix4Lia4LiV4Lij4LiyCivguJvguKPguLDguJfguLHguJrguJ/guYnguK3guIcKK+C4m+C4o+C4sOC4l+C4seC4muC5geC4o+C4oQor4Lib4Lij4Liw4LiX4LmI4LiyCivguJvguKPguLDguJfguLLguIHguKXguYnguK3guIcKK+C4m+C4o+C4sOC4l+C4suC4mQor4Lib4Lij4Liw4LiX4Liy4LiZ4Lia4Lix4LiV4LijCivguJvguKPguLDguJfguLLguKIKK+C4m+C4o+C4sOC4l+C4suC4qOC4tQor4Lib4Lij4Liw4LiX4Li04LiZCivguJvguKPguLDguJfguLTguYjguJkKK+C4m+C4o+C4sOC4l+C4teC4mwor4Lib4Lij4Liw4LiX4Li44LiBCivguJvguKPguLDguJfguLjguJAKK+C4m+C4o+C4sOC4l+C4uOC4kOC4iOC4tOC4lQor4Lib4Lij4Liw4LiX4Li44LiZCivguJvguKPguLDguJfguLjguKHguKPguLLguIQKK+C4m+C4o+C4sOC4l+C4uOC4qQor4Lib4Lij4Liw4LiX4Li44Lip4LiP4LmMCivguJvguKPguLDguJfguLjguKnguI/guIjguLTguJUKK+C4m+C4o+C4sOC4l+C4uOC4qeC4kOC5jAor4Lib4Lij4Liw4LiX4Li44Lip4LiQ4LiI4Li04LiVCivguJvguKPguLDguJfguLjguKnguKPguYnguLLguKIKK+C4m+C4o+C4sOC5gOC4l+C4qAor4Lib4Lij4Liw4LmA4LiX4Lio4LiB4Lix4LiZ4LiK4LiZCivguJvguKPguLDguYDguJfguKjguIrguLLguJXguLQKK+C4m+C4o+C4sOC5gOC4l+C4qOC4o+C4suC4igor4Lib4Lij4Liw4LmA4LiX4LiyCivguJvguKPguLDguYDguJfguYnguLIKK+C4m+C4o+C4sOC5gOC4l+C4teC4ouC4lAor4Lib4Lij4Liw4LmA4LiX4Li14Lii4LiaCivguJvguKPguLDguYDguJfguLfguK3guIcKK+C4m+C4o+C4sOC4mOC4suC4mQor4Lib4Lij4Liw4LiY4Liy4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJvguKPguLDguJnguKEKK+C4m+C4o+C4sOC4meC4oeC4oeC4t+C4rQor4Lib4Lij4Liw4LiZ4LitCivguJvguKPguLDguJnguK3guKEKK+C4m+C4o+C4sOC4meC4reC4oeC4q+C4meC4teC5iQor4Lib4Lij4Liw4LiZ4Lix4LiHCivguJvguKPguLDguJnguLHguJvguJTguLIKK+C4m+C4o+C4sOC4meC4teC5iQor4Lib4Lij4Liw4LiZ4Li14Lib4Lij4Liw4LiZ4Lit4LihCivguJvguKPguLDguJnguLXguJvguKPguLDguJnguK3guKHguKLguK3guKHguITguKfguLLguKEKK+C4m+C4o+C4sOC4muC4seC4lAor4Lib4Lij4Liw4Lia4Liy4LiVCivguJvguKPguLDguJvguKPguLLguJkKK+C4m+C4o+C4sOC4m+C4o+C4suC4ogor4Lib4Lij4Liw4Lib4LiyCivguJvguKPguLDguYDguJvguKPguLXguYnguKLguIcKK+C4m+C4o+C4sOC5gOC4m+C4o+C4teC4ouC4pwor4Lib4Lij4Liw4LmB4Lib4LmJ4LiHCivguJvguKPguLDguYHguJvguKPguYnguJkKK+C4m+C4o+C4sOC4nuC4iOC4meC5jAor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMCivguJvguKPguLDguJ7guKPguKEKK+C4m+C4o+C4sOC4nuC4pOC4leC4tAor4Lib4Lij4Liw4Lie4Lik4LiX4LiY4Li04LmMCivguJvguKPguLDguJ7guLHguJQKK+C4m+C4o+C4sOC4nuC4seC4l+C4mOC5jAor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLDguJ7guLLguJUKK+C4m+C4o+C4sOC4nuC4suC4qgor4Lib4Lij4Liw4Lie4Liy4Liq4LiV4LmJ4LiZCivguJvguKPguLDguJ7guLLguKrguKHguKvguKPguJPguJ4KK+C4m+C4o+C4sOC4nuC4suC4rAor4Lib4Lij4Liw4Lie4Li04LiTCivguJvguKPguLDguJ7guLTguKHguJ7guYzguJvguKPguLDguJ7guLLguKIKK+C4m+C4o+C4sOC4nuC4uOC4l+C4mOC5jAor4Lib4Lij4Liw4LmA4Lie4LiT4Li1CivguJvguKPguLDguYDguJ7guJPguLXguJnguLTguKLguKEKK+C4m+C4o+C4sOC5gOC4nuC5ieC4rQor4Lib4Lij4Liw4LmB4Lie4Lij4LmI4LiH4Lib4Lij4Liw4LmB4Lie4Lij4LinCivguJvguKPguLDguYLguJ7guJgKK+C4m+C4o+C4sOC5hOC4ngor4Lib4Lij4Liw4LmE4Lie4LijCivguJvguKPguLDguKDguJ4KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4owor4Lib4Lij4Liw4Lig4LiyCivguJvguKPguLDguKDguLLguIHguKMKK+C4m+C4o+C4sOC4oOC4suC4hOC4suC4owor4Lib4Lij4Liw4Lig4Liy4LieCivguJvguKPguLDguKDguLLguKHguJPguJHguKUKK+C4m+C4o+C4sOC4oOC4suC4qQor4Lib4Lij4Liw4Lig4Liy4LiqCivguJvguKPguLDguYDguKDguJcKK+C4m+C4o+C4sOC4oeC4hwor4Lib4Lij4Liw4Lih4Lin4LiNCivguJvguKPguLDguKHguKfguKUKK+C4m+C4o+C4sOC4oeC4p+C4peC4geC4juC4q+C4oeC4suC4ogor4Lib4Lij4Liw4Lih4Lin4Lil4LiB4Liy4Lij4Liq4Lit4LiZCivguJvguKPguLDguKHguKfguKXguKPguLHguKnguI7guLLguIHguKMKK+C4m+C4o+C4sOC4oeC4seC4leC4leC4sAor4Lib4Lij4Liw4Lih4Liy4LiTCivguJvguKPguLDguKHguLLguJPguIHguLLguKMKK+C4m+C4o+C4sOC4oeC4suC4k+C4leC4mQor4Lib4Lij4Liw4Lih4Liy4LiT4LiV4Lix4LinCivguJvguKPguLDguKHguLLguJcKK+C4m+C4o+C4sOC4oeC4suC4l+C4q+C4meC5ieC4sgor4Lib4Lij4Liw4Lih4Li44LiCCivguJvguKPguLDguKHguLjguJcKK+C4m+C4o+C4sOC4oeC4ueC4pQor4Lib4Lij4Liw4LmA4Lih4Li04LiZCivguJvguKPguLDguYDguKHguLTguJnguKDguLLguKnguLUKK+C4m+C4o+C4sOC5guC4oeC4hwor4Lib4Lij4Liw4LmC4Lih4LiX4Lii4LmMCivguJvguKPguLDguKLguIfguITguYwKK+C4m+C4o+C4sOC4ouC4uOC4geC4leC5jAor4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguJvguKPguLDguKLguLjguKMKK+C4m+C4o+C4sOC4ouC4ueC4owor4Lib4Lij4Liw4LmC4Lii4LiECivguJvguKPguLDguYLguKLguITguJvguKPguLDguJjguLLguJkKK+C4m+C4o+C4sOC5guC4ouC4hOC4quC4seC4oeC4m+C4l+C4sgor4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguJvguKPguLDguYLguKPguKvguLTguJUKK+C4m+C4o+C4sOC4peC4oeC4nuC5jAor4Lib4Lij4Liw4Lil4Lit4LiHCivguJvguKPguLDguKXguK3guIfguKLguLjguJfguJjguYwKK+C4m+C4o+C4sOC4peC4seC4ogor4Lib4Lij4Liw4Lil4Lix4Lii4LiB4Lix4Lil4Lib4LmMCivguJvguKPguLDguKXguLHguKLguKfguLLguJUKK+C4m+C4o+C4sOC4peC4suC4lQor4Lib4Lij4Liw4Lil4Liy4LiiCivguJvguKPguLDguKXguLbguIcKK+C4m+C4o+C4sOC4peC4uAor4Lib4Lij4Liw4Lil4Li44LiHCivguJvguKPguLDguYDguKXguYjguKvguYwKK+C4m+C4o+C4sOC5gOC4peC5ieC4suC4m+C4o+C4sOC5guC4peC4oQor4Lib4Lij4Liw4LmC4Lil4Lib4Lij4Liw4LmA4LilCivguJvguKPguLDguYLguKXguKEKK+C4m+C4o+C4sOC5guC4peC4oeC5guC4peC4gQor4Lib4Lij4Liw4Lin4Lij4Lij4LiVCivguJvguKPguLDguKfguKPguKPguJXguJnguYwKK+C4m+C4o+C4sOC4p+C4seC4leC4tAor4Lib4Lij4Liw4Lin4Lix4LiV4Li0LQor4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiB4Liy4LijCivguJvguKPguLDguKfguLHguJXguLTguIHguLLguKPguJPguYwKK+C4m+C4o+C4sOC4p+C4seC4leC4tOC4geC4suC4pQor4Lib4Lij4Liw4Lin4Lix4LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguJvguKPguLDguKfguLLguJUKK+C4m+C4o+C4sOC4p+C4suC4pQor4Lib4Lij4Liw4Lin4Liy4Lil4Lib4Lix4LiX4Lih4LmMCivguJvguKPguLDguKfguLLguKXguJzguKUKK+C4m+C4o+C4sOC4p+C4suC4peC4p+C4o+C4o+C4kwor4Lib4Lij4Liw4Lin4Liy4LiqCivguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC4p+C4tOC4igor4Lib4Lij4Liw4Lin4Li04LiV4LijCivguJvguKPguLDguKfguLTguKrguKPguKPguIrguJnguLXguKLguYwKK+C4m+C4o+C4sOC4p+C4teC4kwor4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguJvguKPguLDguYDguKfguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC5gOC4p+C4qAor4Lib4Lij4Liw4LmA4Lin4Lio4LiZ4LmMCivguJvguKPguLDguKjguKEKK+C4m+C4o+C4sOC4qOC4suC4quC4meC5jAor4Lib4Lij4Liw4Lio4Li4CivguJvguKPguLDguKrguIEKK+C4m+C4o+C4sOC4quC4h+C4hOC5jAor4Lib4Lij4Liw4Liq4LiH4LiE4LmM4Lij4LmJ4Liy4LiiCivguJvguKPguLDguKrguJoKK+C4m+C4o+C4sOC4quC4muC4geC4suC4o+C4k+C5jAor4Lib4Lij4Liw4Liq4Lia4LiB4Liy4Lij4LiT4LmM4LiZ4Li04Lii4LihCivguJvguKPguLDguKrguJ4KK+C4m+C4o+C4sOC4quC4oQor4Lib4Lij4Liw4Liq4Lih4Lib4Lij4Liw4Liq4Liy4LiZCivguJvguKPguLDguKrguKHguJvguKPguLDguYDguKoKK+C4m+C4o+C4sOC4quC4oeC4nuC4seC4meC4mOC4uOC5jAor4Lib4Lij4Liw4Liq4Lih4LmC4Lij4LiHCivguJvguKPguLDguKrguLAKK+C4m+C4o+C4sOC4quC4seC4gQor4Lib4Lij4Liw4Liq4Lix4LiZ4LiZ4Liy4LiB4Liy4LijCivguJvguKPguLDguKrguLHguKLguKstCivguJvguKPguLDguKrguLHguKLguKvguYwKK+C4m+C4o+C4sOC4quC4seC4ouC4q+C4suC4geC4suC4owor4Lib4Lij4Liw4Liq4Lix4Lii4Lir4Liy4Lin4Lir4Liy4LijCivguJvguKPguLDguKrguLIKK+C4m+C4o+C4sOC4quC4suC4lwor4Lib4Lij4Liw4Liq4Liy4LiXLQor4Lib4Lij4Liw4Liq4Liy4LiX4LiB4Liy4LijCivguJvguKPguLDguKrguLLguJfguKPguLnguJsKK+C4m+C4o+C4sOC4quC4suC4l+C4q+C4peC4reC4mQor4Lib4Lij4Liw4Liq4Liy4LiY4LiZ4LmMCivguJvguKPguLDguKrguLLguJkKK+C4m+C4o+C4sOC4quC4suC4meC4h+C4sgor4Lib4Lij4Liw4Liq4Liy4LiZ4LmA4LiZ4Lij4Lih4Li04LiVCivguJvguKPguLDguKrguLLguJnguYDguKrguLXguKLguIcKK+C4m+C4o+C4sOC4quC4suC4owor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li0LQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMCivguJvguKPguLDguKrguLTguJfguJjguLTguYzguJvguKPguLDguKrguLLguJcKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC4nOC4pQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04Lig4Liy4LieCivguJvguKPguLDguKrguLTguJfguJjguLTguYDguKEKK+C4m+C4o+C4sOC4quC4teC4m+C4o+C4sOC4quC4sgor4Lib4Lij4Liw4Liq4Li54LiVCivguJvguKPguLDguKrguLnguJXguLQKK+C4m+C4o+C4sOC5gOC4quC4muC4seC4meC4reC4suC4geC4hwor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguJvguKPguLDguYHguKrguJrguLHguJkKK+C4m+C4o+C4sOC4q+C4meC4tuC5iOC4hwor4Lib4Lij4Liw4Lir4Lih4LmI4LiyCivguJvguKPguLDguKvguKLguLHguJQKK+C4m+C4o+C4sOC4q+C4o+C4k+C5jAor4Lib4Lij4Liw4Lir4Lil4Liy4LiUCivguJvguKPguLDguKvguKXguYjguLMKK+C4m+C4o+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Lij4Liw4Lir4Lin4Lix4LiUCivguJvguKPguLDguKvguKfguLHguYjguJkKK+C4m+C4o+C4sOC4q+C4p+C5iOC4sgor4Lib4Lij4Liw4Lir4Lix4LiVCivguJvguKPguLDguKvguLHguJXguJvguKPguLDguKvguLLguKMKK+C4m+C4o+C4sOC4q+C4suC4kwor4Lib4Lij4Liw4Lir4Liy4LijCivguJvguKPguLDguKvguLLguKPguIrguLXguKfguLTguJUKK+C4m+C4o+C4sOC4q+C4suC4qgor4Lib4Lij4Liw4LmA4Lir4LilCivguJvguKPguLDguYDguKvguKoKK+C4m+C4o+C4sOC5gOC4q+C4teC4ouC4pQor4Lib4Lij4Liw4Lit4LiaCivguJvguKPguLDguK3guKMKK+C4m+C4o+C4sOC4reC4o+C4m+C4o+C4sOC5gOC4reC4teC4ouC4hwor4Lib4Lij4Liw4Lit4Li24LiHCivguJvguKPguLDguK3guLjguIEKK+C4m+C4o+C4sOC5gOC4reC4teC4ouC4hwor4Lib4Lij4Liw4LmB4Lit4LiBCivguJvguKPguLDguK7guLLguKEKK+C4m+C4o+C4seC4gQor4Lib4Lij4Lix4LiB4Lib4Lij4LizCivguJvguKPguLHguIHguKHguLAKK+C4m+C4o+C4seC4geC4q+C4seC4geC4nuC4seC4hwor4Lib4Lij4Lix4LiHCivguJvguKPguLHguIrguI3guLIKK+C4m+C4o+C4seC4lAor4Lib4Lij4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguJvguKPguLHguJXguKLguJnguJXguYwKK+C4m+C4o+C4seC4leC4ouC4seC4geC4qeC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiZ4LiV4LmMCivguJvguKPguLHguJXguKLguLHguKIKK+C4m+C4o+C4seC4leC4ouC4uOC4leC4muC4seC4mQor4Lib4Lij4Lix4LiV4Lii4Li44Lia4Lix4LiZCivguJvguKPguLHguJXguKLguLnguKkKK+C4m+C4o+C4seC4leC4ouC4ueC4q+C5jAor4Lib4Lij4Lix4LiV4LmA4Lii4LiBCivguJvguKPguLHguJkKK+C4m+C4o+C4seC5iOC4mQor4Lib4Lij4Lix4LmJ4LiZCivguJvguKPguLHguJoKK+C4m+C4o+C4seC4muC4l+C4uOC4geC4guC5jAor4Lib4Lij4Lix4Lia4LmC4LiX4LipCivguJvguKPguLHguJrguJvguKPguLjguIcKK+C4m+C4o+C4seC4muC5hOC4q+C4oQor4Lib4Lij4Lix4Lia4Lit4Liy4LiB4Liy4LioCivguJvguKPguLHguJrguK3guLLguJrguLHguJXguLQKK+C4m+C4o+C4seC4oeC4m+C4o+C4sgor4Lib4Lij4Lix4Lio4LiI4Li04LihCivguJvguKPguLHguKjguJnguLIKK+C4m+C4o+C4seC4qOC4meC4tQor4Lib4Lij4Lix4Lio4Lin4LmMCivguJvguKPguYjguLIKK+C4m+C4o+C4suC4geC4jwor4Lib4Lij4Liy4LiB4LiP4LiB4Liy4Lij4LiT4LmMCivguJvguKPguLLguIHguKPguKEKK+C4m+C4o+C4suC4geC4pOC4lQor4Lib4Lij4Liy4LiB4Liy4LijCivguJvguKPguLLguITguKDguLLguKMKK+C4m+C4o+C4suC4hOC4suC4owor4Lib4Lij4Liy4LiHCivguJvguKPguLLguIfguITguYwKK+C4m+C4o+C4suC4h+C4hOC4k+C4sAor4Lib4Lij4Liy4LiH4LiE4LmM4Lib4Lij4LiyCivguJvguKPguLLguIjguLXguJkKK+C4m+C4o+C4suC4iuC4jeC5jAor4Lib4Lij4Liy4LiK4LiN4LiyCivguJvguKPguLLguIrguLHguKIKK+C4m+C4o+C4suC4iuC4suC4m+C4seC4leC4ouC4p+C4tOC4p+C4suC4q+C4sAor4Lib4Lij4Liy4LiK4Li04LiVCivguJvguKPguLLguJMKK+C4m+C4o+C4suC4k+C4tQor4Lib4Lij4Liy4LiUCivguJvguKPguLLguJTguYDguJvguKPguLXguKLguKcKK+C4m+C4o+C4suC4lOC5gOC4m+C4o+C4t+C5iOC4reC4hwor4Lib4Lij4Liy4LiV4Li04Lir4Liy4Lij4Lii4LmMCivguJvguKPguLLguJfguLjguIHguKPguLIKK+C4m+C4o+C4suC4mQor4Lib4Lij4Liy4LiZ4Li1CivguJvguKPguLLguJnguLXguJXguLXguYDguK3guLLguYDguKPguLfguK0KK+C4m+C4o+C4suC4meC4teC4m+C4o+C4suC4qOC4o+C4seC4ogor4Lib4Lij4Liy4LiaCivguJvguKPguLLguJrguJTguLLguKDguLTguYDguKnguIEKK+C4m+C4o+C4suC4muC4m+C4o+C4suC4oQor4Lib4Lij4Liy4Lib4LiV4LmMCivguJvguKPguLLguKDguJ4KK+C4m+C4o+C4suC4oQor4Lib4Lij4Liy4Lih4Liy4LiqCivguJvguKPguLLguYLguKHguIoKK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jAor4Lib4Lij4Liy4LiiCivguJvguKPguLLguKPguJbguJnguLIKK+C4m+C4o+C4suC4o+C4oAor4Lib4Lij4Liy4Lij4Lih4Lig4LmMCivguJvguKPguLLguKgKK+C4m+C4o+C4suC4qOC4iOC4suC4gQor4Lib4Lij4Liy4Lio4Lij4Lix4LiiCivguJvguKPguLLguKnguJPguLUKK+C4m+C4o+C4suC4qeC4suC4kwor4Lib4Lij4Liy4Liq4Lix4LiiCivguJvguKPguLLguKrguLLguJcKK+C4m+C4o+C4swor4Lib4Lij4Li0LQor4Lib4Lij4Li04LiBCivguJvguKPguLTguIHguILguLLguKMKK+C4m+C4o+C4tOC4geC4o+C4o+C4oQor4Lib4Lij4Li04LiB4Lix4LibCivguJvguKPguLTguIHguLHguKXguJstCivguJvguKPguLTguIHguLHguKXguJvguKHguLLguKXguLItCivguJvguKPguLTguILguLIKK+C4m+C4o+C4tOC4hOC4k+C4q+C5jAor4Lib4Lij4Li04LiI4Liy4LiECivguJvguKPguLTguIjguLLguKPguLTguIHguLIKK+C4m+C4o+C4tOC5gOC4ieC4lwor4Lib4Lij4Li04LiK4LiZCivguJvguKPguLTguIvguLbguKEKK+C4m+C4o+C4tOC4jeC4jeC4sgor4Lib4Lij4Li04LiN4LiN4Liy4Lia4Lix4LiV4LijCivguJvguKPguLTguJPguLLguKEKK+C4m+C4o+C4tOC4k+C4suC4oeC4seC4hOC4hOC4tAor4Lib4Lij4Li04LiT4Liy4Lii4LiBCivguJvguKPguLTguJUKK+C4m+C4o+C4tOC4lS0KK+C4m+C4o+C4tOC4leC4leC4sAor4Lib4Lij4Li04LiV4LmC4LiV4LiX4LiBCivguJvguKPguLTguJXguJfguKfguLXguJsKK+C4m+C4o+C4tOC4leC4ouC4suC4hAor4Lib4Lij4Li04LiV4LijCivguJvguKPguLTguJfguKPguKPguKjguJnguYwKK+C4m+C4o+C4tOC4l+C4seC4ouC4q+C4seC4hOC4hOC4tQor4Lib4Lij4Li04LiX4Lix4Lio4LiZ4LmMCivguJvguKPguLTguYDguJfguJ4KK+C4m+C4o+C4tOC5gOC4l+C4nuC4meC5jAor4Lib4Lij4Li04LmA4LiX4Lin4LiZ4LiwCivguJvguKPguLTguYDguJfguKfguLAKK+C4m+C4o+C4tOC4meC4tOC4nuC4nuC4suC4mQor4Lib4Lij4Li04LiaCivguJvguKPguLTguJvguLHguJnguJbguYwKK+C4m+C4o+C4tOC4m+C4suC4gQor4Lib4Lij4Li04Lie4LiZ4LiY4LmMCivguJvguKPguLTguJ7guLHguJXguKMKK+C4m+C4o+C4tOC4nuC4seC4meC4mOC5jAor4Lib4Lij4Li04Lie4Liy4LiK4LiBCivguJvguKPguLTguKDguLHguJPguJHguYwKK+C4m+C4o+C4tOC4oOC4suC4qQor4Lib4Lij4Li04Lig4Liy4Lip4LiT4LmMCivguJvguKPguLTguKDguLjguI3guIrguYwKK+C4m+C4o+C4tOC4oOC4ueC4oeC4tAor4Lib4Lij4Li04LmC4Lig4LiECivguJvguKPguLTguYjguKEKK+C4m+C4o+C4tOC4oeC4k+C4keC4pQor4Lib4Lij4Li04Lih4Lix4LiXCivguJvguKPguLTguKHguLLguJMKK+C4m+C4o+C4tOC4oeC4suC4leC4owor4Lib4Lij4Li04LiiLQor4Lib4Lij4Li04Lii4Lij4LiTCivguJvguKPguLTguKLguKfguLLguJcKK+C4m+C4o+C4tOC4ouC4p+C4suC4l+C4tQor4Lib4Lij4Li04Lii4Lix4LiV4Li0CivguJvguKPguLTguKLguLHguJXguLTguJjguKPguKPguKEKK+C4m+C4o+C4tOC4ouC4suC4meC4uOC4igor4Lib4Lij4Li04Lii4Liy4LiiCivguJvguKPguLTguYDguKLguKgKK+C4m+C4o+C4tOC5guC4ouC4quC4suC4mQor4Lib4Lij4Li04Lin4Lij4Lij4LiVCivguJvguKPguLTguKfguKPguKPguJUtCivguJvguKPguLTguKfguKPguKPguJXguIHguKPguKPguKEKK+C4m+C4o+C4tOC4p+C4seC4leC4owor4Lib4Lij4Li04Lin4Liy4LijCivguJvguKPguLTguKfguLLguKoKK+C4m+C4o+C4tOC4p+C4tOC4leC4gQor4Lib4Lij4Li04LmA4Lin4LiTCivguJvguKPguLTguKjguJnguLIKK+C4m+C4o+C4tOC4qOC4meC4suC4mOC4o+C4o+C4oQor4Lib4Lij4Li04Lio4LiZ4Liy4Lil4Liy4Lii4LmB4LiX4LiHCivguJvguKPguLTguKjguJnguLLguK3guLHguIHguKnguKPguYTguILguKfguYkKK+C4m+C4o+C4tOC4qeC4geC4suC4owor4Lib4Lij4Li04Lip4Lix4LiXCivguJvguKPguLTguKrguLHguI3guI3guLkKK+C4m+C4o+C4tOC4quC4uOC4l+C4mOC4tAor4Lib4Lij4Li04Lir4Liy4LiZCivguJvguKPguLTguKvguLLguKMKK+C4m+C4o+C4tOC4q+C4suC4qgor4Lib4Lij4Li14LmICivguJvguKPguLXguIrguI3guLIKK+C4m+C4o+C4teC4iuC4sgor4Lib4Lij4Li14LmK4LiUCivguJvguKPguLXguJTguLIKK+C4m+C4o+C4teC4lOC4tAor4Lib4Lij4Li14LiU4Li04LmMCivguJvguKPguLXguJTguLUKK+C4m+C4o+C4teC4leC4tAor4Lib4Lij4Li14LiiCivguJvguKPguLXguKLguLIKK+C4m+C4o+C4tuC4gQor4Lib4Lij4Li24LiB4Lip4LiyCivguJvguKPguLbguIcKK+C4m+C4o+C4t+C4rQor4Lib4Lij4Li34LmL4LitCivguJvguKPguLgKK+C4m+C4o+C4uOC4hwor4Lib4Lij4Li44LmC4Lib4Lij4LmI4LiHCivguJvguKPguLkKK+C4m+C4o+C4ueC5iwor4Lib4Lij4Li54LiUCivguJvguKPguLnguJTguJvguKPguLLguJQKK+C4m+C4o+C4ueC5iuC4lOC4m+C4o+C5iuC4suC4lAor4Lib4Lij4Li54LmK4LifCivguJvguKTguIfguITguJ4KK+C4m+C4pOC4iOC4ieC4sgor4Lib4Lik4LiI4LiJ4Liy4LiE4Li44LiT4Lio4Lix4Lie4LiX4LmMCivguJvguKTguIjguInguLLguKrguKPguKPguJ7guJnguLLguKEKK+C4m+C4pOC4qeC4juC5jAor4Lib4Lik4Lip4LiO4Liy4LiH4LiE4LmMCivguJvguKTguKnguJAKK+C4m+C4peC4gQor4Lib4Lil4LiB4LmA4Lib4Lil4Li14LmJ4LiiCivguJvguKXguIcKK+C4m+C4peC5iOC4hwor4Lib4Lil4LiH4LiB4Lij4Lij4Lih4LiQ4Liy4LiZCivguJvguKXguIfguYPguIgKK+C4m+C4peC4h+C4iuC5ieC4suC4hwor4Lib4Lil4LiH4LiK4Li14Lin4Li04LiVCivguJvguKXguIfguJXguIEKK+C4m+C4peC4h+C4mOC4o+C4o+C4oeC4quC4seC4h+C5gOC4p+C4igor4Lib4Lil4LiH4LiY4Li44Lij4LiwCivguJvguKXguIfguJrguKPguLTguILguLLguKMKK+C4m+C4peC4h+C4nOC4oQor4Lib4Lil4LiH4Lio4LieCivguJvguKXguIfguKrguLHguIfguILguLLguKMKK+C4m+C4peC4h+C4quC4seC4h+C5gOC4p+C4igor4Lib4Lil4LiH4Lit4LiZ4Li04LiI4LiI4Lix4LiHCivguJvguKXguIfguK3guLLguJrguLHguJXguLQKK+C4m+C4peC4h+C4reC4suC4ouC4uOC4quC4seC4h+C4guC4suC4owor4Lib4Lil4LiUCivguJvguKXguJTguYDguIHguKnguLXguKLguJMKK+C4m+C4peC4lOC5gOC4geC4qeC4teC4ouC4k+C4reC4suC4ouC4uAor4Lib4Lil4LiU4LiX4Li44LiB4LiC4LmMCivguJvguKXguJTguJvguKXguIcKK+C4m+C4peC4lOC4m+C4peC5iOC4reC4ogor4Lib4Lil4LiU4LmA4Lib4Lil4Li34LmJ4Lit4LiHCivguJvguKXguJTguKPguLDguKfguLLguIcKK+C4m+C4peC4lOC4q+C4meC4teC5iQor4Lib4Lil4LiU4Lit4Lit4LiBCivguJvguKXguJTguK3guLLguKfguLjguJgKK+C4m+C4peC4lOC5geC4reC4gQor4Lib4Lil4LmJ4LiZCivguJvguKXguYnguJnguJfguKPguLHguJ7guKLguYwKK+C4m+C4peC4p+C4gQor4Lib4Lil4Lin4Lix4LiH4LiELQor4Lib4Lil4Lit4LiBCivguJvguKXguK3guIHguIHguKPguLDguKrguLjguJkKK+C4m+C4peC4reC4geC4hOC4rQor4Lib4Lil4Lit4LiB4Lih4Li14LiUCivguJvguKXguK3guIHguKHguLfguK0KK+C4m+C4peC5iOC4reC4hwor4Lib4Lil4LmJ4Lit4LiHCivguJvguKXguYnguK3guIfguILguJkKK+C4m+C4peC5ieC4reC4h+C4ieC4meC4p+C4mQor4Lib4Lil4LmJ4Lit4LiH4LmE4LiJ4LiZCivguJvguKXguYnguK3guIfguJfguK3guIcKK+C4m+C4peC5ieC4reC4h+C4reC5ieC4reC4ogor4Lib4Lil4Lit4LiUCivguJvguKXguK3guJTguJfguKvguLLguKMKK+C4m+C4peC4reC4lOC5guC4m+C4o+C5iOC4hwor4Lib4Lil4Lit4LiU4Lig4Lix4LiiCivguJvguKXguYnguK3guJkKK+C4m+C4peC4reC4mgor4Lib4Lil4Lit4Lia4LiC4Lin4Lix4LiNCivguJvguKXguK3guJrguYLguKLguJkKK+C4m+C4peC4reC4oQor4Lib4Lil4Lit4Lih4Lib4LiZCivguJvguKXguK3guKHguYHguJvguKXguIcKK+C4m+C4peC5iOC4reC4ogor4Lib4Lil4LmI4Lit4Lii4LmA4LiB4Liy4LiwCivguJvguKXguYjguK3guKLguYHguIHguYgKK+C4m+C4peC5iOC4reC4ouC5hOC4geC5iAor4Lib4Lil4LmI4Lit4Lii4LiC4Lit4LiHCivguJvguKXguYjguK3guKLguYPguIgKK+C4m+C4peC5iOC4reC4ouC4leC4seC4pwor4Lib4Lil4LmI4Lit4Lii4LiV4Lix4Lin4Lib4Lil4LmI4Lit4Lii4LmD4LiICivguJvguKXguYjguK3guKLguJnguIHguJvguKXguYjguK3guKLguIHguLIKK+C4m+C4peC5iOC4reC4ouC5gOC4meC4t+C5ieC4reC4m+C4peC5iOC4reC4ouC4leC4seC4pwor4Lib4Lil4LmI4Lit4Lii4Lib4Lil4Liw4Lil4Liw4LmA4Lil4LiiCivguJvguKXguYjguK3guKLguJvguKXguLLguKXguIfguJnguYnguLMKK+C4m+C4peC5iOC4reC4ouC4m+C4peC4tOC4hwor4Lib4Lil4LmI4Lit4Lii4Lih4Li34LitCivguJvguKXguYjguK3guKLguYDguKrguLfguK3guYDguILguYnguLLguJvguYjguLIKK+C4m+C4peC4sAor4Lib4Lil4Lix4LiBCivguJvguKXguLHguYrguIEKK+C4m+C4peC4seC5iuC4geC5hOC4nwor4Lib4Lil4Lix4LiHCivguJvguKXguLHguYjguIcKK+C4m+C4peC4seC4lAor4Lib4Lil4Lix4LiU4LiC4Li04LiBCivguJvguKXguLIKK+C4m+C4peC4suC4gQor4Lib4Lil4Liy4LiB4Lij4Li04LihCivguJvguKXguLLguYDguIHguKXguLfguK0KK+C4m+C4peC4suC4guC5ieC4reC4h+C5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4Lib4Lil4Liy4LmA4LiE4LmH4LihCivguJvguKXguLLguYDguIfguLTguJnguJvguKXguLLguJfguK3guIcKK+C4m+C4peC4suC4iOC5iOC4reC4oQor4Lib4Lil4Liy4LiI4Li14LiZCivguJvguKXguLLguYDguIjguYjguLIKK+C4m+C4peC4suC4iuC4sgor4Lib4Lil4Liy4LiU4Liy4LinCivguJvguKXguLLguYHguJTguIEKK+C4m+C4peC4suC5geC4lOC4hwor4Lib4Lil4Liy4LiVCivguJvguKXguLLguJXguIHguJnguYnguLPguJXguLHguKfguYLguJUKK+C4m+C4peC4suC4leC4sOC5gOC4nuC4teC4ouC4mQor4Lib4Lil4Liy4LiV4Li04LiU4Lir4Lil4Lix4LiH4LmB4LirCivguJvguKXguLLguJXguLnguYkKK+C4m+C4peC4suC4l+C4reC4hwor4Lib4Lil4Liy4LmB4LiZ4LihCivguJvguKXguLLguJoKK+C4m+C4peC4suC4muC4m+C4peC4t+C5ieC4oQor4Lib4Lil4Liy4Lia4Li04LiZCivguJvguKXguLLguJ3guLIKK+C4m+C4peC4suC4oeC5ieC4swor4Lib4Lil4Liy4LiiCivguJvguKXguLLguKLguILguYnguLLguKcKK+C4m+C4peC4suC4ouC4leC4teC4mQor4Lib4Lil4Liy4Lii4LiX4Liy4LiHCivguJvguKXguLLguKLguJnguLLguIHguLLguKMKK+C4m+C4peC4suC4ouC4meC5ieC4swor4Lib4Lil4Liy4Lii4Lih4Li34LitCivguJvguKXguLLguKLguK3guYnguK3guJvguKXguLLguKLguYHguILguKEKK+C4m+C4peC4suC4o+C5ieC4sgor4Lib4Lil4Liy4LmC4Lil4Lih4LiyCivguJvguKXguLLguKfguLLguKwKK+C4m+C4peC4suC4quC5gOC4leC4reC4o+C5jAor4Lib4Lil4Liy4Liq4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguKrguYnguKEKK+C4m+C4peC4suC4q+C4meC5ieC4suC4lOC4tOC4mQor4Lib4Lil4Liy4Lir4Lih4Lit4LiV4Liy4Lii4LmA4Lie4Lij4Liy4Liw4Lib4Liy4LiBCivguJvguKXguLLguKvguKHguLbguIEKK+C4m+C4peC4suC5gOC4q+C5h+C4lAor4Lib4Lil4Liy4LmD4Lir4LiN4LmI4LiB4Li04LiZ4Lib4Lil4Liy4LmA4Lil4LmH4LiBCivguJvguKXguLLguYTguKvguKXguYDguJzguLfguK3guIEKK+C4m+C4peC5ieC4swor4Lib4Lil4LmJ4Liz4Lib4Lil4Li44LiBCivguJvguKXguYnguLPguJzguLXguKXguLjguIHguJvguKXguLjguIHguJzguLXguJnguLHguYjguIcKK+C4m+C4peC4tOC4hwor4Lib4Lil4Li04LiH4LiX4Liw4LmA4LilCivguJvguKXguLTguJQKK+C4m+C4peC4tOC5ieC4mQor4Lib4Lil4Li04LmJ4LiZ4Lib4Lil4Lit4LiBCivguJvguKXguLTguYnguJnguJvguKXguYnguK3guJkKK+C4m+C4peC4tOC5guC4nuC4mAor4Lib4Lil4Li04LihCivguJvguKXguLTguYjguKEKK+C4m+C4peC4tOC4pwor4Lib4Lil4Li1CivguJvguKXguLXguIEKK+C4m+C4peC4teC4geC4leC4seC4pwor4Lib4Lil4Li14LiB4Lii4LmI4Lit4LiiCivguJvguKXguLXguIHguYDguKfguKXguLIKK+C4m+C4peC4teC5geC4guC5ieC4hwor4Lib4Lil4Li34LmJ4LihCivguJvguKXguLjguIEKK+C4m+C4peC4uOC4geC5g+C4iAor4Lib4Lil4Li44LiB4LiV4Lix4LinCivguJvguKXguLjguIHguJvguKXguYnguLMKK+C4m+C4peC4uOC4geC4m+C4seC5iOC4mQor4Lib4Lil4Li44LiB4Lic4Li1CivguJvguKXguLjguIHguJ7guKPguLAKK+C4m+C4peC4uOC4geC4o+C4sOC4lOC4oQor4Lib4Lil4Li44LiB4LmA4Liq4LiBCivguJvguKXguLnguIEKK+C4m+C4peC4ueC4geC4neC4seC4hwor4Lib4Lil4Li54LiB4Lid4Li1CivguJvguKXguLnguIHguYDguKPguLfguK3guJnguITguKPguYjguK3guKHguJXguK0KK+C4m+C4peC4ueC4geC5gOC4o+C4t+C4reC4meC4leC4suC4oeC5g+C4iOC4nOC4ueC5ieC4reC4ouC4ueC5iAor4Lib4Lil4Li54LiB4LmA4Lij4Li34Lit4LiZ4Lie4Lit4LiV4Lix4LinIOC4q+C4p+C4teC4q+C4seC4p+C4nuC4reC5gOC4geC4peC5ieC4sgor4Lib4Lin4LiB4LmA4Lib4Li14Lii4LiBCivguJvguKfguIcKK+C4m+C5iOC4p+C4hwor4Lib4Lin4LiUCivguJvguKfguJTguJbguYjguKfguIcKK+C4m+C4p+C4lOC4l+C5ieC4reC4h+C4l+C4uOC5iOC4hwor4Lib4Lin4LiU4LiX4LmJ4Lit4LiH4LmA4Lia4LiyCivguJvguKfguJTguJfguYnguK3guIfguYDguKLguLXguYjguKLguKcKK+C4m+C4p+C4lOC4oeC4p+C4mQor4Lib4Lin4LiU4Lij4LmJ4Liy4LinCivguJvguKfguJTguYDguKjguLXguKLguKPguYDguKfguLXguKLguJnguYDguIHguKXguYnguLIKK+C4m+C4p+C4lOC5geC4quC4muC4m+C4p+C4lOC4o+C5ieC4reC4mQor4Lib4LmI4Lin4LiZCivguJvguYnguKfguJkKK+C4m+C5iOC4p+C4meC4m+C4seC5iOC4mQor4Lib4LmJ4Lin4LiZ4LmA4Lib4Li14LmJ4Lii4LiZCivguJvguYjguKfguKIKK+C4m+C5iOC4p+C4ouC4geC4peC5iOC4suC4pwor4Lib4LmI4Lin4Lii4LiB4Liy4LijCivguJvguKfguLHguJXguJktCivguJvguKfguLHguJXguJnguYwKK+C4m+C4p+C4seC4leC4meC4suC4geC4suC4owor4Lib4Lin4Liy4Lij4LiT4LiyCivguJvguKfguLLguKUKK+C4m+C4p+C4suC4qgor4Lib4Lin4Liy4LisCivguJvguKfguLTguIoKK+C4m+C4p+C4tOC4leC4owor4Lib4Lin4Li04LiYCivguJvguKfguLTguYDguKfguIEKK+C4m+C4p+C4teC4kwor4Lib4Lin4Li44LiV4Li0CivguJvguYDguKfguJPguLUKK+C4m+C5gOC4p+C4qgor4Lib4LmA4Lin4Liq4LiZ4LmMCivguJvguKjguLgKK+C4m+C4quC4ngor4Lib4Liq4Lix4LiZ4LiZLQor4Lib4Liq4Lix4LiZ4LiZ4LiwCivguJvguKrguLHguJnguJnguLLguIHguLLguKMKK+C4m+C4quC4seC4ouC4qy0KK+C4m+C4quC4seC4ouC4q+C4sAor4Lib4Liq4Lix4Lii4Lir4Liy4LiB4Liy4LijCivguJvguKrguLHguKLguKvguLLguKfguKvguLLguKMKK+C4m+C4quC4suC4lwor4Lib4Liq4Liy4LiZCivguJvguKrguLLguKrguJnguYwKK+C4m+C4quC4uAor4Lib4Liq4Li44LiVCivguJvguKrguLnguJXguLQKK+C4m+C4q+C4seC4h+C4qgor4Lib4Lir4Lix4LiH4Liq4LiZCivguJvguKvguLLguJkKK+C4m+C4q+C4suC4owor4Lib4Lir4Liy4LiqCivguJvguK0KK+C4m+C5ieC4rQor4Lib4LmL4LitCivguJvguK3guIEKK+C4m+C4reC4geC4geC4peC5ieC4p+C4ouC5gOC4guC5ieC4suC4m+C4suC4gQor4Lib4Lit4LiB4Lil4Lit4LiBCivguJvguK3guIcKK+C4m+C5iOC4reC4hwor4Lib4LmI4Lit4LiH4LmGCivguJvguYnguK3guIcKK+C4m+C5ieC4reC4h+C4geC4seC4mQor4Lib4LmI4Lit4LiH4Lij4LmI4LiyCivguJvguK3guJQKK+C4m+C4reC4lOC4iuC4t+C5ieC4mQor4Lib4Lit4LiU4Lia4Lin4LihCivguJvguK3guJTguYHguJvguJQKK+C4m+C4reC4lOC4peC4reC4ogor4Lib4Lit4LiU4LmA4Lir4Lil4LmH4LiBCivguJvguK3guJkKK+C4m+C4reC4meC5hgor4Lib4LmJ4Lit4LiZCivguJvguK3guJnguJTguYwKK+C4m+C4reC5gOC4meC4suC4sAor4Lib4Lit4LiaCivguJvguYnguK3guYHguJvguYkKK+C4m+C4reC4oQor4Lib4LmJ4Lit4LihCivguJvguYnguK3guKHguYYKK+C4m+C5i+C4reC4oQor4Lib4Lit4Lih4LiC4Liy4LiHCivguJvguK3guKHguILguYjguLLguIcKK+C4m+C5ieC4reC4oeC4muC4seC4h+C4hOC4seC4muC4geC4suC4owor4Lib4Lit4LiiCivguJvguYnguK3guKIKK+C4m+C5ieC4reC4ouC4rQor4Lib4Lit4LmA4Lil4Li14Lii4LiH4Lid4LmJ4Liy4LiiCivguJvguLAKK+C4m+C4sOC4geC4mQor4Lib4Liw4LiB4Lix4LiHCivguJvguLDguIHguLLguJvguLDguIHguLHguIcKK+C4m+C4sOC4geC4suC4o+C4seC4hwor4Lib4Liw4LiB4LizCivguJvguLDguILguLLguKcKK+C4m+C4sOC4h+C4seC4muC4m+C4sOC4h+C5iOC4reC4mQor4Lib4Liw4LiV4Liy4Lib4LiyCivguJvguLDguJXguLLguKPguLDguIHguLLguKvguKXguLIKK+C4m+C4sOC4leC4tOC4lOC4m+C4sOC4leC5iOC4rQor4Lib4Liw4LiV4Li04Lii4Liy4LiZCivguJvguLDguYDguJXguLAKK+C4m+C4sOC4l+C4sAor4Lib4Liw4LiX4Liw4Lib4Liw4LiX4Lix4LiHCivguJvguLDguJfguLgKK+C4m+C4sOC4l+C4uOC4mQor4Lib4Liw4Lia4Li44LiBCivguJvguLDguJvguJkKK+C4m+C4sOC4oeC4hwor4Lib4Liw4Lij4Liy4Lil4Li1CivguJvguLDguKPguLMKK+C4m+C4sOC4peC4reC4oQor4Lib4Liw4LmA4Lil4LiHCivguJvguLDguYHguKXguYjguKEKK+C4m+C4sOC5geC4peC5iOC4oeC5hgor4Lib4Liw4LmC4Lil4LiHCivguJvguLDguKfguLDguKvguKXguYjguLMKK+C4m+C4sOC4p+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Liw4Lin4LmI4LiyCivguJvguLDguYDguKrguKvguKPguLHguJnguK3guLLguIHguIcKK+C4m+C4sOC4q+C4h+C4seC4mgor4Lib4Liw4Lir4LiH4Lix4Lia4LmGCivguJvguLDguKvguIfguLHguJrguJvguLDguIfguYjguK3guJkKK+C4m+C4sOC4q+C4meC4seC4mQor4Lib4Liw4Lir4Lih4Lix4LiZ4Lit4Liy4Lir4Lii4Li1CivguJvguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC4q+C4seC4hwor4Lib4Liw4LmA4Lir4Lil4Liy4LiwCivguJvguLDguYDguKvguKXguLLguLDguJvguLDguYHguKvguKXguLAKK+C4m+C4seC4gQor4Lib4Lix4LiB4LiCLQor4Lib4Lix4LiB4LiC4LmMCivguJvguLHguIHguILguITguJPguJnguLIKK+C4m+C4seC4geC4guC4nuC4tOC4rOC4suC4owor4Lib4Lix4LiB4LiC4Lix4LiZ4LiU4LijCivguJvguLHguIHguYPguIgKK+C4m+C4seC4geC5gOC4m+C5ieC4sgor4Lib4Lix4LiB4LipLQor4Lib4Lix4LiB4Lip4LmMCivguJvguLHguIHguKnguIHguKnguLHguKIKK+C4m+C4seC4geC4qeC4hOC4k+C4meC4sgor4Lib4Lix4LiB4Lip4LiE4LihCivguJvguLHguIHguKnguJjguKMKK+C4m+C4seC4geC4qeC5gOC4oOC4lwor4Lib4Lix4LiB4Lip4Lin4Liy4Lir4LiZCivguJvguLHguIHguKnguLIKK+C4m+C4seC4geC4qeC4suC4meC4lOC4owor4Lib4Lix4LiB4Lip4Liy4Lin4Liq4Liy4LiZCivguJvguLHguIHguKnguLLguKrguKfguKPguKPguITguYwKK+C4m+C4seC4geC4qeC4tOC4mQor4Lib4Lix4LiB4Lip4Li1CivguJvguLHguIHguKvguKXguLHguIEKK+C4m+C4seC4hOC4q+C4sAor4Lib4Lix4LiHCivguJvguLHguYvguIcKK+C4m+C4seC4h+C4quC4uOC5jAor4Lib4Lix4LiH4Liq4Li44LiB4Li44LilCivguJvguLHguIjguIjguLHguJXguJXguLAKK+C4m+C4seC4iOC4iOC4seC4leC4luC4o+C4k+C5jAor4Lib4Lix4LiI4LiI4Lix4LiZ4LiVLQor4Lib4Lix4LiI4LiI4Lix4LiZ4LiV4LmMCivguJvguLHguIjguIjguLHguJnguJXguITguLLguKEKK+C4m+C4seC4iOC4iOC4seC4meC4leC4iuC4meC4muC4lwor4Lib4Lix4LiI4LiI4Lix4LiZ4LiV4Lib4Lij4Liw4LmA4LiX4LioCivguJvguLHguIjguIjguLHguKIKK+C4m+C4seC4iOC4iOC4suC4oeC4tOC4leC4owor4Lib4Lix4LiI4LiI4Li44LiE4Lih4LiZ4LmMCivguJvguLHguIjguIjguLjguJfguJjguKPguJPguYwKK+C4m+C4seC4iOC4iOC4uOC4muC4seC4mQor4Lib4Lix4LiI4LiI4Li44Lia4Lix4LiZ4LiX4Lix4LiZ4LiU4LmI4Lin4LiZCivguJvguLHguIjguIjguLjguKotCivguJvguLHguIjguIjguLjguKrguIHguLLguKUKK+C4m+C4seC4iOC4iOC4uOC4quC4oeC4seC4ogor4Lib4Lix4LiI4LiI4Li54LiqCivguJvguLHguIjguIjguLnguKvguLAKK+C4m+C4seC4iOC5gOC4iOC4gQor4Lib4Lix4LiI4LmA4LiI4LiBLQor4Lib4Lix4LiI4LmA4LiI4LiB4Lia4Li44LiE4LiE4LilCivguJvguLHguIjguYDguIjguIHguJ7guLjguJfguJjguLAKK+C4m+C4seC4iOC5gOC4iOC4geC5guC4nuC4mOC4tAor4Lib4Lix4LiI4LmA4LiI4LiB4Liq4Lih4Liy4LiX4Liy4LiZCivguJvguLHguIjguYLguIjguJvguIHguLLguKPguIHguLTguIgKK+C4m+C4seC4iOC5guC4iOC4quC4geC4suC4pQor4Lib4Lix4LiI4LiJ4LiyCivguJvguLHguIjguInguLLguKDguLHguJUKK+C4m+C4seC4iOC4ieC4suC4quC4oeC4k+C4sAor4Lib4Lix4LiI4LiJ4Li04LihCivguJvguLHguIjguInguLTguKEtCivguJvguLHguIjguInguLTguKHguIrguJkKK+C4m+C4seC4iOC4ieC4tOC4oeC4oOC4suC4hAor4Lib4Lix4LiI4LiJ4Li04Lih4Lii4Liy4LihCivguJvguLHguIjguInguLTguKHguKXguLTguILguLTguJUKK+C4m+C4seC4iOC4ieC4tOC4oeC4p+C4seC4ogor4Lib4Lix4LiI4LiJ4Li04Lih4Lin4Liy4LiI4LiyCivguJvguLHguIjguJbguKPguJPguYwKK+C4m+C4seC4iOC4meC4tuC4gQor4Lib4Lix4LiI4Lii4Liy4LiB4Liy4LijCivguJvguLHguIjguYDguKfguIHguILguJPguYwKK+C4m+C4seC4iuC4iuC4owor4Lib4Lix4LiK4LiK4Li44LiZCivguJvguLHguI3guIgtCivguJvguLHguI3guIjguIEKK+C4m+C4seC4jeC4iOC4meC4l+C4tQor4Lib4Lix4LiN4LiI4LihLQor4Lib4Lix4LiN4LiI4Lih4Li1CivguJvguLHguI3guIjguKHguLXguJTguLTguJbguLUKK+C4m+C4seC4jeC4iOC4p+C4seC4hOC4hOC4teC4ouC5jAor4Lib4Lix4LiN4LiI4Lin4Li14Liq4LiV4Li0CivguJvguLHguI3guIjguKrguLLguILguLIKK+C4m+C4seC4jeC4jeC4seC4leC4tAor4Lib4Lix4LiN4LiN4LiyCivguJvguLHguI3guI3guLLguYHguITguYjguKvguLLguIfguK3guLbguYjguIcKK+C4m+C4seC4jeC4jeC4suC4iuC4mQor4Lib4Lix4LiN4LiN4Liy4LiqLQor4Lib4Lix4LiN4LiN4Liy4Lit4LmI4Lit4LiZCivguJvguLHguI3guKvguLIKK+C4m+C4seC4jeC4q+C4suC5guC4peC4geC5geC4leC4gQor4Lib4Lix4LiPCivguJvguLHguI/guJnguLAKK+C4m+C4seC4kOC4ouC4suC4p+C4seC4lQor4Lib4Lix4LiT4LiR4Lij4Lir4Lix4LiV4LiW4Li1CivguJvguLHguJPguJPguLAKK+C4m+C4seC4k+C4k+C4suC4qgor4Lib4Lix4LiT4LiT4Liy4Liq4LiB4LmMCivguJvguLHguJPguKPguKotCivguJvguLHguJPguKPguKrguKEtCivguJvguLHguJPguKPguKrguKHguKrguLjguKPguJfguLTguJkKK+C4m+C4seC4k+C4o+C4quC4tQor4Lib4Lix4LiT4Lij4Liq4Li14LiU4Li04LiW4Li1CivguJvguLHguJPguKvguLQKK+C4m+C4seC4lAor4Lib4Lix4LiU4LmGCivguJvguLHguJTguYDguIHguKXguYnguLIKK+C4m+C4seC4lOC4guC4sgor4Lib4Lix4LiU4LmB4LiC4LmJ4LiH4Lib4Lix4LiU4LiC4LiyCivguJvguLHguJTguJXguKXguK3guJQKK+C4m+C4seC4lOC5hOC4luC4oQor4Lib4Lix4LiU4LmA4Lib4LmI4LiyCivguJvguLHguJTguKPguLHguIfguITguKfguLLguJkKK+C4m+C4seC4lOC5gOC4qOC4qQor4Lib4Lix4LiU4Liq4Lin4LiwCivguJvguLHguJXguITguLLguJQKK+C4m+C4seC4leC4leC4sAor4Lib4Lix4LiV4LiV4Liy4LiZ4Li14LiB4LiwCivguJvguLHguJXguJXguLLguJnguLbguIEKK+C4m+C4seC4leC4leC4suC4meC4uOC5guC4oeC4l+C4meC4sgor4Lib4Lix4LiV4LiV4Liy4LmA4Lin4Li14LiiCivguJvguLHguJXguJXguLQKK+C4m+C4seC4leC4leC4tOC4gQor4Lib4Lix4LiV4LiV4Li04LiX4Liy4LiZCivguJvguLHguJXguJbguKMKK+C4m+C4seC4leC4luC4sAor4Lib4Lix4LiV4LiZ4Li0CivguJvguLHguJXguJnguLUKK+C4m+C4seC4leC4ouC4seC4ogor4Lib4Lix4LiV4Lir4Lil4LmI4LiyCivguJvguLHguJbguJ7guLUKK+C4m+C4seC4luC4p+C4tQor4Lib4Lix4LiX4LihLQor4Lib4Lix4LiX4Lih4LmMCivguJvguLHguJfguKHguJvguLLguJPguLUKK+C4m+C4seC4l+C4oeC4o+C4suC4hAor4Lib4Lix4LiX4Lih4Lij4Liy4LiKCivguJvguLHguJfguKHguLAKK+C4m+C4seC4l+C4oeC4suC4quC4meC5jAor4Lib4Lix4LiZCivguJvguLHguYjguJkKK+C4m+C4seC5ieC4mQor4Lib4Lix4LmJ4LiZ4LiI4Lix4LmI4LiZCivguJvguLHguYnguJnguIjguLTguYnguKHguJvguLHguYnguJnguYDguIjguYvguK0KK+C4m+C4seC4meC4iOC4uOC5gOC4q+C4o+C5h+C4iAor4Lib4Lix4LmJ4LiZ4LmA4LiI4LmL4LitCivguJvguLHguYjguJnguJvguYjguKfguJkKK+C4m+C4seC5ieC4meC4m+C4tuC5iOC4hwor4Lib4Lix4LmI4LiZ4LmB4Lib4LiwCivguJvguLHguYjguJnguJ3guYnguLLguKIKK+C4m+C4seC5iOC4meC5hOC4nwor4Lib4Lix4LmJ4LiZ4Lii4LioCivguJvguLHguYnguJnguKXguKEKK+C4m+C4seC5ieC4meC4peC5iOC4swor4Lib4Lix4LiZ4Liq4LmI4Lin4LiZCivguJvguLHguYnguJnguKrguLTguJoKK+C4m+C4seC5ieC4meC4quC4teC4q+C4meC5ieC4sgor4Lib4Lix4LmJ4LiZ4Lir4Lii4LiyCivguJvguLHguYjguJnguKvguLHguKcKK+C4m+C4seC5ieC4meC5gOC4q+C4meC5iOC4hwor4Lib4Lix4LiaCivguJvguLHguYrguJoKK+C4m+C4seC4m+C4nOC4suC4quC4sAor4Lib4Lix4Lie4Lie4Liy4LiK4LiZ4LiwCivguJvguLHguJ7guJ7guLLguIrguJnguLXguKLguIHguKPguKPguKEKK+C4m+C4seC4nuC4oOC4suC4o+C4sAor4Lib4Lix4LmK4Lih4LiZ4LmJ4Liz4Lih4Lix4LiZCivguJvguLHguKLguIHguLAKK+C4m+C4seC4ouC4geC4sgor4Lib4Lix4Lii4Lii4Li04LiB4LiyCivguJvguLHguYjguKcKK+C4m+C4seC4p+C5gOC4m+C4teC4ogor4Lib4Lix4LmJ4Lin4LmA4Lib4Li14LmJ4LiiCivguJvguLHguKjguIjguLTguKEKK+C4m+C4seC4qOC4leC4seC4mQor4Lib4Lix4Lio4LiV4Li5CivguJvguLHguKrguKrguLLguKfguLAKK+C4m+C4seC4quC4quC4suC4quC4sAor4Lib4LiyCivguJvguYjguLIKK+C4m+C5ieC4sgor4Lib4Liy4LiBCivguJvguLLguIHguIHguJoKK+C4m+C4suC4geC4geC4o+C4sOC4iOC4seC4mgor4Lib4Liy4LiB4LiB4Lij4Liw4Lia4LiwCivguJvguLLguIHguIHguKPguLTguKcKK+C4m+C4suC4geC4geC4peC5ieC4sgor4Lib4Liy4LiB4LiB4Lin4LmJ4Liy4LiHCivguJvguLLguIHguIHguLIKK+C4m+C4suC4geC4geC4suC4peC4ueC4geC4peC4t+C5iOC4mQor4Lib4Liy4LiB4LiB4Liy4Lir4Lih4Li24LiB4LiL4Li24LihCivguJvguLLguIHguIHguLLguKvguKHguLbguIHguYHguKvguYnguIcKK+C4m+C4suC4geC5hOC4geC5iAor4Lib4Liy4LiB4LiC4LihCivguJvguLLguIHguILguK0KK+C4m+C4suC4geC5geC4guC5h+C4hwor4Lib4Liy4LiB4LiE4LihCivguJvguLLguIHguITguK3guIEKK+C4m+C4suC4geC4hOC4reC5gOC4o+C4suC4sOC4o+C4suC4ogor4Lib4Liy4LiB4LiE4Lix4LiZCivguJvguLLguIHguITguLMKK+C4m+C4suC4geC4hOC4teC4mgor4Lib4Liy4LiB4LiI4Lit4LiaCivguJvguLLguIHguIjguLDguILguLLguJoKK+C4m+C4suC4geC4iOC4seC4lAor4Lib4Liy4LiB4LiI4Li04LmJ4LiH4LiI4LiBCivguJvguLLguIHguInguKXguLLguKEKK+C4m+C4suC4geC4iuC5ieC4suC4hwor4Lib4Liy4LiB4LiL4LmI4Lit4LihCivguJvguLLguIHguJXguKXguLLguJQKK+C4m+C4suC4geC4leC5iOC4reC4m+C4suC4gQor4Lib4Liy4LiB4LiV4Liw4LiB4Lij4LmJ4LitCivguJvguLLguIHguJXguLDguYTguIHguKMKK+C4m+C4suC4geC4leC4sOC4guC4suC4mgor4Lib4Liy4LiB4LiV4Liz4LmB4LiiCivguJvguLLguIHguYHguJXguKMKK+C4m+C4suC4geC5g+C4leC5iQor4Lib4Liy4LiB4LiZ4LiBCivguJvguLLguIHguJnguIHguIHguKPguLDguIjguK3guIEKK+C4m+C4suC4geC4meC4geC5geC4geC5ieC4pwor4Lib4Liy4LiB4LiZ4LmJ4LizCivguJvguLLguIHguJrguK3guJkKK+C4m+C4suC4geC4muC4suC4leC4owor4Lib4Liy4LiB4LmA4Lia4LiyCivguJvguLLguIHguYHguJrguLAKK+C4m+C4suC4geC4m+C4o+C4suC4qOC4o+C4seC4ouC5g+C4iOC5gOC4iuC4t+C4reC4lOC4hOC4rQor4Lib4Liy4LiB4Lib4Lil4LiyCivguJvguLLguIHguJvguKXguLLguKPguYnguLIKK+C4m+C4suC4geC4m+C4peC4tOC4hwor4Lib4Liy4LiB4LmA4Lib4LmH4LiUCivguJvguLLguIHguYDguJvguYfguJnguIrguLHguIHguKLguJnguJXguYwKK+C4m+C4suC4geC5gOC4m+C4o+C4suC4sAor4Lib4Liy4LiB4LmA4Lib4Lij4Liy4Liw4LmA4Lij4Liy4Liw4Lij4Liy4LiiCivguJvguLLguIHguYDguJvguKXguYjguLIKK+C4m+C4suC4geC5gOC4m+C4teC4ouC4gQor4Lib4Liy4LiB4LmA4Lib4Li14Lii4LiB4Lib4Liy4LiB4LmB4LiJ4LiwCivguJvguLLguIHguYLguJvguYnguIcKK+C4m+C4suC4geC5hOC4m+C4peC5iAor4Lib4Liy4LiB4Lih4Liy4LiBCivguJvguLLguIHguYTguKHguYkKK+C4m+C4suC4geC5hOC4oeC5iOC4quC4tOC5ieC4meC4geC4peC4tOC5iOC4meC4meC5ieC4s+C4meC4oQor4Lib4Liy4LiB4Lij4Liy4LiBCivguJvguLLguIHguKPguYnguLLguKIKK+C4m+C4suC4geC5gOC4o+C4t+C4rQor4Lib4Liy4LiB4Lin4LmI4Liy4LiV4Liy4LiC4Lii4Li04LiaCivguJvguLLguIHguKfguYjguLLguKHguLfguK3guJbguLbguIcKK+C4m+C4suC4geC4quC4p+C5iOC4suC4hwor4Lib4Liy4LiB4Lir4LiZ4Lix4LiBCivguJvguLLguIHguKvguKfguLLguJkKK+C4m+C4suC4geC4q+C4p+C4suC4meC4geC5ieC4meC5gOC4m+C4o+C4teC5ieC4ouC4pwor4Lib4Liy4LiB4Lir4Lit4Lii4Lib4Liy4LiB4Lib4Li5CivguJvguLLguIHguKvguYjguLLguIcKK+C4m+C4suC4geC5gOC4q+C4ouC4teC5iOC4ouC4p+C4m+C4suC4geC4geC4sgor4Lib4Liy4LiB4Lit4LmI4Liy4LinCivguJvguYjguLLguYHguITguKPguLAKK+C4m+C4suC4hwor4Lib4LmI4Liy4LiHCivguJvguYnguLLguIcKK+C4m+C5ieC4suC4h+C4m+C5iOC4sgor4Lib4Liy4LiI4LiZ4LiwCivguJvguLLguIjguKPguLXguKLguYwKK+C4m+C4suC4iOC4suC4o+C4ouC5jAor4Lib4Liy4LiI4Li04LiV4LiV4Li14Lii4LmMCivguJvguLLguIjguLXguJkKK+C4m+C5iOC4suC4iuC5ieC4sgor4Lib4LmI4Liy4LiK4Liy4Lii4LmA4Lil4LiZCivguJvguLLguI/guKXguLQKK+C4m+C4suC4j+C4tOC4muC4lwor4Lib4Liy4LiP4Li04Lia4Li44LiE4Lil4Li04LiBCivguJvguLLguI/guLTguYLguKDguIQKK+C4m+C4suC4j+C4tOC4q+C4suC4o+C4tOC4ouC5jAor4Lib4Liy4LiQLQor4Lib4Liy4LiQ4LiBCivguJvguLLguJDguIHguJbguLIKK+C4m+C4suC4kOC4sAor4Lib4Liy4LiTLQor4Lib4Liy4LiT4LiBLQor4Lib4Liy4LiT4LiB4LiK4Liy4LiV4Li0CivguJvguLLguJPguJfguLHguJPguJHguYwKK+C4m+C4suC4k+C4meC4suC4qAor4Lib4Liy4LiT4Lig4Li54LiVCivguJvguLLguJPguKfguLTguJnguLLguKgKK+C4m+C4suC4k+C4quC4suC4owor4Lib4Liy4LiT4LiwCivguJvguLLguJPguLLguJXguLTguJrguLLguJUKK+C4m+C4suC4k+C4tAor4Lib4Liy4LiT4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJvguLLguJPguLTguJTguKUKK+C4m+C4suC4k+C4tOC4mOC4o+C4o+C4oQor4Lib4Liy4LiT4Li04Lih4Li44LiB4LiV4LmMCivguJvguLLguJPguLTguKHguLnguKUKK+C4m+C4suC4k+C4tQor4Lib4Liy4LiUCivguJvguYjguLLguJTguIfguJTguLTguJoKK+C4m+C4suC4lOC4q+C4suC4pwor4Lib4LmI4Liy4LiU4Li04LiaCivguJvguYjguLLguYHguJTguIcKK+C4m+C4suC4leC4tOC5guC4oeC4geC4guC5jAor4Lib4Liy4LiV4Li1CivguJvguLLguYDguJXguYrguLAKK+C4m+C5iOC4suC5gOC4luC4t+C5iOC4reC4mQor4Lib4Liy4LiXCivguJvguLLguJfguJsKK+C4m+C4suC4l+C5iOC4reC4h+C5guC4geC5iwor4Lib4Liy4LiX4Lix4LiH4LiB4LiyCivguJvguLLguJfguLLguJkKK+C4m+C5iOC4suC4l+C4tuC4mgor4Lib4Liy4LiX4Li44LiB4LiyCivguJvguLLguJkKK+C4m+C5iOC4suC4mQor4Lib4LmJ4Liy4LiZCivguJvguLLguJnguIHguKXguLLguIcKK+C4m+C5iOC4suC4meC4hOC4oQor4Lib4Liy4LiZ4LiJ4Liw4LiZ4Li14LmJCivguJvguLLguJnguJTguIcKK+C4m+C4suC4meC4meC4teC5iQor4Lib4LmI4Liy4LiZ4LiZ4Li14LmJCivguJvguYnguLLguJnguKXguKEKK+C4m+C4suC4meC4sAor4Lib4Liy4LiZ4Li04LmA4Lii4LiZCivguJvguLLguJnguLXguKItCivguJvguLLguJnguLXguKLguLAKK+C4m+C4suC4meC4teC5guC4ouC4l+C4gQor4Lib4LmJ4Liy4LiaCivguJvguYrguLLguJoKK+C4m+C5iOC4suC5gOC4muC4jeC4iOC4nuC4o+C4o+C4kwor4Lib4Liy4LibLQor4Lib4Liy4Lib4Lih4Li44LiVCivguJvguLLguJvguK3guKvguKLguLXguKrguLHguIfguIbguLLguJXguLIKK+C4m+C5iOC4suC5guC4m+C4o+C5iOC4hwor4Lib4LmI4Liy4Lic4Lil4Lix4LiU4LmD4LiaCivguJvguLLguJ7guIjguJnguYwKK+C4m+C5iOC4suC5geC4nuC4sAor4Lib4Liy4LihCivguJvguLLguKHguJvguLbguIfguKHguLIKK+C4m+C4suC5guC4oeC4geC4guC5jAor4Lib4LmI4Liy4LmE4Lih4LmJ4Lie4Li44LmI4LihCivguJvguYjguLLguKIKK+C4m+C5ieC4suC4ogor4Lib4LmJ4Liy4Lii4Liq4Li1CivguJvguLLguKLguLLguKoKK+C4m+C4suC4oy0KK+C4m+C4suC4o+C5jOC5gOC4geC4leC5jAor4Lib4Liy4Lij4LiE4Li5CivguJvguLLguKPguKHguLUKK+C4m+C4suC4o+C5gOC4oeC4qAor4Lib4Liy4Lij4Lip4LiT4Li1CivguJvguYjguLLguKPguLDguJnguLLguKEKK+C4m+C4suC4o+C4suC4iuC4tOC4gQor4Lib4Liy4Lij4Li04LiJ4Lix4LiV4LijCivguJvguLLguKPguLTguIrguLLguJUKK+C4m+C4suC4o+C4uOC4m+C4meC4sAor4Lib4Liy4LilCivguJvguLLguKXguYzguKEKK+C4m+C5iOC4suC4peC4sOC5gOC4oeC4suC4sAor4Lib4Liy4Lil4Li04LmE4Lil4Lii4LiB4LmMCivguJvguLLguKXguLUKK+C4m+C5iOC4suC5gOC4peC4mQor4Lib4Liy4Lin4LmGCivguJvguYjguLLguKcKK+C4m+C5iuC4suC4pwor4Lib4Liy4Lin4LiBCivguJvguLLguKfguIjguJnguLAKK+C4m+C5iOC4suC4p+C4m+C4o+C4sOC4geC4suC4qAor4Lib4LmI4Liy4Lin4Lij4LmJ4Lit4LiHCivguJvguLLguKfguLLguKMKK+C4m+C4suC4qeC4suC4kwor4Lib4Liy4LiqCivguJvguLLguKrguLLguJMKK+C4m+C4suC4quC4suC4l+C4tOC4geC4sAor4Lib4LmI4Liy4Liq4Li54LiHCivguJvguYjguLLguYDguKrguYfguIfguYDguITguKPguYfguIcKK+C4m+C5iOC4suC5g+C4qgor4Lib4Liy4Lir4LiZ4Lix4LiZCivguJvguLLguKvguLXguYgKK+C4m+C4suC4q+C4uOC4kwor4Lib4Liy4Lir4Li44LmE4LiT4LiiLQor4Lib4Liy4Lir4Li44LmE4LiT4Lii4Lia4Li44LiE4LiE4LilCivguJvguLMKK+C4m+C5ieC4swor4Lib4LmJ4Liz4LmA4Lib4LmJ4LitCivguJvguYnguLPguYDguJvguYvguK0KK+C4m+C5ieC4s+C5hiDguYDguJvguYvguK3guYYKK+C4m+C4tOC4geC4meC4tOC4gQor4Lib4Li04LmJ4LiHCivguJvguLTguIfguITguKUtCivguJvguLTguIfguITguKXguKvguLHguJXguJbguLUKK+C4m+C4tOC4h+C4hOC4peC4sAor4Lib4Li04LmJ4LiH4Lib4Lil4Liy4Lib4Lij4Liw4LiK4LiU4LmB4Lih4LinCivguJvguLTguIfguJvguK3guIcKK+C4m+C4tOC4juC4gQor4Lib4Li04LiP4LiQ4LiwCivguJvguLTguJDguLQKK+C4m+C4tOC4k+C4keC4sAor4Lib4Li04LiUCivguJvguLTguJTguIHguKXguYnguK3guIcKK+C4m+C4tOC4lOC4hOC4lOC4tQor4Lib4Li04LiU4LiE4Lin4Lix4LiZ4LmE4Lif4LmE4Lih4LmI4Lih4Li04LiUCivguJvguLTguJTguInguLLguIEKK+C4m+C4tOC4lOC4leC4suC4ogor4Lib4Li04LiU4LmA4LiV4LmK4Liy4LiwCivguJvguLTguJTguJfguK3guIfguKvguKXguLHguIfguJ7guKPguLAKK+C4m+C4tOC4lOC4muC4seC4hwor4Lib4Li04LiU4Lia4Lix4LiN4LiK4Li1CivguJvguLTguJTguYDguJrguLIKK+C4m+C4tOC4lOC4m+C4o+C4sOC4leC4ueC4hOC5ieC4sgor4Lib4Li04LiU4Lib4Lij4Liw4LiV4Li54LiV4Li14LmB4Lih4LinCivguJvguLTguJTguJvguLLguIEKK+C4m+C4tOC4lOC4quC4s+C4meC4p+C4mQor4Lib4Li04LiU4Lir4LiZ4Lix4LiBCivguJvguLTguJTguKvguLXguJrguYTguKHguYjguKXguIcKK+C4m+C4tOC4leC4leC4sAor4Lib4Li04LiV4LiyCivguJvguLTguJXguLLguKHguKvguLAKK+C4m+C4tOC4leC4suC4oeC4q+C4seC4ouC4geC4sgor4Lib4Li04LiV4Liy4Lih4Lir4Lix4Lii4Lii4Li04LiB4LiyCivguJvguLTguJXguLgKK+C4m+C4tOC4leC4uOC4huC4suC4lQor4Lib4Li04LiV4Li44LiI4LiJ4LiyCivguJvguLTguJXguLjguKDguLnguKHguLQKK+C4m+C4tOC4leC4uOC4pQor4Lib4Li04LiV4Li44Lil4LiyCivguJvguLTguJXguLjguKXguLLguJnguLUKK+C4m+C4tOC5guC4leC4o+C5gOC4peC4teC4ouC4oQor4Lib4Li04LmI4LiZCivguJvguLTguYjguJnguYHguIHguYnguKcKK+C4m+C4tOC5iOC4meC4i+C5iOC4mQor4Lib4Li04LmI4LiZ4LiV4LitCivguJvguLTguYjguJnguYLguJUKK+C4m+C4tOC4m+C4nOC4peC4tQor4Lib4Li04LmI4LihCivguJvguLTguYnguKEKK+C4m+C4tOC4oi0KK+C4m+C4tOC4ouC4seC4h+C4hOC4uAor4Lib4Li04Lil4Lix4LiZ4LiY4LiZ4LmMCivguJvguLTguYvguKcKK+C4m+C4tOC4qOC4suC4iAor4Lib4Li04Lio4Liy4LiI4Lia4LiU4Li1CivguJvguLTguKrguLHguIcKK+C4m+C4tOC5hOC4qgor4Lib4Li04Lir4LiBCivguJvguLTguKvguKXguLHguYjguJkKK+C4m+C4tQor4Lib4Li14LmICivguJvguLXguYkKK+C4m+C4teC5iwor4Lib4Li14LiBCivguJvguLXguIHguIHguKXguYnguLLguILguLLguYHguILguYfguIcKK+C4m+C4teC4geC4geC4sgor4Lib4Li14LiB4LiE4LmJ4Liy4LiH4LiE4Liy4LinCivguJvguLXguIHguJnguIEKK+C4m+C4teC4geC5hOC4oeC5iQor4Lib4Li14LiB4Lil4Liy4LiiCivguJvguLXguIHguKvguLHguIEKK+C4m+C4teC4geC4suC4o+C4qOC4tuC4geC4qeC4sgor4Lib4Li14LmI4LmB4LiB4LmJ4LinCivguJvguLXguIfguJrguJvguKPguLDguKHguLLguJMKK+C4m+C4teC4kOC4geC4sAor4Lib4Li14LiQ4LiwCivguJvguLXguYrguJQKK+C4m+C4teC4leC4tAor4Lib4Li14LiZCivguJvguLXguJnguYDguIHguKXguLXguKLguKcKK+C4m+C4teC4mgor4Lib4Li14LmK4LiaCivguJvguLXguJvguI/guLTguJfguLTguJkKK+C4m+C4teC5iOC4nuC4suC4l+C4ouC5jAor4Lib4Li14Lih4Liw4LmC4Lin4LmJCivguJvguLXguKjguLLguIgKK+C4m+C4teC5geC4quC4hwor4Lib4Li14Lir4LiZ4LmJ4Liy4Lif4LmJ4Liy4LmD4Lir4Lih4LmICivguJvguLXguKwKK+C4m+C4teC4rOC4gQor4Lib4Li14Lis4LiyCivguJvguLbguIEKK+C4m+C4tuC4geC5geC4nOC5iOC4mQor4Lib4Li24LiHCivguJvguLbguYjguIcKK+C4m+C4tuC5i+C4hwor4Lib4Li24LmI4LiH4LiK4LiyCivguJvguLbguIfguJvguLHguIcKK+C4m+C4tuC5ieC4lAor4Lib4Li24Lih4Lib4Li34LmJ4LitCivguJvguLfguJTguJvguLbguIcKK+C4m+C4t+C4mQor4Lib4Li34LmJ4LiZCivguJvguLfguJnguKLguLIKK+C4m+C4t+C4rQor4Lib4Li34LmJ4LitCivguJvguLfguYvguK0KK+C4m+C4uAor4Lib4Li44LmKCivguJvguLjguIEKK+C4m+C4uOC4geC4m+C4uOC4ogor4Lib4Li44LiE4Lil4LiwCivguJvguLjguYnguIfguIHguLXguYsKK+C4m+C4uOC4h+C4hOC4ngor4Lib4Li44LiH4LiE4Lin4LiwCivguJvguLjguIfguKXguLTguIfguITguYwKK+C4m+C4uOC4h+C4peC4tuC4h+C4hOC5jAor4Lib4Li44LiI4LiJ4LiyCivguJvguLjguI8KK+C4m+C4uOC4k+C4keC4o+C4tOC4gQor4Lib4Li44LiUCivguJvguLjguJTguIHguLDguKXguLIKK+C4m+C4uOC4leC4leC4sAor4Lib4Li44LiW4Li44LiK4LiZCivguJvguLjguJnguJnguLLguIQKK+C4m+C4uOC4meC4oOC4ngor4Lib4Li44LiZ4Lix4Lie4Lie4Liq4Li5CivguJvguLjguJnguLHguJ7guKrguLgKK+C4m+C4uOC4mgor4Lib4Li44LmK4LiaCivguJvguLjguJrguJvguLHguJoKK+C4m+C4uOC5iuC4muC4m+C4seC5iuC4mgor4Lib4Li44Lib4Lic4LiwCivguJvguLjguJvguLAKK+C4m+C4uOC4nuC4ni0KK+C4m+C4uOC4nuC4nuC4nOC4peC4hOC4uOC4meC4tQor4Lib4Li44Lie4Lie4Lic4Lil4LiE4Li44LiZ4Li1LQor4Lib4Li44Lie4Lie4LiwCivguJvguLjguJ7guJ7guLDguKDguLHguJfguJfguLAKK+C4m+C4uOC4oS0KK+C4m+C4uOC5iOC4oQor4Lib4Li44LmJ4LihCivguJvguLjguYvguKEKK+C4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lib4Li44LmI4Lih4Lib4LmI4LizCivguJvguLjguYnguKHguYDguJvguYnguIcKK+C4m+C4uOC5iOC4oeC5gOC4m+C4t+C4reC4gQor4Lib4Li44LmJ4Lih4LmA4Lib4Li34Lit4LiBCivguJvguLjguKHguLIKK+C4m+C4uOC4ogor4Lib4Li44LmJ4LiiCivguJvguLjguYvguKIKK+C4m+C4uOC4ouC4geC4o+C4sOC5guC4lOC4mQor4Lib4Li44Lii4LiC4Liy4LinCivguJvguLjguYvguKLguITguK3guIEKK+C4m+C4uOC4ouC4neC5ieC4suC4ogor4Lib4Li44LijCivguJvguLjguKPguJPguLAKK+C4m+C4uOC4o+C4ni0KK+C4m+C4uOC4o+C4nuC4nOC4peC4hOC4uOC4meC4tQor4Lib4Li44Lij4Lie4Lip4Liy4LiSCivguJvguLjguKPguLLguJMKK+C4m+C4uOC4o+C4suC4k+C4sAor4Lib4Li44LmA4Lij4LiI4Liy4Lij4Li04LiBCivguJvguLjguYLguKPguKvguLTguJUKK+C4m+C4uOC4peC4peC4tOC4h+C4hOC5jAor4Lib4Li44Lil4Lil4Li24LiH4LiE4LmMCivguJvguLjguKXguLTguJnguJfguYwKK+C4m+C4uOC4peC4uQor4Lib4Li44LmC4Lil4Lib4Li44LmA4LilCivguJvguLjguKnguKLguLAKK+C4m+C4uOC4quC4quC4sAor4Lib4Li44Lis4Lin4LiwCivguJvguLkKK+C4m+C4ueC5iAor4Lib4Li54LmI4LiE4Lij4Li5CivguJvguLnguIjguYvguLIKK+C4m+C4ueC5iOC5gOC4iOC5ieC4sgor4Lib4Li54LiK4LiB4LiwCivguJvguLnguIrguJnguLXguKItCivguJvguLnguIrguJnguLXguKLguLAKK+C4m+C4ueC4iuC4sgor4Lib4Li54LiK4Li04LiVCivguJvguLnguJQKK+C4m+C4ueC4lOC4geC4geC4quC5ieC4oeC4oeC4rQor4Lib4Li54LiV4Li0CivguJvguLnguJXguLTguKXguJTguLIKK+C4m+C4ueC5iOC4l+C4p+C4lAor4Lib4Li54LiZCivguJvguLnguJnguILguLLguKcKK+C4m+C4ueC4meC4i+C4teC5gOC4oeC4meC4leC5jAor4Lib4Li54LiZ4LiU4Li04LiaCivguJvguLnguJnguYHguJTguIcKK+C4m+C4ueC4meC4m+C4peC4suC4quC5gOC4leC4reC4o+C5jAor4Lib4Li54LiZ4Lib4Lix4LmJ4LiZCivguJvguLnguJnguYDguJvguLXguKLguIEKK+C4m+C4ueC4meC4nOC4tOC4pwor4Lib4Li54LiZ4LmA4Lie4LiK4LijCivguJvguLnguJnguYTguJ8KK+C4m+C4ueC4meC4quC4rQor4Lib4Li54LiZ4Liq4Li44LiBCivguJvguLnguYjguJnguYnguK3guKIKK+C4m+C4ueC4oQor4Lib4Li54LmI4Lii4LmI4LiyCivguJvguLnguYnguKLguLXguYjguJvguLnguYnguKLguLMKK+C4m+C4ueC4o+C4sAor4Lib4Li54Lil4Li5CivguJvguLnguYDguKUKK+C4m+C4ueC4p+C4sgor4Lib4Li54LmA4Liq4LiJ4Lin4LiZCivguYDguJvguYkKK+C5gOC4m+C5iwor4LmA4Lib4LiBCivguYDguJvguYrguIEKKy3guYDguJvguIHguILguYwKK+C5gOC4m+C5iOC4hwor4LmA4Lib4LmJ4LiHCivguYDguJvguYvguIcKK+C5gOC4m+C5h+C4lAor4LmA4Lib4LmH4LiU4LiB4LmI4LiyCivguYDguJvguYfguJTguYHguIHguYnguKcKK+C5gOC4m+C5h+C4lOC4guC4seC4meC4m+C4o+C4sOC4iuC4seC4meC5hOC4geC5iAor4LmA4Lib4LmH4LiU4LiW4LiaCivguYDguJvguYfguJTguYDguJfguKgKK+C5gOC4m+C5h+C4lOC4meC5ieC4swor4LmA4Lib4LmH4LiU4Lic4Li1CivguYDguJvguYfguJTguYTguJ/guYHguJTguIcKK+C5gOC4m+C5h+C4lOC4q+C4h+C4quC5jAor4LmA4Lib4LiVLQor4LmA4Lib4LiV4Lie4Lil4Li1CivguYDguJvguJXguKfguLTguKrguLHguKIKK+C5gOC4m+C4leC4reC4hwor4LmA4Lib4LiV4LiyCivguYDguJvguYfguJkKK+C5gOC4m+C5h+C4meC4geC4peC4suC4hwor4LmA4Lib4LmH4LiZ4LiB4Lit4LiHCivguYDguJvguYfguJnguIHguK3guJrguYDguJvguYfguJnguIHguLMKK+C5gOC4m+C5h+C4meC4geC4suC4owor4LmA4Lib4LmH4LiZ4LiE4Lin4Lix4LiZCivguYDguJvguYfguJnguITguKfguLLguKEKK+C5gOC4m+C5h+C4meC4hOC4uOC5ieC4h+C5gOC4m+C5h+C4meC5geC4hOC4pwor4LmA4Lib4LmH4LiZ4LiH4Liy4LiZ4LmA4Lib4LmH4LiZ4LiB4Liy4LijCivguYDguJvguYfguJnguYDguIfguLLguJXguLLguKHguJXguLHguKcKK+C5gOC4m+C5h+C4meC5gOC4h+C4tOC4meC5gOC4m+C5h+C4meC4l+C4reC4hwor4LmA4Lib4LmH4LiZ4LiI4Lij4Li04LiH4LmA4Lib4LmH4LiZ4LiI4Lix4LiHCivguYDguJvguYfguJnguYPguIgKK+C5gOC4m+C5h+C4meC4iuC4tOC5ieC4meC5gOC4m+C5h+C4meC4reC4seC4mQor4LmA4Lib4LmH4LiZ4LiK4Li54LmJCivguYDguJvguYfguJnguJTguLHguYnguIfguKvguJnguYnguLIKK+C5gOC4m+C5h+C4meC5geC4lOC4mQor4LmA4Lib4LmH4LiZ4LmD4LiUCivguYDguJvguYfguJnguYTguJTguYkKK+C5gOC4m+C5h+C4meC4leC5ieC4mQor4LmA4Lib4LmH4LiZ4LiV4LmI4LitCivguYDguJvguYfguJnguJXguLHguKfguYDguJvguYfguJnguJXguJkKK+C5gOC4m+C5h+C4meC4leC4uOC5gOC4m+C5h+C4meC4leC4sAor4LmA4Lib4LmH4LiZ4LiZ4LmJ4LizCivguYDguJvguYfguJnguJnguYnguLPguYDguJvguYfguJnguJnguKfguKUKK+C5gOC4m+C5h+C4meC4meC5ieC4s+C4ouC4suC5gOC4ouC5h+C4mQor4LmA4Lib4LmH4LiZ4LiZ4Li04LiV4Lii4LmMCivguYDguJvguYfguJnguYDguJnguLfguYnguK3guYDguJvguYfguJnguJXguLHguKcKK+C5gOC4m+C5h+C4meC5gOC4meC4t+C5ieC4reC5gOC4m+C5h+C4meC4q+C4meC4seC4hwor4LmA4Lib4LmH4LiZ4Lia4LmJ4LiyCivguYDguJvguYfguJnguJrguYnguLLguYDguJvguYfguJnguKvguKXguLHguIcKK+C5gOC4m+C5h+C4meC4m+C4suC4geC5gOC4quC4teC4ouC4hwor4LmA4Lib4LmH4LiZ4Lib4Li14LmI4LmA4Lib4LmH4LiZ4LiC4Lil4Li44LmI4LiiCivguYDguJvguYfguJnguJzguLnguYnguYDguJvguYfguJnguITguJkKK+C5gOC4m+C5h+C4meC4neC4seC5iOC4h+C5gOC4m+C5h+C4meC4neC4sgor4LmA4Lib4LmH4LiZ4Lif4Li34LiZ4LmA4Lib4LmH4LiZ4LmE4LifCivguYDguJvguYfguJnguYTguJ8KK+C5gOC4m+C5h+C4meC4oeC4seC5iOC4meC5gOC4m+C5h+C4meC5gOC4q+C4oeC4suC4sAor4LmA4Lib4LmH4LiZ4Lij4Lit4LiHCivguYDguJvguYfguJnguYTguKMKK+C5gOC4m+C5h+C4meC4peC4oeC5hgor4LmA4Lib4LmH4LiZ4Lil4LmI4Liz4LmA4Lib4LmH4LiZ4Liq4Lix4LiZCivguYDguJvguYfguJnguYLguKXguYnguYDguJvguYfguJnguJ7guLLguKIKK+C5gOC4m+C5h+C4meC4p+C4o+C4o+C4hOC5gOC4m+C5h+C4meC5gOC4p+C4owor4LmA4Lib4LmH4LiZ4Lir4LiZ4LmJ4Liy4LmA4Lib4LmH4LiZ4LiV4LiyCivguYDguJvguYfguJnguKvguLjguYjguJnguYPguKvguYnguYDguIrguLTguJQKK+C5gOC4m+C5h+C4meC4q+C4ueC5gOC4m+C5h+C4meC4leC4sgor4LmA4Lib4LmH4LiZ4Lit4Lix4LiZCivguYDguJvguYfguJnguK3guLHguJnguILguLLguJQKK+C5gOC4m+C5h+C4meC4reC4seC4meC4oeC4suC4gQor4LmA4Lib4LmH4LiZ4LmA4Lit4LiHCivguYDguJvguKLguKLguLLguKUKK+C5gOC4m+C4owor4LmA4Lib4Lij4LmH4LiHCivguYDguJvguKPguJUKK+C5gOC4m+C4o+C4lS0KK+C5gOC4m+C4o+C4leC4p+C4tOC4qeC4seC4ogor4LmA4Lib4Lij4LiV4Lin4Li04Liq4Lix4LiiCivguYDguJvguKPguKEKK+C5gOC4m+C4o+C4oeC4m+C4o+C4sgor4LmA4Lib4Lij4LiiCivguYDguJvguKPguKLguYYKK+C5gOC4m+C4o+C4ouC4m+C4o+C4suC4ogor4LmA4Lib4Lij4LitCivguYDguJvguKPguK3guLAKK+C5gOC4m+C4o+C4sgor4LmA4Lib4Lij4Liy4LiwCivguYDguJvguKPguLLguLDguYHguJvguKPguLAKK+C5gOC4m+C4o+C4suC4sOC4q+C4reC4oQor4LmA4Lib4Lij4Li14Lii4LiHCivguYDguJvguKPguLXguYnguKLguIcKK+C5gOC4m+C4o+C4teC4ouC4jQor4LmA4Lib4Lij4Li14Lii4LiaCivguYDguJvguKPguLXguKLguJrguYDguJfguLXguKLguJoKK+C5gOC4m+C4o+C4teC4ouC4muC4m+C4o+C4suC4ogor4LmA4Lib4Lij4Li14Lii4Lia4LmA4Lib4Lij4LiiCivguYDguJvguKPguLXguYjguKLguKEKK+C5gOC4m+C4o+C4teC4ouC4pwor4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguYDguJvguKPguLXguYnguKLguKfguJvguLLguIEKK+C5gOC4m+C4o+C4teC5ieC4ouC4p+C4q+C4p+C4suC4mQor4LmA4Lib4Lij4Li14Lii4LiwCivguYDguJvguKPguLXguYrguKLguLAKK+C5gOC4m+C4o+C4t+C5iOC4reC4hwor4LmA4Lib4Lij4Li34LmI4Lit4LiH4Lib4Lij4Liy4LiUCivguYDguJvguKPguLfguYnguK3guKIKK+C5gOC4m+C4pQor4LmA4Lib4Lil4LmI4LiHCivguYDguJvguKXguI3guKfguJkKK+C5gOC4m+C4peC4pwor4LmA4Lib4Lil4LiyCivguYDguJvguKXguYjguLIKK+C5gOC4m+C4peC5ieC4sgor4LmA4Lib4Lil4LmJ4Liy4LiC4Lil4Li04Lia4LiX4Lit4LiHCivguYDguJvguKXguYjguLLguJTguLLguKIKK+C5gOC4m+C4peC4suC4sAor4LmA4Lib4Lil4Li14LmJ4LiiCivguYDguJvguKXguLXguYjguKLguJkKK+C5gOC4m+C4peC4teC5iOC4ouC4meC5g+C4iAor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LiV4Lix4LinCivguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIcKK+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4nOC5iOC4meC4lOC4tOC4mQor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4Lih4Li34LitCivguYDguJvguKXguLXguYjguKLguJnguKHguLfguK3guYTguKHguYjguYTguJTguYkKK+C5gOC4m+C4peC4teC5iOC4ouC4meC4q+C4meC5ieC4sgor4LmA4Lib4Lil4Li14LmI4Lii4LihCivguYDguJvguKXguLXguYjguKLguKcKK+C5gOC4m+C4peC4teC5iOC4ouC4p+C4lOC4swor4LmA4Lib4Lil4Li34Lit4LiBCivguYDguJvguKXguLfguK3guIHguIHguKPguLDguYDguJfguLXguKLguKEKK+C5gOC4m+C4peC4t+C4reC4geC4leC4sgor4LmA4Lib4Lil4Li34Lit4LiB4LmC4Lil4LiBCivguYDguJvguKXguLfguK3guIcKK+C5gOC4m+C4peC4t+C5ieC4reC4hwor4LmA4Lib4Lil4Li34LmJ4Lit4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Li44LiB4Liz4Lio4LieCivguYDguJvguKXguLfguK3guIfguYPguIgKK+C5gOC4m+C4peC4t+C4reC4ogor4LmA4Lib4Lil4Li34Lit4Lii4LiB4Liy4LiiCivguYDguJvguKgKK+C5gOC4m+C4qOC4pQor4LmA4Lib4Lio4Lil4Lih4Lix4LiY4Lii4LmMCivguYDguJvguKjguLHguKoKK+C5gOC4m+C4qOC4seC4qi0KK+C5gOC4m+C4qOC4seC4quC4geC4suC4o+C4tOC4mQor4LmA4Lib4Lio4Lix4Liq4LiB4Liy4Lij4Li1CivguYDguJvguKrguIHguLLguKMKK+C5gOC4m+C4quC4pQor4LmA4Lib4Liq4Li44LiNCivguYDguJvguKrguLjguI0tCivguYDguJvguKrguLjguI3guKfguLLguJcKK+C5gOC4m+C4quC4uOC5hOC4k+C4ogor4LmA4Lib4LmL4LitCivguYDguJvguYnguK3guYDguKLguYnguK0KK+C5gOC4m+C4reC4o+C5jOC5gOC4i+C5h+C4meC4leC5jAor4LmA4Lib4LmL4Lit4LmA4Lir4Lil4LitCivguYDguJvguLAKK+C5gOC4m+C4sOC4m+C4sAor4LmA4Lib4LiyCivguYDguJvguYjguLIKK+C5gOC4m+C5ieC4sgor4LmA4Lib4LmK4LiyCivguYDguJvguYvguLIKK+C5gOC4m+C5iOC4suC4geC4mgor4LmA4Lib4LmI4Liy4LmB4LiV4LijCivguYDguJvguYnguLLguJvguKPguLDguKrguIfguITguYwKK+C5gOC4m+C5iOC4suC4m+C4teC5iAor4LmA4Lib4LmI4Liy4Lid4Li44LmI4LiZCivguYDguJvguYjguLLguYHguKXguYjguJkKK+C5gOC4m+C5ieC4suC4q+C4oeC4suC4ogor4LmA4Lib4LmI4Liy4Lir4Lil4Lit4LiUCivguYDguJvguYjguLLguKvguLkKK+C5gOC4m+C5i+C4suC4ruC4t+C5ieC4rQor4LmA4Lib4Liy4LiwCivguYDguJvguLLguLDguYDguJvguLXguYrguKLguLAKK+C5gOC4m+C4suC4sOC5geC4m+C4sAor4LmA4Lib4Liy4Liw4LmA4Lir4Lil4Liy4LiwCivguYDguJvguLTguIEKK+C5gOC4m+C4tOC4hwor4LmA4Lib4Li04LiH4LmGCivguYDguJvguLTguIfguKHguLLguIcKK+C5gOC4m+C4tOC4lAor4LmA4Lib4Li04LiU4LiB4Lil4LmJ4Lit4LiHCivguYDguJvguLTguJTguITguJTguLUKK+C5gOC4m+C4tOC4lOC4ieC4suC4gQor4LmA4Lib4Li04LiU4Lia4Lix4LiN4LiK4Li1CivguYDguJvguLTguJTguYDguJvguLTguIcKK+C5gOC4m+C4tOC4lOC5guC4m+C4hwor4LmA4Lib4Li04LiU4LmA4Lic4LiiCivguYDguJvguLTguJTguYLguKXguIEKK+C5gOC4m+C4tOC4lOC4q+C4oeC4p+C4geC4peC4sgor4LmA4Lib4Li04LiU4Lir4Lih4Lin4LiB4LmD4Lir4LmJCivguYDguJvguLTguJTguKvguLnguYDguJvguLTguJTguJXguLIKK+C5gOC4m+C4tOC4lOC4reC4gQor4LmA4Lib4Li04LmI4LiZCivguYDguJvguLTguJoKK+C5gOC4m+C4tOC5iuC4mgor4LmA4Lib4Li04Lia4LiC4LmJ4Liy4LinCivguYDguJvguLXguKIKK+C5gOC4m+C4teC4ouC4gQor4LmA4Lib4Li14LmK4Lii4LiBCivguYDguJvguLXguYjguKLguKEKK+C5gOC4m+C4teC4ouC4pwor4LmA4Lib4Li14LmJ4Lii4LinCivguYDguJvguLXguKLguLAKK+C5gOC4m+C4teC5iuC4ouC4sAor4LmA4Lib4Li34Lit4LiBCivguYDguJvguLfguK3guIHguJXguKEKK+C5gOC4m+C4t+C5ieC4reC4mQor4LmA4Lib4Li34LmI4Lit4LiiCivguYHguJsKK+C5geC4m+C5ieC4hwor4LmB4Lib4LmL4LiHCivguYHguJvguYnguIfguILguYnguLLguKfguKrguLLguKXguLUKK+C5geC4m+C5ieC4h+C4guC5ieC4suC4p+C4q+C4oeC4suC4gQor4LmB4Lib4LmJ4LiH4LmB4LiC4LmH4LiHCivguYHguJvguYnguIfguIjguLXguYgKK+C5geC4m+C5ieC4h+C5geC4iuC5iAor4LmB4Lib4LmJ4LiH4LiN4Lin4LiZCivguYHguJvguYnguIfguJnguKfguKUKK+C5geC4m+C5ieC4h+C4neC4uOC5iOC4mQor4LmB4Lib4LmJ4LiH4Lih4Lix4LiZCivguYHguJvguYnguIfguKHguLXguYgKK+C5geC4m+C5ieC4h+C4o+C5iOC4swor4LmB4Lib4LmJ4LiH4Liq4LiUCivguYHguJvguYnguIfguKrguLLguKPguKDguLUKK+C5geC4m+C5ieC4h+C4quC4suC4peC4tQor4LmB4Lib4LmJ4LiH4Liq4Li04LiH4LiE4LmC4Lib4Lij4LmMCivguYHguJvguYnguIfguKvguKHguLXguYgKK+C5geC4m+C5ieC4h+C5gOC4q+C4peC5ieC4sgor4LmB4Lib4LiUCivguYHguJvguYrguJQKK+C5geC4m+C4lOC4muC4lwor4LmB4Lib4LiU4Lib4LiZCivguYHguJvguJTguYDguJvguLfguYnguK3guJkKK+C5geC4m+C4lOC4quC4suC5geC4q+C4o+C4gQor4LmB4Lib4LiU4LmA4Lir4Lil4Li14LmI4Lii4Lih4LmB4Lib4LiU4LiE4LihCivguYHguJvguJTguYDguKvguKXguLXguYjguKLguKHguKrguLTguJrguKrguK3guIfguITguKEKK+C5geC4m+C4l+C4uQor4LmB4Lib4LmJ4LiZCivguYHguJvguJoKK+C5geC4m+C5iuC4mgor4LmB4Lib4LihCivguYHguJvguKMKK+C5geC4m+C4o+C5iwor4LmB4Lib4Lij4LiBCivguYHguJvguKPguILguJrguKfguJkKK+C5geC4m+C4o+C5hOC4guC5iQor4LmB4Lib4Lij4LiHCivguYHguJvguKPguYjguIcKK+C5geC4m+C4o+C4h+C4peC5ieC4suC4h+C4guC4p+C4lAor4LmB4Lib4Lij4LiH4Lir4Li54Lir4LiZ4Li5CivguYHguJvguKPguI3guLHguJXguJXguLQKK+C5geC4m+C4o+C5iuC4lAor4LmB4Lib4Lij4LiY4Liy4LiV4Li4CivguYHguJvguKPguYnguJkKK+C5geC4m+C4o+C5ieC4meC5geC4m+C4o+C5iwor4LmB4Lib4Lij4Lib4Lij4Lin4LiZCivguYHguJvguKPguJvguLLguIHguKvguKXguLLguIHguITguLMKK+C5geC4m+C4o+C5i+C5geC4m+C4o+C5ieC4mQor4LmB4Lib4Lij4Lic4Lix4LiZCivguYHguJvguKPguJzguLHguJnguYLguJTguKLguJXguKPguIcKK+C5geC4m+C4o+C4nOC4seC4meC5geC4muC4muC4nOC4geC4nOC4seC4mQor4LmB4Lib4Lij4Lie4Lix4LiB4LiV4Lij4LmMCivguYHguJvguKPguKPguLnguJsKK+C5geC4m+C4o+C4reC4seC4geC4qeC4owor4LmB4Lib4Lij4LiwCivguYHguJvguKUKK+C5geC4m+C4peC5iQor4LmB4Lib4Lil4LiBCivguYHguJvguKXguIHguJvguKXguK3guKEKK+C5geC4m+C4peC4hwor4LmB4Lib4Lil4LiH4LiK4Liy4LiV4Li0CivguYHguJvguKXguIfguJzguLUKK+C5geC4m+C4peC4h+C4quC4seC4jeC4iuC4suC4leC4tAor4LmB4Lib4Lil4LiV4Liy4Lih4LmA4LiZ4Li34LmJ4Lit4LiE4Lin4Liy4LihCivguYHguJvguKXguJXguLLguKHguJ7guKLguLHguI3guIrguJnguLAKK+C5geC4m+C4peC4leC4suC4oeC4reC4o+C4o+C4lgor4LmB4Lib4Lil4LiZCivguYHguJvguKXguJoKK+C5geC4m+C4peC4ouC4geC4qOC4seC4nuC4l+C5jAor4LmB4Lib4Lil4Lij4LmJ4Lit4LiiCivguYHguJvguYnguKcKK+C5geC4m+C5iuC4pwor4LmB4Lib4LiwCivguYHguJvguYrguLAKK+C5geC4m+C5iuC4sOC4i+C4sAor4LmC4LibCivguYLguJvguYgKK+C5guC4m+C5iQor4LmC4Lib4LmKCivguYLguJvguIEKK+C5guC4m+C5iuC4gQor4LmC4Lib4LmK4LiB4LmA4LiB4Lit4Lij4LmMCivguYLguJvguIHguILguKMtCivguYLguJvguIHguILguKPguJPguLUKK+C5guC4m+C4geC4guC4o+C4nuC4o+C4o+C4qQor4LmC4Lib4LiB4LizCivguYLguJvguYDguIEKK+C5guC4m+C4hwor4LmC4Lib4LmI4LiHCivguYLguJvguYnguIcKK+C5guC4m+C5iOC4h+C4guC5iOC4suC4oQor4LmC4Lib4LmI4LiH4LiU4Li04LiZCivguYLguJvguYjguIfguJnguYnguLMKK+C5guC4m+C5ieC4h+C5gOC4m+C5ieC4hwor4LmC4Lib4LmJ4LiH4LmC4Lii4LmJ4LiHCivguYLguJvguIfguKXguLLguIcKK+C5guC4m+C5ieC4h+C5guC4peC5ieC4hwor4LmC4Lib4LmI4LiH4Lin4Li04LiUCivguYLguJvguYnguIfguYLguKvguKLguIcKK+C5guC4m+C4kOC4muC4lwor4LmC4Lib4LiQ4Lib4LiX4Lih4Liy4LiqCivguYLguJvguJTguIEKK+C5guC4m+C4leC4luC4geC4sAor4LmC4Lib4LiZCivguYLguJvguYnguJvguJQKK+C5guC4m+C5iuC4ouC5gOC4i+C4teC4ouC4mQor4LmC4Lib4Lij4LiHCivguYLguJvguKPguYjguIcKK+C5guC4m+C4o+C5iOC4h+C5gOC4m+C4o+C5iOC4hwor4LmC4Lib4Lij4LmI4LiH4Lif4LmJ4LiyCivguYLguJvguKPguYjguIfguYHguKrguIcKK+C5guC4m+C4o+C5iOC4h+C5g+C4qgor4LmC4Lib4Lij4LiUCivguYLguJvguKPguJTguJvguKPguLLguJkKK+C5guC4m+C4o+C4lOC4quC4seC4leC4p+C5jAor4LmC4Lib4Lij4LiU4Liq4Lix4LiV4Lin4LmM4LmE4LiU4LmJ4Lia4Liy4LibCivguYLguJvguKPguJXguK3guJkKK+C5guC4m+C4o+C4leC4teC4mQor4LmC4Lib4Lij4LmA4LiV4Liq4LmB4LiV4LiZ4LiV4LmMCivguYLguJvguKPguKIKK+C5guC4m+C4o+C4ouC4m+C4o+C4suC4ogor4LmC4Lib4Lij4Li14Liq4Lig4LiyCivguYLguJvguKXguYjguIcKK+C5guC4m+C4peC4tOC5guC4rQor4LmC4Lib4LiqCivguYLguJvguKrguIEKK+C5guC4m+C4quC4suC4p+C4meC4tOC4geC4oeC4ueC4pQor4LmC4Lib4LiwCivguYLguJvguYrguLAKK+C5guC4m+C5iuC4sOC4iOC5ieC4suC4ogor4LmE4LibCivguYTguJvguYgKK+C5hOC4m+C5iwor4LmE4Lib4LiE4LmJ4Liy4LiW4LmI4Liy4LiZCivguYTguJvguJXguLLguKLguYDguK3guLLguJTguLLguJrguKvguJnguYnguLIKK+C5hOC4m+C4l+C4uOC5iOC4hwor4LmE4Lib4LmGIOC4oeC4suC5hgor4LmE4Lib4LiiLQor4LmE4Lib4Lii4Liy4LilCivguYTguJvguKPguKnguJPguLXguKItCivguYTguJvguKPguKnguJPguLXguKLguYwKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC4meC4tOC5gOC4l+C4qAor4LmE4Lib4Lij4Lip4LiT4Li14Lii4Lia4Lij4Lij4LiTCivguYTguJvguKPguKnguJPguLXguKLguJrguLHguJXguKMKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC4oOC4seC4k+C4keC5jAor4LmE4Lib4Lij4Lip4LiT4Li14Lii4LmM4Lij4Lix4Lia4Lij4Lit4LiHCivguYTguJvguKPguKnguJPguLXguKLguKfguLHguJXguJbguLgKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC4suC4geC4owor4LmE4Lib4Lil4LmICivguYTguJvguKXguYjguJvguKXguLTguKcKK+C5hOC4m+C4peC4suC4lAor4LmE4Lib4Lin4Lix4LiU4LmE4Lib4Lin4Liy4LmE4LiU4LmJCivguYTguJvguKjguLLguIgKK+C5hOC4m+C5hOC4q+C4meC4oeC4suC4quC4suC4oeC4p+C4suC4quC4reC4h+C4qOC4reC4gQor4LmE4Lib4Lit4Lii4LmI4Liy4LiH4LiZ4LmJ4Liz4LiC4Li44LmI4LiZ4LmGCivguJwKK+C4nOC4gQor4Lic4LiB4Lic4LiH4LiBCivguJzguIHguJzguLHguJkKK+C4nOC4geC5gOC4o+C4t+C4reC4gQor4Lic4LiB4LiyCivguJzguIHguLLguIHguKPguK3guIcKK+C4nOC4geC4suC4ogor4Lic4LiB4Liy4Lij4Liy4LiiCivguJzguITguKEKK+C4nOC4hwor4Lic4LiH4LiBCivguJzguIfguILguLLguKcKK+C4nOC4h+C5gOC4guC5ieC4suC4leC4suC4leC4seC4p+C5gOC4reC4hwor4Lic4LiH4LiE4Lil4Li1CivguJzguIfguIrguLnguKPguKoKK+C4nOC4h+C4i+C4seC4geC4n+C4reC4gQor4Lic4LiH4Lif4Li5CivguJzguIfguKEKK+C4nOC4h+C4owor4Lic4LiH4Lit4LiZCivguJzguIfguK3guJoKK+C4nOC4h+C4sAor4Lic4LiH4Liy4LiUCivguJzguIfguYjguLLguJkKK+C4nOC4iOC4hwor4Lic4LiI4LiNCivguJzguIjguLHguI0KK+C4nOC4iOC4suC4mQor4Lic4LiK4Li44LihCivguJzguJPguLTguJkKK+C4nOC4k+C4tOC4meC4l+C4owor4Lic4LiT4Li04LiZ4LiX4Lij4Liq4Lih4Lie4Lix4LiV4Liq4LijCivguJzguJPguLTguKjguKfguKMKK+C4nOC4lAor4Lic4LiU4Li44LiHCivguJzguJTguLjguIfguITguKPguKPguKDguYwKK+C4nOC5gOC4lOC4tOC4mQor4Lic4LiX4LihCivguJzguJfguKHguYDguJ7guKXguLTguIcKK+C4nOC4meC4p+C4gQor4Lic4LiZ4Lin4LiKCivguJzguJnguLHguIcKK+C4nOC4meC4tOC4lAor4Lic4LiZ4Li24LiBCivguJzguKEKK+C4nOC4oeC4iuC4tOC4h+C5gOC4geC4tOC4pQor4Lic4Lih4LiX4Lij4LiH4Lih4Lir4Liy4LiU4LmE4LiX4LiiCivguJzguKHguJfguLHguJQKK+C4nOC4oeC4meC4suC4hwor4Lic4Lih4Lia4LmK4Lit4LiaCivguJzguKHguJvguLXguIEKK+C4nOC4oeC5gOC4m+C5iwor4Lic4Lih4LmA4Lib4Li14LiiCivguJzguKHguYLguJvguYjguIcKK+C4nOC4oeC5hOC4nwor4Lic4Lih4Lih4Lir4Liy4LiU4LmE4LiX4LiiCivguJzguKHguKHguYnguLIKK+C4nOC4oeC4q+C4peC4seC4geC5geC4iOC4pwor4Lic4Lii4Lit4LiHCivguJzguKLguYjguLPguYDguJzguKLguK0KK+C4nOC4o+C4ky0KK+C4nOC4o+C4k+C4suC4m+C4teC4leC4tAor4Lic4Lij4Liq4Li4CivguJzguKPguLTguJUKK+C4nOC4o+C4tOC4lS0KK+C4nOC4o+C4uOC4nuC4gQor4Lic4Lij4Li44LiqLQor4Lic4Lij4Li44Liq4Lin4Liy4LiXCivguJzguKUKK+C4nOC4peC4gQor4Lic4Lil4LiE4Li44LiZCivguJzguKXguITguLjguJnguLUKK+C4nOC4peC4hOC4uOC4meC4teC4muC4ueC4o+C4nuC4oeC4suC4qgor4Lic4Lil4LiHCivguJzguKXguJ7guKXguK3guKLguYTguJTguYkKK+C4nOC4peC4peC4seC4nuC4mOC5jAor4Lic4Lil4LitCivguJzguKXguYfguK3guIcKK+C4nOC4peC5h+C4reC4ogor4Lic4Lil4LiwCivguJzguKXguLHguIEKK+C4nOC4peC4seC4lAor4Lic4Lil4Lix4LiU4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguJzguKXguLHguJTguYHguJzguYjguJnguJTguLTguJkKK+C4nOC4peC4seC4mgor4Lic4Lil4Lix4Lin4LiwCivguJzguKXguLIKK+C4nOC4peC4suC4jQor4Lic4Lil4Liy4LiZ4Li04Liq4LiH4Liq4LmMCivguJzguKXguLLguJzguKUKK+C4nOC4peC4suC4q+C4suC4owor4Lic4Lil4Li0CivguJzguKXguLTguIEtCivguJzguKXguLTguIHguKjguLTguILguKPguLUKK+C4nOC4peC4tOC4geC4qOC4tOC4peC4sgor4Lic4Lil4Li04LiB4LiwCivguJzguKXguLTguJUKK+C4nOC4peC4tOC4lS0KK+C4nOC4peC4tOC4leC4geC4o+C4o+C4oQor4Lic4Lil4Li04LiV4Lic4LilCivguJzguKXguLTguJXguKDguLHguJPguJHguYwKK+C4nOC4peC4tOC4mQor4Lic4Lil4Li1CivguJzguKXguLXguJzguKXguLLguKEKK+C4nOC4peC4tuC4gQor4Lic4Lil4Li24LmI4LiHCivguJzguKXguLfguK0KK+C4nOC4peC4uAor4Lic4Lil4Li44LiHCivguJzguKXguLjguJQKK+C4nOC4peC4uOC4mQor4Lic4Lil4Li44LiZ4Lic4Lil4Lix4LiZCivguJzguKXguLjguJoKK+C4nOC4peC4uOC4muC4nOC4peC4seC4mgor4Lic4Lil4Li44Lia4LmC4Lic4Lil4LmICivguJzguKXguLjguJrguYYg4LmC4Lic4Lil4LmI4LmGCivguJzguKXguLjguKIKK+C4nOC4peC4uQor4Lic4Lil4Li54Lia4LiUCivguJzguKXguLnguYHguJrguIEKK+C4nOC4p+C4mQor4Lic4Lin4LiiCivguJzguKfguLIKK+C4nOC4quC4oQor4Lic4Liq4Lih4LmA4LiX4Li14Lii4LihCivguJzguKrguKHguJzguKrguLLguJkKK+C4nOC4quC4oeC4nOC5gOC4qgor4Lic4Liq4Lih4Lie4Lix4LiZ4LiY4Li44LmMCivguJzguKrguKHguYLguKPguIcKK+C4nOC4quC4oeC5gOC4quC4o+C5h+C4iAor4Lic4Liq4Liy4LiZCivguJzguKrguLLguKIKK+C4nOC4quC4suC4owor4Lic4Lit4LiBCivguJzguK3guIcKK+C4nOC5iOC4reC4hwor4Lic4LmI4Lit4LiH4LmB4Lic4LmJ4LinCivguJzguYjguK3guIfguYPguKoKK+C4nOC4reC4lAor4Lic4LmI4Lit4LiZCivguJzguYjguK3guJnguITguKXguLLguKIKK+C4nOC5iOC4reC4meC4iuC4s+C4o+C4sAor4Lic4LmI4Lit4LiZ4Lib4Lij4LiZCivguJzguYjguK3guJnguJzguLHguJkKK+C4nOC5iOC4reC4meC4quC5iOC4hwor4Lic4LmI4Lit4LiZ4Liq4Lix4LmJ4LiZ4Lic4LmI4Lit4LiZ4Lii4Liy4LinCivguJzguYjguK3guJnguKvguJnguLHguIHguYDguJvguYfguJnguYDguJrguLIKK+C4nOC4reC4mgor4Lic4Lit4LihCivguJzguK3guKHguYDguIHguKPguYfguIcKK+C4nOC4reC4oeC5guC4iwor4Lic4Lit4Lih4LmB4Lir4LmJ4LiHCivguJzguYfguK3guKIKK+C4nOC5iOC4reC4ogor4Lic4Lit4Lin4LiUCivguJzguK3guLnguJkKK+C4nOC4sAor4Lic4Liw4LmB4LiE4LiHCivguJzguLDguJTguLIKK+C4nOC4sOC4quC4sgor4Lic4Liw4Lit4Lit4LiaCivguJzguLHguIEKK+C4nOC4seC4geC5hOC4gQor4Lic4Lix4LiB4LiC4Lin4LiHCivguJzguLHguIHguILguLXguYnguILguKfguIcKK+C4nOC4seC4geC5guC4ieC4oQor4Lic4Lix4LiB4LiK4Li1CivguJzguLHguIHguIrguLXguYLguKPguKLguKvguJnguYnguLIKK+C4nOC4seC4geC4leC4muC4iuC4p+C4sgor4Lic4Lix4LiB4LiV4LmJ4Lih4LiC4LiZ4Lih4Lii4LizCivguJzguLHguIHguJfguK3guJTguKLguK3guJQKK+C4nOC4seC4geC4muC4uOC5ieC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiC4Lix4LiZCivguJzguLHguIHguJrguLjguYnguIfguIjguLXguJkKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4l+C4sOC5gOC4pQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lid4Lij4Lix4LmI4LiHCivguJzguLHguIHguJrguLjguYnguIfguKPguYnguKfguKEKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4o+C4seC5ieC4pwor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4LiiCivguJzguLHguIHguYDguJrguLXguYnguKLguYPguKvguI3guYgKK+C4nOC4seC4geC4m+C4peC4seC4hwor4Lic4Lix4LiB4Lib4Li44LmI4Lih4Lib4Lil4LiyCivguJzguLHguIHguYDguJzguYfguJQKK+C4nOC4seC4geC5hOC4nOC5iAor4Lic4Lix4LiB4Lij4Li54LmJ4LiZ4Lit4LiZCivguJzguLHguIHguYHguKfguYjguJkKK+C4nOC4seC4geC4quC4suC4mgor4Lic4Lix4LiB4Liq4Liy4Lih4Lir4Liy4LinCivguJzguLHguIHguYDguKrguLXguYnguKLguJkKK+C4nOC4seC4geC4q+C4meC4reC4gQor4Lic4Lix4LiB4Lir4LiZ4Lit4LiHCivguJzguLHguIHguKvguJnguLLguKEKK+C4nOC4seC4geC4q+C4p+C4suC4mQor4Lic4Lix4LiB4Lir4Lin4Liy4LiZ4Lia4LmJ4Liy4LiZCivguJzguLHguIHguKvguKfguLLguJnguJvguYjguLIKK+C4nOC4seC4geC5hOC4q+C4oQor4Lic4Lix4LiB4Lit4Li14LmB4Lib4LiwCivguJzguLHguITguITguLjguJMKK+C4nOC4seC4hOC4hOC4uOC4ky0KK+C4nOC4seC4hOC4hOC4uOC4k+C4oeC4suC4qgor4Lic4Lix4LiE4LiE4Li44LiT4Li1CivguJzguLHguIcKK+C4nOC4seC4h+C5gOC4oeC4t+C4reC4hwor4Lic4Lix4LiUCivguJzguLHguJTguYDguIjguYnguLLguKXguYjguK0KK+C4nOC4seC4lOC4iuC5ieC4suC4hwor4Lic4Lix4LiU4Lic4LmI4Lit4LiZCivguJzguLHguJTguJzguLHguJkKK+C4nOC4seC4lOC5gOC4nuC4teC5ieC4ouC4mQor4Lic4Lix4LiU4Lin4Lix4LiZ4Lib4Lij4Liw4LiB4Lix4LiZ4Lie4Lij4Li44LmI4LiHCivguJzguLHguJkKK+C4nOC4seC4meC5geC4m+C4owor4Lic4Lix4LiZ4Lic4Lii4Lit4LiHCivguJzguLHguJnguJzguKfguJkKK+C4nOC4seC4meC4nOC5iOC4reC4mQor4Lic4Lix4LiZ4Lic4Liy4LiUCivguJzguLHguJnguJzguLLguKIKK+C4nOC4seC4meC4q+C4oeC5ieC4rQor4Lic4Lix4LiZ4Lit4Lix4LiB4Lip4LijCivguJzguLHguJoKK+C4nOC4seC4muC5hgor4Lic4Lix4Lil4LiE4Li44LiZ4Li1CivguJzguLHguKcKK+C4nOC4seC4p+C4q+C4suC4muC5gOC4oeC4teC4ouC4hOC4reC4mQor4Lic4Lix4Lin4LiwCivguJzguLHguKrguKotCivguJzguLHguKrguKrguLAKK+C4nOC4seC4quC4quC4suC4q+C4suC4owor4Lic4LiyCivguJzguYjguLIKK+C4nOC5ieC4sgor4Lic4Liy4LiBCivguJzguLLguIHguYHguJzguYnguIcKK+C4nOC5ieC4suC4geC4o+C4suC4mgor4Lic4LmJ4Liy4LmA4LiB4Li14LmJ4Lii4LinCivguJzguYnguLLguILguLLguKfguKHguYnguLIKK+C4nOC5ieC4suC4guC4teC5ieC4o+C4tOC5ieC4pwor4Lic4LmJ4Liy4LiC4Li14LmJ4Lij4Li04LmJ4Lin4Lir4LmI4Lit4LiX4Lit4LiHCivguJzguLLguIcKK+C4nOC5ieC4suC5gOC4iuC5h+C4lOC4leC4seC4pwor4Lic4LmJ4Liy4LmA4LiK4LmH4LiU4Lir4LiZ4LmJ4LiyCivguJzguLLguJPguLTguJUKK+C4nOC4suC4lAor4Lic4Liy4LiU4Lic4Lix4LiHCivguJzguLLguJTguYHguJzguKXguIcKK+C4nOC4suC4lOC5guC4nOC4mQor4Lic4Liy4LiU4LmA4Lie4LmI4LiHCivguJzguLLguJTguLMKK+C4nOC5ieC4suC4lOC4swor4Lic4LmJ4Liy4LiU4Li04LiaCivguJzguYnguLLguYHguJTguIcKK+C4nOC5ieC4suC4leC4sgor4Lic4Liy4LiV4Li0CivguJzguLLguJXguLTguIHguKPguKPguKEKK+C4nOC5ieC4suC4luC4uOC4hwor4Lic4LmJ4Liy4LmB4LiW4LiaCivguJzguYnguLLguJfguLTguJ7guKLguYwKK+C4nOC5ieC4suC5gOC4l+C4qAor4Lic4LmI4Liy4LiZCivguJzguYnguLLguJnguLjguYjguIcKK+C4nOC5ieC4suC5g+C4mgor4Lic4LmJ4Liy4LmD4Lia4LiB4Lil4Lit4LiiCivguJzguYnguLLguYPguJrguYDguKHguLXguYjguKLguIcKK+C4nOC5ieC4suC4m+C5iOC4sgor4Lic4LmJ4Liy4Lic4LmI4Lit4LiZCivguJzguYjguLLguYDguJzguKIKK+C4nOC4suC5gOC4nOC4t+C4reC4gQor4Lic4LmJ4Liy4LmB4Lid4LiHCivguJzguYnguLLguJ7guLHguJnguITguK0KK+C4nOC5ieC4suC4nuC4seC4meC5geC4nOC4pQor4Lic4LmJ4Liy4Lie4Li34LmJ4LiZCivguJzguLLguKEKK+C4nOC5ieC4suC4oeC4seC4lOC4q+C4oeC4teC5iAor4Lic4Liy4LiiCivguJzguYjguLLguKIKK+C4nOC5ieC4suC4ogor4Lic4Liy4Lii4Lib4Lit4LiUCivguJzguYjguLLguKLguJzguK3guKEKK+C4nOC4suC4ouC4nOC4seC4hwor4Lic4Liy4Lii4Lic4Lix4LiZCivguJzguLLguKLguKXguKEKK+C4nOC5ieC4suC4ouC4suC4hwor4Lic4Liy4LilCivguJzguLLguKXguITguLjguJkKK+C4nOC4suC4peC4sgor4Lic4Liy4Lil4Liy4LmA4Lie4Li14Lii4LiH4LmE4Lir4Lil4LmICivguJzguYnguLLguKXguLLguKIKK+C4nOC5ieC4suC4peC4ueC4geC5hOC4oeC5iQor4Lic4LmI4Liy4LinCivguJzguLLguKrguLLguKHguYDguKrguYnguLIKK+C4nOC5ieC4suC4quC4s+C4peC4tQor4Lic4Liy4Liq4Li44LiBCivguJzguYjguLLguKvguKHguLLguIEKK+C4nOC4suC4q+C4reC4oQor4Lic4LmJ4Liy4Lir4LmJ4Lit4Lii4Lir4LitCivguJzguYjguLLguYDguKvguKXguYjguLIKK+C4nOC5ieC4suC5gOC4q+C4peC4t+C4reC4hwor4Lic4LmJ4Liy4LmA4Lir4Lil4Li34Lit4LiH4Lij4LmJ4Lit4LiZCivguJzguYnguLLguYTguKvguKfguYkKK+C4nOC5ieC4suC4reC4meC4suC4oeC4seC4ogor4Lic4LmJ4Liy4Lit4LmJ4Lit4LihCivguJzguYnguLLguK3guLLguJoKK+C4nOC5ieC4suC4ruC4suC4lAor4Lic4LizCivguJzguYnguLPguYYKK+C4nOC4tAor4Lic4Li04LiHCivguJzguLTguJQKK+C4nOC4tOC4lOC4gQor4Lic4Li04LiU4LmD4LiICivguJzguLTguJTguJXguLIKK+C4nOC4tOC4lOC4l+C5iOC4sgor4Lic4Li04LiU4LiZ4Lix4LiBCivguJzguLTguJTguJnguLHguJQKK+C4nOC4tOC4lOC4meC5ieC4swor4Lic4Li04LiU4Lib4Lij4Liw4Lir4Lil4Liy4LiUCivguJzguLTguJTguJzguLUKK+C4nOC4tOC4lOC4nOC4ueC5ieC4nOC4tOC4lOC4hOC4mQor4Lic4Li04LiU4LmB4Lic4LiBCivguJzguLTguJTguJ3guLLguJzguLTguJTguJXguLHguKcKK+C4nOC4tOC4lOC4nuC5ieC4reC4h+C4q+C4oeC4reC4h+C5g+C4iAor4Lic4Li04LiU4LmA4Lie4Li14LmJ4Lii4LiZCivguJzguLTguJTguYDguKHguLXguKIKK+C4nOC4tOC4lOC4o+C4ueC4m+C4nOC4tOC4lOC4o+C5iOC4suC4hwor4Lic4Li04LiU4Liq4Lix4LiH4LmA4LiB4LiVCivguJzguLTguJTguKrguLPguYHguKXguIcKK+C4nOC4tOC4lOC5gOC4quC5ieC4mQor4Lic4Li04LiU4Lir4Lin4Lix4LiHCivguJzguLTguJTguKvguLkKK+C4nOC4tOC4lOC4q+C4ueC4nOC4tOC4lOC4leC4sgor4Lic4Li04LiVCivguJzguLTguJkKK+C4nOC4tOC4meC4q+C4peC4seC4h+C5g+C4q+C5iQor4Lic4Li04LinCivguJzguLTguKfguJnguYnguLMKK+C4nOC4tOC4p+C4muC4suC4hwor4Lic4Li04Lin4Lib4Liy4LiBCivguJzguLTguKfguYDguJzguLTguJkKK+C4nOC4tOC4p+C4nuC4o+C4o+C4kwor4Lic4Li04Lin4Lir4LiZ4Lix4LiHCivguJzguLTguKfguYjguLIKK+C4nOC4tQor4Lic4Li14LmA4LiC4LmJ4Liy4Lic4Li14Lit4Lit4LiBCivguJzguLXguIvguYnguLPguJTguYnguLPguJ7guKXguK3guKIKK+C4nOC4teC4lOC4tOC4mgor4Lic4Li14LiVCivguJzguLXguJXguK3guIfguYDguKvguKXguLfguK3guIcKK+C4nOC4teC4leC4suC4geC4nOC5ieC4suC4reC5ieC4reC4oQor4Lic4Li14LiW4LmJ4Lin4Lii4LmB4LiB4LmJ4LinCivguJzguLXguJbguLbguIfguJvguYjguLLguIrguYnguLIKK+C4nOC4teC4muC5ieC4suC4meC5hOC4oeC5iOC4lOC4tSDguJzguLXguJvguYjguLLguIHguYfguJ7guKXguK3guKIKK+C4nOC4teC4muC4uOC4jQor4Lic4Li14Lie4Li44LmI4LiH4LmE4LiV4LmJCivguJzguLXguYDguJ7guKXguLXguKIKK+C4nOC4teC4n+C5ieC4sgor4Lic4Li14LmE4Lih4LmI4Lih4Li14Lio4Liy4LilCivguJzguLXguYDguKPguLfguK3guJkKK+C4nOC4teC5gOC4o+C4t+C4reC4meC5hOC4oeC5iOC4lOC4tSDguJzguLXguJvguYjguLLguIHguYfguJ7guKXguK3guKIKK+C4nOC4teC5ieC4p+C5jAor4Lic4Li14LmA4Liq4Li34LmJ4LitCivguJzguLXguYDguKrguLfguYnguK3guYDguIfguLTguJkKK+C4nOC4teC5gOC4quC4t+C5ieC4reC4meC5ieC4reC4ogor4Lic4Li14LmA4Liq4Li34LmJ4Lit4LiZ4LmJ4LizCivguJzguLXguYDguKrguLfguYnguK3guKLguLHguIHguKnguYwKK+C4nOC4teC4q+C4peC4reC4gQor4Lic4Li14Lit4LizCivguJzguLbguIcKK+C4nOC4tuC5iOC4hwor4Lic4Li24LmJ4LiHCivguJzguLbguYjguIfguJzguLLguKIKK+C4nOC4tuC5ieC4h+C4o+C4p+C4hwor4Lic4Li34LiZCivguJzguLfguYjguJkKK+C4nOC4uAor4Lic4Li44LiUCivguJzguLjguJTguJzguYjguK3guIcKK+C4nOC4uOC4lOC4nOC4suC4lAor4Lic4Li44LiU4Lic4Liy4LiiCivguJzguLjguJTguJzguYnguLLguKIKK+C4nOC4uOC4lOC4peC4uOC4geC4nOC4uOC4lOC4meC4seC5iOC4hwor4Lic4Li44Lii4Lic4LiHCivguJzguLjguKrguKPguLLguITguLIKK+C4nOC4ueC5iQor4Lic4Li54LiBCivguJzguLnguIHguIHguKPguLDguYTguJQKK+C4nOC4ueC4geC4guC4p+C4seC4jQor4Lic4Li54LiB4LiC4Liy4LiUCivguJzguLnguIHguJTguKfguIcKK+C4nOC4ueC4geC4lOC4reC4gQor4Lic4Li54LiB4Lie4Lix4LiX4LiY4Liq4Li14Lih4LiyCivguJzguLnguIHguJ7guLHguJkKK+C4nOC4ueC4geC4oOC4suC4qeC4tQor4Lic4Li54LiB4Lih4Lix4LiUCivguJzguLnguYnguIHguKfguYnguLLguIfguILguKfguLLguIcKK+C4nOC4ueC4geC4q+C4uQor4Lic4Li54LmJ4LiB4LmI4Lit4LiB4Liy4Lij4Lij4LmJ4Liy4LiiCivguJzguLnguYnguITguJkKK+C4nOC4ueC5ieC4iOC4seC4lOC4geC4suC4owor4Lic4Li54LmJ4LiK4Liy4LiiCivguJzguLnguYnguIrguLLguKLguJ7guLLguKLguYDguKPguLfguK0KK+C4nOC4ueC5ieC4iuC4s+C4meC4suC4jeC4geC4suC4o+C4nuC4tOC5gOC4qOC4qQor4Lic4Li54LmJ4LmA4LiK4Li14LmI4Lii4Lin4LiK4Liy4LiNCivguJzguLnguYnguI3guLLguJMKK+C4nOC4ueC5ieC4lOC4tQor4Lic4Li54LmJ4LiU4Li14LmB4Lib4LiU4Liq4Liy4LmB4Lir4Lij4LiBCivguJzguLnguYnguYLguJTguKLguKrguLLguKMKK+C4nOC4ueC5ieC4leC5ieC4reC4h+C4guC4seC4hwor4Lic4Li54LmJ4LiV4LmJ4Lit4LiH4Lir4LiyCivguJzguLnguYnguJfguKPguIcKK+C4nOC4ueC5ieC5geC4l+C4meC5gOC4ieC4nuC4suC4sOC4hOC4lOC4tQor4Lic4Li54LmJ4LmB4LiX4LiZ4LmC4LiU4Lii4LiK4Lit4Lia4LiY4Lij4Lij4LihCivguJzguLnguYnguYHguJfguJnguKPguLLguKnguI7guKMKK+C4nOC4ueC5ieC5hOC4l+C4ogor4Lic4Li54LmJ4LiZ4LmJ4Lit4LiiCivguJzguLnguYnguYDguJvguYfguJnguKvguLjguYnguJnguKrguYjguKfguJkKK+C4nOC4ueC5ieC4nuC4tOC4l+C4seC4geC4qeC5jOC4quC4seC4meC4leC4tOC4o+C4suC4qeC4juC4o+C5jAor4Lic4Li54LmJ4LmA4Lii4Liy4Lin4LmMCivguJzguLnguYnguKPguLHguYnguIcKK+C4nOC4ueC5ieC4o+C4seC4muC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4Lic4Li54LmJ4Lij4Lix4Lia4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguJzguLnguYnguKPguLHguJrguYDguKPguLfguK3guJkKK+C4nOC4ueC5ieC4o+C4seC4muC5gOC4q+C4oeC4suC4geC5iOC4reC4quC4o+C5ieC4suC4hwor4Lic4Li54LmJ4Lij4LmJ4Liy4LiiCivguJzguLnguYnguKXguLLguIHguKHguLLguIHguJTguLUKK+C4nOC4ueC5ieC4p+C4tOC5gOC4qOC4qQor4Lic4Li54LmJ4Liq4Liz4LmA4Lij4LmH4LiICivguJzguLnguYnguKrguLfguJrguJXguKPguLDguIHguLnguKUKK+C4nOC4ueC5ieC4quC4t+C4muC4quC4seC4meC4lOC4suC4mQor4Lic4Li54LmJ4Liq4Li34LmI4Lit4LiC4LmI4Liy4LinCivguJzguLnguYnguYDguKrguLXguKLguKvguLLguKIKK+C4nOC4ueC5ieC4q+C4jeC4tOC4hwor4Lic4Li54LmJ4Lir4LiN4Li04LiH4Lii4Li04LiH4LmA4Lij4Li34LitCivguJzguLnguYnguYPguKvguI3guYgKK+C4nOC4ueC5ieC5g+C4q+C4jeC5iOC4muC5ieC4suC4mQor4Lic4Li54LmJ4Lit4LiZ4Li44Lia4Liy4LilCivguJzguLnguYnguYDguK3guLLguJvguKPguLDguIHguLHguJnguKDguLHguKIKK+C5gOC4nAor4LmA4Lic4LiHCivguYDguJzguIrguLTguI0KK+C5gOC4nOC4iuC4tOC4jeC4oOC4seC4ogor4LmA4Lic4LiK4Li04LiN4Lir4LiZ4LmJ4LiyCivguYDguJzguYfguJQKK+C5gOC4nOC4lOC5h+C4iAor4LmA4Lic4LiU4LmH4LiI4LiB4Liy4LijCivguYDguJzguYfguJTguKPguYnguK3guJkKK+C5gOC4nOC4lOC4tOC4oQor4LmA4Lic4LiU4Li14Lii4LiHCivguYDguJzguJktCivguYDguJzguYjguJkKK+C5gOC4nOC4meC4mOC4o+C4o+C4oQor4LmA4Lic4LiZ4Li04LiBCivguYDguJzguKIKK+C5gOC4nOC4ouC5geC4nOC5iAor4LmA4Lic4Lii4LmB4Lie4Lij4LmICivguYDguJzguKLguK0KK+C5gOC4nOC4ouC4tOC4mgor4LmA4Lic4Lii4Li04Lia4Lic4Lii4Liy4LiaCivguYDguJzguKUKK+C5gOC4nOC4peC5iAor4LmA4Lic4Lil4LmJCivguYDguJzguKXguYfguJQKK+C5gOC4nOC4peC4rQor4LmA4Lic4Lil4Lit4LmE4Lic4LilCivguYDguJzguKXguLAKK+C5gOC4nOC4peC4suC4sAor4LmA4Lic4Lil4Liy4Liw4LmB4Lic4Lil4LiwCivguYDguJzguKXguLXguKLguIcKK+C5gOC4nOC4reC5gOC4o+C4rQor4LmA4Lic4Lit4LmA4Lij4Lit4LiB4Lij4Liw4LmA4LiK4Lit4LiB4LmJ4LiZ4Lij4Lix4LmI4LinCivguYDguJzguK3guLTguI0KK+C5gOC4nOC4reC4tOC4pQor4LmA4Lic4LiwCivguYDguJzguLIKK+C5gOC4nOC5iOC4sgor4LmA4Lic4LmJ4LiyCivguYDguJzguLLguILguJkKK+C5gOC4nOC4suC4iOC4o+C4tOC4hwor4LmA4Lic4LmJ4Liy4Lic4LiHCivguYDguJzguYjguLLguJ7guLHguJnguJjguLjguYwKK+C5gOC4nOC4suC4q+C4peC4reC4gQor4LmA4Lic4Liy4Lir4Lix4LinCivguYDguJzguLLguLAKK+C5gOC4nOC4tOC5ieC4hwor4LmA4Lic4Li04LiZCivguYDguJzguLTguJnguYYKK+C5gOC4nOC4teC4ouC4mQor4LmA4Lic4Li34LitCivguYDguJzguLfguYjguK0KK+C5gOC4nOC4t+C4reC4gQor4LmA4Lic4Li34Lit4LiB4LiB4Liw4Lil4LiyCivguYDguJzguLfguK3guIHguYLguJfguJvguYnguLLguJQKK+C5gOC4nOC4t+C5iOC4reC4guC4suC4lOC5gOC4nOC4t+C5iOC4reC5gOC4q+C4peC4t+C4rQor4LmA4Lic4Li34Lit4LiUCivguYDguJzguLfguK3guJkKK+C5gOC4nOC4t+C5iOC4reC4mQor4LmA4Lic4Li34LmI4Lit4LmB4Lic4LmICivguYDguJzguLfguYjguK3guKfguYjguLIKK+C5gOC4nOC4t+C5iOC4reC5gOC4q+C4meC4teC4ouC4pwor4LmA4Lic4Li34LmI4Lit4LmA4Lir4Lil4Li34Lit4LmA4Lic4Li34LmI4Lit4LiC4Liy4LiUCivguYHguJzguYgKK+C5geC4nOC4gQor4LmB4Lic4LmI4LiB4Lij4Liw4LiI4Liy4LiUCivguYHguJzguIcKK+C5geC4nOC4h+C4hOC4rQor4LmB4Lic4LiH4Lil4Lit4LiiCivguYHguJzguYjguYHguIfguYgKK+C5geC4nOC5iOC4i+C5iOC4suC4mQor4LmB4Lic4LiUCivguYHguJzguYjguJXguJkKK+C5geC4nOC4mQor4LmB4Lic4LmI4LiZCivguYHguJzguJnguIEKK+C5geC4nOC4meC4geC4suC4owor4LmB4Lic4LiZ4LiH4Liy4LiZCivguYHguJzguYjguJnguJTguLTguJkKK+C5geC4nOC5iOC4meC4lOC4tOC4meC4geC4peC4muC4q+C4meC5ieC4sgor4LmB4Lic4LmI4LiZ4LiU4Li04LiZ4LmE4Lir4LinCivguYHguJzguJnguJfguLXguYgKK+C5geC4nOC5iOC4meC4nOC4h+C4reC4mQor4LmB4Lic4LiZ4Lic4Lix4LiHCivguYHguJzguYjguJnguJ7guIEKK+C5geC4nOC5iOC4meC4oOC4ngor4LmB4Lic4LiZ4Lig4Liy4LieCivguYHguJzguJnguKDguLnguKHguLQKK+C5geC4nOC5iOC4meC5gOC4quC4teC4ouC4hwor4LmB4Lic4LmI4LmA4Lic4Li34LmI4LitCivguYHguJzguYjguYDguKHguJXguJXguLIKK+C5geC4nOC4pQor4LmB4Lic4Lil4LmA4LiB4LmI4LiyCivguYHguJzguKXguIcKK+C5geC4nOC4peC4h+C4pOC4l+C4mOC4tOC5jAor4LmB4Lic4Lil4LmH4LiaCivguYHguJzguKXguYfguJrguYYKK+C5geC4nOC4peC5gOC4m+C5h+C4mQor4LmB4Lic4Lil4Lij4Li04Lih4LmB4LiC4LmH4LiHCivguYHguJzguKXguKPguLTguKHguK3guYjguK3guJkKK+C5geC4nOC4peC5h+C4pwor4LmB4Lic4Lil4LiwCivguYHguJzguYjguKcKK+C5geC4nOC5iOC4p+C5hgor4LmB4Lic4LmJ4LinCivguYHguJzguYnguKfguJ7guLLguJkKK+C5geC4nOC5iOC4quC4reC4h+C4quC4peC4tuC4hwor4LmB4Lic4LmI4Lir4Lil4LiyCivguYHguJzguYjguK3guLPguJnguLLguIgKK+C5guC4nAor4LmC4Lic4LiHCivguYLguJzguIfguJzguLLguIcKK+C5guC4nOC4h+C5gOC4nOC4hwor4LmC4Lic4LiP4LiQ4Lix4LieLQor4LmC4Lic4LiP4LiQ4Lix4Lie4LiY4Lij4Lij4LihCivguYLguJzguI/guJDguLHguJ7guJ7guLAKK+C5guC4nOC4mQor4LmC4Lic4LmA4LicCivguYLguJzguKIKK+C5guC4nOC4peC5iAor4LmC4Lic4Lil4LiB4LmA4Lic4Lil4LiBCivguYLguJzguKXguLAKK+C5guC4nOC4reC4mQor4LmC4Lic4LiwCivguYTguJwKK+C5hOC4nOC5iAor4LmE4Lic4LiXCivguYTguJzguJfguYLguIHguKPguKEKK+C5hOC4nOC5iOC4nOC4seC4hwor4LidCivguJ3guJkKK+C4neC4meC4iuC4sOC4iuC5iOC4reC4oeC4sOC4oeC5iOC4p+C4hwor4Lid4LiZ4LiK4Liw4Lil4Liy4LiZCivguJ3guJnguIvguLnguYgKK+C4neC4meC4leC4geC4geC5h+C5geC4iuC5iOC4hyDguJ3guJnguYHguKXguYnguIfguIHguYfguJTguYjguLIKK+C4neC4meC4leC4geC4guC4teC5ieC4q+C4oeC4ueC5hOC4q+C4pQor4Lid4LiZ4LiV4LiB4LmE4Lih4LmI4LiX4Lix4LmI4Lin4Lif4LmJ4LiyCivguJ3guJnguJXguIHguYTguKHguYjguKHguLXguYDguITguYnguLIKK+C4neC4meC4leC4geC4reC4ouC5iOC4suC5gOC4iuC4t+C5iOC4reC4lOC4suC4pwor4Lid4LiZ4LiX4Lit4LiHCivguJ3guJnguJfguLHguYjguIfguYPguKvguYnguYDguJvguYfguJnguYDguILguYfguKEKK+C4neC4meC5gOC4l+C4teC4ouC4oQor4Lid4LiZ4LmE4Lil4LmI4LiK4LmJ4Liy4LiHCivguJ3guJnguKrguLHguYjguIfguJ/guYnguLIKK+C4neC4meC4quC4seC5iOC4h+C4n+C5ieC4siDguJvguKXguLLguKrguLHguYjguIfguKvguJnguK3guIcKK+C4neC4meC5geC4quC4meC4q+C5iOC4sgor4Lid4LiZ4Lir4LmI4Liy4LmB4LiB4LmJ4LinCivguJ3guKPguLHguYjguIcKK+C4neC4o+C4seC5iOC4h+C4geC4seC4h+C5hOC4qgor4Lid4Lij4Lix4LmI4LiH4LiC4Li14LmJ4LiZ4LiBCivguJ3guKPguLHguYjguIfguKHguLHguIfguITguYjguLIKK+C4neC4o+C4seC5iOC4h+C5gOC4qOC4qgor4Lid4LmI4LitCivguJ3guK3guKIKK+C4neC4reC4ouC4l+C4reC4hwor4Lid4Lix4LiBCivguJ3guLHguIHguYHguIQKK+C4neC4seC4geC4luC4seC5iOC4pwor4Lid4Lix4LiB4Lia4Lix4LinCivguJ3guLHguIHguJ3guYjguLLguKIKK+C4neC4seC4geC5g+C4neC5iAor4Lid4Lix4LiB4Lie4Lij4LmJ4LiyCivguJ3guLHguIHguYDguJ7guIHguLIKK+C4neC4seC4geC4oeC4sOC4guC4suC4oQor4Lid4Lix4LiB4Lii4Liy4LinCivguJ3guLHguIcKK+C4neC4seC5iOC4hwor4Lid4Lix4LiH4LmA4LiC4LmH4LihCivguJ3guLHguIfguYPguIgKK+C4neC4seC5iOC4h+C4neC4sgor4Lid4Lix4LiH4Lij4LiB4Lid4Lix4LiH4Lij4Liy4LiBCivguJ3guLHguIfguKPguK3guKIKK+C4neC4seC4h+C4o+C4ueC4mwor4Lid4Lix4LiH4Lir4Lix4LinCivguJ3guLHguJQKK+C4neC4seC4mQor4Lid4Lix4LiZ4LiB4Lil4Liy4LiH4Lin4Lix4LiZCivguJ3guLHguJnguYDguJvguLXguKLguIEKK+C4neC4seC4meC5gOC4n+C4t+C5iOC4reC4hwor4Lid4LiyCivguJ3guYjguLIKK+C4neC5ieC4sgor4Lid4Liy4LiBCivguJ3guLLguIHguIHguK3guIcKK+C4neC4suC4geC4geC4suC4ogor4Lid4Liy4LiB4LmE4LiC4LmJCivguJ3guLLguIHguITguKPguKPguKDguYwKK+C4neC4suC4geC4leC4seC4pwor4Lid4Liy4LiB4LiX4LmJ4Lit4LiHCivguJ3guLLguIHguYDguJnguLfguYnguK3guJ3guLLguIHguJXguLHguKcKK+C4neC4suC4geC5gOC4meC4t+C5ieC4reC5hOC4p+C5ieC4geC4seC4muC5gOC4quC4t+C4rQor4Lid4Liy4LiB4Lia4Liz4LmA4Lij4LitCivguJ3guLLguIHguJvguKPguLDguIjguLMKK+C4neC4suC4geC4m+C4peC4suC5hOC4p+C5ieC4geC4seC4muC5geC4oeC4pwor4Lid4Liy4LiB4Lic4Li1CivguJ3guLLguIHguJzguLXguJ3guLLguIHguYTguILguYkKK+C4neC4suC4geC5gOC4nOC4t+C5iOC4reC5gOC4o+C4teC4ouC4gQor4Lid4Liy4LiB4Lid4Lix4LiHCivguJ3guLLguIHguKPguLDguJTguLLguJkKK+C4neC4suC4geC5guC4o+C4h+C5gOC4o+C4teC4ouC4mQor4Lid4Liy4LiB4LmE4Lin4LmJ4LiB4LmI4Lit4LiZCivguJ3guLLguIHguKrguLnguYgKK+C4neC5iOC4suC4hOC4oeC4q+C4reC4geC4hOC4oeC4lOC4suC4mgor4Lid4Liy4LiHCivguJ3guLLguIrguLUKK+C4neC4suC4lAor4Lid4Liy4LiZCivguJ3guYjguLLguJ3guLfguJkKK+C4neC4suC5geC4neC4lAor4Lid4LmI4Liy4Lie4Lij4Liw4Lia4Liy4LiXCivguJ3guYjguLLguJ/guLHguJkKK+C4neC5iOC4suC4oeC4o+C4quC4uOC4oQor4Lid4Liy4LiiCivguJ3guYjguLLguKIKK+C4neC5ieC4suC4ogor4Lid4LmI4Liy4Lii4LiC4Lin4LiyCivguJ3guYjguLLguKLguITguYnguLLguJkKK+C4neC5ieC4suC4ouC4hOC4swor4Lid4LmI4Liy4Lii4LiL4LmJ4Liy4LiiCivguJ3guYjguLLguKLguYPguJkKK+C4neC5iOC4suC4ouC5gOC4m+C5h+C4meC4geC4peC4suC4hwor4Lid4LmJ4Liy4Lii4Lic4Li1CivguJ3guYjguLLguKLguYDguKrguJnguK0KK+C4neC5iOC4suC4ouC4q+C4meC5ieC4sgor4Lid4Liy4Lil4Liw4Lih4Li1CivguJ3guLLguKrguLLguKLguJrguLHguKcKK+C4neC4suC4quC4s+C4q+C4o+C4p+C4lAor4Lid4Liy4LmA4Liq4Li14LmJ4Lii4LinCivguJ3guLLguKvguK3guKLguYLguILguYjguIcKK+C4neC4suC4q+C4uOC5ieC4oeC4geC4peC4reC4hwor4Lid4Liy4LmE4Lir4LilCivguJ3guLTguYjguJkKK+C4neC4tOC5iOC4meC4leC5ieC4mQor4Lid4Li1CivguJ3guLXguYgKK+C4neC4teC4gQor4Lid4Li14LiB4Liy4LisCivguJ3guLXguIjguLHguIEKK+C4neC4teC4iOC4seC4geC4owor4Lid4Li14LiU4Liy4LipCivguJ3guLXguJTguLTguJoKK+C4neC4teC5gOC4l+C5ieC4sgor4Lid4Li14LmD4LiZ4LiX4LmJ4Lit4LiHCivguJ3guLXguJvguLLguIEKK+C4neC4teC4nuC4suC4ogor4Lid4Li14Lih4Liw4Lih4LmI4Lin4LiHCivguJ3guLXguKHguLfguK0KK+C4neC4teC5hOC4oeC5ieC4peC4suC4ouC4oeC4t+C4rQor4Lid4Li14LmA4Lii4LmH4LiaCivguJ3guLXguKvguKHguK3guJoKK+C4neC4tuC4gQor4Lid4Li24LiB4LiH4Liy4LiZCivguJ3guLbguIHguJvguKPguLfguK0KK+C4neC4tuC4geC4neC4mQor4Lid4Li24LiB4Liq4Lit4LiZCivguJ3guLbguIHguKvguLHguJQKK+C4neC4t+C4lAor4Lid4Li34LiU4LmA4LiE4Li34Lit4LiHCivguJ3guLfguJkKK+C4neC4t+C4meC4l+C5ieC4reC4hwor4Lid4Li44LmI4LiZCivguJ3guLjguYjguJnguYDguKHguLfguK3guIcKK+C4neC4ueC4hwor4Lid4Li54LiH4Lia4Li04LiZCivguYDguJ3guYnguLIKK+C5gOC4neC5ieC4suC5hOC4guC5iQor4LmA4Lid4LmJ4Liy4LiE4Lit4LiiCivguYDguJ3guYnguLLguYHguKvguJkKK+C5gOC4neC4t+C4rQor4LmA4Lid4Li34Lit4LiBCivguYDguJ3guLfguK3guIcKK+C5gOC4neC4t+C5iOC4reC4mQor4LmB4Lid4LiBCivguYHguJ3guIHguKvguK3guKEKK+C5geC4neC4hwor4LmB4Lid4LiUCivguYHguJ3guJTguJnguYnguLMKK+C5geC4neC4lOC5gOC4peC4t+C4reC4lAor4LmD4Lid4LmICivguYPguJ3guYjguYPguIgKK+C5g+C4neC5iOC4leC5iOC4swor4LmD4Lid4LmI4Lid4Lix4LiZCivguYPguJ3guYjguKPguYnguK3guJnguIjguLDguJnguK3guJnguYDguKLguYfguJkg4LmD4Lid4LmI4LmA4Lii4LmH4LiZ4LiI4Liw4LiU4Li04LmJ4LiZ4LiV4Liy4LiiCivguYPguJ3guYjguKrguLnguIcKK+C5g+C4neC5iOC4quC4ueC4h+C4iOC4meC5gOC4geC4tOC4meC4qOC4seC4geC4lOC4tOC5jAor4LmD4Lid4LmI4Liq4Li54LiH4LmD4Lir4LmJ4LmA4LiB4Li04LiZ4Lio4Lix4LiB4LiU4Li04LmMCivguYTguJ0KK+C4ngor4Lie4LiBCivguJ7guIHguIjguKMKK+C4nuC4geC4meC4uOC5iOC4mQor4Lie4LiB4Lie4LmI4Liy4LiiCivguJ7guIHguKXguKEKK+C4nuC4geC4q+C4tOC4mQor4Lie4LiB4LiyCivguJ7guIHguLjguKPguLAKK+C4nuC4geC4uOC4pQor4Lie4LiHCivguJ7guIfguJ7guLUKK+C4nuC4h+C4qC0KK+C4nuC4h+C4qOC5jAor4Lie4LiH4Lio4LiB4LijCivguJ7guIfguKjguJjguKMKK+C4nuC4h+C4qOC5jOC4nuC4seC4meC4mOC4uOC5jAor4Lie4LiH4Lio4LiyCivguJ7guIfguKjguLLguKfguJTguLLguKMKK+C4nuC4h+C4qOC4suC4p+C4peC4tQor4Lie4LiI4LiZLQor4Lie4LiI4LiZ4LmMCivguJ7guIjguJnguLIKK+C4nuC4iOC4meC4suC4meC4uOC4geC4o+C4oQor4Lie4LiI4LiZ4Liy4Lij4LiWCivguJ7guIjguJnguLXguKLguYwKK+C4nuC4iOC4oeC4suC4mQor4Lie4LiI4Li1CivguJ7guIrguKPguLAKK+C4nuC4jeC4sgor4Lie4LiN4Liy4LiB4Liy4Liq4Lix4LiBCivguJ7guI3guLLguILguLLguKHguJvguYnguK3guKEKK+C4nuC4jeC4suC4ieC4seC4l+C4l+C4seC4meC4leC5jAor4Lie4LiN4Liy4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguJ7guI3guLLguJMKK+C4nuC4jeC4suC4lOC4suC4muC4q+C4seC4gQor4Lie4LiN4Liy4LmA4LiU4Li04LiZCivguJ7guI3guLLguYTguJfguKIKK+C4nuC4jeC4suC4m+C4suC4geC4geC4p+C5ieC4suC4hwor4Lie4LiN4Liy4LmB4Lib4LmB4LilCivguJ7guI3guLLguJ7guKLguLLguJUKK+C4nuC4jeC4suC5hOC4nwor4Lie4LiN4Liy4Lih4Liw4LiC4Liy4Lih4Lib4LmJ4Lit4LihCivguJ7guI3guLLguKHguLfguK3guYDguKvguKXguYfguIEKK+C4nuC4jeC4suC4oeC4uOC4leC4leC4tAor4Lie4LiN4Liy4Lih4Li54Lih4Li04LiZCivguJ7guI3guLLguYTguKHguYkKK+C4nuC4jeC4suC4ouC4sgor4Lie4LiN4Liy4Lij4Liy4LiB4LiU4LizCivguJ7guI3guLLguKPguLLguIHguYDguJTguLXguKLguKcKK+C4nuC4jeC4suC5hOC4o+C5ieC5g+C4mgor4Lie4LiN4Liy4Lil4LitCivguJ7guI3guLLguYLguKjguIEKK+C4nuC4jeC4suC4quC4seC4leC4muC4o+C4o+C4kwor4Liv4Lie4LiT4LivCivguJ7guJPguLTguIoKK+C4nuC4k+C4tOC4iuC4ouC5jAor4Lie4LiUCivguJ7guJTguIHguKPguLTguIoKK+C4nuC4lOC4lOC5ieC4p+C4hwor4Lie4LiY4Li5CivguJ7guJkKK+C4nuC4mS0KK+C4nuC5iOC4mQor4Lie4LmJ4LiZCivguJ7guJnguILguLHguJPguJHguYwKK+C4nuC4meC5guC4hOC4iOC4owor4Lie4LiZ4LiI4LijCivguJ7guJnguIjguKPguIEKK+C4nuC4meC4iuC4teC4p+C4tQor4Lie4LiZ4LiY4Liy4Lij4LiyCivguJ7guJnguKEKK+C4nuC4meC4oeC5gOC4nuC4peC4tOC4hwor4Lie4LiZ4Lih4Lio4LiBCivguJ7guJnguKHguKjguJ4KK+C4nuC4meC4oeC4quC4p+C4o+C4o+C4hOC5jAor4Lie4LiZ4Lin4Liy4Liq4Li1CivguJ7guYnguJnguKfguLTguKrguLHguKIKK+C4nuC4meC4quC4k+C4keC5jAor4Lie4LiZ4Lit4LiHCivguJ7guJnguK3guKEKK+C4nuC4meC4seC4gQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZCivguJ7guJnguLHguIHguIfguLLguJnguYDguIjguYnguLLguKvguJnguYnguLLguJfguLXguYgKK+C4nuC4meC4seC4geC4h+C4suC4meC4quC4reC4muC4quC4p+C4mQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4Lit4Lix4Lii4LiB4Liy4LijCivguJ7guJnguLHguIcKK+C4nuC4meC4seC4mQor4Lie4LiZ4Lix4LiZ4LiU4LijCivguJ7guJnguLHguKoKK+C4nuC4meC4seC4qi0KK+C4nuC4meC4seC4quC4lOC4oQor4Lie4LiZ4Lix4Liq4Lia4LiU4Li1CivguJ7guJnguLIKK+C4nuC4meC4suC4lAor4Lie4LiZ4Liy4LiU4LijCivguJ7guJnguLLguJTguK3guJkKK+C4nuC4meC4suC4mOC4p+C4sgor4Lie4LiZ4Liy4LiZ4LiU4LijCivguJ7guJnguLLguKIKK+C4nuC4meC4suC4o+C4suC4oQor4Lie4LiZ4Liy4Lil4Lix4LiiCivguJ7guJnguLLguKXguLUKK+C4nuC4meC4suC4p+C4sgor4Lie4LiZ4Liy4Lin4Liy4LiqCivguJ7guJnguLLguYDguKfguKgKK+C4nuC4meC4suC4qOC4o+C4oQor4Lie4LiZ4Liy4Lio4Lij4Lix4LiiCivguJ7guJnguLLguKrguJPguJHguYwKK+C4nuC4meC4suC4quC4seC4k+C4keC5jAor4Lie4LiZ4Li04LiU4LiyCivguJ7guJnguLTguJUKK+C4nuC4meC4teC4ouC4gQor4Lie4LmA4LiZ4LiBCivguJ7guYDguJnguIjguKMKK+C4nuC4mgor4Lie4Lia4Lib4LiwCivguJ7guJrguJ7guLLguJkKK+C4nuC4muC5hOC4oeC5ieC4h+C4suC4oeC5gOC4oeC4t+C5iOC4reC4guC4p+C4suC4meC4muC4tOC5iOC4mQor4Lie4Lia4Li5CivguJ7guKHguYjguLIKK+C4nuC4oeC5iOC4suC5geC4l+C4h+C4geC4mgor4Lie4Lih4LmI4Liy4Lij4Liz4LiC4Lin4Liy4LiZCivguJ7guKLguIoKK+C4nuC4ouC4iuC4meC5jAor4Lie4Lii4LiV4Li04LmA4Lij4LiBCivguJ7guKLguJnguJXguYwKK+C4nuC4ouC4qAor4Lie4Lii4Lix4LiBCivguJ7guKLguLHguIHguJ7guYDguKLguLTguJQKK+C4nuC4ouC4seC4geC4ouC4tOC5ieC4oQor4Lie4Lii4Lix4LiE4LiGLQor4Lie4Lii4Lix4LiE4LiG4LmMCivguJ7guKLguLHguITguIbguLIKK+C4nuC4ouC4seC4hOC4huC4tOC4mQor4Lie4Lii4Lix4LiE4LiG4Li04LiZ4LiX4Lij4LmMCivguJ7guKLguLHguITguIbguLUKK+C4nuC4ouC4seC4hOC5gOC4huC4meC4l+C4o+C5jAor4Lie4Lii4Lix4LiK4LiZ4LmMCivguJ7guKLguLHguI3guIrguJnguLAKK+C4nuC4ouC4seC4lQor4Lie4Lii4Lix4LiaCivguJ7guKLguLHguJrguYHguJTguJQKK+C4nuC4ouC4seC4muC4neC4mQor4Lie4Lii4Lix4Lia4LmA4Lih4LiGCivguJ7guKLguLHguJrguKvguKHguK3guIEKK+C4nuC4ouC4suC4geC4o+C4k+C5jAor4Lie4Lii4Liy4LiG4Lij4LmMCivguJ7guKLguLLguIfguITguYwKK+C4nuC4ouC4suC4mOC4tAor4Lie4Lii4Liy4LiZCivguJ7guKLguLLguJrguLLguJcKK+C4nuC4ouC4suC4muC4suC4pQor4Lie4Lii4Liy4LihCivguJ7guKLguLLguKLguLLguKEKK+C4nuC4ouC4suC4pQor4Lie4Lii4Liy4LilLQor4Lie4Lii4Liy4Lil4Lih4Lik4LiECivguJ7guKLguLgKK+C4nuC4ouC4uOC4hwor4Lie4Lii4Li44LiH4Lib4Li14LiBCivguJ7guKLguLjguKstCivguJ7guKLguLjguKvguJrguLLguJXguKMKK+C4nuC4ouC4uOC4q+C4muC4suC4leC4o+C4sgor4Lie4Lii4Li44Lir4Lii4Liy4LiV4Lij4LiyCivguJ7guKLguLjguKvguYLguKLguJjguLIKK+C4nuC4ouC4uOC4q+C4owor4Lie4Lii4Li44Lir4LmA4Liq4LiZ4LiyCivguJ7guKLguLjguKvguYHguKrguJnguKLguLIKK+C4nuC4ouC4uOC4q+C5geC4quC4meC4ouC4suC4geC4owor4Lie4Lii4Li44Lir4LiwCivguJ7guKLguLnguYjguKvguYwKK+C4nuC5gOC4ouC4teC4ogor4Lie4LijCivguJ7guKPguJUKK+C4nuC4o+C4oQor4Lie4Lij4Lih4LiE4LiUCivguJ7guKPguKHguITguJTguJXguLXguJnguYDguJXguYjguLIKK+C4nuC4o+C4oeC5geC4lOC4mQor4Lie4Lij4Lih4LiZ4LmJ4Liz4Lih4Lix4LiZCivguJ7guKPguKHguJnguLTguYnguKcKK+C4nuC4o+C4oeC4oeC4tAor4Lie4Lij4Lij4LiECivguJ7guKPguKPguIQtCivguJ7guKPguKPguITguYwKK+C4nuC4o+C4o+C4hOC4geC4peC4tOC4mQor4Lie4Lij4Lij4LiE4LiB4Liy4Lij4LmA4Lih4Li34Lit4LiHCivguJ7guKPguKPguITguJnguLLguKfguLTguIHguYLguKLguJjguLTguJkKK+C4nuC4o+C4o+C4hOC4meC4suC4p+C4tOC4mQor4Lie4Lij4Lij4LiE4Lie4Lin4LiBCivguJ7guKPguKPguITguLLguJnguJXguYwKK+C4nuC4o+C4o+C4kwor4Lie4Lij4Lij4LiT4LiZ4LiyCivguJ7guKPguKPguJPguKPguLLguKIKK+C4nuC4o+C4o+C4lOC4tuC4gQor4Lie4Lij4Lij4Lil4Liy4LiiCivguJ7guKPguKPguKkKK+C4nuC4o+C4o+C4qS0KK+C4nuC4o+C4o+C4qeC4m+C4o+C4sOC5gOC4p+C4qAor4Lie4Lij4Lij4Lip4Lik4LiU4Li5CivguJ7guKPguKPguKnguKfguLjguJLguLQKK+C4nuC4o+C4o+C4qeC4sgor4Lie4Lij4Lij4Lip4Liy4LiB4Liy4LilCivguJ7guKPguKPguKnguLLguITguKEKK+C4nuC4o+C4o+C4qeC4suC4ouC4uOC4lQor4Lie4Lij4Lij4LmC4Lip4LiX4LiBCivguJ7guKPguKPguYLguKnguJrguKUKK+C4nuC4o+C4o+C5gOC4q+C4sgor4Lie4Lij4Lij4LmA4Lit4Li04LiNCivguJ7guKPguKfguIfguYDguJ7guKPguLXguKLguIcKK+C4nuC4o+C4p+C4lAor4Lie4Lij4Lin4LiU4Lie4Lij4Liy4LiUCivguJ7guKPguKfguJkKK+C4nuC4o+C4quC4p+C4o+C4o+C4hOC5jAor4Lie4Lij4Lir4LihCivguJ7guKPguKvguKEtCivguJ7guKPguKvguKHguIHguLLguKIKK+C4nuC4o+C4q+C4oeC5guC4hOC4pQor4Lie4Lij4Lir4Lih4LiI4Lij4Lij4Lii4LmMCivguJ7guKPguKvguKHguIjguLHguIHguKMKK+C4nuC4o+C4q+C4oeC4iOC4suC4o+C4tOC4k+C4tQor4Lie4Lij4Lir4Lih4LiI4Liy4Lij4Li1CivguJ7guKPguKvguKHguIrguLLguJXguLQKK+C4nuC4o+C4q+C4oeC4l+C4seC4k+C4keC5jAor4Lie4Lij4Lir4Lih4LmE4LiX4LiiCivguJ7guKPguKvguKHguJjguLLguJTguLIKK+C4nuC4o+C4q+C4oeC4muC4lgor4Lie4Lij4Lir4Lih4Lia4LiXCivguJ7guKPguKvguKHguJrguKPguLTguKnguLHguJcKK+C4nuC4o+C4q+C4oeC4muC4uOC4leC4owor4Lie4Lij4Lir4Lih4Lib4Li44LmC4Lij4Lir4Li04LiVCivguJ7guKPguKvguKHguJ7guLHguIHguJXguKPguYwKK+C4nuC4o+C4q+C4oeC4nuC4seC4meC4mOC4uOC5jAor4Lie4Lij4Lir4Lih4Lig4Li54LiV4Li0CivguJ7guKPguKvguKHguKLguLLguJkKK+C4nuC4o+C4q+C4oeC5gOC4o+C4guC4sgor4Lie4Lij4Lir4Lih4Lik4Lip4Li1CivguJ7guKPguKvguKHguKXguLTguILguLTguJUKK+C4nuC4o+C4q+C4oeC4p+C4tOC4q+C4suC4owor4Lie4Lij4Lir4Lih4Lio4LijCivguJ7guKPguKvguKHguKrguLXguYjguKvguJnguYnguLIKK+C4nuC4o+C4q+C4oeC4quC4ueC4leC4owor4Lie4Lij4Lir4Lih4Lir4Lix4Lin4LmA4Lir4Lih4LmH4LiZCivguJ7guKPguKvguKHguYLguK3guIfguIHguLLguKMKK+C4nuC4o+C4q+C4oeC4seC4jeC4leC4sgor4Lie4Lij4Lir4Lih4LiyCivguJ7guKPguKvguKHguLLguJPguJHguYwKK+C4nuC4o+C4q+C4oeC4suC4quC4leC4o+C5jAor4Lie4Lij4Lir4Lih4Li04LiZ4LiX4Lij4LmMCivguJ7guKPguKvguYDguKHguJnguJfguKPguYwKK+C4nuC4o+C4q+C5gOC4oeC4qOC4p+C4owor4Lie4Lij4Lit4LiBCivguJ7guKPguYjguK3guIcKK+C4nuC4o+C5ieC4reC4hwor4Lie4Lij4LmJ4Lit4LiH4LmA4Lie4Lij4Li14Lii4LiBCivguJ7guKPguK3guJQKK+C4nuC4o+C5ieC4reC4oQor4Lie4Lij4LmI4Lit4Lih4Lie4Lij4LmJ4LitCivguJ7guKPguYnguK3guKHguJ7guKPguLHguIEKK+C4nuC4o+C5ieC4reC4oeC4nuC4o+C4seC5iOC4hwor4Lie4Lij4LmJ4Lit4Lih4LmA4Lie4Lij4Li14Lii4LiHCivguJ7guKPguYnguK3guKHguKHguLnguKUKK+C4nuC4o+C5ieC4reC4oeC4q+C4meC5ieC4sgor4Lie4Lij4LmJ4Lit4Lih4Lir4LiZ4LmJ4Liy4Lie4Lij4LmJ4Lit4Lih4LiV4LiyCivguJ7guKPguYjguK3guKIKK+C4nuC4o+C5ieC4reC4ogor4Lie4Lij4LiwCivguJ7guKPguLDguIHguKPguJnguYnguK3guKIKK+C4nuC4o+C4sOC4hOC4o+C4uQor4Lie4Lij4Liw4LiE4Li44LiT4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguYDguITguKPguLLguLDguKvguYwKK+C4nuC4o+C4sOC5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lie4Lij4Liw4LiI4Lix4LiZ4LiX4Lij4LmM4LiE4Lij4Li24LmI4LiH4LiL4Li14LiBCivguJ7guKPguLDguYDguIjguYnguLIKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4peC4reC4ouC4luC4suC4lAor4Lie4Lij4Liw4LmA4LiI4LmJ4Liy4Lir4Lil4Lin4LiHCivguJ7guKPguLDguYDguIjguYnguLLguKvguYnguLLguJ7guKPguLDguK3guIfguITguYwKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4reC4ouC4ueC5iOC4q+C4seC4pwor4Lie4Lij4Liw4LmA4LiU4LiK4Lie4Lij4Liw4LiE4Li44LiTCivguJ7guKPguLDguJfguK3guIcKK+C4nuC4o+C4sOC4l+C4seC4ogor4Lie4Lij4Liw4LiY4Lij4Lij4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguJ7guKPguLDguJnguKEKK+C4nuC4o+C4sOC4meC4reC4oQor4Lie4Lij4Liw4LiZ4Liy4LiHCivguJ7guKPguLDguJnguLLguIfguYDguIjguYnguLIKK+C4nuC4o+C4sOC4meC4suC4h+C5gOC4mOC4rQor4Lie4Lij4Liw4LiZ4Liy4LiUCivguJ7guKPguLDguJnguLLguKIKK+C4nuC4o+C4sOC4muC4jwor4Lie4Lij4Liw4Lia4LiXCivguJ7guKPguLDguJvguKPguLDguJjguLLguJkKK+C4nuC4o+C4sOC5gOC4m+C5h+C4meC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4Lic4Li54LmJ4LmA4Lib4LmH4LiZ4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguYHguJzguIcKK+C4nuC4o+C4sOC4nuC4tOC4oeC4nuC5jAor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguILguYnguLIKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4suC4guC5ieC4suC4guC4reC4o+C4seC4mgor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4Liy4LiC4LmJ4Liy4LiC4Lit4Lij4Lix4Lia4LmD4Liq4LmI4LmA4LiB4Lil4LmJ4Liy4LmD4Liq4LmI4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguKvguKXguKfguIcKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4suC4reC4ouC4ueC5iOC4q+C4seC4pwor4Lie4Lij4Liw4Lie4Li44LiX4LiY4Lit4LiH4LiE4LmMCivguJ7guKPguLDguKDguLnguKHguLQKK+C4nuC4o+C4sOC4oeC4suC4peC4seC4ouC4oeC4suC5guC4m+C4o+C4lAor4Lie4Lij4Liw4Lii4LiyCivguJ7guKPguLDguKLguLLguYDguJfguITguKPguLHguKcKK+C4nuC4o+C4sOC4ouC4suC5gOC4peC5h+C4muC4hOC4o+C4uOC4kQor4Lie4Lij4Liw4Lii4Liy4Lin4Lix4LiZCivguJ7guKPguLDguKPguK3guIcKK+C4nuC4o+C4sOC4o+C4suC4iuC4geC4pOC4qeC4juC4teC4geC4sgor4Lie4Lij4Liw4Lij4Liy4LiK4LiB4Liz4Lir4LiZ4LiUCivguJ7guKPguLDguKPguLLguIrguJrguLHguI3guI3guLHguJXguLQKK+C4nuC4o+C4sOC4o+C4ueC4mwor4Lie4Lij4Liw4Lij4Li54Lib4LiK4Li1CivguJ7guKPguLDguKTguYXguKnguLUKK+C4nuC4o+C4sOC4peC4mgor4Lie4Lij4Liw4Lil4Li34LitCivguJ7guKPguLDguYHguKfguKcKK+C4nuC4o+C4sOC4qOC4uOC4geC4o+C5jOC5gOC4guC5ieC4suC4nuC4o+C4sOC5gOC4quC4suC4o+C5jOC5geC4l+C4o+C4gQor4Lie4Lij4Liw4Lir4LiyCivguJ7guKPguLDguKvguLLguKEKK+C4nuC4o+C4sOC4q+C4suC4o+C4k+C4ouC5jAor4Lie4Lij4Liw4Lir4Liy4Lij4Lix4LiT4Lii4LmMCivguJ7guKPguLDguKvguLTguJQKK+C4nuC4o+C4sOC4reC4h+C4hOC5jAor4Lie4Lij4Liw4Lit4LiH4LiE4LmM4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguK3guLHguJnguJTguLHguJoKK+C4nuC4o+C4sOC4reC4tOC4kOC4nuC4o+C4sOC4m+C4ueC4mQor4Lie4Lij4Liw4LmA4Lit4LiBCivguJ7guKPguLDguK7guLLguKEKK+C4nuC4o+C4seC4geC4nuC4o+C5ieC4reC4oQor4Lie4Lij4Lix4LmI4LiHCivguJ7guKPguLHguYjguIfguJ7guKPguYnguK3guKEKK+C4nuC4o+C4seC5iOC4h+C4nuC4o+C4uQor4Lie4Lij4Lix4LiUCivguJ7guKPguLHguYjguJkKK+C4nuC4o+C4seC5iOC4meC4nuC4o+C4tuC4hwor4Lie4Lij4Lix4LiaCivguJ7guKPguYjguLIKK+C4nuC4o+C5ieC4sgor4Lie4Lij4Liy4LiBCivguJ7guKPguLLguIHguYDguJTguYfguIEKK+C4nuC4o+C4suC4geC4nOC4ueC5ieC5gOC4ouC4suC4p+C5jAor4Lie4Lij4Liy4LiB4Lil4Li54LiB4LiZ4LiB4Lil4Li54LiB4LiB4LiyCivguJ7guKPguLLguIcKK+C4nuC4o+C5iOC4suC4hwor4Lie4Lij4Liy4LiH4Lie4Lij4Lit4LiBCivguJ7guKPguYnguLLguIfguLHguJTguJvguLLguIHguYTguKHguYjguK3guK3guIEKK+C4nuC4o+C4suC4lAor4Lie4Lij4Liy4LiZCivguJ7guKPguLLguKIKK+C4nuC4o+C4suC4ouC4l+C4sOC5gOC4pQor4Lie4Lij4Liy4Lii4LiZ4LmJ4LizCivguJ7guKPguLLguKLguYHguJ7guKPguKcKK+C4nuC4o+C4suC4ouC4ouC5ieC4swor4Lie4Lij4Liy4LinCivguJ7guKPguLLguKfguYHguJ7guKPguKcKK+C4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lie4Lij4Liy4Lir4Lih4LiT4LmM4LmA4LiB4LmH4Lia4Lir4Lix4Lin4LmB4Lir4Lin4LiZCivguJ7guKPguLLguKvguKHguJPguYzguILguLLguKLguYDguKHguLXguKIKK+C4nuC4o+C4suC4q+C4oeC4k+C5jOC4lOC4teC4lOC4meC5ieC4s+C5gOC4leC5ieC4sgor4Lie4Lij4Liy4Lir4Lih4LiT4Lix4Lio4Lia4LiU4Li1CivguJ7guKPguLLguKvguKHguJPguLUKK+C4nuC4o+C4suC4q+C4oeC4tQor4Lie4Lij4LizCivguJ7guKPguLPguYYKK+C4nuC4o+C5iOC4swor4Lie4Lij4LmJ4LizCivguJ7guKPguYjguLPguJ7guKXguK3guJQKK+C4nuC4o+C5iOC4s+C5gOC4nuC4o+C4t+C5iOC4rQor4Lie4Lij4LmI4Liz4LmA4Lie4LmJ4LitCivguJ7guKPguLTguIEKK+C4nuC4o+C4tOC4geC4geC4o+C4sOC4leC5iOC4suC4ogor4Lie4Lij4Li04LiB4LiB4Liw4LmA4LiB4Lil4Li34LitCivguJ7guKPguLTguIHguYHguIHguKcKK+C4nuC4o+C4tOC4geC4guC4tOC4hwor4Lie4Lij4Li04LiB4LiU4Lit4LiHCivguJ7guKPguLTguIHguYDguJfguKgKK+C4nuC4o+C4tOC4geC5hOC4l+C4ogor4Lie4Lij4Li04LiB4LiZ4LmJ4Liz4Liq4LmJ4LihCivguJ7guKPguLTguIHguKvguK3guKEKK+C4nuC4o+C4tOC4geC5gOC4q+C4peC4t+C4reC4hwor4Lie4Lij4Li04LmJ4LiHCivguJ7guKPguLTguYnguIfguJ7guKPguLLguKIKK+C4nuC4o+C4tOC5ieC4h+C5gOC4nuC4o+C4tOC4qAor4Lie4Lij4Li04LiaCivguJ7guKPguLTguJrguJXguLLguYDguJTguLXguKLguKcKK+C4nuC4o+C4tOC4muC5hOC4q+C4pwor4Lie4Lij4Li04LmJ4LihCivguJ7guKPguLTguYnguKHguJ7guKPguLLguKIKK+C4nuC4o+C4tOC5ieC4oeC5gOC4nuC4o+C4sgor4Lie4Lij4Li24LiHCivguJ7guKPguLbguJkKK+C4nuC4o+C4tuC4mgor4Lie4Lij4Li34LiUCivguJ7guKPguLgKK+C4nuC4o+C4uOC4gQor4Lie4Lij4Li44LmI4LiHCivguJ7guKPguLjguYjguIfguJnguLXguYkKK+C4nuC4o+C4uOC4mQor4Lie4Lij4Li5CivguJ7guKPguLnguJQKK+C4nuC4pOC4geC4qS0KK+C4nuC4pOC4geC4qeC5jAor4Lie4Lik4LiB4Lip4LiK4Liy4LiV4Li0CivguJ7guKTguIHguKnguJfguKUKK+C4nuC4pOC4geC4qeC5gOC4l+C4p+C4lOC4sgor4Lie4Lik4LiB4Lip4Lij4Liy4LiKCivguJ7guKTguIHguKnguKjguLLguKrguJXguKPguYwKK+C4nuC4pOC4geC4qeC4sgor4Lie4Lik4LiSCivguJ7guKTguJLguLIKK+C4nuC4pOC4kuC4suC4iOC4suC4o+C4ouC5jAor4Lie4Lik4LiS4Li0CivguJ7guKTguJLguLQtCivguJ7guKTguJLguLTguJrguLLguKgKK+C4nuC4pOC4lQor4Lie4Lik4LiV4Li0CivguJ7guKTguJXguLQtCivguJ7guKTguJXguLTguIHguKPguKPguKEKK+C4nuC4pOC4leC4tOC4geC4suC4o+C4k+C5jAor4Lie4Lik4LiV4Li04LiZ4Lix4LiiCivguJ7guKTguJfguJjguYwKK+C4nuC4pOC4l+C4mOC4tOC5jAor4Lie4Lik4LiZ4LiV4LmMCivguJ7guKTguJnguJfguYwKK+C4nuC4pOC4oOC4ueC4qeC4kwor4Lie4Lik4Lig4Li54Lip4Li04LiVCivguJ7guKTguKjguIjguLTguIEKK+C4nuC4pOC4qOC4iOC4tOC4geC4suC4ouC4mQor4Lie4Lik4Lip4LigCivguJ7guKTguKnguKDguLLguITguKEKK+C4nuC4pOC4q+C4seC4quC4muC4lOC4tQor4Lie4Lik4Lir4Lix4Liq4Lia4LiU4Li14LiI4Lix4LiB4LijCivguJ7guKUKK+C4nuC4pS0KK+C4nuC4peC4geC4suC4ogor4Lie4Lil4LiB4Liy4LijCivguJ7guKXguILguLHguJnguJjguYwKK+C4nuC4peC4hOC4p+C4suC4oQor4Lie4Lil4LiV4Lij4Liw4LmA4Lin4LiZCivguJ7guKXguYDguJfguJ4KK+C4nuC4peC4mgor4Lie4Lil4LmA4Lih4Li34Lit4LiHCivguJ7guKXguYDguKPguLfguK3guJkKK+C4nuC4peC5guC4peC4gQor4Lie4Lil4LinLQor4Lie4Lil4Lin4LiBCivguJ7guKXguKfguIcKK+C4nuC4peC4p+C4lOC4geC4tOC4meC4peC4ueC4gQor4Lie4Lil4Lin4LiU4LmD4Lir4LiN4LmICivguJ7guKXguKfguLHguJUKK+C4nuC4peC4qOC4suC4quC4leC4o+C5jAor4Lie4Lil4Lio4Li24LiB4Lip4LiyCivguJ7guKXguKrguLTguIfguKvguYwKK+C4nuC4peC4rQor4Lie4Lil4LmJ4LitCivguJ7guKXguK3guIcKK+C4nuC4peC4reC4lAor4Lie4Lil4Lit4LiU4Lij4Lix4LiBCivguJ7guKXguK3guJkKK+C4nuC4peC4reC4oeC5geC4nuC4peC4oQor4Lie4Lil4Lit4LiiCivguJ7guKXguYjguK3guKIKK+C4nuC4peC4reC4ouC4n+C5ieC4suC4nuC4peC4reC4ouC4neC4mQor4Lie4Lil4LiwCivguJ7guKXguLDguJ7guKXguLIKK+C4nuC4peC4seC5iOC4gQor4Lie4Lil4Lix4LiHCivguJ7guKXguLHguYjguIcKK+C4nuC4peC4seC5ieC4hwor4Lie4Lil4Lix4LiH4LiH4Liy4LiZCivguJ7guKXguLHguIfguIfguLLguJnguIjguKXguJnguYwKK+C4nuC4peC4seC4h+C4h+C4suC4meC4qOC4seC4geC4ouC5jAor4Lie4Lil4Lix4LiH4LiI4Li04LiVCivguJ7guKXguLHguYnguIfguJvguLLguIEKK+C4nuC4peC4seC5ieC4h+C4m+C4suC4geC5gOC4quC4teC4ouC4qOC4teC4pSDguJ7guKXguLHguYnguIfguJXguLXguJnguJXguIHguJXguYnguJnguYTguKHguYkKK+C4nuC4peC4seC5ieC4h+C5gOC4nOC4peC4rQor4Lie4Lil4Lix4LiUCivguJ7guKXguLHguJTguJbguLTguYjguJkKK+C4nuC4peC4seC4lOC4l+C4teC5iOC4meC4suC4hOC4suC4l+C4teC5iOC4reC4ouC4ueC5iAor4Lie4Lil4Lix4LiU4Lie4Lij4Liy4LiBCivguJ7guKXguLHguJkKK+C4nuC4peC4seC4mgor4Lie4Lil4Lix4Lia4LmA4LiC4LiyCivguJ7guKXguLHguJrguJ7guKXguLIKK+C4nuC4peC4seC4muC4nuC4peC4tuC4hwor4Lie4Lil4Lix4LmI4LinCivguJ7guKXguYjguLIKK+C4nuC4peC4suC4geC4owor4Lie4Lil4Liy4LiHCivguJ7guKXguLLguI0KK+C4nuC4peC4suC4lAor4Lie4Lil4Liy4LiU4LiX4LmI4LiyCivguJ7guKXguLLguJTguLTguKjguLHguKIKK+C4nuC4peC4suC4mOC4tOC4geC4suC4owor4Lie4Lil4LmI4Liy4LiZCivguJ7guKXguLLguJnguLLguKHguLHguKIKK+C4nuC4peC4suC4meC4tuC4gQor4Lie4Lil4Liy4LihCivguJ7guKXguYjguLLguKEKK+C4nuC4peC4suC4ogor4Lie4Lil4Liy4Lii4Lih4LmJ4LiyCivguJ7guKXguLLguKrguJXguLTguIEKK+C4nuC4peC4suC4quC4oeC4sgor4Lie4Lil4Liy4Lir4LiBCivguJ7guKXguLMKK+C4nuC4peC5ieC4swor4Lie4Lil4Liz4Lig4Lix4LiHCivguJ7guKXguLQKK+C4nuC4peC4tOC4gQor4Lie4Lil4Li04LiB4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguJ7guKXguLTguIHguYHguJzguYjguJnguJTguLTguJkKK+C4nuC4peC4tOC4geC5geC4nuC4peC4hwor4Lie4Lil4Li04LiB4Lio4LieCivguJ7guKXguLTguIHguKvguJnguYnguLLguKHguLfguK3guYDguJvguYfguJnguKvguKXguLHguIfguKHguLfguK0KK+C4nuC4peC4tOC4nuC4seC4lwor4Lie4Lil4Li04LmJ4LinCivguJ7guKXguLUKK+C4nuC4peC4teC4geC4o+C4o+C4oQor4Lie4Lil4Li14Lih4Li44LiCCivguJ7guKXguLgKK+C4nuC4peC4uOC4gQor4Lie4Lil4Li44LmI4LiBCivguJ7guKXguLjguIHguJ7guKXguYjguLLguJkKK+C4nuC4peC4uOC5iOC4hwor4Lie4Lil4Li44LmJ4LiZCivguJ7guKXguLjguYjguKHguJ7guKXguYjguLLguKEKK+C4nuC4peC4uOC5iOC4ogor4Lie4Lil4Li44LmJ4LiiCivguJ7guKXguLkKK+C4nuC4peC4ueC5geC4gQor4Lie4Lil4Li54LiE4Liy4LinCivguJ7guKXguLnguJXguYnguJkKK+C4nuC4peC4ueC5guC4lQor4Lie4Lil4Li54LmC4LiX4LmA4LiZ4Li14Lii4LihCivguJ7guKfguIEKK+C4nuC4p+C4geC4nuC5ieC4reC4hwor4Lie4Lin4LiHCivguJ7guYjguKfguIcKK+C4nuC4p+C4h+C5guC4geC5gOC4oeC4mQor4Lie4Lin4LiH4LiE4Lij4Liy4LihCivguJ7guKfguIfguIrguKHguJ7guLkKK+C4nuC4p+C4h+C4lOC4reC4geC5hOC4oeC5iQor4Lie4LmI4Lin4LiH4Lie4Li1CivguJ7guKfguIfguKHguLLguKXguLHguKIKK+C4nuC4p+C4h+C4oeC4suC4peC4sgor4Lie4Lin4LiH4LmB4Liq4LiUCivguJ7guKfguIfguKvguKLguIEKK+C4nuC4p+C4h+C4q+C4o+C4teC4lAor4Lie4Lin4LiH4Lit4Li44LmE4LijCivguJ7guKfguJkKK+C4nuC4p+C4ogor4Lie4Lin4Lii4LiZ4LmJ4LizCivguJ7guKfguKLguJ7guLjguYjguIcKK+C4nuC4quC4gQor4Lie4Liq4LiBLQor4Lie4Liq4LiB4LiZ4Li04LiB4LijCivguJ7guKrguJkKK+C4nuC4quC4uAor4Lie4Liq4Li44LiY4LiyCivguJ7guKrguLjguJjguLLguJTguKUKK+C4nuC4quC4uOC4meC4mOC4o+C4sgor4Lie4Liq4Li44Lih4LiU4Li1CivguJ7guKrguLjguKrguIfguIHguKPguLLguJnguJXguYwKK+C4nuC4q+C4pQor4Lie4Lir4Li4CivguJ7guKvguLjguITguLnguJMKK+C4nuC4q+C4uOC4nuC4iOC4meC5jAor4Lie4Lir4Li44Lig4Liy4LiE4Li1CivguJ7guKvguLjguKUKK+C4nuC4q+C4uQor4Lie4Lir4Li54Lie4LiI4LiZ4LmMCivguJ7guKvguLnguKrguLnguJUKK+C4nuC4rQor4Lie4LmI4LitCivguJ7guYnguK0KK+C4nuC4reC4gQor4Lie4Lit4LiB4Lie4Li54LiZCivguJ7guK3guIHguLHguJkKK+C4nuC4reC4geC4seC4meC4l+C4tQor4Lie4Lit4LiB4Liy4LijCivguJ7guK3guIHguYnguLLguKfguILguLLguIHguYfguKXguLLguYLguKPguIcKK+C4nuC5iOC4reC5gOC4geC4peC4rQor4Lie4LmI4Lit4LiC4Li44LiZCivguJ7guYjguK3guITguKPguLHguKcKK+C4nuC4reC4hOC4p+C4owor4Lie4LmI4Lit4LiE4LmJ4Liy4LiV4Li14LmA4Lih4Li14LiiCivguJ7guYjguK3guITguLjguJMKK+C4nuC4reC4hwor4Lie4LmJ4Lit4LiHCivguJ7guYnguK3guIfguJ7guLLguJkKK+C4nuC5iOC4reC5gOC4iOC5ieC4sgor4Lie4LmI4Lit4LmB4LiI4LmJ4LmB4Lih4LmI4Lit4Li5CivguJ7guK3guYPguIgKK+C4nuC4reC5g+C4iuC5iQor4Lie4Lit4LmD4LiK4LmJ4LmE4LiU4LmJCivguJ7guK3guJTguLUKK+C4nuC4reC4lOC4teC4nuC4reC4o+C5ieC4suC4ogor4Lie4Lit4LiU4Li5CivguJ7guK3guJTguLnguYTguJTguYkKK+C4nuC4reC5hOC4lOC5iQor4Lie4Lit4LiV4Lix4LinCivguJ7guYjguK3guJXguLIKK+C4nuC4reC4l+C4s+C5gOC4meC4sgor4Lie4Lit4LiX4Liz4Lie4Lit4LiB4Li04LiZCivguJ7guK3guJfguLUKK+C4nuC4reC4l+C4teC5iAor4Lie4Lit4LiZCivguJ7guK3guJnguYDguKPguLfguK0KK+C4nuC5iOC4reC4muC5ieC4suC4mQor4Lie4Lit4Lib4Lij4Liw4Lih4Liy4LiTCivguJ7guK3guYTguJvguYTguJTguYkKK+C4nuC5iOC4reC4nuC4p+C4h+C4oeC4suC4peC4seC4ogor4Lie4Lit4Lif4Lix4LiUCivguJ7guK3guJ/guLHguJTguJ7guK3guYDguKvguKfguLXguYjguKLguIcKK+C4nuC5ieC4reC4oQor4Lie4LmI4Lit4Lih4LmI4Liy4LiiCivguJ7guK3guKHguLXguJ7guK3guIHguLTguJkKK+C4nuC4reC4oeC4teC4reC4seC4meC4iOC4sOC4geC4tOC4mQor4Lie4LmI4Lit4LmA4Lih4Li34Lit4LiHCivguJ7guK3guKLguIHguILguLLguIHguYfguKXguLLguYLguKPguIcKK+C4nuC4reC5geC4ouC5ieC4oeC4m+C4suC4geC4geC5h+C5gOC4q+C5h+C4meC5hOC4o+C4n+C4seC4mQor4Lie4LmI4Lit4Lij4LmJ4Liy4LiHCivguJ7guYjguK3guYDguKPguLfguK3guJkKK+C4nuC4reC5geC4o+C4hwor4Lie4LmI4Lit4Lil4Li04LmJ4LiZ4LiX4Lit4LiHCivguJ7guYjguK3guYDguKXguLXguYnguKLguIcKK+C4nuC4reC5gOC4peC4teC5ieC4ouC4h+C4m+C4suC4geC5gOC4peC4teC5ieC4ouC4h+C4l+C5ieC4reC4hwor4Lie4Lit4LmC4Lil4LmA4LiZ4Li14Lii4LihCivguJ7guK3guKrguJbguLLguJnguJvguKPguLDguKHguLLguJMKK+C4nuC5iOC4reC4quC4t+C5iOC4rQor4Lie4Lit4Lir4Lit4Lih4Lib4Liy4LiB4Lir4Lit4Lih4LiE4LitCivguJ7guK3guYDguKvguKHguLLguLAKK+C4nuC4reC4reC5ieC4suC4m+C4suC4geC4geC5h+C5gOC4q+C5h+C4meC4peC4tOC5ieC4meC5hOC4geC5iAor4Lie4LiwCivguJ7guYjguLAKK+C4nuC4sOC4h+C4sgor4Lie4Liw4LiH4Liy4LiaCivguJ7guLDguIfguLLguJrguYYKK+C4nuC4sOC4iOC4hwor4Lie4Liw4LiX4Liz4Lih4Liw4Lij4LiHCivguJ7guLDguJnguK0KK+C4nuC4sOC5gOC4meC5ieC4suC4nuC4sOC4meC4rQor4Lie4Liw4LmA4LiZ4LmJ4Liy4Lie4Liw4LiZ4Li24LiHCivguJ7guLDguYDguJnguLTguJkKK+C4nuC4sOC5gOC4meC4tOC4meC5gOC4l+C4tOC4meC4l+C4tuC4gQor4Lie4Liw4LmA4LiZ4Li14Lii4LiHCivguJ7guLDguYHguJnguIcKK+C4nuC4sOC4nuC4suC4mQor4Lie4Liw4Lie4Li04LiHCivguJ7guLDguYDguJ7guLTguIcKK+C4nuC4sOC4ouC4reC4oQor4Lie4LmI4Liw4Lii4LmI4Liw4LiE4LmI4LiwCivguJ7guLDguKLguLjguJ7guKLguLjguIcKK+C4nuC4sOC4ouC4ueC4hwor4Lie4Liw4Lii4Li54LiZCivguJ7guLDguYDguKLguLTguJoKK+C4nuC4sOC5gOC4ouC4tOC4muC5hgor4Lie4Liw4LmA4Lii4Li04Lia4Lie4Liw4Lii4Liy4LiaCivguJ7guLDguKPguLjguIfguJ7guLDguKPguLHguIcKK+C4nuC4sOC5gOC4peC4ogor4Lie4Liw4LmC4Lil4LmJCivguJ7guLDguYTguKUKK+C4nuC4sOC4p+C4hwor4Lie4Liw4Lin4Lix4LiB4Lie4Liw4Lin4LiZCivguJ7guLDguKfguLIKK+C4nuC4sOC4p+C5ieC4suC4nuC4sOC4p+C4seC4hwor4Lie4Liw4Lit4LiHCivguJ7guLDguK3guLLguIHguJ7guLDguK3guLMKK+C4nuC4sOC4reC4t+C4lOC4nuC4sOC4reC4oQor4Lie4Lix4LiBCivguJ7guLHguIHguJXguKMtCivguJ7guLHguIHguJXguKPguYwKK+C4nuC4seC4geC4leC4o+C4sgor4Lie4Lix4LiB4LiV4Lij4Liy4LiB4Lik4LiV4Li0CivguJ7guLHguIHguJXguLIKK+C4nuC4seC4geC4nOC5iOC4reC4mQor4Lie4Lix4LiB4Lie4Li04LiHCivguJ7guLHguIHguYHguJ7guKcKK+C4nuC4seC4geC4n+C4t+C5ieC4mQor4Lie4Lix4LiB4LijCivguJ7guLHguIHguKrguKHguK3guIcKK+C4nuC4seC4hwor4Lie4Lix4LiH4LiB4LiyCivguJ7guLHguIfguITguLIKK+C4nuC4seC4h+C4h+C4sgor4Lie4Lix4LiH4Lic4Li34LiUCivguJ7guLHguIfguJ7guKfguKIKK+C4nuC4seC4h+C4nuC4reC4mQor4Lie4Lix4LiH4Lie4Liy4LiZCivguJ7guLHguIfguJ7guLLguJoKK+C4nuC4seC4h+C5gOC4nuC4ogor4Lie4Lix4LiKCivguJ7guLHguIrguJnguLUKK+C4nuC4seC4iuC4owor4Lie4Lix4LiN4LiI4LiBCivguJ7guLHguI3guIjguJnguYwKK+C4nuC4seC4kuC4geC4tQor4Lie4Lix4LiS4LiZLQor4Lie4Lix4LiS4LiZ4LiwCivguJ7guLHguJLguJnguLIKK+C4nuC4seC4kuC4meC4suC4geC4owor4Lie4Lix4LiS4LiZ4Liy4LiB4Liy4LijCivguJ7guLHguJQKK+C4nuC4seC4lOC4iuC4seC4gQor4Lie4Lix4LiU4LiK4LiyCivguJ7guLHguJTguJTguLbguIfguKrguYwKK+C4nuC4seC4lOC5guC4muC4gQor4Lie4Lix4LiU4LmB4Lie4LinCivguJ7guLHguJTguKLguKgKK+C4nuC4seC4lOC4peC4oQor4Lie4Lix4LiU4Lir4Lil4Lin4LiHCivguJ7guLHguJXguJXguLTguIfguKrguLAKK+C4nuC4seC4leC4owor4Lie4Lix4LiX4LiYLQor4Lie4Lix4LiX4LiY4LmMCivguJ7guLHguJfguJjguKLguLIKK+C4nuC4seC4l+C4mOC4ouC4suC4geC4owor4Lie4Lix4LiX4LiY4Liq4Li14Lih4LiyCivguJ7guLHguJfguKMKK+C4nuC4seC4mQor4Lie4Lix4LiZ4LiH4Li5CivguJ7guLHguJnguIjguYjguLIKK+C4nuC4seC4meC4iOC4swor4Lie4Lix4LiZ4LmE4LiJ4LiZCivguJ7guLHguJnguIvguLLguJQKK+C4nuC4seC4meC4leC4seC4mQor4Lie4Lix4LiZ4LiV4LiyCivguJ7guLHguJnguJXguLkKK+C4nuC4seC4meC4l+C4suC4hwor4Lie4Lix4LiZ4LiYLQor4Lie4Lix4LiZ4LiY4LmMCivguJ7guLHguJnguJjguIHguKPguJPguLUKK+C4nuC4seC4meC4mOC4mS0KK+C4nuC4seC4meC4mOC4meC4sAor4Lie4Lix4LiZ4LiY4LiZ4Liy4LiB4Liy4LijCivguJ7guLHguJnguJjguJnguLLguITguLLguKMKK+C4nuC4seC4meC4mOC4meC4swor4Lie4Lix4LiZ4LiY4Lia4Lix4LiV4LijCivguJ7guLHguJnguJjguKHguLTguJXguKMKK+C4nuC4seC4meC4mOC4sAor4Lie4Lix4LiZ4LiY4Li4CivguJ7guLHguJnguJjguLjguYwKK+C4nuC4seC4meC5gOC4meC4leC4owor4Lie4Lix4LiZ4Lib4Li1CivguJ7guLHguJnguJ7guLHguKcKK+C4nuC4seC4meC4peC4reC4gQor4Lie4Lix4LiZ4Lil4Liy4LiiCivguJ7guLHguJnguKXguLMKK+C4nuC4seC4meC4peC4tuC4gQorLeC4nuC4seC4meC4peC4t+C4rQor4Lie4Lix4LiZ4LmA4Lil4Li04LioCivguJ7guLHguJnguKfguKPguKPguKnguLIKK+C4nuC4seC4meC5geC4quC4hwor4Lie4Lix4LiZ4LmA4Lit4Li04LiNCivguJ7guLHguJoKK+C4nuC4seC4muC5gOC4guC4teC4ouC4hwor4Lie4Lix4Lia4LiQ4Liy4LiZCivguJ7guLHguJrguJzguYnguLIKK+C4nuC4seC4muC5gOC4nuC4teC4ouC4mgor4Lie4Lix4Lia4LmB4Lie4LiZ4LiH4LmA4LiK4Li04LiHCivguJ7guLHguKXguKXguKAKK+C4nuC4seC4peC4p+C4seC4mQor4Lie4Lix4LinCivguJ7guLHguKfguJ7guLHguJkKK+C4nuC4seC4p+C4sAor4Lie4Lix4Lio4LiU4Li1CivguJ7guLHguKrguJTguLgKK+C4nuC4seC4quC4lOC4uOC5hOC4m+C4o+C4qeC4k+C4teC4ouC5jAor4Lie4Lix4Liq4LiU4Li44Lig4Lix4LiT4LiR4LmMCivguJ7guLHguKrguYDguJTguLIKK+C4nuC4seC4quC4leC4o+C5jAor4Lie4Lix4Liq4LiW4Liy4LiZCivguJ7guLIKK+C4nuC4suC4gQor4Lie4Liy4LiB4LmA4Lie4Li14Lii4LijCivguJ7guLLguIHguKLguYwKK+C4nuC4suC4geC4ouC5jOC4q+C4meC4seC4hwor4Lie4Liy4LiHCivguJ7guYjguLLguIcKK+C4nuC4suC4iuC4tQor4Lie4Liy4LiL4Li34LmI4LitCivguJ7guLLguJMKK+C4nuC4suC4ky0KK+C4nuC4suC4k+C5guC4ouC4iuC4meC5jAor4Lie4Liy4LiT4Lin4Liy4LijCivguJ7guLLguJPguLLguKrguJnguYwKK+C4nuC4suC4k+C4tOC4igor4Lie4Liy4LiT4Li04LiK4Lii4LmMCivguJ7guLLguJPguLTguJnguLUKK+C4nuC4suC4k+C4tQor4Lie4Liy4LiUCivguJ7guLLguJTguITguKfguLLguKIKK+C4nuC4suC4lOC5hOC4ieC4mQor4Lie4Liy4LiU4Lie4Li04LiHCivguJ7guLLguJTguKvguLHguKfguILguYjguLLguKcKK+C4nuC4suC4lQor4Lie4Liy4LiXCivguJ7guLLguJfguKLguYwKK+C4nuC4suC4mAor4Lie4Liy4LiY4LiyCivguJ7guLLguJkKK+C4nuC5iOC4suC4mQor4Lie4Liy4LiZ4LiB4Lil4Li14Lia4Lia4Lix4LinCivguJ7guLLguJnguJvguLLguIHguIHguKPguLDguIjguLHguJoKK+C4nuC4suC4meC4owor4Lie4Liy4LiZ4Lij4Li04LiZ4LiX4Lij4LmMCivguJ7guLLguJnguYDguKPguKgKK+C4nuC4suC4meC5geC4p+C5iOC4meC4n+C5ieC4sgor4Lie4Liy4LihCivguJ7guLLguKIKK+C4nuC5iOC4suC4ogor4Lie4Liy4Lii4Lih4LmJ4LiyCivguJ7guLLguKLguYDguKPguLfguK3guITguJnguKXguLDguJfguLUKK+C4nuC4suC4ouC5gOC4o+C4t+C4reC4l+C4p+C4meC4meC5ieC4swor4Lie4Liy4Lii4LmA4Lij4Li34Lit4LmD4LiZ4Lir4LiZ4Lit4LiHCivguJ7guLLguKLguYDguKPguLfguK3guYPguJnguK3guYjguLLguIcKK+C4nuC4suC4ouC4seC4ngor4Lie4Liy4Lii4Li4CivguJ7guLLguKPguYzguYDguIvguIEKK+C4nuC4suC4o+C4kwor4Lie4Liy4Lij4LiT4LiwCivguJ7guLLguKPguLIKK+C4nuC4suC4o+C4suC4n+C4tOC4mQor4Lie4Liy4LilCivguJ7guLLguKXguIHguKPguLDguYHguIrguIcKK+C4nuC4suC4peC4o+C4teC4nuC4suC4peC4guC4p+C4suC4hwor4Lie4Liy4Lil4LiyCivguJ7guLLguKXguLUKK+C4nuC4suC4peC4teC4q+C4peC4suC4ouC4q+C4meC5ieC4sgor4Lie4Liy4Lil4Li44LiBCivguJ7guLLguYLguKUKK+C4nuC4suC5hOC4pQor4Lie4Liy4LiqCivguJ7guLLguKrguJnguYwKK+C4nuC4suC4quC4meC4sgor4Lie4Liy4Liq4Li44LiB4Lij4Li1CivguJ7guLLguKsKK+C4nuC5iOC4suC4q+C5jAor4Lie4Liy4Lir4LiZ4LiwCivguJ7guLLguKvguLAKK+C4nuC4suC4q+C4sgor4Lie4Liy4Lir4Li04Lij4LiB4LiwCivguJ7guLLguKvguLTguKPguLAKK+C4nuC4suC4q+C4uAor4Lie4Liy4Lir4Li44Lii4Li44LiX4LiY4LmMCivguJ7guLLguKvguLjguKPguLHguJQKK+C4nuC4suC5gOC4q+C4teC4ouC4owor4Lie4Liy4LisCivguJ7guLLguKwtCivguJ7guLLguKzguKHguKTguIQKK+C4nuC4suC4rOC4q+C4sAor4Lie4LizCivguJ7guLPguJnguLHguIEKK+C4nuC4s+C4nuC4p+C4gQor4Lie4Liz4Lie4Li24LihCivguJ7guLPguYYg4Lie4Li24Lih4LmGCivguJ7guLPguKXguLIKK+C4nuC4tOC4geC4pQor4Lie4Li04LiB4LmA4Lil4LiZ4LiX4Lij4Li14Lii4LmMCivguJ7guLTguIHguKrguLTguJUKK+C4nuC4tOC4geC4seC4lAor4Lie4Li04LiB4Lix4LiU4Lit4Lix4LiV4Lij4Liy4Lio4Li44Lil4LiB4Liy4LiB4LijCivguJ7guLTguIHguLHguJXguLQKK+C4nuC4tOC4geC4seC4mQor4Lie4Li04LiB4Liy4LijCivguJ7guLTguIHguLjguKUKK+C4nuC4tOC4geC4uOC4peC4m+C5iOC4sgor4Lie4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ7guLTguIbguJnguYwKK+C4nuC4tOC4huC5gOC4meC4qAor4Lie4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguJ7guLTguIbguLLguJUKK+C4nuC4tOC4hwor4Lie4Li04LiI4LiiCivguJ7guLTguIjguKUKK+C4nuC4tOC4iOC4seC4ogor4Lie4Li04LiI4Liy4LijCivguJ7guLTguIjguLLguKPguJPguYwKK+C4nuC4tOC4iOC4suC4o+C4k+C4sgor4Lie4Li04LiI4Li04LiBCivguJ7guLTguIjguLTguJUKK+C4nuC4tOC4iOC4tOC4leC4owor4Lie4Li04LiK4LiN4LmMCivguJ7guLTguIrguKIKK+C4nuC4tOC4iuC4seC4ogor4Lie4Li04LiK4Lix4Lii4Liq4LiH4LiE4Lij4Liy4LihCivguJ7guLTguIrguLLguJkKK+C4nuC4tOC4iuC4tOC4lQor4Lie4Li04LiK4Li04LiVLQor4Lie4Li04LiK4Li04LiV4Lih4Liy4LijCivguJ7guLTguYDguIrguJAKK+C4nuC4tOC5gOC4iuC4teC4ouC4owor4Lie4Li04LiR4Li54Lij4Lii4LmMCivguJ7guLTguJMKK+C4nuC4tOC4k+C4nuC4suC4l+C4ouC5jAor4Lie4Li04LiU4LiX4Li54LilCivguJ7guLTguJTguKPguIEKK+C4nuC4tOC4lOC4suC4mQor4Lie4Li04LmC4LiU4LijCivguJ7guLTguJXguKMKK+C4nuC4tOC4luC4oi0KK+C4nuC4tOC4luC4ouC4seC4meC4lOC4owor4Lie4Li04LiW4Li1CivguJ7guLTguJbguLXguJ7guLTguJbguLHguJkKK+C4nuC4tOC4l+C4oi0KK+C4nuC4tOC4l+C4ouC5jAor4Lie4Li04LiX4Lii4LiyCivguJ7guLTguJfguKLguLLguITguKEKK+C4nuC4tOC4l+C4ouC4suC4hOC4suC4owor4Lie4Li04LiX4Lii4Liy4LiY4LijCivguJ7guLTguJfguKLguLLguJ7guKUKK+C4nuC4tOC4l+C4ouC4suC4peC4seC4ogor4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLQKK+C4nuC4tOC4l+C4ueC4owor4Lie4Li04LmA4LiX4LioCivguJ7guLTguJjguLLguJkKK+C4nuC4tOC4mOC4tQor4Lie4Li04LiY4Li14LiB4LijCivguJ7guLTguJjguLXguIHguKPguKPguKEKK+C4nuC4tOC4mOC4teC4geC4suC4owor4Lie4Li04LiY4Li14LiI4Li44LmI4LihCivguJ7guLTguJjguLXguYHguJXguIEKK+C4nuC4tOC4mOC4teC4mOC4o+C4o+C4oQor4Lie4Li04LiY4Li14Lih4LiT4LiR4LilCivguJ7guLTguJjguLXguKPguLXguJXguK3guIcKK+C4nuC4tOC4mOC4teC4quC4suC4owor4Lie4Li04LiY4Li4CivguJ7guLTguJjguLjguKMKK+C4nuC4tOC4meC4l+C4uAor4Lie4Li04LiZ4LiX4Li44LiB4Lix4LibCivguJ7guLTguJnguJfguLjguKrguKMKK+C4nuC4tOC4meC4nuC4hwor4Lie4Li04LmI4LiZ4Lie4Lix4LmI4LiHCivguJ7guLTguJnguK3guJrguJ7guLTguYDguJfguLIKK+C4nuC4tOC4meC4seC4ogor4Lie4Li04LiZ4Lix4Lii4LiB4Lij4Lij4LihCivguJ7guLTguJnguLLguKgKK+C4nuC4tOC4meC4tOC4iAor4Lie4Li04LiZ4Li04LiVCivguJ7guLTguJnguLTguKgKK+C4nuC4tOC4meC4tOC4qOC4iOC4seC4ogor4Lie4Li04LmA4LiZ4LiVCivguJ7guLTguJrguLHguJXguLQKK+C4nuC4tOC4muC4suC4gQor4Lie4Li04Lia4Li44LilCivguJ7guLTguJrguLnguKUKK+C4nuC4tOC4m+C4o+C4tOC4lQor4Lie4Li04Lib4Lil4Liy4LiqCivguJ7guLTguJvguLHguKrguKrguJnguLIKK+C4nuC4tOC4nuC4o+C4o+C4mAor4Lie4Li04Lie4Lij4Lij4LiY4LiZ4LmMCivguJ7guLTguJ7guLHguIHguJ7guLTguJ7guYjguKfguJkKK+C4nuC4tOC4nuC4seC4kgor4Lie4Li04Lie4Lix4LiS4LiZ4LmMCivguJ7guLTguJ7guLLguIHguKnguYwKK+C4nuC4tOC4nuC4suC4geC4qeC4sgor4Lie4Li04Lie4Liy4LiXCivguJ7guLTguJ7guLTguJgKK+C4nuC4tOC4nuC4tOC4mC0KK+C4nuC4tOC4nuC4tOC4mOC4oOC4seC4k+C4keC5jAor4Lie4Li04Lie4Li04LiY4Lig4Lix4LiT4LiR4Liq4LiW4Liy4LiZCivguJ7guLTguKDguJ4KK+C4nuC4tOC4oOC4seC4igor4Lie4Li04Lig4Liy4LiECivguJ7guLTguKDguLnguKnguJPguLAKK+C4nuC4tOC5gOC4oOC4gQor4Lie4Li04Lih4Lib4Liw4LiB4Liy4Lij4Lix4LiHCivguJ7guLTguKHguJ4tCivguJ7guLTguKHguJ7guYwKK+C4nuC4tOC4oeC4nuC4geC4suC4o+C4seC4hwor4Lie4Li04Lih4Lie4LmM4LmA4LiC4Li14Lii4LinCivguJ7guLTguKHguJ7guYzguYPguIgKK+C4nuC4tOC4oeC4nuC5jOC4lOC4teC4lAor4Lie4Li04Lih4Lie4LmM4LiX4Lit4LiHCivguJ7guLTguKHguJ7guYzguKXguLLguKLguKHguLfguK0KK+C4nuC4tOC4oeC4nuC5jOC4quC4seC4oeC4nOC4seC4qgor4Lie4Li04Lih4Lie4LiyCivguJ7guLTguKHguJ7guLLguKDguKPguJPguYwKK+C4nuC4tOC4oeC5guC4nuC4q+C4meC4sAor4Lie4Li04Lih4LilCivguJ7guLTguKHguYDguKrguJkKK+C4nuC4tOC4oeC4suC4mQor4Lie4Li04Lih4Li44LiCCivguJ7guLTguYLguKHguIHguILguYwKK+C4nuC4tOC5guC4oeC4geC4qeC5jAor4Lie4Li04LmC4Lii4LiB4Lie4Li04LmA4LiB4LiZCivguJ7guLTguYLguKLguIQKK+C4nuC4tOC4owor4Lie4Li04Lij4Lit4LiUCivguJ7guLTguKPguLLguIHguKUKK+C4nuC4tOC4o+C4suC4mgor4Lie4Li04Lij4Liy4LihCivguJ7guLTguKPguLLguKXguLHguKIKK+C4nuC4tOC4o+C4tOC4oi0KK+C4nuC4tOC4o+C4tOC4ouC4nuC4pOC4meC4l+C5jAor4Lie4Li04Lij4Li04Lii4LmC4Lii4LiY4LiyCivguJ7guLTguKPguLTguKLguLAKK+C4nuC4tOC4o+C4teC5ieC4nuC4tOC5hOC4owor4Lie4Li04Lij4Li44LiTCivguJ7guLTguKPguLjguJgKK+C4nuC4tOC4o+C4uOC4rOC4q+C5jAor4Lie4Li04LmA4Lij4Liy4LiwCivguJ7guLTguYLguKPguJgKK+C4nuC4tOC5guC4o+C4mOC4meC4sAor4Lie4Li04LmE4LijCivguJ7guLTguKXguLHguIfguIHguLLguKrguLIKK+C4nuC4tOC4peC4suC4mwor4Lie4Li04Lil4Liy4Lil4LiqCivguJ7guLTguKXguLLguKoKK+C4nuC4tOC4peC4tOC4m+C4lOC4sgor4Lie4Li04Lil4Li24LiBCivguJ7guLTguKXguLbguIHguIHguLbguIHguIHguLfguK0KK+C4nuC4tOC4peC4tuC4geC4nuC4tOC4peC4seC5iOC4mQor4Lie4Li04LmC4Lil4LiZCivguJ7guLTguYLguKXguKUKK+C4nuC4tOC5hOC4pQor4Lie4Li04LioCivguJ7guLTguKjguKfguIcKK+C4nuC4tOC4qOC4p+C4suC4qgor4Lie4Li04Lio4Liy4LilCivguJ7guLTguKjguLjguJfguJjguYwKK+C4nuC4tOC4qOC4uOC4l+C4mOC4tOC5jAor4Lie4Li04LmA4Lio4LipCivguJ7guLTguKkKK+C4nuC4tOC4qS0KK+C4nuC4tOC4qeC4kOC4suC4mQor4Lie4Li04Lip4LiZ4Liy4Lio4LiZ4LmMCivguJ7guLTguKnguKrguIcKK+C4nuC4tOC4qeC4quC4oeC5guC4ouC4hAor4Lie4Li04Lip4Liq4Li44LiZ4Lix4LiC4Lia4LmJ4LiyCivguJ7guLTguKnguKrguLjguKPguLLguYDguKPguLfguYnguK3guKPguLHguIcKK+C4nuC4tOC4quC4lOC4suC4owor4Lie4Li04Liq4Lih4LijCivguJ7guLTguKrguKHguLHguKIKK+C4nuC4tOC4quC4oeC4seC4ouC5gOC4o+C4teC4ouC4h+C4q+C4oeC4reC4mQor4Lie4Li04Liq4Lix4LiHCivguJ7guLTguKrguLHguIoKK+C4nuC4tOC4quC4seC4jeC4jeC4tQor4Lie4Li04Liq4Lix4LiiCivguJ7guLTguKrguLTguJAKK+C4nuC4tOC4quC4uOC4l+C4mOC4tOC5jAor4Lie4Li04Liq4Li54LiI4LiZ4LmMCivguJ7guLTguKvguIQKK+C4nuC4tOC4q+C5gOC4hOC4meC4l+C4o+C5jAor4Lie4Li04Lir4Liy4LijCivguJ7guLTguKzguLLguKMKK+C4nuC4tQor4Lie4Li14LmICivguJ7guLXguYkKK+C4nuC4teC4iuC4hOC4k+C4tOC4lQor4Lie4Li14LmI4LiZ4LmJ4Lit4LiHCivguJ7guLXguYjguYDguJrguLTguYnguKEKK+C4nuC4teC5ieC5guC4nuC5iQor4Lie4Li14LijLQor4Lie4Li14Lij4Liw4Lih4Li04LiUCivguJ7guLXguYjguYDguKXguLXguYnguKLguIcKK+C4nuC4tuC4hwor4Lie4Li24LmI4LiHCivguJ7guLbguYjguIfguIjguKHguLnguIHguITguJnguK3guLfguYjguJnguKvguLLguKLguYPguIgKK+C4nuC4tuC4h+C5g+C4iAor4Lie4Li24LiH4LiV4LiyCivguJ7guLbguYjguIfguKXguLPguYHguILguYnguIfguJXguLHguKfguYDguK3guIcKK+C4nuC4tuC5iOC4mgor4Lie4Li24LihCivguJ7guLbguKHguJ7guLMKK+C4nuC4t+C4igor4Lie4Li34LiK4LiE4Liy4LihCivguJ7guLfguIrguIrguLHguYnguJnguJXguYjguLMKK+C4nuC4t+C4iuC4iuC4seC5ieC4meC4quC4ueC4hwor4Lie4Li34LiK4Lie4Lix4LiZ4LiY4Li44LmMCivguJ7guLfguJQKK+C4nuC4t+C5ieC4mQor4Lie4Li34LmJ4LiZ4LmGCivguJ7guLfguYnguJnguITguKfguLLguKHguKPguLnguYkKK+C4nuC4t+C5ieC4meC4kOC4suC4mQor4Lie4Li34LmJ4LiZ4LiU4Li1CivguJ7guLfguYnguJnguYDguJTguLTguKEKK+C4nuC4t+C5ieC4meC4l+C4teC5iAor4Lie4Li34LmJ4LiZ4Lia4LmJ4Liy4LiZCivguJ7guLfguYnguJnguYDguJ4KK+C4nuC4t+C5ieC4meC5gOC4oeC4t+C4reC4hwor4Lie4Li34LmJ4LiZ4LmA4Liq4Li14LiiCivguJ7guLgKK+C4nuC4uOC4gQor4Lie4Li44LiB4Liy4LihCivguJ7guLjguIcKK+C4nuC4uOC5iOC4hwor4Lie4Li44LiH4LmB4LiBCivguJ7guLjguIfguIjguIcKK+C4nuC4uOC4h+C4lOC4rQor4Lie4Li44LiH4LiX4Liw4Lil4Liy4LiiCivguJ7guLjguIfguJvguKXguLIKK+C4nuC4uOC4h+C4m+C4peC4suC4iuC5iOC4reC4mQor4Lie4Li44LiH4Lie4Lin4LiHCivguJ7guLjguIfguJ7guYjguKfguIcKK+C4nuC4uOC5iOC4h+C4q+C4peC4suC4pwor4Lie4Li44LmI4LiH4Lir4Lit4LiB4LmA4LiC4LmJ4Liy4Lij4LiBCivguJ7guLjguYjguIfguYHguKvguKXguJkKK+C4nuC4uOC4kgor4Lie4Li44LiS4Li0CivguJ7guLjguJQKK+C4nuC4uOC4lOC4leC4suC4mQor4Lie4Li44LiX4LiYCivguJ7guLjguJfguJgtCivguJ7guLjguJfguJjguIHguLLguKUKK+C4nuC4uOC4l+C4mOC4hOC4uOC4kwor4Lie4Li44LiX4LiY4LiI4Lix4LiB4LijCivguJ7guLjguJfguJjguYDguIjguJTguLXguKLguYwKK+C4nuC4uOC4l+C4mOC4iuC4suC4lAor4Lie4Li44LiX4LiY4LiO4Li14LiB4LiyCivguJ7guLjguJfguJjguJXguLHguJnguJXguKPguLAKK+C4nuC4uOC4l+C4mOC4m+C4j+C4tOC4oeC4sgor4Lie4Li44LiX4LiY4Lib4LiP4Li04Lih4Liy4LiB4LijCivguJ7guLjguJfguJjguKHguLLguKHguIHguLAKK+C4nuC4uOC4l+C4mOC4o+C4seC4geC4qeC4sgor4Lie4Li44LiX4LiY4Lio4Lix4LiB4Lij4Liy4LiKCivguJ7guLjguJfguJjguKjguLLguKrguJnguLTguIHguIrguJkKK+C4nuC4uOC4l+C4mOC4quC4oeC4seC4ogor4Lie4Li44LiX4LiY4LiwCivguJ7guLjguJfguJjguLHguIfguIHguLnguKMKK+C4nuC4uOC4l+C4mOC4seC4meC4lOC4owor4Lie4Li44LiX4LiY4Liy4LiH4LiB4Li54LijCivguJ7guLjguJfguJjguLLguKfguLLguKoKK+C4nuC4uOC4l+C4mOC4tAor4Lie4Li44LiX4LiY4Li44Lib4Lia4Liy4LiX4LiB4Liy4LilCivguJ7guLjguJfguYLguJjguYgKK+C4nuC4uOC4l+C4o+C4sgor4Lie4Li44LiYCivguJ7guLjguJ7guK3guIcKK+C4nuC4uOC5iOC4oQor4Lie4Li44LmI4Lih4LiC4LmJ4Liy4Lin4Lia4Li04LiT4LiR4LmMCivguJ7guLjguYjguKHguJ7guKfguIcKK+C4nuC4uOC5iOC4oeC4oeC5iOC4suC4ogor4Lie4Li44Lih4LmA4Lij4Li14Lii4LiHCivguJ7guLjguYnguKIKK+C4nuC4uQor4Lie4Li54LmICivguJ7guLnguYjguIHguKXguLTguYjguJkKK+C4nuC4ueC5iOC4geC4seC4mQor4Lie4Li54LiB4Liy4LihCivguJ7guLnguJQKK+C4nuC4ueC4lOC4hOC4peC5iOC4reC4h+C5gOC4q+C4oeC4t+C4reC4meC4peC5iOC4reC4h+C4meC5ieC4swor4Lie4Li54LiU4LiI4LiZ4Lil4Li04LiH4Lir4Lil4Lix4LiaCivguJ7guLnguJTguIjguKPguLTguIfguJfguLPguIjguKPguLTguIcKK+C4nuC4ueC4lOC5gOC4m+C5h+C4meC4leC5iOC4reC4ouC4q+C4reC4ogor4Lie4Li54LiU4LmA4Lib4LmH4LiZ4LiZ4Lix4LiiCivguJ7guLnguJTguYDguJvguYfguJnguJnguYnguLPguYTguKvguKXguYTguJ/guJTguLHguJoKK+C4nuC4ueC4lOC5gOC4m+C5h+C4meC5hOC4nwor4Lie4Li54LiU4LmE4Lib4Liq4Lit4LiH4LmE4Lie4LmA4Lia4Li14LmJ4LiiIOC4meC4tOC5iOC4h+C5gOC4quC4teC4ouC4leC4s+C4peC4tuC4h+C4l+C4reC4hwor4Lie4Li54LiU4Lit4Lii4LmI4Liy4LiH4Lih4Liw4LiZ4Liy4Lin4LmE4Lih4LmI4Lih4Li14LiZ4LmJ4LizCivguJ7guLnguJkKK+C4nuC4ueC5ieC4mQor4Lie4Li54Lie4Lit4LiZCivguJ7guLnguYjguKPguLDguKvguIcKK+C5gOC4ngor4LmA4Lie4LmH4LiBCivguYDguJ7guIHguLIKK+C5gOC4nuC4hOC4sAor4LmA4Lie4LmH4LiHCivguYDguJ7guYjguIcKK+C5gOC4nuC5iOC4h+C5gOC4peC5h+C4hwor4LmA4Lie4LmH4LiICivguYDguJ7guYfguIjguYTguKHguYkKK+C5gOC4nuC4iuC4ieC4peC4ueC4geC4o+C4o+C4oQor4LmA4Lie4LiK4LiM4LiG4Liy4LiVCivguYDguJ7guIrguKMKK+C5gOC4nuC4iuC4oy0KK+C5gOC4nuC4iuC4o+C4geC4peC4seC4mgor4LmA4Lie4LiK4Lij4LiL4Li14LiBCivguYDguJ7guIrguKPguJTguLIKK+C5gOC4nuC4iuC4o+C4leC4seC4lOC5gOC4nuC4iuC4owor4LmA4Lie4LiK4Lij4LiV4Liy4LmB4Lih4LinCivguYDguJ7guIrguKPguJnguYnguLPguITguYnguLLguIcKK+C5gOC4nuC4iuC4o+C4meC5ieC4s+C4q+C4meC4tuC5iOC4hwor4LmA4Lie4LiK4Lij4LiZ4Li04Lil4LiI4Li04LiZ4LiU4LiyCivguYDguJ7guIrguKPguJvguLLguJPguLUKK+C5gOC4nuC4iuC4o+C4o+C5iOC4p+C4hwor4LmA4Lie4LiK4Lij4Lij4LmJ4Liy4LinCivguYDguJ7guIrguKPguKTguIHguKnguYwKK+C5gOC4nuC4iuC4o+C4peC4ueC4gQor4LmA4Lie4LiK4Lij4Liq4Lix4LiH4LiG4Liy4LiVCivguYDguJ7guIrguKPguKvguKXguLXguIEKK+C5gOC4nuC4iuC4o+C4q+C4tuC4hwor4LmA4Lie4LiK4Lij4Liy4Lii4Li44LiYCivguYDguJ7guYfguI0KK+C5gOC4nuC4keC4ueC4o+C4tOC4ouC5jAor4LmA4Lie4LiT4Li1CivguYDguJ7guYfguJTguJfguLnguKUKK+C5gOC4nuC4lOC4suC4mQor4LmA4Lie4LiU4Liy4LiZ4Lia4Li04LiZCivguYDguJ7guJXguKMKK+C5gOC4nuC4lwor4LmA4Lie4LiX4LiZ4LiyCivguYDguJ7guJfguLLguKIKK+C5gOC4nuC4l+C4uOC4muC4suC4ogor4LmA4Lie4LmC4LiXCivguYDguJ7guYLguJfguJrguLLguKIKK+C5gOC4nuC5iOC4meC4nuC5iOC4suC4mQor4LmA4Lie4LiZ4Li14Lii4LiUCivguYDguJ7guYTguJnguKIKK+C5gOC4nuC5ieC4ogor4LmA4Lie4Lij4LiHCivguYDguJ7guKPguIvguLXguYLguK3guJTguLTguYDguKHguLXguKLguKEKK+C5gOC4nuC4o+C4sgor4LmA4Lie4Lij4Liy4LiH4Liy4LiiCivguYDguJ7guKPguLLguJ7guKPguLTguYnguIcKK+C5gOC4nuC4o+C4suC5gOC4nuC4o+C4tOC4qAor4LmA4Lie4Lij4Liy4LiwCivguYDguJ7guKPguLLguLDguInguLDguJnguLHguYnguJkKK+C5gOC4nuC4o+C4suC4sOC4p+C5iOC4sgor4LmA4Lie4Lij4Li04LiUCivguYDguJ7guKPguLTguKgKK+C5gOC4nuC4o+C4tOC4qOC4nuC4o+C4suC4ogor4LmA4Lie4Lij4Li04Lio4Lie4Lij4Li04LmJ4LiHCivguYDguJ7guKPguLTguKjguYHguJ7guKPguYnguKcKK+C5gOC4nuC4o+C4teC4ouC4gQor4LmA4Lie4Lij4Li14Lii4LiB4Lie4Lij4LmJ4Lit4LiHCivguYDguJ7guKPguLXguKLguIcKK+C5gOC4nuC4o+C4teC4ouC4h+C4hOC4reC4q+C5iOC4suC4mQor4LmA4Lie4Lij4Li14Lii4LiH4LmA4Lih4Li34Lit4LiHCivguYDguJ7guKPguLXguKLguJoKK+C5gOC4nuC4o+C4teC5ieC4ouC4oQor4LmA4Lie4Lij4Li14LmJ4Lii4Lih4Lie4Lij4Liy4LiiCivguYDguJ7guKPguLXguKLguKcKK+C5gOC4nuC4o+C4teC4ouC4p+C4peC4oQor4LmA4Lie4Lij4Li34LmI4LitCivguYDguJ7guKPguLfguK3guIcKK+C5gOC4nuC4pQor4LmA4Lie4Lil4LiHCivguYDguJ7guKXguIfguYDguIrguLTguJQKK+C5gOC4nuC4peC4h+C4leC4o+C4sOC5gOC4iuC4tOC4jQor4LmA4Lie4Lil4LiH4Lii4Liy4LinCivguYDguJ7guKXguIfguKrguLLguJjguLjguIHguLLguKMKK+C5gOC4nuC4peC4h+C5gOC4quC4oeC4rQor4LmA4Lie4Lil4LiH4Lir4LiZ4LmJ4Liy4Lie4Liy4LiX4Lii4LmMCivguYDguJ7guKXguYfguJQKK+C5gOC4nuC4peC5ieC5guC4nuC4peC5iQor4LmA4Lie4Lil4LiyCivguYDguJ7guKXguLLguLAKK+C5gOC4nuC4peC4suC4sOC5geC4nuC4peC4sAor4LmA4Lie4Lil4Li04LiHCivguYDguJ7guKXguLTguIfguIHguLHguKXguJvguYwKK+C5gOC4nuC4peC4tOC4h+C4n+C5ieC4sgor4LmA4Lie4Lil4Li04LiU4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLTguJkKK+C5gOC4nuC4peC4teC4ogor4LmA4Lie4Lil4Li14LmJ4LiiCivguYDguJ7guKXguLXguYjguKLguIcKK+C5gOC4nuC4peC4teC5iOC4ouC4h+C4nuC4peC5ieC4swor4LmA4Lie4Lil4Li14Lii4LmD4LiICivguYDguJ7guKgKK+C5gOC4nuC4qOC4ouC4seC4meC4lOC4owor4LmA4Lie4LiqCivguYDguJ7guKrguKXguLLguJQKK+C5gOC4nuC5iOC4rQor4LmA4Lie4LmJ4LitCivguYDguJ7guYnguK3guYDguIjguYnguK0KK+C5gOC4nuC4reC4tOC4jQor4LmA4Lie4LiwCivguYDguJ7guLIKK+C5gOC4nuC4suC4nuC4sOC4h+C4sgor4LmA4Lie4Liy4Lie4Liy4LilCivguYDguJ7guLLguLAKK+C5gOC4nuC4tOC4gQor4LmA4Lie4Li04LiB4LmA4LiJ4LiiCivguYDguJ7guLTguIHguJbguK3guJkKK+C5gOC4nuC4tOC4hwor4LmA4Lie4Li04LmI4LiHCivguYDguJ7guLTguJTguYDguJ7guYnguKIKK+C5gOC4nuC4tOC5iOC4oQor4LmA4Lie4Li04LmI4Lih4LmA4LiV4Li04LihCivguYDguJ7guLTguYjguKHguJ7guLnguJkKK+C5gOC4nuC4teC5ieC4ogor4LmA4Lie4Li14LmJ4Lii4LiB4Lin4Liy4LiZCivguYDguJ7guLXguYnguKLguIHguKfguYnguLLguJkKK+C5gOC4nuC4teC4ouC4hwor4LmA4Lie4Li14LmJ4Lii4LiHCivguYDguJ7guLXguKLguIfguJTguLHguIcKK+C5gOC4nuC4teC4ouC4h+C4meC4seC5ieC4mQor4LmA4Lie4Li14Lii4LiH4LiZ4Li14LmJCivguYDguJ7guLXguKLguIfguJ7guK0KK+C5gOC4nuC4teC4ouC4h+C4reC4rQor4LmA4Lie4Li14Lii4LiK4LiZ4LmMCivguYDguJ7guLXguKLguJkKK+C5gOC4nuC4teC5ieC4ouC4mQor4LmA4Lie4Li14LmJ4Lii4LiZ4Lic4Lix4LiUCivguYDguJ7guLXguKLguJoKK+C5gOC4nuC4teC4ouC4muC4nuC4o+C5ieC4reC4oQor4LmA4Lie4Li14Lii4LijCivguYDguJ7guLfguYjguK0KK+C5gOC4nuC4t+C5iOC4reC4mQor4LmA4Lie4Li34LmI4Lit4LiZ4LmA4LiB4Lil4LitCivguYDguJ7guLfguYjguK3guJnguYDguIjguYnguLLguJrguYjguLLguKcKK+C5gOC4nuC4t+C5iOC4reC4meC5gOC4iOC5ieC4suC4quC4suC4pwor4LmA4Lie4Li34LmI4Lit4LiZ4Lia4LmJ4Liy4LiZCivguYDguJ7guLfguYjguK3guJnguJ3guLnguIcKK+C5geC4ngor4LmB4Lie4LmJCivguYHguJ7guILguJnguLLguJnguKLguJnguJXguYwKK+C5geC4nuC4hwor4LmB4Lie4LmI4LiHCivguYHguJ7guIfguJ7guKfguKIKK+C5geC4nuC4h+C4nuC4p+C4ouC4neC4o+C4seC5iOC4hwor4LmB4Lie4LmH4LiH4LmB4Lie4LinCivguYHguJ7guYHguJXguIEKK+C5geC4nuC4l+C4oi0KK+C5geC4nuC4l+C4ouC5jAor4LmB4Lie4LiX4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguYHguJ7guJfguKLguLIKK+C5geC4nuC5ieC4l+C5ieC4reC4hwor4LmB4Lie4LiZCivguYHguJ7guYjguJkKK+C5geC4nuC4meC4gQor4LmB4Lie4LiZ4LiH4LmA4LiK4Li04LiHCivguYHguJ7guYnguYDguJvguYfguJnguJ7guKPguLAg4LiK4LiZ4Liw4LmA4Lib4LmH4LiZ4Lih4Liy4LijCivguYHguJ7guYnguYDguJvguKPguLXguKLguJoKK+C5geC4nuC5ieC4nOC4oQor4LmB4Lie4LmJ4Lic4Lix4LinCivguYHguJ7guYnguJ/guLHguJkKK+C5geC4nuC5ieC4oOC4seC4ouC4leC4seC4pwor4LmB4Lie4LmJ4LmA4Lih4Li14LiiCivguYHguJ7guKMKK+C5geC4nuC4o+C5iAor4LmB4Lie4Lij4LiBCivguYHguJ7guKPguYjguILguYjguLLguKcKK+C5geC4nuC4o+C5iOC4hwor4LmB4Lie4Lij4LmI4LiH4Lie4Lij4Liy4LiiCivguYHguJ7guKPguKcKK+C5geC4nuC4o+C5ieC4pwor4LmB4Lie4Lij4Lin4Lie4Lij4Liy4LiiCivguYHguJ7guKPguKfguJ7guKPguLLguKcKK+C5geC4nuC4o+C5iOC4q+C4peC4suC4ogor4LmB4Lie4LmJ4Lij4Li54LmJCivguYHguJ7guYnguYHguKPguIcKK+C5geC4nuC4peC4hwor4LmB4Lie4Lil4LiX4Li04LiZ4Lix4LihCivguYHguJ7guKXguKEKK+C5geC4nuC4peC5gOC4peC5gOC4lOC4teC4ouC4oQor4LmB4Lie4Lil4LiwCivguYHguJ7guKXguLDguYLguKXguKEKK+C5geC4nuC4peC4ueC4geC4muC4p+C4mgor4LmB4Lie4LinCivguYHguJ7guYnguKcKK+C5geC4nuC4qOC4ouC5jAor4LmB4Lie4Lio4Lii4LiyCivguYHguJ7guLAKK+C5geC4nuC4sOC4o+C4seC4muC4muC4suC4mwor4LmB4Lie4Liw4LmC4Lil4LihCivguYLguJ4KK+C5guC4nuC4gQor4LmC4Lie4LiB4Lie4Liy4LiiCivguYLguJ7guIcKK+C5guC4nuC4h+C4nuC4suC4hwor4LmC4Lie4LiK4LiM4LiH4LiE4LmMCivguYLguJ7guIvguLTguJXguKPguK3guJkKK+C5guC4nuC4lAor4LmC4Lie4LiX4Liw4LmA4LilCivguYLguJ7guYHguJfguKrguYDguIvguLXguKLguKEKK+C5guC4nuC4mAor4LmC4Lie4LiY4Li0LQor4LmC4Lie4LiY4Li04LmMCivguYLguJ7guJjguLTguI3guLLguJMKK+C5guC4nuC4mOC4tOC4muC4seC4peC4peC4seC4h+C4geC5jAor4LmC4Lie4LiY4Li04Lib4Lix4LiB4LiC4Li04Lii4LiY4Lij4Lij4LihCivguYLguJ7guJjguLTguKrguKHguKDguLLguKMKK+C5guC4nuC4mOC4tOC4quC4seC4leC4p+C5jAor4LmC4Lie4LiZCivguYLguJ7guYnguJkKK+C5guC4nuC4meC4l+C4sOC4meC4sgor4LmC4Lie4LmJ4LiZ4LiX4Liw4LmA4LilCivguYLguJ7guJnguYDguJ7guJkKK+C5guC4nuC4muC4suC4ogor4LmC4Lie4Lic4Lix4LiZCivguYLguJ7guKIKK+C5guC4nuC4ouC4geC5iuC4p+C4mQor4LmC4Lie4Lii4LihCivguYLguJ7guKLguKHguKLguLLguJkKK+C5guC4nuC4ouC4oeC4seC4mQor4LmC4Lie4Lii4Lih4Liy4LiZCivguYLguJ7guKPguIEKK+C5guC4nuC4o+C4hwor4LmC4Lie4Lij4LiH4LmB4Liq4LihCivguYLguJ7guKPguYLguJfguYHguK3guIHguJfguLTguYDguJnguLXguKLguKEKK+C5guC4nuC4o+C4oeC4teC5gOC4l+C4teC4ouC4oQor4LmC4Lie4Lij4Liw4LiU4LiBCivguYLguJ7guKXguYgKK+C5guC4nuC4peC4hwor4LmC4Lie4Lil4LmI4LiHCivguYLguJ7guKXguYnguIcKK+C5guC4nuC4peC4mQor4LmC4Lie4Lil4LmJ4LmA4Lie4Lil4LmJCivguYLguJ7guKXguLAKK+C5guC4nuC4quC4ngor4LmE4LieCivguYTguJ7guYgKK+C5hOC4nuC4iOC4tOC4leC4owor4LmE4Lie4LiK4LiZCivguYTguJ7guIrguKLguJnguJXguYwKK+C5hOC4nuC4keC4ueC4o+C4ouC5jAor4LmE4Lie4LmC4LiU4LijCivguYTguJ7guJfguLUKK+C5hOC4nuC4muC4ueC4peC4ouC5jAor4LmE4Lie4LmI4Lib4LmK4Lit4LiBCivguYTguJ7guJ7guKPguKPguJMKK+C5hOC4nuC5gOC4nuC4tOC4lAor4LmE4Lie4LmI4LmE4LifCivguYTguJ7guKHguK3guIEKK+C5hOC4nuC4oeC5ieC4sgor4LmE4Lie4LijCivguYTguJ7guKPguYgKK+C5hOC4nuC4o+C4hOC4tOC5ieC4pwor4LmE4Lie4Lij4LiI4Li04LiV4LijCivguYTguJ7guKPguIrguJkKK+C5hOC4nuC4o+C4iuC4ouC4meC4leC5jAor4LmE4Lie4Lij4LiR4Li54Lij4Lii4LmMCivguYTguJ7guKPguJfguLUKK+C5hOC4nuC4o+C4muC4ueC4peC4ouC5jAor4LmE4Lie4Lij4Lib4Liy4LiBCivguYTguJ7guKPguYjguJ7guKUKK+C5hOC4nuC4o+C5iOC4n+C5ieC4sgor4LmE4Lie4Lij4Lij4Liw4Lir4LiHCivguYTguJ7guKPguYDguKPguLLguLAKK+C5hOC4nuC4o+C4p+C4seC4mQor4LmE4Lie4Lij4Liq4LiT4LiR4LmMCivguYTguJ7guKPguYjguKrguKEKK+C5hOC4nuC4o+C5iOC4quC5iOC4p+C4ogor4LmE4Lie4Lij4Liq4Lix4LiT4LiR4LmMCivguYTguJ7guKPguKrguLLguJPguJHguYwKK+C5hOC4nuC4o+C4quC4suC4oeC4geC4rQor4LmE4Lie4Lij4LmI4Lir4Lil4Lin4LiHCivguYTguJ7guKPguLHguIoKK+C5hOC4nuC4o+C4seC4ii0KK+C5hOC4nuC4o+C4swor4LmE4Lie4Lij4Li04LiZCivguYTguJ7guKPguLTguJnguJfguKPguYwKK+C5hOC4nuC4o+C4tQor4LmE4Lie4Lij4Li5CivguYTguJ7guYDguKPguLLguLAKK+C5hOC4nuC5guC4o+C4iOC4meC5jAor4LmE4Lie4LilCivguYTguJ7guKXguYgKK+C5hOC4nuC4peC5iOC4q+C4peC4seC4hwor4LmE4Lie4Lio4Liy4LiCCivguYTguJ7guKjguLLguIItCivguYTguJ7guKjguLLguILguJrguLjguKPguJPguKHguLUKK+C5hOC4nuC4qOC4suC4guC4oeC4suC4qgor4LmE4Lie4Lio4Liy4LilCivguYTguJ7guYDguKjguKkKK+C5hOC4nuC4quC4ngor4LmE4Lie4Liq4Li04LiQCivguYTguJ7guKvguLLguKMKK+C4nwor4Lif4LiBCivguJ/guIHguIrguYnguLPguJTguLPguYDguILguLXguKLguKcKK+C4n+C5ieC4hwor4Lif4Lij4Lix4LiB4LmC4LiX4LiqCivguJ/guKPguLUKK+C4n+C4o+C4teC4muC4suC4o+C5jAor4Lif4Lil4Li54Lit4Lit4Lij4Li14LiZCivguJ/guYjguK0KK+C4n+C5ieC4rQor4Lif4Lit4LiBCivguJ/guK3guIHguIvguLHguIEKK+C4n+C4reC4geC4nOC5ieC4sgor4Lif4Lit4LiB4Lie4Lii4Liy4LiZCivguJ/guK3guIHguYLguKXguKvguLTguJUKK+C4n+C4reC4geC4q+C4meC4seC4hwor4Lif4Lit4LiHCivguJ/guYjguK3guIcKK+C4n+C5ieC4reC4hwor4Lif4LmJ4Lit4LiH4LiB4Lil4Lix4LiaCivguJ/guK3guIfguIHguLLguKEKK+C4n+C5ieC4reC4h+C4leC4seC4p+C5gOC4reC4hwor4Lif4Lit4LiH4LmA4LiV4LmJ4Liy4Lir4Li54LmJCivguJ/guK3guIfguJfguLDguYDguKUKK+C4n+C4reC4h+C4meC5ieC4swor4Lif4LmI4Lit4LiH4Lif4Li5CivguJ/guK3guIfguKHguLHguJkKK+C4n+C5ieC4reC4h+C5geC4ouC5ieC4hwor4Lif4LmJ4Lit4LiH4Lij4LmJ4Lit4LiHCivguJ/guK3guJQKK+C4n+C4reC4lOC5geC4n+C4lAor4Lif4Lit4LiZCivguJ/guYjguK3guJkKK+C4n+C5ieC4reC4mQor4Lif4LmJ4Lit4LmB4Lif4LmJCivguJ/guK3guKPguYzguKHguLLguKXguJTguLXguYTguK7guJTguYwKK+C4n+C4reC4o+C5jOC4oeC4suC4peC4tOC4mQor4Lif4Lit4Liq4Lif4Lit4Lij4Lix4LiqCivguJ/guK3guKrguYDguJ/guJUKK+C4n+C4sOC4n+C4seC4lAor4Lif4Liw4Lif4Lix4LmI4LiZCivguJ/guLDguJ/guYjguLLguKIKK+C4n+C4seC4gQor4Lif4Lix4LiB4LiC4LmJ4Liy4LinCivguJ/guLHguIHguJXguLHguKcKK+C4n+C4seC4geC4l+C4reC4hwor4Lif4Lix4LiB4Lif4Li44LmJ4LiZCivguJ/guLHguIHguJ/guLnguKEKK+C4n+C4seC4geC5gOC4q+C4peC4t+C4reC4hwor4Lif4Lix4LiHCivguJ/guLHguIfguIHguYzguIrguLHguJkKK+C4n+C4seC4h+C4guC4tuC5ieC4mQor4Lif4Lix4LiH4LmE4LiU4LmJCivguJ/guLHguIfguYTguKHguYjguYTguJTguYnguKjguLHguJ7guJfguYwg4LiI4Lix4Lia4LmE4Lib4LiB4Lij4Liw4LmA4LiU4Li14Lii4LiUCivguJ/guLHguIfguKvguLnguYTguKfguYnguKvguLkKK+C4n+C4seC4h+C4reC4reC4gQor4Lif4Lix4LiUCivguJ/guLHguJTguYDguJ/guLXguKLguJQKK+C4n+C4seC4mQor4Lif4Lix4LmI4LiZCivguJ/guLHguYnguJkKK+C4n+C4seC4meC4hOC4peC4t+C5iOC4mQor4Lif4Lix4LiZ4LiK4LmJ4Liy4LiHCivguJ/guLHguJnguJTguLLguJoKK+C4n+C4seC4meC4luC4suC4p+C4owor4Lif4Lix4LiZ4LmB4LiX4LmJCivguJ/guLHguJnguJnguYnguLPguJnguKEKK+C4n+C4seC4meC4m+C4peC4sgor4Lif4Lix4LiZ4Lid4LmI4LiyCivguJ/guLHguYjguJnguYDguJ3guLfguK0KK+C4n+C4seC4meC5gOC4n+C4t+C4reC4hwor4Lif4Lix4LmI4LiZ4LmA4Lif4Li34Lit4LiZCivguJ/guLHguJnguKHguYnguLIKK+C4n+C4seC4meC5gOC4peC4t+C5iOC4reC4ogor4Lif4Lix4LiZ4Lir4LiZ4Li5CivguJ/guLHguJnguKvguKXguK0KK+C4n+C5ieC4sgor4Lif4Liy4LiBCivguJ/guYnguLLguITguLDguJnguK3guIcKK+C4n+C5ieC4suC5gOC4hOC4t+C4reC4h+C4quC4seC4meC4q+C4peC4seC4hwor4Lif4Liy4LiHCivguJ/guYjguLLguIcKK+C4n+C4suC4h+C4peC4reC4ogor4Lif4Liy4LiUCivguJ/guLLguJTguYDguITguKPguLLguLDguKvguYwKK+C4n+C4suC4lOC4q+C4seC4pwor4Lif4Liy4LiX4Lit4LihCivguJ/guLLguJkKK+C4n+C5ieC4suC4nOC5iOC4sgor4Lif4LmJ4Liy4Lid4LmI4LitCivguJ/guYjguLLguKEKK+C4n+C5ieC4suC4oeC4uOC5iOC4ogor4Lif4LmJ4Liy4LmE4Lih4LmI4LiB4Lij4Liw4LmA4LiX4Li34Lit4LiZ4Liq4Lix4LiZ4Lir4Lil4Lix4LiHCivguJ/guLLguKIKK+C4n+C4suC4ouC4meC5ieC4s+C4leC4sgor4Lif4Liy4Lii4Lih4Li34LitCivguJ/guLLguKPguYzguKEKK+C4n+C5ieC4suC4o+C5ieC4reC4hwor4Lif4LmJ4Liy4LmB4Lil4LiaCivguJ/guLLguKrguIvguLTguKrguJXguYwKK+C4n+C5ieC4suC4q+C4peC4seC4pwor4Lif4Li04LiBCivguJ/guLTguJQKK+C4n+C4tOC4mgor4Lif4Li04Lil4LmM4LihCivguJ/guLTguKfguKrguYwKK+C4n+C4tOC4quC4tOC4geC4quC5jAor4Lif4Li14LmICivguJ/guLXguYkKK+C4n+C4t+C4mQor4Lif4Li34LmJ4LiZCivguJ/guLfguYnguJnguJXguLHguKcKK+C4n+C4t+C5ieC4meC4neC4reC4ogor4Lif4Li34LmJ4LiZ4Lif4Li5CivguJ/guLfguYnguJnguK3guIfguITguYwKK+C4n+C4t+C4oQor4Lif4Li4CivguJ/guLjguYnguIcKK+C4n+C4uOC5ieC4h+C4i+C5iOC4suC4mQor4Lif4Li44LmJ4LiH4LmA4Lif4LmJ4LitCivguJ/guLjguYnguIfguYDguJ/guLfguYjguK3guIcKK+C4n+C4uOC4lQor4Lif4Li44LiV4Lia4Lit4LilCivguJ/guLjguJkKK+C4n+C4uOC4mgor4Lif4Li44LmI4LiaCivguJ/guLjguJ/guLAKK+C4n+C4uOC5iOC4oeC5gOC4n+C4t+C4reC4ogor4Lif4Li44Lil4Liq4LmB4LiB4LmK4LibCivguJ/guLkKK+C4n+C4ueC5iAor4Lif4Li54LiBCivguJ/guLnguJQKK+C4n+C4ueC4lOC4n+C4suC4lAor4Lif4Li54Lif4LmI4Lit4LiHCivguJ/guLnguKEKK+C4n+C4ueC4oeC4meC5ieC4swor4Lif4Li54Lih4Lif4Lix4LiBCivguJ/guLnguKHguJ/guLLguKIKK+C4n+C4ueC4oeC5gOC4peC4teC5ieC4ouC4hwor4LmA4Lif4LmH4LiUCivguYDguJ/guYfguJTguKvguLLguKcKK+C5gOC4n+C5ieC4mQor4LmA4Lif4Lil4LiU4LmM4Liq4Lib4Liy4Lij4LmMCivguYDguJ/guYnguK0KK+C5gOC4n+C4reC4o+C5jOC5gOC4oeC4teC4ouC4oQor4LmA4Lif4Lit4LiwCivguYDguJ/guK3guLDguJ/guLAKK+C5gOC4n+C4sAor4LmA4Lif4Liw4Lif4LiwCivguYDguJ/guLTguJkKK+C5gOC4n+C4teC5ieC4ouC4oQor4LmA4Lif4Li14LmJ4Lii4Lih4LmA4Lid4LmJ4LiyCivguYDguJ/guLXguYnguKLguKcKK+C5gOC4n+C4t+C4rQor4LmA4Lif4Li34LmI4LitCivguYDguJ/guLfguYnguK0KK+C5gOC4n+C4t+C4reC4hwor4LmA4Lif4Li34LmI4Lit4LiHCivguYDguJ/guLfguYnguK3guIcKK+C5gOC4n+C4t+C5iOC4reC4h+C4n+C5ieC4sgor4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li44LmJ4LiHCivguYDguJ/guLfguYjguK3guIfguJ/guLkKK+C5gOC4n+C4t+C4reC4mQor4LmA4Lif4Li34Lit4LiiCivguYDguJ/guLfguYnguK3guKIKK+C5geC4n+C5iAor4LmB4Lif4LiHCivguYHguJ/guIrguLHguYjguJkKK+C5geC4n+C4mgor4LmB4Lif4LmJ4LihCivguYHguJ/guKPguJnguYDguIvguLXguKLguKEKK+C5geC4n+C4peC4geC4i+C5jAor4LmB4Lif4Lil4LiVCivguYHguJ/guLAKK+C5guC4n+C4geC4seC4qgor4LmE4LifCivguYTguJ/guIHguLHguKXguJvguYwKK+C5hOC4n+C4iOC4uOC4geC4leC4ueC4lAor4LmE4Lif4LiJ4Liy4LiiCivguYTguJ/guYHguIrguYfguIEKK+C5hOC4n+C4mOC4suC4leC4uAor4LmE4Lif4Lif4LmJ4LiyCivguYTguJ/guJ/guYnguLLguIHguKPguLDguYHguKoKK+C5hOC4n+C4n+C5ieC4suC4quC4luC4tOC4lQor4LmE4Lif4Lil4Liy4Lih4LiX4Li44LmI4LiHCivguYTguJ/guKrguLjguKHguILguK3guJkKK+C4oAor4Lig4LiECivguKDguITguKfguJTguLUKK+C4oOC4hOC4p+C4seC4lQor4Lig4LiE4Lin4Lix4LiZ4LiV4LmMCivguKDguITguKfguLHguKEKK+C4oOC4hOC4p+C4sgor4Lig4LiE4Lin4Liy4LiZCivguKDguITguLHguJnguJfguKXguLIKK+C4oOC4hOC4tOC4meC4tQor4Lig4LiTCivguKDguJPguLTguJTguLIKK+C4oOC4ngor4Lig4Lih4LiB4Liy4LijCivguKDguKHguKMKK+C4oOC4oeC4o+C4tOC4mQor4Lig4Lih4Lij4Li1CivguKDguKHguLgKK+C4oOC4oeC4uOC4geC4sAor4Lig4Lih4Li44LiB4LiyCivguKDguKItCivguKDguKLguLHguJnguJXguKPguLLguKIKK+C4oOC4ouC4suC4hOC4leC4tAor4Lig4LijCivguKDguKPguJPguLUKK+C4oOC4o+C4k+C4teC4oOC4uQor4Lig4Lij4LiVCivguKDguKPguJUtCivguKDguKPguJXguKfguKPguKPguKkKK+C4oOC4o+C4leC4qOC4suC4quC4leC4o+C5jAor4Lig4Lij4Lij4LiU4LijCivguKDguKPguKPguJTguLIKK+C4oOC4o+C4o+C4ouC4sgor4Lig4Lij4Liw4Lih4LijCivguKDguKPguLDguKHguKPguLUKK+C4oOC4o+C4seC4quC4lOC4suC4qQor4Lig4Lij4Liy4LiU4LijCivguKDguKPguLLguJTguKPguKDguLLguJ4KK+C4oOC4o+C4suC4lOC4sgor4Lig4Lij4Liy4LiV4LijLQor4Lig4Lij4Liy4LiV4Lij4Lig4Liy4LieCivguKDguKPguLLguJXguKQtCivguKDguKPguLLguJXguKTguKDguLLguJ4KK+C4oOC4o+C4tOC4ouC4sgor4Lig4Lij4Li5CivguKDguKPguLnguKHguJPguJHguKUKK+C4oOC4pOC4h+C4hOC4suC4owor4Lig4Lik4LiU4LiBCivguKDguKTguJTguLUKK+C4oOC4pOC4leC4ouC5jAor4Lig4Lik4LioCivguKDguKTguKnguI/guYwKK+C4oOC4pwor4Lig4LinLQor4Lig4Lin4LiB4Lip4Lix4LiiCivguKDguKfguJXguLHguJPguKvguLIKK+C4oOC4p+C4meC4sAor4Lig4Lin4Lib4Liy4Lij4LiwCivguKDguKfguLHguITguKMKK+C4oOC4p+C4seC4h+C4hC0KK+C4oOC4p+C4seC4h+C4hOC5jAor4Lig4Lin4Lix4LiH4LiE4LiI4Li04LiVCivguKDguKfguLHguJnguJTguKMKK+C4oOC4p+C4suC4oOC4ngor4Lig4Lix4LiB4LiC4LiwCivguKDguLHguIHguJTguLUKK+C4oOC4seC4geC4lS0KK+C4oOC4seC4geC4leC4geC4pOC4leC4ouC5jAor4Lig4Lix4LiB4LiV4LiwCivguKDguLHguIHguJXguLQKK+C4oOC4seC4geC4qS0KK+C4oOC4seC4geC4qeC5jAor4Lig4Lix4LiB4Lip4LiB4Liy4LijCivguKDguLHguIHguKnguLIKK+C4oOC4seC4geC4qeC4suC4q+C4suC4owor4Lig4Lix4LiECivguKDguLHguITguJnguYwKK+C4oOC4seC4h+C4hC0KK+C4oOC4seC4h+C4hOC4sAor4Lig4Lix4LiH4LiE4Li1CivguKDguLHguIgKK+C4oOC4seC4jeC4iuC4sAor4Lig4Lix4LiT4LiRLQor4Lig4Lix4LiT4LiR4LmMCivguKDguLHguJPguJHguITguKPguKPguKAKK+C4oOC4seC4k+C4keC4meC4sAor4Lig4Lix4LiT4LiR4Liy4LiE4Liy4LijCivguKDguLHguJPguJHguLLguITguLLguKPguLTguIEKK+C4oOC4seC4k+C4keC4suC4o+C4seC4geC4qeC5jAor4Lig4Lix4LiT4LiR4Li5CivguKDguLHguJPguJHguLnguIHguKPguKPguKEKK+C4oOC4seC4lQor4Lig4Lix4LiVLQor4Lig4Lix4LiV4LiB4Li04LiICivguKDguLHguJXguJXguLLguITguLLguKMKK+C4oOC4seC4leC4leC4suC4q+C4suC4owor4Lig4Lix4LiV4LijCivguKDguLHguJfguKMKK+C4oOC4seC4l+C4oy0KK+C4oOC4seC4l+C4o+C4geC4seC4mwor4Lig4Lix4LiX4Lij4LiB4Li44Lih4Lig4LmMCivguKDguLHguJfguKPguJrguJfguKHguLLguKoKK+C4oOC4seC4l+C4o+C4muC4tOC4kAor4Lig4Lix4LieCivguKDguLHguKIKK+C4oOC4seC4quC4lOC4sgor4Lig4Lix4Liq4LiV4Lij4LiyCivguKDguLHguKrguKHguLAKK+C4oOC4seC4quC4quC4owor4Lig4LiyCivguKDguLLguIHguKMKK+C4oOC4suC4hAor4Lig4Liy4LiELQor4Lig4Liy4LiE4LiV4Lix4LiU4LiB4Lij4Lin4LiiCivguKDguLLguITguJfguKTguKnguI7guLUKK+C4oOC4suC4hOC4l+C4seC4k+C4keC5jAor4Lig4Liy4LiE4LiZ4Li04Lie4LiZ4LiY4LmMCivguKDguLLguITguJvguI/guLTguJrguLHguJXguLQKK+C4oOC4suC4hOC4nuC4t+C5ieC4mQor4Lig4Liy4LiE4Lig4Li54Lih4Li0CivguKDguLLguITguKLguYwKK+C4oOC4suC4hOC4ouC4suC4meC4uOC4p+C4seC4leC4tAor4Lig4Liy4LiE4LmA4Lij4Li14Lii4LiZCivguKDguLLguITguYDguKrguJgKK+C4oOC4suC4hOC4tOC4meC4tQor4Lig4Liy4LiE4Li04LmE4LiZ4LiiCivguKDguLLguITguLUKK+C4oOC4suC4hOC4teC4ouC4sAor4Lig4Liy4LiK4LiZ4LiwCivguKDguLLguIrguJnguLXguKItCivguKDguLLguIrguLUKK+C4oOC4suC4kwor4Lig4Liy4LiTLQor4Lig4Liy4LiT4LiBCivguKDguLLguJPguKfguLLguKMKK+C4oOC4suC4k+C4tQor4Lig4Liy4LiT4Li4CivguKDguLLguJPguLjguKHguLLguKgKK+C4oOC4suC4lOC4owor4Lig4Liy4LiU4LiyCivguKDguLLguJXguKMKK+C4oOC4suC4leC4sgor4Lig4Liy4LiV4Li04LiB4LiwCivguKDguLLguJXguLTguKLguLAKK+C4oOC4suC4leC4uAor4Lig4Liy4LieCivguKDguLLguJ4tCivguKDguLLguJ7guIHguLLguIEKK+C4oOC4suC4nuC4iOC4o+C4tOC4hwor4Lig4Liy4Lie4LiW4LmI4Liy4LiiCivguKDguLLguJ7guJnguLTguYjguIcKK+C4oOC4suC4nuC4m+C4o+C4sOC4geC4reC4mgor4Lig4Liy4Lie4Lib4Li54LiZ4LmA4Lib4Li14Lii4LiBCivguKDguLLguJ7guJ7guIjguJnguYwKK+C4oOC4suC4nuC4ouC5jAor4Lig4Liy4Lie4Lii4LiZ4LiV4Lij4LmMCivguKDguLLguJ7guKXguKfguIfguJXguLIKK+C4oOC4suC4nuC4peC4seC4geC4qeC4k+C5jAor4Lig4Liy4Lie4LmA4Liq4Lih4Li34Lit4LiZCivguKDguLLguJ7guKvguLjguYjguJnguJnguLTguYjguIcKK+C4oOC4suC4oQor4Lig4Liy4LiiCivguKDguLLguKLguJnguK3guIEKK+C4oOC4suC4ouC5g+C4mQor4Lig4Liy4Lii4Lir4LiZ4LmJ4LiyCivguKDguLLguKLguKvguKXguLHguIcKK+C4oOC4suC4owor4Lig4Liy4LijLQor4Lig4Liy4Lij4LiB4Li04LiICivguKDguLLguKPguJTguLUKK+C4oOC4suC4o+C4lQor4Lig4Liy4Lij4LiVLQor4Lig4Liy4Lij4LiV4Lin4Li04LiX4Lii4LiyCivguKDguLLguKPguJXguLUKK+C4oOC4suC4o+C4mOC4uOC4o+C4sAor4Lig4Liy4Lij4Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguKDguLLguKPguKLguLIKK+C4oOC4suC4o+C5guC4o+C4hwor4Lig4Liy4Lij4LiwCivguKDguLLguKPguLDguIjguLPguKLguK3guKEKK+C4oOC4suC4o+C4sOC4leC4tOC4lOC4nuC4seC4mQor4Lig4Liy4Lij4Liw4LiV4Li04LiU4Lie4Lix4LiZ4LmD4LiZ4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguKDguLLguKPguLIKK+C4oOC4suC4py0KK+C4oOC4suC4p+C4meC4sgor4Lig4Liy4Lin4LiZ4Liy4Lih4Lix4LiiCivguKDguLLguKfguKjguLjguJfguJjguLQKK+C4oOC4suC4p+C4sAor4Lig4Liy4Lin4Liw4LiJ4Li44LiB4LmA4LiJ4Li04LiZCivguKDguLLguKkKK+C4oOC4suC4qeC4gQor4Lig4Liy4Lip4LiT4LmMCivguKDguLLguKnguLIKK+C4oOC4suC4qeC4suC4qOC4suC4quC4leC4o+C5jAor4Lig4Liy4Lip4Li04LiVCivguKDguLLguKnguLUKK+C4oOC4suC4qeC4teC5gOC4h+C4tOC4meC5hOC4lOC5iQor4Lig4Liy4Lip4Li14Lia4Liz4Lij4Li44LiH4LiX4LmJ4Lit4LiH4LiX4Li14LmICivguKDguLLguKnguLXguKHguLnguKXguITguYjguLLguYDguJ7guLTguYjguKEKK+C4oOC4suC4qeC4teC5guC4o+C4h+C5gOC4o+C4t+C4reC4meC5geC4peC4sOC4l+C4teC5iOC4lOC4tOC4mQor4Lig4Liy4Lip4Li14Liq4Lij4Lij4Lie4Liq4Liy4Lih4Li04LiVCivguKDguLLguKoKK+C4oOC4suC4qi0KK+C4oOC4suC4quC4geC4owor4Lig4Liy4Liq4LiZ4LmMCivguKDguLLguKrguKfguKMKK+C4oOC4suC4quC4sgor4Lig4Liy4Liq4Li44LijCivguKDguLTguIHguILguLIKK+C4oOC4tOC4geC4guC4suC4iOC4suC4owor4Lig4Li04LiB4LiC4Liy4Lir4Liy4LijCivguKDguLTguIHguILguLgKK+C4oOC4tOC4geC4guC4uOC4meC4tQor4Lig4Li04LiB4Lip4LiyCivguKDguLTguIHguKnguLLguIjguLLguKMKK+C4oOC4tOC4geC4qeC4suC4q+C4suC4owor4Lig4Li04LiB4Lip4Li4CivguKDguLTguIHguKnguLjguJPguLUKK+C4oOC4tOC4h+C4hOC4suC4owor4Lig4Li04LiH4LiqCivguKDguLTguIfguKrguJnguLAKK+C4oOC4tOC4h+C4quC4owor4Lig4Li04LiN4LmC4LiNCivguKDguLTguI3guYLguI3guKDguLLguJ4KK+C4oOC4tOC4leC4leC4tAor4Lig4Li04LiXCivguKDguLTguJktCivguKDguLTguJnguIrguLLguJXguLQKK+C4oOC4tOC4meC4ly0KK+C4oOC4tOC4meC4l+C5jAor4Lig4Li04LiZ4LiX4LiZLQor4Lig4Li04LiZ4LiX4LiZ4Liy4LiB4Liy4LijCivguKDguLTguJnguKfguKPguKPguJMKK+C4oOC4tOC4ouC5guC4ogor4Lig4Li04Lii4LmC4Lii4Lig4Liy4LieCivguKDguLTguKPguKHguKLguYwKK+C4oOC4tOC4o+C4oeC4ouC5jOC4quC4uOC4o+C4suC4h+C4hOC5jAor4Lig4Li04Lip4Lix4LiKCivguKDguLTguKoKK+C4oOC4tOC4quC4seC4gQor4Lig4Li14LiV4LiwCivguKDguLXguKEKK+C4oOC4teC4o+C4uAor4Lig4Li14Lij4Li44LiBLQor4Lig4Li14Lij4Li44LiB4LiK4Liy4LiV4Li0CivguKDguLjguIHguJUtCivguKDguLjguIHguJXguYwKK+C4oOC4uOC4geC4leC5gOC4qOC4qQor4Lig4Li44LiB4LiV4Liy4Lir4Liy4LijCivguKDguLjguILguLHguJkKK+C4oOC4uOC4igor4Lig4Li44LiKLQor4Lig4Li44LiK4LiECivguKDguLjguIrguIfguITguYwKK+C4oOC4uOC4iuC4h+C4hOC4m+C4o+C4sOC4ouC4suC4lQor4Lig4Li44LiK4LiH4LiE4LihCivguKDguLjguIrguKrguKHguYLguKDguIQKK+C4oOC4uOC4iuC4sgor4Lig4Li44LiN4LiKCivguKDguLjguJUKK+C4oOC4uOC4oQor4Lig4Li44LihLQor4Lig4Li44Lih4LmA4LiX4Lin4LiU4LiyCivguKDguLjguKHguKPguLAKK+C4oOC4uOC4oeC4o+C4seC4leC4meC5jAor4Lig4Li44Lih4Lij4LiyCivguKDguLjguKHguKPguLTguJkKK+C4oOC4uOC4oeC4o+C4tQor4Lig4Li44Lih4LmA4Lij4LioCivguKDguLjguKHguKfguLLguKMKK+C4oOC4uOC4qgor4Lig4Li5CivguKDguLnguYgKK+C4oOC4ueC5gOC4guC4sgor4Lig4Li54LmA4LiC4Liy4LiZ4LmJ4Liz4LmB4LiC4LmH4LiHCivguKDguLnguYDguILguLLguYTguJ8KK+C4oOC4ueC5guC4igor4Lig4Li54LiU4LilCivguKDguLnguJTguLLguJQKK+C4oOC4ueC4lQor4Lig4Li54LiVLQor4Lig4Li54LiV4LiE4Liy4LihCivguKDguLnguJXguJrguJTguLUKK+C4oOC4ueC4leC4o+C4ueC4mwor4Lig4Li54LiV4Li0CivguKDguLnguJXguLUKK+C4oOC4ueC5gOC4leC4qOC4p+C4owor4Lig4Li54LiY4LijCivguKDguLnguJjguYDguKPguKgKK+C4oOC4ueC4mOC5gOC4o+C4qOC4p+C4owor4Lig4Li54LiZ4Liy4LiWCivguKDguLnguJnguLLguKLguIEKK+C4oOC4ueC5gOC4meC4leC4uAor4Lig4Li54Lia4LiU4Li04LiZ4LiX4Lij4LmMCivguKDguLnguJrguJTguLUKK+C4oOC4ueC4muC4suC4pQor4Lig4Li54LmA4Lia4LiZ4LiX4Lij4LmMCivguKDguLnguYDguJrguKgKK+C4oOC4ueC5gOC4muC4qOC4p+C4o+C5jAor4Lig4Li54LibCivguKDguLnguJzguLIKK+C4oOC4ueC4oOC4uOC4igor4Lig4Li54LihCivguKDguLnguKHguLQKK+C4oOC4ueC4oeC4tC0KK+C4oOC4ueC4oeC4tOC4hOC4uOC5ieC4oeC4geC4seC4mQor4Lig4Li54Lih4Li04LmD4LiICivguKDguLnguKHguLTguJDguLLguJkKK+C4oOC4ueC4oeC4tOC4mOC4owor4Lig4Li54Lih4Li04LiY4Lij4Lij4LihCivguKDguLnguKHguLTguJnguJfguKPguYwKK+C4oOC4ueC4oeC4tOC4meC4suC4lgor4Lig4Li54Lih4Li04Lia4LiU4Li1CivguKDguLnguKHguLTguJrguKPguLTguKHguLLguJMKK+C4oOC4ueC4oeC4tOC4muC4suC4pQor4Lig4Li54Lih4Li04Lib4Lij4Liw4LmA4LiX4LioCivguKDguLnguKHguLTguJvguLHguI3guI3guLIKK+C4oOC4ueC4oeC4tOC5geC4nuC5iQor4Lig4Li54Lih4Li04Lig4Liy4LiECivguKDguLnguKHguLTguKDguLjguIoKK+C4oOC4ueC4oeC4tOC4o+C4seC4kOC4qOC4suC4quC4leC4o+C5jAor4Lig4Li54Lih4Li04Lij4Li54LmJCivguKDguLnguKHguLTguKXguLPguYDguJnguLIKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jAor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4LiB4Liy4Lii4Lig4Liy4LieCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguIHguLLguKPguYDguIHguKnguJXguKMKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4Lib4Lij4Liw4LiK4Liy4LiB4LijCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguJvguKPguLDguKfguLHguJXguLQKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC5gOC4qOC4o+C4qeC4kOC4geC4tOC4iAor4Lig4Li54Lih4Li1CivguKDguLnguKHguLXguKjguKfguKMKK+C4oOC4ueC4o+C5guC4peC4gQor4Lig4Li54Lij4Li0CivguKDguLnguKPguLUKK+C4oOC4ueC4py0KK+C4oOC4ueC4p+C4lOC4pQor4Lig4Li54Lin4LiZLQor4Lig4Li54Lin4LiZ4LiV4Lij4Lix4LiiCivguKDguLnguKfguJnguLHguJXguJXguKPguLHguKIKK+C4oOC4ueC4p+C4meC4suC4lgor4Lig4Li54Lin4LmA4LiZ4LiV4LijCivguKDguLnguKfguYTguJnguKIKK+C4oOC4ueC4qeC4ky0KK+C4oOC4ueC4qeC4k+C4nuC4suC4qgor4Lig4Li54Lip4LiyCivguKDguLnguKnguLLguKHguLLguKXguLIKK+C4oOC4ueC4qeC4suC5guC4ouC4hwor4Lig4Li54Lip4Li04LiVCivguYDguKDguIHguLAKK+C5gOC4oOC4hOC4sAor4LmA4Lig4LiV4Lij4LiyCivguYDguKDguJcKK+C5gOC4oOC4l+C4oOC4seC4ogor4LmA4Lig4LiX4Li44Lia4Liy4LiiCivguYDguKDguKPguKcKK+C5gOC4oOC4o+C4tAor4LmA4Lig4Lij4Li1CivguYDguKDguKrguLHguIoKK+C5gOC4oOC4quC4seC4ii0KK+C5gOC4oOC4quC4seC4iuC4geC4owor4LmA4Lig4Liq4Lix4LiK4LiB4Lij4Lij4LihCivguYDguKDguKrguLHguIrguYDguITguKHguLUKK+C5gOC4oOC4quC4seC4iuC4nuC4pOC4geC4qeC4qOC4suC4quC4leC4o+C5jAor4LmA4Lig4Liq4Lix4LiK4LmA4Lie4Lil4LiyCivguYDguKDguKrguLHguIrguKfguLTguJfguKLguLIKK+C5gOC4oOC4quC4seC4iuC5gOC4p+C4lwor4LmA4Lig4Liq4Lix4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKDguKrguLHguIrguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEKK+C5guC4oOC4hAor4LmC4Lig4LiELQor4LmC4Lig4LiE4LiX4Lij4Lix4Lie4Lii4LmMCivguYLguKDguITguKDguLHguJPguJHguYwKK+C5guC4oOC4hOC4ouC4l+C4o+C4seC4nuC4ouC5jAor4LmC4Lig4LiE4LiwCivguYLguKDguITguLTguJkKK+C5guC4oOC4hOC4tQor4LmC4Lig4LmE4LiE4LiiCivguYLguKDguYTguITguKjguKfguKPguKPguKLguYwKK+C5guC4oOC4igor4LmC4Lig4LiK4LiBCivguYLguKDguIrguJktCivguYLguKDguIrguJnguLAKK+C5guC4oOC4iuC4meC4sOC4q+C5ieC4sgor4LmC4Lig4LiK4LiZ4Liy4LiB4LijCivguYLguKDguIrguJnguLLguIHguLLguKMKK+C5guC4oOC4iuC4meC4suC4q+C4suC4owor4LmC4Lig4LiK4Lii4LmMCivguYTguKDguKPguLTguJkKK+C5hOC4oOC4o+C4tQor4LmE4Lig4Lip4Lix4LiK4LiE4Li44Lij4Li4CivguYTguKDguKnguLHguIrguKLguYwKK+C4oQor4Lih4LiBCivguKHguIHguKMKK+C4oeC4geC4oy0KK+C4oeC4geC4o+C4geC4uOC4k+C4keC4pQor4Lih4LiB4Lij4Liy4LiE4LihCivguKHguIHguKoKK+C4oeC4geC4uOC4jgor4Lih4LiB4Li44LiO4Lij4Liy4LiK4LiB4Li44Lih4Liy4LijCivguKHguIHguLjguKUKK+C4oeC4hOC4mAor4Lih4LiGCivguKHguIbguKfguLHguJkKK+C4oeC4huC4sgor4Lih4LmI4LiHCivguKHguIfguIHguLjguI4KK+C4oeC4h+C4geC4uOC4juC5hOC4l+C4ogor4Lih4LiH4LmC4LiB4Lij4LiiCivguKHguIfguITguKUKK+C4oeC4h+C4hOC4pS0KK+C4oeC4h+C4hOC4peC4iOC4seC4geC4owor4Lih4LiH4LiE4Lil4LmB4Lid4LiUCivguKHguIfguITguKXguKfguLLguJcKK+C4oeC4h+C4hOC4peC4p+C4suC4owor4Lih4LiH4LiE4Lil4Liq4Li54LiV4LijCivguKHguIfguITguKXguKvguLHguJXguJbguLUKK+C4oeC4k+C4keC5jAor4Lih4LiT4LiR4LiBCivguKHguJPguJHguJnguLAKK+C4oeC4k+C4keC4mwor4Lih4LiT4LiR4LilCivguKHguJPguJHguLIKK+C4oeC4k+C4keC4suC4o+C4ngor4Lih4LiT4LiR4Li04LijCivguKHguJPguYDguJHguLXguKLguKMKK+C4oeC4k+C5gOC4keC4teC4ouC4o+C4muC4suC4pQor4Lih4LiT4Li1CivguKHguJPguLXguIHguLLguKMKK+C4oeC4k+C4teC4nuC4t+C4igor4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMCivguKHguJPguLXguKPguLLguIQKK+C4oeC4k+C4teC4qOC4tOC4peC4sgor4Lih4LiUCivguKHguJTguJTguLMKK+C4oeC4lOC5geC4lOC4hwor4Lih4LiU4LmB4LiU4LiH4LmA4Lid4LmJ4Liy4Lih4Liw4Lih4LmI4Lin4LiHCivguKHguJTguYDguJfguYfguIgKK+C4oeC4lOC4ouC4reC4mgor4Lih4LiU4Lil4Li54LiBCivguKHguJTguKrguYnguKEKK+C4oeC4lOC4suC4ogor4Lih4LiU4Li1CivguKHguJUtCivguKHguJXguIEKK+C4oeC4leC4geC4oOC4seC4lQor4Lih4LiV4LiwCivguKHguJXguLQKK+C4oeC4leC4tOC4oeC4q+C4suC4iuC4mQor4Lih4LiXCivguKHguJfguJnguLAKK+C4oeC4l+C4meC4teC4ouC4sAor4Lih4LiY4Li4CivguKHguJjguLjguIHguKMKK+C4oeC4mOC4uOC4geC4o+C4tQor4Lih4LiY4Li44LiB4Liy4Lij4Li1CivguKHguJjguLjguYLguIHguKgKK+C4oeC4mOC4uOC4leC4pOC4kwor4Lih4LiY4Li44LibCivguKHguJjguLjguJvguI7guKUKK+C4oeC4mOC4uOC4m+C4suC4ouC4suC4qgor4Lih4LiY4Li44Lie4Lij4LiVCivguKHguJjguLjguKHguLHguIHguILguLTguIHguLIKK+C4oeC4mOC4uOC4oeC4tOC4qOC4owor4Lih4LiY4Li44LijLQor4Lih4LiY4Li44Lij4LiV4Lij4Lix4LiiCivguKHguJjguLjguKPguJ7guIjguJnguYwKK+C4oeC4mOC4uOC4o+C4qgor4Lih4LiY4Li44Lij4LiwCivguKHguJjguLjguKXguLXguKvguYwKK+C4oeC4mOC4uOC5gOC4qOC4qQor4Lih4LiY4Li44Liq4LijCivguKHguJkKK+C4oeC5iOC4mQor4Lih4LiZ4LiV4LmMCivguKHguJnguJXguKPguYwKK+C4oeC4meC4leC4o+C4tQor4Lih4LiZ4LiXLQor4Lih4LiZ4LiX4LmMCivguKHguJnguJfguIHguLLguJnguJXguLQKK+C4oeC4meC4l+C4suC4l+C4owor4Lih4LiZ4LiX4Li04LijCivguKHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4meC5gOC4l+C4teC4ouC4owor4Lih4LiZ4LmA4LiX4Li14Lii4Lij4Lia4Liy4LilCivguKHguJnguKrguLTguIHguLLguKMKK+C4oeC4meC4seC4qgor4Lih4LiZ4Lix4LiqLQor4Lih4LiZ4Lix4Liq4LiU4Liy4LibCivguKHguJnguLHguKrguKfguLUKK+C4oeC4meC4tOC4oeC4meC4sgor4Lih4LiZ4Li04Lil4LiyCivguKHguJnguLXguKHguJnguLIKK+C4oeC4meC4uAor4Lih4LiZ4Li44LiKCivguKHguJnguLjguIrguLLguJjguLTguJsKK+C4oeC4meC4uOC4jQor4Lih4LiZ4Li44Lip4LiiLQor4Lih4LiZ4Li44Lip4Lii4LmMCivguKHguJnguLjguKnguKLguYzguIHguJoKK+C4oeC4meC4uOC4qeC4ouC4iuC4suC4leC4tAor4Lih4LiZ4Li44Lip4Lii4LmA4LiX4LieCivguKHguJnguLjguKnguKLguJjguKPguKPguKEKK+C4oeC4meC4uOC4qeC4ouC5guC4peC4gQor4Lih4LiZ4Li44Lip4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguKHguJnguLjguKnguKLguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4oeC4meC4uOC4qeC4ouC5jOC4reC4p+C4geC4suC4qAor4Lih4LiZ4Li44Liq4Liy4LijCivguKHguJnguLkKK+C4oeC4meC4ueC4quC4suC4owor4Lih4LmC4LiZCivguKHguYLguJnguIHguKPguKPguKEKK+C4oeC5guC4meC4hOC4leC4tAor4Lih4LmC4LiZ4LiKCivguKHguYLguJnguIrguI3guYwKK+C4oeC5guC4meC4mOC4o+C4o+C4oQor4Lih4LmC4LiZ4LiZ4Li44LiB4Li54LilCivguKHguYLguJnguKDguLLguJ4KK+C4oeC5guC4meC4oOC4tOC4meC4tOC5gOC4p+C4qAor4Lih4LmC4LiZ4Lih4Lix4LiiCivguKHguYLguJnguKPguJYKK+C4oeC5guC4meC4o+C4oQor4Lih4LmC4LiZ4Lij4Lih4Lii4LmMCivguKHguYLguJnguKPguLLguKvguYwKK+C4oeC5guC4meC4qOC4tOC4peC4sgor4Lih4LmC4LiZ4Liq4Liy4LijCivguKHguYLguJnguKrguLLguYDguKPguYgKK+C4oeC5guC4meC4q+C4owor4Lih4Lih4Lix4LiH4LiB4Liy4LijCivguKHguKHguLLguIEKK+C4oeC4ouC4uOC4oy0KK+C4oeC4ouC4uOC4o+C4hOC4leC4tAor4Lih4Lii4Li44Lij4LiJ4Lix4LiV4LijCivguKHguKLguLjguKPguK3guLLguKrguJnguYwKK+C4oeC4ouC4uOC4o+C4sAor4Lih4Lii4Li44Lij4LiyCivguKHguKLguLjguKPguLUKK+C4oeC4ouC4uOC5gOC4o+C4qAor4Lih4Lii4Li54LiCCivguKHguKLguLnguKMKK+C4oeC4owor4Lih4Lij4LiB4LiVCivguKHguKPguITguLIKK+C4oeC4o+C4keC4mwor4Lih4Lij4LiTLQor4Lih4Lij4LiT4LmMCivguKHguKPguJPguIHguKPguKPguKEKK+C4oeC4o+C4k+C4mOC4o+C4o+C4oQor4Lih4Lij4LiT4Lia4Lix4LiV4LijCivguKHguKPguJPguKDguLHguKIKK+C4oeC4o+C4k+C4oOC4suC4ngor4Lih4Lij4LiT4LiwCivguKHguKPguJPguLHguJnguJXguLTguIEtCivguKHguKPguJPguLLguJnguJXguYwKK+C4oeC4o+C4lOC4gQor4Lih4Lij4Lij4LiECivguKHguKPguKPguITguJnguLLguKLguIEKK+C4oeC4o+C4o+C4hOC4sgor4Lih4Lij4Lij4LiV4LiiCivguKHguKPguKPguJXguLHguKIKK+C4oeC4o+C4o+C4l+C4mQor4Lih4Lij4Lij4Lii4Liy4LiXCivguKHguKPguKPguKkKK+C4oeC4o+C4quC4uOC4oQor4Lih4Lij4Lix4Lih4LmA4LiX4LioCivguKHguKPguLLguJnguITguKfguLLguJkKK+C4oeC4o+C4tOC4iAor4Lih4Lij4Li04Lii4Liy4LiXCivguKHguKPguLXguIjguLQKK+C4oeC4o+C4uAor4Lih4Lij4Li44LiVCivguKHguKTguIQKK+C4oeC4pOC4hC0KK+C4oeC4pOC4hOC4l+C4suC4ouC4p+C4seC4mQor4Lih4Lik4LiE4Lii4LmMCivguKHguKTguITguKPguLLguIoKK+C4oeC4pOC4hOC4qOC4tOC4owor4Lih4Lik4LiE4Lio4Li04Lij4Lih4Liy4LiqCivguKHguKTguITguKjguLTguKPguLHguKoKK+C4oeC4pOC4hOC5gOC4qOC4teC4ouC4owor4Lih4Lik4LiE4Li04LiZ4LiX4Lij4LmMCivguKHguKTguYDguITguJnguJfguKPguYwKK+C4oeC4pOC4iOC4ieC4sgor4Lih4Lik4LiI4LiJ4Liy4LiK4Li14LieCivguKHguKTguIjguInguLLguJfguLTguJDguLQKK+C4oeC4pOC4lOC4gQor4Lih4Lik4LiVCivguKHguKTguJXguIEKK+C4oeC4pOC4leC4ouC4uQor4Lih4Lik4LiV4Lii4Li54Lij4Liy4LiKCivguKHguKTguJfguLTguIfguITguYwKK+C4oeC4pOC4l+C4uAor4Lih4Lik4LiX4Li44LiB4LiwCivguKHguKTguJjguLgKK+C4oeC4pOC4qeC4sgor4Lih4Lik4Lip4Liy4Lin4Liy4LiXCivguKHguKUKK+C4oeC4pS0KK+C4oeC4peC5guC4hAor4Lih4Lil4LiX4Li04LiZCivguKHguKXguJkKK+C4oeC4peC5iOC4mQor4Lih4Lil4LiZ4Lih4Lil4Liy4LiZCivguKHguKXguJ7guLTguKkKK+C4oeC4peC4p+C4gQor4Lih4Lil4LmI4Lit4LiZCivguKHguKXguYjguK3guKIKK+C4oeC4peC4sAor4Lih4Lil4Lix4LiBCivguKHguKXguLHguIfguYDguKHguKXguLfguK3guIcKK+C4oeC4peC5ieC4sgor4Lih4Lil4Liy4LiBCivguKHguKXguYnguLLguIcKK+C4oeC4peC4suC4mQor4Lih4Lil4LmI4Liy4LiZCivguKHguKXguLLguKIKK+C4oeC4peC4suC4ouC4uQor4Lih4Lil4Liy4LinCivguKHguKXguYjguLLguKfguYDguKHguKXguLIKK+C4oeC4peC4tOC4mQor4Lih4Lil4Li04LmJ4LiZCivguKHguKXguLfguYjguJkKK+C4oeC4p+C4gQor4Lih4Lin4LiB4Lic4LiyCivguKHguKfguIHguYDguKvguKXguYfguIEKK+C4oeC4p+C4geC5g+C4q+C4jeC5iAor4Lih4LmI4Lin4LiHCivguKHguKfguJkKK+C4oeC5iOC4p+C4mQor4Lih4LmJ4Lin4LiZCivguKHguYnguKfguJnguJXguYnguKfguJkKK+C4oeC5ieC4p+C4meC5gOC4quC4t+C5iOC4rQor4Lih4LmJ4Lin4LiZ4Lir4LiZ4LmJ4LiyCivguKHguKfguKIKK+C4oeC5ieC4p+C4ogor4Lih4Lin4Lii4LmE4LiX4LiiCivguKHguKfguKLguJvguKXguYnguLMKK+C4oeC4p+C4ouC4peC5ieC4oQor4Lih4Lin4Lii4Lin4Lix4LiUCivguKHguKfguKLguKrguLLguIHguKUKK+C4oeC4p+C4ouC4q+C4oeC4ueC5iAor4Lih4Lin4LilCivguKHguKfguKXguKrguLLguKMKK+C4oeC4p+C4peC4reC4suC4geC4suC4qAor4Lih4Liq4Liy4LijCivguKHguKrguLLguKPguIEKK+C4oeC4quC4suC4o+C4hOC4seC4pQor4Lih4Liq4Li0CivguKHguKvguIHguKPguKPguKEKK+C4oeC4q+C4o+C4k+C4ngor4Lih4Lir4Lij4Lij4LiGCivguKHguKvguKPguKPguJPguJ4KK+C4oeC4q+C4o+C4quC4ngor4Lih4Lir4Lix4LiE4LiGCivguKHguKvguLHguIjguInguKPguLTguKItCivguKHguKvguLHguIjguInguKPguLTguKLguLAKK+C4oeC4q+C4seC4k+C4k+C4ngor4Lih4Lir4Lix4LiVCivguKHguKvguLHguJfguJjguJnguLAKK+C4oeC4q+C4seC4meC4lS0KK+C4oeC4q+C4seC4meC4leC5jAor4Lih4Lir4Lix4LiZ4LiV4LmC4LiX4LipCivguKHguKvguLHguJ7guKDguLLguIQKK+C4oeC4q+C4seC4pQor4Lih4Lir4Lix4Lil4LiB4LiwCivguKHguKvguLHguKjguIjguKPguKPguKLguYwKK+C4oeC4q+C4sgor4Lih4Lir4Liy4LiB4LiQ4Li04LiZCivguKHguKvguLLguIHguLLguKwKK+C4oeC4q+C4suC4guC4seC4meC4mOC4gQor4Lih4Lir4Liy4LiI4Lix4LiB4LijCivguKHguKvguLLguIrguJkKK+C4oeC4q+C4suC4iuC4seC4ogor4Lih4Lir4Liy4LiK4Liy4LiV4Li0CivguKHguKvguLLguYLguIrguJXguKPguLHguJUKK+C4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lih4Lir4Liy4LiU4LmA4Lil4LmH4LiBCivguKHguKvguLLguJTguYDguKXguYfguIHguKPguLLguKLguIfguLLguJkKK+C4oeC4q+C4suC4leC4oeC4sAor4Lih4Lir4Liy4LmE4LiW4LmICivguKHguKvguLLguYDguJfguJ4KK+C4oeC4q+C4suC5gOC4l+C4nuC4tQor4Lih4Lir4Liy4LmA4LiX4Lin4Li1CivguKHguKvguLLguJjguLLguJXguLgKK+C4oeC4q+C4suC4meC4quC4sAor4Lih4Lir4Liy4LiZ4Li04LiB4Liy4LiiCivguKHguKvguLLguJnguLTguKUKK+C4oeC4q+C4suC4muC4nuC4tOC4leC4owor4Lih4Lir4Liy4Lia4Lix4LiT4LiR4Li04LiVCivguKHguKvguLLguJ7guJkKK+C4oeC4q+C4suC4nuC4o+C4q+C4oQor4Lih4Lir4Liy4Lig4Liy4Lij4LiVCivguKHguKvguLLguKDguLTguYDguJnguKnguIHguKPguKHguJPguYwKK+C4oeC4q+C4suC4oOC4ueC4lQor4Lih4Lir4Liy4LmA4Lih4LiGCivguKHguKvguLLguKLguLLguJkKK+C4oeC4q+C4suC4ouC4uOC4hAor4Lih4Lir4Liy4Lij4LiT4LieCivguKHguKvguLLguKPguLLguIoKK+C4oeC4q+C4suC4o+C4suC4iuC4peC4teC4peC4sgor4Lih4Lir4Liy4Lik4LiB4Lip4LmMCivguKHguKvguLLguKXguLDguKXguKfguKIKK+C4oeC4q+C4suC4peC4sOC4peC4suC4ogor4Lih4Lir4Liy4Lin4LiH4Lio4LmMCivguKHguKvguLLguKfguKPguKPguIQKK+C4oeC4q+C4suC4p+C4tOC4l+C4ouC4suC4peC4seC4ogor4Lih4Lir4Liy4Lio4Liy4LilCivguKHguKvguLLguKrguIfguIHguKPguLLguJnguJXguYwKK+C4oeC4q+C4suC4quC4lOC4oeC4oOC5jAor4Lih4Lir4Liy4Liq4LiU4LizCivguKHguKvguLLguKrguKHguLjguJfguKMKK+C4oeC4q+C4suC4quC4suC4p+C4gQor4Lih4Lir4Liy4Lir4LiH4Liq4LmMCivguKHguKvguLLguKvguLTguIfguITguLjguYwKK+C4oeC4q+C4suC4reC4s+C4meC4suC4iAor4Lih4Lir4Liy4Lit4Li44LiICivguKHguKvguLLguK3guLjguJQKK+C4oeC4q+C4suC4reC4uOC4m+C4o+C4suC4geC4owor4Lih4Lir4Li0CivguKHguKvguLTguIfguKrguYwKK+C4oeC4q+C4tOC4lOC4pQor4Lih4Lir4Li04LiX4LiY4Li0CivguKHguKvguLTguJjguKMKK+C4oeC4q+C4tOC4meC4l+C5jAor4Lih4Lir4Li04Lia4LiU4Li1CivguKHguKvguLTguJrguLLguKUKK+C4oeC4q+C4tOC4mwor4Lih4Lir4Li04Lih4LiyCivguKHguKvguLTguKjguKMKK+C4oeC4q+C4tOC4qOC4p+C4owor4Lih4Lir4Li04LipCivguKHguKvguLTguKnguLUKK+C4oeC4q+C4tuC4oeC4sgor4Lih4Lir4Li44LiU4Li04Lik4LiB4Lip4LmMCivguKHguKvguLjguKPguJTguLUKK+C4oeC4q+C4uQor4Lih4LmA4Lir4LiZ4LiX4Lij4LmMCivguKHguYDguKvguKLguIfguITguYwKK+C4oeC5gOC4q+C4qAor4Lih4LmA4Lir4Lio4Lin4LijCivguKHguYDguKvguKjguLHguIHguJTguLTguYwKK+C4oeC5gOC4q+C4quC4seC4geC4guC5jAor4Lih4LmA4Lir4Liq4Li0CivguKHguYDguKvguKrguLUKK+C4oeC5gOC4q+C4suC4qeC4mAor4Lih4LmA4Lir4Liy4Lis4Liy4LijCivguKHguYLguKvguIYKK+C4oeC5guC4q+C4o+C4quC4ngor4Lih4LmC4Lir4Lij4Liw4LiX4Li24LiBCivguKHguYLguKvguKPguLUKK+C4oeC5guC4q+C4qeC4mAor4Lih4LmC4Lir4Lis4Liy4LijCivguKHguYTguKvguKjguKfguKPguKPguKLguYwKK+C4oeC4rQor4Lih4Lit4LiE4Lij4Liy4LihCivguKHguK3guIcKK+C4oeC4reC4h+C5guC4geC4peC4reC4ouC4lOC5jAor4Lih4Lit4LiH4LiE4Lij4LmI4LitCivguKHguK3guIfguYDguKrguLXguYnguKLguKcKK+C4oeC4reC4i+C4rQor4Lih4Lit4LiNCivguKHguK3guI3guIvguYjguK3guJnguJzguYnguLIKK+C4oeC4reC4jeC4leC4teC4lOC4seC5ieC4hwor4Lih4Lit4LiUCivguKHguYjguK3guJXguYnguK0KK+C4oeC4reC5gOC4leC4reC4o+C5jAor4Lih4Lit4LiZCivguKHguYjguK3guJkKK+C4oeC4reC4meC5hOC4guC5iAor4Lih4Lit4LiaCivguKHguK3guJrguInguLHguJnguJfguLAKK+C4oeC4reC4muC4q+C4oeC4suC4ogor4Lih4Lit4Lia4Lit4Liz4LiZ4Liy4LiICivguKHguK3guKEKK+C4oeC4reC4oeC5gOC4oeC4sgor4Lih4Lit4Lih4LmB4Lih4LihCivguKHguK3guKHguYDguKvguKXguYnguLIKK+C4oeC5iOC4reC4ogor4Lih4Lit4Lij4LmM4Lif4Li14LiZCivguKHguK3guKPguLDguIHguLnguYgKK+C4oeC4reC4peC5guC4l+C4qgor4Lih4LmI4Lit4Lil4Lit4LiB4Lih4LmI4Lit4LmB4Lil4LiBCivguKHguK3guKvguKHguLbguIEKK+C4oeC5iOC4reC4q+C5ieC4reC4oQor4Lih4LmI4Lit4Liu4LmI4Lit4LihCivguKHguLAKK+C4oeC4sOC4geC4o+C4ueC4lAor4Lih4Liw4LiB4Lil4LmI4LizCivguKHguLDguIHguK3guIEKK+C4oeC4sOC4geC4reC4geC4meC5ieC4swor4Lih4Liw4LiB4Lit4LiB4Lia4LmJ4Liy4LiZCivguKHguLDguIHguK3guIHguJvguYjguLIKK+C4oeC4sOC4geC4reC4geC4neC4o+C4seC5iOC4hwor4Lih4Liw4LiB4Lit4LiB4Lie4Lij4Liy4LiZCivguKHguLDguIHguK3guIHguKrguLLguKHguJXguLDguIHguKPguYnguLLguJvguLLguYTguKHguYjguJbguLnguIEKK+C4oeC4sOC4geC5iOC4reC4hwor4Lih4Liw4LiB4Liw4LmC4Lij4LiZ4Li1CivguKHguLDguIHguLIKK+C4oeC4sOC5gOC4geC4peC4t+C4rQor4Lih4Liw4LmA4LiB4Li14LmL4Lii4LiHCivguKHguLDguILguYjguKfguIcKK+C4oeC4sOC4guC4p+C4tOC4lAor4Lih4Liw4LiC4Liy4LihCivguKHguLDguILguLLguKHguITguKPguLLguJrguKvguKHguLkKK+C4oeC4sOC4guC4suC4oeC5gOC4l+C4qAor4Lih4Liw4LiC4Liy4Lih4Lib4LmJ4Lit4LihCivguKHguLDguILguLLguKHguYDguJvguLXguKLguIEKK+C4oeC4sOC5gOC4guC4t+C4rQor4Lih4Liw4LmA4LiC4Li34Lit4LiX4Lin4Liy4LiiCivguKHguLDguYDguILguLfguK3guYDguJfguKgKK+C4oeC4sOC5gOC4guC4t+C4reC4nuC4p+C4hwor4Lih4Liw4LmA4LiC4Li34Lit4Lih4Lit4LiNCivguKHguLDguYHguILguYjguJkKK+C4oeC4sOC4hOC4sAor4Lih4Liw4LiE4Lix4LiH4LmB4LiU4LiHCivguKHguLDguITguYjguLIKK+C4oeC4sOC4hOC5iOC4suC5geC4leC5iQor4Lih4Liw4LiE4LmI4Liy4LmC4Lih4LiHCivguKHguLDguITguYjguLLguKvguJnguLLguKEKK+C4oeC4sOC4hOC5iOC4suC5g+C4q+C4jeC5iAor4Lih4Liw4LiE4Liz4LmE4LiB4LmICivguKHguLDguITguLPguJTguLXguITguKfguLLguKIKK+C4oeC4sOC4h+C4seC4mQor4Lih4Liw4LiH4Lix4LmI4LinCivguKHguLDguIfguLjguKHguKHguLDguIfguLLguKvguKPguLIKK+C4oeC4sOC4i+C4seC4gQor4Lih4Liw4LiL4Liy4LiHCivguKHguLDguIvguYjguLLguJkKK+C4oeC4sOC4lOC4sOC4guC4teC5ieC4meC4gQor4Lih4Liw4LiU4Lix4LiZCivguKHguLDguJTguLIKK+C4oeC4sOC4lOC4ueC4gQor4Lih4Liw4LmA4LiU4Lir4Lin4Li1CivguKHguLDguYDguJTguLfguYjguK0KK+C4oeC4sOC5gOC4lOC4t+C5iOC4reC4lOC4tOC4mQor4Lih4Liw4LiV4LmJ4Lit4LiHCivguKHguLDguJXguLDguJrguLAKK+C4oeC4sOC4leC4suC4lAor4Lih4Liw4LiV4Liy4Lir4Liw4Lij4Li1CivguKHguLDguJXguLUKK+C4oeC4sOC4leC4tuC5iOC4hwor4Lih4Liw4LiV4Li34LmL4LiZCivguKHguLDguJXguLnguKEKK+C4oeC4sOC5geC4leC4gQor4Lih4Liw4LiZ4Liy4LinCivguKHguLDguJnguLLguKfguYDguJfguKgKK+C4oeC4sOC4m+C4o+C4suC4hwor4Lih4Liw4Lib4Lij4Li04LiHCivguKHguLDguJvguYjguK3guIcKK+C4oeC4sOC4m+C5iOC4reC4h+C4leC5ieC4mQor4Lih4Liw4Lid4LmI4LitCivguKHguLDguJ7guKPguYnguLLguKcKK+C4oeC4sOC4nuC4o+C5ieC4suC4p+C5geC4geC5ieC4pwor4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4LiV4Li34LmI4LiZ4LiU4LiBCivguKHguLDguJ7guKPguYnguLLguKfguJfguLjguKIKK+C4oeC4sOC4nuC4o+C5ieC4suC4p+C4q+C5ieC4suC4pwor4Lih4Liw4Lie4Lil4Lix4LiaCivguKHguLDguJ7guLnguJQKK+C4oeC4sOC5geC4nuC4mQor4Lih4Liw4LmB4Lie4Lij4LmJ4LinCivguKHguLDguYDguJ/guLfguK3guIcKK+C4oeC4sOC5geC4n+C4mQor4Lih4Liw4LmE4LifCivguKHguLDguYTguJ/guYDguJTguLfguK3guJnguKvguYnguLIKK+C4oeC4sOC4oeC5iOC4p+C4hwor4Lih4Liw4Lih4LmI4Lin4LiH4Lir4Li04Lih4Lie4Liy4LiZ4LiV4LmMCivguKHguLDguKHguYjguLLguKcKK+C4oeC4sOC4oeC4teC5iAor4Lih4Liw4Lih4Li34LmI4LiZCivguKHguLDguKHguLjguJQKK+C4oeC4sOC5gOC4oeC4rQor4Lih4Liw4LmA4Lih4Li14LiiCivguKHguLDguYDguKHguLfguYjguK3guKIKK+C4oeC4sOC5geC4oQor4Lih4Liw4Lii4LiHCivguKHguLDguKLguIfguIrguLTguJQKK+C4oeC4sOC4ouC4oQor4Lih4Liw4Lij4LiwCivguKHguLDguKPguLTguJQKK+C4oeC4sOC4o+C4t+C4mQor4Lih4Liw4Lij4Li44LihCivguKHguLDguKPguLjguKHguKHguLDguJXguLjguYnguKEKK+C4oeC4sOC5gOC4o+C5h+C4hwor4Lih4Liw4LmA4Lij4Li34LmI4Lit4LiHCivguKHguLDguYLguKPguIcKK+C4oeC4sOC4peC4sOC4geC4rQor4Lih4Liw4Lil4Liy4Lij4Lit4LiB4Lix4LiZCivguKHguLDguKXguLMKK+C4oeC4sOC4peC4tAor4Lih4Liw4Lil4Li04LiL4LmI4Lit4LihCivguKHguLDguKXguLTguJkKK+C4oeC4sOC4peC4tOC5iOC4oQor4Lih4Liw4Lil4Li04LmA4Lil4Li34LmJ4Lit4LiiCivguKHguLDguKXguLTguK3guYjguK3guIcKK+C4oeC4sOC4peC4t+C5iOC4mQor4Lih4Liw4Lil4Li34Lih4LiU4LizCivguKHguLDguKXguLjguKXguLUKK+C4oeC4sOC4p+C4suC4owor4Lih4Liw4LmB4Lin4LmJ4LiHCivguKHguLDguKrguLHguIcKK+C4oeC4sOC5gOC4quC5h+C4hwor4Lih4Liw4Lir4Lil4Li04LmI4LihCivguKHguLDguKvguKfguJQKK+C4oeC4sOC4q+C4sOC4q+C4oeC4seC4lAor4Lih4Liw4Lir4Lix4LilCivguKHguLDguKvguLLguJQKK+C4oeC4sOC4q+C4tOC5iOC4hwor4Lih4Liw4LmA4Lir4LiH4LiBCivguKHguLDguYDguKvguKHguLfguYjguK3guKIKK+C4oeC4sOC4reC4tuC4gQor4Lih4Liw4Liu4Lit4LiB4LiB4Liy4LiZ4Li1CivguKHguLHguIEKK+C4oeC4seC4geC4geC4sOC4peC4teC4nOC4pQor4Lih4Lix4LiB4LiB4Liw4Liq4Lix4LiZCivguKHguLHguIHguILguLAKK+C4oeC4seC5iOC4geC4guC4seC5ieC4gQor4Lih4Lix4LiB4LiC4Li04LiB4LiyCivguKHguLHguIHguILguLTguIHguLLguIrguLLguJXguLQKK+C4oeC4seC4geC4hOC4uOC5ieC4mQor4Lih4Lix4LiB4LiH4LmI4Liy4LiiCivguKHguLHguIHguI/guIHguLAKK+C4oeC4seC4geC4j+C4sAor4Lih4Lix4LiB4LmE4LiU4LmJCivguKHguLHguIHguJnguYnguK3guKIKK+C4oeC4seC4geC4oeC4suC4gQor4Lih4Lix4LiB4LmD4Lir4LiN4LmICivguKHguLHguIQtCivguKHguLHguITguITguLAKK+C4oeC4seC4hOC4hOC4uOC5gOC4l+C4qOC4geC5jAor4Lih4Lix4LiE4LiZ4Liy4Lii4LiBCivguKHguLHguITguKrguLTguKPguLAKK+C4oeC4seC4huC4p+C4sgor4Lih4Lix4LiG4Lin4Liy4LiZCivguKHguLHguYjguIcKK+C4oeC4seC4h+C4geC4hwor4Lih4Lix4LiH4LiB4LijCivguKHguLHguIfguIHguLgKK+C4oeC4seC4h+C4hOC4peC4sAor4Lih4Lix4LmI4LiH4LiE4Lix4LmI4LiHCivguKHguLHguIfguITguYjguLIKK+C4oeC4seC4h+C4hOC4uOC4lAor4Lih4Lix4LiH4LiV4Liy4LiZCivguKHguLHguYjguIfguKHguLUKK+C4oeC4seC5iOC4h+C4oeC4teC5g+C4meC5g+C4iCDguYHguKXguYjguJnguYPguJrguJrguJnguJrguIEKK+C4oeC4seC4h+C4qi0KK+C4oeC4seC4h+C4quC4p+C4tOC4o+C4seC4leC4tAor4Lih4Lix4LiH4Liq4LiwCivguKHguLHguIfguKrguLUKK+C4oeC4seC4h+C4q+C4h+C4seC4mQor4Lih4Lix4LiI4LiI4LiwCivguKHguLHguIjguIjguLgKK+C4oeC4seC4iOC4iOC4uOC4o+C4suC4igor4Lih4Lix4LiI4LiJ4Lij4LiwCivguKHguLHguIjguInguKPguLTguKLguLAKK+C4oeC4seC4iOC4ieC4o+C4tQor4Lih4Lix4LiI4LiJ4LiwCivguKHguLHguIjguInguLIKK+C4oeC4seC4iOC4ieC4suC4iuC4suC4leC4tAor4Lih4Lix4LiKLQor4Lih4Lix4LiK4LiK4LiwCivguKHguLHguIrguIrguLLguKMKK+C4oeC4seC4iuC4jC0KK+C4oeC4seC4iuC4jOC4seC4meC4leC4tOC4gS0KK+C4oeC4seC4iuC4jOC4seC4meC4leC4tOC4geC4quC4oeC4seC4ogor4Lih4Lix4LiK4LiM4Li04LihLQor4Lih4Lix4LiK4LiM4Li04Lih4LiZ4Li04LiB4Liy4LiiCivguKHguLHguIrguIzguLTguKHguJrguLjguKPguLjguKkKK+C4oeC4seC4iuC4jOC4tOC4oeC4m+C4o+C4sOC5gOC4l+C4qAor4Lih4Lix4LiK4LiM4Li04Lih4Lig4Li54Lih4Li0CivguKHguLHguIrguIzguLTguKHguKLguLLguKEKK+C4oeC4seC4iuC4jOC4tOC4oeC4p+C4seC4ogor4Lih4Lix4LiK4LiM4Li04Lih4LiyCivguKHguLHguIrguIzguLTguKHguLLguJvguI/guLTguJvguJfguLIKK+C4oeC4seC4iuC4p+C4tOC4o+C4seC4leC4tAor4Lih4Lix4LiN4LiI4LiBCivguKHguLHguI3guIjguLIKK+C4oeC4seC4jeC4iuC4tOC4qeC4kAor4Lih4Lix4LiN4LiK4Li04Lip4LiQ4LiyCivguKHguLHguI3guIrguLXguKMKK+C4oeC4seC4jeC4iuC4uAor4Lih4Lix4LiN4LiK4Li44Liq4LiyCivguKHguLHguI3guIrguLnguKrguLIKK+C4oeC4seC4jeC5gOC4iuC4j+C4kOC4sAor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4Li04LiB4LiyCivguKHguLHguI3guYDguIrguI/guJDguLTguIHguLLguIHguKMKK+C4oeC4seC4jeC5gOC4iuC4teC4ouC4owor4Lih4Lix4LiP4LiQ4LiwCivguKHguLHguJPguJEtCivguKHguLHguJPguJHguJktCivguKHguLHguJPguJHguJnguKjguLTguKXguJvguYwKK+C4oeC4seC4k+C4keC4meC4sgor4Lih4Lix4LiT4LiR4Li44LiBCivguKHguLHguJQKK+C4oeC4seC4lOC4iOC4swor4Lih4Lix4LiU4LmA4LiK4Li34LmJ4Lit4LmA4Lie4Lil4Li04LiHCivguKHguLHguJTguKHguLfguK3guIrguIEKK+C4oeC4seC4lOC4q+C4oeC4teC5iAor4Lih4Lix4LiU4Lir4Lih4Li5CivguKHguLHguJTguKvguKfguLLguKIKK+C4oeC4seC4leC4leC4sAor4Lih4Lix4LiV4LiV4Lix4LiN4LiN4Li5CivguKHguLHguJXguJXguLHguKIKK+C4oeC4seC4leC4leC4sgor4Lih4Lix4LiV4LiV4Li04LiB4LiyCivguKHguLHguJXguJbguIEKK+C4oeC4seC4leC4luC4peC4uOC4h+C4hOC5jAor4Lih4Lix4LiV4LiiCivguKHguLHguJXguKrguKLguLAKK+C4oeC4seC4leC4quC4ouC4sgor4Lih4Lix4LiV4Liq4LijCivguKHguLHguJXguKrguKPguKPguKLguYwKK+C4oeC4seC4leC4quC4o+C4tOC4mQor4Lih4Lix4LiX4LiZ4LiwCivguKHguLHguJfguJnguLXguKLguLAKK+C4oeC4seC4l+C4ouC4sAor4Lih4Lix4LiY4LiiLQor4Lih4Lix4LiY4Lii4LiQ4Liy4LiZCivguKHguLHguJjguKLguKEKK+C4oeC4seC4mOC4ouC4oS0KK+C4oeC4seC4mOC4ouC4oeC4geC4suC4pQor4Lih4Lix4LiY4Lii4Lih4Lio4Li24LiB4Lip4LiyCivguKHguLHguJjguKLguKHguLIKK+C4oeC4seC4mOC4ouC4seC4meC4q+C5jAor4Lih4Lix4LiY4Lii4Lix4Liq4LiW4LmMCivguKHguLHguJkKK+C4oeC4seC5iOC4mQor4Lih4Lix4LiZ4LmB4LiB4LinCivguKHguLHguYjguJnguITguIcKK+C4oeC4seC5iOC4meC5g+C4iAor4Lih4Lix4LiZ4LiU4Li1CivguKHguLHguJnguJXguLIKK+C4oeC4seC4meC4luC4sAor4Lih4Lix4LiZ4LiX4Li04LijCivguKHguLHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4seC4meC5gOC4l+C4qAor4Lih4Lix4LiZ4LiZ4LiBCivguKHguLHguJnguJvguKXguLIKK+C4oeC4seC4meC4m+C4uQor4Lih4Lix4LiZ4Lid4Lij4Lix4LmI4LiHCivguKHguLHguJnguKLguYjguK3guIcKK+C4oeC4seC4meC4quC4oeC4reC4hwor4Lih4Lix4LiZ4LmA4Liq4LiyCivguKHguLHguJnguYTguKrguYkKK+C4oeC4seC5iOC4meC4q+C4oeC4suC4ogor4Lih4Lix4LmI4LiZ4LmA4Lir4Lih4Liy4LiwCivguKHguLHguJoKK+C4oeC4seC4muC5hgor4Lih4Lix4LmJ4LihCivguKHguLHguKHguKHguLXguYgKK+C4oeC4seC4ogor4Lih4Lix4Lil4LiBCivguKHguLHguKXguKXguLAKK+C4oeC4seC4peC4peC4tOC4geC4sgor4Lih4Lix4LinCivguKHguLHguYjguKcKK+C4oeC4seC4p+C4i+C4seC4pwor4Lih4Lix4Lin4Lih4Lit4LihCivguKHguLHguYjguKfguKHguLnguKUKK+C4oeC4seC4p+C5gOC4oeC4sgor4Lih4Lix4Lin4LmA4Lih4Li14LiiCivguKHguLHguYjguKfguKrguLjguKEKK+C4oeC4seC4p+C4q+C4oeC4reC4hwor4Lih4Lix4Lio4Lii4LiyCivguKHguLHguKrguJTguIEKK+C4oeC4seC4quC4lOC4uAor4Lih4Lix4Liq4LiV4Liy4Lij4LmM4LiUCivguKHguLHguKrguJXguLgKK+C4oeC4seC4quC4oeC4seC5iOC4mQor4Lih4Lix4Liq4Lii4Li04LiUCivguKHguLHguKrguKPguLnguYgKK+C4oeC4seC4quC4peC4tOC4mQor4Lih4Lix4Liq4Liq4Li4CivguKHguLIKK+C4oeC5ieC4sgor4Lih4Liy4LiBCivguKHguLLguIHguILguLXguYnguITguKfguLLguKLguKvguKXguLLguKLguILguLXguYnguIrguYnguLLguIcKK+C4oeC4suC4geC4oeC4suC4ogor4Lih4Liy4LiB4Lih4Liy4Lii4LiB4LmI4Liy4Lii4LiB4Lit4LiHCivguKHguLLguIHguKvguJnguYnguLLguKvguKXguLLguKLguJXguLIKK+C4oeC4suC4geC4q+C4oeC4reC4oeC4suC4geC4hOC4p+C4suC4oQor4Lih4Liy4LmB4LiC4LiBCivguKHguLLguITguKrguLTguKMtCivguKHguLLguITguKrguLTguKPguLAKK+C4oeC4suC4hi0KK+C4oeC4suC4huC4muC4ueC4iuC4sgor4Lih4Liy4LiG4LiwCivguKHguYnguLLguIcKK+C4oeC4suC4h+C4quC4sAor4Lih4LmJ4Liy4LmD4LiK4LmJCivguKHguLLguJPguJ4KK+C4oeC4suC4k+C4p+C4tOC4geC4sgor4Lih4Liy4LiUCivguKHguLLguJTguLIKK+C4oeC5ieC4suC4lOC4teC4lOC4geC4sOC5guC4q+C4peC4gQor4Lih4Liy4LiV4LiH4LiE4LmMCivguKHguYnguLLguJXguYnguJkKK+C4oeC4suC4leC4owor4Lih4Liy4LiV4LijLQor4Lih4Liy4LiV4Lij4LiB4Liy4LijCivguKHguLLguJXguKPguJDguLLguJkKK+C4oeC4suC4leC4o+C5geC4oeC5ieC4mQor4Lih4Liy4LiV4Lij4Lin4LmI4LiyCivguKHguLLguJXguKPguLIKK+C4oeC4suC4leC4o+C4suC4nuC4pOC4leC4tAor4Lih4Liy4LiV4Lij4Liy4Liq4LmI4Lin4LiZCivguKHguLLguJXguKQKK+C4oeC4suC4leC4pOC4geC4sAor4Lih4Liy4LiV4Liq4Lij4Lij4Lii4LmMCivguKHguLLguJXguLHguIfguIQKK+C4oeC4suC4leC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4LiwCivguKHguLLguJXguLLguKHguKvguLHguKLguIHguLAKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4geC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4Lii4Li04LiB4LiyCivguKHguLLguJXguLLguKHguKvguLIKK+C4oeC4suC4leC4tOC4gQor4Lih4Liy4LiV4Li04LiB4LiyCivguKHguLLguJXguLUKK+C4oeC4suC4leC4uAor4Lih4Liy4LiV4Li44LiE4Liy4LihCivguKHguLLguJXguLjguIbguLLguJUKK+C4oeC4suC4leC4uOC4iOC4ieC4sgor4Lih4Liy4LiV4Li44Lig4Li54Lih4Li0CivguKHguLLguJXguLjguKPguIfguITguYwKK+C4oeC4suC4leC4uOC5gOC4o+C4qAor4Lih4Liy4LiV4Li44Lil4LiwCivguKHguLLguJXguLjguKXguLIKK+C4oeC4suC4leC4uOC4peC4suC4meC4tQor4Lih4Liy4LiV4Li44Lil4Li44LiH4LiE4LmMCivguKHguLLguJcKK+C4oeC4suC4l+C4mQor4Lih4LmJ4Liy4LiX4Lil4Liy4Lii4LmC4Lij4LiHCivguKHguYnguLLguYDguJfguKgKK+C4oeC4suC4mOC4ouC4oeC4tOC4geC4sAor4Lih4Liy4LiY4Li44LijCivguKHguLLguJjguLjguKrguKMKK+C4oeC4suC4mOC4ueC4owor4Lih4Liy4LiZCivguKHguYjguLLguJkKK+C4oeC5ieC4suC4mQor4Lih4LmI4Liy4LiZ4LiV4LiyCivguKHguLLguJnguJfguLDguKXguLjguJkKK+C4oeC5iOC4suC4meC4muC4seC4h+C5gOC4nuC4peC4tOC4hwor4Lih4Liy4LiZ4LieCivguKHguYjguLLguJnguYDguKHguKPguLgKK+C4oeC5iOC4suC4meC4peC4suC4ogor4Lih4LmI4Liy4LiZ4Liq4Lit4LiH4LmE4LiCCivguKHguYjguLLguJnguK3guLTguJnguJfguJnguLTguKUKK+C4oeC4suC4meC4sAor4Lih4Liy4LiZ4Lix4LiVCivguKHguLLguJnguLHguKoKK+C4oeC5ieC4suC4meC5ieC4swor4Lih4Liy4LiZ4Li04LiVCivguKHguLLguJnguLUKK+C4oeC4suC4meC4uOC4qQor4Lih4Liy4LiZ4Li44Lip4LiiLQor4Lih4Liy4LiZ4Li44Lip4Lii4Lin4Li04LiX4Lii4LiyCivguKHguLLguYLguJnguIrguI3guYwKK+C4oeC4suC4mgor4Lih4Liy4Lib4LiBCivguKHguLLguKDguLIKK+C4oeC5ieC4suC4oQor4Lih4LmJ4Liy4Lih4Li34LiUCivguKHguLLguKIKK+C4oeC5iOC4suC4ogor4Lih4LmI4Liy4Lii4LmA4Lih4Li14Lii4LiHCivguKHguYnguLLguKLguYjguK3guIcKK+C4oeC4suC4ouC4seC4hwor4Lih4Liy4Lii4LiyCivguKHguLLguKLguLLguIHguKMKK+C4oeC4suC4ouC4suC4geC4pQor4Lih4Liy4Lii4Liy4LiB4Liy4LijCivguKHguLLguKLguLLguJvguKPguLDguKrguLLguJkKK+C4oeC4suC4ouC4suC4p+C4tQor4Lih4Liy4LijCivguKHguLLguKMtCivguKHguLLguKPguIQKK+C4oeC4suC4o+C4hOC4reC4q+C4reC4ogor4Lih4Liy4Lij4LiK4Li0CivguKHguLLguKPguIrguLTguJUKK+C4oeC4suC4o+C4lOC4owor4Lih4Liy4Lij4LiU4LiyCivguKHguLLguKPguJzguIjguI0KK+C4oeC4suC4o+C4ouC4sgor4Lih4Liy4Lij4Lii4Liy4LiXCivguKHguLLguKPguKfguLTguIrguLHguKIKK+C4oeC4suC4o+C4p+C4tOC4iuC4tOC4lQor4Lih4Liy4Lij4Lio4Lij4Li1CivguKHguLLguKPguKnguLIKK+C4oeC4suC4o+C4quC4seC4h+C4hOC4oQor4Lih4Liy4Lij4Lir4Lix4Lin4LiC4LiZCivguKHguLLguKPguLAKK+C4oeC4suC4o+C4suC4mOC4tOC4o+C4suC4igor4Lih4LmJ4Liy4Lij4LizCivguKHguLLguKPguLQKK+C4oeC4suC4o+C4tOC4lQor4Lih4Liy4Lij4Li44LiVCivguKHguLLguKPguLjguKHguKHguLLguJXguLjguYnguKEKK+C4oeC5ieC4suC5gOC4o+C5h+C4pwor4Lih4Liy4Lil4Lii4LmMCivguKHguYnguLLguKXguYjguK0KK+C4oeC4suC4peC4seC4ogor4Lih4Liy4Lil4LiyCivguKHguLLguKXguLLguIHguKPguKPguKEKK+C4oeC4suC4peC4suC4geC4suC4owor4Lih4Liy4Lil4Liy4LiV4Li1CivguKHguYnguLLguKXguLLguKIKK+C4oeC4suC4peC4suC5gOC4o+C4teC4ogor4Lih4Liy4Lil4LizCivguKHguLLguKXguLTguJnguLUKK+C4oeC4suC4peC4tQor4Lih4Liy4Lil4Li44LiVCivguKHguLLguKfguLLguKMKK+C4oeC4suC4qAor4Lih4Liy4LiqCivguKHguLLguKrguIEKK+C4oeC5ieC4suC4quC4sOC4muC4seC4lOC4geC4teC4mgor4Lih4Liy4Lir4LmMCivguKHguYjguLLguKvguYwKK+C4oeC4suC4q+C4tOC4qgor4Lih4Liy4LmA4Lir4LiZ4Li34Lit4LmA4Lih4LiGCivguKHguYjguLLguYDguKvguKHguLXguYjguKLguKcKK+C4oeC4suC4rOC4gQor4Lih4LmJ4Liy4Lit4LmJ4Lin4LiZCivguKHguLPguYDguKXguLfguK3guIcKK+C4oeC4tAor4Lih4Li04LiECivguKHguLTguIQtCivguKHguLTguITguKXguLjguJcKK+C4oeC4tOC4hOC4peC4uOC4l+C4gQor4Lih4Li04LiE4LmA4Lio4Li14Lii4LijCivguKHguLTguITguKrguLHguI3guI3guLUKK+C4oeC4tOC4hOC4quC4tOC4oy0KK+C4oeC4tOC4hOC4quC4tOC4o+C4sAor4Lih4Li04LiE4Li1CivguKHguLTguYjguIcKK+C4oeC4tOC5iOC4h+C4guC4p+C4seC4jQor4Lih4Li04LiH4LmC4LiECivguKHguLTguYjguIfguKHguLTguJXguKMKK+C4oeC4tOC4iOC4ieC4sgor4Lih4Li04LiI4LiJ4Liy4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4LiwCivguKHguLTguIjguInguLLguIjguKPguLTguKLguLIKK+C4oeC4tOC4iOC4ieC4suC4iOC4suC4owor4Lih4Li04LiI4LiJ4Liy4LiK4Li14LieCivguKHguLTguIjguInguLLguJfguLTguJDguLQKK+C4oeC4tOC4iOC4ieC4suC4muC4lgor4Lih4Li04LiI4LiJ4Liy4Lin4Liy4LiI4LiyCivguKHguLTguIjguInguLLguKfguLLguKLguLLguKHguLAKK+C4oeC4tOC4iOC4ieC4suC4quC4leC4tAor4Lih4Li04LiI4LiJ4Liy4Liq4Lih4Liy4LiY4Li0CivguKHguLTguIjguInguLLguKrguLHguIfguIHguLHguJvguJvguLAKK+C4oeC4tOC4iOC4ieC4suC4reC4suC4iuC4teC4p+C4sAor4Lih4Li04LiN4LiKLQor4Lih4Li04LiUCivguKHguLTguJTguIrguLTguJQKK+C4oeC4tOC4lOC5gOC4oeC5ieC4mQor4Lih4Li04LiU4LmA4Lih4Li14LmJ4Lii4LiZCivguKHguLTguJTguKvguKHguLUKK+C4oeC4tOC4lOC4teC4oeC4tOC4o+C5ieC4suC4ogor4Lih4Li04LmE4LiU4LmJCivguKHguLTguJUtCivguKHguLTguJXguKDguLLguJPguLUKK+C4oeC4tOC4leC4owor4Lih4Li04LiV4LijLQor4Lih4Li04LiV4Lij4LiI4Li04LiVCivguKHguLTguJXguKPguIjguLTguJXguKHguLTguJXguKPguYPguIgKK+C4oeC4tOC4leC4o+C4oOC4suC4ngor4Lih4Li04LiV4Lij4Liq4Lir4Liy4LiiCivguKHguLTguJXguLQKK+C4oeC4tOC4luC4ouC4sgor4Lih4Li04LiW4Li44LiZCivguKHguLTguJbguLjguJnguLLguKLguJkKK+C4oeC4tOC4l+C4mOC4sAor4Lih4Li04LiX4LiY4Li1CivguKHguLTguJnguJXguKPguLIKK+C4oeC4tOC4meC4leC4sgor4Lih4Li04LiZ4Lir4Lih4LmJ4LitCivguKHguLTguJnguYjguLIKK+C4oeC4tOC4meC5iOC4suC4peC5iOC4sAor4Lih4Li04LiZ4LmI4Liy4LmA4Lil4LmI4LiyCivguKHguLTguYjguKEKK+C4oeC4tOC5ieC4oQor4Lih4Li04Lii4LiyCivguKHguLTguYTguKIKK+C4oeC4tOC4o+C4seC4meC4leC4tQor4Lih4Li04Lil4Lil4Li04LiB4Lij4Lix4LihCivguKHguLTguKXguKXguLTguJrguLLguKPguYwKK+C4oeC4tOC4peC4peC4tOC5gOC4oeC4leC4owor4Lih4Li04Lil4Lil4Li04Lil4Li04LiV4LijCivguKHguLTguKXguLHguIHguILguLAKK+C4oeC4tOC4peC4seC4geC4guC4uQor4Lih4Li04Lil4Liy4LiVCivguKHguLTguKjguKMtCivguKHguLTguKjguKPguIEtCivguKHguLTguKotCivguKHguLTguKrguIEtCivguKHguLTguKrguIHguKPguLUKK+C4oeC4tOC4quC4geC4p+C4seC4mQor4Lih4Li04Liq4LiL4LiyCivguKHguLTguK3guKLguYjguLLguKPguLIKK+C4oeC4tOC4reC4ouC5iOC4suC5gOC4peC4ogor4Lih4Li1CivguKHguLXguYgKK+C4oeC4teC5geC4geC5iOC5g+C4iAor4Lih4Li14LmI4LiJ4Liy4LinCivguKHguLXguIrguLfguYjguK0KK+C4oeC4teC4iuC4ueC5iQor4Lih4Li14LiUCivguKHguLXguJTguYLguIHguJkKK+C4oeC4teC4lOC4leC4reC4gQor4Lih4Li14LiU4Lii4Lix4LiaCivguKHguLXguJTguKvguKHguK0KK+C4oeC4teC4leC4suC5geC4leC5iOC4q+C4suC4oeC4teC5geC4p+C4p+C5hOC4oeC5iAor4Lih4Li14LiX4Lit4LiH4LmA4LiX4LmI4Liy4Lir4LiZ4Lin4LiU4LiB4Li44LmJ4LiHIOC4meC4reC4meC4quC4sOC4lOC4uOC5ieC4h+C4iOC4meC5gOC4o+C4t+C4reC4meC5hOC4q+C4pwor4Lih4Li14LmA4LiX4LiZCivguKHguLXguJkKK+C4oeC4teC4meC4suC4hOC4oQor4Lih4Li14LmA4Lif4Li34LmJ4Lit4LiH4Lih4Li14Liq4Lil4Li24LiHCivguKHguLXguKDguLLguKnguLXguIHguKfguYjguLIKK+C4oeC4teC5gOC4o+C4t+C4reC4mQor4Lih4Li14LmI4Liq4Lix4LmJ4LinCivguKHguLXguYDguKrguLXguKLguIcKK+C4oeC4teC4q+C4meC5ieC4sgor4Lih4Li14Lir4LiZ4LmJ4Liy4Lih4Li14LiV4LiyCivguKHguLXguKzguKstCivguKHguLXguK3guLHguJnguIjguLDguIHguLTguJkKK+C4oeC4teC4reC4seC4meC5gOC4m+C5h+C4mQor4Lih4Li14Lit4Liy4Lii4Li4CivguKHguLbguIEKK+C4oeC4tuC4geC4oeC4p+C4ogor4Lih4Li24LiHCivguKHguLbguIfguKfguLLguJ7guLLguYLguKfguKIKK+C4oeC4tuC4mQor4Lih4Li24LiZ4LiH4LiHCivguKHguLbguJnguIrguLIKK+C4oeC4tuC4meC4i+C4tuC4oQor4Lih4Li24LiZ4LiV4Li24LiHCivguKHguLbguJnguYDguKHguLIKK+C4oeC4t+C4lAor4Lih4Li34LiU4LiE4LmI4LizCivguKHguLfguJTguYHguJvguJTguJTguYnguLLguJkKK+C4oeC4t+C4lOC4n+C5ieC4suC4oeC4seC4p+C4lOC4tOC4mQor4Lih4Li34LiU4Lih4LiZCivguKHguLfguJTguKHguLHguKcKK+C4oeC4t+C4lOC4q+C4meC5ieC4sgor4Lih4Li34LiZCivguKHguLfguYjguJkKK+C4oeC4t+C4rQor4Lih4Li34LmJ4LitCivguKHguLfguK3guIHguLLguKcKK+C4oeC4t+C4reC5gOC4geC5iOC4sgor4Lih4Li34Lit4LiC4Lin4LiyCivguKHguLfguK3guILguLbguYnguJkKK+C4oeC4t+C4reC5geC4guC5h+C4hwor4Lih4Li34Lit4LiU4Li1CivguKHguLfguK3guJXguIEKK+C4oeC4t+C4reC5gOC4leC4tOC4mgor4Lih4Li34Lit4LiW4Li34Lit4Liq4Liy4LiBIOC4m+C4suC4geC4luC4t+C4reC4qOC4teC4pQor4Lih4Li34Lit4LiX4Li14LmI4Liq4Liy4LihCivguKHguLfguK3guJrguK3guJkKK+C4oeC4t+C4reC5gOC4muC4sgor4Lih4Li34Lit4Lib4Li34LiZCivguKHguLfguK3guJzguLUKK+C4oeC4t+C4reC4oeC4t+C4lAor4Lih4Li34Lit4LmE4Lih4LmI4LiW4Li24LiHCivguKHguLfguK3guYTguKHguYjguJ7guLLguKIg4LmA4Lit4Liy4LiV4Li14LiZ4Lij4Liy4LiZ4LmJ4LizCivguKHguLfguK3guYDguKLguYfguJkKK+C4oeC4t+C4reC4o+C5ieC4reC4mQor4Lih4Li34Lit4Lil4Li04LiHCivguKHguLfguK3guYTguKcKK+C4oeC4t+C4reC4quC4sOC4reC4suC4lAor4Lih4Li34Lit4Liq4Lix4LmJ4LiZ4LiV4Li14LiZ4Liq4Lix4LmJ4LiZCivguKHguLfguK3guKrguLUKK+C4oeC4t+C4reC5gOC4quC4t+C4rQor4Lih4Li34Lit4Lir4LiZ4Lix4LiBCivguKHguLfguK3guKvguJnguLbguYjguIcKK+C4oeC4t+C4reC4q+C5iOC4suC4h+C4leC4teC4meC4q+C5iOC4suC4hwor4Lih4Li34Lit4LmD4Lir4Lih4LmICivguKHguLfguK3guK3guYjguK3guJkKK+C4oeC4t+C4reC4reC5iOC4reC4meC4leC4teC4meC4reC5iOC4reC4mQor4Lih4Li4CivguKHguLjguIEKK+C4oeC4uOC4geC4lOC4sgor4Lih4Li44LiB4LiU4Liy4Lir4Liy4LijCivguKHguLjguIHguLjguKMKK+C4oeC4uOC4geC4uOC4pQor4Lih4Li44LiCCivguKHguLjguIItCivguKHguLjguILguIHguKPguLDguKrguLHguJkKK+C4oeC4uOC4guC5gOC4lOC5h+C4iAor4Lih4Li44LiC4Lia4Liy4LiQCivguKHguLjguILguKHguJnguJXguKPguLUKK+C4oeC4uOC4guC4oi0KK+C4oeC4uOC4guC4ouC4m+C4o+C4sOC5guC4ouC4hAor4Lih4Li44LiC4Lil4LiUCivguKHguLjguYLguILguYLguKXguIHguJnguLAKK+C4oeC4uOC4hOC4hOC4sAor4Lih4Li44LiE4LiY4LmMCivguKHguLjguITguKMKK+C4oeC4uOC4hwor4Lih4Li44LmI4LiHCivguKHguLjguYnguIcKK+C4oeC4uOC5ieC4h+C4geC4o+C4sOC4leC5iOC4suC4ogor4Lih4Li44LmJ4LiH4Lib4Lij4Liw4LiX4Li44LiZCivguKHguLjguYjguIfguKHguLLguJQKK+C4oeC4uOC5iOC4h+C4o+C5ieC4suC4ouC4q+C4oeC4suC4ouC4guC4p+C4seC4jQor4Lih4Li44LmJ4LiH4Lil4Lin4LiUCivguKHguLjguYnguIfguKrguLLguKLguJrguLHguKcKK+C4oeC4uOC5iOC4h+C4q+C4oeC4suC4ogor4Lih4Li44LiI4LiJ4LiyCivguKHguLjguIjguJkKK+C4oeC4uOC4iOC4peC4tOC4meC4l+C5jAor4Lih4Li44LiN4LiI4LiZ4LiwCivguKHguLjguI3guIoKK+C4oeC4uOC4kOC4tAor4Lih4Li44LiT4LiRCivguKHguLjguJPguJHguIEKK+C4oeC4uOC4lAor4Lih4Li44LiU4Lir4Lix4LinCivguKHguLjguJUKK+C4oeC4uOC4lS0KK+C4oeC4uOC4leC4geC4tOC4lAor4Lih4Li44LiV4LiG4Liy4LiVCivguKHguLjguJXguJXguLAKK+C4oeC4uOC4leC4leC4sgor4Lih4Li44LiV4LiV4Li0CivguKHguLjguJXguLQKK+C4oeC4uOC4leC4tOC4h+C4hOC5jAor4Lih4Li44LiX4LiECivguKHguLjguJfguITguKMKK+C4oeC4uOC4l+C4l+C4sgor4Lih4Li44LiX4LiY4LiK4LiwCivguKHguLjguJfguJjguLIKK+C4oeC4uOC4l+C4mOC4suC4oOC4tOC5gOC4qeC4gQor4Lih4Li44LiX4Lij4LiyCivguKHguLjguJfguKPguLTguIHguLIKK+C4oeC4uOC4l+C4sOC4peC4uAor4Lih4Li44LiX4LiyCivguKHguLjguJfguLTguIHguLIKK+C4oeC4uOC4l+C4tOC4h+C4hOC5jAor4Lih4Li44LiX4Li04LiV4LiyCivguKHguLjguJfguLTguJkKK+C4oeC4uOC4l+C4uAor4Lih4Li44LiX4Li44LiV4LiyCivguKHguLjguYjguJkKK+C4oeC4uOC5iOC4meC5g+C4iAor4Lih4Li44LmI4LiZ4Lir4Lih4LiBCivguKHguLjguJnguLQKK+C4oeC4uOC4meC4tOC4geC4uOC4jeC4iuC4owor4Lih4Li44LiZ4Li04LiZ4LiX4Lij4LmMCivguKHguLjguJnguLUKK+C4oeC4uOC4mgor4Lih4Li44Lia4LmGCivguKHguLjguJrguKHguLTguJoKK+C4oeC4uOC4oQor4Lih4Li44LmI4LihCivguKHguLjguYnguKEKK+C4oeC4uOC4oeC4geC4lOC4peC4hwor4Lih4Li44Lih4LiB4LmJ4LihCivguKHguLjguKHguIHguKXguLHguJoKK+C4oeC4uOC4oeC5gOC4h+C4ogor4Lih4Li44Lih4LiJ4Liy4LiBCivguKHguLjguKHguJXguIHguIHguKPguLDguJfguJoKK+C4oeC4uOC4oeC4leC4o+C4hwor4Lih4Li44Lih4LmA4LiXCivguKHguLjguKHguJrguYjguLLguKLguYDguJrguJkKK+C4oeC4uOC4oeC4m+C4o+C4sOC4iuC4tOC4lAor4Lih4Li44Lih4Lib4LmJ4Liy4LiZCivguKHguLjguKHguKHguLfguJQKK+C4oeC4uOC4oeC4ouC4geC4guC4tuC5ieC4mQor4Lih4Li44Lih4LmB4Lii4LmJ4LiHCivguKHguLjguKHguKrguLDguJfguYnguK3guJkKK+C4oeC4uOC4oeC4q+C4seC4geC5gOC4qwor4Lih4Li44Lih4LmA4LirCivguKHguLjguKHguYHguKvguKXguKEKK+C4oeC4uOC5iOC4ogor4Lih4Li44Lij4LiKCivguKHguLjguKPguJjguLIKK+C4oeC4uOC4o+C4mOC4suC4oOC4tOC5gOC4qeC4gQor4Lih4Li44Lil4Li44LiVCivguKHguLjguKXguLkKK+C4oeC4uOC4quC4peC4sAor4Lih4Li44Liq4Lil4Li04LihCivguKHguLjguKrguLAKK+C4oeC4uOC4quC4sgor4Lih4Li44Liq4Liy4Lin4Liy4LiXCivguKHguLjguKrguLTguIEKK+C4oeC4uOC4q+C4h+C4tOC4lAor4Lih4Li44Lir4LiZ4LmI4Liy4LiiCivguKHguLjguKvguLjguJUKK+C4oeC4uOC4ruC4seC4oeC4oeC4seC4lAor4Lih4Li54LiBCivguKHguLnguIHguKHguLHguJkKK+C4oeC4ueC4geC5gOC4peC4t+C4reC4lAor4Lih4Li54LiB4Lir4Lil4Lin4LiHCivguKHguLnguIQtCivguKHguLnguYDguIvguK0KK+C4oeC4ueC4leC4owor4Lih4Li54LmI4LiX4Li54LmICivguKHguLnguJkKK+C4oeC4ueC4meC4oeC4reC4hwor4Lih4Li54Lih4Lih4Liy4LihCivguKHguLnguKPguJTguLUKK+C4oeC4ueC4o+C4leC4tAor4Lih4Li54Lij4LiYLQor4Lih4Li54Lij4LiY4LiyCivguKHguLnguKPguJjguLLguKDguLTguYDguKnguIEKK+C4oeC4ueC4pQor4Lih4Li54LilLQor4Lih4Li54Lil4LiE4LmI4LiyCivguKHguLnguKXguYLguIQKK+C4oeC4ueC4peC4iOC4tOC4lQor4Lih4Li54Lil4LiQ4Liy4LiZCivguKHguLnguKXguYTguJYKK+C4oeC4ueC4peC4meC4geC4geC4suC4o+C5gOC4p+C4gQor4Lih4Li54Lil4LiZ4Liy4LiiCivguKHguLnguKXguJnguLTguJjguLQKK+C4oeC4ueC4peC4neC4reC4ogor4Lih4Li54Lil4Lig4Lix4LiT4LiR4LmM4LiB4Lix4LiZ4LiK4LiZCivguKHguLnguKXguLAKK+C4oeC4ueC4peC4sgor4Lih4Li54Lil4Li04LiB4Liy4LiB4LijCivguKHguLnguYjguKXguLXguYgKK+C4oeC4ueC5iOC5gOC4peC5iAor4Lih4Li54Liq4Lix4LiHCivguKHguLnguKrguLTguIEKK+C4oeC4ueC4quC4tOC4gS0KK+C4oeC4ueC4quC4tOC4geC4l+C4seC4meC4leC5jAor4Lih4Li54Lis4LirLQor4LmA4LihCivguYDguKHguYfguIEKK+C5gOC4oeC4geC4sOC5gOC4ruC4tOC4o+C4leC4i+C5jAor4LmA4Lih4LiC4Lil4LiyCivguYDguKHguIYKK+C5gOC4oeC4huC4hOC4peC4uOC5ieC4oQor4LmA4Lih4LiG4LiJ4Liy4LiiCivguYDguKHguIbguJ7guLHguJQKK+C5gOC4oeC4huC4oeC4suC4gQor4LmA4Lih4LiG4LiyCivguYDguKHguIbguLTguJnguJfguKPguYwKK+C5gOC4oeC4huC4tQor4LmA4Lih4LmH4LiHCivguYDguKHguIfguK3guLDguJvguLIKK+C5gOC4oeC5h+C4lAor4LmA4Lih4LmH4LiU4LiU4Li1CivguYDguKHguYfguJTguJ7guKPguLDguKjguIEKK+C5gOC4oeC5h+C4lOC4nuC4o+C4suC4ogor4LmA4Lih4LmH4LiU4Lih4Liw4Lii4LihCivguYDguKHguYfguJTguKXguLDguKHguLjguJQKK+C5gOC4oeC5h+C4lOC5gOC4peC4t+C4reC4lAor4LmA4Lih4LmH4LiU4LmC4Lil4Lir4Li04LiVCivguYDguKHguJXguJXguLIKK+C5gOC4oeC4leC5hOC4leC4o+C4ogor4LmA4Lih4LiV4LijCivguYDguKHguJXguKPguLTguIEKK+C5gOC4oeC4leC4o+C4tOC4geC4leC4seC4mQor4LmA4Lih4LiW4Li44LiZCivguYDguKHguJcKK+C5gOC4oeC4l+C4meC4tQor4LmA4Lih4LiX4LiZ4Li14LiU4LilCivguYDguKHguJfguLTguJnguLUKK+C5gOC4oeC4l+C4tOC4peC5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmA4Lih4LmC4LiXCivguYDguKHguJgKK+C5gOC4oeC4mOC4sgor4LmA4Lih4LiY4Liy4Lin4Li1CivguYDguKHguJjguLUKK+C5gOC4oeC4mQor4LmA4Lih4LmI4LiZCivguYDguKHguYnguJkKK+C5gOC4oeC4meC5gOC4lOC4peC4teC5gOC4p+C4teC4ouC4oQor4LmA4Lih4LiZ4LiX4Lit4LilCivguYDguKHguYjguJnguJfguLDguYDguKUKK+C5gOC4oeC5ieC4oQor4LmA4Lih4LmJ4Lih4Lib4Liy4LiBCivguYDguKHguKPguKItCivguYDguKHguKPguLHguKIKK+C5gOC4oeC4o+C4uAor4LmA4Lih4Lij4Li4LQor4LmA4Lih4Lij4Li44Lih4Liy4LioCivguYDguKHguKPguLjguKPguLLguIoKK+C5gOC4oeC4peC5jAor4LmA4Lih4Lil4LiBCivguYDguKHguKXguYfguJQKK+C5gOC4oeC4peC4t+C4reC4hwor4LmA4Lih4Lil4Li34LmI4Lit4LiiCivguYDguKHguKXguLfguYnguK3guKIKK+C5gOC4oeC4peC4t+C5iOC4reC4ouC4oeC4peC5ieC4sgor4LmA4Lih4LipCivguYDguKHguKnguLLguKLguJkKK+C5gOC4oeC4qwor4LmA4Lih4Lir4LmMCivguYDguKHguKvguJkKK+C5gOC4oeC4sAor4LmA4Lih4LiyCivguYDguKHguYjguLIKK+C5gOC4oeC5ieC4sgor4LmA4Lih4LmJ4Liy4LmA4LiE4LmJ4LiyCivguYDguKHguLLguJTguLTguJoKK+C5gOC4oeC4suC4oeC4seC4mQor4LmA4Lih4Liy4Lih4Lix4LinCivguYDguKHguLLguKHguLLguKIKK+C5gOC4oeC4suC4ouC4qAor4LmA4Lih4Liy4Lij4Li1CivguYDguKHguLLguKXguLUKK+C5gOC4oeC4suC4q+C5jAor4LmA4Lih4Liy4Lit4Liz4LiZ4Liy4LiICivguYDguKHguLLguLAKK+C5gOC4oeC4suC4sOC4leC4suC5guC4ouC4geC4seC4gQor4LmA4Lih4Liy4Liw4Lin4LmI4LiyCivguYDguKHguLTguIcKK+C5gOC4oeC4tOC4mQor4LmA4Lih4Li04LilCivguYDguKHguLXguKIKK+C5gOC4oeC4teC4ouC4hwor4LmA4Lih4Li14LmI4Lii4LiHCivguYDguKHguLXguKLguIfguKHguYjguLLguKIKK+C5gOC4oeC4teC5ieC4ouC4mQor4LmA4Lih4Li14Lii4LiZ4LmJ4Lit4LiiCivguYDguKHguLXguKLguKvguKXguKfguIcKK+C5gOC4oeC4t+C4rQor4LmA4Lih4Li34LmI4LitCivguYDguKHguLfguYnguK0KK+C5gOC4oeC4t+C4reC4gQor4LmA4Lih4Li34LmI4Lit4LiB4Li14LmJCivguYDguKHguLfguK3guIcKK+C5gOC4oeC4t+C4reC4h+C4guC4tuC5ieC4mQor4LmA4Lih4Li34Lit4LiH4LiX4LmI4LiyCivguYDguKHguLfguK3guIfguJfguYjguLLguJvguKXguK3guJTguKDguLLguKnguLUKK+C5gOC4oeC4t+C4reC4h+C4meC4reC4gQor4LmA4Lih4Li34Lit4LiH4Lir4Lil4Lin4LiHCivguYDguKHguLfguK3guIfguK3guK3guIEKK+C5gOC4oeC4t+C5iOC4reC4leC4sOC4geC4teC5iQor4LmA4Lih4Li34LmI4Lit4LiZ4Lix4LmJ4LiZCivguYDguKHguLfguK3guJoKK+C5gOC4oeC4t+C5iOC4reC4nuC4teC5gOC4meC4t+C5ieC4reC4q+C4reC4oSDguYDguKHguLfguYjguK3guJzguK3guKHguYDguJnguLfguYnguK3guYDguKvguKHguYfguJkKK+C5gOC4oeC4t+C5iOC4reC4ogor4LmA4Lih4Li34LmI4Lit4Lii4Lib4Liy4LiBCivguYDguKHguLfguYjguK3guYDguK3guKLguIHguYfguYDguKHguLfguYjguK3guJnguLHguYnguJkKK+C5gOC4oeC4t+C5iOC4reC5gOC4reC4ouC5gOC4oeC4t+C5iOC4reC4meC4seC5ieC4mQor4LmB4Lih4LmICivguYHguKHguYkKK+C5geC4oeC4gQor4LmB4Lih4LiB4LiZ4Li14LmA4LiL4Li14Lii4LihCivguYHguKHguYjguIHguKPguLDguIrguLHguIfguKvguJnguYnguLLguYPguKvguI3guYgKK+C5geC4oeC5iOC4geC4o+C4sOC5geC4iuC4hwor4LmB4Lih4LmI4LiB4Lit4LiHCivguYHguKHguYjguIHguLjguI3guYHguIgKK+C5geC4oeC5iOC4hOC4uOC4kwor4LmB4Lih4LmI4LiE4Li54LmICivguYHguKHguIcKK+C5geC4oeC4h+C4geC4p+C4suC4hwor4LmB4Lih4LiH4LiB4Liw4Lie4Lij4Li44LiZCivguYHguKHguIfguIHguLLguJnguLTguJkKK+C5geC4oeC4h+C4geC4suC4meC4teC4qgor4LmB4Lih4LiH4LiE4Liy4LmA4Lij4Li34Lit4LiHCivguYHguKHguIfguIrguYnguLLguIcKK+C5geC4oeC4h+C4lOC4sgor4LmB4Lih4LiH4LiU4Liy4LiX4Liw4LmA4LilCivguYHguKHguIfguJvguLLguIHguIjguK3guJoKK+C5geC4oeC4h+C5hOC4n+C5gOC4lOC4t+C4reC4meC4q+C5ieC4sgor4LmB4Lih4LmI4LiH4Lih4LmJ4Liy4LiHCivguYHguKHguIfguKHguLjguKEKK+C5geC4oeC4h+C4peC4seC4gQor4LmB4Lih4LmI4LiH4Liy4LiZCivguYHguKHguYjguYDguIjguYnguLIKK+C5geC4oeC5iOC5gOC4iOC5ieC4suC5guC4p+C5ieC4ogor4LmB4Lih4LmI4LiL4Li34LmJ4LitCivguYHguKHguYjguJXguLDguIfguLLguKcKK+C5geC4oeC5iOC4leC4suC4ogor4LmB4Lih4LmI4LmA4LiV4Liy4LmE4LifCivguYHguKHguYnguYHguJXguYgKK+C5geC4oeC5iOC4l+C4seC4ngor4LmB4Lih4LmI4LiX4LmI4LiyCivguYHguKHguJkKK+C5geC4oeC5iOC4mQor4LmB4Lih4LmJ4LiZCivguYHguKHguYnguJnguYDguILguLXguKLguJkKK+C5geC4oeC5iOC4meC4oQor4LmB4Lih4LmI4LiZ4Lii4LizCivguYHguKHguYjguJnguYnguLMKK+C5geC4oeC5iOC4muC4lwor4LmB4Lih4LmI4Lia4LmJ4Liy4LiZCivguYHguKHguYjguYDguJrguLXguYnguKIKK+C5geC4oeC5iOC4m+C4sAor4LmB4Lih4LmI4LmB4Lib4Lij4LiBCivguYHguKHguYjguJ7guLTguKHguJ7guYwKK+C5geC4oeC5iOC4oeC4lAor4LmB4Lih4LmI4Lih4LmI4Liy4LiiCivguYHguKHguYjguKHguYjguLLguKLguJfguKPguIfguYDguITguKPguLfguYjguK3guIcKK+C5geC4oeC5iOC4oeC5iOC4suC4ouC4peC4reC4h+C5hOC4mQor4LmB4Lih4LmI4Lii4Lix4LmI4Lin4LmA4Lih4Li34Lit4LiHCivguYHguKHguYjguKLguYjguLLguJnguLLguIcKK+C5geC4oeC5iOC4ouC4suC4ogor4LmB4Lih4LmI4Lii4LmJ4Liy4LinCivguYHguKHguKMKK+C5geC4oeC5iOC4o+C5ieC4sgor4LmB4Lih4LmI4Lij4LmJ4Liy4LiHCivguYHguKHguYjguKPguLXguYHguKHguYjguYHguKPguJQKK+C5geC4oeC5iOC5gOC4o+C4t+C4reC4mQor4LmB4Lih4LmI4LmB4Lij4LiHCivguYHguKHguKXguIcKK+C5geC4oeC4peC4h+C4iuC5ieC4suC4hwor4LmB4Lih4Lil4LiH4LiU4LiyCivguYHguKHguKXguIfguJTguLMKK+C5geC4oeC4peC4h+C4lOC4s+C4q+C4meC4suC4oQor4LmB4Lih4Lil4LiH4LiX4Lix4Lia4LmA4Lil4LmH4LiBCivguYHguKHguKXguIfguJvguK0KK+C5geC4oeC4peC4h+C4oOC4ueC5iAor4LmB4Lih4Lil4LiH4Lin4Lix4LiZCivguYHguKHguKXguIfguKfguLHguJnguJfguK3guIcKK+C5geC4oeC4peC4h+C4p+C4seC4meC4quC5gOC4m+C4mQor4LmB4Lih4Lil4LiH4Lin4Lix4LiZ4Lir4Lix4Lin4LmA4LiC4Li14Lii4LinCivguYHguKHguKXguJoKK+C5geC4oeC5iOC4peC4suC4ogor4LmB4Lih4LmI4LmA4Lil4LmJ4LiyCivguYHguKHguYjguYDguKXguLXguYnguKLguIcKK+C5geC4oeC4pwor4LmB4Lih4LmJ4LinCivguYHguKHguKfguYDguIvguLIKK+C5geC4oeC4p+C4lOC4suC4pwor4LmB4Lih4Lin4LiZ4LmJ4LizCivguYHguKHguKfguJvguYjguLIKK+C5geC4oeC4p+C4oeC4reC4hwor4LmB4Lih4LmI4Lin4Li1CivguYHguKHguYjguKrguLLguKLguJrguLHguKfguYHguJXguYjguIfguJXguLHguKfguITguYnguLLguIcKK+C5geC4oeC5iOC4quC4tQor4LmB4Lih4LmI4Liq4Li34LmI4LitCivguYHguKHguYjguKvguJnguLHguIEKK+C5geC4oeC5iOC4q+C4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4LmB4Lih4LmI4LmA4Lir4Lii4LmJ4Liy4LmB4Lih4LmI4LmA4Lij4Li34Lit4LiZCivguYHguKHguYjguYDguKvguKXguYfguIEKK+C5geC4oeC5iOC4reC4ouC4ueC5iOC4q+C4seC4pwor4LmB4Lih4LiwCivguYLguKEKK+C5guC4oeC5iAor4LmC4Lih4LmJCivguYLguKHguIEKK+C5guC4oeC4geC4gi0KK+C5guC4oeC4geC4guC5jAor4LmC4Lih4LiB4LiC4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguYLguKHguIHguYLguITguIEKK+C5guC4oeC4geC4oeC4seC4mQor4LmC4Lih4LiB4LipLQor4LmC4Lih4LiB4Lip4LiwCivguYLguKHguIHguKnguLDguJ7guKLguLLguJkKK+C5guC4oeC4geC5g+C4q+C4jeC5iAor4LmC4Lih4LiGLQor4LmC4Lih4LiG4LiB4Lij4Lij4LihCivguYLguKHguIbguLAKK+C5guC4oeC4huC4teC4oi0KK+C5guC4oeC4huC4teC4ouC4geC4o+C4o+C4oQor4LmC4Lih4LiG4Li14Lii4LiwCivguYLguKHguIcKK+C5guC4oeC5iOC4hwor4LmC4Lih4LiH4LiE4Lij4Li44LmI4LihCivguYLguKHguYjguIfguYLguITguYjguIcKK+C5guC4oeC4iOC4mS0KK+C5guC4oeC4l+C4meC4sgor4LmC4Lih4LiZCivguYLguKHguYLguJnguYHguIvguYfguIHguITguLLguYTguKPguJTguYwKK+C5guC4oeC5hOC4meC4ogor4LmC4Lih4Lih4Li54Lir4LmMCivguYLguKHguKHguLnguKvguLAKK+C5guC4oeC5gOC4oQor4LmC4Lih4LmA4Lih4LiZ4LiV4LmMCivguYLguKHguKMtCivguYLguKHguKPguIHguKXguLLguJsKK+C5guC4oeC4o+C4sgor4LmC4Lih4Lij4Li1CivguYLguKHguYDguKPguKoKK+C5guC4oeC4peC4tOC4muC4lOC4teC4meC4seC4oQor4LmC4Lih4Lil4Li1CivguYLguKHguYDguKXguIHguLjguKUKK+C5guC4oeC4qQor4LmC4Lih4Lip4LiBCivguYLguKHguKnguJMKK+C5guC4oeC5gOC4quC4gQor4LmC4Lih4LmA4Liq4LiqCivguYLguKHguKstCivguYLguKHguYjguKvguYwKK+C5guC4oeC4q+C4sAor4LmC4Lih4Lir4Lix4LiZ4LiY4LmMCivguYLguKHguKvguLLguITguJXguLQKK+C5guC4oeC5guC4qwor4LmE4Lih4LmICivguYTguKHguYkKK+C5hOC4oeC5ieC4geC4hwor4LmE4Lih4LiB4LiyCivguYTguKHguYnguIHguLLguIHguJrguLLguJcKK+C5hOC4oeC5ieC4geC4suC4h+C5gOC4guC4mQor4LmE4Lih4LmI4LiB4Li14LmI4LiZ4LmJ4LizCivguYTguKHguYjguIHguLXguYjguK3guLHguJAKK+C5hOC4oeC5iOC4geC4teC5iOC4reC4seC4kOC4rOC4qgor4LmE4Lih4LmJ4LmD4LiB4Lil4LmJ4Lid4Lix4LmI4LiHCivguYTguKHguYnguILguLXguYnguInguYnguK0KK+C5hOC4oeC5ieC4guC4teC4lOC5hOC4nwor4LmE4Lih4LmI4LmA4LiC4LmJ4Liy4LmD4LiE4Lij4Lit4Lit4LiB4LmD4LiE4LijCivguYTguKHguYjguYDguILguYnguLLguKLguLIKK+C5hOC4oeC5ieC5geC4guC5h+C4hwor4LmE4Lih4LmJ4LiE4Lih4LmB4Lid4LiBCivguYTguKHguITguKPguK3guJkKK+C5hOC4oeC5iOC4hOC5iOC4reC4ogor4LmE4Lih4LmC4LiE4Lij4LiB4Lij4Lix4LihCivguYTguKHguYLguITguKPguJ/guLTguKXguYzguKEKK+C5hOC4oeC5guC4hOC4o+C5guC4n+C4mQor4LmE4Lih4LmC4LiE4Lij4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYTguKHguYLguITguKPguYDguKHguJXguKMKK+C5hOC4oeC5guC4hOC4o+C4peC4tOC4leC4owor4LmE4Lih4LmC4LiE4Lij4LmA4Lin4LifCivguYTguKHguYjguYPguITguKPguYgKK+C5hOC4oeC5ieC4h+C4suC4oeC4geC4o+C4sOC4o+C4reC4geC5gOC4iOC4suC4sAor4LmE4Lih4LmJ4LiI4Lij4Li04LiHCivguYTguKHguYnguIjguLHguJXguKfguLIKK+C5hOC4oeC5ieC4iOC4s+C4m+C4sgor4LmE4Lih4LmI4LiK4Lit4Lia4Lih4Liy4Lie4Liy4LiB4LilCivguYTguKHguYjguYDguIrguLTguIcKK+C5hOC4oeC5iOC5g+C4iuC5iOC4guC4teC5ieC5hOC4geC5iAor4LmE4Lih4LmJ4LiU4Lix4LiUCivguYTguKHguYnguJTguLMKK+C5hOC4oeC5iOC4lOC4ueC4lOC4s+C4lOC4ueC4lOC4tQor4LmE4Lih4LmI4LiU4Li54LiU4Liz4LiU4Li54LmB4LiU4LiHCivguYTguKHguYjguJTguLnguJXguLLguKHguYnguLLguJXguLLguYDguKPguLfguK0KK+C5hOC4oeC5ieC5gOC4lOC5h+C4lAor4LmE4Lih4LmJ4LmB4LiU4LiHCivguYTguKHguYjguYTguJTguYnguYDguJrguLXguYnguKLguK3guK3guIHguILguYnguLLguKcKK+C5hOC4oeC5iOC5hOC4lOC5ieC5gOC4muC4teC5ieC4ouC5gOC4reC4suC4guC5ieC4suC4pwor4LmE4Lih4LmI4LmE4LiU4LmJ4Lio4Lix4Lie4LiX4LmMCivguYTguKHguYjguYTguJTguYnguKrguLTguJoKK+C5hOC4oeC4leC4o+C4tQor4LmE4Lih4LmJ4LiV4Lij4Li1CivguYTguKHguYnguJXguLLguKIKK+C5hOC4oeC5ieC4leC4suC4ouC4guC4suC4mQor4LmE4Lih4LmJ4LiV4Li14Lie4Lij4Li04LiBCivguYTguKHguYjguYDguJXguYfguKHguYDguJXguYfguIcKK+C5hOC4oeC5iOC5gOC4leC5h+C4oeC4muC4suC4lwor4LmE4Lih4LmI4LmA4LiV4LmH4Lih4Lir4Li44LiZCivguYTguKHguYnguYTguJXguYjguITguLnguYkKK+C5hOC4oeC5iOC4luC4ueC4geC5guC4o+C4hOC4geC4seC4mQor4LmE4Lih4LmJ4LiX4Lix4LiT4LiR4LiG4Liy4LiVCivguYTguKHguYjguJfguLHguJkKK+C5hOC4oeC5ieC5gOC4l+C5ieC4sgor4LmE4Lih4LmJ4LmA4LiX4LmJ4Liy4Lii4Liy4Lii4Lih4LmI4Lit4LihCivguYTguKHguYnguYLguJcKK+C5hOC4oeC5ieC4meC4p+C4oQor4LmE4Lih4LmJ4LiZ4Lit4LiB4LiB4LitCivguYTguKHguYnguJnguLTguYnguKcKK+C5hOC4oeC5ieC4muC4o+C4o+C4l+C4seC4lAor4LmE4Lih4LmJ4LmA4Lia4Li34LmI4Lit4LmE4Lih4LmJ4LmA4Lih4LiyCivguYTguKHguYnguJvguYjguLLguYDguJTguLXguKLguKfguIHguLHguJkKK+C5hOC4oeC5ieC5gOC4m+C5h+C4mQor4LmE4Lih4LmJ4Lic4Lix4LiUCivguYTguKHguYjguJ7guLnguJTguJ7guKPguYjguLPguJfguLPguYDguJ7guKXguIcKK+C5hOC4oeC5ieC5guC4ngor4LmE4Lih4LmI4Lif4Lix4LiH4LmA4Liq4Li14Lii4LiHCivguYTguKHguYnguKHguKXguLLguKIKK+C5hOC4oeC5ieC4oeC5ieC4p+C4mQor4LmE4Lih4LmI4Lih4Li14Lib4Li14LmI4Lih4Li14LiB4Lil4Lit4LiHCivguYTguKHguYjguKHguLXguKHguLnguKXguJ3guK3guKLguKvguKHguLLguYTguKHguYjguILguLXguYkKK+C5hOC4oeC5iOC4oeC4teC4p+C4seC4meC5gOC4quC4teC4ouC4peC4sAor4LmE4Lih4LmJ4Lih4Li34LiUCivguYTguKHguYnguKHguLfguK0KK+C5hOC4oeC5ieC5gOC4oeC4leC4owor4LmE4Lih4LmJ4Lii4Lih4LiBCivguYTguKHguKLguKPguLLguJoKK+C5hOC4oeC5ieC4ouC4suC4oeC4seC4geC4geC4suC4owor4LmE4Lih4LmJ4Lii4Liy4LinCivguYTguKHguYnguKPguYjguKHguJnguIHguIjguLHguJoKK+C5hOC4oeC5iOC4o+C4ueC5ieC4iOC4seC4geC5gOC4quC4t+C4reC5gOC4reC4suC5gOC4o+C4t+C4reC5gOC4guC5ieC4suC4oeC4suC4iOC4reC4lCDguYTguKHguYjguKPguLnguYnguIjguLHguIHguKHguK3guJTguYDguK3guLLguYTguKHguYnguYDguILguYnguLLguKHguLLguKfguLLguIcKK+C5hOC4oeC5iOC4o+C4ueC5ieC4iOC4seC4geC4q+C4seC4p+C4meC4reC4meC4m+C4peC4suC4ouC4leC4teC4mQor4LmE4Lih4LmI4Lij4Li54LmJ4Lit4Li14LmC4Lir4LiZ4LmI4Lit4Li14LmA4Lir4LiZ4LmICivguYTguKHguYnguYDguKPguLXguKLguKcKK+C5hOC4oeC4peC5jAor4LmE4Lih4LmI4Lil4LiH4LmC4Lia4Liq4LiW4LmM4LiB4Lix4LiZCivguYTguKHguYnguKXguYnguKHguYDguIfguLLguKvguLLguKIKK+C5hOC4oeC5ieC4peC5ieC4oeC4peC4uOC4gQor4LmE4Lih4LmJ4Lil4Lit4LiiCivguYTguKHguYnguYDguKXguLXguYnguKLguIcKK+C5hOC4oeC5ieC5hOC4peC5iAor4LmE4Lih4LmJ4Lin4LiyCivguYTguKHguYnguKrguK3guKIKK+C5hOC4oeC5ieC4quC4seC5ieC4mQor4LmE4Lih4LmJ4Liq4Lix4LmJ4LiZ4LmE4Lih4LmJ4Lii4Liy4LinCivguYTguKHguYnguKrguLLguKHguK3guLHguJkKK+C5hOC4oeC5iOC4quC4ueC5iQor4LmE4Lih4LmJ4Liq4Li54LiHCivguYTguKHguYnguKvguJnguYnguLIKK+C5hOC4oeC5ieC4q+C4oeC4reC4mQor4LmE4Lih4LmJ4Lir4Lih4Li44LiZCivguYTguKHguYnguKvguKXguLHguIHguJvguLHguIHguYDguKXguJkKK+C5hOC4oeC5ieC4q+C4seC4meC4reC4suC4geC4suC4qAor4LmE4Lih4LmJ4Lir4Li24LmI4LiHCivguYTguKHguYjguYDguKvguYfguJnguJnguYnguLPguJXguLHguJTguIHguKPguLDguJrguK3guIEg4LmE4Lih4LmI4LmA4Lir4LmH4LiZ4LiB4Lij4Liw4Lij4Lit4LiB4LiB4LmI4LiH4Lir4LiZ4LmJ4Liy4LmE4Lih4LmJCivguYTguKHguYjguYDguKvguKXguLfguK3guJrguYjguLLguIHguKfguYjguLLguYHguKPguIcKK+C5hOC4oeC5ieC4reC5iOC4reC4meC4lOC4seC4lOC4h+C5iOC4suC4oiDguYTguKHguYnguYHguIHguYjguJTguLHguJTguKLguLLguIEKK+C5hOC4oeC5ieC4reC4seC4lAor4LmE4Lih4LmJ4LmA4Lit4LiBCivguYTguKHguYjguYDguK3guK3guK3guK3guKvguYjguK3guKvguKHguIEKK+C5hOC4oeC5ieC5guC4rQor4LiiCivguKLguIEKK+C4ouC4geC4geC4o+C4sOC4muC4seC4leC4owor4Lii4LiB4LiE4Lij4Li5CivguKLguIHguYDguITguKPguLfguYjguK3guIcKK+C4ouC4geC5gOC4hOC5ieC4sgor4Lii4LiB4LiV4LiZ4LiC4LmI4Lih4LiX4LmI4Liy4LiZCivguKLguIHguJXguLHguKfguILguLbguYnguJnguYDguKvguJnguLfguK3guKXguKEKK+C4ouC4geC4l+C4o+C4hwor4Lii4LiB4LiY4LiH4LiC4Liy4LinCivguKLguIHguJkKK+C4ouC4geC4meC4tOC5ieC4pwor4Lii4LiB4Lie4Li34LmJ4LiZCivguKLguIHguJ/guYnguK3guIcKK+C4ouC4geC4oOC4ueC5gOC4guC4suC4reC4reC4geC4iOC4suC4geC4reC4gQor4Lii4LiB4Lih4Li34LitCivguKLguIHguYDguKHguIYKK+C4ouC4geC4ouC4rQor4Lii4LiB4Lii4LmI4Lit4LiHCivguKLguIHguKLguK3guJQKK+C4ouC4geC4ouC4reC4m+C4reC4m+C4seC5ieC4mQor4Lii4LiB4LmA4Lil4Li04LiBCivguKLguIHguYDguKfguYnguJkKK+C4ouC4geC5hOC4p+C5iQor4Lii4LiB4Lir4Liy4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguKLguIHguYPguKvguI3guYgKK+C4ouC4hwor4Lii4LiH4LmC4Lii4LmICivguKLguIrguLjguKPguYDguKfguJcKK+C4ouC4leC4tAor4Lii4LiV4Li04Lig4Lix4LiH4LiE4LmMCivguKLguJbguLLguIHguKPguKPguKEKK+C4ouC4luC4suC4oOC4ueC4leC4jeC4suC4kwor4Lii4LmI4LiZCivguKLguJnguJXguYwKK+C4ouC4meC4leC4o+C5jAor4Lii4LmI4LiZ4Lii4LmI4LitCivguKLguKEKK+C4ouC4oS0KK+C4ouC4oeC4gQor4Lii4Lih4LiB4Lib4Liy4LiP4Li04Lir4Liy4Lij4Li04Lii4LmMCivguKLguKHguILguLHguJnguJjguYwKK+C4ouC4oeC5guC4lOC4ogor4Lii4Lih4LiX4Lix4LiT4LiR4LmMCivguKLguKHguJfguLnguJUKK+C4ouC4oeC4meC4sgor4Lii4Lih4Lia4Liy4LilCivguKLguKHguKPguLLguIoKK+C4ouC4oeC4pQor4Lii4Lih4LmC4Lil4LiBCivguKLguKPguKPguKLguIcKK+C4ouC4pQor4Lii4LinCivguKLguKfguIHguKrguLIKK+C4ouC4p+C4hwor4Lii4Lin4LiUCivguKLguKfguJTguKLguIcKK+C4ouC4p+C4lOC4ouC4suC4mQor4Lii4Lin4LiU4Lii4Li04LmI4LiHCivguKLguKfguJkKK+C4ouC4p+C4meC4ouC4tQor4Lii4Lin4LiaCivguKLguKfguJrguYYKK+C4ouC4p+C4muC4ouC4suC4mgor4Lii4LmJ4Lin4LiiCivguKLguKfguKPguKLguLLguJXguKMKK+C4ouC4p+C4sgor4Lii4Lin4Liy4LiE4Li4CivguKLguKgKK+C4ouC4qOC4reC4ouC5iOC4suC4hwor4Lii4LmC4LiqCivguKLguK0KK+C4ouC5iOC4rQor4Lii4Lit4LiBCivguKLguK3guIHguKLguYnguK3guJkKK+C4ouC5h+C4reC4geC5geC4ouC5h+C4gQor4Lii4LmH4Lit4LiB4LmB4Lii4LmH4LiB4LmGCivguKLguK3guIcKK+C4ouC4reC4h+C5hgor4Lii4LmI4Lit4LiHCivguKLguYnguK3guIcKK+C4ouC5iOC4reC4h+C4geC4o+C4tOC4mgor4Lii4LmI4Lit4LiH4LmA4Lia4LiyCivguKLguYjguK3guIfguYHguKLguYjguIcKK+C4ouC4reC4h+C5g+C4ogor4Lii4Lit4LiH4LmE4Lii4LmICivguKLguYjguK3guIfguYDguKvguIfguYfguJQKK+C4ouC4reC4lAor4Lii4Lit4LiU4LiI4Liy4LiBCivguKLguK3guJTguJTguYnguKfguJkKK+C4ouC4reC4lOC4lOC4tQor4Lii4Lit4LiU4LiZ4LmJ4LizCivguKLguK3guJTguKrguKPguYnguK3guKIKK+C4ouC5iOC4reC4l+C5ieC4rQor4Lii4Lit4LiZCivguKLguYnguK3guJkKK+C4ouC5ieC4reC4meC5gOC4meC4t+C5ieC4rQor4Lii4LmJ4Lit4LiZ4Lii4Lit4LiBCivguKLguK3guJoKK+C4ouC4reC4muC5geC4ouC4mgor4Lii4LmI4Lit4Lie4LilCivguKLguK3guKEKK+C4ouC5iOC4reC4oQor4Lii4LmJ4Lit4LihCivguKLguK3guKHguITguKfguLLguKEKK+C4ouC5ieC4reC4oeC5g+C4iAor4Lii4LmJ4Lit4Lih4LmB4Lih4Lin4LiC4Liy4LiiCivguKLguYjguK3guKHguYDguKLguLIKK+C4ouC5iOC4reC4oeC4uOC4oQor4Lii4LmI4Lit4LiiCivguKLguYnguK3guKIKK+C4ouC5iOC4reC4ouC5iOC4mQor4Lii4LmI4Lit4Lii4Lii4Lix4LiaCivguKLguYjguK3guYHguKLguYgKK+C4ouC5ieC4reC5geC4ouC5iQor4Lii4Lit4LmB4Liq4LiHCivguKLguYjguK3guKvguJnguYnguLIKK+C4ouC5iOC4reC4q+C4ouC5iOC4reC4mQor4Lii4LmI4Lit4LmB4Lir4Lii4LiHCivguKLguLAKK+C4ouC5iOC4sAor4Lii4Liw4LiH4Lix4LiZ4LiI4Liw4LiE4Lix4LiaCivguKLguLDguKLguK3guJoKK+C4ouC4sOC4ouC4seC4mQor4Lii4Liw4Lii4Lix4LiaCivguKLguLDguKLguLLguJkKK+C4ouC4sOC4ouC5ieC4suC4ogor4Lii4Liw4Lii4LmJ4Liy4LinCivguKLguLDguYHguKLguYnguIcKK+C4ouC4sOC4q+C4tOC4l+C4sgor4Lii4Lix4LiBCivguKLguLHguIHguIHguKPguLDguKrguLLguKIKK+C4ouC4seC4geC4guC5jAor4Lii4Lix4LiB4LiC4Li04LiZ4Li1CivguKLguLHguIHguJfguYjguLIKK+C4ouC4seC4geC5gOC4nuC4o+C4teC4ogor4Lii4Lix4LiB4Lii4Lit4LiBCivguKLguLHguIHguKLguYnguLLguKIKK+C4ouC4seC4geC4ouC4tOC5ieC4oQor4Lii4Lix4LiB4Lii4Li14LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKLguLXguYjguKLguLHguIHguYDguKvguKLguLIKK+C4ouC4seC4geC5gOC4ouC4t+C5ieC4reC4hwor4Lii4Lix4LiB4LmB4Lii4LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKnguYwKK+C4ouC4seC4geC4qeC5jOC4m+C4seC4geC4q+C4peC4seC5iOC4mQor4Lii4Lix4LiB4Lip4LmM4Lih4Lix4LiB4LiB4Liw4Liq4Lix4LiZCivguKLguLHguIHguKnguLTguJPguLUKK+C4ouC4seC4geC4qeC4tQor4Lii4Lix4LiB4Lir4Lii4Liy4LinCivguKLguLHguIHguKvguKXguYjguKEKK+C4ouC4seC4hwor4Lii4Lix4LmJ4LiHCivguKLguLHguIfguIHguLLguKvguKXguLIKK+C4ouC4seC4h+C4iuC4seC5iOC4pwor4Lii4Lix4LmI4LiH4Lii4Li34LiZCivguKLguLHguIfguYHguKXguYnguKcKK+C4ouC4seC4h+C4q+C4ouC4seC4hwor4Lii4Lix4LiK4LmC4LiN4Lib4Lin4Li14LiVCivguKLguLHguIrguJkKK+C4ouC4seC4iuC4oeC4suC4mQor4Lii4Lix4LiNCivguKLguLHguI0tCivguKLguLHguI3guIHguKPguKPguKEKK+C4ouC4seC4jeC4jeC4sAor4Lii4Lix4LiN4LiN4Lix4LiH4LiE4LmMCivguKLguLHguI3guJ7guLTguJjguLUKK+C4ouC4seC4kOC4tAor4Lii4Lix4LiQ4Li04Lih4LiY4Li44LiB4LiyCivguKLguLHguJQKK+C4ouC4seC4lOC5gOC4ouC4teC4ouC4lAor4Lii4Lix4LiV4Li04Lig4Lix4LiH4LiE4LmMCivguKLguLHguJkKK+C4ouC4seC5iOC4mQor4Lii4Lix4LiZ4LiV4LmMCivguKLguLHguJnguJXguKMtCivguKLguLHguJnguJXguKPguYwKK+C4ouC4seC4meC4leC4o+C4geC4o+C4o+C4oQor4Lii4Lix4LmI4LiZ4LiV4Liw4LiZ4Li1CivguKLguLHguJnguYDguKLguYnguLIKK+C4ouC4seC4mgor4Lii4Lix4Lia4LmGCivguKLguLHguJrguKLguIcKK+C4ouC4seC4muC4ouC5iOC4reC4ogor4Lii4Lix4Lia4Lii4Lix4LmJ4LiHCivguKLguLHguJrguKLguLHguYnguIfguIrguLHguYjguIfguYPguIgKK+C4ouC4seC4muC4ouC4suC4mQor4Lii4Lix4Lia4Lii4Liy4LiaCivguKLguLHguJrguYDguKLguLTguJkKK+C4ouC4seC5iOC4pwor4Lii4Lix4LmJ4LinCivguKLguLHguYjguKfguKLguKfguJkKK+C4ouC4seC5iOC4p+C5gOC4ouC5ieC4sgor4Lii4Lix4LmJ4Lin4LmA4Lii4Li14LmJ4LiiCivguKLguLHguKfguKPguKLguLLguJXguKMKK+C4ouC4seC4qeC4j+C4tAor4Lii4LiyCivguKLguYjguLIKK+C4ouC4suC4gQor4Lii4Liy4LiB4LmB4LiE4LmJ4LiZCivguKLguLLguIHguIjguJkKK+C4ouC4suC4geC4meC4suC4mQor4Lii4Liy4LiB4LmA4Lii4LmH4LiZCivguKLguLLguIHguYTguKPguYkKK+C4ouC4suC5gOC4guC4teC4ouC4pwor4Lii4Liy4LiECivguKLguLLguITguLgKK+C4ouC4suC4hOC4uQor4Lii4Liy4LiHCivguKLguYjguLLguIcKK+C4ouC4suC4h+C4geC4o+C4suC4lAor4Lii4LmI4Liy4LiH4LiV4Li14LiZCivguKLguYjguLLguIfguJfguKPguLLguKIKK+C4ouC5iOC4suC4h+C5gOC4l+C5ieC4sgor4Lii4Liy4LiH4LiZ4LmI4Lit4LiHCivguKLguLLguIfguJrguK3guJkKK+C4ouC4suC4h+C4nuC4suC4o+C4sgor4Lii4Liy4LiH4Lih4Liw4LiV4Lit4LiiCivguKLguYjguLLguIfguYDguKLguLfguYnguK3guIcKK+C4ouC4suC4h+C4peC4mgor4Lii4Liy4LiH4Liq4LiZCivguKLguYjguLLguIfguKrguLLguKHguILguLjguKEKK+C4ouC4suC4h+C4reC4suC4ogor4Lii4Liy4LiI4LiBCivguKLguLLguIjguJkKK+C4ouC4suC4iOC4meC4gQor4Lii4Liy4LiI4LiZ4LiyCivguKLguLLguIjguLfguJQKK+C4ouC4suC5g+C4iAor4Lii4Liy4LiJ4Li44LiZCivguKLguLLguYTguInguJkKK+C4ouC4suC4iuC4gQor4Lii4Liy4LiUCivguKLguLLguJTguLIKK+C4ouC4suC4lOC4swor4Lii4Liy4LmB4LiU4LiHCivguKLguLLguJXguJnguLIKK+C4ouC4suC4leC4owor4Lii4Liy4LiV4Lij4LiyCivguKLguLLguJXguLHguYnguIcKK+C4ouC5iOC4suC4l+C4p+C4lAor4Lii4Liy4LiY4Liy4LiV4Li4CivguKLguLLguJkKK+C4ouC5iOC4suC4mQor4Lii4Liy4LiZ4LiBCivguKLguYjguLLguJnguIHguK3guJrguJnguLLguIcKK+C4ouC4suC4meC4hOC4suC4hwor4Lii4LmI4Liy4LiZ4LiL4Li34LmI4LitCivguKLguYjguLLguJnguJfguKPguLLguKIKK+C4ouC5iOC4suC4meC4meC4oeC4hOC4p+C4suC4ogor4Lii4LmI4Liy4LiZ4Lie4Liy4LmC4Lir4LihCivguKLguLLguJnguKHguLLguKgKK+C4ouC5iOC4suC4meC4ouC4suC4pwor4Lii4LmI4Liy4LiZ4Lil4Li04LmA4Lig4LiyCivguKLguLLguJnguLHguJXguJbguLjguYwKK+C4ouC5iOC4suC4meC4suC4hwor4Lii4LmI4Liy4LiZ4Liy4LiH4LiK4LmJ4Liy4LiHCivguKLguLLguJnguLUKK+C4ouC4suC4meC4uOC4oeC4suC4qAor4Lii4Liy4LiaCivguKLguLLguJrguYYKK+C4ouC4suC4m+C4mS0KK+C4ouC4suC4m+C4meC4oeC4seC4lQor4Lii4Liy4Lid4Lit4LiiCivguKLguLLguYHguJ3guJQKK+C4ouC4suC4oQor4Lii4Liy4LihLQor4Lii4LmI4Liy4LihCivguKLguLLguKHguIHguLLguKXguLTguIEKK+C4ouC4suC4oeC5gOC4geC4sgor4Lii4Liy4Lih4LiV4Li54LiU4LiK4Liy4LiiCivguKLguLLguKHguJ7guLLguJQKK+C4ouC4suC4oeC5guC4ouC4hAor4Lii4Liy4Lih4Liq4Liy4Lih4LiV4LiyCivguKLguLLguKHguLHguIHguIHguLLguKMKK+C4ouC4suC4oeC4tOC4gQor4Lii4Liy4LiiCivguKLguYnguLLguKIKK+C4ouC4suC4ouC4l+C4p+C4lAor4Lii4Liy4Lii4Li1CivguKLguLLguYDguKLguLXguKIKK+C4ouC4suC4pwor4Lii4LmJ4Liy4LinCivguKLguLLguKfguIHguLLguKXguLTguIEKK+C4ouC4suC4p+C4iuC4teC4p+C4tOC4gQor4Lii4Liy4Lin4Lia4Lix4LmI4LiZIOC4quC4seC5ieC4meC4leC5iOC4rQor4Lii4Liy4Lin4Lij4Li1CivguKLguLLguKfguLHguKoKK+C4ouC4suC4quC4peC4mgor4Lii4Liy4Liq4Lix4LmI4LiHCivguKLguLLguKrguLnguJoKK+C4ouC4suC5gOC4quC5ieC4mQor4Lii4Liy4LmA4Liq4Lie4Lii4LmM4LiV4Li04LiUCivguKLguLLguYDguKrguJ7guKLguYzguJXguLTguJTguYPguKvguYnguYLguJfguKkKK+C4ouC4suC5hOC4quC5iQor4Lii4Liy4Lir4Lih4LmJ4Lit4LmD4Lir4LiN4LmICivguKLguLLguKvguKHguLnguYgKK+C4ouC4suC4q+C4ouC4seC4hwor4Lii4LmI4Liy4Lir4Lii4LiyCivguKLguLLguKvguKLguLUKK+C4ouC4suC4q+C4seC4lAor4Lii4Liy4Lit4Lix4LiUCivguKLguLMKK+C4ouC5iOC4swor4Lii4LmJ4LizCivguKLguLPguYDguIHguKPguIcKK+C4ouC5iOC4s+C5gOC4l+C4t+C4reC4gQor4Lii4Liz4Lii4Liy4LihCivguKLguYjguLPguKLguLUKK+C4ouC4s+C5gOC4ouC4hwor4Lii4Liz4LmA4Lii4Li14LiiCivguKLguYjguLPguYHguKLguYgKK+C4ouC5ieC4s+C5gOC4q+C4ouC4rQor4Lii4Li04LiBCivguKLguLTguIHguYYKK+C4ouC4tOC4hwor4Lii4Li04LmI4LiHCivguKLguLTguIfguJvguLfguJnguJnguLHguJTguYDguJTguLXguKLguKcg4LmE4LiU4LmJ4LiZ4LiB4Liq4Lit4LiH4LiV4Lix4LinCivguKLguLTguIfguJ/guLHguJkKK+C4ouC4tOC5iOC4h+C4ouC4p+C4lAor4Lii4Li04LiP4LiQ4LiwCivguKLguLTguJAKK+C4ouC4tOC4mQor4Lii4Li04LiZ4LmB4LiE4Lil4LiZCivguKLguLTguJnguYPguIgKK+C4ouC4tOC4meC4lOC4tQor4Lii4Li04LiZ4Lih4Lil4Liy4LiBCivguKLguLTguJnguKLguK3guKEKK+C4ouC4tOC4meC4o+C5ieC4suC4ogor4Lii4Li04LiZ4Lil4Liy4LiB4LiC4Liy4LiB4LiU4Li1CivguKLguLTguJoKK+C4ouC4tOC4muC5hgor4Lii4Li04Lib4LiL4Lix4LihCivguKLguLTguJvguIvguLUKK+C4ouC4tOC5ieC4oQor4Lii4Li04LmJ4Lih4LiB4Lij4Li04LmI4LihCivguKLguLTguYnguKHguYHguInguYjguIcKK+C4ouC4tOC5ieC4oeC4lOC5ieC4p+C4ouC4m+C4suC4gSDguJbguLLguIHguJTguYnguKfguKLguJXguLIKK+C4ouC4tOC4oeC4meC4suC4quC4leC4tOC4gQor4Lii4Li04LmJ4Lih4LmB4Lib4LmJ4LiZCivguKLguLTguYnguKHguKLguYjguK3guIcKK+C4ouC4tOC5ieC4oeC5gOC4ouC4suC4sAor4Lii4Li04LmJ4Lih4LmB4Lii4LmJ4LihCivguKLguLTguYnguKHguKXguLDguYTguKEKK+C4ouC4tOC5ieC4oeC4q+C4seC4pwor4Lii4Li04LmJ4Lih4LmA4Lir4LiiCivguKLguLTguYnguKHguYHguKvguYnguIcKK+C4ouC4tOC5ieC4oeC5geC4q+C4ogor4Lii4Li04Lir4Lin4LiyCivguKLguLUKK+C4ouC4teC5iAor4Lii4Li14LmJCivguKLguLXguYjguIHguYjguLIKK+C4ouC4teC5iOC5gOC4gQor4Lii4Li14LmI4LmA4LiC4LmI4LiHCivguKLguLXguYjguYLguJYKK+C4ouC4teC5iOC5guC4luC4neC4o+C4seC5iOC4hwor4Lii4Li14LiZCivguKLguLXguYjguYLguJvguYkKK+C4ouC4teC5iOC4oOC4ueC5iAor4Lii4Li14Lii4Lin4LiZCivguKLguLXguKPguLLguJ8KK+C4ouC4teC5iOC4quC4gQor4Lii4Li14LmI4Liq4LiHCivguKLguLXguYjguKrguJkKK+C4ouC4teC5iOC4quC4suC4mQor4Lii4Li14LmI4Liq4LmI4Liy4LiZCivguKLguLXguYjguKrguLTguJoKK+C4ouC4teC5iOC4quC4uOC5iOC4mQor4Lii4Li14LmI4Lir4Lij4LiwCivguKLguLXguYjguKvguKPguYjguLIKK+C4ouC4teC5iOC4q+C4o+C5iOC4suC4q+C4p+C4suC4mQor4Lii4Li14LmI4Lir4LmJ4LitCivguKLguLXguYjguKvguLjguJoKK+C4ouC4tuC4geC4ouC4t+C4rQor4Lii4Li24LiUCivguKLguLbguJTguITguKPguK3guIcKK+C4ouC4tuC4lOC4luC4t+C4rQor4Lii4Li24LiU4LiX4Lij4Lix4Lie4Lii4LmMCivguKLguLbguJTguYDguKvguJnguLXguYjguKLguKcKK+C4ouC4t+C4lAor4Lii4Li34LiU4Lii4Liy4LiUCivguKLguLfguJTguYDguKLguLfguYnguK0KK+C4ouC4t+C4lOC4q+C4ouC4uOC5iOC4mQor4Lii4Li34LiZCivguKLguLfguYjguJkKK+C4ouC4t+C4meC4geC4o+C4sOC4leC5iOC4suC4ouC4quC4suC4oeC4guC4sgor4Lii4Li34LiZ4LiB4Lij4Liy4LiZCivguKLguLfguYjguJnguYHguIHguYnguKfguYPguKvguYnguKfguLLguJnguKMKK+C4ouC4t+C4meC4hOC5ieC4s+C4q+C4seC4pwor4Lii4Li34LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguKLguLfguYjguJnguIjguKHguLnguIEKK+C4ouC4t+C4meC4iuC4tOC4h+C4iuC5ieC4sgor4Lii4Li34LiZ4LiV4LmJ4LiZCivguKLguLfguJnguJ7guLfguYnguJkKK+C4ouC4t+C5iOC4meC4oeC4t+C4rQor4Lii4Li34LiZ4Lii4LiHCivguKLguLfguJnguKLguLHguJkKK+C4ouC4t+C4meC4ouC4suC4oQor4Lii4Li34LiZ4LmC4Lij4LiHCivguKLguLfguYjguJnguKvguKHguLnguKLguLfguYjguJnguYHguKHguKcKK+C4ouC4t+C4meC4q+C4ouC4seC4lAor4Lii4Li34LihCivguKLguLfguKHguIjguKHguLnguIHguITguJnguK3guLfguYjguJnguKvguLLguKLguYPguIgKK+C4ouC4t+C4oeC5g+C4iuC5ieC4hOC4h+C4o+C4ueC4mwor4Lii4Li34Lih4LmD4LiK4LmJ4Liq4Li04LmJ4LiZ4LmA4Lib4Lil4Li34Lit4LiHCivguKLguLfguYnguK0KK+C4ouC4t+C5ieC4reC4ouC4uOC4lAor4Lii4Li4CivguKLguLjguIHguIHguKPguLDguJrguLHguJXguKMKK+C4ouC4uOC4geC4lOC4tAor4Lii4Li44LiB4LiV4LmMCivguKLguLjguIHguJXguLQKK+C4ouC4uOC4geC4leC4tOC4mOC4o+C4o+C4oQor4Lii4Li44LiECivguKLguLjguITguYDguILguYfguI0KK+C4ouC4uOC4hOC4meC4mOC4owor4Lii4Li44LiE4LilCivguKLguLjguITguKXguJrguLLguJcKK+C4ouC4uOC4hOC4seC4meC4lS0KK+C4ouC4uOC4hOC4seC4meC4leC5jAor4Lii4Li44LiE4Lix4LiZ4LiV4Lin4Liy4LiVCivguKLguLjguITguLHguJnguJjguKMKK+C4ouC4uOC4hOC4uOC4meC4mOC4owor4Lii4Li44LiHCivguKLguLjguYjguIcKK+C4ouC4uOC5ieC4hwor4Lii4Li44LiH4LiB4Lin4Liy4LiUCivguKLguLjguYjguIfguILguLTguIcKK+C4ouC4uOC5iOC4h+C5g+C4iAor4Lii4Li44LiH4Lib4Lix4LiUCivguKLguLjguIfguJvguLHguJTguYHguKHguYjguKHguYjguLLguKIKK+C4ouC4uOC5iOC4h+C4ouC4suC4gQor4Lii4Li44LmI4LiH4Lii4Li04LmI4LiHCivguKLguLjguYjguIfguYDguKvguKHguLfguK3guJnguKLguLjguIfguJXguLXguIHguLHguJkKK+C4ouC4uOC5iOC4h+C5gOC4q+C4ouC4tOC4hwor4Lii4Li44LiUCivguKLguLjguJUKK+C4ouC4uOC4leC4tC0KK+C4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lii4Li44LiX4LiYLQor4Lii4Li44LiX4LiY4LmMCivguKLguLjguJfguJjguIHguLLguKMKK+C4ouC4uOC4l+C4mOC4meC4sgor4Lii4Li44LiX4LiY4LiZ4Liy4LiB4Liy4LijCivguKLguLjguJfguJjguJnguLLguJjguLTguIHguLLguKMKK+C4ouC4uOC4l+C4mOC4oOC4seC4k+C4keC5jAor4Lii4Li44LiX4LiY4Lig4Li54Lih4Li0CivguKLguLjguJfguJjguYLguKLguJjguLIKK+C4ouC4uOC4l+C4mOC4p+C4tOC4mOC4tQor4Lii4Li44LiX4LiY4Lin4Li04LiZ4Lix4LiiCivguKLguLjguJfguJjguKjguLLguKrguJXguKPguYwKK+C4ouC4uOC4l+C4mOC4q+C4seC4leC4luC4tQor4Lii4Li44LiX4LmC4LiY4Lib4LiB4Lij4LiT4LmMCivguKLguLjguJoKK+C4ouC4uOC4muC4ouC4reC4mgor4Lii4Li44Lia4Lii4Lix4LiaCivguKLguLjguJrguKLguLTguJoKK+C4ouC4uOC4muC4pQor4Lii4Li44LieLQor4Lii4Li44Lie4LiU4Li1CivguKLguLjguJ7guKLguIcKK+C4ouC4uOC4nuC5gOC4ouC4suC4p+C5jAor4Lii4Li44Lie4Lij4Liy4LiKCivguKLguLjguJ7guKPguLLguIrguLIKK+C4ouC4uOC4nuC5gOC4o+C4qAor4Lii4Li44Lie4LiyCivguKLguLjguJ7guLLguJkKK+C4ouC4uOC4nuC4suC4nuC4suC4pQor4Lii4Li44Lie4Liy4Lie4Li04LiZCivguKLguLjguYjguKHguKLguYjguLLguKEKK+C4ouC4uOC5iOC4ogor4Lii4Li44LmJ4LiiCivguKLguLjguKLguIcKK+C4ouC4uOC5geC4ouC4hwor4Lii4Li44LmB4Lii4LiH4LiV4Liw4LmB4LiE4LiH4LmB4LiL4LiwCivguKLguLjguYHguKLguIfguJXguLDguYHguITguIfguKPguLHguYjguKcKK+C4ouC4uOC4o+C4muC4suC4leC4owor4Lii4Li44Lij4Lii4Liy4LiV4LijCivguKLguLjguKctCivguKLguLjguKfguIrguJkKK+C4ouC4uOC4p+C4lOC4tQor4Lii4Li44Lin4Lij4Liy4LiKCivguKLguLjguKfguKPguLLguIrguLIKK+C4ouC4uOC4p+C4sgor4Lii4Li44Lin4Liy4LiZCivguKLguLjguKvguJrguLLguJXguKMKK+C4ouC4uOC5geC4q+C4ouC5iAor4Lii4Li44LmD4Lir4LmJ4Lij4Liz4LiV4Liz4LmD4Lir4LmJ4Lij4Lix4LmI4LinCivguKLguLkKK+C4ouC4ueC5iAor4Lii4Li54LiHCivguKLguLnguYLguJQKK+C4ouC4ueC4luC4sAor4Lii4Li54LiW4Li04LiB4LiyCivguKLguLnguJvguLAKK+C4ouC4ueC5iOC4ouC4teC5iAor4Lii4Li54Lij4Lii4Liy4LiV4LijCivguKLguLnguKPguLTguIEKK+C4ouC4ueC5gOC4o+C4meC4seC4qgor4Lii4Li54LmA4Lij4LmA4LiZ4Li14Lii4LihCivguKLguLnguYLguKPguYDguJ7guLXguKLguKEKK+C4ouC4ueC4qeC4sAor4LmA4Lii4LmGCivguYDguKLguYkKK+C5gOC4ouC4hwor4LmA4Lii4LiL4Li5CivguYDguKLguYfguJQKK+C5gOC4ouC5h+C4mQor4LmA4Lii4LmH4LiZ4LmD4LiICivguYDguKLguYfguJnguIrguLfguJQKK+C5gOC4ouC5h+C4meC4leC4sgor4LmA4Lii4LmH4LiZ4LiV4Liy4LmC4LifCivguYDguKLguYfguJnguYDguJXguLLguYLguJ8KK+C5gOC4ouC5h+C4meC5gOC4ouC4teC4ouC4mgor4LmA4Lii4LmH4LiZ4LmA4Lii4Li34Lit4LiBCivguYDguKLguYfguJnguKvguLkKK+C5gOC4ouC5h+C4mgor4LmA4Lii4LmH4Lia4LiB4Li14LmICivguYDguKLguYfguJrguJTguYnguLLguKIKK+C5gOC4ouC5h+C4muC4peC4p+C4lAor4LmA4Lii4LmH4Lia4LmA4Lil4LmI4LihCivguYDguKLguYfguJrguK3guIEKK+C5gOC4ouC4oOC4uOC4oi0KK+C5gOC4ouC4oOC4uOC4ouC4meC4seC4ogor4LmA4Lii4Lig4Li44Lii4Lii4LiwCivguYDguKLguKDguLjguKLguKrguLTguIHguLIKK+C5gOC4ouC5ieC4ogor4LmA4Lii4LitCivguYDguKLguYjguK0KK+C5gOC4ouC4reC4o+C4oeC4seC4mQor4LmA4Lii4Lit4LinCivguYDguKLguYjguK3guKvguKLguLTguYjguIcKK+C5gOC4ouC4reC4sAor4LmA4Lii4Lit4Liw4LmB4Lii4LiwCivguYDguKLguLIKK+C5gOC4ouC5ieC4sgor4LmA4Lii4Liy4LinLQor4LmA4Lii4Liy4Lin4LmMCivguYDguKLguLLguKfguIrguJkKK+C5gOC4ouC4suC4p+C4mS0KK+C5gOC4ouC4suC4p+C4meC4sAor4LmA4Lii4Liy4Lin4Lie4LiyCivguYDguKLguLLguKfguJ7guLLguJPguLUKK+C5gOC4ouC4suC4p+C4nuC4suC4mQor4LmA4Lii4Liy4Lin4Lih4Liy4Lil4Lii4LmMCivguYDguKLguLLguKfguKLguK3guJQKK+C5gOC4ouC4suC4p+C4o+C4suC4igor4LmA4Lii4Liy4Lin4LmA4Lij4LioCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwKK+C5gOC4ouC4suC4sAor4LmA4Lii4Li04LiHCivguYDguKLguLTguJkKK+C5gOC4ouC4tOC5iOC4mQor4LmA4Lii4Li04LiZ4Lii4LitCivguYDguKLguLTguYjguJnguYDguKLguYnguK0KK+C5gOC4ouC4tOC4muC5hgor4LmA4Lii4Li04Lia4Lii4Liy4LiaCivguYDguKLguLTguYnguKEKK+C5gOC4ouC4teC4ogor4LmA4Lii4Li14LmI4Lii4LiHCivguYDguKLguLXguKLguIfguJzguLIKK+C5gOC4ouC4teC5iOC4ouC4h+C4reC4ouC5iOC4suC4hwor4LmA4Lii4Li14Lii4LiU4Lii4Lix4LiUCivguYDguKLguLXguKLguYPguJQKK+C5gOC4ouC4teC4ouC4mQor4LmA4Lii4Li14Lii4LiaCivguYDguKLguLXguYjguKLguKEKK+C5gOC4ouC4teC5iOC4ouC4oeC5hiDguKHguK3guIfguYYKK+C5gOC4ouC4teC5iOC4ouC4oeC4ouC4reC4lAor4LmA4Lii4Li14LmI4Lii4Lih4LmA4Lii4Li14Lii4LiZCivguYDguKLguLXguYjguKLguKHguYDguKLguLfguK3guJkKK+C5gOC4ouC4teC5iOC4ouC4oeC4p+C4tOC4oeC4suC4mQor4LmA4Lii4Li14Lii4Lih4Lix4LmI4LiHCivguYDguKLguLXguKLguKPguJrguLHguJoKK+C5gOC4ouC4teC4ouC4o+C4ouC4hwor4LmA4Lii4Li14Lii4LinCivguYDguKLguLXguYjguKLguKcKK+C5gOC4ouC4teC5iOC4ouC4p+C4h+C4seC4pwor4LmA4Lii4Li14Lii4Lin4Lii4LiHCivguYDguKLguLXguKLguKfguKLguLIKK+C5gOC4ouC4teC5iOC4ouC4p+C4reC4ueC4kAor4LmA4Lii4Li14Lii4LmD4Lir4LiN4LmICivguYDguKLguLfguK0KK+C5gOC4ouC4t+C5iOC4rQor4LmA4Lii4Li34LmJ4LitCivguYDguKLguLfguK3guIEKK+C5gOC4ouC4t+C4reC4geC5gOC4ouC5h+C4mQor4LmA4Lii4Li34LmI4Lit4LmA4LiE4LiiCivguYDguKLguLfguK3guIcKK+C5gOC4ouC4t+C5iOC4reC4hwor4LmA4Lii4Li34LmJ4Lit4LiHCivguYDguKLguLfguYnguK3guIfguIHguKPguLLguKIKK+C5gOC4ouC4t+C5ieC4reC4h+C4ouC4seC4gQor4LmA4Lii4Li34Lit4LiZCivguYDguKLguLfguYnguK3guJkKK+C5gOC4ouC4t+C5iOC4reC5g+C4ogor4LmB4Lii4LmICivguYHguKLguYkKK+C5geC4ouC4gQor4LmB4Lii4LiB4LmA4LiC4Li14LmJ4Lii4LinCivguYHguKLguIHguKLguYnguLLguKIKK+C5geC4ouC4geC5geC4ouC5ieC4hwor4LmB4Lii4LiB4LmB4Lii4LiwCivguYHguKLguIcKK+C5geC4ouC5iOC4hwor4LmB4Lii4LmJ4LiHCivguYHguKLguIfguKLguKUKK+C5geC4ouC4h+C5geC4ouC5iAor4LmB4Lii4LiH4LmB4Lii4LmJCivguYHguKLguYjguYHguJXguYkKK+C5geC4ouC4mgor4LmB4Lii4LmH4LiaCivguYHguKLguJrguITguLLguKIKK+C5geC4ouC4muC4ouC4pQor4LmB4Lii4LihCivguYHguKLguYnguKEKK+C5geC4ouC5ieC4oeC4nuC4o+C4suC4ogor4LmB4Lii4LmB4LiqCivguYHguKLguLAKK+C5guC4ogor4LmC4Lii4LmJCivguYLguKLguIEKK+C5guC4ouC4geC4leC4o+C5jAor4LmC4Lii4LiB4Lii4LmJ4Liy4LiiCivguYLguKLguIHguYDguKLguIEKK+C5guC4ouC4geC5guC4ouC5iQor4LmC4Lii4LiELQor4LmC4Lii4LiE4LmA4LiB4LiT4LiR4LmMCivguYLguKLguITguIjguLHguIHguKnguLgKK+C5guC4ouC4hOC4meC4tOC4l+C4o+C4sgor4LmC4Lii4LiE4Lii4LiwCivguYLguKLguITguLAKK+C5guC4ouC4hOC4suC4nuC4iOC4owor4LmC4Lii4LiE4Liy4Lin4LiI4LijCivguYLguKLguITguLTguJkKK+C5guC4ouC4hOC4tQor4LmC4Lii4LiHCivguYLguKLguYjguIcKK+C5guC4ouC5iOC4h+C5hgor4LmC4Lii4LmI4LiH4LmA4Lii4LmI4LiHCivguYLguKLguIfguYLguKLguYgKK+C5guC4ouC4iuC4gQor4LmC4Lii4LiK4LiZ4LmMCivguYLguKLguIrguJnguLIKK+C5guC4ouC4lAor4LmC4Lii4LiVCivguYLguKLguJbguLTguIHguLAKK+C5guC4ouC4l+C4sOC4geC4sgor4LmC4Lii4LiYLQor4LmC4Lii4LiY4Lin4Liy4LiX4Li04LiVCivguYLguKLguJjguLIKK+C5guC4ouC4mOC4tOC4mQor4LmC4Lii4LiZCivguYLguKLguJnguIEKK+C5guC4ouC4meC4geC4peC4reC4hwor4LmC4Lii4LiZ4LiB4Lil4Lit4LiZCivguYLguKLguJnguKLguLLguKcKK+C5guC4ouC4meC4q+C4peC4uOC4oQor4LmC4Lii4LiZ4Lir4LmI4Lin4LiHCivguYLguKLguJnguKvguLHguKfguYLguKLguJnguIHguYnguK3guKIKK+C5guC4ouC4meC4tOC5guC4qgor4LmC4Lii4LiZ4Li04LmC4Liq4Lih4LiZ4Liq4Li04LiB4Liy4LijCivguYLguKLguJnguLUKK+C5guC4ouC4nuC4meC4oeC4seC4lwor4LmC4Lii4Lie4LiZ4LiwCivguYLguKLguKEKK+C5guC4ouC5gOC4ogor4LmC4Lii4LmJ4LmA4Lii4LmJCivguYLguKLguYLguKoKK+C5g+C4ogor4LmD4Lii4Lif4LmJ4LiyCivguYPguKLguKLguK3guIcKK+C5g+C4ouC4q+C4tOC4mQor4LmE4LiiCivguYTguKLguYgKK+C5hOC4ouC4lOC4tQor4LmE4Lii4LmE4LieCivguYTguKLguYTguKIKK+C5hOC4ouC5iOC5hOC4ouC5iAor4LijCivguKPguIEKK+C4o+C4geC4iuC4seC4jwor4Lij4LiB4LiK4LmJ4Liy4LiHCivguKPguIHguJrguLTguJkKK+C4o+C4geC4n+C5ieC4sgor4Lij4LiB4Lij4Liy4LiBCivguKPguIHguKPguYnguLLguIcKK+C4o+C4geC5gOC4o+C4teC5ieC4ouC4pwor4Lij4LiHCivguKPguIfguIHguLjguYwKK+C4o+C4h+C4hC0KK+C4o+C4h+C4hOC5jAor4Lij4LiH4LiE4Lin4Lix4LiV4LiW4Li4CivguKPguIfguKPguK3guIcKK+C4o+C4iOC4meC4sgor4Lij4LiI4LmA4Lij4LiCCivguKPguIjguYDguKXguIIKK+C4o+C4iOC4tOC4lQor4Lij4LiK4LiB4LiwCivguKPguIrguJXguLAKK+C4o+C4iuC4meC4tAor4Lij4LiK4LiZ4Li1CivguKPguIrguJnguLXguIHguKMKK+C4o+C4iuC4meC4teC4iOC4owor4Lij4LiK4LiwCivguKPguJMKK+C4o+C4ky0KK+C4o+C4k+C5gOC4geC4qeC4leC4owor4Lij4LiT4Lig4Li5CivguKPguJPguKDguLnguKHguLQKK+C4o+C4k+C4o+C4h+C4hOC5jAor4Lij4LiT4Liq4LiW4Liy4LiZCivguKPguJQKK+C4o+C4lOC4meC5ieC4swor4Lij4LiU4Li1CivguKPguJXguJnguLAKK+C4o+C4leC4sAor4Lij4LiV4Li0CivguKPguJYKK+C4o+C4li0KK+C4o+C4luC4iOC4seC4geC4o+C4ouC4suC4mQor4Lij4LiW4LiI4Lix4LiB4Lij4Lii4Liy4LiZ4Lii4LiZ4LiV4LmMCivguKPguJbguInguLjguIHguYDguInguLTguJkKK+C4o+C4luC5guC4lOC4ouC4quC4suC4o+C4m+C4o+C4sOC4iOC4s+C4l+C4suC4hwor4Lij4LiW4Lib4Li44LiH4LiE4LieCivguKPguJbguJvguLjguIfguITguKfguLAKK+C4o+C4luC5hOC4nwor4Lij4LiW4LmE4Lif4Lif4LmJ4LiyCivguKPguJbguKLguJnguJXguYwKK+C4o+C4luC4ouC4sgor4Lij4LiW4Liy4LiZ4Li24LiBCivguKPguYDguJbguKrguKDguLAKK+C4o+C4lwor4Lij4LiX4LiZ4LiwCivguKPguJkKK+C4o+C5iOC4mQor4Lij4LmJ4LiZCivguKPguJnguJQKK+C4o+C4meC4q+C4suC4l+C4teC5iAor4Lij4LiaCivguKPguJrguIHguKfguJkKK+C4o+C4muC4o+C4sgor4Lij4Lia4LmA4Lij4LmJ4LiyCivguKPguJrguKoKK+C4o+C4muC4suC4jQor4Lij4LieCivguKPguJ7guLIKK+C4o+C4nuC4tAor4Lij4Lie4Li1CivguKPguKEKK+C4o+C5iOC4oQor4Lij4LmI4Lih4LmA4LiB4Lil4LmJ4LiyCivguKPguYjguKHguYDguIHguKgKK+C4o+C5iOC4oeC4iuC4ueC4iuC4teC4ngor4Lij4Lih4LiT4Li1CivguKPguKHguJPguLXguKItCivguKPguKHguJPguLXguKLguYwKK+C4o+C5iOC4oeC4mOC4hwor4Lij4LmI4Lih4Lic4LmJ4LiyCivguKPguYjguKHguYLguJ7guJjguLTguYzguKPguYjguKHguYTguJfguKMKK+C4o+C5iOC4oeC5hOC4oeC5ieC4iuC4suC4ouC4hOC4sgor4Lij4Lih4Lii4LmMCivguKPguYjguKHguYDguKLguYfguJkKK+C4o+C4oeC5gOC4ouC4qAor4Lij4Lii4LiwCivguKPguKLguLLguIfguITguYwKK+C4o+C4p+C4gQor4Lij4Lin4LiHCivguKPguYjguKfguIcKK+C4o+C4p+C4h+C4nOC4tuC5ieC4hwor4Lij4LmI4Lin4LiH4Lij4Li44LmJ4LiHCivguKPguYjguKfguIfguYLguKPguKIKK+C4o+C4p+C4lAor4Lij4Lin4LiU4LmA4LiU4Li14Lii4LinCivguKPguKfguJTguYDguKPguYfguKcKK+C4o+C4p+C4mQor4Lij4LmI4Lin4LiZCivguKPguKfguJnguYDguKMKK+C4o+C4p+C4mgor4Lij4Lin4Lia4Lij4Lin4LihCivguKPguKfguJrguKPguLHguJQKK+C4o+C4p+C4muC4q+C4seC4p+C4o+C4p+C4muC4q+C4suC4hwor4Lij4Lin4LihCivguKPguYjguKfguKEKK+C4o+C5iOC4p+C4oeC5g+C4iAor4Lij4LmI4Lin4Lih4LiX4LmJ4Lit4LiHCivguKPguYjguKfguKHguJvguKPguLDguYDguKfguJPguLUKK+C4o+C5iOC4p+C4oeC5gOC4nuC4qAor4Lij4LmI4Lin4Lih4Lih4Li34LitCivguKPguYjguKfguKHguKPguLHguIEKK+C4o+C5iOC4p+C4oeC5gOC4o+C4teC4ouC4h+C5gOC4hOC4teC4ouC4h+C4q+C4oeC4reC4mQor4Lij4LmI4Lin4Lih4Lir4Lit4Lil4LiH4LmC4Lij4LiHCivguKPguKfguKHguKvguLHguKcKK+C4o+C5iOC4p+C4oeC4q+C4seC4p+C4h+C4suC4mQor4Lij4LmI4Lin4Lih4Lit4Li44LiX4LijCivguKPguKfguKIKK+C4o+C4p+C4ouC5hgor4Lij4Lin4Lii4Lij4Li04LiZCivguKPguKfguKLguKPguLfguYjguJkKK+C4o+C4p+C4sAor4Lij4Lin4Li0CivguKPguKfguLTguKfguLLguKMKK+C4o+C4p+C4tQor4Lij4Lio4LiZ4LiyCivguKPguKoKK+C4o+C4quC4gQor4Lij4Liq4LiK4Liy4LiV4Li0CivguKPguKrguJnguLIKK+C4o+C4quC4meC4tOC4ouC4oQor4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMCivguKPguKrguLLguKLguJnguYDguKfguJcKK+C4o+C4quC4tOC4gQor4Lij4Lir4Lix4LiXCivguKPguKvguLHguKoKK+C4o+C4q+C4tOC4lQor4Lij4LmC4LirCivguKPguYLguKvguITguJUKK+C4o+C5guC4q+C4kOC4suC4mQor4Lij4LitCivguKPguYjguK0KK+C4o+C4reC4gQor4Lij4Lit4LiHCivguKPguYjguK3guIcKK+C4o+C5ieC4reC4hwor4Lij4LmJ4Lit4LiH4LiC4LitCivguKPguK3guIfguITguK0KK+C4o+C4reC4h+C5gOC4h+C5h+C4hwor4Lij4Lit4LiH4LiI4LmI4Liy4LiiCivguKPguK3guIfguIrguYnguLMKK+C4o+C5ieC4reC4h+C4juC4teC4geC4sgor4Lij4Lit4LiH4LiX4Lij4LiHCivguKPguK3guIfguJfguYnguK3guIcKK+C4o+C5ieC4reC4h+C4l+C4uOC4geC4guC5jAor4Lij4Lit4LiH4LiX4Li44LiZCivguKPguK3guIfguYDguJfguYnguLIKK+C4o+C5iOC4reC4h+C4meC5ieC4swor4Lij4Lit4LiH4Lia4LmI4Lit4LiZCivguKPguK3guIfguJ7guLfguYnguJkKK+C4o+C5ieC4reC4h+C5gOC4nuC4peC4hwor4Lij4LmI4Lit4LiH4Lih4LiUCivguKPguYnguK3guIfguYLguKLguJnguKLguLLguKcKK+C4o+C5iOC4reC4h+C4o+C4reC4ogor4Lij4Lit4LiH4Lij4Lix4LiHCivguKPguYnguK3guIfguYDguKPguLXguKLguIHguKPguYnguK3guIfguKvguLIKK+C4o+C5ieC4reC4h+C5gOC4o+C4teC4ouC4mQor4Lij4LmJ4Lit4LiH4LmA4Lij4Li34LitCivguKPguYnguK3guIfguYHguKPguIEKK+C4o+C5iOC4reC4h+C5geC4o+C5iOC4hwor4Lij4LmJ4Lit4LiH4Liq4LmI4LiHCivguKPguYnguK3guIfguKvguYjguKEKK+C4o+C5ieC4reC4h+C4q+C5iOC4oeC4o+C5ieC4reC4h+C5hOC4q+C5iQor4Lij4LmJ4Lit4LiH4LmE4Lir4LmJCivguKPguK3guJQKK+C4o+C4reC4lOC4iuC4teC4p+C4tOC4lQor4Lij4Lit4LiU4LiV4Lix4LinCivguKPguK3guJTguKvguLnguKPguK3guJTguJXguLIKK+C4o+C4reC4mQor4Lij4Lit4LiZ4LmGCivguKPguYjguK3guJkKK+C4o+C5ieC4reC4mQor4Lij4LmJ4Lit4LiZ4LiV4Lix4LinCivguKPguYjguK3guJnguJfguK3guIcKK+C4o+C5ieC4reC4meC4nOC5ieC4suC5gOC4q+C4peC4t+C4reC4hwor4Lij4LmJ4Lit4LiZ4Lij4LiZCivguKPguYjguK3guJnguKPguYjguK3guJkKK+C4o+C5iOC4reC4meC4o+C4seC4muC4o+C5iOC4reC4meC5gOC4o+C5iAor4Lij4LmI4Lit4LiZ4LmA4Lij4LmICivguKPguK3guJnguYHguKPguKEKK+C4o+C5ieC4reC4meC4p+C4tOC4iuC4sgor4Lij4Lit4LiZ4Liq4Li04LiX4LiY4Li04LmMCivguKPguYnguK3guJnguK3guLLguKrguJnguYwKK+C4o+C4reC4mgor4Lij4Lit4Lia4LiE4Lit4LiaCivguKPguK3guJrguKPguLnguYkKK+C4o+C4reC4oQor4Lij4Lit4Lih4LiK4Lit4LihCivguKPguK3guKHguKPguYjguK0KK+C4o+C4reC4ogor4Lij4LmI4Lit4LiiCivguKPguYnguK3guKIKK+C4o+C5ieC4reC4ouC4geC4o+C4reC4hwor4Lij4LmJ4Lit4Lii4LmB4LiB4LmJ4LinCivguKPguYnguK3guKLguIrguLHguYjguIcKK+C4o+C5ieC4reC4ouC4l+C4seC5ieC4h+C4o+C5ieC4reC4ogor4Lij4LmJ4Lit4Lii4LmB4Lib4LiUCivguKPguK3guKLguKPguYnguLLguKcKK+C4o+C5ieC4reC4ouC4peC4tOC5ieC4mQor4Lij4LmJ4Lit4Lii4Lil4Li04LmJ4LiZ4LiB4Liw4Lil4Liy4Lin4LiZCivguKPguYnguK3guKLguKrguLXguKPguYnguK3guKLguK3guKLguYjguLLguIcKK+C4o+C5iOC4reC4ouC4q+C4o+C4rQor4Lij4LmJ4Lit4Lii4Lir4Lin4Liy4LiiCivguKPguYnguK3guKLguKvguKfguLUKK+C4o+C5ieC4reC4ouC5gOC4reC5h+C4lAor4Lij4LmJ4Lit4Lii4LmA4Lit4LmH4LiU4LmA4LiI4LmH4LiU4Lir4Lix4Lin4LmA4Lih4Li34Lit4LiHCivguKPguYjguK3guYHguKPguYgKK+C4o+C4sAor4Lij4Liw4LiB4LiwCivguKPguLDguIHguLIKK+C4o+C4sOC4geC4swor4Lij4Liw4LiB4Liz4LiZ4LiyCivguKPguLDguIHguLPguJvguYjguLIKK+C4o+C4sOC5gOC4geC4sOC4o+C4sOC4geC4sAor4Lij4Liw4LiE4LiZCivguKPguLDguITguLLguIcKK+C4o+C4sOC4hOC4suC4ogor4Lij4Liw4LmA4LiE4LmH4LiU4Lij4Liw4LiE4Liy4LiiCivguKPguLDguYHguITguLAKK+C4o+C4sOC5geC4hOC4sOC4o+C4sOC4hOC4suC4ogor4Lij4Liw4LiG4Lix4LiHCivguKPguLDguIfguKEKK+C4o+C4sOC4h+C4oeC5hOC4nuC4owor4Lij4Liw4LiH4Lix4LiaCivguKPguLDguIfguLHguJrguJ7guLTguKkKK+C4o+C4sOC4h+C4teC5iAor4Lij4Liw4LmB4LiH4LmJCivguKPguLDguYLguIfguIHguKvguLTguJkKK+C4o+C4sOC4iuC4p+C4ogor4Lij4Liw4LiU4LihCivguKPguLDguJTguLAKK+C4o+C4sOC4lOC4seC4mgor4Lij4Liw4LiU4Lix4Lia4LiX4Liw4LmA4LilCivguKPguLDguJTguLHguJrguJfguLDguYDguKXguJvguLLguJnguIHguKXguLLguIcKK+C4o+C4sOC4lOC4sgor4Lij4Liw4LiU4LmI4Liy4LinCivguKPguLDguJTguLkKK+C4o+C4sOC4lOC4ueC4guC4suC4pwor4Lij4Liw4LmA4LiU4LmI4LiZCivguKPguLDguYDguJTguLXguKLguIcKK+C4o+C4sOC5geC4lAor4Lij4Liw4LiV4Li5CivguKPguLDguJfguIEKK+C4o+C4sOC4l+C4lAor4Lij4Liw4LiX4LihCivguKPguLDguJfguKfguKIKK+C4o+C4sOC4l+C4reC4lAor4Lij4Liw4LiX4LiyCivguKPguLDguJfguLbguIEKK+C4o+C4sOC4l+C4tuC4hwor4Lij4Liw4LmB4LiX4LiwCivguKPguLDguJnguLHguKEKK+C4o+C4sOC4meC4suC4lAor4Lij4Liw4LiZ4Liy4LiU4LmB4LiB4LmJ4LinCivguKPguLDguJnguLLguJTguJfguLjguYnguKEKK+C4o+C4sOC4meC4suC4lOC5gOC4reC4gQor4Lij4Liw4LiZ4Liy4LiaCivguKPguLDguJnguLLguJrguYDguK3guLXguKLguIcKK+C4o+C4sOC4meC4suC4oQor4Lij4Liw4LiZ4Liy4LinCivguKPguLDguYDguJnguJkKK+C4o+C4sOC5gOC4meC4o+C4sOC4meC4suC4lAor4Lij4Liw4LmA4LiZ4Li14Lii4LiUCivguKPguLDguYHguJnguIcKK+C4o+C4sOC5geC4meC4sAor4Lij4Liw4Lia4LiaCivguKPguLDguJrguJrguKrguLjguKPguLTguKLguLAKK+C4o+C4sOC4muC4oQor4Lij4Liw4Lia4Lit4LiaCivguKPguLDguJrguLHguJQKK+C4o+C4sOC4muC4seC4mgor4Lij4Liw4Lia4Liy4LiNCivguKPguLDguJrguLLguJQKK+C4o+C4sOC4muC4suC4meC4tQor4Lij4Liw4Lia4Liy4LiZ4Li14LmJCivguKPguLDguJrguLLguKIKK+C4o+C4sOC4muC4suC4ouC4quC4tQor4Lij4Liw4Lia4LizCivguKPguLDguJrguLQKK+C4o+C4sOC4muC4tOC4pQor4Lij4Liw4Lia4Li04Lil4LmA4Lih4Li34Lit4LiHCivguKPguLDguJrguLfguK0KK+C4o+C4sOC4muC4uAor4Lij4Liw4LmA4Lia4LiHCivguKPguLDguYDguJrguYfguIcKK+C4o+C4sOC5gOC4muC4tOC4lAor4Lij4Liw4LmA4Lia4Li04LiU4LiC4Lin4LiUCivguKPguLDguYDguJrguLTguJTguJfguLPguKXguLLguKIKK+C4o+C4sOC5gOC4muC4tOC4lOC4meC5ieC4s+C4leC4sgor4Lij4Liw4LmA4Lia4Li04LiU4Lib4Lij4Lih4Liy4LiT4Li5CivguKPguLDguYDguJrguLTguJTguYDguJ7guKXguLTguIcKK+C4o+C4sOC5gOC4muC4tOC4lOC4oeC4t+C4rQor4Lij4Liw4LmA4Lia4Li04LiU4LmA4Lin4Lil4LiyCivguKPguLDguYDguJrguLTguJTguYTguK7guYLguJTguKPguYDguIjguJkKK+C4o+C4sOC5gOC4muC4teC4ouC4hwor4Lij4Liw4LmA4Lia4Li14Lii4LiZCivguKPguLDguYDguJrguLXguKLguJoKK+C4o+C4sOC5gOC4muC4teC4ouC4muC4geC4suC4owor4Lij4Liw4LmA4Lia4Li14Lii4Lia4Lin4Liy4Lij4LiwCivguKPguLDguYHguJrguJoKK+C4o+C4sOC5g+C4mgor4Lij4Liw4Lif4LmJ4LiyCivguKPguLDguKHguLHguJTguKPguLDguKfguLHguIcKK+C4o+C4sOC4oeC4sgor4Lij4Liw4Lih4Liy4LiUCivguKPguLDguYDguKHguLXguKLguKMKK+C4o+C4sOC4ouC5iOC4rQor4Lij4Liw4Lii4LmI4Lit4LihCivguKPguLDguKLguLAKK+C4o+C4sOC4ouC4seC4hwor4Lij4Liw4Lii4Lix4LmJ4LiHCivguKPguLDguKLguLHguJQKK+C4o+C4sOC4ouC4seC4mgor4Lij4Liw4Lii4LmJ4LiyCivguKPguLDguKLguLLguJkKK+C4o+C4sOC4ouC4suC4mgor4Lij4Liw4Lii4LizCivguKPguLDguKLguLPguJXguLPguJrguK3guJkKK+C4o+C4sOC4ouC4tOC4muC4o+C4sOC4ouC4seC4mgor4Lij4Liw4LmC4Lii4LiHCivguKPguLDguYLguKLguIfguKPguLDguKLguLLguIcKK+C4o+C4sOC4o+C4p+C4ogor4Lij4Liw4Lij4Lit4LiHCivguKPguLDguKPguYjguK3guJkKK+C4o+C4sOC4o+C4seC4pwor4Lij4Liw4Lij4Liy4LiZCivguKPguLDguKPguYjguLLguKIKK+C4o+C4sOC4o+C4suC4pwor4Lij4Liw4Lij4Li04LiBCivguKPguLDguKPguLXguYgKK+C4o+C4sOC4o+C4tuC4hwor4Lij4Liw4Lij4Li34LmI4LiZCivguKPguLDguKPguLfguYnguJkKK+C4o+C4sOC5gOC4owor4Lij4Liw4LmA4Lij4LmICivguKPguLDguYDguKPguYnguIcKK+C4o+C4sOC5gOC4o+C5h+C4pwor4Lij4Liw4LmA4Lij4Li04LiHCivguKPguLDguYDguKPguLXguKLguIcKK+C4o+C4sOC5gOC4o+C4teC4ouC4oQor4Lij4Liw4LmA4Lij4Li34LmI4Lit4LiiCivguKPguLDguYHguKPguYgKK+C4o+C4sOC5geC4o+C4hwor4Lij4Liw4Lil4LiHCivguKPguLDguKXguKfguIcKK+C4o+C4sOC4peC4reC4gQor4Lij4Liw4Lil4Lit4LiHCivguKPguLDguKXguLHguJQKK+C4o+C4sOC4peC4seC4lOC5hOC4lAor4Lij4Liw4Lil4Li24LiBCivguKPguLDguKXguLjguIEKK+C4o+C4sOC4peC4uOC4hwor4Lij4Liw4LmA4Lil4Li04LiHCivguKPguLDguYDguKXguLXguKLguJQKK+C4o+C4sOC4p+C4seC4hwor4Lij4Liw4Lin4Lix4LiH4LmE4Lie4LijCivguKPguLDguKfguLHguIfguKfguLHguJkKK+C4o+C4sOC4p+C4suC4hwor4Lij4Liw4Lin4Liy4LiU4Lij4Liw4LmE4LinCivguKPguLDguKfguLLguKEKK+C4o+C4sOC4p+C4suC4ogor4Lij4Liw4Lin4Li04LiHCivguKPguLDguYHguKfguIcKK+C4o+C4sOC5geC4p+C4lOC4o+C4sOC4p+C4seC4hwor4Lij4Liw4LmE4LinCivguKPguLDguKrguLDguYDguIHguYfguJQKK+C4o+C4sOC4quC4suC4ogor4Lij4Liw4Liq4LmI4Liz4Lij4Liw4Liq4Liy4LiiCivguKPguLDguKrguLUKK+C4o+C4sOC5gOC4quC4tOC4lOC4o+C4sOC4quC4seC4hwor4Lij4Liw4Lir4LiB4Lij4Liw4LmA4Lir4Li04LiZCivguKPguLDguKvguIcKK+C4o+C4sOC4q+C4p+C4ogor4Lij4Liw4Lir4Lin4LmI4Liy4LiHCivguKPguLDguKvguK3guIfguKPguLDguYHguKvguIcKK+C4o+C4sOC4q+C4reC4mgor4Lij4Liw4Lir4Lix4LiUCivguKPguLDguKvguLLguKIKK+C4o+C4sOC4q+C4uOC4ogor4Lij4Liw4LmA4Lir4LmH4LiICivguKPguLDguYDguKvguKIKK+C4o+C4sOC5gOC4q+C4o+C4sOC4q+C4mQor4Lij4Liw4LmA4Lir4Lir4LiZCivguKPguLDguYDguKvguKvguLHguJkKK+C4o+C4sOC5gOC4q+C4tOC4lAor4Lij4Liw4LmA4Lir4Li04LiZ4Lij4Liw4Lir4LiBCivguKPguLDguYHguKvguIEKK+C4o+C4sOC5geC4q+C4hwor4Lij4Liw4LmC4Lir4LiiCivguKPguLDguK3guKHguKPguLDguK3guLIKK+C4o+C4sOC4reC4sgor4Lij4Liw4Lit4Li04LiU4Lij4Liw4Lit4LiyCivguKPguLDguK3guLgKK+C4o+C4seC4gQor4Lij4Lix4LiB4LiC4LmMCivguKPguLHguIHguILguKrguLAKK+C4o+C4seC4geC4guC4sgor4Lij4Lix4LiB4LiC4Li04LiVCivguKPguLHguIHguJTguJsKK+C4o+C4seC4geC4lOC4sAor4Lij4Lix4LiB4LiU4Li14Lir4Liy4Lih4LiI4Lix4LmI4LinIOC4o+C4seC4geC4iuC4seC5iOC4p+C4q+C4suC4oeC5gOC4quC4sgor4Lij4Lix4LiB4LiV4LiwCivguKPguLHguIHguJrguLXguYkKK+C4o+C4seC4geC4nuC4teC5iOC5gOC4quC4teC4ouC4lOC4suC4ouC4meC5ieC4reC4hwor4Lij4Lix4LiB4Lii4LihCivguKPguLHguIHguKLguLLguKfguYPguKvguYnguJrguLHguYjguJkg4Lij4Lix4LiB4Liq4Lix4LmJ4LiZ4LmD4Lir4LmJ4LiV4LmI4LitCivguKPguLHguIHguKPguYnguK3guKIKK+C4o+C4seC4geC5gOC4o+C5iAor4Lij4Lix4LiB4LmB4Lij4LmJCivguKPguLHguIHguKnguYwKK+C4o+C4seC4geC4qeC4sgor4Lij4Lix4LiB4Lip4Liy4LiB4Liy4LijCivguKPguLHguIHguKnguLLguIHguLLguKPguJPguYwKK+C4o+C4seC4geC4q+C4oeC4uQor4Lij4Lix4LiHCivguKPguLHguYnguIcKK+C4o+C4seC4h+C4geC4sgor4Lij4Lix4LiH4LmA4LiB4Li14Lii4LiICivguKPguLHguIfguYHguIEKK+C4o+C4seC4h+C5hOC4guC5iAor4Lij4Lix4LiH4LiE4LmMCivguKPguLHguIfguITguKfguLLguJkKK+C4o+C4seC4h+C5geC4hAor4Lij4Lix4LiH4LiU4Li44LihCivguKPguLHguIfguYHguJXguJkKK+C4o+C4seC4h+C4meC4gQor4Lij4Lix4LiH4LiZ4Liy4LiZCivguKPguLHguIfguJrguKfguJoKK+C4o+C4seC4h+C4nOC4tuC5ieC4hwor4Lij4Lix4LiH4LmA4Lie4Lil4Li04LiHCivguKPguLHguIfguKHguJQKK+C4o+C4seC4h+C4o+C4reC4hwor4Lij4Lix4LiH4Lij4Lix4LiB4Lip4LmMCivguKPguLHguIfguYDguKPguIIKK+C4o+C4seC4h+C5geC4o+C4gQor4Lij4Lix4LiH4Lin4Lix4LiUCivguKPguLHguIfguKrguKPguKPguITguYwKK+C4o+C4seC4h+C4quC4o+C4seC4hwor4Lij4Lix4LiH4Liq4Lik4Lip4LiP4LmMCivguKPguLHguIfguKrguLQKK+C4o+C4seC4h+C4quC4tOC4oeC4seC4meC4leC4uOC5jAor4Lij4Lix4LiH4Liq4Li04Lih4LiyCivguKPguLHguIfguKrguLUKK+C4o+C4seC4h+C4quC4teC4hOC4p+C4suC4oeC4o+C5ieC4reC4mQor4Lij4Lix4LiH4Liq4Li14LiE4Lit4Liq4Lih4Li04LiBCivguKPguLHguIfguKrguLXguYHguJ7guJfguKLguYwKK+C4o+C4seC4h+C4quC4teC4p+C4tOC4l+C4ouC4sgor4Lij4Lix4LiH4Liq4Li14LmA4Lir4LiZ4Li34Lit4Lih4LmI4Lin4LiHCivguKPguLHguIfguKvguKLguLLguKcKK+C4o+C4seC4iOC4ieC4sgor4Lij4Lix4LiKCivguKPguLHguIotCivguKPguLHguIrguIHguLAKK+C4o+C4seC4iuC4geC4suC4pQor4Lij4Lix4LiK4LiK4Li4CivguKPguLHguIrguIrguLnguJvguIHguLLguKMKK+C4o+C4seC4iuC4juC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Lix4LiK4LiULQor4Lij4Lix4LiK4LiU4Liy4Lig4Li04LmA4Lip4LiBCivguKPguLHguIrguJUtCivguKPguLHguIrguJfguLLguKLguLLguJcKK+C4o+C4seC4iuC4meC4sAor4Lij4Lix4LiK4LiZ4Li1CivguKPguLHguIrguJnguLXguIHguKMKK+C4o+C4seC4jeC4iOC4p+C4mQor4Lij4Lix4LiP4LiQ4Liy4Lig4Li04Lib4Liy4Lil4LmC4LiZ4Lia4Liy4LiiCivguKPguLHguJAKK+C4o+C4seC4kC0KK+C4o+C4seC4kOC4l+C4ueC4lQor4Lij4Lix4LiQ4LiY4Lij4Lij4Lih4LiZ4Li54LiNCivguKPguLHguJDguJrguLLguKUKK+C4o+C4seC4kOC4muC4uOC4o+C4uOC4qQor4Lij4Lix4LiQ4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMCivguKPguLHguJDguJvguKPguLDguKjguLLguKrguJnguJnguLHguKIKK+C4o+C4seC4kOC4m+C4o+C4sOC4qOC4suC4quC4meC4qOC4suC4quC4leC4o+C5jAor4Lij4Lix4LiQ4Lib4Lij4Liw4Lio4Liy4Liq4LmC4LiZ4Lia4Liy4LiiCivguKPguLHguJDguJvguKPguLDguKvguLLguKMKK+C4o+C4seC4kOC4oeC4meC4leC4o+C4tQor4Lij4Lix4LiQ4Lin4Li04Liq4Liy4Lir4LiB4Li04LiICivguKPguLHguJDguKjguLLguKrguJXguKPguYwKK+C4o+C4seC4kOC4quC4oOC4sgor4Lij4Lix4LiUCivguKPguLHguJTguIHguLjguKEKK+C4o+C4seC4lOC5gOC4geC4peC5ieC4sgor4Lij4Lix4LiU4LmA4LiC4LmH4Lih4LiC4Lix4LiUCivguKPguLHguJTguIrguYnguK3guIcKK+C4o+C4seC4lOC4leC4seC4pwor4Lij4Lix4LiU4LiX4Li24LiaCivguKPguLHguJTguJvguKPguLDguITguJQKK+C4o+C4seC4lOC4m+C4o+C4sOC4hOC4mQor4Lij4Lix4LiU4Lie4Lix4Liq4LiV4Lij4LmMCivguKPguLHguJTguKPguLbguIcKK+C4o+C4seC4lOC4o+C4ueC4mwor4Lij4Lix4LiVCivguKPguLHguJUtCivguKPguLHguJXguIHguLHguKHguJ7guKUKK+C4o+C4seC4leC4hOC4mQor4Lij4Lix4LiV4LiI4Lix4LiZ4LiX4LiZ4LmMCivguKPguLHguJXguJXguLHguI3guI3guLkKK+C4o+C4seC4leC4leC4tAor4Lij4Lix4LiV4LiV4Li04LiB4Liy4LilCivguKPguLHguJXguJktCivguKPguLHguJXguJnguYwKK+C4o+C4seC4leC4meC5guC4geC4quC4tOC4meC4l+C4o+C5jAor4Lij4Lix4LiV4LiZ4LiV4Lij4Lix4LiiCivguKPguLHguJXguJnguJrguLHguKXguKXguLHguIfguIHguYwKK+C4o+C4seC4leC4meC4quC4tOC4h+C4q+C4suC4quC4meC5jAor4Lij4Lix4LiV4LiZ4LiwCivguKPguLHguJXguJnguLIKK+C4o+C4seC4leC4meC4suC4geC4owor4Lij4Lix4LiV4LiZ4Liy4Lin4Lil4Li1CivguKPguLHguJXguKHguJPguLUKK+C4o+C4seC4leC4oeC4sgor4Lij4Lix4LiWCivguKPguLHguJbguKLguLIKK+C4o+C4seC4l+C5gOC4l+C4reC4o+C5jOC4n+C4reC4o+C5jOC5gOC4lOC4teC4ouC4oQor4Lij4Lix4LiZCivguKPguLHguYnguJkKK+C4o+C4seC4meC4iuC4meC4o+C4seC4meC5geC4iuC4hwor4Lij4Lix4LiZ4LiX4LiUCivguKPguLHguJnguJfguKfguKIKK+C4o+C4seC4meC4l+C4swor4Lij4Lix4LiZ4LmB4LiX4LiwCivguKPguLHguJnguJjguLAKK+C4o+C4seC4mgor4Lij4Lix4Lia4LiC4Lin4Lix4LiNCivguKPguLHguJrguYHguILguIEKK+C4o+C4seC4muC4hOC4swor4Lij4Lix4Lia4LiI4LmJ4Liy4LiHCivguKPguLHguJrguJfguYnguK3guIcKK+C4o+C4seC4muC4m+C4o+C4sOC4geC4seC4mQor4Lij4Lix4Lia4Lib4Lij4Liw4LiX4Liy4LiZCivguKPguLHguJrguJvguLLguIEKK+C4o+C4seC4muC4nOC4tOC4lAor4Lij4Lix4Lia4Lic4Li04LiU4LiK4Lit4LiaCivguKPguLHguJrguKHguLfguK0KK+C4o+C4seC4muC4o+C4reC4hwor4Lij4Lix4Lia4LmA4Lij4Li34Lit4LiZCivguKPguLHguJrguKrguLHguYjguIcKK+C4o+C4seC4muC4q+C4meC5ieC4sgor4Lij4Lix4Lia4LmE4Lir4Lin4LmJCivguKPguLHguKHguIEtCivguKPguLHguKHguJPguLXguKItCivguKPguLHguKHguKDguLIKK+C4o+C4seC4oeC4oeC4teC5iAor4Lij4Lix4Lih4Lii4LmMCivguKPguLHguKIKK+C4o+C4seC4pwor4Lij4Lix4LmI4LinCivguKPguLHguYnguKcKK+C4o+C4seC5ieC4p+C5hOC4geC5iAor4Lij4Lix4Lio4Lih4Li04Lih4Lix4LiVCivguKPguLHguKjguKHguLTguKHguLLguJkKK+C4o+C4seC4qOC4oeC4tQor4Lij4Lix4Lip4LiO4Liy4LiB4LijCivguKPguLHguKotCivguKPguLHguKrguKrguKPguLAKK+C4o+C4seC4quC4quC4sAor4Lij4LiyCivguKPguYjguLIKK+C4o+C5ieC4sgor4Lij4Liy4LiBCivguKPguLLguIHguYHguIHguYnguKcKK+C4o+C4suC4geC4guC4p+C4seC4jQor4Lij4Liy4LiB4LiQ4Liy4LiZCivguKPguLLguIHguJTguLTguJkKK+C4o+C4suC4geC4neC4reC4ogor4Lij4Liy4LiB4Lif4Lix4LiZCivguKPguLLguIHguKjguLHguJ7guJfguYwKK+C4o+C4suC4geC4qeC4qgor4Lij4Liy4LiB4LmC4Lip4LiqCivguKPguLLguIHguKrguLLguJQKK+C4o+C4suC4geC4quC4suC4lOC4meC5ieC4reC4ogor4Lij4Liy4LiB4Liq4Liy4LiU4LmD4Lir4LiN4LmICivguKPguLLguIHguKrguLLguKHguKrguLTguJoKK+C4o+C4suC4geC5gOC4q+C4h+C5ieC4sgor4Lij4Liy4LiC4LmJ4LitCivguKPguLLguITguLAKK+C4o+C4suC4hOC4sgor4Lij4Liy4LiE4Liy4LiV4Lil4Liy4LiUCivguKPguLLguITguLTguJkKK+C4o+C4suC4hOC4tQor4Lij4Liy4LiHCivguKPguYjguLLguIcKK+C4o+C5ieC4suC4hwor4Lij4LmI4Liy4LiH4LiB4Liy4LiiCivguKPguLLguIfguIjguLfguJQKK+C4o+C4suC4h+C4iuC4suC4hwor4Lij4Liy4LiH4LiU4LizCivguKPguLLguIfguYHguJTguIcKK+C4o+C4suC4h+C4meC4suC4mQor4Lij4Liy4LiH4Lia4Lij4Lij4LiX4Lix4LiUCivguKPguYjguLLguIfguKPguYnguLLguJkKK+C4o+C4suC4h+C4p+C4seC4pQor4Lij4LmI4Liy4LiH4LmB4LirCivguKPguLLguIoKK+C4o+C4suC4ii0KK+C4o+C4suC4iuC4geC4suC4owor4Lij4Liy4LiK4LiB4Li04LiI4LiI4Liy4LiZ4Li44LmA4Lia4LiB4Lip4LiyCivguKPguLLguIrguITguKPguLkKK+C4o+C4suC4iuC4jeC4tQor4Lij4Liy4LiK4LiU4Lix4LiUCivguKPguLLguIrguJfguLHguJPguJHguYwKK+C4o+C4suC4iuC4l+C4tOC4meC4meC4suC4oQor4Lij4Liy4LiK4LiX4Li54LiVCivguKPguLLguIrguYLguJfguKPguKvguLAKK+C4o+C4suC4iuC4mOC4o+C4o+C4oQor4Lij4Liy4LiK4LiY4Liy4LiZ4Li1CivguKPguLLguIrguJnguLTguIHguLjguKUKK+C4o+C4suC4iuC4meC4teC4leC4tAor4Lij4Liy4LiK4Lia4Lix4LiT4LiR4Li04LiVCivguKPguLLguIrguJrguLLguJXguKMKK+C4o+C4suC4iuC4muC4uOC4leC4owor4Lij4Liy4LiK4Lia4Li44Lij4Li44LipCivguKPguLLguIrguJvguLDguYHguJXguJkKK+C4o+C4suC4iuC4nuC4pOC4geC4qeC5jAor4Lij4Liy4LiK4Lig4Lix4LiPCivguKPguLLguIrguKHguLHguKUKK+C4o+C4suC4iuC4oeC4suC4k+C4ngor4Lij4Liy4LiK4Lih4Liy4LipCivguKPguLLguIrguKHguLLguKoKK+C4o+C4suC4iuC4ouC5jAor4Lij4Liy4LiK4Lii4Liy4LiZCivguKPguLLguIrguYLguKLguIQKK+C4o+C4suC4iuC5guC4ouC4h+C4geC4suC4owor4Lij4Liy4LiK4Lij4LiW4Lih4Liy4LmA4LiB4LiiCivguKPguLLguIrguKfguIfguKjguYwKK+C4o+C4suC4iuC4p+C4o+C4oeC4q+C4suC4p+C4tOC4q+C4suC4owor4Lij4Liy4LiK4Lin4Lij4Lin4Li04Lir4Liy4LijCivguKPguLLguIrguKfguYLguKPguIfguIHguLLguKMKK+C4o+C4suC4iuC4p+C4seC4leC4tAor4Lij4Liy4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguKPguLLguIrguKrguIHguLjguKUKK+C4o+C4suC4iuC4quC4seC4meC4leC4leC4tOC4p+C4h+C4qOC5jAor4Lij4Liy4LiK4Liq4Liy4Liq4LiZ4LmMCivguKPguLLguIrguKrguLXguKvguYwKK+C4o+C4suC4iuC4quC4teC4q+C5jOC4leC4seC4p+C4nOC4ueC5iQor4Lij4Liy4LiK4Liq4Li14Lir4LmM4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguKPguLLguIrguKrguLXguKvguYzguKrguK3guIfguJXguLHguKfguK3guKLguLnguYjguJbguYnguLPguYDguJTguLXguKLguKfguIHguLHguJnguYTguKHguYjguYTguJTguYkKK+C4o+C4suC4iuC4quC4ueC4ouC4sAor4Lij4Liy4LiK4Lir4Lix4LiV4LiW4LmA4Lil4LiC4LiyCivguKPguLLguIrguK3guIfguITguKPguLHguIHguKnguYwKK+C4o+C4suC4iuC5guC4reC4h+C4geC4suC4owor4Lij4Liy4LiK4LiwCivguKPguLLguIrguLHguJkKK+C4o+C4suC4iuC4seC4meC4ouC5jAor4Lij4Liy4LiK4Lix4LiiCivguKPguLLguIrguLIKK+C4o+C4suC4iuC4suC4hOC4k+C4sAor4Lij4Liy4LiK4Liy4LmC4LiK4LiECivguKPguLLguIrguLLguJjguLTguKPguLLguIoKK+C4o+C4suC4iuC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Liy4LiK4Liy4Lii4LiV4LiZ4LiwCivguKPguLLguIrguLLguKTguIHguKnguYwKK+C4o+C4suC4iuC4suC4p+C4lOC4tQor4Lij4Liy4LiK4Liy4Lin4Lil4Li1CivguKPguLLguIrguLLguKjguLHguJ7guJfguYwKK+C4o+C4suC4iuC4tAor4Lij4Liy4LiK4Li04LiZ4Li04LiB4Li44LilCivguKPguLLguIrguLTguJnguLUKK+C4o+C4suC4iuC4tOC4meC4teC4geC4uOC4pQor4Lij4Liy4LiK4Li04LiZ4Li14LiZ4Liy4LiWCivguKPguLLguIrguLTguJnguLnguJvguJbguLHguKHguKDguYwKK+C4o+C4suC4iuC4tQor4Lij4Liy4LiK4Li54Lib4LiW4Lix4Lih4Lig4LmMCivguKPguLLguIrguLnguJvguYLguKDguIQKK+C4o+C4suC5gOC4iuC4mQor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4LmMCivguKPguLLguYDguIrguJnguJfguKPguKLguLLguJkKK+C4o+C4suC5guC4iuC4h+C4geC4suC4owor4Lij4Liy4LmC4LiK4Lib4LiW4Lix4Lih4Lig4LmMCivguKPguLLguYLguIrguJvguYLguKDguIQKK+C4o+C4suC5guC4iuC4p+C4suC4lwor4Lij4Liy4LmE4LiK4Lio4Lin4Lij4Lij4Lii4LmMCivguKPguLLguI0KK+C4o+C4suC4jeC4o+C4reC4mQor4Lij4Liy4LiUCivguKPguLLguJUKK+C4o+C4suC4leC4owor4Lij4Liy4LiV4Lij4Li1CivguKPguLLguJXguKPguLXguJvguKPguLDguJTguLHguJrguJTguLLguKcKK+C4o+C4suC5guC4lwor4Lij4Liy4LiZCivguKPguYjguLLguJkKK+C4o+C5ieC4suC4mQor4Lij4LmJ4Liy4LiZ4Lih4LmJ4LiyCivguKPguLLguJoKK+C4o+C4suC4muC4hOC4suC4mgor4Lij4Liy4Lia4LmA4Lib4LmH4LiZ4Lir4LiZ4LmJ4Liy4LiB4Lil4Lit4LiHCivguKPguLLguJrguKPguLfguYjguJkKK+C4o+C4suC4muC5gOC4o+C4teC4ouC4mgor4Lij4Liy4Lib4Li14LiBCivguKPguLLguJ7guJPguYwKK+C4o+C4suC4nuC4k+C4suC4quC4ueC4owor4Lij4Liy4LihCivguKPguLLguKHguYDguIHguLXguKLguKPguJXguLTguYwKK+C4o+C4suC4oeC4quC4ueC4owor4Lij4Liy4Lih4Lix4LiNCivguKPguLLguKHguLIKK+C4o+C4suC4ogor4Lij4LmI4Liy4LiiCivguKPguYnguLLguKIKK+C4o+C5ieC4suC4ouC4geC4suC4iAor4Lij4Liy4Lii4LiB4Liy4LijCivguKPguLLguKLguIfguLLguJkKK+C4o+C4suC4ouC4h+C4suC4meC4geC4suC4o+C4m+C4o+C4sOC4iuC4uOC4oQor4Lij4Liy4Lii4LiI4LmI4Liy4LiiCivguKPguLLguKLguJfguLLguIcKK+C4o+C5iOC4suC4ouC5hOC4oeC5iQor4Lij4LmI4Liy4Lii4Lij4Lix4LiHCivguKPguLLguKLguKPguLHguJoKK+C4o+C5ieC4suC4ouC5geC4o+C4hwor4Lij4Liy4Lii4Lin4Li04LiK4LiyCivguKPguYjguLLguYDguKPguLTguIcKK+C4o+C4suC5gOC4o+C4tOC4lAor4Lij4Liy4LmB4Lij4LihCivguKPguLLguKcKK+C4o+C5ieC4suC4pwor4Lij4Liy4Lin4LiB4LiwCivguKPguLLguKfguIHguLHguJoKK+C4o+C4suC4p+C4guC5iOC4suC4pwor4Lij4LmJ4Liy4Lin4LiJ4Liy4LiZCivguKPguLLguKfguJvguYjguLIKK+C4o+C5ieC4suC4p+C4o+C4suC4mQor4Lij4Liy4Lin4Li1CivguKPguLLguKjguLUKK+C4o+C4suC4qeC4juC4owor4Lij4Liy4Lip4LiO4Lij4LmMCivguKPguLLguKnguJXguKPguLUKK+C4o+C4suC4qeC4o+C4suC4leC4o+C4tOC4mQor4Lij4Liy4Lip4Lij4Liy4LiV4Lij4Li1CivguKPguLLguKrguLUKK+C4o+C4suC4q+C4uAor4Lij4LmI4Liy4Lir4Li44LmMCivguKPguLLguKvguLkKK+C4o+C4swor4Lij4LmI4LizCivguKPguLPguYDguILguJnguIcKK+C4o+C4s+C4hOC4suC4jQor4Lij4Liz4LmC4LiE4LihCivguKPguLPguIfguLHguJoKK+C4o+C4s+C4iOC4p+C4mQor4Lij4Liz4LiK4Lix4LmI4Lin4LmC4LiX4Lip4Lie4Liy4LiB4Lii4LmMCivguKPguLPguIvguLjguKIKK+C4o+C4s+C5gOC4l+C5ieC4sgor4Lij4Liz4Lia4Liy4LiNCivguKPguYjguLPguYTguJsKK+C4o+C4s+C4nOC4tQor4Lij4Liz4Lie4Lix4LiUCivguKPguLPguJ7guLHguJTguIrguLIKK+C4o+C4s+C4nuC4seC4mQor4Lij4Liz4Lie4Liy4LiiCivguKPguLPguJ7guLbguIcKK+C4o+C4s+C5gOC4nuC4ogor4Lij4Liz4LmB4Lie4LiZCivguKPguLPguYTguJ4KK+C4o+C4s+C4oeC4sOC5geC4ggor4Lij4Liz4Lih4Liw4LiZ4LiyCivguKPguLPguKHguLDguJnguLLguJQKK+C4o+C4s+C4oeC4sOC4o+C5iOC4rQor4Lij4Liz4LmE4Lih4LmI4LiU4Li14LmC4LiX4Lip4Lib4Li14LmI4LmC4LiX4Lip4LiB4Lil4Lit4LiHCivguKPguLPguKLguKfguJkKK+C4o+C4s+C4ouC5ieC4reC4ogor4Lij4Liz4LmB4Lii4LmJCivguKPguLPguKPguIfguITguYwKK+C4o+C5iOC4s+C4o+C4p+C4ogor4Lij4Liz4Lij4Liy4LiNCivguKPguLPguKPguLMKK+C4o+C5iOC4s+C4o+C4teC5ieC4o+C5iOC4s+C5hOC4owor4Lij4Liz4LmA4LijCivguKPguYjguLPguYDguKPguLXguKLguJkKK+C4o+C4s+C5hOC4owor4Lij4LmI4Liz4LmE4LijCivguKPguLPguKXguLbguIEKK+C4o+C4s+C4p+C4hwor4Lij4Liz4Lir4Lix4LiUCivguKPguLPguKvguLHguKoKK+C4o+C5iOC4s+C5hOC4q+C5iQor4Lij4Li0CivguKPguLTguIEKK+C4o+C4tOC4geC5hgor4Lij4Li04LiU4Liq4Li14LiU4Lin4LiHCivguKPguLTguJkKK+C4o+C4tOC4meC5hgor4Lij4Li04LmJ4LiZCivguKPguLTguJoKK+C4o+C4tOC4muC4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4mQor4Lij4Li04Lia4Lia4Li04LmJ4LiZCivguKPguLTguJrguKPguLLguIrguJrguLLguJXguKMKK+C4o+C4tOC4muC4o+C4teC5iAor4Lij4Li04Lia4Lir4Lij4Li14LmICivguKPguLTguJvguK3guIcKK+C4o+C4tOC4m+C4uAor4Lij4Li04Lib4Li5CivguKPguLTguKEKK+C4o+C4tOC4oeC4neC4teC4m+C4suC4gQor4Lij4Li04LmA4Lij4Li04LmI4LihCivguKPguLTguYnguKcKK+C4o+C4tOC4qeC4ouC4sgor4Lij4Li04Lit4LmI4Liy4LiZCivguKPguLUKK+C4o+C4teC5iAor4Lij4Li14LmJCivguKPguLXguYYg4LiC4Lin4Liy4LiH4LmGCivguKPguLXguJQKK+C4o+C4teC4lOC4meC4suC4l+C4suC5gOC4meC5ieC4mQor4Lij4Li14LiU4LiZ4Liy4LiX4Liy4LmA4Lij4LmJ4LiZCivguKPguLXguJTguKXguLnguIEKK+C4o+C4teC4lOC4seC4geC4iuC4seC4mQor4Lij4Li14LiVCivguKPguLXguYDguJnguLXguKLguKEKK+C4o+C4teC4mgor4Lij4Li14Lia4Lij4Li44LiUCivguKPguLXguYnguJ7guKUKK+C4o+C4teC4oQor4Lij4Li14Lij4LitCivguKPguLXguYYg4Lij4Lit4LmGCivguKPguLXguYnguKPguLTguIEKK+C4o+C4tuC4geC4leC5jAor4Lij4Li24LiHCivguKPguLbguYnguIcKK+C4o+C4t+C5iOC4mQor4Lij4Li34LmJ4LiZCivguKPguLfguYjguJnguKPguKHguKLguYwKK+C4o+C4t+C5iOC4meC5gOC4o+C4tOC4hwor4Lij4Li34LmJ4LitCivguKPguLfguYnguK3guYHguJXguYjguKvguKXguLHguIfguITguLLguYDguILguLIg4Lir4Lil4Lix4LiH4LiE4Liy4LmA4Lij4Liy4LmE4Lih4LmI4Lij4Li34LmJ4LitCivguKPguLfguYnguK3guJ/guLfguYnguJkKK+C4o+C4uAor4Lij4Li44LiBCivguKPguLjguIHguIItCivguKPguLjguIHguILguYwKK+C4o+C4uOC4geC4guC4geC4sAor4Lij4Li44LiB4LiC4LiK4Liy4LiV4Li0CivguKPguLjguIHguILguKHguLnguKUKK+C4o+C4uOC4geC4guC4oeC4ueC4peC4tOC4geC4mOC4uOC4lOC4h+C4hOC5jAor4Lij4Li44LiB4LiC4LiyCivguKPguLjguIHguIbguLLguJUKK+C4o+C4uOC4geC4o+C5ieC4mQor4Lij4Li44LiB4Lij4Liy4LiZCivguKPguLjguIHguKPguLjguKIKK+C4o+C4uOC4geC4qeC4sAor4Lij4Li44LiC4LmJ4Liy4LinCivguKPguLjguYjguIcKK+C4o+C4uOC5ieC4hwor4Lij4Li44LmI4LiH4LmA4LiK4LmJ4LiyCivguKPguLjguYnguIfguJ7guKPguLLguKIKK+C4o+C4uOC5ieC4h+C4o+C5iOC4p+C4hwor4Lij4Li44LiH4Lij4Lix4LiHCivguKPguLjguYjguIfguYDguKPguLfguK3guIcKK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jAor4Lij4Li44LiICivguKPguLjguIjguJkKK+C4o+C4uOC4iOC4sgor4Lij4Li44LiI4Li0CivguKPguLjguIjguLTguKPguLAKK+C4o+C4uOC4iOC4tOC4o+C4sgor4Lij4Li44LiI4Li04LmA4Lij4LiCCivguKPguLjguIjguLUKK+C4o+C4uOC4iuC4sgor4Lij4Li44LiUCivguKPguLjguJTguKvguJnguYnguLIKK+C4o+C4uOC4lQor4Lij4Li44LiX4LiY4LmMCivguKPguLjguJfguKMKK+C4o+C4uOC4mOC4tOC4owor4Lij4Li44LmA4LiY4Li14Lii4LijCivguKPguLjguJkKK+C4o+C4uOC5iOC4mQor4Lij4Li44LmI4LiZ4LiB4Lij4Liw4LiX4LiHCivguKPguLjguYjguJnguJXguLDguIHguK0KK+C4o+C4uOC5iOC4meC4o+C4suC4p+C4hOC4o+C4suC4p+C5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4Lij4Li44LiZ4LmB4Lij4LiHCivguKPguLjguJrguKPguLnguYgKK+C4o+C4uOC4muC4suC4geC4suC4owor4Lij4Li44LihCivguKPguLjguYjguKEKK+C4o+C4uOC4oeC5hOC4guC5iQor4Lij4Li44Lih4LmE4LifCivguKPguLjguYjguKHguKPguKfguKIKK+C4o+C4uOC5iOC4oeC4o+C5iOC4suC4oQor4Lij4Li44LiiCivguKPguLjguYjguKIKK+C4o+C4uOC5iOC4ouC4o+C5iOC4suC4ogor4Lij4Li44Lij4Li4CivguKPguLjguKnguI/guYwKK+C4o+C4uOC4q+C4sAor4Lij4Li44Lir4Liy4LiNCivguKPguLkKK+C4o+C4ueC5iAor4Lij4Li54LmJCivguKPguLnguYnguYHguIHguKcKK+C4o+C4ueC5ieC4hOC4p+C4suC4oQor4Lij4Li54LmJ4LiE4Li04LiUCivguKPguLnguYnguITguLTguJTguKPguLnguYnguK3guYjguLLguJkKK+C4o+C4ueC5ieC4hOC4uOC4kwor4Lij4Li54LmJ4LiH4Li54LmGIOC4m+C4peC4suC5hgor4Lij4Li54LmJ4LiI4Lix4LiBCivguKPguLnguYnguIjguLHguIHguYDguIHguYfguJrguKPguLnguYnguIjguLHguIHguYDguILguLXguYjguKIKK+C4o+C4ueC5ieC4iOC4seC4geC5gOC4geC5h+C4muC4o+C4ueC5ieC4iOC4seC4geC4h+C4swor4Lij4Li54LmJ4LiI4Lix4LiB4Lih4Lix4LiB4LiE4Li44LmJ4LiZCivguKPguLnguYnguIjguLHguIHguKHguLHguIHguIjguLXguYgKK+C4o+C4ueC4iOC4tQor4Lij4Li54LmJ4LiJ4Lil4Liy4LiUCivguKPguLnguYnguYDguIrguYjguJnguYDguKvguYfguJnguIrguLLguJXguLQKK+C4o+C4ueC4lAor4Lij4Li54LmJ4LiV4Lix4LinCivguKPguLnguYnguJXguLfguYnguJnguKXguLbguIHguKvguJnguLLguJrguLLguIcKK+C4o+C4ueC5ieC4l+C4seC4mQor4Lij4Li54LmJ4LiX4Li1CivguKPguLnguJfguLXguYDguJnguLXguKLguKEKK+C4o+C4ueC5ieC5gOC4l+C5iOC4sgor4Lij4Li54LmJ4LmA4LiX4LmI4Liy4LmE4Lih4LmI4LiW4Li24LiH4LiB4Liy4Lij4LiT4LmMCivguKPguLnguYnguJnguYnguK3guKLguJ7guKXguK3guKLguKPguLPguITguLLguI0KK+C4o+C4ueC4muC4tOC5gOC4lOC4teC4ouC4oQor4Lij4Li54LibCivguKPguLnguJstCivguKPguLnguJvguIrguLUKK+C4o+C4ueC4m+C4mOC4o+C4o+C4oQor4Lij4Li54Lib4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguKPguLnguJvguJ7guKPguKPguJMKK+C4o+C4ueC4m+C4oOC4suC4ngor4Lij4Li54Lib4Lij4LmI4Liy4LiHCivguKPguLnguJvguKXguK3guIEKK+C4o+C4ueC4m+C4quC4oeC4muC4seC4leC4tAor4Lij4Li54Lib4Liq4Lij4LiwCivguKPguLnguJvguLTguKLguLAKK+C4o+C4ueC4m+C4tQor4Lij4Li54LmJ4Lih4Lil4Lix4LiBCivguKPguLnguYnguKHguKXguLLguIEKK+C4o+C4ueC5ieC4oeC4suC4gQor4Lij4Li54LmJ4Lih4Liy4LiB4Lii4Liy4LiB4LiZ4Liy4LiZCivguKPguLnguYnguKLguLLguKfguKPguLnguYnguKrguLHguYnguJkKK+C4o+C4ueC5gOC4peC5h+C4leC4leC5jAor4Lij4Li54LmJ4LmE4Lin4LmJ4LmD4LiK4LmI4Lin4LmI4LiyIOC5g+C4quC5iOC4muC5iOC4suC5geC4muC4geC4q+C4suC4oQor4Lij4Li54LmJ4Liq4Li24LiBCivguKPguLnguYnguYTguKrguYkKK+C4o+C4ueC5ieC4q+C4peC4muC5gOC4m+C5h+C4meC4m+C4teC4gSDguKPguLnguYnguKvguKXguLXguIHguYDguJvguYfguJnguKvguLLguIcKK+C4o+C4ueC4q+C4sAor4Lij4Li54LmJ4Lir4Liy4LiN4Lij4Li54LmJ4LiC4Lil4Liy4LiUCivguKPguLnguYnguYDguKvguYfguJkKK+C4o+C4ueC5ieC5gOC4q+C5h+C4meC5gOC4m+C5h+C4meC5g+C4iAor4Lij4Li54LmJ4Lit4Lii4LmI4Liy4LiH4LmA4Lib4LmH4LiUCivguKPguLnguYnguK3guKLguLnguYgKK+C4o+C4ueC5ieC5gOC4reC4h+C5gOC4m+C5h+C4meC5gOC4reC4hwor4LmA4Lij4LmICivguYDguKPguIIKK+C5gOC4o+C4guC4sgor4LmA4Lij4LiC4Liy4LiE4LiT4Li04LiVCivguYDguKPguILguLLguITguJPguLTguJXguJrguKPguLTguKrguLjguJfguJjguLTguYwKK+C5gOC4o+C4guC4suC4hOC4k+C4tOC4leC4p+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4LmA4Lij4LmH4LiHCivguYDguKPguYjguIcKK+C5gOC4o+C5ieC4hwor4LmA4Lij4LmI4LiH4Lih4Li34LitCivguYDguKPguYjguIfguKPguLHguJQKK+C5gOC4o+C5iOC4h+C4o+C5iOC4suC4ogor4LmA4Lij4LmI4LiH4Lij4Li14LiaCivguYDguKPguYjguIfguYDguKPguYnguLIKK+C5gOC4o+C4k+C4uAor4LmA4Lij4LiT4Li44LiBCivguYDguKPguJPguLkKK+C5gOC4o+C4lOC4reC4mQor4LmA4Lij4LiU4Liy4Lij4LmMCivguYDguKPguYDguJTguLXguKLguKEKK+C5gOC4o+C5ieC4mQor4LmA4Lij4LmJ4LiZ4Lil4Lix4LiaCivguYDguKPguKPguKfguJkKK+C5gOC4o+C5iOC4o+C5iOC4reC4mQor4LmA4Lij4LmI4Lij4LmI4Liy4LiiCivguYDguKPguYTguKMKK+C5gOC4o+C5h+C4pwor4LmA4Lij4LmI4LinCivguYDguKPguKfguJTguLUKK+C5gOC4o+C4rQor4LmA4Lij4LmI4LitCivguYDguKPguYjguK3guKPguYjguLIKK+C5gOC4o+C4sgor4LmA4Lij4LmI4LiyCivguYDguKPguYjguLLguYYKK+C5gOC4o+C5ieC4sgor4LmA4Lij4LmI4Liy4Lij4LmJ4Lit4LiZCivguYDguKPguLLguLAKK+C5gOC4o+C4suC4sOC4o+C4suC4ogor4LmA4Lij4Liy4Liw4Lij4LmJ4Liy4LiiCivguYDguKPguLTguIcKK+C5gOC4o+C4tOC4lAor4LmA4Lij4Li04LihCivguYDguKPguLTguYjguKEKK+C5gOC4o+C4tOC5ieC4oQor4LmA4Lij4Li04Lio4Lij4LmJ4Liy4LiHCivguYDguKPguLXguYjguKIKK+C5gOC4o+C4teC5ieC4ouC5hgor4LmA4Lij4Li14Lii4LiBCivguYDguKPguLXguKLguIHguYDguJnguLfguYnguK0KK+C5gOC4o+C4teC4ouC4hwor4LmA4Lij4Li14Lii4LiH4LmGCivguYDguKPguLXguKLguIfguITguKfguLLguKEKK+C5gOC4o+C4teC4ouC4h+C4nuC4tOC4oeC4nuC5jAor4LmA4Lij4Li14Lii4LiH4Lie4Li14LmI4LmA4Lij4Li14Lii4LiH4LiZ4LmJ4Lit4LiHCivguYDguKPguLXguKLguIfguKPguLHguJkKK+C5gOC4o+C4teC4ouC4h+C4o+C4suC4ogor4LmA4Lij4Li14Lii4LiH4Lir4LiZ4LmJ4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguYDguKPguLXguKLguIfguKvguKHguK3guJkKK+C5gOC4o+C4teC4ouC4lAor4LmA4Lij4Li14Lii4LiZCivguYDguKPguLXguKLguJnguJvguI/guLTguJrguLHguJXguLQKK+C5gOC4o+C4teC4ouC4meC4nOC4ueC4geC4leC5ieC4reC4h+C5gOC4o+C4teC4ouC4meC5geC4geC5iQor4LmA4Lij4Li14Lii4LiaCivguYDguKPguLXguKLguJrguYYKK+C5gOC4o+C4teC4ouC4muC4o+C5ieC4reC4ogor4LmA4Lij4Li14Lii4Lia4LmA4Lij4Li14Lii4LiHCivguYDguKPguLXguKLguJrguKfguLjguJgKK+C5gOC4o+C4teC4ouC4oQor4LmA4Lij4Li14LmI4Lii4LihCivguYDguKPguLXguYjguKLguKPguLLguJQKK+C5gOC4o+C4teC5iOC4ouC4o+C4suC4ogor4LmA4Lij4Li14LmI4Lii4LmE4LijCivguYDguKPguLXguKLguKcKK+C5gOC4o+C4teC5iOC4ouC4pwor4LmA4Lij4Li14LmJ4Lii4Lin4Lij4LiBCivguYDguKPguLXguYjguKLguKfguYHguKPguIcKK+C5gOC4o+C4teC4ouC4p+C4q+C4meC4suC4oQor4LmA4Lij4Li34LitCivguYDguKPguLfguYjguK0KK+C5gOC4o+C4t+C5ieC4rQor4LmA4Lij4Li34Lit4LiBCivguYDguKPguLfguK3guIHguKrguKfguJkKK+C5gOC4o+C4t+C4reC4guC4meC4suC4mQor4LmA4Lij4Li34Lit4LiC4Liy4LiU4Lir4Liy4LiH4LmA4Liq4Li34LitCivguYDguKPguLfguK3guIcKK+C5gOC4o+C4t+C5iOC4reC4hwor4LmA4Lij4Li34LmJ4Lit4LiHCivguYDguKPguLfguK3guIfguJnguLLguKEKK+C5gOC4o+C4t+C4reC4h+C4o+C4reC4hwor4LmA4Lij4Li34LmI4Lit4LiH4Lij4Liy4LinCivguYDguKPguLfguK3guIfguYTguKMKK+C5gOC4o+C4t+C5iOC4reC4h+C4quC4seC5ieC4mQor4LmA4Lij4Li34Lit4LiH4Lit4Liz4LiZ4Liy4LiICivguYDguKPguLfguK3guJQKK+C5gOC4o+C4t+C4reC4lOC5hOC4oeC5iQor4LmA4Lij4Li34Lit4LiZCivguYDguKPguLfguYnguK3guJkKK+C5gOC4o+C4t+C4reC4meC5geC4geC5ieC4pwor4LmA4Lij4Li34Lit4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lic4Li54LiBCivguYDguKPguLfguK3guJnguYDguITguKPguLfguYjguK3guIfguKrguLHguJoKK+C5gOC4o+C4t+C4reC4meC4iOC4swor4LmA4Lij4Li34Lit4LiZ4LiV4Liw4LmA4LiB4Li14Lii4LiHCivguYDguKPguLfguK3guJnguJjguLLguJXguLgKK+C5gOC4o+C4t+C4reC4meC5gOC4muC4teC5ieC4ogor4LmA4Lij4Li34Lit4LiZ4Lid4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguYDguKPguLfguK3guJnguYHguJ3guJQKK+C5gOC4o+C4t+C4reC4meC5geC4ngor4LmA4Lij4Li34Lit4LiZ4LmE4LifCivguYDguKPguLfguK3guJnguKLguK3guJQKK+C5gOC4o+C4t+C4reC4meC4q+C4rQor4LmA4Lij4Li34Lit4Lia4Li04LiZCivguYDguKPguLfguK3guJ7guYjguKfguIcKK+C5gOC4o+C4t+C4reC5hOC4nwor4LmA4Lij4Li34LmI4Lit4LiiCivguYDguKPguLfguYnguK3guKIKK+C5gOC4o+C4t+C5iOC4reC4ouC5gOC4iOC4t+C5ieC4reC4ogor4LmA4Lij4Li34LmI4Lit4Lii4LmA4Lib4Li34LmI4Lit4LiiCivguYDguKPguLfguK3guYLguKLguIcKK+C5gOC4o+C4t+C4reC4o+C4mgor4LmA4Lij4Li34LmJ4Lit4Lij4Lix4LiHCivguYDguKPguLfguK3guKXguYjguKHguYPguJnguKvguJnguK3guIcg4LiX4Lit4LiH4LiI4Liw4LmE4Lib4LmE4Lir4LiZCivguYDguKPguLfguK3guKXguYjguKHguYDguKHguLfguYjguK3guIjguK3guJQg4LiV4Liy4Lia4Lit4LiU4LmA4Lih4Li34LmI4Lit4LmB4LiB4LmICivguYDguKPguLfguK3guYHguKvguKfguJQKK+C5gOC4o+C4t+C4reC5g+C4q+C4jeC5iOC4hOC4seC4muC4hOC4peC4reC4hwor4LmB4LijCivguYHguKPguYgKK+C5geC4o+C4gQor4LmB4Lij4LmH4LiB4LmA4LiB4LiVCivguYHguKPguIHguJnguLIKK+C5geC4o+C4geC4meC4suC4guC4p+C4seC4jQor4LmB4Lij4LiHCivguYHguKPguYjguIcKK+C5geC4o+C5ieC4hwor4LmB4Lij4LiH4LiH4Liy4LiZCivguYHguKPguIfguIfguLLguJnguYHguKXguLDguKrguKfguLHguKrguJTguLTguIHguLLguKPguKrguLHguIfguITguKEKK+C5geC4o+C4h+C4h+C4suC4meC4quC4seC4oeC4nuC4seC4meC4mOC5jAor4LmB4Lij4LiH4LiU4Li24LiH4LiU4Li54LiUCivguYHguKPguIfguYDguJfguLXguKLguJkKK+C5geC4o+C4h+C4oeC5ieC4sgor4LmB4Lij4LmI4LiH4Lij4Li04LmJ4LinCivguYHguKPguIfguKrguLnguYjguKjguLnguJnguKLguYzguIHguKXguLLguIcKK+C5geC4o+C4h+C4q+C4meC4teC4qOC4ueC4meC4ouC5jOC4geC4peC4suC4hwor4LmB4Lij4LiH4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguYHguKPguYjguIfguYTguKvguKEKK+C5geC4o+C5gOC4h+C4sgor4LmB4Lij4LiUCivguYHguKPguJTguJXguLHguKfguJzguLnguYkKK+C5geC4o+C4lOC4leC4seC4p+C5gOC4oeC4teC4ogor4LmB4Lij4LmJ4LiZ4LmB4LiE4LmJ4LiZCivguYHguKPguKEKK+C5geC4o+C4oeC4o+C4reC4mQor4LmB4Lij4Lih4Lij4LiyCivguYHguKPguKHguYLguKPguKIKK+C5geC4o+C5ieC4pwor4LmB4Lij4LmA4Liq4LmJ4LiZCivguYHguKPguLAKK+C5guC4owor4LmC4Lij4LmICivguYLguKPguIQKK+C5guC4o+C4hC0KK+C5guC4o+C4hOC4iOC4tOC4lQor4LmC4Lij4LiE4LiI4Li04LiV4LmA4Lig4LiXCivguYLguKPguITguJnguLTguJfguLLguJkKK+C5guC4o+C4hOC4m+C4o+C4sOC4iOC4s+C4leC4seC4pwor4LmC4Lij4LiE4Lib4Lij4Liw4Liq4Liy4LiXCivguYLguKPguITguKPguLDguJrguJrguJvguKPguLDguKrguLLguJcKK+C5guC4o+C4hOC4qOC4tOC4peC4m+C4sAor4LmC4Lij4LiE4Liq4Lih4Lit4LiHCivguYLguKPguITguLIKK+C5guC4o+C4hOC4suC4nuC4ouC4suC4mOC4tAor4LmC4Lij4LiE4Liy4Lie4Liy4LiYCivguYLguKPguIcKK+C5guC4o+C4h+C4hOC4seC4pQor4LmC4Lij4LiH4LiH4Liy4LiZCivguYLguKPguIfguJjguLLguKMKK+C5guC4o+C4h+C4mOC4suC4o+C4hOC4s+C4meC4seC4pQor4LmC4Lij4LiH4LiZ4LiyCivguYLguKPguIfguKPguLHguJrguIjguLPguJnguLMKK+C5guC4o+C4h+C5gOC4o+C4teC4ouC4mQor4LmC4Lij4LiH4LmA4Lij4Li14Lii4LiZ4Lib4Lij4Liw4LiI4LizCivguYLguKPguIfguYDguKPguLXguKLguJnguKrguLLguJjguLTguJUKK+C5guC4o+C4h+C5gOC4o+C4t+C4reC4mQor4LmC4Lij4LiH4LmB4Lij4LihCivguYLguKPguIfguYHguKrguIcKK+C5guC4o+C4iAor4LmC4Lij4LiI4LiZ4LmMCivguYLguKPguYDguJTguLXguKLguKEKK+C5guC4o+C4leC4tQor4LmC4Lij4LiV4Li14Liq4Liy4Lii4LmE4Lir4LihCivguYLguKPguJcKK+C5guC4o+C4l+C4meC4sAor4LmC4Lij4LiYCivguYLguKPguJjguKMKK+C5guC4o+C4m+C4meC4sAor4LmC4Lij4LihCivguYLguKPguKHguKHguLHguKIKK+C5guC4o+C4oeC4o+C4seC4mQor4LmC4Lij4Lih4Lix4LiN4LiICivguYLguKPguKHguLHguJkKK+C5guC4o+C4oeC4seC4meC4hOC4suC4l+C4reC4peC4tOC4gQor4LmC4Lij4LmA4Lih4Lit4Lij4LmMCivguYLguKPguKIKK+C5guC4o+C4ouC4guC4meC4oeC4iOC4teC4mQor4LmC4Lij4Lii4Lij4LiyCivguYLguKPguKLguKvguJnguYnguLIKK+C5guC4o+C5gOC4owor4LmC4Lij4LipCivguYLguKPguKnguJPguLAKK+C5guC4o+C4q+C4tOC4k+C4tQor4LmC4Lij4Lir4Li04LiVCivguYTguKMKK+C5hOC4o+C5iAor4LmE4Lij4LmJCivguYTguKPguJ/guLHguJkKK+C5hOC4o+C4ouC5jAor4LmE4Lij4LmA4Lij4Li34Lit4LiHCivguKQKK+C4pOC4geC4qeC5jAor4Lik4LiB4Lip4LiT4LiwCivguKTguIHguKnguYzguJrguJkKK+C4pOC4geC4qeC5jOC4nuC4suC4meC4suC4l+C4tQor4Lik4LiB4Lip4LmM4Lil4LmI4Liy4LiHCivguKTguITguYDguKfguJcKK+C4pOC4iuC4sgor4Lik4LiK4Liy4LiB4LijCivguKTguIrguLgKK+C4pOC4kwor4Lik4LiU4Li1CivguKTguJTguLXguKLguLIKK+C4pOC4lOC4uQor4Lik4LiU4Li54LiB4Liy4LilCivguKTguJUKK+C4pOC4leC4tOC4ouC4sgor4Lik4LiV4Li4CivguKTguJXguLjguKrguJnguLLguJkKK+C4pOC4l+C4mOC4sgor4Lik4LiX4LiY4Li04LmMCivguKTguJfguLHguKIKK+C4pOC4qeC4oAor4Lik4Lip4Lii4LiyCivguKTguKnguLUKK+C4pOC5hQor4Lik4LmF4LiK4Li4CivguKTguYXguIrguLjguJXguLIKK+C4pOC5heC4lOC4tQor4Lik4LmF4LiX4Lix4LiiCivguKTguYXguYDguKLguLIKK+C4pOC5heC4qeC4tQor4Lik4LmF4Lip4Li14LmB4Lib4Lil4LiH4Liq4Liy4LijCivguKTguYXguKnguLXguJzguKrguKHguYHguKXguYnguKcKK+C4pOC5heC4qeC4teC5gOC4peC4teC5ieC4ouC4h+C4peC4tOC4hwor4Lik4LmF4Liq4Liy4LiiCivguKUKK+C4peC4gQor4Lil4LiB4Liy4LijCivguKXguIHguLjguIgKK+C4peC4hOC4uOC4kQor4Lil4LiE4Li44LisCivguKXguIbguLgKK+C4peC4huC4uOC4iOC4tOC4lQor4Lil4LiG4Li44Lig4Liy4LieCivguKXguIbguLjguYLguKDguIrguJnguYwKK+C4peC4hwor4Lil4LmI4LiHCivguKXguIfguIHguKXguK3guJkKK+C4peC4h+C4geC4sgor4Lil4LiH4LiC4Lix4LiZCivguKXguIfguILguYjguLLguKcKK+C4peC4h+C5geC4guC4gQor4Lil4LiH4LiE4LitCivguKXguIfguYDguIfguLTguJkKK+C4peC4h+C4iuC4t+C5iOC4rQor4Lil4LiH4LmB4LiU4LiHCivguKXguIfguJXguLHguKcKK+C4peC4h+C4l+C4reC4hwor4Lil4LiH4LiX4LmJ4Lit4LiHCivguKXguIfguJfguYjguLIKK+C4peC4h+C4l+C5ieC4suC4ogor4Lil4LiH4LiX4Li44LiZCivguKXguIfguYLguJfguKkKK+C4peC4h+C4meC4sgor4Lil4LiH4LmA4LiZ4Li34LmJ4Lit4LmA4Lir4LmH4LiZ4LiU4LmJ4Lin4LiiCivguKXguIfguYLguJrguKrguJbguYwKK+C4peC4h+C5geC4m+C5ieC4hwor4Lil4LiH4Lic4Li1CivguKXguIfguJ3guLHguIEKK+C4peC4h+C4nuC4o+C4sOC4muC4seC4h+C4hOC4mQor4Lil4LiH4Lie4Li34LmJ4LiZCivguKXguIfguJ7guLjguIcKK+C4peC4h+C4oeC4teC4lAor4Lil4LiH4Lih4Li34LitCivguKXguIfguKLguLIKK+C4peC4h+C4o+C4reC4ouC4geC4seC4mQor4Lil4LiH4Lij4Lix4LiBCivguKXguIfguKPguLLguIEKK+C4peC4h+C5geC4o+C4hwor4Lil4LiH4LmC4Lij4LiHCivguKXguYnguIfguYDguKXguYnguIcKK+C4peC4h+C4quC4o+C4hwor4Lil4LiH4Lir4LiN4LmJ4Liy4LiK4LmJ4Liy4LiHCivguKXguIfguKvguLTguJkKK+C4peC4h+C4reC4suC4iuC4jeC4sgor4Lil4LiH4Lit4Liy4LiN4LiyCivguKXguIfguK3guLjguYLguJrguKrguJYKK+C4peC4h+C5gOC4reC4ogor4Lil4LiUCivguKXguJTguYDguILguLfguYjguK3guJkKK+C4peC4lOC4o+C4suC4p+C4suC4qOC4reC4gQor4Lil4LiU4Lil4LiwCivguKXguJTguYDguKXguLXguYnguKLguKcKK+C4peC4lOC5gOC4peC4teC5ieC4ouC4p+C5gOC4geC4teC5ieC4ouC4p+C4nuC4sgor4Lil4LiU4Lir4Lii4LmI4Lit4LiZCivguKXguJTguKvguKXguLHguYjguJkKK+C4peC4lOC4sgor4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMCivguKXguJkKK+C4peC5iOC4mQor4Lil4LmJ4LiZCivguKXguYnguJnguYDguIHguKXguYnguLLguKXguYnguJnguIHguKPguLDguKvguKHguYjguK3guKEKK+C4peC4meC4hOC4p+C4seC4mQor4Lil4LmJ4LiZ4Lie4LmJ4LiZCivguKXguJnguKXguLLguJkKK+C4peC5ieC4meC4q+C4peC4suC4oQor4Lil4LiaCivguKXguJrguKEKK+C4peC4muC4o+C4reC4ogor4Lil4Lia4Lil4LmJ4Liy4LiHCivguKXguJrguYDguKXguLfguK3guJkKK+C4peC4muC5guC4peC4gQor4Lil4Lia4Lio4Lix4LiB4Lij4Liy4LiKCivguKXguJrguKvguKXguLnguYgKK+C4peC4muC5gOC4q+C4peC4teC5iOC4ouC4oQor4Lil4Lia4Lit4LiHCivguKXguJvguIEKK+C4peC4m+C4mQor4Lil4LieCivguKXguJ7guLjguIoKK+C4peC4oQor4Lil4Lih4LmGCivguKXguYjguKEKK+C4peC5ieC4oQor4Lil4Lih4LiB4Lij4LiUCivguKXguKHguILguLbguYnguJkKK+C4peC5ieC4oeC4hOC4p+C5iOC4swor4Lil4Lih4LiE4LmJ4LiyCivguKXguKHguIfguKfguIcKK+C4peC5iOC4oeC4iOC4oQor4Lil4Lih4LiI4Lix4LiaCivguKXguKHguYHguJTguIcKK+C4peC4oeC4l+C4p+C4meC4peC4oeC4hOC5ieC4sgor4Lil4Lih4LiX4Liw4LmA4LilCivguKXguYnguKHguJfguLHguYnguIfguKLguLfguJkKK+C4peC4oeC4muC4gQor4Lil4Lih4Lia4LmJ4Liy4Lir4Lih4Li5CivguKXguKHguJvguKPguLLguJMKK+C4peC4oeC4m+C4suC4gQor4Lil4Lih4Lie4Lix4LiU4LiK4Liy4Lii4LmA4LiC4LiyCivguKXguKHguJ7guLHguJTguKvguKXguKfguIcKK+C4peC4oeC4nuC4tOC4qQor4Lil4Lih4LmA4Lie4Lil4Lih4Lie4Lix4LiUCivguKXguYjguKHguJ/guYnguLIKK+C4peC4oeC5hOC4oeC5iOC4lOC4tQor4Lil4Lih4Lil4LmI4Lit4LiHCivguKXguYnguKHguKXguLDguKXguLLguKIKK+C4peC5ieC4oeC4peC4uOC4gQor4Lil4LmJ4Lih4Lil4Li44LiB4LiE4Lil4Li44LiB4LiE4Lil4Liy4LiZCivguKXguYnguKHguYDguKXguLTguIEKK+C4peC4oeC5geC4peC5ieC4hwor4Lil4Lih4LmGIOC5geC4peC5ieC4h+C5hgor4Lil4Lih4Lin4LmI4Liy4LinCivguKXguKHguYDguKrguLXguKIKK+C4peC5ieC4oeC4q+C4oeC4reC4meC4meC4reC4meC5gOC4quC4t+C5iOC4rQor4Lil4Lih4Liy4LiUCivguKXguKPguKPguKXguLjguIcKK+C4peC4peC4meC4sgor4Lil4Lil4Liy4LiPCivguKXguKXguLTguJUKK+C4peC4p+C4gQor4Lil4Lin4LiHCivguKXguYjguKfguIcKK+C4peC5ieC4p+C4hwor4Lil4LmJ4Lin4LiH4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguKXguYjguKfguIfguYDguIHguLTguJkKK+C4peC5iOC4p+C4h+C4guC4t+C5iOC4rQor4Lil4Lin4LiH4LiE4LmMCivguKXguYnguKfguIfguITguK3guIfguLnguYDguKvguYjguLIKK+C4peC5iOC4p+C4h+C4hOC4swor4Lil4LmJ4Lin4LiH4LiV4Lix4LiaCivguKXguKfguIfguJXguLIKK+C4peC5iOC4p+C4h+C4m+C4o+C4sOC5gOC4p+C4k+C4tQor4Lil4LmI4Lin4LiH4LmB4LibCivguKXguYjguKfguIfguJ7guYnguJkKK+C4peC5ieC4p+C4h+C4oeC4t+C4rQor4Lil4LmI4Lin4LiH4Lij4Li54LmJCivguKXguYjguKfguIfguKXguLHguJoKK+C4peC5iOC4p+C4h+C4peC5ieC4swor4Lil4LmI4Lin4LiH4LmA4Lil4LiiCivguKXguKfguIfguYDguKXguYnguLIKK+C4peC5iOC4p+C4h+C4p+C5iOC4sgor4Lil4LmI4Lin4LiH4LmA4Lin4Lil4LiyCivguKXguYnguKfguIfguYTguKrguYkKK+C4peC5iOC4p+C4h+C4q+C4meC5ieC4sgor4Lil4Lin4LiT4LiwCivguKXguKfguJQKK+C4peC4p+C4lOC4peC4suC4ogor4Lil4Lin4LiU4Liq4Lib4Lij4Li04LiHCivguKXguKfguJTguKvguJnguLHguIcKK+C4peC4p+C4lOC4q+C4meC4suC4oQor4Lil4LmJ4Lin4LiZCivguKXguYnguKfguJnguYYKK+C4peC4p+C4meC4peC4suC4oQor4Lil4Lin4LiZ4LiwCivguKXguYjguKfguKEKK+C4peC4p+C4sAor4Lil4Lin4Li04LiV4LijCivguKXguKvguLgKK+C4peC4q+C4uOC4gS0KK+C4peC4q+C4uOC4geC4sAor4Lil4Lir4Li44LiB4Liy4Lia4Lix4LiV4Li0CivguKXguKvguLjguYLguJfguKkKK+C4peC5iOC4rQor4Lil4LmJ4LitCivguKXguK3guIEKK+C4peC5h+C4reC4geC5gOC4geC4lQor4Lil4Lit4LiB4LiE4Lij4Liy4LiaCivguKXguK3guIHguJfguYnguK3guIfguKPguYjguK3guIcKK+C4peC4reC4geC5gOC4peC4mQor4Lil4Lit4LiB4LmB4Lil4LiBCivguKXguK3guIHguLLguKPguLTguJfguLbguKEKK+C4peC4reC4hwor4Lil4LmI4Lit4LiHCivguKXguK3guIfguIHguK3guIcKK+C4peC5iOC4reC4h+C5geC4geC5iOC4hwor4Lil4LmI4Lit4LiH4LiI4Lin4LiZCivguKXguK3guIfguIjguLTguIjguLnguJQKK+C4peC4reC4h+C5g+C4iAor4Lil4LmI4Lit4LiH4LiK4Liy4LiUCivguKXguK3guIfguYDguIrguLTguIcKK+C4peC4reC4h+C4lOC4tQor4Lil4LmI4Lit4LiH4LiW4Li44LiZCivguKXguK3guIfguJjguKPguKPguKHguYwKK+C4peC4reC4h+C5g+C4mQor4Lil4Lit4LiH4LmE4LiZCivguKXguK3guIfguKDguLnguKHguLQKK+C4peC5iOC4reC4h+C5geC4oeC4pwor4Lil4LmI4Lit4LiH4Lir4LiZCivguKXguK3guJQKK+C4peC4reC4lOC4iuC5iOC4reC4hwor4Lil4Lit4LiZCivguKXguYjguK3guJkKK+C4peC5iOC4reC4meC5geC4geC5iOC4mQor4Lil4LmI4Lit4LiZ4LiI4LmJ4Lit4LiZCivguKXguK3guJnguJfguK3guIcKK+C4peC4reC4mgor4Lil4Lit4Lia4LiB4Lix4LiUCivguKXguK3guKEKK+C4peC5ieC4reC4oQor4Lil4Lit4Lih4LiK4Lit4LihCivguKXguYnguK3guKHguJvguKPguKfguJQKK+C4peC4reC4oeC4nuC4reC4gQor4Lil4LmJ4Lit4Lih4Lin4LiHCivguKXguK3guKIKK+C4peC4reC4ouC5hgor4Lil4LmI4Lit4Lii4LmGCivguKXguK3guKLguIHguKPguLDguJfguIcKK+C4peC4reC4ouC5geC4geC5ieC4pwor4Lil4Lit4Lii4LiE4LitCivguKXguK3guKLguIrguYnguK3guJkKK+C4peC4reC4ouC4iuC4suC4ogor4Lil4Lit4Lii4LiU4Lit4LiBCivguKXguK3guKLguJXguLHguKcKK+C4peC4reC4ouC4meC4p+C4pQor4Lil4Lit4Lii4Lia4Liy4LibCivguKXguK3guKLguYHguJ4KK+C4peC4reC4ouC4n+C5ieC4sgor4Lil4Lit4Lii4LmA4Lih4LiGCivguKXguK3guKLguKXguLMKK+C4peC4reC4ouC4q+C4meC5ieC4sgor4Lil4LmI4Lit4Lil4Lin4LiHCivguKXguYnguK3guYDguKXguLXguKLguJkKK+C4peC5ieC4reC5gOC4peC4t+C5iOC4reC4mQor4Lil4LmI4Lit4LmB4Lil4LmICivguKXguK3guKfguYzguYDguKPguJnguYDguIvguLXguKLguKEKK+C4peC5iOC4reC4q+C4peC4reC4gQor4Lil4LmJ4Lit4Lir4Lil4Lit4LiBCivguKXguYjguK3guYHguKvguKXguKEKK+C4peC4reC4rQor4Lil4LiwCivguKXguYjguLAKK+C4peC4sOC4geC4pQor4Lil4Liw4LiB4Li54Lih4Liw4LiZ4Li04LiqCivguKXguLDguILguLHguJTguKXguLDguILguLfguJkKK+C4peC4sOC4hOC4owor4Lil4Liw4LiE4Lij4Lii4LiBCivguKXguLDguITguLQKK+C4peC4sOC4hOC4tuC4gQor4Lil4Liw4LiH4Liy4LiUCivguKXguLDguIfguLTguJQKK+C4peC4sOC4leC4tOC4iOC4ueC4lAor4Lil4Liw4LiX4Li04LmJ4LiHCivguKXguLDguJrguKEKK+C4peC4sOC4muC4reC4hwor4Lil4Liw4Lia4Lit4LiH4LmE4LifCivguKXguLDguJrguK3guIfguKPguLLguKvguLkKK+C4peC4sOC4muC4seC4lAor4Lil4Liw4Lia4Li34LitCivguKXguLDguYDguJrguYfguIcKK+C4peC4sOC5guC4muC4oQor4Lil4Liw4Lih4LmI4Lit4LihCivguKXguLDguKHguLHguYjguIcKK+C4peC4sOC4oeC4sgor4Lil4Liw4Lih4Liy4LiZCivguKXguLDguKHguYnguLLguKIKK+C4peC4sOC4oeC4uAor4Lil4Liw4Lih4Li44LiUCivguKXguLDguKHguLjguJkKK+C4peC4sOC4oeC4uOC4meC4peC4sOC5hOC4oQor4Lil4Liw4LmA4Lih4LmH4LiUCivguKXguLDguYDguKHguK0KK+C4peC4sOC5gOC4oeC4suC4sAor4Lil4Liw4LmA4Lih4Li04LiUCivguKXguLDguYDguKHguLTguJTguKXguLTguILguKrguLTguJfguJjguLTguYwKK+C4peC4sOC5gOC4oeC4tOC4mQor4Lil4Liw4LmA4Lih4Li14Lii4LiUCivguKXguLDguYDguKHguLXguKLguJoKK+C4peC4sOC5geC4oeC4sAor4Lil4Liw4LmC4Lih4LiBCivguKXguLDguYLguKHguJoKK+C4peC4sOC5hOC4oQor4Lil4Liw4Lij4Li1CivguKXguLDguKXguJQKK+C4peC4sOC4peC4meC4peC4sOC4peC4suC4mQor4Lil4Liw4Lil4Lih4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguKfguKIKK+C4peC4sOC4peC4reC4gQor4Lil4Liw4Lil4Lit4Lia4Lil4Liw4LmA4Lil4LmJ4LiyCivguKXguLDguKXguLHguIcKK+C4peC4sOC4peC4seC4lAor4Lil4Liw4Lil4LmJ4LiyCivguKXguLDguKXguLLguJkKK+C4peC4sOC4peC4suC4muC4peC4sOC4peC5ieC4p+C4hwor4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguYnguLLguKXguLDguKXguLHguIcKK+C4peC4sOC4peC5ieC4suC4pwor4Lil4Liw4Lil4LmI4Liz4Lil4Liw4Lil4Lix4LiBCivguKXguLDguKXguLTguJoKK+C4peC4sOC4peC4uOC4hwor4Lil4Liw4Lil4Li44LihCivguKXguLDguYDguKXguIcKK+C4peC4sOC5gOC4peC4h+C4guC4meC4oeC5gOC4muC4t+C5ieC4reC4h+C4lOC5ieC4p+C4ouC4m+C4suC4gQor4Lil4Liw4LmA4Lil4LiiCivguKXguLDguYDguKXguYnguLIKK+C4peC4sOC5gOC4peC4suC4sAor4Lil4Liw4LmA4Lil4Liy4Liw4Lil4Liw4Lil4Lit4LiHCivguKXguLDguYDguKXguLTguIcKK+C4peC4sOC5gOC4peC4teC4ouC4lAor4Lil4Liw4LmA4Lil4Li14Lii4LiaCivguKXguLDguYDguKXguLfguK3guIEKK+C4peC4sOC5hOC4peC5iQor4Lil4Liw4Lin4LilCivguKXguLDguKfguYnguK0KK+C4peC4sOC4p+C5ieC4sgor4Lil4Liw4Lin4Liy4LiHCivguKXguLDguKfguLLguJQKK+C4peC4sOC5gOC4p+C4hwor4Lil4Liw4LmA4Lin4LmJ4LiZCivguKXguLDguYHguKfguIEKK+C4peC4sOC5guC4p+C5iQor4Lil4Liw4Lir4Lih4Liy4LiUCivguKXguLDguKvguKHguLLguJTguI3guLLguJnguLLguIvguLDguK7guYwKK+C4peC4sOC4q+C4peC4seC4lAor4Lil4Liw4Lir4LmJ4Lit4LiiCivguKXguLDguKvguLLguJkKK+C4peC4sOC4q+C4uOC5iOC4hwor4Lil4Liw4LmA4Lir4LiiCivguKXguLDguYDguKvguLXguYjguKIKK+C4peC4sOC4reC4h+C4peC4sOC4oeC4seC5iOC4hwor4Lil4Liw4Lit4Lit4LiHCivguKXguLDguK3guLLguKIKK+C4peC4sOC5gOC4reC4teC4ouC4lAor4Lil4Liw4LmA4Lit4Li14Lii4LiU4Lil4Lit4LitCivguKXguLDguYHguK3guJkKK+C4peC4seC4gQor4Lil4Lix4LiB4LmE4LiB4LmICivguKXguLHguIHguILguJPguLAKK+C4peC4seC4geC4guC4k+C4sgor4Lil4Lix4LiB4LiC4LiwCivguKXguLHguIHguILguLUKK+C4peC4seC4geC5gOC4hOC5ieC4sgor4Lil4Lix4LiB4LiI4Lix4LmI4LiZCivguKXguLHguIHguJvguLTguJTguKXguLHguIHguYDguJvguLTguJQKK+C4peC4seC4geC4nuC4sgor4Lil4Lix4LiB4LmA4Lie4LioCivguKXguLHguIHguKLguLTguYnguKEKK+C4peC4seC4geC4peC4reC4mgor4Lil4Lix4LiB4Lil4Lix4LmI4LiZCivguKXguLHguIHguKXguLLguKIKK+C4peC4seC4geC5gOC4peC4teC4ouC4oQor4Lil4Lix4LiB4Lio4LieCivguKXguLHguIHguKnguJMtCivguKXguLHguIHguKnguJPguJnguLLguKEKK+C4peC4seC4geC4qeC4k+C4sAor4Lil4Lix4LiB4Lip4LiT4Liy4LiB4Liy4LijCivguKXguLHguIHguKnguKHguJPguYwKK+C4peC4seC4geC4qeC4oeC4suC4k+C4sgor4Lil4Lix4LiB4Lip4Lih4Li1CivguKXguLHguIHguKnguLAKK+C4peC4seC4geC4quC4o+C5ieC4reC4ogor4Lil4Lix4LiB4Liq4Li1CivguKXguLHguIHguKvguKXguLHguJoKK+C4peC4seC4hOC4hOC4sAor4Lil4Lix4LiE4LiZLQor4Lil4Lix4LiE4LiZ4LmMCivguKXguLHguITguJnguLIKK+C4peC4seC4hwor4Lil4Lix4LmI4LiHCivguKXguLHguIfguIHguLIKK+C4peC4seC4h+C4hOC4tAor4Lil4Lix4LiH4LiE4Li1CivguKXguLHguIfguJbguLbguIcKK+C4peC4seC4h+C4peC4reC4hwor4Lil4Lix4LiH4LmA4LilCivguKXguLHguIfguKrguLLguJQKK+C4peC4seC4iuC4iuC4sgor4Lil4Lix4LiK4LiK4Li1CivguKXguLHguI3guIjguYwKK+C4peC4seC4jeC4iOC4geC4owor4Lil4Lix4LiN4LiJCivguKXguLHguI3guInguIHguKMKK+C4peC4seC4jeC4ieC4meC5jAor4Lil4Lix4LiQ4Li0CivguKXguLHguJDguLTguIHguLIKK+C4peC4seC4lAor4Lil4Lix4LiU4LiZ4Li04LmJ4Lin4Lih4Li34LitCivguKXguLHguJTguYDguJnguLfguYnguK0KK+C4peC4seC4lOC5gOC4peC4suC4sAor4Lil4Lix4LiU4LmB4Lil4LiHCivguKXguLHguJTguKfguIfguIjguKMKK+C4peC4seC4lOC4sgor4Lil4Lix4LiX4LiY4LmMCivguKXguLHguJfguJjguLQKK+C4peC4seC4mQor4Lil4Lix4LmI4LiZCivguKXguLHguYjguJnguIHguLjguI3guYHguIgKK+C4peC4seC5iOC4meC5hOC4gQor4Lil4Lix4LmI4LiZ4LiG4LmJ4Lit4LiHCivguKXguLHguYjguJnguJTguLLguKUKK+C4peC4seC4meC5gOC4lQor4Lil4Lix4LiZ4LmA4LiV4LiyCivguKXguLHguJnguYTguJUKK+C4peC4seC5iOC4meC4luC4seC4mQor4Lil4Lix4LmI4LiZ4LiX4LihCivguKXguLHguJnguJfguKfguKIKK+C4peC4seC4meC5guC4l+C4oQor4Lil4Lix4LmI4LiZ4LiZ4LiBCivguKXguLHguYjguJnguJvguLLguIEKK+C4peC4seC5iOC4meC4p+C4suC4iOC4sgor4Lil4Lix4LiaCivguKXguLHguJrguJXguLIKK+C4peC4seC4muC4m+C4suC4gQor4Lil4Lix4Lia4Lid4Li14Lib4Liy4LiBCivguKXguLHguJrguKXguKHguITguKHguYPguJkKK+C4peC4seC4muC4peC5iOC4rQor4Lil4Lix4Lia4LmGIOC4peC5iOC4reC5hgor4Lil4Lix4Lia4Lil4Li14LmJCivguKXguLHguJrguYHguKUKK+C4peC4seC4muC4quC4oeC4reC4hwor4Lil4Lix4Lia4Lir4Lil4Lix4LiHCivguKXguLHguJrguKvguLkKK+C4peC4seC4nuC4mOC5jAor4Lil4Lix4Lie4LiY4Li0CivguKXguLHguKAKK+C4peC4seC4oOC4meC4sAor4Lil4Lix4Lig4Lii4LmMCivguKXguLHguKHguJ7guYwKK+C4peC4seC4ogor4Lil4Lix4LiiLQor4Lil4Lix4Lii4LiB4Liy4LilCivguKXguLHguKLguITguJUKK+C4peC4sgor4Lil4LmI4LiyCivguKXguYnguLIKK+C4peC4suC4gQor4Lil4Liy4LiB4LiC4LmJ4Liy4LiHCivguKXguLLguIHguKnguLIKK+C4peC4suC4geC5gOC4quC5ieC4mQor4Lil4Liy4LiB4Lir4LiZ4Liy4Lih4LiI4Li44LiB4LiK4LmI4Lit4LiHCivguKXguLLguILguLIKK+C4peC4suC4guC5ieC4suC4p+C4nuC4o+C4sAor4Lil4Liy4LiHCivguKXguYjguLLguIcKK+C4peC5ieC4suC4hwor4Lil4Liy4LiH4LiE4Lix4LilCivguKXguYnguLLguIfguYHguITguYnguJkKK+C4peC4suC4h+C4h+C4tOC4lAor4Lil4LmJ4Liy4LiH4LiX4LmJ4Lit4LiHCivguKXguLLguIfguJfguLUKK+C4peC4suC4h+C5gOC4meC4t+C5ieC4reC4iuC4reC4muC4peC4suC4h+C4ouC4sgor4Lil4LmJ4Liy4LiH4Lib4Liy4LiBCivguKXguYnguLLguIfguJvguYjguLLguIrguYnguLIKK+C4peC5ieC4suC4h+C4nOC4peC4suC4jQor4Lil4LmJ4Liy4LiH4LmE4Lie4LmICivguKXguYnguLLguIfguKHguLfguK0KK+C4peC4suC4h+C4peC4tOC4hwor4Lil4LmJ4Liy4LiH4LmC4Lil4LiBCivguKXguYnguLLguIfguKrguKHguK3guIcKK+C4peC4suC4h+C4quC4suC4lAor4Lil4LmJ4Liy4LiH4Lit4Liy4LiiCivguKXguLLguIfguLLguJQKK+C4peC5ieC4suC4h+C4suC4lAor4Lil4Liy4LmA4LiH4LmH4LiUCivguKXguLLguIoKK+C4peC4suC4iuC4sgor4Lil4Liy4LiNCivguKXguLLguI3guJfguLHguIEKK+C4peC4suC4lAor4Lil4Liy4LiU4LmA4LiC4LiyCivguKXguLLguJTguJXguKPguLDguYDguKfguJkKK+C4peC4suC4lOC4l+C4p+C4teC4mwor4Lil4Liy4LiU4LmA4LiXCivguKXguLLguJTguJ7guKPguLDguJrguLLguJcKK+C4peC4suC4lOC4ouC4suC4hwor4Lil4Liy4LiU4LmA4Lil4LiyCivguKXguYnguLLguJXguYnguLIKK+C4peC4suC4leC4suC4ogor4Lil4LmI4Liy4LmA4LiV4Li14Lii4LiHCivguKXguYnguLLguYDguJXguLXguKLguIcKK+C4peC4suC4mQor4Lil4LmI4Liy4LiZCivguKXguYnguLLguJkKK+C4peC4suC4mgor4Lil4Liy4LibCivguKXguLLguJ7guKPguKPguKnguLIKK+C4peC4suC4nuC4reC4mQor4Lil4Liy4Lie4Li4CivguKXguLLguJ7guLjguIoKK+C4peC4suC5gOC4ngor4Lil4Liy4LmA4Lie4LiyCivguKXguLLguKAKK+C4peC4suC4oOC4oeC4tOC4hOC4p+C4o+C5hOC4lOC5iQor4Lil4Liy4LihCivguKXguYjguLLguKEKK+C4peC4suC4oeC4gQor4Lil4Liy4Lih4Lib4Liy4LihCivguKXguLLguKHguKXguKfguJkKK+C4peC4suC4ogor4Lil4LmJ4Liy4LiiCivguKXguLLguKLguILguLHguJQKK+C4peC4suC4ouC4hOC4o+C4suC4oQor4Lil4Liy4Lii4LiV4LiyCivguKXguLLguKLguYDguJfguKgKK+C4peC4suC4ouC5geC4l+C4hwor4Lil4Liy4Lii4LiZ4LmJ4LizCivguKXguLLguKLguJnguYnguLPguJfguK3guIcKK+C4peC4suC4ouC4nuC4o+C4sOC4q+C4seC4leC4luC5jAor4Lil4Liy4Lii4Lie4Liy4LiU4LiB4Lil4Lit4LiZCivguKXguLLguKLguKHguLfguK0KK+C4peC4suC4ouC4oeC4t+C4reC4iuC4t+C5iOC4rQor4Lil4Liy4Lii4LmE4Lih4LmJCivguKXguLLguKLguKXguLHguIHguKnguJPguYwKK+C4peC4suC4ouC4quC4rQor4Lil4Liy4Lii4Liq4Lit4LiHCivguKXguLLguKLguKrguLLguJoKK+C4peC4suC4ouC4quC4t+C4rQor4Lil4Liy4Lii4Lit4Lii4LmI4Liy4LiHCivguKXguLLguKLguK7guYjguK0KK+C4peC4suC5guC4o+C4hwor4Lil4Liy4Lil4LiZ4LiwCivguKXguLLguKXguKoKK+C4peC4suC4peC4sgor4Lil4Liy4LmC4Lil4LiBCivguKXguLLguKcKK+C4peC4suC4p+C4gQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKXguLLguKfguLIKK+C4peC4suC4quC4meC4sAor4Lil4LmJ4Liy4Liq4Lih4Lix4LiiCivguKXguLLguKrguLTguIHguILguLIKK+C4peC5ieC4suC4q+C4peC4seC4hwor4Lil4LizCivguKXguYjguLMKK+C4peC5ieC4swor4Lil4Liz4LiB4Lij4Liw4LmC4LiU4LiHCivguKXguLPguIHguKXguYnguK3guIcKK+C4peC4s+C5gOC4guC5h+C4jQor4Lil4Liz4LmB4LiCCivguKXguLPguYHguILguYnguIcKK+C4peC4s+C5gOC4hOC5h+C4jQor4Lil4Liz4LmA4LiE4Li34Lit4LiHCivguKXguLPguIfguLLguJQKK+C4peC4s+C5gOC4iOC4teC4ouC4gQor4Lil4Liz4LmA4LiI4Li14Lii4LiB4Lir4LiZ4Li5CivguKXguLPguJTguKfguJkKK+C4peC4s+C4lOC4seC4mgor4Lil4Liz4LiV4Lix4LiUCivguKXguLPguJjguLLguKMKK+C4peC4s+C4meC4seC4gQor4Lil4Liz4LiZ4LizCivguKXguLPguYDguJnguLIKK+C4peC4s+C4muC4reC4hwor4Lil4Liz4Lia4Liy4LiBCivguKXguLPguJrguLgKK+C4peC4s+C4m+C4swor4Lil4Liz4Lie4Lin4LiZCivguKXguLPguJ7guK3guIcKK+C4peC4s+C4nuC4seC4hwor4Lil4Liz4Lie4Li5CivguKXguLPguJ7guLnguYjguIHguLHguJkKK+C4peC4s+C5gOC4nuC5h+C4jQor4Lil4Liz4LmA4Lie4LiyCivguKXguLPguYHguJ7guIcKK+C4peC4s+C5geC4nuC4mQor4Lil4Liz4LmC4Lie4LiHCivguKXguLPguYTguJ7guYgKK+C4peC4s+C4oOC4uOC4guC4seC4mQor4Lil4Liz4Lih4Liw4Lil4Lit4LiBCivguKXguLPguKHguLLguJQKK+C4peC4s+C4oeC4suC4mgor4Lil4Liz4LmA4Lih4Liy4LiwCivguKXguLPguYDguKHguLXguKLguJoKK+C4peC4s+C4ouC4reC4hwor4Lil4Liz4Lii4LiyCivguKXguLPguYTguKIKK+C4peC4s+C4peC4reC4hwor4Lil4LmI4Liz4Lil4LiyCivguKXguLPguKXguLLguJoKK+C4peC4s+C4peC4swor4Lil4Liz4Lil4Li24LiBCivguKXguLPguYDguKXguLLguLAKK+C4peC4s+C5gOC4peC4tOC4gQor4Lil4LmJ4Liz4LmA4Lil4Li04LioCivguKXguLPguYDguKXguLXguKLguIcKK+C4peC4s+C5gOC4peC4teC4ouC4mgor4Lil4Liz4LmA4Lin4Li14Lii4LiHCivguKXguLPguYDguKfguLXguKLguJkKK+C4peC5iOC4s+C4quC4seC4mQor4Lil4Liz4LmA4Liq4LiyCivguKXguLPguYTguKrguYkKK+C4peC4s+C4q+C4meC4seC4gQor4Lil4LmJ4Liz4Lir4LiZ4LmJ4LiyCivguKXguLPguKvguYnguKfguKIKK+C4peC4s+C4q+C4seC4geC4peC4s+C5guC4hOC5iOC4mQor4Lil4Liz4Lit4Li44LiUCivguKXguLPguYDguK3guLXguKLguIEKK+C4peC4s+C5gOC4reC4teC4ouC4hwor4Lil4Liz4LmC4Lit4LiHCivguKXguLQKK+C4peC4tOC4geC4guC4sgor4Lil4Li04LiB4LmE4LiZ4LiV4LmMCivguKXguLTguIHguKnguLIKK+C4peC4tOC4geC4uOC4iAor4Lil4Li04LmA4LiBCivguKXguLTguILguJnguLAKK+C4peC4tOC4guC4quC4tOC4l+C4mOC4tOC5jAor4Lil4Li04LiC4Li04LiVCivguKXguLTguIcKK+C4peC4tOC4h+C4hOC5jAor4Lil4Li04LiH4LiI4Li44LmI4LiZCivguKXguLTguIfguIrguLTguIfguKvguKXguLHguIEKK+C4peC4tOC4h+C4leC4geC4leC5ieC4meC5hOC4oeC5iQor4Lil4Li04LiH4Lil4LihCivguKXguLTguIfguYLguKXguJQKK+C4peC4tOC4h+C4q+C4peC4reC4geC5gOC4iOC5ieC4sgor4Lil4Li04LiUCivguKXguLTguJTguJXguLXguJnguJvguLkKK+C4peC4tOC4lOC4o+C4reC4mQor4Lil4Li04LiVCivguKXguLTguJXguKHguLHguKoKK+C4peC4tOC4leC4owor4Lil4Li04LmA4LiX4Li14Lii4LihCivguKXguLTguYjguJkKK+C4peC4tOC5ieC4mQor4Lil4Li04LmJ4LiZ4LiB4Lij4Liw4LiU4LmJ4Liy4LiH4LiE4Liy4LiH4LmB4LiC4LmH4LiHCivguKXguLTguYnguJnguIHguKPguLDguJrguLfguK0KK+C4peC4tOC4meC5guC4geC4o+C4ogor4Lil4Li04LmJ4LiZ4LmE4LiB4LmICivguKXguLTguYnguJnguITguKfguLLguKIKK+C4peC4tOC5ieC4meC4h+C4ueC5gOC4q+C5iOC4sgor4Lil4Li04LiZ4LiI4LiHCivguKXguLTguYnguJnguIjguLDguIHguKfguJQKK+C4peC4tOC5ieC4meC4iOC4teC5iAor4Lil4Li04LmJ4LiZ4LiK4Lix4LiBCivguKXguLTguYjguJnguJXguYnguJkKK+C4peC4tOC5ieC4meC4leC4p+C4seC4lOC4luC4tuC4h+C4q+C4uQor4Lil4Li04LmJ4LiZ4LiV4Liw4LiB4Lin4LiUCivguKXguLTguYnguJnguJfguK3guIcKK+C4peC4tOC5iOC4meC4l+C4sOC5gOC4pQor4Lil4Li04LmJ4LiZ4LiX4Liw4LmA4LilCivguKXguLTguYnguJnguJvguLXguYgKK+C4peC4tOC5ieC4meC4oeC4seC4h+C4geC4owor4Lil4Li04LmJ4LiZ4LmE4Lih4LmI4Lih4Li14LiB4Lij4Liw4LiU4Li54LiBCivguKXguLTguYnguJnguKXguKEKK+C4peC4tOC5ieC4meC4peC4seC4h+C4geC4sgor4Lil4Li04LiZ4Lil4LiyCivguKXguLTguJnguKXguLLguIHguKPguLDguJfguLjguYjguKEKK+C4peC4tOC4meC4peC4suC4geC4o+C4sOC4muC4teC5iAor4Lil4Li04LmJ4LiZ4Lil4Liy4LiiCivguKXguLTguJnguKrguLXguJQKK+C4peC4tOC5ieC4meC5gOC4quC4t+C4rQor4Lil4Li04LmJ4LiZ4Lir4Lih4LiyCivguKXguLTguYjguJnguK7guLfguYnguK0KK+C4peC4tOC4meC4tOC4mQor4Lil4Li04LiaCivguKXguLTguJrguKXguLHguJoKK+C4peC4tOC4muC4peC4tOC5iOC4pwor4Lil4Li04Lib4LiU4LiyCivguKXguLTguJvguJXguYwKK+C4peC4tOC4m+C4quC4leC4tOC4gQor4Lil4Li04Lib4Li0CivguKXguLTguJvguLTguIHguKMKK+C4peC4tOC4m+C4tOC4geC4suC4owor4Lil4Li04Lif4LiV4LmMCivguKXguLTguYDguKDguLIKK+C4peC4tOC5iOC4oQor4Lil4Li04LmJ4LihCivguKXguLTguKHguJvguYwKK+C4peC4tOC4oeC4m+C4meC4sAor4Lil4Li04Lil4Li04LiVCivguKXguLTguKcKK+C4peC4tOC5iOC4pwor4Lil4Li04Liq4LiHCivguKXguLUKK+C4peC4teC5iAor4Lil4Li14LmJCivguKXguLXguIvguK0KK+C4peC4teC4mgor4Lil4Li14LmJ4Lil4Lix4LiaCivguKXguLXguKXguLIKK+C4peC4teC4peC4suC4geC4o+C4sOC4l+C4uOC5iOC4oQor4Lil4Li14Lil4Liy4LioCivguKXguLXguKzguKvguLIKK+C4peC4tuC4gQor4Lil4Li24LiB4LiL4Li24LmJ4LiHCivguKXguLbguIHguKXguLHguJoKK+C4peC4tuC4geC4peC5ieC4swor4Lil4Li24LiH4LiE4LmMCivguKXguLbguIfguITguYzguJnguLLguKLguJ7guKPguLLguJkKK+C4peC4t+C4lAor4Lil4Li34LmI4LiZCivguKXguLfguYnguJkKK+C4peC4t+C4mgor4Lil4Li34LihCivguKXguLfguKHguJXguJkKK+C4peC4t+C4oeC4leC5ieC4mQor4Lil4Li34Lih4LiV4Lix4LinCivguKXguLfguKHguJXguLIKK+C4peC4t+C4rQor4Lil4Li34LmI4LitCivguKXguLfguYnguK0KK+C4peC4t+C4reC4iuC4sgor4Lil4Li34Lit4LiK4Liy4Lib4Lij4Liy4LiB4LiPCivguKXguLfguYjguK3guIrguLfguYjguK0KK+C4peC4t+C4reC4quC4suC4ogor4Lil4Li4CivguKXguLjguIEKK+C4peC4uOC4geC4peC4mQor4Lil4Li44LiB4Lil4Liy4LihCivguKXguLjguIHguKXguLXguYnguKXguLjguIHguKXguJkKK+C4peC4uOC4geC4ruC4t+C4rQor4Lil4Li44LmB4LiB4LmI4LmC4LiX4LipCivguKXguLjguYHguIHguYjguK3guLPguJnguLLguIgKK+C4peC4uOC4hwor4Lil4Li44LmJ4LiHCivguKXguLjguJUKK+C4peC4uOC4lwor4Lil4Li44LiX4LiB4LiwCivguKXguLjguJfguJjguYwKK+C4peC4uOC5iOC4mQor4Lil4Li44LmI4LiZ4LmGCivguKXguLjguYjguJnguJXguLjguYnguJkKK+C4peC4uOC5iOC4meC5guC4leC4hwor4Lil4Li44Lib4LiV4LmMCivguKXguLjguJ7guJjguYwKK+C4peC4uOC4nuC4mOC4geC4sAor4Lil4Li44LmI4LihCivguKXguLjguYjguKHguYYg4LiU4Lit4LiZ4LmGCivguKXguLjguYjguKHguJnguYnguLMKK+C4peC4uOC5iOC4oeC5gOC4meC4t+C5ieC4rQor4Lil4Li44Lih4Lib4LmMCivguKXguLjguKHguJ7guLUKK+C4peC4uOC4oeC4nuC4uQor4Lil4Li44LmI4Lih4LmA4Lil4LmJ4LiyCivguKXguLjguYjguKHguKvguKXguIcKK+C4peC4uOC4ogor4Lil4Li44LmI4LiiCivguKXguLjguYnguKIKK+C4peC4uOC5iOC4ouC4q+C4uQor4Lil4Li44Lil4LmI4Lin4LiHCivguKXguLjguKXguLLguKIKK+C4peC4uOC4quC4sgor4Lil4Li44Lit4Liz4LiZ4Liy4LiICivguKXguLnguYgKK+C4peC4ueC4gQor4Lil4Li54LiB4LiB4LiBCivguKXguLnguIHguIHguKPguIcKK+C4peC4ueC4geC4geC4o+C4reC4gQor4Lil4Li54LiB4LiB4Lij4Liw4LmA4LiU4Li34Lit4LiBCivguKXguLnguIHguIHguKPguLDguJ7guKPguKfguJkKK+C4peC4ueC4geC4geC4o+C4sOC5geC4reC4oQor4Lil4Li54LiB4LiB4Lil4Lit4LiZCivguKXguLnguIHguIHguKXguLTguYnguIcKK+C4peC4ueC4geC4geC4p+C4suC4lAor4Lil4Li54LiB4LiB4Liw4LmC4Lil4LmICivguKXguLnguIHguIHguLDguYHguK0KK+C4peC4ueC4geC4geC4seC4peC4m+C4nuC4pOC4geC4qeC5jAor4Lil4Li54LiB4LmB4LiB4LmJ4LinCivguKXguLnguIHguYLguIHguKXguJkKK+C4peC4ueC4geC5hOC4geC5iAor4Lil4Li54LiB4LmE4LiB4LmI4Lit4Lii4Li54LmI4LmD4LiZ4LiB4Liz4Lih4Li34LitCivguKXguLnguIHguILguKfguLHguI0KK+C4peC4ueC4geC4guC4seC4lAor4Lil4Li54LiB4LiC4LmI4Liy4LiHCivguKXguLnguIHguILguYnguLLguKcKK+C4peC4ueC4geC4guC4uOC4mQor4Lil4Li54LiB4LiC4Li44LiZIOC4kyDguKjguLLguKXguKvguKXguKfguIcKK+C4peC4ueC4geC4guC4uOC4mSDguJMg4Lio4Liy4Lil4LiyCivguKXguLnguIHguILguLjguJnguJ7guKXguK3guKLguJ7guKLguLHguIEKK+C4peC4ueC4geC5gOC4guC4ogor4Lil4Li54LiB4LmA4LiC4Lii4LiV4Liy4Lii4LmB4Lih4LmI4Lii4Liy4Lii4LiK4Lix4LiB4Lib4Lij4LiBCivguKXguLnguIHguYDguILguKLguJXguLLguKLguYHguKHguYjguKLguLLguKLguJfguLPguKjguJ4KK+C4peC4ueC4geC4hOC4o+C4reC4gQor4Lil4Li54LiB4LiE4Lij4Li24LmI4LiHCivguKXguLnguIHguITguKXguLHguIEKK+C4peC4ueC4geC4hOC4p+C4suC4oQor4Lil4Li54LiB4LiE4LitCivguKXguLnguIHguITguK3guIEKK+C4peC4ueC4geC4hOC4seC4mQor4Lil4Li54LiB4LiE4LmJ4LiyCivguKXguLnguIHguITguLMKK+C4peC4ueC4geC4hOC4tOC4lAor4Lil4Li54LiB4LmA4LiE4Lil4LmJ4LiyCivguKXguLnguIHguIbguYnguK3guIcKK+C4peC4ueC4geC4iOC5iuC4reC4gQor4Lil4Li54LiB4LiI4LmJ4Liy4LiHCivguKXguLnguIHguYDguIjguLXguYrguKLguJoKK+C4peC4ueC4geC4iuC5iOC4p+C4hwor4Lil4Li54LiB4LiK4LmJ4Liy4LiHCivguKXguLnguIHguIrguLTguJQKK+C4peC4ueC4geC4iuC4tOC5ieC4mQor4Lil4Li54LiB4LmC4LiL4LmICivguKXguLnguIHguJTguK3guIEKK+C4peC4ueC4geC4lOC4tOC5iOC4hwor4Lil4Li54LiB4LmC4LiU4LiUCivguKXguLnguIHguJXguLHguYnguIcKK+C4peC4ueC4geC4leC4uOC5ieC4oQor4Lil4Li54LiB4LmA4LiV4LmJ4LiyCivguKXguLnguIHguYDguJXguYvguLIKK+C4peC4ueC4geC5geC4leC4gQor4Lil4Li54LiB4LiW4LmJ4Lin4LiiCivguKXguLnguIHguYDguJbguLfguYjguK3guJkKK+C4peC4ueC4geC5geC4luC4pwor4Lil4Li54LiB4LiX4Lit4LiiCivguKXguLnguIHguJfguYjguLLguJnguKvguKXguLLguJnguYDguJjguK0KK+C4peC4ueC4geC4l+C4uOC5iOC4hwor4Lil4Li54LiB4LmA4LiY4LitCivguKXguLnguIHguJnguYnguK3guIcKK+C4peC4ueC4geC4meC4sgor4Lil4Li54LiB4LiZ4LmJ4LizCivguKXguLnguIHguJnguLTguKHguLTguJUKK+C4peC4ueC4geC4muC4lwor4Lil4Li54LiB4Lia4Lin4LiaCivguKXguLnguIHguJrguYnguLLguJkKK+C4peC4ueC4geC4muC4suC4qOC4geC5jAor4Lil4Li54LiB4Lia4Li04LiUCivguKXguLnguIHguJrguLjguI3guJjguKPguKPguKEKK+C4peC4ueC4geC5gOC4muC4teC5ieC4ouC4pwor4Lil4Li54LiB4Lib4Lij4Liw4LiE4LiaCivguKXguLnguIHguJvguKPguLDguITguLMKK+C4peC4ueC4geC4m+C4o+C4sOC4hOC4s+C4nOC4tQor4Lil4Li54LiB4Lib4Lij4Liw4Liq4LihCivguKXguLnguIHguJvguKPguLDguKrguLHguIEKK+C4peC4ueC4geC4m+C4o+C4sOC4q+C4peC5iOC4swor4Lil4Li54LiB4Lib4Lij4Liy4LiiCivguKXguLnguIHguJvguKXguLAKK+C4peC4ueC4geC4m+C4peC4sgor4Lil4Li54LiB4Lib4Liw4LiB4LiZCivguKXguLnguIHguJvguLHguJQKK+C4peC4ueC4geC4m+C4sgor4Lil4Li54LiB4Lib4LmI4LiyCivguKXguLnguIHguJvguLfguJkKK+C4peC4ueC4geC4m+C4t+C4meC5g+C4q+C4jeC5iAor4Lil4Li54LiB4LmB4LibCivguKXguLnguIHguYLguJvguYjguIcKK+C4peC4ueC4geC5guC4m+C5iOC4h+C4quC4p+C4o+C4o+C4hOC5jAor4Lil4Li54LiB4Lic4Liq4LihCivguKXguLnguIHguJzguLHguIHguIrguLUKK+C4peC4ueC4geC4nOC4teC4peC4ueC4geC4hOC4mQor4Lil4Li54LiB4Lic4Li54LmJ4LiK4Liy4LiiCivguKXguLnguIHguJzguLnguYnguJnguYnguK3guIcKK+C4peC4ueC4geC4nOC4ueC5ieC4nuC4teC5iAor4Lil4Li54LiB4Lic4Li54LmJ4Lir4LiN4Li04LiHCivguKXguLnguIHguYTguJzguYgKK+C4peC4ueC4geC4neC4suC5geC4neC4lAor4Lil4Li54LiB4LmB4Lid4LiUCivguKXguLnguIHguJ7guKPguKfguJkKK+C4peC4ueC4geC4nuC4o+C4tOC4gQor4Lil4Li54LiB4Lie4Lil4Li5CivguKXguLnguIHguJ7guLXguYgKK+C4peC4ueC4geC4nuC4teC5iOC4peC4ueC4geC4meC5ieC4reC4hwor4Lil4Li54LiB4Lif4Lix4LiBCivguKXguLnguIHguJ/guLnguIEKK+C4peC4ueC4geC5hOC4nwor4Lil4Li54LiB4Lih4LmC4Lir4LiV4LijCivguKXguLnguIHguKHguLDguKvguKfguJQKK+C4peC4ueC4geC4oeC4suC4lAor4Lil4Li54LiB4Lih4Li34LitCivguKXguLnguIHguYLguKHguYgKK+C4peC4ueC4geC5hOC4oeC5iQor4Lil4Li54LiB4LmE4Lih4LmJ4Lir4Lil4LmI4LiZ4LmE4Lih4LmI4LmE4LiB4Lil4LiV4LmJ4LiZCivguKXguLnguIHguKLguK0KK+C4peC4ueC4geC4ouC5iOC4suC4hwor4Lil4Li54LiB4Lii4Liy4LmA4LiY4LitCivguKXguLnguIHguYLguKLguJkKK+C4peC4ueC4geC4o+C4reC4gQor4Lil4Li54LiB4Lij4Liw4Lih4Liy4LioCivguKXguLnguIHguKPguLHguIcKK+C4peC4ueC4geC4o+C4uOC5iOC4ogor4Lil4Li54LiB4LmA4Lij4Li34LitCivguKXguLnguIHguKXguKEKK+C4peC4ueC4geC4peC5ieC4rQor4Lil4Li54LiB4Lil4LmI4LiyCivguKXguLnguIHguYDguKXguYjguJkKK+C4peC4ueC4geC5gOC4peC4teC5ieC4ouC4hwor4Lil4Li54LiB4LmB4Lil4LmI4LiHCivguKXguLnguIHguYLguKXguIEKK+C4peC4ueC4geC5hOC4peC5iAor4Lil4Li54LiB4Lin4Lix4LiUCivguKXguLnguIHguKjguLTguKnguKLguYwKK+C4peC4ueC4geC4quC4oeC4oOC4suC4o+C4q+C4peC4suC4meC5gOC4iOC5ieC4suC4p+C4seC4lAor4Lil4Li54LiB4Liq4Lih4Li44LiZCivguKXguLnguIHguKrguKfguKPguKPguITguYwKK+C4peC4ueC4geC4quC4p+C4suC4lwor4Lil4Li54LiB4Liq4Liw4Lia4LmJ4LiyCivguKXguLnguIHguKrguLDguYPguKDguYkKK+C4peC4ueC4geC4quC4seC4h+C4geC4sOC4quC4tQor4Lil4Li54LiB4Liq4Li54LiaCivguKXguLnguIHguYDguKrguLfguK0KK+C4peC4ueC4geC4q+C4meC4teC5iQor4Lil4Li54LiB4Lir4LiZ4Li5CivguKXguLnguIHguKvguKHguJQKK+C4peC4ueC4geC4q+C4oeC5ieC4rQor4Lil4Li54LiB4Lir4Lih4Liy4LiBCivguKXguLnguIHguKvguKHguLnguYgKK+C4peC4ueC4geC4q+C4peC4hwor4Lil4Li54LiB4Lir4Lil4Lin4LiHCivguKXguLnguIHguKvguLLguJoKK+C4peC4ueC4geC4q+C4tOC4mQor4Lil4Li54LiB4Lir4Li04LiZ4Lia4LiUCivguKXguLnguIHguKvguLXguJoKK+C4peC4ueC4geC5gOC4q+C5h+C4mgor4Lil4Li54LiB4LmB4LirCivguKXguLnguIHguYHguKvguIfguYgKK+C4peC4ueC4geC4reC4oQor4Lil4Li54LiB4LmA4Lit4LmH4LiZCivguKXguLnguIHguYDguK3guYfguKUKK+C4peC4ueC4guC4sAor4Lil4Li54LiV4LiyCivguKXguLnguJXguLTguIHguLIKK+C4peC4ueC5iOC4l+C4suC4hwor4Lil4Li54LiX4Li14LmA4LiK4Li14Lii4LihCivguKXguLnguJnguLAKK+C4peC4ueC4mgor4Lil4Li54Lia4LiE4LihCivguKXguLnguJrguITguKXguLMKK+C4peC4ueC4muC4leC4seC4pwor4Lil4Li54Lia4LmE4Lil4LmJCivguKXguLnguJrguKvguJnguYnguLLguJvguLDguIjguKHguLnguIEKK+C4peC4ueC5iOC4q+C4peC4teC5iAor4LmA4Lil4LiBCivguYDguKXguYfguIEKK+C5gOC4peC5h+C4geC4lOC4sgor4LmA4Lil4LmH4LiB4LiZ4LmJ4Lit4LiiCivguYDguKXguYfguIHguJ7guKPguLTguIHguILguLXguYnguKvguJnguLkKK+C5gOC4peC4geC4p+C4seC4lAor4LmA4Lil4LiCCivguYDguKXguILguIHguLAKK+C5gOC4peC4guC4hOC4k+C4tOC4lQor4LmA4Lil4LiC4LiI4Liz4LiZ4Lin4LiZCivguYDguKXguILguIrguLXguYnguIHguLPguKXguLHguIcKK+C5gOC4peC4guC5guC4lOC4lAor4LmA4Lil4LiC4LiZ4LiwCivguYDguKXguILguJzguLIKK+C5gOC4peC4guC4ouC4sAor4LmA4Lil4LiC4Lii4Lix4LiZ4LiV4LmMCivguYDguKXguILguKXguLPguJTguLHguJoKK+C5gOC4peC4guC4q+C4oeC4suC4ogor4LmA4Lil4LiC4LiyCivguYDguKXguILguLLguJjguLTguIHguLLguKMKK+C5gOC4peC4guC4suC4meC4uOC4geC4suC4owor4LmA4Lil4LmH4LiHCivguYDguKXguYnguIcKK+C5gOC4peC5h+C4h+C4peC4seC4hOC4meC5jAor4LmA4Lil4LmI4LiH4Liu4Li34LmJ4LitCivguYDguKXguYDguIvguK3guKPguYwKK+C5gOC4peC4keC4keC4uAor4LmA4Lil4LiTCivguYDguKXguJPguJHguLgKK+C5gOC4peC5h+C4lAor4LmA4Lil4LmH4LiU4Lil4Lit4LiUCivguYDguKXguJUKK+C5gOC4peC4mQor4LmA4Lil4LmH4LiZCivguYDguKXguYjguJkKK+C5gOC4peC5iOC4meC4geC4pQor4LmA4Lil4LmI4LiZ4LiB4Lix4Lia4LmE4LifCivguYDguKXguYjguJnguILguLLguKLguILguK3guIcKK+C5gOC4peC5iOC4meC4hOC4swor4LmA4Lil4LmI4LiZ4LiH4Liy4LiZCivguYDguKXguJnguIjguIcKK+C5gOC4peC5iOC4meC4iuC4ueC5iQor4LmA4Lil4LmI4LiZ4LiV4Lil4LiBCivguYDguKXguYjguJnguJXguLHguKcKK+C5gOC4peC5iOC4meC5gOC4muC4teC5ieC4ogor4LmA4Lil4LmI4LiZ4Lie4Lin4LiBCivguYDguKXguYjguJnguJ7guLTguYDguKPguJnguJfguKPguYwKK+C5gOC4peC5iOC4meC5gOC4nuC4peC4h+C4ouC4suC4pwor4LmA4Lil4LmI4LiZ4LmA4Lie4Li34LmI4Lit4LiZCivguYDguKXguYjguJnguYHguKPguYjguYHguJvguKPguJjguLLguJXguLgKK+C5gOC4peC5iOC4meC4peC4tOC5ieC4mQor4LmA4Lil4LiZ4Liq4LmMCivguYDguKXguJnguKrguYzguJXguLXguJrguYHguKrguIcKK+C5gOC4peC4meC4quC5jOC4luC5iOC4suC4h+C5geC4quC4hwor4LmA4Lil4LiZ4Liq4LmM4LiZ4Li54LiZCivguYDguKXguYjguJnguKrguKfguLLguJcKK+C5gOC4peC4meC4quC5jOC5gOC4p+C5ieC4sgor4LmA4Lil4LiZ4Liq4LmM4Liq4Lix4Lih4Lic4Lix4LiqCivguYDguKXguYjguJnguKrguLPguJnguKfguJkKK+C5gOC4peC4meC4q+C4sOC4o+C4tQor4LmA4Lil4LmI4LiZ4Lir4Lix4LinCivguYDguKXguYjguJnguKvguLLguIcKK+C5gOC4peC5iOC4meC4q+C4ueC5gOC4peC5iOC4meC4leC4sgor4LmA4Lil4LmI4LiZ4LmA4Lit4Liy4LmA4LiW4Li04LiU4LmA4LiI4LmJ4Liy4Lil4LmI4LitCivguYDguKXguYfguJoKK+C5gOC4peC5h+C4muC4hOC4o+C4uOC4kQor4LmA4Lil4LmH4Lia4LiE4Lin4Liy4LiiCivguYDguKXguJrguIcKK+C5gOC4peC5h+C4muC4meC4suC4hwor4LmA4Lil4LmH4Lia4Lih4Li34Lit4LiZ4Liy4LiHCivguYDguKXguYfguJrguYDguKvguKLguLXguYjguKLguKcKK+C5gOC4peC4my0KK+C5gOC4peC4m+C4geC4owor4LmA4Lil4Lib4LiZ4LmMCivguYDguKXguYDguJsKK+C5gOC4peC5gOC4ngor4LmA4Lil4LmA4Lie4Lil4Liy4LiU4Lie4Liy4LiUCivguYDguKXguYfguKEKK+C5gOC4peC5iOC4oQor4LmA4Lil4LmH4Lih4Lil4LmI4LiyCivguYDguKXguKIKK+C5gOC4peC4ouC4leC4suC4oeC5gOC4peC4ogor4LmA4Lil4Lii4LmA4LiW4Li04LiUCivguYDguKXguKcKK+C5gOC4peC4p+C4hwor4LmA4Lil4Lin4Li54LmC4Lil4LiqCivguYDguKXguKgKK+C5gOC4peC4qeC4j+C4uAor4LmA4Lil4LirCivguYDguKXguYjguKvguYwKK+C5gOC4peC5iOC4q+C5jOC4geC4o+C4sOC5gOC4l+C5iOC4q+C5jAor4LmA4Lil4Lir4Lii4LiwCivguYDguKXguKvguKXguLHguIcKK+C5gOC4peC4q+C4peC4sgor4LmA4Lil4LmI4Lir4LmM4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKXguKvguLAKK+C5gOC4peC4rQor4LmA4Lil4LmI4LitCivguYDguKXguK3guKHguLLguJkKK+C5gOC4peC5iOC4reC4peC5iOC4sgor4LmA4Lil4Lit4LiwCivguYDguKXguK3guLDguYDguJfguK3guLAKK+C5gOC4peC4sAor4LmA4Lil4Liw4LmA4LiX4LiwCivguYDguKXguLIKK+C5gOC4peC4suC5hgor4LmA4Lil4LmI4LiyCivguYDguKXguYnguLIKK+C5gOC4peC4suC4geC4seC4ogor4LmA4Lil4LmI4Liy4LmA4Lij4Li14Lii4LiZCivguYDguKXguYjguLLguKXguLfguK0KK+C5gOC4peC5ieC4suC5guC4peC4oQor4LmA4Lil4Liy4LiwCivguYDguKXguLTguIEKK+C5gOC4peC4tOC4geC4peC5ieC4oQor4LmA4Lil4Li04LmI4LiB4Lil4Lix4LmI4LiBCivguYDguKXguLTguYnguIcKK+C5gOC4peC4tOC4meC5gOC4peC5iOC4rQor4LmA4Lil4Li04LioCivguYDguKXguLXguKIKK+C5gOC4peC4teC4ouC4hwor4LmA4Lil4Li14LmI4Lii4LiHCivguYDguKXguLXguYnguKLguIcKK+C5gOC4peC4teC4ouC4h+C4guC4suC4pwor4LmA4Lil4Li14LmJ4Lii4LiH4LmB4LiC4LiBCivguYDguKXguLXguYnguKLguIfguIrguYnguLLguIfguIHguLTguJnguILguLXguYnguIrguYnguLLguIcKK+C5gOC4peC4teC5ieC4ouC4h+C4lOC4uQor4LmA4Lil4Li14LmJ4Lii4LiH4LiV4LmJ4Lit4LiiCivguYDguKXguLXguYnguKLguIfguYLguJXguYrguLAKK+C5gOC4peC4teC5ieC4ouC4h+C4m+C4suC4geC5gOC4peC4teC5ieC4ouC4h+C4l+C5ieC4reC4hwor4LmA4Lil4Li14Lii4LiH4Lic4LiyCivguYDguKXguLXguKLguIfguJ3guYnguLLguKIKK+C5gOC4peC4teC4ouC4h+C4oeC4seC4mQor4LmA4Lil4Li14LmJ4Lii4LiH4Lij4Lix4LiaCivguYDguKXguLXguYnguKLguIfguKXguLIKK+C5gOC4peC4teC5ieC4ouC4h+C4peC4ueC4geC5gOC4quC4t+C4reC4peC4ueC4geC4iOC4o+C4sOC5gOC4guC5iQor4LmA4Lil4Li14LmJ4Lii4LiH4Liq4LmI4LiHCivguYDguKXguLXguKLguJkKK+C5gOC4peC4teC5iOC4ouC4mQor4LmA4Lil4Li14Lii4LiZ4LmE4LifCivguYDguKXguLXguKLguJoKK+C5gOC4peC4teC4ouC4muC4hOC5iOC4suC4ogor4LmA4Lil4Li14Lii4Lia4LmA4LiE4Li14Lii4LiHCivguYDguKXguLXguKLguJrguYDguKHguLfguK3guIcKK+C5gOC4peC4teC4ouC4oQor4LmA4Lil4Li14LmI4Lii4LihCivguYDguKXguLXguKLguKcKK+C5gOC4peC4teC5ieC4ouC4pwor4LmA4Lil4Li14LmJ4Lii4Lin4Lil4LiUCivguYDguKXguLfguK3guIEKK+C5gOC4peC4t+C4reC4geC4leC4seC5ieC4hwor4LmA4Lil4Li34Lit4LiB4LiX4Li14LmI4Lij4Lix4LiB4Lih4Lix4LiB4LiX4Li14LmI4LiK4Lix4LiHCivguYDguKXguLfguK3guIHguJnguLHguIHguKHguLHguIHguYTguJTguYnguYHguKPguYgKK+C5gOC4peC4t+C4reC4geC4quC4o+C4owor4LmA4Lil4Li34Lit4LiHCivguYDguKXguLfguYjguK3guIcKK+C5gOC4peC4t+C5iOC4reC4h+C4peC4t+C4rQor4LmA4Lil4Li34Lit4LiUCivguYDguKXguLfguK3guJTguILguLbguYnguJnguKvguJnguYnguLIKK+C5gOC4peC4t+C4reC4lOC5gOC4guC5ieC4suC4leC4sgor4LmA4Lil4Li34Lit4LiU4LmA4LiZ4Li34LmJ4LitCivguYDguKXguLfguK3guJTguYDguJnguLfguYnguK3guYDguIrguLfguYnguK3guYTguIIKK+C5gOC4peC4t+C4reC4lOC5g+C4meC4reC4gQor4LmA4Lil4Li34Lit4LiU4Lid4Liy4LiUCivguYDguKXguLfguK3guJTguYTguKHguYkKK+C5gOC4peC4t+C4reC4lOC5gOC4ouC5h+C4mQor4LmA4Lil4Li34Lit4LiU4Lij4LmJ4Lit4LiZCivguYDguKXguLfguK3guJTguKXguYnguLLguIfguKvguJnguYnguLIKK+C5gOC4peC4t+C4reC4lOC4reC4uOC5iOC4mQor4LmA4Lil4Li34Lit4LiZCivguYDguKXguLfguYjguK3guJkKK+C5gOC4peC4t+C5iOC4reC4meC4l+C4teC5iAor4LmA4Lil4Li34LmI4Lit4LiZ4LmA4Lib4Li34LmJ4Lit4LiZCivguYDguKXguLfguYjguK3guJnguKXguK3guKIKK+C5gOC4peC4t+C5iOC4reC4oQor4LmA4Lil4Li34LmI4Lit4Lih4LmD4LiqCivguYDguKXguLfguYjguK3guKIKK+C5gOC4peC4t+C5ieC4reC4ogor4LmA4Lil4Li34LmJ4Lit4Lii4LiE4Lil4Liy4LiZCivguYDguKXguLfguYnguK3guKLguYDguIjguLfguYnguK3guKIKK+C5gOC4peC4t+C5iOC4reC4ouC4peC5ieC4sgor4LmB4LilCivguYHguKXguYgKK+C5geC4peC5iQor4LmB4Lil4LiBCivguYHguKXguYfguIHguYLguJfguKoKK+C5geC4peC4geC5gOC4m+C4peC4teC5iOC4ouC4mQor4LmB4Lil4LiHCivguYHguKXguYjguIcKK+C5geC4peC5ieC4hwor4LmB4Lil4LiH4LiB4Li04LiZ4Lif4Lix4LiZCivguYHguKXguYjguIfguJ7guKPguLDguKPguLLguKEKK+C5geC4peC4mQor4LmB4Lil4LmI4LiZCivguYHguKXguJnguJfguLLguJnguLHguKEKK+C5geC4peC4mgor4LmB4Lil4LmJ4LinCivguYHguKXguYnguKfguIHguLHguJkKK+C5geC4peC5ieC4p+C4lOC5ieC4p+C4ogor4LmB4Lil4LmJ4Lin4LmB4LiV4LmICivguYHguKXguYnguKfguYTguJsKK+C5geC4peC5ieC4py4uLuC5gOC4peC5iOC4sgor4LmB4Lil4LmJ4Lin4LmGIOC5gOC4peC5iOC4suC5hgor4LmB4Lil4LiwCivguYHguKXguLDguYDguKXguYfguKEKK+C5geC4peC4sOC5gOC4peC4teC4ouC4oQor4LmC4Lil4LmICivguYLguKXguYkKK+C5guC4peC4gQor4LmC4Lil4LiBLQor4LmC4Lil4LiB4LmA4LiK4Lip4LiQ4LmMCivguYLguKXguIHguJjguKPguKPguKEKK+C5guC4peC4geC4mOC4suC4lOC4sgor4LmC4Lil4LiB4LiY4Liy4LiV4Li4CivguYLguKXguIHguJnguLLguJYKK+C5guC4peC4geC4muC4suC4pQor4LmC4Lil4LiB4Lii4LmMCivguYLguKXguIHguKLguLAKK+C5guC4peC4geC4p+C4seC4iuC4iuC4sAor4LmC4Lil4LiB4Lin4Li04LiX4Li5CivguYLguKXguIHguKrguJbguLTguJXguLQKK+C5guC4peC4geC4reC4uOC4lOC4owor4LmC4Lil4LiB4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguYLguKXguIHguLHguJnguJXguKPguYwKK+C5guC4peC4geC4seC4ogor4LmC4Lil4LiB4LiyCivguYLguKXguIHguLLguJjguLTguJrguJTguLUKK+C5guC4peC4geC4suC4mOC4tOC4m+C5hOC4leC4ogor4LmC4Lil4LiB4Liy4LiZ4Li44Lin4Lix4LiV4LijCivguYLguKXguIHguLLguKDguLTguKfguLHguJXguJnguYwKK+C5guC4peC4geC4suC4oeC4tOC4qgor4LmC4Lil4LiB4Liy4Lii4Lix4LiVCivguYLguKXguIHguLLguKfguLTguJnguLLguKgKK+C5guC4peC4geC4tOC4ouC4sAor4LmC4Lil4LiB4Li14Lii4LmMCivguYLguKXguIHguLXguKLguKfguLHguJXguKMKK+C5guC4peC4geC4uOC4leC4o+C4mOC4o+C4o+C4oQor4LmC4Lil4LiB4Li44LiV4Lij4LiwCivguYLguKXguYDguIHguKgKK+C5guC4peC4hwor4LmC4Lil4LmI4LiHCivguYLguKXguYnguIcKK+C5guC4peC5ieC4h+C5guC4leC5ieC4hwor4LmC4Lil4LmI4LiH4LmC4LiW4LiHCivguYLguKXguIjguJnguLAKK+C5guC4peC4k+C4sAor4LmC4Lil4LiUCivguYLguKXguJTguYDguJXguYnguJkKK+C5guC4peC4lOC4l+C4sOC4meC4hwor4LmC4Lil4LiU4LmC4Lic4LiZCivguYLguKXguJTguYHguKXguYjguJkKK+C5guC4peC5iOC4leC4tOC5iuC4mQor4LmC4Lil4LmC4LiVCivguYLguKXguJcKK+C5guC4peC4mQor4LmC4Lil4LmJ4LiZCivguYLguKXguJvguLAKK+C5guC4peC4oAor4LmC4Lil4Lig4LmC4Lih4LmC4LiX4Liq4Lix4LiZCivguYLguKXguKEKK+C5guC4peC4oeC4iuC4suC4leC4tAor4LmC4Lil4Lih4LmA4Lil4LmJ4LiyCivguYLguKXguKHguLAKK+C5guC4peC4oeC4sgor4LmC4Lil4LilCivguYLguKXguKXguLjguJsKK+C5guC4peC5gOC4pQor4LmC4Lil4LmJ4LmA4Lil4LmJCivguYLguKXguYLguKUKK+C5guC4peC5guC4peC5iQor4LmC4Lil4LirLQor4LmC4Lil4Lir4LiB4Li44Lih4Lig4Li1CivguYLguKXguKvguLAKK+C5guC4peC4q+C4sOC5gOC4iOC4t+C4rQor4LmC4Lil4Lir4Lix4LiKCivguYLguKXguKvguLTguJUKK+C5hOC4peC5iAor4LmE4Lil4LmJCivguYTguKXguYjguIrguYnguLLguIcKK+C5hOC4peC5iOC4l+C4teC5iOC4l+C4s+C4p+C4seC4hwor4LmE4Lil4LmI4LiZ4LmJ4LizCivguYTguKXguYjguYDguJrguLXguYnguKIKK+C5hOC4peC4ogor4LmE4Lil4Lil4LiyCivguYTguKXguYjguKXguLnguIHguIbguYnguK3guIcKK+C5hOC4peC5gOC4peC4ogor4LmE4Lil4LmI4LmA4Lil4Li14LmI4LiiCivguYTguKXguYjguYDguKXguLXguKLguIcKK+C5hOC4peC5hOC4peC5iQor4LmE4Lil4LmI4Lit4Lit4LiBCivguKYKK+C4puC5hQor4Lim4LmF4LiK4LiyCivguKbguYXguKrguLLguKIKK+C4pwor4Lin4LiBCivguKfguIHguLAKK+C4p+C4geC4uOC4pQor4Lin4LiHCivguKfguIfguIHguYwKK+C4p+C4h+C4geC4lQor4Lin4LiH4LiB4LiaCivguKfguIfguIHguKXguKEKK+C4p+C4h+C4geC4suC4owor4Lin4LiH4LmA4LiH4Li04LiZCivguKfguIfguIjguKMKK+C4p+C4h+C4iOC4o+C4m+C4tOC4lAor4Lin4LiH4LiI4Lij4LmA4Lib4Li04LiUCivguKfguIfguYDguJTguLfguK3guJkKK+C4p+C4h+C4meC4reC4gQor4Lin4LiH4LmD4LiZCivguKfguIfguJ7guLLguJQKK+C4p+C4h+C4o+C4tQor4Lin4LiH4LmA4Lil4LmH4LiaCivguKfguIfguKfguLHguIcKK+C4p+C4h+C5gOC4p+C4teC4ouC4mQor4Lin4LiH4LioLQor4Lin4LiH4Lio4LmMCivguKfguIfguKjguIHguKMKK+C4p+C4h+C4qOC5jOC4p+C4suC4mQor4Lin4LiH4Lio4LiyCivguKfguIfguKjguLLguITguJPguLLguI3guLLguJXguLQKK+C4p+C4h+C4qeC5jAor4Lin4LiH4LmB4Lir4Lin4LiZCivguKfguIjguJnguLAKK+C4p+C4iOC4sAor4Lin4LiI4LiyCivguKfguIjguLUKK+C4p+C4iOC4teC4geC4o+C4o+C4oQor4Lin4LiI4Li14LmA4Lig4LiXCivguKfguIrguLAKK+C4p+C4iuC4tOC4oy0KK+C4p+C4iuC4tOC4o+C4m+C4suC4k+C4tQor4Lin4LiK4Li04Lij4Lir4Lix4LiV4LiW4LmMCivguKfguIrguLTguKPguLAKK+C4p+C4iuC4tOC4o+C4suC4p+C4uOC4mAor4Lin4LiP4LiwCivguKfguI/guLLguIHguLLguKMKK+C4p+C4j+C4uOC4oeC4sAor4Lin4LiTLQor4Lin4LiT4Lia4Lix4LiV4LijCivguKfguJPguJ7guLHguJnguJjguJnguYwKK+C4p+C4k+C4sAor4Lin4LiT4Li04LiKCivguKfguJPguLTguIrguIrguLIKK+C4p+C4k+C4tOC4iuC4iuC4suC4geC4owor4Lin4LiT4Li04LiK4Lii4LmMCivguKfguJPguLTguIrguKLguLIKK+C4p+C4k+C4tOC4nuC4gQor4Lin4LiU4Li1CivguKfguJUtCivguKfguJXguLAKK+C4p+C4l+C4meC4sAor4Lin4LiX4LiwCivguKfguJfguLHguI3guI3guLjguJXguLIKK+C4p+C4l+C4seC4jeC4jeC4uQor4Lin4LiX4Liy4LiZ4Li04LiiLQor4Lin4LiYLQor4Lin4LiY4LiBLQor4Lin4LiY4Li44LiB4LiyCivguKfguJjguLkKK+C4p+C4mQor4Lin4LiZ4LiI4LijCivguKfguJnguIjguKPguIEKK+C4p+C4meC4oOC4uQor4Lin4LiZ4Lig4Li54Lih4Li0CivguKfguJnguYDguKfguLXguKLguJkKK+C4p+C4meC4qOC4suC4quC4leC4o+C5jAor4Lin4LiZ4Liq4LiT4LiR4LmMCivguKfguJnguKrguLHguJPguJHguYwKK+C4p+C4meC4reC4uOC4l+C4ouC4suC4mQor4Lin4LiZ4Lix4Lib4LiV4Li0CivguKfguJnguLHguKoKK+C4p+C4meC4seC4qi0KK+C4p+C4meC4seC4quC4muC4lOC4tQor4Lin4LiZ4LiyCivguKfguJnguLLguJTguK3guJkKK+C4p+C4meC4suC4meC4leC5jAor4Lin4LiZ4Liy4Lil4Lix4LiiCivguKfguJnguLLguKXguLUKK+C4p+C4meC4suC4p+C4suC4qgor4Lin4LiZ4Liy4Lio4Lij4LihCivguKfguJnguLLguKrguJPguJHguYwKK+C4p+C4meC4suC4quC4seC4k+C4keC5jAor4Lin4LiZ4Li04LiU4LiyCivguKfguJnguLTguJ7guIEKK+C4p+C5gOC4meC4iOC4owor4Lin4LmC4LiZ4LiX4Lii4Liy4LiZCivguKfguJvguJnguLAKK+C4p+C4m+C4uAor4Lin4Lii4Lix4LiE4LiG4LmMCivguKfguKLguLHguI3guIrguJnguLAKK+C4p+C4ouC4seC4oeC4q+C4sAor4Lin4Lii4Lix4Liq4Lii4LmMCivguKfguKLguLLguIHguKPguJPguYwKK+C4p+C4ouC4suC4huC4o+C5jAor4Lin4Lii4Liy4LiY4Li0CivguKfguKLguLLguKEKK+C4p+C4ouC4suC4ouC4suC4oQor4Lin4LijLQor4Lin4Lij4LiH4LiE4LmMCivguKfguKPguJPguLAKK+C4p+C4o+C4lOC4meC4uQor4Lin4Lij4LiXCivguKfguKPguJfguLLguJkKK+C4p+C4o+C4oeC4q+C4suC4p+C4tOC4q+C4suC4owor4Lin4Lij4Lij4LiECivguKfguKPguKPguITguKLguYwKK+C4p+C4o+C4o+C4igor4Lin4Lij4Lij4LiK4Lii4LmMCivguKfguKPguKPguJMtCivguKfguKPguKPguJPguIHguKPguKPguKEKK+C4p+C4o+C4o+C4k+C4hOC4lOC4tQor4Lin4Lij4Lij4LiT4LiZ4LiyCivguKfguKPguKPguJPguJ7guKTguJXguLQKK+C4p+C4o+C4o+C4k+C4ouC4uOC4geC4leC5jAor4Lin4Lij4Lij4LiT4Lii4Li44LiVCivguKfguKPguKPguJPguKjguLTguKXguJvguYwKK+C4p+C4o+C4o+C4k+C4sAor4Lin4Lij4Lij4LiT4Li24LiBCivguKfguKPguKPguJjguIEKK+C4p+C4o+C4o+C4mOC4meC4sAor4Lin4Lij4Lij4LipCivguKfguKPguKPguKnguLIKK+C4p+C4o+C4p+C4tOC4q+C4suC4owor4Lin4Lij4Lix4LiN4LiN4Li5CivguKfguKPguLLguIHguLAKK+C4p+C4o+C4suC4h+C4hOC4k+C4sgor4Lin4Lij4Liy4Lir4LmMCivguKfguKPguLLguKvguLAKK+C4p+C4o+C4uOC4kwor4Lin4Lij4Li44LiV4LiU4LihCivguKfguKPguLjguJXguKHguLAKK+C4p+C4o+C4ueC4lgor4Lin4LmC4Lij4LiU4LihCivguKfguYLguKPguJXguKHguLAKK+C4p+C4pOC4gQor4Lin4Lik4Lip4LigCivguKfguKTguKnguKUKK+C4p+C4peC4seC4igor4Lin4Lil4Lix4LiN4LiK4LmMCivguKfguKXguLHguI3guIrguJnguYwKK+C4p+C4peC4seC4ogor4Lin4Lil4Liy4Lir4LiBCivguKfguKXguLUKK+C4p+C4qOC4hAor4Lin4Lio4LiwCivguKfguKjguLTguJkKK+C4p+C4quC4meC4sAor4Lin4Liq4Lig4LiwCivguKfguKrguKXguLAKK+C4p+C4quC4peC4tQor4Lin4Liq4Lin4Lix4LiU4LiU4Li1CivguKfguKrguKfguLHguJXguJXguLUKK+C4p+C4quC4sAor4Lin4Liq4Lix4LiZ4LiVLQor4Lin4Liq4Lix4LiZ4LiV4LmMCivguKfguKrguLHguJnguJXguJTguLTguKXguIEKK+C4p+C4quC4seC4meC4leC4p+C4tOC4qeC4uOC4p+C4seC4lQor4Lin4Liq4LiyCivguKfguKrguLUKK+C4p+C4quC4uAor4Lin4Liq4Li44LiY4LiyCivguKfguKrguLjguJnguJjguKPguLIKK+C4p+C4quC4uOC4oeC4lOC4tQor4Lin4Lir4LiwCivguKfguKvguLIKK+C4p+C4rQor4Lin4Lit4LiBCivguKfguK3guIHguYHguKfguIEKK+C4p+C5iOC4reC4hwor4Lin4LmI4Lit4LiH4LmE4LinCivguKfguK3guJQKK+C4p+C4reC4lOC4p+C4suC4ogor4Lin4Lit4LiZCivguKfguYjguK3guJkKK+C4p+C4reC4peC5gOC4peC4ouC5jOC4muC4reC4pQor4Lin4Lit4LmB4LinCivguKfguLAKK+C4p+C4seC4gQor4Lin4Lix4LiB4LiB4LiwCivguKfguLHguIQKK+C4p+C4seC4hOC4hOC4tOC4ogor4Lin4Lix4LiE4LiE4Li14Lii4LmMCivguKfguLHguITguITguLgKK+C4p+C4seC4hOC4hOC4uOC4p+C4seC4lwor4Lin4Lix4LiE4LiL4Li14LiZCivguKfguLHguIcKK+C4p+C4seC4h+C4geC5jAor4Lin4Lix4LiH4LiK4LiyCivguKfguLHguIfguIrguYnguLLguIcKK+C4p+C4seC4h+C4p+C4mQor4Lin4Lix4LiH4LmA4Lin4LiHCivguKfguLHguIfguKjguLAKK+C4p+C4seC4h+C4quC4sAor4Lin4Lix4LiH4Lir4LiZ4LmJ4LiyCivguKfguLHguIfguKvguKXguKfguIcKK+C4p+C4seC4h+C4q+C4peC4seC4hwor4Lin4Lix4LiILQor4Lin4Lix4LiI4LiB4Li44LiO4Li1CivguKfguLHguIjguIjguLAKK+C4p+C4seC4iOC4ieC5jAor4Lin4Lix4LiI4LiJ4LiBCivguKfguLHguIjguInguKXguLAKK+C4p+C4seC4iOC4meC5jAor4Lin4Lix4LiI4Lih4Lij4Lij4LiECivguKfguLHguIoKK+C4p+C4seC4ii0KK+C4p+C4seC4iuC4iuC4sAor4Lin4Lix4LiK4LiM4LmMCivguKfguLHguIrguJ7guLfguIoKK+C4p+C4seC4iuC4oy0KK+C4p+C4seC4iuC4o+C4mOC4suC4leC4uOC4oeC4k+C4keC4pQor4Lin4Lix4LiK4Lij4Lib4Liy4LiT4Li1CivguKfguLHguIrguKPguKLguLLguJkKK+C4p+C4seC4iuC4o+C4reC4suC4quC4meC5jAor4Lin4Lix4LiK4Lij4LiwCivguKfguLHguIrguKPguLLguKrguJnguYwKK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jAor4Lin4Lix4LiK4Lij4Li1CivguKfguLHguIrguYDguKPguJnguJfguKPguYwKK+C4p+C4seC4jeC4iOC4gQor4Lin4Lix4LiN4LiI4LiZ4LiwCivguKfguLHguI3guIzguYwKK+C4p+C4seC4jy0KK+C4p+C4seC4j+C4geC4sAor4Lin4Lix4LiP4LiI4Lix4LiB4LijCivguKfguLHguI/guI/guLAKK+C4p+C4seC4j+C4j+C4tAor4Lin4Lix4LiP4LiX4Li44LiB4LiC4LmMCivguKfguLHguI/guKrguIfguKrguLLguKMKK+C4p+C4seC4kuC4geC4sAor4Lin4Lix4LiS4LiB4Li1CivguKfguLHguJLguJktCivguKfguLHguJLguJnguJjguKPguKPguKEKK+C4p+C4seC4kuC4meC4sAor4Lin4Lix4LiS4LiZ4LiyCivguKfguLHguJMKK+C4p+C4seC4ky0KK+C4p+C4seC4k+C4j+C5jAor4Lin4Lix4LiT4LiT4LiwCivguKfguLHguJPguJnguLIKK+C4p+C4seC4k+C5guC4o+C4hAor4Lin4Lix4LiUCivguKfguLHguJTguYHguJTguJQKK+C4p+C4seC4lOC4nOC4pQor4Lin4Lix4LiU4Lie4Li34LmJ4LiZCivguKfguLHguJTguKPguK3guKLguJXguLXguJkKK+C4p+C4seC4lOC4o+C4reC4ouC5gOC4l+C5ieC4sgor4Lin4Lix4LiU4Lij4Liy4Lip4LiO4Lij4LmMCivguKfguLHguJTguKfguLIKK+C4p+C4seC4lOC4p+C4suC4reC4suC4o+C4suC4oQor4Lin4Lix4LiU4Lir4Lil4Lin4LiHCivguKfguLHguJTguYDguKvguKfguLXguYjguKLguIcKK+C4p+C4seC4lQor4Lin4Lix4LiV4LiV4LmMCivguKfguLHguJXguJXguLIKK+C4p+C4seC4leC4luC5jAor4Lin4Lix4LiV4LiW4Liy4Lig4Lij4LiT4LmMCivguKfguLHguJXguJbguLLguKXguLHguIfguIHguLLguKMKK+C4p+C4seC4leC4luC4uAor4Lin4Lix4LiV4LiW4Li44LiU4Li04LiaCivguKfguLHguJXguJbguLjguJnguLTguKLguKEKK+C4p+C4seC4leC4luC4uOC4p+C4tOC4quC4seC4ogor4Lin4Lix4LiV4LiZ4LiwCivguKfguLHguJXguKMKK+C4p+C4seC4leC4oy0KK+C4p+C4seC4leC4o+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lin4Lix4LiV4Liq4LiU4LijCivguKfguLHguJXguKrguLAKK+C4p+C4seC4leC4tAor4Lin4Lix4LiX4LiZ4LmMCivguKfguLHguJkKK+C4p+C4seC4meC5guC4geC4mQor4Lin4Lix4LiZ4LmB4LiC4LmH4LiHCivguKfguLHguJnguITguKPguLkKK+C4p+C4seC4meC4iOC4oQor4Lin4Lix4LiZ4LiU4Lix4LiaCivguKfguLHguJnguJTguLXguITguLfguJnguJTguLUKK+C4p+C4seC4meC4leC5jAor4Lin4Lix4LiZ4LiV4Lix4LinCivguKfguLHguJnguYDguJbguKXguLTguIfguKjguIEKK+C4p+C4seC4meC4l+C4mS0KK+C4p+C4seC4meC4l+C4meC4sgor4Lin4Lix4LiZ4LiX4LiZ4Liy4LiB4Liy4LijCivguKfguLHguJnguJfguJnguLXguKLguYwKK+C4p+C4seC4meC4l+C4oi0KK+C4p+C4seC4meC4l+C4ouC4q+C4seC4leC4luC5jAor4Lin4Lix4LiZ4LiX4Lii4Liy4Lin4Li44LiYCivguKfguLHguJnguJfguLIKK+C4p+C4seC4meC4l+C4tAor4Lin4Lix4LiZ4LiZ4Li04Lie4LiBCivguKfguLHguJnguYDguJnguLIKK+C4p+C4seC4meC4nuC4o+C4sAor4Lin4Lix4LiZ4Lie4Lij4Liw4LmE4Lih4LmI4Lih4Li14Lir4LiZ4LmA4LiU4Li14Lii4LinCivguKfguLHguJnguYDguJ7guYfguI0KK+C4p+C4seC4meC4n+C4uQor4Lin4Lix4LiZ4Lii4Lix4LiH4LiE4LmI4LizCivguKfguLHguJnguKXguK3guKIKK+C4p+C4seC4meC5geC4peC5ieC4p+C4p+C4seC4meC5gOC4peC5iOC4sgor4Lin4Lix4LiZ4Liq4Li44LiB4LiU4Li04LiaCivguKfguLHguJnguK3guLjguYLguJrguKrguJYKK+C4p+C4seC4mgor4Lin4Lix4Lia4LmGCivguKfguLHguJrguKfguLLguJoKK+C4p+C4seC4muC4p+C4suC4oQor4Lin4Lix4Lia4LmB4Lin4LiaCivguKfguLHguJrguYHguKfguKEKK+C4p+C4seC4muC5hiDguKvguKfguLPguYYKK+C4p+C4seC4m+C4m+C4sAor4Lin4Lix4Lih4Lih4Li04LiBCivguKfguLHguKIKK+C4p+C4seC4oi0KK+C4p+C4seC4ouC4o+C4uOC5iOC4mQor4Lin4Lix4Lii4Lin4Li44LiS4Li0CivguKfguLHguKXguIHguYwKK+C4p+C4seC4peC4hOC4uAor4Lin4Lix4Lil4Lii4LmMCivguKfguLHguKXguKXguKAKK+C4p+C4seC4peC4peC4tQor4Lin4Lix4LinCivguKfguLHguKfguYPguITguKPguYDguILguYnguLLguITguK3guIHguITguJnguJnguLHguYnguJkKK+C4p+C4seC4p+C4leC4seC4p+C4nOC4ueC5iQor4Lin4Lix4Lin4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguKfguLHguKfguJfguLDguYDguKUKK+C4p+C4seC4p+C4nuC4seC4meC4q+C4peC4seC4gQor4Lin4Lix4Lin4Lil4Li34Lih4LiV4Li14LiZCivguKfguLHguKfguKrguLHguJnguKvguKXguLHguIfguKvguKfguLAKK+C4p+C4seC4p+C4q+C4suC4ouC4peC5ieC4reC4oeC4hOC4reC4gQor4Lin4Lix4LiqLQor4Lin4Lix4Liq4LiE4LiT4LiZ4LiyCivguKfguLHguKrguJTguLgKK+C4p+C4seC4quC4leC4o+C5jAor4Lin4Lix4Liq4LiZ4LmMCivguKfguLHguKrguJnguLAKK+C4p+C4seC4quC4quC4sAor4Lin4Lix4Liq4Liq4Liy4LiZ4LiwCivguKfguLHguKrguYLguKrguJfguIEKK+C4p+C4sgor4Lin4LmI4LiyCivguKfguYnguLIKK+C4p+C4suC4gQor4Lin4LmJ4Liy4LiBCivguKfguLLguIHguIjguLTguKPguJ7guLHguKrguJXguKPguYwKK+C4p+C4suC4geC4oi0KK+C4p+C4suC4geC4ouC4quC4seC4oeC4nuC4seC4meC4mOC5jAor4Lin4Liy4LiB4Lii4LiwCivguKfguLLguIHguKPguLIKK+C4p+C5iOC4suC4geC4peC5iOC4suC4pwor4Lin4Liy4LiB4LiwCivguKfguYjguLLguIHguLLguKMKK+C4p+C5iOC4suC4guC4suC4mQor4Lin4LmI4Liy4LiE4Lin4Liy4LihCivguKfguLLguIcKK+C4p+C5iOC4suC4hwor4Lin4LmJ4Liy4LiHCivguKfguLLguIfguIHguYnguLLguKEKK+C4p+C4suC4h+C4guC5ieC4rQor4Lin4Liy4LiH4LmE4LiC4LmICivguKfguYjguLLguIfguIfguLLguJkKK+C4p+C4suC4h+C5gOC4h+C4tOC4mQor4Lin4Liy4LiH4LmD4LiICivguKfguLLguIfguJXguKXguLLguJQKK+C4p+C4suC4h+C4leC4seC4pwor4Lin4Liy4LiH4LiV4LiyCivguKfguLLguIfguYLguJUKK+C4p+C4suC4h+C4l+C5iOC4sgor4Lin4Liy4LiH4Lib4Li44LmI4LihCivguKfguLLguIfguYDguJ7guKXguLTguIcKK+C4p+C4suC4h+C4oeC4p+C4ogor4Lin4Liy4LiH4Lih4Liy4LiUCivguKfguLLguIfguKHguLfguK0KK+C4p+C4suC4h+C4ouC4sgor4Lin4Liy4LiH4Lin4Liy4LiiCivguKfguYjguLLguIfguYDguKfguYnguJkKK+C4p+C5ieC4suC4h+C5gOC4p+C4tOC5ieC4hwor4Lin4Liy4LiH4Lit4Liz4LiZ4Liy4LiICivguKfguYjguLLguIfguYjguLLguKIKK+C4p+C4suC4iOC4gQor4Lin4Liy4LiI4LiyCivguKfguYjguLLguIjguYnguLLguIcKK+C4p+C4suC4iOC4suC5hOC4m+C4ouC4sAor4Lin4Liy4LiI4Liy4LilCivguKfguLLguIrguYDguJvguKLguLAKK+C4p+C4suC4j+C4geC4sAor4Lin4Liy4LiT4Li04LiKCivguKfguLLguJPguLTguIrguIHguLAKK+C4p+C4suC4k+C4tOC4iuC4ouC5jAor4Lin4Liy4LiT4Li1CivguKfguLLguJQKK+C4p+C4suC4lOC5gOC4guC4teC4ouC4mQor4Lin4Liy4LiVLQor4Lin4Liy4LiV4Lib4Liy4LiZ4LiwCivguKfguLLguJXguKDguLHguKIKK+C4p+C4suC4leC4sAor4Lin4LmI4Liy4LiV4LmI4Liy4LiHCivguKfguLLguJXguLLguKPguLLguIfguYDguKvguKXguLXguYjguKLguKEKK+C4p+C5iOC4suC5geC4leC5iOC5gOC4guC4suC4reC4tOC5gOC4q+C4meC4suC5gOC4m+C5h+C4meC5gOC4reC4hwor4Lin4Liy4LiXCivguKfguLLguJctCivguKfguLLguJfguIEKK+C4p+C4suC4l+C4mQor4Lin4Liy4LiX4LiiLQor4Lin4Liy4LiX4Lii4LmMCivguKfguLLguJfguKLguIHguKMKK+C4p+C4suC4l+C4qOC4suC4quC4leC4o+C5jAor4Lin4Liy4LiX4Lio4Li04Lil4Lib4LmMCivguKfguLLguJfguLTguJUKK+C4p+C4suC4l+C4tOC4mQor4Lin4Liy4LiX4Li1CivguKfguYjguLLguJfguLXguYgKK+C4p+C4suC4mQor4Lin4LmI4Liy4LiZCivguKfguYjguLLguJnguIHguLXguJrguKHguYnguLIKK+C4p+C5iOC4suC4meC4geC4teC4muC5geC4o+C4lAor4Lin4LmI4Liy4LiZ4LmA4LiE4Lij4Li34LitCivguKfguLLguJnguIvguLfguJkKK+C4p+C5iOC4suC4meC4mOC4o+C4k+C4teC4quC4suC4owor4Lin4LmI4Liy4LiZ4LiZ4Liy4LiH4LiB4Lin4Lix4LiBCivguKfguYjguLLguJnguJnguLLguIfguKXguYnguK3guKEKK+C4p+C5iOC4suC4meC4meC5ieC4swor4Lin4LmI4Liy4LiZ4LmA4Lie4LiK4Lij4Lir4Li24LiHCivguKfguYjguLLguJnguKHguKvguLLguYDguKHguIYKK+C4p+C5iOC4suC4meC4oeC4teC4lOC4ouC4seC4mgor4Lin4Liy4LiZ4LijCivguKfguLLguJnguKPguLTguJnguJfguKPguYwKK+C4p+C5iOC4suC4meC5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC4guC4suC4pwor4Lin4LmI4Liy4LiZ4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHCivguKfguYjguLLguJnguKvguLLguIfguIrguYnguLLguIcKK+C4p+C5iOC4suC4meC4reC4meC4quC4reC4meC4h+C5iOC4suC4ogor4Lin4Liy4LmA4LiZ4LmA4LiU4Li14Lii4LihCivguKfguLLguJoKK+C4p+C4suC4muC4q+C4p+C4suC4oQor4Lin4Liy4Lib4LiwCivguKfguLLguJvguLTguJXguLAKK+C4p+C4suC4m+C4tQor4Lin4Liy4LihCivguKfguLLguKHguJktCivguKfguLLguKHguJnguLLguKfguJXguLLguKMKK+C4p+C4suC4oeC5geC4p+C4oQor4Lin4Liy4Lih4LiwCivguKfguLLguKHguLLguIjguLLguKMKK+C4p+C4suC5guC4oeC4owor4Lin4LmI4Liy4LmE4Lih4LmI4LmE4LiU4LmJCivguKfguLLguKIKK+C4p+C5iOC4suC4ogor4Lin4LmJ4Liy4LiiCivguKfguLLguKLguIrguJnguKHguYwKK+C4p+C4suC4ouC4iuC4teC4p+C4tOC4lQor4Lin4LmI4Liy4Lii4LiV4LiyCivguKfguYjguLLguKLguJnguYnguLPguKvguLLguIjguKPguLDguYDguILguYkKK+C4p+C4suC4ouC4m+C4o+C4suC4kwor4Lin4Liy4Lii4Lij4LmJ4Liy4LiiCivguKfguLLguKLguKfguK3guJQKK+C4p+C4suC4ouC4quC4sAor4Lin4Liy4Lii4Liq4Lix4LiH4LiC4Liy4LijCivguKfguLLguKLguLAKK+C4p+C5iOC4suC4ouC4suC4gQor4Lin4Liy4Lii4Liy4Lih4LiwCivguKfguLLguKLguLgKK+C4p+C4suC4ouC4uOC4geC4ueC4pQor4Lin4Liy4Lii4Li44Lia4Li44LiV4Lij4Lii4Liy4LiV4Lij4LiyCivguKfguLLguKLguLjguKDguLHguIHguKnguYwKK+C4p+C4suC5guC4ogor4Lin4Liy4LmC4Lii4LiY4Liy4LiV4Li4CivguKfguLLguKMKK+C4p+C4suC4o+C4ky0KK+C4p+C4suC4o+C4k+C4geC4owor4Lin4Liy4Lij4Lin4Liy4Lij4Li0CivguKfguLLguKPguKrguLLguKMKK+C4p+C4suC4o+C4quC4suC4o+C4qOC4suC4quC4leC4o+C5jAor4Lin4Liy4Lij4LiwCivguKfguLLguKPguLQKK+C4p+C4suC4o+C4tOC4iOC4owor4Lin4Liy4Lij4Li04LiKCivguKfguLLguKPguLTguJcKK+C4p+C4suC4o+C4tOC4mOC4owor4Lin4Liy4Lij4Li04Lie4Li04LiZ4LiX4Li4CivguKfguLLguKPguLUKK+C4p+C4suC4o+C4teC4igor4Lin4Liy4Lij4Li44LiTCivguKfguLLguKPguLjguJPguLUKK+C4p+C4suC4pQor4Lin4Liy4LilLQor4Lin4Liy4Lil4LiB4Lix4Lih4Lie4LilCivguKfguLLguKXguJjguLQKK+C4p+C4suC4peC5jOC4pwor4Lin4Liy4Lil4Lin4Li14LiK4LiZ4Li1CivguKfguLLguKXguLTguIHguLIKK+C4p+C4suC4peC4uOC4geC4sgor4Lin4Liy4LinCivguKfguYjguLLguKcKK+C4p+C5iOC4suC4p+C4leC4tOC4lOC4peC4oQor4Lin4Liy4Lin4Lin4Lix4LiaCivguKfguLLguKfguKfguLLguKEKK+C4p+C4suC4p+C5geC4p+C4pwor4Lin4LmI4Liy4Lin4LmA4Lir4Lil4Li04LiHCivguKfguYjguLLguKfguK3guJkKK+C4p+C5ieC4suC4p+C5iOC4reC4mQor4Lin4LmJ4Liy4Lin4Li44LmI4LiZCivguKfguLLguKrguJnguLAKK+C4p+C4suC4quC4meC4sgor4Lin4Liy4Liq4LieCivguKfguLLguKrguLAKK+C4p+C5iOC4suC4quC4suC4lOC5gOC4quC4teC4ouC5gOC4l+C5gOC4quC4teC4ogor4Lin4Liy4Liq4Li04LiZCivguKfguLLguKrguLUKK+C4p+C4suC4quC4uOC4geC4o+C4tQor4Lin4Liy4Liq4Li44LiB4Li1CivguKfguLLguKrguLjguYDguJfguJ4KK+C4p+C4suC4q+C4meC4sAor4Lin4Liy4Lir4LiwCivguKfguLLguKvguLTguJnguLUKK+C4p+C5ieC4suC5gOC4q+C4p+C5iAor4Lin4Liy4LisCivguKfguLLguKwtCivguKfguLLguKzguKHguLTguIQKK+C4p+C4tAor4Lin4Li04LiB4LiC4Lix4Lih4Lig4LmMCivguKfguLTguIHguILguLHguKHguKDguJnguLAKK+C4p+C4tOC4geC5gOC4guC4mwor4Lin4Li04LiB4LiI4LiwCivguKfguLTguIHguKPguKEKK+C4p+C4tOC4geC4o+C4seC4ogor4Lin4Li04LiB4Lij4Liy4LiZ4LiV4LmMCivguKfguLTguIHguKTguJUKK+C4p+C4tOC4geC4pOC4lS0KK+C4p+C4tOC4geC4pOC4leC4geC4suC4o+C4k+C5jAor4Lin4Li04LiB4Lik4LiV4LiB4Liy4LilCivguKfguLTguIHguKTguJXguLQKK+C4p+C4tOC4geC4pOC4leC4tC0KK+C4p+C4tOC4geC4pOC4leC4tOC4geC4suC4o+C4k+C5jAor4Lin4Li04LiB4Lik4LiV4Li04LiB4Liy4LilCivguKfguLTguIHguKUKK+C4p+C4tOC4geC4peC4iOC4o+C4tOC4lQor4Lin4Li04LiB4Liq4Li04LiVCivguKfguLTguIHguLHguJUKK+C4p+C4tOC4geC4seC4leC4tAor4Lin4Li04LiB4Lix4LiV4Li04LiB4Liy4Lij4LiBCivguKfguLTguIHguLHguJsKK+C4p+C4tOC4geC4seC4ogor4Lin4Li04LiB4Liy4LijCivguKfguLTguIHguLLguKUKK+C4p+C4tOC4geC4suC4pS0KK+C4p+C4tOC4geC4suC4peC5guC4oOC4iuC4meC5jAor4Lin4Li04LiE4Lir4LiwCivguKfguLTguYDguITguKPguLLguLDguKvguYwKK+C4p+C4tOC4huC4meC4sAor4Lin4Li04LiG4LmA4LiZ4LioCivguKfguLTguIbguYDguJnguKjguKfguKMKK+C4p+C4tOC4huC4suC4lQor4Lin4Li04LiG4Liy4LiqCivguKfguLTguIcKK+C4p+C4tOC5iOC4hwor4Lin4Li04LmI4LiH4LiB4Lij4Liw4LmC4LiU4LiU4LiC4LmJ4Liy4Lih4Lij4Lix4LmJ4LinCivguKfguLTguYjguIfguILguYnguLLguKHguKPguLHguYnguKcKK+C4p+C4tOC5iOC4h+C4h+C4seC4pwor4Lin4Li04LmI4LiH4LmA4LiV4LmJ4LiZCivguKfguLTguYjguIfguYDguJvguLXguYnguKLguKcKK+C4p+C4tOC5iOC4h+C4nOC4peC4seC4lAor4Lin4Li04LmI4LiH4Lih4LmJ4LiyCivguKfguLTguYjguIfguKPguK3guIEKK+C4p+C4tOC5iOC4h+C4o+C4sOC5geC4muC4hwor4Lin4Li04LmI4LiH4Lij4Liy4LinCivguKfguLTguIfguKfguK3guJkKK+C4p+C4tOC5iOC4h+C4p+C4seC4pwor4Lin4Li04LmI4LiH4Lin4LmI4Liy4LinCivguKfguLTguYjguIfguKfguLTguJrguLLguIEKK+C4p+C4tOC4h+C5gOC4p+C4teC4ouC4mQor4Lin4Li04LmI4LiH4Liq4Liy4Lih4LiC4LiyCivguKfguLTguIjguInguLTguIHguLAKK+C4p+C4tOC4iOC4ouC4uOC4lQor4Lin4Li04LiI4Lij4LiT4LiwCivguKfguLTguIjguKUKK+C4p+C4tOC4iOC4seC4geC4guC4k+C5jAor4Lin4Li04LiI4Lix4LiB4Lip4LiT4LmMCivguKfguLTguIjguLHguKIKK+C4p+C4tOC4iOC4suC4owor4Lin4Li04LiI4Liy4Lij4LiTLQor4Lin4Li04LiI4Liy4Lij4LiT4LmMCivguKfguLTguIjguLLguKPguJPguI3guLLguJMKK+C4p+C4tOC4iOC4tAor4Lin4Li04LiI4Li04LiB4Li04LiI4LiJ4LiyCivguKfguLTguIjguLTguJUKK+C4p+C4tOC4iOC4tOC4leC4owor4Lin4Li04LiI4Li04LiV4Lij4Lie4Li04Liq4LiU4Liy4LijCivguKfguLTguIjguLTguJkKK+C4p+C4tOC4iOC4uOC4kwor4Lin4Li04LiI4Li44Lij4LiTCivguKfguLTguIrguIrguLIKK+C4p+C4tOC4iuC4iuC4uAor4Lin4Li04LiK4LiK4Li44LiU4LiyCivguKfguLTguIrguIrguLjguJXguLIKK+C4p+C4tOC4iuC4iuC4uOC4peC4lOC4sgor4Lin4Li04LiK4LiN4LiwCivguKfguLTguIrguJkKK+C4p+C4tOC4iuC4meC4tQor4Lin4Li04LiK4LiiLQor4Lin4Li04LiK4Lix4LiiCivguKfguLTguIrguLIKK+C4p+C4tOC4iuC4suC4geC4suC4owor4Lin4Li04LiK4Liy4LiK4Li14LieCivguKfguLTguIrguLLguYLguJcKK+C4p+C4tOC4iuC4suC4mOC4owor4Lin4Li04LiK4Liy4LiZ4LiZ4LiwCivguKfguLTguIrguLLguYDguK3guIEKK+C4p+C4tOC4iuC4tOC4lQor4Lin4Li04LmA4LiK4Li14Lii4LijCivguKfguLTguI3guI3guLHguJXguJXguLQKK+C4p+C4tOC4jeC4jeC4suC4kwor4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKfguLTguI3guI3guLkKK+C4p+C4tOC4jeC4jeC4ueC4iuC4mQor4Lin4Li04LiN4LiN4Li54Lig4Liy4LieCivguKfguLTguJHguLnguKPguKLguYwKK+C4p+C4tOC4k+C4q+C4uAor4Lin4Li04LiUCivguKfguLTguJTguJ7guLfguYnguJkKK+C4p+C4tOC4lOC4seC4quC4lOC4tQor4Lin4Li04LiV4LiBCivguKfguLTguJXguIEtCivguKfguLTguJXguIHguIjguKPguLTguJUKK+C4p+C4tOC4leC4luC4suC4owor4Lin4Li04LiV4Liy4Lih4Li04LiZCivguKfguLTguJbguLUKK+C4p+C4tOC4l+C4mOC4sAor4Lin4Li04LiX4LiiLQor4Lin4Li04LiX4Lii4LiQ4Liy4LiZ4LiwCivguKfguLTguJfguKLguLIKK+C4p+C4tOC4l+C4ouC4suC4geC4owor4Lin4Li04LiX4Lii4Liy4LiB4LilCivguKfguLTguJfguKLguLLguYDguILguJUKK+C4p+C4tOC4l+C4ouC4suC4hOC4oQor4Lin4Li04LiX4Lii4Liy4LiE4Liy4LijCivguKfguLTguJfguKLguLLguJfguLLguJkKK+C4p+C4tOC4l+C4ouC4suC4mOC4owor4Lin4Li04LiX4Lii4Liy4LiZ4Li04Lie4LiZ4LiY4LmMCivguKfguLTguJfguKLguLLguKXguLHguKIKK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jAor4Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmM4LiB4Liy4Lii4Lig4Liy4LieCivguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYzguIrguLXguKfguKDguLLguJ4KK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jOC5gOC4l+C4hOC5guC4meC5guC4peC4ouC4teC5geC4peC4sOC4quC4tOC5iOC4h+C5geC4p+C4lOC4peC5ieC4reC4oQor4Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmM4Lib4Lij4Liw4Lii4Li44LiB4LiV4LmMCivguKfguLTguJfguKLguLgKK+C4p+C4tOC4l+C4ouC4uOC4lQor4Lin4Li04LiX4Lij4Li44Lih4LiwCivguKfguLTguJfguKfguLHguKoKK+C4p+C4tOC4l+C4seC4leC4luC4tAor4Lin4Li04LiX4Liy4Lij4LiT4LmMCivguKfguLTguJfguLLguKXguJnguYwKK+C4p+C4tOC4l+C4tOC4lQor4Lin4Li04LiX4Li5CivguKfguLTguJfguLnguKMKK+C4p+C4tOC5gOC4l+C4p+C4qQor4Lin4Li04LmA4LiX4LioCivguKfguLTguYDguJfguKjguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4p+C4tOC5gOC4l+C5guC4qOC4muC4suC4ogor4Lin4Li04LiYCivguKfguLTguJjguKfguLIKK+C4p+C4tOC4mOC4sgor4Lin4Li04LiY4Liy4LiZCivguKfguLTguJjguLUKK+C4p+C4tOC4mOC4uOC4o+C4sAor4Lin4Li04LiY4Li5CivguKfguLTguJjguLnguJvguJnguLAKK+C4p+C4tOC5iOC4mQor4Lin4Li04LiZ4LiiLQor4Lin4Li04LiZ4Lix4LiZ4LiV4Li5CivguKfguLTguJnguLHguKIKK+C4p+C4tOC4meC4seC4ouC4mOC4owor4Lin4Li04LiZ4Liy4LiX4Li1CivguKfguLTguJnguLLguKLguIEKK+C4p+C4tOC4meC4suC4qAor4Lin4Li04LiZ4Liy4LioLQor4Lin4Li04LiZ4Liy4Lio4LiB4Lij4Lij4LihCivguKfguLTguJnguLLguKjguKDguLHguKIKK+C4p+C4tOC4meC4tOC4iAor4Lin4Li04LiZ4Li04LiI4LiJ4Lix4LiiCivguKfguLTguJnguLTguJUKK+C4p+C4tOC4meC4tOC4muC4suC4lQor4Lin4Li04LiZ4Li04Lib4Liy4LiV4Li04LiBCivguKfguLTguYDguJnguJUKK+C4p+C4tOC5guC4meC4l+C4gQor4Lin4Li04Lia4Lix4LiV4Li0CivguKfguLTguJrguLLguIEKK+C4p+C4tOC4muC4uOC4pQor4Lin4Li04Lia4Li44Lil4Lii4LmMCivguKfguLTguJrguLnguKUKK+C4p+C4tOC4muC4ueC4peC4ouC5jAor4Lin4Li04Lib4LiB4Liy4LijCivguKfguLTguJvguI/guLTguKrguLLguKMKK+C4p+C4tOC4m+C5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4LiB4Liy4LijCivguKfguLTguJvguKPguLDguJXguLTguKrguLLguKMKK+C4p+C4tOC4m+C4o+C4sOC5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4Lil4Liy4LibCivguKfguLTguJvguKPguLDguKfguLLguKoKK+C4p+C4tOC4m+C4o+C4tOC4lQor4Lin4Li04Lib4Lil4Liy4LibCivguKfguLTguJvguKXguLLguKoKK+C4p+C4tOC4m+C4p+C4suC4qgor4Lin4Li04Lib4Lix4LiB4Lip4LmMCivguKfguLTguJvguLHguKrguKrguIEKK+C4p+C4tOC4m+C4seC4quC4quC4meC4sgor4Lin4Li04Lie4Liy4LiB4Lip4LmMCivguKfguLTguJ7guLLguIHguKnguYzguKfguLTguIjguLLguKPguJPguYwKK+C4p+C4tOC4nuC4tOC4mOC4l+C4seC4qOC4meC4sgor4Lin4Li04Lie4Li44LiYCivguKfguLTguKDguKctCivguKfguLTguKDguKfguJXguLHguJPguKvguLIKK+C4p+C4tOC4oOC4seC4h+C4hOC5jAor4Lin4Li04Lig4Lix4LiKCivguKfguLTguKDguLHguIotCivguKfguLTguKDguLHguIrguJ7guKLguLLguIHguKPguJPguYwKK+C4p+C4tOC4oOC4seC4iuC4p+C4suC4l+C4tQor4Lin4Li04Lig4Lix4LiV4LiV4Li0CivguKfguLTguKDguLIKK+C4p+C4tOC4oOC4suC4hAor4Lin4Li04Lig4Liy4LiKCivguKfguLTguKDguLLguJTguLIKK+C4p+C4tOC4oOC4suC4p+C4tQor4Lin4Li04Lig4Liy4LipCivguKfguLTguKDguLLguKoKK+C4p+C4tOC4oOC4uQor4Lin4Li04Lig4Li54Lip4LiT4LiwCivguKfguLTguKDguLnguKnguLIKK+C4p+C4tOC4oOC4ueC4qeC4tOC4lQor4Lin4Li04LmA4Lig4LiV4LiB4LmMCivguKfguLTguYDguKDguJfguIHguYwKK+C4p+C4tOC4oeC4mQor4Lin4Li04Lih4LilCivguKfguLTguKHguKXguLHguIEKK+C4p+C4tOC4oeC4peC4suC4gQor4Lin4Li04Lih4Lix4LiH4Liq4LiyCivguKfguLTguKHguLHguJXguLQKK+C4p+C4tOC4oeC4suC4mQor4Lin4Li04Lih4Li44LiCCivguKfguLTguKHguLjguJUKK+C4p+C4tOC4oeC4uOC4leC4leC4tAor4Lin4Li04LmA4Lih4Lil4Li34Lit4LiHCivguKfguLTguYLguKHguIHguILguYwKK+C4p+C4tOC5gOC4ouC4mQor4Lin4Li04LmC4Lii4LiECivguKfguLTguKMtCivguKfguLTguKPguIfguKPguK3guIcKK+C4p+C4tOC4o+C4leC4sAor4Lin4Li04Lij4Lih4LiT4LiwCivguKfguLTguKPguKfguLAKK+C4p+C4tOC4o+C4sAor4Lin4Li04Lij4Lix4LiH4Lij4Lit4LiHCivguKfguLTguKPguLHguIoKK+C4p+C4tOC4o+C4seC4lQor4Lin4Li04Lij4Lix4LiV4Li0CivguKfguLTguKPguLLguITguLAKK+C4p+C4tOC4o+C4suC4oQor4Lin4Li04Lij4Liy4Lin4LiwCivguKfguLTguKPguLTguKLguKDguLLguJ4KK+C4p+C4tOC4o+C4tOC4ouC4sAor4Lin4Li04Lij4Li44LiYCivguKfguLTguKPguLjguKzguKvguYwKK+C4p+C4tOC4o+C4uOC4rOC4q+C4gQor4Lin4Li04Lij4Li54LibCivguKfguLTguKPguLnguJvguLHguIHguKnguYwKK+C4p+C4tOC5gOC4o+C4meC4l+C4o+C5jAor4Lin4Li04LmC4Lij4LiECivguKfguLTguYLguKPguIgKK+C4p+C4tOC5guC4o+C4iOC4meC5jAor4Lin4Li04LmC4Lij4LiSCivguKfguLTguYLguKPguJgKK+C4p+C4tOC5guC4o+C4mOC4meC5jAor4Lin4Li04Lil4LiiLQor4Lin4Li04Lil4Lix4LiZ4LiU4LiyCivguKfguLTguKXguLHguKIKK+C4p+C4tOC4peC4suC4lAor4Lin4Li04Lil4Liy4LibCivguKfguLTguKXguLLguKfguLHguJPguKLguYwKK+C4p+C4tOC4peC4suC4qAor4Lin4Li04Lil4Liy4LiqCivguKfguLTguKXguLLguKrguLTguJnguLUKK+C4p+C4tOC4peC4tOC4m+C4lOC4sgor4Lin4Li04LmA4Lil4LibCivguKfguLTguYDguKXguJstCivguKfguLTguYDguKXguJvguJnguLAKK+C4p+C4tOC5guC4peC4gQor4Lin4Li04LmC4Lil4LiB4LiZ4LiwCivguKfguLTguYLguKXguIjguJnguLAKK+C4p+C4tOC5guC4peC4oQor4Lin4Li04LmE4LilCivguKfguLTguYTguKXguKfguKPguKPguJMKK+C4p+C4tOC4p+C4o+C4k+C5jAor4Lin4Li04Lin4Lij4Lij4LiY4LiZ4LmMCivguKfguLTguKfguKPguLAKK+C4p+C4tOC4p+C4seC4jwor4Lin4Li04Lin4Lix4LiS4LiZLQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMCivguKfguLTguKfguLHguJLguJnguLLguIHguLLguKMKK+C4p+C4tOC4p+C4seC4mQor4Lin4Li04Lin4Liy4LiXCivguKfguLTguKfguLLguKstCivguKfguLTguKfguLLguKvguYwKK+C4p+C4tOC4p+C4suC4q+C4sAor4Lin4Li04Lin4Li04LiICivguKfguLTguKfguLTguJUKK+C4p+C4tOC4p+C4tOC4mAor4Lin4Li04LmA4Lin4LiBCivguKfguLTguKjguKPguLjguJUKK+C4p+C4tOC4qOC4py0KK+C4p+C4tOC4qOC4p+C4geC4owor4Lin4Li04Lio4Lin4LiB4Lij4Lij4LihCivguKfguLTguKjguKfguIHguKPguKPguKHguKjguLLguKrguJXguKPguYwKK+C4p+C4tOC4qOC4seC4peC4ouC5jAor4Lin4Li04Lio4Liy4LiCLQor4Lin4Li04Lio4Liy4LiC4Lia4Li54LiK4LiyCivguKfguLTguKjguLLguILguLAKK+C4p+C4tOC4qOC4suC4guC4sgor4Lin4Li04Lio4Liy4LiH4LiE4LmMCivguKfguLTguKjguLLguKUKK+C4p+C4tOC4qOC4tOC4qeC4j+C5jAor4Lin4Li04Lio4Li44LiX4LiY4LmMCivguKfguLTguKjguLjguJfguJjguLTguYwKK+C4p+C4tOC5gOC4qOC4qQor4Lin4Li04LmA4Lio4Lip4LiTLQor4Lin4Li04LmA4Lio4Lip4LiT4LmMCivguKfguLTguYDguKjguKnguJPguIHguLLguKPguIEKK+C4p+C4tOC4qeC4k+C4uAor4Lin4Li04Lip4LiT4Li44LiB4Lij4Lij4LihCivguKfguLTguKnguJPguLjguYLguKXguIEKK+C4p+C4tOC4qeC4k+C4uOC5gOC4p+C4lwor4Lin4Li04Lip4LiY4LijCivguKfguLTguKnguLHguIHguJXguYwKK+C4p+C4tOC4qeC4seC4ogor4Lin4Li04Lip4Liy4LiTCivguKfguLTguKnguLjguKfguLHguJUKK+C4p+C4tOC4quC4geC4teC5iQor4Lin4Li04Liq4LihLQor4Lin4Li04Liq4LiiLQor4Lin4Li04Liq4Lij4Lij4LiK4LiZ4Li14Lii4LmMCivguKfguLTguKrguKTguJUKK+C4p+C4tOC4quC4quC4uOC4geC4o+C4o+C4oQor4Lin4Li04Liq4Lix4LiK4LiZ4LiyCivguKfguLTguKrguLHguI3guI3guLUKK+C4p+C4tOC4quC4seC4jeC4jeC4teC5geC4nuC4l+C4ouC5jAor4Lin4Li04Liq4Lix4LiN4LiN4Li14Lin4Li04LiX4Lii4LiyCivguKfguLTguKrguLHguKIKK+C4p+C4tOC4quC4suC4gi0KK+C4p+C4tOC4quC4suC4guC4muC4ueC4iuC4sgor4Lin4Li04Liq4Liy4LiC4LiwCivguKfguLTguKrguLLguILguLIKK+C4p+C4tOC4quC4suC4oeC4seC4jQor4Lin4Li04Liq4Liy4Lih4Lix4LiN4LiG4Liy4LiV4LiB4Lij4Lij4LihCivguKfguLTguKrguLLguKHguLLguJnguKLguJnguLLguKEKK+C4p+C4tOC4quC4suC4owor4Lin4Li04Liq4Liy4Lij4LiXCivguKfguLTguKrguLLguKUKK+C4p+C4tOC4quC4suC4quC4sAor4Lin4Li04Liq4Liy4Lir4LiB4Li04LiICivguKfguLTguKrguLTguJAKK+C4p+C4tOC4quC4uOC4h+C4hOC4suC4oeC4quC4teC4oeC4sgor4Lin4Li04Liq4Li44LiX4LiY4LmMCivguKfguLTguKrguLjguJfguJjguLTguYwKK+C4p+C4tOC4quC4ueC4leC4owor4Lin4Li04LmA4Liq4LiXCivguKfguLTguKvguIQKK+C4p+C4tOC4q+C4h+C4hOC5jAor4Lin4Li04Lir4Lil4Lix4LmI4LiZCivguKfguLTguKvguLLguKLguKrguLAKK+C4p+C4tOC4q+C4suC4owor4Lin4Li04Lir4Liy4LijLQor4Lin4Li04Lir4Liy4Lij4LmB4LiB4Lil4LiaCivguKfguLTguKvguLLguKPguITguJQKK+C4p+C4tOC4q+C4suC4o+C4l+C4tOC4qAor4Lin4Li04Lir4Liy4Lij4LiY4Lij4Lij4LihCivguKfguLTguKvguLLguKPguKLguK3guJQKK+C4p+C4tOC4q+C4suC4o+C4q+C4peC4p+C4hwor4Lin4Li04Lir4Li04LiH4Liq4LiwCivguKfguLTguKvguLTguIfguKrguLIKK+C4p+C4tOC5gOC4q+C4quC4sgor4Lin4Li04Lis4Lix4LiH4LiE4LmMCivguKfguLTguKzguLLguKMKK+C4p+C4tOC4rOC4suC4o+C5jAor4Lin4Li1CivguKfguLXguIjguLQKK+C4p+C4teC4iuC4meC4tQor4Lin4Li14LiT4LiyCivguKfguLXguYnguJQKK+C4p+C4teC4lS0KK+C4p+C4teC4oy0KK+C4p+C4teC4o+C4geC4o+C4o+C4oQor4Lin4Li14Lij4LiK4LiZCivguKfguLXguKPguJrguLjguKPguLjguKkKK+C4p+C4teC4o+C4quC4leC4o+C4tQor4Lin4Li14LmI4Lin4Lix4LiZCivguKfguLXguYjguYHguKfguKcKK+C4p+C4teC4quC4sAor4Lin4Li44LmJ4LiHCivguKfguLjguJDguLQKK+C4p+C4uOC4kgor4Lin4Li44LiS4Li0CivguKfguLjguJLguLQtCivguKfguLjguJLguLTguJrguLHguJXguKMKK+C4p+C4uOC4kuC4tOC4quC4oOC4sgor4Lin4Li44LiS4Li04Liq4Lih4Liy4LiK4Li04LiBCivguKfguLjguJQKK+C4p+C4uOC5iOC4mQor4Lin4Li44LmJ4LiZCivguKfguLjguYnguJnguIrguLIKK+C4p+C4uOC5iOC4meC5gOC4m+C5h+C4meC4iOC4uOC4peC4geC4kOC4tOC4mQor4Lin4Li44LmI4LiZ4Lin4Liy4LiiCivguKfguLjguYnguJnguYDguKrguYnguJkKK+C4p+C4uOC4mgor4Lin4Li44LmJ4LiiCivguKfguLjguKXguYHguJ/guKPguKEKK+C4p+C4ueC5iQor4Lin4Li54LiU4Lin4Liy4LiUCivguKfguLnguJoKK+C4p+C4ueC4muC4p+C4suC4mgor4Lin4Li54LmI4Lin4Liy4LihCivguYDguKfguYkKK+C5gOC4p+C4hAor4LmA4Lin4LiE4Li04LiZCivguYDguKfguITguLUKK+C5gOC4p+C4iAor4LmA4Lin4LiILQor4LmA4Lin4LiI4LiB4Li44LiO4Li1CivguYDguKfguIjguKHguKPguKPguIQKK+C5gOC4p+C4igor4LmA4Lin4LiKLQor4LmA4Lin4LiK4LiB4Lij4Lij4LihCivguYDguKfguIrguKDguLHguJPguJHguYwKK+C5gOC4p+C4iuC4ouC4seC4meC4leC5jAor4LmA4Lin4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKfguJDguJnguYwKK+C5gOC4p+C4k+C4sAor4LmA4Lin4LiT4Li0CivguYDguKfguJPguLTguIEKK+C5gOC4p+C4k+C4uAor4LmA4Lin4LiT4Li44Lin4Lix4LiZCivguYDguKfguJXguJnguYwKK+C5gOC4p+C4leC4owor4LmA4Lin4LiV4Liy4LilCivguYDguKfguJcKK+C5gOC4p+C4ly0KK+C5gOC4p+C4l+C4hOC4uQor4LmA4Lin4LiX4LiZ4LiyCivguYDguKfguJfguKHguJnguJXguKPguYwKK+C5gOC4p+C4l+C4ouC5jAor4LmA4Lin4LiX4Liy4LiH4LiE4LmMCivguYDguKfguJfguLLguIfguITguKjguLLguKrguJXguKPguYwKK+C5gOC4p+C4l+C4suC4meC4leC5jAor4LmA4Lin4LiX4Liy4LiZ4LiV4LiwCivguYDguKfguJfguLQKK+C5gOC4p+C4l+C4tQor4LmA4Lin4LiY4LiwCivguYDguKfguJkKK+C5gOC4p+C5ieC4mQor4LmA4Lin4LiZ4LiE4Li34LiZ4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguYDguKfguYnguJnguYHguJXguYgKK+C5gOC4p+C4meC5hOC4leC4ogor4LmA4Lin4LmE4LiZ4LiiCivguYDguKfguKHguLAKK+C5gOC4p+C4oeC4seC4lQor4LmA4Lin4Lih4Lix4LiV4Li04LiBLQor4LmA4Lin4Lih4Liy4LiV4Li04LiBCivguYDguKfguYnguKIKK+C5gOC4p+C4owor4LmA4Lin4Lij4Lih4LiT4Li1CivguYDguKfguKPguLUKK+C5gOC4p+C5guC4o+C4iOC4meC5jAor4LmA4Lin4Lil4LiyCivguYDguKfguYDguKXguJnguIvguLUKK+C5gOC4p+C4p+C4seC4kwor4LmA4Lin4Lin4Lix4LiT4LiT4Li04Lii4LiwCivguYDguKfguKjguKHguYwKK+C5gOC4p+C4qOC4ouC5jAor4LmA4Lin4Lio4Lii4LiyCivguYDguKfguKrguJnguYwKK+C5gOC4p+C4quC4oOC4uQor4LmA4Lin4Liq4Lih4LmMCivguYDguKfguKrguKHguLAKK+C5gOC4p+C4quC4p+C4seC4kwor4LmA4Lin4Liq4Liq4LiwCivguYDguKfguKrguKrguLHguJnguJTguKMKK+C5gOC4p+C4quC4quC4uOC4geC4o+C4o+C4oQor4LmA4Lin4Liq4Liq4Li44Lin4Lix4LiTCivguYDguKfguKrguLLguKPguLHguIoKK+C5gOC4p+C4quC4tAor4LmA4Lin4Liq4Li04Lii4LiyCivguYDguKfguKvguJkKK+C5gOC4p+C4q+C4sAor4LmA4Lin4Lir4Lix4LiH4LiE4LmMCivguYDguKfguKvguLHguJvguJXguLQKK+C5gOC4p+C4q+C4sgor4LmA4Lin4Lir4Liy4Lii4LiqCivguYDguKfguKvguLLguKoKK+C5gOC4p+C4rOC4uAor4LmA4Lin4Lis4Li44LiB4Liy4LijCivguYDguKfguKzguLjguKPguLTguKIKK+C5gOC4p+C4rOC4uOC4p+C4seC4mQor4LmA4Lin4LmI4LitCivguYDguKfguYnguLIKK+C5gOC4p+C5ieC4suC4p+C4reC4mQor4LmA4Lin4Li04LiBCivguYDguKfguLTguYnguIcKK+C5gOC4p+C4tOC5ieC4h+C4p+C5ieC4suC4hwor4LmA4Lin4Li14LmI4LiiCivguYDguKfguLXguKLguIcKK+C5gOC4p+C4teC4ouC4mQor4LmA4Lin4Li14Lii4LiZ4LmA4LiX4Li14Lii4LiZCivguYDguKfguLXguKLguJnguKvguLHguKcKK+C5gOC4p+C4teC4ouC4owor4LmA4Lin4Li14LmI4Lii4LinCivguYHguKfguYkKK+C5geC4p+C4hwor4LmB4Lin4LmJ4LiHCivguYHguKfguYnguIfguIHguLHguJQKK+C5geC4p+C4lAor4LmB4Lin4LiU4Lil4LmJ4Lit4LihCivguYHguKfguJTguKfguIcKK+C5geC4p+C4leC4owor4LmB4Lin4LiZCivguYHguKfguYjguJkKK+C5geC4p+C5iOC4meC4guC4ouC4suC4ogor4LmB4Lin4LiZ4LiU4LiyCivguYHguKfguYjguJnguJXguLIKK+C5geC4p+C5iOC4meC4n+C5ieC4sgor4LmB4Lin4LmI4LiZ4LmE4LinCivguYHguKfguJoKK+C5geC4p+C4muC5hgor4LmB4Lin4Lia4Lin4Lix4LiaCivguYHguKfguKEKK+C5geC4p+C4pwor4LmB4Lin4LmI4LinCivguYHguKfguKfguKfguLLguKEKK+C5geC4p+C4p+C4p+C4suC4pwor4LmB4Lin4Lin4Lin4Li04LmA4LiK4Li14Lii4LijCivguYHguKfguLAKK+C5guC4pwor4LmC4Lin4LmICivguYLguKfguIHguLLguKMKK+C5guC4p+C5iOC4hwor4LmC4Lin4LiX4Liy4LiZCivguYLguKfguYnguKIKK+C5guC4p+C4ouC4p+C4suC4ogor4LmC4Lin4LmJ4LmA4Lin4LmJCivguYLguKfguKrguLLguJkKK+C5guC4p+C4q+C4suC4owor4LmE4LinCivguYTguKfguYkKK+C5hOC4p+C4geC4ueC4k+C4kOC5jAor4LmE4Lin4LmJ4LmD4LiICivguYTguKfguJHguLnguKPguKLguYwKK+C5hOC4p+C5ieC4leC4seC4pwor4LmE4Lin4LiX4Lii4LmMCivguYTguKfguYnguJfguLjguIHguILguYwKK+C5hOC4p+C5ieC4mOC4uOC4o+C4sAor4LmE4Lin4LmJ4LmA4LiZ4Li34LmJ4Lit4LmA4LiK4Li34LmI4Lit4LmD4LiICivguYTguKfguJ7guIjguJnguYwKK+C5hOC4p+C5hOC4nwor4LmE4Lin4LmJ4Lii4LioCivguYTguKfguKLguLLguIHguKPguJPguYwKK+C5hOC4p+C4ouC4suC4p+C4seC4iOC4geC4owor4LmE4Lin4Lii4Liy4Lin4Lix4LiI4Lih4Lix4LiiCivguYTguKfguYnguKXguLLguKIKK+C5hOC4p+C4p+C4o+C4o+C4kwor4LmE4Lin4Lip4LiT4LieCivguYTguKfguYnguKvguJnguYnguLIKK+C5hOC4p+C5ieC4reC4suC4peC4seC4ogor4LmE4Lin4LmC4Lit4Lil4Li04LiZCivguKgKK+C4qOC4gQor4Lio4LiB4LiPCivguKjguIHguKUKK+C4qOC4geC4uOC4mQor4Lio4LiB4Li44LiZ4LiV4LmMCivguKjguIHguLjguJnguLQKK+C4qOC4geC4uOC4meC4tQor4Lio4LiH4LiB4LiyCivguKjguIjguLUKK+C4qOC4kAor4Lio4LiU4LiBCivguKjguJUKK+C4qOC4lS0KK+C4qOC4leC4gQor4Lio4LiV4Lia4Liy4LiXCivguKjguJXguJvguJfguLUKK+C4qOC4leC4nuC4o+C4o+C4qQor4Lio4LiV4Lig4Li04Lip4Lix4LiKCivguKjguJXguKfguKPguKPguKkKK+C4qOC4leC4quC4seC4h+C4p+C4seC4leC4quC4o+C5jAor4Lio4LiV4Lix4LiG4LiZ4Li1CivguKjguJnguLQKK+C4qOC4meC4tOC4p+C4suC4owor4Lio4LieCivguKjguJ7guKUKK+C4qOC4oQor4Lio4Lih4LiZCivguKjguKIKK+C4qOC4ouC4meC4sAor4Lio4Lii4Liy4LihCivguKjguKLguLLguKHguKUKK+C4qOC4owor4Lio4Lij4LiZ4Liy4Lij4Liy4Lii4LiT4LmMCivguKjguKPguKAKK+C4qOC4o+C4oeC4k+C4sAor4Lio4Lij4Lij4LiB4Lij4LiyCivguKjguKPguKfguJPguLAKK+C4qOC4o+C4p+C4k+C4teC4ouC5jAor4Lio4Lij4Lin4Li04Lip4LiQ4LiyCivguKjguKPguKjguLTguKXguJvguYzguYTguKHguYjguIHguLTguJnguIHguLHguJkKK+C4qOC4o+C4sOC4p+C4kwor4Lio4Lij4Lix4LiT4Lii4LmMCivguKjguKPguLHguJPguKLguLkKK+C4qOC4o+C4seC4luC4meC4sAor4Lio4Lij4Lix4LiXCivguKjguKPguLHguJfguJjguLIKK+C4qOC4o+C4seC4ogor4Lio4Lij4Liy4LiX4LiYLQor4Lio4Lij4Liy4LiX4LiY4LmMCivguKjguKPguLLguJfguJjguJ7guKPguJUKK+C4qOC4o+C4suC4ngor4Lio4Lij4Liy4Lie4LiBCivguKjguKPguLLguKLguLjguJgKK+C4qOC4o+C4suC4p+C4gQor4Lio4Lij4Liy4Lin4LiT4LiwCivguKjguKPguLLguKfguKPguJPguYwKK+C4qOC4o+C4suC4quC4meC5jAor4Lio4Lij4Li1CivguKjguKPguLXguJXguKPguLHguIcKK+C4qOC4o+C4teC4quC4seC4h+C4hOC4teC4lQor4Lio4Lij4Li44LiVCivguKjguKPguLjguJXguLQKK+C4qOC4pOC4hOC4suC4pQor4Lio4Lik4LiH4LiE4LmMCivguKjguKTguIfguITguLLguKMKK+C4qOC4pOC4h+C4hOC4suC4o+C4tOC4mQor4Lio4Lik4LiH4LiE4Liy4Lij4Li1CivguKjguKXguKAKK+C4qOC4peC4seC4lgor4Lio4Lil4Li04Lip4LiP4LmMCivguKjguKXguLTguKnguLIKK+C4qOC4pwor4Lio4Lin4Lio4Li44LijCivguKjguKfguLHguKoKK+C4qOC4p+C4seC4quC4mQor4Lio4Lin4LiyCivguKjguKfguLLguJkKK+C4qOC4p+C4suC4qgor4Lio4LioLQor4Lio4Lio4LiY4LijCivguKjguKjguJ7guLTguJnguJfguLjguYwKK+C4qOC4qOC4peC4seC4geC4qeC4k+C5jAor4Lio4Lio4LiwCivguKjguKjguLQKK+C4qOC4qOC4tOC4geC4qeC4seC4ogor4Lio4Lio4Li04LiC4Lix4LiT4LiR4LmMCivguKjguKjguLTguYDguITguKPguLLguLDguKvguYwKK+C4qOC4qOC4tOC4mOC4owor4Lio4Lio4Li04LiZCivguKjguKjguLTguKHguJPguJHguKUKK+C4qOC4qOC4tOC4p+C4tOC4oeC4pQor4Lio4Lio4Li1CivguKjguKrguLIKK+C4qOC4rQor4Lio4Lit4LiBCivguKjguK3guIHguIHguKXguLHguJoKK+C4qOC4reC4geC4geC4swor4Lio4Lit4LiB4LiB4Liz4Lih4LiyCivguKjguK3guIHguITguLnguYkKK+C4qOC4reC4geC4leC4ueC4oQor4Lio4Lix4LiB4LiU4LiyCivguKjguLHguIHguJTguLQKK+C4qOC4seC4geC4lOC4tOC5jAor4Lio4Lix4LiB4LiU4Li04LiZ4LiyCivguKjguLHguIHguJTguLTguYzguKjguKPguLUKK+C4qOC4seC4geC4lOC4tOC5jOC4quC4tOC4l+C4mOC4tOC5jAor4Lio4Lix4LiB4LiV4Li0CivguKjguLHguIHguKItCivguKjguLHguIHguKLguYwKK+C4qOC4seC4geC4ouC4oOC4suC4ngor4Lio4Lix4LiB4Lii4LiwCivguKjguLHguIHguKMtCivguKjguLHguIHguKPguKDguJ7guJnguYwKK+C4qOC4seC4geC4o+C4suC4igor4Lio4Lix4LiB4Lij4Li04LiZ4LiX4Lij4LmMCivguKjguLHguIHguYDguKPguJnguJfguKPguYwKK+C4qOC4seC4h+C4geC4owor4Lio4Lix4LiH4LiB4LiyCivguKjguLHguIfguIHguLgKK+C4qOC4seC4leC4o+C4uQor4Lio4Lix4LiX4LiY4LiZ4LiwCivguKjguLHguJnguKrguJnguLAKK+C4qOC4seC4meC4quC4meC4teC4ouC5jAor4Lio4Lix4Lie4LiXLQor4Lio4Lix4Lie4LiX4LmMCivguKjguLHguJ7guJfguKHguLnguKXguKfguLTguJfguKLguLIKK+C4qOC4seC4ouC4ouC4sgor4Lio4Lix4LilCivguKjguLHguKXguIEKK+C4qOC4seC4peC4geC4tQor4Lio4Lix4Lil4LiiLQor4Lio4Lix4Lil4Lii4LiB4Lij4Lij4LihCivguKjguLHguKXguKLguYHguJ7guJfguKLguYwKK+C4qOC4seC4peC4ouC4qOC4suC4quC4leC4o+C5jAor4Lio4Lix4Liq4LiU4LijCivguKjguLHguKrguJXguKMtCivguKjguLHguKrguJXguKPguIHguKPguKPguKEKK+C4qOC4seC4quC4leC4o+C4geC4suC4owor4Lio4Lix4Liq4LiV4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguKjguLHguKrguJXguKPguLIKK+C4qOC4seC4quC4ogor4Lio4Liy4LiBCivguKjguLLguIEtCivguKjguLLguIHguJXguLAKK+C4qOC4suC4geC4oOC4seC4geC4qeC5jAor4Lio4Liy4LiB4LiiLQor4Lio4Liy4LiB4Lii4LmA4LiB4LiV4Li4CivguKjguLLguIHguKLguJ7guLjguJfguJgKK+C4qOC4suC4geC4ouC4oeC4uOC4meC4tQor4Lio4Liy4LiB4Lii4LiwCivguKjguLLguI7guIEKK+C4qOC4suC4kOC4ouC4sAor4Lio4Liy4LiTCivguKjguLLguJUKK+C4qOC4suC4meC4lS0KK+C4qOC4suC4meC4leC5jAor4Lio4Liy4LiZ4LiV4Lij4LiqCivguKjguLLguJnguJXguLQKK+C4qOC4suC4meC4leC4tOC4gS0KK+C4qOC4suC4meC4leC4tOC5guC4q+C4oQor4Lio4Liy4LibCivguKjguLLguJstCivguKjguLLguJvguKHguLjguIHguJXguLTguYwKK+C4qOC4suC4m+C4suC4meC4leC5jAor4Lio4Liy4Lie4LijCivguKjguLLguKPguJcKK+C4qOC4suC4o+C4l+C4p+C4tOC4qeC4uOC4p+C4seC4lQor4Lio4Liy4Lij4LiX4Li54LilCivguKjguLLguKPguLTguIHguLIKK+C4qOC4suC4pQor4Lio4Liy4Lil4LiB4LiH4Liq4Li44LilCivguKjguLLguKXguYHguILguKfguIcKK+C4qOC4suC4peC4hOC4lOC4teC5gOC4lOC5h+C4geC5geC4peC4sOC5gOC4ouC4suC4p+C4iuC4mQor4Lio4Liy4Lil4LiI4Lix4LiH4Lir4Lin4Lix4LiUCivguKjguLLguKXguIrguLHguYnguJnguJXguYnguJkKK+C4qOC4suC4peC4juC4teC4geC4sgor4Lio4Liy4Lil4LmA4LiV4Li14LmJ4LiiCivguKjguLLguKXguJfguKvguLLguKMKK+C4qOC4suC4peC4m+C4geC4hOC4o+C4reC4hwor4Lio4Liy4Lil4LmC4Lib4Lij4Li04Liq4Lig4LiyCivguKjguLLguKXguYDguJ7guLXguKLguIfguJXguLIKK+C4qOC4suC4peC5geC4nuC5iOC4hwor4Lio4Liy4Lil4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguKjguLLguKXguYDguKLguLLguKfguIrguJnguYHguKXguLDguITguKPguK3guJrguITguKPguLHguKcKK+C4qOC4suC4peC5guC4peC4gQor4Lio4Liy4Lil4Liq4LiW4Li04LiV4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguKjguLLguKXguKrguLnguIcKK+C4qOC4suC4peC4quC4ueC4h+C4quC4uOC4lAor4Lio4Liy4Lil4Lit4Liy4LiN4LiyCivguKjguLLguKXguK3guLjguJfguJjguKPguJPguYwKK+C4qOC4suC4peC4reC4uOC4l+C4mOC4o+C4k+C5jOC4oOC4suC4hAor4Lio4Liy4Lil4LiyCivguKjguLLguKXguLLguJvguKPguLDguIrguLLguITguKEKK+C4qOC4suC4peC4suC4o+C4suC4ogor4Lio4Liy4Lil4Liy4Liq4Lij4LiHCivguKjguLLguKjguKfguLHguJUKK+C4qOC4suC4quC4gQor4Lio4Liy4Liq4LiU4LiyCivguKjguLLguKrguJXguKMtCivguKjguLLguKrguJXguKPguYwKK+C4qOC4suC4quC4leC4o+C4sgor4Lio4Liy4Liq4LiV4Lij4Liy4LiI4Liy4Lij4Lii4LmMCivguKjguLLguKrguJktCivguKjguLLguKrguJnguYwKK+C4qOC4suC4quC4meC4iOC4seC4geC4owor4Lio4Liy4Liq4LiZ4LiyCivguKjguLLguKrguJnguLXguKItCivguKjguLLguKrguJnguLXguKLguYwKK+C4qOC4suC4quC4meC4ueC4m+C4luC4seC4oeC4oOC4gQor4Lio4Li04LiB4Lip4LiBCivguKjguLTguIHguLLguKMKK+C4qOC4tOC4guC4owor4Lio4Li04LiC4Lij4Li04LiZCivguKjguLTguILguKPguLUKK+C4qOC4tOC4guC4seC4k+C4keC5jAor4Lio4Li04LiC4LiyCivguKjguLTguITguLLguKUKK+C4qOC4tOC4h+C4guC4owor4Lio4Li04LiH4LiC4Lij4Li04LiZCivguKjguLTguJUKK+C4qOC4tOC4luC4tQor4Lio4Li04Lie4Li04Lij4LiwCivguKjguLTguKMtCivguKjguLTguKPguJvguKPguLDguKDguLIKK+C4qOC4tOC4o+C4sAor4Lio4Li04Lij4LiyCivguKjguLTguKPguLLguKHguJ7guLjguIoKK+C4qOC4tOC5guC4o+C4o+C4seC4leC4meC5jAor4Lio4Li04LmC4Lij4Lij4Liy4LiaCivguKjguLTguYLguKPguYDguKfguJDguJnguYwKK+C4qOC4tOC4peC4my0KK+C4qOC4tOC4peC4m+C5jAor4Lio4Li04Lil4Lib4LiB4LijCivguKjguLTguKXguJvguIHguKPguKPguKEKK+C4qOC4tOC4peC4m+C4geC4suC4owor4Lio4Li04Lil4Lib4LiB4Li04LiICivguKjguLTguKXguJvguKfguLTguJfguKLguLIKK+C4qOC4tOC4peC4m+C4qOC4suC4quC4leC4o+C5jAor4Lio4Li04Lil4Lib4LiwCivguKjguLTguKXguJvguLTguJkKK+C4qOC4tOC4peC4m+C4tQor4Lio4Li04Lil4LiyCivguKjguLTguKXguLLguKTguIHguKnguYwKK+C4qOC4tOC4peC4suC5geC4peC4hwor4Lio4Li04LinLQor4Lio4Li04Lin4LmC4Lih4LiB4LiC4LmMCivguKjguLTguKfguKXguLbguIfguITguYwKK+C4qOC4tOC4p+C5gOC4p+C4lwor4Lio4Li04Lin4LiwCivguKjguLTguKjguLXguKPguLAKK+C4qOC4tOC4qOC4uAor4Lio4Li04Lip4LiO4Li0CivguKjguLTguKnguI/guYwKK+C4qOC4tOC4qeC4ouC5jAor4Lio4Li04Lip4Lii4LmM4Lih4Li14LiE4Lij4Li5CivguKjguLXguILguKMKK+C4qOC4teC4guC4o+C4tOC4mQor4Lio4Li14LiC4Lij4Li1CivguKjguLXguJUtCivguKjguLXguJXguIHguLLguKUKK+C4qOC4teC4leC4pQor4Lio4Li14Lij4Lip4LiwCivguKjguLXguKPguKnguLDguIHguKPguLDguJrguLfguK0KK+C4qOC4teC4o+C4qeC4sOC5guC4hAor4Lio4Li14Lij4Lip4Liw4LiK4LmJ4Liy4LiHCivguKjguLXguKPguKnguLDguYDguJnguLfguYnguK0KK+C4qOC4teC4pQor4Lio4Li14Lil4LiI4Li44LmI4LihCivguKjguLXguKXguJjguKPguKPguKEKK+C4qOC4teC4peC4oeC4q+C4suC4quC4meC4tOC4lwor4Lio4Li14Lil4Lil4LmJ4Liy4LiH4Lia4Liy4LibCivguKjguLXguKXguKfguLHguJUKK+C4qOC4teC4peC4reC4lAor4Lio4Li24LiBCivguKjguLbguIHguKnguLIKK+C4qOC4tuC4geC4qeC4suC4mOC4tOC4geC4suC4owor4Lio4Li24LiB4Lip4Liy4LiZ4Li04LmA4LiX4Lio4LiB4LmMCivguKjguLbguIHguKvguJnguYnguLLguJnguLLguIcKK+C4qOC4uOC4geC4oy0KK+C4qOC4uOC4geC4o+C5jAor4Lio4Li44LiB4Lij4Lin4Lij4Lij4LiTCivguKjguLjguIHguKUtCivguKjguLjguIHguKXguJvguLHguIHguKnguYwKK+C4qOC4uOC4geC4peC4seC4oQor4Lio4Li44LiB4LiwCivguKjguLjguIjguLQKK+C4qOC4uOC4iOC4tOC4geC4o+C4o+C4oQor4Lio4Li44LiX4LiYCivguKjguLjguJfguJjguLQKK+C4qOC4uOC4mQor4Lio4Li44LiZ4Lix4LiBCivguKjguLjguJnguLQKK+C4qOC4uOC4oC0KK+C4qOC4uOC4oOC4geC4owor4Lio4Li44Lig4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKjguLjguKDguJnguLTguKHguLTguJUKK+C4qOC4uOC4oOC4oeC4seC4quC4lOC4uAor4Lio4Li44Lig4Lih4Liy4LiV4Lij4LiyCivguKjguLjguKDguKHguLLguKoKK+C4qOC4uOC4oOC4oy0KK+C4qOC4uOC4oOC4reC4seC4geC4qeC4owor4Lio4Li44Lig4Liy4LiH4LiE4LmMCivguKjguLjguKXguIEtCivguKjguLjguKXguIHguLLguIHguKMKK+C4qOC4uOC4peC4geC4suC4o+C4seC4geC4qeC5jAor4Lio4Li44Lil4Li1CivguKjguLjguKnguLTguKMKK+C4qOC4ueC4geC4owor4Lio4Li54LiX4LijCivguKjguLnguJnguKItCivguKjguLnguJnguKLguYwKK+C4qOC4ueC4meC4ouC5jOC4geC4suC4o+C4hOC5ieC4sgor4Lio4Li54LiZ4Lii4LmM4LiK4Li44Lih4LiK4LiZCivguKjguLnguJnguKLguYzguJ7guYjguLLguKvguYwKK+C4qOC4ueC4meC4ouC4oOC4suC4ngor4Lio4Li54LiZ4Lii4LmM4LmA4Lii4Liy4Lin4LiK4LiZCivguKjguLnguJnguKLguKfguLLguJcKK+C4qOC4ueC4meC4ouC5jOC4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4Lio4Li54LiZ4Lii4LmM4Liq4Li54LiV4LijCivguKjguLnguKUKK+C4qOC4ueC4peC4tOC4mQor4LmA4Lio4Lij4LiT4Li1CivguYDguKjguKPguKnguJAtCivguYDguKjguKPguKnguJDguYwKK+C5gOC4qOC4o+C4qeC4kOC4geC4tOC4iAor4LmA4Lio4Lij4Lip4LiQ4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKjguKPguKnguJDguLUKK+C5gOC4qOC4o+C5ieC4sgor4LmA4Lio4Lij4LmJ4Liy4Lir4Lih4Lit4LiHCivguYDguKjguKXguKkKK+C5gOC4qOC4p+C4lOC4h+C4hOC5jAor4LmA4Lio4Lin4LiU4Li14LigCivguYDguKjguKfguJUKK+C5gOC4qOC4p+C4lS0KK+C5gOC4qOC4p+C4leC4h+C4hOC5jAor4LmA4Lio4Lin4LiV4LiJ4Lix4LiV4LijCivguYDguKjguKfguJXguKMKK+C5gOC4qOC4p+C4leC4seC4oeC4nuC4owor4LmA4Lio4Lin4LiV4Li04LigCivguYDguKjguKfguJXguLXguKAKK+C5gOC4qOC4p+C5gOC4leC4oAor4LmA4Lio4Lin4Liy4LilCivguYDguKjguKkKK+C5gOC4qOC4qeC5gOC4geC4tOC4mQor4LmA4Lio4Lip4LiL4LmJ4Lit4LiZCivguYDguKjguKnguKrguYjguKfguJkKK+C5gOC4qOC4qeC4quC4tOC4mgor4LmA4Lio4Liy4LiILQor4LmA4Lio4Liy4LmE4LiI4LiiCivguYDguKjguLLguKPguYwKK+C5gOC4qOC4suC4o+C4ouC4sAor4LmA4Lio4Li04LiBCivguYDguKjguLXguKLguKMKK+C5guC4qOC4gQor4LmC4Lio4LiBLQor4LmC4Lio4LiB4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguYLguKjguIHguKjguLHguKXguKLguYwKK+C5guC4qOC4geC4sgor4LmC4Lio4LiB4Liy4LiU4Li54LijCivguYLguKjguIHguLLguKXguLHguKIKK+C5guC4qOC4geC4tQor4LmC4Lio4LiI4LiZ4LiwCivguYLguKjguIjguJnguLXguKLguLAKK+C5guC4qOC4iOC4tAor4LmC4Lio4LiW4LiwCivguYLguKjguJjguJnguLAKK+C5guC4qOC4nOC4sAor4LmC4Lio4LigCivguYLguKjguKDguJkKK+C5guC4qOC4oOC4sgor4LmC4Lio4Lig4Li04LiVCivguYLguKjguKDguLTguJkKK+C5guC4qOC4oOC4tOC4qeC4kOC5jAor4LmC4Lio4Lig4Li1CivguYLguKjguKPguJPguLQKK+C5guC4qOC4o+C4k+C4tQor4LmC4Lio4Lij4LiU4LiyCivguYLguKjguKPguJXguKMKK+C5guC4qOC4peC4gQor4LmE4Lio4LilCivguYTguKjguKUtCivguYTguKjguKfguLAKK+C4qQor4Lip4Lih4LiyCivguKnguKHguLLguKLguLjguKHguYHguJvguKXguIcKK+C4qeC4seC4jwor4Lip4Lix4LiP4LiB4LiwCivguKnguLHguJEKK+C4qeC4seC4kwor4Lip4Lix4LipCivguKnguLHguKnguI/guLUKK+C4qeC4seC4qeC4kAor4Lip4Lix4Lip4LiQ4Li1CivguYLguKnguJHguKgKK+C5guC4qeC4keC4qOC4seC4mQor4LiqCivguKrguIEtCivguKrguIHguI8tCivguKrguIHguI/guKDguLLguKMKK+C4quC4geC4j+C4sAor4Liq4LiB4LiX4Liy4LiE4Liy4Lih4Li04Lic4LilCivguKrguIHguJfguLLguITguLLguKHguLTguKHguKPguKPguIQKK+C4quC4geC4l+C4suC4hOC4suC4oeC4tQor4Liq4LiB4LiZ4LiY4LmMCivguKrguIHguJvguKPguIEKK+C4quC4geC4o+C4k+C4teC4ouC5jAor4Liq4LiB4Lij4Lij4LiI4LmMCivguKrguIHguKPguKPguKHguIHguKPguLTguKLguLIKK+C4quC4geC4pQor4Liq4LiB4LilLQor4Liq4LiB4Lil4Lih4Lir4Liy4Liq4Lix4LiH4LiG4Lib4Lij4Li04LiT4Liy4Lii4LiBCivguKrguIHguKXguYLguKXguIEKK+C4quC4geC4p+C4suC4l+C4tQor4Liq4LiB4Lix4LiUCivguKrguIHguLHguJTguYHguITguKPguYgKK+C4quC4geC4sgor4Liq4LiB4Liy4LinCivguKrguIHguLTguJfguLLguITguLLguKHguLUKK+C4quC4geC4tQor4Liq4LiB4Li14LiZ4LmJ4LizCivguKrguIHguLjguJMKK+C4quC4geC4uOC4k+C4sgor4Liq4LiB4Li44LiT4Li1CivguKrguIHguLjguJkKK+C4quC4geC4uOC4meC4leC5jAor4Liq4LiB4Li44LilCivguKrguIHguLjguKXguKPguLjguJnguIrguLLguJXguLQKK+C4quC5gOC4geC4lQor4Liq4LmA4LiB4LiV4LiZ4LmJ4Liz4LmB4LiC4LmH4LiHCivguKrguYHguIHguJnguYDguJTguLXguKLguKEKK+C4quC4guC4sAor4Liq4LiC4LiyCivguKrguILguLQKK+C4quC4hwor4Liq4LmI4LiHCivguKrguIfguIHguKMKK+C4quC4h+C4geC4o+C4suC4meC4leC5jAor4Liq4LmI4LiH4LiB4Lil4Li04LmI4LiZCivguKrguIfguIHguLIKK+C4quC4h+C5guC4geC4iAor4Liq4LmI4LiH4LiC4LmI4Liy4LinCivguKrguIfguITguYwKK+C4quC4h+C4hOC4owor4Liq4LiH4LiE4Lij4Liy4LihCivguKrguIfguITguKPguLLguKHguIHguKXguLLguIfguYDguKHguLfguK3guIcKK+C4quC4h+C4hOC4o+C4suC4oeC5gOC4ouC5h+C4mQor4Liq4LiH4LiE4Lij4Liy4Lih4LmC4Lil4LiBCivguKrguIfguYDguITguKPguLLguLDguKvguYwKK+C4quC4h+C4huC5jAor4Liq4LmI4LiH4LiU4Lit4LiBCivguKrguYjguIfguYDguJTguIoKK+C4quC5iOC4h+C4leC4seC4pwor4Liq4LmI4LiH4LiX4LmJ4Liy4LiiCivguKrguIfguJoKK+C4quC4h+C4muC5gOC4quC4h+C4teC5iOC4ouC4oQor4Liq4LmI4LiH4Lig4Liy4Lip4LiyCivguKrguYjguIfguKXguLMKK+C4quC4h+C4p+C4mQor4Liq4LiH4LmA4Lip4LibCivguKrguYjguIfguKrguIHguLLguKMKK+C4quC4h+C4quC4seC4ogor4Liq4LiH4Liq4Liy4LijCivguKrguIfguKrguLLguKMtCivguKrguIfguKrguLLguKPguJfguLjguIHguILguYwKK+C4quC4h+C4quC4suC4o+C4p+C4seC4jwor4Liq4LmI4LiH4LmA4Liq4Lij4Li04LihCivguKrguYjguIfguYDguKrguLXguKIKK+C4quC5iOC4h+C5gOC4quC4teC4ouC4hwor4Liq4LiH4Lix4LiUCivguKrguIfguYjguLIKK+C4quC4kAor4Liq4LiT4LiR4LmMCivguKrguJQKK+C4quC4lOC4gQor4Liq4LiU4LiE4Liy4LinCivguKrguJTguIrguLfguYjguJkKK+C4quC4lOC4mQor4Liq4LiU4Lih4Lig4LmMCivguKrguJTguYYg4Lij4LmJ4Lit4LiZ4LmGCivguKrguJTguYPguKoKK+C4quC4lOC4seC4mQor4Liq4LiU4Lix4LiaCivguKrguJTguLHguJrguJXguKPguLHguJrguJ/guLHguIcKK+C4quC4lOC4seC4muC4m+C4geC4o+C4k+C5jAor4Liq4LiU4LizCivguKrguJTguLUKK+C4quC4lOC4uOC4lOC4tQor4Liq4LiU4Li54LibCivguKrguJUKK+C4quC4leC4gQor4Liq4LiV4LiZCivguKrguJXguKDguLTguKrguIrguLAKK+C4quC4leC4oeC4suC4q+C4sAor4Liq4LiV4Lij4Lit4LiZ4LmA4LiK4Li14Lii4LihCivguKrguJXguKPguLTguIHguJnguLTguJkKK+C4quC4leC4o+C4tQor4Liq4LiV4Lij4Li14Lil4Li04LiH4LiE4LmMCivguKrguJXguKPguLXguKXguLbguIfguITguYwKK+C4quC4leC4seC4mQor4Liq4LiV4Lix4LiZ4Lii4LmMCivguKrguJXguLHguJ7guJjguYwKK+C4quC4leC4seC4n+C4n+C5jAor4Liq4LiV4Lix4Lih4Lig4LmMCivguKrguJXguLLguIfguITguYwKK+C4quC4leC4tAor4Liq4LiV4Li04Lib4Lix4LiN4LiN4LiyCivguKrguJXguLTguJvguLHguI/guJDguLLguJkKK+C4quC4leC4tOC4p+C4tOC4meC4seC4ogor4Liq4LiV4Li04Liq4Lix4Lih4Lib4LiK4Lix4LiN4LiN4LiwCivguKrguJXguLUKK+C4quC4leC4uQor4Liq4LiV4Li54LibCivguKrguJbguJkKK+C4quC4luC4muC4lOC4tQor4Liq4LiW4LilCivguKrguJbguKUtCivguKrguJbguKXguJfguLTguJkKK+C4quC4luC4peC4muC4lgor4Liq4LiW4Lil4Lih4Liy4Lij4LiECivguKrguJbguKfguLTguKMtCivguKrguJbguKfguLXguKMtCivguKrguJbguKfguLXguKPguLAKK+C4quC4luC4suC4mQor4Liq4LiW4Liy4LiZ4LiB4Liy4Lij4LiT4LmMCivguKrguJbguLLguJnguKDguLLguJ4KK+C4quC4luC4suC4meC4sAor4Liq4LiW4Liy4LiZ4Li1CivguKrguJbguLLguJrguIEKK+C4quC4luC4suC4muC4seC4mQor4Liq4LiW4Liy4Lib4LiZ4LiyCivguKrguJbguLLguJvguJnguLTguIEKK+C4quC4luC4suC4m+C4meC4teC4ouC4nuC4ouC4suC4geC4o+C4k+C5jAor4Liq4LiW4Liy4Lib4LiZ4Li14Lii4Lin4Liy4LiX4Li1CivguKrguJbguLLguJvguLHguJXguKLguIHguKPguKPguKEKK+C4quC4luC4suC4m+C4seC4leC4ouC4geC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4Liq4LiW4Liy4Lie4LijCivguKrguJbguLLguKUKK+C4quC4luC4suC4p+C4owor4Liq4LiW4Li04LiVCivguKrguJbguLTguJXguKLguKjguLLguKrguJXguKPguYwKK+C4quC4luC4tOC4leC4tAor4Liq4LiW4Li04LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguKrguJbguLTguKMtCivguKrguJbguLjguKUKK+C4quC4luC4ueC4mwor4Liq4LiX4Li24LiHCivguKrguJfguLjguKEKK+C4quC4mOC4mQor4Liq4LiY4Li44Liq4LiwCivguKrguJkKK+C4quC5ieC4mQor4Liq4LiZ4LmD4LiICivguKrguJnguYDguJTguIEKK+C4quC4meC4leC4sOC4nuC4suC4ogor4Liq4LmJ4LiZ4LiV4Li14LiZCivguKrguJnguJfguJnguLIKK+C4quC4meC4l+C4o+C4o+C4qAor4Liq4LiZ4LiX4Lij4Lij4Lio4LiZ4LmMCivguKrguJnguJfguLTguKgKK+C4quC4meC5gOC4l+C4qAor4Liq4LiZ4LmA4LiX4LmI4Lir4LmMCivguKrguJnguJjguKLguLIKK+C4quC4meC4mOC4tAor4Liq4LiZ4LiY4Li04Liq4Lix4LiN4LiN4LiyCivguKrguJnguJjguLTguK3guKXguIfguIHguJUKK+C4quC4meC4meC4o+C4suC4hOC4sgor4Liq4LiZ4LmB4Lic4LiHCivguKrguJnguKEKK+C4quC4meC4oeC5gOC4reC4gQor4Liq4LiZ4Lin4LiZCivguKrguJnguKvguLLguIfguKrguLTguIfguKvguYwKK+C4quC4meC4reC4hwor4Liq4LiZ4Lit4LiH4LmE4LiCCivguKrguJnguK3guIfguYTguJQKK+C4quC4meC4reC4h+C5guC4reC4qeC4kOC5jAor4Liq4LiZ4Lit4LiaCivguKrguJnguK3guKEKK+C4quC4meC4sAor4Liq4LiZ4Lix4LiUCivguKrguJnguLHguJTguYPguIgKK+C4quC4meC4seC5iOC4mQor4Liq4LiZ4Lix4LiaCivguKrguJnguLHguJrguYHguILguYnguIcKK+C4quC4meC4seC4muC4h+C4sgor4Liq4LiZ4Lix4Lia4LiX4Li24LiaCivguKrguJnguLHguJrguJnguLTguYnguKfguKHguLfguK0KK+C4quC4meC4seC4muC5gOC4nuC4peC4sgor4Liq4LiZ4Lix4Lia4Lih4Li34LitCivguKrguJnguLHguJrguKrguJnguLjguJkKK+C4quC4meC4suC4lOC4gQor4Liq4LiZ4Liy4LiZCivguKrguJnguLLguJrguIEKK+C4quC4meC4suC4muC4seC4mQor4Liq4LiZ4Liy4LihCivguKrguJnguLLguKHguYDguJ7guKXguLLguLAKK+C4quC4meC4suC4oeC4q+C4peC4p+C4hwor4Liq4LiZ4Liy4Lii4Li4CivguKrguJnguLTguIEKK+C4quC4meC4tOC4lwor4Liq4LiZ4Li04LiX4Liq4LiZ4LihCivguKrguJnguLTguJgKK+C4quC4meC4tOC4oQor4Liq4LiZ4Li04Lih4Liq4Lij4LmJ4Lit4LiiCivguKrguJnguLjguIEKK+C4quC4meC4uOC4geC5gOC4geC4reC4o+C5jAor4Liq4LiZ4Li44LiB4Liq4LiZ4Liy4LiZCivguKrguJnguLjguIIKK+C4quC4meC4uOC4lQor4Liq4LiZ4Li44LmI4LiZCivguKrguJoKK+C4quC4muC4hwor4Liq4Lia4LiICivguKrguJrguJYKK+C4quC4muC4m+C4o+C4sOC4oeC4suC4lwor4Liq4Lia4Liq4Lix4LiH4Lin4Liy4LiqCivguKrguJrguYDguKrguLXguKIKK+C4quC4muC4seC4mQor4Liq4Lia4Liy4LiiCivguKrguJrguLnguYgKK+C4quC4muC4ueC5iOC5gOC4peC4t+C4reC4lAor4Liq4LmE4LiaCivguKrguYTguJrguYDguInguLXguKLguIcKK+C4quC5hOC4muC4meC4suC4hwor4Liq4Lib4Lij4Li04LiHCivguKrguJvguLLguYDguIHguJXguJXguLUKK+C4quC5gOC4m+C4geC4leC4o+C4seC4oQor4Liq4LmA4Lib4LiB4LmC4LiX4Lij4Liq4LmC4LiE4LibCivguKrguYTguJvguKPguLTguKXguKXguLHguKEKK+C4quC4nuC4seC5ieC4mQor4Liq4Lie4Liy4LiaCivguKrguKDguLIKK+C4quC4oOC4suC4geC4suC4iuC4suC4lAor4Liq4Lig4Liy4LiECivguKrguKDguLLguIjguLLguKMKK+C4quC4oOC4suC4meC4suC4ouC4gQor4Liq4Lig4Liy4Lia4LiU4Li1CivguKrguKDguLLguJ4KK+C4quC4oOC4suC4nuC4mOC4o+C4o+C4oQor4Liq4Lig4Liy4LinLQor4Liq4Lig4Liy4Lin4LiB4Liy4Lij4LiT4LmMCivguKrguKDguLLguKfguLAKK+C4quC4oQor4Liq4LmJ4LihCivguKrguKHguIHguLLguKMKK+C4quC4oeC4geC4suC4o+C5gOC4hOC4oeC4tQor4Liq4LmJ4Lih4LiB4Li44LmJ4LiHCivguKrguKHguITguJoKK+C4quC4oeC4hOC4p+C4owor4Liq4Lih4LiE4Liw4LmA4LiZCivguKrguKHguIjguKMKK+C4quC4oeC4iOC4o+C4tOC4hwor4Liq4Lih4LiI4Liy4Lij4Li1CivguKrguYnguKHguIrguLfguYjguJkKK+C4quC5ieC4oeC5gOC4iuC5ieC4sgor4Liq4Lih4LiN4LiyCivguKrguKHguYDguI3guKgKK+C4quC4oeC4ky0KK+C4quC4oeC4k+C4muC4o+C4tOC4guC4suC4owor4Liq4Lih4LiT4LmC4Lin4Lir4Liy4LijCivguKrguKHguJPguKjguLHguIHguJTguLTguYwKK+C4quC4oeC4k+C4quC4suC4o+C4ueC4mwor4Liq4Lih4LiT4Liq4Liy4Liq4LiZ4LmMCivguKrguKHguJPguLAKK+C4quC4oeC4lOC4uOC4pQor4Liq4Lih4LmA4LiU4LmH4LiICivguKrguKHguYDguJTguYfguIjguJ7guKPguLDguKrguLHguIfguIbguKPguLLguIoKK+C4quC5ieC4oeC4leC4swor4Liq4Lih4LiWLQor4Liq4Lih4LiW4Lii4Liy4LiZ4Li04LiBCivguKrguKHguJbguKfguLTguJvguLHguKrguKrguJnguLIKK+C4quC4oeC4luC4sAor4Liq4Lih4LiX4LiaCivguKrguYnguKHguJfguLHguJoKK+C4quC4oeC4meC4reC4gQor4Liq4Lih4LiZ4Lix4LiiCivguKrguKHguJnguLLguITguLjguJMKK+C4quC4oeC4meC5ieC4s+C4quC4oeC5gOC4meC4t+C5ieC4rQor4Liq4Lih4LiZ4LmJ4Liz4Lir4LiZ4LmJ4LiyCivguKrguKHguYPguJkKK+C4quC4oeC4muC4seC4leC4tAor4Liq4Lih4Lia4Lix4LiV4Li04LiZ4Lix4LiB4LmA4Lil4LiHCivguKrguKHguJrguLHguJXguLTguJzguLnguYnguJTguLUKK+C4quC4oeC4muC4uOC4geC4quC4oeC4muC4seC4mQor4Liq4Lih4Lia4Li44LiNCivguKrguKHguJrguLnguKPguJPguYwKK+C4quC4oeC4muC4ueC4o+C4k+C4suC4jeC4suC4quC4tOC4l+C4mOC4tOC4o+C4suC4iuC4ouC5jAor4Liq4Lih4Lib4Lij4Liw4LiB4Lit4LiaCivguKrguKHguJvguKPguLDguJTguLUKK+C4quC4oeC4m+C4pOC4lOC4tQor4Liq4Lih4Lib4Lik4LmF4LiU4Li1CivguKrguYnguKHguJvguYjguK3guKIKK+C4quC4oeC4m+C4seC4gQor4Liq4Lih4Lic4Li44LiqCivguKrguYnguKHguYHguJzguYjguJkKK+C4quC4oeC4nuC4hwor4Liq4Lih4Lie4LiH4Lio4LmMCivguKrguKHguJ7guKPguJvguLLguIEKK+C4quC4oeC4nuC4pQor4Liq4Lih4Lie4Lix4LiV4Liq4LijCivguKrguKHguJ7guLLguKoKK+C4quC4oeC5gOC4nuC4igor4Liq4Lih4LmC4Lie4LiY4LiZ4LmMCivguKrguKHguYLguJ7guJjguLQKK+C4quC5ieC4oeC4n+C4seC4gQor4Liq4Lih4Lig4LieCivguKrguKHguKDguLLguKMKK+C4quC4oeC5guC4oOC4hAor4Liq4Lih4LmC4Lig4LiKCivguKrguKHguKHguJUKK+C4quC4oeC4oeC4leC4tAor4Liq4Lih4Lih4LiV4Li0LQor4Liq4Lih4Lih4LiV4Li04LiQ4Liy4LiZCivguKrguYnguKHguKHguLDguILguLLguKEKK+C4quC4oeC4oeC4suC4leC4owor4Liq4LmJ4Lih4Lih4Li34LitCivguKrguKHguKHguLjguJXguLQKK+C4quC4oeC4oeC4uOC4leC4tC0KK+C4quC4oeC4oeC4uOC4leC4tOC4kOC4suC4mQor4Liq4Lih4Lih4Li54LilCivguKrguKHguKHguLnguKXguYDguITguKHguLUKK+C4quC4oeC5guC4oeC4lwor4Liq4Lih4Lii4Lit4LihCivguKrguKHguYLguKLguIQKK+C4quC4oeC4owor4Liq4Lih4LijLQor4Liq4Lih4Lij4LiUCivguKrguKHguKPguKDguLnguKHguLQKK+C4quC4oeC4o+C4o+C4lgor4Liq4Lih4Lij4Lij4LiWLQor4Liq4Lih4Lij4Lij4LiW4LiZ4LiwCivguKrguKHguKPguKPguJbguKDguLLguJ4KK+C4quC4oeC4o+C4qgor4Liq4Lih4Lij4Li54LmJCivguKrguKHguKTguJTguLUKK+C4quC4oeC4pOC4leC4tAor4Liq4Lih4Lik4LmF4LiU4Li1CivguKrguYnguKHguKXguLTguYnguKEKK+C4quC4oeC4p+C4seC4ogor4Liq4Lih4Lin4Liy4Lii4LiwCivguKrguKHguKrguLHguIEKK+C4quC5ieC4oeC4quC4seC4meC4lOC4suC4mQor4Liq4Lih4Liq4Li54LmICivguKrguKHguYDguKrguKPguYfguIgKK+C4quC5ieC4oeC5gOC4quC4teC5ieC4ouC4pwor4Liq4Lih4Lir4LiZ4LmJ4Liy4Liq4Lih4LiV4LiyCivguKrguKHguYDguKvguJXguLjguKrguKHguJzguKUKK+C4quC4oeC4rQor4Liq4Lih4Lit4LiB4Liy4LiZ4LiZCivguKrguKHguK3guIcKK+C4quC4oeC4reC4h+C4leC4suC4ogor4Liq4Lih4Lit4LiH4Lid4LmI4LitCivguKrguKHguK3guIjguLXguJkKK+C4quC4oeC4reC4l+C4sOC5gOC4pQor4Liq4Lih4Lit4Liq4Liz4LmA4Lig4LiyCivguKrguKHguK3guYnguLLguIcKK+C4quC4oeC4seC4hAor4Liq4Lih4Lix4LiE4LijCivguKrguKHguLHguITguKPguJ7guKPguKPguITguJ7guKfguIEKK+C4quC4oeC4seC4hOC4o+C4quC4oeC4sgor4Liq4Lih4Lix4LiE4Lij4Liq4Lih4Liy4LiZCivguKrguKHguLHguIfguITguLUKK+C4quC4oeC4seC4igor4Liq4Lih4Lix4LiK4LiK4LiyCivguKrguKHguLHguI3guI3guLIKK+C4quC4oeC4seC4lQor4Liq4Lih4Lix4LiZCivguKrguKHguLHguJnguJXguYwKK+C4quC4oeC4seC4ogor4Liq4Lih4Lix4Lii4LmA4LiB4LmI4LiyCivguKrguKHguLHguKLguYPguKvguKHguYgKK+C4quC4oeC4sgor4Liq4Lih4Liy4LiE4LihCivguKrguKHguLLguIjguLLguKMKK+C4quC4oeC4suC4iuC4tOC4gQor4Liq4Lih4Liy4LiX4Liy4LiZCivguKrguKHguLLguJjguLQKK+C4quC4oeC4suC4mS0KK+C4quC4oeC4suC4meC4hOC4leC4tAor4Liq4Lih4Liy4LiZ4LiJ4Lix4LiZ4LiX4LmMCivguKrguKHguLLguJnguKrguLHguIfguKfguLLguKoKK+C4quC4oeC4suC4muC4seC4leC4tAor4Liq4Lih4Liy4Lie4Lix4LiZ4LiY4Lij4Lix4LiQCivguKrguKHguLLguKoKK+C4quC4oeC5iOC4s+C5gOC4quC4oeC4rQor4Liq4Lih4Li04LiHCivguKrguKHguLTguIfguJfguK3guIcKK+C4quC4oeC4tOC4h+C4nuC4o+C4suC4ogor4Liq4Lih4Li04LiH4Lih4Li04LmI4LiH4LiK4Liy4LiiCivguKrguKHguLTguJUKK+C4quC4oeC4tOC4leC4tAor4Liq4Lih4Li04LiX4LiY4LmMCivguKrguKHguLTguJfguJjguLQKK+C4quC4oeC4tQor4Liq4Lih4Li14LibCivguKrguKHguLXguKMKK+C4quC4oeC4uOC4gQor4Liq4Lih4Li44LiI4LiI4Lix4LiiCivguKrguKHguLjguIjguYDguInguJcKK+C4quC4oeC4uOC4iOC5gOC4ieC4ly0KK+C4quC4oeC4uOC4iOC5gOC4ieC4l+C4m+C4q+C4suC4mQor4Liq4Lih4Li44LiP4LiQ4Liy4LiZCivguKrguKHguLjguJQKK+C4quC4oeC4uOC4lOC5hOC4l+C4ogor4Liq4Lih4Li44LiU4Lib4Li54Lih4LmA4LiU4Li04LiZ4LiX4Liy4LiHCivguKrguKHguLjguJXguJbguLLguJkKK+C4quC4oeC4uOC4l+C4owor4Liq4Lih4Li44LiX4LijLQor4Liq4Lih4Li44LiX4Lij4LmC4LiE4LiU4LihCivguKrguKHguLjguJfguKPguYLguIjguKMKK+C4quC4oeC4uOC4l+C4o+C4qOC4suC4quC4leC4o+C5jAor4Liq4Lih4Li44LiX4Lij4LmA4Liq4LiZ4LiyCivguKrguKHguLjguJfguLHguKIKK+C4quC4oeC4uOC4mQor4Liq4Lih4Li44LiZ4LmE4Lie4LijCivguKrguKHguLjguKXguYHguKfguYnguIcKK+C4quC4oeC4uOC4qy0KK+C4quC4oeC4uOC4q+C5jAor4Liq4Lih4Li44Lir4LiB4Lil4Liy4LmC4Lir4LihCivguKrguKHguLjguKvguYDguJfguKjguLLguKDguLTguJrguLLguKUKK+C4quC4oeC4uOC4q+C4meC4suC4oQor4Liq4Lih4Li44Lir4LiZ4Liy4Lii4LiBCivguKrguKHguLjguKvguJvguKPguLDguJjguLLguJkKK+C4quC4oeC4uOC4q+C4nuC4o+C4sOC4geC4peC4suC5guC4q+C4oQor4Liq4LmC4Lih4LiY4Liy4LiZCivguKrguYLguKHguKrguKMKK+C4quC5guC4oeC4quC4o+C4quC4seC4meC4meC4tOC4muC4suC4lQor4Liq4Lii4LiUCivguKrguKLguJTguKrguKLguK3guIcKK+C4quC4ouC4lOC5geC4quC4ouC4hwor4Liq4Lii4LiZ4LiwCivguKrguKLguJoKK+C4quC4ouC4oeC4nuC4owor4Liq4Lii4Lih4Lig4Li5CivguKrguKLguK3guIcKK+C4quC4ouC4reC4mQor4Liq4Lii4Lix4Lih4Lie4LijCivguKrguKLguLHguKHguKfguKPguLIKK+C4quC4ouC4suC4oQor4Liq4Lii4Liy4LihLQor4Liq4Lii4Liy4Lih4Lij4Lix4LiQCivguKrguKLguLLguKIKK+C4quC4ouC4tOC4pwor4Liq4Lii4Li04LmJ4LinCivguKrguKLguLjguYjguJkKK+C4quC4ouC4uOC4oeC4nuC4owor4Liq4Lii4Li44Lih4Lig4Li5CivguKrguKMKK+C4quC4o+C4gQor4Liq4Lij4LiHCivguKrguKPguYjguIcKK+C4quC4o+C4j+C4sAor4Liq4Lij4LiTLQor4Liq4Lij4LiT4LiE4Lih4LiZ4LmMCivguKrguKPguJPguJXguKPguLHguKIKK+C4quC4o+C4k+C4sAor4Liq4Lij4LiT4Liy4LiE4Lih4LiZ4LmMCivguKrguKPguJTguLHguIEKK+C4quC4o+C4lOC4tuC5iOC4mQor4Liq4Lij4LiU4Li34LmI4LiZCivguKrguKPguJXguLAKK+C4quC4o+C4leC4seC4gQor4Liq4Lij4LiX4LiwCivguKrguKPguJfguLbguIcKK+C4quC4o+C5geC4l+C4mgor4Liq4Lij4LiZ4Li44LiBCivguKrguKPguYDguJnguLLguLAKK+C4quC4o+C5hOC4mQor4Liq4Lij4LiaCivguKrguKPguJrguJoKK+C4quC4o+C4muC4seC4mgor4Liq4Lij4LieCivguKrguKPguYDguJ7guIrguI0KK+C4quC4o+C4oOC4sAor4Liq4Lij4Lig4Lix4LiN4LiN4LiwCivguKrguKPguKDguLkKK+C4quC4o+C4oQor4Liq4Lij4LijCivguKrguKPguKPguITguYwKK+C4quC4o+C4o+C4ngor4Liq4Lij4Lij4LieLQor4Liq4Lij4Lij4Lie4LiE4Lij4Liy4LiqCivguKrguKPguKPguJ7guITguLjguJMKK+C4quC4o+C4o+C4nuC4meC4suC4oQor4Liq4Lij4Lij4Lie4Liq4Liy4Lih4Li04LiVCivguKrguKPguKPguJ7guLHguIrguI0KK+C4quC4o+C4o+C4nuC4suC4geC4owor4Liq4Lij4Lij4Lie4Liy4LiH4LiE4LmMCivguKrguKPguKPguYDguJ7guIrguI0KK+C4quC4o+C4o+C5gOC4nuC4iuC4uOC4lOC4sgor4Liq4Lij4Lij4LmA4Lie4LiK4Li44LiU4Liy4LiN4Liy4LiTCivguKrguKPguKPguKfguIcKK+C4quC4o+C4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4Lij4LmB4Liq4Lij4LmJ4LiHCivguKrguKPguKXguJkKK+C4quC4o+C4peC4oQor4Liq4Lij4Lil4Lih4Liq4Lil4Lin4LiZCivguKrguKPguKXguK3guJQKK+C4quC4o+C4peC4reC4mQor4Liq4Lij4Lil4LiwCivguKrguKPguKXguYnguLLguKIKK+C4quC4o+C4peC4tOC4lAor4Liq4Lij4LmA4Lil4LiCCivguKrguKPguKfguIcKK+C4quC4o+C4p+C4h+C5gOC4qgor4Liq4Lij4Lin4LibCivguKrguKPguKfguKEKK+C4quC4o+C4p+C4oeC4iuC4teC4ngor4Liq4Lij4Lin4LilCivguKrguKPguKfguKXguYDguKoKK+C4quC4o+C4p+C4peC5gOC4quC5gOC4ruC4ruC4sgor4Liq4Lij4LmA4Liq4Lij4Li04LiNCivguKrguKPguYnguK3guKIKK+C4quC4o+C5ieC4reC4ouC4l+C4reC4hwor4Liq4Lij4LmJ4Lit4Lii4LiX4Liw4LmB4LiiCivguKrguKPguYnguK3guKLguJnguIHguYDguILguLIKK+C4quC4o+C5ieC4reC4ouC4meC5ieC4s+C4nOC4tuC5ieC4hwor4Liq4Lij4LmJ4Lit4Lii4Lij4Liw4Lii4LmJ4LiyCivguKrguKPguYnguK3guKLguYDguKjguKPguYnguLIKK+C4quC4o+C5ieC4reC4ouC4quC4mQor4Liq4Lij4LmJ4Lit4Lii4Lit4LmI4Lit4LiZCivguKrguKPguYnguK3guKLguK3guLTguJnguJfguJnguLTguKUKK+C4quC4o+C4sAor4Liq4Lij4Liw4LiB4LitCivguKrguKPguLDguITguKPguLLguI0KK+C4quC4o+C4sOC4lOC4sAor4Liq4Lij4Liw4LiX4LmJ4Lit4LiZCivguKrguKPguLDguJ7guKPguLHguYjguIcKK+C4quC4o+C4sOC4reC4suC4lAor4Liq4Lij4Liw4Lit4Li34LmJ4LiZCivguKrguKPguLHguYjguIcKK+C4quC4o+C4seC4quC4p+C4lOC4tQor4Liq4Lij4LmI4Liy4LiHCivguKrguKPguYnguLLguIcKK+C4quC4o+C5ieC4suC4h+C4p+C4tOC4oeC4suC4meC5g+C4meC4reC4suC4geC4suC4qAor4Liq4Lij4LmJ4Liy4LiH4Liq4Lij4Lij4LiE4LmMCivguKrguKPguLLguI0KK+C4quC4o+C5ieC4suC4p+C5gOC4quC4teC4ouC4pwor4Liq4Lij4Li04LiVCivguKrguKPguLXguYkKK+C4quC4o+C4teC4oy0KK+C4quC4o+C4teC4o+C4geC4tOC4iAor4Liq4Lij4Li14Lij4LiY4Liy4LiV4Li4CivguKrguKPguLXguKPguKfguLTguJfguKLguLIKK+C4quC4o+C4teC4o+C4qOC4suC4quC4leC4o+C5jAor4Liq4Lij4Li14Lij4LiwCivguKrguKPguLXguKPguLHguIfguITguLLguKMKK+C4quC4o+C4teC4o+C4suC4h+C4hOC4suC4owor4Liq4Lij4Li14Liq4Lik4LiaCivguKrguKPguLjguIEKK+C4quC4o+C4uOC4geC5gOC4geC4o+C4sgor4Liq4Lij4Li44LiHCivguKrguKPguLjguYLguJnguIEKK+C4quC4o+C4uOC4mwor4Liq4Lij4Li44Liq4Lij4LiwCivguKrguKPguLnguJsKK+C4quC5guC4o+C4igor4Liq4Lik4LiBCivguKrguKTguITguLLguKUKK+C4quC4pOC4lQor4Liq4Lik4Lip4LiO4Li1CivguKrguKTguKnguI/guYwKK+C4quC4pQor4Liq4Lil4LiUCivguKrguKXguJoKK+C4quC4peC4muC5hOC4quC4pQor4Liq4Lil4Lia4LmA4Lir4Lih4Li34Lit4LiUCivguKrguKXguKfguJkKK+C4quC4peC4p+C4ogor4Liq4Lil4Lit4LiUCivguKrguKXguK3guJkKK+C4quC4peC4reC4ogor4Liq4Lil4LiwCivguKrguKXguLDguKrguKXguKfguKIKK+C4quC4peC4seC4gQor4Liq4Lil4Lix4LiB4LmA4LiB4Lil4Li14Lii4LinCivguKrguKXguLHguIHguYDguJXguYkKK+C4quC4peC4seC4geC5gOC4nuC4iuC4owor4Liq4Lil4Lix4LiB4Liq4Liz4LiE4Lix4LiNCivguKrguKXguLHguIHguYDguKrguKXguLIKK+C4quC4peC4seC4geC4q+C4peC4seC4hwor4Liq4Lil4Lix4LiUCivguKrguKXguLHguJTguYTguJQKK+C4quC4peC4seC4mgor4Liq4Lil4Lix4Lia4LiJ4Liy4LiBCivguKrguKXguLHguKcKK+C4quC4peC4sgor4Liq4Lil4Liy4LiBCivguKrguKXguLLguIHguIHguLTguJnguYHguJrguYjguIcKK+C4quC4peC4suC4geC4geC4tOC4meC4o+C4p+C4mgor4Liq4Lil4Liy4LiB4Lig4Lix4LiVCivguKrguKXguLLguIcKK+C4quC4peC5ieC4suC4hwor4Liq4Lil4Liy4LiUCivguKrguKXguLLguJXguLHguJkKK+C4quC4peC4suC4mgor4Liq4Lil4Liy4LiiCivguKrguKXguLLguYDguKvguLTguJkKK+C4quC4peC4tOC4lAor4Liq4Lil4Li04LilCivguKrguKXguLbguIEKK+C4quC4peC4tuC4hwor4Liq4Lil4Li44LiVCivguKrguKXguLjguJoKK+C4quC4peC4uOC4oeC4nuC4owor4Liq4LmB4Lil4LiHCivguKrguKctCivguKrguKfguIEKK+C4quC4p+C4geC4o+C4o+C4oQor4Liq4Lin4LiB4Liy4Lij4Lii4LmMCivguKrguYnguKfguIcKK+C4quC4p+C4lAor4Liq4Lin4LiZCivguKrguYjguKfguJkKK+C4quC5iOC4p+C4meC4geC4peC4suC4hwor4Liq4Lin4LiZ4LiE4Lin4Lix4LiZCivguKrguKfguJnguITguKfguLLguKEKK+C4quC5iOC4p+C4meC5hOC4lOC5ieC4quC5iOC4p+C4meC5gOC4quC4teC4ogor4Liq4LmI4Lin4LiZ4LiV4Lix4LinCivguKrguYjguKfguJnguJfguYnguK3guIfguJbguLTguYjguJkKK+C4quC4p+C4meC5geC4l+C4hwor4Liq4LmI4Lin4LiZ4Lib4Lij4Liw4LiB4Lit4LiaCivguKrguKfguJnguJvguLLguIHguKrguKfguJnguITguLMKK+C4quC5iOC4p+C4meC4nOC4quC4oQor4Liq4LmI4Lin4LiZ4Lig4Li54Lih4Li04Lig4Liy4LiECivguKrguYjguKfguJnguKPguKfguKEKK+C4quC5iOC4p+C4meC4peC4lAor4Liq4Lin4LiZ4Liq4LiZ4Liy4LihCivguKrguYjguKfguJnguKrguLHguJQKK+C4quC5iOC4p+C4meC4q+C4meC5ieC4sgor4Liq4LmI4Lin4LiZ4Lir4Lil4Lix4LiHCivguKrguKfguJnguLAKK+C4quC4p+C4meC4suC4geC4suC4owor4Liq4Lin4LiZ4Li04LiVCivguKrguKfguJnguLXguKItCivguKrguKfguJoKK+C4quC4p+C4oOC4suC4ngor4Liq4Lin4LihCivguKrguYnguKfguKEKK+C4quC4p+C4oeC4geC4reC4lAor4Liq4Lin4Lih4Lij4Lit4LiiCivguKrguKfguKHguKvguLHguKfguYLguILguJkKK+C4quC4p+C4ogor4Liq4LmI4Lin4LiiCivguKrguYnguKfguKIKK+C4quC4p+C4ouC5geC4leC5iOC4o+C4ueC4myDguIjguLnguJrguYTguKHguYjguKvguK3guKEKK+C4quC4p+C4ouC4oQor4Liq4Lin4Lii4Lih4Lie4LijCivguKrguKfguKLguKHguKDguLkKK+C4quC5ieC4p+C4ouC5gOC4quC4teC5ieC4ouC4pwor4Liq4Lin4LijCivguKrguKfguKPguKPguIQtCivguKrguKfguKPguKPguITguYwKK+C4quC4p+C4o+C4o+C4hOC4lQor4Liq4Lin4Lij4Lij4LiE4Lia4LiU4Li1CivguKrguKfguKPguKPguITguYzguK3guKLguLnguYjguYPguJnguK3guIEg4LiZ4Lij4LiB4Lit4Lii4Li54LmI4LmD4LiZ4LmD4LiICivguKrguKfguKPguKPguITguLLguKXguLHguKIKK+C4quC4p+C4o+C4o+C4ouC4sgor4Liq4Lin4Lij4Liy4LiK4Lii4LmMCivguKrguKfguLAKK+C4quC4p+C4seC4quC4lOC4tOC5jAor4Liq4Lin4Lix4Liq4LiU4Li04LiB4Liy4LijCivguKrguKfguLHguKrguJTguLUKK+C4quC4p+C4seC4quC4leC4tAor4Liq4Lin4Lix4Liq4LiV4Li04LiB4LiwCivguKrguKfguLIKK+C4quC4p+C4suC4hOC4lQor4Liq4Lin4Liy4LiHCivguKrguKfguYjguLLguIcKK+C4quC4p+C5iOC4suC4h+C5hOC4quC4pwor4Liq4Lin4Liy4LiUCivguKrguKfguLLguJTguLQKK+C4quC4p+C4suC4leC4tQor4Liq4Lin4Liy4LiXCivguKrguKfguYjguLLguJkKK+C4quC4p+C5ieC4suC4mQor4Liq4Lin4Liy4LiaCivguKrguKfguLLguJvguLLguKEKK+C4quC4p+C4suC4oeC4tAor4Liq4Lin4Liy4Lih4Li04LiZ4Li1CivguKrguKfguLLguKHguLTguKDguLHguIHguJTguLTguYwKK+C4quC4p+C4suC4oeC4tQor4Liq4Lin4Liy4LiiCivguKrguKfguLLguKLguKrguK0KK+C4quC4p+C4suC4quC4lOC4tOC5jAor4Liq4Lin4Liy4Lir4LiwCivguKrguKfguLTguIcKK+C4quC4p+C4tOC4h+C4quC4p+C4suC4ogor4Liq4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKrguKfguLTguJXguIrguYwKK+C4quC4quC4suC4owor4Liq4Liq4Liy4LijLQor4Liq4Liq4Liy4Lij4LiZ4Li04Lii4LihCivguKrguKrguLjguKPguLAKK+C4quC4quC4uOC4o+C4tQor4Liq4LirLQor4Liq4Lir4LiB4Lij4LiT4LmMCivguKrguKvguIHguLLguKMKK+C4quC4q+C4iOC4owor4Liq4Lir4LiK4Liy4LiVCivguKrguKvguIrguLLguJXguLQKK+C4quC4q+C4mOC4o+C4o+C4oQor4Liq4Lir4LiY4Lij4Lij4Lih4Li04LiBCivguKrguKvguJrguLLguJkKK+C4quC4q+C4m+C4o+C4sOC4iuC4suC4iuC4suC4leC4tAor4Liq4Lir4Lie4Lix4LiZ4LiY4LmMCivguKrguKvguJ7guLHguJnguJjguKPguLHguJAKK+C4quC4q+C4oOC4suC4ngor4Liq4Lir4Lig4Liy4Lie4LmB4Lij4LiH4LiH4Liy4LiZCivguKrguKvguKjguLbguIHguKnguLIKK+C4quC4q+C4seC4igor4Liq4Lir4Lix4Lih4Lia4LiU4Li1CivguKrguKvguLHguKotCivguKrguKvguLHguKrguJjguLLguKPguLIKK+C4quC4q+C4seC4quC4meC4seC4ouC4meC5jAor4Liq4Lir4Lix4Liq4LmA4LiZ4LiV4LijCivguKrguKvguLHguKrguKPguLHguIfguKrguLUKK+C4quC4q+C4seC4quC4quC4sAor4Liq4Lir4Lix4Liq4LiyCivguKrguKvguLLguKIKK+C4quC4rQor4Liq4LmI4LitCivguKrguK3guIcKK+C4quC5iOC4reC4hwor4Liq4LmJ4Lit4LiHCivguKrguK3guIfguYDguIHguKXguK0KK+C4quC4reC4h+C4iOC4tOC4leC4quC4reC4h+C5g+C4iAor4Liq4Lit4LiH4LmD4LiICivguKrguK3guIfguJXguYjguK3guKrguK3guIcKK+C4quC4reC4h+C4nOC4oQor4Liq4Lit4LiH4Lid4Lix4LiB4Liq4Lit4LiH4Lid4LmI4Liy4LiiCivguKrguK3guIfguYTguKHguYkKK+C4quC4reC4h+C4pOC4lOC4uQor4Liq4Lit4LiH4Liq4Lil4Li24LiH4LmA4Lif4Li34LmJ4Lit4LiHCivguKrguK3guIfguKvguJnguYnguLIKK+C4quC4reC4lAor4Liq4Lit4LiU4LiE4Lil4LmJ4Lit4LiHCivguKrguK3guJTguYHguITguKXguYnguKcKK+C4quC4reC4lOC5geC4meC4oQor4Liq4Lit4LiU4Lij4Li54LmJCivguKrguK3guJTguKPguLnguYnguKrguK3guJTguYDguKvguYfguJkKK+C4quC4reC4lOC4quC5iOC4reC4hwor4Liq4Lit4LiU4LmD4Liq4LmICivguKrguK3guJTguYTguKrguYkKK+C4quC4reC4mQor4Liq4LmI4Lit4LiZCivguKrguK3guJnguIjguKPguLDguYDguILguYnguYPguKvguYnguKfguYjguLLguKLguJnguYnguLMKK+C4quC4reC4meC4q+C4meC4seC4h+C4quC4t+C4reC4quC4seC4h+C4huC4o+C4suC4igor4Liq4Lit4LiaCivguKrguK3guJrguIvguYnguK3guKEKK+C4quC4reC4muC4m+C4suC4geC4hOC4swor4Liq4Lit4Lia4Lie4Lii4Liy4LiZCivguKrguK3guJrguYTguKXguYgKK+C4quC4reC4muC4quC4p+C4mQor4Liq4Lit4Lia4Liq4Lin4LiZ4LiX4Lin4LiZ4Lie4Lii4Liy4LiZCivguKrguK3guJvguLnguJkKK+C4quC4reC4nuC4peC4rQor4Liq4LmJ4Lit4LihCivguKrguK3guKIKK+C4quC4reC4ouC4lOC4reC4geC4n+C5ieC4sgor4Liq4Lit4Lii4LiU4Liy4LinCivguKrguK3guKLguJzguKEKK+C4quC4reC4ouC5hOC4owor4Liq4LmI4Lit4LmA4Liq4Li14Lii4LiUCivguKrguLAKK+C4quC4sOC4geC4lAor4Liq4Liw4LiB4LitCivguKrguLDguIHguLLguIcKK+C4quC4sOC4geC4suC4o+C4sAor4Liq4Liw4LiB4Liy4Lij4Liw4LiV4Liy4Lir4Lij4LiyCivguKrguLDguIHguLTguJQKK+C4quC4sOC5gOC4geC5h+C4lAor4Liq4Liw4LmB4LiBCivguKrguLDguYHguIHguKfguLHguKXguKLguYwKK+C4quC4sOC5geC4geC5geC4quC4hwor4Liq4Liw4LiE4Lij4LmJ4LitCivguKrguLDguITguKPguLLguI0KK+C4quC4sOC4hOC5ieC4suC4mQor4Liq4Liw4LmA4LiH4Liy4Liw4Liq4Liw4LmB4LiH4LiwCivguKrguLDguYPguIgKK+C4quC4sOC4lOC4oQor4Liq4Liw4LiU4Lin4LiBCivguKrguLDguJTguLHguIEKK+C4quC4sOC4lOC4tOC5ieC4hwor4Liq4Liw4LiU4Li24LiHCivguKrguLDguJTguLfguK0KK+C4quC4sOC4lOC4uOC5ieC4hwor4Liq4Liw4LiU4Li44LmJ4LiH4Lih4Liy4LijCivguKrguLDguJTguLjguJQKK+C4quC4sOC4lOC4uOC4lOC5g+C4iAor4Liq4Liw4LiU4Li44LiU4LiV4LiyCivguKrguLDguJTguLjguJTguKvguLkKK+C4quC4sOC5gOC4lOC5h+C4lAor4Liq4Liw4LmA4LiU4LiyCivguKrguLDguYDguJTguLLguJTguLTguJkKK+C4quC4sOC5gOC4lOC4suC4reC4tOC4meC5gOC4lOC4teC4ogor4Liq4Liw4LmA4LiU4Liy4LiwCivguKrguLDguJXguK0KK+C4quC4sOC4leC4reC5gOC4muC4sgor4Liq4Liw4LiV4Liy4Lir4Lih4Lix4LiZCivguKrguLDguJXguLYKK+C4quC4sOC4leC4t+C4rQor4Liq4Liw4LiV4Li4CivguKrguLDguYDguJXguYrguLAKK+C4quC4sOC5guC4leC4gQor4Liq4Liw4LiX4LiBCivguKrguLDguJfguJkKK+C4quC4sOC4l+C5ieC4reC4mQor4Liq4Liw4LiX4LmJ4Lit4LiZ4LmD4LiICivguKrguLDguJfguYnguLLguJkKK+C4quC4sOC4l+C4tuC4gQor4Liq4Liw4LiX4Li24LiZCivguKrguLDguJfguLbguYjguJkKK+C4quC4sOC5gOC4l+C4tOC4mQor4Liq4Liw4LmA4LiX4Li04LmJ4LiZCivguKrguLDguYDguJfguLTguJnguJnguYnguLPguKrguLDguYDguJfguLTguJnguJrguIEKK+C4quC4sOC5gOC4l+C4t+C4reC4mQor4Liq4Liw4LmA4LiX4Li34LmJ4Lit4LiZCivguKrguLDguYDguJfguLfguK3guJnguYPguIgKK+C4quC4sOC4muC4sAor4Liq4Liw4Lia4Lix4LiBCivguKrguLDguJrguLHguIHguIjguKEKK+C4quC4sOC4muC4seC4geC4quC4sOC4muC4reC4oQor4Liq4Liw4Lia4Lix4LiUCivguKrguLDguJrguLHguJTguIHguYnguJkKK+C4quC4sOC4muC4seC4lOC4oeC4t+C4rQor4Liq4Liw4Lia4Lix4LiU4Lij4LmJ4Lit4LiZ4Liq4Liw4Lia4Lix4LiU4Lir4LiZ4Liy4LinCivguKrguLDguJrguLHguJTguKXguLjguIHguKrguLDguJrguLHguJTguJnguLHguYjguIcKK+C4quC4sOC4muC4seC4lOC4quC4sOC4muC4tOC5ieC4hwor4Liq4Liw4Lia4Lix4LiU4Lir4LiZ4LmJ4LiyCivguKrguLDguJrguLHguYnguJkKK+C4quC4sOC4muC4seC4meC4h+C4sgor4Liq4Liw4Lia4Lix4LiZ4LiH4Liy4LiI4Li14LiZCivguKrguLDguJrguLHguJnguIfguLLguJXguYnguJkKK+C4quC4sOC4muC5ieC4sgor4Liq4Liw4Lia4LmJ4Liy4Lir4Lix4Lin4LmA4LiC4LmI4LiyCivguKrguLDguJrguLkKK+C4quC4sOC5geC4muC4hwor4Liq4Liw4LmA4Lib4Liw4Liq4Liw4Lib4LiwCivguKrguLDguJ7guKPguLHguIEKK+C4quC4sOC4nuC4o+C4seC5iOC4hwor4Liq4Liw4Lie4Lij4Li24LiH4LiB4Lil4Lix4LinCivguKrguLDguJ7guKPguLbguJoKK+C4quC4sOC4nuC4seC4gQor4Liq4Liw4Lie4Lix4LiHCivguKrguLDguJ7guLHguJQKK+C4quC4sOC4nuC4seC5ieC4mQor4Liq4Liw4Lie4Liy4LiZCivguKrguLDguJ7guLLguJnguYHguILguKfguJkKK+C4quC4sOC4nuC4suC4meC4iuC4seC4gQor4Liq4Liw4Lie4Liy4LiZ4LmA4LiK4Li34Lit4LiBCivguKrguLDguJ7guLLguJnguYDguJTguLTguJnguYDguKPguLfguK0KK+C4quC4sOC4nuC4suC4meC4l+C4uOC5iOC4mQor4Liq4Liw4Lie4Liy4LiZ4LmA4Lia4Li14LmI4Lii4LiHCivguKrguLDguJ7guLLguJnguJvguKXguLIKK+C4quC4sOC4nuC4suC4meC5hOC4nwor4Liq4Liw4Lie4Liy4LiZ4Lil4Lit4LiiCivguKrguLDguJ7guLLguJnguYDguKrguLXguYnguKLguKcKK+C4quC4sOC4nuC4suC4meC4q+C4gQor4Liq4Liw4Lie4Liy4LiZ4Lir4Lix4LiZCivguKrguLDguJ7guLLguKIKK+C4quC4sOC4nuC4suC4ouC5geC4peC5iOC4hwor4Liq4Liw4LmA4Lie4Lij4LmI4LiyCivguKrguLDguYLguJ7guIEKK+C4quC4sOC5gOC4oOC4sgor4Liq4Liw4LmD4Lig4LmJCivguKrguLDguYLguKHguIcKK+C4quC4sOC4o+C4sOC4leC4sAor4Liq4Liw4Lij4Liw4LmB4Lir4LiZ4LmICivguKrguLDguKXguLDguJvguLDguJXguLjguYjguJkKK+C4quC4sOC4peC4suC4hwor4Liq4Liw4Lil4Li24Lih4Liq4Liw4Lil4Li34LitCivguKrguLDguKfguLXguYnguJTguKrguLDguKfguYnguLLguJQKK+C4quC4sOC4quC4oQor4Liq4Liw4Liq4Lin4LiiCivguKrguLDguKrguLLguIcKK+C4quC4sOC4reC4suC4hwor4Liq4Liw4Lit4Liy4LiUCivguKrguLDguK3guYnguLLguJkKK+C4quC4sOC4reC4tOC5ieC4hwor4Liq4Liw4Lit4Li04LiU4Liq4Liw4LmA4Lit4Li14Lii4LiZCivguKrguLDguK3guLbguIEKK+C4quC4sOC4reC4tuC4geC5gOC4guC5ieC4suC5g+C4quC5iAor4Liq4Liw4Lit4Li24LiB4Liq4Liw4Lit4Li34LmJ4LiZCivguKrguLDguK3guLfguYnguJkKK+C4quC4sOC5gOC4reC5ieC4hwor4Liq4Liw4LmA4Lit4LinCivguKrguLDguYDguK3guK3guLAKK+C4quC4sOC5guC4reC4lOC4quC4sOC4reC4hwor4Liq4Liw4LmE4LitCivguKrguLHguIEKK+C4quC4seC4geC4geC4sAor4Liq4Lix4LiB4LiB4Lix4LiI4LiI4LiwCivguKrguLHguIHguIHguLLguKItCivguKrguLHguIHguIHguLLguKLguJfguLTguJDguLQKK+C4quC4seC4geC4geC4suC4oy0KK+C4quC4seC4geC4geC4suC4o+C4sAor4Liq4Lix4LiB4LiC4Lij4LiyCivguKrguLHguIHguILguLUKK+C4quC4seC4geC4guC4teC5ieC5hOC4geC5iAor4Liq4Lix4LiB4LiP4LiwCivguKrguLHguIHguJXguLAKK+C4quC4seC4geC5geC4leC5iOC4p+C5iOC4sgor4Liq4Lix4LiB4Lii4LiwCivguKrguLHguIHguKfguLIKK+C4quC4seC4geC4p+C5iOC4sgor4Liq4Lix4LiB4Lir4Lil4Liy4LiUCivguKrguLHguILguKLguLAKK+C4quC4seC4hAor4Liq4Lix4LiE4LiE4LiwCivguKrguLHguYjguIcKK+C4quC4seC4h+C4geC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lix4LiH4LiB4LijCivguKrguLHguIfguIHguKPguJPguLUKK+C4quC4seC4h+C4geC4sOC4leC4seC4hwor4Liq4Lix4LiH4LiB4Liw4Lin4Lix4LiHCivguKrguLHguIfguIHguLDguKfguLLguJQKK+C4quC4seC4h+C4geC4sOC4quC4tQor4Liq4Lix4LiH4LiB4Lix4LiUCivguKrguLHguIfguIHguLHguJvguJvguLAKK+C4quC4seC4h+C4geC4sgor4Liq4Lix4LiH4LiB4Liy4LijCivguKrguLHguIfguIHguLLguKgKK+C4quC4seC4h+C4geC4tOC5gOC4peC4qgor4Liq4Lix4LiH4LmA4LiB4LiVCivguKrguLHguIfguYDguIHguJXguIHguLLguKPguJPguYwKK+C4quC4seC4h+C4gi0KK+C4quC4seC4h+C4guC5jAor4Liq4Lix4LiH4LiC4LiB4LijCivguKrguLHguIfguILguJUtCivguKrguLHguIfguILguJXguJjguKPguKPguKEKK+C4quC4seC4h+C4guC4leC4sAor4Liq4Lix4LiH4LiC4Lii4LiyCivguKrguLHguIfguILguKXguLTguIEKK+C4quC4seC4h+C4guC4peC4tOC4geC4sgor4Liq4Lix4LiH4LiC4Liy4LijCivguKrguLHguIfguILguLLguKMtCivguKrguLHguIfguILguLLguKPguJjguKPguKPguKEKK+C4quC4seC4h+C4guC4suC4o+C5guC4peC4gQor4Liq4Lix4LiH4LmA4LiC4LibCivguKrguLHguIfguYLguILguKAKK+C4quC4seC4h+C4hC0KK+C4quC4seC4h+C4hOC5jAor4Liq4Lix4LiH4LiE4LiN4Liy4LiV4Li0CivguKrguLHguIfguITguKEKK+C4quC4seC4h+C4hOC4oS0KK+C4quC4seC4h+C4hOC4oeC4meC4tOC4ouC4oQor4Liq4Lix4LiH4LiE4Lih4Lin4Li04LiX4Lii4LiyCivguKrguLHguIfguITguKHguKjguLLguKrguJXguKPguYwKK+C4quC4seC4h+C4hOC4oeC4qOC4tuC4geC4qeC4sgor4Liq4Lix4LiH4LiE4Lih4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguITguKvguLAKK+C4quC4seC4h+C4hOC4seC4hwor4Liq4Lix4LiH4LiE4Liy4LiV4LiyCivguKrguLHguIfguITguLLguKLguJnguLIKK+C4quC4seC4h+C4hOC4suC4ouC4meC4suC4ogor4Liq4Lix4LiH4LiE4Li14LiVCivguKrguLHguIfguITguLXguJXguLQKK+C4quC4seC4h+C5gOC4hOC5h+C4lAor4Liq4Lix4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguIYtCivguKrguLHguIfguIbguIHguKPguKPguKEKK+C4quC4seC4h+C4huC4geC4suC4o+C4tQor4Liq4Lix4LiH4LiG4LmA4LiW4Lij4LiwCivguKrguLHguIfguIbguJfguLLguJkKK+C4quC4seC4h+C4huC4meC4suC4ouC4gQor4Liq4Lix4LiH4LiG4Lib4Liy4LmC4Lih4LiB4LiC4LmMCivguKrguLHguIfguIbguKDguLHguJUKK+C4quC4seC4h+C4huC5gOC4oOC4lwor4Liq4Lix4LiH4LiG4Lih4LiT4LiR4LilCivguKrguLHguIfguIbguKHguJnguJXguKPguLUKK+C4quC4seC4h+C4huC4o+C4suC4igor4Liq4Lix4LiH4LiG4Liq4Lig4LiyCivguKrguLHguIfguIbguLLguI/guLQKK+C4quC4seC4h+C4huC4suC4k+C4seC4leC4tAor4Liq4Lix4LiH4LiG4Liy4LiX4Li04LmA4Liq4LiqCivguKrguLHguIfguIbguLLguJjguLTguIHguLLguKMKK+C4quC4seC4h+C4huC4suC4meC4uOC4quC4leC4tAor4Liq4Lix4LiH4LiG4Liy4Lin4Liy4LiqCivguKrguLHguIfguJTguLHguIEKK+C4quC4seC4h+C4m+C4sOC4leC4tOC5geC4q+C4h+C4sAor4Liq4Lix4LiH4Lib4Liw4Lil4Li04LmA4Lir4LiH4LiwCivguKrguLHguIfguYLguKLguIQKK+C4quC4seC4h+C5guC4ouC4iuC4meC5jAor4Liq4Lix4LiH4Lin4LijCivguKrguLHguIfguKfguLHguIjguInguKPguLAKK+C4quC4seC4h+C4p+C4seC4mOC4ouC4suC4ogor4Liq4Lix4LiH4Lin4Liy4LilCivguKrguLHguIfguKfguLLguKXguJ7guKPguLLguKvguKHguJPguYwKK+C4quC4seC4h+C4p+C4suC4qgor4Liq4Lix4LiH4LmA4Lin4LiE4LiwCivguKrguLHguIfguYDguKfguIoKK+C4quC4seC4h+C5gOC4p+C4ogor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZCivguKrguLHguIfguKrguIHguKTguJUKK+C4quC4seC4h+C4quC4geC4suC4owor4Liq4Lix4LiH4Liq4LiU4Lih4Lig4LmMCivguKrguLHguIfguKrguJnguJfguJnguLIKK+C4quC4seC5iOC4h+C4quC4meC4l+C4meC4sgor4Liq4Lix4LmI4LiH4Liq4LihCivguKrguLHguIfguKrguKPguKPguITguYwKK+C4quC4seC5iOC4h+C4quC4reC4mQor4Liq4Lix4LiH4Liq4Liy4Lij4Lin4Lix4LiPCivguKrguLHguIfguKrguLTguJfguJjguLQKK+C4quC4seC4h+C4quC4uOC4l+C4mOC5jAor4Liq4Lix4LiH4Liq4Li44LiX4LiY4Li0CivguKrguLHguYjguIfguYDguKrguLXguKIKK+C4quC4seC4h+C4q+C4owor4Liq4Lix4LiH4Lir4Lij4LiT4LmMCivguKrguLHguIfguKvguKPguKPguKkKK+C4quC4seC4h+C4q+C4suC4owor4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguKrguLHguIfguKvguLLguKPguLTguKHguLAKK+C4quC4seC4h+C4q+C4tOC4lQor4Liq4Lix4LiICivguKrguLHguIgtCivguKrguLHguIjguIHguLTguKPguLTguKLguLIKK+C4quC4seC4iOC4iOC4sAor4Liq4Lix4LiI4LiN4Liy4LiTCivguKrguLHguIjguJnguLTguKLguKEKK+C4quC4seC4iOC4nuC4iOC4meC5jAor4Liq4Lix4LiK4LiMLQor4Liq4Lix4LiK4LiM4LiB4LijCivguKrguLHguIrguIzguIHguLLguKMKK+C4quC4seC4iuC4jOC4sAor4Liq4Lix4LiK4LiM4Liy4Lii4LiwCivguKrguLHguIrguIzguLgKK+C4quC4seC4iuC4jOC4uOC4geC4owor4Liq4Lix4LiK4LiM4Li44LiB4Liy4LijCivguKrguLHguI3guIjguKMKK+C4quC4seC4jeC4iOC4o+C5guC4o+C4hAor4Liq4Lix4LiN4LiI4Liy4LijCivguKrguLHguI3guYDguIjguJXguJnguLIKK+C4quC4seC4jeC4iuC4suC4lS0KK+C4quC4seC4jeC4iuC4suC4leC4jeC4suC4kwor4Liq4Lix4LiN4LiK4Liy4LiV4Li0CivguKrguLHguI3guIzguLIKK+C4quC4seC4jeC4jeC4sgor4Liq4Lix4LiN4LiN4Liy4LiTCivguKrguLHguI3guI3guLLguJrguLHguJXguKMKK+C4quC4seC4jeC4jeC4suC4m+C4o+C4sOC4geC4seC4meC4iuC4teC4p+C4tOC4lQor4Liq4Lix4LiN4LiN4Liy4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4LiiCivguKrguLHguI3guI3guLLguKfguLTguJvguKXguLLguKoKK+C4quC4seC4jeC4jeC4tQor4Liq4Lix4LiN4LmC4LiN4LiK4LiZ4LmMCivguKrguLHguI3guJvguKPguLDguIHguLLguKgKK+C4quC4seC4jeC5guC4ouC4hAor4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmMCivguKrguLHguJDguLQKK+C4quC4seC4k+C4kOC4suC4mQor4Liq4Lix4LiT4LiQ4Li04LiV4Li0CivguKrguLHguJPguJHguYwKK+C4quC4seC4k+C4q+C5jAor4Liq4Lix4LiUCivguKrguLHguJTguIjguK3guIcKK+C4quC4seC4lOC4quC5iOC4p+C4mQor4Liq4Lix4LiVCivguKrguLHguJUtCivguKrguLHguJXguIHguLLguKMKK+C4quC4seC4leC4leC4muC4h+C4geC4igor4Liq4Lix4LiV4LiV4Lia4Lij4Lij4LiTCivguKrguLHguJXguJXguJrguLjguKnguKLguYwKK+C4quC4seC4leC4leC4sAor4Liq4Lix4LiV4LiV4Liy4LirLQor4Liq4Lix4LiV4LiV4Liy4Lir4LiB4Liy4Lil4Li04LiBCivguKrguLHguJXguJXguLkKK+C4quC4seC4leC4li0KK+C4quC4seC4leC4luC4seC4meC4lOC4owor4Liq4Lix4LiV4LiW4LiyCivguKrguLHguJXguJbguLQKK+C4quC4seC4leC4luC4uAor4Liq4Lix4LiV4LiW4Li44Lio4Liy4Liq4LiZ4LiyCivguKrguLHguJXguJrguJYKK+C4quC4seC4leC4muC4o+C4o+C4kwor4Liq4Lix4LiV4Lia4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguKrguLHguJXguJrguLjguKPguLjguKkKK+C4quC4seC4leC4oOC4seC4k+C4keC5jAor4Liq4Lix4LiV4LihLQor4Liq4Lix4LiV4Lih4Lin4Liy4LijCivguKrguLHguJXguKItCivguKrguLHguJXguKLguYwKK+C4quC4seC4leC4ouC4nuC4o+C4lQor4Liq4Lix4LiV4Lii4Lin4Liy4LiX4Li1CivguKrguLHguJXguKLguLLguYDguITguKPguLLguLDguKvguYwKK+C4quC4seC4leC4ouC4suC4mOC4tOC4qeC4kOC4suC4mQor4Liq4Lix4LiV4Lii4Liy4Lia4Lix4LiZCivguKrguLHguJXguKctCivguKrguLHguJXguKfguYwKK+C4quC4seC4leC4p+C4muC4suC4pQor4Liq4Lix4LiV4Lin4LmB4Lie4LiX4Lii4LmMCivguKrguLHguJXguKfguYLguKXguIEKK+C4quC4seC4leC4p+C4p+C4tOC4l+C4ouC4sgor4Liq4Lix4LiV4Lin4LiyCivguKrguLHguJXguKfguLLguKMKK+C4quC4seC4leC4quC4lOC4gQor4Liq4Lix4LiX4LiY4Lij4Lij4LihCivguKrguLHguJfguJjguLIKK+C4quC4seC4l+C4mOC4suC4iOC4o+C4tOC4lQor4Liq4Lix4LiX4LiY4Liy4LiY4Li04LiBCivguKrguLHguJfguJjguLTguIfguKfguLTguKvguLLguKPguLTguIEKK+C4quC4seC4l+C4mOC4tOC4meC4l+C4o+C4teC4ouC5jAor4Liq4Lix4LiX4LiY4Li04Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguKjguLLguKrguJXguKPguYwKK+C4quC4seC4mQor4Liq4Lix4LmI4LiZCivguKrguLHguYnguJkKK+C4quC4seC4meC5gOC4guC4sgor4Liq4Lix4LiZ4LiU4Lit4LiZCivguKrguLHguJnguJTguLLguJkKK+C4quC4seC4meC4lOC4suC4mwor4Liq4Lix4LiZ4LmA4LiU4LiBCivguKrguLHguJnguYLguJTguKkKK+C4quC4seC4meC4leC5jAor4Liq4Lix4LiZ4LiV4LiV4Li0CivguKrguLHguJnguJXguLDguJvguLLguJvguLIKK+C4quC4seC4meC4leC4sOC4p+C4sgor4Liq4Lix4LiZ4LiV4Li0CivguKrguLHguJnguJXguLTguIHguLAKK+C4quC4seC4meC4leC4tOC4oOC4suC4ngor4Liq4Lix4LiZ4LiV4Li44LiP4LiQ4Li1CivguKrguLHguJnguJbguKPguLAKK+C4quC4seC4meC4luC4py0KK+C4quC4seC4meC4luC4p+C5hOC4oeC4leC4o+C4tQor4Liq4Lix4LiZ4LiW4Lin4LiwCivguKrguLHguJnguJbguLHguJUKK+C4quC4seC4meC4luC4suC4owor4Liq4Lix4LiZ4LiX4LiZ4LiwCivguKrguLHguJnguJfguLAKK+C4quC4seC4meC4l+C4seC4lAor4Liq4Lix4LiZ4LiX4Lix4LiU4LiB4Lij4LiT4Li1CivguKrguLHguJnguJfguLHguKrguJnguLAKK+C4quC4seC4meC4l+C4suC4mQor4Liq4Lix4LiZ4LiX4Li04LiQ4Li04LiBLQor4Liq4Lix4LiZ4LiX4Li04LiqCivguKrguLHguJnguYDguJfguKoKK+C4quC4seC4meC5gOC4l+C4qwor4Liq4Lix4LiZ4LiY4Liy4LiZCivguKrguLHguJnguJnguLTguJjguLQKK+C4quC4seC4meC4meC4tOC4muC4suC4lQor4Liq4Lix4LiZ4LiZ4Li04Lin4Liy4LiqCivguKrguLHguJnguJnguLTguYDguKfguKoKK+C4quC4seC4meC4meC4tOC4qeC4kOC4suC4mQor4Liq4Lix4LiZ4Lib4Lix4LiZ4LiZ4LmJ4LizCivguKrguLHguJnguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C4quC4seC4meC4nuC4o+C5ieC4suC4oeC4reC4jQor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4Lir4Lit4LihCivguKrguLHguJnguKPguKfguIcKK+C4quC4seC4meC4peC4tuC4gQor4Liq4Lix4LiZ4Liq4LiB4Lik4LiVCivguKrguLHguJnguKvguKXguLHguIcKK+C4quC4seC4meC4q+C4peC4seC4h+C4ouC4suC4pwor4Liq4Lix4LiaCivguKrguLHguJrguYDguIHguKXguLXguKLguKcKK+C4quC4seC4muC5gOC4h+C4sgor4Liq4Lix4Lia4LmA4LiK4Li34Lit4LiBCivguKrguLHguJrguJnguIEKK+C4quC4seC4muC4m+C4peC4seC4mgor4Liq4Lix4Lia4Lib4Lil4Li14LmJCivguKrguLHguJrguJvguLDguILguLLguKcKK+C4quC4seC4muC4m+C4sOC4o+C4lAor4Liq4Lix4Lia4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguKrguLHguJrguKrguJkKK+C4quC4seC4muC4q+C4peC4teC4gQor4Liq4Lix4Lib4LiE4Lix4LiaCivguKrguLHguJvguITguLHguJrguIrguYnguLLguIcKK+C4quC4seC4m+C4lC0KK+C4quC4seC4m+C4lOC4mQor4Liq4Lix4Lib4LiU4Lib4LiB4Lij4LiT4LmMCivguKrguLHguJvguJTguJvguKPguLDguIHguKPguJPguYwKK+C4quC4seC4m+C4lOC4quC4lOC4gQor4Liq4Lix4Lib4LiU4Liy4Lir4LmMCivguKrguLHguJvguJTguLLguKvguLAKK+C4quC4seC4m+C4lS0KK+C4quC4seC4m+C4leC4qOC4gQor4Liq4Lix4Lib4LiX4LiZCivguKrguLHguJvguJvguLAKK+C4quC4seC4m+C4m+C4tAor4Liq4Lix4Lib4Lib4Li44Lij4Li04LiqLQor4Liq4Lix4Lib4Lib4Li44Lij4Li44LipCivguKrguLHguJvguKPguLDguKLguLjguJfguJjguYwKK+C4quC4seC4m+C4q+C4h+C4gQor4Liq4Lix4Lib4LmA4Lir4Lij4LmI4LitCivguKrguLHguJ4KK+C4quC4seC4nuC4nuC4sAor4Liq4Lix4Lie4Lie4Lix4LiN4LiN4Li5CivguKrguLHguJ7guYDguJ7guYDguKvguKPguLAKK+C4quC4seC4nuC4ouC4reC4gQor4Liq4Lix4Lih4Lia4Li54Lij4LiT4LmMCivguKrguLHguKHguJvguIrguLHguI3guI3guLAKK+C4quC4seC4oeC4m+C4l+C4sgor4Liq4Lix4Lih4Lib4LiX4Liy4LiZCivguKrguLHguKHguJvguKLguLjguJUKK+C4quC4seC4oeC4m+C5guC4ouC4hAor4Liq4Lix4Lih4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMCivguKrguLHguKHguJvguKPguLDguKvguLLguKMKK+C4quC4seC4oeC4m+C4o+C4suC4ouC4oOC4ngor4Liq4Lix4Lih4Lib4Lij4Liy4Lii4Li04LiB4Lig4LieCivguKrguLHguKHguJvguLHguJXguJXguLQKK+C4quC4seC4oeC4nOC4seC4m+C4peC4suC4mwor4Liq4Lix4Lih4Lic4Lix4LiqCivguKrguLHguKHguJzguLHguKrguJnguK3guIEKK+C4quC4seC4oeC4nOC4seC4quC5g+C4mQor4Liq4Lix4Lih4Lic4Lix4Liq4Liq4Lij4LiwCivguKrguLHguKHguJzguLHguKrguK3guLHguIHguKnguKMKK+C4quC4seC4oeC4nuC4pQor4Liq4Lix4Lih4Lie4Lir4Li44Lil4LiyCivguKrguLHguKHguJ7guLHguIjguInguKMtCivguKrguLHguKHguJ7guLHguIjguInguKPguInguLTguJnguJfguYwKK+C4quC4seC4oeC4nuC4seC4leC4quC4owor4Liq4Lix4Lih4Lie4Lix4LiX4LiY4LmMCivguKrguLHguKHguJ7guLHguJnguJgtCivguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC4meC5jAor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4Lig4Liy4LieCivguKrguLHguKHguJ7guLHguJnguJjguKHguLTguJXguKMKK+C4quC4seC4oeC4nuC4seC4meC4mOC5hOC4oeC4leC4o+C4tQor4Liq4Lix4Lih4Lie4Liy4LiY4LiwCivguKrguLHguKHguJ7guLLguKvguJnguYwKK+C4quC4seC4oeC4nuC4suC4q+C4sAor4Liq4Lix4Lih4Lie4Li44LiX4LiYLQor4Liq4Lix4Lih4Lie4Li44LiX4LiY4LiwCivguKrguLHguKHguYLguJ7guJjguLQKK+C4quC4seC4oeC4oOC4p+C4sAor4Liq4Lix4Lih4Lig4LmA4Lin4Liq4Li1CivguKrguLHguKHguKDguLHguJUKK+C4quC4seC4oeC4oOC4seC4leC4leC4sAor4Liq4Lix4Lih4Lig4Liy4Lij4LiwCivguKrguLHguKHguKDguLLguKnguJPguYwKK+C4quC4seC4oeC5gOC4oOC4l+C4sAor4Liq4Lix4Lih4LmC4Lig4LiE4LiB4Liy4LiiCivguKrguLHguKHguKHguJnguLIKK+C4quC4seC4oeC4oeC4seC4m+C4mOC4suC4mQor4Liq4Lix4Lih4Lih4LiyCivguKrguLHguKHguKHguLLguIHguLHguKHguKHguLHguJnguJXguLAKK+C4quC4seC4oeC4oeC4suC4iOC4o+C4tOC4ouC4sgor4Liq4Lix4Lih4Lih4Liy4LiK4Li14LieCivguKrguLHguKHguKHguLLguJfguLTguJDguLQKK+C4quC4seC4oeC4oeC4suC4p+C4suC4iOC4sgor4Liq4Lix4Lih4Lih4Liy4Lin4Liy4Lii4Liy4Lih4LiwCivguKrguLHguKHguKHguLLguKrguJXguLQKK+C4quC4seC4oeC4oeC4suC4quC4oeC4suC4mOC4tAor4Liq4Lix4Lih4Lih4Liy4Liq4Lix4LiH4LiB4Lix4Lib4Lib4LiwCivguKrguLHguKHguKHguLLguK3guLLguIrguLXguKfguLAKK+C4quC4seC4oeC5guC4oeC4l+C4meC4teC4ouC4geC4luC4sgor4Liq4Lix4Lih4Lik4LiX4LiY4Li0LQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMCivguKrguLHguKHguKTguJfguJjguLTguKjguIEKK+C4quC4seC4ouC4meC5jAor4Liq4Lix4Lil4Lil4Liy4LibLQor4Liq4Lix4Lil4LmA4Lil4LiCLQor4Liq4Lix4Liq4LiU4Li1CivguKrguLHguKrguJUtCivguKrguLHguKrguJXguJfguLTguJDguLQKK+C4quC4seC4quC4quC4sAor4Liq4Lix4Liq4Liq4Li4CivguKrguLHguKrguKrguLkKK+C4quC4seC4quC4uOC4o+C4tQor4Liq4LiyCivguKrguYjguLIKK+C4quC4suC4gQor4Liq4Liy4LiB4LiB4Liw4LmA4Lia4Li34LitCivguKrguLLguIHguKPguKPguIjguYwKK+C4quC4suC4geC4pQor4Liq4Liy4LiB4Lip4Li04LiZCivguKrguLLguIHguKnguLUKK+C4quC4suC4geC4q+C4ouC4suC4gQor4Liq4Liy4LiB4Lix4LiI4LiJ4LiyCivguKrguLLguIHguLHguKXguKLguYwKK+C4quC4suC4geC4tOC4oi0KK+C4quC4suC4geC4tOC4ouC4muC4uOC4leC4owor4Liq4Liy4LiB4Li04Lii4Lih4Li44LiZ4Li1CivguKrguLLguIHguLTguKLguLAKK+C4quC4suC5gOC4gQor4Liq4LmI4Liy4LiC4LiZ4Li44LiZCivguKrguLLguILguLIKK+C4quC5iOC4suC5hOC4guC5iQor4Liq4Liy4LiE4LijCivguKrguLLguITguYDguKPguKgKK+C4quC4suC4hOC4uQor4Liq4Liy4LiE4Li54Lil4Liy4LiZCivguKrguLLguITguLnguKfguLTguKXguLLguJQKK+C4quC4suC4hwor4Liq4LmJ4Liy4LiHCivguKrguLLguIfguITguKXguLfguYjguJkKK+C4quC4suC4h+C4q+C5iOC4sgor4Liq4Liy4LiO4LiBCivguKrguLLguI/guLTguIEtCivguKrguLLguJMtCivguKrguLLguJPguLUKK+C4quC4suC4lAor4Liq4Liy4LiU4LmC4LiE4Lil4LiZCivguKrguLLguJTguJnguYnguLPguKPguJTguIHguLHguJkKK+C4quC4suC4lOC5gOC4quC4teC4ouC5gOC4l+C5gOC4quC4teC4ogor4Liq4Liy4LiVCivguKrguLLguJXguKPguLIKK+C4quC4suC5hOC4luC4ogor4Liq4Liy4LiX4LijCivguKrguLLguJfguLTguKoKK+C4quC4suC4l+C4tOC4qi0KK+C4quC4suC4l+C4tOC4quC4peC4seC4geC4qeC4k+C5jAor4Liq4Liy4LiX4Li4CivguKrguLLguYLguJcKK+C4quC4suC4mOC4gQor4Liq4Liy4LiY4LiiLQor4Liq4Liy4LiY4Lii4LiwCivguKrguLLguJjguKLguLLguKIKK+C4quC4suC4mOC4suC4o+C4ky0KK+C4quC4suC4mOC4suC4o+C4k+C5jAor4Liq4Liy4LiY4Liy4Lij4LiT4Lig4Lix4LiiCivguKrguLLguJjguLLguKPguJPguKPguLHguJAKK+C4quC4suC4mOC4suC4o+C4k+C4quC4luC4suC4mQor4Liq4Liy4LiY4Liy4Lij4LiT4Liq4Lih4Lia4Lix4LiV4Li0CivguKrguLLguJjguLLguKPguJPguKrguKHguJrguLHguJXguLTguILguK3guIfguYHguJzguYjguJnguJTguLTguJkKK+C4quC4suC4mOC4suC4o+C4k+C4quC4uOC4ggor4Liq4Liy4LiY4Liy4Lij4LiT4LiwCivguKrguLLguJjguLLguKPguJPguLnguJvguIHguLLguKMKK+C4quC4suC4mOC4suC4o+C4k+C4ueC4m+C5guC4oOC4hAor4Liq4Liy4LiY4Li04LiVCivguKrguLLguJjguLgKK+C4quC4suC4mOC4uOC4geC4suC4owor4Liq4Liy4LiY4Li44LiK4LiZCivguKrguLLguJjguLjguKrguLAKK+C4quC4suC4mQor4Liq4LmI4Liy4LiZCivguKrguLLguJnguJXguKfguLAKK+C4quC4suC4meC4uAor4Liq4Liy4LiZ4Li44Lio4Li04Lip4Lii4LmMCivguKrguLLguJnguLkKK+C4quC4suC4mgor4Liq4Liy4Lia4LiC4LiZ4Li44LiZCivguKrguLLguJrguYHguKPguYnguIcKK+C4quC4suC4muC5geC4o+C5ieC4h+C4quC4suC4muC4geC4sgor4Liq4Liy4Lia4Liq4Li54LiNCivguKrguLLguJrguYDguKrguLfguK0KK+C4quC4suC4muC4suC4mQor4Liq4Liy4Lia4Liy4LiZ4LiY4LiHCivguKrguLLguJsKK+C4quC4suC4m+C5hOC4leC4ogor4Liq4Liy4Lib4Liq4Lij4LijCivguKrguLLguKEKK+C4quC4suC4oeC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4Liq4Liy4Lih4LmA4LiB4Lil4LitCivguKrguLLguKHguYHguIHguYnguKcKK+C4quC4suC4oeC4guC4sgor4Liq4Liy4Lih4LiC4Li44LihCivguKrguLLguKHguYDguILguLXguYnguKLguKcKK+C4quC4suC4oeC4hOC4suC4mQor4Liq4Liy4Lih4LiH4LmI4Liy4LihCivguKrguLLguKHguIrguLjguIEKK+C4quC4suC4oeC5geC4i+C5iAor4Liq4Liy4Lih4LmA4LiT4LijCivguKrguLLguKHguYDguJPguKPguLUKK+C4quC4suC4oeC4leC4sgor4Liq4Liy4Lih4LiZ4LiVLQor4Liq4Liy4Lih4LiZ4LiV4LmMCivguKrguLLguKHguJnguJXguKPguLLguIoKK+C4quC4suC4oeC5g+C4muC5gOC4luC4sgor4Liq4Liy4Lih4LmA4Lie4Lil4LiH4LiV4LiB4Lih4LmJ4Liy4LiV4Liy4LiiCivguKrguLLguKHguYDguKHguLIKK+C4quC4suC4oeC4ouC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Liy4Lih4Lij4LiqCivguKrguLLguKHguKUKK+C4quC4suC4oeC4peC5ieC4rQor4Liq4Liy4Lih4Lil4Liz4LiE4Liy4LiZCivguKrguLLguKHguKfguLHguJnguJTguLXguKrguLXguYjguKfguLHguJnguYTguILguYkKK+C4quC4suC4oeC5gOC4p+C4lwor4Liq4Liy4Lih4LmA4Lio4Li14Lii4LijCivguKrguLLguKHguKrguKXguLbguIfguYDguJ/guLfguYnguK3guIcKK+C4quC4suC4oeC4quC4tOC4muC4geC4peC4teC4mgor4Liq4Liy4Lih4LmA4Liq4LmJ4LiyCivguKrguLLguKHguKvguKHguLjguJQKK+C4quC4suC4oeC4q+C4suC4mgor4Liq4Liy4Lih4Lir4Liy4LinCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKEKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4lOC5ieC4suC4meC5gOC4l+C5iOC4sgor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4Li44Lih4LiJ4Liy4LiBCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKHguKHguLjguKHguJvguYnguLLguJkKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4uOC4oeC5geC4q+C4peC4oQor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lir4LiZ4LmJ4Liy4LiI4Lix4LmI4LinCivguKrguLLguKHguLHguITguITguLUKK+C4quC4suC4oeC4seC4jS0KK+C4quC4suC4oeC4seC4jeC4quC4s+C4meC4tuC4gQor4Liq4Liy4Lih4Lix4LiV4LiW4Li04Lii4LiwCivguKrguLLguKHguLLguJnguKItCivguKrguLLguKHguLLguJnguKLguYwKK+C4quC4suC4oeC4suC4meC4ouC4meC4suC4oQor4Liq4Liy4Lih4Liy4Lij4LiWCivguKrguLLguKHguLTguIEKK+C4quC4suC4oeC4tOC4lQor4Liq4Liy4Lih4Li04LiZ4Li1CivguKrguLLguKHguLTguKDguLHguIHguJTguLTguYwKK+C4quC4suC4oeC4tQor4Liq4Liy4Lih4Li14LiI4Li04LiB4Lij4Lij4LihCivguKrguLLguKIKK+C4quC5iOC4suC4ogor4Liq4LmJ4Liy4LiiCivguKrguLLguKLguIHguKPguLDguYTguJQKK+C4quC4suC4ouC5g+C4iAor4Liq4Liy4Lii4LiK4Li5CivguKrguLLguKLguIvguLjguIcKK+C4quC4suC4ouC4lOC4tOC4mQor4Liq4Liy4Lii4LiV4Liw4Lie4Liy4LiiCivguKrguLLguKLguJXguLHguKcKK+C4quC4suC4ouC4leC4sgor4Liq4Liy4Lii4LiV4Liy4Lie4Li04LiB4Liy4LijCivguKrguLLguKLguJXguLTguYjguIcKK+C4quC4suC4ouC4meC5ieC4swor4Liq4Liy4Lii4LiZ4LmJ4Liz4Lic4Li24LmJ4LiHCivguKrguLLguKLguJrguLHguKcKK+C4quC4suC4ouC4nuC4suC4mQor4Liq4Liy4Lii4Lif4LmJ4LiyCivguKrguLLguKLguKHguIfguITguKUKK+C4quC4suC4ouC4oeC5iOC4suC4mQor4Liq4Liy4Lii4Lii4Li5CivguKrguLLguKLguYLguKLguIEKK+C4quC4suC4ouC5g+C4ogor4Liq4Liy4Lii4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguKrguLLguKLguKPguLDguKLguLLguIcKK+C4quC4suC4ouC4o+C4sOC5guC4ouC4hwor4Liq4Liy4Lii4Lij4Lix4LiU4LiX4Li24LiaCivguKrguLLguKLguKPguLjguYnguIcKK+C4quC4suC4ouC4peC5iOC4reC4n+C5ieC4sgor4Liq4Liy4Lii4Lil4Lix4LiaCivguKrguLLguKLguYDguKXguLfguK3guJQKK+C4quC4suC4ouC5guC4peC4q+C4tOC4lQor4Liq4LmI4Liy4Lii4Lio4Li24LiBCivguKrguYjguLLguKLguYDguKjguLTguIEKK+C4quC4suC4ouC4quC4meC4geC4peC5g+C4mQor4Liq4Liy4Lii4Liq4Lih4LijCivguKrguLLguKLguKrguKPguYnguK3guKIKK+C4quC4suC4ouC4quC4p+C4suC4lwor4Liq4Liy4Lii4Liq4Liw4Lie4Liy4LiiCivguKrguLLguKLguKrguLTguI3guIjguJnguYwKK+C4quC4suC4ouC4quC4ueC4leC4owor4Liq4Liy4Lii4Lir4Lii4Li44LiUCivguKrguLLguKLguYDguKvguLIKK+C4quC4suC4ouC4reC4suC4geC4suC4qAor4Liq4Liy4Lii4LmA4Lit4LiBCivguKrguLLguKLguLHguJPguKvguYwKK+C4quC4suC4ouC4suC4q+C5jAor4Liq4Liy4LijCivguKrguLLguKMtCivguKrguLLguKPguIHguKPguKHguJjguKPguKPguKHguYwKK+C4quC4suC4o+C4hOC4lOC4tQor4Liq4Liy4Lij4LiV4Lij4LiyCivguKrguLLguKPguJbguLUKK+C4quC4suC4o+C4luC4teC4iuC4seC4geC4o+C4lgor4Liq4Liy4Lij4LiXCivguKrguLLguKPguJfguLIKK+C4quC4suC4o+C4l+C4uOC4geC4guC5jOC4quC4uOC4geC4lOC4tOC4mgor4Liq4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLLguKPguJnguLTguYDguJfguKgKK+C4quC4suC4o+C4muC4mgor4Liq4Liy4Lij4Lia4Lij4Lij4LiTCivguKrguLLguKPguJrguLHguI0KK+C4quC4suC4o+C4muC4seC4mgor4Liq4LmJ4Liy4Lij4Lia4Lix4LiaCivguKrguLLguKPguJrguLLguI0KK+C4quC4suC4o+C4muC4suC4jeC4iuC4tQor4Liq4Liy4Lij4Lib4Lij4Liw4LiB4Lit4LiaCivguKrguLLguKPguJvguKPguLDguYLguKLguIrguJnguYwKK+C4quC4suC4o+C4nuC4seC4lAor4Liq4Liy4Lij4Lie4Lix4LiZCivguKrguLLguKPguJ7guLLguIfguITguYwKK+C4quC4suC4o+C4oOC4suC4ngor4Liq4Liy4Lij4Lig4Li1CivguKrguLLguKPguKDguLXguJfguLDguYDguKUKK+C4quC4suC4o+C4oOC4teC4m+C5iOC4sgor4Liq4Liy4Lij4LmE4Lih4LiiCivguKrguLLguKPguKXguLDguKXguLLguKIKK+C4quC4suC4o+C4p+C4seC4lAor4Liq4Liy4Lij4Lin4Lix4LiV4LijCivguKrguLLguKPguKrguJnguYDguJfguKgKK+C4quC4suC4o+C4quC5ieC4oQor4Liq4Liy4Lij4Lir4LiZ4Li5CivguKrguLLguKPguKvguJnguLnguILguLLguKcKK+C4quC4suC4o+C4sAor4Liq4Liy4Lij4Liw4LmC4LiB4LiBCivguKrguLLguKPguLDguYHguJkKK+C4quC4suC4o+C4sOC4nuC4sgor4Liq4Liy4Lij4Liw4Lie4Liy4LmA4Liu4LmC4LilCivguKrguLLguKPguLDguKfguK3guJkKK+C4quC4suC4o+C4sOC4p+C4suC4o+C4tQor4Liq4Liy4Lij4Liw4Liq4Liw4Lih4LiyCivguKrguLLguKPguLHguJXguJYtCivguKrguLLguKPguLHguJXguJbguLAKK+C4quC4suC4o+C4seC4leC4luC4sOC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Liq4Liy4Lij4Lix4LiX4LiY4LmMCivguKrguLLguKPguLHguKHguKDguYwKK+C4quC4suC4o+C4suC4k+C4teC4oi0KK+C4quC4suC4o+C4suC4k+C4teC4ouC4geC4owor4Liq4Liy4Lij4Liy4LiT4Li14Lii4LiY4Lij4Lij4LihCivguKrguLLguKPguLLguJPguLXguKLguLAKK+C4quC4suC4o+C4suC4meC4uOC4geC4o+C4oQor4Liq4Liy4Lij4Li14Lij4Li04LiB4LiY4Liy4LiV4Li4CivguKrguLLguKPguLnguJsKK+C4quC4suC5guC4o+C4igor4Liq4Liy4Lil4LiwCivguKrguLLguKXguLDguKfguJkKK+C4quC4suC4peC4tAor4Liq4Liy4Lil4Li04LiB4LiyCivguKrguLLguKXguLTguJnguLUKK+C4quC4suC4peC4tQor4Liq4Liy4Lil4Li14LmICivguKrguLLguKXguLkKK+C4quC5iOC4suC5gOC4peC4t+C4reC4lAor4Liq4Liy4LmC4Lil4Lir4Li04LiVCivguKrguLLguKcKK+C4quC4suC4p+C4gQor4Liq4Liy4Lin4LiB4Lij4Liw4LiX4Li34Lia4Lir4LitCivguKrguLLguKfguIHguYnguLLguKcKK+C4quC4suC4p+C5geC4geC5iAor4Liq4Liy4Lin4LmA4LiX4LmJ4LiyCivguKrguLLguKfguJnguYnguK3guKLguYDguKXguYjguJnguJnguYnguLMKK+C4quC4suC4p+C4meC4sAor4Liq4Liy4Lin4LmB4Liq4LmJCivguKrguLLguKfguYTguKrguYkKK+C4quC4suC4p+C5hOC4quC5ieC5g+C4q+C5ieC4geC4suC4geC4tOC4mQor4Liq4Liy4Lin4Li04LiB4LiyCivguKrguLLguKfguLTguJXguKMKK+C4quC4suC4p+C4tOC4leC4o+C4tQor4Liq4Liy4Liq4LiZCivguKrguLLguKrguJktCivguKrguLLguKrguJnguYwKK+C4quC4suC4quC4meC4mOC4o+C4o+C4oQor4Liq4Liy4Liq4LiZ4LiyCivguKrguLLguKvguKPguYjguLLguKIKK+C4quC4suC4q+C4o+C4tQor4Liq4LmI4Liy4Lir4Lij4Li1CivguKrguLLguKvguLHguJXguJYtCivguKrguLLguKvguLHguJXguJbguLTguIEtCivguKrguLLguKvguLHguKoKK+C4quC4suC4q+C4seC4quC4quC4suC4geC4o+C4o+C4iOC5jAor4Liq4LmI4Liy4LmA4Lir4LmH4LiUCivguKrguLLguYDguKvguJXguLgKK+C4quC5iOC4suC5gOC4q+C4peC5ieC4sgor4Liq4Liy4LmB4Lir4Lij4LiBCivguKrguLLguKzguLjguKPguLAKK+C4quC4swor4Liq4LmI4LizCivguKrguLPguITguLHguI0KK+C4quC4s+C4i+C5iOC4suC4hwor4Liq4Liz4LmB4LiU4LiHCivguKrguLPguJfguLHguJoKK+C4quC4s+C4meC4p+C4lAor4Liq4Liz4LiZ4Lin4LiZCivguKrguLPguJnguKfguJnguITguKfguLLguKEKK+C4quC4s+C4meC4reC4hwor4Liq4Liz4LiZ4Lix4LiBCivguKrguLPguJnguLHguIHguKrguIfguIbguYwKK+C4quC4s+C4meC4suC4mQor4Liq4Liz4LiZ4Li24LiBCivguKrguLPguJnguLbguIcKK+C4quC4s+C5gOC4meC4sgor4Liq4Liz4LmA4LiZ4Li14Lii4LiHCivguKrguLPguJrguK3guIEKK+C4quC4s+C4muC4seC4lOC4quC4s+C4meC4p+C4mQor4Liq4Liz4Lib4Liw4Lil4LitCivguKrguLPguJvguLDguKvguKXguLHguIcKK+C4quC4s+C4m+C4seC5ieC4mQor4Liq4Liz4Lib4Lix4LiZ4LiZ4Li1CivguKrguLPguYDguKDguLIKK+C4quC4s+C5gOC4oOC4suC4l+C4reC4hwor4Liq4Liz4Lih4Liw4LiH4LiyCivguKrguLPguKHguLDguYLguJkKK+C4quC4s+C4oeC4sOC5guC4meC4hOC4o+C4seC4pwor4Liq4Liz4Lih4Liw4LmC4LiZ4Lib4Lij4Liw4LiK4Liy4LiB4LijCivguKrguLPguKHguLDguKXguK0KK+C4quC4s+C4oeC4sOC5gOC4peC5gOC4l+C5gOC4oeC4sgor4Liq4Liz4Lih4Liw4Lir4LiyCivguKrguLPguKPguJQKK+C4quC4s+C4o+C4p+C4iAor4Liq4Liz4Lij4Lin4LihCivguKrguLPguKPguKfguKHguYPguIgKK+C4quC4s+C4o+C4p+C4ogor4Liq4Liz4Lij4Lin4LilCivguKrguLPguKPguK3guIEKK+C4quC4s+C4o+C4reC4hwor4Liq4Liz4Lij4Lix4LiaCivguKrguLPguKPguLLguIEKK+C4quC4s+C4o+C4suC4jQor4Liq4Liz4Lij4Li04LiUCivguKrguLPguYDguKPguYfguIgKK+C4quC4s+C5gOC4o+C5h+C4iOC5guC4l+C4qQor4Liq4Liz4LmA4Lij4LmH4LiI4Lij4Li54LibCivguKrguLPguYDguKPguLIKK+C4quC4s+C5gOC4o+C4tOC4hwor4Liq4Liz4LmC4Lij4LiHCivguKrguLPguKXguLHguIEKK+C4quC4s+C4peC4suC4mQor4Liq4Liz4Lil4Li1CivguKrguLPguYHguKXguIcKK+C4quC4s+C4quC4o+C5ieC4suC4hwor4Liq4Liz4Liq4LmI4Lit4LiZCivguKrguLPguKrguLIKK+C4quC4s+C5gOC4quC5h+C4lAor4Liq4LmI4Liz4LmA4Liq4Li14LiiCivguKrguLPguKvguKPguKfguJQKK+C4quC4s+C4q+C4o+C4seC4mgor4Liq4Liz4Lir4LiyCivguKrguLPguYDguKvguJnguLXguKLguIEKK+C4quC4s+C5gOC4q+C4o+C5iAor4Liq4Liz4Lit4Lit4LiiCivguKrguLPguK3guLLguIcKK+C4quC4tAor4Liq4Li04LiB4LiC4LmMCivguKrguLTguIHguILguKHguLLguJnguLIKK+C4quC4tOC4geC4guC4sgor4Liq4Li04LiB4LiC4Liy4LiB4Liy4LihLQor4Liq4Li04LiB4LiC4Liy4Lia4LiXCivguKrguLTguILguKMKK+C4quC4tOC4guC4o+C4tQor4Liq4Li04LiC4LmA4Lij4LioCivguKrguLTguILguLIKK+C4quC4tOC4guC4suC4meC4pQor4Liq4Li04LiC4Li1CivguKrguLTguITguLLguKUKK+C4quC4tOC4hwor4Liq4Li04LmI4LiHCivguKrguLTguIfguILguKMKK+C4quC4tOC5iOC4h+C4guC4reC4hwor4Liq4Li04LiH4LiE4LmMCivguKrguLTguIfguITguKXguLTguYnguIcKK+C4quC4tOC4h+C4hOC4peC4tQor4Liq4Li04LiH4LiE4Liy4LijCivguKrguLTguIfguITguLLguKUKK+C4quC4tOC4h+C4hOC4tQor4Liq4Li04LiH4LmC4LiVCivguKrguLTguIfguYLguJXguJfguLDguYDguKUKK+C4quC4tOC5iOC4h+C4nuC4tOC4oeC4nuC5jAor4Liq4Li04LmI4LiH4Lil4Liw4Lit4Lix4LiZ4Lie4Lix4LiZ4Lil4Liw4LiZ4LmJ4Lit4LiiCivguKrguLTguYjguIfguYHguKfguJTguKXguYnguK3guKEKK+C4quC4tOC4h+C4quC4luC4tOC4lQor4Liq4Li04LiH4Liq4Liy4Lij4Liy4Liq4Lix4LiV4Lin4LmMCivguKrguLTguIfguKrguLnguYgKK+C4quC4tOC4h+C4qy0KK+C4quC4tOC4h+C4q+C5jAor4Liq4Li04LiH4Lir4LiZ4Liy4LiXCivguKrguLTguIfguKvguJrguLHguI3guIrguKMKK+C4quC4tOC4h+C4q+C4o+C4sgor4Liq4Li04LiH4Lir4Lij4Liy4LiKCivguKrguLTguIfguKvguKUKK+C4quC4tOC4h+C4q+C4peC4gS0KK+C4quC4tOC4h+C4q+C4suC4hOC4oQor4Liq4Li04LiH4Lir4Liy4Liq4LiZ4LmMCivguKrguLTguI3guIgtCivguKrguLTguI3guIjguJnguYwKK+C4quC4tOC4lS0KK+C4quC4tOC4leC4suC4h+C4qOC4uOC5jAor4Liq4Li04LiW4Li04LilCivguKrguLTguJfguJgtCivguKrguLTguJfguJjguYwKK+C4quC4tOC4l+C4mOC4sgor4Liq4Li04LiX4LiY4Liy4LiI4Liy4Lij4Lii4LmMCivguKrguLTguJfguJjguLLguJnguJXguYwKK+C4quC4tOC4l+C4mOC4suC4o+C4lgor4Liq4Li04LiX4LiY4Li0CivguKrguLTguJfguJjguLTguYwKK+C4quC4tOC4l+C4mOC4tOC4geC4owor4Liq4Li04LiX4LiY4Li04LiB4Liy4Lij4Li04Lii4LiwCivguKrguLTguJfguJjguLTguYzguILguLLguJQKK+C4quC4tOC4l+C4mOC4tOC4hOC4o+C4reC4muC4hOC4o+C4reC4hwor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiCivguKrguLTguJfguJjguLTguYLguIrguIQKK+C4quC4tOC4l+C4mOC4tOC4muC4seC4leC4owor4Liq4Li04LiX4LiY4Li04Lii4Li24LiU4Lir4LiZ4LmI4Lin4LiHCivguKrguLTguJfguJjguLTguKrguKDguLLguJ7guJnguK3guIHguK3guLLguJPguLLguYDguILguJUKK+C4quC4tOC4mOC4ouC4sAor4Liq4Li04LiZCivguKrguLTguYnguJkKK+C4quC4tOC4meC4hOC5ieC4sgor4Liq4Li04LiZ4LiE4LmJ4Liy4LmA4LiC4LmJ4LiyCivguKrguLTguJnguITguYnguLLguK3guK3guIEKK+C4quC4tOC5ieC4meC4hOC4tOC4lAor4Liq4Li04LiZ4LiI4LmJ4Liy4LiHCivguKrguLTguYnguJnguYPguIgKK+C4quC4tOC5ieC4meC4iuC4teC4ngor4Liq4Li04LmJ4LiZ4LiK4Li14Lie4LiV4Lix4LiB4Lip4Lix4LiiCivguKrguLTguYnguJnguIrguLXguKfguLTguJUKK+C4quC4tOC5ieC4meC5gOC4iuC4tOC4hwor4Liq4Li04LiZ4LmA4LiK4Li34LmI4LitCivguKrguLTguJnguYPguIrguYkKK+C4quC4tOC4meC5gOC4lOC4tOC4oQor4Liq4Li04LmJ4LiZ4LiV4Liz4Lij4LiyCivguKrguLTguYnguJnguYHguJXguYnguKEKK+C4quC4tOC4meC5hOC4luC5iAor4Liq4Li04LiZ4LiX4Lij4Lix4Lie4Lii4LmMCivguKrguLTguYnguJnguJfguYjguLIKK+C4quC4tOC4meC4l+C4ueC4o+C4sAor4Liq4Li04LiZ4LmA4LiX4LiyCivguKrguLTguJnguJjguJ4KK+C4quC4tOC4meC4mOC4uAor4Liq4Li04LiZ4LiY4Li44Lij4LiwCivguKrguLTguJnguYDguJjguLLguKfguYwKK+C4quC4tOC4meC4meC5ieC4s+C5g+C4iAor4Liq4Li04LmJ4LiZ4LmA4LiZ4Li34LmJ4Lit4Lib4Lij4Liw4LiU4Liy4LiV4Lix4LinCivguKrguLTguJnguJrguJkKK+C4quC4tOC4meC4muC4o+C4tOC4hOC4k+C4q+C5jAor4Liq4Li04LmJ4LiZ4Lia4Li44LiNCivguKrguLTguYnguJnguJvguKPguLDguJXguLkKK+C4quC4tOC5ieC4meC4nuC4o+C4sOC4iuC4meC4oeC5jAor4Liq4Li04LiZ4Lij4Liw4Lia4Liy4LiUCivguKrguLTguJnguYHguKPguYgKK+C4quC4tOC5ieC4meC5hOC4o+C5ieC5hOC4oeC5ieC4leC4reC4gQor4Liq4Li04LmJ4LiZ4Lik4LiX4LiY4Li04LmMCivguKrguLTguYnguJnguKXguKEKK+C4quC4tOC4meC4quC4oeC4o+C4qgor4Liq4Li04LiZ4Liq4LmI4Lin4LiZ4LiV4Lix4LinCivguKrguLTguJnguKrguK3guJQKK+C4quC4tOC5ieC4meC4quC4uOC4lAor4Liq4Li04LiZ4Lir4Lix4Lin4Lia4Lix4Lin4LiZ4Liy4LiHCivguKrguLTguJnguYTguKvguKEKK+C4quC4tOC4meC5hOC4q+C4oeC4l+C4lOC5geC4l+C4mQor4Liq4Li04LiZ4LiwCivguKrguLTguJnguLLguJQKK+C4quC4tOC4meC4tOC4l+C4mOC5jAor4Liq4Li04LiZ4Li1CivguKrguLTguYDguJnguKPguLgKK+C4quC4tOC5gOC4meC4q+C4gQor4Liq4Li04LmA4LiZ4Lir4LiZ4Li14Lii4LiwCivguKrguLTguYDguJnguKvguLAKK+C4quC4tOC5gOC4meC4q+C4sgor4Liq4Li04LmA4LiZ4LmI4Lir4LiyCivguKrguLTguJoKK+C4quC4tOC4muC5gOC4muC4teC5ieC4ouC5g+C4geC4peC5ieC4oeC4t+C4rQor4Liq4Li04Lia4LmB4Lib4LiU4Lih4LiH4LiB4Li44LiOCivguKrguLTguJvguJvguLAKK+C4quC4tOC4nuC4meC4sAor4Liq4Li04Lih4Lie4Lil4Li1CivguKrguLTguKMtCivguKrguLTguKPguLAKK+C4quC4tOC4o+C4tAor4Liq4Li04Lij4Li1CivguKrguLTguYLguKPguJTguKEKK+C4quC4tOC5guC4o+C4leC4oeC5jAor4Liq4Li04Lil4LiyCivguKrguLTguYLguKXguIEKK+C4quC4tOC4pwor4Liq4Li04LmI4LinCivguKrguLTguYjguKfguJnguYjguK3guIcKK+C4quC4tOC4p+C5gOC4quC4teC5ieC4ouC4mQor4Liq4Li04Lin4LiwCivguKrguLTguKfguLLguKXguLHguKIKK+C4quC4tOC4p+C4tOC4geC4sgor4Liq4Li04Lir4LiZ4LiyCivguKrguLUKK+C4quC4teC5iAor4Liq4Li14LmJCivguKrguLXguIHguKPguLjguJQKK+C4quC4teC4geC4sgor4Liq4Li14LiB4Li44LiZCivguKrguLXguILguYnguLLguIcKK+C4quC4teC4hi0KK+C4quC4teC4iOC4seC4gQor4Liq4Li14LiK4Lih4Lie4Li54LiU4LiHCivguKrguLXguIrguKHguJ7guLnguKrguKfguJkKK+C4quC4teC4i+C4reC5g+C4q+C5ieC4hOC4p+C4suC4ouC4n+C4seC4hwor4Liq4Li14LiUCivguKrguLXguJTguK0KK+C4quC4teC4lS0KK+C4quC4teC4leC5ieC4mQor4Liq4Li14LiV4LilLQor4Liq4Li14LiV4Lil4Lij4Lix4Lio4Lih4Li1CivguKrguLXguJXguKXguKvguKTguJfguLHguKIKK+C4quC4teC4leC5guC4peC4l+C4gQor4Liq4Li14LmC4LiV4LiX4LiBCivguKrguLXguJfguLHguJnguJTguKMKK+C4quC4teC5iOC4muC4lwor4Liq4Li14Lic4Li24LmJ4LiHCivguKrguLXguJ3guLHguJQKK+C4quC4teC4n+C4seC4meC4hOC4meC4l+C4sgor4Liq4Li14Lif4Lix4LiZ4LiZ4Liy4LiH4LmB4LitCivguKrguLXguYTguJ8KK+C4quC4teC4oeC4seC4meC4leC5jAor4Liq4Li14Lih4LiyCivguKrguLXguKXguKEKK+C4quC4teC4peC4sOC4oeC4seC4mQor4Liq4Li14Lin4Li04LiB4LiyCivguKrguLXguKrguKfguKPguKPguITguYwKK+C4quC4teC4quC4rQor4Liq4Li14Liq4LiwCivguKrguLXguKrguLIKK+C4quC4teC4quC4uOC4gQor4Liq4Li14LmA4Liq4Li14Lii4LiUCivguKrguLXguYDguKrguLXguKLguJTguYHguIHguYjguJkKK+C4quC4teC5gOC4quC4teC4ouC4lOC5gOC4m+C4peC4t+C4reC4gQor4Liq4Li14LmA4Liq4Li14Lii4LiU4LmA4Lir4LiZ4Li34LitCivguKrguLXguYDguKrguLfguYnguK3guJnguYnguK3guKIKK+C4quC4teC4qy0KK+C4quC4teC4q+C5jAor4Liq4Li14Lir4LiZ4LmJ4LiyCivguKrguLXguKvguJnguLLguJcKK+C4quC4teC4q+C4muC4seC4jeC4iuC4owor4Liq4Li14Lir4Lij4Liy4LiKCivguKrguLXguKvguLAKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oQor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiC4LiZ4Lih4LmA4Lib4Li14Lii4LiB4Lib4Li54LiZCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguITguLLguIfguKvguKHguLkKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4iOC4seC4leC4uOC4o+C4seC4qgor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiU4LmJ4Liy4LiZ4LiC4LiZ4Liy4LiZCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguJTguYnguLLguJnguYTguKHguYjguYDguJfguYjguLIKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4nOC4t+C4meC4nOC5ieC4sgor4Liq4Li24LiBCivguKrguLbguIHguKvguKPguK0KK+C4quC4tuC4hwor4Liq4Li34LiaCivguKrguLfguJrguYTguJsKK+C4quC4t+C4muC4nuC4ouC4suC4mQor4Liq4Li34Lia4Lie4Lix4LiZ4LiY4Li44LmMCivguKrguLfguJrguJ7guLHguJnguJjguLjguYzguYHguJrguJrguYTguKHguYjguK3guLLguKjguLHguKLguYDguJ7guKgKK+C4quC4t+C4muC4nuC4seC4meC4mOC4uOC5jOC5geC4muC4muC4reC4suC4qOC4seC4ouC5gOC4nuC4qAor4Liq4Li34Lia4Lij4Liy4LiK4Liq4Lih4Lia4Lix4LiV4Li0CivguKrguLfguJrguKPguLLguIrguKrguLHguJnguJXguJXguLTguKfguIfguKjguYwKK+C4quC4t+C4muC4qOC4suC4quC4meC4sgor4Liq4Li34Lia4Liq4Lin4LiZCivguKrguLfguJrguKrguLHguJnguJTguLLguJkKK+C4quC4t+C4muC4quC4suC4ogor4Liq4Li34Lia4Liq4Liy4Lin4Lij4Liy4Lin4LmA4Lij4Li34LmI4Lit4LiHCivguKrguLfguJrguYDguKrguLLguLAKK+C4quC4t+C4muC4q+C4ueC4gQor4Liq4Li34LmI4LitCivguKrguLfguYjguK3guIHguLLguKPguKjguLbguIHguKnguLIKK+C4quC4t+C5iOC4reC4oeC4p+C4peC4iuC4mQor4Liq4Li34LmI4Lit4Liq4Liy4LijCivguKrguLfguYjguK3guKrguLLguKPguKHguKfguKXguIrguJkKK+C4quC4uAor4Liq4Li44LiBCivguKrguLjguIHguIHguYjguK3guJnguKvguYjguLLguKEKK+C4quC4uOC4geC4guC5jAor4Liq4Li44LiB4LiU4Li04LiaCivguKrguLjguIHguYYg4LiU4Li04Lia4LmGCivguKrguLjguIHguYHguJTguJQKK+C4quC4uOC4geC4owor4Liq4Li44LiB4Lij4LihCivguKrguLjguIHguYPguKoKK+C4quC4uOC4geC5gOC4reC4suC5gOC4nOC4suC4geC4tOC4mQor4Liq4Li44LiB4Liz4Lio4LieCivguKrguLjguIHguLXguKLguLLguIHguLXguYkKK+C4quC4uOC4ggor4Liq4Li44LiCLQor4Liq4Li44LiC4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguKrguLjguILguKDguLHguJPguJHguYwKK+C4quC4uOC4guC4oOC4suC4ngor4Liq4Li44LiC4Lil4Lix4LiB4Lip4LiT4LiwCivguKrguLjguILguKfguLTguJfguKLguLIKK+C4quC4uOC4guC4qOC4suC4peC4sgor4Liq4Li44LiC4Lio4Li24LiB4Lip4LiyCivguKrguLjguILguLIKK+C4quC4uOC4guC4suC4oOC4tOC4muC4suC4pQor4Liq4Li44LiC4Liy4Lij4Lih4LiT4LmMCivguKrguLjguILguLLguKfguJTguLUKK+C4quC4uOC4guC4tOC4mQor4Liq4Li44LiC4Li1CivguKrguLjguILguLjguKEKK+C4quC4uOC4guC4uOC4oeC4suC4pQor4Liq4Li44LiE4LiVCivguKrguLjguITguJXguLQKK+C4quC4uOC4hOC4meC4mC0KK+C4quC4uOC4hOC4meC4mOC5jAor4Liq4Li44LiE4LiZ4LiY4Lij4LiqCivguKrguLjguITguLHguJnguJjguYwKK+C4quC4uOC4h+C4gS0KK+C4quC4uOC4h+C4geC4sAor4Liq4Li44LiH4LiB4Liy4LiB4LijCivguKrguLjguIfguKrguLTguIcKK+C4quC4uOC4h+C4quC4uOC4oeC4suC4owor4Liq4Li44LiH4Liq4Li44Lih4Liy4Lij4Li1CivguKrguLjguIjguKPguLTguJUKK+C4quC4uOC4iOC4q+C4meC4teC5iAor4Liq4Li44LiI4LiwCivguKrguLjguIjguLQKK+C4quC4uOC4iOC4tOC4lQor4Liq4Li44LiI4Li04LiV4LijCivguKrguLjguIrguJkKK+C4quC4uOC4iuC4seC4oeC4muC4lOC4tQor4Liq4Li44LiK4LiyCivguKrguLjguIrguLLguJTguLIKK+C4quC4uOC4jQor4Liq4Li44LiNLQor4Liq4Li44LiN4LiNLQor4Liq4Li44LiN4LiN4Liy4LiB4Liy4LioCivguKrguLjguI3guJXguLIKK+C4quC4uOC4jeC4meC4tOC4ouC4oQor4Liq4Li44LiTCivguKrguLjguJPguKvguLIKK+C4quC4uOC4k+C4tOC4quC4sgor4Liq4Li44LiUCivguKrguLjguJTguIHguLPguKXguLHguIcKK+C4quC4uOC4lOC4geC4ueC5iAor4Liq4Li44LiU4LiC4Li14LiUCivguKrguLjguJTguITguJkKK+C4quC4uOC4lOC4hOC4tOC4lAor4Liq4Li44LiU4LiI4Li04LiVCivguKrguLjguJTguYPguIgKK+C4quC4uOC4lOC4lOC5ieC4suC4oQor4Liq4Li44LiU4LmB4LiV4LmICivguKrguLjguJTguYLguJXguYjguIcKK+C4quC4uOC4lOC4l+C5ieC4reC4hwor4Liq4Li44LiU4LiX4LmJ4Liy4LiiCivguKrguLjguJTguJfguYnguLLguKLguJvguKXguLLguKLguYLguJXguYjguIcKK+C4quC4uOC4lOC5geC4o+C4h+C5gOC4geC4tOC4lAor4Liq4Li44LiU4Lil4Li04LmI4LihCivguKrguLjguJTguKfguLTguKrguLHguKIKK+C4quC4uOC4lOC4quC4h+C4p+C4mQor4Liq4Li44LiU4Liq4Lin4Liy4LiX4LiC4Liy4LiU4LmD4LiICivguKrguLjguJTguKrguLLguKLguJvguYjguLLguJkKK+C4quC4uOC4lOC5gOC4quC4teC4ouC4hwor4Liq4Li44LiU4LmA4Liq4Li14Lii4LiH4Liq4Lix4LiH4LiC4LmMCivguKrguLjguJTguKvguKXguYnguLLguJ/guYnguLLguYDguILguLXguKLguKcKK+C4quC4uOC4lOC5gOC4q+C4p+C4teC5iOC4ouC4hwor4Liq4Li44LiU4LiyCivguKrguLjguJUKK+C4quC4uOC4leC4geC4p+C4tQor4Liq4Li44LiV4LiV4LiwCivguKrguLjguJXguJXguLHguJnguJXguJvguLTguI7guIEKK+C4quC4uOC4leC4leC4seC4meC4leC4sAor4Liq4Li44LiV4Li0CivguKrguLjguJfguJgtCivguKrguLjguJfguJjguYwKK+C4quC4uOC4l+C4mOC4suC4p+C4suC4qgor4Liq4Li44LiX4LiY4Li0CivguKrguLjguJfguKPguKPguKjguJnguYwKK+C4quC4uOC4l+C4seC4qOC4meC5jAor4Liq4Li44LiY4LiyCivguKrguLjguJjguLLguIHguLLguKMKK+C4quC4uOC4mOC4suC5guC4oOC4iuC4meC5jAor4Liq4Li44LiY4Liy4Lij4LiqCivguKrguLjguJjguLLguKPguKrguIrguLIKK+C4quC4uOC4mOC4suC4quC4tOC4meC4tQor4Liq4Li44LiY4Liy4Liq4Li1CivguKrguLjguJjguLUKK+C4quC4uOC4meC4l+C4owor4Liq4Li44LiZ4LiX4LijLQor4Liq4Li44LiZ4LiX4Lij4Lie4LiI4LiZ4LmMCivguKrguLjguJnguJfguKPguLUKK+C4quC4uOC4meC4l+C4o+C4teC4oi0KK+C4quC4uOC4meC4l+C4o+C4teC4ouC4oOC4suC4ngor4Liq4Li44LiZ4LiX4Lij4Li14Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLjguJnguJfguKPguLXguKLguLAKK+C4quC4uOC4meC4seC4ggor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMCivguKrguLjguYLguJnguIEKK+C4quC4uOC4muC4lOC4tQor4Liq4Li44Lia4Lij4Lij4LiTCivguKrguLjguJrguLTguJkKK+C4quC4uOC4m+C4o+C4teC4lOC4tOC5jAor4Liq4Li44Lib4Lij4Li14Lii4LmMCivguKrguLjguJvguLLguJPguLUKK+C4quC4uOC4nuC4nuC4seC4lQor4Liq4Li44Lie4Lij4Lij4LiTCivguKrguLjguJ7guKPguKPguJMtCivguKrguLjguJ7guKPguKPguJPguJbguLHguJkKK+C4quC4uOC4nuC4o+C4o+C4k+C4muC4seC4jwor4Liq4Li44Lie4Lij4Lij4LiT4Lig4Liy4LiK4LiZ4LmMCivguKrguLjguJ7guKPguKPguJPguKPguLLguIoKK+C4quC4uOC4nuC4o+C4o+C4k+C4qOC4o+C4tQor4Liq4Li44Lie4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguKrguLjguKAtCivguKrguLjguKDguKMKK+C4quC4uOC4oOC4seC4hAor4Liq4Li44Lig4LiyCivguKrguLjguKDguLLguJ4KK+C4quC4uOC4oOC4suC4nuC4iuC4mQor4Liq4Li44Lig4Liy4Lie4Lia4Li44Lij4Li44LipCivguKrguLjguKDguLLguJ7guKrguJXguKPguLUKK+C4quC4uOC4oOC4suC4qeC4tOC4lQor4Liq4Li44LihCivguKrguLjguYjguKEKK+C4quC4uOC4oeC4guC4reC4mQor4Liq4Li44Lih4LiE4Lin4Lix4LiZCivguKrguLjguYjguKHguJXguLHguKfguK3guKLguYjguLLguIcKK+C4quC4uOC4oeC4l+C4uOC4oQor4Liq4Li44Lih4LiZCivguKrguLjguKHguJnguLAKK+C4quC4uOC4oeC4meC4seC4qgor4Liq4Li44Lih4LiZ4LiyCivguKrguLjguKHguKLguLjguIcKK+C4quC4uOC5iOC4oeC4quC4teC5iOC4quC4uOC5iOC4oeC4q+C5ieC4sgor4Liq4Li44LmJ4Lih4LmA4Liq4Li14Lii4LiHCivguKrguLjguKHguKvguLHguKcKK+C4quC4uOC4oeC4sAor4Liq4Li44Lih4Liy4Lil4Li1CivguKrguLjguYDguKHguJgKK+C4quC4uOC5gOC4oeC4o+C4uAor4Liq4Li44LijLQor4Liq4Li44Lij4LiE4LiVCivguKrguLjguKPguIfguITguYwKK+C4quC4uOC4o+C5gOC4iuC4qeC4kOC5jAor4Liq4Li44Lij4Lia4LiU4Li1CivguKrguLjguKPguJrguJYKK+C4quC4uOC4o+C4oOC4suC4ngor4Liq4Li44Lij4Lig4Li1CivguKrguLjguKPguYLguKXguIEKK+C4quC4uOC4o+C4quC4teC4q+C4meC4suC4lwor4Liq4Li44Lij4LmA4Liq4Li14Lii4LiHCivguKrguLjguKPguLHguIfguITguYwKK+C4quC4uOC4o+C4seC4leC4tAor4Liq4Li44Lij4Lix4Liq4Lin4LiU4Li1CivguKrguLjguKPguLIKK+C4quC4uOC4o+C4suC4h+C4hOC5jOC4iOC4s+C5gOC4o+C4teC4ouC4hwor4Liq4Li44Lij4Liy4LiH4LiE4LiZ4LiyCivguKrguLjguKPguLLguIfguITguJnguLLguIfguITguYwKK+C4quC4uOC4o+C4suC4muC4suC4mQor4Liq4Li44Lij4Liy4Lij4Lix4LiB4Lip4LmMCivguKrguLjguKPguLLguKXguLHguKIKK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jAor4Liq4Li44Lij4Li04LiZ4LiX4Lij4Liy4Lir4Li5CivguKrguLjguKPguLTguKItCivguKrguLjguKPguLTguKLguIHguLHguJnguJXguYwKK+C4quC4uOC4o+C4tOC4ouC4geC4suC4meC4leC5jAor4Liq4Li44Lij4Li04Lii4LiB4Liy4LijCivguKrguLjguKPguLTguKLguIHguLLguKUKK+C4quC4uOC4o+C4tOC4ouC4hOC4leC4tAor4Liq4Li44Lij4Li04Lii4LiE4Lij4Liy4LiqCivguKrguLjguKPguLTguKLguYDguITguKPguLLguLDguKvguYwKK+C4quC4uOC4o+C4tOC4ouC4hwor4Liq4Li44Lij4Li04Lii4LiZCivguKrguLjguKPguLTguKLguKHguJPguJHguKUKK+C4quC4uOC4o+C4tOC4ouC4sAor4Liq4Li44Lij4Li04Lii4Lix4LiZCivguKrguLjguKPguLTguKLguLIKK+C4quC4uOC4o+C4tOC4ouC4uOC4m+C4o+C4suC4hOC4sgor4Liq4Li44Lij4Li04LmA4Lii4LiZ4LiX4Lij4LmMCivguKrguLjguKPguLTguYDguKLguKgKK+C4quC4uOC4o+C4tOC5guC4ogor4Liq4Li44Lij4Li14Lii4LmMCivguKrguLjguKPguLjguYjguKLguKrguLjguKPguYjguLLguKIKK+C4quC4uOC5gOC4o+C4meC4l+C4o+C5jAor4Liq4Li44Lil4LiV4LmI4Liy4LiZCivguKrguLjguKcKK+C4quC4uOC4p+C4oOC4suC4ngor4Liq4Li44Lin4Lij4Lij4LiTCivguKrguLjguKfguKPguKPguJMtCivguKrguLjguKfguKPguKPguJPguKDguLnguKHguLQKK+C4quC4uOC4p+C4suC4mQor4Liq4Li44Lin4Li04LiZ4Lix4LiiCivguKrguLjguKfguLTguKHguKUKK+C4quC4uOC4qeC4tOC4owor4Liq4Li44Liq4Liy4LiZCivguKrguLjguKvguJnguLHguJUKK+C4quC4uOC4q+C4o+C5iOC4hwor4Liq4Li44Lir4Lij4LmI4Liy4LiiCivguKrguLjguKvguKTguJcKK+C4quC4uOC4q+C4seC4lwor4Liq4Li44LmA4Lir4Lij4LmI4LiyCivguKrguLkKK+C4quC4ueC5iAor4Liq4Li54LmJCivguKrguLnguIHguKnguKEKK+C4quC4ueC5iOC4guC4p+C4seC4jQor4Liq4Li54LmI4LiC4LitCivguKrguLnguIcKK+C4quC4ueC4h+C5gOC4l+C5iOC4suC4meC4geC5gOC4guC4suC5gOC4q+C4tOC4mQor4Liq4Li54LiH4LmA4LiX4Li14Lii4Lih4LmA4Lih4LiGCivguKrguLnguIfguKrguYjguIcKK+C4quC4ueC4h+C4quC4uOC4lOC4quC4reC4ogor4Liq4Li54LiH4Lit4Liy4Lii4Li4CivguKrguLnguIjguIHguLAKK+C4quC4ueC4iOC4meC4sAor4Liq4Li54LiI4Li0CivguKrguLnguIjguLTguJrguLHguJXguKMKK+C4quC4ueC5gOC4iOC5ieC4sgor4Liq4Li54LiNCivguKrguLnguJQKK+C4quC4ueC4lQor4Liq4Li54LiV4LijCivguKrguLnguJXguKPguYDguITguKHguLUKK+C4quC4ueC4leC4tC0KK+C4quC4ueC4leC4tOC4geC4o+C4o+C4oQor4Liq4Li54LiV4Li04Lia4Lix4LiV4LijCivguKrguLnguJXguLTguYHguJ7guJfguKLguYwKK+C4quC4ueC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4Liq4Li54LiXCivguKrguLnguJctCivguKrguLnguJfguIHguKPguKPguKEKK+C4quC4ueC4l+C4qOC4suC4quC4leC4o+C5jAor4Liq4Li54LiZCivguKrguLnguJnguLgKK+C4quC4ueC4mgor4Liq4Li54Lia4LmA4Lil4Li34Lit4LiUCivguKrguLnguJrguYDguKXguLfguK3guJTguKrguLnguJrguYDguJnguLfguYnguK0KK+C4quC4ueC4my0KK+C4quC4ueC4m+C4geC4suC4owor4Liq4Li54Lib4LiwCivguKrguLnguYnguKLguLTguJrguJXguLIKK+C4quC4ueC5ieC5gOC4ouC5h+C4muC4leC4sgor4Liq4Li54LijCivguKrguLnguYnguKPguJrguJXguJrguKHguLfguK0KK+C4quC4ueC4o+C4oi0KK+C4quC4ueC4o+C4ouC5jAor4Liq4Li54Lij4Lii4LiB4Liy4LiZ4LiV4LmMCivguKrguLnguKPguKLguITguKPguLLguKoKK+C4quC4ueC4o+C4tAor4Liq4Li54LmI4Lij4Li54LmJCivguKrguLnguYjguKrguKEKK+C4quC4ueC4quC4tQor4Liq4Li54LmJ4Lir4LiZ4LmJ4LiyCivguKrguLnguYjguKvguLIKK+C4quC4ueC5ieC5gOC4q+C4oeC4t+C4reC4meC4q+C4oeC4suC4iOC4meC4leC4o+C4reC4gQor4LmA4LiqCivguYDguKrguIEKK+C5gOC4quC4geC4gi0KK+C5gOC4quC4geC4guC4muC4uOC4hOC4hOC4pQor4LmA4Liq4LiB4LiC4LiwCivguYDguKrguIHguKrguKPguKMKK+C5gOC4quC4gi0KK+C5gOC4quC4guC4muC4uOC4hOC4hOC4pQor4LmA4Liq4LiC4LiwCivguYDguKrguITguKfguLLguKEKK+C5gOC4quC5h+C4hwor4LmA4Liq4LmJ4LiHCivguYDguKrguYfguIfguYDguITguKPguYfguIcKK+C5gOC4quC4h+C4teC5iOC4ouC4oQor4LmA4Liq4LiP4LiQ4Li1CivguYDguKrguJPguLUKK+C5gOC4quC4lAor4LmA4Liq4LiU4LmH4LiICivguYDguKrguJTguYfguIjguYPguJnguIHguKPguKEKK+C5gOC4quC4lOC5h+C4iOC4nuC4o+C4sOC4o+C4suC4iuC4lOC4s+C5gOC4meC4tOC4mQor4LmA4Liq4LiVLQor4LmA4Liq4LiV4Li4CivguYDguKrguJbguLXguKLguKMKK+C5gOC4quC4luC4teC4ouC4oy0KK+C5gOC4quC4luC4teC4ouC4o+C4oOC4suC4ngor4LmA4Liq4LiXCivguYDguKrguYLguJcKK+C5gOC4quC4mQor4LmA4Liq4LmJ4LiZCivguYDguKrguYnguJnguYHguIHguIfguKPguYnguK3guJkKK+C5gOC4quC5ieC4meC4guC4meC4suC4mQor4LmA4Liq4LmJ4LiZ4LmB4LiC4LmH4LiHCivguYDguKrguJnguIcKK+C5gOC4quC4meC5iOC4hwor4LmA4Liq4LmJ4LiZ4LiU4LmJ4Liy4LiiCivguYDguKrguYnguJnguJXguLLguKIKK+C5gOC4quC5ieC4meC4leC4t+C5ieC4mQor4LmA4Liq4LmJ4LiZ4LiX4Liy4LiHCivguYDguKrguYnguJnguJrguLHguIfguITguLHguJoKK+C5gOC4quC5ieC4meC4nOC4oeC4muC4seC4h+C4oOC4ueC5gOC4guC4sgor4LmA4Liq4LmJ4LiZ4Lic4LmI4Liy4LiZ4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguYDguKrguYnguJnguJzguYjguLLguKjguLnguJnguKLguYzguIHguKXguLLguIcKK+C5gOC4quC5ieC4meC5geC4nOC4peC4hwor4LmA4Liq4LmJ4LiZ4Lii4Liy4LmB4LiU4LiH4Lic4LmI4Liy4LmB4Lib4LiUCivguYDguKrguYnguJnguYPguKIKK+C5gOC4quC5ieC4meC5g+C4ouC5geC4geC5ieC4pwor4LmA4Liq4LmJ4LiZ4Lij4Lit4Lia4Lin4LiHCivguYDguKrguYnguJnguKPguLHguKjguKHguLUKK+C5gOC4quC5ieC4meC5geC4owor4LmA4Liq4LmJ4LiZ4Lil4Liy4Lii4Lih4Li34LitCivguYDguKrguYnguJnguKXguLbguIEKK+C5gOC4quC5ieC4meC5gOC4peC4t+C4reC4lAor4LmA4Liq4LmJ4LiZ4Lin4Lix4LiZ4LiX4Li14LmICivguYDguKrguYnguJnguKjguLnguJnguKLguYzguKrguLnguJXguKMKK+C5gOC4quC5ieC4meC4quC4oeC4oeC4suC4leC4owor4LmA4Liq4LmJ4LiZ4Liq4Lix4Lih4Lic4Lix4LiqCivguYDguKrguYnguJnguKrguLLguKIKK+C5gOC4quC4meC4qy0KK+C5gOC4quC4meC5iOC4q+C5jAor4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LiC4Liy4LinCivguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguYHguJTguIcKK+C5gOC4quC4meC5iOC4q+C5jOC4m+C4peC4suC4ouC4iOC4p+C4seC4gQor4LmA4Liq4LmJ4LiZ4Lir4Lih4Li14LmICivguYDguKrguJnguKvguLIKK+C5gOC4quC4meC5iOC4q+C4sgor4LmA4Liq4LiZ4LitCivguYDguKrguYnguJnguK7guYjguK0KK+C5gOC4quC4meC4sAor4LmA4Liq4LiZ4LiyCivguYDguKrguJnguYjguLIKK+C5gOC4quC4meC4suC4geC4uOC4jgor4LmA4Liq4LiZ4Liy4LiH4LiE4LmMCivguYDguKrguJnguLLguIfguITguJnguLTguIHguKMKK+C5gOC4quC4meC4suC4mOC4tOC4geC4suC4owor4LmA4Liq4LiZ4Liy4LiY4Li04Lib4Lix4LiVCivguYDguKrguJnguLLguJnguLUKK+C5gOC4quC4meC4suC4muC4lOC4tQor4LmA4Liq4LiZ4Liy4Lie4Lii4Li44Lir4LmMCivguYDguKrguJnguLLguJ7guKLguLnguKvguYwKK+C5gOC4quC4meC4suC4quC4meC4sAor4LmA4Liq4LiZ4Liy4LiwCivguYDguKrguJnguLUKK+C5gOC4quC4meC4teC4ouC5jAor4LmA4Liq4LiZ4Li14Lii4LiUCivguYDguKrguJnguLXguKLguLAKK+C5gOC4quC4muC4ogor4LmA4Liq4Lia4Li14Lii4LiHCivguYDguKrguJrguLXguKLguIfguIHguKPguLHguIcKK+C5gOC4quC4ngor4LmA4Liq4Lie4Lii4LmM4LiV4Li04LiUCivguYDguKrguYDguJ7guKUKK+C5gOC4quC4oOC4sgor4LmA4Liq4Lih4LmH4LiUCivguYDguKrguKHguKvguLAKK+C5gOC4quC4oeC4rQor4LmA4Liq4Lih4Lit4LmD4LiICivguYDguKrguKHguK3guJXguYnguJnguYDguKrguKHguK3guJvguKXguLLguKIKK+C5gOC4quC4oeC4reC4leC4seC4pwor4LmA4Liq4Lih4Lit4LiZ4Lit4LiBCivguYDguKrguKHguK3guJrguYjguLLguYDguKrguKHguK3guYTguKvguKXguYgKK+C5gOC4quC4oeC4reC4oOC4suC4hAor4LmA4Liq4Lih4Lit4Lir4LiZ4LmJ4LiyCivguYDguKrguKHguLIKK+C5gOC4quC4oeC4teC4ouC4mQor4LmA4Liq4Lih4Li34Lit4LiZCivguYDguKrguKIKK+C5gOC4quC4o+C5h+C4iAor4LmA4Liq4Lij4Li04LiUCivguYDguKrguKPguLTguKEKK+C5gOC4quC4o+C4tOC4oeC4quC4p+C4ogor4LmA4Liq4Lij4Li1CivguYDguKrguKPguLXguYTguJfguKIKK+C5gOC4quC4o+C4teC4mOC4o+C4o+C4oQor4LmA4Liq4Lij4Li14LiZ4Li04Lii4LihCivguYDguKrguKPguLXguKDguLLguJ4KK+C5gOC4quC4pS0KK+C5gOC4quC4peC4lAor4LmA4Liq4Lil4LiU4Lie4Lix4LiH4Lie4Lit4LiZCivguYDguKrguKXguJTguKvguLLguIfguKfguLHguKcKK+C5gOC4quC4peC4muC4o+C4o+C4nuC4lQor4LmA4Liq4Lil4LiyCivguYDguKrguKXguLXguYjguKLguIcKK+C5gOC4quC4peC4t+C4reC4geC4quC4peC4mQor4LmA4Liq4LmC4LilCivguYDguKrguKfguIEKK+C5gOC4quC4p+C4geC4suC4oeC4suC4leC4ouC5jAor4LmA4Liq4Lin4LiZ4LiwCivguYDguKrguKfguJnguLIKK+C5gOC4quC4p+C4ogor4LmA4Liq4Lin4Lii4Lie4Lij4Liw4LiK4Liy4LiV4Li0CivguYDguKrguKfguLXguKLguJkKK+C5gOC4quC4quC4o+C4p+C4hwor4LmA4Liq4Liq4Lij4Lin4LilCivguYDguKrguYHguKrguKPguYnguIcKK+C5gOC4quC4sgor4LmA4Liq4LmJ4LiyCivguYDguKrguLLguIHguKPguLDguYLguJTguIcKK+C5gOC4quC4suC5gOC4guC5h+C4oQor4LmA4Liq4Liy4LiK4Li14LmJCivguYDguKrguLLguJTguLHguYnguIcKK+C5gOC4quC4suC4leC4sOC4peC4uOC4hwor4LmA4Liq4Liy4LiZ4Liy4LiH4LmA4Lij4Li14Lii4LiHCivguYDguKrguLLguKPguYwKK+C5gOC4quC4suC4o+C4oOC4ouC5jAor4LmA4Liq4Liy4Lij4Li1CivguYDguKrguLLguKctCivguYDguKrguLLguKfguITguJnguJjguYwKK+C5gOC4quC4suC4p+C4hOC4seC4meC4mOC5jAor4LmA4Liq4Liy4Lin4LiT4Li04LiVCivguYDguKrguLLguKfguJjguLLguKMKK+C5gOC4quC4suC4p+C4meC4sAor4LmA4Liq4Liy4Lin4LiZ4LiyCivguYDguKrguLLguKfguJnguLLguIHguLLguKMKK+C5gOC4quC4suC4p+C4meC4teC4ouC5jAor4LmA4Liq4Liy4Lin4Lig4LiyCivguYDguKrguLLguKfguKDguLLguITguKLguYwKK+C5gOC4quC4suC4p+C4oOC4suC4ngor4LmA4Liq4Liy4Lin4Lij4Lig4Lii4LmMCivguYDguKrguLLguKfguKPguKoKK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jAor4LmA4Liq4Liy4Lir4Lih4LitCivguYDguKrguLLguKvguKTguJcKK+C5gOC4quC4suC4q+C4suC4mQor4LmA4Liq4Liy4LmA4Lit4LiBCivguYDguKrguLLguLAKK+C5gOC4quC4suC4sOC4lOC5ieC4suC4ogor4LmA4Liq4Liy4Liw4Lib4LmI4Liy4LiZCivguYDguKrguLLguLDguYHguKrguLAKK+C5gOC4quC4tOC4o+C5jOC4iAor4LmA4Liq4Li04Lij4LmM4LifCivguYDguKrguLXguKIKK+C5gOC4quC4teC4ouC4geC4muC4suC4pQor4LmA4Liq4Li14Lii4LiB4Lij4Liw4Lia4Lin4LiZCivguYDguKrguLXguKLguIHguKUKK+C5gOC4quC4teC4ouC4geC4suC4owor4LmA4Liq4Li14Lii4LiB4Liz4LiL4LmJ4Liz4LiB4Lit4LiaCivguYDguKrguLXguKLguIHguLPguYTguJTguYnguIHguK3guJoKK+C5gOC4quC4teC4ouC4geC4s+C4peC4seC4h+C5g+C4iAor4LmA4Liq4Li14Lii4LiB4Li04Lij4Li04Lii4LiyCivguYDguKrguLXguKLguILguKfguIcKK+C5gOC4quC4teC4ouC4guC4p+C4seC4jQor4LmA4Liq4Li14Lii4LiE4LiZCivguYDguKrguLXguKLguITguLPguJ7guLnguJQKK+C5gOC4quC4teC4ouC4hwor4LmA4Liq4Li14LmI4Lii4LiHCivguYDguKrguLXguKLguIfguYDguILguLXguKLguKcKK+C5gOC4quC4teC4ouC4h+C5geC4guC5h+C4hwor4LmA4Liq4Li14LmI4Lii4LiH4LiK4Li14Lin4Li04LiVCivguYDguKrguLXguKLguIfguYHguJXguIEKK+C5gOC4quC4teC4ouC4h+C4l+C4reC4hwor4LmA4Liq4Li14LmI4Lii4LiH4LiX4Liy4LiiCivguYDguKrguLXguYjguKLguIfguJrguLjguI3guYDguKrguLXguYjguKLguIfguIHguKPguKPguKEKK+C5gOC4quC4teC4ouC4h+C4nuC4ouC4seC4jeC4iuC4meC4sAor4LmA4Liq4Li14LmI4Lii4LiH4Lig4Lix4LiiCivguYDguKrguLXguKLguIfguKrguKPguLAKK+C5gOC4quC4teC4ouC4h+C4q+C4peC4hwor4LmA4Liq4Li14Lii4LiH4Lit4LmI4Lit4LiZCivguYDguKrguLXguKLguIjguKPguLTguJUKK+C5gOC4quC4teC4ouC5g+C4iAor4LmA4Liq4Li14Lii4LmC4LiJ4LihCivguYDguKrguLXguKLguIrguLLguJXguLTguYDguIHguLTguJQKK+C5gOC4quC4teC4ouC4iuC4t+C5iOC4rQor4LmA4Liq4Li14Lii4LmA4LiK4Li04LiHCivguYDguKrguLXguKLguJQKK+C5gOC4quC4teC4ouC4lOC5g+C4mgor4LmA4Liq4Li14Lii4LiU4Liq4Li1CivguYDguKrguLXguKLguJTguLLguKIKK+C5gOC4quC4teC4ouC5gOC4lOC5h+C4gQor4LmA4Liq4Li14Lii4LiV4Lix4LinCivguYDguKrguLXguKLguYHguJXguYnguKEKK+C5gOC4quC4teC4ouC5gOC4luC4reC4sAor4LmA4Liq4Li14Lii4LmA4LiW4Li04LiUCivguYDguKrguLXguKLguJfguYjguLIKK+C5gOC4quC4teC4ouC4l+C4tQor4LmA4Liq4Li14LmJ4Lii4LiZCivguYDguKrguLXguYnguKLguJnguKjguLbguIEKK+C5gOC4quC4teC5ieC4ouC4meC4q+C4meC4suC4oQor4LmA4Liq4Li14Lii4LiZ4LmJ4Liz4LmD4LiICivguYDguKrguLXguKLguJnguYnguLPguJXguLIKK+C5gOC4quC4teC4ouC5gOC4meC4t+C5ieC4reC5gOC4quC4teC4ouC4leC4seC4pwor4LmA4Liq4Li14Lii4LiaCivguYDguKrguLXguKLguJrguJkKK+C5gOC4quC4teC4ouC4muC4q+C4meC4uQor4LmA4Liq4Li14Lii4Lib4Liy4LiBCivguYDguKrguLXguKLguYDguJvguKPguLXguKLguJoKK+C5gOC4quC4teC4ouC4nOC4tQor4LmA4Liq4Li14Lii4Lic4Li54LmJ4LmD4Lir4LiN4LmICivguYDguKrguLXguKLguKDguLnguKHguLQKK+C5gOC4quC4teC4ouC4oQor4LmA4Liq4Li14LmI4Lii4LihCivguYDguKrguLXguYnguKLguKEKK+C5gOC4quC4teC5ieC4ouC4oeC5gOC4guC4suC4hOC4p+C4suC4ouC5g+C4q+C5ieC4iuC4meC4geC4seC4mQor4LmA4Liq4Li14LmJ4Lii4Lih4Liq4Lit4LiZCivguYDguKrguLXguYjguKLguKHguKrguLLguKMKK+C5gOC4quC4teC4ouC4o+C4reC4ogor4LmA4Liq4Li14Lii4Lij4Lix4LiH4Lin4Lix4LiUCivguYDguKrguLXguKLguKPguLLguKjguLUKK+C5gOC4quC4teC4ouC4o+C4ueC5iQor4LmA4Liq4Li14Lii4Lij4Li54LibCivguYDguKrguLXguKLguKPguLnguJvguITguJTguLUKK+C5gOC4quC4teC4ouC5geC4o+C4hwor4LmA4Liq4Li14Lii4LinCivguYDguKrguLXguYjguKLguKcKK+C5gOC4quC4teC5ieC4ouC4pwor4LmA4Liq4Li14Lii4Lin4LiL4LmI4Liy4LiZCivguYDguKrguLXguKLguKfguYTguKrguYkKK+C5gOC4quC4teC4ouC5gOC4qOC4p+C4leC4ieC4seC4leC4owor4LmA4Liq4Li14Lii4Liq4Lil4LiwCivguYDguKrguLXguKLguKrguLLguKcKK+C5gOC4quC4teC4ouC5gOC4quC5ieC4mQor4LmA4Liq4Li14Lii4Lir4LiZ4LmI4Lit4LiiCivguYDguKrguLXguKLguKvguJnguYnguLIKK+C5gOC4quC4teC4ouC4q+C4peC4seC4gQor4LmA4Liq4Li14Lii4Lir4Lil4Liy4LiiCivguYDguKrguLXguKLguKvguLHguKcKK+C5gOC4quC4teC4ouC4q+C4suC4ogor4LmA4Liq4Li14Lii4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKrguLfguK0KK+C5gOC4quC4t+C5iOC4rQor4LmA4Liq4Li34LmJ4LitCivguYDguKrguLfguK3guIEKK+C5gOC4quC4t+C4reC4geC4geC4sOC5guC4q+C4peC4gQor4LmA4Liq4Li34Lit4LiB4LiE4Lil4Liy4LiZCivguYDguKrguLfguK3guIHguKPguLDguJTguLLguKkKK+C5gOC4quC4t+C4reC4geC4o+C4sOC4leC5iOC4suC4ogor4LmA4Liq4Li34LmJ4Lit4LiB4Lil4LmJ4Liy4LihCivguYDguKrguLfguK3guIHguKrguJkKK+C5gOC4quC4t+C4reC4geC5hOC4qgor4LmA4Liq4Li34LmJ4Lit4LiB4Lix4LmK4LiBCivguYDguKrguLfguK3guIHguLTguJnguKfguLHguKcKK+C5gOC4quC4t+C4reC5gOC4geC5iOC4sgor4LmA4Liq4Li34Lit4LiC4LmJ4Liy4Lih4Lir4LmJ4Lin4LiiCivguYDguKrguLfguK3guIjguJnguJfguYjguLIg4LiC4LmJ4Liy4LiI4LiZ4LiX4Liy4LiHCivguYDguKrguLfguK3guIvguYjguK3guJnguYDguKXguYfguJoKK+C5gOC4quC4t+C4reC5gOC4kuC5iOC4suC4iOC4s+C4qOC4teC4pQor4LmA4Liq4Li34Lit4LiU4Liy4LinCivguYDguKrguLfguK3guJTguLMKK+C5gOC4quC4t+C4reC4leC4geC4luC4seC4hwor4LmA4Liq4Li34Lit4LiV4Lia4LiB4LmJ4LiZCivguYDguKrguLfguK3guJfguKXguLLguKLguKvguYnguLLguIcg4LiK4LmJ4Liy4LiH4LiX4Lil4Liy4Lii4LmC4Lij4LiHCivguYDguKrguLfguK3guJfguLDguYDguKUKK+C5gOC4quC4t+C4reC4meC4reC4meC4geC4tOC4mQor4LmA4Liq4Li34Lit4LiZ4Lix4LmI4LiH4Lij4LmI4LihCivguYDguKrguLfguYnguK3guJnguYnguLMKK+C5gOC4quC4t+C5iOC4reC4meC5ieC4s+C4oeC4seC4mQor4LmA4Liq4Li34Lit4LmD4LiZ4Lij4LmI4Liy4LiH4Liq4Lih4Lix4LiZCivguYDguKrguLfguK3guJrguK3guIcKK+C5gOC4quC4t+C4reC4m+C4peC4sgor4LmA4Liq4Li34Lit4Lib4LmI4LiyCivguYDguKrguLfguK3guJvguYjguLLguYHguKHguKfguYDguIvguLIKK+C5gOC4quC4t+C4reC4m+C5iOC4suC5geC4oeC4p+C4oeC4reC4hwor4LmA4Liq4Li34Lit4LmE4LifCivguYDguKrguLfguYjguK3guKEKK+C5gOC4quC4t+C5iOC4reC4oeC4l+C4o+C4suC4oQor4LmA4Liq4Li34LmI4Lit4Lih4LmC4LiX4Lij4LihCivguYDguKrguLfguYjguK3guKHguKrguLTguJfguJjguLTguYwKK+C5gOC4quC4t+C5iOC4reC4oeC5gOC4quC4teC4ogor4LmA4Liq4Li34Lit4LmB4Lih4Lil4LiH4Lin4Lix4LiZCivguYDguKrguLfguK3guKPguLnguYkKK+C5gOC4quC4t+C5iOC4reC4peC4p+C4lAor4LmA4Liq4Li34Lit4Lil4Liy4LiB4Lir4Liy4LiHCivguYDguKrguLfguYjguK3guKXguLPguYHguJ7guJkKK+C5gOC4quC4t+C4reC4quC4oeC4tOC4hwor4LmA4Liq4Li34Lit4Liq4Li04LmJ4LiZ4LiV4Lin4Lix4LiBCivguYDguKrguLfguK3guKrguLjguKHguLLguJXguKPguLIKK+C5gOC4quC4t+C5ieC4reC5geC4quC4hwor4LmA4Liq4Li34Lit4Lir4Lih4Lit4LiaCivguYDguKrguLfguK3guKvguLTguKcKK+C5geC4qgor4LmB4Liq4LmICivguYHguKrguYkKK+C5geC4quC4gQor4LmB4Liq4LiB4LmGCivguYHguKrguIHguKvguJnguYnguLIKK+C5geC4quC4hwor4LmB4Liq4LiH4LmA4LiH4Li04LiZ4LmB4Liq4LiH4LiX4Lit4LiHCivguYHguKrguIfguIjguLHguJnguJfguKPguYwKK+C5geC4quC4h+C4quC4p+C5iOC4suC4hwor4LmB4Liq4LiH4Lit4Liy4LiX4Li04LiV4Lii4LmMCivguYHguKrguJQKK+C5geC4quC4lOC4hwor4LmB4Liq4LiU4LiH4Lit4Lit4LiBCivguYHguKrguJXguKHguJvguYwKK+C5geC4quC5gOC4luC4sgor4LmB4Liq4LiZCivguYHguKrguJnguIHguKUKK+C5geC4quC4meC4hwor4LmB4Liq4LiZ4LiH4Lit4LiZCivguYHguKrguJnguKItCivguYHguKrguJnguKLguYwKK+C5geC4quC4meC4ouC4suC4geC4owor4LmB4Liq4LiZ4Lii4Liy4LiZ4Li44Lig4Liy4LieCivguYHguKrguJnguKPguLnguYkKK+C5geC4quC4meC5gOC4quC4meC4suC4sAor4LmB4Liq4LiZ4LiyCivguYHguKrguJoKK+C5geC4quC4muC4gQor4LmB4Liq4LihCivguYHguKrguKHguKrguLLguKMKK+C5geC4quC5ieC4oeC5ieC4sgor4LmB4Liq4LmJ4Lih4LmJ4Liy4LiX4Liw4Lil4Liy4LiiCivguYHguKrguKLguIEKK+C5geC4quC4ouC4hwor4LmB4Liq4Lii4LiH4LiC4LiZCivguYHguKrguKLguLAKK+C5geC4quC4o+C4gQor4LmB4Liq4Lij4LmJ4LiHCivguYHguKrguKPguYnguIfguKfguYjguLIKK+C5geC4quC4peC4hwor4LmB4Liq4Lil4LiH4LmD4LiICivguYHguKrguKXguIfguYDguJrguLfguYjguK0KK+C5geC4quC4p+C4hwor4LmB4Liq4Lit4LiBCivguYHguKrguLAKK+C5guC4quC4gQor4LmC4Liq4LiB4LmC4LiU4LiBCivguYLguKrguIHguLHguJnguJXguYwKK+C5guC4quC4geC4suC4lOC4suC4meC4sgor4LmC4Liq4LmC4LiE4Lij4LiBCivguYLguKrguJMKK+C5guC4quC4k+C4keC5jAor4LmC4Liq4LiT4Li0CivguYLguKrguJPguLUKK+C5guC4quC4lAor4LmC4Liq4LiU4LiBCivguYLguKrguJTguKEKK+C5guC4quC4lOC4sgor4LmC4Liq4LiU4Liy4Lia4Lix4LiZCivguYLguKrguJTguLLguJvguLHguJXguJXguLTguJzguKUKK+C5guC4quC4lOC4suC4m+C4seC4leC4leC4tOC4oeC4o+C4o+C4hAor4LmC4Liq4LiVCivguYLguKrguJUtCivguYLguKrguJXguJbguLQKK+C5guC4quC4leC4l+C4seC4qOC4meC4p+C4seC4quC4lOC4uAor4LmC4Liq4LiV4LiX4Lix4Lio4LiZ4Lit4Li44Lib4LiB4Lij4LiT4LmMCivguYLguKrguJfguIEKK+C5guC4quC4l+C4owor4LmC4Liq4LiY4LiBCivguYLguKrguJjguJnguLAKK+C5guC4quC4mQor4LmC4Liq4LiZ4LiB4Li04LiZ4LiU4Lit4LiBCivguYLguKrguJnguITguLLguIfguITguIEKK+C5guC4quC4meC4q+C4suC4h+C5hOC4geC5iAor4LmC4Liq4LiZ4Lir4Li04LiZCivguYLguKrguKAtCivguYLguKrguKDguJMKK+C5guC4quC4oOC4sgor4LmC4Liq4Lig4Li04LiT4Li1CivguYLguKrguKDguLUKK+C5guC4quC5gOC4oOC4k+C4tQor4LmC4Liq4LihCivguYLguKrguKHguJnguLHguKoKK+C5guC4quC4oeC4oQor4LmC4Liq4Lih4Lii4LmMCivguYLguKrguKHguKrguYjguK3guIfguYHguKrguIcKK+C5guC4quC4o+C5iOC4hwor4LmC4Liq4Lij4LiICivguYLguKrguKPguIjguKrguKPguIcKK+C5guC4quC4p+C4o+C4o+C4kwor4LmC4Liq4Lir4Li44LmJ4LiiCivguYLguKrguKzguKoKK+C5g+C4qgor4LmD4Liq4LmICivguYPguKrguYjguITguKfguLLguKEKK+C5g+C4quC5iOC4hOC4sOC5geC4meC4meC5hOC4oeC5iOC4l+C4seC4mQor4LmD4Liq4LmI4LmE4LiE4Lil4LmJCivguYPguKrguYjguYPguIgKK+C5g+C4quC5iOC4leC4sOC4geC4o+C5ieC4suC4peC5ieC4suC4h+C4meC5ieC4swor4LmD4Liq4LmI4LiW4LmJ4Lit4Lii4Lij4LmJ4Lit4Lii4LiE4Lin4Liy4LihCivguYPguKrguYjguYTguJ8KK+C5g+C4quC5iOC4ouC4sgor4LmD4Liq4LmI4Lij4LmJ4Liy4LiiCivguYPguKrguYjguKrguLLguYHguKvguKPguIHguYHguILguKfguJnguYTguKfguYkKK+C5g+C4quC5iOC4quC4teC4quC4seC4mQor4LmD4Liq4LmI4LmE4Liq4LmJCivguYPguKrguYjguKvguJnguYnguLLguIHguLLguIEKK+C5g+C4quC5iOC4q+C4meC5ieC4suC4ouC4seC4geC4qeC5jAor4LmE4LiqCivguYTguKrguYkKK+C5hOC4quC5ieC4geC4o+C4reC4gQor4LmE4Liq4LmJ4LmE4LiB4LmICivguYTguKrguYnguYHguILguKfguJkKK+C5hOC4quC5ieC5gOC4lOC4t+C4reC4mQor4LmE4Liq4LmJ4LiV4Lix4LiZCivguYTguKrguYnguJXguLTguYjguIcKK+C5hOC4quC5ieC5gOC4m+C5h+C4meC4meC5ieC4s+C5gOC4q+C4peC4t+C4reC4hwor4LmE4Liq4LmJ4LmA4Lib4LmH4LiZ4Lir4LiZ4Lit4LiZCivguYTguKrguKIKK+C5hOC4quC4oi0KK+C5hOC4quC4ouC5gOC4p+C4lwor4LmE4Liq4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguYTguKrguKLguLIKK+C5hOC4quC4ouC4suC4quC4meC5jAor4LmE4Liq4Lij4LmJCivguYTguKrguYnguKXguLDguKHguLLguJkKK+C5hOC4quC5ieC5gOC4peC4t+C5iOC4reC4mQor4LmE4Liq4LinCivguYTguKrguYnguKjguLbguIEKK+C5hOC4quC4q+C4seC4pwor4LmE4Liq4LmJ4LmB4Lir4LmJ4LiHCivguYTguKrguYnguK3guLHguYjguKcKK+C4qwor4Lir4LiBCivguKvguIHguITguKfguYjguLMKK+C4q+C4geC4hOC4sOC5gOC4oeC4mQor4Lir4LiB4Lia4LiXCivguKvguIHguKXguYnguKEKK+C4q+C4geC5guC4peC5iAor4Lir4LiB4Lir4Lix4LiZCivguKvguIcKK+C4q+C4h+C4geC5hgor4Lir4LiH4LiqLQor4Lir4LiH4Liq4LmMCivguKvguIfguKrguITguJXguLQKK+C4q+C4h+C4quC5jOC4l+C4reC4hwor4Lir4LiH4Liq4Lia4Liy4LiXCivguKvguIfguKrguKPguJYKK+C4q+C4h+C4quC5jOC4o+C5iOC4reC4meC4oeC4seC4h+C4geC4o+C4o+C4swor4Lir4LiH4Liq4Lij4Liy4LiKCivguKvguIfguKrguYzguKXguLXguKXguLIKK+C4q+C4h+C4quC5jOC4q+C4ouC4gQor4Lir4LiH4LitCivguKvguIfguK3guIEKK+C4q+C4h+C5iOC4reC4h+C5hgor4Lir4LiH4Lit4LiH4LmB4Lir4LiH4LiHCivguKvguIfguK3guJQKK+C4q+C4h+C4reC4lOC5hgor4Lir4LiH4Lit4LiZCivguKvguIfguK3guJnguYTguIHguYgKK+C4q+C4h+C4reC4meC5hOC4geC5iOC4m+C5iOC4sgor4Lir4LiH4LmI4Lit4LihCivguKvguIfguK3guKIKK+C4q+C4h+C5iOC4reC4ogor4Lir4LiH4Lit4Lii4LiB4LmL4Lit4LiiCivguKvguIfguK3guKLguYDguKvguIfguLIKK+C4q+C4h+C4seC4geC5hgor4Lir4LiH4Lix4Lia4LmGCivguKvguIfguYjguLLguIcKK+C4q+C4h+C4suC4ogor4Lir4LiH4Liy4Lii4LiX4LmJ4Lit4LiHCivguKvguIfguLLguKLguKvguKXguLHguIcKK+C4q+C4h+C5iOC4suC4pwor4Lir4LiH4LizCivguKvguIfguLPguYDguKvguIfguK3guLAKK+C4q+C4h+C4tOC4gQor4Lir4LiH4Li04LiH4LmGCivguKvguIfguLTguKEKK+C4q+C4h+C4tOC4oeC5hgor4Lir4LiH4Li24LiB4LmGCivguKvguIfguLjguIfguKvguIfguLTguIcKK+C4q+C4h+C4uOC4lOC4q+C4h+C4tOC4lAor4Lir4LiH4Li44LiaCivguKvguIfguLjguJrguKvguIfguLHguJoKK+C4q+C4h+C4uOC5iOC4ogor4Lir4LiN4LmJ4LiyCivguKvguI3guYnguLLguIHguKPguLDguIjguLLguKEKK+C4q+C4jeC5ieC4suC5gOC4geC4peC5h+C4lOC4q+C4reC4ogor4Lir4LiN4LmJ4Liy4LiC4Lix4LiUCivguKvguI3guYnguLLguILguLHguJTguYPguJrguKLguLLguKcKK+C4q+C4jeC5ieC4suC4guC4seC4lOC4q+C4peC4p+C4hwor4Lir4LiN4LmJ4Liy4LiH4Lin4LiH4LiK4LmJ4Liy4LiHCivguKvguI3guYnguLLguIjguLLguKEKK+C4q+C4jeC5ieC4suC5g+C4leC5ieC5g+C4mgor4Lir4LiN4LmJ4Liy4LiW4Lit4LiU4Lib4Lil4LmJ4Lit4LiHCivguKvguI3guYnguLLguJnguYnguLPguJTguLHguJrguYTguJ8KK+C4q+C4jeC5ieC4suC4muC4seC4pwor4Lir4LiN4LmJ4Liy4Lib4Liy4LiB4LiE4Lit4LiBCivguKvguI3guYnguLLguJvguLXguJnguJXguK0KK+C4q+C4jeC5ieC4suC4neC4o+C4seC5iOC4mQor4Lir4LiN4LmJ4Liy4Lie4Lix4LiZ4LiH4Li5CivguKvguI3guYnguLLguYDguJ7guYfguIEKK+C4q+C4jeC5ieC4suC5geC4nuC4o+C4gQor4Lir4LiN4LmJ4Liy4Lii4Lit4LiH4LmE4LifCivguKvguI3guYnguLLguKLguLLguKLguYDguKDguLIKK+C4q+C4jeC5ieC4suC4o+C4geC4iuC5ieC4suC4hwor4Lir4LiN4LmJ4Liy4Lij4Liy4LiB4LiC4Liy4LinCivguKvguI3guYnguLLguKXguLTguYDguKDguLIKK+C4q+C4jeC5ieC4suC4q+C4meC4p+C4lOC5geC4oeC4pwor4Lir4LiN4LmJ4Liy4LmB4Lir4LmJ4Lin4Lir4Lih4Li5CivguKvguI3guLTguIcKK+C4q+C4jeC4tOC4mgor4Lir4LiUCivguKvguJTguKvguLLguKIKK+C4q+C4lOC4q+C4ueC5iAor4Lir4LiV4LiwCivguKvguJfguKItCivguKvguJfguLHguKIKK+C4q+C4mQor4Lir4LiZ4LiX4Liy4LiHCivguKvguJnguJnguLAKK+C4q+C4meC4p+C4gQor4Lir4LiZ4Lin4LiB4Lir4Li5CivguKvguJnguYjguKfguIcKK+C4q+C4meC5iOC4p+C4h+C5gOC4q+C4meC4teC5iOC4ouC4pwor4Lir4LiZ4Lin4LiUCivguKvguJnguKfguJTguJnguLLguITguKPguLLguIoKK+C4q+C4meC4p+C4lOC4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lir4LiZ4Lin4LiU4LmB4Lih4LinCivguKvguJnguYjguKfguKIKK+C4q+C4meC5iOC4p+C4ouC4geC5ieC4suC4mQor4Lir4LiZ4LmI4Lin4Lii4LiB4Li04LiVCivguKvguJnguYjguKfguKLguJTguLLguKPguLLguKjguLLguKrguJXguKPguYwKK+C4q+C4meC4rQor4Lir4LiZ4LmI4LitCivguKvguJnguK3guIEKK+C4q+C4meC4reC4geC4iuC5ieC4suC4hwor4Lir4LiZ4Lit4LiHCivguKvguJnguK3guIfguYHguIvguIcKK+C4q+C4meC4reC4h+C5g+C4mQor4Lir4LiZ4LmH4Lit4LiH4LmB4Lir4LiZ4LmH4LiHCivguKvguJnguK3guJkKK+C4q+C4meC4reC4meC4geC4o+C4sOC4l+C4ueC5iQor4Lir4LiZ4Lit4LiZ4LiB4Lij4Liw4Liq4Li34LitCivguKvguJnguK3guJnguIHguK0KK+C4q+C4meC4reC4meC4lOC5ieC4mQor4Lir4LiZ4Lit4LiZ4LiV4Liy4Lii4Lir4Lii4Liy4LiBCivguKvguJnguK3guJnguJrguYjguK3guJnguYTguKrguYkKK+C4q+C4meC4reC4meC4nuC4ouC4suC4mOC4tAor4Lir4LiZ4Lit4LiZ4Lih4LmJ4Lin4LiZ4LmD4Lia4LiC4LmJ4Liy4LinCivguKvguJnguK3guJnguKvguJnguLHguIfguKrguLfguK0KK+C4q+C4meC5iOC4reC5gOC4meC4t+C5ieC4reC5gOC4iuC4t+C5ieC4reC5hOC4ggor4Lir4LiZ4LmI4Lit4LmE4Lih4LmJCivguKvguJnguYjguK3guYTguKHguYnguJnguYnguLMKK+C4q+C4meC5iOC4reC5hOC4oeC5ieC4neC4o+C4seC5iOC4hwor4Lir4LiZ4LmI4Lit4LiiCivguKvguJnguYfguK3guKLguYHguJnguYgKK+C4q+C4meC4seC4gQor4Lir4LiZ4Lix4LiB4LiC4LmJ4LitCivguKvguJnguLHguIHguYPguIgKK+C4q+C4meC4seC4geC5geC4meC5iOC4mQor4Lir4LiZ4Lix4LiB4Lib4Liy4LiBCivguKvguJnguLHguIHguYHguJzguYjguJnguJTguLTguJkKK+C4q+C4meC4seC4geC4oeC4t+C4rQor4Lir4LiZ4Lix4LiB4LmE4Lih4LmI4LmA4Lit4LiyIOC5gOC4muC4suC5hOC4oeC5iOC4quC4ueC5iQor4Lir4LiZ4Lix4LiB4Lir4LiZ4LmI4Lin4LiHCivguKvguJnguLHguIHguKvguJnguLIKK+C4q+C4meC4seC4geC4q+C4meC5ieC4sgor4Lir4LiZ4Lix4LiB4Lit4LiBCivguKvguJnguLHguIcKK+C4q+C4meC4seC4h+C4geC4peC4suC4h+C4p+C4seC4mQor4Lir4LiZ4Lix4LiH4LiB4Liz4Lie4Lij4LmJ4LiyCivguKvguJnguLHguIfguYTguIHguYgKK+C4q+C4meC4seC4h+C4leC4sOC4peC4uOC4hwor4Lir4LiZ4Lix4LiH4LmA4Lij4Li14Lii4LiUCivguKvguJnguLHguIfguKrguJXguLTguYrguIEKK+C4q+C4meC4seC4h+C4quC4t+C4rQor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4LmA4LiU4Li04LiZ4LiX4Liy4LiHCivguKvguJnguLHguIfguKrguLfguK3guJrguKPguLTguITguJPguKvguYzguKrguJnguJjguLQKK+C4q+C4meC4seC4h+C4quC4t+C4reC4nuC4tOC4oeC4nuC5jAor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4Lij4Lix4Lia4Lij4Lit4LiH4LiB4Liy4Lij4LiX4Liz4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguKvguJnguLHguIfguKrguLfguK3guYDguKfguLXguKLguJkKK+C4q+C4meC4seC4h+C4quC4t+C4reC4quC4seC4jeC4jeC4sgor4Lir4LiZ4Lix4LiH4Lir4LiZ4LmJ4Liy4LmE4LifCivguKvguJnguLHguIfguYPguKvguI3guYgKK+C4q+C4meC4seC5iOC4mQor4Lir4LiZ4Lix4LiaCivguKvguJnguLIKK+C4q+C4meC5ieC4sgor4Lir4LiZ4LmJ4Liy4LiB4Lij4Liw4LiJ4Li14LiBCivguKvguJnguYnguLLguIHguKPguLDguJTguLLguJkKK+C4q+C4meC5ieC4suC4geC4suC4gQor4Lir4LiZ4Liy4LiB4Liy4Liq4Lij4Li1CivguKvguJnguYnguLLguYDguIHguYnguK0KK+C4q+C4meC5ieC4suC4guC4sgor4Lir4LiZ4LmJ4Liy4LiC4LmJ4Liy4Lin4LiV4Lix4LiHCivguKvguJnguYnguLLguYHguILguYnguIcKK+C4q+C4meC5ieC4suC4hOC4p+C5iOC4swor4Lir4LiZ4LmI4Liy4LiHCivguKvguJnguYnguLLguIfguK0KK+C4q+C4meC5ieC4suC4h+C4reC4gQor4Lir4LiZ4LmJ4Liy4LmA4LiH4LmJ4LiyCivguKvguJnguYnguLLguYHguIcKK+C4q+C4meC5ieC4suC4iOC5i+C4reC4ogor4Lir4LiZ4LmJ4Liy4LiI4Lix4LmI4LinCivguKvguJnguYnguLLguIjguLfguJQKK+C4q+C4meC5ieC4suC4ieC4suC4gQor4Lir4LiZ4LmJ4Liy4LiJ4Liy4LiZCivguKvguJnguYnguLLguYLguInguJnguJQKK+C4q+C4meC5ieC4suC4i+C4teC4lAor4Lir4LiZ4LmJ4Liy4LiL4Li34LmI4Lit4LmD4LiI4LiE4LiUCivguKvguJnguYnguLLguYDguIvguLXguKLguKcKK+C4q+C4meC4suC4lAor4Lir4LiZ4LmJ4Liy4LiU4LmJ4Liy4LiZCivguKvguJnguYnguLLguJXguLHguIEKK+C4q+C4meC5ieC4suC4leC4seC5ieC4hwor4Lir4LiZ4Liy4LiV4LiyCivguKvguJnguYnguLLguJXguLIKK+C4q+C4meC5ieC4suC4leC5iOC4suC4hwor4Lir4LiZ4LmJ4Liy4LiV4Liy4LiiCivguKvguJnguYnguLLguJXguLbguIcKK+C4q+C4meC5ieC4suC4leC4t+C5iOC4mQor4Lir4LiZ4LmJ4Liy4LiV4Li54LihCivguKvguJnguYnguLLguYDguJXguLIKK+C4q+C4meC5ieC4suC4luC4seC4hwor4Lir4LiZ4LmJ4Liy4LiX4Lix4LiaCivguKvguJnguYnguLLguJfguLXguYgKK+C4q+C4meC5ieC4suC4l+C4teC5iOC4meC4seC5iOC4hwor4Lir4LiZ4Liy4LiZCivguKvguJnguYnguLLguJnguKfguKUKK+C4q+C4meC5ieC4suC5gOC4meC4t+C5ieC4reC5g+C4iOC5gOC4quC4t+C4rQor4Lir4LiZ4Liy4LmB4LiZ4LmI4LiZCivguKvguJnguYnguLLguJrguLHguJkKK+C4q+C4meC5ieC4suC4muC4suC4hwor4Lir4LiZ4LmJ4Liy4Lia4Liy4LiZCivguKvguJnguYnguLLguJrguLnguJQKK+C4q+C4meC5ieC4suC4m+C4seC4lAor4Lir4LiZ4LmJ4Liy4LmA4Lib4LmH4LiZCivguKvguJnguYnguLLguJzguLIKK+C4q+C4meC5ieC4suC4nOC4suC4gQor4Lir4LiZ4LmJ4Liy4Lie4Liy4LiX4Lii4LmMCivguKvguJnguYnguLLguYTguJ8KK+C4q+C4meC4suC4oQor4Lir4LiZ4Liy4Lih4LiC4Li14LmJ4LmB4Lij4LiUCivguKvguJnguLLguKHguYDguILguLXguKLguLAKK+C4q+C4meC4suC4oeC4hOC4p+C4suC4ouC4meC4reC4mQor4Lir4LiZ4Liy4Lih4LiI4Li14LmJCivguKvguJnguLLguKHguYHguJTguIcKK+C4q+C4meC4suC4oeC5gOC4leC4ogor4Lir4LiZ4Liy4Lih4Lie4Lij4LihCivguKvguJnguLLguKHguJ7guLjguIfguJTguK0KK+C4q+C4meC4suC4oeC4ouC4reC4geC4reC4gQor4Lir4LiZ4Liy4Lih4Lii4Lit4LiB4LmA4Lit4Liy4Lir4LiZ4Liy4Lih4Lia4LmI4LiHCivguKvguJnguLLguKHguKPguK3guJrguJXguLHguKcKK+C4q+C4meC4suC4oeC4q+C4peC4seC4hwor4Lir4LiZ4Liy4Lih4LmA4Lir4Lih4LmH4LiZCivguKvguJnguLLguKHguYHguKvguKXguKHguYTguKHguYjguKHguLXguYPguITguKPguYDguKrguLXguYnguKLguKEKK+C4q+C4meC4suC4oeC5g+C4q+C4jeC5iAor4Lir4LiZ4LmJ4Liy4Lih4Lit4LiUCivguKvguJnguYnguLLguKHguYjguK3guKIKK+C4q+C4meC5ieC4suC4oeC5ieC4sgor4Lir4LiZ4LmJ4Liy4Lih4Li34LiUCivguKvguJnguYnguLLguKHguLjguIIKK+C4q+C4meC5ieC4suC5hOC4oeC5iQor4Lir4LiZ4LmI4Liy4LiiCivguKvguJnguYjguLLguKLguKvguJnguLUKK+C4q+C4meC5iOC4suC4ouC5geC4q+C4meC4hwor4Lir4LiZ4LmJ4Liy4Lij4LmI4Liy4Lir4Li44LmMCivguKvguJnguYnguLLguKPguLLguKvguLkKK+C4q+C4meC5ieC4suC5gOC4peC4t+C4reC4lAor4Lir4LiZ4Liy4LinCivguKvguJnguLLguKfguYPguIgKK+C4q+C4meC5ieC4suC4p+C4seC4pwor4Lir4LiZ4LmJ4Liy4LmB4Lin4LmI4LiZCivguKvguJnguYnguLLguKrguLTguYjguKfguKvguJnguYnguLLguILguKfguLLguJkKK+C4q+C4meC5ieC4suC5gOC4quC4teC4ogor4Lir4LiZ4LmJ4Liy4LmA4Liq4Li14LmJ4Lii4LinCivguKvguJnguYnguLLguKvguJnguLIKK+C4q+C4meC5ieC4suC4q+C4seC4gQor4Lir4LiZ4Liy4Lir4Li5CivguKvguJnguLLguKvguLnguKvguJnguLLguJXguLIKK+C4q+C4meC5ieC4suC5g+C4q+C4jeC5iOC5g+C4iOC5guC4lQor4Lir4LiZ4LmJ4Liy4LmE4Lir4Lin4LmJ4Lir4Lil4Lix4LiH4Lir4Lil4Lit4LiBCivguKvguJnguYnguLLguK3guIEKK+C4q+C4meC5ieC4suC4reC4seC4lAor4Lir4LiZ4LizCivguKvguJnguLPguYPguIgKK+C4q+C4meC4s+C5gOC4peC4teC5ieC4ouC4mgor4Lir4LiZ4Li1CivguKvguJnguLXguYkKK+C4q+C4meC4teC5ieC5gOC4geC4peC4t+C5iOC4reC4meC4geC4peC4t+C4meC4geC4seC4mQor4Lir4LiZ4Li14LiaCivguKvguJnguLXguYnguKrguLTguJkKK+C4q+C4meC4teC5ieC4quC4ueC4jQor4Lir4LiZ4Li14LmA4Liq4Li34LitCivguKvguJnguLXguYDguKrguLfguK3guJvguLDguIjguKPguLDguYDguILguYkKK+C4q+C4meC4tuC4gQor4Lir4LiZ4Li24LmI4LiHCivguKvguJnguLbguJoKK+C4q+C4meC4t+C4lAor4Lir4LiZ4Li4CivguKvguJnguLjguJkKK+C4q+C4meC4uOC4meC5gOC4meC4t+C5iOC4reC4hwor4Lir4LiZ4Li44LiZ4Lir4Lil4Lix4LiHCivguKvguJnguLjguJoKK+C4q+C4meC4uOC4muC5hgor4Lir4LiZ4Li44Lia4Lir4LiZ4Lix4LiaCivguKvguJnguLjguYjguKEKK+C4q+C4meC4uOC5iOC4oeC4l+C4seC5ieC4h+C5geC4l+C5iOC4hwor4Lir4LiZ4Li44LmI4Lih4LmB4LiZ4LmI4LiZCivguKvguJnguLjguYjguKHguYDguKvguJnguYnguLIKK+C4q+C4meC4uOC5iOC4ogor4Lir4LiZ4Li5CivguKvguJnguLnguJXguIHguJbguLHguIfguILguYnguLLguKfguKrguLLguKMKK+C4q+C4meC4ueC4leC4tOC4lOC4iOC4seC5iOC4mQor4Lir4LiZ4Li54Lic4Li1CivguKvguYjguKEKK+C4q+C4oeC4gQor4Lir4Lih4LiB4Lih4Li44LmI4LiZCivguKvguKHguIHguYTguKvguKHguYkKK+C4q+C4oeC4lAor4Lir4Lih4LiU4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguKvguKHguJTguIHguLHguJkKK+C4q+C4oeC4lOC5gOC4guC4lQor4Lir4Lih4LiU4LmA4LiC4Li14LmJ4Lii4Lin4Lir4Lih4LiU4LiH4LiyCivguKvguKHguJTguIjguJQKK+C4q+C4oeC4lOC4leC4seC4pwor4Lir4Lih4LiU4LiV4Liz4Lij4LiyCivguKvguKHguJTguJXguLnguJQKK+C4q+C4oeC4lOC5gOC4meC4t+C5ieC4reC4q+C4oeC4lOC4leC4seC4pwor4Lir4Lih4LiU4Lia4Li44LiNCivguKvguKHguJTguJvguKPguLDguJXguLkKK+C4q+C4oeC4lOC5gOC4m+C4peC4t+C4reC4gQor4Lir4Lih4LiU4Lie4LiBCivguKvguKHguJTguJ7guLjguIcKK+C4q+C4oeC4lOC4o+C4ueC4mwor4Lir4Lih4LiU4LmE4Liq4LmJ4Lir4Lih4LiU4Lie4Li44LiHCivguKvguYjguKHguJTguK3guIcKK+C4q+C4oeC4lOC4reC4suC4ouC4uAor4Lir4Lih4LiU4Lit4Liy4Lil4Lix4LiiCivguKvguKHguJTguK3guLLguKXguLHguKLguJXguLLguKLguK3guKLguLLguIEKK+C4q+C4oeC4lOC4reC4suC4peC4seC4ouC5hOC4ouC4lOC4tQor4Lir4Lih4LmI4LiZCivguKvguKHguYjguJnguKvguKHguK3guIcKK+C4q+C4oeC5iOC4meC5hOC4q+C4oeC5iQor4Lir4Lih4Lin4LiBCivguKvguKHguKfguIHguIHguLDguYLguKXguYgKK+C4q+C4oeC4p+C4geC5geC4geC5iuC4mwor4Lir4Lih4Lin4LiB4LmB4LiI4LinCivguKvguKHguKfguIHguJfguKPguIfguKvguKHguYnguK3guJXguLLguKUKK+C4q+C4oeC4p+C4geC4meC4tOC4o+C4oOC4seC4ogor4Lir4Lih4Lin4LiB4Lir4Li54LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguKvguKHguKfguJQKK+C4q+C4oeC4rQor4Lir4Lih4LmI4LitCivguKvguKHguYnguK0KK+C4q+C4oeC4reC4gQor4Lir4Lih4LmJ4Lit4LmB4LiB4LiHCivguKvguKHguYnguK3guYHguIHguIfguITguYjguLLguIcKK+C4q+C4oeC5ieC4reC5geC4geC4h+C4peC4tOC4hwor4Lir4Lih4Lit4LiC4Lin4Lix4LiNCivguKvguKHguYnguK3guILguYnguLLguKfguKvguKHguYnguK3guYHguIHguIfguKXguLTguIcKK+C4q+C4oeC4reC4hOC4p+C4suC4oQor4Lir4Lih4Lit4LiHCivguKvguKHguYjguK3guIcKK+C4q+C4oeC4reC4h+C5g+C4iAor4Lir4Lih4Lit4LiH4Lih4Lix4LinCivguKvguKHguK3guIfguKvguKHguLLguIcKK+C4q+C4oeC4reC4iuC5ieC4suC4h+C5gOC4q+C4ouC4teC4ouC4mgor4Lir4Lih4Lit4LmA4LiS4LmI4LiyCivguKvguKHguK3guJTguLkKK+C4q+C4oeC4reC4leC4suC4pQor4Lir4Lih4LmJ4Lit4LiV4Liy4LilCivguKvguKHguK3guJXguLPguYHguKIKK+C4q+C4oeC5ieC4reC4l+C4sOC4meC4mQor4Lir4Lih4Lit4LmE4LiX4LiiCivguKvguKHguK3guJkKK+C4q+C4oeC5iOC4reC4mQor4Lir4Lih4Lit4LiZ4LiC4Lin4Liy4LiZCivguKvguKHguK3guJnguILguYnguLLguIcKK+C4q+C4oeC4reC4meC4l+C4reC4hwor4Lir4Lih4Lit4LiZ4LmJ4Lit4LiiCivguKvguKHguYnguK3guJnguYnguLMKK+C4q+C4oeC4reC4meC5ieC4s+C4oeC4seC4mQor4Lir4Lih4Lit4LiaCivguKvguKHguK3guJrguIHguKPguLDguYHguJUKK+C4q+C4oeC4reC4muC4o+C4suC4muC4hOC4suC4muC5geC4geC5ieC4pwor4Lir4Lih4LmJ4Lit4LmB4Lib4Lil4LiHCivguKvguKHguYnguK3guYHguJvguKXguIfguYTguJ8KK+C4q+C4oeC4reC4nOC4tQor4Lir4Lih4Lit4Lie4Lix4LiU4LmC4LiV4LiZ4LiUCivguKvguKHguYjguK3guKEKK+C4q+C4oeC5iOC4reC4oeC5gOC4iOC5ieC4sgor4Lir4Lih4LmI4Lit4Lih4LiJ4Lix4LiZCivguKvguKHguYjguK3guKHguKPguLLguIrguKfguIfguKjguYwKK+C4q+C4oeC5iOC4reC4oeC4q+C4peC4p+C4hwor4Lir4Lih4LmI4Lit4Lih4Lir4LmJ4Liy4LihCivguKvguKHguK3guKIKK+C4q+C4oeC4reC4peC4swor4Lir4Lih4LmJ4Lit4Lir4LiZ4Li5CivguKvguKHguYnguK3guKvguYnguK3guKEKK+C4q+C4oeC4seC4gQor4Lir4Lih4Lix4LiB4Lir4Lih4LihCivguKvguKHguLHguJQKK+C4q+C4oeC4seC4mQor4Lir4Lih4Lix4LmI4LiZCivguKvguKHguLHguYnguJkKK+C4q+C4oeC4seC5iOC4meC5hOC4quC5iQor4Lir4Lih4Lix4LiaCivguKvguKHguLHguJrguYYKK+C4q+C4oeC4sgor4Lir4Lih4LmI4LiyCivguKvguKHguYnguLIKK+C4q+C4oeC4suC4gQor4Lir4Lih4Liy4LiB4LmA4LiB4LmH4LiaCivguKvguKHguLLguIHguILguYjguKfguIcKK+C4q+C4oeC4suC4geC5gOC4guC4teC4ouC4pwor4Lir4Lih4Liy4LiB4LmB4LiC4LmJ4LiHCivguKvguKHguLLguIHguITguLHguJkKK+C4q+C4oeC4suC4geC4lOC4tOC4mgor4Lir4Lih4Liy4LiB4LmB4LiU4LiHCivguKvguKHguLLguIHguJfguLHguJkKK+C4q+C4oeC4suC4geC4nOC4suC4hwor4Lir4Lih4Liy4LiB4Lic4Li54LmJ4Lir4Lih4Liy4LiB4LmA4Lih4Li14LiiCivguKvguKHguLLguIHguJ3guKPguLHguYjguIcKK+C4q+C4oeC4suC4geC4oeC5iOC4p+C4mQor4Lir4Lih4Liy4LiB4Lih4Liy4LioCivguKvguKHguLLguIHguYDguKHguYjguLIKK+C4q+C4oeC4suC4geC5gOC4oeC5iOC4suC4hOC4p+C4suC4ogor4Lir4Lih4Liy4LiB4Lii4Lix4LiaCivguKvguKHguLLguIHguYHguKLguIEKK+C4q+C4oeC4suC4geC4o+C4uOC4gQor4Lir4Lih4Liy4LiB4Lil4Li04LiHCivguKvguKHguLLguIHguKrguIcKK+C4q+C4oeC4suC4geC4q+C4meC4suC4oQor4Lir4Lih4Liy4LiB4Lir4Lit4Lih4LiE4Lin4Liy4LiiCivguKvguKHguLLguIHguYDguKvguKXguLfguK3guIcKK+C4q+C4oeC4suC4geC4reC4teC5geC4m+C4sAor4Lir4Lih4Liy4LiB4Liu4Lit4LiqCivguKvguKHguLLguILguLXguYnguYTguKHguYjguKHguLXguYPguITguKPguKLguIHguKvguLLguIcKK+C4q+C4oeC4suC4hwor4Lir4Lih4Liy4LiH4LmD4LiICivguKvguKHguLLguIfguYDguKHguLTguJkKK+C4q+C4oeC4suC4iOC4tOC5ieC4h+C4iOC4reC4gQor4Lir4Lih4Liy4LiUCivguKvguKHguLLguYPguJkKK+C4q+C4oeC4suC4m+C5iOC4sgor4Lir4Lih4Liy4Lih4Li44LmI4LiiCivguKvguKHguLLguKHguLjguYnguKIKK+C4q+C4oeC4suC5hOC4oeC5iQor4Lir4Lih4Liy4LiiCivguKvguKHguYnguLLguKIKK+C4q+C4oeC4suC4ouC4geC4s+C4q+C4meC4lOC4geC4suC4owor4Lir4Lih4Liy4Lii4LmA4LiB4LiT4LiR4LmMCivguKvguKHguLLguKLguILguLHguIcKK+C4q+C4oeC4suC4ouC4hOC5ieC4mQor4Lir4Lih4Liy4Lii4LiE4Lin4Liy4LihCivguKvguKHguLLguKLguIjguLHguJoKK+C4q+C4oeC4suC4ouC4iOC4s+C4hOC4uOC4gQor4Lir4Lih4Liy4Lii4LmD4LiICivguKvguKHguLLguKLguJXguLHguKcKK+C4q+C4oeC4suC4ouC4leC4sgor4Lir4Lih4Liy4Lii4LiZ4LmJ4Liz4Lia4LmI4Lit4Lir4LiZ4LmJ4LiyCivguKvguKHguLLguKLguJvguKXguYjguK3guKIKK+C4q+C4oeC4suC4ouC4oeC4seC5iOC4mQor4Lir4Lih4Liy4Lii4Lih4Lix4LmI4LiZ4Lib4Lix4LmJ4LiZ4Lih4Li34LitCivguKvguKHguLLguKLguKLguLIKK+C4q+C4oeC4suC4ouC5gOC4o+C4teC4ouC4gQor4Lir4Lih4Liy4Lii4LmA4Lil4LiCCivguKvguKHguLLguKLguKvguLHguKcKK+C4q+C4oeC4suC4ouC5gOC4q+C4leC4uAor4Lir4Lih4Liy4Lii4Lit4Liy4LiN4LiyCivguKvguKHguLLguKPguYjguLIKK+C4q+C4oeC4suC4quC4reC4h+C4o+C4suC4hwor4Lir4Lih4Liy4Lir4Lih4Li54LmICivguKvguKHguLLguKvguKLguK3guIHguYTguIHguYgKK+C4q+C4oeC4suC4q+C4p+C4h+C4geC5ieC4suC4hwor4Lir4Lih4Liy4Lir4Lix4Lin4LmA4LiZ4LmI4LiyCivguKvguKHguLLguKvguLLguIfguJTguYnguKfguJkKK+C4q+C4oeC4suC5gOC4q+C5iOC4suC5g+C4muC4leC4reC4h+C5geC4q+C5ieC4hwor4Lir4Lih4LmI4LizCivguKvguKHguYnguLMKK+C4q+C4oeC5ieC4s+C4leC4seC4mgor4Lir4Lih4Li04LmI4LiZCivguKvguKHguLTguYjguJnguJvguKPguLDguKHguLLguJcKK+C4q+C4oeC4tOC5iOC4meC4nuC4o+C4sOC4muC4o+C4oeC5gOC4lOC4iuC4suC4meC4uOC4oOC4suC4ngor4Lir4Lih4Li04LmI4LiZ4LmA4Lir4Lih4LmICivguKvguKHguLUKK+C4q+C4oeC4teC5iAor4Lir4Lih4Li14LmA4Lir4Lih4LmH4LiZCivguKvguKHguLbguIEKK+C4q+C4oeC4t+C4mQor4Lir4Lih4Li34LmI4LiZCivguKvguKHguLjguJQKK+C4q+C4oeC4uOC4mQor4Lir4Lih4Li44LiZ4LmA4LiH4Li04LiZCivguKvguKHguLjguJnguYDguKfguLXguKLguJkKK+C4q+C4oeC4uOC4mgor4Lir4Lih4Li44Lia4Lir4Lih4Lix4LiaCivguKvguKHguLjguJrguKvguKHguLTguJoKK+C4q+C4oeC4uOC5iOC4ogor4Lir4Lih4Li44Lii4LiC4Liy4LinCivguKvguKHguLkKK+C4q+C4oeC4ueC5iAor4Lir4Lih4Li54LmA4LiC4Liy4LiI4Liw4Lir4Liy4Lih4LmA4Lit4Liy4LiE4Liy4LiZ4LmA4LiC4LmJ4Liy4LmE4Lib4Liq4Lit4LiUCivguKvguKHguLnguYHguJTguIcKK+C4q+C4oeC4ueC4leC4seC5ieC4hwor4Lir4Lih4Li54LmA4LiX4LmC4LieCivguKvguKHguLnguJnguYnguLMKK+C4q+C4oeC4ueC5geC4meC4oQor4Lir4Lih4Li54LmD4LiZ4LmA4Lil4LmJ4LiyCivguKvguKHguLnguYPguJnguK3guKfguKIKK+C4q+C4oeC4ueC4m+C5iOC4sgor4Lir4Lih4Li54LmE4Lib4LmE4LiB4LmI4Lih4LiyCivguKvguKHguLnguYHguJzguYjguJkKK+C4q+C4oeC4ueC4ouC4rQor4Lir4Lih4Li54Liq4LiZ4Liy4LihCivguKvguKHguLnguKrguLLguKHguIrguLHguYnguJkKK+C4q+C4oeC4ueC4quC4tQor4Lir4Lih4Li54Lir4Lii4LmH4Lit4LiHCivguKvguKHguLnguKvguKPguLTguYjguIcKK+C4q+C4oeC4ueC4q+C4o+C4tuC5iOC4hwor4Lir4Lih4Li54Lir4Lix4LiZCivguKvguKHguLnguYHguK7guKEKK+C4q+C4oi0KK+C4q+C4ouC4gQor4Lir4Lii4LiB4LmGCivguKvguKLguYjguIcKK+C4q+C4ouC5iOC4h+C5hgor4Lir4Lii4LiUCivguKvguKLguJTguKLguYnguK3guKIKK+C4q+C4ouC4p+C4gQor4Lir4Lii4Lin4LiaCivguKvguKLguKfguJrguYYKK+C4q+C4ouC4reC4gQor4Lir4Lii4Lit4LiB4LmA4Lii4LmJ4LiyCivguKvguKLguYfguK3guIHguKvguKLguYfguK3guKIKK+C4q+C4ouC4reC4geC5gOC4reC4tOC4mQor4Lir4Lii4LmH4Lit4LiHCivguKvguKLguYjguK3guIcKK+C4q+C4ouC5iOC4reC4h+C5hgor4Lir4Lii4LmH4Lit4LiH4LiB4Lij4Lit4LiUCivguKvguKLguYfguK3guIfguYHguKvguKLguYfguIcKK+C4q+C4ouC4reC4lAor4Lir4Lii4Lit4LiU4Lir4Lil4Li44LihCivguKvguKLguK3guJkKK+C4q+C4ouC5iOC4reC4mQor4Lir4Lii4LmI4Lit4LiZ4LmD4LiICivguKvguKLguYjguK3guJnguK3guLLguKPguKHguJPguYwKK+C4q+C4ouC5iOC4reC4oQor4Lir4Lii4LmH4Lit4Lih4LmB4Lir4Lii4LmH4LihCivguKvguKLguYfguK3guKIKK+C4q+C4ouC5iOC4reC4ogor4Lir4Lii4Lix4LiBCivguKvguKLguLHguIHguYTguKLguYgKK+C4q+C4ouC4seC4geC4o+C4seC5ieC4hwor4Lir4Lii4Lix4LiB4Lio4LiBCivguKvguKLguLHguIHguYDguKvguKLguLIKK+C4q+C4ouC4seC4hwor4Lir4Lii4Lix4LmI4LiHCivguKvguKLguLHguYjguIfguJfguKPguLLguJoKK+C4q+C4ouC4seC5iOC4h+C4o+C4ueC5iQor4Lir4Lii4Lix4LmI4LiH4LmA4Liq4Li14Lii4LiHCivguKvguKLguLHguIfguKvguKLguLHguIcKK+C4q+C4ouC4seC4lAor4Lir4Lii4Lix4LiZCivguKvguKLguLHguJoKK+C4q+C4ouC4seC4muC5hgor4Lir4Lii4Lix4LmI4Lin4LmA4Lih4Li34Lit4LiHCivguKvguKLguYjguLIKK+C4q+C4ouC4suC4geC5gOC4ouC4t+C5iOC4rQor4Lir4Lii4Liy4LiB4LmE4Lii4LmICivguKvguKLguYjguLLguIHguLHguJkKK+C4q+C4ouC4suC4lAor4Lir4Lii4Liy4LiU4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguKvguKLguLLguJTguJnguYnguLPguJ/guYnguLIKK+C4q+C4ouC5iOC4suC4meC4oQor4Lir4Lii4Liy4LiaCivguKvguKLguLLguJrguITguLLguKIKK+C4q+C4ouC4suC4muC4iuC5ieC4sgor4Lir4Lii4Liy4Lia4Lir4Lii4Liy4LihCivguKvguKLguLLguKEKK+C4q+C4ouC4suC4oeC4meC5ieC4s+C4q+C4meC5ieC4sgor4Lir4Lii4Liy4LinCivguKvguKLguYnguLLguKcKK+C4q+C4ouC4s+C5gOC4mwor4Lir4Lii4Liz4LmA4Lir4Lii4Lit4LiwCivguKvguKLguLPguYHguKvguKLguLAKK+C4q+C4ouC4tOC4gQor4Lir4Lii4Li04LiB4LmB4LiB4Lih4Lir4Lii4Lit4LiBCivguKvguKLguLTguIHguKvguKLguYfguK3guIcKK+C4q+C4ouC4tOC5iOC4hwor4Lir4Lii4Li04LiaCivguKvguKLguLTguJrguJzguLTguJQKK+C4q+C4ouC4tOC4muC4ouC4gQor4Lir4Lii4Li04Lia4Lii4Li34LihCivguKvguKLguLTguJrguKvguKLguYjguIcKK+C4q+C4ouC4tOC4oeC5hgor4Lir4Lii4Li1CivguKvguKLguLXguYgKK+C4q+C4ouC4uAor4Lir4Lii4Li44LiB4Lir4Lii4Li04LiBCivguKvguKLguLjguJQKK+C4q+C4ouC4uOC4lOC4q+C4ouC5iOC4reC4mQor4Lir4Lii4Li44LmI4LiZCivguKvguKLguLjguJrguYYKK+C4q+C4ouC4uOC4oeC4q+C4ouC4tOC4oQor4Lir4Lii4Li54LiB4Lii4LiyCivguKvguYLguKLguJTguKEKK+C4q+C4owor4Lir4Lij4LiE4Li44LiTCivguKvguKPguJMKK+C4q+C4o+C4lOC4suC4pQor4Lir4Lij4LiU4Liy4Lil4LiB4Lil4Li14Lia4LiX4Lit4LiHCivguKvguKPguJTguLLguKXguYHguJTguIcKK+C4q+C4o+C4lOC4tQor4Lir4Lij4Lia4LmGCivguKvguKPguKPguKktCivguKvguKPguKPguKnguLIKK+C4q+C4o+C4rQor4Lir4Lij4Lit4LiBCivguKvguKPguYfguK3guKHguYHguKvguKPguYfguKEKK+C4q+C4o+C4reC4ouC5hgor4Lir4Lij4LiwCivguKvguKPguLHguJrguYYKK+C4q+C4o+C4seC4quC4py0KK+C4q+C4o+C4seC4quC4p+C4oeC4ueC4o+C4lOC4tQor4Lir4Lij4Lix4Liq4Lin4Liy4LiH4LiE4LmMCivguKvguKPguLIKK+C4q+C4o+C4tAor4Lir4Lij4Li04LiE4Lix4LiZ4LiY4LmMCivguKvguKPguLTguYjguIcKK+C4q+C4o+C4tOC5iOC4h+C5hgor4Lir4Lij4Li04LiI4Lix4LiZ4LiX4LiZ4LmMCivguKvguKPguLTguJPguLAKK+C4q+C4o+C4tOC4lQor4Lir4Lij4Li04LiV4LiB4Li1CivguKvguKPguLTguKPguLHguIHguKnguYwKK+C4q+C4o+C4tOC4p+C4h+C4qOC5jAor4Lir4Lij4Li14LmICivguKvguKPguLXguJQKK+C4q+C4o+C4teC4leC4geC4tQor4Lir4Lij4Li34LitCivguKvguKPguLjguJrguYYKK+C4q+C4o+C4uOC4muC4o+C4ueC5iAor4Lir4Lij4Li44Lia4Lir4Lij4Li54LmICivguKvguKPguLjguYjguKEKK+C4q+C4o+C4uQor4Lir4Lij4Li54Lir4Lij4LiyCivguKvguKTguJfguKIKK+C4q+C4pOC4l+C4ouC5jAor4Lir4Lik4LiX4Lix4LiiCivguKvguKTguJfguLHguKItCivguKvguKTguJfguLHguKLguIHguKXguKEKK+C4q+C4pOC4l+C4seC4ouC4geC4seC4m+C4meC5jAor4Lir4Lik4LiX4Lix4Lii4LiB4Lix4Lih4Lib4LmMCivguKvguKTguJfguLHguKLguJvguKPguLXguKLguYwKK+C4q+C4pOC4l+C4seC4ouC4nuC4seC4meC4mOC4meC5jAor4Lir4Lik4Lip4LiO4LmMCivguKvguKTguKnguI7guLUKK+C4q+C4pOC4q+C4o+C4o+C4qeC5jAor4Lir4Lik4LmC4Lir4LiUCivguKvguKUKK+C4q+C4peC4hwor4Lir4Lil4LiH4LiB4LilCivguKvguKXguIfguJXguLIKK+C4q+C4peC4h+C4peC4oQor4Lir4Lil4LiH4Lil4Li34LihCivguKvguKXguIfguKvguLnguKvguKXguIfguJXguLIKK+C4q+C4peC4h+C5gOC4q+C4peC4t+C4rQor4Lir4Lil4LiH4LmD4Lir4LilCivguKvguKXguJQKK+C4q+C4peC4mQor4Lir4Lil4LmI4LiZCivguKvguKXguJoKK+C4q+C4peC4muC4leC4sgor4Lir4Lil4Lia4Lid4Liy4LiBCivguKvguKXguJrguKHguLjguKEKK+C4q+C4peC4muC4q+C4meC5ieC4sgor4Lir4Lil4Lia4Lir4LiZ4LmJ4Liy4Lir4Lil4Lia4LiV4LiyCivguKvguKXguJrguKvguKXguLHguIfguITguLIKK+C4q+C4peC5iOC4oQor4Lir4Lil4Lin4LiHCivguKvguKXguKfguIfguIjguLXguJkKK+C4q+C4peC4p+C4oQor4Lir4Lil4Lin4Lih4LiV4Lix4LinCivguKvguKXguK0KK+C4q+C4peC5iOC4rQor4Lir4Lil4Lit4LiBCivguKvguKXguK3guIHguYYKK+C4q+C4peC4reC4geC4peC4p+C4hwor4Lir4Lil4Lit4LiB4Lil4LmI4LitCivguKvguKXguK3guIHguKvguKXguK3guJkKK+C4q+C4peC4reC4lAor4Lir4Lil4Lit4LiU4Lil4LihCivguKvguKXguK3guJTguKXguKHguITguK0KK+C4q+C4peC4reC4lOC4peC4oeC4neC4reC4ogor4Lir4Lil4Lit4LiU4LmA4Lil4Li34Lit4LiUCivguKvguKXguK3guJTguK3guLLguKvguLLguKMKK+C4q+C4peC4reC4mQor4Lir4Lil4LmH4Lit4LiZCivguKvguKXguYfguK3guJnguYYKK+C4q+C4peC5iOC4reC4mQor4Lir4Lil4Lit4LihCivguKvguKXguK3guKHguJXguLHguKcKK+C4q+C4peC4reC4oeC4peC4sOC4peC4suC4ogor4Lir4Lil4Lit4Lih4LmA4Lir4Lil4LinCivguKvguKXguYjguK3guKXguLfguYjguJkKK+C4q+C4peC5iOC4reC5gOC4peC4teC5ieC4ouC4hwor4Lir4Lil4LmI4Lit4LmA4Lir4Lil4LiyCivguKvguKXguLAKK+C4q+C4peC4sOC4q+C4peC4p+C4oQor4Lir4Lil4Lix4LiBCivguKvguKXguLHguIHguIHguLLguKMKK+C4q+C4peC4seC4geC5gOC4geC4k+C4keC5jAor4Lir4Lil4Lix4LiB4LmB4LiI4LinCivguKvguKXguLHguIHguIrguLHguKIKK+C4q+C4peC4seC4geC4kOC4suC4mQor4Lir4Lil4Lix4LiB4LiV4LitCivguKvguKXguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4q+C4peC4seC4geC4m+C4o+C4sOC4geC4seC4mQor4Lir4Lil4Lix4LiB4Lie4Lii4Liy4LiZCivguKvguKXguLHguIHguKXguK3guKIKK+C4q+C4peC4seC4geC4quC4ueC4leC4owor4Lir4Lil4Lix4LiB4LmB4Lir4Lil4LmI4LiHCivguKvguKXguLHguIHguYHguKvguKXguKEKK+C4q+C4peC4seC4hwor4Lir4Lil4Lix4LmI4LiHCivguKvguKXguLHguIfguYDguILguLXguKLguKcKK+C4q+C4peC4seC4h+C4hOC4sgor4Lir4Lil4Lix4LiH4LiE4Liy4LmA4Lij4Li34Lit4LiZCivguKvguKXguLHguIfguIjguLLguIEKK+C4q+C4peC4seC4h+C4ieC4suC4gQor4Lir4Lil4Lix4LiH4LmA4LiV4LmI4LiyCivguKvguKXguLHguIfguKLguLLguKcKK+C4q+C4peC4seC5iOC4h+C5hOC4q+C4pQor4Lir4Lil4Lix4LiU4LmGCivguKvguKXguLHguYjguJkKK+C4q+C4peC4seC4mgor4Lir4Lil4Lix4Lia4LiV4LiyCivguKvguKXguLHguJrguJnguIEKK+C4q+C4peC4seC4muC5g+C4mQor4Lir4Lil4Lix4LinCivguKvguKXguLIKK+C4q+C4peC5ieC4sgor4Lir4Lil4Liy4LiBCivguKvguKXguLLguIHguYPguIgKK+C4q+C4peC4suC4geC4q+C4peC4suC4ogor4Lir4Lil4Liy4LiXCivguKvguKXguLLguJkKK+C4q+C4peC4suC4mgor4Lir4Lil4Liy4Lia4LiI4LizCivguKvguKXguLLguKEKK+C4q+C4peC4suC4ogor4Lir4Lil4Liy4Lii4LmA4LiV4Li04LiaCivguKvguKXguLLguKLguKvguKXguLLguIEKK+C4q+C4peC4suC4ouC5geC4q+C4peC5iAor4Lir4Lil4Liy4LinCivguKvguKXguLLguKfguYDguKvguKXguYfguIEKK+C4q+C4peC4suC4q+C4pQor4Lir4Lil4Li04LiBCivguKvguKXguLTguYjguIcKK+C4q+C4peC4tOC4lwor4Lir4Lil4Li04LiZCivguKvguKXguLTguKEKK+C4q+C4peC4tOC4pwor4Lir4Lil4Li04LmI4LinCivguKvguKXguLTguYjguKfguJXguLIKK+C4q+C4peC4tQor4Lir4Lil4Li14LiBCivguKvguKXguLXguYLguIEKK+C4q+C4peC4teC4mgor4Lir4Lil4Li14Liu4Li34LmJ4LitCivguKvguKXguLfguJoKK+C4q+C4peC4uOC4geC4q+C4peC4tOC4gQor4Lir4Lil4Li44LiUCivguKvguKXguLjguJTguJvguLLguIEKK+C4q+C4peC4uOC4lOC4nuC5ieC4mQor4Lir4Lil4Li44LiU4Lih4Li34LitCivguKvguKXguLjguJTguKXguK3guKIKK+C4q+C4peC4uOC4lOC4peC4uOC5iOC4ogor4Lir4Lil4Li44LiZ4LmGCivguKvguKXguLjguJoKK+C4q+C4peC4uOC4muC4peC4ueC5iAor4Lir4Lil4Li44LihCivguKvguKXguLjguKHguYLguIjguJkKK+C4q+C4peC4uOC4oeC4nuC4o+C4suC4hwor4Lir4Lil4Li44Lih4Lie4LitCivguKvguKXguLjguKHguJ7guLUKK+C4q+C4peC4uOC4oeC4q+C4peC4muC4oOC4seC4ogor4Lir4Lil4Li44Lih4Lit4Liy4LiB4Liy4LioCivguKvguKXguLnguYgKK+C4q+C4peC4ueC5iOC4q+C4peC4teC5iAor4Lir4Lin4LiHCivguKvguYjguKfguIcKK+C4q+C5ieC4p+C4hwor4Lir4Lin4LiH4LiB4LmJ4Liy4LiHCivguKvguYjguKfguIfguYPguKIKK+C4q+C4p+C4h+C4q+C5ieC4suC4oQor4Lir4Lin4LiH4LmB4Lir4LiZCivguKvguKfguJQKK+C4q+C4p+C4mQor4Lir4LmJ4Lin4LiZCivguKvguYnguKfguJnguYYKK+C4q+C4p+C4meC4hOC4s+C4meC4tuC4hwor4Lir4Lin4LiiCivguKvguYnguKfguKIKK+C4q+C4p+C4rQor4Lir4Lin4Lit4LiUCivguKvguKfguYfguK3guKLguYYKK+C4q+C4p+C4sAor4Lir4Lin4Lix4LiHCivguKvguKfguLHguJQKK+C4q+C4p+C4seC4lOC5hgor4Lir4Lin4Lix4LmI4LiZCivguKvguKfguLHguJnguKLguLTguKvguKfguLIKK+C4q+C4p+C4seC5iOC4meC4q+C4p+C4suC4lAor4Lir4Lin4Lix4LmI4LiZ4LmE4Lir4LinCivguKvguKfguLHguKcKK+C4q+C4p+C4seC4p+C4o+C5iOC4rQor4Lir4Lin4Lix4Lin4LmA4Lij4Liy4LiwCivguKvguKfguLIKK+C4q+C4p+C5iOC4sgor4Lir4Lin4LmJ4LiyCivguKvguKfguLLguIEKK+C4q+C4p+C5iOC4suC4hwor4Lir4Lin4Liy4LiUCivguKvguKfguLLguJTguKPguLDguYHguKfguIcKK+C4q+C4p+C4suC4lOC5gOC4quC4teC4ouC4pwor4Lir4Lin4Liy4LiU4Lir4Lin4Lix4LmI4LiZCivguKvguKfguLLguJTguYTguKvguKcKK+C4q+C4p+C4suC4mQor4Lir4Lin4LmI4Liy4LiZCivguKvguKfguLLguJnguITguK3guYHguKPguYnguIcKK+C4q+C4p+C5iOC4suC4meC4peC5ieC4reC4oQor4Lir4Lin4Liy4LihCivguKvguKfguLLguKIKK+C4q+C4p+C4suC4ouC4lOC4tOC4mQor4Lir4Lin4Liy4Lii4LiV4Liw4Lih4Lit4LiiCivguKvguKfguLMKK+C4q+C4p+C4tOC4lAor4Lir4Lin4Li04LinCivguKvguKfguLUKK+C4q+C4p+C4teC5iAor4Lir4Lin4Li14LiUCivguKvguKfguLfguK0KK+C4q+C4p+C4uOC4lOC4q+C4p+C4tOC4lAor4Lir4Lin4Li44LihCivguKvguKfguLnguJQKK+C4q+C4quC4mS0KK+C4q+C4rQor4Lir4LmI4LitCivguKvguYnguK0KK+C4q+C4reC4gQor4Lir4Lit4LiB4LiC4LmJ4Liy4LiH4LmB4LiE4Lij4LmICivguKvguK3guIHguIvguLHguJQKK+C4q+C4reC4geC4suC4o+C4hOC5ieC4sgor4Lir4Lit4LiE4Lit4LiiCivguKvguK3guITguLMKK+C4q+C4reC4hwor4Lir4LmJ4Lit4LiHCivguKvguYnguK3guIfguYDguITguKPguLfguYjguK3guIcKK+C4q+C5ieC4reC4h+C4iuC4uOC4lAor4Lir4LmJ4Lit4LiH4LmB4LiW4LinCivguKvguYnguK3guIfguJnguYnguLMKK+C4q+C5ieC4reC4h+C4quC4oeC4uOC4lAor4Lir4Lit4LiI4LiU4Lir4Lih4Liy4Lii4LmA4Lir4LiV4Li4CivguKvguYjguK3guJXguLHguKcKK+C4q+C4reC5hOC4leC4owor4Lir4Lit4LiZCivguKvguYjguK3guJkKK+C4q+C4reC4mgor4Lir4Lit4Lia4Lir4Li04LmJ4LinCivguKvguK3guJrguKvguLfguJQKK+C4q+C4reC4muC4seC4h+C4hOC4seC4muC4geC4suC4owor4Lir4Lit4Lib4Lij4Liw4LiK4Li44LihCivguKvguK3guJ7guLHguIEKK+C4q+C4reC4oQor4Lir4LmJ4Lit4LihCivguKvguK3guKHguIHguKPguLLguKIKK+C4q+C4reC4oeC4guC4suC4pwor4Lir4Lit4Lih4LiI4Lix4LiZ4LiX4Lij4LmMCivguKvguK3guKHguYHguJTguIcKK+C4q+C4reC4oeC5gOC4leC4teC4ouC4oQor4Lir4Lit4Lih4Lib4LmJ4Lit4LihCivguKvguK3guKHguYHguJvguYnguJkKK+C4q+C5ieC4reC4oeC5gOC4oeC4t+C4reC4hwor4Lir4Lit4Lih4Lii4Lix4LiaCivguKvguYnguK3guKHguKXguYnguK3guKEKK+C4q+C4reC4oeC4q+C4p+C4mQor4Lir4Lit4LiiCivguKvguYnguK3guKIKK+C4q+C4reC4ouC5guC4guC5iOC4hwor4Lir4LmJ4Lit4Lii4LiX4LmJ4Liy4LiiCivguKvguK3guKLguJvguLLguIHguYDguJvguYfguJQKK+C4q+C4reC4ouC5geC4m+C4lOC5gOC4geC4peC5h+C4lAor4Lir4Lit4Lii4LmA4Lih4LmI4LiZCivguKvguYnguK3guKLguYLguKvguJkKK+C4q+C4reC4quC4oeC4uOC4lAor4Lir4LmI4Lit4Lir4Lih4LiBCivguKvguYjguK3guYDguKvguLXguYjguKLguKcKK+C4q+C5iOC4reC5geC4q+C5iAor4Lir4LmJ4Lit4LmB4Lir4LmJCivguKvguLAKK+C4q+C4sOC4ouC4tQor4Lir4Liw4LmB4Lij4LiBCivguKvguLDguKvguLLguKIKK+C4q+C4sOC4q+C5ieC4suC4ogor4Lir4Liw4LmB4Lir4LmJ4LiZCivguKvguLHguIEKK+C4q+C4seC4geC4geC4peC4muC4peC4muC4q+C4meC4teC5iQor4Lir4Lix4LiB4LiE4LitCivguKvguLHguIHguYPguIgKK+C4q+C4seC4geC4lOC5ieC4suC4oeC4nuC4o+C5ieC4suC4lOC5ieC4p+C4ouC5gOC4guC5iOC4sgor4Lir4Lix4LiB4LiX4Lit4LiH4LiC4Lin4Liy4LiHCivguKvguLHguIHguJrguLHguI3guIrguLUKK+C4q+C4seC4geC4oeC4uOC4gQor4Lir4Lix4LiB4Lij4Liy4LiE4LiyCivguKvguLHguIHguKPguYnguLLguIcKK+C4q+C4seC4geC5geC4o+C4hwor4Lir4Lix4LiB4Lil4LmJ4Liy4LiHCivguKvguLHguIHguKXguLMKK+C4q+C4seC4geC4q+C4meC5ieC4sgor4Lir4Lix4LiB4Lir4Lil4Lix4LiHCivguKvguLHguIHguKvguLLguI0KK+C4q+C4seC4geC4q+C5ieC4suC4oQor4Lir4Lix4LiB4LmA4LirCivguKvguLHguIHguYLguKvguKEKK+C4q+C4seC4geC4reC4gQor4Lir4Lix4LiB4Lit4LiB4Lir4Lix4LiB4LmD4LiICivguKvguLHguIfguKotCivguKvguLHguIjguI3guYwKK+C4q+C4seC4iOC4jeC4tQor4Lir4Lix4LiKCivguKvguLHguI/guJDguLAKK+C4q+C4seC4lAor4Lir4Lix4LiU4LmA4Lii4Lit4Lij4Lih4Lix4LiZCivguKvguLHguJUKK+C4q+C4seC4leC4li0KK+C4q+C4seC4leC4luC5jAor4Lir4Lix4LiV4LiW4LiB4Lij4Lij4LihCivguKvguLHguJXguJbguIHguLLguKMKK+C4q+C4seC4leC4luC4geC4tOC4iAor4Lir4Lix4LiV4LiW4Lia4Liy4LiqCivguKvguLHguJXguJbguJ7guLHguJnguJjguYwKK+C4q+C4seC4leC4luC4qOC4tOC4peC4m+C5jAor4Lir4Lix4LiV4LiW4Lio4Li24LiB4Lip4LiyCivguKvguLHguJXguJbguLLguIjguLLguKPguKLguYwKK+C4q+C4seC4leC4luC4suC4meC4tuC4gQor4Lir4Lix4LiV4LiW4Liy4Lig4Lij4LiT4LmMCivguKvguLHguJXguJbguLLguYLguKPguKvguLAKK+C4q+C4seC4leC4luC4suC4peC4seC4h+C4geC4suC4owor4Lir4Lix4LiV4LiW4Li04LiZ4Li1CivguKvguLHguJXguJbguLUKK+C4q+C4seC4mQor4Lir4Lix4LmI4LiZCivguKvguLHguYnguJkKK+C4q+C4seC4meC4leC4o+C4sgor4Lir4Lix4LiZ4LiV4LiyCivguKvguLHguJnguKPguLXguKvguLHguJnguILguKfguLLguIcKK+C4q+C4seC4meC4q+C4meC5ieC4suC5gOC4guC5ieC4suC4q+C4suC4geC4seC4mQor4Lir4Lix4LiZ4Lir4Lil4Lix4LiH4LmD4Lir4LmJ4LiB4Lix4LiZCivguKvguLHguJnguYDguKsKK+C4q+C4seC5iOC4meC5geC4q+C4peC4gQor4Lir4Lix4LiZ4Lit4Liy4LiB4Liy4LioCivguKvguLHguJoKK+C4q+C4seC4muC5gOC4nOC4ogor4Lir4Lix4Lih4Lih4Li14Lii4LiwCivguKvguLHguKIKK+C4q+C4seC4pwor4Lir4Lix4Lin4LiB4Lij4Liw4LmA4LiU4LmH4LiZCivguKvguLHguKfguIHguKPguLDguYTguJTguYTguKHguYjguYHguKvguYnguIcKK+C4q+C4seC4p+C4geC4o+C4sOC4quC4uOC4mQor4Lir4Lix4Lin4LiB4LmK4Lit4LiBCivguKvguLHguKfguIHguLDguJfguLQKK+C4q+C4seC4p+C4geC5iOC4suC4ouC4l+C5ieC4suC4ouC5gOC4geC4ogor4Lir4Lix4Lin4LiB4Li44LiN4LmB4LiICivguKvguLHguKfguYDguIHguYjguLIKK+C4q+C4seC4p+C5geC4geC5ieC4p+C4q+C4seC4p+C5geC4q+C4p+C4mQor4Lir4Lix4Lin4LiC4LmC4Lih4LiiCivguKvguLHguKfguILguKfguLLguJkKK+C4q+C4seC4p+C4guC5ieC4rQor4Lir4Lix4Lin4LiC4Lix4LmJ4LinCivguKvguLHguKfguILguLLguJQKK+C4q+C4seC4p+C4guC4teC5ieC5geC4leC5iQor4Lir4Lix4Lin4LiC4Li14LmJ4Lir4Lih4LiyCivguKvguLHguKfguYDguILguYnguLIKK+C4q+C4seC4p+C5geC4guC5h+C4hwor4Lir4Lix4Lin4LmC4LiC4LiZCivguKvguLHguKfguITguKfguYjguLMKK+C4q+C4seC4p+C4hOC4sOC5geC4meC4mQor4Lir4Lix4Lin4LiE4LmI4LizCivguKvguLHguKfguITguLTguJQKK+C4q+C4seC4p+C5g+C4hOC4o+C5iAor4Lir4Lix4Lin4LiH4Lit4LiZCivguKvguLHguKfguIfguLLguJkKK+C4q+C4seC4p+C5gOC4h+C4tOC4mQor4Lir4Lix4Lin4LmA4LiH4Li34LmI4Lit4LiZCivguKvguLHguKfguYLguIjguIEKK+C4q+C4seC4p+C5g+C4iAor4Lir4Lix4Lin4LiK4LiZ4LiB4Liz4LmB4Lie4LiHCivguKvguLHguKfguIrguJnguJ3guLIKK+C4q+C4seC4p+C4i+C4uOC4geC4q+C4seC4p+C4i+C4uOC4mQor4Lir4Lix4Lin4LiL4Li44LiZCivguKvguLHguKfguJTguYnguKfguJkKK+C4q+C4seC4p+C4lOC4suC4p+C4q+C4seC4p+C5gOC4lOC4t+C4reC4mQor4Lir4Lix4Lin4LiU4Li34LmJ4LitCivguKvguLHguKfguYDguJTguYfguJTguJXguLXguJnguILguLLguJQKK+C4q+C4seC4p+C5gOC4lOC4teC4ouC4p+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oeC4peC4teC4mgor4Lir4Lix4Lin4LiV4LmI4LitCivguKvguLHguKfguJXguLDguIHguLHguYjguKcKK+C4q+C4seC4p+C4leC4sOC4hOC4suC4gQor4Lir4Lix4Lin4LiV4Liw4LmC4Lir4LiH4LiBCivguKvguLHguKfguYDguJXguYjguLIKK+C4q+C4seC4p+C5gOC4leC4suC5hOC4nwor4Lir4Lix4Lin4LiW4Lit4LiBCivguKvguLHguKfguYDguJbguLTguIEKK+C4q+C4seC4p+C4l+C4tQor4Lir4Lix4Lin4LmA4LiX4Li14Lii4LiZCivguKvguLHguKfguYDguJfguLXguKLguKEKK+C4q+C4seC4p+C4meC4geC4geC4o+C4sOC4iOC4reC4gQor4Lir4Lix4Lin4LiZ4LihCivguKvguLHguKfguJnguK3guIEKK+C4q+C4seC4p+C4meC4reC4mQor4Lir4Lix4Lin4LiZ4Lit4LiZ4Lib4Lil4Liy4Lii4LiV4Li14LiZCivguKvguLHguKfguJnguYnguLMKK+C4q+C4seC4p+C4meC5ieC4s+C4guC4tuC5ieC4mQor4Lir4Lix4Lin4LiZ4LmJ4Liz4Lil4LiHCivguKvguLHguKfguYDguJnguLfguYnguK0KK+C4q+C4seC4p+C5gOC4meC4t+C5ieC4reC4l+C4o+C4suC4ogor4Lir4Lix4Lin4Lia4Lix4LinCivguKvguLHguKfguYDguJrguLXguYnguKIKK+C4q+C4seC4p+C5guC4muC4o+C4suC4kwor4Lir4Lix4Lin4Lib4Lil4Lin4LiBCivguKvguLHguKfguJvguKXguLUKK+C4q+C4seC4p+C4m+C4seC4geC4q+C4seC4p+C4m+C4swor4Lir4Lix4Lin4Lib4Lix4LmI4LiZCivguKvguLHguKfguJvguYjguLIKK+C4q+C4seC4p+C4m+C4suC4gQor4Lir4Lix4Lin4Lib4Li1CivguKvguLHguKfguJ7guLHguJkKK+C4q+C4seC4p+C4nuC4uOC4h+C4q+C4seC4p+C4oeC4seC4mQor4Lir4Lix4Lin4Lif4Li34LiZ4Lir4Lix4Lin4LmE4LifCivguKvguLHguKfguKHguLHguIfguIHguLjguJfguYnguLLguKLguKHguLHguIfguIHguKMKK+C4q+C4seC4p+C4oeC4seC4mQor4Lir4Lix4Lin4LmA4Lih4LmH4LiUCivguKvguLHguKfguYDguKHguLfguK3guIcKK+C4q+C4seC4p+C5geC4oeC5iOC4leC4teC4mQor4Lir4Lix4Lin4LmB4Lih4LmI4LmA4LiX4LmJ4LiyCivguKvguLHguKfguYHguKHguYjguKHguLfguK0KK+C4q+C4seC4p+C5geC4oeC4peC4h+C4p+C4seC4mQor4Lir4Lix4Lin4LmE4Lih4LmJCivguKvguLHguKfguYTguKHguYjguKfguLLguIfguKvguLLguIfguYTguKHguYjguYDguKfguYnguJkKK+C4q+C4seC4p+C4o+C4rQor4Lir4Lix4Lin4Lij4LmI4LitCivguKvguLHguKfguKPguYnguK3guKLguKPguLkKK+C4q+C4seC4p+C4o+C4sOC5geC4q+C4hwor4Lir4Lix4Lin4Lij4Lix4LiB4Lir4Lix4Lin4LmD4LiE4Lij4LmICivguKvguLHguKfguKPguLHguYnguJkKK+C4q+C4seC4p+C4o+C4suC4meC5ieC4swor4Lir4Lix4Lin4Lij4Li44LiZ4LmB4Lij4LiHCivguKvguLHguKfguYDguKPguLLguLAKK+C4q+C4seC4p+C5gOC4o+C4teC5iOC4ouC4p+C4q+C4seC4p+C5geC4o+C4hwor4Lir4Lix4Lin4LmA4Lij4Li34LmI4Lit4LiHCivguKvguLHguKfguYDguKPguLfguK3guYPguKvguI3guYgKK+C4q+C4seC4p+C5geC4o+C4hwor4Lir4Lix4Lin4LmB4Lij4LmJ4LiHCivguKvguLHguKfguKXguKEKK+C4q+C4seC4p+C4peC5ieC4suC4mQor4Lir4Lix4Lin4Lil4Li04LiHCivguKvguLHguKfguYDguKXguLXguYnguKLguKcKK+C4q+C4seC4p+C5gOC4peC4teC5ieC4ouC4p+C4q+C4seC4p+C4leC5iOC4rQor4Lir4Lix4Lin4LmC4Lil4LmJ4LiZCivguKvguLHguKfguKfguYjguLLguKcKK+C4q+C4seC4p+C4quC4s+C5gOC4oOC4sgor4Lir4Lix4Lin4Liq4Li54LiHCivguKvguLHguKfguYDguKrguLXguKIKK+C4q+C4seC4p+C5hOC4quC5iQor4Lir4Lix4Lin4Lir4LiB4LiB4LmJ4LiZ4LiC4Lin4Li04LiUCivguKvguLHguKfguKvguIfguK3guIEKK+C4q+C4seC4p+C4q+C4lAor4Lir4Lix4Lin4Lir4LiZ4LmJ4LiyCivguKvguLHguKfguKvguJnguYjguLLguKcKK+C4q+C4seC4p+C4q+C4oeC4rQor4Lir4Lix4Lin4Lir4Lih4Li34LmI4LiZCivguKvguLHguKfguKvguKHguLjguJkKK+C4q+C4seC4p+C4q+C4oeC4uQor4Lir4Lix4Lin4Lir4Lil4Lix4LiB4Lir4Lix4Lin4LiV4LitCivguKvguLHguKfguKvguLLguJQKK+C4q+C4seC4p+C4q+C4suC4ouC4leC4sOC4nuC4suC4ouC4guC4suC4lAor4Lir4Lix4Lin4LmA4Lir4LmH4LiUCivguKvguLHguKfguYHguKvguKXguKEKK+C4q+C4seC4p+C5geC4q+C4p+C4mQor4Lir4Lix4Lin4LmD4Lir4Lih4LmICivguKvguLHguKfguYTguKvguKXguYgKK+C4q+C4seC4p+C4reC4gQor4Lir4Lix4Lin4Lit4Lit4LiBCivguKvguLHguKfguK3guYjguK3guJkKK+C4q+C4seC4qgor4Lir4Lix4Liq4LiU4Li04LiZCivguKvguLHguKrguJTguLUKK+C4q+C4seC4quC4lQor4Lir4Lix4Liq4LiV4LmMCivguKvguLHguKrguJXguLAKK+C4q+C4sgor4Lir4LmI4LiyCivguKvguYnguLIKK+C4q+C4suC4gQor4Lir4Liy4LiB4Lin4LmI4LiyCivguKvguLLguIHguLTguJkKK+C4q+C5iOC4suC4geC4tOC4mQor4Lir4Liy4LiE4Lin4Liy4LihCivguKvguLLguITguYjguLLguKHguLTguYTguJTguYkKK+C4q+C4suC4hwor4Lir4LmI4Liy4LiHCivguKvguYnguLLguIcKK+C4q+C4suC4h+C4geC4o+C4sOC5gOC4muC4mQor4Lir4Liy4LiH4LiB4Lij4Liw4Lij4Lit4LiBCivguKvguLLguIfguIHguKPguLDguKvguKHguKfguJQKK+C4q+C4suC4h+C4geC4o+C4suC4ogor4Lir4Liy4LiH4LiB4Liw4Lil4Lin4LiiCivguKvguLLguIfguIHguLDguKXguKfguKLguYTguIHguYgKK+C4q+C4suC4h+C4geC4seC4h+C4q+C4seC4mQor4Lir4Liy4LiH4LiB4Li04LmI4LinCivguKvguLLguIfguYHguIHguKXguLAKK+C4q+C4suC4h+C5hOC4geC5iAor4Lir4Liy4LiH4LiC4Lih4Lin4LiUCivguKvguLLguIfguILguK3guJQKK+C4q+C4suC4h+C4guC5ieC4suC4pwor4Lir4Liy4LiH4LmB4LiC4LmH4LiHCivguKvguLLguIfguITguYnguK0KK+C4q+C4suC4h+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lir4Liy4LiH4LiI4Lij4Liw4LmA4LiC4LmJCivguKvguLLguIfguIjguLTguYnguIfguYDguKvguKXguJkKK+C4q+C4suC4h+C4iuC5ieC4suC4hwor4Lir4Liy4LiH4LmA4LiV4LmI4LiyCivguKvguLLguIfguYHguJbguKcKK+C4q+C4suC4h+C4meC4geC4geC4sOC4peC4tOC4hwor4Lir4Liy4LiH4LiZ4LiB4Lii4Li54LiHCivguKvguLLguIfguJnguIHguKLguLnguIfguJ3guKPguLHguYjguIcKK+C4q+C4suC4h+C4meC4suC4hAor4Lir4Liy4LiH4Lib4Lil4LiyCivguKvguLLguIfguYDguJvguLXguKIKK+C4q+C4suC4h+C5geC4nuC4mQor4Lir4Liy4LiH4LmB4Lih4LiH4Lib4LmI4Lit4LiHCivguKvguLLguIfguKLguLLguKEKK+C4q+C4suC4h+C4ouC4suC4pwor4Lir4Liy4LiH4LmA4Lil4LiCCivguKvguLLguIfguKfguYjguLLguKcKK+C4q+C4suC4h+C4quC4tOC4h+C4q+C5jAor4Lir4Liy4LiH4LmA4Liq4Li14Lii4LiHCivguKvguLLguIfguYDguKrguLfguK0KK+C4q+C4suC4h+C4q+C4h+C4quC5jAor4Lir4Liy4LiH4Lir4LiZ4Li5CivguKvguYnguLLguIfguKvguLjguYnguJnguKrguYjguKfguJkKK+C4q+C5ieC4suC4h+C4q+C4uOC5ieC4meC4quC5iOC4p+C4meC4iOC4s+C4geC4seC4lAor4Lir4LmJ4Liy4LiH4Lir4Li44LmJ4LiZ4Liq4LmI4Lin4LiZ4Liq4Liy4Lih4Lix4LiNCivguKvguYjguLLguIfguYDguKsKK+C4q+C5iOC4suC4h+C5gOC4q+C4tOC4mQor4Lir4Liy4LiH4LmE4Lir4LilCivguKvguLLguIfguYTguKvguKXguYHguJTguIcKK+C4q+C4suC4h+C5hOC4q+C4peC5gOC4nOC4t+C4reC4gQor4Lir4Liy4LmA4LiH4Li04LiZCivguKvguLLguYDguIrguYnguLLguIHguLTguJnguITguYjguLMKK+C4q+C4suC4jQor4Lir4Liy4LiUCivguKvguLLguJTguIEKK+C4q+C4suC4leC4gQor4Lir4Liy4LiV4Lix4Lin4LiI4Lix4Lia4Lii4Liy4LiBCivguKvguYnguLLguYHguJXguYnguKEKK+C4q+C4suC4mQor4Lir4LmI4Liy4LiZCivguKvguLLguJoKK+C4q+C4suC4muC4oeC4tOC5hOC4lOC5iQor4Lir4Liy4Lia4LmA4Lij4LmICivguKvguLLguJrguKvguKXguKfguIcKK+C4q+C4suC4oQor4Lir4LmI4Liy4LihCivguKvguYnguLLguKEKK+C4q+C5ieC4suC4oeC4jeC4suC4leC4tAor4Lir4LmJ4Liy4Lih4LiX4Lix4LieCivguKvguYnguLLguKHguJvguKPguLLguKEKK+C4q+C5ieC4suC4oeC5gOC4m+C4peC4teC5iOC4ouC4meC4oeC4t+C4rQor4Lir4LmJ4Liy4Lih4Lie4Lij4Liw4LmB4LiB4LmI4LiZ4LiI4Lix4LiZ4LiX4LiZ4LmMCivguKvguLLguKHguKPguK3guIEKK+C4q+C4suC4oeC4o+C4uOC5iOC4h+C4q+C4suC4oeC4hOC5iOC4swor4Lir4LmJ4Liy4Lih4Lil4LmJ4LitCivguKvguYnguLLguKHguYDguKXguLfguK3guJQKK+C4q+C4suC4oeC5geC4peC5iOC4mQor4Lir4LmJ4Liy4Lih4Liq4Lih4Li44LiX4LijCivguKvguLLguKHguLTguYTguJTguYkKK+C4q+C4suC5hOC4oeC5iAor4Lir4Liy4LmE4Lih4LmI4LiB4LmHCivguKvguLLguKIKK+C4q+C4suC4ouC4geC4seC4mQor4Lir4Liy4Lii4LiC4Liy4LiUCivguKvguLLguKLguYDguILguYnguLLguIHguKXguLXguJrguYDguKHguIYKK+C4q+C4suC4ouC5g+C4iAor4Lir4Liy4Lii4LmD4LiI4LmE4Lih4LmI4LiX4Lix4LmI4Lin4LiX4LmJ4Lit4LiHCivguKvguLLguKLguJXguLHguKcKK+C4q+C4suC4ouC4meC4sAor4Lir4Liy4Lii4Lir4LiB4LiV4LiB4Lir4Lil4LmI4LiZCivguKvguLLguKLguKvguJnguYnguLIKK+C4q+C4suC4ouC4q+C5iOC4p+C4hwor4Lir4Liy4Lii4Lir4Lix4LinCivguKvguLLguKMKK+C4q+C4suC4o+C4o+C5iOC4p+C4oeC4oeC4suC4gQor4Lir4Liy4Lij4Li0CivguKvguLLguKPguLTguJkKK+C4q+C4suC4o+C4tQor4Lir4Liy4Lij4Li34LitCivguKvguLLguYDguKPguLfguYjguK3guIcKK+C4q+C5iOC4suC4peC4hwor4Lir4Liy4Lil4Li04LiXCivguKvguLLguYDguKXguLfguK3guJTguIHguLHguJrguJvguLkKK+C4q+C4suC4pwor4Lir4LmJ4Liy4LinCivguKvguLLguKfguJnguK3guJkKK+C4q+C5ieC4suC4p+C4q+C4suC4jQor4Lir4Liy4LmA4Lio4Lip4Lir4Liy4LmA4Lil4LiiCivguKvguLLguKoKK+C4q+C4suC4quC4gQor4Lir4Liy4Liq4Lii4LiwCivguKvguLLguKrguLnguYgKK+C4q+C4suC5gOC4quC4teC4ouC4hwor4Lir4Liy4Lir4LmI4Lin4LiH4Lih4Liy4LiE4Lil4LmJ4Lit4LiH4LiE4LitCivguKvguLLguYDguKvguJXguLgKK+C4q+C4swor4Lir4LmJ4LizCivguKvguYnguLPguKvguLHguIEKK+C4q+C5ieC4s+C4q+C4seC5iOC4mQor4Lir4Li04LmJ4LiHCivguKvguLTguIfguITguLgKK+C4q+C4tOC4h+C4quC4sgor4Lir4Li04LiH4Lir4LmJ4Lit4LiiCivguKvguLTguYjguIfguKvguYnguK3guKIKK+C4q+C4tOC5iOC4h+C4q+C4suC4ogor4Lir4Li04LiUCivguKvguLTguJUKK+C4q+C4tOC4lS0KK+C4q+C4tOC4leC4geC4owor4Lir4Li04LiV4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguKvguLTguJXguJ7guIjguJnguYwKK+C4q+C4tOC4leC4p+C4iOC4meC4sAor4Lir4Li04LiV4Liy4LiZ4Li44Lir4Li04LiV4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguKvguLTguJkKK+C4q+C4tOC4mS0KK+C4q+C4tOC4meC4h+C4reC4gQor4Lir4Li04LiZ4LiK4LiZ4Lin4LiZCivguKvguLTguJnguIrguLHguYnguJkKK+C4q+C4tOC4meC4iuC4suC4leC4tAor4Lir4Li04LiZ4LiU4Li04LiZ4LiU4Liy4LiZCivguKvguLTguJnguJTguLTguJnguKrguK3guJ7guK3guIcKK+C4q+C4tOC4meC4leC4sOC4geC4reC4mQor4Lir4Li04LiZ4LiV4Lix4Lia4LmA4Lib4LmH4LiUCivguKvguLTguJnguJfguKPguLLguKIKK+C4q+C4tOC4meC4meC5ieC4s+C4oeC4seC4mQor4Lir4Li04LiZ4Lib4Li54LiZCivguKvguLTguJnguYHguJvguKMKK+C4q+C4tOC4meC4neC4meC4l+C4reC4hwor4Lir4Li04LiZ4Lii4LmJ4Lit4LiiCivguKvguLTguJnguKLguLLguJkKK+C4q+C4tOC4meC5geC4peC4hwor4Lir4Li04LiZ4Liq4Lia4Li54LmICivguKvguLTguJnguYLguKrguYLguITguKPguIEKK+C4q+C4tOC4meC4q+C4meC4t+C4lAor4Lir4Li04LiZ4Lit4LmI4Lit4LiZCivguKvguLTguJnguK3guLHguITguJnguLUKK+C4q+C4tOC4oS0KK+C4q+C4tOC4oeC4nuC4suC4mQor4Lir4Li04Lih4Lie4Liy4LiZ4LiV4LmMCivguKvguLTguKHguKfguLHguJUKK+C4q+C4tOC4oeC4p+C4seC4meC4leC5jAor4Lir4Li04Lih4Lin4LiyCivguKvguLTguKHguKfguLLguJUKK+C4q+C4tOC4oeC4p+C4suC4mQor4Lir4Li04Lih4Lin4Liy4LiqCivguKvguLTguKHguYDguKfguKgKK+C4q+C4tOC4oeC4sAor4Lir4Li04Lih4Liy4Lil4Lix4LiiCivguKvguLTguKPguLHguI0KK+C4q+C4tOC4o+C4seC4jS0KK+C4q+C4tOC4o+C4seC4jeC4jeC4tOC4geC4suC4o+C5jAor4Lir4Li04Lij4Lix4LiN4Lia4Lix4LiPCivguKvguLTguKPguLHguJPguKItCivguKvguLTguKPguLHguJPguKLguYwKK+C4q+C4tOC4o+C4seC4k+C4ouC4geC4suC4owor4Lir4Li04Lij4Lix4LiT4Lii4LmA4LiB4LioCivguKvguLTguKPguLHguJPguKLguKPguLHguKjguKHguLUKK+C4q+C4tOC4o+C4tAor4Lir4Li04Lij4Li04LmC4Lit4LiV4LiV4Lix4Lib4Lib4LiwCivguKvguLTguKcKK+C4q+C4tOC5ieC4pwor4Lir4Li04LmJ4Lin4LiX4LmJ4Lit4LiHCivguKvguLTguYnguKfguJvguLXguIEKK+C4q+C4tQor4Lir4Li14LiUCivguKvguLXguJXguLIKK+C4q+C4teC5gOC4leC5iOC4sgor4Lir4Li14LiZLQor4Lir4Li14LiZ4Lii4Liy4LiZCivguKvguLXguJoKK+C4q+C4teC4muC4iuC4seC4gQor4Lir4Li14Lia4LmA4LiK4Li04LiH4LiK4Liy4LiiCivguKvguLXguJrguJ3guYnguLLguKIKK+C4q+C4teC4muC4nuC4o+C4sOC4oeC4suC4peC4seC4ogor4Lir4Li14Lia4LmA4Lie4Lil4LiHCivguKvguLXguJrguYDguJ7guKXguIfguIrguLHguIEKK+C4q+C4teC4muC5gOC4nuC4peC4h+C4m+C4suC4gQor4Lir4Li14Lia4Liq4LmE4LiaCivguKvguLXguJrguYDguKrguLXguKLguIcKK+C4q+C4teC4muC4q+C5iOC4rQor4Lir4Li24LmGCivguKvguLbguIcKK+C4q+C4tuC5iOC4hwor4Lir4Li24LmI4LiH4LmGCivguKvguLbguIfguKotCivguKvguLbguIfguKrguLIKK+C4q+C4t+C4lAor4Lir4Li34LiZCivguKvguLfguYjguJkKK+C4q+C4t+C5iOC4meC4q+C4o+C4o+C4qeC5jAor4Lir4Li34LitCivguKvguLfguYnguK0KK+C4q+C4t+C4reC5hOC4oeC5iOC4guC4tuC5ieC4mQor4Lir4Li34Lit4Lij4Li34Lit4LmC4Lir4LiUCivguKvguLjguIcKK+C4q+C4uOC4h+C4guC5ieC4suC4p+C4m+C4o+C4sOC4iuC4lOC4q+C4oeC4sgor4Lir4Li44LiVLQor4Lir4Li44LiV4LmC4LiB4Lin4Li04LiXCivguKvguLjguJXguLLguIjguLLguKPguKLguYwKK+C4q+C4uOC4mQor4Lir4Li44LmI4LiZCivguKvguLjguYnguJkKK+C4q+C4uOC5ieC4meC4geC4ueC5iQor4Lir4Li44LmI4LiZ4LiZ4Li04LmI4LiHCivguKvguLjguYnguJnguJrguLjguKPguLTguKHguKrguLTguJfguJjguLQKK+C4q+C4uOC5iOC4meC4nuC4ouC4meC4leC5jAor4Lir4Li44LmJ4LiZ4Lil4LihCivguKvguLjguYjguJnguYTguKXguYjguIHguLIKK+C4q+C4uOC5ieC4meC4quC5iOC4p+C4mQor4Lir4Li44LiZ4Lir4Lix4LiZCivguKvguLjguJnguKvguLHguJnguJ7guKXguLHguJnguYHguKXguYjguJkKK+C4q+C4uOC4mgor4Lir4Li44Lia4LmA4LiC4LiyCivguKvguLjguJrguJvguLLguIEKK+C4q+C4uOC4muC4nOC4sgor4Lir4Li44Lia4LmA4Lir4LinCivguKvguLjguYnguKEKK+C4q+C4uOC5ieC4oeC4geC4peC4reC4hwor4Lir4Li44LmJ4Lih4LmB4Lic4Lil4LiHCivguKvguLjguYnguKHguYHguJ7guKMKK+C4q+C4uOC5ieC4ouC4q+C4uOC4ogor4Lir4Li44Lii4Liu4LiyCivguKvguLjguKPguLHguKEKK+C4q+C4uOC4q+C4meC4tOC4h+C4q+C4h+C4seC4mQor4Lir4Li5CivguKvguLnguYgKK+C4q+C4ueC4gQor4Lir4Li54LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguKvguLnguIHguKfguLLguIcKK+C4q+C4ueC5geC4iOC4pwor4Lir4Li54LiJ4Lil4Liy4LihCivguKvguLnguInguLXguYgKK+C4q+C4ueC4iuC4reC4hwor4Lir4Li54LiK4LmJ4Liy4LiHCivguKvguLnguJQKK+C4q+C4ueC4lOC4seC4muC4leC4seC4muC5hOC4q+C4oeC5iQor4Lir4Li54LiV4Liy4Liq4Lin4LmI4Liy4LiHCivguKvguLnguJXguLQKK+C4q+C4ueC4leC4tuC4hwor4Lir4Li54LiV4Li54LiaCivguKvguLnguJfguKfguJnguKXguKEKK+C4q+C4ueC5gOC4muC4sgor4Lir4Li54Lib4Lil4Liy4LiK4LmI4Lit4LiZCivguKvguLnguJvguYjguLLguJXguLLguYDguJbguLfguYjguK3guJkKK+C4q+C4ueC4nOC4teC4iOC4oeC4ueC4geC4oeC4lAor4Lir4Li54Lic4Li24LmI4LiHCivguKvguLnguKPguLnguJQKK+C4q+C4ueC5hOC4pwor4Lir4Li54LmE4Lin4LiV4Liy4LmE4LinCivguKvguLnguYDguKrguLfguK0KK+C4q+C4ueC4q+C4meC4suC4leC4suC5guC4lQor4Lir4Li54Lir4LiZ4Liy4LiV4Liy4LmA4Lil4LmI4LitCivguKvguLnguKvguJnguLkKK+C4q+C4ueC5iOC4q+C4teC5iAor4Lir4Li54LmE4LirCivguYDguKsKK+C5gOC4q+C5iAor4LmA4Lir4LiHCivguYDguKvguIfguYjguIcKK+C5gOC4q+C4h+C4sgor4LmA4Lir4LiH4LmJ4LiyCivguYDguKvguIfguLLguKvguIfguK3guKIKK+C5gOC4q+C4h+C4t+C5iOC4rQor4LmA4Lir4LiH4Li34Lit4LiBCivguYDguKvguIfguLfguK3guIHguJvguKXguLLguKvguKHguK0KK+C5gOC4q+C4h+C4t+C5iOC4reC4geC4suC4rAor4LmA4Lir4LmH4LiICivguYDguKvguYfguJQKK+C5gOC4q+C5h+C4lOC5guC4hOC4mQor4LmA4Lir4LmH4LiU4Lir4Lil4Li44LiaCivguYDguKvguJXguLQKK+C5gOC4q+C4leC4uAor4LmA4Lir4LiV4Li44LiB4Liy4Lij4LiT4LmMCivguYDguKvguJXguLjguJzguKUKK+C5gOC4q+C4leC4uOC4quC4uOC4lOC4p+C4tOC4quC4seC4ogor4LmA4Lir4LmH4LiZCivguYDguKvguYfguJnguIHguIfguIjguLHguIHguKPguYDguJvguYfguJnguJTguK3guIHguJrguLHguKcKK+C5gOC4q+C5h+C4meC5geC4geC5iAor4LmA4Lir4LmH4LiZ4LmB4LiB4LmI4Lir4LiZ4LmJ4LiyCivguYDguKvguYfguJnguILguLXguYnguJTguLXguIHguKfguYjguLLguYTguKrguYkKK+C5gOC4q+C5h+C4meC5gOC4guC4suC4guC4tuC5ieC4meC4hOC4suC4meC4q+C4suC4oSDguYDguK3guLLguKHguLfguK3guJvguKPguLDguKrguLLguJnguIHguYnguJkKK+C5gOC4q+C4meC5iOC4hwor4LmA4Lir4LiZ4LiH4LiZ4Liy4Lii4Lie4Lij4Liy4LiZCivguYDguKvguYfguJnguIjguLAKK+C5gOC4q+C5h+C4meC5g+C4iAor4LmA4Lir4LmH4LiZ4LiK4LmJ4Liy4LiH4LiC4Li14LmJIOC4guC4teC5ieC4leC4suC4oeC4iuC5ieC4suC4hwor4LmA4Lir4LiZ4LmH4LiUCivguYDguKvguJnguYfguJTguYDguKvguJnguLfguYjguK3guKIKK+C5gOC4q+C5h+C4meC4lOC4s+C5gOC4q+C5h+C4meC5geC4lOC4hwor4LmA4Lir4LmH4LiZ4LiU4Li1CivguYDguKvguJnguYfguJoKK+C5gOC4q+C4meC5h+C4muC4iuC4sgor4LmA4Lir4LiZ4LmH4Lia4LmB4LiZ4LihCivguYDguKvguYfguJnguKvguJnguYnguLLguYDguKvguYfguJnguKvguKXguLHguIcKK+C5gOC4q+C4meC5iOC4rQor4LmA4Lir4LmH4LiZ4Lit4LmJ4LihCivguYDguKvguJnguK3guLAKK+C5gOC4q+C4meC4reC4sOC4q+C4meC4sAor4LmA4Lir4LiZ4LmJ4LiyCivguYDguKvguJnguLLguLDguYYKK+C5gOC4q+C4meC4teC4ouC4hwor4LmA4Lir4LiZ4Li14LmI4Lii4LiHCivguYDguKvguJnguLXguKLguIfguJnguIHguIHguKPguLDguJfguLjguIcKK+C5gOC4q+C4meC4teC5iOC4ouC4mQor4LmA4Lir4LiZ4Li14Lii4LihCivguYDguKvguJnguLXguKLguKcKK+C5gOC4q+C4meC4teC5iOC4ouC4pwor4LmA4Lir4LiZ4Li14LmI4Lii4Lin4LiZ4Liz4LmB4Lih4LmI4LmA4Lir4Lil4LmH4LiB4LmE4Lif4Lif4LmJ4LiyCivguYDguKvguJnguLXguKLguKfguYHguJnguYjguJkKK+C5gOC4q+C4meC4teC5iOC4ouC4p+C4o+C4seC5ieC4hwor4LmA4Lir4LiZ4Li14Lii4Lin4Lir4LiZ4Li34LiUCivguYDguKvguJnguLXguKLguKfguKvguKHguLIKK+C5gOC4q+C4meC4t+C4rQor4LmA4Lir4LiZ4Li34LmI4Lit4LiiCivguYDguKvguJnguLfguYjguK3guKLguKvguJnguYjguLLguKIKK+C5gOC4q+C5h+C4mgor4LmA4Lir4LmH4Lia4LiZ4LmJ4LizCivguYDguKvguKEKK+C5gOC4q+C4oS0KK+C5gOC4q+C4oeC5iAor4LmA4Lir4Lih4LmI4LiHCivguYDguKvguKHguYfguJkKK+C5gOC4q+C4oeC5h+C4meC5gOC4guC4teC4ouC4pwor4LmA4Lir4Lih4LmH4LiZ4LmA4Lia4Li34LmI4LitCivguYDguKvguKHguYfguJnguYDguJvguKPguLXguYnguKLguKcKK+C5gOC4q+C4oeC4p+C4lOC4tQor4LmA4Lir4Lih4LmI4LitCivguYDguKvguKHguLHguJnguJUtCivguYDguKvguKHguLHguJnguJXguYwKK+C5gOC4q+C4oeC4sgor4LmA4Lir4Lih4Liy4Lii4Lix4LiZCivguYDguKvguKHguLLguLAKK+C5gOC4q+C4oeC4suC4sOC5gOC4iOC4suC4sAor4LmA4Lir4Lih4Liy4Liw4Liq4LihCivguYDguKvguKHguLLguLDguYDguKvguKHguYfguIcKK+C5gOC4q+C4oeC4teC4ouC4pwor4LmA4Lir4Lih4Li14LmI4Lii4LinCivguYDguKvguKHguLfguK3guIcKK+C5gOC4q+C4oeC4t+C4reC4h+C4neC4suC4ogor4LmA4Lir4Lih4Li34Lit4LiUCivguYDguKvguKHguLfguK3guJTguITguJkKK+C5gOC4q+C4oeC4t+C4reC4lOC5guC4peC4lAor4LmA4Lir4Lih4Li34Lit4LiZCivguYDguKvguKHguLfguK3guJnguIHguLHguJoKK+C5gOC4q+C4oeC4t+C4reC4meC4p+C5iOC4sgor4LmA4Lir4Lih4Li34Lit4LiZ4Lir4LiZ4Li24LmI4LiH4Lin4LmI4LiyCivguYDguKvguKHguLfguYjguK3guKIKK+C5gOC4q+C4oeC4t+C5iOC4reC4ouC5hgor4LmA4Lir4LiiCivguYDguKvguKLguYDguIEKK+C5gOC4q+C4ouC4hwor4LmA4Lir4Lii4LmI4Lit4LiiCivguYDguKvguKLguLIKK+C5gOC4q+C4ouC5iOC4sgor4LmA4Lir4Lii4LmI4Liy4LmGCivguYDguKvguKLguYnguLIKK+C5gOC4q+C4ouC4suC4sAor4LmA4Lir4Lii4Liy4Liw4LmGCivguYDguKvguKLguLLguLDguYHguKvguKLguLAKK+C5gOC4q+C4ouC4tOC4hwor4LmA4Lir4Lii4Li04Lia4LmGCivguYDguKvguKLguLXguKLguJQKK+C5gOC4q+C4ouC4teC4ouC4lOC4nOC4tOC4pwor4LmA4Lir4Lii4Li14Lii4LiU4Lir4Lii4Liy4LihCivguYDguKvguKLguLXguKLguJoKK+C5gOC4q+C4ouC4teC4ouC4muC4guC4teC5ieC5hOC4geC5iOC5hOC4oeC5iOC4neC5iOC4rQor4LmA4Lir4Lii4Li14Lii4Lia4LiI4Lih4Li54LiBCivguYDguKvguKLguLXguKLguJrguKLguYjguLMKK+C5gOC4q+C4ouC4teC4ouC4muC5gOC4o+C4t+C4reC4quC4reC4h+C5geC4hOC4oQor4LmA4Lir4Lii4Li14LmI4Lii4LinCivguYDguKvguKLguLXguYjguKLguKfguILguYjguLLguKcKK+C5gOC4q+C4ouC4t+C5iOC4rQor4LmA4Lir4Lii4Li34Lit4LiBCivguYDguKvguKPguLHguI3guI3guLTguIEKK+C5gOC4q+C4o+C4sgor4LmA4Lir4Lij4Liy4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguYDguKvguKPguLLguLDguYYKK+C5gOC4q+C4o+C4teC4ouC4jQor4LmA4Lir4Lij4Li14Lii4LiN4LiB4Lij4Liw4Lip4Liy4Lib4LiT4LmMCivguYDguKvguYjguYDguKPguLfguK0KK+C5gOC4q+C4peC5iAor4LmA4Lir4Lil4LmH4LiBCivguYDguKvguKXguYfguIHguIHguKXguYnguLIKK+C5gOC4q+C4peC5h+C4geC4geC4peC5ieC4suC5hOC4oeC5iOC5gOC4m+C5h+C4meC4quC4meC4tOC4oQor4LmA4Lir4Lil4LmH4LiB4LmD4LiZCivguYDguKvguKXguYfguIHguJ7guLfguJQKK+C5gOC4q+C4peC5h+C4geC4p+C4tOC4peC4suC4lAor4LmA4Lir4Lil4LmH4LiB4Liq4LmI4LiHCivguYDguKvguKXguYfguIHguYDguKrguYnguJkKK+C5gOC4q+C4peC5h+C4geC4q+C4oeC4suC4lAor4LmA4Lir4Lil4LmH4LiB4Lir4Lil4LmI4LitCivguYDguKvguKXguYfguIHguYDguKvguJnguLXguKLguKcKK+C5gOC4q+C4peC5h+C4geC5hOC4q+C4pQor4LmA4Lir4Lil4LiZCivguYDguKvguKXguKcKK+C5gOC4q+C4peC4p+C5geC4q+C4peC4gQor4LmA4Lir4Lil4Lin4LmE4Lir4LilCivguYDguKvguKXguK0KK+C5gOC4q+C4peC4sgor4LmA4Lir4Lil4LmI4LiyCivguYDguKvguKXguYnguLIKK+C5gOC4q+C4peC5iOC4suC4geC4rQor4LmA4Lir4Lil4Liy4LiK4Liw4LmC4Lit4LiZCivguYDguKvguKXguLLguKvguKXguIEKK+C5gOC4q+C4peC5ieC4suC5geC4q+C5ieC4hwor4LmA4Lir4Lil4Liy4Liw4LmB4Lir4Lil4LiwCivguYDguKvguKXguLTguIcKK+C5gOC4q+C4peC4tOC4h+C5gOC4iOC4tOC5ieC4hwor4LmA4Lir4Lil4Li14Lii4LiZCivguYDguKvguKXguLXguYjguKLguKEKK+C5gOC4q+C4peC4teC5iOC4ouC4oeC4hOC4uQor4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lil4Li54LiB4Lia4Liy4Lio4LiB4LmMCivguYDguKvguKXguLXguKLguKcKK+C5gOC4q+C4peC4teC4ouC4p+C5geC4pQor4LmA4Lir4Lil4Li14Lii4Lin4Lir4Lil4Lix4LiHCivguYDguKvguKXguLfguK0KK+C5gOC4q+C4peC4t+C4reC4gQor4LmA4Lir4Lil4Li34Lit4LiB4Liz4Lil4Lix4LiHCivguYDguKvguKXguLfguK3guYDguIHguLTguJkKK+C5gOC4q+C4peC4t+C4reC4guC4rQor4LmA4Lir4Lil4Li34Lit4LmA4LiC4LmH4LiNCivguYDguKvguKXguLfguK3guYDguILguYfguJkKK+C5gOC4q+C4peC4t+C4reC4hwor4LmA4Lir4Lil4Li34Lit4LiH4Lir4Liy4LiH4Lif4LmJ4LiyCivguYDguKvguKXguLfguK3guIfguKvguLTguJkKK+C5gOC4q+C4peC4t+C4reC5g+C4iAor4LmA4Lir4Lil4Li34Lit4LmA4LiK4Li34LmI4LitCivguYDguKvguKXguLfguK3guYPguIrguYkKK+C5gOC4q+C4peC4t+C4reC4l+C4mQor4LmA4Lir4Lil4Li34Lit4LiaCivguYDguKvguKXguLfguK3guJrguYjguLLguIHguKfguYjguLLguYHguKPguIcKK+C5gOC4q+C4peC4t+C4reC5gOC4n+C4t+C4rQor4LmA4Lir4Lil4Li34Lit4LihCivguYDguKvguKXguLfguYjguK3guKEKK+C5gOC4q+C4peC4t+C5iOC4reC4oeC4peC5ieC4s+C4leC5iOC4s+C4quC4ueC4hwor4LmA4Lir4Lil4Li34Lit4Lih4Li34LitCivguYDguKvguKXguLfguK3guKPguLHguJoKK+C5gOC4q+C4peC4t+C4reC4o+C5ieC4suC4ogor4LmA4Lir4Lil4Li34Lit4Lil4LmJ4LiZCivguYDguKvguKXguLfguK3guKfguLTguKrguLHguKIKK+C5gOC4q+C4peC4t+C4reC4quC4leC4tOC4geC4s+C4peC4seC4hwor4LmA4Lir4Lil4Li34Lit4LmB4Liq4LiZCivguYDguKvguKXguLfguK3guKvguKXguK0KK+C5gOC4q+C4peC4t+C4reC4q+C4peC4suC4ogor4LmA4Lir4Lil4Li34Lit4LmB4Lir4Lil4LmICivguYDguKvguKXguLfguK3guK3guJQKK+C5gOC4q+C4peC4t+C4reC4reC4lOC5gOC4q+C4peC4t+C4reC4l+C4mQor4LmA4Lir4LinCivguYDguKvguKfguYgKK+C5gOC4q+C4p+C4hwor4LmA4Lir4Lin4LiX4Liw4LmA4LilCivguYDguKvguKfguKIKK+C5gOC4q+C4p+C4reC4sAor4LmA4Lir4Lin4Lit4Liw4Lir4Lin4LiwCivguYDguKvguKfguLXguYjguKLguIcKK+C5gOC4q+C4p+C4teC5iOC4ouC4h+C5geC4qwor4LmA4Lir4LmI4LitCivguYDguKvguYjguK3guYDguKvguLTguKEKK+C5gOC4q+C4reC4sAor4LmA4Lir4Lit4Liw4LiZ4LmI4LiyCivguYDguKvguLAKK+C5gOC4q+C4sOC4q+C4sAor4LmA4Lir4LiyCivguYDguKvguYjguLIKK+C5gOC4q+C4suC4ieC4peC4suC4oQor4LmA4Lir4Liy4LiX4Liw4LmA4LilCivguYDguKvguLLguJnguYnguLMKK+C5gOC4q+C4suC5hOC4oeC5iQor4LmA4Lir4Liy4LiwCivguYDguKvguLTguJkKK+C5gOC4q+C4tOC4meC4q+C5iOC4suC4hwor4LmA4Lir4Li04LiZ4LmA4Lir4LmI4LitCivguYDguKvguLTguKEKK+C5gOC4q+C4tOC4oeC4q+C4suC4jQor4LmA4Lir4Li04Lih4Lir4LmJ4Liy4LinCivguYDguKvguLTguKHguK7guLbguIEKK+C5gOC4q+C4teC5ieC4ogor4LmA4Lir4Li14Lii4LiHCivguYDguKvguLXguKLguIfguIHguKPguLLguJQKK+C5gOC4q+C4teC4ouC4mQor4LmA4Lir4Li14LmJ4Lii4LiZCivguYDguKvguLXguKLguJnguKPguLLguIEKK+C5gOC4q+C4teC5ieC4ouC4oQor4LmA4Lir4Li14LmJ4Lii4Lih4LmA4LiB4Lij4Li14Lii4LihCivguYDguKvguLXguYnguKLguKHguKvguLLguI0KK+C5gOC4q+C4teC5ieC4ouC4oeC5guC4q+C4lAor4LmA4Lir4Li14LmI4Lii4LinCivguYDguKvguLXguYjguKLguKfguYHguKvguYnguIcKK+C5gOC4q+C4t+C5iOC4rQor4LmA4Lir4Li34Lit4LiUCivguYDguKvguLfguK3guJTguKvguLLguKIKK+C5gOC4q+C4t+C4reC4lOC5geC4q+C5ieC4hwor4LmB4LirCivguYHguKvguYgKK+C5geC4q+C5iQor4LmB4Lir4LiBCivguYHguKvguIHguITguK3guIEKK+C5geC4q+C4geC4m+C4suC4gQor4LmB4Lir4LiHCivguYHguKvguIfguYgKK+C5geC4q+C5iOC4hwor4LmB4Lir4LmJ4LiHCivguYHguKvguIfguYHguIHguYsKK+C5geC4q+C4h+C5iOC4hwor4LmB4Lir4LiH4LiZCivguYHguKvguIfguJnguYDguJXguYjguK0KK+C5geC4q+C4h+C4meC5gOC4luC5iOC4rQor4LmB4Lir4LmJ4LiH4Lic4Liy4LiBCivguYHguKvguYnguIfguYHguKXguYnguIcKK+C5geC4q+C5ieC4h+C5gOC4q+C4teC5iOC4ouC4pwor4LmB4Lir4LmJ4LiH4LmA4Lir4Li34Lit4LiUCivguYHguKvguJkKK+C5geC4q+C5ieC4mQor4LmB4Lir4LiZ4LiHCivguYHguKvguJnguIfguYPguIgKK+C5geC4q+C4meC4h+C4q+C4meC5iOC4suC4ogor4LmB4Lir4LiZ4LiaCivguYHguKvguJnguKEKK+C5geC4q+C4mgor4LmB4Lir4LihCivguYHguKvguKHguYgKK+C5geC4q+C4oeC5iOC4oQor4LmB4Lir4Lih4LiwCivguYHguKvguKIKK+C5geC4q+C4ouC5iAor4LmB4Lir4Lii4LiHCivguYHguKvguKLguYjguIcKK+C5geC4q+C4ouC4oQor4LmB4Lir4Lii4LmH4LihCivguYHguKvguKLguLAKK+C5geC4q+C4ouC4sOC5hgor4LmB4Lir4LilCivguYHguKvguKXguYgKK+C5geC4q+C4peC4gQor4LmB4Lir4Lil4LiB4Lil4Liy4LiNCivguYHguKvguKXguIHguYDguKvguKXguKcKK+C5geC4q+C4peC5iOC4hwor4LmB4Lir4Lil4LmI4LiH4LmA4Liq4Li34LmI4Lit4Lih4LmC4LiX4Lij4LihCivguYHguKvguKXguYjguIfguKvguKXguYnguLIKK+C5geC4q+C4peC4mQor4LmB4Lir4Lil4LmI4LiZ4Lit4LiBCivguYHguKvguKXguYjguYPguJkKK+C5geC4q+C4peC4oQor4LmB4Lir4Lil4Lih4Lir4Lil4Lix4LiBCivguYHguKvguKXguLAKK+C5geC4q+C4pwor4LmB4Lir4LmJ4LinCivguYHguKvguKfguIEKK+C5geC4q+C4p+C4geC5geC4meC4pwor4LmB4Lir4Lin4LmI4LiHCivguYHguKvguKfguJQKK+C5geC4q+C4p+C4mQor4LmB4Lir4Lin4LiZ4Lir4Lix4LinCivguYHguKvguYnguKfguKvguKHguLkKK+C5geC4q+C4p+C4sAor4LmB4Lir4LmI4Lir4LmJ4Lit4LihCivguYHguKvguYjguYHguKvguJkKK+C5geC4q+C4sAor4LmB4Lir4Liw4LmGCivguYLguKvguYgKK+C5guC4q+C4gQor4LmC4Lir4LiHCivguYLguKvguIfguJ7guKPguLLguKIKK+C5guC4q+C4lAor4LmC4Lir4LiU4Lij4LmJ4Liy4LiiCivguYLguKvguJTguYDguKvguLXguYnguKLguKEKK+C5guC4q+C4mQor4LmC4Lir4LiZ4LiBCivguYLguKvguJnguIHguYHguIHguYnguKEKK+C5guC4q+C4meC5iOC4hwor4LmC4Lir4LihCivguYLguKvguKEtCivguYLguKvguKHguYgKK+C5guC4q+C4oeC4geC4o+C4o+C4oQor4LmC4Lir4Lih4LiB4Li54LiT4LiR4LmMCivguYLguKvguKHguYjguIcKK+C5guC4q+C4oeC4lAor4LmC4Lir4Lih4LiU4LmA4LiX4LioCivguYLguKvguKHguYLguKPguIcKK+C5guC4q+C4oeC4q+C4seC4gQor4LmC4Lir4Lih4Liu4Li24LiBCivguYLguKvguKIKK+C5guC4q+C4ouC4geC5gOC4q+C4ouC4gQor4LmC4Lir4Lii4LiHCivguYLguKvguKLguYjguIcKK+C5guC4q+C4ouC5iOC4h+C5hgor4LmC4Lir4Lii4Lir4Lin4LiZCivguYLguKvguKLguYTguKvguYkKK+C5guC4q+C4owor4LmC4Lir4Lij4LiHCivguYLguKvguKPguIfguYDguKvguKPguIcKK+C5guC4q+C4o+C4lOC4suC4iOC4suC4o+C4ouC5jAor4LmC4Lir4Lij4Liw4Lie4LiyCivguYLguKvguKPguLIKK+C5guC4q+C4o+C4suC4geC4o+C4sOC4muC4t+C4rQor4LmC4Lir4Lij4Liy4LmA4LiC4Liy4LmA4LiZ4Li34LmJ4LitCivguYLguKvguKPguLLguIjguLLguKPguKLguYwKK+C5guC4q+C4o+C4suC5gOC4lOC4t+C4reC4ouC5hOC4geC5iAor4LmC4Lir4Lij4Liy4LiV4Li14LiZ4Lir4Lih4LiyCivguYLguKvguKPguLLguYDguJfguYnguLLguKrguLjguJnguLHguIIKK+C5guC4q+C4o+C4suC4muC4reC4mQor4LmC4Lir4Lij4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguYLguKvguKUKK+C5guC4q+C4peC5iAor4LmC4Lir4Lil4LiH4LmC4LiI4LmJ4LiHCivguYLguKvguKcKK+C5guC4q+C4p+C5iAor4LmC4Lir4Lin4LmJCivguYLguKvguKfguIHguYDguKvguKfguIEKK+C5guC4q+C4p+C4hwor4LmC4Lir4Lin4LiH4LmA4Lir4Lin4LiHCivguYLguKvguKfguJQKK+C5guC4q+C4p+C4lQor4LmD4Lir4LmJCivguYPguKvguYnguIHguLLguKMKK+C5g+C4q+C4jeC5iAor4LmD4Lir4LmJ4LmC4LiU4Lii4LmA4Liq4LiZ4LmI4Lir4LiyCivguYPguKvguYnguJfguYjguLIKK+C5g+C4q+C5ieC4l+C5ieC4suC4ogor4LmD4Lir4Lih4LmICivguYPguKvguKHguYjguJbguK3guJTguJTguYnguLLguKEKK+C5g+C4q+C4oeC5iOC5gOC4reC4teC5iOC4ouC4oQor4LmD4Lir4LmJ4Lij4LmJ4Liy4LiiCivguYPguKvguYnguKPguYnguLLguKLguJvguYnguLLguKLguKrguLUKK+C5g+C4q+C5ieC4quC4seC4leC4ouC4suC4muC4seC4mQor4LmD4Lir4LmJ4Lir4LiyCivguYPguKvguYnguK3guKDguLHguKIKK+C5g+C4q+C5ieC4reC4reC4gQor4LmE4LirCivguYTguKvguYgKK+C5hOC4q+C5iQor4LmE4Lir4LiL4Lit4LiHCivguYTguKvguJkKK+C5hOC4q+C4m+C4peC4suC4o+C5ieC4sgor4LmE4Lir4LihCivguYTguKvguKHguYkKK+C5hOC4q+C4oeC4l+C4reC4hwor4LmE4Lir4Lih4Liq4Lix4Lia4Lib4Liw4Lij4LiUCivguYTguKvguKPguJPguKLguYwKK+C5hOC4q+C4pQor4LmE4Lir4Lil4LmICivguYTguKvguKXguYjguYDguILguLIKK+C5hOC4q+C4peC5iOC4luC4meC4mQor4LmE4Lir4Lil4LmI4LiX4Lin4Li14LibCivguYTguKvguKXguYjguJfguLLguIcKK+C5hOC4q+C4peC4meC5ieC4swor4LmE4Lir4Lil4LmI4Lij4Lin4LiaCivguYTguKvguKcKK+C5hOC4q+C4p+C5hgor4LmE4Lir4Lin4LmJCivguYTguKvguKfguYnguITguKPguLkKK+C5hOC4q+C4p+C5ieC5gOC4iOC5ieC4sgor4LmE4Lir4Lin4LiV4Lix4LinCivguYTguKvguKfguJXguLTguIcKK+C5hOC4q+C4p+C4l+C4seC4mQor4LmE4Lir4Lin4LmJ4Lic4Li1CivguYTguKvguKfguJ7guKPguLTguJoKK+C5hOC4q+C4p+C5ieC4p+C4suC4mQor4LmE4Lir4Lir4Lil4LizCivguKwKK+C4rQor4Lit4LiBCivguK3guIHguYTguIHguYgKK+C4reC4geC4hOC4o+C4suC4gQor4Lit4LiB4LiV4Lix4LmJ4LiHCivguK3guIHguJXguLHguI3guI3guLjguJXguLIKK+C4reC4geC4leC4seC4jeC4jeC4uQor4Lit4LiB4LmA4LiV4LmI4LiyCivguK3guIHguYHguJXguIEKK+C4reC4geC4l+C4sOC5gOC4pQor4Lit4LiB4LiZ4Li04Lip4LiQ4LmMCivguK3guIHguYDguKHguLfguK3guIcKK+C4reC4geC4o+C4k+C4teC4ouC5jAor4Lit4LiB4Lij4Lij4Lih4LiB4Lij4Li04Lii4LiyCivguK3guIHguKPguKfguJoKK+C4reC4geC4o+C5iOC4reC4hwor4Lit4LiB4LmC4Lij4LiiCivguK3guIHguYDguKXguLIKK+C4reC4geC4q+C4seC4gQor4Lit4LiB4Lix4Lib4Lib4Li04LiiLQor4Lit4LiB4Lix4Lib4Lib4Li04Lii4Lin4Lix4LiV4LiW4Li4CivguK3guIHguLHguJvguJvguLTguKLguYLguKfguKvguLLguKMKK+C4reC4geC4seC4m+C4m+C4tOC4ouC4sAor4Lit4LiB4Li44Lio4LilCivguK3guIHguLjguKjguKUtCivguK3guIHguLjguKjguKXguIHguKPguKPguKEKK+C4reC4geC4uOC4qOC4peC4geC4o+C4o+C4oeC4muC4lgor4Lit4LiB4Li44Lio4Lil4LmA4LiI4LiV4LiZ4LiyCivguK3guIHguLjguKjguKXguKHguLnguKUKK+C4reC4hOC4leC4tAor4Lit4LiE4LmA4LiZ4Liq4Lix4LiZCivguK3guITguLLguJgKK+C4reC4hOC4suC4oy0KK+C4reC4hgor4Lit4LmC4LiG4Lip4LiwCivguK3guIcKK+C4reC4h+C4geC5jAor4Lit4LiH4LiELQor4Lit4LiH4LiE4LmMCivguK3guIfguITguYzguIHguJDguLTguJkKK+C4reC4h+C4hOC5jOC4geC4owor4Lit4LiH4LiE4LmM4LiB4Liy4LijCivguK3guIfguITguYzguIHguLLguKPguKrguKvguJvguKPguLDguIrguLLguIrguLLguJXguLQKK+C4reC4h+C4hOC4iuC4suC4lQor4Lit4LiH4LiE4LmM4Lib4Lij4Liw4LiB4Lit4LiaCivguK3guIfguITguYzguJvguKPguLDguIrguLjguKEKK+C4reC4h+C4hOC4oeC4meC4leC4o+C4tQor4Lit4LiH4LiE4Lih4Lij4Lij4LipCivguK3guIfguITguKPguLHguIHguKnguYwKK+C4reC4h+C4hOC4p+C4tOC4geC4suC4owor4Lit4LiH4LiE4Lin4Li04LmA4LiB4Lip4LibCivguK3guIfguITguKfguLTguJfguKLguLIKK+C4reC4h+C4hOC4suC4nuC4ouC4ngor4Lit4LiH4LiE4Li44LilCivguK3guIfguITguLjguKXguLUKK+C4reC4h+C4qOC5jAor4Lit4LiH4Lio4LiyCivguK3guIfguK3guLLguIgKK+C4reC4h+C4uOC5iOC4mQor4Lit4LiI4LijCivguK3guIjguKUtCivguK3guIjguKXguLIKK+C4reC4iOC4tOC4leC4leC4tAor4Lit4LiI4Li04LiZ4LiV4LiyCivguK3guIjguLTguJnguYTguJXguKIKK+C4reC4iOC4tOC4oy0KK+C4reC4iOC4tOC4o+C4sAor4Lit4LmA4LiI4Lil4LiBCivguK3guYDguIjguKXguLAKK+C4reC4igor4Lit4LiK4LiyCivguK3guIrguLTguJkKK+C4reC4iuC4tOC4meC4tQor4Lit4LiK4Li04LijCivguK3guI/guKfguLUKK+C4reC4k+C4tAor4Lit4LiT4Li4CivguK3guJPguLkKK+C4reC5guC4k+C4l+C4seC4ogor4Lit4LiUCivguK3guJTguIHguKXguLHguYnguJkKK+C4reC4lOC5g+C4iAor4Lit4LiU4LiV4Liy4Lir4Lil4Lix4Lia4LiC4Lix4Lia4LiV4Liy4LiZ4Lit4LiZCivguK3guJTguJfguJkKK+C4reC4lOC4meC4oQor4Lit4LiU4LmA4Lib4Lij4Li14LmJ4Lii4Lin4LmE4Lin4LmJ4LiB4Li04LiZ4Lir4Lin4Liy4LiZCivguK3guJTguKrguLkKK+C4reC4lOC5geC4q+C5ieC4h+C4reC4lOC5geC4peC5ieC4hwor4Lit4LiU4Lit4Lii4Liy4LiBCivguK3guJTguK3guK3guKEKK+C4reC4lOC4tAor4Lit4LiU4Li04LiW4Li1CivguK3guJTguLTguYDguJfguJ4KK+C4reC4lOC4tOC5gOC4o+C4gQor4Lit4LiU4Li04LmA4Lij4LiBLQor4Lit4LiU4Li04LmA4Lij4LiB4Lil4Liy4LigCivguK3guJTguLTguKjguKMKK+C4reC4lOC4tOC4qOC4p+C4owor4Lit4LiU4Li04Lio4Lix4LiiCivguK3guJTguLXguJUKK+C4reC4lOC4teC4lS0KK+C4reC4lOC4teC4leC4geC4suC4pQor4Lit4LiU4Li14LiV4LiK4Liy4LiV4Li0CivguK3guJTguLXguJXguKDguJ4KK+C4reC4lOC4teC4leC4quC4oeC4seC4ogor4Lit4LiU4Li44LilCivguK3guJTguLjguKXguKItCivguK3guJTguLjguKXguKLguYwKK+C4reC4leC4tAor4Lit4LiV4Li04LiK4Liy4LiVCivguK3guJXguLTguIrguLLguJUtCivguK3guJXguLTguIrguLLguJXguJrguLjguJXguKMKK+C4reC4leC4tOC4oeC4suC4meC4sAor4Lit4LiV4Li04Lij4Liy4LiKCivguK3guJXguLTguYDguKPguIEKK+C4reC4leC4tOC5gOC4o+C4gS0KK+C4reC4leC4tOC5gOC4o+C4geC4iOC4teC4p+C4owor4Lit4LiV4Li04LmA4Lij4LiB4Lil4Liy4LigCivguK3guJXguLTguKrguLLguKMKK+C4reC4luC4o+C4o+C4nuC5gOC4p+C4lwor4Lit4LiX4Lij4LiwCivguK3guJfguLTguJnguJnguLLguJfguLLguJkKK+C4reC4l+C4tOC4meC4meC4suC4l+C4suC4ouC4tQor4Lit4LiY4Lij4Lij4LihCivguK3guJjguLQKK+C4reC4mOC4tOC4gS0KK+C4reC4mOC4tOC4geC4oeC4suC4qgor4Lit4LiY4Li04LiB4Lij4LiT4LmMCivguK3guJjguLTguIHguKfguLLguKMKK+C4reC4mOC4tOC4geC4quC4uOC4o+C4l+C4tOC4mQor4Lit4LiY4Li04LiB4Liy4LijCivguK3guJjguLTguIHguLLguKPguJrguJTguLUKK+C4reC4mOC4tOC4hOC4oQor4Lit4LiY4Li04LiP4LiQ4Liy4LiZCivguK3guJjguLTguJrguJTguLUKK+C4reC4mOC4tOC4muC4suC4ogor4Lit4LiY4Li04LibCivguK3guJjguLTguJstCivguK3guJjguLTguJvguYTguJXguKIKK+C4reC4mOC4tOC4oeC4suC4leC4owor4Lit4LiY4Li04Lih4Li44LiV4LiV4Li0CivguK3guJjguLTguYLguKHguIHguILguYwKK+C4reC4mOC4tOC4o+C4suC4igor4Lit4LiY4Li04Lin4Liy4LiqCivguK3guJjguLTguKfguLLguKrguJnguLAKK+C4reC4mOC4tOC4qOC4teC4pQor4Lit4LiY4Li04Lip4LiQ4Liy4LiZCivguK3guJjguLbguIEKK+C4reC4mS0KK+C4reC5ieC4mQor4Lit4LiZ4LiH4LiELQor4Lit4LiZ4LiH4LiE4LmMCivguK3guJnguIfguITguJPguLAKK+C4reC4meC4h+C4hOC5gOC4peC4ggor4Lit4LiZ4LiH4LiE4LmA4Lil4LiC4LiyCivguK3guJnguJgtCivguK3guJnguJjguIHguLLguKMKK+C4reC4meC4meC4leC5jAor4Lit4LiZ4Lii4LiwCivguK3guJnguKPguKPguIYKK+C4reC4meC4o+C4o+C4lgor4Lit4LiZ4LilCivguK3guJnguKfguLHguIoKK+C4reC4meC4p+C4seC4ii0KK+C4reC5ieC4meC4reC5ieC4rQor4Lit4LiZ4Lix4LiNCivguK3guJnguLHguI0tCivguK3guJnguLHguI3guITguJXguLQKK+C4reC4meC4seC4jeC4quC4suC4mOC4suC4o+C4k+C5jAor4Lit4LiZ4Lix4LiV4LiV4LiyCivguK3guJnguLHguJXguJYtCivguK3guJnguLHguJnguJUtCivguK3guJnguLHguJnguJXguYwKK+C4reC4meC4seC4meC4leC4oy0KK+C4reC4meC4seC4meC4leC4o+C4tOC4ouC4geC4o+C4o+C4oQor4Lit4LiZ4Lix4LihCivguK3guJnguLLguIHguLnguKUKK+C4reC4meC4suC4hOC4lQor4Lit4LiZ4Liy4LiE4LiVLQor4Lit4LiZ4Liy4LiE4LiV4LiB4Liy4LilCivguK3guJnguLLguITguLLguKHguLTguJzguKUKK+C4reC4meC4suC4hOC4suC4oeC4tOC4oeC4o+C4o+C4hAor4Lit4LiZ4Liy4LiE4Liy4Lih4Li1CivguK3guJnguLLguIjguLLguKMKK+C4reC4meC4suC4lgor4Lit4LiZ4Liy4LiW4LiyCivguK3guJnguLLguJfguKMKK+C4reC4meC4suC4mOC4tOC4m+C5hOC4leC4ogor4Lit4LiZ4Liy4Lih4Lix4LiiCivguK3guJnguLLguKPguKItCivguK3guJnguLLguKPguKLguIrguJkKK+C4reC4meC4suC4o+C4ouC4mOC4o+C4o+C4oQor4Lit4LiZ4Liy4Lij4Lii4LiwCivguK3guJnguLLguKXguLHguKIKK+C4reC4meC4swor4Lit4LiZ4Li04LiICivguK3guJnguLTguIgtCivguK3guJnguLTguIjguIHguKPguKPguKEKK+C4reC4meC4tOC4iOC4iOC4seC4hwor4Lit4LiZ4Li04LiI4LiI4LiyCivguK3guJnguLTguI/guJDguLLguKPguKHguJPguYwKK+C4reC4meC4tOC4ouC4lQor4Lit4LiZ4Li04Lii4LihCivguK3guJnguLTguKLguKEtCivguK3guJnguLTguKUKK+C4reC4meC4tOC4pS0KK+C4reC4meC4tOC4peC4muC4lgor4Lit4LiZ4Li04Lin4Lij4Lij4LiVCivguK3guJnguLTguKfguKPguKPguJXguJnguYwKK+C4reC4meC4tOC4qeC4j+C5jAor4Lit4LiZ4Li14LiBLQor4Lit4LiZ4Li14LiB4LiX4Lij4Lij4Lio4LiZ4LiwCivguK3guJnguLXguIHguJfguLHguKjguJnguLAKK+C4reC4meC4teC4geC4sAor4Lit4LiZ4Li14LiB4Lix4LiQCivguK3guJnguLXguIgKK+C4reC4meC4tuC4gQor4Lit4LiZ4Li24LmI4LiHCivguK3guJnguLgKK+C4reC4meC4uOC4geC4owor4Lit4LiZ4Li44LiB4Lij4LihCivguK3guJnguLjguIHguKPguKPguKHguIHguLLguKMKK+C4reC4meC4uOC4geC4o+C4sOC5gOC4muC4teC4ouC4lAor4Lit4LiZ4Li44LiB4Liy4LiK4Liy4LiUCivguK3guJnguLjguIHguLLguKMKK+C4reC4meC4uOC4geC4ueC4pQor4Lit4LiZ4Li44LiE4Liy4Lih4Li04LiBCivguK3guJnguLjguITguLLguKHguLUKK+C4reC4meC4uOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lit4LiZ4Li44LiI4LijCivguK3guJnguLjguIoKK+C4reC4meC4uOC4iuC4mQor4Lit4LiZ4Li44LiK4LiyCivguK3guJnguLjguIrguLLguJUKK+C4reC4meC4uOC4iuC4suC4lS0KK+C4reC4meC4uOC4iuC4suC4leC4muC4uOC4leC4owor4Lit4LiZ4Li44LiK4Li04LiVCivguK3guJnguLjguI3guLLguJUKK+C4reC4meC4uOC4jeC4suC5guC4leC4leC4uOC4peC4suC4geC4suC4owor4Lit4LiZ4Li44LiV4LijLQor4Lit4LiZ4Li44LmA4LiW4Lij4LiwCivguK3guJnguLjguJfguLTguJkKK+C4reC4meC4uOC4muC4lwor4Lit4LiZ4Li44Lia4Liy4LilCivguK3guJnguLjguJvguKPguLTguI3guI3guLIKK+C4reC4meC4uOC4m+C4quC4seC4oeC4muC4seC4mQor4Lit4LiZ4Li44Lib4Lix4Liq4LiZ4LiyCivguK3guJnguLjguJ7guIfguKjguYwKK+C4reC4meC4uOC4nuC4seC4l+C4mOC5jAor4Lit4LiZ4Li44Lie4Lix4LiZ4LiY4LmMCivguK3guJnguLjguYLguJ7guJgKK+C4reC4meC4uOC4oOC4o+C4o+C4ouC4sgor4Lit4LiZ4Li44Lig4Lij4Li04Lii4LiyCivguK3guJnguLjguKDguLLguIQKK+C4reC4meC4uOC4oOC4suC4qQor4Lit4LiZ4Li44Lih4Lix4LiV4Li0CivguK3guJnguLjguKHguLLguJXguKPguLIKK+C4reC4meC4uOC4oeC4suC4mQor4Lit4LiZ4Li44Lih4Li54LilCivguK3guJnguLjguKHguLnguKXguIHguKPguJQKK+C4reC4meC4uOC5guC4oeC4l+C4meC4sgor4Lit4LiZ4Li44LmC4Lih4LiX4LiZ4Liy4Lia4Lix4LiV4LijCivguK3guJnguLjguYLguKLguIQKK+C4reC4meC4uOC4o+C4seC4geC4qS0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jAor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LiZ4Li04Lii4LihCivguK3guJnguLjguKPguLLguIoKK+C4reC4meC4uOC4o+C4suC4mAor4Lit4LiZ4Li44Lij4Liy4LiY4LiwCivguK3guJnguLjguKPguLLguJjguLIKK+C4reC4meC4uOC4o+C4ueC4mwor4Lit4LiZ4Li44LmC4Lil4LihCivguK3guJnguLjguKfguIfguKjguYwKK+C4reC4meC4uOC4p+C4seC4lQor4Lit4LiZ4Li44Lin4Liy4LiVCivguK3guJnguLjguKjguLLguKrguIEKK+C4reC4meC4uOC4qOC4suC4quC4meC5jAor4Lit4LiZ4Li44Lio4Liy4Liq4LiZ4Liy4LiI4Liy4Lij4Lii4LmMCivguK3guJnguLjguKjguLTguKnguI/guYwKK+C4reC4meC4uOC4quC4leC4tAor4Lit4LiZ4Li44Liq4LiZ4LiY4Li0CivguK3guJnguLjguKrguKDguLLguIHguLLguIrguLLguJQKK+C4reC4meC4uOC4quC4owor4Lit4LiZ4Li44Liq4Lij4LiT4LmMCivguK3guJnguLjguKrguLHguI3guI3guLIKK+C4reC4meC4uOC4quC4seC4ogor4Lit4LiZ4Li44Liq4Liy4Lin4Lij4Li14Lii4LmMCivguK3guJnguLjguKrguLLguKrguJnguLUKK+C4reC5gOC4meC4gQor4Lit4LmA4LiZ4LiBLQor4Lit4LmA4LiZ4LiB4LiE4Li44LiTCivguK3guYDguJnguIHguJvguKPguLDguKrguIfguITguYwKK+C4reC5gOC4meC4geC4p+C4tOC4mAor4Lit4LmA4LiZ4LiB4Lit4LiZ4Lix4LiZ4LiV4LmMCivguK3guYDguJnguIHguK3guJnguLHguJnguJXguLHguIcKK+C4reC5gOC4meC4iOC4reC4meC4suC4lgor4Lit4LmC4LiZ4LiK4LiyCivguK3guYLguJnguJTguLLguJUKK+C4reC4mgor4Lit4Lia4LmA4LiK4LiiCivguK3guJrguKPguKEKK+C4reC4muC4reC4p+C4pQor4Lit4Lia4Lit4LmJ4Liy4LinCivguK3guJrguK3guLjguYjguJkKK+C4reC4muC4suC4ogor4Lit4Lia4Liy4LiiLQor4Lit4Lia4Liy4Lii4Lig4Li54Lih4Li0CivguK3guJrguLLguKLguKHguLjguIIKK+C4reC4mwor4Lit4Lib4LiB4Liy4LijCivguK3guJvguIjguLLguKLguJktCivguK3guJvguIjguLLguKLguJnguJjguKPguKPguKEKK+C4reC4m+C4iOC4suC4ouC4meC4oeC4seC4ogor4Lit4Lib4Lig4Liy4LiE4Lii4LmMCivguK3guJvguKHguIfguITguKUKK+C4reC4m+C4oeC4suC4mQor4Lit4Lib4Lii4LioCivguK3guJvguKMtCivguK3guJvguKPguKDguLLguIQKK+C4reC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guJvguKPguLDguYTguKHguKIKK+C4reC4m+C4o+C4seC4k+C4k+C4iuC4suC4leC4tAor4Lit4Lib4Lij4LiyCivguK3guJvguKPguLLguIrguLHguKIKK+C4reC4m+C4o+C4suC4iuC4tOC4lQor4Lit4Lib4Lij4Liy4LiYCivguK3guJvguKPguLTguKHguLLguJMKK+C4reC4m+C4peC4seC4geC4qeC4k+C5jAor4Lit4Lib4LmC4Lil4LiB4LiZ4LmMCivguK3guJvguKfguLLguJcKK+C4reC4m+C4q+C4suC4owor4Lit4Lib4Liy4LiI4Li1CivguK3guJvguLLguIjguLXguJkKK+C4reC4m+C4suC4mQor4Lit4LmA4Lib4Lir4Li0CivguK3guJ7guJ7guLAKK+C4reC4nuC4ouC4ngor4Lit4Lig4LinCivguK3guKDguLHguJ4KK+C4reC4oOC4seC4ni0KK+C4reC4oOC4seC4nuC4muC4uOC4hOC4hOC4pQor4Lit4Lig4Lix4Lie4Lic4LilCivguK3guKDguLHguKIKK+C4reC4oOC4seC4oi0KK+C4reC4oOC4seC4ouC4l+C4suC4mQor4Lit4Lig4Lix4Lii4LmC4LiX4LipCivguK3guKDguLQKK+C4reC4oOC4tOC4huC4suC4lQor4Lit4Lig4Li04LiI4LiJ4LiyCivguK3guKDguLTguIrguIzguLIKK+C4reC4oOC4tOC4iuC4mQor4Lit4Lig4Li04LiK4LiZLQor4Lit4Lig4Li04LiK4LiZ4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguK3guKDguLTguIrguLHguKIKK+C4reC4oOC4tOC4iuC4suC4lQor4Lit4Lig4Li04LiK4Liy4LiVLQor4Lit4Lig4Li04LiK4Liy4LiV4Lia4Li44LiV4LijCivguK3guKDguLTguIrguLTguJUKK+C4reC4oOC4tOC4jeC4jeC4sgor4Lit4Lig4Li04LiN4LiN4Liy4LiTCivguK3guKDguLTguJPguKstCivguK3guKDguLTguJjguKPguKPguKEKK+C4reC4oOC4tOC4mOC4suC4mQor4Lit4Lig4Li04LmE4LiY4LiiCivguK3guKDguLTguJnguLHguJnguJfguYwKK+C4reC4oOC4tOC4meC4seC4meC4l+C4meC4suC4geC4suC4owor4Lit4Lig4Li04LiZ4Lix4LiiCivguK3guKDguLTguJnguLTguKvguLLguKMKK+C4reC4oOC4tOC5gOC4meC4qeC4geC4o+C4oeC4k+C5jAor4Lit4Lig4Li04Lia4Liy4LilCivguK3guKDguLTguJvguKPguLHguIrguI3guLIKK+C4reC4oOC4tOC4m+C4o+C4suC4ogor4Lit4Lig4Li04Lih4Lir4Liy4Lit4Liz4LiZ4Liy4LiICivguK3guKDguLTguKHguLLguJnguLAKK+C4reC4oOC4tOC4oeC4uOC4ggor4Lit4Lig4Li04Lij4LiU4Li1CivguK3guKDguLTguKPguJXguLQKK+C4reC4oOC4tOC4o+C4oeC4ouC5jAor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMCivguK3guKDguLTguKPguLHguJDguKHguJnguJXguKPguLUKK+C4reC4oOC4tOC4o+C4suC4oQor4Lit4Lig4Li04Lij4Li44LiVCivguK3guKDguLTguKPguLjguKEKK+C4reC4oOC4tOC4o+C4ueC4mwor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiVCivguK3guKDguLTguKXguLHguIHguILguLTguJUtCivguK3guKDguLTguKXguLHguIHguILguLTguJXguIHguLLguKUKK+C4reC4oOC4tOC4peC4seC4geC4guC4tOC4leC4quC4oeC4seC4ogor4Lit4Lig4Li04LmA4Lil4Lib4LiZ4LmMCivguK3guKDguLTguKfguLHguJnguJfguYwKK+C4reC4oOC4tOC4p+C4suC4lwor4Lit4Lig4Li04Lin4Liy4LiX4LiZ4LmMCivguK3guKDguLTguYDguKnguIEKK+C4reC4oOC4tOC5gOC4qeC4geC4quC4oeC4o+C4qgor4Lit4Lig4Li04Liq4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguKHguLHguKIKK+C4reC4oOC4tOC4quC4oeC4suC4iOC4suC4owor4Lit4Lig4Li04Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguLHguKHguYLguJ7guJjguLTguI3guLLguJMKK+C4reC4oOC4tOC4quC4tOC4lQor4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMCivguK3guKDguLnguJUKK+C4reC4oQor4Lit4LmJ4LihCivguK3guKHguITguKfguLLguKEKK+C4reC4oeC4lS0KK+C4reC4oeC4leC4muC4lwor4Lit4Lih4LiV4LiwCivguK3guKHguJnguLjguKnguKLguYwKK+C4reC4oeC4m+C4suC4gQor4Lit4Lih4Lie4Liw4LiZ4LizCivguK3guKHguYDguJ7guKXguLTguIcKK+C4reC4oeC4oOC4ueC4oeC4tAor4Lit4Lih4Lih4Li34LitCivguK3guKHguKLguLTguYnguKEKK+C4reC4oeC4owor4Lit4Lih4LijLQor4Lit4Lih4Lij4Lia4LiU4Li1CivguK3guKHguKPguKPguLHguJXguJnguYwKK+C4reC4oeC4o+C4o+C4suC4igor4Lit4Lih4Lij4Liq4LiV4Lij4Li1CivguK3guKHguKPguLIKK+C4reC4oeC4o+C4suC4p+C4lOC4tQor4Lit4Lih4Lij4Li04LiZ4LiX4Lij4LmMCivguK3guKHguYDguKPguJnguJfguKPguYwKK+C4reC4oeC5gOC4o+C4qAor4Lit4Lih4LmA4Lij4Lio4Lin4LijCivguK3guKHguYLguKPguIQKK+C4reC4oeC4pOC4lQor4Lit4Lih4Lik4LiVLQor4Lit4Lih4Lik4LiV4Lia4LiXCivguK3guKHguKTguJXguKLguLkKK+C4reC4oeC4pOC4leC4o+C4qgor4Lit4Lih4LmA4Lil4Li34Lit4LiU4Lit4Lih4Lid4Liy4LiUCivguK3guKHguYDguKXguLfguK3guJTguK3guKHguKvguJnguK3guIcKK+C4reC4oeC4q+C4meC4reC4hwor4Lit4Lih4Lix4LiI4LiI4LiwCivguK3guKHguLHguJXguKMKK+C4reC4oeC4suC4leC4ouC5jAor4Lit4Lih4Liy4Lin4Liq4Li1CivguK3guKHguLLguKfguKrguLgKK+C4reC4oeC4suC4p+C4suC4quC4tQor4Lit4Lih4Li04LiV4LijCivguK3guYDguKHguKPguLTguIHguLHguJkKK+C4reC4ogor4Lit4Lii4LiZCivguK3guKLguLHguKoKK+C4reC4ouC5iOC4sgor4Lit4Lii4Liy4LiBCivguK3guKLguYjguLLguIcKK+C4reC4ouC5iOC4suC4h+C5hOC4owor4Lit4Lii4LmI4Liy4LiH4LmE4Lij4LiB4LmH4LiU4Li1CivguK3guKLguYjguLLguIfguYTguKPguIHguYfguJXguLLguKEKK+C4reC4ouC4uOC4l+C4mOC5jAor4Lit4Lii4Li54LmICivguK3guKLguLnguYjguIHguKPguKPguKEKK+C4reC4ouC4ueC5iOC4geC4tOC4mQor4Lit4Lii4Li54LmI4LiE4LiHCivguK3guKLguLnguYjguIfguLLguJkKK+C4reC4ouC4ueC5iOC4iOC4o+C4tOC4hwor4Lit4Lii4Li54LmI4LiU4Li14LiB4Li04LiZ4LiU4Li1CivguK3guKLguLnguYjguJXguLHguKcKK+C4reC4ouC4ueC5iOC4l+C5ieC4reC4hwor4Lit4Lii4Li54LmI4LmE4LifCivguK3guKLguLnguYjguKHguLfguK0KK+C4reC4ouC4ueC5iOC5hOC4oeC5iOC4quC4uOC4ggor4Lit4Lii4Li54LmI4Lii4LiH4LiE4LiH4LiB4Lij4Liw4Lie4Lix4LiZCivguK3guKLguLnguYjguKLguLLguKEKK+C4reC4ouC4ueC5iOC5guC4ouC4hwor4Lit4Lii4Li54LmI4LmA4Lin4LijCivguK3guKLguLnguYjguKvguKHguLHguJQKK+C4reC4owor4Lit4Lij4LiKCivguK3guKPguIrguKMKK+C4reC4o+C4iuC4uOC4mQor4Lit4Lij4LiTCivguK3guKPguJTguLUKK+C4reC4o+C4leC4tAor4Lit4Lij4LiX4Lix4LiiCivguK3guKPguYTguJcKK+C4reC4o+C4mOC4suC4mQor4Lit4Lij4LiZ4Li44LiKCivguK3guKPguJ7guLTguJnguJfguYwKK+C4reC4o+C4nuC4tOC4oQor4Lit4Lij4Lij4LiECivguK3guKPguKPguIYKK+C4reC4o+C4o+C4huC4ouC5jAor4Lit4Lij4Lij4LiI4LiZ4LmMCivguK3guKPguKPguJPguJ4KK+C4reC4o+C4o+C4lgor4Lit4Lij4Lij4LiWLQor4Lit4Lij4Lij4LiW4LiB4LiW4LiyCivguK3guKPguKPguJbguIHguJbguLLguIjguLLguKPguKLguYwKK+C4reC4o+C4o+C4luC4geC4owor4Lit4Lij4Lij4LiW4LiB4Lin4Li1CivguK3guKPguKPguJbguITguJTguLUKK+C4reC4o+C4o+C4luC4muC4lwor4Lit4Lij4Lij4LiW4Lib4LiP4Li04Liq4Lix4Lih4Lig4Li04LiX4LiyCivguK3guKPguKPguJbguJvguKPguLDguYLguKLguIrguJnguYwKK+C4reC4o+C4o+C4luC4o+C4qgor4Lit4Lij4Lij4LiW4Liy4LiY4Li04Lia4Liy4LiiCivguK3guKPguKPguJgKK+C4reC4o+C4o+C4mC0KK+C4reC4o+C4o+C4mOC4geC4o+C4o+C4kwor4Lit4Lij4Lij4LiY4LiE4Lij4Liy4LiqCivguK3guKPguKPguJjguIjguLHguIHguKMKK+C4reC4o+C4o+C4mOC4iOC4seC4meC4l+C4o+C5jAor4Lit4Lij4Lij4LiY4LiZ4Li04Lio4LiyCivguK3guKPguKPguJjguJrguJcKK+C4reC4o+C4o+C4mOC4oOC4suC4hAor4Lit4Lij4Lij4LiY4Liq4Lij4LiwCivguK3guKPguKrguLjguKEKK+C4reC4o+C4quC4uOC4oeC4nuC4pQor4Lit4Lij4Lir4LiwCivguK3guKPguKvguLHguIcKK+C4reC4o+C4q+C4seC4lQor4Lit4Lij4Lir4Lix4LiVLQor4Lit4Lij4Lir4Lix4LiV4Lic4LilCivguK3guKPguKvguLHguJXguKHguKPguKPguIQKK+C4reC4o+C4q+C4seC4leC4p+C4tOC5guC4oeC4geC4guC5jAor4Lit4Lij4Lir4Lix4LiZCivguK3guKPguKvguLHguJnguJUtCivguK3guKPguKvguLHguJnguJXguYwKK+C4reC4o+C4q+C4seC4meC4leC4huC4suC4lQor4Lit4Lij4LmI4Lit4LiiCivguK3guKPguLHguI0KK+C4reC4o+C4seC4jS0KK+C4reC4o+C4seC4jeC4jeC4tOC4gQor4Lit4Lij4Lix4LiN4Lin4Liy4LiqCivguK3guKPguLHguI3guKfguLLguKrguLUKK+C4reC4o+C4seC4k+C4ouC5jAor4Lit4Lij4Liy4LiU4Li1CivguK3guKPguLLguJXguLQKK+C4reC4o+C5iOC4suC4oQor4Lit4Lij4Li0CivguK3guKPguLTguJkKK+C4reC4o+C4tOC4meC4l+C4o+C5jAor4Lit4Lij4Li04LiiLQor4Lit4Lij4Li04Lii4LiB4LiwCivguK3guKPguLTguKLguJfguKPguLHguJ7guKLguYwKK+C4reC4o+C4tOC4ouC4muC4uOC4hOC4hOC4pQor4Lit4Lij4Li04Lii4Lic4LilCivguK3guKPguLTguKLguKHguKPguKPguIQKK+C4reC4o+C4tOC4ouC4quC4seC4iAor4Lit4Lij4Li04Lii4LiwCivguK3guKPguLgKK+C4reC4o+C4uOC4kwor4Lit4Lij4Li44LmC4LiT4LiX4Lix4LiiCivguK3guKPguLjguYjguKEKK+C4reC4o+C4ueC4mwor4Lit4Lil4LiH4LiB4LiVCivguK3guKXguIfguIHguKPguJPguYwKK+C4reC4peC4h+C4geC4suC4owor4Lit4Lil4Lin4LiZCivguK3guKXguYDguKfguIcKK+C4reC4peC4q+C4oeC5iOC4suC4mQor4Lit4Lil4LmI4Lit4LiH4LiJ4LmI4Lit4LiHCivguK3guKXguLHguIHguYDguK3guKXguLfguYjguK0KK+C4reC4peC4seC4h+C4geC4suC4owor4Lit4Lil4Lix4LiK4LiK4Li1CivguK3guKXguYjguLLguIfguInguYjguLLguIcKK+C4reC4peC4tOC4h+C4hOC5jAor4Lit4Lil4Li24LiH4LiE4LmMCivguK3guKXguLbguYjguIfguInguLbguYjguIcKK+C4reC5guC4peC4q+C4sAor4Lit4Lin4LiBCivguK3guYnguKfguIEKK+C4reC4p+C4geC4suC4qAor4Lit4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguK3guKfguIjguKMKK+C4reC4p+C4iuC4seC4ogor4Lit4Lin4LiK4Liy4LiVCivguK3guKfguIrguLLguJUtCivguK3guKfguIrguLLguJXguJrguLjguJXguKMKK+C4reC4p+C4lAor4Lit4Lin4LiU4LiU4Li1CivguK3guKfguJTguKPguLnguYkKK+C4reC4p+C4lOC4reC5ieC4suC4hwor4Lit4Lin4LiV4Liy4LijCivguK3guKfguJkKK+C4reC5ieC4p+C4mQor4Lit4LmJ4Lin4LiZ4LiX4LmJ4Lin4LiZCivguK3guKfguJnguKXguK3guKIKK+C4reC4p+C4meC4peC4suC4gQor4Lit4Lin4LiaCivguK3guKfguJrguJnguYnguLMKK+C4reC4p+C4oeC4h+C4hOC4pQor4Lit4Lin4Lih4Lit4LizCivguK3guKfguKIKK+C4reC4p+C4ouC4p+C4sAor4Lit4Lin4Lij4Li44LiX4LiY4LmMCivguK3guKfguKPguLjguJfguJjguIEKK+C4reC4p+C4pQor4Lit4Lin4Liq4Liy4LiZCivguK3guKfguKvguLLguKMKK+C4reC4p+C4seC4ouC4p+C4sAor4Lit4Lin4Lix4Liq4LiU4LiyCivguK3guKfguLLguIjguLUKK+C4reC4p+C4tOC4iOC4tQor4Lit4Lin4Li04LiK4LiK4LiyCivguK3guKfguLTguI3guI3guLLguJPguIEtCivguK3guKfguLTguI3guI3guLLguJPguIHguJfguKPguLHguJ7guKLguYwKK+C4reC4p+C4tOC4jeC4jeC4uQor4Lit4Lin4Li04Lij4Li44LiX4LiY4LmMCivguK3guKfguLTguYLguKPguJjguJnguYwKK+C4reC4p+C4teC4iOC4tAor4Lit4LmA4Lin4LiI4Li1CivguK3guYLguKjguIEKK+C4reC4quC4h+C5hOC4guC4ogor4Lit4Liq4LiZ4Li1CivguK3guKrguJnguLXguJrguLLguJUKK+C4reC4quC4oAor4Lit4Liq4Lih4LiB4Liy4LijCivguK3guKrguKHguKHguLLguJXguKMKK+C4reC4quC4o+C4nuC4tOC4qQor4Lit4Liq4Lix4LiH4LiB4Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKrguLHguIfguKvguLLguKPguLTguKEtCivguK3guKrguLHguIfguKvguLLguKPguLTguKHguJfguKPguLHguJ7guKLguYwKK+C4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4sAor4Lit4Liq4Lix4LiNLQor4Lit4Liq4Lix4LiN4LiB4Lij4Lij4LihCivguK3guKrguLHguI3guI3guLUKK+C4reC4quC4seC4jeC4jeC4teC4oOC4suC4ngor4Lit4Liq4Lix4LiN4LiN4Li14Lig4Liy4Lin4LiwCivguK3guKrguLHguI3guI3guLXguKrguLHguJXguKfguYwKK+C4reC4quC4seC4jeC5geC4lOC4q+C4p+C4sgor4Lit4Liq4Lix4LiV4LiW4Lie4Lik4LiB4Lip4LmMCivguK3guKrguLHguJXguKLguYwKK+C4reC4quC4seC4oeC4oOC4tOC4mS0KK+C4reC4quC4seC4oeC4oOC4tOC4meC4nuC4h+C4qOC5jAor4Lit4Liq4Lix4Lih4Lig4Li04LiZ4Lin4LiH4Lio4LmMCivguK3guKrguLLguJjguKMKK+C4reC4quC4suC4mOC4uAor4Lit4Liq4Li0CivguK3guKrguLTguIjguKPguKPguKLguLLguIHguLLguKMKK+C4reC4quC4tOC4lQor4Lit4Liq4Li04LiY4Liy4Lij4LiyCivguK3guKrguLTguYDguKXguKrguLAKK+C4reC4quC4teC4leC4ouC4suC4meC4uOC4nuC4ouC4seC4jeC4iuC4meC4sAor4Lit4Liq4Li14LiV4Li0CivguK3guKrguLXguJXguLTguKHguKvguLLguKrguLLguKfguIEKK+C4reC4quC4uAor4Lit4Liq4Li44LiI4Li0CivguK3guKrguLjguJnguLXguJrguLLguJUKK+C4reC4quC4uOC4oAor4Lit4Liq4Li44LigLQor4Lit4Liq4Li44Lig4LiB4Lij4Lij4Lih4LiQ4Liy4LiZCivguK3guKrguLjguKDguKrguLHguI3guI3guLIKK+C4reC4quC4uOC4oy0KK+C4reC4quC4uOC4o+C4geC4suC4ogor4Lit4Liq4Li44Lij4Li1CivguK3guKrguLjguYDguKPguKgKK+C4reC4quC4ueC4owor4Lit4LmA4LiqCivguK3guYDguKrguIHguIItCivguK3guYDguKrguIHguILguJrguLjguITguITguKUKK+C4reC5gOC4quC4geC4guC4sAor4Lit4LmA4Liq4LiCLQor4Lit4LmA4Liq4LiC4LiwCivguK3guKsKK+C4reC4q+C4seC4h+C4geC4suC4owor4Lit4Lir4Li0CivguK3guKvguLTguIfguKrguLIKK+C4reC4q+C4tOC4p+C4suC4leC4geC5guC4o+C4hAor4Lit4Lir4Li24LiH4Liq4LiyCivguK3guYDguKvguJXguLjguIHguJfguLTguJDguLQKK+C4reC5guC4q+C4quC4tOC4geC4o+C4o+C4oQor4Lit4LitCivguK3guYnguK0KK+C4reC5i+C4rQor4Lit4Lit4LiBCivguK3guK3guIHguIHguLPguKXguLHguIcKK+C4reC4reC4geC4guC4uOC4meC4meC4suC4hwor4Lit4Lit4LiB4LmB4LiC4LiBCivguK3guK3guIHguYLguILguJkKK+C4reC4reC4geC5hOC4guC5ieC4q+C4seC4pwor4Lit4Lit4LiB4LiH4Liy4LiZCivguK3guK3guIHguIfguLTguYnguKcKK+C4reC4reC4geC4iuC4t+C5iOC4rQor4Lit4Lit4LiB4LiL4Li04LmA4LiI4LiZCivguK3guK3guIHguIvguLTguYDguJTguIrguLHguJkKK+C4reC4reC4geC5hOC4i+C4lOC5jAor4Lit4Lit4LiB4LiN4LiyCivguK3guK3guIHguJTguK3guIEKK+C4reC4reC4geC4lOC4reC4geC4reC4reC4geC4nOC4pQor4Lit4Lit4LiB4LiV4Lix4LinCivguK3guK3guIHguJfguYjguLIKK+C4reC4reC4geC4l+C5iOC4suC4reC4reC4geC4l+C4suC4hwor4Lit4Lit4LiB4LiX4Li44LiB4LiC4LmMCivguK3guK3guIHguJfguLjguJkKK+C4reC4reC4geC4meC4reC4geC4q+C4meC5ieC4sgor4Lit4Lit4LiB4Lia4Lin4LiKCivguK3guK3guIHguJvguLLguIEKK+C4reC4reC4geC4nOC4t+C5iOC4mQor4Lit4Lit4LiB4Lid4Li1CivguK3guK3guIHguJ3guLXguJTguLLguKkKK+C4reC4reC4geC4nuC4o+C4o+C4qeC4sgor4Lit4Lit4LiB4LmE4LifCivguK3guK3guIHguKDguLLguKnguLIKK+C4reC4reC4geC4oeC4q+C4suC4quC4oeC4suC4hOC4oQor4Lit4Lit4LiB4Lii4Lix4LiB4Lip4LmM4Lit4Lit4LiB4LmC4LiC4LiZCivguK3guK3guIHguKPguKoKK+C4reC4reC4geC4o+C4seC4mgor4Lit4Lit4LiB4Lij4LmJ4Liy4LiZCivguK3guK3guIHguYDguKPguLfguK3guJkKK+C4reC4reC4geC5geC4o+C4hwor4Lit4Lit4LiB4LmC4Lij4LiHCivguK3guK3guIHguKTguJfguJjguLTguYwKK+C4reC4reC4geC4peC4suC4ogor4Lit4Lit4LiB4Lil4Li04LiH4Lit4Lit4LiB4LiE4LmI4Liy4LiHCivguK3guK3guIHguKXguLnguIEKK+C4reC4reC4geC4p+C4seC4hwor4Lit4Lit4LiB4LmA4Liq4Li14Lii4LiHCivguK3guK3guIHguKvguJnguYnguLLguK3guK3guIHguJXguLIKK+C4reC4reC4geC4q+C4seC4lAor4Lit4Lit4LiB4Lir4Liy4LiBCivguK3guK3guIHguK3guLLguIHguLLguKgKK+C4reC5iOC4reC4hwor4Lit4LmL4Lit4LiHCivguK3guYnguK3guIfguYHguK3guYnguIcKK+C4reC4reC5gOC4iOC5ieC4sgor4Lit4Lit4LmA4LiL4Liy4LiwCivguK3guK3guJQKK+C4reC4reC4lOC5hgor4Lit4Lit4LiU4Lit4LmJ4Lit4LiZCivguK3guK3guJTguYHguK3guJQKK+C4reC4reC4lOC5hiDguYHguK3guJTguYYKK+C4reC5iuC4reC4lOC5geC4reC5iuC4lAor4Lit4LmK4Lit4LiU4LmGIOC5geC4reC5iuC4lOC5hgor4Lit4LmJ4Lit4LiU4Li04LiaCivguK3guYjguK3guJkKK+C4reC5ieC4reC4mQor4Lit4LmI4Lit4LiZ4LiC4LmJ4LitCivguK3guYjguK3guJnguITguKfguLLguKEKK+C4reC5iOC4reC4meC4iOC4tOC4leC4reC5iOC4reC4meC5g+C4iAor4Lit4LmI4Lit4LiZ4LmD4LiICivguK3guYjguK3guJnguIrguYnguK3guKIKK+C4reC4reC4meC4i+C5jAor4Lit4Lit4LiZ4LiL4Lit4LiZCivguK3guYjguK3guJnguIvguK3guJkKK+C4reC5iOC4reC4meC5hOC4l+C5iQor4Lit4LmI4Lit4LiZ4LiZ4LmJ4Lit4LihCivguK3guYjguK3guJnguJvguKfguIHguYDguJvguLXguKLguIEKK+C4reC5iOC4reC4meC5gOC4m+C4peC4teC5ieC4ogor4Lit4LmI4Lit4LiZ4LmA4Lib4Li14Lii4LiBCivguK3guYjguK3guJnguYDguJ7guKXguLXguKIKK+C4reC5iOC4reC4meC5guC4ouC4mQor4Lit4LmJ4Lit4LiZ4Lin4Lit4LiZCivguK3guYjguK3guJnguKvguKfguLLguJkKK+C4reC5iOC4reC4meC4q+C4seC4lAor4Lit4LmI4Lit4LiZ4Lir4Li5CivguK3guYjguK3guJnguYTguKvguKcKK+C4reC5iOC4reC4meC4reC4geC4reC5iOC4reC4meC5g+C4iAor4Lit4LmJ4Lit4LiZ4Lit4Lit4LiUCivguK3guYjguK3guJnguYHguK0KK+C4reC5ieC4reC4meC5geC4reC5ieC4mQor4Lit4Lit4Lif4Lif4Li04LioCivguK3guK3guKEKK+C4reC5iOC4reC4oQor4Lit4LmJ4Lit4LihCivguK3guK3guKHguITguKPguK3guKEKK+C4reC5ieC4reC4oeC4hOC5ieC4reC4oQor4Lit4Lit4Lih4LiK4Lit4LihCivguK3guK3guKHguIvguK3guKEKK+C4reC4reC4oeC4quC4tOC4mQor4Lit4LmJ4Lit4Lih4Lit4LiBCivguK3guK3guKHguK3guJQKK+C4reC5ieC4reC4oeC5geC4reC5ieC4oQor4Lit4LmI4Lit4LiiCivguK3guYnguK3guKIKK+C4reC5i+C4reC4ogor4Lit4LmJ4Lit4Lii4LmA4LiC4LmJ4Liy4Lib4Liy4LiB4LiK4LmJ4Liy4LiHCivguK3guYnguK3guKLguIrguYnguLLguIcKK+C4reC5ieC4reC4ouC5geC4lOC4hwor4Lit4LmJ4Lit4Lii4LmA4Lil4LiyCivguK3guYnguK3guKLguKrguYnguK3guKIKK+C4reC5ieC4reC4ouC4reC4tOC5iOC4hwor4Lit4Lit4Liq4LmA4Lih4Li14Lii4LihCivguK3guYnguK3guYHguK3guYkKK+C4reC5iuC4sAor4Lit4Liw4LiE4Lij4LmJ4Liy4LinCivguK3guLDguYDguITguLfguYnguK0KK+C4reC4sOC4iOC4teC4mQor4Lit4Liw4LmB4LiICivguK3guLDguYDguIvguJfguLTguKXguLXguJkKK+C4reC4sOC4lOC4o+C4teC4meC4suC4peC4teC4mQor4Lit4Liw4LiU4Lix4LiBCivguK3guLDguJTguLHguIHguK3guLDguYDguJTguLXguYnguKIKK+C4reC4sOC4lOC4seC4geC4reC4sOC5gOC4lOC4t+C5iOC4rQor4Lit4Liw4LiU4Lix4LiB4Lit4Liw4LmB4LiU4LmJCivguK3guLDguJTguLjguIcKK+C4reC4sOC4leC4reC4oQor4Lit4Liw4LiZ4LiwCivguK3guLDguJnguLHguYnguJkKK+C4reC4sOC4meC4teC5iQor4Lit4Liw4Lih4Li14Lia4LiyCivguK3guLDguYDguKHguKPguLTguYDguIvguLXguKLguKEKK+C4reC4sOC4o+C5ieC4suC4reC4o+C5iOC4suC4oQor4Lit4Liw4LmE4LijCivguK3guLDguKXguLjguYjguKHguK3guKXguYjguKfguKIKK+C4reC4sOC4peC4uOC5ieC4oeC4reC4peC5iOC4p+C4ogor4Lit4Liw4Lil4Li54Lih4Li04LmA4LiZ4Li14Lii4LihCivguK3guLDguKvguKEKK+C4reC4sOC5hOC4q+C4peC5iAor4Lit4Liw4Lit4Li34LmJ4LitCivguK3guLDguYDguK3guLfguYnguK3guKIKK+C4reC4seC4gQor4Lit4Lix4LmJ4LiBCivguK3guLHguYnguIHguYYKK+C4reC4seC5iuC4gQor4Lit4Lix4LmK4LiB4LmGCivguK3guLHguIHguIHguLAKK+C4reC4seC4geC5guC4geC4mOC4sAor4Lit4Lix4LiB4LiCCivguK3guLHguIHguILguKMtCivguK3guLHguIHguILguKPguKfguLTguJjguLUKK+C4reC4seC4geC4guC4o+C4p+C4tOC4muC4seC4leC4tAor4Lit4Lix4LiB4LiC4Lij4Liq4Lih4Lix4LiiCivguK3guLHguIHguILguKPguLAKK+C4reC4seC4geC4guC4o+C4suC4meC4uOC4geC4o+C4oQor4Lit4Lix4LiB4LiC4Lij4Liy4LiZ4Li44LiB4Lij4Lih4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLHguIHguYLguIIKK+C4reC4seC4geC5guC4guC4oOC4tOC4k+C4tQor4Lit4Lix4LiB4LmC4LiC4LmA4Lig4LiT4Li1CivguK3guLHguIHguKnguKMKK+C4reC4seC4geC4qeC4oy0KK+C4reC4seC4geC4qeC4o+C4geC4peC4suC4hwor4Lit4Lix4LiB4Lip4Lij4LiV4LmI4LizCivguK3guLHguIHguKnguKPguJrguI8KK+C4reC4seC4geC4qeC4o+C4peC4seC4geC4qeC4k+C5jAor4Lit4Lix4LiB4Lip4Lij4LmA4Lil4LiCCivguK3guLHguIHguKnguKPguKjguLLguKrguJXguKPguYwKK+C4reC4seC4geC4qeC4o+C4quC4oeC4seC4ogor4Lit4Lix4LiB4Lip4Lij4Liq4Liy4Liq4LiZ4LmMCivguK3guLHguIHguKnguKPguKrguLnguIcKK+C4reC4seC4geC4qeC4sAor4Lit4Lix4LiB4LmA4Lip4Liy4Lir4Li04LiT4Li1CivguK3guLHguIHguYDguKrguJoKK+C4reC4seC4geC4reC5iOC4p+C4mQor4Lit4Lix4LiE4LiE4LiwCivguK3guLHguITguITguLQKK+C4reC4seC4hOC4hOC4tQor4Lit4Lix4LiE4LiE4Li14Lig4Lix4LiiCivguK3guLHguITguJnguLQKK+C4reC4seC4hOC4meC4tOC4hOC4k+C4sAor4Lit4Lix4LiE4LiZ4Li04Lie4LmI4Liy4Lir4LmMCivguK3guLHguITguJnguLTguKPguLjguJfguKMKK+C4reC4seC4hOC4meC4tOC4p+C4suC4q+C4sAor4Lit4Lix4LiE4LiZ4Li04LmC4Lir4LiV4LijCivguK3guLHguITguJnguLUKK+C4reC4seC4hOC4oy0KK+C4reC4seC4hOC4o+C4iuC4suC4ouC4sgor4Lit4Lix4LiE4Lij4Lih4Lir4Liy4LmA4Liq4LiZ4Liy4Lia4LiU4Li1CivguK3guLHguITguKPguKHguYDguKvguKrguLUKK+C4reC4seC4hOC4o+C4o+C4suC4iuC4l+C4ueC4lQor4Lit4Lix4LiE4Lij4Liq4Lih4LiT4LiX4Li54LiVCivguK3guLHguIcKK+C4reC4seC4h+C4geC5jAor4Lit4Lix4LiH4LiB4LiZ4LiwCivguK3guLHguIfguIHguKTguKkKK+C4reC4seC4h+C4geC4p+C4lAor4Lit4Lix4LiH4LiB4Liw4Lil4Li44LiHCivguK3guLHguIfguIHguLIKK+C4reC4seC4h+C4geC4suC4mgor4Lit4Lix4LiH4LiB4Liy4Lia4Lid4Lij4Lix4LmI4LiHCivguK3guLHguIfguIHguLLguJrguKvguJnguLkKK+C4reC4seC4h+C4geC4uOC4owor4Lit4Lix4LiH4LiB4Li44LioCivguK3guLHguIfguIHguLnguKMKK+C4reC4seC4h+C4hOC4k+C4sAor4Lit4Lix4LiH4LiE4LiT4LiyCivguK3guLHguIfguITguLLguKMKK+C4reC4seC4h+C4hOC4suC4qgor4Lit4Lix4LiH4LiE4Li14Lij4LiqCivguK3guLHguIfguITguLjguJAKK+C4reC4seC4h+C4huC4suC4lQor4Lit4Lix4LmJ4LiH4Lii4Li14LmICivguK3guLHguYnguIfguYLguKXguYgKK+C4reC4seC4h+C4qOC4uAor4Lit4Lix4LiH4Lio4Li44LiBCivguK3guLHguIfguKjguLjguJjguKMKK+C4reC4seC4h+C4qOC4uOC4oeC4suC4peC4tQor4Lit4Lix4LiH4LiqLQor4Lit4Lix4LiH4Liq4LiB4Li44LiPCivguK3guLHguIfguKrguJXguKPguK3guKEKK+C4reC4seC4h+C4quC4meC4sgor4Lit4Lix4LiH4Liq4Lig4Liy4Lij4LiwCivguK3guLHguIfguKrguLAKK+C4reC4seC4h+C4quC4sgor4Lit4Lix4LiI4LiB4Lil4Lix4LiaCivguK3guLHguIjguIjguLHguJnguJXguYwKK+C4reC4seC4iOC4iOC4seC4ogor4Lit4Lix4LiI4LiI4Li0CivguK3guLHguIjguIjguLTguKHguLIKK+C4reC4seC4iOC4iOC4uOC4lQor4Lit4Lix4LiI4LmA4LiI4LiB4LiwCivguK3guLHguIjguInguKPguLIKK+C4reC4seC4iOC4ieC4o+C4tOC4oi0KK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4muC4uOC4hOC4hOC4pQor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lig4Liy4LieCivguK3guLHguIjguInguKPguLTguKLguKXguLHguIHguKnguJPguYwKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4peC4seC4geC4qeC4k+C4sAor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguK3guLHguIjguJnguLIKK+C4reC4seC4iuC4jOC4seC4leC4leC4tOC4gS0KK+C4reC4seC4iuC4jOC4sgor4Lit4Lix4LiK4LiM4Liy4LiI4Liy4LijCivguK3guLHguIrguIzguLLguKjguLHguKIKK+C4reC4seC4iuC4jOC4suC4quC4seC4ogor4Lit4Lix4LiNLQor4Lit4Lix4LiN4LiC4Lii4LihCivguK3guLHguI3guIrguJnguLAKK+C4reC4seC4jeC4iuC4peC4tQor4Lit4Lix4LiN4LiK4Lix4LiZCivguK3guLHguI3guIrguLHguJnguJvguYjguLIKK+C4reC4seC4jeC5gOC4iuC4tOC4jQor4Lit4Lix4LiN4LiN4LiwCivguK3guLHguI3guJTguLTguJXguJbguLXguKLguYwKK+C4reC4seC4jeC5gOC4lOC4teC4ouC4o+C4luC4teC4ouC5jAor4Lit4Lix4LiN4Lib4Lij4Liw4LiB4Liy4LioCivguK3guLHguI3guJvguKPguLDguIHguLLguKjguYDguJTguLXguYjguKLguKcKK+C4reC4seC4jeC4oeC4k+C4tQor4Lit4Lix4LiN4Lih4Lix4LiNLQor4Lit4Lix4LiN4Lij4Li54LibCivguK3guLHguI8KK+C4reC4seC4j+C4kC0KK+C4reC4seC4j+C4kOC4sAor4Lit4Lix4LiP4LiQ4Lix4LiH4LiE4LmMCivguK3guLHguI/guJDguLHguIfguITguLTguIHguKHguKPguKPguIQKK+C4reC4seC4j+C4kOC4seC4h+C4quC4sAor4Lit4Lix4LiP4LiZ4LiyCivguK3guLHguJAKK+C4reC4seC4kOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lit4Lix4LiQ4LiX4Li04LioCivguK3guLHguJDguJrguKPguLTguILguLLguKMKK+C4reC4seC4kOC4muC4suC4mQor4Lit4Lix4LiQ4LihLQor4Lit4Lix4LiQ4Lih4LiwCivguK3guLHguJDguKLguLLguKLguIvguLfguYnguK3guILguJnguKHguKLguLLguKIKK+C4reC4seC4kOC4qOC4gQor4Lit4Lix4LiQ4Lis4LiqCivguK3guLHguJDguLQKK+C4reC4seC4kOC4tOC4oeC4tOC4jeC4iuC4sAor4Lit4Lix4LiQ4Li04Liq4Lix4LiT4LiQ4Liy4LiZCivguK3guLHguJItCivguK3guLHguJLguIjguLHguJnguJfguKPguYwKK+C4reC4seC4kuC4oOC4suC4hAor4Lit4Lix4LiS4Lih4LiT4LiR4LilCivguK3guLHguJLguKHguLLguKoKK+C4reC4seC4kuC4o+C4seC4leC4leC4tAor4Lit4Lix4LiT4LiRLQor4Lit4Lix4LiT4LiR4LmC4LiB4LiqCivguK3guLHguJPguJHguIrguLAKK+C4reC4seC4k+C4keC4sAor4Lit4Lix4LiT4LiR4Liy4LiB4Liy4LijCivguK3guLHguJPguJPguJ4KK+C4reC4seC4lAor4Lit4Lix4LiU4LiB4LmK4Lit4Lia4Lib4Li14LmJCivguK3guLHguJTguYHguIgKK+C4reC4seC4lOC4ieC4teC4lAor4Lit4Lix4LiU4LmB4Lia4LiV4LmA4LiV4Lit4Lij4Li14LmICivguK3guLHguJTguYHguJzguYjguJnguYDguKrguLXguKLguIcKK+C4reC4seC4lOC4o+C4ueC4mwor4Lit4Lix4LiU4Lil4LihCivguK3guLHguJTguKrguLPguYDguJnguLIKK+C4reC4seC4lOC5gOC4quC4teC4ouC4hwor4Lit4Lix4LiU4Lit4Lix4LmJ4LiZCivguK3guLHguJTguK3guLHguYnguJnguJXguLHguJnguYPguIgKK+C4reC4seC4lOC5geC4rQor4Lit4Lix4LiVLQor4Lit4Lix4LiV4LiE4Lix4LiUCivguK3guLHguJXguIrguLXguKfguJvguKPguLDguKfguLHguJXguLQKK+C4reC4seC4leC4leC4sAor4Lit4Lix4LiV4LiV4LiyCivguK3guLHguJXguJXguLLguJjguLTguJvguYTguJXguKIKK+C4reC4seC4leC4luC5jAor4Lit4Lix4LiV4LiW4LiwCivguK3guLHguJXguJnguLHguKIKK+C4reC4seC4leC5guC4meC4oeC4seC4leC4tAor4Lit4Lix4LiV4Lig4Liy4LieCivguK3guLHguJXguKPguIrguLAKK+C4reC4seC4leC4o+C4sgor4Lit4Lix4LiV4Lij4Liy4LmA4Lij4LmH4LinCivguK3guLHguJXguKPguLLguKrguYjguKfguJkKK+C4reC4seC4leC4peC4seC4lAor4Lit4Lix4LiV4Lin4Li04LiZ4Li04Lia4Liy4LiV4LiB4Lij4Lij4LihCivguK3guLHguJXguKvguLTguJUtCivguK3guLHguJXguYDguKvguJXguLgKK+C4reC4seC4l+C4l+C4sgor4Lit4Lix4LiX4LiYLQor4Lit4Lix4LiX4LiY4LmMCivguK3guLHguJfguJjguITguJUKK+C4reC4seC4l+C4mOC4hOC4uQor4Lit4Lix4LiX4LiY4LiyCivguK3guLHguJfguJjguLLguJkKK+C4reC4seC4l+C4mOC4suC4ouC4uAor4Lit4Lix4LiY4Lii4Liy4LiV4Lih4Lin4Li04LiX4Lii4LiyCivguK3guLHguJjguKLguLLguKIKK+C4reC4seC4mOC4ouC4suC4qOC4seC4ogor4Lit4Lix4LiZCivguK3guLHguYnguJkKK+C4reC4seC5i+C4mQor4Lit4Lix4LiZ4LiU4LiBCivguK3guLHguJnguJTguKMKK+C4reC4seC4meC4lOC4seC4mgor4Lit4Lix4LiZ4LiU4LmK4Liy4LiBCivguK3guLHguJnguYLguJTguYrguIEKK+C4reC4seC4meC4lS0KK+C4reC4seC4meC4leC4gQor4Lit4Lix4LiZ4LiV4LiB4Liy4LilCivguK3guLHguJnguJXguIHguLTguKPguLTguKLguLIKK+C4reC4seC4meC4leC4hOC4uOC4kwor4Lit4Lix4LiZ4LiV4LiE4Li5CivguK3guLHguJnguJXguIrguLLguJXguLQKK+C4reC4seC4meC4leC4owor4Lit4Lix4LiZ4LiV4LijLQor4Lit4Lix4LiZ4LiV4Lij4LiB4Liy4Lij4LiT4LmMCivguK3guLHguJnguJXguKPguJjguLLguJkKK+C4reC4seC4meC4leC4o+C4oOC4suC4hAor4Lit4Lix4LiZ4LiV4Lij4Lin4Liy4Liq4LiBCivguK3guLHguJnguJXguKPguLIKK+C4reC4seC4meC4leC4o+C4suC4ogor4Lit4Lix4LiZ4LiV4Lij4Liy4Lii4Li04LiB4LiY4Lij4Lij4LihCivguK3guLHguJnguJXguKXguLTguIHguILguLAKK+C4reC4seC4meC4leC4sAor4Lit4Lix4LmJ4LiZ4LiV4Lix4LmJ4LiZCivguK3guLHguJnguJXguLTguIEKK+C4reC4seC4meC4leC4tOC4oS0KK+C4reC4seC4meC4leC4tOC4oeC4quC4seC4iAor4Lit4Lix4LiZ4LiV4Li04Lih4LiwCivguK3guLHguYnguJnguJXguLnguYkKK+C4reC4seC4meC5gOC4lQor4Lit4Lix4LiZ4LmA4LiV4Lia4Li44Lij4LiwCivguK3guLHguJnguYDguJXguJrguLjguKPguLTguIEKK+C4reC4seC4meC5gOC4leC4muC4uOC4o+C4tOC4geC4sgor4Lit4Lix4LiZ4LmA4LiV4Lib4Li44Lij4LiwCivguK3guLHguJnguYDguJXguJvguLjguKPguLTguIEKK+C4reC4seC4meC5gOC4leC4m+C4uOC4o+C4tOC4geC4sgor4Lit4Lix4LiZ4LmA4LiV4Lin4Liy4Liq4Li04LiBCivguK3guLHguJnguYLguJUKK+C4reC4seC4meC5guC4leC4iuC4mQor4Lit4Lix4LiZ4LmC4LiV4LiZ4Liy4LiX4Li1CivguK3guLHguJnguYHguJbguYnguIcKK+C4reC4seC4meC4l+C4uAor4Lit4Lix4LiZ4LmC4LiX4LilCivguK3guLHguJnguJgtCivguK3guLHguJnguJjguIHguLLguKMKK+C4reC4seC4meC4mOC4nuC4suC4pQor4Lit4Lix4LiZ4LiY4Li04LiB4LiyCivguK3guLHguJnguJnguLAKK+C4reC4seC4meC4meC4sgor4Lit4Lix4LiZ4LmA4Lib4LmH4LiZCivguK3guLHguJnguYDguJvguYfguJnguYTguJsKK+C4reC4seC4meC5guC4ouC4meC4oi0KK+C4reC4seC4meC5guC4ouC4meC4ouC4sAor4Lit4Lix4LiZ4Lin4LiiLQor4Lit4Lix4LiZ4Lin4Lix4LiiCivguK3guLHguJnguKfguYjguLIKK+C4reC4seC4meC5gOC4p+C4qgor4Lit4Lix4LmJ4LiZ4Lit4LmJ4LiZCivguK3guLHguJoKK+C4reC4seC4muC4iOC4mQor4Lit4Lix4Lia4LmA4LiJ4LiyCivguK3guLHguJrguJvguLLguIcKK+C4reC4seC4muC4reC4suC4ogor4Lit4Lix4LibLQor4Lit4Lix4Lib4LiB4LiwCivguK3guLHguJvguIHguLLguKMKK+C4reC4seC4m+C4j+C4tOC4huC4sAor4Lit4Lix4Lib4LiP4Li04Lig4Liy4LiECivguK3guLHguJvguJvguLAKK+C4reC4seC4m+C5gOC4m+C4q+C4tAor4Lit4Lix4Lib4Lig4Liy4LiE4Lii4LmMCivguK3guLHguJvguKHguIfguITguKUKK+C4reC4seC4m+C4ouC4qAor4Lit4Lix4Lib4Lij4Liw4Lih4Liy4LiTCivguK3guLHguJvguKPguLDguKHguLLguJcKK+C4reC4seC4m+C4o+C4sOC5hOC4oeC4ogor4Lit4Lix4Lib4Lij4Liy4LiK4Lix4LiiCivguK3guLHguJvguKPguLXguKLguYwKK+C4reC4seC4m+C4peC4seC4geC4qeC4k+C5jAor4Lit4Lix4Lib4Liq4LijCivguK3guLHguJ7guJ7guLjguJcKK+C4reC4seC4nuC5guC4nuC4q+C4suC4o+C4tOC4gQor4Lit4Lix4Lie4Lig4Lix4LiZ4LiU4LijCivguK3guLHguJ7guKDguLHguJnguJXguKMtCivguK3guLHguJ7guKDguLLguJkKK+C4reC4seC4nuC4oOC4suC4qgor4Lit4Lix4LihCivguK3guLHguKHguJ4tCivguK3guLHguKHguJ7guKMKK+C4reC4seC4oeC4nuC4pOC4geC4qeC5jAor4Lit4Lix4Lih4Lie4Lin4Lix4LiZCivguK3guLHguKHguJ7guKfguLIKK+C4reC4seC4oeC4nuC4sgor4Lit4Lix4Lih4Lie4Liy4LiVCivguK3guLHguKHguJ7guLTguKUKK+C4reC4seC4oeC4nuC4uAor4Lit4Lix4Lih4Lie4Li44LiKCivguK3guLHguKHguJ7guLjguIrguLTguJnguLUKK+C4reC4seC4oeC4nuC4uOC4lwor4Lit4Lix4Lii4LiB4LiwCivguK3guLHguKLguIHguLIKK+C4reC4seC4ouC4geC4suC4owor4Lit4Lix4Lii4LiB4Li1CivguK3guLHguKLguKLguLAKK+C4reC4seC4ouC4ouC4tOC4geC4sgor4Lit4Lix4Lil4LiB4Li44Lij4Lit4Liy4LiZCivguK3guLHguKXguJXguKPguLLguYTguKfguYLguK3guYDguKXguJUKK+C4reC4seC5iOC4pwor4Lit4Lix4Lio4LiI4Lij4Lij4Lii4LmMCivguK3guLHguKjguYDguIjguKPguLXguKLguYwKK+C4reC4seC4qOC4py0KK+C4reC4seC4qOC4p+C5guC4geC4p+C4tOC4lwor4Lit4Lix4Lio4Lin4Lih4Li44LiCCivguK3guLHguKjguKfguKHguLjguILguLUKK+C4reC4seC4qOC4p+C5gOC4oeC4mAor4Lit4Lix4Lio4Lin4Lii4Li44LiKCivguK3guLHguKjguKfguLLguJnguLbguIEKK+C4reC4seC4qOC4p+C4tOC4mQor4Lit4Lix4Lio4Lin4Li04LiZ4Li1CivguK3guLHguKnguI4tCivguK3guLHguKnguI7guIHguInguLHguJnguJfguYwKK+C4reC4seC4qeC4juC4oeC4h+C4hOC4pQor4Lit4Lix4Lip4LiO4Lih4LiwCivguK3guLHguKnguI7guLLguIfguITguLTguIHguKHguKPguKPguIQKK+C4reC4seC4qeC4juC4suC4ouC4uOC4mAor4Lit4Lix4Lip4LiO4Liy4Lin4Li44LiYCivguK3guLHguKnguI/guKHguIfguITguKUKK+C4reC4seC4qi0KK+C4reC4seC4quC4lOC4hwor4Lit4Lix4Liq4LiU4LiH4LiE4LiVCivguK3guLHguKrguJTguKEKK+C4reC4seC4quC4lOC4owor4Lit4Lix4Liq4LiZ4Li1CivguK3guLHguKrguKHguLTguKHguLLguJnguLAKK+C4reC4seC4quC4oeC4uOC4guC4tQor4Lit4Lix4Liq4Liq4LiZ4Li1CivguK3guLHguKrguKrguLAKK+C4reC4seC4quC4quC4seC4leC4luC4nuC4pOC4geC4qeC5jAor4Lit4Lix4Liq4Liq4Liy4LiZ4Li04LiBCivguK3guLHguKrguKrguLLguJnguLXguIEKK+C4reC4seC4quC4quC4suC4meC4tuC4gQor4Lit4Lix4Liq4Liq4Liy4Liq4LiwCivguK3guLHguKrguKrguLgKK+C4reC4seC4quC4quC4uOC4iuC4pQor4Lit4Lix4Liq4Liq4Li44LiY4Liy4Lij4LiyCivguK3guLIKK+C4reC5iOC4sgor4Lit4LmJ4LiyCivguK3guLLguIHguKMKK+C4reC4suC4geC4o+C5geC4quC4leC4oeC4m+C5jAor4Lit4Liy4LiB4Lix4LiH4LiC4LiyCivguK3guLLguIHguLHguJsKK+C4reC4suC4geC4seC4m+C4geC4tOC4o+C4tOC4ouC4sgor4Lit4Liy4LiB4Lix4Lih4Lib4LiZ4LiwCivguK3guLLguIHguLHguKHguJvguLAKK+C4reC4suC4geC4suC4owor4Lit4Liy4LiB4Liy4LijLQor4Lit4Liy4LiB4Liy4Lij4LiZ4Liy4LihCivguK3guLLguIHguLLguKgKK+C4reC4suC4geC4suC4qC0KK+C4reC4suC4geC4suC4qOC4mOC4suC4leC4uAor4Lit4Liy4LiB4Liy4Lio4Lii4Liy4LiZCivguK3guLLguIHguLnguKUKK+C4reC4suC5gOC4geC4teC4ouC4o+C4k+C5jAor4Lit4Liy4LiC4Lii4Liy4LiVCivguK3guLLguILguKLguLLguJkKK+C4reC4suC4hOC5gOC4meC4ouC5jAor4Lit4Liy4LiE4LihCivguK3guLLguITguKPguKvguLLguKLguJPguLUKK+C4reC4suC4hOC4seC4meC4leC4uOC4gS0KK+C4reC4suC4hOC4seC4meC4leC4uOC4geC4oOC4seC4lQor4Lit4Liy4LiE4Lix4LiZ4LiV4Li44LiB4Lin4Lix4LiV4LijCivguK3guLLguITguLHguJnguJXguLjguIHguLAKK+C4reC4suC4hOC4suC4owor4Lit4Liy4LiE4Liy4Lij4LiK4Li44LiUCivguK3guLLguIbguLLguJUKK+C4reC4suC4huC4suC4leC4meC4sAor4Lit4Liy4LiG4Liy4LiV4Lih4Liy4LiU4Lij4LmJ4Liy4LiiCivguK3guYjguLLguIcKK+C4reC5ieC4suC4hwor4Lit4LmI4Liy4LiH4LmA4LiB4LmH4Lia4LiZ4LmJ4LizCivguK3guLLguIfguILguJnguLLguIcKK+C4reC5ieC4suC4h+C4p+C5ieC4suC4hwor4Lit4LmJ4Liy4LiH4Lit4Li04LiHCivguK3guLLguIgKK+C4reC4suC4iOC4oQor4Lit4Liy4LiI4Lih4LiZCivguK3guLLguIjguKPguLTguKItCivguK3guLLguIjguKPguLTguKLguKfguLHguJXguKMKK+C4reC4suC4iOC4o+C4tOC4ouC4p+C4suC4lwor4Lit4Liy4LiI4Lir4Liy4LiNCivguK3guLLguIjguK3guIcKK+C4reC4suC4iOC5gOC4reC4t+C5ieC4reC4oQor4Lit4Liy4LiI4Liy4LiUCivguK3guLLguIjguLLguKMKK+C4reC4suC4iOC4suC4oy0KK+C4reC4suC4iOC4suC4o+C4ouC5jAor4Lit4Liy4LiI4Liy4Lij4Li1CivguK3guLLguIjguLTguJMKK+C4reC4suC4iOC4tOC4ky0KK+C4reC4suC4iOC4tOC4k+C4quC4oeC4suC4iOC4suC4owor4Lit4Liy4LmA4LiI4Li14Lii4LiZCivguK3guLLguIrguI3guLHguJvguJXguLQKK+C4reC4suC4iuC4jeC4seC4m+C4leC4tOC5jAor4Lit4Liy4LiK4LiN4LiyCivguK3guLLguIrguI3guLLguIHguKMKK+C4reC4suC4iuC4jeC4suC4geC4o+C4o+C4oQor4Lit4Liy4LiK4LiN4Liy4LiB4Lij4Liq4LiH4LiE4Lij4Liy4LihCivguK3guLLguIrguI3guLLguJrguJcKK+C4reC4suC4iuC4jeC4suC4muC4seC4leC4owor4Lit4Liy4LiK4LiN4Liy4Lio4Li24LiBCivguK3guLLguIrguI3guLLguKrguLTguJfguJjguLTguYwKK+C4reC4suC4iuC4p+C4sAor4Lit4Liy4LiK4LiyCivguK3guLLguIrguLLguJkKK+C4reC4suC4iuC4suC4meC4tAor4Lit4Liy4LiK4Liy4LmE4LiZ4LiiCivguK3guLLguIrguLXguJ4KK+C4reC4suC4iuC4teC4py0KK+C4reC4suC4iuC4teC4p+C4gQor4Lit4Liy4LiK4Li14Lin4Lio4Li24LiB4Lip4LiyCivguK3guLLguIrguLXguKfguLAKK+C4reC5ieC4suC4i+C5iOC4sgor4Lit4Liy4LiN4LiyCivguK3guLLguI3guLLguKrguLTguJfguJjguLTguYwKK+C4reC4suC4j+C4suC4meC4sgor4Lit4Liy4LiT4Lix4LiV4Li0CivguK3guLLguJPguLHguJXguLTguKrguLHguI3guI3guLLguJMKK+C4reC4suC4k+C4sgor4Lit4Liy4LiT4Liy4LmA4LiB4Lip4LiV4LijCivguK3guLLguJPguLLguYDguILguJUKK+C4reC4suC4k+C4suC4iOC4seC4geC4owor4Lit4Liy4LiT4Liy4LiZ4Li04LiE4LihCivguK3guLLguJPguLLguJvguKPguLDguIrguLLguKPguLLguKnguI7guKPguYwKK+C4reC4suC4k+C4suC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lit4Liy4LiUCivguK3guLLguJTguYYKK+C4reC4suC4lOC4uOC4owor4Lit4Liy4LiU4Li44Lil4Lii4LmMCivguK3guLLguJTguLnguKMKK+C4reC4suC4lOC4ueC4peC4ouC5jAor4Lit4Liy4LmA4LiU4LmK4LiwCivguK3guLLguJXguKEtCivguK3guLLguJXguKHguJfguLLguJkKK+C4reC4suC4leC4oeC4oOC4suC4ngor4Lit4Liy4LiV4Lih4Lix4LiZCivguK3guLLguJXguKHguLIKK+C4reC4suC4leC4uOC4owor4Lit4Liy4LiW4Lij4Lij4Lie4LmMCivguK3guLLguJbguKPguKPguJ7guJPguYwKK+C4reC4suC4luC4o+C4o+C4nuC4k+C4sAor4Lit4Liy4LiX4LijCivguK3guLLguJfguLLguJXguLIKK+C4reC4suC4l+C4suC4mQor4Lit4Liy4LiX4Li0CivguK3guLLguJfguLTguJXguKItCivguK3guLLguJfguLTguJXguKLguYwKK+C4reC4suC4l+C4tOC4leC4ouC4oeC4k+C4keC4pQor4Lit4Liy4LiX4Li04LiV4Lii4Lin4Liy4LijCivguK3guLLguJfguLXguJnguJ4KK+C4reC4suC4l+C4teC4meC4pwor4Lit4Liy4LiX4Li24LiBCivguK3guLLguYDguJfguKgKK+C4reC4suC4mOC4o+C4o+C4oQor4Lit4Liy4LiY4Lij4Lij4Lih4LmMCivguK3guLLguJjguKPguKPguKHguLTguIEKK+C4reC4suC4mOC4o+C4o+C4oeC4tuC4gQor4Lit4Liy4LiY4Liy4LiZCivguK3guLLguJjguLLguKMKK+C4reC4suC4mQor4Lit4LmI4Liy4LiZCivguK3guLLguJnguIEKK+C4reC4suC4meC4mQor4Lit4Liy4LiZ4LiZ4LiX4LmMCivguK3guLLguJnguKHguYnguLIKK+C4reC5iOC4suC4meC5gOC4peC5iOC4mQor4Lit4Liy4LiZ4LiwCivguK3guLLguJnguLHguJnguJfguYwKK+C4reC4suC4meC4seC4meC4l+C4meC4sAor4Lit4Liy4LiZ4Lix4LihCivguK3guLLguJnguLLguJvguLLguJkKK+C4reC4suC4meC4suC4m+C4suC4mS0KK+C4reC4suC4meC4suC4m+C4suC4meC4seC4quC4quC4leC4tAor4Lit4Liy4LiZ4LizCivguK3guLLguJnguLTguIEKK+C4reC4suC4meC4tOC4quC4h+C4quC5jAor4Lit4Liy4LiZ4Li44Lig4Liy4LieCivguK3guLLguJnguLjguKDguLLguKfguLAKK+C4reC4suC4mgor4Lit4Liy4Lia4LmB4LiU4LiUCivguK3guLLguJrguJnguYnguLPguKPguYnguK3guJnguKHguLLguIHguYjguK3guJkKK+C4reC4suC4muC5gOC4q+C4h+C4t+C5iOC4reC4leC5iOC4suC4h+C4meC5ieC4swor4Lit4Liy4Lia4LmA4Lit4Li04LiaCivguK3guLLguJrguLHguJXguLQKK+C4reC4suC4muC4seC4mQor4Lit4Liy4Lib4LiT4LiB4LiwCivguK3guLLguJvguJPguLAKK+C4reC4suC4m+C4sAor4Lit4Liy4Lib4Liy4LiZLQor4Lit4Liy4Lib4Liy4LiZ4Lig4Li54Lih4Li0CivguK3guLLguJvguLLguJnguKjguLLguKXguLIKK+C4reC4suC4m+C4suC4meC4sAor4Lit4Liy4LmC4LibCivguK3guLLguYLguJvguIHguKrguLTguJMKK+C4reC4suC5guC4m+C4mOC4suC4leC4uAor4Lit4Liy4Lie4Lix4LiUCivguK3guLLguJ7guLHguJfguJjguYwKK+C4reC4suC4nuC4seC4meC4mOC5jAor4Lit4Liy4Lie4Lix4LiZ4LiY4LiZ4LiwCivguK3guLLguJ7guLLguJgKK+C4reC4suC4nuC4suC4mOC4tOC4gQor4Lit4Liy4Lie4Liy4LiY4Li24LiBCivguK3guLLguJ7guLTguKUKK+C4reC4suC5gOC4nuC4qAor4Lit4Liy4Lig4Lij4LiT4LmMCivguK3guLLguKDguLHguJ4KK+C4reC4suC4oOC4seC4quC4o+C4sAor4Lit4Liy4Lig4LiyCivguK3guLLguKDguLLguIHguKMKK+C4reC4suC4oOC4suC4qgor4Lit4Liy4LihCivguK3guYjguLLguKEKK+C4reC4suC4oeC4peC4gQor4Lit4Liy4Lih4Lix4LiiCivguK3guLLguKHguLTguKkKK+C4reC4suC4oeC4tOC4qgor4Lit4Liy4LiiCivguK3guYnguLLguKIKK+C4reC5ieC4suC4ouC4guC4tOC4gQor4Lit4LmJ4Liy4Lii4LmA4LiC4LmJCivguK3guYnguLLguKLguIfguLHguYjguKcKK+C4reC5ieC4suC4ouC5gOC4iOC4teC5iuC4ouC4pwor4Lit4LmJ4Liy4Lii4LiK4Li34LmI4LiZCivguK3guLLguKLguJUKK+C4reC4suC4ouC4leC4meC4sAor4Lit4Liy4Lii4LiZCivguK3guYnguLLguKLguJrguYnguLIKK+C4reC5ieC4suC4ouC5gOC4muC4teC5ieC4ouC4pwor4Lit4LmJ4Liy4Lii4Lib4LmK4Lit4LiBCivguK3guLLguKLguYDguKvguJnguLXguKLguKEKK+C4reC5ieC4suC4ouC4reC5ieC4suC4pwor4Lit4Liy4Lii4Lix4LiUCivguK3guLLguKLguLHguJUKK+C4reC4suC4ouC4seC4mQor4Lit4Liy4Lii4Liy4LiI4LiZ4LiwCivguK3guLLguKLguLLguJkKK+C4reC4suC4ouC4uAor4Lit4Liy4Lii4Li44LiB4LiV4LiB4LiwCivguK3guLLguKLguLjguIHguKnguLHguKIKK+C4reC4suC4ouC4uOC4guC4seC4ogor4Lit4Liy4Lii4Li44LiE4Lin4Liy4LihCivguK3guLLguKLguLjguJXguIHguLAKK+C4reC4suC4ouC4uOC4mAor4Lit4Liy4Lii4Li44LijLQor4Lit4Liy4Lii4Li44Lij4LmB4Lie4LiX4Lii4LmMCivguK3guLLguKLguLjguKPguYDguKfguIoKK+C4reC4suC4ouC4uOC4o+C5gOC4p+C4lwor4Lit4Liy4Lii4Li44Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLLguKLguLjguKfguLHguJLguJnguLAKK+C4reC4suC4ouC4uOC4qQor4Lit4Liy4Lij4LmM4LiB4Lit4LiZCivguK3guLLguKPguJTguLUKK+C4reC4suC4o+C5jOC4lQor4Lit4Liy4Lij4LiV4Li0CivguK3guLLguKPguJfguKPguLIKK+C4reC4suC4o+C5jOC4oQor4Lit4Liy4Lij4Lih4LiT4LmMCivguK3guLLguKPguKHguJPguYzguILguLHguJkKK+C4reC4suC4o+C4oi0KK+C4reC4suC4o+C4ouC4iuC4mQor4Lit4Liy4Lij4Lii4LiK4Liy4LiV4Li0CivguK3guLLguKPguKLguJjguKPguKPguKEKK+C4reC4suC4o+C4ouC4m+C4o+C4sOC5gOC4l+C4qAor4Lit4Liy4Lij4Lii4LiwCivguK3guLLguKPguKLguLHguJkKK+C4reC4suC4o+C4sAor4Lit4Liy4Lij4Lix4LiB4LiC4LiyCivguK3guLLguKPguLHguIHguKnguYwKK+C4reC4suC4o+C4seC4jQor4Lit4Liy4Lij4Lix4LiN4LiN4Li04LiBCivguK3guLLguKPguLHguJPguKLguYwKK+C4reC4suC4o+C4seC4k+C4ouC4geC4sAor4Lit4Liy4Lij4Lix4LiV4Li0CivguK3guLLguKPguLHguKHguKAtCivguK3guLLguKPguLHguKHguKDguYwKK+C4reC4suC4o+C4seC4oeC4oOC4geC4luC4sgor4Lit4Liy4Lij4Lix4Lih4Lig4Lia4LiXCivguK3guLLguKPguLLguJjguJnguYwKK+C4reC4suC4o+C4suC4mOC4meC4sgor4Lit4Liy4Lij4Liy4LiY4LiZ4Liy4LiY4Lij4Lij4LihCivguK3guLLguKPguLLguJjguJnguLLguJ7guKPguLDguJvguKPguLTguJXguKMKK+C4reC4suC4o+C4suC4mOC4meC4suC4qOC4teC4pQor4Lit4Liy4Lij4Liy4LihCivguK3guLLguKPguLLguKHguLTguIEKK+C4reC4suC4o+C4tQor4Lit4Liy4Lij4Li14Lit4Liy4Lij4Lit4LiaCivguK3guLLguKPguLjguKEKK+C4reC4suC4peC4m+C4meC5jAor4Lit4Liy4Lil4Lib4LiZ4LiwCivguK3guLLguKXguLDguKfguLLguJQKK+C4reC4suC4peC4seC4geC4qeC4k+C5jAor4Lit4Liy4Lil4Lix4LiiCivguK3guLLguKXguLHguKLguK3guLLguKfguKPguJPguYwKK+C4reC4suC4peC4seC4pwor4Lit4Liy4Lil4Li0CivguK3guLLguKXguLUKK+C4reC4suC5guC4peC4gQor4Lit4Liy4LmC4Lil4LiBLQor4Lit4Liy4LmC4Lil4LiB4LiB4Liq4Li04LiTCivguK3guLLguYLguKXguIHguJnguLAKK+C4reC4suC4pwor4Lit4LmI4Liy4LinCivguK3guYnguLLguKcKK+C4reC4suC4p+C4o+C4k+C5jAor4Lit4Liy4Lin4Lix4LiK4LiZ4Liy4LiB4Liy4LijCivguK3guLLguKfguLHguKUKK+C4reC4suC4p+C4suC4qgor4Lit4Liy4Lin4Liy4Liq4Li04LiBCivguK3guLLguKfguLLguKstCivguK3guLLguKfguLLguKvguLAKK+C4reC4suC4p+C4tOC4pQor4Lit4Liy4Lin4Li44LiVCivguK3guLLguKfguLjguJgKK+C4reC4suC4p+C4uOC5guC4qgor4Lit4Liy4LmA4Lin4LiECivguK3guLLguYDguKfguKgKK+C4reC4suC4qOC4o+C4oQor4Lit4Liy4Lio4Lij4Lih4Lia4LiXCivguK3guLLguKjguYDguKXguKnguLIKK+C4reC4suC4qOC4seC4ogor4Lit4Liy4Lio4Lix4Lii4LiX4Li14LmICivguK3guLLguKjguLHguKLguKXguLPguYHguILguYnguIfguJXguLHguKfguYDguK3guIcKK+C4reC4suC4qOC4tOC4oy0KK+C4reC4suC4qOC4tOC4o+C4nuC4iOC4meC5jAor4Lit4Liy4Lio4Li04Lij4Lie4Liy4LiXCivguK3guLLguKjguLTguKPguJ7guLTguKkKK+C4reC4suC4qOC4tOC4o+C4p+C4iOC4meC4sAor4Lit4Liy4Lio4Li04Lij4Lin4Liy4LiXCivguK3guLLguKjguLTguKPguKfguLTguKkKK+C4reC4suC4qOC4teC4o+C4nuC4tOC4qQor4Lit4Liy4Lio4Li14Lij4Lin4Li04LipCivguK3guLLguKjguLgKK+C4reC4suC5gOC4qOC4teC4ouC4oy0KK+C4reC4suC5gOC4qOC4teC4ouC4o+C4nuC4iOC4meC5jAor4Lit4Liy4LmA4Lio4Li14Lii4Lij4Lie4Liy4LiXCivguK3guLLguYDguKjguLXguKLguKPguKfguIjguJnguLAKK+C4reC4suC5gOC4qOC4teC4ouC4o+C4p+C4suC4lwor4Lit4Liy4Lip4Liy4LiSCivguK3guLLguKrguJkKK+C4reC4suC4quC4meC5jAor4Lit4Liy4Liq4LiZ4LmM4Liq4LiH4LiG4LmMCivguK3guLLguKrguJnguLAKK+C4reC4suC4quC4seC4jQor4Lit4Liy4Liq4Lix4LiV4Lii4LmMCivguK3guLLguKrguLHguJnguJnguLAKK+C4reC4suC4quC4sgor4Lit4Liy4Liq4Liy4Lis4LirLQor4Lit4Liy4Liq4Liy4Lis4Lir4LmMCivguK3guLLguKrguLLguKzguKvguJrguLnguIrguLIKK+C4reC4suC4quC4tOC4jeC4iOC5jAor4Lit4Liy4Liq4Li04LiZCivguK3guLLguKrguLnguKMKK+C4reC4suC5geC4quC4sAor4Lit4Liy4Lir4LiVCivguK3guLLguKvguJnguLUKK+C4reC4suC4q+C4meC4uQor4Lit4Liy4Lir4LihCivguK3guLLguKvguKMKK+C4reC4suC4q+C4o+C4seC4lOC4geC4seC4lOC4leC4tOC4geC4sgor4Lit4Liy4Lir4Lij4Lix4LiaCivguK3guLLguKvguKXguLHguIHguK3guLLguYDguKvguKXguLfguYjguK0KK+C4reC4suC4q+C4suC4owor4Lit4Liy4Lir4Liy4Lij4Lin4LmI4Liy4LiHCivguK3guLLguKvguLjguJTguLUKK+C4reC4suC4rOC4q+C4gQor4Lit4Liy4Lis4Liy4Lij4Li04LiBCivguK3guYjguLLguK3guIfguITguYwKK+C4reC4swor4Lit4LmI4LizCivguK3guLPguYHguJTguIcKK+C4reC4s+C4meC4lAor4Lit4Liz4LiZ4LiZ4LiV4LmMCivguK3guLPguJnguKPguKPguIYKK+C4reC4s+C4meC4p+C4ogor4Lit4Liz4LiZ4Liy4LiICivguK3guLPguJnguLLguIjguJrguLLguJXguKPguYPguKvguI3guYgKK+C4reC4s+C4meC4suC4lgor4Lit4Liz4LiZ4Li04LiQCivguK3guLPguJnguLTguKnguJDguYwKK+C4reC4s+C4m+C4peC4seC4hwor4Lit4Liz4Lie4LiZCivguK3guLPguJ7guKPguLLguIcKK+C4reC4s+C4nuC4sOC4meC4swor4Lit4Liz4Lie4Lix4LiZCivguK3guLPguJ7guLHguJnguILguLXguYnguJvguKXguLIKK+C4reC4s+C4nuC4seC4meC4l+C4reC4hwor4Lit4Liz4LmE4LieCivguK3guLPguYDguKDguK0KK+C4reC4s+C5gOC4oOC4reC5g+C4iAor4Lit4Liz4Lih4LijCivguK3guLPguKHguKTguITguYLguIrguIQKK+C4reC4s+C4oeC4pOC4lQor4Lit4Liz4Lih4Lir4Li04LiVCivguK3guLPguKHguLLguJXguKLguYwKK+C4reC4s+C4ouC4p+C4mQor4Lit4Liz4Lij4Li44LiHCivguK3guLPguKXguLIKK+C4reC4s+C4reC4p+C4oQor4Lit4LmJ4Liz4Lit4Li24LmJ4LiHCivguK3guLTguIEKK+C4reC4tOC4hwor4Lit4Li04LiH4LiE4LmMCivguK3guLTguIfguK3guKMKK+C4reC4tOC4h+C5geC4reC4mgor4Lit4Li04LiI4LiJ4LiyCivguK3guLTguInguLHguJkKK+C4reC4tOC4iuC4ouC4sgor4Lit4Li04LiP4LiQLQor4Lit4Li04LiP4LiQ4Liy4Lij4Lih4LiT4LmMCivguK3guLTguJAtCivguK3guLTguJDguJzguKUKK+C4reC4tOC4kwor4Lit4Li04LiUCivguK3guLTguJTguYLguKPguKIKK+C4reC4tOC4lOC4q+C4meC4suC4o+C4sOC4reC4suC5g+C4iAor4Lit4Li04LiU4Lit4Lit4LiUCivguK3guLTguJTguYYg4Lit4Lit4LiU4LmGCivguK3guLTguJTguYDguK3guLfguYnguK3guJkKK+C4reC4tOC4lOC5hiDguYDguK3guLfguYnguK3guJnguYYKK+C4reC4tOC4leC4luC4tQor4Lit4Li04LiV4LiW4Li14Lil4Li04LiH4LiE4LmMCivguK3guLTguJXguYDguJfguKPguLXguKLguKEKK+C4reC4tOC4leC5gOC4l+C4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4Lit4Li04LiX4LiY4Li0CivguK3guLTguJfguJjguLQtCivguK3guLTguJfguJjguLTguJvguLLguI/guLTguKvguLLguKPguLTguKLguYwKK+C4reC4tOC4l+C4mOC4tOC4nuC4pQor4Lit4Li04LiX4LiY4Li04Lik4LiX4LiY4Li04LmMCivguK3guLTguJkKK+C4reC4tOC4meC4i+C4ueC4peC4tOC4mQor4Lit4Li04LiZ4LmA4LiU4Li14LiiCivguK3guLTguJnguYDguJTguLXguKLguJnguYHguJTguIcKK+C4reC4tOC4meC5gOC4lOC4teC4ouC4oQor4Lit4Li04LiZ4LiX4LmMCivguK3guLTguJnguJfguILguLXguKUKK+C4reC4tOC4meC4l+C4meC4tOC4pQor4Lit4Li04LiZ4LiX4LiZ4Li04Lil4LiZ4LmJ4LizCivguK3guLTguJnguJfguJzguKXguLHguKEKK+C4reC4tOC4meC4l+C4oy0KK+C4reC4tOC4meC4l+C4o+C5jAor4Lit4Li04LiZ4LiX4Lij4LiY4LiZ4Li5CivguK3guLTguJnguJfguKPguKfguIfguKjguYwKK+C4reC4tOC4meC4l+C4o+C4p+C4tOC5gOC4iuC4teC4ouC4owor4Lit4Li04LiZ4LiX4Lij4Lio4Lix4LiB4LiU4Li04LmMCivguK3guLTguJnguJfguKPguLLguJPguLUKK+C4reC4tOC4meC4l+C4o+C4suC4oOC4tOC5gOC4qeC4gQor4Lit4Li04LiZ4LiX4Lij4Liy4Lii4Li44LiYCivguK3guLTguJnguJfguKPguLUKK+C4reC4tOC4meC4l+C4o+C4teC4oi0KK+C4reC4tOC4meC4l+C4o+C4teC4ouC5jAor4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmC4LiE4LiI4LijCivguK3guLTguJnguJfguKPguLXguKLguI3guLLguJMKK+C4reC4tOC4meC4l+C4o+C4teC4ouC4quC4seC4h+C4p+C4owor4Lit4Li04LiZ4LiX4Li14Lin4LijCivguK3guLTguJnguJfguLgKK+C4reC4tOC4meC4mOC4meC5jAor4Lit4Li04LiZ4Lif4Lij4Liy4LmA4Lij4LiUCivguK3guLTguJnguLHguIcKK+C4reC4tOC4meC4seC4h+C4guC4seC4h+C4guC4reC4mgor4Lit4Li04LmI4LihCivguK3guLTguYjguKHguYPguIgKK+C4reC4tOC5iOC4oeC4leC4seC4pwor4Lit4Li04LmI4Lih4Lir4LiZ4LizCivguK3guLTguYjguKHguKvguKHguLXguJ7guLXguKHguLHguJkKK+C4reC4tOC5iOC4oeC4reC4geC4reC4tOC5iOC4oeC5g+C4iAor4Lit4Li04LmI4Lih4LmA4Lit4Li04LiaCivguK3guLTguKHguLHguKXguIrguLHguJkKK+C4reC4tOC4o+C4tOC5gOC4lOC4teC4ouC4oQor4Lit4Li04Lij4Li04Lii4LiyCivguK3guLTguKPguLTguKLguLLguJrguJYKK+C4reC4tOC4o+C4uOC4nuC5gOC4nuC4lwor4Lit4Li04Lil4Li5CivguK3guLTguYDguKXguYfguIHguJXguKPguK3guJkKK+C4reC4tOC5gOC4peC5h+C4geC4l+C4o+C4reC4meC4tOC4geC4quC5jAor4Lit4Li04LmA4Lil4LmH4LiB4LmC4LiX4LiZCivguK3guLTguKjguKMKK+C4reC4tOC4qOC4p+C4owor4Lit4Li04Lip4LiP4LmMCivguK3guLTguKnguI/guLUKK+C4reC4tOC4qgor4Lit4Li04Liq4LiV4Lij4Li1CivguK3guLTguKrguKMtCivguK3guLTguKrguKPguKDguLLguJ4KK+C4reC4tOC4quC4o+C4sAor4Lit4Li04Liq4Lij4Li04LiiLQor4Lit4Li04Liq4Lij4Li04Lii4Lii4LioCivguK3guLTguKrguKPguLTguKLguLAKK+C4reC4tOC4quC4o+C4tOC4ouC4suC4oOC4o+C4k+C5jAor4Lit4Li04Liq4Lil4Liy4LihCivguK3guLTguKrguKrguLIKK+C4reC4tOC4quC4seC4leC4o+C4tQor4Lit4Li04Liq4Li0CivguK3guLTguKrguLUKK+C4reC4tOC4q+C4oeC5iOC4suC4oQor4Lit4Li04Lir4Lil4Lix4LiB4Lit4Li04LmA4Lir4Lil4Li34LmI4LitCivguK3guLUKK+C4reC4teC5iAor4Lit4Li14LmJCivguK3guLXguYoKK+C4reC4teC5iwor4Lit4Li14LiBCivguK3guLXguIHguYnguK0KK+C4reC4teC4geC5i+C4reC4ogor4Lit4Li14LiB4LiyCivguK3guLXguIHguYvguLIKK+C4reC4teC5gOC4geC5ieC4hwor4Lit4Li14LmA4LiB4Lij4LmH4LiHCivguK3guLXguYDguIHguYnguK3guLXguIHguLHguIcKK+C4reC4teC5geC4gQor4Lit4Li14LmB4LiB4LmICivguK3guLXguYHguIHguYkKK+C4reC4teC5guC4geC5ieC4hwor4Lit4Li14LmC4LiB4LmK4LiwCivguK3guLXguITguKfguYjguLPguK3guLXguKvguIfguLLguKIKK+C4reC4teC4iOC4ueC5iQor4Lit4Li14LiJ4Lix4LiZCivguK3guLXguInguLjguKLguK3guLXguYHguInguIEKK+C4reC4teC4iuC4uOC4gQor4Lit4Li14LmK4LiUCivguK3guLXguJTguLPguK3guLXguYHguJTguIcKK+C4reC4teC4leC4suC4pQor4Lit4Li14LmA4LiV4LmJ4LitCivguK3guLXguYLguJXguYkKK+C4reC4teC4luC5iOC4suC4hwor4Lit4Li14LiX4Li44LiBCivguK3guLXguJfguLjguJoKK+C4reC4teC5gOC4l+C4reC4o+C5jAor4Lit4Li14LiZ4Li44LiH4LiV4Li44LiH4LiZ4Lix4LiHCivguK3guLXguJnguLnguJkKK+C4reC4teC5guC4mQor4Lit4Li14LmC4LiZ4LiH4LmC4LiV4LiH4LmA4LiZ4LiHCivguK3guLXguJrguLbguYnguIcKK+C4reC4teC5gOC4m+C5h+C4lAor4Lit4Li14LmA4Lib4LmJ4LiyCivguK3guLXguYHguJvguLAKK+C4reC4teC5guC4m+C4hwor4Lit4Li14LmC4Lib4LiH4LiE4Lij4Lit4LiaCivguK3guLXguYDguJ7guLIKK+C4reC4teC4oeC4uQor4Lit4Li14Lij4LihCivguK3guLXguKPguLjguYnguIcKK+C4reC4teC4peC4reC4hwor4Lit4Li14Lil4LmI4Lit4Lii4Lib4LmI4Lit4Lii4LmB4LitCivguK3guLXguKXguLjguYnguKEKK+C4reC4teC4peC4uOC5iOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lil4Li04LmJ4LiHCivguK3guLXguYHguKXguYjguIcKK+C4reC4teC5guC4peC4hwor4Lit4Li14LioCivguK3guLXguKjguKfguKMKK+C4reC4teC4qgor4Lit4Li14Liq4LiyCivguK3guLXguKrguLLguJkKK+C4reC4teC4quC4uOC4geC4reC4teC5g+C4qgor4Lit4Li14Lir4LiZ4LmH4Lit4LiH4Lit4Li14LmB4Lir4LiZ4LmH4LiHCivguK3guLXguKvguKPguK3guJoKK+C4reC4teC4q+C4o+C4reC4muC5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4Lit4Li14Lir4Lil4Lix4LiB4Lit4Li14LmA4Lir4Lil4Li34LmI4LitCivguK3guLXguKvguKXguLHguJTguJbguLHguJTguJfguLIKK+C4reC4teC4q+C4peC4tQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Lix4LiBCivguK3guLXguKvguKXguLjguIHguILguKXguLjguIHguILguKXguLjguYjguKIKK+C4reC4teC4q+C4peC4uOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lir4LmH4LiZCivguK3guLXguYDguKvguJnguYfguJoKK+C4reC4teC5gOC4q+C4meC4teC4ouC4pwor4Lit4Li14LmA4Lir4Lil4Liw4LmA4LiC4Lil4Liw4LiC4Lil4LiwCivguK3guLXguYDguKvguKXguLDguYDguILguLDguILguLAKK+C4reC4teC5guC4q+C4meC5iOC4reC4teC5gOC4q+C4meC5iAor4Lit4Li14LmC4Lir4Lil4LiB4LmC4LiC4Lil4LiB4LmA4LiC4Lil4LiBCivguK3guLXguYvguK3guYvguK0KK+C4reC4teC5geC4reC5iOC4mQor4Lit4Li2CivguK3guLbguIEKK+C4reC4tuC5iuC4gQor4Lit4Li24LiB4LiX4Li24LiBCivguK3guLbguIHguK3guLHguIEKK+C4reC4tuC4hwor4Lit4Li24LmI4LiHCivguK3guLbguYnguIcKK+C4reC4tuC4h+C4hOC4sOC4meC4tuC4hwor4Lit4Li24LiH4Lih4Li14LmICivguK3guLbguYjguIfguKLguLLguIcKK+C4reC4tuC5iOC4h+C5g+C4q+C4jeC5iAor4Lit4Li24LiH4Lit4LilCivguK3guLbguYjguIfguK3guYjguLLguIcKK+C4reC4tuC4lAor4Lit4Li24LiU4LmD4LiICivguK3guLbguJTguJXguLDguJvguLfguK0KK+C4reC4tuC5ieC4lOC4l+C4tuC5iOC4lAor4Lit4Li24LiU4Lit4Lix4LiUCivguK3guLbguJkKK+C4reC4t+C4lAor4Lit4Li34LiU4Lit4Liy4LiUCivguK3guLfguYjguJkKK+C4reC4t+C5ieC4mQor4Lit4Li34LitCivguK3guLfguYnguK0KK+C4reC4t+C5ieC4reC4ieC4suC4pwor4Lit4Li34LmJ4Lit4Lit4Li24LiHCivguK3guLgKK+C4reC4uOC4gQor4Lit4Li44LiB4LiB4LiyCivguK3guLjguIHguIHguLLguJrguLLguJUKK+C4reC4uOC4geC4ieC4geC4o+C4o+C4iOC5jAor4Lit4Li44LiB4Lik4Lip4LiP4LmMCivguK3guLjguIHguKXguLIKK+C4reC4uOC4geC4peC4suC4muC4suC4lQor4Lit4Li44LiB4Lit4Liy4LiICivguK3guLjguIQKK+C4reC4uOC4hOC4owor4Lit4Li44LiE4LirLQor4Lit4Li44LiE4Lir4LiZ4Li04Lih4Li04LiVCivguK3guLjguITguKvguLAKK+C4reC4uOC5guC4huC4qQor4Lit4Li44LmJ4LiHCivguK3guLjguIgKK+C4reC4uOC4iOC4iOC4suC4oy0KK+C4reC4uOC4iOC4iOC4suC4o+C4oeC4o+C4o+C4hAor4Lit4Li44LiI4LiI4Liy4Lij4LiwCivguK3guLjguIjguInguLgKK+C4reC4uOC4iOC5gOC4ieC4lwor4Lit4Li44LiI4LmA4LiJ4LiXLQor4Lit4Li44LiI4LmA4LiJ4LiX4LiX4Li04LiQ4Li0CivguK3guLjguIjguLLguJQKK+C4reC4uOC4iuC4uAor4Lit4Li44LiP4LiQ4Liy4LiB4Liy4LijCivguK3guLjguJPguKstCivguK3guLjguJPguKvguKDguLnguKHguLQKK+C4reC4uOC4k+C4q+C4sAor4Lit4Li44LiT4Lir4Liy4LiB4Liy4LijCivguK3guLjguJPguKvguLTguKoKK+C4reC4uOC4k+C4sgor4Lit4Li44LiT4Liy4LiZ4Liy4Lig4Li1CivguK3guLjguJPguLLguYLguKXguKEKK+C4reC4uOC4lAor4Lit4Li44LiU4LmA4LiV4LiyCivguK3guLjguJTguKEKK+C4reC4uOC4lOC4oS0KK+C4reC4uOC4lOC4oeC4geC4suC4o+C4k+C5jAor4Lit4Li44LiU4Lih4LiE4LiV4Li0CivguK3guLjguJTguKHguKjguLbguIHguKnguLIKK+C4reC4uOC4lOC4owor4Lit4Li44LiU4Lir4LiZ4Li44LiZCivguK3guLjguJTguK3guLnguYkKK+C4reC4uOC4lOC4suC4geC4seC4mQor4Lit4Li44LiV4LiU4LihCivguK3guLjguJXguJTguKMKK+C4reC4uOC4leC4leC4oeC4sAor4Lit4Li44LiV4LiV4Lij4Lic4Lil4LiE4Li44LiZ4Li1CivguK3guLjguJXguJXguKPguKDguLHguJfguKPguJrguJcKK+C4reC4uOC4leC4leC4o+C4reC4suC4qeC4suC4kgor4Lit4Li44LiV4LiV4Lij4Liy4Liq4Liy4Lis4Lir4LiwCivguK3guLjguJXguJXguLDguKDguLHguJfguJfguLAKK+C4reC4uOC4leC4muC4pQor4Lit4Li44LiV4Lie4Li04LiUCivguK3guLjguJXguJ7guLTguJTguJzguLUKK+C4reC4uOC4leC4oS0KK+C4reC4uOC4leC4oeC4oOC4suC4ngor4Lit4Li44LiV4Lih4Lix4LiV4LiW4LmMCivguK3guLjguJXguKHguLLguIfguITguYwKK+C4reC4uOC4leC4oy0KK+C4reC4uOC4leC4o+C4geC4uOC4o+C4uAor4Lit4Li44LiV4Lij4LiB4Li44Lij4Li5CivguK3guLjguJXguKPguJnguLTguIHguLLguKIKK+C4reC4uOC4leC4o+C4nOC4peC4hOC4uOC4meC4tQor4Lit4Li44LiV4Lij4Lig4Lix4LiX4Lij4Lia4LiXCivguK3guLjguJXguKPguLIKK+C4reC4uOC4leC4o+C4suC4oOC4tOC4oeC4uOC4ggor4Lit4Li44LiV4Lij4Liy4Lin4Lix4LiPCivguK3guLjguJXguKPguLLguKnguLLguJIKK+C4reC4uOC4leC4o+C4suC4quC4h+C4hOC5jAor4Lit4Li44LiV4Lij4Li0CivguK3guLjguJXguKPguLTguKHguJnguLjguKrguJjguKPguKPguKEKK+C4reC4uOC4leC4peC4uOC4lAor4Lit4Li44LiV4Liq4Liy4LirLQor4Lit4Li44LiV4Liq4LmI4Liy4Lir4LmMCivguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEKK+C4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oeC4qOC4tOC4peC4m+C5jAor4Lit4Li44LiV4Liq4Liy4Lir4LiwCivguK3guLjguJXguLgKK+C4reC4uOC4leC4uOC4meC4tOC4ouC4oeC4p+C4tOC4l+C4ouC4sgor4Lit4Li44LiXLQor4Lit4Li44LiX4LiBCivguK3guLjguJfguIEtCivguK3guLjguJfguIHguJjguLLguKMKK+C4reC4uOC4l+C4geC4mOC4suC4o+C4sgor4Lit4Li44LiX4LiB4Lig4Lix4LiiCivguK3guLjguJfguIHguKfguLTguJfguKLguLIKK+C4reC4uOC4l+C4geC4qOC4suC4quC4leC4o+C5jAor4Lit4Li44LiX4LiX4Liy4LihCivguK3guLjguJfguJjguKPguJPguYwKK+C4reC4uOC4l+C4mOC4seC4iAor4Lit4Li44LiX4Lia4Liy4LiV4LijCivguK3guLjguJfguJrguLLguJkKK+C4reC4uOC4l+C4nuC4tOC4meC4l+C4uOC5jAor4Lit4Li44LiX4Lii4Liy4LiZCivguK3guLjguJfguKLguLLguJnguYHguKvguYjguIfguIrguLLguJXguLQKK+C4reC4uOC4l+C4owor4Lit4Li44LiX4Lij4Li04Lii4LiwCivguK3guLjguJfguKXguLjguKEKK+C4reC4uOC4l+C4seC4igor4Lit4Li44LiX4Lix4LiiCivguK3guLjguJfguLLguJkKK+C4reC4uOC4l+C4suC4owor4Lit4Li44LiX4Liy4Lir4Lij4LiT4LmMCivguK3guLjguJfguLTguKgKK+C4reC4uOC4l+C4uOC4oeC4nuC4owor4Lit4Li44LmA4LiX4LioCivguK3guLjguJjguLHguIgKK+C4reC4uOC5iOC4mQor4Lit4Li44LmI4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguK3guLjguYjguJnguYPguIgKK+C4reC4uOC5iOC4meC4q+C4meC4suC4neC4suC4hOC4seC5iOC4hwor4Lit4Li44LiZ4Liy4LiB4Lix4LiZCivguK3guLjguJoKK+C4reC4uOC4muC4pQor4Lit4Li44Lia4Lit4Li04LiaCivguK3guLjguJrguLAKK+C4reC4uOC4muC5iuC4sAor4Lit4Li44Lia4Lix4LiV4Li0CivguK3guLjguJrguLHguJXguLQtCivguK3guLjguJrguLHguJXguLTguKDguLHguKIKK+C4reC4uOC4muC4seC4leC4tOC5gOC4q+C4leC4uAor4Lit4Li44Lia4Liy4LiXCivguK3guLjguJrguLLguJfguKfguYwKK+C4reC4uOC4muC4suC4ogor4Lit4Li44Lia4Liy4Liq4LiBCivguK3guLjguJrguLLguKrguLTguIHguLIKK+C4reC4uOC5gOC4muC4geC4guC4sgor4Lit4Li44LmC4Lia4Liq4LiWCivguK3guLjguYLguJrguKrguJbguIHguKPguKPguKEKK+C4reC4uOC5guC4muC4quC4luC4q+C4seC4leC4luC4tQor4Lit4Li44LibCivguK3guLjguJvguIHguKPguJPguYwKK+C4reC4uOC4m+C4geC4o+C4oQor4Lit4Li44Lib4LiB4Liy4LijLQor4Lit4Li44Lib4LiB4Liy4Lij4LiwCivguK3guLjguJvguIHguLLguKPguLUKK+C4reC4uOC4m+C4geC4tOC4k+C4k+C4sAor4Lit4Li44Lib4LiB4Li04LmA4Lil4LiqCivguK3guLjguJvguIjguLLguKMKK+C4reC4uOC4m+C4luC4seC4oeC4oOC5jAor4Lit4Li44Lib4LiW4Lix4Lih4Lig4LiBCivguK3guLjguJvguJfguKEKK+C4reC4uOC4m+C4l+C4ueC4lQor4Lit4Li44Lib4LmA4LiX4LioCivguK3guLjguJvguYDguJfguYjguKvguYwKK+C4reC4uOC4m+C4mOC4tAor4Lit4Li44Lib4LiZ4Lix4LiiCivguK3guLjguJvguJnguLTguIHguILguLTguJUKK+C4reC4uOC4m+C4meC4tOC4geC4qeC4tOC4lQor4Lit4Li44Lib4LiZ4Li04Lip4Lix4LiXCivguK3guLjguJvguJnguLTguKrguLHguKIKK+C4reC4uOC4m+C4muC4pQor4Lit4Li44Lib4Lia4Lix4LiV4Li0CivguK3guLjguJvguJrguLLguJcKK+C4reC4uOC4m+C4m+C4suC4leC4tOC4gS0KK+C4reC4uOC4m+C4nuC4seC4l+C4mOC5jAor4Lit4Li44Lib4Lie4Lix4LiZ4LiY4LmMCivguK3guLjguJvguYLguKDguIQKK+C4reC4uOC4m+C4oeC4sgor4Lit4Li44Lib4Lih4Liy4LiZCivguK3guLjguJvguKHguLLguYLguKfguKvguLLguKMKK+C4reC4uOC4m+C4oeC4suC4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4LmE4Lih4LiiCivguK3guLjguJvguKLguLjguKfguKPguLLguIoKK+C4reC4uOC4m+C5guC4ouC4hAor4Lit4Li44Lib4LmC4Lii4LiE4Lia4Li44Lij4Lie4Lia4LiXCivguK3guLjguJvguKPguLLguIHguKMKK+C4reC4uOC4m+C4o+C4suC4hOC4sgor4Lit4Li44Lib4Lij4Liy4LiKCivguK3guLjguJvguKPguLQKK+C4reC4uOC4m+C4o+C4tOC4iOC4owor4Lit4Li44Lib4Lij4Li04Lie4Li44LiX4LiY4Li0CivguK3guLjguJvguKPguLTguKDguLLguIQKK+C4reC4uOC4m+C4o+C4tOC4oOC4suC4ngor4Lit4Li44Lib4Lij4Li04LihLQor4Lit4Li44Lib4Lij4Li04Lih4Lib4Lij4Li04Lii4Liy4LiiCivguK3guLjguJvguKPguLTguKfguLHguKrguJnguYwKK+C4reC4uOC4m+C4o+C4tOC4quC4seC4iAor4Lit4Li44Lib4LmC4Lil4LiB4LiZ4LmMCivguK3guLjguJvguKrguKHguJrguJcKK+C4reC4uOC4m+C4quC4oeC4muC4l+C4geC4o+C4o+C4oQor4Lit4Li44Lib4Liq4Lih4Lia4Lix4LiZCivguK3guLjguJvguKrguKPguKPguIQKK+C4reC4uOC4m+C4quC4seC4oeC4muC4seC4mQor4Lit4Li44Lib4Liq4Lix4Lih4Lib4LiX4LiyCivguK3guLjguJvguKrguLHguKHguJvguJfguLLguYDguJvguIHguILguYwKK+C4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4suC5gOC4m+C4geC4qeC5jAor4Lit4Li44Lib4Liu4Liy4LiUCivguK3guLjguJvguLHguIrguIzguLLguKItCivguK3guLjguJvguLHguIrguIzguLLguKLguYwKK+C4reC4uOC4m+C4seC4iuC4jOC4suC4ouC4p+C4seC4leC4owor4Lit4Li44Lib4Lix4LiK4LiM4Liy4Lii4LiwCivguK3guLjguJvguLHguI/guJDguLLguIEKK+C4reC4uOC4m+C4seC4j+C4kOC4suC4meC4sAor4Lit4Li44Lib4Lix4LiX4Lij4LieCivguK3guLjguJvguLHguJfguKctCivguK3guLjguJvguLHguJfguKfguLAKK+C4reC4uOC4m+C4seC4l+C4p+C4seC4meC4leC4o+C4suC4ogor4Lit4Li44Lib4Liy4LiTLQor4Lit4Li44Lib4Liy4LiX4Liy4LiZCivguK3guLjguJvguLLguJjguKLguLLguKIKK+C4reC4uOC4m+C4suC4q+C4meC4sgor4Lit4Li44Lig4Lix4LiiCivguK3guLjguYnguKEKK+C4reC4uOC4oeC4h+C4hOC5jAor4Lit4Li44LmJ4Lih4LiK4Li5CivguK3guLjguYnguKHguJfguYnguK3guIcKK+C4reC4uOC5ieC4oeC4meC5ieC4swor4Lit4Li44LmJ4Lih4Liq4LihCivguK3guLjguYLguKHguIfguITguYwKK+C4reC4uOC4ogor4Lit4Li44LmI4LiiCivguK3guLjguYnguKIKK+C4reC4uOC5iuC4ogor4Lit4Li44Lii4Lii4Liy4LiZCivguK3guLjguKLguKLguLLguKEKK+C4reC4uOC5ieC4ouC4ouC4uOC5ieC4ogor4Lit4Li44Lii4LmC4Lii4LiECivguK3guLjguKLguKvguJnguYjguLIKK+C4reC4uOC5iOC4ouC4q+C4meC5iOC4sgor4Lit4Li44LmJ4Lii4Lit4LmJ4Liy4LiiCivguK3guLjguKMtCivguK3guLjguKPguIQKK+C4reC4uOC4o+C5gOC4hOC4meC4l+C4o+C5jAor4Lit4Li44Lij4LiTCivguK3guLjguKPguJ7guLUKK+C4reC4uOC4o+C4qgor4Lit4Li44Lij4LiwCivguK3guLjguKPguLHguIfguK3guLjguJXguLHguIcKK+C4reC4uOC4o+C4seC4iOC4ieC4l+C4sAor4Lit4Li44Lij4Lix4LiI4LiJ4Lix4LiXCivguK3guLjguKPguLIKK+C4reC4uOC4o+C4uAor4Lit4Li44LmE4LijCivguK3guLjguKXguJvguJnguLAKK+C4reC4uOC4peC5guC4peC4iAor4Lit4Li44Lil4LmC4Lil4Lil4LiwCivguK3guLjguKXguLLguKHguIEKK+C4reC4uOC4peC4tOC4lAor4Lit4Li44Lil4Li54LiBCivguK3guLjguYLguKXguIEKK+C4reC4uOC5geC4p+C5iQor4Lit4Li44Lip4LiTLQor4Lit4Li44Lip4LiT4LiB4LijCivguK3guLjguKnguJPguIHguLLguKUKK+C4reC4uOC4qeC4k+C4o+C4seC4qOC4oeC4tQor4Lit4Li44Lip4LiT4Lij4Li54LiI4Li1CivguK3guLjguKnguJPguLLguIHguLLguKMKK+C4reC4uOC4qeC4k+C4teC4qeC5jAor4Lit4Li44Lip4LihCivguK3guLjguKnguKHguLHguJkKK+C4reC4uOC4qeC4sgor4Lit4Li44Lip4Liy4LmC4Lii4LiECivguK3guLjguKrguKAKK+C4reC4uOC4quC4p+C4sAor4Lit4Li44Liq4Liq4LmI4Liy4Lir4LmMCivguK3guLjguKrguKrguLLguKvguLAKK+C4reC4uOC4quC4sgor4Lit4Li44Liq4Li4CivguK3guLjguKrguLjguIHguLLguKMKK+C4reC4uOC4quC4uOC4oAor4Lit4Li44Liq4Li44LihCivguK3guLjguKvguKPguLHguJoKK+C4reC4uOC4q+C4peC4mgor4Lit4Li44LmA4Lir4Lih4LmICivguK3guLjguKzguLLguKMKK+C4reC4uQor4Lit4Li54LmICivguK3guLnguYkKK+C4reC4ueC4kAor4Lit4Li54LiUCivguK3guLnguYjguJnguYnguLMKK+C4reC4ueC4oQor4Lit4Li54LiiCivguK3guLnguKPguLgKK+C4reC4ueC5iOC4peC4reC4ogor4Lit4Li54LmI4LmB4Lir4LmJ4LiHCivguK3guLnguYnguK3guLXguYkKK+C4reC4ueC5i+C4reC4teC5iwor4LmA4LitCivguYDguK3guYkKK+C5gOC4reC4gQor4LmA4Lit4LiBLQor4LmA4Lit4LmK4LiBCivguYDguK3guIHguYDguILguJnguIEKK+C5gOC4reC4geC4iOC4tOC4lQor4LmA4Lit4LiB4LiJ4Lix4LiZ4LiX4LmMCivguYDguK3guIHguIrguJkKK+C5gOC4reC4geC4i+C5gOC4o+C4ouC5jAor4LmA4Lit4LiB4LmA4LiX4LioCivguYDguK3guIHguYLguJfguKkKK+C5gOC4reC4geC4meC4seC4ogor4LmA4Lit4LiB4Lia4Li44LiE4LiE4LilCivguYDguK3guIHguJrguLjguKPguLjguKkKK+C5gOC4reC4geC4nuC4iOC4meC5jAor4LmA4Lit4LiB4Lig4LieCivguYDguK3guIHguKDguKPguLTguKLguLIKK+C5gOC4reC4geC4oOC4seC4geC4lOC4tOC5jAor4LmA4Lit4LiB4Lig4Liy4LiE4Li1CivguYDguK3guIHguKDguLLguJ4KK+C5gOC4reC4geC4oQor4LmA4Lit4LiB4Lih4Lix4LiiCivguYDguK3guIHguKPguKPguJbguJvguKPguLDguYLguKLguIQKK+C5gOC4reC4geC4o+C4qgor4LmA4Lit4LiB4Lij4LiwCivguYDguK3guIHguKPguLLguIoKK+C5gOC4reC4geC4o+C4ueC4mwor4LmA4Lit4LiB4Lil4Lix4LiB4Lip4LiT4LmMCivguYDguK3guIHguKjguIEKK+C5gOC4reC4geC4qgor4LmA4Lit4LiB4Liq4Liy4LijCivguYDguK3guIHguKrguLLguKPguKPguLLguIrguIHguLLguKMKK+C5gOC4reC4geC4quC4suC4o+C4quC4tOC4l+C4mOC4tAor4LmA4Lit4LiB4Liq4Li04LiX4LiY4Li04LmMCivguYDguK3guIHguK3guLHguITguKPguKPguLLguIrguJfguLnguJUKK+C5gOC4reC4geC4reC4seC4hOC4o+C4quC4oeC4k+C4l+C4ueC4lQor4LmA4Lit4LiB4Lit4Li4CivguYDguK3guIHguLHguITguJXguLIKK+C5gOC4reC4geC4seC4h+C4quC4nuC4ouC4suC4geC4o+C4k+C5jAor4LmA4Lit4LiB4Lix4LiH4Liq4Lin4Liy4LiX4Li1CivguYDguK3guIHguLIKK+C5gOC4reC5ieC4geC4sgor4LmA4Lit4LiB4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguYDguK3guYDguITguK3guKPguYwKK+C5gOC4reC4hwor4LmA4Lit4LmH4LiHCivguYDguK3guYvguIcKK+C5gOC4reC5h+C4lAor4LmA4Lit4LmH4LiU4LiV4Liw4LmC4LijCivguYDguK3guYfguJTguK3guLbguIcKK+C5gOC4reC4leC4l+C4seC4hOC4hOC4sAor4LmA4Lit4LmJ4LmA4LiVCivguYDguK3guJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4reC4mQor4LmA4Lit4LmH4LiZCivguYDguK3guJnguIHguLLguKIKK+C5gOC4reC4meC5hOC4i+C4oeC5jAor4LmA4Lit4LmH4LiZ4LiU4Li5CivguYDguK3guJnguJXguLHguKcKK+C5gOC4reC4meC4q+C4peC4seC4hwor4LmA4Lit4LmH4LiZ4Lit4LmI4Lit4LiZCivguYDguK3guJnguYDguK3guLXguKLguIcKK+C5gOC4reC4oQor4LmA4Lit4LmH4Lih4Lia4Lij4Li04LmC4LitCivguYDguK3guKHguK3guKMKK+C5gOC4reC4oeC5guC4reC4igor4LmA4Lit4LiiCivguYDguK3guYjguKIKK+C5gOC4reC5iuC4ogor4LmA4Lit4LmL4LiiCivguYDguK3guKPguYfguJTguK3guKPguYjguK3guKIKK+C5gOC4reC4o+C4suC4p+C4seC4kwor4LmA4Lit4Lil4LiyCivguYDguK3guKXguLLguKzguLjguIEKK+C5gOC4reC4pwor4LmA4Lit4LmK4LinCivguYDguK3guKfguLHguIcKK+C5gOC4reC4rOC4gQor4LmA4Lit4Lis4LiyCivguYDguK3guK0KK+C5gOC4reC5iOC4rQor4LmA4Lit4Lit4LmGIOC4hOC4sOC5hgor4LmA4Lit4Lit4LiZ4LmI4LiwCivguYDguK3guK3guYHguJnguYjguLAKK+C5gOC4reC4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4LmA4Lit4LmJ4Lit4Lij4Liw4LmA4Lir4LiiCivguYDguK3guYnguK3guYDguKPguYnguK0KK+C5gOC4reC5ieC4reC5gOC4o+C5ieC4reC5gOC4reC5ieC4reC5gOC4leC5iOC4rQor4LmA4Lit4Lit4Lit4Lin4LiiCivguYDguK3guK3guK3guK0KK+C5gOC4reC4reC4reC4reC4q+C5iOC4reC4q+C4oeC4gQor4LmA4Lit4LmJ4Lit4LmA4Liu4LitCivguYDguK3guYnguYHguK3guYjguJkKK+C5gOC4reC5ieC5hiDguYHguK3guYjguJnguYYKK+C5gOC4reC5iuC4sAor4LmA4Lit4Liw4LmD4LiICivguYDguK3guLDguK3guLAKK+C5gOC4reC4sOC4reC4sOC4oeC4sOC5gOC4l+C4tOC5iOC4hwor4LmA4Lit4LiyCivguYDguK3guLLguIHguLLguKMKK+C5gOC4reC4suC4geC4suC4o+C5gOC4reC4suC4h+C4suC4mQor4LmA4Lit4Liy4LiB4Li44LmJ4LiH4Lid4Lit4Lii4LmE4Lib4LiV4LiB4Lib4Lil4Liy4LiB4Liw4Lie4LiHCivguYDguK3guLLguILguYnguLLguIfguYDguILguYnguLLguJbguLkKK+C5gOC4reC4suC4h+C4suC4mQor4LmA4Lit4Liy4LiI4Lih4Li54LiB4Lic4Li54LmJ4Lit4Li34LmI4LiZ4Lih4Liy4Lir4Liy4Lii4LmD4LiICivguYDguK3guLLguIjguKPguLTguIcKK+C5gOC4reC4suC4iOC4o+C4tOC4h+C5gOC4reC4suC4iOC4seC4hwor4LmA4Lit4Liy4LmD4LiICivguYDguK3guLLguYPguIjguIrguYjguKfguKIKK+C5gOC4reC4suC5g+C4iOC5g+C4quC5iAor4LmA4Lit4Liy4LiK4LiZ4LiwCivguYDguK3guLLguIrguLHguYnguJnguYDguK3guLLguYDguIrguLTguIcKK+C5gOC4reC4suC4iuC4seC4ogor4LmA4Lit4Liy4LiK4Li14Lin4Li04LiVCivguYDguK3guLLguIrguLfguYjguK0KK+C5gOC4reC4suC5gOC4iuC4tOC4hwor4LmA4Lit4Liy4LmD4LiK4LmJCivguYDguK3guLLguJTguLXguYDguK3guLLguYDguJTguYjguJkKK+C5gOC4reC4suC4leC4suC4ogor4LmA4Lit4Liy4LmB4LiV4LmICivguYDguK3guLLguYHguJXguYjguYPguIgKK+C5gOC4reC4suC4luC5iOC4suC4mQor4LmA4Lit4Liy4LmA4LiW4Li04LiUCivguYDguK3guLLguYDguJbguLTguJTguYDguIjguYnguLLguKXguYjguK0KK+C5gOC4reC4suC4l+C4reC4h+C5hOC4m+C4o+C4ueC5iOC4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4hwor4LmA4Lit4Liy4LiX4Liy4LijCivguYDguK3guLLguJfguLLguKPguKLguYwKK+C5gOC4reC4suC4meC5ieC4s+C5gOC4ouC5h+C4meC5gOC4guC5ieC4suC4peC4ueC4mgor4LmA4Lit4Liy4LiZ4LmJ4Liz4Lil4Li54Lia4LiX4LmJ4Lit4LiHCivguYDguK3guLLguYDguJnguLfguYnguK3guKvguJnguLnguYTguJvguJvguLDguYDguJnguLfguYnguK3guIrguYnguLLguIcKK+C5gOC4reC4suC4muC4uOC4jeC5gOC4reC4suC4hOC4uOC4kwor4LmA4Lit4Liy4Lib4Li54LiZ4Lir4Lih4Liy4Lii4Lir4Lix4LinCivguYDguK3guLLguYDguJvguYfguJnguJjguLjguKPguLAKK+C5gOC4reC4suC5gOC4m+C5h+C4meC4p+C5iOC4sgor4LmA4Lit4Liy4LmA4Lib4LmH4LiZ4LmA4Lit4Liy4LiV4Liy4LiiCivguYDguK3guLLguYDguJvguKPguLXguKLguJoKK+C5gOC4reC4suC4nOC4tOC4lAor4LmA4Lit4Liy4Lie4Li04Lih4LmA4Liq4LiZ4LmE4Lib4LmB4Lil4LiB4LmA4LiB4Lil4Li34LitCivguYDguK3guLLguKHguLDguJ7guKPguYnguLLguKfguKvguYnguLLguKfguYTguJvguILguLLguKLguKrguKfguJkKK+C5gOC4reC4suC4oeC4t+C4reC4i+C4uOC4geC4q+C4teC4mgor4LmA4Lit4Liy4LmE4Lih4LmJ4LiL4Li14LiB4LmE4Lib4LiH4Lix4LiU4LmE4Lih4LmJ4LiL4Li44LiHCivguYDguK3guLLguYTguKHguYnguKrguLHguYnguJnguYTguJvguKPguLHguJnguILguLXguYkKK+C5gOC4reC4suC4o+C4qgor4LmA4Lit4Liy4Lij4Lix4LiU4LmA4Lit4Liy4LmA4Lib4Lij4Li14Lii4LiaCivguYDguK3guLLguYDguKPguLfguYjguK3guIcKK+C5gOC4reC4suC4pOC4geC4qeC5jAor4LmA4Lit4Liy4Lil4LiwCivguYDguK3guLLguYDguKXguKIKK+C5gOC4reC4suC5gOC4peC4t+C4reC4lOC4geC4seC4muC4m+C4uQor4LmA4Lit4Liy4Lir4LiZ4LmJ4LiyCivguYDguK3guLLguKvguLnguYTguJvguJnguLIg4LmA4Lit4Liy4LiV4Liy4LmE4Lib4LmE4Lij4LmICivguYDguK3guLLguYPguKvguI3guYgKK+C5gOC4reC4suC4rOC4suC4owor4LmA4Lit4Liy4Lis4Liy4Lij4Li04LiBCivguYDguK3guLLguKzguLLguKPguLbguIEKK+C5gOC4reC4suC4reC4geC5gOC4reC4suC5g+C4iAor4LmA4Lit4Liy4Lit4Lii4LmI4Liy4LiHCivguYDguK3guLLguK3guKLguLnguYgKK+C5gOC4reC4suC4sOC4peC4suC4ogor4LmA4Lit4Li04LiBCivguYDguK3guLTguIHguYDguIHguKPguLTguIEKK+C5gOC4reC4tOC5ieC4mQor4LmA4Lit4Li04LiaCivguYDguK3guLTguJrguK3guLLguJoKK+C5gOC4reC4teC4ouC4hwor4LmA4Lit4Li14LmJ4Lii4LiHCivguYDguK3guLXguYnguKLguIfguITguLMKK+C5gOC4reC4teC4ouC4h+C4reC4suC4ogor4LmA4Lit4Li14Lii4LiH4LmA4Lit4LiZCivguYDguK3guLXguKLguJQKK+C5gOC4reC4teC5iuC4ouC4lAor4LmA4Lit4Li14Lii4LiZCivguYDguK3guLXguYjguKLguJkKK+C5gOC4reC4teC5iOC4ouC4oQor4LmA4Lit4Li14LmK4Lii4LihCivguYDguK3guLXguYnguKLguKHguIjguLjguYrguJkKK+C5gOC4reC4teC5ieC4ouC4oeC5gOC4n+C4teC5ieC4ouC4oQor4LmA4Lit4Li14LmI4Lii4Lih4Lit4LmI4Lit4LiHCivguYDguK3guLXguYjguKLguKcKK+C5gOC4reC4teC5ieC4ouC4pwor4LmA4Lit4Li14LmI4Lii4Lin4Lil4LihCivguYDguK3guLfguYnguK0KK+C5gOC4reC4t+C5ieC4reC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4LiE4Lij4Lix4LmI4LiHCivguYDguK3guLfguYnguK3guIfguJnguYnguLPguITguKPguLHguYjguIcKK+C5gOC4reC4t+C5ieC4reC4h+C4qOC4o+C4teC5gOC4l+C4teC5iOC4ouC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4Lir4LiZ4Lin4LiU4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguYDguK3guLfguK3guJQKK+C5gOC4reC4t+C4reC4mQor4LmA4Lit4Li34LmJ4Lit4LiZCivguYDguK3guLfguK3guJnguIHguLTguJkKK+C5gOC4reC4t+C5ieC4reC5gOC4n+C4t+C5ieC4rQor4LmA4Lit4Li34Lit4LihCivguYDguK3guLfguYnguK3guKEKK+C5gOC4reC4t+C5ieC4reC4oeC4reC4suC4iAor4LmA4Lit4Li34LmI4Lit4LiiCivguYDguK3guLfguYjguK3guKLguYYKK+C5gOC4reC4t+C5ieC4reC4ogor4LmA4Lit4Li34LmJ4Lit4Lit4Liz4LiZ4Lin4LiiCivguYHguK0KK+C5geC4reC5iQor4LmB4Lit4LmLCivguYHguK3guIEKK+C5geC4reC4geC4l+C4tOC5gOC4meC4teC4ouC4oQor4LmB4Lit4LiB4LiZ4LmJ4Lit4LiiCivguYHguK3guYjguIcKK+C5geC4reC5ieC4h+C5geC4oeC5ieC4hwor4LmB4Lit4LiUCivguYHguK3guJTguYYKK+C5geC4reC5ieC4lAor4LmB4Lit4LmJ4LiU4LmGCivguYHguK3guYrguJQKK+C5geC4reC5iuC4lOC5hgor4LmB4Lit4LmI4LiZCivguYHguK3guJnguJXguLTguYDguIjguJkKK+C5geC4reC4meC4leC4tOC4muC4reC4lOC4tQor4LmB4Lit4LiZ4LiV4Li04Lit4Li04LmA4Lil4LmH4LiB4LiV4Lij4Lit4LiZCivguYHguK3guYjguJnguKXguKEKK+C5geC4reC5guC4meC4lAor4LmB4Lit4LiaCivguYHguK3guJrguYHguJ3guIcKK+C5geC4reC4muC4reC5ieC4suC4hwor4LmB4Lit4Lia4Lit4Li04LiHCivguYHguK3guYnguKEKK+C5geC4reC4oeC5geC4m+C4o+C5jAor4LmB4Lit4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYHguK3guKHguYLguKHguYDguJnguLXguKIKK+C5geC4reC4o+C5iOC4oQor4LmB4Lit4Lil4LiB4Lit4Liu4Lit4Lil4LmMCivguYHguK3guKXguJ/guLIKK+C5geC4reC4pwor4LmB4Lit4LmI4LinCivguYHguK3guYnguKfguYHguIvguYjguKcKK+C5geC4reC4quC4l+C4suC4l+C4teC4mQor4LmB4Lit4Liq4LmE4Lie4Lij4Li04LiZCivguYHguK3guKrguJ/guLHguKXguJXguYwKK+C5geC4reC4q+C4meC4seC4hwor4LmB4Lit4Lit4Lin4LiiCivguYHguK3guK3guLHguJQKK+C5guC4rQor4LmC4Lit4LmICivguYLguK3guYkKK+C5guC4reC5iwor4LmC4Lit4LiBCivguYLguK3guYnguIEKK+C5guC4reC5iuC4gQor4LmC4Lit4LiB4Liy4LiqCivguYLguK3guIYtCivguYLguK3guIbguIrguKUKK+C5guC4reC4huC4quC4h+C4quC4suC4owor4LmC4Lit4LiG4LiwCivguYLguK3guYjguIcKK+C5guC4reC4h+C4geC4suC4owor4LmC4Lit4LiH4LmC4LiC4LiU4LiHCivguYLguK3guYjguIfguKHguLHguIfguIHguKMKK+C5guC4reC4iuC4sAor4LmC4Lit4LiK4LiyCivguYLguK3guYLguIvguJkKK+C5guC4reC4kAor4LmC4Lit4LiUCivguYLguK3guJTguIHguLLguYDguKvguKfguYjguLIKK+C5guC4reC4lOC4hOC4o+C4p+C4jQor4LmC4Lit4LiU4LmC4Lit4LiiCivguYLguK3guYrguJUKK+C5guC4reC4leC4leC4seC4m+C4m+C4sAor4LmC4Lit4LmI4LmC4LiW4LiHCivguYLguK3guYnguYLguJbguIcKK+C5guC4reC4l+C4mS0KK+C5guC4reC4l+C4meC4sAor4LmC4Lit4LiZCivguYLguK3guJnguIHguKPguKPguKHguKrguLTguJfguJjguLTguYwKK+C5guC4reC4meC4iuC4suC4leC4tAor4LmC4Lit4LiZ4Lit4LmI4Lit4LiZCivguYLguK3guJnguYDguK3guJkKK+C5guC4reC4mgor4LmC4Lit4Lia4Lit4LmJ4Lit4Lih4Lit4Liy4Lij4Li1CivguYLguK3guJrguK3guLjguYnguKEKK+C5guC4reC4muC5gOC4reC4t+C5ieC4rQor4LmC4Lit4Lib4Lib4Liy4LiV4Li04LiB4LiwCivguYLguK3guKDguLIKK+C5guC4reC4oOC4suC4m+C4o+C4suC4qOC4o+C4seC4ogor4LmC4Lit4Lig4Liy4LiqCivguYLguK3guKEKK+C5guC4reC4ogor4LmC4Lit4LmK4LiiCivguYLguK3guKMtCivguYLguK3guKPguKoKK+C5guC4reC4peC4sOC4nuC5iOC4rQor4LmC4Lit4Lil4Li04Lih4Lib4Li04LiBCivguYLguK3guYnguYLguKXguKEKK+C5guC4reC5ieC5guC4peC4oeC4m+C4j+C4tOC5guC4peC4oQor4LmC4Lit4LmJ4Lin4LmI4LiyCivguYLguK3guKfguLLguJcKK+C5guC4reC4qeC4kC0KK+C5guC4reC4qeC4kOC5jAor4LmC4Lit4Lip4LiQ4LiK4LiwCivguYLguK3guKnguJDguKDguLHguKIKK+C5guC4reC4quC4lgor4LmC4Lit4Liq4LiWLQor4LmC4Lit4Liq4LiW4LiB4Lij4Lij4LihCivguYLguK3guKrguLLguJkKK+C5guC4reC4q+C4meC4rQor4LmC4Lit4Lir4LmM4LihCivguYLguK3guKvguYzguKHguKHguLTguYDguJXguK3guKPguYwKK+C5guC4reC4q+C4seC4hwor4LmC4Lit4Lis4Liy4LijCivguYLguK3guKzguLLguKPguLTguIEKK+C5guC4reC4rOC4suC4o+C4tuC4gQor4LmC4Lit4LmI4Lit4Lin4LiUCivguYLguK3guYnguK3guKfguJQKK+C5guC4reC5iOC4reC5iOC4sgor4LmC4Lit4LmJ4LmA4Lit4LmJCivguYLguK3guYDguK3guIvguLTguKoKK+C5guC4reC5ieC5guC4rgor4LmE4LitCivguYTguK3guYkKK+C5hOC4reC4geC4o+C4mQor4LmE4Lit4LmC4LiL4LmC4LiX4LibCivguYTguK3guYHguJTguJQKK+C5hOC4reC4leC4seC4pwor4LmE4Lit4LiZ4LmM4Liq4LmE4LiV4LmA4LiZ4Li14Lii4LihCivguYTguK3guJ7guYjguJkKK+C5hOC4reC4nuC4tOC4qQor4LmE4Lit4Lii4Lij4LiyCivguYTguK3guKLguYDguKPguKgKK+C5hOC4reC4o+C4suC4nuC4lQor4LmE4Lit4Lij4Liy4Lin4Lix4LiTCivguYTguK3guKjguIHguKPguLXguKEKK+C5hOC4reC4qOC4p+C4o+C4o+C4ouC5jAor4LmE4Lit4Lio4Li44Lij4Li04LiiLQor4LmE4Lit4Lio4Li44Lij4Li04Lii4Liq4Lih4Lia4Lix4LiV4Li0CivguYTguK3guKjguLnguKPguKLguYwKK+C5hOC4reC5gOC4quC4teC4ogor4LmE4Lit4Lit4Lit4LiZCivguYTguK3guYLguK3guJTguLXguJkKK+C4rgor4Liu4LiB4LmA4LiB4Li14LmJ4Lii4LiZCivguK7guJQKK+C4ruC4p+C4h+C4i+C4uOC5ieC4ogor4Liu4Lin4LiZCivguK7guYnguKfguJnguKvguKHguLkKK+C4ruC4p+C4mgor4Liu4Lin4Lia4Liu4Liy4LiaCivguK7guYjguK0KK+C4ruC5ieC4rQor4Liu4Lit4LiB4LiB4Li14LmJCivguK7guK3guJQKK+C4ruC5iOC4reC4oQor4Liu4LmI4Lit4Lih4LiU4LiHCivguK7guYjguK3guKHguYDguKHguLfguK3guIcKK+C4ruC4reC4o+C5jOC5guC4oeC4mQor4Liu4Lit4Lil4LmB4Lil4LiZ4LiU4LmMCivguK7guK3guKXguLHguJnguJTguLIKK+C4ruC4sAor4Liu4Liw4Liu4LmJ4Liy4LiiCivguK7guLDguYTguK7guYkKK+C4ruC4seC4gQor4Liu4Lix4LiB4LmGCivguK7guLHguIfguYDguKUKK+C4ruC4seC4iOC4jeC5jAor4Liu4Lix4LiI4LiN4Liw4Liu4LmMCivguK7guLHguIjguI3guLUKK+C4ruC4seC5iOC4mQor4Liu4LiyCivguK7guYnguLIKK+C4ruC5iOC4suC4h+C4q+C4peC4p+C4hwor4Liu4Liy4Lib4LmI4LiyCivguK7guLLguKEKK+C4ruC4suC5gOC4o+C5h+C4oQor4Liu4Liy4Lir4LmM4LmA4LiZ4Li14Lii4LihCivguK7guYnguLLguYTguK7guYkKK+C4ruC4tOC4iOC5gOC4o+C4suC4sOC4q+C5jAor4Liu4Li04LiZ4LiU4Li5CivguK7guLTguJvguYLguJvguYLguJvguYDguJXguKHguLHguKoKK+C4ruC4tOC4quC4l+C4teC5gOC4o+C4teC4ogor4Liu4Li14LmA4Lil4Li14Lii4LihCivguK7guLYKK+C4ruC4tuC4gQor4Liu4Li24LiB4Lir4Liy4LiNCivguK7guLbguIHguKvguYnguLLguKcKK+C4ruC4tuC4geC5gOC4q+C4tOC4oQor4Liu4Li24LiB4LmC4Lir4LihCivguK7guLbguIHguK7guLHguIEKK+C4ruC4tuC4lAor4Liu4Li24LiU4Liu4Lix4LiUCivguK7guLbguYjguKEKK+C4ruC4tuC4ogor4Liu4Li24Lii4LmGCivguK7guLbguYjguKIKK+C4ruC4t+C4lOC4ruC4suC4lAor4Liu4Li34LitCivguK7guLfguK3guYYKK+C4ruC4t+C5iOC4rQor4Liu4Li34LmJ4LitCivguK7guLjguJQKK+C4ruC4uOC4mgor4Liu4Li44Lii4LmA4Lil4Liu4Li44LiiCivguK7guLnguYkKK+C4ruC4ueC4gQor4Liu4Li54LihCivguYDguK4KK+C5gOC4ruC4geC4leC4suC4o+C5jAor4LmA4Liu4LiB4LmC4LiV4LiB4Lij4Lix4LihCivguYDguK7guIHguYLguJXguYDguKHguJXguKMKK+C5gOC4ruC4geC5guC4leC4peC4tOC4leC4owor4LmA4Liu4LiHCivguYDguK7guIfguIvguKfguKIKK+C5gOC4ruC5h+C4lAor4LmA4Liu4LmC4Lih4LmC4LiB4Lil4Lia4Li04LiZCivguYDguK7guKIKK+C5gOC4ruC5ieC4ogor4LmA4Liu4LmC4Lij4Lit4Li14LiZCivguYDguK7guKXguLTguITguK3guJvguYDguJXguK3guKPguYwKK+C5gOC4ruC5guC4peC4quC4suC4o+C4sOC4nuC4sgor4LmA4Liu4LmJ4LinCivguYDguK7guK0KK+C5gOC4ruC5ieC4rQor4LmA4Liu4Liu4LiyCivguYDguK7guLTguKPguJXguIvguYwKK+C5gOC4ruC4teC5ieC4ouC4mQor4LmA4Liu4Li14LmJ4Lii4LiaCivguYDguK7guLXguYnguKLguKcKK+C5gOC4ruC4t+C4reC4gQor4LmA4Liu4Li34Lit4LiB4LmGCivguYDguK7guLfguK3guIHguKrguLjguJTguJfguYnguLLguKIKK+C5gOC4ruC4t+C4reC4mQor4LmB4LiuCivguYHguK7guYgKK+C5geC4ruC4gQor4LmB4Liu4LiB4LmGCivguYHguK7guYjguIHguLbguYrguJkKK+C5geC4ruC4meC4lOC5jOC4muC4reC4pQor4LmB4Liu4Lif4LmA4LiZ4Li14Lii4LihCivguYHguK7guKEKK+C5geC4ruC4sAor4LmC4LiuCivguYLguK7guIEKK+C5guC4ruC4geC4reC4t+C4rQor4LmC4Liu4LiB4Liu4Liy4LiBCivguYLguK7guYDguJXguYfguKUKK+C5guC4ruC4peC5gOC4oeC4teC4ouC4oQor4LmC4Liu4LiwCivguYTguK7guYkKK+C5hOC4ruC5guC4geC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LiU4Lij4LiyCivguYTguK7guYLguJTguKPguITguLLguKPguYzguJrguK3guJkKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4mQor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiL4Lix4Lil4LmE4Lif4LiU4LmMCivguYTguK7guYLguJTguKPguYDguIjguJnguYDguJ7guK3guKPguYzguK3guK3guIHguYTguIvguJTguYwKK+C5hOC4ruC5guC4lOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LmE4LifCivguYTguK7guYLguKUKK+C5hOC4ruC4ruC4tQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhLmphciBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I1OGU4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MjQxNzhjZDQ4YTBkYjJkN2JhOGE5ZDFlMmFmY2NkNTVlZjZiZGEzMzM0NWNkZTZmYWJmOGI4MjU4YmEwNmU5ZQorc2l6ZSA2OTEyMTgKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aDE4MDU3LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aDE4MDU3LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTk1ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoMTgwNTcudHh0CkBAIC0wLDAgKzEsMTc5MTcgQEAKK++7vyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKgorIyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMqCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjIAorIyBTb3J0ZWQgVGhhaSB3b3JkIGxpc3QgdXNlZCBmb3IgdGVzdGluZyB0aGUgVGhhaUNvbGxhdG9yIGNsYXNzLgorIyBUaGlzIGxpc3Qgd2FzIHRha2VuIGZyb20gdGhlIFdlYjogPGh0dHA6Ly9zZWFzcmMudGgubmV0L2RpY3QvZGljdC5odG0+CisjIGFuZCBzb21lIG9idmlvdXMgZ2FyYmFnZSBsaW5lcyAobnVsbHMsIGV0Yykgd2VyZSBkZWxldGVkCisjCisjIExpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBpZ25vcmVkOyBvdGhlcnMgYXJlIHRyZWF0ZWQgYXMgc2luZ2xlIHdvcmRzCisjIGluIHRoZSBVVEYtOCBlbmNvZGluZy4KKyMKKyMgWzEyLzE1Lzk5IGFsaXVdIHJlY29kZWQgZnJvbSBUSVMtNjIwIHRvIFVURi04CisjCivguIEKK+C4geC5hwor4LiB4LiBCivguIHguYrguIEKK+C4geC4geC4guC4meC4suC4gQor4LiB4LiB4Lix4LiT4LiP4LiB4LiwCivguIHguIHguLjguI8KK+C4geC4geC4uOC4lwor4LiB4LiB4Li44LiY4Lig4Lix4LiT4LiR4LmMCivguIHguIHguLjguKrguLHguJnguYLguJgKK+C4geC4hwor4LiB4LmI4LiHCivguIHguYnguIcKK+C4geC5iuC4hwor4LiB4LiH4LiB4Lit4LiZCivguIHguIfguIHguLLguKMKK+C4geC4h+C5guC4geC5iQor4LiB4LmJ4LiH4LmC4LiE4LmJ4LiHCivguIHguYnguIfguIcKK+C4geC4h+C4ieC4suC4gQor4LiB4LiH4LmE4LiJ4LmICivguIHguIfguYDguJXguYfguIEKK+C4geC4h+C4quC4tQor4LiB4LiH4Liq4Li44LilCivguIHguIoKK+C4geC4iuC4geC4owor4LiB4LiO4Li44Lih4Lie4Li1CivguIHguI8KK+C4geC4j+C4q+C4oeC4suC4ogor4LiB4LiP4LiwCivguIHguI/guLLguKvguLAKK+C4geC4j+C4tAor4LiB4LiP4Li44LiBCivguIHguJDguLTguJkKK+C4geC4kOC4tOC4meC4geC4suC4pQor4LiB4LiQ4Li04LiZ4LiV4LmJ4LiZCivguIHguJDguLTguJnguJfguLLguJkKK+C4geC4kOC4tOC4meC4o+C4suC4qeC4juC4o+C5jAor4LiB4LiQ4Li04LiZ4Lir4Lil4Lin4LiHCivguIHguJDguLTguJnguLHguJXguJbguLLguKPguIHguKPguKPguKEKK+C4geC4kOC4tOC4meC4uOC4l+C4mOC4suC4o+C4sAor4LiB4LiT4Li04LiB4LiZ4Lix4LiZ4LiV4LmMCivguIHguJPguLTguIHguLLguKPguYwKK+C4geC5gOC4k+C4o+C4uAor4LiB4LmA4LiT4Lij4Li44LiB4LiyCivguIHguJQKK+C4geC4lOC4hOC4seC4hwor4LiB4LiU4LmB4LiU4LiHCivguIHguJTguJfguLDguYDguKUKK+C4geC4lOC5guC4m+C5iuC4sAor4LiB4LiU4Lir4Lix4Lin4LmC4LiVCivguIHguJTguYDguKvguKXguLfguK3guIcKK+C4geC4leC4jeC4suC4kwor4LiB4LiV4Lih4Liy4Lil4Li1CivguIHguJXguYDguKfguJfguLTguJXguLIKK+C4geC4leC5gOC4p+C4l+C4tQor4LiB4LiV4Lix4LiN4LiK4Lil4Li1CivguIHguJXguLHguI3guI3guLjguJXguLIKK+C4geC4leC4seC4jeC4jeC4uQor4LiB4LiV4Liy4LiY4Li04LiB4Liy4LijCivguIHguJXguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4leC4tOC4geC4sgor4LiB4LiW4LiyCivguIHguJbguLTguIEKK+C4geC4luC4tOC4geC4suC4iOC4suC4o+C4ouC5jAor4LiB4LiX4Lij4Lij4LibCivguIHguJfguKXguLTguKHguKTguIQKK+C4geC4l+C4peC4tQor4LiB4LiZCivguIHguYjguJkKK+C4geC5ieC4mQor4LiB4LiZ4LiBCivguIHguJnguJkKK+C4geC4meC4meC5gOC4iuC4rQor4LiB4LmI4LiZ4LiZ4LmC4LiW4LiHCivguIHguJnguJnguYDguKvguLTguKEKK+C4geC4meC4tOC4qeC4kOC5jAor4LiB4LiZ4Li04Lip4LiQ4LiyCivguIHguJoKK+C4geC4muC4jwor4LiB4Lia4LiU4Liy4LiZCivguIHguJrguJTguLPguIHguJrguYHguJTguIcKK+C4geC4muC4l+C4uQor4LiB4Lia4Liy4LilCivguIHguJrguLTguJnguJfguKPguYwKK+C4geC4muC4tOC4pQor4LiB4Lia4Li04Lil4Lie4Lix4Liq4LiU4Li44LmMCivguIHguJrguLXguYgKK+C4geC4muC4ueC4owor4LiB4LmA4Lia4LiZ4LiX4Lij4LmMCivguIHguYLguJrguKMKK+C4geC5guC4muC4pQor4LiB4Lib4LiTCivguIHguJvguJPguIEKK+C4geC4m+C4k+C4sgor4LiB4Lib4Li0CivguIHguJvguLTguJXguLHguJkKK+C4geC4oQor4LiB4LmJ4LihCivguIHguKHguJPguJHguKXguLLguKDguLTguYDguKnguIEKK+C4geC4oeC4k+C4keC5guC4peC4l+C4gQor4LiB4Lih4LilCivguIHguKHguKXguILguLHguJPguJHguYwKK+C4geC4oeC4peC4hOC4o+C4o+C4oOC5jAor4LiB4Lih4Lil4LiJ4Lix4LiZ4LiX4LmMCivguIHguKHguKXguJ7guLLguJnguJjguJ4KK+C4geC4oeC4peC4sgor4LiB4Lih4Lil4Liy4LioCivguIHguKHguKXguLLguKrguJnguYwKK+C4geC4oeC5gOC4peC4qAor4LiB4Lih4Lix4LiT4LiR4Lil4Li4CivguIHguKHguLjguJcKK+C4geC4owor4LiB4Lij4LiBCivguIHguKPguIHguI4KK+C4geC4o+C4geC4juC4suC4hOC4oQor4LiB4Lij4LiHCivguIHguKPguIrguIHguLLguKIKK+C4geC4o+C4k+C4keC5jAor4LiB4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguJPguLUKK+C4geC4o+C4k+C4teC4ouC5jAor4LiB4Lij4LiT4Li14Lii4LiwCivguIHguKPguJQKK+C4geC4o+C4mQor4LiB4Lij4LiZ4LiX4LiyCivguIHguKPguJnguJnguYDguIrguYnguLIKK+C4geC4o+C4mgor4LiB4Lij4Lia4Li54LijCivguIHguKPguJ7guLTguJnguJjguLjguYwKK+C4geC4o+C4oOC4gQor4LiB4Lij4Lig4Li04LiZCivguIHguKPguKDguLXguKPguYwKK+C4geC4o+C4oOC4uOC4oQor4LiB4Lij4LihCivguIHguKPguKHguIHguKPguK3guKEKK+C4geC4o+C4oeC4geC4suC4owor4LiB4Lij4Lih4LiB4Liy4Lij4Lie4Li04LmA4Lio4LipCivguIHguKPguKHguYDguIHguKPguLXguKLguKEKK+C4geC4o+C4oeC4guC4uOC4mQor4LiB4Lij4Lih4LiK4Liw4LmB4Lih4LmICivguIHguKPguKHguJfguYjguLIKK+C4geC4o+C4oeC4l+C5iOC4suC4geC4peC4suC4hwor4LiB4Lij4Lih4LiX4LmI4Liy4LiC4Lin4LiyCivguIHguKPguKHguJfguYjguLLguIvguYnguLLguKIKK+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jAor4LiB4Lij4Lih4LiZ4LiE4Lij4Lia4Liy4LilCivguIHguKPguKHguJnguLIKK+C4geC4o+C4oeC4nuC4o+C4sAor4LiB4Lij4Lih4Lie4Lij4Liw4LiB4Lil4Liy4LmC4Lir4LihCivguIHguKPguKHguJ7guKPguLDguKLguLIKK+C4geC4o+C4oeC4oeC4q+C4suC4lOC5hOC4l+C4ogor4LiB4Lij4Lih4LmA4Lih4Li34Lit4LiHCivguIHguKPguKHguKfguLHguIcKK+C4geC4o+C4oeC4qOC4seC4geC4lOC4tAor4LiB4Lij4Lih4Liq4Lih4LmA4LiU4LmH4LiICivguIHguKPguKHguKvguKHguLfguYjguJkKK+C4geC4o+C4oeC4q+C4peC4p+C4hwor4LiB4Lij4Lih4Lix4LiP4LiP4LmMCivguIHguKPguKMKK+C4geC4o+C4o+C5hOC4geC4owor4LiB4Lij4Lij4LmA4LiI4Li14Lii4LiBCivguIHguKPguKPguIrguLTguIcKK+C4geC4o+C4o+C4iuC4tOC4lAor4LiB4Lij4Lij4LmA4LiK4LitCivguIHguKPguKPguYDguIrguYnguLIKK+C4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiB4Lij4Lij4LmC4LiK4LiBCivguIHguKPguKPguIvguYnguJnguJkKK+C4geC4o+C4o+C5geC4i+C4hwor4LiB4Lij4Lij4LiQ4LmMCivguIHguKPguKPguJDguLIKK+C4geC4o+C4o+C4kwor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguKPguJTguLQKK+C4geC4o+C4o+C4lOC4tOC4gQor4LiB4Lij4Lij4LiU4Li24LiBCivguIHguKPguKPguJXguLgKK+C4geC4o+C4o+C5hOC4leC4owor4LiB4Lij4Lij4LiX4LiaCivguIHguKPguKPguYHguJfguIEKK+C4geC4o+C4o+C5geC4l+C4o+C4gQor4LiB4Lij4Lij4Lia4Liy4Liq4Li04LiBCivguIHguKPguKPguJrguLTguJQKK+C4geC4o+C4o+C4muC4ueC4owor4LiB4Lij4Lij4Lib4Liy4Liq4Li04LiBCivguIHguKPguKPguJvguLjguKPguLAKK+C4geC4o+C4o+C4nuC4uOC4oQor4LiB4Lij4Lij4Lie4Li44LmI4LihCivguIHguKPguKPguKDguLTguKPguKHguKLguYwKK+C4geC4o+C4o+C4oQor4LiB4Lij4Lij4Lih4LmMCivguIHguKPguKPguKHguLLguIrguLXguJ4KK+C4geC4o+C4o+C4oeC4suC4mOC4tOC4geC4suC4owor4LiB4Lij4Lij4Lih4Liy4LijCivguIHguKPguKPguKXguLUKK+C4geC4o+C4o+C4peC4tuC4hwor4LiB4Lij4Lij4Lip4LiBCivguIHguKPguKPguKrguLAKK+C4geC4o+C4o+C5geC4quC4hwor4LiB4Lij4Lij4Lir4Liy4LiiCivguIHguKPguKPguYDguKvguLTguKEKK+C4geC4o+C4o+C5guC4q+C4ogor4LiB4Lij4Lij4LmA4Lit4LiyCivguIHguKPguKPguLjguJPguLIKK+C4geC4o+C4p+C4lAor4LiB4Lij4Lin4LiZCivguIHguKPguKfguJoKK+C4geC4o+C4p+C4oQor4LiB4Lij4LmJ4Lin4LihCivguIHguKPguKfguKIKK+C4geC4o+C4p+C4tOC4gQor4LiB4Lij4Liq4Liy4Lib4LiZ4LmMCivguIHguKPguKrguLjguJfguJjguLTguYwKK+C4geC4o+C4rQor4LiB4Lij4LmJ4LitCivguIHguKPguK3guIEKK+C4geC4o+C5h+C4reC4geC4geC4o+C5i+C4reC4ogor4LiB4Lij4Lit4LiB4LmB4LiB4Lij4LiBCivguIHguKPguK3guIcKK+C4geC4o+C4reC4h+C4geC4o+C4reC4ogor4LiB4Lij4Lit4LiUCivguIHguKPguYjguK3guJkKK+C4geC4o+C4reC4mgor4LiB4Lij4Lit4LihCivguIHguKPguYjguK3guKEKK+C4geC4o+C5iOC4reC4ogor4LiB4Lij4LiwCivguIHguKPguLDguIHguKMKK+C4geC4o+C4sOC4geC4o+C4seC4muC4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4mgor4LiB4Lij4Liw4LiB4Lij4Li14LmK4LiUCivguIHguKPguLDguIHguKPguLjguYjguJkKK+C4geC4o+C4sOC4geC4peC4seC4muC4geC4peC4reC4gQor4LiB4Lij4Liw4LiB4Lin4LiUCivguIHguKPguLDguIHguK3guIcKK+C4geC4o+C4sOC4geC4seC4lAor4LiB4Lij4Liw4LiB4Li14LmJCivguIHguKPguLDguIHguLnguKUKK+C4geC4o+C4sOC5gOC4geC4o+C4reC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LiBCivguIHguKPguLDguYDguIHguKPguLTguYjguJkKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4mgor4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguLDguYDguIHguKPguLXguKLguKcKK+C4geC4o+C4sOC5gOC4geC4o+C4teC5ieC4ouC4pwor4LiB4Lij4Liw4LmA4LiB4Lil4Li34Lit4LiBCivguIHguKPguLDguITguJkKK+C4geC4o+C4sOC4hOC4suC4ogor4LiB4Lij4Liw4LiE4Li44LiBCivguIHguKPguLDguIfguIHguIHguKPguLDguIfguLHguJkKK+C4geC4o+C4sOC4h+C4geC4geC4o+C4sOC5gOC4h+C4tOC5iOC4mQor4LiB4Lij4Liw4LiH4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiH4LmI4LiHCivguIHguKPguLDguIfguK3guJQKK+C4geC4o+C4sOC4h+C5iOC4reC4meC4geC4o+C4sOC5geC4h+C5iOC4mQor4LiB4Lij4Liw4LmC4LiH4LiBCivguIHguKPguLDguIjguIEKK+C4geC4o+C4sOC4iOC4hwor4LiB4Lij4Liw4LiI4LijCivguIHguKPguLDguIjguK3guIEKK+C4geC4o+C4sOC4iOC4reC4h+C4q+C4h+C5iOC4reC4hwor4LiB4Lij4Liw4LiI4Lit4LiH4Lit4LmB4LiHCivguIHguKPguLDguIjguYnguK3guJkKK+C4geC4o+C4sOC4iOC4reC4meC4q+C4uQor4LiB4Lij4Liw4LiI4LmJ4Lit4LiiCivguIHguKPguLDguIjguYvguK3guKvguKfguK0KK+C4geC4o+C4sOC4iOC4sAor4LiB4Lij4Liw4LiI4Lix4LiBCivguIHguKPguLDguIjguLHguIcKK+C4geC4o+C4sOC4iOC4seC4h+C4q+C4peC4seC4h+C5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LiI4Lix4LiUCivguIHguKPguLDguIjguLHguJoKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4tOC5ieC4hwor4LiB4Lij4Liw4LiI4Lix4Lia4Lib4Li14LmICivguIHguKPguLDguIjguYjguLIKK+C4geC4o+C4sOC4iOC5iOC4suC4hwor4LiB4Lij4Liw4LiI4Liy4LiUCivguIHguKPguLDguIjguLLguJkKK+C4geC4o+C4sOC4iOC4suC4mgor4LiB4Lij4Liw4LiI4Liy4LihCivguIHguKPguLDguIjguLLguKIKK+C4geC4o+C4sOC4iOC4suC4pwor4LiB4Lij4Liw4LiI4Li04LiBCivguIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4tOC4lAor4LiB4Lij4Liw4LiI4Li04LiaCivguIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4tOC4o+C4tOC4lAor4LiB4Lij4Liw4LiI4Li04LmL4LinCivguIHguKPguLDguIjguLXguYkKK+C4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li44LiBCivguIHguKPguLDguIjguLjguYvguIfguIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4uOC4mgor4LiB4Lij4Liw4LiI4Li44LmK4LiaCivguIHguKPguLDguIjguLjguJrguIHguKPguLDguIjguLTguJoKK+C4geC4o+C4sOC4iOC4uOC5i+C4oeC4geC4o+C4sOC4iOC4tOC5i+C4oQor4LiB4Lij4Liw4LiI4Li44LiiCivguIHguKPguLDguIjguLnguYkKK+C4geC4o+C4sOC4iOC4ueC5i+C4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li54LiUCivguIHguKPguLDguYDguIjguK3guLDguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmI4LiyCivguIHguKPguLDguYDguIjguYnguLIKK+C4geC4o+C4sOC5gOC4iOC4suC4sAor4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLTguJTguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5ieC4ouC4hwor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4LiaCivguIHguKPguLDguYDguIjguLXguKLguKcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4pwor4LiB4Lij4Liw4LmB4LiI4LiwCivguIHguKPguLDguYLguIjguJkKK+C4geC4o+C4sOC5guC4iOC4oQor4LiB4Lij4Liw4LiJ4LiHCivguIHguKPguLDguInguK3guIEKK+C4geC4o+C4sOC4ieC5iOC4reC4mQor4LiB4Lij4Liw4LiJ4Lix4Lia4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguInguLTguYjguIcKK+C4geC4o+C4sOC4ieC4teC4gQor4LiB4Lij4Liw4LiJ4Li44LiBCivguIHguKPguLDguInguLnguJQKK+C4geC4o+C4sOC5gOC4ieC4gQor4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguYDguInguJQKK+C4geC4o+C4sOC5geC4ieC4gQor4LiB4Lij4Liw4LmB4LiJ4LmI4LiZCivguIHguKPguLDguYLguInguIHguIHguKPguLDguYDguInguIEKK+C4geC4o+C4sOC5guC4ieC4oQor4LiB4Lij4Liw4LiK4LiHCivguIHguKPguLDguIrguJTguIHguKPguLDguIrguYnguK3guKIKK+C4geC4o+C4sOC4iuC4p+C4ogor4LiB4Lij4Liw4LiK4Lit4LiBCivguIHguKPguLDguIrguK3guJkKK+C4geC4o+C4sOC4iuC4reC4oQor4LiB4Lij4Liw4LiK4Lit4Lih4LiU4Lit4LiBCivguIHguKPguLDguIrguYnguK3guKIKK+C4geC4o+C4sOC4iuC5ieC4reC4ouC4meC4suC4h+C4o+C4swor4LiB4Lij4Liw4LiK4Lix4LiHCivguIHguKPguLDguIrguLHguYnguJkKK+C4geC4o+C4sOC4iuC4seC4mgor4LiB4Lij4Liw4LiK4Liy4LiBCivguIHguKPguLDguIrguYjguLLguIcKK+C4geC4o+C4sOC4iuC4suC5gOC4lOC4tOC4oQor4LiB4Lij4Liw4LiK4Liy4LiiCivguIHguKPguLDguIrguLTguIcKK+C4geC4o+C4sOC4iuC4tOC4lAor4LiB4Lij4Liw4LiK4Li4CivguIHguKPguLDguIrguLjguIEKK+C4geC4o+C4sOC4iuC4uOC5iOC4oeC4geC4o+C4sOC4iuC4p+C4ogor4LiB4Lij4Liw4LmA4LiK4LitCivguIHguKPguLDguYDguIrguLIKK+C4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiB4Lij4Liw4LmA4LiK4Li14Lii4LiHCivguIHguKPguLDguYHguIrguIcKK+C4geC4o+C4sOC5geC4iuC4sAor4LiB4Lij4Liw4LmC4LiK4LiBCivguIHguKPguLDguIvguKfguKIKK+C4geC4o+C4sOC4i+C5ieC4rQor4LiB4Lij4Liw4LiL4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiL4LmI4LiHCivguIHguKPguLDguIvguLHguJoKK+C4geC4o+C4sOC4i+C4seC4muC4m+C4suC4geC5gOC4o+C4t+C4rQor4LiB4Lij4Liw4LiL4LmI4Liy4LiHCivguIHguKPguLDguIvguLLguJoKK+C4geC4o+C4sOC4i+C4tOC4gQor4LiB4Lij4Liw4LiL4Li04LiaCivguIHguKPguLDguIvguLXguYkKK+C4geC4o+C4sOC4i+C4teC5ieC4geC4o+C4sOC4i+C5ieC4rQor4LiB4Lij4Liw4LiL4Li44LiHCivguIHguKPguLDguIvguLjguJrguIHguKPguLDguIvguLTguJoKK+C4geC4o+C4sOC4i+C4uOC5ieC4oQor4LiB4Lij4Liw4LiL4Li54LmICivguIHguKPguLDguYDguIsKK+C4geC4o+C4sOC5gOC4i+C5h+C4mQor4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguK0KK+C4geC4o+C4sOC5gOC4i+C4reC4sOC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmA4LiL4LmJ4LiyCivguIHguKPguLDguYDguIvguLTguIcKK+C4geC4o+C4sOC5geC4iwor4LiB4Lij4Liw4LmB4LiL4LiwCivguIHguKPguLDguYLguIvguIHguKPguLDguYDguIsKK+C4geC4o+C4sOC4juC4tQor4LiB4Lij4Liw4LiO4Li44Lih4Lie4Li1CivguIHguKPguLDguJTguIEKK+C4geC4o+C4sOC4lOC5ieC4hwor4LiB4Lij4Liw4LiU4LiZ4LmC4LiU4LmICivguIHguKPguLDguJTguKfguIcKK+C4geC4o+C4sOC4lOC4p+C4mQor4LiB4Lij4Liw4LiU4LmJ4Lin4Lih4LiB4Lij4Liw4LmA4LiU4Li14LmJ4Lii4LihCivguIHguKPguLDguJTguK0KK+C4geC4o+C4sOC4lOC4reC4hwor4LiB4Lij4Liw4LiU4Lit4LiH4Lir4Liy4LiiCivguIHguKPguLDguJTguK3guJkKK+C4geC4o+C4sOC4lOC4reC4oQor4LiB4Lij4Liw4LiU4Lix4LiB4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguJTguLHguIfguIfguLHguKcKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4sgor4LiB4Lij4Liw4LiU4Liy4LiBCivguIHguKPguLDguJTguYnguLLguIcKK+C4geC4o+C4sOC4lOC4suC4h+C4peC4suC4hwor4LiB4Lij4Liw4LiU4Liy4LiUCivguIHguKPguLDguJTguLLguJTguILguLLguKcKK+C4geC4o+C4sOC4lOC4suC4mQor4LiB4Lij4Liw4LiU4Liy4LipCivguIHguKPguLDguJTguLLguKnguYDguJfguKgKK+C4geC4o+C4sOC4lOC4s+C4geC4o+C4sOC4lOC5iOC4suC4hwor4LiB4Lij4Liw4LiU4Li04LiBCivguIHguKPguLDguJTguLTguYjguIcKK+C4geC4o+C4sOC4lOC4tOC5ieC4hwor4LiB4Lij4Liw4LiU4Li04LmI4LiH4LiX4Lit4LiHCivguIHguKPguLDguJTguLTguJrguYYKK+C4geC4o+C4sOC4lOC4teC5iAor4LiB4Lij4Liw4LiU4Li14LmJ4LiB4Lij4Liw4LmA4LiU4Li14Lii4LihCivguIHguKPguLDguJTguLXguYjguKvguKHguYnguK0KK+C4geC4o+C4sOC4lOC4tuC4hwor4LiB4Lij4Liw4LiU4Li34LiaCivguIHguKPguLDguJTguLgKK+C4geC4o+C4sOC4lOC4uOC4geC4geC4o+C4sOC4lOC4tOC4gQor4LiB4Lij4Liw4LiU4Li44LmJ4LiH4LiB4Lij4Liw4LiU4Li04LmJ4LiHCivguIHguKPguLDguJTguLjguJrguYYKK+C4geC4o+C4sOC4lOC4uOC4muC4geC4o+C4sOC4lOC4tOC4mgor4LiB4Lij4Liw4LiU4Li44LihCivguIHguKPguLDguJTguLnguIEKK+C4geC4o+C4sOC5gOC4lOC5ieC4hwor4LiB4Lij4Liw4LmA4LiU4LmH4LiZCivguIHguKPguLDguYDguJTguYnguLIKK+C4geC4o+C4sOC5gOC4lOC4suC4sAor4LiB4Lij4Liw4LmA4LiU4Li04LiUCivguIHguKPguLDguYDguJTguLXguYnguKIKK+C4geC4o+C4sOC5gOC4lOC4teC4ouC4lAor4LiB4Lij4Liw4LmA4LiU4Li14Lii4LihCivguIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHCivguIHguKPguLDguYHguJTguYfguIHguYYKK+C4geC4o+C4sOC5geC4lOC5ieC4hwor4LiB4Lij4Liw4LmB4LiU4LmJ4LmB4Lij4LmICivguIHguKPguLDguYHguJTguYjguKfguYYKK+C4geC4o+C4sOC5geC4lOC4sAor4LiB4Lij4Liw4LmC4LiU4LiBCivguIHguKPguLDguYLguJTguIcKK+C4geC4o+C4sOC5guC4lOC4h+C5geC4lOC4hwor4LiB4Lij4Liw4LmC4LiU4LiUCivguIHguKPguLDguYLguJTguJkKK+C4geC4o+C4sOC5g+C4lAor4LiB4Lij4Liw4LmE4LiUCivguIHguKPguLDguJXguKPguIHguIHguKPguLDguJXguKPguLMKK+C4geC4o+C4sOC4leC4o+C5ieC4rQor4LiB4Lij4Liw4LiV4Lij4Lix4LiaCivguIHguKPguLDguJXguKPguLLguIEKK+C4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4Li44LiUCivguIHguKPguLDguJXguKPguLjguKEKK+C4geC4o+C4sOC4leC5ieC4p+C4oeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiV4LmJ4LitCivguIHguKPguLDguJXguYjguK3guIfguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC4leC5iuC4reC4mgor4LiB4Lij4Liw4LiV4LmI4Lit4LihIHsg4LiB4Li64Lij4Liw4LiV4LmI4Lit4LihIH0KK+C4geC4o+C4sOC4leC5ieC4reC4ouC4leC4teC4p+C4tOC4lAor4LiB4Lij4Liw4LiV4Lix4LiBCivguIHguKPguLDguJXguLHguYnguKcKK+C4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LiV4LmK4Liy4LiBCivguIHguKPguLDguJXguYjguLLguKIKK+C4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLTguYrguJQKK+C4geC4o+C4sOC4leC4tOC4mgor4LiB4Lij4Liw4LiV4Li34Lit4Lij4Li34Lit4Lij4LmJ4LiZCivguIHguKPguLDguJXguLjguIEKK+C4geC4o+C4sOC4leC4uOC4geC4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li44LmJ4LiH4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLjguYjguJkKK+C4geC4o+C4sOC4leC4uOC5ieC4mQor4LiB4Lij4Liw4LiV4Li54LiaCivguIHguKPguLDguYDguJXguIcKK+C4geC4o+C4sOC5gOC4leC5h+C4mQor4LiB4Lij4Liw4LmA4LiV4Lit4LiwCivguIHguKPguLDguYDguJXguYjguLIKK+C4geC4o+C4sOC5gOC4leC4suC4sAor4LiB4Lij4Liw4LmA4LiV4Liy4Liw4LiB4Lij4Liw4LmB4LiV4LiwCivguIHguKPguLDguYDguJXguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4leC4t+C5ieC4reC4hwor4LiB4Lij4Liw4LmB4LiVCivguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC5geC4leC5geC4leC5ieC5geC4p+C5ieC4lAor4LiB4Lij4Liw4LmB4LiV4Lin4Lix4LiaCivguIHguKPguLDguYHguJXguLAKK+C4geC4o+C4sOC5guC4leC4geC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LmC4LiV4LiZCivguIHguKPguLDguYTguJXguKMKK+C4geC4o+C4sOC4luC4lAor4LiB4Lij4Liw4LiW4Lit4LiaCivguIHguKPguLDguJbguLHguYjguKcKK+C4geC4o+C4sOC4luC4suC4hwor4LiB4Lij4Liw4LiW4Li04LiBCivguIHguKPguLDguJbguLTguJkKK+C4geC4o+C4sOC4luC4tuC4gQor4LiB4Lij4Liw4LmA4LiW4Li04LiaCivguIHguKPguLDguYLguJbguJkKK+C4geC4o+C4sOC4l+C4gQor4LiB4Lij4Liw4LiX4LiHCivguIHguKPguLDguJfguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4lAor4LiB4Lij4Liw4LiX4LiaCivguIHguKPguLDguJfguKPguKfguIcKK+C4geC4o+C4sOC4l+C4p+C4oiB7IOC4geC4uuC4o+C4sOC4l+C4p+C4oiB9CivguIHguKPguLDguJfguK3guIEKK+C4geC4o+C4sOC4l+C5ieC4reC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LiZ4LiB4Lij4Liw4LmB4LiX4LmI4LiZCivguIHguKPguLDguJfguYjguK3guKEKK+C4geC4o+C4sOC4l+C5ieC4reC4oeC4geC4o+C4sOC5geC4l+C5ieC4oQor4LiB4Lij4Liw4LiX4LiwCivguIHguKPguLDguJfguLHguYjguIcKK+C4geC4o+C4sOC4l+C4seC5iOC4h+C4leC4tOC4lAor4LiB4Lij4Liw4LiX4Lix4LiZCivguIHguKPguLDguJfguLHguYnguJkKK+C4geC4o+C4sOC4l+C4sgor4LiB4Lij4Liw4LiX4Liy4LiK4Liy4LiiCivguIHguKPguLDguJfguLLguKIKK+C4geC4o+C4sOC4l+C4suC4ouC5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4Liy4Liq4Li1CivguIHguKPguLDguJfguLLguKvguK3guIcKK+C4geC4o+C4sOC4l+C4swor4LiB4Lij4Liw4LiX4Li04LiB4LiB4Lij4Liw4LiX4Lin4LiiCivguIHguKPguLDguJfguLTguIcKK+C4geC4o+C4sOC4l+C4tuC4hwor4LiB4Lij4Liw4LiX4Li34LiaCivguIHguKPguLDguJfguLgKK+C4geC4o+C4sOC4l+C4uOC4hwor4LiB4Lij4Liw4LiX4Li44LmJ4LiHCivguIHguKPguLDguJfguLjguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4uOC4h+C4q+C4oeC4suC4muC5ieC4sgor4LiB4Lij4Liw4LiX4Li44LiH4LmA4Lir4LinCivguIHguKPguLDguJfguLjguYjguKEKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiX4Li44LmI4Lih4LiZ4LiyCivguIHguKPguLDguJfguLjguYjguKHguKvguKHguLkKK+C4geC4o+C4sOC4l+C4ueC5iQor4LiB4Lij4Liw4LmA4LiX4LmICivguIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiX4Li34Lit4LiZCivguIHguKPguLDguYDguJfguLfguYnguK3guKEKK+C4geC4o+C4sOC5geC4l+C4gQor4LiB4Lij4Liw4LmB4LiX4LmI4LiZCivguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC5geC4l+C4sAor4LiB4Lij4Liw4LmE4LiX4LiK4Liy4LiiCivguIHguKPguLDguJnguIEKK+C4geC4o+C4sOC4meC5iOC4reC4hwor4LiB4Lij4Liw4LiZ4Lix4LmJ4LiZCivguIHguKPguLDguJnguLXguYkKK+C4geC4o+C4sOC5guC4meC5ieC4mQor4LiB4Lij4Liw4LmE4LiZCivguIHguKPguLDguJrguIEKK+C4geC4o+C4sOC4muC4geC4hOC4suC4ogor4LiB4Lij4Liw4Lia4LiWCivguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC4muC4p+C4ogor4LiB4Lij4Liw4Lia4Lin4LijCivguIHguKPguLDguJrguK3guIEKK+C4geC4o+C4sOC4muC4reC4geC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4Lia4Lit4LiHCivguIHguKPguLDguJrguK3guIfguIHguLHguJkKK+C4geC4o+C4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguIHguKPguLDguJrguLAKK+C4geC4o+C4sOC4muC4seC4lAor4LiB4Lij4Liw4Lia4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguJrguYjguLIKK+C4geC4o+C4sOC4muC5ieC4sgor4LiB4Lij4Liw4Lia4Liy4LiBCivguIHguKPguLDguJrguLLguKIKK+C4geC4o+C4sOC4muC4suC4pSB7IOC4geC4uuC4o+C4sOC4muC4suC4mSB9CivguIHguKPguLDguJrguLQKK+C4geC4o+C4sOC4muC4tOC5ieC4hwor4LiB4Lij4Liw4Lia4Li04LiUCivguIHguKPguLDguJrguLTguKUKK+C4geC4o+C4sOC4muC4teC5iAor4LiB4Lij4Liw4Lia4Li34LitCivguIHguKPguLDguJrguLjguIcKK+C4geC4o+C4sOC4muC4uOC4oQor4LiB4Lij4Liw4Lia4Li44LmI4Lih4LiB4Lij4Liw4Lia4LmI4Liy4LihCivguIHguKPguLDguJrguLnguYnguIHguKPguLDguJrguLXguYkKK+C4geC4o+C4sOC4muC4ueC4mQor4LiB4Lij4Liw4Lia4Li54LijCivguIHguKPguLDguYDguJrguIcKK+C4geC4o+C4sOC5gOC4muC4jQor4LiB4Lij4Liw4LmA4Lia4LmH4LiU4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguYDguJrguJkKK+C4geC4o+C4sOC5gOC4muC4sgor4LiB4Lij4Liw4LmA4Lia4Li04LiBCivguIHguKPguLDguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiZCivguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4luC5ieC4p+C4ogor4LiB4Lij4Liw4LmB4Lia4LmICivguIHguKPguLDguYHguJrguIEKK+C4geC4o+C4sOC5geC4muC4geC4h+C4sgor4LiB4Lij4Liw4LmB4Lia4LiwCivguIHguKPguLDguYLguJrguKEKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC4m+C4swor4LiB4Lij4Liw4Lib4Lih4LiB4Lij4Liw4LmA4Lib4LiyCivguIHguKPguLDguJvguKPguK3guIEKK+C4geC4o+C4sOC4m+C4o+C4reC4geC4p+C5iOC4suC4pwor4LiB4Lij4Liw4Lib4Lij4Li14LmJ4LiB4Lij4Liw4LmA4Lib4Lij4LmI4LiyCivguIHguKPguLDguJvguK3guIEKK+C4geC4o+C4sOC4m+C5ieC4reC4geC4o+C4sOC5geC4m+C5iQor4LiB4Lij4Liw4Lib4LmI4Lit4LiHCivguIHguKPguLDguJvguYvguK3guIcKK+C4geC4o+C4sOC4m+C4reC4lOC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4Lib4LmL4Lit4Lir4Lil4LitCivguIHguKPguLDguJvguLHguYnguKfguIHguKPguLDguYDguJvguLXguYnguKIKK+C4geC4o+C4sOC4m+C5iOC4swor4LiB4Lij4Liw4Lib4Li04LmI4LihCivguIHguKPguLDguJvguLjguIEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4LmI4LizCivguIHguKPguLDguJvguLjguYjguKHguIHguKPguLDguJvguLTguYjguKEKK+C4geC4o+C4sOC5gOC4m+C4sgor4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguIHguKPguLDguYDguJvguLLguLAKK+C4geC4o+C4sOC5gOC4m+C4teC5ieC4oiB7IOC4geC4uuC4o+C4sOC5gOC4m+C4teC5ieC4oiB9CivguIHguKPguLDguYHguJvguYkKK+C4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4LmC4Lib4LiBCivguIHguKPguLDguYLguJvguKPguIcKK+C4geC4o+C4sOC5guC4m+C4o+C4h+C4l+C4reC4hwor4LiB4Lij4Liw4Lic4LihCivguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4peC4teC4geC4o+C4sOC4nOC4peC4suC4oQor4LiB4Lij4Liw4Lic4Liy4LiZCivguIHguKPguLDguJzguLXguIEKK+C4geC4o+C4sOC4nuC4o+C4p+C4mQor4LiB4Lij4Liw4Lie4Lij4Li04LmJ4LihCivguIHguKPguLDguJ7guK3guIEKK+C4geC4o+C4sOC4nuC4reC4geC4p+C4seC4pwor4LiB4Lij4Liw4Lie4Lit4LiHCivguIHguKPguLDguJ7guYnguK3guKEKK+C4geC4o+C4sOC4nuC4seC4gQor4LiB4Lij4Liw4Lie4Lix4LiHCivguIHguKPguLDguJ7guLHguIfguYDguKvguLTguKMKK+C4geC4o+C4sOC4nuC4seC4h+C5guC4q+C4oQor4LiB4Lij4Liw4Lie4Lix4LiUCivguIHguKPguLDguJ7guLHguJTguYHguKHguYjguKHguYjguLLguKIKK+C4geC4o+C4sOC4nuC4seC4leC4owor4LiB4Lij4Liw4Lie4Lix4LiZCivguIHguKPguLDguJ7guLHguYjguJkKK+C4geC4o+C4sOC4nuC4sgor4LiB4Lij4Liw4Lie4Liy4LiBIHsg4LiB4Li64Lij4Liw4Lie4Liy4LiBIH0KK+C4geC4o+C4sOC4nuC4teC5iQor4LiB4Lij4Liw4Lie4Li34LitCivguIHguKPguLDguJ7guLjguYnguIcKK+C4geC4o+C4sOC4nuC4uOC5iOC4oQor4LiB4Lij4Liw4LmA4Lie4Lil4Li04LioCivguIHguKPguLDguYDguJ7guLLguLAKK+C4geC4o+C4sOC5gOC4nuC4suC4sOC4m+C4peC4sgor4LiB4Lij4Liw4LmA4Lie4Li04LiHCivguIHguKPguLDguYDguJ7guLfguYjguK3guKEKK+C4geC4o+C4sOC5geC4nuC4hwor4LiB4Lij4Liw4LmB4Lie4LmJ4LiHCivguIHguKPguLDguJ/guLHguJTguIHguKPguLDguYDguJ/guLXguKLguJQKK+C4geC4o+C4sOC4n+C4suC4ogor4LiB4Lij4Liw4Lif4Li54Lih4LiB4Lij4Liw4Lif4Liy4LiiCivguIHguKPguLDguYDguJ/guLXguKLguJQKK+C4geC4o+C4sOC4oeC4pQor4LiB4Lij4Liw4Lih4Lit4LiaCivguIHguKPguLDguKHguK3guKHguIHguKPguLDguYHguKHguKEKK+C4geC4o+C4sOC4oeC4seC4hwor4LiB4Lij4Liw4Lih4Lix4LiZCivguIHguKPguLDguKHguLTguJTguIHguKPguLDguYDguKHguLXguYnguKLguJkKK+C4geC4o+C4sOC4oeC4tuC4mQor4LiB4Lij4Liw4Lih4Li44LiXCivguIHguKPguLDguYDguKHguLLguLAKK+C4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC5iOC4reC4h+C4geC4o+C4sOC5geC4ouC5iOC4hwor4LiB4Lij4Liw4Lii4LmI4Lit4LiZCivguIHguKPguLDguKLguYjguK3guKEKK+C4geC4o+C4sOC4ouC4sgor4LiB4Lij4Liw4Lii4Liy4LiHCivguIHguKPguLDguKLguLLguIjguIEKK+C4geC4o+C4sOC4ouC4suC4lAor4LiB4Lij4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguKPguLDguKLguLTguIEKK+C4geC4o+C4sOC4ouC4tOC5ieC4oeC4geC4o+C4sOC4ouC5iOC4reC4hwor4LiB4Lij4Liw4Lii4Li24LiB4LiB4Lij4Liw4Lii4Li34LitCivguIHguKPguLDguKLguLbguJTguIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC5gOC4ouC5ieC4reC4geC4o+C4sOC5geC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4LmB4Lii4LmI4LiHCivguIHguKPguLDguKPguK3guIEKK+C4geC4o+C4sOC4o+C4reC4geC4meC5ieC4s+C4guC5ieC4suC4pwor4LiB4Lij4Liw4LmA4Lij4Li14Lii4LiZCivguIHguKPguLDguYLguKPguIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5guC4o+C4geC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LmE4LijCivguIHguKPguLDguKXguJQKK+C4geC4o+C4sOC4peC4mgor4LiB4Lij4Liw4Lil4Lit4LiBCivguIHguKPguLDguKXguK3guKEKK+C4geC4o+C4sOC4peC4sOC4q+C4peC5iOC4swor4LiB4Lij4Liw4Lil4Lix4LiUCivguIHguKPguLDguKXguLHguJoKK+C4geC4o+C4sOC4peC4seC4oeC4nuC4owor4LiB4Lij4Liw4Lil4LiyCivguIHguKPguLDguKXguLLguIHguLLguKMKK+C4geC4o+C4sOC4peC4suC4ouC4geC4o+C4sOC4peC4reC4gQor4LiB4Lij4Liw4Lil4LizCivguIHguKPguLDguKXguLPguJ7guKMKK+C4geC4o+C4sOC4peC4s+C4nuC4seC4gQor4LiB4Lij4Liw4Lil4Liz4Lie4Li44LiBCivguIHguKPguLDguKXguLTguIcKK+C4geC4o+C4sOC4peC4tQor4LiB4Lij4Liw4Lil4Li24LiHCivguIHguKPguLDguKXguLjguKHguJ7guLLguIcKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Li5CivguIHguKPguLDguKXguLnguJkKK+C4geC4o+C4sOC4peC4ueC5iOC4meC5jAor4LiB4Lij4Liw4LmA4Lil4LmH4LiZCivguIHguKPguLDguYDguKXguLXguKLguJQKK+C4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4LmC4Lil4LiHCivguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4seC4lAor4LiB4Lij4Liw4Lin4LmI4LiyCivguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4suC4mQor4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguKfguLTguJkKK+C4geC4o+C4sOC4p+C4tQor4LiB4Lij4Liw4Lin4Li14LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguKfguLnguJTguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC5gOC4p+C4mQor4LiB4Lij4Liw4LmA4Lin4Lii4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguYHguKfguJkKK+C4geC4o+C4sOC5guC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lio4LiBCivguIHguKPguLDguKjguLHguKIKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lij4Liw4Lip4Lix4LiV4Lij4Li1CivguIHguKPguLDguKnguLHguKIKK+C4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LiB4Lij4Liw4Lip4Li04LijCivguIHguKPguLDguYDguKnguKEKK+C4geC4o+C4sOC5gOC4qeC4teC4ouC4owor4LiB4Lij4Liw4Liq4LiHCivguIHguKPguLDguKrguJkKK+C4geC4o+C4sOC4quC4mgor4LiB4Lij4Liw4Liq4LihCivguIHguKPguLDguKrguKPguKfguKUKK+C4geC4o+C4sOC4quC4o+C5ieC4reC4ogor4LiB4Lij4Liw4Liq4Lin4LiZCivguIHguKPguLDguKrguKfguKIKK+C4geC4o+C4sOC4quC4reC4mgor4LiB4Lij4Liw4Liq4LiwCivguIHguKPguLDguKrguLHguIcKK+C4geC4o+C4sOC4quC4seC4mQor4LiB4Lij4Liw4Liq4Lix4Lia4LiB4Lij4Liw4Liq4LmI4Liy4LiiCivguIHguKPguLDguKrguLIKK+C4geC4o+C4sOC4quC4suC4meC4leC4tOC5jAor4LiB4Lij4Liw4Liq4Liy4LiaCivguIHguKPguLDguKrguLLguKIKK+C4geC4o+C4sOC4quC5iOC4suC4ogor4LiB4Lij4Liw4Liq4Li04LiZ4LiY4Li4CivguIHguKPguLDguKrguLfguK0KK+C4geC4o+C4sOC4quC4uOC4h+C4geC4o+C4sOC4quC4tOC4hwor4LiB4Lij4Liw4Liq4Li44LiZCivguIHguKPguLDguKrguLnguJfguJjguLTguYwKK+C4geC4o+C4sOC4quC4ueC4mgor4LiB4Lij4Liw4LmA4Liq4LiUCivguIHguKPguLDguYDguKrguYfguJnguIHguKPguLDguKrguLLguKIKK+C4geC4o+C4sOC5gOC4quC5iOC4sgor4LiB4Lij4Liw4LmA4Liq4Liy4Liw4LiB4Lij4Liw4LmB4Liq4LiwCivguIHguKPguLDguYDguKrguLXguKLguJkKK+C4geC4o+C4sOC5gOC4quC4teC4ouC4owor4LiB4Lij4Liw4LmA4Liq4Li34Lit4LiB4LiB4Lij4Liw4Liq4LiZCivguIHguKPguLDguYHguKoKK+C4geC4o+C4sOC5geC4quC4hwor4LiB4Lij4Liw4LmB4Liq4LiwIHsg4LiB4Li64Lij4Liw4LmB4Liq4LiwIH0KK+C4geC4o+C4sOC5guC4quC4hwor4LiB4Lij4Liw4LmE4LiqCivguIHguKPguLDguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4q+C4mQor4LiB4Lij4Liw4Lir4LiZ4LiBCivguIHguKPguLDguKvguJnguIHguIHguLTguJnguKPguLUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4pOC4oeC4tOC4lQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiZ4Liy4Lij4Li1CivguIHguKPguLDguKvguJnguYjguK3guIcKK+C4geC4o+C4sOC4q+C4meC4suC4gQor4LiB4Lij4Liw4Lir4LiZ4LmI4LizCivguIHguKPguLDguKvguKHguKfguJQKK+C4geC4o+C4sOC4q+C4oeC4reC4mgor4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguIHguKPguLDguKvguKHguLHguYjguIcKK+C4geC4o+C4sOC4q+C4oeC5iOC4sgor4LiB4Lij4Liw4Lir4Lih4Li04LiUCivguIHguKPguLDguKvguKHguLTguJoKK+C4geC4o+C4sOC4q+C4oeC4uOC4lOC4geC4o+C4sOC4q+C4oeC4tOC4lAor4LiB4Lij4Liw4Lir4Lih4Li44LmI4LiZCivguIHguKPguLDguKvguKHguLjguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4Lir4Lii4LiUCivguIHguKPguLDguKvguKLguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lir4Lii4LmI4Lit4LihCivguIHguKPguLDguKvguKLguLAKK+C4geC4o+C4sOC4q+C4ouC4seC4hwor4LiB4Lij4Liw4Lir4Lii4Lix4LiaCivguIHguKPguLDguKvguKLguLTguYjguKEKK+C4geC4o+C4sOC4q+C4o+C4reC4lAor4LiB4Lij4Liw4Lir4Lij4Li04LmI4LiHCivguIHguKPguLDguKvguKfguJkKK+C4geC4o+C4sOC4q+C4p+C4seC4lAor4LiB4Lij4Liw4Lir4Lin4Lix4LiU4LmA4LiB4Lil4LmJ4LiyCivguIHguKPguLDguKvguKfguYjguLIKK+C4geC4o+C4sOC4q+C4reC4hwor4LiB4Lij4Liw4Lir4Lix4LiHCivguIHguKPguLDguKvguLHguJQKK+C4geC4o+C4sOC4q+C4suC4hyB7IOC4geC4uuC4o+C4sOC4q+C4suC4hyB9CivguIHguKPguLDguKvguLLguKIKK+C4geC4o+C4sOC4q+C4tuC4oQor4LiB4Lij4Liw4Lir4Li24LmI4LihCivguIHguKPguLDguKvguLfguJTguIHguKPguLDguKvguK3guJoKK+C4geC4o+C4sOC5gOC4q+C5h+C4mQor4LiB4Lij4Liw4LmA4Lir4LiZ4LmH4LiICivguIHguKPguLDguYDguKvguJnguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5gOC4q+C4oeC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lir4Lih4LmH4LiU4LiB4Lij4Liw4LmB4Lir4Lih4LmICivguIHguKPguLDguYDguKvguKHguYjguJkKK+C4geC4o+C4sOC5gOC4q+C4oeC5iOC4sgor4LiB4Lij4Liw4LmA4Lir4Lil4Li14Lii4LiBCivguIHguKPguLDguYDguKvguKfguYjguLIKK+C4geC4o+C4sOC5gOC4q+C5iOC4rQor4LiB4Lij4Liw4LmA4Lir4Li04LihCivguIHguKPguLDguYDguKvguLXguYnguKLguJnguIHguKPguLDguKvguLfguK3guKPguLfguK0KK+C4geC4o+C4sOC5geC4q+C4l+C4reC4hwor4LiB4Lij4Liw4LmB4Lir4LiZCivguIHguKPguLDguYHguKvguJnguYgKK+C4geC4o+C4sOC5geC4q+C4meC4mgor4LiB4Lij4Liw4LmB4Lir4LiZ4LiwCivguIHguKPguLDguYHguKvguKHguJoKK+C4geC4o+C4sOC5geC4q+C4oeC5iOC4pwor4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCivguIHguKPguLDguYHguKvguKPguYjguKEKK+C4geC4o+C4sOC5geC4q+C4peC5iOC4hwor4LiB4Lij4Liw4LmC4Lir4LmJCivguIHguKPguLDguYLguKvguJnguJQKK+C4geC4o+C4sOC5guC4q+C4oQor4LiB4Lij4Liw4LmC4Lir4LiiCivguIHguKPguLDguYLguKvguKLguYjguIcKK+C4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lin4LilCivguIHguKPguLDguK3guYnguK3guIHguKPguLDguYHguK3guYkKK+C4geC4o+C4sOC4reC4reC4lOC4geC4o+C4sOC5geC4reC4lAor4LiB4Lij4Liw4Lit4Lit4LiaCivguIHguKPguLDguK3guK3guKEKK+C4geC4o+C4sOC4reC5ieC4reC4oeC4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4Lit4Lit4Lih4LiZ4LmJ4LizCivguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lix4LiB4LiB4Lij4Liw4LmE4LitCivguIHguKPguLDguK3guLHguYnguKfguYHguJfguIfguITguKfguLLguKIKK+C4geC4o+C4sOC4reC5ieC4sgor4LiB4Lij4Liw4Lit4Liy4LiZCivguIHguKPguLDguK3guLTguJQKK+C4geC4o+C4sOC4reC4tOC4lOC4geC4o+C4sOC5gOC4reC4t+C5ieC4reC4mQor4LiB4Lij4Liw4Lit4Li24LiBCivguIHguKPguLDguK3guLbguIHguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4tuC4lAor4LiB4Lij4Liw4Lit4Li34LiUCivguIHguKPguLDguK3guLgKK+C4geC4o+C4sOC4reC4uOC4gQor4LiB4Lij4Liw4LmA4Lit4LiaCivguIHguKPguLDguYDguK3guLIKK+C4geC4o+C4sOC5gOC4reC4tOC4gQor4LiB4Lij4Liw4LmA4Lit4Li04LiaCivguIHguKPguLDguYHguK3guYkKK+C4geC4o+C4sOC5geC4reC4gQor4LiB4Lij4Liw4LmB4Lit4LiUCivguIHguKPguLDguYHguK3guJoKK+C4geC4o+C4sOC5geC4reC4oQor4LiB4Lij4Liw4LmB4Lit4LmJ4LihCivguIHguKPguLDguYTguK0KK+C4geC4o+C4seC4gQor4LiB4Lij4Lix4LiB4LiC4Li1CivguIHguKPguLHguIcKK+C4geC4o+C4seC4iuC4geC4suC4ogor4LiB4Lij4Lix4LiT4LiR4LmMCivguIHguKPguLHguJPguKLguYwKK+C4geC4o+C4seC4mQor4LiB4Lij4Lix4LiaCivguIHguKPguLHguKEKK+C4geC4o+C4suC4gQor4LiB4Lij4Liy4LiHCivguIHguKPguYjguLLguIcKK+C4geC4o+C4suC4lAor4LiB4Lij4Liy4LiU4LmA4LiB4Lij4Li14LmJ4Lii4LinCivguIHguKPguLLguJTguKfguIcKK+C4geC4o+C4suC4mQor4LiB4Lij4LmJ4Liy4LiZCivguIHguKPguLLguJoKK+C4geC4o+C4suC4nwor4LiB4Lij4Liy4LihCivguIHguKPguLLguKHguJ7guKXguLkKK+C4geC4o+C4suC4ogor4LiB4Lij4LmI4Liy4LiiCivguIHguKPguLLguKUKK+C4geC4o+C4suC4pwor4LiB4Lij4LmJ4Liy4LinCivguIHguKPguLLguKfguJTguYjguLLguIcKK+C4geC4o+C4suC4p+C4o+C4ueC4lAor4LiB4Lij4Liy4Liq4Li04LiBCivguIHguKPguLMKK+C4geC4o+C5iOC4swor4LiB4Lij4LmI4Liz4LiB4Lij4Li44LmI4LiZCivguIHguKPguLTguIEKK+C4geC4o+C4tOC5iuC4gQor4LiB4Lij4Li04LiB4LiB4Lij4Li04LinCivguIHguKPguLTguIHguIHguKPguLUKK+C4geC4o+C4tOC5iOC4hwor4LiB4Lij4Li04LmK4LiHCivguIHguKPguLTguIfguIHguKPguLTguKcKK+C4geC4o+C4tOC5ieC4h+C4geC4o+C4tOC5ieC4pwor4LiB4Lij4Li04LiKCivguIHguKPguLTguJPguLUKK+C4geC4o+C4tOC4leC4ogor4LiB4Lij4Li04LiZCivguIHguKPguLTguJnguLUKK+C4geC4o+C4tOC4mgor4LiB4Lij4Li04LihCivguIHguKPguLTguYjguKEKK+C4geC4o+C4tOC4ouC4sgor4LiB4Lij4Li04LinCivguIHguKPguLTguYnguKcKK+C4geC4o+C4tQor4LiB4Lij4Li14LiR4LiyCivguIHguKPguLXguJQKK+C4geC4o+C4teC5iuC4lAor4LiB4Lij4Li14LiY4LiyCivguIHguKPguLXguKkKK+C4geC4o+C4teC4qgor4LiB4Lij4Li24LiHCivguIHguKPguLgKK+C4geC4o+C4uOC4gQor4LiB4Lij4Li44LiB4LiB4Lij4Li54LmKCivguIHguKPguLjguIcKK+C4geC4o+C4uOC5ieC4h+C4geC4o+C4tOC5iOC4hwor4LiB4Lij4Li44LiH4LmA4LiC4Lih4LiyCivguIHguKPguLjguIfguJ7guLLguKXguLUKK+C4geC4o+C4uOC4kwor4LiB4Lij4Li44LiT4LiyCivguIHguKPguLjguJkKK+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li44LiaCivguIHguKPguLjguYjguKEKK+C4geC4o+C4uOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4LiB4Lij4Li44LiiCivguIHguKPguLjguKLguYDguIHguKPguLXguKLguKcKK+C4geC4o+C4uQor4LiB4Lij4Li54LiUCivguIHguKPguLnguKEKK+C4geC5gOC4o+C4k+C4uAor4LiB4LmA4Lij4LiZ4LiX4LijCivguIHguYDguKPguJnguJfguKPguYwKK+C4geC4pOC4igor4LiB4Lik4LiU4Lii4Liy4LmA4LiB4Li14Lii4Lij4LiTCivguIHguKTguJTguLIKK+C4geC4pOC4lOC4suC4geC4suC4owor4LiB4Lik4LiU4Liy4Lit4Lix4LiN4LiK4Lil4Li1CivguIHguKTguJTguLQKK+C4geC4pOC4lOC4teC4geC4sgor4LiB4Lik4LiVCivguIHguKTguJXguIHguLIKK+C4geC4pOC4leC4ouC4juC4teC4geC4sgor4LiB4Lik4LiV4Li04LiB4LiyCivguIHguKTguKgKK+C4geC4pOC5guC4qOC4l+C4owor4LiB4Lik4Lip4LiO4LiyCivguIHguKTguKnguI7guLLguI0KK+C4geC4pOC4qeC4juC4suC4jeC4iuC4peC4tOC4lQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lil4Li1CivguIHguKTguKnguI7guLLguI3guIrguKfguKXguLTguJXguKfguLIKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C4peC4tOC4qAor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4LmA4Lil4LioCivguIHguKTguKnguI7guLLguI3guIrguLjguKXguLUKK+C4geC4pOC4qeC4juC4suC4mOC4suC4owor4LiB4Lik4Lip4LiO4Li1CivguIHguKTguKnguI7guLXguIHguLIKK+C4geC4pOC4qeC4kwor4LiB4Lik4Lip4LiT4LiyCivguIHguKTguKnguLLguJMKK+C4geC4pOC4qeC4tAor4LiB4LilCivguIHguKXguJQKK+C4geC4peC5iOC4mQor4LiB4Lil4LiaCivguIHguKXguJrguJcKK+C4geC4peC4oQor4LiB4Lil4Lih4LigCivguIHguKXguYDguKHguYfguJQKK+C4geC4peC4ouC4uOC4l+C4mOC5jAor4LiB4Lil4Lil4LiwCivguIHguKXguKfguIcKK+C4geC4peC4p+C4oQor4LiB4Lil4LmJ4Lin4LiiCivguIHguKXguYnguKfguKLguJnguYnguK3guKIKK+C4geC4peC5ieC4p+C4ouC5hOC4oeC5iQor4LiB4Lil4LmJ4Lin4Lii4Lir4Lih4Li54Liq4Lix4LiHCivguIHguKXguKfguLTguJjguLUKK+C4geC4peC4qAor4LiB4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguIHguKXguKjguLbguIEKK+C4geC4peC4q+C4suC4ogor4LiB4Lil4LmA4Lir4LiiCivguIHguKXguYnguK0KK+C4geC4peC4reC4gQor4LiB4Lil4Lit4LiHCivguIHguKXguYjguK3guIcKK+C4geC4peC5ieC4reC4hwor4LiB4Lil4LmJ4Lit4LiH4LmB4LiB4Lil4LmJ4LiHCivguIHguKXguK3guJkKK+C4geC4peC5iOC4reC4mQor4LiB4Lil4LmJ4Lit4LiZCivguIHguKXguYjguK3guKEKK+C4geC4peC5ieC4reC4oeC5geC4geC4peC5ieC4oQor4LiB4Lil4Lit4LiiCivguIHguKXguLHguIEKK+C4geC4peC4seC4hwor4LiB4Lil4Lix4LiUCivguIHguKXguLHguYjguJkKK+C4geC4peC4seC5ieC4mQor4LiB4Lil4Lix4LiZ4LiXCivguIHguKXguLHguJnguJfguIHguYwKK+C4geC4peC4seC4meC4l+C4geC4meC4tOC4p+C4suC4m+C4quC4luC4suC4mQor4LiB4Lil4Lix4LiaCivguIHguKXguLHguKHguJ7guIEKK+C4geC4peC4seC4oeC4nuC4owor4LiB4Lil4Lix4Lih4Lie4Lix4LiBCivguIHguKXguLHguKcKK+C4geC4peC4seC5ieC4pwor4LiB4Lil4LiyCivguIHguKXguYjguLIKK+C4geC4peC5ieC4sgor4LiB4Lil4Liy4LiBCivguIHguKXguLLguIHguKXguLLguJQKK+C4geC4peC4suC4hwor4LiB4Lil4Liy4LmA4LiL4Li14Lii4Lij4LmMCivguIHguKXguLLguJQKK+C4geC4peC4suC4muC4suC4lQor4LiB4Lil4Liy4LibCivguIHguKXguYnguLLguKEKK+C4geC4peC4suC4ogor4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguLLguKLguIHguKXguK3guIEKK+C4geC4peC5iOC4suC4pwor4LiB4Lil4Liy4LmC4Lir4LihCivguIHguKXguYjguLMKK+C4geC4peC5ieC4swor4LiB4Lil4Li0CivguIHguKXguLTguIHguLLguKUKK+C4geC4peC4tOC4geC4uOC4jeC4iOC4tOC4geC4sgor4LiB4Lil4Li04LmI4LiHCivguIHguKXguLTguYnguIcKK+C4geC4peC4tOC5ieC4h+C4geC4peC4suC4h+C4lOC4hwor4LiB4Lil4Li04LiH4LiE4LmMCivguIHguKXguLTguYjguJkKK+C4geC4peC4tOC4m+C4o+C4teC4ouC5jAor4LiB4Lil4Li04LmJ4LihCivguIHguKXguLTguKLguLjguIQKK+C4geC4peC4tQor4LiB4Lil4Li14LmICivguIHguKXguLXguYDguIvguK3guKPguLXguJkKK+C4geC4peC4teC4mgor4LiB4Lil4Li24LiHCivguIHguKXguLbguYnguIcKK+C4geC4peC4tuC4h+C4geC4peC5iOC4reC4oQor4LiB4Lil4Li24LiH4LiE4LmMCivguIHguKXguLfguJkKK+C4geC4peC4uOC5iOC4oQor4LiB4Lil4Li44LmJ4LihCivguIHguKXguLnguYgKK+C4geC4peC4ueC5guC4hOC4qgor4LiB4Lil4Li54LiZCivguIHguKXguLnguJnguYwKK+C4geC5gOC4peC4p+C4o+C4sAor4LiB4Lin4LiUCivguIHguKfguJkKK+C4geC5iuC4p+C4mQor4LiB4Lin4LiZ4Lit4Li04LihCivguIHguKfguKEKK+C4geC4p+C4ogor4LiB4Lin4Lii4LiI4Lix4LmK4LiaCivguIHguKfguKLguIjguLXguYoKK+C4geC5i+C4p+C4ouC5gOC4leC4teC5i+C4ouC4pwor4LiB4LmL4Lin4Lii4Liq4Lil4Liy4LiBCivguIHguKfguKzguLTguIfguIHguLLguKPguLLguKvguLLguKMKK+C4geC4p+C4sAor4LiB4Lin4Liw4LiB4Lin4Lix4LiBCivguIHguKfguLDguYHguIHguKfguYjguIcKK+C4geC4p+C4seC4gQor4LiB4Lin4Lix4LiUCivguIHguKfguLIKK+C4geC4p+C5iOC4sgor4LiB4Lin4LmJ4LiyCivguIHguKfguLLguIcKK+C4geC4p+C5iOC4suC4hwor4LiB4Lin4LmJ4Liy4LiHCivguIHguKfguLLguIfguYDguILguJkKK+C4geC4p+C4suC4h+C5guC4iOC4mQor4LiB4Lin4LmI4Liy4LiH4LiK4LiZCivguIHguKfguLLguIfguIrguLDguKHguJQKK+C4geC4p+C5iOC4suC4h+C5guC4i+C5ieC4hwor4LiB4Lin4Liy4LiH4LiV4Li44LmJ4LiHCivguIHguKfguLLguIfguJfguK3guIcKK+C4geC4p+C4suC4h+C4m+C5iOC4sgor4LiB4Lin4Liy4LiH4Lih4LmJ4LiyCivguIHguKfguLLguJQKK+C4geC4p+C4suC4mQor4LiB4Lin4LmI4Liy4LiZCivguIHguKfguYnguLLguJkKK+C4geC4p+C5iuC4suC4mQor4LiB4Lin4LmJ4Liy4LinCivguIHguKfguLLguKfguYDguITguKPguLfguK0KK+C4geC4p+C4tOC4mQor4LiB4Lin4Li1CivguIHguKnguJPguLAKK+C4geC4qeC4oeC4sgor4LiB4Lip4Lix4LiV4LijCivguIHguKnguLHguJXguKPguLIKK+C4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li1CivguIHguKnguLHguJXguKPguLXguKLguYwKK+C4geC4qeC4seC4leC4o+C4teC4qOC4ueC4owor4LiB4Lip4Lix4LiiCivguIHguKnguLHguKLguIHguLLguKMKK+C4geC4qeC4suC4m+C4k+C5jAor4LiB4Lip4Liy4LiiCivguIHguKnguLTguJTguLQKK+C4geC4qeC4tOC4lOC4tOC4meC4l+C4owor4LiB4Lip4Li04LiU4Li04LiZ4LiX4Lij4LmMCivguIHguKnguLXguJPguLLguKjguKPguJ4KK+C4geC4qeC4teC4lOC4tAor4LiB4Lip4Li14LijCivguIHguKnguLXguKPguLLguKHguJ7guLgKK+C4geC4qeC4teC4o+C4suC4o+C4k+C4ngor4LiB4Lip4Li44LiY4LiyCivguIHguKnguLjguKPguLUKK+C4geC4quC4suC4meC4leC4tOC5jAor4LiB4Liq4Li0CivguIHguKrguLTguJMKK+C4geC4qwor4LiB4Lir4Lix4LiH4Lib4Liy4Lii4LiyCivguIHguKvguLLguJvguJPguLAKK+C4geC5gOC4rOC4p+C4o+C4suC4gQor4LiB4LitCivguIHguYjguK0KK+C4geC5ieC4rQor4LiB4LmK4LitCivguIHguK3guIEKK+C4geC5iuC4reC4gQor4LiB4Lit4LmB4LiBCivguIHguK3guIcKK+C4geC5iOC4reC4hwor4LiB4LmJ4Lit4LiHCivguIHguK3guIfguIHguK3guKIKK+C4geC4reC4iwor4LiB4Lit4LiUCivguIHguYjguK3guJkKK+C4geC5ieC4reC4mQor4LiB4Lit4LiaCivguIHguK3guJrguJnguLLguIcKK+C4geC5iuC4reC4muC4m+C4teC5iQor4LiB4Lit4Lib4LijCivguIHguYnguK3guKEKK+C4geC4reC4oeC4geC5ieC4rQor4LiB4LmI4Lit4Lih4LiB4LmJ4LitCivguIHguYnguK3guKHguIHguYnguK0KK+C4geC4reC4ogor4LiB4LmJ4Lit4LiiCivguIHguYvguK3guKIKK+C4geC4reC4o+C4tOC4peC4peC4sgor4LiB4Lit4Lil4LmM4LifCivguIHguK3guYHguKvguKXguLAKK+C4geC4reC5gOC4reC4teC5iuC4ouC4sAor4LiB4LiwCivguIHguLDguIHguKPguYjguK3guKEKK+C4geC4sOC4geC4o+C5ieC4suC4pwor4LiB4Liw4LiB4Lil4Li04LmJ4LiHCivguIHguLDguIHguYjguK3guIcKK+C4geC4sOC4geC4seC4hwor4LiB4Liw4LiB4Li24LiBCivguIHguLDguYDguIHguLLguLAKK+C4geC4sOC5guC4geC4o+C4sAor4LiB4Liw4LiH4LmJ4Lit4LiZ4LiB4Liw4LmB4LiH4LmJ4LiZCivguIHguLDguIjguLHguIcKK+C4geC4sOC4iOC4seC5iuC4pwor4LiB4Liw4LmB4LiI4LiwCivguIHguLDguIrguLAKK+C4geC4sOC4iuC4seC4hwor4LiB4Liw4LiK4Liy4Lih4Liy4LioCivguIHguLDguIrguLTguIcKK+C4geC4sOC4iuC4tuC5iOC4geC4geC4sOC4iuC4seC5iOC4gQor4LiB4Liw4LmB4LiK4LmICivguIHguLDguIvguKfguIEKK+C4geC4sOC4i+C5ieC4suC4q+C4reC4ogor4LiB4Liw4LiL4Li14LmICivguIHguLDguIvguLXguYkKK+C4geC4sOC5guC4i+C5iAor4LiB4Liw4LmC4LiL4LmJCivguIHguLDguJTguIEKK+C4geC4sOC4lOC4hwor4LiB4Liw4LiU4Lin4LiZCivguIHguLDguJTguK3guIHguYYKK+C4geC4sOC4lOC4sAor4LiB4Liw4LiU4Lix4LiH4Lia4Liy4LiiCivguIHguLDguJTguLHguJQKK+C4geC4sOC4lOC5ieC4suC4hwor4LiB4Liw4LiU4Liz4LiB4Liw4LiU4LmI4Liy4LiHCivguIHguLDguJTguLUKK+C4geC4sOC4lOC4teC5iAor4LiB4Liw4LiU4Li44LmJ4LiHCivguIHguLDguYDguJTguYkKK+C4geC4sOC5gOC4lOC4gQor4LiB4Liw4LmA4LiU4Li14LmL4Lii4LinCivguIHguLDguYTguJQKK+C4geC4sOC4leC4o+C4uOC4lAor4LiB4Liw4LiV4Lit4LiBCivguIHguLDguJXguYjguK3guKIKK+C4geC4sOC4leC4seC4gQor4LiB4Liw4LiV4Lix4LiHCivguIHguLDguJXguLHguIfguIHguLDguJXguLTguYnguKcKK+C4geC4sOC4leC4seC4h+C5g+C4mgor4LiB4Liw4LiV4LmI4LiyCivguIHguLDguJXguYrguLLguIEKK+C4geC4sOC4leC5ieC4swor4LiB4Liw4LiV4Li04LmK4LiB4Lij4Li04LiBCivguIHguLDguJXguLTguIfguIHguLDguYHguJXguIcKK+C4geC4sOC4leC4teC4mgor4LiB4Liw4LiV4Li24LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLjguYrguIEKK+C4geC4sOC4leC4uOC4lAor4LiB4Liw4LiV4Li44Lih4Li5CivguIHguLDguJXguLnguIEKK+C4geC4sOC4leC4ueC5ieC4p+C4ueC5iQor4LiB4Liw4LmA4LiV4LiBCivguIHguLDguYDguJXguIfguYYKK+C4geC4sOC5gOC4leC4h+C5gOC4o+C4hwor4LiB4Liw4LmB4LiV4LinCivguIHguLDguYHguJXguYjguKcKK+C4geC4sOC5guC4leC5iuC4gQor4LiB4Liw4LmC4LiV4LiB4LiB4Liw4LiV4Liy4LiBCivguIHguLDguYLguJXguIfguIHguLDguYDguJXguIcKK+C4geC4sOC5guC4leC5ieC4h+C5guC4q+C5iOC4hwor4LiB4Liw4LiW4Lix4LinCivguIHguLDguJfguIHguKPguIEKK+C4geC4sOC4l+C4rQor4LiB4Liw4LiX4Lix4LiHCivguIHguLDguJfguLHguJTguKPguLHguJQKK+C4geC4sOC4l+C4seC4mQor4LiB4Liw4LiX4Lix4LiZ4Lir4Lix4LiZCivguIHguLDguJfguLHguJoKK+C4geC4sOC4l+C4swor4LiB4Liw4LiX4Li0CivguIHguLDguJfguLfguK0KK+C4geC4sOC4l+C4uOC4mQor4LiB4Liw4LiX4Li54LmJ4LmA4LiI4LmH4LiU4LiV4Lix4LinCivguIHguLDguYDguJfguKIKK+C4geC4sOC5gOC4l+C5iOC5gOC4o+C5iAor4LiB4Liw4LmA4LiX4Liy4LiwCivguIHguLDguYHguJfguYkKK+C4geC4sOC5geC4l+C5iOC4hwor4LiB4Liw4LmB4LiX4LiZCivguIHguLDguJnguKfguKUKK+C4geC4sOC4meC4seC4lAor4LiB4Liw4Lia4Lit4LiHCivguIHguLDguJrguK3guJnguIHguLDguJrguLbguIcKK+C4geC4sOC4muC5iOC4reC4meC4geC4sOC5geC4muC5iOC4mQor4LiB4Liw4Lia4Lix4LiHCivguIHguLDguJrguLHguYnguIcKK+C4geC4sOC4muC4seC4h+C4o+C4seC4h+C5gOC4neC4t+C4reC4gQor4LiB4Liw4Lia4Li0CivguIHguLDguJrguLTguYnguIcKK+C4geC4sOC4muC4tOC4pQor4LiB4Liw4Lia4Li24LiH4LiB4Liw4Lia4Lit4LiZCivguIHguLDguJrguLjguJQKK+C4geC4sOC5gOC4muC5ieC4rQor4LiB4Liw4LmA4Lia4Li14Lii4LiZCivguIHguLDguYDguJrguLfguK0KK+C4geC4sOC5geC4muC4hwor4LiB4Liw4Lib4Lij4Li04LiU4LiB4Liw4Lib4Lij4Lit4LiiCivguIHguLDguJvguKPguLTguJoKK+C4geC4sOC4m+C4peC4geC4geC4sOC5gOC4m+C4peC4teC5ieC4ogor4LiB4Liw4Lib4Lin4LiB4LiB4Liw4LmA4Lib4Li14Lii4LiBCivguIHguLDguJvguK3guKEKK+C4geC4sOC4m+C4reC4oeC4guC4suC4hwor4LiB4Liw4Lib4LiwCivguIHguLDguJvguLHguYjguJkKK+C4geC4sOC4m+C5ieC4s+C4geC4sOC5gOC4m+C5i+C4rQor4LiB4Liw4Lib4Li0CivguIHguLDguJvguLkKK+C4geC4sOC4m+C4ueC4lAor4LiB4Liw4Lib4Li54LiU4Lir4Lil4Li54LiUCivguIHguLDguYDguJvguLAKK+C4geC4sOC5gOC4m+C4sgor4LiB4Liw4LmA4Lib4Li04LmK4Lia4LiB4Liw4Lib4LmK4Liy4LiaCivguIHguLDguYDguJvguLXguKLguJQKK+C4geC4sOC5geC4m+C5ieC4mQor4LiB4Liw4LmB4Lib4LiwCivguIHguLDguYLguJvguKPguIcKK+C4geC4sOC5guC4m+C5guC4pQor4LiB4Liw4Lic4Lil4Li24LiB4LiB4Liw4Lic4Lil4Liy4LihCivguIHguLDguJzguKXguLjguJrguIHguLDguYLguJzguKXguYgKK+C4geC4sOC5gOC4nOC5iOC4mQor4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguYLguJzguKXguIHguIHguLDguYDguJzguKXguIEKK+C4geC4sOC4nuC4hwor4LiB4Liw4Lie4Lij4Lin4LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKPguYjguK3guIfguIHguLDguYHguJ7guKPguYjguIcKK+C4geC4sOC4nuC4o+C4tOC4mgor4LiB4Liw4Lie4Lij4Li44LiZCivguIHguLDguJ7guKPguLnguJTguIHguLDguJ7guKPguLLguJQKK+C4geC4sOC4nuC4peC5ieC4rQor4LiB4Liw4Lie4Lil4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lil4LmI4LiHCivguIHguLDguJ7guYnguK0KK+C4geC4sOC4nuC4reC4gQor4LiB4Liw4Lie4Lit4LiHCivguIHguLDguJ7guLHguIcKK+C4geC4sOC5gOC4nuC4o+C4sgor4LiB4Liw4LmA4Lie4Li14Lii4LiUCivguIHguLDguYDguJ7guLXguKLguJTguIrguYnguLLguIcKK+C4geC4sOC5gOC4nuC4teC4ouC4lOC4q+C4meC4uQor4LiB4Liw4Lih4Li04LiU4LiB4Liw4LmA4Lih4Li14LmJ4Lii4LiZCivguIHguLDguKHguLnguJXguLTguIcKK+C4geC4sOC5gOC4oeC5h+C4hwor4LiB4Liw4LmA4Lih4Li14LiiCivguIHguLDguKLguLLguKvguIfguLHguJkKK+C4geC4sOC4ouC4tuC4geC4geC4sOC4ouC4t+C4rQor4LiB4Liw4Lii4Li4CivguIHguLDguKPguYjguK3guIfguIHguLDguYHguKPguYjguIcKK+C4geC4sOC4o+C4sOC4leC4sAor4LiB4Liw4Lij4Liw4Lir4LiZ4LiwCivguIHguLDguKPguLHguIcKK+C4geC4sOC4o+C4seC4lQor4LiB4Liw4Lij4Liy4LiHCivguIHguLDguKPguLTguIcKK+C4geC4sOC4o+C4tOC4h+C4geC4sOC5gOC4o+C4teC4ouC4lAor4LiB4Liw4Lij4Li44LiH4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLjguYjguIfguIHguLDguKPguLTguYjguIcKK+C4geC4sOC4o+C4uOC4mQor4LiB4Liw4LmA4LijCivguIHguLDguYDguKPguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4geC4sOC4o+C5iOC4reC4mQor4LiB4Liw4LmA4Lij4LmI4LitCivguIHguLDguYDguKPguLXguYjguKLguIHguLDguKPguLLguJQKK+C4geC4sOC5guC4o+C4geC4sOC5gOC4owor4LiB4Liw4Lil4Lin4LiiCivguIHguLDguKXguK0KK+C4geC4sOC4peC5iOC4reC4geC4sOC5geC4peC5iAor4LiB4Liw4Lil4Lit4LiI4Li14LmKCivguIHguLDguKXguYjguK3guJkKK+C4geC4sOC4peC5iOC4reC4oeC4geC4sOC5geC4peC5iOC4oQor4LiB4Liw4Lil4LmI4Lit4Lii4LiB4Liw4Lir4Lil4Li04LiaCivguIHguLDguKXguLDguJvguLHguIfguKvguLIKK+C4geC4sOC4peC4sOC4oeC4seC4hwor4LiB4Liw4Lil4Liw4LmB4LihCivguIHguLDguKXguLDguK3guK3guKEKK+C4geC4sOC4peC4seC4h+C4leC4seC4h+C5hOC4geC5iAor4LiB4Liw4Lil4Lix4LiZCivguIHguLDguKXguLHguJnguJfguLIKK+C4geC4sOC4peC4sgor4LiB4Liw4Lil4Liy4LiHCivguIHguLDguKXguLLguKrguLUKK+C4geC4sOC4peC4suC4q+C4meC4sgor4LiB4Liw4Lil4Liz4Lie4LitCivguIHguLDguKXguLPguJ7guLHguIEKK+C4geC4sOC4peC4s+C5gOC4nuC4suC4sAor4LiB4Liw4Lil4Li04LiHCivguIHguLDguKXguLTguYnguKHguIHguLDguYDguKvguKXguLXguYjguKIKK+C4geC4sOC4peC4tOC4reC5iOC4reC4hwor4LiB4Liw4Lil4Li44Lih4Lie4Li1CivguIHguLDguYDguKXguYfguIcKK+C4geC4sOC5gOC4peC5iOC4reC4geC4sOC4peC5iOC4sgor4LiB4Liw4LmA4Lil4Li04LiUCivguIHguLDguYDguKXguLXguKLguKcKK+C4geC4sOC5geC4pQor4LiB4Liw4LmC4Lil4LmICivguIHguLDguYLguKXguIcKK+C4geC4sOC4p+C4reC4geC4geC4sOC5geC4p+C4gQor4LiB4Liw4Lin4LiwCivguIHguLDguKrguYnguKHguIrguLfguYjguJkKK+C4geC4sOC4quC5ieC4suC4q+C4reC4ogor4LiB4Liw4Lir4LiZ4Lit4LiB4Liw4LmB4Lir4LiZCivguIHguLDguKvguJnguYfguK3guIfguIHguLDguYHguKvguJnguYfguIcKK+C4geC4sOC4q+C4meC4sAor4LiB4Liw4Lir4LiZ4Li44LiH4LiB4Liw4Lir4LiZ4Li04LiHCivguIHguLDguKvguKHguK3guIEKK+C4geC4sOC4q+C4o+C5iOC4reC4hwor4LiB4Liw4Lir4Lij4Lit4LiUCivguIHguLDguKvguKPguYfguK3guKHguIHguLDguYHguKvguKPguYfguKEKK+C4geC4sOC4q+C4o+C4seC4lOC4geC4sOC4leC4teC4geC4sgor4LiB4Liw4Lir4Lij4Lix4LiU4LiV4Liw4Lib4Liy4LiV4Li1CivguIHguLDguKvguKPguYjguLLguIcKK+C4geC4sOC4q+C4o+C4suC4mQor4LiB4Liw4Lir4Lij4Li04LmI4LiHCivguIHguLDguKvguKPguLXguYgKK+C4geC4sOC4q+C4o+C4teC5iOC4m+C4seC5iuC4mgor4LiB4Liw4Lir4Lil4Lix4Lia4LiB4Liw4LmA4Lir4Lil4Li34Lit4LiBCivguIHguLDguKvguKXguLLguJvguYvguLIKK+C4geC4sOC4q+C4peC5iOC4swor4LiB4Liw4Lir4Lil4Li14LmICivguIHguLDguKvguKXguLXguIHguLDguKvguKXguK0KK+C4geC4sOC4q+C4peC4uOC4geC4geC4sOC4q+C4peC4tOC4gQor4LiB4Liw4Lir4LizCivguIHguLDguKvguLbguKEKK+C4geC4sOC4q+C4t+C4lOC4geC4sOC4q+C4reC4mgor4LiB4Liw4Lir4Li34LitCivguIHguLDguKvguLnguJQKK+C4geC4sOC5gOC4q+C4meC5h+C4lAor4LiB4Liw4LmA4Lir4Lij4Li14LmI4Lii4LiHCivguIHguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4geC4sOC5gOC4q+C4p+C4teC4ouC4gQor4LiB4Liw4LmB4LirCivguIHguLDguYHguKvguJnguYgKK+C4geC4sOC5geC4q+C4meC4sAor4LiB4Liw4LmB4Lir4Lii4LiBCivguIHguLDguYHguKvguLAKK+C4geC4sOC5guC4q+C5iQor4LiB4Liw4LmC4Lir4Lil4LiBCivguIHguLDguYLguKvguKXguYnguIcKK+C4geC4sOC5hOC4q+C4peC5iAor4LiB4Liw4Lit4Lin4LihCivguIHguLDguK3guYnguK3guIHguLDguYHguK3guYkKK+C4geC4sOC4reC4reC4oQor4LiB4Liw4Lit4LmJ4Lit4Lih4LiB4Liw4LmB4Lit4LmJ4LihCivguIHguLDguK3guLHguIEKK+C4geC4sOC4reC4seC4geC4geC4sOC5hOC4rQor4LiB4Liw4Lit4Liy4LiZCivguIHguLDguK3guLLguKEKK+C4geC4sOC4reC4tOC4lAor4LiB4Liw4Lit4Li44LiaCivguIHguLDguYHguK0KK+C4geC4sOC5geC4reC4gQor4LiB4Liw4LmB4Lit4LiZCivguIHguLDguYHguK3guJoKK+C4geC4sOC5geC4reC4oQor4LiB4Liw4LmB4Lit4LinCivguIHguLHguIEKK+C4geC4seC5iuC4gQor4LiB4Lix4LmJ4LiB4LmGCivguIHguLHguIHguIHguKPguLIKK+C4geC4seC4geC4geC4quC4sAor4LiB4Lix4LiB4LiB4LiwCivguIHguLHguIHguIHguLLguKPguLUKK+C4geC4seC4geC4geC4suC4o+C4uAor4LiB4Lix4LiB4LiC4Lis4LiwCivguIHguLHguIHguKnguLHguJnguJXguKPguLHguIcKK+C4geC4seC4hwor4LiB4Lix4LmJ4LiHCivguIHguLHguIfguIEKK+C4geC4seC5ieC4h+C4geC4o+C4sOC4lOC4suC4mQor4LiB4Lix4LiH4LiB4LmJ4LiyCivguIHguLHguIfguYDguIHguLXguKLguIcKK+C4geC4seC4h+C4guC4sgor4LiB4Lix4LiH4LiC4Liy4Lin4Li04LiV4Lij4LiT4Lin4Li04Liq4Li44LiX4LiY4Li0CivguIHguLHguIfguITguLgKK+C4geC4seC4h+C4ieC4tOC4mQor4LiB4Lix4LiH4Lif4Li5CivguIHguLHguIfguKfguKUKK+C4geC4seC4h+C4p+C4suC4mQor4LiB4Lix4LiH4LmA4Lin4Li14Lii4LiZCivguIHguLHguIfguKoKK+C4geC4seC4h+C4quC4lOC4suC4pQor4LiB4Lix4LiH4LmE4LiqCivguIHguLHguIfguKvguLHguJkKK+C4geC4seC4iOC4ieC4m+C4sAor4LiB4Lix4LiI4LiJ4LiwCivguIHguLHguIjguInguLIKK+C4geC4seC4iOC4ieC4uAor4LiB4Lix4LiI4LmC4LiJ4LiX4LiBCivguIHguLHguI0KK+C4geC4seC4jeC4iOC4uOC4gQor4LiB4Lix4LiN4LiI4Li44LiB4Liy4Lij4LiyCivguIHguLHguI3guIrguLIKK+C4geC4seC4jeC4jeC4sgor4LiB4Lix4LiN4LiQ4LiB4LiwCivguIHguLHguJAKK+C4geC4seC4k+C4j+C4geC4sAor4LiB4Lix4LiT4LiQ4LiBCivguIHguLHguJPguJDguLHguKgKK+C4geC4seC4k+C4kOC4seC4qOC4p+C5jAor4LiB4Lix4LiT4LiQ4LiyCivguIHguLHguJPguJDguLUKK+C4geC4seC4k+C4keC5jAor4LiB4Lix4LiT4LiR4Lih4Liy4LiZ4Lin4LiBCivguIHguLHguJPguJHguKPguLIKK+C4geC4seC4k+C4keC4uAor4LiB4Lix4LiT4LiR4Li54Lin4LiZ4LiwCivguIHguLHguJPguJPguYwKK+C4geC4seC4k+C4qwor4LiB4Lix4LiUCivguIHguLHguJXguJXguLTguIHguKHguLLguKoKK+C4geC4seC4leC4leC4tOC4geC4sgor4LiB4Lix4LiV4LiV4Li04LmA4LiB4Lii4LiyCivguIHguLHguJXguKPguJfguLHguJPguJHguYwKK+C4geC4seC4leC4o+C4sgor4LiB4Lix4LiX4Lil4Li1CivguIHguLHguJkKK+C4geC4seC5iOC4mQor4LiB4Lix4LmJ4LiZCivguIHguLHguJnguYDguIHguKPguLIKK+C4geC4seC4meC5hOC4geC4owor4LiB4Lix4LiZ4LiK4Li04LiHCivguIHguLHguJnguYDguIrguK0KK+C4geC4seC5ieC4meC4i+C4ueC5iAor4LiB4Lix4LiZ4LmB4LiL4LiHCivguIHguLHguJnguJTguK3guIcKK+C4geC4seC4meC4lOC4suC4owor4LiB4Lix4LiZ4LiU4Liy4LilCivguIHguLHguJnguYTguJQKK+C4geC4seC4meC4leC5jAor4LiB4Lix4LiZ4LiV4Lix4LiHCivguIHguLHguJnguYTguJXguKMKK+C4geC4seC4meC4l+C4owor4LiB4Lix4LiZ4LiX4Lij4Liy4LiB4LijCivguIHguLHguJnguJfguLAKK+C4geC4seC5ieC4meC4muC4seC4hwor4LiB4Lix4LiZ4Lig4Lix4LiiCivguIHguLHguJnguKDguLTguKPguKHguKLguYwKK+C4geC4seC4meC5gOC4oeC4teC4ouC4hwor4LiB4Lix4LiZ4Lii4LmMCivguIHguLHguJnguKLguLIKK+C4geC4seC4meC4peC4hwor4LiB4Lix4LiZ4Lil4Lit4LiHCivguIHguLHguJnguKXguLbguIcKK+C4geC4seC4meC5geC4quC4hwor4LiB4Lix4LmJ4LiZ4Lir4Lii4Lix4LmI4LiZCivguIHguLHguJnguYDguK3guLIKK+C4geC4seC4mgor4LiB4Lix4Lia4LmB4LiB4LmJCivguIHguLHguJrguYHguIHguKXguYnguKEKK+C4geC4seC4muC4muC4uOC5gOC4o+C4qAor4LiB4Lix4LibCivguIHguLHguJvguJXguLHguJkKK+C4geC4seC4m+C4meC4gQor4LiB4Lix4Lib4Lia4Liy4Liq4Li04LiBCivguIHguLHguJvguJvguLLguKrguLTguIEKK+C4geC4seC4m+C4m+C4tOC4ouC4sAor4LiB4Lix4Lib4Lib4Li14Lii4LmMCivguIHguLHguKHguJrguJkKK+C4geC4seC4oeC4m+C4meC4suC4geC4suC4owor4LiB4Lix4Lih4Lib4LiZ4Liy4LiXCivguIHguLHguKHguJvguJnguLUKK+C4geC4seC4oeC4m+C4o+C4sOC5guC4lAor4LiB4Lix4Lih4Lib4Li1CivguIHguLHguKHguJ7guKUKK+C4geC4seC4oeC4nuC4uOC4igor4LiB4Lix4Lih4Lie4Li44LiK4Lie4Liy4LiB4Lii4LmMCivguIHguLHguKHguJ7guLkKK+C4geC4seC4oeC4nuC4ueC4iuC4sgor4LiB4Lix4Lih4LmC4Lie4LiKCivguIHguLHguKHguKHguKrguLHguJfguJjguLIKK+C4geC4seC4oeC4oeC4seC4iuC4p+C4suC4lQor4LiB4Lix4Lih4Lih4Lix4LiP4LiQ4Liy4LiZCivguIHguLHguKHguKHguLHguJnguJXguKDguLLguJ7guKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4seC4meC4leC4o+C4seC4h+C4quC4tQor4LiB4Lix4Lih4Lih4Lix4Liq4Liq4LiB4LiV4LiyCivguIHguLHguKHguKHguLLguKMKK+C4geC4seC4oeC4peC4suC4qAor4LiB4Lix4Lii4Lin4Li04LiB4Lix4LiiCivguIHguLHguKXguIrguLLguI0KK+C4geC4seC4peC4muC4gQor4LiB4Lix4Lil4Lib4LmMCivguIHguLHguKXguJvguJnguLIKK+C4geC4seC4peC4m+C4seC4h+C4q+C4sgor4LiB4Lix4Lil4Lib4Liy4Lin4Liq4Liy4LiZCivguIHguLHguKXguJvguLTguJUKK+C4geC4seC4peC4nuC4uOC4oQor4LiB4Lix4Lil4LmA4Lih4LmH4LiUCivguIHguLHguKXguKLguLIKK+C4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4owor4LiB4Lix4Lil4Lii4Liy4LiT4Li1CivguIHguLHguKXguYDguKfguYnguLIKK+C4geC4seC4peC4q+C4suC4ogor4LiB4Lix4Lil4LmC4Lir4LiiCivguIHguLHguKXguK3guK3guKEKK+C4geC4seC4peC5gOC4reC4sgor4LiB4Lix4Lio4Lih4LilCivguIHguLHguKjguKLguJsKK+C4geC4seC4qeC4kwor4LiB4LiyCivguIHguYvguLIKK+C4geC4suC4gQor4LiB4Liy4LiB4LiE4LiV4Li0CivguIHguLLguIHguJPguLbguIEKK+C4geC4suC4geC4meC4suC4quC4ueC4owor4LiB4Liy4LiB4Lia4Liy4LiXCivguIHguLLguIHguKDguLLguKnguLIKK+C4geC4suC4geC4quC4ueC4owor4LiB4Liy4LiB4Liw4LiX4Li04LiHCivguIHguLLguIHguLDguYDguKLguLXguKIKK+C4geC4suC4geC4tQor4LiB4Liy4LiHCivguIHguYnguLLguIcKK+C4geC4suC4h+C5gOC4geC4hwor4LiB4Liy4LiH4LmA4LiB4Li14Lii4LiHCivguIHguLLguIfguILguK3guIcKK+C4geC4suC4h+C5gOC4guC4mQor4LiB4Liy4LiICivguIHguYrguLLguIsKK+C4geC4suC4i+C4sOC4peC4reC4hwor4LiB4Liy4LiL4Liw4Lil4Lit4LiH4LiE4LizCivguIHguLLguI3guIjguJnguLIKK+C4geC4suC4kAor4LiB4Liy4LiUCivguIHguYrguLLguJQKK+C4geC4suC4mQor4LiB4LmI4Liy4LiZCivguIHguYnguLLguJkKK+C4geC5iuC4suC4mQor4LiB4Liy4LiZ4LiU4LiyCivguIHguLLguJnguJXguYwKK+C4geC4suC4meC4l+C5jAor4LiB4Liy4LiZ4LiZCivguIHguLLguJnguJ7guKXguLkKK+C4geC4suC4meC5ieC4sgor4LiB4Liy4LiaCivguIHguYnguLLguJrguYYKK+C4geC4suC4muC4muC4seC4pwor4LiB4Liy4Lia4LiwCivguIHguLLguJrguLjguKPguLjguKkKK+C4geC4suC4muC4uQor4LiB4Liy4LmA4Lib4Li14LmJ4Lii4LiUCivguIHguLLguJ7guKLguYwKK+C4geC4suC5gOC4n+C4reC4teC4mQor4LiB4Liy4LmB4LifCivguIHguLLguKEKK+C4geC5ieC4suC4oQor4LiB4Liy4Lih4LiB4Lin4LihCivguIHguYnguLLguKHguIHguLjguYnguIcKK+C4geC4suC4oeC4lwor4LiB4Liy4Lih4LiZCivguIHguYnguLLguKHguJvguLkKK+C4geC5ieC4suC4oeC4m+C4ueC4q+C4peC4uOC4lAor4LiB4Liy4Lih4LmC4Lih4LiX4LiiCivguIHguLLguKHguKfguLTguJXguJbguLLguKMKK+C4geC4suC4oeC4seC4igor4LiB4Liy4Lih4LiyCivguIHguLLguKHguLLguJfguLXguJnguJ4KK+C4geC4suC4oeC4suC4nuC4iOC4owor4LiB4Liy4Lih4Liy4Lih4Li04LioCivguIHguLLguKHguLLguKPguKHguJPguYwKK+C4geC4suC4oeC4suC4p+C4iOC4owor4LiB4Liy4Lih4Li04LiZ4Li1CivguIHguLLguKHguLTguKgKK+C4geC4suC5gOC4oeC4qAor4LiB4Liy4LmA4Lih4Liq4Li44Lih4Li04LiI4LiJ4Liy4LiI4Liy4LijCivguIHguLLguKIKK+C4geC5iOC4suC4ogor4LiB4Liy4Lii4LiB4Lij4Lij4LihCivguIHguLLguKLguITguJXguLLguKrguJXguLQKK+C4geC4suC4ouC4l+C4p+C4suC4owor4LiB4Liy4Lii4LiX4Li44LiI4Lij4Li04LiVCivguIHguLLguKLguJrguKPguLTguKvguLLguKMKK+C4geC4suC4ouC4nuC4seC4meC4mOC4meC5jAor4LiB4Liy4Lii4Lig4Liy4LieCivguIHguLLguKLguKDguLLguJ7guJrguLPguJrguLHguJQKK+C4geC4suC4ouC4p+C4tOC4oOC4suC4hOC4qOC4suC4quC4leC4o+C5jAor4LiB4Liy4Lii4Liq4Li04LiX4LiY4Li04LmMCivguIHguLLguKLguKrguLjguIjguKPguLTguJUKK+C4geC4suC4ouC4suC4nuC4ouC4ngor4LiB4Liy4Lii4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIHguLLguYDguKLguJkKK+C4geC4suC5gOC4ouC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LijCivguIHguLLguKPguIEKK+C4geC4suC4o+C4k+C5jAor4LiB4Liy4Lij4LmM4LiUCivguIHguLLguKPguJXguLTguYDguIHguKLguLAKK+C4geC4suC4o+C5jOC4leC4ueC4mQor4LiB4Liy4Lij4LmA4LiVCivguIHguLLguKPguYLguJnguYnguKHguJbguYjguKfguIcKK+C4geC4suC4o+C4muC4ueC4owor4LiB4Liy4Lij4Lia4Li54Lij4Lib4LmI4LiyCivguIHguLLguKPguKLguYwKK+C4geC4suC4o+C4peC4sOC5gOC4peC5iOC4mQor4LiB4Liy4Lij4Lin4Li04LiBCivguIHguLLguKPguYDguKfguIEKK+C4geC4suC4o+C4sOC5gOC4geC4lAor4LiB4Liy4Lij4Liw4Lia4Li44Lir4LiZ4Li04LiHCivguIHguLLguKPguLHguJPguJHguKfguLAKK+C4geC4suC4o+C4seC4k+C4ouC5jAor4LiB4Liy4Lij4Lix4LiZ4LiV4LmMCivguIHguLLguKPguLLguIfguKvguLHguKfguILguKfguLLguJkKK+C4geC4suC4o+C4uOC4jQor4LiB4Liy4Lij4Li44LiT4Lii4LmMCivguIHguLLguYDguKPguIHguLLguKPguYjguK3guJkKK+C4geC4suC5gOC4o+C4teC4ouC4mQor4LiB4Liy4LilCivguIHguLLguKXguIHguKPguKPguJPguLUKK+C4geC4suC4peC4geC4seC4jeC4iuC4tOC4geC4suC4quC4ueC4owor4LiB4Liy4Lil4LiB4Li04LiT4Li1CivguIHguLLguKXguIjguLHguIHguKMKK+C4geC4suC4peC4seC4jeC4jeC4uOC4leC4sgor4LiB4Liy4Lil4Lix4LiN4LiN4Li5CivguIHguLLguKXguLHguJQKK+C4geC4suC4peC4suC4meC4uOC4geC4suC4pQor4LiB4Liy4Lil4Liy4Lih4Liq4Li54LiV4LijCivguIHguLLguKXguLTguIEKK+C4geC4suC4peC4tQor4LiB4Liy4LmB4Lil4LmH4LiB4LiL4Li14LmICivguIHguLLguKcKK+C4geC5ieC4suC4pwor4LiB4Liy4Lin4Lin4Liy4LinCivguIHguLLguYHguKfguJkKK+C4geC4suC4qOC4tOC4gQor4LiB4Liy4Lip4LiQ4LiwCivguIHguLLguKnguLIKK+C4geC4suC4quC4owor4LiB4Liy4Liq4LiwCivguIHguLLguKrguLIKK+C4geC4suC4quC4suC4owor4LiB4Liy4Liq4Liy4Lin4LiwCivguIHguLLguKrguLTguYLguJkKK+C4geC4suC4q+C4pQor4LiB4Liy4Lir4Lil4LiyCivguIHguLLguKvguKXguLTguJoKK+C4geC4suC4q+C4seC4gQor4LiB4Liy4LmA4Lir4Lin4LmI4LiyCivguIHguLLguYTguKvguKXguYgKK+C4geC4suC4rAor4LiB4Liy4Lis4LiB4Li54LiPCivguIHguLLguKzguJvguLHguIHguKnguYwKK+C4geC4suC4rOC4m+C4seC4geC4qeC4tQor4LiB4Liy4Lis4Lie4Lik4LiB4Lip4LmMCivguIHguLLguKzguYLguKPguIQKK+C4geC4suC4rOC4p+C4suC4lQor4LiB4Liy4Lis4Liy4Lin4LiBCivguIHguLLguK7guLHguIcKK+C4geC4swor4LiB4LmI4LizCivguIHguYnguLMKK+C4geC4s+C4geC4p+C4oQor4LiB4Liz4LiB4Lix4LiUCivguIHguLPguIHguLHguJoKK+C4geC5ieC4s+C4geC4tuC5iOC4hwor4LiB4Liz4LiB4Li54LiZCivguIHguYnguLPguYDguIHguLTguJkKK+C4geC4s+C5gOC4geC4teC4ouC4hwor4LiB4Liz4LiE4Li54LiZCivguIHguYjguLPguYDguITguLfguK0KK+C4geC4s+C4iOC4owor4LiB4Liz4LiI4Lix4LiUCivguIHguLPguIjguLLguKIKK+C4geC4s+C4iuC4seC4mgor4LiB4Liz4LiK4LizCivguIHguLPguYLguIrguIEKK+C4geC4s+C4i+C4suC4mgor4LiB4Liz4LiL4LizCivguIHguLPguJTguYnguJkKK+C4geC4s+C4lOC4seC4lAor4LiB4Liz4LiU4Liy4LilCivguIHguLPguYDguJTguLIKK+C4geC4s+C5gOC4lOC4suC4sAor4LiB4Liz4LiV4Liy4LiBCivguIHguLPguJfguKfguJQKK+C4geC4s+C4l+C4p+C4mQor4LiB4Liz4LiY4LijCivguIHguLPguJnguKUKK+C4geC4s+C4meC4seC4lAor4LiB4Liz4LiZ4Lix4LiZCivguIHguLPguJnguLHguKUKK+C4geC4s+C5gOC4meC4tOC4lAor4LiB4Liz4LmA4LiZ4Li14Lii4LiICivguIHguLPguJrguJQKK+C4geC4s+C4muC4mQor4LiB4Liz4Lia4Lix4LiHCivguIHguLPguJrguLHguJQKK+C4geC4s+C4muC4tOC4lAor4LiB4Liz4LmA4Lia4LmJ4LitCivguIHguLPguYLguJrguKUKK+C4geC4s+C4m+C4rQor4LiB4Liz4Lib4Lix4LmI4LiZCivguIHguLPguJvguLHguYnguJkKK+C4geC4s+C4nOC4peC4sgor4LiB4Liz4Lie4LiHCivguIHguLPguJ7guJQKK+C4geC4s+C4nuC4lQor4LiB4Liz4Lie4Lij4LmJ4LiyCivguIHguLPguJ7guKPguLLguIEKK+C4geC4s+C4nuC4p+C4lAor4LiB4Liz4Lie4Lit4LiHCivguIHguLPguJ7guLfguJQKK+C4geC4s+C4nuC4uQor4LiB4Liz4LmA4Lie4Lil4Li04LiHCivguIHguLPguYHguJ7guIcKK+C4geC4s+C5geC4nuC5ieC4hwor4LiB4Liz4Lig4Li5CivguIHguLPguKHguJ7guKTguIHguKnguYwKK+C4geC4s+C4oeC4peC4suC4qOC4meC5jAor4LiB4Liz4Lih4LmA4Lil4LioCivguIHguLPguKHguLDguJbguLHguJkKK+C4geC4s+C4oeC4sOC4peC4rQor4LiB4Liz4Lih4Liw4Lir4Lii4Li14LmICivguIHguLPguKHguLDguKvguKPguLTguJQKK+C4geC4s+C4oeC4seC4h+C4peC4sOC4geC4suC4owor4LiB4Liz4Lih4Lix4LiH4Lin4Li04Lil4Li04LiVCivguIHguLPguKHguLHguIrguJ7guKUKK+C4geC4s+C4ouC4suC4mQor4LiB4Liz4Lii4LizCivguIHguLPguKPguK0KK+C4geC4s+C4o+C4suC4gQor4LiB4Liz4Lij4Liy4LiaCivguIHguLPguKPguLLguKUKK+C4geC4s+C4o+C4uQor4LiB4Liz4LmA4Lij4Li04LiaCivguIHguLPguYTguKMKK+C4geC4s+C4peC4reC4hwor4LiB4Liz4Lil4Lix4LiHCivguIHguLPguKXguLHguIfguIrguYnguLLguIfguYDguJzguLfguK3guIEKK+C4geC4s+C4peC4seC4h+C4iuC5ieC4suC4h+C4quC4suC4owor4LiB4Liz4Lil4Lix4LiH4Lin4Lix4Lin4LmA4LiW4Lil4Li04LiHCivguIHguLPguKXguLjguIcKK+C4geC4s+C4peC4ueC4mQor4LiB4Liz4LmA4Lil4LiyCivguIHguLPguYDguKXguLLguLAKK+C4geC4s+C5hOC4pQor4LiB4Liz4Liq4Lij4LiUCivguIHguLPguKrguKPguKfguKUKK+C4geC4s+C5gOC4quC4suC4sAor4LiB4Liz4LmB4Liq4LiHCivguIHguLPguKvguJnguJQKK+C4geC4s+C4q+C4meC4seC4lAor4LiB4Liz4Lir4Lij4Liy4LiBCivguIHguLPguYDguKvguJnguYfguIgKK+C4geC4s+C5geC4q+C4hwor4LiB4Li04LiBCivguIHguLTguYrguIEKK+C4geC4tOC5iOC4hwor4LiB4Li04LmJ4LiH4LiB4LmI4LiyCivguIHguLTguYnguIfguIHguLfguK0KK+C4geC4tOC5ieC4h+C5guC4hOC4o+C4hwor4LiB4Li04LiH4Lia4Li44Lij4Li44LipCivguIHguLTguIfguKrguLjguIEKK+C4geC4tOC5iOC4h+C4q+C4suC4ogor4LiB4Li04LiICivguIHguLTguIjguIjguLAKK+C4geC4tOC4iOC4iOC4sOC4peC4seC4geC4qeC4k+C4sAor4LiB4Li04LiI4LiI4LiyCivguIHguLTguJTguLLguIHguLLguKMKK+C4geC4tOC4lOC4suC4q+C4ouC4seC4mQor4LiB4Li04LiV4LiV4Li0CivguIHguLTguJXguLLguKvguKPguLHguIcKK+C4geC4tOC4mQor4LiB4Li04LiZ4LmA4LiE4Lij4LiyCivguIHguLTguJnguJnguKMKK+C4geC4tOC4meC4o+C4tOC4mQor4LiB4Li04LiZ4Lij4Li1CivguIHguLTguJnguLnguJkKK+C4geC4tOC5iuC4mgor4LiB4Li04LihCivguIHguLTguKHguJXguLbguYvguIcKK+C4geC4tOC4oeC4tOC4iuC4suC4leC4tAor4LiB4Li04Lih4Li04Lin4Li04LiX4Lii4LiyCivguIHguLTguYLguKHguYLguJkKK+C4geC4tOC5guC4ouC4leC4teC4mQor4LiB4Li04Lij4LiwCivguIHguLTguKPguLTguJPguLUKK+C4geC4tOC4o+C4tOC4meC4lwor4LiB4Li04Lij4Li04LmA4LiZ4Lio4Lin4LijCivguIHguLTguKPguLTguKLguLIKK+C4geC4tOC4peC4oeC4sAor4LiB4Li04LmA4Lil4LiZCivguIHguLTguYDguKXguKoKK+C4geC4tOC5guC4pQor4LiB4Li04LmC4Lil4Lih4LiB4LiwCivguIHguLTguYjguKcKK+C4geC4tOC5i+C4pwor4LiB4Li14LmICivguIHguLXguYkKK+C4geC4teC5iwor4LiB4Li14LiPCivguIHguLXguJQKK+C4geC4teC4leC4suC4o+C5jAor4LiB4Li14LiaCivguIHguLXguKPguJXguLQKK+C4geC4teC4p+C4tQor4LiB4Li14Lis4LiyCivguIHguLbguIEKK+C4geC4tuC4geC4luC4reC4hwor4LiB4Li24LiHCivguIHguLbguYjguIcKK+C4geC4tuC5i+C4mQor4LiB4Li4CivguIHguLjguIEKK+C4geC4uOC5iuC4gQor4LiB4Li44LiB4LmG4LiB4Lix4LiB4LmGCivguIHguLjguYrguIHguYbguIHguLTguYrguIHguYYKK+C4geC4uOC4geC4geC4seC4gQor4LiB4Li44LmK4LiB4LiB4Li04LmK4LiBCivguIHguLjguIHguIHguLjguI8KK+C4geC4uOC4geC4geC4uOC4owor4LiB4Li44LiB4LiC4Li14LmJ4Lir4Lih4Li5CivguIHguLjguIHguKPguKPguKEKK+C4geC4uOC4geC5iOC4reC4hwor4LiB4Li44LiB4LiwCivguIHguLjguIHguLjguJjguKDguLHguJPguJHguYwKK+C4geC4uOC5ieC4hwor4LiB4Li44LmJ4LiH4LmA4LiV4LmJ4LiZCivguIHguLjguYnguIfguKLguLTguIcKK+C4geC4uOC4h+C4reC4mQor4LiB4Li44LiH4Liy4LiZCivguIHguLjguYLguIfguIEKK+C4geC4uOC4iOC4tQor4LiB4Li44LiN4LmB4LiICivguIHguLjguI3guIrguKMKK+C4geC4uOC4jgor4LiB4Li44LiO4LiyCivguIHguLjguI7guLLguJjguLLguKMKK+C4geC4uOC4juC4tQor4LiB4Li44LiP4LiQ4Lix4LiHCivguIHguLjguI/guLQKK+C4geC4uOC4k+C4keC5jAor4LiB4Li44LiT4LiR4LilCivguIHguLjguJPguJHguLTguJkKK+C4geC4uOC4k+C4keC4tQor4LiB4Li44LiT4LmC4LiRCivguIHguLjguJPguLLguKUKK+C4geC4uOC4k+C4tAor4LiB4Li44LiT4Li1CivguIHguLjguJQKK+C4geC4uOC4lOC4seC4hwor4LiB4Li44LiU4Lix4LmI4LiZCivguIHguLjguJTguLIKK+C4geC4uOC4l+C4seC4k+C4keC5jAor4LiB4Li44LiZCivguIHguLjguYrguJkKK+C4geC4uOC4meC5gOC4iuC4teC4ouC4hwor4LiB4Li44LiZ4LiL4Li34LitCivguIHguLjguJnguJfguLUKK+C4geC4uOC5guC4meC4geC4suC4oeC4rQor4LiB4Li44LiaCivguIHguLjguJrguIHguLHguJoKK+C4geC4uOC4oQor4LiB4Li44LmI4LihCivguIHguLjguKHguJ3guK3guKIKK+C4geC4uOC4oeC4oOC5jAor4LiB4Li44Lih4Lig4LiZ4Li04Lii4LiyCivguIHguLjguKHguKDguLHguJPguJHguYwKK+C4geC4uOC4oeC4oOC4sgor4LiB4Li44Lih4Lig4Li04LilCivguIHguLjguKHguKDguLXguKXguYwKK+C4geC4uOC4oeC4oeC4suC4qgor4LiB4Li44Lih4LmA4Lir4LiHCivguIHguLjguKHguLLguKMKK+C4geC4uOC4oeC4suC4o+C4peC4rOC4tOC4leC4sgor4LiB4Li44Lih4Liy4Lij4LiyCivguIHguLjguKHguLLguKPguLTguIHguLIKK+C4geC4uOC4oeC4suC4o+C4tQor4LiB4Li44Lih4Li44LiXCivguIHguLjguKIKK+C4geC4uOC5iuC4ogor4LiB4Li44LmL4LiiCivguIHguLjguYvguKLguYYKK+C4geC4uOC4ouC4iuC5iOC4suC4ogor4LiB4Li44LmI4Lii4Lir4Lil4Li44LmI4Lii4Liq4LmJ4LihCivguIHguLjguKLguYDguK7guIcKK+C4geC4uOC4o+C4owor4LiB4Li44Lij4LiwCivguIHguLjguKPguLjguYDguIHguKnguJXguKMKK+C4geC4uOC4o+C4uOC4hwor4LiB4Li44Lij4Li44Lie4Li04LiZ4LiX4LmMCivguIHguLjguKPguLjguKMKK+C4geC4uOC5gOC4o+C4sgor4LiB4Li44LilCivguIHguLjguKXguIHguLHguKXguKLguLIKK+C4geC4uOC4peC4geC4ueC4k+C4tQor4LiB4Li44Lil4LiE4Li44Lij4Li4CivguIHguLjguKXguIrguJkKK+C4geC4uOC4peC4iuC4suC4lQor4LiB4Li44Lil4LiU4Li04Lil4LiBCivguIHguLjguKXguJfguLnguKrguIEKK+C4geC4uOC4peC4mOC4o+C4o+C4oQor4LiB4Li44Lil4LiY4Li04LiU4LiyCivguIHguLjguKXguJnguLLguIQKK+C4geC4uOC4peC4meC4suC4o+C4tQor4LiB4Li44Lil4LiZ4Liy4LioCivguIHguLjguKXguJrguJTguLUKK+C4geC4uOC4peC4muC4uOC4leC4owor4LiB4Li44Lil4Lia4Li44Lij4Li44LipCivguIHguLjguKXguJ7guJjguLkKK+C4geC4uOC4peC4oeC4seC4iOC4ieC4o+C4tOC4ouC4sAor4LiB4Li44Lil4Lih4Li04LiV4LijCivguIHguLjguKXguKfguLLguKMKK+C4geC4uOC4peC5gOC4p+C4l+C4tOC4leC4sgor4LiB4Li44Lil4Liq4LiV4Lij4Li1CivguIHguLjguKXguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4geC4uOC4peC4sgor4LiB4Li44Lil4Liy4Lir4LilCivguIHguLjguKXguLUKK+C4geC4uOC4peC4teC4geC4uOC4iOC4rQor4LiB4Li44Lil4Li44Lib4LiB4Liy4LiI4Liy4Lij4Lii4LmMCivguIHguLjguYDguKXguLIKK+C4geC4uOC5geC4pQor4LiB4Li44LmE4LilCivguIHguLjguKfguLAKK+C4geC4uOC5gOC4p+C4owor4LiB4Li44Lio4Lij4Liy4LiKCivguIHguLjguKjguKUKK+C4geC4uOC4qOC5guC4peC4muC4suC4ogor4LiB4Li44Liq4LilCivguIHguLjguKrguLAKK+C4geC4uOC4quC4uOC4oQor4LiB4Li44Liq4Li44Lih4Lig4LmMCivguIHguLjguKrguLjguKHguLIKK+C4geC4uOC4quC4uOC4oeC4suC4peC4ouC5jAor4LiB4Li44Liq4Li44Lih4Li04LiV4Lil4LiU4Liy4LmA4Lin4Lil4Lil4Li04LiV4LiyCivguIHguLjguKvguIEKK+C4geC4uOC4q+C4meC4tQor4LiB4Li44Lir4LiZ4Li44LiHCivguIHguLjguKvguKPguYjguLIKK+C4geC4uOC4q+C4peC5iOC4sgor4LiB4Li44Lir4Lil4Liy4LiaCivguIHguLjguYHguKvguKXguLAKK+C4geC4uQor4LiB4Li54LmICivguIHguLnguYkKK+C4geC4ueC5iuC4gQor4LiB4Li54LiPCivguIHguLnguI/guLIKK+C4geC4ueC5guC4j+C4muC4suC4ogor4LiB4Li54LiT4LiR4LmMCivguIHguLnguJQKK+C4geC4ueC4mQor4LiB4Li54LiaCivguIHguLnguJvguKPguLUKK+C4geC4ueC4o+C4oeC4sAor4LiB4Li54Lij4Lih4Liy4Lin4LiV4Liy4LijCivguIHguLnguKPguLMKK+C5gOC4gQor4LmA4LiB4LmICivguYDguIHguYoKK+C5gOC4geC5iwor4LmA4LiB4LmJ4LmG4LiB4Lix4LiH4LmGCivguYDguIHguIEKK+C5gOC4geC5iuC4gQor4LmA4LiB4LiB4Lih4Liw4LmA4Lir4Lij4LiBCivguYDguIHguYrguIHguK7guKfguKIKK+C5gOC4geC5ieC4geC4seC4hwor4LmA4LiB4LmH4LiHCivguYDguIHguYjguIcKK+C5gOC4geC5ieC4hwor4LmA4LiB4LmL4LiHCivguYDguIHguIfguIHguK3guKIKK+C5gOC4geC5ieC4h+C4geC5ieC4suC4hwor4LmA4LiB4LiH4LmA4LiC4LiHCivguYDguIHguYvguIfguYDguITguIcKK+C5gOC4geC5h+C4iAor4LmA4LiB4LiI4Li04Lit4Liy4LiI4Liy4Lij4Lii4LmMCivguYDguIHguIrguLIKK+C5gOC4geC4k+C4keC5jAor4LmA4LiB4LiT4LiR4LmM4LiV4Liw4Lie4Lix4LiUCivguYDguIHguJQKK+C5gOC4geC5h+C4lAor4LmA4LiB4LiV4Li4CivguYDguIHguJkKK+C5gOC4geC5iOC4mQor4LmA4LiB4LiZ4LmGCivguYDguIHguYfguJoKK+C5gOC4geC4oQor4LmA4LiB4LiiCivguYDguIHguKLguYwKK+C5gOC4geC4ouC4ueC4owor4LmA4LiB4Lij4LiHCivguYDguIHguKPguYfguIcKK+C5gOC4geC4o+C4lAor4LmA4LiB4Lij4LmH4LiUCivguYDguIHguKPguJkKK+C5gOC4geC4o+C5iOC4rQor4LmA4LiB4Lij4Lit4LiwCivguYDguIHguKPguLLguLAKK+C5gOC4geC4o+C4suC4sOC5gOC4nuC4iuC4o+C5hOC4nuC4keC4ueC4o+C4ouC5jAor4LmA4LiB4Lij4Li04LiBCivguYDguIHguKPguLTguJkKK+C5gOC4geC4o+C4tOC5iOC4mQor4LmA4LiB4Lij4Li14Lii4LiBCivguYDguIHguKPguLXguKLguIcKK+C5gOC4geC4o+C4teC4ouC4lAor4LmA4LiB4Lij4Li14Lii4LiZCivguYDguIHguKPguLXguKLguJoKK+C5gOC4geC4o+C4teC4ouC4oQor4LmA4LiB4Lij4Li14Lii4Lih4LiB4Lij4LihCivguYDguIHguKPguLXguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4pwor4LmA4LiB4Lij4Li14LmJ4Lii4Lin4LmGCivguYDguIHguYDguKMKK+C5gOC4geC4peC5h+C4lAor4LmA4LiB4Lil4LioCivguYDguIHguKXguK0KK+C5gOC4geC4peC4sgor4LmA4LiB4Lil4LmJ4LiyCivguYDguIHguKXguLLguLAKK+C5gOC4geC4peC4teC5iOC4ogor4LmA4LiB4Lil4Li14LmJ4LiiCivguYDguIHguKXguLXguKLguIcKK+C5gOC4geC4peC4teC5ieC4ouC4hwor4LmA4LiB4Lil4Li14Lii4LiUCivguYDguIHguKXguLXguKLguKcKK+C5gOC4geC4peC4teC5iOC4ouC4p+C4lOC4swor4LmA4LiB4Lil4Li34LitCivguYDguIHguKXguLfguYnguK0KK+C5gOC4geC4peC4t+C4reC4gQor4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguYDguIHguKXguLfguYnguK3guJkKK+C5gOC4geC5hOC4pQor4LmA4LiB4Lin4LilCivguYDguIHguKfguKXguLLguJfguLUKK+C5gOC4geC4p+C4peC4tOC4mQor4LmA4LiB4Lin4Lil4Li1CivguYDguIHguKfguLHguI8KK+C5gOC4geC4p+C4teC4ouC4mQor4LmA4LiB4LioCivguYDguIHguKjguJ4KK+C5gOC4geC4qOC4pwor4LmA4LiB4Lio4LiyCivguYDguIHguKjguLTguJnguLUKK+C5gOC4geC4qOC4tQor4LmA4LiB4Lip4LiV4LijCivguYDguIHguKnguJXguKPguIHguKMKK+C5gOC4geC4qeC4leC4o+C4geC4o+C4o+C4oQor4LmA4LiB4Lip4LiV4Lij4Lia4LiU4Li1CivguYDguIHguKnguJXguKPguKjguLLguKrguJXguKPguYwKK+C5gOC4geC4qeC4oQor4LmA4LiB4Lip4Li14Lii4LiTCivguYDguIHguKnguLXguKLguJkKK+C5gOC4geC4qeC4teC4ouC4owor4LmA4LiB4LiqCivguYDguIHguKrguJXguLLguYLguJsKK+C5gOC4geC4quC4owor4LmA4LiB4Liq4Lij4Li1CivguYDguIHguKrguLIKK+C5gOC4geC4quC4tQor4LmA4LiB4LmI4Lir4Lil4Li1CivguYDguIHguYnguK0KK+C5gOC4geC4reC4tOC4iuC4sgor4LmA4LiB4LiwCivguYDguIHguLDguIHguLAKK+C5gOC4geC4sgor4LmA4LiB4LmI4LiyCivguYDguIHguYnguLIKK+C5gOC4geC5i+C4sgor4LmA4LiB4Liy4LiV4LmMCivguYDguIHguLLguJfguLHguJPguJHguYwKK+C5gOC4geC4suC4l+C4uOC4oeC4nuC4owor4LmA4LiB4Liy4Lia4Li04LiZCivguYDguIHguLLguJrguLTguKUKK+C5gOC4geC4suC4oeC4suC4owor4LmA4LiB4Liy4Lil4Lix4LiUCivguYDguIHguLLguKXguLTguJkKK+C5gOC4geC4suC4qOC4seC4peC4ouC5jAor4LmA4LiB4Liy4LmE4Lio4LiiCivguYDguIHguLLguYDguKvguKXguLIKK+C5gOC4geC4suC5gOC4q+C4peC4teC4ouC4hwor4LmA4LiB4LmJ4Liy4Lit4Li14LmJCivguYDguIHguLLguLAKK+C5gOC4geC4suC4sOC5geC4geC4sAor4LmA4LiB4Li04LiHCivguYDguIHguLTguYnguIcKK+C5gOC4geC4tOC4lAor4LmA4LiB4Li04LiZCivguYDguIHguLTguJoKK+C5gOC4geC4teC4ogor4LmA4LiB4Li14Lii4LiB4LiB4Liy4LiiCivguYDguIHguLXguKLguIcKK+C5gOC4geC4teC5iOC4ouC4hwor4LmA4LiB4Li14LmL4Lii4LiHCivguYDguIHguLXguKLguIgKK+C5gOC4geC4teC4ouC4lAor4LmA4LiB4Li14Lii4LiZCivguYDguIHguLXguYnguKLguKHguYTguInguYgKK+C5gOC4geC4teC5ieC4ouC4oeC4reC4teC5iwor4LmA4LiB4Li14Lii4Lij4LiV4Li0CivguYDguIHguLXguKLguKPguJXguLTguYwKK+C5gOC4geC4teC5iOC4ouC4pwor4LmA4LiB4Li14LmJ4Lii4LinCivguYDguIHguLXguYrguKLguKcKK+C5gOC4geC4teC5iuC4ouC4sAor4LmA4LiB4Li34LmJ4LitCivguYDguIHguLfguK3guIEKK+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQor4LmA4LiB4Li34Lit4LiaCivguYHguIEKK+C5geC4geC5iAor4LmB4LiB4LmJCivguYHguIHguIcKK+C5geC4geC5iOC4hwor4LmB4LiB4LmJ4LiHCivguYHguIHguYrguIcKK+C5geC4geC4h+C4guC4oQor4LmB4LiB4LiH4LmE4LiUCivguYHguIHguIfguYHguJnguIcKK+C5geC4geC5iOC4h+C5geC4ouC5iOC4hwor4LmB4LiB4LmC4LiU4Lil4Li04LmA4LiZ4Li14Lii4LihCivguYHguIHguJkKK+C5geC4geC5iOC4mQor4LmB4LiB4LiZ4LiwCivguYHguIHguYHguJkKK+C5geC4geC5iuC4mwor4LmB4LiB4LihCivguYHguIHguYnguKEKK+C5geC4geC4oeC4oeC4sgor4LmB4LiB4Lij4LiBCivguYHguIHguKPguYjguIcKK+C5geC4geC4o+C5h+C4mQor4LmB4LiB4Lij4LiZ4Li04LiVCivguYHguIHguKPguYTguJ/guJXguYwKK+C5geC4geC4o+C5iOC4pwor4LmB4LiB4Lij4LiwCivguYHguIHguKUKK+C5geC4geC4peC5iAor4LmB4LiB4Lil4LmJ4LiHCivguYHguIHguKXguJkKK+C5geC4geC4peC4mgor4LmB4LiB4Lil4LmJ4LihCivguYHguIHguKXguKXguK3guJkKK+C5geC4geC4peC5gOC4peC4teC4ouC4oQor4LmB4LiB4Lil4LmJ4LinCivguYHguIHguKXguLAKK+C5geC4geC5geC4pQor4LmB4LiB4LinCivguYHguIHguYnguKcKK+C5geC4geC4p+C5iOC4hwor4LmB4LiB4Lin4LmI4LiZCivguYHguIHguYfguKoKK+C5geC4geC5iuC4qgor4LmB4LiB4LiwCivguYLguIEKK+C5guC4geC5iAor4LmC4LiB4LmJCivguYLguIHguYsKK+C5guC4geC4gQor4LmC4LiB4LiB4LiZ4Li44LiXCivguYLguIHguIHguLTguKUKK+C5guC4geC4geC4tOC4peC4sgor4LmC4LiB4LmC4LiB4LmJCivguYLguIHguIcKK+C5guC4geC5iOC4hwor4LmC4LiB4LiH4LiB4Liy4LiHCivguYLguIHguYnguIfguYDguIHguYnguIcKK+C5guC4geC4h+C5guC4geC5iQor4LmC4LiB4LmJ4LiH4LmC4LiE4LmJ4LiHCivguYLguIHguYDguIrguLLguKfguYwKK+C5guC4geC4jeC4iOC4mQor4LmC4LiB4LiN4LiI4LiyCivguYLguIHguI/guLQKK+C5guC4geC4kAor4LmC4LiB4LiQ4Liy4LiqCivguYLguIHguJMKK+C5guC4geC4k+C4gQor4LmC4LiB4LiT4LiR4Lix4LiN4LiN4LiwCivguYLguIHguJTguLHguIcKK+C5guC4geC4leC5hOC4lQor4LmC4LiB4LiX4Lix4LiT4LiR4LmMCivguYLguIHguJkKK+C5guC4geC5iOC4mQor4LmC4LiB4LmL4LiZCivguYLguIHguJnguLLguITguKHguJnguYwKK+C5guC4geC5guC4meC5gOC4o+C4teC4ogor4LmC4LiB4Lib4Li04LiZ4LizCivguYLguIHguKHguKUKK+C5guC4geC4oeC4suC4o+C4oOC4seC4iOC4iOC5jAor4LmC4LiB4Lih4Li44LiXCivguYLguIHguYDguKHguJkKK+C5guC4geC5gOC4oeC4qAor4LmC4LiB4LiiCivguYLguIHguKPguYkKK+C5guC4geC4o+C4gQor4LmC4LiB4Lij4LiB4LiB4Lij4Liy4LiBCivguYLguIHguKPguIcKK+C5guC4geC4o+C5iOC4hwor4LmC4LiB4Lij4LmI4LiH4LiB4Lij4LmI4Liy4LiHCivguYLguIHguKPguIfguYDguIHguKPguIcKK+C5guC4geC4o+C5i+C4h+C5gOC4geC4o+C5i+C4hwor4LmC4LiB4Lij4LiN4LiICivguYLguIHguKPguJQKK+C5guC4geC4o+C4leC5i+C4mQor4LmC4LiB4Lij4LiYCivguYLguIHguKPguJjguLIKK+C5guC4geC4o+C5i+C4mQor4LmC4LiB4Lij4LihCivguYLguIHguKPguKIKK+C5guC4geC4o+C4qAor4LmC4LiB4LmC4Lij4LmC4LiB4LmA4LiVCivguYLguIHguYLguKPguYLguIHguYLguKPguIEKK+C5guC4geC5guC4o+C5guC4geC5guC4qgor4LmC4LiB4Lil4LiHCivguYLguIHguKXguJkKK+C5guC4geC4peC4suC4q+C4pQor4LmC4LiB4LmE4LilCivguYLguIHguKfguLTguJcKK+C5guC4geC4p+C4tOC4rOC4suC4owor4LmC4LiB4LioCivguYLguIHguKjguKUKK+C5guC4geC4qQor4LmC4LiB4Lip4LihCivguYLguIHguKnguKIKK+C5guC4geC4qgor4LmC4LiB4Liq4LiZCivguYLguIHguKrguLHguIoKK+C5guC4geC4quC4tOC4meC4l+C4o+C5jAor4LmC4LiB4Liq4Li14Lii4LmMCivguYLguIHguKrguLjguKEKK+C5guC4geC5hOC4quC4ogor4LmC4LiB4Lir4LiBCivguYLguIHguKvguKfguLIKK+C5guC4geC4q+C4seC4jQor4LmD4LiB4Lil4LmJCivguYTguIEKK+C5hOC4geC5iAor4LmE4LiB4LmJCivguYTguIHguYoKK+C5hOC4geC5iwor4LmE4LiB4LmI4LiB4Lit4LihCivguYTguIHguYvguYHguJTguIcKK+C5hOC4geC5iOC5gOC4leC4teC5ieC4ogor4LmE4LiB4LmI4LiZ4LiyCivguYTguIHguYjguJ7guLHguKUKK+C5hOC4geC5iOC4n+C5ieC4sgor4LmE4LiB4LijCivguYTguIHguKPguJ4KK+C5hOC4geC4o+C4peC4suC4qgor4LmE4LiB4Lij4Lio4LijCivguYTguIHguKPguKjguKPguLUKK+C5hOC4geC4o+C4quC4owor4LmE4LiB4Lij4Liq4Li04LiX4LiY4Li0CivguYTguIHguKUKK+C5hOC4geC4peC5iAor4LmE4LiB4Lil4Liy4LiqCivguYTguIHguKcKK+C5hOC4geC4p+C4seC4pQor4LmE4LiB4LmI4LmE4Lir4LmJCivguIIKK+C4guC4hOC4sAor4LiC4LiE4Liy4LiY4Li04LibCivguILguITguLLguKDguLTguKPguLLguKEKK+C4guC4hOC4suC4quC4meC4sAor4LiC4LmA4LiE4Lio4Lin4LijCivguILguIcKK+C4guC4h+C4iOC4t+C5iuC4rQor4LiC4LiI4LijCivguILguIjguK3guIEKK+C4guC4iOC4seC4lAor4LiC4LiI4LmI4Liy4LiHCivguILguIjguLLguKIKK+C4guC4iOC4suC4pwor4LiC4LiI4Li04LiVCivguILguIjguLTguKPguLTguJQKK+C4guC4iOC4tQor4LiC4LiI4Li44LiiCivguILguYDguIjguLIKK+C4guC4k+C4sAor4LiC4LiT4Liw4LiI4Li04LiVCivguILguJPguLTguIEKK+C4guC4k+C4tOC4geC4quC4oeC4suC4mOC4tAor4LiC4LiUCivguILguJTguLLguJkKK+C4guC4leC4reC4ogor4LiC4LiX4Li04LiHCivguILguJfguLbguIcKK+C4guC4mQor4LiC4LmJ4LiZCivguILguJnguIcKK+C4guC4meC4h+C5gOC4meC4t+C5ieC4rQor4LiC4LiZ4LiUCivguILguJnguJkKK+C4guC4meC4mgor4LiC4LiZ4LihCivguILguJnguKHguIjguLXguJkKK+C4guC4meC4oeC5gOC4muC4t+C5ieC4reC4h+C4jeC4p+C4mQor4LiC4LiZ4Lih4Lib4Lix4LiHCivguILguJnguKHguJzguKrguKHguJnguYnguLPguKLguLIKK+C4guC4meC4oeC4nOC4seC4geC4geC4suC4lAor4LiC4LiZ4Lih4LmA4Liq4LmJ4LiZCivguILguJnguKHguKvguLHguKfguJzguLHguIHguIHguLLguJQKK+C4guC4meC4reC4hwor4LiC4LiZ4Lit4LiZCivguILguJnguK3guJoKK+C4guC4meC4seC4lAor4LiC4LiZ4Lix4LiZCivguILguJnguLLguIEKK+C4guC4meC4suC4hwor4LiC4LiZ4Liy4LiUCivguILguJnguLLguJkKK+C4guC4meC4suC4mgor4LiC4LiZ4Liy4LiiCivguILguJnguLMKK+C4guC4meC4tOC4qeC4kAor4LiC4LiZ4Li04Lip4LiQ4LiyCivguILguJnguLjguJkKK+C4guC4mgor4LiC4Lia4LiC4Lix4LiZCivguILguJrguJYKK+C4guC4muC4p+C4mQor4LiC4Lia4Lin4LijCivguILguJrguLnguKMKK+C4guC4oQor4LiC4LmI4LihCivguILguKHguIfguYLguIHguKPguKIKK+C4guC4oeC4oQor4LiC4Lih4Lin4LiUCivguILguKHguKfguJTguKLguLIKK+C4guC4oeC4p+C4mQor4LiC4Lih4Lir4Li04LiZCivguILguKHguK3guIcKK+C4guC4oeC5iOC4reC4oQor4LiC4Lih4Lit4LiiCivguILguKHguLHguIHguYDguILguKHguYnguJkKK+C4guC4oeC4seC4hwor4LiC4Lih4Lix4LiaCivguILguKHguLIKK+C4guC4oeC5ieC4swor4LiC4Lih4Li04LmJ4LiZCivguILguKHguLTguJoKK+C4guC4oeC4teC4guC4oeC4seC4mQor4LiC4Lih4Li24LiHCivguILguKHguLgKK+C4guC4oeC4uOC4geC4guC4oeC4reC4oQor4LiC4Lih4Li44LiB4LiC4Lih4Lix4LinCivguILguKHguLjguJTguILguKHguLTguJQKK+C4guC4oeC4uOC4mgor4LiC4Lih4Li44LihCivguILguYLguKHguKIKK+C4guC4ouC4lAor4LiC4Lii4LihCivguILguKLguYjguKEKK+C4guC4ouC4pQor4LiC4Lii4Lit4LiBCivguILguKLguK3guIcKK+C4guC4ouC5iOC4reC4mQor4LiC4Lii4LmJ4Lit4LiZCivguILguKLguLAKK+C4guC4ouC4sOC5geC4guC4ouC4hwor4LiC4Lii4Lix4LiBCivguILguKLguLHguJkKK+C4guC4ouC4seC5ieC4mQor4LiC4Lii4Lix4LiaCivguILguKLguLLguJQKK+C4guC4ouC4suC4mgor4LiC4Lii4Liy4LiiCivguILguKLguLMKK+C4guC4ouC5ieC4swor4LiC4Lii4Li04LiBCivguILguKLguLTguJoKK+C4guC4ouC4tOC5iOC4oQor4LiC4Lii4Li14LmJCivguILguKLguLXguYjguILguKLguLHguJkKK+C4guC4ouC4uOC4geC4guC4ouC4tOC4gQor4LiC4Lii4Li44LiB4LiC4Lii4Li44LiiCivguILguKLguLjguJoKK+C4guC4ouC4uOC4oQor4LiC4Lii4Li44LmJ4LihCivguILguKLguLjguYnguKHguJXguLXguJnguKvguKHguLIKK+C4guC4ouC4uOC4ogor4LiC4Lij4LihCivguILguKPguKPguITguYwKK+C4guC4o+C4seC4pwor4LiC4Lij4Li04LiaCivguILguKPguLUKK+C4guC4o+C4tuC4oQor4LiC4Lij4Li44LiC4Lij4LiwCivguILguKXguYnguIcKK+C4guC4peC4mgor4LiC4Lil4LihCivguILguKXguKfguJkKK+C4guC4peC5ieC4rQor4LiC4Lil4Lix4LiHCivguILguKXguLHguJoKK+C4guC4peC4sgor4LiC4Lil4Liy4LiUCivguILguKXguLLguKIKK+C4guC4peC4tOC4mgor4LiC4Lil4Li04Lia4LiX4Lit4LiHCivguILguKXguLbguIcKK+C4guC4peC4uOC4gQor4LiC4Lil4Li44LiaCivguILguKXguLjguKEKK+C4guC4peC4uOC4oeC4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4LiC4Lil4Li44LmI4LiiCivguILguKXguLkKK+C4guC4peC4ueC5iAor4LiC4Lin4LiHCivguILguYjguKfguIcKK+C4guC4p+C4lAor4LiC4Lin4LiZCivguILguYjguKfguJkKK+C4guC4p+C4mgor4LiC4Lin4LiiCivguILguKfguLDguYTguILguKfguYjguYDguILguKfguLXguYjguKIKK+C4guC4p+C4seC4geC5hOC4guC4p+C5iAor4LiC4Lin4Lix4LiNCivguILguKfguLHguI3guYDguKHguLfguK3guIcKK+C4guC4p+C4seC4jeC4reC5iOC4reC4mQor4LiC4Lin4Lix4LiUCivguILguKfguLHguJTguILguKfguLTguJQKK+C4guC4p+C4seC4lOC5geC4hOC4p+C5ieC4hwor4LiC4Lin4Lix4LmJ4LiZCivguILguKfguLHguJoKK+C4guC4p+C4sgor4LiC4Lin4Liy4LiBCivguILguKfguLLguIcKK+C4guC4p+C5ieC4suC4hwor4LiC4Lin4Liy4LiUCivguILguKfguLLguJkKK+C4guC4p+C4suC4ouC4guC4p+C4mQor4LiC4Lin4Liy4LinCivguILguKfguYnguLLguKcKK+C4guC4p+C4tOC4lAor4LiC4Lip4LiT4LiwCivguILguKnguLHguKIKK+C4guC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiC4Lip4Li14LijCivguILguK0KK+C4guC5iOC4rQor4LiC4LmJ4LitCivguILguK3guIEKK+C4guC4reC4hwor4LiC4LmJ4Lit4LiHCivguILguK3guIfguKPguLDguK3guLIKK+C4guC4reC4ieC4suC4ogor4LiC4Lit4LiUCivguILguK3guJkKK+C4guC5iOC4reC4mQor4LiC4LmJ4Lit4LiZCivguILguK3guJoKK+C4guC4reC4muC4guC5iOC4suC4ogor4LiC4Lit4Lia4LmA4LiC4LiVCivguILguK3guJrguITguLjguJMKK+C4guC4reC4muC5g+C4iAor4LiC4Lit4Lia4Lie4Lij4Liw4LiE4Li44LiTCivguILguK3guJrguYDguKvguKXguYfguIEKK+C4guC4reC4oQor4LiC4LmI4Lit4LiiCivguILguYnguK3guKIKK+C4guC4sOC4guC4swor4LiC4Liw4LmB4LiC4LmI4LiZCivguILguLDguYHguILguYnguJkKK+C4guC4sOC5geC4iOC4sAor4LiC4Liw4LmB4LiW4LiBCivguILguLDguJnguLLguJkKK+C4guC4sOC5gOC4meC5h+C4lAor4LiC4Liw4Lih4Lit4Lih4LiC4Liw4LmB4Lih4LihCivguILguLDguYHguKHguIvguK0KK+C4guC4sOC5geC4oeC4mOC4oQor4LiC4Liw4Lii4Li04LiBCivguILguLDguKLguLjguIEKK+C4guC4sOC5gOC4ouC5ieC4reC5geC4guC4ouC5iOC4hwor4LiC4Liw4LmB4Lii4LiwCivguILguLHguIQKK+C4guC4seC4hwor4LiC4Lix4LiH4LiC4Lit4LiBCivguILguLHguIoKK+C4guC4seC4iuC4gQor4LiC4Lix4LiT4LiR4Liq4LiB4LijCivguILguLHguJQKK+C4guC4seC4lOC4oeC4reC4mQor4LiC4Lix4LiZCivguILguLHguYnguJkKK+C4guC4seC4meC5geC4guC5h+C4hwor4LiC4Lix4LiZ4LiV4Li0CivguILguLHguJnguJXguLUKK+C4guC4seC4meC5guC4leC4gQor4LiC4Lix4LiZ4LiX4Lit4LiH4Lie4Lii4Liy4Lia4Liy4LiXCivguILguLHguJnguJfguLUKK+C4guC4seC4meC4mOC5jAor4LiC4Lix4LiZ4LiY4LiB4Li44Lih4Liy4LijCivguILguLHguJnguJjguKrguLHguJnguJTguLLguJkKK+C4guC4seC4meC4mOC4suC4p+C4suC4owor4LiC4Lix4LiZ4Lir4Lih4Liy4LiBCivguILguLHguJoKK+C4guC4seC4ogor4LiC4Lix4LinCivguILguLHguYnguKcKK+C4guC4sgor4LiC4LmI4LiyCivguILguYnguLIKK+C4guC4suC4gQor4LiC4Liy4LiB4LmK4Lin4LiiCivguILguLLguYDguIHguKfguLXguKLguJkKK+C4guC4suC4hwor4LiC4LmI4Liy4LiHCivguILguYnguLLguIcKK+C4guC5ieC4suC4h+C4geC4o+C4sOC4lOC4suC4mQor4LiC4LmJ4Liy4LiH4LmA4LiH4Li04LiZCivguILguLLguIfguYHguJTguIcKK+C4guC5ieC4suC4h+C4leC4sOC5gOC4oOC4sgor4LiC4LmJ4Liy4LiH4Lil4Liy4LiiCivguILguLLguJPguLgKK+C4guC4suC4lAor4LiC4Liy4LiX4LiZ4Li14Lii4LiwCivguILguLLguJkKK+C4guC5iOC4suC4mQor4LiC4Liy4LiaCivguILguLLguKEKK+C4guC5ieC4suC4oQor4LiC4Liy4LiiCivguILguYjguLLguKIKK+C4guC4suC4pQor4LiC4Liy4LinCivguILguYjguLLguKcKK+C4guC5ieC4suC4pwor4LiC4LmJ4Liy4Lin4LiE4LizCivguILguYnguLLguKfguIjguLXguYgKK+C4guC4suC4p+C4iOC4teC4mgor4LiC4LmJ4Liy4Lin4LiV4LmJ4LihCivguILguYnguLLguKfguJXguK3guIEKK+C4guC5ieC4suC4p+C4meC4gQor4LiC4Liy4Lin4Lie4Lin4LiHCivguILguLLguKfguKHguYnguLIKK+C4guC5ieC4suC4p+C4oeC4tOC5iOC4mQor4LiC4LmJ4Liy4Lin4LmA4Lii4LmH4LiZ4LmD4LiV4LmJCivguILguYnguLLguKfguYDguKLguYfguJnguYDguKvguJnguLfguK0KK+C4guC5ieC4suC4p+C4quC4suC4owor4LiC4LmJ4Liy4Lin4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguILguLLguKfguYPguKvguI3guYgKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC4meC5ieC4reC4ogor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmI4LmD4Lir4LiN4LmICivguILguYnguLLguKjguLbguIEKK+C4guC5ieC4suC4q+C4peC4p+C4hwor4LiC4LmJ4Liy4Lir4Lil4Lin4LiH4Lir4Lil4Lix4LiH4Lil4Liy4LiiCivguILguLMKK+C4guC5iOC4s+C5gOC4guC4teC4ouC4pwor4LiC4Li04LiBCivguILguLTguIHguYYKK+C4guC4tOC4hwor4LiC4Li04LmI4LiHCivguILguLTguJvguKrguLHguJfguYLguJcKK+C4guC4tOC4oQor4LiC4Li14LmICivguILguLXguYkKK+C4guC4teC5ieC4geC4sgor4LiC4Li14LmJ4LiB4Liy4LiU4LiHCivguILguLXguYnguIHguLLguYHguJTguIcKK+C4guC4teC5ieC4geC4suC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiC4Li14LmJ4LiC4LihCivguILguLXguYnguILguKfguIcKK+C4guC4teC5ieC4guC4uOC4ogor4LiC4Li14LmJ4LiE4Lij4Lit4LiBCivguILguLXguYnguITguKfguLLguKIKK+C4guC4teC5ieC5guC4hOC4o+C4hwor4LiC4Li14LiT4LiwCivguILguLXguJPguLLguKrguJ4KK+C4guC4teC4lAor4LiC4Li14LmJ4LiV4Lix4LiH4LiZ4Li1CivguILguLXguYnguJXguLTguYnguKcKK+C4guC4teC5ieC5hOC4leC5iQor4LiC4Li14LmJ4LmE4LiWCivguILguLXguJvguJnguLLguKfguLjguJgKK+C4guC4teC5ieC4nOC4tuC5ieC4hwor4LiC4Li14LmJ4Lih4Lit4LiUCivguILguLXguYnguKLguK3guIEKK+C4guC4teC5ieC4o+C4suC4lAor4LiC4Li14LmJ4LmB4Lij4LiUCivguILguLXguYnguKrguLnguJQKK+C4guC4teC5ieC4q+C4meC4reC4mQor4LiC4Li14LmJ4Lir4LiZ4LmJ4LiyCivguILguLXguYnguKvguJnguLkKK+C4guC4teC5ieC4q+C4oeC4uQor4LiC4Li14LmJ4LmA4Lir4Lil4LmH4LiBCivguILguLXguYnguK3guYnguJkKK+C4guC4teC5ieC4reC5ieC4suC4ogor4LiC4Li24LiHCivguILguLbguYnguIcKK+C4guC4tuC5ieC4mQor4LiC4Li24LmJ4LiZ4LiJ4LmI4Liy4LiiCivguILguLfguJkKK+C4guC4t+C5iOC4mQor4LiC4Li34LmI4LitCivguILguLfguYjguK3guJzguLUKK+C4guC4uOC4gQor4LiC4Li44LiUCivguILguLjguJfguJfguIHguJnguLTguIHguLLguKIKK+C4guC4uOC4mQor4LiC4Li44LmI4LiZCivguILguLjguJnguJfguK3guIcKK+C4guC4uOC4meC5geC4nOC4mQor4LiC4Li44LiZ4LmA4Lie4LmH4LiUCivguILguLjguJvguJvguLTguJvguLLguKrguLTguIHguYDguJvguKPguJUKK+C4guC4uOC4oQor4LiC4Li44LiiCivguILguLkKK+C4guC4ueC5iAor4LiC4Li54LiUCivguYDguIIKK+C5gOC4guC5iQor4LmA4LiC4LiBCivguYDguILguYfguIcKK+C5gOC4guC5iOC4hwor4LmA4LiC4LiI4LijCivguYDguILguYfguI0KK+C5gOC4guC5h+C4jeC5g+C4iAor4LmA4LiC4LmH4LiUCivguYDguILguJTguLIKK+C5gOC4guC4lQor4LmA4LiC4LiZCivguYDguILguYfguJkKK+C5gOC4guC5iOC4mQor4LmA4LiC4LiZ4LiHCivguYDguILguJnguYfguJQKK+C5gOC4guC4meC4ogor4LmA4LiC4Lia4LmH4LiI4LiC4Lia4Lin4LiZCivguYDguILguJrguYfguJUKK+C5gOC4guC5h+C4oQor4LmA4LiC4LmJ4LihCivguYDguILguYnguKHguILguLLguJoKK+C5gOC4guC4oeC5h+C4hwor4LmA4LiC4Lih4LmH4LiU4LmB4LiC4Lih4LmICivguYDguILguKHguYjguJkKK+C5gOC4guC4oeC5ieC4mQor4LmA4LiC4Lih4LmJ4LiZ4LiC4Liw4Lih4Lix4LiBCivguYDguILguKHguKMKK+C5gOC4guC4oeC4sgor4LmA4LiC4Lih4LmI4LiyCivguYDguILguKHguLLguYLguIHguKPguKIKK+C5gOC4guC4oeC4t+C4reC4mgor4LmA4LiC4LiiCivguYDguILguKLguIEKK+C5gOC4guC4ouC5iOC4hwor4LmA4LiC4Lii4LiV4Liy4LiiCivguYDguILguKLguYnguK3guYHguILguKLguYjguIcKK+C5gOC4guC4ouC4reC4sOC4guC4ouC4sAor4LmA4LiC4Lii4LmI4LiyCivguYDguILguKLguLTguJkKK+C5gOC4guC4ouC4tOC4mgor4LmA4LiC4Lii4Li14Lii4Lin4LiC4Lii4Lit4LiZCivguYDguILguKLguLfguYnguK3guJkKK+C5gOC4guC4o+C4reC4sAor4LmA4LiC4Lil4LiHCivguYDguILguKXguK3guLAKK+C5gOC4guC4peC4sAor4LmA4LiC4Lil4LiyCivguYDguILguKXguLLguLAKK+C5gOC4guC4pwor4LmA4LiC4Lip4LiV4LijCivguYDguILguKnguKEKK+C5gOC4guC4qeC4teC4ouC4owor4LmA4LiC4Lis4LiwCivguYDguILguLDguILguLAKK+C5gOC4guC4sgor4LmA4LiC4LmI4LiyCivguYDguILguYnguLIKK+C5gOC4guC5ieC4suC4q+C4oeC4tOC5ieC4mQor4LmA4LiC4Li04LiHCivguYDguILguLTguJkKK+C5gOC4guC4tOC4mgor4LmA4LiC4Li14LmI4LiiCivguYDguILguLXguKLguIcKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C4sOC4meC4suC4h+C4reC4teC5iAor4LmA4LiC4Li14Lii4LiH4Lie4Lij4LmJ4LiyCivguYDguILguLXguKLguJQKK+C5gOC4guC4teC4ouC4mQor4LmA4LiC4Li14LmI4Lii4LiZCivguYDguILguLXguKLguKEKK+C5gOC4guC4teC4ouC4pwor4LmA4LiC4Li14LmJ4Lii4LinCivguYDguILguLXguKLguLAKK+C5gOC4guC4t+C4rQor4LmA4LiC4Li34Lit4LiHCivguYDguILguLfguYjguK3guIcKK+C5gOC4guC4t+C5iOC4reC4mQor4LmA4LiC4Li34Lit4LihCivguYHguIIKK+C5geC4guC5iQor4LmB4LiC4LiBCivguYHguILguIHguYDguJXguYnguLIKK+C5geC4guC5h+C4hwor4LmB4LiC4LmI4LiHCivguYHguILguYnguIcKK+C5geC4guC4mQor4LmB4LiC4LmI4LiZCivguYHguILguYnguJkKK+C5geC4guC4meC4hwor4LmB4LiC4LiZ4LiwCivguYHguILguKEKK+C5geC4guC4oeC5h+C4mgor4LmB4LiC4Lih4LmI4LinCivguYHguILguKLguYfguIHguYYKK+C5geC4guC4ouC4hwor4LmB4LiC4Lii4LmI4LiHCivguYHguILguKLguIfguKvguJnguLkKK+C5geC4guC4peC4sAor4LmB4LiC4Lin4LiBCivguYHguILguKfguIcKK+C5geC4guC4p+C4mQor4LmB4LiC4Lin4LiZ4Lil4Lit4LiiCivguYHguILguKfguLAKK+C5geC4guC4quC4o+C5jAor4LmC4LiCCivguYLguILguIEKK+C5guC4guC5iOC4hwor4LmC4LiC4LiUCivguYLguILguJTguIcKK+C5guC4guC4mQor4LmC4LiC4LiZ4LiHCivguYLguILguKEKK+C5guC4guC4oeC4hwor4LmC4LiC4Lih4LiUCivguYLguILguKHguJTguKLguLIKK+C5guC4guC4ouC4gQor4LmC4LiC4Lii4LiHCivguYLguILguKLguYjguIcKK+C5guC4guC4ouC4lAor4LmC4LiC4Lii4LihCivguYLguILguKXguIEKK+C5guC4guC4peC4geC5hgor4LmC4LiC4Lil4LiHCivguYLguILguKXguJkKK+C5guC4guC4peC4meC4l+C4p+C4suC4owor4LmC4LiC4Lip4LihCivguYTguIIKK+C5hOC4guC5iAor4LmE4LiC4LmJCivguYTguILguYjguJTguLHguJkKK+C5hOC4guC5iOC4oeC4uOC4gQor4LmE4LiC4Lij4LiyCivguYTguILguKfguYgKK+C5hOC4guC4p+C5iQor4LmE4LiC4Lip4LiiCivguYTguILguKrguLfguK0KK+C5hOC4guC5gOC4quC4meC4teC4ouC4lAor4LmE4LiC4Lir4Li5CivguYTguILguYjguYDguKvguKXguLfguK3guIcKK+C4hAor4LiE4LiBCivguITguITguJnguLAKK+C4hOC4hOC4meC4seC4oeC4nuC4owor4LiE4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguITguJnguLLguJnguJXguYwKK+C4hOC4hwor4LiE4LiH4LiE4LiyCivguITguIfguITguLLguYDguJTguLfguK3guJQKK+C4hOC4h+C5hOC4hOC4ogor4LiE4LiK4Lij4Liy4LiKCivguITguIrguKrguYjguLLguJkKK+C4hOC4iuC4suC4iuC4suC4leC4tAor4LiE4LiK4Liy4LiK4Li14LieCivguITguIrguLLguJjguLLguKMKK+C4hOC4iuC4suC4oOC4o+C4k+C5jAor4LiE4LiK4Liy4Lii4Li44Lij4LmA4Lin4LiKCivguITguIrguLLguKPguLUKK+C4hOC4iuC4tOC4meC4l+C4owor4LiE4LmA4LiK4LiZ4LiX4Lij4LmMCivguITguJPguJkKK+C4hOC4k+C4meC4sgor4LiE4LiT4LmC4Lig4LiK4LiZ4LmMCivguITguJPguLAKK+C4hOC4k+C4tOC4geC4sgor4LiE4LiT4Li04LiVCivguITguYDguJPguKgKK+C4hOC4lAor4LiE4LiU4Li1CivguITguJUKK+C4hOC4leC4tAor4LiE4LiX4LiyCivguITguJkKK+C4hOC5ieC4mQor4LiE4LiZ4LiX4LiyCivguITguJnguJfguLTguKrguK0KK+C4hOC4meC4l+C4tOC4quC4reC4l+C4sOC5gOC4pQor4LiE4LiZ4LiX4Li1CivguITguJnguJfguLXguYDguILguKHguLIKK+C4hOC4meC4l+C4teC4quC4rQor4LiE4LiZ4LmC4LiXCivguITguJnguJjguYwKK+C4hOC4meC4mOC4o+C4o+C4nuC5jAor4LiE4LiZ4Lil4LiwCivguITguYDguJnguIjguKMKK+C4hOC4mgor4LiE4LihCivguITguKHguJnguYwKK+C4hOC4oeC4meC4suC4geC4suC4owor4LiE4Lih4LiZ4Liy4LiE4LihCivguITguKHguLTguIHguKDguLHguJUKK+C4hOC4o+C4gQor4LiE4Lij4LmI4LiHCivguITguKPguJoKK+C4hOC4o+C4muC4luC5ieC4p+C4mQor4LiE4Lij4Lij4LiK4Li04LiVCivguITguKPguKPguKAKK+C4hOC4o+C4o+C4oOC5jAor4LiE4Lij4Lij4Lig4LiY4Liy4LiV4Li4CivguITguKPguKPguKDguKHguKUKK+C4hOC4o+C4o+C4oOC4suC4mOC4suC4mQor4LiE4Lij4Lij4LmC4Lig4LiX4LijCivguITguKPguKPguKXguK3guIcKK+C4hOC4o+C4o+C5guC4peC4hwor4LiE4Lij4Lij4LmE4LilCivguITguKPguKPguKvguLTguJUKK+C4hOC4o+C4p+C4jQor4LiE4Lij4Lin4LiN4Lir4LiyCivguITguKPguKfguLHguIEKK+C4hOC4o+C4p+C4tQor4LiE4Lij4Lir4LiyCivguITguKPguK3guIEKK+C4hOC4o+C4reC4hwor4LiE4Lij4Lit4LiH4LmB4LiE4Lij4LiHCivguITguKPguYjguK3guYDguIfguLLguLAKK+C4hOC4o+C5iOC4reC5gOC4l+C4teC4ouC4mQor4LiE4Lij4Lit4LiaCivguITguKPguK3guJrguIjguLHguIHguKPguKfguLLguKUKK+C4hOC4o+C4reC4muC4leC4peC4seC4mgor4LiE4Lij4LmI4Lit4LihCivguITguKPguLAKK+C4hOC4o+C4sOC5gOC4oeC4tOC4mQor4LiE4Lij4Liw4LmB4Lil4LiHCivguITguKPguLDguYTguKUKK+C4hOC4o+C4sOC5geC4p+C4hwor4LiE4Lij4Liw4Lir4LiZCivguITguKPguLDguKvguKfguJkKK+C4hOC4o+C4sOC4q+C4suC4ogor4LiE4Lij4Liw4Lir4Li04LinCivguITguKPguLDguYLguKvguKIKK+C4hOC4o+C4seC5iOC4hwor4LiE4Lij4Lix4LmJ4LiHCivguITguKPguLHguJTguYDguITguKPguYjguIcKK+C4hOC4o+C4seC4mQor4LiE4Lij4Lix4LmI4LiZCivguITguKPguLHguYnguJkKK+C4hOC4o+C4seC4mgor4LiE4Lij4Lix4LinCivguITguKPguLIKK+C4hOC4o+C5iOC4sgor4LiE4Lij4Liy4LiBCivguITguKPguLLguIcKK+C4hOC4o+C4suC4jQor4LiE4Lij4Liy4LiUCivguITguKPguYnguLLguJkKK+C4hOC4o+C4suC4mgor4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguITguKPguLLguKEKK+C4hOC4o+C5ieC4suC4oQor4LiE4Lij4Liy4Lih4LiE4Lij4Lix4LiZCivguITguKPguLLguKcKK+C4hOC4o+C5iOC4suC4pwor4LiE4Lij4Liy4LiqCivguITguKPguLMKK+C4hOC4o+C5iOC4swor4LiE4Lij4Li04Lib4LiX4Lit4LiZCivguITguKPguLTguKrguJXguYwKK+C4hOC4o+C4teC4hOC4o+C4rQor4LiE4Lij4Li14LiaCivguITguKPguLXguKEKK+C4hOC4o+C4teC4qeC4oeC4suC4ouC4seC4mQor4LiE4Lij4Li2CivguITguKPguLbguIHguITguKPguLfguYnguJkKK+C4hOC4o+C4tuC4geC5guC4hOC4o+C4oQor4LiE4Lij4Li24LmI4LiHCivguITguKPguLbguJkKK+C4hOC4o+C4tuC4oQor4LiE4Lij4Li24LmJ4LihCivguITguKPguLbguKHguITguKPguLgKK+C4hOC4o+C4t+C4lAor4LiE4Lij4Li34LiZCivguITguKPguLfguYnguJkKK+C4hOC4o+C4t+C4meC4hOC4o+C4seC5iOC4mQor4LiE4Lij4Li34LmJ4LiZ4LiE4Lij4Li24LiBCivguITguKPguLfguYnguJnguYDguITguKPguIcKK+C4hOC4o+C4t+C4rQor4LiE4Lij4Li4CivguITguKPguLjguITguKPguLAKK+C4hOC4o+C4uOC4kQor4LiE4Lij4Li44LiR4LiB4Lij4Liw4LiX4LiHCivguITguKPguLjguYjguJkKK+C4hOC4o+C4uOC5iOC4meC4hOC4tOC4lAor4LiE4Lij4Li44Lih4LmA4LiE4Lij4Li34LitCivguITguKPguLjguKIKK+C4hOC4o+C4uOC4p+C4meC4sgor4LiE4Lij4Li5CivguITguKPguLnguYgKK+C4hOC4o+C4ueC4lAor4LiE4Lik4LmC4LiG4LipCivguITguKTguJnguJbguYwKK+C4hOC4pOC4qwor4LiE4Lik4Lir4Lia4LiU4Li1CivguITguKTguKvguJvguLHguJXguJnguLUKK+C4hOC4pOC4q+C4seC4quC4luC5jAor4LiE4Lik4Lir4LiyCivguITguKTguKvguLLguKrguJnguYwKK+C4hOC4pQor4LiE4Lil4Lin4LiHCivguITguKXguK0KK+C4hOC4peC5ieC4rQor4LiE4Lil4Lit4LiBCivguITguKXguK3guIcKK+C4hOC4peC5iOC4reC4hwor4LiE4Lil4LmJ4Lit4LiHCivguITguKXguK3guJQKK+C4hOC4peC4reC4mQor4LiE4Lil4LmJ4Lit4LiiCivguITguKXguK3guKPguLXguJkKK+C4hOC4peC4reC5guC4o+C4n+C4reC4o+C4oeC5jAor4LiE4Lil4Lit4LmC4Lij4Lif4Li14Lil4Lil4LmMCivguITguKXguLAKK+C4hOC4peC4sOC4hOC4peC4uOC5ieC4hwor4LiE4Lil4Lix4LiBCivguITguKXguLHguYjguIEKK+C4hOC4peC4seC5iOC4geC5hgor4LiE4Lil4Lix4LiHCivguITguKXguLHguYjguIcKK+C4hOC4peC4seC4leC4iuC5jAor4LiE4Lil4Lix4LiaCivguITguKXguLHguJrguITguKXguYnguLLguKIKK+C4hOC4peC4sgor4LiE4Lil4LmJ4LiyCivguITguKXguLLguIfguYHguITguKXguIcKK+C4hOC4peC4suC4lAor4LiE4Lil4Liy4LiZCivguITguKXguLLguKIKK+C4hOC4peC5ieC4suC4ogor4LiE4Lil4LmJ4Liy4Lii4LiE4Lil4Li24LiHCivguITguKXguYjguLLguKcKK+C4hOC4peC4suC4qAor4LiE4Lil4LizCivguITguKXguYjguLMKK+C4hOC4peC5ieC4swor4LiE4Lil4Li04LiHCivguITguKXguLTguYnguIfguYLguITguKXguIcKK+C4hOC4peC4tOC4meC4tOC4gQor4LiE4Lil4Li1CivguITguKXguLXguYgKK+C4hOC4peC4tuC4hwor4LiE4Lil4Li34LmI4LiZCivguITguKXguLfguYjguJnguYTguKrguYkKK+C4hOC4peC4t+C5iOC4meC5gOC4q+C4teC4ouC4mQor4LiE4Lil4Li44LiBCivguITguKXguLjguIHguITguKXguLLguJkKK+C4hOC4peC4uOC5ieC4hwor4LiE4Lil4Li44LiaCivguITguKXguLjguKEKK+C4hOC4peC4uOC5iOC4oQor4LiE4Lil4Li44LmJ4LihCivguITguKfguIcKK+C4hOC4p+C4kwor4LiE4Lin4LiZCivguITguKfguJoKK+C4hOC4p+C4muC5geC4meC5iOC4mQor4LiE4Lin4LiiCivguITguKfguKMKK+C4hOC4p+C4seC4gQor4LiE4Lin4Lix4LiB4LiE4LmJ4Lit4LiZCivguITguKfguLHguYjguIfguITguKfguYnguLLguIcKK+C4hOC4p+C4seC4mQor4LiE4Lin4Lix4LmI4LiZCivguITguKfguYnguLIKK+C4hOC4p+C4suC4gQor4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLLguI0KK+C4hOC4p+C4suC4mQor4LiE4Lin4LmJ4Liy4LiZCivguITguKfguLLguKEKK+C4hOC4p+C4suC4oeC4hOC4peC4suC4lAor4LiE4Lin4Liy4Lih4LmA4LiE4Lij4Li14Lii4LiUCivguITguKfguLLguKHguYHguITguYnguJkKK+C4hOC4p+C4suC4oeC5gOC4ieC4t+C5iOC4reC4ogor4LiE4Lin4Liy4Lih4LiK4Li34LmJ4LiZCivguITguKfguLLguKHguJbguYjguKfguIcKK+C4hOC4p+C4suC4oeC4luC4teC5iAor4LiE4Lin4Liy4Lih4Lii4Liy4Lin4LiE4Lil4Li34LmI4LiZCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguYDguILguLfguYjguK3guIcKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC4lOC5ieC4reC4ogor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LmA4LiU4LmI4LiZCivguITguKfguLLguKHguYDguKPguYjguIcKK+C4hOC4p+C4suC4oeC5gOC4o+C5h+C4pwor4LiE4Lin4Liy4Lih4Lir4LiZ4LmI4Lin4LiHCivguITguKfguLLguKIKK+C4hOC4p+C5iOC4suC4pwor4LiE4Lin4LmI4LizCivguITguKfguLTguJnguLTguJkKK+C4hOC4p+C4tOC4p+C5hgor4LiE4Lin4Li04Lin4LiE4Lin4Lix4LiHCivguITguKfguLTguKfguITguKfguYjguLLguIcKK+C4hOC4p+C4tOC4p+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Li14LiZ4Liq4Li04Lij4Li04LiB4Li04LiV4Li04LmMCivguITguKvguLHguJAKK+C4hOC4rQor4LiE4LmJ4LitCivguITguK3guIEKK+C4hOC5h+C4reC4geC4hOC4seC4qgor4LiE4LmH4Lit4LiB4LmA4LiX4LilCivguITguK3guITguLLguJkKK+C4hOC4reC5gOC4hOC4i+C4reC4ouC4lOC5jAor4LiE4Lit4LiH4LmA4LiB4Lij4LiqCivguITguYjguK3guIfguK3guYnguK3guKIKK+C4hOC4reC4lAor4LiE4Lit4LmA4LiV4LmH4LiaCivguITguK3guJkKK+C4hOC5iOC4reC4mQor4LiE4LmJ4Lit4LiZCivguITguK3guJnguIHguKPguLXguJUKK+C4hOC5ieC4reC4meC4geC4peC4reC4hwor4LiE4Lit4LiZ4LmA4LiU4LiZ4LmA4LiL4Lit4Lij4LmMCivguITguYnguK3guJnguJXguLXguJnguKvguKHguLIKK+C4hOC5ieC4reC4meC4l+C4reC4hwor4LiE4Lit4LiZ4Lin4Lit4LiiCivguITguK3guJnguYHguKfguJnguJXguYwKK+C4hOC4reC4meC5gOC4quC4tOC4o+C5jOC4lQor4LiE4LmJ4Lit4LiZ4Lir4Lit4LiiCivguITguK3guJoKK+C4hOC4reC4oQor4LiE4LmI4Lit4LihCivguITguYnguK3guKEKK+C4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jAor4LiE4Lit4Lih4Lih4Liy4LiZ4LmC4LiUCivguITguK3guKHguKHguLTguKfguJnguLTguKrguJXguYwKK+C4hOC4reC4ogor4LiE4LmI4Lit4LiiCivguITguYnguK3guKIKK+C4hOC5iOC4reC4ouC5hgor4LiE4Lit4Lii4Lil4LmMCivguITguK3guKPguYzguJQKK+C4hOC4reC4o+C5jOC4lQor4LiE4Lit4Lij4Lix4Lib4LiK4Lix4LmI4LiZCivguITguK3guKXguLHguKHguJnguYwKK+C4hOC4reC5gOC4peC4quC5gOC4leC4reC4o+C4reC4pQor4LiE4Lit4LmB4Lil4LiZCivguITguK3guKrguJXguLTguIHguYLguIvguJTguLIKK+C4hOC4reC5geC4q+C5ieC4hwor4LiE4LiwCivguITguYjguLAKK+C4hOC4sOC5hOC4guC4p+C5iAor4LiE4Liw4LiE4LmJ4Lit4LiiCivguITguLDguITguLLguJkKK+C4hOC4sOC4hOC4tuC4hwor4LiE4Liw4LiZ4LiZCivguITguLDguJnguK3guIcKK+C4hOC4sOC4meC5ieC4sgor4LiE4Liw4LiZ4Li24LiHCivguITguLDguYDguJkKK+C4hOC4sOC5gOC4meC4h+C4o+C5ieC4suC4ogor4LiE4Liw4LmA4LiZ4LmH4LiUCivguITguLDguYHguJnguJkKK+C4hOC4sOC5g+C4mQor4LiE4Liw4Lih4LizCivguITguLDguKHguLbguIEKK+C4hOC4sOC4ouC4seC5ieC4meC4hOC4sOC4ouC4rQor4LiE4Liw4LmA4Lii4LitCivguITguLHguIEKK+C4hOC4seC5iOC4gQor4LiE4Lix4LiE4LiZCivguITguLHguITguJnguLAKK+C4hOC4seC4hOC4meC4seC4oeC4nuC4owor4LiE4Lix4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguLHguITguJnguLLguJnguJXguYwKK+C4hOC4seC5iOC4hwor4LiE4Lix4LiH4LmE4LiE4LiiCivguITguLHguIjguIkKK+C4hOC4seC4k+C4keC4oeC4suC4peC4sgor4LiE4Lix4LiT4LiR4Liq4Li54LiV4LijCivguITguLHguJQKK+C4hOC4seC4lOC5gOC4hOC5ieC4sgor4LiE4Lix4LiU4LiK4LmJ4Lit4LiZCivguITguLHguJTguKHguK3guJkKK+C4hOC4seC4l+C4peC4teC4ouC4sgor4LiE4Lix4LiZCivguITguLHguYjguJkKK+C4hOC4seC5ieC4mQor4LiE4Lix4LiZ4LiI4Liy4LihCivguITguLHguJnguInguLLguKIKK+C4hOC4seC4meC5guC4lOC4hwor4LiE4Lix4LiZ4LiX4Lij4LiHCivguITguLHguJnguJgKK+C4hOC4seC4meC4mOC5jAor4LiE4Lix4LiZ4LiY4Liy4Lij4Lij4Liy4Lip4LiO4Lij4LmMCivguITguLHguJnguKvguLLguKHguYDguKrguLfguK0KK+C4hOC4seC4mgor4LiE4Lix4Lia4LiE4LmJ4Lit4LiZCivguITguLHguJrguITguLIKK+C4hOC4seC4muC5geC4hAor4LiE4Lix4Lie4Lig4LmMCivguITguLHguJ7guYLguKDguJfguKMKK+C4hOC4seC4oeC4oOC4teC4o+C5jAor4LiE4Lix4LilCivguITguLHguKcKK+C4hOC4seC5iOC4pwor4LiE4LiyCivguITguYjguLIKK+C4hOC5ieC4sgor4LiE4LmI4Liy4LiE4LiaCivguITguLLguIcKK+C4hOC5iOC4suC4hwor4LiE4LmJ4Liy4LiHCivguITguLLguIfguITguIEKK+C4hOC5ieC4suC4h+C4hOC4suC4pwor4LiE4Liy4LiUCivguITguLLguJTguITguLHguYnguJkKK+C4hOC4suC4luC4sgor4LiE4Liy4LiX4Lit4Lil4Li04LiBCivguITguYjguLLguJfguLXguYgKK+C4hOC4suC4mAor4LiE4Liy4LmA4LiY4Lii4LmMCivguITguLLguJkKK+C4hOC5ieC4suC4mQor4LiE4Liy4LiZ4LmJ4LiyCivguITguLLguJoKK+C4hOC4suC4nuC4ouC4uOC4lQor4LiE4Liy4LihCivguITguLLguKHguJPguLXguKLguYwKK+C4hOC4suC4oeC4oOC4teC4o+C5jAor4LiE4Liy4Lih4Li1CivguITguLLguKIKK+C4hOC5iOC4suC4ogor4LiE4Liy4Lii4LiBCivguITguLLguKLguLHguJkKK+C4hOC4suC4o+C5jOC4muC4reC4mQor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4LmE4LiU4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guJnguKHguK3guJnguK3guIHguYTguIvguJTguYwKK+C4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LiE4Liy4Lij4LmM4Lia4Lit4Lil4Li04LiBCivguITguLLguKPguYzguJrguLnguYDguKPguYDguJXguK3guKPguYwKK+C4hOC4suC4o+C5jOC5guC4muC4o+C4seC4meC4lOC4seC4oQor4LiE4Liy4Lij4LmM4LmC4Lia4LmE4Liu4LmA4LiU4Lij4LiVCivguITguLLguKPguJ4KK+C4hOC4suC4o+C4oQor4LiE4Liy4Lij4Lin4LiwCivguITguLLguKPguLLguYDguJXguYkKK+C4hOC4suC4o+C4suC4p+C4suC4mQor4LiE4Liy4LinCivguITguYjguLLguKcKK+C4hOC5ieC4suC4pwor4LiE4Liy4Lin4LiV4Lit4LiHCivguITguLLguKfguLUKK+C4hOC4suC4p+C4uOC4lQor4LiE4Liy4LiqCivguITguYjguLLguKvguJQKK+C4hOC4swor4LiE4LmI4LizCivguITguYnguLMKK+C4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4LiE4Liz4LmD4LiV4LmJCivguITguLPguJnguKfguJMKK+C4hOC4s+C4meC4p+C4owor4LiE4Liz4LiZ4Lix4LiaCivguITguLPguJnguLHguKUKK+C4hOC4s+C4meC4tuC4hwor4LiE4Liz4LiZ4Li54LiTCivguITguLPguYLguJrguKUKK+C4hOC4s+C4neC4reC4ogor4LiE4Liz4LmA4Lie4Lil4Li04LiHCivguITguLPguKPguJkKK+C4hOC4s+C4o+C4mgor4LiE4Liz4Lij4Liy4LihCivguITguLPguYHguKrguJQKK+C4hOC4s+C5geC4q+C4hwor4LiE4Liz4LmC4Lit4LiHCivguITguLTguIHguYYKK+C4hOC4tOC4hwor4LiE4Li04LiUCivguITguLTguJnguLQKK+C4hOC4tOC4oeC4qwor4LiE4Li04Lih4Lir4Lix4LiZ4LiV4LmMCivguITguLTguKHguKvguLLguJnguLAKK+C4hOC4tOC4o+C4tAor4LiE4Li04Lij4Li1CivguITguLTguKXguLLguJnguLAKK+C4hOC4tOC4pwor4LiE4Li04LmJ4LinCivguITguLTguKvguLTguKrguLjguIIKK+C4hOC4teC5iAor4LiE4Li14LiVCivguITguLXguJXguIHguLAKK+C4hOC4teC4mgor4LiE4Li14LihCivguITguLXguKPguLUKK+C4hOC4teC4o+C4teC4muC4ueC4mQor4LiE4Li24LiBCivguITguLbguYjguIEKK+C4hOC4tuC5iOC4geC5hgor4LiE4Li24LiB4LiE4Lix4LiBCivguITguLbguIHguITguLLguKEKK+C4hOC4t+C4mQor4LiE4Li34LiaCivguITguLfguK0KK+C4hOC4uAor4LiE4Li44LiBCivguITguLjguIHguIHguLXguYkKK+C4hOC4uOC4geC5gOC4guC5iOC4sgor4LiE4Li44LiB4LiE4Lil4Liy4LiZCivguITguLjguIHguITguLLguKEKK+C4hOC4uOC4geC4nuC4suC4l+C4ouC5jAor4LiE4Li44LiE4LiwCivguITguLjguIcKK+C4hOC4uOC5ieC4hwor4LiE4Li44LiTCivguITguLjguJPguITguYjguLIKK+C4hOC4uOC4k+C4mOC4o+C4o+C4oQor4LiE4Li44LiT4LiZ4Liy4LihCivguITguLjguJPguJrguJcKK+C4hOC4uOC4k+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4LiE4Li44LiT4Lie4Li04LmA4Lio4LipCivguITguLjguJPguKDguLLguJ4KK+C4hOC4uOC4k+C4peC4seC4geC4qeC4k+C4sAor4LiE4Li44LiT4Lil4Li44LiH4LiE4Li44LiT4Lib4LmJ4LiyCivguITguLjguJPguKfguLTguYDguKjguKkKK+C4hOC4uOC4k+C4p+C4uOC4kuC4tAor4LiE4Li44LiT4Lio4Lix4Lie4LiX4LmMCivguITguLjguJPguKrguKHguJrguLHguJXguLQKK+C4hOC4uOC4k+C4suC4geC4owor4LiE4Li44LiT4Liy4Lil4Lix4LiiCivguITguLjguJPguLnguJvguIHguLLguKMKK+C4hOC4uOC5guC4k+C4m+C4geC4suC4owor4LiE4Li44LiUCivguITguLjguJTguJfguLDguKPguLLguJQKK+C4hOC4uOC4lQor4LiE4Li44LiV4LiV4Li0CivguITguLjguYjguJkKK+C4hOC4uOC5ieC4mQor4LiE4Li44LibCivguITguLjguJvguJXguYwKK+C4hOC4uOC4m+C4leC4tAor4LiE4Li44LihCivguITguLjguYjguKEKK+C4hOC4uOC5ieC4oQor4LiE4Li44LmJ4Lih4LiU4Li14LiE4Li44LmJ4Lih4Lij4LmJ4Liy4LiiCivguITguLjguYnguKHguYDguJfguYnguLIKK+C4hOC4uOC4oeC4neC4reC4ogor4LiE4Li44LiiCivguITguLjguYnguKIKK+C4hOC4uOC4o+C4uAor4LiE4Li44Lil4LiyCivguITguLjguKXguLTguIHguYjguLIKK+C4hOC4uOC4peC4teC4geC4suC4owor4LiE4Li5CivguITguLnguYgKK+C4hOC4ueC5iQor4LiE4Li54LiTCivguITguLnguJYKK+C4hOC4ueC4mQor4LiE4Li54Lib4Lit4LiHCivguITguLnguYDguKPguLXguKLguKEKK+C4hOC4ueC4q+C4sgor4LmA4LiE4LmJ4LmA4LiB4LmJCivguYDguITguYnguIcKK+C5gOC4hOC4iOC4iQor4LmA4LiE4LiT4LiR4LiwCivguYDguITguJQKK+C5gOC4hOC4mQor4LmA4LiE4LmA4Lia4Li04LilCivguYDguITguYfguKEKK+C5gOC4hOC4oeC4tQor4LmA4LiE4LiiCivguYDguITguKPguIcKK+C5gOC4hOC4o+C5iOC4hwor4LmA4LiE4Lij4LiH4LiE4Lij4LizCivguYDguITguKPguIfguITguKPguYjguLMKK+C5gOC4hOC4o+C4lOC4tOC4lQor4LmA4LiE4Lij4LiZCivguYDguITguKPguLIKK+C5gOC4hOC4o+C5iOC4sgor4LmA4LiE4Lij4Liy4Lir4LiT4Li1CivguYDguITguKPguLLguLDguKvguYwKK+C5gOC4hOC4o+C4teC4ouC4lAor4LmA4LiE4Lij4Li14Lii4LinCivguYDguITguKPguLfguK0KK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LmA4LiC4Liy4Lih4Lin4LiBCivguYDguITguKPguLfguYjguK3guIcKK+C5gOC4hOC4o+C4t+C4reC4iOC4seC4geC4o+C4oOC4ngor4LmA4LiE4Lil4LmJ4LiHCivguYDguITguKXguYfguJQKK+C5gOC4hOC4peC5ieC4mQor4LmA4LiE4Lil4LmJ4LiyCivguYDguITguKXguYjguLLguITguKXguYjguK3guIcKK+C5gOC4hOC4peC4tOC4muC5gOC4hOC4peC4tOC5ieC4oQor4LmA4LiE4Lil4Li04LmJ4LihCivguYDguITguKXguLXguKIKK+C5gOC4hOC4peC4teC5ieC4ouC4hOC4peC4tOC4hwor4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguYDguITguKXguLfguK3guJoKK+C5gOC4hOC4p+C5ieC4hwor4LmA4LiE4Lir4LiwCivguYDguITguKvguLIKK+C5gOC4hOC4reC4sAor4LmA4LiE4LiyCivguYDguITguYnguLIKK+C5gOC4hOC4suC4meC5jOC5gOC4leC4reC4o+C5jAor4LmA4LiE4Liy4LmA4Lib4LmLCivguYDguITguLLguKPguJ4KK+C5gOC4hOC5ieC4suC4quC4meC4suC4oeC4q+C4peC4p+C4hwor4LmA4LiE4Liy4LiwCivguYDguITguLLguLDguYHguITguLAKK+C5gOC4hOC4teC5ieC4ogor4LmA4LiE4Li14Lii4LiHCivguYDguITguLXguKLguJQKK+C5gOC4hOC4teC4ouC4mQor4LmA4LiE4Li14Lii4LihCivguYDguITguLXguYjguKLguKEKK+C5gOC4hOC4teC4ouC4owor4LmA4LiE4Li14Lii4LinCivguYDguITguLXguYjguKLguKcKK+C5gOC4hOC4teC5ieC4ouC4pwor4LmA4LiE4Li34LmJ4LitCivguYDguITguLfguK3guIcKK+C5geC4hAor4LmB4LiE4LmICivguYHguITguYkKK+C5geC4hOC5geC4geC4pQor4LmB4LiE4LiK4LmA4LiK4Li14Lii4Lij4LmMCivguYHguITguJTguYDguKHguLXguKLguKEKK+C5geC4hOC5guC4l+C4lAor4LmB4LiE4LiZCivguYHguITguYjguJkKK+C5geC4hOC5ieC4mQor4LmB4LiE4LiaCivguYHguITguJrguKvguKHguLkKK+C5geC4hOC4m+C4i+C4ueC4pQor4LmB4LiE4LihCivguYHguITguKPguYgKK+C5geC4hOC4o+C4gQor4LmB4LiE4Lij4LiE4Lij4Lix4LmI4LiHCivguYHguITguKPguIcKK+C5geC4hOC4o+C4h+C5gOC4hOC4o+C4teC4ouC4pwor4LmB4LiE4Lij4LiwCivguYHguITguKXguITguLnguKXguLHguKoKK+C5geC4hOC4peC4hwor4LmB4LiE4Lil4LmA4LiL4Li14Lii4LihCivguYHguITguKXguJkKK+C5geC4hOC4peC5ieC4pwor4LmB4LiE4Lil4LmI4Lin4LiE4Lil4LmI4Lit4LiHCivguYHguITguKXguK3guKPguLUKK+C5geC4hOC4peC4tOC4n+C4reC4o+C5jOC5gOC4meC4teC4ouC4oQor4LmB4LiE4LmB4LilCivguYHguITguKcKK+C5geC4hOC4p+C4gQor4LmB4LiE4Lin4LmJ4LiHCivguYHguITguKfguYnguJkKK+C5geC4hOC4sAor4LmC4LiECivguYLguITguIEKK+C5guC4hOC4geC4geC4o+C4sOC4quC4uOC4mQor4LmC4LiE4LiB4LiB4Lij4Liw4Lit4Lit4LihCivguYLguITguIHguKHguYnguLIKK+C5guC4hOC4hOC4peC4suC4mQor4LmC4LiE4LmA4LiE4LiZCivguYLguITguYjguIcKK+C5guC4hOC5ieC4hwor4LmC4LiE4LiI4LijCivguYLguITguIjguKPguITguLLguKEKK+C5guC4hOC5ieC4igor4LmC4LiE4LmA4LiL4LmB4LiE4LiZ4LiV4LmMCivguYLguITguYTguIvguJnguYwKK+C5guC4hOC4leC4owor4LmC4LiE4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYLguITguJjguLIKK+C5guC4hOC4mQor4LmC4LiE4LmI4LiZCivguYLguITguJnguJTguLTguJnguKrguK0KK+C5guC4hOC4meC4leC4suC4ouC4m+C4peC4suC4ouC5gOC4m+C5h+C4mQor4LmC4LiE4LiZ4Liq4Lih4LitCivguYLguITguJrguK3guKXguJXguYwKK+C5guC4hOC4m+C4nOC4geC4sAor4LmC4LiE4LihCivguYLguITguKHguYjguLIKK+C5guC4hOC4o+C4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Lit4LiBCivguYLguITguKPguIHguITguKPguLLguIEKK+C5guC4hOC4o+C4hwor4LmC4LiE4Lij4LmI4LiHCivguYLguITguKPguYjguIfguITguKPguYjguLLguIcKK+C5guC4hOC4o+C4h+C5geC4hOC4owor4LmC4LiE4Lij4LihCivguYLguITguKPguYDguKHguLXguKLguKEKK+C5guC4hOC4o+C5guC4oeC5guC4i+C4oQor4LmC4LiE4Lij4Liy4LiKCivguYLguITguKUKK+C5guC4hOC4peC4hwor4LmC4LiE4Lil4LiZCivguYLguITguKfguJXguLIKK+C5guC4hOC4reC4reC4o+C5jOC4lOC4tOC5gOC4meC4lQor4LmD4LiE4LijCivguYPguITguKPguYgKK+C5g+C4hOC4o+C5iOC4hOC4o+C4p+C4jQor4LmE4LiECivguYTguITguYkKK+C5hOC4hOC4o+C5iQor4LmE4LiE4Lij4LmJ4LmA4LiE4Lij4Li34LitCivguYTguITguKUKK+C5hOC4hOC4peC5iQor4LiGCivguIbguIcKK+C4huC4jwor4LiG4LmC4LiP4LiX4LijCivguIbguJUKK+C4huC4mQor4LiG4LiZ4Liy4LiB4LijCivguIbguJnguLLguITguKEKK+C4huC4meC4suC4oeC4seC4ogor4LiG4LiZ4Liy4Lio4Lix4LiiCivguIbguYLguJnguJrguKUKK+C4huC4o+C4suC4p+C4suC4qgor4LiG4LmJ4Lit4LiHCivguIbguYnguK3guIfguKrguLLguKHguKLguYjguLLguJkKK+C4huC5iOC4sgor4LiG4Liy4LiPCivguIbguLLguJUKK+C4huC4suC4mQor4LmA4LiG4Li14LmI4Lii4LiZCivguYLguIbguKPguKfguLTguKoKK+C5guC4huC4qQor4LmC4LiG4Lip4LiBCivguYLguIbguKnguJPguLIKK+C5guC4huC4qeC4k+C4suC4geC4suC4owor4LmC4LiG4Lip4LiT4Liy4LiK4Lin4LiZ4LmA4LiK4Li34LmI4LitCivguYLguIbguKnguLTguJUKK+C5guC4huC4quC4p+C4seC4meC4leC5jAor4LiHCivguIfguIEKK+C4h+C4hwor4LiH4LiH4Li04LiUCivguIfguJQKK+C4h+C4lOC4h+C4suC4oQor4LiH4LiaCivguIfguKEKK+C4h+C4p+C4hwor4LiH4LmI4Lin4LiHCivguIfguKfguJQKK+C4h+C5iOC4p+C4mQor4LiH4LmJ4Lin4LiZCivguIfguKfguKLguIfguIcKK+C4h+C4rQor4LiH4LmJ4LitCivguIfguK3guIEKK+C4h+C4reC4geC5geC4h+C4gQor4LiH4LmI4Lit4LiHCivguIfguYjguK3guIfguYHguIfguYjguIcKK+C4h+C4reC5geC4hwor4LiH4Lit4LiUCivguIfguK3guJTguYHguIfguJQKK+C4h+C4reC4mQor4LiH4LmI4Lit4LiZCivguIfguYjguK3guJnguYHguIfguYjguJkKK+C4h+C4reC4meC4q+C4h+C5iOC4rQor4LiH4LmJ4Lit4LiZ4Lir4Lih4Li5CivguIfguK3guJoKK+C4h+C4reC4oQor4LiH4LmJ4Lit4LihCivguIfguK3guKIKK+C4h+C5iOC4reC4ogor4LiH4LiwCivguIfguLHguIHguYYKK+C4h+C4seC5iOC4geC5hgor4LiH4Lix4LmI4LiHCivguIfguLHguIfguYYKK+C4h+C4seC4lAor4LiH4Lix4LiZCivguIfguLHguJnguIfguIEKK+C4h+C4seC4mgor4LiH4Lix4LinCivguIfguLHguYjguKcKK+C4h+C4seC4p+C5gOC4h+C4teC4ogor4LiH4Lix4Lin4LiL4Lix4LiHCivguIfguLHguKfguYDguKXguLXguKIKK+C4h+C4sgor4LiH4LmI4LiyCivguIfguYnguLLguIcKK+C4h+C5iOC4suC5gOC4h+C4ogor4LiH4Liy4LmE4LiLCivguIfguLLguJkKK+C4h+C5iOC4suC4mQor4LiH4Liy4Lia4LmGCivguIfguLLguKEKK+C4h+C5iOC4suC4oQor4LiH4Liy4LiiCivguIfguYjguLLguKIKK+C4h+C5iOC4suC4ouC5ieC4reC4ogor4LiH4LmJ4Liy4LinCivguIfguLMKK+C4h+C5iOC4swor4LiH4LmJ4LizCivguIfguYjguLPguYYKK+C4h+C4tOC5ieC4pwor4LiH4Li14LiaCivguIfguLbguIHguYYKK+C4h+C4tuC4mQor4LiH4Li24LihCivguIfguLbguKHguIfguLMKK+C4h+C4uOC4lAor4LiH4Li44LiU4LmGCivguIfguLjguJnguIfguIcKK+C4h+C4uOC5iOC4meC4h+C5iOC4suC4mQor4LiH4Li44LiaCivguIfguLjguJrguYYKK+C4h+C4uOC4muC4h+C4tOC4mgor4LiH4Li44LmJ4LihCivguIfguLjguYjguKHguIfguYjguLLguKEKK+C4h+C4uOC4ogor4LiH4Li5CivguIfguLnguJoKK+C4h+C4ueC5iOC4q+C4meC4tQor4LmA4LiH4LmJCivguYDguIfguIEKK+C5gOC4h+C5h+C4mQor4LmA4LiH4LiiCivguYDguIfguYjguKvguKHguLbguIcKK+C5gOC4h+C4reC4sAor4LmA4LiH4Lit4Liw4LiH4LiwCivguYDguIfguLIKK+C5gOC4h+C5iOC4sgor4LmA4LiH4LmJ4LiyCivguYDguIfguLLguLAKK+C5gOC4h+C4tOC4mQor4LmA4LiH4Li14LmI4LiiCivguYDguIfguLXguYjguKLguIcKK+C5gOC4h+C4teC5iOC4ouC4mQor4LmA4LiH4Li14Lii4LiaCivguYDguIfguLXguYnguKLguKcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4sOC5gOC4o+C4tOC4hwor4LmA4LiH4Li14LmJ4Lii4Lin4Lij4Liz4Lil4Li24LiBCivguYDguIfguLXguYjguKLguKvguLkKK+C5gOC4h+C4t+C5ieC4rQor4LmA4LiH4Li34Lit4LiBCivguYDguIfguLfguYjguK3guIcKK+C5gOC4h+C4t+C5iOC4reC4h+C5hgor4LmA4LiH4Li34Lit4LiUCivguYDguIfguLfguK3guJTguIfguJQKK+C5gOC4h+C4t+C4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZCivguYDguIfguLfguK3guJoKK+C5gOC4h+C4t+C5ieC4reC4oQor4LmB4LiHCivguYHguIfguYgKK+C5geC4h+C5iOC4hwor4LmB4LiH4LmI4LiZCivguYHguIfguYnguKEKK+C5geC4h+C4sAor4LmC4LiHCivguYLguIfguYgKK+C5guC4h+C4gQor4LmC4LiH4LiB4LmA4LiH4LiBCivguYLguIfguIcKK+C5guC4h+C5ieC4hwor4LmC4LiH4LmI4LiH4LmGCivguYLguIfguIfguYDguIfguIcKK+C5guC4h+C5iOC4h+C5gOC4h+C5iOC4hwor4LmC4LiH4LmA4LiHCivguYLguIfguJkKK+C5hOC4hwor4LmE4LiH4LmJCivguIgKK+C4iOC4gQor4LiI4LiHCivguIjguYjguIcKK+C4iOC5i+C4hwor4LiI4LiH4LiB4Lij4LihCivguIjguIfguIHguKUKK+C4iOC4h+C4geC4peC4meC4tQor4LiI4LiH4LmC4LiE4Lij4LmI4LiHCivguIjguIfguK3guKMKK+C4iOC4h+C4reC4suC4hwor4LiI4LiNCivguIjguJQKK+C4iOC4lOC4uOC4o+C4h+C4hOC5jAor4LiI4LiU4Li44Lij4LiwCivguIjguJXguLjguIrguLLguJXguLTguKrguLjguITguJnguJjguYwKK+C4iOC4leC4uOC4leC4luC4tQor4LiI4LiV4Li44Lij4LiH4LiE4LmC4LiK4LiECivguIjguJXguLjguKPguLLguJrguLLguKLguKDguLnguKHguLQKK+C4iOC4leC4uOC4o+C4suC4o+C4tOC4ouC4quC4seC4iAor4LiI4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguJfguLbguIcKK+C4iOC4mQor4LiI4LmJ4LiZCivguIjguJoKK+C4iOC4oQor4LiI4LmI4LihCivguIjguKHguKMKK+C4iOC4oeC4o+C4tQor4LiI4Lih4Li5CivguIjguKHguLnguIEKK+C4iOC4oeC4ueC4geC4m+C4peC4suC4q+C4peC4lAor4LiI4Lih4Li54LiB4Lib4Lil4Liy4LmE4Lir4LilCivguIjguKHguLnguIHguKvguKXguK3guJQKK+C4iOC4ouC4uOC4leC4tAor4LiI4LijCivguIjguKPguIEKK+C4iOC4o+C4geC4peC4ueC5iAor4LiI4Lij4LiB4LiyCivguIjguKPguYHguIHguKfguYjguIcKK+C4iOC4o+C4hOC4seC5iOC4hwor4LiI4Lij4LiI4Lij4Lix4LilCivguIjguKPguIjguLHguJQKK+C4iOC4o+C4k+C4sAor4LiI4Lij4LiUCivguIjguKPguJTguKUKK+C4iOC4o+C4muC4mQor4LiI4Lij4Lia4Lix4LiZCivguIjguKPguJrguLLguJcKK+C4iOC4o+C4oeC4seC4mQor4LiI4Lij4Lih4Li54LiBCivguIjguKPguKPguIjguLIKK+C4iOC4o+C4o+C5guC4iOC4qQor4LiI4Lij4Lij4LihCivguIjguKPguKPguKLguLIKK+C4iOC4o+C4o+C5guC4peC4hwor4LiI4Lij4Lij4LmI4LizCivguIjguKPguKXguKfguIcKK+C4iOC4o+C4peC5iOC4p+C4hwor4LiI4Lij4Lil4Liy4LiUCivguIjguKPguKXguLLguKIKK+C4iOC4o+C4peC4tOC5iOC4pwor4LiI4Lij4Lil4Li1CivguIjguKPguKXguLnguYgKK+C4iOC4o+C4p+C4iAor4LiI4Lij4Lin4LiUCivguIjguKPguKfguJTguIjguKPguLUKK+C4iOC4o+C4p+C4seC4gQor4LiI4Lij4LiqCivguIjguKPguK3guIEKK+C4iOC4o+C4sOC4geC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiC4Liy4LiaCivguIjguKPguLDguYDguILguYkKK+C4iOC4o+C4sOC4hOC4peC4seC4mgor4LiI4Lij4Liw4LiE4Lil4LmJ4Liy4LiiCivguIjguKPguLDguITguKXguLjguYjguKEKK+C4iOC4o+C4sOC5geC4hOC4hwor4LiI4Lij4Liw4LiI4Li44LmI4LihCivguIjguKPguLDguJfguIEKK+C4iOC4o+C4sOC5gOC4l+C4tOC4mQor4LiI4Lij4Liw4LiZ4LizCivguIjguKPguLDguJrguLLguJkKK+C4iOC4o+C4sOC4muC4tQor4LiI4Lij4Liw4Lil4Li04LmI4LiHCivguIjguKPguLDguKXguLbguIcKK+C4iOC4o+C4sOC4peC4uOC4hwor4LiI4Lij4Lix4LilCivguIjguKPguLHguKoKK+C4iOC4o+C4suC4gQor4LiI4Lij4Liy4LiHCivguIjguKPguLLguIjguKMKK+C4iOC4o+C4suC4jQor4LiI4Lij4Liy4LiiCivguIjguKPguLLguKcKK+C4iOC4o+C4suC4qgor4LiI4Lij4Li04LiBCivguIjguKPguLTguIcKK+C4iOC4o+C4tOC4h+C5hgor4LiI4Lij4Li04LiTCivguIjguKPguLTguJUKK+C4iOC4o+C4tOC4ouC4sgor4LiI4Lij4Li04LinCivguIjguKPguLUKK+C4iOC4o+C4tuC4hwor4LiI4Lij4Li44LiBCivguIjguKPguLjguIcKK+C4iOC4o+C4ueC4hwor4LiI4Lij4Li54LiNCivguIjguKPguLnguKoKK+C4iOC5gOC4owor4LiI4LilCivguIjguKXguJnguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4qOC4suC4quC4leC4o+C5jAor4LiI4Lil4LiZ4Li1CivguIjguKXguLIKK+C4iOC4peC4suC4iOC4pQor4LiI4Lin4LiBCivguIjguYrguKfguIEKK+C4iOC4p+C4hwor4LiI4LmJ4Lin4LiHCivguIjguYvguKfguIcKK+C4iOC4p+C4h+C4q+C4reC4oQor4LiI4Lin4LiUCivguIjguKfguJTguKXguLLguIEKK+C4iOC4p+C4mQor4LiI4Lin4LiaCivguIjguKfguLHguIEKK+C4iOC4rQor4LiI4LmI4LitCivguIjguYnguK0KK+C4iOC5i+C4rQor4LiI4Lit4LiBCivguIjguYnguK3guIEKK+C4iOC5iuC4reC4gQor4LiI4LmJ4Lit4LiB4LmGCivguIjguYrguK3guIHguYYKK+C4iOC5ieC4reC4geC5geC4iOC5ieC4gQor4LiI4LmJ4Lit4LiB4Lin4Lit4LiBCivguIjguK3guIcKK+C4iOC5iOC4reC4hwor4LiI4LmJ4Lit4LiHCivguIjguYvguK3guIcKK+C4iOC5ieC4reC4h+C5gOC4lQor4LiI4Lit4LiH4LmA4Lib4Lij4Li14Lii4LiHCivguIjguK3guIfguKvguIfguYjguK3guIcKK+C4iOC5ieC4reC4h+C4q+C4meC5iOC4reC4hwor4LiI4Lit4LiH4Lir4Lit4LiHCivguIjguK3guYHguIgKK+C4iOC5i+C4reC5geC4iOC5iwor4LiI4LmJ4Lit4LiK4LmJ4Liy4LiHCivguIjguK3guJQKK+C4iOC4reC4mQor4LiI4LmJ4Lit4LiZCivguIjguK3guJnguIjguYjguK0KK+C4iOC4reC4meC4q+C4uQor4LiI4Lit4LiaCivguIjguK3guKEKK+C4iOC5iOC4reC4oQor4LiI4LmI4Lit4Lih4LiI4LmI4Liy4LiiCivguIjguK3guKHguJfguK3guIcKK+C4iOC4reC4oeC4m+C4peC4reC4oQor4LiI4LmJ4Lit4Lih4Lib4LmJ4Lit4LihCivguIjguK3guKHguYDguJvguLLguLAKK+C4iOC4reC4oeC4quC4uOC4o+C4suC4h+C4hOC5jAor4LiI4LmI4Lit4LiiCivguIjguYnguK3guKIKK+C4iOC5i+C4reC4ogor4LiI4LiwCivguIjguYnguLAKK+C4iOC5iuC4sAor4LiI4LmL4LiwCivguIjguLDguIHguKPguLHguJTguIjguLDguIHguKPguLLguJQKK+C4iOC4sOC4geC4o+C4uOC4mQor4LiI4Liw4LiB4Lij4Li44Lih4LiI4Liw4LiB4Lij4Liy4LihCivguIjguLDguIHguKPguLnguJkKK+C4iOC4sOC4geC4peC4sAor4LiI4Liw4LiB4Lin4LiUCivguIjguLDguYDguIHguKPguYfguIcKK+C4iOC4sOC4guC4suC4mgor4LiI4Liw4LmA4LiC4LmJCivguIjguLDguYDguILguYfguJoKK+C4iOC4sOC4h+C4reC4ogor4LiI4Liw4LiI4LiwCivguIjguLDguIjguYnguLIKK+C4iOC4sOC5geC4iAor4LiI4Liw4LmB4LiI4LmJ4LiHCivguIjguLDguYHguIjguYnguJkKK+C4iOC4sOC5geC4iOC5iOC4oQor4LiI4Liw4LmE4LiI4LmJCivguIjguLDguJrguLHguJkKK+C4iOC4sOC4m+C4tOC5ieC4hwor4LiI4Liw4LmA4Lie4Lil4Li04LiHCivguIjguLDguKXguLDguYDguKHguYfguJQKK+C4iOC4sOC4peC4sOC4q+C4p+C4seC5iOC4mQor4LiI4Liw4Lil4Li44LiHCivguIjguLHguIEKK+C4iOC4seC5ieC4geC5hgor4LiI4Lix4LiB4LiB4Liy4LiiCivguIjguLHguYrguIHguIHguLTguYnguKEKK+C4iOC4seC4geC4guC4uAor4LiI4Lix4LiB4LiI4Lix4LmI4LiZCivguIjguLHguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC4iOC4teC5iQor4LiI4Lix4LmK4LiB4LmA4LiU4Li14Lii4LihCivguIjguLHguIHguKMKK+C4iOC4seC4geC4o+C4nuC4suC4gQor4LiI4Lix4LiB4Lij4Lin4Liy4LiBCivguIjguLHguIHguKPguLTguJkKK+C4iOC4seC4geC4o+C4tQor4LiI4Lix4LmK4LiB4LmA4Lil4LmJ4LitCivguIjguLHguIHguKnguLgKK+C4iOC4seC4geC5geC4q+C4peC5iOC4mQor4LiI4Lix4LiHCivguIjguLHguYnguIcKK+C4iOC4seC5i+C4hwor4LiI4Lix4LiH4LiB4Lin4LiUCivguIjguLHguIfguIHguK3guJoKK+C4iOC4seC4h+C4geC4sgor4LiI4Lix4LiH4LiB4Li54LiUCivguIjguLHguIfguYDguIEKK+C4iOC4seC4h+C5guC4gQor4LiI4Lix4LiH4LmC4LiB4LmLCivguIjguLHguIfguYLguIHguI/guIHguYwKK+C4iOC4seC4h+C4h+C4seC4hwor4LiI4Lix4LiH4Lih4Lix4LiHCivguIjguLHguIfguYTguKMKK+C4iOC4seC4h+C4peC4reC4mQor4LiI4Lix4LiH4LmA4Lin4LmH4LiICivguIjguLHguIfguKvguJnguLHguJoKK+C4iOC4seC4h+C4q+C4o+C4teC4lAor4LiI4Lix4LiH4Lir4Lil4LmI4LitCivguIjguLHguIfguKvguKfguLAKK+C4iOC4seC4h+C4q+C4p+C4seC4lAor4LiI4Lix4LiH4Lir4Lix4LiZCivguIjguLHguIfguK3guK3guJkKK+C4iOC4seC4jeC5hOC4owor4LiI4Lix4LiT4LiR4LmMCivguIjguLHguJPguJHguLLguKUKK+C4iOC4seC4lAor4LiI4Lix4LiU4LiI4Lit4LiHCivguIjguLHguJXguJXguLLguKzguLXguKoKK+C4iOC4seC4leC4p+C4sgor4LiI4Lix4LiV4Li4CivguIjguLHguJXguLjguKMKK+C4iOC4seC4leC4uOC5guC4peC4geC4muC4suC4pQor4LiI4Lix4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguLHguJkKK+C4iOC4seC5iOC4mQor4LiI4Lix4LiZ4LmC4LiI4LipCivguIjguLHguJnguJfguYwKK+C4iOC4seC4meC4l+C4meC5jAor4LiI4Lix4LiZ4LiX4LiZ4LiyCivguIjguLHguJnguJfguKPguYwKK+C4iOC4seC4meC4l+C4o+C4geC4peC4sgor4LiI4Lix4LiZ4LiX4Lij4LiB4Lip4Lix4LiiCivguIjguLHguJnguJfguKPguIHguLLguJnguJXguYwKK+C4iOC4seC4meC4l+C4o+C4geC4uOC4jgor4LiI4Lix4LiZ4LiX4Lij4LmA4LiB4LiV4Li4CivguIjguLHguJnguJfguKPguITguJXguLQKK+C4iOC4seC4meC4l+C4o+C4hOC4o+C4suC4qgor4LiI4Lix4LiZ4LiX4Lij4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguIjguLHguJnguJfguKPguIrguJnguIEKK+C4iOC4seC4meC4l+C4o+C4l+C4seC4geC4qeC4tOC4kwor4LiI4Lix4LiZ4LiX4Lij4LiX4Liy4LijCivguIjguLHguJnguJfguKPguJnguLTguKDguLIKK+C4iOC4seC4meC4l+C4o+C4muC4uOC4leC4owor4LiI4Lix4LiZ4LiX4Lij4Lib4Lij4Liw4Lig4Liy4LieCivguIjguLHguJnguJfguKPguJ7guLTguKHguJ7guYwKK+C4iOC4seC4meC4l+C4o+C4oOC4suC4qgor4LiI4Lix4LiZ4LiX4Lij4Lig4Li54LiV4Li0CivguIjguLHguJnguJfguKPguKHguJPguJHguKUKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC5h+C4lAor4LiI4Lix4LiZ4LiX4Lij4LmA4Lih4Liy4Liw4Lir4LmMCivguIjguLHguJnguJfguKPguKPguLHguJXguJnguYwKK+C4iOC4seC4meC4l+C4o+C4p+C4h+C4qOC5jAor4LiI4Lix4LiZ4LiX4Lij4Lin4Lij4Lij4LiTCivguIjguLHguJnguJfguKPguYDguKjguILguKMKK+C4iOC4seC4meC4l+C4o+C4suC4o+C4tAor4LiI4Lix4LiZ4LiX4Lij4Li44Lib4Lij4Liy4LiE4LiyCivguIjguLHguJnguJfguYLguKPguJfguLHguKIKK+C4iOC4seC4meC4l+C4seC4mQor4LiI4Lix4LiZ4Lil4Lit4LiHCivguIjguLHguJnguYDguKXguLIKK+C4iOC4seC4meC5gOC4peC4suC4sAor4LiI4Lix4LmJ4LiZ4Lir4Lil4LmI4LitCivguIjguLHguJnguK3guLHguJoKK+C4iOC4seC4mgor4LiI4Lix4Lia4LiB4Lix4LiHCivguIjguLHguJrguIjguYjguLLguKIKK+C4iOC4seC4muC5gOC4iOC4teC5i+C4ouC4pwor4LiI4Lix4Lia4LiJ4LmI4Liy4LiiCivguIjguLHguJrguYDguJTguLTguKEKK+C4iOC4seC4muC4m+C4tOC5ieC4hwor4LiI4Lix4Lia4LmC4Lib4LiHCivguIjguLHguJrguKLguLXguYjguIHguLUKK+C4iOC4seC4muC4quC4seC5iOC4mQor4LiI4Lix4Lih4Lia4LiBCivguIjguLHguKHguJvguIEKK+C4iOC4seC4oeC4oeC4sAor4LiI4Lix4LmI4LinCivguIjguLHguKfguIjguLXguYrguJQKK+C4iOC4seC5iuC4p+C4sAor4LiI4LiyCivguIjguYjguLIKK+C4iOC5ieC4sgor4LiI4LmL4LiyCivguIjguLLguIEKK+C4iOC4suC4geC4nuC4o+C4suC4gQor4LiI4Liy4LiB4Lie4Liy4LiBCivguIjguLLguITguLAKK+C4iOC4suC4hOC4tQor4LiI4Liy4LiHCivguIjguYjguLLguIcKK+C4iOC5ieC4suC4hwor4LiI4Liy4LiH4Lin4Liy4LiHCivguIjguLLguJQKK+C4iOC4suC4leC4uAor4LiI4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguIjguLLguJXguLjguKPguJnguJXguYwKK+C4iOC4suC4leC4uOC4o+C4seC4meC4leC5jAor4LiI4Liy4LiV4Li44Lij4Li04LiBCivguIjguLLguJkKK+C4iOC5ieC4suC4mQor4LiI4Liy4LiaCivguIjguLLguJrguLHguKUKK+C4iOC4suC4muC4seC4peC4ouC5jAor4LiI4Liy4LibCivguIjguLLguJvguITguLjguJMKK+C4iOC4suC4m+C4mOC4owor4LiI4Liy4Lib4LmA4Lin4LiXCivguIjguLLguKEKK+C4iOC4suC4oeC4iOC4uOC4o+C4tQor4LiI4Liy4Lih4LijCivguIjguLLguKHguKPguLUKK+C4iOC4suC4oeC4teC4geC4owor4LiI4LmI4Liy4LiiCivguIjguLLguKMKK+C4iOC5iOC4suC4o+C4hwor4LiI4Liy4Lij4Lin4Liy4LiBCivguIjguLLguKPguLDguYTguJkKK+C4iOC4suC4o+C4sOC4muC4tQor4LiI4Liy4Lij4Li04LiBCivguIjguLLguKPguLUKK+C4iOC4suC4o+C4teC4lQor4LiI4Liy4Lij4Li24LiBCivguIjguLLguKPguLgKK+C4iOC5ieC4suC4peC4sOC4q+C4p+C4seC5iOC4mQor4LiI4Liy4LinCivguIjguYjguLLguKcKK+C4iOC5ieC4suC4pwor4LiI4LmI4Liy4Lir4Lin4Lix4LiBCivguIjguLMKK+C4iOC5ieC4swor4LiI4Liz4LiB4Lin4LmI4LiyCivguIjguLPguIHguLHguJQKK+C4iOC4s+C4h+C4suC4ogor4LiI4LmJ4Liz4LiI4Li14LmJCivguIjguLPguYDguIgKK+C4iOC4s+C5gOC4lOC4tOC4oQor4LiI4Liz4LiX4Lin4LiiCivguIjguLPguJfguLHguJoKK+C4iOC4s+C4l+C4suC4mgor4LiI4Liz4LmA4LiX4Li04LiUCivguIjguLPguYHguJfguIcKK+C4iOC4s+C4meC4hwor4LiI4Liz4LiZ4LiZCivguIjguLPguJnguKPguKPguIjguYwKK+C4iOC4s+C4meC4o+C4o+C4iOC4sgor4LiI4Liz4LiZ4Lin4LiZCivguIjguLPguJnguK3guIcKK+C4iOC4s+C4meC4seC4mgor4LiI4Liz4LiZ4Lix4LilCivguIjguLPguJnguLMKK+C4iOC4s+C5gOC4meC4teC4ouC4mQor4LiI4Liz4LmA4LiZ4Li14Lii4LihCivguIjguLPguYDguJnguLXguKLguKMKK+C4iOC4s+C5geC4meC4gQor4LiI4Liz4LmC4LiZ4LiX4Lii4LmMCivguIjguLPguJrguYjguKEKK+C4iOC5ieC4s+C4muC5iuC4sAor4LiI4Liz4Lia4Lix4LiHCivguIjguLPguJrguLHguJoKK+C4iOC4s+C5gOC4muC4qAor4LiI4LmJ4Liz4LmA4Lia4LmJ4LiyCivguIjguLPguYHguJoKK+C4iOC4s+C4m+C4sgor4LiI4Liz4Lib4Liy4LiU4LiwCivguIjguLPguJvguLUKK+C4iOC4s+C4m+C4ueC4mQor4LiI4Liz4Lie4Lin4LiBCivguIjguLPguYDguJ7guLLguLAKK+C4iOC4s+C5geC4nuC4o+C4gQor4LiI4LmJ4Liz4Lih4LmI4LizCivguIjguLPguKPguJQKK+C4iOC4s+C4o+C4seC4qgor4LiI4Liz4Lij4Liy4LiNCivguIjguLPguKPguLLguKIKK+C4iOC4s+C4o+C4ueC4jQor4LiI4Liz4LmA4Lij4Li04LiNCivguIjguLPguYDguKPguLXguKLguIcKK+C4iOC4s+C4peC4reC4hwor4LiI4Liz4Lil4Liy4LiiCivguIjguLPguYDguKXguLLguLAKK+C4iOC4s+C5gOC4peC4suC4sOC4leC4sgor4LiI4Liz4LmB4Lil4LiHCivguIjguLPguYHguKXguYjguJkKK+C4iOC4s+C4q+C4meC4seC4mgor4LiI4LmL4Liz4Lir4LiZ4Lix4LiaCivguIjguLPguKvguJnguYjguLLguKIKK+C4iOC4s+C4q+C4o+C4sAor4LiI4Liz4Lir4Lil4LmI4LitCivguIjguLPguKvguKXguK3guIEKK+C4iOC4s+C4q+C4peC4seC4gQor4LiI4Liz4Lir4Lix4LiZCivguIjguLPguKvguLLguKIKK+C4iOC4s+C4q+C4uOC4lAor4LiI4Liz4LmA4Lir4Li14Lii4LiHCivguIjguLPguK3guKfguJQKK+C4iOC4s+C4reC4t+C5iOC4mQor4LiI4Li0CivguIjguLTguIEKK+C4iOC4tOC5iuC4geC5guC4geC5iwor4LiI4Li04LmI4LiHCivguIjguLTguYnguIfguIjguIEKK+C4iOC4tOC4h+C4iOC5ieC4rQor4LiI4Li04LmJ4LiH4LiI4Lit4LiBCivguIjguLTguIfguIjguLHguIcKK+C4iOC4tOC5ieC4h+C4iOC4seC4hwor4LiI4Li04LiH4LmC4LiI4LmJCivguIjguLTguYnguIfguKvguKPguLXguJQKK+C4iOC4tOC5ieC4h+C4q+C4o+C4teC4lOC4nOC4tQor4LiI4Li04LiH4Lir4Lix4LiZCivguIjguLTguIfguKvguLjguJkKK+C4iOC4tOC5ieC4h+C5gOC4q+C4peC4mQor4LiI4Li04LiVCivguIjguLTguJXguIHguLLguJjguLLguJkKK+C4iOC4tOC4leC4geC4tuC5iOC4h+C4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4LmD4LiICivguIjguLTguJXguJXguYwKK+C4iOC4tOC4leC4leC4suC4meC4uOC4m+C4seC4quC4quC4meC4sgor4LiI4Li04LiV4LiZ4Liy4LiWCivguIjguLTguJXguJnguLTguKLguKEKK+C4iOC4tOC4leC4muC4s+C4muC4seC4lAor4LiI4Li04LiV4LmB4Lie4LiX4Lii4LmMCivguIjguLTguJXguKDguLLguJ4KK+C4iOC4tOC4leC4oOC4uQor4LiI4Li04LiV4LijCivguIjguLTguJXguKPguIjguLjguKUKK+C4iOC4tOC4leC4o+C4peC4lOC4sgor4LiI4Li04LiV4Lij4LiyCivguIjguLTguJXguKPguLLguKPguIjguLTguKoKK+C4iOC4tOC4leC5hOC4o+C5ieC4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4Lin4Li04LiX4Lii4LiyCivguIjguLTguJXguKfguLTguKrguLHguKIKK+C4iOC4tOC4leC5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jAor4LiI4Li04LiV4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguLTguJXguKrguLPguJnguLbguIEKK+C4iOC4tOC4meC5gOC4iOC4sgor4LiI4Li04LiZ4LiU4LiyCivguIjguLTguJnguJTguLLguKrguYjguLLguKvguKPguLUKK+C4iOC4tOC4meC4lOC4suC4q+C4meC4sgor4LiI4Li04LiZ4LiU4Liy4Lir4Lij4LiyCivguIjguLTguJnguJTguLLguK3guKPguKrguLIKK+C4iOC4tOC4meC4leC5jAor4LiI4Li04LiaCivguIjguLTguYrguJrguIjguYrguK3guKIKK+C4iOC4tOC4m+C4suC4luC4sAor4LiI4Li04LmI4LihCivguIjguLTguYnguKEKK+C4iOC4tOC5i+C4oQor4LiI4Li04LmJ4Lih4LiB4LmJ4Lit4LiHCivguIjguLTguYnguKHguKXguLTguYnguKEKK+C4iOC4tOC4o+C4seC4meC4lOC4owor4LiI4Li04Lij4Liy4Lii4Li44LiqCivguIjguLTguYrguKcKK+C4iOC4tOC5i+C4pwor4LiI4Li1CivguIjguLXguYgKK+C4iOC4teC5iQor4LiI4Li14LmLCivguIjguLXguYvguIjguYnguK0KK+C4iOC4teC4iOC4ueC5iQor4LiI4Li14LmK4LiI4Li54LmJCivguIjguLXguYHguIjguYrguJoKK+C4iOC4teC5iuC4lAor4LiI4Li14LiZCivguIjguLXguJnguYHguKoKK+C4iOC4teC4mgor4LiI4Li14LmC4LiaCivguIjguLXguJ7guKMKK+C4iOC4teC4oQor4LiI4Li14Lin4LijCivguIjguLbguIcKK+C4iOC4tuC5iOC4hwor4LiI4Li24LmJ4LiHCivguIjguLfguJQKK+C4iOC4t+C5ieC4meC5gOC4iOC4t+C4reC4gQor4LiI4Li4CivguIjguLjguIEKK+C4iOC4uOC5iuC4geC4geC4o+C4ueC5igor4LiI4Li44LiB4LiI4Li04LiBCivguIjguLjguIHguIrguLUKK+C4iOC4uOC4geC4nOC4suC4oQor4LiI4Li44LiB4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguIjguLjguIHguYLguKPguKvguLTguJnguLUKK+C4iOC4uOC5iOC4hwor4LiI4Li44LmJ4LiH4LiI4Lix4LiHCivguIjguLjguYvguIfguIjguLTguYvguIcKK+C4iOC4uOC5i+C4iOC4teC5iwor4LiI4Li44LiR4LiyCivguIjguLjguJMKK+C4iOC4uOC4k+C4k+C4teC4ouC4muC4lwor4LiI4Li44LiUCivguIjguLjguJXguLQKK+C4iOC4uOC4leC4ueC4m+C4m+C4suC4leC4jeC4suC4kwor4LiI4Li44LiX4LiqCivguIjguLjguJkKK+C4iOC4uOC5iOC4mQor4LiI4Li44LmJ4LiZCivguIjguLjguYnguJnguIjguYnguLLguJkKK+C4iOC4uOC4meC4iOC4ueC5iwor4LiI4Li44LmJ4LiZ4LiI4Li54LmKCivguIjguLjguJnguJfguIHguLLguKMKK+C4iOC4uOC4meC4quC4tQor4LiI4Li44LiaCivguIjguLjguYrguJoKK+C4iOC4uOC4muC4iOC4tOC4mgor4LiI4Li44LmK4Lia4LmB4LiI4LiHCivguIjguLjguYjguKEKK+C4iOC4uOC5ieC4oQor4LiI4Li44LmL4Lih4LiI4Li04LmL4LihCivguIjguLjguKHguJ7guI8KK+C4iOC4uOC4oeC4nuC4o+C4p+C4lAor4LiI4Li44Lih4Lie4LilCivguIjguLjguKHguJ7guLTguJUKK+C4iOC4uOC4oeC5guC4nuC4peC5iAor4LiI4Li44LmI4LiiCivguIjguLjguYnguKIKK+C4iOC4uOC4o+C4kwor4LiI4Li44Lij4Li1CivguIjguLjguYTguKMKK+C4iOC4uOC4peC4iOC4reC4oeC5gOC4geC4peC5ieC4sgor4LiI4Li44Lil4Lin4LiH4Lio4LmMCivguIjguLjguKzguLIKK+C4iOC4uOC4rOC4suC4o+C4suC4iuC4oeC4meC4leC4o+C4tQor4LiI4Li5CivguIjguLnguYgKK+C4iOC4ueC5iQor4LiI4Li54LmLCivguIjguLnguIcKK+C4iOC4ueC5ieC4iOC4teC5iQor4LiI4Li54LmK4LiUCivguIjguLnguJoKK+C4iOC4ueC4o+C4kwor4LmA4LiICivguYDguIjguYoKK+C5gOC4iOC5iuC4gQor4LmA4LiI4LmI4LiHCivguYDguIjguYrguIcKK+C5gOC4iOC5h+C4lAor4LmA4LiI4LmH4LiU4LiV4Liw4LiE4Lil4Li1CivguYDguIjguJTguLXguKLguYwKK+C5gOC4iOC4lQor4LmA4LiI4LiV4LiZ4LiyCivguYDguIjguJXguJ7guLHguIfguITguLUKK+C5gOC4iOC4leC4oeC4ueC4peC5gOC4nuC4peC4tOC4hwor4LmA4LiI4LiV4Liq4Li04LiBCivguYDguIjguJXguLTguKIKK+C5gOC4iOC5guC4leC4m+C4o+C4tOC4ouC4jeC4suC4kwor4LmA4LiI4LmC4LiV4Lin4Li04Lih4Li44LiV4Li0CivguYDguIjguJkKK+C5gOC4iOC5h+C4mgor4LmA4LiI4Lij4LiI4LiyCivguYDguIjguKPguLTguI0KK+C5gOC4iOC4o+C4tOC4lAor4LmA4LiI4Lij4Li14Lii4LiHCivguYDguIjguKXguLXguKLguIcKK+C5gOC4iOC4p+C5h+C4lAor4LmA4LiI4Lip4LiO4LiyCivguYDguIjguYrguKrguLHguKcKK+C5gOC4iOC4rQor4LmA4LiI4LmI4LitCivguYDguIjguYvguK0KK+C5gOC4iOC5i+C4reC5gOC4iOC5iuC4reC4sAor4LmA4LiI4Lit4Lij4LmM4LmA4Lih4LmA4LiZ4Li14Lii4LihCivguYDguIjguK3guLAKK+C5gOC4iOC4sgor4LmA4LiI4LmI4LiyCivguYDguIjguYnguLIKK+C5gOC4iOC5iuC4sgor4LmA4LiI4LmJ4Liy4Lie4Lij4Liw4Lii4LiyCivguYDguIjguYnguLLguJ/guYnguLLguKvguI3guLTguIfguKrguLTguKPguLTguJnguJjguKMKK+C5gOC4iOC4suC4sAor4LmA4LiI4Li04LmI4LiHCivguYDguIjguLTguJQKK+C5gOC4iOC4tOC5iOC4mQor4LmA4LiI4Li04LihCivguYDguIjguLXguYrguKLguIEKK+C5gOC4iOC4teC4ouC4hwor4LmA4LiI4Li14Lii4LiUCivguYDguIjguLXguKLguJkKK+C5gOC4iOC4teC5i+C4ouC4mQor4LmA4LiI4Li14LmK4Lii4LiaCivguYDguIjguLXguKLguKEKK+C5gOC4iOC4teC5i+C4ouC4oeC5gOC4iOC4teC5ieC4ouC4oQor4LmA4LiI4Li14Lii4LijCivguYDguIjguLXguKLguKPguLDguYTguJkKK+C5gOC4iOC4teC4ouC4o+C4sOC4muC4suC4lAor4LmA4LiI4Li14Lii4LinCivguYDguIjguLXguYrguKLguKfguIjguYrguLLguKcKK+C5gOC4iOC4t+C4rQor4LmA4LiI4Li34LmI4Lit4LiZCivguYDguIjguLfguYnguK3guKIKK+C5gOC4iOC4t+C4reC4quC4oQor4LmB4LiICivguYHguIjguYkKK+C5geC4iOC5iwor4LmB4LiI4LiBCivguYHguIjguIcKK+C5geC4iOC5ieC4hwor4LmB4LiI4LiH4Lil4Lit4LiZCivguYHguIjguYrguJQKK+C5geC4iOC4lOC5geC4iOC5iQor4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguYHguIjguJXguKMKK+C5geC4iOC5ieC4mQor4LmB4LiI4LiaCivguYHguIjguYjguKEKK+C5geC4iOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jAor4LmB4LiI4LijCivguYHguIjguKPguIEKK+C5geC4iOC4o+C4hwor4LmB4LiI4LinCivguYHguIjguYnguKcKK+C5geC4iOC5i+C4pwor4LmB4LiI4LmJ4Lin4LmGCivguYHguIjguLAKK+C5guC4iOC4gQor4LmC4LiI4LmK4LiBCivguYLguIjguIcKK+C5guC4iOC4h+C4geC4o+C4sOC5gOC4muC4meC4leC4teC5gOC4q+C4peC5h+C4gQor4LmC4LiI4LmI4LiH4LiE4Lij4Li24LmI4LihCivguYLguIjguYvguIfguITguKPguLbguYjguKEKK+C5guC4iOC5iOC4h+C4hOC4o+C4uOC5iOC4oQor4LmC4LiI4LiH4LmC4LiE4Lij4LmI4LiHCivguYLguIjguYvguIfguYDguIjguYvguIcKK+C5guC4iOC5iOC4h+C5geC4iOC5ieC4hwor4LmC4LiI4LiXCivguYLguIjguJfguIHguYwKK+C5guC4iOC4l+C4meC4sgor4LmC4LiI4LiX4Lii4LmMCivguYLguIjguJkKK+C5guC4iOC4oQor4LmC4LiI4LijCivguYLguIjguKPguIHguKPguKPguKEKK+C5guC4iOC4pQor4LmC4LiI4LipCivguYLguIjguKnguIjguLHguJkKK+C5g+C4iAor4LmE4LiICivguYTguIjguYkKK+C5hOC4iOC5ieC5hgor4LmE4LiI4LijCivguIkKK+C4ieC4gQor4LiJ4LiB4Lih4Liy4Lin4LiI4LijCivguInguIHguKPguKPguIjguYwKK+C4ieC4geC4suC4iAor4LiJ4LiB4Liy4LiI4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguLLguKHguLLguJ7guIjguKMKK+C4ieC4h+C4mQor4LiJ4LiH4Liy4LiiCivguInguJPguLAKK+C4ieC4l+C4p+C4suC4owor4LiJ4LiX4LiwCivguInguJfguLLguJnguKjguLLguKXguLIKK+C4ieC4l+C4tuC4hwor4LiJ4LiZ4Lin4LiZCivguInguJnguLHguIcKK+C4ieC4meC4suC4gQor4LiJ4LiZ4LizCivguInguJrguJoKK+C4ieC4muC4seC4hwor4LiJ4Lia4Lix4LiUCivguInguJrguLHguJoKK+C4ieC4muC4swor4LiJ4LihCivguInguKHguJoKK+C4ieC4oeC4p+C4gQor4LiJ4Lih4Lin4LiiCivguInguKHguYjguK3guIcKK+C4ieC4oeC4seC4hwor4LiJ4Lih4Lix4LiZCivguInguKHguLIKK+C4ieC4oeC4swor4LiJ4LilCivguInguKXguKfguKIKK+C4ieC4peC4reC4hwor4LiJ4Lil4Lit4LihCivguInguKXguLHguIEKK+C4ieC4peC4seC4mgor4LiJ4Lil4Liy4LiBCivguInguKXguLLguIHguJrguLLguIcKK+C4ieC4peC4suC4hwor4LiJ4Lil4Liy4LiUCivguInguKXguLLguKEKK+C4ieC4peC4suC4ogor4LiJ4Lil4Li04LinCivguInguKXguLXguIEKK+C4ieC4peC4uAor4LiJ4Lil4Li44LiB4LiJ4Lil4Lin4LiiCivguInguKXguLkKK+C4ieC4p+C4ogor4LiJ4Lin4LiwCivguInguKfguLHguJTguYDguInguKfguLXguKLguJkKK+C4ieC4p+C4suC4hwor4LiJ4Lin4Li1CivguInguKrguIEKK+C4ieC4rOC4oOC4tOC4jeC5guC4jQor4LiJ4LmJ4LitCivguInguK3guIEKK+C4ieC4reC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiJ4LmI4Lit4LiHCivguInguK3guJTguYYKK+C4ieC4sAor4LiJ4Liw4LiB4LiwCivguInguLDguInguLLguJQKK+C4ieC4sOC4ieC4suC4mQor4LiJ4Liw4LiJ4LmI4LizCivguInguLDguInguLXguYgKK+C4ieC4sOC5gOC4ieC4t+C5iOC4reC4ogor4LiJ4Liw4LiV4LmJ4LiyCivguInguLDguJnguLHguYnguJkKK+C4ieC4sOC4meC4teC5iQor4LiJ4Liw4Lit4LmJ4Lit4LiZCivguInguLHguIHguIHguLAKK+C4ieC4seC4kAor4LiJ4Lix4LiQ4Lih4LiwCivguInguLHguJQKK+C4ieC4seC4leC4owor4LiJ4Lix4LiX4LiX4Lix4LiZ4LiV4LmMCivguInguLHguJkKK+C4ieC4seC4meC4l+C5jAor4LiJ4Lix4LiZ4LiX4LiwCivguInguLHguJnguJfguLTguJUKK+C4ieC4seC4meC4p+C4uOC4kuC4tAor4LiJ4Lix4LiaCivguInguLHguJrguYYKK+C4ieC4seC4nuC4nuC4o+C4o+C4k+C4o+C4seC4h+C4quC4tQor4LiJ4Lix4Lii4Lii4LiyCivguInguLLguIEKK+C4ieC4suC4hwor4LiJ4LmI4Liy4LiHCivguInguYjguLLguInguLLguKcKK+C4ieC4suC4lAor4LiJ4Liy4LiU4LiJ4Liy4LiZCivguInguLLguJXguIHguKDguLHguKIKK+C4ieC4suC4l+C4meC4sAor4LiJ4Liy4LiZCivguInguLLguJoKK+C4ieC4suC4muC4ieC4p+C4ogor4LiJ4Liy4LibCivguInguLLguKIKK+C4ieC4suC4ouC4sgor4LiJ4Liy4Lij4Li04LiB4LiyCivguInguLLguKcKK+C4ieC5iOC4swor4LiJ4Liz4LiJ4LiyCivguInguLPguYDguInguIcKK+C4ieC4s+C5geC4ieC4sAor4LiJ4Li04LmI4LiHCivguInguLTguJkKK+C4ieC4tOC4meC4l+C5jAor4LiJ4Li04LiaCivguInguLTguKHguJ7guKXguLUKK+C4ieC4tOC4pwor4LiJ4Li14LmICivguInguLXguIEKK+C4ieC4teC4lAor4LiJ4Li4CivguInguLjguIEKK+C4ieC4uOC4lAor4LiJ4Li44LiZCivguInguLjguJsKK+C4ieC4uOC4ogor4LiJ4Li44Lii4LiJ4Liy4LiiCivguInguLjguKPguLTguIHguLIKK+C4ieC4ueC5iAor4LiJ4Li54LmI4LiJ4Li14LmICivguInguLnguJQKK+C4ieC4ueC4lOC4ieC4suC4lAor4LmA4LiJCivguYDguInguIEKK+C5gOC4ieC5guC4gQor4LmA4LiJ4LmI4LiHCivguYDguInguJQKK+C5gOC4ieC4lwor4LmA4LiJ4LiZ4Li14Lii4LiZCivguYDguInguJ7guLLguLAKK+C5gOC4ieC4ogor4LmA4LiJ4Lil4LiiCivguYDguInguKXguKcKK+C5gOC4ieC4peC4sgor4LmA4LiJ4Lil4Li04LihCivguYDguInguKXguLXguYjguKIKK+C5gOC4ieC4peC4teC4ouC4hwor4LmA4LiJ4Lil4Li14LmI4Lii4LiHCivguYDguInguKXguLXguKLguJoKK+C5gOC4ieC4peC4teC4ouC4pwor4LmA4LiJ4Lin4Li14Lii4LiHCivguYDguInguKfguLXguKLguJkKK+C5gOC4ieC4reC4sAor4LmA4LiJ4LiyCivguYDguInguLLguIHguYrguKfguKIKK+C5gOC4ieC4suC5guC4ieC4lAor4LmA4LiJ4Liy4Liu4Li34LmJ4LitCivguYDguInguLLguLAKK+C5gOC4ieC4tOC4lAor4LmA4LiJ4Li04LiaCivguYDguInguLTguJrguYYKK+C5gOC4ieC4teC4ouC4hwor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiU4LizCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4oeC4reC4jQor4LmA4LiJ4Li14Lii4LiUCivguYDguInguLXguKLguJoKK+C5gOC4ieC4teC5iOC4ouC4pwor4LmA4LiJ4Li34Lit4LiZCivguYDguInguLfguYjguK3guKIKK+C5geC4iQor4LmB4LiJ4LmICivguYHguInguIEKK+C5geC4ieC4geC5hgor4LmB4LiJ4LiHCivguYHguInguYjguIcKK+C5geC4ieC4peC4mgor4LmB4LiJ4Lil4LmJ4LihCivguYHguInguKXguYnguKHguYHguIrguYjguKHguIrguYnguK3guKIKK+C5geC4ieC4peC4sAor4LmB4LiJ4LinCivguYHguInguLAKK+C5guC4iQor4LmC4LiJ4LmICivguYLguInguYDguIEKK+C5guC4ieC5iOC4h+C4ieC5iOC4suC4hwor4LmC4LiJ4LiH4LmA4LiJ4LiHCivguYLguInguJQKK+C5guC4ieC4meC4lAor4LmC4LiJ4LiaCivguYLguInguYDguJrguYoKK+C5guC4ieC4oQor4LmC4LiJ4Lih4LiH4Liy4LihCivguYLguInguKXguIEKK+C5hOC4ieC4mQor4LmE4LiJ4LmE4LilCivguIoKK+C4iuC4gQor4LiK4LiB4LiyCivguIrguITguKMKK+C4iuC4hOC4seC4lQor4LiK4LiE4Lix4LiXCivguIrguITguLHguJkKK+C4iuC4hwor4LiK4LiH4LiE4LiyCivguIrguIfguYLguIQKK+C4iuC4h+C4huC5jAor4LiK4LiH4LiG4LiyCivguIrguI7guLIKK+C4iuC4juC4tOC4pQor4LiK4LiUCivguIrguJfguLbguIcKK+C4iuC4mQor4LiK4LiZ4LiBCivguIrguJnguIHguIHguKPguKPguKEKK+C4iuC4meC4meC4tQor4LiK4LiZ4Lia4LiXCivguIrguJnguKHguYwKK+C4iuC4meC4p+C4mQor4LiK4LiZ4LiwCivguIrguJnguLHguIEKK+C4iuC4meC4sgor4LiK4LiZ4Liy4LiHCivguIrguJnguLQKK+C4iuC4meC4tOC4gQor4LiK4LiZ4Li04LiB4LiyCivguIrguJnguLTguJQKK+C4iuC4meC4tOC4lOC4sgor4LiK4LiZ4Li04LioCivguIrguYDguJnguJXguJXguLUKK+C4iuC4muC4sgor4LiK4Lib4LiZCivguIrguJvguYLguKLguIQKK+C4iuC4oQor4LiK4Lih4LiK4Lin4LiZCivguIrguKHguJTguIrguKHguYnguK3guKIKK+C4iuC4oeC4meC4suC4lAor4LiK4Lih4LiaCivguIrguKHguJ7guLkKK+C4iuC4oeC4nuC4ueC5iAor4LiK4Lih4Lie4Li54Lie4Liy4LiU4Lia4LmI4LiyCivguIrguKHguKPguKEKK+C4iuC4oeC5gOC4peC4suC4sAor4LiK4Lih4Liq4Lin4LiZ4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguKHguYnguK3guKIKK+C4iuC4oeC4seC4mQor4LiK4Lih4LiyCivguIrguKHguYnguLLguKIKK+C4iuC5hOC4oQor4LiK4LiiCivguIrguKLguLHguKHguJrguJTguLUKK+C4iuC4ouC4sgor4LiK4Lii4Li44LiV4Li0CivguIrguYLguKIKK+C4iuC4owor4LiK4Lij4LiV4LiyCivguIrguKPguJfguLbguIcKK+C4iuC4o+C5guC4oeC4pQor4LiK4Lij4LmE4LihCivguIrguKPguKPguLLguIcKK+C4iuC4o+C4o+C4tOC4mQor4LiK4Lij4LmB4Lij4LiHCivguIrguKPguYHguKPguYjguIcKK+C4iuC4o+C5gOC4peC4t+C4reC4lAor4LiK4Lij4LmC4Lil4LiHCivguIrguKPguK3guIHguIrguKPguLHguIcKK+C4iuC4o+C4reC4reC4mgor4LiK4Lij4Lit4Lix4LiUCivguIrguKPguK3guYjguLMKK+C4iuC4o+C4reC4t+C5ieC4rQor4LiK4Lij4Lit4Li44LmI4LihCivguIrguKPguLAKK+C4iuC4o+C4sOC4h+C4oQor4LiK4Lij4Liw4LiH4LmI4Lit4LiZCivguIrguKPguLDguIfguLMKK+C4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4LiU4Li34LmI4LiZCivguIrguKPguLDguYDguJTguLXguKLguJQKK+C4iuC4o+C4sOC4muC4reC4mgor4LiK4Lij4Liw4Lia4Liy4LiaCivguIrguKPguLDguKHguJQKK+C4iuC4o+C4sOC4oeC4seC4pwor4LiK4Lij4Liw4Lih4Li34LmI4LiZCivguIrguKPguLDguKHguLjguIHguIrguKPguLDguKHguK3guKEKK+C4iuC4o+C4sOC4oeC4uOC5iOC4mQor4LiK4Lij4Liw4LmA4Lih4Li14Lii4LiHCivguIrguKPguLDguYDguKHguLXguKLguJkKK+C4iuC4o+C4sOC4peC4rQor4LiK4Lij4Liw4Lil4Lit4LiHCivguIrguKPguLDguKXguYjguK3guIcKK+C4iuC4o+C4sOC4peC4seC5iOC4hwor4LiK4Lij4Liw4Lil4Lix4LiUCivguIrguKPguLDguKXguYnguLMKK+C4iuC4o+C4sOC4peC4uAor4LiK4Lij4Liw4LmB4Lil4LiHCivguIrguKPguLDguK3guLHguJoKK+C4iuC4o+C4sOC4reC4suC4mgor4LiK4Lij4Liw4LmA4Lit4LihCivguIrguKPguLHguJQKK+C4iuC4o+C4seC4pwor4LiK4Lij4LiyCivguIrguKPguLLguIHguLLguIHguLUKK+C4iuC4o+C4suC4mgor4LiK4Lij4Liy4Lia4LiK4Lij4Lix4LiaCivguIrguKPguLLguKLguLgKK+C4iuC4o+C4tOC4mQor4LiK4Lij4Li44LiBCivguIrguKPguLnguJoKK+C4iuC4pQor4LiK4Lil4Li1CivguIrguKXguLnguIHguLIKK+C4iuC5gOC4pQor4LiK4LmC4Lil4LiHCivguIrguYLguKXguKEKK+C4iuC5iOC4p+C4hwor4LiK4LmI4Lin4LiH4LiX4Lij4Lix4Lie4Lii4LmMCivguIrguYjguKfguIfguKrguLTguJfguJjguLTguYwKK+C4iuC4p+C4lAor4LiK4Lin4LiZCivguIrguKfguKIKK+C4iuC5iOC4p+C4ogor4LiK4Lin4LijCivguIrguKfguKXguLTguJUKK+C4iuC4p+C4seC4gQor4LiK4Lin4LiyCivguIrguKfguLLguKUKK+C4iuC4p+C4suC4peC4sgor4LiK4LmB4Lin4LiHCivguIrguYjguK0KK+C4iuC4reC4gQor4LiK4LmH4Lit4LiBCivguIrguYfguK3guIHguIHguLLguKPguLUKK+C4iuC5h+C4reC4geC5guC4geC5gOC4peC4lQor4LiK4LmH4Lit4LiB4LmC4LiB4LmB4Lil4LiVCivguIrguK3guIcKK+C4iuC5iOC4reC4hwor4LiK4LmJ4Lit4LiHCivguIrguYnguK3guIfguJnguLLguIcKK+C4iuC5ieC4reC4h+C4meC4suC4h+C4hOC4peC4teC5iAor4LiK4LmJ4Lit4LiH4LmB4Lih4LinCivguIrguK3guJkKK+C4iuC5iOC4reC4mQor4LiK4LmJ4Lit4LiZCivguIrguYnguK3guJnguJnguLLguIcKK+C4iuC4reC4mgor4LiK4Lit4LihCivguIrguYjguK3guKIKK+C4iuC5ieC4reC4ogor4LiK4LmJ4Lit4Lii4LiK4LmI4Liy4LiH4Lij4LizCivguIrguYnguK3guKLguJnguLLguIfguKPguLMKK+C4iuC4reC4peC5jOC4gQor4LiK4Lit4LmI4LizCivguIrguK3guLfguYnguK0KK+C4iuC4reC4uOC5iOC4oQor4LiK4LiwCivguIrguLDguITguKPguLLguKEKK+C4iuC4sOC4h+C4reC4gQor4LiK4Liw4LiH4LmI4Lit4LiZCivguIrguLDguIfguLHguIEKK+C4iuC4sOC4h+C4seC4lAor4LiK4Liw4LiH4Liy4LiaCivguIrguLDguIfguYnguLMKK+C4iuC4sOC4h+C4uOC5ieC4oQor4LiK4Liw4LmA4LiH4LmJ4LitCivguIrguLDguYDguIfguLfguYnguK3guKEKK+C4iuC4sOC5geC4h+C5iQor4LiK4Liw4LmC4LiH4LiBCivguIrguLDguInguYjguLIKK+C4iuC4sOC4iuC5iOC4reC4hwor4LiK4Liw4LiK4LmJ4LiyCivguIrguLDguIrguLTguJQKK+C4iuC4sOC4lOC4teC4iuC4sOC4o+C5ieC4suC4ogor4LiK4Liw4LmC4LiUCivguIrguLDguJXguLIKK+C4iuC4sOC4leC5ieC4sgor4LiK4Liw4LiZ4Li1CivguIrguLDguJnguLjguIcKK+C4iuC4sOC5gOC4meC4suC4sAor4LiK4Liw4Lie4Lil4Li5CivguIrguLDguYDguJ7guKXguLTguIcKK+C4iuC4sOC4oeC4lAor4LiK4Liw4Lih4LiU4LiV4LmJ4LiZCivguIrguLDguKHguJoKK+C4iuC4sOC4oeC4p+C4hwor4LiK4Liw4Lih4Lix4LiHCivguIrguLDguKHguLHguJQKK+C4iuC4sOC5geC4oeC5iAor4LiK4Liw4Lij4Lit4LiiCivguIrguLDguKXguK0KK+C4iuC4sOC4peC4reC4oQor4LiK4Liw4Lil4Liw4LiB4LiyCivguIrguLDguKXguYjguLIKK+C4iuC4sOC4peC4tOC4mQor4LiK4Liw4Lil4Li54LiUCivguIrguLDguYDguKXguIcKK+C4iuC4sOC5gOC4peC4ogor4LiK4Liw4LmB4Lil4LmH4LiBCivguIrguLDguYHguKXguIcKK+C4iuC4sOC4p+C4seC4hwor4LiK4Liw4Lin4Liy4LiBCivguIrguLDguKfguLLguJQKK+C4iuC4sOC4p+C4uOC5ieC4hwor4LiK4Liw4LmA4Lin4Li04LiB4LiK4Liw4Lin4Liy4LiBCivguIrguLDguYHguKfguIcKK+C4iuC4sOC4reC4oQor4LiK4Liw4Lit4LmJ4Lit4LiZCivguIrguLDguYDguK3guKEKK+C4iuC4sOC5guC4reC4mQor4LiK4Lix4LiBCivguIrguLHguIHguITguKPguLLguKEKK+C4iuC4seC4geC4iuC5ieC4sgor4LiK4Lix4LiB4Lir4LiZ4LmJ4LiyCivguIrguLHguIcKK+C4iuC4seC5iOC4hwor4LiK4Lix4LiH4LiE4LiyCivguIrguLHguIfguYDguIbguKLguKLguIHguLAKK+C4iuC4seC4iuC4p+C4suC4pQor4LiK4Lix4LiPCivguIrguLHguJQKK+C4iuC4seC4lOC4iuC5ieC4sgor4LiK4Lix4LiZCivguIrguLHguYnguJkKK+C4iuC4seC4meC4geC4suC4lAor4LiK4Lix4LiZ4LiK4Li1CivguIrguLHguJnguJXguLLguIbguKMKK+C4iuC4seC4meC4leC4uAor4LiK4Lix4LiZ4LiZ4Liw4LiV4Li4CivguIrguLHguJnguJnguLgKK+C4iuC4seC4meC4meC4uOC4geC4sAor4LiK4Lix4LiZ4LmC4Lij4LiHCivguIrguLHguJnguKnguLIKK+C4iuC4seC4meC4quC4ueC4leC4owor4LiK4Lix4Lib4LiZCivguIrguLHguJ4KK+C4iuC4seC4oeC4nuC4ueC4meC4lwor4LiK4Lix4LiiCivguIrguLHguKLguIHguKPguLDguKrguJ4KK+C4iuC4seC4ouC4muC4suC4mQor4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMCivguIrguLHguKLguKDguLnguKHguLQKK+C4iuC4seC4ouC5gOC4oOC4o+C4tQor4LiK4Lix4Lii4Lih4LiH4LiE4LilCivguIrguLHguKLguKHguIfguITguKXguITguLLguJbguLIKK+C4iuC4seC4peC4peC4uOC4geC4sgor4LiK4Lix4LmI4LinCivguIrguLHguYnguKcKK+C4iuC4seC4p+C4iuC4oQor4LiK4Lix4LmI4Lin4LmB4LiV4LmI4Lin4LmI4LiyCivguIrguLIKK+C4iuC5ieC4sgor4LiK4Liy4LiE4LijCivguIrguLLguITguKPguLTguJUKK+C4iuC4suC4hOC4o+C4tOC4ouC4suC4meC4uOC5guC4ouC4hAor4LiK4LmI4Liy4LiHCivguIrguYnguLLguIcKK+C4iuC5ieC4suC4h+C4geC4o+C4sAor4LiK4LmI4Liy4LiH4LiB4Lij4Liw4LmE4LijCivguIrguYnguLLguIfguJTguLMKK+C4iuC5ieC4suC4h+C5geC4lOC4hwor4LiK4LmI4Liy4LiH4LiX4Lit4LiHCivguIrguYjguLLguIfguJnguYnguLLguKcKK+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiK4LmI4Liy4LiH4LmA4Lir4Lil4LmH4LiBCivguIrguYnguLLguIrguYjguK3guJkKK+C4iuC4suC4jQor4LiK4Liy4LiUCivguIrguLLguJTguIEKK+C4iuC4suC4leC4muC4uOC4qeC4ouC5jAor4LiK4Liy4LiV4Lij4Li1CivguIrguLLguJXguLAKK+C4iuC4suC4leC4sgor4LiK4Liy4LiV4Li0CivguIrguLLguJXguLTguJjguKPguKPguKEKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jAor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Lij4Lij4LiT4LiZ4LiyCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguKfguLTguJfguKLguLIKK+C4iuC4suC4leC4tOC4oOC4ueC4oeC4tAor4LiK4Liy4LiV4Li04Lih4Liy4Lil4LiyCivguIrguLLguJXguLTguKPguKoKK+C4iuC4suC4leC4tOC4quC4seC4oeC4muC4seC4meC4meC5jAor4LiK4Liy4LiZCivguIrguLLguJnguKfguLLguJfguLTguIEKK+C4iuC4suC4meC4uAor4LiK4Liy4LiZ4Li44LiB4LiwCivguIrguYnguLLguJvguLXguYgKK+C4iuC5ieC4suC4m+C4teC5iOC5hOC4q+C4mQor4LiK4LmJ4Liy4LmB4Lib4LmJ4LiZCivguIrguYnguLLguJ7guKXguLkKK+C4iuC4suC4oQor4LiK4Liy4Lih4Lie4Li54LiZ4LiXCivguIrguLLguKHguLLguJTguKMKK+C4iuC4suC4oeC4suC4lOC4sgor4LiK4Liy4Lih4Liy4LiV4Li4CivguIrguLLguKIKK+C4iuC4suC4ouC4mOC4hwor4LiK4Liy4Lii4Lic4LmJ4Liy4Liq4Li14LiU4LiyCivguIrguLLguKLguLIKK+C4iuC4suC4owor4LiK4Liy4Lij4Li1CivguIrguLLguKUKK+C4iuC4suC4peC4sgor4LiK4Liy4Lil4Li04LiZ4Li1CivguIrguYnguLLguYDguKXguLfguK3guJQKK+C4iuC4suC4pwor4LiK4Liy4Lin4Li1CivguIrguLLguKvguYwKK+C4iuC5ieC4suC4q+C4oeC4reC4hwor4LiK4Liy4Lir4Lij4Lix4LiZ4LiZ4Liy4Lin4Li1CivguIrguLMKK+C4iuC5iOC4swor4LiK4LmJ4LizCivguIrguLPguIfguLHguJQKK+C4iuC4s+C4h+C4suC4ogor4LiK4Liz4LiH4Li34LitCivguIrguYjguLPguIrguK3guIcKK+C4iuC5iOC4s+C4iuC5iOC4sgor4LiK4Liz4LiZ4LiZCivguIrguLPguJnguKPguKMKK+C4iuC4s+C4meC4sAor4LiK4Liz4LiZ4Lix4LiNCivguIrguLPguJnguLHguJkKK+C4iuC4s+C4meC4suC4jQor4LiK4Liz4LiZ4Li0CivguIrguLPguYDguJnguLXguKLguJkKK+C4iuC4s+C5gOC4meC4teC4ouC4owor4LiK4Liz4Lih4Liw4LiZ4Liy4LiUCivguIrguLPguKHguLDguYDguKXguLXguKLguIcKK+C4iuC4s+C4o+C5iOC4p+C4ogor4LiK4Liz4Lij4LiwCivguIrguYnguLPguKPguLHguYjguKcKK+C4iuC4s+C4o+C4uOC4lAor4LiK4Liz4LmA4Lij4LiyCivguIrguLPguYDguKPguLLguLAKK+C4iuC4s+C4peC4sgor4LiK4Liz4LmA4Lil4Li34Lit4LiHCivguIrguLPguYHguKvguKXguLAKK+C4iuC4tAor4LiK4Li04LiHCivguIrguLTguYjguIcKK+C4iuC4tOC4h+C4iuC4seC4hwor4LiK4Li04LiH4LiK4Lix4LiZCivguIrguLTguIfguIrguYnguLIKK+C4iuC4tOC4h+C4iuC5ieC4suC4iuC4suC4peC4tQor4LiK4Li04LiH4LiK4Li14LmICivguIrguLTguIfguJ7guKXguJoKK+C4iuC4tOC4h+C4ruC4t+C5ieC4rQor4LiK4Li04LiK4LiwCivguIrguLTguIrguLQKK+C4iuC4tOC4k+C4k+C4sAor4LiK4Li04LiUCivguIrguLTguYDguJTguJnguJfguKPguLXguKLguYwKK+C4iuC4tOC4lQor4LiK4Li04LiZCivguIrguLTguYjguJkKK+C4iuC4tOC5ieC4mQor4LiK4Li04LiZ4LmC4LiVCivguIrguLTguJnguJrguLjguJXguKMKK+C4iuC4tOC4meC4quC4suC4quC4meC5jAor4LiK4Li04LihCivguIrguLTguKHguYHguJvguJnguIvguLUKK+C4iuC4tOC4ouC4sgor4LiK4Li04Lij4LiT4LiwCivguIrguLTguKPguLAKK+C4iuC4tOC4p+C4q+C4sgor4LiK4Li04Liq4LiyCivguIrguLUKK+C4iuC4teC5iAor4LiK4Li14LmJCivguIrguLXguJ4KK+C4iuC4teC4n+C4reC4hwor4LiK4Li14Lij4LiTCivguIrguLXguKPguLAKK+C4iuC4teC4p+C4sAor4LiK4Li14Lit4Liw4Lir4LmMCivguIrguLfguJQKK+C4iuC4t+C5iOC4mQor4LiK4Li34LmJ4LiZCivguIrguLfguYjguK0KK+C4iuC4t+C5ieC4rQor4LiK4Li4CivguIrguLjguIEKK+C4iuC4uOC4geC4iuC4tQor4LiK4Li44LmI4LiHCivguIrguLjguYnguIcKK+C4iuC4uOC4lAor4LiK4Li44LiV4Li0CivguIrguLjguJkKK+C4iuC4uOC4mgor4LiK4Li44Lia4LiK4Li5CivguIrguLjguKEKK+C4iuC4uOC5iOC4oQor4LiK4Li44Lih4LiZ4Li44LihCivguIrguLjguKHguJ7guKMKK+C4iuC4uOC4oeC4nuC4sgor4LiK4Li44Lih4LmA4Lie4LmH4LiUCivguIrguLjguKHguYHguJ7guKPguIEKK+C4iuC4uOC4oeC4o+C4uOC4oQor4LiK4Li44Lih4Liq4Liy4LiiCivguIrguLjguKHguYHguKrguIcKK+C4iuC4uOC4oeC5gOC4q+C5h+C4lAor4LiK4Li44LmI4LiiCivguIrguLjguYjguKLguYYKK+C4iuC4uOC4peC4oeC4uOC4mQor4LiK4Li44Lil4Li1CivguIrguLjguKnguJPguLAKK+C4iuC4uQor4LiK4Li54LmJCivguYDguIrguYfguIQKK+C5gOC4iuC5ieC4hwor4LmA4LiK4LiH4LmA4Lil4LiHCivguYDguIrguYnguIfguKfguLHguJoKK+C5gOC4iuC5h+C4lAor4LmA4LiK4LmH4LiU4Lir4LiZ4LmJ4LiyCivguYDguIrguJkKK+C5gOC4iuC5iOC4mQor4LmA4LiK4LiiCivguYDguIrguKPguLIKK+C5gOC4iuC4o+C4suC4sAor4LmA4LiK4Lij4Li04LiUCivguYDguIrguKXguIcKK+C5gOC4iuC4peC4ogor4LmA4LiK4Lil4LmB4Lil4LmH4LiBCivguYDguIrguKXguLXguKLguIcKK+C5gOC4iuC4p+C4hwor4LmA4LiK4Lip4LiQ4LiyCivguYDguIrguK0KK+C5gOC4iuC5iOC4sgor4LmA4LiK4LmJ4LiyCivguYDguIrguLLguKfguYwKK+C5gOC4iuC4suC4p+C4meC5jAor4LmA4LiK4Li04LiHCivguYDguIrguLTguIfguIHguKUKK+C5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LmA4LiK4Li04LiH4LmA4LiU4Li14Lii4LinCivguYDguIrguLTguIfguYDguJTguLXguYjguKLguKcKK+C5gOC4iuC4tOC4h+C4oeC4uOC4oQor4LmA4LiK4Li04LiH4LmA4Lin4Li14Lii4LiZCivguYDguIrguLTguIfguK3guKPguKPguJYKK+C5gOC4iuC4tOC4jQor4LmA4LiK4Li04LiUCivguYDguIrguLTguYnguJUKK+C5gOC4iuC4teC4ogor4LmA4LiK4Li14LmJ4LiiCivguYDguIrguLXguKLguIcKK+C5gOC4iuC4teC5iOC4ouC4mQor4LmA4LiK4Li14LmI4Lii4LiZ4Lir4Lih4Liy4LiBCivguYDguIrguLXguKLguJoKK+C5gOC4iuC4teC5iOC4ouC4oQor4LmA4LiK4Li14Lii4LijCivguYDguIrguLXguKLguKPguYwKK+C5gOC4iuC4teC4ouC4o+C4k+C5jAor4LmA4LiK4Li14Lii4LinCivguYDguIrguLXguYjguKLguKcKK+C5gOC4iuC4t+C5iOC4rQor4LmA4LiK4Li34LmJ4LitCivguYDguIrguLfguK3guIEKK+C5gOC4iuC4t+C5iOC4reC4hwor4LmA4LiK4Li34LmI4Lit4LiH4LiK4LmJ4LiyCivguYDguIrguLfguK3guJQKK+C5gOC4iuC4t+C4reC4mQor4LmA4LiK4Li34LmI4Lit4LihCivguYDguIrguLfguYjguK3guKfguLHguJkKK+C5geC4igor4LmB4LiK4LmICivguYHguIrguYjguIcKK+C5geC4iuC4h+C4oeC4sgor4LmB4LiK4Lia4LmK4Lin4LiiCivguYHguIrguYjguKEKK+C5geC4iuC4oeC5gOC4m+C4jQor4LmB4LiK4Lih4Lig4Li5CivguYHguIrguKPguYwKK+C5geC4iuC4o+C4hwor4LmB4LiK4Lil4LmI4LihCivguYHguIrguLAKK+C5guC4iuC4gQor4LmC4LiK4LiB4LmGCivguYLguIrguIHguLjguJkKK+C5guC4iuC4hAor4LmC4LiK4LiH4LmC4Lil4LiHCivguYLguIrguJTguIEKK+C5guC4iuC4lOC4tuC4gQor4LmC4LiK4LiVCivguYLguIrguJXguIEKK+C5guC4iuC4leC4tAor4LmC4LiK4LiZCivguYLguIrguKHguYLguKPguKEKK+C5guC4iuC4ogor4LmC4LiK4Lii4LiH4LiB4Liy4LijCivguYLguIrguKLguIrguLLguKIKK+C5guC4iuC4ouC4leC4tOC4qgor4LmC4LiK4Lij4LihCivguYLguIrguKfguYwKK+C5g+C4iuC5iAor4LmD4LiK4LmJCivguYTguIoKK+C5hOC4iuC4meC4sAor4LmE4LiK4LiiCivguYTguIrguYLguKIKK+C4iwor4LiL4LiBCivguIvguYjguIEKK+C4i+C4h+C4lOC4swor4LiL4LmI4LiH4Liu4Li34LmJ4LitCivguIvguIfguYnguLIKK+C4i+C4lAor4LiL4LiZCivguIvguYjguJkKK+C4i+C5ieC4mQor4LiL4LiaCivguIvguKEKK+C4i+C4o+C4reC4geC4i+C4o+C4seC4hwor4LiL4Lin4LiUCivguIvguKfguJTguYDguIsKK+C4i+C4p+C4lOC4l+C4o+C4hwor4LiL4Lin4LiZCivguIvguKfguKIKK+C4i+C4rQor4LiL4Lit4LiBCivguIvguK3guIcKK+C4i+C5iOC4reC4hwor4LiL4LmJ4Lit4LiHCivguIvguK3guIfguJ7guKXguLkKK+C4i+C4reC4h+C5geC4oeC4pwor4LiL4LmJ4Lit4LiH4LmB4Lih4LinCivguIvguK3guYHguIsKK+C4i+C5ieC4reC5geC4i+C5iQor4LiL4Lit4LiZCivguIvguYjguK3guJkKK+C4i+C5ieC4reC4mQor4LiL4LmI4Lit4LiZ4LiB4Lil4Li04LmI4LiZCivguIvguYjguK3guJnguJfguKPguLLguKIKK+C4i+C4reC4oQor4LiL4LmI4Lit4LihCivguIvguYnguK3guKEKK+C4i+C4reC4oeC4i+C5iOC4rQor4LiL4Lit4LiiCivguIvguK3guKoKK+C4i+C4sOC4i+C4o+C5ieC4suC4pwor4LiL4Liw4LiL4LmI4Lit4LiHCivguIvguLDguIvguK3guYDguIvguLXguKIKK+C4i+C4sOC4i+C4tOC4geC4i+C4sOC5geC4iwor4LiL4Liw4LiL4Li04LiaCivguIvguLDguYDguIvguLLguLAKK+C4i+C4sOC5gOC4i+C4teC4ouC4mgor4LiL4Lix4LiBCivguIvguLHguIHguKrguYnguLLguKcKK+C4i+C4seC4hwor4LiL4Lix4LmJ4LiHCivguIvguLHguIfguIHguLDguJXguLLguKIKK+C4i+C4seC4h+C5geC4i+C4pwor4LiL4Lix4LiH4LiV4Liy4LiiCivguIvguLHguJQKK+C4i+C4seC5ieC4mQor4LiL4Lix4LiZ4LiV4Liy4LiE4Lil4Lit4LiqCivguIvguLHguJoKK+C4i+C4seC4muC4i+C4teC5iAor4LiL4Lix4LihCivguIvguLHguKXguJ/guLIKK+C4i+C4seC4peC5guC4pwor4LiL4Lix4LmJ4LinCivguIvguLHguKfguJvguLIKK+C4i+C4sgor4LiL4LmI4LiyCivguIvguLLguIEKK+C4i+C4suC4geC4uOC4o+C4sAor4LiL4Liy4LmE4LiBCivguIvguLLguIcKK+C4i+C5iOC4suC4hwor4LiL4Liy4LiUCivguIvguLLguJkKK+C4i+C5iOC4suC4mQor4LiL4Liy4Lia4LiL4LmI4Liy4LiZCivguIvguLLguJrguIvguLbguYnguIcKK+C4i+C5iOC4suC5guC4muC4sAor4LiL4Liy4Lib4Lix4LmK4LinCivguIvguLLguYHguKHguYDguKPguLXguKLguKEKK+C4i+C5ieC4suC4ogor4LiL4Liy4LmC4Lii4LiZ4Liy4Lij4LiwCivguIvguLLguKPguYwKK+C4i+C4suC4o+C4tOC4meC4sgor4LiL4Liy4Lil4Liy4LmA4Lib4LiyCivguIvguLLguKcKK+C4i+C5iOC4suC4q+C4o+C4tOC5iOC4oQor4LiL4LmJ4LizCivguIvguLQKK+C4i+C4tOC4gQor4LiL4Li04LiB4LiL4Li14LmJCivguIvguLTguIHguYHguIvguYfguIEKK+C4i+C4tOC4geC4suC4o+C5jAor4LiL4Li04LiH4LmC4LiE4LiZ4LiyCivguIvguLTguYjguJkKK+C4i+C4tOC4meC4leC4tuC5iuC4hwor4LiL4Li04LiZ4LiZ4Liy4Lih4Li04LiBCivguIvguLTguJnguYHguKoKK+C4i+C4tOC4mgor4LiL4Li04Lia4LmGCivguIvguLTguJsKK+C4i+C4tOC4n+C4tOC4peC4tOC4qgor4LiL4Li04LmJ4LihCivguIvguLTguKXguLTguITguK3guJkKK+C4i+C4tOC4pwor4LiL4Li1CivguIvguLXguYgKK+C4i+C4teC4gQor4LiL4Li14LmJ4LiL4Lit4LiZCivguIvguLXguYnguIvguLHguYnguKcKK+C4i+C4teC5gOC4i+C5h+C4geC5hOC4ieC5iAor4LiL4Li14LmA4LiL4Li14Lii4LihCivguIvguLXguJQKK+C4i+C4teC4meC4reC4mQor4LiL4Li14Lib4LmI4Liy4LiiCivguIvguLXguYDguKHguJnguJXguYwKK+C4i+C4teC5gOC4o+C4teC4ouC4oQor4LiL4Li14Lil4Li14LmA4LiZ4Li14Lii4LihCivguIvguLXguK3guLTguYnguKcKK+C4i+C4tuC4gQor4LiL4Li24LmI4LiHCivguIvguLbguYnguIcKK+C4i+C4tuC4oQor4LiL4Li34LmI4LitCivguIvguLfguYnguK0KK+C4i+C4t+C5iOC4reC5hgor4LiL4Li34LmJ4Lit4Lir4LiZ4LmJ4LiyCivguIvguLjguIEKK+C4i+C4uOC4geC4i+C4mQor4LiL4Li44LiHCivguIvguLjguJkKK+C4i+C4uOC4mgor4LiL4Li44Lia4LiL4Li04LiaCivguIvguLjguJrguIvguLnguYgKK+C4i+C4uOC4mwor4LiL4Li44LmI4LihCivguIvguLjguYnguKEKK+C4i+C4uOC5ieC4oeC4geC4o+C4sOC4leC5iOC4suC4ogor4LiL4Li44LmI4Lih4LiL4LmI4Liy4LihCivguIvguLjguKHguYHguIvguKcKK+C4i+C4uOC5iOC4oeC5gOC4quC4teC4ouC4hwor4LiL4Li44LiiCivguIvguLnguYgKK+C4i+C4ueC5iOC4geC4seC5ieC4meC4o+C4seC5ieC4p+C5hOC4i+C4oeC4suC4mQor4LiL4Li54LmC4LiE4Lij4LiqCivguIvguLnguJQKK+C4i+C4ueC5ieC4lAor4LiL4Li54LiU4LiL4Liy4LiUCivguIvguLnguJoKK+C5gOC4iwor4LmA4LiL4LmH4LiBCivguYDguIvguYHguITguJnguJXguYwKK+C5gOC4i+C5h+C4hwor4LmA4LiL4LmI4LiHCivguYDguIvguYnguIcKK+C5gOC4i+C5h+C4h+C5geC4i+C5iAor4LmA4LiL4LiVCivguYDguIvguJkKK+C5gOC4i+C5h+C4mQor4LmA4LiL4LmI4LiZCivguYDguIvguJnguJXguLTguIHguKPguLHguKEKK+C5gOC4i+C4meC4leC4tOC5gOC4oeC4leC4owor4LmA4LiL4LiZ4LiV4Li04Lil4Li04LiV4LijCivguYDguIvguYjguJnguYDguKvguKXguYnguLIKK+C5gOC4i+C4m+C4seC4geC4leC4sOC4geC4o+C5ieC4rQor4LmA4LiL4LifCivguYDguIvguKPguLIKK+C5gOC4i+C4o+C4suC4sAor4LmA4LiL4Lij4Li44LmI4LihCivguYDguIvguKXguYDguIvguLXguKLguKoKK+C5gOC4i+C4peC4peC5jAor4LmA4LiL4Lil4Lil4Li54Lil4Lit4Lii4LiU4LmMCivguYDguIvguKXguKXguLnguYLguKXguKoKK+C5gOC4i+C4peC4quC5jOC5geC4oeC4mQor4LmA4LiL4LmI4LitCivguYDguIvguK3guKPguYwKK+C5gOC4i+C4reC4o+C5jOC5guC4hOC5gOC4meC4teC4ouC4oQor4LmA4LiL4Lit4LiwCivguYDguIvguLIKK+C5gOC4i+C5ieC4suC4i+C4teC5iQor4LmA4LiL4Liy4LiwCivguYDguIvguLTguIcKK+C5gOC4i+C4tOC5ieC4hwor4LmA4LiL4Li14Lii4LiZCivguYDguIvguLXguKLguJoKK+C5gOC4i+C4teC4ouC4oeC4i+C4tQor4LmA4LiL4Li14Lii4LinCivguYDguIvguLXguYjguKLguKcKK+C5gOC4i+C4teC5ieC4ouC4pwor4LmA4LiL4Li14LmI4Lii4Lin4LiB4Liy4LiHCivguYDguIvguLfguYjguK3guIcKK+C5geC4iwor4LmB4LiL4LmICivguYHguIvguYfguIHguITguLLguKPguLTguJkKK+C5geC4i+C4geC4uOC4ogor4LmB4LiL4LiHCivguYHguIvguIfguYHguIvguKcKK+C5geC4i+C4lAor4LmB4LiL4LiU4LmGCivguYHguIvguJnguJTguYzguKfguLTguIoKK+C5geC4i+C4mgor4LmB4LiL4LihCivguYHguIvguKLguLTguJQKK+C5geC4i+C5iOC4pwor4LmB4LiL4LiwCivguYLguIsKK+C5guC4i+C5iAor4LmC4LiL4LiBCivguYLguIvguYjguIcKK+C5guC4i+C4h+C5guC4guC4lOC4hwor4LmC4LiL4LmA4LiLCivguYLguIvguJTguLIKK+C5guC4i+C4lOC4suC5geC4nOC4lOC5gOC4nOC4sgor4LmC4LiL4LiU4Liy4LmE4LifCivguYLguIvguYDguJTguLXguKLguKEKK+C5guC4i+C4oQor4LmC4LiL4Lij4LihCivguYLguIvguKXguLIKK+C5hOC4iwor4LmE4LiL4LmJCivguYTguIvguYDguIHguLTguKUKK+C5hOC4i+C5guC4hOC4peC4mQor4LmE4LiL4LiZ4LmMCivguYTguIvguKLguLLguYTguJnguJTguYwKK+C5hOC4i+C4o+C5iQor4LmE4LiL4LmA4Lij4LiZCivguYTguIvguYLguKUKK+C5hOC4i+C5iOC4q+C4ueC5iQor4LiMCivguIzguKXguLIKK+C4jOC4peC4tAor4LiM4LipCivguIzguLHguKXguKXguYwKK+C4jOC4seC4peC4peC4geC4seC4k+C4kOC5jAor4LiM4Liy4LiZCivguIzguLLguJnguKXguLLguKDguLUKK+C4jOC4suC4meC4suC4l+C4tOC4quC4seC4h+C4geC4tOC5gOC4peC4quC4suC4l+C4tOC4jOC4suC4mQor4LiM4Li54LiBCivguYDguIzguK0KK+C5guC4jOC4kQor4LiNCivguI3guI3guYjguLLguKIKK+C4jeC4p+C4mQor4LiN4Lix4LiV4LiV4Li0CivguI3guLLguJPguLUKK+C4jeC4suC4lOC4sgor4LiN4Liy4LiV4Lib4Lij4Li04LiN4LiN4LiyCivguI3guLLguJXguLHguJXguJbguIjguKPguLTguKLguLIKK+C4jeC4suC4leC4tAor4LiN4Liy4LiZCivguI3guLLguJvguIEKK+C4jeC4suC4ouC4m+C4j+C4tOC4muC4seC4leC4tAor4LiN4Liy4Lii4Lib4LiP4Li04Lib4Lix4LiZ4LmC4LiZCivguI3guLTguJkKK+C4jeC4tOC4mgor4LiN4Li14LmICivguI3guLXguYjguJvguLjguYjguJkKK+C5gOC4jeC4ouC4mOC4o+C4o+C4oQor4LmE4LiN4Lii4LiY4Lij4Lij4LihCivguI4KK+C4juC4hOC4o+C4sAor4LiO4Li14LiB4LiyCivguI8KK+C4j+C4seC4h+C4geC4muC4lOC4tQor4LiP4Lix4LiH4LiB4Lio4Liy4Lil4LiyCivguI/guLHguIfguIHguLAKK+C4j+C4seC4h+C4geC4suC4owor4LiP4Lix4LiH4LiE4LiwCivguI/guLHguIfguITguLIKK+C4j+C4seC4j+C4j+C4meC4tQor4LiP4Liy4LiH4LiB4LijCivguI/guLLguKMKK+C4j+C4uOC4k+C4kOC4uOC4gQor4LiQCivguJDguIHguLHguJQKK+C4kOC4suC4geC4ueC4owor4LiQ4Liy4LiZCivguJDguLLguJnguLAKK+C4kOC4suC4meC4teC4ouC4sAor4LiQ4Liy4Lib4LiZ4LiyCivguJDguLLguKLguLUKK+C4kOC4tOC4lQor4LiQ4Li04LiV4Li0CivguJEKK+C4keC4suC4q+C4gQor4LiR4Liy4Lir4LiwCivguJHguLTguKHguKDguYwKK+C4kgor4LmA4LiS4LmI4LiyCivguJMKK+C4k+C4o+C4h+C4hOC5jAor4LiT4Lix4LiQCivguYDguJPguKMKK+C4lAor4LiU4LiBCivguJTguIcKK+C4lOC5ieC4hwor4LiU4LiH4Lin4Liy4LiiCivguJTguYnguJkKK+C4lOC4meC5guC4lOC5iAor4LiU4LiZ4LiV4Lij4Li1CivguJTguJnguKIKK+C4lOC4meC4ouC4sgor4LiU4LiZ4Lix4LiiCivguJTguJnguLgKK+C4lOC4meC4uQor4LiU4Lia4Lix4LiZCivguJTguJrguLHguKrguKfguLTguJkKK+C4lOC4muC4seC4quC4p+C4tOC4meC4tQor4LiU4Lia4Lix4Liq4Lin4Li1CivguJTguKEKK+C4lOC4oeC5hOC4owor4LiU4LijCivguJTguKPguIfguITguYwKK+C4lOC4o+C4k+C4tAor4LiU4Lij4LiT4Li1CivguJTguKPguJjguLLguJkKK+C4lOC4o+C4o+C4iuC4meC4tQor4LiU4Lij4Lil4LiyCivguJTguKPguLLguJ/guJXguYwKK+C4lOC4o+C4tAor4LiU4Lij4Li1CivguJTguKPguLgKK+C4lOC4o+C4uOC4kwor4LiU4Lij4Li44LiT4Li1CivguJTguKTguJbguLUKK+C4lOC4pQor4LiU4Lil4Lig4Liy4LiECivguJTguKfguIcKK+C4lOC5ieC4p+C4hwor4LiU4Lin4LiICivguJTguKfguJQKK+C4lOC5iOC4p+C4mQor4LiU4LmJ4Lin4LiZCivguJTguYnguKfguKHguYDguJTguLXguYnguKLguKEKK+C4lOC5ieC4p+C4ogor4LiU4Lin4LilCivguJTguK3guIEKK+C4lOC4reC4geC4geC4sOC4l+C4t+C4rQor4LiU4Lit4LiB4LiX4Lit4LiHCivguJTguK3guIHguJ/guYnguK3guJkKK+C4lOC4reC4geC5hOC4oeC5ieC4l+C4sOC5gOC4pQor4LiU4Lit4LiB4Liq4Lij4LmJ4Lit4LiiCivguJTguK3guIHguK3guLLguKcKK+C4lOC4reC4hwor4LiU4LmJ4Lit4LiHCivguJTguYjguK3guIfguYYKK+C4lOC5ieC4reC4h+C5hgor4LiU4Lit4LiH4LiJ4Liy4LiiCivguJTguK3guIfguJTguLbguIcKK+C4lOC4reC4h+C4q+C4suC4ogor4LiU4Lit4LiUCivguJTguK3guJkKK+C4lOC5iOC4reC4mQor4LiU4Lit4LihCivguJTguYnguK3guKEKK+C4lOC4reC4ogor4LiU4LmJ4Lit4LiiCivguJTguK3guKXguKXguLLguKPguYwKK+C4lOC4sAor4LiU4Liw4LmC4LiV4LmK4Liw4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguJTguLDguKvguKHguLHguIcKK+C4lOC4seC4gQor4LiU4Lix4LiB4LiU4LiZCivguJTguLHguIHguJTguLLguJkKK+C4lOC4seC4geC5gOC4lOC4teC5ieC4ogor4LiU4Lix4LiB4LmB4LiU4LmJCivguJTguLHguIHguKnguIEKK+C4lOC4seC4geC4qeC4kwor4LiU4Lix4LiB4Lip4LiT4Li1CivguJTguLHguIHguKnguLHguJkKK+C4lOC4seC4hwor4LiU4Lix4LmI4LiHCivguJTguLHguYnguIcKK+C4lOC4seC5ieC4h+C5gOC4lOC4tOC4oQor4LiU4Lix4LiK4LiZ4Li1CivguJTguLHguJQKK+C4lOC4seC4lOC4m+C4peC4seC4gQor4LiU4Lix4LiV4LiK4LmMCivguJTguLHguJkKK+C4lOC4seC5ieC4mQor4LiU4Lix4LiZ4LmA4Lir4Li04LihCivguJTguLHguJoKK+C4lOC4seC4oeC4nuC5jAor4LiU4Lix4LmJ4Lin4LmA4LiU4Li14LmJ4LiiCivguJTguLHguKrguIHguKMKK+C4lOC4seC4quC4geC4o+C4tQor4LiU4LiyCivguJTguYjguLIKK+C4lOC4suC4gQor4LiU4LmI4Liy4LiHCivguJTguYnguLLguIcKK+C4lOC4suC4lAor4LiU4Liy4LiU4LiV4Liw4LiB4Lix4LmI4LinCivguJTguLLguJkKK+C4lOC5iOC4suC4mQor4LiU4LmJ4Liy4LiZCivguJTguLLguJoKK+C4lOC4suC4muC4qgor4LiU4Liy4LihCivguJTguYnguLLguKEKK+C4lOC5ieC4suC4oeC4iOC4tOC5ieC4pwor4LiU4Liy4Lih4Lie4LmMCivguJTguLLguKHguKMKK+C4lOC4suC4ogor4LiU4LmJ4Liy4LiiCivguJTguLLguKMKK+C4lOC4suC4o+C4gQor4LiU4Liy4Lij4LiT4Li1CivguJTguLLguKPguJTguLLguKkKK+C4lOC4suC4o+C4sgor4LiU4Liy4LilCivguJTguLLguKXguLHguJQKK+C4lOC4suC4peC4uAor4LiU4Liy4Lil4Li44LiKCivguJTguLLguYTguKXguKXguLLguKHguLAKK+C4lOC4suC4pwor4LiU4LmI4Liy4LinCivguJTguYnguLLguKcKK+C4lOC4suC4p+C4geC4o+C4sOC4iOC4suC4ogor4LiU4Liy4Lin4LiU4Li24LiH4Liq4LmMCivguJTguLLguKfguJrguKoKK+C4lOC4suC4p+C5gOC4o+C4t+C4reC4hwor4LiU4Liy4LipCivguJTguLLguKvguIfguLHguJkKK+C4lOC4suC4q+C4peC4seC4hwor4LiU4Liy4LisCivguJTguLMKK+C4lOC5iOC4swor4LiU4LmJ4LizCivguJTguLPguYbguYHguJTguIfguYYKK+C4lOC4s+C4geC4pQor4LiU4Liz4LmA4LiB4Li04LiHCivguJTguLPguYHguITguIcKK+C4lOC4s+C4lOC4hwor4LiU4Liz4LiZ4Liy4LiTCivguJTguLPguJnguLLguJkKK+C4lOC4s+C4meC4uQor4LiU4Liz4LmA4LiZ4Li04LiZCivguJTguLPguYDguJnguLXguKLguJkKK+C4lOC4s+C5gOC4meC4teC4ouC4owor4LiU4Liz4Lia4LilCivguJTguLPguJ7guK3guIcKK+C4lOC4s+C4o+C4seC4qgor4LiU4Liz4Lij4Li0CivguJTguLPguKPguLUKK+C4lOC4s+C4o+C4uQor4LiU4Liz4LmE4LijCivguJTguLPguKTguKnguJPguLIKK+C4lOC4s+C5gOC4peC4tOC4hwor4LiU4Liz4LmB4Lil4LiHCivguJTguLPguKvguJnguLHguIEKK+C4lOC4s+C4q+C4meC4tAor4LiU4Liz4Lit4Lin4LiUCivguJTguLTguIEKK+C4lOC4tOC4geC5hgor4LiU4Li04LiHCivguJTguLTguYjguIcKK+C4lOC4tOC4ieC4seC4mQor4LiU4Li04LiQCivguJTguLTguJXguJbguYwKK+C4lOC4tOC4luC4tQor4LiU4Li04LiZCivguJTguLTguYnguJkKK+C4lOC4tOC4mgor4LiU4Li04Lia4LiU4Li1CivguJTguLTguKPguLHguIjguInguLLguJkKK+C4lOC4tOC5gOC4o+C4gQor4LiU4Li04Lil4LiBCivguJTguLTguYjguKcKK+C4lOC4tOC5ieC4pwor4LiU4Li04LmJ4Lin4LmA4LiU4Li14LmJ4Lii4LinCivguJTguLTguKnguJDguYwKK+C4lOC4tOC4quC5guC4nuC4o+C5gOC4i+C4teC4ouC4oQor4LiU4Li1CivguJTguLXguIHguKPguLUKK+C4lOC4teC4ieC4seC4mQor4LiU4Li14LmA4LiL4LilCivguJTguLXguJQKK+C4lOC4teC4lOC4teC4l+C4tQor4LiU4Li14LiZ4Liy4LiE4Lij4Liy4LiKCivguJTguLXguJrguLjguIEKK+C4lOC4teC4m+C4peC4tQor4LiU4Li14LmA4Lib4Lij4Liq4LiK4Lix4LiZCivguJTguLXguJzguLIKK+C4lOC4teC4nuC4owor4LiU4Li14Lii4LiyCivguJTguLXguKvguKHguLUKK+C4lOC4teC4q+C4peC4tQor4LiU4Li24LiBCivguJTguLbguIcKK+C4lOC4tuC5iOC4hwor4LiU4Li24LiH4Liq4LiwCivguJTguLbguYjguKEKK+C4lOC4t+C5iOC4mQor4LiU4Li34LmI4LihCivguJTguLfguK0KK+C4lOC4t+C5ieC4rQor4LiU4Li4CivguJTguLjguIEKK+C4lOC4uOC4geC4lOC4tOC4gQor4LiU4Li44LiB4LiX4Liw4LmA4LilCivguJTguLjguYnguIcKK+C4lOC4uOC5ieC4h+C4lOC4tOC5ieC4hwor4LiU4Li44LiICivguJTguLjguIjguJTguLHguIcKK+C4lOC4uOC4iOC4q+C4meC4tuC5iOC4hwor4LiU4Li44LiUCivguJTguLjguJkKK+C4lOC4uOC5ieC4mQor4LiU4Li44Lia4LmGCivguJTguLjguKEKK+C4lOC4uOC5iOC4oQor4LiU4Li44LmI4Lih4LmGCivguJTguLjguYjguKIKK+C4lOC4uOC4o+C4hAor4LiU4Li44Lij4LiH4LiE4LmMCivguJTguLjguKPguIfguITguLUKK+C4lOC4uOC4o+C4tOC4ouC4sAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJTguLjguKUKK+C4lOC4uOC4qeC4juC4tQor4LiU4Li44Lip4LiT4Li1CivguJTguLjguKnguJPguLXguKDguLLguJ4KK+C4lOC4uOC4qeC4tOC4lQor4LiU4Li44Liq4Li04LiVCivguJTguLjguYDguKvguKfguYjguLIKK+C4lOC4uQor4LiU4Li54LiB4LmE4LiB4LmI4LiU4LizCivguJTguLnguIHguITguYjguLLguIcKK+C4lOC4ueC4geC4iuC5ieC4suC4hwor4LiU4Li54LiB4LijCivguJTguLnguJQKK+C5gOC4lAor4LmA4LiU4LmICivguYDguJTguIEKK+C5gOC4lOC5h+C4gQor4LmA4LiU4LiB4LiL4LmM4LmC4LiX4Lij4LiqCivguYDguJTguITguLLguIHguKPguLHguKEKK+C5gOC4lOC4hOC4suC5gOC4oeC4leC4owor4LmA4LiU4LiE4Liy4Lil4Li04LiV4LijCivguYDguJTguYnguIcKK+C5gOC4lOC5h+C4iAor4LmA4LiU4LiKCivguYDguJTguIrguJnguYwKK+C5gOC4lOC4iuC4meC4sAor4LmA4LiU4LiK4LiwCivguYDguJTguYLguIoKK+C5gOC4lOC4i+C4tOC4geC4o+C4seC4oQor4LmA4LiU4LiL4Li04LmA4Lih4LiV4LijCivguYDguJTguIvguLTguKXguLTguJXguKMKK+C5gOC4lOC5h+C4lAor4LmA4LiU4LiZCivguYDguJTguYjguJkKK+C5gOC4lOC4meC4oeC4suC4o+C5jOC4gQor4LmA4LiU4Lij4Lix4LiI4LiJ4Liy4LiZCivguYDguJTguYvguK0KK+C5gOC4lOC5i+C4reC4lOC5i+C4sgor4LmA4LiU4LiyCivguYDguJTguYjguLIKK+C5gOC4lOC5ieC4sgor4LmA4LiU4LmI4Liy4LmGCivguYDguJTguYnguLLguJTguLTguJkKK+C5gOC4lOC5ieC4suC4peC4oQor4LmA4LiU4Liy4LiwCivguYDguJTguLTguJkKK+C5gOC4lOC4tOC5iOC4mQor4LmA4LiU4Li04LihCivguYDguJTguLXguYnguKIKK+C5gOC4lOC4teC4ouC4hwor4LmA4LiU4Li14Lii4LiUCivguYDguJTguLXguKLguKMKK+C5gOC4lOC4teC4ouC4o+C4lOC4suC4qQor4LmA4LiU4Li14Lii4Lij4LiW4LmMCivguYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C5gOC4lOC4teC4ouC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYjguKLguKcKK+C5gOC4lOC4teC5i+C4ouC4pwor4LmA4LiU4Li14Lii4LiwCivguYDguJTguLfguYjguK0KK+C5gOC4lOC4t+C4reC4gQor4LmA4LiU4Li34LmI4Lit4LiHCivguYDguJTguLfguK3guJQKK+C5gOC4lOC4t+C4reC4mQor4LmA4LiU4Li34Lit4LiiCivguYHguJQKK+C5geC4lOC5iAor4LmB4LiU4LiBCivguYHguJTguYfguIHguYYKK+C5geC4lOC4geC4h+C4sgor4LmB4LiU4LiB4LmB4LiU4LmJCivguYHguJTguYfguIHguYHguJTguYkKK+C5geC4lOC4hwor4LmB4LiU4LiH4LiZ4LmJ4LizCivguYHguJTguJQKK+C5geC4lOC4mQor4LmB4LiU4LmI4LiZCivguYHguJTguYjguKfguYYKK+C5geC4lOC4sAor4LmC4LiUCivguYLguJTguYgKK+C5guC4lOC4geC5gOC4lOC4gQor4LmC4LiU4LmI4LiHCivguYLguJTguJQKK+C5guC4lOC4mQor4LmC4LiU4LiZ4Lix4LiVCivguYLguJTguYrguJvguKLguLIKK+C5guC4lOC4oQor4LmC4LiU4Lih4LijCivguYLguJTguKIKK+C5guC4lOC4owor4LmC4LiU4Lij4LiTCivguYPguJQKK+C5hOC4lAor4LmE4LiU4LmJCivguYTguJTguYHguIvguYfguIHguITguLLguYTguKPguITguYwKK+C5hOC4lOC4meC4suC5hOC4oeC4leC5jAor4LmE4LiU4LmC4LiZ4LmA4Liq4Liy4Lij4LmMCivguYTguJTguYDguKPguIHguJXguKPguLTguIHguIvguYwKK+C5hOC4lOC4reC4suC4o+C4tQor4LiVCivguJXguIEKK+C4leC5iuC4geC5guC4lQor4LiV4LiHCivguJXguYvguIcKK+C4leC4h+C4ieC4tOC4mQor4LiV4LiH4Li04LiUCivguJXguIfguLjguYjguJkKK+C4leC4lAor4LiV4LiW4Liy4LiE4LiVCivguJXguJfguLHguIfguITguKfguLTguKHguLjguJXguJXguLQKK+C4leC4mQor4LiV4LmJ4LiZCivguJXguJnguLHguKIKK+C4leC4meC4uAor4LiV4LiaCivguJXguJrguKLguLjguIcKK+C4leC4muC4sAor4LiV4Lib4Liw4LiZ4Li14Lii4LiwCivguJXguKEKK+C4leC5ieC4oQor4LiV4Lih4Li54LiBCivguJXguYLguKHguYLguIrguJXguLTguJvguKPguLLguKLguYLguJkKK+C4leC5guC4oeC4leC4oeC4m+C4o+C4suC4ouC5guC4mQor4LiV4LmC4Lih4LiZ4Li44LiXCivguJXguYLguKHguYTguJ7guKPguLUKK+C4leC5guC4oeC4q+C4owor4LiV4Lii4Liy4LiECivguJXguKLguLLguITguLUKK+C4leC4ouC4uOC4leC4tAor4LiV4Lij4LiHCivguJXguKPguIfguYYKK+C4leC4o+C4k+C4tQor4LiV4Lij4LihCivguJXguKPguKHguKfguKUKK+C4leC4o+C4o+C4geC4sAor4LiV4Lij4Lil4LiaCivguJXguKPguKXguK3guJQKK+C4leC4o+C4peC4sAor4LiV4Lij4Lil4LiyCivguJXguKPguKXguLLguJQKK+C4leC4o+C5gOC4peC4tOC4lAor4LiV4Lij4Lin4LiICivguJXguKPguKfguJQKK+C4leC4o+C4p+C4mQor4LiV4Lij4Lin4LiiCivguJXguKPguK3guIEKK+C4leC4o+C4reC4hwor4LiV4Lij4Lit4Lih4LmD4LiICivguJXguKPguK3guKHguJXguKPguKEKK+C4leC4o+C4sAor4LiV4Lij4Liw4LiB4LilCivguJXguKPguLDguIHguKfguJkKK+C4leC4o+C4sOC4geC4reC4hwor4LiV4Lij4Liw4LiB4Lix4LiUCivguJXguKPguLDguIHguLLguKMKK+C4leC4o+C4sOC4geC4ueC4pQor4LiV4Lij4Liw4LiE4Lix4LijCivguJXguKPguLDguIfguYjguK3guIcKK+C4leC4o+C4sOC4iOC4seC4gQor4LiV4Lij4Liw4LiK4Lix4LiBCivguJXguKPguLDguJTguIEKK+C4leC4o+C4sOC4lOC4suC4qQor4LiV4Lij4Liw4LmA4LiV4Lij4Li14Lii4LihCivguJXguKPguLDguYHguJXguYnguJkKK+C4leC4o+C4sOC4l+C4o+C4p+C4hwor4LiV4Lij4Liw4LiZ4Liy4LinCivguJXguKPguLDguYTguJkKK+C4leC4o+C4sOC4muC4gQor4LiV4Lij4Liw4Lia4Lit4LiBCivguJXguKPguLDguJrguK3guIcKK+C4leC4o+C4sOC4muC4seC4lAor4LiV4Lij4Liw4Lia4Lix4LiZCivguJXguKPguLDguYDguJrguYfguIcKK+C4leC4o+C4sOC5geC4muC5iAor4LiV4Lij4Liw4LmB4Lia4LiBCivguJXguKPguLDguYHguJrguIcKK+C4leC4o+C4sOC5geC4muC4mQor4LiV4Lij4Liw4LmB4Lia4LmI4LiZCivguJXguKPguLDguYLguJrguKEKK+C4leC4o+C4sOC4nuC4reC4hwor4LiV4Lij4Liw4Lie4Lix4LiHCivguJXguKPguLDguKHguLfguYjguJkKK+C4leC4o+C4sOC5guC4oeC4iAor4LiV4Lij4Liw4Lil4Liy4LiB4Liy4LijCivguJXguKPguLDguKfguLHguJkKK+C4leC4o+C4sOC5gOC4p+C5h+C4lAor4LiV4Lij4Liw4LmA4Lin4LiZCivguJXguKPguLDguYDguKfguJnguYTguJ7guKMKK+C4leC4o+C4sOC5gOC4p+C4meC4p+C4seC4mQor4LiV4Lij4Liw4Liq4Lix4LiBCivguJXguKPguLDguKvguIfguYjguK3guIcKK+C4leC4o+C4sOC4q+C4h+C5iOC4suC4mQor4LiV4Lij4Liw4Lir4LiZ4LiBCivguJXguKPguLDguKvguJnguLHguIEKK+C4leC4o+C4sOC4q+C4meC5iOC4swor4LiV4Lij4Liw4Lir4LiZ4Li14LmICivguJXguKPguLDguK3guKMKK+C4leC4o+C4sOC4reC4suC4pQor4LiV4Lij4Liw4LmC4Lit4LihCivguJXguKPguLHguIcKK+C4leC4o+C4seC4h+C4hOC5jAor4LiV4Lij4Lix4LiaCivguJXguKPguLHguJrguJ/guLHguIcKK+C4leC4o+C4seC4ogor4LiV4Lij4Lix4Lii4LiV4Lij4Li24LiH4Lio4LmMCivguJXguKPguLHguKoKK+C4leC4o+C4seC4quC4quC4sgor4LiV4Lij4LiyCivguJXguKPguLLguIHguJXguKPguLMKK+C4leC4o+C4suC4iuC4uQor4LiV4Lij4Liy4LiaCivguJXguKPguLLguKrguLHguIcKK+C4leC4o+C4swor4LiV4Lij4LmI4LizCivguJXguKPguLQKK+C4leC4o+C4tOC4pwor4LiV4Lij4Li1CivguJXguKPguLXguJvguKPguLDguJTguLHguJoKK+C4leC4o+C4teC4m+C4p+C4suC4ogor4LiV4Lij4Li14Lie4Li04LiY4Lie4Lij4Lij4LiTCivguJXguKPguLXguYDguJ7guIrguKPguJfguLHguJPguJHguLUKK+C4leC4o+C4teC5gOC4nuC4iuC4o+C4nuC4p+C4hwor4LiV4Lij4Li14Lii4Lih4LiBCivguJXguKPguLXguKLguLHguKHguJvguKfguLLguKIKK+C4leC4o+C4tuC4gQor4LiV4Lij4Li24LiHCivguJXguKPguLgKK+C4leC4o+C4uOC4kwor4LiV4Lij4Li44LiiCivguJXguKPguLjguKkKK+C4leC4o+C4uOC4qeC4iOC4teC4mQor4LiV4Lij4Li5CivguJXguKPguLnguYgKK+C4leC4pOC4kwor4LiV4Lik4LiV4Li14Lii4LiwCivguJXguKTguJcKK+C4leC4pOC4mwor4LiV4Lik4Lip4LiT4LiyCivguJXguKTguYUKK+C4leC4pQor4LiV4Lil4LiBCivguJXguKXguIHguJrguLLguJXguKMKK+C4leC4peC4mgor4LiV4Lil4Lit4LiUCivguJXguKXguLAKK+C4leC4peC4seC4mgor4LiV4Lil4Lix4Lia4LiZ4Liy4LiBCivguJXguKXguLLguJQKK+C4leC4peC4tOC5iOC4hwor4LiV4Lil4Li24LiHCivguJXguKfguIcKK+C4leC5iOC4p+C4mQor4LiV4LmJ4Lin4Lih4LmA4LiV4Li14LmJ4Lii4LihCivguJXguKfguLHguIEKK+C4leC4p+C4seC4lAor4LiV4Lin4Liy4LiUCivguJXguK0KK+C4leC5iOC4rQor4LiV4LmJ4LitCivguJXguK3guIEKK+C4leC5iuC4reC4gQor4LiV4LmK4Lit4LiB4LiV4LmL4Lit4LiiCivguJXguK3guIcKK+C4leC5ieC4reC4hwor4LiV4Lit4LiH4LiB4Lij4Liy4LiiCivguJXguYnguK3guIfguIHguLLguKMKK+C4leC4reC4h+C4leC4reC4ogor4LiV4Lit4LiH4LiV4Li24LiHCivguJXguYnguK3guIfguYDguJUKK+C4leC4reC4h+C5geC4leC4gQor4LiV4LmI4Lit4LiH4LmB4LiV4LmI4LiHCivguJXguK3guIfguYDguJvguKPguLXguKLguIcKK+C4leC5ieC4reC4h+C4quC4ueC5iQor4LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJXguK3guJQKK+C4leC4reC4lOC4leC5iOC4rQor4LiV4Lit4LiZCivguJXguYnguK3guJkKK+C4leC4reC4mgor4LiV4Lit4LmA4Lia4LiyCivguJXguK3guKEKK+C4leC5iOC4reC4oQor4LiV4LmL4Lit4LihCivguJXguYjguK3guKHguJnguYnguLMKK+C4leC5iOC4reC4ogor4LiV4LmJ4Lit4LiiCivguJXguYnguK3guKLguJXguKPguLTguYjguIcKK+C4leC5ieC4reC4ouC4leC4tOC5iOC4hwor4LiV4LmJ4Lit4Lii4LiV4Li14Lin4Li04LiUCivguJXguK3guYHguKIKK+C4leC4reC4o+C5jOC4m+C4tOC5guC4lAor4LiV4LmI4Lit4LmE4Liq4LmJCivguJXguK3guYHguKvguKUKK+C4leC4sAor4LiV4Liw4LiB4Lij4LiZCivguJXguLDguIHguKPguKEKK+C4leC4sOC4geC4o+C4p+C4ogor4LiV4Liw4LiB4Lij4LmJ4LitCivguJXguLDguIHguKPguYjguK3guKEKK+C4leC4sOC4geC4o+C4seC4mQor4LiV4Liw4LiB4Lij4Lix4LiaCivguJXguLDguIHguKPguYnguLIKK+C4leC4sOC4geC4o+C4suC4oQor4LiV4Liw4LiB4Lij4Li44LiUCivguJXguLDguIHguKPguLjguKEKK+C4leC4sOC4geC4o+C4uOC4oeC4leC4sOC4geC4o+C4suC4oQor4LiV4Liw4LiB4Lil4LiwCivguJXguLDguIHguKXguLLguKEKK+C4leC4sOC4geC4p+C4lAor4LiV4Liw4LiB4LitCivguJXguLDguIHguK3guJkKK+C4leC4sOC4geC4seC4hwor4LiV4Liw4LiB4Lix4LmI4LinCivguJXguLDguIHguLLguIcKK+C4leC4sOC4geC4suC4lAor4LiV4Liw4LiB4Liy4LiiCivguJXguLDguIHguLLguKcKK+C4leC4sOC4geC4teC5iQor4LiV4Liw4LiB4Li44LiB4LiV4Liw4LiB4Lix4LiBCivguJXguLDguIHguLjguKIKK+C4leC4sOC4geC4uQor4LiV4Liw4LiB4Li54LiUCivguJXguLDguYDguIHguLXguKLguIHguJXguLDguIHguLLguKIKK+C4leC4sOC5gOC4geC4teC4ouC4hwor4LiV4Liw4LmA4LiB4Li14Lii4LiaCivguJXguLDguYHguIEKK+C4leC4sOC5geC4geC5iAor4LiV4Liw4LmB4LiB4Lij4LiHCivguJXguLDguYLguIEKK+C4leC4sOC5guC4geC5iQor4LiV4Liw4LmC4LiB4LiBCivguJXguLDguYLguIHguJkKK+C4leC4sOC5guC4geC4o+C4hwor4LiV4Liw4LmC4LiB4Lij4LihCivguJXguLDguYTguIHguKMKK+C4leC4sOC4guC4mgor4LiV4Liw4LiC4LitCivguJXguLDguILguLLguJoKK+C4leC4sOC4guC4tOC4lOC4leC4sOC4guC4p+C4hwor4LiV4Liw4LmA4LiC4LmJCivguJXguLDguYDguILguYfguJoKK+C4leC4sOC5gOC4guC4tOC4hwor4LiV4Liw4LmC4LiC4LiHCivguJXguLDguITguKPguYnguK0KK+C4leC4sOC4hOC4o+C4reC4hwor4LiV4Liw4LiE4Lij4Lix4LmI4LiZ4LiV4Liw4LiE4Lij4LitCivguJXguLDguITguKPguYnguLMKK+C4leC4sOC4hOC4o+C4tOC4pwor4LiV4Liw4LiE4Lij4Li44LiaCivguJXguLDguITguKXguLHguJrguJXguLDguITguKXguYnguLLguKIKK+C4leC4sOC4hOC4reC4gQor4LiV4Liw4LiE4Lix4LiZCivguJXguLDguITguYnguLIKK+C4leC4sOC4hOC4suC4gQor4LiV4Liw4LiE4Liy4LiHCivguJXguLDguITguYnguLLguJkKK+C4leC4sOC4hOC4tOC4pwor4LiV4Liw4LiE4Li44LmI4LihCivguJXguLDguYDguITguKPguLXguKLguKcKK+C4leC4sOC5gOC4hOC4teC4ouC4mQor4LiV4Liw4LmA4LiE4Li14Lii4LiZ4LiX4Lit4LiHCivguJXguLDguYDguITguLXguKLguKcKK+C4leC4sOC5geC4hOC4hwor4LiV4Liw4LmE4LiE4Lij4LmICivguJXguLDguYTguITguKPguYkKK+C4leC4sOC5gOC4huC5iAor4LiV4Liw4LmB4LiH4LmJCivguJXguLDguJXguLTguJkKK+C4leC4sOC5geC4leC4o+C5ieC4mQor4LiV4Liw4LiZ4Lit4LiiCivguJXguLDguJnguLLguKcKK+C4leC4sOC4muC4oQor4LiV4Liw4Lia4Lit4LiHCivguJXguLDguJrguK3guIfguIHguLHguJkKK+C4leC4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiV4Liw4Lia4Lit4LiiCivguJXguLDguJrguLHguJkKK+C4leC4sOC4muC4tOC5ieC4hwor4LiV4Liw4Lia4Li04LiUCivguJXguLDguJrguLTguJTguJXguLDguJrguK3guKIKK+C4leC4sOC4muC4teC5ieC4leC4sOC4muC4seC4mQor4LiV4Liw4Lia4Li24LiHCivguJXguLDguJrguLjguYnguKIKK+C4leC4sOC4muC4uOC5ieC4ouC5hgor4LiV4Liw4Lia4Li54LiZCivguJXguLDguYDguJrguYfguIcKK+C4leC4sOC5gOC4muC5h+C4h+C4oeC4suC4mQor4LiV4Liw4LmB4Lia4LiBCivguJXguLDguYHguJrguIcKK+C4leC4sOC5guC4muC4oQor4LiV4Liw4LmE4LiaCivguJXguLDguJvguJoKK+C4leC4sOC4m+C4peC4tOC4hwor4LiV4Liw4Lib4Lix4LiU4LiV4Liw4Lib4LmI4Lit4LiHCivguJXguLDguJvguLTguYnguIcKK+C4leC4sOC4m+C4uOC5iOC4oeC4leC4sOC4m+C5iOC4swor4LiV4Liw4Lib4Li5CivguJXguLDguJ7guIcKK+C4leC4sOC4nuC4lAor4LiV4Liw4Lie4Lit4LiHCivguJXguLDguJ7guLHguIEKK+C4leC4sOC4nuC4seC4hwor4LiV4Liw4Lie4Lix4LiUCivguJXguLDguJ7guLHguYnguJkKK+C4leC4sOC4nuC4suC4gQor4LiV4Liw4Lie4Liy4LiZCivguJXguLDguJ7guLLguJoKK+C4leC4sOC4nuC4suC4muC4meC5ieC4swor4LiV4Liw4Lie4Liy4LiiCivguJXguLDguJ7guLbguJQKK+C4leC4sOC4nuC4uOC5iOC4mQor4LiV4Liw4LmA4Lie4Lij4LiyCivguJXguLDguYDguJ7guLTguIcKK+C4leC4sOC5gOC4nuC4tOC4lAor4LiV4Liw4LmA4Lie4Li04LmI4LiZCivguJXguLDguYDguJ7guLXguKLguJkKK+C4leC4sOC5guC4nuC4gQor4LiV4Liw4LmC4Lie4LiHCivguJXguLDguYLguJ7guJkKK+C4leC4sOC5gOC4oOC4sgor4LiV4Liw4LmD4Lig4LmJCivguJXguLDguKHguYjguK0KK+C4leC4sOC4oeC4reC4ogor4LiV4Liw4Lih4Lit4Lii4Liq4Liw4Lil4LiyCivguJXguLDguKPguLHguIcKK+C4leC4sOC4o+C4seC4h+C4geC4sOC4meC4uQor4LiV4Liw4Lij4Lix4LiH4LiV4Lix4LiHCivguJXguLDguKPguLLguIcKK+C4leC4sOC4peC4reC4hwor4LiV4Liw4Lil4Lit4LiZCivguJXguLDguKXguYjguK3guKEKK+C4leC4sOC4peC5iOC4reC4oeC4m+C5ieC4reC4oQor4LiV4Liw4Lil4LiwCivguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tOC4h+C4m+C4peC4tOC4hwor4LiV4Liw4Lil4Li04LiaCivguJXguLDguKXguLXguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tuC4hwor4LiV4Liw4Lil4Li44LiHCivguJXguLDguKXguLjguYjguKEKK+C4leC4sOC4peC4uOC4oeC4muC4reC4mQor4LiV4Liw4Lil4Li44LmI4Lih4LmC4Lib4LiHCivguJXguLDguKXguLjguKHguJ7guK0KK+C4leC4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiV4Liw4Lil4Li44LmI4Lih4Lit4Li04LiUCivguJXguLDguKXguLjguKIKK+C4leC4sOC5gOC4peC4hwor4LiV4Liw4LmB4Lil4LiH4LmB4LiB4LiHCivguJXguLDguYTguKUKK+C4leC4sOC4p+C4seC4mQor4LiV4Liw4Lin4Liy4LiHCivguJXguLDguYDguKfguJkKK+C4leC4sOC4q+C4meC4tuC5iOC4h+C4o+C4seC4lAor4LiV4Liw4Lir4Lil4Li04LinCivguJXguLDguKvguKXguLjguIEKK+C4leC4sOC4q+C4peC4uOC4hwor4LiV4Liw4LmA4Lir4Lil4LiZ4LmB4Lib4LmL4LiZCivguJXguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4leC4sOC5geC4q+C4h+C5iOC4pwor4LiV4Liw4LmB4Lir4Lih4Liw4LmB4LiC4LiwCivguJXguLDguYHguKvguKXguJnguYHguJvguYvguJkKK+C4leC4sOC5guC4q+C4h+C4gQor4LiV4Lix4LmK4LiBCivguJXguLHguIHguIHguLAKK+C4leC4seC4geC5gOC4leC4t+C4reC4mQor4LiV4Lix4LmK4LiB4LmB4LiV4LiZCivguJXguLHguIHguKMKK+C4leC4seC4geC4qeC4gQor4LiV4Lix4LiB4Lip4LiTCivguJXguLHguIHguKnguJPguLUKK+C4leC4seC4geC4qeC4seC4ogor4LiV4Lix4LiHCivguJXguLHguYjguIcKK+C4leC4seC5ieC4hwor4LiV4Lix4LiH4LmA4LiBCivguJXguLHguIfguInguYjguLLguKIKK+C4leC4seC4h+C4leC4tOC4lAor4LiV4Lix4LiH4LmA4LihCivguJXguLHguIfguKfguLLguKIKK+C4leC4seC4h+C5guC4reC5iwor4LiV4Lix4LiI4LiJ4LiBCivguJXguLHguIjguInguJnguLUKK+C4leC4seC4k+C4keC4uOC4pQor4LiV4Lix4LiT4Lir4Lix4LiB4Lip4Lix4LiiCivguJXguLHguJPguKvguLIKK+C4leC4seC4lAor4LiV4Lix4LiW4Lii4LmMCivguJXguLHguJkKK+C4leC4seC4meC4leC4o+C4sAor4LiV4Lix4LiZ4LiV4Li0CivguJXguLHguJnguKvguIEKK+C4leC4seC4meC4q+C4ouC4hwor4LiV4Lix4LiZ4LmA4Lir4Li04LihCivguJXguLHguJoKK+C4leC4seC4muC5gOC4leC5iOC4sgor4LiV4Lix4Lia4Lib4Li04LmJ4LiHCivguJXguLHguJrguYDguJvguYfguJQKK+C4leC4seC4pwor4LiV4Lix4LmL4LinCivguJXguLHguKfguJXguLfguJQKK+C4leC4seC5ieC4p+C5guC4nAor4LiV4Lix4LmJ4Lin4Liq4Li04LinCivguJXguLHguYnguKfguYDguKvguLXguYjguKIKK+C4leC4sgor4LiV4Liy4LiBCivguJXguLLguIcKK+C4leC5iOC4suC4hwor4LiV4Liy4LiUCivguJXguLLguJkKK+C4leC5iOC4suC4mQor4LiV4LmJ4Liy4LiZCivguJXguLLguJnguJnguIHguIHguJQKK+C4leC4suC4meC5gOC4quC4teC5ieC4ouC4mQor4LiV4Liy4LiZ4Lir4LiBCivguJXguLLguJnguKvguKHguYjguK3guJkKK+C4leC4suC4meC5gOC4q+C4peC4t+C4reC4hwor4LiV4Liy4LiZ4Li1CivguJXguLLguJoKK+C4leC4suC4neC4seC5iOC4hwor4LiV4Liy4LihCivguJXguLLguKHguJ7guLAKK+C4leC4suC4oeC4sOC5geC4mQor4LiV4Liy4Lih4Li04LiZCivguJXguLLguKIKK+C4leC5ieC4suC4ogor4LiV4LmK4Liy4Lii4LiV4Liy4LiiCivguJXguLLguKPguLLguYTguJUKK+C4leC4suC5gOC4o+C4t+C4reC4iuC4seC4ogor4LiV4Liy4LilCivguJXguLLguKXguLLguJkKK+C4leC4suC4peC4uAor4LiV4Liy4Lil4Li44LiKCivguJXguLLguKcKK+C4leC4suC5gOC4quC4t+C4rQor4LiV4Liy4Lir4Lil4Li04LmI4LiHCivguJXguLLguKwKK+C4leC4swor4LiV4LmI4LizCivguJXguLPguJnguLLguJkKK+C4leC4s+C5gOC4meC4tOC4mQor4LiV4Liz4LmA4LiZ4Li14Lii4LiZCivguJXguLPguJrguKUKK+C4leC4s+C5geC4mgor4LiV4LmJ4Liz4Lib4Li44LiBCivguJXguYnguLPguJzguLLguIcKK+C4leC5ieC4s+C4nuC4o+C4p+C4lAor4LiV4Liz4Lih4Liw4Lir4LiH4LiHCivguJXguLPguYHguKIKK+C4leC4s+C4o+C4p+C4iAor4LiV4Liz4Lij4Lix4LiaCivguJXguLPguKPguLIKK+C4leC4s+C4o+C4uAor4LiV4Liz4Lil4Li24LiHCivguJXguLPguYDguKrguLIKK+C4leC4s+C4q+C4meC4seC4gQor4LiV4Liz4Lir4LiZ4Li0CivguJXguLPguKvguKPguLAKK+C4leC4s+C5geC4q+C4meC5iOC4hwor4LiV4Li0CivguJXguLTguIHguILguI3guLLguJMKK+C4leC4tOC4geC4sAor4LiV4Li04LiB4Liy4Lir4Lil4Lix4LiHCivguJXguLTguIcKK+C4leC4tOC5iOC4hwor4LiV4Li04LmL4LiHCivguJXguLTguYvguIfguYYKK+C4leC4tOC5iOC4h+C4leC4seC5iOC4hwor4LiV4Li04LiH4Liq4LiV4Li0CivguJXguLTguYjguIfguKvguLLguKIKK+C4leC4tOC4kwor4LiV4Li04LiT4Lin4Lix4LiV4LiW4Liy4Lij4LiB4Lin4Li04LiZ4Lix4LiiCivguJXguLTguJQKK+C4leC4tOC4lOC5hgor4LiV4Li04LiV4LiV4Li04LiBCivguJXguLTguJXguJXguLTguKMKK+C4leC4tOC4leC4lgor4LiV4Li04LiW4Li1CivguJXguLTguJvguLIKK+C4leC4tOC4m+C4suC4luC4sAor4LiV4Li04Lih4Li0CivguJXguLTguKHguLTguIfguITguKXguLAKK+C4leC4tOC4owor4LiV4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJXguLTguKUKK+C4leC4tOC4peC4gQor4LiV4Li04LmJ4LinCivguJXguLTguKrguKPguJPguITguKHguJnguLnguJvguKrguLHguKHguJvguJfguLIKK+C4leC4tQor4LiV4Li14LmICivguJXguLXguYsKK+C4leC4teC4l+C4reC4hwor4LiV4Li14LiZCivguJXguLXguJnguIjguYnguLMKK+C4leC4teC4meC5gOC4l+C4teC4ouC4mQor4LiV4Li14LiZ4LmB4Lij4LiUCivguJXguLXguJoKK+C4leC4teC4o+C4luC4sAor4LiV4Li14Lij4LiwCivguJXguLXguKvguKHguLIKK+C4leC4tgor4LiV4Li24LmGCivguJXguLbguIEKK+C4leC4tuC4geC5hgor4LiV4Li24LmJ4LiB4LmGCivguJXguLbguYnguIHguJXguLHguYnguIEKK+C4leC4tuC4hwor4LiV4Li24LiU4LiV4Li34LmL4LitCivguJXguLbguYrguJTguJXguLfguYvguK0KK+C4leC4t+C4lAor4LiV4Li34LmI4LiZCivguJXguLfguYnguJkKK+C4leC4t+C5ieC4rQor4LiV4Li34LmK4LitCivguJXguLfguYvguK0KK+C4leC4t+C4reC4ruC4p+C4mQor4LiV4Li4CivguJXguLjguYoKK+C4leC4uOC5hgor4LiV4Li44LmK4LiB4LmB4LiBCivguJXguLjguYrguIHguJXguLIKK+C4leC4uOC5iuC4geC4leC5iOC4swor4LiV4Li44LmK4LiB4LiV4LmI4Liz4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJXguLjguIHguJXguLTguIEKK+C4leC4uOC5iuC4geC4leC4tOC5iuC4gQor4LiV4Li44LmK4LiB4LiV4Li44LmI4LiZCivguJXguLjguYrguIHguJXguLjguYvguKIKK+C4leC4uOC4hwor4LiV4Li44LmJ4LiH4LiB4LmI4LiyCivguJXguLjguYnguIfguJXguLTguYnguIcKK+C4leC4uOC5iuC4lOC4leC4ueC5iAor4LiV4Li44LiZCivguJXguLjguYjguJkKK+C4leC4uOC5i+C4mQor4LiV4Li44LmJ4LiZ4LmB4LiL4LiwCivguJXguLjguYjguJnguJXguYjguLLguJkKK+C4leC4uOC4meC4suC4q+C4h+C4seC4mQor4LiV4Li44Lia4LmGCivguJXguLjguYnguJrguYYKK+C4leC4uOC5iuC4muC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44Lib4LmI4Lit4LiHCivguJXguLjguJvguLHguJTguJXguLjguYDguJvguYsKK+C4leC4uOC5iOC4oQor4LiV4Li44LmJ4LihCivguJXguLjguYvguKEKK+C4leC4uOC5iuC4oeC5hgor4LiV4Li44LmK4Lih4LmG4LiV4LmJ4Lit4Lih4LmGCivguJXguLjguYnguKHguIHguKfguYnguLLguKcKK+C4leC4uOC4oeC4geC4sgor4LiV4Li44LmJ4Lih4LmB4LiL4LiwCivguJXguLjguKHguJXguLHguIcKK+C4leC4uOC5ieC4oeC5gOC4leC5i+C4mQor4LiV4Li44LmJ4Lih4Lib4Li14LmICivguJXguLjguKHguJ4KK+C4leC4uOC5iOC4ogor4LiV4Li44LmJ4LiiCivguJXguLjguYrguKIKK+C4leC4uOC5iOC4ouC5hgor4LiV4Li44LmJ4Lii4LmGCivguJXguLjguYvguKLguJXguLjguYjguKIKK+C4leC4uOC4o+C4hAor4LiV4Li44Lij4LiH4LiE4LmMCivguJXguLjguKPguLTguKLguLLguIfguITguYwKK+C4leC4uOC4peC4quC4tAor4LiV4Li44Lil4LiyCivguJXguLjguKvguKPguLHguJTguJXguLjguYDguKvguKPguYgKK+C4leC4uQor4LiV4Li54LmICivguJXguLnguYkKK+C4leC4ueC4gQor4LiV4Li54LiUCivguJXguLnguJTguIfguK3guJkKK+C4leC4ueC4mgor4LiV4Li54LihCivguJXguLnguKXguLTguYjguJnguK7guLfguYnguK0KK+C4leC4ueC4q+C4meC4sgor4LmA4LiVCivguYDguJXguIEKK+C5gOC4leC5h+C4gQor4LmA4LiV4LmH4LiHCivguYDguJXguYjguIcKK+C5gOC4leC4igor4LmA4LiV4LmC4LiKCivguYDguJXguYnguJkKK+C5gOC4leC5h+C4meC4l+C5jAor4LmA4LiV4LmH4LihCivguYDguJXguKIKK+C5gOC4leC5ieC4ogor4LmA4LiV4LmK4LiiCivguYDguJXguKPguYgKK+C5gOC4leC4o+C5h+C4lAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJTguYDguJXguKPguJkKK+C5gOC4leC4o+C4mQor4LmA4LiV4Lij4Li04LiHCivguYDguJXguKPguLXguKLguJQKK+C5gOC4leC4o+C4teC4ouC4mgor4LmA4LiV4Lij4Li14Lii4LihCivguYDguJXguKPguLXguKLguKHguJXguKPguKEKK+C5gOC4leC4peC4sAor4LmA4LiV4Lil4Li04LiUCivguYDguJXguKfguYfguJQKK+C5gOC4leC5iOC4rQor4LmA4LiV4Lit4LiwCivguYDguJXguLAKK+C5gOC4leC5iuC4sAor4LmA4LiV4LmK4Liw4LiI4Li44LmK4LiiCivguYDguJXguYrguLDguJfguYjguLIKK+C5gOC4leC4sgor4LmA4LiV4LmI4LiyCivguYDguJXguYnguLIKK+C5gOC4leC5i+C4sgor4LmA4LiV4LmI4Liy4LiB4Lij4Liw4Liq4Li44LiZCivguYDguJXguYjguLLguIHguLTguJnguJzguLHguIHguJrguLjguYnguIcKK+C5gOC4leC5iOC4suC5gOC4geC4teC4ouC4lAor4LmA4LiV4LmJ4Liy4LmA4LiI4Li14LmJ4Lii4LinCivguYDguJXguYjguLLguJfguK3guIcKK+C5gOC4leC5iOC4suC4l+C4reC5gOC4quC4t+C5iOC4rQor4LmA4LiV4LmJ4Liy4LiX4Li24LiHCivguYDguJXguYjguLLguJrguYnguLIKK+C5gOC4leC5iOC4suC4o+C4seC5ieC4hwor4LmA4LiV4LmI4Liy4Lij4LmJ4Liy4LiHCivguYDguJXguYjguLLguYDguKXguLfguK3guJkKK+C5gOC4leC5ieC4suC4quC5iOC4p+C4mQor4LmA4LiV4LmJ4Liy4LmA4Liq4Li14Lii4LiaCivguYDguJXguYjguLLguKvguLHguJoKK+C5gOC4leC5ieC4suC4q+C4ueC5iQor4LmA4LiV4LmJ4Liy4Liu4Lin4LiiCivguYDguJXguYrguLLguLAKK+C5gOC4leC4suC4sOC5geC4leC4sAor4LmA4LiV4Li04LmI4LiHCivguYDguJXguLTguJnguYDguJXguYjguK0KK+C5gOC4leC4tOC4mgor4LmA4LiV4Li04LihCivguYDguJXguLXguYjguKIKK+C5gOC4leC4teC5ieC4ogor4LmA4LiV4Li14Lii4LiHCivguYDguJXguLXguKLguJkKK+C5gOC4leC4teC4ouC4mgor4LmA4LiV4Li14LmK4Lii4LihCivguYDguJXguLXguYvguKLguKEKK+C5gOC4leC4teC4ouC4o+C4luC5jAor4LmA4LiV4Li14Lii4LinCivguYDguJXguLXguYjguKLguKcKK+C5gOC4leC4t+C5ieC4rQor4LmA4LiV4Li34Lit4LiZCivguYHguJXguYgKK+C5geC4leC5iQor4LmB4LiV4LmI4LmGCivguYHguJXguIEKK+C5geC4leC5iOC4geC5iOC4reC4meC5geC4leC5iOC4geC4teC5iQor4LmB4LiV4LmI4LiB4Li14LmJ4LmB4LiV4LmI4LiB4LmI4Lit4LiZCivguYHguJXguIcKK+C5geC4leC5iOC4hwor4LmB4LiV4LiH4LmA4LihCivguYHguJXguYnguIjguLTguYvguKcKK+C5geC4leC4lAor4LmB4LiV4LmK4LiU4LmB4LiV4LmLCivguYHguJXguJkKK+C5geC4leC5ieC4oQor4LmB4LiV4LijCivguYHguJXguKPguLAKK+C5geC4leC5ieC4p+C5geC4o+C5ieC4pwor4LmB4LiV4LiwCivguYLguJUKK+C5guC4leC5iQor4LmC4LiV4LiBCivguYLguJXguYnguIcKK+C5guC4leC5ieC4h+C5hgor4LmC4LiV4LiH4LmG4LmA4LiV4LiH4LmGCivguYLguJXguIfguYDguJXguIcKK+C5guC4leC4juC4gQor4LmC4LiV4LmK4LiUCivguYLguJXguYvguYDguJXguYsKK+C5guC4leC4mQor4LmC4LiV4LiZ4LiUCivguYLguJXguYnguYLguJwKK+C5guC4leC4oeC4owor4LmC4LiV4Lih4Lij4LiY4LijCivguYLguJXguKIKK+C5guC4leC4o+C4gQor4LmC4LiV4Lij4LiB4LmE4LiV4LijCivguYLguJXguKPguJQKK+C5guC4leC5ieC4q+C4peC4hwor4LmC4LiV4LmK4LiwCivguYPguJXguYkKK+C5hOC4lQor4LmE4LiV4LmICivguYTguJXguYkKK+C5hOC4leC5iwor4LmE4LiV4LmJ4LiB4LmL4LiHCivguYTguJXguYnguJ3guLjguYjguJkKK+C5hOC4leC5iOC5hOC4oeC5iQor4LmE4LiV4LijCivguYTguJXguKPguIHguLTguKjguKLguLIKK+C5hOC4leC4o+C4lOC4suC4ouC4uOC4hAor4LmE4LiV4Lij4LmI4LiV4Lij4Lit4LiHCivguYTguJXguKPguKIKK+C5hOC4leC5ieC4q+C4p+C4seC4mQor4LmE4LiV4LmJ4Lit4LmL4Lit4LiHCivguJYKK+C4luC4gQor4LiW4LiB4LilCivguJbguIfguLHguJkKK+C4luC4h+C4suC4lAor4LiW4LiUCivguJbguJkKK+C4luC4meC4mQor4LiW4LiZ4LibCivguJbguJnguK3guKEKK+C4luC4meC4seC4lAor4LiW4LiZ4Lix4LiZCivguJbguJnguLMKK+C4luC4meC4tOC4oQor4LiW4LiZ4Li04Lih4Liq4Lij4LmJ4Lit4LiiCivguJbguJoKK+C4luC4muC4lOC4tQor4LiW4LihCivguJbguYjguKEKK+C4luC4oeC4rQor4LiW4Lih4Li24LiH4LiX4Li24LiHCivguJbguKUKK+C4luC4peC4gQor4LiW4Lil4LiB4Lia4Liy4LiV4LijCivguJbguKXguJkKK+C4luC4peC4oQor4LiW4Lil4LmI4LihCivguJbguKXguK3guIEKK+C4luC4peC4seC4gQor4LiW4Lil4Lix4LiZCivguJbguKXguLIKK+C4luC4peC4suC4gQor4LiW4Lil4Liy4LiiCivguJbguKXguLMKK+C4luC4peC4teC4luC4peC4swor4LiW4Lil4Li24LiH4LiV4LiyCivguJbguKXguLjguIcKK+C4luC4peC4uOC4mQor4LiW4LmI4Lin4LiHCivguJbguYnguKfguJkKK+C4luC5ieC4p+C4ogor4LiW4LmJ4Lin4Lii4LmC4LiW4LiHCivguJbguKfguLHguJQKK+C4luC4p+C4seC4pQor4LiW4Lin4Lix4Lil4Lii4LmMCivguJbguKfguLLguKIKK+C4luC4p+C4tOC4mQor4LiW4Lin4Li04LilCivguJbguYjguK0KK+C4luC5ieC4rQor4LiW4Lit4LiBCivguJbguK3guIcKK+C4luC5iOC4reC4hwor4LiW4LmJ4Lit4LiHCivguJbguK3guJQKK+C4luC4reC4mQor4LiW4Lit4LiaCivguJbguK3guJrguYHguJbguJoKK+C4luC5iOC4reC4oQor4LiW4Lit4LiiCivguJbguYjguK3guKIKK+C4luC5ieC4reC4ogor4LiW4LiwCivguJbguLDguIHguLHguJQKK+C4luC4sOC5gOC4geC4tOC4mQor4LiW4Liw4LmC4LiB4LiZCivguJbguLDguJbguLHguYjguJkKK+C4luC4sOC4luC4seC4mgor4LiW4Liw4LiW4Li44LiZ4LiW4Liw4LiW4Lix4LiZCivguJbguLDguKHguLHguJTguJbguLDguYHguKHguIcKK+C4luC4seC4gQor4LiW4Lix4LiHCivguJbguLHguYjguIcKK+C4luC4seC4k+C4keC4tOC4pQor4LiW4Lix4LiUCivguJbguLHguJfguJgKK+C4luC4seC4mQor4LiW4Lix4LmI4LiZCivguJbguLHguYjguJnguYYKK+C4luC4seC4mgor4LiW4Lix4Lia4LmGCivguJbguLHguKHguKDguYwKK+C4luC4seC4pwor4LiW4Lix4LmI4LinCivguJbguLHguYjguKfguILguLLguKcKK+C4luC4sgor4LiW4LmJ4LiyCivguJbguLLguIEKK+C4luC4suC4hwor4LiW4LmI4Liy4LiHCivguJbguLLguJQKK+C4luC4suC4mQor4LiW4LmI4Liy4LiZCivguJbguLLguJoKK+C4luC4suC4oQor4LiW4Liy4Lih4LiwCivguJbguYjguLLguKIKK+C4luC5iOC4suC4ouC5gOC4lOC4teC4ouC4pwor4LiW4LmI4Liy4LinCivguJbguLLguKfguKMKK+C4luC4suC4p+C4o+C4mOC4tOC4o+C4sgor4LiW4Liy4Lin4Lij4Lin4Lix4LiV4LiW4Li4CivguJbguYnguLMKK+C4luC4tOC5iOC4mQor4LiW4Li1CivguJbguLXguYgKK+C4luC4teC5iOC5hgor4LiW4Li14LiaCivguJbguLXguJrguInguLHguJQKK+C4luC4tuC4gQor4LiW4Li24LiHCivguJbguLfguK0KK+C4luC4uOC4hwor4LiW4Li44LiZCivguJbguLjguKIKK+C4luC4uOC4pQor4LiW4Li44Lil4Lil4LiwCivguJbguLkKK+C4luC4ueC4gQor4LmA4LiW4LiB4Li04LiHCivguYDguJbguJkKK+C5gOC4luC4oeC4tOC4mQor4LmA4LiW4LijCivguYDguJbguKPguLAKK+C5gOC4luC4peC5hOC4luC4pQor4LmA4LiW4Lil4Li04LiBCivguYDguJbguKXguLTguIcKK+C5gOC4luC4peC4t+C4reC4geC4luC4peC4mQor4LmA4LiW4LmI4LitCivguYDguJbguK3guLAKK+C5gOC4luC4sgor4LmA4LiW4LmJ4LiyCivguYDguJbguLLguITguLHguJkKK+C5gOC4luC4suC4hOC4seC4meC5gOC4q+C4peC5h+C4gQor4LmA4LiW4Liy4LmA4LiH4Liy4LiwCivguYDguJbguLLguKHguKfguIEKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4guC4teC4ouC4pwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4Lib4Li54LiZCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguJvguKPguLXguKLguIcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4ouC4reC4lOC4lOC5ieC4p+C4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lir4Lil4LmH4LiBCivguYDguJbguLLguKrguLTguIfguYLguJUKK+C5gOC4luC4suC4q+C4seC4p+C4lOC5ieC4p+C4mQor4LmA4LiW4Liy4LiwCivguYDguJbguLTguIEKK+C5gOC4luC4tOC4hwor4LmA4LiW4Li04LiUCivguYDguJbguLTguJTguYDguJfguLTguIcKK+C5gOC4luC4tOC4mQor4LmA4LiW4Li14Lii4LiHCivguYDguJbguLXguKLguKMKK+C5gOC4luC4t+C4rQor4LmA4LiW4Li34Lit4LiBCivguYDguJbguLfguYjguK3guJkKK+C5geC4lgor4LmB4LiW4LiBCivguYHguJbguIcKK+C5geC4luC4mQor4LmB4LiW4LiaCivguYHguJbguKEKK+C5geC4luC4peC4hwor4LmB4LiW4Lil4LiaCivguYHguJbguKcKK+C5guC4lgor4LmC4LiW4LiHCivguYLguJbguIfguYDguJbguIcKK+C5guC4luC4mgor4LmC4LiW4LihCivguYLguJbguKHguJnguLLguIHguLLguKMKK+C5hOC4lgor4LmE4LiW4LmICivguYTguJbguYkKK+C5hOC4luC4hwor4LmE4LiW4LilCivguJcKK+C4l+C4gQor4LiX4LiB4Lil4LmJ4LiyCivguJfguYHguIHguKXguYnguKcKK+C4l+C5iOC4hwor4LiX4LiH4Lix4LiZCivguJfguIrguLUKK+C4l+C4lAor4LiX4LiU4LmC4LiX4Lij4LmI4LirCivguJfguJcKK+C4l+C4mOC4tAor4LiX4LiZCivguJfguYnguJkKK+C4l+C4meC4lOC4tQor4LiX4LiZ4LiV4LmMCivguJfguJnguYLguJfguYgKK+C4l+C4meC4oQor4LiX4LiZ4Liq4Lih4Li44LiX4LijCivguJfguJnguLLguKIKK+C4l+C4mgor4LiX4Lia4Lin4LiHCivguJfguKEKK+C4l+C4oeC4gQor4LiX4Lih4LiZCivguJfguKHguJoKK+C4l+C4oeC4rQor4LiX4Lih4Li04LisCivguJfguYDguKHguLTguJkKK+C4l+C5guC4oeC4mQor4LiX4Lii4Lit4LiiCivguJfguKLguLIKK+C4l+C5geC4ouC4hwor4LiX4LijCivguJfguKPguIcKK+C4l+C4o+C4h+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiX4Lij4LiH4Lia4Liy4LiU4Liy4LilCivguJfguKPguJfguLbguIcKK+C4l+C4o+C4nuC4tQor4LiX4Lij4Lih4Liy4LiX4Lij4LiB4Lij4Lij4LihCivguJfguKPguKHguLLguJkKK+C4l+C4o+C4oeC4uOC4gQor4LiX4Lij4Lij4LiX4Li24LiHCivguJfguKPguKPguJsKK+C4l+C4o+C4o+C4m+C4k+C5jAor4LiX4Lij4Lij4Lib4LiT4LiwCivguJfguKPguKPguKjguJnguLAKK+C4l+C4o+C4o+C4qOC4meC4teC4ouC5jAor4LiX4Lij4LmA4Lil4LmI4Lir4LmMCivguJfguKPguKfguIcKK+C4l+C4o+C4p+C4lAor4LiX4Lij4Lin4LiU4LiX4Lij4LiHCivguJfguKPguKfguLLguKMKK+C4l+C4o+C4quC4reC4h+C4l+C4o+C4quC4uOC4oQor4LiX4Lij4Liq4Liy4LiiCivguJfguKPguKrguLjguKEKK+C4l+C4o+C4q+C4lAor4LiX4Lij4Lir4LiZCivguJfguKPguKvguKfguKUKK+C4l+C4o+C4q+C4tuC4hwor4LiX4Lij4Lir4Li24LiH4LiX4Lij4Lir4Lin4LilCivguJfguKPguKvguLkKK+C4l+C4o+C5gOC4q+C4pQor4LiX4Lij4LitCivguJfguKPguK3guKHguYLguJrguJkKK+C4l+C4o+C4reC4tuC4hwor4LiX4Lij4Lit4Li44LmJ4LihCivguJfguKPguLDguJnguIcKK+C4l+C4o+C4sOC4meC4suC4pwor4LiX4Lij4Lix4Lie4Lii4LmMCivguJfguKPguLHguKHguYDguJvguYfguJUKK+C4l+C4o+C4seC4quC4leC5jAor4LiX4Lij4Liy4LiZ4LiL4Li04Liq4LmA4LiV4Lit4Lij4LmMCivguJfguKPguLLguJoKK+C4l+C4o+C4suC4oQor4LiX4Lij4Liy4LiiCivguJfguKPguLLguKLguILguLLguKcKK+C4l+C4o+C4tOC4l+C4owor4LiX4Lij4Li44LiUCivguJfguKPguLjguKEKK+C4l+C4o+C4uOC4oeC4guC4seC4k+C4keC5jAor4LiX4Lij4Li44Lih4Lih4Lix4LiiCivguJfguKPguLjguKHguKfguLLguKrguLUKK+C4l+C4o+C4uOC4oeC5gOC4qOC4o+C4qeC4kOC5jAor4LiX4Lij4Li44Lih4Liy4Lij4Li0CivguJfguKPguLjguKHguLLguKXguLHguKIKK+C4l+C4o+C4ueC5iAor4LiX4Lik4Lip4LiO4Li1CivguJfguKUKK+C4l+C4peC4muC4oQor4LiX4Lil4Lit4Li24LiHCivguJfguKXguLLguKIKK+C4l+C4peC4tOC4lwor4LiX4Lil4Li04LiX4LiX4LiBCivguJfguKfguIcKK+C4l+C5ieC4p+C4hwor4LiX4LmI4Lin4LiH4LiX4LmI4LiyCivguJfguYjguKfguIfguJfguLPguJnguK3guIcKK+C4l+C5iOC4p+C4h+C4l+C4tQor4LiX4Lin4LiUCivguJfguKfguJTguLbguIfguKrguYwKK+C4l+C4p+C4mQor4LiX4LmJ4Lin4LiZCivguJfguYjguKfguKEKK+C4l+C5ieC4p+C4oQor4LiX4LmJ4Lin4Lih4LmGCivguJfguKfguKIKK+C4l+C5iOC4p+C4ogor4LiX4LmJ4Lin4LiiCivguJfguKfguKLguLAKK+C4l+C4p+C4reC4ogor4LiX4Lin4Lix4LiV4LiU4Li24LiH4Liq4LmMCivguJfguKfguLHguKIKK+C4l+C4p+C4sgor4LiX4Lin4LmI4LiyCivguJfguKfguLLguJrguKPguKLguLjguIQKK+C4l+C4p+C4suC4ogor4LiX4Lin4Liy4LijCivguJfguKfguLLguKPguLLguKfguJTguLUKK+C4l+C4p+C4tAor4LiX4Lin4Li04LiKCivguJfguKfguLTguJXguLXguKIKK+C4l+C4p+C4tOC4leC4teC4ouC4sgor4LiX4Lin4Li04LijCivguJfguKfguLUKK+C4l+C4p+C4teC4mwor4LiX4Lin4Li14Lib4Li1CivguJfguKgKK+C4l+C4qOC4sgor4LiX4Lio4Liy4LiH4LiE4LmMCivguJfguKrguKHguLUKK+C4l+C4quC4sgor4LiX4Lir4Lij4LiwCivguJfguKvguLLguKMKK+C4l+C4rQor4LiX4LmI4LitCivguJfguYnguK0KK+C4l+C4reC4gQor4LiX4Lit4LiHCivguJfguYjguK3guIcKK+C4l+C5ieC4reC4hwor4LiX4Lit4LiH4LiB4Lin4Liy4LinCivguJfguK3guIfguYDguITguKPguLfguK0KK+C4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiX4Lit4LiH4LmA4Lic4Li34Lit4LiBCivguJfguK3guIfguJ7guKPguLDguILguLjguJkKK+C4l+C4reC4h+C4nuC4peC4uAor4LiX4LmJ4Lit4LiH4Lie4Lil4Li4CivguJfguK3guIfguJ7guLHguJnguIrguYjguLLguIcKK+C4l+C4reC4h+C4nuC4seC4meC4lOC4uOC4pQor4LiX4Lit4LiH4Lig4Li5CivguJfguK3guIfguKHguYnguKfguJkKK+C4l+C4reC4h+C4ouC5ieC4reC4ogor4LiX4Lit4LiH4Lil4Li04LiZCivguJfguK3guIfguKvguKXguLLguIcKK+C4l+C4reC4h+C5guC4q+C4peC4hwor4LiX4Lit4LiH4Lit4Li44LmE4LijCivguJfguK3guJQKK+C4l+C4reC4mQor4LiX4LmI4Lit4LiZCivguJfguK3guJnguIvguLTguKUKK+C4l+C4reC4n+C4n+C4teC5iAor4LiX4Lit4LihCivguJfguYjguK3guKHguYYKK+C4l+C4reC4ogor4LiX4Lit4Lij4LmM4LiZ4Liy4LmC4LiUCivguJfguK3guYDguKPguLXguKLguKEKK+C4l+C4sAor4LiX4Liw4LiH4Lix4LiZCivguJfguLDguJfguYjguLLguKcKK+C4l+C4sOC5gOC4l+C4teC4ouC4lAor4LiX4Liw4LiZ4LiHCivguJfguLDguJnguJkKK+C4l+C4sOC4meC4sAor4LiX4Liw4LiZ4LiyCivguJfguLDguJnguLLguJkKK+C4l+C4sOC4meC4uAor4LiX4Liw4Lia4Li5CivguJfguLDguYDguJrguLXguKLguJkKK+C4l+C4sOC4oeC4seC4lOC4l+C4sOC5geC4oeC4hwor4LiX4Liw4Lih4Li24LiZCivguJfguLDguKHguLfguYjguJkKK+C4l+C4sOC5geC4oeC5iOC4hwor4LiX4Liw4Lii4Liy4LiX4Liw4LmB4Lii4LmB4LiqCivguJfguLDguKLguLLguJkKK+C4l+C4sOC5gOC4ouC4reC4l+C4sOC4ouC4suC4mQor4LiX4Liw4LmB4LiiCivguJfguLDguKPguYjguK3guJfguLDguYHguKPguYgKK+C4l+C4sOC4peC4p+C4hwor4LiX4Liw4Lil4Lit4LiBCivguJfguLDguKXguYjguK3guJfguLDguKXguYjguLIKK+C4l+C4sOC4peC4seC4gQor4LiX4Liw4Lil4Lix4LiB4LiX4Liw4LmB4Lil4LiHCivguJfguLDguKXguLLguKIKK+C4l+C4sOC4peC4tOC5iOC4mQor4LiX4Liw4Lil4Li24LmI4LiHCivguJfguLDguKXguLgKK+C4l+C4sOC4peC4uOC4l+C4sOC4peC4suC4lAor4LiX4Liw4LmA4LilCivguJfguLDguYDguKXguYnguJkKK+C4l+C4sOC5gOC4peC4suC4sAor4LiX4Liw4Lin4Liy4LiiCivguJfguLDguYDguKfguJkKK+C4l+C4seC4gQor4LiX4Lix4LiB4LiC4LmMCivguJfguLHguIHguILguLTguI0KK+C4l+C4seC4geC4guC4tOC4kwor4LiX4Lix4LiB4LiC4Li04LiT4LiyCivguJfguLHguIHguILguLTguJPguLLguJrguJYKK+C4l+C4seC4geC4guC4tOC4k+C4suC4p+C4seC4jwor4LiX4Lix4LiB4LiC4Li04LmC4LiT4LiX4LiBCivguJfguLHguIHguILguLTguYTguJPguKLguJrguLjguITguITguKUKK+C4l+C4seC4geC4l+C4rQor4LiX4Lix4LiB4LiX4Li04LiZCivguJfguLHguIHguKnguLAKK+C4l+C4seC4geC4qeC4sgor4LiX4Lix4LiB4Lip4Li04LiTCivguJfguLHguIHguKnguLTguJPguLIKK+C4l+C4seC4hOC4mOC5jAor4LiX4Lix4LiHCivguJfguLHguYjguIcKK+C4l+C4seC5ieC4hwor4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKfguLXguYnguJfguLHguIfguKfguKUKK+C4l+C4seC4h+C4quC5gOC4leC4mQor4LiX4Lix4LiT4LiR4LiB4Lij4Lij4LihCivguJfguLHguJPguJHguIbguLLguJUKK+C4l+C4seC4k+C4keC4mOC4owor4LiX4Lix4LiT4LiR4LiZ4Liy4Lii4LiBCivguJfguLHguJPguJHguJnguLTguITguKEKK+C4l+C4seC4k+C4keC4meC4teC4leC4tAor4LiX4Lix4LiT4LiR4LmM4Lia4LiZCivguJfguLHguJPguJHguJvguLLguKjguIEKK+C4l+C4seC4k+C4keC4oOC4seC4ogor4LiX4Lix4LiT4LiR4Lih4Li44LiCCivguJfguLHguJPguJHguKLguLLguJXguKPguLIKK+C4l+C4seC4k+C4keC4p+C4tOC4l+C4ouC4sgor4LiX4Lix4LiT4LiR4Liq4LiW4Liy4LiZCivguJfguLHguJPguJHguKrguKLguLLguKEKK+C4l+C4seC4k+C4keC4sAor4LiX4Lix4LiT4LiR4Li04LiB4LiyCivguJfguLHguJPguJHguLTguKHguLIKK+C4l+C4seC4k+C4keC4tQor4LiX4Lix4LiT4LiR4Li14Lia4LiXCivguJfguLHguJQKK+C4l+C4seC4lOC4l+C4sgor4LiX4Lix4LiVCivguJfguLHguJkKK+C4l+C4seC4meC4leC5jAor4LiX4Lix4LiZ4LiV4Li04LiZCivguJfguLHguJnguJXguLUKK+C4l+C4seC4meC4mOC5jAor4LiX4Lix4LiaCivguJfguLHguJrguYDguIHguKnguJXguKMKK+C4l+C4seC4muC4l+C4tOC4oQor4LiX4Lix4Lia4LmA4Lil4LmH4LiBCivguJfguLHguJrguKrguKHguLTguIfguITguKXguLIKK+C4l+C4seC4mwor4LiX4Lix4Lib4LiZCivguJfguLHguJ4KK+C4l+C4seC4nuC4nuC4sAor4LiX4Lix4Lie4Lie4Li1CivguJfguLHguKHguKHguLAKK+C4l+C4seC5iOC4pwor4LiX4Lix4LioCivguJfguLHguKjguJnguYwKK+C4l+C4seC4qOC4meC4sAor4LiX4Lix4Lio4LiZ4LiyCivguJfguLHguKjguJnguLXguKLguYwKK+C4l+C4seC4qOC5hOC4meC4ogor4LiX4Lix4Liq4LiZ4Liy4LiZ4Li44LiV4Lij4Li04Lii4LiwCivguJfguLHguKzguKsKK+C4l+C4seC4rOC4q+C4tOC4geC4o+C4k+C5jAor4LiX4Lix4Lis4Lir4Li14LiB4Lij4Lij4LihCivguJfguLIKK+C4l+C5iOC4sgor4LiX4LmJ4LiyCivguJfguLLguIEKK+C4l+C4suC4hwor4LiX4LmJ4Liy4LiHCivguJfguLLguJDguLAKK+C4l+C4suC4kOC4tOC4geC4sAor4LiX4Liy4LiS4LiwCivguJfguLLguJLguLTguIHguLAKK+C4l+C4suC4mQor4LiX4LmI4Liy4LiZCivguJfguLLguJnguIHguLHguJPguJHguYwKK+C4l+C4suC4meC4geC4suC4oQor4LiX4Liy4LiZ4LiV4LmMCivguJfguLLguJnguJXguLDguKfguLHguJkKK+C4l+C4suC4meC4mOC4o+C4o+C4oQor4LiX4Liy4LiZ4Lia4LiU4Li1CivguJfguLLguJnguJrguLLguKPguKHguLUKK+C4l+C4suC4meC4ngor4LiX4Liy4LiZ4Lio4Li14LilCivguJfguLLguJnguKrguKHguLLguJrguLHguJXguLQKK+C4l+C4suC4meC4suC4mOC4tOC4muC4lOC4tQor4LiX4Liy4LiaCivguJfguLLguKEKK+C4l+C5iOC4suC4oeC4geC4peC4suC4hwor4LiX4Liy4Lih4Lij4Li04LiBCivguJfguLLguKIKK+C4l+C5ieC4suC4ogor4LiX4Liy4Lii4LiBCivguJfguLLguKLguLHguIoKK+C4l+C4suC4ouC4sgor4LiX4Liy4Lii4Liy4LiUCivguJfguLLguKLguLLguJcKK+C4l+C4suC4o+C4gQor4LiX4Liy4Lij4LmM4LiL4Liy4LiZCivguJfguLLguKPguJ7guLUKK+C4l+C4suC4o+C4tOC4geC4sgor4LiX4Liy4Lij4Li4CivguJfguLLguKPguLjguJMKK+C4l+C4suC4o+C4uOC4k+C4geC4o+C4o+C4oQor4LiX4Liy4LinCivguJfguYjguLLguKcKK+C4l+C5ieC4suC4pwor4LiX4Liy4LipCivguJfguLLguKoKK+C4l+C4suC4quC4tQor4LiX4LizCivguJfguLPguIfguJkKK+C4l+C4s+C4meC4mgor4LiX4Liz4LiZ4Lin4LiiCivguJfguLPguJnguK3guIcKK+C4l+C4s+C4meC4suC4ogor4LiX4Liz4LiZ4Li4CivguJfguLPguJnguLnguKUKK+C4l+C4s+C5gOC4meC4sgor4LiX4Liz4LmA4LiZ4Li14Lii4LiaCivguJfguLPguYDguJnguLXguKLguKEKK+C4l+C4s+C4oeC4seC4hwor4LiX4Liz4LmE4LihCivguJfguLPguKXguLLguKIKK+C4l+C4s+C5gOC4pQor4LiX4Liz4Lin4LiZCivguJfguLTguITguLHguKHguJ7guKMKK+C4l+C4tOC4huC4seC4oeC4nuC4owor4LiX4Li04LmJ4LiHCivguJfguLTguIfguYDguIjguK3guKPguYwKK+C4l+C4tOC5ieC4h+C4luC5iOC4reC4mQor4LiX4Li04LmJ4LiH4LiX4Li54LiUCivguJfguLTguIoKK+C4l+C4tOC4j+C4kOC4iuC4uOC4geC4o+C4o+C4oQor4LiX4Li04LiP4LiQ4LiwCivguJfguLTguI/guJDguLLguJnguLjguITguJXguLQKK+C4l+C4tOC4kOC4tAor4LiX4Li04LiUCivguJfguLTguJUKK+C4l+C4tOC4mQor4LiX4Li04LiZ4Liy4LiXCivguJfguLTguJ4KK+C4l+C4tOC4nuC4ouC5jAor4LiX4Li04Lie4LiyCivguJfguLTguKEKK+C4l+C4tOC5iOC4oQor4LiX4Li04Lih4LiX4Lit4LiHCivguJfguLTguKcKK+C4l+C4tOC4p+C4h+C4hOC4lQor4LiX4Li04Lin4LiX4Lix4Lio4LiZ4LmMCivguJfguLTguKfguKrguLAKK+C4l+C4tOC4p+C4sgor4LiX4Li04LioCivguJfguLTguKjguLIKK+C4l+C4tQor4LiX4Li14LmICivguJfguLXguJsKK+C4l+C4teC4oQor4LiX4Li14Lin4Li1CivguJfguLXguYDguK3guJnguJfguLUKK+C4l+C4tuC4gQor4LiX4Li24LmI4LiHCivguJfguLbguYnguIcKK+C4l+C4tuC4lOC4l+C4t+C4rQor4LiX4Li24LiZ4LiX4Li24LiBCivguJfguLbguJoKK+C4l+C4tuC4oQor4LiX4Li24LmI4LihCivguJfguLfguYjguK0KK+C4l+C4uAor4LiX4Li44LiBCivguJfguLjguIHguIIKK+C4l+C4uOC4geC4guC5jAor4LiX4Li44LiB4LiC4Lix4LiB4Lip4Lix4LiiCivguJfguLjguIHguI8KK+C4l+C4uOC4geC4qeC4lOC4owor4LiX4Li44LiB4LiwCivguJfguLjguIHguLHguIcKK+C4l+C4uOC4geC4ueC4pQor4LiX4Li44LiE4LiV4LiwCivguJfguLjguITguJXguLQKK+C4l+C4uOC5iOC4hwor4LiX4Li44LmJ4LiHCivguJfguLjguIfguIfguLAKK+C4l+C4uOC4h+C5gOC4l+C4hwor4LiX4Li44LiI4LiI4Li04LiT4LiT4LiwCivguJfguLjguIjguKPguLTguJUKK+C4l+C4uOC4j+C4kOC4sAor4LiX4Li44LiP4LiQ4Li44Lil4Lil4LiwCivguJfguLjguJQKK+C4l+C4uOC4leC4p+C4tOC4peC4seC4oeC4nuC4tOC4leC4oeC4suC4peC4sgor4LiX4Li44LiV4Li04Lii4Liy4Liq4Liy4Lis4LirCivguJfguLjguJfguKPguKPguKjguJnguJnguLTguKLguKEKK+C4l+C4uOC4mQor4LiX4Li44LmI4LiZCivguJfguLjguJnguJnguLTguKHguLTguJUKK+C4l+C4uOC4meC4tOC4ouC4oQor4LiX4Li44LiaCivguJfguLjguJrguJfguLkKK+C4l+C4uOC4m+C4m+C4seC4jeC4jeC4sgor4LiX4Li44Lie4Lie4Lij4Lij4LiTCivguJfguLjguJ7guJ7guKUKK+C4l+C4uOC4nuC4nuC4peC4oOC4suC4ngor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lig4Lix4LiiCivguJfguLjguJ7guKDguLTguIHguILguLHguJnguJTguKPguIHguLHguJsKK+C4l+C4uOC4oQor4LiX4Li44LmI4LihCivguJfguLjguYnguKEKK+C4l+C4uOC4oeC5guC4mQor4LiX4Li44LiiCivguJfguLjguYnguKIKK+C4l+C4uOC4o+C4mQor4LiX4Li44Lij4Lix4LiW4Lii4LiyCivguJfguLjguKPguLHguKgKK+C4l+C4uOC4o+C4suC4hOC4oQor4LiX4Li44Lij4Liy4LiI4Liy4LijCivguJfguLjguKPguLLguJjguKfguLIKK+C4l+C4uOC5gOC4o+C4qAor4LiX4Li44LmA4Lij4Li14Lii4LiZCivguJfguLjguYDguKPguLXguKLguJnguYHguILguIEKK+C4l+C4uOC4peC4seC4geC4l+C4uOC5gOC4pQor4LiX4Li44LmA4Lil4LiyCivguJfguLjguKfguLTguIrguLLguJkKK+C4l+C4uOC4p+C4tOC4mAor4LiX4Li44Lio4Li14LilCivguJfguLjguKrguKrguLAKK+C4l+C4uOC4quC4quC4teC4pQor4LiX4Li5CivguJfguLnguYgKK+C4l+C4ueC5iQor4LiX4Li54LmI4LiL4Li14LmJCivguJfguLnguJUKK+C4l+C4ueC4leC4suC4meC4uOC4l+C4ueC4lQor4LiX4Li54LiZCivguJfguLnguJoKK+C4l+C4ueC4oQor4LiX4Li54LmA4Lij4LiZ4Li04LiX4Liy4LiZCivguJfguLnguKUKK+C4l+C4ueC5gOC4peC4teC4ouC4oQor4LiX4Li54Lip4LiBCivguYDguJcKK+C5gOC4l+C5iAor4LmA4LiX4LiE4LiZ4Li04LiECivguYDguJfguITguJnguLXguYDguIvguLXguKLguKEKK+C5gOC4l+C4hOC5guC4meC5guC4peC4ouC4tQor4LmA4LiX4LiHCivguYDguJfguYnguIcKK+C5gOC4l+C5ieC4h+C5gOC4leC5ieC4hwor4LmA4LiX4LmJ4LiH4LiX4Li54LiUCivguYDguJfguYfguIgKK+C5gOC4l+C4meC4meC4tOC4qgor4LmA4LiX4LmA4Lia4Li04Lil4LmA4LiX4LiZ4LiZ4Li04LiqCivguYDguJfguJsKK+C5gOC4l+C4ngor4LmA4LiX4Lie4LiX4Liy4Lij4Li5CivguYDguJfguJ7guJfguLLguYLguKMKK+C5gOC4l+C4nuC4sgor4LmA4LiX4Lie4Li04LiZCivguYDguJfguJ7guLUKK+C5gOC4l+C4nuC4teC4m+C4seC4geC4qeC4tQor4LmA4LiX4LmC4LieCivguYDguJfguKHguJvguLjguKPguLAKK+C5gOC4l+C4o+C4tOC4lAor4LmA4LiX4Lil4Lil4Li54LmA4Lij4Li14Lii4LihCivguYDguJfguKfguJTguLIKK+C5gOC4l+C4p+C4meC4sAor4LmA4LiX4Lin4Lig4Liy4Lin4LiwCivguYDguJfguKfguKPguLAKK+C5gOC4l+C4p+C4p+C4suC4iOC4tOC4geC4sAor4LmA4LiX4Lin4Lin4Liy4LiI4Li04Liq4Lij4LiT4LiE4Lih4LiZ4LmMCivguYDguJfguKfguKgKK+C5gOC4l+C4p+C4qQor4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMCivguYDguJfguKfguK0KK+C5gOC4l+C4p+C4seC4jQor4LmA4LiX4Lin4Lix4LiZCivguYDguJfguKfguLUKK+C5gOC4l+C4qAor4LmA4LiX4Lio4LiBCivguYDguJfguKjguJnguYwKK+C5gOC4l+C4qOC4meC4sgor4LmA4LiX4Lio4LiwCivguYDguJfguKvguYwKK+C5gOC4l+C5iOC4q+C5jAor4LmA4LiX4LmI4LitCivguYDguJfguYnguK0KK+C5gOC4l+C4reC4jQor4LmA4LiX4Lit4LihCivguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4l+C4reC4o+C5jOC5guC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmA4LiX4Lit4Liw4LiX4LiwCivguYDguJfguLIKK+C5gOC4l+C5iOC4sgor4LmA4LiX4LmJ4LiyCivguYDguJfguYnguLLguIrguYnguLLguIcKK+C5gOC4l+C5iOC4suC4oeC4seC4gQor4LmA4LiX4LmJ4Liy4Lii4Liy4Lii4Lih4LmI4Lit4LihCivguYDguJfguYjguLLguKPguLbguIcKK+C5gOC4l+C5ieC4suC4quC4suC4mQor4LmA4LiX4Liy4Liw4Lir4LmMCivguYDguJfguLTguIEKK+C5gOC4l+C4tOC5iOC4hwor4LmA4LiX4Li04LiH4Lia4Lit4LiHCivguYDguJfguLTguJQKK+C5gOC4l+C4tOC4mQor4LmA4LiX4Li04LiaCivguYDguJfguLTguJrguYYKK+C5gOC4l+C4tOC5ieC4oQor4LmA4LiX4Li14Lii4LiHCivguYDguJfguLXguKLguJkKK+C5gOC4l+C4teC5ieC4ouC4mQor4LmA4LiX4Li14Lii4LiaCivguYDguJfguLXguKLguKMKK+C5gOC4l+C4teC5ieC4ouC4owor4LmA4LiX4Li14Lii4LinCivguYDguJfguLXguYjguKLguKcKK+C5gOC4l+C4t+C4rQor4LmA4LiX4Li34LmI4LitCivguYDguJfguLfguYnguK0KK+C5gOC4l+C4t+C4reC4gQor4LmA4LiX4Li34Lit4LiB4LmA4LiC4LiyCivguYDguJfguLfguK3guIHguYDguJbguLLguYDguKvguKXguYjguLLguIHguK0KK+C5gOC4l+C4t+C4reC4mQor4LmB4LiX4LmICivguYHguJfguYkKK+C5geC4l+C5h+C4geC4i+C4teC5iAor4LmB4LiX4LiHCivguYHguJfguYjguIcKK+C5geC4l+C5ieC4hwor4LmB4LiX4LmH4LiH4LiB4LmM4LiZ4LmJ4LizCivguYHguJfguIfguJfguKfguKIKK+C5geC4l+C4h+C4p+C4tOC4quC4seC4ogor4LmB4LiX4LiV4Lii4LmMCivguYHguJfguJkKK+C5geC4l+C5iOC4mQor4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYHguJfguJnguJfguLLguKXguLHguKEKK+C5geC4l+C4mgor4LmB4LiX4Lij4LiBCivguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5geC4l+C4peC5gOC4peC4teC4ouC4oQor4LmB4LiX4LiwCivguYLguJcKK+C5guC4l+C5iAor4LmC4LiX4LiB4LmA4LiX4LiBCivguYLguJfguIfguYYKK+C5guC4l+C4h+C5gOC4l+C4hwor4LmC4LiX4LiT4LiwCivguYLguJfguJjguIEKK+C5guC4l+C4mQor4LmC4LiX4LiZ4LmC4LiX4LmICivguYLguJfguKHguJnguLHguKoKK+C5guC4l+C4o+C4kwor4LmC4LiX4Lij4LihCivguYLguJfguKPguLLguKfguLTguIEKK+C5guC4l+C4peC4sgor4LmC4LiX4LipCivguYLguJfguKnguIHguKPguJPguYwKK+C5guC4l+C4qeC4hOC4uOC4kwor4LmC4LiX4Lip4LiV4Lij4Lix4LiiCivguYLguJfguKnguJfguLHguJPguJHguYwKK+C5guC4l+C4qeC5guC4nuC4ogor4LmC4LiX4Lip4Lih4Lir4Lix4LiZ4LiV4LmMCivguYLguJfguKnguLIKK+C5guC4l+C4quC4sAor4LmC4LiX4LmC4LiqCivguYLguJfguKvguKzguLAKK+C5guC4l+C4q+C4rOC4tOC4meC4tQor4LmE4LiXCivguYTguJfguYkKK+C5hOC4l+C4geC4rQor4LmE4LiX4LmA4LiX4LmA4LiZ4Li14Lii4LihCivguYTguJfguJ/guK3guKLguJTguYwKK+C5hOC4l+C4ogor4LmE4LiX4Lii4LiY4Lij4Lij4LihCivguYTguJfguKMKK+C5hOC4l+C4o+C4reC4ouC4lOC5jAor4LmE4LiX4Lin4LiwCivguJgKK+C4mOC4hwor4LiY4LiH4LiB4LmMCivguJjguIoKK+C4mOC4iuC4tQor4LiY4LiV4Lij4LiQCivguJjguJkKK+C4mOC4meC4seC4hwor4LiY4LiZ4Liy4LiE4Liy4LijCivguJjguJnguLLguJPguLHguJXguLQKK+C4mOC4meC4suC4leC4oQor4LiY4LiZ4Liy4LiY4Liy4LijCivguJjguJnguLLguJjguLTguJrguJTguLUKK+C4mOC4meC4suC4mOC4tOC4mwor4LiY4LiZ4Liy4LiY4Li04Lib4Lix4LiV4Lii4LmMCivguJjguJnguLLguJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4mOC4meC4suC4o+C4seC4geC4qeC5jAor4LiY4LiZ4Li04LiVCivguJjguJnguLTguKnguJDguLIKK+C4mOC4meC4uAor4LiY4LiZ4Li5CivguJjguYDguJnguKgKK+C4mOC5gOC4meC4qOC4p+C4owor4LiY4LmC4LiZ4Lib4LiI4Lix4LiiCivguJjguYTguJnguKjguKfguKPguKPguKLguYwKK+C4mOC4oQor4LiY4Lih4LiB4Lij4LiBCivguJjguKMKK+C4mOC4o+C4hwor4LiY4Lij4LiTCivguJjguKPguJPguLTguJkKK+C4mOC4o+C4k+C4tOC4meC4l+C4o+C5jAor4LiY4Lij4LiT4Li04LioCivguJjguKPguJPguLTguKjguKMKK+C4mOC4o+C4k+C4tOC4qOC4p+C4o+C5jAor4LiY4Lij4LiT4Li1CivguJjguKPguKHguLLguJkKK+C4mOC4o+C4o+C4oQor4LiY4Lij4Lij4Lih4LiwCivguJjguKPguLIKK+C4mOC4o+C4tOC4qeC4leC4o+C4tQor4LiY4LmA4Lij4LioCivguJjguYDguKPguKnguJXguKPguLUKK+C4mOC4p+C4seC4igor4LiY4Lix4LiH4LiBCivguJjguLHguIoKK+C4mOC4seC4jQor4LiY4Lix4LiZ4Lii4LiyCivguJjguLHguJnguKLguLLguKfguLLguJcKK+C4mOC4seC4meC4p+C4suC4hOC4oQor4LiY4Lix4Lih4Lih4LiwCivguJjguLLguJTguLIKK+C4mOC4suC4leC4o+C4tQor4LiY4Liy4LiV4Lin4Liy4LiB4LijCivguJjguLLguJXguLgKK+C4mOC4suC4leC4uOC4oeC4oeC4tOC4quC4quC4sgor4LiY4Liy4LiZ4Li04LiZCivguJjguLLguJnguLTguJnguJfguKPguYwKK+C4mOC4suC4meC4tQor4LiY4Liy4LijCivguJjguLLguKPguIHguLPguJnguLHguKUKK+C4mOC4suC4o+C4hOC4s+C4meC4seC4pQor4LiY4Liy4Lij4LiTCivguJjguLLguKPguJPguLAKK+C4mOC4suC4o+C4k+C4sgor4LiY4Liy4Lij4LiyCivguJjguLLguKnguJXguKPguLUKK+C4mOC4s+C4oeC4o+C4h+C4hOC5jAor4LiY4Liz4Lij4LiHCivguJjguLTguJTguLIKK+C4mOC4tOC4leC4tAor4LiY4Li14Lij4LiwCivguJjguLjguIoKK+C4mOC4uOC4lOC4h+C4hOC5jAor4LiY4Li44LiVCivguJjguLjguJXguJXguLAKK+C4mOC4uOC4oQor4LiY4Li44Lih4LiwCivguJjguLjguKPguLAKK+C4mOC4uOC4o+C4swor4LiY4Li44Lil4Li1CivguJjguLjguKvguKPguYjguLMKK+C4mOC4ueC4mwor4LmA4LiY4LiZ4Li4CivguYDguJjguK0KK+C5gOC4mOC4teC4ouC4owor4LmC4LiY4LmICivguYLguJjguKfguJkKK+C4mQor4LiZ4LiBCivguJnguIHguIHguKPguLDguJfguLjguIcKK+C4meC4geC4uOC4pQor4LiZ4LiCCivguJnguIQKK+C4meC4hOC4owor4LiZ4LiE4Lij4LiB4Lix4LiT4LiR4LmMCivguJnguITguKPguJrguLLguKUKK+C4meC4hOC4o+C4oeC4seC4k+C4keC4meC4sgor4LiZ4LiE4Lij4Lij4Lix4LiQCivguJnguITguKPguKfguLLguKrguLUKK+C4meC4hOC4o+C5guC4quC4oOC4tOC4k+C4tQor4LiZ4LiE4Lij4LmC4Liq4LmA4Lig4LiT4Li1CivguJnguITguKPguKvguKXguKfguIcKK+C4meC4hOC4o+C4suC4l+C4owor4LiZ4LiE4Lij4Li04LiZ4LiX4Lij4LmMCivguJnguITguYDguKPguKgKK+C4meC4hwor4LiZ4LiH4LiE4Li44LiQCivguJnguJcKK+C4meC4l+C4tQor4LiZ4LiZ4LiV4Lij4LiyCivguJnguJnguJfguYwKK+C4meC4meC4l+C4gQor4LiZ4LiZ4LiX4Lij4Li1CivguJnguJnguJfguKXguLUKK+C4meC4meC4l+C4tAor4LiZ4LiaCivguJnguJvguLjguIfguKrguIHguKXguLTguIfguITguYwKK+C4meC4m+C4uOC4h+C4quC4geC4peC4tuC4h+C4hOC5jAor4LiZ4Lie4LmA4LiB4LiV4LiZ4LmMCivguJnguJ7guYDguIHguYnguLIKK+C4meC4nuC4hOC4uOC4kwor4LiZ4Lie4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguJ7guJnguLTguJUKK+C4meC4nuC4m+C4juC4pQor4LiZ4Lie4Lie4LilCivguJnguJ7guJ7guKfguIcKK+C4meC4nuC4nuC4seC4mQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMCivguJnguJ7guKjguIEKK+C4meC4nuC4qOC4ueC4pQor4LiZ4Lig4LiB4Liy4LiZ4LiV4LmMCivguJnguKDguITguIoKK+C4meC4oOC4hOC4leC4tAor4LiZ4Lig4LiI4LijCivguJnguKDguIjguLHguIHguKnguLgKK+C4meC4oOC4lOC4pQor4LiZ4Lig4LiX4Lin4Li14LibCivguJnguKDguJvguKPguLLguJMKK+C4meC4oOC4oeC4k+C4keC4pQor4LiZ4Lig4Lih4LiT4Li1CivguJnguKDguKHguLHguKIKK+C4meC4oOC4o+C4ueC4mwor4LiZ4Lig4LmA4Lij4LiT4Li5CivguJnguKDguKfguLTguJbguLUKK+C4meC4oOC4qOC4ueC4pQor4LiZ4Lig4Liq4Li04LiZ4LiY4Li44LmMCivguJnguKDguLIKK+C4meC4oOC4suC4geC4suC4qAor4LiZ4Lig4Liy4Lil4Lix4LiiCivguJnguKEKK+C4meC4oeC4meC4suC4mQor4LiZ4Lih4LiwCivguJnguKHguLHguIHguIHguLLguKMKK+C4meC4oeC4seC4quC4geC4suC4owor4LiZ4Lih4Liy4LiLCivguJnguKLguJnguLAKK+C4meC4ouC4meC4sgor4LiZ4Lii4LiwCivguJnguKLguLHguIHguKnguYwKK+C4meC4o+C4gQor4LiZ4Lij4LiB4Liy4LijCivguJnguKPguLLguJjguLTguJsKK+C4meC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4Lij4Li04LioCivguJnguKPguLTguKjguKfguKMKK+C4meC4o+C4tQor4LiZ4LmA4Lij4LiZ4LiX4Lij4Liq4Li54LijCivguJnguYDguKPguKgKK+C4meC5gOC4o+C4qOC4p+C4owor4LiZ4LmA4Lij4Lio4Lin4Lij4LmM4LiK4LiZ4LiK4LmJ4Liy4LiHCivguJnguYDguKPguKjguLnguKMKK+C4meC4pOC5guC4huC4qQor4LiZ4Lik4LiV4Lii4LmMCivguJnguKTguJnguLLguJcKK+C4meC4pOC4nuC4suC4mQor4LiZ4Lik4Lih4LilCivguJnguKTguKHguLLguJMKK+C4meC4pOC4oeC4tOC4lQor4LiZ4Lil4Liy4LiPCivguJnguKXguLTguJkKK+C4meC4p+C4geC4sAor4LiZ4Lin4LiUCivguJnguKfguJnguLTguKLguLLguKIKK+C4meC4p+C4oQor4LiZ4LmI4Lin4LihCivguJnguKfguKIKK+C4meC4p+C4pQor4LiZ4Lin4Lit4Lij4Lir4Liy4LiX4Li04LiE4Li44LiTCivguJnguKfguLHguIfguITguKrguLHguJXguJbguLjguKjguLLguKrguJnguYwKK+C4meC4p+C4suC4o+C4sAor4LiZ4Lin4Liy4Lit4Lij4Lir4Liy4LiY4Li04LiE4Li44LiTCivguJnguKvguLLguJTguIEKK+C4meC4q+C4suC4mQor4LiZ4Lir4Liy4Lij4Li4CivguJnguKvguLjguJUKK+C4meC4rAor4LiZ4Lis4LibCivguJnguK0KK+C4meC4reC4gQor4LiZ4Lit4LiHCivguJnguYjguK3guIcKK+C4meC5ieC4reC4hwor4LiZ4LmI4Lit4LiH4LmB4LiZ4LmI4LiHCivguJnguK3guJUKK+C4meC4reC4mQor4LiZ4Lit4LiaCivguJnguYnguK3guKEKK+C4meC5ieC4reC4ogor4LiZ4LmJ4Lit4Lii4Lir4LiZ4LmI4LiyCivguJnguYnguK3guKLguYLguKvguJnguYjguIcKK+C4meC4sAor4LiZ4Liw4LmB4LiZ4LmI4LiHCivguJnguLHguIEKK+C4meC4seC4geC4geC4sAor4LiZ4Lix4LiB4LiC4Lix4LiVCivguJnguLHguIHguIfguLLguJkKK+C4meC4seC4geC4leC4sAor4LiZ4Lix4LiB4LijCivguJnguLHguIHguKnguLHguJXguKMKK+C4meC4seC4geC4quC4o+C4suC4igor4LiZ4Lix4LiCCivguJnguLHguIQKK+C4meC4seC4hOC4hOC4sAor4LiZ4Lix4LiHCivguJnguLHguYjguIcKK+C4meC4seC4h+C4hOC4seC4pQor4LiZ4Lix4LiICivguJnguLHguI8KK+C4meC4seC4j+C4gQor4LiZ4Lix4LiRCivguJnguLHguJQKK+C4meC4seC4lOC4lOC4sgor4LiZ4Lix4LiV4LiW4Li44LmMCivguJnguLHguYjguJkKK+C4meC4seC5ieC4mQor4LiZ4Lix4LiZ4LiX4LiX4Liy4Lii4Li1CivguJnguLHguJnguJfguJnguYwKK+C4meC4seC4meC4l+C4meC4suC4geC4suC4owor4LiZ4Lix4LiZ4LiX4Li0CivguJnguLHguJoKK+C4meC4seC4muC4m+C4o+C4sOC4quC4sgor4LiZ4Lix4Lia4Lib4Lij4Liw4Liq4Liy4Lit4Liw4LmE4LijCivguJnguLHguKIKK+C4meC4seC4ouC4meC5jAor4LiZ4Lix4Lii4LiZ4LiyCivguJnguLHguKcKK+C4meC4sgor4LiZ4LmI4LiyCivguJnguYnguLIKK+C4meC4suC4gQor4LiZ4Liy4LiB4Lia4Li44LiUCivguJnguLLguIHguLLguKrguLLguKvguKPguLUKK+C4meC4suC4hAor4LiZ4Liy4LiE4LijCivguJnguLLguITguLIKK+C4meC4suC4hOC4suC4p+C5guC4peC4gQor4LiZ4Liy4LiE4Liy4Liq4LiZ4LmMCivguJnguLLguITguLTguJnguJfguKPguYwKK+C4meC4suC4hOC4tQor4LiZ4Liy4LmA4LiE4LiZ4LiX4Lij4LmMCivguJnguLLguYDguITguKgKK+C4meC4suC5gOC4hOC4qOC4p+C4owor4LiZ4Liy4LmC4LiE4Lij4LiE4Li04LiZ4LiX4LijCivguJnguLLguIcKK+C4meC4suC4h+C4meC4p+C4pQor4LiZ4Liy4LiH4LiZ4Li54LiZCivguJnguLLguIfguYHguKLguYnguKEKK+C4meC4suC4h+C4o+C4oQor4LiZ4Liy4LiH4LmA4Lil4LmH4LiUCivguJnguLLguIfguYDguKXguLTguYnguIcKK+C4meC4suC4h+C4q+C4h+C4quC5jAor4LiZ4Liy4LiH4Lit4Liy4LiiCivguJnguLLguIfguYHguK3guYjguJkKK+C4meC4suC4i+C4sgor4LiZ4Liy4LiL4Li1CivguJnguLLguI8KK+C4meC4suC4j+C4gQor4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguJnguLLguI/guJTguJnguJXguKPguLUKK+C4meC4suC4j+C4qOC4tOC4peC4m+C5jAor4LiZ4Liy4LiUCivguJnguLLguJYKK+C4meC4suC4lwor4LiZ4Liy4LiX4Li1CivguJnguLLguJkKK+C4meC5iOC4suC4mQor4LiZ4Liy4LiZ4Lix4LiE4Lij4LiqCivguJnguLLguJnguLHguJXguKcKK+C4meC4suC4meC4seC4m+C4geC4suC4owor4LiZ4Liy4LiZ4LiyCivguJnguLLguYDguJnguIEKK+C4meC4suC4mgor4LiZ4Liy4Lig4Li0CivguJnguLLguKDguLUKK+C4meC4suC4oQor4LiZ4Liy4Lih4Lia4Lix4LiV4LijCivguJnguLLguKHguJvguLLguIHguIHguLIKK+C4meC4suC4oeC5geC4neC4hwor4LiZ4Liy4Lih4Liq4LiB4Li44LilCivguJnguLLguKIKK+C4meC5iOC4suC4ogor4LiZ4Liy4Lii4LiBCivguJnguLLguKLguLTguIHguLIKK+C4meC4suC4o+C4lwor4LiZ4Liy4Lij4LiyCivguJnguLLguKPguLLguKLguJPguYwKK+C4meC4suC4o+C4tQor4LiZ4Liy4LmA4Lij4LioCivguJnguLLguKXguLTguKfguLHguJkKK+C4meC4suC4peC4tQor4LiZ4Liy4LinCivguJnguYnguLLguKcKK+C4meC4suC4p+C4sgor4LiZ4Liy4Lin4Li04LiBCivguJnguLLguKfguLTguJkKK+C4meC4suC4p+C4tQor4LiZ4Liy4LmA4Lin4LioCivguJnguLLguKgKK+C4meC4suC4quC4meC4sAor4LiZ4Liy4Liq4LiyCivguJnguLLguKrguLTguIEKK+C4meC4suC4rOC4tOC4geC4sgor4LiZ4Liy4Lis4Li04LmA4LiBCivguJnguLLguKzguLUKK+C4meC4swor4LiZ4LmJ4LizCivguJnguYnguLPguJXguLDguIHguLkKK+C4meC5ieC4s+C4leC4sOC5guC4gQor4LiZ4Li0CivguJnguLTguIHguILguLAKK+C4meC4tOC4geC4guC4seC4meC4leC5jAor4LiZ4Li04LiB4LmA4LiC4LibCivguJnguLTguIHguKMKK+C4meC4tOC4geC4o+C4reC4ouC4lOC5jAor4LiZ4Li04LiB4Liy4LiiCivguJnguLTguYDguIHguLTguKUKK+C4meC4tOC4hOC4oQor4LiZ4Li04LiE4Lij4LiZ4LiW4LmMCivguJnguLTguITguKvguLAKK+C4meC4tOC4hOC4q+C4tOC4lQor4LiZ4Li04LiE4Liy4Lil4Lix4LiiCivguJnguLTguYDguITguKPguLLguLDguKvguYwKK+C4meC4tOC5guC4hOC4leC4tOC4mQor4LiZ4Li04LmC4LiE4Lij4LiYCivguJnguLTguYLguITguKPguKEKK+C4meC4tOC4hwor4LiZ4Li04LmI4LiHCivguJnguLTguIgKK+C4meC4tOC4lAor4LiZ4Li04LiV4Lii4LmMCivguJnguLTguJXguLQKK+C4meC4tOC4l+C4owor4LiZ4Li04LiX4Lij4Lij4Lio4LiB4Liy4LijCivguJnguLTguJfguKPguLIKK+C4meC4tOC4l+C4seC4qOC4meC5jAor4LiZ4Li04LiX4Liy4LiGCivguJnguLTguJfguLLguJkKK+C4meC4tOC5gOC4l+C4qAor4LiZ4Li04LmA4LiX4Lio4LiB4LmMCivguJnguLTguJjguLLguJkKK+C4meC4tOC4mOC4tAor4LiZ4Li04LiZ4LiX4LiyCivguJnguLTguJnguJnguLAKK+C4meC4tOC4meC4meC4suC4lwor4LiZ4Li04LiZ4Lir4Li44LiVCivguJnguLTguJnguLLguJcKK+C4meC4tOC4muC4suC4lQor4LiZ4Li04Lib4Lij4Li04Lii4Liy4LiiCivguJnguLTguJvguLHguIjguIHguLLguKMKK+C4meC4tOC4nuC4iOC4meC5jAor4LiZ4Li04Lie4LiZ4LiY4LmMCivguJnguLTguJ7guJ7guLLguJkKK+C4meC4tOC4nuC4nuC4tOC4l+C4sgor4LiZ4Li04Lie4Lix4LiX4LiY4LmMCivguJnguLTguJ7guLHguJnguJjguYwKK+C4meC4tOC4nuC4tOC4lwor4LiZ4Li04LmA4Lie4LiXCivguJnguLTguKDguLIKK+C4meC4tOC5iOC4oQor4LiZ4Li04LmJ4LihCivguJnguLTguKHguJnguJXguYwKK+C4meC4tOC4oeC4oeC4suC4mQor4LiZ4Li04Lih4Lih4Liy4LiZ4Lij4LiU4Li1CivguJnguLTguKHguLTguJUKK+C4meC4tOC4ouC4lQor4LiZ4Li04Lii4LihCivguJnguLTguKLguKLguLLguJkKK+C4meC4tOC4ouC4ouC4suC4meC4tOC4gQor4LiZ4Li04Lii4Lix4LiV4Li04LiZ4Li04Lii4LihCivguJnguLTguKLguLLguKEKK+C4meC4tOC4ouC4suC4ogor4LiZ4Li04Lii4Li44LiVCivguJnguLTguKPguJ7guLHguJXguKMKK+C4meC4tOC4o+C4oeC4suC4kwor4LiZ4Li04Lij4Lih4Li04LiVCivguJnguLTguKPguLHguJ7guJ7guLjguJcKK+C4meC4tOC4o+C4suC4qAor4LiZ4Li04Lij4Li44LiB4LiV4Li0CivguJnguLTguKPguLjguJXguJXguLQKK+C4meC4tOC4o+C4uOC4l+C4mOC5jAor4LiZ4Li04LmC4Lij4LiYCivguJnguLTguKUKK+C4meC4tOC5iOC4pwor4LiZ4Li04LmJ4LinCivguJnguLTguKfguITguKXguLXguK3guLTguIEKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4o+C5jAor4LiZ4Li04Lin4LmA4LiE4Lil4Li14Lii4LiqCivguJnguLTguKfguJXguKPguK3guJkKK+C4meC4tOC4p+C4o+C4k+C5jAor4LiZ4Li04Lin4Lix4LiV4LiZ4LmMCivguJnguLTguKfguLHguJXguLQKK+C4meC4tOC4p+C4suC4lQor4LiZ4Li04Lin4Liy4LiqCivguJnguLTguKfguLLguKrguJnguYwKK+C4meC4tOC5gOC4p+C4qAor4LiZ4Li04LmA4Lin4Lio4LiZ4LmMCivguJnguLTguKjguLIKK+C4meC4tOC4qeC4geC4o+C4oQor4LiZ4Li04Lip4Liy4LiXCivguJnguLTguKrguKrguLHguITguITguLTguKLguKfguLHguJXguJbguLgKK+C4meC4tOC4quC4quC4seC4hOC4hOC4teC4ouC5jAor4LiZ4Li04Liq4Lix4LiKCivguJnguLTguKrguLHguKIKK+C4meC4tOC4quC4suC4lwor4LiZ4Li04Liq4Li04LiVCivguJnguLTguKrguLXguJfguJnguLAKK+C4meC4tOC5gOC4quC4mAor4LiZ4Li04Lir4Li14LiZ4LiwCivguJnguLXguYgKK+C4meC4teC5iQor4LiZ4Li14LiV4Li0CivguJnguLXguYjguJnguLHguJkKK+C4meC4teC4o+C4meC4suC4lwor4LiZ4Li14Lit4Lit4LiZCivguJnguLXguYLguK3guJTguLXguYDguKHguLXguKLguKEKK+C4meC4tuC4gQor4LiZ4Li24LiHCivguJnguLbguYjguIcKK+C4meC4uAor4LiZ4Li44LiHCivguJnguLjguYjguIcKK+C4meC4uOC4igor4LiZ4Li44LiUCivguJnguLjguJUKK+C4meC4uOC5iOC4mQor4LiZ4Li44LmJ4LiiCivguJnguLnguJkKK+C4meC4ueC5iOC4mQor4LiZ4Li54LmJ4LiZCivguYDguJnguIHguILguLAKK+C5gOC4meC4geC4guC4seC4oQor4LmA4LiZ4LiE4LmE4LiXCivguYDguJnguJUKK+C5gOC4meC4leC4muC4reC4pQor4LmA4LiZ4LiV4LijCivguYDguJnguJXguLQKK+C5gOC4meC5ieC4mQor4LmA4LiZ4Lia4Li04Lin4Lil4LiyCivguYDguJnguJvguIjguLnguJkKK+C5gOC4meC4m+C4l+C4ueC5gOC4meC4teC4ouC4oQor4LmA4LiZ4Lih4Li0CivguYDguJnguKHguLTguJXguIHguLAKK+C5gOC4meC4oeC4tOC4meC4mOC4owor4LmA4LiZ4LiiCivguYDguJnguKLguKLguLAKK+C5gOC4meC4o+C4geC4seC4k+C4kOC4tQor4LmA4LiZ4Lij4LiE4Li44LiTCivguYDguJnguKPguYDguJfguKgKK+C5gOC4meC4o+C4meC4suC4lgor4LmA4LiZ4Lij4Lih4Li04LiVCivguYDguJnguKPguLDguJ7guLnguKrguLUKK+C5gOC4meC4qeC4suC4lwor4LmA4LiZ4LitCivguYDguJnguYnguK0KK+C5gOC4meC4sgor4LmA4LiZ4LmI4LiyCivguYDguJnguLLguKfguJnguLTguJUKK+C5gOC4meC4tOC4mQor4LmA4LiZ4Li04LmI4LiZCivguYDguJnguLTguJoKK+C5gOC4meC4teC4ouC4hwor4LmA4LiZ4Li14Lii4LiZCivguYDguJnguLXguKLguKEKK+C5gOC4meC4teC4ouC4owor4LmA4LiZ4Li14Lii4Lij4LiX4Li44LiB4LiC4LmMCivguYDguJnguLXguKLguKPguYDguJfguKgKK+C5gOC4meC4teC4ouC4o+C4meC4suC4lwor4LmA4LiZ4Li34LmJ4LitCivguYDguJnguLfguK3guIcKK+C5gOC4meC4t+C5iOC4reC4hwor4LmA4LiZ4Li34Lit4LiiCivguYDguJnguLfguYnguK3guYDguKLguLfguYnguK0KK+C5geC4meC5iAor4LmB4LiZ4LmI4LiHCivguYHguJnguYjguJkKK+C5geC4meC4mgor4LmB4LiZ4LihCivguYHguJnguKcKK+C5geC4meC5iOC4pwor4LmB4LiZ4LiwCivguYHguJnguLDguYHguKvguJkKK+C5guC4mQor4LmC4LiZ4LmJ4LiVCivguYLguJnguJkKK+C5guC4meC5iOC4mQor4LmC4LiZ4LmJ4LiZCivguYLguJnguYDguJkKK+C5guC4meC5gOC4muC5gOC4peC4teC4ouC4oQor4LmC4LiZ4LmJ4LihCivguYLguJnguKHguJ7guKPguKPguJMKK+C5guC4meC4o+C4sgor4LmC4LiZ4Lij4Li1CivguYPguJkKK+C5hOC4mQor4LmE4LiZ4LiV4LmM4LiE4Lil4Lix4LiaCivguYTguJnguYLguJXguKPguYDguIjguJkKK+C5hOC4meC4l+C5jOC4hOC4peC4seC4mgor4LmE4LiZ4Lil4Lit4LiZCivguYTguJnguK3guLLguIvguLXguJkKK+C5hOC4meC5guC4reC5gOC4muC4teC4ouC4oQor4LiaCivguJrguYgKK+C4muC4gQor4Lia4LiHCivguJrguYjguIcKK+C4muC4h+C4geC5jAor4Lia4LmK4LiH4LmA4Lia4LmK4LiHCivguJrguIfguKrguLjguYwKK+C4muC4h+C4reC4seC4muC4muC4h+C4o+C4sgor4Lia4LmI4LiH4Lit4Lix4Lia4Lia4LmI4LiH4Lij4LiyCivguJrguI8KK+C4muC4lAor4Lia4LiU4Li04LiZ4LiX4Lij4LmMCivguJrguJTguLUKK+C4muC4lgor4Lia4LiXCivguJrguJfguJnguLUKK+C4muC4l+C4muC4h+C4geC4igor4Lia4LiX4Lia4LiH4Liq4Li44LmMCivguJrguJfguJrguLnguKPguJPguYwKK+C4muC4l+C4nuC4seC4meC4mOC5jAor4Lia4LiX4Lig4Liy4LiK4LiZ4LmMCivguJrguJfguKDguLLguIrguJnguLXguKLguYwKK+C4muC4l+C4oeC4suC4peC4ouC5jAor4Lia4LiX4Lij4Lix4LiKCivguJrguJfguKfguYDguKPguKgKK+C4muC4l+C4p+C4peC4seC4jeC4iuC5jAor4Lia4LiX4Lin4Liy4LijCivguJrguJfguKjguKPguLUKK+C4muC4l+C4qOC4seC4nuC4l+C5jAor4Lia4LiX4Liq4LiW4Liy4LiZCivguJrguJfguLLguKHguJ7guLjguIoKK+C4muC5guC4l+C4mQor4Lia4LiZCivguJrguYjguJkKK+C4muC4nuC4tOC4leC4owor4Lia4Lie4Li04LiYCivguJrguYjguKEKK+C4muC4o+C4oQor4Lia4Lij4Lih4Lix4LiV4LiW4LmMCivguJrguKPguKPguIHguKfguJQKK+C4muC4o+C4o+C4iOC4hwor4Lia4Lij4Lij4LiI4LiW4Lij4LiT4LmMCivguJrguKPguKPguIjguJoKK+C4muC4o+C4o+C4iOC4p+C4mgor4Lia4Lij4Lij4LiI4Li4CivguJrguKPguKPguYDguIjguLTguJQKK+C4muC4o+C4o+C4kwor4Lia4Lij4Lij4LiT4Liy4LiB4Liy4LijCivguJrguKPguKPguJPguLLguITguKEKK+C4muC4o+C4o+C4k+C4suC4mOC4tOC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiZ4Li44LiB4Lij4LihCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguYwKK+C4muC4o+C4o+C4k+C4suC4o+C4seC4geC4qeC4qOC4suC4quC4leC4o+C5jAor4Lia4Lij4Lij4LiU4LiyCivguJrguKPguKPguJTguLLguIEKK+C4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jAor4Lia4Lij4Lij4LiV4Liy4LiZ4Li24LiBCivguJrguKPguKPguJbguKMKK+C4muC4o+C4o+C4l+C4oQor4Lia4Lij4Lij4LiX4Lix4LiUCivguJrguKPguKPguJfguLHguJoKK+C4muC4o+C4o+C4l+C4suC4mQor4Lia4Lij4Lij4LiX4Li44LiBCivguJrguKPguKPguYDguJfguLIKK+C4muC4o+C4o+C5gOC4l+C4t+C4reC4hwor4Lia4Lij4Lij4LieCivguJrguKPguKPguJ7guYwKK+C4muC4o+C4o+C4nuC4iuC4sgor4Lia4Lij4Lij4Lie4LiK4Li04LiVCivguJrguKPguKPguJ7guJUKK+C4muC4o+C4o+C4ouC4hwor4Lia4Lij4Lij4Lii4LiH4LiE4LmMCivguJrguKPguKPguKLguYDguKfguIHguKnguIHguYwKK+C4muC4o+C4o+C4ouC4suC4geC4suC4qAor4Lia4Lij4Lij4Lii4Liy4LiiCivguJrguKPguKPguKXguLHguKIKK+C4muC4o+C4o+C4peC4suC4ogor4Lia4Lij4Lij4Lil4Li4CivguJrguKPguKPguYDguKXguIcKK+C4muC4o+C4o+C5guC4peC4oQor4Lia4Lij4Lij4Lip4Lix4LiXCivguJrguKPguKPguKrguJoKK+C4muC4o+C4o+C4quC4ngor4Lia4Lij4Lij4Liq4LihCivguJrguKPguKPguKrguLLguJkKK+C4muC4o+C4o+C4quC4suC4owor4Lia4Lij4Lij4Lir4Liy4LiZCivguJrguKPguKPguKvguLLguKMKK+C4muC4o+C4seC4lAor4Lia4Lij4Lix4LmI4LiZ4LiU4Li1CivguJrguKPguLHguKjguKfguYwKK+C4muC4o+C4suC4geC4o+C4oQor4Lia4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJrguKPguLLguKXguLUKK+C4muC4o+C4tOC4geC4o+C4oQor4Lia4Lij4Li04LiB4Lij4Lij4LihCivguJrguKPguLTguIHguLHguJsKK+C4muC4o+C4tOC4geC4suC4owor4Lia4Lij4Li04LiC4LiyCivguJrguKPguLTguILguLLguKMKK+C4muC4o+C4tOC4hOC4k+C4q+C5jAor4Lia4Lij4Li04LiI4Liy4LiECivguJrguKPguLTguIjguLLguKPguIEKK+C4muC4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lia4Lij4Li04LmA4LiJ4LiXCivguJrguKPguLTguIrguJkKK+C4muC4o+C4tOC4k+C4suC4ouC4gQor4Lia4Lij4Li04LiU4LiI4LmMCivguJrguKPguLTguJrguJcKK+C4muC4o+C4tOC4muC4p+C4o+C4k+C5jAor4Lia4Lij4Li04Lia4Liy4LilCivguJrguKPguLTguJrguLnguKPguJPguYwKK+C4muC4o+C4tOC4nuC4meC4mOC5jAor4Lia4Lij4Li04Lie4Lix4LiV4LijCivguJrguKPguLTguJ7guLHguJnguJjguYwKK+C4muC4o+C4tOC4nuC4suC4iuC4gQor4Lia4Lij4Li04Lie4Liy4LiK4Li04LiB4LiyCivguJrguKPguLTguJ7guLLguIrguLUKK+C4muC4o+C4tOC4nuC4suC4owor4Lia4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJrguKPguLTguKDguLLguKkKK+C4muC4o+C4tOC5guC4oOC4hAor4Lia4Lij4Li04Lih4Liy4LiqCivguJrguKPguLTguKLguLLguKIKK+C4muC4o+C4tOC4o+C4oQor4Lia4Lij4Li04Lij4Lix4LiB4Lip4LmMCivguJrguKPguLTguKPguLLguIoKK+C4muC4o+C4tOC4p+C4o+C4o+C4lQor4Lia4Lij4Li04Lin4Liy4LijCivguJrguKPguLTguKfguLLguKoKK+C4muC4o+C4tOC5gOC4p+C4kwor4Lia4Lij4Li04Lip4LiB4Liy4LijCivguJrguKPguLTguKnguLHguJcKK+C4muC4o+C4tOC4quC4iuC4mQor4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguJrguKPguLTguKvguLLguKMKK+C4muC4o+C4tOC4q+C4suC4qgor4Lia4Lij4Li34LmL4LitCivguJrguKTguIfguITguJ4KK+C4muC4peC5h+C4reC4gQor4Lia4Lin4LiBCivguJrguKfguIcKK+C4muC5iOC4p+C4hwor4Lia4Lin4LiKCivguJrguKfguJkKK+C4muC5ieC4p+C4mQor4Lia4Lin4LiaCivguJrguKfguKEKK+C4muC5iuC4p+C4ogor4Lia4Lin4LijCivguJrguKfguKPguYLguJXguI7guIEKK+C4muC4q+C4peC4tOC5iOC4oQor4Lia4LitCivguJrguYjguK0KK+C4muC5ieC4rQor4Lia4Lit4LiBCivguJrguK3guIcKK+C4muC5iOC4reC4hwor4Lia4LmJ4Lit4LiHCivguJrguYrguK3guIcKK+C4muC5iuC4reC4h+C5hgor4Lia4LmJ4Lit4LiH4LiV4Liw4Lil4LiyCivguJrguYnguK3guIfguYHguJrguYrguKcKK+C4muC4reC4h+C4q+C4peC4sgor4Lia4Lit4LiUCivguJrguK3guJkKK+C4muC5iOC4reC4mQor4Lia4Lit4LiZ4Lil4Liy4Lii4LiB4Lij4Liw4Lir4LiZ4LiBCivguJrguK3guJoKK+C4muC5ieC4reC4oQor4Lia4LmL4Lit4LihCivguJrguK3guKHguJrguYwKK+C4muC5iOC4reC4ogor4Lia4LmL4Lit4LiiCivguJrguYjguK3guKLguYYKK+C4muC4reC4o+C4sOC5gOC4nuC5h+C4lAor4Lia4Lit4Lij4Liw4Lih4Liy4LiZCivguJrguK3guKUKK+C4muC4reC4peC4peC4ueC4mQor4Lia4LmJ4Lit4Lir4Li44LmJ4LiZCivguJrguYrguLAKK+C4muC4sOC4ieC5iOC4rQor4Lia4Liw4Lir4Lih4Li14LmICivguJrguLHguIEKK+C4muC4seC4hOC5gOC4leC4o+C4tQor4Lia4Lix4LiHCivguJrguLHguYnguIcKK+C4muC4seC4h+C4geC4sOC5guC4pQor4Lia4Lix4LiH4LiB4Lix4LiUCivguJrguLHguIfguYDguIHguLTguJQKK+C4muC4seC4h+C5guC4geC4o+C4ouC4leC4seC4p+C4nOC4ueC5iQor4Lia4Lix4LiH4LmC4LiB4Lij4Lii4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguJrguLHguIfguYLguIHguKXguJkKK+C4muC4seC4h+C4hOC4mQor4Lia4Lix4LiH4LiE4LihCivguJrguLHguIfguITguKUKK+C4muC4seC4h+C4hOC4p+C4owor4Lia4Lix4LiH4LiE4Lix4LiaCivguJrguLHguIfguITguLHguKUKK+C4muC4seC4h+C5guC4hOC4peC4mQor4Lia4Lix4LiH4LmB4LiX4Lij4LiBCivguJrguLHguIfguKfguLLguKIKK+C4muC4seC4h+C5gOC4p+C4teC4ouC4mQor4Lia4Lix4LiH4Liq4Li44LiB4Li44LilCivguJrguLHguIfguKrguLjguIHguLnguKXguLTguIEKK+C4muC4seC4h+C4quC4ueC4o+C4ouC5jAor4Lia4Lix4LiH4Lir4Lin4LiZCivguJrguLHguIfguKvguKfguJnguITguKfguLHguJkKK+C4muC4seC4h+C5gOC4q+C4leC4uAor4Lia4Lix4LiH4LmA4Lir4Li04LiZCivguJrguLHguIfguYDguKvguLXguKLguJkKK+C4muC4seC4h+C4reC4owor4Lia4Lix4LiH4Lit4Lin4LiICivguJrguLHguIfguK3guLLguIgKK+C4muC4seC4h+C4reC4tOC4hwor4Lia4Lix4LiH4Lit4Li54LijCivguJrguLHguIfguYDguK3guLTguI0KK+C4muC4seC4jeC4iOC4gQor4Lia4Lix4LiN4LiI4Lij4LiH4LiE4LmMCivguJrguLHguI3guIrguKMKK+C4muC4seC4jeC4iuC4sgor4Lia4Lix4LiN4LiK4Li1CivguJrguLHguI3guI3guLHguJXguLQKK+C4muC4seC4jeC4q+C4sgor4Lia4Lix4LiPCivguJrguLHguJDguKLguLLguJ7guKTguJUKK+C4muC4seC4k+C4keC4owor4Lia4Lix4LiT4LiR4Li04LiVCivguJrguLHguJPguJHguLTguJXguKLguYwKK+C4muC4seC4k+C4keC4uAor4Lia4Lix4LiT4LiR4Li54LijCivguJrguLHguJPguYDguJHguLLguLDguIHguYwKK+C4muC4seC4k+C4k+C4suC4qgor4Lia4Lix4LiT4Lij4LiqCivguJrguLHguJPguKPguKrguLUKK+C4muC4seC4lAor4Lia4Lix4LiU4LiB4Lij4Li1CivguJrguLHguJTguIvguJoKK+C4muC4seC4lOC4muC4hwor4Lia4Lix4LiU4Liq4Li1CivguJrguLHguJXguKMKK+C4muC4seC4l+C4oeC5jAor4Lia4Lix4LiZCivguJrguLHguYjguJkKK+C4muC4seC5ieC4mQor4Lia4Lix4LiZ4LiB4Lin4LiUCivguJrguLHguJnguIjguKfguJoKK+C4muC4seC4meC4iOC4reC4ogor4Lia4Lix4LiZ4LiU4LilCivguJrguLHguJnguJTguLLguKUKK+C4muC4seC4meC5gOC4lOC4tOC4mQor4Lia4Lix4LiZ4LmC4LiU4LiiCivguJrguLHguJnguYTguJQKK+C4muC4seC4meC4l+C4suC4ogor4Lia4Lix4LiZ4LiX4Li24LiBCivguJrguLHguJnguJfguLbguIcKK+C4muC4seC4meC5gOC4l+C4tOC4hwor4Lia4Lix4LiZ4Lii4Liw4Lia4Lix4LiZ4Lii4Lix4LiHCivguJrguLHguJnguKXguLfguK0KK+C4muC4seC4meC5gOC4q+C4tOC4mQor4Lia4Lix4Lib4Lic4Liy4Liq4LiwCivguJrguLHguJ4KK+C4muC4seC4nuC4iuC4sgor4Lia4Lix4Lie4LiK4Li04LiVCivguJrguLHguJ7guJ7guLLguIoKK+C4muC4seC4nuC4nuC4suC4iuC4meC5jAor4Lia4Lix4Lie4Lie4Liy4LiK4LiZ4Li14Lii4LiB4Lij4Lij4LihCivguJrguLHguKUKK+C4muC4seC4peC4peC4ngor4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMCivguJrguLHguKXguKXguLnguJkKK+C4muC4seC4peC5gOC4peC5iOC4leC5jAor4Lia4Lix4Lil4Lin4LiwCivguJrguLHguKcKK+C4muC4seC4p+C5gOC4lOC4t+C5iOC4rQor4Lia4Lix4Lin4LiV4Li54LihCivguJrguLHguKfguJrguIEKK+C4muC4seC4p+C4quC4p+C4o+C4o+C4hOC5jAor4Lia4LiyCivguJrguYjguLIKK+C4muC5ieC4sgor4Lia4LmJ4Liy4LmGCivguJrguLLguIEKK+C4muC4suC4hwor4Lia4LmI4Liy4LiHCivguJrguYnguLLguIcKK+C4muC4suC4h+C4geC4reC4gQor4Lia4Liy4LiH4Liq4Li4CivguJrguLLguIjguIEKK+C4muC4suC4iOC4o+C4teC4ouC5jAor4Lia4Liy4LiI4Li04LiB4LiyCivguJrguLLguIvguLLguKPguYwKK+C4muC4suC4i+C4tOC4peC4peC4seC4qgor4Lia4Liy4LiUCivguJrguLLguJTguJfguLDguIjguLTguJUKK+C4muC4suC4lOC4l+C4sOC4nuC4tOC4qQor4Lia4Liy4LiU4LiX4Liw4Lii4Lix4LiBCivguJrguLLguJTguKvguKHguLLguKIKK+C4muC4suC4lOC5hOC4q+C4oQor4Lia4Liy4LiU4Liy4LilCivguJrguLLguYHguJTguIcKK+C4muC4suC4lQor4Lia4Liy4LiV4LijCivguJrguLLguJcKK+C4muC4suC4l+C4mgor4Lia4Liy4LiX4Lia4LiH4LiB4LiKCivguJrguLLguJfguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4suC4l+C4p+C4tOC4luC4tQor4Lia4Liy4LiX4Liq4LiB4Li44LiT4Li1CivguJrguLLguJfguKvguKXguKfguIcKK+C4muC4suC4l+C4suC4mOC4tuC4gQor4Lia4Liy4LiX4Li44LiB4LiyCivguJrguLLguJkKK+C4muC5ieC4suC4mQor4Lia4Liy4LiZ4Lih4LiH4LiE4LilCivguJrguLLguJnguLXguKLguLAKK+C4muC5ieC4suC4muC5iOC4mQor4Lia4LmJ4Liy4Lia4LmL4LiyCivguJrguLLguJrguLUKK+C4muC4suC4muC4uQor4Lia4Liy4Lia4Li54LiZCivguJrguLLguJsKK+C4muC4suC4m+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lia4Liy4Lib4LiX4Lik4Lip4LiO4Li1CivguJrguLLguJvguKHguLTguJXguKMKK+C4muC4suC4m+C4p+C4suC4lwor4Lia4Liy4Lie4LiBCivguJrguYjguLLguJ7guIEKK+C4muC4suC4ogor4Lia4LmI4Liy4LiiCivguJrguYnguLLguKIKK+C4muC4suC4ouC4quC4uOC4q+C4o+C4tQor4Lia4Liy4LmA4Lii4Li14LiiCivguJrguLLguYLguKIKK+C4muC4suC4o+C5jAor4Lia4Liy4Lij4LiZ4Li1CivguJrguLLguKPguYzguJrguLTguITguLTguKcKK+C4muC4suC4o+C5jOC5gOC4muC4pQor4Lia4Liy4Lij4Lih4Li1CivguJrguLLguKPguYzguYDguKPguKUKK+C4muC4suC4o+C5jOC5gOC4peC4ouC5jAor4Lia4Liy4Lij4Lit4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguJrguYnguLLguKPguLDguJrguLjguYjguJkKK+C4muC5ieC4suC4o+C5iOC4suC4l+C5iOC4sgor4Lia4Liy4LmA4Lij4Li14Lii4LiZCivguJrguLLguYDguKPguLXguKLguKEKK+C4muC4suC4pQor4Lia4Liy4Lil4Li1CivguJrguYjguLLguKcKK+C4muC5iOC4suC4p+C4guC4uOC4mQor4Lia4Liy4LioCivguJrguLLguKjguIHguYwKK+C4muC4suC4quC5gOC4geC4leC4muC4reC4pQor4Lia4LmJ4Liy4Lir4Lih4Li5CivguJrguLLguKvguKXguLUKK+C4muC5ieC4suC4q+C4p+C5iOC4sgor4Lia4LmI4Liy4Lit4LmJ4Liy4LiiCivguJrguYvguLMKK+C4muC4s+C5gOC4l+C4tOC4hwor4Lia4Liz4LiZ4Liy4LiNCivguJrguLPguJrguKfguIcKK+C4muC4s+C4muC4seC4lAor4Lia4Liz4LmC4LiaCivguJrguLPguYLguJrguKIKK+C4muC4s+C5guC4muC4pQor4Lia4Liz4LmA4Lie4LmH4LiNCivguJrguLPguKPguLLguJoKK+C4muC4s+C4o+C4suC4qAor4Lia4Liz4Lij4Li44LiHCivguJrguLPguKPguLkKK+C4muC4s+C5gOC4o+C4rQor4Lia4Liz4Lir4Lii4Lix4LiUCivguJrguLPguYDguKvguJnguYfguIgKK+C4muC4tAor4Lia4Li04LiB4Li5CivguJrguLTguJAKK+C4muC4tOC4lAor4Lia4Li04LiU4LijCivguJrguLTguJTguKvguKXguYjguLIKK+C4muC4tOC4lOC4sgor4Lia4Li04LiV4Li4CivguJrguLTguJXguLjguIjguInguLIKK+C4muC4tOC4leC4uOC4o+C4h+C4hOC5jAor4Lia4Li04LiV4Li44LmA4Lij4LioCivguJrguLTguJXguLjguKUKK+C4muC4tOC4leC4uOC4peC4sgor4Lia4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJrguLTguJkKK+C4muC4tOC5iOC4mQor4Lia4Li04LiZ4Lii4LiyCivguJrguLTguKXguYDguKXguLXguKLguJQKK+C4muC4tOC4p+C5gOC4o+C4leC4leC5jAor4Lia4Li04Lio4Liy4LiICivguJrguLTguKrguKHguLHguJcKK+C4muC4teC5iQor4Lia4Li14LiB4Li5CivguJrguLXguJHguLIKK+C4muC4teC4leC4sgor4Lia4Li14LiaCivguJrguLXguYDguKLguKgKK+C4muC4tuC4gQor4Lia4Li24LiB4Lia4Li24LiZCivguJrguLbguIcKK+C4muC4tuC5iOC4hwor4Lia4Li24LmJ4LiHCivguJrguLgKK+C4muC4uOC4gQor4Lia4Li44LiE4LiE4LilCivguJrguLjguITguKXguLLguIHguKMKK+C4muC4uOC4hOC4peC4suC4mOC4tOC4qeC4kOC4suC4mQor4Lia4Li44LiE4Lil4Li04LiBCivguJrguLjguIcKK+C4muC4uOC5iOC4hwor4Lia4Li44LmJ4LiHCivguJrguLjguI0KK+C4muC4uOC4jeC5gOC4guC4lQor4Lia4Li44LiN4LiN4Liy4LiZ4Li44Lig4Liy4LieCivguJrguLjguI3guI3guLLguKDguLTguJnguLTguKvguLLguKMKK+C4muC4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lia4Li44LiN4LiZ4Li04LiY4Li0CivguJrguLjguI3guKPguLLguKjguLUKK+C4muC4uOC4jeC4pOC4l+C4mOC4tOC5jAor4Lia4Li44LiT4LiR4Lij4Li04LiBCivguJrguLjguJPguKHguLUKK+C4muC4uOC4k+C4ouC5jAor4Lia4Li44LiV4LijCivguJrguLjguJXguKPguJjguKPguKPguKEKK+C4muC4uOC4leC4o+C4sgor4Lia4Li44LiV4Lij4Li1CivguJrguLjguJXguKPguLXguJXguKPguLDguKrguLjguKEKK+C4muC4uOC4luC4uOC4iuC4mQor4Lia4Li44LiX4LiE4LilCivguJrguLjguYvguJkKK+C4muC4uOC4meC4meC4sOC4muC4uOC4meC4meC4seC4hwor4Lia4Li44LiZ4LiZ4Liy4LiECivguJrguLjguJoKK+C4muC4uOC4nuC5gOC4nuC4meC4tOC4p+C4suC4quC4suC4meC4uOC4quC4leC4tOC4jeC4suC4kwor4Lia4Li44Lie4LmA4Lie4Liq4Lix4LiZ4LiZ4Li04Lin4Liy4LiqCivguJrguLjguJ7guYLguJ4KK+C4muC4uOC4n+C5gOC4n+C5iOC4leC5jAor4Lia4Li44LmL4LihCivguJrguLjguYjguKHguJrguYjguLLguKEKK+C4muC4uOC5ieC4ogor4Lia4Li44LmJ4Lii4Lib4Liy4LiBCivguJrguLjguKPguJPguLAKK+C4muC4uOC4o+C4nuC4geC4uOC4qOC4pQor4Lia4Li44Lij4Lie4LiX4Li04LioCivguJrguLjguKPguJ7guJnguLTguKHguLTguJUKK+C4muC4uOC4o+C4nuC4muC4lwor4Lia4Li44Lij4Lie4Lig4Lix4LiX4Lij4Lia4LiXCivguJrguLjguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4uOC4o+C4nuC4suC4qeC4suC4kgor4Lia4Li44Lij4LiwCivguJrguLjguKPguLHguJXguJbguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4suC4kwor4Lia4Li44Lij4Liy4LiT4LiX4Li44LiV4Li04Lii4Li04LiB4LiyCivguJrguLjguKPguLTguJnguJfguKPguYwKK+C4muC4uOC4o+C4tOC4oeC4l+C4tOC4qAor4Lia4Li44Lij4Li04Lih4Lie4Lij4Lij4Lip4LiyCivguJrguLjguKPguLTguKHguKrguLTguJfguJjguLQKK+C4muC4uOC4o+C4tQor4Lia4Li44Lij4Li44LipCivguJrguLjguKPguLjguKnguYLguJfguKkKK+C4muC4uOC4o+C4uOC4qeC4mOC4o+C4o+C4oQor4Lia4Li44LmA4Lij4Lig4LieCivguJrguLjguYDguKPguKDguLHguJUKK+C4muC4uOC5guC4o+C4l+C4seC5iOC4hwor4Lia4Li44Lip4LiB4LijCivguJrguLjguKnguJrguIEKK+C4muC4uOC4qeC4muC4hwor4Lia4Li44Lip4Lia4Lix4LiZCivguJrguLjguKnguJrguLIKK+C4muC4uOC4qeC4muC4suC4oeC4tOC4meC4leC4o+C4sgor4Lia4Li44Lip4Lib4Lij4Liy4LiECivguJrguLjguKnguJvguLAKK+C4muC4uOC4qeC4ogor4Lia4Li44Lip4Lii4LmMCivguJrguLjguKnguKLguYzguJnguYnguLPguJfguK3guIcKK+C4muC4uOC4qeC4o+C4suC4hOC4seC4oQor4Lia4Li44Lir4LiH4LiHCivguJrguLjguKvguIfguLHguJkKK+C4muC4uOC4q+C4h+C4sgor4Lia4Li44Lir4Lij4LiHCivguJrguLjguKvguKPguLXguYgKK+C4muC4uOC4q+C4o+C4teC5iOC4nuC4o+C4sOC4o+C4suC4oQor4Lia4Li44Lir4Lil4Lix4LiZCivguJrguLnguYgKK+C4muC4ueC5iQor4Lia4Li54LmKCivguJrguLnguIrguJnguLXguKLguKrguJbguLLguJkKK+C4muC4ueC4iuC4sgor4Lia4Li54LiK4Li04LmC4LiUCivguJrguLnguIrguLTguJUKK+C4muC4ueC4lAor4Lia4Li54LiU4Li5CivguJrguLnguKMKK+C4muC4ueC4o+C4k+C5jAor4Lia4Li54Lij4LiT4LiwCivguJrguLnguKPguJ4KK+C4muC4ueC4o+C4nuC4sgor4Lia4Li54Lij4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLnguKPguLUKK+C5gOC4muC5iQor4LmA4Lia4LmKCivguYDguJrguITguK3guJkKK+C5gOC4muC5iOC4hwor4LmA4Lia4LiH4LiB4Liy4Lil4Liw4LiZ4Li1CivguYDguJrguYrguIjguLXguYsKK+C5gOC4muC4jeC4geC4suC4meC4tQor4LmA4Lia4LiN4LiICivguYDguJrguI3guIjguIEKK+C5gOC4muC4jeC4iOC4oeC4suC4qAor4LmA4Lia4LiN4LiI4LiyCivguYDguJrguI3guIjguLLguIfguITguYwKK+C5gOC4muC4jeC4jeC4sgor4LmA4Lia4LiN4Lie4Liy4LiUCivguYDguJrguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4leC4peC5h+C4lAor4LmA4Lia4LmH4LiU4LmA4Liq4Lij4LmH4LiICivguYDguJrguJXguLIKK+C5gOC4muC4meC4i+C4tOC4mQor4LmA4Lia4LiZ4LmE4LiL4LiZ4LmMCivguYDguJrguKPguIEKK+C5gOC4muC4o+C4tOC4peC5gOC4peC4teC4ouC4oQor4LmA4Lia4Lij4Li14Lii4LiZCivguYDguJrguYDguKPguYjguJXguYwKK+C5gOC4muC4qgor4LmA4Lia4Liq4Lia4Lit4LilCivguYDguJrguYnguK0KK+C5gOC4muC4reC4o+C5jAor4LmA4Lia4Lit4Lij4LmM4LiE4Li14LmA4Lil4Li14Lii4LihCivguYDguJrguYnguK3guYDguKPguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C5iOC4reC5gOC4l+C5iOC4rQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4LihCivguYDguJrguYnguK3guYDguKPguLTguYjguKHguYDguJfguLTguYjguKEKK+C5gOC4muC4reC4sAor4LmA4Lia4LiwCivguYDguJrguLIKK+C5gOC4muC5ieC4sgor4LmA4Lia4Liy4Lij4Liy4LiTCivguYDguJrguLLguLAKK+C5gOC4muC4tOC4gQor4LmA4Lia4Li04LmI4LiHCivguYDguJrguLXguYnguKIKK+C5gOC4muC4teC4ouC4gQor4LmA4Lia4Li14LmI4Lii4LiHCivguYDguJrguLXguKLguJQKK+C5gOC4muC4teC4ouC4mQor4LmA4Lia4Li14Lii4Lij4LmMCivguYDguJrguLXguYnguKLguKcKK+C5gOC4muC4t+C4rQor4LmA4Lia4Li34LmI4LitCivguYDguJrguLfguYnguK0KK+C5gOC4muC4t+C5ieC4reC4hwor4LmA4Lia4Li34Lit4LiZCivguYHguJoKK+C5geC4muC5iQor4LmB4Lia4LiBCivguYHguJrguITguJfguLXguYDguKPguLXguKIgRQor4LmB4Lia4LmI4LiHCivguYHguJrguIfguITguYwKK+C5geC4muC4lOC4oeC4tOC4meC4leC4seC4mQor4LmB4Lia4LiV4LmA4LiV4Lit4Lij4Li14LmICivguYHguJrguJkKK+C5geC4muC4meC5guC4iAor4LmB4Lia4LiaCivguYHguJrguYfguJoKK+C5geC4muC4o+C4gQor4LmB4Lia4LmA4Lij4Li14Lii4LihCivguYHguJrguKvguKXguLIKK+C5geC4muC4sAor4LmB4Lia4Liw4LmB4LiLCivguYLguJoKK+C5guC4muC5iQor4LmC4Lia4LmLCivguYLguJrguIEKK+C5guC4muC4geC4guC4o+C4k+C4tQor4LmC4Lia4LiB4Li14LmJCivguYLguJrguIrguLjguIEKK+C5guC4muC4lOC4gQor4LmC4Lia4LiVCivguYLguJrguJXguLHguYvguJkKK+C5guC4muC4meC4seC4qgor4LmC4Lia4LmK4LmA4Lia4LmKCivguYLguJrguKIKK+C5guC4muC4o+C4oeC4teC4mQor4LmC4Lia4Lij4Lit4LiZCivguYLguJrguKPguLLguJMKK+C5guC4muC4p+C5jOC4peC4tOC5iOC4hwor4LmC4Lia4Liq4LiW4LmMCivguYPguJoKK+C5g+C4muC5iQor4LmD4Lia4Lij4Liw4LiB4LiyCivguYTguJrguYjguYYKK+C5hOC4muC4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LmE4Lia4LmA4Lia4Li04LilCivguJsKK+C4m+C4gQor4Lib4LiB4LiV4Li0CivguJvguIHguKPguJPguYwKK+C4m+C4geC4o+C4k+C4seC4oQor4Lib4LiB4Liy4LijCivguJvguIHguLTguJPguIHguLAKK+C4m+C4geC4teC4o+C4k+C4seC4oQor4Lib4LmC4LiB4LiP4Li0CivguJvguITguLjguJMKK+C4m+C4hwor4Lib4LmI4LiHCivguJvguIfguJvguLHguIcKK+C4m+C4iuC4suC4muC4lOC4tQor4Lib4LiO4LilCivguJvguI/guLHguIEKK+C4m+C4j+C4tOC4geC4o+C4k+C5jAor4Lib4LiP4Li04LiB4Lij4Lij4LihCivguJvguI/guLTguIHguKPguKPguKHguKrguIfguITguKPguLLguKEKK+C4m+C4j+C4tOC4geC4suC4o+C4sAor4Lib4LiP4Li04LiB4Li04Lij4Li04Lii4LiyCivguJvguI/guLTguIHguLnguKUKK+C4m+C4j+C4tOC4hOC4hOC4q+C4tOC4lQor4Lib4LiP4Li04LiE4LihCivguJvguI/guLTguITguLLguKvguIEKK+C4m+C4j+C4tOC4huC4sAor4Lib4LiP4Li04LiI4LiI4Liq4Lih4Li44Lib4Lia4Liy4LiXCivguJvguI/guLTguIrguLXguKfguJnguLAKK+C4m+C4j+C4tOC4jeC4jeC4sgor4Lib4LiP4Li04LiN4Liy4LiTCivguJvguI/guLTguJfguLTguJkKK+C4m+C4j+C4tOC4muC4lgor4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguJvguI/guLTguJvguJfguLIKK+C4m+C4j+C4tOC4m+C4seC4geC4qeC5jAor4Lib4LiP4Li04Lib4Lix4LiZCivguJvguI/guLTguJvguLjguIjguInguLLguJ7guKLguLLguIHguKPguJPguYwKK+C4m+C4j+C4tOC4m+C4uOC4iOC4ieC4suC4p+C4suC4l+C4tQor4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmMCivguJvguI/guLTguJ7guLLguIHguKLguYwKK+C4m+C4j+C4tOC4oOC4suC4hAor4Lib4LiP4Li04Lig4Liy4LiTCivguJvguI/guLTguKDguLLguJPguIHguKfguLUKK+C4m+C4j+C4tOC4oOC4suC4k+C4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4Lib4LiP4Li04Lig4Liy4LiT4LmC4Lin4Lir4Liy4LijCivguJvguI/guLTguKHguLIKK+C4m+C4j+C4tOC4oeC4suC4geC4owor4Lib4LiP4Li04Lii4Liy4LiiCivguJvguI/guLTguKLguLjguJfguJjguYwKK+C4m+C4j+C4tOC4o+C4ngor4Lib4LiP4Li04Lij4Li54LibCivguJvguI/guLTguYLguKXguKEKK+C4m+C4j+C4tOC4p+C4seC4leC4tAor4Lib4LiP4Li04Lin4Liy4LiVCivguJvguI/guLTguKfguLLguJcKK+C4m+C4j+C4tOC5gOC4p+C4mAor4Lib4LiP4Li04Liq4LiZ4LiY4Li0CivguJvguI/guLTguKrguKfguLAKK+C4m+C4j+C4tOC4quC4seC4h+C4guC4o+C4k+C5jAor4Lib4LiP4Li04Liq4Lix4LiZ4LiW4Liy4LijCivguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC5gOC4quC4mAor4Lib4LiQ4Lie4Li1CivguJvguJDguKEKK+C4m+C4kOC4oeC4lOC4uOC4quC4tOC4lQor4Lib4LiQ4Lih4Lie4Lii4Liy4Lia4Liy4LilCivguJvguJDguKHguKrguKHguYLguJ7guJjguLQKK+C4m+C4kOC4oeC4suC4quC4suC4kgor4Lib4LiQ4Lin4Li1CivguJvguJPguJUKK+C4m+C4k+C4suC4oQor4Lib4LiT4Li04LiY4Liy4LiZCivguJvguJPguLTguJjguLQKK+C4m+C4k+C4teC4lQor4Lib4LiUCivguJvguJTguYLguJvguYkKK+C4m+C4lOC4tOC4p+C4o+C4seC4lOC4sgor4Lib4LiV4Lix4LiV4Lij4Li1CivguJvguJXguLQKK+C4m+C4leC4tOC4ouC4seC4lQor4Lib4LiW4Lie4Li1CivguJvguJbguKHguLHguIcKK+C4m+C4luC4p+C4tQor4Lib4LiX4Lix4LiB4LiC4Li04LiTCivguJvguJfguLHguI/guJDguLLguJkKK+C4m+C4l+C4seC4quC4luC4suC4mQor4Lib4LiX4Liy4LiZCivguJvguJfguLLguJnguLjguIHguKPguKEKK+C4m+C4l+C4teC4mwor4Lib4LiX4Li44LihCivguJvguJjguLLguJkKK+C4m+C4mQor4Lib4LmI4LiZCivguJvguJnguLHguJTguJTguLIKK+C4m+C4meC4uOC4lwor4Lib4LiaCivguJvguJvguLHguI3guIjguLAKK+C4m+C4oQor4Lib4Lij4LiBCivguJvguKPguIHguJXguLQKK+C4m+C4o+C4hwor4Lib4Lij4LiUCivguJvguKPguJXguKLguLHguIHguKnguYwKK+C4m+C4o+C4leC4ouC4suC4hAor4Lib4Lij4LiV4LmA4Lii4LiBCivguJvguKPguJfguLHguJXguJXguLnguJvguIrguLXguKfguLUKK+C4m+C4o+C4mQor4Lib4Lij4LiZ4LiZ4Li04Lia4Lix4LiV4Li0CivguJvguKPguJnguLHguKIKK+C4m+C4o+C4mgor4Lib4Lij4Lib4Lix4LiB4Lip4LmMCivguJvguKPguYDguKHguKvguLAKK+C4m+C4o+C5guC4peC4gQor4Lib4Lij4Lin4LiUCivguJvguKPguKfguJnguYHguJvguKMKK+C4m+C4o+C4p+C4suC4l+C4tQor4Lib4Lij4Lin4Li04Liq4Lix4Lii4Liq4Li14Lih4LiyCivguJvguKPguKjguLgKK+C4m+C4o+C4quC4tOC4lQor4Lib4Lij4LmL4LitCivguJvguKPguK3guIfguJTguK3guIcKK+C4m+C4o+C4reC4lAor4Lib4Lij4Lit4LiU4LmGCivguJvguKPguK3guJcKK+C4m+C4o+C4reC4ogor4Lib4Lij4Lit4Lii4LmGCivguJvguKPguLAKK+C4m+C4o+C4sOC4geC4mgor4Lib4Lij4Liw4LiB4Lik4LiVCivguJvguKPguLDguIHguKTguJXguLQKK+C4m+C4o+C4sOC4geC4pQor4Lib4Lij4Liw4LiB4Lin4LiUCivguJvguKPguLDguIHguK3guJoKK+C4m+C4o+C4sOC4geC4seC4mQor4Lib4Lij4Liw4LiB4Lix4LiaCivguJvguKPguLDguIHguLLguKIKK+C4m+C4o+C4sOC4geC4suC4owor4Lib4Lij4Liw4LiB4Liy4LioCivguJvguKPguLDguIHguLLguKjguIEKK+C4m+C4o+C4sOC4geC4suC4qOC4meC4teC4ouC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiB4Liy4Lio4LiZ4Li14Lii4Lia4Lix4LiV4LijCivguJvguKPguLDguIHguLLguKjguLTguJUKK+C4m+C4o+C4sOC4geC4swor4Lib4Lij4Liw4LiB4Li04LiUCivguJvguKPguLDguIHguLTguJUKK+C4m+C4o+C4sOC4geC4teC4o+C4k+C4gQor4Lib4Lij4Liw4LmA4LiB4Li14Lii4Lij4LiT4LiBCivguJvguKPguLDguYHguIHguIEKK+C4m+C4o+C4sOC4hOC4lAor4Lib4Lij4Liw4LiE4LiZ4LiY4Lij4Lij4LieCivguJvguKPguLDguITguJnguJjguKPguKPguJ7guYwKK+C4m+C4o+C4sOC4hOC4mgor4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguJrguJvguKPguLDguITguK3guIcKK+C4m+C4o+C4sOC4hOC4seC4peC4oOC5jAor4Lib4Lij4Liw4LiE4LizCivguJvguKPguLDguITguLPguYTguIHguYgKK+C4m+C4o+C4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lib4Lij4Liw4LiE4Li04LmI4LiZCivguJvguKPguLDguITguLTguYjguJnguKfguLTguJnguIrguLIKK+C4m+C4o+C4sOC4hOC4uOC4kwor4Lib4Lij4Liw4LmA4LiE4LiZCivguJvguKPguLDguYDguITguKPguLLguLDguKvguYwKK+C4m+C4o+C4sOC5guC4hOC4mQor4Lib4Lij4Liw4LmC4LiE4LiZ4LiY4Lij4Lij4LiaCivguJvguKPguLDguYLguITguJnguJjguKPguKPguJ7guYwKK+C4m+C4o+C4sOC5guC4hOC4oQor4Lib4Lij4Liw4LiI4LiHCivguJvguKPguLDguIjguI0KK+C4m+C4o+C4sOC4iOC4mgor4Lib4Lij4Liw4LiI4Lin4LiaCivguJvguKPguLDguIjguYvguK3guJvguKPguLDguYHguIjguYsKK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jAor4Lib4Lij4Liw4LiI4Lix4LiNCivguJvguKPguLDguIjguLHguJkKK+C4m+C4o+C4sOC4iOC4suC4gQor4Lib4Lij4Liw4LiI4Liy4LiECivguJvguKPguLDguIjguLLguJkKK+C4m+C4o+C4sOC4iOC4swor4Lib4Lij4Liw4LiI4Li04LihCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguIjguYjguK3guIcKK+C4m+C4o+C4sOC4iOC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4iOC5i+C4rQor4Lib4Lij4Liw4LiI4Li4CivguJvguKPguLDguIjguLjguITguKHguJnguYwKK+C4m+C4o+C4sOC4iOC4uOC4muC4seC4mQor4Lib4Lij4Liw4LmA4LiI4LiBCivguJvguKPguLDguYDguIjguLTguJQKK+C4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4Lib4Lij4Liw4LmB4LiICivguJvguKPguLDguIrguJQKK+C4m+C4o+C4sOC4iuC4mQor4Lib4Lij4Liw4LiK4Lin4LihCivguJvguKPguLDguIrguKfguKMKK+C4m+C4o+C4sOC4iuC4seC4mQor4Lib4Lij4Liw4LiK4LiyCivguJvguKPguLDguIrguLTguJQKK+C4m+C4o+C4sOC4iuC4tQor4Lib4Lij4Liw4LiK4Li44LihCivguJvguKPguLDguYDguIrguLTguI0KK+C4m+C4o+C4sOC4k+C4lQor4Lib4Lij4Liw4LiT4LihCivguJvguKPguLDguJPguLLguKEKK+C4m+C4o+C4sOC4k+C4tOC4mOC4suC4mQor4Lib4Lij4Liw4LiT4Li04LiY4Li0CivguJvguKPguLDguJPguLXguJUKK+C4m+C4o+C4sOC4k+C4uOC4lwor4Lib4Lij4Liw4LiU4LiHCivguJvguKPguLDguJTguIfguYHguJTguIcKK+C4m+C4o+C4sOC4lOC4mQor4Lib4Lij4Liw4LiU4Lin4LiZCivguJvguKPguLDguJTguK3guJkKK+C4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Lix4LiBCivguJvguKPguLDguJTguLHguIcKK+C4m+C4o+C4sOC4lOC4seC4mgor4Lib4Lij4Liw4LiU4LiyCivguJvguKPguLDguJTguLLguIEKK+C4m+C4o+C4sOC4lOC4suC4mwor4Lib4Lij4Liw4LiU4Liy4LipCivguJvguKPguLDguJTguLTguIrguI3guLIKK+C4m+C4o+C4sOC4lOC4tOC4lOC4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Li04LiX4Li04LiZCivguJvguKPguLDguJTguLTguKPguJ4KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jAor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Liy4LiZCivguJvguKPguLDguJTguLgKK+C4m+C4o+C4sOC4lOC4uOC4hwor4Lib4Lij4Liw4LiU4Li44LiICivguJvguKPguLDguJTguLnguYgKK+C4m+C4o+C4sOC5gOC4lAor4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJvguKPguLDguYDguJTguKLguIEKK+C4m+C4o+C4sOC5gOC4lOC4tOC4oQor4Lib4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguJvguKPguLDguYDguJTguLXguYvguKLguKcKK+C4m+C4o+C4sOC5geC4lOC4hwor4Lib4Lij4Liw4LmB4LiU4LiwCivguJvguKPguLDguYLguJTguKIKK+C4m+C4o+C4sOC4leC4hwor4Lib4Lij4Liw4LiV4Lii4Liy4LiECivguJvguKPguLDguJXguLHguIEKK+C4m+C4o+C4sOC4leC4suC4m+C4sAor4Lib4Lij4Liw4LiV4Li04LiK4LiN4LiyCivguJvguKPguLDguJXguLTguI3guLLguJMKK+C4m+C4o+C4sOC4leC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiV4Li04Lih4Liy4LiB4Lij4Lij4LihCivguJvguKPguLDguJXguLTguKPguJ4KK+C4m+C4o+C4sOC4leC4tOC4qOC4o+C4seC4ngor4Lib4Lij4Liw4LiV4Li5CivguJvguKPguLDguJbguKEKK+C4m+C4o+C4sOC4luC4oeC4iOC4tOC4meC4lOC4sgor4Lib4Lij4Liw4LiX4LihCivguJvguKPguLDguJfguKLguJQKK+C4m+C4o+C4sOC4l+C5ieC4p+C4hwor4Lib4Lij4Liw4LiX4Lin4LiZCivguJvguKPguLDguJfguLHguIHguKnguYwKK+C4m+C4o+C4sOC4l+C4seC4geC4qeC4tOC4kwor4Lib4Lij4Liw4LiX4Lix4LiHCivguJvguKPguLDguJfguLHguJQKK+C4m+C4o+C4sOC4l+C4seC4mgor4Lib4Lij4Liw4LiX4LmI4LiyCivguJvguKPguLDguJfguLLguIHguKXguYnguK3guIcKK+C4m+C4o+C4sOC4l+C4suC4mQor4Lib4Lij4Liw4LiX4Liy4LiiCivguJvguKPguLDguJfguLLguKjguLUKK+C4m+C4o+C4sOC4l+C4tOC4mQor4Lib4Lij4Liw4LiX4Li04LmI4LiZCivguJvguKPguLDguJfguLXguJsKK+C4m+C4o+C4sOC4l+C4uOC4gQor4Lib4Lij4Liw4LiX4Li44LiQCivguJvguKPguLDguJfguLjguJDguIjguLTguJUKK+C4m+C4o+C4sOC4l+C4uOC4mQor4Lib4Lij4Liw4LiX4Li44Lih4Lij4Liy4LiECivguJvguKPguLDguJfguLjguKkKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C5jAor4Lib4Lij4Liw4LiX4Li44Lip4LiP4LiI4Li04LiVCivguJvguKPguLDguJfguLjguKnguJDguYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4kOC4iOC4tOC4lQor4Lib4Lij4Liw4LmA4LiX4LioCivguJvguKPguLDguYDguJfguLIKK+C4m+C4o+C4sOC5gOC4l+C5ieC4sgor4Lib4Lij4Liw4LmA4LiX4Li14Lii4LiUCivguJvguKPguLDguYDguJfguLXguKLguJoKK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hwor4Lib4Lij4Liw4LiY4Liy4LiZCivguJvguKPguLDguJjguLLguJnguLLguJjguLTguJrguJTguLUKK+C4m+C4o+C4sOC4meC4oQor4Lib4Lij4Liw4LiZ4LitCivguJvguKPguLDguJnguK3guKEKK+C4m+C4o+C4sOC4meC4seC4hwor4Lib4Lij4Liw4LiZ4Lix4Lib4LiU4LiyCivguJvguKPguLDguJnguLXguYkKK+C4m+C4o+C4sOC4meC4teC4m+C4o+C4sOC4meC4reC4oQor4Lib4Lij4Liw4Lia4Lix4LiUCivguJvguKPguLDguJrguLLguJUKK+C4m+C4o+C4sOC4m+C4o+C4suC4mQor4Lib4Lij4Liw4Lib4Lij4Liy4LiiCivguJvguKPguLDguJvguLIKK+C4m+C4o+C4sOC5gOC4m+C4o+C4teC5ieC4ouC4hwor4Lib4Lij4Liw4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguJvguKPguLDguYHguJvguKPguYnguJkKK+C4m+C4o+C4sOC4nuC4iOC4meC5jAor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMCivguJvguKPguLDguJ7guKPguKEKK+C4m+C4o+C4sOC4nuC4pOC4leC4tAor4Lib4Lij4Liw4Lie4Lik4LiX4LiY4Li04LmMCivguJvguKPguLDguJ7guLHguJQKK+C4m+C4o+C4sOC4nuC4seC4l+C4mOC5jAor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLDguJ7guLLguJUKK+C4m+C4o+C4sOC4nuC4suC4qOC4oeC4q+C4o+C4k+C4ngor4Lib4Lij4Liw4Lie4Liy4LiqCivguJvguKPguLDguJ7guLLguKwKK+C4m+C4o+C4sOC4nuC4tOC4kwor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmM4Lib4Lij4Liw4Lie4Liy4LiiCivguJvguKPguLDguJ7guLjguJfguJjguYwKK+C4m+C4o+C4sOC5gOC4nuC4k+C4tQor4Lib4Lij4Liw4LmA4Lie4LmJ4LitCivguJvguKPguLDguYHguJ7guKPguYjguIfguJvguKPguLDguYHguJ7guKPguKcKK+C4m+C4o+C4sOC5guC4nuC4mAor4Lib4Lij4Liw4LmE4LieCivguJvguKPguLDguYTguJ7guKMKK+C4m+C4o+C4sOC4oOC4ngor4Lib4Lij4Liw4Lig4Lix4Liq4Liq4LijCivguJvguKPguLDguKDguLIKK+C4m+C4o+C4sOC4oOC4suC4ngor4Lib4Lij4Liw4Lig4Liy4LipCivguJvguKPguLDguKDguLLguKoKK+C4m+C4o+C4sOC4oOC4ueC4qOC4seC4geC4lOC4tOC5jAor4Lib4Lij4Liw4LmA4Lig4LiXCivguJvguKPguLDguKHguIcKK+C4m+C4o+C4sOC4oeC4p+C4jQor4Lib4Lij4Liw4Lih4Lin4LilCivguJvguKPguLDguKHguLHguJXguJXguLAKK+C4m+C4o+C4sOC4oeC4suC4kwor4Lib4Lij4Liw4Lih4Liy4LiXCivguJvguKPguLDguKHguLjguIIKK+C4m+C4o+C4sOC4oeC4uOC4lwor4Lib4Lij4Liw4Lih4Li54LilCivguJvguKPguLDguYDguKHguLTguJkKK+C4m+C4o+C4sOC5guC4oeC4hwor4Lib4Lij4Liw4LmC4Lih4LiX4Lii4LmMCivguJvguKPguLDguKLguIfguITguYwKK+C4m+C4o+C4sOC4ouC4uOC4geC4leC5jAor4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguJvguKPguLDguKLguLjguKMKK+C4m+C4o+C4sOC4ouC4ueC4owor4Lib4Lij4Liw4LmC4Lii4LiECivguJvguKPguLDguYLguKLguITguKrguLHguKHguJvguJfguLIKK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lib4Lij4Liw4LmC4Lij4Lir4Li04LiVCivguJvguKPguLDguKXguKHguJ7guYwKK+C4m+C4o+C4sOC4peC4reC4hwor4Lib4Lij4Liw4Lil4Lix4LiiCivguJvguKPguLDguKXguLLguJUKK+C4m+C4o+C4sOC4peC4suC4ogor4Lib4Lij4Liw4Lil4Li24LiHCivguJvguKPguLDguKXguLgKK+C4m+C4o+C4sOC4peC4uOC4hwor4Lib4Lij4Liw4LmA4Lil4LmI4Lir4LmMCivguJvguKPguLDguYDguKXguYnguLLguJvguKPguLDguYLguKXguKEKK+C4m+C4o+C4sOC5guC4peC4m+C4o+C4sOC5gOC4pQor4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguKfguKPguKPguJUKK+C4m+C4o+C4sOC4p+C4o+C4o+C4leC4meC5jAor4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguJvguKPguLDguKfguLLguJUKK+C4m+C4o+C4sOC4p+C4suC4l+C4tQor4Lib4Lij4Liw4Lin4Liy4LilCivguJvguKPguLDguKfguLLguKXguJvguLHguJfguKHguYwKK+C4m+C4o+C4sOC4p+C4suC4peC4nOC4pQor4Lib4Lij4Liw4Lin4Liy4Lil4Lin4Lij4Lij4LiTCivguJvguKPguLDguKfguLLguKoKK+C4m+C4o+C4sOC4p+C4tOC4hwor4Lib4Lij4Liw4Lin4Li04LiKCivguJvguKPguLDguKfguLTguJXguKMKK+C4m+C4o+C4sOC4p+C4teC4kwor4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguJvguKPguLDguYDguKfguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC5gOC4p+C4qAor4Lib4Lij4Liw4LmA4Lin4Lio4LiZ4LmMCivguJvguKPguLDguKjguKEKK+C4m+C4o+C4sOC4qOC4suC4quC4meC5jAor4Lib4Lij4Liw4Lio4Li4CivguJvguKPguLDguKrguIEKK+C4m+C4o+C4sOC4quC4h+C4hOC5jAor4Lib4Lij4Liw4Liq4LiaCivguJvguKPguLDguKrguJ4KK+C4m+C4o+C4sOC4quC4oQor4Lib4Lij4Liw4Liq4LiwCivguJvguKPguLDguKrguLHguIEKK+C4m+C4o+C4sOC4quC4seC4meC4meC4suC4geC4suC4owor4Lib4Lij4Liw4Liq4Lix4Lii4Lir4LmMCivguJvguKPguLDguKrguLIKK+C4m+C4o+C4sOC4quC4suC4lwor4Lib4Lij4Liw4Liq4Liy4LiX4LiB4Liy4LijCivguJvguKPguLDguKrguLLguJfguKPguLnguJsKK+C4m+C4o+C4sOC4quC4suC4mOC4meC5jAor4Lib4Lij4Liw4Liq4Liy4LiZCivguJvguKPguLDguKrguLLguKMKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Liq4Li14Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLnguJUKK+C4m+C4o+C4sOC4quC4ueC4leC4tAor4Lib4Lij4Liw4LmA4Liq4Lia4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguKPguLDguYDguKrguKPguLTguJAKK+C4m+C4o+C4sOC5geC4quC4muC4seC4mQor4Lib4Lij4Liw4Lir4LiZ4Li24LmI4LiHCivguJvguKPguLDguKvguKHguLHguJkKK+C4m+C4o+C4sOC4q+C4oeC5iOC4sgor4Lib4Lij4Liw4Lir4Lii4Lix4LiUCivguJvguKPguLDguKvguKPguJPguYwKK+C4m+C4o+C4sOC4q+C4peC4suC4lAor4Lib4Lij4Liw4Lir4Lil4Liy4LiXCivguJvguKPguLDguKvguKXguYjguLMKK+C4m+C4o+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Lij4Liw4Lir4Lin4Lix4LiUCivguJvguKPguLDguKvguKfguLHguYjguJkKK+C4m+C4o+C4sOC4q+C4p+C5iOC4sgor4Lib4Lij4Liw4Lir4Lix4LiVCivguJvguKPguLDguKvguLLguJMKK+C4m+C4o+C4sOC4q+C4suC4owor4Lib4Lij4Liw4Lir4Liy4LiqCivguJvguKPguLDguYDguKvguKUKK+C4m+C4o+C4sOC5gOC4q+C4qgor4Lib4Lij4Liw4LmA4Lir4Li14Lii4LilCivguJvguKPguLDguYTguKvguKHguKrguLjguKvguKPguLUKK+C4m+C4o+C4sOC4reC4mgor4Lib4Lij4Liw4Lit4LijCivguJvguKPguLDguK3guLbguIcKK+C4m+C4o+C4sOC4reC4uOC4gQor4Lib4Lij4Liw4LmA4Lit4Li14Lii4LiHCivguJvguKPguLDguYHguK3guIEKK+C4m+C4o+C4sOC4ruC4suC4oQor4Lib4Lij4Lix4LiBCivguJvguKPguLHguIHguJvguKPguLMKK+C4m+C4o+C4seC4geC4oeC4sAor4Lib4Lij4Lix4LiB4Lir4Lix4LiB4Lie4Lix4LiHCivguJvguKPguLHguIcKK+C4m+C4o+C4seC4iuC4jeC4sgor4Lib4Lij4Lix4LiUCivguJvguKPguLHguJXguJbguIjguKPguLTguKLguLIKK+C4m+C4o+C4seC4leC4ouC4meC4leC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguLHguJXguKLguLHguJnguJXguYwKK+C4m+C4o+C4seC4leC4ouC4seC4ogor4Lib4Lij4Lix4LiV4Lii4Li44LiV4Lia4Lix4LiZCivguJvguKPguLHguJXguKLguLjguJrguLHguJkKK+C4m+C4o+C4seC4leC4ouC4ueC4qQor4Lib4Lij4Lix4LiV4Lii4Li54Lir4LmMCivguJvguKPguLHguJXguYDguKLguIEKK+C4m+C4o+C4seC4mQor4Lib4Lij4Lix4LmI4LiZCivguJvguKPguLHguYnguJkKK+C4m+C4o+C4seC4mgor4Lib4Lij4Lix4Lib4Lin4Liy4LiXCivguJvguKPguLHguKHguJvguKPguLIKK+C4m+C4o+C4seC4oeC4oeC4uOC4guC4sgor4Lib4Lij4Lix4Lio4LiI4Li04LihCivguJvguKPguLHguKjguJnguLIKK+C4m+C4o+C4seC4qOC4meC4tQor4Lib4Lij4Lix4Lio4Lin4LmMCivguJvguKPguYjguLIKK+C4m+C4o+C4suC4geC4jwor4Lib4Lij4Liy4LiB4Lij4LihCivguJvguKPguLLguIHguKTguJUKK+C4m+C4o+C4suC4geC4suC4owor4Lib4Lij4Liy4LiE4Lig4Liy4LijCivguJvguKPguLLguITguLLguKMKK+C4m+C4o+C4suC4hwor4Lib4Lij4Liy4LiH4LiE4LmMCivguJvguKPguLLguIfguITguJPguLAKK+C4m+C4o+C4suC4iOC4teC4mQor4Lib4Lij4Liy4LiK4LiN4LmMCivguJvguKPguLLguIrguI3guLIKK+C4m+C4o+C4suC4iuC4seC4ogor4Lib4Lij4Liy4LiK4Liy4Lib4Lix4LiV4Lii4Lin4Li04Lin4Liy4Lir4LiwCivguJvguKPguLLguIrguLTguJUKK+C4m+C4o+C4suC4kwor4Lib4Lij4Liy4LiT4Li1CivguJvguKPguLLguJQKK+C4m+C4o+C4suC4leC4tOC4q+C4suC4o+C4ouC5jAor4Lib4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJvguKPguLLguJkKK+C4m+C4o+C4suC4meC4tQor4Lib4Lij4Liy4LiaCivguJvguKPguLLguJrguJTguLLguKDguLTguYDguKnguIEKK+C4m+C4o+C4suC4m+C4leC5jAor4Lib4Lij4Liy4Lig4LieCivguJvguKPguLLguKEKK+C4m+C4o+C4suC4oeC4suC4qgor4Lib4Lij4Liy4LmC4Lih4LiKCivguJvguKPguLLguYLguKHguJfguKLguYwKK+C4m+C4o+C4suC4ogor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyCivguJvguKPguLLguKPguKAKK+C4m+C4o+C4suC4o+C4oeC4oOC5jAor4Lib4Lij4Liy4LioCivguJvguKPguLLguKjguIjguLLguIEKK+C4m+C4o+C4suC4qOC4seC4ogor4Lib4Lij4Liy4Lip4LiT4Li1CivguJvguKPguLLguKnguLLguJMKK+C4m+C4o+C4suC4quC4seC4ogor4Lib4Lij4Liy4Liq4Liy4LiXCivguJvguKPguLMKK+C4m+C4o+C4tAor4Lib4Lij4Li04LiBCivguJvguKPguLTguIHguILguLLguKMKK+C4m+C4o+C4tOC4geC4o+C4o+C4oQor4Lib4Lij4Li04LiB4Lix4LibCivguJvguKPguLTguILguLIKK+C4m+C4o+C4tOC4hOC4k+C4q+C5jAor4Lib4Lij4Li04LiGCivguJvguKPguLTguIjguLLguIQKK+C4m+C4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lib4Lij4Li04LmA4LiJ4LiXCivguJvguKPguLTguIrguJkKK+C4m+C4o+C4tOC4i+C4tuC4oQor4Lib4Lij4Li04LiN4LiN4LiyCivguJvguKPguLTguJPguLLguKEKK+C4m+C4o+C4tOC4k+C4suC4ouC4gQor4Lib4Lij4Li04LiV4LiV4LiwCivguJvguKPguLTguJXguYLguJXguJfguIEKK+C4m+C4o+C4tOC4leC4ouC4suC4hAor4Lib4Lij4Li04LiV4LijCivguJvguKPguLTguJfguKPguKPguKjguJnguYwKK+C4m+C4o+C4tOC4l+C4seC4ouC4q+C4seC4hOC4hOC4tQor4Lib4Lij4Li04LiX4Lix4Lio4LiZ4LmMCivguJvguKPguLTguYDguJfguJ4KK+C4m+C4o+C4tOC5gOC4l+C4nuC4meC5jAor4Lib4Lij4Li04LmA4LiX4Lin4LiZ4LiwCivguJvguKPguLTguYDguJfguKfguLAKK+C4m+C4o+C4tOC4meC4tOC4nuC4nuC4suC4mQor4Lib4Lij4Li04LiaCivguJvguKPguLTguJvguLHguJnguJbguYwKK+C4m+C4o+C4tOC4nuC4meC4mOC5jAor4Lib4Lij4Li04Lie4Lix4LiV4LijCivguJvguKPguLTguJ7guLHguJnguJjguYwKK+C4m+C4o+C4tOC4nuC4suC4iuC4gQor4Lib4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJvguKPguLTguKDguLLguKkKK+C4m+C4o+C4tOC4oOC4suC4qeC4k+C5jAor4Lib4Lij4Li04Lig4Li44LiN4LiK4LmMCivguJvguKPguLTguKDguLnguKHguLQKK+C4m+C4o+C4tOC5guC4oOC4hAor4Lib4Lij4Li04LmI4LihCivguJvguKPguLTguKHguJPguJHguKUKK+C4m+C4o+C4tOC4oeC4seC4lwor4Lib4Lij4Li04Lih4Liy4LiTCivguJvguKPguLTguKHguLLguJXguKMKK+C4m+C4o+C4tOC4ouC4seC4leC4tAor4Lib4Lij4Li04Lii4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguKPguLTguKLguLLguKIKK+C4m+C4o+C4tOC5gOC4ouC4qAor4Lib4Lij4Li04LmC4Lii4Liq4Liy4LiZCivguJvguKPguLTguKfguKPguKPguJUKK+C4m+C4o+C4tOC4p+C4seC4leC4owor4Lib4Lij4Li04Lin4Liy4LijCivguJvguKPguLTguKfguLLguKoKK+C4m+C4o+C4tOC4p+C4tOC4leC4gQor4Lib4Lij4Li04LmA4Lin4LiTCivguJvguKPguLTguKjguJnguLIKK+C4m+C4o+C4tOC4qeC4geC4suC4owor4Lib4Lij4Li04Lip4Lix4LiXCivguJvguKPguLTguKrguLHguI3guI3guLkKK+C4m+C4o+C4tOC4quC4uOC4l+C4mOC4tAor4Lib4Lij4Li04Lir4Liy4LiZCivguJvguKPguLTguKvguLLguKMKK+C4m+C4o+C4tOC4q+C4suC4qgor4Lib4Lij4Li14LmICivguJvguKPguLXguIrguI3guLIKK+C4m+C4o+C4teC4iuC4sgor4Lib4Lij4Li14LmK4LiUCivguJvguKPguLXguJTguLIKK+C4m+C4o+C4teC4lOC4tAor4Lib4Lij4Li14LiU4Li04LmMCivguJvguKPguLXguJTguLUKK+C4m+C4o+C4teC4leC4tAor4Lib4Lij4Li14LiiCivguJvguKPguLXguKLguLIKK+C4m+C4o+C4tuC4gQor4Lib4Lij4Li24LiB4Lip4LiyCivguJvguKPguLbguIcKK+C4m+C4o+C4t+C4rQor4Lib4Lij4Li34LmL4LitCivguJvguKPguLgKK+C4m+C4o+C4uOC4hwor4Lib4Lij4Li5CivguJvguKPguLnguYsKK+C4m+C4o+C4ueC4lAor4Lib4Lij4Li54LmK4LifCivguJvguKTguIfguITguJ4KK+C4m+C4pOC4iOC4ieC4sgor4Lib4Lik4Lip4LiO4Liy4LiH4LiE4LmMCivguJvguKTguKnguJAKK+C4m+C4pOC4qeC4k+C5jAor4Lib4Lil4LiBCivguJvguKXguIHguYDguJvguKXguLXguYnguKIKK+C4m+C4peC4hwor4Lib4Lil4LmI4LiHCivguJvguKXguJQKK+C4m+C4peC5ieC4mQor4Lib4Lil4Lin4LiBCivguJvguKXguK3guIEKK+C4m+C4peC5iOC4reC4hwor4Lib4Lil4LmJ4Lit4LiHCivguJvguKXguK3guJQKK+C4m+C4peC5ieC4reC4mQor4Lib4Lil4Lit4LiaCivguJvguKXguK3guKEKK+C4m+C4peC5iOC4reC4ogor4Lib4Lil4LiwCivguJvguKXguLHguIEKK+C4m+C4peC4seC5iuC4gQor4Lib4Lil4Lix4LmK4LiB4LmE4LifCivguJvguKXguLHguIcKK+C4m+C4peC4seC5iOC4hwor4Lib4Lil4Lix4LiUCivguJvguKXguLHguJTguILguLTguIEKK+C4m+C4peC4sgor4Lib4Lil4Liy4LiBCivguJvguKXguLLguJTguLLguKcKK+C4m+C4peC4suC4lQor4Lib4Lil4Liy4LiaCivguJvguKXguLLguJ3guLIKK+C4m+C4peC4suC4ogor4Lib4Lil4Liy4Lii4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguYLguKXguKHguLIKK+C4m+C4peC4suC4p+C4suC4rAor4Lib4Lil4Liy4Liq4LmA4LiV4Lit4Lij4LmMCivguJvguKXguLLguKrguJnguLLguIHguLLguKMKK+C4m+C4peC4suC4q+C4oeC4tuC4gQor4Lib4Lil4LmJ4LizCivguJvguKXguYnguLPguJvguKXguLjguIEKK+C4m+C4peC4tOC4hwor4Lib4Lil4Li04LiUCivguJvguKXguLTguYnguJkKK+C4m+C4peC4tOC5guC4nuC4mAor4Lib4Lil4Li04LihCivguJvguKXguLTguYjguKEKK+C4m+C4peC4tOC4pwor4Lib4Lil4Li1CivguJvguKXguLXguIEKK+C4m+C4peC4t+C5ieC4oQor4Lib4Lil4Li44LiBCivguJvguKXguLnguIEKK+C4m+C4p+C4geC5gOC4m+C4teC4ouC4gQor4Lib4Lin4LiHCivguJvguYjguKfguIcKK+C4m+C4p+C4lAor4Lib4LmI4Lin4LiZCivguJvguYnguKfguJkKK+C4m+C5ieC4p+C4meC5gOC4m+C4teC5ieC4ouC4mQor4Lib4LmI4Lin4LiiCivguJvguKfguLHguJXguJnguYwKK+C4m+C4p+C4seC4leC4ouC4suC4geC4suC4owor4Lib4Lin4Liy4LiVCivguJvguKfguLLguKPguJPguLIKK+C4m+C4p+C4suC4pQor4Lib4Lin4Liy4LiqCivguJvguKfguLLguKwKK+C4m+C4p+C4tOC4igor4Lib4Lin4Li04LiV4LijCivguJvguKfguLTguJgKK+C4m+C4p+C4tOC5gOC4p+C4gQor4Lib4Lin4Li14LiTCivguJvguKfguLjguJXguLQKK+C4m+C5gOC4p+C4k+C4tQor4Lib4LmA4Lin4LiqCivguJvguYDguKfguKrguJnguYwKK+C4m+C4qOC4uAor4Lib4Liq4LieCivguJvguKrguLHguJnguJnguLAKK+C4m+C4quC4seC4ouC4q+C4sAor4Lib4Liq4Liy4LiXCivguJvguKrguLLguJkKK+C4m+C4quC4suC4quC4meC5jAor4Lib4Liq4Li4CivguJvguKrguLjguJUKK+C4m+C4quC4ueC4leC4tAor4Lib4Lir4Lix4LiH4LiqCivguJvguKvguLHguIfguKrguJkKK+C4m+C4q+C4suC4mQor4Lib4Lir4Liy4LijCivguJvguKvguLLguKoKK+C4m+C4rQor4Lib4LmJ4LitCivguJvguYvguK0KK+C4m+C4reC4gQor4Lib4Lit4LiHCivguJvguYjguK3guIcKK+C4m+C5ieC4reC4hwor4Lib4Lit4LiUCivguJvguK3guJkKK+C4m+C5ieC4reC4mQor4Lib4Lit4LiZ4LmGCivguJvguK3guJnguJTguYwKK+C4m+C4reC5gOC4meC4suC4sAor4Lib4Lit4LiaCivguJvguK3guKEKK+C4m+C5ieC4reC4oQor4Lib4LmL4Lit4LihCivguJvguK3guKIKK+C4m+C5ieC4reC4ogor4Lib4LiwCivguJvguLDguIHguJkKK+C4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lib4Liw4LiB4Lix4LiHCivguJvguLDguIHguLLguKPguLHguIcKK+C4m+C4sOC4geC4swor4Lib4Liw4LiC4Liy4LinCivguJvguLDguIfguLHguJrguJvguLDguIfguYjguK3guJkKK+C4m+C4sOC4leC4suC4meC4tQor4Lib4Liw4LiV4Liy4Lib4LiyCivguJvguLDguJXguLLguKPguLDguIHguLLguKvguKXguLIKK+C4m+C4sOC4leC4tOC4lOC4m+C4sOC4leC5iOC4rQor4Lib4Liw4LiV4Li04Lii4Liy4LiZCivguJvguLDguYDguJXguLAKK+C4m+C4sOC4l+C4sAor4Lib4Liw4LiX4Liw4Lib4Liw4LiX4Lix4LiHCivguJvguLDguJfguLgKK+C4m+C4sOC4l+C4uOC4mQor4Lib4Liw4Lia4Li44LiBCivguJvguLDguJvguJkKK+C4m+C4sOC4oeC4hwor4Lib4Liw4Lij4Liy4Lil4Li1CivguJvguLDguKPguLMKK+C4m+C4sOC4peC4reC4oQor4Lib4Liw4LmA4Lil4LiHCivguJvguLDguYHguKXguYjguKEKK+C4m+C4sOC5geC4peC5iOC4oeC5hgor4Lib4Liw4LmC4Lil4LiHCivguJvguLDguKfguLDguKvguKXguLMKK+C4m+C4sOC4p+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Liw4LmA4Liq4Lir4Lij4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguLDguKvguIfguLHguJoKK+C4m+C4sOC4q+C4h+C4seC4muC5hgor4Lib4Liw4Lir4LiZ4Lix4LiZCivguJvguLDguKvguKHguLHguJnguK3guLLguKvguKLguLUKK+C4m+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Liw4Lir4Lix4LiHCivguJvguLDguYDguKvguKXguLLguLAKK+C4m+C4sOC5gOC4q+C4peC4suC4sOC4m+C4sOC5geC4q+C4peC4sAor4Lib4Lix4LiBCivguJvguLHguIHguILguYwKK+C4m+C4seC4geC5gOC4m+C5ieC4sgor4Lib4Lix4LiB4Lip4LmMCivguJvguLHguIHguKnguLIKK+C4m+C4seC4geC4qeC4suC4quC4p+C4o+C4o+C4hOC5jAor4Lib4Lix4LiB4Lip4Li04LiZCivguJvguLHguIHguKnguLTguJrguJTguLUKK+C4m+C4seC4geC4qeC4tOC4oeC4suC4o+C4hAor4Lib4Lix4LiB4Lip4Li04Lij4Liy4LiKCivguJvguLHguIHguKnguLTguKrguLTguIfguKvguYwKK+C4m+C4seC4geC4qeC4tQor4Lib4Lix4LiE4Lir4LiwCivguJvguLHguIcKK+C4m+C4seC5iOC4hwor4Lib4Lix4LiH4Liq4Li44LmMCivguJvguLHguIfguKrguLjguIHguLjguKUKK+C4m+C4seC4iOC4iOC4seC4leC4leC4sAor4Lib4Lix4LiI4LiI4Lix4LiiCivguJvguLHguIjguIjguLLguKHguLTguJXguKMKK+C4m+C4seC4iOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lix4LiI4LiI4Li44LiX4LiY4Lij4LiT4LmMCivguJvguLHguIjguIjguLjguJrguLHguJkKK+C4m+C4seC4iOC4iOC4ueC4qgor4Lib4Lix4LiI4LiI4Li54Lir4LiwCivguJvguLHguIjguYDguIjguIEKK+C4m+C4seC4iOC5gOC4iOC4geC4iuC4mQor4Lib4Lix4LiI4LmA4LiI4LiB4Lia4Li44LiE4LiE4LilCivguJvguLHguIjguYDguIjguIHguJ7guLjguJfguJjguLAKK+C4m+C4seC4iOC5gOC4iOC4geC5guC4nuC4mOC4tAor4Lib4Lix4LiI4LmA4LiI4LiB4Liq4Lih4Liy4LiX4Liy4LiZCivguJvguLHguIjguYLguIjguJvguIHguLLguKPguIHguLTguIgKK+C4m+C4seC4iOC4ieC4sgor4Lib4Lix4LiI4LiJ4Li04LihCivguJvguLHguIjguJbguKPguJPguYwKK+C4m+C4seC4iOC4meC4tuC4gQor4Lib4Lix4LiI4Lii4Liy4LiB4Liy4LijCivguJvguLHguIjguYDguKfguIHguILguJPguYwKK+C4m+C4seC4iuC4iuC4owor4Lib4Lix4LiK4LiK4Li44LiZCivguJvguLHguI3guIjguIEKK+C4m+C4seC4jeC4iOC4oQor4Lib4Lix4LiN4LiI4Lin4Li14Liq4LiV4Li0CivguJvguLHguI3guI3guLHguJXguLQKK+C4m+C4seC4jeC4jeC4sgor4Lib4Lix4LiN4Lir4LiyCivguJvguLHguI8KK+C4m+C4seC4j+C4meC4sAor4Lib4Lix4LiQ4Lii4Liy4Lin4Lix4LiVCivguJvguLHguJPguJHguKPguKvguLHguJXguJbguLUKK+C4m+C4seC4k+C4keC4uOC4m+C4peC4suC4qgor4Lib4Lix4LiT4LiT4LiwCivguJvguLHguJPguJPguLHguJXguJXguLTguIHguKfguLHguIrguIrguLAKK+C4m+C4seC4k+C4k+C4suC4qgor4Lib4Lix4LiT4LiT4Liy4Liq4LiB4LmMCivguJvguLHguJPguKPguKrguKEKK+C4m+C4seC4k+C4o+C4quC4tQor4Lib4Lix4LiT4Lir4Li0CivguJvguLHguJQKK+C4m+C4seC4lOC5hgor4Lib4Lix4LiU4LmE4LiW4LihCivguJvguLHguJXguITguLLguJQKK+C4m+C4seC4leC4iOC4seC4leC4luC4o+C4k+C5jAor4Lib4Lix4LiV4LiI4Lix4LiZ4LiV4LmMCivguJvguLHguJXguJXguLAKK+C4m+C4seC4leC4leC4sOC5gOC4peC4teC5iOC4ouC4mQor4Lib4Lix4LiV4LiV4Liy4LiZ4Li14LiB4LiwCivguJvguLHguJXguJXguLLguJnguLbguIEKK+C4m+C4seC4leC4leC4suC4oeC4uOC5guC4oeC4l+C4meC4sgor4Lib4Lix4LiV4LiV4Liy4LmA4Lin4Li14LiiCivguJvguLHguJXguJXguLQKK+C4m+C4seC4leC4leC4tOC4gQor4Lib4Lix4LiV4LiW4LijCivguJvguLHguJXguJbguLAKK+C4m+C4seC4leC4meC4tAor4Lib4Lix4LiV4LiZ4Li1CivguJvguLHguJXguKLguLHguKIKK+C4m+C4seC4leC4q+C4peC5iOC4sgor4Lib4Lix4LiW4Lie4Li1CivguJvguLHguJbguKfguLUKK+C4m+C4seC4mQor4Lib4Lix4LmI4LiZCivguJvguLHguYnguJkKK+C4m+C4seC5ieC4meC4iOC4seC5iOC4mQor4Lib4Lix4LiZ4LiI4Li44LmA4Lir4Lij4LmH4LiICivguJvguLHguJnguKXguKEKK+C4m+C4seC5ieC4meC4q+C4ouC4sgor4Lib4Lix4LmJ4LiZ4LmA4Lir4LiZ4LmI4LiHCivguJvguLHguJoKK+C4m+C4seC5iuC4mgor4Lib4Lix4Lib4Lic4Liy4Liq4LiwCivguJvguLHguJ7guJ7guLLguIrguJnguLAKK+C4m+C4seC4nuC4nuC4suC4iuC4meC4teC4ouC4geC4o+C4o+C4oQor4Lib4Lix4Lie4Lig4Liy4Lij4LiwCivguJvguLHguYrguKEKK+C4m+C4seC5iuC4oeC5geC4geC5h+C4qgor4Lib4Lix4LmK4Lih4LiZ4LmJ4Liz4Lih4Lix4LiZCivguJvguLHguKLguIHguLAKK+C4m+C4seC4ouC4geC4sgor4Lib4Lix4Lii4Lii4Li04LiB4LiyCivguJvguLHguYjguKcKK+C4m+C4seC4p+C5gOC4m+C4teC4ogor4Lib4Lix4LmJ4Lin4LmA4Lib4Li14LmJ4LiiCivguJvguLHguKjguIjguLTguKEKK+C4m+C4seC4qOC4leC4seC4mQor4Lib4Lix4Lio4LiV4Li5CivguJvguLHguKrguKrguLHguJfguJjguLQKK+C4m+C4seC4quC4quC4suC4p+C4sAor4Lib4Lix4Liq4Liq4Liy4Liq4LiwCivguJvguLIKK+C4m+C5iOC4sgor4Lib4LmJ4LiyCivguJvguYvguLIKK+C4m+C4suC4gQor4Lib4Liy4LiHCivguJvguYjguLLguIcKK+C4m+C5ieC4suC4hwor4Lib4LmJ4Liy4LiH4Lib4LmI4LiyCivguJvguLLguIjguJnguLAKK+C4m+C4suC4iOC4o+C4teC4ouC5jAor4Lib4Liy4LiI4Liy4Lij4Lii4LmMCivguJvguLLguIjguLTguJXguJXguLXguKLguYwKK+C4m+C4suC4iOC4teC4mQor4Lib4Liy4LiP4Lil4Li0CivguJvguLLguI/guLTguJrguJcKK+C4m+C4suC4j+C4tOC4muC4uOC4hOC4hOC4peC4tOC4gQor4Lib4Liy4LiP4Li04LmC4Lig4LiECivguJvguLLguI/guLTguKvguLLguKPguLTguKLguYwKK+C4m+C4suC4kOC4sAor4Lib4Liy4LiT4LiwCivguJvguLLguJPguLQKK+C4m+C4suC4k+C4tQor4Lib4Liy4LiUCivguJvguLLguJTguKvguLLguKcKK+C4m+C4suC4leC4tOC5guC4oeC4geC4guC5jAor4Lib4Liy4LiV4Li1CivguJvguLLguYDguJXguYrguLAKK+C4m+C4suC4lwor4Lib4Liy4LiX4LibCivguJvguLLguJfguYjguK3guIfguYLguIHguYsKK+C4m+C4suC4l+C4seC4h+C4geC4sgor4Lib4Liy4LiX4Liy4LiZCivguJvguLLguJfguLjguIHguLIKK+C4m+C4suC4mQor4Lib4LmI4Liy4LiZCivguJvguYnguLLguJkKK+C4m+C4suC4meC4lOC4hwor4Lib4LmJ4Liy4LiZ4Lil4LihCivguJvguLLguJnguLAKK+C4m+C4suC4meC4tOC5gOC4ouC4mQor4Lib4Liy4LiZ4Li14Lii4LiwCivguJvguYnguLLguJoKK+C4m+C5iuC4suC4mgor4Lib4Liy4Lib4Lit4Lir4Lii4Li14Liq4Lix4LiH4LiG4Liy4LiV4LiyCivguJvguLLguJ7guIjguJnguYwKK+C4m+C4suC4oQor4Lib4Liy4LmC4Lih4LiB4LiC4LmMCivguJvguYjguLLguKIKK+C4m+C5ieC4suC4ogor4Lib4Liy4Lii4Liy4LiqCivguJvguLLguKPguYzguIEKK+C4m+C4suC4o+C5jOC5gOC4geC4leC5jAor4Lib4Liy4Lij4LmM4LiV4Li1CivguJvguLLguKPguKHguLUKK+C4m+C4suC4o+C4qeC4k+C4tQor4Lib4Liy4Lij4Liy4LiK4Li04LiBCivguJvguLLguKPguLTguInguLHguJXguKMKK+C4m+C4suC4o+C4tOC4iuC4suC4lQor4Lib4Liy4Lij4Li04Liq4Li44LiX4LiY4Li04Lio4Li14LilCivguJvguLLguKPguLjguJvguJnguLAKK+C4m+C4suC4pQor4Lib4Liy4Lil4LmM4LihCivguJvguLLguKXguLTguYTguKXguKLguIHguYwKK+C4m+C4suC4peC4tQor4Lib4LmI4Liy4LinCivguJvguYrguLLguKcKK+C4m+C4suC4p+C5hgor4Lib4Liy4Lin4LiBCivguJvguLLguKfguIjguJnguLAKK+C4m+C4suC4p+C4suC4owor4Lib4Liy4Lip4Liy4LiTCivguJvguLLguKoKK+C4m+C4suC4quC4suC4kwor4Lib4Liy4Liq4Liy4LiX4Li04LiB4LiwCivguJvguLLguKvguJnguLHguJkKK+C4m+C4suC4q+C4teC5iAor4Lib4Liy4Lir4Li44LiTCivguJvguLMKK+C4m+C5ieC4swor4Lib4LmJ4Liz4LmG4LmA4Lib4LmL4Lit4LmGCivguJvguYnguLPguYDguJvguYnguK0KK+C4m+C5ieC4s+C5gOC4m+C5i+C4rQor4Lib4Li04LiB4LiZ4Li04LiBCivguJvguLTguIHguK3guLHguJ4KK+C4m+C4tOC4h+C4hOC4pQor4Lib4Li04LiH4LiE4Lil4LiwCivguJvguLTguIfguJvguK3guIcKK+C4m+C4tOC4juC4gQor4Lib4Li04LiP4LiQ4LiwCivguJvguLTguJDguLQKK+C4m+C4tOC4k+C4keC4sAor4Lib4Li04LiUCivguJvguLTguJTguYDguJXguYrguLLguLAKK+C4m+C4tOC4leC4leC4sAor4Lib4Li04LiV4LiyCivguJvguLTguJXguLgKK+C4m+C4tOC4leC4uOC4iOC4ieC4sgor4Lib4Li04LiV4Li44LilCivguJvguLTguJXguLjguKXguLIKK+C4m+C4tOC4leC4uOC4peC4suC4meC4tQor4Lib4Li04LmC4LiV4Lij4LmA4Lil4Li14Lii4LihCivguJvguLTguYjguJkKK+C4m+C4tOC5iuC4mQor4Lib4Li04LmK4LiZ4LmGCivguJvguLTguYjguJnguJXguK0KK+C4m+C4tOC5iOC4meC5guC4lQor4Lib4Li04Lib4Lic4Lil4Li1CivguJvguLTguYjguKEKK+C4m+C4tOC5ieC4oQor4Lib4Li04Lii4Lix4LiH4LiE4Li4CivguJvguLTguKPguLHguJnguK7guLIKK+C4m+C4tOC4peC4seC4meC4mOC4meC5jAor4Lib4Li04LmL4LinCivguJvguLTguKjguLLguIgKK+C4m+C4tOC4quC4seC4hwor4Lib4Li04LmE4LiqCivguJvguLTguKvguIEKK+C4m+C4tOC4q+C4peC4seC5iOC4mQor4Lib4Li1CivguJvguLXguYgKK+C4m+C4teC5iQor4Lib4Li14LmLCivguJvguLXguIEKK+C4m+C4teC4juC4geC4huC4owor4Lib4Li14LiQ4LiB4LiwCivguJvguLXguJDguLAKK+C4m+C4teC5iuC4lAor4Lib4Li14LiV4LiB4Liq4Li04LiTCivguJvguLXguJXguLQKK+C4m+C4teC4mQor4Lib4Li14LiaCivguJvguLXguYrguJoKK+C4m+C4teC5guC4m+C5igor4Lib4Li14Lio4Liy4LiICivguJvguLXguKwKK+C4m+C4teC4rOC4gQor4Lib4Li14Lis4LiyCivguJvguLbguIEKK+C4m+C4tuC4hwor4Lib4Li24LmI4LiHCivguJvguLbguYrguIcKK+C4m+C4tuC5i+C4hwor4Lib4Li24LmJ4LiUCivguJvguLbguYnguJkKK+C4m+C4tuC4oeC4m+C4t+C5ieC4rQor4Lib4Li34LiU4Lib4Li24LiHCivguJvguLfguJkKK+C4m+C4t+C4rQor4Lib4Li34LmJ4LitCivguJvguLfguYvguK0KK+C4m+C4uAor4Lib4Li44LmKCivguJvguLjguIEKK+C4m+C4uOC4geC4m+C4uOC4ogor4Lib4Li44LmK4LiB4Lil4Li44LiBCivguJvguLjguITguKXguLAKK+C4m+C4uOC5ieC4h+C4geC4teC5iwor4Lib4Li44LiH4LiE4LieCivguJvguLjguIfguITguKfguLAKK+C4m+C4uOC4h+C4peC4tOC4h+C4hOC5jAor4Lib4Li44LiH4Lil4Li24LiH4LiE4LmMCivguJvguLjguIjguInguLIKK+C4m+C4uOC4jwor4Lib4Li44LiT4LiR4Lij4Li04LiBCivguJvguLjguJQKK+C4m+C4uOC4leC4leC4sAor4Lib4Li44LiV4LiX4Liy4Lij4LiX4Liy4LiZCivguJvguLjguJbguLjguIrguJkKK+C4m+C4uOC4meC5gOC4l+C5iOC4suC4geC5i+C4hwor4Lib4Li44LiZ4LiZ4Liy4LiECivguJvguLjguJnguKDguJ4KK+C4m+C4uOC4meC4seC4muC4m+C4uOC4meC4seC4hwor4Lib4Li44LiZ4Lix4Lie4Liq4Li4CivguJvguLjguJoKK+C4m+C4uOC5iuC4mgor4Lib4Li44Lia4Lib4Lix4LiaCivguJvguLjguYrguJrguJvguLHguYrguJoKK+C4m+C4uOC4m+C4nOC4sAor4Lib4Li44Lib4LiwCivguJvguLjguJ7guJ7guLAKK+C4m+C4uOC5iOC4oQor4Lib4Li44LmJ4LihCivguJvguLjguYvguKEKK+C4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lib4Li44LmJ4Lih4LmA4Lib4LmJ4LiHCivguJvguLjguYjguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC5ieC4oeC5gOC4m+C4t+C4reC4gQor4Lib4Li44Lih4LiyCivguJvguLjguKIKK+C4m+C4uOC5ieC4ogor4Lib4Li44LmL4LiiCivguJvguLjguKMKK+C4m+C4uOC4o+C4k+C4sAor4Lib4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJvguLjguKPguLLguJMKK+C4m+C4uOC4o+C4suC4k+C4sAor4Lib4Li44Lij4Li04Lih4LiX4Li04LioCivguJvguLjguKPguLTguKHguJ7guKPguKPguKnguLIKK+C4m+C4uOC4o+C4tOC4quC4oOC4suC4p+C4sAor4Lib4Li44Lij4Li04LmC4Liq4LiU4LihCivguJvguLjguYDguKPguIjguLLguKPguLTguIEKK+C4m+C4uOC5guC4o+C4q+C4tOC4lQor4Lib4Li44Lil4Lil4Li04LiH4LiE4LmMCivguJvguLjguKXguKXguLbguIfguITguYwKK+C4m+C4uOC4peC4tOC4meC4l+C5jAor4Lib4Li44Lil4Li5CivguJvguLjguYDguKXguIcKK+C4m+C4uOC5gOC4peC4h+C5hgor4Lib4Li44LmC4Lil4Lib4Li44LmA4LilCivguJvguLjguYHguKvguKXguLAKK+C4m+C4uOC4rOC4p+C4sAor4Lib4Li5CivguJvguLnguYgKK+C4m+C4ueC4iuC4geC4sAor4Lib4Li54LiK4LiZ4Li14Lii4LiwCivguJvguLnguIrguLIKK+C4m+C4ueC4iuC4tOC4lQor4Lib4Li54LiUCivguJvguLnguJTguIHguIHguKrguYnguKHguKHguK0KK+C4m+C4ueC4leC4tAor4Lib4Li54LiZCivguJvguLnguKEKK+C4m+C4ueC5ieC4ouC4ouC4teC5ieC4m+C4ueC5ieC4ouC4swor4Lib4Li54LmI4Lii4LmI4LiyCivguJvguLnguKPguLAKK+C4m+C4ueC4peC4uQor4Lib4Li54Lin4LiyCivguYDguJvguYkKK+C5gOC4m+C5iwor4LmA4Lib4LiBCivguYDguJvguYrguIEKK+C5gOC4m+C4geC4guC5jAor4LmA4Lib4LmI4LiHCivguYDguJvguYnguIcKK+C5gOC4m+C5iuC4hwor4LmA4Lib4LmL4LiHCivguYDguJvguYfguJQKK+C5gOC4m+C5h+C4lOC5hOC4i+C5ieC5hOC4geC5iOC4leC4reC4lOC4quC4peC4seC4geC4o+C4reC4lOC4q+C4oeC4ueC4quC4tQor4LmA4Lib4LmH4LiZCivguYDguJvguYfguJnguJXguYnguJkKK+C5gOC4m+C4ouC4ouC4suC4pQor4LmA4Lib4LijCivguYDguJvguKPguYfguIcKK+C5gOC4m+C4o+C4lQor4LmA4Lib4Lij4LihCivguYDguJvguKPguKIKK+C5gOC4m+C4o+C4ouC5hgor4LmA4Lib4Lij4LitCivguYDguJvguKPguK3guLAKK+C5gOC4m+C4o+C4sgor4LmA4Lib4Lij4Liy4LiwCivguYDguJvguKPguLLguLDguYHguJvguKPguLAKK+C5gOC4m+C4o+C4teC4ouC4hwor4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguYDguJvguKPguLXguKLguI0KK+C5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lib4Lij4Li14LmI4Lii4LihCivguYDguJvguKPguLXguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4pwor4LmA4Lib4Lij4Li14LmJ4Lii4Lin4Lir4Lin4Liy4LiZCivguYDguJvguKPguLXguKLguLAKK+C5gOC4m+C4o+C4teC5iuC4ouC4sAor4LmA4Lib4Lij4Li34LmI4Lit4LiHCivguYDguJvguKPguLfguYnguK3guKIKK+C5gOC4m+C4pQor4LmA4Lib4Lil4LmI4LiHCivguYDguJvguKXguKcKK+C5gOC4m+C4peC4sgor4LmA4Lib4Lil4LmI4LiyCivguYDguJvguKXguYnguLIKK+C5gOC4m+C4peC4suC4sAor4LmA4Lib4Lil4Li14LmJ4LiiCivguYDguJvguKXguLXguYjguKLguJkKK+C5gOC4m+C4peC4teC5iOC4ouC4oQor4LmA4Lib4Lil4Li14LmI4Lii4LinCivguYDguJvguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4m+C4peC4t+C4reC4gQor4LmA4Lib4Lil4Li34Lit4LiB4LiB4Lij4Liw4LmA4LiX4Li14Lii4LihCivguYDguJvguKXguLfguK3guIcKK+C5gOC4m+C4peC4t+C5ieC4reC4hwor4LmA4Lib4Lil4Li34Lit4LiiCivguYDguJvguKgKK+C5gOC4m+C4qOC4pQor4LmA4Lib4Lio4Lix4LiqCivguYDguJvguKrguIHguLLguKMKK+C5gOC4m+C4quC4pQor4LmA4Lib4Liq4Li44LiNCivguYDguJvguKrguLjguYTguJPguKIKK+C5gOC4m+C5i+C4rQor4LmA4Lib4LmJ4Lit4LmA4Lii4LmJ4LitCivguYDguJvguK3guKPguYzguYDguIvguYfguJnguJXguYwKK+C5gOC4m+C5i+C4reC5gOC4q+C4peC4rQor4LmA4Lib4LiwCivguYDguJvguLDguJvguLAKK+C5gOC4m+C4sgor4LmA4Lib4LmI4LiyCivguYDguJvguYnguLIKK+C5gOC4m+C5iuC4sgor4LmA4Lib4LmL4LiyCivguYDguJvguYvguLLguK7guLfguYnguK0KK+C5gOC4m+C4suC4sAor4LmA4Lib4Liy4Liw4LmA4Lib4Li14LmK4Lii4LiwCivguYDguJvguLLguLDguYHguJvguLAKK+C5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAor4LmA4Lib4Li04LiBCivguYDguJvguLTguIcKK+C5gOC4m+C4tOC4h+C5hgor4LmA4Lib4Li04LiH4Lih4Liy4LiHCivguYDguJvguLTguJQKK+C5gOC4m+C4tOC5iOC4mQor4LmA4Lib4Li04LiaCivguYDguJvguLTguYrguJoKK+C5gOC4m+C4tOC4muC4guC5ieC4suC4pwor4LmA4Lib4Li14LiiCivguYDguJvguLXguKLguIEKK+C5gOC4m+C4teC5iuC4ouC4gQor4LmA4Lib4Li14Lii4LmB4LiK4Lij4LmMCivguYDguJvguLXguYrguKLguJoKK+C5gOC4m+C4teC5iOC4ouC4oQor4LmA4Lib4Li14Lii4LinCivguYDguJvguLXguYnguKLguKcKK+C5gOC4m+C4teC4ouC4q+C4p+C4ogor4LmA4Lib4Li14Lii4LiwCivguYDguJvguLfguK3guIEKK+C5gOC4m+C4t+C5ieC4reC4mQor4LmB4LibCivguYHguJvguYnguIcKK+C5geC4m+C5i+C4hwor4LmB4Lib4LmJ4LiH4LmB4LiK4LmICivguYHguJvguJQKK+C5geC4m+C5iuC4lAor4LmB4Lib4LiX4Li5CivguYHguJvguYnguJkKK+C5geC4m+C4mgor4LmB4Lib4LmK4LiaCivguYHguJvguKEKK+C5geC4m+C4owor4LmB4Lib4Lij4LmLCivguYHguJvguKPguIEKK+C5geC4m+C4o+C4hwor4LmB4Lib4Lij4LmI4LiHCivguYHguJvguKPguIfguKXguYnguLLguIfguILguKfguJQKK+C5geC4m+C4o+C4h+C4q+C4ueC4q+C4meC4uQor4LmB4Lib4Lij4LmK4LiUCivguYHguJvguKPguYnguJkKK+C5geC4m+C4o+C5i+C4mQor4LmB4Lib4Lij4LmL4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguLAKK+C5geC4m+C4pQor4LmB4Lib4Lil4LmJCivguYHguJvguKXguIEKK+C5geC4m+C4peC4hwor4LmB4Lib4Lil4LiZCivguYHguJvguKXguJoKK+C5geC4m+C5ieC4pwor4LmB4Lib4LmK4LinCivguYHguJvguYvguKcKK+C5geC4m+C4sAor4LmB4Lib4LmK4LiwCivguYHguJvguYrguLDguIvguLAKK+C5guC4mwor4LmC4Lib4LmICivguYLguJvguYkKK+C5guC4m+C5igor4LmC4Lib4LiBCivguYLguJvguYrguIEKK+C5guC4m+C5iuC4geC5gOC4geC4reC4o+C5jAor4LmC4Lib4LiB4LiC4Lij4LiT4Li1CivguYLguJvguYDguIEKK+C5guC4m+C4hwor4LmC4Lib4LmI4LiHCivguYLguJvguYnguIcKK+C5guC4m+C5iOC4h+C4guC5iOC4suC4oQor4LmC4Lib4LiH4Lil4Liy4LiHCivguYLguJvguYjguIfguKfguLTguJQKK+C5guC4m+C5ieC4h+C5guC4q+C4ouC4hwor4LmC4Lib4LiQ4Lib4LiX4LiyCivguYLguJvguJTguIEKK+C5guC4m+C4leC4luC4geC4sAor4LmC4Lib4LiZCivguYLguJvguJsKK+C5guC4m+C5iuC4ouC4geC4seC5ieC4gQor4LmC4Lib4LmK4Lii4LmA4LiL4Li14Lii4LiZCivguYLguJvguKPguIcKK+C5guC4m+C4o+C5iOC4hwor4LmC4Lib4Lij4LiUCivguYLguJvguKPguJXguK3guJkKK+C5guC4m+C4o+C4leC4teC4mQor4LmC4Lib4Lij4LmA4LiV4Liq4LmB4LiV4LiZ4LiV4LmMCivguYLguJvguKPguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5guC4m+C4o+C4ogor4LmC4Lib4Lij4Li14Liq4Lig4LiyCivguYLguJvguKXguYjguIcKK+C5guC4m+C4peC4tOC5guC4rQor4LmC4Lib4LmC4LilCivguYLguJvguKoKK+C5guC4m+C4quC4gQor4LmC4Lib4Liq4LiB4Liy4Lij4LmM4LiUCivguYLguJvguKrguYDguJXguK3guKPguYwKK+C5guC4m+C4quC4suC4p+C4meC4tOC4geC4oeC4ueC4pQor4LmC4Lib4LiwCivguYLguJvguYrguLAKK+C5guC4m+C5iuC4sOC4iOC5ieC4suC4ogor4LmE4LibCivguYTguJvguYgKK+C5hOC4m+C5iwor4LmE4Lib4LmL4LmA4Lib4LmLCivguYTguJvguKLguLLguKUKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC5jAor4LmE4Lib4Lil4LmICivguYTguJvguKjguLLguIgKK+C5hOC4m+C4qOC4suC4iOC4tQor4LicCivguJzguIEKK+C4nOC4geC5gOC4o+C4t+C4reC4gQor4Lic4LiB4LiyCivguJzguIHguLLguKIKK+C4nOC4hOC4oQor4Lic4LiHCivguJzguIfguIEKK+C4nOC4h+C4oQor4Lic4LiH4LijCivguJzguIfguK3guJkKK+C4nOC4h+C4reC4mgor4Lic4LiH4LiwCivguJzguIfguLLguJQKK+C4nOC4h+C5iOC4suC4mQor4Lic4LiI4LiHCivguJzguIjguI0KK+C4nOC4iOC4seC4jQor4Lic4LiI4Liy4LiZCivguJzguIrguLjguKEKK+C4nOC4jeC4sgor4Lic4LiT4LiwCivguJzguJPguLTguJkKK+C4nOC4lAor4Lic4LiU4Li44LiHCivguJzguYDguJTguLTguJkKK+C4nOC4l+C4oQor4Lic4LiZ4Lin4LiBCivguJzguJnguKfguIoKK+C4nOC4meC4seC4hwor4Lic4LiZ4Li04LiUCivguJzguJnguLbguIEKK+C4nOC4oQor4Lic4Lih4LiZ4Liy4LiHCivguJzguKLguK3guIcKK+C4nOC4ouC5iOC4s+C5gOC4nOC4ouC4rQor4Lic4Lij4Liq4Li4CivguJzguKPguLTguJUKK+C4nOC4o+C4uOC4nuC4gQor4Lic4LilCivguJzguKXguIEKK+C4nOC4peC4hOC4uOC4mQor4Lic4Lil4LiE4Li44LiZ4Li1CivguJzguKXguIcKK+C4nOC4peC4rQor4Lic4Lil4LmH4Lit4LiHCivguJzguKXguYfguK3guKIKK+C4nOC4peC4sAor4Lic4Lil4Lix4LiBCivguJzguKXguLHguJQKK+C4nOC4peC4seC4mgor4Lic4Lil4Lix4Lin4LiwCivguJzguKXguLIKK+C4nOC4peC4suC4jQor4Lic4Lil4Li0CivguJzguKXguLTguIHguLAKK+C4nOC4peC4tOC4lQor4Lic4Lil4Li04LiZCivguJzguKXguLUKK+C4nOC4peC4teC4nOC4peC4suC4oQor4Lic4Lil4Li24LiBCivguJzguKXguLbguYjguIcKK+C4nOC4peC4t+C4rQor4Lic4Lil4Li4CivguJzguKXguLjguIcKK+C4nOC4peC4uOC4lAor4Lic4Lil4Li44LiZCivguJzguKXguLjguJoKK+C4nOC4peC4uOC4ogor4Lic4Lil4Li5CivguJzguKfguLIKK+C4nOC4quC4oQor4Lic4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguJzguKrguLLguJkKK+C4nOC4quC4suC4ogor4Lic4Liq4Liy4LijCivguJzguK3guIEKK+C4nOC4reC4hwor4Lic4LmI4Lit4LiHCivguJzguYjguK3guJkKK+C4nOC4reC4mgor4Lic4Lit4LihCivguJzguYfguK3guKIKK+C4nOC5iOC4reC4ogor4Lic4Lit4Lin4LiUCivguJzguK3guLnguJkKK+C4nOC4sAor4Lic4Liw4LmB4LiE4LiHCivguJzguLDguJTguLIKK+C4nOC4sOC4quC4sgor4Lic4Liw4Lir4Lih4Li1CivguJzguLDguK3guK3guJoKK+C4nOC4sOC4reC4t+C4lOC4nOC4sOC4reC4oQor4Lic4Lix4LiBCivguJzguLHguIHguYTguIEKK+C4nOC4seC4geC4guC4p+C4hwor4Lic4Lix4LiB4LiC4Li14LmJ4LiC4Lin4LiHCivguJzguLHguIHguYLguInguKEKK+C4nOC4seC4geC4iuC4tQor4Lic4Lix4LiB4LiV4Lia4LiK4Lin4LiyCivguJzguLHguIHguJfguK3guJTguKLguK3guJQKK+C4nOC4seC4geC4muC4uOC5ieC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiC4Lix4LiZCivguJzguLHguIHguJrguLjguYnguIfguIjguLXguJkKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4l+C4sOC5gOC4pQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lid4Lij4Lix4LmI4LiHCivguJzguLHguIHguJrguLjguYnguIfguKPguYnguKfguKEKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4o+C4seC5ieC4pwor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4LiiCivguJzguLHguIHguYDguJrguLXguYnguKLguYPguKvguI3guYgKK+C4nOC4seC4geC4m+C4peC4seC4hwor4Lic4Lix4LiB4Lib4Li44LmI4Lih4Lib4Lil4LiyCivguJzguLHguIHguYDguJzguYfguJQKK+C4nOC4seC4geC5hOC4nOC5iAor4Lic4Lix4LiB4Lij4Li54LmJ4LiZ4Lit4LiZCivguJzguLHguIHguYHguKfguYjguJkKK+C4nOC4seC4geC4quC4suC4mgor4Lic4Lix4LiB4Liq4Liy4Lih4Lir4Liy4LinCivguJzguLHguIHguYDguKrguLXguYnguKLguJkKK+C4nOC4seC4geC4q+C4meC4reC4gQor4Lic4Lix4LiB4Lir4LiZ4Lit4LiHCivguJzguLHguIHguKvguJnguLLguKEKK+C4nOC4seC4geC4q+C4p+C4suC4mQor4Lic4Lix4LiB4LmE4Lir4LihCivguJzguLHguIHguK3guLXguYHguJvguLAKK+C4nOC4seC4hOC4hOC4uOC4kwor4Lic4Lix4LiE4LiE4Li44LiT4Li1CivguJzguLHguIcKK+C4nOC4seC4lAor4Lic4Lix4LiZCivguJzguLHguJoKK+C4nOC4seC4peC4hOC4uOC4meC4tQor4Lic4Lix4LinCivguJzguLHguKfguLAKK+C4nOC4seC4quC4quC4sAor4Lic4LiyCivguJzguYjguLIKK+C4nOC5ieC4sgor4Lic4Liy4LiBCivguJzguLLguIcKK+C4nOC5iOC4suC4hwor4Lic4Liy4LiT4Li04LiVCivguJzguLLguJQKK+C4nOC4suC4leC4tAor4Lic4LmI4Liy4LiZCivguJzguLLguKEKK+C4nOC4suC4ogor4Lic4LmI4Liy4LiiCivguJzguYnguLLguKIKK+C4nOC4suC4pQor4Lic4Liy4Lil4LiE4Li44LiZCivguJzguLLguKXguLIKK+C4nOC5iOC4suC4pwor4Lic4Liy4Liq4Li44LiBCivguJzguYnguLLguK7guLLguJQKK+C4nOC4swor4Lic4LmJ4Liz4LmGCivguJzguLQKK+C4nOC4tOC4hwor4Lic4Li04LiUCivguJzguLTguJTguIEKK+C4nOC4tOC4lQor4Lic4Li04LiZCivguJzguLTguKcKK+C4nOC4tQor4Lic4Li14LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJzguLXguYnguKfguYwKK+C4nOC4tuC4hwor4Lic4Li24LmI4LiHCivguJzguLbguYnguIcKK+C4nOC4t+C5iOC4mQor4Lic4Li4CivguJzguLjguJQKK+C4nOC4uOC4ouC4nOC4hwor4Lic4Li44Liq4Lij4Liy4LiE4LiyCivguJzguLnguYkKK+C4nOC4ueC4gQor4LmA4LicCivguYDguJzguIcKK+C5gOC4nOC4iuC4tOC4jQor4LmA4Lic4LmH4LiUCivguYDguJzguJTguYfguIgKK+C5gOC4nOC4lOC4tOC4oQor4LmA4Lic4LiU4Li14Lii4LiHCivguYDguJzguYjguJkKK+C5gOC4nOC4meC4tOC4gQor4LmA4Lic4LiiCivguYDguJzguKLguK0KK+C5gOC4nOC4ouC4tOC4mgor4LmA4Lic4LilCivguYDguJzguKXguYgKK+C5gOC4nOC4peC5iQor4LmA4Lic4Lil4LmH4LiUCivguYDguJzguKXguK0KK+C5gOC4nOC4peC4sAor4LmA4Lic4Lil4Liy4LiwCivguYDguJzguKXguLLguLDguYHguJzguKXguLAKK+C5gOC4nOC4peC4teC4ouC4hwor4LmA4Lic4Lit4LmA4Lij4LitCivguYDguJzguK3guLTguI0KK+C5gOC4nOC4reC4tOC4pQor4LmA4Lic4LiwCivguYDguJzguLIKK+C5gOC4nOC5iOC4sgor4LmA4Lic4LmJ4LiyCivguYDguJzguYnguLLguJzguIcKK+C5gOC4nOC4suC4sAor4LmA4Lic4Li04LmJ4LiHCivguYDguJzguLTguJkKK+C5gOC4nOC4tOC4meC5hgor4LmA4Lic4Li14Lii4LiZCivguYDguJzguLXguKLguLAKK+C5gOC4nOC4t+C4rQor4LmA4Lic4Li34LmI4LitCivguYDguJzguLfguK3guIEKK+C5gOC4nOC4t+C4reC4lAor4LmA4Lic4Li34Lit4LiZCivguYDguJzguLfguYjguK3guJkKK+C5geC4nOC5iAor4LmB4Lic4LiBCivguYHguJzguIcKK+C5geC4nOC4lAor4LmB4Lic4LiU4LmA4Lic4LiyCivguYHguJzguJTguYDguKrguLXguKLguIcKK+C5geC4nOC4mQor4LmB4Lic4LmI4LiZCivguYHguJzguJnguIEKK+C5geC4nOC4pQor4LmB4Lic4Lil4LiHCivguYHguJzguKXguYfguJoKK+C5geC4nOC4peC5h+C4muC5hgor4LmB4Lic4Lil4LmH4LinCivguYHguJzguKXguLAKK+C5geC4nOC5iOC4pwor4LmB4Lic4LmJ4LinCivguYLguJwKK+C5guC4nOC4hwor4LmC4Lic4LiP4LiQ4Lix4Lie4Lie4LiwCivguYLguJzguJkKK+C5guC4nOC4ogor4LmC4Lic4Lil4LmICivguYLguJzguKXguIHguYDguJzguKXguIEKK+C5guC4nOC4peC4sAor4LmC4Lic4Lit4LiZCivguYLguJzguLAKK+C5hOC4nAor4LmE4Lic4LmICivguYTguJzguJcKK+C5hOC4nOC5iOC4nOC4seC4hwor4LidCivguJ3guJkKK+C4neC4o+C4seC5iOC4hwor4Lid4Lij4Lix4LmI4LiH4LmA4Lio4LiqCivguJ3guKPguLHguYjguJkKK+C4neC5iOC4rQor4Lid4Lit4LiiCivguJ3guLHguIEKK+C4neC4seC4geC4neC5iOC4suC4ogor4Lid4Lix4LiB4LmD4Lid4LmICivguJ3guLHguIcKK+C4neC4seC5iOC4hwor4Lid4Lix4LiUCivguJ3guLHguJkKK+C4neC4sgor4Lid4LmI4LiyCivguJ3guYnguLIKK+C4neC4suC4gQor4Lid4Liy4LiHCivguJ3guLLguJQKK+C4neC4suC4mQor4Lid4Liy4LiiCivguJ3guYjguLLguKIKK+C4neC5ieC4suC4ogor4Lid4Li04LmI4LiZCivguJ3guLUKK+C4neC4teC5iAor4Lid4Li14LiBCivguJ3guLXguKvguKHguK3guJoKK+C4neC4tuC4gQor4Lid4Li34LiUCivguJ3guLfguJkKK+C4neC4uOC5iOC4mQor4Lid4Li54LiHCivguYDguJ3guYnguLIKK+C5gOC4neC4t+C4rQor4LmA4Lid4Li34Lit4LiBCivguYDguJ3guLfguK3guIcKK+C5gOC4neC4t+C5iOC4reC4mQor4LmB4Lid4LiBCivguYHguJ3guIcKK+C5geC4neC4lAor4LmD4Lid4LmICivguYTguJ0KK+C4ngor4Lie4LiBCivguJ7guIHguIjguKMKK+C4nuC4geC4meC4uOC5iOC4mQor4Lie4LiB4Lie4LmI4Liy4LiiCivguJ7guIHguKXguKEKK+C4nuC4geC4q+C4tOC4mQor4Lie4LiB4Lit4Liy4Lin4Li44LiYCivguJ7guIHguLIKK+C4nuC4geC4uOC4o+C4sAor4Lie4LiB4Li44LilCivguJ7guIcKK+C4nuC4h+C4qOC5jAor4Lie4LiI4LiZ4LmMCivguJ7guIjguJnguLIKK+C4nuC4iOC4meC4suC4o+C4lgor4Lie4LiI4LiZ4Li14Lii4LmMCivguJ7guIjguKHguLLguJkKK+C4nuC4iOC4tQor4Lie4LiK4Lij4LiwCivguJ7guI3guLIKK+C4nuC4jeC4suC4kwor4Lie4LiN4Liy4LmE4LifCivguJ7guI3guLLguKXguK0KK+C4nuC4k+C4tOC4igor4Lie4LiT4Li04LiK4Lii4LmMCivguJ7guJQKK+C4nuC4mOC4uQor4Lie4LiZCivguJ7guYjguJkKK+C4nuC5ieC4mQor4Lie4LiZ4LihCivguJ7guJnguK3guIcKK+C4nuC4meC4reC4oQor4Lie4LiZ4Lix4LiBCivguJ7guJnguLHguIHguIfguLLguJkKK+C4nuC4meC4seC4hwor4Lie4LiZ4Lix4LiU4LijCivguJ7guJnguLHguJkKK+C4nuC4meC4seC4qgor4Lie4LiZ4LiyCivguJ7guJnguLLguJQKK+C4nuC4meC4suC4meC4lOC4owor4Lie4LiZ4Liy4LiZ4LiV4LmMCivguJ7guJnguLLguKIKK+C4nuC4meC4tOC4lOC4sgor4Lie4LiZ4Li04LiVCivguJ7guJnguLXguKLguIEKK+C4nuC5gOC4meC4gQor4Lie4LmA4LiZ4LiI4LijCivguJ7guJoKK+C4nuC4muC4uQor4Lie4Lih4LmI4LiyCivguJ7guKLguIoKK+C4nuC4ouC4iuC4meC5jAor4Lie4Lii4LiV4Li04LmA4Lij4LiBCivguJ7guKLguJnguJXguYwKK+C4nuC4ouC4qAor4Lie4Lii4Lix4LiBCivguJ7guKLguLHguITguIbguYwKK+C4nuC4ouC4seC4iuC4meC5jAor4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguJ7guKLguLHguJUKK+C4nuC4ouC4seC4mgor4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguJ7guKLguLLguIbguKPguYwKK+C4nuC4ouC4suC4h+C4hOC5jAor4Lie4Lii4Liy4LiY4Li0CivguJ7guKLguLLguJkKK+C4nuC4ouC4suC4muC4suC4lwor4Lie4Lii4Liy4Lia4Liy4LilCivguJ7guKLguLLguKEKK+C4nuC4ouC4suC4ouC4suC4oQor4Lie4Lii4Liy4LilCivguJ7guKLguLgKK+C4nuC4ouC4uOC4hwor4Lie4Lii4Li44Lir4LijCivguJ7guKLguLjguKvguLAKK+C4nuC4ouC4ueC5iOC4q+C5jAor4Lie4LmA4Lii4Li14LiiCivguJ7guKMKK+C4nuC4o+C4lQor4Lie4Lij4LihCivguJ7guKPguKHguITguJQKK+C4nuC4o+C4oeC5geC4lOC4mQor4Lie4Lij4Lih4Lih4Li0CivguJ7guKPguKPguIQKK+C4nuC4o+C4o+C4hOC5jAor4Lie4Lij4Lij4LiE4Liy4LiZ4LiV4LmMCivguJ7guKPguKPguJMKK+C4nuC4o+C4o+C4k+C4meC4sgor4Lie4Lij4Lij4LiT4Lij4Liy4LiiCivguJ7guKPguKPguJTguLbguIEKK+C4nuC4o+C4o+C4peC4suC4ogor4Lie4Lij4Lij4LipCivguJ7guKPguKPguYDguKvguLIKK+C4nuC4o+C4o+C5gOC4reC4tOC4jQor4Lie4Lij4Lin4LiH4LmA4Lie4Lij4Li14Lii4LiHCivguJ7guKPguKfguJQKK+C4nuC4o+C4p+C4mQor4Lie4Lij4Lir4LihCivguJ7guKPguK3guIEKK+C4nuC4o+C5iOC4reC4hwor4Lie4Lij4LmJ4Lit4LiHCivguJ7guKPguK3guJQKK+C4nuC4o+C5ieC4reC4oQor4Lie4Lij4LmI4Lit4Lih4Lie4Lij4LmJ4LitCivguJ7guKPguYjguK3guKIKK+C4nuC4o+C5ieC4reC4ogor4Lie4Lij4LiwCivguJ7guKPguLDguIjguLHguJnguJfguKPguYzguITguKPguLbguYjguIfguIvguLXguIEKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4peC4reC4ouC4luC4suC4lAor4Lie4Lij4Liw4LmA4LiI4LmJ4Liy4Lir4LmJ4Liy4Lie4Lij4Liw4Lit4LiH4LiE4LmMCivguJ7guKPguLDguJnguK3guKEKK+C4nuC4o+C4sOC4meC4suC4lAor4Lie4Lij4Liw4Lii4Liy4LmA4Lil4LmH4Lia4LiE4Lij4Li44LiRCivguJ7guKPguLDguKLguLLguKfguLHguJkKK+C4nuC4o+C4sOC4peC4mgor4Lie4Lij4Liw4Lil4Li34LitCivguJ7guKPguLDguYHguKfguKcKK+C4nuC4o+C4sOC4q+C4sgor4Lie4Lij4Liw4Lir4Liy4LihCivguJ7guKPguLDguKvguLTguJQKK+C4nuC4o+C4sOC4ruC4suC4oQor4Lie4Lij4Lix4LiB4Lie4Lij4LmJ4Lit4LihCivguJ7guKPguLHguYjguIcKK+C4nuC4o+C4seC4lAor4Lie4Lij4Lix4LmI4LiZCivguJ7guKPguLHguJoKK+C4nuC4o+C5iOC4sgor4Lie4Lij4LmJ4LiyCivguJ7guKPguLLguIEKK+C4nuC4o+C4suC4hwor4Lie4Lij4LmI4Liy4LiHCivguJ7guKPguLLguJQKK+C4nuC4o+C4suC4mQor4Lie4Lij4Liy4LiiCivguJ7guKPguLLguKcKK+C4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lie4Lij4Liy4Lir4Lih4LiT4Li1CivguJ7guKPguLLguKvguKHguLUKK+C4nuC4o+C4swor4Lie4Lij4LmI4LizCivguJ7guKPguYnguLMKK+C4nuC4o+C4s+C5hgor4Lie4Lij4Li04LiBCivguJ7guKPguLTguYnguIcKK+C4nuC4o+C4tOC4mgor4Lie4Lij4Li04Lia4LmE4Lir4LinCivguJ7guKPguLTguYnguKEKK+C4nuC4o+C4tuC4hwor4Lie4Lij4Li24LiZCivguJ7guKPguLbguJoKK+C4nuC4o+C4t+C4lAor4Lie4Lij4Li34LmJ4LitCivguJ7guKPguLgKK+C4nuC4o+C4uOC4gQor4Lie4Lij4Li44LmI4LiHCivguJ7guKPguLjguYjguIfguJnguLXguYkKK+C4nuC4o+C4uOC4mQor4Lie4Lij4Li5CivguJ7guKPguLnguJQKK+C4nuC4pOC4geC4qeC5jAor4Lie4Lik4LiSCivguJ7guKTguJLguLIKK+C4nuC4pOC4kuC4tAor4Lie4Lik4LiVCivguJ7guKTguJXguLQKK+C4nuC4pOC4l+C4mOC5jAor4Lie4Lik4LiX4LiY4Li04LmMCivguJ7guKTguJnguJXguYwKK+C4nuC4pOC4meC4l+C5jAor4Lie4Lik4LiZ4LiX4Liy4LijCivguJ7guKTguJnguJfguLTguYwKK+C4nuC4pOC4oOC4ueC4qeC4kwor4Lie4Lik4Lig4Li54Lip4Li04LiVCivguJ7guKTguKnguIjguLTguIEKK+C4nuC4pOC4qeC4oAor4Lie4Lik4Lir4Lix4Liq4Lia4LiU4Li1CivguJ7guKUKK+C4nuC4peC4geC4suC4ogor4Lie4Lil4LiB4Liy4LijCivguJ7guKXguILguLHguJnguJjguYwKK+C4nuC4peC4hOC4p+C4suC4oQor4Lie4Lil4LmA4LiX4LieCivguJ7guKXguJoKK+C4nuC4peC5gOC4oeC4t+C4reC4hwor4Lie4Lil4LmA4Lij4Li34Lit4LiZCivguJ7guKXguYLguKXguIEKK+C4nuC4peC4p+C4gQor4Lie4Lil4Lin4LiHCivguJ7guKXguKfguJTguIHguLTguJnguKXguLnguIEKK+C4nuC4peC4p+C4lOC5g+C4q+C4jeC5iAor4Lie4Lil4Lin4Lix4LiVCivguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4nuC4peC4qOC4teC4geC4qeC4sgor4Lie4Lil4Liq4Li04LiH4Lir4LmMCivguJ7guKXguK0KK+C4nuC4peC5ieC4rQor4Lie4Lil4Lit4LiHCivguJ7guKXguK3guJQKK+C4nuC4peC4reC4mQor4Lie4Lil4Lit4Lih4LmB4Lie4Lil4LihCivguJ7guKXguK3guKIKK+C4nuC4peC5iOC4reC4ogor4Lie4Lil4LiwCivguJ7guKXguLDguIHguLPguKXguLHguIcKK+C4nuC4peC4sOC4nuC4peC4sgor4Lie4Lil4Lix4LmI4LiBCivguJ7guKXguLHguIcKK+C4nuC4peC4seC5iOC4hwor4Lie4Lil4Lix4LmJ4LiHCivguJ7guKXguLHguJQKK+C4nuC4peC4seC4mQor4Lie4Lil4Lix4LiaCivguJ7guKXguLHguJrguJ7guKXguLIKK+C4nuC4peC4seC4muC4nuC4peC4tuC4hwor4Lie4Lil4Lix4LmI4LinCivguJ7guKXguYjguLIKK+C4nuC4peC4suC4geC4owor4Lie4Lil4Liy4LiHCivguJ7guKXguLLguI0KK+C4nuC4peC4suC4lAor4Lie4Lil4Liy4LiU4Li04Lio4Lix4LiiCivguJ7guKXguLLguJjguLTguIHguLLguKMKK+C4nuC4peC5iOC4suC4mQor4Lie4Lil4Liy4LiZ4Liy4Lih4Lix4LiiCivguJ7guKXguLLguJnguLbguIEKK+C4nuC4peC4suC4oQor4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLLguKIKK+C4nuC4peC4suC4ouC4oeC5ieC4sgor4Lie4Lil4Liy4Liq4LiV4Li04LiBCivguJ7guKXguLLguKrguKHguLIKK+C4nuC4peC4suC4q+C4gQor4Lie4Lil4LizCivguJ7guKXguYnguLMKK+C4nuC4peC4s+C4oOC4seC4hwor4Lie4Lil4Li0CivguJ7guKXguLTguIEKK+C4nuC4peC4tOC4nuC4seC4lwor4Lie4Lil4Li04LmJ4LinCivguJ7guKXguLUKK+C4nuC4peC4teC4oeC4uOC4ggor4Lie4Lil4Li4CivguJ7guKXguLjguIEKK+C4nuC4peC4uOC5iOC4gQor4Lie4Lil4Li44LiB4Lie4Lil4LmI4Liy4LiZCivguJ7guKXguLjguYjguIcKK+C4nuC4peC4uOC5ieC4mQor4Lie4Lil4Li44LmI4Lih4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLjguYjguKIKK+C4nuC4peC4uOC5ieC4ogor4Lie4Lil4Li5CivguJ7guKXguLnguYHguIEKK+C4nuC4peC4ueC4hOC4suC4pwor4Lie4Lil4Li54LiV4LmJ4LiZCivguJ7guKXguLnguYLguJUKK+C4nuC4peC4ueC5guC4l+C5gOC4meC4teC4ouC4oQor4Lie4Lin4LiBCivguJ7guKfguIcKK+C4nuC5iOC4p+C4hwor4Lie4Lin4LiZCivguJ7guKfguKIKK+C4nuC4quC4gQor4Lie4Liq4LiZCivguJ7guKrguLgKK+C4nuC4quC4uOC4quC4h+C4geC4o+C4suC4meC4leC5jAor4Lie4Lir4LilCivguJ7guKvguLgKK+C4nuC4q+C4uOC4pQor4Lie4Lir4Li5CivguJ7guK0KK+C4nuC5iOC4rQor4Lie4LmJ4LitCivguJ7guK3guIEKK+C4nuC4reC4geC4nuC4ueC4mQor4Lie4Lit4LiE4LmA4LiB4LiV4Lia4Li44LiECivguJ7guYjguK3guITguYnguLLguJXguLXguYDguKHguLXguKIKK+C4nuC4reC4hwor4Lie4LmJ4Lit4LiHCivguJ7guK3guJkKK+C4nuC5ieC4reC4oQor4Lie4Lit4LmC4Lil4LmA4LiZ4Li14Lii4LihCivguJ7guLAKK+C4nuC5iOC4sAor4Lie4Liw4LiH4LiyCivguJ7guLDguIfguLLguJoKK+C4nuC4sOC4h+C4suC4muC5hgor4Lie4Liw4LiI4LiHCivguJ7guLDguJfguLPguKHguLDguKPguIcKK+C4nuC4sOC4meC4rQor4Lie4Liw4LmA4LiZ4LmJ4Liy4Lie4Liw4LiZ4LitCivguJ7guLDguYDguJnguYnguLLguJ7guLDguJnguLbguIcKK+C4nuC4sOC5gOC4meC4tOC4mQor4Lie4Liw4LmA4LiZ4Li14Lii4LiHCivguJ7guLDguYHguJnguIcKK+C4nuC4sOC5hOC4meC4ogor4Lie4Liw4Lie4Liy4LiZCivguJ7guLDguJ7guLTguIcKK+C4nuC4sOC5gOC4nuC4tOC4hwor4Lie4Liw4Lii4Lit4LihCivguJ7guLDguKLguLjguJ7guKLguLjguIcKK+C4nuC4sOC4ouC4ueC4hwor4Lie4Liw4Lii4Li54LiZCivguJ7guLDguYDguKLguLTguJoKK+C4nuC4sOC5gOC4ouC4tOC4muC5hgor4Lie4Liw4LmA4Lii4Li14LiiCivguJ7guLDguKPguLjguIfguJ7guLDguKPguLHguIcKK+C4nuC4sOC5gOC4peC4ogor4Lie4Liw4LmC4Lil4LmJCivguJ7guLDguYTguKUKK+C4nuC4sOC4p+C4hwor4Lie4Liw4Lin4Lix4LiB4Lie4Liw4Lin4LiZCivguJ7guLDguKfguLIKK+C4nuC4sOC4p+C5ieC4suC4nuC4sOC4p+C4seC4hwor4Lie4Liw4Lit4LiHCivguJ7guLDguK3guLLguIHguJ7guLDguK3guLMKK+C4nuC4sOC4reC4t+C4lOC4nuC4sOC4reC4oQor4Lie4Lix4LiBCivguJ7guLHguIHguJXguKPguYwKK+C4nuC4seC4geC4leC4o+C4sgor4Lie4Lix4LiB4LiV4LiyCivguJ7guLHguIHguYHguJ7guKcKK+C4nuC4seC4geC4owor4Lie4Lix4LiHCivguJ7guLHguIfguIHguLIKK+C4nuC4seC4h+C4hOC4sgor4Lie4Lix4LiH4LiH4LiyCivguJ7guLHguIfguJzguLfguJQKK+C4nuC4seC4h+C4nuC4p+C4ogor4Lie4Lix4LiH4Lie4Lit4LiZCivguJ7guLHguIfguJ7guLLguJkKK+C4nuC4seC4h+C4nuC4suC4mgor4Lie4Lix4LiH4LmA4Lie4LiiCivguJ7guLHguIfguKXguLLguIcKK+C4nuC4seC4igor4Lie4Lix4LiK4LiZ4Li1CivguJ7guLHguIrguKMKK+C4nuC4seC4jeC4iOC4gQor4Lie4Lix4LiN4LiI4LiZ4LmMCivguJ7guLHguJLguIHguLUKK+C4nuC4seC4kuC4meC4sAor4Lie4Lix4LiS4LiZ4LiyCivguJ7guLHguJQKK+C4nuC4seC4lOC4iuC4sgor4Lie4Lix4LiU4LiL4Liy4LiUCivguJ7guLHguJTguJTguLbguIfguKrguYwKK+C4nuC4seC4lOC5geC4nuC4pwor4Lie4Lix4LiU4Lir4Lil4Lin4LiHCivguJ7guLHguJXguJXguLTguIfguKrguLAKK+C4nuC4seC4leC4owor4Lie4Lix4LiX4LiY4LmMCivguJ7guLHguJfguJjguKLguLIKK+C4nuC4seC4l+C4owor4Lie4Lix4LiZCivguJ7guLHguJnguIfguLkKK+C4nuC4seC4meC4iOC4swor4Lie4Lix4LiZ4LmE4LiJ4LiZCivguJ7guLHguJnguJXguLHguJkKK+C4nuC4seC4meC4leC4uQor4Lie4Lix4LiZ4LiX4Liy4LiHCivguJ7guLHguJnguJjguYwKK+C4nuC4seC4meC4mOC4meC4sAor4Lie4Lix4LiZ4LiY4LiZ4LizCivguJ7guLHguJnguJjguLAKK+C4nuC4seC4meC4mOC4uAor4Lie4Lix4LiZ4LiY4Li44LmMCivguJ7guLHguJnguKXguK3guIEKK+C4nuC4seC4meC4peC4suC4ogor4Lie4Lix4LiZ4Lil4LizCivguJ7guLHguJnguKXguLbguIEKK+C4nuC4seC4meC4peC4tuC4geC4nuC4seC4meC4peC4t+C4rQor4Lie4Lix4LiZ4LmA4Lil4Li04LioCivguJ7guLHguJnguYDguK3guLTguI0KK+C4nuC4seC4mgor4Lie4Lix4Lia4Lic4LmI4LiyCivguJ7guLHguJ8KK+C4nuC4seC4peC4peC4oAor4Lie4Lix4Lil4Lin4Lix4LiZCivguJ7guLHguKcKK+C4nuC4seC4p+C4sAor4Lie4Lix4Lio4LiU4Li1CivguJ7guLHguKrguJTguLgKK+C4nuC4seC4quC5gOC4lOC4sgor4Lie4Lix4Liq4LiV4Lij4LmMCivguJ7guLHguKrguJbguLLguJkKK+C4nuC4sgor4Lie4Liy4LiBCivguJ7guLLguIHguYDguJ7guLXguKLguKMKK+C4nuC4suC4geC4ouC5jAor4Lie4Liy4LiHCivguJ7guYjguLLguIcKK+C4nuC4suC4iuC4tQor4Lie4Liy4LiTCivguJ7guLLguJPguLTguIoKK+C4nuC4suC4k+C4tOC4iuC4ouC5jAor4Lie4Liy4LiT4Li04LiZ4Li1CivguJ7guLLguJPguLUKK+C4nuC4suC4lAor4Lie4Liy4LiU4LmE4LiJ4LiZCivguJ7guLLguJUKK+C4nuC4suC4lwor4Lie4Liy4LiX4Lii4LmMCivguJ7guLLguJgKK+C4nuC4suC4mOC4sgor4Lie4Liy4LiZCivguJ7guYjguLLguJkKK+C4nuC4suC4meC4owor4Lie4Liy4LihCivguJ7guLLguKIKK+C4nuC5iOC4suC4ogor4Lie4Liy4Lii4Lih4LmJ4LiyCivguJ7guLLguKLguLHguJ4KK+C4nuC4suC4ouC4uAor4Lie4Liy4Lij4LmM4LmA4LiL4LiBCivguJ7guLLguKPguJMKK+C4nuC4suC4o+C4k+C4sAor4Lie4Liy4Lij4LmM4LiV4LmA4LiZ4Lit4Lij4LmMCivguJ7guLLguKPguLIKK+C4nuC4suC4o+C4suC4n+C4tOC4mQor4Lie4Liy4LilCivguJ7guLLguKXguLIKK+C4nuC4suC4peC4tQor4Lie4Liy4Lil4Li14Lir4Lil4Liy4Lii4Lir4LiZ4LmJ4LiyCivguJ7guLLguKXguLjguIEKK+C4nuC4suC5guC4pQor4Lie4Liy4LmE4LilCivguJ7guLLguKoKK+C4nuC4suC4quC4meC5jAor4Lie4Liy4Liq4LiZ4LiyCivguJ7guLLguKrguLjguIHguKPguLUKK+C4nuC5iOC4suC4q+C5jAor4Lie4Liy4Lir4LiZ4LiwCivguJ7guLLguKvguLAKK+C4nuC4suC4q+C4sgor4Lie4Liy4Lir4Li04Lij4LiB4LiwCivguJ7guLLguKvguLTguKPguLAKK+C4nuC4suC4q+C4uAor4Lie4Liy4LmA4Lir4Lij4LiUCivguJ7guLLguYDguKvguLXguKLguKMKK+C4nuC4suC4rAor4Lie4Liy4Lis4Lir4LiwCivguJ7guLLguKzguLAKK+C4nuC4swor4Lie4Liz4LmG4Lie4Li24Lih4LmGCivguJ7guLPguJnguLHguIEKK+C4nuC4s+C4nuC4p+C4gQor4Lie4Liz4Lie4Li24LihCivguJ7guLPguKXguLIKK+C4nuC4tOC4geC4pQor4Lie4Li04LiB4Liq4Li04LiVCivguJ7guLTguIHguLHguJQKK+C4nuC4tOC4geC4seC4leC4tAor4Lie4Li04LiB4Lix4LiZCivguJ7guLTguIHguLLguKMKK+C4nuC4tOC4geC4uOC4pQor4Lie4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ7guLTguIbguJnguYwKK+C4nuC4tOC4huC5gOC4meC4qAor4Lie4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguJ7guLTguIbguLLguJUKK+C4nuC4tOC4hwor4Lie4Li04LiI4LilCivguJ7guLTguIjguLHguKIKK+C4nuC4tOC4iOC4suC4owor4Lie4Li04LiI4Liy4Lij4LiT4LmMCivguJ7guLTguIjguLLguKPguJPguLIKK+C4nuC4tOC4iOC4tOC4lQor4Lie4Li04LiI4Li04LiV4LijCivguJ7guLTguIrguI3guYwKK+C4nuC4tOC4iuC4ogor4Lie4Li04LiK4Lix4LiiCivguJ7guLTguIrguLLguJkKK+C4nuC4tOC4iuC4tOC4lQor4Lie4Li04LmA4LiK4LiQCivguJ7guLTguYDguIrguLXguKLguKMKK+C4nuC4tOC4keC4ueC4o+C4ouC5jAor4Lie4Li04LiTCivguJ7guLTguJTguJfguLnguKUKK+C4nuC4tOC4lOC4o+C4gQor4Lie4Li04LiU4Liy4LiZCivguJ7guLTguYLguJTguKMKK+C4nuC4tOC4leC4owor4Lie4Li04LiW4Li1CivguJ7guLTguJbguLXguJ7guLTguJbguLHguJkKK+C4nuC4tOC4l+C4ouC5jAor4Lie4Li04LiX4Lii4LiyCivguJ7guLTguJfguLHguIHguKnguYwKK+C4nuC4tOC4l+C4seC4geC4qeC5jOC4quC4seC4meC4leC4tAor4Lie4Li04LiX4Li54LijCivguJ7guLTguYDguJfguKgKK+C4nuC4tOC4mOC4suC4mQor4Lie4Li04LiY4Li1CivguJ7guLTguJjguLgKK+C4nuC4tOC4mOC4uOC4owor4Lie4Li04LmC4LiY4LmICivguJ7guLTguJnguJfguLgKK+C4nuC4tOC4meC4nuC4hwor4Lie4Li04LmI4LiZ4Lie4Lix4LmI4LiHCivguJ7guLTguJnguK3guJrguJ7guLTguYDguJfguLIKK+C4nuC4tOC4meC4seC4ogor4Lie4Li04LiZ4Liy4LioCivguJ7guLTguJnguLTguIgKK+C4nuC4tOC4meC4tOC4lQor4Lie4Li04LiZ4Li04LioCivguJ7guLTguJnguLTguKjguIjguLHguKIKK+C4nuC4tOC5gOC4meC4lQor4Lie4Li04Lia4Lix4LiV4Li0CivguJ7guLTguJrguLLguIEKK+C4nuC4tOC4muC4uOC4pQor4Lie4Li04Lia4Li54LilCivguJ7guLTguJvguKPguLTguJUKK+C4nuC4tOC4m+C4peC4suC4qAor4Lie4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguJ7guLTguJ7guKPguKPguJgKK+C4nuC4tOC4nuC4o+C4o+C4mOC4meC5jAor4Lie4Li04Lie4Lix4LiB4Lie4Li04Lie4LmI4Lin4LiZCivguJ7guLTguJ7guLHguJIKK+C4nuC4tOC4nuC4seC4kuC4meC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LmMCivguJ7guLTguJ7guLLguIHguKnguLIKK+C4nuC4tOC4nuC4suC4lwor4Lie4Li04Lie4Li04LiYCivguJ7guLTguKDguJ4KK+C4nuC4tOC4oOC4seC4igor4Lie4Li04Lig4Liy4LiECivguJ7guLTguKDguLnguKnguJPguLAKK+C4nuC4tOC5gOC4oOC4gQor4Lie4Li04Lih4Lie4LmMCivguJ7guLTguKHguJ7guIHguLLguKPguLHguIcKK+C4nuC4tOC4oeC4nuC4sgor4Lie4Li04Lih4LmC4Lie4Lir4LiZ4LiwCivguJ7guLTguKHguKUKK+C4nuC4tOC4oeC5gOC4quC4mQor4Lie4Li04Lih4Liy4LiZCivguJ7guLTguKHguLjguIIKK+C4nuC4tOC5guC4oeC4geC4guC5jAor4Lie4Li04LmC4Lih4LiB4Lip4LmMCivguJ7guLTguYLguKLguIHguJ7guLTguYDguIHguJkKK+C4nuC4tOC5guC4ouC4hAor4Lie4Li04LijCivguJ7guLTguKPguK3guJQKK+C4nuC4tOC4o+C4suC4geC4pQor4Lie4Li04Lij4Liy4LiaCivguJ7guLTguKPguLLguKEKK+C4nuC4tOC4o+C4suC4peC4seC4ogor4Lie4Li04Lij4Li04Lii4LiwCivguJ7guLTguKPguLXguYnguJ7guLTguYTguKMKK+C4nuC4tOC4o+C4uOC4kwor4Lie4Li04Lij4Li44LiYCivguJ7guLTguKPguLjguKzguKvguYwKK+C4nuC4tOC5gOC4o+C4meC4l+C4o+C5jAor4Lie4Li04LmA4Lij4Liy4LiwCivguJ7guLTguYLguKPguJgKK+C4nuC4tOC5guC4o+C4mOC4meC4sAor4Lie4Li04LmE4LijCivguJ7guLTguKXguLHguIfguIHguLLguKrguLIKK+C4nuC4tOC4peC4suC4mwor4Lie4Li04Lil4Liy4Lil4LiqCivguJ7guLTguKXguLLguKoKK+C4nuC4tOC4peC4tOC4m+C4lOC4sgor4Lie4Li04LmC4Lil4LilCivguJ7guLTguYTguKUKK+C4nuC4tOC4qAor4Lie4Li04Lio4Lin4LiHCivguJ7guLTguKjguKfguLLguKoKK+C4nuC4tOC4qOC4suC4pQor4Lie4Li04Lio4Li44LiX4LiY4Li04LmMCivguJ7guLTguYDguKjguKkKK+C4nuC4tOC4qQor4Lie4Li04Lip4LiQ4Liy4LiZCivguJ7guLTguKnguJnguLLguKjguJnguYwKK+C4nuC4tOC4quC4lOC4suC4owor4Lie4Li04Liq4Lih4LijCivguJ7guLTguKrguKHguLHguKIKK+C4nuC4tOC4quC4seC4hwor4Lie4Li04Liq4Lix4LiKCivguJ7guLTguKrguLHguI3guI3guLUKK+C4nuC4tOC4quC4seC4ogor4Lie4Li04Liq4Li04LiQCivguJ7guLTguKrguLjguJfguJjguLTguYwKK+C4nuC4tOC4quC4ueC4iOC4meC5jAor4Lie4Li04Lir4LiECivguJ7guLTguKvguLLguKMKK+C4nuC4tOC4rOC4suC4owor4Lie4Li1CivguJ7guLXguYgKK+C4nuC4teC5iQor4Lie4Li14LiKCivguJ7guLXguIrguITguJPguLTguJUKK+C4nuC4teC5ieC5guC4nuC5iQor4Lie4Li14Lij4Liw4Lih4Li04LiUCivguJ7guLbguIcKK+C4nuC4tuC5iOC4hwor4Lie4Li24LmI4LiaCivguJ7guLbguKEKK+C4nuC4tuC4oeC4nuC4swor4Lie4Li34LiKCivguJ7guLfguJQKK+C4nuC4t+C5ieC4mQor4Lie4Li4CivguJ7guLjguIEKK+C4nuC4uOC4geC4suC4oQor4Lie4Li44LiHCivguJ7guLjguYjguIcKK+C4nuC4uOC4h+C5geC4gQor4Lie4Li44LiH4LiI4LiHCivguJ7guLjguIfguJTguK0KK+C4nuC4uOC4h+C4l+C4sOC4peC4suC4ogor4Lie4Li44LiH4Lib4Lil4LiyCivguJ7guLjguJIKK+C4nuC4uOC4kuC4tAor4Lie4Li44LiUCivguJ7guLjguJTguJXguLLguJkKK+C4nuC4uOC4l+C4mAor4Lie4Li44LiX4LiY4LiK4Liy4LiUCivguJ7guLjguJfguJjguKPguLHguIHguKnguLIKK+C4nuC4uOC4l+C4mOC4sAor4Lie4Li44LiX4LiY4Li0CivguJ7guLjguJfguYLguJjguYgKK+C4nuC4uOC4l+C4o+C4sgor4Lie4Li44LiYCivguJ7guLjguYjguKEKK+C4nuC4uOC4oeC5gOC4o+C4teC4ouC4hwor4Lie4Li44LmJ4LiiCivguJ7guLkKK+C4nuC4ueC5iAor4Lie4Li54LiB4Liy4LihCivguJ7guLnguJQKK+C4nuC4ueC4mQor4Lie4Li54LmJ4LiZCivguYDguJ4KK+C5gOC4nuC5h+C4gQor4LmA4Lie4LiB4LiyCivguYDguJ7guITguLAKK+C5gOC4nuC5h+C4hwor4LmA4Lie4LmI4LiHCivguYDguJ7guYfguIgKK+C5gOC4nuC4iuC4ieC4peC4ueC4geC4o+C4o+C4oQor4LmA4Lie4LiK4LiM4LiG4Liy4LiVCivguYDguJ7guIrguKMKK+C5gOC4nuC4iuC4o+C4geC4peC4seC4mgor4LmA4Lie4LiK4Lij4LiU4LiyCivguYDguJ7guIrguKPguJnguLTguKXguIjguLTguJnguJTguLIKK+C5gOC4nuC4iuC4o+C4m+C4o+C4suC4k+C4tQor4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMCivguYDguJ7guIrguKPguKrguLHguIfguIbguLLguJUKK+C5gOC4nuC4iuC4o+C4q+C4peC4teC4gQor4LmA4Lie4LiK4Lij4Lir4Li24LiHCivguYDguJ7guIrguKPguLLguKLguLjguJgKK+C5gOC4nuC5h+C4jQor4LmA4Lie4LiR4Li54Lij4Li04Lii4LmMCivguYDguJ7guJPguLUKK+C5gOC4nuC5h+C4lOC4l+C4ueC4pQor4LmA4Lie4LiU4Liy4LiZCivguYDguJ7guJXguKMKK+C5gOC4nuC4lwor4LmA4Lie4LiX4LiZ4LiyCivguYDguJ7guJfguKLguLLguJjguKMKK+C5gOC4nuC4l+C4suC4ogor4LmA4Lie4LiX4Li44Lia4Liy4LiiCivguYDguJ7guYLguJfguJrguLLguKIKK+C5gOC4nuC4meC4geC4p+C4tOC4mQor4LmA4Lie4LmI4LiZ4Lie4LmI4Liy4LiZCivguYDguJ7guJnguLXguKLguJQKK+C5gOC4nuC5ieC4ogor4LmA4Lie4Lij4LiHCivguYDguJ7guKPguIvguLXguYLguK3guJTguLXguYDguKHguLXguKLguKEKK+C5gOC4nuC4o+C4sgor4LmA4Lie4Lij4Liy4LiwCivguYDguJ7guKPguLTguJQKK+C5gOC4nuC4o+C4tOC4qAor4LmA4Lie4Lij4Li14Lii4LiBCivguYDguJ7guKPguLXguKLguIcKK+C5gOC4nuC4o+C4teC4ouC4mgor4LmA4Lie4Lij4Li14LmJ4Lii4LihCivguYDguJ7guKPguLXguKLguKcKK+C5gOC4nuC4o+C4t+C5iOC4rQor4LmA4Lie4Lij4Li34Lit4LiHCivguYDguJ7guKUKK+C5gOC4nuC4peC4hwor4LmA4Lie4Lil4LmH4LiUCivguYDguJ7guKXguYnguYLguJ7guKXguYkKK+C5gOC4nuC4peC4sgor4LmA4Lie4Lil4Liy4LiwCivguYDguJ7guKXguLLguLDguYHguJ7guKXguLAKK+C5gOC4nuC4peC4tOC4hwor4LmA4Lie4Lil4Li04LiU4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLTguJkKK+C5gOC4nuC4peC4teC4ogor4LmA4Lie4Lil4Li14LmJ4LiiCivguYDguJ7guKXguLXguYjguKLguIcKK+C5gOC4nuC4qAor4LmA4Lie4Lio4Lii4Lix4LiZ4LiU4LijCivguYDguJ7guKoKK+C5gOC4nuC4quC4peC4suC4lAor4LmA4Lie4LmI4LitCivguYDguJ7guYnguK0KK+C5gOC4nuC4reC4tOC4jQor4LmA4Lie4LiwCivguYDguJ7guLTguIEKK+C5gOC4nuC4tOC4geC5gOC4ieC4ogor4LmA4Lie4Li04LiHCivguYDguJ7guLTguYjguIcKK+C5gOC4nuC4tOC4lOC5gOC4nuC5ieC4ogor4LmA4Lie4Li04LmI4LihCivguYDguJ7guLXguYnguKIKK+C5gOC4nuC4teC4ouC4hwor4LmA4Lie4Li14LmJ4Lii4LiHCivguYDguJ7guLXguKLguIfguK3guK0KK+C5gOC4nuC4teC4ouC4iuC4meC5jAor4LmA4Lie4Li14Lii4LiZCivguYDguJ7guLXguYnguKLguJkKK+C5gOC4nuC4teC4ouC4mgor4LmA4Lie4Li14Lii4LijCivguYDguJ7guLfguYjguK0KK+C5gOC4nuC4t+C5iOC4reC4mQor4LmB4LieCivguYHguJ7guYkKK+C5geC4nuC4hwor4LmB4Lie4LmI4LiHCivguYHguJ7guIfguJ7guKfguKIKK+C5geC4nuC4h+C4nuC4p+C4ouC4neC4o+C4seC5iOC4hwor4LmB4Lie4LmH4LiH4LmB4Lie4LinCivguYHguJ7guJfguKLguYwKK+C5geC4nuC4l+C4ouC4sgor4LmB4Lie4LiZCivguYHguJ7guYjguJkKK+C5geC4nuC4meC4gQor4LmB4Lie4LiZ4LiH4LmA4LiK4Li04LiHCivguYHguJ7guJnguJTguLIKK+C5geC4nuC4owor4LmB4Lie4Lij4LmICivguYHguJ7guKPguIEKK+C5geC4nuC4o+C5iOC4hwor4LmB4Lie4Lij4LinCivguYHguJ7guKPguYnguKcKK+C5geC4nuC4peC4hwor4LmB4Lie4Lil4LiX4Li04LiZ4Lix4LihCivguYHguJ7guKXguKEKK+C5geC4nuC4peC5gOC4peC5gOC4lOC4teC4ouC4oQor4LmB4Lie4Lil4LiwCivguYHguJ7guKXguLDguYLguKXguKEKK+C5geC4nuC4pwor4LmB4Lie4LmJ4LinCivguYHguJ7guKjguKLguYwKK+C5geC4nuC4qOC4ouC4sgor4LmB4Lie4LiwCivguYHguJ7guLDguYLguKXguKEKK+C5guC4ngor4LmC4Lie4LiBCivguYLguJ7guIHguJ7guLLguKIKK+C5guC4nuC4hwor4LmC4Lie4LiH4Lie4Liy4LiHCivguYLguJ7guIrguIzguIfguITguYwKK+C5guC4nuC4i+C4tOC4leC4o+C4reC4mQor4LmC4Lie4LiUCivguYLguJ7guYHguJfguKrguYDguIvguLXguKLguKEKK+C5guC4nuC4mAor4LmC4Lie4LiY4Li04LmMCivguYLguJ7guJkKK+C5guC4nuC5ieC4mQor4LmC4Lie4LiZ4LiX4Liw4LiZ4LiyCivguYLguJ7guJrguLLguKIKK+C5guC4nuC4nOC4seC4mQor4LmC4Lie4LiiCivguYLguJ7guKLguKEKK+C5guC4nuC4ouC4oeC4seC4mQor4LmC4Lie4Lii4Lih4Liy4LiZCivguYLguJ7guKPguIEKK+C5guC4nuC4o+C4hwor4LmC4Lie4Lij4LmC4LiX4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYLguJ7guKPguKHguLXguYDguJfguLXguKLguKEKK+C5guC4nuC4o+C4sOC4lOC4gQor4LmC4Lie4Lil4LmICivguYLguJ7guKXguIcKK+C5guC4nuC4peC5iOC4hwor4LmC4Lie4Lil4LmJ4LiHCivguYLguJ7guKXguJkKK+C5guC4nuC4peC5ieC5gOC4nuC4peC5iQor4LmC4Lie4Lil4LiwCivguYLguJ7guKrguJ4KK+C5hOC4ngor4LmE4Lie4LmICivguYTguJ7guIjguLTguJXguKMKK+C5hOC4nuC4iuC4mQor4LmE4Lie4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guJHguLnguKPguKLguYwKK+C5hOC4nuC5guC4lOC4owor4LmE4Lie4LiX4Li1CivguYTguJ7guJrguLnguKXguKLguYwKK+C5hOC4nuC4nuC4o+C4o+C4kwor4LmE4Lie4LmA4Lie4Li04LiUCivguYTguJ7guKHguK3guIEKK+C5hOC4nuC4oeC5ieC4sgor4LmE4Lie4LijCivguYTguJ7guKPguYgKK+C5hOC4nuC4o+C4iOC4tOC4leC4owor4LmE4Lie4Lij4LiK4LiZCivguYTguJ7guKPguIrguKLguJnguJXguYwKK+C5hOC4nuC4o+C4keC4ueC4o+C4ouC5jAor4LmE4Lie4Lij4LiX4Li1CivguYTguJ7guKPguJrguLnguKXguKLguYwKK+C5hOC4nuC4o+C5gOC4o+C4suC4sAor4LmE4Lie4Lij4Liq4Liy4Lih4LiB4LitCivguYTguJ7guKPguLHguIoKK+C5hOC4nuC4o+C4swor4LmE4Lie4Lij4Li04LiZCivguYTguJ7guKPguLUKK+C5hOC4nuC4o+C4uQor4LmE4Lie4LmA4Lij4Liy4LiwCivguYTguJ7guYLguKPguIjguJnguYwKK+C5hOC4nuC4pQor4LmE4Lie4Lil4LmICivguYTguJ7guKjguLLguIIKK+C5hOC4nuC4qOC4suC4pQor4LmE4Lie4LmA4Lio4LipCivguYTguJ7guKrguJ4KK+C5hOC4nuC4quC4tOC4kAor4LmE4Lie4Lir4Liy4LijCivguJ8KK+C4n+C4gQor4Lif4LmJ4LiHCivguJ/guKPguLHguIHguYLguJfguKoKK+C4n+C4o+C4tQor4Lif4Lil4Lit4Lij4LmM4LmC4LiK4Lin4LmMCivguJ/guKXguLnguK3guK3guKPguLXguJkKK+C4n+C5iOC4rQor4Lif4LmJ4LitCivguJ/guK3guIEKK+C4n+C4reC4hwor4Lif4LmI4Lit4LiHCivguJ/guYnguK3guIcKK+C4n+C4reC4lAor4Lif4Lit4LiZCivguJ/guYjguK3guJkKK+C4n+C5ieC4reC4mQor4Lif4LmJ4Lit4LmB4Lif4LmJCivguJ/guK3guKPguYzguKEKK+C4n+C4reC4o+C5jOC4oeC4suC4peC4lOC4teC5hOC4ruC4lOC5jAor4Lif4Lit4Lij4LmM4Lih4Liy4Lil4Li04LiZCivguJ/guK3guKrguIvguLTguKUKK+C4n+C4reC4quC4n+C4reC4o+C4seC4qgor4Lif4Lit4Liq4LmA4Lif4LiVCivguJ/guLDguJ/guLHguJQKK+C4n+C4sOC4n+C4seC5iOC4mQor4Lif4Liw4Lif4LmI4Liy4LiiCivguJ/guLHguIEKK+C4n+C4seC4geC4n+C4uOC5ieC4mQor4Lif4Lix4LiHCivguJ/guLHguIfguIHguYzguIrguLHguJkKK+C4n+C4seC4h+C5gOC4nuC4o+C4suC4sAor4Lif4Lix4LiUCivguJ/guLHguJkKK+C4n+C4seC5iOC4mQor4Lif4Lix4LmJ4LiZCivguJ/guLHguJnguIrguYnguLLguIcKK+C4n+C5ieC4sgor4Lif4Liy4LiBCivguJ/guLLguIcKK+C4n+C5iOC4suC4hwor4Lif4Liy4LiUCivguJ/guLLguJfguK3guKEKK+C4n+C4suC4mQor4Lif4LmJ4Liy4Lid4LmI4LitCivguJ/guYjguLLguKEKK+C4n+C5ieC4suC4oeC4uOC5iOC4ogor4Lif4Liy4LiiCivguJ/guLLguKPguYzguKEKK+C4n+C4suC4quC4i+C4tOC4quC4leC5jAor4Lif4Li04LiBCivguJ/guLTguJQKK+C4n+C4tOC4lQor4Lif4Li04LiaCivguJ/guLTguKXguYzguKEKK+C4n+C4tOC4p+C4quC5jAor4Lif4Li04Liq4Li04LiB4Liq4LmMCivguJ/guLXguYgKK+C4n+C4teC5iQor4Lif4Li34LiZCivguJ/guLfguYnguJkKK+C4n+C4t+C4oQor4Lif4Li4CivguJ/guLjguYnguIcKK+C4n+C4uOC4lQor4Lif4Li44LiZCivguJ/guLjguJoKK+C4n+C4uOC5iOC4mgor4Lif4Li44Lif4LiwCivguJ/guLjguYjguKHguYDguJ/guLfguK3guKIKK+C4n+C4uOC4peC4quC5geC4geC5iuC4mwor4Lif4Li5CivguJ/guLnguYgKK+C4n+C4ueC4gQor4Lif4Li54LiUCivguJ/guLnguKEKK+C5gOC4n+C5h+C4lAor4LmA4Lif4LmJ4LiZCivguYDguJ/guKXguJTguYzguKrguJvguLLguKPguYwKK+C5gOC4n+C5ieC4rQor4LmA4Lif4Lit4Lij4LmM4LiZ4Li04LmA4LiI4Lit4Lij4LmMCivguYDguJ/guK3guKPguYzguYDguKHguLXguKLguKEKK+C5gOC4n+C4reC4sAor4LmA4Lif4LiwCivguYDguJ/guLTguJkKK+C5gOC4n+C4tOC4o+C5jOC4mQor4LmA4Lif4Li14LmJ4Lii4LihCivguYDguJ/guLXguYnguKLguKcKK+C5gOC4n+C4t+C4rQor4LmA4Lif4Li34LmI4LitCivguYDguJ/guLfguYnguK0KK+C5gOC4n+C4t+C4reC4hwor4LmA4Lif4Li34LmJ4Lit4LiHCivguYDguJ/guLfguK3guJkKK+C5gOC4n+C4t+C4reC4ogor4LmB4Lif4LmICivguYHguJ/guIcKK+C5geC4n+C4iuC4seC5iOC4mQor4LmB4Lif4LiZCivguYHguJ/guJnguIvguLUKK+C5geC4n+C4mgor4LmB4Lif4LmJ4LihCivguYHguJ/guKPguYwKK+C5geC4n+C4o+C4meC5gOC4i+C4teC4ouC4oQor4LmB4Lif4Lil4LiB4LiL4LmMCivguYHguJ/guKXguJUKK+C5geC4n+C4sAor4LmC4Lif4LiB4Lix4LiqCivguYTguJ8KK+C4oAor4Lig4LiECivguKDguITguKfguJTguLUKK+C4oOC4hOC4p+C4seC4lQor4Lig4LiE4Lin4Lix4LiX4LiE4Li14LiV4LiyCivguKDguITguKfguLHguJnguJXguYwKK+C4oOC4hOC4p+C4seC4oQor4Lig4LiE4Lin4LiyCivguKDguITguKfguLLguJkKK+C4oOC4hOC4seC4meC4l+C4peC4sgor4Lig4LiE4Li04LiZ4Li1CivguKDguJMKK+C4oOC4k+C4tOC4lOC4sgor4Lig4LieCivguKDguKHguIHguLLguKMKK+C4oOC4oeC4owor4Lig4Lih4Li4CivguKDguKHguLjguIHguLAKK+C4oOC4oeC4uOC4geC4sgor4Lig4Lii4Lix4LiZ4LiV4Lij4Liy4LiiCivguKDguKLguLLguITguJXguLQKK+C4oOC4owor4Lig4Lij4LiT4Li1CivguKDguKPguJUKK+C4oOC4o+C4leC4p+C4o+C4o+C4qQor4Lig4Lij4LiV4Lio4Liy4Liq4LiV4Lij4LmMCivguKDguKPguKPguJTguKMKK+C4oOC4o+C4o+C4lOC4sgor4Lig4Lij4Lij4Lii4LiyCivguKDguKPguLDguKHguKMKK+C4oOC4o+C4sOC4oeC4o+C4tQor4Lig4Lij4Lix4Liq4LiU4Liy4LipCivguKDguKPguLLguJTguKMKK+C4oOC4o+C4suC4lOC4sgor4Lig4Lij4Li04Lii4LiyCivguKDguKPguLkKK+C4oOC4pOC4h+C4hOC4suC4owor4Lig4Lik4LiU4LiBCivguKDguKTguJTguLUKK+C4oOC4pOC4leC4ouC5jAor4Lig4Lik4LioCivguKDguKTguKnguI/guYwKK+C4oOC4pwor4Lig4Lin4Lix4LiE4LijCivguKDguKfguLHguIfguITguYwKK+C4oOC4seC4geC4guC4sAor4Lig4Lix4LiB4LiU4Li1CivguKDguLHguIHguJXguLAKK+C4oOC4seC4geC4leC4tAor4Lig4Lix4LiB4Lip4LmMCivguKDguLHguIQKK+C4oOC4seC4hOC4meC5jAor4Lig4Lix4LiH4LiE4LiwCivguKDguLHguIfguITguLUKK+C4oOC4seC4iAor4Lig4Lix4LiN4LiK4LiwCivguKDguLHguJPguJHguYwKK+C4oOC4seC4k+C4keC4hOC4o+C4o+C4oAor4Lig4Lix4LiT4LiR4LiZ4LiwCivguKDguLHguJPguJHguLLguITguLLguKMKK+C4oOC4seC4k+C4keC4suC4hOC4suC4o+C4tOC4gQor4Lig4Lix4LiT4LiR4Liy4Lij4Lix4LiB4Lip4LmMCivguKDguLHguJPguJHguLkKK+C4oOC4seC4lQor4Lig4Lix4LiV4LijCivguKDguLHguJfguKMKK+C4oOC4seC4ngor4Lig4Lix4LiiCivguKDguLHguKrguJTguLIKK+C4oOC4seC4quC4leC4o+C4sgor4Lig4Lix4Liq4Lih4LiwCivguKDguLHguKrguKrguKMKK+C4oOC4sgor4Lig4Liy4LiECivguKDguLLguITguKDguLnguKHguLQKK+C4oOC4suC4hOC4ouC5jAor4Lig4Liy4LiE4Lii4Liy4LiZ4Li44Lin4Lix4LiV4Li0CivguKDguLLguITguLTguJnguLUKK+C4oOC4suC4hOC4tOC5hOC4meC4ogor4Lig4Liy4LiE4Li1CivguKDguLLguITguLXguKLguLAKK+C4oOC4suC4iuC4meC4sAor4Lig4Liy4LiK4Li1CivguKDguLLguJMKK+C4oOC4suC4k+C4gQor4Lig4Liy4LiT4Li1CivguKDguLLguJPguLgKK+C4oOC4suC4lOC4owor4Lig4Liy4LiU4LiyCivguKDguLLguJXguKMKK+C4oOC4suC4leC4sgor4Lig4Liy4LiV4Li04LiB4LiwCivguKDguLLguJXguLTguKLguLAKK+C4oOC4suC4leC4uAor4Lig4Liy4LieCivguKDguLLguJ7guKLguYwKK+C4oOC4suC4nuC4ouC4meC4leC5jAor4Lig4Liy4LihCivguKDguLLguKIKK+C4oOC4suC4owor4Lig4Liy4Lij4LiU4Li1CivguKDguLLguKPguJUKK+C4oOC4suC4o+C4leC4tQor4Lig4Liy4Lij4Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguKDguLLguKPguKLguLIKK+C4oOC4suC4o+C5guC4o+C4hwor4Lig4Liy4Lij4LiwCivguKDguLLguKPguLIKK+C4oOC4suC4p+C4meC4sgor4Lig4Liy4Lin4LiwCivguKDguLLguKkKK+C4oOC4suC4qeC4gQor4Lig4Liy4Lip4LiT4LmMCivguKDguLLguKnguLIKK+C4oOC4suC4qeC4tOC4lQor4Lig4Liy4Lip4Li1CivguKDguLLguKoKK+C4oOC4suC4quC4meC5jAor4Lig4Liy4Liq4LiyCivguKDguLLguKrguLjguKMKK+C4oOC4tOC4geC4guC4sgor4Lig4Li04LiB4LiC4Li4CivguKDguLTguIHguILguLjguJnguLUKK+C4oOC4tOC4geC4qeC4sgor4Lig4Li04LiB4Lip4Li4CivguKDguLTguIHguKnguLjguJPguLUKK+C4oOC4tOC4h+C4hOC4suC4owor4Lig4Li04LiH4LiqCivguKDguLTguIfguKrguJnguLAKK+C4oOC4tOC4h+C4quC4owor4Lig4Li04LiN4LmC4LiNCivguKDguLTguJXguJXguLQKK+C4oOC4tOC4lwor4Lig4Li04LiZ4LiX4LmMCivguKDguLTguKLguYLguKIKK+C4oOC4tOC4o+C4oeC4ouC5jAor4Lig4Li04Lij4Lih4Lii4LmM4Liq4Li44Lij4Liy4LiH4LiE4LmMCivguKDguLTguKnguLHguIoKK+C4oOC4tOC4qgor4Lig4Li04Liq4Lix4LiBCivguKDguLXguJXguLAKK+C4oOC4teC4oQor4Lig4Li14Lij4Li4CivguKDguLjguIHguJXguYwKK+C4oOC4uOC4guC4seC4mQor4Lig4Li44LiKCivguKDguLjguI3guIoKK+C4oOC4uOC4lQor4Lig4Li44LihCivguKDguLjguKHguKPguLAKK+C4oOC4uOC4oeC4o+C4sgor4Lig4Li44Lih4Lij4Li04LiZCivguKDguLjguKHguKPguLUKK+C4oOC4uOC4oeC5gOC4o+C4qAor4Lig4Li44LiqCivguKDguLkKK+C4oOC4ueC5iAor4Lig4Li54LmC4LiKCivguKDguLnguJTguLLguJQKK+C4oOC4ueC4lQor4Lig4Li54LiV4Li0CivguKDguLnguJXguLUKK+C4oOC4ueC4oQor4Lig4Li54Lih4Li0CivguKDguLnguKHguLTguITguLjguYnguKHguIHguLHguJkKK+C4oOC4ueC4oeC4tOC5geC4nuC5iQor4Lig4Li54Lih4Li1CivguKDguLnguKPguYLguKXguIEKK+C4oOC4ueC4o+C4tAor4Lig4Li54Lij4Li1CivguKDguLnguKnguLIKK+C4oOC4ueC4qeC4tOC4lQor4LmA4Lig4LiB4LiwCivguYDguKDguITguLAKK+C5gOC4oOC4leC4o+C4sgor4LmA4Lig4LiXCivguYDguKDguKPguKcKK+C5gOC4oOC4o+C4tAor4LmA4Lig4Lij4Li1CivguYDguKDguKrguLHguIoKK+C5gOC4oOC4quC4seC4iuC5gOC4nuC4peC4sgor4LmC4Lig4LiECivguYLguKDguITguJfguKPguLHguJ7guKLguYwKK+C5guC4oOC4hOC4oOC4seC4k+C4keC5jAor4LmC4Lig4LiE4Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguYLguKDguITguLTguJkKK+C5guC4oOC4hOC4tQor4LmC4Lig4LmE4LiE4LiiCivguYLguKDguYTguITguKjguKfguKPguKPguKLguYwKK+C5guC4oOC4igor4LmC4Lig4LiK4LiBCivguYLguKDguIrguJnguYwKK+C5guC4oOC4iuC4meC4sAor4LmC4Lig4LiK4LiZ4Liy4LiB4LijCivguYLguKDguIrguJnguLLguIHguLLguKMKK+C5guC4oOC4iuC4meC4suC4q+C4suC4owor4LmE4Lig4Lij4LieCivguYTguKDguKPguLTguJkKK+C5hOC4oOC4o+C4tQor4LmE4Lig4Lip4Lix4LiK4LiE4Li44Lij4Li4CivguYTguKDguKnguLHguIrguKLguYwKK+C4oQor4Lih4LiBCivguKHguIHguKMKK+C4oeC4geC4o+C4geC4uOC4k+C4keC4pQor4Lih4LiB4Lij4LmA4LiB4LiV4LiZ4LmMCivguKHguIHguKPguJjguKfguLHguIoKK+C4oeC4geC4o+C4nuC4suC4q+C4mQor4Lih4LiB4Lij4Liy4LiB4LijCivguKHguIHguKPguLLguITguKEKK+C4oeC4geC4o+C4suC4peC4seC4ogor4Lih4LiB4Lij4Liy4Lin4Liy4LiqCivguKHguIHguKoKK+C4oeC4geC4uOC4jgor4Lih4LiB4Li44LilCivguKHguITguJgKK+C4oeC4hgor4Lih4LiG4Lin4Lix4LiZCivguKHguIbguLIKK+C4oeC5iOC4hwor4Lih4LiH4LiB4Li44LiOCivguKHguIfguYLguIHguKPguKIKK+C4oeC4h+C4hOC4pQor4Lih4LiH4LiE4Lil4LiI4Lix4LiB4LijCivguKHguIfguITguKXguJ7guLTguJjguLUKK+C4oeC4h+C4hOC4peC4p+C4suC4lwor4Lih4LiH4LiE4Lil4Lin4Liy4LijCivguKHguIfguITguKXguKrguKHguKPguKoKK+C4oeC4h+C4hOC4peC4quC4oeC4seC4ogor4Lih4LiH4LiE4Lil4Liq4Li54LiV4LijCivguKHguIfguITguKXguKvguLHguJXguJbguLUKK+C4oeC4k+C4keC5jAor4Lih4LiT4LiR4LiBCivguKHguJPguJHguJnguLAKK+C4oeC4k+C4keC4mwor4Lih4LiT4LiR4LilCivguKHguJPguJHguLIKK+C4oeC4k+C4keC4suC4o+C4ngor4Lih4LiT4LiR4Li04LijCivguKHguJPguYDguJHguLXguKLguKMKK+C4oeC4k+C4tQor4Lih4LiUCivguKHguJTguYDguJfguYfguIgKK+C4oeC4lOC4ouC4reC4mgor4Lih4LiU4Lil4Li54LiBCivguKHguJTguLLguKIKK+C4oeC4lOC4tQor4Lih4LiV4LiwCivguKHguJXguLQKK+C4oeC4lwor4Lih4LiX4LiZ4LiwCivguKHguJfguJnguLXguKLguLAKK+C4oeC4mOC4uAor4Lih4LiY4Li44Lij4LiwCivguKHguJkKK+C4oeC5iOC4mQor4Lih4LiZ4LiV4LmMCivguKHguJnguJXguKPguYwKK+C4oeC4meC4leC4o+C4tQor4Lih4LiZ4LiX4LmMCivguKHguJnguJfguLTguKMKK+C4oeC4meC4l+C4tOC4o+C4suC4peC4seC4ogor4Lih4LiZ4LmA4LiX4Li14Lii4LijCivguKHguJnguKrguLTguIHguLLguKMKK+C4oeC4meC4seC4qgor4Lih4LiZ4Liy4LmC4LibCivguKHguJnguLTguKHguJnguLIKK+C4oeC4meC4tOC4peC4sgor4Lih4LiZ4Li14Lih4LiZ4LiyCivguKHguJnguLgKK+C4oeC4meC4uOC4jQor4Lih4LiZ4Li44Lip4Lii4LmMCivguKHguJnguLjguKrguLLguKMKK+C4oeC4meC4uQor4Lih4LiZ4Li54Liq4Liy4LijCivguKHguYLguJkKK+C4oeC5guC4meC4o+C4suC4q+C5jAor4Lih4LmC4LiZ4Liq4Liy4LijCivguKHguYLguJnguKrguLLguYDguKPguYgKK+C4oeC5guC4meC4q+C5jOC4o+C4sgor4Lih4Lih4Lix4LiH4LiB4Liy4LijCivguKHguKHguLLguIEKK+C4oeC4ouC4uOC4o+C4sAor4Lih4Lii4Li54LiCCivguKHguKLguLnguKMKK+C4oeC4owor4Lih4Lij4LiB4LiVCivguKHguKPguITguLIKK+C4oeC4o+C4keC4mwor4Lih4Lij4LiT4LmMCivguKHguKPguJPguLAKK+C4oeC4o+C4lOC4gQor4Lih4Lij4Lij4LiECivguKHguKPguKPguITguLIKK+C4oeC4o+C4o+C4leC4ogor4Lih4Lij4Lij4LiV4Lix4LiiCivguKHguKPguKPguJfguJkKK+C4oeC4o+C4o+C4ouC4suC4lwor4Lih4Lij4Lij4LipCivguKHguKPguKrguLjguKEKK+C4oeC4o+C4seC4oeC5gOC4l+C4qAor4Lih4Lij4Liy4LiZ4LiE4Lin4Liy4LiZCivguKHguKPguLTguIgKK+C4oeC4o+C4tOC4ouC4suC4lwor4Lih4Lij4Li14LiI4Li0CivguKHguKPguLgKK+C4oeC4o+C4uOC4lQor4Lih4Lik4LiECivguKHguKTguITguKLguYwKK+C4oeC4pOC4iOC4ieC4sgor4Lih4Lik4LiU4LiBCivguKHguKTguJUKK+C4oeC4pOC4leC4gQor4Lih4Lik4LiV4Lii4Li5CivguKHguKTguJfguLTguIfguITguYwKK+C4oeC4pOC4l+C4uAor4Lih4Lik4LiY4Li4CivguKHguKTguKnguLIKK+C4oeC4pQor4Lih4Lil4LmC4LiECivguKHguKXguJfguLTguJkKK+C4oeC4peC4mQor4Lih4Lil4LmI4LiZCivguKHguKXguKfguIEKK+C4oeC4peC5iOC4reC4mQor4Lih4Lil4LmI4Lit4LiiCivguKHguKXguLAKK+C4oeC4peC4seC4gQor4Lih4Lil4Lix4LiH4LmA4Lih4Lil4Li34Lit4LiHCivguKHguKXguYnguLIKK+C4oeC4peC4suC4gQor4Lih4Lil4LmJ4Liy4LiHCivguKHguKXguLLguJkKK+C4oeC4peC5iOC4suC4mQor4Lih4Lil4Liy4LiiCivguKHguKXguLLguKLguLkKK+C4oeC4peC4suC4pwor4Lih4Lil4LmI4Liy4Lin4LmA4Lih4Lil4LiyCivguKHguKXguLLguKvguKPguLIKK+C4oeC4peC4tOC4mQor4Lih4Lil4Li04LmJ4LiZCivguKHguKXguLfguYjguJkKK+C4oeC4p+C4gQor4Lih4LmI4Lin4LiHCivguKHguKfguJkKK+C4oeC5iOC4p+C4mQor4Lih4LmJ4Lin4LiZCivguKHguKfguKIKK+C4oeC5iOC4p+C4ogor4Lih4LmJ4Lin4LiiCivguKHguKfguKUKK+C4oeC4quC4suC4owor4Lih4Liq4Liy4Lij4LiBCivguKHguKrguLLguKPguITguLHguKUKK+C4oeC4quC4tAor4Lih4Lir4LiB4Lij4Lij4LihCivguKHguKvguKPguJPguJ4KK+C4oeC4q+C4o+C4o+C4hgor4Lih4Lir4Lij4Lij4LiT4LieCivguKHguKvguKPguKrguJ4KK+C4oeC4q+C4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lih4Lir4Lix4LiT4LiT4LieCivguKHguKvguLHguJUKK+C4oeC4q+C4seC4leC4hgor4Lih4Lir4Lix4LiX4LiY4LiZ4LiwCivguKHguKvguLHguJnguJXguYwKK+C4oeC4q+C4seC4nuC4oOC4suC4hAor4Lih4Lir4Lix4LilCivguKHguKvguLHguKXguIHguLAKK+C4oeC4q+C4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lih4Lir4LiyCivguKHguKvguLLguIHguJDguLTguJkKK+C4oeC4q+C4suC4geC4suC4rAor4Lih4Lir4Liy4LiC4Lix4LiZ4LiY4LiBCivguKHguKvguLLguIjguLHguIHguKMKK+C4oeC4q+C4suC4iuC4mQor4Lih4Lir4Liy4LiK4Lix4LiiCivguKHguKvguLLguIrguLLguJXguLQKK+C4oeC4q+C4suC5guC4iuC4leC4o+C4seC4lQor4Lih4Lir4Liy4LiU4LmE4LiX4LiiCivguKHguKvguLLguJTguYDguKXguYfguIEKK+C4oeC4q+C4suC4leC4oeC4sAor4Lih4Lir4Liy4LmE4LiW4LmICivguKHguKvguLLguJfguKfguLXguJsKK+C4oeC4q+C4suC5gOC4l+C4ngor4Lih4Lir4Liy4LmA4LiX4Lie4Li1CivguKHguKvguLLguYDguJfguKfguLUKK+C4oeC4q+C4suC4mOC4suC4leC4uAor4Lih4Lir4Liy4LiZ4Lij4LiBCivguKHguKvguLLguJnguKrguLAKK+C4oeC4q+C4suC4meC4tOC4geC4suC4ogor4Lih4Lir4Liy4LiZ4Li04LilCivguKHguKvguLLguJrguJ7guLTguJXguKMKK+C4oeC4q+C4suC4muC4o+C4tOC4iOC4suC4hAor4Lih4Lir4Liy4Lia4Lix4LiT4LiR4Li04LiVCivguKHguKvguLLguJrguLjguKPguLjguKkKK+C4oeC4q+C4suC4nuC4mQor4Lih4Lir4Liy4Lie4Lij4Lir4LihCivguKHguKvguLLguKDguLLguKPguJUKK+C4oeC4q+C4suC4oOC4tOC5gOC4meC4qeC4geC4o+C4oeC4k+C5jAor4Lih4Lir4Liy4Lig4Li54LiVCivguKHguKvguLLguYDguKHguIYKK+C4oeC4q+C4suC4ouC4suC4mQor4Lih4Lir4Liy4Lii4Li44LiECivguKHguKvguLLguKPguJPguJ4KK+C4oeC4q+C4suC4o+C4suC4igor4Lih4Lir4Liy4Lij4Liy4LiK4Lil4Li14Lil4LiyCivguKHguKvguLLguKTguIHguKnguYwKK+C4oeC4q+C4suC4peC4sOC4peC4p+C4ogor4Lih4Lir4Liy4Lil4Liw4Lil4Liy4LiiCivguKHguKvguLLguKfguIfguKjguYwKK+C4oeC4q+C4suC4p+C4o+C4o+C4hAor4Lih4Lir4Liy4Lin4Lix4LiVCivguKHguKvguLLguKfguLTguJfguKLguLLguKXguLHguKIKK+C4oeC4q+C4suC4qOC4seC4geC4o+C4suC4igor4Lih4Lir4Liy4Lio4Liy4LilCivguKHguKvguLLguKjguLnguJnguKLguYwKK+C4oeC4q+C4suC5gOC4qOC4o+C4qeC4kOC4tQor4Lih4Lir4Liy4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKHguKvguLLguKrguIfguITguKPguLLguKEKK+C4oeC4q+C4suC4quC4lOC4oeC4oOC5jAor4Lih4Lir4Liy4Liq4LiU4LizCivguKHguKvguLLguKrguKHguLjguJfguKMKK+C4oeC4q+C4suC4quC4seC4meC4meC4tOC4muC4suC4lQor4Lih4Lir4Liy4Liq4Liy4Lin4LiBCivguKHguKvguLLguKrguLLguKfguLTguIHguLIKK+C4oeC4q+C4suC4quC4tOC4l+C4mOC4tOC5guC4iuC4hAor4Lih4Lir4Liy4Liq4Li14Lih4LiyCivguKHguKvguLLguYDguKrguKfguIEKK+C4oeC4q+C4suC4q+C4h+C4quC5jAor4Lih4Lir4Liy4Lir4Li04LiH4LiE4Li44LmMCivguKHguKvguLLguK3guLPguJnguLLguIgKK+C4oeC4q+C4suC4reC4s+C4oeC4suC4leC4ouC5jAor4Lih4Lir4Liy4Lit4Li44LiICivguKHguKvguLLguK3guLjguJQKK+C4oeC4q+C4suC4reC4uOC4m+C4o+C4suC4geC4owor4Lih4Lir4Li0CivguKHguKvguLTguIfguKrguYwKK+C4oeC4q+C4tOC4l+C4mOC4tAor4Lih4Lir4Li04LiZ4LiX4LmMCivguKHguKvguLTguKHguLIKK+C4oeC4q+C4tOC4qOC4owor4Lih4Lir4Li04Lio4Lin4LijCivguKHguKvguLTguKkKK+C4oeC4q+C4tOC4qeC4tQor4Lih4Lir4Li24Lih4LiyCivguKHguKvguLjguJTguLTguKTguIHguKnguYwKK+C4oeC4q+C4uOC4o+C4lOC4tQor4Lih4Lir4Li44Lij4LiV4Li04Liq4Lix4LiN4LiN4LiyCivguKHguKvguLkKK+C4oeC5gOC4q+C4meC4l+C4o+C5jAor4Lih4LmA4Lir4Lii4LiH4LiE4LmMCivguKHguYDguKvguKgKK+C4oeC5gOC4q+C4qOC4p+C4owor4Lih4LmA4Lir4Lio4Lix4LiB4LiU4Li04LmMCivguKHguYDguKvguKrguLHguIHguILguYwKK+C4oeC5gOC4q+C4quC4tAor4Lih4LmA4Lir4Liq4Li1CivguKHguYDguKvguLLguKnguJgKK+C4oeC5gOC4q+C4suC4rOC4suC4owor4Lih4LmC4Lir4LiGCivguKHguYLguKvguKPguJfguLbguIEKK+C4oeC5guC4q+C4o+C4quC4ngor4Lih4LmC4Lir4Lij4Li1CivguKHguYLguKvguKnguJgKK+C4oeC5guC4q+C4rOC4suC4owor4Lih4LmE4Lir4Lio4Lin4Lij4Lij4Lii4LmMCivguKHguK0KK+C4oeC4reC4hwor4Lih4LmI4Lit4LiHCivguKHguK3guIfguYLguIHguKXguK3guKLguJTguYwKK+C4oeC4reC4h+C4hOC4o+C5iOC4rQor4Lih4LmI4Lit4LiH4LmA4LiX4LmI4LiHCivguKHguK3guI0KK+C4oeC5iOC4reC4leC5ieC4rQor4Lih4Lit4LmA4LiV4Lit4Lij4LmMCivguKHguK3guJkKK+C4oeC5iOC4reC4mQor4Lih4Lit4LiZ4LmE4LiC4LmICivguKHguK3guJoKK+C4oeC5iOC4reC4ogor4Lih4Lit4Lij4LmM4Lif4Li14LiZCivguKHguK3guKPguLDguIHguLnguYgKK+C4oeC4reC4peC5guC4l+C4qgor4Lih4LmI4Lit4Lil4Lit4LiB4Lih4LmI4Lit4LmB4Lil4LiBCivguKHguYjguK3guK7guYjguK3guKEKK+C4oeC4sAor4Lih4Liw4LiB4Lij4Li54LiUCivguKHguLDguIHguKXguYjguLMKK+C4oeC4sOC4geC4reC4gQor4Lih4Liw4LiB4LmI4Lit4LiHCivguKHguLDguIHguYjguK3guJXguLLguKvguKHguLkKK+C4oeC4sOC4geC4sOC5guC4o+C4meC4tQor4Lih4Liw4LiB4LiyCivguKHguLDguYDguIHguKXguLfguK0KK+C4oeC4sOC5gOC4geC4teC5i+C4ouC4hwor4Lih4Liw4LiC4LmI4Lin4LiHCivguKHguLDguILguKfguLTguJQKK+C4oeC4sOC4guC4suC4oQor4Lih4Liw4LiC4Liy4Lih4LmA4LiX4LioCivguKHguLDguILguLLguKHguJvguYnguK3guKHguJTguLTguJkKK+C4oeC4sOC5gOC4guC4t+C4rQor4Lih4Liw4LmA4LiC4Li34Lit4LiX4Lin4Liy4LiiCivguKHguLDguYDguILguLfguK3guYDguJfguKgKK+C4oeC4sOC5gOC4guC4t+C4reC4nuC4p+C4hwor4Lih4Liw4LmA4LiC4Li34Lit4Lih4Lit4LiNCivguKHguLDguYHguILguYjguJkKK+C4oeC4sOC4hOC4sAor4Lih4Liw4LiE4Lix4LiH4LmB4LiU4LiHCivguKHguLDguITguYjguLIKK+C4oeC4sOC4hOC4s+C5hOC4geC5iAor4Lih4Liw4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguKHguLDguIfguLHguJkKK+C4oeC4sOC4h+C4seC5iOC4pwor4Lih4Liw4LiH4Li44Lih4Lih4Liw4LiH4Liy4Lir4Lil4LiyCivguKHguLDguIvguLHguIEKK+C4oeC4sOC4i+C4suC4hwor4Lih4Liw4LiL4LmI4Liy4LiZCivguKHguLDguJTguLDguILguLXguYnguJnguIEKK+C4oeC4sOC4lOC4seC4mQor4Lih4Liw4LiU4LiyCivguKHguLDguJTguLnguIEKK+C4oeC4sOC5gOC4lOC4q+C4p+C4tQor4Lih4Liw4LmA4LiU4Li34LmI4LitCivguKHguLDguJXguYnguK3guIcKK+C4oeC4sOC4leC4sOC4muC4sAor4Lih4Liw4LiV4Liy4LiUCivguKHguLDguJXguLLguKvguLDguKPguLUKK+C4oeC4sOC4leC4tQor4Lih4Liw4LiV4Li24LmI4LiHCivguKHguLDguJXguLfguYvguJkKK+C4oeC4sOC4leC4ueC4oQor4Lih4Liw4LmB4LiV4LiBCivguKHguLDguJnguLLguKcKK+C4oeC4sOC4m+C4o+C4suC4hwor4Lih4Liw4Lib4Lij4Li04LiHCivguKHguLDguJvguYjguK3guIcKK+C4oeC4sOC4neC5iOC4rQor4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguKHguLDguJ7guKXguLHguJoKK+C4oeC4sOC4nuC4ueC4lAor4Lih4Liw4LmB4Lie4LiZCivguKHguLDguYHguJ7guKPguYnguKcKK+C4oeC4sOC5gOC4n+C4t+C4reC4hwor4Lih4Liw4LmB4Lif4LiZCivguKHguLDguYTguJ8KK+C4oeC4sOC4oeC5iOC4p+C4hwor4Lih4Liw4Lih4LmI4Liy4LinCivguKHguLDguKHguLXguYgKK+C4oeC4sOC4oeC4t+C5iOC4mQor4Lih4Liw4Lih4Li44LiUCivguKHguLDguYDguKHguK0KK+C4oeC4sOC5gOC4oeC4teC4ogor4Lih4Liw4LmA4Lih4Li34LmI4Lit4LiiCivguKHguLDguYHguKEKK+C4oeC4sOC4ouC4hwor4Lih4Liw4Lii4LihCivguKHguLDguKPguLAKK+C4oeC4sOC4o+C4tOC4lAor4Lih4Liw4Lij4Li34LiZCivguKHguLDguKPguLjguKEKK+C4oeC4sOC4o+C4uOC4oeC4oeC4sOC4leC4uOC5ieC4oQor4Lih4Liw4LmA4Lij4LmH4LiHCivguKHguLDguYDguKPguLfguYjguK3guIcKK+C4oeC4sOC5guC4o+C4hwor4Lih4Liw4Lil4Liw4LiB4LitCivguKHguLDguKXguLLguKPguK3guIHguLHguJkKK+C4oeC4sOC4peC4swor4Lih4Liw4Lil4Li0CivguKHguLDguKXguLTguJkKK+C4oeC4sOC4peC4tOC5iOC4oQor4Lih4Liw4Lil4Li04LmA4Lil4Li34LmJ4Lit4LiiCivguKHguLDguKXguLTguK3guYjguK3guIcKK+C4oeC4sOC4peC4t+C5iOC4mQor4Lih4Liw4Lil4Li34Lih4LiU4LizCivguKHguLDguKXguLjguKXguLUKK+C4oeC4sOC4p+C4suC4owor4Lih4Liw4Lir4Lil4Li04LmI4LihCivguKHguLDguKvguKfguJQKK+C4oeC4sOC4q+C4sOC4q+C4oeC4seC4lAor4Lih4Liw4Lir4Lix4LilCivguKHguLDguKvguLLguJQKK+C4oeC4sOC4q+C4tOC5iOC4hwor4Lih4Liw4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguKHguLDguK3guLbguIEKK+C4oeC4sOC4ruC4reC4geC4geC4suC4meC4tQor4Lih4Lix4LiBCivguKHguLHguIHguIHguLDguKXguLXguJzguKUKK+C4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lih4Lix4LiB4LiC4LiwCivguKHguLHguYjguIHguILguLHguYnguIEKK+C4oeC4seC4geC4guC4tOC4geC4sgor4Lih4Lix4LiB4LiC4Li04LiB4Liy4LiK4Liy4LiV4Li0CivguKHguLHguIHguI/guIHguLAKK+C4oeC4seC4geC4j+C4sAor4Lih4Lix4LiE4LiE4LiwCivguKHguLHguITguITguLjguYDguJfguKjguIHguYwKK+C4oeC4seC4hOC4quC4tOC4o+C4sAor4Lih4Lix4LiG4Lin4LiyCivguKHguLHguIbguKfguLLguJkKK+C4oeC4seC5iOC4hwor4Lih4Lix4LiH4LiB4LiHCivguKHguLHguIfguIHguKMKK+C4oeC4seC4h+C4geC4uAor4Lih4Lix4LiH4LiE4Lil4LiwCivguKHguLHguIfguITguYjguLIKK+C4oeC4seC4h+C4hOC4uOC4lAor4Lih4Lix4LiH4LiV4Liy4LiZCivguKHguLHguIfguKrguLAKK+C4oeC4seC4h+C4quC4tQor4Lih4Lix4LiH4Lir4LiH4Lix4LiZCivguKHguLHguIjguIjguLAKK+C4oeC4seC4iOC4iOC4uAor4Lih4Lix4LiI4LiJ4Lij4LiwCivguKHguLHguIjguInguKPguLTguKLguLAKK+C4oeC4seC4iOC4ieC4o+C4tQor4Lih4Lix4LiI4LiJ4LiwCivguKHguLHguIjguInguLIKK+C4oeC4seC4iuC4iuC4sAor4Lih4Lix4LiK4LiK4Liy4LijCivguKHguLHguI3guIjguIEKK+C4oeC4seC4jeC4iOC4sgor4Lih4Lix4LiN4LiK4Li04Lip4LiQCivguKHguLHguI3guIrguLTguKnguJDguLIKK+C4oeC4seC4jeC4iuC4teC4owor4Lih4Lix4LiN4LiK4Li4CivguKHguLHguI3guIrguLjguKrguLIKK+C4oeC4seC4jeC4iuC4ueC4quC4sgor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4LiwCivguKHguLHguI3guYDguIrguI/guJDguLTguIHguLIKK+C4oeC4seC4jeC5gOC4iuC4teC4ouC4owor4Lih4Lix4LiP4LiQ4LiwCivguKHguLHguJPguJHguJnguLIKK+C4oeC4seC4k+C4keC4uOC4gQor4Lih4Lix4LiUCivguKHguLHguJTguKvguKHguLXguYgKK+C4oeC4seC4lOC4q+C4oeC4uQor4Lih4Lix4LiU4Lir4Lin4Liy4LiiCivguKHguLHguJXguJXguLAKK+C4oeC4seC4leC4leC4seC4ogor4Lih4Lix4LiV4LiV4LiyCivguKHguLHguJXguJXguLTguIHguLIKK+C4oeC4seC4leC4luC4gQor4Lih4Lix4LiV4LiW4Lil4Li44LiH4LiE4LmMCivguKHguLHguJXguKIKK+C4oeC4seC4leC4quC4ouC4sAor4Lih4Lix4LiV4Liq4Lii4LiyCivguKHguLHguJXguKrguKMKK+C4oeC4seC4leC4quC4o+C4o+C4ouC5jAor4Lih4Lix4LiX4LiZ4LiwCivguKHguLHguJfguJnguLXguKLguLAKK+C4oeC4seC4l+C4ouC4sAor4Lih4Lix4LiY4Lii4LihCivguKHguLHguJjguKLguKHguLIKK+C4oeC4seC4mOC4ouC4seC4meC4q+C5jAor4Lih4Lix4LiY4Lii4Lix4Liq4LiW4LmMCivguKHguLHguJkKK+C4oeC4seC5iOC4mQor4Lih4Lix4LiZ4LiU4Li1CivguKHguLHguJnguJXguLIKK+C4oeC4seC4meC4luC4sAor4Lih4Lix4LiZ4LiX4Li04LijCivguKHguLHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4seC4meC5hOC4quC5iQor4Lih4Lix4LiaCivguKHguLHguJrguYYKK+C4oeC4seC5ieC4oQor4Lih4Lix4Lih4Lih4Li14LmICivguKHguLHguKIKK+C4oeC4seC4peC4gQor4Lih4Lix4Lil4Lil4LiwCivguKHguLHguKXguKXguLTguIHguLIKK+C4oeC4seC4pwor4Lih4Lix4LmI4LinCivguKHguLHguKjguKLguLIKK+C4oeC4seC4quC4lOC4gQor4Lih4Lix4Liq4LiU4Li4CivguKHguLHguKrguJXguLLguKPguYzguJQKK+C4oeC4seC4quC4leC4uAor4Lih4Lix4Liq4Lih4Lix4LmI4LiZCivguKHguLHguKrguKLguLTguJQKK+C4oeC4seC4quC4o+C4ueC5iAor4Lih4Lix4Liq4Lil4Li04LiZCivguKHguLHguKrguKrguLgKK+C4oeC4sgor4Lih4LmJ4LiyCivguKHguLLguIEKK+C4oeC4suC4hOC4quC4tOC4o+C4sAor4Lih4Liy4LiG4LiwCivguKHguYnguLLguIcKK+C4oeC4suC4h+C4quC4sAor4Lih4Liy4LiT4LieCivguKHguLLguJPguKfguLTguIHguLIKK+C4oeC4suC4lAor4Lih4Liy4LiU4LiyCivguKHguLLguJXguIfguITguYwKK+C4oeC4suC4leC4owor4Lih4Liy4LiV4Lij4LiB4Liy4LijCivguKHguLLguJXguKPguIjguK3guJTguKPguJYKK+C4oeC4suC4leC4o+C4kOC4suC4mQor4Lih4Liy4LiV4Lij4LmB4Lih4LmJ4LiZCivguKHguLLguJXguKPguKfguYjguLIKK+C4oeC4suC4leC4o+C4sgor4Lih4Liy4LiV4LikCivguKHguLLguJXguKTguIHguLAKK+C4oeC4suC4leC4quC4o+C4o+C4ouC5jAor4Lih4Liy4LiV4Lix4LiH4LiECivguKHguLLguJXguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiwCivguKHguLLguJXguLLguKHguKvguLHguKLguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4LiyCivguKHguLLguJXguLTguIEKK+C4oeC4suC4leC4tOC4geC4sgor4Lih4Liy4LiV4Li1CivguKHguLLguJXguLgKK+C4oeC4suC4leC4uOC4iOC4ieC4sgor4Lih4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguKHguLLguJXguLjguYDguKPguKgKK+C4oeC4suC4leC4uOC4peC4sAor4Lih4Liy4LiV4Li44Lil4LiyCivguKHguLLguJXguLjguKXguLLguJnguLUKK+C4oeC4suC4leC4uOC4peC4uOC4h+C4hOC5jAor4Lih4Liy4LiXCivguKHguLLguJfguJkKK+C4oeC5ieC4suC4l+C4peC4suC4ouC5guC4o+C4hwor4Lih4Liy4LiY4Lii4Lih4Li04LiB4LiwCivguKHguLLguJjguLjguKMKK+C4oeC4suC4mOC4uOC4quC4owor4Lih4Liy4LiY4Li54LijCivguKHguLLguJkKK+C4oeC5iOC4suC4mQor4Lih4LmJ4Liy4LiZCivguKHguLLguJnguJ4KK+C4oeC5iOC4suC4meC4peC4suC4ogor4Lih4LmI4Liy4LiZ4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKHguLLguJnguLAKK+C4oeC4suC4meC4seC4lQor4Lih4Liy4LiZ4Lix4LiqCivguKHguLLguJnguLTguJUKK+C4oeC4suC4meC4tQor4Lih4Liy4LiZ4Li44LipCivguKHguLLguYLguJnguIrguI3guYwKK+C4oeC4suC4mgor4Lih4Liy4Lib4LiBCivguKHguLLguKDguLIKK+C4oeC5ieC4suC4oQor4Lih4Liy4LiiCivguKHguYjguLLguKIKK+C4oeC5ieC4suC4ogor4Lih4Liy4Lii4Lix4LiHCivguKHguLLguKLguLIKK+C4oeC4suC4owor4Lih4Liy4Lij4LiECivguKHguLLguKPguITguK3guKvguK3guKIKK+C4oeC4suC4o+C4iuC4tAor4Lih4Liy4Lij4LiK4Li04LiVCivguKHguLLguKPguJTguKMKK+C4oeC4suC4o+C4lOC4sgor4Lih4Liy4Lij4LmM4LiU4Li04LiB4Lij4Liy4Liq4LmMCivguKHguLLguKPguJzguIjguI0KK+C4oeC4suC4o+C4ouC4sgor4Lih4Liy4Lij4Lii4Liy4LiXCivguKHguLLguKPguKfguLTguIrguLHguKIKK+C4oeC4suC4o+C4p+C4tOC4iuC4tOC4lQor4Lih4Liy4Lij4LmA4Lin4LiV4Liy4LilCivguKHguLLguKPguKjguKPguLUKK+C4oeC4suC4o+C4qeC4sgor4Lih4Liy4Lij4Liq4Lix4LiH4LiE4LihCivguKHguLLguKPguKvguLHguKfguILguJkKK+C4oeC4suC4o+C4q+C4seC4p+C5g+C4iAor4Lih4Liy4Lij4LiwCivguKHguLLguKPguLLguJjguK3guJkKK+C4oeC5ieC4suC4o+C4swor4Lih4Liy4Lij4Li0CivguKHguLLguKPguLTguJUKK+C4oeC4suC4o+C4tOC4qeC4sAor4Lih4Liy4Lij4Li04Liq4LiwCivguKHguLLguKPguLjguJUKK+C4oeC4suC4o+C4uOC4oeC4oeC4suC4leC4uOC5ieC4oQor4Lih4Liy4Lil4Lii4LmMCivguKHguLLguKXguLHguKIKK+C4oeC4suC4peC4sgor4Lih4Liy4Lil4Liy4LiV4Li1CivguKHguLLguKXguLLguYDguKPguLXguKIKK+C4oeC4suC4peC4swor4Lih4Liy4Lil4Li04LiZ4Li1CivguKHguLLguKXguLUKK+C4oeC4suC4peC4uOC4lQor4Lih4Liy4Lin4Liq4LiwCivguKHguLLguKfguLLguKMKK+C4oeC4suC4qAor4Lih4Liy4LiqCivguKHguLLguKrguIEKK+C4oeC5ieC4suC4quC4sOC4muC4seC4lOC4geC4teC4mgor4Lih4Liy4Lir4LmMCivguKHguYjguLLguKvguYwKK+C4oeC4suC4q+C4tOC4qgor4Lih4LmI4Liy4LmA4Lir4Lih4Li14LmI4Lii4LinCivguKHguLLguKzguIEKK+C4oeC5ieC4suC4reC5ieC4p+C4mQor4Lih4Liz4LmA4Lil4Li34Lit4LiHCivguKHguLQKK+C4oeC4tOC4hAor4Lih4Li04LmI4LiHCivguKHguLTguIfguYLguIQKK+C4oeC4tOC4iOC4ieC4sgor4Lih4Li04LiK4LiK4Lix4LiZ4LiZ4Liy4Lij4Li1CivguKHguLTguIvguIvguLHguIcKK+C4oeC4tOC4lAor4Lih4Li04LiU4Lir4Lih4Li1CivguKHguLTguJXguKMKK+C4oeC4tOC4leC4tAor4Lih4Li04LiW4Lii4LiyCivguKHguLTguJbguLjguJkKK+C4oeC4tOC4l+C4mOC4sAor4Lih4Li04LiX4LiY4Li1CivguKHguLTguJnguJXguKPguLIKK+C4oeC4tOC4meC4leC4sgor4Lih4Li04LiZ4Lir4Lih4LmJ4LitCivguKHguLTguJnguYjguLIKK+C4oeC4tOC4meC5iOC4suC4peC5iOC4sAor4Lih4Li04LiZ4LmI4Liy4LmA4Lil4LmI4LiyCivguKHguLTguYnguKEKK+C4oeC4tOC4ouC4sgor4Lih4Li04LmE4LiiCivguKHguLTguKPguLHguJnguJXguLUKK+C4oeC4tOC4peC4peC4tOC4geC4o+C4seC4oQor4Lih4Li04Lil4Lil4Li04Lia4Liy4Lij4LmMCivguKHguLTguKXguLHguIHguILguLAKK+C4oeC4tOC4peC4seC4geC4guC4uQor4Lih4Li04Lil4Liy4LiVCivguKHguLTguKXguLTguYDguKHguJXguKMKK+C4oeC4tOC4quC4geC4o+C4tQor4Lih4Li04Liq4LiL4LiyCivguKHguLUKK+C4oeC4teC5iAor4Lih4Li14LiUCivguKHguLXguJTguKLguLHguJoKK+C4oeC4teC5gOC4l+C4mQor4Lih4Li14LiZCivguKHguLXguYjguKrguLHguYnguKcKK+C4oeC4tuC4gQor4Lih4Li24LiHCivguKHguLbguIfguKfguLLguJ7guLLguYLguKfguKIKK+C4oeC4tuC4mQor4Lih4Li34LiUCivguKHguLfguJkKK+C4oeC4t+C5iOC4mQor4Lih4Li34LitCivguKHguLfguYnguK0KK+C4oeC4uAor4Lih4Li44LiBCivguKHguLjguIHguJTguLIKK+C4oeC4uOC4geC4lOC4suC4q+C4suC4owor4Lih4Li44LiB4Li44LijCivguKHguLjguIHguLjguKUKK+C4oeC4uOC4ggor4Lih4Li44LmC4LiC4LmC4Lil4LiB4LiZ4LiwCivguKHguLjguITguITguLAKK+C4oeC4uOC4hOC4mOC5jAor4Lih4Li44LiE4LijCivguKHguLjguIcKK+C4oeC4uOC5iOC4hwor4Lih4Li44LmJ4LiHCivguKHguLjguIfguIHguKPguLDguJXguYjguLLguKIKK+C4oeC4uOC4iOC4ieC4sgor4Lih4Li44LiI4LiZCivguKHguLjguIjguKXguLTguJnguJfguYwKK+C4oeC4uOC4jeC4iOC4meC4sAor4Lih4Li44LiN4LiKCivguKHguLjguJDguLQKK+C4oeC4uOC4k+C4kQor4Lih4Li44LiT4LiR4LiBCivguKHguLjguJQKK+C4oeC4uOC4lQor4Lih4Li44LiV4LiV4LiwCivguKHguLjguJXguJXguLIKK+C4oeC4uOC4leC4leC4tAor4Lih4Li44LiV4Li0CivguKHguLjguJXguLTguIfguITguYwKK+C4oeC4uOC4l+C4hAor4Lih4Li44LiX4LiE4LijCivguKHguLjguJfguJfguLIKK+C4oeC4uOC4l+C4mOC4iuC4sAor4Lih4Li44LiX4LiY4LiyCivguKHguLjguJfguKPguLIKK+C4oeC4uOC4l+C4o+C4tOC4geC4sgor4Lih4Li44LiX4Liw4Lil4Li4CivguKHguLjguJfguLIKK+C4oeC4uOC4l+C4tOC4geC4sgor4Lih4Li44LiX4Li04LiH4LiE4LmMCivguKHguLjguJfguLTguJXguLIKK+C4oeC4uOC4l+C4tOC4mQor4Lih4Li44LiX4Li4CivguKHguLjguYjguJkKK+C4oeC4uOC4meC4tAor4Lih4Li44LiZ4Li1CivguKHguLjguJoKK+C4oeC4uOC4muC5hgor4Lih4Li44LihCivguKHguLjguYjguKEKK+C4oeC4uOC5ieC4oQor4Lih4Li44LmI4LiiCivguKHguLjguKPguIoKK+C4oeC4uOC4o+C4mOC4sgor4Lih4Li44Lil4Liq4LiwCivguKHguLjguKXguLjguJUKK+C4oeC4uOC4peC4uQor4Lih4Li44Liq4Lil4Li04LihCivguKHguLjguKrguLAKK+C4oeC4uOC4quC4sgor4Lih4Li44Liq4Li04LiBCivguKHguLjguKvguIfguLTguJQKK+C4oeC4uOC4q+C4meC5iOC4suC4ogor4Lih4Li44Lir4Li44LiVCivguKHguLnguIEKK+C4oeC4ueC4geC4oeC4seC4mQor4Lih4Li54LiB4Lir4Lil4Lin4LiHCivguKHguLnguIvguLHguIcKK+C4oeC4ueC5gOC4i+C4rQor4Lih4Li54LiV4LijCivguKHguLnguYjguJfguLnguYgKK+C4oeC4ueC4mQor4Lih4Li54Lih4Lih4Liy4LihCivguKHguLnguKPguJTguLUKK+C4oeC4ueC4o+C4leC4tAor4Lih4Li54Lij4LiY4LiyCivguKHguLnguKUKK+C4oeC4ueC4peC4sgor4Lih4Li54Lil4Li04LiB4Liy4LiB4LijCivguKHguLnguYjguKXguLXguYgKK+C4oeC4ueC5iOC5gOC4peC5iAor4Lih4Li54Liq4Li04LiBCivguYDguKEKK+C5gOC4oeC5h+C4gQor4LmA4Lih4LiB4Liw4LmA4Liu4Li04Lij4LiV4LiL4LmMCivguYDguKHguILguKXguLIKK+C5gOC4oeC4hgor4LmA4Lih4LiG4LiJ4Liy4LiiCivguYDguKHguIbguJ7guLHguJQKK+C5gOC4oeC5h+C4hwor4LmA4Lih4LiH4Lit4Liw4Lib4LiyCivguYDguKHguYfguJQKK+C5gOC4oeC4leC4leC4sgor4LmA4Lih4LiV4LmE4LiV4Lij4LiiCivguYDguKHguJXguKMKK+C5gOC4oeC4leC4o+C4tOC4gQor4LmA4Lih4LiV4Lij4Li04LiB4LiV4Lix4LiZCivguYDguKHguJbguLjguJkKK+C5gOC4oeC4lwor4LmA4Lih4LiX4LiZ4Li1CivguYDguKHguJfguLTguJnguLUKK+C5gOC4oeC4l+C4tOC4peC5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmA4Lih4LmC4LiXCivguYDguKHguJgKK+C5gOC4oeC4mOC4sgor4LmA4Lih4LiY4Liy4Lin4Li1CivguYDguKHguJjguLUKK+C5gOC4oeC4mQor4LmA4Lih4LmI4LiZCivguYDguKHguYnguJkKK+C5gOC4oeC4meC5gOC4lOC4p+C4teC5gOC4peC4teC4ouC4oQor4LmA4Lih4LiZ4LiX4Lit4LilCivguYDguKHguJnguLkKK+C5gOC4oeC5ieC4oQor4LmA4Lih4Lii4LmM4LmA4LiU4Lii4LmMCivguYDguKHguKPguLHguKIKK+C5gOC4oeC4o+C4uAor4LmA4Lih4Lil4LmMCivguYDguKHguKXguIEKK+C5gOC4oeC4peC5h+C4lAor4LmA4Lih4Lil4Li34Lit4LiHCivguYDguKHguKXguLfguYjguK3guKIKK+C5gOC4oeC4peC4t+C5ieC4reC4ogor4LmA4Lih4LipCivguYDguKHguKsKK+C5gOC4oeC4q+C5jAor4LmA4Lih4Lir4LiZCivguYDguKHguLAKK+C5gOC4oeC4sgor4LmA4Lih4LmI4LiyCivguYDguKHguYnguLIKK+C5gOC4oeC5ieC4suC5gOC4hOC5ieC4sgor4LmA4Lih4Liy4Lij4Li1CivguYDguKHguLLguKXguLTguJQKK+C5gOC4oeC4suC4peC4tQor4LmA4Lih4Liy4Lir4LmMCivguYDguKHguLLguLAKK+C5gOC4oeC4suC4sOC4leC4suC5guC4ouC4geC4seC4gQor4LmA4Lih4Li04LiHCivguYDguKHguLTguJkKK+C5gOC4oeC4tOC4pQor4LmA4Lih4Li14LiiCivguYDguKHguLXguKLguIcKK+C5gOC4oeC4teC5iOC4ouC4hwor4LmA4Lih4Li14LmJ4Lii4LiZCivguYDguKHguLXguYnguKLguKfguYYKK+C5gOC4oeC4t+C4rQor4LmA4Lih4Li34LmI4LitCivguYDguKHguLfguYnguK0KK+C5gOC4oeC4t+C4reC4gQor4LmA4Lih4Li34Lit4LiHCivguYDguKHguLfguK3guJoKK+C5gOC4oeC4t+C5iOC4reC4ogor4LmB4Lih4LmICivguYHguKHguYkKK+C5geC4oeC4gQor4LmB4Lih4LiB4LiZ4Li14LmA4LiL4Li14Lii4LihCivguYHguKHguIcKK+C5geC4oeC4h+C4geC4suC4meC4tOC4mQor4LmB4Lih4LiH4LiB4Liy4LiZ4Li14LiqCivguYHguKHguIfguJvguLLguIHguIjguK3guJoKK+C5geC4oeC4h+C5hOC4n+C5gOC4lOC4t+C4reC4meC4q+C5ieC4sgor4LmB4Lih4LmI4LiH4Lih4LmJ4Liy4LiHCivguYHguKHguIfguKXguLHguIEKK+C5geC4oeC5iOC4leC4sOC4h+C4suC4pwor4LmB4Lih4LmI4LiV4Liy4LiiCivguYHguKHguJkKK+C5geC4oeC5iOC4mQor4LmB4Lih4LmJ4LiZCivguYHguKHguYnguJnguYDguILguLXguKLguJkKK+C5geC4oeC4meC4lOC4suC4o+C4tOC4mQor4LmB4Lih4LmI4Lih4LmI4Liy4LiZ4Lil4Lit4LiH4LmE4LiZCivguYHguKHguKMKK+C5geC4oeC4peC4hwor4LmB4Lih4Lil4LiaCivguYHguKHguKcKK+C5geC4oeC5ieC4pwor4LmB4Lih4LiwCivguYLguKEKK+C5guC4oeC5iAor4LmC4Lih4LmJCivguYLguKHguIEKK+C5guC4oeC4geC4guC5jAor4LmC4Lih4LiB4LmC4LiE4LiBCivguYLguKHguIHguKnguLAKK+C5guC4oeC4geC4uOC4pQor4LmC4Lih4LiG4LiwCivguYLguKHguIbguLXguKLguLAKK+C5guC4oeC4hwor4LmC4Lih4LmI4LiHCivguYLguKHguIfguITguKPguLjguYjguKEKK+C5guC4oeC5gOC4leC5h+C4pQor4LmC4Lih4LiX4LiZ4LiyCivguYLguKHguJkKK+C5guC4oeC5gOC4meC4leC5jAor4LmC4Lih4LmC4LiZ4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiU4LmMCivguYLguKHguYTguJnguKIKK+C5guC4oeC4oeC4ueC4q+C5jAor4LmC4Lih4Lih4Li54Lir4LiwCivguYLguKHguYDguKEKK+C5guC4oeC4o+C4sgor4LmC4Lih4Lij4Li1CivguYLguKHguYDguKPguKgKK+C5guC4oeC4peC4tOC4muC4lOC4teC4meC4seC4oQor4LmC4Lih4Lil4Li1CivguYLguKHguYDguKXguIHguLjguKUKK+C5guC4oeC4qQor4LmC4Lih4Lip4LiBCivguYLguKHguKnguJMKK+C5guC4oeC5gOC4quC4qgor4LmC4Lih4LmI4Lir4LmMCivguYLguKHguKvguLAKK+C5guC4oeC5guC4qwor4LmE4Lih4LiB4LiyCivguYTguKHguITguKPguK3guJkKK+C5hOC4oeC5guC4hOC4geC4o+C4seC4oQor4LmE4Lih4LmC4LiE4Lij4Lif4Li04Lil4LmM4LihCivguYTguKHguYLguITguKPguYLguJ/guJkKK+C5hOC4oeC5guC4hOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Lih4LmC4LiE4Lij4LmA4Lih4LiV4LijCivguYTguKHguYLguITguKPguKXguLTguJXguKMKK+C5hOC4oeC5guC4hOC4o+C5gOC4p+C4nwor4LmE4Lih4LiV4Lij4Li1CivguYTguKHguYjguYTguKHguYkKK+C5hOC4oeC4ouC4o+C4suC4mgor4LmE4Lih4Lil4LmMCivguKIKK+C4ouC4gQor4Lii4LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguIHguJkKK+C4ouC4hwor4Lii4LiH4Lii4Li44LiX4LiY4LmMCivguKLguIfguYLguKLguYgKK+C4ouC4iuC4uOC4o+C5gOC4p+C4lwor4Lii4LiV4Li0CivguKLguJbguLIKK+C4ouC5iOC4mQor4Lii4LiZ4LiV4LmMCivguKLguJnguJXguKPguYwKK+C4ouC4oQor4Lii4Lih4LiBCivguKLguKHguYLguJTguKIKK+C4ouC4oeC4meC4sgor4Lii4Lih4LilCivguKLguKPguKPguKLguIcKK+C4ouC4pQor4Lii4LinCivguKLguKfguIHguKrguLIKK+C4ouC4p+C4hwor4Lii4Lin4LiUCivguKLguKfguJTguKLguLLguJkKK+C4ouC4p+C4mQor4Lii4Lin4LiaCivguKLguYnguKfguKIKK+C4ouC4p+C4o+C4ouC4suC4leC4owor4Lii4Lin4LiyCivguKLguKfguLLguITguLgKK+C4ouC4qAor4Lii4LmC4LiqCivguKLguK0KK+C4ouC4reC4gQor4Lii4Lit4LiB4Lii4LmJ4Lit4LiZCivguKLguYfguK3guIHguYHguKLguYfguIEKK+C4ouC5h+C4reC4geC5geC4ouC5h+C4geC5hgor4Lii4Lit4LiHCivguKLguYjguK3guIcKK+C4ouC5ieC4reC4hwor4Lii4Lit4LiH4LmGCivguKLguYjguK3guIfguYDguKvguIfguYfguJQKK+C4ouC4reC4lAor4Lii4Lit4LiU4LiI4Liy4LiBCivguKLguK3guJkKK+C4ouC5ieC4reC4mQor4Lii4Lit4LiaCivguKLguK3guKEKK+C4ouC5iOC4reC4oQor4Lii4LmJ4Lit4LihCivguKLguYjguK3guKIKK+C4ouC5ieC4reC4ogor4Lii4LmJ4Lit4LmB4Lii4LmJCivguKLguLAKK+C4ouC5iOC4sAor4Lii4Liw4LiH4Lix4LiZ4LiI4Liw4LiE4Lix4LiaCivguKLguLDguKLguK3guJoKK+C4ouC4sOC4ouC4seC4mQor4Lii4Liw4Lii4Lix4LiaCivguKLguLDguKLguLLguJkKK+C4ouC4sOC4ouC5ieC4suC4ogor4Lii4Liw4Lii4LmJ4Liy4LinCivguKLguLDguYHguKLguYnguIcKK+C4ouC4sOC4q+C4tOC4l+C4sgor4Lii4Lix4LiBCivguKLguLHguIHguILguYwKK+C4ouC4seC4geC4guC4tOC4meC4tQor4Lii4Lix4LiB4LmA4Lie4Lij4Li14LiiCivguKLguLHguIHguKLguLXguYjguKLguLHguIHguKLguLHguJkKK+C4ouC4seC4geC4ouC4teC5iOC4ouC4seC4geC4q+C4ouC4sgor4Lii4Lix4LiB4LmB4Lii4LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKnguYwKK+C4ouC4seC4geC4qeC4tOC4k+C4tQor4Lii4Lix4LiB4Lip4Li1CivguKLguLHguIHguKvguKLguLLguKcKK+C4ouC4seC4hwor4Lii4Lix4LmJ4LiHCivguKLguLHguIfguIHguLLguKvguKXguLIKK+C4ouC4seC5iOC4h+C4ouC4t+C4mQor4Lii4Lix4LiH4Lir4Lii4Lix4LiHCivguKLguLHguIrguYLguI3guJvguKfguLXguJUKK+C4ouC4seC4iuC4mQor4Lii4Lix4LiK4Lih4Liy4LiZCivguKLguLHguI0KK+C4ouC4seC4jeC4jeC4sAor4Lii4Lix4LiN4LiN4Lix4LiH4LiE4LmMCivguKLguLHguJDguLQKK+C4ouC4seC4kOC4tOC4oeC4mOC4uOC4geC4sgor4Lii4Lix4LiUCivguKLguLHguJXguLTguKDguLHguIfguITguYwKK+C4ouC4seC4mQor4Lii4Lix4LmI4LiZCivguKLguLHguJnguJXguYwKK+C4ouC4seC4meC4leC4o+C5jAor4Lii4Lix4LmI4LiZ4LiV4Liw4LiZ4Li1CivguKLguLHguJnguYDguKLguYnguLIKK+C4ouC4seC4mgor4Lii4Lix4Lia4LmGCivguKLguLHguJrguKLguLHguYnguIcKK+C4ouC4seC5iOC4pwor4Lii4Lix4LmJ4LinCivguKLguLHguYnguKfguYDguKLguLXguYnguKIKK+C4ouC4seC4p+C4o+C4ouC4suC4leC4owor4Lii4Lix4Lip4LiP4Li0CivguKLguLIKK+C4ouC5iOC4sgor4Lii4Liy4LiBCivguKLguLLguIQKK+C4ouC4suC4hOC4uAor4Lii4Liy4LiE4Li5CivguKLguLLguIcKK+C4ouC5iOC4suC4hwor4Lii4LmI4Liy4LiH4LiX4Lij4Liy4LiiCivguKLguLLguIjguIEKK+C4ouC4suC4iOC4mQor4Lii4Liy4LiI4LiZ4LiBCivguKLguLLguIjguJnguLIKK+C4ouC4suC5hOC4ieC4mQor4Lii4Liy4LiK4LiBCivguKLguLLguJQKK+C4ouC4suC4lOC4sgor4Lii4Liy4LiV4LiZ4LiyCivguKLguLLguJXguKMKK+C4ouC4suC4leC4o+C4sgor4Lii4Liy4LiZCivguKLguYjguLLguJkKK+C4ouC4suC4meC4gQor4Lii4LmI4Liy4LiZ4LiB4Lit4Lia4LiZ4Liy4LiHCivguKLguYjguLLguJnguJfguKPguLLguKIKK+C4ouC5iOC4suC4meC4nuC4suC5guC4q+C4oQor4Lii4LmI4Liy4LiZ4Lih4LiE4Lin4Liy4LiiCivguKLguLLguJnguKHguLLguKgKK+C4ouC5iOC4suC4meC4peC4tOC5gOC4oOC4sgor4Lii4LmI4Liy4LiZ4Liy4LiHCivguKLguYjguLLguJnguLLguIfguIrguYnguLLguIcKK+C4ouC4suC4meC4tQor4Lii4Liy4LiZ4Li44Lih4Liy4LioCivguKLguLLguJoKK+C4ouC4suC4muC5hgor4Lii4LmI4Liy4LihCivguKLguLLguKHguIHguLLguKXguLTguIEKK+C4ouC4suC4oeC5gOC4geC4sgor4Lii4Liy4Lih4Lix4LiB4LiB4Liy4LijCivguKLguLLguKHguLTguIEKK+C4ouC4suC4ogor4Lii4LmJ4Liy4LiiCivguKLguLLguKLguLUKK+C4ouC4suC4pwor4Lii4LmJ4Liy4LinCivguKLguLLguKfguIHguLLguKXguLTguIEKK+C4ouC4suC4p+C4iuC4teC4p+C4tOC4gQor4Lii4Liy4Lin4Lix4LiqCivguKLguLLguKvguKLguLHguIcKK+C4ouC4suC4q+C4ouC4sgor4Lii4Liy4Lir4Lii4Li1CivguKLguLMKK+C4ouC5iOC4swor4Lii4LmJ4LizCivguKLguLPguKLguLLguKEKK+C4ouC4s+C5gOC4ouC4teC4ogor4Lii4LmI4Liz4LmB4Lii4LmICivguKLguYnguLPguYDguKvguKLguK0KK+C4ouC4tOC4gQor4Lii4Li04LiB4LmGCivguKLguLTguIcKK+C4ouC4tOC5iOC4hwor4Lii4Li04LiH4Lif4Lix4LiZCivguKLguLTguI/guJDguLAKK+C4ouC4tOC4kAor4Lii4Li04LiZCivguKLguLTguJoKK+C4ouC4tOC4muC5hgor4Lii4Li04Lib4LiL4Lix4LihCivguKLguLTguJvguIvguLUKK+C4ouC4tOC5ieC4oQor4Lii4Li04Lih4LiZ4Liy4Liq4LiV4Li04LiBCivguKLguLTguKvguKfguLIKK+C4ouC4tQor4Lii4Li14LmICivguKLguLXguYjguIHguYjguLIKK+C4ouC4teC5iOC5gOC4gQor4Lii4Li14LmI4LmA4LiC4LmI4LiHCivguKLguLXguYjguYLguJYKK+C4ouC4teC4mQor4Lii4Li14LmI4LmC4Lib4LmJCivguKLguLXguYjguKDguLnguYgKK+C4ouC4teC4o+C4suC4nwor4Lii4Li14LmI4Liq4LiBCivguKLguLXguYjguKrguIcKK+C4ouC4teC5iOC4quC4mQor4Lii4Li14LmI4Liq4Liy4LiZCivguKLguLXguYjguKrguYjguLLguJkKK+C4ouC4teC5iOC4quC4tOC4mgor4Lii4Li14LmI4Liq4Li44LmI4LiZCivguKLguLXguYjguKvguKPguLAKK+C4ouC4teC5iOC4q+C4o+C5iOC4sgor4Lii4Li14LmI4Lir4LmJ4LitCivguKLguLXguYjguKvguLjguJoKK+C4ouC4tuC4geC4ouC4t+C4rQor4Lii4Li34LiUCivguKLguLfguJkKK+C4ouC4t+C5iOC4mQor4Lii4Li34LihCivguKLguLfguYnguK0KK+C4ouC4uAor4Lii4Li44LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguLjguIHguJTguLQKK+C4ouC4uOC4geC4leC5jAor4Lii4Li44LiB4LiV4Li0CivguKLguLjguIQKK+C4ouC4uOC4hOC4meC4mOC4owor4Lii4Li44LiE4LilCivguKLguLjguITguKXguJrguLLguJcKK+C4ouC4uOC4hOC4seC4meC4leC5jAor4Lii4Li44LiE4Lix4LiZ4LiY4LijCivguKLguLjguITguLjguJnguJjguKMKK+C4ouC4uOC4hwor4Lii4Li44LmI4LiHCivguKLguLjguYnguIcKK+C4ouC4uOC4h+C4geC4p+C4suC4lAor4Lii4Li44LiH4Lib4Lix4LiUCivguKLguLjguJQKK+C4ouC4uOC4lQor4Lii4Li44LiV4Li0CivguKLguLjguJfguJjguYwKK+C4ouC4uOC4l+C4mOC4meC4sgor4Lii4Li44LiaCivguKLguLjguYjguJrguKLguLHguYjguJoKK+C4ouC4uOC4muC4ouC4tOC4mgor4Lii4Li44Lia4LilCivguKLguLjguJ7guJTguLUKK+C4ouC4uOC4nuC4sgor4Lii4Li44Lie4Liy4LiZCivguKLguLjguJ7guLLguJ7guLLguKUKK+C4ouC4uOC4nuC4suC4nuC4tOC4mQor4Lii4Li44LmI4Lih4Lii4LmI4Liy4LihCivguKLguLjguYjguKIKK+C4ouC4uOC5ieC4ogor4Lii4Li44Lij4Lia4Liy4LiV4LijCivguKLguLjguKPguKLguLLguJXguKMKK+C4ouC4uOC4p+C4lOC4tQor4Lii4Li44Lin4LiyCivguKLguLjguKfguLLguJkKK+C4ouC4uOC4q+C4muC4suC4leC4owor4Lii4Li5CivguKLguLnguYgKK+C4ouC4ueC4hOC4suC4peC4tOC4m+C4leC4seC4qgor4Lii4Li54LiHCivguKLguLnguYLguJQKK+C4ouC4ueC4luC4sAor4Lii4Li54LiW4Li04LiB4LiyCivguKLguLnguJvguLAKK+C4ouC4ueC4o+C4ouC4suC4leC4owor4Lii4Li54Lij4Li04LiBCivguKLguLnguYDguKPguJnguLHguKoKK+C4ouC4ueC5gOC4o+C5gOC4meC4teC4ouC4oQor4Lii4Li54LmC4Lij4LmA4Lie4Li14Lii4LihCivguKLguLnguKnguLAKK+C4ouC4ueC5iOC4reC4teC5iAor4LmA4Lii4LmJCivguYDguKLguYYKK+C5gOC4ouC4hwor4LmA4Lii4LiL4Li5CivguYDguKLguYfguJQKK+C5gOC4ouC5h+C4mQor4LmA4Lii4LmH4LiZ4LiV4Liy4LmC4LifCivguYDguKLguYfguJnguYDguJXguLLguYLguJ8KK+C5gOC4ouC5h+C4mgor4LmA4Lii4Lig4Li44Lii4Lii4LiwCivguYDguKLguYnguKIKK+C5gOC4ouC4rQor4LmA4Lii4LmI4LitCivguYDguKLguK3guKPguKHguLHguJkKK+C5gOC4ouC4reC4pwor4LmA4Lii4LmI4Lit4Lir4Lii4Li04LmI4LiHCivguYDguKLguK3guLAKK+C5gOC4ouC4sgor4LmA4Lii4LmJ4LiyCivguYDguKLguLLguKfguYwKK+C5gOC4ouC4suC4p+C4nuC4sgor4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguKLguLLguKfguJ7guLLguJkKK+C5gOC4ouC4tOC4hwor4LmA4Lii4Li04LiZCivguYDguKLguLTguYjguJkKK+C5gOC4ouC4tOC4meC4ouC4rQor4LmA4Lii4Li04Lia4LmGCivguYDguKLguLTguJrguKLguLLguJoKK+C5gOC4ouC4tOC5ieC4oQor4LmA4Lii4Li14LiiCivguYDguKLguLXguYjguKLguIcKK+C5gOC4ouC4teC4ouC4h+C4nOC4sgor4LmA4Lii4Li14LmI4Lii4LiH4Lit4Lii4LmI4Liy4LiHCivguYDguKLguLXguKLguJTguKLguLHguJQKK+C5gOC4ouC4teC4ouC4mQor4LmA4Lii4Li14Lii4LiaCivguYDguKLguLXguYjguKLguKEKK+C5gOC4ouC4teC5iOC4ouC4oeC4p+C4tOC4oeC4suC4mQor4LmA4Lii4Li14Lii4Lij4Lia4Lix4LiaCivguYDguKLguLXguKLguKPguKLguIcKK+C5gOC4ouC4teC4ouC4pwor4LmA4Lii4Li14LmI4Lii4LinCivguYDguKLguLXguYjguKLguKfguIfguLXguKcKK+C5gOC4ouC4teC4ouC4p+C4ouC4hwor4LmA4Lii4Li14Lii4Lin4Lii4LiyCivguYDguKLguLfguK0KK+C5gOC4ouC4t+C5iOC4rQor4LmA4Lii4Li34LmJ4LitCivguYDguKLguLfguK3guIEKK+C5gOC4ouC4t+C4reC4hwor4LmA4Lii4Li34LmI4Lit4LiHCivguYDguKLguLfguYnguK3guIcKK+C5gOC4ouC4t+C4reC4mQor4LmA4Lii4Li34LmJ4Lit4LiZCivguYHguKLguYgKK+C5geC4ouC5iQor4LmB4Lii4LiBCivguYHguKLguIcKK+C5geC4ouC5iOC4hwor4LmB4Lii4LmJ4LiHCivguYHguKLguIfguYHguKLguYgKK+C5geC4ouC4h+C5geC4ouC5iQor4LmB4Lii4LiaCivguYHguKLguYfguJoKK+C5geC4ouC4oQor4LmB4Lii4LmJ4LihCivguYHguKLguYHguKoKK+C5geC4ouC4sAor4LmC4LiiCivguYLguKLguYkKK+C5guC4ouC4gQor4LmC4Lii4LiB4LiV4Lij4LmMCivguYLguKLguITguYDguIHguJPguJHguYwKK+C5guC4ouC4hOC4ouC4sAor4LmC4Lii4LiE4LiwCivguYLguKLguITguLTguJkKK+C5guC4ouC4hOC4tQor4LmC4Lii4LiHCivguYLguKLguYjguIfguYYKK+C5guC4ouC4h+C5guC4ouC5iAor4LmC4Lii4LiK4LiBCivguYLguKLguIrguJnguYwKK+C5guC4ouC4iuC4meC4sgor4LmC4Lii4LiUCivguYLguKLguJUKK+C5guC4ouC4luC4tOC4geC4sAor4LmC4Lii4LiX4Liw4LiB4LiyCivguYLguKLguJjguLIKK+C5guC4ouC4mQor4LmC4Lii4LiZ4LiBCivguYLguKLguJnguLTguYLguKoKK+C5guC4ouC4meC4tOC5guC4quC4oeC4meC4quC4tOC4geC4suC4owor4LmC4Lii4LiZ4Li1CivguYLguKLguJ7guJnguLAKK+C5guC4ouC4oQor4LmC4Lii4LmC4LiqCivguYPguKIKK+C5hOC4ogor4LmE4Lii4LmICivguYTguKLguJTguLUKK+C5hOC4ouC5hOC4ngor4LmE4Lii4LmE4LiiCivguYTguKLguYjguYTguKLguYgKK+C4owor4Lij4LiBCivguKPguIHguIrguYnguLLguIcKK+C4o+C4geC4n+C5ieC4sgor4Lij4LiHCivguKPguIfguIHguLjguYwKK+C4o+C4h+C4hOC5jAor4Lij4LiH4Lij4Lit4LiHCivguKPguIjguJnguLIKK+C4o+C4iOC5gOC4o+C4ggor4Lij4LiI4LmA4Lil4LiCCivguKPguIjguLTguJUKK+C4o+C4iuC4geC4sAor4Lij4LiK4LiV4LiwCivguKPguIrguJnguLQKK+C4o+C4iuC4meC4tQor4Lij4LiK4LiZ4Li14Lii4LmMCivguKPguIrguLAKK+C4o+C4kwor4Lij4LiUCivguKPguJTguLUKK+C4o+C4leC4meC4sAor4Lij4LiV4LiwCivguKPguJXguLQKK+C4o+C4lgor4Lij4LiW4Lib4Li44LiH4LiE4LieCivguKPguJbguJvguLjguIfguITguKcKK+C4o+C4luC4ouC4sgor4Lij4LiW4Liy4LiZ4Li24LiBCivguKPguYDguJbguKrguKDguLAKK+C4o+C4lwor4Lij4LiX4LiZ4LiwCivguKPguJkKK+C4o+C5iOC4mQor4Lij4LmJ4LiZCivguKPguJnguJQKK+C4o+C4mgor4Lij4Lia4LiqCivguKPguJrguLLguI0KK+C4o+C4ngor4Lij4Lie4LiyCivguKPguJ7guLQKK+C4o+C4nuC4tQor4Lij4LihCivguKPguKHguJPguLXguKLguYwKK+C4o+C4oeC4ouC5jAor4Lij4Lih4LmA4Lii4LioCivguKPguKLguLAKK+C4o+C4p+C4gQor4Lij4Lin4LiHCivguKPguYjguKfguIcKK+C4o+C4p+C4lAor4Lij4Lin4LiZCivguKPguYjguKfguJkKK+C4o+C4p+C4mgor4Lij4Lin4LihCivguKPguYjguKfguKEKK+C4o+C4p+C4ogor4Lij4Lin4Lii4LmGCivguKPguKfguLAKK+C4o+C4p+C4tAor4Lij4Lin4Li1CivguKPguKjguJnguLIKK+C4o+C4qgor4Lij4Liq4LiBCivguKPguKrguJnguLIKK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jAor4Lij4Liq4Liy4Lii4LiZ4LmA4Lin4LiXCivguKPguKrguLTguIEKK+C4o+C4q+C4seC4lwor4Lij4Lir4Lix4LiqCivguKPguKvguLHguKrguKLguYwKK+C4o+C4q+C4tOC4lQor4Lij4LmC4LirCivguKPguK0KK+C4o+C5iOC4rQor4Lij4Lit4LiBCivguKPguK3guIcKK+C4o+C5iOC4reC4hwor4Lij4LmJ4Lit4LiHCivguKPguK3guIfguYDguIfguYfguIcKK+C4o+C5iOC4reC4h+C5geC4o+C5iOC4hwor4Lij4Lit4LiUCivguKPguK3guJkKK+C4o+C5iOC4reC4mQor4Lij4LmJ4Lit4LiZCivguKPguYjguK3guJnguJfguK3guIcKK+C4o+C4reC4mgor4Lij4Lit4LihCivguKPguK3guKHguIrguK3guKEKK+C4o+C4reC4oeC4o+C5iOC4rQor4Lij4Lit4LiiCivguKPguYjguK3guKIKK+C4o+C5ieC4reC4ogor4Lij4LmJ4Lit4Lii4Lij4Li5CivguKPguYjguK3guYHguKPguYgKK+C4o+C4sAor4Lij4Liw4LiB4LiwCivguKPguLDguIHguLIKK+C4o+C4sOC4geC4swor4Lij4Liw4LmA4LiB4Liw4Lij4Liw4LiB4LiwCivguKPguLDguITguJkKK+C4o+C4sOC4hOC4suC4hwor4Lij4Liw4LiE4Liy4LiiCivguKPguLDguYDguITguYfguJTguKPguLDguITguLLguKIKK+C4o+C4sOC5geC4hOC4sAor4Lij4Liw4LiG4Lix4LiHCivguKPguLDguIfguKEKK+C4o+C4sOC4h+C4oeC5hOC4nuC4owor4Lij4Liw4LiH4Lix4LiaCivguKPguLDguIfguLHguJrguJ7guLTguKkKK+C4o+C4sOC4h+C4teC5iAor4Lij4Liw4LmB4LiH4LmJCivguKPguLDguYLguIfguIHguKvguLTguJkKK+C4o+C4sOC4iuC4p+C4ogor4Lij4Liw4LiU4LihCivguKPguLDguJTguLAKK+C4o+C4sOC4lOC4seC4mgor4Lij4Liw4LiU4LiyCivguKPguLDguJTguYjguLLguKcKK+C4o+C4sOC4lOC4uQor4Lij4Liw4LmA4LiU4LmI4LiZCivguKPguLDguYDguJTguLXguKLguIcKK+C4o+C4sOC5geC4lAor4Lij4Liw4LiV4Li5CivguKPguLDguJfguIEKK+C4o+C4sOC4l+C4lAor4Lij4Liw4LiX4LihCivguKPguLDguJfguKfguKIKK+C4o+C4sOC4l+C4reC4lAor4Lij4Liw4LiX4LiyCivguKPguLDguJfguLbguIEKK+C4o+C4sOC4l+C4tuC4hwor4Lij4Liw4LmB4LiX4LiwCivguKPguLDguJnguLHguKEKK+C4o+C4sOC4meC4suC4lAor4Lij4Liw4LiZ4Liy4LiaCivguKPguLDguJnguLLguKEKK+C4o+C4sOC4meC4suC4pwor4Lij4Liw4LmA4LiZ4LiZCivguKPguLDguYDguJnguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4o+C4sOC4meC4suC4lAor4Lij4Liw4LmA4LiZ4Li14Lii4LiUCivguKPguLDguYHguJnguIcKK+C4o+C4sOC5geC4meC4sAor4Lij4Liw4Lia4LiaCivguKPguLDguJrguKEKK+C4o+C4sOC4muC4reC4mgor4Lij4Liw4Lia4Lix4LiUCivguKPguLDguJrguLHguJoKK+C4o+C4sOC4muC4suC4jQor4Lij4Liw4Lia4Liy4LiUCivguKPguLDguJrguLLguJnguLUKK+C4o+C4sOC4muC4suC4meC4teC5iQor4Lij4Liw4Lia4Liy4LiiCivguKPguLDguJrguLMKK+C4o+C4sOC4muC4tAor4Lij4Liw4Lia4Li04LilCivguKPguLDguJrguLfguK0KK+C4o+C4sOC4muC4uAor4Lij4Liw4Lia4Li5CivguKPguLDguYDguJrguIcKK+C4o+C4sOC5gOC4muC5h+C4hwor4Lij4Liw4LmA4Lia4Li04LiUCivguKPguLDguYDguJrguLXguKLguIcKK+C4o+C4sOC5gOC4muC4teC4ouC4mQor4Lij4Liw4LmA4Lia4Li14Lii4LiaCivguKPguLDguYHguJrguJoKK+C4o+C4sOC5g+C4mgor4Lij4Liw4Lih4Lix4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKHguLIKK+C4o+C4sOC4oeC4suC4lAor4Lij4Liw4LmA4Lih4Li14Lii4LijCivguKPguLDguKLguYjguK0KK+C4o+C4sOC4ouC5iOC4reC4oQor4Lij4Liw4Lii4LiwCivguKPguLDguKLguLHguIcKK+C4o+C4sOC4ouC4seC5ieC4hwor4Lij4Liw4Lii4Lix4LiUCivguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC5ieC4sgor4Lij4Liw4Lii4Liy4LiZCivguKPguLDguKLguLLguJoKK+C4o+C4sOC4ouC4suC4oeC4o+C4sOC4ouC4seC4mgor4Lij4Liw4Lii4LizCivguKPguLDguKLguLTguJrguKPguLDguKLguLHguJoKK+C4o+C4sOC5guC4ouC4hwor4Lij4Liw4Lij4Lin4LiiCivguKPguLDguKPguK3guIcKK+C4o+C4sOC4o+C5iOC4reC4mQor4Lij4Liw4Lij4Lix4LinCivguKPguLDguKPguLLguJkKK+C4o+C4sOC4o+C5iOC4suC4ogor4Lij4Liw4Lij4Liy4LinCivguKPguLDguKPguLTguIEKK+C4o+C4sOC4o+C4teC5iAor4Lij4Liw4Lij4Li24LiHCivguKPguLDguKPguLfguYjguJkKK+C4o+C4sOC4o+C4t+C5ieC4mQor4Lij4Liw4LmA4LijCivguKPguLDguYDguKPguYgKK+C4o+C4sOC5gOC4o+C5ieC4hwor4Lij4Liw4LmA4Lij4LmH4LinCivguKPguLDguYDguKPguLTguIcKK+C4o+C4sOC5gOC4o+C4teC4ouC4hwor4Lij4Liw4LmA4Lij4Li14Lii4LihCivguKPguLDguYDguKPguLfguYjguK3guKIKK+C4o+C4sOC5geC4o+C5iAor4Lij4Liw4LmB4Lij4LiHCivguKPguLDguKXguIcKK+C4o+C4sOC4peC4p+C4hwor4Lij4Liw4Lil4Lit4LiBCivguKPguLDguKXguLHguJQKK+C4o+C4sOC4peC4tuC4gQor4Lij4Liw4Lil4Li44LiBCivguKPguLDguKXguLjguIcKK+C4o+C4sOC5gOC4peC4tOC4hwor4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguKPguLDguKfguLHguIcKK+C4o+C4sOC4p+C4seC4h+C5hOC4nuC4owor4Lij4Liw4Lin4Lix4LiH4Lin4Lix4LiZCivguKPguLDguKfguLLguIcKK+C4o+C4sOC4p+C4suC4lOC4o+C4sOC5hOC4pwor4Lij4Liw4Lin4Liy4LihCivguKPguLDguKfguLLguKIKK+C4o+C4sOC4p+C4tOC4hwor4Lij4Liw4LmB4Lin4LiHCivguKPguLDguYHguKfguJTguKPguLDguKfguLHguIcKK+C4o+C4sOC5hOC4pwor4Lij4Liw4Liq4Liy4LiiCivguKPguLDguKrguYjguLPguKPguLDguKrguLLguKIKK+C4o+C4sOC4quC4tQor4Lij4Liw4LmA4Liq4Li04LiU4Lij4Liw4Liq4Lix4LiHCivguKPguLDguKvguIHguKPguLDguYDguKvguLTguJkKK+C4o+C4sOC4q+C4hwor4Lij4Liw4Lir4Lin4LiiCivguKPguLDguKvguKfguYjguLLguIcKK+C4o+C4sOC4q+C4reC4h+C4o+C4sOC5geC4q+C4hwor4Lij4Liw4Lir4Lit4LiaCivguKPguLDguKvguLHguJQKK+C4o+C4sOC4q+C4suC4ogor4Lij4Liw4Lir4Li44LiiCivguKPguLDguYDguKvguYfguIgKK+C4o+C4sOC5gOC4q+C4ogor4Lij4Liw4LmA4Lir4Lij4Liw4Lir4LiZCivguKPguLDguYDguKvguKvguJkKK+C4o+C4sOC5gOC4q+C4q+C4seC4mQor4Lij4Liw4LmA4Lir4Li04LiUCivguKPguLDguYDguKvguLTguJnguKPguLDguKvguIEKK+C4o+C4sOC5geC4q+C4gQor4Lij4Liw4LmB4Lir4LiHCivguKPguLDguYLguKvguKIKK+C4o+C4sOC4reC4oeC4o+C4sOC4reC4sgor4Lij4Liw4Lit4LiyCivguKPguLDguK3guLTguJTguKPguLDguK3guLIKK+C4o+C4sOC4reC4tuC4gQor4Lij4Liw4Lit4Li4CivguKPguLDguYHguK3guJkKK+C4o+C4seC4gQor4Lij4Lix4LiB4LiC4LmMCivguKPguLHguIHguILguKrguLAKK+C4o+C4seC4geC4guC4sgor4Lij4Lix4LiB4LiC4Li04LiVCivguKPguLHguIHguJTguJsKK+C4o+C4seC4geC4lOC4sAor4Lij4Lix4LiB4LiV4LiwCivguKPguLHguIHguJrguLXguYkKK+C4o+C4seC4geC5gOC4o+C5iAor4Lij4Lix4LiB4LmB4Lij4LmJCivguKPguLHguIHguKnguYwKK+C4o+C4seC4geC4qeC4sgor4Lij4Lix4LiHCivguKPguLHguYnguIcKK+C4o+C4seC4h+C5geC4gQor4Lij4Lix4LiH4LiE4LmMCivguKPguLHguIfguITguKfguLLguJkKK+C4o+C4seC4h+C5geC4hAor4Lij4Lix4LiH4LiZ4Liy4LiZCivguKPguLHguIfguKPguK3guIcKK+C4o+C4seC4h+C4p+C4seC4lAor4Lij4Lix4LiH4Liq4Li0CivguKPguLHguIfguKrguLTguKHguLHguJnguJXguLjguYwKK+C4o+C4seC4h+C4quC4tOC4oeC4sgor4Lij4Lix4LiH4Liq4Li1CivguKPguLHguIfguKvguKLguLLguKcKK+C4o+C4seC4iOC4ieC4sgor4Lij4Lix4LiKCivguKPguLHguIrguIHguLAKK+C4o+C4seC4iuC4iuC4uAor4Lij4Lix4LiK4LiO4Liy4Lig4Li04LmA4Lip4LiBCivguKPguLHguIrguJnguLAKK+C4o+C4seC4iuC4meC4tQor4Lij4Lix4LiN4LiI4Lin4LiZCivguKPguLHguI/guJDguLLguKDguLTguJvguLLguKXguYLguJnguJrguLLguKIKK+C4o+C4seC4kAor4Lij4Lix4LiUCivguKPguLHguJUKK+C4o+C4seC4leC4hOC4mQor4Lij4Lix4LiV4LiV4Lix4LiN4LiN4Li5CivguKPguLHguJXguJXguLQKK+C4o+C4seC4leC4meC5jAor4Lij4Lix4LiV4LiZ4LiwCivguKPguLHguJXguKHguLIKK+C4o+C4seC4lgor4Lij4Lix4LiW4Lii4LiyCivguKPguLHguJfguYDguJfguK3guKPguYzguJ/guK3guKPguYzguYDguJTguLXguKLguKEKK+C4o+C4seC4mQor4Lij4Lix4LmJ4LiZCivguKPguLHguJnguIrguJnguKPguLHguJnguYHguIrguIcKK+C4o+C4seC4meC4l+C4lAor4Lij4Lix4LiZ4LiX4Lin4LiiCivguKPguLHguJnguJfguLMKK+C4o+C4seC4meC5geC4l+C4sAor4Lij4Lix4LiZ4LiY4LiwCivguKPguLHguJoKK+C4o+C4seC4oeC4oOC4sgor4Lij4Lix4Lih4Lih4Li14LmICivguKPguLHguKHguKLguYwKK+C4o+C4seC4ogor4Lij4Lix4LinCivguKPguLHguYjguKcKK+C4o+C4seC5ieC4pwor4Lij4Lix4Lio4Lih4Li04Lih4Lix4LiV4Li0CivguKPguLHguKjguKHguLTguKHguLLguJkKK+C4o+C4seC4qOC4oeC4tQor4Lij4Lix4Lip4LiO4Liy4LiB4LijCivguKPguLHguKrguKrguLAKK+C4o+C4sgor4Lij4LmI4LiyCivguKPguYnguLIKK+C4o+C4suC4gQor4Lij4Liy4LiB4Lip4LiqCivguKPguLLguIHguYLguKnguKoKK+C4o+C4suC4geC4quC4suC4lAor4Lij4Liy4LiE4LiwCivguKPguLLguITguLIKK+C4o+C4suC4hOC4tOC4mQor4Lij4Liy4LiE4Li1CivguKPguLLguIcKK+C4o+C5iOC4suC4hwor4Lij4LmJ4Liy4LiHCivguKPguLLguIfguIjguLfguJQKK+C4o+C4suC4h+C4iuC4suC4hwor4Lij4Liy4LiH4LiU4LizCivguKPguLLguIfguYHguJTguIcKK+C4o+C4suC4h+C4meC4suC4mQor4Lij4Liy4LiH4Lin4Lix4LilCivguKPguLLguIoKK+C4o+C4suC4iuC4jeC4tQor4Lij4Liy4LiK4LiU4Lix4LiUCivguKPguLLguIrguJ7guKTguIHguKnguYwKK+C4o+C4suC4iuC4oeC4suC4k+C4ngor4Lij4Liy4LiK4Lii4LmMCivguKPguLLguIrguLAKK+C4o+C4suC4iuC4seC4mQor4Lij4Liy4LiK4Lix4LiZ4Lii4LmMCivguKPguLLguIrguLHguKIKK+C4o+C4suC4iuC4sgor4Lij4Liy4LiK4Liy4Lii4LiV4LiZ4LiwCivguKPguLLguIrguLLguKfguJTguLUKK+C4o+C4suC4iuC4tAor4Lij4Liy4LiK4Li04LiZ4Li1CivguKPguLLguIrguLUKK+C4o+C4suC5gOC4iuC4mQor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4Lii4Liy4LiZCivguKPguLLguI0KK+C4o+C4suC4jeC4o+C4reC4mQor4Lij4Liy4LiUCivguKPguLLguJUKK+C4o+C4suC4leC4owor4Lij4Liy4LiV4Lij4Li1CivguKPguLLguJXguKPguLXguJvguKPguLDguJTguLHguJrguJTguLLguKcKK+C4o+C4suC5guC4lwor4Lij4Liy4LiY4LiyCivguKPguLLguJkKK+C4o+C5iOC4suC4mQor4Lij4LmJ4Liy4LiZCivguKPguLLguJoKK+C4o+C4suC4nuC4k+C5jAor4Lij4Liy4LihCivguKPguLLguKHguYDguIHguLXguKLguKPguJXguLTguYwKK+C4o+C4suC4oeC4quC4ueC4owor4Lij4Liy4Lih4Lix4LiNCivguKPguLLguKHguLIKK+C4o+C4suC4ogor4Lij4LmI4Liy4LiiCivguKPguYnguLLguKIKK+C4o+C5iOC4suC4ouC4o+C4seC4hwor4Lij4Liy4LinCivguKPguYnguLLguKcKK+C4o+C4suC4p+C4tQor4Lij4Liy4Lio4Li1CivguKPguLLguKnguI7guKMKK+C4o+C4suC4qeC4juC4o+C5jAor4Lij4Liy4Lip4LiV4Lij4Li1CivguKPguLLguKnguKPguLLguJXguKPguLTguJkKK+C4o+C4suC4qeC4o+C4suC4leC4o+C4tQor4Lij4Liy4Liq4Li1CivguKPguLLguKvguLgKK+C4o+C5iOC4suC4q+C4uOC5jAor4Lij4Liy4Lir4Li5CivguKPguLMKK+C4o+C5iOC4swor4Lij4Liz4LiE4Liy4LiNCivguKPguLPguIfguLHguJoKK+C4o+C4s+C4iOC4p+C4mQor4Lij4Liz4LiL4Li44LiiCivguKPguLPguJrguLLguI0KK+C4o+C4s+C4nuC4seC4mQor4Lij4Liz4Lie4Liy4LiiCivguKPguLPguJ7guLbguIcKK+C4o+C4s+C5gOC4nuC4ogor4Lij4Liz4LmE4LieCivguKPguLPguKHguLDguYDguIIKK+C4o+C4s+C4oeC4sOC4meC4sgor4Lij4Liz4Lih4Liw4LiZ4Liy4LiUCivguKPguLPguKHguLDguKPguYjguK0KK+C4o+C4s+C4ouC4p+C4mQor4Lij4Liz4Lii4LmJ4Lit4LiiCivguKPguLPguYHguKLguYkKK+C4o+C5iOC4s+C4o+C4p+C4ogor4Lij4Liz4Lij4Liy4LiNCivguKPguLPguKPguLMKK+C4o+C4s+C5gOC4owor4Lij4Liz4LmE4LijCivguKPguLPguKXguLbguIEKK+C4o+C4s+C4q+C4seC4lAor4Lij4Liz4Lir4Lix4LiqCivguKPguLQKK+C4o+C4tOC4gQor4Lij4Li04LiB4LmGCivguKPguLTguJTguKrguLXguJTguKfguIcKK+C4o+C4tOC4mQor4Lij4Li04LmJ4LiZCivguKPguLTguJnguYYKK+C4o+C4tOC4mgor4Lij4Li04Lia4Lia4Li04LmJ4LiZCivguKPguLTguJrguKPguLXguYgKK+C4o+C4tOC4muC4q+C4o+C4teC5iAor4Lij4Li04Lib4Li4CivguKPguLTguJvguLkKK+C4o+C4tOC4oQor4Lij4Li04LmJ4LinCivguKPguLTguKnguKLguLIKK+C4o+C4tQor4Lij4Li14LmICivguKPguLXguYkKK+C4o+C4teC5huC4guC4p+C4suC4h+C5hgor4Lij4Li14LmG4Lij4Lit4LmGCivguKPguLXguJQKK+C4o+C4teC4lOC4seC4geC4iuC4seC4mQor4Lij4Li14LiVCivguKPguLXguYDguJnguLXguKLguKEKK+C4o+C4teC4mgor4Lij4Li14LihCivguKPguLXguKPguK0KK+C4o+C4teC5ieC4o+C4tOC4gQor4Lij4Li24LiB4LiV4LmMCivguKPguLbguIcKK+C4o+C4tuC5ieC4hwor4Lij4Li34LmI4LiZCivguKPguLfguYnguJkKK+C4o+C4t+C5ieC4rQor4Lij4Li4CivguKPguLjguIEKK+C4o+C4uOC4geC4guC5jAor4Lij4Li44LiB4LiC4LiB4LiwCivguKPguLjguIHguILguLIKK+C4o+C4uOC4geC4o+C4uOC4ogor4Lij4Li44LiB4Lip4LiwCivguKPguLjguYjguIcKK+C4o+C4uOC5ieC4hwor4Lij4Li44LiH4Lij4Lix4LiHCivguKPguLjguIgKK+C4o+C4uOC4iOC4mQor4Lij4Li44LiI4LiyCivguKPguLjguIjguLQKK+C4o+C4uOC4iOC4tOC4o+C4sAor4Lij4Li44LiI4Li04Lij4LiyCivguKPguLjguIjguLUKK+C4o+C4uOC4iuC4sgor4Lij4Li44LiUCivguKPguLjguJUKK+C4o+C4uOC4l+C4mOC5jAor4Lij4Li44LiX4LijCivguKPguLjguJjguLTguKMKK+C4o+C4uOC5gOC4mOC4teC4ouC4owor4Lij4Li44LiZCivguKPguLjguYjguJkKK+C4o+C4uOC4muC4o+C4ueC5iAor4Lij4Li44Lia4Liy4LiB4Liy4LijCivguKPguLjguKEKK+C4o+C4uOC5iOC4oQor4Lij4Li44LmI4Lih4Lij4LmI4Liy4LihCivguKPguLjguKIKK+C4o+C4uOC5iOC4ogor4Lij4Li44Lij4Li4CivguKPguLjguKnguI/guYwKK+C4o+C4uOC4q+C4sAor4Lij4Li44Lir4Liy4LiNCivguKPguLkKK+C4o+C4ueC5iAor4Lij4Li54LmJCivguKPguLnguIjguLUKK+C4o+C4ueC4lAor4Lij4Li54LiX4Li14LmA4LiZ4Li14Lii4LihCivguKPguLnguYnguJnguK3guJkKK+C4o+C4ueC4muC4tOC5gOC4lOC4teC4ouC4oQor4Lij4Li54LibCivguKPguLnguJvguLTguKLguLAKK+C4o+C4ueC4m+C4tQor4Lij4Li54LmA4Lil4LmH4LiV4LiV4LmMCivguKPguLnguKvguLIKK+C5gOC4o+C5iAor4LmA4Lij4LiCCivguYDguKPguILguLIKK+C5gOC4o+C4guC4suC4hOC4k+C4tOC4lQor4LmA4Lij4LmH4LiHCivguYDguKPguYjguIcKK+C5gOC4o+C5ieC4hwor4LmA4Lij4LiT4Li4CivguYDguKPguJPguLjguIEKK+C5gOC4o+C4k+C4uQor4LmA4Lij4LiU4Lit4LiZCivguYDguKPguJTguLLguKPguYwKK+C5gOC4o+C5gOC4lOC4teC4ouC4oQor4LmA4Lij4LmJ4LiZCivguYDguKPguKLguK3guIcKK+C5gOC4o+C4o+C4p+C4mQor4LmA4Lij4LmE4LijCivguYDguKPguYfguKcKK+C5gOC4o+C5iOC4pwor4LmA4Lij4Lin4LiU4Li1CivguYDguKPguK0KK+C5gOC4o+C5iOC4rQor4LmA4Lij4LiyCivguYDguKPguYjguLIKK+C5gOC4o+C5ieC4sgor4LmA4Lij4LmI4Liy4LmGCivguYDguKPguLLguLAKK+C5gOC4o+C4tOC4hwor4LmA4Lij4Li04LiUCivguYDguKPguLTguKEKK+C5gOC4o+C4tOC5iOC4oQor4LmA4Lij4Li04LmJ4LihCivguYDguKPguLTguKjguKPguYnguLLguIcKK+C5gOC4o+C4teC5iOC4ogor4LmA4Lij4Li14LmJ4Lii4LmGCivguYDguKPguLXguKLguIEKK+C5gOC4o+C4teC4ouC4hwor4LmA4Lij4Li14Lii4LiH4LmGCivguYDguKPguLXguKLguJQKK+C5gOC4o+C4teC4ouC4mQor4LmA4Lij4Li14Lii4LiaCivguYDguKPguLXguKLguKEKK+C5gOC4o+C4teC5iOC4ouC4oQor4LmA4Lij4Li14Lii4LinCivguYDguKPguLXguYjguKLguKcKK+C5gOC4o+C4teC5ieC4ouC4p+C4o+C4gQor4LmA4Lij4Li34LitCivguYDguKPguLfguYjguK0KK+C5gOC4o+C4t+C5ieC4rQor4LmA4Lij4Li34Lit4LiBCivguYDguKPguLfguK3guIHguKrguKfguJkKK+C5gOC4o+C4t+C4reC4hwor4LmA4Lij4Li34LmI4Lit4LiHCivguYDguKPguLfguYnguK3guIcKK+C5gOC4o+C4t+C4reC4h+C4o+C4reC4hwor4LmA4Lij4Li34Lit4LiUCivguYDguKPguLfguK3guJkKK+C5gOC4o+C4t+C5ieC4reC4mQor4LmA4Lij4Li34LmJ4Lit4LiiCivguYHguKMKK+C5geC4o+C5iAor4LmB4Lij4LiBCivguYHguKPguYfguIHguYDguIHguJUKK+C5geC4o+C4hwor4LmB4Lij4LmI4LiHCivguYHguKPguYnguIcKK+C5geC4o+C5iOC4h+C4o+C4tOC5ieC4pwor4LmB4Lij4LmI4LiH4LmE4Lir4LihCivguYHguKPguJQKK+C5geC4o+C5ieC4meC5geC4hOC5ieC4mQor4LmB4Lij4LihCivguYHguKPguYnguKcKK+C5geC4o+C4sAor4LmC4LijCivguYLguKPguYgKK+C5guC4o+C4hAor4LmC4Lij4LiHCivguYLguKPguIgKK+C5guC4o+C4iOC4meC5jAor4LmC4Lij4LmA4LiU4Li14Lii4LihCivguYLguKPguJXguLUKK+C5guC4o+C4lwor4LmC4Lij4LiX4LiZ4LiwCivguYLguKPguJgKK+C5guC4o+C4mOC4owor4LmC4Lij4LmA4LiZ4Li14Lii4LinCivguYLguKPguJvguJnguLAKK+C5guC4o+C4oQor4LmC4Lij4Lih4Lix4LiN4LiICivguYLguKPguKHguLHguJkKK+C5guC4o+C4oeC4seC4meC4hOC4suC4l+C4reC4peC4tOC4gQor4LmC4Lij4LmA4Lih4Lit4Lij4LmMCivguYLguKPguKIKK+C5guC4o+C5gOC4owor4LmC4Lij4LipCivguYLguKPguKnguJPguLAKK+C5guC4o+C4q+C4tOC4k+C4tQor4LmC4Lij4Lir4Li04LiVCivguYTguKMKK+C5hOC4o+C5iAor4LmE4Lij4LmJCivguYTguKPguJ/guLHguJkKK+C5hOC4o+C4ouC5jAor4LikCivguKTguIHguKnguYwKK+C4pOC4geC4qeC4k+C4sAor4Lik4LiE4LmA4Lin4LiXCivguKTguIrguLIKK+C4pOC4iuC4uAor4Lik4LiTCivguKTguJTguLUKK+C4pOC4lOC4teC4ouC4sgor4Lik4LiU4Li5CivguKTguJUKK+C4pOC4leC4tOC4ouC4sgor4Lik4LiV4Li4CivguKTguJXguLjguKrguJnguLLguJkKK+C4pOC4l+C4mOC4sgor4Lik4LiX4LiY4Li04LmMCivguKTguJfguLHguKIKK+C4pOC4qeC4oAor4Lik4Lip4Lii4LiyCivguKTguKnguLUKK+C4pOC5hQor4Lik4LmF4LiK4Li4CivguKTguYXguJTguLUKK+C4pOC5heC4l+C4seC4ogor4Lik4LmF4Lip4Li1CivguKTguYXguKrguLLguKIKK+C4pQor4Lil4LiBCivguKXguIHguLLguKMKK+C4peC4geC4uOC4iAor4Lil4LiE4Li44LiRCivguKXguITguLjguKwKK+C4peC4huC4uAor4Lil4LiHCivguKXguYjguIcKK+C4peC4h+C4geC4sgor4Lil4LmJ4LiH4LmA4Lil4LmJ4LiHCivguKXguJQKK+C4peC4lOC4sgor4Lil4LiZCivguKXguYjguJkKK+C4peC5ieC4mQor4Lil4LiaCivguKXguJrguKEKK+C4peC4muC4reC4hwor4Lil4Lib4LiBCivguKXguJvguJkKK+C4peC4ngor4Lil4Lie4Li44LiKCivguKXguKEKK+C4peC5iOC4oQor4Lil4LmJ4LihCivguKXguKHguLLguJQKK+C4peC4o+C4o+C4peC4uOC4hwor4Lil4Lil4LiZ4LiyCivguKXguKXguLLguI8KK+C4peC4peC4tOC4lQor4Lil4Lin4LiBCivguKXguKfguIcKK+C4peC5iOC4p+C4hwor4Lil4LmJ4Lin4LiHCivguKXguKfguIfguITguYwKK+C4peC4p+C4h+C5gOC4peC5ieC4sgor4Lil4Lin4LiT4LiwCivguKXguKfguJQKK+C4peC5ieC4p+C4mQor4Lil4Lin4LiZ4Lil4Liy4LihCivguKXguKfguJnguLAKK+C4peC5iOC4p+C4oQor4Lil4Lin4LiwCivguKXguKfguLTguJXguKMKK+C4peC4q+C4uAor4Lil4Lir4Li44LiB4LiwCivguKXguYjguK0KK+C4peC5ieC4rQor4Lil4Lit4LiBCivguKXguYfguK3guIHguYDguIHguJUKK+C4peC4reC4geC5geC4peC4gQor4Lil4Lit4LiB4Liy4Lij4Li04LiX4Li24LihCivguKXguK3guIcKK+C4peC5iOC4reC4hwor4Lil4Lit4LiH4LiB4Lit4LiHCivguKXguK3guIfguIjguLTguIjguLnguJQKK+C4peC4reC4h+C5hOC4mQor4Lil4Lit4LiUCivguKXguK3guJXguYDguJXguK3guKPguLXguYgKK+C4peC4reC4mQor4Lil4LmI4Lit4LiZCivguKXguK3guJoKK+C4peC4reC4oQor4Lil4LmJ4Lit4LihCivguKXguK3guKHguIrguK3guKEKK+C4peC5ieC4reC4oeC4m+C4o+C4p+C4lAor4Lil4Lit4Lih4Lie4Lit4LiBCivguKXguK3guKIKK+C4peC5iOC4reC4ogor4Lil4LmI4Lit4LmB4Lil4LmICivguKXguK3guKfguYzguYDguKPguJnguYDguIvguLXguKLguKEKK+C4peC4reC4rQor4Lil4LiwCivguKXguYjguLAKK+C4peC4sOC4geC4pQor4Lil4Liw4LiB4Li54Lih4Liw4LiZ4Li04LiqCivguKXguLDguILguLHguJTguKXguLDguILguLfguJkKK+C4peC4sOC4hOC4owor4Lil4Liw4LiE4Li0CivguKXguLDguITguLbguIEKK+C4peC4sOC4h+C4suC4lAor4Lil4Liw4LiH4Li04LiUCivguKXguLDguJXguLTguIjguLnguJQKK+C4peC4sOC4muC4oeC4peC4sOC4muC4reC4hwor4Lil4Liw4Lia4Lix4LiUCivguKXguLDguJrguLfguK0KK+C4peC4sOC5gOC4muC5h+C4hwor4Lil4Liw4LmC4Lia4LihCivguKXguLDguKHguYjguK3guKEKK+C4peC4sOC4oeC4seC5iOC4hwor4Lil4Liw4Lih4LiyCivguKXguLDguKHguLLguJkKK+C4peC4sOC4oeC5ieC4suC4ogor4Lil4Liw4Lih4Li4CivguKXguLDguKHguLjguJQKK+C4peC4sOC4oeC4uOC4mQor4Lil4Liw4LmA4Lih4LmH4LiH4Lil4Liw4LiE4LijCivguKXguLDguYDguKHguYfguJQKK+C4peC4sOC5gOC4oeC4rQor4Lil4Liw4LmA4Lih4Liy4LiwCivguKXguLDguYDguKHguLTguJQKK+C4peC4sOC5gOC4oeC4teC4ouC4lAor4Lil4Liw4LmA4Lih4Li14Lii4LiaCivguKXguLDguYHguKHguLAKK+C4peC4sOC5guC4oeC4gQor4Lil4Liw4LmC4Lih4LiaCivguKXguLDguYTguKEKK+C4peC4sOC4o+C4tQor4Lil4Liw4Lil4LiZ4Lil4Liw4Lil4Liy4LiZCivguKXguLDguKXguKHguKXguLDguKXguLLguKIKK+C4peC4sOC4peC4p+C4ogor4Lil4Liw4Lil4Lit4LiBCivguKXguLDguKXguK3guJrguKXguLDguYDguKXguYnguLIKK+C4peC4sOC4peC4seC4hwor4Lil4Liw4Lil4Lix4LiUCivguKXguLDguKXguYnguLIKK+C4peC4sOC4peC4suC4mQor4Lil4Liw4Lil4Liy4Lia4Lil4Liw4Lil4LmJ4Lin4LiHCivguKXguLDguKXguLLguKIKK+C4peC4sOC4peC5ieC4suC4pwor4Lil4Liw4Lil4LmI4Liz4Lil4Liw4Lil4Lix4LiBCivguKXguLDguKXguLTguJoKK+C4peC4sOC4peC4uOC4hwor4Lil4Liw4Lil4Li44LihCivguKXguLDguYDguKXguIcKK+C4peC4sOC5gOC4peC5ieC4sgor4Lil4Liw4LmA4Lil4Liy4LiwCivguKXguLDguYDguKXguLLguLDguKXguLDguKXguK3guIcKK+C4peC4sOC5gOC4peC4tOC4hwor4Lil4Liw4LmA4Lil4Li14Lii4LiUCivguKXguLDguYDguKXguLXguKLguJoKK+C4peC4sOC5gOC4peC4t+C4reC4gQor4Lil4Liw4LmE4Lil4LmJCivguKXguLDguKfguKUKK+C4peC4sOC4p+C5ieC4rQor4Lil4Liw4Lin4LmJ4LiyCivguKXguLDguKfguLLguJQKK+C4peC4sOC5gOC4p+C4hwor4Lil4Liw4LmB4Lin4LiBCivguKXguLDguYLguKfguYkKK+C4peC4sOC4q+C4oeC4suC4lAor4Lil4Liw4Lir4Lih4Liy4LiU4LiN4Liy4LiZ4Liy4LiL4Liw4Liu4LmMCivguKXguLDguKvguKXguLHguJQKK+C4peC4sOC4q+C5ieC4reC4ogor4Lil4Liw4Lir4Liy4LiZCivguKXguLDguKvguLjguYjguIcKK+C4peC4sOC5gOC4q+C4ogor4Lil4Liw4LmA4Lir4Li14LmI4LiiCivguKXguLDguK3guK3guIcKK+C4peC4sOC4reC4reC4h+C4oeC4seC5iOC4hwor4Lil4Liw4Lit4Liy4LiiCivguKXguLDguYDguK3guLXguKLguJQKK+C4peC4sOC5geC4reC4mQor4Lil4Lix4LiBCivguKXguLHguIHguILguJPguLAKK+C4peC4seC4geC4guC4k+C4sgor4Lil4Lix4LiB4LiC4LiwCivguKXguLHguIHguIjguLHguYjguJkKK+C4peC4seC4geC4m+C4tOC4lOC4peC4seC4geC5gOC4m+C4tOC4lAor4Lil4Lix4LiB4Lip4LiT4LiwCivguKXguLHguIHguKnguKHguJPguYwKK+C4peC4seC4geC4qeC4oeC4suC4k+C4sgor4Lil4Lix4LiB4Lip4Lih4Li1CivguKXguLHguIHguKnguLAKK+C4peC4seC4hOC4hOC4sAor4Lil4Lix4LiE4LiZ4LmMCivguKXguLHguITguJnguLIKK+C4peC4seC4hwor4Lil4Lix4LmI4LiHCivguKXguLHguIfguIHguLIKK+C4peC4seC4h+C4hOC4tAor4Lil4Lix4LiH4LiE4Li1CivguKXguLHguIfguJbguLbguIcKK+C4peC4seC4h+C4peC4reC4hwor4Lil4Lix4LiH4LmA4LilCivguKXguLHguIfguKrguLLguJQKK+C4peC4seC4iuC4iuC4sgor4Lil4Lix4LiK4LiK4Li1CivguKXguLHguI3guIjguYwKK+C4peC4seC4jeC4iOC4geC4owor4Lil4Lix4LiN4LiJCivguKXguLHguI3guInguIHguKMKK+C4peC4seC4jeC4ieC4meC5jAor4Lil4Lix4LiQ4Li0CivguKXguLHguJDguLTguIHguLIKK+C4peC4seC4lAor4Lil4Lix4LiU4LiyCivguKXguLHguJfguJjguYwKK+C4peC4seC4l+C4mOC4tAor4Lil4Lix4LiZCivguKXguLHguYjguJkKK+C4peC4seC4meC5gOC4lQor4Lil4Lix4LiZ4LmA4LiV4LiyCivguKXguLHguJnguYTguJUKK+C4peC4seC5iOC4meC4luC4seC4mQor4Lil4Lix4LmI4LiZ4LiX4LihCivguKXguLHguJnguJfguKfguKIKK+C4peC4seC4meC5guC4l+C4oQor4Lil4Lix4LiaCivguKXguLHguJ7guJjguYwKK+C4peC4seC4nuC4mOC4tAor4Lil4Lix4LigCivguKXguLHguKDguJnguLAKK+C4peC4seC4oOC4ouC5jAor4Lil4Lix4Lih4Lie4LmMCivguKXguLHguKIKK+C4peC4seC4p+C4sAor4Lil4LiyCivguKXguYjguLIKK+C4peC5ieC4sgor4Lil4Liy4LiBCivguKXguLLguIHguKnguLIKK+C4peC4suC4guC4sgor4Lil4Liy4LiHCivguKXguYjguLLguIcKK+C4peC5ieC4suC4hwor4Lil4Liy4LiH4LiE4Lix4LilCivguKXguLLguIfguIfguLTguJQKK+C4peC4suC4h+C4peC4tOC4hwor4Lil4Liy4LiH4Liq4Liy4LiUCivguKXguLLguIfguLLguJQKK+C4peC5ieC4suC4h+C4suC4lAor4Lil4Liy4LmA4LiH4LmH4LiUCivguKXguLLguIoKK+C4peC4suC4iuC4sgor4Lil4Liy4LiNCivguKXguLLguJQKK+C4peC4suC4lOC5gOC4peC4sgor4Lil4LmJ4Liy4LiV4LmJ4LiyCivguKXguYjguLLguYDguJXguLXguKLguIcKK+C4peC5ieC4suC5gOC4leC4teC4ouC4hwor4Lil4Liy4LiZCivguKXguYjguLLguJkKK+C4peC4suC4mgor4Lil4Liy4LibCivguKXguLLguJ7guK3guJkKK+C4peC4suC4nuC4uAor4Lil4Liy4LmA4LieCivguKXguLLguYDguJ7guLIKK+C4peC4suC4oAor4Lil4Liy4LihCivguKXguYjguLLguKEKK+C4peC4suC4oeC4sAor4Lil4Liy4LiiCivguKXguYnguLLguKIKK+C4peC4suC4peC4meC4sAor4Lil4Liy4Lil4LiqCivguKXguLLguKXguLIKK+C4peC4suC4pwor4Lil4Liy4Lin4LiBCivguKXguLLguKfguLHguJPguKLguYwKK+C4peC4suC4p+C4sgor4Lil4Liy4Liq4LiZ4LiwCivguKXguLMKK+C4peC5iOC4swor4Lil4LmJ4LizCivguKXguLPguYDguILguYfguI0KK+C4peC4s+C5geC4ggor4Lil4Liz4LmA4LiE4LmH4LiNCivguKXguLPguYDguITguLfguK3guIcKK+C4peC4s+C4h+C4suC4lAor4Lil4Liz4LmA4LiI4Li14Lii4LiBCivguKXguLPguJTguKfguJkKK+C4peC4s+C4lOC4seC4mgor4Lil4Liz4LiZ4Lix4LiBCivguKXguLPguYDguJnguLIKK+C4peC4s+C4muC4reC4hwor4Lil4Liz4Lia4Liy4LiBCivguKXguLPguJrguLgKK+C4peC4s+C4m+C4swor4Lil4Liz4Lie4Lin4LiZCivguKXguLPguJ7guK3guIcKK+C4peC4s+C4nuC4seC4hwor4Lil4Liz4Lie4Li5CivguKXguLPguYDguJ7guYfguI0KK+C4peC4s+C5gOC4nuC4sgor4Lil4Liz4LmB4Lie4LiHCivguKXguLPguYHguJ7guJkKK+C4peC4s+C5guC4nuC4hwor4Lil4Liz4LmE4Lie4LmICivguKXguLPguKDguLjguILguLHguJkKK+C4peC4s+C4oeC4sOC4peC4reC4gQor4Lil4Liz4Lih4Liy4LiUCivguKXguLPguYDguKHguLLguLAKK+C4peC4s+C5gOC4oeC4teC4ouC4mgor4Lil4Liz4Lii4Lit4LiHCivguKXguLPguKLguLIKK+C4peC4s+C5hOC4ogor4Lil4Liz4Lil4Lit4LiHCivguKXguYjguLPguKXguLIKK+C4peC4s+C4peC4suC4mgor4Lil4Liz4Lil4LizCivguKXguLPguKXguLbguIEKK+C4peC4s+C5gOC4peC4suC4sAor4Lil4Liz4LmA4Lil4Li04LiBCivguKXguLPguYDguKXguLXguKLguIcKK+C4peC4s+C5gOC4peC4teC4ouC4mgor4Lil4Liz4LmA4Lin4Li14Lii4LiHCivguKXguLPguYDguKfguLXguKLguJkKK+C4peC4s+C4reC4uOC4lAor4Lil4Liz4LmA4Lit4Li14Lii4LiBCivguKXguLPguYLguK3guIcKK+C4peC4tAor4Lil4Li04LiB4LiC4LiyCivguKXguLTguIHguYTguJnguJXguYwKK+C4peC4tOC4geC4qeC4sgor4Lil4Li04LiB4Li44LiICivguKXguLTguYDguIEKK+C4peC4tOC4guC4meC4sAor4Lil4Li04LiC4Liq4Li04LiX4LiY4LmMCivguKXguLTguILguLTguJUKK+C4peC4tOC4hwor4Lil4Li04LiH4LiE4LmMCivguKXguLTguIfguYLguKXguJQKK+C4peC4tOC4lAor4Lil4Li04LiVCivguKXguLTguJXguKHguLHguKoKK+C4peC4tOC4leC4owor4Lil4Li04LmA4LiX4Li14Lii4LihCivguKXguLTguYjguJkKK+C4peC4tOC5ieC4mQor4Lil4Li04LiZ4LmC4LiB4Lij4LiiCivguKXguLTguJnguIjguIcKK+C4peC4tOC5ieC4meC4iOC4teC5iAor4Lil4Li04LmI4LiZ4LiV4LmJ4LiZCivguKXguLTguYjguJnguJfguLDguYDguKUKK+C4peC4tOC5iOC4meC4ruC4t+C5ieC4rQor4Lil4Li04LiZ4Li04LiZCivguKXguLTguJoKK+C4peC4tOC4m+C4lOC4sgor4Lil4Li04Lib4LiV4LmMCivguKXguLTguJvguKrguJXguLTguIEKK+C4peC4tOC4m+C4tAor4Lil4Li04Lif4LiV4LmMCivguKXguLTguYDguKDguLIKK+C4peC4tOC5iOC4oQor4Lil4Li04LmJ4LihCivguKXguLTguKHguJvguYwKK+C4peC4tOC4oeC4m+C4meC4sAor4Lil4Li04Lil4Li04LiVCivguKXguLTguKcKK+C4peC4tOC5iOC4pwor4Lil4Li04Liq4LiHCivguKXguLUKK+C4peC4teC5iAor4Lil4Li14LmJCivguKXguLXguIvguK0KK+C4peC4teC4mgor4Lil4Li14Lil4LiyCivguKXguLXguKXguLLguKgKK+C4peC4teC4rOC4q+C4sgor4Lil4Li24LiBCivguKXguLbguIfguITguYwKK+C4peC4tuC4h+C4hOC5jOC4meC4suC4ouC4nuC4o+C4suC4mQor4Lil4Li34LiUCivguKXguLfguYjguJkKK+C4peC4t+C5ieC4mQor4Lil4Li34LiaCivguKXguLfguKEKK+C4peC4t+C4rQor4Lil4Li34LmI4LitCivguKXguLfguYnguK0KK+C4peC4uAor4Lil4Li44LiBCivguKXguLjguIHguKXguJkKK+C4peC4uOC4geC4peC4teC5ieC4peC4uOC4geC4peC4mQor4Lil4Li44LiHCivguKXguLjguYnguIcKK+C4peC4uOC4lQor4Lil4Li44LiXCivguKXguLjguJfguIHguLAKK+C4peC4uOC4l+C4mOC5jAor4Lil4Li44LmI4LiZCivguKXguLjguJvguJXguYwKK+C4peC4uOC4nuC4mOC5jAor4Lil4Li44Lie4LiY4LiB4LiwCivguKXguLjguYjguKEKK+C4peC4uOC5iOC4oeC5gOC4meC4t+C5ieC4rQor4Lil4Li44Lih4Lib4LmMCivguKXguLjguKHguJ7guLUKK+C4peC4uOC4oeC4nuC4uQor4Lil4Li44Lih4Lir4Lih4LiyCivguKXguLjguKIKK+C4peC4uOC5iOC4ogor4Lil4Li44LmJ4LiiCivguKXguLjguKXguLLguKIKK+C4peC4uOC4quC4sgor4Lil4Li54LmICivguKXguLnguIEKK+C4peC4ueC4geC5gOC4guC4ouC4leC4suC4ouC5geC4oeC5iOC4ouC4suC4ouC4iuC4seC4geC4m+C4o+C4gQor4Lil4Li54LiB4LmA4LiE4Lil4LmJ4LiyCivguKXguLnguIHguJvguKPguLDguITguLPguJzguLUKK+C4peC4ueC4geC4m+C4t+C4meC5g+C4q+C4jeC5iAor4Lil4Li54LiB4LmA4Lit4LmH4LiZCivguKXguLnguIHguYDguK3guYfguKUKK+C4peC4ueC4guC4sAor4Lil4Li54LiV4LiyCivguKXguLnguJXguLTguIHguLIKK+C4peC4ueC4l+C4teC5gOC4iuC4teC4ouC4oQor4Lil4Li54LiZ4LiwCivguKXguLnguJoKK+C4peC4ueC5iOC4q+C4peC4teC5iAor4LmA4Lil4LiBCivguYDguKXguYfguIEKK+C5gOC4peC5h+C4geC4lOC4sgor4LmA4Lil4LmH4LiB4Liu4Lit4Lij4LmM4LiZCivguYDguKXguIIKK+C5gOC4peC4guC4geC4sAor4LmA4Lil4LiC4LiZ4LiwCivguYDguKXguILguKLguLAKK+C5gOC4peC4guC4sgor4LmA4Lil4LmH4LiHCivguYDguKXguYnguIcKK+C5gOC4peC5iOC4h+C4ruC4t+C5ieC4rQor4LmA4Lil4LmA4LiL4Lit4Lij4LmMCivguYDguKXguJHguJHguLgKK+C5gOC4peC4kwor4LmA4Lil4LiT4LiR4Li4CivguYDguKXguYfguJQKK+C5gOC4peC4lQor4LmA4Lil4LiZCivguYDguKXguYfguJkKK+C5gOC4peC5iOC4mQor4LmA4Lil4LiZ4LiI4LiHCivguYDguKXguJnguKrguYwKK+C5gOC4peC4meC4q+C4sOC4o+C4tQor4LmA4Lil4LmH4LiaCivguYDguKXguJrguIcKK+C5gOC4peC4m+C4geC4owor4LmA4Lil4Lib4LiZ4LmMCivguYDguKXguYDguJsKK+C5gOC4peC5gOC4ngor4LmA4Lil4LmH4LihCivguYDguKXguYjguKEKK+C5gOC4peC4ogor4LmA4Lil4LinCivguYDguKXguKfguIcKK+C5gOC4peC4p+C4ueC5guC4peC4qgor4LmA4Lil4LioCivguYDguKXguKnguI/guLgKK+C5gOC4peC4quC5gOC4muC4teC4ouC4mQor4LmA4Lil4LirCivguYDguKXguYjguKvguYwKK+C5gOC4peC4q+C4ouC4sAor4LmA4Lil4Lir4Lil4Lix4LiHCivguYDguKXguKvguKXguLIKK+C5gOC4peC4q+C4sAor4LmA4Lil4LitCivguYDguKXguLAKK+C5gOC4peC4sgor4LmA4Lil4LmI4LiyCivguYDguKXguYnguLIKK+C5gOC4peC4suC4geC4seC4ogor4LmA4Lil4LmI4Liy4LmA4LiV4LmK4LiHCivguYDguKXguYnguLLguYLguKXguKEKK+C5gOC4peC4suC4sAor4LmA4Lil4Li04LiBCivguYDguKXguLTguYnguIcKK+C5gOC4peC4tOC4meC5gOC4peC5iOC4rQor4LmA4Lil4Li04LioCivguYDguKXguLXguKIKK+C5gOC4peC4teC4ouC4hwor4LmA4Lil4Li14LmI4Lii4LiHCivguYDguKXguLXguYnguKLguIcKK+C5gOC4peC4teC4ouC4h+C4guC4suC4pwor4LmA4Lil4Li14Lii4LiH4Lic4LiyCivguYDguKXguLXguKLguIfguJ3guYnguLLguKIKK+C5gOC4peC4teC4ouC4h+C4oeC4seC4mQor4LmA4Lil4Li14Lii4LiZCivguYDguKXguLXguYjguKLguJkKK+C5gOC4peC4teC4ouC4meC5hOC4nwor4LmA4Lil4Li14Lii4LiaCivguYDguKXguLXguKLguKEKK+C5gOC4peC4teC5iOC4ouC4oQor4LmA4Lil4Li14Lii4LinCivguYDguKXguLXguYnguKLguKcKK+C5gOC4peC4t+C4reC4gQor4LmA4Lil4Li34Lit4LiHCivguYDguKXguLfguYjguK3guIcKK+C5gOC4peC4t+C4reC4lAor4LmA4Lil4Li34Lit4LiZCivguYDguKXguLfguYjguK3guJkKK+C5gOC4peC4t+C5iOC4reC4oQor4LmA4Lil4Li34LmI4Lit4Lih4LmD4LiqCivguYDguKXguLfguYjguK3guKIKK+C5gOC4peC4t+C5ieC4reC4ogor4LmA4Lil4Li34LmI4Lit4Lii4Lil4LmJ4LiyCivguYHguKUKK+C5geC4peC5iAor4LmB4Lil4LmJCivguYHguKXguIEKK+C5geC4peC5h+C4geC5guC4l+C4qgor4LmB4Lil4LiHCivguYHguKXguYjguIcKK+C5geC4peC5ieC4hwor4LmB4Lil4LiZCivguYHguKXguYjguJkKK+C5geC4peC4meC4l+C4suC4meC4seC4oQor4LmB4Lil4LiaCivguYHguKXguYnguKcKK+C5geC4peC4sAor4LmC4Lil4LmICivguYLguKXguYkKK+C5guC4peC4gQor4LmC4Lil4LiB4LiE4LiV4Li0CivguYLguKXguIHguIjguLHguIHguKnguLgKK+C5guC4peC4geC4iuC4meC4meC4tQor4LmC4Lil4LiB4LmA4LiK4Lip4LiQ4LmMCivguYLguKXguIHguJjguKPguKPguKEKK+C5guC4peC4geC4mOC4suC4lOC4sgor4LmC4Lil4LiB4LiY4Liy4LiV4Li4CivguYLguKXguIHguJnguLLguJYKK+C5guC4peC4geC4muC4lgor4LmC4Lil4LiB4Lia4Liy4LilCivguYLguKXguIHguJrguLTguJTguKMKK+C5guC4peC4geC4m+C4o+C4sOC4l+C4teC4mwor4LmC4Lil4LiB4Lih4Liy4Lij4LiU4LiyCivguYLguKXguIHguKLguYwKK+C5guC4peC4geC4ouC4suC4leC4o+C4sgor4LmC4Lil4LiB4Lin4Lix4LiK4LiK4LiwCivguYLguKXguIHguKfguLTguJfguLkKK+C5guC4peC4geC4qOC4seC4nuC4l+C5jAor4LmC4Lil4LiB4Liq4LiW4Li04LiV4Li0CivguYLguKXguIHguK3guLjguJTguKMKK+C5guC4peC4geC4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4LmC4Lil4LiB4Lix4LiZ4LiV4Lij4LmMCivguYLguKXguIHguLIKK+C5guC4peC4geC4tOC4ouC4sAor4LmC4Lil4LiB4Li14Lii4LmMCivguYLguKXguIHguLXguKLguIrguJkKK+C5guC4peC4geC4teC4ouC4p+C4seC4leC4owor4LmC4Lil4LiB4Li44LiV4LijCivguYLguKXguIHguLjguJXguKPguJjguKPguKPguKEKK+C5guC4peC4geC4uOC4leC4o+C4oOC4ueC4oeC4tAor4LmC4Lil4LmA4LiB4LioCivguYLguKXguIcKK+C5guC4peC5iOC4hwor4LmC4Lil4LmJ4LiHCivguYLguKXguYnguIfguYLguJXguYnguIcKK+C5guC4peC4iOC4meC4sAor4LmC4Lil4LiT4LiwCivguYLguKXguJQKK+C5guC4peC4lOC4l+C4sOC4meC4hwor4LmC4Lil4LmI4LiV4Li04LmK4LiZCivguYLguKXguYLguJUKK+C5guC4peC4lwor4LmC4Lil4LiZCivguYLguKXguYnguJkKK+C5guC4peC4m+C4sAor4LmC4Lil4LigCivguYLguKXguKEKK+C5guC4peC4oeC4sAor4LmC4Lil4Lih4LiyCivguYLguKXguKUKK+C5guC4peC4peC4uOC4mwor4LmC4Lil4LmA4LilCivguYLguKXguYnguYDguKXguYkKK+C5guC4peC5guC4pQor4LmC4Lil4LmC4Lil4LmJCivguYLguKXguKvguLAKK+C5guC4peC4q+C4seC4igor4LmC4Lil4Lir4Li04LiVCivguYLguKXguLAKK+C5hOC4peC5iAor4LmE4Lil4LmJCivguYTguKXguKIKK+C5hOC4peC4peC4sgor4LmE4Lil4LmA4Lil4LiiCivguYTguKXguYTguKXguYkKK+C4pwor4Lin4LiBCivguKfguIHguLAKK+C4p+C4geC4uOC4pQor4Lin4LiHCivguKfguIfguIHguYwKK+C4p+C4h+C4geC4lQor4Lin4LiH4Lio4LmMCivguKfguIfguKjguLIKK+C4p+C4h+C4qeC5jAor4Lin4LiI4LiZ4LiwCivguKfguIjguLAKK+C4p+C4iOC4sgor4Lin4LiI4Li1CivguKfguIrguLAKK+C4p+C4iuC4tOC4o+C4sAor4Lin4LiP4LiwCivguKfguI/guLLguIHguLLguKMKK+C4p+C4j+C4uOC4oeC4sAor4Lin4LiT4LiwCivguKfguJPguLTguIoKK+C4p+C4k+C4tOC4iuC4iuC4sgor4Lin4LiT4Li04LiK4Lii4LmMCivguKfguJPguLTguIrguKLguLIKK+C4p+C4k+C4tOC4nuC4gQor4Lin4LiU4Lij4LiZ4Li5CivguKfguJTguLUKK+C4p+C4leC4sAor4Lin4LiX4LiZ4LiwCivguKfguJfguLAKK+C4p+C4l+C4seC4jeC4jeC4uOC4leC4sgor4Lin4LiX4Lix4LiN4LiN4Li5CivguKfguJjguLjguIHguLIKK+C4p+C4mOC4uQor4Lin4LiZCivguKfguJnguIjguKMKK+C4p+C4meC4seC4m+C4leC4tAor4Lin4LiZ4Lix4LiqCivguKfguJnguLIKK+C4p+C4meC4suC4meC4leC5jAor4Lin4LiZ4Li04LiU4LiyCivguKfguJnguLTguJ7guIEKK+C4p+C5gOC4meC4iOC4owor4Lin4LmC4LiZ4LiX4Lii4Liy4LiZCivguKfguJvguJnguLAKK+C4p+C4m+C4uAor4Lin4Lii4Lix4LiE4LiG4LmMCivguKfguKLguLHguI3guIrguJnguLAKK+C4p+C4ouC4seC4oeC4q+C4sAor4Lin4Lii4Lix4Liq4Lii4LmMCivguKfguKLguLLguIHguKPguJPguYwKK+C4p+C4ouC4suC4huC4o+C5jAor4Lin4Lii4Liy4LiY4Li0CivguKfguKLguLLguKEKK+C4p+C4ouC4suC4ouC4suC4oQor4Lin4Lij4LiB4Lix4LiN4LiN4LiyCivguKfguKPguIHguLLguKIKK+C4p+C4o+C4h+C4hOC5jAor4Lin4Lij4LiT4LiwCivguKfguKPguJcKK+C4p+C4o+C4l+C4suC4mQor4Lin4Lij4LiZ4Liy4Lij4Li1CivguKfguKPguJvguLHguIHguKnguYwKK+C4p+C4o+C4nuC4meC4tOC4lQor4Lin4Lij4Lih4Lir4Liy4Lin4Li04Lir4Liy4LijCivguKfguKPguKLguLTguJXguLIKK+C4p+C4o+C4o+C4hAor4Lin4Lij4Lij4LiE4Lii4LmMCivguKfguKPguKPguIoKK+C4p+C4o+C4o+C4iuC4ouC5jAor4Lin4Lij4Lij4LiT4LiZ4LiyCivguKfguKPguKPguJPguJ7guKTguJXguLQKK+C4p+C4o+C4o+C4k+C4sAor4Lin4Lij4Lij4LiT4Li24LiBCivguKfguKPguKPguJjguIEKK+C4p+C4o+C4o+C4mOC4meC4sAor4Lin4Lij4Lij4LipCivguKfguKPguKPguKnguLIKK+C4p+C4o+C4o+C4ueC4mwor4Lin4Lij4Lin4Lij4Lij4LiT4Li04LiZ4Li1CivguKfguKPguKfguLTguKvguLLguKMKK+C4p+C4o+C4seC4jeC4jeC4uQor4Lin4Lij4Liy4LiB4LiwCivguKfguKPguLLguIfguITguJPguLIKK+C4p+C4o+C4suC4oOC4o+C4k+C5jAor4Lin4Lij4Liy4Lii4Li44LiX4LiYCivguKfguKPguLLguYLguKPguKvguLLguKMKK+C4p+C4o+C4suC4q+C5jAor4Lin4Lij4Liy4Lir4LijCivguKfguKPguLLguKvguLAKK+C4p+C4o+C4uOC4kwor4Lin4Lij4Li44LiV4LiU4LihCivguKfguKPguLjguJXguKHguLAKK+C4p+C4o+C4ueC4lgor4Lin4LmC4Lij4LiU4LihCivguKfguYLguKPguJXguKHguLAKK+C4p+C4pOC4gQor4Lin4Lik4Lip4LigCivguKfguKTguKnguKUKK+C4p+C4peC4seC4igor4Lin4Lil4Lix4LiN4LiK4LmMCivguKfguKXguLHguJPguIrguJnguYwKK+C4p+C4peC4seC4ogor4Lin4Lil4Liy4Lir4LiBCivguKfguKXguLUKK+C4p+C4qOC4hAor4Lin4Lio4LiwCivguKfguKjguLTguJkKK+C4p+C4quC4meC4sAor4Lin4Liq4Lig4LiwCivguKfguKrguKXguLAKK+C4p+C4quC4peC4tQor4Lin4Liq4Lin4Lix4LiU4LiU4Li1CivguKfguKrguKfguLHguJXguJXguLUKK+C4p+C4quC4sAor4Lin4Liq4Lix4LiZ4LiV4LmMCivguKfguKrguLHguJnguJXguJTguLTguKXguIEKK+C4p+C4quC4sgor4Lin4Liq4Li1CivguKfguKrguLgKK+C4p+C4quC4uOC4mOC4sgor4Lin4Liq4Li44LiZ4LiY4Lij4LiyCivguKfguKrguLjguKHguJTguLUKK+C4p+C4q+C4sAor4Lin4Lir4LiyCivguKfguK0KK+C4p+C4reC4gQor4Lin4Lit4LiB4LmB4Lin4LiBCivguKfguYjguK3guIcKK+C4p+C5iOC4reC4h+C5hOC4pwor4Lin4Lit4LiUCivguKfguK3guJkKK+C4p+C5iOC4reC4mQor4Lin4Lit4Lil4LmA4Lil4Lii4LmM4Lia4Lit4LilCivguKfguK3guYHguKcKK+C4p+C4sAor4Lin4Lix4LiBCivguKfguLHguIHguIHguLAKK+C4p+C4seC4hAor4Lin4Lix4LiE4LiE4Li04LiiCivguKfguLHguITguITguLXguKLguYwKK+C4p+C4seC4hOC4hOC4uAor4Lin4Lix4LiE4LiL4Li14LiZCivguKfguLHguIcKK+C4p+C4seC4h+C4geC5jAor4Lin4Lix4LiH4LiK4LiyCivguKfguLHguIfguYDguKfguIcKK+C4p+C4seC4h+C4qOC4sAor4Lin4Lix4LiH4Liq4LiwCivguKfguLHguIjguIjguLAKK+C4p+C4seC4iOC4ieC5jAor4Lin4Lix4LiI4LiJ4LiBCivguKfguLHguIjguInguKXguLAKK+C4p+C4seC4iOC4meC5jAor4Lin4Lix4LiKCivguKfguLHguIrguIrguLAKK+C4p+C4seC4iuC4jOC5jAor4Lin4Lix4LiK4Lie4Li34LiKCivguKfguLHguIrguKPguLAKK+C4p+C4seC4jeC4iOC4gQor4Lin4Lix4LiN4LiI4LiZ4LiwCivguKfguLHguI3guIzguYwKK+C4p+C4seC4j+C4geC4sAor4Lin4Lix4LiP4LiP4LiwCivguKfguLHguI/guI/guLQKK+C4p+C4seC4kuC4geC4sAor4Lin4Lix4LiS4LiB4Li1CivguKfguLHguJLguJnguLAKK+C4p+C4seC4kuC4meC4sgor4Lin4Lix4LiTCivguKfguLHguJPguI/guYwKK+C4p+C4seC4k+C4k+C4sAor4Lin4Lix4LiT4LiZ4LiyCivguKfguLHguJQKK+C4p+C4seC4lQor4Lin4Lix4LiV4LiV4LmMCivguKfguLHguJXguJXguLIKK+C4p+C4seC4leC4luC5jAor4Lin4Lix4LiV4LiW4Li4CivguKfguLHguJXguJnguLAKK+C4p+C4seC4leC4owor4Lin4Lix4LiV4Lij4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguKfguLHguJXguKrguJTguKMKK+C4p+C4seC4leC4quC4sAor4Lin4Lix4LiV4Li0CivguKfguLHguJfguJnguYwKK+C4p+C4seC4mQor4Lin4Lix4LiZ4LiV4LmMCivguKfguLHguJnguJfguJnguLIKK+C4p+C4seC4meC4l+C4meC4teC4ouC5jAor4Lin4Lix4LiZ4LiX4LiyCivguKfguLHguJnguJfguLQKK+C4p+C4seC4meC4meC4tOC4nuC4gQor4Lin4Lix4LiZ4LmA4Lin4Lii4LmMCivguKfguLHguJoKK+C4p+C4seC4muC5huC4q+C4p+C4s+C5hgor4Lin4Lix4Lib4Lib4LiwCivguKfguLHguKHguKHguLTguIEKK+C4p+C4seC4ogor4Lin4Lix4Lil4LiB4LmMCivguKfguLHguKXguITguLgKK+C4p+C4seC4peC4ouC5jAor4Lin4Lix4Lil4Lil4LigCivguKfguLHguKXguKXguLUKK+C4p+C4seC4pwor4Lin4Lix4Liq4LiU4Li4CivguKfguLHguKrguJXguKPguYwKK+C4p+C4seC4quC4meC5jAor4Lin4Lix4Liq4LiZ4LiwCivguKfguLHguKrguKrguLAKK+C4p+C4sgor4Lin4LmI4LiyCivguKfguYnguLIKK+C4p+C4suC4gQor4Lin4LmJ4Liy4LiB4LmA4Lie4LmJ4LiiCivguKfguLLguIHguKLguLAKK+C4p+C4suC4geC4o+C4sgor4Lin4Liy4LiB4LiwCivguKfguLLguIcKK+C4p+C5iOC4suC4hwor4Lin4LmJ4Liy4LiHCivguKfguLLguIjguIEKK+C4p+C4suC4iOC4sgor4Lin4Liy4LiI4Liy4LmE4Lib4Lii4LiwCivguKfguLLguIjguLLguKUKK+C4p+C4suC4iuC5gOC4m+C4ouC4sAor4Lin4Liy4LiP4LiB4LiwCivguKfguLLguJPguLTguIoKK+C4p+C4suC4k+C4tOC4iuC4geC4sAor4Lin4Liy4LiT4Li04LiK4Lii4LmMCivguKfguLLguJPguLUKK+C4p+C4suC4lAor4Lin4Liy4LiV4LiwCivguKfguLLguJcKK+C4p+C4suC4l+C4gQor4Lin4Liy4LiX4LiZCivguKfguLLguJfguKLguYwKK+C4p+C4suC4l+C4tOC4lQor4Lin4Liy4LiX4Li04LiZCivguKfguLLguJfguLUKK+C4p+C4suC4mQor4Lin4LmI4Liy4LiZCivguKfguYjguLLguJnguYDguITguKPguLfguK0KK+C4p+C4suC4meC4owor4Lin4Liy4LmA4LiZ4LmA4LiU4Li14Lii4LihCivguKfguLLguJoKK+C4p+C4suC4m+C4sAor4Lin4Liy4Lib4Li04LiV4LiwCivguKfguLLguJvguLUKK+C4p+C4suC4oQor4Lin4Liy4Lih4LiwCivguKfguLLguYLguKHguKMKK+C4p+C4suC4ogor4Lin4LmI4Liy4LiiCivguKfguYnguLLguKIKK+C4p+C4suC4ouC4quC4sAor4Lin4Liy4Lii4LiwCivguKfguLLguKLguLHguIcKK+C4p+C4suC4ouC4suC4oeC4sAor4Lin4Liy4Lii4Li4CivguKfguLLguKLguLjguIHguLnguKUKK+C4p+C4suC4ouC4uOC4muC4uOC4leC4o+C4ouC4suC4leC4o+C4sgor4Lin4Liy4LmC4LiiCivguKfguLLguKMKK+C4p+C4suC4o+C4p+C4suC4o+C4tAor4Lin4Liy4Lij4LiwCivguKfguLLguKPguLQKK+C4p+C4suC4o+C4tQor4Lin4Liy4Lij4Li44LiTCivguKfguLLguKPguLjguJPguLUKK+C4p+C4suC4pQor4Lin4Liy4Lil4LmM4LinCivguKfguLLguKXguLTguIHguLIKK+C4p+C4suC4peC4uOC4geC4sgor4Lin4Liy4LinCivguKfguYjguLLguKcKK+C4p+C5ieC4suC4p+C5iOC4reC4mQor4Lin4LmJ4Liy4Lin4Li44LmI4LiZCivguKfguLLguKrguJnguLAKK+C4p+C4suC4quC4meC4sgor4Lin4Liy4Liq4LieCivguKfguLLguKrguLAKK+C4p+C4suC4quC4tOC4mQor4Lin4Liy4Liq4Li1CivguKfguLLguKrguLjguIHguKPguLUKK+C4p+C4suC4quC4uOC4geC4tQor4Lin4Liy4Liq4Li44LmA4LiX4LieCivguKfguLLguKvguJnguLAKK+C4p+C4suC4q+C4sAor4Lin4Liy4Lir4Li04LiZ4Li1CivguKfguLLguKwKK+C4p+C4tAor4Lin4Li04LiBCivguKfguLTguIHguILguLHguKHguKDguYwKK+C4p+C4tOC4geC4guC4seC4oeC4oOC4meC4sAor4Lin4Li04LiB4LmA4LiC4LibCivguKfguLTguIHguIjguLAKK+C4p+C4tOC4geC4o+C4oQor4Lin4Li04LiB4Lij4Lix4LiiCivguKfguLTguIHguKPguLLguJnguJXguYwKK+C4p+C4tOC4geC4pOC4lQor4Lin4Li04LiB4Lik4LiV4Li0CivguKfguLTguIHguKUKK+C4p+C4tOC4geC4peC4iOC4o+C4tOC4lQor4Lin4Li04LiB4Liq4Li04LiVCivguKfguLTguIHguLHguJUKK+C4p+C4tOC4geC4seC4leC4tAor4Lin4Li04LiB4Lix4LibCivguKfguLTguIHguLHguKIKK+C4p+C4tOC4geC4suC4owor4Lin4Li04LiB4Liy4LilCivguKfguLTguITguJXguJvguLHguIjguIjguLHguKIKK+C4p+C4tOC4hOC4q+C4sAor4Lin4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKfguLTguIbguJnguLAKK+C4p+C4tOC4huC5gOC4meC4qAor4Lin4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguKfguLTguIbguLLguJUKK+C4p+C4tOC4huC4suC4qgor4Lin4Li04LiHCivguKfguLTguYjguIcKK+C4p+C4tOC4h+C4p+C4reC4mQor4Lin4Li04LiI4LiJ4Li04LiB4LiwCivguKfguLTguIjguKLguLjguJUKK+C4p+C4tOC4iOC4o+C4k+C4sAor4Lin4Li04LiI4LilCivguKfguLTguIjguLHguIHguILguJPguYwKK+C4p+C4tOC4iOC4seC4geC4qeC4k+C5jAor4Lin4Li04LiI4Lix4LiiCivguKfguLTguIjguLLguKMKK+C4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04LiI4Li0CivguKfguLTguIjguLTguIHguLTguIjguInguLIKK+C4p+C4tOC4iOC4tOC4lQor4Lin4Li04LiI4Li04LiV4LijCivguKfguLTguIjguLTguJkKK+C4p+C4tOC4iOC4uOC4kwor4Lin4Li04LiI4Li44Lij4LiTCivguKfguLTguIrguIrguLIKK+C4p+C4tOC4iuC4iuC4uAor4Lin4Li04LiK4LiK4Li44LiU4LiyCivguKfguLTguIrguIrguLjguJXguLIKK+C4p+C4tOC4iuC4iuC4uOC4peC4lOC4sgor4Lin4Li04LiK4LiN4LiwCivguKfguLTguIrguJkKK+C4p+C4tOC4iuC4meC4tQor4Lin4Li04LiK4Lix4LiiCivguKfguLTguIrguLIKK+C4p+C4tOC4iuC4suC4meC4meC4sAor4Lin4Li04LiK4Li04LiVCivguKfguLTguYDguIrguLXguKLguKMKK+C4p+C4tOC4jeC4jeC4seC4leC4leC4tAor4Lin4Li04LiN4LiN4Liy4LiTCivguKfguLTguI3guI3guLLguJPguIHguJfguKPguLHguJ7guKLguYwKK+C4p+C4tOC4jeC4jeC4uQor4Lin4Li04LiR4Li54Lij4Lii4LmMCivguKfguLTguJPguKvguLgKK+C4p+C4tOC4lAor4Lin4Li04LiU4Li14Liq4LiU4Li1CivguKfguLTguJXguIEKK+C4p+C4tOC4leC4luC4suC4owor4Lin4Li04LiV4Liy4Lih4Li04LiZCivguKfguLTguJbguLUKK+C4p+C4tOC4l+C4mOC4sAor4Lin4Li04LiX4LiY4Lix4LiH4Liq4LiwCivguKfguLTguJfguKLguLIKK+C4p+C4tOC4l+C4ouC4uAor4Lin4Li04LiX4Lii4Li44LiVCivguKfguLTguJfguKPguLjguKHguLAKK+C4p+C4tOC4l+C4p+C4seC4qgor4Lin4Li04LiX4Lix4LiV4LiW4Li0CivguKfguLTguJfguLLguKPguJPguYwKK+C4p+C4tOC4l+C4suC4peC4meC5jAor4Lin4Li04LiX4Li04LiVCivguKfguLTguJfguLkKK+C4p+C4tOC4l+C4ueC4owor4Lin4Li04LmA4LiX4Lin4LipCivguKfguLTguYDguJfguKgKK+C4p+C4tOC4mAor4Lin4Li04LiY4Lin4LiyCivguKfguLTguJjguLIKK+C4p+C4tOC4mOC4suC4mQor4Lin4Li04LiY4Li1CivguKfguLTguJjguLjguKPguLAKK+C4p+C4tOC4mOC4uQor4Lin4Li04LiY4Li54Lib4LiZ4LiwCivguKfguLTguJkKK+C4p+C4tOC5iOC4mQor4Lin4Li04LiZ4LiX4LmMCivguKfguLTguJnguLHguJnguJXguLkKK+C4p+C4tOC4meC4seC4ogor4Lin4Li04LiZ4Liy4LiX4Li1CivguKfguLTguJnguLLguKLguIEKK+C4p+C4tOC4meC4suC4qAor4Lin4Li04LiZ4Li04LiICivguKfguLTguJnguLTguIjguInguLHguKIKK+C4p+C4tOC4meC4tOC4lQor4Lin4Li04LiZ4Li04Lia4Liy4LiVCivguKfguLTguJnguLTguJvguLLguJXguLTguIEKK+C4p+C4tOC4meC4teC4lQor4Lin4Li04LmA4LiZ4LiVCivguKfguLTguYLguJnguJfguIEKK+C4p+C4tOC4muC4seC4leC4tAor4Lin4Li04Lia4Liy4LiBCivguKfguLTguJrguLjguKUKK+C4p+C4tOC4muC4ueC4pQor4Lin4Li04Lib4LiB4Liy4LijCivguKfguLTguJvguI/guLTguKrguLLguKMKK+C4p+C4tOC4m+C5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4LiB4Liy4LijCivguKfguLTguJvguKPguLDguJXguLTguKrguLLguKMKK+C4p+C4tOC4m+C4o+C4sOC5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4Lil4Liy4LibCivguKfguLTguJvguKPguLDguKfguLLguKoKK+C4p+C4tOC4m+C4o+C4tOC4k+C4suC4oeC4l+C4uOC4geC4guC5jAor4Lin4Li04Lib4Lij4Li04LiVCivguKfguLTguJvguKXguLLguJsKK+C4p+C4tOC4m+C4peC4suC4qgor4Lin4Li04Lib4Lin4Liy4LiqCivguKfguLTguJvguLHguIHguKnguYwKK+C4p+C4tOC4m+C4seC4quC4quC4gQor4Lin4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguKfguLTguJvguLLguIHguILguLHguJnguJjguYwKK+C4p+C4tOC4nuC4suC4geC4qeC5jAor4Lin4Li04Lie4Liy4LiB4Lip4LmM4Lin4Li04LiI4Liy4Lij4LiT4LmMCivguKfguLTguJ7guLTguJjguJfguLHguKjguJnguLIKK+C4p+C4tOC4nuC4uOC4mAor4Lin4Li04Lig4Lix4LiH4LiE4LmMCivguKfguLTguKDguLHguIoKK+C4p+C4tOC4oOC4seC4leC4leC4tAor4Lin4Li04Lig4LiyCivguKfguLTguKDguLLguIQKK+C4p+C4tOC4oOC4suC4igor4Lin4Li04Lig4Liy4LiU4LiyCivguKfguLTguKDguLLguKfguLUKK+C4p+C4tOC4oOC4suC4qQor4Lin4Li04Lig4Liy4LiqCivguKfguLTguKDguLkKK+C4p+C4tOC4oOC4ueC4qeC4k+C4sAor4Lin4Li04Lig4Li54Lip4LiyCivguKfguLTguKDguLnguKnguLTguJUKK+C4p+C4tOC5gOC4oOC4leC4geC5jAor4Lin4Li04LmA4Lig4LiX4LiB4LmMCivguKfguLTguKHguJkKK+C4p+C4tOC4oeC4pQor4Lin4Li04Lih4Lil4Lix4LiBCivguKfguLTguKHguKXguLLguIEKK+C4p+C4tOC4oeC4seC4h+C4quC4sgor4Lin4Li04Lih4Lix4LiV4Li0CivguKfguLTguKHguLLguJkKK+C4p+C4tOC4oeC4suC4meC4tOC4geC5gOC4m+C4o+C4lQor4Lin4Li04Lih4Li44LiCCivguKfguLTguKHguLjguJUKK+C4p+C4tOC4oeC4uOC4leC4leC4tAor4Lin4Li04LmA4Lih4Lil4Li34Lit4LiHCivguKfguLTguYLguKHguIHguILguYwKK+C4p+C4tOC5guC4oeC4geC4qeC4p+C4tOC4luC4tQor4Lin4Li04LmA4Lii4LiZCivguKfguLTguYLguKLguIQKK+C4p+C4tOC4o+C4h+C4o+C4reC4hwor4Lin4Li04Lij4LiV4LiwCivguKfguLTguKPguKHguJPguLAKK+C4p+C4tOC4o+C4p+C4sAor4Lin4Li04Lij4LiwCivguKfguLTguKPguLHguIfguKPguK3guIcKK+C4p+C4tOC4o+C4seC4igor4Lin4Li04Lij4Lix4LiVCivguKfguLTguKPguLHguJXguLQKK+C4p+C4tOC4o+C4suC4hOC4sAor4Lin4Li04Lij4Liy4LihCivguKfguLTguKPguLLguKfguLAKK+C4p+C4tOC4o+C4uOC4mAor4Lin4Li04Lij4Li44Lis4Lir4LmMCivguKfguLTguKPguLjguKzguKvguIEKK+C4p+C4tOC4o+C4ueC4mwor4Lin4Li04Lij4Li54Lib4Lix4LiB4Lip4LmMCivguKfguLTguYDguKPguIEKK+C4p+C4tOC5gOC4o+C4meC4l+C4o+C5jAor4Lin4Li04LmC4Lij4LiECivguKfguLTguYLguKPguIgKK+C4p+C4tOC5guC4o+C4iOC4meC5jAor4Lin4Li04LmC4Lij4LiSCivguKfguLTguYLguKPguJgKK+C4p+C4tOC5guC4o+C4mOC4meC5jAor4Lin4Li04Lil4Lix4LiZ4LiU4LiyCivguKfguLTguKXguLHguKIKK+C4p+C4tOC4peC4suC4lAor4Lin4Li04Lil4Liy4LibCivguKfguLTguKXguLLguKfguLHguJPguKLguYwKK+C4p+C4tOC4peC4suC4qAor4Lin4Li04Lil4Liy4LiqCivguKfguLTguKXguLLguKrguLTguJnguLUKK+C4p+C4tOC4peC4tOC4m+C4lOC4sgor4Lin4Li04Lil4Li04Lio4Lih4Liy4Lir4Lij4LiyCivguKfguLTguYDguKXguJsKK+C4p+C4tOC5gOC4peC4m+C4meC4sAor4Lin4Li04LmC4Lil4LiBCivguKfguLTguYLguKXguIHguJnguLAKK+C4p+C4tOC5guC4peC4iOC4meC4sAor4Lin4Li04LmC4Lil4LihCivguKfguLTguYTguKUKK+C4p+C4tOC4pwor4Lin4Li04Lin4Lij4LiT4LmMCivguKfguLTguKfguKPguKPguJjguJnguYwKK+C4p+C4tOC4p+C4o+C4sAor4Lin4Li04Lin4Lix4LiPCivguKfguLTguKfguLHguJLguJnguYwKK+C4p+C4tOC4p+C4seC4mQor4Lin4Li04Lin4Liy4LiXCivguKfguLTguKfguLLguKvguYwKK+C4p+C4tOC4p+C4suC4q+C4sAor4Lin4Li04Lin4Li04LiICivguKfguLTguKfguLTguJUKK+C4p+C4tOC4p+C4tOC4mAor4Lin4Li04LmA4Lin4LiBCivguKfguLTguKjguKPguLjguJUKK+C4p+C4tOC4qOC4seC4lwor4Lin4Li04Lio4Lix4Lil4Lii4LmMCivguKfguLTguKjguLLguILguLAKK+C4p+C4tOC4qOC4suC4guC4sgor4Lin4Li04Lio4Liy4LiH4LiE4LmMCivguKfguLTguKjguLLguKUKK+C4p+C4tOC4qOC4tOC4qeC4j+C5jAor4Lin4Li04Lio4Li44LiX4LiY4LmMCivguKfguLTguKjguLjguJfguJjguLTguYwKK+C4p+C4tOC5gOC4qOC4qQor4Lin4Li04LmA4Lio4Lip4LiT4LmMCivguKfguLTguKnguJPguLgKK+C4p+C4tOC4qeC4k+C4uOC4geC4o+C4o+C4oQor4Lin4Li04Lip4LiY4LijCivguKfguLTguKnguLHguIHguJXguYwKK+C4p+C4tOC4qeC4seC4ogor4Lin4Li04Lip4Liy4LiTCivguKfguLTguKnguLjguKfguLHguJUKK+C4p+C4tOC4quC4geC4teC5iQor4Lin4Li04Liq4Lij4Lij4LiK4LiZ4Li14Lii4LmMCivguKfguLTguKrguKTguJUKK+C4p+C4tOC4quC4quC4uOC4geC4o+C4o+C4oQor4Lin4Li04Liq4Lix4LiH4LmC4Lii4LiECivguKfguLTguKrguLHguIrguJnguLIKK+C4p+C4tOC4quC4seC4jeC4jeC4tQor4Lin4Li04Liq4Lix4LiiCivguKfguLTguKrguLLguILguLAKK+C4p+C4tOC4quC4suC4guC4sgor4Lin4Li04Liq4Liy4Lih4Lix4LiNCivguKfguLTguKrguLLguKMKK+C4p+C4tOC4quC4suC4o+C4lwor4Lin4Li04Liq4Liy4LilCivguKfguLTguKrguLLguKrguLAKK+C4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lin4Li04Liq4Li04LiQCivguKfguLTguKrguLjguIfguITguLLguKHguKrguLXguKHguLIKK+C4p+C4tOC4quC4uOC4l+C4mOC5jAor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMCivguKfguLTguKrguLnguJXguKMKK+C4p+C4tOC5gOC4quC4lwor4Lin4Li04LmA4Liq4Liq4LiZ4LiwCivguKfguLTguKvguIQKK+C4p+C4tOC4q+C4h+C4hOC5jAor4Lin4Li04Lir4Lil4Lix4LmI4LiZCivguKfguLTguKvguLHguJvguJvguJXguLQKK+C4p+C4tOC4q+C4suC4ouC4quC4sAor4Lin4Li04Lir4Liy4LijCivguKfguLTguKvguLQKK+C4p+C4tOC4q+C4tOC4h+C4quC4sAor4Lin4Li04Lir4Li04LiH4Liq4LiyCivguKfguLTguYDguKvguKrguKDguLLguITguLUKK+C4p+C4tOC5gOC4q+C4quC4sgor4Lin4Li04Lis4Lix4LiH4LiE4LmMCivguKfguLTguKzguLLguKMKK+C4p+C4tQor4Lin4Li14LiI4Li0CivguKfguLXguIrguJnguLUKK+C4p+C4teC4i+C5iOC4sgor4Lin4Li14LiT4LiyCivguKfguLXguYnguJQKK+C4p+C4teC5iOC4p+C4seC4mQor4Lin4Li14LmI4LmB4Lin4LinCivguKfguLXguKrguLAKK+C4p+C4uOC5ieC4hwor4Lin4Li44LiQ4Li0CivguKfguLjguJIKK+C4p+C4uOC4kuC4tAor4Lin4Li44LiUCivguKfguLjguYjguJkKK+C4p+C4uOC5ieC4mQor4Lin4Li44LiaCivguKfguLjguYnguKIKK+C4p+C4uOC4peC5geC4n+C4o+C4oQor4Lin4Li54LmJCivguKfguLnguJTguKfguLLguJQKK+C4p+C4ueC4mgor4Lin4Li54LmI4Lin4Liy4LihCivguYDguKfguYkKK+C5gOC4p+C4hAor4LmA4Lin4LiE4Li04LiZCivguYDguKfguITguLUKK+C5gOC4p+C4iAor4LmA4Lin4LiKCivguYDguKfguIrguKLguLHguJnguJXguYwKK+C5gOC4p+C5hOC4iuC4ouC4ouC4seC4meC4leC5jOC4o+C4suC4iuC4o+C4lgor4LmA4Lin4LiQ4LiZ4LmMCivguYDguKfguJPguLAKK+C5gOC4p+C4k+C4tAor4LmA4Lin4LiT4Li04LiBCivguYDguKfguJPguLgKK+C5gOC4p+C4leC4meC5jAor4LmA4Lin4LiV4LijCivguYDguKfguJXguLLguKUKK+C5gOC4p+C4lwor4LmA4Lin4LiX4LiZ4LiyCivguYDguKfguJfguKLguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC5jAor4LmA4Lin4LiX4Liy4LiH4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKfguJfguLLguJnguJXguYwKK+C5gOC4p+C4l+C4suC4meC4leC4sAor4LmA4Lin4LiX4Li0CivguYDguKfguJfguLUKK+C5gOC4p+C4mOC4sAor4LmA4Lin4LiY4Li1CivguYDguKfguJkKK+C5gOC4p+C5ieC4mQor4LmA4Lin4LiZ4LmE4LiV4LiiCivguYDguKfguYTguJnguKIKK+C5gOC4p+C4oeC4sAor4LmA4Lin4Lih4Lix4LiVCivguYDguKfguKHguLLguJXguLTguIEKK+C5gOC4p+C5ieC4ogor4LmA4Lin4LijCivguYDguKfguKPguKHguJPguLUKK+C5gOC4p+C4o+C4tQor4LmA4Lin4LmC4Lij4LiI4LiZ4LmMCivguYDguKfguKXguLIKK+C5gOC4p+C5gOC4peC4meC4i+C4tQor4LmA4Lin4Lin4Lix4LiTCivguYDguKfguKfguLHguJPguJPguLTguKLguLAKK+C5gOC4p+C4qOC4oeC5jAor4LmA4Lin4Lio4Lii4LmMCivguYDguKfguKjguKLguLIKK+C5gOC4p+C4quC4meC5jAor4LmA4Lin4Liq4Lig4Li5CivguYDguKfguKrguKHguYwKK+C5gOC4p+C4quC4oeC4sAor4LmA4Lin4Liq4Lin4Lix4LiTCivguYDguKfguKrguKrguLAKK+C5gOC4p+C4quC4quC4seC4meC4lOC4owor4LmA4Lin4Liq4Liq4Li44LiB4Lij4Lij4LihCivguYDguKfguKrguKrguLjguKfguLHguJMKK+C5gOC4p+C4quC4suC4o+C4seC4igor4LmA4Lin4Liq4Li0CivguYDguKfguKrguLTguKLguLIKK+C5gOC4p+C4q+C4mQor4LmA4Lin4Lir4LiwCivguYDguKfguKvguLHguIfguITguYwKK+C5gOC4p+C4q+C4seC4m+C4leC4tAor4LmA4Lin4Lir4LiyCivguYDguKfguKvguLLguKLguKoKK+C5gOC4p+C4rOC4uAor4LmA4Lin4Lis4Li44Lij4Li04LiiCivguYDguKfguYjguK0KK+C5gOC4p+C5ieC4sgor4LmA4Lin4Li04LiBCivguYDguKfguLTguYnguIcKK+C5gOC4p+C4teC5iOC4ogor4LmA4Lin4Li14Lii4LiHCivguYDguKfguLXguKLguJkKK+C5gOC4p+C4teC4ouC4owor4LmA4Lin4Li14LmI4Lii4LinCivguYHguKfguYkKK+C5geC4p+C4hwor4LmB4Lin4LmJ4LiHCivguYHguKfguJQKK+C5geC4p+C4leC4owor4LmB4Lin4LiZCivguYHguKfguYjguJkKK+C5geC4p+C4meC4lOC4sgor4LmB4Lin4LiaCivguYHguKfguKEKK+C5geC4p+C4pwor4LmB4Lin4LmI4LinCivguYHguKfguKfguKfguLTguYDguIrguLXguKLguKMKK+C5geC4p+C4sAor4LmC4LinCivguYLguKfguYgKK+C5guC4p+C4geC4suC4owor4LmC4Lin4LmI4LiHCivguYLguKfguJUKK+C5guC4p+C4l+C4suC4mQor4LmC4Lin4LiiCivguYLguKfguYnguKIKK+C5guC4p+C4ouC4p+C4suC4ogor4LmC4Lin4LmJ4LmA4Lin4LmJCivguYLguKfguKrguLLguJkKK+C5guC4p+C4q+C4suC4owor4LmE4LinCivguYTguKfguYkKK+C5hOC4p+C4geC4ueC4k+C4kOC5jAor4LmE4Lin4LiR4Li54Lij4Lii4LmMCivguYTguKfguJfguKLguYwKK+C5hOC4p+C4nuC4iOC4meC5jAor4LmE4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguYTguKfguKLguLLguKfguLHguIjguIHguKMKK+C5hOC4p+C4ouC4suC4p+C4seC4iOC4oeC4seC4ogor4LmE4Lin4Lij4Lix4LiqCivguYTguKfguKfguKPguKPguJMKK+C5hOC4p+C4qeC4k+C4ngor4LmE4Lin4LmC4Lit4Lil4Li04LiZCivguKgKK+C4qOC4gQor4Lio4LiB4LiPCivguKjguIHguKUKK+C4qOC4geC4uOC4mQor4Lio4LiB4Li44LiZ4Li0CivguKjguIHguLjguJnguLUKK+C4qOC4h+C4geC4sgor4Lio4LiI4Li04Lia4LiU4Li1CivguKjguIjguLUKK+C4qOC4kAor4Lio4LiU4LiBCivguKjguJUKK+C4qOC4leC4gQor4Lio4LiZ4Li0CivguKjguYTguJnguKrguYwKK+C4qOC4ngor4Lio4Lie4LilCivguKjguKEKK+C4qOC4oeC4mQor4Lio4Lih4LiZ4Li1CivguKjguKHguJnguLXguKLguYwKK+C4qOC4oeC4qOC4suC4mQor4Lio4LiiCivguKjguKLguJnguLAKK+C4qOC4ouC4meC4teC4ouC5jAor4Lio4Lii4Liy4LihCivguKjguKLguLLguKHguIHguLHguJPguJDguYwKK+C4qOC4ouC4suC4oeC4pQor4Lio4LijCivguKjguKPguJPguLQKK+C4qOC4o+C4meC4suC4o+C4suC4ouC4k+C5jAor4Lio4Lij4LigCivguKjguKPguKHguJPguLAKK+C4qOC4o+C4o+C4geC4owor4Lio4Lij4Lij4LiB4Lij4LiyCivguKjguKPguKPguJ7guKPguLUKK+C4qOC4o+C4p+C4k+C4sAor4Lio4Lij4Lin4LiT4Li14Lii4LmMCivguKjguKPguKfguLTguKnguJDguLIKK+C4qOC4o+C4seC4lgor4Lio4Lij4Lix4LiW4LiZ4LiwCivguKjguKPguLHguJcKK+C4qOC4o+C4seC4l+C4mOC4sgor4Lio4Lij4Lix4LiZ4LiW4LmMCivguKjguKPguLHguJnguKLguYwKK+C4qOC4o+C4seC4meC4ouC4uQor4Lio4Lij4Lix4LiiCivguKjguKPguLLguJfguJjguYwKK+C4qOC4o+C4suC4meC4leC5jAor4Lio4Lij4Liy4LieCivguKjguKPguLLguJ7guIEKK+C4qOC4o+C4suC4ouC4sAor4Lio4Lij4Liy4Lin4LiBCivguKjguKPguLLguKfguJPguLAKK+C4qOC4o+C4suC4p+C4o+C4k+C5jAor4Lio4Lij4Liy4Lin4Li44LiYCivguKjguKPguLLguKrguJnguYwKK+C4qOC4o+C4tQor4Lio4Lij4Li14LiV4Lij4Lix4LiHCivguKjguKPguLXguKnguLAKK+C4qOC4o+C4teC4quC4seC4h+C4hOC4teC4lQor4Lio4Lij4Li44LiVCivguKjguKPguLjguJXguLQKK+C4qOC4pOC4geC4suC4pQor4Lio4Lik4LiE4Liy4LilCivguKjguKTguIfguITguYwKK+C4qOC4pOC4h+C4hOC4suC4owor4Lio4Lik4LiH4LiE4Liy4Lij4Li04LiZCivguKjguKTguIfguITguLLguKPguLUKK+C4qOC4peC4oAor4Lio4Lil4Lix4LiWCivguKjguKXguLTguKnguI/guYwKK+C4qOC4peC4tOC4qeC4sgor4Lio4LinCivguKjguKfguKjguLjguKMKK+C4qOC4p+C4seC4qOC4mQor4Lio4Lin4Lix4LiqCivguKjguKfguLIKK+C4qOC4p+C4suC4mQor4Lio4Lin4Liy4LiqCivguKjguKfguLTguJUKK+C4qOC4p+C4tOC4leC4owor4Lio4Lio4LiwCivguKjguKjguLQKK+C4qOC4qOC4tOC4mQor4Lio4Lio4Li1CivguKjguKrguLIKK+C4qOC4rQor4Lio4Lit4LiBCivguKjguLHguIHguJTguLIKK+C4qOC4seC4geC4lOC4tAor4Lio4Lix4LiB4LiU4Li04LmMCivguKjguLHguIHguJXguLQKK+C4qOC4seC4geC4ouC5jAor4Lio4Lix4LiB4Lii4LiwCivguKjguLHguIHguKPguLLguIoKK+C4qOC4seC4h+C4geC4owor4Lio4Lix4LiH4LiB4LiyCivguKjguLHguIfguIHguLgKK+C4qOC4seC4leC4o+C4uAor4Lio4Lix4LiV4Lij4Li5CivguKjguLHguJfguJjguJnguLAKK+C4qOC4seC4meC4quC4meC4sAor4Lio4Lix4LiZ4Liq4LiZ4Li14Lii4LmMCivguKjguLHguJ7guJfguYwKK+C4qOC4seC4oeC4ouC4uAor4Lio4Lix4Lii4Lii4LiyCivguKjguLHguKUKK+C4qOC4seC4peC4gQor4Lio4Lix4Lil4LiB4Li1CivguKjguLHguKrguJTguKMKK+C4qOC4seC4quC4leC4o+C4sgor4Lio4Lix4Liq4LiV4Lij4Li1CivguKjguLHguKrguKIKK+C4qOC4suC4gQor4Lio4Liy4LiB4LiV4LiwCivguKjguLLguIHguKLguLAKK+C4qOC4suC4geC4p+C4owor4Lio4Liy4LiB4Liy4LiH4LiE4LmMCivguKjguLLguIHguLTguJnguLUKK+C4qOC4suC4juC4gQor4Lio4Liy4LiQ4Lii4LiwCivguKjguLLguJMKK+C4qOC4suC4lQor4Lio4Liy4LiZCivguKjguLLguJnguJXguYwKK+C4qOC4suC4meC4leC4tAor4Lio4Liy4LiZ4Li04LiVCivguKjguLLguJsKK+C4qOC4suC4nuC4l+C5jAor4Lio4Liy4Lie4LijCivguKjguLLguKHguLAKK+C4qOC4suC4oeC4sgor4Lio4Liy4Lih4Li14LilCivguKjguLLguKPguJcKK+C4qOC4suC4o+C4l+C4ueC4pQor4Lio4Liy4Lij4Li04LiB4LiyCivguKjguLLguKUKK+C4qOC4suC4peC4sgor4Lio4Liy4Lil4Li0CivguKjguLLguKjguKfguLHguJUKK+C4qOC4suC4quC4gQor4Lio4Liy4Liq4LiU4LiyCivguKjguLLguKrguJXguKPguYwKK+C4qOC4suC4quC4leC4o+C4sgor4Lio4Liy4Liq4LiZ4LmMCivguKjguLLguKrguJnguLIKK+C4qOC4suC4quC4meC4teC4ouC5jAor4Lio4Liy4Liq4LmC4LiZ4Lin4Liy4LiXCivguKjguLTguIHguKnguIEKK+C4qOC4tOC4geC4suC4owor4Lio4Li04LiC4LijCivguKjguLTguILguKPguLTguJkKK+C4qOC4tOC4guC4o+C4tQor4Lio4Li04LiC4Lix4LiT4LiR4LmMCivguKjguLTguILguLIKK+C4qOC4tOC4hOC4suC4pQor4Lio4Li04LiH4LiC4LijCivguKjguLTguIfguILguKPguLTguJkKK+C4qOC4tOC4lQor4Lio4Li04LiW4Li1CivguKjguLTguJ7guLTguKPguLAKK+C4qOC4tOC4o+C4sAor4Lio4Li04Lij4LiyCivguKjguLTguKPguLLguKHguJ7guLjguIoKK+C4qOC4tOC5guC4o+C4o+C4suC4mgor4Lio4Li04Lil4Lib4LmMCivguKjguLTguKXguJvguLAKK+C4qOC4tOC4peC4sgor4Lio4Li04Lin4LiwCivguKjguLTguKfguLTguIHguLIKK+C4qOC4tOC4qOC4teC4o+C4sAor4Lio4Li04Lio4Li4CivguKjguLTguKnguI7guLQKK+C4qOC4tOC4qeC4j+C5jAor4Lio4Li04Lip4Lii4LmMCivguKjguLXguIHguKMKK+C4qOC4teC4guC4owor4Lio4Li14LiV4LilCivguKjguLXguKUKK+C4qOC4tuC4gQor4Lio4Li24LiB4Lip4LiyCivguKjguLjguIHguKPguYwKK+C4qOC4uOC4geC4peC4seC4oQor4Lio4Li44LiB4LiwCivguKjguLjguIjguLQKK+C4qOC4uOC4k+C4keC4sgor4Lio4Li44LiT4LiR4Li1CivguKjguLjguJfguJgKK+C4qOC4uOC4l+C4mOC4tAor4Lio4Li44LiZCivguKjguLjguJnguLHguIEKK+C4qOC4uOC4meC4tAor4Lio4Li44Lil4Li1CivguKjguLjguKnguLTguKMKK+C4qOC4uOC4qeC4tOC4pQor4Lio4Li54LiB4LijCivguKjguLnguJfguKMKK+C4qOC4ueC4meC4ouC5jAor4Lio4Li54LilCivguKjguLnguKXguLTguJkKK+C5gOC4qOC4o+C4k+C4tQor4LmA4Lio4Lij4Lip4LiQ4LmMCivguYDguKjguKPguKnguJDguLUKK+C5gOC4qOC4o+C5ieC4sgor4LmA4Lio4Lil4LipCivguYDguKjguKfguJTguIfguITguYwKK+C5gOC4qOC4p+C4lOC4teC4oAor4LmA4Lio4Lin4LiVCivguYDguKjguKfguJXguKMKK+C5gOC4qOC4p+C4suC4pQor4LmA4Lio4LipCivguYDguKjguLLguYTguIjguKIKK+C5gOC4qOC4suC4o+C5jAor4LmA4Lio4Liy4Lij4Lii4LiwCivguYDguKjguLTguIEKK+C5gOC4qOC4teC4ouC4owor4LmC4Lio4LiBCivguYLguKjguIHguLIKK+C5guC4qOC4geC4tQor4LmC4Lio4LiI4LiZ4LiwCivguYLguKjguIjguJnguLXguKLguLAKK+C5guC4qOC4iOC4tAor4LmC4Lio4LiW4LiwCivguYLguKjguJjguJnguLAKK+C5guC4qOC4nOC4sAor4LmC4Lio4LigCivguYLguKjguKDguJkKK+C5guC4qOC4oOC4sgor4LmC4Lio4Lig4Li04LiVCivguYLguKjguKDguLTguJkKK+C5guC4qOC4oOC4tOC4qeC4kOC5jAor4LmC4Lio4Lig4Li1CivguYLguKjguKPguJPguLQKK+C5guC4qOC4o+C4k+C4tQor4LmC4Lio4Lij4LiU4LiyCivguYLguKjguKPguJXguKMKK+C5guC4qOC4peC4gQor4LmC4Lio4Lin4Lig4Liy4LieCivguYTguKjguKUKK+C5hOC4qOC4p+C4sAor4LipCivguKnguKHguLIKK+C4qeC4seC4jwor4Lip4Lix4LiP4LiB4LiwCivguKnguLHguJEKK+C4qeC4seC4kwor4Lip4Lix4LipCivguKnguLHguKnguI/guLUKK+C4qeC4seC4qeC4kAor4Lip4Lix4Lip4LiQ4Li1CivguKnguLLguKPguKDguLLguITguK3guKMKK+C5guC4qeC4keC4qAor4LmC4Lip4LiR4Lio4Lix4LiZCivguKoKK+C4quC4gQor4Liq4LiB4LiP4LiwCivguKrguIHguJDguLLguJkKK+C4quC4geC4l+C4suC4hOC4suC4oeC4tQor4Liq4LiB4LiZ4LiY4LmMCivguKrguIHguJvguKPguIEKK+C4quC4geC4o+C4k+C4teC4ouC5jAor4Liq4LiB4Lij4Lij4LiI4LmMCivguKrguIHguKPguKPguJYKK+C4quC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Liq4LiB4Lij4Lix4LihCivguKrguIHguKPguLkKK+C4quC4geC4pQor4Liq4LiB4Lix4LiUCivguKrguIHguLHguJTguYHguITguKPguYgKK+C4quC4geC4sgor4Liq4LiB4Liy4Lii4LmB4Lil4LiaCivguKrguIHguLLguKcKK+C4quC4geC4tOC4l+C4suC4hOC4suC4oeC4tQor4Liq4LiB4Li1CivguKrguIHguLjguJMKK+C4quC4geC4uOC4k+C4sgor4Liq4LiB4Li44LiT4Li1CivguKrguIHguLjguJkKK+C4quC4geC4uOC4meC4leC5jAor4Liq4LiB4Li44LilCivguKrguYDguIHguJUKK+C4quC5geC4geC4meC5gOC4lOC4teC4ouC4oQor4Liq4LiC4LiwCivguKrguILguLIKK+C4quC4guC4tAor4Liq4LiHCivguKrguYjguIcKK+C4quC4h+C4geC4owor4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKrguIfguIHguLIKK+C4quC4h+C5guC4geC4iAor4Liq4LiH4LiE4LmMCivguKrguIfguITguKMKK+C4quC4h+C4hOC4o+C4suC4oQor4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguIfguIbguYwKK+C4quC4h+C4mgor4Liq4LiH4Lin4LiZCivguKrguIfguYDguKnguJsKK+C4quC5iOC4h+C4quC4geC4suC4owor4Liq4LiH4Liq4Lix4LiiCivguKrguIfguKrguLLguKMKK+C4quC4h+C4seC4lAor4Liq4LiH4LmI4LiyCivguKrguIjguYrguKfguJQKK+C4quC4kAor4Liq4LiT4LiR4LmMCivguKrguJQKK+C4quC4lOC4gQor4Liq4LiU4LiZCivguKrguJTguKHguKDguYwKK+C4quC4lOC4seC4mQor4Liq4LiU4Lix4LiaCivguKrguJTguLHguJrguJvguIHguKPguJPguYwKK+C4quC4lOC4swor4Liq4LiU4Li1CivguKrguJTguLjguJTguLUKK+C4quC4lOC4ueC4mwor4Liq4LiVCivguKrguJXguIEKK+C4quC4leC4mQor4Liq4LiV4Lij4Lit4LiZ4LmA4LiK4Li14Lii4LihCivguKrguJXguKPguLTguIHguJnguLTguJkKK+C4quC4leC4o+C4tQor4Liq4LiV4Lix4LiZCivguKrguJXguLHguJnguKLguYwKK+C4quC4leC4seC4nuC4mOC5jAor4Liq4LiV4Lix4Lif4Lif4LmMCivguKrguJXguLHguKHguKDguYwKK+C4quC4leC4suC4h+C4hOC5jAor4Liq4LiV4Liy4Lif4Lif4LmMCivguKrguJXguLQKK+C4quC4leC4tOC5iuC4gQor4Liq4LiV4Li1CivguKrguJXguLXguKEKK+C4quC4leC4uQor4Liq4LiV4Li54LibCivguKrguYDguJXguYfguIEKK+C4quC5gOC4leC4meC5gOC4peC4qgor4Liq4LmA4LiV4Lii4LmMCivguKrguYTguJXguKPguYrguITguYwKK+C4quC4luC4mQor4Liq4LiW4Lia4LiU4Li1CivguKrguJbguKUKK+C4quC4luC4p+C4teC4o+C4sAor4Liq4LiW4Liy4LiZCivguKrguJbguLLguJnguLAKK+C4quC4luC4suC4meC4tQor4Liq4LiW4Liy4Lia4LiBCivguKrguJbguLLguJrguLHguJkKK+C4quC4luC4suC4m+C4meC4sgor4Liq4LiW4Liy4Lib4LiZ4Li04LiBCivguKrguJbguLLguJvguJnguLXguKLguJ7guKLguLLguIHguKPguJPguYwKK+C4quC4luC4suC4m+C4meC4teC4ouC4p+C4suC4l+C4tQor4Liq4LiW4Liy4Lib4Lix4LiV4Lii4LiB4Lij4Lij4LihCivguKrguJbguLLguJ7guKMKK+C4quC4luC4suC4pQor4Liq4LiW4Liy4Lin4LijCivguKrguJbguLTguJUKK+C4quC4luC4tOC4leC4meC4qOC4suC4quC4leC4o+C5jAor4Liq4LiW4Li04LiV4Li0CivguKrguJbguLjguKUKK+C4quC4luC4ueC4mwor4Liq4LiX4Liy4LijCivguKrguJfguLbguIcKK+C4quC4l+C4uOC4oQor4Liq4LiY4LiZCivguKrguJjguLjguKrguLAKK+C4quC4mQor4Liq4LmJ4LiZCivguKrguJnguYDguJTguIEKK+C4quC4meC4l+C4meC4sgor4Liq4LiZ4LiX4Lij4Lij4LioCivguKrguJnguJfguKPguKPguKjguJnguYwKK+C4quC4meC4l+C4tOC4qAor4Liq4LiZ4LmA4LiX4LioCivguKrguJnguYDguJfguYjguKvguYwKK+C4quC4meC4mOC4ouC4sgor4Liq4LiZ4LiY4Li0CivguKrguJnguJjguLTguK3guKXguIfguIHguJUKK+C4quC4meC4meC4o+C4suC4hOC4sgor4Liq4LiZ4LihCivguKrguJnguKfguJkKK+C4quC4meC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Lit4LiHCivguKrguJnguK3guJoKK+C4quC4meC4reC4oQor4Liq4LiZ4LiwCivguKrguJnguLHguJQKK+C4quC4meC4seC5iOC4mQor4Liq4LiZ4Lix4LiaCivguKrguJnguLHguJrguKrguJnguLjguJkKK+C4quC4meC4suC4lOC4gQor4Liq4LiZ4Liy4LiZCivguKrguJnguLLguJrguIEKK+C4quC4meC4suC4muC4seC4mQor4Liq4LiZ4Liy4LihCivguKrguJnguLLguKLguLgKK+C4quC4meC4tOC4gQor4Liq4LiZ4Li04LiXCivguKrguJnguLTguJgKK+C4quC4meC4tOC4oQor4Liq4LiZ4Li04Lih4Liq4Lij4LmJ4Lit4LiiCivguKrguJnguLjguIEKK+C4quC4meC4uOC4geC5gOC4geC4reC4o+C5jAor4Liq4LiZ4Li44LiCCivguKrguJnguLjguJUKK+C4quC4meC4uOC5iOC4mQor4Liq4LiaCivguKrguJrguIcKK+C4quC4muC4iAor4Liq4Lia4LiWCivguKrguJrguYDguKrguLXguKIKK+C4quC4muC4seC4mQor4Liq4Lia4Liy4LiiCivguKrguJrguLnguYgKK+C4quC5hOC4mgor4Liq4Lib4Lij4Li04LiHCivguKrguJvguLLguYDguIHguJXguJXguLUKK+C4quC4m+C4suC4ogor4Liq4Lib4Li04Lij4Li04LiVCivguKrguYDguJvguIHguJXguKPguLHguKEKK+C4quC5gOC4m+C4geC5guC4l+C4o+C4quC5guC4hOC4mwor4Liq4LmE4Lib4Lij4Li04Lil4Lil4Lix4LihCivguKrguJ7guLHguYnguJkKK+C4quC4nuC4suC4mgor4Liq4Lig4Lix4LiH4LiE4Lih4LiT4LiR4LilCivguKrguKDguLIKK+C4quC4oOC4suC4hAor4Liq4Lig4Liy4LieCivguKrguKDguLLguKfguLAKK+C4quC4oQor4Liq4LmJ4LihCivguKrguKHguIHguLLguKMKK+C4quC4oeC4iOC4suC4o+C4tQor4Liq4Lih4LiK4Li14Lin4Li04LiV4LiyCivguKrguKHguIrguLXguKfguLTguJjguKPguKPguKEKK+C4quC4oeC4jeC4sgor4Liq4Lih4LmA4LiN4LioCivguKrguKHguJPguLAKK+C4quC4oeC4lOC4tuC4h+C4quC5jAor4Liq4Lih4LiU4Li44LilCivguKrguKHguYDguJTguYfguIgKK+C4quC4oeC4luC4sAor4Liq4Lih4LiZ4Liy4LiE4Li44LiTCivguKrguKHguJrguLHguJXguLQKK+C4quC4oeC4muC4uOC4geC4quC4oeC4muC4seC4mQor4Liq4Lih4Lia4Li54Lij4LiT4LmMCivguKrguKHguJrguLnguKPguJPguLLguI3guLLguKrguLTguJfguJjguLTguKPguLLguIrguKLguYwKK+C4quC4oeC4m+C4o+C4sOC4lOC4tQor4Liq4Lih4Lib4Lik4LiU4Li1CivguKrguKHguJvguKTguYXguJTguLUKK+C4quC4oeC4nOC4uOC4qgor4Liq4Lih4Lie4LiH4Lio4LmMCivguKrguKHguJ7guKUKK+C4quC4oeC4nuC4seC4geC4meC4seC4geC4geC4suC4owor4Liq4Lih4Lie4Lix4LiV4Liq4LijCivguKrguKHguJ7guLLguKoKK+C4quC4oeC5gOC4nuC4igor4Liq4Lih4LmC4Lie4LiY4LiZ4LmMCivguKrguKHguYLguJ7guJjguLQKK+C4quC4oeC4oOC4ngor4Liq4Lih4Lig4Liy4LijCivguKrguKHguYLguKDguIQKK+C4quC4oeC5guC4oOC4igor4Liq4Lih4Lih4LiVCivguKrguKHguKHguJXguLQKK+C4quC4oeC4oeC4suC4leC4owor4Liq4Lih4Lih4Li44LiV4Li0CivguKrguKHguKHguLnguKUKK+C4quC4oeC5guC4oeC4lwor4Liq4Lih4LmC4Lii4LiECivguKrguKHguKMKK+C4quC4oeC4o+C4lAor4Liq4Lih4Lij4Lij4LiWCivguKrguKHguKPguKoKK+C4quC4oeC4pOC4lOC4tQor4Liq4Lih4Lik4LiV4Li0CivguKrguKHguKTguYXguJTguLUKK+C4quC4oeC4p+C4seC4ogor4Liq4Lih4Lin4Liy4Lii4LiwCivguKrguKHguYDguKrguKPguYfguIgKK+C4quC4oeC4rQor4Liq4Lih4Lit4LiHCivguKrguKHguK3guKrguLPguYDguKDguLIKK+C4quC4oeC4seC4hAor4Liq4Lih4Lix4LiE4LijCivguKrguKHguLHguIfguITguLUKK+C4quC4oeC4seC4igor4Liq4Lih4Lix4LiK4LiK4LiyCivguKrguKHguLHguJUKK+C4quC4oeC4seC4mQor4Liq4Lih4Lix4LiZ4LiV4LmMCivguKrguKHguLHguKIKK+C4quC4oeC4sgor4Liq4Lih4Liy4LiE4LihCivguKrguKHguLLguIjguLLguKMKK+C4quC4oeC4suC4iuC4tOC4gQor4Liq4Lih4Liy4LiX4Liy4LiZCivguKrguKHguLLguJjguLQKK+C4quC4oeC4suC4mQor4Liq4Lih4Liy4LiZ4Lix4LiV4LiV4LiyCivguKrguKHguLLguYLguJnguJXguKHguYwKK+C4quC4oeC4suC4muC4seC4leC4tAor4Liq4Lih4Liy4Lie4Lix4LiZ4LiY4Lij4Lix4LiQCivguKrguKHguLLguKoKK+C4quC4oeC5iOC4s+C5gOC4quC4oeC4rQor4Liq4Lih4Li04LiHCivguKrguKHguLTguIfguJfguK3guIcKK+C4quC4oeC4tOC4lQor4Liq4Lih4Li04LiV4Li0CivguKrguKHguLTguJfguJjguYwKK+C4quC4oeC4tOC4l+C4mOC4tAor4Liq4Lih4Li1CivguKrguKHguLXguJsKK+C4quC4oeC4teC4owor4Liq4Lih4Li44LiBCivguKrguKHguLjguIjguIjguLHguKIKK+C4quC4oeC4uOC4iOC5gOC4ieC4lwor4Liq4Lih4Li44LiP4LiQ4Liy4LiZCivguKrguKHguLjguJQKK+C4quC4oeC4uOC4leC4luC4suC4mQor4Liq4Lih4Li44LiX4LijCivguKrguKHguLjguJfguKPguIEKK+C4quC4oeC4uOC4l+C4seC4ogor4Liq4Lih4Li44LiX4Li04LiVCivguKrguKHguLjguJkKK+C4quC4oeC4uOC4meC5hOC4nuC4owor4Liq4Lih4Li44Lil4LmB4Lin4LmJ4LiHCivguKrguKHguLjguKvguYwKK+C4quC5guC4oeC4mOC4suC4mQor4Liq4LmC4Lih4Liq4LijCivguKrguKLguJQKK+C4quC4ouC4meC4sAor4Liq4Lii4LiaCivguKrguKLguKHguJ7guKMKK+C4quC4ouC4oeC4oOC4uQor4Liq4Lii4Lit4LiHCivguKrguKLguK3guJkKK+C4quC4ouC4seC4oeC4nuC4owor4Liq4Lii4Lix4Lih4Lin4Lij4LiyCivguKrguKLguLLguKEKK+C4quC4ouC4suC4ogor4Liq4Lii4Li04LinCivguKrguKLguLTguYnguKcKK+C4quC4ouC4uOC5iOC4mQor4Liq4Lii4Li44Lih4Lie4LijCivguKrguKLguLjguKHguKDguLkKK+C4quC4owor4Liq4Lij4LiBCivguKrguKPguIcKK+C4quC4o+C5iOC4hwor4Liq4Lij4LiP4LiwCivguKrguKPguJPguLAKK+C4quC4o+C4lOC4seC4gQor4Liq4Lij4LiU4Li24LmI4LiZCivguKrguKPguJTguLfguYjguJkKK+C4quC4o+C4leC4sAor4Liq4Lij4LiV4Lix4LiBCivguKrguKPguJfguLAKK+C4quC4o+C4l+C4tuC4hwor4Liq4Lij4LmB4LiX4LiaCivguKrguKPguJnguLjguIEKK+C4quC4o+C5gOC4meC4suC4sAor4Liq4Lij4LmE4LiZCivguKrguKPguJoKK+C4quC4o+C4muC4mgor4Liq4Lij4Lia4Lix4LiaCivguKrguKPguJ4KK+C4quC4o+C5gOC4nuC4iuC4jQor4Liq4Lij4Lig4LiwCivguKrguKPguKDguLHguI3guI3guLAKK+C4quC4o+C4oOC4uQor4Liq4Lij4LihCivguKrguKPguKMKK+C4quC4o+C4o+C4hOC5jAor4Liq4Lij4Lij4LieCivguKrguKPguKPguJ7guLHguIrguI0KK+C4quC4o+C4o+C5gOC4nuC4iuC4jQor4Liq4Lij4Lij4LmA4Lie4LiK4Li44LiU4LiyCivguKrguKPguKPguKfguIcKK+C4quC4o+C4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4Lil4LiZCivguKrguKPguKXguKEKK+C4quC4o+C4peC4oeC4quC4peC4p+C4mQor4Liq4Lij4Lil4Lit4LiUCivguKrguKPguKXguK3guJkKK+C4quC4o+C4peC4sAor4Liq4Lij4Lil4LmJ4Liy4LiiCivguKrguKPguKXguLTguJQKK+C4quC4o+C5gOC4peC4ggor4Liq4Lij4Lin4LiHCivguKrguKPguKfguJsKK+C4quC4o+C4p+C4oQor4Liq4Lij4Lin4LilCivguKrguKPguKfguKXguYDguKoKK+C4quC4o+C4p+C4peC5gOC4quC5gOC4ruC4ruC4sgor4Liq4Lij4LmA4Liq4Lij4Li04LiNCivguKrguKPguYnguK3guKIKK+C4quC4o+C5ieC4reC4ouC4l+C4sOC5geC4ogor4Liq4Lij4LiwCivguKrguKPguLDguIHguK0KK+C4quC4o+C4sOC4hOC4o+C4suC4jQor4Liq4Lij4Liw4LiU4LiwCivguKrguKPguLDguJfguYnguK3guJkKK+C4quC4o+C4sOC4nuC4o+C4seC5iOC4hwor4Liq4Lij4Liw4Lit4Liy4LiUCivguKrguKPguLDguK3guLfguYnguJkKK+C4quC4o+C4seC5iOC4hwor4Liq4Lij4Lix4Liq4Lin4LiU4Li1CivguKrguKPguYjguLLguIcKK+C4quC4o+C5ieC4suC4hwor4Liq4Lij4Liy4LiNCivguKrguKPguYnguLLguKfguYDguKrguLXguKLguKcKK+C4quC4o+C4tOC4lQor4Liq4Lij4Li14LmJCivguKrguKPguLXguKPguLAKK+C4quC4o+C4teC4quC4pOC4mgor4Liq4Lij4Li44LiBCivguKrguKPguLjguIcKK+C4quC4o+C4uOC5guC4meC4gQor4Liq4Lij4Li44LibCivguKrguKPguLjguKrguKPguLAKK+C4quC4o+C4ueC4mwor4Liq4LmC4Lij4LiKCivguKrguKTguIEKK+C4quC4pOC4hOC4suC4pQor4Liq4Lik4LiVCivguKrguKTguKnguI7guYwKK+C4quC4pOC4qeC4juC4tQor4Liq4LilCivguKrguKXguJQKK+C4quC4peC4mgor4Liq4Lil4Lin4LiZCivguKrguKXguKfguKIKK+C4quC4peC4reC4lAor4Liq4Lil4Lit4LiZCivguKrguKXguK3guKIKK+C4quC4peC4sAor4Liq4Lil4Liw4Liq4Lil4Lin4LiiCivguKrguKXguLHguIEKK+C4quC4peC4seC4geC5gOC4leC5iQor4Liq4Lil4Lix4LiB4Liq4Liz4LiE4Lix4LiNCivguKrguKXguLHguJQKK+C4quC4peC4seC4lOC5hOC4lAor4Liq4Lil4Lix4LiaCivguKrguKXguLHguKEKK+C4quC4peC4seC4pwor4Liq4Lil4LiyCivguKrguKXguLLguIEKK+C4quC4peC4suC4geC4sgor4Liq4Lil4Liy4LiHCivguKrguKXguYnguLLguIcKK+C4quC4peC4suC4lAor4Liq4Lil4Liy4LiV4Lix4LiZCivguKrguKXguLLguJoKK+C4quC4peC4suC4oQor4Liq4Lil4Liy4LiiCivguKrguKXguLTguJQKK+C4quC4peC4tOC4pQor4Liq4Lil4Li24LiBCivguKrguKXguLbguIcKK+C4quC4peC4uOC4lQor4Liq4Lil4Li44LiaCivguKrguKXguLjguKHguJ7guKMKK+C4quC5geC4peC4hwor4Liq4LmC4Lil4LiUCivguKrguYTguKXguJTguYwKK+C4quC4p+C4gQor4Liq4LmJ4Lin4LiHCivguKrguKfguJQKK+C4quC4p+C4mQor4Liq4LmI4Lin4LiZCivguKrguKfguJnguLAKK+C4quC4p+C4meC4tOC4lQor4Liq4Lin4LiaCivguKrguKfguKEKK+C4quC5ieC4p+C4oQor4Liq4Lin4LiiCivguKrguYjguKfguKIKK+C4quC5ieC4p+C4ogor4Liq4Lin4Lii4LihCivguKrguKfguKMKK+C4quC4p+C4o+C4o+C4hOC5jAor4Liq4Lin4Lij4Lij4Lii4LiyCivguKrguKfguLAKK+C4quC4p+C4seC4quC4lOC4tOC5jAor4Liq4Lin4Lix4Liq4LiU4Li1CivguKrguKfguLHguKrguJXguLTguIHguLAKK+C4quC4p+C4sgor4Liq4Lin4Liy4LiE4LiVCivguKrguKfguLLguIcKK+C4quC4p+C5iOC4suC4hwor4Liq4Lin4Liy4LiUCivguKrguKfguLLguJTguLQKK+C4quC4p+C4suC4lwor4Liq4Lin4Liy4LiZCivguKrguKfguYjguLLguJkKK+C4quC4p+C5ieC4suC4mQor4Liq4Lin4Liy4LiaCivguKrguKfguLLguKHguLQKK+C4quC4p+C4suC4oeC4tQor4Liq4Lin4Liy4LiiCivguKrguKfguLLguKrguJTguLTguYwKK+C4quC4p+C4suC4q+C4sAor4Liq4Lin4Li04LiHCivguKrguKfguLTguIfguKrguKfguLLguKIKK+C4quC4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lin4Li04LiV4LiL4LmMCivguKrguKrguLLguKMKK+C4quC4quC4uOC4o+C4sAor4Liq4Liq4Li44Lij4Li1CivguKrguKvguLHguKHguJrguJTguLUKK+C4quC4q+C4seC4quC4o+C4seC4h+C4quC4tQor4Liq4Lir4Lix4Liq4Liq4LiwCivguKrguKvguLHguKrguLIKK+C4quC4rQor4Liq4LmI4LitCivguKrguK3guIcKK+C4quC5iOC4reC4hwor4Liq4LmJ4Lit4LiHCivguKrguK3guJQKK+C4quC4reC4mQor4Liq4LmI4Lit4LiZCivguKrguK3guJoKK+C4quC4reC4nuC4peC4rQor4Liq4LmJ4Lit4LihCivguKrguK3guKIKK+C4quC5iOC4reC5gOC4quC4teC4ouC4lAor4Liq4LiwCivguKrguLDguIHguJQKK+C4quC4sOC4geC4rQor4Liq4Liw4LiB4Liy4LiHCivguKrguLDguIHguLLguKPguLAKK+C4quC4sOC4geC4suC4o+C4sOC4leC4suC4q+C4o+C4sgor4Liq4Liw4LiB4Li04LiUCivguKrguLDguYDguIHguYfguJQKK+C4quC4sOC5geC4gQor4Liq4Liw4LiE4Lij4LmJ4LitCivguKrguLDguITguKPguLLguI0KK+C4quC4sOC4hOC5ieC4suC4mQor4Liq4Liw4LmA4LiH4Liy4Liw4Liq4Liw4LmB4LiH4LiwCivguKrguLDguYPguIgKK+C4quC4sOC4lOC4oQor4Liq4Liw4LiU4Lin4LiBCivguKrguLDguJTguLHguIEKK+C4quC4sOC4lOC4tOC5ieC4hwor4Liq4Liw4LiU4Li24LiHCivguKrguLDguJTguLfguK0KK+C4quC4sOC4lOC4uOC5ieC4hwor4Liq4Liw4LiU4Li44LiUCivguKrguLDguYDguJTguYfguJQKK+C4quC4sOC5gOC4lOC4sgor4Liq4Liw4LmA4LiU4Liy4LiwCivguKrguLDguJXguK0KK+C4quC4sOC4leC4suC4q+C4oeC4seC4mQor4Liq4Liw4LiV4Li2CivguKrguLDguJXguLfguK0KK+C4quC4sOC4leC4uAor4Liq4Liw4LmA4LiV4LmK4LiwCivguKrguLDguYLguJXguIEKK+C4quC4sOC4l+C4gQor4Liq4Liw4LiX4LiZCivguKrguLDguJfguYnguK3guJkKK+C4quC4sOC4l+C5ieC4suC4mQor4Liq4Liw4LiX4Li24LiBCivguKrguLDguJfguLbguJkKK+C4quC4sOC4l+C4tuC5iOC4mQor4Liq4Liw4LmA4LiX4Li04LiZCivguKrguLDguYDguJfguLTguYnguJkKK+C4quC4sOC5gOC4l+C4t+C4reC4mQor4Liq4Liw4LmA4LiX4Li34LmJ4Lit4LiZCivguKrguLDguJrguLAKK+C4quC4sOC4muC4seC4gQor4Liq4Liw4Lia4Lix4LiUCivguKrguLDguJrguLHguYnguJkKK+C4quC4sOC4muC4seC4meC4h+C4sgor4Liq4Liw4Lia4Lix4LiZ4LiH4Liy4LiV4LmJ4LiZCivguKrguLDguJrguYnguLIKK+C4quC4sOC4muC4uQor4Liq4Liw4LmB4Lia4LiHCivguKrguLDguYDguJvguLDguKrguLDguJvguLAKK+C4quC4sOC4nuC4o+C4seC4gQor4Liq4Liw4Lie4Lij4Lix4LmI4LiHCivguKrguLDguJ7guKPguLbguIfguIHguKXguLHguKcKK+C4quC4sOC4nuC4o+C4tuC4mgor4Liq4Liw4Lie4Lix4LiBCivguKrguLDguJ7guLHguIcKK+C4quC4sOC4nuC4seC4lAor4Liq4Liw4Lie4Lix4LmJ4LiZCivguKrguLDguJ7guLLguJkKK+C4quC4sOC4nuC4suC4ogor4Liq4Liw4LmA4Lie4Lij4LmI4LiyCivguKrguLDguYLguJ7guIEKK+C4quC4sOC5gOC4oOC4sgor4Liq4Liw4LmD4Lig4LmJCivguKrguLDguYLguKHguIcKK+C4quC4sOC4o+C4sOC4leC4sAor4Liq4Liw4Lij4Liw4LmB4Lir4LiZ4LmICivguKrguLDguKPguLXguJXguJ7guIfguKjguYwKK+C4quC4sOC4peC4sOC4m+C4sOC4leC4uOC5iOC4mQor4Liq4Liw4Lil4Liy4LiHCivguKrguLDguKXguLbguKHguKrguLDguKXguLfguK0KK+C4quC4sOC4p+C4teC5ieC4lOC4quC4sOC4p+C5ieC4suC4lAor4Liq4Liw4Liq4LihCivguKrguLDguKrguLLguIcKK+C4quC4sOC4reC4suC4hwor4Liq4Liw4Lit4Liy4LiUCivguKrguLDguK3guYnguLLguJkKK+C4quC4sOC4reC4tOC5ieC4hwor4Liq4Liw4Lit4Li04LiU4Liq4Liw4LmA4Lit4Li14Lii4LiZCivguKrguLDguK3guLbguIEKK+C4quC4sOC4reC4t+C5ieC4mQor4Liq4Liw4LmA4Lit4LinCivguKrguLDguYDguK3guK3guLAKK+C4quC4sOC5guC4reC4lOC4quC4sOC4reC4hwor4Liq4Liw4LmE4LitCivguKrguLHguIEKK+C4quC4seC4geC4geC4sAor4Liq4Lix4LiB4LiB4Lix4LiI4LiI4LiwCivguKrguLHguIHguIHguLLguKPguLAKK+C4quC4seC4geC4guC4o+C4sgor4Liq4Lix4LiB4LiC4Li1CivguKrguLHguIHguI/guLAKK+C4quC4seC4geC4leC4sAor4Liq4Lix4LiB4Lii4LiwCivguKrguLHguIHguKfguLIKK+C4quC4seC4geC4q+C4peC4suC4lAor4Liq4Lix4LiC4Lii4LiwCivguKrguLHguIQKK+C4quC4seC4hOC4hOC4sAor4Liq4Lix4LmI4LiHCivguKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4geC4owor4Liq4Lix4LiH4LiB4Liw4LiV4Lix4LiHCivguKrguLHguIfguIHguLDguKfguLHguIcKK+C4quC4seC4h+C4geC4sOC4p+C4suC4lAor4Liq4Lix4LiH4LiB4Liw4Liq4Li1CivguKrguLHguIfguIHguLHguJQKK+C4quC4seC4h+C4geC4seC4m+C4m+C4sAor4Liq4Lix4LiH4LiB4LiyCivguKrguLHguIfguIHguLLguKMKK+C4quC4seC4h+C4geC4suC4qAor4Liq4Lix4LiH4LiB4Li04LmA4Lil4LiqCivguKrguLHguIfguYDguIHguJUKK+C4quC4seC4h+C4guC5jAor4Liq4Lix4LiH4LiC4LiV4LiwCivguKrguLHguIfguILguKLguLIKK+C4quC4seC4h+C4guC4peC4tOC4gQor4Liq4Lix4LiH4LiC4Lil4Li04LiB4LiyCivguKrguLHguIfguILguKfguLLguJnguKMKK+C4quC4seC4h+C4guC4suC4owor4Liq4Lix4LiH4LiC4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguLHguIfguILguLLguKPguJjguKPguKPguKEKK+C4quC4seC4h+C4guC4suC4o+C5guC4peC4gQor4Liq4Lix4LiH4LiC4Liy4Lij4Lit4Li44LmA4Lia4LiB4LiC4LiyCivguKrguLHguIfguYDguILguJsKK+C4quC4seC4h+C5guC4guC4oAor4Liq4Lix4LiH4LiE4LmMCivguKrguLHguIfguITguKEKK+C4quC4seC4h+C4hOC4oeC4meC4tOC4ouC4oQor4Liq4Lix4LiH4LiE4Lih4Lin4Li04LiX4Lii4LiyCivguKrguLHguIfguITguKHguKjguLLguKrguJXguKPguYwKK+C4quC4seC4h+C4hOC4oeC4qOC4tuC4geC4qeC4sgor4Liq4Lix4LiH4LiE4Lih4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguITguKvguLAKK+C4quC4seC4h+C4hOC4seC4hwor4Liq4Lix4LiH4LiE4Liy4LiV4LiyCivguKrguLHguIfguITguLLguKLguJnguLIKK+C4quC4seC4h+C4hOC4suC4ouC4meC4suC4ogor4Liq4Lix4LiH4LiE4Li14LiVCivguKrguLHguIfguITguLXguJXguLQKK+C4quC4seC4h+C5gOC4hOC5h+C4lAor4Liq4Lix4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguIbguLLguI/guLQKK+C4quC4seC4h+C4lOC4seC4gQor4Liq4Lix4LiH4Lib4Liw4LiV4Li04LmA4Lir4LiH4LiwCivguKrguLHguIfguJvguLDguKXguLTguYDguKvguIfguLAKK+C4quC4seC4h+C5guC4ouC4hAor4Liq4Lix4LiH4LmC4Lii4LiK4LiZ4LmMCivguKrguLHguIfguKfguKMKK+C4quC4seC4h+C4p+C4seC4iOC4ieC4o+C4sAor4Liq4Lix4LiH4Lin4Lix4LiY4Lii4Liy4LiiCivguKrguLHguIfguKfguLLguKUKK+C4quC4seC4h+C4p+C4suC4qgor4Liq4Lix4LiH4LmA4Lin4LiKCivguKrguLHguIfguYDguKfguKIKK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mQor4Liq4Lix4LiH4Liq4LiB4Lik4LiVCivguKrguLHguIfguKrguIHguLLguKMKK+C4quC4seC4h+C4quC4lOC4oeC4oOC5jAor4Liq4Lix4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguYjguIfguKrguJnguJfguJnguLIKK+C4quC4seC4h+C4quC4o+C4o+C4hOC5jAor4Liq4Lix4LiH4Liq4Liy4Lij4Lin4Lix4LiPCivguKrguLHguIfguKrguLTguJfguJjguLQKK+C4quC4seC4h+C4quC4uOC4l+C4mOC5jAor4Liq4Lix4LiH4Liq4Li44LiX4LiY4Li0CivguKrguLHguIfguKvguKMKK+C4quC4seC4h+C4q+C4o+C4k+C5jAor4Liq4Lix4LiH4Lir4Lij4Lij4LipCivguKrguLHguIfguKvguLLguKMKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguKrguLHguIfguKvguLTguJUKK+C4quC4seC4iAor4Liq4Lix4LiI4LiI4LiwCivguKrguLHguIjguIjguLIKK+C4quC4seC4iuC4jOC4sAor4Liq4Lix4LiK4LiM4Liy4Lii4LiwCivguKrguLHguIrguIzguLgKK+C4quC4seC4jeC4iOC4owor4Liq4Lix4LiN4LiI4Liy4LijCivguKrguLHguI3guYDguIjguJXguJnguLIKK+C4quC4seC4jeC4iuC4suC4leC4jeC4suC4kwor4Liq4Lix4LiN4LiK4Liy4LiV4Liq4Lij4LiwCivguKrguLHguI3guIrguLLguJXguLQKK+C4quC4seC4jeC4iuC4teC4nuC4meC4o+C4gQor4Liq4Lix4LiN4LiM4LiyCivguKrguLHguI3guI3guLIKK+C4quC4seC4jeC4jeC4suC4kwor4Liq4Lix4LiN4LiN4Li1CivguKrguLHguI3guYLguI3guIrguJnguYwKK+C4quC4seC4jeC5guC4ouC4hAor4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmMCivguKrguLHguJDguLQKK+C4quC4seC4k+C4kOC4suC4mQor4Liq4Lix4LiT4LiQ4Li04LiV4Li0CivguKrguLHguJPguJHguYwKK+C4quC4seC4k+C4q+C5jAor4Liq4Lix4LiUCivguKrguLHguJTguIjguK3guIcKK+C4quC4seC4lQor4Liq4Lix4LiV4LiV4Lia4LiH4LiB4LiKCivguKrguLHguJXguJXguJrguKPguKPguJMKK+C4quC4seC4leC4leC4muC4uOC4qeC4ouC5jAor4Liq4Lix4LiV4LiV4Lin4LiT4Li04LiK4LiK4LiyCivguKrguLHguJXguJXguLAKK+C4quC4seC4leC4leC4uQor4Liq4Lix4LiV4LiWCivguKrguLHguJXguJbguLHguJnguJTguKMKK+C4quC4seC4leC4luC4sgor4Liq4Lix4LiV4LiW4Li0CivguKrguLHguJXguJbguLgKK+C4quC4seC4leC4muC4o+C4o+C4kwor4Liq4Lix4LiV4Lia4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguKrguLHguJXguKLguYwKK+C4quC4seC4leC4p+C5jAor4Liq4Lix4LiV4Lin4LiyCivguKrguLHguJfguJjguKPguKPguKEKK+C4quC4seC4l+C4mOC4sgor4Liq4Lix4LiX4LiY4Li04LiH4Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguJjguLTguKfguLTguKvguLLguKPguLTguIEKK+C4quC4seC4l+C4qOC4suC4quC4leC4o+C5jAor4Liq4Lix4LiZCivguKrguLHguYjguJkKK+C4quC4seC5ieC4mQor4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLHguJnguJTguLLguJsKK+C4quC4seC4meC4lOC4uOC4qeC4juC4tQor4Liq4Lix4LiZ4LmA4LiU4LiBCivguKrguLHguJnguYLguJTguKkKK+C4quC4seC4meC4leC5jAor4Liq4Lix4LiZ4LiV4LiV4Li0CivguKrguLHguJnguJXguLDguJvguLLguJvguLIKK+C4quC4seC4meC4leC4sOC5guC4owor4Liq4Lix4LiZ4LiV4Liw4Lin4LiyCivguKrguLHguJnguJXguLQKK+C4quC4seC4meC4leC4tOC4geC4sAor4Liq4Lix4LiZ4LiV4Li04LmA4LiB4LiZ4Li04LiX4Liy4LiZCivguKrguLHguJnguJXguLjguI/guJDguLUKK+C4quC4seC4meC4luC4o+C4sAor4Liq4Lix4LiZ4LiW4Lin4LiwCivguKrguLHguJnguJbguLHguJUKK+C4quC4seC4meC4luC4suC4owor4Liq4Lix4LiZ4LiX4LiZ4LiwCivguKrguLHguJnguJfguJnguLLguIHguLLguKMKK+C4quC4seC4meC4l+C4sAor4Liq4Lix4LiZ4LiX4Lix4LiUCivguKrguLHguJnguJfguLHguKrguJnguLAKK+C4quC4seC4meC4l+C4suC4mQor4Liq4Lix4LiZ4LiX4Li04LiQ4Li0CivguKrguLHguJnguJfguLTguKoKK+C4quC4seC4meC5gOC4l+C4qgor4Liq4Lix4LiZ4LmA4LiX4LirCivguKrguLHguJnguYDguJfguYjguKvguYwKK+C4quC4seC4meC4mOC4suC4mQor4Liq4Lix4LiZ4LiZ4Li04LiY4Li0CivguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4seC4meC4meC4tOC4p+C4suC4qgor4Liq4Lix4LiZ4LiZ4Li04LmA4Lin4LiqCivguKrguLHguJnguJnguLTguKnguJDguLLguJkKK+C4quC4seC4meC4nuC4o+C5ieC4suC4meC4suC4h+C5geC4rQor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4Lih4Lit4LiNCivguKrguLHguJnguJ7guKPguYnguLLguKvguK3guKEKK+C4quC4seC4meC4o+C4p+C4hwor4Liq4Lix4LiZ4Lil4Li24LiBCivguKrguLHguJnguKrguIHguKTguJUKK+C4quC4seC4mgor4Liq4Lix4Lia4Lib4Lil4Lix4LiaCivguKrguLHguJrguJvguKXguLXguYkKK+C4quC4seC4muC4m+C4sOC4o+C4seC4h+C5gOC4hAor4Liq4Lix4Lia4Lib4Liy4LiBCivguKrguLHguJvguITguLHguJoKK+C4quC4seC4m+C4lOC4mQor4Liq4Lix4Lib4LmC4LiU4LiBCivguKrguLHguJvguYLguJTguIHguKrguLHguJvguJTguJkKK+C4quC4seC4m+C4l+C4mQor4Liq4Lix4Lib4Lib4LiwCivguKrguLHguJvguJvguLLguKLguIHguLLguKPguLUKK+C4quC4seC4m+C4m+C4tAor4Liq4Lix4Lib4Lib4Li44Lij4Li44LipCivguKrguLHguJvguKPguLDguKLguLjguJfguJjguYwKK+C4quC4seC4m+C4q+C4h+C4gQor4Liq4Lix4Lib4LmA4Lir4Lij4LmI4LitCivguKrguLHguJ4KK+C4quC4seC4nuC4nuC4sAor4Liq4Lix4Lie4Lie4Lix4LiN4LiN4Li5CivguKrguLHguJ7guYDguJ7guKrguLHguJXguJXguLIKK+C4quC4seC4nuC5gOC4nuC5gOC4q+C4o+C4sAor4Liq4Lix4Lie4Lii4Lit4LiBCivguKrguLHguJ/guLHguJnguITguJnguJfguLIKK+C4quC4seC4oeC4jeC4jeC4sgor4Liq4Lix4Lih4Lia4Li54Lij4LiT4LmMCivguKrguLHguKHguJvguIrguLHguI3guI3guLAKK+C4quC4seC4oeC4m+C4l+C4sgor4Liq4Lix4Lih4Lib4LiX4Liy4LiZCivguKrguLHguKHguJvguKLguLjguJUKK+C4quC4seC4oeC4m+C5guC4ouC4hAor4Liq4Lix4Lih4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMCivguKrguLHguKHguJvguKPguLDguKvguLLguKMKK+C4quC4seC4oeC4m+C4o+C4suC4ouC4oOC4ngor4Liq4Lix4Lih4Lib4Lij4Liy4Lii4Li04LiB4Lig4LieCivguKrguLHguKHguJvguLHguJXguJXguLQKK+C4quC4seC4oeC4nOC4seC4m+C4peC4suC4mwor4Liq4Lix4Lih4Lic4Lix4LiqCivguKrguLHguKHguJ7guKUKK+C4quC4seC4oeC4nuC4q+C4uOC4peC4sgor4Liq4Lix4Lih4Lie4Lix4LiV4Liq4LijCivguKrguLHguKHguJ7guLHguJfguJjguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC5jAor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LiZ4LmMCivguKrguLHguKHguJ7guLLguJjguLAKK+C4quC4seC4oeC4nuC4suC4o+C4sAor4Liq4Lix4Lih4Lie4Liy4Lir4LiZ4LmMCivguKrguLHguKHguJ7guLLguKvguLAKK+C4quC4seC4oeC4nuC4uOC4l+C4mOC4sAor4Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguKrguLHguKHguKDguKfguLAKK+C4quC4seC4oeC4oOC5gOC4p+C4quC4tQor4Liq4Lix4Lih4Lig4Lix4LiVCivguKrguLHguKHguKDguLHguJXguJXguLAKK+C4quC4seC4oeC4oOC4suC4qeC4k+C5jAor4Liq4Lix4Lih4LmA4Lig4LiX4LiwCivguKrguLHguKHguYLguKDguITguIHguLLguKIKK+C4quC4seC4oeC4oeC4meC4sgor4Liq4Lix4Lih4Lih4Lix4Lib4LiY4Liy4LiZCivguKrguLHguKHguKHguLIKK+C4quC4seC4oeC5guC4oeC4l+C4meC4teC4ouC4geC4luC4sgor4Liq4Lix4Lih4Lik4LiX4LiY4Li0CivguKrguLHguKHguKTguJfguJjguLTguYwKK+C4quC4seC4ouC4meC5jAor4Liq4Lix4Lil4Lil4LiwCivguKrguLHguKXguKXguLLguJsKK+C4quC4seC4quC4lOC4tQor4Liq4Lix4Liq4Liq4LiwCivguKrguLHguKrguKrguLgKK+C4quC4seC4quC4quC4uQor4Liq4Lix4Liq4Li44Lij4Li1CivguKrguLIKK+C4quC5iOC4sgor4Liq4Liy4LiBCivguKrguLLguIHguKPguKPguIjguYwKK+C4quC4suC4geC4pQor4Liq4Liy4LiB4Lip4Li04LiZCivguKrguLLguIHguKnguLUKK+C4quC4suC4geC4seC4iOC4ieC4sgor4Liq4Liy4LiB4Lix4Lil4Lii4LmMCivguKrguLLguIHguLTguKLguLAKK+C4quC4suC5gOC4gQor4Liq4Liy4LiC4LiyCivguKrguLLguITguKMKK+C4quC4suC4hOC5gOC4o+C4qAor4Liq4Liy4LiE4Li5CivguKrguLLguIcKK+C4quC4suC4h+C4q+C5iOC4sgor4Liq4Liy4LiO4LiBCivguKrguLLguJPguLUKK+C4quC4suC4lAor4Liq4Liy4LiVCivguKrguLLguJXguKPguLIKK+C4quC4suC5hOC4luC4ogor4Liq4Liy4LiX4LijCivguKrguLLguJfguLTguKoKK+C4quC4suC4l+C4uAor4Liq4Liy4LmC4LiXCivguKrguLLguJjguIEKK+C4quC4suC4mOC4mQor4Liq4Liy4LiY4Lii4LiwCivguKrguLLguJjguKLguLLguKIKK+C4quC4suC4mOC4suC4o+C4k+C5jAor4Liq4Liy4LiY4Liy4Lij4LiT4LiwCivguKrguLLguJjguLTguJUKK+C4quC4suC4mOC4uAor4Liq4Liy4LiY4Li44Liq4LiwCivguKrguLLguJkKK+C4quC4suC4meC4leC4p+C4sAor4Liq4Liy4LiZ4Li4CivguKrguLLguJnguLjguKjguLTguKnguKLguYwKK+C4quC4suC4meC4uQor4Liq4Liy4LiaCivguKrguLLguJrguKrguLnguI0KK+C4quC4suC4muC4suC4mQor4Liq4Liy4LibCivguKrguLLguJvguYTguJXguKIKK+C4quC4suC4m+C4quC4o+C4owor4Liq4Liy4LihCivguKrguLLguKHguIrguLjguIEKK+C4quC4suC4oeC5gOC4k+C4owor4Liq4Liy4Lih4LmA4LiT4Lij4Li1CivguKrguLLguKHguJnguJXguYwKK+C4quC4suC4oeC4ouC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Liy4Lih4Lij4LiqCivguKrguLLguKHguKUKK+C4quC4suC4oeC4quC4tOC4mgor4Liq4Liy4Lih4Lix4LiE4LiE4Li1CivguKrguLLguKHguLHguI0KK+C4quC4suC4oeC4seC4leC4luC4tOC4ouC4sAor4Liq4Liy4Lih4Liy4LiZ4Lii4LmMCivguKrguLLguKHguLLguKPguJYKK+C4quC4suC4oeC4tOC4gQor4Liq4Liy4Lih4Li04LiVCivguKrguLLguKHguLTguJnguLUKK+C4quC4suC4oeC4tOC4oOC4seC4geC4lOC4tOC5jAor4Liq4Liy4Lih4Li04LiqCivguKrguLLguKHguLUKK+C4quC4suC4oeC4teC4iOC4tOC4geC4o+C4o+C4oQor4Liq4Liy4LiiCivguKrguYjguLLguKIKK+C4quC5ieC4suC4ogor4Liq4Liy4Lii4LiK4Li5CivguKrguLLguKLguJXguLIKK+C4quC4suC4ouC5gOC4p+C4l+C4ouC5jAor4Liq4Liy4Lii4Lix4LiT4Lir4LmMCivguKrguLLguKLguLLguKvguYwKK+C4quC4suC4owor4Liq4Liy4Lij4LiB4Lij4Lih4LiY4Lij4Lij4Lih4LmMCivguKrguLLguKPguITguJTguLUKK+C4quC4suC4o+C5gOC4hOC4oeC4tQor4Liq4Liy4Lij4LiT4Li14Lii4LiY4Lij4Lij4LihCivguKrguLLguKPguJXguKPguLIKK+C4quC4suC4o+C4luC4tQor4Liq4Liy4Lij4LiXCivguKrguLLguKPguJfguLIKK+C4quC4suC4o+C4l+C4tOC4qAor4Liq4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguLLguKPguJjguKPguKPguKEKK+C4quC4suC4o+C4meC4tOC5gOC4l+C4qAor4Liq4Liy4Lij4Lia4LiaCivguKrguLLguKPguJrguKPguKPguJMKK+C4quC4suC4o+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Liq4Liy4Lij4Lia4Lix4LiNCivguKrguLLguKPguJrguLHguJoKK+C4quC5ieC4suC4o+C4muC4seC4mgor4Liq4Liy4Lij4Lia4Liy4LiNCivguKrguLLguKPguJvguKPguLDguIHguK3guJoKK+C4quC4suC4o+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Liq4Liy4Lij4Lie4Lix4LiUCivguKrguLLguKPguJ7guLHguJkKK+C4quC4suC4o+C4nuC4suC4h+C4hOC5jAor4Liq4Liy4Lij4Lig4Liy4LieCivguKrguLLguKPguKDguLUKK+C4quC4suC4o+C5hOC4oeC4ogor4Liq4Liy4Lij4Lij4Lix4LiBCivguKrguLLguKPguKXguLDguKXguLLguKIKK+C4quC4suC4o+C5gOC4peC4pwor4Liq4Liy4Lij4Lin4Lix4LiUCivguKrguLLguKPguKfguLHguJXguKMKK+C4quC4suC4o+C4quC5ieC4oQor4Liq4Liy4Lij4Lir4LiZ4Li5CivguKrguLLguKPguLAKK+C4quC4suC4o+C4sOC5guC4geC4gQor4Liq4Liy4Lij4Liw4LmA4LiZCivguKrguLLguKPguLDguJ7guLIKK+C4quC4suC4o+C4sOC4nuC4suC5gOC4ruC5guC4pQor4Liq4Liy4Lij4Liw4Lin4Lit4LiZCivguKrguLLguKPguLDguKfguLLguKPguLUKK+C4quC4suC4o+C4sOC4quC4sOC4oeC4sgor4Liq4Liy4Lij4Liw4Liq4Liz4LiE4Lix4LiNCivguKrguLLguKPguLHguJXguJbguLAKK+C4quC4suC4o+C4seC4l+C4mOC5jAor4Liq4Liy4Lij4Lix4Lih4Lig4LmMCivguKrguLLguKPguLLguJPguLXguKLguIHguKMKK+C4quC4suC4o+C4suC4k+C4teC4ouC4sAor4Liq4Liy4Lij4Liy4LiZ4Li44LiB4Lij4LihCivguKrguLLguKPguLXguKPguLTguIHguJjguLLguJXguLgKK+C4quC4suC4o+C4ueC4mwor4Liq4Liy4LmC4Lij4LiKCivguKrguLLguKXguLAKK+C4quC4suC4peC4sOC4p+C4mQor4Liq4Liy4Lil4Li0CivguKrguLLguKXguLTguIHguLIKK+C4quC4suC4peC4tOC4meC4tQor4Liq4Liy4Lil4Li1CivguKrguLLguKXguLXguYgKK+C4quC4suC4peC4uQor4Liq4Liy4LmC4Lil4Lir4Li04LiVCivguKrguLLguKcKK+C4quC4suC4p+C4gQor4Liq4Liy4Lin4LiB4Lij4Liw4LiX4Li34Lia4Lir4LitCivguKrguLLguKfguJnguYnguK3guKLguYDguKXguYjguJnguJnguYnguLMKK+C4quC4suC4p+C4meC4sAor4Liq4Liy4Lin4Li04LiB4LiyCivguKrguLLguKfguLTguJXguKMKK+C4quC4suC4p+C4tOC4leC4o+C4tQor4Liq4Liy4Liq4LiZ4LmMCivguKrguLLguKrguJnguLIKK+C4quC4suC4q+C4o+C5iOC4suC4ogor4Liq4Liy4Lir4Lij4Li1CivguKrguYjguLLguKvguKPguLUKK+C4quC4suC4q+C4seC4qgor4Liq4Liy4LmA4Lir4LiV4Li4CivguKrguLLguYHguKvguKPguIEKK+C4quC4suC4rOC4uOC4o+C4sAor4Liq4LizCivguKrguYjguLMKK+C4quC4s+C4hOC4seC4jQor4Liq4Liz4LiL4LmI4Liy4LiHCivguKrguLPguYHguJTguIcKK+C4quC4s+C4l+C4seC4mgor4Liq4Liz4LiZ4Lin4LiUCivguKrguLPguJnguKfguJkKK+C4quC4s+C4meC4reC4hwor4Liq4Liz4LiZ4Lix4LiBCivguKrguLPguJnguLLguJkKK+C4quC4s+C4meC4tuC4hwor4Liq4Liz4LmA4LiZ4LiyCivguKrguLPguYDguJnguLXguKLguIcKK+C4quC4s+C5gOC4meC4teC4ouC4mQor4Liq4Liz4Lia4Lit4LiBCivguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C4quC4s+C4m+C4sOC4peC4rQor4Liq4Liz4Lib4Liw4Lir4Lil4Lix4LiHCivguKrguLPguJvguLHguYnguJkKK+C4quC4s+C4m+C4seC4meC4meC4tQor4Liq4Liz4LmA4Lig4LiyCivguKrguLPguYDguKDguLLguJfguK3guIcKK+C4quC4s+C4oeC4sOC4h+C4sgor4Liq4Liz4Lih4Liw4LmC4LiZ4LiE4Lij4Lix4LinCivguKrguLPguKHguLDguYLguJnguJvguLDguIrguLLguIHguKMKK+C4quC4s+C4oeC4sOC4peC4rQor4Liq4Liz4Lih4Liw4LmA4Lil4LmA4LiX4LmA4Lih4LiyCivguKrguLPguKHguLDguKvguLIKK+C4quC4s+C4o+C4lAor4Liq4Liz4Lij4Lin4LiICivguKrguLPguKPguKfguKEKK+C4quC4s+C4o+C4p+C4ogor4Liq4Liz4Lij4Lin4LilCivguKrguLPguKPguK3guIEKK+C4quC4s+C4o+C4reC4hwor4Liq4Liz4Lij4Lix4LiaCivguKrguLPguKPguLLguIEKK+C4quC4s+C4o+C4suC4jQor4Liq4Liz4Lij4Li04LiUCivguKrguLPguYDguKPguYfguIgKK+C4quC4s+C5gOC4o+C4sgor4Liq4Liz4LmA4Lij4Li04LiHCivguKrguLPguYLguKPguIcKK+C4quC4s+C4peC4seC4gQor4Liq4Liz4Lil4Liy4LiZCivguKrguLPguKXguLUKK+C4quC4s+C5geC4peC4hwor4Liq4Liz4Liq4Lij4LmJ4Liy4LiHCivguKrguLPguKrguLIKK+C4quC4s+C5gOC4quC5h+C4lAor4Liq4LmI4Liz4LmA4Liq4Li14LiiCivguKrguLPguKvguKPguKfguJQKK+C4quC4s+C4q+C4o+C4seC4mgor4Liq4Liz4Lir4LiyCivguKrguLPguYDguKvguJnguLXguKLguIEKK+C4quC4s+C5gOC4q+C4o+C5iAor4Liq4Liz4Lit4Lit4LiiCivguKrguLPguK3guLLguIcKK+C4quC4tAor4Liq4Li04LiB4LiC4LmMCivguKrguLTguIHguILguKHguLLguJnguLIKK+C4quC4tOC4geC4guC4sgor4Liq4Li04LiC4LijCivguKrguLTguILguKPguLUKK+C4quC4tOC4guC5gOC4o+C4qAor4Liq4Li04LiC4LiyCivguKrguLTguILguLUKK+C4quC4tOC4hOC4suC4pQor4Liq4Li04LiHCivguKrguLTguYjguIcKK+C4quC4tOC4h+C4guC4owor4Liq4Li04LiH4LiE4LmMCivguKrguLTguIfguITguKXguLTguYnguIcKK+C4quC4tOC4h+C4hOC4peC4tQor4Liq4Li04LiH4LiE4Liy4LijCivguKrguLTguIfguITguLLguKUKK+C4quC4tOC4h+C4hOC4tQor4Liq4Li04LiH4LmC4LiVCivguKrguLTguIfguYLguJXguJfguLDguYDguKUKK+C4quC4tOC4h+C4quC4suC4o+C4suC4quC4seC4leC4p+C5jAor4Liq4Li04LiH4Lir4LmMCivguKrguLTguIfguKvguKUKK+C4quC4tOC4jeC4iOC4meC5jAor4Liq4Li04LiVCivguKrguLTguYLguJXguJfguIHguKfguLLguKPguLUKK+C4quC4tOC4luC4tOC4pQor4Liq4Li04LiX4LiY4LmMCivguKrguLTguJfguJjguLQKK+C4quC4tOC4l+C4mOC4tOC5jAor4Liq4Li04LiY4Lii4LiwCivguKrguLTguJkKK+C4quC4tOC5ieC4mQor4Liq4Li04LiZ4LiX4Li54Lij4LiwCivguKrguLTguJnguJjguJ4KK+C4quC4tOC4meC4mOC4uAor4Liq4Li04LiZ4LiY4Li44Lij4LiwCivguKrguLTguJnguYDguJjguLLguKfguYwKK+C4quC4tOC4meC4sAor4Liq4Li04LiZ4Liy4LiUCivguKrguLTguJnguLTguJfguJjguYwKK+C4quC4tOC4meC4tQor4Liq4Li04LmA4LiZ4Lij4Li4CivguKrguLTguYDguJnguKvguIEKK+C4quC4tOC5gOC4meC4q+C4meC4teC4ouC4sAor4Liq4Li04LmA4LiZ4Lir4LiwCivguKrguLTguYDguJnguKvguLIKK+C4quC4tOC5gOC4meC5iOC4q+C4sgor4Liq4Li04LiaCivguKrguLTguJvguJvguLAKK+C4quC4tOC4nuC4meC4sAor4Liq4Li04Lih4Lie4Lil4Li1CivguKrguLTguKPguLAKK+C4quC4tOC4o+C4tAor4Liq4Li04Lij4Li1CivguKrguLTguKXguLIKK+C4quC4tOC5guC4peC4gQor4Liq4Li04LinCivguKrguLTguYjguKcKK+C4quC4tOC4p+C4sAor4Liq4Li04Lin4Li04LiB4LiyCivguKrguLTguKvguJnguLIKK+C4quC4tQor4Liq4Li14LmICivguKrguLXguYkKK+C4quC4teC4geC4o+C4uOC4lAor4Liq4Li14LiB4LiyCivguKrguLXguIHguLjguJkKK+C4quC4teC4guC5ieC4suC4hwor4Liq4Li14LiI4Lix4LiBCivguKrguLXguIrguKHguJ7guLnguJTguIcKK+C4quC4teC4iuC4oeC4nuC4ueC4quC4p+C4mQor4Liq4Li14LiUCivguKrguLXguJTguK0KK+C4quC4teC4leC5ieC4mQor4Liq4Li14LiX4Lix4LiZ4LiU4LijCivguKrguLXguYjguJrguJcKK+C4quC4teC4n+C4seC4meC4meC4suC4h+C5geC4rQor4Liq4Li14Lih4Lix4LiZ4LiV4LmMCivguKrguLXguKHguLIKK+C4quC4teC4peC4sOC4oeC4seC4mQor4Liq4Li14Lil4Lix4Lie4Lie4LiV4Lib4Lij4Liy4Lih4Liy4LiqCivguKrguLXguKfguLTguIHguLIKK+C4quC4teC4p+C4tOC4oOC4sgor4Liq4Li14Liq4LitCivguKrguLXguKrguLAKK+C4quC4teC4quC4sgor4Liq4Li14Liq4Li44LiBCivguKrguLXguYDguKrguLXguKLguJQKK+C4quC4teC5gOC4quC4t+C5ieC4reC4meC5ieC4reC4ogor4Liq4Li14Lir4LmMCivguKrguLXguKvguLAKK+C4quC4tuC4gQor4Liq4Li24LiHCivguKrguLfguJoKK+C4quC4t+C5iOC4rQor4Liq4Li4CivguKrguLjguIEKK+C4quC4uOC4geC4guC5jAor4Liq4Li44LiB4LijCivguKrguLjguIHguKPguKEKK+C4quC4uOC4geC4swor4Liq4Li44LiB4Li14LmJ4Lii4Liy4LiB4Li14LmJCivguKrguLjguIIKK+C4quC4uOC4guC4tOC4mQor4Liq4Li44LiC4Li1CivguKrguLjguILguLjguKEKK+C4quC4uOC4guC4uOC4oeC4suC4pQor4Liq4Li44LiE4LiVCivguKrguLjguITguJXguLQKK+C4quC4uOC4hOC4meC4mOC5jAor4Liq4Li44LiE4Lix4LiZ4LiY4LmMCivguKrguLjguIfguIHguLAKK+C4quC4uOC4h+C4quC4tOC4hwor4Liq4Li44LiH4Liq4Li44Lih4Liy4LijCivguKrguLjguIfguKrguLjguKHguLLguKPguLUKK+C4quC4uOC4iOC4o+C4tOC4lQor4Liq4Li44LiI4Lir4LiZ4Li14LmICivguKrguLjguIjguLAKK+C4quC4uOC4iOC4tAor4Liq4Li44LiI4Li04LiVCivguKrguLjguIjguLTguJXguKMKK+C4quC4uOC4iuC4mQor4Liq4Li44LiK4Lix4Lih4Lia4LiU4Li1CivguKrguLjguIrguLIKK+C4quC4uOC4iuC4suC4lOC4sgor4Liq4Li44LiNCivguKrguLjguJMKK+C4quC4uOC4k+C4q+C4sgor4Liq4Li44LiT4Li04Liq4LiyCivguKrguLjguJQKK+C4quC4uOC4lOC4quC4h+C4p+C4mQor4Liq4Li44LiU4LiyCivguKrguLjguJUKK+C4quC4uOC4leC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4LiwCivguKrguLjguJXguJXguLHguJnguJXguLDguJvguLTguI7guIEKK+C4quC4uOC4leC4tAor4Liq4Li44LiX4LiY4LmMCivguKrguLjguJfguJjguLQKK+C4quC4uOC4l+C4o+C4o+C4qOC4meC5jAor4Liq4Li44LiX4Lix4Lio4LiZ4LmMCivguKrguLjguJjguKPguKPguKHguYDguJfguKfguKrguKDguLIKK+C4quC4uOC4mOC4sgor4Liq4Li44LiY4Li1CivguKrguLjguJnguJfguKMKK+C4quC4uOC4meC4l+C4o+C4tQor4Liq4Li44LiZ4LiX4Lij4Li14Lii4LiwCivguKrguLjguJnguLHguIIKK+C4quC4uOC4meC4seC4meC4l+C5jAor4Liq4Li44LmC4LiZ4LiBCivguKrguLjguJrguJTguLUKK+C4quC4uOC4muC4o+C4o+C4kwor4Liq4Li44Lia4Li04LiZCivguKrguLjguJvguKPguLXguJTguLTguYwKK+C4quC4uOC4m+C4o+C4teC4ouC5jAor4Liq4Li44Lib4Liy4LiT4Li1CivguKrguLjguJ7guJ7guLHguJUKK+C4quC4uOC4nuC4o+C4o+C4kwor4Liq4Li44Lie4Lij4Lij4LiT4LiW4Lix4LiZCivguKrguLjguJ7guKPguKPguJPguLTguIHguLLguKPguYwKK+C4quC4uOC4oOC4owor4Liq4Li44Lig4Lix4LiECivguKrguLjguKDguLIKK+C4quC4uOC4oOC4suC4ngor4Liq4Li44Lig4Liy4Lip4Li04LiVCivguKrguLjguKEKK+C4quC4uOC5iOC4oQor4Liq4Li44Lih4LiX4Li44LihCivguKrguLjguKHguJkKK+C4quC4uOC4oeC4meC4sAor4Liq4Li44Lih4LiZ4Lix4LiqCivguKrguLjguKHguJnguLIKK+C4quC4uOC5ieC4oeC5gOC4quC4teC4ouC4hwor4Liq4Li44Lih4LiwCivguKrguLjguKHguLLguKXguLUKK+C4quC4uOC5gOC4oeC4mAor4Liq4Li44LmA4Lih4Lij4Li4CivguKrguLjguYnguKIKK+C4quC4uOC4o+C4h+C4hOC5jAor4Liq4Li44Lij4Lig4Li1CivguKrguLjguKPguLHguIfguITguYwKK+C4quC4uOC4o+C4seC4leC4tAor4Liq4Li44Lij4Lix4Liq4Lin4LiU4Li1CivguKrguLjguKPguLIKK+C4quC4uOC4o+C4suC4h+C4hOC5jOC4iOC4s+C5gOC4o+C4teC4ouC4hwor4Liq4Li44Lij4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguKrguLjguKPguLTguJnguJfguKPguLLguKvguLkKK+C4quC4uOC4o+C4tOC4ouC4hwor4Liq4Li44Lij4Li04Lii4LiZCivguKrguLjguKPguLTguKLguLAKK+C4quC4uOC4o+C4tOC4ouC4seC4mQor4Liq4Li44Lij4Li04Lii4LiyCivguKrguLjguKPguLTguKLguLjguJvguKPguLLguITguLIKK+C4quC4uOC4o+C4tOC5gOC4ouC4meC4l+C4o+C5jAor4Liq4Li44Lij4Li04LmA4Lii4LioCivguKrguLjguKPguLTguYLguKIKK+C4quC4uOC4o+C4uOC5iOC4ouC4quC4uOC4o+C5iOC4suC4ogor4Liq4Li44Lil4LiV4LmI4Liy4LiZCivguKrguLjguKcKK+C4quC4uOC4p+C4oOC4suC4ngor4Liq4Li44Lin4Lij4Lij4LiTCivguKrguLjguKfguLLguJkKK+C4quC4uOC4p+C4tOC4meC4seC4ogor4Liq4Li44Lin4Li04Lih4LilCivguKrguLjguKnguLTguKMKK+C4quC4uOC4quC4suC4mQor4Liq4Li44Lir4LiZ4Lix4LiVCivguKrguLjguKvguKPguYjguIcKK+C4quC4uOC4q+C4o+C5iOC4suC4ogor4Liq4Li44Lir4Lik4LiXCivguKrguLjguKvguLHguJcKK+C4quC4uOC5gOC4q+C4o+C5iOC4sgor4Liq4Li5CivguKrguLnguYkKK+C4quC4ueC4geC4qeC4oQor4Liq4Li54LiHCivguKrguLnguIjguIHguLAKK+C4quC4ueC4iOC4meC4sAor4Liq4Li54LiI4Li0CivguKrguLnguI0KK+C4quC4ueC4lAor4Liq4Li54LiVCivguKrguLnguJXguKMKK+C4quC4ueC4leC4tAor4Liq4Li54LiXCivguKrguLnguJnguLgKK+C4quC4ueC4mgor4Liq4Li54Lib4LiwCivguKrguLnguKMKK+C4quC4ueC4o+C4ouC5jAor4Liq4Li54Lij4Li0CivguKrguLnguKrguLUKK+C5gOC4qgor4LmA4Liq4LiBCivguYDguKrguIHguILguLAKK+C5gOC4quC4guC4sAor4LmA4Liq4LmH4LiHCivguYDguKrguYnguIcKK+C5gOC4quC4h+C4teC5iOC4ouC4oQor4LmA4Liq4LiJ4Lin4LiZCivguYDguKrguI/guJDguLUKK+C5gOC4quC4k+C4tQor4LmA4Liq4LiUCivguYDguKrguJTguYfguIgKK+C5gOC4quC4leC4uAor4LmA4Liq4LiW4Li14Lii4LijCivguYDguKrguYLguJcKK+C5gOC4quC4mQor4LmA4Liq4LmJ4LiZCivguYDguKrguJnguIcKK+C5gOC4quC4meC5iOC4hwor4LmA4Liq4LiZ4LmI4Lir4LmMCivguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguILguLLguKcKK+C5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC5geC4lOC4hwor4LmA4Liq4LiZ4Lir4LiyCivguYDguKrguJnguYjguKvguLIKK+C5gOC4quC4meC4rQor4LmA4Liq4LiZ4LiwCivguYDguKrguJnguLIKK+C5gOC4quC4meC5iOC4sgor4LmA4Liq4LiZ4Liy4LiB4Li44LiOCivguYDguKrguJnguLLguIfguITguYwKK+C5gOC4quC4meC4suC4h+C4hOC4meC4tOC4geC4owor4LmA4Liq4LiZ4Liy4LiZ4Li1CivguYDguKrguJnguLLguKrguJnguLAKK+C5gOC4quC4meC4suC4sAor4LmA4Liq4LiZ4Li1CivguYDguKrguJnguLXguKLguYwKK+C5gOC4quC4meC4teC4ouC4lAor4LmA4Liq4LiZ4Li14Lii4LiwCivguYDguKrguJrguKIKK+C5gOC4quC4muC4teC4ouC4hwor4LmA4Liq4LieCivguYDguKrguJ7guKLguYwKK+C5gOC4quC5gOC4nuC4pQor4LmA4Liq4Lig4LiyCivguYDguKrguKHguYfguJQKK+C5gOC4quC4oeC4rQor4LmA4Liq4Lih4LiyCivguYDguKrguKHguLXguKLguJkKK+C5gOC4quC4oeC4t+C4reC4mQor4LmA4Liq4LiiCivguYDguKrguKPguYfguIgKK+C5gOC4quC4o+C4tOC4lAor4LmA4Liq4Lij4Li04LihCivguYDguKrguKPguLUKK+C5gOC4quC4peC4lAor4LmA4Liq4Lil4LiU4Lie4Lix4LiH4Lie4Lit4LiZCivguYDguKrguKXguLIKK+C5gOC4quC4peC4teC5iOC4ouC4hwor4LmA4Liq4Lil4Li34Lit4LiB4Liq4Lil4LiZCivguYDguKrguYLguKUKK+C5gOC4quC4p+C4gQor4LmA4Liq4Lin4LiB4Liy4Lih4Liy4LiV4Lii4LmMCivguYDguKrguKfguJnguLAKK+C5gOC4quC4p+C4meC4sgor4LmA4Liq4Lin4LiiCivguYDguKrguKfguKLguJ7guKPguLDguIrguLLguJXguLQKK+C5gOC4quC4p+C4teC4ouC4mQor4LmA4Liq4Liq4Lij4Lin4LiHCivguYDguKrguKrguKPguKfguKUKK+C5gOC4quC4sgor4LmA4Liq4LmJ4LiyCivguYDguKrguLLguKPguYwKK+C5gOC4quC4suC4o+C4oOC4ouC5jAor4LmA4Liq4Liy4Lij4Li1CivguYDguKrguLLguKfguJPguLTguJUKK+C5gOC4quC4suC4p+C4meC4sAor4LmA4Liq4Liy4Lin4LiZ4LiyCivguYDguKrguLLguKfguJnguLLguIHguLLguKMKK+C5gOC4quC4suC4p+C4meC4teC4ouC5jAor4LmA4Liq4Liy4Lir4Lik4LiXCivguYDguKrguLLguLAKK+C5gOC4quC4suC4sOC5geC4quC4sAor4LmA4Liq4Li04Lij4LmM4LiICivguYDguKrguLTguKPguYzguJ8KK+C5gOC4quC4teC4ogor4LmA4Liq4Li14LmI4LiiCivguYDguKrguLXguKLguIcKK+C5gOC4quC4teC5iOC4ouC4hwor4LmA4Liq4Li14Lii4LiUCivguYDguKrguLXguYnguKLguJkKK+C5gOC4quC4teC4ouC4mgor4LmA4Liq4Li14Lii4LihCivguYDguKrguLXguYjguKLguKEKK+C5gOC4quC4teC5ieC4ouC4oQor4LmA4Liq4Li14Lii4LinCivguYDguKrguLXguYjguKLguKcKK+C5gOC4quC4teC5ieC4ouC4pwor4LmA4Liq4Li34LitCivguYDguKrguLfguYjguK0KK+C5gOC4quC4t+C5ieC4rQor4LmA4Liq4Li34Lit4LiBCivguYDguKrguLfguYjguK3guKEKK+C5geC4qgor4LmB4Liq4LmICivguYHguKrguYkKK+C5geC4quC4gQor4LmB4Liq4LiHCivguYHguKrguJQKK+C5geC4quC4lOC4hwor4LmB4Liq4LiV4Lih4Lib4LmMCivguYHguKrguJkKK+C5geC4quC4meC4hwor4LmB4Liq4LiZ4Lii4LmMCivguYHguKrguJnguYDguKrguJnguLLguLAKK+C5geC4quC4mgor4LmB4Liq4Lia4LiBCivguYHguKrguKEKK+C5geC4quC4ouC4gQor4LmB4Liq4Lii4LiHCivguYHguKrguKLguLAKK+C5geC4quC4o+C4gQor4LmB4Liq4Lij4LmJ4LiHCivguYHguKrguKXguIcKK+C5geC4quC4peC4h+C5g+C4iAor4LmB4Liq4Lil4LiH4LmA4Lia4Li34LmI4LitCivguYHguKrguKfguIcKK+C5geC4quC4reC4gQor4LmB4Liq4LiwCivguYLguKrguIEKK+C5guC4quC4geC5guC4lOC4gQor4LmC4Liq4LiB4Lix4LiZ4LiV4LmMCivguYLguKrguIHguLLguJTguLLguJnguLIKK+C5guC4quC5guC4hOC4o+C4gQor4LmC4Liq4LiTCivguYLguKrguJPguJHguYwKK+C5guC4quC4k+C4tAor4LmC4Liq4LiT4Li1CivguYLguKrguJQKK+C5guC4quC4lOC4gQor4LmC4Liq4LiU4LihCivguYLguKrguJTguLIKK+C5guC4quC4lQor4LmC4Liq4LiV4LiW4Li0CivguYLguKrguJfguIEKK+C5guC4quC4l+C4owor4LmC4Liq4LiY4LiBCivguYLguKrguJjguJnguLAKK+C5guC4quC4mQor4LmC4Liq4Lib4Liy4LiZCivguYLguKrguKDguJMKK+C5guC4quC4oOC4sgor4LmC4Liq4Lig4Li04LiT4Li1CivguYLguKrguKDguLUKK+C5guC4quC5gOC4oOC4k+C4tQor4LmC4Liq4LihCivguYLguKrguKHguJnguLHguKoKK+C5guC4quC4oeC4oQor4LmC4Liq4Lih4Lii4LmMCivguYLguKrguKHguKrguYjguK3guIfguYHguKrguIcKK+C5guC4quC4o+C5iOC4hwor4LmC4Liq4Lij4LiICivguYLguKrguKPguLHguIjguIjguLAKK+C5guC4quC4p+C4o+C4o+C4kwor4LmC4Liq4Lir4Li44LmJ4LiiCivguYLguKrguKzguKoKK+C5g+C4qgor4LmD4Liq4LmICivguYTguKoKK+C5hOC4quC5iQor4LmE4Liq4LiiCivguYTguKrguKLguLIKK+C5hOC4quC4o+C5iQor4LmE4Liq4LinCivguYTguKrguYnguKvguLnguYkKK+C4qwor4Lir4LiBCivguKvguIHguJrguJcKK+C4q+C4geC5guC4peC5iAor4Lir4LiHCivguKvguIfguIEKK+C4q+C4h+C4quC5jAor4Lir4LiH4Liq4LmM4LiX4Lit4LiHCivguKvguIfguKrguYzguKvguKLguIEKK+C4q+C4h+C4rQor4Lir4LiH4Lit4LiBCivguKvguIfguYjguK3guIcKK+C4q+C4h+C4reC4h+C5geC4q+C4h+C4hwor4Lir4LiH4Lit4LiUCivguKvguIfguK3guJTguYYKK+C4q+C4h+C4reC4mQor4Lir4LiH4LmI4Lit4LihCivguKvguIfguK3guKIKK+C4q+C4h+C5iOC4reC4ogor4Lir4LiH4Lix4LiBCivguKvguIfguLHguJoKK+C4q+C4h+C5iOC4suC4hwor4Lir4LiH4Liy4LiiCivguKvguIfguYjguLLguKcKK+C4q+C4h+C4swor4Lir4LiH4Li04LiBCivguKvguIfguLTguIcKK+C4q+C4h+C4tOC4oQor4Lir4LiH4Li24LiBCivguKvguIfguLjguIfguKvguIfguLTguIcKK+C4q+C4h+C4uOC4lOC4q+C4h+C4tOC4lAor4Lir4LiH4Li44LiaCivguKvguIfguLjguJrguKvguIfguLHguJoKK+C4q+C4h+C4uOC5iOC4ogor4Lir4LiN4LmJ4LiyCivguKvguI3guYnguLLguJvguLLguIHguITguK3guIEKK+C4q+C4jeC5ieC4suC4neC4o+C4seC5iOC4mQor4Lir4LiN4LmJ4Liy4Lii4Lit4LiH4LmE4LifCivguKvguI3guYnguLLguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4jeC4tOC4hwor4Lir4LiN4Li04LiaCivguKvguJQKK+C4q+C4leC4sAor4Lir4LiX4Lix4LiiCivguKvguJkKK+C4q+C4meC4p+C4gQor4Lir4LiZ4LmI4Lin4LiHCivguKvguJnguKfguJQKK+C4q+C4meC4p+C4lOC4meC4suC4hOC4o+C4suC4igor4Lir4LiZ4Lin4LiU4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4meC5iOC4p+C4ogor4Lir4LiZ4LmI4Lin4Lii4LiB4Li04LiVCivguKvguJnguK0KK+C4q+C4meC5iOC4rQor4Lir4LiZ4Lit4LiBCivguKvguJnguK3guIHguIrguYnguLLguIcKK+C4q+C4meC4reC4hwor4Lir4LiZ4Lit4LiH4LmB4LiL4LiHCivguKvguJnguK3guJkKK+C4q+C4meC4reC4meC4leC4suC4meC4q+C4ouC4suC4gQor4Lir4LiZ4LmI4Lit4LiiCivguKvguJnguYfguK3guKLguYHguJnguYgKK+C4q+C4meC4sAor4Lir4LiZ4Lix4LiBCivguKvguJnguLHguIcKK+C4q+C4meC4seC4h+C4geC4peC4suC4h+C4p+C4seC4mQor4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguKvguJnguLHguYjguJkKK+C4q+C4meC4seC4mgor4Lir4LiZ4LiyCivguKvguJnguYnguLIKK+C4q+C4meC4suC4geC4suC4quC4o+C4tQor4Lir4LiZ4LmI4Liy4LiHCivguKvguJnguLLguJQKK+C4q+C4meC4suC4mQor4Lir4LiZ4Liy4LihCivguKvguJnguYjguLLguKIKK+C4q+C4meC4suC4pwor4Lir4LiZ4LizCivguKvguJnguLPguYDguKXguLXguYnguKLguJoKK+C4q+C4meC4tQor4Lir4LiZ4Li14LmJCivguKvguJnguLXguJoKK+C4q+C4meC4teC5gOC4quC4t+C4rQor4Lir4LiZ4Li24LiBCivguKvguJnguLbguYjguIcKK+C4q+C4meC4tuC4mgor4Lir4LiZ4Li34LiUCivguKvguJnguLgKK+C4q+C4meC4uOC4h+C4q+C4meC4tOC4hwor4Lir4LiZ4Li44LiZCivguKvguJnguLjguJoKK+C4q+C4meC4uOC5iOC4oQor4Lir4LiZ4Li44LmI4LiiCivguKvguJnguLkKK+C4q+C5iOC4oQor4Lir4Lih4LiBCivguKvguKHguJQKK+C4q+C4oeC5iOC4mQor4Lir4Lih4Lin4LiBCivguKvguKHguKfguJQKK+C4q+C4oeC4rQor4Lir4Lih4LmI4LitCivguKvguKHguYnguK0KK+C4q+C4oeC4reC4gQor4Lir4Lih4Lit4LiHCivguKvguKHguYjguK3guIcKK+C4q+C4oeC4reC4mQor4Lir4Lih4LmI4Lit4LiZCivguKvguKHguK3guJoKK+C4q+C4oeC5iOC4reC4oQor4Lir4Lih4Lit4LiiCivguKvguKHguLHguIEKK+C4q+C4oeC4seC4lAor4Lir4Lih4Lix4LiZCivguKvguKHguLHguYjguJkKK+C4q+C4oeC4seC5ieC4mQor4Lir4Lih4Lix4LmI4LiZ4LmE4Liq4LmJCivguKvguKHguLHguJoKK+C4q+C4oeC4sgor4Lir4Lih4LmI4LiyCivguKvguKHguYnguLIKK+C4q+C4oeC4suC4gQor4Lir4Lih4Liy4LiHCivguKvguKHguLLguIjguYjguK0KK+C4q+C4oeC4suC4lAor4Lir4Lih4Liy4LiV4LmL4LiyCivguKvguKHguLLguKHguLjguYjguKIKK+C4q+C4oeC4suC4oeC4uOC5ieC4ogor4Lir4Lih4Liy4LmE4Lih4LmJCivguKvguKHguLLguKIKK+C4q+C4oeC5ieC4suC4ogor4Lir4Lih4Liy4Lij4LmI4LiyCivguKvguKHguYjguLMKK+C4q+C4oeC4tOC5iOC4mQor4Lir4Lih4Li1CivguKvguKHguLXguYgKK+C4q+C4oeC4teC5gOC4q+C4oeC5h+C4mQor4Lir4Lih4Li24LiBCivguKvguKHguLfguJkKK+C4q+C4oeC4t+C5iOC4mQor4Lir4Lih4Li44LiUCivguKvguKHguLjguJkKK+C4q+C4oeC4uOC4mgor4Lir4Lih4Li44LmI4LiiCivguKvguKHguLjguKLguILguLLguKcKK+C4q+C4oeC4uQor4Lir4Lih4Li54LmICivguKvguKHguLnguKrguLHguIcKK+C4q+C4oeC4ueC4quC4tQor4Lir4Lii4LiBCivguKvguKLguYjguIcKK+C4q+C4ouC4lAor4Lir4Lii4Lin4LiBCivguKvguKLguKfguJkKK+C4q+C4ouC4p+C4meC5guC4peC5iQor4Lir4Lii4Lin4LiaCivguKvguKLguK3guIEKK+C4q+C4ouC5h+C4reC4geC4q+C4ouC5h+C4reC4ogor4Lir4Lii4Lit4LiHCivguKvguKLguYjguK3guIcKK+C4q+C4ouC5h+C4reC4h+C5geC4q+C4ouC5h+C4hwor4Lir4Lii4Lit4LiUCivguKvguKLguK3guJkKK+C4q+C4ouC5iOC4reC4mQor4Lir4Lii4LmI4Lit4LihCivguKvguKLguK3guKHguYHguKvguKLguKEKK+C4q+C4ouC4reC4ogor4Lir4Lii4LmI4Lit4LiiCivguKvguKLguLHguIEKK+C4q+C4ouC4seC4geC5gOC4q+C4ouC4sgor4Lir4Lii4Lix4LiHCivguKvguKLguLHguYjguIcKK+C4q+C4ouC4seC4h+C4q+C4ouC4seC4hwor4Lir4Lii4Lix4LiUCivguKvguKLguLHguJkKK+C4q+C4ouC4seC4mgor4Lir4Lii4Lix4LmI4Lin4LmA4Lih4Li34Lit4LiHCivguKvguKLguYjguLIKK+C4q+C4ouC4suC4geC5gOC4ouC4t+C5iOC4rQor4Lir4Lii4Liy4LiB4LmE4Lii4LmICivguKvguKLguYjguLLguIfguITguYnguLMKK+C4q+C4ouC4suC4lAor4Lir4Lii4Liy4LiaCivguKvguKLguLLguKEKK+C4q+C4ouC4suC4pwor4Lir4Lii4LmJ4Liy4LinCivguKvguKLguLPguInguYjguLIKK+C4q+C4ouC4s+C5gOC4mwor4Lir4Lii4Liz4LmB4Lir4Lii4Lit4LiwCivguKvguKLguLPguYHguKvguKLguLAKK+C4q+C4ouC4tOC4gQor4Lir4Lii4Li04LmI4LiHCivguKvguKLguLTguJoKK+C4q+C4ouC4tOC4oQor4Lir4Lii4Li1CivguKvguKLguLXguYgKK+C4q+C4ouC4uAor4Lir4Lii4Li44LiB4Lir4Lii4Li04LiBCivguKvguKLguLjguJQKK+C4q+C4ouC4uOC5iOC4mQor4Lir4Lii4Li44Lia4LmGCivguKvguKLguLjguKHguKvguKLguLTguKEKK+C4q+C4ouC4ueC4geC4ouC4sgor4Lir4LijCivguKvguKPguITguLjguJMKK+C4q+C4o+C4lOC4suC4pQor4Lir4Lij4LiU4Li1CivguKvguKPguJoKK+C4q+C4o+C4o+C4qQor4Lir4Lij4Lij4Lip4LiyCivguKvguKPguK0KK+C4q+C4o+C4reC4gQor4Lir4Lij4LmH4Lit4Lih4LmB4Lir4Lij4LmH4LihCivguKvguKPguK3guKLguYYKK+C4q+C4o+C4sAor4Lir4Lij4Lix4Lia4LmGCivguKvguKPguLIKK+C4q+C4o+C4tAor4Lir4Lij4Li04LmI4LiHCivguKvguKPguLTguJPguLAKK+C4q+C4o+C4tOC4k+C4seC4h+C4hOC5jAor4Lir4Lij4Li04LiVCivguKvguKPguLTguJXguIHguLUKK+C4q+C4o+C4teC5iAor4Lir4Lij4Li14LiUCivguKvguKPguLXguJXguIHguLUKK+C4q+C4o+C4t+C4rQor4Lir4Lij4Li44LmI4LiZCivguKvguKPguLjguJrguYYKK+C4q+C4o+C4uOC4muC4o+C4ueC5iAor4Lir4Lij4Li44Lia4Lir4Lij4Li54LmICivguKvguKPguLjguYjguKEKK+C4q+C4o+C4uQor4Lir4Lij4Li54Lir4Lij4LiyCivguKvguKTguJfguKIKK+C4q+C4pOC4l+C4ouC5jAor4Lir4Lik4LiX4Lix4LiiCivguKvguKTguKnguI7guYwKK+C4q+C4pOC4qeC4juC4tQor4Lir4Lik4Lir4Lij4Lij4Lip4LmMCivguKvguKTguYLguKvguJQKK+C4q+C4pQor4Lir4Lil4LiHCivguKvguKXguJQKK+C4q+C4peC4mQor4Lir4Lil4LmI4LiZCivguKvguKXguJoKK+C4q+C4peC5iOC4oQor4Lir4Lil4Lin4LiHCivguKvguKXguKfguKEKK+C4q+C4peC4rQor4Lir4Lil4LmI4LitCivguKvguKXguK3guIEKK+C4q+C4peC4reC4lAor4Lir4Lil4Lit4LiZCivguKvguKXguYfguK3guJkKK+C4q+C4peC5iOC4reC4mQor4Lir4Lil4LmH4Lit4LiZ4LmGCivguKvguKXguK3guKEKK+C4q+C4peC4sAor4Lir4Lil4Liw4Lir4Lil4Lin4LihCivguKvguKXguLHguIEKK+C4q+C4peC4seC4hwor4Lir4Lil4Lix4LmI4LiHCivguKvguKXguLHguJTguYYKK+C4q+C4peC4seC5iOC4mQor4Lir4Lil4Lix4LiaCivguKvguKXguLHguKcKK+C4q+C4peC4sgor4Lir4Lil4LmJ4LiyCivguKvguKXguLLguIEKK+C4q+C4peC4suC4lwor4Lir4Lil4Liy4LiX4Lin4LiUCivguKvguKXguLLguJkKK+C4q+C4peC4suC4mgor4Lir4Lil4Liy4LihCivguKvguKXguLLguKIKK+C4q+C4peC4suC4pwor4Lir4Lil4Liy4Lir4LilCivguKvguKXguLTguIEKK+C4q+C4peC4tOC5iOC4hwor4Lir4Lil4Li04LiXCivguKvguKXguLTguJkKK+C4q+C4peC4tOC4oQor4Lir4Lil4Li04LinCivguKvguKXguLTguYjguKcKK+C4q+C4peC4tQor4Lir4Lil4Li14LiBCivguKvguKXguLXguYLguIEKK+C4q+C4peC4teC4mgor4Lir4Lil4Li14Liu4Li34LmJ4LitCivguKvguKXguLfguJoKK+C4q+C4peC4uOC4geC4q+C4peC4tOC4gQor4Lir4Lil4Li44LiUCivguKvguKXguLjguJnguYYKK+C4q+C4peC4uOC4mgor4Lir4Lil4Li44LihCivguKvguKXguLjguKHguJ7guK0KK+C4q+C4peC4uOC4oeC4nuC4tQor4Lir4Lil4Li54LmICivguKvguKfguIcKK+C4q+C5iOC4p+C4hwor4Lir4LmJ4Lin4LiHCivguKvguKfguJQKK+C4q+C4p+C4mQor4Lir4LmJ4Lin4LiZCivguKvguKfguJnguITguLPguJnguLbguIcKK+C4q+C4p+C4ogor4Lir4LmI4Lin4LiiCivguKvguYnguKfguKIKK+C4q+C4p+C4rQor4Lir4Lin4Lit4LiUCivguKvguKfguYfguK3guKLguYYKK+C4q+C4p+C4sAor4Lir4Lin4Lix4LiHCivguKvguKfguLHguJQKK+C4q+C4p+C4seC5iOC4mQor4Lir4Lin4Lix4LiZ4Lii4Li04Lir4Lin4LiyCivguKvguKfguLHguKcKK+C4q+C4p+C4seC4p+C4o+C5iOC4rQor4Lir4Lin4Lix4Lin4LmA4Lij4Liy4LiwCivguKvguKfguLIKK+C4q+C4p+C5iOC4sgor4Lir4Lin4LmJ4LiyCivguKvguKfguLLguIEKK+C4q+C4p+C5iOC4suC4hwor4Lir4Lin4Liy4LiUCivguKvguKfguLLguJkKK+C4q+C4p+C5iOC4suC4mQor4Lir4Lin4Liy4LihCivguKvguKfguLLguKIKK+C4q+C4p+C4swor4Lir4Lin4Li04LiUCivguKvguKfguLTguKcKK+C4q+C4p+C4tQor4Lir4Lin4Li14LmICivguKvguKfguLXguJQKK+C4q+C4p+C4t+C4rQor4Lir4Lin4Li44LiU4Lir4Lin4Li04LiUCivguKvguKfguLjguKEKK+C4q+C4p+C4ueC4lAor4Lir4LitCivguKvguYjguK0KK+C4q+C5ieC4rQor4Lir4Lit4LiBCivguKvguK3guIcKK+C4q+C5ieC4reC4hwor4Lir4Lit4LiZCivguKvguYjguK3guJkKK+C4q+C4reC4mgor4Lir4Lit4LihCivguKvguYnguK3guKEKK+C4q+C4reC4oTDvv70KK+C5gOC4q+C4oeC4seC4meC4leC5jAor4LmA4Lir4Lih4LiyCivguYDguKvguKHguLLguKLguLHguJkKK+C5gOC4q+C4oeC4suC4sAor4LmA4Lir4Lih4Li14Lii4LinCivguYDguKvguKHguLXguYjguKLguKcKK+C5gOC4q+C4oeC4t+C4reC4hwor4LmA4Lir4Lih4Li34Lit4LiUCivguYDguKvguKHguLfguK3guJTguITguJkKK+C5gOC4q+C4oeC4t+C4reC4lOC5guC4peC4lAor4LmA4Lir4Lih4Li34Lit4LiZCivguYDguKvguKHguLfguYjguK3guKIKK+C5gOC4q+C4oeC4t+C5iOC4reC4ouC5hgor4LmA4Lir4LiiCivguYDguKvguKLguIcKK+C5gOC4q+C4ouC5iOC4reC4ogor4LmA4Lir4Lii4LiyCivguYDguKvguKLguYjguLIKK+C5gOC4q+C4ouC5ieC4sgor4LmA4Lir4Lii4LmI4Liy4LmGCivguYDguKvguKLguLLguLAKK+C5gOC4q+C4ouC4suC4sOC5hgor4LmA4Lir4Lii4Liy4Liw4Lii4LmI4Liy4LiHCivguYDguKvguKLguLLguLDguYHguKvguKLguLAKK+C5gOC4q+C4ouC4tOC4hwor4LmA4Lir4Lii4Li04Lia4LmGCivguYDguKvguKLguLXguKLguJQKK+C5gOC4q+C4ouC4teC4ouC4mgor4LmA4Lir4Lii4Li14LmI4Lii4LinCivguYDguKvguKLguLfguYjguK0KK+C5gOC4q+C4ouC4t+C4reC4gQor4LmA4Lir4Lij4Lix4LiN4LiN4Li04LiBCivguYDguKvguKPguLIKK+C5gOC4q+C4o+C4suC4sOC5hgor4LmA4Lir4Lij4Li14Lii4LiNCivguYDguKvguKXguYgKK+C5gOC4q+C4peC5h+C4gQor4LmA4Lir4Lil4LiZCivguYDguKvguKXguKcKK+C5gOC4q+C4peC4rQor4LmA4Lir4Lil4LiyCivguYDguKvguKXguYjguLIKK+C5gOC4q+C4peC5ieC4sgor4LmA4Lir4Lil4Liy4LiK4Liw4LmC4Lit4LiZCivguYDguKvguKXguLLguKvguKXguIEKK+C5gOC4q+C4peC4suC5gOC4q+C4ouC5iAor4LmA4Lir4Lil4Liy4Liw4LmB4Lir4Lil4LiwCivguYDguKvguKXguLTguIcKK+C5gOC4q+C4peC4tOC4h+C5gOC4iOC4tOC5ieC4hwor4LmA4Lir4Lil4Li14Lii4LiZCivguYDguKvguKXguLXguYjguKLguKEKK+C5gOC4q+C4peC4teC4ouC4pwor4LmA4Lir4Lil4Li34LitCivguYDguKvguKXguLfguK3guIEKK+C5gOC4q+C4peC4t+C4reC4hwor4LmA4Lir4Lil4Li34Lit4LiaCivguYDguKvguKXguLfguK3guKEKK+C5gOC4q+C4peC4t+C5iOC4reC4oQor4LmA4Lir4LinCivguYDguKvguKfguYgKK+C5gOC4q+C4p+C4hwor4LmA4Lir4Lin4LiiCivguYDguKvguKfguK3guLAKK+C5gOC4q+C4p+C4reC4sOC4q+C4p+C4sAor4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguYDguKvguYjguK0KK+C5gOC4q+C4reC4sAor4LmA4Lir4LiwCivguYDguKvguLDguKvguLAKK+C5gOC4q+C4sgor4LmA4Lir4LmI4LiyCivguYDguKvguLLguLAKK+C5gOC4q+C4tOC4mQor4LmA4Lir4Li04LihCivguYDguKvguLXguYnguKIKK+C5gOC4q+C4teC4ouC4hwor4LmA4Lir4Li14Lii4LiZCivguYDguKvguLXguYnguKLguJkKK+C5gOC4q+C4teC5ieC4ouC4oQor4LmA4Lir4Li14LmI4Lii4LinCivguYDguKvguLfguYjguK0KK+C5gOC4q+C4t+C4reC4lAor4LmB4LirCivguYHguKvguYgKK+C5geC4q+C5iQor4LmB4Lir4LiBCivguYHguKvguIcKK+C5geC4q+C4h+C5iAor4LmB4Lir4LmI4LiHCivguYHguKvguYnguIcKK+C5geC4q+C4h+C5h+C4gQor4LmB4Lir4LiH4LmB4LiB4LmLCivguYHguKvguIfguYjguIcKK+C5geC4q+C4h+C4mQor4LmB4Lir4LiZCivguYHguKvguYnguJkKK+C5geC4q+C4meC4hwor4LmB4Lir4LiZ4LiaCivguYHguKvguJnguKEKK+C5geC4q+C4mgor4LmB4Lir4LihCivguYHguKvguKHguYgKK+C5geC4q+C4oeC5iOC4oQor4LmB4Lir4Lih4LiwCivguYHguKvguKIKK+C5geC4q+C4ouC5iAor4LmB4Lir4Lii4LiHCivguYHguKvguKLguYjguIcKK+C5geC4q+C4ouC4oQor4LmB4Lir4Lii4LiwCivguYHguKvguKLguLDguYYKK+C5geC4q+C4pQor4LmB4Lir4Lil4LmICivguYHguKvguKXguIEKK+C5geC4q+C4peC5iOC4hwor4LmB4Lir4Lil4LiZCivguYHguKvguKXguKEKK+C5geC4q+C4peC4sAor4LmB4Lir4LinCivguYHguKvguYnguKcKK+C5geC4q+C4p+C4gQor4LmB4Lir4Lin4LmI4LiHCivguYHguKvguKfguJQKK+C5geC4q+C4p+C4mQor4LmB4Lir4Lin4LiwCivguYHguKvguLAKK+C5geC4q+C4sOC5hgor4LmC4Lir4LmICivguYLguKvguIEKK+C5guC4q+C4hwor4LmC4Lir4LiUCivguYLguKvguJkKK+C5guC4q+C4meC4gQor4LmC4Lir4LiZ4LmI4LiHCivguYLguKvguKEKK+C5guC4q+C4oeC5iAor4LmC4Lir4Lih4LiB4Lij4Lij4LihCivguYLguKvguKHguIHguLnguJPguJHguYwKK+C5guC4q+C4oeC5iOC4hwor4LmC4Lir4Lih4LiUCivguYLguKvguKIKK+C5guC4q+C4ouC4geC5gOC4q+C4ouC4gQor4LmC4Lir4Lii4LiHCivguYLguKvguKLguYjguIcKK+C5guC4q+C4owor4LmC4Lir4Lij4LiHCivguYLguKvguKPguIfguYDguKvguKPguIcKK+C5guC4q+C4o+C4lOC4suC4iOC4suC4o+C4ouC5jAor4LmC4Lir4Lij4Liw4Lie4LiyCivguYLguKvguKUKK+C5guC4q+C4peC5iAor4LmC4Lir4Lil4LiH4LmC4LiI4LmJ4LiHCivguYLguKvguKcKK+C5guC4q+C4p+C5iAor4LmC4Lir4Lin4LmJCivguYLguKvguKfguIHguYDguKvguKfguIEKK+C5guC4q+C4p+C4hwor4LmC4Lir4Lin4LiUCivguYLguKvguKfguJUKK+C5g+C4q+C5iQor4LmD4Lir4LiN4LmICivguYPguKvguKHguYgKK+C5hOC4qwor4LmE4Lir4LmICivguYTguKvguYkKK+C5hOC4q+C4mQor4LmE4Lir4LihCivguYTguKvguKHguYkKK+C5hOC4q+C4o+C4kwor4LmE4Lir4LilCivguYTguKvguKXguYgKK+C5hOC4q+C4pwor4LmE4Lir4Lin4LmJCivguYTguKvguKfguYYKK+C5hOC4q+C4q+C4peC4swor4LitCivguK3guIEKK+C4reC4geC4leC4seC4jeC4jeC4uOC4leC4sgor4Lit4LiB4LiV4Lix4LiN4LiN4Li5CivguK3guIHguJnguLTguKnguJDguYwKK+C4reC4geC4o+C4k+C4teC4ouC5jAor4Lit4LiB4Lij4Lij4Lih4LiB4Lij4Li04Lii4LiyCivguK3guIHguLHguJvguJvguLTguKLguLAKK+C4reC4geC4suC4peC4iOC4teC4p+C4owor4Lit4LiB4Liy4Lil4Li04LmC4LiBCivguK3guIHguLTguKPguLTguKLguJfguLTguJDguLQKK+C4reC4geC4uOC4qOC4pQor4Lit4LiE4LiV4Li0CivguK3guITguYDguJnguKrguLHguJkKK+C4reC4hOC4suC4mAor4Lit4LiGCivguK3guIcKK+C4reC4h+C4geC5jAor4Lit4LiH4LiE4LmMCivguK3guIfguITguKHguJnguJXguKPguLUKK+C4reC4h+C4hOC4oeC4o+C4o+C4qQor4Lit4LiH4LiE4Li44LilCivguK3guIfguITguLjguKXguLUKK+C4reC4h+C4qOC5jAor4Lit4LiH4Lio4LiyCivguK3guIfguK3guLLguIgKK+C4reC4h+C4uOC5iOC4mQor4Lit4LiI4LijCivguK3guIjguKXguLIKK+C4reC4iOC4tOC4leC4leC4tAor4Lit4LiI4Li04LiZ4LiV4LiyCivguK3guIjguLTguJnguYTguJXguKIKK+C4reC4iOC4tOC4o+C4sAor4Lit4LmA4LiI4Lil4LiBCivguK3guYDguIjguKXguLAKK+C4reC4igor4Lit4LiK4Li04LiZCivguK3guIrguLTguJnguLUKK+C4reC4iuC4tOC4owor4Lit4LiK4Li14Lin4Lin4Li04LiX4LiiCivguK3guI/guKfguLUKK+C4reC4k+C4tAor4Lit4LiT4Li4CivguK3guJPguLkKK+C4reC5guC4k+C4l+C4seC4ogor4Lit4LiUCivguK3guJTguLQKK+C4reC4lOC4tOC4luC4tQor4Lit4LiU4Li04LmA4LiX4LieCivguK3guJTguLTguYDguKPguIEKK+C4reC4lOC4tOC4qOC4owor4Lit4LiU4Li04Lio4Lin4LijCivguK3guJTguLTguKjguLHguKIKK+C4reC4lOC4teC4lQor4Lit4LiU4Li44LilCivguK3guJTguLjguKXguKLguYwKK+C4reC4leC4tAor4Lit4LiV4Li04LiK4Liy4LiVCivguK3guJXguLTguJXguLHguJPguKvguLIKK+C4reC4leC4tOC4luC4tOC4nuC4peC4tQor4Lit4LiV4Li04LmA4LiX4LieCivguK3guJXguLTguKPguLLguIoKK+C4reC4leC4tOC5gOC4o+C4gQor4Lit4LiV4Li04Liq4Liy4LijCivguK3guJXguLTguLLguKHguJnguLAKK+C4reC4leC4teC4leC4seC4h+C4quC4jeC4suC4kwor4Lit4LiW4Lij4Lij4Lie4LmA4Lin4LiXCivguK3guJfguLTguJXguLQKK+C4reC4l+C4tOC4meC4meC4suC4l+C4suC4mQor4Lit4LiX4Li04LiZ4LiZ4Liy4LiX4Liy4Lii4Li1CivguK3guJjguKPguKPguKEKK+C4reC4mOC4tAor4Lit4LiY4Li04LiB4Lij4LiT4LmMCivguK3guJjguLTguIHguLLguKMKK+C4reC4mOC4tOC4hOC4oQor4Lit4LiY4Li04LiI4Li04LiVCivguK3guJjguLTguI/guJDguLLguJkKK+C4reC4mOC4tOC4muC4lOC4tQor4Lit4LiY4Li04Lia4Liy4LiiCivguK3guJjguLTguJsKK+C4reC4mOC4tOC4oeC4suC4leC4owor4Lit4LiY4Li04Lih4Li44LiV4LiV4Li0CivguK3guJjguLTguYLguKHguIHguILguYwKK+C4reC4mOC4tOC4o+C4suC4igor4Lit4LiY4Li04Lin4Liy4LiqCivguK3guJjguLTguKfguLLguKrguJnguLAKK+C4reC4mOC4tOC4qOC4teC4pQor4Lit4LiY4Li04Lip4LiQ4Liy4LiZCivguK3guJjguLbguIEKK+C4reC5ieC4mQor4Lit4LiZ4LiH4LiE4LmMCivguK3guJnguIfguITguJPguLAKK+C4reC4meC4mOC4tOC4p+C4owor4Lit4LiZ4LiZ4LiV4LmMCivguK3guJnguKDguLTguKPguJXguLQKK+C4reC4meC4ouC4sAor4Lit4LiZ4Lij4Lij4LiGCivguK3guJnguKPguKPguJYKK+C4reC4meC4o+C4tOC4ouC4m+C4o+C4tOC5gOC4ouC4quC4meC4sgor4Lit4LiZ4LilCivguK3guJnguKfguLHguIoKK+C4reC5ieC4meC4reC5ieC4rQor4Lit4LiZ4Lix4LiNCivguK3guJnguLHguJXguJXguKXguLHguIHguKnguJPguLAKK+C4reC4meC4seC4leC4leC4sgor4Lit4LiZ4Lix4LiZ4LiV4LmMCivguK3guJnguLHguKEKK+C4reC4meC4suC4hOC4lQor4Lit4LiZ4Liy4LiE4Liy4Lih4Li1CivguK3guJnguLLguITguLLguKPguLTguIEKK+C4reC4meC4suC4hOC4suC4o+C4tOC4ouC5gOC4nuC4qAor4Lit4LiZ4Liy4LiI4Liy4LijCivguK3guJnguLLguJYKK+C4reC4meC4suC4luC4sgor4Lit4LiZ4Liy4LiX4LijCivguK3guJnguLLguJjguLTguJvguYTguJXguKIKK+C4reC4meC4suC4oeC4seC4ogor4Lit4LiZ4Liy4Lij4Lii4LiwCivguK3guJnguLLguKXguLHguKIKK+C4reC4meC4suC4p+C4o+C4k+C4jeC4suC4kwor4Lit4LiZ4LizCivguK3guJnguLTguIgKK+C4reC4meC4tOC4iOC4iOC4seC4hwor4Lit4LiZ4Li04LiI4LiI4LiyCivguK3guJnguLTguI/guJDguLLguKPguKHguJPguYwKK+C4reC4meC4tOC4ouC4lQor4Lit4LiZ4Li04Lii4LihCivguK3guJnguLTguKUKK+C4reC4meC4tOC4p+C4o+C4o+C4lQor4Lit4LiZ4Li04Lin4Lij4Lij4LiV4LiZ4LmMCivguK3guJnguLTguKnguI/guYwKK+C4reC4meC4teC4geC4sAor4Lit4LiZ4Li14LiICivguK3guJnguLbguIEKK+C4reC4meC4tuC5iOC4hwor4Lit4LiZ4Li4CivguK3guJnguLjguIHguKMKK+C4reC4meC4uOC4geC4o+C4oQor4Lit4LiZ4Li44LiB4Lij4Lij4Lih4LiB4Liy4LijCivguK3guJnguLjguIHguKPguLDguYDguJrguLXguKLguJQKK+C4reC4meC4uOC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44LiB4Liy4LijCivguK3guJnguLjguIHguLnguKUKK+C4reC4meC4uOC4hOC4suC4oeC4tOC4gQor4Lit4LiZ4Li44LiE4Liy4Lih4Li1CivguK3guJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4reC4meC4uOC4iOC4owor4Lit4LiZ4Li44LiKCivguK3guJnguLjguIrguLIKK+C4reC4meC4uOC4iuC4suC4lQor4Lit4LiZ4Li44LiK4Li04LiVCivguK3guJnguLjguI3guLLguJUKK+C4reC4meC4uOC4jeC4suC5guC4leC4leC4uOC4peC4suC4geC4suC4owor4Lit4LiZ4Li44LmA4LiW4Lij4LiwCivguK3guJnguLjguJfguLTguJkKK+C4reC4meC4uOC4muC4lwor4Lit4LiZ4Li44Lia4Liy4LilCivguK3guJnguLjguJrguLjguJ4KK+C4reC4meC4uOC4m+C4o+C4tOC4jeC4jeC4sgor4Lit4LiZ4Li44Lib4Liq4Lix4Lih4Lia4Lix4LiZCivguK3guJnguLjguJvguLHguKrguJnguLIKK+C4reC4meC4uOC4nuC4h+C4qOC5jAor4Lit4LiZ4Li44Lie4LiZ4LiY4LmMCivguK3guJnguLjguJ7guLHguJnguJjguYwKK+C4reC4meC4uOC5guC4nuC4mAor4Lit4LiZ4Li44Lig4Lij4Lij4Lii4LiyCivguK3guJnguLjguKDguLLguIQKK+C4reC4meC4uOC4oOC4suC4qQor4Lit4LiZ4Li44Lih4Lix4LiV4Li0CivguK3guJnguLjguKHguLLguJXguKPguLIKK+C4reC4meC4uOC4oeC4suC4mQor4Lit4LiZ4Li44Lih4Li54LilCivguK3guJnguLjguYLguKHguJfguJnguLIKK+C4reC4meC4uOC5guC4ouC4hAor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMCivguK3guJnguLjguKPguLLguIoKK+C4reC4meC4uOC4o+C4suC4mOC4sgor4Lit4LiZ4Li44Lij4Li54LibCivguK3guJnguLjguYLguKXguKEKK+C4reC4meC4uOC4p+C4h+C4qOC5jAor4Lit4LiZ4Li44Lin4Lix4LiVCivguK3guJnguLjguKfguLLguJUKK+C4reC4meC4uOC4qOC4suC4quC4gQor4Lit4LiZ4Li44Lio4Liy4Liq4LiZ4LmMCivguK3guJnguLjguKjguLLguKrguJnguLLguIjguLLguKPguKLguYwKK+C4reC4meC4uOC4qOC4tOC4qeC4j+C5jAor4Lit4LiZ4Li44Liq4LiV4Li0CivguK3guJnguLjguKrguJnguJjguLQKK+C4reC4meC4uOC4quC4oOC4suC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44Liq4LijCivguK3guJnguLjguKrguKPguJPguYwKK+C4reC4meC4uOC4quC4seC4jeC4jeC4sgor4Lit4LiZ4Li44Liq4Lix4LiiCivguK3guJnguLjguKrguLLguKfguKPguLXguKLguYwKK+C4reC4meC4uOC4quC4suC4quC4meC4tQor4Lit4LmA4LiZ4LiBCivguK3guYDguJnguIHguITguLjguJMKK+C4reC5gOC4meC4geC4p+C4tOC4mAor4Lit4LmA4LiZ4LiI4Lit4LiZ4Liy4LiWCivguK3guYDguJnguI3guIrguLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4reC5gOC4meC4quC4meC4sgor4Lit4LmC4LiZ4LiK4LiyCivguK3guYLguJnguJTguLLguJUKK+C4reC4mgor4Lit4Lia4LmA4LiK4LiiCivguK3guJrguLLguKIKK+C4reC4mwor4Lit4Lib4LiB4Liy4LijCivguK3guJvguJfguLLguJkKK+C4reC4m+C5gOC4l+C4qAor4Lit4Lib4Lig4Liy4LiE4Lii4LmMCivguK3guJvguKHguIfguITguKUKK+C4reC4m+C4oeC4suC4mQor4Lit4Lib4Lii4LioCivguK3guJvguKPguIHguJXguLQKK+C4reC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guJvguKPguLDguYTguKHguKIKK+C4reC4m+C4o+C4seC4kwor4Lit4Lib4Lij4LiyCivguK3guJvguKPguLLguIrguLHguKIKK+C4reC4m+C4o+C4suC4iuC4tOC4lQor4Lit4Lib4Lij4Liy4LiYCivguK3guJvguKPguLLguJvguKPguYDguIjguJXguJnguLIKK+C4reC4m+C4o+C4suC4m+C4o+C5gOC4p+C4l+C4meC4teC4ouC4geC4o+C4o+C4oQor4Lit4Lib4Lij4Li04Lih4Liy4LiTCivguK3guJvguKPguLTguKvguLLguKPguLTguKLguJjguKPguKPguKEKK+C4reC4m+C4peC4seC4geC4qeC4k+C5jAor4Lit4Lib4LmC4Lil4LiB4LiZ4LmMCivguK3guJvguKfguLLguJcKK+C4reC4m+C4q+C4suC4owor4Lit4Lib4Lix4LiT4LiT4LiB4Lib4LiP4Li04Lib4LiX4LiyCivguK3guJvguLHguJfguKPguJ4KK+C4reC4m+C4suC4iOC4suC4ouC4meC4sAor4Lit4Lib4Liy4LiI4Li1CivguK3guJvguLLguIjguLXguJkKK+C4reC4m+C4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lit4LmA4Lib4Lir4Li0CivguK3guJ7guIjguJnguYwKK+C4reC4nuC4nuC4sAor4Lit4Lie4Lii4LieCivguK3guJ7guKLguLLguJrguLLguJfguKfguLTguJXguIEKK+C4reC4nuC4pQor4Lit4Lie4Lil4LiyCivguK3guJ7guLLguKPguYzguJXguYDguKHguJnguJXguYwKK+C4reC4oOC4pwor4Lit4Lig4Lix4LieCivguK3guKDguLHguKIKK+C4reC4oOC4tAor4Lit4Lig4Li04LiE4LihCivguK3guKDguLTguIbguLLguJUKK+C4reC4oOC4tOC4iOC4ieC4sgor4Lit4Lig4Li04LiI4LiM4LiyCivguK3guKDguLTguIrguJkKK+C4reC4oOC4tOC4iuC4seC4ogor4Lit4Lig4Li04LiK4Liy4LiVCivguK3guKDguLTguIrguLTguJUKK+C4reC4oOC4tOC4jeC4jeC4sgor4Lit4Lig4Li04LiN4LiN4Liy4LiTCivguK3guKDguLTguJDguLLguJkKK+C4reC4oOC4tOC4mOC4o+C4o+C4oQor4Lit4Lig4Li04LiY4Liy4LiZCivguK3guKDguLTguYTguJjguKIKK+C4reC4oOC4tOC4meC4seC4meC4l+C5jAor4Lit4Lig4Li04LiZ4Lix4LiiCivguK3guKDguLTguJnguLLguJcKK+C4reC4oOC4tOC4meC4tOC4q+C4suC4owor4Lit4Lig4Li04LmA4LiZ4Lip4LiB4Lij4Lih4LiT4LmMCivguK3guKDguLTguJrguLLguKUKK+C4reC4oOC4tOC4m+C4o+C4seC4iuC4jeC4sgor4Lit4Lig4Li04Lib4Lij4Liy4LiiCivguK3guKDguLTguKHguKvguLLguK3guLPguJnguLLguIgKK+C4reC4oOC4tOC4oeC4suC4meC4sAor4Lit4Lig4Li04Lih4Li44LiCCivguK3guKDguLTguKPguJTguLUKK+C4reC4oOC4tOC4o+C4leC4tAor4Lit4Lig4Li04Lij4Lih4Lii4LmMCivguK3guKDguLTguKPguLHguIHguKnguYwKK+C4reC4oOC4tOC4o+C4seC4kOC4oeC4meC4leC4o+C4tQor4Lit4Lig4Li04Lij4Liy4LihCivguK3guKDguLTguKPguLjguJUKK+C4reC4oOC4tOC4o+C4uOC4oQor4Lit4Lig4Li04Lij4Li54LibCivguK3guKDguLTguKXguLHguIHguILguLTguJUKK+C4reC4oOC4tOC4peC4suC4qgor4Lit4Lig4Li04LmA4Lil4Lib4LiZ4LmMCivguK3guKDguLTguKfguLHguJnguJfguYwKK+C4reC4oOC4tOC4p+C4suC4lwor4Lit4Lig4Li04Lin4Liy4LiX4LiZ4LmMCivguK3guKDguLTguYDguKnguIEKK+C4reC4oOC4tOC4quC4l+C4mOC4tOC5jAor4Lit4Lig4Li04Liq4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguKHguLHguKIKK+C4reC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lit4Lig4Li04Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguLTguJUKK+C4reC4oOC4ueC4lQor4Lit4LihCivguK3guYnguKEKK+C4reC4oeC4leC4sAor4Lit4Lih4LiZ4Li44Lip4Lii4LmMCivguK3guKHguKMKK+C4reC4oeC4o+C4muC4lOC4tQor4Lit4Lih4Lij4Lib4Li44Lij4LiwCivguK3guKHguKPguKPguLHguJXguJnguYwKK+C4reC4oeC4o+C4o+C4suC4igor4Lit4Lih4Lij4Liq4LiV4Lij4Li1CivguK3guKHguYDguKPguKgKK+C4reC4oeC5gOC4o+C4qOC4p+C4owor4Lit4Lih4Lik4LiVCivguK3guKHguKTguJXguKLguLkKK+C4reC4oeC4seC4iOC4iOC4sAor4Lit4Lih4Lix4LiV4LijCivguK3guKHguLLguJXguKLguYwKK+C4reC4oeC4suC4p+C4quC4uAor4Lit4Lih4Liy4Lin4Liy4Liq4Li1CivguK3guKHguLTguJXguKMKK+C4reC5gOC4oeC4o+C4tOC4geC4seC4mQor4Lit4LiiCivguK3guKLguJkKK+C4reC4ouC4seC4qgor4Lit4Lii4LmI4LiyCivguK3guKLguLLguIEKK+C4reC4ouC5iOC4suC4hwor4Lit4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguK3guKLguLjguJfguJjguYwKK+C4reC4ouC4ueC5iAor4Lit4LijCivguK3guKPguIoKK+C4reC4o+C4iuC4owor4Lit4Lij4LiK4Li44LiZCivguK3guKPguJMKK+C4reC4o+C4lOC4tQor4Lit4Lij4LiV4Li0CivguK3guKPguYTguJcKK+C4reC4o+C4mOC4suC4mQor4Lit4Lij4LiZ4Li44LiKCivguK3guKPguJ7guLTguJnguJfguYwKK+C4reC4o+C4nuC4tOC4oQor4Lit4Lij4Lij4LiECivguK3guKPguKPguIYKK+C4reC4o+C4o+C4huC4ouC5jAor4Lit4Lij4Lij4LiI4LiZ4LmMCivguK3guKPguKPguJPguJ4KK+C4reC4o+C4o+C4lgor4Lit4Lij4Lij4LiYCivguK3guKPguKPguJjguLLguIfguITguYwKK+C4reC4o+C4quC4uOC4oQor4Lit4Lij4Lir4LiwCivguK3guKPguKvguLHguIcKK+C4reC4o+C4q+C4seC4lQor4Lit4Lij4Lir4Lix4LiZCivguK3guKPguKvguLHguJnguJXguYwKK+C4reC4o+C5iOC4reC4ogor4Lit4Lij4Lix4LiNCivguK3guKPguLHguJnguJXguYwKK+C4reC4o+C4suC4lOC4tQor4Lit4Lij4Liy4LiV4Li0CivguK3guKPguYjguLLguKEKK+C4reC4o+C4tAor4Lit4Lij4Li04LiZCivguK3guKPguLTguKLguIHguLAKK+C4reC4o+C4tOC4ouC4sAor4Lit4Lij4Li4CivguK3guKPguLjguJMKK+C4reC4o+C4uOC5iOC4oQor4Lit4Lij4Li54LibCivguK3guKXguIfguIHguJUKK+C4reC4peC4h+C4geC4o+C4k+C5jAor4Lit4Lil4LiH4LiB4Liy4LijCivguK3guKXguKfguJkKK+C4reC4peC5gOC4p+C4hwor4Lit4Lil4Lir4Lih4LmI4Liy4LiZCivguK3guKXguYjguK3guIfguInguYjguK3guIcKK+C4reC4peC4seC4geC5gOC4reC4peC4t+C5iOC4rQor4Lit4Lil4Lix4LiK4LiK4Li1CivguK3guKXguYjguLLguIfguInguYjguLLguIcKK+C4reC4peC4tAor4Lit4Lil4Li04LiH4LiE4LmMCivguK3guKXguLbguIfguITguYwKK+C4reC4peC4tuC5iOC4h+C4ieC4tuC5iOC4hwor4Lit4LmC4Lil4Lir4LiwCivguK3guKfguIEKK+C4reC5ieC4p+C4gQor4Lit4Lin4LiB4Liy4LioCivguK3guKfguYDguITguKPguLLguLDguKvguYwKK+C4reC4p+C4iOC4owor4Lit4Lin4LiK4Lix4LiiCivguK3guKfguIrguLLguJUKK+C4reC4p+C4lAor4Lit4Lin4LiV4Liy4LijCivguK3guKfguJkKK+C4reC5ieC4p+C4mQor4Lit4Lin4LiZ4Li0CivguK3guKfguJoKK+C4reC4p+C4oeC4h+C4hOC4pQor4Lit4Lin4Lih4Lit4LizCivguK3guYnguKfguKHguYDguK3guLXguKIKK+C4reC4p+C4ogor4Lit4Lin4Lii4Lin4LiwCivguK3guKfguKPguLjguJfguJjguYwKK+C4reC4p+C4o+C4uOC4mOC4l+C4gQor4Lit4Lin4LilCivguK3guKfguKrguLLguJkKK+C4reC4p+C4q+C4suC4owor4Lit4Lin4Lix4LiV4LiW4LiyCivguK3guKfguLHguKLguKfguLAKK+C4reC4p+C4seC4quC4lOC4sgor4Lit4Lin4Liy4LiI4Li1CivguK3guKfguLTguIjguLUKK+C4reC4p+C4tOC4iuC4iuC4sgor4Lit4Lin4Li04LiN4LiN4Li5CivguK3guKfguLTguKPguLjguJfguJjguYwKK+C4reC4p+C4tOC5guC4o+C4mOC4meC5jAor4Lit4Lin4Li14LiI4Li0CivguK3guYDguKfguIjguLUKK+C4reC5gOC4p+C5hOC4meC4ouC4quC4seC4leC4p+C5jAor4Lit4LmC4Lio4LiBCivguK3guKrguIfguYTguILguKIKK+C4reC4quC4meC4tQor4Lit4Liq4LigCivguK3guKrguKHguIHguLLguKMKK+C4reC4quC4oeC4oeC4suC4leC4owor4Lit4Liq4Lij4Lie4Li04LipCivguK3guKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4reC4quC4seC4h+C4guC4leC4mOC4o+C4o+C4oQor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguK3guKrguLHguI3guI3guLUKK+C4reC4quC4seC4jeC5geC4lOC4q+C4p+C4sgor4Lit4Liq4Lix4LiV4LiW4Lie4Lik4LiB4Lip4LmMCivguK3guKrguLHguJXguKLguYwKK+C4reC4quC4suC4mOC4owor4Lit4Liq4Liy4LiY4Li4CivguK3guKrguLLguJ7guJXguLQKK+C4reC4quC4tAor4Lit4Liq4Li04LiVCivguK3guKrguLXguJXguKLguLLguJnguLjguJ7guKLguLHguI3guIrguJnguLAKK+C4reC4quC4teC4leC4tAor4Lit4Liq4Li4CivguK3guKrguLjguIjguLQKK+C4reC4quC4uOC4jeC4geC4seC4peC4m+C5jAor4Lit4Liq4Li44LiZ4Li14Lia4Liy4LiVCivguK3guKrguLjguKAKK+C4reC4quC4uOC4o+C4tOC4meC4l+C4o+C5jAor4Lit4Liq4Li44Lij4Li1CivguK3guKrguLjguYDguKPguJnguJfguKPguYwKK+C4reC4quC4uOC5gOC4o+C4qAor4Lit4Liq4Li54LijCivguK3guYDguKoKK+C4reC5gOC4quC4geC4guC4sAor4Lit4LmA4Liq4LiC4LiwCivguK3guYDguKrguKfguJnguLAKK+C4reC5gOC4quC4p+C4meC4sgor4Lit4LirCivguK3guKvguLHguIfguIHguLLguKMKK+C4reC4q+C4tAor4Lit4Lir4Li04LiH4Liq4LiyCivguK3guKvguLbguIfguKrguLIKK+C4reC5gOC4q+C4leC4uOC4geC4l+C4tOC4kOC4tAor4Lit4LmC4Lir4Liq4Li0CivguK3guK0KK+C4reC5ieC4rQor4Lit4LmL4LitCivguK3guK3guIEKK+C4reC4reC4geC4i+C4tOC5gOC4iOC4mQor4Lit4Lit4LiB4LiL4Li04LmA4LiU4LiK4Lix4LiZCivguK3guK3guIHguYTguIvguJTguYwKK+C4reC5iOC4reC4hwor4Lit4LmL4Lit4LiHCivguK3guYnguK3guIfguYHguK3guYnguIcKK+C4reC4reC5gOC4i+C4suC4sAor4Lit4Lit4LiUCivguK3guYrguK3guJTguYbguYHguK3guYrguJTguYYKK+C4reC5iuC4reC4lOC5geC4reC5iuC4lAor4Lit4LmI4Lit4LiZCivguK3guYnguK3guJkKK+C4reC4reC4meC4i+C5jAor4Lit4Lit4LiZ4LiL4Lit4LiZCivguK3guYjguK3guJnguIvguK3guJkKK+C4reC5ieC4reC4meC5geC4reC5ieC4mQor4Lit4Lit4Lif4Lif4Li04LioCivguK3guK3guKEKK+C4reC5iOC4reC4oQor4Lit4LmJ4Lit4LihCivguK3guK3guKHguITguKPguK3guKEKK+C4reC4reC4oeC4iuC4reC4oQor4Lit4Lit4Lih4LiL4Lit4LihCivguK3guYnguK3guKHguYHguK3guYnguKEKK+C4reC5iOC4reC4ogor4Lit4LmJ4Lit4LiiCivguK3guYvguK3guKIKK+C4reC5ieC4reC4ouC4quC5ieC4reC4ogor4Lit4LmJ4Lit4Lii4Lit4Li04LmI4LiHCivguK3guK3guKPguYzguYHguIHguJkKK+C4reC4reC4o+C5jOC5gOC4lOC4tOC4o+C5jOC4nwor4Lit4Lit4Liq4LmA4Lih4Li14Lii4LihCivguK3guYnguK3guYHguK3guYkKK+C4reC5iuC4sAor4Lit4Liw4LiE4Lij4LmJ4Liy4LinCivguK3guLDguYDguITguLfguYnguK0KK+C4reC4sOC4iOC4teC4mQor4Lit4Liw4LmB4LiICivguK3guLDguYDguIvguJfguLTguKXguLXguJkKK+C4reC4sOC4lOC4o+C4t+C4meC4suC4peC4tOC4mQor4Lit4Liw4LiU4Lix4LiBCivguK3guLDguJTguLjguIcKK+C4reC4sOC4leC4reC4oQor4Lit4Liw4LiZ4LiwCivguK3guLDguJnguLHguYnguJkKK+C4reC4sOC4meC4teC5iQor4Lit4Liw4Lih4Li14Lia4LiyCivguK3guLDguYDguKHguKPguLTguYDguIvguLXguKLguKEKK+C4reC4sOC4o+C5ieC4suC4reC4o+C5iOC4suC4oQor4Lit4Liw4LmE4LijCivguK3guLDguKXguLHguIfguIHguLLguKMKK+C4reC4sOC4peC4uOC5iOC4oeC4reC4peC5iOC4p+C4ogor4Lit4Liw4Lil4Li44LmJ4Lih4Lit4Lil4LmI4Lin4LiiCivguK3guLDguKXguLnguKHguLTguYDguJnguLXguKLguKEKK+C4reC4sOC4q+C4oQor4Lit4Liw4LmE4Lir4Lil4LmICivguK3guLDguK3guLfguYnguK0KK+C4reC4sOC5gOC4reC4t+C5ieC4reC4ogor4Lit4Lix4LiBCivguK3guLHguYnguIEKK+C4reC4seC5iuC4gQor4Lit4Lix4LmJ4LiB4LmGCivguK3guLHguYrguIHguYYKK+C4reC4seC4geC4geC4sAor4Lit4Lix4LiB4LmC4LiB4LiY4LiwCivguK3guLHguIHguYLguIHguKrguKfguLHguJXguJbguLgKK+C4reC4seC4geC4ggor4Lit4Lix4LiB4LiC4Lij4LiwCivguK3guLHguIHguILguKPguLLguJnguLjguIHguKPguKHguKDguLnguKHguLTguKjguLLguKrguJXguKPguYwKK+C4reC4seC4geC4guC4suC4mQor4Lit4Lix4LiB4LmC4LiCCivguK3guLHguIHguYLguILguKDguLTguJPguLUKK+C4reC4seC4geC5guC4guC5gOC4oOC4k+C4tQor4Lit4Lix4LiB4Lip4LijCivguK3guLHguIHguKnguLAKK+C4reC4seC4geC5gOC4qeC4suC4q+C4tOC4k+C4tQor4Lit4Lix4LiB4LmA4Liq4LiaCivguK3guLHguIHguK3guYjguKfguJkKK+C4reC4seC4hOC4hOC4sAor4Lit4Lix4LiE4LiE4Li0CivguK3guLHguITguITguLUKK+C4reC4seC4hOC4meC4tAor4Lit4Lix4LiE4LiZ4Li1CivguK3guLHguITguJnguLXguIHguKPguLXguJHguLIKK+C4reC4seC4hwor4Lit4Lix4LiH4LiB4LmMCivguK3guLHguIfguIHguJnguLAKK+C4reC4seC4h+C4geC4pOC4qQor4Lit4Lix4LiH4LiB4Lin4LiUCivguK3guLHguIfguIHguLDguKXguLjguIcKK+C4reC4seC4h+C4geC4sgor4Lit4Lix4LiH4LiB4Liy4LiaCivguK3guLHguIfguIHguLjguKMKK+C4reC4seC4h+C4geC4uOC4qAor4Lit4Lix4LiH4LiB4Li54LijCivguK3guLHguIfguITguJPguLAKK+C4reC4seC4h+C4hOC4k+C4sgor4Lit4Lix4LiH4LiE4LiwCivguK3guLHguIfguITguLLguKMKK+C4reC4seC4h+C4hOC4suC4qgor4Lit4Lix4LiH4LiE4Li14Lij4LiqCivguK3guLHguIfguITguLjguJAKK+C4reC4seC4h+C4huC4suC4lQor4Lit4Lix4LmJ4LiH4LmA4Lib4LiyCivguK3guLHguYnguIfguKHguYnguK0KK+C4reC4seC5ieC4h+C4ouC4teC5iAor4Lit4Lix4LmJ4LiH4LmC4Lil4LmICivguK3guLHguIfguKjguLAKK+C4reC4seC4h+C4qOC4uAor4Lit4Lix4LiH4Lio4Li44LiBCivguK3guLHguIfguKrguJXguKPguK3guKEKK+C4reC4seC4h+C4quC4meC4sgor4Lit4Lix4LiH4Liq4LiwCivguK3guLHguIjguIHguKXguLHguJoKK+C4reC4seC4iOC4iOC4seC4meC4leC5jAor4Lit4Lix4LiI4LiI4Lix4LiiCivguK3guLHguIjguIjguLQKK+C4reC4seC4iOC4iOC4uOC4lQor4Lit4Lix4LiI4LmA4LiI4LiB4LiwCivguK3guLHguIjguInguKPguLIKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lit4Lix4LiI4LiZ4LiyCivguK3guLHguIrguIzguLIKK+C4reC4seC4iuC4jOC4suC4iOC4suC4owor4Lit4Lix4LiK4LiM4Liy4Lio4Lix4LiiCivguK3guLHguIrguIzguLLguKrguLHguKIKK+C4reC4seC4iuC4muC4suC4pQor4Lit4Lix4LiN4LiC4Lii4LihCivguK3guLHguI3guIrguJnguLAKK+C4reC4seC4jeC4iuC4peC4tQor4Lit4Lix4LiN4LiK4Lix4LiZCivguK3guLHguI3guYDguIrguLTguI0KK+C4reC4seC4jeC4jeC4sAor4Lit4Lix4LiN4Lib4Lij4Liw4LiB4Liy4LioCivguK3guLHguI3guKHguLHguI3guI3guLAKK+C4reC4seC4jeC4o+C4ueC4mwor4Lit4Lix4LiPCivguK3guLHguI/guJAKK+C4reC4seC4j+C4meC4sgor4Lit4Lix4LiQCivguK3guLHguJDguKHguLAKK+C4reC4seC4kOC4rOC4qgor4Lit4Lix4LiQ4Li0CivguK3guLHguJPguJHguLAKK+C4reC4seC4k+C4k+C4ngor4Lit4Lix4LiUCivguK3guLHguJTguYHguIgKK+C4reC4seC4leC4hOC4seC4lAor4Lit4Lix4LiV4LiI4Lij4Li04Lii4LiyCivguK3guLHguJXguJXguLAKK+C4reC4seC4leC4leC4sgor4Lit4Lix4LiV4LiW4LmMCivguK3guLHguJXguJbguLAKK+C4reC4seC4leC5guC4meC4oeC4seC4leC4tAor4Lit4Lix4LiV4Lij4LiK4LiwCivguK3guLHguJXguKPguLIKK+C4reC4seC4leC4peC4seC4lAor4Lit4Lix4LiX4LiX4LiyCivguK3guLHguJfguJjguYwKK+C4reC4seC4l+C4mOC4sgor4Lit4Lix4LiX4LiY4Liy4LiZCivguK3guLHguJjguKLguLLguJXguKHguKfguLTguJfguKLguLIKK+C4reC4seC4mOC4ouC4suC4ogor4Lit4Lix4LiY4Lii4Liy4Lio4Lix4LiiCivguK3guLHguJkKK+C4reC4seC5ieC4mQor4Lit4Lix4LmL4LiZCivguK3guLHguJnguJTguIEKK+C4reC4seC4meC4lOC4owor4Lit4Lix4LiZ4LiU4Lix4LiaCivguK3guLHguJnguJTguYrguLLguIEKK+C4reC4seC4meC5guC4lOC5iuC4gQor4Lit4Lix4LiZ4LiV4LijCivguK3guLHguJnguJXguKPguJjguLLguJkKK+C4reC4seC4meC4leC4o+C4sgor4Lit4Lix4LiZ4LiV4Lij4Liy4LiiCivguK3guLHguJnguJXguLTguIEKK+C4reC4seC4meC4leC4tOC4oeC4sAor4Lit4Lix4LiZ4LmA4LiVCivguK3guLHguJnguYLguJUKK+C4reC4seC4meC5geC4luC5ieC4hwor4Lit4Lix4LiZ4LiX4Li4CivguK3guLHguJnguYLguJfguKUKK+C4reC4seC4meC4meC4sAor4Lit4Lix4LiZ4Lii4LiwCivguK3guLHguJnguYLguKLguJnguKLguLAKK+C4reC4seC4meC4p+C4seC4ogor4Lit4Lix4LiZ4LmA4Lin4LiqCivguK3guLHguJoKK+C4reC4seC4muC4m+C4suC4hwor4Lit4Lix4Lib4LiB4LiwCivguK3guLHguJvguIHguLLguKMKK+C4reC4seC4m+C4j+C4tOC4huC4sAor4Lit4Lix4Lib4LiP4Li04Lig4Liy4LiECivguK3guLHguJvguJvguLAKK+C4reC4seC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lix4Lib4Lih4LiH4LiE4LilCivguK3guLHguJvguKLguKgKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lix4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guLHguJvguKPguLDguYTguKHguKIKK+C4reC4seC4m+C4o+C4suC4iuC4seC4ogor4Lit4Lix4Lib4Lij4Li14Lii4LmMCivguK3guLHguJvguKXguLHguIHguKnguJPguYwKK+C4reC4seC4m+C4quC4owor4Lit4Lix4Lie4Lie4Li44LiXCivguK3guLHguJ7guYLguJ7guKvguLLguKPguLTguIEKK+C4reC4seC4nuC4oOC4seC4meC4lOC4owor4Lit4Lix4Lie4Lig4Liy4LiZCivguK3guLHguJ7guKDguLLguKoKK+C4reC4seC4oQor4Lit4Lix4Lih4Lie4LijCivguK3guLHguKHguJ7guLIKK+C4reC4seC4oeC4nuC4tOC4pQor4Lit4Lix4Lih4Lie4Li4CivguK3guLHguKLguIHguLAKK+C4reC4seC4ouC4geC4sgor4Lit4Lix4Lii4LiB4Liy4LijCivguK3guLHguKLguIHguLUKK+C4reC4seC4ouC4ouC4sAor4Lit4Lix4Lii4Lii4Liy4Lig4Lij4Li04Lii4LiyCivguK3guLHguKLguKLguLTguIHguLIKK+C4reC4seC4peC4leC4o+C4suC5hOC4p+C5guC4reC5gOC4peC4lQor4Lit4Lix4LmI4LinCivguK3guLHguYrguKcKK+C4reC4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lit4Lix4Lio4LmA4LiI4Lij4Li14Lii4LmMCivguK3guLHguKnguI7guKHguLAKK+C4reC4seC4quC4lOC4hwor4Lit4Lix4Liq4LiU4LihCivguK3guLHguKrguJnguLUKK+C4reC4seC4quC4oeC4tOC4oeC4suC4meC4sAor4Lit4Lix4Liq4Liq4LiwCivguK3guLHguKrguKrguLHguJXguJbguJ7guKTguIHguKnguYwKK+C4reC4seC4quC4quC4uAor4Lit4LiyCivguK3guYjguLIKK+C4reC5ieC4sgor4Lit4Liy4LiB4LiHCivguK3guLLguIHguKMKK+C4reC4suC4geC4seC4h+C4guC4sgor4Lit4Liy4LiB4Lix4LibCivguK3guLLguIHguLHguKHguJvguJnguLAKK+C4reC4suC4geC4seC4oeC4m+C4sAor4Lit4Liy4LiB4Liy4LijCivguK3guLLguIHguLLguKgKK+C4reC4suC4geC4tOC4jeC4iOC4seC4jeC4jeC4sAor4Lit4Liy4LiB4Li54LilCivguK3guLLguYDguIHguLXguKLguKPguJPguYwKK+C4reC4suC4guC4ouC4suC4lQor4Lit4Liy4LiC4Lii4Liy4LiZCivguK3guLLguITguYDguJnguKLguYwKK+C4reC4suC4hOC4oQor4Lit4Liy4LiE4Lij4Lir4Liy4Lii4LiT4Li1CivguK3guLLguITguLHguJnguJXguLjguIHguLAKK+C4reC4suC4hOC4suC4owor4Lit4Liy4LiG4Liy4LiVCivguK3guLLguIbguLLguJXguJnguLAKK+C4reC5iOC4suC4hwor4Lit4LmJ4Liy4LiHCivguK3guLLguIfguILguJnguLLguIcKK+C4reC5ieC4suC4h+C4p+C5ieC4suC4hwor4Lit4Liy4LiICivguK3guLLguIjguKEKK+C4reC4suC4iOC4oeC4mQor4Lit4Liy4LiI4Liy4LiUCivguK3guLLguIjguLLguKMKK+C4reC4suC4iOC4suC4o+C4ouC5jAor4Lit4Liy4LiI4Li04LiTCivguK3guLLguYDguIjguLXguKLguJkKK+C4reC4suC4iuC4jeC4seC4m+C4leC4tAor4Lit4Liy4LiK4LiN4Lix4Lib4LiV4Li04LmMCivguK3guLLguIrguI3guLIKK+C4reC4suC4iuC4p+C4sAor4Lit4Liy4LiK4LiyCivguK3guLLguIrguLLguJkKK+C4reC4suC4iuC4suC4meC4tAor4Lit4Liy4LiK4Liy4LmE4LiZ4LiiCivguK3guLLguIrguLXguJ4KK+C4reC4suC4iuC4teC4p+C4gQor4Lit4Liy4LiK4Li14Lin4LiZ4LiwCivguK3guLLguIrguLXguKfguLAKK+C4reC4suC4jeC4sgor4Lit4Liy4LiP4Liy4LiV4LiyCivguK3guLLguJPguLHguJXguLQKK+C4reC4suC4k+C4sgor4Lit4Liy4LiT4Liy4Lib4LiBCivguK3guLLguJPguLLguJvguJkKK+C4reC4suC4lAor4Lit4Liy4LiU4LmGCivguK3guLLguJTguLjguKXguKLguYwKK+C4reC4suC4lOC4ueC4owor4Lit4Liy4LiU4Li54Lil4Lii4LmMCivguK3guLLguYDguJTguYrguLAKK+C4reC4suC4leC4oeC4seC4mQor4Lit4Liy4LiV4Li44LijCivguK3guLLguJbguKPguKPguJ7guYwKK+C4reC4suC4luC4o+C4o+C4nuC4k+C5jAor4Lit4Liy4LiW4Lij4Lij4Lie4LiT4LiwCivguK3guLLguJfguKHguLLguI8KK+C4reC4suC4l+C4owor4Lit4Liy4LiX4Liy4LiV4LiyCivguK3guLLguJfguLLguJkKK+C4reC4suC4l+C4tOC4geC4p+C4tQor4Lit4Liy4LiX4Li04LiV4Lii4LmMCivguK3guLLguJfguLXguJnguJ4KK+C4reC4suC4l+C4teC4meC4pwor4Lit4Liy4LiX4Li24LiBCivguK3guLLguYDguJfguKgKK+C4reC4suC4mOC4o+C4o+C4oQor4Lit4Liy4LiY4Lij4Lij4Lih4LmMCivguK3guLLguJjguKPguKPguKHguLTguIEKK+C4reC4suC4mOC4o+C4o+C4oeC4tuC4gQor4Lit4Liy4LiY4Liy4LiZCivguK3guLLguJjguLLguKMKK+C4reC4suC4mQor4Lit4LmI4Liy4LiZCivguK3guLLguJnguIEKK+C4reC4suC4meC4mQor4Lit4Liy4LiZ4LiZ4LiX4LmMCivguK3guLLguJnguLAKK+C4reC4suC4meC4seC4meC4l+C5jAor4Lit4Liy4LiZ4Lix4LiZ4LiX4LiZ4LiwCivguK3guLLguJnguLHguKEKK+C4reC4suC4meC4swor4Lit4Liy4LiZ4Li04LiBCivguK3guLLguJnguLTguKrguIfguIbguYwKK+C4reC4suC4meC4uOC4oOC4suC4ngor4Lit4Liy4LiZ4Li44Lig4Liy4Lin4LiwCivguK3guLLguJoKK+C4reC4suC4muC4seC4hwor4Lit4Liy4Lia4Lix4LiV4Li0CivguK3guLLguJrguLHguJkKK+C4reC4suC4muC4uQor4Lit4Liy4Lib4LiT4LiwCivguK3guLLguJvguLAKK+C4reC4suC4m+C4suC4meC4sAor4Lit4Liy4LmC4LibCivguK3guLLguJ7guLHguJQKK+C4reC4suC4nuC4seC4l+C4mOC5jAor4Lit4Liy4Lie4Lix4LiZ4LiY4LmMCivguK3guLLguJ7guLHguJnguJjguJnguLAKK+C4reC4suC4nuC4suC4mAor4Lit4Liy4Lie4Li04LilCivguK3guLLguYDguJ7guKgKK+C4reC4suC4oOC4o+C4k+C5jAor4Lit4Liy4Lig4Lix4LieCivguK3guLLguKDguLHguKrguKPguLAKK+C4reC4suC4oOC4sgor4Lit4Liy4Lig4Liy4LiqCivguK3guLLguYLguKDguIQKK+C4reC4suC4oeC4peC4gQor4Lit4Liy4Lih4Lix4LiiCivguK3guLLguKHguLIKK+C4reC4suC4oeC4tOC4qQor4Lit4Liy4Lih4Li04LiqCivguK3guLLguKIKK+C4reC5ieC4suC4ogor4Lit4Liy4Lii4LiVCivguK3guLLguKLguJXguJnguLAKK+C4reC4suC4ouC4mQor4Lit4Liy4Lii4Lix4LiUCivguK3guLLguKLguLHguJUKK+C4reC4suC4ouC4seC4mQor4Lit4Liy4Lii4Liy4LiI4LiZ4LiwCivguK3guLLguKLguLLguJkKK+C4reC4suC4ouC4uAor4Lit4Liy4Lii4Li44LiB4LiV4LiB4LiwCivguK3guLLguKLguLjguJXguIHguLAKK+C4reC4suC4ouC4uOC4mAor4Lit4Liy4Lii4Li44LipCivguK3guLLguKPguYzguIHguK3guJkKK+C4reC4suC4o+C4lOC4tQor4Lit4Liy4Lij4LmM4LiVCivguK3guLLguKPguJXguLQKK+C4reC4suC4o+C4l+C4o+C4sgor4Lit4Liy4Lij4Lia4Li04LiECivguK3guLLguKPguYzguKEKK+C4reC4suC4o+C4oeC4k+C5jAor4Lit4Liy4Lij4Lii4LiwCivguK3guLLguKPguLAKK+C4reC4suC4o+C4seC4geC4guC4sgor4Lit4Liy4Lij4Lix4LiB4Lip4LmMCivguK3guLLguKPguLHguI0KK+C4reC4suC4o+C4seC4jeC4jeC4tOC4gQor4Lit4Liy4Lij4Lix4LiT4Lii4LmMCivguK3guLLguKPguLHguJPguKLguIHguLAKK+C4reC4suC4o+C4seC4leC4tAor4Lit4Liy4Lij4Lix4Lih4Lig4LmMCivguK3guLLguKPguLLguJjguJnguYwKK+C4reC4suC4o+C4suC4mOC4meC4sgor4Lit4Liy4Lij4Liy4LihCivguK3guLLguKPguLUKK+C4reC4suC4o+C4uOC4oQor4Lit4Liy4Lil4Lib4LiZ4LmMCivguK3guLLguKXguJvguJnguLAKK+C4reC4suC4peC4sOC4p+C4suC4lAor4Lit4Liy4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLLguKXguLHguKIKK+C4reC4suC4peC4seC4pwor4Lit4Liy4Lil4Li0CivguK3guLLguKXguLUKK+C4reC4suC5guC4peC4gQor4Lit4Liy4LinCivguK3guYjguLLguKcKK+C4reC5ieC4suC4pwor4Lit4Liy4Lin4Lij4LiT4LmMCivguK3guLLguKfguLHguIrguJnguLLguIHguLLguKMKK+C4reC4suC4p+C4suC4qgor4Lit4Liy4Lin4Liy4Lir4LiwCivguK3guLLguKfguLTguKUKK+C4reC4suC4p+C4uOC4lQor4Lit4Liy4Lin4Li44LiYCivguK3guLLguKfguLjguYLguKoKK+C4reC4suC5gOC4p+C4hAor4Lit4Liy4LmA4Lin4LioCivguK3guLLguKjguKPguKEKK+C4reC4suC4qOC4o+C4oeC4muC4lwor4Lit4Liy4Lio4LmA4Lil4Lip4LiyCivguK3guLLguKjguLHguKIKK+C4reC4suC4qOC4uAor4Lit4Liy4LmA4Lio4Li14Lii4LijCivguK3guLLguKnguLLguJIKK+C4reC4suC4quC4meC4sAor4Lit4Liy4Liq4Lig4Li04Lin4Liy4LiI4LiyCivguK3guLLguKrguKLguLLguJnguLjguKrguLHguKIKK+C4reC4suC4quC4p+C4geC4qeC4seC4ogor4Lit4Liy4Liq4Lin4LiB4Li04LmA4Lil4LiqCivguK3guLLguKrguLHguI0KK+C4reC4suC4quC4seC4leC4ouC5jAor4Lit4Liy4Liq4Lix4LiZ4LiZ4LiwCivguK3guLLguKrguLIKK+C4reC4suC4quC4suC4rOC4q+C5jAor4Lit4Liy4Liq4Li04LiN4LiI4LmMCivguK3guLLguKrguLTguJkKK+C4reC4suC4quC4ueC4owor4Lit4Liy4LmA4Liq4Li14LmI4LiiCivguK3guLLguYHguKrguLAKK+C4reC4suC4q+C4lQor4Lit4Liy4Lir4LiV4Li1CivguK3guLLguKvguJnguLUKK+C4reC4suC4q+C4meC4uQor4Lit4Liy4Lir4LihCivguK3guLLguKvguKLguLHguIcKK+C4reC4suC4q+C4ouC4seC4mQor4Lit4Liy4Lir4LijCivguK3guLLguKvguKPguLHguJTguIHguLHguJTguJXguLTguIHguLIKK+C4reC4suC4q+C4o+C4seC4mgor4Lit4Liy4Lir4Lil4Lix4LiB4Lit4Liy4LmA4Lir4Lil4Li34LmI4LitCivguK3guLLguKvguLLguKMKK+C4reC4suC4q+C4uOC4lOC4tQor4Lit4Liy4Lis4Lir4LiBCivguK3guLLguKzguLLguKvguJnguLAKK+C4reC4swor4Lit4LmI4LizCivguK3guLPguYHguJTguIcKK+C4reC4s+C4meC4lAor4Lit4Liz4LiZ4LiZ4LiV4LmMCivguK3guLPguJnguKPguKPguIYKK+C4reC4s+C4meC4p+C4ogor4Lit4Liz4LiZ4Liy4LiICivguK3guLPguJnguLLguJYKK+C4reC4s+C4meC4tOC4kAor4Lit4Liz4LiZ4Li04Lip4LiQ4LmMCivguK3guLPguJvguKXguLHguIcKK+C4reC4s+C4nuC4mQor4Lit4Liz4Lie4Liw4LiZ4LizCivguK3guLPguJ7guLHguJkKK+C4reC4s+C5hOC4ngor4Lit4Liz4LmA4Lig4LitCivguK3guLPguYDguKDguK3guYPguIgKK+C4reC4s+C4oeC4owor4Lit4Liz4Lih4Lik4LiE4LmC4LiK4LiECivguK3guLPguKHguKTguJUKK+C4reC4s+C4oeC4q+C4tOC4lQor4Lit4Liz4Lih4Liy4LiV4Lii4LmMCivguK3guLPguKLguKfguJkKK+C4reC4s+C4o+C4uOC4hwor4Lit4Liz4Lil4LiyCivguK3guLPguK3guKfguKEKK+C4reC5ieC4s+C4reC4tuC5ieC4hwor4Lit4Li04LiBCivguK3guLTguIcKK+C4reC4tOC4h+C4hOC5jAor4Lit4Li04LiH4Lit4LijCivguK3guLTguIjguInguLIKK+C4reC4tOC4ieC4seC4mQor4Lit4Li04LiK4Lii4LiyCivguK3guLTguJAKK+C4reC4tOC4kwor4Lit4Li04LiUCivguK3guLTguJXguJbguLUKK+C4reC4tOC4leC5gOC4l+C4o+C4teC4ouC4oQor4Lit4Li04LiV4LmA4LiX4Lit4Lij4LmM4LmA4Lia4Li14Lii4LihCivguK3guLTguJXguLTguKvguLLguKoKK+C4reC4tOC4l+C4mOC4tAor4Lit4Li04LiY4LmC4Lil4LiBCivguK3guLTguJkKK+C4reC4tOC4meC4i+C4ueC4peC4tOC4mQor4Lit4Li04LiZ4LmA4LiU4Li14LiiCivguK3guLTguJnguYDguJTguLXguKLguJnguYHguJTguIcKK+C4reC4tOC4meC5gOC4lOC4teC4ouC4oQor4Lit4Li04LiZ4LiX4LmMCivguK3guLTguJnguJfguILguLXguKUKK+C4reC4tOC4meC4l+C4meC4tOC4pQor4Lit4Li04LiZ4LiX4LiZ4Li04Lil4LiZ4LmJ4LizCivguK3guLTguJnguJfguJzguKXguLHguKEKK+C4reC4tOC4meC4l+C4o+C5jAor4Lit4Li04LiZ4LiX4Lij4Li1CivguK3guLTguJnguJfguKPguLXguKLguYwKK+C4reC4tOC4meC4l+C4teC4p+C4owor4Lit4Li04LiZ4LiX4Li4CivguK3guLTguJnguJjguJnguYwKK+C4reC4tOC4meC4n+C4o+C4suC5gOC4o+C4lAor4Lit4Li04LiZ4LmB4Lil4Liw4Lir4Lii4Lix4LiHCivguK3guLTguJnguKfguK3guKLguIvguYwKK+C4reC4tOC5iOC4oQor4Lit4Li04Lih4Lix4Lil4LiK4Lix4LiZCivguK3guLTguKPguLTguYDguJTguLXguKLguKEKK+C4reC4tOC4o+C4tOC4ouC4sgor4Lit4Li04Lij4Li44Lie4LmA4Lie4LiXCivguK3guLTguKXguLkKK+C4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4Lit4Li04LmA4Lil4LmH4LiB4LiX4Lij4Lit4LiZ4Li04LiB4Liq4LmMCivguK3guLTguYDguKXguYfguIHguYLguJfguJkKK+C4reC4tOC4qAor4Lit4Li04Lio4LijCivguK3guLTguKjguKfguKMKK+C4reC4tOC4qeC4j+C5jAor4Lit4Li04Lip4LiP4Li1CivguK3guLTguKoKK+C4reC4tOC4quC4leC4o+C4tQor4Lit4Li04Liq4Lij4LiwCivguK3guLTguKrguKPguLTguKLguLAKK+C4reC4tOC4quC4quC4sgor4Lit4Li04Liq4Lix4LiV4Lij4Li1CivguK3guLTguKrguLQKK+C4reC4tOC4quC4tQor4Lit4Li04Lir4Lih4LmI4Liy4LihCivguK3guLUKK+C4reC4teC5iAor4Lit4Li14LmJCivguK3guLXguYoKK+C4reC4teC5iwor4Lit4Li14LiBCivguK3guLXguIHguYnguK0KK+C4reC4teC4geC5i+C4reC4ogor4Lit4Li14LiB4LiyCivguK3guLXguIHguYvguLIKK+C4reC4teC5gOC4geC5ieC4hwor4Lit4Li14LmA4LiB4Lij4LmH4LiHCivguK3guLXguYDguIHguYnguK3guLXguIHguLHguIcKK+C4reC4teC5geC4gQor4Lit4Li14LmB4LiB4LmICivguK3guLXguYHguIHguYkKK+C4reC4teC5guC4geC5ieC4hwor4Lit4Li14LmC4LiB4LmK4LiwCivguK3guLXguITguKfguYjguLPguK3guLXguKvguIfguLLguKIKK+C4reC4teC4iOC4ueC5iQor4Lit4Li14LiJ4Lix4LiZCivguK3guLXguInguLjguKLguK3guLXguYHguInguIEKK+C4reC4teC4iuC4uOC4gQor4Lit4Li14LmK4LiUCivguK3guLXguJTguK3guIEKK+C4reC4teC4lOC4s+C4reC4teC5geC4lOC4hwor4Lit4Li14LiV4Lix4LinCivguK3guLXguJXguLLguKUKK+C4reC4teC5gOC4leC5ieC4rQor4Lit4Li14LmC4LiV4LmJCivguK3guLXguJbguYjguLLguIcKK+C4reC4teC4l+C4uOC4gQor4Lit4Li14LiX4Li44LiaCivguK3guLXguYDguJfguK3guKPguYwKK+C4reC4teC4meC4uOC4h+C4leC4uOC4h+C4meC4seC4hwor4Lit4Li14LiZ4Li54LiZCivguK3guLXguYLguJkKK+C4reC4teC5guC4meC4h+C5guC4leC4h+C5gOC4meC4hwor4Lit4Li14Lia4Li24LmJ4LiHCivguK3guLXguJvguLjguJQKK+C4reC4teC5gOC4m+C5h+C4lAor4Lit4Li14LmA4Lib4LmJ4LiyCivguK3guLXguYHguJvguLAKK+C4reC4teC5guC4m+C4hwor4Lit4Li14LmA4Lie4LiyCivguK3guLXguKHguLkKK+C4reC4teC4o+C4oQor4Lit4Li14Lij4Li44LmJ4LiHCivguK3guLXguYHguKPguJTguYHguIjguYrguJTguYHguIjguYsKK+C4reC4teC5geC4o+C5ieC5geC4l+C5ieC5geC4leC5iAor4Lit4Li14Lil4Lit4LiHCivguK3guLXguKXguYjguK3guKLguJvguYjguK3guKLguYHguK0KK+C4reC4teC4peC4uOC5ieC4oQor4Lit4Li14Lil4Li44LmI4Lii4LiJ4Li44Lii4LmB4LiJ4LiBCivguK3guLXguYDguKXguLTguYnguIcKK+C4reC4teC5geC4peC5iOC4hwor4Lit4Li14LmC4Lil4LiHCivguK3guLXguKjguKfguKMKK+C4reC4teC4qgor4Lit4Li14Liq4LmA4LiV4Lit4Lij4LmMCivguK3guLXguKrguLIKK+C4reC4teC4quC4suC4mQor4Lit4Li14Liq4Li44LiB4Lit4Li14LmD4LiqCivguK3guLXguKvguJnguK3guIfguK3guLXguYHguKvguJnguIcKK+C4reC4teC4q+C4o+C4reC4mgor4Lit4Li14Lir4Lil4Lix4LiB4Lit4Li14LmA4Lir4Lil4Li34LmI4LitCivguK3guLXguKvguKXguLHguJTguJbguLHguJTguJfguLIKK+C4reC4teC4q+C4peC4tQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Lix4LiBCivguK3guLXguKvguKXguLjguIHguILguKXguLjguIHguILguKXguLjguYjguKIKK+C4reC4teC4q+C4peC4uOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lir4LmH4LiZCivguK3guLXguYDguKvguJnguYfguJoKK+C4reC4teC5gOC4q+C4meC4teC4ouC4pwor4Lit4Li14LmA4Lir4Lii4Li14LmI4Lii4LinCivguK3guLXguYDguKvguKXguLDguYDguILguKXguLDguILguKXguLAKK+C4reC4teC5gOC4q+C4peC4sOC5gOC4guC4sOC4guC4sAor4Lit4Li14LmC4Lir4LiZ4LmI4Lit4Li14LmA4Lir4LiZ4LmICivguK3guLXguYLguKvguKXguIHguYLguILguKXguIHguYDguILguKXguIEKK+C4reC4teC5geC4reC5iOC4mQor4Lit4Li2CivguK3guLbguIEKK+C4reC4tuC5iuC4gQor4Lit4Li24LiB4LiX4Li24LiBCivguK3guLbguIHguK3guLHguIEKK+C4reC4tuC4hwor4Lit4Li24LmI4LiHCivguK3guLbguYnguIcKK+C4reC4tuC4lAor4Lit4Li24LiU4LiV4Liw4Lib4Li34LitCivguK3guLbguYnguJTguJfguLbguYjguJQKK+C4reC4tuC4mQor4Lit4Li34LiUCivguK3guLfguYjguJkKK+C4reC4t+C5ieC4mQor4Lit4Li34LitCivguK3guLfguYnguK0KK+C4reC4uAor4Lit4Li44LiBCivguK3guLjguIHguIHguLIKK+C4reC4uOC4geC4pOC4qeC4j+C5jAor4Lit4Li44LiB4Lil4LiyCivguK3guLjguIQKK+C4reC4uOC4hOC4owor4Lit4Li44LiE4Lir4LiZ4Li04Lih4Li04LiVCivguK3guLjguITguKvguLAKK+C4reC4uOC5guC4huC4qQor4Lit4Li44LmJ4LiHCivguK3guLjguIgKK+C4reC4uOC4iOC4iOC4suC4o+C4sAor4Lit4Li44LiI4LiJ4Li4CivguK3guLjguIjguYDguInguJcKK+C4reC4uOC4iOC4suC4lAor4Lit4Li44LiK4Li4CivguK3guLjguI3guInguLLguIjguKPguLTguKLguLIKK+C4reC4uOC4j+C4kOC4suC4geC4suC4owor4Lit4Li44LiT4Lir4LiwCivguK3guLjguJPguKvguLTguKoKK+C4reC4uOC4k+C4sgor4Lit4Li44LiUCivguK3guLjguJTguYDguJXguLIKK+C4reC4uOC4lOC4oQor4Lit4Li44LiU4LijCivguK3guLjguJTguKvguJnguLjguJkKK+C4reC4uOC4lOC4suC4geC4seC4mQor4Lit4Li44LiV4LiU4LihCivguK3guLjguJXguJTguKMKK+C4reC4uOC4leC4leC4oeC4sAor4Lit4Li44LiV4Lia4LilCivguK3guLjguJXguJ7guLTguJQKK+C4reC4uOC4leC4o+C4sgor4Lit4Li44LiV4Lij4Li0CivguK3guLjguJXguKXguLjguJQKK+C4reC4uOC4leC4quC5iOC4suC4q+C5jAor4Lit4Li44LiV4Liq4Liy4Lir4LiwCivguK3guLjguJXguLgKK+C4reC4uOC4l+C4gQor4Lit4Li44LiX4LiX4Liy4LihCivguK3guLjguJfguJjguKPguJPguYwKK+C4reC4uOC4l+C4mOC4seC4iAor4Lit4Li44LiX4Lii4Liy4LiZCivguK3guLjguJfguKMKK+C4reC4uOC4l+C4o+C4tOC4ouC4sAor4Lit4Li44LiX4Lil4Li44LihCivguK3guLjguJfguLHguKIKK+C4reC4uOC4l+C4suC4mQor4Lit4Li44LiX4Liy4LijCivguK3guLjguJfguLLguKvguKPguJPguYwKK+C4reC4uOC4l+C4tOC4qAor4Lit4Li44LiX4Li44Lih4Lie4LijCivguK3guLjguYDguJfguKgKK+C4reC4uOC5gOC4l+C4quC4tOC4geC5gOC4iOC4lOC4teC4ouC5jAor4Lit4Li44LiY4Lix4LiICivguK3guLjguYjguJkKK+C4reC4uOC4meC4suC4geC4seC4mQor4Lit4Li44LiaCivguK3guLjguJrguKUKK+C4reC4uOC4muC4sAor4Lit4Li44Lia4LmK4LiwCivguK3guLjguJrguLHguJXguLQKK+C4reC4uOC4muC4suC4lwor4Lit4Li44Lia4Liy4LiX4Lin4LmMCivguK3guLjguJrguLLguKIKK+C4reC4uOC4muC4suC4quC4gQor4Lit4Li44Lia4Liy4Liq4Li04LiB4LiyCivguK3guLjguYDguJrguIHguILguLIKK+C4reC4uOC5guC4muC4quC4lgor4Lit4Li44LmC4Lia4Liq4LiW4Lir4Lix4LiV4LiW4Li1CivguK3guLjguJsKK+C4reC4uOC4m+C4geC4o+C4k+C5jAor4Lit4Li44Lib4LiB4Lij4LihCivguK3guLjguJvguIHguLLguKMKK+C4reC4uOC4m+C4geC4suC4o+C4sAor4Lit4Li44Lib4LiB4Liy4Lio4Liq4Liy4LijCivguK3guLjguJvguIHguLTguJPguJPguLAKK+C4reC4uOC4m+C4geC4tOC5gOC4peC4qgor4Lit4Li44Lib4LiG4Liy4LiV4LiB4LiB4Lij4Lij4LihCivguK3guLjguJvguIjguLLguKMKK+C4reC4uOC4m+C4luC4seC4oeC4oOC5jAor4Lit4Li44Lib4LiW4Lix4Lih4Lig4LiBCivguK3guLjguJvguJfguKEKK+C4reC4uOC4m+C4l+C4ueC4lQor4Lit4Li44Lib4LmA4LiX4LioCivguK3guLjguJvguYDguJfguYjguKvguYwKK+C4reC4uOC4m+C4mOC4tAor4Lit4Li44Lib4LiY4Li04Lin4Li04LmA4Lin4LiBCivguK3guLjguJvguJnguLHguKIKK+C4reC4uOC4m+C4meC4suC4ouC4gQor4Lit4Li44Lib4LiZ4Liy4Lii4LiZCivguK3guLjguJvguJnguLTguIHguILguLTguJUKK+C4reC4uOC4m+C4meC4tOC4geC4qeC4tOC4lQor4Lit4Li44Lib4LiZ4Li04Lip4Lix4LiXCivguK3guLjguJvguJnguLTguKrguLHguKIKK+C4reC4uOC4m+C4muC4pQor4Lit4Li44Lib4Lia4Lix4LiV4Li0CivguK3guLjguJvguJrguLLguJcKK+C4reC4uOC4m+C4nuC4seC4l+C4mOC5jAor4Lit4Li44Lib4Lie4Lix4LiZ4LiY4LmMCivguK3guLjguJvguKDguLTguYDguKnguIEKK+C4reC4uOC4m+C5guC4oOC4hAor4Lit4Li44Lib4Lih4LiyCivguK3guLjguJvguKHguLLguJkKK+C4reC4uOC4m+C4oeC4suC4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4LmE4Lih4LiiCivguK3guLjguJvguKLguLjguKfguKPguLLguIoKK+C4reC4uOC4m+C5guC4ouC4hAor4Lit4Li44Lib4LmC4Lii4Lij4Liy4LiKCivguK3guLjguJvguKPguLLguIHguKMKK+C4reC4uOC4m+C4o+C4suC4hOC4sgor4Lit4Li44Lib4Lij4Liy4LiKCivguK3guLjguJvguKPguLQKK+C4reC4uOC4m+C5guC4peC4geC4meC5jAor4Lit4Li44Lib4LmC4Lil4LiB4Lir4LmMCivguK3guLjguJvguKrguKHguJrguJcKK+C4reC4uOC4m+C4quC4oeC4muC4seC4mQor4Lit4Li44Lib4Liq4Lij4Lij4LiECivguK3guLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4Lit4Li44Lib4Liu4Liy4LiUCivguK3guLjguJvguLHguIrguIzguLLguKLguYwKK+C4reC4uOC4m+C4seC4iuC4jOC4suC4ouC4sAor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiBCivguK3guLjguJvguLHguI/guJDguLLguJnguLAKK+C4reC4uOC4m+C4seC4l+C4p+C4sAor4Lit4Li44Lib4Liy4LiC4Lii4Liy4LiZCivguK3guLjguJvguLLguJjguKLguLLguKIKK+C4reC4uOC4m+C4suC4ouC4suC4qgor4Lit4Li44Lib4Liy4Lir4LiZ4LiyCivguK3guLjguKDguYLguJXguKrguIfguIbguYwKK+C4reC4uOC4oOC4seC4ogor4Lit4Li44LmJ4LihCivguK3guLjguKHguIfguITguYwKK+C4reC4uOC4oeC4oeC4seC4lQor4Lit4Li44Lih4LiyCivguK3guLjguYLguKHguIfguITguYwKK+C4reC4uOC4ogor4Lit4Li44LmJ4LiiCivguK3guLjguYrguKIKK+C4reC4uOC4ouC4ouC4suC4mQor4Lit4Li44Lii4Lii4Liy4LihCivguK3guLjguKLguYLguKLguIQKK+C4reC4uOC4o+C4hAor4Lit4Li44Lij4LiTCivguK3guLjguKPguJ7guLUKK+C4reC4uOC4o+C4qgor4Lit4Li44Lij4LiwCivguK3guLjguKPguLHguIfguK3guLjguJXguLHguIcKK+C4reC4uOC4o+C4seC4iOC4ieC4l+C4sAor4Lit4Li44Lij4Lix4LiI4LiJ4Lix4LiXCivguK3guLjguKPguLIKK+C4reC4uOC4o+C4uAor4Lit4Li44LmE4LijCivguK3guLjguKXguJvguJnguLAKK+C4reC4uOC4peC5guC4peC4iAor4Lit4Li44Lil4LmC4Lil4Lil4LiwCivguK3guLjguKXguLLguKHguIEKK+C4reC4uOC4peC4tOC4lAor4Lit4Li44Lil4Li54LiBCivguK3guLjguYLguKXguIEKK+C4reC4uOC4p+C4sAor4Lit4Li44LmB4Lin4LmJCivguK3guLjguKnguJPguLXguKnguYwKK+C4reC4uOC4qeC4oQor4Lit4Li44Lip4Lih4Lix4LiZCivguK3guLjguKnguLIKK+C4reC4uOC4qeC4suC4q+C4sAor4Lit4Li44Liq4LigCivguK3guLjguKrguKfguLAKK+C4reC4uOC4quC4quC5iOC4suC4q+C5jAor4Lit4Li44Liq4Liq4Liy4Lir4LiwCivguK3guLjguKrguLIKK+C4reC4uOC4quC4uAor4Lit4Li44Liq4Li44LigCivguK3guLjguKrguLjguKEKK+C4reC4uOC4q+C4o+C4seC4mgor4Lit4Li44Lir4Lil4LiaCivguK3guLjguYDguKvguKHguYgKK+C4reC4uOC4rOC4suC4owor4Lit4Li5CivguK3guLnguYgKK+C4reC4ueC5iQor4Lit4Li54LmLCivguK3guLnguJAKK+C4reC4ueC4lAor4Lit4Li54LihCivguK3guLnguKPguLkKK+C4reC4ueC5i+C4reC4teC5iwor4LmA4LitCivguYDguK3guYkKK+C5gOC4reC5ieC5huC5geC4reC5iOC4mQor4LmA4Lit4LiBCivguYDguK3guYrguIEKK+C5gOC4reC4geC5gOC4guC4meC4gQor4LmA4Lit4LiB4LiI4Lix4LiB4Lip4Li4CivguYDguK3guIHguIjguLTguJUKK+C5gOC4reC4geC4ieC4seC4meC4l+C5jAor4LmA4Lit4LiB4LiK4LiZCivguYDguK3guIHguIvguYLguJsKK+C5gOC4reC4geC4i+C5gOC4o+C4ouC5jAor4LmA4Lit4LiB4LmA4LiX4LioCivguYDguK3guIHguYLguJfguKkKK+C5gOC4reC4geC4meC4seC4ogor4LmA4Lit4LiB4Lia4Li44LiE4LiE4LilCivguYDguK3guIHguJrguLjguKPguLjguKkKK+C5gOC4reC4geC4nuC4iOC4meC5jAor4LmA4Lit4LiB4Lie4Lix4LiZ4LiY4LmMCivguYDguK3guIHguKDguJ4KK+C5gOC4reC4geC4oOC4o+C4tOC4ouC4sgor4LmA4Lit4LiB4Lig4Lix4LiB4LiU4Li04LmMCivguYDguK3guIHguKDguLLguITguLUKK+C5gOC4reC4geC4oOC4suC4ngor4LmA4Lit4LiB4LihCivguYDguK3guIHguKHguJXguLQKK+C5gOC4reC4geC4oeC4seC4ogor4LmA4Lit4LiB4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiECivguYDguK3guIHguKPguKoKK+C5gOC4reC4geC4o+C4sAor4LmA4Lit4LiB4Lij4Liy4LiKCivguYDguK3guIHguKXguLHguIHguKnguJPguYwKK+C5gOC4reC4geC4qOC4gQor4LmA4Lit4LiB4LiqCivguYDguK3guIHguKrguKHguLHguIfguITguLUKK+C5gOC4reC4geC4quC4suC4owor4LmA4Lit4LiB4Liq4Li04LiX4LiY4Li04LmMCivguYDguK3guIHguK3guLHguITguKPguKPguLLguIrguJfguLnguJUKK+C5gOC4reC4geC4reC4uAor4LmA4Lit4LiB4Lix4LiE4LiV4LiyCivguYDguK3guIHguLHguIfguKrguJ7guKLguLLguIHguKPguJPguYwKK+C5gOC4reC4geC4seC4h+C4quC4p+C4suC4l+C4tQor4LmA4Lit4LiB4Lix4LiV4Lig4Liy4LieCivguYDguK3guIHguLIKK+C5gOC4reC5ieC4geC4sgor4LmA4Lit4LiB4Li04LiB4LiyCivguYDguK3guIHguLXguKDguLnguJUKK+C5gOC4reC5gOC4hOC4reC4o+C5jAor4LmA4Lit4LiHCivguYDguK3guYfguIcKK+C5gOC4reC5i+C4hwor4LmA4Lit4LmA4LiK4Li14LmI4Lii4LiZ4LmA4LiB4Lih4Liq4LmMCivguYDguK3guYfguJQKK+C5gOC4reC4lOC4quC5jAor4LmA4Lit4LiV4LiX4Lix4LiE4LiE4LiwCivguYDguK3guYnguYDguJUKK+C5gOC4reC4l+C4tOC4peC5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmA4Lit4LiZCivguYDguK3guYfguJkKK+C5gOC4reC4meC5hOC4i+C4oeC5jAor4LmA4Lit4LmH4LiZ4LiU4Li5CivguYDguK3guJnguJfguKPguLLguJnguIvguYwKK+C5gOC4reC4oQor4LmA4Lit4LmH4Lih4Lia4Lij4Li04LmC4LitCivguYDguK3guKIKK+C5gOC4reC5iOC4ogor4LmA4Lit4LmK4LiiCivguYDguK3guYvguKIKK+C5gOC4reC5gOC4ouC5iOC4meC4leC5jAor4LmA4Lit4Lij4LmH4LiU4Lit4Lij4LmI4Lit4LiiCivguYDguK3guKPguLLguKfguLHguJMKK+C5gOC4reC4peC4sgor4LmA4Lit4Lil4Liy4Lis4Li44LiBCivguYDguK3guKcKK+C5gOC4reC5iuC4pwor4LmA4Lit4Lin4Lix4LiHCivguYDguK3guYnguKvguKHguLbguIcKK+C5gOC4reC4q+C4tOC4m+C4seC4quC4quC4tOC5guC4gQor4LmA4Lit4Lir4Li04Lig4Li04LiB4LiC4Li44Lit4Li44Lib4Liq4Lix4Lih4Lib4LiX4LiyCivguYDguK3guKzguIEKK+C5gOC4reC4rOC4sgor4LmA4Lit4LitCivguYDguK3guYjguK0KK+C5gOC4reC4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4LmA4Lit4LmJ4Lit4Lij4Liw4LmA4Lir4LiiCivguYDguK3guYnguK3guYDguKPguYnguK0KK+C5gOC4reC5ieC4reC5gOC4ruC4rQor4LmA4Lit4LmJ4LmB4Lit4LmI4LiZCivguYDguK3guYrguLAKK+C5gOC4reC4sOC5g+C4iAor4LmA4Lit4Liw4Lit4LiwCivguYDguK3guLIKK+C5gOC4reC5ieC4sgor4LmA4Lit4Liy4LiX4Liy4LijCivguYDguK3guLLguJfguLLguKPguKLguYwKK+C5gOC4reC4suC4o+C4qgor4LmA4Lit4Liy4Lis4Liy4LijCivguYDguK3guLLguLDguKXguLLguKIKK+C5gOC4reC4tOC4gQor4LmA4Lit4Li04LmJ4LiBCivguYDguK3guLTguJkKK+C5gOC4reC4tOC5ieC4mQor4LmA4Lit4Li04LiaCivguYDguK3guLXguKLguIcKK+C5gOC4reC4teC5ieC4ouC4hwor4LmA4Lit4Li14Lii4LiUCivguYDguK3guLXguYrguKLguJQKK+C5gOC4reC4teC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LiZCivguYDguK3guLXguYjguKLguKEKK+C5gOC4reC4teC5iuC4ouC4oQor4LmA4Lit4Li14LmJ4Lii4Lih4LiI4Li44LmK4LiZCivguYDguK3guLXguYnguKLguKHguYDguJ/guLXguYnguKLguKEKK+C5gOC4reC4teC5iOC4ouC4pwor4LmA4Lit4Li14LmJ4Lii4LinCivguYDguK3guLfguYnguK0KK+C5gOC4reC4t+C5ieC4reC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4LiK4Lix4LiZCivguYDguK3guLfguK3guJQKK+C5gOC4reC4t+C4reC4mQor4LmA4Lit4Li34LmJ4Lit4LiZCivguYDguK3guLfguK3guKEKK+C5gOC4reC4t+C5ieC4reC4oQor4LmA4Lit4Li34LmI4Lit4LiiCivguYDguK3guLfguYnguK3guKIKK+C5gOC4reC4t+C5iOC4reC4ouC5hgor4LmB4LitCivguYHguK3guYkKK+C5geC4reC5iwor4LmB4Lit4LiBCivguYHguK3guIHguJfguLTguYDguJnguLXguKLguKEKK+C5geC4reC5iOC4hwor4LmB4Lit4LmJ4LiH4LmB4Lih4LmJ4LiHCivguYHguK3guJQKK+C5geC4reC5ieC4lAor4LmB4Lit4LmK4LiUCivguYHguK3guJTguYYKK+C5geC4reC5iuC4lOC5hgor4LmB4Lit4LmI4LiZCivguYHguK3guJnguJXguLTguYDguIjguJkKK+C5geC4reC4meC4leC4tOC4muC4reC4lOC4tQor4LmB4Lit4LiZ4LiV4Li04Lit4Li04LmA4Lil4LmH4LiB4LiV4Lij4Lit4LiZCivguYHguK3guYjguJnguKXguKEKK+C5geC4reC5guC4meC4lAor4LmB4Lit4LiaCivguYHguK3guYnguKEKK+C5geC4reC4oeC5geC4m+C4o+C5jAor4LmB4Lit4Lih4LmA4Lif4LiV4Liy4Lih4Li14LiZCivguYHguK3guKHguKHguLTguYDguJXguK3guKPguYwKK+C5geC4reC4oeC5guC4oeC5gOC4meC4teC4ogor4LmB4Lit4Lij4LmI4LihCivguYHguK3guKPguYzguYLguK7guKrguYDguJXguKoKK+C5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmB4Lit4Lil4Lif4LiyCivguYHguK3guKcKK+C5geC4reC5iOC4pwor4LmB4Lit4LmJ4Lin4LmB4LiL4LmI4LinCivguYHguK3guKrguJfguLLguJfguLXguJkKK+C5geC4reC4quC5hOC4nuC4o+C4tOC4mQor4LmB4Lit4Liq4Lif4Lix4Lil4LiV4LmMCivguYHguK3guKvguJnguLHguIcKK+C5geC4reC4reC4p+C4ogor4LmB4Lit4Lit4Lix4LiUCivguYLguK0KK+C5guC4reC5iAor4LmC4Lit4LmJCivguYLguK3guYsKK+C5guC4reC4gQor4LmC4Lit4LmJ4LiBCivguYLguK3guYrguIEKK+C5guC4reC4geC4suC4qgor4LmC4Lit4LiG4LiwCivguYLguK3guYjguIcKK+C5guC4reC4h+C4geC4suC4owor4LmC4Lit4LiH4LmC4LiC4LiU4LiHCivguYLguK3guIrguLAKK+C5guC4reC4iuC4sgor4LmC4Lit4LmC4LiL4LiZCivguYLguK3guJAKK+C5guC4reC4lAor4LmC4Lit4LiVCivguYLguK3guJXguJXguLHguJvguJvguLAKK+C5guC4reC4l+C4meC4sAor4LmC4Lit4LiZCivguYLguK3guJoKK+C5guC4reC4m+C4m+C4suC4leC4tOC4geC4sAor4LmC4Lit4LmA4Lib4LiBCivguYLguK3guKDguLIKK+C5guC4reC4oOC4suC4qgor4LmC4Lit4LihCivguYLguK3guKIKK+C5guC4reC5iuC4ogor4LmC4Lit4Lij4LiqCivguYLguK3guKXguLDguJ7guYjguK0KK+C5guC4reC4peC4tOC4oeC4m+C4tOC4gQor4LmC4Lit4LmA4Lil4Li14LmJ4Lii4LiHCivguYLguK3guKfguLLguJcKK+C5guC4reC4qeC4kOC5jAor4LmC4Lit4Liq4LiWCivguYLguK3guKrguLLguJkKK+C5guC4reC4q+C4meC4rQor4LmC4Lit4Lir4LmM4LihCivguYLguK3guKvguLHguIcKK+C5guC4reC4rOC4suC4owor4LmC4Lit4LmJ4LmA4Lit4LmJCivguYLguK3guYDguK3guIvguLTguKoKK+C5guC4reC5ieC5guC4rgor4LmE4LitCivguYTguK3guYnguYDguILguYkKK+C5hOC4reC5guC4i+C5guC4l+C4mwor4LmE4Lit4LiZ4LmM4Liq4LmE4LiV4LmA4LiZ4Li14Lii4LihCivguYTguK3guKLguKPguLIKK+C5hOC4reC4ouC5gOC4o+C4qAor4LmE4Lit4Lij4Liy4Lie4LiVCivguYTguK3guKPguLLguKfguLHguJMKK+C5hOC4reC4qOC4geC4o+C4teC4oQor4LmE4Lit4Lio4Lin4Lij4Lij4Lii4LmMCivguYTguK3guK3guK3guJkKK+C5hOC4reC5guC4reC4lOC4teC4mQor4LiuCivguK7guIHguYDguIHguLXguYnguKLguJkKK+C4ruC4geC4peC4geC4i+C4tOC5iOC4pwor4Liu4LmJ4LiHCivguK7guJQKK+C4ruC4p+C4h+C4i+C4uOC5ieC4ogor4Liu4Lin4LiZCivguK7guYnguKfguJkKK+C4ruC5ieC4p+C4meC4q+C4oeC4uQor4Liu4Lin4LiaCivguK7guKfguKIKK+C4ruC5iOC4rQor4Liu4LmJ4LitCivguK7guK3guIHguIHguLXguYkKK+C4ruC5iOC4reC4hwor4Liu4LmI4Lit4LiH4LmA4LiV4LmJCivguK7guK3guIfguYDguK7guLIKK+C4ruC4reC4lAor4Liu4Lit4LiV4LiU4Lit4LiBCivguK7guYjguK3guKEKK+C4ruC5iOC4reC4oeC4lOC4hwor4Liu4LmI4Lit4Lih4LmA4Lih4Li34Lit4LiHCivguK7guYjguK3guKHguKPguLTguJkKK+C4ruC4reC4o+C5jOC5guC4oeC4mQor4Liu4Lit4Lil4LmB4Lil4LiZ4LiU4LmMCivguK7guK3guKXguLHguJnguJTguLIKK+C4ruC4sAor4Liu4Lix4LiBCivguK7guLHguIHguYYKK+C4ruC4seC4h+C5gOC4pQor4Liu4Lix4LiU4LmA4LiK4LmJ4LiiCivguK7guLHguYjguJkKK+C4ruC4seC5ieC4pwor4Liu4LiyCivguK7guYnguLIKK+C4ruC5iOC4suC5hgor4Liu4LmI4Liy4LiH4Lir4Lil4Lin4LiHCivguK7guLLguKEKK+C4ruC4suC4o+C4suC4hOC4teC4o+C4tQor4Liu4Liy4LmA4Lij4LmH4LihCivguK7guLLguKvguYzguYDguJnguLXguKLguKEKK+C4ruC4tOC5hgor4Liu4Li04LiI4LmA4Lij4Liy4Liw4Lir4LmMCivguK7guLTguJnguJTguLkKK+C4ruC4tOC4m+C4m+C4teC5iQor4Liu4Li04Lib4LmC4Lib4LmC4Lib4LmA4LiV4Lih4Lix4LiqCivguK7guLTguKrguJfguLXguYDguKPguLXguKIKK+C4ruC4teC5iQor4Liu4Li14LmA4Lil4Li14Lii4LihCivguK7guLYKK+C4ruC4tuC4gQor4Liu4Li24LiUCivguK7guLbguKEKK+C4ruC4tuC5iOC4oQor4Liu4Li24LiiCivguK7guLfguJTguK7guLLguJQKK+C4ruC4t+C4rQor4Liu4Li34LmI4LitCivguK7guLfguYnguK0KK+C4ruC4uOC4lAor4Liu4Li44LiaCivguK7guLjguKLguYDguKXguK7guLjguKIKK+C4ruC4ueC5iQor4Liu4Li54LiBCivguK7guLnguKEKK+C5gOC4rgor4LmA4Liu4LmJCivguYDguK7guIHguJXguLLguKPguYwKK+C5gOC4ruC4geC5guC4leC4geC4o+C4seC4oQor4LmA4Liu4LiB4LmC4LiV4LmA4Lih4LiV4LijCivguYDguK7guIHguYLguJXguKXguLTguJXguKMKK+C5gOC4ruC4hwor4LmA4Liu4LmC4Lih4LmC4LiB4Lil4Lia4Li04LiZCivguYDguK7guKIKK+C5gOC4ruC5ieC4ogor4LmA4Liu4LmC4Lij4Lit4Li14LiZCivguYDguK7guKXguLTguITguK3guJvguYDguJXguK3guKPguYwKK+C5gOC4ruC5ieC4pwor4LmA4Liu4LitCivguYDguK7guYnguK0KK+C5gOC4ruC4tOC4o+C4leC4i+C5jAor4LmA4Liu4Li14LiiCivguYDguK7guLXguYnguKLguJkKK+C5gOC4ruC4teC5ieC4ouC4mgor4LmA4Liu4Li14LmJ4Lii4LinCivguYDguK7guLfguK3guIEKK+C5gOC4ruC4t+C4reC4mQor4LmB4LiuCivguYHguK7guYgKK+C5geC4ruC5iOC4geC4tuC5iuC4mQor4LmB4Liu4LiZ4LiU4LmM4Lia4Lit4LilCivguYHguK7guJ/guYDguJnguLXguKLguKEKK+C5geC4ruC4oQor4LmB4Liu4Lih4LmA4Lia4Lit4Lij4LmM4LmA4LiB4Lit4Lij4LmMCivguYHguK7guLAKK+C5guC4rgor4LmC4Liu4LiBCivguYLguK7guYDguJXguYfguKUKK+C5guC4ruC4peC5gOC4oeC4teC4ouC4oQor4LmC4Liu4LiwCivguYTguK7guYkKK+C5hOC4ruC5guC4geC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LiU4LmM4Lib4Liy4Lij4LmM4LiBCivguYTguK7guJTguKPguLIKK+C5hOC4ruC5guC4lOC4o+C4hOC4suC4o+C5jOC4muC4reC4mQor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZCivguYTguK7guYLguJTguKPguYDguIjguJnguIvguLHguKXguYTguJ/guJTguYwKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC5gOC4nuC4reC4o+C5jOC4reC4reC4geC5hOC4i+C4lOC5jAor4LmE4Liu4LmC4LiU4Lij4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYTguK7guYTguJ8KK+C5hOC4ruC5guC4pQor4LmE4Liu4Liu4Li1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YWY3YmMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjA1MjhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dApAQCAtMCwwICsxLDE3OSBAQAorIyBDb21wb3NpdGlvbkV4Y2x1c2lvbnMtNC4xLjAudHh0CisjIERhdGU6IDIwMDUtMDMtMTcsIDE1OjIxOjAwIFBTVCBbS1ddCisjCisjIFRoaXMgZmlsZSBsaXN0cyB0aGUgY2hhcmFjdGVycyBmcm9tIHRoZSBVQVggIzE1IENvbXBvc2l0aW9uIEV4Y2x1c2lvbiBUYWJsZS4KKyMKKyMgVGhpcyBmaWxlIGlzIGEgbm9ybWF0aXZlIGNvbnRyaWJ1dG9yeSBkYXRhIGZpbGUgaW4gdGhlCisjIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorIworIyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuCisjIEZvciB0ZXJtcyBvZiB1c2UsIHNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Rlcm1zX29mX3VzZS5odG1sCisjCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyMgaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8jUHJpbWFyeSBFeGNsdXNpb24gTGlzdCBUYWJsZQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyAoMSkgU2NyaXB0IFNwZWNpZmljcworIyBUaGlzIGxpc3Qgb2YgY2hhcmFjdGVycyBjYW5ub3QgYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworMDk1OCAgICAjICBERVZBTkFHQVJJIExFVFRFUiBRQQorMDk1OSAgICAjICBERVZBTkFHQVJJIExFVFRFUiBLSEhBCiswOTVBICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIEdISEEKKzA5NUIgICAgIyAgREVWQU5BR0FSSSBMRVRURVIgWkEKKzA5NUMgICAgIyAgREVWQU5BR0FSSSBMRVRURVIgRERESEEKKzA5NUQgICAgIyAgREVWQU5BR0FSSSBMRVRURVIgUkhBCiswOTVFICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIEZBCiswOTVGICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIFlZQQorMDlEQyAgICAjICBCRU5HQUxJIExFVFRFUiBSUkEKKzA5REQgICAgIyAgQkVOR0FMSSBMRVRURVIgUkhBCiswOURGICAgICMgIEJFTkdBTEkgTEVUVEVSIFlZQQorMEEzMyAgICAjICBHVVJNVUtISSBMRVRURVIgTExBCiswQTM2ICAgICMgIEdVUk1VS0hJIExFVFRFUiBTSEEKKzBBNTkgICAgIyAgR1VSTVVLSEkgTEVUVEVSIEtISEEKKzBBNUEgICAgIyAgR1VSTVVLSEkgTEVUVEVSIEdISEEKKzBBNUIgICAgIyAgR1VSTVVLSEkgTEVUVEVSIFpBCiswQTVFICAgICMgIEdVUk1VS0hJIExFVFRFUiBGQQorMEI1QyAgICAjICBPUklZQSBMRVRURVIgUlJBCiswQjVEICAgICMgIE9SSVlBIExFVFRFUiBSSEEKKzBGNDMgICAgIyAgVElCRVRBTiBMRVRURVIgR0hBCiswRjREICAgICMgIFRJQkVUQU4gTEVUVEVSIERESEEKKzBGNTIgICAgIyAgVElCRVRBTiBMRVRURVIgREhBCiswRjU3ICAgICMgIFRJQkVUQU4gTEVUVEVSIEJIQQorMEY1QyAgICAjICBUSUJFVEFOIExFVFRFUiBEWkhBCiswRjY5ICAgICMgIFRJQkVUQU4gTEVUVEVSIEtTU0EKKzBGNzYgICAgIyAgVElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorMEY3OCAgICAjICBUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMCiswRjkzICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEEKKzBGOUQgICAgIyAgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEEKKzBGQTIgICAgIyAgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERIQQorMEZBNyAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkhBCiswRkFDICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEWkhBCiswRkI5ICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLU1NBCitGQjFEICAgICMgIEhFQlJFVyBMRVRURVIgWU9EIFdJVEggSElSSVEKK0ZCMUYgICAgIyAgSEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSAorRkIyQSAgICAjICBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSElOIERPVAorRkIyQiAgICAjICBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSU4gRE9UCitGQjJDICAgICMgIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0hJTiBET1QKK0ZCMkQgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSU4gRE9UCitGQjJFICAgICMgIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFBBVEFICitGQjJGICAgICMgIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUworRkIzMCAgICAjICBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBNQVBJUQorRkIzMSAgICAjICBIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIERBR0VTSAorRkIzMiAgICAjICBIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNICitGQjMzICAgICMgIEhFQlJFVyBMRVRURVIgREFMRVQgV0lUSCBEQUdFU0gKK0ZCMzQgICAgIyAgSEVCUkVXIExFVFRFUiBIRSBXSVRIIE1BUElRCitGQjM1ICAgICMgIEhFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNICitGQjM2ICAgICMgIEhFQlJFVyBMRVRURVIgWkFZSU4gV0lUSCBEQUdFU0gKK0ZCMzggICAgIyAgSEVCUkVXIExFVFRFUiBURVQgV0lUSCBEQUdFU0gKK0ZCMzkgICAgIyAgSEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0gKK0ZCM0EgICAgIyAgSEVCUkVXIExFVFRFUiBGSU5BTCBLQUYgV0lUSCBEQUdFU0gKK0ZCM0IgICAgIyAgSEVCUkVXIExFVFRFUiBLQUYgV0lUSCBEQUdFU0gKK0ZCM0MgICAgIyAgSEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSAorRkIzRSAgICAjICBIRUJSRVcgTEVUVEVSIE1FTSBXSVRIIERBR0VTSAorRkI0MCAgICAjICBIRUJSRVcgTEVUVEVSIE5VTiBXSVRIIERBR0VTSAorRkI0MSAgICAjICBIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSAorRkI0MyAgICAjICBIRUJSRVcgTEVUVEVSIEZJTkFMIFBFIFdJVEggREFHRVNICitGQjQ0ICAgICMgIEhFQlJFVyBMRVRURVIgUEUgV0lUSCBEQUdFU0gKK0ZCNDYgICAgIyAgSEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSAorRkI0NyAgICAjICBIRUJSRVcgTEVUVEVSIFFPRiBXSVRIIERBR0VTSAorRkI0OCAgICAjICBIRUJSRVcgTEVUVEVSIFJFU0ggV0lUSCBEQUdFU0gKK0ZCNDkgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNICitGQjRBICAgICMgIEhFQlJFVyBMRVRURVIgVEFWIFdJVEggREFHRVNICitGQjRCICAgICMgIEhFQlJFVyBMRVRURVIgVkFWIFdJVEggSE9MQU0KK0ZCNEMgICAgIyAgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFCitGQjREICAgICMgIEhFQlJFVyBMRVRURVIgS0FGIFdJVEggUkFGRQorRkI0RSAgICAjICBIRUJSRVcgTEVUVEVSIFBFIFdJVEggUkFGRQorCisjIFRvdGFsIGNvZGUgcG9pbnRzOiA2NworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAoMikgUG9zdCBDb21wb3NpdGlvbiBWZXJzaW9uIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW5ub3QgYmUgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgVW5pY29kZURhdGEudHh0IGZpbGUKKyMgaW4gdGhpcyB2ZXJzaW9uIG9mIFVuaWNvZGUuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisyQURDICAgICMgIEZPUktJTkcKKzFEMTVFICAgIyAgTVVTSUNBTCBTWU1CT0wgSEFMRiBOT1RFCisxRDE1RiAgICMgIE1VU0lDQUwgU1lNQk9MIFFVQVJURVIgTk9URQorMUQxNjAgICAjICBNVVNJQ0FMIFNZTUJPTCBFSUdIVEggTk9URQorMUQxNjEgICAjICBNVVNJQ0FMIFNZTUJPTCBTSVhURUVOVEggTk9URQorMUQxNjIgICAjICBNVVNJQ0FMIFNZTUJPTCBUSElSVFktU0VDT05EIE5PVEUKKzFEMTYzICAgIyAgTVVTSUNBTCBTWU1CT0wgU0lYVFktRk9VUlRIIE5PVEUKKzFEMTY0ICAgIyAgTVVTSUNBTCBTWU1CT0wgT05FIEhVTkRSRUQgVFdFTlRZLUVJR0hUSCBOT1RFCisxRDFCQiAgICMgIE1VU0lDQUwgU1lNQk9MIE1JTklNQQorMUQxQkMgICAjICBNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgQkxBQ0sKKzFEMUJEICAgIyAgTVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBXSElURQorMUQxQkUgICAjICBNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIEJMQUNLCisxRDFCRiAgICMgIE1VU0lDQUwgU1lNQk9MIEZVU0EgV0hJVEUKKzFEMUMwICAgIyAgTVVTSUNBTCBTWU1CT0wgRlVTQSBCTEFDSworCisjIFRvdGFsIGNvZGUgcG9pbnRzOiAxNAorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAoMykgU2luZ2xldG9uIERlY29tcG9zaXRpb25zCisjIFRoZXNlIGNoYXJhY3RlcnMgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZQorIyBieSBpbmNsdWRpbmcgYWxsIGNoYXJhY3RlcnMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb24KKyMgY29uc2lzdHMgb2YgYSBzaW5nbGUgY2hhcmFjdGVyLgorIyBUaGVzZSBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkgcXVvdGVkIGhlcmUgZm9yIHJlZmVyZW5jZS4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgMDM0MC4uMDM0MSAgICAgICBbMl0gQ09NQklOSU5HIEdSQVZFIFRPTkUgTUFSSy4uQ09NQklOSU5HIEFDVVRFIFRPTkUgTUFSSworIyAwMzQzICAgICAgICAgICAgICAgICBDT01CSU5JTkcgR1JFRUsgS09ST05JUworIyAwMzc0ICAgICAgICAgICAgICAgICBHUkVFSyBOVU1FUkFMIFNJR04KKyMgMDM3RSAgICAgICAgICAgICAgICAgR1JFRUsgUVVFU1RJT04gTUFSSworIyAwMzg3ICAgICAgICAgICAgICAgICBHUkVFSyBBTk8gVEVMRUlBCisjIDFGNzEgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEKKyMgMUY3MyAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCisjIDFGNzUgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBCisjIDFGNzcgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQQorIyAxRjc5ICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKKyMgMUY3QiAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisjIDFGN0QgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEKKyMgMUZCQiAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisjIDFGQkUgICAgICAgICAgICAgICAgIEdSRUVLIFBST1NHRUdSQU1NRU5JCisjIDFGQzkgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCisjIDFGQ0IgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIE9YSUEKKyMgMUZEMyAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKyMgMUZEQiAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKyMgMUZFMyAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKyMgMUZFQiAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUEKKyMgMUZFRS4uMUZFRiAgICAgICBbMl0gR1JFRUsgRElBTFlUSUtBIEFORCBPWElBLi5HUkVFSyBWQVJJQQorIyAxRkY5ICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQQorIyAxRkZCICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEKKyMgMUZGRCAgICAgICAgICAgICAgICAgR1JFRUsgT1hJQQorIyAyMDAwLi4yMDAxICAgICAgIFsyXSBFTiBRVUFELi5FTSBRVUFECisjIDIxMjYgICAgICAgICAgICAgICAgIE9ITSBTSUdOCisjIDIxMkEuLjIxMkIgICAgICAgWzJdIEtFTFZJTiBTSUdOLi5BTkdTVFJPTSBTSUdOCisjIDIzMjkgICAgICAgICAgICAgICAgIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVAorIyAyMzJBICAgICAgICAgICAgICAgICBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUCisjIEY5MDAuLkZBMEQgICAgIFsyNzBdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAwLi5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRAorIyBGQTEwICAgICAgICAgICAgICAgICBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMAorIyBGQTEyICAgICAgICAgICAgICAgICBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMgorIyBGQTE1Li5GQTFFICAgICAgWzEwXSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNS4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUUKKyMgRkEyMCAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjAKKyMgRkEyMiAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjIKKyMgRkEyNS4uRkEyNiAgICAgICBbMl0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjUuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI2CisjIEZBMkEuLkZBMkQgICAgICAgWzRdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJBLi5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyRAorIyBGQTMwLi5GQTZBICAgICAgWzU5XSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMC4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNkEKKyMgRkE3MC4uRkFEOSAgICAgWzEwNl0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzAuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ5CisjIDJGODAwLi4yRkExRCAgIFs1NDJdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMC4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFECisKKyMgVG90YWwgY29kZSBwb2ludHM6IDkyNAorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAoNCkgTm9uLVN0YXJ0ZXIgRGVjb21wb3NpdGlvbnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlCisjIGJ5IGluY2x1ZGluZyBhbGwgY2hhcmFjdGVycyB3aG9zZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBjb25zaXN0cworIyBvZiBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsIHRoZSBmaXJzdCBvZiB3aGljaCBoYXMgYSBub24temVybworIyBjb21iaW5pbmcgY2xhc3MuCisjIFRoZXNlIGNoYXJhY3RlcnMgYXJlIHNpbXBseSBxdW90ZWQgaGVyZSBmb3IgcmVmZXJlbmNlLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyAwMzQ0ICAgICAgICAgICAgICAgICBDT01CSU5JTkcgR1JFRUsgRElBTFlUSUtBIFRPTk9TCisjIDBGNzMgICAgICAgICAgICAgICAgIFRJQkVUQU4gVk9XRUwgU0lHTiBJSQorIyAwRjc1ICAgICAgICAgICAgICAgICBUSUJFVEFOIFZPV0VMIFNJR04gVVUKKyMgMEY4MSAgICAgICAgICAgICAgICAgVElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIElJCisKKyMgVG90YWwgY29kZSBwb2ludHM6IDQKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM5MWFjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQKQEAgLTAsMCArMSw0OCBAQAorIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4xLjAudHh0CisjIERhdGU6IDIwMDUtMDMtMTcsIDE1OjIxOjAwIFBTVCBbS1ddCisjCisjIFRoaXMgZmlsZSBpcyBhIG5vcm1hdGl2ZSBjb250cmlidXRvcnkgZGF0YSBmaWxlIGluIHRoZQorIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyMKKyMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLgorIyBGb3IgdGVybXMgb2YgdXNlLCBzZWUgaHR0cDovL3d3dy51bmljb2RlLm9yZy90ZXJtc19vZl91c2UuaHRtbAorIworIyBUaGUgbm9ybWFsaXphdGlvbiBzdGFiaWxpemF0aW9uIHBvbGljeSBvZiB0aGUgVW5pY29kZQorIyBDb25zb3J0aXVtIG9yZGluYXJpbHkgcHJlY2x1ZGVzIGFueSBjaGFuZ2UgdG8gdGhlIGRlY29tcG9zaXRpb24KKyMgZm9yIGFueSBjaGFyYWN0ZXIsIG9uY2UgZXN0YWJsaXNoZWQgaW4gYSByZWxldmFudCB2ZXJzaW9uCisjIG9mIHRoZSBVbmljb2RlRGF0YS50eHQgZGF0YSBmaWxlLiBIb3dldmVyLCB1bmRlciBjZXJ0YWluCisjIGV4Y2VwdGlvbmFsIChhbmQgcmFyZSkgY29uZGl0aW9ucywgYW4gZXJyb3IgaW4gYSBkZWNvbXBvc2l0aW9uCisjIG1hcHBpbmcgbWF5IGJlIGRpc2NvdmVyZWQgdGhhdCBpcyB0cnVseSBqdXN0IGFuIHVuaW50ZW5kZWQKKyMgdHlwbyBpbiB0aGUgZGF0YSwgYW5kIG5vdCBhIG1hdHRlciBvZiBkdWJpb3VzIGludGVycHJldGF0aW9uLgorIworIyBXaGVuZXZlciBzdWNoIGFuIGVycm9yIG1heSBiZSBmb3VuZCwgYW5kIGlmIGl0IG1lZXRzIHRoZQorIyByZXF1aXJlbWVudHMgZm9yIHBvc3NpYmxlIGV4Y2VwdGlvbnMgdG8gbm9ybWFsaXphdGlvbgorIyBzdGFiaWxpdHksIHRoZSBjb3JyZWN0aW9uIGlzIGVudGVyZWQgaW4gdGhpcyBkYXRhIGZpbGUsCisjIHNvIHRoYXQgYW55IGltcGxlbWVudGF0aW9uIGRlcGVuZGluZyBvbiBhYnNvbHV0ZSBzdGFiaWxpdHkKKyMgb2Ygbm9ybWFsaXphdGlvbiwgKmluY2x1ZGluZyogYW55IGVycm9ycyBpbiB0aGUgZGF0YSwgY2FuCisjIHNhZmVseSByZWNvbnN0cnVjdCB0aGUgZXhhY3Qgc3RhdGUgb2YgdGhlIGRhdGEgdGFibGVzIGF0CisjIGFueSBnaXZlbiB2ZXJzaW9uIG9mIFVuaWNvZGUuCisjCisjIEN1cnJlbnRseSB0aGlzIGxpc3QgaGFzIGV4YWN0bHkgc2l4IGVudHJpZXMgaW4gaXQsIG9uZSBmb3IgdGhlCisjIHR5cG8gZm91bmQgYW5kIGNvcnJlY3RlZCBpbiBDb3JyaWdlbmR1bSAjMywgYW5kIGZpdmUgZm9yCisjIHRoZSB0eXBvcyBhbmQgbWlzaWRlbnRpZmljYXRpb25zIGZvdW5kIGFuZCBjb3JyZWN0ZWQgaW4gCisjIENvcnJpZ2VuZHVtICM0LiBBbGwgZWZmb3J0cworIyB3aWxsIGJlIG1hZGUgdG8ga2VlcCB0aGUgZW50cmllcyBsaW1pdGVkIHRvIGp1c3QgdGhvc2UgZml4ZXMuCisjCisjIEludGVycHJldGF0aW9uIG9mIHRoZSBmaWVsZHM6CisjICAgRmllbGQgMTogVW5pY29kZSBjb2RlIHBvaW50CisjICAgRmllbGQgMjogT3JpZ2luYWwgKGVycm9uZW91cykgZGVjb21wb3NpdGlvbgorIyAgIEZpZWxkIDM6IENvcnJlY3RlZCBkZWNvbXBvc2l0aW9uCisjICAgRmllbGQgNDogVmVyc2lvbiBvZiBVbmljb2RlIGZvciB3aGljaCB0aGUgY29ycmVjdGlvbiB3YXMKKyMgICAgICAgICAgICBlbnRlcmVkIGludG8gVW5pY29kZURhdGEudHh0LCBpbiBuLm4ubiBmb3JtYXQuCisjICAgQ29tbWVudDogSW5kaWNhdGVzIHRoZSBVbmljb2RlIENvcnJpZ2VuZHVtIHdoaWNoIGRvY3VtZW50cyAKKyMgICAgICAgICAgICB0aGUgY29ycmVjdGlvbgorIworIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMTUsIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3Jtcy4KKyMKK0Y5NTE7OTZGQjs5NjRCOzMuMi4wICMgQ29ycmlnZW5kdW0gMworMkY4Njg7MjEzNkE7MzZGQzs0LjAuMCAjIENvcnJpZ2VuZHVtIDQKKzJGODc0OzVGMzM7NUY1Mzs0LjAuMCAjIENvcnJpZ2VuZHVtIDQKKzJGOTFGOzQzQUI7MjQzQUI7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjk1Rjs3QUFFOzdBRUU7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjlCRjs0RDU3OzQ1RDc7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM4NTBmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LTMuMi4wLnR4dApAQCAtMCwwICsxLDE3MDQyIEBACisjIE5vcm1hbGl6YXRpb25UZXN0LTMuMi4wLnR4dAorIyBEYXRlOiAyMDAyLTAzLTE5LDIzOjMxOjE4IEdNVCBbTURdCisjCisjIE5vdGU6IENvZGUgcG9pbnRzIHdob3NlIGRlY29tcG9zaXRpb24gY2hhbmdlZCBzaW5jZSB0aGUgVW5pY29kZSB2ZXJzaW9uCisjIGZvciB0aGlzIE5vcm1hbGl6YXRpb25UZXN0LnR4dCBhcmUgY29tbWVudGVkIG91dCBhbmQgYXJlIG9ubHkgdGVzdGVkIHdpdGgKKyMgdGhlIGN1cnJlbnQgTm9ybWFsaXphdGlvblRlc3QudHh0IGluIGljdS9zb3VyY2UvZGF0YS91bmlkYXRhLy4KKyMgU2VlIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQKKyMgYW5kIHNlYXJjaCBmb3IgIk5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucyIgaW4gdGhpcyBmaWxlLgorIyBtYXJrdXMgMjAwM21hcjA1CisjCisjIE5vcm1hbGl6YXRpb24gVGVzdCBTdWl0ZQorIyBGb3JtYXQ6CisjCisjICAgQ29sdW1ucyAoYzEsIGMyLC4uLikgYXJlIHNlcGFyYXRlZCBieSBzZW1pY29sb25zCisjICAgQ29tbWVudHMgYXJlIGluZGljYXRlZCB3aXRoIGhhc2ggbWFya3MKKyMKKyMgQ09ORk9STUFOQ0U6CisjIDEuIFRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50IGltcGxlbWVudGF0aW9ucworIworIyAgICBORkMKKyMgICAgICBjMiA9PSAgTkZDKGMxKSA9PSAgTkZDKGMyKSA9PSAgTkZDKGMzKQorIyAgICAgIGM0ID09ICBORkMoYzQpID09ICBORkMoYzUpCisjCisjICAgIE5GRAorIyAgICAgIGMzID09ICBORkQoYzEpID09ICBORkQoYzIpID09ICBORkQoYzMpCisjICAgICAgYzUgPT0gIE5GRChjNCkgPT0gIE5GRChjNSkKKyMKKyMgICAgTkZLQworIyAgICAgIGM0ID09IE5GS0MoYzEpID09IE5GS0MoYzIpID09IE5GS0MoYzMpID09IE5GS0MoYzQpID09IE5GS0MoYzUpCisjCisjICAgIE5GS0QKKyMgICAgICBjNSA9PSBORktEKGMxKSA9PSBORktEKGMyKSA9PSBORktEKGMzKSA9PSBORktEKGM0KSA9PSBORktEKGM1KQorIworIyAyLiBGb3IgZXZlcnkgYXNzaWduZWQgVW5pY29kZSAzLjEuMCBjb2RlIHBvaW50IFggdGhhdCBpcyBub3Qgc3BlY2lmaWNhbGx5CisjICAgIGxpc3RlZCBpbiBQYXJ0IDEsIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50CisjICAgIGltcGxlbWVudGF0aW9uczoKKyMKKyMgICAgICBYID09IE5GQyhYKSA9PSBORkQoWCkgPT0gTkZLQyhYKSA9PSBORktEKFgpCisjCitAUGFydDAgIyBTcGVjaWZpYyBjYXNlcworIworMUUwQTsxRTBBOzAwNDQgMDMwNzsxRTBBOzAwNDQgMDMwNzsKKzFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7CisxRTBBIDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzFFMEMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMDA0NCAwMzA3IDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CisxRTBBIDAzMUI7MUUwQSAwMzFCOzAwNDQgMDMxQiAwMzA3OzFFMEEgMDMxQjswMDQ0IDAzMUIgMDMwNzsKKzFFMEMgMDMxQjsxRTBDIDAzMUI7MDA0NCAwMzFCIDAzMjM7MUUwQyAwMzFCOzAwNDQgMDMxQiAwMzIzOworMUUwQSAwMzFCIDAzMjM7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMUUwQyAwMzFCIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDA0NCAwMzFCIDAzMDcgMDMyMzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMTEyOzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMUUxNDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CiswMTEyIDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMUUxNCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OworMDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMDA0NSAwMzAwIDAzMDQ7MDBDOCAwMzA0OzAwNDUgMDMwMCAwMzA0OzAwQzggMDMwNDswMDQ1IDAzMDAgMDMwNDsKKzA1QjggMDVCOSAwNUIxIDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7CiswNTkyIDA1QjcgMDVCQyAwNUE1IDA1QjAgMDVDMCAwNUM0IDA1QUQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OworIworQFBhcnQxICMgQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0CisjIEFsbCBjaGFyYWN0ZXJzIG5vdCBleHBsaWNpdGx5IG9jY3VycmluZyBpbiBjMSBvZiBQYXJ0IDEgaGF2ZSBpZGVudGljYWwgTkZDLCBELCBLQywgS0QgZm9ybXMuCisjCiswMEEwOzAwQTA7MDBBMDswMDIwOzAwMjA7CiswMEE4OzAwQTg7MDBBODswMDIwIDAzMDg7MDAyMCAwMzA4OworMDBBQTswMEFBOzAwQUE7MDA2MTswMDYxOworMDBBRjswMEFGOzAwQUY7MDAyMCAwMzA0OzAwMjAgMDMwNDsKKzAwQjI7MDBCMjswMEIyOzAwMzI7MDAzMjsKKzAwQjM7MDBCMzswMEIzOzAwMzM7MDAzMzsKKzAwQjQ7MDBCNDswMEI0OzAwMjAgMDMwMTswMDIwIDAzMDE7CiswMEI1OzAwQjU7MDBCNTswM0JDOzAzQkM7CiswMEI4OzAwQjg7MDBCODswMDIwIDAzMjc7MDAyMCAwMzI3OworMDBCOTswMEI5OzAwQjk7MDAzMTswMDMxOworMDBCQTswMEJBOzAwQkE7MDA2RjswMDZGOworMDBCQzswMEJDOzAwQkM7MDAzMSAyMDQ0IDAwMzQ7MDAzMSAyMDQ0IDAwMzQ7CiswMEJEOzAwQkQ7MDBCRDswMDMxIDIwNDQgMDAzMjswMDMxIDIwNDQgMDAzMjsKKzAwQkU7MDBCRTswMEJFOzAwMzMgMjA0NCAwMDM0OzAwMzMgMjA0NCAwMDM0OworMDBDMDswMEMwOzAwNDEgMDMwMDswMEMwOzAwNDEgMDMwMDsKKzAwQzE7MDBDMTswMDQxIDAzMDE7MDBDMTswMDQxIDAzMDE7CiswMEMyOzAwQzI7MDA0MSAwMzAyOzAwQzI7MDA0MSAwMzAyOworMDBDMzswMEMzOzAwNDEgMDMwMzswMEMzOzAwNDEgMDMwMzsKKzAwQzQ7MDBDNDswMDQxIDAzMDg7MDBDNDswMDQxIDAzMDg7CiswMEM1OzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMDBDNzswMEM3OzAwNDMgMDMyNzswMEM3OzAwNDMgMDMyNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMEM5OzAwQzk7MDA0NSAwMzAxOzAwQzk7MDA0NSAwMzAxOworMDBDQTswMENBOzAwNDUgMDMwMjswMENBOzAwNDUgMDMwMjsKKzAwQ0I7MDBDQjswMDQ1IDAzMDg7MDBDQjswMDQ1IDAzMDg7CiswMENDOzAwQ0M7MDA0OSAwMzAwOzAwQ0M7MDA0OSAwMzAwOworMDBDRDswMENEOzAwNDkgMDMwMTswMENEOzAwNDkgMDMwMTsKKzAwQ0U7MDBDRTswMDQ5IDAzMDI7MDBDRTswMDQ5IDAzMDI7CiswMENGOzAwQ0Y7MDA0OSAwMzA4OzAwQ0Y7MDA0OSAwMzA4OworMDBEMTswMEQxOzAwNEUgMDMwMzswMEQxOzAwNEUgMDMwMzsKKzAwRDI7MDBEMjswMDRGIDAzMDA7MDBEMjswMDRGIDAzMDA7CiswMEQzOzAwRDM7MDA0RiAwMzAxOzAwRDM7MDA0RiAwMzAxOworMDBENDswMEQ0OzAwNEYgMDMwMjswMEQ0OzAwNEYgMDMwMjsKKzAwRDU7MDBENTswMDRGIDAzMDM7MDBENTswMDRGIDAzMDM7CiswMEQ2OzAwRDY7MDA0RiAwMzA4OzAwRDY7MDA0RiAwMzA4OworMDBEOTswMEQ5OzAwNTUgMDMwMDswMEQ5OzAwNTUgMDMwMDsKKzAwREE7MDBEQTswMDU1IDAzMDE7MDBEQTswMDU1IDAzMDE7CiswMERCOzAwREI7MDA1NSAwMzAyOzAwREI7MDA1NSAwMzAyOworMDBEQzswMERDOzAwNTUgMDMwODswMERDOzAwNTUgMDMwODsKKzAwREQ7MDBERDswMDU5IDAzMDE7MDBERDswMDU5IDAzMDE7CiswMEUwOzAwRTA7MDA2MSAwMzAwOzAwRTA7MDA2MSAwMzAwOworMDBFMTswMEUxOzAwNjEgMDMwMTswMEUxOzAwNjEgMDMwMTsKKzAwRTI7MDBFMjswMDYxIDAzMDI7MDBFMjswMDYxIDAzMDI7CiswMEUzOzAwRTM7MDA2MSAwMzAzOzAwRTM7MDA2MSAwMzAzOworMDBFNDswMEU0OzAwNjEgMDMwODswMEU0OzAwNjEgMDMwODsKKzAwRTU7MDBFNTswMDYxIDAzMEE7MDBFNTswMDYxIDAzMEE7CiswMEU3OzAwRTc7MDA2MyAwMzI3OzAwRTc7MDA2MyAwMzI3OworMDBFODswMEU4OzAwNjUgMDMwMDswMEU4OzAwNjUgMDMwMDsKKzAwRTk7MDBFOTswMDY1IDAzMDE7MDBFOTswMDY1IDAzMDE7CiswMEVBOzAwRUE7MDA2NSAwMzAyOzAwRUE7MDA2NSAwMzAyOworMDBFQjswMEVCOzAwNjUgMDMwODswMEVCOzAwNjUgMDMwODsKKzAwRUM7MDBFQzswMDY5IDAzMDA7MDBFQzswMDY5IDAzMDA7CiswMEVEOzAwRUQ7MDA2OSAwMzAxOzAwRUQ7MDA2OSAwMzAxOworMDBFRTswMEVFOzAwNjkgMDMwMjswMEVFOzAwNjkgMDMwMjsKKzAwRUY7MDBFRjswMDY5IDAzMDg7MDBFRjswMDY5IDAzMDg7CiswMEYxOzAwRjE7MDA2RSAwMzAzOzAwRjE7MDA2RSAwMzAzOworMDBGMjswMEYyOzAwNkYgMDMwMDswMEYyOzAwNkYgMDMwMDsKKzAwRjM7MDBGMzswMDZGIDAzMDE7MDBGMzswMDZGIDAzMDE7CiswMEY0OzAwRjQ7MDA2RiAwMzAyOzAwRjQ7MDA2RiAwMzAyOworMDBGNTswMEY1OzAwNkYgMDMwMzswMEY1OzAwNkYgMDMwMzsKKzAwRjY7MDBGNjswMDZGIDAzMDg7MDBGNjswMDZGIDAzMDg7CiswMEY5OzAwRjk7MDA3NSAwMzAwOzAwRjk7MDA3NSAwMzAwOworMDBGQTswMEZBOzAwNzUgMDMwMTswMEZBOzAwNzUgMDMwMTsKKzAwRkI7MDBGQjswMDc1IDAzMDI7MDBGQjswMDc1IDAzMDI7CiswMEZDOzAwRkM7MDA3NSAwMzA4OzAwRkM7MDA3NSAwMzA4OworMDBGRDswMEZEOzAwNzkgMDMwMTswMEZEOzAwNzkgMDMwMTsKKzAwRkY7MDBGRjswMDc5IDAzMDg7MDBGRjswMDc5IDAzMDg7CiswMTAwOzAxMDA7MDA0MSAwMzA0OzAxMDA7MDA0MSAwMzA0OworMDEwMTswMTAxOzAwNjEgMDMwNDswMTAxOzAwNjEgMDMwNDsKKzAxMDI7MDEwMjswMDQxIDAzMDY7MDEwMjswMDQxIDAzMDY7CiswMTAzOzAxMDM7MDA2MSAwMzA2OzAxMDM7MDA2MSAwMzA2OworMDEwNDswMTA0OzAwNDEgMDMyODswMTA0OzAwNDEgMDMyODsKKzAxMDU7MDEwNTswMDYxIDAzMjg7MDEwNTswMDYxIDAzMjg7CiswMTA2OzAxMDY7MDA0MyAwMzAxOzAxMDY7MDA0MyAwMzAxOworMDEwNzswMTA3OzAwNjMgMDMwMTswMTA3OzAwNjMgMDMwMTsKKzAxMDg7MDEwODswMDQzIDAzMDI7MDEwODswMDQzIDAzMDI7CiswMTA5OzAxMDk7MDA2MyAwMzAyOzAxMDk7MDA2MyAwMzAyOworMDEwQTswMTBBOzAwNDMgMDMwNzswMTBBOzAwNDMgMDMwNzsKKzAxMEI7MDEwQjswMDYzIDAzMDc7MDEwQjswMDYzIDAzMDc7CiswMTBDOzAxMEM7MDA0MyAwMzBDOzAxMEM7MDA0MyAwMzBDOworMDEwRDswMTBEOzAwNjMgMDMwQzswMTBEOzAwNjMgMDMwQzsKKzAxMEU7MDEwRTswMDQ0IDAzMEM7MDEwRTswMDQ0IDAzMEM7CiswMTBGOzAxMEY7MDA2NCAwMzBDOzAxMEY7MDA2NCAwMzBDOworMDExMjswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzAxMTM7MDExMzswMDY1IDAzMDQ7MDExMzswMDY1IDAzMDQ7CiswMTE0OzAxMTQ7MDA0NSAwMzA2OzAxMTQ7MDA0NSAwMzA2OworMDExNTswMTE1OzAwNjUgMDMwNjswMTE1OzAwNjUgMDMwNjsKKzAxMTY7MDExNjswMDQ1IDAzMDc7MDExNjswMDQ1IDAzMDc7CiswMTE3OzAxMTc7MDA2NSAwMzA3OzAxMTc7MDA2NSAwMzA3OworMDExODswMTE4OzAwNDUgMDMyODswMTE4OzAwNDUgMDMyODsKKzAxMTk7MDExOTswMDY1IDAzMjg7MDExOTswMDY1IDAzMjg7CiswMTFBOzAxMUE7MDA0NSAwMzBDOzAxMUE7MDA0NSAwMzBDOworMDExQjswMTFCOzAwNjUgMDMwQzswMTFCOzAwNjUgMDMwQzsKKzAxMUM7MDExQzswMDQ3IDAzMDI7MDExQzswMDQ3IDAzMDI7CiswMTFEOzAxMUQ7MDA2NyAwMzAyOzAxMUQ7MDA2NyAwMzAyOworMDExRTswMTFFOzAwNDcgMDMwNjswMTFFOzAwNDcgMDMwNjsKKzAxMUY7MDExRjswMDY3IDAzMDY7MDExRjswMDY3IDAzMDY7CiswMTIwOzAxMjA7MDA0NyAwMzA3OzAxMjA7MDA0NyAwMzA3OworMDEyMTswMTIxOzAwNjcgMDMwNzswMTIxOzAwNjcgMDMwNzsKKzAxMjI7MDEyMjswMDQ3IDAzMjc7MDEyMjswMDQ3IDAzMjc7CiswMTIzOzAxMjM7MDA2NyAwMzI3OzAxMjM7MDA2NyAwMzI3OworMDEyNDswMTI0OzAwNDggMDMwMjswMTI0OzAwNDggMDMwMjsKKzAxMjU7MDEyNTswMDY4IDAzMDI7MDEyNTswMDY4IDAzMDI7CiswMTI4OzAxMjg7MDA0OSAwMzAzOzAxMjg7MDA0OSAwMzAzOworMDEyOTswMTI5OzAwNjkgMDMwMzswMTI5OzAwNjkgMDMwMzsKKzAxMkE7MDEyQTswMDQ5IDAzMDQ7MDEyQTswMDQ5IDAzMDQ7CiswMTJCOzAxMkI7MDA2OSAwMzA0OzAxMkI7MDA2OSAwMzA0OworMDEyQzswMTJDOzAwNDkgMDMwNjswMTJDOzAwNDkgMDMwNjsKKzAxMkQ7MDEyRDswMDY5IDAzMDY7MDEyRDswMDY5IDAzMDY7CiswMTJFOzAxMkU7MDA0OSAwMzI4OzAxMkU7MDA0OSAwMzI4OworMDEyRjswMTJGOzAwNjkgMDMyODswMTJGOzAwNjkgMDMyODsKKzAxMzA7MDEzMDswMDQ5IDAzMDc7MDEzMDswMDQ5IDAzMDc7CiswMTMyOzAxMzI7MDEzMjswMDQ5IDAwNEE7MDA0OSAwMDRBOworMDEzMzswMTMzOzAxMzM7MDA2OSAwMDZBOzAwNjkgMDA2QTsKKzAxMzQ7MDEzNDswMDRBIDAzMDI7MDEzNDswMDRBIDAzMDI7CiswMTM1OzAxMzU7MDA2QSAwMzAyOzAxMzU7MDA2QSAwMzAyOworMDEzNjswMTM2OzAwNEIgMDMyNzswMTM2OzAwNEIgMDMyNzsKKzAxMzc7MDEzNzswMDZCIDAzMjc7MDEzNzswMDZCIDAzMjc7CiswMTM5OzAxMzk7MDA0QyAwMzAxOzAxMzk7MDA0QyAwMzAxOworMDEzQTswMTNBOzAwNkMgMDMwMTswMTNBOzAwNkMgMDMwMTsKKzAxM0I7MDEzQjswMDRDIDAzMjc7MDEzQjswMDRDIDAzMjc7CiswMTNDOzAxM0M7MDA2QyAwMzI3OzAxM0M7MDA2QyAwMzI3OworMDEzRDswMTNEOzAwNEMgMDMwQzswMTNEOzAwNEMgMDMwQzsKKzAxM0U7MDEzRTswMDZDIDAzMEM7MDEzRTswMDZDIDAzMEM7CiswMTNGOzAxM0Y7MDEzRjswMDRDIDAwQjc7MDA0QyAwMEI3OworMDE0MDswMTQwOzAxNDA7MDA2QyAwMEI3OzAwNkMgMDBCNzsKKzAxNDM7MDE0MzswMDRFIDAzMDE7MDE0MzswMDRFIDAzMDE7CiswMTQ0OzAxNDQ7MDA2RSAwMzAxOzAxNDQ7MDA2RSAwMzAxOworMDE0NTswMTQ1OzAwNEUgMDMyNzswMTQ1OzAwNEUgMDMyNzsKKzAxNDY7MDE0NjswMDZFIDAzMjc7MDE0NjswMDZFIDAzMjc7CiswMTQ3OzAxNDc7MDA0RSAwMzBDOzAxNDc7MDA0RSAwMzBDOworMDE0ODswMTQ4OzAwNkUgMDMwQzswMTQ4OzAwNkUgMDMwQzsKKzAxNDk7MDE0OTswMTQ5OzAyQkMgMDA2RTswMkJDIDAwNkU7CiswMTRDOzAxNEM7MDA0RiAwMzA0OzAxNEM7MDA0RiAwMzA0OworMDE0RDswMTREOzAwNkYgMDMwNDswMTREOzAwNkYgMDMwNDsKKzAxNEU7MDE0RTswMDRGIDAzMDY7MDE0RTswMDRGIDAzMDY7CiswMTRGOzAxNEY7MDA2RiAwMzA2OzAxNEY7MDA2RiAwMzA2OworMDE1MDswMTUwOzAwNEYgMDMwQjswMTUwOzAwNEYgMDMwQjsKKzAxNTE7MDE1MTswMDZGIDAzMEI7MDE1MTswMDZGIDAzMEI7CiswMTU0OzAxNTQ7MDA1MiAwMzAxOzAxNTQ7MDA1MiAwMzAxOworMDE1NTswMTU1OzAwNzIgMDMwMTswMTU1OzAwNzIgMDMwMTsKKzAxNTY7MDE1NjswMDUyIDAzMjc7MDE1NjswMDUyIDAzMjc7CiswMTU3OzAxNTc7MDA3MiAwMzI3OzAxNTc7MDA3MiAwMzI3OworMDE1ODswMTU4OzAwNTIgMDMwQzswMTU4OzAwNTIgMDMwQzsKKzAxNTk7MDE1OTswMDcyIDAzMEM7MDE1OTswMDcyIDAzMEM7CiswMTVBOzAxNUE7MDA1MyAwMzAxOzAxNUE7MDA1MyAwMzAxOworMDE1QjswMTVCOzAwNzMgMDMwMTswMTVCOzAwNzMgMDMwMTsKKzAxNUM7MDE1QzswMDUzIDAzMDI7MDE1QzswMDUzIDAzMDI7CiswMTVEOzAxNUQ7MDA3MyAwMzAyOzAxNUQ7MDA3MyAwMzAyOworMDE1RTswMTVFOzAwNTMgMDMyNzswMTVFOzAwNTMgMDMyNzsKKzAxNUY7MDE1RjswMDczIDAzMjc7MDE1RjswMDczIDAzMjc7CiswMTYwOzAxNjA7MDA1MyAwMzBDOzAxNjA7MDA1MyAwMzBDOworMDE2MTswMTYxOzAwNzMgMDMwQzswMTYxOzAwNzMgMDMwQzsKKzAxNjI7MDE2MjswMDU0IDAzMjc7MDE2MjswMDU0IDAzMjc7CiswMTYzOzAxNjM7MDA3NCAwMzI3OzAxNjM7MDA3NCAwMzI3OworMDE2NDswMTY0OzAwNTQgMDMwQzswMTY0OzAwNTQgMDMwQzsKKzAxNjU7MDE2NTswMDc0IDAzMEM7MDE2NTswMDc0IDAzMEM7CiswMTY4OzAxNjg7MDA1NSAwMzAzOzAxNjg7MDA1NSAwMzAzOworMDE2OTswMTY5OzAwNzUgMDMwMzswMTY5OzAwNzUgMDMwMzsKKzAxNkE7MDE2QTswMDU1IDAzMDQ7MDE2QTswMDU1IDAzMDQ7CiswMTZCOzAxNkI7MDA3NSAwMzA0OzAxNkI7MDA3NSAwMzA0OworMDE2QzswMTZDOzAwNTUgMDMwNjswMTZDOzAwNTUgMDMwNjsKKzAxNkQ7MDE2RDswMDc1IDAzMDY7MDE2RDswMDc1IDAzMDY7CiswMTZFOzAxNkU7MDA1NSAwMzBBOzAxNkU7MDA1NSAwMzBBOworMDE2RjswMTZGOzAwNzUgMDMwQTswMTZGOzAwNzUgMDMwQTsKKzAxNzA7MDE3MDswMDU1IDAzMEI7MDE3MDswMDU1IDAzMEI7CiswMTcxOzAxNzE7MDA3NSAwMzBCOzAxNzE7MDA3NSAwMzBCOworMDE3MjswMTcyOzAwNTUgMDMyODswMTcyOzAwNTUgMDMyODsKKzAxNzM7MDE3MzswMDc1IDAzMjg7MDE3MzswMDc1IDAzMjg7CiswMTc0OzAxNzQ7MDA1NyAwMzAyOzAxNzQ7MDA1NyAwMzAyOworMDE3NTswMTc1OzAwNzcgMDMwMjswMTc1OzAwNzcgMDMwMjsKKzAxNzY7MDE3NjswMDU5IDAzMDI7MDE3NjswMDU5IDAzMDI7CiswMTc3OzAxNzc7MDA3OSAwMzAyOzAxNzc7MDA3OSAwMzAyOworMDE3ODswMTc4OzAwNTkgMDMwODswMTc4OzAwNTkgMDMwODsKKzAxNzk7MDE3OTswMDVBIDAzMDE7MDE3OTswMDVBIDAzMDE7CiswMTdBOzAxN0E7MDA3QSAwMzAxOzAxN0E7MDA3QSAwMzAxOworMDE3QjswMTdCOzAwNUEgMDMwNzswMTdCOzAwNUEgMDMwNzsKKzAxN0M7MDE3QzswMDdBIDAzMDc7MDE3QzswMDdBIDAzMDc7CiswMTdEOzAxN0Q7MDA1QSAwMzBDOzAxN0Q7MDA1QSAwMzBDOworMDE3RTswMTdFOzAwN0EgMDMwQzswMTdFOzAwN0EgMDMwQzsKKzAxN0Y7MDE3RjswMTdGOzAwNzM7MDA3MzsKKzAxQTA7MDFBMDswMDRGIDAzMUI7MDFBMDswMDRGIDAzMUI7CiswMUExOzAxQTE7MDA2RiAwMzFCOzAxQTE7MDA2RiAwMzFCOworMDFBRjswMUFGOzAwNTUgMDMxQjswMUFGOzAwNTUgMDMxQjsKKzAxQjA7MDFCMDswMDc1IDAzMUI7MDFCMDswMDc1IDAzMUI7CiswMUM0OzAxQzQ7MDFDNDswMDQ0IDAxN0Q7MDA0NCAwMDVBIDAzMEM7CiswMUM1OzAxQzU7MDFDNTswMDQ0IDAxN0U7MDA0NCAwMDdBIDAzMEM7CiswMUM2OzAxQzY7MDFDNjswMDY0IDAxN0U7MDA2NCAwMDdBIDAzMEM7CiswMUM3OzAxQzc7MDFDNzswMDRDIDAwNEE7MDA0QyAwMDRBOworMDFDODswMUM4OzAxQzg7MDA0QyAwMDZBOzAwNEMgMDA2QTsKKzAxQzk7MDFDOTswMUM5OzAwNkMgMDA2QTswMDZDIDAwNkE7CiswMUNBOzAxQ0E7MDFDQTswMDRFIDAwNEE7MDA0RSAwMDRBOworMDFDQjswMUNCOzAxQ0I7MDA0RSAwMDZBOzAwNEUgMDA2QTsKKzAxQ0M7MDFDQzswMUNDOzAwNkUgMDA2QTswMDZFIDAwNkE7CiswMUNEOzAxQ0Q7MDA0MSAwMzBDOzAxQ0Q7MDA0MSAwMzBDOworMDFDRTswMUNFOzAwNjEgMDMwQzswMUNFOzAwNjEgMDMwQzsKKzAxQ0Y7MDFDRjswMDQ5IDAzMEM7MDFDRjswMDQ5IDAzMEM7CiswMUQwOzAxRDA7MDA2OSAwMzBDOzAxRDA7MDA2OSAwMzBDOworMDFEMTswMUQxOzAwNEYgMDMwQzswMUQxOzAwNEYgMDMwQzsKKzAxRDI7MDFEMjswMDZGIDAzMEM7MDFEMjswMDZGIDAzMEM7CiswMUQzOzAxRDM7MDA1NSAwMzBDOzAxRDM7MDA1NSAwMzBDOworMDFENDswMUQ0OzAwNzUgMDMwQzswMUQ0OzAwNzUgMDMwQzsKKzAxRDU7MDFENTswMDU1IDAzMDggMDMwNDswMUQ1OzAwNTUgMDMwOCAwMzA0OworMDFENjswMUQ2OzAwNzUgMDMwOCAwMzA0OzAxRDY7MDA3NSAwMzA4IDAzMDQ7CiswMUQ3OzAxRDc7MDA1NSAwMzA4IDAzMDE7MDFENzswMDU1IDAzMDggMDMwMTsKKzAxRDg7MDFEODswMDc1IDAzMDggMDMwMTswMUQ4OzAwNzUgMDMwOCAwMzAxOworMDFEOTswMUQ5OzAwNTUgMDMwOCAwMzBDOzAxRDk7MDA1NSAwMzA4IDAzMEM7CiswMURBOzAxREE7MDA3NSAwMzA4IDAzMEM7MDFEQTswMDc1IDAzMDggMDMwQzsKKzAxREI7MDFEQjswMDU1IDAzMDggMDMwMDswMURCOzAwNTUgMDMwOCAwMzAwOworMDFEQzswMURDOzAwNzUgMDMwOCAwMzAwOzAxREM7MDA3NSAwMzA4IDAzMDA7CiswMURFOzAxREU7MDA0MSAwMzA4IDAzMDQ7MDFERTswMDQxIDAzMDggMDMwNDsKKzAxREY7MDFERjswMDYxIDAzMDggMDMwNDswMURGOzAwNjEgMDMwOCAwMzA0OworMDFFMDswMUUwOzAwNDEgMDMwNyAwMzA0OzAxRTA7MDA0MSAwMzA3IDAzMDQ7CiswMUUxOzAxRTE7MDA2MSAwMzA3IDAzMDQ7MDFFMTswMDYxIDAzMDcgMDMwNDsKKzAxRTI7MDFFMjswMEM2IDAzMDQ7MDFFMjswMEM2IDAzMDQ7CiswMUUzOzAxRTM7MDBFNiAwMzA0OzAxRTM7MDBFNiAwMzA0OworMDFFNjswMUU2OzAwNDcgMDMwQzswMUU2OzAwNDcgMDMwQzsKKzAxRTc7MDFFNzswMDY3IDAzMEM7MDFFNzswMDY3IDAzMEM7CiswMUU4OzAxRTg7MDA0QiAwMzBDOzAxRTg7MDA0QiAwMzBDOworMDFFOTswMUU5OzAwNkIgMDMwQzswMUU5OzAwNkIgMDMwQzsKKzAxRUE7MDFFQTswMDRGIDAzMjg7MDFFQTswMDRGIDAzMjg7CiswMUVCOzAxRUI7MDA2RiAwMzI4OzAxRUI7MDA2RiAwMzI4OworMDFFQzswMUVDOzAwNEYgMDMyOCAwMzA0OzAxRUM7MDA0RiAwMzI4IDAzMDQ7CiswMUVEOzAxRUQ7MDA2RiAwMzI4IDAzMDQ7MDFFRDswMDZGIDAzMjggMDMwNDsKKzAxRUU7MDFFRTswMUI3IDAzMEM7MDFFRTswMUI3IDAzMEM7CiswMUVGOzAxRUY7MDI5MiAwMzBDOzAxRUY7MDI5MiAwMzBDOworMDFGMDswMUYwOzAwNkEgMDMwQzswMUYwOzAwNkEgMDMwQzsKKzAxRjE7MDFGMTswMUYxOzAwNDQgMDA1QTswMDQ0IDAwNUE7CiswMUYyOzAxRjI7MDFGMjswMDQ0IDAwN0E7MDA0NCAwMDdBOworMDFGMzswMUYzOzAxRjM7MDA2NCAwMDdBOzAwNjQgMDA3QTsKKzAxRjQ7MDFGNDswMDQ3IDAzMDE7MDFGNDswMDQ3IDAzMDE7CiswMUY1OzAxRjU7MDA2NyAwMzAxOzAxRjU7MDA2NyAwMzAxOworMDFGODswMUY4OzAwNEUgMDMwMDswMUY4OzAwNEUgMDMwMDsKKzAxRjk7MDFGOTswMDZFIDAzMDA7MDFGOTswMDZFIDAzMDA7CiswMUZBOzAxRkE7MDA0MSAwMzBBIDAzMDE7MDFGQTswMDQxIDAzMEEgMDMwMTsKKzAxRkI7MDFGQjswMDYxIDAzMEEgMDMwMTswMUZCOzAwNjEgMDMwQSAwMzAxOworMDFGQzswMUZDOzAwQzYgMDMwMTswMUZDOzAwQzYgMDMwMTsKKzAxRkQ7MDFGRDswMEU2IDAzMDE7MDFGRDswMEU2IDAzMDE7CiswMUZFOzAxRkU7MDBEOCAwMzAxOzAxRkU7MDBEOCAwMzAxOworMDFGRjswMUZGOzAwRjggMDMwMTswMUZGOzAwRjggMDMwMTsKKzAyMDA7MDIwMDswMDQxIDAzMEY7MDIwMDswMDQxIDAzMEY7CiswMjAxOzAyMDE7MDA2MSAwMzBGOzAyMDE7MDA2MSAwMzBGOworMDIwMjswMjAyOzAwNDEgMDMxMTswMjAyOzAwNDEgMDMxMTsKKzAyMDM7MDIwMzswMDYxIDAzMTE7MDIwMzswMDYxIDAzMTE7CiswMjA0OzAyMDQ7MDA0NSAwMzBGOzAyMDQ7MDA0NSAwMzBGOworMDIwNTswMjA1OzAwNjUgMDMwRjswMjA1OzAwNjUgMDMwRjsKKzAyMDY7MDIwNjswMDQ1IDAzMTE7MDIwNjswMDQ1IDAzMTE7CiswMjA3OzAyMDc7MDA2NSAwMzExOzAyMDc7MDA2NSAwMzExOworMDIwODswMjA4OzAwNDkgMDMwRjswMjA4OzAwNDkgMDMwRjsKKzAyMDk7MDIwOTswMDY5IDAzMEY7MDIwOTswMDY5IDAzMEY7CiswMjBBOzAyMEE7MDA0OSAwMzExOzAyMEE7MDA0OSAwMzExOworMDIwQjswMjBCOzAwNjkgMDMxMTswMjBCOzAwNjkgMDMxMTsKKzAyMEM7MDIwQzswMDRGIDAzMEY7MDIwQzswMDRGIDAzMEY7CiswMjBEOzAyMEQ7MDA2RiAwMzBGOzAyMEQ7MDA2RiAwMzBGOworMDIwRTswMjBFOzAwNEYgMDMxMTswMjBFOzAwNEYgMDMxMTsKKzAyMEY7MDIwRjswMDZGIDAzMTE7MDIwRjswMDZGIDAzMTE7CiswMjEwOzAyMTA7MDA1MiAwMzBGOzAyMTA7MDA1MiAwMzBGOworMDIxMTswMjExOzAwNzIgMDMwRjswMjExOzAwNzIgMDMwRjsKKzAyMTI7MDIxMjswMDUyIDAzMTE7MDIxMjswMDUyIDAzMTE7CiswMjEzOzAyMTM7MDA3MiAwMzExOzAyMTM7MDA3MiAwMzExOworMDIxNDswMjE0OzAwNTUgMDMwRjswMjE0OzAwNTUgMDMwRjsKKzAyMTU7MDIxNTswMDc1IDAzMEY7MDIxNTswMDc1IDAzMEY7CiswMjE2OzAyMTY7MDA1NSAwMzExOzAyMTY7MDA1NSAwMzExOworMDIxNzswMjE3OzAwNzUgMDMxMTswMjE3OzAwNzUgMDMxMTsKKzAyMTg7MDIxODswMDUzIDAzMjY7MDIxODswMDUzIDAzMjY7CiswMjE5OzAyMTk7MDA3MyAwMzI2OzAyMTk7MDA3MyAwMzI2OworMDIxQTswMjFBOzAwNTQgMDMyNjswMjFBOzAwNTQgMDMyNjsKKzAyMUI7MDIxQjswMDc0IDAzMjY7MDIxQjswMDc0IDAzMjY7CiswMjFFOzAyMUU7MDA0OCAwMzBDOzAyMUU7MDA0OCAwMzBDOworMDIxRjswMjFGOzAwNjggMDMwQzswMjFGOzAwNjggMDMwQzsKKzAyMjY7MDIyNjswMDQxIDAzMDc7MDIyNjswMDQxIDAzMDc7CiswMjI3OzAyMjc7MDA2MSAwMzA3OzAyMjc7MDA2MSAwMzA3OworMDIyODswMjI4OzAwNDUgMDMyNzswMjI4OzAwNDUgMDMyNzsKKzAyMjk7MDIyOTswMDY1IDAzMjc7MDIyOTswMDY1IDAzMjc7CiswMjJBOzAyMkE7MDA0RiAwMzA4IDAzMDQ7MDIyQTswMDRGIDAzMDggMDMwNDsKKzAyMkI7MDIyQjswMDZGIDAzMDggMDMwNDswMjJCOzAwNkYgMDMwOCAwMzA0OworMDIyQzswMjJDOzAwNEYgMDMwMyAwMzA0OzAyMkM7MDA0RiAwMzAzIDAzMDQ7CiswMjJEOzAyMkQ7MDA2RiAwMzAzIDAzMDQ7MDIyRDswMDZGIDAzMDMgMDMwNDsKKzAyMkU7MDIyRTswMDRGIDAzMDc7MDIyRTswMDRGIDAzMDc7CiswMjJGOzAyMkY7MDA2RiAwMzA3OzAyMkY7MDA2RiAwMzA3OworMDIzMDswMjMwOzAwNEYgMDMwNyAwMzA0OzAyMzA7MDA0RiAwMzA3IDAzMDQ7CiswMjMxOzAyMzE7MDA2RiAwMzA3IDAzMDQ7MDIzMTswMDZGIDAzMDcgMDMwNDsKKzAyMzI7MDIzMjswMDU5IDAzMDQ7MDIzMjswMDU5IDAzMDQ7CiswMjMzOzAyMzM7MDA3OSAwMzA0OzAyMzM7MDA3OSAwMzA0OworMDJCMDswMkIwOzAyQjA7MDA2ODswMDY4OworMDJCMTswMkIxOzAyQjE7MDI2NjswMjY2OworMDJCMjswMkIyOzAyQjI7MDA2QTswMDZBOworMDJCMzswMkIzOzAyQjM7MDA3MjswMDcyOworMDJCNDswMkI0OzAyQjQ7MDI3OTswMjc5OworMDJCNTswMkI1OzAyQjU7MDI3QjswMjdCOworMDJCNjswMkI2OzAyQjY7MDI4MTswMjgxOworMDJCNzswMkI3OzAyQjc7MDA3NzswMDc3OworMDJCODswMkI4OzAyQjg7MDA3OTswMDc5OworMDJEODswMkQ4OzAyRDg7MDAyMCAwMzA2OzAwMjAgMDMwNjsKKzAyRDk7MDJEOTswMkQ5OzAwMjAgMDMwNzswMDIwIDAzMDc7CiswMkRBOzAyREE7MDJEQTswMDIwIDAzMEE7MDAyMCAwMzBBOworMDJEQjswMkRCOzAyREI7MDAyMCAwMzI4OzAwMjAgMDMyODsKKzAyREM7MDJEQzswMkRDOzAwMjAgMDMwMzswMDIwIDAzMDM7CiswMkREOzAyREQ7MDJERDswMDIwIDAzMEI7MDAyMCAwMzBCOworMDJFMDswMkUwOzAyRTA7MDI2MzswMjYzOworMDJFMTswMkUxOzAyRTE7MDA2QzswMDZDOworMDJFMjswMkUyOzAyRTI7MDA3MzswMDczOworMDJFMzswMkUzOzAyRTM7MDA3ODswMDc4OworMDJFNDswMkU0OzAyRTQ7MDI5NTswMjk1OworMDM0MDswMzAwOzAzMDA7MDMwMDswMzAwOworMDM0MTswMzAxOzAzMDE7MDMwMTswMzAxOworMDM0MzswMzEzOzAzMTM7MDMxMzswMzEzOworMDM0NDswMzA4IDAzMDE7MDMwOCAwMzAxOzAzMDggMDMwMTswMzA4IDAzMDE7CiswMzc0OzAyQjk7MDJCOTswMkI5OzAyQjk7CiswMzdBOzAzN0E7MDM3QTswMDIwIDAzNDU7MDAyMCAwMzQ1OworMDM3RTswMDNCOzAwM0I7MDAzQjswMDNCOworMDM4NDswMzg0OzAzODQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzAzODU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7CiswMzg2OzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMDM4NzswMEI3OzAwQjc7MDBCNzswMEI3OworMDM4ODswMzg4OzAzOTUgMDMwMTswMzg4OzAzOTUgMDMwMTsKKzAzODk7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CiswMzhBOzAzOEE7MDM5OSAwMzAxOzAzOEE7MDM5OSAwMzAxOworMDM4QzswMzhDOzAzOUYgMDMwMTswMzhDOzAzOUYgMDMwMTsKKzAzOEU7MDM4RTswM0E1IDAzMDE7MDM4RTswM0E1IDAzMDE7CiswMzhGOzAzOEY7MDNBOSAwMzAxOzAzOEY7MDNBOSAwMzAxOworMDM5MDswMzkwOzAzQjkgMDMwOCAwMzAxOzAzOTA7MDNCOSAwMzA4IDAzMDE7CiswM0FBOzAzQUE7MDM5OSAwMzA4OzAzQUE7MDM5OSAwMzA4OworMDNBQjswM0FCOzAzQTUgMDMwODswM0FCOzAzQTUgMDMwODsKKzAzQUM7MDNBQzswM0IxIDAzMDE7MDNBQzswM0IxIDAzMDE7CiswM0FEOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMDNBRTswM0FFOzAzQjcgMDMwMTswM0FFOzAzQjcgMDMwMTsKKzAzQUY7MDNBRjswM0I5IDAzMDE7MDNBRjswM0I5IDAzMDE7CiswM0IwOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzAzQ0E7MDNDQTswM0I5IDAzMDg7MDNDQTswM0I5IDAzMDg7CiswM0NCOzAzQ0I7MDNDNSAwMzA4OzAzQ0I7MDNDNSAwMzA4OworMDNDQzswM0NDOzAzQkYgMDMwMTswM0NDOzAzQkYgMDMwMTsKKzAzQ0Q7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CiswM0NFOzAzQ0U7MDNDOSAwMzAxOzAzQ0U7MDNDOSAwMzAxOworMDNEMDswM0QwOzAzRDA7MDNCMjswM0IyOworMDNEMTswM0QxOzAzRDE7MDNCODswM0I4OworMDNEMjswM0QyOzAzRDI7MDNBNTswM0E1OworMDNEMzswM0QzOzAzRDIgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzAzRDQ7MDNENDswM0QyIDAzMDg7MDNBQjswM0E1IDAzMDg7CiswM0Q1OzAzRDU7MDNENTswM0M2OzAzQzY7CiswM0Q2OzAzRDY7MDNENjswM0MwOzAzQzA7CiswM0YwOzAzRjA7MDNGMDswM0JBOzAzQkE7CiswM0YxOzAzRjE7MDNGMTswM0MxOzAzQzE7CiswM0YyOzAzRjI7MDNGMjswM0MyOzAzQzI7CiswM0Y0OzAzRjQ7MDNGNDswMzk4OzAzOTg7CiswM0Y1OzAzRjU7MDNGNTswM0I1OzAzQjU7CiswNDAwOzA0MDA7MDQxNSAwMzAwOzA0MDA7MDQxNSAwMzAwOworMDQwMTswNDAxOzA0MTUgMDMwODswNDAxOzA0MTUgMDMwODsKKzA0MDM7MDQwMzswNDEzIDAzMDE7MDQwMzswNDEzIDAzMDE7CiswNDA3OzA0MDc7MDQwNiAwMzA4OzA0MDc7MDQwNiAwMzA4OworMDQwQzswNDBDOzA0MUEgMDMwMTswNDBDOzA0MUEgMDMwMTsKKzA0MEQ7MDQwRDswNDE4IDAzMDA7MDQwRDswNDE4IDAzMDA7CiswNDBFOzA0MEU7MDQyMyAwMzA2OzA0MEU7MDQyMyAwMzA2OworMDQxOTswNDE5OzA0MTggMDMwNjswNDE5OzA0MTggMDMwNjsKKzA0Mzk7MDQzOTswNDM4IDAzMDY7MDQzOTswNDM4IDAzMDY7CiswNDUwOzA0NTA7MDQzNSAwMzAwOzA0NTA7MDQzNSAwMzAwOworMDQ1MTswNDUxOzA0MzUgMDMwODswNDUxOzA0MzUgMDMwODsKKzA0NTM7MDQ1MzswNDMzIDAzMDE7MDQ1MzswNDMzIDAzMDE7CiswNDU3OzA0NTc7MDQ1NiAwMzA4OzA0NTc7MDQ1NiAwMzA4OworMDQ1QzswNDVDOzA0M0EgMDMwMTswNDVDOzA0M0EgMDMwMTsKKzA0NUQ7MDQ1RDswNDM4IDAzMDA7MDQ1RDswNDM4IDAzMDA7CiswNDVFOzA0NUU7MDQ0MyAwMzA2OzA0NUU7MDQ0MyAwMzA2OworMDQ3NjswNDc2OzA0NzQgMDMwRjswNDc2OzA0NzQgMDMwRjsKKzA0Nzc7MDQ3NzswNDc1IDAzMEY7MDQ3NzswNDc1IDAzMEY7CiswNEMxOzA0QzE7MDQxNiAwMzA2OzA0QzE7MDQxNiAwMzA2OworMDRDMjswNEMyOzA0MzYgMDMwNjswNEMyOzA0MzYgMDMwNjsKKzA0RDA7MDREMDswNDEwIDAzMDY7MDREMDswNDEwIDAzMDY7CiswNEQxOzA0RDE7MDQzMCAwMzA2OzA0RDE7MDQzMCAwMzA2OworMDREMjswNEQyOzA0MTAgMDMwODswNEQyOzA0MTAgMDMwODsKKzA0RDM7MDREMzswNDMwIDAzMDg7MDREMzswNDMwIDAzMDg7CiswNEQ2OzA0RDY7MDQxNSAwMzA2OzA0RDY7MDQxNSAwMzA2OworMDRENzswNEQ3OzA0MzUgMDMwNjswNEQ3OzA0MzUgMDMwNjsKKzA0REE7MDREQTswNEQ4IDAzMDg7MDREQTswNEQ4IDAzMDg7CiswNERCOzA0REI7MDREOSAwMzA4OzA0REI7MDREOSAwMzA4OworMDREQzswNERDOzA0MTYgMDMwODswNERDOzA0MTYgMDMwODsKKzA0REQ7MDRERDswNDM2IDAzMDg7MDRERDswNDM2IDAzMDg7CiswNERFOzA0REU7MDQxNyAwMzA4OzA0REU7MDQxNyAwMzA4OworMDRERjswNERGOzA0MzcgMDMwODswNERGOzA0MzcgMDMwODsKKzA0RTI7MDRFMjswNDE4IDAzMDQ7MDRFMjswNDE4IDAzMDQ7CiswNEUzOzA0RTM7MDQzOCAwMzA0OzA0RTM7MDQzOCAwMzA0OworMDRFNDswNEU0OzA0MTggMDMwODswNEU0OzA0MTggMDMwODsKKzA0RTU7MDRFNTswNDM4IDAzMDg7MDRFNTswNDM4IDAzMDg7CiswNEU2OzA0RTY7MDQxRSAwMzA4OzA0RTY7MDQxRSAwMzA4OworMDRFNzswNEU3OzA0M0UgMDMwODswNEU3OzA0M0UgMDMwODsKKzA0RUE7MDRFQTswNEU4IDAzMDg7MDRFQTswNEU4IDAzMDg7CiswNEVCOzA0RUI7MDRFOSAwMzA4OzA0RUI7MDRFOSAwMzA4OworMDRFQzswNEVDOzA0MkQgMDMwODswNEVDOzA0MkQgMDMwODsKKzA0RUQ7MDRFRDswNDREIDAzMDg7MDRFRDswNDREIDAzMDg7CiswNEVFOzA0RUU7MDQyMyAwMzA0OzA0RUU7MDQyMyAwMzA0OworMDRFRjswNEVGOzA0NDMgMDMwNDswNEVGOzA0NDMgMDMwNDsKKzA0RjA7MDRGMDswNDIzIDAzMDg7MDRGMDswNDIzIDAzMDg7CiswNEYxOzA0RjE7MDQ0MyAwMzA4OzA0RjE7MDQ0MyAwMzA4OworMDRGMjswNEYyOzA0MjMgMDMwQjswNEYyOzA0MjMgMDMwQjsKKzA0RjM7MDRGMzswNDQzIDAzMEI7MDRGMzswNDQzIDAzMEI7CiswNEY0OzA0RjQ7MDQyNyAwMzA4OzA0RjQ7MDQyNyAwMzA4OworMDRGNTswNEY1OzA0NDcgMDMwODswNEY1OzA0NDcgMDMwODsKKzA0Rjg7MDRGODswNDJCIDAzMDg7MDRGODswNDJCIDAzMDg7CiswNEY5OzA0Rjk7MDQ0QiAwMzA4OzA0Rjk7MDQ0QiAwMzA4OworMDU4NzswNTg3OzA1ODc7MDU2NSAwNTgyOzA1NjUgMDU4MjsKKzA2MjI7MDYyMjswNjI3IDA2NTM7MDYyMjswNjI3IDA2NTM7CiswNjIzOzA2MjM7MDYyNyAwNjU0OzA2MjM7MDYyNyAwNjU0OworMDYyNDswNjI0OzA2NDggMDY1NDswNjI0OzA2NDggMDY1NDsKKzA2MjU7MDYyNTswNjI3IDA2NTU7MDYyNTswNjI3IDA2NTU7CiswNjI2OzA2MjY7MDY0QSAwNjU0OzA2MjY7MDY0QSAwNjU0OworMDY3NTswNjc1OzA2NzU7MDYyNyAwNjc0OzA2MjcgMDY3NDsKKzA2NzY7MDY3NjswNjc2OzA2NDggMDY3NDswNjQ4IDA2NzQ7CiswNjc3OzA2Nzc7MDY3NzswNkM3IDA2NzQ7MDZDNyAwNjc0OworMDY3ODswNjc4OzA2Nzg7MDY0QSAwNjc0OzA2NEEgMDY3NDsKKzA2QzA7MDZDMDswNkQ1IDA2NTQ7MDZDMDswNkQ1IDA2NTQ7CiswNkMyOzA2QzI7MDZDMSAwNjU0OzA2QzI7MDZDMSAwNjU0OworMDZEMzswNkQzOzA2RDIgMDY1NDswNkQzOzA2RDIgMDY1NDsKKzA5Mjk7MDkyOTswOTI4IDA5M0M7MDkyOTswOTI4IDA5M0M7CiswOTMxOzA5MzE7MDkzMCAwOTNDOzA5MzE7MDkzMCAwOTNDOworMDkzNDswOTM0OzA5MzMgMDkzQzswOTM0OzA5MzMgMDkzQzsKKzA5NTg7MDkxNSAwOTNDOzA5MTUgMDkzQzswOTE1IDA5M0M7MDkxNSAwOTNDOworMDk1OTswOTE2IDA5M0M7MDkxNiAwOTNDOzA5MTYgMDkzQzswOTE2IDA5M0M7CiswOTVBOzA5MTcgMDkzQzswOTE3IDA5M0M7MDkxNyAwOTNDOzA5MTcgMDkzQzsKKzA5NUI7MDkxQyAwOTNDOzA5MUMgMDkzQzswOTFDIDA5M0M7MDkxQyAwOTNDOworMDk1QzswOTIxIDA5M0M7MDkyMSAwOTNDOzA5MjEgMDkzQzswOTIxIDA5M0M7CiswOTVEOzA5MjIgMDkzQzswOTIyIDA5M0M7MDkyMiAwOTNDOzA5MjIgMDkzQzsKKzA5NUU7MDkyQiAwOTNDOzA5MkIgMDkzQzswOTJCIDA5M0M7MDkyQiAwOTNDOworMDk1RjswOTJGIDA5M0M7MDkyRiAwOTNDOzA5MkYgMDkzQzswOTJGIDA5M0M7CiswOUNCOzA5Q0I7MDlDNyAwOUJFOzA5Q0I7MDlDNyAwOUJFOworMDlDQzswOUNDOzA5QzcgMDlENzswOUNDOzA5QzcgMDlENzsKKzA5REM7MDlBMSAwOUJDOzA5QTEgMDlCQzswOUExIDA5QkM7MDlBMSAwOUJDOworMDlERDswOUEyIDA5QkM7MDlBMiAwOUJDOzA5QTIgMDlCQzswOUEyIDA5QkM7CiswOURGOzA5QUYgMDlCQzswOUFGIDA5QkM7MDlBRiAwOUJDOzA5QUYgMDlCQzsKKzBBMzM7MEEzMiAwQTNDOzBBMzIgMEEzQzswQTMyIDBBM0M7MEEzMiAwQTNDOworMEEzNjswQTM4IDBBM0M7MEEzOCAwQTNDOzBBMzggMEEzQzswQTM4IDBBM0M7CiswQTU5OzBBMTYgMEEzQzswQTE2IDBBM0M7MEExNiAwQTNDOzBBMTYgMEEzQzsKKzBBNUE7MEExNyAwQTNDOzBBMTcgMEEzQzswQTE3IDBBM0M7MEExNyAwQTNDOworMEE1QjswQTFDIDBBM0M7MEExQyAwQTNDOzBBMUMgMEEzQzswQTFDIDBBM0M7CiswQTVFOzBBMkIgMEEzQzswQTJCIDBBM0M7MEEyQiAwQTNDOzBBMkIgMEEzQzsKKzBCNDg7MEI0ODswQjQ3IDBCNTY7MEI0ODswQjQ3IDBCNTY7CiswQjRCOzBCNEI7MEI0NyAwQjNFOzBCNEI7MEI0NyAwQjNFOworMEI0QzswQjRDOzBCNDcgMEI1NzswQjRDOzBCNDcgMEI1NzsKKzBCNUM7MEIyMSAwQjNDOzBCMjEgMEIzQzswQjIxIDBCM0M7MEIyMSAwQjNDOworMEI1RDswQjIyIDBCM0M7MEIyMiAwQjNDOzBCMjIgMEIzQzswQjIyIDBCM0M7CiswQjk0OzBCOTQ7MEI5MiAwQkQ3OzBCOTQ7MEI5MiAwQkQ3OworMEJDQTswQkNBOzBCQzYgMEJCRTswQkNBOzBCQzYgMEJCRTsKKzBCQ0I7MEJDQjswQkM3IDBCQkU7MEJDQjswQkM3IDBCQkU7CiswQkNDOzBCQ0M7MEJDNiAwQkQ3OzBCQ0M7MEJDNiAwQkQ3OworMEM0ODswQzQ4OzBDNDYgMEM1NjswQzQ4OzBDNDYgMEM1NjsKKzBDQzA7MENDMDswQ0JGIDBDRDU7MENDMDswQ0JGIDBDRDU7CiswQ0M3OzBDQzc7MENDNiAwQ0Q1OzBDQzc7MENDNiAwQ0Q1OworMENDODswQ0M4OzBDQzYgMENENjswQ0M4OzBDQzYgMENENjsKKzBDQ0E7MENDQTswQ0M2IDBDQzI7MENDQTswQ0M2IDBDQzI7CiswQ0NCOzBDQ0I7MENDNiAwQ0MyIDBDRDU7MENDQjswQ0M2IDBDQzIgMENENTsKKzBENEE7MEQ0QTswRDQ2IDBEM0U7MEQ0QTswRDQ2IDBEM0U7CiswRDRCOzBENEI7MEQ0NyAwRDNFOzBENEI7MEQ0NyAwRDNFOworMEQ0QzswRDRDOzBENDYgMEQ1NzswRDRDOzBENDYgMEQ1NzsKKzBEREE7MEREQTswREQ5IDBEQ0E7MEREQTswREQ5IDBEQ0E7CiswRERDOzBEREM7MEREOSAwRENGOzBEREM7MEREOSAwRENGOworMERERDswREREOzBERDkgMERDRiAwRENBOzBEREQ7MEREOSAwRENGIDBEQ0E7CiswRERFOzBEREU7MEREOSAwRERGOzBEREU7MEREOSAwRERGOworMEUzMzswRTMzOzBFMzM7MEU0RCAwRTMyOzBFNEQgMEUzMjsKKzBFQjM7MEVCMzswRUIzOzBFQ0QgMEVCMjswRUNEIDBFQjI7CiswRURDOzBFREM7MEVEQzswRUFCIDBFOTk7MEVBQiAwRTk5OworMEVERDswRUREOzBFREQ7MEVBQiAwRUExOzBFQUIgMEVBMTsKKzBGMEM7MEYwQzswRjBDOzBGMEI7MEYwQjsKKzBGNDM7MEY0MiAwRkI3OzBGNDIgMEZCNzswRjQyIDBGQjc7MEY0MiAwRkI3OworMEY0RDswRjRDIDBGQjc7MEY0QyAwRkI3OzBGNEMgMEZCNzswRjRDIDBGQjc7CiswRjUyOzBGNTEgMEZCNzswRjUxIDBGQjc7MEY1MSAwRkI3OzBGNTEgMEZCNzsKKzBGNTc7MEY1NiAwRkI3OzBGNTYgMEZCNzswRjU2IDBGQjc7MEY1NiAwRkI3OworMEY1QzswRjVCIDBGQjc7MEY1QiAwRkI3OzBGNUIgMEZCNzswRjVCIDBGQjc7CiswRjY5OzBGNDAgMEZCNTswRjQwIDBGQjU7MEY0MCAwRkI1OzBGNDAgMEZCNTsKKzBGNzM7MEY3MSAwRjcyOzBGNzEgMEY3MjswRjcxIDBGNzI7MEY3MSAwRjcyOworMEY3NTswRjcxIDBGNzQ7MEY3MSAwRjc0OzBGNzEgMEY3NDswRjcxIDBGNzQ7CiswRjc2OzBGQjIgMEY4MDswRkIyIDBGODA7MEZCMiAwRjgwOzBGQjIgMEY4MDsKKzBGNzc7MEY3NzswRjc3OzBGQjIgMEY3MSAwRjgwOzBGQjIgMEY3MSAwRjgwOworMEY3ODswRkIzIDBGODA7MEZCMyAwRjgwOzBGQjMgMEY4MDswRkIzIDBGODA7CiswRjc5OzBGNzk7MEY3OTswRkIzIDBGNzEgMEY4MDswRkIzIDBGNzEgMEY4MDsKKzBGODE7MEY3MSAwRjgwOzBGNzEgMEY4MDswRjcxIDBGODA7MEY3MSAwRjgwOworMEY5MzswRjkyIDBGQjc7MEY5MiAwRkI3OzBGOTIgMEZCNzswRjkyIDBGQjc7CiswRjlEOzBGOUMgMEZCNzswRjlDIDBGQjc7MEY5QyAwRkI3OzBGOUMgMEZCNzsKKzBGQTI7MEZBMSAwRkI3OzBGQTEgMEZCNzswRkExIDBGQjc7MEZBMSAwRkI3OworMEZBNzswRkE2IDBGQjc7MEZBNiAwRkI3OzBGQTYgMEZCNzswRkE2IDBGQjc7CiswRkFDOzBGQUIgMEZCNzswRkFCIDBGQjc7MEZBQiAwRkI3OzBGQUIgMEZCNzsKKzBGQjk7MEY5MCAwRkI1OzBGOTAgMEZCNTswRjkwIDBGQjU7MEY5MCAwRkI1OworMTAyNjsxMDI2OzEwMjUgMTAyRTsxMDI2OzEwMjUgMTAyRTsKKzFFMDA7MUUwMDswMDQxIDAzMjU7MUUwMDswMDQxIDAzMjU7CisxRTAxOzFFMDE7MDA2MSAwMzI1OzFFMDE7MDA2MSAwMzI1OworMUUwMjsxRTAyOzAwNDIgMDMwNzsxRTAyOzAwNDIgMDMwNzsKKzFFMDM7MUUwMzswMDYyIDAzMDc7MUUwMzswMDYyIDAzMDc7CisxRTA0OzFFMDQ7MDA0MiAwMzIzOzFFMDQ7MDA0MiAwMzIzOworMUUwNTsxRTA1OzAwNjIgMDMyMzsxRTA1OzAwNjIgMDMyMzsKKzFFMDY7MUUwNjswMDQyIDAzMzE7MUUwNjswMDQyIDAzMzE7CisxRTA3OzFFMDc7MDA2MiAwMzMxOzFFMDc7MDA2MiAwMzMxOworMUUwODsxRTA4OzAwNDMgMDMyNyAwMzAxOzFFMDg7MDA0MyAwMzI3IDAzMDE7CisxRTA5OzFFMDk7MDA2MyAwMzI3IDAzMDE7MUUwOTswMDYzIDAzMjcgMDMwMTsKKzFFMEE7MUUwQTswMDQ0IDAzMDc7MUUwQTswMDQ0IDAzMDc7CisxRTBCOzFFMEI7MDA2NCAwMzA3OzFFMEI7MDA2NCAwMzA3OworMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsKKzFFMEQ7MUUwRDswMDY0IDAzMjM7MUUwRDswMDY0IDAzMjM7CisxRTBFOzFFMEU7MDA0NCAwMzMxOzFFMEU7MDA0NCAwMzMxOworMUUwRjsxRTBGOzAwNjQgMDMzMTsxRTBGOzAwNjQgMDMzMTsKKzFFMTA7MUUxMDswMDQ0IDAzMjc7MUUxMDswMDQ0IDAzMjc7CisxRTExOzFFMTE7MDA2NCAwMzI3OzFFMTE7MDA2NCAwMzI3OworMUUxMjsxRTEyOzAwNDQgMDMyRDsxRTEyOzAwNDQgMDMyRDsKKzFFMTM7MUUxMzswMDY0IDAzMkQ7MUUxMzswMDY0IDAzMkQ7CisxRTE0OzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzFFMTU7MUUxNTswMDY1IDAzMDQgMDMwMDsxRTE1OzAwNjUgMDMwNCAwMzAwOworMUUxNjsxRTE2OzAwNDUgMDMwNCAwMzAxOzFFMTY7MDA0NSAwMzA0IDAzMDE7CisxRTE3OzFFMTc7MDA2NSAwMzA0IDAzMDE7MUUxNzswMDY1IDAzMDQgMDMwMTsKKzFFMTg7MUUxODswMDQ1IDAzMkQ7MUUxODswMDQ1IDAzMkQ7CisxRTE5OzFFMTk7MDA2NSAwMzJEOzFFMTk7MDA2NSAwMzJEOworMUUxQTsxRTFBOzAwNDUgMDMzMDsxRTFBOzAwNDUgMDMzMDsKKzFFMUI7MUUxQjswMDY1IDAzMzA7MUUxQjswMDY1IDAzMzA7CisxRTFDOzFFMUM7MDA0NSAwMzI3IDAzMDY7MUUxQzswMDQ1IDAzMjcgMDMwNjsKKzFFMUQ7MUUxRDswMDY1IDAzMjcgMDMwNjsxRTFEOzAwNjUgMDMyNyAwMzA2OworMUUxRTsxRTFFOzAwNDYgMDMwNzsxRTFFOzAwNDYgMDMwNzsKKzFFMUY7MUUxRjswMDY2IDAzMDc7MUUxRjswMDY2IDAzMDc7CisxRTIwOzFFMjA7MDA0NyAwMzA0OzFFMjA7MDA0NyAwMzA0OworMUUyMTsxRTIxOzAwNjcgMDMwNDsxRTIxOzAwNjcgMDMwNDsKKzFFMjI7MUUyMjswMDQ4IDAzMDc7MUUyMjswMDQ4IDAzMDc7CisxRTIzOzFFMjM7MDA2OCAwMzA3OzFFMjM7MDA2OCAwMzA3OworMUUyNDsxRTI0OzAwNDggMDMyMzsxRTI0OzAwNDggMDMyMzsKKzFFMjU7MUUyNTswMDY4IDAzMjM7MUUyNTswMDY4IDAzMjM7CisxRTI2OzFFMjY7MDA0OCAwMzA4OzFFMjY7MDA0OCAwMzA4OworMUUyNzsxRTI3OzAwNjggMDMwODsxRTI3OzAwNjggMDMwODsKKzFFMjg7MUUyODswMDQ4IDAzMjc7MUUyODswMDQ4IDAzMjc7CisxRTI5OzFFMjk7MDA2OCAwMzI3OzFFMjk7MDA2OCAwMzI3OworMUUyQTsxRTJBOzAwNDggMDMyRTsxRTJBOzAwNDggMDMyRTsKKzFFMkI7MUUyQjswMDY4IDAzMkU7MUUyQjswMDY4IDAzMkU7CisxRTJDOzFFMkM7MDA0OSAwMzMwOzFFMkM7MDA0OSAwMzMwOworMUUyRDsxRTJEOzAwNjkgMDMzMDsxRTJEOzAwNjkgMDMzMDsKKzFFMkU7MUUyRTswMDQ5IDAzMDggMDMwMTsxRTJFOzAwNDkgMDMwOCAwMzAxOworMUUyRjsxRTJGOzAwNjkgMDMwOCAwMzAxOzFFMkY7MDA2OSAwMzA4IDAzMDE7CisxRTMwOzFFMzA7MDA0QiAwMzAxOzFFMzA7MDA0QiAwMzAxOworMUUzMTsxRTMxOzAwNkIgMDMwMTsxRTMxOzAwNkIgMDMwMTsKKzFFMzI7MUUzMjswMDRCIDAzMjM7MUUzMjswMDRCIDAzMjM7CisxRTMzOzFFMzM7MDA2QiAwMzIzOzFFMzM7MDA2QiAwMzIzOworMUUzNDsxRTM0OzAwNEIgMDMzMTsxRTM0OzAwNEIgMDMzMTsKKzFFMzU7MUUzNTswMDZCIDAzMzE7MUUzNTswMDZCIDAzMzE7CisxRTM2OzFFMzY7MDA0QyAwMzIzOzFFMzY7MDA0QyAwMzIzOworMUUzNzsxRTM3OzAwNkMgMDMyMzsxRTM3OzAwNkMgMDMyMzsKKzFFMzg7MUUzODswMDRDIDAzMjMgMDMwNDsxRTM4OzAwNEMgMDMyMyAwMzA0OworMUUzOTsxRTM5OzAwNkMgMDMyMyAwMzA0OzFFMzk7MDA2QyAwMzIzIDAzMDQ7CisxRTNBOzFFM0E7MDA0QyAwMzMxOzFFM0E7MDA0QyAwMzMxOworMUUzQjsxRTNCOzAwNkMgMDMzMTsxRTNCOzAwNkMgMDMzMTsKKzFFM0M7MUUzQzswMDRDIDAzMkQ7MUUzQzswMDRDIDAzMkQ7CisxRTNEOzFFM0Q7MDA2QyAwMzJEOzFFM0Q7MDA2QyAwMzJEOworMUUzRTsxRTNFOzAwNEQgMDMwMTsxRTNFOzAwNEQgMDMwMTsKKzFFM0Y7MUUzRjswMDZEIDAzMDE7MUUzRjswMDZEIDAzMDE7CisxRTQwOzFFNDA7MDA0RCAwMzA3OzFFNDA7MDA0RCAwMzA3OworMUU0MTsxRTQxOzAwNkQgMDMwNzsxRTQxOzAwNkQgMDMwNzsKKzFFNDI7MUU0MjswMDREIDAzMjM7MUU0MjswMDREIDAzMjM7CisxRTQzOzFFNDM7MDA2RCAwMzIzOzFFNDM7MDA2RCAwMzIzOworMUU0NDsxRTQ0OzAwNEUgMDMwNzsxRTQ0OzAwNEUgMDMwNzsKKzFFNDU7MUU0NTswMDZFIDAzMDc7MUU0NTswMDZFIDAzMDc7CisxRTQ2OzFFNDY7MDA0RSAwMzIzOzFFNDY7MDA0RSAwMzIzOworMUU0NzsxRTQ3OzAwNkUgMDMyMzsxRTQ3OzAwNkUgMDMyMzsKKzFFNDg7MUU0ODswMDRFIDAzMzE7MUU0ODswMDRFIDAzMzE7CisxRTQ5OzFFNDk7MDA2RSAwMzMxOzFFNDk7MDA2RSAwMzMxOworMUU0QTsxRTRBOzAwNEUgMDMyRDsxRTRBOzAwNEUgMDMyRDsKKzFFNEI7MUU0QjswMDZFIDAzMkQ7MUU0QjswMDZFIDAzMkQ7CisxRTRDOzFFNEM7MDA0RiAwMzAzIDAzMDE7MUU0QzswMDRGIDAzMDMgMDMwMTsKKzFFNEQ7MUU0RDswMDZGIDAzMDMgMDMwMTsxRTREOzAwNkYgMDMwMyAwMzAxOworMUU0RTsxRTRFOzAwNEYgMDMwMyAwMzA4OzFFNEU7MDA0RiAwMzAzIDAzMDg7CisxRTRGOzFFNEY7MDA2RiAwMzAzIDAzMDg7MUU0RjswMDZGIDAzMDMgMDMwODsKKzFFNTA7MUU1MDswMDRGIDAzMDQgMDMwMDsxRTUwOzAwNEYgMDMwNCAwMzAwOworMUU1MTsxRTUxOzAwNkYgMDMwNCAwMzAwOzFFNTE7MDA2RiAwMzA0IDAzMDA7CisxRTUyOzFFNTI7MDA0RiAwMzA0IDAzMDE7MUU1MjswMDRGIDAzMDQgMDMwMTsKKzFFNTM7MUU1MzswMDZGIDAzMDQgMDMwMTsxRTUzOzAwNkYgMDMwNCAwMzAxOworMUU1NDsxRTU0OzAwNTAgMDMwMTsxRTU0OzAwNTAgMDMwMTsKKzFFNTU7MUU1NTswMDcwIDAzMDE7MUU1NTswMDcwIDAzMDE7CisxRTU2OzFFNTY7MDA1MCAwMzA3OzFFNTY7MDA1MCAwMzA3OworMUU1NzsxRTU3OzAwNzAgMDMwNzsxRTU3OzAwNzAgMDMwNzsKKzFFNTg7MUU1ODswMDUyIDAzMDc7MUU1ODswMDUyIDAzMDc7CisxRTU5OzFFNTk7MDA3MiAwMzA3OzFFNTk7MDA3MiAwMzA3OworMUU1QTsxRTVBOzAwNTIgMDMyMzsxRTVBOzAwNTIgMDMyMzsKKzFFNUI7MUU1QjswMDcyIDAzMjM7MUU1QjswMDcyIDAzMjM7CisxRTVDOzFFNUM7MDA1MiAwMzIzIDAzMDQ7MUU1QzswMDUyIDAzMjMgMDMwNDsKKzFFNUQ7MUU1RDswMDcyIDAzMjMgMDMwNDsxRTVEOzAwNzIgMDMyMyAwMzA0OworMUU1RTsxRTVFOzAwNTIgMDMzMTsxRTVFOzAwNTIgMDMzMTsKKzFFNUY7MUU1RjswMDcyIDAzMzE7MUU1RjswMDcyIDAzMzE7CisxRTYwOzFFNjA7MDA1MyAwMzA3OzFFNjA7MDA1MyAwMzA3OworMUU2MTsxRTYxOzAwNzMgMDMwNzsxRTYxOzAwNzMgMDMwNzsKKzFFNjI7MUU2MjswMDUzIDAzMjM7MUU2MjswMDUzIDAzMjM7CisxRTYzOzFFNjM7MDA3MyAwMzIzOzFFNjM7MDA3MyAwMzIzOworMUU2NDsxRTY0OzAwNTMgMDMwMSAwMzA3OzFFNjQ7MDA1MyAwMzAxIDAzMDc7CisxRTY1OzFFNjU7MDA3MyAwMzAxIDAzMDc7MUU2NTswMDczIDAzMDEgMDMwNzsKKzFFNjY7MUU2NjswMDUzIDAzMEMgMDMwNzsxRTY2OzAwNTMgMDMwQyAwMzA3OworMUU2NzsxRTY3OzAwNzMgMDMwQyAwMzA3OzFFNjc7MDA3MyAwMzBDIDAzMDc7CisxRTY4OzFFNjg7MDA1MyAwMzIzIDAzMDc7MUU2ODswMDUzIDAzMjMgMDMwNzsKKzFFNjk7MUU2OTswMDczIDAzMjMgMDMwNzsxRTY5OzAwNzMgMDMyMyAwMzA3OworMUU2QTsxRTZBOzAwNTQgMDMwNzsxRTZBOzAwNTQgMDMwNzsKKzFFNkI7MUU2QjswMDc0IDAzMDc7MUU2QjswMDc0IDAzMDc7CisxRTZDOzFFNkM7MDA1NCAwMzIzOzFFNkM7MDA1NCAwMzIzOworMUU2RDsxRTZEOzAwNzQgMDMyMzsxRTZEOzAwNzQgMDMyMzsKKzFFNkU7MUU2RTswMDU0IDAzMzE7MUU2RTswMDU0IDAzMzE7CisxRTZGOzFFNkY7MDA3NCAwMzMxOzFFNkY7MDA3NCAwMzMxOworMUU3MDsxRTcwOzAwNTQgMDMyRDsxRTcwOzAwNTQgMDMyRDsKKzFFNzE7MUU3MTswMDc0IDAzMkQ7MUU3MTswMDc0IDAzMkQ7CisxRTcyOzFFNzI7MDA1NSAwMzI0OzFFNzI7MDA1NSAwMzI0OworMUU3MzsxRTczOzAwNzUgMDMyNDsxRTczOzAwNzUgMDMyNDsKKzFFNzQ7MUU3NDswMDU1IDAzMzA7MUU3NDswMDU1IDAzMzA7CisxRTc1OzFFNzU7MDA3NSAwMzMwOzFFNzU7MDA3NSAwMzMwOworMUU3NjsxRTc2OzAwNTUgMDMyRDsxRTc2OzAwNTUgMDMyRDsKKzFFNzc7MUU3NzswMDc1IDAzMkQ7MUU3NzswMDc1IDAzMkQ7CisxRTc4OzFFNzg7MDA1NSAwMzAzIDAzMDE7MUU3ODswMDU1IDAzMDMgMDMwMTsKKzFFNzk7MUU3OTswMDc1IDAzMDMgMDMwMTsxRTc5OzAwNzUgMDMwMyAwMzAxOworMUU3QTsxRTdBOzAwNTUgMDMwNCAwMzA4OzFFN0E7MDA1NSAwMzA0IDAzMDg7CisxRTdCOzFFN0I7MDA3NSAwMzA0IDAzMDg7MUU3QjswMDc1IDAzMDQgMDMwODsKKzFFN0M7MUU3QzswMDU2IDAzMDM7MUU3QzswMDU2IDAzMDM7CisxRTdEOzFFN0Q7MDA3NiAwMzAzOzFFN0Q7MDA3NiAwMzAzOworMUU3RTsxRTdFOzAwNTYgMDMyMzsxRTdFOzAwNTYgMDMyMzsKKzFFN0Y7MUU3RjswMDc2IDAzMjM7MUU3RjswMDc2IDAzMjM7CisxRTgwOzFFODA7MDA1NyAwMzAwOzFFODA7MDA1NyAwMzAwOworMUU4MTsxRTgxOzAwNzcgMDMwMDsxRTgxOzAwNzcgMDMwMDsKKzFFODI7MUU4MjswMDU3IDAzMDE7MUU4MjswMDU3IDAzMDE7CisxRTgzOzFFODM7MDA3NyAwMzAxOzFFODM7MDA3NyAwMzAxOworMUU4NDsxRTg0OzAwNTcgMDMwODsxRTg0OzAwNTcgMDMwODsKKzFFODU7MUU4NTswMDc3IDAzMDg7MUU4NTswMDc3IDAzMDg7CisxRTg2OzFFODY7MDA1NyAwMzA3OzFFODY7MDA1NyAwMzA3OworMUU4NzsxRTg3OzAwNzcgMDMwNzsxRTg3OzAwNzcgMDMwNzsKKzFFODg7MUU4ODswMDU3IDAzMjM7MUU4ODswMDU3IDAzMjM7CisxRTg5OzFFODk7MDA3NyAwMzIzOzFFODk7MDA3NyAwMzIzOworMUU4QTsxRThBOzAwNTggMDMwNzsxRThBOzAwNTggMDMwNzsKKzFFOEI7MUU4QjswMDc4IDAzMDc7MUU4QjswMDc4IDAzMDc7CisxRThDOzFFOEM7MDA1OCAwMzA4OzFFOEM7MDA1OCAwMzA4OworMUU4RDsxRThEOzAwNzggMDMwODsxRThEOzAwNzggMDMwODsKKzFFOEU7MUU4RTswMDU5IDAzMDc7MUU4RTswMDU5IDAzMDc7CisxRThGOzFFOEY7MDA3OSAwMzA3OzFFOEY7MDA3OSAwMzA3OworMUU5MDsxRTkwOzAwNUEgMDMwMjsxRTkwOzAwNUEgMDMwMjsKKzFFOTE7MUU5MTswMDdBIDAzMDI7MUU5MTswMDdBIDAzMDI7CisxRTkyOzFFOTI7MDA1QSAwMzIzOzFFOTI7MDA1QSAwMzIzOworMUU5MzsxRTkzOzAwN0EgMDMyMzsxRTkzOzAwN0EgMDMyMzsKKzFFOTQ7MUU5NDswMDVBIDAzMzE7MUU5NDswMDVBIDAzMzE7CisxRTk1OzFFOTU7MDA3QSAwMzMxOzFFOTU7MDA3QSAwMzMxOworMUU5NjsxRTk2OzAwNjggMDMzMTsxRTk2OzAwNjggMDMzMTsKKzFFOTc7MUU5NzswMDc0IDAzMDg7MUU5NzswMDc0IDAzMDg7CisxRTk4OzFFOTg7MDA3NyAwMzBBOzFFOTg7MDA3NyAwMzBBOworMUU5OTsxRTk5OzAwNzkgMDMwQTsxRTk5OzAwNzkgMDMwQTsKKzFFOUE7MUU5QTsxRTlBOzAwNjEgMDJCRTswMDYxIDAyQkU7CisxRTlCOzFFOUI7MDE3RiAwMzA3OzFFNjE7MDA3MyAwMzA3OworMUVBMDsxRUEwOzAwNDEgMDMyMzsxRUEwOzAwNDEgMDMyMzsKKzFFQTE7MUVBMTswMDYxIDAzMjM7MUVBMTswMDYxIDAzMjM7CisxRUEyOzFFQTI7MDA0MSAwMzA5OzFFQTI7MDA0MSAwMzA5OworMUVBMzsxRUEzOzAwNjEgMDMwOTsxRUEzOzAwNjEgMDMwOTsKKzFFQTQ7MUVBNDswMDQxIDAzMDIgMDMwMTsxRUE0OzAwNDEgMDMwMiAwMzAxOworMUVBNTsxRUE1OzAwNjEgMDMwMiAwMzAxOzFFQTU7MDA2MSAwMzAyIDAzMDE7CisxRUE2OzFFQTY7MDA0MSAwMzAyIDAzMDA7MUVBNjswMDQxIDAzMDIgMDMwMDsKKzFFQTc7MUVBNzswMDYxIDAzMDIgMDMwMDsxRUE3OzAwNjEgMDMwMiAwMzAwOworMUVBODsxRUE4OzAwNDEgMDMwMiAwMzA5OzFFQTg7MDA0MSAwMzAyIDAzMDk7CisxRUE5OzFFQTk7MDA2MSAwMzAyIDAzMDk7MUVBOTswMDYxIDAzMDIgMDMwOTsKKzFFQUE7MUVBQTswMDQxIDAzMDIgMDMwMzsxRUFBOzAwNDEgMDMwMiAwMzAzOworMUVBQjsxRUFCOzAwNjEgMDMwMiAwMzAzOzFFQUI7MDA2MSAwMzAyIDAzMDM7CisxRUFDOzFFQUM7MDA0MSAwMzIzIDAzMDI7MUVBQzswMDQxIDAzMjMgMDMwMjsKKzFFQUQ7MUVBRDswMDYxIDAzMjMgMDMwMjsxRUFEOzAwNjEgMDMyMyAwMzAyOworMUVBRTsxRUFFOzAwNDEgMDMwNiAwMzAxOzFFQUU7MDA0MSAwMzA2IDAzMDE7CisxRUFGOzFFQUY7MDA2MSAwMzA2IDAzMDE7MUVBRjswMDYxIDAzMDYgMDMwMTsKKzFFQjA7MUVCMDswMDQxIDAzMDYgMDMwMDsxRUIwOzAwNDEgMDMwNiAwMzAwOworMUVCMTsxRUIxOzAwNjEgMDMwNiAwMzAwOzFFQjE7MDA2MSAwMzA2IDAzMDA7CisxRUIyOzFFQjI7MDA0MSAwMzA2IDAzMDk7MUVCMjswMDQxIDAzMDYgMDMwOTsKKzFFQjM7MUVCMzswMDYxIDAzMDYgMDMwOTsxRUIzOzAwNjEgMDMwNiAwMzA5OworMUVCNDsxRUI0OzAwNDEgMDMwNiAwMzAzOzFFQjQ7MDA0MSAwMzA2IDAzMDM7CisxRUI1OzFFQjU7MDA2MSAwMzA2IDAzMDM7MUVCNTswMDYxIDAzMDYgMDMwMzsKKzFFQjY7MUVCNjswMDQxIDAzMjMgMDMwNjsxRUI2OzAwNDEgMDMyMyAwMzA2OworMUVCNzsxRUI3OzAwNjEgMDMyMyAwMzA2OzFFQjc7MDA2MSAwMzIzIDAzMDY7CisxRUI4OzFFQjg7MDA0NSAwMzIzOzFFQjg7MDA0NSAwMzIzOworMUVCOTsxRUI5OzAwNjUgMDMyMzsxRUI5OzAwNjUgMDMyMzsKKzFFQkE7MUVCQTswMDQ1IDAzMDk7MUVCQTswMDQ1IDAzMDk7CisxRUJCOzFFQkI7MDA2NSAwMzA5OzFFQkI7MDA2NSAwMzA5OworMUVCQzsxRUJDOzAwNDUgMDMwMzsxRUJDOzAwNDUgMDMwMzsKKzFFQkQ7MUVCRDswMDY1IDAzMDM7MUVCRDswMDY1IDAzMDM7CisxRUJFOzFFQkU7MDA0NSAwMzAyIDAzMDE7MUVCRTswMDQ1IDAzMDIgMDMwMTsKKzFFQkY7MUVCRjswMDY1IDAzMDIgMDMwMTsxRUJGOzAwNjUgMDMwMiAwMzAxOworMUVDMDsxRUMwOzAwNDUgMDMwMiAwMzAwOzFFQzA7MDA0NSAwMzAyIDAzMDA7CisxRUMxOzFFQzE7MDA2NSAwMzAyIDAzMDA7MUVDMTswMDY1IDAzMDIgMDMwMDsKKzFFQzI7MUVDMjswMDQ1IDAzMDIgMDMwOTsxRUMyOzAwNDUgMDMwMiAwMzA5OworMUVDMzsxRUMzOzAwNjUgMDMwMiAwMzA5OzFFQzM7MDA2NSAwMzAyIDAzMDk7CisxRUM0OzFFQzQ7MDA0NSAwMzAyIDAzMDM7MUVDNDswMDQ1IDAzMDIgMDMwMzsKKzFFQzU7MUVDNTswMDY1IDAzMDIgMDMwMzsxRUM1OzAwNjUgMDMwMiAwMzAzOworMUVDNjsxRUM2OzAwNDUgMDMyMyAwMzAyOzFFQzY7MDA0NSAwMzIzIDAzMDI7CisxRUM3OzFFQzc7MDA2NSAwMzIzIDAzMDI7MUVDNzswMDY1IDAzMjMgMDMwMjsKKzFFQzg7MUVDODswMDQ5IDAzMDk7MUVDODswMDQ5IDAzMDk7CisxRUM5OzFFQzk7MDA2OSAwMzA5OzFFQzk7MDA2OSAwMzA5OworMUVDQTsxRUNBOzAwNDkgMDMyMzsxRUNBOzAwNDkgMDMyMzsKKzFFQ0I7MUVDQjswMDY5IDAzMjM7MUVDQjswMDY5IDAzMjM7CisxRUNDOzFFQ0M7MDA0RiAwMzIzOzFFQ0M7MDA0RiAwMzIzOworMUVDRDsxRUNEOzAwNkYgMDMyMzsxRUNEOzAwNkYgMDMyMzsKKzFFQ0U7MUVDRTswMDRGIDAzMDk7MUVDRTswMDRGIDAzMDk7CisxRUNGOzFFQ0Y7MDA2RiAwMzA5OzFFQ0Y7MDA2RiAwMzA5OworMUVEMDsxRUQwOzAwNEYgMDMwMiAwMzAxOzFFRDA7MDA0RiAwMzAyIDAzMDE7CisxRUQxOzFFRDE7MDA2RiAwMzAyIDAzMDE7MUVEMTswMDZGIDAzMDIgMDMwMTsKKzFFRDI7MUVEMjswMDRGIDAzMDIgMDMwMDsxRUQyOzAwNEYgMDMwMiAwMzAwOworMUVEMzsxRUQzOzAwNkYgMDMwMiAwMzAwOzFFRDM7MDA2RiAwMzAyIDAzMDA7CisxRUQ0OzFFRDQ7MDA0RiAwMzAyIDAzMDk7MUVENDswMDRGIDAzMDIgMDMwOTsKKzFFRDU7MUVENTswMDZGIDAzMDIgMDMwOTsxRUQ1OzAwNkYgMDMwMiAwMzA5OworMUVENjsxRUQ2OzAwNEYgMDMwMiAwMzAzOzFFRDY7MDA0RiAwMzAyIDAzMDM7CisxRUQ3OzFFRDc7MDA2RiAwMzAyIDAzMDM7MUVENzswMDZGIDAzMDIgMDMwMzsKKzFFRDg7MUVEODswMDRGIDAzMjMgMDMwMjsxRUQ4OzAwNEYgMDMyMyAwMzAyOworMUVEOTsxRUQ5OzAwNkYgMDMyMyAwMzAyOzFFRDk7MDA2RiAwMzIzIDAzMDI7CisxRURBOzFFREE7MDA0RiAwMzFCIDAzMDE7MUVEQTswMDRGIDAzMUIgMDMwMTsKKzFFREI7MUVEQjswMDZGIDAzMUIgMDMwMTsxRURCOzAwNkYgMDMxQiAwMzAxOworMUVEQzsxRURDOzAwNEYgMDMxQiAwMzAwOzFFREM7MDA0RiAwMzFCIDAzMDA7CisxRUREOzFFREQ7MDA2RiAwMzFCIDAzMDA7MUVERDswMDZGIDAzMUIgMDMwMDsKKzFFREU7MUVERTswMDRGIDAzMUIgMDMwOTsxRURFOzAwNEYgMDMxQiAwMzA5OworMUVERjsxRURGOzAwNkYgMDMxQiAwMzA5OzFFREY7MDA2RiAwMzFCIDAzMDk7CisxRUUwOzFFRTA7MDA0RiAwMzFCIDAzMDM7MUVFMDswMDRGIDAzMUIgMDMwMzsKKzFFRTE7MUVFMTswMDZGIDAzMUIgMDMwMzsxRUUxOzAwNkYgMDMxQiAwMzAzOworMUVFMjsxRUUyOzAwNEYgMDMxQiAwMzIzOzFFRTI7MDA0RiAwMzFCIDAzMjM7CisxRUUzOzFFRTM7MDA2RiAwMzFCIDAzMjM7MUVFMzswMDZGIDAzMUIgMDMyMzsKKzFFRTQ7MUVFNDswMDU1IDAzMjM7MUVFNDswMDU1IDAzMjM7CisxRUU1OzFFRTU7MDA3NSAwMzIzOzFFRTU7MDA3NSAwMzIzOworMUVFNjsxRUU2OzAwNTUgMDMwOTsxRUU2OzAwNTUgMDMwOTsKKzFFRTc7MUVFNzswMDc1IDAzMDk7MUVFNzswMDc1IDAzMDk7CisxRUU4OzFFRTg7MDA1NSAwMzFCIDAzMDE7MUVFODswMDU1IDAzMUIgMDMwMTsKKzFFRTk7MUVFOTswMDc1IDAzMUIgMDMwMTsxRUU5OzAwNzUgMDMxQiAwMzAxOworMUVFQTsxRUVBOzAwNTUgMDMxQiAwMzAwOzFFRUE7MDA1NSAwMzFCIDAzMDA7CisxRUVCOzFFRUI7MDA3NSAwMzFCIDAzMDA7MUVFQjswMDc1IDAzMUIgMDMwMDsKKzFFRUM7MUVFQzswMDU1IDAzMUIgMDMwOTsxRUVDOzAwNTUgMDMxQiAwMzA5OworMUVFRDsxRUVEOzAwNzUgMDMxQiAwMzA5OzFFRUQ7MDA3NSAwMzFCIDAzMDk7CisxRUVFOzFFRUU7MDA1NSAwMzFCIDAzMDM7MUVFRTswMDU1IDAzMUIgMDMwMzsKKzFFRUY7MUVFRjswMDc1IDAzMUIgMDMwMzsxRUVGOzAwNzUgMDMxQiAwMzAzOworMUVGMDsxRUYwOzAwNTUgMDMxQiAwMzIzOzFFRjA7MDA1NSAwMzFCIDAzMjM7CisxRUYxOzFFRjE7MDA3NSAwMzFCIDAzMjM7MUVGMTswMDc1IDAzMUIgMDMyMzsKKzFFRjI7MUVGMjswMDU5IDAzMDA7MUVGMjswMDU5IDAzMDA7CisxRUYzOzFFRjM7MDA3OSAwMzAwOzFFRjM7MDA3OSAwMzAwOworMUVGNDsxRUY0OzAwNTkgMDMyMzsxRUY0OzAwNTkgMDMyMzsKKzFFRjU7MUVGNTswMDc5IDAzMjM7MUVGNTswMDc5IDAzMjM7CisxRUY2OzFFRjY7MDA1OSAwMzA5OzFFRjY7MDA1OSAwMzA5OworMUVGNzsxRUY3OzAwNzkgMDMwOTsxRUY3OzAwNzkgMDMwOTsKKzFFRjg7MUVGODswMDU5IDAzMDM7MUVGODswMDU5IDAzMDM7CisxRUY5OzFFRjk7MDA3OSAwMzAzOzFFRjk7MDA3OSAwMzAzOworMUYwMDsxRjAwOzAzQjEgMDMxMzsxRjAwOzAzQjEgMDMxMzsKKzFGMDE7MUYwMTswM0IxIDAzMTQ7MUYwMTswM0IxIDAzMTQ7CisxRjAyOzFGMDI7MDNCMSAwMzEzIDAzMDA7MUYwMjswM0IxIDAzMTMgMDMwMDsKKzFGMDM7MUYwMzswM0IxIDAzMTQgMDMwMDsxRjAzOzAzQjEgMDMxNCAwMzAwOworMUYwNDsxRjA0OzAzQjEgMDMxMyAwMzAxOzFGMDQ7MDNCMSAwMzEzIDAzMDE7CisxRjA1OzFGMDU7MDNCMSAwMzE0IDAzMDE7MUYwNTswM0IxIDAzMTQgMDMwMTsKKzFGMDY7MUYwNjswM0IxIDAzMTMgMDM0MjsxRjA2OzAzQjEgMDMxMyAwMzQyOworMUYwNzsxRjA3OzAzQjEgMDMxNCAwMzQyOzFGMDc7MDNCMSAwMzE0IDAzNDI7CisxRjA4OzFGMDg7MDM5MSAwMzEzOzFGMDg7MDM5MSAwMzEzOworMUYwOTsxRjA5OzAzOTEgMDMxNDsxRjA5OzAzOTEgMDMxNDsKKzFGMEE7MUYwQTswMzkxIDAzMTMgMDMwMDsxRjBBOzAzOTEgMDMxMyAwMzAwOworMUYwQjsxRjBCOzAzOTEgMDMxNCAwMzAwOzFGMEI7MDM5MSAwMzE0IDAzMDA7CisxRjBDOzFGMEM7MDM5MSAwMzEzIDAzMDE7MUYwQzswMzkxIDAzMTMgMDMwMTsKKzFGMEQ7MUYwRDswMzkxIDAzMTQgMDMwMTsxRjBEOzAzOTEgMDMxNCAwMzAxOworMUYwRTsxRjBFOzAzOTEgMDMxMyAwMzQyOzFGMEU7MDM5MSAwMzEzIDAzNDI7CisxRjBGOzFGMEY7MDM5MSAwMzE0IDAzNDI7MUYwRjswMzkxIDAzMTQgMDM0MjsKKzFGMTA7MUYxMDswM0I1IDAzMTM7MUYxMDswM0I1IDAzMTM7CisxRjExOzFGMTE7MDNCNSAwMzE0OzFGMTE7MDNCNSAwMzE0OworMUYxMjsxRjEyOzAzQjUgMDMxMyAwMzAwOzFGMTI7MDNCNSAwMzEzIDAzMDA7CisxRjEzOzFGMTM7MDNCNSAwMzE0IDAzMDA7MUYxMzswM0I1IDAzMTQgMDMwMDsKKzFGMTQ7MUYxNDswM0I1IDAzMTMgMDMwMTsxRjE0OzAzQjUgMDMxMyAwMzAxOworMUYxNTsxRjE1OzAzQjUgMDMxNCAwMzAxOzFGMTU7MDNCNSAwMzE0IDAzMDE7CisxRjE4OzFGMTg7MDM5NSAwMzEzOzFGMTg7MDM5NSAwMzEzOworMUYxOTsxRjE5OzAzOTUgMDMxNDsxRjE5OzAzOTUgMDMxNDsKKzFGMUE7MUYxQTswMzk1IDAzMTMgMDMwMDsxRjFBOzAzOTUgMDMxMyAwMzAwOworMUYxQjsxRjFCOzAzOTUgMDMxNCAwMzAwOzFGMUI7MDM5NSAwMzE0IDAzMDA7CisxRjFDOzFGMUM7MDM5NSAwMzEzIDAzMDE7MUYxQzswMzk1IDAzMTMgMDMwMTsKKzFGMUQ7MUYxRDswMzk1IDAzMTQgMDMwMTsxRjFEOzAzOTUgMDMxNCAwMzAxOworMUYyMDsxRjIwOzAzQjcgMDMxMzsxRjIwOzAzQjcgMDMxMzsKKzFGMjE7MUYyMTswM0I3IDAzMTQ7MUYyMTswM0I3IDAzMTQ7CisxRjIyOzFGMjI7MDNCNyAwMzEzIDAzMDA7MUYyMjswM0I3IDAzMTMgMDMwMDsKKzFGMjM7MUYyMzswM0I3IDAzMTQgMDMwMDsxRjIzOzAzQjcgMDMxNCAwMzAwOworMUYyNDsxRjI0OzAzQjcgMDMxMyAwMzAxOzFGMjQ7MDNCNyAwMzEzIDAzMDE7CisxRjI1OzFGMjU7MDNCNyAwMzE0IDAzMDE7MUYyNTswM0I3IDAzMTQgMDMwMTsKKzFGMjY7MUYyNjswM0I3IDAzMTMgMDM0MjsxRjI2OzAzQjcgMDMxMyAwMzQyOworMUYyNzsxRjI3OzAzQjcgMDMxNCAwMzQyOzFGMjc7MDNCNyAwMzE0IDAzNDI7CisxRjI4OzFGMjg7MDM5NyAwMzEzOzFGMjg7MDM5NyAwMzEzOworMUYyOTsxRjI5OzAzOTcgMDMxNDsxRjI5OzAzOTcgMDMxNDsKKzFGMkE7MUYyQTswMzk3IDAzMTMgMDMwMDsxRjJBOzAzOTcgMDMxMyAwMzAwOworMUYyQjsxRjJCOzAzOTcgMDMxNCAwMzAwOzFGMkI7MDM5NyAwMzE0IDAzMDA7CisxRjJDOzFGMkM7MDM5NyAwMzEzIDAzMDE7MUYyQzswMzk3IDAzMTMgMDMwMTsKKzFGMkQ7MUYyRDswMzk3IDAzMTQgMDMwMTsxRjJEOzAzOTcgMDMxNCAwMzAxOworMUYyRTsxRjJFOzAzOTcgMDMxMyAwMzQyOzFGMkU7MDM5NyAwMzEzIDAzNDI7CisxRjJGOzFGMkY7MDM5NyAwMzE0IDAzNDI7MUYyRjswMzk3IDAzMTQgMDM0MjsKKzFGMzA7MUYzMDswM0I5IDAzMTM7MUYzMDswM0I5IDAzMTM7CisxRjMxOzFGMzE7MDNCOSAwMzE0OzFGMzE7MDNCOSAwMzE0OworMUYzMjsxRjMyOzAzQjkgMDMxMyAwMzAwOzFGMzI7MDNCOSAwMzEzIDAzMDA7CisxRjMzOzFGMzM7MDNCOSAwMzE0IDAzMDA7MUYzMzswM0I5IDAzMTQgMDMwMDsKKzFGMzQ7MUYzNDswM0I5IDAzMTMgMDMwMTsxRjM0OzAzQjkgMDMxMyAwMzAxOworMUYzNTsxRjM1OzAzQjkgMDMxNCAwMzAxOzFGMzU7MDNCOSAwMzE0IDAzMDE7CisxRjM2OzFGMzY7MDNCOSAwMzEzIDAzNDI7MUYzNjswM0I5IDAzMTMgMDM0MjsKKzFGMzc7MUYzNzswM0I5IDAzMTQgMDM0MjsxRjM3OzAzQjkgMDMxNCAwMzQyOworMUYzODsxRjM4OzAzOTkgMDMxMzsxRjM4OzAzOTkgMDMxMzsKKzFGMzk7MUYzOTswMzk5IDAzMTQ7MUYzOTswMzk5IDAzMTQ7CisxRjNBOzFGM0E7MDM5OSAwMzEzIDAzMDA7MUYzQTswMzk5IDAzMTMgMDMwMDsKKzFGM0I7MUYzQjswMzk5IDAzMTQgMDMwMDsxRjNCOzAzOTkgMDMxNCAwMzAwOworMUYzQzsxRjNDOzAzOTkgMDMxMyAwMzAxOzFGM0M7MDM5OSAwMzEzIDAzMDE7CisxRjNEOzFGM0Q7MDM5OSAwMzE0IDAzMDE7MUYzRDswMzk5IDAzMTQgMDMwMTsKKzFGM0U7MUYzRTswMzk5IDAzMTMgMDM0MjsxRjNFOzAzOTkgMDMxMyAwMzQyOworMUYzRjsxRjNGOzAzOTkgMDMxNCAwMzQyOzFGM0Y7MDM5OSAwMzE0IDAzNDI7CisxRjQwOzFGNDA7MDNCRiAwMzEzOzFGNDA7MDNCRiAwMzEzOworMUY0MTsxRjQxOzAzQkYgMDMxNDsxRjQxOzAzQkYgMDMxNDsKKzFGNDI7MUY0MjswM0JGIDAzMTMgMDMwMDsxRjQyOzAzQkYgMDMxMyAwMzAwOworMUY0MzsxRjQzOzAzQkYgMDMxNCAwMzAwOzFGNDM7MDNCRiAwMzE0IDAzMDA7CisxRjQ0OzFGNDQ7MDNCRiAwMzEzIDAzMDE7MUY0NDswM0JGIDAzMTMgMDMwMTsKKzFGNDU7MUY0NTswM0JGIDAzMTQgMDMwMTsxRjQ1OzAzQkYgMDMxNCAwMzAxOworMUY0ODsxRjQ4OzAzOUYgMDMxMzsxRjQ4OzAzOUYgMDMxMzsKKzFGNDk7MUY0OTswMzlGIDAzMTQ7MUY0OTswMzlGIDAzMTQ7CisxRjRBOzFGNEE7MDM5RiAwMzEzIDAzMDA7MUY0QTswMzlGIDAzMTMgMDMwMDsKKzFGNEI7MUY0QjswMzlGIDAzMTQgMDMwMDsxRjRCOzAzOUYgMDMxNCAwMzAwOworMUY0QzsxRjRDOzAzOUYgMDMxMyAwMzAxOzFGNEM7MDM5RiAwMzEzIDAzMDE7CisxRjREOzFGNEQ7MDM5RiAwMzE0IDAzMDE7MUY0RDswMzlGIDAzMTQgMDMwMTsKKzFGNTA7MUY1MDswM0M1IDAzMTM7MUY1MDswM0M1IDAzMTM7CisxRjUxOzFGNTE7MDNDNSAwMzE0OzFGNTE7MDNDNSAwMzE0OworMUY1MjsxRjUyOzAzQzUgMDMxMyAwMzAwOzFGNTI7MDNDNSAwMzEzIDAzMDA7CisxRjUzOzFGNTM7MDNDNSAwMzE0IDAzMDA7MUY1MzswM0M1IDAzMTQgMDMwMDsKKzFGNTQ7MUY1NDswM0M1IDAzMTMgMDMwMTsxRjU0OzAzQzUgMDMxMyAwMzAxOworMUY1NTsxRjU1OzAzQzUgMDMxNCAwMzAxOzFGNTU7MDNDNSAwMzE0IDAzMDE7CisxRjU2OzFGNTY7MDNDNSAwMzEzIDAzNDI7MUY1NjswM0M1IDAzMTMgMDM0MjsKKzFGNTc7MUY1NzswM0M1IDAzMTQgMDM0MjsxRjU3OzAzQzUgMDMxNCAwMzQyOworMUY1OTsxRjU5OzAzQTUgMDMxNDsxRjU5OzAzQTUgMDMxNDsKKzFGNUI7MUY1QjswM0E1IDAzMTQgMDMwMDsxRjVCOzAzQTUgMDMxNCAwMzAwOworMUY1RDsxRjVEOzAzQTUgMDMxNCAwMzAxOzFGNUQ7MDNBNSAwMzE0IDAzMDE7CisxRjVGOzFGNUY7MDNBNSAwMzE0IDAzNDI7MUY1RjswM0E1IDAzMTQgMDM0MjsKKzFGNjA7MUY2MDswM0M5IDAzMTM7MUY2MDswM0M5IDAzMTM7CisxRjYxOzFGNjE7MDNDOSAwMzE0OzFGNjE7MDNDOSAwMzE0OworMUY2MjsxRjYyOzAzQzkgMDMxMyAwMzAwOzFGNjI7MDNDOSAwMzEzIDAzMDA7CisxRjYzOzFGNjM7MDNDOSAwMzE0IDAzMDA7MUY2MzswM0M5IDAzMTQgMDMwMDsKKzFGNjQ7MUY2NDswM0M5IDAzMTMgMDMwMTsxRjY0OzAzQzkgMDMxMyAwMzAxOworMUY2NTsxRjY1OzAzQzkgMDMxNCAwMzAxOzFGNjU7MDNDOSAwMzE0IDAzMDE7CisxRjY2OzFGNjY7MDNDOSAwMzEzIDAzNDI7MUY2NjswM0M5IDAzMTMgMDM0MjsKKzFGNjc7MUY2NzswM0M5IDAzMTQgMDM0MjsxRjY3OzAzQzkgMDMxNCAwMzQyOworMUY2ODsxRjY4OzAzQTkgMDMxMzsxRjY4OzAzQTkgMDMxMzsKKzFGNjk7MUY2OTswM0E5IDAzMTQ7MUY2OTswM0E5IDAzMTQ7CisxRjZBOzFGNkE7MDNBOSAwMzEzIDAzMDA7MUY2QTswM0E5IDAzMTMgMDMwMDsKKzFGNkI7MUY2QjswM0E5IDAzMTQgMDMwMDsxRjZCOzAzQTkgMDMxNCAwMzAwOworMUY2QzsxRjZDOzAzQTkgMDMxMyAwMzAxOzFGNkM7MDNBOSAwMzEzIDAzMDE7CisxRjZEOzFGNkQ7MDNBOSAwMzE0IDAzMDE7MUY2RDswM0E5IDAzMTQgMDMwMTsKKzFGNkU7MUY2RTswM0E5IDAzMTMgMDM0MjsxRjZFOzAzQTkgMDMxMyAwMzQyOworMUY2RjsxRjZGOzAzQTkgMDMxNCAwMzQyOzFGNkY7MDNBOSAwMzE0IDAzNDI7CisxRjcwOzFGNzA7MDNCMSAwMzAwOzFGNzA7MDNCMSAwMzAwOworMUY3MTswM0FDOzAzQjEgMDMwMTswM0FDOzAzQjEgMDMwMTsKKzFGNzI7MUY3MjswM0I1IDAzMDA7MUY3MjswM0I1IDAzMDA7CisxRjczOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMUY3NDsxRjc0OzAzQjcgMDMwMDsxRjc0OzAzQjcgMDMwMDsKKzFGNzU7MDNBRTswM0I3IDAzMDE7MDNBRTswM0I3IDAzMDE7CisxRjc2OzFGNzY7MDNCOSAwMzAwOzFGNzY7MDNCOSAwMzAwOworMUY3NzswM0FGOzAzQjkgMDMwMTswM0FGOzAzQjkgMDMwMTsKKzFGNzg7MUY3ODswM0JGIDAzMDA7MUY3ODswM0JGIDAzMDA7CisxRjc5OzAzQ0M7MDNCRiAwMzAxOzAzQ0M7MDNCRiAwMzAxOworMUY3QTsxRjdBOzAzQzUgMDMwMDsxRjdBOzAzQzUgMDMwMDsKKzFGN0I7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CisxRjdDOzFGN0M7MDNDOSAwMzAwOzFGN0M7MDNDOSAwMzAwOworMUY3RDswM0NFOzAzQzkgMDMwMTswM0NFOzAzQzkgMDMwMTsKKzFGODA7MUY4MDswM0IxIDAzMTMgMDM0NTsxRjgwOzAzQjEgMDMxMyAwMzQ1OworMUY4MTsxRjgxOzAzQjEgMDMxNCAwMzQ1OzFGODE7MDNCMSAwMzE0IDAzNDU7CisxRjgyOzFGODI7MDNCMSAwMzEzIDAzMDAgMDM0NTsxRjgyOzAzQjEgMDMxMyAwMzAwIDAzNDU7CisxRjgzOzFGODM7MDNCMSAwMzE0IDAzMDAgMDM0NTsxRjgzOzAzQjEgMDMxNCAwMzAwIDAzNDU7CisxRjg0OzFGODQ7MDNCMSAwMzEzIDAzMDEgMDM0NTsxRjg0OzAzQjEgMDMxMyAwMzAxIDAzNDU7CisxRjg1OzFGODU7MDNCMSAwMzE0IDAzMDEgMDM0NTsxRjg1OzAzQjEgMDMxNCAwMzAxIDAzNDU7CisxRjg2OzFGODY7MDNCMSAwMzEzIDAzNDIgMDM0NTsxRjg2OzAzQjEgMDMxMyAwMzQyIDAzNDU7CisxRjg3OzFGODc7MDNCMSAwMzE0IDAzNDIgMDM0NTsxRjg3OzAzQjEgMDMxNCAwMzQyIDAzNDU7CisxRjg4OzFGODg7MDM5MSAwMzEzIDAzNDU7MUY4ODswMzkxIDAzMTMgMDM0NTsKKzFGODk7MUY4OTswMzkxIDAzMTQgMDM0NTsxRjg5OzAzOTEgMDMxNCAwMzQ1OworMUY4QTsxRjhBOzAzOTEgMDMxMyAwMzAwIDAzNDU7MUY4QTswMzkxIDAzMTMgMDMwMCAwMzQ1OworMUY4QjsxRjhCOzAzOTEgMDMxNCAwMzAwIDAzNDU7MUY4QjswMzkxIDAzMTQgMDMwMCAwMzQ1OworMUY4QzsxRjhDOzAzOTEgMDMxMyAwMzAxIDAzNDU7MUY4QzswMzkxIDAzMTMgMDMwMSAwMzQ1OworMUY4RDsxRjhEOzAzOTEgMDMxNCAwMzAxIDAzNDU7MUY4RDswMzkxIDAzMTQgMDMwMSAwMzQ1OworMUY4RTsxRjhFOzAzOTEgMDMxMyAwMzQyIDAzNDU7MUY4RTswMzkxIDAzMTMgMDM0MiAwMzQ1OworMUY4RjsxRjhGOzAzOTEgMDMxNCAwMzQyIDAzNDU7MUY4RjswMzkxIDAzMTQgMDM0MiAwMzQ1OworMUY5MDsxRjkwOzAzQjcgMDMxMyAwMzQ1OzFGOTA7MDNCNyAwMzEzIDAzNDU7CisxRjkxOzFGOTE7MDNCNyAwMzE0IDAzNDU7MUY5MTswM0I3IDAzMTQgMDM0NTsKKzFGOTI7MUY5MjswM0I3IDAzMTMgMDMwMCAwMzQ1OzFGOTI7MDNCNyAwMzEzIDAzMDAgMDM0NTsKKzFGOTM7MUY5MzswM0I3IDAzMTQgMDMwMCAwMzQ1OzFGOTM7MDNCNyAwMzE0IDAzMDAgMDM0NTsKKzFGOTQ7MUY5NDswM0I3IDAzMTMgMDMwMSAwMzQ1OzFGOTQ7MDNCNyAwMzEzIDAzMDEgMDM0NTsKKzFGOTU7MUY5NTswM0I3IDAzMTQgMDMwMSAwMzQ1OzFGOTU7MDNCNyAwMzE0IDAzMDEgMDM0NTsKKzFGOTY7MUY5NjswM0I3IDAzMTMgMDM0MiAwMzQ1OzFGOTY7MDNCNyAwMzEzIDAzNDIgMDM0NTsKKzFGOTc7MUY5NzswM0I3IDAzMTQgMDM0MiAwMzQ1OzFGOTc7MDNCNyAwMzE0IDAzNDIgMDM0NTsKKzFGOTg7MUY5ODswMzk3IDAzMTMgMDM0NTsxRjk4OzAzOTcgMDMxMyAwMzQ1OworMUY5OTsxRjk5OzAzOTcgMDMxNCAwMzQ1OzFGOTk7MDM5NyAwMzE0IDAzNDU7CisxRjlBOzFGOUE7MDM5NyAwMzEzIDAzMDAgMDM0NTsxRjlBOzAzOTcgMDMxMyAwMzAwIDAzNDU7CisxRjlCOzFGOUI7MDM5NyAwMzE0IDAzMDAgMDM0NTsxRjlCOzAzOTcgMDMxNCAwMzAwIDAzNDU7CisxRjlDOzFGOUM7MDM5NyAwMzEzIDAzMDEgMDM0NTsxRjlDOzAzOTcgMDMxMyAwMzAxIDAzNDU7CisxRjlEOzFGOUQ7MDM5NyAwMzE0IDAzMDEgMDM0NTsxRjlEOzAzOTcgMDMxNCAwMzAxIDAzNDU7CisxRjlFOzFGOUU7MDM5NyAwMzEzIDAzNDIgMDM0NTsxRjlFOzAzOTcgMDMxMyAwMzQyIDAzNDU7CisxRjlGOzFGOUY7MDM5NyAwMzE0IDAzNDIgMDM0NTsxRjlGOzAzOTcgMDMxNCAwMzQyIDAzNDU7CisxRkEwOzFGQTA7MDNDOSAwMzEzIDAzNDU7MUZBMDswM0M5IDAzMTMgMDM0NTsKKzFGQTE7MUZBMTswM0M5IDAzMTQgMDM0NTsxRkExOzAzQzkgMDMxNCAwMzQ1OworMUZBMjsxRkEyOzAzQzkgMDMxMyAwMzAwIDAzNDU7MUZBMjswM0M5IDAzMTMgMDMwMCAwMzQ1OworMUZBMzsxRkEzOzAzQzkgMDMxNCAwMzAwIDAzNDU7MUZBMzswM0M5IDAzMTQgMDMwMCAwMzQ1OworMUZBNDsxRkE0OzAzQzkgMDMxMyAwMzAxIDAzNDU7MUZBNDswM0M5IDAzMTMgMDMwMSAwMzQ1OworMUZBNTsxRkE1OzAzQzkgMDMxNCAwMzAxIDAzNDU7MUZBNTswM0M5IDAzMTQgMDMwMSAwMzQ1OworMUZBNjsxRkE2OzAzQzkgMDMxMyAwMzQyIDAzNDU7MUZBNjswM0M5IDAzMTMgMDM0MiAwMzQ1OworMUZBNzsxRkE3OzAzQzkgMDMxNCAwMzQyIDAzNDU7MUZBNzswM0M5IDAzMTQgMDM0MiAwMzQ1OworMUZBODsxRkE4OzAzQTkgMDMxMyAwMzQ1OzFGQTg7MDNBOSAwMzEzIDAzNDU7CisxRkE5OzFGQTk7MDNBOSAwMzE0IDAzNDU7MUZBOTswM0E5IDAzMTQgMDM0NTsKKzFGQUE7MUZBQTswM0E5IDAzMTMgMDMwMCAwMzQ1OzFGQUE7MDNBOSAwMzEzIDAzMDAgMDM0NTsKKzFGQUI7MUZBQjswM0E5IDAzMTQgMDMwMCAwMzQ1OzFGQUI7MDNBOSAwMzE0IDAzMDAgMDM0NTsKKzFGQUM7MUZBQzswM0E5IDAzMTMgMDMwMSAwMzQ1OzFGQUM7MDNBOSAwMzEzIDAzMDEgMDM0NTsKKzFGQUQ7MUZBRDswM0E5IDAzMTQgMDMwMSAwMzQ1OzFGQUQ7MDNBOSAwMzE0IDAzMDEgMDM0NTsKKzFGQUU7MUZBRTswM0E5IDAzMTMgMDM0MiAwMzQ1OzFGQUU7MDNBOSAwMzEzIDAzNDIgMDM0NTsKKzFGQUY7MUZBRjswM0E5IDAzMTQgMDM0MiAwMzQ1OzFGQUY7MDNBOSAwMzE0IDAzNDIgMDM0NTsKKzFGQjA7MUZCMDswM0IxIDAzMDY7MUZCMDswM0IxIDAzMDY7CisxRkIxOzFGQjE7MDNCMSAwMzA0OzFGQjE7MDNCMSAwMzA0OworMUZCMjsxRkIyOzAzQjEgMDMwMCAwMzQ1OzFGQjI7MDNCMSAwMzAwIDAzNDU7CisxRkIzOzFGQjM7MDNCMSAwMzQ1OzFGQjM7MDNCMSAwMzQ1OworMUZCNDsxRkI0OzAzQjEgMDMwMSAwMzQ1OzFGQjQ7MDNCMSAwMzAxIDAzNDU7CisxRkI2OzFGQjY7MDNCMSAwMzQyOzFGQjY7MDNCMSAwMzQyOworMUZCNzsxRkI3OzAzQjEgMDM0MiAwMzQ1OzFGQjc7MDNCMSAwMzQyIDAzNDU7CisxRkI4OzFGQjg7MDM5MSAwMzA2OzFGQjg7MDM5MSAwMzA2OworMUZCOTsxRkI5OzAzOTEgMDMwNDsxRkI5OzAzOTEgMDMwNDsKKzFGQkE7MUZCQTswMzkxIDAzMDA7MUZCQTswMzkxIDAzMDA7CisxRkJCOzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMUZCQzsxRkJDOzAzOTEgMDM0NTsxRkJDOzAzOTEgMDM0NTsKKzFGQkQ7MUZCRDsxRkJEOzAwMjAgMDMxMzswMDIwIDAzMTM7CisxRkJFOzAzQjk7MDNCOTswM0I5OzAzQjk7CisxRkJGOzFGQkY7MUZCRjswMDIwIDAzMTM7MDAyMCAwMzEzOworMUZDMDsxRkMwOzFGQzA7MDAyMCAwMzQyOzAwMjAgMDM0MjsKKzFGQzE7MUZDMTswMEE4IDAzNDI7MDAyMCAwMzA4IDAzNDI7MDAyMCAwMzA4IDAzNDI7CisxRkMyOzFGQzI7MDNCNyAwMzAwIDAzNDU7MUZDMjswM0I3IDAzMDAgMDM0NTsKKzFGQzM7MUZDMzswM0I3IDAzNDU7MUZDMzswM0I3IDAzNDU7CisxRkM0OzFGQzQ7MDNCNyAwMzAxIDAzNDU7MUZDNDswM0I3IDAzMDEgMDM0NTsKKzFGQzY7MUZDNjswM0I3IDAzNDI7MUZDNjswM0I3IDAzNDI7CisxRkM3OzFGQzc7MDNCNyAwMzQyIDAzNDU7MUZDNzswM0I3IDAzNDIgMDM0NTsKKzFGQzg7MUZDODswMzk1IDAzMDA7MUZDODswMzk1IDAzMDA7CisxRkM5OzAzODg7MDM5NSAwMzAxOzAzODg7MDM5NSAwMzAxOworMUZDQTsxRkNBOzAzOTcgMDMwMDsxRkNBOzAzOTcgMDMwMDsKKzFGQ0I7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CisxRkNDOzFGQ0M7MDM5NyAwMzQ1OzFGQ0M7MDM5NyAwMzQ1OworMUZDRDsxRkNEOzFGQkYgMDMwMDswMDIwIDAzMTMgMDMwMDswMDIwIDAzMTMgMDMwMDsKKzFGQ0U7MUZDRTsxRkJGIDAzMDE7MDAyMCAwMzEzIDAzMDE7MDAyMCAwMzEzIDAzMDE7CisxRkNGOzFGQ0Y7MUZCRiAwMzQyOzAwMjAgMDMxMyAwMzQyOzAwMjAgMDMxMyAwMzQyOworMUZEMDsxRkQwOzAzQjkgMDMwNjsxRkQwOzAzQjkgMDMwNjsKKzFGRDE7MUZEMTswM0I5IDAzMDQ7MUZEMTswM0I5IDAzMDQ7CisxRkQyOzFGRDI7MDNCOSAwMzA4IDAzMDA7MUZEMjswM0I5IDAzMDggMDMwMDsKKzFGRDM7MDM5MDswM0I5IDAzMDggMDMwMTswMzkwOzAzQjkgMDMwOCAwMzAxOworMUZENjsxRkQ2OzAzQjkgMDM0MjsxRkQ2OzAzQjkgMDM0MjsKKzFGRDc7MUZENzswM0I5IDAzMDggMDM0MjsxRkQ3OzAzQjkgMDMwOCAwMzQyOworMUZEODsxRkQ4OzAzOTkgMDMwNjsxRkQ4OzAzOTkgMDMwNjsKKzFGRDk7MUZEOTswMzk5IDAzMDQ7MUZEOTswMzk5IDAzMDQ7CisxRkRBOzFGREE7MDM5OSAwMzAwOzFGREE7MDM5OSAwMzAwOworMUZEQjswMzhBOzAzOTkgMDMwMTswMzhBOzAzOTkgMDMwMTsKKzFGREQ7MUZERDsxRkZFIDAzMDA7MDAyMCAwMzE0IDAzMDA7MDAyMCAwMzE0IDAzMDA7CisxRkRFOzFGREU7MUZGRSAwMzAxOzAwMjAgMDMxNCAwMzAxOzAwMjAgMDMxNCAwMzAxOworMUZERjsxRkRGOzFGRkUgMDM0MjswMDIwIDAzMTQgMDM0MjswMDIwIDAzMTQgMDM0MjsKKzFGRTA7MUZFMDswM0M1IDAzMDY7MUZFMDswM0M1IDAzMDY7CisxRkUxOzFGRTE7MDNDNSAwMzA0OzFGRTE7MDNDNSAwMzA0OworMUZFMjsxRkUyOzAzQzUgMDMwOCAwMzAwOzFGRTI7MDNDNSAwMzA4IDAzMDA7CisxRkUzOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzFGRTQ7MUZFNDswM0MxIDAzMTM7MUZFNDswM0MxIDAzMTM7CisxRkU1OzFGRTU7MDNDMSAwMzE0OzFGRTU7MDNDMSAwMzE0OworMUZFNjsxRkU2OzAzQzUgMDM0MjsxRkU2OzAzQzUgMDM0MjsKKzFGRTc7MUZFNzswM0M1IDAzMDggMDM0MjsxRkU3OzAzQzUgMDMwOCAwMzQyOworMUZFODsxRkU4OzAzQTUgMDMwNjsxRkU4OzAzQTUgMDMwNjsKKzFGRTk7MUZFOTswM0E1IDAzMDQ7MUZFOTswM0E1IDAzMDQ7CisxRkVBOzFGRUE7MDNBNSAwMzAwOzFGRUE7MDNBNSAwMzAwOworMUZFQjswMzhFOzAzQTUgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzFGRUM7MUZFQzswM0ExIDAzMTQ7MUZFQzswM0ExIDAzMTQ7CisxRkVEOzFGRUQ7MDBBOCAwMzAwOzAwMjAgMDMwOCAwMzAwOzAwMjAgMDMwOCAwMzAwOworMUZFRTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsKKzFGRUY7MDA2MDswMDYwOzAwNjA7MDA2MDsKKzFGRjI7MUZGMjswM0M5IDAzMDAgMDM0NTsxRkYyOzAzQzkgMDMwMCAwMzQ1OworMUZGMzsxRkYzOzAzQzkgMDM0NTsxRkYzOzAzQzkgMDM0NTsKKzFGRjQ7MUZGNDswM0M5IDAzMDEgMDM0NTsxRkY0OzAzQzkgMDMwMSAwMzQ1OworMUZGNjsxRkY2OzAzQzkgMDM0MjsxRkY2OzAzQzkgMDM0MjsKKzFGRjc7MUZGNzswM0M5IDAzNDIgMDM0NTsxRkY3OzAzQzkgMDM0MiAwMzQ1OworMUZGODsxRkY4OzAzOUYgMDMwMDsxRkY4OzAzOUYgMDMwMDsKKzFGRjk7MDM4QzswMzlGIDAzMDE7MDM4QzswMzlGIDAzMDE7CisxRkZBOzFGRkE7MDNBOSAwMzAwOzFGRkE7MDNBOSAwMzAwOworMUZGQjswMzhGOzAzQTkgMDMwMTswMzhGOzAzQTkgMDMwMTsKKzFGRkM7MUZGQzswM0E5IDAzNDU7MUZGQzswM0E5IDAzNDU7CisxRkZEOzAwQjQ7MDBCNDswMDIwIDAzMDE7MDAyMCAwMzAxOworMUZGRTsxRkZFOzFGRkU7MDAyMCAwMzE0OzAwMjAgMDMxNDsKKzIwMDA7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDE7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDI7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDM7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDQ7MjAwNDsyMDA0OzAwMjA7MDAyMDsKKzIwMDU7MjAwNTsyMDA1OzAwMjA7MDAyMDsKKzIwMDY7MjAwNjsyMDA2OzAwMjA7MDAyMDsKKzIwMDc7MjAwNzsyMDA3OzAwMjA7MDAyMDsKKzIwMDg7MjAwODsyMDA4OzAwMjA7MDAyMDsKKzIwMDk7MjAwOTsyMDA5OzAwMjA7MDAyMDsKKzIwMEE7MjAwQTsyMDBBOzAwMjA7MDAyMDsKKzIwMTE7MjAxMTsyMDExOzIwMTA7MjAxMDsKKzIwMTc7MjAxNzsyMDE3OzAwMjAgMDMzMzswMDIwIDAzMzM7CisyMDI0OzIwMjQ7MjAyNDswMDJFOzAwMkU7CisyMDI1OzIwMjU7MjAyNTswMDJFIDAwMkU7MDAyRSAwMDJFOworMjAyNjsyMDI2OzIwMjY7MDAyRSAwMDJFIDAwMkU7MDAyRSAwMDJFIDAwMkU7CisyMDJGOzIwMkY7MjAyRjswMDIwOzAwMjA7CisyMDMzOzIwMzM7MjAzMzsyMDMyIDIwMzI7MjAzMiAyMDMyOworMjAzNDsyMDM0OzIwMzQ7MjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzI7CisyMDM2OzIwMzY7MjAzNjsyMDM1IDIwMzU7MjAzNSAyMDM1OworMjAzNzsyMDM3OzIwMzc7MjAzNSAyMDM1IDIwMzU7MjAzNSAyMDM1IDIwMzU7CisyMDNDOzIwM0M7MjAzQzswMDIxIDAwMjE7MDAyMSAwMDIxOworMjAzRTsyMDNFOzIwM0U7MDAyMCAwMzA1OzAwMjAgMDMwNTsKKzIwNDc7MjA0NzsyMDQ3OzAwM0YgMDAzRjswMDNGIDAwM0Y7CisyMDQ4OzIwNDg7MjA0ODswMDNGIDAwMjE7MDAzRiAwMDIxOworMjA0OTsyMDQ5OzIwNDk7MDAyMSAwMDNGOzAwMjEgMDAzRjsKKzIwNTc7MjA1NzsyMDU3OzIwMzIgMjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzIgMjAzMjsKKzIwNUY7MjA1RjsyMDVGOzAwMjA7MDAyMDsKKzIwNzA7MjA3MDsyMDcwOzAwMzA7MDAzMDsKKzIwNzE7MjA3MTsyMDcxOzAwNjk7MDA2OTsKKzIwNzQ7MjA3NDsyMDc0OzAwMzQ7MDAzNDsKKzIwNzU7MjA3NTsyMDc1OzAwMzU7MDAzNTsKKzIwNzY7MjA3NjsyMDc2OzAwMzY7MDAzNjsKKzIwNzc7MjA3NzsyMDc3OzAwMzc7MDAzNzsKKzIwNzg7MjA3ODsyMDc4OzAwMzg7MDAzODsKKzIwNzk7MjA3OTsyMDc5OzAwMzk7MDAzOTsKKzIwN0E7MjA3QTsyMDdBOzAwMkI7MDAyQjsKKzIwN0I7MjA3QjsyMDdCOzIyMTI7MjIxMjsKKzIwN0M7MjA3QzsyMDdDOzAwM0Q7MDAzRDsKKzIwN0Q7MjA3RDsyMDdEOzAwMjg7MDAyODsKKzIwN0U7MjA3RTsyMDdFOzAwMjk7MDAyOTsKKzIwN0Y7MjA3RjsyMDdGOzAwNkU7MDA2RTsKKzIwODA7MjA4MDsyMDgwOzAwMzA7MDAzMDsKKzIwODE7MjA4MTsyMDgxOzAwMzE7MDAzMTsKKzIwODI7MjA4MjsyMDgyOzAwMzI7MDAzMjsKKzIwODM7MjA4MzsyMDgzOzAwMzM7MDAzMzsKKzIwODQ7MjA4NDsyMDg0OzAwMzQ7MDAzNDsKKzIwODU7MjA4NTsyMDg1OzAwMzU7MDAzNTsKKzIwODY7MjA4NjsyMDg2OzAwMzY7MDAzNjsKKzIwODc7MjA4NzsyMDg3OzAwMzc7MDAzNzsKKzIwODg7MjA4ODsyMDg4OzAwMzg7MDAzODsKKzIwODk7MjA4OTsyMDg5OzAwMzk7MDAzOTsKKzIwOEE7MjA4QTsyMDhBOzAwMkI7MDAyQjsKKzIwOEI7MjA4QjsyMDhCOzIyMTI7MjIxMjsKKzIwOEM7MjA4QzsyMDhDOzAwM0Q7MDAzRDsKKzIwOEQ7MjA4RDsyMDhEOzAwMjg7MDAyODsKKzIwOEU7MjA4RTsyMDhFOzAwMjk7MDAyOTsKKzIwQTg7MjBBODsyMEE4OzAwNTIgMDA3MzswMDUyIDAwNzM7CisyMTAwOzIxMDA7MjEwMDswMDYxIDAwMkYgMDA2MzswMDYxIDAwMkYgMDA2MzsKKzIxMDE7MjEwMTsyMTAxOzAwNjEgMDAyRiAwMDczOzAwNjEgMDAyRiAwMDczOworMjEwMjsyMTAyOzIxMDI7MDA0MzswMDQzOworMjEwMzsyMTAzOzIxMDM7MDBCMCAwMDQzOzAwQjAgMDA0MzsKKzIxMDU7MjEwNTsyMTA1OzAwNjMgMDAyRiAwMDZGOzAwNjMgMDAyRiAwMDZGOworMjEwNjsyMTA2OzIxMDY7MDA2MyAwMDJGIDAwNzU7MDA2MyAwMDJGIDAwNzU7CisyMTA3OzIxMDc7MjEwNzswMTkwOzAxOTA7CisyMTA5OzIxMDk7MjEwOTswMEIwIDAwNDY7MDBCMCAwMDQ2OworMjEwQTsyMTBBOzIxMEE7MDA2NzswMDY3OworMjEwQjsyMTBCOzIxMEI7MDA0ODswMDQ4OworMjEwQzsyMTBDOzIxMEM7MDA0ODswMDQ4OworMjEwRDsyMTBEOzIxMEQ7MDA0ODswMDQ4OworMjEwRTsyMTBFOzIxMEU7MDA2ODswMDY4OworMjEwRjsyMTBGOzIxMEY7MDEyNzswMTI3OworMjExMDsyMTEwOzIxMTA7MDA0OTswMDQ5OworMjExMTsyMTExOzIxMTE7MDA0OTswMDQ5OworMjExMjsyMTEyOzIxMTI7MDA0QzswMDRDOworMjExMzsyMTEzOzIxMTM7MDA2QzswMDZDOworMjExNTsyMTE1OzIxMTU7MDA0RTswMDRFOworMjExNjsyMTE2OzIxMTY7MDA0RSAwMDZGOzAwNEUgMDA2RjsKKzIxMTk7MjExOTsyMTE5OzAwNTA7MDA1MDsKKzIxMUE7MjExQTsyMTFBOzAwNTE7MDA1MTsKKzIxMUI7MjExQjsyMTFCOzAwNTI7MDA1MjsKKzIxMUM7MjExQzsyMTFDOzAwNTI7MDA1MjsKKzIxMUQ7MjExRDsyMTFEOzAwNTI7MDA1MjsKKzIxMjA7MjEyMDsyMTIwOzAwNTMgMDA0RDswMDUzIDAwNEQ7CisyMTIxOzIxMjE7MjEyMTswMDU0IDAwNDUgMDA0QzswMDU0IDAwNDUgMDA0QzsKKzIxMjI7MjEyMjsyMTIyOzAwNTQgMDA0RDswMDU0IDAwNEQ7CisyMTI0OzIxMjQ7MjEyNDswMDVBOzAwNUE7CisyMTI2OzAzQTk7MDNBOTswM0E5OzAzQTk7CisyMTI4OzIxMjg7MjEyODswMDVBOzAwNUE7CisyMTJBOzAwNEI7MDA0QjswMDRCOzAwNEI7CisyMTJCOzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMjEyQzsyMTJDOzIxMkM7MDA0MjswMDQyOworMjEyRDsyMTJEOzIxMkQ7MDA0MzswMDQzOworMjEyRjsyMTJGOzIxMkY7MDA2NTswMDY1OworMjEzMDsyMTMwOzIxMzA7MDA0NTswMDQ1OworMjEzMTsyMTMxOzIxMzE7MDA0NjswMDQ2OworMjEzMzsyMTMzOzIxMzM7MDA0RDswMDREOworMjEzNDsyMTM0OzIxMzQ7MDA2RjswMDZGOworMjEzNTsyMTM1OzIxMzU7MDVEMDswNUQwOworMjEzNjsyMTM2OzIxMzY7MDVEMTswNUQxOworMjEzNzsyMTM3OzIxMzc7MDVEMjswNUQyOworMjEzODsyMTM4OzIxMzg7MDVEMzswNUQzOworMjEzOTsyMTM5OzIxMzk7MDA2OTswMDY5OworMjEzRDsyMTNEOzIxM0Q7MDNCMzswM0IzOworMjEzRTsyMTNFOzIxM0U7MDM5MzswMzkzOworMjEzRjsyMTNGOzIxM0Y7MDNBMDswM0EwOworMjE0MDsyMTQwOzIxNDA7MjIxMTsyMjExOworMjE0NTsyMTQ1OzIxNDU7MDA0NDswMDQ0OworMjE0NjsyMTQ2OzIxNDY7MDA2NDswMDY0OworMjE0NzsyMTQ3OzIxNDc7MDA2NTswMDY1OworMjE0ODsyMTQ4OzIxNDg7MDA2OTswMDY5OworMjE0OTsyMTQ5OzIxNDk7MDA2QTswMDZBOworMjE1MzsyMTUzOzIxNTM7MDAzMSAyMDQ0IDAwMzM7MDAzMSAyMDQ0IDAwMzM7CisyMTU0OzIxNTQ7MjE1NDswMDMyIDIwNDQgMDAzMzswMDMyIDIwNDQgMDAzMzsKKzIxNTU7MjE1NTsyMTU1OzAwMzEgMjA0NCAwMDM1OzAwMzEgMjA0NCAwMDM1OworMjE1NjsyMTU2OzIxNTY7MDAzMiAyMDQ0IDAwMzU7MDAzMiAyMDQ0IDAwMzU7CisyMTU3OzIxNTc7MjE1NzswMDMzIDIwNDQgMDAzNTswMDMzIDIwNDQgMDAzNTsKKzIxNTg7MjE1ODsyMTU4OzAwMzQgMjA0NCAwMDM1OzAwMzQgMjA0NCAwMDM1OworMjE1OTsyMTU5OzIxNTk7MDAzMSAyMDQ0IDAwMzY7MDAzMSAyMDQ0IDAwMzY7CisyMTVBOzIxNUE7MjE1QTswMDM1IDIwNDQgMDAzNjswMDM1IDIwNDQgMDAzNjsKKzIxNUI7MjE1QjsyMTVCOzAwMzEgMjA0NCAwMDM4OzAwMzEgMjA0NCAwMDM4OworMjE1QzsyMTVDOzIxNUM7MDAzMyAyMDQ0IDAwMzg7MDAzMyAyMDQ0IDAwMzg7CisyMTVEOzIxNUQ7MjE1RDswMDM1IDIwNDQgMDAzODswMDM1IDIwNDQgMDAzODsKKzIxNUU7MjE1RTsyMTVFOzAwMzcgMjA0NCAwMDM4OzAwMzcgMjA0NCAwMDM4OworMjE1RjsyMTVGOzIxNUY7MDAzMSAyMDQ0OzAwMzEgMjA0NDsKKzIxNjA7MjE2MDsyMTYwOzAwNDk7MDA0OTsKKzIxNjE7MjE2MTsyMTYxOzAwNDkgMDA0OTswMDQ5IDAwNDk7CisyMTYyOzIxNjI7MjE2MjswMDQ5IDAwNDkgMDA0OTswMDQ5IDAwNDkgMDA0OTsKKzIxNjM7MjE2MzsyMTYzOzAwNDkgMDA1NjswMDQ5IDAwNTY7CisyMTY0OzIxNjQ7MjE2NDswMDU2OzAwNTY7CisyMTY1OzIxNjU7MjE2NTswMDU2IDAwNDk7MDA1NiAwMDQ5OworMjE2NjsyMTY2OzIxNjY7MDA1NiAwMDQ5IDAwNDk7MDA1NiAwMDQ5IDAwNDk7CisyMTY3OzIxNjc7MjE2NzswMDU2IDAwNDkgMDA0OSAwMDQ5OzAwNTYgMDA0OSAwMDQ5IDAwNDk7CisyMTY4OzIxNjg7MjE2ODswMDQ5IDAwNTg7MDA0OSAwMDU4OworMjE2OTsyMTY5OzIxNjk7MDA1ODswMDU4OworMjE2QTsyMTZBOzIxNkE7MDA1OCAwMDQ5OzAwNTggMDA0OTsKKzIxNkI7MjE2QjsyMTZCOzAwNTggMDA0OSAwMDQ5OzAwNTggMDA0OSAwMDQ5OworMjE2QzsyMTZDOzIxNkM7MDA0QzswMDRDOworMjE2RDsyMTZEOzIxNkQ7MDA0MzswMDQzOworMjE2RTsyMTZFOzIxNkU7MDA0NDswMDQ0OworMjE2RjsyMTZGOzIxNkY7MDA0RDswMDREOworMjE3MDsyMTcwOzIxNzA7MDA2OTswMDY5OworMjE3MTsyMTcxOzIxNzE7MDA2OSAwMDY5OzAwNjkgMDA2OTsKKzIxNzI7MjE3MjsyMTcyOzAwNjkgMDA2OSAwMDY5OzAwNjkgMDA2OSAwMDY5OworMjE3MzsyMTczOzIxNzM7MDA2OSAwMDc2OzAwNjkgMDA3NjsKKzIxNzQ7MjE3NDsyMTc0OzAwNzY7MDA3NjsKKzIxNzU7MjE3NTsyMTc1OzAwNzYgMDA2OTswMDc2IDAwNjk7CisyMTc2OzIxNzY7MjE3NjswMDc2IDAwNjkgMDA2OTswMDc2IDAwNjkgMDA2OTsKKzIxNzc7MjE3NzsyMTc3OzAwNzYgMDA2OSAwMDY5IDAwNjk7MDA3NiAwMDY5IDAwNjkgMDA2OTsKKzIxNzg7MjE3ODsyMTc4OzAwNjkgMDA3ODswMDY5IDAwNzg7CisyMTc5OzIxNzk7MjE3OTswMDc4OzAwNzg7CisyMTdBOzIxN0E7MjE3QTswMDc4IDAwNjk7MDA3OCAwMDY5OworMjE3QjsyMTdCOzIxN0I7MDA3OCAwMDY5IDAwNjk7MDA3OCAwMDY5IDAwNjk7CisyMTdDOzIxN0M7MjE3QzswMDZDOzAwNkM7CisyMTdEOzIxN0Q7MjE3RDswMDYzOzAwNjM7CisyMTdFOzIxN0U7MjE3RTswMDY0OzAwNjQ7CisyMTdGOzIxN0Y7MjE3RjswMDZEOzAwNkQ7CisyMTlBOzIxOUE7MjE5MCAwMzM4OzIxOUE7MjE5MCAwMzM4OworMjE5QjsyMTlCOzIxOTIgMDMzODsyMTlCOzIxOTIgMDMzODsKKzIxQUU7MjFBRTsyMTk0IDAzMzg7MjFBRTsyMTk0IDAzMzg7CisyMUNEOzIxQ0Q7MjFEMCAwMzM4OzIxQ0Q7MjFEMCAwMzM4OworMjFDRTsyMUNFOzIxRDQgMDMzODsyMUNFOzIxRDQgMDMzODsKKzIxQ0Y7MjFDRjsyMUQyIDAzMzg7MjFDRjsyMUQyIDAzMzg7CisyMjA0OzIyMDQ7MjIwMyAwMzM4OzIyMDQ7MjIwMyAwMzM4OworMjIwOTsyMjA5OzIyMDggMDMzODsyMjA5OzIyMDggMDMzODsKKzIyMEM7MjIwQzsyMjBCIDAzMzg7MjIwQzsyMjBCIDAzMzg7CisyMjI0OzIyMjQ7MjIyMyAwMzM4OzIyMjQ7MjIyMyAwMzM4OworMjIyNjsyMjI2OzIyMjUgMDMzODsyMjI2OzIyMjUgMDMzODsKKzIyMkM7MjIyQzsyMjJDOzIyMkIgMjIyQjsyMjJCIDIyMkI7CisyMjJEOzIyMkQ7MjIyRDsyMjJCIDIyMkIgMjIyQjsyMjJCIDIyMkIgMjIyQjsKKzIyMkY7MjIyRjsyMjJGOzIyMkUgMjIyRTsyMjJFIDIyMkU7CisyMjMwOzIyMzA7MjIzMDsyMjJFIDIyMkUgMjIyRTsyMjJFIDIyMkUgMjIyRTsKKzIyNDE7MjI0MTsyMjNDIDAzMzg7MjI0MTsyMjNDIDAzMzg7CisyMjQ0OzIyNDQ7MjI0MyAwMzM4OzIyNDQ7MjI0MyAwMzM4OworMjI0NzsyMjQ3OzIyNDUgMDMzODsyMjQ3OzIyNDUgMDMzODsKKzIyNDk7MjI0OTsyMjQ4IDAzMzg7MjI0OTsyMjQ4IDAzMzg7CisyMjYwOzIyNjA7MDAzRCAwMzM4OzIyNjA7MDAzRCAwMzM4OworMjI2MjsyMjYyOzIyNjEgMDMzODsyMjYyOzIyNjEgMDMzODsKKzIyNkQ7MjI2RDsyMjREIDAzMzg7MjI2RDsyMjREIDAzMzg7CisyMjZFOzIyNkU7MDAzQyAwMzM4OzIyNkU7MDAzQyAwMzM4OworMjI2RjsyMjZGOzAwM0UgMDMzODsyMjZGOzAwM0UgMDMzODsKKzIyNzA7MjI3MDsyMjY0IDAzMzg7MjI3MDsyMjY0IDAzMzg7CisyMjcxOzIyNzE7MjI2NSAwMzM4OzIyNzE7MjI2NSAwMzM4OworMjI3NDsyMjc0OzIyNzIgMDMzODsyMjc0OzIyNzIgMDMzODsKKzIyNzU7MjI3NTsyMjczIDAzMzg7MjI3NTsyMjczIDAzMzg7CisyMjc4OzIyNzg7MjI3NiAwMzM4OzIyNzg7MjI3NiAwMzM4OworMjI3OTsyMjc5OzIyNzcgMDMzODsyMjc5OzIyNzcgMDMzODsKKzIyODA7MjI4MDsyMjdBIDAzMzg7MjI4MDsyMjdBIDAzMzg7CisyMjgxOzIyODE7MjI3QiAwMzM4OzIyODE7MjI3QiAwMzM4OworMjI4NDsyMjg0OzIyODIgMDMzODsyMjg0OzIyODIgMDMzODsKKzIyODU7MjI4NTsyMjgzIDAzMzg7MjI4NTsyMjgzIDAzMzg7CisyMjg4OzIyODg7MjI4NiAwMzM4OzIyODg7MjI4NiAwMzM4OworMjI4OTsyMjg5OzIyODcgMDMzODsyMjg5OzIyODcgMDMzODsKKzIyQUM7MjJBQzsyMkEyIDAzMzg7MjJBQzsyMkEyIDAzMzg7CisyMkFEOzIyQUQ7MjJBOCAwMzM4OzIyQUQ7MjJBOCAwMzM4OworMjJBRTsyMkFFOzIyQTkgMDMzODsyMkFFOzIyQTkgMDMzODsKKzIyQUY7MjJBRjsyMkFCIDAzMzg7MjJBRjsyMkFCIDAzMzg7CisyMkUwOzIyRTA7MjI3QyAwMzM4OzIyRTA7MjI3QyAwMzM4OworMjJFMTsyMkUxOzIyN0QgMDMzODsyMkUxOzIyN0QgMDMzODsKKzIyRTI7MjJFMjsyMjkxIDAzMzg7MjJFMjsyMjkxIDAzMzg7CisyMkUzOzIyRTM7MjI5MiAwMzM4OzIyRTM7MjI5MiAwMzM4OworMjJFQTsyMkVBOzIyQjIgMDMzODsyMkVBOzIyQjIgMDMzODsKKzIyRUI7MjJFQjsyMkIzIDAzMzg7MjJFQjsyMkIzIDAzMzg7CisyMkVDOzIyRUM7MjJCNCAwMzM4OzIyRUM7MjJCNCAwMzM4OworMjJFRDsyMkVEOzIyQjUgMDMzODsyMkVEOzIyQjUgMDMzODsKKzIzMjk7MzAwODszMDA4OzMwMDg7MzAwODsKKzIzMkE7MzAwOTszMDA5OzMwMDk7MzAwOTsKKzI0NjA7MjQ2MDsyNDYwOzAwMzE7MDAzMTsKKzI0NjE7MjQ2MTsyNDYxOzAwMzI7MDAzMjsKKzI0NjI7MjQ2MjsyNDYyOzAwMzM7MDAzMzsKKzI0NjM7MjQ2MzsyNDYzOzAwMzQ7MDAzNDsKKzI0NjQ7MjQ2NDsyNDY0OzAwMzU7MDAzNTsKKzI0NjU7MjQ2NTsyNDY1OzAwMzY7MDAzNjsKKzI0NjY7MjQ2NjsyNDY2OzAwMzc7MDAzNzsKKzI0Njc7MjQ2NzsyNDY3OzAwMzg7MDAzODsKKzI0Njg7MjQ2ODsyNDY4OzAwMzk7MDAzOTsKKzI0Njk7MjQ2OTsyNDY5OzAwMzEgMDAzMDswMDMxIDAwMzA7CisyNDZBOzI0NkE7MjQ2QTswMDMxIDAwMzE7MDAzMSAwMDMxOworMjQ2QjsyNDZCOzI0NkI7MDAzMSAwMDMyOzAwMzEgMDAzMjsKKzI0NkM7MjQ2QzsyNDZDOzAwMzEgMDAzMzswMDMxIDAwMzM7CisyNDZEOzI0NkQ7MjQ2RDswMDMxIDAwMzQ7MDAzMSAwMDM0OworMjQ2RTsyNDZFOzI0NkU7MDAzMSAwMDM1OzAwMzEgMDAzNTsKKzI0NkY7MjQ2RjsyNDZGOzAwMzEgMDAzNjswMDMxIDAwMzY7CisyNDcwOzI0NzA7MjQ3MDswMDMxIDAwMzc7MDAzMSAwMDM3OworMjQ3MTsyNDcxOzI0NzE7MDAzMSAwMDM4OzAwMzEgMDAzODsKKzI0NzI7MjQ3MjsyNDcyOzAwMzEgMDAzOTswMDMxIDAwMzk7CisyNDczOzI0NzM7MjQ3MzswMDMyIDAwMzA7MDAzMiAwMDMwOworMjQ3NDsyNDc0OzI0NzQ7MDAyOCAwMDMxIDAwMjk7MDAyOCAwMDMxIDAwMjk7CisyNDc1OzI0NzU7MjQ3NTswMDI4IDAwMzIgMDAyOTswMDI4IDAwMzIgMDAyOTsKKzI0NzY7MjQ3NjsyNDc2OzAwMjggMDAzMyAwMDI5OzAwMjggMDAzMyAwMDI5OworMjQ3NzsyNDc3OzI0Nzc7MDAyOCAwMDM0IDAwMjk7MDAyOCAwMDM0IDAwMjk7CisyNDc4OzI0Nzg7MjQ3ODswMDI4IDAwMzUgMDAyOTswMDI4IDAwMzUgMDAyOTsKKzI0Nzk7MjQ3OTsyNDc5OzAwMjggMDAzNiAwMDI5OzAwMjggMDAzNiAwMDI5OworMjQ3QTsyNDdBOzI0N0E7MDAyOCAwMDM3IDAwMjk7MDAyOCAwMDM3IDAwMjk7CisyNDdCOzI0N0I7MjQ3QjswMDI4IDAwMzggMDAyOTswMDI4IDAwMzggMDAyOTsKKzI0N0M7MjQ3QzsyNDdDOzAwMjggMDAzOSAwMDI5OzAwMjggMDAzOSAwMDI5OworMjQ3RDsyNDdEOzI0N0Q7MDAyOCAwMDMxIDAwMzAgMDAyOTswMDI4IDAwMzEgMDAzMCAwMDI5OworMjQ3RTsyNDdFOzI0N0U7MDAyOCAwMDMxIDAwMzEgMDAyOTswMDI4IDAwMzEgMDAzMSAwMDI5OworMjQ3RjsyNDdGOzI0N0Y7MDAyOCAwMDMxIDAwMzIgMDAyOTswMDI4IDAwMzEgMDAzMiAwMDI5OworMjQ4MDsyNDgwOzI0ODA7MDAyOCAwMDMxIDAwMzMgMDAyOTswMDI4IDAwMzEgMDAzMyAwMDI5OworMjQ4MTsyNDgxOzI0ODE7MDAyOCAwMDMxIDAwMzQgMDAyOTswMDI4IDAwMzEgMDAzNCAwMDI5OworMjQ4MjsyNDgyOzI0ODI7MDAyOCAwMDMxIDAwMzUgMDAyOTswMDI4IDAwMzEgMDAzNSAwMDI5OworMjQ4MzsyNDgzOzI0ODM7MDAyOCAwMDMxIDAwMzYgMDAyOTswMDI4IDAwMzEgMDAzNiAwMDI5OworMjQ4NDsyNDg0OzI0ODQ7MDAyOCAwMDMxIDAwMzcgMDAyOTswMDI4IDAwMzEgMDAzNyAwMDI5OworMjQ4NTsyNDg1OzI0ODU7MDAyOCAwMDMxIDAwMzggMDAyOTswMDI4IDAwMzEgMDAzOCAwMDI5OworMjQ4NjsyNDg2OzI0ODY7MDAyOCAwMDMxIDAwMzkgMDAyOTswMDI4IDAwMzEgMDAzOSAwMDI5OworMjQ4NzsyNDg3OzI0ODc7MDAyOCAwMDMyIDAwMzAgMDAyOTswMDI4IDAwMzIgMDAzMCAwMDI5OworMjQ4ODsyNDg4OzI0ODg7MDAzMSAwMDJFOzAwMzEgMDAyRTsKKzI0ODk7MjQ4OTsyNDg5OzAwMzIgMDAyRTswMDMyIDAwMkU7CisyNDhBOzI0OEE7MjQ4QTswMDMzIDAwMkU7MDAzMyAwMDJFOworMjQ4QjsyNDhCOzI0OEI7MDAzNCAwMDJFOzAwMzQgMDAyRTsKKzI0OEM7MjQ4QzsyNDhDOzAwMzUgMDAyRTswMDM1IDAwMkU7CisyNDhEOzI0OEQ7MjQ4RDswMDM2IDAwMkU7MDAzNiAwMDJFOworMjQ4RTsyNDhFOzI0OEU7MDAzNyAwMDJFOzAwMzcgMDAyRTsKKzI0OEY7MjQ4RjsyNDhGOzAwMzggMDAyRTswMDM4IDAwMkU7CisyNDkwOzI0OTA7MjQ5MDswMDM5IDAwMkU7MDAzOSAwMDJFOworMjQ5MTsyNDkxOzI0OTE7MDAzMSAwMDMwIDAwMkU7MDAzMSAwMDMwIDAwMkU7CisyNDkyOzI0OTI7MjQ5MjswMDMxIDAwMzEgMDAyRTswMDMxIDAwMzEgMDAyRTsKKzI0OTM7MjQ5MzsyNDkzOzAwMzEgMDAzMiAwMDJFOzAwMzEgMDAzMiAwMDJFOworMjQ5NDsyNDk0OzI0OTQ7MDAzMSAwMDMzIDAwMkU7MDAzMSAwMDMzIDAwMkU7CisyNDk1OzI0OTU7MjQ5NTswMDMxIDAwMzQgMDAyRTswMDMxIDAwMzQgMDAyRTsKKzI0OTY7MjQ5NjsyNDk2OzAwMzEgMDAzNSAwMDJFOzAwMzEgMDAzNSAwMDJFOworMjQ5NzsyNDk3OzI0OTc7MDAzMSAwMDM2IDAwMkU7MDAzMSAwMDM2IDAwMkU7CisyNDk4OzI0OTg7MjQ5ODswMDMxIDAwMzcgMDAyRTswMDMxIDAwMzcgMDAyRTsKKzI0OTk7MjQ5OTsyNDk5OzAwMzEgMDAzOCAwMDJFOzAwMzEgMDAzOCAwMDJFOworMjQ5QTsyNDlBOzI0OUE7MDAzMSAwMDM5IDAwMkU7MDAzMSAwMDM5IDAwMkU7CisyNDlCOzI0OUI7MjQ5QjswMDMyIDAwMzAgMDAyRTswMDMyIDAwMzAgMDAyRTsKKzI0OUM7MjQ5QzsyNDlDOzAwMjggMDA2MSAwMDI5OzAwMjggMDA2MSAwMDI5OworMjQ5RDsyNDlEOzI0OUQ7MDAyOCAwMDYyIDAwMjk7MDAyOCAwMDYyIDAwMjk7CisyNDlFOzI0OUU7MjQ5RTswMDI4IDAwNjMgMDAyOTswMDI4IDAwNjMgMDAyOTsKKzI0OUY7MjQ5RjsyNDlGOzAwMjggMDA2NCAwMDI5OzAwMjggMDA2NCAwMDI5OworMjRBMDsyNEEwOzI0QTA7MDAyOCAwMDY1IDAwMjk7MDAyOCAwMDY1IDAwMjk7CisyNEExOzI0QTE7MjRBMTswMDI4IDAwNjYgMDAyOTswMDI4IDAwNjYgMDAyOTsKKzI0QTI7MjRBMjsyNEEyOzAwMjggMDA2NyAwMDI5OzAwMjggMDA2NyAwMDI5OworMjRBMzsyNEEzOzI0QTM7MDAyOCAwMDY4IDAwMjk7MDAyOCAwMDY4IDAwMjk7CisyNEE0OzI0QTQ7MjRBNDswMDI4IDAwNjkgMDAyOTswMDI4IDAwNjkgMDAyOTsKKzI0QTU7MjRBNTsyNEE1OzAwMjggMDA2QSAwMDI5OzAwMjggMDA2QSAwMDI5OworMjRBNjsyNEE2OzI0QTY7MDAyOCAwMDZCIDAwMjk7MDAyOCAwMDZCIDAwMjk7CisyNEE3OzI0QTc7MjRBNzswMDI4IDAwNkMgMDAyOTswMDI4IDAwNkMgMDAyOTsKKzI0QTg7MjRBODsyNEE4OzAwMjggMDA2RCAwMDI5OzAwMjggMDA2RCAwMDI5OworMjRBOTsyNEE5OzI0QTk7MDAyOCAwMDZFIDAwMjk7MDAyOCAwMDZFIDAwMjk7CisyNEFBOzI0QUE7MjRBQTswMDI4IDAwNkYgMDAyOTswMDI4IDAwNkYgMDAyOTsKKzI0QUI7MjRBQjsyNEFCOzAwMjggMDA3MCAwMDI5OzAwMjggMDA3MCAwMDI5OworMjRBQzsyNEFDOzI0QUM7MDAyOCAwMDcxIDAwMjk7MDAyOCAwMDcxIDAwMjk7CisyNEFEOzI0QUQ7MjRBRDswMDI4IDAwNzIgMDAyOTswMDI4IDAwNzIgMDAyOTsKKzI0QUU7MjRBRTsyNEFFOzAwMjggMDA3MyAwMDI5OzAwMjggMDA3MyAwMDI5OworMjRBRjsyNEFGOzI0QUY7MDAyOCAwMDc0IDAwMjk7MDAyOCAwMDc0IDAwMjk7CisyNEIwOzI0QjA7MjRCMDswMDI4IDAwNzUgMDAyOTswMDI4IDAwNzUgMDAyOTsKKzI0QjE7MjRCMTsyNEIxOzAwMjggMDA3NiAwMDI5OzAwMjggMDA3NiAwMDI5OworMjRCMjsyNEIyOzI0QjI7MDAyOCAwMDc3IDAwMjk7MDAyOCAwMDc3IDAwMjk7CisyNEIzOzI0QjM7MjRCMzswMDI4IDAwNzggMDAyOTswMDI4IDAwNzggMDAyOTsKKzI0QjQ7MjRCNDsyNEI0OzAwMjggMDA3OSAwMDI5OzAwMjggMDA3OSAwMDI5OworMjRCNTsyNEI1OzI0QjU7MDAyOCAwMDdBIDAwMjk7MDAyOCAwMDdBIDAwMjk7CisyNEI2OzI0QjY7MjRCNjswMDQxOzAwNDE7CisyNEI3OzI0Qjc7MjRCNzswMDQyOzAwNDI7CisyNEI4OzI0Qjg7MjRCODswMDQzOzAwNDM7CisyNEI5OzI0Qjk7MjRCOTswMDQ0OzAwNDQ7CisyNEJBOzI0QkE7MjRCQTswMDQ1OzAwNDU7CisyNEJCOzI0QkI7MjRCQjswMDQ2OzAwNDY7CisyNEJDOzI0QkM7MjRCQzswMDQ3OzAwNDc7CisyNEJEOzI0QkQ7MjRCRDswMDQ4OzAwNDg7CisyNEJFOzI0QkU7MjRCRTswMDQ5OzAwNDk7CisyNEJGOzI0QkY7MjRCRjswMDRBOzAwNEE7CisyNEMwOzI0QzA7MjRDMDswMDRCOzAwNEI7CisyNEMxOzI0QzE7MjRDMTswMDRDOzAwNEM7CisyNEMyOzI0QzI7MjRDMjswMDREOzAwNEQ7CisyNEMzOzI0QzM7MjRDMzswMDRFOzAwNEU7CisyNEM0OzI0QzQ7MjRDNDswMDRGOzAwNEY7CisyNEM1OzI0QzU7MjRDNTswMDUwOzAwNTA7CisyNEM2OzI0QzY7MjRDNjswMDUxOzAwNTE7CisyNEM3OzI0Qzc7MjRDNzswMDUyOzAwNTI7CisyNEM4OzI0Qzg7MjRDODswMDUzOzAwNTM7CisyNEM5OzI0Qzk7MjRDOTswMDU0OzAwNTQ7CisyNENBOzI0Q0E7MjRDQTswMDU1OzAwNTU7CisyNENCOzI0Q0I7MjRDQjswMDU2OzAwNTY7CisyNENDOzI0Q0M7MjRDQzswMDU3OzAwNTc7CisyNENEOzI0Q0Q7MjRDRDswMDU4OzAwNTg7CisyNENFOzI0Q0U7MjRDRTswMDU5OzAwNTk7CisyNENGOzI0Q0Y7MjRDRjswMDVBOzAwNUE7CisyNEQwOzI0RDA7MjREMDswMDYxOzAwNjE7CisyNEQxOzI0RDE7MjREMTswMDYyOzAwNjI7CisyNEQyOzI0RDI7MjREMjswMDYzOzAwNjM7CisyNEQzOzI0RDM7MjREMzswMDY0OzAwNjQ7CisyNEQ0OzI0RDQ7MjRENDswMDY1OzAwNjU7CisyNEQ1OzI0RDU7MjRENTswMDY2OzAwNjY7CisyNEQ2OzI0RDY7MjRENjswMDY3OzAwNjc7CisyNEQ3OzI0RDc7MjRENzswMDY4OzAwNjg7CisyNEQ4OzI0RDg7MjREODswMDY5OzAwNjk7CisyNEQ5OzI0RDk7MjREOTswMDZBOzAwNkE7CisyNERBOzI0REE7MjREQTswMDZCOzAwNkI7CisyNERCOzI0REI7MjREQjswMDZDOzAwNkM7CisyNERDOzI0REM7MjREQzswMDZEOzAwNkQ7CisyNEREOzI0REQ7MjRERDswMDZFOzAwNkU7CisyNERFOzI0REU7MjRERTswMDZGOzAwNkY7CisyNERGOzI0REY7MjRERjswMDcwOzAwNzA7CisyNEUwOzI0RTA7MjRFMDswMDcxOzAwNzE7CisyNEUxOzI0RTE7MjRFMTswMDcyOzAwNzI7CisyNEUyOzI0RTI7MjRFMjswMDczOzAwNzM7CisyNEUzOzI0RTM7MjRFMzswMDc0OzAwNzQ7CisyNEU0OzI0RTQ7MjRFNDswMDc1OzAwNzU7CisyNEU1OzI0RTU7MjRFNTswMDc2OzAwNzY7CisyNEU2OzI0RTY7MjRFNjswMDc3OzAwNzc7CisyNEU3OzI0RTc7MjRFNzswMDc4OzAwNzg7CisyNEU4OzI0RTg7MjRFODswMDc5OzAwNzk7CisyNEU5OzI0RTk7MjRFOTswMDdBOzAwN0E7CisyNEVBOzI0RUE7MjRFQTswMDMwOzAwMzA7CisyQTBDOzJBMEM7MkEwQzsyMjJCIDIyMkIgMjIyQiAyMjJCOzIyMkIgMjIyQiAyMjJCIDIyMkI7CisyQTc0OzJBNzQ7MkE3NDswMDNBIDAwM0EgMDAzRDswMDNBIDAwM0EgMDAzRDsKKzJBNzU7MkE3NTsyQTc1OzAwM0QgMDAzRDswMDNEIDAwM0Q7CisyQTc2OzJBNzY7MkE3NjswMDNEIDAwM0QgMDAzRDswMDNEIDAwM0QgMDAzRDsKKzJBREM7MkFERCAwMzM4OzJBREQgMDMzODsyQUREIDAzMzg7MkFERCAwMzM4OworMkU5RjsyRTlGOzJFOUY7NkJDRDs2QkNEOworMkVGMzsyRUYzOzJFRjM7OUY5Rjs5RjlGOworMkYwMDsyRjAwOzJGMDA7NEUwMDs0RTAwOworMkYwMTsyRjAxOzJGMDE7NEUyODs0RTI4OworMkYwMjsyRjAyOzJGMDI7NEUzNjs0RTM2OworMkYwMzsyRjAzOzJGMDM7NEUzRjs0RTNGOworMkYwNDsyRjA0OzJGMDQ7NEU1OTs0RTU5OworMkYwNTsyRjA1OzJGMDU7NEU4NTs0RTg1OworMkYwNjsyRjA2OzJGMDY7NEU4Qzs0RThDOworMkYwNzsyRjA3OzJGMDc7NEVBMDs0RUEwOworMkYwODsyRjA4OzJGMDg7NEVCQTs0RUJBOworMkYwOTsyRjA5OzJGMDk7NTEzRjs1MTNGOworMkYwQTsyRjBBOzJGMEE7NTE2NTs1MTY1OworMkYwQjsyRjBCOzJGMEI7NTE2Qjs1MTZCOworMkYwQzsyRjBDOzJGMEM7NTE4Mjs1MTgyOworMkYwRDsyRjBEOzJGMEQ7NTE5Njs1MTk2OworMkYwRTsyRjBFOzJGMEU7NTFBQjs1MUFCOworMkYwRjsyRjBGOzJGMEY7NTFFMDs1MUUwOworMkYxMDsyRjEwOzJGMTA7NTFGNTs1MUY1OworMkYxMTsyRjExOzJGMTE7NTIwMDs1MjAwOworMkYxMjsyRjEyOzJGMTI7NTI5Qjs1MjlCOworMkYxMzsyRjEzOzJGMTM7NTJGOTs1MkY5OworMkYxNDsyRjE0OzJGMTQ7NTMxNTs1MzE1OworMkYxNTsyRjE1OzJGMTU7NTMxQTs1MzFBOworMkYxNjsyRjE2OzJGMTY7NTMzODs1MzM4OworMkYxNzsyRjE3OzJGMTc7NTM0MTs1MzQxOworMkYxODsyRjE4OzJGMTg7NTM1Qzs1MzVDOworMkYxOTsyRjE5OzJGMTk7NTM2OTs1MzY5OworMkYxQTsyRjFBOzJGMUE7NTM4Mjs1MzgyOworMkYxQjsyRjFCOzJGMUI7NTNCNjs1M0I2OworMkYxQzsyRjFDOzJGMUM7NTNDODs1M0M4OworMkYxRDsyRjFEOzJGMUQ7NTNFMzs1M0UzOworMkYxRTsyRjFFOzJGMUU7NTZENzs1NkQ3OworMkYxRjsyRjFGOzJGMUY7NTcxRjs1NzFGOworMkYyMDsyRjIwOzJGMjA7NThFQjs1OEVCOworMkYyMTsyRjIxOzJGMjE7NTkwMjs1OTAyOworMkYyMjsyRjIyOzJGMjI7NTkwQTs1OTBBOworMkYyMzsyRjIzOzJGMjM7NTkxNTs1OTE1OworMkYyNDsyRjI0OzJGMjQ7NTkyNzs1OTI3OworMkYyNTsyRjI1OzJGMjU7NTk3Mzs1OTczOworMkYyNjsyRjI2OzJGMjY7NUI1MDs1QjUwOworMkYyNzsyRjI3OzJGMjc7NUI4MDs1QjgwOworMkYyODsyRjI4OzJGMjg7NUJGODs1QkY4OworMkYyOTsyRjI5OzJGMjk7NUMwRjs1QzBGOworMkYyQTsyRjJBOzJGMkE7NUMyMjs1QzIyOworMkYyQjsyRjJCOzJGMkI7NUMzODs1QzM4OworMkYyQzsyRjJDOzJGMkM7NUM2RTs1QzZFOworMkYyRDsyRjJEOzJGMkQ7NUM3MTs1QzcxOworMkYyRTsyRjJFOzJGMkU7NUREQjs1RERCOworMkYyRjsyRjJGOzJGMkY7NURFNTs1REU1OworMkYzMDsyRjMwOzJGMzA7NURGMTs1REYxOworMkYzMTsyRjMxOzJGMzE7NURGRTs1REZFOworMkYzMjsyRjMyOzJGMzI7NUU3Mjs1RTcyOworMkYzMzsyRjMzOzJGMzM7NUU3QTs1RTdBOworMkYzNDsyRjM0OzJGMzQ7NUU3Rjs1RTdGOworMkYzNTsyRjM1OzJGMzU7NUVGNDs1RUY0OworMkYzNjsyRjM2OzJGMzY7NUVGRTs1RUZFOworMkYzNzsyRjM3OzJGMzc7NUYwQjs1RjBCOworMkYzODsyRjM4OzJGMzg7NUYxMzs1RjEzOworMkYzOTsyRjM5OzJGMzk7NUY1MDs1RjUwOworMkYzQTsyRjNBOzJGM0E7NUY2MTs1RjYxOworMkYzQjsyRjNCOzJGM0I7NUY3Mzs1RjczOworMkYzQzsyRjNDOzJGM0M7NUZDMzs1RkMzOworMkYzRDsyRjNEOzJGM0Q7NjIwODs2MjA4OworMkYzRTsyRjNFOzJGM0U7NjIzNjs2MjM2OworMkYzRjsyRjNGOzJGM0Y7NjI0Qjs2MjRCOworMkY0MDsyRjQwOzJGNDA7NjUyRjs2NTJGOworMkY0MTsyRjQxOzJGNDE7NjUzNDs2NTM0OworMkY0MjsyRjQyOzJGNDI7NjU4Nzs2NTg3OworMkY0MzsyRjQzOzJGNDM7NjU5Nzs2NTk3OworMkY0NDsyRjQ0OzJGNDQ7NjVBNDs2NUE0OworMkY0NTsyRjQ1OzJGNDU7NjVCOTs2NUI5OworMkY0NjsyRjQ2OzJGNDY7NjVFMDs2NUUwOworMkY0NzsyRjQ3OzJGNDc7NjVFNTs2NUU1OworMkY0ODsyRjQ4OzJGNDg7NjZGMDs2NkYwOworMkY0OTsyRjQ5OzJGNDk7NjcwODs2NzA4OworMkY0QTsyRjRBOzJGNEE7NjcyODs2NzI4OworMkY0QjsyRjRCOzJGNEI7NkIyMDs2QjIwOworMkY0QzsyRjRDOzJGNEM7NkI2Mjs2QjYyOworMkY0RDsyRjREOzJGNEQ7NkI3OTs2Qjc5OworMkY0RTsyRjRFOzJGNEU7NkJCMzs2QkIzOworMkY0RjsyRjRGOzJGNEY7NkJDQjs2QkNCOworMkY1MDsyRjUwOzJGNTA7NkJENDs2QkQ0OworMkY1MTsyRjUxOzJGNTE7NkJEQjs2QkRCOworMkY1MjsyRjUyOzJGNTI7NkMwRjs2QzBGOworMkY1MzsyRjUzOzJGNTM7NkMxNDs2QzE0OworMkY1NDsyRjU0OzJGNTQ7NkMzNDs2QzM0OworMkY1NTsyRjU1OzJGNTU7NzA2Qjs3MDZCOworMkY1NjsyRjU2OzJGNTY7NzIyQTs3MjJBOworMkY1NzsyRjU3OzJGNTc7NzIzNjs3MjM2OworMkY1ODsyRjU4OzJGNTg7NzIzQjs3MjNCOworMkY1OTsyRjU5OzJGNTk7NzIzRjs3MjNGOworMkY1QTsyRjVBOzJGNUE7NzI0Nzs3MjQ3OworMkY1QjsyRjVCOzJGNUI7NzI1OTs3MjU5OworMkY1QzsyRjVDOzJGNUM7NzI1Qjs3MjVCOworMkY1RDsyRjVEOzJGNUQ7NzJBQzs3MkFDOworMkY1RTsyRjVFOzJGNUU7NzM4NDs3Mzg0OworMkY1RjsyRjVGOzJGNUY7NzM4OTs3Mzg5OworMkY2MDsyRjYwOzJGNjA7NzREQzs3NERDOworMkY2MTsyRjYxOzJGNjE7NzRFNjs3NEU2OworMkY2MjsyRjYyOzJGNjI7NzUxODs3NTE4OworMkY2MzsyRjYzOzJGNjM7NzUxRjs3NTFGOworMkY2NDsyRjY0OzJGNjQ7NzUyODs3NTI4OworMkY2NTsyRjY1OzJGNjU7NzUzMDs3NTMwOworMkY2NjsyRjY2OzJGNjY7NzU4Qjs3NThCOworMkY2NzsyRjY3OzJGNjc7NzU5Mjs3NTkyOworMkY2ODsyRjY4OzJGNjg7NzY3Njs3Njc2OworMkY2OTsyRjY5OzJGNjk7NzY3RDs3NjdEOworMkY2QTsyRjZBOzJGNkE7NzZBRTs3NkFFOworMkY2QjsyRjZCOzJGNkI7NzZCRjs3NkJGOworMkY2QzsyRjZDOzJGNkM7NzZFRTs3NkVFOworMkY2RDsyRjZEOzJGNkQ7NzdEQjs3N0RCOworMkY2RTsyRjZFOzJGNkU7NzdFMjs3N0UyOworMkY2RjsyRjZGOzJGNkY7NzdGMzs3N0YzOworMkY3MDsyRjcwOzJGNzA7NzkzQTs3OTNBOworMkY3MTsyRjcxOzJGNzE7NzlCODs3OUI4OworMkY3MjsyRjcyOzJGNzI7NzlCRTs3OUJFOworMkY3MzsyRjczOzJGNzM7N0E3NDs3QTc0OworMkY3NDsyRjc0OzJGNzQ7N0FDQjs3QUNCOworMkY3NTsyRjc1OzJGNzU7N0FGOTs3QUY5OworMkY3NjsyRjc2OzJGNzY7N0M3Mzs3QzczOworMkY3NzsyRjc3OzJGNzc7N0NGODs3Q0Y4OworMkY3ODsyRjc4OzJGNzg7N0YzNjs3RjM2OworMkY3OTsyRjc5OzJGNzk7N0Y1MTs3RjUxOworMkY3QTsyRjdBOzJGN0E7N0Y4QTs3RjhBOworMkY3QjsyRjdCOzJGN0I7N0ZCRDs3RkJEOworMkY3QzsyRjdDOzJGN0M7ODAwMTs4MDAxOworMkY3RDsyRjdEOzJGN0Q7ODAwQzs4MDBDOworMkY3RTsyRjdFOzJGN0U7ODAxMjs4MDEyOworMkY3RjsyRjdGOzJGN0Y7ODAzMzs4MDMzOworMkY4MDsyRjgwOzJGODA7ODA3Rjs4MDdGOworMkY4MTsyRjgxOzJGODE7ODA4OTs4MDg5OworMkY4MjsyRjgyOzJGODI7ODFFMzs4MUUzOworMkY4MzsyRjgzOzJGODM7ODFFQTs4MUVBOworMkY4NDsyRjg0OzJGODQ7ODFGMzs4MUYzOworMkY4NTsyRjg1OzJGODU7ODFGQzs4MUZDOworMkY4NjsyRjg2OzJGODY7ODIwQzs4MjBDOworMkY4NzsyRjg3OzJGODc7ODIxQjs4MjFCOworMkY4ODsyRjg4OzJGODg7ODIxRjs4MjFGOworMkY4OTsyRjg5OzJGODk7ODI2RTs4MjZFOworMkY4QTsyRjhBOzJGOEE7ODI3Mjs4MjcyOworMkY4QjsyRjhCOzJGOEI7ODI3ODs4Mjc4OworMkY4QzsyRjhDOzJGOEM7ODY0RDs4NjREOworMkY4RDsyRjhEOzJGOEQ7ODY2Qjs4NjZCOworMkY4RTsyRjhFOzJGOEU7ODg0MDs4ODQwOworMkY4RjsyRjhGOzJGOEY7ODg0Qzs4ODRDOworMkY5MDsyRjkwOzJGOTA7ODg2Mzs4ODYzOworMkY5MTsyRjkxOzJGOTE7ODk3RTs4OTdFOworMkY5MjsyRjkyOzJGOTI7ODk4Qjs4OThCOworMkY5MzsyRjkzOzJGOTM7ODlEMjs4OUQyOworMkY5NDsyRjk0OzJGOTQ7OEEwMDs4QTAwOworMkY5NTsyRjk1OzJGOTU7OEMzNzs4QzM3OworMkY5NjsyRjk2OzJGOTY7OEM0Njs4QzQ2OworMkY5NzsyRjk3OzJGOTc7OEM1NTs4QzU1OworMkY5ODsyRjk4OzJGOTg7OEM3ODs4Qzc4OworMkY5OTsyRjk5OzJGOTk7OEM5RDs4QzlEOworMkY5QTsyRjlBOzJGOUE7OEQ2NDs4RDY0OworMkY5QjsyRjlCOzJGOUI7OEQ3MDs4RDcwOworMkY5QzsyRjlDOzJGOUM7OERCMzs4REIzOworMkY5RDsyRjlEOzJGOUQ7OEVBQjs4RUFCOworMkY5RTsyRjlFOzJGOUU7OEVDQTs4RUNBOworMkY5RjsyRjlGOzJGOUY7OEY5Qjs4RjlCOworMkZBMDsyRkEwOzJGQTA7OEZCMDs4RkIwOworMkZBMTsyRkExOzJGQTE7OEZCNTs4RkI1OworMkZBMjsyRkEyOzJGQTI7OTA5MTs5MDkxOworMkZBMzsyRkEzOzJGQTM7OTE0OTs5MTQ5OworMkZBNDsyRkE0OzJGQTQ7OTFDNjs5MUM2OworMkZBNTsyRkE1OzJGQTU7OTFDQzs5MUNDOworMkZBNjsyRkE2OzJGQTY7OTFEMTs5MUQxOworMkZBNzsyRkE3OzJGQTc7OTU3Nzs5NTc3OworMkZBODsyRkE4OzJGQTg7OTU4MDs5NTgwOworMkZBOTsyRkE5OzJGQTk7OTYxQzs5NjFDOworMkZBQTsyRkFBOzJGQUE7OTZCNjs5NkI2OworMkZBQjsyRkFCOzJGQUI7OTZCOTs5NkI5OworMkZBQzsyRkFDOzJGQUM7OTZFODs5NkU4OworMkZBRDsyRkFEOzJGQUQ7OTc1MTs5NzUxOworMkZBRTsyRkFFOzJGQUU7OTc1RTs5NzVFOworMkZBRjsyRkFGOzJGQUY7OTc2Mjs5NzYyOworMkZCMDsyRkIwOzJGQjA7OTc2OTs5NzY5OworMkZCMTsyRkIxOzJGQjE7OTdDQjs5N0NCOworMkZCMjsyRkIyOzJGQjI7OTdFRDs5N0VEOworMkZCMzsyRkIzOzJGQjM7OTdGMzs5N0YzOworMkZCNDsyRkI0OzJGQjQ7OTgwMTs5ODAxOworMkZCNTsyRkI1OzJGQjU7OThBODs5OEE4OworMkZCNjsyRkI2OzJGQjY7OThEQjs5OERCOworMkZCNzsyRkI3OzJGQjc7OThERjs5OERGOworMkZCODsyRkI4OzJGQjg7OTk5Njs5OTk2OworMkZCOTsyRkI5OzJGQjk7OTk5OTs5OTk5OworMkZCQTsyRkJBOzJGQkE7OTlBQzs5OUFDOworMkZCQjsyRkJCOzJGQkI7OUFBODs5QUE4OworMkZCQzsyRkJDOzJGQkM7OUFEODs5QUQ4OworMkZCRDsyRkJEOzJGQkQ7OUFERjs5QURGOworMkZCRTsyRkJFOzJGQkU7OUIyNTs5QjI1OworMkZCRjsyRkJGOzJGQkY7OUIyRjs5QjJGOworMkZDMDsyRkMwOzJGQzA7OUIzMjs5QjMyOworMkZDMTsyRkMxOzJGQzE7OUIzQzs5QjNDOworMkZDMjsyRkMyOzJGQzI7OUI1QTs5QjVBOworMkZDMzsyRkMzOzJGQzM7OUNFNTs5Q0U1OworMkZDNDsyRkM0OzJGQzQ7OUU3NTs5RTc1OworMkZDNTsyRkM1OzJGQzU7OUU3Rjs5RTdGOworMkZDNjsyRkM2OzJGQzY7OUVBNTs5RUE1OworMkZDNzsyRkM3OzJGQzc7OUVCQjs5RUJCOworMkZDODsyRkM4OzJGQzg7OUVDMzs5RUMzOworMkZDOTsyRkM5OzJGQzk7OUVDRDs5RUNEOworMkZDQTsyRkNBOzJGQ0E7OUVEMTs5RUQxOworMkZDQjsyRkNCOzJGQ0I7OUVGOTs5RUY5OworMkZDQzsyRkNDOzJGQ0M7OUVGRDs5RUZEOworMkZDRDsyRkNEOzJGQ0Q7OUYwRTs5RjBFOworMkZDRTsyRkNFOzJGQ0U7OUYxMzs5RjEzOworMkZDRjsyRkNGOzJGQ0Y7OUYyMDs5RjIwOworMkZEMDsyRkQwOzJGRDA7OUYzQjs5RjNCOworMkZEMTsyRkQxOzJGRDE7OUY0QTs5RjRBOworMkZEMjsyRkQyOzJGRDI7OUY1Mjs5RjUyOworMkZEMzsyRkQzOzJGRDM7OUY4RDs5RjhEOworMkZENDsyRkQ0OzJGRDQ7OUY5Qzs5RjlDOworMkZENTsyRkQ1OzJGRDU7OUZBMDs5RkEwOworMzAwMDszMDAwOzMwMDA7MDAyMDswMDIwOworMzAzNjszMDM2OzMwMzY7MzAxMjszMDEyOworMzAzODszMDM4OzMwMzg7NTM0MTs1MzQxOworMzAzOTszMDM5OzMwMzk7NTM0NDs1MzQ0OworMzAzQTszMDNBOzMwM0E7NTM0NTs1MzQ1OworMzA0QzszMDRDOzMwNEIgMzA5OTszMDRDOzMwNEIgMzA5OTsKKzMwNEU7MzA0RTszMDREIDMwOTk7MzA0RTszMDREIDMwOTk7CiszMDUwOzMwNTA7MzA0RiAzMDk5OzMwNTA7MzA0RiAzMDk5OworMzA1MjszMDUyOzMwNTEgMzA5OTszMDUyOzMwNTEgMzA5OTsKKzMwNTQ7MzA1NDszMDUzIDMwOTk7MzA1NDszMDUzIDMwOTk7CiszMDU2OzMwNTY7MzA1NSAzMDk5OzMwNTY7MzA1NSAzMDk5OworMzA1ODszMDU4OzMwNTcgMzA5OTszMDU4OzMwNTcgMzA5OTsKKzMwNUE7MzA1QTszMDU5IDMwOTk7MzA1QTszMDU5IDMwOTk7CiszMDVDOzMwNUM7MzA1QiAzMDk5OzMwNUM7MzA1QiAzMDk5OworMzA1RTszMDVFOzMwNUQgMzA5OTszMDVFOzMwNUQgMzA5OTsKKzMwNjA7MzA2MDszMDVGIDMwOTk7MzA2MDszMDVGIDMwOTk7CiszMDYyOzMwNjI7MzA2MSAzMDk5OzMwNjI7MzA2MSAzMDk5OworMzA2NTszMDY1OzMwNjQgMzA5OTszMDY1OzMwNjQgMzA5OTsKKzMwNjc7MzA2NzszMDY2IDMwOTk7MzA2NzszMDY2IDMwOTk7CiszMDY5OzMwNjk7MzA2OCAzMDk5OzMwNjk7MzA2OCAzMDk5OworMzA3MDszMDcwOzMwNkYgMzA5OTszMDcwOzMwNkYgMzA5OTsKKzMwNzE7MzA3MTszMDZGIDMwOUE7MzA3MTszMDZGIDMwOUE7CiszMDczOzMwNzM7MzA3MiAzMDk5OzMwNzM7MzA3MiAzMDk5OworMzA3NDszMDc0OzMwNzIgMzA5QTszMDc0OzMwNzIgMzA5QTsKKzMwNzY7MzA3NjszMDc1IDMwOTk7MzA3NjszMDc1IDMwOTk7CiszMDc3OzMwNzc7MzA3NSAzMDlBOzMwNzc7MzA3NSAzMDlBOworMzA3OTszMDc5OzMwNzggMzA5OTszMDc5OzMwNzggMzA5OTsKKzMwN0E7MzA3QTszMDc4IDMwOUE7MzA3QTszMDc4IDMwOUE7CiszMDdDOzMwN0M7MzA3QiAzMDk5OzMwN0M7MzA3QiAzMDk5OworMzA3RDszMDdEOzMwN0IgMzA5QTszMDdEOzMwN0IgMzA5QTsKKzMwOTQ7MzA5NDszMDQ2IDMwOTk7MzA5NDszMDQ2IDMwOTk7CiszMDlCOzMwOUI7MzA5QjswMDIwIDMwOTk7MDAyMCAzMDk5OworMzA5QzszMDlDOzMwOUM7MDAyMCAzMDlBOzAwMjAgMzA5QTsKKzMwOUU7MzA5RTszMDlEIDMwOTk7MzA5RTszMDlEIDMwOTk7CiszMDlGOzMwOUY7MzA5RjszMDg4IDMwOEE7MzA4OCAzMDhBOworMzBBQzszMEFDOzMwQUIgMzA5OTszMEFDOzMwQUIgMzA5OTsKKzMwQUU7MzBBRTszMEFEIDMwOTk7MzBBRTszMEFEIDMwOTk7CiszMEIwOzMwQjA7MzBBRiAzMDk5OzMwQjA7MzBBRiAzMDk5OworMzBCMjszMEIyOzMwQjEgMzA5OTszMEIyOzMwQjEgMzA5OTsKKzMwQjQ7MzBCNDszMEIzIDMwOTk7MzBCNDszMEIzIDMwOTk7CiszMEI2OzMwQjY7MzBCNSAzMDk5OzMwQjY7MzBCNSAzMDk5OworMzBCODszMEI4OzMwQjcgMzA5OTszMEI4OzMwQjcgMzA5OTsKKzMwQkE7MzBCQTszMEI5IDMwOTk7MzBCQTszMEI5IDMwOTk7CiszMEJDOzMwQkM7MzBCQiAzMDk5OzMwQkM7MzBCQiAzMDk5OworMzBCRTszMEJFOzMwQkQgMzA5OTszMEJFOzMwQkQgMzA5OTsKKzMwQzA7MzBDMDszMEJGIDMwOTk7MzBDMDszMEJGIDMwOTk7CiszMEMyOzMwQzI7MzBDMSAzMDk5OzMwQzI7MzBDMSAzMDk5OworMzBDNTszMEM1OzMwQzQgMzA5OTszMEM1OzMwQzQgMzA5OTsKKzMwQzc7MzBDNzszMEM2IDMwOTk7MzBDNzszMEM2IDMwOTk7CiszMEM5OzMwQzk7MzBDOCAzMDk5OzMwQzk7MzBDOCAzMDk5OworMzBEMDszMEQwOzMwQ0YgMzA5OTszMEQwOzMwQ0YgMzA5OTsKKzMwRDE7MzBEMTszMENGIDMwOUE7MzBEMTszMENGIDMwOUE7CiszMEQzOzMwRDM7MzBEMiAzMDk5OzMwRDM7MzBEMiAzMDk5OworMzBENDszMEQ0OzMwRDIgMzA5QTszMEQ0OzMwRDIgMzA5QTsKKzMwRDY7MzBENjszMEQ1IDMwOTk7MzBENjszMEQ1IDMwOTk7CiszMEQ3OzMwRDc7MzBENSAzMDlBOzMwRDc7MzBENSAzMDlBOworMzBEOTszMEQ5OzMwRDggMzA5OTszMEQ5OzMwRDggMzA5OTsKKzMwREE7MzBEQTszMEQ4IDMwOUE7MzBEQTszMEQ4IDMwOUE7CiszMERDOzMwREM7MzBEQiAzMDk5OzMwREM7MzBEQiAzMDk5OworMzBERDszMEREOzMwREIgMzA5QTszMEREOzMwREIgMzA5QTsKKzMwRjQ7MzBGNDszMEE2IDMwOTk7MzBGNDszMEE2IDMwOTk7CiszMEY3OzMwRjc7MzBFRiAzMDk5OzMwRjc7MzBFRiAzMDk5OworMzBGODszMEY4OzMwRjAgMzA5OTszMEY4OzMwRjAgMzA5OTsKKzMwRjk7MzBGOTszMEYxIDMwOTk7MzBGOTszMEYxIDMwOTk7CiszMEZBOzMwRkE7MzBGMiAzMDk5OzMwRkE7MzBGMiAzMDk5OworMzBGRTszMEZFOzMwRkQgMzA5OTszMEZFOzMwRkQgMzA5OTsKKzMwRkY7MzBGRjszMEZGOzMwQjMgMzBDODszMEIzIDMwQzg7CiszMTMxOzMxMzE7MzEzMTsxMTAwOzExMDA7CiszMTMyOzMxMzI7MzEzMjsxMTAxOzExMDE7CiszMTMzOzMxMzM7MzEzMzsxMUFBOzExQUE7CiszMTM0OzMxMzQ7MzEzNDsxMTAyOzExMDI7CiszMTM1OzMxMzU7MzEzNTsxMUFDOzExQUM7CiszMTM2OzMxMzY7MzEzNjsxMUFEOzExQUQ7CiszMTM3OzMxMzc7MzEzNzsxMTAzOzExMDM7CiszMTM4OzMxMzg7MzEzODsxMTA0OzExMDQ7CiszMTM5OzMxMzk7MzEzOTsxMTA1OzExMDU7CiszMTNBOzMxM0E7MzEzQTsxMUIwOzExQjA7CiszMTNCOzMxM0I7MzEzQjsxMUIxOzExQjE7CiszMTNDOzMxM0M7MzEzQzsxMUIyOzExQjI7CiszMTNEOzMxM0Q7MzEzRDsxMUIzOzExQjM7CiszMTNFOzMxM0U7MzEzRTsxMUI0OzExQjQ7CiszMTNGOzMxM0Y7MzEzRjsxMUI1OzExQjU7CiszMTQwOzMxNDA7MzE0MDsxMTFBOzExMUE7CiszMTQxOzMxNDE7MzE0MTsxMTA2OzExMDY7CiszMTQyOzMxNDI7MzE0MjsxMTA3OzExMDc7CiszMTQzOzMxNDM7MzE0MzsxMTA4OzExMDg7CiszMTQ0OzMxNDQ7MzE0NDsxMTIxOzExMjE7CiszMTQ1OzMxNDU7MzE0NTsxMTA5OzExMDk7CiszMTQ2OzMxNDY7MzE0NjsxMTBBOzExMEE7CiszMTQ3OzMxNDc7MzE0NzsxMTBCOzExMEI7CiszMTQ4OzMxNDg7MzE0ODsxMTBDOzExMEM7CiszMTQ5OzMxNDk7MzE0OTsxMTBEOzExMEQ7CiszMTRBOzMxNEE7MzE0QTsxMTBFOzExMEU7CiszMTRCOzMxNEI7MzE0QjsxMTBGOzExMEY7CiszMTRDOzMxNEM7MzE0QzsxMTEwOzExMTA7CiszMTREOzMxNEQ7MzE0RDsxMTExOzExMTE7CiszMTRFOzMxNEU7MzE0RTsxMTEyOzExMTI7CiszMTRGOzMxNEY7MzE0RjsxMTYxOzExNjE7CiszMTUwOzMxNTA7MzE1MDsxMTYyOzExNjI7CiszMTUxOzMxNTE7MzE1MTsxMTYzOzExNjM7CiszMTUyOzMxNTI7MzE1MjsxMTY0OzExNjQ7CiszMTUzOzMxNTM7MzE1MzsxMTY1OzExNjU7CiszMTU0OzMxNTQ7MzE1NDsxMTY2OzExNjY7CiszMTU1OzMxNTU7MzE1NTsxMTY3OzExNjc7CiszMTU2OzMxNTY7MzE1NjsxMTY4OzExNjg7CiszMTU3OzMxNTc7MzE1NzsxMTY5OzExNjk7CiszMTU4OzMxNTg7MzE1ODsxMTZBOzExNkE7CiszMTU5OzMxNTk7MzE1OTsxMTZCOzExNkI7CiszMTVBOzMxNUE7MzE1QTsxMTZDOzExNkM7CiszMTVCOzMxNUI7MzE1QjsxMTZEOzExNkQ7CiszMTVDOzMxNUM7MzE1QzsxMTZFOzExNkU7CiszMTVEOzMxNUQ7MzE1RDsxMTZGOzExNkY7CiszMTVFOzMxNUU7MzE1RTsxMTcwOzExNzA7CiszMTVGOzMxNUY7MzE1RjsxMTcxOzExNzE7CiszMTYwOzMxNjA7MzE2MDsxMTcyOzExNzI7CiszMTYxOzMxNjE7MzE2MTsxMTczOzExNzM7CiszMTYyOzMxNjI7MzE2MjsxMTc0OzExNzQ7CiszMTYzOzMxNjM7MzE2MzsxMTc1OzExNzU7CiszMTY0OzMxNjQ7MzE2NDsxMTYwOzExNjA7CiszMTY1OzMxNjU7MzE2NTsxMTE0OzExMTQ7CiszMTY2OzMxNjY7MzE2NjsxMTE1OzExMTU7CiszMTY3OzMxNjc7MzE2NzsxMUM3OzExQzc7CiszMTY4OzMxNjg7MzE2ODsxMUM4OzExQzg7CiszMTY5OzMxNjk7MzE2OTsxMUNDOzExQ0M7CiszMTZBOzMxNkE7MzE2QTsxMUNFOzExQ0U7CiszMTZCOzMxNkI7MzE2QjsxMUQzOzExRDM7CiszMTZDOzMxNkM7MzE2QzsxMUQ3OzExRDc7CiszMTZEOzMxNkQ7MzE2RDsxMUQ5OzExRDk7CiszMTZFOzMxNkU7MzE2RTsxMTFDOzExMUM7CiszMTZGOzMxNkY7MzE2RjsxMUREOzExREQ7CiszMTcwOzMxNzA7MzE3MDsxMURGOzExREY7CiszMTcxOzMxNzE7MzE3MTsxMTFEOzExMUQ7CiszMTcyOzMxNzI7MzE3MjsxMTFFOzExMUU7CiszMTczOzMxNzM7MzE3MzsxMTIwOzExMjA7CiszMTc0OzMxNzQ7MzE3NDsxMTIyOzExMjI7CiszMTc1OzMxNzU7MzE3NTsxMTIzOzExMjM7CiszMTc2OzMxNzY7MzE3NjsxMTI3OzExMjc7CiszMTc3OzMxNzc7MzE3NzsxMTI5OzExMjk7CiszMTc4OzMxNzg7MzE3ODsxMTJCOzExMkI7CiszMTc5OzMxNzk7MzE3OTsxMTJDOzExMkM7CiszMTdBOzMxN0E7MzE3QTsxMTJEOzExMkQ7CiszMTdCOzMxN0I7MzE3QjsxMTJFOzExMkU7CiszMTdDOzMxN0M7MzE3QzsxMTJGOzExMkY7CiszMTdEOzMxN0Q7MzE3RDsxMTMyOzExMzI7CiszMTdFOzMxN0U7MzE3RTsxMTM2OzExMzY7CiszMTdGOzMxN0Y7MzE3RjsxMTQwOzExNDA7CiszMTgwOzMxODA7MzE4MDsxMTQ3OzExNDc7CiszMTgxOzMxODE7MzE4MTsxMTRDOzExNEM7CiszMTgyOzMxODI7MzE4MjsxMUYxOzExRjE7CiszMTgzOzMxODM7MzE4MzsxMUYyOzExRjI7CiszMTg0OzMxODQ7MzE4NDsxMTU3OzExNTc7CiszMTg1OzMxODU7MzE4NTsxMTU4OzExNTg7CiszMTg2OzMxODY7MzE4NjsxMTU5OzExNTk7CiszMTg3OzMxODc7MzE4NzsxMTg0OzExODQ7CiszMTg4OzMxODg7MzE4ODsxMTg1OzExODU7CiszMTg5OzMxODk7MzE4OTsxMTg4OzExODg7CiszMThBOzMxOEE7MzE4QTsxMTkxOzExOTE7CiszMThCOzMxOEI7MzE4QjsxMTkyOzExOTI7CiszMThDOzMxOEM7MzE4QzsxMTk0OzExOTQ7CiszMThEOzMxOEQ7MzE4RDsxMTlFOzExOUU7CiszMThFOzMxOEU7MzE4RTsxMUExOzExQTE7CiszMTkyOzMxOTI7MzE5Mjs0RTAwOzRFMDA7CiszMTkzOzMxOTM7MzE5Mzs0RThDOzRFOEM7CiszMTk0OzMxOTQ7MzE5NDs0RTA5OzRFMDk7CiszMTk1OzMxOTU7MzE5NTs1NkRCOzU2REI7CiszMTk2OzMxOTY7MzE5Njs0RTBBOzRFMEE7CiszMTk3OzMxOTc7MzE5Nzs0RTJEOzRFMkQ7CiszMTk4OzMxOTg7MzE5ODs0RTBCOzRFMEI7CiszMTk5OzMxOTk7MzE5OTs3NTMyOzc1MzI7CiszMTlBOzMxOUE7MzE5QTs0RTU5OzRFNTk7CiszMTlCOzMxOUI7MzE5Qjs0RTE5OzRFMTk7CiszMTlDOzMxOUM7MzE5Qzs0RTAxOzRFMDE7CiszMTlEOzMxOUQ7MzE5RDs1OTI5OzU5Mjk7CiszMTlFOzMxOUU7MzE5RTs1NzMwOzU3MzA7CiszMTlGOzMxOUY7MzE5Rjs0RUJBOzRFQkE7CiszMjAwOzMyMDA7MzIwMDswMDI4IDExMDAgMDAyOTswMDI4IDExMDAgMDAyOTsKKzMyMDE7MzIwMTszMjAxOzAwMjggMTEwMiAwMDI5OzAwMjggMTEwMiAwMDI5OworMzIwMjszMjAyOzMyMDI7MDAyOCAxMTAzIDAwMjk7MDAyOCAxMTAzIDAwMjk7CiszMjAzOzMyMDM7MzIwMzswMDI4IDExMDUgMDAyOTswMDI4IDExMDUgMDAyOTsKKzMyMDQ7MzIwNDszMjA0OzAwMjggMTEwNiAwMDI5OzAwMjggMTEwNiAwMDI5OworMzIwNTszMjA1OzMyMDU7MDAyOCAxMTA3IDAwMjk7MDAyOCAxMTA3IDAwMjk7CiszMjA2OzMyMDY7MzIwNjswMDI4IDExMDkgMDAyOTswMDI4IDExMDkgMDAyOTsKKzMyMDc7MzIwNzszMjA3OzAwMjggMTEwQiAwMDI5OzAwMjggMTEwQiAwMDI5OworMzIwODszMjA4OzMyMDg7MDAyOCAxMTBDIDAwMjk7MDAyOCAxMTBDIDAwMjk7CiszMjA5OzMyMDk7MzIwOTswMDI4IDExMEUgMDAyOTswMDI4IDExMEUgMDAyOTsKKzMyMEE7MzIwQTszMjBBOzAwMjggMTEwRiAwMDI5OzAwMjggMTEwRiAwMDI5OworMzIwQjszMjBCOzMyMEI7MDAyOCAxMTEwIDAwMjk7MDAyOCAxMTEwIDAwMjk7CiszMjBDOzMyMEM7MzIwQzswMDI4IDExMTEgMDAyOTswMDI4IDExMTEgMDAyOTsKKzMyMEQ7MzIwRDszMjBEOzAwMjggMTExMiAwMDI5OzAwMjggMTExMiAwMDI5OworMzIwRTszMjBFOzMyMEU7MDAyOCBBQzAwIDAwMjk7MDAyOCAxMTAwIDExNjEgMDAyOTsKKzMyMEY7MzIwRjszMjBGOzAwMjggQjA5OCAwMDI5OzAwMjggMTEwMiAxMTYxIDAwMjk7CiszMjEwOzMyMTA7MzIxMDswMDI4IEIyRTQgMDAyOTswMDI4IDExMDMgMTE2MSAwMDI5OworMzIxMTszMjExOzMyMTE7MDAyOCBCNzdDIDAwMjk7MDAyOCAxMTA1IDExNjEgMDAyOTsKKzMyMTI7MzIxMjszMjEyOzAwMjggQjlDOCAwMDI5OzAwMjggMTEwNiAxMTYxIDAwMjk7CiszMjEzOzMyMTM7MzIxMzswMDI4IEJDMTQgMDAyOTswMDI4IDExMDcgMTE2MSAwMDI5OworMzIxNDszMjE0OzMyMTQ7MDAyOCBDMEFDIDAwMjk7MDAyOCAxMTA5IDExNjEgMDAyOTsKKzMyMTU7MzIxNTszMjE1OzAwMjggQzU0NCAwMDI5OzAwMjggMTEwQiAxMTYxIDAwMjk7CiszMjE2OzMyMTY7MzIxNjswMDI4IEM3OTAgMDAyOTswMDI4IDExMEMgMTE2MSAwMDI5OworMzIxNzszMjE3OzMyMTc7MDAyOCBDQzI4IDAwMjk7MDAyOCAxMTBFIDExNjEgMDAyOTsKKzMyMTg7MzIxODszMjE4OzAwMjggQ0U3NCAwMDI5OzAwMjggMTEwRiAxMTYxIDAwMjk7CiszMjE5OzMyMTk7MzIxOTswMDI4IEQwQzAgMDAyOTswMDI4IDExMTAgMTE2MSAwMDI5OworMzIxQTszMjFBOzMyMUE7MDAyOCBEMzBDIDAwMjk7MDAyOCAxMTExIDExNjEgMDAyOTsKKzMyMUI7MzIxQjszMjFCOzAwMjggRDU1OCAwMDI5OzAwMjggMTExMiAxMTYxIDAwMjk7CiszMjFDOzMyMUM7MzIxQzswMDI4IEM4RkMgMDAyOTswMDI4IDExMEMgMTE2RSAwMDI5OworMzIyMDszMjIwOzMyMjA7MDAyOCA0RTAwIDAwMjk7MDAyOCA0RTAwIDAwMjk7CiszMjIxOzMyMjE7MzIyMTswMDI4IDRFOEMgMDAyOTswMDI4IDRFOEMgMDAyOTsKKzMyMjI7MzIyMjszMjIyOzAwMjggNEUwOSAwMDI5OzAwMjggNEUwOSAwMDI5OworMzIyMzszMjIzOzMyMjM7MDAyOCA1NkRCIDAwMjk7MDAyOCA1NkRCIDAwMjk7CiszMjI0OzMyMjQ7MzIyNDswMDI4IDRFOTQgMDAyOTswMDI4IDRFOTQgMDAyOTsKKzMyMjU7MzIyNTszMjI1OzAwMjggNTE2RCAwMDI5OzAwMjggNTE2RCAwMDI5OworMzIyNjszMjI2OzMyMjY7MDAyOCA0RTAzIDAwMjk7MDAyOCA0RTAzIDAwMjk7CiszMjI3OzMyMjc7MzIyNzswMDI4IDUxNkIgMDAyOTswMDI4IDUxNkIgMDAyOTsKKzMyMjg7MzIyODszMjI4OzAwMjggNEU1RCAwMDI5OzAwMjggNEU1RCAwMDI5OworMzIyOTszMjI5OzMyMjk7MDAyOCA1MzQxIDAwMjk7MDAyOCA1MzQxIDAwMjk7CiszMjJBOzMyMkE7MzIyQTswMDI4IDY3MDggMDAyOTswMDI4IDY3MDggMDAyOTsKKzMyMkI7MzIyQjszMjJCOzAwMjggNzA2QiAwMDI5OzAwMjggNzA2QiAwMDI5OworMzIyQzszMjJDOzMyMkM7MDAyOCA2QzM0IDAwMjk7MDAyOCA2QzM0IDAwMjk7CiszMjJEOzMyMkQ7MzIyRDswMDI4IDY3MjggMDAyOTswMDI4IDY3MjggMDAyOTsKKzMyMkU7MzIyRTszMjJFOzAwMjggOTFEMSAwMDI5OzAwMjggOTFEMSAwMDI5OworMzIyRjszMjJGOzMyMkY7MDAyOCA1NzFGIDAwMjk7MDAyOCA1NzFGIDAwMjk7CiszMjMwOzMyMzA7MzIzMDswMDI4IDY1RTUgMDAyOTswMDI4IDY1RTUgMDAyOTsKKzMyMzE7MzIzMTszMjMxOzAwMjggNjgyQSAwMDI5OzAwMjggNjgyQSAwMDI5OworMzIzMjszMjMyOzMyMzI7MDAyOCA2NzA5IDAwMjk7MDAyOCA2NzA5IDAwMjk7CiszMjMzOzMyMzM7MzIzMzswMDI4IDc5M0UgMDAyOTswMDI4IDc5M0UgMDAyOTsKKzMyMzQ7MzIzNDszMjM0OzAwMjggNTQwRCAwMDI5OzAwMjggNTQwRCAwMDI5OworMzIzNTszMjM1OzMyMzU7MDAyOCA3Mjc5IDAwMjk7MDAyOCA3Mjc5IDAwMjk7CiszMjM2OzMyMzY7MzIzNjswMDI4IDhDQTEgMDAyOTswMDI4IDhDQTEgMDAyOTsKKzMyMzc7MzIzNzszMjM3OzAwMjggNzk1RCAwMDI5OzAwMjggNzk1RCAwMDI5OworMzIzODszMjM4OzMyMzg7MDAyOCA1MkI0IDAwMjk7MDAyOCA1MkI0IDAwMjk7CiszMjM5OzMyMzk7MzIzOTswMDI4IDRFRTMgMDAyOTswMDI4IDRFRTMgMDAyOTsKKzMyM0E7MzIzQTszMjNBOzAwMjggNTQ3QyAwMDI5OzAwMjggNTQ3QyAwMDI5OworMzIzQjszMjNCOzMyM0I7MDAyOCA1QjY2IDAwMjk7MDAyOCA1QjY2IDAwMjk7CiszMjNDOzMyM0M7MzIzQzswMDI4IDc2RTMgMDAyOTswMDI4IDc2RTMgMDAyOTsKKzMyM0Q7MzIzRDszMjNEOzAwMjggNEYwMSAwMDI5OzAwMjggNEYwMSAwMDI5OworMzIzRTszMjNFOzMyM0U7MDAyOCA4Q0M3IDAwMjk7MDAyOCA4Q0M3IDAwMjk7CiszMjNGOzMyM0Y7MzIzRjswMDI4IDUzNTQgMDAyOTswMDI4IDUzNTQgMDAyOTsKKzMyNDA7MzI0MDszMjQwOzAwMjggNzk2RCAwMDI5OzAwMjggNzk2RCAwMDI5OworMzI0MTszMjQxOzMyNDE7MDAyOCA0RjExIDAwMjk7MDAyOCA0RjExIDAwMjk7CiszMjQyOzMyNDI7MzI0MjswMDI4IDgxRUEgMDAyOTswMDI4IDgxRUEgMDAyOTsKKzMyNDM7MzI0MzszMjQzOzAwMjggODFGMyAwMDI5OzAwMjggODFGMyAwMDI5OworMzI1MTszMjUxOzMyNTE7MDAzMiAwMDMxOzAwMzIgMDAzMTsKKzMyNTI7MzI1MjszMjUyOzAwMzIgMDAzMjswMDMyIDAwMzI7CiszMjUzOzMyNTM7MzI1MzswMDMyIDAwMzM7MDAzMiAwMDMzOworMzI1NDszMjU0OzMyNTQ7MDAzMiAwMDM0OzAwMzIgMDAzNDsKKzMyNTU7MzI1NTszMjU1OzAwMzIgMDAzNTswMDMyIDAwMzU7CiszMjU2OzMyNTY7MzI1NjswMDMyIDAwMzY7MDAzMiAwMDM2OworMzI1NzszMjU3OzMyNTc7MDAzMiAwMDM3OzAwMzIgMDAzNzsKKzMyNTg7MzI1ODszMjU4OzAwMzIgMDAzODswMDMyIDAwMzg7CiszMjU5OzMyNTk7MzI1OTswMDMyIDAwMzk7MDAzMiAwMDM5OworMzI1QTszMjVBOzMyNUE7MDAzMyAwMDMwOzAwMzMgMDAzMDsKKzMyNUI7MzI1QjszMjVCOzAwMzMgMDAzMTswMDMzIDAwMzE7CiszMjVDOzMyNUM7MzI1QzswMDMzIDAwMzI7MDAzMyAwMDMyOworMzI1RDszMjVEOzMyNUQ7MDAzMyAwMDMzOzAwMzMgMDAzMzsKKzMyNUU7MzI1RTszMjVFOzAwMzMgMDAzNDswMDMzIDAwMzQ7CiszMjVGOzMyNUY7MzI1RjswMDMzIDAwMzU7MDAzMyAwMDM1OworMzI2MDszMjYwOzMyNjA7MTEwMDsxMTAwOworMzI2MTszMjYxOzMyNjE7MTEwMjsxMTAyOworMzI2MjszMjYyOzMyNjI7MTEwMzsxMTAzOworMzI2MzszMjYzOzMyNjM7MTEwNTsxMTA1OworMzI2NDszMjY0OzMyNjQ7MTEwNjsxMTA2OworMzI2NTszMjY1OzMyNjU7MTEwNzsxMTA3OworMzI2NjszMjY2OzMyNjY7MTEwOTsxMTA5OworMzI2NzszMjY3OzMyNjc7MTEwQjsxMTBCOworMzI2ODszMjY4OzMyNjg7MTEwQzsxMTBDOworMzI2OTszMjY5OzMyNjk7MTEwRTsxMTBFOworMzI2QTszMjZBOzMyNkE7MTEwRjsxMTBGOworMzI2QjszMjZCOzMyNkI7MTExMDsxMTEwOworMzI2QzszMjZDOzMyNkM7MTExMTsxMTExOworMzI2RDszMjZEOzMyNkQ7MTExMjsxMTEyOworMzI2RTszMjZFOzMyNkU7QUMwMDsxMTAwIDExNjE7CiszMjZGOzMyNkY7MzI2RjtCMDk4OzExMDIgMTE2MTsKKzMyNzA7MzI3MDszMjcwO0IyRTQ7MTEwMyAxMTYxOworMzI3MTszMjcxOzMyNzE7Qjc3QzsxMTA1IDExNjE7CiszMjcyOzMyNzI7MzI3MjtCOUM4OzExMDYgMTE2MTsKKzMyNzM7MzI3MzszMjczO0JDMTQ7MTEwNyAxMTYxOworMzI3NDszMjc0OzMyNzQ7QzBBQzsxMTA5IDExNjE7CiszMjc1OzMyNzU7MzI3NTtDNTQ0OzExMEIgMTE2MTsKKzMyNzY7MzI3NjszMjc2O0M3OTA7MTEwQyAxMTYxOworMzI3NzszMjc3OzMyNzc7Q0MyODsxMTBFIDExNjE7CiszMjc4OzMyNzg7MzI3ODtDRTc0OzExMEYgMTE2MTsKKzMyNzk7MzI3OTszMjc5O0QwQzA7MTExMCAxMTYxOworMzI3QTszMjdBOzMyN0E7RDMwQzsxMTExIDExNjE7CiszMjdCOzMyN0I7MzI3QjtENTU4OzExMTIgMTE2MTsKKzMyODA7MzI4MDszMjgwOzRFMDA7NEUwMDsKKzMyODE7MzI4MTszMjgxOzRFOEM7NEU4QzsKKzMyODI7MzI4MjszMjgyOzRFMDk7NEUwOTsKKzMyODM7MzI4MzszMjgzOzU2REI7NTZEQjsKKzMyODQ7MzI4NDszMjg0OzRFOTQ7NEU5NDsKKzMyODU7MzI4NTszMjg1OzUxNkQ7NTE2RDsKKzMyODY7MzI4NjszMjg2OzRFMDM7NEUwMzsKKzMyODc7MzI4NzszMjg3OzUxNkI7NTE2QjsKKzMyODg7MzI4ODszMjg4OzRFNUQ7NEU1RDsKKzMyODk7MzI4OTszMjg5OzUzNDE7NTM0MTsKKzMyOEE7MzI4QTszMjhBOzY3MDg7NjcwODsKKzMyOEI7MzI4QjszMjhCOzcwNkI7NzA2QjsKKzMyOEM7MzI4QzszMjhDOzZDMzQ7NkMzNDsKKzMyOEQ7MzI4RDszMjhEOzY3Mjg7NjcyODsKKzMyOEU7MzI4RTszMjhFOzkxRDE7OTFEMTsKKzMyOEY7MzI4RjszMjhGOzU3MUY7NTcxRjsKKzMyOTA7MzI5MDszMjkwOzY1RTU7NjVFNTsKKzMyOTE7MzI5MTszMjkxOzY4MkE7NjgyQTsKKzMyOTI7MzI5MjszMjkyOzY3MDk7NjcwOTsKKzMyOTM7MzI5MzszMjkzOzc5M0U7NzkzRTsKKzMyOTQ7MzI5NDszMjk0OzU0MEQ7NTQwRDsKKzMyOTU7MzI5NTszMjk1OzcyNzk7NzI3OTsKKzMyOTY7MzI5NjszMjk2OzhDQTE7OENBMTsKKzMyOTc7MzI5NzszMjk3Ozc5NUQ7Nzk1RDsKKzMyOTg7MzI5ODszMjk4OzUyQjQ7NTJCNDsKKzMyOTk7MzI5OTszMjk5Ozc5RDg7NzlEODsKKzMyOUE7MzI5QTszMjlBOzc1Mzc7NzUzNzsKKzMyOUI7MzI5QjszMjlCOzU5NzM7NTk3MzsKKzMyOUM7MzI5QzszMjlDOzkwNjk7OTA2OTsKKzMyOUQ7MzI5RDszMjlEOzUxMkE7NTEyQTsKKzMyOUU7MzI5RTszMjlFOzUzNzA7NTM3MDsKKzMyOUY7MzI5RjszMjlGOzZDRTg7NkNFODsKKzMyQTA7MzJBMDszMkEwOzk4MDU7OTgwNTsKKzMyQTE7MzJBMTszMkExOzRGMTE7NEYxMTsKKzMyQTI7MzJBMjszMkEyOzUxOTk7NTE5OTsKKzMyQTM7MzJBMzszMkEzOzZCNjM7NkI2MzsKKzMyQTQ7MzJBNDszMkE0OzRFMEE7NEUwQTsKKzMyQTU7MzJBNTszMkE1OzRFMkQ7NEUyRDsKKzMyQTY7MzJBNjszMkE2OzRFMEI7NEUwQjsKKzMyQTc7MzJBNzszMkE3OzVERTY7NURFNjsKKzMyQTg7MzJBODszMkE4OzUzRjM7NTNGMzsKKzMyQTk7MzJBOTszMkE5OzUzM0I7NTMzQjsKKzMyQUE7MzJBQTszMkFBOzVCOTc7NUI5NzsKKzMyQUI7MzJBQjszMkFCOzVCNjY7NUI2NjsKKzMyQUM7MzJBQzszMkFDOzc2RTM7NzZFMzsKKzMyQUQ7MzJBRDszMkFEOzRGMDE7NEYwMTsKKzMyQUU7MzJBRTszMkFFOzhDQzc7OENDNzsKKzMyQUY7MzJBRjszMkFGOzUzNTQ7NTM1NDsKKzMyQjA7MzJCMDszMkIwOzU5MUM7NTkxQzsKKzMyQjE7MzJCMTszMkIxOzAwMzMgMDAzNjswMDMzIDAwMzY7CiszMkIyOzMyQjI7MzJCMjswMDMzIDAwMzc7MDAzMyAwMDM3OworMzJCMzszMkIzOzMyQjM7MDAzMyAwMDM4OzAwMzMgMDAzODsKKzMyQjQ7MzJCNDszMkI0OzAwMzMgMDAzOTswMDMzIDAwMzk7CiszMkI1OzMyQjU7MzJCNTswMDM0IDAwMzA7MDAzNCAwMDMwOworMzJCNjszMkI2OzMyQjY7MDAzNCAwMDMxOzAwMzQgMDAzMTsKKzMyQjc7MzJCNzszMkI3OzAwMzQgMDAzMjswMDM0IDAwMzI7CiszMkI4OzMyQjg7MzJCODswMDM0IDAwMzM7MDAzNCAwMDMzOworMzJCOTszMkI5OzMyQjk7MDAzNCAwMDM0OzAwMzQgMDAzNDsKKzMyQkE7MzJCQTszMkJBOzAwMzQgMDAzNTswMDM0IDAwMzU7CiszMkJCOzMyQkI7MzJCQjswMDM0IDAwMzY7MDAzNCAwMDM2OworMzJCQzszMkJDOzMyQkM7MDAzNCAwMDM3OzAwMzQgMDAzNzsKKzMyQkQ7MzJCRDszMkJEOzAwMzQgMDAzODswMDM0IDAwMzg7CiszMkJFOzMyQkU7MzJCRTswMDM0IDAwMzk7MDAzNCAwMDM5OworMzJCRjszMkJGOzMyQkY7MDAzNSAwMDMwOzAwMzUgMDAzMDsKKzMyQzA7MzJDMDszMkMwOzAwMzEgNjcwODswMDMxIDY3MDg7CiszMkMxOzMyQzE7MzJDMTswMDMyIDY3MDg7MDAzMiA2NzA4OworMzJDMjszMkMyOzMyQzI7MDAzMyA2NzA4OzAwMzMgNjcwODsKKzMyQzM7MzJDMzszMkMzOzAwMzQgNjcwODswMDM0IDY3MDg7CiszMkM0OzMyQzQ7MzJDNDswMDM1IDY3MDg7MDAzNSA2NzA4OworMzJDNTszMkM1OzMyQzU7MDAzNiA2NzA4OzAwMzYgNjcwODsKKzMyQzY7MzJDNjszMkM2OzAwMzcgNjcwODswMDM3IDY3MDg7CiszMkM3OzMyQzc7MzJDNzswMDM4IDY3MDg7MDAzOCA2NzA4OworMzJDODszMkM4OzMyQzg7MDAzOSA2NzA4OzAwMzkgNjcwODsKKzMyQzk7MzJDOTszMkM5OzAwMzEgMDAzMCA2NzA4OzAwMzEgMDAzMCA2NzA4OworMzJDQTszMkNBOzMyQ0E7MDAzMSAwMDMxIDY3MDg7MDAzMSAwMDMxIDY3MDg7CiszMkNCOzMyQ0I7MzJDQjswMDMxIDAwMzIgNjcwODswMDMxIDAwMzIgNjcwODsKKzMyRDA7MzJEMDszMkQwOzMwQTI7MzBBMjsKKzMyRDE7MzJEMTszMkQxOzMwQTQ7MzBBNDsKKzMyRDI7MzJEMjszMkQyOzMwQTY7MzBBNjsKKzMyRDM7MzJEMzszMkQzOzMwQTg7MzBBODsKKzMyRDQ7MzJENDszMkQ0OzMwQUE7MzBBQTsKKzMyRDU7MzJENTszMkQ1OzMwQUI7MzBBQjsKKzMyRDY7MzJENjszMkQ2OzMwQUQ7MzBBRDsKKzMyRDc7MzJENzszMkQ3OzMwQUY7MzBBRjsKKzMyRDg7MzJEODszMkQ4OzMwQjE7MzBCMTsKKzMyRDk7MzJEOTszMkQ5OzMwQjM7MzBCMzsKKzMyREE7MzJEQTszMkRBOzMwQjU7MzBCNTsKKzMyREI7MzJEQjszMkRCOzMwQjc7MzBCNzsKKzMyREM7MzJEQzszMkRDOzMwQjk7MzBCOTsKKzMyREQ7MzJERDszMkREOzMwQkI7MzBCQjsKKzMyREU7MzJERTszMkRFOzMwQkQ7MzBCRDsKKzMyREY7MzJERjszMkRGOzMwQkY7MzBCRjsKKzMyRTA7MzJFMDszMkUwOzMwQzE7MzBDMTsKKzMyRTE7MzJFMTszMkUxOzMwQzQ7MzBDNDsKKzMyRTI7MzJFMjszMkUyOzMwQzY7MzBDNjsKKzMyRTM7MzJFMzszMkUzOzMwQzg7MzBDODsKKzMyRTQ7MzJFNDszMkU0OzMwQ0E7MzBDQTsKKzMyRTU7MzJFNTszMkU1OzMwQ0I7MzBDQjsKKzMyRTY7MzJFNjszMkU2OzMwQ0M7MzBDQzsKKzMyRTc7MzJFNzszMkU3OzMwQ0Q7MzBDRDsKKzMyRTg7MzJFODszMkU4OzMwQ0U7MzBDRTsKKzMyRTk7MzJFOTszMkU5OzMwQ0Y7MzBDRjsKKzMyRUE7MzJFQTszMkVBOzMwRDI7MzBEMjsKKzMyRUI7MzJFQjszMkVCOzMwRDU7MzBENTsKKzMyRUM7MzJFQzszMkVDOzMwRDg7MzBEODsKKzMyRUQ7MzJFRDszMkVEOzMwREI7MzBEQjsKKzMyRUU7MzJFRTszMkVFOzMwREU7MzBERTsKKzMyRUY7MzJFRjszMkVGOzMwREY7MzBERjsKKzMyRjA7MzJGMDszMkYwOzMwRTA7MzBFMDsKKzMyRjE7MzJGMTszMkYxOzMwRTE7MzBFMTsKKzMyRjI7MzJGMjszMkYyOzMwRTI7MzBFMjsKKzMyRjM7MzJGMzszMkYzOzMwRTQ7MzBFNDsKKzMyRjQ7MzJGNDszMkY0OzMwRTY7MzBFNjsKKzMyRjU7MzJGNTszMkY1OzMwRTg7MzBFODsKKzMyRjY7MzJGNjszMkY2OzMwRTk7MzBFOTsKKzMyRjc7MzJGNzszMkY3OzMwRUE7MzBFQTsKKzMyRjg7MzJGODszMkY4OzMwRUI7MzBFQjsKKzMyRjk7MzJGOTszMkY5OzMwRUM7MzBFQzsKKzMyRkE7MzJGQTszMkZBOzMwRUQ7MzBFRDsKKzMyRkI7MzJGQjszMkZCOzMwRUY7MzBFRjsKKzMyRkM7MzJGQzszMkZDOzMwRjA7MzBGMDsKKzMyRkQ7MzJGRDszMkZEOzMwRjE7MzBGMTsKKzMyRkU7MzJGRTszMkZFOzMwRjI7MzBGMjsKKzMzMDA7MzMwMDszMzAwOzMwQTIgMzBEMSAzMEZDIDMwQzg7MzBBMiAzMENGIDMwOUEgMzBGQyAzMEM4OworMzMwMTszMzAxOzMzMDE7MzBBMiAzMEVCIDMwRDUgMzBBMTszMEEyIDMwRUIgMzBENSAzMEExOworMzMwMjszMzAyOzMzMDI7MzBBMiAzMEYzIDMwREEgMzBBMjszMEEyIDMwRjMgMzBEOCAzMDlBIDMwQTI7CiszMzAzOzMzMDM7MzMwMzszMEEyIDMwRkMgMzBFQjszMEEyIDMwRkMgMzBFQjsKKzMzMDQ7MzMwNDszMzA0OzMwQTQgMzBDQiAzMEYzIDMwQjA7MzBBNCAzMENCIDMwRjMgMzBBRiAzMDk5OworMzMwNTszMzA1OzMzMDU7MzBBNCAzMEYzIDMwQzE7MzBBNCAzMEYzIDMwQzE7CiszMzA2OzMzMDY7MzMwNjszMEE2IDMwQTkgMzBGMzszMEE2IDMwQTkgMzBGMzsKKzMzMDc7MzMwNzszMzA3OzMwQTggMzBCOSAzMEFGIDMwRkMgMzBDOTszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzggMzA5OTsKKzMzMDg7MzMwODszMzA4OzMwQTggMzBGQyAzMEFCIDMwRkM7MzBBOCAzMEZDIDMwQUIgMzBGQzsKKzMzMDk7MzMwOTszMzA5OzMwQUEgMzBGMyAzMEI5OzMwQUEgMzBGMyAzMEI5OworMzMwQTszMzBBOzMzMEE7MzBBQSAzMEZDIDMwRTA7MzBBQSAzMEZDIDMwRTA7CiszMzBCOzMzMEI7MzMwQjszMEFCIDMwQTQgMzBFQTszMEFCIDMwQTQgMzBFQTsKKzMzMEM7MzMwQzszMzBDOzMwQUIgMzBFOSAzMEMzIDMwQzg7MzBBQiAzMEU5IDMwQzMgMzBDODsKKzMzMEQ7MzMwRDszMzBEOzMwQUIgMzBFRCAzMEVBIDMwRkM7MzBBQiAzMEVEIDMwRUEgMzBGQzsKKzMzMEU7MzMwRTszMzBFOzMwQUMgMzBFRCAzMEYzOzMwQUIgMzA5OSAzMEVEIDMwRjM7CiszMzBGOzMzMEY7MzMwRjszMEFDIDMwRjMgMzBERTszMEFCIDMwOTkgMzBGMyAzMERFOworMzMxMDszMzEwOzMzMTA7MzBBRSAzMEFDOzMwQUQgMzA5OSAzMEFCIDMwOTk7CiszMzExOzMzMTE7MzMxMTszMEFFIDMwQ0IgMzBGQzszMEFEIDMwOTkgMzBDQiAzMEZDOworMzMxMjszMzEyOzMzMTI7MzBBRCAzMEU1IDMwRUEgMzBGQzszMEFEIDMwRTUgMzBFQSAzMEZDOworMzMxMzszMzEzOzMzMTM7MzBBRSAzMEVCIDMwQzAgMzBGQzszMEFEIDMwOTkgMzBFQiAzMEJGIDMwOTkgMzBGQzsKKzMzMTQ7MzMxNDszMzE0OzMwQUQgMzBFRDszMEFEIDMwRUQ7CiszMzE1OzMzMTU7MzMxNTszMEFEIDMwRUQgMzBCMCAzMEU5IDMwRTA7MzBBRCAzMEVEIDMwQUYgMzA5OSAzMEU5IDMwRTA7CiszMzE2OzMzMTY7MzMxNjszMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjszMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjsKKzMzMTc7MzMxNzszMzE3OzMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7CiszMzE4OzMzMTg7MzMxODszMEIwIDMwRTkgMzBFMDszMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxOTszMzE5OzMzMTk7MzBCMCAzMEU5IDMwRTAgMzBDOCAzMEYzOzMwQUYgMzA5OSAzMEU5IDMwRTAgMzBDOCAzMEYzOworMzMxQTszMzFBOzMzMUE7MzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzMwQUYgMzBFQiAzMEJCIDMwOTkgMzBBNCAzMEVEOworMzMxQjszMzFCOzMzMUI7MzBBRiAzMEVEIDMwRkMgMzBDRDszMEFGIDMwRUQgMzBGQyAzMENEOworMzMxQzszMzFDOzMzMUM7MzBCMSAzMEZDIDMwQjk7MzBCMSAzMEZDIDMwQjk7CiszMzFEOzMzMUQ7MzMxRDszMEIzIDMwRUIgMzBDQTszMEIzIDMwRUIgMzBDQTsKKzMzMUU7MzMxRTszMzFFOzMwQjMgMzBGQyAzMEREOzMwQjMgMzBGQyAzMERCIDMwOUE7CiszMzFGOzMzMUY7MzMxRjszMEI1IDMwQTQgMzBBRiAzMEVCOzMwQjUgMzBBNCAzMEFGIDMwRUI7CiszMzIwOzMzMjA7MzMyMDszMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOworMzMyMTszMzIxOzMzMjE7MzBCNyAzMEVBIDMwRjMgMzBCMDszMEI3IDMwRUEgMzBGMyAzMEFGIDMwOTk7CiszMzIyOzMzMjI7MzMyMjszMEJCIDMwRjMgMzBDMTszMEJCIDMwRjMgMzBDMTsKKzMzMjM7MzMyMzszMzIzOzMwQkIgMzBGMyAzMEM4OzMwQkIgMzBGMyAzMEM4OworMzMyNDszMzI0OzMzMjQ7MzBDMCAzMEZDIDMwQjk7MzBCRiAzMDk5IDMwRkMgMzBCOTsKKzMzMjU7MzMyNTszMzI1OzMwQzcgMzBCNzszMEM2IDMwOTkgMzBCNzsKKzMzMjY7MzMyNjszMzI2OzMwQzkgMzBFQjszMEM4IDMwOTkgMzBFQjsKKzMzMjc7MzMyNzszMzI3OzMwQzggMzBGMzszMEM4IDMwRjM7CiszMzI4OzMzMjg7MzMyODszMENBIDMwQ0U7MzBDQSAzMENFOworMzMyOTszMzI5OzMzMjk7MzBDRSAzMEMzIDMwQzg7MzBDRSAzMEMzIDMwQzg7CiszMzJBOzMzMkE7MzMyQTszMENGIDMwQTQgMzBDNDszMENGIDMwQTQgMzBDNDsKKzMzMkI7MzMyQjszMzJCOzMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODszMENGIDMwOUEgMzBGQyAzMEJCIDMwRjMgMzBDODsKKzMzMkM7MzMyQzszMzJDOzMwRDEgMzBGQyAzMEM0OzMwQ0YgMzA5QSAzMEZDIDMwQzQ7CiszMzJEOzMzMkQ7MzMyRDszMEQwIDMwRkMgMzBFQyAzMEVCOzMwQ0YgMzA5OSAzMEZDIDMwRUMgMzBFQjsKKzMzMkU7MzMyRTszMzJFOzMwRDQgMzBBMiAzMEI5IDMwQzggMzBFQjszMEQyIDMwOUEgMzBBMiAzMEI5IDMwQzggMzBFQjsKKzMzMkY7MzMyRjszMzJGOzMwRDQgMzBBRiAzMEVCOzMwRDIgMzA5QSAzMEFGIDMwRUI7CiszMzMwOzMzMzA7MzMzMDszMEQ0IDMwQjM7MzBEMiAzMDlBIDMwQjM7CiszMzMxOzMzMzE7MzMzMTszMEQzIDMwRUI7MzBEMiAzMDk5IDMwRUI7CiszMzMyOzMzMzI7MzMzMjszMEQ1IDMwQTEgMzBFOSAzMEMzIDMwQzk7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM4IDMwOTk7CiszMzMzOzMzMzM7MzMzMzszMEQ1IDMwQTMgMzBGQyAzMEM4OzMwRDUgMzBBMyAzMEZDIDMwQzg7CiszMzM0OzMzMzQ7MzMzNDszMEQ2IDMwQzMgMzBCNyAzMEE3IDMwRUI7MzBENSAzMDk5IDMwQzMgMzBCNyAzMEE3IDMwRUI7CiszMzM1OzMzMzU7MzMzNTszMEQ1IDMwRTkgMzBGMzszMEQ1IDMwRTkgMzBGMzsKKzMzMzY7MzMzNjszMzM2OzMwRDggMzBBRiAzMEJGIDMwRkMgMzBFQjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7CiszMzM3OzMzMzc7MzMzNzszMERBIDMwQkQ7MzBEOCAzMDlBIDMwQkQ7CiszMzM4OzMzMzg7MzMzODszMERBIDMwQ0IgMzBEMjszMEQ4IDMwOUEgMzBDQiAzMEQyOworMzMzOTszMzM5OzMzMzk7MzBEOCAzMEVCIDMwQzQ7MzBEOCAzMEVCIDMwQzQ7CiszMzNBOzMzM0E7MzMzQTszMERBIDMwRjMgMzBCOTszMEQ4IDMwOUEgMzBGMyAzMEI5OworMzMzQjszMzNCOzMzM0I7MzBEQSAzMEZDIDMwQjg7MzBEOCAzMDlBIDMwRkMgMzBCNyAzMDk5OworMzMzQzszMzNDOzMzM0M7MzBEOSAzMEZDIDMwQkY7MzBEOCAzMDk5IDMwRkMgMzBCRjsKKzMzM0Q7MzMzRDszMzNEOzMwREQgMzBBNCAzMEYzIDMwQzg7MzBEQiAzMDlBIDMwQTQgMzBGMyAzMEM4OworMzMzRTszMzNFOzMzM0U7MzBEQyAzMEVCIDMwQzg7MzBEQiAzMDk5IDMwRUIgMzBDODsKKzMzM0Y7MzMzRjszMzNGOzMwREIgMzBGMzszMERCIDMwRjM7CiszMzQwOzMzNDA7MzM0MDszMEREIDMwRjMgMzBDOTszMERCIDMwOUEgMzBGMyAzMEM4IDMwOTk7CiszMzQxOzMzNDE7MzM0MTszMERCIDMwRkMgMzBFQjszMERCIDMwRkMgMzBFQjsKKzMzNDI7MzM0MjszMzQyOzMwREIgMzBGQyAzMEYzOzMwREIgMzBGQyAzMEYzOworMzM0MzszMzQzOzMzNDM7MzBERSAzMEE0IDMwQUYgMzBFRDszMERFIDMwQTQgMzBBRiAzMEVEOworMzM0NDszMzQ0OzMzNDQ7MzBERSAzMEE0IDMwRUI7MzBERSAzMEE0IDMwRUI7CiszMzQ1OzMzNDU7MzM0NTszMERFIDMwQzMgMzBDRjszMERFIDMwQzMgMzBDRjsKKzMzNDY7MzM0NjszMzQ2OzMwREUgMzBFQiAzMEFGOzMwREUgMzBFQiAzMEFGOworMzM0NzszMzQ3OzMzNDc7MzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzsKKzMzNDg7MzM0ODszMzQ4OzMwREYgMzBBRiAzMEVEIDMwRjM7MzBERiAzMEFGIDMwRUQgMzBGMzsKKzMzNDk7MzM0OTszMzQ5OzMwREYgMzBFQTszMERGIDMwRUE7CiszMzRBOzMzNEE7MzM0QTszMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7MzBERiAzMEVBIDMwQ0YgMzA5OSAzMEZDIDMwRUI7CiszMzRCOzMzNEI7MzM0QjszMEUxIDMwQUM7MzBFMSAzMEFCIDMwOTk7CiszMzRDOzMzNEM7MzM0QzszMEUxIDMwQUMgMzBDOCAzMEYzOzMwRTEgMzBBQiAzMDk5IDMwQzggMzBGMzsKKzMzNEQ7MzM0RDszMzREOzMwRTEgMzBGQyAzMEM4IDMwRUI7MzBFMSAzMEZDIDMwQzggMzBFQjsKKzMzNEU7MzM0RTszMzRFOzMwRTQgMzBGQyAzMEM5OzMwRTQgMzBGQyAzMEM4IDMwOTk7CiszMzRGOzMzNEY7MzM0RjszMEU0IDMwRkMgMzBFQjszMEU0IDMwRkMgMzBFQjsKKzMzNTA7MzM1MDszMzUwOzMwRTYgMzBBMiAzMEYzOzMwRTYgMzBBMiAzMEYzOworMzM1MTszMzUxOzMzNTE7MzBFQSAzMEMzIDMwQzggMzBFQjszMEVBIDMwQzMgMzBDOCAzMEVCOworMzM1MjszMzUyOzMzNTI7MzBFQSAzMEU5OzMwRUEgMzBFOTsKKzMzNTM7MzM1MzszMzUzOzMwRUIgMzBENCAzMEZDOzMwRUIgMzBEMiAzMDlBIDMwRkM7CiszMzU0OzMzNTQ7MzM1NDszMEVCIDMwRkMgMzBENiAzMEVCOzMwRUIgMzBGQyAzMEQ1IDMwOTkgMzBFQjsKKzMzNTU7MzM1NTszMzU1OzMwRUMgMzBFMDszMEVDIDMwRTA7CiszMzU2OzMzNTY7MzM1NjszMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7MzBFQyAzMEYzIDMwQzggMzBCMSAzMDk5IDMwRjM7CiszMzU3OzMzNTc7MzM1NzszMEVGIDMwQzMgMzBDODszMEVGIDMwQzMgMzBDODsKKzMzNTg7MzM1ODszMzU4OzAwMzAgNzBCOTswMDMwIDcwQjk7CiszMzU5OzMzNTk7MzM1OTswMDMxIDcwQjk7MDAzMSA3MEI5OworMzM1QTszMzVBOzMzNUE7MDAzMiA3MEI5OzAwMzIgNzBCOTsKKzMzNUI7MzM1QjszMzVCOzAwMzMgNzBCOTswMDMzIDcwQjk7CiszMzVDOzMzNUM7MzM1QzswMDM0IDcwQjk7MDAzNCA3MEI5OworMzM1RDszMzVEOzMzNUQ7MDAzNSA3MEI5OzAwMzUgNzBCOTsKKzMzNUU7MzM1RTszMzVFOzAwMzYgNzBCOTswMDM2IDcwQjk7CiszMzVGOzMzNUY7MzM1RjswMDM3IDcwQjk7MDAzNyA3MEI5OworMzM2MDszMzYwOzMzNjA7MDAzOCA3MEI5OzAwMzggNzBCOTsKKzMzNjE7MzM2MTszMzYxOzAwMzkgNzBCOTswMDM5IDcwQjk7CiszMzYyOzMzNjI7MzM2MjswMDMxIDAwMzAgNzBCOTswMDMxIDAwMzAgNzBCOTsKKzMzNjM7MzM2MzszMzYzOzAwMzEgMDAzMSA3MEI5OzAwMzEgMDAzMSA3MEI5OworMzM2NDszMzY0OzMzNjQ7MDAzMSAwMDMyIDcwQjk7MDAzMSAwMDMyIDcwQjk7CiszMzY1OzMzNjU7MzM2NTswMDMxIDAwMzMgNzBCOTswMDMxIDAwMzMgNzBCOTsKKzMzNjY7MzM2NjszMzY2OzAwMzEgMDAzNCA3MEI5OzAwMzEgMDAzNCA3MEI5OworMzM2NzszMzY3OzMzNjc7MDAzMSAwMDM1IDcwQjk7MDAzMSAwMDM1IDcwQjk7CiszMzY4OzMzNjg7MzM2ODswMDMxIDAwMzYgNzBCOTswMDMxIDAwMzYgNzBCOTsKKzMzNjk7MzM2OTszMzY5OzAwMzEgMDAzNyA3MEI5OzAwMzEgMDAzNyA3MEI5OworMzM2QTszMzZBOzMzNkE7MDAzMSAwMDM4IDcwQjk7MDAzMSAwMDM4IDcwQjk7CiszMzZCOzMzNkI7MzM2QjswMDMxIDAwMzkgNzBCOTswMDMxIDAwMzkgNzBCOTsKKzMzNkM7MzM2QzszMzZDOzAwMzIgMDAzMCA3MEI5OzAwMzIgMDAzMCA3MEI5OworMzM2RDszMzZEOzMzNkQ7MDAzMiAwMDMxIDcwQjk7MDAzMiAwMDMxIDcwQjk7CiszMzZFOzMzNkU7MzM2RTswMDMyIDAwMzIgNzBCOTswMDMyIDAwMzIgNzBCOTsKKzMzNkY7MzM2RjszMzZGOzAwMzIgMDAzMyA3MEI5OzAwMzIgMDAzMyA3MEI5OworMzM3MDszMzcwOzMzNzA7MDAzMiAwMDM0IDcwQjk7MDAzMiAwMDM0IDcwQjk7CiszMzcxOzMzNzE7MzM3MTswMDY4IDAwNTAgMDA2MTswMDY4IDAwNTAgMDA2MTsKKzMzNzI7MzM3MjszMzcyOzAwNjQgMDA2MTswMDY0IDAwNjE7CiszMzczOzMzNzM7MzM3MzswMDQxIDAwNTU7MDA0MSAwMDU1OworMzM3NDszMzc0OzMzNzQ7MDA2MiAwMDYxIDAwNzI7MDA2MiAwMDYxIDAwNzI7CiszMzc1OzMzNzU7MzM3NTswMDZGIDAwNTY7MDA2RiAwMDU2OworMzM3NjszMzc2OzMzNzY7MDA3MCAwMDYzOzAwNzAgMDA2MzsKKzMzN0I7MzM3QjszMzdCOzVFNzMgNjIxMDs1RTczIDYyMTA7CiszMzdDOzMzN0M7MzM3Qzs2NjJEIDU0OEM7NjYyRCA1NDhDOworMzM3RDszMzdEOzMzN0Q7NTkyNyA2QjYzOzU5MjcgNkI2MzsKKzMzN0U7MzM3RTszMzdFOzY2MEUgNkNCQjs2NjBFIDZDQkI7CiszMzdGOzMzN0Y7MzM3Rjs2ODJBIDVGMEYgNEYxQSA3OTNFOzY4MkEgNUYwRiA0RjFBIDc5M0U7CiszMzgwOzMzODA7MzM4MDswMDcwIDAwNDE7MDA3MCAwMDQxOworMzM4MTszMzgxOzMzODE7MDA2RSAwMDQxOzAwNkUgMDA0MTsKKzMzODI7MzM4MjszMzgyOzAzQkMgMDA0MTswM0JDIDAwNDE7CiszMzgzOzMzODM7MzM4MzswMDZEIDAwNDE7MDA2RCAwMDQxOworMzM4NDszMzg0OzMzODQ7MDA2QiAwMDQxOzAwNkIgMDA0MTsKKzMzODU7MzM4NTszMzg1OzAwNEIgMDA0MjswMDRCIDAwNDI7CiszMzg2OzMzODY7MzM4NjswMDREIDAwNDI7MDA0RCAwMDQyOworMzM4NzszMzg3OzMzODc7MDA0NyAwMDQyOzAwNDcgMDA0MjsKKzMzODg7MzM4ODszMzg4OzAwNjMgMDA2MSAwMDZDOzAwNjMgMDA2MSAwMDZDOworMzM4OTszMzg5OzMzODk7MDA2QiAwMDYzIDAwNjEgMDA2QzswMDZCIDAwNjMgMDA2MSAwMDZDOworMzM4QTszMzhBOzMzOEE7MDA3MCAwMDQ2OzAwNzAgMDA0NjsKKzMzOEI7MzM4QjszMzhCOzAwNkUgMDA0NjswMDZFIDAwNDY7CiszMzhDOzMzOEM7MzM4QzswM0JDIDAwNDY7MDNCQyAwMDQ2OworMzM4RDszMzhEOzMzOEQ7MDNCQyAwMDY3OzAzQkMgMDA2NzsKKzMzOEU7MzM4RTszMzhFOzAwNkQgMDA2NzswMDZEIDAwNjc7CiszMzhGOzMzOEY7MzM4RjswMDZCIDAwNjc7MDA2QiAwMDY3OworMzM5MDszMzkwOzMzOTA7MDA0OCAwMDdBOzAwNDggMDA3QTsKKzMzOTE7MzM5MTszMzkxOzAwNkIgMDA0OCAwMDdBOzAwNkIgMDA0OCAwMDdBOworMzM5MjszMzkyOzMzOTI7MDA0RCAwMDQ4IDAwN0E7MDA0RCAwMDQ4IDAwN0E7CiszMzkzOzMzOTM7MzM5MzswMDQ3IDAwNDggMDA3QTswMDQ3IDAwNDggMDA3QTsKKzMzOTQ7MzM5NDszMzk0OzAwNTQgMDA0OCAwMDdBOzAwNTQgMDA0OCAwMDdBOworMzM5NTszMzk1OzMzOTU7MDNCQyAwMDZDOzAzQkMgMDA2QzsKKzMzOTY7MzM5NjszMzk2OzAwNkQgMDA2QzswMDZEIDAwNkM7CiszMzk3OzMzOTc7MzM5NzswMDY0IDAwNkM7MDA2NCAwMDZDOworMzM5ODszMzk4OzMzOTg7MDA2QiAwMDZDOzAwNkIgMDA2QzsKKzMzOTk7MzM5OTszMzk5OzAwNjYgMDA2RDswMDY2IDAwNkQ7CiszMzlBOzMzOUE7MzM5QTswMDZFIDAwNkQ7MDA2RSAwMDZEOworMzM5QjszMzlCOzMzOUI7MDNCQyAwMDZEOzAzQkMgMDA2RDsKKzMzOUM7MzM5QzszMzlDOzAwNkQgMDA2RDswMDZEIDAwNkQ7CiszMzlEOzMzOUQ7MzM5RDswMDYzIDAwNkQ7MDA2MyAwMDZEOworMzM5RTszMzlFOzMzOUU7MDA2QiAwMDZEOzAwNkIgMDA2RDsKKzMzOUY7MzM5RjszMzlGOzAwNkQgMDA2RCAwMDMyOzAwNkQgMDA2RCAwMDMyOworMzNBMDszM0EwOzMzQTA7MDA2MyAwMDZEIDAwMzI7MDA2MyAwMDZEIDAwMzI7CiszM0ExOzMzQTE7MzNBMTswMDZEIDAwMzI7MDA2RCAwMDMyOworMzNBMjszM0EyOzMzQTI7MDA2QiAwMDZEIDAwMzI7MDA2QiAwMDZEIDAwMzI7CiszM0EzOzMzQTM7MzNBMzswMDZEIDAwNkQgMDAzMzswMDZEIDAwNkQgMDAzMzsKKzMzQTQ7MzNBNDszM0E0OzAwNjMgMDA2RCAwMDMzOzAwNjMgMDA2RCAwMDMzOworMzNBNTszM0E1OzMzQTU7MDA2RCAwMDMzOzAwNkQgMDAzMzsKKzMzQTY7MzNBNjszM0E2OzAwNkIgMDA2RCAwMDMzOzAwNkIgMDA2RCAwMDMzOworMzNBNzszM0E3OzMzQTc7MDA2RCAyMjE1IDAwNzM7MDA2RCAyMjE1IDAwNzM7CiszM0E4OzMzQTg7MzNBODswMDZEIDIyMTUgMDA3MyAwMDMyOzAwNkQgMjIxNSAwMDczIDAwMzI7CiszM0E5OzMzQTk7MzNBOTswMDUwIDAwNjE7MDA1MCAwMDYxOworMzNBQTszM0FBOzMzQUE7MDA2QiAwMDUwIDAwNjE7MDA2QiAwMDUwIDAwNjE7CiszM0FCOzMzQUI7MzNBQjswMDREIDAwNTAgMDA2MTswMDREIDAwNTAgMDA2MTsKKzMzQUM7MzNBQzszM0FDOzAwNDcgMDA1MCAwMDYxOzAwNDcgMDA1MCAwMDYxOworMzNBRDszM0FEOzMzQUQ7MDA3MiAwMDYxIDAwNjQ7MDA3MiAwMDYxIDAwNjQ7CiszM0FFOzMzQUU7MzNBRTswMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzM7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOworMzNBRjszM0FGOzMzQUY7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwMzI7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwMzI7CiszM0IwOzMzQjA7MzNCMDswMDcwIDAwNzM7MDA3MCAwMDczOworMzNCMTszM0IxOzMzQjE7MDA2RSAwMDczOzAwNkUgMDA3MzsKKzMzQjI7MzNCMjszM0IyOzAzQkMgMDA3MzswM0JDIDAwNzM7CiszM0IzOzMzQjM7MzNCMzswMDZEIDAwNzM7MDA2RCAwMDczOworMzNCNDszM0I0OzMzQjQ7MDA3MCAwMDU2OzAwNzAgMDA1NjsKKzMzQjU7MzNCNTszM0I1OzAwNkUgMDA1NjswMDZFIDAwNTY7CiszM0I2OzMzQjY7MzNCNjswM0JDIDAwNTY7MDNCQyAwMDU2OworMzNCNzszM0I3OzMzQjc7MDA2RCAwMDU2OzAwNkQgMDA1NjsKKzMzQjg7MzNCODszM0I4OzAwNkIgMDA1NjswMDZCIDAwNTY7CiszM0I5OzMzQjk7MzNCOTswMDREIDAwNTY7MDA0RCAwMDU2OworMzNCQTszM0JBOzMzQkE7MDA3MCAwMDU3OzAwNzAgMDA1NzsKKzMzQkI7MzNCQjszM0JCOzAwNkUgMDA1NzswMDZFIDAwNTc7CiszM0JDOzMzQkM7MzNCQzswM0JDIDAwNTc7MDNCQyAwMDU3OworMzNCRDszM0JEOzMzQkQ7MDA2RCAwMDU3OzAwNkQgMDA1NzsKKzMzQkU7MzNCRTszM0JFOzAwNkIgMDA1NzswMDZCIDAwNTc7CiszM0JGOzMzQkY7MzNCRjswMDREIDAwNTc7MDA0RCAwMDU3OworMzNDMDszM0MwOzMzQzA7MDA2QiAwM0E5OzAwNkIgMDNBOTsKKzMzQzE7MzNDMTszM0MxOzAwNEQgMDNBOTswMDREIDAzQTk7CiszM0MyOzMzQzI7MzNDMjswMDYxIDAwMkUgMDA2RCAwMDJFOzAwNjEgMDAyRSAwMDZEIDAwMkU7CiszM0MzOzMzQzM7MzNDMzswMDQyIDAwNzE7MDA0MiAwMDcxOworMzNDNDszM0M0OzMzQzQ7MDA2MyAwMDYzOzAwNjMgMDA2MzsKKzMzQzU7MzNDNTszM0M1OzAwNjMgMDA2NDswMDYzIDAwNjQ7CiszM0M2OzMzQzY7MzNDNjswMDQzIDIyMTUgMDA2QiAwMDY3OzAwNDMgMjIxNSAwMDZCIDAwNjc7CiszM0M3OzMzQzc7MzNDNzswMDQzIDAwNkYgMDAyRTswMDQzIDAwNkYgMDAyRTsKKzMzQzg7MzNDODszM0M4OzAwNjQgMDA0MjswMDY0IDAwNDI7CiszM0M5OzMzQzk7MzNDOTswMDQ3IDAwNzk7MDA0NyAwMDc5OworMzNDQTszM0NBOzMzQ0E7MDA2OCAwMDYxOzAwNjggMDA2MTsKKzMzQ0I7MzNDQjszM0NCOzAwNDggMDA1MDswMDQ4IDAwNTA7CiszM0NDOzMzQ0M7MzNDQzswMDY5IDAwNkU7MDA2OSAwMDZFOworMzNDRDszM0NEOzMzQ0Q7MDA0QiAwMDRCOzAwNEIgMDA0QjsKKzMzQ0U7MzNDRTszM0NFOzAwNEIgMDA0RDswMDRCIDAwNEQ7CiszM0NGOzMzQ0Y7MzNDRjswMDZCIDAwNzQ7MDA2QiAwMDc0OworMzNEMDszM0QwOzMzRDA7MDA2QyAwMDZEOzAwNkMgMDA2RDsKKzMzRDE7MzNEMTszM0QxOzAwNkMgMDA2RTswMDZDIDAwNkU7CiszM0QyOzMzRDI7MzNEMjswMDZDIDAwNkYgMDA2NzswMDZDIDAwNkYgMDA2NzsKKzMzRDM7MzNEMzszM0QzOzAwNkMgMDA3ODswMDZDIDAwNzg7CiszM0Q0OzMzRDQ7MzNENDswMDZEIDAwNjI7MDA2RCAwMDYyOworMzNENTszM0Q1OzMzRDU7MDA2RCAwMDY5IDAwNkM7MDA2RCAwMDY5IDAwNkM7CiszM0Q2OzMzRDY7MzNENjswMDZEIDAwNkYgMDA2QzswMDZEIDAwNkYgMDA2QzsKKzMzRDc7MzNENzszM0Q3OzAwNTAgMDA0ODswMDUwIDAwNDg7CiszM0Q4OzMzRDg7MzNEODswMDcwIDAwMkUgMDA2RCAwMDJFOzAwNzAgMDAyRSAwMDZEIDAwMkU7CiszM0Q5OzMzRDk7MzNEOTswMDUwIDAwNTAgMDA0RDswMDUwIDAwNTAgMDA0RDsKKzMzREE7MzNEQTszM0RBOzAwNTAgMDA1MjswMDUwIDAwNTI7CiszM0RCOzMzREI7MzNEQjswMDczIDAwNzI7MDA3MyAwMDcyOworMzNEQzszM0RDOzMzREM7MDA1MyAwMDc2OzAwNTMgMDA3NjsKKzMzREQ7MzNERDszM0REOzAwNTcgMDA2MjswMDU3IDAwNjI7CiszM0UwOzMzRTA7MzNFMDswMDMxIDY1RTU7MDAzMSA2NUU1OworMzNFMTszM0UxOzMzRTE7MDAzMiA2NUU1OzAwMzIgNjVFNTsKKzMzRTI7MzNFMjszM0UyOzAwMzMgNjVFNTswMDMzIDY1RTU7CiszM0UzOzMzRTM7MzNFMzswMDM0IDY1RTU7MDAzNCA2NUU1OworMzNFNDszM0U0OzMzRTQ7MDAzNSA2NUU1OzAwMzUgNjVFNTsKKzMzRTU7MzNFNTszM0U1OzAwMzYgNjVFNTswMDM2IDY1RTU7CiszM0U2OzMzRTY7MzNFNjswMDM3IDY1RTU7MDAzNyA2NUU1OworMzNFNzszM0U3OzMzRTc7MDAzOCA2NUU1OzAwMzggNjVFNTsKKzMzRTg7MzNFODszM0U4OzAwMzkgNjVFNTswMDM5IDY1RTU7CiszM0U5OzMzRTk7MzNFOTswMDMxIDAwMzAgNjVFNTswMDMxIDAwMzAgNjVFNTsKKzMzRUE7MzNFQTszM0VBOzAwMzEgMDAzMSA2NUU1OzAwMzEgMDAzMSA2NUU1OworMzNFQjszM0VCOzMzRUI7MDAzMSAwMDMyIDY1RTU7MDAzMSAwMDMyIDY1RTU7CiszM0VDOzMzRUM7MzNFQzswMDMxIDAwMzMgNjVFNTswMDMxIDAwMzMgNjVFNTsKKzMzRUQ7MzNFRDszM0VEOzAwMzEgMDAzNCA2NUU1OzAwMzEgMDAzNCA2NUU1OworMzNFRTszM0VFOzMzRUU7MDAzMSAwMDM1IDY1RTU7MDAzMSAwMDM1IDY1RTU7CiszM0VGOzMzRUY7MzNFRjswMDMxIDAwMzYgNjVFNTswMDMxIDAwMzYgNjVFNTsKKzMzRjA7MzNGMDszM0YwOzAwMzEgMDAzNyA2NUU1OzAwMzEgMDAzNyA2NUU1OworMzNGMTszM0YxOzMzRjE7MDAzMSAwMDM4IDY1RTU7MDAzMSAwMDM4IDY1RTU7CiszM0YyOzMzRjI7MzNGMjswMDMxIDAwMzkgNjVFNTswMDMxIDAwMzkgNjVFNTsKKzMzRjM7MzNGMzszM0YzOzAwMzIgMDAzMCA2NUU1OzAwMzIgMDAzMCA2NUU1OworMzNGNDszM0Y0OzMzRjQ7MDAzMiAwMDMxIDY1RTU7MDAzMiAwMDMxIDY1RTU7CiszM0Y1OzMzRjU7MzNGNTswMDMyIDAwMzIgNjVFNTswMDMyIDAwMzIgNjVFNTsKKzMzRjY7MzNGNjszM0Y2OzAwMzIgMDAzMyA2NUU1OzAwMzIgMDAzMyA2NUU1OworMzNGNzszM0Y3OzMzRjc7MDAzMiAwMDM0IDY1RTU7MDAzMiAwMDM0IDY1RTU7CiszM0Y4OzMzRjg7MzNGODswMDMyIDAwMzUgNjVFNTswMDMyIDAwMzUgNjVFNTsKKzMzRjk7MzNGOTszM0Y5OzAwMzIgMDAzNiA2NUU1OzAwMzIgMDAzNiA2NUU1OworMzNGQTszM0ZBOzMzRkE7MDAzMiAwMDM3IDY1RTU7MDAzMiAwMDM3IDY1RTU7CiszM0ZCOzMzRkI7MzNGQjswMDMyIDAwMzggNjVFNTswMDMyIDAwMzggNjVFNTsKKzMzRkM7MzNGQzszM0ZDOzAwMzIgMDAzOSA2NUU1OzAwMzIgMDAzOSA2NUU1OworMzNGRDszM0ZEOzMzRkQ7MDAzMyAwMDMwIDY1RTU7MDAzMyAwMDMwIDY1RTU7CiszM0ZFOzMzRkU7MzNGRTswMDMzIDAwMzEgNjVFNTswMDMzIDAwMzEgNjVFNTsKK0FDMDA7QUMwMDsxMTAwIDExNjE7QUMwMDsxMTAwIDExNjE7CitBQzAxO0FDMDE7MTEwMCAxMTYxIDExQTg7QUMwMTsxMTAwIDExNjEgMTFBODsKK0FDMDI7QUMwMjsxMTAwIDExNjEgMTFBOTtBQzAyOzExMDAgMTE2MSAxMUE5OworQUMwMztBQzAzOzExMDAgMTE2MSAxMUFBO0FDMDM7MTEwMCAxMTYxIDExQUE7CitBQzA0O0FDMDQ7MTEwMCAxMTYxIDExQUI7QUMwNDsxMTAwIDExNjEgMTFBQjsKK0FDMDU7QUMwNTsxMTAwIDExNjEgMTFBQztBQzA1OzExMDAgMTE2MSAxMUFDOworQUMwNjtBQzA2OzExMDAgMTE2MSAxMUFEO0FDMDY7MTEwMCAxMTYxIDExQUQ7CitBQzA3O0FDMDc7MTEwMCAxMTYxIDExQUU7QUMwNzsxMTAwIDExNjEgMTFBRTsKK0FDMDg7QUMwODsxMTAwIDExNjEgMTFBRjtBQzA4OzExMDAgMTE2MSAxMUFGOworQUMwOTtBQzA5OzExMDAgMTE2MSAxMUIwO0FDMDk7MTEwMCAxMTYxIDExQjA7CitBQzBBO0FDMEE7MTEwMCAxMTYxIDExQjE7QUMwQTsxMTAwIDExNjEgMTFCMTsKK0FDMEI7QUMwQjsxMTAwIDExNjEgMTFCMjtBQzBCOzExMDAgMTE2MSAxMUIyOworQUMwQztBQzBDOzExMDAgMTE2MSAxMUIzO0FDMEM7MTEwMCAxMTYxIDExQjM7CitBQzBEO0FDMEQ7MTEwMCAxMTYxIDExQjQ7QUMwRDsxMTAwIDExNjEgMTFCNDsKK0FDMEU7QUMwRTsxMTAwIDExNjEgMTFCNTtBQzBFOzExMDAgMTE2MSAxMUI1OworQUMwRjtBQzBGOzExMDAgMTE2MSAxMUI2O0FDMEY7MTEwMCAxMTYxIDExQjY7CitBQzEwO0FDMTA7MTEwMCAxMTYxIDExQjc7QUMxMDsxMTAwIDExNjEgMTFCNzsKK0FDMTE7QUMxMTsxMTAwIDExNjEgMTFCODtBQzExOzExMDAgMTE2MSAxMUI4OworQUMxMjtBQzEyOzExMDAgMTE2MSAxMUI5O0FDMTI7MTEwMCAxMTYxIDExQjk7CitBQzEzO0FDMTM7MTEwMCAxMTYxIDExQkE7QUMxMzsxMTAwIDExNjEgMTFCQTsKK0FDMTQ7QUMxNDsxMTAwIDExNjEgMTFCQjtBQzE0OzExMDAgMTE2MSAxMUJCOworQUMxNTtBQzE1OzExMDAgMTE2MSAxMUJDO0FDMTU7MTEwMCAxMTYxIDExQkM7CitBQzE2O0FDMTY7MTEwMCAxMTYxIDExQkQ7QUMxNjsxMTAwIDExNjEgMTFCRDsKK0FDMTc7QUMxNzsxMTAwIDExNjEgMTFCRTtBQzE3OzExMDAgMTE2MSAxMUJFOworQUMxODtBQzE4OzExMDAgMTE2MSAxMUJGO0FDMTg7MTEwMCAxMTYxIDExQkY7CitBQzE5O0FDMTk7MTEwMCAxMTYxIDExQzA7QUMxOTsxMTAwIDExNjEgMTFDMDsKK0FDMUE7QUMxQTsxMTAwIDExNjEgMTFDMTtBQzFBOzExMDAgMTE2MSAxMUMxOworQUMxQjtBQzFCOzExMDAgMTE2MSAxMUMyO0FDMUI7MTEwMCAxMTYxIDExQzI7CitBQzFDO0FDMUM7MTEwMCAxMTYyO0FDMUM7MTEwMCAxMTYyOworQUMxRDtBQzFEOzExMDAgMTE2MiAxMUE4O0FDMUQ7MTEwMCAxMTYyIDExQTg7CitBQzFFO0FDMUU7MTEwMCAxMTYyIDExQTk7QUMxRTsxMTAwIDExNjIgMTFBOTsKK0FDMUY7QUMxRjsxMTAwIDExNjIgMTFBQTtBQzFGOzExMDAgMTE2MiAxMUFBOworQUMyMDtBQzIwOzExMDAgMTE2MiAxMUFCO0FDMjA7MTEwMCAxMTYyIDExQUI7CitBQzIxO0FDMjE7MTEwMCAxMTYyIDExQUM7QUMyMTsxMTAwIDExNjIgMTFBQzsKK0FDMjI7QUMyMjsxMTAwIDExNjIgMTFBRDtBQzIyOzExMDAgMTE2MiAxMUFEOworQUMyMztBQzIzOzExMDAgMTE2MiAxMUFFO0FDMjM7MTEwMCAxMTYyIDExQUU7CitBQzI0O0FDMjQ7MTEwMCAxMTYyIDExQUY7QUMyNDsxMTAwIDExNjIgMTFBRjsKK0FDMjU7QUMyNTsxMTAwIDExNjIgMTFCMDtBQzI1OzExMDAgMTE2MiAxMUIwOworQUMyNjtBQzI2OzExMDAgMTE2MiAxMUIxO0FDMjY7MTEwMCAxMTYyIDExQjE7CitBQzI3O0FDMjc7MTEwMCAxMTYyIDExQjI7QUMyNzsxMTAwIDExNjIgMTFCMjsKK0FDMjg7QUMyODsxMTAwIDExNjIgMTFCMztBQzI4OzExMDAgMTE2MiAxMUIzOworQUMyOTtBQzI5OzExMDAgMTE2MiAxMUI0O0FDMjk7MTEwMCAxMTYyIDExQjQ7CitBQzJBO0FDMkE7MTEwMCAxMTYyIDExQjU7QUMyQTsxMTAwIDExNjIgMTFCNTsKK0FDMkI7QUMyQjsxMTAwIDExNjIgMTFCNjtBQzJCOzExMDAgMTE2MiAxMUI2OworQUMyQztBQzJDOzExMDAgMTE2MiAxMUI3O0FDMkM7MTEwMCAxMTYyIDExQjc7CitBQzJEO0FDMkQ7MTEwMCAxMTYyIDExQjg7QUMyRDsxMTAwIDExNjIgMTFCODsKK0FDMkU7QUMyRTsxMTAwIDExNjIgMTFCOTtBQzJFOzExMDAgMTE2MiAxMUI5OworQUMyRjtBQzJGOzExMDAgMTE2MiAxMUJBO0FDMkY7MTEwMCAxMTYyIDExQkE7CitBQzMwO0FDMzA7MTEwMCAxMTYyIDExQkI7QUMzMDsxMTAwIDExNjIgMTFCQjsKK0FDMzE7QUMzMTsxMTAwIDExNjIgMTFCQztBQzMxOzExMDAgMTE2MiAxMUJDOworQUMzMjtBQzMyOzExMDAgMTE2MiAxMUJEO0FDMzI7MTEwMCAxMTYyIDExQkQ7CitBQzMzO0FDMzM7MTEwMCAxMTYyIDExQkU7QUMzMzsxMTAwIDExNjIgMTFCRTsKK0FDMzQ7QUMzNDsxMTAwIDExNjIgMTFCRjtBQzM0OzExMDAgMTE2MiAxMUJGOworQUMzNTtBQzM1OzExMDAgMTE2MiAxMUMwO0FDMzU7MTEwMCAxMTYyIDExQzA7CitBQzM2O0FDMzY7MTEwMCAxMTYyIDExQzE7QUMzNjsxMTAwIDExNjIgMTFDMTsKK0FDMzc7QUMzNzsxMTAwIDExNjIgMTFDMjtBQzM3OzExMDAgMTE2MiAxMUMyOworQUMzODtBQzM4OzExMDAgMTE2MztBQzM4OzExMDAgMTE2MzsKK0FDMzk7QUMzOTsxMTAwIDExNjMgMTFBODtBQzM5OzExMDAgMTE2MyAxMUE4OworQUMzQTtBQzNBOzExMDAgMTE2MyAxMUE5O0FDM0E7MTEwMCAxMTYzIDExQTk7CitBQzNCO0FDM0I7MTEwMCAxMTYzIDExQUE7QUMzQjsxMTAwIDExNjMgMTFBQTsKK0FDM0M7QUMzQzsxMTAwIDExNjMgMTFBQjtBQzNDOzExMDAgMTE2MyAxMUFCOworQUMzRDtBQzNEOzExMDAgMTE2MyAxMUFDO0FDM0Q7MTEwMCAxMTYzIDExQUM7CitBQzNFO0FDM0U7MTEwMCAxMTYzIDExQUQ7QUMzRTsxMTAwIDExNjMgMTFBRDsKK0FDM0Y7QUMzRjsxMTAwIDExNjMgMTFBRTtBQzNGOzExMDAgMTE2MyAxMUFFOworQUM0MDtBQzQwOzExMDAgMTE2MyAxMUFGO0FDNDA7MTEwMCAxMTYzIDExQUY7CitBQzQxO0FDNDE7MTEwMCAxMTYzIDExQjA7QUM0MTsxMTAwIDExNjMgMTFCMDsKK0FDNDI7QUM0MjsxMTAwIDExNjMgMTFCMTtBQzQyOzExMDAgMTE2MyAxMUIxOworQUM0MztBQzQzOzExMDAgMTE2MyAxMUIyO0FDNDM7MTEwMCAxMTYzIDExQjI7CitBQzQ0O0FDNDQ7MTEwMCAxMTYzIDExQjM7QUM0NDsxMTAwIDExNjMgMTFCMzsKK0FDNDU7QUM0NTsxMTAwIDExNjMgMTFCNDtBQzQ1OzExMDAgMTE2MyAxMUI0OworQUM0NjtBQzQ2OzExMDAgMTE2MyAxMUI1O0FDNDY7MTEwMCAxMTYzIDExQjU7CitBQzQ3O0FDNDc7MTEwMCAxMTYzIDExQjY7QUM0NzsxMTAwIDExNjMgMTFCNjsKK0FDNDg7QUM0ODsxMTAwIDExNjMgMTFCNztBQzQ4OzExMDAgMTE2MyAxMUI3OworQUM0OTtBQzQ5OzExMDAgMTE2MyAxMUI4O0FDNDk7MTEwMCAxMTYzIDExQjg7CitBQzRBO0FDNEE7MTEwMCAxMTYzIDExQjk7QUM0QTsxMTAwIDExNjMgMTFCOTsKK0FDNEI7QUM0QjsxMTAwIDExNjMgMTFCQTtBQzRCOzExMDAgMTE2MyAxMUJBOworQUM0QztBQzRDOzExMDAgMTE2MyAxMUJCO0FDNEM7MTEwMCAxMTYzIDExQkI7CitBQzREO0FDNEQ7MTEwMCAxMTYzIDExQkM7QUM0RDsxMTAwIDExNjMgMTFCQzsKK0FDNEU7QUM0RTsxMTAwIDExNjMgMTFCRDtBQzRFOzExMDAgMTE2MyAxMUJEOworQUM0RjtBQzRGOzExMDAgMTE2MyAxMUJFO0FDNEY7MTEwMCAxMTYzIDExQkU7CitBQzUwO0FDNTA7MTEwMCAxMTYzIDExQkY7QUM1MDsxMTAwIDExNjMgMTFCRjsKK0FDNTE7QUM1MTsxMTAwIDExNjMgMTFDMDtBQzUxOzExMDAgMTE2MyAxMUMwOworQUM1MjtBQzUyOzExMDAgMTE2MyAxMUMxO0FDNTI7MTEwMCAxMTYzIDExQzE7CitBQzUzO0FDNTM7MTEwMCAxMTYzIDExQzI7QUM1MzsxMTAwIDExNjMgMTFDMjsKK0FDNTQ7QUM1NDsxMTAwIDExNjQ7QUM1NDsxMTAwIDExNjQ7CitBQzU1O0FDNTU7MTEwMCAxMTY0IDExQTg7QUM1NTsxMTAwIDExNjQgMTFBODsKK0FDNTY7QUM1NjsxMTAwIDExNjQgMTFBOTtBQzU2OzExMDAgMTE2NCAxMUE5OworQUM1NztBQzU3OzExMDAgMTE2NCAxMUFBO0FDNTc7MTEwMCAxMTY0IDExQUE7CitBQzU4O0FDNTg7MTEwMCAxMTY0IDExQUI7QUM1ODsxMTAwIDExNjQgMTFBQjsKK0FDNTk7QUM1OTsxMTAwIDExNjQgMTFBQztBQzU5OzExMDAgMTE2NCAxMUFDOworQUM1QTtBQzVBOzExMDAgMTE2NCAxMUFEO0FDNUE7MTEwMCAxMTY0IDExQUQ7CitBQzVCO0FDNUI7MTEwMCAxMTY0IDExQUU7QUM1QjsxMTAwIDExNjQgMTFBRTsKK0FDNUM7QUM1QzsxMTAwIDExNjQgMTFBRjtBQzVDOzExMDAgMTE2NCAxMUFGOworQUM1RDtBQzVEOzExMDAgMTE2NCAxMUIwO0FDNUQ7MTEwMCAxMTY0IDExQjA7CitBQzVFO0FDNUU7MTEwMCAxMTY0IDExQjE7QUM1RTsxMTAwIDExNjQgMTFCMTsKK0FDNUY7QUM1RjsxMTAwIDExNjQgMTFCMjtBQzVGOzExMDAgMTE2NCAxMUIyOworQUM2MDtBQzYwOzExMDAgMTE2NCAxMUIzO0FDNjA7MTEwMCAxMTY0IDExQjM7CitBQzYxO0FDNjE7MTEwMCAxMTY0IDExQjQ7QUM2MTsxMTAwIDExNjQgMTFCNDsKK0FDNjI7QUM2MjsxMTAwIDExNjQgMTFCNTtBQzYyOzExMDAgMTE2NCAxMUI1OworQUM2MztBQzYzOzExMDAgMTE2NCAxMUI2O0FDNjM7MTEwMCAxMTY0IDExQjY7CitBQzY0O0FDNjQ7MTEwMCAxMTY0IDExQjc7QUM2NDsxMTAwIDExNjQgMTFCNzsKK0FDNjU7QUM2NTsxMTAwIDExNjQgMTFCODtBQzY1OzExMDAgMTE2NCAxMUI4OworQUM2NjtBQzY2OzExMDAgMTE2NCAxMUI5O0FDNjY7MTEwMCAxMTY0IDExQjk7CitBQzY3O0FDNjc7MTEwMCAxMTY0IDExQkE7QUM2NzsxMTAwIDExNjQgMTFCQTsKK0FDNjg7QUM2ODsxMTAwIDExNjQgMTFCQjtBQzY4OzExMDAgMTE2NCAxMUJCOworQUM2OTtBQzY5OzExMDAgMTE2NCAxMUJDO0FDNjk7MTEwMCAxMTY0IDExQkM7CitBQzZBO0FDNkE7MTEwMCAxMTY0IDExQkQ7QUM2QTsxMTAwIDExNjQgMTFCRDsKK0FDNkI7QUM2QjsxMTAwIDExNjQgMTFCRTtBQzZCOzExMDAgMTE2NCAxMUJFOworQUM2QztBQzZDOzExMDAgMTE2NCAxMUJGO0FDNkM7MTEwMCAxMTY0IDExQkY7CitBQzZEO0FDNkQ7MTEwMCAxMTY0IDExQzA7QUM2RDsxMTAwIDExNjQgMTFDMDsKK0FDNkU7QUM2RTsxMTAwIDExNjQgMTFDMTtBQzZFOzExMDAgMTE2NCAxMUMxOworQUM2RjtBQzZGOzExMDAgMTE2NCAxMUMyO0FDNkY7MTEwMCAxMTY0IDExQzI7CitBQzcwO0FDNzA7MTEwMCAxMTY1O0FDNzA7MTEwMCAxMTY1OworQUM3MTtBQzcxOzExMDAgMTE2NSAxMUE4O0FDNzE7MTEwMCAxMTY1IDExQTg7CitBQzcyO0FDNzI7MTEwMCAxMTY1IDExQTk7QUM3MjsxMTAwIDExNjUgMTFBOTsKK0FDNzM7QUM3MzsxMTAwIDExNjUgMTFBQTtBQzczOzExMDAgMTE2NSAxMUFBOworQUM3NDtBQzc0OzExMDAgMTE2NSAxMUFCO0FDNzQ7MTEwMCAxMTY1IDExQUI7CitBQzc1O0FDNzU7MTEwMCAxMTY1IDExQUM7QUM3NTsxMTAwIDExNjUgMTFBQzsKK0FDNzY7QUM3NjsxMTAwIDExNjUgMTFBRDtBQzc2OzExMDAgMTE2NSAxMUFEOworQUM3NztBQzc3OzExMDAgMTE2NSAxMUFFO0FDNzc7MTEwMCAxMTY1IDExQUU7CitBQzc4O0FDNzg7MTEwMCAxMTY1IDExQUY7QUM3ODsxMTAwIDExNjUgMTFBRjsKK0FDNzk7QUM3OTsxMTAwIDExNjUgMTFCMDtBQzc5OzExMDAgMTE2NSAxMUIwOworQUM3QTtBQzdBOzExMDAgMTE2NSAxMUIxO0FDN0E7MTEwMCAxMTY1IDExQjE7CitBQzdCO0FDN0I7MTEwMCAxMTY1IDExQjI7QUM3QjsxMTAwIDExNjUgMTFCMjsKK0FDN0M7QUM3QzsxMTAwIDExNjUgMTFCMztBQzdDOzExMDAgMTE2NSAxMUIzOworQUM3RDtBQzdEOzExMDAgMTE2NSAxMUI0O0FDN0Q7MTEwMCAxMTY1IDExQjQ7CitBQzdFO0FDN0U7MTEwMCAxMTY1IDExQjU7QUM3RTsxMTAwIDExNjUgMTFCNTsKK0FDN0Y7QUM3RjsxMTAwIDExNjUgMTFCNjtBQzdGOzExMDAgMTE2NSAxMUI2OworQUM4MDtBQzgwOzExMDAgMTE2NSAxMUI3O0FDODA7MTEwMCAxMTY1IDExQjc7CitBQzgxO0FDODE7MTEwMCAxMTY1IDExQjg7QUM4MTsxMTAwIDExNjUgMTFCODsKK0FDODI7QUM4MjsxMTAwIDExNjUgMTFCOTtBQzgyOzExMDAgMTE2NSAxMUI5OworQUM4MztBQzgzOzExMDAgMTE2NSAxMUJBO0FDODM7MTEwMCAxMTY1IDExQkE7CitBQzg0O0FDODQ7MTEwMCAxMTY1IDExQkI7QUM4NDsxMTAwIDExNjUgMTFCQjsKK0FDODU7QUM4NTsxMTAwIDExNjUgMTFCQztBQzg1OzExMDAgMTE2NSAxMUJDOworQUM4NjtBQzg2OzExMDAgMTE2NSAxMUJEO0FDODY7MTEwMCAxMTY1IDExQkQ7CitBQzg3O0FDODc7MTEwMCAxMTY1IDExQkU7QUM4NzsxMTAwIDExNjUgMTFCRTsKK0FDODg7QUM4ODsxMTAwIDExNjUgMTFCRjtBQzg4OzExMDAgMTE2NSAxMUJGOworQUM4OTtBQzg5OzExMDAgMTE2NSAxMUMwO0FDODk7MTEwMCAxMTY1IDExQzA7CitBQzhBO0FDOEE7MTEwMCAxMTY1IDExQzE7QUM4QTsxMTAwIDExNjUgMTFDMTsKK0FDOEI7QUM4QjsxMTAwIDExNjUgMTFDMjtBQzhCOzExMDAgMTE2NSAxMUMyOworQUM4QztBQzhDOzExMDAgMTE2NjtBQzhDOzExMDAgMTE2NjsKK0FDOEQ7QUM4RDsxMTAwIDExNjYgMTFBODtBQzhEOzExMDAgMTE2NiAxMUE4OworQUM4RTtBQzhFOzExMDAgMTE2NiAxMUE5O0FDOEU7MTEwMCAxMTY2IDExQTk7CitBQzhGO0FDOEY7MTEwMCAxMTY2IDExQUE7QUM4RjsxMTAwIDExNjYgMTFBQTsKK0FDOTA7QUM5MDsxMTAwIDExNjYgMTFBQjtBQzkwOzExMDAgMTE2NiAxMUFCOworQUM5MTtBQzkxOzExMDAgMTE2NiAxMUFDO0FDOTE7MTEwMCAxMTY2IDExQUM7CitBQzkyO0FDOTI7MTEwMCAxMTY2IDExQUQ7QUM5MjsxMTAwIDExNjYgMTFBRDsKK0FDOTM7QUM5MzsxMTAwIDExNjYgMTFBRTtBQzkzOzExMDAgMTE2NiAxMUFFOworQUM5NDtBQzk0OzExMDAgMTE2NiAxMUFGO0FDOTQ7MTEwMCAxMTY2IDExQUY7CitBQzk1O0FDOTU7MTEwMCAxMTY2IDExQjA7QUM5NTsxMTAwIDExNjYgMTFCMDsKK0FDOTY7QUM5NjsxMTAwIDExNjYgMTFCMTtBQzk2OzExMDAgMTE2NiAxMUIxOworQUM5NztBQzk3OzExMDAgMTE2NiAxMUIyO0FDOTc7MTEwMCAxMTY2IDExQjI7CitBQzk4O0FDOTg7MTEwMCAxMTY2IDExQjM7QUM5ODsxMTAwIDExNjYgMTFCMzsKK0FDOTk7QUM5OTsxMTAwIDExNjYgMTFCNDtBQzk5OzExMDAgMTE2NiAxMUI0OworQUM5QTtBQzlBOzExMDAgMTE2NiAxMUI1O0FDOUE7MTEwMCAxMTY2IDExQjU7CitBQzlCO0FDOUI7MTEwMCAxMTY2IDExQjY7QUM5QjsxMTAwIDExNjYgMTFCNjsKK0FDOUM7QUM5QzsxMTAwIDExNjYgMTFCNztBQzlDOzExMDAgMTE2NiAxMUI3OworQUM5RDtBQzlEOzExMDAgMTE2NiAxMUI4O0FDOUQ7MTEwMCAxMTY2IDExQjg7CitBQzlFO0FDOUU7MTEwMCAxMTY2IDExQjk7QUM5RTsxMTAwIDExNjYgMTFCOTsKK0FDOUY7QUM5RjsxMTAwIDExNjYgMTFCQTtBQzlGOzExMDAgMTE2NiAxMUJBOworQUNBMDtBQ0EwOzExMDAgMTE2NiAxMUJCO0FDQTA7MTEwMCAxMTY2IDExQkI7CitBQ0ExO0FDQTE7MTEwMCAxMTY2IDExQkM7QUNBMTsxMTAwIDExNjYgMTFCQzsKK0FDQTI7QUNBMjsxMTAwIDExNjYgMTFCRDtBQ0EyOzExMDAgMTE2NiAxMUJEOworQUNBMztBQ0EzOzExMDAgMTE2NiAxMUJFO0FDQTM7MTEwMCAxMTY2IDExQkU7CitBQ0E0O0FDQTQ7MTEwMCAxMTY2IDExQkY7QUNBNDsxMTAwIDExNjYgMTFCRjsKK0FDQTU7QUNBNTsxMTAwIDExNjYgMTFDMDtBQ0E1OzExMDAgMTE2NiAxMUMwOworQUNBNjtBQ0E2OzExMDAgMTE2NiAxMUMxO0FDQTY7MTEwMCAxMTY2IDExQzE7CitBQ0E3O0FDQTc7MTEwMCAxMTY2IDExQzI7QUNBNzsxMTAwIDExNjYgMTFDMjsKK0FDQTg7QUNBODsxMTAwIDExNjc7QUNBODsxMTAwIDExNjc7CitBQ0E5O0FDQTk7MTEwMCAxMTY3IDExQTg7QUNBOTsxMTAwIDExNjcgMTFBODsKK0FDQUE7QUNBQTsxMTAwIDExNjcgMTFBOTtBQ0FBOzExMDAgMTE2NyAxMUE5OworQUNBQjtBQ0FCOzExMDAgMTE2NyAxMUFBO0FDQUI7MTEwMCAxMTY3IDExQUE7CitBQ0FDO0FDQUM7MTEwMCAxMTY3IDExQUI7QUNBQzsxMTAwIDExNjcgMTFBQjsKK0FDQUQ7QUNBRDsxMTAwIDExNjcgMTFBQztBQ0FEOzExMDAgMTE2NyAxMUFDOworQUNBRTtBQ0FFOzExMDAgMTE2NyAxMUFEO0FDQUU7MTEwMCAxMTY3IDExQUQ7CitBQ0FGO0FDQUY7MTEwMCAxMTY3IDExQUU7QUNBRjsxMTAwIDExNjcgMTFBRTsKK0FDQjA7QUNCMDsxMTAwIDExNjcgMTFBRjtBQ0IwOzExMDAgMTE2NyAxMUFGOworQUNCMTtBQ0IxOzExMDAgMTE2NyAxMUIwO0FDQjE7MTEwMCAxMTY3IDExQjA7CitBQ0IyO0FDQjI7MTEwMCAxMTY3IDExQjE7QUNCMjsxMTAwIDExNjcgMTFCMTsKK0FDQjM7QUNCMzsxMTAwIDExNjcgMTFCMjtBQ0IzOzExMDAgMTE2NyAxMUIyOworQUNCNDtBQ0I0OzExMDAgMTE2NyAxMUIzO0FDQjQ7MTEwMCAxMTY3IDExQjM7CitBQ0I1O0FDQjU7MTEwMCAxMTY3IDExQjQ7QUNCNTsxMTAwIDExNjcgMTFCNDsKK0FDQjY7QUNCNjsxMTAwIDExNjcgMTFCNTtBQ0I2OzExMDAgMTE2NyAxMUI1OworQUNCNztBQ0I3OzExMDAgMTE2NyAxMUI2O0FDQjc7MTEwMCAxMTY3IDExQjY7CitBQ0I4O0FDQjg7MTEwMCAxMTY3IDExQjc7QUNCODsxMTAwIDExNjcgMTFCNzsKK0FDQjk7QUNCOTsxMTAwIDExNjcgMTFCODtBQ0I5OzExMDAgMTE2NyAxMUI4OworQUNCQTtBQ0JBOzExMDAgMTE2NyAxMUI5O0FDQkE7MTEwMCAxMTY3IDExQjk7CitBQ0JCO0FDQkI7MTEwMCAxMTY3IDExQkE7QUNCQjsxMTAwIDExNjcgMTFCQTsKK0FDQkM7QUNCQzsxMTAwIDExNjcgMTFCQjtBQ0JDOzExMDAgMTE2NyAxMUJCOworQUNCRDtBQ0JEOzExMDAgMTE2NyAxMUJDO0FDQkQ7MTEwMCAxMTY3IDExQkM7CitBQ0JFO0FDQkU7MTEwMCAxMTY3IDExQkQ7QUNCRTsxMTAwIDExNjcgMTFCRDsKK0FDQkY7QUNCRjsxMTAwIDExNjcgMTFCRTtBQ0JGOzExMDAgMTE2NyAxMUJFOworQUNDMDtBQ0MwOzExMDAgMTE2NyAxMUJGO0FDQzA7MTEwMCAxMTY3IDExQkY7CitBQ0MxO0FDQzE7MTEwMCAxMTY3IDExQzA7QUNDMTsxMTAwIDExNjcgMTFDMDsKK0FDQzI7QUNDMjsxMTAwIDExNjcgMTFDMTtBQ0MyOzExMDAgMTE2NyAxMUMxOworQUNDMztBQ0MzOzExMDAgMTE2NyAxMUMyO0FDQzM7MTEwMCAxMTY3IDExQzI7CitBQ0M0O0FDQzQ7MTEwMCAxMTY4O0FDQzQ7MTEwMCAxMTY4OworQUNDNTtBQ0M1OzExMDAgMTE2OCAxMUE4O0FDQzU7MTEwMCAxMTY4IDExQTg7CitBQ0M2O0FDQzY7MTEwMCAxMTY4IDExQTk7QUNDNjsxMTAwIDExNjggMTFBOTsKK0FDQzc7QUNDNzsxMTAwIDExNjggMTFBQTtBQ0M3OzExMDAgMTE2OCAxMUFBOworQUNDODtBQ0M4OzExMDAgMTE2OCAxMUFCO0FDQzg7MTEwMCAxMTY4IDExQUI7CitBQ0M5O0FDQzk7MTEwMCAxMTY4IDExQUM7QUNDOTsxMTAwIDExNjggMTFBQzsKK0FDQ0E7QUNDQTsxMTAwIDExNjggMTFBRDtBQ0NBOzExMDAgMTE2OCAxMUFEOworQUNDQjtBQ0NCOzExMDAgMTE2OCAxMUFFO0FDQ0I7MTEwMCAxMTY4IDExQUU7CitBQ0NDO0FDQ0M7MTEwMCAxMTY4IDExQUY7QUNDQzsxMTAwIDExNjggMTFBRjsKK0FDQ0Q7QUNDRDsxMTAwIDExNjggMTFCMDtBQ0NEOzExMDAgMTE2OCAxMUIwOworQUNDRTtBQ0NFOzExMDAgMTE2OCAxMUIxO0FDQ0U7MTEwMCAxMTY4IDExQjE7CitBQ0NGO0FDQ0Y7MTEwMCAxMTY4IDExQjI7QUNDRjsxMTAwIDExNjggMTFCMjsKK0FDRDA7QUNEMDsxMTAwIDExNjggMTFCMztBQ0QwOzExMDAgMTE2OCAxMUIzOworQUNEMTtBQ0QxOzExMDAgMTE2OCAxMUI0O0FDRDE7MTEwMCAxMTY4IDExQjQ7CitBQ0QyO0FDRDI7MTEwMCAxMTY4IDExQjU7QUNEMjsxMTAwIDExNjggMTFCNTsKK0FDRDM7QUNEMzsxMTAwIDExNjggMTFCNjtBQ0QzOzExMDAgMTE2OCAxMUI2OworQUNENDtBQ0Q0OzExMDAgMTE2OCAxMUI3O0FDRDQ7MTEwMCAxMTY4IDExQjc7CitBQ0Q1O0FDRDU7MTEwMCAxMTY4IDExQjg7QUNENTsxMTAwIDExNjggMTFCODsKK0FDRDY7QUNENjsxMTAwIDExNjggMTFCOTtBQ0Q2OzExMDAgMTE2OCAxMUI5OworQUNENztBQ0Q3OzExMDAgMTE2OCAxMUJBO0FDRDc7MTEwMCAxMTY4IDExQkE7CitBQ0Q4O0FDRDg7MTEwMCAxMTY4IDExQkI7QUNEODsxMTAwIDExNjggMTFCQjsKK0FDRDk7QUNEOTsxMTAwIDExNjggMTFCQztBQ0Q5OzExMDAgMTE2OCAxMUJDOworQUNEQTtBQ0RBOzExMDAgMTE2OCAxMUJEO0FDREE7MTEwMCAxMTY4IDExQkQ7CitBQ0RCO0FDREI7MTEwMCAxMTY4IDExQkU7QUNEQjsxMTAwIDExNjggMTFCRTsKK0FDREM7QUNEQzsxMTAwIDExNjggMTFCRjtBQ0RDOzExMDAgMTE2OCAxMUJGOworQUNERDtBQ0REOzExMDAgMTE2OCAxMUMwO0FDREQ7MTEwMCAxMTY4IDExQzA7CitBQ0RFO0FDREU7MTEwMCAxMTY4IDExQzE7QUNERTsxMTAwIDExNjggMTFDMTsKK0FDREY7QUNERjsxMTAwIDExNjggMTFDMjtBQ0RGOzExMDAgMTE2OCAxMUMyOworQUNFMDtBQ0UwOzExMDAgMTE2OTtBQ0UwOzExMDAgMTE2OTsKK0FDRTE7QUNFMTsxMTAwIDExNjkgMTFBODtBQ0UxOzExMDAgMTE2OSAxMUE4OworQUNFMjtBQ0UyOzExMDAgMTE2OSAxMUE5O0FDRTI7MTEwMCAxMTY5IDExQTk7CitBQ0UzO0FDRTM7MTEwMCAxMTY5IDExQUE7QUNFMzsxMTAwIDExNjkgMTFBQTsKK0FDRTQ7QUNFNDsxMTAwIDExNjkgMTFBQjtBQ0U0OzExMDAgMTE2OSAxMUFCOworQUNFNTtBQ0U1OzExMDAgMTE2OSAxMUFDO0FDRTU7MTEwMCAxMTY5IDExQUM7CitBQ0U2O0FDRTY7MTEwMCAxMTY5IDExQUQ7QUNFNjsxMTAwIDExNjkgMTFBRDsKK0FDRTc7QUNFNzsxMTAwIDExNjkgMTFBRTtBQ0U3OzExMDAgMTE2OSAxMUFFOworQUNFODtBQ0U4OzExMDAgMTE2OSAxMUFGO0FDRTg7MTEwMCAxMTY5IDExQUY7CitBQ0U5O0FDRTk7MTEwMCAxMTY5IDExQjA7QUNFOTsxMTAwIDExNjkgMTFCMDsKK0FDRUE7QUNFQTsxMTAwIDExNjkgMTFCMTtBQ0VBOzExMDAgMTE2OSAxMUIxOworQUNFQjtBQ0VCOzExMDAgMTE2OSAxMUIyO0FDRUI7MTEwMCAxMTY5IDExQjI7CitBQ0VDO0FDRUM7MTEwMCAxMTY5IDExQjM7QUNFQzsxMTAwIDExNjkgMTFCMzsKK0FDRUQ7QUNFRDsxMTAwIDExNjkgMTFCNDtBQ0VEOzExMDAgMTE2OSAxMUI0OworQUNFRTtBQ0VFOzExMDAgMTE2OSAxMUI1O0FDRUU7MTEwMCAxMTY5IDExQjU7CitBQ0VGO0FDRUY7MTEwMCAxMTY5IDExQjY7QUNFRjsxMTAwIDExNjkgMTFCNjsKK0FDRjA7QUNGMDsxMTAwIDExNjkgMTFCNztBQ0YwOzExMDAgMTE2OSAxMUI3OworQUNGMTtBQ0YxOzExMDAgMTE2OSAxMUI4O0FDRjE7MTEwMCAxMTY5IDExQjg7CitBQ0YyO0FDRjI7MTEwMCAxMTY5IDExQjk7QUNGMjsxMTAwIDExNjkgMTFCOTsKK0FDRjM7QUNGMzsxMTAwIDExNjkgMTFCQTtBQ0YzOzExMDAgMTE2OSAxMUJBOworQUNGNDtBQ0Y0OzExMDAgMTE2OSAxMUJCO0FDRjQ7MTEwMCAxMTY5IDExQkI7CitBQ0Y1O0FDRjU7MTEwMCAxMTY5IDExQkM7QUNGNTsxMTAwIDExNjkgMTFCQzsKK0FDRjY7QUNGNjsxMTAwIDExNjkgMTFCRDtBQ0Y2OzExMDAgMTE2OSAxMUJEOworQUNGNztBQ0Y3OzExMDAgMTE2OSAxMUJFO0FDRjc7MTEwMCAxMTY5IDExQkU7CitBQ0Y4O0FDRjg7MTEwMCAxMTY5IDExQkY7QUNGODsxMTAwIDExNjkgMTFCRjsKK0FDRjk7QUNGOTsxMTAwIDExNjkgMTFDMDtBQ0Y5OzExMDAgMTE2OSAxMUMwOworQUNGQTtBQ0ZBOzExMDAgMTE2OSAxMUMxO0FDRkE7MTEwMCAxMTY5IDExQzE7CitBQ0ZCO0FDRkI7MTEwMCAxMTY5IDExQzI7QUNGQjsxMTAwIDExNjkgMTFDMjsKK0FDRkM7QUNGQzsxMTAwIDExNkE7QUNGQzsxMTAwIDExNkE7CitBQ0ZEO0FDRkQ7MTEwMCAxMTZBIDExQTg7QUNGRDsxMTAwIDExNkEgMTFBODsKK0FDRkU7QUNGRTsxMTAwIDExNkEgMTFBOTtBQ0ZFOzExMDAgMTE2QSAxMUE5OworQUNGRjtBQ0ZGOzExMDAgMTE2QSAxMUFBO0FDRkY7MTEwMCAxMTZBIDExQUE7CitBRDAwO0FEMDA7MTEwMCAxMTZBIDExQUI7QUQwMDsxMTAwIDExNkEgMTFBQjsKK0FEMDE7QUQwMTsxMTAwIDExNkEgMTFBQztBRDAxOzExMDAgMTE2QSAxMUFDOworQUQwMjtBRDAyOzExMDAgMTE2QSAxMUFEO0FEMDI7MTEwMCAxMTZBIDExQUQ7CitBRDAzO0FEMDM7MTEwMCAxMTZBIDExQUU7QUQwMzsxMTAwIDExNkEgMTFBRTsKK0FEMDQ7QUQwNDsxMTAwIDExNkEgMTFBRjtBRDA0OzExMDAgMTE2QSAxMUFGOworQUQwNTtBRDA1OzExMDAgMTE2QSAxMUIwO0FEMDU7MTEwMCAxMTZBIDExQjA7CitBRDA2O0FEMDY7MTEwMCAxMTZBIDExQjE7QUQwNjsxMTAwIDExNkEgMTFCMTsKK0FEMDc7QUQwNzsxMTAwIDExNkEgMTFCMjtBRDA3OzExMDAgMTE2QSAxMUIyOworQUQwODtBRDA4OzExMDAgMTE2QSAxMUIzO0FEMDg7MTEwMCAxMTZBIDExQjM7CitBRDA5O0FEMDk7MTEwMCAxMTZBIDExQjQ7QUQwOTsxMTAwIDExNkEgMTFCNDsKK0FEMEE7QUQwQTsxMTAwIDExNkEgMTFCNTtBRDBBOzExMDAgMTE2QSAxMUI1OworQUQwQjtBRDBCOzExMDAgMTE2QSAxMUI2O0FEMEI7MTEwMCAxMTZBIDExQjY7CitBRDBDO0FEMEM7MTEwMCAxMTZBIDExQjc7QUQwQzsxMTAwIDExNkEgMTFCNzsKK0FEMEQ7QUQwRDsxMTAwIDExNkEgMTFCODtBRDBEOzExMDAgMTE2QSAxMUI4OworQUQwRTtBRDBFOzExMDAgMTE2QSAxMUI5O0FEMEU7MTEwMCAxMTZBIDExQjk7CitBRDBGO0FEMEY7MTEwMCAxMTZBIDExQkE7QUQwRjsxMTAwIDExNkEgMTFCQTsKK0FEMTA7QUQxMDsxMTAwIDExNkEgMTFCQjtBRDEwOzExMDAgMTE2QSAxMUJCOworQUQxMTtBRDExOzExMDAgMTE2QSAxMUJDO0FEMTE7MTEwMCAxMTZBIDExQkM7CitBRDEyO0FEMTI7MTEwMCAxMTZBIDExQkQ7QUQxMjsxMTAwIDExNkEgMTFCRDsKK0FEMTM7QUQxMzsxMTAwIDExNkEgMTFCRTtBRDEzOzExMDAgMTE2QSAxMUJFOworQUQxNDtBRDE0OzExMDAgMTE2QSAxMUJGO0FEMTQ7MTEwMCAxMTZBIDExQkY7CitBRDE1O0FEMTU7MTEwMCAxMTZBIDExQzA7QUQxNTsxMTAwIDExNkEgMTFDMDsKK0FEMTY7QUQxNjsxMTAwIDExNkEgMTFDMTtBRDE2OzExMDAgMTE2QSAxMUMxOworQUQxNztBRDE3OzExMDAgMTE2QSAxMUMyO0FEMTc7MTEwMCAxMTZBIDExQzI7CitBRDE4O0FEMTg7MTEwMCAxMTZCO0FEMTg7MTEwMCAxMTZCOworQUQxOTtBRDE5OzExMDAgMTE2QiAxMUE4O0FEMTk7MTEwMCAxMTZCIDExQTg7CitBRDFBO0FEMUE7MTEwMCAxMTZCIDExQTk7QUQxQTsxMTAwIDExNkIgMTFBOTsKK0FEMUI7QUQxQjsxMTAwIDExNkIgMTFBQTtBRDFCOzExMDAgMTE2QiAxMUFBOworQUQxQztBRDFDOzExMDAgMTE2QiAxMUFCO0FEMUM7MTEwMCAxMTZCIDExQUI7CitBRDFEO0FEMUQ7MTEwMCAxMTZCIDExQUM7QUQxRDsxMTAwIDExNkIgMTFBQzsKK0FEMUU7QUQxRTsxMTAwIDExNkIgMTFBRDtBRDFFOzExMDAgMTE2QiAxMUFEOworQUQxRjtBRDFGOzExMDAgMTE2QiAxMUFFO0FEMUY7MTEwMCAxMTZCIDExQUU7CitBRDIwO0FEMjA7MTEwMCAxMTZCIDExQUY7QUQyMDsxMTAwIDExNkIgMTFBRjsKK0FEMjE7QUQyMTsxMTAwIDExNkIgMTFCMDtBRDIxOzExMDAgMTE2QiAxMUIwOworQUQyMjtBRDIyOzExMDAgMTE2QiAxMUIxO0FEMjI7MTEwMCAxMTZCIDExQjE7CitBRDIzO0FEMjM7MTEwMCAxMTZCIDExQjI7QUQyMzsxMTAwIDExNkIgMTFCMjsKK0FEMjQ7QUQyNDsxMTAwIDExNkIgMTFCMztBRDI0OzExMDAgMTE2QiAxMUIzOworQUQyNTtBRDI1OzExMDAgMTE2QiAxMUI0O0FEMjU7MTEwMCAxMTZCIDExQjQ7CitBRDI2O0FEMjY7MTEwMCAxMTZCIDExQjU7QUQyNjsxMTAwIDExNkIgMTFCNTsKK0FEMjc7QUQyNzsxMTAwIDExNkIgMTFCNjtBRDI3OzExMDAgMTE2QiAxMUI2OworQUQyODtBRDI4OzExMDAgMTE2QiAxMUI3O0FEMjg7MTEwMCAxMTZCIDExQjc7CitBRDI5O0FEMjk7MTEwMCAxMTZCIDExQjg7QUQyOTsxMTAwIDExNkIgMTFCODsKK0FEMkE7QUQyQTsxMTAwIDExNkIgMTFCOTtBRDJBOzExMDAgMTE2QiAxMUI5OworQUQyQjtBRDJCOzExMDAgMTE2QiAxMUJBO0FEMkI7MTEwMCAxMTZCIDExQkE7CitBRDJDO0FEMkM7MTEwMCAxMTZCIDExQkI7QUQyQzsxMTAwIDExNkIgMTFCQjsKK0FEMkQ7QUQyRDsxMTAwIDExNkIgMTFCQztBRDJEOzExMDAgMTE2QiAxMUJDOworQUQyRTtBRDJFOzExMDAgMTE2QiAxMUJEO0FEMkU7MTEwMCAxMTZCIDExQkQ7CitBRDJGO0FEMkY7MTEwMCAxMTZCIDExQkU7QUQyRjsxMTAwIDExNkIgMTFCRTsKK0FEMzA7QUQzMDsxMTAwIDExNkIgMTFCRjtBRDMwOzExMDAgMTE2QiAxMUJGOworQUQzMTtBRDMxOzExMDAgMTE2QiAxMUMwO0FEMzE7MTEwMCAxMTZCIDExQzA7CitBRDMyO0FEMzI7MTEwMCAxMTZCIDExQzE7QUQzMjsxMTAwIDExNkIgMTFDMTsKK0FEMzM7QUQzMzsxMTAwIDExNkIgMTFDMjtBRDMzOzExMDAgMTE2QiAxMUMyOworQUQzNDtBRDM0OzExMDAgMTE2QztBRDM0OzExMDAgMTE2QzsKK0FEMzU7QUQzNTsxMTAwIDExNkMgMTFBODtBRDM1OzExMDAgMTE2QyAxMUE4OworQUQzNjtBRDM2OzExMDAgMTE2QyAxMUE5O0FEMzY7MTEwMCAxMTZDIDExQTk7CitBRDM3O0FEMzc7MTEwMCAxMTZDIDExQUE7QUQzNzsxMTAwIDExNkMgMTFBQTsKK0FEMzg7QUQzODsxMTAwIDExNkMgMTFBQjtBRDM4OzExMDAgMTE2QyAxMUFCOworQUQzOTtBRDM5OzExMDAgMTE2QyAxMUFDO0FEMzk7MTEwMCAxMTZDIDExQUM7CitBRDNBO0FEM0E7MTEwMCAxMTZDIDExQUQ7QUQzQTsxMTAwIDExNkMgMTFBRDsKK0FEM0I7QUQzQjsxMTAwIDExNkMgMTFBRTtBRDNCOzExMDAgMTE2QyAxMUFFOworQUQzQztBRDNDOzExMDAgMTE2QyAxMUFGO0FEM0M7MTEwMCAxMTZDIDExQUY7CitBRDNEO0FEM0Q7MTEwMCAxMTZDIDExQjA7QUQzRDsxMTAwIDExNkMgMTFCMDsKK0FEM0U7QUQzRTsxMTAwIDExNkMgMTFCMTtBRDNFOzExMDAgMTE2QyAxMUIxOworQUQzRjtBRDNGOzExMDAgMTE2QyAxMUIyO0FEM0Y7MTEwMCAxMTZDIDExQjI7CitBRDQwO0FENDA7MTEwMCAxMTZDIDExQjM7QUQ0MDsxMTAwIDExNkMgMTFCMzsKK0FENDE7QUQ0MTsxMTAwIDExNkMgMTFCNDtBRDQxOzExMDAgMTE2QyAxMUI0OworQUQ0MjtBRDQyOzExMDAgMTE2QyAxMUI1O0FENDI7MTEwMCAxMTZDIDExQjU7CitBRDQzO0FENDM7MTEwMCAxMTZDIDExQjY7QUQ0MzsxMTAwIDExNkMgMTFCNjsKK0FENDQ7QUQ0NDsxMTAwIDExNkMgMTFCNztBRDQ0OzExMDAgMTE2QyAxMUI3OworQUQ0NTtBRDQ1OzExMDAgMTE2QyAxMUI4O0FENDU7MTEwMCAxMTZDIDExQjg7CitBRDQ2O0FENDY7MTEwMCAxMTZDIDExQjk7QUQ0NjsxMTAwIDExNkMgMTFCOTsKK0FENDc7QUQ0NzsxMTAwIDExNkMgMTFCQTtBRDQ3OzExMDAgMTE2QyAxMUJBOworQUQ0ODtBRDQ4OzExMDAgMTE2QyAxMUJCO0FENDg7MTEwMCAxMTZDIDExQkI7CitBRDQ5O0FENDk7MTEwMCAxMTZDIDExQkM7QUQ0OTsxMTAwIDExNkMgMTFCQzsKK0FENEE7QUQ0QTsxMTAwIDExNkMgMTFCRDtBRDRBOzExMDAgMTE2QyAxMUJEOworQUQ0QjtBRDRCOzExMDAgMTE2QyAxMUJFO0FENEI7MTEwMCAxMTZDIDExQkU7CitBRDRDO0FENEM7MTEwMCAxMTZDIDExQkY7QUQ0QzsxMTAwIDExNkMgMTFCRjsKK0FENEQ7QUQ0RDsxMTAwIDExNkMgMTFDMDtBRDREOzExMDAgMTE2QyAxMUMwOworQUQ0RTtBRDRFOzExMDAgMTE2QyAxMUMxO0FENEU7MTEwMCAxMTZDIDExQzE7CitBRDRGO0FENEY7MTEwMCAxMTZDIDExQzI7QUQ0RjsxMTAwIDExNkMgMTFDMjsKK0FENTA7QUQ1MDsxMTAwIDExNkQ7QUQ1MDsxMTAwIDExNkQ7CitBRDUxO0FENTE7MTEwMCAxMTZEIDExQTg7QUQ1MTsxMTAwIDExNkQgMTFBODsKK0FENTI7QUQ1MjsxMTAwIDExNkQgMTFBOTtBRDUyOzExMDAgMTE2RCAxMUE5OworQUQ1MztBRDUzOzExMDAgMTE2RCAxMUFBO0FENTM7MTEwMCAxMTZEIDExQUE7CitBRDU0O0FENTQ7MTEwMCAxMTZEIDExQUI7QUQ1NDsxMTAwIDExNkQgMTFBQjsKK0FENTU7QUQ1NTsxMTAwIDExNkQgMTFBQztBRDU1OzExMDAgMTE2RCAxMUFDOworQUQ1NjtBRDU2OzExMDAgMTE2RCAxMUFEO0FENTY7MTEwMCAxMTZEIDExQUQ7CitBRDU3O0FENTc7MTEwMCAxMTZEIDExQUU7QUQ1NzsxMTAwIDExNkQgMTFBRTsKK0FENTg7QUQ1ODsxMTAwIDExNkQgMTFBRjtBRDU4OzExMDAgMTE2RCAxMUFGOworQUQ1OTtBRDU5OzExMDAgMTE2RCAxMUIwO0FENTk7MTEwMCAxMTZEIDExQjA7CitBRDVBO0FENUE7MTEwMCAxMTZEIDExQjE7QUQ1QTsxMTAwIDExNkQgMTFCMTsKK0FENUI7QUQ1QjsxMTAwIDExNkQgMTFCMjtBRDVCOzExMDAgMTE2RCAxMUIyOworQUQ1QztBRDVDOzExMDAgMTE2RCAxMUIzO0FENUM7MTEwMCAxMTZEIDExQjM7CitBRDVEO0FENUQ7MTEwMCAxMTZEIDExQjQ7QUQ1RDsxMTAwIDExNkQgMTFCNDsKK0FENUU7QUQ1RTsxMTAwIDExNkQgMTFCNTtBRDVFOzExMDAgMTE2RCAxMUI1OworQUQ1RjtBRDVGOzExMDAgMTE2RCAxMUI2O0FENUY7MTEwMCAxMTZEIDExQjY7CitBRDYwO0FENjA7MTEwMCAxMTZEIDExQjc7QUQ2MDsxMTAwIDExNkQgMTFCNzsKK0FENjE7QUQ2MTsxMTAwIDExNkQgMTFCODtBRDYxOzExMDAgMTE2RCAxMUI4OworQUQ2MjtBRDYyOzExMDAgMTE2RCAxMUI5O0FENjI7MTEwMCAxMTZEIDExQjk7CitBRDYzO0FENjM7MTEwMCAxMTZEIDExQkE7QUQ2MzsxMTAwIDExNkQgMTFCQTsKK0FENjQ7QUQ2NDsxMTAwIDExNkQgMTFCQjtBRDY0OzExMDAgMTE2RCAxMUJCOworQUQ2NTtBRDY1OzExMDAgMTE2RCAxMUJDO0FENjU7MTEwMCAxMTZEIDExQkM7CitBRDY2O0FENjY7MTEwMCAxMTZEIDExQkQ7QUQ2NjsxMTAwIDExNkQgMTFCRDsKK0FENjc7QUQ2NzsxMTAwIDExNkQgMTFCRTtBRDY3OzExMDAgMTE2RCAxMUJFOworQUQ2ODtBRDY4OzExMDAgMTE2RCAxMUJGO0FENjg7MTEwMCAxMTZEIDExQkY7CitBRDY5O0FENjk7MTEwMCAxMTZEIDExQzA7QUQ2OTsxMTAwIDExNkQgMTFDMDsKK0FENkE7QUQ2QTsxMTAwIDExNkQgMTFDMTtBRDZBOzExMDAgMTE2RCAxMUMxOworQUQ2QjtBRDZCOzExMDAgMTE2RCAxMUMyO0FENkI7MTEwMCAxMTZEIDExQzI7CitBRDZDO0FENkM7MTEwMCAxMTZFO0FENkM7MTEwMCAxMTZFOworQUQ2RDtBRDZEOzExMDAgMTE2RSAxMUE4O0FENkQ7MTEwMCAxMTZFIDExQTg7CitBRDZFO0FENkU7MTEwMCAxMTZFIDExQTk7QUQ2RTsxMTAwIDExNkUgMTFBOTsKK0FENkY7QUQ2RjsxMTAwIDExNkUgMTFBQTtBRDZGOzExMDAgMTE2RSAxMUFBOworQUQ3MDtBRDcwOzExMDAgMTE2RSAxMUFCO0FENzA7MTEwMCAxMTZFIDExQUI7CitBRDcxO0FENzE7MTEwMCAxMTZFIDExQUM7QUQ3MTsxMTAwIDExNkUgMTFBQzsKK0FENzI7QUQ3MjsxMTAwIDExNkUgMTFBRDtBRDcyOzExMDAgMTE2RSAxMUFEOworQUQ3MztBRDczOzExMDAgMTE2RSAxMUFFO0FENzM7MTEwMCAxMTZFIDExQUU7CitBRDc0O0FENzQ7MTEwMCAxMTZFIDExQUY7QUQ3NDsxMTAwIDExNkUgMTFBRjsKK0FENzU7QUQ3NTsxMTAwIDExNkUgMTFCMDtBRDc1OzExMDAgMTE2RSAxMUIwOworQUQ3NjtBRDc2OzExMDAgMTE2RSAxMUIxO0FENzY7MTEwMCAxMTZFIDExQjE7CitBRDc3O0FENzc7MTEwMCAxMTZFIDExQjI7QUQ3NzsxMTAwIDExNkUgMTFCMjsKK0FENzg7QUQ3ODsxMTAwIDExNkUgMTFCMztBRDc4OzExMDAgMTE2RSAxMUIzOworQUQ3OTtBRDc5OzExMDAgMTE2RSAxMUI0O0FENzk7MTEwMCAxMTZFIDExQjQ7CitBRDdBO0FEN0E7MTEwMCAxMTZFIDExQjU7QUQ3QTsxMTAwIDExNkUgMTFCNTsKK0FEN0I7QUQ3QjsxMTAwIDExNkUgMTFCNjtBRDdCOzExMDAgMTE2RSAxMUI2OworQUQ3QztBRDdDOzExMDAgMTE2RSAxMUI3O0FEN0M7MTEwMCAxMTZFIDExQjc7CitBRDdEO0FEN0Q7MTEwMCAxMTZFIDExQjg7QUQ3RDsxMTAwIDExNkUgMTFCODsKK0FEN0U7QUQ3RTsxMTAwIDExNkUgMTFCOTtBRDdFOzExMDAgMTE2RSAxMUI5OworQUQ3RjtBRDdGOzExMDAgMTE2RSAxMUJBO0FEN0Y7MTEwMCAxMTZFIDExQkE7CitBRDgwO0FEODA7MTEwMCAxMTZFIDExQkI7QUQ4MDsxMTAwIDExNkUgMTFCQjsKK0FEODE7QUQ4MTsxMTAwIDExNkUgMTFCQztBRDgxOzExMDAgMTE2RSAxMUJDOworQUQ4MjtBRDgyOzExMDAgMTE2RSAxMUJEO0FEODI7MTEwMCAxMTZFIDExQkQ7CitBRDgzO0FEODM7MTEwMCAxMTZFIDExQkU7QUQ4MzsxMTAwIDExNkUgMTFCRTsKK0FEODQ7QUQ4NDsxMTAwIDExNkUgMTFCRjtBRDg0OzExMDAgMTE2RSAxMUJGOworQUQ4NTtBRDg1OzExMDAgMTE2RSAxMUMwO0FEODU7MTEwMCAxMTZFIDExQzA7CitBRDg2O0FEODY7MTEwMCAxMTZFIDExQzE7QUQ4NjsxMTAwIDExNkUgMTFDMTsKK0FEODc7QUQ4NzsxMTAwIDExNkUgMTFDMjtBRDg3OzExMDAgMTE2RSAxMUMyOworQUQ4ODtBRDg4OzExMDAgMTE2RjtBRDg4OzExMDAgMTE2RjsKK0FEODk7QUQ4OTsxMTAwIDExNkYgMTFBODtBRDg5OzExMDAgMTE2RiAxMUE4OworQUQ4QTtBRDhBOzExMDAgMTE2RiAxMUE5O0FEOEE7MTEwMCAxMTZGIDExQTk7CitBRDhCO0FEOEI7MTEwMCAxMTZGIDExQUE7QUQ4QjsxMTAwIDExNkYgMTFBQTsKK0FEOEM7QUQ4QzsxMTAwIDExNkYgMTFBQjtBRDhDOzExMDAgMTE2RiAxMUFCOworQUQ4RDtBRDhEOzExMDAgMTE2RiAxMUFDO0FEOEQ7MTEwMCAxMTZGIDExQUM7CitBRDhFO0FEOEU7MTEwMCAxMTZGIDExQUQ7QUQ4RTsxMTAwIDExNkYgMTFBRDsKK0FEOEY7QUQ4RjsxMTAwIDExNkYgMTFBRTtBRDhGOzExMDAgMTE2RiAxMUFFOworQUQ5MDtBRDkwOzExMDAgMTE2RiAxMUFGO0FEOTA7MTEwMCAxMTZGIDExQUY7CitBRDkxO0FEOTE7MTEwMCAxMTZGIDExQjA7QUQ5MTsxMTAwIDExNkYgMTFCMDsKK0FEOTI7QUQ5MjsxMTAwIDExNkYgMTFCMTtBRDkyOzExMDAgMTE2RiAxMUIxOworQUQ5MztBRDkzOzExMDAgMTE2RiAxMUIyO0FEOTM7MTEwMCAxMTZGIDExQjI7CitBRDk0O0FEOTQ7MTEwMCAxMTZGIDExQjM7QUQ5NDsxMTAwIDExNkYgMTFCMzsKK0FEOTU7QUQ5NTsxMTAwIDExNkYgMTFCNDtBRDk1OzExMDAgMTE2RiAxMUI0OworQUQ5NjtBRDk2OzExMDAgMTE2RiAxMUI1O0FEOTY7MTEwMCAxMTZGIDExQjU7CitBRDk3O0FEOTc7MTEwMCAxMTZGIDExQjY7QUQ5NzsxMTAwIDExNkYgMTFCNjsKK0FEOTg7QUQ5ODsxMTAwIDExNkYgMTFCNztBRDk4OzExMDAgMTE2RiAxMUI3OworQUQ5OTtBRDk5OzExMDAgMTE2RiAxMUI4O0FEOTk7MTEwMCAxMTZGIDExQjg7CitBRDlBO0FEOUE7MTEwMCAxMTZGIDExQjk7QUQ5QTsxMTAwIDExNkYgMTFCOTsKK0FEOUI7QUQ5QjsxMTAwIDExNkYgMTFCQTtBRDlCOzExMDAgMTE2RiAxMUJBOworQUQ5QztBRDlDOzExMDAgMTE2RiAxMUJCO0FEOUM7MTEwMCAxMTZGIDExQkI7CitBRDlEO0FEOUQ7MTEwMCAxMTZGIDExQkM7QUQ5RDsxMTAwIDExNkYgMTFCQzsKK0FEOUU7QUQ5RTsxMTAwIDExNkYgMTFCRDtBRDlFOzExMDAgMTE2RiAxMUJEOworQUQ5RjtBRDlGOzExMDAgMTE2RiAxMUJFO0FEOUY7MTEwMCAxMTZGIDExQkU7CitBREEwO0FEQTA7MTEwMCAxMTZGIDExQkY7QURBMDsxMTAwIDExNkYgMTFCRjsKK0FEQTE7QURBMTsxMTAwIDExNkYgMTFDMDtBREExOzExMDAgMTE2RiAxMUMwOworQURBMjtBREEyOzExMDAgMTE2RiAxMUMxO0FEQTI7MTEwMCAxMTZGIDExQzE7CitBREEzO0FEQTM7MTEwMCAxMTZGIDExQzI7QURBMzsxMTAwIDExNkYgMTFDMjsKK0FEQTQ7QURBNDsxMTAwIDExNzA7QURBNDsxMTAwIDExNzA7CitBREE1O0FEQTU7MTEwMCAxMTcwIDExQTg7QURBNTsxMTAwIDExNzAgMTFBODsKK0FEQTY7QURBNjsxMTAwIDExNzAgMTFBOTtBREE2OzExMDAgMTE3MCAxMUE5OworQURBNztBREE3OzExMDAgMTE3MCAxMUFBO0FEQTc7MTEwMCAxMTcwIDExQUE7CitBREE4O0FEQTg7MTEwMCAxMTcwIDExQUI7QURBODsxMTAwIDExNzAgMTFBQjsKK0FEQTk7QURBOTsxMTAwIDExNzAgMTFBQztBREE5OzExMDAgMTE3MCAxMUFDOworQURBQTtBREFBOzExMDAgMTE3MCAxMUFEO0FEQUE7MTEwMCAxMTcwIDExQUQ7CitBREFCO0FEQUI7MTEwMCAxMTcwIDExQUU7QURBQjsxMTAwIDExNzAgMTFBRTsKK0FEQUM7QURBQzsxMTAwIDExNzAgMTFBRjtBREFDOzExMDAgMTE3MCAxMUFGOworQURBRDtBREFEOzExMDAgMTE3MCAxMUIwO0FEQUQ7MTEwMCAxMTcwIDExQjA7CitBREFFO0FEQUU7MTEwMCAxMTcwIDExQjE7QURBRTsxMTAwIDExNzAgMTFCMTsKK0FEQUY7QURBRjsxMTAwIDExNzAgMTFCMjtBREFGOzExMDAgMTE3MCAxMUIyOworQURCMDtBREIwOzExMDAgMTE3MCAxMUIzO0FEQjA7MTEwMCAxMTcwIDExQjM7CitBREIxO0FEQjE7MTEwMCAxMTcwIDExQjQ7QURCMTsxMTAwIDExNzAgMTFCNDsKK0FEQjI7QURCMjsxMTAwIDExNzAgMTFCNTtBREIyOzExMDAgMTE3MCAxMUI1OworQURCMztBREIzOzExMDAgMTE3MCAxMUI2O0FEQjM7MTEwMCAxMTcwIDExQjY7CitBREI0O0FEQjQ7MTEwMCAxMTcwIDExQjc7QURCNDsxMTAwIDExNzAgMTFCNzsKK0FEQjU7QURCNTsxMTAwIDExNzAgMTFCODtBREI1OzExMDAgMTE3MCAxMUI4OworQURCNjtBREI2OzExMDAgMTE3MCAxMUI5O0FEQjY7MTEwMCAxMTcwIDExQjk7CitBREI3O0FEQjc7MTEwMCAxMTcwIDExQkE7QURCNzsxMTAwIDExNzAgMTFCQTsKK0FEQjg7QURCODsxMTAwIDExNzAgMTFCQjtBREI4OzExMDAgMTE3MCAxMUJCOworQURCOTtBREI5OzExMDAgMTE3MCAxMUJDO0FEQjk7MTEwMCAxMTcwIDExQkM7CitBREJBO0FEQkE7MTEwMCAxMTcwIDExQkQ7QURCQTsxMTAwIDExNzAgMTFCRDsKK0FEQkI7QURCQjsxMTAwIDExNzAgMTFCRTtBREJCOzExMDAgMTE3MCAxMUJFOworQURCQztBREJDOzExMDAgMTE3MCAxMUJGO0FEQkM7MTEwMCAxMTcwIDExQkY7CitBREJEO0FEQkQ7MTEwMCAxMTcwIDExQzA7QURCRDsxMTAwIDExNzAgMTFDMDsKK0FEQkU7QURCRTsxMTAwIDExNzAgMTFDMTtBREJFOzExMDAgMTE3MCAxMUMxOworQURCRjtBREJGOzExMDAgMTE3MCAxMUMyO0FEQkY7MTEwMCAxMTcwIDExQzI7CitBREMwO0FEQzA7MTEwMCAxMTcxO0FEQzA7MTEwMCAxMTcxOworQURDMTtBREMxOzExMDAgMTE3MSAxMUE4O0FEQzE7MTEwMCAxMTcxIDExQTg7CitBREMyO0FEQzI7MTEwMCAxMTcxIDExQTk7QURDMjsxMTAwIDExNzEgMTFBOTsKK0FEQzM7QURDMzsxMTAwIDExNzEgMTFBQTtBREMzOzExMDAgMTE3MSAxMUFBOworQURDNDtBREM0OzExMDAgMTE3MSAxMUFCO0FEQzQ7MTEwMCAxMTcxIDExQUI7CitBREM1O0FEQzU7MTEwMCAxMTcxIDExQUM7QURDNTsxMTAwIDExNzEgMTFBQzsKK0FEQzY7QURDNjsxMTAwIDExNzEgMTFBRDtBREM2OzExMDAgMTE3MSAxMUFEOworQURDNztBREM3OzExMDAgMTE3MSAxMUFFO0FEQzc7MTEwMCAxMTcxIDExQUU7CitBREM4O0FEQzg7MTEwMCAxMTcxIDExQUY7QURDODsxMTAwIDExNzEgMTFBRjsKK0FEQzk7QURDOTsxMTAwIDExNzEgMTFCMDtBREM5OzExMDAgMTE3MSAxMUIwOworQURDQTtBRENBOzExMDAgMTE3MSAxMUIxO0FEQ0E7MTEwMCAxMTcxIDExQjE7CitBRENCO0FEQ0I7MTEwMCAxMTcxIDExQjI7QURDQjsxMTAwIDExNzEgMTFCMjsKK0FEQ0M7QURDQzsxMTAwIDExNzEgMTFCMztBRENDOzExMDAgMTE3MSAxMUIzOworQURDRDtBRENEOzExMDAgMTE3MSAxMUI0O0FEQ0Q7MTEwMCAxMTcxIDExQjQ7CitBRENFO0FEQ0U7MTEwMCAxMTcxIDExQjU7QURDRTsxMTAwIDExNzEgMTFCNTsKK0FEQ0Y7QURDRjsxMTAwIDExNzEgMTFCNjtBRENGOzExMDAgMTE3MSAxMUI2OworQUREMDtBREQwOzExMDAgMTE3MSAxMUI3O0FERDA7MTEwMCAxMTcxIDExQjc7CitBREQxO0FERDE7MTEwMCAxMTcxIDExQjg7QUREMTsxMTAwIDExNzEgMTFCODsKK0FERDI7QUREMjsxMTAwIDExNzEgMTFCOTtBREQyOzExMDAgMTE3MSAxMUI5OworQUREMztBREQzOzExMDAgMTE3MSAxMUJBO0FERDM7MTEwMCAxMTcxIDExQkE7CitBREQ0O0FERDQ7MTEwMCAxMTcxIDExQkI7QURENDsxMTAwIDExNzEgMTFCQjsKK0FERDU7QURENTsxMTAwIDExNzEgMTFCQztBREQ1OzExMDAgMTE3MSAxMUJDOworQURENjtBREQ2OzExMDAgMTE3MSAxMUJEO0FERDY7MTEwMCAxMTcxIDExQkQ7CitBREQ3O0FERDc7MTEwMCAxMTcxIDExQkU7QURENzsxMTAwIDExNzEgMTFCRTsKK0FERDg7QUREODsxMTAwIDExNzEgMTFCRjtBREQ4OzExMDAgMTE3MSAxMUJGOworQUREOTtBREQ5OzExMDAgMTE3MSAxMUMwO0FERDk7MTEwMCAxMTcxIDExQzA7CitBRERBO0FEREE7MTEwMCAxMTcxIDExQzE7QUREQTsxMTAwIDExNzEgMTFDMTsKK0FEREI7QUREQjsxMTAwIDExNzEgMTFDMjtBRERCOzExMDAgMTE3MSAxMUMyOworQUREQztBRERDOzExMDAgMTE3MjtBRERDOzExMDAgMTE3MjsKK0FEREQ7QURERDsxMTAwIDExNzIgMTFBODtBREREOzExMDAgMTE3MiAxMUE4OworQURERTtBRERFOzExMDAgMTE3MiAxMUE5O0FEREU7MTEwMCAxMTcyIDExQTk7CitBRERGO0FEREY7MTEwMCAxMTcyIDExQUE7QURERjsxMTAwIDExNzIgMTFBQTsKK0FERTA7QURFMDsxMTAwIDExNzIgMTFBQjtBREUwOzExMDAgMTE3MiAxMUFCOworQURFMTtBREUxOzExMDAgMTE3MiAxMUFDO0FERTE7MTEwMCAxMTcyIDExQUM7CitBREUyO0FERTI7MTEwMCAxMTcyIDExQUQ7QURFMjsxMTAwIDExNzIgMTFBRDsKK0FERTM7QURFMzsxMTAwIDExNzIgMTFBRTtBREUzOzExMDAgMTE3MiAxMUFFOworQURFNDtBREU0OzExMDAgMTE3MiAxMUFGO0FERTQ7MTEwMCAxMTcyIDExQUY7CitBREU1O0FERTU7MTEwMCAxMTcyIDExQjA7QURFNTsxMTAwIDExNzIgMTFCMDsKK0FERTY7QURFNjsxMTAwIDExNzIgMTFCMTtBREU2OzExMDAgMTE3MiAxMUIxOworQURFNztBREU3OzExMDAgMTE3MiAxMUIyO0FERTc7MTEwMCAxMTcyIDExQjI7CitBREU4O0FERTg7MTEwMCAxMTcyIDExQjM7QURFODsxMTAwIDExNzIgMTFCMzsKK0FERTk7QURFOTsxMTAwIDExNzIgMTFCNDtBREU5OzExMDAgMTE3MiAxMUI0OworQURFQTtBREVBOzExMDAgMTE3MiAxMUI1O0FERUE7MTEwMCAxMTcyIDExQjU7CitBREVCO0FERUI7MTEwMCAxMTcyIDExQjY7QURFQjsxMTAwIDExNzIgMTFCNjsKK0FERUM7QURFQzsxMTAwIDExNzIgMTFCNztBREVDOzExMDAgMTE3MiAxMUI3OworQURFRDtBREVEOzExMDAgMTE3MiAxMUI4O0FERUQ7MTEwMCAxMTcyIDExQjg7CitBREVFO0FERUU7MTEwMCAxMTcyIDExQjk7QURFRTsxMTAwIDExNzIgMTFCOTsKK0FERUY7QURFRjsxMTAwIDExNzIgMTFCQTtBREVGOzExMDAgMTE3MiAxMUJBOworQURGMDtBREYwOzExMDAgMTE3MiAxMUJCO0FERjA7MTEwMCAxMTcyIDExQkI7CitBREYxO0FERjE7MTEwMCAxMTcyIDExQkM7QURGMTsxMTAwIDExNzIgMTFCQzsKK0FERjI7QURGMjsxMTAwIDExNzIgMTFCRDtBREYyOzExMDAgMTE3MiAxMUJEOworQURGMztBREYzOzExMDAgMTE3MiAxMUJFO0FERjM7MTEwMCAxMTcyIDExQkU7CitBREY0O0FERjQ7MTEwMCAxMTcyIDExQkY7QURGNDsxMTAwIDExNzIgMTFCRjsKK0FERjU7QURGNTsxMTAwIDExNzIgMTFDMDtBREY1OzExMDAgMTE3MiAxMUMwOworQURGNjtBREY2OzExMDAgMTE3MiAxMUMxO0FERjY7MTEwMCAxMTcyIDExQzE7CitBREY3O0FERjc7MTEwMCAxMTcyIDExQzI7QURGNzsxMTAwIDExNzIgMTFDMjsKK0FERjg7QURGODsxMTAwIDExNzM7QURGODsxMTAwIDExNzM7CitBREY5O0FERjk7MTEwMCAxMTczIDExQTg7QURGOTsxMTAwIDExNzMgMTFBODsKK0FERkE7QURGQTsxMTAwIDExNzMgMTFBOTtBREZBOzExMDAgMTE3MyAxMUE5OworQURGQjtBREZCOzExMDAgMTE3MyAxMUFBO0FERkI7MTEwMCAxMTczIDExQUE7CitBREZDO0FERkM7MTEwMCAxMTczIDExQUI7QURGQzsxMTAwIDExNzMgMTFBQjsKK0FERkQ7QURGRDsxMTAwIDExNzMgMTFBQztBREZEOzExMDAgMTE3MyAxMUFDOworQURGRTtBREZFOzExMDAgMTE3MyAxMUFEO0FERkU7MTEwMCAxMTczIDExQUQ7CitBREZGO0FERkY7MTEwMCAxMTczIDExQUU7QURGRjsxMTAwIDExNzMgMTFBRTsKK0FFMDA7QUUwMDsxMTAwIDExNzMgMTFBRjtBRTAwOzExMDAgMTE3MyAxMUFGOworQUUwMTtBRTAxOzExMDAgMTE3MyAxMUIwO0FFMDE7MTEwMCAxMTczIDExQjA7CitBRTAyO0FFMDI7MTEwMCAxMTczIDExQjE7QUUwMjsxMTAwIDExNzMgMTFCMTsKK0FFMDM7QUUwMzsxMTAwIDExNzMgMTFCMjtBRTAzOzExMDAgMTE3MyAxMUIyOworQUUwNDtBRTA0OzExMDAgMTE3MyAxMUIzO0FFMDQ7MTEwMCAxMTczIDExQjM7CitBRTA1O0FFMDU7MTEwMCAxMTczIDExQjQ7QUUwNTsxMTAwIDExNzMgMTFCNDsKK0FFMDY7QUUwNjsxMTAwIDExNzMgMTFCNTtBRTA2OzExMDAgMTE3MyAxMUI1OworQUUwNztBRTA3OzExMDAgMTE3MyAxMUI2O0FFMDc7MTEwMCAxMTczIDExQjY7CitBRTA4O0FFMDg7MTEwMCAxMTczIDExQjc7QUUwODsxMTAwIDExNzMgMTFCNzsKK0FFMDk7QUUwOTsxMTAwIDExNzMgMTFCODtBRTA5OzExMDAgMTE3MyAxMUI4OworQUUwQTtBRTBBOzExMDAgMTE3MyAxMUI5O0FFMEE7MTEwMCAxMTczIDExQjk7CitBRTBCO0FFMEI7MTEwMCAxMTczIDExQkE7QUUwQjsxMTAwIDExNzMgMTFCQTsKK0FFMEM7QUUwQzsxMTAwIDExNzMgMTFCQjtBRTBDOzExMDAgMTE3MyAxMUJCOworQUUwRDtBRTBEOzExMDAgMTE3MyAxMUJDO0FFMEQ7MTEwMCAxMTczIDExQkM7CitBRTBFO0FFMEU7MTEwMCAxMTczIDExQkQ7QUUwRTsxMTAwIDExNzMgMTFCRDsKK0FFMEY7QUUwRjsxMTAwIDExNzMgMTFCRTtBRTBGOzExMDAgMTE3MyAxMUJFOworQUUxMDtBRTEwOzExMDAgMTE3MyAxMUJGO0FFMTA7MTEwMCAxMTczIDExQkY7CitBRTExO0FFMTE7MTEwMCAxMTczIDExQzA7QUUxMTsxMTAwIDExNzMgMTFDMDsKK0FFMTI7QUUxMjsxMTAwIDExNzMgMTFDMTtBRTEyOzExMDAgMTE3MyAxMUMxOworQUUxMztBRTEzOzExMDAgMTE3MyAxMUMyO0FFMTM7MTEwMCAxMTczIDExQzI7CitBRTE0O0FFMTQ7MTEwMCAxMTc0O0FFMTQ7MTEwMCAxMTc0OworQUUxNTtBRTE1OzExMDAgMTE3NCAxMUE4O0FFMTU7MTEwMCAxMTc0IDExQTg7CitBRTE2O0FFMTY7MTEwMCAxMTc0IDExQTk7QUUxNjsxMTAwIDExNzQgMTFBOTsKK0FFMTc7QUUxNzsxMTAwIDExNzQgMTFBQTtBRTE3OzExMDAgMTE3NCAxMUFBOworQUUxODtBRTE4OzExMDAgMTE3NCAxMUFCO0FFMTg7MTEwMCAxMTc0IDExQUI7CitBRTE5O0FFMTk7MTEwMCAxMTc0IDExQUM7QUUxOTsxMTAwIDExNzQgMTFBQzsKK0FFMUE7QUUxQTsxMTAwIDExNzQgMTFBRDtBRTFBOzExMDAgMTE3NCAxMUFEOworQUUxQjtBRTFCOzExMDAgMTE3NCAxMUFFO0FFMUI7MTEwMCAxMTc0IDExQUU7CitBRTFDO0FFMUM7MTEwMCAxMTc0IDExQUY7QUUxQzsxMTAwIDExNzQgMTFBRjsKK0FFMUQ7QUUxRDsxMTAwIDExNzQgMTFCMDtBRTFEOzExMDAgMTE3NCAxMUIwOworQUUxRTtBRTFFOzExMDAgMTE3NCAxMUIxO0FFMUU7MTEwMCAxMTc0IDExQjE7CitBRTFGO0FFMUY7MTEwMCAxMTc0IDExQjI7QUUxRjsxMTAwIDExNzQgMTFCMjsKK0FFMjA7QUUyMDsxMTAwIDExNzQgMTFCMztBRTIwOzExMDAgMTE3NCAxMUIzOworQUUyMTtBRTIxOzExMDAgMTE3NCAxMUI0O0FFMjE7MTEwMCAxMTc0IDExQjQ7CitBRTIyO0FFMjI7MTEwMCAxMTc0IDExQjU7QUUyMjsxMTAwIDExNzQgMTFCNTsKK0FFMjM7QUUyMzsxMTAwIDExNzQgMTFCNjtBRTIzOzExMDAgMTE3NCAxMUI2OworQUUyNDtBRTI0OzExMDAgMTE3NCAxMUI3O0FFMjQ7MTEwMCAxMTc0IDExQjc7CitBRTI1O0FFMjU7MTEwMCAxMTc0IDExQjg7QUUyNTsxMTAwIDExNzQgMTFCODsKK0FFMjY7QUUyNjsxMTAwIDExNzQgMTFCOTtBRTI2OzExMDAgMTE3NCAxMUI5OworQUUyNztBRTI3OzExMDAgMTE3NCAxMUJBO0FFMjc7MTEwMCAxMTc0IDExQkE7CitBRTI4O0FFMjg7MTEwMCAxMTc0IDExQkI7QUUyODsxMTAwIDExNzQgMTFCQjsKK0FFMjk7QUUyOTsxMTAwIDExNzQgMTFCQztBRTI5OzExMDAgMTE3NCAxMUJDOworQUUyQTtBRTJBOzExMDAgMTE3NCAxMUJEO0FFMkE7MTEwMCAxMTc0IDExQkQ7CitBRTJCO0FFMkI7MTEwMCAxMTc0IDExQkU7QUUyQjsxMTAwIDExNzQgMTFCRTsKK0FFMkM7QUUyQzsxMTAwIDExNzQgMTFCRjtBRTJDOzExMDAgMTE3NCAxMUJGOworQUUyRDtBRTJEOzExMDAgMTE3NCAxMUMwO0FFMkQ7MTEwMCAxMTc0IDExQzA7CitBRTJFO0FFMkU7MTEwMCAxMTc0IDExQzE7QUUyRTsxMTAwIDExNzQgMTFDMTsKK0FFMkY7QUUyRjsxMTAwIDExNzQgMTFDMjtBRTJGOzExMDAgMTE3NCAxMUMyOworQUUzMDtBRTMwOzExMDAgMTE3NTtBRTMwOzExMDAgMTE3NTsKK0FFMzE7QUUzMTsxMTAwIDExNzUgMTFBODtBRTMxOzExMDAgMTE3NSAxMUE4OworQUUzMjtBRTMyOzExMDAgMTE3NSAxMUE5O0FFMzI7MTEwMCAxMTc1IDExQTk7CitBRTMzO0FFMzM7MTEwMCAxMTc1IDExQUE7QUUzMzsxMTAwIDExNzUgMTFBQTsKK0FFMzQ7QUUzNDsxMTAwIDExNzUgMTFBQjtBRTM0OzExMDAgMTE3NSAxMUFCOworQUUzNTtBRTM1OzExMDAgMTE3NSAxMUFDO0FFMzU7MTEwMCAxMTc1IDExQUM7CitBRTM2O0FFMzY7MTEwMCAxMTc1IDExQUQ7QUUzNjsxMTAwIDExNzUgMTFBRDsKK0FFMzc7QUUzNzsxMTAwIDExNzUgMTFBRTtBRTM3OzExMDAgMTE3NSAxMUFFOworQUUzODtBRTM4OzExMDAgMTE3NSAxMUFGO0FFMzg7MTEwMCAxMTc1IDExQUY7CitBRTM5O0FFMzk7MTEwMCAxMTc1IDExQjA7QUUzOTsxMTAwIDExNzUgMTFCMDsKK0FFM0E7QUUzQTsxMTAwIDExNzUgMTFCMTtBRTNBOzExMDAgMTE3NSAxMUIxOworQUUzQjtBRTNCOzExMDAgMTE3NSAxMUIyO0FFM0I7MTEwMCAxMTc1IDExQjI7CitBRTNDO0FFM0M7MTEwMCAxMTc1IDExQjM7QUUzQzsxMTAwIDExNzUgMTFCMzsKK0FFM0Q7QUUzRDsxMTAwIDExNzUgMTFCNDtBRTNEOzExMDAgMTE3NSAxMUI0OworQUUzRTtBRTNFOzExMDAgMTE3NSAxMUI1O0FFM0U7MTEwMCAxMTc1IDExQjU7CitBRTNGO0FFM0Y7MTEwMCAxMTc1IDExQjY7QUUzRjsxMTAwIDExNzUgMTFCNjsKK0FFNDA7QUU0MDsxMTAwIDExNzUgMTFCNztBRTQwOzExMDAgMTE3NSAxMUI3OworQUU0MTtBRTQxOzExMDAgMTE3NSAxMUI4O0FFNDE7MTEwMCAxMTc1IDExQjg7CitBRTQyO0FFNDI7MTEwMCAxMTc1IDExQjk7QUU0MjsxMTAwIDExNzUgMTFCOTsKK0FFNDM7QUU0MzsxMTAwIDExNzUgMTFCQTtBRTQzOzExMDAgMTE3NSAxMUJBOworQUU0NDtBRTQ0OzExMDAgMTE3NSAxMUJCO0FFNDQ7MTEwMCAxMTc1IDExQkI7CitBRTQ1O0FFNDU7MTEwMCAxMTc1IDExQkM7QUU0NTsxMTAwIDExNzUgMTFCQzsKK0FFNDY7QUU0NjsxMTAwIDExNzUgMTFCRDtBRTQ2OzExMDAgMTE3NSAxMUJEOworQUU0NztBRTQ3OzExMDAgMTE3NSAxMUJFO0FFNDc7MTEwMCAxMTc1IDExQkU7CitBRTQ4O0FFNDg7MTEwMCAxMTc1IDExQkY7QUU0ODsxMTAwIDExNzUgMTFCRjsKK0FFNDk7QUU0OTsxMTAwIDExNzUgMTFDMDtBRTQ5OzExMDAgMTE3NSAxMUMwOworQUU0QTtBRTRBOzExMDAgMTE3NSAxMUMxO0FFNEE7MTEwMCAxMTc1IDExQzE7CitBRTRCO0FFNEI7MTEwMCAxMTc1IDExQzI7QUU0QjsxMTAwIDExNzUgMTFDMjsKK0FFNEM7QUU0QzsxMTAxIDExNjE7QUU0QzsxMTAxIDExNjE7CitBRTREO0FFNEQ7MTEwMSAxMTYxIDExQTg7QUU0RDsxMTAxIDExNjEgMTFBODsKK0FFNEU7QUU0RTsxMTAxIDExNjEgMTFBOTtBRTRFOzExMDEgMTE2MSAxMUE5OworQUU0RjtBRTRGOzExMDEgMTE2MSAxMUFBO0FFNEY7MTEwMSAxMTYxIDExQUE7CitBRTUwO0FFNTA7MTEwMSAxMTYxIDExQUI7QUU1MDsxMTAxIDExNjEgMTFBQjsKK0FFNTE7QUU1MTsxMTAxIDExNjEgMTFBQztBRTUxOzExMDEgMTE2MSAxMUFDOworQUU1MjtBRTUyOzExMDEgMTE2MSAxMUFEO0FFNTI7MTEwMSAxMTYxIDExQUQ7CitBRTUzO0FFNTM7MTEwMSAxMTYxIDExQUU7QUU1MzsxMTAxIDExNjEgMTFBRTsKK0FFNTQ7QUU1NDsxMTAxIDExNjEgMTFBRjtBRTU0OzExMDEgMTE2MSAxMUFGOworQUU1NTtBRTU1OzExMDEgMTE2MSAxMUIwO0FFNTU7MTEwMSAxMTYxIDExQjA7CitBRTU2O0FFNTY7MTEwMSAxMTYxIDExQjE7QUU1NjsxMTAxIDExNjEgMTFCMTsKK0FFNTc7QUU1NzsxMTAxIDExNjEgMTFCMjtBRTU3OzExMDEgMTE2MSAxMUIyOworQUU1ODtBRTU4OzExMDEgMTE2MSAxMUIzO0FFNTg7MTEwMSAxMTYxIDExQjM7CitBRTU5O0FFNTk7MTEwMSAxMTYxIDExQjQ7QUU1OTsxMTAxIDExNjEgMTFCNDsKK0FFNUE7QUU1QTsxMTAxIDExNjEgMTFCNTtBRTVBOzExMDEgMTE2MSAxMUI1OworQUU1QjtBRTVCOzExMDEgMTE2MSAxMUI2O0FFNUI7MTEwMSAxMTYxIDExQjY7CitBRTVDO0FFNUM7MTEwMSAxMTYxIDExQjc7QUU1QzsxMTAxIDExNjEgMTFCNzsKK0FFNUQ7QUU1RDsxMTAxIDExNjEgMTFCODtBRTVEOzExMDEgMTE2MSAxMUI4OworQUU1RTtBRTVFOzExMDEgMTE2MSAxMUI5O0FFNUU7MTEwMSAxMTYxIDExQjk7CitBRTVGO0FFNUY7MTEwMSAxMTYxIDExQkE7QUU1RjsxMTAxIDExNjEgMTFCQTsKK0FFNjA7QUU2MDsxMTAxIDExNjEgMTFCQjtBRTYwOzExMDEgMTE2MSAxMUJCOworQUU2MTtBRTYxOzExMDEgMTE2MSAxMUJDO0FFNjE7MTEwMSAxMTYxIDExQkM7CitBRTYyO0FFNjI7MTEwMSAxMTYxIDExQkQ7QUU2MjsxMTAxIDExNjEgMTFCRDsKK0FFNjM7QUU2MzsxMTAxIDExNjEgMTFCRTtBRTYzOzExMDEgMTE2MSAxMUJFOworQUU2NDtBRTY0OzExMDEgMTE2MSAxMUJGO0FFNjQ7MTEwMSAxMTYxIDExQkY7CitBRTY1O0FFNjU7MTEwMSAxMTYxIDExQzA7QUU2NTsxMTAxIDExNjEgMTFDMDsKK0FFNjY7QUU2NjsxMTAxIDExNjEgMTFDMTtBRTY2OzExMDEgMTE2MSAxMUMxOworQUU2NztBRTY3OzExMDEgMTE2MSAxMUMyO0FFNjc7MTEwMSAxMTYxIDExQzI7CitBRTY4O0FFNjg7MTEwMSAxMTYyO0FFNjg7MTEwMSAxMTYyOworQUU2OTtBRTY5OzExMDEgMTE2MiAxMUE4O0FFNjk7MTEwMSAxMTYyIDExQTg7CitBRTZBO0FFNkE7MTEwMSAxMTYyIDExQTk7QUU2QTsxMTAxIDExNjIgMTFBOTsKK0FFNkI7QUU2QjsxMTAxIDExNjIgMTFBQTtBRTZCOzExMDEgMTE2MiAxMUFBOworQUU2QztBRTZDOzExMDEgMTE2MiAxMUFCO0FFNkM7MTEwMSAxMTYyIDExQUI7CitBRTZEO0FFNkQ7MTEwMSAxMTYyIDExQUM7QUU2RDsxMTAxIDExNjIgMTFBQzsKK0FFNkU7QUU2RTsxMTAxIDExNjIgMTFBRDtBRTZFOzExMDEgMTE2MiAxMUFEOworQUU2RjtBRTZGOzExMDEgMTE2MiAxMUFFO0FFNkY7MTEwMSAxMTYyIDExQUU7CitBRTcwO0FFNzA7MTEwMSAxMTYyIDExQUY7QUU3MDsxMTAxIDExNjIgMTFBRjsKK0FFNzE7QUU3MTsxMTAxIDExNjIgMTFCMDtBRTcxOzExMDEgMTE2MiAxMUIwOworQUU3MjtBRTcyOzExMDEgMTE2MiAxMUIxO0FFNzI7MTEwMSAxMTYyIDExQjE7CitBRTczO0FFNzM7MTEwMSAxMTYyIDExQjI7QUU3MzsxMTAxIDExNjIgMTFCMjsKK0FFNzQ7QUU3NDsxMTAxIDExNjIgMTFCMztBRTc0OzExMDEgMTE2MiAxMUIzOworQUU3NTtBRTc1OzExMDEgMTE2MiAxMUI0O0FFNzU7MTEwMSAxMTYyIDExQjQ7CitBRTc2O0FFNzY7MTEwMSAxMTYyIDExQjU7QUU3NjsxMTAxIDExNjIgMTFCNTsKK0FFNzc7QUU3NzsxMTAxIDExNjIgMTFCNjtBRTc3OzExMDEgMTE2MiAxMUI2OworQUU3ODtBRTc4OzExMDEgMTE2MiAxMUI3O0FFNzg7MTEwMSAxMTYyIDExQjc7CitBRTc5O0FFNzk7MTEwMSAxMTYyIDExQjg7QUU3OTsxMTAxIDExNjIgMTFCODsKK0FFN0E7QUU3QTsxMTAxIDExNjIgMTFCOTtBRTdBOzExMDEgMTE2MiAxMUI5OworQUU3QjtBRTdCOzExMDEgMTE2MiAxMUJBO0FFN0I7MTEwMSAxMTYyIDExQkE7CitBRTdDO0FFN0M7MTEwMSAxMTYyIDExQkI7QUU3QzsxMTAxIDExNjIgMTFCQjsKK0FFN0Q7QUU3RDsxMTAxIDExNjIgMTFCQztBRTdEOzExMDEgMTE2MiAxMUJDOworQUU3RTtBRTdFOzExMDEgMTE2MiAxMUJEO0FFN0U7MTEwMSAxMTYyIDExQkQ7CitBRTdGO0FFN0Y7MTEwMSAxMTYyIDExQkU7QUU3RjsxMTAxIDExNjIgMTFCRTsKK0FFODA7QUU4MDsxMTAxIDExNjIgMTFCRjtBRTgwOzExMDEgMTE2MiAxMUJGOworQUU4MTtBRTgxOzExMDEgMTE2MiAxMUMwO0FFODE7MTEwMSAxMTYyIDExQzA7CitBRTgyO0FFODI7MTEwMSAxMTYyIDExQzE7QUU4MjsxMTAxIDExNjIgMTFDMTsKK0FFODM7QUU4MzsxMTAxIDExNjIgMTFDMjtBRTgzOzExMDEgMTE2MiAxMUMyOworQUU4NDtBRTg0OzExMDEgMTE2MztBRTg0OzExMDEgMTE2MzsKK0FFODU7QUU4NTsxMTAxIDExNjMgMTFBODtBRTg1OzExMDEgMTE2MyAxMUE4OworQUU4NjtBRTg2OzExMDEgMTE2MyAxMUE5O0FFODY7MTEwMSAxMTYzIDExQTk7CitBRTg3O0FFODc7MTEwMSAxMTYzIDExQUE7QUU4NzsxMTAxIDExNjMgMTFBQTsKK0FFODg7QUU4ODsxMTAxIDExNjMgMTFBQjtBRTg4OzExMDEgMTE2MyAxMUFCOworQUU4OTtBRTg5OzExMDEgMTE2MyAxMUFDO0FFODk7MTEwMSAxMTYzIDExQUM7CitBRThBO0FFOEE7MTEwMSAxMTYzIDExQUQ7QUU4QTsxMTAxIDExNjMgMTFBRDsKK0FFOEI7QUU4QjsxMTAxIDExNjMgMTFBRTtBRThCOzExMDEgMTE2MyAxMUFFOworQUU4QztBRThDOzExMDEgMTE2MyAxMUFGO0FFOEM7MTEwMSAxMTYzIDExQUY7CitBRThEO0FFOEQ7MTEwMSAxMTYzIDExQjA7QUU4RDsxMTAxIDExNjMgMTFCMDsKK0FFOEU7QUU4RTsxMTAxIDExNjMgMTFCMTtBRThFOzExMDEgMTE2MyAxMUIxOworQUU4RjtBRThGOzExMDEgMTE2MyAxMUIyO0FFOEY7MTEwMSAxMTYzIDExQjI7CitBRTkwO0FFOTA7MTEwMSAxMTYzIDExQjM7QUU5MDsxMTAxIDExNjMgMTFCMzsKK0FFOTE7QUU5MTsxMTAxIDExNjMgMTFCNDtBRTkxOzExMDEgMTE2MyAxMUI0OworQUU5MjtBRTkyOzExMDEgMTE2MyAxMUI1O0FFOTI7MTEwMSAxMTYzIDExQjU7CitBRTkzO0FFOTM7MTEwMSAxMTYzIDExQjY7QUU5MzsxMTAxIDExNjMgMTFCNjsKK0FFOTQ7QUU5NDsxMTAxIDExNjMgMTFCNztBRTk0OzExMDEgMTE2MyAxMUI3OworQUU5NTtBRTk1OzExMDEgMTE2MyAxMUI4O0FFOTU7MTEwMSAxMTYzIDExQjg7CitBRTk2O0FFOTY7MTEwMSAxMTYzIDExQjk7QUU5NjsxMTAxIDExNjMgMTFCOTsKK0FFOTc7QUU5NzsxMTAxIDExNjMgMTFCQTtBRTk3OzExMDEgMTE2MyAxMUJBOworQUU5ODtBRTk4OzExMDEgMTE2MyAxMUJCO0FFOTg7MTEwMSAxMTYzIDExQkI7CitBRTk5O0FFOTk7MTEwMSAxMTYzIDExQkM7QUU5OTsxMTAxIDExNjMgMTFCQzsKK0FFOUE7QUU5QTsxMTAxIDExNjMgMTFCRDtBRTlBOzExMDEgMTE2MyAxMUJEOworQUU5QjtBRTlCOzExMDEgMTE2MyAxMUJFO0FFOUI7MTEwMSAxMTYzIDExQkU7CitBRTlDO0FFOUM7MTEwMSAxMTYzIDExQkY7QUU5QzsxMTAxIDExNjMgMTFCRjsKK0FFOUQ7QUU5RDsxMTAxIDExNjMgMTFDMDtBRTlEOzExMDEgMTE2MyAxMUMwOworQUU5RTtBRTlFOzExMDEgMTE2MyAxMUMxO0FFOUU7MTEwMSAxMTYzIDExQzE7CitBRTlGO0FFOUY7MTEwMSAxMTYzIDExQzI7QUU5RjsxMTAxIDExNjMgMTFDMjsKK0FFQTA7QUVBMDsxMTAxIDExNjQ7QUVBMDsxMTAxIDExNjQ7CitBRUExO0FFQTE7MTEwMSAxMTY0IDExQTg7QUVBMTsxMTAxIDExNjQgMTFBODsKK0FFQTI7QUVBMjsxMTAxIDExNjQgMTFBOTtBRUEyOzExMDEgMTE2NCAxMUE5OworQUVBMztBRUEzOzExMDEgMTE2NCAxMUFBO0FFQTM7MTEwMSAxMTY0IDExQUE7CitBRUE0O0FFQTQ7MTEwMSAxMTY0IDExQUI7QUVBNDsxMTAxIDExNjQgMTFBQjsKK0FFQTU7QUVBNTsxMTAxIDExNjQgMTFBQztBRUE1OzExMDEgMTE2NCAxMUFDOworQUVBNjtBRUE2OzExMDEgMTE2NCAxMUFEO0FFQTY7MTEwMSAxMTY0IDExQUQ7CitBRUE3O0FFQTc7MTEwMSAxMTY0IDExQUU7QUVBNzsxMTAxIDExNjQgMTFBRTsKK0FFQTg7QUVBODsxMTAxIDExNjQgMTFBRjtBRUE4OzExMDEgMTE2NCAxMUFGOworQUVBOTtBRUE5OzExMDEgMTE2NCAxMUIwO0FFQTk7MTEwMSAxMTY0IDExQjA7CitBRUFBO0FFQUE7MTEwMSAxMTY0IDExQjE7QUVBQTsxMTAxIDExNjQgMTFCMTsKK0FFQUI7QUVBQjsxMTAxIDExNjQgMTFCMjtBRUFCOzExMDEgMTE2NCAxMUIyOworQUVBQztBRUFDOzExMDEgMTE2NCAxMUIzO0FFQUM7MTEwMSAxMTY0IDExQjM7CitBRUFEO0FFQUQ7MTEwMSAxMTY0IDExQjQ7QUVBRDsxMTAxIDExNjQgMTFCNDsKK0FFQUU7QUVBRTsxMTAxIDExNjQgMTFCNTtBRUFFOzExMDEgMTE2NCAxMUI1OworQUVBRjtBRUFGOzExMDEgMTE2NCAxMUI2O0FFQUY7MTEwMSAxMTY0IDExQjY7CitBRUIwO0FFQjA7MTEwMSAxMTY0IDExQjc7QUVCMDsxMTAxIDExNjQgMTFCNzsKK0FFQjE7QUVCMTsxMTAxIDExNjQgMTFCODtBRUIxOzExMDEgMTE2NCAxMUI4OworQUVCMjtBRUIyOzExMDEgMTE2NCAxMUI5O0FFQjI7MTEwMSAxMTY0IDExQjk7CitBRUIzO0FFQjM7MTEwMSAxMTY0IDExQkE7QUVCMzsxMTAxIDExNjQgMTFCQTsKK0FFQjQ7QUVCNDsxMTAxIDExNjQgMTFCQjtBRUI0OzExMDEgMTE2NCAxMUJCOworQUVCNTtBRUI1OzExMDEgMTE2NCAxMUJDO0FFQjU7MTEwMSAxMTY0IDExQkM7CitBRUI2O0FFQjY7MTEwMSAxMTY0IDExQkQ7QUVCNjsxMTAxIDExNjQgMTFCRDsKK0FFQjc7QUVCNzsxMTAxIDExNjQgMTFCRTtBRUI3OzExMDEgMTE2NCAxMUJFOworQUVCODtBRUI4OzExMDEgMTE2NCAxMUJGO0FFQjg7MTEwMSAxMTY0IDExQkY7CitBRUI5O0FFQjk7MTEwMSAxMTY0IDExQzA7QUVCOTsxMTAxIDExNjQgMTFDMDsKK0FFQkE7QUVCQTsxMTAxIDExNjQgMTFDMTtBRUJBOzExMDEgMTE2NCAxMUMxOworQUVCQjtBRUJCOzExMDEgMTE2NCAxMUMyO0FFQkI7MTEwMSAxMTY0IDExQzI7CitBRUJDO0FFQkM7MTEwMSAxMTY1O0FFQkM7MTEwMSAxMTY1OworQUVCRDtBRUJEOzExMDEgMTE2NSAxMUE4O0FFQkQ7MTEwMSAxMTY1IDExQTg7CitBRUJFO0FFQkU7MTEwMSAxMTY1IDExQTk7QUVCRTsxMTAxIDExNjUgMTFBOTsKK0FFQkY7QUVCRjsxMTAxIDExNjUgMTFBQTtBRUJGOzExMDEgMTE2NSAxMUFBOworQUVDMDtBRUMwOzExMDEgMTE2NSAxMUFCO0FFQzA7MTEwMSAxMTY1IDExQUI7CitBRUMxO0FFQzE7MTEwMSAxMTY1IDExQUM7QUVDMTsxMTAxIDExNjUgMTFBQzsKK0FFQzI7QUVDMjsxMTAxIDExNjUgMTFBRDtBRUMyOzExMDEgMTE2NSAxMUFEOworQUVDMztBRUMzOzExMDEgMTE2NSAxMUFFO0FFQzM7MTEwMSAxMTY1IDExQUU7CitBRUM0O0FFQzQ7MTEwMSAxMTY1IDExQUY7QUVDNDsxMTAxIDExNjUgMTFBRjsKK0FFQzU7QUVDNTsxMTAxIDExNjUgMTFCMDtBRUM1OzExMDEgMTE2NSAxMUIwOworQUVDNjtBRUM2OzExMDEgMTE2NSAxMUIxO0FFQzY7MTEwMSAxMTY1IDExQjE7CitBRUM3O0FFQzc7MTEwMSAxMTY1IDExQjI7QUVDNzsxMTAxIDExNjUgMTFCMjsKK0FFQzg7QUVDODsxMTAxIDExNjUgMTFCMztBRUM4OzExMDEgMTE2NSAxMUIzOworQUVDOTtBRUM5OzExMDEgMTE2NSAxMUI0O0FFQzk7MTEwMSAxMTY1IDExQjQ7CitBRUNBO0FFQ0E7MTEwMSAxMTY1IDExQjU7QUVDQTsxMTAxIDExNjUgMTFCNTsKK0FFQ0I7QUVDQjsxMTAxIDExNjUgMTFCNjtBRUNCOzExMDEgMTE2NSAxMUI2OworQUVDQztBRUNDOzExMDEgMTE2NSAxMUI3O0FFQ0M7MTEwMSAxMTY1IDExQjc7CitBRUNEO0FFQ0Q7MTEwMSAxMTY1IDExQjg7QUVDRDsxMTAxIDExNjUgMTFCODsKK0FFQ0U7QUVDRTsxMTAxIDExNjUgMTFCOTtBRUNFOzExMDEgMTE2NSAxMUI5OworQUVDRjtBRUNGOzExMDEgMTE2NSAxMUJBO0FFQ0Y7MTEwMSAxMTY1IDExQkE7CitBRUQwO0FFRDA7MTEwMSAxMTY1IDExQkI7QUVEMDsxMTAxIDExNjUgMTFCQjsKK0FFRDE7QUVEMTsxMTAxIDExNjUgMTFCQztBRUQxOzExMDEgMTE2NSAxMUJDOworQUVEMjtBRUQyOzExMDEgMTE2NSAxMUJEO0FFRDI7MTEwMSAxMTY1IDExQkQ7CitBRUQzO0FFRDM7MTEwMSAxMTY1IDExQkU7QUVEMzsxMTAxIDExNjUgMTFCRTsKK0FFRDQ7QUVENDsxMTAxIDExNjUgMTFCRjtBRUQ0OzExMDEgMTE2NSAxMUJGOworQUVENTtBRUQ1OzExMDEgMTE2NSAxMUMwO0FFRDU7MTEwMSAxMTY1IDExQzA7CitBRUQ2O0FFRDY7MTEwMSAxMTY1IDExQzE7QUVENjsxMTAxIDExNjUgMTFDMTsKK0FFRDc7QUVENzsxMTAxIDExNjUgMTFDMjtBRUQ3OzExMDEgMTE2NSAxMUMyOworQUVEODtBRUQ4OzExMDEgMTE2NjtBRUQ4OzExMDEgMTE2NjsKK0FFRDk7QUVEOTsxMTAxIDExNjYgMTFBODtBRUQ5OzExMDEgMTE2NiAxMUE4OworQUVEQTtBRURBOzExMDEgMTE2NiAxMUE5O0FFREE7MTEwMSAxMTY2IDExQTk7CitBRURCO0FFREI7MTEwMSAxMTY2IDExQUE7QUVEQjsxMTAxIDExNjYgMTFBQTsKK0FFREM7QUVEQzsxMTAxIDExNjYgMTFBQjtBRURDOzExMDEgMTE2NiAxMUFCOworQUVERDtBRUREOzExMDEgMTE2NiAxMUFDO0FFREQ7MTEwMSAxMTY2IDExQUM7CitBRURFO0FFREU7MTEwMSAxMTY2IDExQUQ7QUVERTsxMTAxIDExNjYgMTFBRDsKK0FFREY7QUVERjsxMTAxIDExNjYgMTFBRTtBRURGOzExMDEgMTE2NiAxMUFFOworQUVFMDtBRUUwOzExMDEgMTE2NiAxMUFGO0FFRTA7MTEwMSAxMTY2IDExQUY7CitBRUUxO0FFRTE7MTEwMSAxMTY2IDExQjA7QUVFMTsxMTAxIDExNjYgMTFCMDsKK0FFRTI7QUVFMjsxMTAxIDExNjYgMTFCMTtBRUUyOzExMDEgMTE2NiAxMUIxOworQUVFMztBRUUzOzExMDEgMTE2NiAxMUIyO0FFRTM7MTEwMSAxMTY2IDExQjI7CitBRUU0O0FFRTQ7MTEwMSAxMTY2IDExQjM7QUVFNDsxMTAxIDExNjYgMTFCMzsKK0FFRTU7QUVFNTsxMTAxIDExNjYgMTFCNDtBRUU1OzExMDEgMTE2NiAxMUI0OworQUVFNjtBRUU2OzExMDEgMTE2NiAxMUI1O0FFRTY7MTEwMSAxMTY2IDExQjU7CitBRUU3O0FFRTc7MTEwMSAxMTY2IDExQjY7QUVFNzsxMTAxIDExNjYgMTFCNjsKK0FFRTg7QUVFODsxMTAxIDExNjYgMTFCNztBRUU4OzExMDEgMTE2NiAxMUI3OworQUVFOTtBRUU5OzExMDEgMTE2NiAxMUI4O0FFRTk7MTEwMSAxMTY2IDExQjg7CitBRUVBO0FFRUE7MTEwMSAxMTY2IDExQjk7QUVFQTsxMTAxIDExNjYgMTFCOTsKK0FFRUI7QUVFQjsxMTAxIDExNjYgMTFCQTtBRUVCOzExMDEgMTE2NiAxMUJBOworQUVFQztBRUVDOzExMDEgMTE2NiAxMUJCO0FFRUM7MTEwMSAxMTY2IDExQkI7CitBRUVEO0FFRUQ7MTEwMSAxMTY2IDExQkM7QUVFRDsxMTAxIDExNjYgMTFCQzsKK0FFRUU7QUVFRTsxMTAxIDExNjYgMTFCRDtBRUVFOzExMDEgMTE2NiAxMUJEOworQUVFRjtBRUVGOzExMDEgMTE2NiAxMUJFO0FFRUY7MTEwMSAxMTY2IDExQkU7CitBRUYwO0FFRjA7MTEwMSAxMTY2IDExQkY7QUVGMDsxMTAxIDExNjYgMTFCRjsKK0FFRjE7QUVGMTsxMTAxIDExNjYgMTFDMDtBRUYxOzExMDEgMTE2NiAxMUMwOworQUVGMjtBRUYyOzExMDEgMTE2NiAxMUMxO0FFRjI7MTEwMSAxMTY2IDExQzE7CitBRUYzO0FFRjM7MTEwMSAxMTY2IDExQzI7QUVGMzsxMTAxIDExNjYgMTFDMjsKK0FFRjQ7QUVGNDsxMTAxIDExNjc7QUVGNDsxMTAxIDExNjc7CitBRUY1O0FFRjU7MTEwMSAxMTY3IDExQTg7QUVGNTsxMTAxIDExNjcgMTFBODsKK0FFRjY7QUVGNjsxMTAxIDExNjcgMTFBOTtBRUY2OzExMDEgMTE2NyAxMUE5OworQUVGNztBRUY3OzExMDEgMTE2NyAxMUFBO0FFRjc7MTEwMSAxMTY3IDExQUE7CitBRUY4O0FFRjg7MTEwMSAxMTY3IDExQUI7QUVGODsxMTAxIDExNjcgMTFBQjsKK0FFRjk7QUVGOTsxMTAxIDExNjcgMTFBQztBRUY5OzExMDEgMTE2NyAxMUFDOworQUVGQTtBRUZBOzExMDEgMTE2NyAxMUFEO0FFRkE7MTEwMSAxMTY3IDExQUQ7CitBRUZCO0FFRkI7MTEwMSAxMTY3IDExQUU7QUVGQjsxMTAxIDExNjcgMTFBRTsKK0FFRkM7QUVGQzsxMTAxIDExNjcgMTFBRjtBRUZDOzExMDEgMTE2NyAxMUFGOworQUVGRDtBRUZEOzExMDEgMTE2NyAxMUIwO0FFRkQ7MTEwMSAxMTY3IDExQjA7CitBRUZFO0FFRkU7MTEwMSAxMTY3IDExQjE7QUVGRTsxMTAxIDExNjcgMTFCMTsKK0FFRkY7QUVGRjsxMTAxIDExNjcgMTFCMjtBRUZGOzExMDEgMTE2NyAxMUIyOworQUYwMDtBRjAwOzExMDEgMTE2NyAxMUIzO0FGMDA7MTEwMSAxMTY3IDExQjM7CitBRjAxO0FGMDE7MTEwMSAxMTY3IDExQjQ7QUYwMTsxMTAxIDExNjcgMTFCNDsKK0FGMDI7QUYwMjsxMTAxIDExNjcgMTFCNTtBRjAyOzExMDEgMTE2NyAxMUI1OworQUYwMztBRjAzOzExMDEgMTE2NyAxMUI2O0FGMDM7MTEwMSAxMTY3IDExQjY7CitBRjA0O0FGMDQ7MTEwMSAxMTY3IDExQjc7QUYwNDsxMTAxIDExNjcgMTFCNzsKK0FGMDU7QUYwNTsxMTAxIDExNjcgMTFCODtBRjA1OzExMDEgMTE2NyAxMUI4OworQUYwNjtBRjA2OzExMDEgMTE2NyAxMUI5O0FGMDY7MTEwMSAxMTY3IDExQjk7CitBRjA3O0FGMDc7MTEwMSAxMTY3IDExQkE7QUYwNzsxMTAxIDExNjcgMTFCQTsKK0FGMDg7QUYwODsxMTAxIDExNjcgMTFCQjtBRjA4OzExMDEgMTE2NyAxMUJCOworQUYwOTtBRjA5OzExMDEgMTE2NyAxMUJDO0FGMDk7MTEwMSAxMTY3IDExQkM7CitBRjBBO0FGMEE7MTEwMSAxMTY3IDExQkQ7QUYwQTsxMTAxIDExNjcgMTFCRDsKK0FGMEI7QUYwQjsxMTAxIDExNjcgMTFCRTtBRjBCOzExMDEgMTE2NyAxMUJFOworQUYwQztBRjBDOzExMDEgMTE2NyAxMUJGO0FGMEM7MTEwMSAxMTY3IDExQkY7CitBRjBEO0FGMEQ7MTEwMSAxMTY3IDExQzA7QUYwRDsxMTAxIDExNjcgMTFDMDsKK0FGMEU7QUYwRTsxMTAxIDExNjcgMTFDMTtBRjBFOzExMDEgMTE2NyAxMUMxOworQUYwRjtBRjBGOzExMDEgMTE2NyAxMUMyO0FGMEY7MTEwMSAxMTY3IDExQzI7CitBRjEwO0FGMTA7MTEwMSAxMTY4O0FGMTA7MTEwMSAxMTY4OworQUYxMTtBRjExOzExMDEgMTE2OCAxMUE4O0FGMTE7MTEwMSAxMTY4IDExQTg7CitBRjEyO0FGMTI7MTEwMSAxMTY4IDExQTk7QUYxMjsxMTAxIDExNjggMTFBOTsKK0FGMTM7QUYxMzsxMTAxIDExNjggMTFBQTtBRjEzOzExMDEgMTE2OCAxMUFBOworQUYxNDtBRjE0OzExMDEgMTE2OCAxMUFCO0FGMTQ7MTEwMSAxMTY4IDExQUI7CitBRjE1O0FGMTU7MTEwMSAxMTY4IDExQUM7QUYxNTsxMTAxIDExNjggMTFBQzsKK0FGMTY7QUYxNjsxMTAxIDExNjggMTFBRDtBRjE2OzExMDEgMTE2OCAxMUFEOworQUYxNztBRjE3OzExMDEgMTE2OCAxMUFFO0FGMTc7MTEwMSAxMTY4IDExQUU7CitBRjE4O0FGMTg7MTEwMSAxMTY4IDExQUY7QUYxODsxMTAxIDExNjggMTFBRjsKK0FGMTk7QUYxOTsxMTAxIDExNjggMTFCMDtBRjE5OzExMDEgMTE2OCAxMUIwOworQUYxQTtBRjFBOzExMDEgMTE2OCAxMUIxO0FGMUE7MTEwMSAxMTY4IDExQjE7CitBRjFCO0FGMUI7MTEwMSAxMTY4IDExQjI7QUYxQjsxMTAxIDExNjggMTFCMjsKK0FGMUM7QUYxQzsxMTAxIDExNjggMTFCMztBRjFDOzExMDEgMTE2OCAxMUIzOworQUYxRDtBRjFEOzExMDEgMTE2OCAxMUI0O0FGMUQ7MTEwMSAxMTY4IDExQjQ7CitBRjFFO0FGMUU7MTEwMSAxMTY4IDExQjU7QUYxRTsxMTAxIDExNjggMTFCNTsKK0FGMUY7QUYxRjsxMTAxIDExNjggMTFCNjtBRjFGOzExMDEgMTE2OCAxMUI2OworQUYyMDtBRjIwOzExMDEgMTE2OCAxMUI3O0FGMjA7MTEwMSAxMTY4IDExQjc7CitBRjIxO0FGMjE7MTEwMSAxMTY4IDExQjg7QUYyMTsxMTAxIDExNjggMTFCODsKK0FGMjI7QUYyMjsxMTAxIDExNjggMTFCOTtBRjIyOzExMDEgMTE2OCAxMUI5OworQUYyMztBRjIzOzExMDEgMTE2OCAxMUJBO0FGMjM7MTEwMSAxMTY4IDExQkE7CitBRjI0O0FGMjQ7MTEwMSAxMTY4IDExQkI7QUYyNDsxMTAxIDExNjggMTFCQjsKK0FGMjU7QUYyNTsxMTAxIDExNjggMTFCQztBRjI1OzExMDEgMTE2OCAxMUJDOworQUYyNjtBRjI2OzExMDEgMTE2OCAxMUJEO0FGMjY7MTEwMSAxMTY4IDExQkQ7CitBRjI3O0FGMjc7MTEwMSAxMTY4IDExQkU7QUYyNzsxMTAxIDExNjggMTFCRTsKK0FGMjg7QUYyODsxMTAxIDExNjggMTFCRjtBRjI4OzExMDEgMTE2OCAxMUJGOworQUYyOTtBRjI5OzExMDEgMTE2OCAxMUMwO0FGMjk7MTEwMSAxMTY4IDExQzA7CitBRjJBO0FGMkE7MTEwMSAxMTY4IDExQzE7QUYyQTsxMTAxIDExNjggMTFDMTsKK0FGMkI7QUYyQjsxMTAxIDExNjggMTFDMjtBRjJCOzExMDEgMTE2OCAxMUMyOworQUYyQztBRjJDOzExMDEgMTE2OTtBRjJDOzExMDEgMTE2OTsKK0FGMkQ7QUYyRDsxMTAxIDExNjkgMTFBODtBRjJEOzExMDEgMTE2OSAxMUE4OworQUYyRTtBRjJFOzExMDEgMTE2OSAxMUE5O0FGMkU7MTEwMSAxMTY5IDExQTk7CitBRjJGO0FGMkY7MTEwMSAxMTY5IDExQUE7QUYyRjsxMTAxIDExNjkgMTFBQTsKK0FGMzA7QUYzMDsxMTAxIDExNjkgMTFBQjtBRjMwOzExMDEgMTE2OSAxMUFCOworQUYzMTtBRjMxOzExMDEgMTE2OSAxMUFDO0FGMzE7MTEwMSAxMTY5IDExQUM7CitBRjMyO0FGMzI7MTEwMSAxMTY5IDExQUQ7QUYzMjsxMTAxIDExNjkgMTFBRDsKK0FGMzM7QUYzMzsxMTAxIDExNjkgMTFBRTtBRjMzOzExMDEgMTE2OSAxMUFFOworQUYzNDtBRjM0OzExMDEgMTE2OSAxMUFGO0FGMzQ7MTEwMSAxMTY5IDExQUY7CitBRjM1O0FGMzU7MTEwMSAxMTY5IDExQjA7QUYzNTsxMTAxIDExNjkgMTFCMDsKK0FGMzY7QUYzNjsxMTAxIDExNjkgMTFCMTtBRjM2OzExMDEgMTE2OSAxMUIxOworQUYzNztBRjM3OzExMDEgMTE2OSAxMUIyO0FGMzc7MTEwMSAxMTY5IDExQjI7CitBRjM4O0FGMzg7MTEwMSAxMTY5IDExQjM7QUYzODsxMTAxIDExNjkgMTFCMzsKK0FGMzk7QUYzOTsxMTAxIDExNjkgMTFCNDtBRjM5OzExMDEgMTE2OSAxMUI0OworQUYzQTtBRjNBOzExMDEgMTE2OSAxMUI1O0FGM0E7MTEwMSAxMTY5IDExQjU7CitBRjNCO0FGM0I7MTEwMSAxMTY5IDExQjY7QUYzQjsxMTAxIDExNjkgMTFCNjsKK0FGM0M7QUYzQzsxMTAxIDExNjkgMTFCNztBRjNDOzExMDEgMTE2OSAxMUI3OworQUYzRDtBRjNEOzExMDEgMTE2OSAxMUI4O0FGM0Q7MTEwMSAxMTY5IDExQjg7CitBRjNFO0FGM0U7MTEwMSAxMTY5IDExQjk7QUYzRTsxMTAxIDExNjkgMTFCOTsKK0FGM0Y7QUYzRjsxMTAxIDExNjkgMTFCQTtBRjNGOzExMDEgMTE2OSAxMUJBOworQUY0MDtBRjQwOzExMDEgMTE2OSAxMUJCO0FGNDA7MTEwMSAxMTY5IDExQkI7CitBRjQxO0FGNDE7MTEwMSAxMTY5IDExQkM7QUY0MTsxMTAxIDExNjkgMTFCQzsKK0FGNDI7QUY0MjsxMTAxIDExNjkgMTFCRDtBRjQyOzExMDEgMTE2OSAxMUJEOworQUY0MztBRjQzOzExMDEgMTE2OSAxMUJFO0FGNDM7MTEwMSAxMTY5IDExQkU7CitBRjQ0O0FGNDQ7MTEwMSAxMTY5IDExQkY7QUY0NDsxMTAxIDExNjkgMTFCRjsKK0FGNDU7QUY0NTsxMTAxIDExNjkgMTFDMDtBRjQ1OzExMDEgMTE2OSAxMUMwOworQUY0NjtBRjQ2OzExMDEgMTE2OSAxMUMxO0FGNDY7MTEwMSAxMTY5IDExQzE7CitBRjQ3O0FGNDc7MTEwMSAxMTY5IDExQzI7QUY0NzsxMTAxIDExNjkgMTFDMjsKK0FGNDg7QUY0ODsxMTAxIDExNkE7QUY0ODsxMTAxIDExNkE7CitBRjQ5O0FGNDk7MTEwMSAxMTZBIDExQTg7QUY0OTsxMTAxIDExNkEgMTFBODsKK0FGNEE7QUY0QTsxMTAxIDExNkEgMTFBOTtBRjRBOzExMDEgMTE2QSAxMUE5OworQUY0QjtBRjRCOzExMDEgMTE2QSAxMUFBO0FGNEI7MTEwMSAxMTZBIDExQUE7CitBRjRDO0FGNEM7MTEwMSAxMTZBIDExQUI7QUY0QzsxMTAxIDExNkEgMTFBQjsKK0FGNEQ7QUY0RDsxMTAxIDExNkEgMTFBQztBRjREOzExMDEgMTE2QSAxMUFDOworQUY0RTtBRjRFOzExMDEgMTE2QSAxMUFEO0FGNEU7MTEwMSAxMTZBIDExQUQ7CitBRjRGO0FGNEY7MTEwMSAxMTZBIDExQUU7QUY0RjsxMTAxIDExNkEgMTFBRTsKK0FGNTA7QUY1MDsxMTAxIDExNkEgMTFBRjtBRjUwOzExMDEgMTE2QSAxMUFGOworQUY1MTtBRjUxOzExMDEgMTE2QSAxMUIwO0FGNTE7MTEwMSAxMTZBIDExQjA7CitBRjUyO0FGNTI7MTEwMSAxMTZBIDExQjE7QUY1MjsxMTAxIDExNkEgMTFCMTsKK0FGNTM7QUY1MzsxMTAxIDExNkEgMTFCMjtBRjUzOzExMDEgMTE2QSAxMUIyOworQUY1NDtBRjU0OzExMDEgMTE2QSAxMUIzO0FGNTQ7MTEwMSAxMTZBIDExQjM7CitBRjU1O0FGNTU7MTEwMSAxMTZBIDExQjQ7QUY1NTsxMTAxIDExNkEgMTFCNDsKK0FGNTY7QUY1NjsxMTAxIDExNkEgMTFCNTtBRjU2OzExMDEgMTE2QSAxMUI1OworQUY1NztBRjU3OzExMDEgMTE2QSAxMUI2O0FGNTc7MTEwMSAxMTZBIDExQjY7CitBRjU4O0FGNTg7MTEwMSAxMTZBIDExQjc7QUY1ODsxMTAxIDExNkEgMTFCNzsKK0FGNTk7QUY1OTsxMTAxIDExNkEgMTFCODtBRjU5OzExMDEgMTE2QSAxMUI4OworQUY1QTtBRjVBOzExMDEgMTE2QSAxMUI5O0FGNUE7MTEwMSAxMTZBIDExQjk7CitBRjVCO0FGNUI7MTEwMSAxMTZBIDExQkE7QUY1QjsxMTAxIDExNkEgMTFCQTsKK0FGNUM7QUY1QzsxMTAxIDExNkEgMTFCQjtBRjVDOzExMDEgMTE2QSAxMUJCOworQUY1RDtBRjVEOzExMDEgMTE2QSAxMUJDO0FGNUQ7MTEwMSAxMTZBIDExQkM7CitBRjVFO0FGNUU7MTEwMSAxMTZBIDExQkQ7QUY1RTsxMTAxIDExNkEgMTFCRDsKK0FGNUY7QUY1RjsxMTAxIDExNkEgMTFCRTtBRjVGOzExMDEgMTE2QSAxMUJFOworQUY2MDtBRjYwOzExMDEgMTE2QSAxMUJGO0FGNjA7MTEwMSAxMTZBIDExQkY7CitBRjYxO0FGNjE7MTEwMSAxMTZBIDExQzA7QUY2MTsxMTAxIDExNkEgMTFDMDsKK0FGNjI7QUY2MjsxMTAxIDExNkEgMTFDMTtBRjYyOzExMDEgMTE2QSAxMUMxOworQUY2MztBRjYzOzExMDEgMTE2QSAxMUMyO0FGNjM7MTEwMSAxMTZBIDExQzI7CitBRjY0O0FGNjQ7MTEwMSAxMTZCO0FGNjQ7MTEwMSAxMTZCOworQUY2NTtBRjY1OzExMDEgMTE2QiAxMUE4O0FGNjU7MTEwMSAxMTZCIDExQTg7CitBRjY2O0FGNjY7MTEwMSAxMTZCIDExQTk7QUY2NjsxMTAxIDExNkIgMTFBOTsKK0FGNjc7QUY2NzsxMTAxIDExNkIgMTFBQTtBRjY3OzExMDEgMTE2QiAxMUFBOworQUY2ODtBRjY4OzExMDEgMTE2QiAxMUFCO0FGNjg7MTEwMSAxMTZCIDExQUI7CitBRjY5O0FGNjk7MTEwMSAxMTZCIDExQUM7QUY2OTsxMTAxIDExNkIgMTFBQzsKK0FGNkE7QUY2QTsxMTAxIDExNkIgMTFBRDtBRjZBOzExMDEgMTE2QiAxMUFEOworQUY2QjtBRjZCOzExMDEgMTE2QiAxMUFFO0FGNkI7MTEwMSAxMTZCIDExQUU7CitBRjZDO0FGNkM7MTEwMSAxMTZCIDExQUY7QUY2QzsxMTAxIDExNkIgMTFBRjsKK0FGNkQ7QUY2RDsxMTAxIDExNkIgMTFCMDtBRjZEOzExMDEgMTE2QiAxMUIwOworQUY2RTtBRjZFOzExMDEgMTE2QiAxMUIxO0FGNkU7MTEwMSAxMTZCIDExQjE7CitBRjZGO0FGNkY7MTEwMSAxMTZCIDExQjI7QUY2RjsxMTAxIDExNkIgMTFCMjsKK0FGNzA7QUY3MDsxMTAxIDExNkIgMTFCMztBRjcwOzExMDEgMTE2QiAxMUIzOworQUY3MTtBRjcxOzExMDEgMTE2QiAxMUI0O0FGNzE7MTEwMSAxMTZCIDExQjQ7CitBRjcyO0FGNzI7MTEwMSAxMTZCIDExQjU7QUY3MjsxMTAxIDExNkIgMTFCNTsKK0FGNzM7QUY3MzsxMTAxIDExNkIgMTFCNjtBRjczOzExMDEgMTE2QiAxMUI2OworQUY3NDtBRjc0OzExMDEgMTE2QiAxMUI3O0FGNzQ7MTEwMSAxMTZCIDExQjc7CitBRjc1O0FGNzU7MTEwMSAxMTZCIDExQjg7QUY3NTsxMTAxIDExNkIgMTFCODsKK0FGNzY7QUY3NjsxMTAxIDExNkIgMTFCOTtBRjc2OzExMDEgMTE2QiAxMUI5OworQUY3NztBRjc3OzExMDEgMTE2QiAxMUJBO0FGNzc7MTEwMSAxMTZCIDExQkE7CitBRjc4O0FGNzg7MTEwMSAxMTZCIDExQkI7QUY3ODsxMTAxIDExNkIgMTFCQjsKK0FGNzk7QUY3OTsxMTAxIDExNkIgMTFCQztBRjc5OzExMDEgMTE2QiAxMUJDOworQUY3QTtBRjdBOzExMDEgMTE2QiAxMUJEO0FGN0E7MTEwMSAxMTZCIDExQkQ7CitBRjdCO0FGN0I7MTEwMSAxMTZCIDExQkU7QUY3QjsxMTAxIDExNkIgMTFCRTsKK0FGN0M7QUY3QzsxMTAxIDExNkIgMTFCRjtBRjdDOzExMDEgMTE2QiAxMUJGOworQUY3RDtBRjdEOzExMDEgMTE2QiAxMUMwO0FGN0Q7MTEwMSAxMTZCIDExQzA7CitBRjdFO0FGN0U7MTEwMSAxMTZCIDExQzE7QUY3RTsxMTAxIDExNkIgMTFDMTsKK0FGN0Y7QUY3RjsxMTAxIDExNkIgMTFDMjtBRjdGOzExMDEgMTE2QiAxMUMyOworQUY4MDtBRjgwOzExMDEgMTE2QztBRjgwOzExMDEgMTE2QzsKK0FGODE7QUY4MTsxMTAxIDExNkMgMTFBODtBRjgxOzExMDEgMTE2QyAxMUE4OworQUY4MjtBRjgyOzExMDEgMTE2QyAxMUE5O0FGODI7MTEwMSAxMTZDIDExQTk7CitBRjgzO0FGODM7MTEwMSAxMTZDIDExQUE7QUY4MzsxMTAxIDExNkMgMTFBQTsKK0FGODQ7QUY4NDsxMTAxIDExNkMgMTFBQjtBRjg0OzExMDEgMTE2QyAxMUFCOworQUY4NTtBRjg1OzExMDEgMTE2QyAxMUFDO0FGODU7MTEwMSAxMTZDIDExQUM7CitBRjg2O0FGODY7MTEwMSAxMTZDIDExQUQ7QUY4NjsxMTAxIDExNkMgMTFBRDsKK0FGODc7QUY4NzsxMTAxIDExNkMgMTFBRTtBRjg3OzExMDEgMTE2QyAxMUFFOworQUY4ODtBRjg4OzExMDEgMTE2QyAxMUFGO0FGODg7MTEwMSAxMTZDIDExQUY7CitBRjg5O0FGODk7MTEwMSAxMTZDIDExQjA7QUY4OTsxMTAxIDExNkMgMTFCMDsKK0FGOEE7QUY4QTsxMTAxIDExNkMgMTFCMTtBRjhBOzExMDEgMTE2QyAxMUIxOworQUY4QjtBRjhCOzExMDEgMTE2QyAxMUIyO0FGOEI7MTEwMSAxMTZDIDExQjI7CitBRjhDO0FGOEM7MTEwMSAxMTZDIDExQjM7QUY4QzsxMTAxIDExNkMgMTFCMzsKK0FGOEQ7QUY4RDsxMTAxIDExNkMgMTFCNDtBRjhEOzExMDEgMTE2QyAxMUI0OworQUY4RTtBRjhFOzExMDEgMTE2QyAxMUI1O0FGOEU7MTEwMSAxMTZDIDExQjU7CitBRjhGO0FGOEY7MTEwMSAxMTZDIDExQjY7QUY4RjsxMTAxIDExNkMgMTFCNjsKK0FGOTA7QUY5MDsxMTAxIDExNkMgMTFCNztBRjkwOzExMDEgMTE2QyAxMUI3OworQUY5MTtBRjkxOzExMDEgMTE2QyAxMUI4O0FGOTE7MTEwMSAxMTZDIDExQjg7CitBRjkyO0FGOTI7MTEwMSAxMTZDIDExQjk7QUY5MjsxMTAxIDExNkMgMTFCOTsKK0FGOTM7QUY5MzsxMTAxIDExNkMgMTFCQTtBRjkzOzExMDEgMTE2QyAxMUJBOworQUY5NDtBRjk0OzExMDEgMTE2QyAxMUJCO0FGOTQ7MTEwMSAxMTZDIDExQkI7CitBRjk1O0FGOTU7MTEwMSAxMTZDIDExQkM7QUY5NTsxMTAxIDExNkMgMTFCQzsKK0FGOTY7QUY5NjsxMTAxIDExNkMgMTFCRDtBRjk2OzExMDEgMTE2QyAxMUJEOworQUY5NztBRjk3OzExMDEgMTE2QyAxMUJFO0FGOTc7MTEwMSAxMTZDIDExQkU7CitBRjk4O0FGOTg7MTEwMSAxMTZDIDExQkY7QUY5ODsxMTAxIDExNkMgMTFCRjsKK0FGOTk7QUY5OTsxMTAxIDExNkMgMTFDMDtBRjk5OzExMDEgMTE2QyAxMUMwOworQUY5QTtBRjlBOzExMDEgMTE2QyAxMUMxO0FGOUE7MTEwMSAxMTZDIDExQzE7CitBRjlCO0FGOUI7MTEwMSAxMTZDIDExQzI7QUY5QjsxMTAxIDExNkMgMTFDMjsKK0FGOUM7QUY5QzsxMTAxIDExNkQ7QUY5QzsxMTAxIDExNkQ7CitBRjlEO0FGOUQ7MTEwMSAxMTZEIDExQTg7QUY5RDsxMTAxIDExNkQgMTFBODsKK0FGOUU7QUY5RTsxMTAxIDExNkQgMTFBOTtBRjlFOzExMDEgMTE2RCAxMUE5OworQUY5RjtBRjlGOzExMDEgMTE2RCAxMUFBO0FGOUY7MTEwMSAxMTZEIDExQUE7CitBRkEwO0FGQTA7MTEwMSAxMTZEIDExQUI7QUZBMDsxMTAxIDExNkQgMTFBQjsKK0FGQTE7QUZBMTsxMTAxIDExNkQgMTFBQztBRkExOzExMDEgMTE2RCAxMUFDOworQUZBMjtBRkEyOzExMDEgMTE2RCAxMUFEO0FGQTI7MTEwMSAxMTZEIDExQUQ7CitBRkEzO0FGQTM7MTEwMSAxMTZEIDExQUU7QUZBMzsxMTAxIDExNkQgMTFBRTsKK0FGQTQ7QUZBNDsxMTAxIDExNkQgMTFBRjtBRkE0OzExMDEgMTE2RCAxMUFGOworQUZBNTtBRkE1OzExMDEgMTE2RCAxMUIwO0FGQTU7MTEwMSAxMTZEIDExQjA7CitBRkE2O0FGQTY7MTEwMSAxMTZEIDExQjE7QUZBNjsxMTAxIDExNkQgMTFCMTsKK0FGQTc7QUZBNzsxMTAxIDExNkQgMTFCMjtBRkE3OzExMDEgMTE2RCAxMUIyOworQUZBODtBRkE4OzExMDEgMTE2RCAxMUIzO0FGQTg7MTEwMSAxMTZEIDExQjM7CitBRkE5O0FGQTk7MTEwMSAxMTZEIDExQjQ7QUZBOTsxMTAxIDExNkQgMTFCNDsKK0FGQUE7QUZBQTsxMTAxIDExNkQgMTFCNTtBRkFBOzExMDEgMTE2RCAxMUI1OworQUZBQjtBRkFCOzExMDEgMTE2RCAxMUI2O0FGQUI7MTEwMSAxMTZEIDExQjY7CitBRkFDO0FGQUM7MTEwMSAxMTZEIDExQjc7QUZBQzsxMTAxIDExNkQgMTFCNzsKK0FGQUQ7QUZBRDsxMTAxIDExNkQgMTFCODtBRkFEOzExMDEgMTE2RCAxMUI4OworQUZBRTtBRkFFOzExMDEgMTE2RCAxMUI5O0FGQUU7MTEwMSAxMTZEIDExQjk7CitBRkFGO0FGQUY7MTEwMSAxMTZEIDExQkE7QUZBRjsxMTAxIDExNkQgMTFCQTsKK0FGQjA7QUZCMDsxMTAxIDExNkQgMTFCQjtBRkIwOzExMDEgMTE2RCAxMUJCOworQUZCMTtBRkIxOzExMDEgMTE2RCAxMUJDO0FGQjE7MTEwMSAxMTZEIDExQkM7CitBRkIyO0FGQjI7MTEwMSAxMTZEIDExQkQ7QUZCMjsxMTAxIDExNkQgMTFCRDsKK0FGQjM7QUZCMzsxMTAxIDExNkQgMTFCRTtBRkIzOzExMDEgMTE2RCAxMUJFOworQUZCNDtBRkI0OzExMDEgMTE2RCAxMUJGO0FGQjQ7MTEwMSAxMTZEIDExQkY7CitBRkI1O0FGQjU7MTEwMSAxMTZEIDExQzA7QUZCNTsxMTAxIDExNkQgMTFDMDsKK0FGQjY7QUZCNjsxMTAxIDExNkQgMTFDMTtBRkI2OzExMDEgMTE2RCAxMUMxOworQUZCNztBRkI3OzExMDEgMTE2RCAxMUMyO0FGQjc7MTEwMSAxMTZEIDExQzI7CitBRkI4O0FGQjg7MTEwMSAxMTZFO0FGQjg7MTEwMSAxMTZFOworQUZCOTtBRkI5OzExMDEgMTE2RSAxMUE4O0FGQjk7MTEwMSAxMTZFIDExQTg7CitBRkJBO0FGQkE7MTEwMSAxMTZFIDExQTk7QUZCQTsxMTAxIDExNkUgMTFBOTsKK0FGQkI7QUZCQjsxMTAxIDExNkUgMTFBQTtBRkJCOzExMDEgMTE2RSAxMUFBOworQUZCQztBRkJDOzExMDEgMTE2RSAxMUFCO0FGQkM7MTEwMSAxMTZFIDExQUI7CitBRkJEO0FGQkQ7MTEwMSAxMTZFIDExQUM7QUZCRDsxMTAxIDExNkUgMTFBQzsKK0FGQkU7QUZCRTsxMTAxIDExNkUgMTFBRDtBRkJFOzExMDEgMTE2RSAxMUFEOworQUZCRjtBRkJGOzExMDEgMTE2RSAxMUFFO0FGQkY7MTEwMSAxMTZFIDExQUU7CitBRkMwO0FGQzA7MTEwMSAxMTZFIDExQUY7QUZDMDsxMTAxIDExNkUgMTFBRjsKK0FGQzE7QUZDMTsxMTAxIDExNkUgMTFCMDtBRkMxOzExMDEgMTE2RSAxMUIwOworQUZDMjtBRkMyOzExMDEgMTE2RSAxMUIxO0FGQzI7MTEwMSAxMTZFIDExQjE7CitBRkMzO0FGQzM7MTEwMSAxMTZFIDExQjI7QUZDMzsxMTAxIDExNkUgMTFCMjsKK0FGQzQ7QUZDNDsxMTAxIDExNkUgMTFCMztBRkM0OzExMDEgMTE2RSAxMUIzOworQUZDNTtBRkM1OzExMDEgMTE2RSAxMUI0O0FGQzU7MTEwMSAxMTZFIDExQjQ7CitBRkM2O0FGQzY7MTEwMSAxMTZFIDExQjU7QUZDNjsxMTAxIDExNkUgMTFCNTsKK0FGQzc7QUZDNzsxMTAxIDExNkUgMTFCNjtBRkM3OzExMDEgMTE2RSAxMUI2OworQUZDODtBRkM4OzExMDEgMTE2RSAxMUI3O0FGQzg7MTEwMSAxMTZFIDExQjc7CitBRkM5O0FGQzk7MTEwMSAxMTZFIDExQjg7QUZDOTsxMTAxIDExNkUgMTFCODsKK0FGQ0E7QUZDQTsxMTAxIDExNkUgMTFCOTtBRkNBOzExMDEgMTE2RSAxMUI5OworQUZDQjtBRkNCOzExMDEgMTE2RSAxMUJBO0FGQ0I7MTEwMSAxMTZFIDExQkE7CitBRkNDO0FGQ0M7MTEwMSAxMTZFIDExQkI7QUZDQzsxMTAxIDExNkUgMTFCQjsKK0FGQ0Q7QUZDRDsxMTAxIDExNkUgMTFCQztBRkNEOzExMDEgMTE2RSAxMUJDOworQUZDRTtBRkNFOzExMDEgMTE2RSAxMUJEO0FGQ0U7MTEwMSAxMTZFIDExQkQ7CitBRkNGO0FGQ0Y7MTEwMSAxMTZFIDExQkU7QUZDRjsxMTAxIDExNkUgMTFCRTsKK0FGRDA7QUZEMDsxMTAxIDExNkUgMTFCRjtBRkQwOzExMDEgMTE2RSAxMUJGOworQUZEMTtBRkQxOzExMDEgMTE2RSAxMUMwO0FGRDE7MTEwMSAxMTZFIDExQzA7CitBRkQyO0FGRDI7MTEwMSAxMTZFIDExQzE7QUZEMjsxMTAxIDExNkUgMTFDMTsKK0FGRDM7QUZEMzsxMTAxIDExNkUgMTFDMjtBRkQzOzExMDEgMTE2RSAxMUMyOworQUZENDtBRkQ0OzExMDEgMTE2RjtBRkQ0OzExMDEgMTE2RjsKK0FGRDU7QUZENTsxMTAxIDExNkYgMTFBODtBRkQ1OzExMDEgMTE2RiAxMUE4OworQUZENjtBRkQ2OzExMDEgMTE2RiAxMUE5O0FGRDY7MTEwMSAxMTZGIDExQTk7CitBRkQ3O0FGRDc7MTEwMSAxMTZGIDExQUE7QUZENzsxMTAxIDExNkYgMTFBQTsKK0FGRDg7QUZEODsxMTAxIDExNkYgMTFBQjtBRkQ4OzExMDEgMTE2RiAxMUFCOworQUZEOTtBRkQ5OzExMDEgMTE2RiAxMUFDO0FGRDk7MTEwMSAxMTZGIDExQUM7CitBRkRBO0FGREE7MTEwMSAxMTZGIDExQUQ7QUZEQTsxMTAxIDExNkYgMTFBRDsKK0FGREI7QUZEQjsxMTAxIDExNkYgMTFBRTtBRkRCOzExMDEgMTE2RiAxMUFFOworQUZEQztBRkRDOzExMDEgMTE2RiAxMUFGO0FGREM7MTEwMSAxMTZGIDExQUY7CitBRkREO0FGREQ7MTEwMSAxMTZGIDExQjA7QUZERDsxMTAxIDExNkYgMTFCMDsKK0FGREU7QUZERTsxMTAxIDExNkYgMTFCMTtBRkRFOzExMDEgMTE2RiAxMUIxOworQUZERjtBRkRGOzExMDEgMTE2RiAxMUIyO0FGREY7MTEwMSAxMTZGIDExQjI7CitBRkUwO0FGRTA7MTEwMSAxMTZGIDExQjM7QUZFMDsxMTAxIDExNkYgMTFCMzsKK0FGRTE7QUZFMTsxMTAxIDExNkYgMTFCNDtBRkUxOzExMDEgMTE2RiAxMUI0OworQUZFMjtBRkUyOzExMDEgMTE2RiAxMUI1O0FGRTI7MTEwMSAxMTZGIDExQjU7CitBRkUzO0FGRTM7MTEwMSAxMTZGIDExQjY7QUZFMzsxMTAxIDExNkYgMTFCNjsKK0FGRTQ7QUZFNDsxMTAxIDExNkYgMTFCNztBRkU0OzExMDEgMTE2RiAxMUI3OworQUZFNTtBRkU1OzExMDEgMTE2RiAxMUI4O0FGRTU7MTEwMSAxMTZGIDExQjg7CitBRkU2O0FGRTY7MTEwMSAxMTZGIDExQjk7QUZFNjsxMTAxIDExNkYgMTFCOTsKK0FGRTc7QUZFNzsxMTAxIDExNkYgMTFCQTtBRkU3OzExMDEgMTE2RiAxMUJBOworQUZFODtBRkU4OzExMDEgMTE2RiAxMUJCO0FGRTg7MTEwMSAxMTZGIDExQkI7CitBRkU5O0FGRTk7MTEwMSAxMTZGIDExQkM7QUZFOTsxMTAxIDExNkYgMTFCQzsKK0FGRUE7QUZFQTsxMTAxIDExNkYgMTFCRDtBRkVBOzExMDEgMTE2RiAxMUJEOworQUZFQjtBRkVCOzExMDEgMTE2RiAxMUJFO0FGRUI7MTEwMSAxMTZGIDExQkU7CitBRkVDO0FGRUM7MTEwMSAxMTZGIDExQkY7QUZFQzsxMTAxIDExNkYgMTFCRjsKK0FGRUQ7QUZFRDsxMTAxIDExNkYgMTFDMDtBRkVEOzExMDEgMTE2RiAxMUMwOworQUZFRTtBRkVFOzExMDEgMTE2RiAxMUMxO0FGRUU7MTEwMSAxMTZGIDExQzE7CitBRkVGO0FGRUY7MTEwMSAxMTZGIDExQzI7QUZFRjsxMTAxIDExNkYgMTFDMjsKK0FGRjA7QUZGMDsxMTAxIDExNzA7QUZGMDsxMTAxIDExNzA7CitBRkYxO0FGRjE7MTEwMSAxMTcwIDExQTg7QUZGMTsxMTAxIDExNzAgMTFBODsKK0FGRjI7QUZGMjsxMTAxIDExNzAgMTFBOTtBRkYyOzExMDEgMTE3MCAxMUE5OworQUZGMztBRkYzOzExMDEgMTE3MCAxMUFBO0FGRjM7MTEwMSAxMTcwIDExQUE7CitBRkY0O0FGRjQ7MTEwMSAxMTcwIDExQUI7QUZGNDsxMTAxIDExNzAgMTFBQjsKK0FGRjU7QUZGNTsxMTAxIDExNzAgMTFBQztBRkY1OzExMDEgMTE3MCAxMUFDOworQUZGNjtBRkY2OzExMDEgMTE3MCAxMUFEO0FGRjY7MTEwMSAxMTcwIDExQUQ7CitBRkY3O0FGRjc7MTEwMSAxMTcwIDExQUU7QUZGNzsxMTAxIDExNzAgMTFBRTsKK0FGRjg7QUZGODsxMTAxIDExNzAgMTFBRjtBRkY4OzExMDEgMTE3MCAxMUFGOworQUZGOTtBRkY5OzExMDEgMTE3MCAxMUIwO0FGRjk7MTEwMSAxMTcwIDExQjA7CitBRkZBO0FGRkE7MTEwMSAxMTcwIDExQjE7QUZGQTsxMTAxIDExNzAgMTFCMTsKK0FGRkI7QUZGQjsxMTAxIDExNzAgMTFCMjtBRkZCOzExMDEgMTE3MCAxMUIyOworQUZGQztBRkZDOzExMDEgMTE3MCAxMUIzO0FGRkM7MTEwMSAxMTcwIDExQjM7CitBRkZEO0FGRkQ7MTEwMSAxMTcwIDExQjQ7QUZGRDsxMTAxIDExNzAgMTFCNDsKK0FGRkU7QUZGRTsxMTAxIDExNzAgMTFCNTtBRkZFOzExMDEgMTE3MCAxMUI1OworQUZGRjtBRkZGOzExMDEgMTE3MCAxMUI2O0FGRkY7MTEwMSAxMTcwIDExQjY7CitCMDAwO0IwMDA7MTEwMSAxMTcwIDExQjc7QjAwMDsxMTAxIDExNzAgMTFCNzsKK0IwMDE7QjAwMTsxMTAxIDExNzAgMTFCODtCMDAxOzExMDEgMTE3MCAxMUI4OworQjAwMjtCMDAyOzExMDEgMTE3MCAxMUI5O0IwMDI7MTEwMSAxMTcwIDExQjk7CitCMDAzO0IwMDM7MTEwMSAxMTcwIDExQkE7QjAwMzsxMTAxIDExNzAgMTFCQTsKK0IwMDQ7QjAwNDsxMTAxIDExNzAgMTFCQjtCMDA0OzExMDEgMTE3MCAxMUJCOworQjAwNTtCMDA1OzExMDEgMTE3MCAxMUJDO0IwMDU7MTEwMSAxMTcwIDExQkM7CitCMDA2O0IwMDY7MTEwMSAxMTcwIDExQkQ7QjAwNjsxMTAxIDExNzAgMTFCRDsKK0IwMDc7QjAwNzsxMTAxIDExNzAgMTFCRTtCMDA3OzExMDEgMTE3MCAxMUJFOworQjAwODtCMDA4OzExMDEgMTE3MCAxMUJGO0IwMDg7MTEwMSAxMTcwIDExQkY7CitCMDA5O0IwMDk7MTEwMSAxMTcwIDExQzA7QjAwOTsxMTAxIDExNzAgMTFDMDsKK0IwMEE7QjAwQTsxMTAxIDExNzAgMTFDMTtCMDBBOzExMDEgMTE3MCAxMUMxOworQjAwQjtCMDBCOzExMDEgMTE3MCAxMUMyO0IwMEI7MTEwMSAxMTcwIDExQzI7CitCMDBDO0IwMEM7MTEwMSAxMTcxO0IwMEM7MTEwMSAxMTcxOworQjAwRDtCMDBEOzExMDEgMTE3MSAxMUE4O0IwMEQ7MTEwMSAxMTcxIDExQTg7CitCMDBFO0IwMEU7MTEwMSAxMTcxIDExQTk7QjAwRTsxMTAxIDExNzEgMTFBOTsKK0IwMEY7QjAwRjsxMTAxIDExNzEgMTFBQTtCMDBGOzExMDEgMTE3MSAxMUFBOworQjAxMDtCMDEwOzExMDEgMTE3MSAxMUFCO0IwMTA7MTEwMSAxMTcxIDExQUI7CitCMDExO0IwMTE7MTEwMSAxMTcxIDExQUM7QjAxMTsxMTAxIDExNzEgMTFBQzsKK0IwMTI7QjAxMjsxMTAxIDExNzEgMTFBRDtCMDEyOzExMDEgMTE3MSAxMUFEOworQjAxMztCMDEzOzExMDEgMTE3MSAxMUFFO0IwMTM7MTEwMSAxMTcxIDExQUU7CitCMDE0O0IwMTQ7MTEwMSAxMTcxIDExQUY7QjAxNDsxMTAxIDExNzEgMTFBRjsKK0IwMTU7QjAxNTsxMTAxIDExNzEgMTFCMDtCMDE1OzExMDEgMTE3MSAxMUIwOworQjAxNjtCMDE2OzExMDEgMTE3MSAxMUIxO0IwMTY7MTEwMSAxMTcxIDExQjE7CitCMDE3O0IwMTc7MTEwMSAxMTcxIDExQjI7QjAxNzsxMTAxIDExNzEgMTFCMjsKK0IwMTg7QjAxODsxMTAxIDExNzEgMTFCMztCMDE4OzExMDEgMTE3MSAxMUIzOworQjAxOTtCMDE5OzExMDEgMTE3MSAxMUI0O0IwMTk7MTEwMSAxMTcxIDExQjQ7CitCMDFBO0IwMUE7MTEwMSAxMTcxIDExQjU7QjAxQTsxMTAxIDExNzEgMTFCNTsKK0IwMUI7QjAxQjsxMTAxIDExNzEgMTFCNjtCMDFCOzExMDEgMTE3MSAxMUI2OworQjAxQztCMDFDOzExMDEgMTE3MSAxMUI3O0IwMUM7MTEwMSAxMTcxIDExQjc7CitCMDFEO0IwMUQ7MTEwMSAxMTcxIDExQjg7QjAxRDsxMTAxIDExNzEgMTFCODsKK0IwMUU7QjAxRTsxMTAxIDExNzEgMTFCOTtCMDFFOzExMDEgMTE3MSAxMUI5OworQjAxRjtCMDFGOzExMDEgMTE3MSAxMUJBO0IwMUY7MTEwMSAxMTcxIDExQkE7CitCMDIwO0IwMjA7MTEwMSAxMTcxIDExQkI7QjAyMDsxMTAxIDExNzEgMTFCQjsKK0IwMjE7QjAyMTsxMTAxIDExNzEgMTFCQztCMDIxOzExMDEgMTE3MSAxMUJDOworQjAyMjtCMDIyOzExMDEgMTE3MSAxMUJEO0IwMjI7MTEwMSAxMTcxIDExQkQ7CitCMDIzO0IwMjM7MTEwMSAxMTcxIDExQkU7QjAyMzsxMTAxIDExNzEgMTFCRTsKK0IwMjQ7QjAyNDsxMTAxIDExNzEgMTFCRjtCMDI0OzExMDEgMTE3MSAxMUJGOworQjAyNTtCMDI1OzExMDEgMTE3MSAxMUMwO0IwMjU7MTEwMSAxMTcxIDExQzA7CitCMDI2O0IwMjY7MTEwMSAxMTcxIDExQzE7QjAyNjsxMTAxIDExNzEgMTFDMTsKK0IwMjc7QjAyNzsxMTAxIDExNzEgMTFDMjtCMDI3OzExMDEgMTE3MSAxMUMyOworQjAyODtCMDI4OzExMDEgMTE3MjtCMDI4OzExMDEgMTE3MjsKK0IwMjk7QjAyOTsxMTAxIDExNzIgMTFBODtCMDI5OzExMDEgMTE3MiAxMUE4OworQjAyQTtCMDJBOzExMDEgMTE3MiAxMUE5O0IwMkE7MTEwMSAxMTcyIDExQTk7CitCMDJCO0IwMkI7MTEwMSAxMTcyIDExQUE7QjAyQjsxMTAxIDExNzIgMTFBQTsKK0IwMkM7QjAyQzsxMTAxIDExNzIgMTFBQjtCMDJDOzExMDEgMTE3MiAxMUFCOworQjAyRDtCMDJEOzExMDEgMTE3MiAxMUFDO0IwMkQ7MTEwMSAxMTcyIDExQUM7CitCMDJFO0IwMkU7MTEwMSAxMTcyIDExQUQ7QjAyRTsxMTAxIDExNzIgMTFBRDsKK0IwMkY7QjAyRjsxMTAxIDExNzIgMTFBRTtCMDJGOzExMDEgMTE3MiAxMUFFOworQjAzMDtCMDMwOzExMDEgMTE3MiAxMUFGO0IwMzA7MTEwMSAxMTcyIDExQUY7CitCMDMxO0IwMzE7MTEwMSAxMTcyIDExQjA7QjAzMTsxMTAxIDExNzIgMTFCMDsKK0IwMzI7QjAzMjsxMTAxIDExNzIgMTFCMTtCMDMyOzExMDEgMTE3MiAxMUIxOworQjAzMztCMDMzOzExMDEgMTE3MiAxMUIyO0IwMzM7MTEwMSAxMTcyIDExQjI7CitCMDM0O0IwMzQ7MTEwMSAxMTcyIDExQjM7QjAzNDsxMTAxIDExNzIgMTFCMzsKK0IwMzU7QjAzNTsxMTAxIDExNzIgMTFCNDtCMDM1OzExMDEgMTE3MiAxMUI0OworQjAzNjtCMDM2OzExMDEgMTE3MiAxMUI1O0IwMzY7MTEwMSAxMTcyIDExQjU7CitCMDM3O0IwMzc7MTEwMSAxMTcyIDExQjY7QjAzNzsxMTAxIDExNzIgMTFCNjsKK0IwMzg7QjAzODsxMTAxIDExNzIgMTFCNztCMDM4OzExMDEgMTE3MiAxMUI3OworQjAzOTtCMDM5OzExMDEgMTE3MiAxMUI4O0IwMzk7MTEwMSAxMTcyIDExQjg7CitCMDNBO0IwM0E7MTEwMSAxMTcyIDExQjk7QjAzQTsxMTAxIDExNzIgMTFCOTsKK0IwM0I7QjAzQjsxMTAxIDExNzIgMTFCQTtCMDNCOzExMDEgMTE3MiAxMUJBOworQjAzQztCMDNDOzExMDEgMTE3MiAxMUJCO0IwM0M7MTEwMSAxMTcyIDExQkI7CitCMDNEO0IwM0Q7MTEwMSAxMTcyIDExQkM7QjAzRDsxMTAxIDExNzIgMTFCQzsKK0IwM0U7QjAzRTsxMTAxIDExNzIgMTFCRDtCMDNFOzExMDEgMTE3MiAxMUJEOworQjAzRjtCMDNGOzExMDEgMTE3MiAxMUJFO0IwM0Y7MTEwMSAxMTcyIDExQkU7CitCMDQwO0IwNDA7MTEwMSAxMTcyIDExQkY7QjA0MDsxMTAxIDExNzIgMTFCRjsKK0IwNDE7QjA0MTsxMTAxIDExNzIgMTFDMDtCMDQxOzExMDEgMTE3MiAxMUMwOworQjA0MjtCMDQyOzExMDEgMTE3MiAxMUMxO0IwNDI7MTEwMSAxMTcyIDExQzE7CitCMDQzO0IwNDM7MTEwMSAxMTcyIDExQzI7QjA0MzsxMTAxIDExNzIgMTFDMjsKK0IwNDQ7QjA0NDsxMTAxIDExNzM7QjA0NDsxMTAxIDExNzM7CitCMDQ1O0IwNDU7MTEwMSAxMTczIDExQTg7QjA0NTsxMTAxIDExNzMgMTFBODsKK0IwNDY7QjA0NjsxMTAxIDExNzMgMTFBOTtCMDQ2OzExMDEgMTE3MyAxMUE5OworQjA0NztCMDQ3OzExMDEgMTE3MyAxMUFBO0IwNDc7MTEwMSAxMTczIDExQUE7CitCMDQ4O0IwNDg7MTEwMSAxMTczIDExQUI7QjA0ODsxMTAxIDExNzMgMTFBQjsKK0IwNDk7QjA0OTsxMTAxIDExNzMgMTFBQztCMDQ5OzExMDEgMTE3MyAxMUFDOworQjA0QTtCMDRBOzExMDEgMTE3MyAxMUFEO0IwNEE7MTEwMSAxMTczIDExQUQ7CitCMDRCO0IwNEI7MTEwMSAxMTczIDExQUU7QjA0QjsxMTAxIDExNzMgMTFBRTsKK0IwNEM7QjA0QzsxMTAxIDExNzMgMTFBRjtCMDRDOzExMDEgMTE3MyAxMUFGOworQjA0RDtCMDREOzExMDEgMTE3MyAxMUIwO0IwNEQ7MTEwMSAxMTczIDExQjA7CitCMDRFO0IwNEU7MTEwMSAxMTczIDExQjE7QjA0RTsxMTAxIDExNzMgMTFCMTsKK0IwNEY7QjA0RjsxMTAxIDExNzMgMTFCMjtCMDRGOzExMDEgMTE3MyAxMUIyOworQjA1MDtCMDUwOzExMDEgMTE3MyAxMUIzO0IwNTA7MTEwMSAxMTczIDExQjM7CitCMDUxO0IwNTE7MTEwMSAxMTczIDExQjQ7QjA1MTsxMTAxIDExNzMgMTFCNDsKK0IwNTI7QjA1MjsxMTAxIDExNzMgMTFCNTtCMDUyOzExMDEgMTE3MyAxMUI1OworQjA1MztCMDUzOzExMDEgMTE3MyAxMUI2O0IwNTM7MTEwMSAxMTczIDExQjY7CitCMDU0O0IwNTQ7MTEwMSAxMTczIDExQjc7QjA1NDsxMTAxIDExNzMgMTFCNzsKK0IwNTU7QjA1NTsxMTAxIDExNzMgMTFCODtCMDU1OzExMDEgMTE3MyAxMUI4OworQjA1NjtCMDU2OzExMDEgMTE3MyAxMUI5O0IwNTY7MTEwMSAxMTczIDExQjk7CitCMDU3O0IwNTc7MTEwMSAxMTczIDExQkE7QjA1NzsxMTAxIDExNzMgMTFCQTsKK0IwNTg7QjA1ODsxMTAxIDExNzMgMTFCQjtCMDU4OzExMDEgMTE3MyAxMUJCOworQjA1OTtCMDU5OzExMDEgMTE3MyAxMUJDO0IwNTk7MTEwMSAxMTczIDExQkM7CitCMDVBO0IwNUE7MTEwMSAxMTczIDExQkQ7QjA1QTsxMTAxIDExNzMgMTFCRDsKK0IwNUI7QjA1QjsxMTAxIDExNzMgMTFCRTtCMDVCOzExMDEgMTE3MyAxMUJFOworQjA1QztCMDVDOzExMDEgMTE3MyAxMUJGO0IwNUM7MTEwMSAxMTczIDExQkY7CitCMDVEO0IwNUQ7MTEwMSAxMTczIDExQzA7QjA1RDsxMTAxIDExNzMgMTFDMDsKK0IwNUU7QjA1RTsxMTAxIDExNzMgMTFDMTtCMDVFOzExMDEgMTE3MyAxMUMxOworQjA1RjtCMDVGOzExMDEgMTE3MyAxMUMyO0IwNUY7MTEwMSAxMTczIDExQzI7CitCMDYwO0IwNjA7MTEwMSAxMTc0O0IwNjA7MTEwMSAxMTc0OworQjA2MTtCMDYxOzExMDEgMTE3NCAxMUE4O0IwNjE7MTEwMSAxMTc0IDExQTg7CitCMDYyO0IwNjI7MTEwMSAxMTc0IDExQTk7QjA2MjsxMTAxIDExNzQgMTFBOTsKK0IwNjM7QjA2MzsxMTAxIDExNzQgMTFBQTtCMDYzOzExMDEgMTE3NCAxMUFBOworQjA2NDtCMDY0OzExMDEgMTE3NCAxMUFCO0IwNjQ7MTEwMSAxMTc0IDExQUI7CitCMDY1O0IwNjU7MTEwMSAxMTc0IDExQUM7QjA2NTsxMTAxIDExNzQgMTFBQzsKK0IwNjY7QjA2NjsxMTAxIDExNzQgMTFBRDtCMDY2OzExMDEgMTE3NCAxMUFEOworQjA2NztCMDY3OzExMDEgMTE3NCAxMUFFO0IwNjc7MTEwMSAxMTc0IDExQUU7CitCMDY4O0IwNjg7MTEwMSAxMTc0IDExQUY7QjA2ODsxMTAxIDExNzQgMTFBRjsKK0IwNjk7QjA2OTsxMTAxIDExNzQgMTFCMDtCMDY5OzExMDEgMTE3NCAxMUIwOworQjA2QTtCMDZBOzExMDEgMTE3NCAxMUIxO0IwNkE7MTEwMSAxMTc0IDExQjE7CitCMDZCO0IwNkI7MTEwMSAxMTc0IDExQjI7QjA2QjsxMTAxIDExNzQgMTFCMjsKK0IwNkM7QjA2QzsxMTAxIDExNzQgMTFCMztCMDZDOzExMDEgMTE3NCAxMUIzOworQjA2RDtCMDZEOzExMDEgMTE3NCAxMUI0O0IwNkQ7MTEwMSAxMTc0IDExQjQ7CitCMDZFO0IwNkU7MTEwMSAxMTc0IDExQjU7QjA2RTsxMTAxIDExNzQgMTFCNTsKK0IwNkY7QjA2RjsxMTAxIDExNzQgMTFCNjtCMDZGOzExMDEgMTE3NCAxMUI2OworQjA3MDtCMDcwOzExMDEgMTE3NCAxMUI3O0IwNzA7MTEwMSAxMTc0IDExQjc7CitCMDcxO0IwNzE7MTEwMSAxMTc0IDExQjg7QjA3MTsxMTAxIDExNzQgMTFCODsKK0IwNzI7QjA3MjsxMTAxIDExNzQgMTFCOTtCMDcyOzExMDEgMTE3NCAxMUI5OworQjA3MztCMDczOzExMDEgMTE3NCAxMUJBO0IwNzM7MTEwMSAxMTc0IDExQkE7CitCMDc0O0IwNzQ7MTEwMSAxMTc0IDExQkI7QjA3NDsxMTAxIDExNzQgMTFCQjsKK0IwNzU7QjA3NTsxMTAxIDExNzQgMTFCQztCMDc1OzExMDEgMTE3NCAxMUJDOworQjA3NjtCMDc2OzExMDEgMTE3NCAxMUJEO0IwNzY7MTEwMSAxMTc0IDExQkQ7CitCMDc3O0IwNzc7MTEwMSAxMTc0IDExQkU7QjA3NzsxMTAxIDExNzQgMTFCRTsKK0IwNzg7QjA3ODsxMTAxIDExNzQgMTFCRjtCMDc4OzExMDEgMTE3NCAxMUJGOworQjA3OTtCMDc5OzExMDEgMTE3NCAxMUMwO0IwNzk7MTEwMSAxMTc0IDExQzA7CitCMDdBO0IwN0E7MTEwMSAxMTc0IDExQzE7QjA3QTsxMTAxIDExNzQgMTFDMTsKK0IwN0I7QjA3QjsxMTAxIDExNzQgMTFDMjtCMDdCOzExMDEgMTE3NCAxMUMyOworQjA3QztCMDdDOzExMDEgMTE3NTtCMDdDOzExMDEgMTE3NTsKK0IwN0Q7QjA3RDsxMTAxIDExNzUgMTFBODtCMDdEOzExMDEgMTE3NSAxMUE4OworQjA3RTtCMDdFOzExMDEgMTE3NSAxMUE5O0IwN0U7MTEwMSAxMTc1IDExQTk7CitCMDdGO0IwN0Y7MTEwMSAxMTc1IDExQUE7QjA3RjsxMTAxIDExNzUgMTFBQTsKK0IwODA7QjA4MDsxMTAxIDExNzUgMTFBQjtCMDgwOzExMDEgMTE3NSAxMUFCOworQjA4MTtCMDgxOzExMDEgMTE3NSAxMUFDO0IwODE7MTEwMSAxMTc1IDExQUM7CitCMDgyO0IwODI7MTEwMSAxMTc1IDExQUQ7QjA4MjsxMTAxIDExNzUgMTFBRDsKK0IwODM7QjA4MzsxMTAxIDExNzUgMTFBRTtCMDgzOzExMDEgMTE3NSAxMUFFOworQjA4NDtCMDg0OzExMDEgMTE3NSAxMUFGO0IwODQ7MTEwMSAxMTc1IDExQUY7CitCMDg1O0IwODU7MTEwMSAxMTc1IDExQjA7QjA4NTsxMTAxIDExNzUgMTFCMDsKK0IwODY7QjA4NjsxMTAxIDExNzUgMTFCMTtCMDg2OzExMDEgMTE3NSAxMUIxOworQjA4NztCMDg3OzExMDEgMTE3NSAxMUIyO0IwODc7MTEwMSAxMTc1IDExQjI7CitCMDg4O0IwODg7MTEwMSAxMTc1IDExQjM7QjA4ODsxMTAxIDExNzUgMTFCMzsKK0IwODk7QjA4OTsxMTAxIDExNzUgMTFCNDtCMDg5OzExMDEgMTE3NSAxMUI0OworQjA4QTtCMDhBOzExMDEgMTE3NSAxMUI1O0IwOEE7MTEwMSAxMTc1IDExQjU7CitCMDhCO0IwOEI7MTEwMSAxMTc1IDExQjY7QjA4QjsxMTAxIDExNzUgMTFCNjsKK0IwOEM7QjA4QzsxMTAxIDExNzUgMTFCNztCMDhDOzExMDEgMTE3NSAxMUI3OworQjA4RDtCMDhEOzExMDEgMTE3NSAxMUI4O0IwOEQ7MTEwMSAxMTc1IDExQjg7CitCMDhFO0IwOEU7MTEwMSAxMTc1IDExQjk7QjA4RTsxMTAxIDExNzUgMTFCOTsKK0IwOEY7QjA4RjsxMTAxIDExNzUgMTFCQTtCMDhGOzExMDEgMTE3NSAxMUJBOworQjA5MDtCMDkwOzExMDEgMTE3NSAxMUJCO0IwOTA7MTEwMSAxMTc1IDExQkI7CitCMDkxO0IwOTE7MTEwMSAxMTc1IDExQkM7QjA5MTsxMTAxIDExNzUgMTFCQzsKK0IwOTI7QjA5MjsxMTAxIDExNzUgMTFCRDtCMDkyOzExMDEgMTE3NSAxMUJEOworQjA5MztCMDkzOzExMDEgMTE3NSAxMUJFO0IwOTM7MTEwMSAxMTc1IDExQkU7CitCMDk0O0IwOTQ7MTEwMSAxMTc1IDExQkY7QjA5NDsxMTAxIDExNzUgMTFCRjsKK0IwOTU7QjA5NTsxMTAxIDExNzUgMTFDMDtCMDk1OzExMDEgMTE3NSAxMUMwOworQjA5NjtCMDk2OzExMDEgMTE3NSAxMUMxO0IwOTY7MTEwMSAxMTc1IDExQzE7CitCMDk3O0IwOTc7MTEwMSAxMTc1IDExQzI7QjA5NzsxMTAxIDExNzUgMTFDMjsKK0IwOTg7QjA5ODsxMTAyIDExNjE7QjA5ODsxMTAyIDExNjE7CitCMDk5O0IwOTk7MTEwMiAxMTYxIDExQTg7QjA5OTsxMTAyIDExNjEgMTFBODsKK0IwOUE7QjA5QTsxMTAyIDExNjEgMTFBOTtCMDlBOzExMDIgMTE2MSAxMUE5OworQjA5QjtCMDlCOzExMDIgMTE2MSAxMUFBO0IwOUI7MTEwMiAxMTYxIDExQUE7CitCMDlDO0IwOUM7MTEwMiAxMTYxIDExQUI7QjA5QzsxMTAyIDExNjEgMTFBQjsKK0IwOUQ7QjA5RDsxMTAyIDExNjEgMTFBQztCMDlEOzExMDIgMTE2MSAxMUFDOworQjA5RTtCMDlFOzExMDIgMTE2MSAxMUFEO0IwOUU7MTEwMiAxMTYxIDExQUQ7CitCMDlGO0IwOUY7MTEwMiAxMTYxIDExQUU7QjA5RjsxMTAyIDExNjEgMTFBRTsKK0IwQTA7QjBBMDsxMTAyIDExNjEgMTFBRjtCMEEwOzExMDIgMTE2MSAxMUFGOworQjBBMTtCMEExOzExMDIgMTE2MSAxMUIwO0IwQTE7MTEwMiAxMTYxIDExQjA7CitCMEEyO0IwQTI7MTEwMiAxMTYxIDExQjE7QjBBMjsxMTAyIDExNjEgMTFCMTsKK0IwQTM7QjBBMzsxMTAyIDExNjEgMTFCMjtCMEEzOzExMDIgMTE2MSAxMUIyOworQjBBNDtCMEE0OzExMDIgMTE2MSAxMUIzO0IwQTQ7MTEwMiAxMTYxIDExQjM7CitCMEE1O0IwQTU7MTEwMiAxMTYxIDExQjQ7QjBBNTsxMTAyIDExNjEgMTFCNDsKK0IwQTY7QjBBNjsxMTAyIDExNjEgMTFCNTtCMEE2OzExMDIgMTE2MSAxMUI1OworQjBBNztCMEE3OzExMDIgMTE2MSAxMUI2O0IwQTc7MTEwMiAxMTYxIDExQjY7CitCMEE4O0IwQTg7MTEwMiAxMTYxIDExQjc7QjBBODsxMTAyIDExNjEgMTFCNzsKK0IwQTk7QjBBOTsxMTAyIDExNjEgMTFCODtCMEE5OzExMDIgMTE2MSAxMUI4OworQjBBQTtCMEFBOzExMDIgMTE2MSAxMUI5O0IwQUE7MTEwMiAxMTYxIDExQjk7CitCMEFCO0IwQUI7MTEwMiAxMTYxIDExQkE7QjBBQjsxMTAyIDExNjEgMTFCQTsKK0IwQUM7QjBBQzsxMTAyIDExNjEgMTFCQjtCMEFDOzExMDIgMTE2MSAxMUJCOworQjBBRDtCMEFEOzExMDIgMTE2MSAxMUJDO0IwQUQ7MTEwMiAxMTYxIDExQkM7CitCMEFFO0IwQUU7MTEwMiAxMTYxIDExQkQ7QjBBRTsxMTAyIDExNjEgMTFCRDsKK0IwQUY7QjBBRjsxMTAyIDExNjEgMTFCRTtCMEFGOzExMDIgMTE2MSAxMUJFOworQjBCMDtCMEIwOzExMDIgMTE2MSAxMUJGO0IwQjA7MTEwMiAxMTYxIDExQkY7CitCMEIxO0IwQjE7MTEwMiAxMTYxIDExQzA7QjBCMTsxMTAyIDExNjEgMTFDMDsKK0IwQjI7QjBCMjsxMTAyIDExNjEgMTFDMTtCMEIyOzExMDIgMTE2MSAxMUMxOworQjBCMztCMEIzOzExMDIgMTE2MSAxMUMyO0IwQjM7MTEwMiAxMTYxIDExQzI7CitCMEI0O0IwQjQ7MTEwMiAxMTYyO0IwQjQ7MTEwMiAxMTYyOworQjBCNTtCMEI1OzExMDIgMTE2MiAxMUE4O0IwQjU7MTEwMiAxMTYyIDExQTg7CitCMEI2O0IwQjY7MTEwMiAxMTYyIDExQTk7QjBCNjsxMTAyIDExNjIgMTFBOTsKK0IwQjc7QjBCNzsxMTAyIDExNjIgMTFBQTtCMEI3OzExMDIgMTE2MiAxMUFBOworQjBCODtCMEI4OzExMDIgMTE2MiAxMUFCO0IwQjg7MTEwMiAxMTYyIDExQUI7CitCMEI5O0IwQjk7MTEwMiAxMTYyIDExQUM7QjBCOTsxMTAyIDExNjIgMTFBQzsKK0IwQkE7QjBCQTsxMTAyIDExNjIgMTFBRDtCMEJBOzExMDIgMTE2MiAxMUFEOworQjBCQjtCMEJCOzExMDIgMTE2MiAxMUFFO0IwQkI7MTEwMiAxMTYyIDExQUU7CitCMEJDO0IwQkM7MTEwMiAxMTYyIDExQUY7QjBCQzsxMTAyIDExNjIgMTFBRjsKK0IwQkQ7QjBCRDsxMTAyIDExNjIgMTFCMDtCMEJEOzExMDIgMTE2MiAxMUIwOworQjBCRTtCMEJFOzExMDIgMTE2MiAxMUIxO0IwQkU7MTEwMiAxMTYyIDExQjE7CitCMEJGO0IwQkY7MTEwMiAxMTYyIDExQjI7QjBCRjsxMTAyIDExNjIgMTFCMjsKK0IwQzA7QjBDMDsxMTAyIDExNjIgMTFCMztCMEMwOzExMDIgMTE2MiAxMUIzOworQjBDMTtCMEMxOzExMDIgMTE2MiAxMUI0O0IwQzE7MTEwMiAxMTYyIDExQjQ7CitCMEMyO0IwQzI7MTEwMiAxMTYyIDExQjU7QjBDMjsxMTAyIDExNjIgMTFCNTsKK0IwQzM7QjBDMzsxMTAyIDExNjIgMTFCNjtCMEMzOzExMDIgMTE2MiAxMUI2OworQjBDNDtCMEM0OzExMDIgMTE2MiAxMUI3O0IwQzQ7MTEwMiAxMTYyIDExQjc7CitCMEM1O0IwQzU7MTEwMiAxMTYyIDExQjg7QjBDNTsxMTAyIDExNjIgMTFCODsKK0IwQzY7QjBDNjsxMTAyIDExNjIgMTFCOTtCMEM2OzExMDIgMTE2MiAxMUI5OworQjBDNztCMEM3OzExMDIgMTE2MiAxMUJBO0IwQzc7MTEwMiAxMTYyIDExQkE7CitCMEM4O0IwQzg7MTEwMiAxMTYyIDExQkI7QjBDODsxMTAyIDExNjIgMTFCQjsKK0IwQzk7QjBDOTsxMTAyIDExNjIgMTFCQztCMEM5OzExMDIgMTE2MiAxMUJDOworQjBDQTtCMENBOzExMDIgMTE2MiAxMUJEO0IwQ0E7MTEwMiAxMTYyIDExQkQ7CitCMENCO0IwQ0I7MTEwMiAxMTYyIDExQkU7QjBDQjsxMTAyIDExNjIgMTFCRTsKK0IwQ0M7QjBDQzsxMTAyIDExNjIgMTFCRjtCMENDOzExMDIgMTE2MiAxMUJGOworQjBDRDtCMENEOzExMDIgMTE2MiAxMUMwO0IwQ0Q7MTEwMiAxMTYyIDExQzA7CitCMENFO0IwQ0U7MTEwMiAxMTYyIDExQzE7QjBDRTsxMTAyIDExNjIgMTFDMTsKK0IwQ0Y7QjBDRjsxMTAyIDExNjIgMTFDMjtCMENGOzExMDIgMTE2MiAxMUMyOworQjBEMDtCMEQwOzExMDIgMTE2MztCMEQwOzExMDIgMTE2MzsKK0IwRDE7QjBEMTsxMTAyIDExNjMgMTFBODtCMEQxOzExMDIgMTE2MyAxMUE4OworQjBEMjtCMEQyOzExMDIgMTE2MyAxMUE5O0IwRDI7MTEwMiAxMTYzIDExQTk7CitCMEQzO0IwRDM7MTEwMiAxMTYzIDExQUE7QjBEMzsxMTAyIDExNjMgMTFBQTsKK0IwRDQ7QjBENDsxMTAyIDExNjMgMTFBQjtCMEQ0OzExMDIgMTE2MyAxMUFCOworQjBENTtCMEQ1OzExMDIgMTE2MyAxMUFDO0IwRDU7MTEwMiAxMTYzIDExQUM7CitCMEQ2O0IwRDY7MTEwMiAxMTYzIDExQUQ7QjBENjsxMTAyIDExNjMgMTFBRDsKK0IwRDc7QjBENzsxMTAyIDExNjMgMTFBRTtCMEQ3OzExMDIgMTE2MyAxMUFFOworQjBEODtCMEQ4OzExMDIgMTE2MyAxMUFGO0IwRDg7MTEwMiAxMTYzIDExQUY7CitCMEQ5O0IwRDk7MTEwMiAxMTYzIDExQjA7QjBEOTsxMTAyIDExNjMgMTFCMDsKK0IwREE7QjBEQTsxMTAyIDExNjMgMTFCMTtCMERBOzExMDIgMTE2MyAxMUIxOworQjBEQjtCMERCOzExMDIgMTE2MyAxMUIyO0IwREI7MTEwMiAxMTYzIDExQjI7CitCMERDO0IwREM7MTEwMiAxMTYzIDExQjM7QjBEQzsxMTAyIDExNjMgMTFCMzsKK0IwREQ7QjBERDsxMTAyIDExNjMgMTFCNDtCMEREOzExMDIgMTE2MyAxMUI0OworQjBERTtCMERFOzExMDIgMTE2MyAxMUI1O0IwREU7MTEwMiAxMTYzIDExQjU7CitCMERGO0IwREY7MTEwMiAxMTYzIDExQjY7QjBERjsxMTAyIDExNjMgMTFCNjsKK0IwRTA7QjBFMDsxMTAyIDExNjMgMTFCNztCMEUwOzExMDIgMTE2MyAxMUI3OworQjBFMTtCMEUxOzExMDIgMTE2MyAxMUI4O0IwRTE7MTEwMiAxMTYzIDExQjg7CitCMEUyO0IwRTI7MTEwMiAxMTYzIDExQjk7QjBFMjsxMTAyIDExNjMgMTFCOTsKK0IwRTM7QjBFMzsxMTAyIDExNjMgMTFCQTtCMEUzOzExMDIgMTE2MyAxMUJBOworQjBFNDtCMEU0OzExMDIgMTE2MyAxMUJCO0IwRTQ7MTEwMiAxMTYzIDExQkI7CitCMEU1O0IwRTU7MTEwMiAxMTYzIDExQkM7QjBFNTsxMTAyIDExNjMgMTFCQzsKK0IwRTY7QjBFNjsxMTAyIDExNjMgMTFCRDtCMEU2OzExMDIgMTE2MyAxMUJEOworQjBFNztCMEU3OzExMDIgMTE2MyAxMUJFO0IwRTc7MTEwMiAxMTYzIDExQkU7CitCMEU4O0IwRTg7MTEwMiAxMTYzIDExQkY7QjBFODsxMTAyIDExNjMgMTFCRjsKK0IwRTk7QjBFOTsxMTAyIDExNjMgMTFDMDtCMEU5OzExMDIgMTE2MyAxMUMwOworQjBFQTtCMEVBOzExMDIgMTE2MyAxMUMxO0IwRUE7MTEwMiAxMTYzIDExQzE7CitCMEVCO0IwRUI7MTEwMiAxMTYzIDExQzI7QjBFQjsxMTAyIDExNjMgMTFDMjsKK0IwRUM7QjBFQzsxMTAyIDExNjQ7QjBFQzsxMTAyIDExNjQ7CitCMEVEO0IwRUQ7MTEwMiAxMTY0IDExQTg7QjBFRDsxMTAyIDExNjQgMTFBODsKK0IwRUU7QjBFRTsxMTAyIDExNjQgMTFBOTtCMEVFOzExMDIgMTE2NCAxMUE5OworQjBFRjtCMEVGOzExMDIgMTE2NCAxMUFBO0IwRUY7MTEwMiAxMTY0IDExQUE7CitCMEYwO0IwRjA7MTEwMiAxMTY0IDExQUI7QjBGMDsxMTAyIDExNjQgMTFBQjsKK0IwRjE7QjBGMTsxMTAyIDExNjQgMTFBQztCMEYxOzExMDIgMTE2NCAxMUFDOworQjBGMjtCMEYyOzExMDIgMTE2NCAxMUFEO0IwRjI7MTEwMiAxMTY0IDExQUQ7CitCMEYzO0IwRjM7MTEwMiAxMTY0IDExQUU7QjBGMzsxMTAyIDExNjQgMTFBRTsKK0IwRjQ7QjBGNDsxMTAyIDExNjQgMTFBRjtCMEY0OzExMDIgMTE2NCAxMUFGOworQjBGNTtCMEY1OzExMDIgMTE2NCAxMUIwO0IwRjU7MTEwMiAxMTY0IDExQjA7CitCMEY2O0IwRjY7MTEwMiAxMTY0IDExQjE7QjBGNjsxMTAyIDExNjQgMTFCMTsKK0IwRjc7QjBGNzsxMTAyIDExNjQgMTFCMjtCMEY3OzExMDIgMTE2NCAxMUIyOworQjBGODtCMEY4OzExMDIgMTE2NCAxMUIzO0IwRjg7MTEwMiAxMTY0IDExQjM7CitCMEY5O0IwRjk7MTEwMiAxMTY0IDExQjQ7QjBGOTsxMTAyIDExNjQgMTFCNDsKK0IwRkE7QjBGQTsxMTAyIDExNjQgMTFCNTtCMEZBOzExMDIgMTE2NCAxMUI1OworQjBGQjtCMEZCOzExMDIgMTE2NCAxMUI2O0IwRkI7MTEwMiAxMTY0IDExQjY7CitCMEZDO0IwRkM7MTEwMiAxMTY0IDExQjc7QjBGQzsxMTAyIDExNjQgMTFCNzsKK0IwRkQ7QjBGRDsxMTAyIDExNjQgMTFCODtCMEZEOzExMDIgMTE2NCAxMUI4OworQjBGRTtCMEZFOzExMDIgMTE2NCAxMUI5O0IwRkU7MTEwMiAxMTY0IDExQjk7CitCMEZGO0IwRkY7MTEwMiAxMTY0IDExQkE7QjBGRjsxMTAyIDExNjQgMTFCQTsKK0IxMDA7QjEwMDsxMTAyIDExNjQgMTFCQjtCMTAwOzExMDIgMTE2NCAxMUJCOworQjEwMTtCMTAxOzExMDIgMTE2NCAxMUJDO0IxMDE7MTEwMiAxMTY0IDExQkM7CitCMTAyO0IxMDI7MTEwMiAxMTY0IDExQkQ7QjEwMjsxMTAyIDExNjQgMTFCRDsKK0IxMDM7QjEwMzsxMTAyIDExNjQgMTFCRTtCMTAzOzExMDIgMTE2NCAxMUJFOworQjEwNDtCMTA0OzExMDIgMTE2NCAxMUJGO0IxMDQ7MTEwMiAxMTY0IDExQkY7CitCMTA1O0IxMDU7MTEwMiAxMTY0IDExQzA7QjEwNTsxMTAyIDExNjQgMTFDMDsKK0IxMDY7QjEwNjsxMTAyIDExNjQgMTFDMTtCMTA2OzExMDIgMTE2NCAxMUMxOworQjEwNztCMTA3OzExMDIgMTE2NCAxMUMyO0IxMDc7MTEwMiAxMTY0IDExQzI7CitCMTA4O0IxMDg7MTEwMiAxMTY1O0IxMDg7MTEwMiAxMTY1OworQjEwOTtCMTA5OzExMDIgMTE2NSAxMUE4O0IxMDk7MTEwMiAxMTY1IDExQTg7CitCMTBBO0IxMEE7MTEwMiAxMTY1IDExQTk7QjEwQTsxMTAyIDExNjUgMTFBOTsKK0IxMEI7QjEwQjsxMTAyIDExNjUgMTFBQTtCMTBCOzExMDIgMTE2NSAxMUFBOworQjEwQztCMTBDOzExMDIgMTE2NSAxMUFCO0IxMEM7MTEwMiAxMTY1IDExQUI7CitCMTBEO0IxMEQ7MTEwMiAxMTY1IDExQUM7QjEwRDsxMTAyIDExNjUgMTFBQzsKK0IxMEU7QjEwRTsxMTAyIDExNjUgMTFBRDtCMTBFOzExMDIgMTE2NSAxMUFEOworQjEwRjtCMTBGOzExMDIgMTE2NSAxMUFFO0IxMEY7MTEwMiAxMTY1IDExQUU7CitCMTEwO0IxMTA7MTEwMiAxMTY1IDExQUY7QjExMDsxMTAyIDExNjUgMTFBRjsKK0IxMTE7QjExMTsxMTAyIDExNjUgMTFCMDtCMTExOzExMDIgMTE2NSAxMUIwOworQjExMjtCMTEyOzExMDIgMTE2NSAxMUIxO0IxMTI7MTEwMiAxMTY1IDExQjE7CitCMTEzO0IxMTM7MTEwMiAxMTY1IDExQjI7QjExMzsxMTAyIDExNjUgMTFCMjsKK0IxMTQ7QjExNDsxMTAyIDExNjUgMTFCMztCMTE0OzExMDIgMTE2NSAxMUIzOworQjExNTtCMTE1OzExMDIgMTE2NSAxMUI0O0IxMTU7MTEwMiAxMTY1IDExQjQ7CitCMTE2O0IxMTY7MTEwMiAxMTY1IDExQjU7QjExNjsxMTAyIDExNjUgMTFCNTsKK0IxMTc7QjExNzsxMTAyIDExNjUgMTFCNjtCMTE3OzExMDIgMTE2NSAxMUI2OworQjExODtCMTE4OzExMDIgMTE2NSAxMUI3O0IxMTg7MTEwMiAxMTY1IDExQjc7CitCMTE5O0IxMTk7MTEwMiAxMTY1IDExQjg7QjExOTsxMTAyIDExNjUgMTFCODsKK0IxMUE7QjExQTsxMTAyIDExNjUgMTFCOTtCMTFBOzExMDIgMTE2NSAxMUI5OworQjExQjtCMTFCOzExMDIgMTE2NSAxMUJBO0IxMUI7MTEwMiAxMTY1IDExQkE7CitCMTFDO0IxMUM7MTEwMiAxMTY1IDExQkI7QjExQzsxMTAyIDExNjUgMTFCQjsKK0IxMUQ7QjExRDsxMTAyIDExNjUgMTFCQztCMTFEOzExMDIgMTE2NSAxMUJDOworQjExRTtCMTFFOzExMDIgMTE2NSAxMUJEO0IxMUU7MTEwMiAxMTY1IDExQkQ7CitCMTFGO0IxMUY7MTEwMiAxMTY1IDExQkU7QjExRjsxMTAyIDExNjUgMTFCRTsKK0IxMjA7QjEyMDsxMTAyIDExNjUgMTFCRjtCMTIwOzExMDIgMTE2NSAxMUJGOworQjEyMTtCMTIxOzExMDIgMTE2NSAxMUMwO0IxMjE7MTEwMiAxMTY1IDExQzA7CitCMTIyO0IxMjI7MTEwMiAxMTY1IDExQzE7QjEyMjsxMTAyIDExNjUgMTFDMTsKK0IxMjM7QjEyMzsxMTAyIDExNjUgMTFDMjtCMTIzOzExMDIgMTE2NSAxMUMyOworQjEyNDtCMTI0OzExMDIgMTE2NjtCMTI0OzExMDIgMTE2NjsKK0IxMjU7QjEyNTsxMTAyIDExNjYgMTFBODtCMTI1OzExMDIgMTE2NiAxMUE4OworQjEyNjtCMTI2OzExMDIgMTE2NiAxMUE5O0IxMjY7MTEwMiAxMTY2IDExQTk7CitCMTI3O0IxMjc7MTEwMiAxMTY2IDExQUE7QjEyNzsxMTAyIDExNjYgMTFBQTsKK0IxMjg7QjEyODsxMTAyIDExNjYgMTFBQjtCMTI4OzExMDIgMTE2NiAxMUFCOworQjEyOTtCMTI5OzExMDIgMTE2NiAxMUFDO0IxMjk7MTEwMiAxMTY2IDExQUM7CitCMTJBO0IxMkE7MTEwMiAxMTY2IDExQUQ7QjEyQTsxMTAyIDExNjYgMTFBRDsKK0IxMkI7QjEyQjsxMTAyIDExNjYgMTFBRTtCMTJCOzExMDIgMTE2NiAxMUFFOworQjEyQztCMTJDOzExMDIgMTE2NiAxMUFGO0IxMkM7MTEwMiAxMTY2IDExQUY7CitCMTJEO0IxMkQ7MTEwMiAxMTY2IDExQjA7QjEyRDsxMTAyIDExNjYgMTFCMDsKK0IxMkU7QjEyRTsxMTAyIDExNjYgMTFCMTtCMTJFOzExMDIgMTE2NiAxMUIxOworQjEyRjtCMTJGOzExMDIgMTE2NiAxMUIyO0IxMkY7MTEwMiAxMTY2IDExQjI7CitCMTMwO0IxMzA7MTEwMiAxMTY2IDExQjM7QjEzMDsxMTAyIDExNjYgMTFCMzsKK0IxMzE7QjEzMTsxMTAyIDExNjYgMTFCNDtCMTMxOzExMDIgMTE2NiAxMUI0OworQjEzMjtCMTMyOzExMDIgMTE2NiAxMUI1O0IxMzI7MTEwMiAxMTY2IDExQjU7CitCMTMzO0IxMzM7MTEwMiAxMTY2IDExQjY7QjEzMzsxMTAyIDExNjYgMTFCNjsKK0IxMzQ7QjEzNDsxMTAyIDExNjYgMTFCNztCMTM0OzExMDIgMTE2NiAxMUI3OworQjEzNTtCMTM1OzExMDIgMTE2NiAxMUI4O0IxMzU7MTEwMiAxMTY2IDExQjg7CitCMTM2O0IxMzY7MTEwMiAxMTY2IDExQjk7QjEzNjsxMTAyIDExNjYgMTFCOTsKK0IxMzc7QjEzNzsxMTAyIDExNjYgMTFCQTtCMTM3OzExMDIgMTE2NiAxMUJBOworQjEzODtCMTM4OzExMDIgMTE2NiAxMUJCO0IxMzg7MTEwMiAxMTY2IDExQkI7CitCMTM5O0IxMzk7MTEwMiAxMTY2IDExQkM7QjEzOTsxMTAyIDExNjYgMTFCQzsKK0IxM0E7QjEzQTsxMTAyIDExNjYgMTFCRDtCMTNBOzExMDIgMTE2NiAxMUJEOworQjEzQjtCMTNCOzExMDIgMTE2NiAxMUJFO0IxM0I7MTEwMiAxMTY2IDExQkU7CitCMTNDO0IxM0M7MTEwMiAxMTY2IDExQkY7QjEzQzsxMTAyIDExNjYgMTFCRjsKK0IxM0Q7QjEzRDsxMTAyIDExNjYgMTFDMDtCMTNEOzExMDIgMTE2NiAxMUMwOworQjEzRTtCMTNFOzExMDIgMTE2NiAxMUMxO0IxM0U7MTEwMiAxMTY2IDExQzE7CitCMTNGO0IxM0Y7MTEwMiAxMTY2IDExQzI7QjEzRjsxMTAyIDExNjYgMTFDMjsKK0IxNDA7QjE0MDsxMTAyIDExNjc7QjE0MDsxMTAyIDExNjc7CitCMTQxO0IxNDE7MTEwMiAxMTY3IDExQTg7QjE0MTsxMTAyIDExNjcgMTFBODsKK0IxNDI7QjE0MjsxMTAyIDExNjcgMTFBOTtCMTQyOzExMDIgMTE2NyAxMUE5OworQjE0MztCMTQzOzExMDIgMTE2NyAxMUFBO0IxNDM7MTEwMiAxMTY3IDExQUE7CitCMTQ0O0IxNDQ7MTEwMiAxMTY3IDExQUI7QjE0NDsxMTAyIDExNjcgMTFBQjsKK0IxNDU7QjE0NTsxMTAyIDExNjcgMTFBQztCMTQ1OzExMDIgMTE2NyAxMUFDOworQjE0NjtCMTQ2OzExMDIgMTE2NyAxMUFEO0IxNDY7MTEwMiAxMTY3IDExQUQ7CitCMTQ3O0IxNDc7MTEwMiAxMTY3IDExQUU7QjE0NzsxMTAyIDExNjcgMTFBRTsKK0IxNDg7QjE0ODsxMTAyIDExNjcgMTFBRjtCMTQ4OzExMDIgMTE2NyAxMUFGOworQjE0OTtCMTQ5OzExMDIgMTE2NyAxMUIwO0IxNDk7MTEwMiAxMTY3IDExQjA7CitCMTRBO0IxNEE7MTEwMiAxMTY3IDExQjE7QjE0QTsxMTAyIDExNjcgMTFCMTsKK0IxNEI7QjE0QjsxMTAyIDExNjcgMTFCMjtCMTRCOzExMDIgMTE2NyAxMUIyOworQjE0QztCMTRDOzExMDIgMTE2NyAxMUIzO0IxNEM7MTEwMiAxMTY3IDExQjM7CitCMTREO0IxNEQ7MTEwMiAxMTY3IDExQjQ7QjE0RDsxMTAyIDExNjcgMTFCNDsKK0IxNEU7QjE0RTsxMTAyIDExNjcgMTFCNTtCMTRFOzExMDIgMTE2NyAxMUI1OworQjE0RjtCMTRGOzExMDIgMTE2NyAxMUI2O0IxNEY7MTEwMiAxMTY3IDExQjY7CitCMTUwO0IxNTA7MTEwMiAxMTY3IDExQjc7QjE1MDsxMTAyIDExNjcgMTFCNzsKK0IxNTE7QjE1MTsxMTAyIDExNjcgMTFCODtCMTUxOzExMDIgMTE2NyAxMUI4OworQjE1MjtCMTUyOzExMDIgMTE2NyAxMUI5O0IxNTI7MTEwMiAxMTY3IDExQjk7CitCMTUzO0IxNTM7MTEwMiAxMTY3IDExQkE7QjE1MzsxMTAyIDExNjcgMTFCQTsKK0IxNTQ7QjE1NDsxMTAyIDExNjcgMTFCQjtCMTU0OzExMDIgMTE2NyAxMUJCOworQjE1NTtCMTU1OzExMDIgMTE2NyAxMUJDO0IxNTU7MTEwMiAxMTY3IDExQkM7CitCMTU2O0IxNTY7MTEwMiAxMTY3IDExQkQ7QjE1NjsxMTAyIDExNjcgMTFCRDsKK0IxNTc7QjE1NzsxMTAyIDExNjcgMTFCRTtCMTU3OzExMDIgMTE2NyAxMUJFOworQjE1ODtCMTU4OzExMDIgMTE2NyAxMUJGO0IxNTg7MTEwMiAxMTY3IDExQkY7CitCMTU5O0IxNTk7MTEwMiAxMTY3IDExQzA7QjE1OTsxMTAyIDExNjcgMTFDMDsKK0IxNUE7QjE1QTsxMTAyIDExNjcgMTFDMTtCMTVBOzExMDIgMTE2NyAxMUMxOworQjE1QjtCMTVCOzExMDIgMTE2NyAxMUMyO0IxNUI7MTEwMiAxMTY3IDExQzI7CitCMTVDO0IxNUM7MTEwMiAxMTY4O0IxNUM7MTEwMiAxMTY4OworQjE1RDtCMTVEOzExMDIgMTE2OCAxMUE4O0IxNUQ7MTEwMiAxMTY4IDExQTg7CitCMTVFO0IxNUU7MTEwMiAxMTY4IDExQTk7QjE1RTsxMTAyIDExNjggMTFBOTsKK0IxNUY7QjE1RjsxMTAyIDExNjggMTFBQTtCMTVGOzExMDIgMTE2OCAxMUFBOworQjE2MDtCMTYwOzExMDIgMTE2OCAxMUFCO0IxNjA7MTEwMiAxMTY4IDExQUI7CitCMTYxO0IxNjE7MTEwMiAxMTY4IDExQUM7QjE2MTsxMTAyIDExNjggMTFBQzsKK0IxNjI7QjE2MjsxMTAyIDExNjggMTFBRDtCMTYyOzExMDIgMTE2OCAxMUFEOworQjE2MztCMTYzOzExMDIgMTE2OCAxMUFFO0IxNjM7MTEwMiAxMTY4IDExQUU7CitCMTY0O0IxNjQ7MTEwMiAxMTY4IDExQUY7QjE2NDsxMTAyIDExNjggMTFBRjsKK0IxNjU7QjE2NTsxMTAyIDExNjggMTFCMDtCMTY1OzExMDIgMTE2OCAxMUIwOworQjE2NjtCMTY2OzExMDIgMTE2OCAxMUIxO0IxNjY7MTEwMiAxMTY4IDExQjE7CitCMTY3O0IxNjc7MTEwMiAxMTY4IDExQjI7QjE2NzsxMTAyIDExNjggMTFCMjsKK0IxNjg7QjE2ODsxMTAyIDExNjggMTFCMztCMTY4OzExMDIgMTE2OCAxMUIzOworQjE2OTtCMTY5OzExMDIgMTE2OCAxMUI0O0IxNjk7MTEwMiAxMTY4IDExQjQ7CitCMTZBO0IxNkE7MTEwMiAxMTY4IDExQjU7QjE2QTsxMTAyIDExNjggMTFCNTsKK0IxNkI7QjE2QjsxMTAyIDExNjggMTFCNjtCMTZCOzExMDIgMTE2OCAxMUI2OworQjE2QztCMTZDOzExMDIgMTE2OCAxMUI3O0IxNkM7MTEwMiAxMTY4IDExQjc7CitCMTZEO0IxNkQ7MTEwMiAxMTY4IDExQjg7QjE2RDsxMTAyIDExNjggMTFCODsKK0IxNkU7QjE2RTsxMTAyIDExNjggMTFCOTtCMTZFOzExMDIgMTE2OCAxMUI5OworQjE2RjtCMTZGOzExMDIgMTE2OCAxMUJBO0IxNkY7MTEwMiAxMTY4IDExQkE7CitCMTcwO0IxNzA7MTEwMiAxMTY4IDExQkI7QjE3MDsxMTAyIDExNjggMTFCQjsKK0IxNzE7QjE3MTsxMTAyIDExNjggMTFCQztCMTcxOzExMDIgMTE2OCAxMUJDOworQjE3MjtCMTcyOzExMDIgMTE2OCAxMUJEO0IxNzI7MTEwMiAxMTY4IDExQkQ7CitCMTczO0IxNzM7MTEwMiAxMTY4IDExQkU7QjE3MzsxMTAyIDExNjggMTFCRTsKK0IxNzQ7QjE3NDsxMTAyIDExNjggMTFCRjtCMTc0OzExMDIgMTE2OCAxMUJGOworQjE3NTtCMTc1OzExMDIgMTE2OCAxMUMwO0IxNzU7MTEwMiAxMTY4IDExQzA7CitCMTc2O0IxNzY7MTEwMiAxMTY4IDExQzE7QjE3NjsxMTAyIDExNjggMTFDMTsKK0IxNzc7QjE3NzsxMTAyIDExNjggMTFDMjtCMTc3OzExMDIgMTE2OCAxMUMyOworQjE3ODtCMTc4OzExMDIgMTE2OTtCMTc4OzExMDIgMTE2OTsKK0IxNzk7QjE3OTsxMTAyIDExNjkgMTFBODtCMTc5OzExMDIgMTE2OSAxMUE4OworQjE3QTtCMTdBOzExMDIgMTE2OSAxMUE5O0IxN0E7MTEwMiAxMTY5IDExQTk7CitCMTdCO0IxN0I7MTEwMiAxMTY5IDExQUE7QjE3QjsxMTAyIDExNjkgMTFBQTsKK0IxN0M7QjE3QzsxMTAyIDExNjkgMTFBQjtCMTdDOzExMDIgMTE2OSAxMUFCOworQjE3RDtCMTdEOzExMDIgMTE2OSAxMUFDO0IxN0Q7MTEwMiAxMTY5IDExQUM7CitCMTdFO0IxN0U7MTEwMiAxMTY5IDExQUQ7QjE3RTsxMTAyIDExNjkgMTFBRDsKK0IxN0Y7QjE3RjsxMTAyIDExNjkgMTFBRTtCMTdGOzExMDIgMTE2OSAxMUFFOworQjE4MDtCMTgwOzExMDIgMTE2OSAxMUFGO0IxODA7MTEwMiAxMTY5IDExQUY7CitCMTgxO0IxODE7MTEwMiAxMTY5IDExQjA7QjE4MTsxMTAyIDExNjkgMTFCMDsKK0IxODI7QjE4MjsxMTAyIDExNjkgMTFCMTtCMTgyOzExMDIgMTE2OSAxMUIxOworQjE4MztCMTgzOzExMDIgMTE2OSAxMUIyO0IxODM7MTEwMiAxMTY5IDExQjI7CitCMTg0O0IxODQ7MTEwMiAxMTY5IDExQjM7QjE4NDsxMTAyIDExNjkgMTFCMzsKK0IxODU7QjE4NTsxMTAyIDExNjkgMTFCNDtCMTg1OzExMDIgMTE2OSAxMUI0OworQjE4NjtCMTg2OzExMDIgMTE2OSAxMUI1O0IxODY7MTEwMiAxMTY5IDExQjU7CitCMTg3O0IxODc7MTEwMiAxMTY5IDExQjY7QjE4NzsxMTAyIDExNjkgMTFCNjsKK0IxODg7QjE4ODsxMTAyIDExNjkgMTFCNztCMTg4OzExMDIgMTE2OSAxMUI3OworQjE4OTtCMTg5OzExMDIgMTE2OSAxMUI4O0IxODk7MTEwMiAxMTY5IDExQjg7CitCMThBO0IxOEE7MTEwMiAxMTY5IDExQjk7QjE4QTsxMTAyIDExNjkgMTFCOTsKK0IxOEI7QjE4QjsxMTAyIDExNjkgMTFCQTtCMThCOzExMDIgMTE2OSAxMUJBOworQjE4QztCMThDOzExMDIgMTE2OSAxMUJCO0IxOEM7MTEwMiAxMTY5IDExQkI7CitCMThEO0IxOEQ7MTEwMiAxMTY5IDExQkM7QjE4RDsxMTAyIDExNjkgMTFCQzsKK0IxOEU7QjE4RTsxMTAyIDExNjkgMTFCRDtCMThFOzExMDIgMTE2OSAxMUJEOworQjE4RjtCMThGOzExMDIgMTE2OSAxMUJFO0IxOEY7MTEwMiAxMTY5IDExQkU7CitCMTkwO0IxOTA7MTEwMiAxMTY5IDExQkY7QjE5MDsxMTAyIDExNjkgMTFCRjsKK0IxOTE7QjE5MTsxMTAyIDExNjkgMTFDMDtCMTkxOzExMDIgMTE2OSAxMUMwOworQjE5MjtCMTkyOzExMDIgMTE2OSAxMUMxO0IxOTI7MTEwMiAxMTY5IDExQzE7CitCMTkzO0IxOTM7MTEwMiAxMTY5IDExQzI7QjE5MzsxMTAyIDExNjkgMTFDMjsKK0IxOTQ7QjE5NDsxMTAyIDExNkE7QjE5NDsxMTAyIDExNkE7CitCMTk1O0IxOTU7MTEwMiAxMTZBIDExQTg7QjE5NTsxMTAyIDExNkEgMTFBODsKK0IxOTY7QjE5NjsxMTAyIDExNkEgMTFBOTtCMTk2OzExMDIgMTE2QSAxMUE5OworQjE5NztCMTk3OzExMDIgMTE2QSAxMUFBO0IxOTc7MTEwMiAxMTZBIDExQUE7CitCMTk4O0IxOTg7MTEwMiAxMTZBIDExQUI7QjE5ODsxMTAyIDExNkEgMTFBQjsKK0IxOTk7QjE5OTsxMTAyIDExNkEgMTFBQztCMTk5OzExMDIgMTE2QSAxMUFDOworQjE5QTtCMTlBOzExMDIgMTE2QSAxMUFEO0IxOUE7MTEwMiAxMTZBIDExQUQ7CitCMTlCO0IxOUI7MTEwMiAxMTZBIDExQUU7QjE5QjsxMTAyIDExNkEgMTFBRTsKK0IxOUM7QjE5QzsxMTAyIDExNkEgMTFBRjtCMTlDOzExMDIgMTE2QSAxMUFGOworQjE5RDtCMTlEOzExMDIgMTE2QSAxMUIwO0IxOUQ7MTEwMiAxMTZBIDExQjA7CitCMTlFO0IxOUU7MTEwMiAxMTZBIDExQjE7QjE5RTsxMTAyIDExNkEgMTFCMTsKK0IxOUY7QjE5RjsxMTAyIDExNkEgMTFCMjtCMTlGOzExMDIgMTE2QSAxMUIyOworQjFBMDtCMUEwOzExMDIgMTE2QSAxMUIzO0IxQTA7MTEwMiAxMTZBIDExQjM7CitCMUExO0IxQTE7MTEwMiAxMTZBIDExQjQ7QjFBMTsxMTAyIDExNkEgMTFCNDsKK0IxQTI7QjFBMjsxMTAyIDExNkEgMTFCNTtCMUEyOzExMDIgMTE2QSAxMUI1OworQjFBMztCMUEzOzExMDIgMTE2QSAxMUI2O0IxQTM7MTEwMiAxMTZBIDExQjY7CitCMUE0O0IxQTQ7MTEwMiAxMTZBIDExQjc7QjFBNDsxMTAyIDExNkEgMTFCNzsKK0IxQTU7QjFBNTsxMTAyIDExNkEgMTFCODtCMUE1OzExMDIgMTE2QSAxMUI4OworQjFBNjtCMUE2OzExMDIgMTE2QSAxMUI5O0IxQTY7MTEwMiAxMTZBIDExQjk7CitCMUE3O0IxQTc7MTEwMiAxMTZBIDExQkE7QjFBNzsxMTAyIDExNkEgMTFCQTsKK0IxQTg7QjFBODsxMTAyIDExNkEgMTFCQjtCMUE4OzExMDIgMTE2QSAxMUJCOworQjFBOTtCMUE5OzExMDIgMTE2QSAxMUJDO0IxQTk7MTEwMiAxMTZBIDExQkM7CitCMUFBO0IxQUE7MTEwMiAxMTZBIDExQkQ7QjFBQTsxMTAyIDExNkEgMTFCRDsKK0IxQUI7QjFBQjsxMTAyIDExNkEgMTFCRTtCMUFCOzExMDIgMTE2QSAxMUJFOworQjFBQztCMUFDOzExMDIgMTE2QSAxMUJGO0IxQUM7MTEwMiAxMTZBIDExQkY7CitCMUFEO0IxQUQ7MTEwMiAxMTZBIDExQzA7QjFBRDsxMTAyIDExNkEgMTFDMDsKK0IxQUU7QjFBRTsxMTAyIDExNkEgMTFDMTtCMUFFOzExMDIgMTE2QSAxMUMxOworQjFBRjtCMUFGOzExMDIgMTE2QSAxMUMyO0IxQUY7MTEwMiAxMTZBIDExQzI7CitCMUIwO0IxQjA7MTEwMiAxMTZCO0IxQjA7MTEwMiAxMTZCOworQjFCMTtCMUIxOzExMDIgMTE2QiAxMUE4O0IxQjE7MTEwMiAxMTZCIDExQTg7CitCMUIyO0IxQjI7MTEwMiAxMTZCIDExQTk7QjFCMjsxMTAyIDExNkIgMTFBOTsKK0IxQjM7QjFCMzsxMTAyIDExNkIgMTFBQTtCMUIzOzExMDIgMTE2QiAxMUFBOworQjFCNDtCMUI0OzExMDIgMTE2QiAxMUFCO0IxQjQ7MTEwMiAxMTZCIDExQUI7CitCMUI1O0IxQjU7MTEwMiAxMTZCIDExQUM7QjFCNTsxMTAyIDExNkIgMTFBQzsKK0IxQjY7QjFCNjsxMTAyIDExNkIgMTFBRDtCMUI2OzExMDIgMTE2QiAxMUFEOworQjFCNztCMUI3OzExMDIgMTE2QiAxMUFFO0IxQjc7MTEwMiAxMTZCIDExQUU7CitCMUI4O0IxQjg7MTEwMiAxMTZCIDExQUY7QjFCODsxMTAyIDExNkIgMTFBRjsKK0IxQjk7QjFCOTsxMTAyIDExNkIgMTFCMDtCMUI5OzExMDIgMTE2QiAxMUIwOworQjFCQTtCMUJBOzExMDIgMTE2QiAxMUIxO0IxQkE7MTEwMiAxMTZCIDExQjE7CitCMUJCO0IxQkI7MTEwMiAxMTZCIDExQjI7QjFCQjsxMTAyIDExNkIgMTFCMjsKK0IxQkM7QjFCQzsxMTAyIDExNkIgMTFCMztCMUJDOzExMDIgMTE2QiAxMUIzOworQjFCRDtCMUJEOzExMDIgMTE2QiAxMUI0O0IxQkQ7MTEwMiAxMTZCIDExQjQ7CitCMUJFO0IxQkU7MTEwMiAxMTZCIDExQjU7QjFCRTsxMTAyIDExNkIgMTFCNTsKK0IxQkY7QjFCRjsxMTAyIDExNkIgMTFCNjtCMUJGOzExMDIgMTE2QiAxMUI2OworQjFDMDtCMUMwOzExMDIgMTE2QiAxMUI3O0IxQzA7MTEwMiAxMTZCIDExQjc7CitCMUMxO0IxQzE7MTEwMiAxMTZCIDExQjg7QjFDMTsxMTAyIDExNkIgMTFCODsKK0IxQzI7QjFDMjsxMTAyIDExNkIgMTFCOTtCMUMyOzExMDIgMTE2QiAxMUI5OworQjFDMztCMUMzOzExMDIgMTE2QiAxMUJBO0IxQzM7MTEwMiAxMTZCIDExQkE7CitCMUM0O0IxQzQ7MTEwMiAxMTZCIDExQkI7QjFDNDsxMTAyIDExNkIgMTFCQjsKK0IxQzU7QjFDNTsxMTAyIDExNkIgMTFCQztCMUM1OzExMDIgMTE2QiAxMUJDOworQjFDNjtCMUM2OzExMDIgMTE2QiAxMUJEO0IxQzY7MTEwMiAxMTZCIDExQkQ7CitCMUM3O0IxQzc7MTEwMiAxMTZCIDExQkU7QjFDNzsxMTAyIDExNkIgMTFCRTsKK0IxQzg7QjFDODsxMTAyIDExNkIgMTFCRjtCMUM4OzExMDIgMTE2QiAxMUJGOworQjFDOTtCMUM5OzExMDIgMTE2QiAxMUMwO0IxQzk7MTEwMiAxMTZCIDExQzA7CitCMUNBO0IxQ0E7MTEwMiAxMTZCIDExQzE7QjFDQTsxMTAyIDExNkIgMTFDMTsKK0IxQ0I7QjFDQjsxMTAyIDExNkIgMTFDMjtCMUNCOzExMDIgMTE2QiAxMUMyOworQjFDQztCMUNDOzExMDIgMTE2QztCMUNDOzExMDIgMTE2QzsKK0IxQ0Q7QjFDRDsxMTAyIDExNkMgMTFBODtCMUNEOzExMDIgMTE2QyAxMUE4OworQjFDRTtCMUNFOzExMDIgMTE2QyAxMUE5O0IxQ0U7MTEwMiAxMTZDIDExQTk7CitCMUNGO0IxQ0Y7MTEwMiAxMTZDIDExQUE7QjFDRjsxMTAyIDExNkMgMTFBQTsKK0IxRDA7QjFEMDsxMTAyIDExNkMgMTFBQjtCMUQwOzExMDIgMTE2QyAxMUFCOworQjFEMTtCMUQxOzExMDIgMTE2QyAxMUFDO0IxRDE7MTEwMiAxMTZDIDExQUM7CitCMUQyO0IxRDI7MTEwMiAxMTZDIDExQUQ7QjFEMjsxMTAyIDExNkMgMTFBRDsKK0IxRDM7QjFEMzsxMTAyIDExNkMgMTFBRTtCMUQzOzExMDIgMTE2QyAxMUFFOworQjFENDtCMUQ0OzExMDIgMTE2QyAxMUFGO0IxRDQ7MTEwMiAxMTZDIDExQUY7CitCMUQ1O0IxRDU7MTEwMiAxMTZDIDExQjA7QjFENTsxMTAyIDExNkMgMTFCMDsKK0IxRDY7QjFENjsxMTAyIDExNkMgMTFCMTtCMUQ2OzExMDIgMTE2QyAxMUIxOworQjFENztCMUQ3OzExMDIgMTE2QyAxMUIyO0IxRDc7MTEwMiAxMTZDIDExQjI7CitCMUQ4O0IxRDg7MTEwMiAxMTZDIDExQjM7QjFEODsxMTAyIDExNkMgMTFCMzsKK0IxRDk7QjFEOTsxMTAyIDExNkMgMTFCNDtCMUQ5OzExMDIgMTE2QyAxMUI0OworQjFEQTtCMURBOzExMDIgMTE2QyAxMUI1O0IxREE7MTEwMiAxMTZDIDExQjU7CitCMURCO0IxREI7MTEwMiAxMTZDIDExQjY7QjFEQjsxMTAyIDExNkMgMTFCNjsKK0IxREM7QjFEQzsxMTAyIDExNkMgMTFCNztCMURDOzExMDIgMTE2QyAxMUI3OworQjFERDtCMUREOzExMDIgMTE2QyAxMUI4O0IxREQ7MTEwMiAxMTZDIDExQjg7CitCMURFO0IxREU7MTEwMiAxMTZDIDExQjk7QjFERTsxMTAyIDExNkMgMTFCOTsKK0IxREY7QjFERjsxMTAyIDExNkMgMTFCQTtCMURGOzExMDIgMTE2QyAxMUJBOworQjFFMDtCMUUwOzExMDIgMTE2QyAxMUJCO0IxRTA7MTEwMiAxMTZDIDExQkI7CitCMUUxO0IxRTE7MTEwMiAxMTZDIDExQkM7QjFFMTsxMTAyIDExNkMgMTFCQzsKK0IxRTI7QjFFMjsxMTAyIDExNkMgMTFCRDtCMUUyOzExMDIgMTE2QyAxMUJEOworQjFFMztCMUUzOzExMDIgMTE2QyAxMUJFO0IxRTM7MTEwMiAxMTZDIDExQkU7CitCMUU0O0IxRTQ7MTEwMiAxMTZDIDExQkY7QjFFNDsxMTAyIDExNkMgMTFCRjsKK0IxRTU7QjFFNTsxMTAyIDExNkMgMTFDMDtCMUU1OzExMDIgMTE2QyAxMUMwOworQjFFNjtCMUU2OzExMDIgMTE2QyAxMUMxO0IxRTY7MTEwMiAxMTZDIDExQzE7CitCMUU3O0IxRTc7MTEwMiAxMTZDIDExQzI7QjFFNzsxMTAyIDExNkMgMTFDMjsKK0IxRTg7QjFFODsxMTAyIDExNkQ7QjFFODsxMTAyIDExNkQ7CitCMUU5O0IxRTk7MTEwMiAxMTZEIDExQTg7QjFFOTsxMTAyIDExNkQgMTFBODsKK0IxRUE7QjFFQTsxMTAyIDExNkQgMTFBOTtCMUVBOzExMDIgMTE2RCAxMUE5OworQjFFQjtCMUVCOzExMDIgMTE2RCAxMUFBO0IxRUI7MTEwMiAxMTZEIDExQUE7CitCMUVDO0IxRUM7MTEwMiAxMTZEIDExQUI7QjFFQzsxMTAyIDExNkQgMTFBQjsKK0IxRUQ7QjFFRDsxMTAyIDExNkQgMTFBQztCMUVEOzExMDIgMTE2RCAxMUFDOworQjFFRTtCMUVFOzExMDIgMTE2RCAxMUFEO0IxRUU7MTEwMiAxMTZEIDExQUQ7CitCMUVGO0IxRUY7MTEwMiAxMTZEIDExQUU7QjFFRjsxMTAyIDExNkQgMTFBRTsKK0IxRjA7QjFGMDsxMTAyIDExNkQgMTFBRjtCMUYwOzExMDIgMTE2RCAxMUFGOworQjFGMTtCMUYxOzExMDIgMTE2RCAxMUIwO0IxRjE7MTEwMiAxMTZEIDExQjA7CitCMUYyO0IxRjI7MTEwMiAxMTZEIDExQjE7QjFGMjsxMTAyIDExNkQgMTFCMTsKK0IxRjM7QjFGMzsxMTAyIDExNkQgMTFCMjtCMUYzOzExMDIgMTE2RCAxMUIyOworQjFGNDtCMUY0OzExMDIgMTE2RCAxMUIzO0IxRjQ7MTEwMiAxMTZEIDExQjM7CitCMUY1O0IxRjU7MTEwMiAxMTZEIDExQjQ7QjFGNTsxMTAyIDExNkQgMTFCNDsKK0IxRjY7QjFGNjsxMTAyIDExNkQgMTFCNTtCMUY2OzExMDIgMTE2RCAxMUI1OworQjFGNztCMUY3OzExMDIgMTE2RCAxMUI2O0IxRjc7MTEwMiAxMTZEIDExQjY7CitCMUY4O0IxRjg7MTEwMiAxMTZEIDExQjc7QjFGODsxMTAyIDExNkQgMTFCNzsKK0IxRjk7QjFGOTsxMTAyIDExNkQgMTFCODtCMUY5OzExMDIgMTE2RCAxMUI4OworQjFGQTtCMUZBOzExMDIgMTE2RCAxMUI5O0IxRkE7MTEwMiAxMTZEIDExQjk7CitCMUZCO0IxRkI7MTEwMiAxMTZEIDExQkE7QjFGQjsxMTAyIDExNkQgMTFCQTsKK0IxRkM7QjFGQzsxMTAyIDExNkQgMTFCQjtCMUZDOzExMDIgMTE2RCAxMUJCOworQjFGRDtCMUZEOzExMDIgMTE2RCAxMUJDO0IxRkQ7MTEwMiAxMTZEIDExQkM7CitCMUZFO0IxRkU7MTEwMiAxMTZEIDExQkQ7QjFGRTsxMTAyIDExNkQgMTFCRDsKK0IxRkY7QjFGRjsxMTAyIDExNkQgMTFCRTtCMUZGOzExMDIgMTE2RCAxMUJFOworQjIwMDtCMjAwOzExMDIgMTE2RCAxMUJGO0IyMDA7MTEwMiAxMTZEIDExQkY7CitCMjAxO0IyMDE7MTEwMiAxMTZEIDExQzA7QjIwMTsxMTAyIDExNkQgMTFDMDsKK0IyMDI7QjIwMjsxMTAyIDExNkQgMTFDMTtCMjAyOzExMDIgMTE2RCAxMUMxOworQjIwMztCMjAzOzExMDIgMTE2RCAxMUMyO0IyMDM7MTEwMiAxMTZEIDExQzI7CitCMjA0O0IyMDQ7MTEwMiAxMTZFO0IyMDQ7MTEwMiAxMTZFOworQjIwNTtCMjA1OzExMDIgMTE2RSAxMUE4O0IyMDU7MTEwMiAxMTZFIDExQTg7CitCMjA2O0IyMDY7MTEwMiAxMTZFIDExQTk7QjIwNjsxMTAyIDExNkUgMTFBOTsKK0IyMDc7QjIwNzsxMTAyIDExNkUgMTFBQTtCMjA3OzExMDIgMTE2RSAxMUFBOworQjIwODtCMjA4OzExMDIgMTE2RSAxMUFCO0IyMDg7MTEwMiAxMTZFIDExQUI7CitCMjA5O0IyMDk7MTEwMiAxMTZFIDExQUM7QjIwOTsxMTAyIDExNkUgMTFBQzsKK0IyMEE7QjIwQTsxMTAyIDExNkUgMTFBRDtCMjBBOzExMDIgMTE2RSAxMUFEOworQjIwQjtCMjBCOzExMDIgMTE2RSAxMUFFO0IyMEI7MTEwMiAxMTZFIDExQUU7CitCMjBDO0IyMEM7MTEwMiAxMTZFIDExQUY7QjIwQzsxMTAyIDExNkUgMTFBRjsKK0IyMEQ7QjIwRDsxMTAyIDExNkUgMTFCMDtCMjBEOzExMDIgMTE2RSAxMUIwOworQjIwRTtCMjBFOzExMDIgMTE2RSAxMUIxO0IyMEU7MTEwMiAxMTZFIDExQjE7CitCMjBGO0IyMEY7MTEwMiAxMTZFIDExQjI7QjIwRjsxMTAyIDExNkUgMTFCMjsKK0IyMTA7QjIxMDsxMTAyIDExNkUgMTFCMztCMjEwOzExMDIgMTE2RSAxMUIzOworQjIxMTtCMjExOzExMDIgMTE2RSAxMUI0O0IyMTE7MTEwMiAxMTZFIDExQjQ7CitCMjEyO0IyMTI7MTEwMiAxMTZFIDExQjU7QjIxMjsxMTAyIDExNkUgMTFCNTsKK0IyMTM7QjIxMzsxMTAyIDExNkUgMTFCNjtCMjEzOzExMDIgMTE2RSAxMUI2OworQjIxNDtCMjE0OzExMDIgMTE2RSAxMUI3O0IyMTQ7MTEwMiAxMTZFIDExQjc7CitCMjE1O0IyMTU7MTEwMiAxMTZFIDExQjg7QjIxNTsxMTAyIDExNkUgMTFCODsKK0IyMTY7QjIxNjsxMTAyIDExNkUgMTFCOTtCMjE2OzExMDIgMTE2RSAxMUI5OworQjIxNztCMjE3OzExMDIgMTE2RSAxMUJBO0IyMTc7MTEwMiAxMTZFIDExQkE7CitCMjE4O0IyMTg7MTEwMiAxMTZFIDExQkI7QjIxODsxMTAyIDExNkUgMTFCQjsKK0IyMTk7QjIxOTsxMTAyIDExNkUgMTFCQztCMjE5OzExMDIgMTE2RSAxMUJDOworQjIxQTtCMjFBOzExMDIgMTE2RSAxMUJEO0IyMUE7MTEwMiAxMTZFIDExQkQ7CitCMjFCO0IyMUI7MTEwMiAxMTZFIDExQkU7QjIxQjsxMTAyIDExNkUgMTFCRTsKK0IyMUM7QjIxQzsxMTAyIDExNkUgMTFCRjtCMjFDOzExMDIgMTE2RSAxMUJGOworQjIxRDtCMjFEOzExMDIgMTE2RSAxMUMwO0IyMUQ7MTEwMiAxMTZFIDExQzA7CitCMjFFO0IyMUU7MTEwMiAxMTZFIDExQzE7QjIxRTsxMTAyIDExNkUgMTFDMTsKK0IyMUY7QjIxRjsxMTAyIDExNkUgMTFDMjtCMjFGOzExMDIgMTE2RSAxMUMyOworQjIyMDtCMjIwOzExMDIgMTE2RjtCMjIwOzExMDIgMTE2RjsKK0IyMjE7QjIyMTsxMTAyIDExNkYgMTFBODtCMjIxOzExMDIgMTE2RiAxMUE4OworQjIyMjtCMjIyOzExMDIgMTE2RiAxMUE5O0IyMjI7MTEwMiAxMTZGIDExQTk7CitCMjIzO0IyMjM7MTEwMiAxMTZGIDExQUE7QjIyMzsxMTAyIDExNkYgMTFBQTsKK0IyMjQ7QjIyNDsxMTAyIDExNkYgMTFBQjtCMjI0OzExMDIgMTE2RiAxMUFCOworQjIyNTtCMjI1OzExMDIgMTE2RiAxMUFDO0IyMjU7MTEwMiAxMTZGIDExQUM7CitCMjI2O0IyMjY7MTEwMiAxMTZGIDExQUQ7QjIyNjsxMTAyIDExNkYgMTFBRDsKK0IyMjc7QjIyNzsxMTAyIDExNkYgMTFBRTtCMjI3OzExMDIgMTE2RiAxMUFFOworQjIyODtCMjI4OzExMDIgMTE2RiAxMUFGO0IyMjg7MTEwMiAxMTZGIDExQUY7CitCMjI5O0IyMjk7MTEwMiAxMTZGIDExQjA7QjIyOTsxMTAyIDExNkYgMTFCMDsKK0IyMkE7QjIyQTsxMTAyIDExNkYgMTFCMTtCMjJBOzExMDIgMTE2RiAxMUIxOworQjIyQjtCMjJCOzExMDIgMTE2RiAxMUIyO0IyMkI7MTEwMiAxMTZGIDExQjI7CitCMjJDO0IyMkM7MTEwMiAxMTZGIDExQjM7QjIyQzsxMTAyIDExNkYgMTFCMzsKK0IyMkQ7QjIyRDsxMTAyIDExNkYgMTFCNDtCMjJEOzExMDIgMTE2RiAxMUI0OworQjIyRTtCMjJFOzExMDIgMTE2RiAxMUI1O0IyMkU7MTEwMiAxMTZGIDExQjU7CitCMjJGO0IyMkY7MTEwMiAxMTZGIDExQjY7QjIyRjsxMTAyIDExNkYgMTFCNjsKK0IyMzA7QjIzMDsxMTAyIDExNkYgMTFCNztCMjMwOzExMDIgMTE2RiAxMUI3OworQjIzMTtCMjMxOzExMDIgMTE2RiAxMUI4O0IyMzE7MTEwMiAxMTZGIDExQjg7CitCMjMyO0IyMzI7MTEwMiAxMTZGIDExQjk7QjIzMjsxMTAyIDExNkYgMTFCOTsKK0IyMzM7QjIzMzsxMTAyIDExNkYgMTFCQTtCMjMzOzExMDIgMTE2RiAxMUJBOworQjIzNDtCMjM0OzExMDIgMTE2RiAxMUJCO0IyMzQ7MTEwMiAxMTZGIDExQkI7CitCMjM1O0IyMzU7MTEwMiAxMTZGIDExQkM7QjIzNTsxMTAyIDExNkYgMTFCQzsKK0IyMzY7QjIzNjsxMTAyIDExNkYgMTFCRDtCMjM2OzExMDIgMTE2RiAxMUJEOworQjIzNztCMjM3OzExMDIgMTE2RiAxMUJFO0IyMzc7MTEwMiAxMTZGIDExQkU7CitCMjM4O0IyMzg7MTEwMiAxMTZGIDExQkY7QjIzODsxMTAyIDExNkYgMTFCRjsKK0IyMzk7QjIzOTsxMTAyIDExNkYgMTFDMDtCMjM5OzExMDIgMTE2RiAxMUMwOworQjIzQTtCMjNBOzExMDIgMTE2RiAxMUMxO0IyM0E7MTEwMiAxMTZGIDExQzE7CitCMjNCO0IyM0I7MTEwMiAxMTZGIDExQzI7QjIzQjsxMTAyIDExNkYgMTFDMjsKK0IyM0M7QjIzQzsxMTAyIDExNzA7QjIzQzsxMTAyIDExNzA7CitCMjNEO0IyM0Q7MTEwMiAxMTcwIDExQTg7QjIzRDsxMTAyIDExNzAgMTFBODsKK0IyM0U7QjIzRTsxMTAyIDExNzAgMTFBOTtCMjNFOzExMDIgMTE3MCAxMUE5OworQjIzRjtCMjNGOzExMDIgMTE3MCAxMUFBO0IyM0Y7MTEwMiAxMTcwIDExQUE7CitCMjQwO0IyNDA7MTEwMiAxMTcwIDExQUI7QjI0MDsxMTAyIDExNzAgMTFBQjsKK0IyNDE7QjI0MTsxMTAyIDExNzAgMTFBQztCMjQxOzExMDIgMTE3MCAxMUFDOworQjI0MjtCMjQyOzExMDIgMTE3MCAxMUFEO0IyNDI7MTEwMiAxMTcwIDExQUQ7CitCMjQzO0IyNDM7MTEwMiAxMTcwIDExQUU7QjI0MzsxMTAyIDExNzAgMTFBRTsKK0IyNDQ7QjI0NDsxMTAyIDExNzAgMTFBRjtCMjQ0OzExMDIgMTE3MCAxMUFGOworQjI0NTtCMjQ1OzExMDIgMTE3MCAxMUIwO0IyNDU7MTEwMiAxMTcwIDExQjA7CitCMjQ2O0IyNDY7MTEwMiAxMTcwIDExQjE7QjI0NjsxMTAyIDExNzAgMTFCMTsKK0IyNDc7QjI0NzsxMTAyIDExNzAgMTFCMjtCMjQ3OzExMDIgMTE3MCAxMUIyOworQjI0ODtCMjQ4OzExMDIgMTE3MCAxMUIzO0IyNDg7MTEwMiAxMTcwIDExQjM7CitCMjQ5O0IyNDk7MTEwMiAxMTcwIDExQjQ7QjI0OTsxMTAyIDExNzAgMTFCNDsKK0IyNEE7QjI0QTsxMTAyIDExNzAgMTFCNTtCMjRBOzExMDIgMTE3MCAxMUI1OworQjI0QjtCMjRCOzExMDIgMTE3MCAxMUI2O0IyNEI7MTEwMiAxMTcwIDExQjY7CitCMjRDO0IyNEM7MTEwMiAxMTcwIDExQjc7QjI0QzsxMTAyIDExNzAgMTFCNzsKK0IyNEQ7QjI0RDsxMTAyIDExNzAgMTFCODtCMjREOzExMDIgMTE3MCAxMUI4OworQjI0RTtCMjRFOzExMDIgMTE3MCAxMUI5O0IyNEU7MTEwMiAxMTcwIDExQjk7CitCMjRGO0IyNEY7MTEwMiAxMTcwIDExQkE7QjI0RjsxMTAyIDExNzAgMTFCQTsKK0IyNTA7QjI1MDsxMTAyIDExNzAgMTFCQjtCMjUwOzExMDIgMTE3MCAxMUJCOworQjI1MTtCMjUxOzExMDIgMTE3MCAxMUJDO0IyNTE7MTEwMiAxMTcwIDExQkM7CitCMjUyO0IyNTI7MTEwMiAxMTcwIDExQkQ7QjI1MjsxMTAyIDExNzAgMTFCRDsKK0IyNTM7QjI1MzsxMTAyIDExNzAgMTFCRTtCMjUzOzExMDIgMTE3MCAxMUJFOworQjI1NDtCMjU0OzExMDIgMTE3MCAxMUJGO0IyNTQ7MTEwMiAxMTcwIDExQkY7CitCMjU1O0IyNTU7MTEwMiAxMTcwIDExQzA7QjI1NTsxMTAyIDExNzAgMTFDMDsKK0IyNTY7QjI1NjsxMTAyIDExNzAgMTFDMTtCMjU2OzExMDIgMTE3MCAxMUMxOworQjI1NztCMjU3OzExMDIgMTE3MCAxMUMyO0IyNTc7MTEwMiAxMTcwIDExQzI7CitCMjU4O0IyNTg7MTEwMiAxMTcxO0IyNTg7MTEwMiAxMTcxOworQjI1OTtCMjU5OzExMDIgMTE3MSAxMUE4O0IyNTk7MTEwMiAxMTcxIDExQTg7CitCMjVBO0IyNUE7MTEwMiAxMTcxIDExQTk7QjI1QTsxMTAyIDExNzEgMTFBOTsKK0IyNUI7QjI1QjsxMTAyIDExNzEgMTFBQTtCMjVCOzExMDIgMTE3MSAxMUFBOworQjI1QztCMjVDOzExMDIgMTE3MSAxMUFCO0IyNUM7MTEwMiAxMTcxIDExQUI7CitCMjVEO0IyNUQ7MTEwMiAxMTcxIDExQUM7QjI1RDsxMTAyIDExNzEgMTFBQzsKK0IyNUU7QjI1RTsxMTAyIDExNzEgMTFBRDtCMjVFOzExMDIgMTE3MSAxMUFEOworQjI1RjtCMjVGOzExMDIgMTE3MSAxMUFFO0IyNUY7MTEwMiAxMTcxIDExQUU7CitCMjYwO0IyNjA7MTEwMiAxMTcxIDExQUY7QjI2MDsxMTAyIDExNzEgMTFBRjsKK0IyNjE7QjI2MTsxMTAyIDExNzEgMTFCMDtCMjYxOzExMDIgMTE3MSAxMUIwOworQjI2MjtCMjYyOzExMDIgMTE3MSAxMUIxO0IyNjI7MTEwMiAxMTcxIDExQjE7CitCMjYzO0IyNjM7MTEwMiAxMTcxIDExQjI7QjI2MzsxMTAyIDExNzEgMTFCMjsKK0IyNjQ7QjI2NDsxMTAyIDExNzEgMTFCMztCMjY0OzExMDIgMTE3MSAxMUIzOworQjI2NTtCMjY1OzExMDIgMTE3MSAxMUI0O0IyNjU7MTEwMiAxMTcxIDExQjQ7CitCMjY2O0IyNjY7MTEwMiAxMTcxIDExQjU7QjI2NjsxMTAyIDExNzEgMTFCNTsKK0IyNjc7QjI2NzsxMTAyIDExNzEgMTFCNjtCMjY3OzExMDIgMTE3MSAxMUI2OworQjI2ODtCMjY4OzExMDIgMTE3MSAxMUI3O0IyNjg7MTEwMiAxMTcxIDExQjc7CitCMjY5O0IyNjk7MTEwMiAxMTcxIDExQjg7QjI2OTsxMTAyIDExNzEgMTFCODsKK0IyNkE7QjI2QTsxMTAyIDExNzEgMTFCOTtCMjZBOzExMDIgMTE3MSAxMUI5OworQjI2QjtCMjZCOzExMDIgMTE3MSAxMUJBO0IyNkI7MTEwMiAxMTcxIDExQkE7CitCMjZDO0IyNkM7MTEwMiAxMTcxIDExQkI7QjI2QzsxMTAyIDExNzEgMTFCQjsKK0IyNkQ7QjI2RDsxMTAyIDExNzEgMTFCQztCMjZEOzExMDIgMTE3MSAxMUJDOworQjI2RTtCMjZFOzExMDIgMTE3MSAxMUJEO0IyNkU7MTEwMiAxMTcxIDExQkQ7CitCMjZGO0IyNkY7MTEwMiAxMTcxIDExQkU7QjI2RjsxMTAyIDExNzEgMTFCRTsKK0IyNzA7QjI3MDsxMTAyIDExNzEgMTFCRjtCMjcwOzExMDIgMTE3MSAxMUJGOworQjI3MTtCMjcxOzExMDIgMTE3MSAxMUMwO0IyNzE7MTEwMiAxMTcxIDExQzA7CitCMjcyO0IyNzI7MTEwMiAxMTcxIDExQzE7QjI3MjsxMTAyIDExNzEgMTFDMTsKK0IyNzM7QjI3MzsxMTAyIDExNzEgMTFDMjtCMjczOzExMDIgMTE3MSAxMUMyOworQjI3NDtCMjc0OzExMDIgMTE3MjtCMjc0OzExMDIgMTE3MjsKK0IyNzU7QjI3NTsxMTAyIDExNzIgMTFBODtCMjc1OzExMDIgMTE3MiAxMUE4OworQjI3NjtCMjc2OzExMDIgMTE3MiAxMUE5O0IyNzY7MTEwMiAxMTcyIDExQTk7CitCMjc3O0IyNzc7MTEwMiAxMTcyIDExQUE7QjI3NzsxMTAyIDExNzIgMTFBQTsKK0IyNzg7QjI3ODsxMTAyIDExNzIgMTFBQjtCMjc4OzExMDIgMTE3MiAxMUFCOworQjI3OTtCMjc5OzExMDIgMTE3MiAxMUFDO0IyNzk7MTEwMiAxMTcyIDExQUM7CitCMjdBO0IyN0E7MTEwMiAxMTcyIDExQUQ7QjI3QTsxMTAyIDExNzIgMTFBRDsKK0IyN0I7QjI3QjsxMTAyIDExNzIgMTFBRTtCMjdCOzExMDIgMTE3MiAxMUFFOworQjI3QztCMjdDOzExMDIgMTE3MiAxMUFGO0IyN0M7MTEwMiAxMTcyIDExQUY7CitCMjdEO0IyN0Q7MTEwMiAxMTcyIDExQjA7QjI3RDsxMTAyIDExNzIgMTFCMDsKK0IyN0U7QjI3RTsxMTAyIDExNzIgMTFCMTtCMjdFOzExMDIgMTE3MiAxMUIxOworQjI3RjtCMjdGOzExMDIgMTE3MiAxMUIyO0IyN0Y7MTEwMiAxMTcyIDExQjI7CitCMjgwO0IyODA7MTEwMiAxMTcyIDExQjM7QjI4MDsxMTAyIDExNzIgMTFCMzsKK0IyODE7QjI4MTsxMTAyIDExNzIgMTFCNDtCMjgxOzExMDIgMTE3MiAxMUI0OworQjI4MjtCMjgyOzExMDIgMTE3MiAxMUI1O0IyODI7MTEwMiAxMTcyIDExQjU7CitCMjgzO0IyODM7MTEwMiAxMTcyIDExQjY7QjI4MzsxMTAyIDExNzIgMTFCNjsKK0IyODQ7QjI4NDsxMTAyIDExNzIgMTFCNztCMjg0OzExMDIgMTE3MiAxMUI3OworQjI4NTtCMjg1OzExMDIgMTE3MiAxMUI4O0IyODU7MTEwMiAxMTcyIDExQjg7CitCMjg2O0IyODY7MTEwMiAxMTcyIDExQjk7QjI4NjsxMTAyIDExNzIgMTFCOTsKK0IyODc7QjI4NzsxMTAyIDExNzIgMTFCQTtCMjg3OzExMDIgMTE3MiAxMUJBOworQjI4ODtCMjg4OzExMDIgMTE3MiAxMUJCO0IyODg7MTEwMiAxMTcyIDExQkI7CitCMjg5O0IyODk7MTEwMiAxMTcyIDExQkM7QjI4OTsxMTAyIDExNzIgMTFCQzsKK0IyOEE7QjI4QTsxMTAyIDExNzIgMTFCRDtCMjhBOzExMDIgMTE3MiAxMUJEOworQjI4QjtCMjhCOzExMDIgMTE3MiAxMUJFO0IyOEI7MTEwMiAxMTcyIDExQkU7CitCMjhDO0IyOEM7MTEwMiAxMTcyIDExQkY7QjI4QzsxMTAyIDExNzIgMTFCRjsKK0IyOEQ7QjI4RDsxMTAyIDExNzIgMTFDMDtCMjhEOzExMDIgMTE3MiAxMUMwOworQjI4RTtCMjhFOzExMDIgMTE3MiAxMUMxO0IyOEU7MTEwMiAxMTcyIDExQzE7CitCMjhGO0IyOEY7MTEwMiAxMTcyIDExQzI7QjI4RjsxMTAyIDExNzIgMTFDMjsKK0IyOTA7QjI5MDsxMTAyIDExNzM7QjI5MDsxMTAyIDExNzM7CitCMjkxO0IyOTE7MTEwMiAxMTczIDExQTg7QjI5MTsxMTAyIDExNzMgMTFBODsKK0IyOTI7QjI5MjsxMTAyIDExNzMgMTFBOTtCMjkyOzExMDIgMTE3MyAxMUE5OworQjI5MztCMjkzOzExMDIgMTE3MyAxMUFBO0IyOTM7MTEwMiAxMTczIDExQUE7CitCMjk0O0IyOTQ7MTEwMiAxMTczIDExQUI7QjI5NDsxMTAyIDExNzMgMTFBQjsKK0IyOTU7QjI5NTsxMTAyIDExNzMgMTFBQztCMjk1OzExMDIgMTE3MyAxMUFDOworQjI5NjtCMjk2OzExMDIgMTE3MyAxMUFEO0IyOTY7MTEwMiAxMTczIDExQUQ7CitCMjk3O0IyOTc7MTEwMiAxMTczIDExQUU7QjI5NzsxMTAyIDExNzMgMTFBRTsKK0IyOTg7QjI5ODsxMTAyIDExNzMgMTFBRjtCMjk4OzExMDIgMTE3MyAxMUFGOworQjI5OTtCMjk5OzExMDIgMTE3MyAxMUIwO0IyOTk7MTEwMiAxMTczIDExQjA7CitCMjlBO0IyOUE7MTEwMiAxMTczIDExQjE7QjI5QTsxMTAyIDExNzMgMTFCMTsKK0IyOUI7QjI5QjsxMTAyIDExNzMgMTFCMjtCMjlCOzExMDIgMTE3MyAxMUIyOworQjI5QztCMjlDOzExMDIgMTE3MyAxMUIzO0IyOUM7MTEwMiAxMTczIDExQjM7CitCMjlEO0IyOUQ7MTEwMiAxMTczIDExQjQ7QjI5RDsxMTAyIDExNzMgMTFCNDsKK0IyOUU7QjI5RTsxMTAyIDExNzMgMTFCNTtCMjlFOzExMDIgMTE3MyAxMUI1OworQjI5RjtCMjlGOzExMDIgMTE3MyAxMUI2O0IyOUY7MTEwMiAxMTczIDExQjY7CitCMkEwO0IyQTA7MTEwMiAxMTczIDExQjc7QjJBMDsxMTAyIDExNzMgMTFCNzsKK0IyQTE7QjJBMTsxMTAyIDExNzMgMTFCODtCMkExOzExMDIgMTE3MyAxMUI4OworQjJBMjtCMkEyOzExMDIgMTE3MyAxMUI5O0IyQTI7MTEwMiAxMTczIDExQjk7CitCMkEzO0IyQTM7MTEwMiAxMTczIDExQkE7QjJBMzsxMTAyIDExNzMgMTFCQTsKK0IyQTQ7QjJBNDsxMTAyIDExNzMgMTFCQjtCMkE0OzExMDIgMTE3MyAxMUJCOworQjJBNTtCMkE1OzExMDIgMTE3MyAxMUJDO0IyQTU7MTEwMiAxMTczIDExQkM7CitCMkE2O0IyQTY7MTEwMiAxMTczIDExQkQ7QjJBNjsxMTAyIDExNzMgMTFCRDsKK0IyQTc7QjJBNzsxMTAyIDExNzMgMTFCRTtCMkE3OzExMDIgMTE3MyAxMUJFOworQjJBODtCMkE4OzExMDIgMTE3MyAxMUJGO0IyQTg7MTEwMiAxMTczIDExQkY7CitCMkE5O0IyQTk7MTEwMiAxMTczIDExQzA7QjJBOTsxMTAyIDExNzMgMTFDMDsKK0IyQUE7QjJBQTsxMTAyIDExNzMgMTFDMTtCMkFBOzExMDIgMTE3MyAxMUMxOworQjJBQjtCMkFCOzExMDIgMTE3MyAxMUMyO0IyQUI7MTEwMiAxMTczIDExQzI7CitCMkFDO0IyQUM7MTEwMiAxMTc0O0IyQUM7MTEwMiAxMTc0OworQjJBRDtCMkFEOzExMDIgMTE3NCAxMUE4O0IyQUQ7MTEwMiAxMTc0IDExQTg7CitCMkFFO0IyQUU7MTEwMiAxMTc0IDExQTk7QjJBRTsxMTAyIDExNzQgMTFBOTsKK0IyQUY7QjJBRjsxMTAyIDExNzQgMTFBQTtCMkFGOzExMDIgMTE3NCAxMUFBOworQjJCMDtCMkIwOzExMDIgMTE3NCAxMUFCO0IyQjA7MTEwMiAxMTc0IDExQUI7CitCMkIxO0IyQjE7MTEwMiAxMTc0IDExQUM7QjJCMTsxMTAyIDExNzQgMTFBQzsKK0IyQjI7QjJCMjsxMTAyIDExNzQgMTFBRDtCMkIyOzExMDIgMTE3NCAxMUFEOworQjJCMztCMkIzOzExMDIgMTE3NCAxMUFFO0IyQjM7MTEwMiAxMTc0IDExQUU7CitCMkI0O0IyQjQ7MTEwMiAxMTc0IDExQUY7QjJCNDsxMTAyIDExNzQgMTFBRjsKK0IyQjU7QjJCNTsxMTAyIDExNzQgMTFCMDtCMkI1OzExMDIgMTE3NCAxMUIwOworQjJCNjtCMkI2OzExMDIgMTE3NCAxMUIxO0IyQjY7MTEwMiAxMTc0IDExQjE7CitCMkI3O0IyQjc7MTEwMiAxMTc0IDExQjI7QjJCNzsxMTAyIDExNzQgMTFCMjsKK0IyQjg7QjJCODsxMTAyIDExNzQgMTFCMztCMkI4OzExMDIgMTE3NCAxMUIzOworQjJCOTtCMkI5OzExMDIgMTE3NCAxMUI0O0IyQjk7MTEwMiAxMTc0IDExQjQ7CitCMkJBO0IyQkE7MTEwMiAxMTc0IDExQjU7QjJCQTsxMTAyIDExNzQgMTFCNTsKK0IyQkI7QjJCQjsxMTAyIDExNzQgMTFCNjtCMkJCOzExMDIgMTE3NCAxMUI2OworQjJCQztCMkJDOzExMDIgMTE3NCAxMUI3O0IyQkM7MTEwMiAxMTc0IDExQjc7CitCMkJEO0IyQkQ7MTEwMiAxMTc0IDExQjg7QjJCRDsxMTAyIDExNzQgMTFCODsKK0IyQkU7QjJCRTsxMTAyIDExNzQgMTFCOTtCMkJFOzExMDIgMTE3NCAxMUI5OworQjJCRjtCMkJGOzExMDIgMTE3NCAxMUJBO0IyQkY7MTEwMiAxMTc0IDExQkE7CitCMkMwO0IyQzA7MTEwMiAxMTc0IDExQkI7QjJDMDsxMTAyIDExNzQgMTFCQjsKK0IyQzE7QjJDMTsxMTAyIDExNzQgMTFCQztCMkMxOzExMDIgMTE3NCAxMUJDOworQjJDMjtCMkMyOzExMDIgMTE3NCAxMUJEO0IyQzI7MTEwMiAxMTc0IDExQkQ7CitCMkMzO0IyQzM7MTEwMiAxMTc0IDExQkU7QjJDMzsxMTAyIDExNzQgMTFCRTsKK0IyQzQ7QjJDNDsxMTAyIDExNzQgMTFCRjtCMkM0OzExMDIgMTE3NCAxMUJGOworQjJDNTtCMkM1OzExMDIgMTE3NCAxMUMwO0IyQzU7MTEwMiAxMTc0IDExQzA7CitCMkM2O0IyQzY7MTEwMiAxMTc0IDExQzE7QjJDNjsxMTAyIDExNzQgMTFDMTsKK0IyQzc7QjJDNzsxMTAyIDExNzQgMTFDMjtCMkM3OzExMDIgMTE3NCAxMUMyOworQjJDODtCMkM4OzExMDIgMTE3NTtCMkM4OzExMDIgMTE3NTsKK0IyQzk7QjJDOTsxMTAyIDExNzUgMTFBODtCMkM5OzExMDIgMTE3NSAxMUE4OworQjJDQTtCMkNBOzExMDIgMTE3NSAxMUE5O0IyQ0E7MTEwMiAxMTc1IDExQTk7CitCMkNCO0IyQ0I7MTEwMiAxMTc1IDExQUE7QjJDQjsxMTAyIDExNzUgMTFBQTsKK0IyQ0M7QjJDQzsxMTAyIDExNzUgMTFBQjtCMkNDOzExMDIgMTE3NSAxMUFCOworQjJDRDtCMkNEOzExMDIgMTE3NSAxMUFDO0IyQ0Q7MTEwMiAxMTc1IDExQUM7CitCMkNFO0IyQ0U7MTEwMiAxMTc1IDExQUQ7QjJDRTsxMTAyIDExNzUgMTFBRDsKK0IyQ0Y7QjJDRjsxMTAyIDExNzUgMTFBRTtCMkNGOzExMDIgMTE3NSAxMUFFOworQjJEMDtCMkQwOzExMDIgMTE3NSAxMUFGO0IyRDA7MTEwMiAxMTc1IDExQUY7CitCMkQxO0IyRDE7MTEwMiAxMTc1IDExQjA7QjJEMTsxMTAyIDExNzUgMTFCMDsKK0IyRDI7QjJEMjsxMTAyIDExNzUgMTFCMTtCMkQyOzExMDIgMTE3NSAxMUIxOworQjJEMztCMkQzOzExMDIgMTE3NSAxMUIyO0IyRDM7MTEwMiAxMTc1IDExQjI7CitCMkQ0O0IyRDQ7MTEwMiAxMTc1IDExQjM7QjJENDsxMTAyIDExNzUgMTFCMzsKK0IyRDU7QjJENTsxMTAyIDExNzUgMTFCNDtCMkQ1OzExMDIgMTE3NSAxMUI0OworQjJENjtCMkQ2OzExMDIgMTE3NSAxMUI1O0IyRDY7MTEwMiAxMTc1IDExQjU7CitCMkQ3O0IyRDc7MTEwMiAxMTc1IDExQjY7QjJENzsxMTAyIDExNzUgMTFCNjsKK0IyRDg7QjJEODsxMTAyIDExNzUgMTFCNztCMkQ4OzExMDIgMTE3NSAxMUI3OworQjJEOTtCMkQ5OzExMDIgMTE3NSAxMUI4O0IyRDk7MTEwMiAxMTc1IDExQjg7CitCMkRBO0IyREE7MTEwMiAxMTc1IDExQjk7QjJEQTsxMTAyIDExNzUgMTFCOTsKK0IyREI7QjJEQjsxMTAyIDExNzUgMTFCQTtCMkRCOzExMDIgMTE3NSAxMUJBOworQjJEQztCMkRDOzExMDIgMTE3NSAxMUJCO0IyREM7MTEwMiAxMTc1IDExQkI7CitCMkREO0IyREQ7MTEwMiAxMTc1IDExQkM7QjJERDsxMTAyIDExNzUgMTFCQzsKK0IyREU7QjJERTsxMTAyIDExNzUgMTFCRDtCMkRFOzExMDIgMTE3NSAxMUJEOworQjJERjtCMkRGOzExMDIgMTE3NSAxMUJFO0IyREY7MTEwMiAxMTc1IDExQkU7CitCMkUwO0IyRTA7MTEwMiAxMTc1IDExQkY7QjJFMDsxMTAyIDExNzUgMTFCRjsKK0IyRTE7QjJFMTsxMTAyIDExNzUgMTFDMDtCMkUxOzExMDIgMTE3NSAxMUMwOworQjJFMjtCMkUyOzExMDIgMTE3NSAxMUMxO0IyRTI7MTEwMiAxMTc1IDExQzE7CitCMkUzO0IyRTM7MTEwMiAxMTc1IDExQzI7QjJFMzsxMTAyIDExNzUgMTFDMjsKK0IyRTQ7QjJFNDsxMTAzIDExNjE7QjJFNDsxMTAzIDExNjE7CitCMkU1O0IyRTU7MTEwMyAxMTYxIDExQTg7QjJFNTsxMTAzIDExNjEgMTFBODsKK0IyRTY7QjJFNjsxMTAzIDExNjEgMTFBOTtCMkU2OzExMDMgMTE2MSAxMUE5OworQjJFNztCMkU3OzExMDMgMTE2MSAxMUFBO0IyRTc7MTEwMyAxMTYxIDExQUE7CitCMkU4O0IyRTg7MTEwMyAxMTYxIDExQUI7QjJFODsxMTAzIDExNjEgMTFBQjsKK0IyRTk7QjJFOTsxMTAzIDExNjEgMTFBQztCMkU5OzExMDMgMTE2MSAxMUFDOworQjJFQTtCMkVBOzExMDMgMTE2MSAxMUFEO0IyRUE7MTEwMyAxMTYxIDExQUQ7CitCMkVCO0IyRUI7MTEwMyAxMTYxIDExQUU7QjJFQjsxMTAzIDExNjEgMTFBRTsKK0IyRUM7QjJFQzsxMTAzIDExNjEgMTFBRjtCMkVDOzExMDMgMTE2MSAxMUFGOworQjJFRDtCMkVEOzExMDMgMTE2MSAxMUIwO0IyRUQ7MTEwMyAxMTYxIDExQjA7CitCMkVFO0IyRUU7MTEwMyAxMTYxIDExQjE7QjJFRTsxMTAzIDExNjEgMTFCMTsKK0IyRUY7QjJFRjsxMTAzIDExNjEgMTFCMjtCMkVGOzExMDMgMTE2MSAxMUIyOworQjJGMDtCMkYwOzExMDMgMTE2MSAxMUIzO0IyRjA7MTEwMyAxMTYxIDExQjM7CitCMkYxO0IyRjE7MTEwMyAxMTYxIDExQjQ7QjJGMTsxMTAzIDExNjEgMTFCNDsKK0IyRjI7QjJGMjsxMTAzIDExNjEgMTFCNTtCMkYyOzExMDMgMTE2MSAxMUI1OworQjJGMztCMkYzOzExMDMgMTE2MSAxMUI2O0IyRjM7MTEwMyAxMTYxIDExQjY7CitCMkY0O0IyRjQ7MTEwMyAxMTYxIDExQjc7QjJGNDsxMTAzIDExNjEgMTFCNzsKK0IyRjU7QjJGNTsxMTAzIDExNjEgMTFCODtCMkY1OzExMDMgMTE2MSAxMUI4OworQjJGNjtCMkY2OzExMDMgMTE2MSAxMUI5O0IyRjY7MTEwMyAxMTYxIDExQjk7CitCMkY3O0IyRjc7MTEwMyAxMTYxIDExQkE7QjJGNzsxMTAzIDExNjEgMTFCQTsKK0IyRjg7QjJGODsxMTAzIDExNjEgMTFCQjtCMkY4OzExMDMgMTE2MSAxMUJCOworQjJGOTtCMkY5OzExMDMgMTE2MSAxMUJDO0IyRjk7MTEwMyAxMTYxIDExQkM7CitCMkZBO0IyRkE7MTEwMyAxMTYxIDExQkQ7QjJGQTsxMTAzIDExNjEgMTFCRDsKK0IyRkI7QjJGQjsxMTAzIDExNjEgMTFCRTtCMkZCOzExMDMgMTE2MSAxMUJFOworQjJGQztCMkZDOzExMDMgMTE2MSAxMUJGO0IyRkM7MTEwMyAxMTYxIDExQkY7CitCMkZEO0IyRkQ7MTEwMyAxMTYxIDExQzA7QjJGRDsxMTAzIDExNjEgMTFDMDsKK0IyRkU7QjJGRTsxMTAzIDExNjEgMTFDMTtCMkZFOzExMDMgMTE2MSAxMUMxOworQjJGRjtCMkZGOzExMDMgMTE2MSAxMUMyO0IyRkY7MTEwMyAxMTYxIDExQzI7CitCMzAwO0IzMDA7MTEwMyAxMTYyO0IzMDA7MTEwMyAxMTYyOworQjMwMTtCMzAxOzExMDMgMTE2MiAxMUE4O0IzMDE7MTEwMyAxMTYyIDExQTg7CitCMzAyO0IzMDI7MTEwMyAxMTYyIDExQTk7QjMwMjsxMTAzIDExNjIgMTFBOTsKK0IzMDM7QjMwMzsxMTAzIDExNjIgMTFBQTtCMzAzOzExMDMgMTE2MiAxMUFBOworQjMwNDtCMzA0OzExMDMgMTE2MiAxMUFCO0IzMDQ7MTEwMyAxMTYyIDExQUI7CitCMzA1O0IzMDU7MTEwMyAxMTYyIDExQUM7QjMwNTsxMTAzIDExNjIgMTFBQzsKK0IzMDY7QjMwNjsxMTAzIDExNjIgMTFBRDtCMzA2OzExMDMgMTE2MiAxMUFEOworQjMwNztCMzA3OzExMDMgMTE2MiAxMUFFO0IzMDc7MTEwMyAxMTYyIDExQUU7CitCMzA4O0IzMDg7MTEwMyAxMTYyIDExQUY7QjMwODsxMTAzIDExNjIgMTFBRjsKK0IzMDk7QjMwOTsxMTAzIDExNjIgMTFCMDtCMzA5OzExMDMgMTE2MiAxMUIwOworQjMwQTtCMzBBOzExMDMgMTE2MiAxMUIxO0IzMEE7MTEwMyAxMTYyIDExQjE7CitCMzBCO0IzMEI7MTEwMyAxMTYyIDExQjI7QjMwQjsxMTAzIDExNjIgMTFCMjsKK0IzMEM7QjMwQzsxMTAzIDExNjIgMTFCMztCMzBDOzExMDMgMTE2MiAxMUIzOworQjMwRDtCMzBEOzExMDMgMTE2MiAxMUI0O0IzMEQ7MTEwMyAxMTYyIDExQjQ7CitCMzBFO0IzMEU7MTEwMyAxMTYyIDExQjU7QjMwRTsxMTAzIDExNjIgMTFCNTsKK0IzMEY7QjMwRjsxMTAzIDExNjIgMTFCNjtCMzBGOzExMDMgMTE2MiAxMUI2OworQjMxMDtCMzEwOzExMDMgMTE2MiAxMUI3O0IzMTA7MTEwMyAxMTYyIDExQjc7CitCMzExO0IzMTE7MTEwMyAxMTYyIDExQjg7QjMxMTsxMTAzIDExNjIgMTFCODsKK0IzMTI7QjMxMjsxMTAzIDExNjIgMTFCOTtCMzEyOzExMDMgMTE2MiAxMUI5OworQjMxMztCMzEzOzExMDMgMTE2MiAxMUJBO0IzMTM7MTEwMyAxMTYyIDExQkE7CitCMzE0O0IzMTQ7MTEwMyAxMTYyIDExQkI7QjMxNDsxMTAzIDExNjIgMTFCQjsKK0IzMTU7QjMxNTsxMTAzIDExNjIgMTFCQztCMzE1OzExMDMgMTE2MiAxMUJDOworQjMxNjtCMzE2OzExMDMgMTE2MiAxMUJEO0IzMTY7MTEwMyAxMTYyIDExQkQ7CitCMzE3O0IzMTc7MTEwMyAxMTYyIDExQkU7QjMxNzsxMTAzIDExNjIgMTFCRTsKK0IzMTg7QjMxODsxMTAzIDExNjIgMTFCRjtCMzE4OzExMDMgMTE2MiAxMUJGOworQjMxOTtCMzE5OzExMDMgMTE2MiAxMUMwO0IzMTk7MTEwMyAxMTYyIDExQzA7CitCMzFBO0IzMUE7MTEwMyAxMTYyIDExQzE7QjMxQTsxMTAzIDExNjIgMTFDMTsKK0IzMUI7QjMxQjsxMTAzIDExNjIgMTFDMjtCMzFCOzExMDMgMTE2MiAxMUMyOworQjMxQztCMzFDOzExMDMgMTE2MztCMzFDOzExMDMgMTE2MzsKK0IzMUQ7QjMxRDsxMTAzIDExNjMgMTFBODtCMzFEOzExMDMgMTE2MyAxMUE4OworQjMxRTtCMzFFOzExMDMgMTE2MyAxMUE5O0IzMUU7MTEwMyAxMTYzIDExQTk7CitCMzFGO0IzMUY7MTEwMyAxMTYzIDExQUE7QjMxRjsxMTAzIDExNjMgMTFBQTsKK0IzMjA7QjMyMDsxMTAzIDExNjMgMTFBQjtCMzIwOzExMDMgMTE2MyAxMUFCOworQjMyMTtCMzIxOzExMDMgMTE2MyAxMUFDO0IzMjE7MTEwMyAxMTYzIDExQUM7CitCMzIyO0IzMjI7MTEwMyAxMTYzIDExQUQ7QjMyMjsxMTAzIDExNjMgMTFBRDsKK0IzMjM7QjMyMzsxMTAzIDExNjMgMTFBRTtCMzIzOzExMDMgMTE2MyAxMUFFOworQjMyNDtCMzI0OzExMDMgMTE2MyAxMUFGO0IzMjQ7MTEwMyAxMTYzIDExQUY7CitCMzI1O0IzMjU7MTEwMyAxMTYzIDExQjA7QjMyNTsxMTAzIDExNjMgMTFCMDsKK0IzMjY7QjMyNjsxMTAzIDExNjMgMTFCMTtCMzI2OzExMDMgMTE2MyAxMUIxOworQjMyNztCMzI3OzExMDMgMTE2MyAxMUIyO0IzMjc7MTEwMyAxMTYzIDExQjI7CitCMzI4O0IzMjg7MTEwMyAxMTYzIDExQjM7QjMyODsxMTAzIDExNjMgMTFCMzsKK0IzMjk7QjMyOTsxMTAzIDExNjMgMTFCNDtCMzI5OzExMDMgMTE2MyAxMUI0OworQjMyQTtCMzJBOzExMDMgMTE2MyAxMUI1O0IzMkE7MTEwMyAxMTYzIDExQjU7CitCMzJCO0IzMkI7MTEwMyAxMTYzIDExQjY7QjMyQjsxMTAzIDExNjMgMTFCNjsKK0IzMkM7QjMyQzsxMTAzIDExNjMgMTFCNztCMzJDOzExMDMgMTE2MyAxMUI3OworQjMyRDtCMzJEOzExMDMgMTE2MyAxMUI4O0IzMkQ7MTEwMyAxMTYzIDExQjg7CitCMzJFO0IzMkU7MTEwMyAxMTYzIDExQjk7QjMyRTsxMTAzIDExNjMgMTFCOTsKK0IzMkY7QjMyRjsxMTAzIDExNjMgMTFCQTtCMzJGOzExMDMgMTE2MyAxMUJBOworQjMzMDtCMzMwOzExMDMgMTE2MyAxMUJCO0IzMzA7MTEwMyAxMTYzIDExQkI7CitCMzMxO0IzMzE7MTEwMyAxMTYzIDExQkM7QjMzMTsxMTAzIDExNjMgMTFCQzsKK0IzMzI7QjMzMjsxMTAzIDExNjMgMTFCRDtCMzMyOzExMDMgMTE2MyAxMUJEOworQjMzMztCMzMzOzExMDMgMTE2MyAxMUJFO0IzMzM7MTEwMyAxMTYzIDExQkU7CitCMzM0O0IzMzQ7MTEwMyAxMTYzIDExQkY7QjMzNDsxMTAzIDExNjMgMTFCRjsKK0IzMzU7QjMzNTsxMTAzIDExNjMgMTFDMDtCMzM1OzExMDMgMTE2MyAxMUMwOworQjMzNjtCMzM2OzExMDMgMTE2MyAxMUMxO0IzMzY7MTEwMyAxMTYzIDExQzE7CitCMzM3O0IzMzc7MTEwMyAxMTYzIDExQzI7QjMzNzsxMTAzIDExNjMgMTFDMjsKK0IzMzg7QjMzODsxMTAzIDExNjQ7QjMzODsxMTAzIDExNjQ7CitCMzM5O0IzMzk7MTEwMyAxMTY0IDExQTg7QjMzOTsxMTAzIDExNjQgMTFBODsKK0IzM0E7QjMzQTsxMTAzIDExNjQgMTFBOTtCMzNBOzExMDMgMTE2NCAxMUE5OworQjMzQjtCMzNCOzExMDMgMTE2NCAxMUFBO0IzM0I7MTEwMyAxMTY0IDExQUE7CitCMzNDO0IzM0M7MTEwMyAxMTY0IDExQUI7QjMzQzsxMTAzIDExNjQgMTFBQjsKK0IzM0Q7QjMzRDsxMTAzIDExNjQgMTFBQztCMzNEOzExMDMgMTE2NCAxMUFDOworQjMzRTtCMzNFOzExMDMgMTE2NCAxMUFEO0IzM0U7MTEwMyAxMTY0IDExQUQ7CitCMzNGO0IzM0Y7MTEwMyAxMTY0IDExQUU7QjMzRjsxMTAzIDExNjQgMTFBRTsKK0IzNDA7QjM0MDsxMTAzIDExNjQgMTFBRjtCMzQwOzExMDMgMTE2NCAxMUFGOworQjM0MTtCMzQxOzExMDMgMTE2NCAxMUIwO0IzNDE7MTEwMyAxMTY0IDExQjA7CitCMzQyO0IzNDI7MTEwMyAxMTY0IDExQjE7QjM0MjsxMTAzIDExNjQgMTFCMTsKK0IzNDM7QjM0MzsxMTAzIDExNjQgMTFCMjtCMzQzOzExMDMgMTE2NCAxMUIyOworQjM0NDtCMzQ0OzExMDMgMTE2NCAxMUIzO0IzNDQ7MTEwMyAxMTY0IDExQjM7CitCMzQ1O0IzNDU7MTEwMyAxMTY0IDExQjQ7QjM0NTsxMTAzIDExNjQgMTFCNDsKK0IzNDY7QjM0NjsxMTAzIDExNjQgMTFCNTtCMzQ2OzExMDMgMTE2NCAxMUI1OworQjM0NztCMzQ3OzExMDMgMTE2NCAxMUI2O0IzNDc7MTEwMyAxMTY0IDExQjY7CitCMzQ4O0IzNDg7MTEwMyAxMTY0IDExQjc7QjM0ODsxMTAzIDExNjQgMTFCNzsKK0IzNDk7QjM0OTsxMTAzIDExNjQgMTFCODtCMzQ5OzExMDMgMTE2NCAxMUI4OworQjM0QTtCMzRBOzExMDMgMTE2NCAxMUI5O0IzNEE7MTEwMyAxMTY0IDExQjk7CitCMzRCO0IzNEI7MTEwMyAxMTY0IDExQkE7QjM0QjsxMTAzIDExNjQgMTFCQTsKK0IzNEM7QjM0QzsxMTAzIDExNjQgMTFCQjtCMzRDOzExMDMgMTE2NCAxMUJCOworQjM0RDtCMzREOzExMDMgMTE2NCAxMUJDO0IzNEQ7MTEwMyAxMTY0IDExQkM7CitCMzRFO0IzNEU7MTEwMyAxMTY0IDExQkQ7QjM0RTsxMTAzIDExNjQgMTFCRDsKK0IzNEY7QjM0RjsxMTAzIDExNjQgMTFCRTtCMzRGOzExMDMgMTE2NCAxMUJFOworQjM1MDtCMzUwOzExMDMgMTE2NCAxMUJGO0IzNTA7MTEwMyAxMTY0IDExQkY7CitCMzUxO0IzNTE7MTEwMyAxMTY0IDExQzA7QjM1MTsxMTAzIDExNjQgMTFDMDsKK0IzNTI7QjM1MjsxMTAzIDExNjQgMTFDMTtCMzUyOzExMDMgMTE2NCAxMUMxOworQjM1MztCMzUzOzExMDMgMTE2NCAxMUMyO0IzNTM7MTEwMyAxMTY0IDExQzI7CitCMzU0O0IzNTQ7MTEwMyAxMTY1O0IzNTQ7MTEwMyAxMTY1OworQjM1NTtCMzU1OzExMDMgMTE2NSAxMUE4O0IzNTU7MTEwMyAxMTY1IDExQTg7CitCMzU2O0IzNTY7MTEwMyAxMTY1IDExQTk7QjM1NjsxMTAzIDExNjUgMTFBOTsKK0IzNTc7QjM1NzsxMTAzIDExNjUgMTFBQTtCMzU3OzExMDMgMTE2NSAxMUFBOworQjM1ODtCMzU4OzExMDMgMTE2NSAxMUFCO0IzNTg7MTEwMyAxMTY1IDExQUI7CitCMzU5O0IzNTk7MTEwMyAxMTY1IDExQUM7QjM1OTsxMTAzIDExNjUgMTFBQzsKK0IzNUE7QjM1QTsxMTAzIDExNjUgMTFBRDtCMzVBOzExMDMgMTE2NSAxMUFEOworQjM1QjtCMzVCOzExMDMgMTE2NSAxMUFFO0IzNUI7MTEwMyAxMTY1IDExQUU7CitCMzVDO0IzNUM7MTEwMyAxMTY1IDExQUY7QjM1QzsxMTAzIDExNjUgMTFBRjsKK0IzNUQ7QjM1RDsxMTAzIDExNjUgMTFCMDtCMzVEOzExMDMgMTE2NSAxMUIwOworQjM1RTtCMzVFOzExMDMgMTE2NSAxMUIxO0IzNUU7MTEwMyAxMTY1IDExQjE7CitCMzVGO0IzNUY7MTEwMyAxMTY1IDExQjI7QjM1RjsxMTAzIDExNjUgMTFCMjsKK0IzNjA7QjM2MDsxMTAzIDExNjUgMTFCMztCMzYwOzExMDMgMTE2NSAxMUIzOworQjM2MTtCMzYxOzExMDMgMTE2NSAxMUI0O0IzNjE7MTEwMyAxMTY1IDExQjQ7CitCMzYyO0IzNjI7MTEwMyAxMTY1IDExQjU7QjM2MjsxMTAzIDExNjUgMTFCNTsKK0IzNjM7QjM2MzsxMTAzIDExNjUgMTFCNjtCMzYzOzExMDMgMTE2NSAxMUI2OworQjM2NDtCMzY0OzExMDMgMTE2NSAxMUI3O0IzNjQ7MTEwMyAxMTY1IDExQjc7CitCMzY1O0IzNjU7MTEwMyAxMTY1IDExQjg7QjM2NTsxMTAzIDExNjUgMTFCODsKK0IzNjY7QjM2NjsxMTAzIDExNjUgMTFCOTtCMzY2OzExMDMgMTE2NSAxMUI5OworQjM2NztCMzY3OzExMDMgMTE2NSAxMUJBO0IzNjc7MTEwMyAxMTY1IDExQkE7CitCMzY4O0IzNjg7MTEwMyAxMTY1IDExQkI7QjM2ODsxMTAzIDExNjUgMTFCQjsKK0IzNjk7QjM2OTsxMTAzIDExNjUgMTFCQztCMzY5OzExMDMgMTE2NSAxMUJDOworQjM2QTtCMzZBOzExMDMgMTE2NSAxMUJEO0IzNkE7MTEwMyAxMTY1IDExQkQ7CitCMzZCO0IzNkI7MTEwMyAxMTY1IDExQkU7QjM2QjsxMTAzIDExNjUgMTFCRTsKK0IzNkM7QjM2QzsxMTAzIDExNjUgMTFCRjtCMzZDOzExMDMgMTE2NSAxMUJGOworQjM2RDtCMzZEOzExMDMgMTE2NSAxMUMwO0IzNkQ7MTEwMyAxMTY1IDExQzA7CitCMzZFO0IzNkU7MTEwMyAxMTY1IDExQzE7QjM2RTsxMTAzIDExNjUgMTFDMTsKK0IzNkY7QjM2RjsxMTAzIDExNjUgMTFDMjtCMzZGOzExMDMgMTE2NSAxMUMyOworQjM3MDtCMzcwOzExMDMgMTE2NjtCMzcwOzExMDMgMTE2NjsKK0IzNzE7QjM3MTsxMTAzIDExNjYgMTFBODtCMzcxOzExMDMgMTE2NiAxMUE4OworQjM3MjtCMzcyOzExMDMgMTE2NiAxMUE5O0IzNzI7MTEwMyAxMTY2IDExQTk7CitCMzczO0IzNzM7MTEwMyAxMTY2IDExQUE7QjM3MzsxMTAzIDExNjYgMTFBQTsKK0IzNzQ7QjM3NDsxMTAzIDExNjYgMTFBQjtCMzc0OzExMDMgMTE2NiAxMUFCOworQjM3NTtCMzc1OzExMDMgMTE2NiAxMUFDO0IzNzU7MTEwMyAxMTY2IDExQUM7CitCMzc2O0IzNzY7MTEwMyAxMTY2IDExQUQ7QjM3NjsxMTAzIDExNjYgMTFBRDsKK0IzNzc7QjM3NzsxMTAzIDExNjYgMTFBRTtCMzc3OzExMDMgMTE2NiAxMUFFOworQjM3ODtCMzc4OzExMDMgMTE2NiAxMUFGO0IzNzg7MTEwMyAxMTY2IDExQUY7CitCMzc5O0IzNzk7MTEwMyAxMTY2IDExQjA7QjM3OTsxMTAzIDExNjYgMTFCMDsKK0IzN0E7QjM3QTsxMTAzIDExNjYgMTFCMTtCMzdBOzExMDMgMTE2NiAxMUIxOworQjM3QjtCMzdCOzExMDMgMTE2NiAxMUIyO0IzN0I7MTEwMyAxMTY2IDExQjI7CitCMzdDO0IzN0M7MTEwMyAxMTY2IDExQjM7QjM3QzsxMTAzIDExNjYgMTFCMzsKK0IzN0Q7QjM3RDsxMTAzIDExNjYgMTFCNDtCMzdEOzExMDMgMTE2NiAxMUI0OworQjM3RTtCMzdFOzExMDMgMTE2NiAxMUI1O0IzN0U7MTEwMyAxMTY2IDExQjU7CitCMzdGO0IzN0Y7MTEwMyAxMTY2IDExQjY7QjM3RjsxMTAzIDExNjYgMTFCNjsKK0IzODA7QjM4MDsxMTAzIDExNjYgMTFCNztCMzgwOzExMDMgMTE2NiAxMUI3OworQjM4MTtCMzgxOzExMDMgMTE2NiAxMUI4O0IzODE7MTEwMyAxMTY2IDExQjg7CitCMzgyO0IzODI7MTEwMyAxMTY2IDExQjk7QjM4MjsxMTAzIDExNjYgMTFCOTsKK0IzODM7QjM4MzsxMTAzIDExNjYgMTFCQTtCMzgzOzExMDMgMTE2NiAxMUJBOworQjM4NDtCMzg0OzExMDMgMTE2NiAxMUJCO0IzODQ7MTEwMyAxMTY2IDExQkI7CitCMzg1O0IzODU7MTEwMyAxMTY2IDExQkM7QjM4NTsxMTAzIDExNjYgMTFCQzsKK0IzODY7QjM4NjsxMTAzIDExNjYgMTFCRDtCMzg2OzExMDMgMTE2NiAxMUJEOworQjM4NztCMzg3OzExMDMgMTE2NiAxMUJFO0IzODc7MTEwMyAxMTY2IDExQkU7CitCMzg4O0IzODg7MTEwMyAxMTY2IDExQkY7QjM4ODsxMTAzIDExNjYgMTFCRjsKK0IzODk7QjM4OTsxMTAzIDExNjYgMTFDMDtCMzg5OzExMDMgMTE2NiAxMUMwOworQjM4QTtCMzhBOzExMDMgMTE2NiAxMUMxO0IzOEE7MTEwMyAxMTY2IDExQzE7CitCMzhCO0IzOEI7MTEwMyAxMTY2IDExQzI7QjM4QjsxMTAzIDExNjYgMTFDMjsKK0IzOEM7QjM4QzsxMTAzIDExNjc7QjM4QzsxMTAzIDExNjc7CitCMzhEO0IzOEQ7MTEwMyAxMTY3IDExQTg7QjM4RDsxMTAzIDExNjcgMTFBODsKK0IzOEU7QjM4RTsxMTAzIDExNjcgMTFBOTtCMzhFOzExMDMgMTE2NyAxMUE5OworQjM4RjtCMzhGOzExMDMgMTE2NyAxMUFBO0IzOEY7MTEwMyAxMTY3IDExQUE7CitCMzkwO0IzOTA7MTEwMyAxMTY3IDExQUI7QjM5MDsxMTAzIDExNjcgMTFBQjsKK0IzOTE7QjM5MTsxMTAzIDExNjcgMTFBQztCMzkxOzExMDMgMTE2NyAxMUFDOworQjM5MjtCMzkyOzExMDMgMTE2NyAxMUFEO0IzOTI7MTEwMyAxMTY3IDExQUQ7CitCMzkzO0IzOTM7MTEwMyAxMTY3IDExQUU7QjM5MzsxMTAzIDExNjcgMTFBRTsKK0IzOTQ7QjM5NDsxMTAzIDExNjcgMTFBRjtCMzk0OzExMDMgMTE2NyAxMUFGOworQjM5NTtCMzk1OzExMDMgMTE2NyAxMUIwO0IzOTU7MTEwMyAxMTY3IDExQjA7CitCMzk2O0IzOTY7MTEwMyAxMTY3IDExQjE7QjM5NjsxMTAzIDExNjcgMTFCMTsKK0IzOTc7QjM5NzsxMTAzIDExNjcgMTFCMjtCMzk3OzExMDMgMTE2NyAxMUIyOworQjM5ODtCMzk4OzExMDMgMTE2NyAxMUIzO0IzOTg7MTEwMyAxMTY3IDExQjM7CitCMzk5O0IzOTk7MTEwMyAxMTY3IDExQjQ7QjM5OTsxMTAzIDExNjcgMTFCNDsKK0IzOUE7QjM5QTsxMTAzIDExNjcgMTFCNTtCMzlBOzExMDMgMTE2NyAxMUI1OworQjM5QjtCMzlCOzExMDMgMTE2NyAxMUI2O0IzOUI7MTEwMyAxMTY3IDExQjY7CitCMzlDO0IzOUM7MTEwMyAxMTY3IDExQjc7QjM5QzsxMTAzIDExNjcgMTFCNzsKK0IzOUQ7QjM5RDsxMTAzIDExNjcgMTFCODtCMzlEOzExMDMgMTE2NyAxMUI4OworQjM5RTtCMzlFOzExMDMgMTE2NyAxMUI5O0IzOUU7MTEwMyAxMTY3IDExQjk7CitCMzlGO0IzOUY7MTEwMyAxMTY3IDExQkE7QjM5RjsxMTAzIDExNjcgMTFCQTsKK0IzQTA7QjNBMDsxMTAzIDExNjcgMTFCQjtCM0EwOzExMDMgMTE2NyAxMUJCOworQjNBMTtCM0ExOzExMDMgMTE2NyAxMUJDO0IzQTE7MTEwMyAxMTY3IDExQkM7CitCM0EyO0IzQTI7MTEwMyAxMTY3IDExQkQ7QjNBMjsxMTAzIDExNjcgMTFCRDsKK0IzQTM7QjNBMzsxMTAzIDExNjcgMTFCRTtCM0EzOzExMDMgMTE2NyAxMUJFOworQjNBNDtCM0E0OzExMDMgMTE2NyAxMUJGO0IzQTQ7MTEwMyAxMTY3IDExQkY7CitCM0E1O0IzQTU7MTEwMyAxMTY3IDExQzA7QjNBNTsxMTAzIDExNjcgMTFDMDsKK0IzQTY7QjNBNjsxMTAzIDExNjcgMTFDMTtCM0E2OzExMDMgMTE2NyAxMUMxOworQjNBNztCM0E3OzExMDMgMTE2NyAxMUMyO0IzQTc7MTEwMyAxMTY3IDExQzI7CitCM0E4O0IzQTg7MTEwMyAxMTY4O0IzQTg7MTEwMyAxMTY4OworQjNBOTtCM0E5OzExMDMgMTE2OCAxMUE4O0IzQTk7MTEwMyAxMTY4IDExQTg7CitCM0FBO0IzQUE7MTEwMyAxMTY4IDExQTk7QjNBQTsxMTAzIDExNjggMTFBOTsKK0IzQUI7QjNBQjsxMTAzIDExNjggMTFBQTtCM0FCOzExMDMgMTE2OCAxMUFBOworQjNBQztCM0FDOzExMDMgMTE2OCAxMUFCO0IzQUM7MTEwMyAxMTY4IDExQUI7CitCM0FEO0IzQUQ7MTEwMyAxMTY4IDExQUM7QjNBRDsxMTAzIDExNjggMTFBQzsKK0IzQUU7QjNBRTsxMTAzIDExNjggMTFBRDtCM0FFOzExMDMgMTE2OCAxMUFEOworQjNBRjtCM0FGOzExMDMgMTE2OCAxMUFFO0IzQUY7MTEwMyAxMTY4IDExQUU7CitCM0IwO0IzQjA7MTEwMyAxMTY4IDExQUY7QjNCMDsxMTAzIDExNjggMTFBRjsKK0IzQjE7QjNCMTsxMTAzIDExNjggMTFCMDtCM0IxOzExMDMgMTE2OCAxMUIwOworQjNCMjtCM0IyOzExMDMgMTE2OCAxMUIxO0IzQjI7MTEwMyAxMTY4IDExQjE7CitCM0IzO0IzQjM7MTEwMyAxMTY4IDExQjI7QjNCMzsxMTAzIDExNjggMTFCMjsKK0IzQjQ7QjNCNDsxMTAzIDExNjggMTFCMztCM0I0OzExMDMgMTE2OCAxMUIzOworQjNCNTtCM0I1OzExMDMgMTE2OCAxMUI0O0IzQjU7MTEwMyAxMTY4IDExQjQ7CitCM0I2O0IzQjY7MTEwMyAxMTY4IDExQjU7QjNCNjsxMTAzIDExNjggMTFCNTsKK0IzQjc7QjNCNzsxMTAzIDExNjggMTFCNjtCM0I3OzExMDMgMTE2OCAxMUI2OworQjNCODtCM0I4OzExMDMgMTE2OCAxMUI3O0IzQjg7MTEwMyAxMTY4IDExQjc7CitCM0I5O0IzQjk7MTEwMyAxMTY4IDExQjg7QjNCOTsxMTAzIDExNjggMTFCODsKK0IzQkE7QjNCQTsxMTAzIDExNjggMTFCOTtCM0JBOzExMDMgMTE2OCAxMUI5OworQjNCQjtCM0JCOzExMDMgMTE2OCAxMUJBO0IzQkI7MTEwMyAxMTY4IDExQkE7CitCM0JDO0IzQkM7MTEwMyAxMTY4IDExQkI7QjNCQzsxMTAzIDExNjggMTFCQjsKK0IzQkQ7QjNCRDsxMTAzIDExNjggMTFCQztCM0JEOzExMDMgMTE2OCAxMUJDOworQjNCRTtCM0JFOzExMDMgMTE2OCAxMUJEO0IzQkU7MTEwMyAxMTY4IDExQkQ7CitCM0JGO0IzQkY7MTEwMyAxMTY4IDExQkU7QjNCRjsxMTAzIDExNjggMTFCRTsKK0IzQzA7QjNDMDsxMTAzIDExNjggMTFCRjtCM0MwOzExMDMgMTE2OCAxMUJGOworQjNDMTtCM0MxOzExMDMgMTE2OCAxMUMwO0IzQzE7MTEwMyAxMTY4IDExQzA7CitCM0MyO0IzQzI7MTEwMyAxMTY4IDExQzE7QjNDMjsxMTAzIDExNjggMTFDMTsKK0IzQzM7QjNDMzsxMTAzIDExNjggMTFDMjtCM0MzOzExMDMgMTE2OCAxMUMyOworQjNDNDtCM0M0OzExMDMgMTE2OTtCM0M0OzExMDMgMTE2OTsKK0IzQzU7QjNDNTsxMTAzIDExNjkgMTFBODtCM0M1OzExMDMgMTE2OSAxMUE4OworQjNDNjtCM0M2OzExMDMgMTE2OSAxMUE5O0IzQzY7MTEwMyAxMTY5IDExQTk7CitCM0M3O0IzQzc7MTEwMyAxMTY5IDExQUE7QjNDNzsxMTAzIDExNjkgMTFBQTsKK0IzQzg7QjNDODsxMTAzIDExNjkgMTFBQjtCM0M4OzExMDMgMTE2OSAxMUFCOworQjNDOTtCM0M5OzExMDMgMTE2OSAxMUFDO0IzQzk7MTEwMyAxMTY5IDExQUM7CitCM0NBO0IzQ0E7MTEwMyAxMTY5IDExQUQ7QjNDQTsxMTAzIDExNjkgMTFBRDsKK0IzQ0I7QjNDQjsxMTAzIDExNjkgMTFBRTtCM0NCOzExMDMgMTE2OSAxMUFFOworQjNDQztCM0NDOzExMDMgMTE2OSAxMUFGO0IzQ0M7MTEwMyAxMTY5IDExQUY7CitCM0NEO0IzQ0Q7MTEwMyAxMTY5IDExQjA7QjNDRDsxMTAzIDExNjkgMTFCMDsKK0IzQ0U7QjNDRTsxMTAzIDExNjkgMTFCMTtCM0NFOzExMDMgMTE2OSAxMUIxOworQjNDRjtCM0NGOzExMDMgMTE2OSAxMUIyO0IzQ0Y7MTEwMyAxMTY5IDExQjI7CitCM0QwO0IzRDA7MTEwMyAxMTY5IDExQjM7QjNEMDsxMTAzIDExNjkgMTFCMzsKK0IzRDE7QjNEMTsxMTAzIDExNjkgMTFCNDtCM0QxOzExMDMgMTE2OSAxMUI0OworQjNEMjtCM0QyOzExMDMgMTE2OSAxMUI1O0IzRDI7MTEwMyAxMTY5IDExQjU7CitCM0QzO0IzRDM7MTEwMyAxMTY5IDExQjY7QjNEMzsxMTAzIDExNjkgMTFCNjsKK0IzRDQ7QjNENDsxMTAzIDExNjkgMTFCNztCM0Q0OzExMDMgMTE2OSAxMUI3OworQjNENTtCM0Q1OzExMDMgMTE2OSAxMUI4O0IzRDU7MTEwMyAxMTY5IDExQjg7CitCM0Q2O0IzRDY7MTEwMyAxMTY5IDExQjk7QjNENjsxMTAzIDExNjkgMTFCOTsKK0IzRDc7QjNENzsxMTAzIDExNjkgMTFCQTtCM0Q3OzExMDMgMTE2OSAxMUJBOworQjNEODtCM0Q4OzExMDMgMTE2OSAxMUJCO0IzRDg7MTEwMyAxMTY5IDExQkI7CitCM0Q5O0IzRDk7MTEwMyAxMTY5IDExQkM7QjNEOTsxMTAzIDExNjkgMTFCQzsKK0IzREE7QjNEQTsxMTAzIDExNjkgMTFCRDtCM0RBOzExMDMgMTE2OSAxMUJEOworQjNEQjtCM0RCOzExMDMgMTE2OSAxMUJFO0IzREI7MTEwMyAxMTY5IDExQkU7CitCM0RDO0IzREM7MTEwMyAxMTY5IDExQkY7QjNEQzsxMTAzIDExNjkgMTFCRjsKK0IzREQ7QjNERDsxMTAzIDExNjkgMTFDMDtCM0REOzExMDMgMTE2OSAxMUMwOworQjNERTtCM0RFOzExMDMgMTE2OSAxMUMxO0IzREU7MTEwMyAxMTY5IDExQzE7CitCM0RGO0IzREY7MTEwMyAxMTY5IDExQzI7QjNERjsxMTAzIDExNjkgMTFDMjsKK0IzRTA7QjNFMDsxMTAzIDExNkE7QjNFMDsxMTAzIDExNkE7CitCM0UxO0IzRTE7MTEwMyAxMTZBIDExQTg7QjNFMTsxMTAzIDExNkEgMTFBODsKK0IzRTI7QjNFMjsxMTAzIDExNkEgMTFBOTtCM0UyOzExMDMgMTE2QSAxMUE5OworQjNFMztCM0UzOzExMDMgMTE2QSAxMUFBO0IzRTM7MTEwMyAxMTZBIDExQUE7CitCM0U0O0IzRTQ7MTEwMyAxMTZBIDExQUI7QjNFNDsxMTAzIDExNkEgMTFBQjsKK0IzRTU7QjNFNTsxMTAzIDExNkEgMTFBQztCM0U1OzExMDMgMTE2QSAxMUFDOworQjNFNjtCM0U2OzExMDMgMTE2QSAxMUFEO0IzRTY7MTEwMyAxMTZBIDExQUQ7CitCM0U3O0IzRTc7MTEwMyAxMTZBIDExQUU7QjNFNzsxMTAzIDExNkEgMTFBRTsKK0IzRTg7QjNFODsxMTAzIDExNkEgMTFBRjtCM0U4OzExMDMgMTE2QSAxMUFGOworQjNFOTtCM0U5OzExMDMgMTE2QSAxMUIwO0IzRTk7MTEwMyAxMTZBIDExQjA7CitCM0VBO0IzRUE7MTEwMyAxMTZBIDExQjE7QjNFQTsxMTAzIDExNkEgMTFCMTsKK0IzRUI7QjNFQjsxMTAzIDExNkEgMTFCMjtCM0VCOzExMDMgMTE2QSAxMUIyOworQjNFQztCM0VDOzExMDMgMTE2QSAxMUIzO0IzRUM7MTEwMyAxMTZBIDExQjM7CitCM0VEO0IzRUQ7MTEwMyAxMTZBIDExQjQ7QjNFRDsxMTAzIDExNkEgMTFCNDsKK0IzRUU7QjNFRTsxMTAzIDExNkEgMTFCNTtCM0VFOzExMDMgMTE2QSAxMUI1OworQjNFRjtCM0VGOzExMDMgMTE2QSAxMUI2O0IzRUY7MTEwMyAxMTZBIDExQjY7CitCM0YwO0IzRjA7MTEwMyAxMTZBIDExQjc7QjNGMDsxMTAzIDExNkEgMTFCNzsKK0IzRjE7QjNGMTsxMTAzIDExNkEgMTFCODtCM0YxOzExMDMgMTE2QSAxMUI4OworQjNGMjtCM0YyOzExMDMgMTE2QSAxMUI5O0IzRjI7MTEwMyAxMTZBIDExQjk7CitCM0YzO0IzRjM7MTEwMyAxMTZBIDExQkE7QjNGMzsxMTAzIDExNkEgMTFCQTsKK0IzRjQ7QjNGNDsxMTAzIDExNkEgMTFCQjtCM0Y0OzExMDMgMTE2QSAxMUJCOworQjNGNTtCM0Y1OzExMDMgMTE2QSAxMUJDO0IzRjU7MTEwMyAxMTZBIDExQkM7CitCM0Y2O0IzRjY7MTEwMyAxMTZBIDExQkQ7QjNGNjsxMTAzIDExNkEgMTFCRDsKK0IzRjc7QjNGNzsxMTAzIDExNkEgMTFCRTtCM0Y3OzExMDMgMTE2QSAxMUJFOworQjNGODtCM0Y4OzExMDMgMTE2QSAxMUJGO0IzRjg7MTEwMyAxMTZBIDExQkY7CitCM0Y5O0IzRjk7MTEwMyAxMTZBIDExQzA7QjNGOTsxMTAzIDExNkEgMTFDMDsKK0IzRkE7QjNGQTsxMTAzIDExNkEgMTFDMTtCM0ZBOzExMDMgMTE2QSAxMUMxOworQjNGQjtCM0ZCOzExMDMgMTE2QSAxMUMyO0IzRkI7MTEwMyAxMTZBIDExQzI7CitCM0ZDO0IzRkM7MTEwMyAxMTZCO0IzRkM7MTEwMyAxMTZCOworQjNGRDtCM0ZEOzExMDMgMTE2QiAxMUE4O0IzRkQ7MTEwMyAxMTZCIDExQTg7CitCM0ZFO0IzRkU7MTEwMyAxMTZCIDExQTk7QjNGRTsxMTAzIDExNkIgMTFBOTsKK0IzRkY7QjNGRjsxMTAzIDExNkIgMTFBQTtCM0ZGOzExMDMgMTE2QiAxMUFBOworQjQwMDtCNDAwOzExMDMgMTE2QiAxMUFCO0I0MDA7MTEwMyAxMTZCIDExQUI7CitCNDAxO0I0MDE7MTEwMyAxMTZCIDExQUM7QjQwMTsxMTAzIDExNkIgMTFBQzsKK0I0MDI7QjQwMjsxMTAzIDExNkIgMTFBRDtCNDAyOzExMDMgMTE2QiAxMUFEOworQjQwMztCNDAzOzExMDMgMTE2QiAxMUFFO0I0MDM7MTEwMyAxMTZCIDExQUU7CitCNDA0O0I0MDQ7MTEwMyAxMTZCIDExQUY7QjQwNDsxMTAzIDExNkIgMTFBRjsKK0I0MDU7QjQwNTsxMTAzIDExNkIgMTFCMDtCNDA1OzExMDMgMTE2QiAxMUIwOworQjQwNjtCNDA2OzExMDMgMTE2QiAxMUIxO0I0MDY7MTEwMyAxMTZCIDExQjE7CitCNDA3O0I0MDc7MTEwMyAxMTZCIDExQjI7QjQwNzsxMTAzIDExNkIgMTFCMjsKK0I0MDg7QjQwODsxMTAzIDExNkIgMTFCMztCNDA4OzExMDMgMTE2QiAxMUIzOworQjQwOTtCNDA5OzExMDMgMTE2QiAxMUI0O0I0MDk7MTEwMyAxMTZCIDExQjQ7CitCNDBBO0I0MEE7MTEwMyAxMTZCIDExQjU7QjQwQTsxMTAzIDExNkIgMTFCNTsKK0I0MEI7QjQwQjsxMTAzIDExNkIgMTFCNjtCNDBCOzExMDMgMTE2QiAxMUI2OworQjQwQztCNDBDOzExMDMgMTE2QiAxMUI3O0I0MEM7MTEwMyAxMTZCIDExQjc7CitCNDBEO0I0MEQ7MTEwMyAxMTZCIDExQjg7QjQwRDsxMTAzIDExNkIgMTFCODsKK0I0MEU7QjQwRTsxMTAzIDExNkIgMTFCOTtCNDBFOzExMDMgMTE2QiAxMUI5OworQjQwRjtCNDBGOzExMDMgMTE2QiAxMUJBO0I0MEY7MTEwMyAxMTZCIDExQkE7CitCNDEwO0I0MTA7MTEwMyAxMTZCIDExQkI7QjQxMDsxMTAzIDExNkIgMTFCQjsKK0I0MTE7QjQxMTsxMTAzIDExNkIgMTFCQztCNDExOzExMDMgMTE2QiAxMUJDOworQjQxMjtCNDEyOzExMDMgMTE2QiAxMUJEO0I0MTI7MTEwMyAxMTZCIDExQkQ7CitCNDEzO0I0MTM7MTEwMyAxMTZCIDExQkU7QjQxMzsxMTAzIDExNkIgMTFCRTsKK0I0MTQ7QjQxNDsxMTAzIDExNkIgMTFCRjtCNDE0OzExMDMgMTE2QiAxMUJGOworQjQxNTtCNDE1OzExMDMgMTE2QiAxMUMwO0I0MTU7MTEwMyAxMTZCIDExQzA7CitCNDE2O0I0MTY7MTEwMyAxMTZCIDExQzE7QjQxNjsxMTAzIDExNkIgMTFDMTsKK0I0MTc7QjQxNzsxMTAzIDExNkIgMTFDMjtCNDE3OzExMDMgMTE2QiAxMUMyOworQjQxODtCNDE4OzExMDMgMTE2QztCNDE4OzExMDMgMTE2QzsKK0I0MTk7QjQxOTsxMTAzIDExNkMgMTFBODtCNDE5OzExMDMgMTE2QyAxMUE4OworQjQxQTtCNDFBOzExMDMgMTE2QyAxMUE5O0I0MUE7MTEwMyAxMTZDIDExQTk7CitCNDFCO0I0MUI7MTEwMyAxMTZDIDExQUE7QjQxQjsxMTAzIDExNkMgMTFBQTsKK0I0MUM7QjQxQzsxMTAzIDExNkMgMTFBQjtCNDFDOzExMDMgMTE2QyAxMUFCOworQjQxRDtCNDFEOzExMDMgMTE2QyAxMUFDO0I0MUQ7MTEwMyAxMTZDIDExQUM7CitCNDFFO0I0MUU7MTEwMyAxMTZDIDExQUQ7QjQxRTsxMTAzIDExNkMgMTFBRDsKK0I0MUY7QjQxRjsxMTAzIDExNkMgMTFBRTtCNDFGOzExMDMgMTE2QyAxMUFFOworQjQyMDtCNDIwOzExMDMgMTE2QyAxMUFGO0I0MjA7MTEwMyAxMTZDIDExQUY7CitCNDIxO0I0MjE7MTEwMyAxMTZDIDExQjA7QjQyMTsxMTAzIDExNkMgMTFCMDsKK0I0MjI7QjQyMjsxMTAzIDExNkMgMTFCMTtCNDIyOzExMDMgMTE2QyAxMUIxOworQjQyMztCNDIzOzExMDMgMTE2QyAxMUIyO0I0MjM7MTEwMyAxMTZDIDExQjI7CitCNDI0O0I0MjQ7MTEwMyAxMTZDIDExQjM7QjQyNDsxMTAzIDExNkMgMTFCMzsKK0I0MjU7QjQyNTsxMTAzIDExNkMgMTFCNDtCNDI1OzExMDMgMTE2QyAxMUI0OworQjQyNjtCNDI2OzExMDMgMTE2QyAxMUI1O0I0MjY7MTEwMyAxMTZDIDExQjU7CitCNDI3O0I0Mjc7MTEwMyAxMTZDIDExQjY7QjQyNzsxMTAzIDExNkMgMTFCNjsKK0I0Mjg7QjQyODsxMTAzIDExNkMgMTFCNztCNDI4OzExMDMgMTE2QyAxMUI3OworQjQyOTtCNDI5OzExMDMgMTE2QyAxMUI4O0I0Mjk7MTEwMyAxMTZDIDExQjg7CitCNDJBO0I0MkE7MTEwMyAxMTZDIDExQjk7QjQyQTsxMTAzIDExNkMgMTFCOTsKK0I0MkI7QjQyQjsxMTAzIDExNkMgMTFCQTtCNDJCOzExMDMgMTE2QyAxMUJBOworQjQyQztCNDJDOzExMDMgMTE2QyAxMUJCO0I0MkM7MTEwMyAxMTZDIDExQkI7CitCNDJEO0I0MkQ7MTEwMyAxMTZDIDExQkM7QjQyRDsxMTAzIDExNkMgMTFCQzsKK0I0MkU7QjQyRTsxMTAzIDExNkMgMTFCRDtCNDJFOzExMDMgMTE2QyAxMUJEOworQjQyRjtCNDJGOzExMDMgMTE2QyAxMUJFO0I0MkY7MTEwMyAxMTZDIDExQkU7CitCNDMwO0I0MzA7MTEwMyAxMTZDIDExQkY7QjQzMDsxMTAzIDExNkMgMTFCRjsKK0I0MzE7QjQzMTsxMTAzIDExNkMgMTFDMDtCNDMxOzExMDMgMTE2QyAxMUMwOworQjQzMjtCNDMyOzExMDMgMTE2QyAxMUMxO0I0MzI7MTEwMyAxMTZDIDExQzE7CitCNDMzO0I0MzM7MTEwMyAxMTZDIDExQzI7QjQzMzsxMTAzIDExNkMgMTFDMjsKK0I0MzQ7QjQzNDsxMTAzIDExNkQ7QjQzNDsxMTAzIDExNkQ7CitCNDM1O0I0MzU7MTEwMyAxMTZEIDExQTg7QjQzNTsxMTAzIDExNkQgMTFBODsKK0I0MzY7QjQzNjsxMTAzIDExNkQgMTFBOTtCNDM2OzExMDMgMTE2RCAxMUE5OworQjQzNztCNDM3OzExMDMgMTE2RCAxMUFBO0I0Mzc7MTEwMyAxMTZEIDExQUE7CitCNDM4O0I0Mzg7MTEwMyAxMTZEIDExQUI7QjQzODsxMTAzIDExNkQgMTFBQjsKK0I0Mzk7QjQzOTsxMTAzIDExNkQgMTFBQztCNDM5OzExMDMgMTE2RCAxMUFDOworQjQzQTtCNDNBOzExMDMgMTE2RCAxMUFEO0I0M0E7MTEwMyAxMTZEIDExQUQ7CitCNDNCO0I0M0I7MTEwMyAxMTZEIDExQUU7QjQzQjsxMTAzIDExNkQgMTFBRTsKK0I0M0M7QjQzQzsxMTAzIDExNkQgMTFBRjtCNDNDOzExMDMgMTE2RCAxMUFGOworQjQzRDtCNDNEOzExMDMgMTE2RCAxMUIwO0I0M0Q7MTEwMyAxMTZEIDExQjA7CitCNDNFO0I0M0U7MTEwMyAxMTZEIDExQjE7QjQzRTsxMTAzIDExNkQgMTFCMTsKK0I0M0Y7QjQzRjsxMTAzIDExNkQgMTFCMjtCNDNGOzExMDMgMTE2RCAxMUIyOworQjQ0MDtCNDQwOzExMDMgMTE2RCAxMUIzO0I0NDA7MTEwMyAxMTZEIDExQjM7CitCNDQxO0I0NDE7MTEwMyAxMTZEIDExQjQ7QjQ0MTsxMTAzIDExNkQgMTFCNDsKK0I0NDI7QjQ0MjsxMTAzIDExNkQgMTFCNTtCNDQyOzExMDMgMTE2RCAxMUI1OworQjQ0MztCNDQzOzExMDMgMTE2RCAxMUI2O0I0NDM7MTEwMyAxMTZEIDExQjY7CitCNDQ0O0I0NDQ7MTEwMyAxMTZEIDExQjc7QjQ0NDsxMTAzIDExNkQgMTFCNzsKK0I0NDU7QjQ0NTsxMTAzIDExNkQgMTFCODtCNDQ1OzExMDMgMTE2RCAxMUI4OworQjQ0NjtCNDQ2OzExMDMgMTE2RCAxMUI5O0I0NDY7MTEwMyAxMTZEIDExQjk7CitCNDQ3O0I0NDc7MTEwMyAxMTZEIDExQkE7QjQ0NzsxMTAzIDExNkQgMTFCQTsKK0I0NDg7QjQ0ODsxMTAzIDExNkQgMTFCQjtCNDQ4OzExMDMgMTE2RCAxMUJCOworQjQ0OTtCNDQ5OzExMDMgMTE2RCAxMUJDO0I0NDk7MTEwMyAxMTZEIDExQkM7CitCNDRBO0I0NEE7MTEwMyAxMTZEIDExQkQ7QjQ0QTsxMTAzIDExNkQgMTFCRDsKK0I0NEI7QjQ0QjsxMTAzIDExNkQgMTFCRTtCNDRCOzExMDMgMTE2RCAxMUJFOworQjQ0QztCNDRDOzExMDMgMTE2RCAxMUJGO0I0NEM7MTEwMyAxMTZEIDExQkY7CitCNDREO0I0NEQ7MTEwMyAxMTZEIDExQzA7QjQ0RDsxMTAzIDExNkQgMTFDMDsKK0I0NEU7QjQ0RTsxMTAzIDExNkQgMTFDMTtCNDRFOzExMDMgMTE2RCAxMUMxOworQjQ0RjtCNDRGOzExMDMgMTE2RCAxMUMyO0I0NEY7MTEwMyAxMTZEIDExQzI7CitCNDUwO0I0NTA7MTEwMyAxMTZFO0I0NTA7MTEwMyAxMTZFOworQjQ1MTtCNDUxOzExMDMgMTE2RSAxMUE4O0I0NTE7MTEwMyAxMTZFIDExQTg7CitCNDUyO0I0NTI7MTEwMyAxMTZFIDExQTk7QjQ1MjsxMTAzIDExNkUgMTFBOTsKK0I0NTM7QjQ1MzsxMTAzIDExNkUgMTFBQTtCNDUzOzExMDMgMTE2RSAxMUFBOworQjQ1NDtCNDU0OzExMDMgMTE2RSAxMUFCO0I0NTQ7MTEwMyAxMTZFIDExQUI7CitCNDU1O0I0NTU7MTEwMyAxMTZFIDExQUM7QjQ1NTsxMTAzIDExNkUgMTFBQzsKK0I0NTY7QjQ1NjsxMTAzIDExNkUgMTFBRDtCNDU2OzExMDMgMTE2RSAxMUFEOworQjQ1NztCNDU3OzExMDMgMTE2RSAxMUFFO0I0NTc7MTEwMyAxMTZFIDExQUU7CitCNDU4O0I0NTg7MTEwMyAxMTZFIDExQUY7QjQ1ODsxMTAzIDExNkUgMTFBRjsKK0I0NTk7QjQ1OTsxMTAzIDExNkUgMTFCMDtCNDU5OzExMDMgMTE2RSAxMUIwOworQjQ1QTtCNDVBOzExMDMgMTE2RSAxMUIxO0I0NUE7MTEwMyAxMTZFIDExQjE7CitCNDVCO0I0NUI7MTEwMyAxMTZFIDExQjI7QjQ1QjsxMTAzIDExNkUgMTFCMjsKK0I0NUM7QjQ1QzsxMTAzIDExNkUgMTFCMztCNDVDOzExMDMgMTE2RSAxMUIzOworQjQ1RDtCNDVEOzExMDMgMTE2RSAxMUI0O0I0NUQ7MTEwMyAxMTZFIDExQjQ7CitCNDVFO0I0NUU7MTEwMyAxMTZFIDExQjU7QjQ1RTsxMTAzIDExNkUgMTFCNTsKK0I0NUY7QjQ1RjsxMTAzIDExNkUgMTFCNjtCNDVGOzExMDMgMTE2RSAxMUI2OworQjQ2MDtCNDYwOzExMDMgMTE2RSAxMUI3O0I0NjA7MTEwMyAxMTZFIDExQjc7CitCNDYxO0I0NjE7MTEwMyAxMTZFIDExQjg7QjQ2MTsxMTAzIDExNkUgMTFCODsKK0I0NjI7QjQ2MjsxMTAzIDExNkUgMTFCOTtCNDYyOzExMDMgMTE2RSAxMUI5OworQjQ2MztCNDYzOzExMDMgMTE2RSAxMUJBO0I0NjM7MTEwMyAxMTZFIDExQkE7CitCNDY0O0I0NjQ7MTEwMyAxMTZFIDExQkI7QjQ2NDsxMTAzIDExNkUgMTFCQjsKK0I0NjU7QjQ2NTsxMTAzIDExNkUgMTFCQztCNDY1OzExMDMgMTE2RSAxMUJDOworQjQ2NjtCNDY2OzExMDMgMTE2RSAxMUJEO0I0NjY7MTEwMyAxMTZFIDExQkQ7CitCNDY3O0I0Njc7MTEwMyAxMTZFIDExQkU7QjQ2NzsxMTAzIDExNkUgMTFCRTsKK0I0Njg7QjQ2ODsxMTAzIDExNkUgMTFCRjtCNDY4OzExMDMgMTE2RSAxMUJGOworQjQ2OTtCNDY5OzExMDMgMTE2RSAxMUMwO0I0Njk7MTEwMyAxMTZFIDExQzA7CitCNDZBO0I0NkE7MTEwMyAxMTZFIDExQzE7QjQ2QTsxMTAzIDExNkUgMTFDMTsKK0I0NkI7QjQ2QjsxMTAzIDExNkUgMTFDMjtCNDZCOzExMDMgMTE2RSAxMUMyOworQjQ2QztCNDZDOzExMDMgMTE2RjtCNDZDOzExMDMgMTE2RjsKK0I0NkQ7QjQ2RDsxMTAzIDExNkYgMTFBODtCNDZEOzExMDMgMTE2RiAxMUE4OworQjQ2RTtCNDZFOzExMDMgMTE2RiAxMUE5O0I0NkU7MTEwMyAxMTZGIDExQTk7CitCNDZGO0I0NkY7MTEwMyAxMTZGIDExQUE7QjQ2RjsxMTAzIDExNkYgMTFBQTsKK0I0NzA7QjQ3MDsxMTAzIDExNkYgMTFBQjtCNDcwOzExMDMgMTE2RiAxMUFCOworQjQ3MTtCNDcxOzExMDMgMTE2RiAxMUFDO0I0NzE7MTEwMyAxMTZGIDExQUM7CitCNDcyO0I0NzI7MTEwMyAxMTZGIDExQUQ7QjQ3MjsxMTAzIDExNkYgMTFBRDsKK0I0NzM7QjQ3MzsxMTAzIDExNkYgMTFBRTtCNDczOzExMDMgMTE2RiAxMUFFOworQjQ3NDtCNDc0OzExMDMgMTE2RiAxMUFGO0I0NzQ7MTEwMyAxMTZGIDExQUY7CitCNDc1O0I0NzU7MTEwMyAxMTZGIDExQjA7QjQ3NTsxMTAzIDExNkYgMTFCMDsKK0I0NzY7QjQ3NjsxMTAzIDExNkYgMTFCMTtCNDc2OzExMDMgMTE2RiAxMUIxOworQjQ3NztCNDc3OzExMDMgMTE2RiAxMUIyO0I0Nzc7MTEwMyAxMTZGIDExQjI7CitCNDc4O0I0Nzg7MTEwMyAxMTZGIDExQjM7QjQ3ODsxMTAzIDExNkYgMTFCMzsKK0I0Nzk7QjQ3OTsxMTAzIDExNkYgMTFCNDtCNDc5OzExMDMgMTE2RiAxMUI0OworQjQ3QTtCNDdBOzExMDMgMTE2RiAxMUI1O0I0N0E7MTEwMyAxMTZGIDExQjU7CitCNDdCO0I0N0I7MTEwMyAxMTZGIDExQjY7QjQ3QjsxMTAzIDExNkYgMTFCNjsKK0I0N0M7QjQ3QzsxMTAzIDExNkYgMTFCNztCNDdDOzExMDMgMTE2RiAxMUI3OworQjQ3RDtCNDdEOzExMDMgMTE2RiAxMUI4O0I0N0Q7MTEwMyAxMTZGIDExQjg7CitCNDdFO0I0N0U7MTEwMyAxMTZGIDExQjk7QjQ3RTsxMTAzIDExNkYgMTFCOTsKK0I0N0Y7QjQ3RjsxMTAzIDExNkYgMTFCQTtCNDdGOzExMDMgMTE2RiAxMUJBOworQjQ4MDtCNDgwOzExMDMgMTE2RiAxMUJCO0I0ODA7MTEwMyAxMTZGIDExQkI7CitCNDgxO0I0ODE7MTEwMyAxMTZGIDExQkM7QjQ4MTsxMTAzIDExNkYgMTFCQzsKK0I0ODI7QjQ4MjsxMTAzIDExNkYgMTFCRDtCNDgyOzExMDMgMTE2RiAxMUJEOworQjQ4MztCNDgzOzExMDMgMTE2RiAxMUJFO0I0ODM7MTEwMyAxMTZGIDExQkU7CitCNDg0O0I0ODQ7MTEwMyAxMTZGIDExQkY7QjQ4NDsxMTAzIDExNkYgMTFCRjsKK0I0ODU7QjQ4NTsxMTAzIDExNkYgMTFDMDtCNDg1OzExMDMgMTE2RiAxMUMwOworQjQ4NjtCNDg2OzExMDMgMTE2RiAxMUMxO0I0ODY7MTEwMyAxMTZGIDExQzE7CitCNDg3O0I0ODc7MTEwMyAxMTZGIDExQzI7QjQ4NzsxMTAzIDExNkYgMTFDMjsKK0I0ODg7QjQ4ODsxMTAzIDExNzA7QjQ4ODsxMTAzIDExNzA7CitCNDg5O0I0ODk7MTEwMyAxMTcwIDExQTg7QjQ4OTsxMTAzIDExNzAgMTFBODsKK0I0OEE7QjQ4QTsxMTAzIDExNzAgMTFBOTtCNDhBOzExMDMgMTE3MCAxMUE5OworQjQ4QjtCNDhCOzExMDMgMTE3MCAxMUFBO0I0OEI7MTEwMyAxMTcwIDExQUE7CitCNDhDO0I0OEM7MTEwMyAxMTcwIDExQUI7QjQ4QzsxMTAzIDExNzAgMTFBQjsKK0I0OEQ7QjQ4RDsxMTAzIDExNzAgMTFBQztCNDhEOzExMDMgMTE3MCAxMUFDOworQjQ4RTtCNDhFOzExMDMgMTE3MCAxMUFEO0I0OEU7MTEwMyAxMTcwIDExQUQ7CitCNDhGO0I0OEY7MTEwMyAxMTcwIDExQUU7QjQ4RjsxMTAzIDExNzAgMTFBRTsKK0I0OTA7QjQ5MDsxMTAzIDExNzAgMTFBRjtCNDkwOzExMDMgMTE3MCAxMUFGOworQjQ5MTtCNDkxOzExMDMgMTE3MCAxMUIwO0I0OTE7MTEwMyAxMTcwIDExQjA7CitCNDkyO0I0OTI7MTEwMyAxMTcwIDExQjE7QjQ5MjsxMTAzIDExNzAgMTFCMTsKK0I0OTM7QjQ5MzsxMTAzIDExNzAgMTFCMjtCNDkzOzExMDMgMTE3MCAxMUIyOworQjQ5NDtCNDk0OzExMDMgMTE3MCAxMUIzO0I0OTQ7MTEwMyAxMTcwIDExQjM7CitCNDk1O0I0OTU7MTEwMyAxMTcwIDExQjQ7QjQ5NTsxMTAzIDExNzAgMTFCNDsKK0I0OTY7QjQ5NjsxMTAzIDExNzAgMTFCNTtCNDk2OzExMDMgMTE3MCAxMUI1OworQjQ5NztCNDk3OzExMDMgMTE3MCAxMUI2O0I0OTc7MTEwMyAxMTcwIDExQjY7CitCNDk4O0I0OTg7MTEwMyAxMTcwIDExQjc7QjQ5ODsxMTAzIDExNzAgMTFCNzsKK0I0OTk7QjQ5OTsxMTAzIDExNzAgMTFCODtCNDk5OzExMDMgMTE3MCAxMUI4OworQjQ5QTtCNDlBOzExMDMgMTE3MCAxMUI5O0I0OUE7MTEwMyAxMTcwIDExQjk7CitCNDlCO0I0OUI7MTEwMyAxMTcwIDExQkE7QjQ5QjsxMTAzIDExNzAgMTFCQTsKK0I0OUM7QjQ5QzsxMTAzIDExNzAgMTFCQjtCNDlDOzExMDMgMTE3MCAxMUJCOworQjQ5RDtCNDlEOzExMDMgMTE3MCAxMUJDO0I0OUQ7MTEwMyAxMTcwIDExQkM7CitCNDlFO0I0OUU7MTEwMyAxMTcwIDExQkQ7QjQ5RTsxMTAzIDExNzAgMTFCRDsKK0I0OUY7QjQ5RjsxMTAzIDExNzAgMTFCRTtCNDlGOzExMDMgMTE3MCAxMUJFOworQjRBMDtCNEEwOzExMDMgMTE3MCAxMUJGO0I0QTA7MTEwMyAxMTcwIDExQkY7CitCNEExO0I0QTE7MTEwMyAxMTcwIDExQzA7QjRBMTsxMTAzIDExNzAgMTFDMDsKK0I0QTI7QjRBMjsxMTAzIDExNzAgMTFDMTtCNEEyOzExMDMgMTE3MCAxMUMxOworQjRBMztCNEEzOzExMDMgMTE3MCAxMUMyO0I0QTM7MTEwMyAxMTcwIDExQzI7CitCNEE0O0I0QTQ7MTEwMyAxMTcxO0I0QTQ7MTEwMyAxMTcxOworQjRBNTtCNEE1OzExMDMgMTE3MSAxMUE4O0I0QTU7MTEwMyAxMTcxIDExQTg7CitCNEE2O0I0QTY7MTEwMyAxMTcxIDExQTk7QjRBNjsxMTAzIDExNzEgMTFBOTsKK0I0QTc7QjRBNzsxMTAzIDExNzEgMTFBQTtCNEE3OzExMDMgMTE3MSAxMUFBOworQjRBODtCNEE4OzExMDMgMTE3MSAxMUFCO0I0QTg7MTEwMyAxMTcxIDExQUI7CitCNEE5O0I0QTk7MTEwMyAxMTcxIDExQUM7QjRBOTsxMTAzIDExNzEgMTFBQzsKK0I0QUE7QjRBQTsxMTAzIDExNzEgMTFBRDtCNEFBOzExMDMgMTE3MSAxMUFEOworQjRBQjtCNEFCOzExMDMgMTE3MSAxMUFFO0I0QUI7MTEwMyAxMTcxIDExQUU7CitCNEFDO0I0QUM7MTEwMyAxMTcxIDExQUY7QjRBQzsxMTAzIDExNzEgMTFBRjsKK0I0QUQ7QjRBRDsxMTAzIDExNzEgMTFCMDtCNEFEOzExMDMgMTE3MSAxMUIwOworQjRBRTtCNEFFOzExMDMgMTE3MSAxMUIxO0I0QUU7MTEwMyAxMTcxIDExQjE7CitCNEFGO0I0QUY7MTEwMyAxMTcxIDExQjI7QjRBRjsxMTAzIDExNzEgMTFCMjsKK0I0QjA7QjRCMDsxMTAzIDExNzEgMTFCMztCNEIwOzExMDMgMTE3MSAxMUIzOworQjRCMTtCNEIxOzExMDMgMTE3MSAxMUI0O0I0QjE7MTEwMyAxMTcxIDExQjQ7CitCNEIyO0I0QjI7MTEwMyAxMTcxIDExQjU7QjRCMjsxMTAzIDExNzEgMTFCNTsKK0I0QjM7QjRCMzsxMTAzIDExNzEgMTFCNjtCNEIzOzExMDMgMTE3MSAxMUI2OworQjRCNDtCNEI0OzExMDMgMTE3MSAxMUI3O0I0QjQ7MTEwMyAxMTcxIDExQjc7CitCNEI1O0I0QjU7MTEwMyAxMTcxIDExQjg7QjRCNTsxMTAzIDExNzEgMTFCODsKK0I0QjY7QjRCNjsxMTAzIDExNzEgMTFCOTtCNEI2OzExMDMgMTE3MSAxMUI5OworQjRCNztCNEI3OzExMDMgMTE3MSAxMUJBO0I0Qjc7MTEwMyAxMTcxIDExQkE7CitCNEI4O0I0Qjg7MTEwMyAxMTcxIDExQkI7QjRCODsxMTAzIDExNzEgMTFCQjsKK0I0Qjk7QjRCOTsxMTAzIDExNzEgMTFCQztCNEI5OzExMDMgMTE3MSAxMUJDOworQjRCQTtCNEJBOzExMDMgMTE3MSAxMUJEO0I0QkE7MTEwMyAxMTcxIDExQkQ7CitCNEJCO0I0QkI7MTEwMyAxMTcxIDExQkU7QjRCQjsxMTAzIDExNzEgMTFCRTsKK0I0QkM7QjRCQzsxMTAzIDExNzEgMTFCRjtCNEJDOzExMDMgMTE3MSAxMUJGOworQjRCRDtCNEJEOzExMDMgMTE3MSAxMUMwO0I0QkQ7MTEwMyAxMTcxIDExQzA7CitCNEJFO0I0QkU7MTEwMyAxMTcxIDExQzE7QjRCRTsxMTAzIDExNzEgMTFDMTsKK0I0QkY7QjRCRjsxMTAzIDExNzEgMTFDMjtCNEJGOzExMDMgMTE3MSAxMUMyOworQjRDMDtCNEMwOzExMDMgMTE3MjtCNEMwOzExMDMgMTE3MjsKK0I0QzE7QjRDMTsxMTAzIDExNzIgMTFBODtCNEMxOzExMDMgMTE3MiAxMUE4OworQjRDMjtCNEMyOzExMDMgMTE3MiAxMUE5O0I0QzI7MTEwMyAxMTcyIDExQTk7CitCNEMzO0I0QzM7MTEwMyAxMTcyIDExQUE7QjRDMzsxMTAzIDExNzIgMTFBQTsKK0I0QzQ7QjRDNDsxMTAzIDExNzIgMTFBQjtCNEM0OzExMDMgMTE3MiAxMUFCOworQjRDNTtCNEM1OzExMDMgMTE3MiAxMUFDO0I0QzU7MTEwMyAxMTcyIDExQUM7CitCNEM2O0I0QzY7MTEwMyAxMTcyIDExQUQ7QjRDNjsxMTAzIDExNzIgMTFBRDsKK0I0Qzc7QjRDNzsxMTAzIDExNzIgMTFBRTtCNEM3OzExMDMgMTE3MiAxMUFFOworQjRDODtCNEM4OzExMDMgMTE3MiAxMUFGO0I0Qzg7MTEwMyAxMTcyIDExQUY7CitCNEM5O0I0Qzk7MTEwMyAxMTcyIDExQjA7QjRDOTsxMTAzIDExNzIgMTFCMDsKK0I0Q0E7QjRDQTsxMTAzIDExNzIgMTFCMTtCNENBOzExMDMgMTE3MiAxMUIxOworQjRDQjtCNENCOzExMDMgMTE3MiAxMUIyO0I0Q0I7MTEwMyAxMTcyIDExQjI7CitCNENDO0I0Q0M7MTEwMyAxMTcyIDExQjM7QjRDQzsxMTAzIDExNzIgMTFCMzsKK0I0Q0Q7QjRDRDsxMTAzIDExNzIgMTFCNDtCNENEOzExMDMgMTE3MiAxMUI0OworQjRDRTtCNENFOzExMDMgMTE3MiAxMUI1O0I0Q0U7MTEwMyAxMTcyIDExQjU7CitCNENGO0I0Q0Y7MTEwMyAxMTcyIDExQjY7QjRDRjsxMTAzIDExNzIgMTFCNjsKK0I0RDA7QjREMDsxMTAzIDExNzIgMTFCNztCNEQwOzExMDMgMTE3MiAxMUI3OworQjREMTtCNEQxOzExMDMgMTE3MiAxMUI4O0I0RDE7MTEwMyAxMTcyIDExQjg7CitCNEQyO0I0RDI7MTEwMyAxMTcyIDExQjk7QjREMjsxMTAzIDExNzIgMTFCOTsKK0I0RDM7QjREMzsxMTAzIDExNzIgMTFCQTtCNEQzOzExMDMgMTE3MiAxMUJBOworQjRENDtCNEQ0OzExMDMgMTE3MiAxMUJCO0I0RDQ7MTEwMyAxMTcyIDExQkI7CitCNEQ1O0I0RDU7MTEwMyAxMTcyIDExQkM7QjRENTsxMTAzIDExNzIgMTFCQzsKK0I0RDY7QjRENjsxMTAzIDExNzIgMTFCRDtCNEQ2OzExMDMgMTE3MiAxMUJEOworQjRENztCNEQ3OzExMDMgMTE3MiAxMUJFO0I0RDc7MTEwMyAxMTcyIDExQkU7CitCNEQ4O0I0RDg7MTEwMyAxMTcyIDExQkY7QjREODsxMTAzIDExNzIgMTFCRjsKK0I0RDk7QjREOTsxMTAzIDExNzIgMTFDMDtCNEQ5OzExMDMgMTE3MiAxMUMwOworQjREQTtCNERBOzExMDMgMTE3MiAxMUMxO0I0REE7MTEwMyAxMTcyIDExQzE7CitCNERCO0I0REI7MTEwMyAxMTcyIDExQzI7QjREQjsxMTAzIDExNzIgMTFDMjsKK0I0REM7QjREQzsxMTAzIDExNzM7QjREQzsxMTAzIDExNzM7CitCNEREO0I0REQ7MTEwMyAxMTczIDExQTg7QjRERDsxMTAzIDExNzMgMTFBODsKK0I0REU7QjRERTsxMTAzIDExNzMgMTFBOTtCNERFOzExMDMgMTE3MyAxMUE5OworQjRERjtCNERGOzExMDMgMTE3MyAxMUFBO0I0REY7MTEwMyAxMTczIDExQUE7CitCNEUwO0I0RTA7MTEwMyAxMTczIDExQUI7QjRFMDsxMTAzIDExNzMgMTFBQjsKK0I0RTE7QjRFMTsxMTAzIDExNzMgMTFBQztCNEUxOzExMDMgMTE3MyAxMUFDOworQjRFMjtCNEUyOzExMDMgMTE3MyAxMUFEO0I0RTI7MTEwMyAxMTczIDExQUQ7CitCNEUzO0I0RTM7MTEwMyAxMTczIDExQUU7QjRFMzsxMTAzIDExNzMgMTFBRTsKK0I0RTQ7QjRFNDsxMTAzIDExNzMgMTFBRjtCNEU0OzExMDMgMTE3MyAxMUFGOworQjRFNTtCNEU1OzExMDMgMTE3MyAxMUIwO0I0RTU7MTEwMyAxMTczIDExQjA7CitCNEU2O0I0RTY7MTEwMyAxMTczIDExQjE7QjRFNjsxMTAzIDExNzMgMTFCMTsKK0I0RTc7QjRFNzsxMTAzIDExNzMgMTFCMjtCNEU3OzExMDMgMTE3MyAxMUIyOworQjRFODtCNEU4OzExMDMgMTE3MyAxMUIzO0I0RTg7MTEwMyAxMTczIDExQjM7CitCNEU5O0I0RTk7MTEwMyAxMTczIDExQjQ7QjRFOTsxMTAzIDExNzMgMTFCNDsKK0I0RUE7QjRFQTsxMTAzIDExNzMgMTFCNTtCNEVBOzExMDMgMTE3MyAxMUI1OworQjRFQjtCNEVCOzExMDMgMTE3MyAxMUI2O0I0RUI7MTEwMyAxMTczIDExQjY7CitCNEVDO0I0RUM7MTEwMyAxMTczIDExQjc7QjRFQzsxMTAzIDExNzMgMTFCNzsKK0I0RUQ7QjRFRDsxMTAzIDExNzMgMTFCODtCNEVEOzExMDMgMTE3MyAxMUI4OworQjRFRTtCNEVFOzExMDMgMTE3MyAxMUI5O0I0RUU7MTEwMyAxMTczIDExQjk7CitCNEVGO0I0RUY7MTEwMyAxMTczIDExQkE7QjRFRjsxMTAzIDExNzMgMTFCQTsKK0I0RjA7QjRGMDsxMTAzIDExNzMgMTFCQjtCNEYwOzExMDMgMTE3MyAxMUJCOworQjRGMTtCNEYxOzExMDMgMTE3MyAxMUJDO0I0RjE7MTEwMyAxMTczIDExQkM7CitCNEYyO0I0RjI7MTEwMyAxMTczIDExQkQ7QjRGMjsxMTAzIDExNzMgMTFCRDsKK0I0RjM7QjRGMzsxMTAzIDExNzMgMTFCRTtCNEYzOzExMDMgMTE3MyAxMUJFOworQjRGNDtCNEY0OzExMDMgMTE3MyAxMUJGO0I0RjQ7MTEwMyAxMTczIDExQkY7CitCNEY1O0I0RjU7MTEwMyAxMTczIDExQzA7QjRGNTsxMTAzIDExNzMgMTFDMDsKK0I0RjY7QjRGNjsxMTAzIDExNzMgMTFDMTtCNEY2OzExMDMgMTE3MyAxMUMxOworQjRGNztCNEY3OzExMDMgMTE3MyAxMUMyO0I0Rjc7MTEwMyAxMTczIDExQzI7CitCNEY4O0I0Rjg7MTEwMyAxMTc0O0I0Rjg7MTEwMyAxMTc0OworQjRGOTtCNEY5OzExMDMgMTE3NCAxMUE4O0I0Rjk7MTEwMyAxMTc0IDExQTg7CitCNEZBO0I0RkE7MTEwMyAxMTc0IDExQTk7QjRGQTsxMTAzIDExNzQgMTFBOTsKK0I0RkI7QjRGQjsxMTAzIDExNzQgMTFBQTtCNEZCOzExMDMgMTE3NCAxMUFBOworQjRGQztCNEZDOzExMDMgMTE3NCAxMUFCO0I0RkM7MTEwMyAxMTc0IDExQUI7CitCNEZEO0I0RkQ7MTEwMyAxMTc0IDExQUM7QjRGRDsxMTAzIDExNzQgMTFBQzsKK0I0RkU7QjRGRTsxMTAzIDExNzQgMTFBRDtCNEZFOzExMDMgMTE3NCAxMUFEOworQjRGRjtCNEZGOzExMDMgMTE3NCAxMUFFO0I0RkY7MTEwMyAxMTc0IDExQUU7CitCNTAwO0I1MDA7MTEwMyAxMTc0IDExQUY7QjUwMDsxMTAzIDExNzQgMTFBRjsKK0I1MDE7QjUwMTsxMTAzIDExNzQgMTFCMDtCNTAxOzExMDMgMTE3NCAxMUIwOworQjUwMjtCNTAyOzExMDMgMTE3NCAxMUIxO0I1MDI7MTEwMyAxMTc0IDExQjE7CitCNTAzO0I1MDM7MTEwMyAxMTc0IDExQjI7QjUwMzsxMTAzIDExNzQgMTFCMjsKK0I1MDQ7QjUwNDsxMTAzIDExNzQgMTFCMztCNTA0OzExMDMgMTE3NCAxMUIzOworQjUwNTtCNTA1OzExMDMgMTE3NCAxMUI0O0I1MDU7MTEwMyAxMTc0IDExQjQ7CitCNTA2O0I1MDY7MTEwMyAxMTc0IDExQjU7QjUwNjsxMTAzIDExNzQgMTFCNTsKK0I1MDc7QjUwNzsxMTAzIDExNzQgMTFCNjtCNTA3OzExMDMgMTE3NCAxMUI2OworQjUwODtCNTA4OzExMDMgMTE3NCAxMUI3O0I1MDg7MTEwMyAxMTc0IDExQjc7CitCNTA5O0I1MDk7MTEwMyAxMTc0IDExQjg7QjUwOTsxMTAzIDExNzQgMTFCODsKK0I1MEE7QjUwQTsxMTAzIDExNzQgMTFCOTtCNTBBOzExMDMgMTE3NCAxMUI5OworQjUwQjtCNTBCOzExMDMgMTE3NCAxMUJBO0I1MEI7MTEwMyAxMTc0IDExQkE7CitCNTBDO0I1MEM7MTEwMyAxMTc0IDExQkI7QjUwQzsxMTAzIDExNzQgMTFCQjsKK0I1MEQ7QjUwRDsxMTAzIDExNzQgMTFCQztCNTBEOzExMDMgMTE3NCAxMUJDOworQjUwRTtCNTBFOzExMDMgMTE3NCAxMUJEO0I1MEU7MTEwMyAxMTc0IDExQkQ7CitCNTBGO0I1MEY7MTEwMyAxMTc0IDExQkU7QjUwRjsxMTAzIDExNzQgMTFCRTsKK0I1MTA7QjUxMDsxMTAzIDExNzQgMTFCRjtCNTEwOzExMDMgMTE3NCAxMUJGOworQjUxMTtCNTExOzExMDMgMTE3NCAxMUMwO0I1MTE7MTEwMyAxMTc0IDExQzA7CitCNTEyO0I1MTI7MTEwMyAxMTc0IDExQzE7QjUxMjsxMTAzIDExNzQgMTFDMTsKK0I1MTM7QjUxMzsxMTAzIDExNzQgMTFDMjtCNTEzOzExMDMgMTE3NCAxMUMyOworQjUxNDtCNTE0OzExMDMgMTE3NTtCNTE0OzExMDMgMTE3NTsKK0I1MTU7QjUxNTsxMTAzIDExNzUgMTFBODtCNTE1OzExMDMgMTE3NSAxMUE4OworQjUxNjtCNTE2OzExMDMgMTE3NSAxMUE5O0I1MTY7MTEwMyAxMTc1IDExQTk7CitCNTE3O0I1MTc7MTEwMyAxMTc1IDExQUE7QjUxNzsxMTAzIDExNzUgMTFBQTsKK0I1MTg7QjUxODsxMTAzIDExNzUgMTFBQjtCNTE4OzExMDMgMTE3NSAxMUFCOworQjUxOTtCNTE5OzExMDMgMTE3NSAxMUFDO0I1MTk7MTEwMyAxMTc1IDExQUM7CitCNTFBO0I1MUE7MTEwMyAxMTc1IDExQUQ7QjUxQTsxMTAzIDExNzUgMTFBRDsKK0I1MUI7QjUxQjsxMTAzIDExNzUgMTFBRTtCNTFCOzExMDMgMTE3NSAxMUFFOworQjUxQztCNTFDOzExMDMgMTE3NSAxMUFGO0I1MUM7MTEwMyAxMTc1IDExQUY7CitCNTFEO0I1MUQ7MTEwMyAxMTc1IDExQjA7QjUxRDsxMTAzIDExNzUgMTFCMDsKK0I1MUU7QjUxRTsxMTAzIDExNzUgMTFCMTtCNTFFOzExMDMgMTE3NSAxMUIxOworQjUxRjtCNTFGOzExMDMgMTE3NSAxMUIyO0I1MUY7MTEwMyAxMTc1IDExQjI7CitCNTIwO0I1MjA7MTEwMyAxMTc1IDExQjM7QjUyMDsxMTAzIDExNzUgMTFCMzsKK0I1MjE7QjUyMTsxMTAzIDExNzUgMTFCNDtCNTIxOzExMDMgMTE3NSAxMUI0OworQjUyMjtCNTIyOzExMDMgMTE3NSAxMUI1O0I1MjI7MTEwMyAxMTc1IDExQjU7CitCNTIzO0I1MjM7MTEwMyAxMTc1IDExQjY7QjUyMzsxMTAzIDExNzUgMTFCNjsKK0I1MjQ7QjUyNDsxMTAzIDExNzUgMTFCNztCNTI0OzExMDMgMTE3NSAxMUI3OworQjUyNTtCNTI1OzExMDMgMTE3NSAxMUI4O0I1MjU7MTEwMyAxMTc1IDExQjg7CitCNTI2O0I1MjY7MTEwMyAxMTc1IDExQjk7QjUyNjsxMTAzIDExNzUgMTFCOTsKK0I1Mjc7QjUyNzsxMTAzIDExNzUgMTFCQTtCNTI3OzExMDMgMTE3NSAxMUJBOworQjUyODtCNTI4OzExMDMgMTE3NSAxMUJCO0I1Mjg7MTEwMyAxMTc1IDExQkI7CitCNTI5O0I1Mjk7MTEwMyAxMTc1IDExQkM7QjUyOTsxMTAzIDExNzUgMTFCQzsKK0I1MkE7QjUyQTsxMTAzIDExNzUgMTFCRDtCNTJBOzExMDMgMTE3NSAxMUJEOworQjUyQjtCNTJCOzExMDMgMTE3NSAxMUJFO0I1MkI7MTEwMyAxMTc1IDExQkU7CitCNTJDO0I1MkM7MTEwMyAxMTc1IDExQkY7QjUyQzsxMTAzIDExNzUgMTFCRjsKK0I1MkQ7QjUyRDsxMTAzIDExNzUgMTFDMDtCNTJEOzExMDMgMTE3NSAxMUMwOworQjUyRTtCNTJFOzExMDMgMTE3NSAxMUMxO0I1MkU7MTEwMyAxMTc1IDExQzE7CitCNTJGO0I1MkY7MTEwMyAxMTc1IDExQzI7QjUyRjsxMTAzIDExNzUgMTFDMjsKK0I1MzA7QjUzMDsxMTA0IDExNjE7QjUzMDsxMTA0IDExNjE7CitCNTMxO0I1MzE7MTEwNCAxMTYxIDExQTg7QjUzMTsxMTA0IDExNjEgMTFBODsKK0I1MzI7QjUzMjsxMTA0IDExNjEgMTFBOTtCNTMyOzExMDQgMTE2MSAxMUE5OworQjUzMztCNTMzOzExMDQgMTE2MSAxMUFBO0I1MzM7MTEwNCAxMTYxIDExQUE7CitCNTM0O0I1MzQ7MTEwNCAxMTYxIDExQUI7QjUzNDsxMTA0IDExNjEgMTFBQjsKK0I1MzU7QjUzNTsxMTA0IDExNjEgMTFBQztCNTM1OzExMDQgMTE2MSAxMUFDOworQjUzNjtCNTM2OzExMDQgMTE2MSAxMUFEO0I1MzY7MTEwNCAxMTYxIDExQUQ7CitCNTM3O0I1Mzc7MTEwNCAxMTYxIDExQUU7QjUzNzsxMTA0IDExNjEgMTFBRTsKK0I1Mzg7QjUzODsxMTA0IDExNjEgMTFBRjtCNTM4OzExMDQgMTE2MSAxMUFGOworQjUzOTtCNTM5OzExMDQgMTE2MSAxMUIwO0I1Mzk7MTEwNCAxMTYxIDExQjA7CitCNTNBO0I1M0E7MTEwNCAxMTYxIDExQjE7QjUzQTsxMTA0IDExNjEgMTFCMTsKK0I1M0I7QjUzQjsxMTA0IDExNjEgMTFCMjtCNTNCOzExMDQgMTE2MSAxMUIyOworQjUzQztCNTNDOzExMDQgMTE2MSAxMUIzO0I1M0M7MTEwNCAxMTYxIDExQjM7CitCNTNEO0I1M0Q7MTEwNCAxMTYxIDExQjQ7QjUzRDsxMTA0IDExNjEgMTFCNDsKK0I1M0U7QjUzRTsxMTA0IDExNjEgMTFCNTtCNTNFOzExMDQgMTE2MSAxMUI1OworQjUzRjtCNTNGOzExMDQgMTE2MSAxMUI2O0I1M0Y7MTEwNCAxMTYxIDExQjY7CitCNTQwO0I1NDA7MTEwNCAxMTYxIDExQjc7QjU0MDsxMTA0IDExNjEgMTFCNzsKK0I1NDE7QjU0MTsxMTA0IDExNjEgMTFCODtCNTQxOzExMDQgMTE2MSAxMUI4OworQjU0MjtCNTQyOzExMDQgMTE2MSAxMUI5O0I1NDI7MTEwNCAxMTYxIDExQjk7CitCNTQzO0I1NDM7MTEwNCAxMTYxIDExQkE7QjU0MzsxMTA0IDExNjEgMTFCQTsKK0I1NDQ7QjU0NDsxMTA0IDExNjEgMTFCQjtCNTQ0OzExMDQgMTE2MSAxMUJCOworQjU0NTtCNTQ1OzExMDQgMTE2MSAxMUJDO0I1NDU7MTEwNCAxMTYxIDExQkM7CitCNTQ2O0I1NDY7MTEwNCAxMTYxIDExQkQ7QjU0NjsxMTA0IDExNjEgMTFCRDsKK0I1NDc7QjU0NzsxMTA0IDExNjEgMTFCRTtCNTQ3OzExMDQgMTE2MSAxMUJFOworQjU0ODtCNTQ4OzExMDQgMTE2MSAxMUJGO0I1NDg7MTEwNCAxMTYxIDExQkY7CitCNTQ5O0I1NDk7MTEwNCAxMTYxIDExQzA7QjU0OTsxMTA0IDExNjEgMTFDMDsKK0I1NEE7QjU0QTsxMTA0IDExNjEgMTFDMTtCNTRBOzExMDQgMTE2MSAxMUMxOworQjU0QjtCNTRCOzExMDQgMTE2MSAxMUMyO0I1NEI7MTEwNCAxMTYxIDExQzI7CitCNTRDO0I1NEM7MTEwNCAxMTYyO0I1NEM7MTEwNCAxMTYyOworQjU0RDtCNTREOzExMDQgMTE2MiAxMUE4O0I1NEQ7MTEwNCAxMTYyIDExQTg7CitCNTRFO0I1NEU7MTEwNCAxMTYyIDExQTk7QjU0RTsxMTA0IDExNjIgMTFBOTsKK0I1NEY7QjU0RjsxMTA0IDExNjIgMTFBQTtCNTRGOzExMDQgMTE2MiAxMUFBOworQjU1MDtCNTUwOzExMDQgMTE2MiAxMUFCO0I1NTA7MTEwNCAxMTYyIDExQUI7CitCNTUxO0I1NTE7MTEwNCAxMTYyIDExQUM7QjU1MTsxMTA0IDExNjIgMTFBQzsKK0I1NTI7QjU1MjsxMTA0IDExNjIgMTFBRDtCNTUyOzExMDQgMTE2MiAxMUFEOworQjU1MztCNTUzOzExMDQgMTE2MiAxMUFFO0I1NTM7MTEwNCAxMTYyIDExQUU7CitCNTU0O0I1NTQ7MTEwNCAxMTYyIDExQUY7QjU1NDsxMTA0IDExNjIgMTFBRjsKK0I1NTU7QjU1NTsxMTA0IDExNjIgMTFCMDtCNTU1OzExMDQgMTE2MiAxMUIwOworQjU1NjtCNTU2OzExMDQgMTE2MiAxMUIxO0I1NTY7MTEwNCAxMTYyIDExQjE7CitCNTU3O0I1NTc7MTEwNCAxMTYyIDExQjI7QjU1NzsxMTA0IDExNjIgMTFCMjsKK0I1NTg7QjU1ODsxMTA0IDExNjIgMTFCMztCNTU4OzExMDQgMTE2MiAxMUIzOworQjU1OTtCNTU5OzExMDQgMTE2MiAxMUI0O0I1NTk7MTEwNCAxMTYyIDExQjQ7CitCNTVBO0I1NUE7MTEwNCAxMTYyIDExQjU7QjU1QTsxMTA0IDExNjIgMTFCNTsKK0I1NUI7QjU1QjsxMTA0IDExNjIgMTFCNjtCNTVCOzExMDQgMTE2MiAxMUI2OworQjU1QztCNTVDOzExMDQgMTE2MiAxMUI3O0I1NUM7MTEwNCAxMTYyIDExQjc7CitCNTVEO0I1NUQ7MTEwNCAxMTYyIDExQjg7QjU1RDsxMTA0IDExNjIgMTFCODsKK0I1NUU7QjU1RTsxMTA0IDExNjIgMTFCOTtCNTVFOzExMDQgMTE2MiAxMUI5OworQjU1RjtCNTVGOzExMDQgMTE2MiAxMUJBO0I1NUY7MTEwNCAxMTYyIDExQkE7CitCNTYwO0I1NjA7MTEwNCAxMTYyIDExQkI7QjU2MDsxMTA0IDExNjIgMTFCQjsKK0I1NjE7QjU2MTsxMTA0IDExNjIgMTFCQztCNTYxOzExMDQgMTE2MiAxMUJDOworQjU2MjtCNTYyOzExMDQgMTE2MiAxMUJEO0I1NjI7MTEwNCAxMTYyIDExQkQ7CitCNTYzO0I1NjM7MTEwNCAxMTYyIDExQkU7QjU2MzsxMTA0IDExNjIgMTFCRTsKK0I1NjQ7QjU2NDsxMTA0IDExNjIgMTFCRjtCNTY0OzExMDQgMTE2MiAxMUJGOworQjU2NTtCNTY1OzExMDQgMTE2MiAxMUMwO0I1NjU7MTEwNCAxMTYyIDExQzA7CitCNTY2O0I1NjY7MTEwNCAxMTYyIDExQzE7QjU2NjsxMTA0IDExNjIgMTFDMTsKK0I1Njc7QjU2NzsxMTA0IDExNjIgMTFDMjtCNTY3OzExMDQgMTE2MiAxMUMyOworQjU2ODtCNTY4OzExMDQgMTE2MztCNTY4OzExMDQgMTE2MzsKK0I1Njk7QjU2OTsxMTA0IDExNjMgMTFBODtCNTY5OzExMDQgMTE2MyAxMUE4OworQjU2QTtCNTZBOzExMDQgMTE2MyAxMUE5O0I1NkE7MTEwNCAxMTYzIDExQTk7CitCNTZCO0I1NkI7MTEwNCAxMTYzIDExQUE7QjU2QjsxMTA0IDExNjMgMTFBQTsKK0I1NkM7QjU2QzsxMTA0IDExNjMgMTFBQjtCNTZDOzExMDQgMTE2MyAxMUFCOworQjU2RDtCNTZEOzExMDQgMTE2MyAxMUFDO0I1NkQ7MTEwNCAxMTYzIDExQUM7CitCNTZFO0I1NkU7MTEwNCAxMTYzIDExQUQ7QjU2RTsxMTA0IDExNjMgMTFBRDsKK0I1NkY7QjU2RjsxMTA0IDExNjMgMTFBRTtCNTZGOzExMDQgMTE2MyAxMUFFOworQjU3MDtCNTcwOzExMDQgMTE2MyAxMUFGO0I1NzA7MTEwNCAxMTYzIDExQUY7CitCNTcxO0I1NzE7MTEwNCAxMTYzIDExQjA7QjU3MTsxMTA0IDExNjMgMTFCMDsKK0I1NzI7QjU3MjsxMTA0IDExNjMgMTFCMTtCNTcyOzExMDQgMTE2MyAxMUIxOworQjU3MztCNTczOzExMDQgMTE2MyAxMUIyO0I1NzM7MTEwNCAxMTYzIDExQjI7CitCNTc0O0I1NzQ7MTEwNCAxMTYzIDExQjM7QjU3NDsxMTA0IDExNjMgMTFCMzsKK0I1NzU7QjU3NTsxMTA0IDExNjMgMTFCNDtCNTc1OzExMDQgMTE2MyAxMUI0OworQjU3NjtCNTc2OzExMDQgMTE2MyAxMUI1O0I1NzY7MTEwNCAxMTYzIDExQjU7CitCNTc3O0I1Nzc7MTEwNCAxMTYzIDExQjY7QjU3NzsxMTA0IDExNjMgMTFCNjsKK0I1Nzg7QjU3ODsxMTA0IDExNjMgMTFCNztCNTc4OzExMDQgMTE2MyAxMUI3OworQjU3OTtCNTc5OzExMDQgMTE2MyAxMUI4O0I1Nzk7MTEwNCAxMTYzIDExQjg7CitCNTdBO0I1N0E7MTEwNCAxMTYzIDExQjk7QjU3QTsxMTA0IDExNjMgMTFCOTsKK0I1N0I7QjU3QjsxMTA0IDExNjMgMTFCQTtCNTdCOzExMDQgMTE2MyAxMUJBOworQjU3QztCNTdDOzExMDQgMTE2MyAxMUJCO0I1N0M7MTEwNCAxMTYzIDExQkI7CitCNTdEO0I1N0Q7MTEwNCAxMTYzIDExQkM7QjU3RDsxMTA0IDExNjMgMTFCQzsKK0I1N0U7QjU3RTsxMTA0IDExNjMgMTFCRDtCNTdFOzExMDQgMTE2MyAxMUJEOworQjU3RjtCNTdGOzExMDQgMTE2MyAxMUJFO0I1N0Y7MTEwNCAxMTYzIDExQkU7CitCNTgwO0I1ODA7MTEwNCAxMTYzIDExQkY7QjU4MDsxMTA0IDExNjMgMTFCRjsKK0I1ODE7QjU4MTsxMTA0IDExNjMgMTFDMDtCNTgxOzExMDQgMTE2MyAxMUMwOworQjU4MjtCNTgyOzExMDQgMTE2MyAxMUMxO0I1ODI7MTEwNCAxMTYzIDExQzE7CitCNTgzO0I1ODM7MTEwNCAxMTYzIDExQzI7QjU4MzsxMTA0IDExNjMgMTFDMjsKK0I1ODQ7QjU4NDsxMTA0IDExNjQ7QjU4NDsxMTA0IDExNjQ7CitCNTg1O0I1ODU7MTEwNCAxMTY0IDExQTg7QjU4NTsxMTA0IDExNjQgMTFBODsKK0I1ODY7QjU4NjsxMTA0IDExNjQgMTFBOTtCNTg2OzExMDQgMTE2NCAxMUE5OworQjU4NztCNTg3OzExMDQgMTE2NCAxMUFBO0I1ODc7MTEwNCAxMTY0IDExQUE7CitCNTg4O0I1ODg7MTEwNCAxMTY0IDExQUI7QjU4ODsxMTA0IDExNjQgMTFBQjsKK0I1ODk7QjU4OTsxMTA0IDExNjQgMTFBQztCNTg5OzExMDQgMTE2NCAxMUFDOworQjU4QTtCNThBOzExMDQgMTE2NCAxMUFEO0I1OEE7MTEwNCAxMTY0IDExQUQ7CitCNThCO0I1OEI7MTEwNCAxMTY0IDExQUU7QjU4QjsxMTA0IDExNjQgMTFBRTsKK0I1OEM7QjU4QzsxMTA0IDExNjQgMTFBRjtCNThDOzExMDQgMTE2NCAxMUFGOworQjU4RDtCNThEOzExMDQgMTE2NCAxMUIwO0I1OEQ7MTEwNCAxMTY0IDExQjA7CitCNThFO0I1OEU7MTEwNCAxMTY0IDExQjE7QjU4RTsxMTA0IDExNjQgMTFCMTsKK0I1OEY7QjU4RjsxMTA0IDExNjQgMTFCMjtCNThGOzExMDQgMTE2NCAxMUIyOworQjU5MDtCNTkwOzExMDQgMTE2NCAxMUIzO0I1OTA7MTEwNCAxMTY0IDExQjM7CitCNTkxO0I1OTE7MTEwNCAxMTY0IDExQjQ7QjU5MTsxMTA0IDExNjQgMTFCNDsKK0I1OTI7QjU5MjsxMTA0IDExNjQgMTFCNTtCNTkyOzExMDQgMTE2NCAxMUI1OworQjU5MztCNTkzOzExMDQgMTE2NCAxMUI2O0I1OTM7MTEwNCAxMTY0IDExQjY7CitCNTk0O0I1OTQ7MTEwNCAxMTY0IDExQjc7QjU5NDsxMTA0IDExNjQgMTFCNzsKK0I1OTU7QjU5NTsxMTA0IDExNjQgMTFCODtCNTk1OzExMDQgMTE2NCAxMUI4OworQjU5NjtCNTk2OzExMDQgMTE2NCAxMUI5O0I1OTY7MTEwNCAxMTY0IDExQjk7CitCNTk3O0I1OTc7MTEwNCAxMTY0IDExQkE7QjU5NzsxMTA0IDExNjQgMTFCQTsKK0I1OTg7QjU5ODsxMTA0IDExNjQgMTFCQjtCNTk4OzExMDQgMTE2NCAxMUJCOworQjU5OTtCNTk5OzExMDQgMTE2NCAxMUJDO0I1OTk7MTEwNCAxMTY0IDExQkM7CitCNTlBO0I1OUE7MTEwNCAxMTY0IDExQkQ7QjU5QTsxMTA0IDExNjQgMTFCRDsKK0I1OUI7QjU5QjsxMTA0IDExNjQgMTFCRTtCNTlCOzExMDQgMTE2NCAxMUJFOworQjU5QztCNTlDOzExMDQgMTE2NCAxMUJGO0I1OUM7MTEwNCAxMTY0IDExQkY7CitCNTlEO0I1OUQ7MTEwNCAxMTY0IDExQzA7QjU5RDsxMTA0IDExNjQgMTFDMDsKK0I1OUU7QjU5RTsxMTA0IDExNjQgMTFDMTtCNTlFOzExMDQgMTE2NCAxMUMxOworQjU5RjtCNTlGOzExMDQgMTE2NCAxMUMyO0I1OUY7MTEwNCAxMTY0IDExQzI7CitCNUEwO0I1QTA7MTEwNCAxMTY1O0I1QTA7MTEwNCAxMTY1OworQjVBMTtCNUExOzExMDQgMTE2NSAxMUE4O0I1QTE7MTEwNCAxMTY1IDExQTg7CitCNUEyO0I1QTI7MTEwNCAxMTY1IDExQTk7QjVBMjsxMTA0IDExNjUgMTFBOTsKK0I1QTM7QjVBMzsxMTA0IDExNjUgMTFBQTtCNUEzOzExMDQgMTE2NSAxMUFBOworQjVBNDtCNUE0OzExMDQgMTE2NSAxMUFCO0I1QTQ7MTEwNCAxMTY1IDExQUI7CitCNUE1O0I1QTU7MTEwNCAxMTY1IDExQUM7QjVBNTsxMTA0IDExNjUgMTFBQzsKK0I1QTY7QjVBNjsxMTA0IDExNjUgMTFBRDtCNUE2OzExMDQgMTE2NSAxMUFEOworQjVBNztCNUE3OzExMDQgMTE2NSAxMUFFO0I1QTc7MTEwNCAxMTY1IDExQUU7CitCNUE4O0I1QTg7MTEwNCAxMTY1IDExQUY7QjVBODsxMTA0IDExNjUgMTFBRjsKK0I1QTk7QjVBOTsxMTA0IDExNjUgMTFCMDtCNUE5OzExMDQgMTE2NSAxMUIwOworQjVBQTtCNUFBOzExMDQgMTE2NSAxMUIxO0I1QUE7MTEwNCAxMTY1IDExQjE7CitCNUFCO0I1QUI7MTEwNCAxMTY1IDExQjI7QjVBQjsxMTA0IDExNjUgMTFCMjsKK0I1QUM7QjVBQzsxMTA0IDExNjUgMTFCMztCNUFDOzExMDQgMTE2NSAxMUIzOworQjVBRDtCNUFEOzExMDQgMTE2NSAxMUI0O0I1QUQ7MTEwNCAxMTY1IDExQjQ7CitCNUFFO0I1QUU7MTEwNCAxMTY1IDExQjU7QjVBRTsxMTA0IDExNjUgMTFCNTsKK0I1QUY7QjVBRjsxMTA0IDExNjUgMTFCNjtCNUFGOzExMDQgMTE2NSAxMUI2OworQjVCMDtCNUIwOzExMDQgMTE2NSAxMUI3O0I1QjA7MTEwNCAxMTY1IDExQjc7CitCNUIxO0I1QjE7MTEwNCAxMTY1IDExQjg7QjVCMTsxMTA0IDExNjUgMTFCODsKK0I1QjI7QjVCMjsxMTA0IDExNjUgMTFCOTtCNUIyOzExMDQgMTE2NSAxMUI5OworQjVCMztCNUIzOzExMDQgMTE2NSAxMUJBO0I1QjM7MTEwNCAxMTY1IDExQkE7CitCNUI0O0I1QjQ7MTEwNCAxMTY1IDExQkI7QjVCNDsxMTA0IDExNjUgMTFCQjsKK0I1QjU7QjVCNTsxMTA0IDExNjUgMTFCQztCNUI1OzExMDQgMTE2NSAxMUJDOworQjVCNjtCNUI2OzExMDQgMTE2NSAxMUJEO0I1QjY7MTEwNCAxMTY1IDExQkQ7CitCNUI3O0I1Qjc7MTEwNCAxMTY1IDExQkU7QjVCNzsxMTA0IDExNjUgMTFCRTsKK0I1Qjg7QjVCODsxMTA0IDExNjUgMTFCRjtCNUI4OzExMDQgMTE2NSAxMUJGOworQjVCOTtCNUI5OzExMDQgMTE2NSAxMUMwO0I1Qjk7MTEwNCAxMTY1IDExQzA7CitCNUJBO0I1QkE7MTEwNCAxMTY1IDExQzE7QjVCQTsxMTA0IDExNjUgMTFDMTsKK0I1QkI7QjVCQjsxMTA0IDExNjUgMTFDMjtCNUJCOzExMDQgMTE2NSAxMUMyOworQjVCQztCNUJDOzExMDQgMTE2NjtCNUJDOzExMDQgMTE2NjsKK0I1QkQ7QjVCRDsxMTA0IDExNjYgMTFBODtCNUJEOzExMDQgMTE2NiAxMUE4OworQjVCRTtCNUJFOzExMDQgMTE2NiAxMUE5O0I1QkU7MTEwNCAxMTY2IDExQTk7CitCNUJGO0I1QkY7MTEwNCAxMTY2IDExQUE7QjVCRjsxMTA0IDExNjYgMTFBQTsKK0I1QzA7QjVDMDsxMTA0IDExNjYgMTFBQjtCNUMwOzExMDQgMTE2NiAxMUFCOworQjVDMTtCNUMxOzExMDQgMTE2NiAxMUFDO0I1QzE7MTEwNCAxMTY2IDExQUM7CitCNUMyO0I1QzI7MTEwNCAxMTY2IDExQUQ7QjVDMjsxMTA0IDExNjYgMTFBRDsKK0I1QzM7QjVDMzsxMTA0IDExNjYgMTFBRTtCNUMzOzExMDQgMTE2NiAxMUFFOworQjVDNDtCNUM0OzExMDQgMTE2NiAxMUFGO0I1QzQ7MTEwNCAxMTY2IDExQUY7CitCNUM1O0I1QzU7MTEwNCAxMTY2IDExQjA7QjVDNTsxMTA0IDExNjYgMTFCMDsKK0I1QzY7QjVDNjsxMTA0IDExNjYgMTFCMTtCNUM2OzExMDQgMTE2NiAxMUIxOworQjVDNztCNUM3OzExMDQgMTE2NiAxMUIyO0I1Qzc7MTEwNCAxMTY2IDExQjI7CitCNUM4O0I1Qzg7MTEwNCAxMTY2IDExQjM7QjVDODsxMTA0IDExNjYgMTFCMzsKK0I1Qzk7QjVDOTsxMTA0IDExNjYgMTFCNDtCNUM5OzExMDQgMTE2NiAxMUI0OworQjVDQTtCNUNBOzExMDQgMTE2NiAxMUI1O0I1Q0E7MTEwNCAxMTY2IDExQjU7CitCNUNCO0I1Q0I7MTEwNCAxMTY2IDExQjY7QjVDQjsxMTA0IDExNjYgMTFCNjsKK0I1Q0M7QjVDQzsxMTA0IDExNjYgMTFCNztCNUNDOzExMDQgMTE2NiAxMUI3OworQjVDRDtCNUNEOzExMDQgMTE2NiAxMUI4O0I1Q0Q7MTEwNCAxMTY2IDExQjg7CitCNUNFO0I1Q0U7MTEwNCAxMTY2IDExQjk7QjVDRTsxMTA0IDExNjYgMTFCOTsKK0I1Q0Y7QjVDRjsxMTA0IDExNjYgMTFCQTtCNUNGOzExMDQgMTE2NiAxMUJBOworQjVEMDtCNUQwOzExMDQgMTE2NiAxMUJCO0I1RDA7MTEwNCAxMTY2IDExQkI7CitCNUQxO0I1RDE7MTEwNCAxMTY2IDExQkM7QjVEMTsxMTA0IDExNjYgMTFCQzsKK0I1RDI7QjVEMjsxMTA0IDExNjYgMTFCRDtCNUQyOzExMDQgMTE2NiAxMUJEOworQjVEMztCNUQzOzExMDQgMTE2NiAxMUJFO0I1RDM7MTEwNCAxMTY2IDExQkU7CitCNUQ0O0I1RDQ7MTEwNCAxMTY2IDExQkY7QjVENDsxMTA0IDExNjYgMTFCRjsKK0I1RDU7QjVENTsxMTA0IDExNjYgMTFDMDtCNUQ1OzExMDQgMTE2NiAxMUMwOworQjVENjtCNUQ2OzExMDQgMTE2NiAxMUMxO0I1RDY7MTEwNCAxMTY2IDExQzE7CitCNUQ3O0I1RDc7MTEwNCAxMTY2IDExQzI7QjVENzsxMTA0IDExNjYgMTFDMjsKK0I1RDg7QjVEODsxMTA0IDExNjc7QjVEODsxMTA0IDExNjc7CitCNUQ5O0I1RDk7MTEwNCAxMTY3IDExQTg7QjVEOTsxMTA0IDExNjcgMTFBODsKK0I1REE7QjVEQTsxMTA0IDExNjcgMTFBOTtCNURBOzExMDQgMTE2NyAxMUE5OworQjVEQjtCNURCOzExMDQgMTE2NyAxMUFBO0I1REI7MTEwNCAxMTY3IDExQUE7CitCNURDO0I1REM7MTEwNCAxMTY3IDExQUI7QjVEQzsxMTA0IDExNjcgMTFBQjsKK0I1REQ7QjVERDsxMTA0IDExNjcgMTFBQztCNUREOzExMDQgMTE2NyAxMUFDOworQjVERTtCNURFOzExMDQgMTE2NyAxMUFEO0I1REU7MTEwNCAxMTY3IDExQUQ7CitCNURGO0I1REY7MTEwNCAxMTY3IDExQUU7QjVERjsxMTA0IDExNjcgMTFBRTsKK0I1RTA7QjVFMDsxMTA0IDExNjcgMTFBRjtCNUUwOzExMDQgMTE2NyAxMUFGOworQjVFMTtCNUUxOzExMDQgMTE2NyAxMUIwO0I1RTE7MTEwNCAxMTY3IDExQjA7CitCNUUyO0I1RTI7MTEwNCAxMTY3IDExQjE7QjVFMjsxMTA0IDExNjcgMTFCMTsKK0I1RTM7QjVFMzsxMTA0IDExNjcgMTFCMjtCNUUzOzExMDQgMTE2NyAxMUIyOworQjVFNDtCNUU0OzExMDQgMTE2NyAxMUIzO0I1RTQ7MTEwNCAxMTY3IDExQjM7CitCNUU1O0I1RTU7MTEwNCAxMTY3IDExQjQ7QjVFNTsxMTA0IDExNjcgMTFCNDsKK0I1RTY7QjVFNjsxMTA0IDExNjcgMTFCNTtCNUU2OzExMDQgMTE2NyAxMUI1OworQjVFNztCNUU3OzExMDQgMTE2NyAxMUI2O0I1RTc7MTEwNCAxMTY3IDExQjY7CitCNUU4O0I1RTg7MTEwNCAxMTY3IDExQjc7QjVFODsxMTA0IDExNjcgMTFCNzsKK0I1RTk7QjVFOTsxMTA0IDExNjcgMTFCODtCNUU5OzExMDQgMTE2NyAxMUI4OworQjVFQTtCNUVBOzExMDQgMTE2NyAxMUI5O0I1RUE7MTEwNCAxMTY3IDExQjk7CitCNUVCO0I1RUI7MTEwNCAxMTY3IDExQkE7QjVFQjsxMTA0IDExNjcgMTFCQTsKK0I1RUM7QjVFQzsxMTA0IDExNjcgMTFCQjtCNUVDOzExMDQgMTE2NyAxMUJCOworQjVFRDtCNUVEOzExMDQgMTE2NyAxMUJDO0I1RUQ7MTEwNCAxMTY3IDExQkM7CitCNUVFO0I1RUU7MTEwNCAxMTY3IDExQkQ7QjVFRTsxMTA0IDExNjcgMTFCRDsKK0I1RUY7QjVFRjsxMTA0IDExNjcgMTFCRTtCNUVGOzExMDQgMTE2NyAxMUJFOworQjVGMDtCNUYwOzExMDQgMTE2NyAxMUJGO0I1RjA7MTEwNCAxMTY3IDExQkY7CitCNUYxO0I1RjE7MTEwNCAxMTY3IDExQzA7QjVGMTsxMTA0IDExNjcgMTFDMDsKK0I1RjI7QjVGMjsxMTA0IDExNjcgMTFDMTtCNUYyOzExMDQgMTE2NyAxMUMxOworQjVGMztCNUYzOzExMDQgMTE2NyAxMUMyO0I1RjM7MTEwNCAxMTY3IDExQzI7CitCNUY0O0I1RjQ7MTEwNCAxMTY4O0I1RjQ7MTEwNCAxMTY4OworQjVGNTtCNUY1OzExMDQgMTE2OCAxMUE4O0I1RjU7MTEwNCAxMTY4IDExQTg7CitCNUY2O0I1RjY7MTEwNCAxMTY4IDExQTk7QjVGNjsxMTA0IDExNjggMTFBOTsKK0I1Rjc7QjVGNzsxMTA0IDExNjggMTFBQTtCNUY3OzExMDQgMTE2OCAxMUFBOworQjVGODtCNUY4OzExMDQgMTE2OCAxMUFCO0I1Rjg7MTEwNCAxMTY4IDExQUI7CitCNUY5O0I1Rjk7MTEwNCAxMTY4IDExQUM7QjVGOTsxMTA0IDExNjggMTFBQzsKK0I1RkE7QjVGQTsxMTA0IDExNjggMTFBRDtCNUZBOzExMDQgMTE2OCAxMUFEOworQjVGQjtCNUZCOzExMDQgMTE2OCAxMUFFO0I1RkI7MTEwNCAxMTY4IDExQUU7CitCNUZDO0I1RkM7MTEwNCAxMTY4IDExQUY7QjVGQzsxMTA0IDExNjggMTFBRjsKK0I1RkQ7QjVGRDsxMTA0IDExNjggMTFCMDtCNUZEOzExMDQgMTE2OCAxMUIwOworQjVGRTtCNUZFOzExMDQgMTE2OCAxMUIxO0I1RkU7MTEwNCAxMTY4IDExQjE7CitCNUZGO0I1RkY7MTEwNCAxMTY4IDExQjI7QjVGRjsxMTA0IDExNjggMTFCMjsKK0I2MDA7QjYwMDsxMTA0IDExNjggMTFCMztCNjAwOzExMDQgMTE2OCAxMUIzOworQjYwMTtCNjAxOzExMDQgMTE2OCAxMUI0O0I2MDE7MTEwNCAxMTY4IDExQjQ7CitCNjAyO0I2MDI7MTEwNCAxMTY4IDExQjU7QjYwMjsxMTA0IDExNjggMTFCNTsKK0I2MDM7QjYwMzsxMTA0IDExNjggMTFCNjtCNjAzOzExMDQgMTE2OCAxMUI2OworQjYwNDtCNjA0OzExMDQgMTE2OCAxMUI3O0I2MDQ7MTEwNCAxMTY4IDExQjc7CitCNjA1O0I2MDU7MTEwNCAxMTY4IDExQjg7QjYwNTsxMTA0IDExNjggMTFCODsKK0I2MDY7QjYwNjsxMTA0IDExNjggMTFCOTtCNjA2OzExMDQgMTE2OCAxMUI5OworQjYwNztCNjA3OzExMDQgMTE2OCAxMUJBO0I2MDc7MTEwNCAxMTY4IDExQkE7CitCNjA4O0I2MDg7MTEwNCAxMTY4IDExQkI7QjYwODsxMTA0IDExNjggMTFCQjsKK0I2MDk7QjYwOTsxMTA0IDExNjggMTFCQztCNjA5OzExMDQgMTE2OCAxMUJDOworQjYwQTtCNjBBOzExMDQgMTE2OCAxMUJEO0I2MEE7MTEwNCAxMTY4IDExQkQ7CitCNjBCO0I2MEI7MTEwNCAxMTY4IDExQkU7QjYwQjsxMTA0IDExNjggMTFCRTsKK0I2MEM7QjYwQzsxMTA0IDExNjggMTFCRjtCNjBDOzExMDQgMTE2OCAxMUJGOworQjYwRDtCNjBEOzExMDQgMTE2OCAxMUMwO0I2MEQ7MTEwNCAxMTY4IDExQzA7CitCNjBFO0I2MEU7MTEwNCAxMTY4IDExQzE7QjYwRTsxMTA0IDExNjggMTFDMTsKK0I2MEY7QjYwRjsxMTA0IDExNjggMTFDMjtCNjBGOzExMDQgMTE2OCAxMUMyOworQjYxMDtCNjEwOzExMDQgMTE2OTtCNjEwOzExMDQgMTE2OTsKK0I2MTE7QjYxMTsxMTA0IDExNjkgMTFBODtCNjExOzExMDQgMTE2OSAxMUE4OworQjYxMjtCNjEyOzExMDQgMTE2OSAxMUE5O0I2MTI7MTEwNCAxMTY5IDExQTk7CitCNjEzO0I2MTM7MTEwNCAxMTY5IDExQUE7QjYxMzsxMTA0IDExNjkgMTFBQTsKK0I2MTQ7QjYxNDsxMTA0IDExNjkgMTFBQjtCNjE0OzExMDQgMTE2OSAxMUFCOworQjYxNTtCNjE1OzExMDQgMTE2OSAxMUFDO0I2MTU7MTEwNCAxMTY5IDExQUM7CitCNjE2O0I2MTY7MTEwNCAxMTY5IDExQUQ7QjYxNjsxMTA0IDExNjkgMTFBRDsKK0I2MTc7QjYxNzsxMTA0IDExNjkgMTFBRTtCNjE3OzExMDQgMTE2OSAxMUFFOworQjYxODtCNjE4OzExMDQgMTE2OSAxMUFGO0I2MTg7MTEwNCAxMTY5IDExQUY7CitCNjE5O0I2MTk7MTEwNCAxMTY5IDExQjA7QjYxOTsxMTA0IDExNjkgMTFCMDsKK0I2MUE7QjYxQTsxMTA0IDExNjkgMTFCMTtCNjFBOzExMDQgMTE2OSAxMUIxOworQjYxQjtCNjFCOzExMDQgMTE2OSAxMUIyO0I2MUI7MTEwNCAxMTY5IDExQjI7CitCNjFDO0I2MUM7MTEwNCAxMTY5IDExQjM7QjYxQzsxMTA0IDExNjkgMTFCMzsKK0I2MUQ7QjYxRDsxMTA0IDExNjkgMTFCNDtCNjFEOzExMDQgMTE2OSAxMUI0OworQjYxRTtCNjFFOzExMDQgMTE2OSAxMUI1O0I2MUU7MTEwNCAxMTY5IDExQjU7CitCNjFGO0I2MUY7MTEwNCAxMTY5IDExQjY7QjYxRjsxMTA0IDExNjkgMTFCNjsKK0I2MjA7QjYyMDsxMTA0IDExNjkgMTFCNztCNjIwOzExMDQgMTE2OSAxMUI3OworQjYyMTtCNjIxOzExMDQgMTE2OSAxMUI4O0I2MjE7MTEwNCAxMTY5IDExQjg7CitCNjIyO0I2MjI7MTEwNCAxMTY5IDExQjk7QjYyMjsxMTA0IDExNjkgMTFCOTsKK0I2MjM7QjYyMzsxMTA0IDExNjkgMTFCQTtCNjIzOzExMDQgMTE2OSAxMUJBOworQjYyNDtCNjI0OzExMDQgMTE2OSAxMUJCO0I2MjQ7MTEwNCAxMTY5IDExQkI7CitCNjI1O0I2MjU7MTEwNCAxMTY5IDExQkM7QjYyNTsxMTA0IDExNjkgMTFCQzsKK0I2MjY7QjYyNjsxMTA0IDExNjkgMTFCRDtCNjI2OzExMDQgMTE2OSAxMUJEOworQjYyNztCNjI3OzExMDQgMTE2OSAxMUJFO0I2Mjc7MTEwNCAxMTY5IDExQkU7CitCNjI4O0I2Mjg7MTEwNCAxMTY5IDExQkY7QjYyODsxMTA0IDExNjkgMTFCRjsKK0I2Mjk7QjYyOTsxMTA0IDExNjkgMTFDMDtCNjI5OzExMDQgMTE2OSAxMUMwOworQjYyQTtCNjJBOzExMDQgMTE2OSAxMUMxO0I2MkE7MTEwNCAxMTY5IDExQzE7CitCNjJCO0I2MkI7MTEwNCAxMTY5IDExQzI7QjYyQjsxMTA0IDExNjkgMTFDMjsKK0I2MkM7QjYyQzsxMTA0IDExNkE7QjYyQzsxMTA0IDExNkE7CitCNjJEO0I2MkQ7MTEwNCAxMTZBIDExQTg7QjYyRDsxMTA0IDExNkEgMTFBODsKK0I2MkU7QjYyRTsxMTA0IDExNkEgMTFBOTtCNjJFOzExMDQgMTE2QSAxMUE5OworQjYyRjtCNjJGOzExMDQgMTE2QSAxMUFBO0I2MkY7MTEwNCAxMTZBIDExQUE7CitCNjMwO0I2MzA7MTEwNCAxMTZBIDExQUI7QjYzMDsxMTA0IDExNkEgMTFBQjsKK0I2MzE7QjYzMTsxMTA0IDExNkEgMTFBQztCNjMxOzExMDQgMTE2QSAxMUFDOworQjYzMjtCNjMyOzExMDQgMTE2QSAxMUFEO0I2MzI7MTEwNCAxMTZBIDExQUQ7CitCNjMzO0I2MzM7MTEwNCAxMTZBIDExQUU7QjYzMzsxMTA0IDExNkEgMTFBRTsKK0I2MzQ7QjYzNDsxMTA0IDExNkEgMTFBRjtCNjM0OzExMDQgMTE2QSAxMUFGOworQjYzNTtCNjM1OzExMDQgMTE2QSAxMUIwO0I2MzU7MTEwNCAxMTZBIDExQjA7CitCNjM2O0I2MzY7MTEwNCAxMTZBIDExQjE7QjYzNjsxMTA0IDExNkEgMTFCMTsKK0I2Mzc7QjYzNzsxMTA0IDExNkEgMTFCMjtCNjM3OzExMDQgMTE2QSAxMUIyOworQjYzODtCNjM4OzExMDQgMTE2QSAxMUIzO0I2Mzg7MTEwNCAxMTZBIDExQjM7CitCNjM5O0I2Mzk7MTEwNCAxMTZBIDExQjQ7QjYzOTsxMTA0IDExNkEgMTFCNDsKK0I2M0E7QjYzQTsxMTA0IDExNkEgMTFCNTtCNjNBOzExMDQgMTE2QSAxMUI1OworQjYzQjtCNjNCOzExMDQgMTE2QSAxMUI2O0I2M0I7MTEwNCAxMTZBIDExQjY7CitCNjNDO0I2M0M7MTEwNCAxMTZBIDExQjc7QjYzQzsxMTA0IDExNkEgMTFCNzsKK0I2M0Q7QjYzRDsxMTA0IDExNkEgMTFCODtCNjNEOzExMDQgMTE2QSAxMUI4OworQjYzRTtCNjNFOzExMDQgMTE2QSAxMUI5O0I2M0U7MTEwNCAxMTZBIDExQjk7CitCNjNGO0I2M0Y7MTEwNCAxMTZBIDExQkE7QjYzRjsxMTA0IDExNkEgMTFCQTsKK0I2NDA7QjY0MDsxMTA0IDExNkEgMTFCQjtCNjQwOzExMDQgMTE2QSAxMUJCOworQjY0MTtCNjQxOzExMDQgMTE2QSAxMUJDO0I2NDE7MTEwNCAxMTZBIDExQkM7CitCNjQyO0I2NDI7MTEwNCAxMTZBIDExQkQ7QjY0MjsxMTA0IDExNkEgMTFCRDsKK0I2NDM7QjY0MzsxMTA0IDExNkEgMTFCRTtCNjQzOzExMDQgMTE2QSAxMUJFOworQjY0NDtCNjQ0OzExMDQgMTE2QSAxMUJGO0I2NDQ7MTEwNCAxMTZBIDExQkY7CitCNjQ1O0I2NDU7MTEwNCAxMTZBIDExQzA7QjY0NTsxMTA0IDExNkEgMTFDMDsKK0I2NDY7QjY0NjsxMTA0IDExNkEgMTFDMTtCNjQ2OzExMDQgMTE2QSAxMUMxOworQjY0NztCNjQ3OzExMDQgMTE2QSAxMUMyO0I2NDc7MTEwNCAxMTZBIDExQzI7CitCNjQ4O0I2NDg7MTEwNCAxMTZCO0I2NDg7MTEwNCAxMTZCOworQjY0OTtCNjQ5OzExMDQgMTE2QiAxMUE4O0I2NDk7MTEwNCAxMTZCIDExQTg7CitCNjRBO0I2NEE7MTEwNCAxMTZCIDExQTk7QjY0QTsxMTA0IDExNkIgMTFBOTsKK0I2NEI7QjY0QjsxMTA0IDExNkIgMTFBQTtCNjRCOzExMDQgMTE2QiAxMUFBOworQjY0QztCNjRDOzExMDQgMTE2QiAxMUFCO0I2NEM7MTEwNCAxMTZCIDExQUI7CitCNjREO0I2NEQ7MTEwNCAxMTZCIDExQUM7QjY0RDsxMTA0IDExNkIgMTFBQzsKK0I2NEU7QjY0RTsxMTA0IDExNkIgMTFBRDtCNjRFOzExMDQgMTE2QiAxMUFEOworQjY0RjtCNjRGOzExMDQgMTE2QiAxMUFFO0I2NEY7MTEwNCAxMTZCIDExQUU7CitCNjUwO0I2NTA7MTEwNCAxMTZCIDExQUY7QjY1MDsxMTA0IDExNkIgMTFBRjsKK0I2NTE7QjY1MTsxMTA0IDExNkIgMTFCMDtCNjUxOzExMDQgMTE2QiAxMUIwOworQjY1MjtCNjUyOzExMDQgMTE2QiAxMUIxO0I2NTI7MTEwNCAxMTZCIDExQjE7CitCNjUzO0I2NTM7MTEwNCAxMTZCIDExQjI7QjY1MzsxMTA0IDExNkIgMTFCMjsKK0I2NTQ7QjY1NDsxMTA0IDExNkIgMTFCMztCNjU0OzExMDQgMTE2QiAxMUIzOworQjY1NTtCNjU1OzExMDQgMTE2QiAxMUI0O0I2NTU7MTEwNCAxMTZCIDExQjQ7CitCNjU2O0I2NTY7MTEwNCAxMTZCIDExQjU7QjY1NjsxMTA0IDExNkIgMTFCNTsKK0I2NTc7QjY1NzsxMTA0IDExNkIgMTFCNjtCNjU3OzExMDQgMTE2QiAxMUI2OworQjY1ODtCNjU4OzExMDQgMTE2QiAxMUI3O0I2NTg7MTEwNCAxMTZCIDExQjc7CitCNjU5O0I2NTk7MTEwNCAxMTZCIDExQjg7QjY1OTsxMTA0IDExNkIgMTFCODsKK0I2NUE7QjY1QTsxMTA0IDExNkIgMTFCOTtCNjVBOzExMDQgMTE2QiAxMUI5OworQjY1QjtCNjVCOzExMDQgMTE2QiAxMUJBO0I2NUI7MTEwNCAxMTZCIDExQkE7CitCNjVDO0I2NUM7MTEwNCAxMTZCIDExQkI7QjY1QzsxMTA0IDExNkIgMTFCQjsKK0I2NUQ7QjY1RDsxMTA0IDExNkIgMTFCQztCNjVEOzExMDQgMTE2QiAxMUJDOworQjY1RTtCNjVFOzExMDQgMTE2QiAxMUJEO0I2NUU7MTEwNCAxMTZCIDExQkQ7CitCNjVGO0I2NUY7MTEwNCAxMTZCIDExQkU7QjY1RjsxMTA0IDExNkIgMTFCRTsKK0I2NjA7QjY2MDsxMTA0IDExNkIgMTFCRjtCNjYwOzExMDQgMTE2QiAxMUJGOworQjY2MTtCNjYxOzExMDQgMTE2QiAxMUMwO0I2NjE7MTEwNCAxMTZCIDExQzA7CitCNjYyO0I2NjI7MTEwNCAxMTZCIDExQzE7QjY2MjsxMTA0IDExNkIgMTFDMTsKK0I2NjM7QjY2MzsxMTA0IDExNkIgMTFDMjtCNjYzOzExMDQgMTE2QiAxMUMyOworQjY2NDtCNjY0OzExMDQgMTE2QztCNjY0OzExMDQgMTE2QzsKK0I2NjU7QjY2NTsxMTA0IDExNkMgMTFBODtCNjY1OzExMDQgMTE2QyAxMUE4OworQjY2NjtCNjY2OzExMDQgMTE2QyAxMUE5O0I2NjY7MTEwNCAxMTZDIDExQTk7CitCNjY3O0I2Njc7MTEwNCAxMTZDIDExQUE7QjY2NzsxMTA0IDExNkMgMTFBQTsKK0I2Njg7QjY2ODsxMTA0IDExNkMgMTFBQjtCNjY4OzExMDQgMTE2QyAxMUFCOworQjY2OTtCNjY5OzExMDQgMTE2QyAxMUFDO0I2Njk7MTEwNCAxMTZDIDExQUM7CitCNjZBO0I2NkE7MTEwNCAxMTZDIDExQUQ7QjY2QTsxMTA0IDExNkMgMTFBRDsKK0I2NkI7QjY2QjsxMTA0IDExNkMgMTFBRTtCNjZCOzExMDQgMTE2QyAxMUFFOworQjY2QztCNjZDOzExMDQgMTE2QyAxMUFGO0I2NkM7MTEwNCAxMTZDIDExQUY7CitCNjZEO0I2NkQ7MTEwNCAxMTZDIDExQjA7QjY2RDsxMTA0IDExNkMgMTFCMDsKK0I2NkU7QjY2RTsxMTA0IDExNkMgMTFCMTtCNjZFOzExMDQgMTE2QyAxMUIxOworQjY2RjtCNjZGOzExMDQgMTE2QyAxMUIyO0I2NkY7MTEwNCAxMTZDIDExQjI7CitCNjcwO0I2NzA7MTEwNCAxMTZDIDExQjM7QjY3MDsxMTA0IDExNkMgMTFCMzsKK0I2NzE7QjY3MTsxMTA0IDExNkMgMTFCNDtCNjcxOzExMDQgMTE2QyAxMUI0OworQjY3MjtCNjcyOzExMDQgMTE2QyAxMUI1O0I2NzI7MTEwNCAxMTZDIDExQjU7CitCNjczO0I2NzM7MTEwNCAxMTZDIDExQjY7QjY3MzsxMTA0IDExNkMgMTFCNjsKK0I2NzQ7QjY3NDsxMTA0IDExNkMgMTFCNztCNjc0OzExMDQgMTE2QyAxMUI3OworQjY3NTtCNjc1OzExMDQgMTE2QyAxMUI4O0I2NzU7MTEwNCAxMTZDIDExQjg7CitCNjc2O0I2NzY7MTEwNCAxMTZDIDExQjk7QjY3NjsxMTA0IDExNkMgMTFCOTsKK0I2Nzc7QjY3NzsxMTA0IDExNkMgMTFCQTtCNjc3OzExMDQgMTE2QyAxMUJBOworQjY3ODtCNjc4OzExMDQgMTE2QyAxMUJCO0I2Nzg7MTEwNCAxMTZDIDExQkI7CitCNjc5O0I2Nzk7MTEwNCAxMTZDIDExQkM7QjY3OTsxMTA0IDExNkMgMTFCQzsKK0I2N0E7QjY3QTsxMTA0IDExNkMgMTFCRDtCNjdBOzExMDQgMTE2QyAxMUJEOworQjY3QjtCNjdCOzExMDQgMTE2QyAxMUJFO0I2N0I7MTEwNCAxMTZDIDExQkU7CitCNjdDO0I2N0M7MTEwNCAxMTZDIDExQkY7QjY3QzsxMTA0IDExNkMgMTFCRjsKK0I2N0Q7QjY3RDsxMTA0IDExNkMgMTFDMDtCNjdEOzExMDQgMTE2QyAxMUMwOworQjY3RTtCNjdFOzExMDQgMTE2QyAxMUMxO0I2N0U7MTEwNCAxMTZDIDExQzE7CitCNjdGO0I2N0Y7MTEwNCAxMTZDIDExQzI7QjY3RjsxMTA0IDExNkMgMTFDMjsKK0I2ODA7QjY4MDsxMTA0IDExNkQ7QjY4MDsxMTA0IDExNkQ7CitCNjgxO0I2ODE7MTEwNCAxMTZEIDExQTg7QjY4MTsxMTA0IDExNkQgMTFBODsKK0I2ODI7QjY4MjsxMTA0IDExNkQgMTFBOTtCNjgyOzExMDQgMTE2RCAxMUE5OworQjY4MztCNjgzOzExMDQgMTE2RCAxMUFBO0I2ODM7MTEwNCAxMTZEIDExQUE7CitCNjg0O0I2ODQ7MTEwNCAxMTZEIDExQUI7QjY4NDsxMTA0IDExNkQgMTFBQjsKK0I2ODU7QjY4NTsxMTA0IDExNkQgMTFBQztCNjg1OzExMDQgMTE2RCAxMUFDOworQjY4NjtCNjg2OzExMDQgMTE2RCAxMUFEO0I2ODY7MTEwNCAxMTZEIDExQUQ7CitCNjg3O0I2ODc7MTEwNCAxMTZEIDExQUU7QjY4NzsxMTA0IDExNkQgMTFBRTsKK0I2ODg7QjY4ODsxMTA0IDExNkQgMTFBRjtCNjg4OzExMDQgMTE2RCAxMUFGOworQjY4OTtCNjg5OzExMDQgMTE2RCAxMUIwO0I2ODk7MTEwNCAxMTZEIDExQjA7CitCNjhBO0I2OEE7MTEwNCAxMTZEIDExQjE7QjY4QTsxMTA0IDExNkQgMTFCMTsKK0I2OEI7QjY4QjsxMTA0IDExNkQgMTFCMjtCNjhCOzExMDQgMTE2RCAxMUIyOworQjY4QztCNjhDOzExMDQgMTE2RCAxMUIzO0I2OEM7MTEwNCAxMTZEIDExQjM7CitCNjhEO0I2OEQ7MTEwNCAxMTZEIDExQjQ7QjY4RDsxMTA0IDExNkQgMTFCNDsKK0I2OEU7QjY4RTsxMTA0IDExNkQgMTFCNTtCNjhFOzExMDQgMTE2RCAxMUI1OworQjY4RjtCNjhGOzExMDQgMTE2RCAxMUI2O0I2OEY7MTEwNCAxMTZEIDExQjY7CitCNjkwO0I2OTA7MTEwNCAxMTZEIDExQjc7QjY5MDsxMTA0IDExNkQgMTFCNzsKK0I2OTE7QjY5MTsxMTA0IDExNkQgMTFCODtCNjkxOzExMDQgMTE2RCAxMUI4OworQjY5MjtCNjkyOzExMDQgMTE2RCAxMUI5O0I2OTI7MTEwNCAxMTZEIDExQjk7CitCNjkzO0I2OTM7MTEwNCAxMTZEIDExQkE7QjY5MzsxMTA0IDExNkQgMTFCQTsKK0I2OTQ7QjY5NDsxMTA0IDExNkQgMTFCQjtCNjk0OzExMDQgMTE2RCAxMUJCOworQjY5NTtCNjk1OzExMDQgMTE2RCAxMUJDO0I2OTU7MTEwNCAxMTZEIDExQkM7CitCNjk2O0I2OTY7MTEwNCAxMTZEIDExQkQ7QjY5NjsxMTA0IDExNkQgMTFCRDsKK0I2OTc7QjY5NzsxMTA0IDExNkQgMTFCRTtCNjk3OzExMDQgMTE2RCAxMUJFOworQjY5ODtCNjk4OzExMDQgMTE2RCAxMUJGO0I2OTg7MTEwNCAxMTZEIDExQkY7CitCNjk5O0I2OTk7MTEwNCAxMTZEIDExQzA7QjY5OTsxMTA0IDExNkQgMTFDMDsKK0I2OUE7QjY5QTsxMTA0IDExNkQgMTFDMTtCNjlBOzExMDQgMTE2RCAxMUMxOworQjY5QjtCNjlCOzExMDQgMTE2RCAxMUMyO0I2OUI7MTEwNCAxMTZEIDExQzI7CitCNjlDO0I2OUM7MTEwNCAxMTZFO0I2OUM7MTEwNCAxMTZFOworQjY5RDtCNjlEOzExMDQgMTE2RSAxMUE4O0I2OUQ7MTEwNCAxMTZFIDExQTg7CitCNjlFO0I2OUU7MTEwNCAxMTZFIDExQTk7QjY5RTsxMTA0IDExNkUgMTFBOTsKK0I2OUY7QjY5RjsxMTA0IDExNkUgMTFBQTtCNjlGOzExMDQgMTE2RSAxMUFBOworQjZBMDtCNkEwOzExMDQgMTE2RSAxMUFCO0I2QTA7MTEwNCAxMTZFIDExQUI7CitCNkExO0I2QTE7MTEwNCAxMTZFIDExQUM7QjZBMTsxMTA0IDExNkUgMTFBQzsKK0I2QTI7QjZBMjsxMTA0IDExNkUgMTFBRDtCNkEyOzExMDQgMTE2RSAxMUFEOworQjZBMztCNkEzOzExMDQgMTE2RSAxMUFFO0I2QTM7MTEwNCAxMTZFIDExQUU7CitCNkE0O0I2QTQ7MTEwNCAxMTZFIDExQUY7QjZBNDsxMTA0IDExNkUgMTFBRjsKK0I2QTU7QjZBNTsxMTA0IDExNkUgMTFCMDtCNkE1OzExMDQgMTE2RSAxMUIwOworQjZBNjtCNkE2OzExMDQgMTE2RSAxMUIxO0I2QTY7MTEwNCAxMTZFIDExQjE7CitCNkE3O0I2QTc7MTEwNCAxMTZFIDExQjI7QjZBNzsxMTA0IDExNkUgMTFCMjsKK0I2QTg7QjZBODsxMTA0IDExNkUgMTFCMztCNkE4OzExMDQgMTE2RSAxMUIzOworQjZBOTtCNkE5OzExMDQgMTE2RSAxMUI0O0I2QTk7MTEwNCAxMTZFIDExQjQ7CitCNkFBO0I2QUE7MTEwNCAxMTZFIDExQjU7QjZBQTsxMTA0IDExNkUgMTFCNTsKK0I2QUI7QjZBQjsxMTA0IDExNkUgMTFCNjtCNkFCOzExMDQgMTE2RSAxMUI2OworQjZBQztCNkFDOzExMDQgMTE2RSAxMUI3O0I2QUM7MTEwNCAxMTZFIDExQjc7CitCNkFEO0I2QUQ7MTEwNCAxMTZFIDExQjg7QjZBRDsxMTA0IDExNkUgMTFCODsKK0I2QUU7QjZBRTsxMTA0IDExNkUgMTFCOTtCNkFFOzExMDQgMTE2RSAxMUI5OworQjZBRjtCNkFGOzExMDQgMTE2RSAxMUJBO0I2QUY7MTEwNCAxMTZFIDExQkE7CitCNkIwO0I2QjA7MTEwNCAxMTZFIDExQkI7QjZCMDsxMTA0IDExNkUgMTFCQjsKK0I2QjE7QjZCMTsxMTA0IDExNkUgMTFCQztCNkIxOzExMDQgMTE2RSAxMUJDOworQjZCMjtCNkIyOzExMDQgMTE2RSAxMUJEO0I2QjI7MTEwNCAxMTZFIDExQkQ7CitCNkIzO0I2QjM7MTEwNCAxMTZFIDExQkU7QjZCMzsxMTA0IDExNkUgMTFCRTsKK0I2QjQ7QjZCNDsxMTA0IDExNkUgMTFCRjtCNkI0OzExMDQgMTE2RSAxMUJGOworQjZCNTtCNkI1OzExMDQgMTE2RSAxMUMwO0I2QjU7MTEwNCAxMTZFIDExQzA7CitCNkI2O0I2QjY7MTEwNCAxMTZFIDExQzE7QjZCNjsxMTA0IDExNkUgMTFDMTsKK0I2Qjc7QjZCNzsxMTA0IDExNkUgMTFDMjtCNkI3OzExMDQgMTE2RSAxMUMyOworQjZCODtCNkI4OzExMDQgMTE2RjtCNkI4OzExMDQgMTE2RjsKK0I2Qjk7QjZCOTsxMTA0IDExNkYgMTFBODtCNkI5OzExMDQgMTE2RiAxMUE4OworQjZCQTtCNkJBOzExMDQgMTE2RiAxMUE5O0I2QkE7MTEwNCAxMTZGIDExQTk7CitCNkJCO0I2QkI7MTEwNCAxMTZGIDExQUE7QjZCQjsxMTA0IDExNkYgMTFBQTsKK0I2QkM7QjZCQzsxMTA0IDExNkYgMTFBQjtCNkJDOzExMDQgMTE2RiAxMUFCOworQjZCRDtCNkJEOzExMDQgMTE2RiAxMUFDO0I2QkQ7MTEwNCAxMTZGIDExQUM7CitCNkJFO0I2QkU7MTEwNCAxMTZGIDExQUQ7QjZCRTsxMTA0IDExNkYgMTFBRDsKK0I2QkY7QjZCRjsxMTA0IDExNkYgMTFBRTtCNkJGOzExMDQgMTE2RiAxMUFFOworQjZDMDtCNkMwOzExMDQgMTE2RiAxMUFGO0I2QzA7MTEwNCAxMTZGIDExQUY7CitCNkMxO0I2QzE7MTEwNCAxMTZGIDExQjA7QjZDMTsxMTA0IDExNkYgMTFCMDsKK0I2QzI7QjZDMjsxMTA0IDExNkYgMTFCMTtCNkMyOzExMDQgMTE2RiAxMUIxOworQjZDMztCNkMzOzExMDQgMTE2RiAxMUIyO0I2QzM7MTEwNCAxMTZGIDExQjI7CitCNkM0O0I2QzQ7MTEwNCAxMTZGIDExQjM7QjZDNDsxMTA0IDExNkYgMTFCMzsKK0I2QzU7QjZDNTsxMTA0IDExNkYgMTFCNDtCNkM1OzExMDQgMTE2RiAxMUI0OworQjZDNjtCNkM2OzExMDQgMTE2RiAxMUI1O0I2QzY7MTEwNCAxMTZGIDExQjU7CitCNkM3O0I2Qzc7MTEwNCAxMTZGIDExQjY7QjZDNzsxMTA0IDExNkYgMTFCNjsKK0I2Qzg7QjZDODsxMTA0IDExNkYgMTFCNztCNkM4OzExMDQgMTE2RiAxMUI3OworQjZDOTtCNkM5OzExMDQgMTE2RiAxMUI4O0I2Qzk7MTEwNCAxMTZGIDExQjg7CitCNkNBO0I2Q0E7MTEwNCAxMTZGIDExQjk7QjZDQTsxMTA0IDExNkYgMTFCOTsKK0I2Q0I7QjZDQjsxMTA0IDExNkYgMTFCQTtCNkNCOzExMDQgMTE2RiAxMUJBOworQjZDQztCNkNDOzExMDQgMTE2RiAxMUJCO0I2Q0M7MTEwNCAxMTZGIDExQkI7CitCNkNEO0I2Q0Q7MTEwNCAxMTZGIDExQkM7QjZDRDsxMTA0IDExNkYgMTFCQzsKK0I2Q0U7QjZDRTsxMTA0IDExNkYgMTFCRDtCNkNFOzExMDQgMTE2RiAxMUJEOworQjZDRjtCNkNGOzExMDQgMTE2RiAxMUJFO0I2Q0Y7MTEwNCAxMTZGIDExQkU7CitCNkQwO0I2RDA7MTEwNCAxMTZGIDExQkY7QjZEMDsxMTA0IDExNkYgMTFCRjsKK0I2RDE7QjZEMTsxMTA0IDExNkYgMTFDMDtCNkQxOzExMDQgMTE2RiAxMUMwOworQjZEMjtCNkQyOzExMDQgMTE2RiAxMUMxO0I2RDI7MTEwNCAxMTZGIDExQzE7CitCNkQzO0I2RDM7MTEwNCAxMTZGIDExQzI7QjZEMzsxMTA0IDExNkYgMTFDMjsKK0I2RDQ7QjZENDsxMTA0IDExNzA7QjZENDsxMTA0IDExNzA7CitCNkQ1O0I2RDU7MTEwNCAxMTcwIDExQTg7QjZENTsxMTA0IDExNzAgMTFBODsKK0I2RDY7QjZENjsxMTA0IDExNzAgMTFBOTtCNkQ2OzExMDQgMTE3MCAxMUE5OworQjZENztCNkQ3OzExMDQgMTE3MCAxMUFBO0I2RDc7MTEwNCAxMTcwIDExQUE7CitCNkQ4O0I2RDg7MTEwNCAxMTcwIDExQUI7QjZEODsxMTA0IDExNzAgMTFBQjsKK0I2RDk7QjZEOTsxMTA0IDExNzAgMTFBQztCNkQ5OzExMDQgMTE3MCAxMUFDOworQjZEQTtCNkRBOzExMDQgMTE3MCAxMUFEO0I2REE7MTEwNCAxMTcwIDExQUQ7CitCNkRCO0I2REI7MTEwNCAxMTcwIDExQUU7QjZEQjsxMTA0IDExNzAgMTFBRTsKK0I2REM7QjZEQzsxMTA0IDExNzAgMTFBRjtCNkRDOzExMDQgMTE3MCAxMUFGOworQjZERDtCNkREOzExMDQgMTE3MCAxMUIwO0I2REQ7MTEwNCAxMTcwIDExQjA7CitCNkRFO0I2REU7MTEwNCAxMTcwIDExQjE7QjZERTsxMTA0IDExNzAgMTFCMTsKK0I2REY7QjZERjsxMTA0IDExNzAgMTFCMjtCNkRGOzExMDQgMTE3MCAxMUIyOworQjZFMDtCNkUwOzExMDQgMTE3MCAxMUIzO0I2RTA7MTEwNCAxMTcwIDExQjM7CitCNkUxO0I2RTE7MTEwNCAxMTcwIDExQjQ7QjZFMTsxMTA0IDExNzAgMTFCNDsKK0I2RTI7QjZFMjsxMTA0IDExNzAgMTFCNTtCNkUyOzExMDQgMTE3MCAxMUI1OworQjZFMztCNkUzOzExMDQgMTE3MCAxMUI2O0I2RTM7MTEwNCAxMTcwIDExQjY7CitCNkU0O0I2RTQ7MTEwNCAxMTcwIDExQjc7QjZFNDsxMTA0IDExNzAgMTFCNzsKK0I2RTU7QjZFNTsxMTA0IDExNzAgMTFCODtCNkU1OzExMDQgMTE3MCAxMUI4OworQjZFNjtCNkU2OzExMDQgMTE3MCAxMUI5O0I2RTY7MTEwNCAxMTcwIDExQjk7CitCNkU3O0I2RTc7MTEwNCAxMTcwIDExQkE7QjZFNzsxMTA0IDExNzAgMTFCQTsKK0I2RTg7QjZFODsxMTA0IDExNzAgMTFCQjtCNkU4OzExMDQgMTE3MCAxMUJCOworQjZFOTtCNkU5OzExMDQgMTE3MCAxMUJDO0I2RTk7MTEwNCAxMTcwIDExQkM7CitCNkVBO0I2RUE7MTEwNCAxMTcwIDExQkQ7QjZFQTsxMTA0IDExNzAgMTFCRDsKK0I2RUI7QjZFQjsxMTA0IDExNzAgMTFCRTtCNkVCOzExMDQgMTE3MCAxMUJFOworQjZFQztCNkVDOzExMDQgMTE3MCAxMUJGO0I2RUM7MTEwNCAxMTcwIDExQkY7CitCNkVEO0I2RUQ7MTEwNCAxMTcwIDExQzA7QjZFRDsxMTA0IDExNzAgMTFDMDsKK0I2RUU7QjZFRTsxMTA0IDExNzAgMTFDMTtCNkVFOzExMDQgMTE3MCAxMUMxOworQjZFRjtCNkVGOzExMDQgMTE3MCAxMUMyO0I2RUY7MTEwNCAxMTcwIDExQzI7CitCNkYwO0I2RjA7MTEwNCAxMTcxO0I2RjA7MTEwNCAxMTcxOworQjZGMTtCNkYxOzExMDQgMTE3MSAxMUE4O0I2RjE7MTEwNCAxMTcxIDExQTg7CitCNkYyO0I2RjI7MTEwNCAxMTcxIDExQTk7QjZGMjsxMTA0IDExNzEgMTFBOTsKK0I2RjM7QjZGMzsxMTA0IDExNzEgMTFBQTtCNkYzOzExMDQgMTE3MSAxMUFBOworQjZGNDtCNkY0OzExMDQgMTE3MSAxMUFCO0I2RjQ7MTEwNCAxMTcxIDExQUI7CitCNkY1O0I2RjU7MTEwNCAxMTcxIDExQUM7QjZGNTsxMTA0IDExNzEgMTFBQzsKK0I2RjY7QjZGNjsxMTA0IDExNzEgMTFBRDtCNkY2OzExMDQgMTE3MSAxMUFEOworQjZGNztCNkY3OzExMDQgMTE3MSAxMUFFO0I2Rjc7MTEwNCAxMTcxIDExQUU7CitCNkY4O0I2Rjg7MTEwNCAxMTcxIDExQUY7QjZGODsxMTA0IDExNzEgMTFBRjsKK0I2Rjk7QjZGOTsxMTA0IDExNzEgMTFCMDtCNkY5OzExMDQgMTE3MSAxMUIwOworQjZGQTtCNkZBOzExMDQgMTE3MSAxMUIxO0I2RkE7MTEwNCAxMTcxIDExQjE7CitCNkZCO0I2RkI7MTEwNCAxMTcxIDExQjI7QjZGQjsxMTA0IDExNzEgMTFCMjsKK0I2RkM7QjZGQzsxMTA0IDExNzEgMTFCMztCNkZDOzExMDQgMTE3MSAxMUIzOworQjZGRDtCNkZEOzExMDQgMTE3MSAxMUI0O0I2RkQ7MTEwNCAxMTcxIDExQjQ7CitCNkZFO0I2RkU7MTEwNCAxMTcxIDExQjU7QjZGRTsxMTA0IDExNzEgMTFCNTsKK0I2RkY7QjZGRjsxMTA0IDExNzEgMTFCNjtCNkZGOzExMDQgMTE3MSAxMUI2OworQjcwMDtCNzAwOzExMDQgMTE3MSAxMUI3O0I3MDA7MTEwNCAxMTcxIDExQjc7CitCNzAxO0I3MDE7MTEwNCAxMTcxIDExQjg7QjcwMTsxMTA0IDExNzEgMTFCODsKK0I3MDI7QjcwMjsxMTA0IDExNzEgMTFCOTtCNzAyOzExMDQgMTE3MSAxMUI5OworQjcwMztCNzAzOzExMDQgMTE3MSAxMUJBO0I3MDM7MTEwNCAxMTcxIDExQkE7CitCNzA0O0I3MDQ7MTEwNCAxMTcxIDExQkI7QjcwNDsxMTA0IDExNzEgMTFCQjsKK0I3MDU7QjcwNTsxMTA0IDExNzEgMTFCQztCNzA1OzExMDQgMTE3MSAxMUJDOworQjcwNjtCNzA2OzExMDQgMTE3MSAxMUJEO0I3MDY7MTEwNCAxMTcxIDExQkQ7CitCNzA3O0I3MDc7MTEwNCAxMTcxIDExQkU7QjcwNzsxMTA0IDExNzEgMTFCRTsKK0I3MDg7QjcwODsxMTA0IDExNzEgMTFCRjtCNzA4OzExMDQgMTE3MSAxMUJGOworQjcwOTtCNzA5OzExMDQgMTE3MSAxMUMwO0I3MDk7MTEwNCAxMTcxIDExQzA7CitCNzBBO0I3MEE7MTEwNCAxMTcxIDExQzE7QjcwQTsxMTA0IDExNzEgMTFDMTsKK0I3MEI7QjcwQjsxMTA0IDExNzEgMTFDMjtCNzBCOzExMDQgMTE3MSAxMUMyOworQjcwQztCNzBDOzExMDQgMTE3MjtCNzBDOzExMDQgMTE3MjsKK0I3MEQ7QjcwRDsxMTA0IDExNzIgMTFBODtCNzBEOzExMDQgMTE3MiAxMUE4OworQjcwRTtCNzBFOzExMDQgMTE3MiAxMUE5O0I3MEU7MTEwNCAxMTcyIDExQTk7CitCNzBGO0I3MEY7MTEwNCAxMTcyIDExQUE7QjcwRjsxMTA0IDExNzIgMTFBQTsKK0I3MTA7QjcxMDsxMTA0IDExNzIgMTFBQjtCNzEwOzExMDQgMTE3MiAxMUFCOworQjcxMTtCNzExOzExMDQgMTE3MiAxMUFDO0I3MTE7MTEwNCAxMTcyIDExQUM7CitCNzEyO0I3MTI7MTEwNCAxMTcyIDExQUQ7QjcxMjsxMTA0IDExNzIgMTFBRDsKK0I3MTM7QjcxMzsxMTA0IDExNzIgMTFBRTtCNzEzOzExMDQgMTE3MiAxMUFFOworQjcxNDtCNzE0OzExMDQgMTE3MiAxMUFGO0I3MTQ7MTEwNCAxMTcyIDExQUY7CitCNzE1O0I3MTU7MTEwNCAxMTcyIDExQjA7QjcxNTsxMTA0IDExNzIgMTFCMDsKK0I3MTY7QjcxNjsxMTA0IDExNzIgMTFCMTtCNzE2OzExMDQgMTE3MiAxMUIxOworQjcxNztCNzE3OzExMDQgMTE3MiAxMUIyO0I3MTc7MTEwNCAxMTcyIDExQjI7CitCNzE4O0I3MTg7MTEwNCAxMTcyIDExQjM7QjcxODsxMTA0IDExNzIgMTFCMzsKK0I3MTk7QjcxOTsxMTA0IDExNzIgMTFCNDtCNzE5OzExMDQgMTE3MiAxMUI0OworQjcxQTtCNzFBOzExMDQgMTE3MiAxMUI1O0I3MUE7MTEwNCAxMTcyIDExQjU7CitCNzFCO0I3MUI7MTEwNCAxMTcyIDExQjY7QjcxQjsxMTA0IDExNzIgMTFCNjsKK0I3MUM7QjcxQzsxMTA0IDExNzIgMTFCNztCNzFDOzExMDQgMTE3MiAxMUI3OworQjcxRDtCNzFEOzExMDQgMTE3MiAxMUI4O0I3MUQ7MTEwNCAxMTcyIDExQjg7CitCNzFFO0I3MUU7MTEwNCAxMTcyIDExQjk7QjcxRTsxMTA0IDExNzIgMTFCOTsKK0I3MUY7QjcxRjsxMTA0IDExNzIgMTFCQTtCNzFGOzExMDQgMTE3MiAxMUJBOworQjcyMDtCNzIwOzExMDQgMTE3MiAxMUJCO0I3MjA7MTEwNCAxMTcyIDExQkI7CitCNzIxO0I3MjE7MTEwNCAxMTcyIDExQkM7QjcyMTsxMTA0IDExNzIgMTFCQzsKK0I3MjI7QjcyMjsxMTA0IDExNzIgMTFCRDtCNzIyOzExMDQgMTE3MiAxMUJEOworQjcyMztCNzIzOzExMDQgMTE3MiAxMUJFO0I3MjM7MTEwNCAxMTcyIDExQkU7CitCNzI0O0I3MjQ7MTEwNCAxMTcyIDExQkY7QjcyNDsxMTA0IDExNzIgMTFCRjsKK0I3MjU7QjcyNTsxMTA0IDExNzIgMTFDMDtCNzI1OzExMDQgMTE3MiAxMUMwOworQjcyNjtCNzI2OzExMDQgMTE3MiAxMUMxO0I3MjY7MTEwNCAxMTcyIDExQzE7CitCNzI3O0I3Mjc7MTEwNCAxMTcyIDExQzI7QjcyNzsxMTA0IDExNzIgMTFDMjsKK0I3Mjg7QjcyODsxMTA0IDExNzM7QjcyODsxMTA0IDExNzM7CitCNzI5O0I3Mjk7MTEwNCAxMTczIDExQTg7QjcyOTsxMTA0IDExNzMgMTFBODsKK0I3MkE7QjcyQTsxMTA0IDExNzMgMTFBOTtCNzJBOzExMDQgMTE3MyAxMUE5OworQjcyQjtCNzJCOzExMDQgMTE3MyAxMUFBO0I3MkI7MTEwNCAxMTczIDExQUE7CitCNzJDO0I3MkM7MTEwNCAxMTczIDExQUI7QjcyQzsxMTA0IDExNzMgMTFBQjsKK0I3MkQ7QjcyRDsxMTA0IDExNzMgMTFBQztCNzJEOzExMDQgMTE3MyAxMUFDOworQjcyRTtCNzJFOzExMDQgMTE3MyAxMUFEO0I3MkU7MTEwNCAxMTczIDExQUQ7CitCNzJGO0I3MkY7MTEwNCAxMTczIDExQUU7QjcyRjsxMTA0IDExNzMgMTFBRTsKK0I3MzA7QjczMDsxMTA0IDExNzMgMTFBRjtCNzMwOzExMDQgMTE3MyAxMUFGOworQjczMTtCNzMxOzExMDQgMTE3MyAxMUIwO0I3MzE7MTEwNCAxMTczIDExQjA7CitCNzMyO0I3MzI7MTEwNCAxMTczIDExQjE7QjczMjsxMTA0IDExNzMgMTFCMTsKK0I3MzM7QjczMzsxMTA0IDExNzMgMTFCMjtCNzMzOzExMDQgMTE3MyAxMUIyOworQjczNDtCNzM0OzExMDQgMTE3MyAxMUIzO0I3MzQ7MTEwNCAxMTczIDExQjM7CitCNzM1O0I3MzU7MTEwNCAxMTczIDExQjQ7QjczNTsxMTA0IDExNzMgMTFCNDsKK0I3MzY7QjczNjsxMTA0IDExNzMgMTFCNTtCNzM2OzExMDQgMTE3MyAxMUI1OworQjczNztCNzM3OzExMDQgMTE3MyAxMUI2O0I3Mzc7MTEwNCAxMTczIDExQjY7CitCNzM4O0I3Mzg7MTEwNCAxMTczIDExQjc7QjczODsxMTA0IDExNzMgMTFCNzsKK0I3Mzk7QjczOTsxMTA0IDExNzMgMTFCODtCNzM5OzExMDQgMTE3MyAxMUI4OworQjczQTtCNzNBOzExMDQgMTE3MyAxMUI5O0I3M0E7MTEwNCAxMTczIDExQjk7CitCNzNCO0I3M0I7MTEwNCAxMTczIDExQkE7QjczQjsxMTA0IDExNzMgMTFCQTsKK0I3M0M7QjczQzsxMTA0IDExNzMgMTFCQjtCNzNDOzExMDQgMTE3MyAxMUJCOworQjczRDtCNzNEOzExMDQgMTE3MyAxMUJDO0I3M0Q7MTEwNCAxMTczIDExQkM7CitCNzNFO0I3M0U7MTEwNCAxMTczIDExQkQ7QjczRTsxMTA0IDExNzMgMTFCRDsKK0I3M0Y7QjczRjsxMTA0IDExNzMgMTFCRTtCNzNGOzExMDQgMTE3MyAxMUJFOworQjc0MDtCNzQwOzExMDQgMTE3MyAxMUJGO0I3NDA7MTEwNCAxMTczIDExQkY7CitCNzQxO0I3NDE7MTEwNCAxMTczIDExQzA7Qjc0MTsxMTA0IDExNzMgMTFDMDsKK0I3NDI7Qjc0MjsxMTA0IDExNzMgMTFDMTtCNzQyOzExMDQgMTE3MyAxMUMxOworQjc0MztCNzQzOzExMDQgMTE3MyAxMUMyO0I3NDM7MTEwNCAxMTczIDExQzI7CitCNzQ0O0I3NDQ7MTEwNCAxMTc0O0I3NDQ7MTEwNCAxMTc0OworQjc0NTtCNzQ1OzExMDQgMTE3NCAxMUE4O0I3NDU7MTEwNCAxMTc0IDExQTg7CitCNzQ2O0I3NDY7MTEwNCAxMTc0IDExQTk7Qjc0NjsxMTA0IDExNzQgMTFBOTsKK0I3NDc7Qjc0NzsxMTA0IDExNzQgMTFBQTtCNzQ3OzExMDQgMTE3NCAxMUFBOworQjc0ODtCNzQ4OzExMDQgMTE3NCAxMUFCO0I3NDg7MTEwNCAxMTc0IDExQUI7CitCNzQ5O0I3NDk7MTEwNCAxMTc0IDExQUM7Qjc0OTsxMTA0IDExNzQgMTFBQzsKK0I3NEE7Qjc0QTsxMTA0IDExNzQgMTFBRDtCNzRBOzExMDQgMTE3NCAxMUFEOworQjc0QjtCNzRCOzExMDQgMTE3NCAxMUFFO0I3NEI7MTEwNCAxMTc0IDExQUU7CitCNzRDO0I3NEM7MTEwNCAxMTc0IDExQUY7Qjc0QzsxMTA0IDExNzQgMTFBRjsKK0I3NEQ7Qjc0RDsxMTA0IDExNzQgMTFCMDtCNzREOzExMDQgMTE3NCAxMUIwOworQjc0RTtCNzRFOzExMDQgMTE3NCAxMUIxO0I3NEU7MTEwNCAxMTc0IDExQjE7CitCNzRGO0I3NEY7MTEwNCAxMTc0IDExQjI7Qjc0RjsxMTA0IDExNzQgMTFCMjsKK0I3NTA7Qjc1MDsxMTA0IDExNzQgMTFCMztCNzUwOzExMDQgMTE3NCAxMUIzOworQjc1MTtCNzUxOzExMDQgMTE3NCAxMUI0O0I3NTE7MTEwNCAxMTc0IDExQjQ7CitCNzUyO0I3NTI7MTEwNCAxMTc0IDExQjU7Qjc1MjsxMTA0IDExNzQgMTFCNTsKK0I3NTM7Qjc1MzsxMTA0IDExNzQgMTFCNjtCNzUzOzExMDQgMTE3NCAxMUI2OworQjc1NDtCNzU0OzExMDQgMTE3NCAxMUI3O0I3NTQ7MTEwNCAxMTc0IDExQjc7CitCNzU1O0I3NTU7MTEwNCAxMTc0IDExQjg7Qjc1NTsxMTA0IDExNzQgMTFCODsKK0I3NTY7Qjc1NjsxMTA0IDExNzQgMTFCOTtCNzU2OzExMDQgMTE3NCAxMUI5OworQjc1NztCNzU3OzExMDQgMTE3NCAxMUJBO0I3NTc7MTEwNCAxMTc0IDExQkE7CitCNzU4O0I3NTg7MTEwNCAxMTc0IDExQkI7Qjc1ODsxMTA0IDExNzQgMTFCQjsKK0I3NTk7Qjc1OTsxMTA0IDExNzQgMTFCQztCNzU5OzExMDQgMTE3NCAxMUJDOworQjc1QTtCNzVBOzExMDQgMTE3NCAxMUJEO0I3NUE7MTEwNCAxMTc0IDExQkQ7CitCNzVCO0I3NUI7MTEwNCAxMTc0IDExQkU7Qjc1QjsxMTA0IDExNzQgMTFCRTsKK0I3NUM7Qjc1QzsxMTA0IDExNzQgMTFCRjtCNzVDOzExMDQgMTE3NCAxMUJGOworQjc1RDtCNzVEOzExMDQgMTE3NCAxMUMwO0I3NUQ7MTEwNCAxMTc0IDExQzA7CitCNzVFO0I3NUU7MTEwNCAxMTc0IDExQzE7Qjc1RTsxMTA0IDExNzQgMTFDMTsKK0I3NUY7Qjc1RjsxMTA0IDExNzQgMTFDMjtCNzVGOzExMDQgMTE3NCAxMUMyOworQjc2MDtCNzYwOzExMDQgMTE3NTtCNzYwOzExMDQgMTE3NTsKK0I3NjE7Qjc2MTsxMTA0IDExNzUgMTFBODtCNzYxOzExMDQgMTE3NSAxMUE4OworQjc2MjtCNzYyOzExMDQgMTE3NSAxMUE5O0I3NjI7MTEwNCAxMTc1IDExQTk7CitCNzYzO0I3NjM7MTEwNCAxMTc1IDExQUE7Qjc2MzsxMTA0IDExNzUgMTFBQTsKK0I3NjQ7Qjc2NDsxMTA0IDExNzUgMTFBQjtCNzY0OzExMDQgMTE3NSAxMUFCOworQjc2NTtCNzY1OzExMDQgMTE3NSAxMUFDO0I3NjU7MTEwNCAxMTc1IDExQUM7CitCNzY2O0I3NjY7MTEwNCAxMTc1IDExQUQ7Qjc2NjsxMTA0IDExNzUgMTFBRDsKK0I3Njc7Qjc2NzsxMTA0IDExNzUgMTFBRTtCNzY3OzExMDQgMTE3NSAxMUFFOworQjc2ODtCNzY4OzExMDQgMTE3NSAxMUFGO0I3Njg7MTEwNCAxMTc1IDExQUY7CitCNzY5O0I3Njk7MTEwNCAxMTc1IDExQjA7Qjc2OTsxMTA0IDExNzUgMTFCMDsKK0I3NkE7Qjc2QTsxMTA0IDExNzUgMTFCMTtCNzZBOzExMDQgMTE3NSAxMUIxOworQjc2QjtCNzZCOzExMDQgMTE3NSAxMUIyO0I3NkI7MTEwNCAxMTc1IDExQjI7CitCNzZDO0I3NkM7MTEwNCAxMTc1IDExQjM7Qjc2QzsxMTA0IDExNzUgMTFCMzsKK0I3NkQ7Qjc2RDsxMTA0IDExNzUgMTFCNDtCNzZEOzExMDQgMTE3NSAxMUI0OworQjc2RTtCNzZFOzExMDQgMTE3NSAxMUI1O0I3NkU7MTEwNCAxMTc1IDExQjU7CitCNzZGO0I3NkY7MTEwNCAxMTc1IDExQjY7Qjc2RjsxMTA0IDExNzUgMTFCNjsKK0I3NzA7Qjc3MDsxMTA0IDExNzUgMTFCNztCNzcwOzExMDQgMTE3NSAxMUI3OworQjc3MTtCNzcxOzExMDQgMTE3NSAxMUI4O0I3NzE7MTEwNCAxMTc1IDExQjg7CitCNzcyO0I3NzI7MTEwNCAxMTc1IDExQjk7Qjc3MjsxMTA0IDExNzUgMTFCOTsKK0I3NzM7Qjc3MzsxMTA0IDExNzUgMTFCQTtCNzczOzExMDQgMTE3NSAxMUJBOworQjc3NDtCNzc0OzExMDQgMTE3NSAxMUJCO0I3NzQ7MTEwNCAxMTc1IDExQkI7CitCNzc1O0I3NzU7MTEwNCAxMTc1IDExQkM7Qjc3NTsxMTA0IDExNzUgMTFCQzsKK0I3NzY7Qjc3NjsxMTA0IDExNzUgMTFCRDtCNzc2OzExMDQgMTE3NSAxMUJEOworQjc3NztCNzc3OzExMDQgMTE3NSAxMUJFO0I3Nzc7MTEwNCAxMTc1IDExQkU7CitCNzc4O0I3Nzg7MTEwNCAxMTc1IDExQkY7Qjc3ODsxMTA0IDExNzUgMTFCRjsKK0I3Nzk7Qjc3OTsxMTA0IDExNzUgMTFDMDtCNzc5OzExMDQgMTE3NSAxMUMwOworQjc3QTtCNzdBOzExMDQgMTE3NSAxMUMxO0I3N0E7MTEwNCAxMTc1IDExQzE7CitCNzdCO0I3N0I7MTEwNCAxMTc1IDExQzI7Qjc3QjsxMTA0IDExNzUgMTFDMjsKK0I3N0M7Qjc3QzsxMTA1IDExNjE7Qjc3QzsxMTA1IDExNjE7CitCNzdEO0I3N0Q7MTEwNSAxMTYxIDExQTg7Qjc3RDsxMTA1IDExNjEgMTFBODsKK0I3N0U7Qjc3RTsxMTA1IDExNjEgMTFBOTtCNzdFOzExMDUgMTE2MSAxMUE5OworQjc3RjtCNzdGOzExMDUgMTE2MSAxMUFBO0I3N0Y7MTEwNSAxMTYxIDExQUE7CitCNzgwO0I3ODA7MTEwNSAxMTYxIDExQUI7Qjc4MDsxMTA1IDExNjEgMTFBQjsKK0I3ODE7Qjc4MTsxMTA1IDExNjEgMTFBQztCNzgxOzExMDUgMTE2MSAxMUFDOworQjc4MjtCNzgyOzExMDUgMTE2MSAxMUFEO0I3ODI7MTEwNSAxMTYxIDExQUQ7CitCNzgzO0I3ODM7MTEwNSAxMTYxIDExQUU7Qjc4MzsxMTA1IDExNjEgMTFBRTsKK0I3ODQ7Qjc4NDsxMTA1IDExNjEgMTFBRjtCNzg0OzExMDUgMTE2MSAxMUFGOworQjc4NTtCNzg1OzExMDUgMTE2MSAxMUIwO0I3ODU7MTEwNSAxMTYxIDExQjA7CitCNzg2O0I3ODY7MTEwNSAxMTYxIDExQjE7Qjc4NjsxMTA1IDExNjEgMTFCMTsKK0I3ODc7Qjc4NzsxMTA1IDExNjEgMTFCMjtCNzg3OzExMDUgMTE2MSAxMUIyOworQjc4ODtCNzg4OzExMDUgMTE2MSAxMUIzO0I3ODg7MTEwNSAxMTYxIDExQjM7CitCNzg5O0I3ODk7MTEwNSAxMTYxIDExQjQ7Qjc4OTsxMTA1IDExNjEgMTFCNDsKK0I3OEE7Qjc4QTsxMTA1IDExNjEgMTFCNTtCNzhBOzExMDUgMTE2MSAxMUI1OworQjc4QjtCNzhCOzExMDUgMTE2MSAxMUI2O0I3OEI7MTEwNSAxMTYxIDExQjY7CitCNzhDO0I3OEM7MTEwNSAxMTYxIDExQjc7Qjc4QzsxMTA1IDExNjEgMTFCNzsKK0I3OEQ7Qjc4RDsxMTA1IDExNjEgMTFCODtCNzhEOzExMDUgMTE2MSAxMUI4OworQjc4RTtCNzhFOzExMDUgMTE2MSAxMUI5O0I3OEU7MTEwNSAxMTYxIDExQjk7CitCNzhGO0I3OEY7MTEwNSAxMTYxIDExQkE7Qjc4RjsxMTA1IDExNjEgMTFCQTsKK0I3OTA7Qjc5MDsxMTA1IDExNjEgMTFCQjtCNzkwOzExMDUgMTE2MSAxMUJCOworQjc5MTtCNzkxOzExMDUgMTE2MSAxMUJDO0I3OTE7MTEwNSAxMTYxIDExQkM7CitCNzkyO0I3OTI7MTEwNSAxMTYxIDExQkQ7Qjc5MjsxMTA1IDExNjEgMTFCRDsKK0I3OTM7Qjc5MzsxMTA1IDExNjEgMTFCRTtCNzkzOzExMDUgMTE2MSAxMUJFOworQjc5NDtCNzk0OzExMDUgMTE2MSAxMUJGO0I3OTQ7MTEwNSAxMTYxIDExQkY7CitCNzk1O0I3OTU7MTEwNSAxMTYxIDExQzA7Qjc5NTsxMTA1IDExNjEgMTFDMDsKK0I3OTY7Qjc5NjsxMTA1IDExNjEgMTFDMTtCNzk2OzExMDUgMTE2MSAxMUMxOworQjc5NztCNzk3OzExMDUgMTE2MSAxMUMyO0I3OTc7MTEwNSAxMTYxIDExQzI7CitCNzk4O0I3OTg7MTEwNSAxMTYyO0I3OTg7MTEwNSAxMTYyOworQjc5OTtCNzk5OzExMDUgMTE2MiAxMUE4O0I3OTk7MTEwNSAxMTYyIDExQTg7CitCNzlBO0I3OUE7MTEwNSAxMTYyIDExQTk7Qjc5QTsxMTA1IDExNjIgMTFBOTsKK0I3OUI7Qjc5QjsxMTA1IDExNjIgMTFBQTtCNzlCOzExMDUgMTE2MiAxMUFBOworQjc5QztCNzlDOzExMDUgMTE2MiAxMUFCO0I3OUM7MTEwNSAxMTYyIDExQUI7CitCNzlEO0I3OUQ7MTEwNSAxMTYyIDExQUM7Qjc5RDsxMTA1IDExNjIgMTFBQzsKK0I3OUU7Qjc5RTsxMTA1IDExNjIgMTFBRDtCNzlFOzExMDUgMTE2MiAxMUFEOworQjc5RjtCNzlGOzExMDUgMTE2MiAxMUFFO0I3OUY7MTEwNSAxMTYyIDExQUU7CitCN0EwO0I3QTA7MTEwNSAxMTYyIDExQUY7QjdBMDsxMTA1IDExNjIgMTFBRjsKK0I3QTE7QjdBMTsxMTA1IDExNjIgMTFCMDtCN0ExOzExMDUgMTE2MiAxMUIwOworQjdBMjtCN0EyOzExMDUgMTE2MiAxMUIxO0I3QTI7MTEwNSAxMTYyIDExQjE7CitCN0EzO0I3QTM7MTEwNSAxMTYyIDExQjI7QjdBMzsxMTA1IDExNjIgMTFCMjsKK0I3QTQ7QjdBNDsxMTA1IDExNjIgMTFCMztCN0E0OzExMDUgMTE2MiAxMUIzOworQjdBNTtCN0E1OzExMDUgMTE2MiAxMUI0O0I3QTU7MTEwNSAxMTYyIDExQjQ7CitCN0E2O0I3QTY7MTEwNSAxMTYyIDExQjU7QjdBNjsxMTA1IDExNjIgMTFCNTsKK0I3QTc7QjdBNzsxMTA1IDExNjIgMTFCNjtCN0E3OzExMDUgMTE2MiAxMUI2OworQjdBODtCN0E4OzExMDUgMTE2MiAxMUI3O0I3QTg7MTEwNSAxMTYyIDExQjc7CitCN0E5O0I3QTk7MTEwNSAxMTYyIDExQjg7QjdBOTsxMTA1IDExNjIgMTFCODsKK0I3QUE7QjdBQTsxMTA1IDExNjIgMTFCOTtCN0FBOzExMDUgMTE2MiAxMUI5OworQjdBQjtCN0FCOzExMDUgMTE2MiAxMUJBO0I3QUI7MTEwNSAxMTYyIDExQkE7CitCN0FDO0I3QUM7MTEwNSAxMTYyIDExQkI7QjdBQzsxMTA1IDExNjIgMTFCQjsKK0I3QUQ7QjdBRDsxMTA1IDExNjIgMTFCQztCN0FEOzExMDUgMTE2MiAxMUJDOworQjdBRTtCN0FFOzExMDUgMTE2MiAxMUJEO0I3QUU7MTEwNSAxMTYyIDExQkQ7CitCN0FGO0I3QUY7MTEwNSAxMTYyIDExQkU7QjdBRjsxMTA1IDExNjIgMTFCRTsKK0I3QjA7QjdCMDsxMTA1IDExNjIgMTFCRjtCN0IwOzExMDUgMTE2MiAxMUJGOworQjdCMTtCN0IxOzExMDUgMTE2MiAxMUMwO0I3QjE7MTEwNSAxMTYyIDExQzA7CitCN0IyO0I3QjI7MTEwNSAxMTYyIDExQzE7QjdCMjsxMTA1IDExNjIgMTFDMTsKK0I3QjM7QjdCMzsxMTA1IDExNjIgMTFDMjtCN0IzOzExMDUgMTE2MiAxMUMyOworQjdCNDtCN0I0OzExMDUgMTE2MztCN0I0OzExMDUgMTE2MzsKK0I3QjU7QjdCNTsxMTA1IDExNjMgMTFBODtCN0I1OzExMDUgMTE2MyAxMUE4OworQjdCNjtCN0I2OzExMDUgMTE2MyAxMUE5O0I3QjY7MTEwNSAxMTYzIDExQTk7CitCN0I3O0I3Qjc7MTEwNSAxMTYzIDExQUE7QjdCNzsxMTA1IDExNjMgMTFBQTsKK0I3Qjg7QjdCODsxMTA1IDExNjMgMTFBQjtCN0I4OzExMDUgMTE2MyAxMUFCOworQjdCOTtCN0I5OzExMDUgMTE2MyAxMUFDO0I3Qjk7MTEwNSAxMTYzIDExQUM7CitCN0JBO0I3QkE7MTEwNSAxMTYzIDExQUQ7QjdCQTsxMTA1IDExNjMgMTFBRDsKK0I3QkI7QjdCQjsxMTA1IDExNjMgMTFBRTtCN0JCOzExMDUgMTE2MyAxMUFFOworQjdCQztCN0JDOzExMDUgMTE2MyAxMUFGO0I3QkM7MTEwNSAxMTYzIDExQUY7CitCN0JEO0I3QkQ7MTEwNSAxMTYzIDExQjA7QjdCRDsxMTA1IDExNjMgMTFCMDsKK0I3QkU7QjdCRTsxMTA1IDExNjMgMTFCMTtCN0JFOzExMDUgMTE2MyAxMUIxOworQjdCRjtCN0JGOzExMDUgMTE2MyAxMUIyO0I3QkY7MTEwNSAxMTYzIDExQjI7CitCN0MwO0I3QzA7MTEwNSAxMTYzIDExQjM7QjdDMDsxMTA1IDExNjMgMTFCMzsKK0I3QzE7QjdDMTsxMTA1IDExNjMgMTFCNDtCN0MxOzExMDUgMTE2MyAxMUI0OworQjdDMjtCN0MyOzExMDUgMTE2MyAxMUI1O0I3QzI7MTEwNSAxMTYzIDExQjU7CitCN0MzO0I3QzM7MTEwNSAxMTYzIDExQjY7QjdDMzsxMTA1IDExNjMgMTFCNjsKK0I3QzQ7QjdDNDsxMTA1IDExNjMgMTFCNztCN0M0OzExMDUgMTE2MyAxMUI3OworQjdDNTtCN0M1OzExMDUgMTE2MyAxMUI4O0I3QzU7MTEwNSAxMTYzIDExQjg7CitCN0M2O0I3QzY7MTEwNSAxMTYzIDExQjk7QjdDNjsxMTA1IDExNjMgMTFCOTsKK0I3Qzc7QjdDNzsxMTA1IDExNjMgMTFCQTtCN0M3OzExMDUgMTE2MyAxMUJBOworQjdDODtCN0M4OzExMDUgMTE2MyAxMUJCO0I3Qzg7MTEwNSAxMTYzIDExQkI7CitCN0M5O0I3Qzk7MTEwNSAxMTYzIDExQkM7QjdDOTsxMTA1IDExNjMgMTFCQzsKK0I3Q0E7QjdDQTsxMTA1IDExNjMgMTFCRDtCN0NBOzExMDUgMTE2MyAxMUJEOworQjdDQjtCN0NCOzExMDUgMTE2MyAxMUJFO0I3Q0I7MTEwNSAxMTYzIDExQkU7CitCN0NDO0I3Q0M7MTEwNSAxMTYzIDExQkY7QjdDQzsxMTA1IDExNjMgMTFCRjsKK0I3Q0Q7QjdDRDsxMTA1IDExNjMgMTFDMDtCN0NEOzExMDUgMTE2MyAxMUMwOworQjdDRTtCN0NFOzExMDUgMTE2MyAxMUMxO0I3Q0U7MTEwNSAxMTYzIDExQzE7CitCN0NGO0I3Q0Y7MTEwNSAxMTYzIDExQzI7QjdDRjsxMTA1IDExNjMgMTFDMjsKK0I3RDA7QjdEMDsxMTA1IDExNjQ7QjdEMDsxMTA1IDExNjQ7CitCN0QxO0I3RDE7MTEwNSAxMTY0IDExQTg7QjdEMTsxMTA1IDExNjQgMTFBODsKK0I3RDI7QjdEMjsxMTA1IDExNjQgMTFBOTtCN0QyOzExMDUgMTE2NCAxMUE5OworQjdEMztCN0QzOzExMDUgMTE2NCAxMUFBO0I3RDM7MTEwNSAxMTY0IDExQUE7CitCN0Q0O0I3RDQ7MTEwNSAxMTY0IDExQUI7QjdENDsxMTA1IDExNjQgMTFBQjsKK0I3RDU7QjdENTsxMTA1IDExNjQgMTFBQztCN0Q1OzExMDUgMTE2NCAxMUFDOworQjdENjtCN0Q2OzExMDUgMTE2NCAxMUFEO0I3RDY7MTEwNSAxMTY0IDExQUQ7CitCN0Q3O0I3RDc7MTEwNSAxMTY0IDExQUU7QjdENzsxMTA1IDExNjQgMTFBRTsKK0I3RDg7QjdEODsxMTA1IDExNjQgMTFBRjtCN0Q4OzExMDUgMTE2NCAxMUFGOworQjdEOTtCN0Q5OzExMDUgMTE2NCAxMUIwO0I3RDk7MTEwNSAxMTY0IDExQjA7CitCN0RBO0I3REE7MTEwNSAxMTY0IDExQjE7QjdEQTsxMTA1IDExNjQgMTFCMTsKK0I3REI7QjdEQjsxMTA1IDExNjQgMTFCMjtCN0RCOzExMDUgMTE2NCAxMUIyOworQjdEQztCN0RDOzExMDUgMTE2NCAxMUIzO0I3REM7MTEwNSAxMTY0IDExQjM7CitCN0REO0I3REQ7MTEwNSAxMTY0IDExQjQ7QjdERDsxMTA1IDExNjQgMTFCNDsKK0I3REU7QjdERTsxMTA1IDExNjQgMTFCNTtCN0RFOzExMDUgMTE2NCAxMUI1OworQjdERjtCN0RGOzExMDUgMTE2NCAxMUI2O0I3REY7MTEwNSAxMTY0IDExQjY7CitCN0UwO0I3RTA7MTEwNSAxMTY0IDExQjc7QjdFMDsxMTA1IDExNjQgMTFCNzsKK0I3RTE7QjdFMTsxMTA1IDExNjQgMTFCODtCN0UxOzExMDUgMTE2NCAxMUI4OworQjdFMjtCN0UyOzExMDUgMTE2NCAxMUI5O0I3RTI7MTEwNSAxMTY0IDExQjk7CitCN0UzO0I3RTM7MTEwNSAxMTY0IDExQkE7QjdFMzsxMTA1IDExNjQgMTFCQTsKK0I3RTQ7QjdFNDsxMTA1IDExNjQgMTFCQjtCN0U0OzExMDUgMTE2NCAxMUJCOworQjdFNTtCN0U1OzExMDUgMTE2NCAxMUJDO0I3RTU7MTEwNSAxMTY0IDExQkM7CitCN0U2O0I3RTY7MTEwNSAxMTY0IDExQkQ7QjdFNjsxMTA1IDExNjQgMTFCRDsKK0I3RTc7QjdFNzsxMTA1IDExNjQgMTFCRTtCN0U3OzExMDUgMTE2NCAxMUJFOworQjdFODtCN0U4OzExMDUgMTE2NCAxMUJGO0I3RTg7MTEwNSAxMTY0IDExQkY7CitCN0U5O0I3RTk7MTEwNSAxMTY0IDExQzA7QjdFOTsxMTA1IDExNjQgMTFDMDsKK0I3RUE7QjdFQTsxMTA1IDExNjQgMTFDMTtCN0VBOzExMDUgMTE2NCAxMUMxOworQjdFQjtCN0VCOzExMDUgMTE2NCAxMUMyO0I3RUI7MTEwNSAxMTY0IDExQzI7CitCN0VDO0I3RUM7MTEwNSAxMTY1O0I3RUM7MTEwNSAxMTY1OworQjdFRDtCN0VEOzExMDUgMTE2NSAxMUE4O0I3RUQ7MTEwNSAxMTY1IDExQTg7CitCN0VFO0I3RUU7MTEwNSAxMTY1IDExQTk7QjdFRTsxMTA1IDExNjUgMTFBOTsKK0I3RUY7QjdFRjsxMTA1IDExNjUgMTFBQTtCN0VGOzExMDUgMTE2NSAxMUFBOworQjdGMDtCN0YwOzExMDUgMTE2NSAxMUFCO0I3RjA7MTEwNSAxMTY1IDExQUI7CitCN0YxO0I3RjE7MTEwNSAxMTY1IDExQUM7QjdGMTsxMTA1IDExNjUgMTFBQzsKK0I3RjI7QjdGMjsxMTA1IDExNjUgMTFBRDtCN0YyOzExMDUgMTE2NSAxMUFEOworQjdGMztCN0YzOzExMDUgMTE2NSAxMUFFO0I3RjM7MTEwNSAxMTY1IDExQUU7CitCN0Y0O0I3RjQ7MTEwNSAxMTY1IDExQUY7QjdGNDsxMTA1IDExNjUgMTFBRjsKK0I3RjU7QjdGNTsxMTA1IDExNjUgMTFCMDtCN0Y1OzExMDUgMTE2NSAxMUIwOworQjdGNjtCN0Y2OzExMDUgMTE2NSAxMUIxO0I3RjY7MTEwNSAxMTY1IDExQjE7CitCN0Y3O0I3Rjc7MTEwNSAxMTY1IDExQjI7QjdGNzsxMTA1IDExNjUgMTFCMjsKK0I3Rjg7QjdGODsxMTA1IDExNjUgMTFCMztCN0Y4OzExMDUgMTE2NSAxMUIzOworQjdGOTtCN0Y5OzExMDUgMTE2NSAxMUI0O0I3Rjk7MTEwNSAxMTY1IDExQjQ7CitCN0ZBO0I3RkE7MTEwNSAxMTY1IDExQjU7QjdGQTsxMTA1IDExNjUgMTFCNTsKK0I3RkI7QjdGQjsxMTA1IDExNjUgMTFCNjtCN0ZCOzExMDUgMTE2NSAxMUI2OworQjdGQztCN0ZDOzExMDUgMTE2NSAxMUI3O0I3RkM7MTEwNSAxMTY1IDExQjc7CitCN0ZEO0I3RkQ7MTEwNSAxMTY1IDExQjg7QjdGRDsxMTA1IDExNjUgMTFCODsKK0I3RkU7QjdGRTsxMTA1IDExNjUgMTFCOTtCN0ZFOzExMDUgMTE2NSAxMUI5OworQjdGRjtCN0ZGOzExMDUgMTE2NSAxMUJBO0I3RkY7MTEwNSAxMTY1IDExQkE7CitCODAwO0I4MDA7MTEwNSAxMTY1IDExQkI7QjgwMDsxMTA1IDExNjUgMTFCQjsKK0I4MDE7QjgwMTsxMTA1IDExNjUgMTFCQztCODAxOzExMDUgMTE2NSAxMUJDOworQjgwMjtCODAyOzExMDUgMTE2NSAxMUJEO0I4MDI7MTEwNSAxMTY1IDExQkQ7CitCODAzO0I4MDM7MTEwNSAxMTY1IDExQkU7QjgwMzsxMTA1IDExNjUgMTFCRTsKK0I4MDQ7QjgwNDsxMTA1IDExNjUgMTFCRjtCODA0OzExMDUgMTE2NSAxMUJGOworQjgwNTtCODA1OzExMDUgMTE2NSAxMUMwO0I4MDU7MTEwNSAxMTY1IDExQzA7CitCODA2O0I4MDY7MTEwNSAxMTY1IDExQzE7QjgwNjsxMTA1IDExNjUgMTFDMTsKK0I4MDc7QjgwNzsxMTA1IDExNjUgMTFDMjtCODA3OzExMDUgMTE2NSAxMUMyOworQjgwODtCODA4OzExMDUgMTE2NjtCODA4OzExMDUgMTE2NjsKK0I4MDk7QjgwOTsxMTA1IDExNjYgMTFBODtCODA5OzExMDUgMTE2NiAxMUE4OworQjgwQTtCODBBOzExMDUgMTE2NiAxMUE5O0I4MEE7MTEwNSAxMTY2IDExQTk7CitCODBCO0I4MEI7MTEwNSAxMTY2IDExQUE7QjgwQjsxMTA1IDExNjYgMTFBQTsKK0I4MEM7QjgwQzsxMTA1IDExNjYgMTFBQjtCODBDOzExMDUgMTE2NiAxMUFCOworQjgwRDtCODBEOzExMDUgMTE2NiAxMUFDO0I4MEQ7MTEwNSAxMTY2IDExQUM7CitCODBFO0I4MEU7MTEwNSAxMTY2IDExQUQ7QjgwRTsxMTA1IDExNjYgMTFBRDsKK0I4MEY7QjgwRjsxMTA1IDExNjYgMTFBRTtCODBGOzExMDUgMTE2NiAxMUFFOworQjgxMDtCODEwOzExMDUgMTE2NiAxMUFGO0I4MTA7MTEwNSAxMTY2IDExQUY7CitCODExO0I4MTE7MTEwNSAxMTY2IDExQjA7QjgxMTsxMTA1IDExNjYgMTFCMDsKK0I4MTI7QjgxMjsxMTA1IDExNjYgMTFCMTtCODEyOzExMDUgMTE2NiAxMUIxOworQjgxMztCODEzOzExMDUgMTE2NiAxMUIyO0I4MTM7MTEwNSAxMTY2IDExQjI7CitCODE0O0I4MTQ7MTEwNSAxMTY2IDExQjM7QjgxNDsxMTA1IDExNjYgMTFCMzsKK0I4MTU7QjgxNTsxMTA1IDExNjYgMTFCNDtCODE1OzExMDUgMTE2NiAxMUI0OworQjgxNjtCODE2OzExMDUgMTE2NiAxMUI1O0I4MTY7MTEwNSAxMTY2IDExQjU7CitCODE3O0I4MTc7MTEwNSAxMTY2IDExQjY7QjgxNzsxMTA1IDExNjYgMTFCNjsKK0I4MTg7QjgxODsxMTA1IDExNjYgMTFCNztCODE4OzExMDUgMTE2NiAxMUI3OworQjgxOTtCODE5OzExMDUgMTE2NiAxMUI4O0I4MTk7MTEwNSAxMTY2IDExQjg7CitCODFBO0I4MUE7MTEwNSAxMTY2IDExQjk7QjgxQTsxMTA1IDExNjYgMTFCOTsKK0I4MUI7QjgxQjsxMTA1IDExNjYgMTFCQTtCODFCOzExMDUgMTE2NiAxMUJBOworQjgxQztCODFDOzExMDUgMTE2NiAxMUJCO0I4MUM7MTEwNSAxMTY2IDExQkI7CitCODFEO0I4MUQ7MTEwNSAxMTY2IDExQkM7QjgxRDsxMTA1IDExNjYgMTFCQzsKK0I4MUU7QjgxRTsxMTA1IDExNjYgMTFCRDtCODFFOzExMDUgMTE2NiAxMUJEOworQjgxRjtCODFGOzExMDUgMTE2NiAxMUJFO0I4MUY7MTEwNSAxMTY2IDExQkU7CitCODIwO0I4MjA7MTEwNSAxMTY2IDExQkY7QjgyMDsxMTA1IDExNjYgMTFCRjsKK0I4MjE7QjgyMTsxMTA1IDExNjYgMTFDMDtCODIxOzExMDUgMTE2NiAxMUMwOworQjgyMjtCODIyOzExMDUgMTE2NiAxMUMxO0I4MjI7MTEwNSAxMTY2IDExQzE7CitCODIzO0I4MjM7MTEwNSAxMTY2IDExQzI7QjgyMzsxMTA1IDExNjYgMTFDMjsKK0I4MjQ7QjgyNDsxMTA1IDExNjc7QjgyNDsxMTA1IDExNjc7CitCODI1O0I4MjU7MTEwNSAxMTY3IDExQTg7QjgyNTsxMTA1IDExNjcgMTFBODsKK0I4MjY7QjgyNjsxMTA1IDExNjcgMTFBOTtCODI2OzExMDUgMTE2NyAxMUE5OworQjgyNztCODI3OzExMDUgMTE2NyAxMUFBO0I4Mjc7MTEwNSAxMTY3IDExQUE7CitCODI4O0I4Mjg7MTEwNSAxMTY3IDExQUI7QjgyODsxMTA1IDExNjcgMTFBQjsKK0I4Mjk7QjgyOTsxMTA1IDExNjcgMTFBQztCODI5OzExMDUgMTE2NyAxMUFDOworQjgyQTtCODJBOzExMDUgMTE2NyAxMUFEO0I4MkE7MTEwNSAxMTY3IDExQUQ7CitCODJCO0I4MkI7MTEwNSAxMTY3IDExQUU7QjgyQjsxMTA1IDExNjcgMTFBRTsKK0I4MkM7QjgyQzsxMTA1IDExNjcgMTFBRjtCODJDOzExMDUgMTE2NyAxMUFGOworQjgyRDtCODJEOzExMDUgMTE2NyAxMUIwO0I4MkQ7MTEwNSAxMTY3IDExQjA7CitCODJFO0I4MkU7MTEwNSAxMTY3IDExQjE7QjgyRTsxMTA1IDExNjcgMTFCMTsKK0I4MkY7QjgyRjsxMTA1IDExNjcgMTFCMjtCODJGOzExMDUgMTE2NyAxMUIyOworQjgzMDtCODMwOzExMDUgMTE2NyAxMUIzO0I4MzA7MTEwNSAxMTY3IDExQjM7CitCODMxO0I4MzE7MTEwNSAxMTY3IDExQjQ7QjgzMTsxMTA1IDExNjcgMTFCNDsKK0I4MzI7QjgzMjsxMTA1IDExNjcgMTFCNTtCODMyOzExMDUgMTE2NyAxMUI1OworQjgzMztCODMzOzExMDUgMTE2NyAxMUI2O0I4MzM7MTEwNSAxMTY3IDExQjY7CitCODM0O0I4MzQ7MTEwNSAxMTY3IDExQjc7QjgzNDsxMTA1IDExNjcgMTFCNzsKK0I4MzU7QjgzNTsxMTA1IDExNjcgMTFCODtCODM1OzExMDUgMTE2NyAxMUI4OworQjgzNjtCODM2OzExMDUgMTE2NyAxMUI5O0I4MzY7MTEwNSAxMTY3IDExQjk7CitCODM3O0I4Mzc7MTEwNSAxMTY3IDExQkE7QjgzNzsxMTA1IDExNjcgMTFCQTsKK0I4Mzg7QjgzODsxMTA1IDExNjcgMTFCQjtCODM4OzExMDUgMTE2NyAxMUJCOworQjgzOTtCODM5OzExMDUgMTE2NyAxMUJDO0I4Mzk7MTEwNSAxMTY3IDExQkM7CitCODNBO0I4M0E7MTEwNSAxMTY3IDExQkQ7QjgzQTsxMTA1IDExNjcgMTFCRDsKK0I4M0I7QjgzQjsxMTA1IDExNjcgMTFCRTtCODNCOzExMDUgMTE2NyAxMUJFOworQjgzQztCODNDOzExMDUgMTE2NyAxMUJGO0I4M0M7MTEwNSAxMTY3IDExQkY7CitCODNEO0I4M0Q7MTEwNSAxMTY3IDExQzA7QjgzRDsxMTA1IDExNjcgMTFDMDsKK0I4M0U7QjgzRTsxMTA1IDExNjcgMTFDMTtCODNFOzExMDUgMTE2NyAxMUMxOworQjgzRjtCODNGOzExMDUgMTE2NyAxMUMyO0I4M0Y7MTEwNSAxMTY3IDExQzI7CitCODQwO0I4NDA7MTEwNSAxMTY4O0I4NDA7MTEwNSAxMTY4OworQjg0MTtCODQxOzExMDUgMTE2OCAxMUE4O0I4NDE7MTEwNSAxMTY4IDExQTg7CitCODQyO0I4NDI7MTEwNSAxMTY4IDExQTk7Qjg0MjsxMTA1IDExNjggMTFBOTsKK0I4NDM7Qjg0MzsxMTA1IDExNjggMTFBQTtCODQzOzExMDUgMTE2OCAxMUFBOworQjg0NDtCODQ0OzExMDUgMTE2OCAxMUFCO0I4NDQ7MTEwNSAxMTY4IDExQUI7CitCODQ1O0I4NDU7MTEwNSAxMTY4IDExQUM7Qjg0NTsxMTA1IDExNjggMTFBQzsKK0I4NDY7Qjg0NjsxMTA1IDExNjggMTFBRDtCODQ2OzExMDUgMTE2OCAxMUFEOworQjg0NztCODQ3OzExMDUgMTE2OCAxMUFFO0I4NDc7MTEwNSAxMTY4IDExQUU7CitCODQ4O0I4NDg7MTEwNSAxMTY4IDExQUY7Qjg0ODsxMTA1IDExNjggMTFBRjsKK0I4NDk7Qjg0OTsxMTA1IDExNjggMTFCMDtCODQ5OzExMDUgMTE2OCAxMUIwOworQjg0QTtCODRBOzExMDUgMTE2OCAxMUIxO0I4NEE7MTEwNSAxMTY4IDExQjE7CitCODRCO0I4NEI7MTEwNSAxMTY4IDExQjI7Qjg0QjsxMTA1IDExNjggMTFCMjsKK0I4NEM7Qjg0QzsxMTA1IDExNjggMTFCMztCODRDOzExMDUgMTE2OCAxMUIzOworQjg0RDtCODREOzExMDUgMTE2OCAxMUI0O0I4NEQ7MTEwNSAxMTY4IDExQjQ7CitCODRFO0I4NEU7MTEwNSAxMTY4IDExQjU7Qjg0RTsxMTA1IDExNjggMTFCNTsKK0I4NEY7Qjg0RjsxMTA1IDExNjggMTFCNjtCODRGOzExMDUgMTE2OCAxMUI2OworQjg1MDtCODUwOzExMDUgMTE2OCAxMUI3O0I4NTA7MTEwNSAxMTY4IDExQjc7CitCODUxO0I4NTE7MTEwNSAxMTY4IDExQjg7Qjg1MTsxMTA1IDExNjggMTFCODsKK0I4NTI7Qjg1MjsxMTA1IDExNjggMTFCOTtCODUyOzExMDUgMTE2OCAxMUI5OworQjg1MztCODUzOzExMDUgMTE2OCAxMUJBO0I4NTM7MTEwNSAxMTY4IDExQkE7CitCODU0O0I4NTQ7MTEwNSAxMTY4IDExQkI7Qjg1NDsxMTA1IDExNjggMTFCQjsKK0I4NTU7Qjg1NTsxMTA1IDExNjggMTFCQztCODU1OzExMDUgMTE2OCAxMUJDOworQjg1NjtCODU2OzExMDUgMTE2OCAxMUJEO0I4NTY7MTEwNSAxMTY4IDExQkQ7CitCODU3O0I4NTc7MTEwNSAxMTY4IDExQkU7Qjg1NzsxMTA1IDExNjggMTFCRTsKK0I4NTg7Qjg1ODsxMTA1IDExNjggMTFCRjtCODU4OzExMDUgMTE2OCAxMUJGOworQjg1OTtCODU5OzExMDUgMTE2OCAxMUMwO0I4NTk7MTEwNSAxMTY4IDExQzA7CitCODVBO0I4NUE7MTEwNSAxMTY4IDExQzE7Qjg1QTsxMTA1IDExNjggMTFDMTsKK0I4NUI7Qjg1QjsxMTA1IDExNjggMTFDMjtCODVCOzExMDUgMTE2OCAxMUMyOworQjg1QztCODVDOzExMDUgMTE2OTtCODVDOzExMDUgMTE2OTsKK0I4NUQ7Qjg1RDsxMTA1IDExNjkgMTFBODtCODVEOzExMDUgMTE2OSAxMUE4OworQjg1RTtCODVFOzExMDUgMTE2OSAxMUE5O0I4NUU7MTEwNSAxMTY5IDExQTk7CitCODVGO0I4NUY7MTEwNSAxMTY5IDExQUE7Qjg1RjsxMTA1IDExNjkgMTFBQTsKK0I4NjA7Qjg2MDsxMTA1IDExNjkgMTFBQjtCODYwOzExMDUgMTE2OSAxMUFCOworQjg2MTtCODYxOzExMDUgMTE2OSAxMUFDO0I4NjE7MTEwNSAxMTY5IDExQUM7CitCODYyO0I4NjI7MTEwNSAxMTY5IDExQUQ7Qjg2MjsxMTA1IDExNjkgMTFBRDsKK0I4NjM7Qjg2MzsxMTA1IDExNjkgMTFBRTtCODYzOzExMDUgMTE2OSAxMUFFOworQjg2NDtCODY0OzExMDUgMTE2OSAxMUFGO0I4NjQ7MTEwNSAxMTY5IDExQUY7CitCODY1O0I4NjU7MTEwNSAxMTY5IDExQjA7Qjg2NTsxMTA1IDExNjkgMTFCMDsKK0I4NjY7Qjg2NjsxMTA1IDExNjkgMTFCMTtCODY2OzExMDUgMTE2OSAxMUIxOworQjg2NztCODY3OzExMDUgMTE2OSAxMUIyO0I4Njc7MTEwNSAxMTY5IDExQjI7CitCODY4O0I4Njg7MTEwNSAxMTY5IDExQjM7Qjg2ODsxMTA1IDExNjkgMTFCMzsKK0I4Njk7Qjg2OTsxMTA1IDExNjkgMTFCNDtCODY5OzExMDUgMTE2OSAxMUI0OworQjg2QTtCODZBOzExMDUgMTE2OSAxMUI1O0I4NkE7MTEwNSAxMTY5IDExQjU7CitCODZCO0I4NkI7MTEwNSAxMTY5IDExQjY7Qjg2QjsxMTA1IDExNjkgMTFCNjsKK0I4NkM7Qjg2QzsxMTA1IDExNjkgMTFCNztCODZDOzExMDUgMTE2OSAxMUI3OworQjg2RDtCODZEOzExMDUgMTE2OSAxMUI4O0I4NkQ7MTEwNSAxMTY5IDExQjg7CitCODZFO0I4NkU7MTEwNSAxMTY5IDExQjk7Qjg2RTsxMTA1IDExNjkgMTFCOTsKK0I4NkY7Qjg2RjsxMTA1IDExNjkgMTFCQTtCODZGOzExMDUgMTE2OSAxMUJBOworQjg3MDtCODcwOzExMDUgMTE2OSAxMUJCO0I4NzA7MTEwNSAxMTY5IDExQkI7CitCODcxO0I4NzE7MTEwNSAxMTY5IDExQkM7Qjg3MTsxMTA1IDExNjkgMTFCQzsKK0I4NzI7Qjg3MjsxMTA1IDExNjkgMTFCRDtCODcyOzExMDUgMTE2OSAxMUJEOworQjg3MztCODczOzExMDUgMTE2OSAxMUJFO0I4NzM7MTEwNSAxMTY5IDExQkU7CitCODc0O0I4NzQ7MTEwNSAxMTY5IDExQkY7Qjg3NDsxMTA1IDExNjkgMTFCRjsKK0I4NzU7Qjg3NTsxMTA1IDExNjkgMTFDMDtCODc1OzExMDUgMTE2OSAxMUMwOworQjg3NjtCODc2OzExMDUgMTE2OSAxMUMxO0I4NzY7MTEwNSAxMTY5IDExQzE7CitCODc3O0I4Nzc7MTEwNSAxMTY5IDExQzI7Qjg3NzsxMTA1IDExNjkgMTFDMjsKK0I4Nzg7Qjg3ODsxMTA1IDExNkE7Qjg3ODsxMTA1IDExNkE7CitCODc5O0I4Nzk7MTEwNSAxMTZBIDExQTg7Qjg3OTsxMTA1IDExNkEgMTFBODsKK0I4N0E7Qjg3QTsxMTA1IDExNkEgMTFBOTtCODdBOzExMDUgMTE2QSAxMUE5OworQjg3QjtCODdCOzExMDUgMTE2QSAxMUFBO0I4N0I7MTEwNSAxMTZBIDExQUE7CitCODdDO0I4N0M7MTEwNSAxMTZBIDExQUI7Qjg3QzsxMTA1IDExNkEgMTFBQjsKK0I4N0Q7Qjg3RDsxMTA1IDExNkEgMTFBQztCODdEOzExMDUgMTE2QSAxMUFDOworQjg3RTtCODdFOzExMDUgMTE2QSAxMUFEO0I4N0U7MTEwNSAxMTZBIDExQUQ7CitCODdGO0I4N0Y7MTEwNSAxMTZBIDExQUU7Qjg3RjsxMTA1IDExNkEgMTFBRTsKK0I4ODA7Qjg4MDsxMTA1IDExNkEgMTFBRjtCODgwOzExMDUgMTE2QSAxMUFGOworQjg4MTtCODgxOzExMDUgMTE2QSAxMUIwO0I4ODE7MTEwNSAxMTZBIDExQjA7CitCODgyO0I4ODI7MTEwNSAxMTZBIDExQjE7Qjg4MjsxMTA1IDExNkEgMTFCMTsKK0I4ODM7Qjg4MzsxMTA1IDExNkEgMTFCMjtCODgzOzExMDUgMTE2QSAxMUIyOworQjg4NDtCODg0OzExMDUgMTE2QSAxMUIzO0I4ODQ7MTEwNSAxMTZBIDExQjM7CitCODg1O0I4ODU7MTEwNSAxMTZBIDExQjQ7Qjg4NTsxMTA1IDExNkEgMTFCNDsKK0I4ODY7Qjg4NjsxMTA1IDExNkEgMTFCNTtCODg2OzExMDUgMTE2QSAxMUI1OworQjg4NztCODg3OzExMDUgMTE2QSAxMUI2O0I4ODc7MTEwNSAxMTZBIDExQjY7CitCODg4O0I4ODg7MTEwNSAxMTZBIDExQjc7Qjg4ODsxMTA1IDExNkEgMTFCNzsKK0I4ODk7Qjg4OTsxMTA1IDExNkEgMTFCODtCODg5OzExMDUgMTE2QSAxMUI4OworQjg4QTtCODhBOzExMDUgMTE2QSAxMUI5O0I4OEE7MTEwNSAxMTZBIDExQjk7CitCODhCO0I4OEI7MTEwNSAxMTZBIDExQkE7Qjg4QjsxMTA1IDExNkEgMTFCQTsKK0I4OEM7Qjg4QzsxMTA1IDExNkEgMTFCQjtCODhDOzExMDUgMTE2QSAxMUJCOworQjg4RDtCODhEOzExMDUgMTE2QSAxMUJDO0I4OEQ7MTEwNSAxMTZBIDExQkM7CitCODhFO0I4OEU7MTEwNSAxMTZBIDExQkQ7Qjg4RTsxMTA1IDExNkEgMTFCRDsKK0I4OEY7Qjg4RjsxMTA1IDExNkEgMTFCRTtCODhGOzExMDUgMTE2QSAxMUJFOworQjg5MDtCODkwOzExMDUgMTE2QSAxMUJGO0I4OTA7MTEwNSAxMTZBIDExQkY7CitCODkxO0I4OTE7MTEwNSAxMTZBIDExQzA7Qjg5MTsxMTA1IDExNkEgMTFDMDsKK0I4OTI7Qjg5MjsxMTA1IDExNkEgMTFDMTtCODkyOzExMDUgMTE2QSAxMUMxOworQjg5MztCODkzOzExMDUgMTE2QSAxMUMyO0I4OTM7MTEwNSAxMTZBIDExQzI7CitCODk0O0I4OTQ7MTEwNSAxMTZCO0I4OTQ7MTEwNSAxMTZCOworQjg5NTtCODk1OzExMDUgMTE2QiAxMUE4O0I4OTU7MTEwNSAxMTZCIDExQTg7CitCODk2O0I4OTY7MTEwNSAxMTZCIDExQTk7Qjg5NjsxMTA1IDExNkIgMTFBOTsKK0I4OTc7Qjg5NzsxMTA1IDExNkIgMTFBQTtCODk3OzExMDUgMTE2QiAxMUFBOworQjg5ODtCODk4OzExMDUgMTE2QiAxMUFCO0I4OTg7MTEwNSAxMTZCIDExQUI7CitCODk5O0I4OTk7MTEwNSAxMTZCIDExQUM7Qjg5OTsxMTA1IDExNkIgMTFBQzsKK0I4OUE7Qjg5QTsxMTA1IDExNkIgMTFBRDtCODlBOzExMDUgMTE2QiAxMUFEOworQjg5QjtCODlCOzExMDUgMTE2QiAxMUFFO0I4OUI7MTEwNSAxMTZCIDExQUU7CitCODlDO0I4OUM7MTEwNSAxMTZCIDExQUY7Qjg5QzsxMTA1IDExNkIgMTFBRjsKK0I4OUQ7Qjg5RDsxMTA1IDExNkIgMTFCMDtCODlEOzExMDUgMTE2QiAxMUIwOworQjg5RTtCODlFOzExMDUgMTE2QiAxMUIxO0I4OUU7MTEwNSAxMTZCIDExQjE7CitCODlGO0I4OUY7MTEwNSAxMTZCIDExQjI7Qjg5RjsxMTA1IDExNkIgMTFCMjsKK0I4QTA7QjhBMDsxMTA1IDExNkIgMTFCMztCOEEwOzExMDUgMTE2QiAxMUIzOworQjhBMTtCOEExOzExMDUgMTE2QiAxMUI0O0I4QTE7MTEwNSAxMTZCIDExQjQ7CitCOEEyO0I4QTI7MTEwNSAxMTZCIDExQjU7QjhBMjsxMTA1IDExNkIgMTFCNTsKK0I4QTM7QjhBMzsxMTA1IDExNkIgMTFCNjtCOEEzOzExMDUgMTE2QiAxMUI2OworQjhBNDtCOEE0OzExMDUgMTE2QiAxMUI3O0I4QTQ7MTEwNSAxMTZCIDExQjc7CitCOEE1O0I4QTU7MTEwNSAxMTZCIDExQjg7QjhBNTsxMTA1IDExNkIgMTFCODsKK0I4QTY7QjhBNjsxMTA1IDExNkIgMTFCOTtCOEE2OzExMDUgMTE2QiAxMUI5OworQjhBNztCOEE3OzExMDUgMTE2QiAxMUJBO0I4QTc7MTEwNSAxMTZCIDExQkE7CitCOEE4O0I4QTg7MTEwNSAxMTZCIDExQkI7QjhBODsxMTA1IDExNkIgMTFCQjsKK0I4QTk7QjhBOTsxMTA1IDExNkIgMTFCQztCOEE5OzExMDUgMTE2QiAxMUJDOworQjhBQTtCOEFBOzExMDUgMTE2QiAxMUJEO0I4QUE7MTEwNSAxMTZCIDExQkQ7CitCOEFCO0I4QUI7MTEwNSAxMTZCIDExQkU7QjhBQjsxMTA1IDExNkIgMTFCRTsKK0I4QUM7QjhBQzsxMTA1IDExNkIgMTFCRjtCOEFDOzExMDUgMTE2QiAxMUJGOworQjhBRDtCOEFEOzExMDUgMTE2QiAxMUMwO0I4QUQ7MTEwNSAxMTZCIDExQzA7CitCOEFFO0I4QUU7MTEwNSAxMTZCIDExQzE7QjhBRTsxMTA1IDExNkIgMTFDMTsKK0I4QUY7QjhBRjsxMTA1IDExNkIgMTFDMjtCOEFGOzExMDUgMTE2QiAxMUMyOworQjhCMDtCOEIwOzExMDUgMTE2QztCOEIwOzExMDUgMTE2QzsKK0I4QjE7QjhCMTsxMTA1IDExNkMgMTFBODtCOEIxOzExMDUgMTE2QyAxMUE4OworQjhCMjtCOEIyOzExMDUgMTE2QyAxMUE5O0I4QjI7MTEwNSAxMTZDIDExQTk7CitCOEIzO0I4QjM7MTEwNSAxMTZDIDExQUE7QjhCMzsxMTA1IDExNkMgMTFBQTsKK0I4QjQ7QjhCNDsxMTA1IDExNkMgMTFBQjtCOEI0OzExMDUgMTE2QyAxMUFCOworQjhCNTtCOEI1OzExMDUgMTE2QyAxMUFDO0I4QjU7MTEwNSAxMTZDIDExQUM7CitCOEI2O0I4QjY7MTEwNSAxMTZDIDExQUQ7QjhCNjsxMTA1IDExNkMgMTFBRDsKK0I4Qjc7QjhCNzsxMTA1IDExNkMgMTFBRTtCOEI3OzExMDUgMTE2QyAxMUFFOworQjhCODtCOEI4OzExMDUgMTE2QyAxMUFGO0I4Qjg7MTEwNSAxMTZDIDExQUY7CitCOEI5O0I4Qjk7MTEwNSAxMTZDIDExQjA7QjhCOTsxMTA1IDExNkMgMTFCMDsKK0I4QkE7QjhCQTsxMTA1IDExNkMgMTFCMTtCOEJBOzExMDUgMTE2QyAxMUIxOworQjhCQjtCOEJCOzExMDUgMTE2QyAxMUIyO0I4QkI7MTEwNSAxMTZDIDExQjI7CitCOEJDO0I4QkM7MTEwNSAxMTZDIDExQjM7QjhCQzsxMTA1IDExNkMgMTFCMzsKK0I4QkQ7QjhCRDsxMTA1IDExNkMgMTFCNDtCOEJEOzExMDUgMTE2QyAxMUI0OworQjhCRTtCOEJFOzExMDUgMTE2QyAxMUI1O0I4QkU7MTEwNSAxMTZDIDExQjU7CitCOEJGO0I4QkY7MTEwNSAxMTZDIDExQjY7QjhCRjsxMTA1IDExNkMgMTFCNjsKK0I4QzA7QjhDMDsxMTA1IDExNkMgMTFCNztCOEMwOzExMDUgMTE2QyAxMUI3OworQjhDMTtCOEMxOzExMDUgMTE2QyAxMUI4O0I4QzE7MTEwNSAxMTZDIDExQjg7CitCOEMyO0I4QzI7MTEwNSAxMTZDIDExQjk7QjhDMjsxMTA1IDExNkMgMTFCOTsKK0I4QzM7QjhDMzsxMTA1IDExNkMgMTFCQTtCOEMzOzExMDUgMTE2QyAxMUJBOworQjhDNDtCOEM0OzExMDUgMTE2QyAxMUJCO0I4QzQ7MTEwNSAxMTZDIDExQkI7CitCOEM1O0I4QzU7MTEwNSAxMTZDIDExQkM7QjhDNTsxMTA1IDExNkMgMTFCQzsKK0I4QzY7QjhDNjsxMTA1IDExNkMgMTFCRDtCOEM2OzExMDUgMTE2QyAxMUJEOworQjhDNztCOEM3OzExMDUgMTE2QyAxMUJFO0I4Qzc7MTEwNSAxMTZDIDExQkU7CitCOEM4O0I4Qzg7MTEwNSAxMTZDIDExQkY7QjhDODsxMTA1IDExNkMgMTFCRjsKK0I4Qzk7QjhDOTsxMTA1IDExNkMgMTFDMDtCOEM5OzExMDUgMTE2QyAxMUMwOworQjhDQTtCOENBOzExMDUgMTE2QyAxMUMxO0I4Q0E7MTEwNSAxMTZDIDExQzE7CitCOENCO0I4Q0I7MTEwNSAxMTZDIDExQzI7QjhDQjsxMTA1IDExNkMgMTFDMjsKK0I4Q0M7QjhDQzsxMTA1IDExNkQ7QjhDQzsxMTA1IDExNkQ7CitCOENEO0I4Q0Q7MTEwNSAxMTZEIDExQTg7QjhDRDsxMTA1IDExNkQgMTFBODsKK0I4Q0U7QjhDRTsxMTA1IDExNkQgMTFBOTtCOENFOzExMDUgMTE2RCAxMUE5OworQjhDRjtCOENGOzExMDUgMTE2RCAxMUFBO0I4Q0Y7MTEwNSAxMTZEIDExQUE7CitCOEQwO0I4RDA7MTEwNSAxMTZEIDExQUI7QjhEMDsxMTA1IDExNkQgMTFBQjsKK0I4RDE7QjhEMTsxMTA1IDExNkQgMTFBQztCOEQxOzExMDUgMTE2RCAxMUFDOworQjhEMjtCOEQyOzExMDUgMTE2RCAxMUFEO0I4RDI7MTEwNSAxMTZEIDExQUQ7CitCOEQzO0I4RDM7MTEwNSAxMTZEIDExQUU7QjhEMzsxMTA1IDExNkQgMTFBRTsKK0I4RDQ7QjhENDsxMTA1IDExNkQgMTFBRjtCOEQ0OzExMDUgMTE2RCAxMUFGOworQjhENTtCOEQ1OzExMDUgMTE2RCAxMUIwO0I4RDU7MTEwNSAxMTZEIDExQjA7CitCOEQ2O0I4RDY7MTEwNSAxMTZEIDExQjE7QjhENjsxMTA1IDExNkQgMTFCMTsKK0I4RDc7QjhENzsxMTA1IDExNkQgMTFCMjtCOEQ3OzExMDUgMTE2RCAxMUIyOworQjhEODtCOEQ4OzExMDUgMTE2RCAxMUIzO0I4RDg7MTEwNSAxMTZEIDExQjM7CitCOEQ5O0I4RDk7MTEwNSAxMTZEIDExQjQ7QjhEOTsxMTA1IDExNkQgMTFCNDsKK0I4REE7QjhEQTsxMTA1IDExNkQgMTFCNTtCOERBOzExMDUgMTE2RCAxMUI1OworQjhEQjtCOERCOzExMDUgMTE2RCAxMUI2O0I4REI7MTEwNSAxMTZEIDExQjY7CitCOERDO0I4REM7MTEwNSAxMTZEIDExQjc7QjhEQzsxMTA1IDExNkQgMTFCNzsKK0I4REQ7QjhERDsxMTA1IDExNkQgMTFCODtCOEREOzExMDUgMTE2RCAxMUI4OworQjhERTtCOERFOzExMDUgMTE2RCAxMUI5O0I4REU7MTEwNSAxMTZEIDExQjk7CitCOERGO0I4REY7MTEwNSAxMTZEIDExQkE7QjhERjsxMTA1IDExNkQgMTFCQTsKK0I4RTA7QjhFMDsxMTA1IDExNkQgMTFCQjtCOEUwOzExMDUgMTE2RCAxMUJCOworQjhFMTtCOEUxOzExMDUgMTE2RCAxMUJDO0I4RTE7MTEwNSAxMTZEIDExQkM7CitCOEUyO0I4RTI7MTEwNSAxMTZEIDExQkQ7QjhFMjsxMTA1IDExNkQgMTFCRDsKK0I4RTM7QjhFMzsxMTA1IDExNkQgMTFCRTtCOEUzOzExMDUgMTE2RCAxMUJFOworQjhFNDtCOEU0OzExMDUgMTE2RCAxMUJGO0I4RTQ7MTEwNSAxMTZEIDExQkY7CitCOEU1O0I4RTU7MTEwNSAxMTZEIDExQzA7QjhFNTsxMTA1IDExNkQgMTFDMDsKK0I4RTY7QjhFNjsxMTA1IDExNkQgMTFDMTtCOEU2OzExMDUgMTE2RCAxMUMxOworQjhFNztCOEU3OzExMDUgMTE2RCAxMUMyO0I4RTc7MTEwNSAxMTZEIDExQzI7CitCOEU4O0I4RTg7MTEwNSAxMTZFO0I4RTg7MTEwNSAxMTZFOworQjhFOTtCOEU5OzExMDUgMTE2RSAxMUE4O0I4RTk7MTEwNSAxMTZFIDExQTg7CitCOEVBO0I4RUE7MTEwNSAxMTZFIDExQTk7QjhFQTsxMTA1IDExNkUgMTFBOTsKK0I4RUI7QjhFQjsxMTA1IDExNkUgMTFBQTtCOEVCOzExMDUgMTE2RSAxMUFBOworQjhFQztCOEVDOzExMDUgMTE2RSAxMUFCO0I4RUM7MTEwNSAxMTZFIDExQUI7CitCOEVEO0I4RUQ7MTEwNSAxMTZFIDExQUM7QjhFRDsxMTA1IDExNkUgMTFBQzsKK0I4RUU7QjhFRTsxMTA1IDExNkUgMTFBRDtCOEVFOzExMDUgMTE2RSAxMUFEOworQjhFRjtCOEVGOzExMDUgMTE2RSAxMUFFO0I4RUY7MTEwNSAxMTZFIDExQUU7CitCOEYwO0I4RjA7MTEwNSAxMTZFIDExQUY7QjhGMDsxMTA1IDExNkUgMTFBRjsKK0I4RjE7QjhGMTsxMTA1IDExNkUgMTFCMDtCOEYxOzExMDUgMTE2RSAxMUIwOworQjhGMjtCOEYyOzExMDUgMTE2RSAxMUIxO0I4RjI7MTEwNSAxMTZFIDExQjE7CitCOEYzO0I4RjM7MTEwNSAxMTZFIDExQjI7QjhGMzsxMTA1IDExNkUgMTFCMjsKK0I4RjQ7QjhGNDsxMTA1IDExNkUgMTFCMztCOEY0OzExMDUgMTE2RSAxMUIzOworQjhGNTtCOEY1OzExMDUgMTE2RSAxMUI0O0I4RjU7MTEwNSAxMTZFIDExQjQ7CitCOEY2O0I4RjY7MTEwNSAxMTZFIDExQjU7QjhGNjsxMTA1IDExNkUgMTFCNTsKK0I4Rjc7QjhGNzsxMTA1IDExNkUgMTFCNjtCOEY3OzExMDUgMTE2RSAxMUI2OworQjhGODtCOEY4OzExMDUgMTE2RSAxMUI3O0I4Rjg7MTEwNSAxMTZFIDExQjc7CitCOEY5O0I4Rjk7MTEwNSAxMTZFIDExQjg7QjhGOTsxMTA1IDExNkUgMTFCODsKK0I4RkE7QjhGQTsxMTA1IDExNkUgMTFCOTtCOEZBOzExMDUgMTE2RSAxMUI5OworQjhGQjtCOEZCOzExMDUgMTE2RSAxMUJBO0I4RkI7MTEwNSAxMTZFIDExQkE7CitCOEZDO0I4RkM7MTEwNSAxMTZFIDExQkI7QjhGQzsxMTA1IDExNkUgMTFCQjsKK0I4RkQ7QjhGRDsxMTA1IDExNkUgMTFCQztCOEZEOzExMDUgMTE2RSAxMUJDOworQjhGRTtCOEZFOzExMDUgMTE2RSAxMUJEO0I4RkU7MTEwNSAxMTZFIDExQkQ7CitCOEZGO0I4RkY7MTEwNSAxMTZFIDExQkU7QjhGRjsxMTA1IDExNkUgMTFCRTsKK0I5MDA7QjkwMDsxMTA1IDExNkUgMTFCRjtCOTAwOzExMDUgMTE2RSAxMUJGOworQjkwMTtCOTAxOzExMDUgMTE2RSAxMUMwO0I5MDE7MTEwNSAxMTZFIDExQzA7CitCOTAyO0I5MDI7MTEwNSAxMTZFIDExQzE7QjkwMjsxMTA1IDExNkUgMTFDMTsKK0I5MDM7QjkwMzsxMTA1IDExNkUgMTFDMjtCOTAzOzExMDUgMTE2RSAxMUMyOworQjkwNDtCOTA0OzExMDUgMTE2RjtCOTA0OzExMDUgMTE2RjsKK0I5MDU7QjkwNTsxMTA1IDExNkYgMTFBODtCOTA1OzExMDUgMTE2RiAxMUE4OworQjkwNjtCOTA2OzExMDUgMTE2RiAxMUE5O0I5MDY7MTEwNSAxMTZGIDExQTk7CitCOTA3O0I5MDc7MTEwNSAxMTZGIDExQUE7QjkwNzsxMTA1IDExNkYgMTFBQTsKK0I5MDg7QjkwODsxMTA1IDExNkYgMTFBQjtCOTA4OzExMDUgMTE2RiAxMUFCOworQjkwOTtCOTA5OzExMDUgMTE2RiAxMUFDO0I5MDk7MTEwNSAxMTZGIDExQUM7CitCOTBBO0I5MEE7MTEwNSAxMTZGIDExQUQ7QjkwQTsxMTA1IDExNkYgMTFBRDsKK0I5MEI7QjkwQjsxMTA1IDExNkYgMTFBRTtCOTBCOzExMDUgMTE2RiAxMUFFOworQjkwQztCOTBDOzExMDUgMTE2RiAxMUFGO0I5MEM7MTEwNSAxMTZGIDExQUY7CitCOTBEO0I5MEQ7MTEwNSAxMTZGIDExQjA7QjkwRDsxMTA1IDExNkYgMTFCMDsKK0I5MEU7QjkwRTsxMTA1IDExNkYgMTFCMTtCOTBFOzExMDUgMTE2RiAxMUIxOworQjkwRjtCOTBGOzExMDUgMTE2RiAxMUIyO0I5MEY7MTEwNSAxMTZGIDExQjI7CitCOTEwO0I5MTA7MTEwNSAxMTZGIDExQjM7QjkxMDsxMTA1IDExNkYgMTFCMzsKK0I5MTE7QjkxMTsxMTA1IDExNkYgMTFCNDtCOTExOzExMDUgMTE2RiAxMUI0OworQjkxMjtCOTEyOzExMDUgMTE2RiAxMUI1O0I5MTI7MTEwNSAxMTZGIDExQjU7CitCOTEzO0I5MTM7MTEwNSAxMTZGIDExQjY7QjkxMzsxMTA1IDExNkYgMTFCNjsKK0I5MTQ7QjkxNDsxMTA1IDExNkYgMTFCNztCOTE0OzExMDUgMTE2RiAxMUI3OworQjkxNTtCOTE1OzExMDUgMTE2RiAxMUI4O0I5MTU7MTEwNSAxMTZGIDExQjg7CitCOTE2O0I5MTY7MTEwNSAxMTZGIDExQjk7QjkxNjsxMTA1IDExNkYgMTFCOTsKK0I5MTc7QjkxNzsxMTA1IDExNkYgMTFCQTtCOTE3OzExMDUgMTE2RiAxMUJBOworQjkxODtCOTE4OzExMDUgMTE2RiAxMUJCO0I5MTg7MTEwNSAxMTZGIDExQkI7CitCOTE5O0I5MTk7MTEwNSAxMTZGIDExQkM7QjkxOTsxMTA1IDExNkYgMTFCQzsKK0I5MUE7QjkxQTsxMTA1IDExNkYgMTFCRDtCOTFBOzExMDUgMTE2RiAxMUJEOworQjkxQjtCOTFCOzExMDUgMTE2RiAxMUJFO0I5MUI7MTEwNSAxMTZGIDExQkU7CitCOTFDO0I5MUM7MTEwNSAxMTZGIDExQkY7QjkxQzsxMTA1IDExNkYgMTFCRjsKK0I5MUQ7QjkxRDsxMTA1IDExNkYgMTFDMDtCOTFEOzExMDUgMTE2RiAxMUMwOworQjkxRTtCOTFFOzExMDUgMTE2RiAxMUMxO0I5MUU7MTEwNSAxMTZGIDExQzE7CitCOTFGO0I5MUY7MTEwNSAxMTZGIDExQzI7QjkxRjsxMTA1IDExNkYgMTFDMjsKK0I5MjA7QjkyMDsxMTA1IDExNzA7QjkyMDsxMTA1IDExNzA7CitCOTIxO0I5MjE7MTEwNSAxMTcwIDExQTg7QjkyMTsxMTA1IDExNzAgMTFBODsKK0I5MjI7QjkyMjsxMTA1IDExNzAgMTFBOTtCOTIyOzExMDUgMTE3MCAxMUE5OworQjkyMztCOTIzOzExMDUgMTE3MCAxMUFBO0I5MjM7MTEwNSAxMTcwIDExQUE7CitCOTI0O0I5MjQ7MTEwNSAxMTcwIDExQUI7QjkyNDsxMTA1IDExNzAgMTFBQjsKK0I5MjU7QjkyNTsxMTA1IDExNzAgMTFBQztCOTI1OzExMDUgMTE3MCAxMUFDOworQjkyNjtCOTI2OzExMDUgMTE3MCAxMUFEO0I5MjY7MTEwNSAxMTcwIDExQUQ7CitCOTI3O0I5Mjc7MTEwNSAxMTcwIDExQUU7QjkyNzsxMTA1IDExNzAgMTFBRTsKK0I5Mjg7QjkyODsxMTA1IDExNzAgMTFBRjtCOTI4OzExMDUgMTE3MCAxMUFGOworQjkyOTtCOTI5OzExMDUgMTE3MCAxMUIwO0I5Mjk7MTEwNSAxMTcwIDExQjA7CitCOTJBO0I5MkE7MTEwNSAxMTcwIDExQjE7QjkyQTsxMTA1IDExNzAgMTFCMTsKK0I5MkI7QjkyQjsxMTA1IDExNzAgMTFCMjtCOTJCOzExMDUgMTE3MCAxMUIyOworQjkyQztCOTJDOzExMDUgMTE3MCAxMUIzO0I5MkM7MTEwNSAxMTcwIDExQjM7CitCOTJEO0I5MkQ7MTEwNSAxMTcwIDExQjQ7QjkyRDsxMTA1IDExNzAgMTFCNDsKK0I5MkU7QjkyRTsxMTA1IDExNzAgMTFCNTtCOTJFOzExMDUgMTE3MCAxMUI1OworQjkyRjtCOTJGOzExMDUgMTE3MCAxMUI2O0I5MkY7MTEwNSAxMTcwIDExQjY7CitCOTMwO0I5MzA7MTEwNSAxMTcwIDExQjc7QjkzMDsxMTA1IDExNzAgMTFCNzsKK0I5MzE7QjkzMTsxMTA1IDExNzAgMTFCODtCOTMxOzExMDUgMTE3MCAxMUI4OworQjkzMjtCOTMyOzExMDUgMTE3MCAxMUI5O0I5MzI7MTEwNSAxMTcwIDExQjk7CitCOTMzO0I5MzM7MTEwNSAxMTcwIDExQkE7QjkzMzsxMTA1IDExNzAgMTFCQTsKK0I5MzQ7QjkzNDsxMTA1IDExNzAgMTFCQjtCOTM0OzExMDUgMTE3MCAxMUJCOworQjkzNTtCOTM1OzExMDUgMTE3MCAxMUJDO0I5MzU7MTEwNSAxMTcwIDExQkM7CitCOTM2O0I5MzY7MTEwNSAxMTcwIDExQkQ7QjkzNjsxMTA1IDExNzAgMTFCRDsKK0I5Mzc7QjkzNzsxMTA1IDExNzAgMTFCRTtCOTM3OzExMDUgMTE3MCAxMUJFOworQjkzODtCOTM4OzExMDUgMTE3MCAxMUJGO0I5Mzg7MTEwNSAxMTcwIDExQkY7CitCOTM5O0I5Mzk7MTEwNSAxMTcwIDExQzA7QjkzOTsxMTA1IDExNzAgMTFDMDsKK0I5M0E7QjkzQTsxMTA1IDExNzAgMTFDMTtCOTNBOzExMDUgMTE3MCAxMUMxOworQjkzQjtCOTNCOzExMDUgMTE3MCAxMUMyO0I5M0I7MTEwNSAxMTcwIDExQzI7CitCOTNDO0I5M0M7MTEwNSAxMTcxO0I5M0M7MTEwNSAxMTcxOworQjkzRDtCOTNEOzExMDUgMTE3MSAxMUE4O0I5M0Q7MTEwNSAxMTcxIDExQTg7CitCOTNFO0I5M0U7MTEwNSAxMTcxIDExQTk7QjkzRTsxMTA1IDExNzEgMTFBOTsKK0I5M0Y7QjkzRjsxMTA1IDExNzEgMTFBQTtCOTNGOzExMDUgMTE3MSAxMUFBOworQjk0MDtCOTQwOzExMDUgMTE3MSAxMUFCO0I5NDA7MTEwNSAxMTcxIDExQUI7CitCOTQxO0I5NDE7MTEwNSAxMTcxIDExQUM7Qjk0MTsxMTA1IDExNzEgMTFBQzsKK0I5NDI7Qjk0MjsxMTA1IDExNzEgMTFBRDtCOTQyOzExMDUgMTE3MSAxMUFEOworQjk0MztCOTQzOzExMDUgMTE3MSAxMUFFO0I5NDM7MTEwNSAxMTcxIDExQUU7CitCOTQ0O0I5NDQ7MTEwNSAxMTcxIDExQUY7Qjk0NDsxMTA1IDExNzEgMTFBRjsKK0I5NDU7Qjk0NTsxMTA1IDExNzEgMTFCMDtCOTQ1OzExMDUgMTE3MSAxMUIwOworQjk0NjtCOTQ2OzExMDUgMTE3MSAxMUIxO0I5NDY7MTEwNSAxMTcxIDExQjE7CitCOTQ3O0I5NDc7MTEwNSAxMTcxIDExQjI7Qjk0NzsxMTA1IDExNzEgMTFCMjsKK0I5NDg7Qjk0ODsxMTA1IDExNzEgMTFCMztCOTQ4OzExMDUgMTE3MSAxMUIzOworQjk0OTtCOTQ5OzExMDUgMTE3MSAxMUI0O0I5NDk7MTEwNSAxMTcxIDExQjQ7CitCOTRBO0I5NEE7MTEwNSAxMTcxIDExQjU7Qjk0QTsxMTA1IDExNzEgMTFCNTsKK0I5NEI7Qjk0QjsxMTA1IDExNzEgMTFCNjtCOTRCOzExMDUgMTE3MSAxMUI2OworQjk0QztCOTRDOzExMDUgMTE3MSAxMUI3O0I5NEM7MTEwNSAxMTcxIDExQjc7CitCOTREO0I5NEQ7MTEwNSAxMTcxIDExQjg7Qjk0RDsxMTA1IDExNzEgMTFCODsKK0I5NEU7Qjk0RTsxMTA1IDExNzEgMTFCOTtCOTRFOzExMDUgMTE3MSAxMUI5OworQjk0RjtCOTRGOzExMDUgMTE3MSAxMUJBO0I5NEY7MTEwNSAxMTcxIDExQkE7CitCOTUwO0I5NTA7MTEwNSAxMTcxIDExQkI7Qjk1MDsxMTA1IDExNzEgMTFCQjsKK0I5NTE7Qjk1MTsxMTA1IDExNzEgMTFCQztCOTUxOzExMDUgMTE3MSAxMUJDOworQjk1MjtCOTUyOzExMDUgMTE3MSAxMUJEO0I5NTI7MTEwNSAxMTcxIDExQkQ7CitCOTUzO0I5NTM7MTEwNSAxMTcxIDExQkU7Qjk1MzsxMTA1IDExNzEgMTFCRTsKK0I5NTQ7Qjk1NDsxMTA1IDExNzEgMTFCRjtCOTU0OzExMDUgMTE3MSAxMUJGOworQjk1NTtCOTU1OzExMDUgMTE3MSAxMUMwO0I5NTU7MTEwNSAxMTcxIDExQzA7CitCOTU2O0I5NTY7MTEwNSAxMTcxIDExQzE7Qjk1NjsxMTA1IDExNzEgMTFDMTsKK0I5NTc7Qjk1NzsxMTA1IDExNzEgMTFDMjtCOTU3OzExMDUgMTE3MSAxMUMyOworQjk1ODtCOTU4OzExMDUgMTE3MjtCOTU4OzExMDUgMTE3MjsKK0I5NTk7Qjk1OTsxMTA1IDExNzIgMTFBODtCOTU5OzExMDUgMTE3MiAxMUE4OworQjk1QTtCOTVBOzExMDUgMTE3MiAxMUE5O0I5NUE7MTEwNSAxMTcyIDExQTk7CitCOTVCO0I5NUI7MTEwNSAxMTcyIDExQUE7Qjk1QjsxMTA1IDExNzIgMTFBQTsKK0I5NUM7Qjk1QzsxMTA1IDExNzIgMTFBQjtCOTVDOzExMDUgMTE3MiAxMUFCOworQjk1RDtCOTVEOzExMDUgMTE3MiAxMUFDO0I5NUQ7MTEwNSAxMTcyIDExQUM7CitCOTVFO0I5NUU7MTEwNSAxMTcyIDExQUQ7Qjk1RTsxMTA1IDExNzIgMTFBRDsKK0I5NUY7Qjk1RjsxMTA1IDExNzIgMTFBRTtCOTVGOzExMDUgMTE3MiAxMUFFOworQjk2MDtCOTYwOzExMDUgMTE3MiAxMUFGO0I5NjA7MTEwNSAxMTcyIDExQUY7CitCOTYxO0I5NjE7MTEwNSAxMTcyIDExQjA7Qjk2MTsxMTA1IDExNzIgMTFCMDsKK0I5NjI7Qjk2MjsxMTA1IDExNzIgMTFCMTtCOTYyOzExMDUgMTE3MiAxMUIxOworQjk2MztCOTYzOzExMDUgMTE3MiAxMUIyO0I5NjM7MTEwNSAxMTcyIDExQjI7CitCOTY0O0I5NjQ7MTEwNSAxMTcyIDExQjM7Qjk2NDsxMTA1IDExNzIgMTFCMzsKK0I5NjU7Qjk2NTsxMTA1IDExNzIgMTFCNDtCOTY1OzExMDUgMTE3MiAxMUI0OworQjk2NjtCOTY2OzExMDUgMTE3MiAxMUI1O0I5NjY7MTEwNSAxMTcyIDExQjU7CitCOTY3O0I5Njc7MTEwNSAxMTcyIDExQjY7Qjk2NzsxMTA1IDExNzIgMTFCNjsKK0I5Njg7Qjk2ODsxMTA1IDExNzIgMTFCNztCOTY4OzExMDUgMTE3MiAxMUI3OworQjk2OTtCOTY5OzExMDUgMTE3MiAxMUI4O0I5Njk7MTEwNSAxMTcyIDExQjg7CitCOTZBO0I5NkE7MTEwNSAxMTcyIDExQjk7Qjk2QTsxMTA1IDExNzIgMTFCOTsKK0I5NkI7Qjk2QjsxMTA1IDExNzIgMTFCQTtCOTZCOzExMDUgMTE3MiAxMUJBOworQjk2QztCOTZDOzExMDUgMTE3MiAxMUJCO0I5NkM7MTEwNSAxMTcyIDExQkI7CitCOTZEO0I5NkQ7MTEwNSAxMTcyIDExQkM7Qjk2RDsxMTA1IDExNzIgMTFCQzsKK0I5NkU7Qjk2RTsxMTA1IDExNzIgMTFCRDtCOTZFOzExMDUgMTE3MiAxMUJEOworQjk2RjtCOTZGOzExMDUgMTE3MiAxMUJFO0I5NkY7MTEwNSAxMTcyIDExQkU7CitCOTcwO0I5NzA7MTEwNSAxMTcyIDExQkY7Qjk3MDsxMTA1IDExNzIgMTFCRjsKK0I5NzE7Qjk3MTsxMTA1IDExNzIgMTFDMDtCOTcxOzExMDUgMTE3MiAxMUMwOworQjk3MjtCOTcyOzExMDUgMTE3MiAxMUMxO0I5NzI7MTEwNSAxMTcyIDExQzE7CitCOTczO0I5NzM7MTEwNSAxMTcyIDExQzI7Qjk3MzsxMTA1IDExNzIgMTFDMjsKK0I5NzQ7Qjk3NDsxMTA1IDExNzM7Qjk3NDsxMTA1IDExNzM7CitCOTc1O0I5NzU7MTEwNSAxMTczIDExQTg7Qjk3NTsxMTA1IDExNzMgMTFBODsKK0I5NzY7Qjk3NjsxMTA1IDExNzMgMTFBOTtCOTc2OzExMDUgMTE3MyAxMUE5OworQjk3NztCOTc3OzExMDUgMTE3MyAxMUFBO0I5Nzc7MTEwNSAxMTczIDExQUE7CitCOTc4O0I5Nzg7MTEwNSAxMTczIDExQUI7Qjk3ODsxMTA1IDExNzMgMTFBQjsKK0I5Nzk7Qjk3OTsxMTA1IDExNzMgMTFBQztCOTc5OzExMDUgMTE3MyAxMUFDOworQjk3QTtCOTdBOzExMDUgMTE3MyAxMUFEO0I5N0E7MTEwNSAxMTczIDExQUQ7CitCOTdCO0I5N0I7MTEwNSAxMTczIDExQUU7Qjk3QjsxMTA1IDExNzMgMTFBRTsKK0I5N0M7Qjk3QzsxMTA1IDExNzMgMTFBRjtCOTdDOzExMDUgMTE3MyAxMUFGOworQjk3RDtCOTdEOzExMDUgMTE3MyAxMUIwO0I5N0Q7MTEwNSAxMTczIDExQjA7CitCOTdFO0I5N0U7MTEwNSAxMTczIDExQjE7Qjk3RTsxMTA1IDExNzMgMTFCMTsKK0I5N0Y7Qjk3RjsxMTA1IDExNzMgMTFCMjtCOTdGOzExMDUgMTE3MyAxMUIyOworQjk4MDtCOTgwOzExMDUgMTE3MyAxMUIzO0I5ODA7MTEwNSAxMTczIDExQjM7CitCOTgxO0I5ODE7MTEwNSAxMTczIDExQjQ7Qjk4MTsxMTA1IDExNzMgMTFCNDsKK0I5ODI7Qjk4MjsxMTA1IDExNzMgMTFCNTtCOTgyOzExMDUgMTE3MyAxMUI1OworQjk4MztCOTgzOzExMDUgMTE3MyAxMUI2O0I5ODM7MTEwNSAxMTczIDExQjY7CitCOTg0O0I5ODQ7MTEwNSAxMTczIDExQjc7Qjk4NDsxMTA1IDExNzMgMTFCNzsKK0I5ODU7Qjk4NTsxMTA1IDExNzMgMTFCODtCOTg1OzExMDUgMTE3MyAxMUI4OworQjk4NjtCOTg2OzExMDUgMTE3MyAxMUI5O0I5ODY7MTEwNSAxMTczIDExQjk7CitCOTg3O0I5ODc7MTEwNSAxMTczIDExQkE7Qjk4NzsxMTA1IDExNzMgMTFCQTsKK0I5ODg7Qjk4ODsxMTA1IDExNzMgMTFCQjtCOTg4OzExMDUgMTE3MyAxMUJCOworQjk4OTtCOTg5OzExMDUgMTE3MyAxMUJDO0I5ODk7MTEwNSAxMTczIDExQkM7CitCOThBO0I5OEE7MTEwNSAxMTczIDExQkQ7Qjk4QTsxMTA1IDExNzMgMTFCRDsKK0I5OEI7Qjk4QjsxMTA1IDExNzMgMTFCRTtCOThCOzExMDUgMTE3MyAxMUJFOworQjk4QztCOThDOzExMDUgMTE3MyAxMUJGO0I5OEM7MTEwNSAxMTczIDExQkY7CitCOThEO0I5OEQ7MTEwNSAxMTczIDExQzA7Qjk4RDsxMTA1IDExNzMgMTFDMDsKK0I5OEU7Qjk4RTsxMTA1IDExNzMgMTFDMTtCOThFOzExMDUgMTE3MyAxMUMxOworQjk4RjtCOThGOzExMDUgMTE3MyAxMUMyO0I5OEY7MTEwNSAxMTczIDExQzI7CitCOTkwO0I5OTA7MTEwNSAxMTc0O0I5OTA7MTEwNSAxMTc0OworQjk5MTtCOTkxOzExMDUgMTE3NCAxMUE4O0I5OTE7MTEwNSAxMTc0IDExQTg7CitCOTkyO0I5OTI7MTEwNSAxMTc0IDExQTk7Qjk5MjsxMTA1IDExNzQgMTFBOTsKK0I5OTM7Qjk5MzsxMTA1IDExNzQgMTFBQTtCOTkzOzExMDUgMTE3NCAxMUFBOworQjk5NDtCOTk0OzExMDUgMTE3NCAxMUFCO0I5OTQ7MTEwNSAxMTc0IDExQUI7CitCOTk1O0I5OTU7MTEwNSAxMTc0IDExQUM7Qjk5NTsxMTA1IDExNzQgMTFBQzsKK0I5OTY7Qjk5NjsxMTA1IDExNzQgMTFBRDtCOTk2OzExMDUgMTE3NCAxMUFEOworQjk5NztCOTk3OzExMDUgMTE3NCAxMUFFO0I5OTc7MTEwNSAxMTc0IDExQUU7CitCOTk4O0I5OTg7MTEwNSAxMTc0IDExQUY7Qjk5ODsxMTA1IDExNzQgMTFBRjsKK0I5OTk7Qjk5OTsxMTA1IDExNzQgMTFCMDtCOTk5OzExMDUgMTE3NCAxMUIwOworQjk5QTtCOTlBOzExMDUgMTE3NCAxMUIxO0I5OUE7MTEwNSAxMTc0IDExQjE7CitCOTlCO0I5OUI7MTEwNSAxMTc0IDExQjI7Qjk5QjsxMTA1IDExNzQgMTFCMjsKK0I5OUM7Qjk5QzsxMTA1IDExNzQgMTFCMztCOTlDOzExMDUgMTE3NCAxMUIzOworQjk5RDtCOTlEOzExMDUgMTE3NCAxMUI0O0I5OUQ7MTEwNSAxMTc0IDExQjQ7CitCOTlFO0I5OUU7MTEwNSAxMTc0IDExQjU7Qjk5RTsxMTA1IDExNzQgMTFCNTsKK0I5OUY7Qjk5RjsxMTA1IDExNzQgMTFCNjtCOTlGOzExMDUgMTE3NCAxMUI2OworQjlBMDtCOUEwOzExMDUgMTE3NCAxMUI3O0I5QTA7MTEwNSAxMTc0IDExQjc7CitCOUExO0I5QTE7MTEwNSAxMTc0IDExQjg7QjlBMTsxMTA1IDExNzQgMTFCODsKK0I5QTI7QjlBMjsxMTA1IDExNzQgMTFCOTtCOUEyOzExMDUgMTE3NCAxMUI5OworQjlBMztCOUEzOzExMDUgMTE3NCAxMUJBO0I5QTM7MTEwNSAxMTc0IDExQkE7CitCOUE0O0I5QTQ7MTEwNSAxMTc0IDExQkI7QjlBNDsxMTA1IDExNzQgMTFCQjsKK0I5QTU7QjlBNTsxMTA1IDExNzQgMTFCQztCOUE1OzExMDUgMTE3NCAxMUJDOworQjlBNjtCOUE2OzExMDUgMTE3NCAxMUJEO0I5QTY7MTEwNSAxMTc0IDExQkQ7CitCOUE3O0I5QTc7MTEwNSAxMTc0IDExQkU7QjlBNzsxMTA1IDExNzQgMTFCRTsKK0I5QTg7QjlBODsxMTA1IDExNzQgMTFCRjtCOUE4OzExMDUgMTE3NCAxMUJGOworQjlBOTtCOUE5OzExMDUgMTE3NCAxMUMwO0I5QTk7MTEwNSAxMTc0IDExQzA7CitCOUFBO0I5QUE7MTEwNSAxMTc0IDExQzE7QjlBQTsxMTA1IDExNzQgMTFDMTsKK0I5QUI7QjlBQjsxMTA1IDExNzQgMTFDMjtCOUFCOzExMDUgMTE3NCAxMUMyOworQjlBQztCOUFDOzExMDUgMTE3NTtCOUFDOzExMDUgMTE3NTsKK0I5QUQ7QjlBRDsxMTA1IDExNzUgMTFBODtCOUFEOzExMDUgMTE3NSAxMUE4OworQjlBRTtCOUFFOzExMDUgMTE3NSAxMUE5O0I5QUU7MTEwNSAxMTc1IDExQTk7CitCOUFGO0I5QUY7MTEwNSAxMTc1IDExQUE7QjlBRjsxMTA1IDExNzUgMTFBQTsKK0I5QjA7QjlCMDsxMTA1IDExNzUgMTFBQjtCOUIwOzExMDUgMTE3NSAxMUFCOworQjlCMTtCOUIxOzExMDUgMTE3NSAxMUFDO0I5QjE7MTEwNSAxMTc1IDExQUM7CitCOUIyO0I5QjI7MTEwNSAxMTc1IDExQUQ7QjlCMjsxMTA1IDExNzUgMTFBRDsKK0I5QjM7QjlCMzsxMTA1IDExNzUgMTFBRTtCOUIzOzExMDUgMTE3NSAxMUFFOworQjlCNDtCOUI0OzExMDUgMTE3NSAxMUFGO0I5QjQ7MTEwNSAxMTc1IDExQUY7CitCOUI1O0I5QjU7MTEwNSAxMTc1IDExQjA7QjlCNTsxMTA1IDExNzUgMTFCMDsKK0I5QjY7QjlCNjsxMTA1IDExNzUgMTFCMTtCOUI2OzExMDUgMTE3NSAxMUIxOworQjlCNztCOUI3OzExMDUgMTE3NSAxMUIyO0I5Qjc7MTEwNSAxMTc1IDExQjI7CitCOUI4O0I5Qjg7MTEwNSAxMTc1IDExQjM7QjlCODsxMTA1IDExNzUgMTFCMzsKK0I5Qjk7QjlCOTsxMTA1IDExNzUgMTFCNDtCOUI5OzExMDUgMTE3NSAxMUI0OworQjlCQTtCOUJBOzExMDUgMTE3NSAxMUI1O0I5QkE7MTEwNSAxMTc1IDExQjU7CitCOUJCO0I5QkI7MTEwNSAxMTc1IDExQjY7QjlCQjsxMTA1IDExNzUgMTFCNjsKK0I5QkM7QjlCQzsxMTA1IDExNzUgMTFCNztCOUJDOzExMDUgMTE3NSAxMUI3OworQjlCRDtCOUJEOzExMDUgMTE3NSAxMUI4O0I5QkQ7MTEwNSAxMTc1IDExQjg7CitCOUJFO0I5QkU7MTEwNSAxMTc1IDExQjk7QjlCRTsxMTA1IDExNzUgMTFCOTsKK0I5QkY7QjlCRjsxMTA1IDExNzUgMTFCQTtCOUJGOzExMDUgMTE3NSAxMUJBOworQjlDMDtCOUMwOzExMDUgMTE3NSAxMUJCO0I5QzA7MTEwNSAxMTc1IDExQkI7CitCOUMxO0I5QzE7MTEwNSAxMTc1IDExQkM7QjlDMTsxMTA1IDExNzUgMTFCQzsKK0I5QzI7QjlDMjsxMTA1IDExNzUgMTFCRDtCOUMyOzExMDUgMTE3NSAxMUJEOworQjlDMztCOUMzOzExMDUgMTE3NSAxMUJFO0I5QzM7MTEwNSAxMTc1IDExQkU7CitCOUM0O0I5QzQ7MTEwNSAxMTc1IDExQkY7QjlDNDsxMTA1IDExNzUgMTFCRjsKK0I5QzU7QjlDNTsxMTA1IDExNzUgMTFDMDtCOUM1OzExMDUgMTE3NSAxMUMwOworQjlDNjtCOUM2OzExMDUgMTE3NSAxMUMxO0I5QzY7MTEwNSAxMTc1IDExQzE7CitCOUM3O0I5Qzc7MTEwNSAxMTc1IDExQzI7QjlDNzsxMTA1IDExNzUgMTFDMjsKK0I5Qzg7QjlDODsxMTA2IDExNjE7QjlDODsxMTA2IDExNjE7CitCOUM5O0I5Qzk7MTEwNiAxMTYxIDExQTg7QjlDOTsxMTA2IDExNjEgMTFBODsKK0I5Q0E7QjlDQTsxMTA2IDExNjEgMTFBOTtCOUNBOzExMDYgMTE2MSAxMUE5OworQjlDQjtCOUNCOzExMDYgMTE2MSAxMUFBO0I5Q0I7MTEwNiAxMTYxIDExQUE7CitCOUNDO0I5Q0M7MTEwNiAxMTYxIDExQUI7QjlDQzsxMTA2IDExNjEgMTFBQjsKK0I5Q0Q7QjlDRDsxMTA2IDExNjEgMTFBQztCOUNEOzExMDYgMTE2MSAxMUFDOworQjlDRTtCOUNFOzExMDYgMTE2MSAxMUFEO0I5Q0U7MTEwNiAxMTYxIDExQUQ7CitCOUNGO0I5Q0Y7MTEwNiAxMTYxIDExQUU7QjlDRjsxMTA2IDExNjEgMTFBRTsKK0I5RDA7QjlEMDsxMTA2IDExNjEgMTFBRjtCOUQwOzExMDYgMTE2MSAxMUFGOworQjlEMTtCOUQxOzExMDYgMTE2MSAxMUIwO0I5RDE7MTEwNiAxMTYxIDExQjA7CitCOUQyO0I5RDI7MTEwNiAxMTYxIDExQjE7QjlEMjsxMTA2IDExNjEgMTFCMTsKK0I5RDM7QjlEMzsxMTA2IDExNjEgMTFCMjtCOUQzOzExMDYgMTE2MSAxMUIyOworQjlENDtCOUQ0OzExMDYgMTE2MSAxMUIzO0I5RDQ7MTEwNiAxMTYxIDExQjM7CitCOUQ1O0I5RDU7MTEwNiAxMTYxIDExQjQ7QjlENTsxMTA2IDExNjEgMTFCNDsKK0I5RDY7QjlENjsxMTA2IDExNjEgMTFCNTtCOUQ2OzExMDYgMTE2MSAxMUI1OworQjlENztCOUQ3OzExMDYgMTE2MSAxMUI2O0I5RDc7MTEwNiAxMTYxIDExQjY7CitCOUQ4O0I5RDg7MTEwNiAxMTYxIDExQjc7QjlEODsxMTA2IDExNjEgMTFCNzsKK0I5RDk7QjlEOTsxMTA2IDExNjEgMTFCODtCOUQ5OzExMDYgMTE2MSAxMUI4OworQjlEQTtCOURBOzExMDYgMTE2MSAxMUI5O0I5REE7MTEwNiAxMTYxIDExQjk7CitCOURCO0I5REI7MTEwNiAxMTYxIDExQkE7QjlEQjsxMTA2IDExNjEgMTFCQTsKK0I5REM7QjlEQzsxMTA2IDExNjEgMTFCQjtCOURDOzExMDYgMTE2MSAxMUJCOworQjlERDtCOUREOzExMDYgMTE2MSAxMUJDO0I5REQ7MTEwNiAxMTYxIDExQkM7CitCOURFO0I5REU7MTEwNiAxMTYxIDExQkQ7QjlERTsxMTA2IDExNjEgMTFCRDsKK0I5REY7QjlERjsxMTA2IDExNjEgMTFCRTtCOURGOzExMDYgMTE2MSAxMUJFOworQjlFMDtCOUUwOzExMDYgMTE2MSAxMUJGO0I5RTA7MTEwNiAxMTYxIDExQkY7CitCOUUxO0I5RTE7MTEwNiAxMTYxIDExQzA7QjlFMTsxMTA2IDExNjEgMTFDMDsKK0I5RTI7QjlFMjsxMTA2IDExNjEgMTFDMTtCOUUyOzExMDYgMTE2MSAxMUMxOworQjlFMztCOUUzOzExMDYgMTE2MSAxMUMyO0I5RTM7MTEwNiAxMTYxIDExQzI7CitCOUU0O0I5RTQ7MTEwNiAxMTYyO0I5RTQ7MTEwNiAxMTYyOworQjlFNTtCOUU1OzExMDYgMTE2MiAxMUE4O0I5RTU7MTEwNiAxMTYyIDExQTg7CitCOUU2O0I5RTY7MTEwNiAxMTYyIDExQTk7QjlFNjsxMTA2IDExNjIgMTFBOTsKK0I5RTc7QjlFNzsxMTA2IDExNjIgMTFBQTtCOUU3OzExMDYgMTE2MiAxMUFBOworQjlFODtCOUU4OzExMDYgMTE2MiAxMUFCO0I5RTg7MTEwNiAxMTYyIDExQUI7CitCOUU5O0I5RTk7MTEwNiAxMTYyIDExQUM7QjlFOTsxMTA2IDExNjIgMTFBQzsKK0I5RUE7QjlFQTsxMTA2IDExNjIgMTFBRDtCOUVBOzExMDYgMTE2MiAxMUFEOworQjlFQjtCOUVCOzExMDYgMTE2MiAxMUFFO0I5RUI7MTEwNiAxMTYyIDExQUU7CitCOUVDO0I5RUM7MTEwNiAxMTYyIDExQUY7QjlFQzsxMTA2IDExNjIgMTFBRjsKK0I5RUQ7QjlFRDsxMTA2IDExNjIgMTFCMDtCOUVEOzExMDYgMTE2MiAxMUIwOworQjlFRTtCOUVFOzExMDYgMTE2MiAxMUIxO0I5RUU7MTEwNiAxMTYyIDExQjE7CitCOUVGO0I5RUY7MTEwNiAxMTYyIDExQjI7QjlFRjsxMTA2IDExNjIgMTFCMjsKK0I5RjA7QjlGMDsxMTA2IDExNjIgMTFCMztCOUYwOzExMDYgMTE2MiAxMUIzOworQjlGMTtCOUYxOzExMDYgMTE2MiAxMUI0O0I5RjE7MTEwNiAxMTYyIDExQjQ7CitCOUYyO0I5RjI7MTEwNiAxMTYyIDExQjU7QjlGMjsxMTA2IDExNjIgMTFCNTsKK0I5RjM7QjlGMzsxMTA2IDExNjIgMTFCNjtCOUYzOzExMDYgMTE2MiAxMUI2OworQjlGNDtCOUY0OzExMDYgMTE2MiAxMUI3O0I5RjQ7MTEwNiAxMTYyIDExQjc7CitCOUY1O0I5RjU7MTEwNiAxMTYyIDExQjg7QjlGNTsxMTA2IDExNjIgMTFCODsKK0I5RjY7QjlGNjsxMTA2IDExNjIgMTFCOTtCOUY2OzExMDYgMTE2MiAxMUI5OworQjlGNztCOUY3OzExMDYgMTE2MiAxMUJBO0I5Rjc7MTEwNiAxMTYyIDExQkE7CitCOUY4O0I5Rjg7MTEwNiAxMTYyIDExQkI7QjlGODsxMTA2IDExNjIgMTFCQjsKK0I5Rjk7QjlGOTsxMTA2IDExNjIgMTFCQztCOUY5OzExMDYgMTE2MiAxMUJDOworQjlGQTtCOUZBOzExMDYgMTE2MiAxMUJEO0I5RkE7MTEwNiAxMTYyIDExQkQ7CitCOUZCO0I5RkI7MTEwNiAxMTYyIDExQkU7QjlGQjsxMTA2IDExNjIgMTFCRTsKK0I5RkM7QjlGQzsxMTA2IDExNjIgMTFCRjtCOUZDOzExMDYgMTE2MiAxMUJGOworQjlGRDtCOUZEOzExMDYgMTE2MiAxMUMwO0I5RkQ7MTEwNiAxMTYyIDExQzA7CitCOUZFO0I5RkU7MTEwNiAxMTYyIDExQzE7QjlGRTsxMTA2IDExNjIgMTFDMTsKK0I5RkY7QjlGRjsxMTA2IDExNjIgMTFDMjtCOUZGOzExMDYgMTE2MiAxMUMyOworQkEwMDtCQTAwOzExMDYgMTE2MztCQTAwOzExMDYgMTE2MzsKK0JBMDE7QkEwMTsxMTA2IDExNjMgMTFBODtCQTAxOzExMDYgMTE2MyAxMUE4OworQkEwMjtCQTAyOzExMDYgMTE2MyAxMUE5O0JBMDI7MTEwNiAxMTYzIDExQTk7CitCQTAzO0JBMDM7MTEwNiAxMTYzIDExQUE7QkEwMzsxMTA2IDExNjMgMTFBQTsKK0JBMDQ7QkEwNDsxMTA2IDExNjMgMTFBQjtCQTA0OzExMDYgMTE2MyAxMUFCOworQkEwNTtCQTA1OzExMDYgMTE2MyAxMUFDO0JBMDU7MTEwNiAxMTYzIDExQUM7CitCQTA2O0JBMDY7MTEwNiAxMTYzIDExQUQ7QkEwNjsxMTA2IDExNjMgMTFBRDsKK0JBMDc7QkEwNzsxMTA2IDExNjMgMTFBRTtCQTA3OzExMDYgMTE2MyAxMUFFOworQkEwODtCQTA4OzExMDYgMTE2MyAxMUFGO0JBMDg7MTEwNiAxMTYzIDExQUY7CitCQTA5O0JBMDk7MTEwNiAxMTYzIDExQjA7QkEwOTsxMTA2IDExNjMgMTFCMDsKK0JBMEE7QkEwQTsxMTA2IDExNjMgMTFCMTtCQTBBOzExMDYgMTE2MyAxMUIxOworQkEwQjtCQTBCOzExMDYgMTE2MyAxMUIyO0JBMEI7MTEwNiAxMTYzIDExQjI7CitCQTBDO0JBMEM7MTEwNiAxMTYzIDExQjM7QkEwQzsxMTA2IDExNjMgMTFCMzsKK0JBMEQ7QkEwRDsxMTA2IDExNjMgMTFCNDtCQTBEOzExMDYgMTE2MyAxMUI0OworQkEwRTtCQTBFOzExMDYgMTE2MyAxMUI1O0JBMEU7MTEwNiAxMTYzIDExQjU7CitCQTBGO0JBMEY7MTEwNiAxMTYzIDExQjY7QkEwRjsxMTA2IDExNjMgMTFCNjsKK0JBMTA7QkExMDsxMTA2IDExNjMgMTFCNztCQTEwOzExMDYgMTE2MyAxMUI3OworQkExMTtCQTExOzExMDYgMTE2MyAxMUI4O0JBMTE7MTEwNiAxMTYzIDExQjg7CitCQTEyO0JBMTI7MTEwNiAxMTYzIDExQjk7QkExMjsxMTA2IDExNjMgMTFCOTsKK0JBMTM7QkExMzsxMTA2IDExNjMgMTFCQTtCQTEzOzExMDYgMTE2MyAxMUJBOworQkExNDtCQTE0OzExMDYgMTE2MyAxMUJCO0JBMTQ7MTEwNiAxMTYzIDExQkI7CitCQTE1O0JBMTU7MTEwNiAxMTYzIDExQkM7QkExNTsxMTA2IDExNjMgMTFCQzsKK0JBMTY7QkExNjsxMTA2IDExNjMgMTFCRDtCQTE2OzExMDYgMTE2MyAxMUJEOworQkExNztCQTE3OzExMDYgMTE2MyAxMUJFO0JBMTc7MTEwNiAxMTYzIDExQkU7CitCQTE4O0JBMTg7MTEwNiAxMTYzIDExQkY7QkExODsxMTA2IDExNjMgMTFCRjsKK0JBMTk7QkExOTsxMTA2IDExNjMgMTFDMDtCQTE5OzExMDYgMTE2MyAxMUMwOworQkExQTtCQTFBOzExMDYgMTE2MyAxMUMxO0JBMUE7MTEwNiAxMTYzIDExQzE7CitCQTFCO0JBMUI7MTEwNiAxMTYzIDExQzI7QkExQjsxMTA2IDExNjMgMTFDMjsKK0JBMUM7QkExQzsxMTA2IDExNjQ7QkExQzsxMTA2IDExNjQ7CitCQTFEO0JBMUQ7MTEwNiAxMTY0IDExQTg7QkExRDsxMTA2IDExNjQgMTFBODsKK0JBMUU7QkExRTsxMTA2IDExNjQgMTFBOTtCQTFFOzExMDYgMTE2NCAxMUE5OworQkExRjtCQTFGOzExMDYgMTE2NCAxMUFBO0JBMUY7MTEwNiAxMTY0IDExQUE7CitCQTIwO0JBMjA7MTEwNiAxMTY0IDExQUI7QkEyMDsxMTA2IDExNjQgMTFBQjsKK0JBMjE7QkEyMTsxMTA2IDExNjQgMTFBQztCQTIxOzExMDYgMTE2NCAxMUFDOworQkEyMjtCQTIyOzExMDYgMTE2NCAxMUFEO0JBMjI7MTEwNiAxMTY0IDExQUQ7CitCQTIzO0JBMjM7MTEwNiAxMTY0IDExQUU7QkEyMzsxMTA2IDExNjQgMTFBRTsKK0JBMjQ7QkEyNDsxMTA2IDExNjQgMTFBRjtCQTI0OzExMDYgMTE2NCAxMUFGOworQkEyNTtCQTI1OzExMDYgMTE2NCAxMUIwO0JBMjU7MTEwNiAxMTY0IDExQjA7CitCQTI2O0JBMjY7MTEwNiAxMTY0IDExQjE7QkEyNjsxMTA2IDExNjQgMTFCMTsKK0JBMjc7QkEyNzsxMTA2IDExNjQgMTFCMjtCQTI3OzExMDYgMTE2NCAxMUIyOworQkEyODtCQTI4OzExMDYgMTE2NCAxMUIzO0JBMjg7MTEwNiAxMTY0IDExQjM7CitCQTI5O0JBMjk7MTEwNiAxMTY0IDExQjQ7QkEyOTsxMTA2IDExNjQgMTFCNDsKK0JBMkE7QkEyQTsxMTA2IDExNjQgMTFCNTtCQTJBOzExMDYgMTE2NCAxMUI1OworQkEyQjtCQTJCOzExMDYgMTE2NCAxMUI2O0JBMkI7MTEwNiAxMTY0IDExQjY7CitCQTJDO0JBMkM7MTEwNiAxMTY0IDExQjc7QkEyQzsxMTA2IDExNjQgMTFCNzsKK0JBMkQ7QkEyRDsxMTA2IDExNjQgMTFCODtCQTJEOzExMDYgMTE2NCAxMUI4OworQkEyRTtCQTJFOzExMDYgMTE2NCAxMUI5O0JBMkU7MTEwNiAxMTY0IDExQjk7CitCQTJGO0JBMkY7MTEwNiAxMTY0IDExQkE7QkEyRjsxMTA2IDExNjQgMTFCQTsKK0JBMzA7QkEzMDsxMTA2IDExNjQgMTFCQjtCQTMwOzExMDYgMTE2NCAxMUJCOworQkEzMTtCQTMxOzExMDYgMTE2NCAxMUJDO0JBMzE7MTEwNiAxMTY0IDExQkM7CitCQTMyO0JBMzI7MTEwNiAxMTY0IDExQkQ7QkEzMjsxMTA2IDExNjQgMTFCRDsKK0JBMzM7QkEzMzsxMTA2IDExNjQgMTFCRTtCQTMzOzExMDYgMTE2NCAxMUJFOworQkEzNDtCQTM0OzExMDYgMTE2NCAxMUJGO0JBMzQ7MTEwNiAxMTY0IDExQkY7CitCQTM1O0JBMzU7MTEwNiAxMTY0IDExQzA7QkEzNTsxMTA2IDExNjQgMTFDMDsKK0JBMzY7QkEzNjsxMTA2IDExNjQgMTFDMTtCQTM2OzExMDYgMTE2NCAxMUMxOworQkEzNztCQTM3OzExMDYgMTE2NCAxMUMyO0JBMzc7MTEwNiAxMTY0IDExQzI7CitCQTM4O0JBMzg7MTEwNiAxMTY1O0JBMzg7MTEwNiAxMTY1OworQkEzOTtCQTM5OzExMDYgMTE2NSAxMUE4O0JBMzk7MTEwNiAxMTY1IDExQTg7CitCQTNBO0JBM0E7MTEwNiAxMTY1IDExQTk7QkEzQTsxMTA2IDExNjUgMTFBOTsKK0JBM0I7QkEzQjsxMTA2IDExNjUgMTFBQTtCQTNCOzExMDYgMTE2NSAxMUFBOworQkEzQztCQTNDOzExMDYgMTE2NSAxMUFCO0JBM0M7MTEwNiAxMTY1IDExQUI7CitCQTNEO0JBM0Q7MTEwNiAxMTY1IDExQUM7QkEzRDsxMTA2IDExNjUgMTFBQzsKK0JBM0U7QkEzRTsxMTA2IDExNjUgMTFBRDtCQTNFOzExMDYgMTE2NSAxMUFEOworQkEzRjtCQTNGOzExMDYgMTE2NSAxMUFFO0JBM0Y7MTEwNiAxMTY1IDExQUU7CitCQTQwO0JBNDA7MTEwNiAxMTY1IDExQUY7QkE0MDsxMTA2IDExNjUgMTFBRjsKK0JBNDE7QkE0MTsxMTA2IDExNjUgMTFCMDtCQTQxOzExMDYgMTE2NSAxMUIwOworQkE0MjtCQTQyOzExMDYgMTE2NSAxMUIxO0JBNDI7MTEwNiAxMTY1IDExQjE7CitCQTQzO0JBNDM7MTEwNiAxMTY1IDExQjI7QkE0MzsxMTA2IDExNjUgMTFCMjsKK0JBNDQ7QkE0NDsxMTA2IDExNjUgMTFCMztCQTQ0OzExMDYgMTE2NSAxMUIzOworQkE0NTtCQTQ1OzExMDYgMTE2NSAxMUI0O0JBNDU7MTEwNiAxMTY1IDExQjQ7CitCQTQ2O0JBNDY7MTEwNiAxMTY1IDExQjU7QkE0NjsxMTA2IDExNjUgMTFCNTsKK0JBNDc7QkE0NzsxMTA2IDExNjUgMTFCNjtCQTQ3OzExMDYgMTE2NSAxMUI2OworQkE0ODtCQTQ4OzExMDYgMTE2NSAxMUI3O0JBNDg7MTEwNiAxMTY1IDExQjc7CitCQTQ5O0JBNDk7MTEwNiAxMTY1IDExQjg7QkE0OTsxMTA2IDExNjUgMTFCODsKK0JBNEE7QkE0QTsxMTA2IDExNjUgMTFCOTtCQTRBOzExMDYgMTE2NSAxMUI5OworQkE0QjtCQTRCOzExMDYgMTE2NSAxMUJBO0JBNEI7MTEwNiAxMTY1IDExQkE7CitCQTRDO0JBNEM7MTEwNiAxMTY1IDExQkI7QkE0QzsxMTA2IDExNjUgMTFCQjsKK0JBNEQ7QkE0RDsxMTA2IDExNjUgMTFCQztCQTREOzExMDYgMTE2NSAxMUJDOworQkE0RTtCQTRFOzExMDYgMTE2NSAxMUJEO0JBNEU7MTEwNiAxMTY1IDExQkQ7CitCQTRGO0JBNEY7MTEwNiAxMTY1IDExQkU7QkE0RjsxMTA2IDExNjUgMTFCRTsKK0JBNTA7QkE1MDsxMTA2IDExNjUgMTFCRjtCQTUwOzExMDYgMTE2NSAxMUJGOworQkE1MTtCQTUxOzExMDYgMTE2NSAxMUMwO0JBNTE7MTEwNiAxMTY1IDExQzA7CitCQTUyO0JBNTI7MTEwNiAxMTY1IDExQzE7QkE1MjsxMTA2IDExNjUgMTFDMTsKK0JBNTM7QkE1MzsxMTA2IDExNjUgMTFDMjtCQTUzOzExMDYgMTE2NSAxMUMyOworQkE1NDtCQTU0OzExMDYgMTE2NjtCQTU0OzExMDYgMTE2NjsKK0JBNTU7QkE1NTsxMTA2IDExNjYgMTFBODtCQTU1OzExMDYgMTE2NiAxMUE4OworQkE1NjtCQTU2OzExMDYgMTE2NiAxMUE5O0JBNTY7MTEwNiAxMTY2IDExQTk7CitCQTU3O0JBNTc7MTEwNiAxMTY2IDExQUE7QkE1NzsxMTA2IDExNjYgMTFBQTsKK0JBNTg7QkE1ODsxMTA2IDExNjYgMTFBQjtCQTU4OzExMDYgMTE2NiAxMUFCOworQkE1OTtCQTU5OzExMDYgMTE2NiAxMUFDO0JBNTk7MTEwNiAxMTY2IDExQUM7CitCQTVBO0JBNUE7MTEwNiAxMTY2IDExQUQ7QkE1QTsxMTA2IDExNjYgMTFBRDsKK0JBNUI7QkE1QjsxMTA2IDExNjYgMTFBRTtCQTVCOzExMDYgMTE2NiAxMUFFOworQkE1QztCQTVDOzExMDYgMTE2NiAxMUFGO0JBNUM7MTEwNiAxMTY2IDExQUY7CitCQTVEO0JBNUQ7MTEwNiAxMTY2IDExQjA7QkE1RDsxMTA2IDExNjYgMTFCMDsKK0JBNUU7QkE1RTsxMTA2IDExNjYgMTFCMTtCQTVFOzExMDYgMTE2NiAxMUIxOworQkE1RjtCQTVGOzExMDYgMTE2NiAxMUIyO0JBNUY7MTEwNiAxMTY2IDExQjI7CitCQTYwO0JBNjA7MTEwNiAxMTY2IDExQjM7QkE2MDsxMTA2IDExNjYgMTFCMzsKK0JBNjE7QkE2MTsxMTA2IDExNjYgMTFCNDtCQTYxOzExMDYgMTE2NiAxMUI0OworQkE2MjtCQTYyOzExMDYgMTE2NiAxMUI1O0JBNjI7MTEwNiAxMTY2IDExQjU7CitCQTYzO0JBNjM7MTEwNiAxMTY2IDExQjY7QkE2MzsxMTA2IDExNjYgMTFCNjsKK0JBNjQ7QkE2NDsxMTA2IDExNjYgMTFCNztCQTY0OzExMDYgMTE2NiAxMUI3OworQkE2NTtCQTY1OzExMDYgMTE2NiAxMUI4O0JBNjU7MTEwNiAxMTY2IDExQjg7CitCQTY2O0JBNjY7MTEwNiAxMTY2IDExQjk7QkE2NjsxMTA2IDExNjYgMTFCOTsKK0JBNjc7QkE2NzsxMTA2IDExNjYgMTFCQTtCQTY3OzExMDYgMTE2NiAxMUJBOworQkE2ODtCQTY4OzExMDYgMTE2NiAxMUJCO0JBNjg7MTEwNiAxMTY2IDExQkI7CitCQTY5O0JBNjk7MTEwNiAxMTY2IDExQkM7QkE2OTsxMTA2IDExNjYgMTFCQzsKK0JBNkE7QkE2QTsxMTA2IDExNjYgMTFCRDtCQTZBOzExMDYgMTE2NiAxMUJEOworQkE2QjtCQTZCOzExMDYgMTE2NiAxMUJFO0JBNkI7MTEwNiAxMTY2IDExQkU7CitCQTZDO0JBNkM7MTEwNiAxMTY2IDExQkY7QkE2QzsxMTA2IDExNjYgMTFCRjsKK0JBNkQ7QkE2RDsxMTA2IDExNjYgMTFDMDtCQTZEOzExMDYgMTE2NiAxMUMwOworQkE2RTtCQTZFOzExMDYgMTE2NiAxMUMxO0JBNkU7MTEwNiAxMTY2IDExQzE7CitCQTZGO0JBNkY7MTEwNiAxMTY2IDExQzI7QkE2RjsxMTA2IDExNjYgMTFDMjsKK0JBNzA7QkE3MDsxMTA2IDExNjc7QkE3MDsxMTA2IDExNjc7CitCQTcxO0JBNzE7MTEwNiAxMTY3IDExQTg7QkE3MTsxMTA2IDExNjcgMTFBODsKK0JBNzI7QkE3MjsxMTA2IDExNjcgMTFBOTtCQTcyOzExMDYgMTE2NyAxMUE5OworQkE3MztCQTczOzExMDYgMTE2NyAxMUFBO0JBNzM7MTEwNiAxMTY3IDExQUE7CitCQTc0O0JBNzQ7MTEwNiAxMTY3IDExQUI7QkE3NDsxMTA2IDExNjcgMTFBQjsKK0JBNzU7QkE3NTsxMTA2IDExNjcgMTFBQztCQTc1OzExMDYgMTE2NyAxMUFDOworQkE3NjtCQTc2OzExMDYgMTE2NyAxMUFEO0JBNzY7MTEwNiAxMTY3IDExQUQ7CitCQTc3O0JBNzc7MTEwNiAxMTY3IDExQUU7QkE3NzsxMTA2IDExNjcgMTFBRTsKK0JBNzg7QkE3ODsxMTA2IDExNjcgMTFBRjtCQTc4OzExMDYgMTE2NyAxMUFGOworQkE3OTtCQTc5OzExMDYgMTE2NyAxMUIwO0JBNzk7MTEwNiAxMTY3IDExQjA7CitCQTdBO0JBN0E7MTEwNiAxMTY3IDExQjE7QkE3QTsxMTA2IDExNjcgMTFCMTsKK0JBN0I7QkE3QjsxMTA2IDExNjcgMTFCMjtCQTdCOzExMDYgMTE2NyAxMUIyOworQkE3QztCQTdDOzExMDYgMTE2NyAxMUIzO0JBN0M7MTEwNiAxMTY3IDExQjM7CitCQTdEO0JBN0Q7MTEwNiAxMTY3IDExQjQ7QkE3RDsxMTA2IDExNjcgMTFCNDsKK0JBN0U7QkE3RTsxMTA2IDExNjcgMTFCNTtCQTdFOzExMDYgMTE2NyAxMUI1OworQkE3RjtCQTdGOzExMDYgMTE2NyAxMUI2O0JBN0Y7MTEwNiAxMTY3IDExQjY7CitCQTgwO0JBODA7MTEwNiAxMTY3IDExQjc7QkE4MDsxMTA2IDExNjcgMTFCNzsKK0JBODE7QkE4MTsxMTA2IDExNjcgMTFCODtCQTgxOzExMDYgMTE2NyAxMUI4OworQkE4MjtCQTgyOzExMDYgMTE2NyAxMUI5O0JBODI7MTEwNiAxMTY3IDExQjk7CitCQTgzO0JBODM7MTEwNiAxMTY3IDExQkE7QkE4MzsxMTA2IDExNjcgMTFCQTsKK0JBODQ7QkE4NDsxMTA2IDExNjcgMTFCQjtCQTg0OzExMDYgMTE2NyAxMUJCOworQkE4NTtCQTg1OzExMDYgMTE2NyAxMUJDO0JBODU7MTEwNiAxMTY3IDExQkM7CitCQTg2O0JBODY7MTEwNiAxMTY3IDExQkQ7QkE4NjsxMTA2IDExNjcgMTFCRDsKK0JBODc7QkE4NzsxMTA2IDExNjcgMTFCRTtCQTg3OzExMDYgMTE2NyAxMUJFOworQkE4ODtCQTg4OzExMDYgMTE2NyAxMUJGO0JBODg7MTEwNiAxMTY3IDExQkY7CitCQTg5O0JBODk7MTEwNiAxMTY3IDExQzA7QkE4OTsxMTA2IDExNjcgMTFDMDsKK0JBOEE7QkE4QTsxMTA2IDExNjcgMTFDMTtCQThBOzExMDYgMTE2NyAxMUMxOworQkE4QjtCQThCOzExMDYgMTE2NyAxMUMyO0JBOEI7MTEwNiAxMTY3IDExQzI7CitCQThDO0JBOEM7MTEwNiAxMTY4O0JBOEM7MTEwNiAxMTY4OworQkE4RDtCQThEOzExMDYgMTE2OCAxMUE4O0JBOEQ7MTEwNiAxMTY4IDExQTg7CitCQThFO0JBOEU7MTEwNiAxMTY4IDExQTk7QkE4RTsxMTA2IDExNjggMTFBOTsKK0JBOEY7QkE4RjsxMTA2IDExNjggMTFBQTtCQThGOzExMDYgMTE2OCAxMUFBOworQkE5MDtCQTkwOzExMDYgMTE2OCAxMUFCO0JBOTA7MTEwNiAxMTY4IDExQUI7CitCQTkxO0JBOTE7MTEwNiAxMTY4IDExQUM7QkE5MTsxMTA2IDExNjggMTFBQzsKK0JBOTI7QkE5MjsxMTA2IDExNjggMTFBRDtCQTkyOzExMDYgMTE2OCAxMUFEOworQkE5MztCQTkzOzExMDYgMTE2OCAxMUFFO0JBOTM7MTEwNiAxMTY4IDExQUU7CitCQTk0O0JBOTQ7MTEwNiAxMTY4IDExQUY7QkE5NDsxMTA2IDExNjggMTFBRjsKK0JBOTU7QkE5NTsxMTA2IDExNjggMTFCMDtCQTk1OzExMDYgMTE2OCAxMUIwOworQkE5NjtCQTk2OzExMDYgMTE2OCAxMUIxO0JBOTY7MTEwNiAxMTY4IDExQjE7CitCQTk3O0JBOTc7MTEwNiAxMTY4IDExQjI7QkE5NzsxMTA2IDExNjggMTFCMjsKK0JBOTg7QkE5ODsxMTA2IDExNjggMTFCMztCQTk4OzExMDYgMTE2OCAxMUIzOworQkE5OTtCQTk5OzExMDYgMTE2OCAxMUI0O0JBOTk7MTEwNiAxMTY4IDExQjQ7CitCQTlBO0JBOUE7MTEwNiAxMTY4IDExQjU7QkE5QTsxMTA2IDExNjggMTFCNTsKK0JBOUI7QkE5QjsxMTA2IDExNjggMTFCNjtCQTlCOzExMDYgMTE2OCAxMUI2OworQkE5QztCQTlDOzExMDYgMTE2OCAxMUI3O0JBOUM7MTEwNiAxMTY4IDExQjc7CitCQTlEO0JBOUQ7MTEwNiAxMTY4IDExQjg7QkE5RDsxMTA2IDExNjggMTFCODsKK0JBOUU7QkE5RTsxMTA2IDExNjggMTFCOTtCQTlFOzExMDYgMTE2OCAxMUI5OworQkE5RjtCQTlGOzExMDYgMTE2OCAxMUJBO0JBOUY7MTEwNiAxMTY4IDExQkE7CitCQUEwO0JBQTA7MTEwNiAxMTY4IDExQkI7QkFBMDsxMTA2IDExNjggMTFCQjsKK0JBQTE7QkFBMTsxMTA2IDExNjggMTFCQztCQUExOzExMDYgMTE2OCAxMUJDOworQkFBMjtCQUEyOzExMDYgMTE2OCAxMUJEO0JBQTI7MTEwNiAxMTY4IDExQkQ7CitCQUEzO0JBQTM7MTEwNiAxMTY4IDExQkU7QkFBMzsxMTA2IDExNjggMTFCRTsKK0JBQTQ7QkFBNDsxMTA2IDExNjggMTFCRjtCQUE0OzExMDYgMTE2OCAxMUJGOworQkFBNTtCQUE1OzExMDYgMTE2OCAxMUMwO0JBQTU7MTEwNiAxMTY4IDExQzA7CitCQUE2O0JBQTY7MTEwNiAxMTY4IDExQzE7QkFBNjsxMTA2IDExNjggMTFDMTsKK0JBQTc7QkFBNzsxMTA2IDExNjggMTFDMjtCQUE3OzExMDYgMTE2OCAxMUMyOworQkFBODtCQUE4OzExMDYgMTE2OTtCQUE4OzExMDYgMTE2OTsKK0JBQTk7QkFBOTsxMTA2IDExNjkgMTFBODtCQUE5OzExMDYgMTE2OSAxMUE4OworQkFBQTtCQUFBOzExMDYgMTE2OSAxMUE5O0JBQUE7MTEwNiAxMTY5IDExQTk7CitCQUFCO0JBQUI7MTEwNiAxMTY5IDExQUE7QkFBQjsxMTA2IDExNjkgMTFBQTsKK0JBQUM7QkFBQzsxMTA2IDExNjkgMTFBQjtCQUFDOzExMDYgMTE2OSAxMUFCOworQkFBRDtCQUFEOzExMDYgMTE2OSAxMUFDO0JBQUQ7MTEwNiAxMTY5IDExQUM7CitCQUFFO0JBQUU7MTEwNiAxMTY5IDExQUQ7QkFBRTsxMTA2IDExNjkgMTFBRDsKK0JBQUY7QkFBRjsxMTA2IDExNjkgMTFBRTtCQUFGOzExMDYgMTE2OSAxMUFFOworQkFCMDtCQUIwOzExMDYgMTE2OSAxMUFGO0JBQjA7MTEwNiAxMTY5IDExQUY7CitCQUIxO0JBQjE7MTEwNiAxMTY5IDExQjA7QkFCMTsxMTA2IDExNjkgMTFCMDsKK0JBQjI7QkFCMjsxMTA2IDExNjkgMTFCMTtCQUIyOzExMDYgMTE2OSAxMUIxOworQkFCMztCQUIzOzExMDYgMTE2OSAxMUIyO0JBQjM7MTEwNiAxMTY5IDExQjI7CitCQUI0O0JBQjQ7MTEwNiAxMTY5IDExQjM7QkFCNDsxMTA2IDExNjkgMTFCMzsKK0JBQjU7QkFCNTsxMTA2IDExNjkgMTFCNDtCQUI1OzExMDYgMTE2OSAxMUI0OworQkFCNjtCQUI2OzExMDYgMTE2OSAxMUI1O0JBQjY7MTEwNiAxMTY5IDExQjU7CitCQUI3O0JBQjc7MTEwNiAxMTY5IDExQjY7QkFCNzsxMTA2IDExNjkgMTFCNjsKK0JBQjg7QkFCODsxMTA2IDExNjkgMTFCNztCQUI4OzExMDYgMTE2OSAxMUI3OworQkFCOTtCQUI5OzExMDYgMTE2OSAxMUI4O0JBQjk7MTEwNiAxMTY5IDExQjg7CitCQUJBO0JBQkE7MTEwNiAxMTY5IDExQjk7QkFCQTsxMTA2IDExNjkgMTFCOTsKK0JBQkI7QkFCQjsxMTA2IDExNjkgMTFCQTtCQUJCOzExMDYgMTE2OSAxMUJBOworQkFCQztCQUJDOzExMDYgMTE2OSAxMUJCO0JBQkM7MTEwNiAxMTY5IDExQkI7CitCQUJEO0JBQkQ7MTEwNiAxMTY5IDExQkM7QkFCRDsxMTA2IDExNjkgMTFCQzsKK0JBQkU7QkFCRTsxMTA2IDExNjkgMTFCRDtCQUJFOzExMDYgMTE2OSAxMUJEOworQkFCRjtCQUJGOzExMDYgMTE2OSAxMUJFO0JBQkY7MTEwNiAxMTY5IDExQkU7CitCQUMwO0JBQzA7MTEwNiAxMTY5IDExQkY7QkFDMDsxMTA2IDExNjkgMTFCRjsKK0JBQzE7QkFDMTsxMTA2IDExNjkgMTFDMDtCQUMxOzExMDYgMTE2OSAxMUMwOworQkFDMjtCQUMyOzExMDYgMTE2OSAxMUMxO0JBQzI7MTEwNiAxMTY5IDExQzE7CitCQUMzO0JBQzM7MTEwNiAxMTY5IDExQzI7QkFDMzsxMTA2IDExNjkgMTFDMjsKK0JBQzQ7QkFDNDsxMTA2IDExNkE7QkFDNDsxMTA2IDExNkE7CitCQUM1O0JBQzU7MTEwNiAxMTZBIDExQTg7QkFDNTsxMTA2IDExNkEgMTFBODsKK0JBQzY7QkFDNjsxMTA2IDExNkEgMTFBOTtCQUM2OzExMDYgMTE2QSAxMUE5OworQkFDNztCQUM3OzExMDYgMTE2QSAxMUFBO0JBQzc7MTEwNiAxMTZBIDExQUE7CitCQUM4O0JBQzg7MTEwNiAxMTZBIDExQUI7QkFDODsxMTA2IDExNkEgMTFBQjsKK0JBQzk7QkFDOTsxMTA2IDExNkEgMTFBQztCQUM5OzExMDYgMTE2QSAxMUFDOworQkFDQTtCQUNBOzExMDYgMTE2QSAxMUFEO0JBQ0E7MTEwNiAxMTZBIDExQUQ7CitCQUNCO0JBQ0I7MTEwNiAxMTZBIDExQUU7QkFDQjsxMTA2IDExNkEgMTFBRTsKK0JBQ0M7QkFDQzsxMTA2IDExNkEgMTFBRjtCQUNDOzExMDYgMTE2QSAxMUFGOworQkFDRDtCQUNEOzExMDYgMTE2QSAxMUIwO0JBQ0Q7MTEwNiAxMTZBIDExQjA7CitCQUNFO0JBQ0U7MTEwNiAxMTZBIDExQjE7QkFDRTsxMTA2IDExNkEgMTFCMTsKK0JBQ0Y7QkFDRjsxMTA2IDExNkEgMTFCMjtCQUNGOzExMDYgMTE2QSAxMUIyOworQkFEMDtCQUQwOzExMDYgMTE2QSAxMUIzO0JBRDA7MTEwNiAxMTZBIDExQjM7CitCQUQxO0JBRDE7MTEwNiAxMTZBIDExQjQ7QkFEMTsxMTA2IDExNkEgMTFCNDsKK0JBRDI7QkFEMjsxMTA2IDExNkEgMTFCNTtCQUQyOzExMDYgMTE2QSAxMUI1OworQkFEMztCQUQzOzExMDYgMTE2QSAxMUI2O0JBRDM7MTEwNiAxMTZBIDExQjY7CitCQUQ0O0JBRDQ7MTEwNiAxMTZBIDExQjc7QkFENDsxMTA2IDExNkEgMTFCNzsKK0JBRDU7QkFENTsxMTA2IDExNkEgMTFCODtCQUQ1OzExMDYgMTE2QSAxMUI4OworQkFENjtCQUQ2OzExMDYgMTE2QSAxMUI5O0JBRDY7MTEwNiAxMTZBIDExQjk7CitCQUQ3O0JBRDc7MTEwNiAxMTZBIDExQkE7QkFENzsxMTA2IDExNkEgMTFCQTsKK0JBRDg7QkFEODsxMTA2IDExNkEgMTFCQjtCQUQ4OzExMDYgMTE2QSAxMUJCOworQkFEOTtCQUQ5OzExMDYgMTE2QSAxMUJDO0JBRDk7MTEwNiAxMTZBIDExQkM7CitCQURBO0JBREE7MTEwNiAxMTZBIDExQkQ7QkFEQTsxMTA2IDExNkEgMTFCRDsKK0JBREI7QkFEQjsxMTA2IDExNkEgMTFCRTtCQURCOzExMDYgMTE2QSAxMUJFOworQkFEQztCQURDOzExMDYgMTE2QSAxMUJGO0JBREM7MTEwNiAxMTZBIDExQkY7CitCQUREO0JBREQ7MTEwNiAxMTZBIDExQzA7QkFERDsxMTA2IDExNkEgMTFDMDsKK0JBREU7QkFERTsxMTA2IDExNkEgMTFDMTtCQURFOzExMDYgMTE2QSAxMUMxOworQkFERjtCQURGOzExMDYgMTE2QSAxMUMyO0JBREY7MTEwNiAxMTZBIDExQzI7CitCQUUwO0JBRTA7MTEwNiAxMTZCO0JBRTA7MTEwNiAxMTZCOworQkFFMTtCQUUxOzExMDYgMTE2QiAxMUE4O0JBRTE7MTEwNiAxMTZCIDExQTg7CitCQUUyO0JBRTI7MTEwNiAxMTZCIDExQTk7QkFFMjsxMTA2IDExNkIgMTFBOTsKK0JBRTM7QkFFMzsxMTA2IDExNkIgMTFBQTtCQUUzOzExMDYgMTE2QiAxMUFBOworQkFFNDtCQUU0OzExMDYgMTE2QiAxMUFCO0JBRTQ7MTEwNiAxMTZCIDExQUI7CitCQUU1O0JBRTU7MTEwNiAxMTZCIDExQUM7QkFFNTsxMTA2IDExNkIgMTFBQzsKK0JBRTY7QkFFNjsxMTA2IDExNkIgMTFBRDtCQUU2OzExMDYgMTE2QiAxMUFEOworQkFFNztCQUU3OzExMDYgMTE2QiAxMUFFO0JBRTc7MTEwNiAxMTZCIDExQUU7CitCQUU4O0JBRTg7MTEwNiAxMTZCIDExQUY7QkFFODsxMTA2IDExNkIgMTFBRjsKK0JBRTk7QkFFOTsxMTA2IDExNkIgMTFCMDtCQUU5OzExMDYgMTE2QiAxMUIwOworQkFFQTtCQUVBOzExMDYgMTE2QiAxMUIxO0JBRUE7MTEwNiAxMTZCIDExQjE7CitCQUVCO0JBRUI7MTEwNiAxMTZCIDExQjI7QkFFQjsxMTA2IDExNkIgMTFCMjsKK0JBRUM7QkFFQzsxMTA2IDExNkIgMTFCMztCQUVDOzExMDYgMTE2QiAxMUIzOworQkFFRDtCQUVEOzExMDYgMTE2QiAxMUI0O0JBRUQ7MTEwNiAxMTZCIDExQjQ7CitCQUVFO0JBRUU7MTEwNiAxMTZCIDExQjU7QkFFRTsxMTA2IDExNkIgMTFCNTsKK0JBRUY7QkFFRjsxMTA2IDExNkIgMTFCNjtCQUVGOzExMDYgMTE2QiAxMUI2OworQkFGMDtCQUYwOzExMDYgMTE2QiAxMUI3O0JBRjA7MTEwNiAxMTZCIDExQjc7CitCQUYxO0JBRjE7MTEwNiAxMTZCIDExQjg7QkFGMTsxMTA2IDExNkIgMTFCODsKK0JBRjI7QkFGMjsxMTA2IDExNkIgMTFCOTtCQUYyOzExMDYgMTE2QiAxMUI5OworQkFGMztCQUYzOzExMDYgMTE2QiAxMUJBO0JBRjM7MTEwNiAxMTZCIDExQkE7CitCQUY0O0JBRjQ7MTEwNiAxMTZCIDExQkI7QkFGNDsxMTA2IDExNkIgMTFCQjsKK0JBRjU7QkFGNTsxMTA2IDExNkIgMTFCQztCQUY1OzExMDYgMTE2QiAxMUJDOworQkFGNjtCQUY2OzExMDYgMTE2QiAxMUJEO0JBRjY7MTEwNiAxMTZCIDExQkQ7CitCQUY3O0JBRjc7MTEwNiAxMTZCIDExQkU7QkFGNzsxMTA2IDExNkIgMTFCRTsKK0JBRjg7QkFGODsxMTA2IDExNkIgMTFCRjtCQUY4OzExMDYgMTE2QiAxMUJGOworQkFGOTtCQUY5OzExMDYgMTE2QiAxMUMwO0JBRjk7MTEwNiAxMTZCIDExQzA7CitCQUZBO0JBRkE7MTEwNiAxMTZCIDExQzE7QkFGQTsxMTA2IDExNkIgMTFDMTsKK0JBRkI7QkFGQjsxMTA2IDExNkIgMTFDMjtCQUZCOzExMDYgMTE2QiAxMUMyOworQkFGQztCQUZDOzExMDYgMTE2QztCQUZDOzExMDYgMTE2QzsKK0JBRkQ7QkFGRDsxMTA2IDExNkMgMTFBODtCQUZEOzExMDYgMTE2QyAxMUE4OworQkFGRTtCQUZFOzExMDYgMTE2QyAxMUE5O0JBRkU7MTEwNiAxMTZDIDExQTk7CitCQUZGO0JBRkY7MTEwNiAxMTZDIDExQUE7QkFGRjsxMTA2IDExNkMgMTFBQTsKK0JCMDA7QkIwMDsxMTA2IDExNkMgMTFBQjtCQjAwOzExMDYgMTE2QyAxMUFCOworQkIwMTtCQjAxOzExMDYgMTE2QyAxMUFDO0JCMDE7MTEwNiAxMTZDIDExQUM7CitCQjAyO0JCMDI7MTEwNiAxMTZDIDExQUQ7QkIwMjsxMTA2IDExNkMgMTFBRDsKK0JCMDM7QkIwMzsxMTA2IDExNkMgMTFBRTtCQjAzOzExMDYgMTE2QyAxMUFFOworQkIwNDtCQjA0OzExMDYgMTE2QyAxMUFGO0JCMDQ7MTEwNiAxMTZDIDExQUY7CitCQjA1O0JCMDU7MTEwNiAxMTZDIDExQjA7QkIwNTsxMTA2IDExNkMgMTFCMDsKK0JCMDY7QkIwNjsxMTA2IDExNkMgMTFCMTtCQjA2OzExMDYgMTE2QyAxMUIxOworQkIwNztCQjA3OzExMDYgMTE2QyAxMUIyO0JCMDc7MTEwNiAxMTZDIDExQjI7CitCQjA4O0JCMDg7MTEwNiAxMTZDIDExQjM7QkIwODsxMTA2IDExNkMgMTFCMzsKK0JCMDk7QkIwOTsxMTA2IDExNkMgMTFCNDtCQjA5OzExMDYgMTE2QyAxMUI0OworQkIwQTtCQjBBOzExMDYgMTE2QyAxMUI1O0JCMEE7MTEwNiAxMTZDIDExQjU7CitCQjBCO0JCMEI7MTEwNiAxMTZDIDExQjY7QkIwQjsxMTA2IDExNkMgMTFCNjsKK0JCMEM7QkIwQzsxMTA2IDExNkMgMTFCNztCQjBDOzExMDYgMTE2QyAxMUI3OworQkIwRDtCQjBEOzExMDYgMTE2QyAxMUI4O0JCMEQ7MTEwNiAxMTZDIDExQjg7CitCQjBFO0JCMEU7MTEwNiAxMTZDIDExQjk7QkIwRTsxMTA2IDExNkMgMTFCOTsKK0JCMEY7QkIwRjsxMTA2IDExNkMgMTFCQTtCQjBGOzExMDYgMTE2QyAxMUJBOworQkIxMDtCQjEwOzExMDYgMTE2QyAxMUJCO0JCMTA7MTEwNiAxMTZDIDExQkI7CitCQjExO0JCMTE7MTEwNiAxMTZDIDExQkM7QkIxMTsxMTA2IDExNkMgMTFCQzsKK0JCMTI7QkIxMjsxMTA2IDExNkMgMTFCRDtCQjEyOzExMDYgMTE2QyAxMUJEOworQkIxMztCQjEzOzExMDYgMTE2QyAxMUJFO0JCMTM7MTEwNiAxMTZDIDExQkU7CitCQjE0O0JCMTQ7MTEwNiAxMTZDIDExQkY7QkIxNDsxMTA2IDExNkMgMTFCRjsKK0JCMTU7QkIxNTsxMTA2IDExNkMgMTFDMDtCQjE1OzExMDYgMTE2QyAxMUMwOworQkIxNjtCQjE2OzExMDYgMTE2QyAxMUMxO0JCMTY7MTEwNiAxMTZDIDExQzE7CitCQjE3O0JCMTc7MTEwNiAxMTZDIDExQzI7QkIxNzsxMTA2IDExNkMgMTFDMjsKK0JCMTg7QkIxODsxMTA2IDExNkQ7QkIxODsxMTA2IDExNkQ7CitCQjE5O0JCMTk7MTEwNiAxMTZEIDExQTg7QkIxOTsxMTA2IDExNkQgMTFBODsKK0JCMUE7QkIxQTsxMTA2IDExNkQgMTFBOTtCQjFBOzExMDYgMTE2RCAxMUE5OworQkIxQjtCQjFCOzExMDYgMTE2RCAxMUFBO0JCMUI7MTEwNiAxMTZEIDExQUE7CitCQjFDO0JCMUM7MTEwNiAxMTZEIDExQUI7QkIxQzsxMTA2IDExNkQgMTFBQjsKK0JCMUQ7QkIxRDsxMTA2IDExNkQgMTFBQztCQjFEOzExMDYgMTE2RCAxMUFDOworQkIxRTtCQjFFOzExMDYgMTE2RCAxMUFEO0JCMUU7MTEwNiAxMTZEIDExQUQ7CitCQjFGO0JCMUY7MTEwNiAxMTZEIDExQUU7QkIxRjsxMTA2IDExNkQgMTFBRTsKK0JCMjA7QkIyMDsxMTA2IDExNkQgMTFBRjtCQjIwOzExMDYgMTE2RCAxMUFGOworQkIyMTtCQjIxOzExMDYgMTE2RCAxMUIwO0JCMjE7MTEwNiAxMTZEIDExQjA7CitCQjIyO0JCMjI7MTEwNiAxMTZEIDExQjE7QkIyMjsxMTA2IDExNkQgMTFCMTsKK0JCMjM7QkIyMzsxMTA2IDExNkQgMTFCMjtCQjIzOzExMDYgMTE2RCAxMUIyOworQkIyNDtCQjI0OzExMDYgMTE2RCAxMUIzO0JCMjQ7MTEwNiAxMTZEIDExQjM7CitCQjI1O0JCMjU7MTEwNiAxMTZEIDExQjQ7QkIyNTsxMTA2IDExNkQgMTFCNDsKK0JCMjY7QkIyNjsxMTA2IDExNkQgMTFCNTtCQjI2OzExMDYgMTE2RCAxMUI1OworQkIyNztCQjI3OzExMDYgMTE2RCAxMUI2O0JCMjc7MTEwNiAxMTZEIDExQjY7CitCQjI4O0JCMjg7MTEwNiAxMTZEIDExQjc7QkIyODsxMTA2IDExNkQgMTFCNzsKK0JCMjk7QkIyOTsxMTA2IDExNkQgMTFCODtCQjI5OzExMDYgMTE2RCAxMUI4OworQkIyQTtCQjJBOzExMDYgMTE2RCAxMUI5O0JCMkE7MTEwNiAxMTZEIDExQjk7CitCQjJCO0JCMkI7MTEwNiAxMTZEIDExQkE7QkIyQjsxMTA2IDExNkQgMTFCQTsKK0JCMkM7QkIyQzsxMTA2IDExNkQgMTFCQjtCQjJDOzExMDYgMTE2RCAxMUJCOworQkIyRDtCQjJEOzExMDYgMTE2RCAxMUJDO0JCMkQ7MTEwNiAxMTZEIDExQkM7CitCQjJFO0JCMkU7MTEwNiAxMTZEIDExQkQ7QkIyRTsxMTA2IDExNkQgMTFCRDsKK0JCMkY7QkIyRjsxMTA2IDExNkQgMTFCRTtCQjJGOzExMDYgMTE2RCAxMUJFOworQkIzMDtCQjMwOzExMDYgMTE2RCAxMUJGO0JCMzA7MTEwNiAxMTZEIDExQkY7CitCQjMxO0JCMzE7MTEwNiAxMTZEIDExQzA7QkIzMTsxMTA2IDExNkQgMTFDMDsKK0JCMzI7QkIzMjsxMTA2IDExNkQgMTFDMTtCQjMyOzExMDYgMTE2RCAxMUMxOworQkIzMztCQjMzOzExMDYgMTE2RCAxMUMyO0JCMzM7MTEwNiAxMTZEIDExQzI7CitCQjM0O0JCMzQ7MTEwNiAxMTZFO0JCMzQ7MTEwNiAxMTZFOworQkIzNTtCQjM1OzExMDYgMTE2RSAxMUE4O0JCMzU7MTEwNiAxMTZFIDExQTg7CitCQjM2O0JCMzY7MTEwNiAxMTZFIDExQTk7QkIzNjsxMTA2IDExNkUgMTFBOTsKK0JCMzc7QkIzNzsxMTA2IDExNkUgMTFBQTtCQjM3OzExMDYgMTE2RSAxMUFBOworQkIzODtCQjM4OzExMDYgMTE2RSAxMUFCO0JCMzg7MTEwNiAxMTZFIDExQUI7CitCQjM5O0JCMzk7MTEwNiAxMTZFIDExQUM7QkIzOTsxMTA2IDExNkUgMTFBQzsKK0JCM0E7QkIzQTsxMTA2IDExNkUgMTFBRDtCQjNBOzExMDYgMTE2RSAxMUFEOworQkIzQjtCQjNCOzExMDYgMTE2RSAxMUFFO0JCM0I7MTEwNiAxMTZFIDExQUU7CitCQjNDO0JCM0M7MTEwNiAxMTZFIDExQUY7QkIzQzsxMTA2IDExNkUgMTFBRjsKK0JCM0Q7QkIzRDsxMTA2IDExNkUgMTFCMDtCQjNEOzExMDYgMTE2RSAxMUIwOworQkIzRTtCQjNFOzExMDYgMTE2RSAxMUIxO0JCM0U7MTEwNiAxMTZFIDExQjE7CitCQjNGO0JCM0Y7MTEwNiAxMTZFIDExQjI7QkIzRjsxMTA2IDExNkUgMTFCMjsKK0JCNDA7QkI0MDsxMTA2IDExNkUgMTFCMztCQjQwOzExMDYgMTE2RSAxMUIzOworQkI0MTtCQjQxOzExMDYgMTE2RSAxMUI0O0JCNDE7MTEwNiAxMTZFIDExQjQ7CitCQjQyO0JCNDI7MTEwNiAxMTZFIDExQjU7QkI0MjsxMTA2IDExNkUgMTFCNTsKK0JCNDM7QkI0MzsxMTA2IDExNkUgMTFCNjtCQjQzOzExMDYgMTE2RSAxMUI2OworQkI0NDtCQjQ0OzExMDYgMTE2RSAxMUI3O0JCNDQ7MTEwNiAxMTZFIDExQjc7CitCQjQ1O0JCNDU7MTEwNiAxMTZFIDExQjg7QkI0NTsxMTA2IDExNkUgMTFCODsKK0JCNDY7QkI0NjsxMTA2IDExNkUgMTFCOTtCQjQ2OzExMDYgMTE2RSAxMUI5OworQkI0NztCQjQ3OzExMDYgMTE2RSAxMUJBO0JCNDc7MTEwNiAxMTZFIDExQkE7CitCQjQ4O0JCNDg7MTEwNiAxMTZFIDExQkI7QkI0ODsxMTA2IDExNkUgMTFCQjsKK0JCNDk7QkI0OTsxMTA2IDExNkUgMTFCQztCQjQ5OzExMDYgMTE2RSAxMUJDOworQkI0QTtCQjRBOzExMDYgMTE2RSAxMUJEO0JCNEE7MTEwNiAxMTZFIDExQkQ7CitCQjRCO0JCNEI7MTEwNiAxMTZFIDExQkU7QkI0QjsxMTA2IDExNkUgMTFCRTsKK0JCNEM7QkI0QzsxMTA2IDExNkUgMTFCRjtCQjRDOzExMDYgMTE2RSAxMUJGOworQkI0RDtCQjREOzExMDYgMTE2RSAxMUMwO0JCNEQ7MTEwNiAxMTZFIDExQzA7CitCQjRFO0JCNEU7MTEwNiAxMTZFIDExQzE7QkI0RTsxMTA2IDExNkUgMTFDMTsKK0JCNEY7QkI0RjsxMTA2IDExNkUgMTFDMjtCQjRGOzExMDYgMTE2RSAxMUMyOworQkI1MDtCQjUwOzExMDYgMTE2RjtCQjUwOzExMDYgMTE2RjsKK0JCNTE7QkI1MTsxMTA2IDExNkYgMTFBODtCQjUxOzExMDYgMTE2RiAxMUE4OworQkI1MjtCQjUyOzExMDYgMTE2RiAxMUE5O0JCNTI7MTEwNiAxMTZGIDExQTk7CitCQjUzO0JCNTM7MTEwNiAxMTZGIDExQUE7QkI1MzsxMTA2IDExNkYgMTFBQTsKK0JCNTQ7QkI1NDsxMTA2IDExNkYgMTFBQjtCQjU0OzExMDYgMTE2RiAxMUFCOworQkI1NTtCQjU1OzExMDYgMTE2RiAxMUFDO0JCNTU7MTEwNiAxMTZGIDExQUM7CitCQjU2O0JCNTY7MTEwNiAxMTZGIDExQUQ7QkI1NjsxMTA2IDExNkYgMTFBRDsKK0JCNTc7QkI1NzsxMTA2IDExNkYgMTFBRTtCQjU3OzExMDYgMTE2RiAxMUFFOworQkI1ODtCQjU4OzExMDYgMTE2RiAxMUFGO0JCNTg7MTEwNiAxMTZGIDExQUY7CitCQjU5O0JCNTk7MTEwNiAxMTZGIDExQjA7QkI1OTsxMTA2IDExNkYgMTFCMDsKK0JCNUE7QkI1QTsxMTA2IDExNkYgMTFCMTtCQjVBOzExMDYgMTE2RiAxMUIxOworQkI1QjtCQjVCOzExMDYgMTE2RiAxMUIyO0JCNUI7MTEwNiAxMTZGIDExQjI7CitCQjVDO0JCNUM7MTEwNiAxMTZGIDExQjM7QkI1QzsxMTA2IDExNkYgMTFCMzsKK0JCNUQ7QkI1RDsxMTA2IDExNkYgMTFCNDtCQjVEOzExMDYgMTE2RiAxMUI0OworQkI1RTtCQjVFOzExMDYgMTE2RiAxMUI1O0JCNUU7MTEwNiAxMTZGIDExQjU7CitCQjVGO0JCNUY7MTEwNiAxMTZGIDExQjY7QkI1RjsxMTA2IDExNkYgMTFCNjsKK0JCNjA7QkI2MDsxMTA2IDExNkYgMTFCNztCQjYwOzExMDYgMTE2RiAxMUI3OworQkI2MTtCQjYxOzExMDYgMTE2RiAxMUI4O0JCNjE7MTEwNiAxMTZGIDExQjg7CitCQjYyO0JCNjI7MTEwNiAxMTZGIDExQjk7QkI2MjsxMTA2IDExNkYgMTFCOTsKK0JCNjM7QkI2MzsxMTA2IDExNkYgMTFCQTtCQjYzOzExMDYgMTE2RiAxMUJBOworQkI2NDtCQjY0OzExMDYgMTE2RiAxMUJCO0JCNjQ7MTEwNiAxMTZGIDExQkI7CitCQjY1O0JCNjU7MTEwNiAxMTZGIDExQkM7QkI2NTsxMTA2IDExNkYgMTFCQzsKK0JCNjY7QkI2NjsxMTA2IDExNkYgMTFCRDtCQjY2OzExMDYgMTE2RiAxMUJEOworQkI2NztCQjY3OzExMDYgMTE2RiAxMUJFO0JCNjc7MTEwNiAxMTZGIDExQkU7CitCQjY4O0JCNjg7MTEwNiAxMTZGIDExQkY7QkI2ODsxMTA2IDExNkYgMTFCRjsKK0JCNjk7QkI2OTsxMTA2IDExNkYgMTFDMDtCQjY5OzExMDYgMTE2RiAxMUMwOworQkI2QTtCQjZBOzExMDYgMTE2RiAxMUMxO0JCNkE7MTEwNiAxMTZGIDExQzE7CitCQjZCO0JCNkI7MTEwNiAxMTZGIDExQzI7QkI2QjsxMTA2IDExNkYgMTFDMjsKK0JCNkM7QkI2QzsxMTA2IDExNzA7QkI2QzsxMTA2IDExNzA7CitCQjZEO0JCNkQ7MTEwNiAxMTcwIDExQTg7QkI2RDsxMTA2IDExNzAgMTFBODsKK0JCNkU7QkI2RTsxMTA2IDExNzAgMTFBOTtCQjZFOzExMDYgMTE3MCAxMUE5OworQkI2RjtCQjZGOzExMDYgMTE3MCAxMUFBO0JCNkY7MTEwNiAxMTcwIDExQUE7CitCQjcwO0JCNzA7MTEwNiAxMTcwIDExQUI7QkI3MDsxMTA2IDExNzAgMTFBQjsKK0JCNzE7QkI3MTsxMTA2IDExNzAgMTFBQztCQjcxOzExMDYgMTE3MCAxMUFDOworQkI3MjtCQjcyOzExMDYgMTE3MCAxMUFEO0JCNzI7MTEwNiAxMTcwIDExQUQ7CitCQjczO0JCNzM7MTEwNiAxMTcwIDExQUU7QkI3MzsxMTA2IDExNzAgMTFBRTsKK0JCNzQ7QkI3NDsxMTA2IDExNzAgMTFBRjtCQjc0OzExMDYgMTE3MCAxMUFGOworQkI3NTtCQjc1OzExMDYgMTE3MCAxMUIwO0JCNzU7MTEwNiAxMTcwIDExQjA7CitCQjc2O0JCNzY7MTEwNiAxMTcwIDExQjE7QkI3NjsxMTA2IDExNzAgMTFCMTsKK0JCNzc7QkI3NzsxMTA2IDExNzAgMTFCMjtCQjc3OzExMDYgMTE3MCAxMUIyOworQkI3ODtCQjc4OzExMDYgMTE3MCAxMUIzO0JCNzg7MTEwNiAxMTcwIDExQjM7CitCQjc5O0JCNzk7MTEwNiAxMTcwIDExQjQ7QkI3OTsxMTA2IDExNzAgMTFCNDsKK0JCN0E7QkI3QTsxMTA2IDExNzAgMTFCNTtCQjdBOzExMDYgMTE3MCAxMUI1OworQkI3QjtCQjdCOzExMDYgMTE3MCAxMUI2O0JCN0I7MTEwNiAxMTcwIDExQjY7CitCQjdDO0JCN0M7MTEwNiAxMTcwIDExQjc7QkI3QzsxMTA2IDExNzAgMTFCNzsKK0JCN0Q7QkI3RDsxMTA2IDExNzAgMTFCODtCQjdEOzExMDYgMTE3MCAxMUI4OworQkI3RTtCQjdFOzExMDYgMTE3MCAxMUI5O0JCN0U7MTEwNiAxMTcwIDExQjk7CitCQjdGO0JCN0Y7MTEwNiAxMTcwIDExQkE7QkI3RjsxMTA2IDExNzAgMTFCQTsKK0JCODA7QkI4MDsxMTA2IDExNzAgMTFCQjtCQjgwOzExMDYgMTE3MCAxMUJCOworQkI4MTtCQjgxOzExMDYgMTE3MCAxMUJDO0JCODE7MTEwNiAxMTcwIDExQkM7CitCQjgyO0JCODI7MTEwNiAxMTcwIDExQkQ7QkI4MjsxMTA2IDExNzAgMTFCRDsKK0JCODM7QkI4MzsxMTA2IDExNzAgMTFCRTtCQjgzOzExMDYgMTE3MCAxMUJFOworQkI4NDtCQjg0OzExMDYgMTE3MCAxMUJGO0JCODQ7MTEwNiAxMTcwIDExQkY7CitCQjg1O0JCODU7MTEwNiAxMTcwIDExQzA7QkI4NTsxMTA2IDExNzAgMTFDMDsKK0JCODY7QkI4NjsxMTA2IDExNzAgMTFDMTtCQjg2OzExMDYgMTE3MCAxMUMxOworQkI4NztCQjg3OzExMDYgMTE3MCAxMUMyO0JCODc7MTEwNiAxMTcwIDExQzI7CitCQjg4O0JCODg7MTEwNiAxMTcxO0JCODg7MTEwNiAxMTcxOworQkI4OTtCQjg5OzExMDYgMTE3MSAxMUE4O0JCODk7MTEwNiAxMTcxIDExQTg7CitCQjhBO0JCOEE7MTEwNiAxMTcxIDExQTk7QkI4QTsxMTA2IDExNzEgMTFBOTsKK0JCOEI7QkI4QjsxMTA2IDExNzEgMTFBQTtCQjhCOzExMDYgMTE3MSAxMUFBOworQkI4QztCQjhDOzExMDYgMTE3MSAxMUFCO0JCOEM7MTEwNiAxMTcxIDExQUI7CitCQjhEO0JCOEQ7MTEwNiAxMTcxIDExQUM7QkI4RDsxMTA2IDExNzEgMTFBQzsKK0JCOEU7QkI4RTsxMTA2IDExNzEgMTFBRDtCQjhFOzExMDYgMTE3MSAxMUFEOworQkI4RjtCQjhGOzExMDYgMTE3MSAxMUFFO0JCOEY7MTEwNiAxMTcxIDExQUU7CitCQjkwO0JCOTA7MTEwNiAxMTcxIDExQUY7QkI5MDsxMTA2IDExNzEgMTFBRjsKK0JCOTE7QkI5MTsxMTA2IDExNzEgMTFCMDtCQjkxOzExMDYgMTE3MSAxMUIwOworQkI5MjtCQjkyOzExMDYgMTE3MSAxMUIxO0JCOTI7MTEwNiAxMTcxIDExQjE7CitCQjkzO0JCOTM7MTEwNiAxMTcxIDExQjI7QkI5MzsxMTA2IDExNzEgMTFCMjsKK0JCOTQ7QkI5NDsxMTA2IDExNzEgMTFCMztCQjk0OzExMDYgMTE3MSAxMUIzOworQkI5NTtCQjk1OzExMDYgMTE3MSAxMUI0O0JCOTU7MTEwNiAxMTcxIDExQjQ7CitCQjk2O0JCOTY7MTEwNiAxMTcxIDExQjU7QkI5NjsxMTA2IDExNzEgMTFCNTsKK0JCOTc7QkI5NzsxMTA2IDExNzEgMTFCNjtCQjk3OzExMDYgMTE3MSAxMUI2OworQkI5ODtCQjk4OzExMDYgMTE3MSAxMUI3O0JCOTg7MTEwNiAxMTcxIDExQjc7CitCQjk5O0JCOTk7MTEwNiAxMTcxIDExQjg7QkI5OTsxMTA2IDExNzEgMTFCODsKK0JCOUE7QkI5QTsxMTA2IDExNzEgMTFCOTtCQjlBOzExMDYgMTE3MSAxMUI5OworQkI5QjtCQjlCOzExMDYgMTE3MSAxMUJBO0JCOUI7MTEwNiAxMTcxIDExQkE7CitCQjlDO0JCOUM7MTEwNiAxMTcxIDExQkI7QkI5QzsxMTA2IDExNzEgMTFCQjsKK0JCOUQ7QkI5RDsxMTA2IDExNzEgMTFCQztCQjlEOzExMDYgMTE3MSAxMUJDOworQkI5RTtCQjlFOzExMDYgMTE3MSAxMUJEO0JCOUU7MTEwNiAxMTcxIDExQkQ7CitCQjlGO0JCOUY7MTEwNiAxMTcxIDExQkU7QkI5RjsxMTA2IDExNzEgMTFCRTsKK0JCQTA7QkJBMDsxMTA2IDExNzEgMTFCRjtCQkEwOzExMDYgMTE3MSAxMUJGOworQkJBMTtCQkExOzExMDYgMTE3MSAxMUMwO0JCQTE7MTEwNiAxMTcxIDExQzA7CitCQkEyO0JCQTI7MTEwNiAxMTcxIDExQzE7QkJBMjsxMTA2IDExNzEgMTFDMTsKK0JCQTM7QkJBMzsxMTA2IDExNzEgMTFDMjtCQkEzOzExMDYgMTE3MSAxMUMyOworQkJBNDtCQkE0OzExMDYgMTE3MjtCQkE0OzExMDYgMTE3MjsKK0JCQTU7QkJBNTsxMTA2IDExNzIgMTFBODtCQkE1OzExMDYgMTE3MiAxMUE4OworQkJBNjtCQkE2OzExMDYgMTE3MiAxMUE5O0JCQTY7MTEwNiAxMTcyIDExQTk7CitCQkE3O0JCQTc7MTEwNiAxMTcyIDExQUE7QkJBNzsxMTA2IDExNzIgMTFBQTsKK0JCQTg7QkJBODsxMTA2IDExNzIgMTFBQjtCQkE4OzExMDYgMTE3MiAxMUFCOworQkJBOTtCQkE5OzExMDYgMTE3MiAxMUFDO0JCQTk7MTEwNiAxMTcyIDExQUM7CitCQkFBO0JCQUE7MTEwNiAxMTcyIDExQUQ7QkJBQTsxMTA2IDExNzIgMTFBRDsKK0JCQUI7QkJBQjsxMTA2IDExNzIgMTFBRTtCQkFCOzExMDYgMTE3MiAxMUFFOworQkJBQztCQkFDOzExMDYgMTE3MiAxMUFGO0JCQUM7MTEwNiAxMTcyIDExQUY7CitCQkFEO0JCQUQ7MTEwNiAxMTcyIDExQjA7QkJBRDsxMTA2IDExNzIgMTFCMDsKK0JCQUU7QkJBRTsxMTA2IDExNzIgMTFCMTtCQkFFOzExMDYgMTE3MiAxMUIxOworQkJBRjtCQkFGOzExMDYgMTE3MiAxMUIyO0JCQUY7MTEwNiAxMTcyIDExQjI7CitCQkIwO0JCQjA7MTEwNiAxMTcyIDExQjM7QkJCMDsxMTA2IDExNzIgMTFCMzsKK0JCQjE7QkJCMTsxMTA2IDExNzIgMTFCNDtCQkIxOzExMDYgMTE3MiAxMUI0OworQkJCMjtCQkIyOzExMDYgMTE3MiAxMUI1O0JCQjI7MTEwNiAxMTcyIDExQjU7CitCQkIzO0JCQjM7MTEwNiAxMTcyIDExQjY7QkJCMzsxMTA2IDExNzIgMTFCNjsKK0JCQjQ7QkJCNDsxMTA2IDExNzIgMTFCNztCQkI0OzExMDYgMTE3MiAxMUI3OworQkJCNTtCQkI1OzExMDYgMTE3MiAxMUI4O0JCQjU7MTEwNiAxMTcyIDExQjg7CitCQkI2O0JCQjY7MTEwNiAxMTcyIDExQjk7QkJCNjsxMTA2IDExNzIgMTFCOTsKK0JCQjc7QkJCNzsxMTA2IDExNzIgMTFCQTtCQkI3OzExMDYgMTE3MiAxMUJBOworQkJCODtCQkI4OzExMDYgMTE3MiAxMUJCO0JCQjg7MTEwNiAxMTcyIDExQkI7CitCQkI5O0JCQjk7MTEwNiAxMTcyIDExQkM7QkJCOTsxMTA2IDExNzIgMTFCQzsKK0JCQkE7QkJCQTsxMTA2IDExNzIgMTFCRDtCQkJBOzExMDYgMTE3MiAxMUJEOworQkJCQjtCQkJCOzExMDYgMTE3MiAxMUJFO0JCQkI7MTEwNiAxMTcyIDExQkU7CitCQkJDO0JCQkM7MTEwNiAxMTcyIDExQkY7QkJCQzsxMTA2IDExNzIgMTFCRjsKK0JCQkQ7QkJCRDsxMTA2IDExNzIgMTFDMDtCQkJEOzExMDYgMTE3MiAxMUMwOworQkJCRTtCQkJFOzExMDYgMTE3MiAxMUMxO0JCQkU7MTEwNiAxMTcyIDExQzE7CitCQkJGO0JCQkY7MTEwNiAxMTcyIDExQzI7QkJCRjsxMTA2IDExNzIgMTFDMjsKK0JCQzA7QkJDMDsxMTA2IDExNzM7QkJDMDsxMTA2IDExNzM7CitCQkMxO0JCQzE7MTEwNiAxMTczIDExQTg7QkJDMTsxMTA2IDExNzMgMTFBODsKK0JCQzI7QkJDMjsxMTA2IDExNzMgMTFBOTtCQkMyOzExMDYgMTE3MyAxMUE5OworQkJDMztCQkMzOzExMDYgMTE3MyAxMUFBO0JCQzM7MTEwNiAxMTczIDExQUE7CitCQkM0O0JCQzQ7MTEwNiAxMTczIDExQUI7QkJDNDsxMTA2IDExNzMgMTFBQjsKK0JCQzU7QkJDNTsxMTA2IDExNzMgMTFBQztCQkM1OzExMDYgMTE3MyAxMUFDOworQkJDNjtCQkM2OzExMDYgMTE3MyAxMUFEO0JCQzY7MTEwNiAxMTczIDExQUQ7CitCQkM3O0JCQzc7MTEwNiAxMTczIDExQUU7QkJDNzsxMTA2IDExNzMgMTFBRTsKK0JCQzg7QkJDODsxMTA2IDExNzMgMTFBRjtCQkM4OzExMDYgMTE3MyAxMUFGOworQkJDOTtCQkM5OzExMDYgMTE3MyAxMUIwO0JCQzk7MTEwNiAxMTczIDExQjA7CitCQkNBO0JCQ0E7MTEwNiAxMTczIDExQjE7QkJDQTsxMTA2IDExNzMgMTFCMTsKK0JCQ0I7QkJDQjsxMTA2IDExNzMgMTFCMjtCQkNCOzExMDYgMTE3MyAxMUIyOworQkJDQztCQkNDOzExMDYgMTE3MyAxMUIzO0JCQ0M7MTEwNiAxMTczIDExQjM7CitCQkNEO0JCQ0Q7MTEwNiAxMTczIDExQjQ7QkJDRDsxMTA2IDExNzMgMTFCNDsKK0JCQ0U7QkJDRTsxMTA2IDExNzMgMTFCNTtCQkNFOzExMDYgMTE3MyAxMUI1OworQkJDRjtCQkNGOzExMDYgMTE3MyAxMUI2O0JCQ0Y7MTEwNiAxMTczIDExQjY7CitCQkQwO0JCRDA7MTEwNiAxMTczIDExQjc7QkJEMDsxMTA2IDExNzMgMTFCNzsKK0JCRDE7QkJEMTsxMTA2IDExNzMgMTFCODtCQkQxOzExMDYgMTE3MyAxMUI4OworQkJEMjtCQkQyOzExMDYgMTE3MyAxMUI5O0JCRDI7MTEwNiAxMTczIDExQjk7CitCQkQzO0JCRDM7MTEwNiAxMTczIDExQkE7QkJEMzsxMTA2IDExNzMgMTFCQTsKK0JCRDQ7QkJENDsxMTA2IDExNzMgMTFCQjtCQkQ0OzExMDYgMTE3MyAxMUJCOworQkJENTtCQkQ1OzExMDYgMTE3MyAxMUJDO0JCRDU7MTEwNiAxMTczIDExQkM7CitCQkQ2O0JCRDY7MTEwNiAxMTczIDExQkQ7QkJENjsxMTA2IDExNzMgMTFCRDsKK0JCRDc7QkJENzsxMTA2IDExNzMgMTFCRTtCQkQ3OzExMDYgMTE3MyAxMUJFOworQkJEODtCQkQ4OzExMDYgMTE3MyAxMUJGO0JCRDg7MTEwNiAxMTczIDExQkY7CitCQkQ5O0JCRDk7MTEwNiAxMTczIDExQzA7QkJEOTsxMTA2IDExNzMgMTFDMDsKK0JCREE7QkJEQTsxMTA2IDExNzMgMTFDMTtCQkRBOzExMDYgMTE3MyAxMUMxOworQkJEQjtCQkRCOzExMDYgMTE3MyAxMUMyO0JCREI7MTEwNiAxMTczIDExQzI7CitCQkRDO0JCREM7MTEwNiAxMTc0O0JCREM7MTEwNiAxMTc0OworQkJERDtCQkREOzExMDYgMTE3NCAxMUE4O0JCREQ7MTEwNiAxMTc0IDExQTg7CitCQkRFO0JCREU7MTEwNiAxMTc0IDExQTk7QkJERTsxMTA2IDExNzQgMTFBOTsKK0JCREY7QkJERjsxMTA2IDExNzQgMTFBQTtCQkRGOzExMDYgMTE3NCAxMUFBOworQkJFMDtCQkUwOzExMDYgMTE3NCAxMUFCO0JCRTA7MTEwNiAxMTc0IDExQUI7CitCQkUxO0JCRTE7MTEwNiAxMTc0IDExQUM7QkJFMTsxMTA2IDExNzQgMTFBQzsKK0JCRTI7QkJFMjsxMTA2IDExNzQgMTFBRDtCQkUyOzExMDYgMTE3NCAxMUFEOworQkJFMztCQkUzOzExMDYgMTE3NCAxMUFFO0JCRTM7MTEwNiAxMTc0IDExQUU7CitCQkU0O0JCRTQ7MTEwNiAxMTc0IDExQUY7QkJFNDsxMTA2IDExNzQgMTFBRjsKK0JCRTU7QkJFNTsxMTA2IDExNzQgMTFCMDtCQkU1OzExMDYgMTE3NCAxMUIwOworQkJFNjtCQkU2OzExMDYgMTE3NCAxMUIxO0JCRTY7MTEwNiAxMTc0IDExQjE7CitCQkU3O0JCRTc7MTEwNiAxMTc0IDExQjI7QkJFNzsxMTA2IDExNzQgMTFCMjsKK0JCRTg7QkJFODsxMTA2IDExNzQgMTFCMztCQkU4OzExMDYgMTE3NCAxMUIzOworQkJFOTtCQkU5OzExMDYgMTE3NCAxMUI0O0JCRTk7MTEwNiAxMTc0IDExQjQ7CitCQkVBO0JCRUE7MTEwNiAxMTc0IDExQjU7QkJFQTsxMTA2IDExNzQgMTFCNTsKK0JCRUI7QkJFQjsxMTA2IDExNzQgMTFCNjtCQkVCOzExMDYgMTE3NCAxMUI2OworQkJFQztCQkVDOzExMDYgMTE3NCAxMUI3O0JCRUM7MTEwNiAxMTc0IDExQjc7CitCQkVEO0JCRUQ7MTEwNiAxMTc0IDExQjg7QkJFRDsxMTA2IDExNzQgMTFCODsKK0JCRUU7QkJFRTsxMTA2IDExNzQgMTFCOTtCQkVFOzExMDYgMTE3NCAxMUI5OworQkJFRjtCQkVGOzExMDYgMTE3NCAxMUJBO0JCRUY7MTEwNiAxMTc0IDExQkE7CitCQkYwO0JCRjA7MTEwNiAxMTc0IDExQkI7QkJGMDsxMTA2IDExNzQgMTFCQjsKK0JCRjE7QkJGMTsxMTA2IDExNzQgMTFCQztCQkYxOzExMDYgMTE3NCAxMUJDOworQkJGMjtCQkYyOzExMDYgMTE3NCAxMUJEO0JCRjI7MTEwNiAxMTc0IDExQkQ7CitCQkYzO0JCRjM7MTEwNiAxMTc0IDExQkU7QkJGMzsxMTA2IDExNzQgMTFCRTsKK0JCRjQ7QkJGNDsxMTA2IDExNzQgMTFCRjtCQkY0OzExMDYgMTE3NCAxMUJGOworQkJGNTtCQkY1OzExMDYgMTE3NCAxMUMwO0JCRjU7MTEwNiAxMTc0IDExQzA7CitCQkY2O0JCRjY7MTEwNiAxMTc0IDExQzE7QkJGNjsxMTA2IDExNzQgMTFDMTsKK0JCRjc7QkJGNzsxMTA2IDExNzQgMTFDMjtCQkY3OzExMDYgMTE3NCAxMUMyOworQkJGODtCQkY4OzExMDYgMTE3NTtCQkY4OzExMDYgMTE3NTsKK0JCRjk7QkJGOTsxMTA2IDExNzUgMTFBODtCQkY5OzExMDYgMTE3NSAxMUE4OworQkJGQTtCQkZBOzExMDYgMTE3NSAxMUE5O0JCRkE7MTEwNiAxMTc1IDExQTk7CitCQkZCO0JCRkI7MTEwNiAxMTc1IDExQUE7QkJGQjsxMTA2IDExNzUgMTFBQTsKK0JCRkM7QkJGQzsxMTA2IDExNzUgMTFBQjtCQkZDOzExMDYgMTE3NSAxMUFCOworQkJGRDtCQkZEOzExMDYgMTE3NSAxMUFDO0JCRkQ7MTEwNiAxMTc1IDExQUM7CitCQkZFO0JCRkU7MTEwNiAxMTc1IDExQUQ7QkJGRTsxMTA2IDExNzUgMTFBRDsKK0JCRkY7QkJGRjsxMTA2IDExNzUgMTFBRTtCQkZGOzExMDYgMTE3NSAxMUFFOworQkMwMDtCQzAwOzExMDYgMTE3NSAxMUFGO0JDMDA7MTEwNiAxMTc1IDExQUY7CitCQzAxO0JDMDE7MTEwNiAxMTc1IDExQjA7QkMwMTsxMTA2IDExNzUgMTFCMDsKK0JDMDI7QkMwMjsxMTA2IDExNzUgMTFCMTtCQzAyOzExMDYgMTE3NSAxMUIxOworQkMwMztCQzAzOzExMDYgMTE3NSAxMUIyO0JDMDM7MTEwNiAxMTc1IDExQjI7CitCQzA0O0JDMDQ7MTEwNiAxMTc1IDExQjM7QkMwNDsxMTA2IDExNzUgMTFCMzsKK0JDMDU7QkMwNTsxMTA2IDExNzUgMTFCNDtCQzA1OzExMDYgMTE3NSAxMUI0OworQkMwNjtCQzA2OzExMDYgMTE3NSAxMUI1O0JDMDY7MTEwNiAxMTc1IDExQjU7CitCQzA3O0JDMDc7MTEwNiAxMTc1IDExQjY7QkMwNzsxMTA2IDExNzUgMTFCNjsKK0JDMDg7QkMwODsxMTA2IDExNzUgMTFCNztCQzA4OzExMDYgMTE3NSAxMUI3OworQkMwOTtCQzA5OzExMDYgMTE3NSAxMUI4O0JDMDk7MTEwNiAxMTc1IDExQjg7CitCQzBBO0JDMEE7MTEwNiAxMTc1IDExQjk7QkMwQTsxMTA2IDExNzUgMTFCOTsKK0JDMEI7QkMwQjsxMTA2IDExNzUgMTFCQTtCQzBCOzExMDYgMTE3NSAxMUJBOworQkMwQztCQzBDOzExMDYgMTE3NSAxMUJCO0JDMEM7MTEwNiAxMTc1IDExQkI7CitCQzBEO0JDMEQ7MTEwNiAxMTc1IDExQkM7QkMwRDsxMTA2IDExNzUgMTFCQzsKK0JDMEU7QkMwRTsxMTA2IDExNzUgMTFCRDtCQzBFOzExMDYgMTE3NSAxMUJEOworQkMwRjtCQzBGOzExMDYgMTE3NSAxMUJFO0JDMEY7MTEwNiAxMTc1IDExQkU7CitCQzEwO0JDMTA7MTEwNiAxMTc1IDExQkY7QkMxMDsxMTA2IDExNzUgMTFCRjsKK0JDMTE7QkMxMTsxMTA2IDExNzUgMTFDMDtCQzExOzExMDYgMTE3NSAxMUMwOworQkMxMjtCQzEyOzExMDYgMTE3NSAxMUMxO0JDMTI7MTEwNiAxMTc1IDExQzE7CitCQzEzO0JDMTM7MTEwNiAxMTc1IDExQzI7QkMxMzsxMTA2IDExNzUgMTFDMjsKK0JDMTQ7QkMxNDsxMTA3IDExNjE7QkMxNDsxMTA3IDExNjE7CitCQzE1O0JDMTU7MTEwNyAxMTYxIDExQTg7QkMxNTsxMTA3IDExNjEgMTFBODsKK0JDMTY7QkMxNjsxMTA3IDExNjEgMTFBOTtCQzE2OzExMDcgMTE2MSAxMUE5OworQkMxNztCQzE3OzExMDcgMTE2MSAxMUFBO0JDMTc7MTEwNyAxMTYxIDExQUE7CitCQzE4O0JDMTg7MTEwNyAxMTYxIDExQUI7QkMxODsxMTA3IDExNjEgMTFBQjsKK0JDMTk7QkMxOTsxMTA3IDExNjEgMTFBQztCQzE5OzExMDcgMTE2MSAxMUFDOworQkMxQTtCQzFBOzExMDcgMTE2MSAxMUFEO0JDMUE7MTEwNyAxMTYxIDExQUQ7CitCQzFCO0JDMUI7MTEwNyAxMTYxIDExQUU7QkMxQjsxMTA3IDExNjEgMTFBRTsKK0JDMUM7QkMxQzsxMTA3IDExNjEgMTFBRjtCQzFDOzExMDcgMTE2MSAxMUFGOworQkMxRDtCQzFEOzExMDcgMTE2MSAxMUIwO0JDMUQ7MTEwNyAxMTYxIDExQjA7CitCQzFFO0JDMUU7MTEwNyAxMTYxIDExQjE7QkMxRTsxMTA3IDExNjEgMTFCMTsKK0JDMUY7QkMxRjsxMTA3IDExNjEgMTFCMjtCQzFGOzExMDcgMTE2MSAxMUIyOworQkMyMDtCQzIwOzExMDcgMTE2MSAxMUIzO0JDMjA7MTEwNyAxMTYxIDExQjM7CitCQzIxO0JDMjE7MTEwNyAxMTYxIDExQjQ7QkMyMTsxMTA3IDExNjEgMTFCNDsKK0JDMjI7QkMyMjsxMTA3IDExNjEgMTFCNTtCQzIyOzExMDcgMTE2MSAxMUI1OworQkMyMztCQzIzOzExMDcgMTE2MSAxMUI2O0JDMjM7MTEwNyAxMTYxIDExQjY7CitCQzI0O0JDMjQ7MTEwNyAxMTYxIDExQjc7QkMyNDsxMTA3IDExNjEgMTFCNzsKK0JDMjU7QkMyNTsxMTA3IDExNjEgMTFCODtCQzI1OzExMDcgMTE2MSAxMUI4OworQkMyNjtCQzI2OzExMDcgMTE2MSAxMUI5O0JDMjY7MTEwNyAxMTYxIDExQjk7CitCQzI3O0JDMjc7MTEwNyAxMTYxIDExQkE7QkMyNzsxMTA3IDExNjEgMTFCQTsKK0JDMjg7QkMyODsxMTA3IDExNjEgMTFCQjtCQzI4OzExMDcgMTE2MSAxMUJCOworQkMyOTtCQzI5OzExMDcgMTE2MSAxMUJDO0JDMjk7MTEwNyAxMTYxIDExQkM7CitCQzJBO0JDMkE7MTEwNyAxMTYxIDExQkQ7QkMyQTsxMTA3IDExNjEgMTFCRDsKK0JDMkI7QkMyQjsxMTA3IDExNjEgMTFCRTtCQzJCOzExMDcgMTE2MSAxMUJFOworQkMyQztCQzJDOzExMDcgMTE2MSAxMUJGO0JDMkM7MTEwNyAxMTYxIDExQkY7CitCQzJEO0JDMkQ7MTEwNyAxMTYxIDExQzA7QkMyRDsxMTA3IDExNjEgMTFDMDsKK0JDMkU7QkMyRTsxMTA3IDExNjEgMTFDMTtCQzJFOzExMDcgMTE2MSAxMUMxOworQkMyRjtCQzJGOzExMDcgMTE2MSAxMUMyO0JDMkY7MTEwNyAxMTYxIDExQzI7CitCQzMwO0JDMzA7MTEwNyAxMTYyO0JDMzA7MTEwNyAxMTYyOworQkMzMTtCQzMxOzExMDcgMTE2MiAxMUE4O0JDMzE7MTEwNyAxMTYyIDExQTg7CitCQzMyO0JDMzI7MTEwNyAxMTYyIDExQTk7QkMzMjsxMTA3IDExNjIgMTFBOTsKK0JDMzM7QkMzMzsxMTA3IDExNjIgMTFBQTtCQzMzOzExMDcgMTE2MiAxMUFBOworQkMzNDtCQzM0OzExMDcgMTE2MiAxMUFCO0JDMzQ7MTEwNyAxMTYyIDExQUI7CitCQzM1O0JDMzU7MTEwNyAxMTYyIDExQUM7QkMzNTsxMTA3IDExNjIgMTFBQzsKK0JDMzY7QkMzNjsxMTA3IDExNjIgMTFBRDtCQzM2OzExMDcgMTE2MiAxMUFEOworQkMzNztCQzM3OzExMDcgMTE2MiAxMUFFO0JDMzc7MTEwNyAxMTYyIDExQUU7CitCQzM4O0JDMzg7MTEwNyAxMTYyIDExQUY7QkMzODsxMTA3IDExNjIgMTFBRjsKK0JDMzk7QkMzOTsxMTA3IDExNjIgMTFCMDtCQzM5OzExMDcgMTE2MiAxMUIwOworQkMzQTtCQzNBOzExMDcgMTE2MiAxMUIxO0JDM0E7MTEwNyAxMTYyIDExQjE7CitCQzNCO0JDM0I7MTEwNyAxMTYyIDExQjI7QkMzQjsxMTA3IDExNjIgMTFCMjsKK0JDM0M7QkMzQzsxMTA3IDExNjIgMTFCMztCQzNDOzExMDcgMTE2MiAxMUIzOworQkMzRDtCQzNEOzExMDcgMTE2MiAxMUI0O0JDM0Q7MTEwNyAxMTYyIDExQjQ7CitCQzNFO0JDM0U7MTEwNyAxMTYyIDExQjU7QkMzRTsxMTA3IDExNjIgMTFCNTsKK0JDM0Y7QkMzRjsxMTA3IDExNjIgMTFCNjtCQzNGOzExMDcgMTE2MiAxMUI2OworQkM0MDtCQzQwOzExMDcgMTE2MiAxMUI3O0JDNDA7MTEwNyAxMTYyIDExQjc7CitCQzQxO0JDNDE7MTEwNyAxMTYyIDExQjg7QkM0MTsxMTA3IDExNjIgMTFCODsKK0JDNDI7QkM0MjsxMTA3IDExNjIgMTFCOTtCQzQyOzExMDcgMTE2MiAxMUI5OworQkM0MztCQzQzOzExMDcgMTE2MiAxMUJBO0JDNDM7MTEwNyAxMTYyIDExQkE7CitCQzQ0O0JDNDQ7MTEwNyAxMTYyIDExQkI7QkM0NDsxMTA3IDExNjIgMTFCQjsKK0JDNDU7QkM0NTsxMTA3IDExNjIgMTFCQztCQzQ1OzExMDcgMTE2MiAxMUJDOworQkM0NjtCQzQ2OzExMDcgMTE2MiAxMUJEO0JDNDY7MTEwNyAxMTYyIDExQkQ7CitCQzQ3O0JDNDc7MTEwNyAxMTYyIDExQkU7QkM0NzsxMTA3IDExNjIgMTFCRTsKK0JDNDg7QkM0ODsxMTA3IDExNjIgMTFCRjtCQzQ4OzExMDcgMTE2MiAxMUJGOworQkM0OTtCQzQ5OzExMDcgMTE2MiAxMUMwO0JDNDk7MTEwNyAxMTYyIDExQzA7CitCQzRBO0JDNEE7MTEwNyAxMTYyIDExQzE7QkM0QTsxMTA3IDExNjIgMTFDMTsKK0JDNEI7QkM0QjsxMTA3IDExNjIgMTFDMjtCQzRCOzExMDcgMTE2MiAxMUMyOworQkM0QztCQzRDOzExMDcgMTE2MztCQzRDOzExMDcgMTE2MzsKK0JDNEQ7QkM0RDsxMTA3IDExNjMgMTFBODtCQzREOzExMDcgMTE2MyAxMUE4OworQkM0RTtCQzRFOzExMDcgMTE2MyAxMUE5O0JDNEU7MTEwNyAxMTYzIDExQTk7CitCQzRGO0JDNEY7MTEwNyAxMTYzIDExQUE7QkM0RjsxMTA3IDExNjMgMTFBQTsKK0JDNTA7QkM1MDsxMTA3IDExNjMgMTFBQjtCQzUwOzExMDcgMTE2MyAxMUFCOworQkM1MTtCQzUxOzExMDcgMTE2MyAxMUFDO0JDNTE7MTEwNyAxMTYzIDExQUM7CitCQzUyO0JDNTI7MTEwNyAxMTYzIDExQUQ7QkM1MjsxMTA3IDExNjMgMTFBRDsKK0JDNTM7QkM1MzsxMTA3IDExNjMgMTFBRTtCQzUzOzExMDcgMTE2MyAxMUFFOworQkM1NDtCQzU0OzExMDcgMTE2MyAxMUFGO0JDNTQ7MTEwNyAxMTYzIDExQUY7CitCQzU1O0JDNTU7MTEwNyAxMTYzIDExQjA7QkM1NTsxMTA3IDExNjMgMTFCMDsKK0JDNTY7QkM1NjsxMTA3IDExNjMgMTFCMTtCQzU2OzExMDcgMTE2MyAxMUIxOworQkM1NztCQzU3OzExMDcgMTE2MyAxMUIyO0JDNTc7MTEwNyAxMTYzIDExQjI7CitCQzU4O0JDNTg7MTEwNyAxMTYzIDExQjM7QkM1ODsxMTA3IDExNjMgMTFCMzsKK0JDNTk7QkM1OTsxMTA3IDExNjMgMTFCNDtCQzU5OzExMDcgMTE2MyAxMUI0OworQkM1QTtCQzVBOzExMDcgMTE2MyAxMUI1O0JDNUE7MTEwNyAxMTYzIDExQjU7CitCQzVCO0JDNUI7MTEwNyAxMTYzIDExQjY7QkM1QjsxMTA3IDExNjMgMTFCNjsKK0JDNUM7QkM1QzsxMTA3IDExNjMgMTFCNztCQzVDOzExMDcgMTE2MyAxMUI3OworQkM1RDtCQzVEOzExMDcgMTE2MyAxMUI4O0JDNUQ7MTEwNyAxMTYzIDExQjg7CitCQzVFO0JDNUU7MTEwNyAxMTYzIDExQjk7QkM1RTsxMTA3IDExNjMgMTFCOTsKK0JDNUY7QkM1RjsxMTA3IDExNjMgMTFCQTtCQzVGOzExMDcgMTE2MyAxMUJBOworQkM2MDtCQzYwOzExMDcgMTE2MyAxMUJCO0JDNjA7MTEwNyAxMTYzIDExQkI7CitCQzYxO0JDNjE7MTEwNyAxMTYzIDExQkM7QkM2MTsxMTA3IDExNjMgMTFCQzsKK0JDNjI7QkM2MjsxMTA3IDExNjMgMTFCRDtCQzYyOzExMDcgMTE2MyAxMUJEOworQkM2MztCQzYzOzExMDcgMTE2MyAxMUJFO0JDNjM7MTEwNyAxMTYzIDExQkU7CitCQzY0O0JDNjQ7MTEwNyAxMTYzIDExQkY7QkM2NDsxMTA3IDExNjMgMTFCRjsKK0JDNjU7QkM2NTsxMTA3IDExNjMgMTFDMDtCQzY1OzExMDcgMTE2MyAxMUMwOworQkM2NjtCQzY2OzExMDcgMTE2MyAxMUMxO0JDNjY7MTEwNyAxMTYzIDExQzE7CitCQzY3O0JDNjc7MTEwNyAxMTYzIDExQzI7QkM2NzsxMTA3IDExNjMgMTFDMjsKK0JDNjg7QkM2ODsxMTA3IDExNjQ7QkM2ODsxMTA3IDExNjQ7CitCQzY5O0JDNjk7MTEwNyAxMTY0IDExQTg7QkM2OTsxMTA3IDExNjQgMTFBODsKK0JDNkE7QkM2QTsxMTA3IDExNjQgMTFBOTtCQzZBOzExMDcgMTE2NCAxMUE5OworQkM2QjtCQzZCOzExMDcgMTE2NCAxMUFBO0JDNkI7MTEwNyAxMTY0IDExQUE7CitCQzZDO0JDNkM7MTEwNyAxMTY0IDExQUI7QkM2QzsxMTA3IDExNjQgMTFBQjsKK0JDNkQ7QkM2RDsxMTA3IDExNjQgMTFBQztCQzZEOzExMDcgMTE2NCAxMUFDOworQkM2RTtCQzZFOzExMDcgMTE2NCAxMUFEO0JDNkU7MTEwNyAxMTY0IDExQUQ7CitCQzZGO0JDNkY7MTEwNyAxMTY0IDExQUU7QkM2RjsxMTA3IDExNjQgMTFBRTsKK0JDNzA7QkM3MDsxMTA3IDExNjQgMTFBRjtCQzcwOzExMDcgMTE2NCAxMUFGOworQkM3MTtCQzcxOzExMDcgMTE2NCAxMUIwO0JDNzE7MTEwNyAxMTY0IDExQjA7CitCQzcyO0JDNzI7MTEwNyAxMTY0IDExQjE7QkM3MjsxMTA3IDExNjQgMTFCMTsKK0JDNzM7QkM3MzsxMTA3IDExNjQgMTFCMjtCQzczOzExMDcgMTE2NCAxMUIyOworQkM3NDtCQzc0OzExMDcgMTE2NCAxMUIzO0JDNzQ7MTEwNyAxMTY0IDExQjM7CitCQzc1O0JDNzU7MTEwNyAxMTY0IDExQjQ7QkM3NTsxMTA3IDExNjQgMTFCNDsKK0JDNzY7QkM3NjsxMTA3IDExNjQgMTFCNTtCQzc2OzExMDcgMTE2NCAxMUI1OworQkM3NztCQzc3OzExMDcgMTE2NCAxMUI2O0JDNzc7MTEwNyAxMTY0IDExQjY7CitCQzc4O0JDNzg7MTEwNyAxMTY0IDExQjc7QkM3ODsxMTA3IDExNjQgMTFCNzsKK0JDNzk7QkM3OTsxMTA3IDExNjQgMTFCODtCQzc5OzExMDcgMTE2NCAxMUI4OworQkM3QTtCQzdBOzExMDcgMTE2NCAxMUI5O0JDN0E7MTEwNyAxMTY0IDExQjk7CitCQzdCO0JDN0I7MTEwNyAxMTY0IDExQkE7QkM3QjsxMTA3IDExNjQgMTFCQTsKK0JDN0M7QkM3QzsxMTA3IDExNjQgMTFCQjtCQzdDOzExMDcgMTE2NCAxMUJCOworQkM3RDtCQzdEOzExMDcgMTE2NCAxMUJDO0JDN0Q7MTEwNyAxMTY0IDExQkM7CitCQzdFO0JDN0U7MTEwNyAxMTY0IDExQkQ7QkM3RTsxMTA3IDExNjQgMTFCRDsKK0JDN0Y7QkM3RjsxMTA3IDExNjQgMTFCRTtCQzdGOzExMDcgMTE2NCAxMUJFOworQkM4MDtCQzgwOzExMDcgMTE2NCAxMUJGO0JDODA7MTEwNyAxMTY0IDExQkY7CitCQzgxO0JDODE7MTEwNyAxMTY0IDExQzA7QkM4MTsxMTA3IDExNjQgMTFDMDsKK0JDODI7QkM4MjsxMTA3IDExNjQgMTFDMTtCQzgyOzExMDcgMTE2NCAxMUMxOworQkM4MztCQzgzOzExMDcgMTE2NCAxMUMyO0JDODM7MTEwNyAxMTY0IDExQzI7CitCQzg0O0JDODQ7MTEwNyAxMTY1O0JDODQ7MTEwNyAxMTY1OworQkM4NTtCQzg1OzExMDcgMTE2NSAxMUE4O0JDODU7MTEwNyAxMTY1IDExQTg7CitCQzg2O0JDODY7MTEwNyAxMTY1IDExQTk7QkM4NjsxMTA3IDExNjUgMTFBOTsKK0JDODc7QkM4NzsxMTA3IDExNjUgMTFBQTtCQzg3OzExMDcgMTE2NSAxMUFBOworQkM4ODtCQzg4OzExMDcgMTE2NSAxMUFCO0JDODg7MTEwNyAxMTY1IDExQUI7CitCQzg5O0JDODk7MTEwNyAxMTY1IDExQUM7QkM4OTsxMTA3IDExNjUgMTFBQzsKK0JDOEE7QkM4QTsxMTA3IDExNjUgMTFBRDtCQzhBOzExMDcgMTE2NSAxMUFEOworQkM4QjtCQzhCOzExMDcgMTE2NSAxMUFFO0JDOEI7MTEwNyAxMTY1IDExQUU7CitCQzhDO0JDOEM7MTEwNyAxMTY1IDExQUY7QkM4QzsxMTA3IDExNjUgMTFBRjsKK0JDOEQ7QkM4RDsxMTA3IDExNjUgMTFCMDtCQzhEOzExMDcgMTE2NSAxMUIwOworQkM4RTtCQzhFOzExMDcgMTE2NSAxMUIxO0JDOEU7MTEwNyAxMTY1IDExQjE7CitCQzhGO0JDOEY7MTEwNyAxMTY1IDExQjI7QkM4RjsxMTA3IDExNjUgMTFCMjsKK0JDOTA7QkM5MDsxMTA3IDExNjUgMTFCMztCQzkwOzExMDcgMTE2NSAxMUIzOworQkM5MTtCQzkxOzExMDcgMTE2NSAxMUI0O0JDOTE7MTEwNyAxMTY1IDExQjQ7CitCQzkyO0JDOTI7MTEwNyAxMTY1IDExQjU7QkM5MjsxMTA3IDExNjUgMTFCNTsKK0JDOTM7QkM5MzsxMTA3IDExNjUgMTFCNjtCQzkzOzExMDcgMTE2NSAxMUI2OworQkM5NDtCQzk0OzExMDcgMTE2NSAxMUI3O0JDOTQ7MTEwNyAxMTY1IDExQjc7CitCQzk1O0JDOTU7MTEwNyAxMTY1IDExQjg7QkM5NTsxMTA3IDExNjUgMTFCODsKK0JDOTY7QkM5NjsxMTA3IDExNjUgMTFCOTtCQzk2OzExMDcgMTE2NSAxMUI5OworQkM5NztCQzk3OzExMDcgMTE2NSAxMUJBO0JDOTc7MTEwNyAxMTY1IDExQkE7CitCQzk4O0JDOTg7MTEwNyAxMTY1IDExQkI7QkM5ODsxMTA3IDExNjUgMTFCQjsKK0JDOTk7QkM5OTsxMTA3IDExNjUgMTFCQztCQzk5OzExMDcgMTE2NSAxMUJDOworQkM5QTtCQzlBOzExMDcgMTE2NSAxMUJEO0JDOUE7MTEwNyAxMTY1IDExQkQ7CitCQzlCO0JDOUI7MTEwNyAxMTY1IDExQkU7QkM5QjsxMTA3IDExNjUgMTFCRTsKK0JDOUM7QkM5QzsxMTA3IDExNjUgMTFCRjtCQzlDOzExMDcgMTE2NSAxMUJGOworQkM5RDtCQzlEOzExMDcgMTE2NSAxMUMwO0JDOUQ7MTEwNyAxMTY1IDExQzA7CitCQzlFO0JDOUU7MTEwNyAxMTY1IDExQzE7QkM5RTsxMTA3IDExNjUgMTFDMTsKK0JDOUY7QkM5RjsxMTA3IDExNjUgMTFDMjtCQzlGOzExMDcgMTE2NSAxMUMyOworQkNBMDtCQ0EwOzExMDcgMTE2NjtCQ0EwOzExMDcgMTE2NjsKK0JDQTE7QkNBMTsxMTA3IDExNjYgMTFBODtCQ0ExOzExMDcgMTE2NiAxMUE4OworQkNBMjtCQ0EyOzExMDcgMTE2NiAxMUE5O0JDQTI7MTEwNyAxMTY2IDExQTk7CitCQ0EzO0JDQTM7MTEwNyAxMTY2IDExQUE7QkNBMzsxMTA3IDExNjYgMTFBQTsKK0JDQTQ7QkNBNDsxMTA3IDExNjYgMTFBQjtCQ0E0OzExMDcgMTE2NiAxMUFCOworQkNBNTtCQ0E1OzExMDcgMTE2NiAxMUFDO0JDQTU7MTEwNyAxMTY2IDExQUM7CitCQ0E2O0JDQTY7MTEwNyAxMTY2IDExQUQ7QkNBNjsxMTA3IDExNjYgMTFBRDsKK0JDQTc7QkNBNzsxMTA3IDExNjYgMTFBRTtCQ0E3OzExMDcgMTE2NiAxMUFFOworQkNBODtCQ0E4OzExMDcgMTE2NiAxMUFGO0JDQTg7MTEwNyAxMTY2IDExQUY7CitCQ0E5O0JDQTk7MTEwNyAxMTY2IDExQjA7QkNBOTsxMTA3IDExNjYgMTFCMDsKK0JDQUE7QkNBQTsxMTA3IDExNjYgMTFCMTtCQ0FBOzExMDcgMTE2NiAxMUIxOworQkNBQjtCQ0FCOzExMDcgMTE2NiAxMUIyO0JDQUI7MTEwNyAxMTY2IDExQjI7CitCQ0FDO0JDQUM7MTEwNyAxMTY2IDExQjM7QkNBQzsxMTA3IDExNjYgMTFCMzsKK0JDQUQ7QkNBRDsxMTA3IDExNjYgMTFCNDtCQ0FEOzExMDcgMTE2NiAxMUI0OworQkNBRTtCQ0FFOzExMDcgMTE2NiAxMUI1O0JDQUU7MTEwNyAxMTY2IDExQjU7CitCQ0FGO0JDQUY7MTEwNyAxMTY2IDExQjY7QkNBRjsxMTA3IDExNjYgMTFCNjsKK0JDQjA7QkNCMDsxMTA3IDExNjYgMTFCNztCQ0IwOzExMDcgMTE2NiAxMUI3OworQkNCMTtCQ0IxOzExMDcgMTE2NiAxMUI4O0JDQjE7MTEwNyAxMTY2IDExQjg7CitCQ0IyO0JDQjI7MTEwNyAxMTY2IDExQjk7QkNCMjsxMTA3IDExNjYgMTFCOTsKK0JDQjM7QkNCMzsxMTA3IDExNjYgMTFCQTtCQ0IzOzExMDcgMTE2NiAxMUJBOworQkNCNDtCQ0I0OzExMDcgMTE2NiAxMUJCO0JDQjQ7MTEwNyAxMTY2IDExQkI7CitCQ0I1O0JDQjU7MTEwNyAxMTY2IDExQkM7QkNCNTsxMTA3IDExNjYgMTFCQzsKK0JDQjY7QkNCNjsxMTA3IDExNjYgMTFCRDtCQ0I2OzExMDcgMTE2NiAxMUJEOworQkNCNztCQ0I3OzExMDcgMTE2NiAxMUJFO0JDQjc7MTEwNyAxMTY2IDExQkU7CitCQ0I4O0JDQjg7MTEwNyAxMTY2IDExQkY7QkNCODsxMTA3IDExNjYgMTFCRjsKK0JDQjk7QkNCOTsxMTA3IDExNjYgMTFDMDtCQ0I5OzExMDcgMTE2NiAxMUMwOworQkNCQTtCQ0JBOzExMDcgMTE2NiAxMUMxO0JDQkE7MTEwNyAxMTY2IDExQzE7CitCQ0JCO0JDQkI7MTEwNyAxMTY2IDExQzI7QkNCQjsxMTA3IDExNjYgMTFDMjsKK0JDQkM7QkNCQzsxMTA3IDExNjc7QkNCQzsxMTA3IDExNjc7CitCQ0JEO0JDQkQ7MTEwNyAxMTY3IDExQTg7QkNCRDsxMTA3IDExNjcgMTFBODsKK0JDQkU7QkNCRTsxMTA3IDExNjcgMTFBOTtCQ0JFOzExMDcgMTE2NyAxMUE5OworQkNCRjtCQ0JGOzExMDcgMTE2NyAxMUFBO0JDQkY7MTEwNyAxMTY3IDExQUE7CitCQ0MwO0JDQzA7MTEwNyAxMTY3IDExQUI7QkNDMDsxMTA3IDExNjcgMTFBQjsKK0JDQzE7QkNDMTsxMTA3IDExNjcgMTFBQztCQ0MxOzExMDcgMTE2NyAxMUFDOworQkNDMjtCQ0MyOzExMDcgMTE2NyAxMUFEO0JDQzI7MTEwNyAxMTY3IDExQUQ7CitCQ0MzO0JDQzM7MTEwNyAxMTY3IDExQUU7QkNDMzsxMTA3IDExNjcgMTFBRTsKK0JDQzQ7QkNDNDsxMTA3IDExNjcgMTFBRjtCQ0M0OzExMDcgMTE2NyAxMUFGOworQkNDNTtCQ0M1OzExMDcgMTE2NyAxMUIwO0JDQzU7MTEwNyAxMTY3IDExQjA7CitCQ0M2O0JDQzY7MTEwNyAxMTY3IDExQjE7QkNDNjsxMTA3IDExNjcgMTFCMTsKK0JDQzc7QkNDNzsxMTA3IDExNjcgMTFCMjtCQ0M3OzExMDcgMTE2NyAxMUIyOworQkNDODtCQ0M4OzExMDcgMTE2NyAxMUIzO0JDQzg7MTEwNyAxMTY3IDExQjM7CitCQ0M5O0JDQzk7MTEwNyAxMTY3IDExQjQ7QkNDOTsxMTA3IDExNjcgMTFCNDsKK0JDQ0E7QkNDQTsxMTA3IDExNjcgMTFCNTtCQ0NBOzExMDcgMTE2NyAxMUI1OworQkNDQjtCQ0NCOzExMDcgMTE2NyAxMUI2O0JDQ0I7MTEwNyAxMTY3IDExQjY7CitCQ0NDO0JDQ0M7MTEwNyAxMTY3IDExQjc7QkNDQzsxMTA3IDExNjcgMTFCNzsKK0JDQ0Q7QkNDRDsxMTA3IDExNjcgMTFCODtCQ0NEOzExMDcgMTE2NyAxMUI4OworQkNDRTtCQ0NFOzExMDcgMTE2NyAxMUI5O0JDQ0U7MTEwNyAxMTY3IDExQjk7CitCQ0NGO0JDQ0Y7MTEwNyAxMTY3IDExQkE7QkNDRjsxMTA3IDExNjcgMTFCQTsKK0JDRDA7QkNEMDsxMTA3IDExNjcgMTFCQjtCQ0QwOzExMDcgMTE2NyAxMUJCOworQkNEMTtCQ0QxOzExMDcgMTE2NyAxMUJDO0JDRDE7MTEwNyAxMTY3IDExQkM7CitCQ0QyO0JDRDI7MTEwNyAxMTY3IDExQkQ7QkNEMjsxMTA3IDExNjcgMTFCRDsKK0JDRDM7QkNEMzsxMTA3IDExNjcgMTFCRTtCQ0QzOzExMDcgMTE2NyAxMUJFOworQkNENDtCQ0Q0OzExMDcgMTE2NyAxMUJGO0JDRDQ7MTEwNyAxMTY3IDExQkY7CitCQ0Q1O0JDRDU7MTEwNyAxMTY3IDExQzA7QkNENTsxMTA3IDExNjcgMTFDMDsKK0JDRDY7QkNENjsxMTA3IDExNjcgMTFDMTtCQ0Q2OzExMDcgMTE2NyAxMUMxOworQkNENztCQ0Q3OzExMDcgMTE2NyAxMUMyO0JDRDc7MTEwNyAxMTY3IDExQzI7CitCQ0Q4O0JDRDg7MTEwNyAxMTY4O0JDRDg7MTEwNyAxMTY4OworQkNEOTtCQ0Q5OzExMDcgMTE2OCAxMUE4O0JDRDk7MTEwNyAxMTY4IDExQTg7CitCQ0RBO0JDREE7MTEwNyAxMTY4IDExQTk7QkNEQTsxMTA3IDExNjggMTFBOTsKK0JDREI7QkNEQjsxMTA3IDExNjggMTFBQTtCQ0RCOzExMDcgMTE2OCAxMUFBOworQkNEQztCQ0RDOzExMDcgMTE2OCAxMUFCO0JDREM7MTEwNyAxMTY4IDExQUI7CitCQ0REO0JDREQ7MTEwNyAxMTY4IDExQUM7QkNERDsxMTA3IDExNjggMTFBQzsKK0JDREU7QkNERTsxMTA3IDExNjggMTFBRDtCQ0RFOzExMDcgMTE2OCAxMUFEOworQkNERjtCQ0RGOzExMDcgMTE2OCAxMUFFO0JDREY7MTEwNyAxMTY4IDExQUU7CitCQ0UwO0JDRTA7MTEwNyAxMTY4IDExQUY7QkNFMDsxMTA3IDExNjggMTFBRjsKK0JDRTE7QkNFMTsxMTA3IDExNjggMTFCMDtCQ0UxOzExMDcgMTE2OCAxMUIwOworQkNFMjtCQ0UyOzExMDcgMTE2OCAxMUIxO0JDRTI7MTEwNyAxMTY4IDExQjE7CitCQ0UzO0JDRTM7MTEwNyAxMTY4IDExQjI7QkNFMzsxMTA3IDExNjggMTFCMjsKK0JDRTQ7QkNFNDsxMTA3IDExNjggMTFCMztCQ0U0OzExMDcgMTE2OCAxMUIzOworQkNFNTtCQ0U1OzExMDcgMTE2OCAxMUI0O0JDRTU7MTEwNyAxMTY4IDExQjQ7CitCQ0U2O0JDRTY7MTEwNyAxMTY4IDExQjU7QkNFNjsxMTA3IDExNjggMTFCNTsKK0JDRTc7QkNFNzsxMTA3IDExNjggMTFCNjtCQ0U3OzExMDcgMTE2OCAxMUI2OworQkNFODtCQ0U4OzExMDcgMTE2OCAxMUI3O0JDRTg7MTEwNyAxMTY4IDExQjc7CitCQ0U5O0JDRTk7MTEwNyAxMTY4IDExQjg7QkNFOTsxMTA3IDExNjggMTFCODsKK0JDRUE7QkNFQTsxMTA3IDExNjggMTFCOTtCQ0VBOzExMDcgMTE2OCAxMUI5OworQkNFQjtCQ0VCOzExMDcgMTE2OCAxMUJBO0JDRUI7MTEwNyAxMTY4IDExQkE7CitCQ0VDO0JDRUM7MTEwNyAxMTY4IDExQkI7QkNFQzsxMTA3IDExNjggMTFCQjsKK0JDRUQ7QkNFRDsxMTA3IDExNjggMTFCQztCQ0VEOzExMDcgMTE2OCAxMUJDOworQkNFRTtCQ0VFOzExMDcgMTE2OCAxMUJEO0JDRUU7MTEwNyAxMTY4IDExQkQ7CitCQ0VGO0JDRUY7MTEwNyAxMTY4IDExQkU7QkNFRjsxMTA3IDExNjggMTFCRTsKK0JDRjA7QkNGMDsxMTA3IDExNjggMTFCRjtCQ0YwOzExMDcgMTE2OCAxMUJGOworQkNGMTtCQ0YxOzExMDcgMTE2OCAxMUMwO0JDRjE7MTEwNyAxMTY4IDExQzA7CitCQ0YyO0JDRjI7MTEwNyAxMTY4IDExQzE7QkNGMjsxMTA3IDExNjggMTFDMTsKK0JDRjM7QkNGMzsxMTA3IDExNjggMTFDMjtCQ0YzOzExMDcgMTE2OCAxMUMyOworQkNGNDtCQ0Y0OzExMDcgMTE2OTtCQ0Y0OzExMDcgMTE2OTsKK0JDRjU7QkNGNTsxMTA3IDExNjkgMTFBODtCQ0Y1OzExMDcgMTE2OSAxMUE4OworQkNGNjtCQ0Y2OzExMDcgMTE2OSAxMUE5O0JDRjY7MTEwNyAxMTY5IDExQTk7CitCQ0Y3O0JDRjc7MTEwNyAxMTY5IDExQUE7QkNGNzsxMTA3IDExNjkgMTFBQTsKK0JDRjg7QkNGODsxMTA3IDExNjkgMTFBQjtCQ0Y4OzExMDcgMTE2OSAxMUFCOworQkNGOTtCQ0Y5OzExMDcgMTE2OSAxMUFDO0JDRjk7MTEwNyAxMTY5IDExQUM7CitCQ0ZBO0JDRkE7MTEwNyAxMTY5IDExQUQ7QkNGQTsxMTA3IDExNjkgMTFBRDsKK0JDRkI7QkNGQjsxMTA3IDExNjkgMTFBRTtCQ0ZCOzExMDcgMTE2OSAxMUFFOworQkNGQztCQ0ZDOzExMDcgMTE2OSAxMUFGO0JDRkM7MTEwNyAxMTY5IDExQUY7CitCQ0ZEO0JDRkQ7MTEwNyAxMTY5IDExQjA7QkNGRDsxMTA3IDExNjkgMTFCMDsKK0JDRkU7QkNGRTsxMTA3IDExNjkgMTFCMTtCQ0ZFOzExMDcgMTE2OSAxMUIxOworQkNGRjtCQ0ZGOzExMDcgMTE2OSAxMUIyO0JDRkY7MTEwNyAxMTY5IDExQjI7CitCRDAwO0JEMDA7MTEwNyAxMTY5IDExQjM7QkQwMDsxMTA3IDExNjkgMTFCMzsKK0JEMDE7QkQwMTsxMTA3IDExNjkgMTFCNDtCRDAxOzExMDcgMTE2OSAxMUI0OworQkQwMjtCRDAyOzExMDcgMTE2OSAxMUI1O0JEMDI7MTEwNyAxMTY5IDExQjU7CitCRDAzO0JEMDM7MTEwNyAxMTY5IDExQjY7QkQwMzsxMTA3IDExNjkgMTFCNjsKK0JEMDQ7QkQwNDsxMTA3IDExNjkgMTFCNztCRDA0OzExMDcgMTE2OSAxMUI3OworQkQwNTtCRDA1OzExMDcgMTE2OSAxMUI4O0JEMDU7MTEwNyAxMTY5IDExQjg7CitCRDA2O0JEMDY7MTEwNyAxMTY5IDExQjk7QkQwNjsxMTA3IDExNjkgMTFCOTsKK0JEMDc7QkQwNzsxMTA3IDExNjkgMTFCQTtCRDA3OzExMDcgMTE2OSAxMUJBOworQkQwODtCRDA4OzExMDcgMTE2OSAxMUJCO0JEMDg7MTEwNyAxMTY5IDExQkI7CitCRDA5O0JEMDk7MTEwNyAxMTY5IDExQkM7QkQwOTsxMTA3IDExNjkgMTFCQzsKK0JEMEE7QkQwQTsxMTA3IDExNjkgMTFCRDtCRDBBOzExMDcgMTE2OSAxMUJEOworQkQwQjtCRDBCOzExMDcgMTE2OSAxMUJFO0JEMEI7MTEwNyAxMTY5IDExQkU7CitCRDBDO0JEMEM7MTEwNyAxMTY5IDExQkY7QkQwQzsxMTA3IDExNjkgMTFCRjsKK0JEMEQ7QkQwRDsxMTA3IDExNjkgMTFDMDtCRDBEOzExMDcgMTE2OSAxMUMwOworQkQwRTtCRDBFOzExMDcgMTE2OSAxMUMxO0JEMEU7MTEwNyAxMTY5IDExQzE7CitCRDBGO0JEMEY7MTEwNyAxMTY5IDExQzI7QkQwRjsxMTA3IDExNjkgMTFDMjsKK0JEMTA7QkQxMDsxMTA3IDExNkE7QkQxMDsxMTA3IDExNkE7CitCRDExO0JEMTE7MTEwNyAxMTZBIDExQTg7QkQxMTsxMTA3IDExNkEgMTFBODsKK0JEMTI7QkQxMjsxMTA3IDExNkEgMTFBOTtCRDEyOzExMDcgMTE2QSAxMUE5OworQkQxMztCRDEzOzExMDcgMTE2QSAxMUFBO0JEMTM7MTEwNyAxMTZBIDExQUE7CitCRDE0O0JEMTQ7MTEwNyAxMTZBIDExQUI7QkQxNDsxMTA3IDExNkEgMTFBQjsKK0JEMTU7QkQxNTsxMTA3IDExNkEgMTFBQztCRDE1OzExMDcgMTE2QSAxMUFDOworQkQxNjtCRDE2OzExMDcgMTE2QSAxMUFEO0JEMTY7MTEwNyAxMTZBIDExQUQ7CitCRDE3O0JEMTc7MTEwNyAxMTZBIDExQUU7QkQxNzsxMTA3IDExNkEgMTFBRTsKK0JEMTg7QkQxODsxMTA3IDExNkEgMTFBRjtCRDE4OzExMDcgMTE2QSAxMUFGOworQkQxOTtCRDE5OzExMDcgMTE2QSAxMUIwO0JEMTk7MTEwNyAxMTZBIDExQjA7CitCRDFBO0JEMUE7MTEwNyAxMTZBIDExQjE7QkQxQTsxMTA3IDExNkEgMTFCMTsKK0JEMUI7QkQxQjsxMTA3IDExNkEgMTFCMjtCRDFCOzExMDcgMTE2QSAxMUIyOworQkQxQztCRDFDOzExMDcgMTE2QSAxMUIzO0JEMUM7MTEwNyAxMTZBIDExQjM7CitCRDFEO0JEMUQ7MTEwNyAxMTZBIDExQjQ7QkQxRDsxMTA3IDExNkEgMTFCNDsKK0JEMUU7QkQxRTsxMTA3IDExNkEgMTFCNTtCRDFFOzExMDcgMTE2QSAxMUI1OworQkQxRjtCRDFGOzExMDcgMTE2QSAxMUI2O0JEMUY7MTEwNyAxMTZBIDExQjY7CitCRDIwO0JEMjA7MTEwNyAxMTZBIDExQjc7QkQyMDsxMTA3IDExNkEgMTFCNzsKK0JEMjE7QkQyMTsxMTA3IDExNkEgMTFCODtCRDIxOzExMDcgMTE2QSAxMUI4OworQkQyMjtCRDIyOzExMDcgMTE2QSAxMUI5O0JEMjI7MTEwNyAxMTZBIDExQjk7CitCRDIzO0JEMjM7MTEwNyAxMTZBIDExQkE7QkQyMzsxMTA3IDExNkEgMTFCQTsKK0JEMjQ7QkQyNDsxMTA3IDExNkEgMTFCQjtCRDI0OzExMDcgMTE2QSAxMUJCOworQkQyNTtCRDI1OzExMDcgMTE2QSAxMUJDO0JEMjU7MTEwNyAxMTZBIDExQkM7CitCRDI2O0JEMjY7MTEwNyAxMTZBIDExQkQ7QkQyNjsxMTA3IDExNkEgMTFCRDsKK0JEMjc7QkQyNzsxMTA3IDExNkEgMTFCRTtCRDI3OzExMDcgMTE2QSAxMUJFOworQkQyODtCRDI4OzExMDcgMTE2QSAxMUJGO0JEMjg7MTEwNyAxMTZBIDExQkY7CitCRDI5O0JEMjk7MTEwNyAxMTZBIDExQzA7QkQyOTsxMTA3IDExNkEgMTFDMDsKK0JEMkE7QkQyQTsxMTA3IDExNkEgMTFDMTtCRDJBOzExMDcgMTE2QSAxMUMxOworQkQyQjtCRDJCOzExMDcgMTE2QSAxMUMyO0JEMkI7MTEwNyAxMTZBIDExQzI7CitCRDJDO0JEMkM7MTEwNyAxMTZCO0JEMkM7MTEwNyAxMTZCOworQkQyRDtCRDJEOzExMDcgMTE2QiAxMUE4O0JEMkQ7MTEwNyAxMTZCIDExQTg7CitCRDJFO0JEMkU7MTEwNyAxMTZCIDExQTk7QkQyRTsxMTA3IDExNkIgMTFBOTsKK0JEMkY7QkQyRjsxMTA3IDExNkIgMTFBQTtCRDJGOzExMDcgMTE2QiAxMUFBOworQkQzMDtCRDMwOzExMDcgMTE2QiAxMUFCO0JEMzA7MTEwNyAxMTZCIDExQUI7CitCRDMxO0JEMzE7MTEwNyAxMTZCIDExQUM7QkQzMTsxMTA3IDExNkIgMTFBQzsKK0JEMzI7QkQzMjsxMTA3IDExNkIgMTFBRDtCRDMyOzExMDcgMTE2QiAxMUFEOworQkQzMztCRDMzOzExMDcgMTE2QiAxMUFFO0JEMzM7MTEwNyAxMTZCIDExQUU7CitCRDM0O0JEMzQ7MTEwNyAxMTZCIDExQUY7QkQzNDsxMTA3IDExNkIgMTFBRjsKK0JEMzU7QkQzNTsxMTA3IDExNkIgMTFCMDtCRDM1OzExMDcgMTE2QiAxMUIwOworQkQzNjtCRDM2OzExMDcgMTE2QiAxMUIxO0JEMzY7MTEwNyAxMTZCIDExQjE7CitCRDM3O0JEMzc7MTEwNyAxMTZCIDExQjI7QkQzNzsxMTA3IDExNkIgMTFCMjsKK0JEMzg7QkQzODsxMTA3IDExNkIgMTFCMztCRDM4OzExMDcgMTE2QiAxMUIzOworQkQzOTtCRDM5OzExMDcgMTE2QiAxMUI0O0JEMzk7MTEwNyAxMTZCIDExQjQ7CitCRDNBO0JEM0E7MTEwNyAxMTZCIDExQjU7QkQzQTsxMTA3IDExNkIgMTFCNTsKK0JEM0I7QkQzQjsxMTA3IDExNkIgMTFCNjtCRDNCOzExMDcgMTE2QiAxMUI2OworQkQzQztCRDNDOzExMDcgMTE2QiAxMUI3O0JEM0M7MTEwNyAxMTZCIDExQjc7CitCRDNEO0JEM0Q7MTEwNyAxMTZCIDExQjg7QkQzRDsxMTA3IDExNkIgMTFCODsKK0JEM0U7QkQzRTsxMTA3IDExNkIgMTFCOTtCRDNFOzExMDcgMTE2QiAxMUI5OworQkQzRjtCRDNGOzExMDcgMTE2QiAxMUJBO0JEM0Y7MTEwNyAxMTZCIDExQkE7CitCRDQwO0JENDA7MTEwNyAxMTZCIDExQkI7QkQ0MDsxMTA3IDExNkIgMTFCQjsKK0JENDE7QkQ0MTsxMTA3IDExNkIgMTFCQztCRDQxOzExMDcgMTE2QiAxMUJDOworQkQ0MjtCRDQyOzExMDcgMTE2QiAxMUJEO0JENDI7MTEwNyAxMTZCIDExQkQ7CitCRDQzO0JENDM7MTEwNyAxMTZCIDExQkU7QkQ0MzsxMTA3IDExNkIgMTFCRTsKK0JENDQ7QkQ0NDsxMTA3IDExNkIgMTFCRjtCRDQ0OzExMDcgMTE2QiAxMUJGOworQkQ0NTtCRDQ1OzExMDcgMTE2QiAxMUMwO0JENDU7MTEwNyAxMTZCIDExQzA7CitCRDQ2O0JENDY7MTEwNyAxMTZCIDExQzE7QkQ0NjsxMTA3IDExNkIgMTFDMTsKK0JENDc7QkQ0NzsxMTA3IDExNkIgMTFDMjtCRDQ3OzExMDcgMTE2QiAxMUMyOworQkQ0ODtCRDQ4OzExMDcgMTE2QztCRDQ4OzExMDcgMTE2QzsKK0JENDk7QkQ0OTsxMTA3IDExNkMgMTFBODtCRDQ5OzExMDcgMTE2QyAxMUE4OworQkQ0QTtCRDRBOzExMDcgMTE2QyAxMUE5O0JENEE7MTEwNyAxMTZDIDExQTk7CitCRDRCO0JENEI7MTEwNyAxMTZDIDExQUE7QkQ0QjsxMTA3IDExNkMgMTFBQTsKK0JENEM7QkQ0QzsxMTA3IDExNkMgMTFBQjtCRDRDOzExMDcgMTE2QyAxMUFCOworQkQ0RDtCRDREOzExMDcgMTE2QyAxMUFDO0JENEQ7MTEwNyAxMTZDIDExQUM7CitCRDRFO0JENEU7MTEwNyAxMTZDIDExQUQ7QkQ0RTsxMTA3IDExNkMgMTFBRDsKK0JENEY7QkQ0RjsxMTA3IDExNkMgMTFBRTtCRDRGOzExMDcgMTE2QyAxMUFFOworQkQ1MDtCRDUwOzExMDcgMTE2QyAxMUFGO0JENTA7MTEwNyAxMTZDIDExQUY7CitCRDUxO0JENTE7MTEwNyAxMTZDIDExQjA7QkQ1MTsxMTA3IDExNkMgMTFCMDsKK0JENTI7QkQ1MjsxMTA3IDExNkMgMTFCMTtCRDUyOzExMDcgMTE2QyAxMUIxOworQkQ1MztCRDUzOzExMDcgMTE2QyAxMUIyO0JENTM7MTEwNyAxMTZDIDExQjI7CitCRDU0O0JENTQ7MTEwNyAxMTZDIDExQjM7QkQ1NDsxMTA3IDExNkMgMTFCMzsKK0JENTU7QkQ1NTsxMTA3IDExNkMgMTFCNDtCRDU1OzExMDcgMTE2QyAxMUI0OworQkQ1NjtCRDU2OzExMDcgMTE2QyAxMUI1O0JENTY7MTEwNyAxMTZDIDExQjU7CitCRDU3O0JENTc7MTEwNyAxMTZDIDExQjY7QkQ1NzsxMTA3IDExNkMgMTFCNjsKK0JENTg7QkQ1ODsxMTA3IDExNkMgMTFCNztCRDU4OzExMDcgMTE2QyAxMUI3OworQkQ1OTtCRDU5OzExMDcgMTE2QyAxMUI4O0JENTk7MTEwNyAxMTZDIDExQjg7CitCRDVBO0JENUE7MTEwNyAxMTZDIDExQjk7QkQ1QTsxMTA3IDExNkMgMTFCOTsKK0JENUI7QkQ1QjsxMTA3IDExNkMgMTFCQTtCRDVCOzExMDcgMTE2QyAxMUJBOworQkQ1QztCRDVDOzExMDcgMTE2QyAxMUJCO0JENUM7MTEwNyAxMTZDIDExQkI7CitCRDVEO0JENUQ7MTEwNyAxMTZDIDExQkM7QkQ1RDsxMTA3IDExNkMgMTFCQzsKK0JENUU7QkQ1RTsxMTA3IDExNkMgMTFCRDtCRDVFOzExMDcgMTE2QyAxMUJEOworQkQ1RjtCRDVGOzExMDcgMTE2QyAxMUJFO0JENUY7MTEwNyAxMTZDIDExQkU7CitCRDYwO0JENjA7MTEwNyAxMTZDIDExQkY7QkQ2MDsxMTA3IDExNkMgMTFCRjsKK0JENjE7QkQ2MTsxMTA3IDExNkMgMTFDMDtCRDYxOzExMDcgMTE2QyAxMUMwOworQkQ2MjtCRDYyOzExMDcgMTE2QyAxMUMxO0JENjI7MTEwNyAxMTZDIDExQzE7CitCRDYzO0JENjM7MTEwNyAxMTZDIDExQzI7QkQ2MzsxMTA3IDExNkMgMTFDMjsKK0JENjQ7QkQ2NDsxMTA3IDExNkQ7QkQ2NDsxMTA3IDExNkQ7CitCRDY1O0JENjU7MTEwNyAxMTZEIDExQTg7QkQ2NTsxMTA3IDExNkQgMTFBODsKK0JENjY7QkQ2NjsxMTA3IDExNkQgMTFBOTtCRDY2OzExMDcgMTE2RCAxMUE5OworQkQ2NztCRDY3OzExMDcgMTE2RCAxMUFBO0JENjc7MTEwNyAxMTZEIDExQUE7CitCRDY4O0JENjg7MTEwNyAxMTZEIDExQUI7QkQ2ODsxMTA3IDExNkQgMTFBQjsKK0JENjk7QkQ2OTsxMTA3IDExNkQgMTFBQztCRDY5OzExMDcgMTE2RCAxMUFDOworQkQ2QTtCRDZBOzExMDcgMTE2RCAxMUFEO0JENkE7MTEwNyAxMTZEIDExQUQ7CitCRDZCO0JENkI7MTEwNyAxMTZEIDExQUU7QkQ2QjsxMTA3IDExNkQgMTFBRTsKK0JENkM7QkQ2QzsxMTA3IDExNkQgMTFBRjtCRDZDOzExMDcgMTE2RCAxMUFGOworQkQ2RDtCRDZEOzExMDcgMTE2RCAxMUIwO0JENkQ7MTEwNyAxMTZEIDExQjA7CitCRDZFO0JENkU7MTEwNyAxMTZEIDExQjE7QkQ2RTsxMTA3IDExNkQgMTFCMTsKK0JENkY7QkQ2RjsxMTA3IDExNkQgMTFCMjtCRDZGOzExMDcgMTE2RCAxMUIyOworQkQ3MDtCRDcwOzExMDcgMTE2RCAxMUIzO0JENzA7MTEwNyAxMTZEIDExQjM7CitCRDcxO0JENzE7MTEwNyAxMTZEIDExQjQ7QkQ3MTsxMTA3IDExNkQgMTFCNDsKK0JENzI7QkQ3MjsxMTA3IDExNkQgMTFCNTtCRDcyOzExMDcgMTE2RCAxMUI1OworQkQ3MztCRDczOzExMDcgMTE2RCAxMUI2O0JENzM7MTEwNyAxMTZEIDExQjY7CitCRDc0O0JENzQ7MTEwNyAxMTZEIDExQjc7QkQ3NDsxMTA3IDExNkQgMTFCNzsKK0JENzU7QkQ3NTsxMTA3IDExNkQgMTFCODtCRDc1OzExMDcgMTE2RCAxMUI4OworQkQ3NjtCRDc2OzExMDcgMTE2RCAxMUI5O0JENzY7MTEwNyAxMTZEIDExQjk7CitCRDc3O0JENzc7MTEwNyAxMTZEIDExQkE7QkQ3NzsxMTA3IDExNkQgMTFCQTsKK0JENzg7QkQ3ODsxMTA3IDExNkQgMTFCQjtCRDc4OzExMDcgMTE2RCAxMUJCOworQkQ3OTtCRDc5OzExMDcgMTE2RCAxMUJDO0JENzk7MTEwNyAxMTZEIDExQkM7CitCRDdBO0JEN0E7MTEwNyAxMTZEIDExQkQ7QkQ3QTsxMTA3IDExNkQgMTFCRDsKK0JEN0I7QkQ3QjsxMTA3IDExNkQgMTFCRTtCRDdCOzExMDcgMTE2RCAxMUJFOworQkQ3QztCRDdDOzExMDcgMTE2RCAxMUJGO0JEN0M7MTEwNyAxMTZEIDExQkY7CitCRDdEO0JEN0Q7MTEwNyAxMTZEIDExQzA7QkQ3RDsxMTA3IDExNkQgMTFDMDsKK0JEN0U7QkQ3RTsxMTA3IDExNkQgMTFDMTtCRDdFOzExMDcgMTE2RCAxMUMxOworQkQ3RjtCRDdGOzExMDcgMTE2RCAxMUMyO0JEN0Y7MTEwNyAxMTZEIDExQzI7CitCRDgwO0JEODA7MTEwNyAxMTZFO0JEODA7MTEwNyAxMTZFOworQkQ4MTtCRDgxOzExMDcgMTE2RSAxMUE4O0JEODE7MTEwNyAxMTZFIDExQTg7CitCRDgyO0JEODI7MTEwNyAxMTZFIDExQTk7QkQ4MjsxMTA3IDExNkUgMTFBOTsKK0JEODM7QkQ4MzsxMTA3IDExNkUgMTFBQTtCRDgzOzExMDcgMTE2RSAxMUFBOworQkQ4NDtCRDg0OzExMDcgMTE2RSAxMUFCO0JEODQ7MTEwNyAxMTZFIDExQUI7CitCRDg1O0JEODU7MTEwNyAxMTZFIDExQUM7QkQ4NTsxMTA3IDExNkUgMTFBQzsKK0JEODY7QkQ4NjsxMTA3IDExNkUgMTFBRDtCRDg2OzExMDcgMTE2RSAxMUFEOworQkQ4NztCRDg3OzExMDcgMTE2RSAxMUFFO0JEODc7MTEwNyAxMTZFIDExQUU7CitCRDg4O0JEODg7MTEwNyAxMTZFIDExQUY7QkQ4ODsxMTA3IDExNkUgMTFBRjsKK0JEODk7QkQ4OTsxMTA3IDExNkUgMTFCMDtCRDg5OzExMDcgMTE2RSAxMUIwOworQkQ4QTtCRDhBOzExMDcgMTE2RSAxMUIxO0JEOEE7MTEwNyAxMTZFIDExQjE7CitCRDhCO0JEOEI7MTEwNyAxMTZFIDExQjI7QkQ4QjsxMTA3IDExNkUgMTFCMjsKK0JEOEM7QkQ4QzsxMTA3IDExNkUgMTFCMztCRDhDOzExMDcgMTE2RSAxMUIzOworQkQ4RDtCRDhEOzExMDcgMTE2RSAxMUI0O0JEOEQ7MTEwNyAxMTZFIDExQjQ7CitCRDhFO0JEOEU7MTEwNyAxMTZFIDExQjU7QkQ4RTsxMTA3IDExNkUgMTFCNTsKK0JEOEY7QkQ4RjsxMTA3IDExNkUgMTFCNjtCRDhGOzExMDcgMTE2RSAxMUI2OworQkQ5MDtCRDkwOzExMDcgMTE2RSAxMUI3O0JEOTA7MTEwNyAxMTZFIDExQjc7CitCRDkxO0JEOTE7MTEwNyAxMTZFIDExQjg7QkQ5MTsxMTA3IDExNkUgMTFCODsKK0JEOTI7QkQ5MjsxMTA3IDExNkUgMTFCOTtCRDkyOzExMDcgMTE2RSAxMUI5OworQkQ5MztCRDkzOzExMDcgMTE2RSAxMUJBO0JEOTM7MTEwNyAxMTZFIDExQkE7CitCRDk0O0JEOTQ7MTEwNyAxMTZFIDExQkI7QkQ5NDsxMTA3IDExNkUgMTFCQjsKK0JEOTU7QkQ5NTsxMTA3IDExNkUgMTFCQztCRDk1OzExMDcgMTE2RSAxMUJDOworQkQ5NjtCRDk2OzExMDcgMTE2RSAxMUJEO0JEOTY7MTEwNyAxMTZFIDExQkQ7CitCRDk3O0JEOTc7MTEwNyAxMTZFIDExQkU7QkQ5NzsxMTA3IDExNkUgMTFCRTsKK0JEOTg7QkQ5ODsxMTA3IDExNkUgMTFCRjtCRDk4OzExMDcgMTE2RSAxMUJGOworQkQ5OTtCRDk5OzExMDcgMTE2RSAxMUMwO0JEOTk7MTEwNyAxMTZFIDExQzA7CitCRDlBO0JEOUE7MTEwNyAxMTZFIDExQzE7QkQ5QTsxMTA3IDExNkUgMTFDMTsKK0JEOUI7QkQ5QjsxMTA3IDExNkUgMTFDMjtCRDlCOzExMDcgMTE2RSAxMUMyOworQkQ5QztCRDlDOzExMDcgMTE2RjtCRDlDOzExMDcgMTE2RjsKK0JEOUQ7QkQ5RDsxMTA3IDExNkYgMTFBODtCRDlEOzExMDcgMTE2RiAxMUE4OworQkQ5RTtCRDlFOzExMDcgMTE2RiAxMUE5O0JEOUU7MTEwNyAxMTZGIDExQTk7CitCRDlGO0JEOUY7MTEwNyAxMTZGIDExQUE7QkQ5RjsxMTA3IDExNkYgMTFBQTsKK0JEQTA7QkRBMDsxMTA3IDExNkYgMTFBQjtCREEwOzExMDcgMTE2RiAxMUFCOworQkRBMTtCREExOzExMDcgMTE2RiAxMUFDO0JEQTE7MTEwNyAxMTZGIDExQUM7CitCREEyO0JEQTI7MTEwNyAxMTZGIDExQUQ7QkRBMjsxMTA3IDExNkYgMTFBRDsKK0JEQTM7QkRBMzsxMTA3IDExNkYgMTFBRTtCREEzOzExMDcgMTE2RiAxMUFFOworQkRBNDtCREE0OzExMDcgMTE2RiAxMUFGO0JEQTQ7MTEwNyAxMTZGIDExQUY7CitCREE1O0JEQTU7MTEwNyAxMTZGIDExQjA7QkRBNTsxMTA3IDExNkYgMTFCMDsKK0JEQTY7QkRBNjsxMTA3IDExNkYgMTFCMTtCREE2OzExMDcgMTE2RiAxMUIxOworQkRBNztCREE3OzExMDcgMTE2RiAxMUIyO0JEQTc7MTEwNyAxMTZGIDExQjI7CitCREE4O0JEQTg7MTEwNyAxMTZGIDExQjM7QkRBODsxMTA3IDExNkYgMTFCMzsKK0JEQTk7QkRBOTsxMTA3IDExNkYgMTFCNDtCREE5OzExMDcgMTE2RiAxMUI0OworQkRBQTtCREFBOzExMDcgMTE2RiAxMUI1O0JEQUE7MTEwNyAxMTZGIDExQjU7CitCREFCO0JEQUI7MTEwNyAxMTZGIDExQjY7QkRBQjsxMTA3IDExNkYgMTFCNjsKK0JEQUM7QkRBQzsxMTA3IDExNkYgMTFCNztCREFDOzExMDcgMTE2RiAxMUI3OworQkRBRDtCREFEOzExMDcgMTE2RiAxMUI4O0JEQUQ7MTEwNyAxMTZGIDExQjg7CitCREFFO0JEQUU7MTEwNyAxMTZGIDExQjk7QkRBRTsxMTA3IDExNkYgMTFCOTsKK0JEQUY7QkRBRjsxMTA3IDExNkYgMTFCQTtCREFGOzExMDcgMTE2RiAxMUJBOworQkRCMDtCREIwOzExMDcgMTE2RiAxMUJCO0JEQjA7MTEwNyAxMTZGIDExQkI7CitCREIxO0JEQjE7MTEwNyAxMTZGIDExQkM7QkRCMTsxMTA3IDExNkYgMTFCQzsKK0JEQjI7QkRCMjsxMTA3IDExNkYgMTFCRDtCREIyOzExMDcgMTE2RiAxMUJEOworQkRCMztCREIzOzExMDcgMTE2RiAxMUJFO0JEQjM7MTEwNyAxMTZGIDExQkU7CitCREI0O0JEQjQ7MTEwNyAxMTZGIDExQkY7QkRCNDsxMTA3IDExNkYgMTFCRjsKK0JEQjU7QkRCNTsxMTA3IDExNkYgMTFDMDtCREI1OzExMDcgMTE2RiAxMUMwOworQkRCNjtCREI2OzExMDcgMTE2RiAxMUMxO0JEQjY7MTEwNyAxMTZGIDExQzE7CitCREI3O0JEQjc7MTEwNyAxMTZGIDExQzI7QkRCNzsxMTA3IDExNkYgMTFDMjsKK0JEQjg7QkRCODsxMTA3IDExNzA7QkRCODsxMTA3IDExNzA7CitCREI5O0JEQjk7MTEwNyAxMTcwIDExQTg7QkRCOTsxMTA3IDExNzAgMTFBODsKK0JEQkE7QkRCQTsxMTA3IDExNzAgMTFBOTtCREJBOzExMDcgMTE3MCAxMUE5OworQkRCQjtCREJCOzExMDcgMTE3MCAxMUFBO0JEQkI7MTEwNyAxMTcwIDExQUE7CitCREJDO0JEQkM7MTEwNyAxMTcwIDExQUI7QkRCQzsxMTA3IDExNzAgMTFBQjsKK0JEQkQ7QkRCRDsxMTA3IDExNzAgMTFBQztCREJEOzExMDcgMTE3MCAxMUFDOworQkRCRTtCREJFOzExMDcgMTE3MCAxMUFEO0JEQkU7MTEwNyAxMTcwIDExQUQ7CitCREJGO0JEQkY7MTEwNyAxMTcwIDExQUU7QkRCRjsxMTA3IDExNzAgMTFBRTsKK0JEQzA7QkRDMDsxMTA3IDExNzAgMTFBRjtCREMwOzExMDcgMTE3MCAxMUFGOworQkRDMTtCREMxOzExMDcgMTE3MCAxMUIwO0JEQzE7MTEwNyAxMTcwIDExQjA7CitCREMyO0JEQzI7MTEwNyAxMTcwIDExQjE7QkRDMjsxMTA3IDExNzAgMTFCMTsKK0JEQzM7QkRDMzsxMTA3IDExNzAgMTFCMjtCREMzOzExMDcgMTE3MCAxMUIyOworQkRDNDtCREM0OzExMDcgMTE3MCAxMUIzO0JEQzQ7MTEwNyAxMTcwIDExQjM7CitCREM1O0JEQzU7MTEwNyAxMTcwIDExQjQ7QkRDNTsxMTA3IDExNzAgMTFCNDsKK0JEQzY7QkRDNjsxMTA3IDExNzAgMTFCNTtCREM2OzExMDcgMTE3MCAxMUI1OworQkRDNztCREM3OzExMDcgMTE3MCAxMUI2O0JEQzc7MTEwNyAxMTcwIDExQjY7CitCREM4O0JEQzg7MTEwNyAxMTcwIDExQjc7QkRDODsxMTA3IDExNzAgMTFCNzsKK0JEQzk7QkRDOTsxMTA3IDExNzAgMTFCODtCREM5OzExMDcgMTE3MCAxMUI4OworQkRDQTtCRENBOzExMDcgMTE3MCAxMUI5O0JEQ0E7MTEwNyAxMTcwIDExQjk7CitCRENCO0JEQ0I7MTEwNyAxMTcwIDExQkE7QkRDQjsxMTA3IDExNzAgMTFCQTsKK0JEQ0M7QkRDQzsxMTA3IDExNzAgMTFCQjtCRENDOzExMDcgMTE3MCAxMUJCOworQkRDRDtCRENEOzExMDcgMTE3MCAxMUJDO0JEQ0Q7MTEwNyAxMTcwIDExQkM7CitCRENFO0JEQ0U7MTEwNyAxMTcwIDExQkQ7QkRDRTsxMTA3IDExNzAgMTFCRDsKK0JEQ0Y7QkRDRjsxMTA3IDExNzAgMTFCRTtCRENGOzExMDcgMTE3MCAxMUJFOworQkREMDtCREQwOzExMDcgMTE3MCAxMUJGO0JERDA7MTEwNyAxMTcwIDExQkY7CitCREQxO0JERDE7MTEwNyAxMTcwIDExQzA7QkREMTsxMTA3IDExNzAgMTFDMDsKK0JERDI7QkREMjsxMTA3IDExNzAgMTFDMTtCREQyOzExMDcgMTE3MCAxMUMxOworQkREMztCREQzOzExMDcgMTE3MCAxMUMyO0JERDM7MTEwNyAxMTcwIDExQzI7CitCREQ0O0JERDQ7MTEwNyAxMTcxO0JERDQ7MTEwNyAxMTcxOworQkRENTtCREQ1OzExMDcgMTE3MSAxMUE4O0JERDU7MTEwNyAxMTcxIDExQTg7CitCREQ2O0JERDY7MTEwNyAxMTcxIDExQTk7QkRENjsxMTA3IDExNzEgMTFBOTsKK0JERDc7QkRENzsxMTA3IDExNzEgMTFBQTtCREQ3OzExMDcgMTE3MSAxMUFBOworQkREODtCREQ4OzExMDcgMTE3MSAxMUFCO0JERDg7MTEwNyAxMTcxIDExQUI7CitCREQ5O0JERDk7MTEwNyAxMTcxIDExQUM7QkREOTsxMTA3IDExNzEgMTFBQzsKK0JEREE7QkREQTsxMTA3IDExNzEgMTFBRDtCRERBOzExMDcgMTE3MSAxMUFEOworQkREQjtCRERCOzExMDcgMTE3MSAxMUFFO0JEREI7MTEwNyAxMTcxIDExQUU7CitCRERDO0JEREM7MTEwNyAxMTcxIDExQUY7QkREQzsxMTA3IDExNzEgMTFBRjsKK0JEREQ7QkRERDsxMTA3IDExNzEgMTFCMDtCREREOzExMDcgMTE3MSAxMUIwOworQkRERTtCRERFOzExMDcgMTE3MSAxMUIxO0JEREU7MTEwNyAxMTcxIDExQjE7CitCRERGO0JEREY7MTEwNyAxMTcxIDExQjI7QkRERjsxMTA3IDExNzEgMTFCMjsKK0JERTA7QkRFMDsxMTA3IDExNzEgMTFCMztCREUwOzExMDcgMTE3MSAxMUIzOworQkRFMTtCREUxOzExMDcgMTE3MSAxMUI0O0JERTE7MTEwNyAxMTcxIDExQjQ7CitCREUyO0JERTI7MTEwNyAxMTcxIDExQjU7QkRFMjsxMTA3IDExNzEgMTFCNTsKK0JERTM7QkRFMzsxMTA3IDExNzEgMTFCNjtCREUzOzExMDcgMTE3MSAxMUI2OworQkRFNDtCREU0OzExMDcgMTE3MSAxMUI3O0JERTQ7MTEwNyAxMTcxIDExQjc7CitCREU1O0JERTU7MTEwNyAxMTcxIDExQjg7QkRFNTsxMTA3IDExNzEgMTFCODsKK0JERTY7QkRFNjsxMTA3IDExNzEgMTFCOTtCREU2OzExMDcgMTE3MSAxMUI5OworQkRFNztCREU3OzExMDcgMTE3MSAxMUJBO0JERTc7MTEwNyAxMTcxIDExQkE7CitCREU4O0JERTg7MTEwNyAxMTcxIDExQkI7QkRFODsxMTA3IDExNzEgMTFCQjsKK0JERTk7QkRFOTsxMTA3IDExNzEgMTFCQztCREU5OzExMDcgMTE3MSAxMUJDOworQkRFQTtCREVBOzExMDcgMTE3MSAxMUJEO0JERUE7MTEwNyAxMTcxIDExQkQ7CitCREVCO0JERUI7MTEwNyAxMTcxIDExQkU7QkRFQjsxMTA3IDExNzEgMTFCRTsKK0JERUM7QkRFQzsxMTA3IDExNzEgMTFCRjtCREVDOzExMDcgMTE3MSAxMUJGOworQkRFRDtCREVEOzExMDcgMTE3MSAxMUMwO0JERUQ7MTEwNyAxMTcxIDExQzA7CitCREVFO0JERUU7MTEwNyAxMTcxIDExQzE7QkRFRTsxMTA3IDExNzEgMTFDMTsKK0JERUY7QkRFRjsxMTA3IDExNzEgMTFDMjtCREVGOzExMDcgMTE3MSAxMUMyOworQkRGMDtCREYwOzExMDcgMTE3MjtCREYwOzExMDcgMTE3MjsKK0JERjE7QkRGMTsxMTA3IDExNzIgMTFBODtCREYxOzExMDcgMTE3MiAxMUE4OworQkRGMjtCREYyOzExMDcgMTE3MiAxMUE5O0JERjI7MTEwNyAxMTcyIDExQTk7CitCREYzO0JERjM7MTEwNyAxMTcyIDExQUE7QkRGMzsxMTA3IDExNzIgMTFBQTsKK0JERjQ7QkRGNDsxMTA3IDExNzIgMTFBQjtCREY0OzExMDcgMTE3MiAxMUFCOworQkRGNTtCREY1OzExMDcgMTE3MiAxMUFDO0JERjU7MTEwNyAxMTcyIDExQUM7CitCREY2O0JERjY7MTEwNyAxMTcyIDExQUQ7QkRGNjsxMTA3IDExNzIgMTFBRDsKK0JERjc7QkRGNzsxMTA3IDExNzIgMTFBRTtCREY3OzExMDcgMTE3MiAxMUFFOworQkRGODtCREY4OzExMDcgMTE3MiAxMUFGO0JERjg7MTEwNyAxMTcyIDExQUY7CitCREY5O0JERjk7MTEwNyAxMTcyIDExQjA7QkRGOTsxMTA3IDExNzIgMTFCMDsKK0JERkE7QkRGQTsxMTA3IDExNzIgMTFCMTtCREZBOzExMDcgMTE3MiAxMUIxOworQkRGQjtCREZCOzExMDcgMTE3MiAxMUIyO0JERkI7MTEwNyAxMTcyIDExQjI7CitCREZDO0JERkM7MTEwNyAxMTcyIDExQjM7QkRGQzsxMTA3IDExNzIgMTFCMzsKK0JERkQ7QkRGRDsxMTA3IDExNzIgMTFCNDtCREZEOzExMDcgMTE3MiAxMUI0OworQkRGRTtCREZFOzExMDcgMTE3MiAxMUI1O0JERkU7MTEwNyAxMTcyIDExQjU7CitCREZGO0JERkY7MTEwNyAxMTcyIDExQjY7QkRGRjsxMTA3IDExNzIgMTFCNjsKK0JFMDA7QkUwMDsxMTA3IDExNzIgMTFCNztCRTAwOzExMDcgMTE3MiAxMUI3OworQkUwMTtCRTAxOzExMDcgMTE3MiAxMUI4O0JFMDE7MTEwNyAxMTcyIDExQjg7CitCRTAyO0JFMDI7MTEwNyAxMTcyIDExQjk7QkUwMjsxMTA3IDExNzIgMTFCOTsKK0JFMDM7QkUwMzsxMTA3IDExNzIgMTFCQTtCRTAzOzExMDcgMTE3MiAxMUJBOworQkUwNDtCRTA0OzExMDcgMTE3MiAxMUJCO0JFMDQ7MTEwNyAxMTcyIDExQkI7CitCRTA1O0JFMDU7MTEwNyAxMTcyIDExQkM7QkUwNTsxMTA3IDExNzIgMTFCQzsKK0JFMDY7QkUwNjsxMTA3IDExNzIgMTFCRDtCRTA2OzExMDcgMTE3MiAxMUJEOworQkUwNztCRTA3OzExMDcgMTE3MiAxMUJFO0JFMDc7MTEwNyAxMTcyIDExQkU7CitCRTA4O0JFMDg7MTEwNyAxMTcyIDExQkY7QkUwODsxMTA3IDExNzIgMTFCRjsKK0JFMDk7QkUwOTsxMTA3IDExNzIgMTFDMDtCRTA5OzExMDcgMTE3MiAxMUMwOworQkUwQTtCRTBBOzExMDcgMTE3MiAxMUMxO0JFMEE7MTEwNyAxMTcyIDExQzE7CitCRTBCO0JFMEI7MTEwNyAxMTcyIDExQzI7QkUwQjsxMTA3IDExNzIgMTFDMjsKK0JFMEM7QkUwQzsxMTA3IDExNzM7QkUwQzsxMTA3IDExNzM7CitCRTBEO0JFMEQ7MTEwNyAxMTczIDExQTg7QkUwRDsxMTA3IDExNzMgMTFBODsKK0JFMEU7QkUwRTsxMTA3IDExNzMgMTFBOTtCRTBFOzExMDcgMTE3MyAxMUE5OworQkUwRjtCRTBGOzExMDcgMTE3MyAxMUFBO0JFMEY7MTEwNyAxMTczIDExQUE7CitCRTEwO0JFMTA7MTEwNyAxMTczIDExQUI7QkUxMDsxMTA3IDExNzMgMTFBQjsKK0JFMTE7QkUxMTsxMTA3IDExNzMgMTFBQztCRTExOzExMDcgMTE3MyAxMUFDOworQkUxMjtCRTEyOzExMDcgMTE3MyAxMUFEO0JFMTI7MTEwNyAxMTczIDExQUQ7CitCRTEzO0JFMTM7MTEwNyAxMTczIDExQUU7QkUxMzsxMTA3IDExNzMgMTFBRTsKK0JFMTQ7QkUxNDsxMTA3IDExNzMgMTFBRjtCRTE0OzExMDcgMTE3MyAxMUFGOworQkUxNTtCRTE1OzExMDcgMTE3MyAxMUIwO0JFMTU7MTEwNyAxMTczIDExQjA7CitCRTE2O0JFMTY7MTEwNyAxMTczIDExQjE7QkUxNjsxMTA3IDExNzMgMTFCMTsKK0JFMTc7QkUxNzsxMTA3IDExNzMgMTFCMjtCRTE3OzExMDcgMTE3MyAxMUIyOworQkUxODtCRTE4OzExMDcgMTE3MyAxMUIzO0JFMTg7MTEwNyAxMTczIDExQjM7CitCRTE5O0JFMTk7MTEwNyAxMTczIDExQjQ7QkUxOTsxMTA3IDExNzMgMTFCNDsKK0JFMUE7QkUxQTsxMTA3IDExNzMgMTFCNTtCRTFBOzExMDcgMTE3MyAxMUI1OworQkUxQjtCRTFCOzExMDcgMTE3MyAxMUI2O0JFMUI7MTEwNyAxMTczIDExQjY7CitCRTFDO0JFMUM7MTEwNyAxMTczIDExQjc7QkUxQzsxMTA3IDExNzMgMTFCNzsKK0JFMUQ7QkUxRDsxMTA3IDExNzMgMTFCODtCRTFEOzExMDcgMTE3MyAxMUI4OworQkUxRTtCRTFFOzExMDcgMTE3MyAxMUI5O0JFMUU7MTEwNyAxMTczIDExQjk7CitCRTFGO0JFMUY7MTEwNyAxMTczIDExQkE7QkUxRjsxMTA3IDExNzMgMTFCQTsKK0JFMjA7QkUyMDsxMTA3IDExNzMgMTFCQjtCRTIwOzExMDcgMTE3MyAxMUJCOworQkUyMTtCRTIxOzExMDcgMTE3MyAxMUJDO0JFMjE7MTEwNyAxMTczIDExQkM7CitCRTIyO0JFMjI7MTEwNyAxMTczIDExQkQ7QkUyMjsxMTA3IDExNzMgMTFCRDsKK0JFMjM7QkUyMzsxMTA3IDExNzMgMTFCRTtCRTIzOzExMDcgMTE3MyAxMUJFOworQkUyNDtCRTI0OzExMDcgMTE3MyAxMUJGO0JFMjQ7MTEwNyAxMTczIDExQkY7CitCRTI1O0JFMjU7MTEwNyAxMTczIDExQzA7QkUyNTsxMTA3IDExNzMgMTFDMDsKK0JFMjY7QkUyNjsxMTA3IDExNzMgMTFDMTtCRTI2OzExMDcgMTE3MyAxMUMxOworQkUyNztCRTI3OzExMDcgMTE3MyAxMUMyO0JFMjc7MTEwNyAxMTczIDExQzI7CitCRTI4O0JFMjg7MTEwNyAxMTc0O0JFMjg7MTEwNyAxMTc0OworQkUyOTtCRTI5OzExMDcgMTE3NCAxMUE4O0JFMjk7MTEwNyAxMTc0IDExQTg7CitCRTJBO0JFMkE7MTEwNyAxMTc0IDExQTk7QkUyQTsxMTA3IDExNzQgMTFBOTsKK0JFMkI7QkUyQjsxMTA3IDExNzQgMTFBQTtCRTJCOzExMDcgMTE3NCAxMUFBOworQkUyQztCRTJDOzExMDcgMTE3NCAxMUFCO0JFMkM7MTEwNyAxMTc0IDExQUI7CitCRTJEO0JFMkQ7MTEwNyAxMTc0IDExQUM7QkUyRDsxMTA3IDExNzQgMTFBQzsKK0JFMkU7QkUyRTsxMTA3IDExNzQgMTFBRDtCRTJFOzExMDcgMTE3NCAxMUFEOworQkUyRjtCRTJGOzExMDcgMTE3NCAxMUFFO0JFMkY7MTEwNyAxMTc0IDExQUU7CitCRTMwO0JFMzA7MTEwNyAxMTc0IDExQUY7QkUzMDsxMTA3IDExNzQgMTFBRjsKK0JFMzE7QkUzMTsxMTA3IDExNzQgMTFCMDtCRTMxOzExMDcgMTE3NCAxMUIwOworQkUzMjtCRTMyOzExMDcgMTE3NCAxMUIxO0JFMzI7MTEwNyAxMTc0IDExQjE7CitCRTMzO0JFMzM7MTEwNyAxMTc0IDExQjI7QkUzMzsxMTA3IDExNzQgMTFCMjsKK0JFMzQ7QkUzNDsxMTA3IDExNzQgMTFCMztCRTM0OzExMDcgMTE3NCAxMUIzOworQkUzNTtCRTM1OzExMDcgMTE3NCAxMUI0O0JFMzU7MTEwNyAxMTc0IDExQjQ7CitCRTM2O0JFMzY7MTEwNyAxMTc0IDExQjU7QkUzNjsxMTA3IDExNzQgMTFCNTsKK0JFMzc7QkUzNzsxMTA3IDExNzQgMTFCNjtCRTM3OzExMDcgMTE3NCAxMUI2OworQkUzODtCRTM4OzExMDcgMTE3NCAxMUI3O0JFMzg7MTEwNyAxMTc0IDExQjc7CitCRTM5O0JFMzk7MTEwNyAxMTc0IDExQjg7QkUzOTsxMTA3IDExNzQgMTFCODsKK0JFM0E7QkUzQTsxMTA3IDExNzQgMTFCOTtCRTNBOzExMDcgMTE3NCAxMUI5OworQkUzQjtCRTNCOzExMDcgMTE3NCAxMUJBO0JFM0I7MTEwNyAxMTc0IDExQkE7CitCRTNDO0JFM0M7MTEwNyAxMTc0IDExQkI7QkUzQzsxMTA3IDExNzQgMTFCQjsKK0JFM0Q7QkUzRDsxMTA3IDExNzQgMTFCQztCRTNEOzExMDcgMTE3NCAxMUJDOworQkUzRTtCRTNFOzExMDcgMTE3NCAxMUJEO0JFM0U7MTEwNyAxMTc0IDExQkQ7CitCRTNGO0JFM0Y7MTEwNyAxMTc0IDExQkU7QkUzRjsxMTA3IDExNzQgMTFCRTsKK0JFNDA7QkU0MDsxMTA3IDExNzQgMTFCRjtCRTQwOzExMDcgMTE3NCAxMUJGOworQkU0MTtCRTQxOzExMDcgMTE3NCAxMUMwO0JFNDE7MTEwNyAxMTc0IDExQzA7CitCRTQyO0JFNDI7MTEwNyAxMTc0IDExQzE7QkU0MjsxMTA3IDExNzQgMTFDMTsKK0JFNDM7QkU0MzsxMTA3IDExNzQgMTFDMjtCRTQzOzExMDcgMTE3NCAxMUMyOworQkU0NDtCRTQ0OzExMDcgMTE3NTtCRTQ0OzExMDcgMTE3NTsKK0JFNDU7QkU0NTsxMTA3IDExNzUgMTFBODtCRTQ1OzExMDcgMTE3NSAxMUE4OworQkU0NjtCRTQ2OzExMDcgMTE3NSAxMUE5O0JFNDY7MTEwNyAxMTc1IDExQTk7CitCRTQ3O0JFNDc7MTEwNyAxMTc1IDExQUE7QkU0NzsxMTA3IDExNzUgMTFBQTsKK0JFNDg7QkU0ODsxMTA3IDExNzUgMTFBQjtCRTQ4OzExMDcgMTE3NSAxMUFCOworQkU0OTtCRTQ5OzExMDcgMTE3NSAxMUFDO0JFNDk7MTEwNyAxMTc1IDExQUM7CitCRTRBO0JFNEE7MTEwNyAxMTc1IDExQUQ7QkU0QTsxMTA3IDExNzUgMTFBRDsKK0JFNEI7QkU0QjsxMTA3IDExNzUgMTFBRTtCRTRCOzExMDcgMTE3NSAxMUFFOworQkU0QztCRTRDOzExMDcgMTE3NSAxMUFGO0JFNEM7MTEwNyAxMTc1IDExQUY7CitCRTREO0JFNEQ7MTEwNyAxMTc1IDExQjA7QkU0RDsxMTA3IDExNzUgMTFCMDsKK0JFNEU7QkU0RTsxMTA3IDExNzUgMTFCMTtCRTRFOzExMDcgMTE3NSAxMUIxOworQkU0RjtCRTRGOzExMDcgMTE3NSAxMUIyO0JFNEY7MTEwNyAxMTc1IDExQjI7CitCRTUwO0JFNTA7MTEwNyAxMTc1IDExQjM7QkU1MDsxMTA3IDExNzUgMTFCMzsKK0JFNTE7QkU1MTsxMTA3IDExNzUgMTFCNDtCRTUxOzExMDcgMTE3NSAxMUI0OworQkU1MjtCRTUyOzExMDcgMTE3NSAxMUI1O0JFNTI7MTEwNyAxMTc1IDExQjU7CitCRTUzO0JFNTM7MTEwNyAxMTc1IDExQjY7QkU1MzsxMTA3IDExNzUgMTFCNjsKK0JFNTQ7QkU1NDsxMTA3IDExNzUgMTFCNztCRTU0OzExMDcgMTE3NSAxMUI3OworQkU1NTtCRTU1OzExMDcgMTE3NSAxMUI4O0JFNTU7MTEwNyAxMTc1IDExQjg7CitCRTU2O0JFNTY7MTEwNyAxMTc1IDExQjk7QkU1NjsxMTA3IDExNzUgMTFCOTsKK0JFNTc7QkU1NzsxMTA3IDExNzUgMTFCQTtCRTU3OzExMDcgMTE3NSAxMUJBOworQkU1ODtCRTU4OzExMDcgMTE3NSAxMUJCO0JFNTg7MTEwNyAxMTc1IDExQkI7CitCRTU5O0JFNTk7MTEwNyAxMTc1IDExQkM7QkU1OTsxMTA3IDExNzUgMTFCQzsKK0JFNUE7QkU1QTsxMTA3IDExNzUgMTFCRDtCRTVBOzExMDcgMTE3NSAxMUJEOworQkU1QjtCRTVCOzExMDcgMTE3NSAxMUJFO0JFNUI7MTEwNyAxMTc1IDExQkU7CitCRTVDO0JFNUM7MTEwNyAxMTc1IDExQkY7QkU1QzsxMTA3IDExNzUgMTFCRjsKK0JFNUQ7QkU1RDsxMTA3IDExNzUgMTFDMDtCRTVEOzExMDcgMTE3NSAxMUMwOworQkU1RTtCRTVFOzExMDcgMTE3NSAxMUMxO0JFNUU7MTEwNyAxMTc1IDExQzE7CitCRTVGO0JFNUY7MTEwNyAxMTc1IDExQzI7QkU1RjsxMTA3IDExNzUgMTFDMjsKK0JFNjA7QkU2MDsxMTA4IDExNjE7QkU2MDsxMTA4IDExNjE7CitCRTYxO0JFNjE7MTEwOCAxMTYxIDExQTg7QkU2MTsxMTA4IDExNjEgMTFBODsKK0JFNjI7QkU2MjsxMTA4IDExNjEgMTFBOTtCRTYyOzExMDggMTE2MSAxMUE5OworQkU2MztCRTYzOzExMDggMTE2MSAxMUFBO0JFNjM7MTEwOCAxMTYxIDExQUE7CitCRTY0O0JFNjQ7MTEwOCAxMTYxIDExQUI7QkU2NDsxMTA4IDExNjEgMTFBQjsKK0JFNjU7QkU2NTsxMTA4IDExNjEgMTFBQztCRTY1OzExMDggMTE2MSAxMUFDOworQkU2NjtCRTY2OzExMDggMTE2MSAxMUFEO0JFNjY7MTEwOCAxMTYxIDExQUQ7CitCRTY3O0JFNjc7MTEwOCAxMTYxIDExQUU7QkU2NzsxMTA4IDExNjEgMTFBRTsKK0JFNjg7QkU2ODsxMTA4IDExNjEgMTFBRjtCRTY4OzExMDggMTE2MSAxMUFGOworQkU2OTtCRTY5OzExMDggMTE2MSAxMUIwO0JFNjk7MTEwOCAxMTYxIDExQjA7CitCRTZBO0JFNkE7MTEwOCAxMTYxIDExQjE7QkU2QTsxMTA4IDExNjEgMTFCMTsKK0JFNkI7QkU2QjsxMTA4IDExNjEgMTFCMjtCRTZCOzExMDggMTE2MSAxMUIyOworQkU2QztCRTZDOzExMDggMTE2MSAxMUIzO0JFNkM7MTEwOCAxMTYxIDExQjM7CitCRTZEO0JFNkQ7MTEwOCAxMTYxIDExQjQ7QkU2RDsxMTA4IDExNjEgMTFCNDsKK0JFNkU7QkU2RTsxMTA4IDExNjEgMTFCNTtCRTZFOzExMDggMTE2MSAxMUI1OworQkU2RjtCRTZGOzExMDggMTE2MSAxMUI2O0JFNkY7MTEwOCAxMTYxIDExQjY7CitCRTcwO0JFNzA7MTEwOCAxMTYxIDExQjc7QkU3MDsxMTA4IDExNjEgMTFCNzsKK0JFNzE7QkU3MTsxMTA4IDExNjEgMTFCODtCRTcxOzExMDggMTE2MSAxMUI4OworQkU3MjtCRTcyOzExMDggMTE2MSAxMUI5O0JFNzI7MTEwOCAxMTYxIDExQjk7CitCRTczO0JFNzM7MTEwOCAxMTYxIDExQkE7QkU3MzsxMTA4IDExNjEgMTFCQTsKK0JFNzQ7QkU3NDsxMTA4IDExNjEgMTFCQjtCRTc0OzExMDggMTE2MSAxMUJCOworQkU3NTtCRTc1OzExMDggMTE2MSAxMUJDO0JFNzU7MTEwOCAxMTYxIDExQkM7CitCRTc2O0JFNzY7MTEwOCAxMTYxIDExQkQ7QkU3NjsxMTA4IDExNjEgMTFCRDsKK0JFNzc7QkU3NzsxMTA4IDExNjEgMTFCRTtCRTc3OzExMDggMTE2MSAxMUJFOworQkU3ODtCRTc4OzExMDggMTE2MSAxMUJGO0JFNzg7MTEwOCAxMTYxIDExQkY7CitCRTc5O0JFNzk7MTEwOCAxMTYxIDExQzA7QkU3OTsxMTA4IDExNjEgMTFDMDsKK0JFN0E7QkU3QTsxMTA4IDExNjEgMTFDMTtCRTdBOzExMDggMTE2MSAxMUMxOworQkU3QjtCRTdCOzExMDggMTE2MSAxMUMyO0JFN0I7MTEwOCAxMTYxIDExQzI7CitCRTdDO0JFN0M7MTEwOCAxMTYyO0JFN0M7MTEwOCAxMTYyOworQkU3RDtCRTdEOzExMDggMTE2MiAxMUE4O0JFN0Q7MTEwOCAxMTYyIDExQTg7CitCRTdFO0JFN0U7MTEwOCAxMTYyIDExQTk7QkU3RTsxMTA4IDExNjIgMTFBOTsKK0JFN0Y7QkU3RjsxMTA4IDExNjIgMTFBQTtCRTdGOzExMDggMTE2MiAxMUFBOworQkU4MDtCRTgwOzExMDggMTE2MiAxMUFCO0JFODA7MTEwOCAxMTYyIDExQUI7CitCRTgxO0JFODE7MTEwOCAxMTYyIDExQUM7QkU4MTsxMTA4IDExNjIgMTFBQzsKK0JFODI7QkU4MjsxMTA4IDExNjIgMTFBRDtCRTgyOzExMDggMTE2MiAxMUFEOworQkU4MztCRTgzOzExMDggMTE2MiAxMUFFO0JFODM7MTEwOCAxMTYyIDExQUU7CitCRTg0O0JFODQ7MTEwOCAxMTYyIDExQUY7QkU4NDsxMTA4IDExNjIgMTFBRjsKK0JFODU7QkU4NTsxMTA4IDExNjIgMTFCMDtCRTg1OzExMDggMTE2MiAxMUIwOworQkU4NjtCRTg2OzExMDggMTE2MiAxMUIxO0JFODY7MTEwOCAxMTYyIDExQjE7CitCRTg3O0JFODc7MTEwOCAxMTYyIDExQjI7QkU4NzsxMTA4IDExNjIgMTFCMjsKK0JFODg7QkU4ODsxMTA4IDExNjIgMTFCMztCRTg4OzExMDggMTE2MiAxMUIzOworQkU4OTtCRTg5OzExMDggMTE2MiAxMUI0O0JFODk7MTEwOCAxMTYyIDExQjQ7CitCRThBO0JFOEE7MTEwOCAxMTYyIDExQjU7QkU4QTsxMTA4IDExNjIgMTFCNTsKK0JFOEI7QkU4QjsxMTA4IDExNjIgMTFCNjtCRThCOzExMDggMTE2MiAxMUI2OworQkU4QztCRThDOzExMDggMTE2MiAxMUI3O0JFOEM7MTEwOCAxMTYyIDExQjc7CitCRThEO0JFOEQ7MTEwOCAxMTYyIDExQjg7QkU4RDsxMTA4IDExNjIgMTFCODsKK0JFOEU7QkU4RTsxMTA4IDExNjIgMTFCOTtCRThFOzExMDggMTE2MiAxMUI5OworQkU4RjtCRThGOzExMDggMTE2MiAxMUJBO0JFOEY7MTEwOCAxMTYyIDExQkE7CitCRTkwO0JFOTA7MTEwOCAxMTYyIDExQkI7QkU5MDsxMTA4IDExNjIgMTFCQjsKK0JFOTE7QkU5MTsxMTA4IDExNjIgMTFCQztCRTkxOzExMDggMTE2MiAxMUJDOworQkU5MjtCRTkyOzExMDggMTE2MiAxMUJEO0JFOTI7MTEwOCAxMTYyIDExQkQ7CitCRTkzO0JFOTM7MTEwOCAxMTYyIDExQkU7QkU5MzsxMTA4IDExNjIgMTFCRTsKK0JFOTQ7QkU5NDsxMTA4IDExNjIgMTFCRjtCRTk0OzExMDggMTE2MiAxMUJGOworQkU5NTtCRTk1OzExMDggMTE2MiAxMUMwO0JFOTU7MTEwOCAxMTYyIDExQzA7CitCRTk2O0JFOTY7MTEwOCAxMTYyIDExQzE7QkU5NjsxMTA4IDExNjIgMTFDMTsKK0JFOTc7QkU5NzsxMTA4IDExNjIgMTFDMjtCRTk3OzExMDggMTE2MiAxMUMyOworQkU5ODtCRTk4OzExMDggMTE2MztCRTk4OzExMDggMTE2MzsKK0JFOTk7QkU5OTsxMTA4IDExNjMgMTFBODtCRTk5OzExMDggMTE2MyAxMUE4OworQkU5QTtCRTlBOzExMDggMTE2MyAxMUE5O0JFOUE7MTEwOCAxMTYzIDExQTk7CitCRTlCO0JFOUI7MTEwOCAxMTYzIDExQUE7QkU5QjsxMTA4IDExNjMgMTFBQTsKK0JFOUM7QkU5QzsxMTA4IDExNjMgMTFBQjtCRTlDOzExMDggMTE2MyAxMUFCOworQkU5RDtCRTlEOzExMDggMTE2MyAxMUFDO0JFOUQ7MTEwOCAxMTYzIDExQUM7CitCRTlFO0JFOUU7MTEwOCAxMTYzIDExQUQ7QkU5RTsxMTA4IDExNjMgMTFBRDsKK0JFOUY7QkU5RjsxMTA4IDExNjMgMTFBRTtCRTlGOzExMDggMTE2MyAxMUFFOworQkVBMDtCRUEwOzExMDggMTE2MyAxMUFGO0JFQTA7MTEwOCAxMTYzIDExQUY7CitCRUExO0JFQTE7MTEwOCAxMTYzIDExQjA7QkVBMTsxMTA4IDExNjMgMTFCMDsKK0JFQTI7QkVBMjsxMTA4IDExNjMgMTFCMTtCRUEyOzExMDggMTE2MyAxMUIxOworQkVBMztCRUEzOzExMDggMTE2MyAxMUIyO0JFQTM7MTEwOCAxMTYzIDExQjI7CitCRUE0O0JFQTQ7MTEwOCAxMTYzIDExQjM7QkVBNDsxMTA4IDExNjMgMTFCMzsKK0JFQTU7QkVBNTsxMTA4IDExNjMgMTFCNDtCRUE1OzExMDggMTE2MyAxMUI0OworQkVBNjtCRUE2OzExMDggMTE2MyAxMUI1O0JFQTY7MTEwOCAxMTYzIDExQjU7CitCRUE3O0JFQTc7MTEwOCAxMTYzIDExQjY7QkVBNzsxMTA4IDExNjMgMTFCNjsKK0JFQTg7QkVBODsxMTA4IDExNjMgMTFCNztCRUE4OzExMDggMTE2MyAxMUI3OworQkVBOTtCRUE5OzExMDggMTE2MyAxMUI4O0JFQTk7MTEwOCAxMTYzIDExQjg7CitCRUFBO0JFQUE7MTEwOCAxMTYzIDExQjk7QkVBQTsxMTA4IDExNjMgMTFCOTsKK0JFQUI7QkVBQjsxMTA4IDExNjMgMTFCQTtCRUFCOzExMDggMTE2MyAxMUJBOworQkVBQztCRUFDOzExMDggMTE2MyAxMUJCO0JFQUM7MTEwOCAxMTYzIDExQkI7CitCRUFEO0JFQUQ7MTEwOCAxMTYzIDExQkM7QkVBRDsxMTA4IDExNjMgMTFCQzsKK0JFQUU7QkVBRTsxMTA4IDExNjMgMTFCRDtCRUFFOzExMDggMTE2MyAxMUJEOworQkVBRjtCRUFGOzExMDggMTE2MyAxMUJFO0JFQUY7MTEwOCAxMTYzIDExQkU7CitCRUIwO0JFQjA7MTEwOCAxMTYzIDExQkY7QkVCMDsxMTA4IDExNjMgMTFCRjsKK0JFQjE7QkVCMTsxMTA4IDExNjMgMTFDMDtCRUIxOzExMDggMTE2MyAxMUMwOworQkVCMjtCRUIyOzExMDggMTE2MyAxMUMxO0JFQjI7MTEwOCAxMTYzIDExQzE7CitCRUIzO0JFQjM7MTEwOCAxMTYzIDExQzI7QkVCMzsxMTA4IDExNjMgMTFDMjsKK0JFQjQ7QkVCNDsxMTA4IDExNjQ7QkVCNDsxMTA4IDExNjQ7CitCRUI1O0JFQjU7MTEwOCAxMTY0IDExQTg7QkVCNTsxMTA4IDExNjQgMTFBODsKK0JFQjY7QkVCNjsxMTA4IDExNjQgMTFBOTtCRUI2OzExMDggMTE2NCAxMUE5OworQkVCNztCRUI3OzExMDggMTE2NCAxMUFBO0JFQjc7MTEwOCAxMTY0IDExQUE7CitCRUI4O0JFQjg7MTEwOCAxMTY0IDExQUI7QkVCODsxMTA4IDExNjQgMTFBQjsKK0JFQjk7QkVCOTsxMTA4IDExNjQgMTFBQztCRUI5OzExMDggMTE2NCAxMUFDOworQkVCQTtCRUJBOzExMDggMTE2NCAxMUFEO0JFQkE7MTEwOCAxMTY0IDExQUQ7CitCRUJCO0JFQkI7MTEwOCAxMTY0IDExQUU7QkVCQjsxMTA4IDExNjQgMTFBRTsKK0JFQkM7QkVCQzsxMTA4IDExNjQgMTFBRjtCRUJDOzExMDggMTE2NCAxMUFGOworQkVCRDtCRUJEOzExMDggMTE2NCAxMUIwO0JFQkQ7MTEwOCAxMTY0IDExQjA7CitCRUJFO0JFQkU7MTEwOCAxMTY0IDExQjE7QkVCRTsxMTA4IDExNjQgMTFCMTsKK0JFQkY7QkVCRjsxMTA4IDExNjQgMTFCMjtCRUJGOzExMDggMTE2NCAxMUIyOworQkVDMDtCRUMwOzExMDggMTE2NCAxMUIzO0JFQzA7MTEwOCAxMTY0IDExQjM7CitCRUMxO0JFQzE7MTEwOCAxMTY0IDExQjQ7QkVDMTsxMTA4IDExNjQgMTFCNDsKK0JFQzI7QkVDMjsxMTA4IDExNjQgMTFCNTtCRUMyOzExMDggMTE2NCAxMUI1OworQkVDMztCRUMzOzExMDggMTE2NCAxMUI2O0JFQzM7MTEwOCAxMTY0IDExQjY7CitCRUM0O0JFQzQ7MTEwOCAxMTY0IDExQjc7QkVDNDsxMTA4IDExNjQgMTFCNzsKK0JFQzU7QkVDNTsxMTA4IDExNjQgMTFCODtCRUM1OzExMDggMTE2NCAxMUI4OworQkVDNjtCRUM2OzExMDggMTE2NCAxMUI5O0JFQzY7MTEwOCAxMTY0IDExQjk7CitCRUM3O0JFQzc7MTEwOCAxMTY0IDExQkE7QkVDNzsxMTA4IDExNjQgMTFCQTsKK0JFQzg7QkVDODsxMTA4IDExNjQgMTFCQjtCRUM4OzExMDggMTE2NCAxMUJCOworQkVDOTtCRUM5OzExMDggMTE2NCAxMUJDO0JFQzk7MTEwOCAxMTY0IDExQkM7CitCRUNBO0JFQ0E7MTEwOCAxMTY0IDExQkQ7QkVDQTsxMTA4IDExNjQgMTFCRDsKK0JFQ0I7QkVDQjsxMTA4IDExNjQgMTFCRTtCRUNCOzExMDggMTE2NCAxMUJFOworQkVDQztCRUNDOzExMDggMTE2NCAxMUJGO0JFQ0M7MTEwOCAxMTY0IDExQkY7CitCRUNEO0JFQ0Q7MTEwOCAxMTY0IDExQzA7QkVDRDsxMTA4IDExNjQgMTFDMDsKK0JFQ0U7QkVDRTsxMTA4IDExNjQgMTFDMTtCRUNFOzExMDggMTE2NCAxMUMxOworQkVDRjtCRUNGOzExMDggMTE2NCAxMUMyO0JFQ0Y7MTEwOCAxMTY0IDExQzI7CitCRUQwO0JFRDA7MTEwOCAxMTY1O0JFRDA7MTEwOCAxMTY1OworQkVEMTtCRUQxOzExMDggMTE2NSAxMUE4O0JFRDE7MTEwOCAxMTY1IDExQTg7CitCRUQyO0JFRDI7MTEwOCAxMTY1IDExQTk7QkVEMjsxMTA4IDExNjUgMTFBOTsKK0JFRDM7QkVEMzsxMTA4IDExNjUgMTFBQTtCRUQzOzExMDggMTE2NSAxMUFBOworQkVENDtCRUQ0OzExMDggMTE2NSAxMUFCO0JFRDQ7MTEwOCAxMTY1IDExQUI7CitCRUQ1O0JFRDU7MTEwOCAxMTY1IDExQUM7QkVENTsxMTA4IDExNjUgMTFBQzsKK0JFRDY7QkVENjsxMTA4IDExNjUgMTFBRDtCRUQ2OzExMDggMTE2NSAxMUFEOworQkVENztCRUQ3OzExMDggMTE2NSAxMUFFO0JFRDc7MTEwOCAxMTY1IDExQUU7CitCRUQ4O0JFRDg7MTEwOCAxMTY1IDExQUY7QkVEODsxMTA4IDExNjUgMTFBRjsKK0JFRDk7QkVEOTsxMTA4IDExNjUgMTFCMDtCRUQ5OzExMDggMTE2NSAxMUIwOworQkVEQTtCRURBOzExMDggMTE2NSAxMUIxO0JFREE7MTEwOCAxMTY1IDExQjE7CitCRURCO0JFREI7MTEwOCAxMTY1IDExQjI7QkVEQjsxMTA4IDExNjUgMTFCMjsKK0JFREM7QkVEQzsxMTA4IDExNjUgMTFCMztCRURDOzExMDggMTE2NSAxMUIzOworQkVERDtCRUREOzExMDggMTE2NSAxMUI0O0JFREQ7MTEwOCAxMTY1IDExQjQ7CitCRURFO0JFREU7MTEwOCAxMTY1IDExQjU7QkVERTsxMTA4IDExNjUgMTFCNTsKK0JFREY7QkVERjsxMTA4IDExNjUgMTFCNjtCRURGOzExMDggMTE2NSAxMUI2OworQkVFMDtCRUUwOzExMDggMTE2NSAxMUI3O0JFRTA7MTEwOCAxMTY1IDExQjc7CitCRUUxO0JFRTE7MTEwOCAxMTY1IDExQjg7QkVFMTsxMTA4IDExNjUgMTFCODsKK0JFRTI7QkVFMjsxMTA4IDExNjUgMTFCOTtCRUUyOzExMDggMTE2NSAxMUI5OworQkVFMztCRUUzOzExMDggMTE2NSAxMUJBO0JFRTM7MTEwOCAxMTY1IDExQkE7CitCRUU0O0JFRTQ7MTEwOCAxMTY1IDExQkI7QkVFNDsxMTA4IDExNjUgMTFCQjsKK0JFRTU7QkVFNTsxMTA4IDExNjUgMTFCQztCRUU1OzExMDggMTE2NSAxMUJDOworQkVFNjtCRUU2OzExMDggMTE2NSAxMUJEO0JFRTY7MTEwOCAxMTY1IDExQkQ7CitCRUU3O0JFRTc7MTEwOCAxMTY1IDExQkU7QkVFNzsxMTA4IDExNjUgMTFCRTsKK0JFRTg7QkVFODsxMTA4IDExNjUgMTFCRjtCRUU4OzExMDggMTE2NSAxMUJGOworQkVFOTtCRUU5OzExMDggMTE2NSAxMUMwO0JFRTk7MTEwOCAxMTY1IDExQzA7CitCRUVBO0JFRUE7MTEwOCAxMTY1IDExQzE7QkVFQTsxMTA4IDExNjUgMTFDMTsKK0JFRUI7QkVFQjsxMTA4IDExNjUgMTFDMjtCRUVCOzExMDggMTE2NSAxMUMyOworQkVFQztCRUVDOzExMDggMTE2NjtCRUVDOzExMDggMTE2NjsKK0JFRUQ7QkVFRDsxMTA4IDExNjYgMTFBODtCRUVEOzExMDggMTE2NiAxMUE4OworQkVFRTtCRUVFOzExMDggMTE2NiAxMUE5O0JFRUU7MTEwOCAxMTY2IDExQTk7CitCRUVGO0JFRUY7MTEwOCAxMTY2IDExQUE7QkVFRjsxMTA4IDExNjYgMTFBQTsKK0JFRjA7QkVGMDsxMTA4IDExNjYgMTFBQjtCRUYwOzExMDggMTE2NiAxMUFCOworQkVGMTtCRUYxOzExMDggMTE2NiAxMUFDO0JFRjE7MTEwOCAxMTY2IDExQUM7CitCRUYyO0JFRjI7MTEwOCAxMTY2IDExQUQ7QkVGMjsxMTA4IDExNjYgMTFBRDsKK0JFRjM7QkVGMzsxMTA4IDExNjYgMTFBRTtCRUYzOzExMDggMTE2NiAxMUFFOworQkVGNDtCRUY0OzExMDggMTE2NiAxMUFGO0JFRjQ7MTEwOCAxMTY2IDExQUY7CitCRUY1O0JFRjU7MTEwOCAxMTY2IDExQjA7QkVGNTsxMTA4IDExNjYgMTFCMDsKK0JFRjY7QkVGNjsxMTA4IDExNjYgMTFCMTtCRUY2OzExMDggMTE2NiAxMUIxOworQkVGNztCRUY3OzExMDggMTE2NiAxMUIyO0JFRjc7MTEwOCAxMTY2IDExQjI7CitCRUY4O0JFRjg7MTEwOCAxMTY2IDExQjM7QkVGODsxMTA4IDExNjYgMTFCMzsKK0JFRjk7QkVGOTsxMTA4IDExNjYgMTFCNDtCRUY5OzExMDggMTE2NiAxMUI0OworQkVGQTtCRUZBOzExMDggMTE2NiAxMUI1O0JFRkE7MTEwOCAxMTY2IDExQjU7CitCRUZCO0JFRkI7MTEwOCAxMTY2IDExQjY7QkVGQjsxMTA4IDExNjYgMTFCNjsKK0JFRkM7QkVGQzsxMTA4IDExNjYgMTFCNztCRUZDOzExMDggMTE2NiAxMUI3OworQkVGRDtCRUZEOzExMDggMTE2NiAxMUI4O0JFRkQ7MTEwOCAxMTY2IDExQjg7CitCRUZFO0JFRkU7MTEwOCAxMTY2IDExQjk7QkVGRTsxMTA4IDExNjYgMTFCOTsKK0JFRkY7QkVGRjsxMTA4IDExNjYgMTFCQTtCRUZGOzExMDggMTE2NiAxMUJBOworQkYwMDtCRjAwOzExMDggMTE2NiAxMUJCO0JGMDA7MTEwOCAxMTY2IDExQkI7CitCRjAxO0JGMDE7MTEwOCAxMTY2IDExQkM7QkYwMTsxMTA4IDExNjYgMTFCQzsKK0JGMDI7QkYwMjsxMTA4IDExNjYgMTFCRDtCRjAyOzExMDggMTE2NiAxMUJEOworQkYwMztCRjAzOzExMDggMTE2NiAxMUJFO0JGMDM7MTEwOCAxMTY2IDExQkU7CitCRjA0O0JGMDQ7MTEwOCAxMTY2IDExQkY7QkYwNDsxMTA4IDExNjYgMTFCRjsKK0JGMDU7QkYwNTsxMTA4IDExNjYgMTFDMDtCRjA1OzExMDggMTE2NiAxMUMwOworQkYwNjtCRjA2OzExMDggMTE2NiAxMUMxO0JGMDY7MTEwOCAxMTY2IDExQzE7CitCRjA3O0JGMDc7MTEwOCAxMTY2IDExQzI7QkYwNzsxMTA4IDExNjYgMTFDMjsKK0JGMDg7QkYwODsxMTA4IDExNjc7QkYwODsxMTA4IDExNjc7CitCRjA5O0JGMDk7MTEwOCAxMTY3IDExQTg7QkYwOTsxMTA4IDExNjcgMTFBODsKK0JGMEE7QkYwQTsxMTA4IDExNjcgMTFBOTtCRjBBOzExMDggMTE2NyAxMUE5OworQkYwQjtCRjBCOzExMDggMTE2NyAxMUFBO0JGMEI7MTEwOCAxMTY3IDExQUE7CitCRjBDO0JGMEM7MTEwOCAxMTY3IDExQUI7QkYwQzsxMTA4IDExNjcgMTFBQjsKK0JGMEQ7QkYwRDsxMTA4IDExNjcgMTFBQztCRjBEOzExMDggMTE2NyAxMUFDOworQkYwRTtCRjBFOzExMDggMTE2NyAxMUFEO0JGMEU7MTEwOCAxMTY3IDExQUQ7CitCRjBGO0JGMEY7MTEwOCAxMTY3IDExQUU7QkYwRjsxMTA4IDExNjcgMTFBRTsKK0JGMTA7QkYxMDsxMTA4IDExNjcgMTFBRjtCRjEwOzExMDggMTE2NyAxMUFGOworQkYxMTtCRjExOzExMDggMTE2NyAxMUIwO0JGMTE7MTEwOCAxMTY3IDExQjA7CitCRjEyO0JGMTI7MTEwOCAxMTY3IDExQjE7QkYxMjsxMTA4IDExNjcgMTFCMTsKK0JGMTM7QkYxMzsxMTA4IDExNjcgMTFCMjtCRjEzOzExMDggMTE2NyAxMUIyOworQkYxNDtCRjE0OzExMDggMTE2NyAxMUIzO0JGMTQ7MTEwOCAxMTY3IDExQjM7CitCRjE1O0JGMTU7MTEwOCAxMTY3IDExQjQ7QkYxNTsxMTA4IDExNjcgMTFCNDsKK0JGMTY7QkYxNjsxMTA4IDExNjcgMTFCNTtCRjE2OzExMDggMTE2NyAxMUI1OworQkYxNztCRjE3OzExMDggMTE2NyAxMUI2O0JGMTc7MTEwOCAxMTY3IDExQjY7CitCRjE4O0JGMTg7MTEwOCAxMTY3IDExQjc7QkYxODsxMTA4IDExNjcgMTFCNzsKK0JGMTk7QkYxOTsxMTA4IDExNjcgMTFCODtCRjE5OzExMDggMTE2NyAxMUI4OworQkYxQTtCRjFBOzExMDggMTE2NyAxMUI5O0JGMUE7MTEwOCAxMTY3IDExQjk7CitCRjFCO0JGMUI7MTEwOCAxMTY3IDExQkE7QkYxQjsxMTA4IDExNjcgMTFCQTsKK0JGMUM7QkYxQzsxMTA4IDExNjcgMTFCQjtCRjFDOzExMDggMTE2NyAxMUJCOworQkYxRDtCRjFEOzExMDggMTE2NyAxMUJDO0JGMUQ7MTEwOCAxMTY3IDExQkM7CitCRjFFO0JGMUU7MTEwOCAxMTY3IDExQkQ7QkYxRTsxMTA4IDExNjcgMTFCRDsKK0JGMUY7QkYxRjsxMTA4IDExNjcgMTFCRTtCRjFGOzExMDggMTE2NyAxMUJFOworQkYyMDtCRjIwOzExMDggMTE2NyAxMUJGO0JGMjA7MTEwOCAxMTY3IDExQkY7CitCRjIxO0JGMjE7MTEwOCAxMTY3IDExQzA7QkYyMTsxMTA4IDExNjcgMTFDMDsKK0JGMjI7QkYyMjsxMTA4IDExNjcgMTFDMTtCRjIyOzExMDggMTE2NyAxMUMxOworQkYyMztCRjIzOzExMDggMTE2NyAxMUMyO0JGMjM7MTEwOCAxMTY3IDExQzI7CitCRjI0O0JGMjQ7MTEwOCAxMTY4O0JGMjQ7MTEwOCAxMTY4OworQkYyNTtCRjI1OzExMDggMTE2OCAxMUE4O0JGMjU7MTEwOCAxMTY4IDExQTg7CitCRjI2O0JGMjY7MTEwOCAxMTY4IDExQTk7QkYyNjsxMTA4IDExNjggMTFBOTsKK0JGMjc7QkYyNzsxMTA4IDExNjggMTFBQTtCRjI3OzExMDggMTE2OCAxMUFBOworQkYyODtCRjI4OzExMDggMTE2OCAxMUFCO0JGMjg7MTEwOCAxMTY4IDExQUI7CitCRjI5O0JGMjk7MTEwOCAxMTY4IDExQUM7QkYyOTsxMTA4IDExNjggMTFBQzsKK0JGMkE7QkYyQTsxMTA4IDExNjggMTFBRDtCRjJBOzExMDggMTE2OCAxMUFEOworQkYyQjtCRjJCOzExMDggMTE2OCAxMUFFO0JGMkI7MTEwOCAxMTY4IDExQUU7CitCRjJDO0JGMkM7MTEwOCAxMTY4IDExQUY7QkYyQzsxMTA4IDExNjggMTFBRjsKK0JGMkQ7QkYyRDsxMTA4IDExNjggMTFCMDtCRjJEOzExMDggMTE2OCAxMUIwOworQkYyRTtCRjJFOzExMDggMTE2OCAxMUIxO0JGMkU7MTEwOCAxMTY4IDExQjE7CitCRjJGO0JGMkY7MTEwOCAxMTY4IDExQjI7QkYyRjsxMTA4IDExNjggMTFCMjsKK0JGMzA7QkYzMDsxMTA4IDExNjggMTFCMztCRjMwOzExMDggMTE2OCAxMUIzOworQkYzMTtCRjMxOzExMDggMTE2OCAxMUI0O0JGMzE7MTEwOCAxMTY4IDExQjQ7CitCRjMyO0JGMzI7MTEwOCAxMTY4IDExQjU7QkYzMjsxMTA4IDExNjggMTFCNTsKK0JGMzM7QkYzMzsxMTA4IDExNjggMTFCNjtCRjMzOzExMDggMTE2OCAxMUI2OworQkYzNDtCRjM0OzExMDggMTE2OCAxMUI3O0JGMzQ7MTEwOCAxMTY4IDExQjc7CitCRjM1O0JGMzU7MTEwOCAxMTY4IDExQjg7QkYzNTsxMTA4IDExNjggMTFCODsKK0JGMzY7QkYzNjsxMTA4IDExNjggMTFCOTtCRjM2OzExMDggMTE2OCAxMUI5OworQkYzNztCRjM3OzExMDggMTE2OCAxMUJBO0JGMzc7MTEwOCAxMTY4IDExQkE7CitCRjM4O0JGMzg7MTEwOCAxMTY4IDExQkI7QkYzODsxMTA4IDExNjggMTFCQjsKK0JGMzk7QkYzOTsxMTA4IDExNjggMTFCQztCRjM5OzExMDggMTE2OCAxMUJDOworQkYzQTtCRjNBOzExMDggMTE2OCAxMUJEO0JGM0E7MTEwOCAxMTY4IDExQkQ7CitCRjNCO0JGM0I7MTEwOCAxMTY4IDExQkU7QkYzQjsxMTA4IDExNjggMTFCRTsKK0JGM0M7QkYzQzsxMTA4IDExNjggMTFCRjtCRjNDOzExMDggMTE2OCAxMUJGOworQkYzRDtCRjNEOzExMDggMTE2OCAxMUMwO0JGM0Q7MTEwOCAxMTY4IDExQzA7CitCRjNFO0JGM0U7MTEwOCAxMTY4IDExQzE7QkYzRTsxMTA4IDExNjggMTFDMTsKK0JGM0Y7QkYzRjsxMTA4IDExNjggMTFDMjtCRjNGOzExMDggMTE2OCAxMUMyOworQkY0MDtCRjQwOzExMDggMTE2OTtCRjQwOzExMDggMTE2OTsKK0JGNDE7QkY0MTsxMTA4IDExNjkgMTFBODtCRjQxOzExMDggMTE2OSAxMUE4OworQkY0MjtCRjQyOzExMDggMTE2OSAxMUE5O0JGNDI7MTEwOCAxMTY5IDExQTk7CitCRjQzO0JGNDM7MTEwOCAxMTY5IDExQUE7QkY0MzsxMTA4IDExNjkgMTFBQTsKK0JGNDQ7QkY0NDsxMTA4IDExNjkgMTFBQjtCRjQ0OzExMDggMTE2OSAxMUFCOworQkY0NTtCRjQ1OzExMDggMTE2OSAxMUFDO0JGNDU7MTEwOCAxMTY5IDExQUM7CitCRjQ2O0JGNDY7MTEwOCAxMTY5IDExQUQ7QkY0NjsxMTA4IDExNjkgMTFBRDsKK0JGNDc7QkY0NzsxMTA4IDExNjkgMTFBRTtCRjQ3OzExMDggMTE2OSAxMUFFOworQkY0ODtCRjQ4OzExMDggMTE2OSAxMUFGO0JGNDg7MTEwOCAxMTY5IDExQUY7CitCRjQ5O0JGNDk7MTEwOCAxMTY5IDExQjA7QkY0OTsxMTA4IDExNjkgMTFCMDsKK0JGNEE7QkY0QTsxMTA4IDExNjkgMTFCMTtCRjRBOzExMDggMTE2OSAxMUIxOworQkY0QjtCRjRCOzExMDggMTE2OSAxMUIyO0JGNEI7MTEwOCAxMTY5IDExQjI7CitCRjRDO0JGNEM7MTEwOCAxMTY5IDExQjM7QkY0QzsxMTA4IDExNjkgMTFCMzsKK0JGNEQ7QkY0RDsxMTA4IDExNjkgMTFCNDtCRjREOzExMDggMTE2OSAxMUI0OworQkY0RTtCRjRFOzExMDggMTE2OSAxMUI1O0JGNEU7MTEwOCAxMTY5IDExQjU7CitCRjRGO0JGNEY7MTEwOCAxMTY5IDExQjY7QkY0RjsxMTA4IDExNjkgMTFCNjsKK0JGNTA7QkY1MDsxMTA4IDExNjkgMTFCNztCRjUwOzExMDggMTE2OSAxMUI3OworQkY1MTtCRjUxOzExMDggMTE2OSAxMUI4O0JGNTE7MTEwOCAxMTY5IDExQjg7CitCRjUyO0JGNTI7MTEwOCAxMTY5IDExQjk7QkY1MjsxMTA4IDExNjkgMTFCOTsKK0JGNTM7QkY1MzsxMTA4IDExNjkgMTFCQTtCRjUzOzExMDggMTE2OSAxMUJBOworQkY1NDtCRjU0OzExMDggMTE2OSAxMUJCO0JGNTQ7MTEwOCAxMTY5IDExQkI7CitCRjU1O0JGNTU7MTEwOCAxMTY5IDExQkM7QkY1NTsxMTA4IDExNjkgMTFCQzsKK0JGNTY7QkY1NjsxMTA4IDExNjkgMTFCRDtCRjU2OzExMDggMTE2OSAxMUJEOworQkY1NztCRjU3OzExMDggMTE2OSAxMUJFO0JGNTc7MTEwOCAxMTY5IDExQkU7CitCRjU4O0JGNTg7MTEwOCAxMTY5IDExQkY7QkY1ODsxMTA4IDExNjkgMTFCRjsKK0JGNTk7QkY1OTsxMTA4IDExNjkgMTFDMDtCRjU5OzExMDggMTE2OSAxMUMwOworQkY1QTtCRjVBOzExMDggMTE2OSAxMUMxO0JGNUE7MTEwOCAxMTY5IDExQzE7CitCRjVCO0JGNUI7MTEwOCAxMTY5IDExQzI7QkY1QjsxMTA4IDExNjkgMTFDMjsKK0JGNUM7QkY1QzsxMTA4IDExNkE7QkY1QzsxMTA4IDExNkE7CitCRjVEO0JGNUQ7MTEwOCAxMTZBIDExQTg7QkY1RDsxMTA4IDExNkEgMTFBODsKK0JGNUU7QkY1RTsxMTA4IDExNkEgMTFBOTtCRjVFOzExMDggMTE2QSAxMUE5OworQkY1RjtCRjVGOzExMDggMTE2QSAxMUFBO0JGNUY7MTEwOCAxMTZBIDExQUE7CitCRjYwO0JGNjA7MTEwOCAxMTZBIDExQUI7QkY2MDsxMTA4IDExNkEgMTFBQjsKK0JGNjE7QkY2MTsxMTA4IDExNkEgMTFBQztCRjYxOzExMDggMTE2QSAxMUFDOworQkY2MjtCRjYyOzExMDggMTE2QSAxMUFEO0JGNjI7MTEwOCAxMTZBIDExQUQ7CitCRjYzO0JGNjM7MTEwOCAxMTZBIDExQUU7QkY2MzsxMTA4IDExNkEgMTFBRTsKK0JGNjQ7QkY2NDsxMTA4IDExNkEgMTFBRjtCRjY0OzExMDggMTE2QSAxMUFGOworQkY2NTtCRjY1OzExMDggMTE2QSAxMUIwO0JGNjU7MTEwOCAxMTZBIDExQjA7CitCRjY2O0JGNjY7MTEwOCAxMTZBIDExQjE7QkY2NjsxMTA4IDExNkEgMTFCMTsKK0JGNjc7QkY2NzsxMTA4IDExNkEgMTFCMjtCRjY3OzExMDggMTE2QSAxMUIyOworQkY2ODtCRjY4OzExMDggMTE2QSAxMUIzO0JGNjg7MTEwOCAxMTZBIDExQjM7CitCRjY5O0JGNjk7MTEwOCAxMTZBIDExQjQ7QkY2OTsxMTA4IDExNkEgMTFCNDsKK0JGNkE7QkY2QTsxMTA4IDExNkEgMTFCNTtCRjZBOzExMDggMTE2QSAxMUI1OworQkY2QjtCRjZCOzExMDggMTE2QSAxMUI2O0JGNkI7MTEwOCAxMTZBIDExQjY7CitCRjZDO0JGNkM7MTEwOCAxMTZBIDExQjc7QkY2QzsxMTA4IDExNkEgMTFCNzsKK0JGNkQ7QkY2RDsxMTA4IDExNkEgMTFCODtCRjZEOzExMDggMTE2QSAxMUI4OworQkY2RTtCRjZFOzExMDggMTE2QSAxMUI5O0JGNkU7MTEwOCAxMTZBIDExQjk7CitCRjZGO0JGNkY7MTEwOCAxMTZBIDExQkE7QkY2RjsxMTA4IDExNkEgMTFCQTsKK0JGNzA7QkY3MDsxMTA4IDExNkEgMTFCQjtCRjcwOzExMDggMTE2QSAxMUJCOworQkY3MTtCRjcxOzExMDggMTE2QSAxMUJDO0JGNzE7MTEwOCAxMTZBIDExQkM7CitCRjcyO0JGNzI7MTEwOCAxMTZBIDExQkQ7QkY3MjsxMTA4IDExNkEgMTFCRDsKK0JGNzM7QkY3MzsxMTA4IDExNkEgMTFCRTtCRjczOzExMDggMTE2QSAxMUJFOworQkY3NDtCRjc0OzExMDggMTE2QSAxMUJGO0JGNzQ7MTEwOCAxMTZBIDExQkY7CitCRjc1O0JGNzU7MTEwOCAxMTZBIDExQzA7QkY3NTsxMTA4IDExNkEgMTFDMDsKK0JGNzY7QkY3NjsxMTA4IDExNkEgMTFDMTtCRjc2OzExMDggMTE2QSAxMUMxOworQkY3NztCRjc3OzExMDggMTE2QSAxMUMyO0JGNzc7MTEwOCAxMTZBIDExQzI7CitCRjc4O0JGNzg7MTEwOCAxMTZCO0JGNzg7MTEwOCAxMTZCOworQkY3OTtCRjc5OzExMDggMTE2QiAxMUE4O0JGNzk7MTEwOCAxMTZCIDExQTg7CitCRjdBO0JGN0E7MTEwOCAxMTZCIDExQTk7QkY3QTsxMTA4IDExNkIgMTFBOTsKK0JGN0I7QkY3QjsxMTA4IDExNkIgMTFBQTtCRjdCOzExMDggMTE2QiAxMUFBOworQkY3QztCRjdDOzExMDggMTE2QiAxMUFCO0JGN0M7MTEwOCAxMTZCIDExQUI7CitCRjdEO0JGN0Q7MTEwOCAxMTZCIDExQUM7QkY3RDsxMTA4IDExNkIgMTFBQzsKK0JGN0U7QkY3RTsxMTA4IDExNkIgMTFBRDtCRjdFOzExMDggMTE2QiAxMUFEOworQkY3RjtCRjdGOzExMDggMTE2QiAxMUFFO0JGN0Y7MTEwOCAxMTZCIDExQUU7CitCRjgwO0JGODA7MTEwOCAxMTZCIDExQUY7QkY4MDsxMTA4IDExNkIgMTFBRjsKK0JGODE7QkY4MTsxMTA4IDExNkIgMTFCMDtCRjgxOzExMDggMTE2QiAxMUIwOworQkY4MjtCRjgyOzExMDggMTE2QiAxMUIxO0JGODI7MTEwOCAxMTZCIDExQjE7CitCRjgzO0JGODM7MTEwOCAxMTZCIDExQjI7QkY4MzsxMTA4IDExNkIgMTFCMjsKK0JGODQ7QkY4NDsxMTA4IDExNkIgMTFCMztCRjg0OzExMDggMTE2QiAxMUIzOworQkY4NTtCRjg1OzExMDggMTE2QiAxMUI0O0JGODU7MTEwOCAxMTZCIDExQjQ7CitCRjg2O0JGODY7MTEwOCAxMTZCIDExQjU7QkY4NjsxMTA4IDExNkIgMTFCNTsKK0JGODc7QkY4NzsxMTA4IDExNkIgMTFCNjtCRjg3OzExMDggMTE2QiAxMUI2OworQkY4ODtCRjg4OzExMDggMTE2QiAxMUI3O0JGODg7MTEwOCAxMTZCIDExQjc7CitCRjg5O0JGODk7MTEwOCAxMTZCIDExQjg7QkY4OTsxMTA4IDExNkIgMTFCODsKK0JGOEE7QkY4QTsxMTA4IDExNkIgMTFCOTtCRjhBOzExMDggMTE2QiAxMUI5OworQkY4QjtCRjhCOzExMDggMTE2QiAxMUJBO0JGOEI7MTEwOCAxMTZCIDExQkE7CitCRjhDO0JGOEM7MTEwOCAxMTZCIDExQkI7QkY4QzsxMTA4IDExNkIgMTFCQjsKK0JGOEQ7QkY4RDsxMTA4IDExNkIgMTFCQztCRjhEOzExMDggMTE2QiAxMUJDOworQkY4RTtCRjhFOzExMDggMTE2QiAxMUJEO0JGOEU7MTEwOCAxMTZCIDExQkQ7CitCRjhGO0JGOEY7MTEwOCAxMTZCIDExQkU7QkY4RjsxMTA4IDExNkIgMTFCRTsKK0JGOTA7QkY5MDsxMTA4IDExNkIgMTFCRjtCRjkwOzExMDggMTE2QiAxMUJGOworQkY5MTtCRjkxOzExMDggMTE2QiAxMUMwO0JGOTE7MTEwOCAxMTZCIDExQzA7CitCRjkyO0JGOTI7MTEwOCAxMTZCIDExQzE7QkY5MjsxMTA4IDExNkIgMTFDMTsKK0JGOTM7QkY5MzsxMTA4IDExNkIgMTFDMjtCRjkzOzExMDggMTE2QiAxMUMyOworQkY5NDtCRjk0OzExMDggMTE2QztCRjk0OzExMDggMTE2QzsKK0JGOTU7QkY5NTsxMTA4IDExNkMgMTFBODtCRjk1OzExMDggMTE2QyAxMUE4OworQkY5NjtCRjk2OzExMDggMTE2QyAxMUE5O0JGOTY7MTEwOCAxMTZDIDExQTk7CitCRjk3O0JGOTc7MTEwOCAxMTZDIDExQUE7QkY5NzsxMTA4IDExNkMgMTFBQTsKK0JGOTg7QkY5ODsxMTA4IDExNkMgMTFBQjtCRjk4OzExMDggMTE2QyAxMUFCOworQkY5OTtCRjk5OzExMDggMTE2QyAxMUFDO0JGOTk7MTEwOCAxMTZDIDExQUM7CitCRjlBO0JGOUE7MTEwOCAxMTZDIDExQUQ7QkY5QTsxMTA4IDExNkMgMTFBRDsKK0JGOUI7QkY5QjsxMTA4IDExNkMgMTFBRTtCRjlCOzExMDggMTE2QyAxMUFFOworQkY5QztCRjlDOzExMDggMTE2QyAxMUFGO0JGOUM7MTEwOCAxMTZDIDExQUY7CitCRjlEO0JGOUQ7MTEwOCAxMTZDIDExQjA7QkY5RDsxMTA4IDExNkMgMTFCMDsKK0JGOUU7QkY5RTsxMTA4IDExNkMgMTFCMTtCRjlFOzExMDggMTE2QyAxMUIxOworQkY5RjtCRjlGOzExMDggMTE2QyAxMUIyO0JGOUY7MTEwOCAxMTZDIDExQjI7CitCRkEwO0JGQTA7MTEwOCAxMTZDIDExQjM7QkZBMDsxMTA4IDExNkMgMTFCMzsKK0JGQTE7QkZBMTsxMTA4IDExNkMgMTFCNDtCRkExOzExMDggMTE2QyAxMUI0OworQkZBMjtCRkEyOzExMDggMTE2QyAxMUI1O0JGQTI7MTEwOCAxMTZDIDExQjU7CitCRkEzO0JGQTM7MTEwOCAxMTZDIDExQjY7QkZBMzsxMTA4IDExNkMgMTFCNjsKK0JGQTQ7QkZBNDsxMTA4IDExNkMgMTFCNztCRkE0OzExMDggMTE2QyAxMUI3OworQkZBNTtCRkE1OzExMDggMTE2QyAxMUI4O0JGQTU7MTEwOCAxMTZDIDExQjg7CitCRkE2O0JGQTY7MTEwOCAxMTZDIDExQjk7QkZBNjsxMTA4IDExNkMgMTFCOTsKK0JGQTc7QkZBNzsxMTA4IDExNkMgMTFCQTtCRkE3OzExMDggMTE2QyAxMUJBOworQkZBODtCRkE4OzExMDggMTE2QyAxMUJCO0JGQTg7MTEwOCAxMTZDIDExQkI7CitCRkE5O0JGQTk7MTEwOCAxMTZDIDExQkM7QkZBOTsxMTA4IDExNkMgMTFCQzsKK0JGQUE7QkZBQTsxMTA4IDExNkMgMTFCRDtCRkFBOzExMDggMTE2QyAxMUJEOworQkZBQjtCRkFCOzExMDggMTE2QyAxMUJFO0JGQUI7MTEwOCAxMTZDIDExQkU7CitCRkFDO0JGQUM7MTEwOCAxMTZDIDExQkY7QkZBQzsxMTA4IDExNkMgMTFCRjsKK0JGQUQ7QkZBRDsxMTA4IDExNkMgMTFDMDtCRkFEOzExMDggMTE2QyAxMUMwOworQkZBRTtCRkFFOzExMDggMTE2QyAxMUMxO0JGQUU7MTEwOCAxMTZDIDExQzE7CitCRkFGO0JGQUY7MTEwOCAxMTZDIDExQzI7QkZBRjsxMTA4IDExNkMgMTFDMjsKK0JGQjA7QkZCMDsxMTA4IDExNkQ7QkZCMDsxMTA4IDExNkQ7CitCRkIxO0JGQjE7MTEwOCAxMTZEIDExQTg7QkZCMTsxMTA4IDExNkQgMTFBODsKK0JGQjI7QkZCMjsxMTA4IDExNkQgMTFBOTtCRkIyOzExMDggMTE2RCAxMUE5OworQkZCMztCRkIzOzExMDggMTE2RCAxMUFBO0JGQjM7MTEwOCAxMTZEIDExQUE7CitCRkI0O0JGQjQ7MTEwOCAxMTZEIDExQUI7QkZCNDsxMTA4IDExNkQgMTFBQjsKK0JGQjU7QkZCNTsxMTA4IDExNkQgMTFBQztCRkI1OzExMDggMTE2RCAxMUFDOworQkZCNjtCRkI2OzExMDggMTE2RCAxMUFEO0JGQjY7MTEwOCAxMTZEIDExQUQ7CitCRkI3O0JGQjc7MTEwOCAxMTZEIDExQUU7QkZCNzsxMTA4IDExNkQgMTFBRTsKK0JGQjg7QkZCODsxMTA4IDExNkQgMTFBRjtCRkI4OzExMDggMTE2RCAxMUFGOworQkZCOTtCRkI5OzExMDggMTE2RCAxMUIwO0JGQjk7MTEwOCAxMTZEIDExQjA7CitCRkJBO0JGQkE7MTEwOCAxMTZEIDExQjE7QkZCQTsxMTA4IDExNkQgMTFCMTsKK0JGQkI7QkZCQjsxMTA4IDExNkQgMTFCMjtCRkJCOzExMDggMTE2RCAxMUIyOworQkZCQztCRkJDOzExMDggMTE2RCAxMUIzO0JGQkM7MTEwOCAxMTZEIDExQjM7CitCRkJEO0JGQkQ7MTEwOCAxMTZEIDExQjQ7QkZCRDsxMTA4IDExNkQgMTFCNDsKK0JGQkU7QkZCRTsxMTA4IDExNkQgMTFCNTtCRkJFOzExMDggMTE2RCAxMUI1OworQkZCRjtCRkJGOzExMDggMTE2RCAxMUI2O0JGQkY7MTEwOCAxMTZEIDExQjY7CitCRkMwO0JGQzA7MTEwOCAxMTZEIDExQjc7QkZDMDsxMTA4IDExNkQgMTFCNzsKK0JGQzE7QkZDMTsxMTA4IDExNkQgMTFCODtCRkMxOzExMDggMTE2RCAxMUI4OworQkZDMjtCRkMyOzExMDggMTE2RCAxMUI5O0JGQzI7MTEwOCAxMTZEIDExQjk7CitCRkMzO0JGQzM7MTEwOCAxMTZEIDExQkE7QkZDMzsxMTA4IDExNkQgMTFCQTsKK0JGQzQ7QkZDNDsxMTA4IDExNkQgMTFCQjtCRkM0OzExMDggMTE2RCAxMUJCOworQkZDNTtCRkM1OzExMDggMTE2RCAxMUJDO0JGQzU7MTEwOCAxMTZEIDExQkM7CitCRkM2O0JGQzY7MTEwOCAxMTZEIDExQkQ7QkZDNjsxMTA4IDExNkQgMTFCRDsKK0JGQzc7QkZDNzsxMTA4IDExNkQgMTFCRTtCRkM3OzExMDggMTE2RCAxMUJFOworQkZDODtCRkM4OzExMDggMTE2RCAxMUJGO0JGQzg7MTEwOCAxMTZEIDExQkY7CitCRkM5O0JGQzk7MTEwOCAxMTZEIDExQzA7QkZDOTsxMTA4IDExNkQgMTFDMDsKK0JGQ0E7QkZDQTsxMTA4IDExNkQgMTFDMTtCRkNBOzExMDggMTE2RCAxMUMxOworQkZDQjtCRkNCOzExMDggMTE2RCAxMUMyO0JGQ0I7MTEwOCAxMTZEIDExQzI7CitCRkNDO0JGQ0M7MTEwOCAxMTZFO0JGQ0M7MTEwOCAxMTZFOworQkZDRDtCRkNEOzExMDggMTE2RSAxMUE4O0JGQ0Q7MTEwOCAxMTZFIDExQTg7CitCRkNFO0JGQ0U7MTEwOCAxMTZFIDExQTk7QkZDRTsxMTA4IDExNkUgMTFBOTsKK0JGQ0Y7QkZDRjsxMTA4IDExNkUgMTFBQTtCRkNGOzExMDggMTE2RSAxMUFBOworQkZEMDtCRkQwOzExMDggMTE2RSAxMUFCO0JGRDA7MTEwOCAxMTZFIDExQUI7CitCRkQxO0JGRDE7MTEwOCAxMTZFIDExQUM7QkZEMTsxMTA4IDExNkUgMTFBQzsKK0JGRDI7QkZEMjsxMTA4IDExNkUgMTFBRDtCRkQyOzExMDggMTE2RSAxMUFEOworQkZEMztCRkQzOzExMDggMTE2RSAxMUFFO0JGRDM7MTEwOCAxMTZFIDExQUU7CitCRkQ0O0JGRDQ7MTEwOCAxMTZFIDExQUY7QkZENDsxMTA4IDExNkUgMTFBRjsKK0JGRDU7QkZENTsxMTA4IDExNkUgMTFCMDtCRkQ1OzExMDggMTE2RSAxMUIwOworQkZENjtCRkQ2OzExMDggMTE2RSAxMUIxO0JGRDY7MTEwOCAxMTZFIDExQjE7CitCRkQ3O0JGRDc7MTEwOCAxMTZFIDExQjI7QkZENzsxMTA4IDExNkUgMTFCMjsKK0JGRDg7QkZEODsxMTA4IDExNkUgMTFCMztCRkQ4OzExMDggMTE2RSAxMUIzOworQkZEOTtCRkQ5OzExMDggMTE2RSAxMUI0O0JGRDk7MTEwOCAxMTZFIDExQjQ7CitCRkRBO0JGREE7MTEwOCAxMTZFIDExQjU7QkZEQTsxMTA4IDExNkUgMTFCNTsKK0JGREI7QkZEQjsxMTA4IDExNkUgMTFCNjtCRkRCOzExMDggMTE2RSAxMUI2OworQkZEQztCRkRDOzExMDggMTE2RSAxMUI3O0JGREM7MTEwOCAxMTZFIDExQjc7CitCRkREO0JGREQ7MTEwOCAxMTZFIDExQjg7QkZERDsxMTA4IDExNkUgMTFCODsKK0JGREU7QkZERTsxMTA4IDExNkUgMTFCOTtCRkRFOzExMDggMTE2RSAxMUI5OworQkZERjtCRkRGOzExMDggMTE2RSAxMUJBO0JGREY7MTEwOCAxMTZFIDExQkE7CitCRkUwO0JGRTA7MTEwOCAxMTZFIDExQkI7QkZFMDsxMTA4IDExNkUgMTFCQjsKK0JGRTE7QkZFMTsxMTA4IDExNkUgMTFCQztCRkUxOzExMDggMTE2RSAxMUJDOworQkZFMjtCRkUyOzExMDggMTE2RSAxMUJEO0JGRTI7MTEwOCAxMTZFIDExQkQ7CitCRkUzO0JGRTM7MTEwOCAxMTZFIDExQkU7QkZFMzsxMTA4IDExNkUgMTFCRTsKK0JGRTQ7QkZFNDsxMTA4IDExNkUgMTFCRjtCRkU0OzExMDggMTE2RSAxMUJGOworQkZFNTtCRkU1OzExMDggMTE2RSAxMUMwO0JGRTU7MTEwOCAxMTZFIDExQzA7CitCRkU2O0JGRTY7MTEwOCAxMTZFIDExQzE7QkZFNjsxMTA4IDExNkUgMTFDMTsKK0JGRTc7QkZFNzsxMTA4IDExNkUgMTFDMjtCRkU3OzExMDggMTE2RSAxMUMyOworQkZFODtCRkU4OzExMDggMTE2RjtCRkU4OzExMDggMTE2RjsKK0JGRTk7QkZFOTsxMTA4IDExNkYgMTFBODtCRkU5OzExMDggMTE2RiAxMUE4OworQkZFQTtCRkVBOzExMDggMTE2RiAxMUE5O0JGRUE7MTEwOCAxMTZGIDExQTk7CitCRkVCO0JGRUI7MTEwOCAxMTZGIDExQUE7QkZFQjsxMTA4IDExNkYgMTFBQTsKK0JGRUM7QkZFQzsxMTA4IDExNkYgMTFBQjtCRkVDOzExMDggMTE2RiAxMUFCOworQkZFRDtCRkVEOzExMDggMTE2RiAxMUFDO0JGRUQ7MTEwOCAxMTZGIDExQUM7CitCRkVFO0JGRUU7MTEwOCAxMTZGIDExQUQ7QkZFRTsxMTA4IDExNkYgMTFBRDsKK0JGRUY7QkZFRjsxMTA4IDExNkYgMTFBRTtCRkVGOzExMDggMTE2RiAxMUFFOworQkZGMDtCRkYwOzExMDggMTE2RiAxMUFGO0JGRjA7MTEwOCAxMTZGIDExQUY7CitCRkYxO0JGRjE7MTEwOCAxMTZGIDExQjA7QkZGMTsxMTA4IDExNkYgMTFCMDsKK0JGRjI7QkZGMjsxMTA4IDExNkYgMTFCMTtCRkYyOzExMDggMTE2RiAxMUIxOworQkZGMztCRkYzOzExMDggMTE2RiAxMUIyO0JGRjM7MTEwOCAxMTZGIDExQjI7CitCRkY0O0JGRjQ7MTEwOCAxMTZGIDExQjM7QkZGNDsxMTA4IDExNkYgMTFCMzsKK0JGRjU7QkZGNTsxMTA4IDExNkYgMTFCNDtCRkY1OzExMDggMTE2RiAxMUI0OworQkZGNjtCRkY2OzExMDggMTE2RiAxMUI1O0JGRjY7MTEwOCAxMTZGIDExQjU7CitCRkY3O0JGRjc7MTEwOCAxMTZGIDExQjY7QkZGNzsxMTA4IDExNkYgMTFCNjsKK0JGRjg7QkZGODsxMTA4IDExNkYgMTFCNztCRkY4OzExMDggMTE2RiAxMUI3OworQkZGOTtCRkY5OzExMDggMTE2RiAxMUI4O0JGRjk7MTEwOCAxMTZGIDExQjg7CitCRkZBO0JGRkE7MTEwOCAxMTZGIDExQjk7QkZGQTsxMTA4IDExNkYgMTFCOTsKK0JGRkI7QkZGQjsxMTA4IDExNkYgMTFCQTtCRkZCOzExMDggMTE2RiAxMUJBOworQkZGQztCRkZDOzExMDggMTE2RiAxMUJCO0JGRkM7MTEwOCAxMTZGIDExQkI7CitCRkZEO0JGRkQ7MTEwOCAxMTZGIDExQkM7QkZGRDsxMTA4IDExNkYgMTFCQzsKK0JGRkU7QkZGRTsxMTA4IDExNkYgMTFCRDtCRkZFOzExMDggMTE2RiAxMUJEOworQkZGRjtCRkZGOzExMDggMTE2RiAxMUJFO0JGRkY7MTEwOCAxMTZGIDExQkU7CitDMDAwO0MwMDA7MTEwOCAxMTZGIDExQkY7QzAwMDsxMTA4IDExNkYgMTFCRjsKK0MwMDE7QzAwMTsxMTA4IDExNkYgMTFDMDtDMDAxOzExMDggMTE2RiAxMUMwOworQzAwMjtDMDAyOzExMDggMTE2RiAxMUMxO0MwMDI7MTEwOCAxMTZGIDExQzE7CitDMDAzO0MwMDM7MTEwOCAxMTZGIDExQzI7QzAwMzsxMTA4IDExNkYgMTFDMjsKK0MwMDQ7QzAwNDsxMTA4IDExNzA7QzAwNDsxMTA4IDExNzA7CitDMDA1O0MwMDU7MTEwOCAxMTcwIDExQTg7QzAwNTsxMTA4IDExNzAgMTFBODsKK0MwMDY7QzAwNjsxMTA4IDExNzAgMTFBOTtDMDA2OzExMDggMTE3MCAxMUE5OworQzAwNztDMDA3OzExMDggMTE3MCAxMUFBO0MwMDc7MTEwOCAxMTcwIDExQUE7CitDMDA4O0MwMDg7MTEwOCAxMTcwIDExQUI7QzAwODsxMTA4IDExNzAgMTFBQjsKK0MwMDk7QzAwOTsxMTA4IDExNzAgMTFBQztDMDA5OzExMDggMTE3MCAxMUFDOworQzAwQTtDMDBBOzExMDggMTE3MCAxMUFEO0MwMEE7MTEwOCAxMTcwIDExQUQ7CitDMDBCO0MwMEI7MTEwOCAxMTcwIDExQUU7QzAwQjsxMTA4IDExNzAgMTFBRTsKK0MwMEM7QzAwQzsxMTA4IDExNzAgMTFBRjtDMDBDOzExMDggMTE3MCAxMUFGOworQzAwRDtDMDBEOzExMDggMTE3MCAxMUIwO0MwMEQ7MTEwOCAxMTcwIDExQjA7CitDMDBFO0MwMEU7MTEwOCAxMTcwIDExQjE7QzAwRTsxMTA4IDExNzAgMTFCMTsKK0MwMEY7QzAwRjsxMTA4IDExNzAgMTFCMjtDMDBGOzExMDggMTE3MCAxMUIyOworQzAxMDtDMDEwOzExMDggMTE3MCAxMUIzO0MwMTA7MTEwOCAxMTcwIDExQjM7CitDMDExO0MwMTE7MTEwOCAxMTcwIDExQjQ7QzAxMTsxMTA4IDExNzAgMTFCNDsKK0MwMTI7QzAxMjsxMTA4IDExNzAgMTFCNTtDMDEyOzExMDggMTE3MCAxMUI1OworQzAxMztDMDEzOzExMDggMTE3MCAxMUI2O0MwMTM7MTEwOCAxMTcwIDExQjY7CitDMDE0O0MwMTQ7MTEwOCAxMTcwIDExQjc7QzAxNDsxMTA4IDExNzAgMTFCNzsKK0MwMTU7QzAxNTsxMTA4IDExNzAgMTFCODtDMDE1OzExMDggMTE3MCAxMUI4OworQzAxNjtDMDE2OzExMDggMTE3MCAxMUI5O0MwMTY7MTEwOCAxMTcwIDExQjk7CitDMDE3O0MwMTc7MTEwOCAxMTcwIDExQkE7QzAxNzsxMTA4IDExNzAgMTFCQTsKK0MwMTg7QzAxODsxMTA4IDExNzAgMTFCQjtDMDE4OzExMDggMTE3MCAxMUJCOworQzAxOTtDMDE5OzExMDggMTE3MCAxMUJDO0MwMTk7MTEwOCAxMTcwIDExQkM7CitDMDFBO0MwMUE7MTEwOCAxMTcwIDExQkQ7QzAxQTsxMTA4IDExNzAgMTFCRDsKK0MwMUI7QzAxQjsxMTA4IDExNzAgMTFCRTtDMDFCOzExMDggMTE3MCAxMUJFOworQzAxQztDMDFDOzExMDggMTE3MCAxMUJGO0MwMUM7MTEwOCAxMTcwIDExQkY7CitDMDFEO0MwMUQ7MTEwOCAxMTcwIDExQzA7QzAxRDsxMTA4IDExNzAgMTFDMDsKK0MwMUU7QzAxRTsxMTA4IDExNzAgMTFDMTtDMDFFOzExMDggMTE3MCAxMUMxOworQzAxRjtDMDFGOzExMDggMTE3MCAxMUMyO0MwMUY7MTEwOCAxMTcwIDExQzI7CitDMDIwO0MwMjA7MTEwOCAxMTcxO0MwMjA7MTEwOCAxMTcxOworQzAyMTtDMDIxOzExMDggMTE3MSAxMUE4O0MwMjE7MTEwOCAxMTcxIDExQTg7CitDMDIyO0MwMjI7MTEwOCAxMTcxIDExQTk7QzAyMjsxMTA4IDExNzEgMTFBOTsKK0MwMjM7QzAyMzsxMTA4IDExNzEgMTFBQTtDMDIzOzExMDggMTE3MSAxMUFBOworQzAyNDtDMDI0OzExMDggMTE3MSAxMUFCO0MwMjQ7MTEwOCAxMTcxIDExQUI7CitDMDI1O0MwMjU7MTEwOCAxMTcxIDExQUM7QzAyNTsxMTA4IDExNzEgMTFBQzsKK0MwMjY7QzAyNjsxMTA4IDExNzEgMTFBRDtDMDI2OzExMDggMTE3MSAxMUFEOworQzAyNztDMDI3OzExMDggMTE3MSAxMUFFO0MwMjc7MTEwOCAxMTcxIDExQUU7CitDMDI4O0MwMjg7MTEwOCAxMTcxIDExQUY7QzAyODsxMTA4IDExNzEgMTFBRjsKK0MwMjk7QzAyOTsxMTA4IDExNzEgMTFCMDtDMDI5OzExMDggMTE3MSAxMUIwOworQzAyQTtDMDJBOzExMDggMTE3MSAxMUIxO0MwMkE7MTEwOCAxMTcxIDExQjE7CitDMDJCO0MwMkI7MTEwOCAxMTcxIDExQjI7QzAyQjsxMTA4IDExNzEgMTFCMjsKK0MwMkM7QzAyQzsxMTA4IDExNzEgMTFCMztDMDJDOzExMDggMTE3MSAxMUIzOworQzAyRDtDMDJEOzExMDggMTE3MSAxMUI0O0MwMkQ7MTEwOCAxMTcxIDExQjQ7CitDMDJFO0MwMkU7MTEwOCAxMTcxIDExQjU7QzAyRTsxMTA4IDExNzEgMTFCNTsKK0MwMkY7QzAyRjsxMTA4IDExNzEgMTFCNjtDMDJGOzExMDggMTE3MSAxMUI2OworQzAzMDtDMDMwOzExMDggMTE3MSAxMUI3O0MwMzA7MTEwOCAxMTcxIDExQjc7CitDMDMxO0MwMzE7MTEwOCAxMTcxIDExQjg7QzAzMTsxMTA4IDExNzEgMTFCODsKK0MwMzI7QzAzMjsxMTA4IDExNzEgMTFCOTtDMDMyOzExMDggMTE3MSAxMUI5OworQzAzMztDMDMzOzExMDggMTE3MSAxMUJBO0MwMzM7MTEwOCAxMTcxIDExQkE7CitDMDM0O0MwMzQ7MTEwOCAxMTcxIDExQkI7QzAzNDsxMTA4IDExNzEgMTFCQjsKK0MwMzU7QzAzNTsxMTA4IDExNzEgMTFCQztDMDM1OzExMDggMTE3MSAxMUJDOworQzAzNjtDMDM2OzExMDggMTE3MSAxMUJEO0MwMzY7MTEwOCAxMTcxIDExQkQ7CitDMDM3O0MwMzc7MTEwOCAxMTcxIDExQkU7QzAzNzsxMTA4IDExNzEgMTFCRTsKK0MwMzg7QzAzODsxMTA4IDExNzEgMTFCRjtDMDM4OzExMDggMTE3MSAxMUJGOworQzAzOTtDMDM5OzExMDggMTE3MSAxMUMwO0MwMzk7MTEwOCAxMTcxIDExQzA7CitDMDNBO0MwM0E7MTEwOCAxMTcxIDExQzE7QzAzQTsxMTA4IDExNzEgMTFDMTsKK0MwM0I7QzAzQjsxMTA4IDExNzEgMTFDMjtDMDNCOzExMDggMTE3MSAxMUMyOworQzAzQztDMDNDOzExMDggMTE3MjtDMDNDOzExMDggMTE3MjsKK0MwM0Q7QzAzRDsxMTA4IDExNzIgMTFBODtDMDNEOzExMDggMTE3MiAxMUE4OworQzAzRTtDMDNFOzExMDggMTE3MiAxMUE5O0MwM0U7MTEwOCAxMTcyIDExQTk7CitDMDNGO0MwM0Y7MTEwOCAxMTcyIDExQUE7QzAzRjsxMTA4IDExNzIgMTFBQTsKK0MwNDA7QzA0MDsxMTA4IDExNzIgMTFBQjtDMDQwOzExMDggMTE3MiAxMUFCOworQzA0MTtDMDQxOzExMDggMTE3MiAxMUFDO0MwNDE7MTEwOCAxMTcyIDExQUM7CitDMDQyO0MwNDI7MTEwOCAxMTcyIDExQUQ7QzA0MjsxMTA4IDExNzIgMTFBRDsKK0MwNDM7QzA0MzsxMTA4IDExNzIgMTFBRTtDMDQzOzExMDggMTE3MiAxMUFFOworQzA0NDtDMDQ0OzExMDggMTE3MiAxMUFGO0MwNDQ7MTEwOCAxMTcyIDExQUY7CitDMDQ1O0MwNDU7MTEwOCAxMTcyIDExQjA7QzA0NTsxMTA4IDExNzIgMTFCMDsKK0MwNDY7QzA0NjsxMTA4IDExNzIgMTFCMTtDMDQ2OzExMDggMTE3MiAxMUIxOworQzA0NztDMDQ3OzExMDggMTE3MiAxMUIyO0MwNDc7MTEwOCAxMTcyIDExQjI7CitDMDQ4O0MwNDg7MTEwOCAxMTcyIDExQjM7QzA0ODsxMTA4IDExNzIgMTFCMzsKK0MwNDk7QzA0OTsxMTA4IDExNzIgMTFCNDtDMDQ5OzExMDggMTE3MiAxMUI0OworQzA0QTtDMDRBOzExMDggMTE3MiAxMUI1O0MwNEE7MTEwOCAxMTcyIDExQjU7CitDMDRCO0MwNEI7MTEwOCAxMTcyIDExQjY7QzA0QjsxMTA4IDExNzIgMTFCNjsKK0MwNEM7QzA0QzsxMTA4IDExNzIgMTFCNztDMDRDOzExMDggMTE3MiAxMUI3OworQzA0RDtDMDREOzExMDggMTE3MiAxMUI4O0MwNEQ7MTEwOCAxMTcyIDExQjg7CitDMDRFO0MwNEU7MTEwOCAxMTcyIDExQjk7QzA0RTsxMTA4IDExNzIgMTFCOTsKK0MwNEY7QzA0RjsxMTA4IDExNzIgMTFCQTtDMDRGOzExMDggMTE3MiAxMUJBOworQzA1MDtDMDUwOzExMDggMTE3MiAxMUJCO0MwNTA7MTEwOCAxMTcyIDExQkI7CitDMDUxO0MwNTE7MTEwOCAxMTcyIDExQkM7QzA1MTsxMTA4IDExNzIgMTFCQzsKK0MwNTI7QzA1MjsxMTA4IDExNzIgMTFCRDtDMDUyOzExMDggMTE3MiAxMUJEOworQzA1MztDMDUzOzExMDggMTE3MiAxMUJFO0MwNTM7MTEwOCAxMTcyIDExQkU7CitDMDU0O0MwNTQ7MTEwOCAxMTcyIDExQkY7QzA1NDsxMTA4IDExNzIgMTFCRjsKK0MwNTU7QzA1NTsxMTA4IDExNzIgMTFDMDtDMDU1OzExMDggMTE3MiAxMUMwOworQzA1NjtDMDU2OzExMDggMTE3MiAxMUMxO0MwNTY7MTEwOCAxMTcyIDExQzE7CitDMDU3O0MwNTc7MTEwOCAxMTcyIDExQzI7QzA1NzsxMTA4IDExNzIgMTFDMjsKK0MwNTg7QzA1ODsxMTA4IDExNzM7QzA1ODsxMTA4IDExNzM7CitDMDU5O0MwNTk7MTEwOCAxMTczIDExQTg7QzA1OTsxMTA4IDExNzMgMTFBODsKK0MwNUE7QzA1QTsxMTA4IDExNzMgMTFBOTtDMDVBOzExMDggMTE3MyAxMUE5OworQzA1QjtDMDVCOzExMDggMTE3MyAxMUFBO0MwNUI7MTEwOCAxMTczIDExQUE7CitDMDVDO0MwNUM7MTEwOCAxMTczIDExQUI7QzA1QzsxMTA4IDExNzMgMTFBQjsKK0MwNUQ7QzA1RDsxMTA4IDExNzMgMTFBQztDMDVEOzExMDggMTE3MyAxMUFDOworQzA1RTtDMDVFOzExMDggMTE3MyAxMUFEO0MwNUU7MTEwOCAxMTczIDExQUQ7CitDMDVGO0MwNUY7MTEwOCAxMTczIDExQUU7QzA1RjsxMTA4IDExNzMgMTFBRTsKK0MwNjA7QzA2MDsxMTA4IDExNzMgMTFBRjtDMDYwOzExMDggMTE3MyAxMUFGOworQzA2MTtDMDYxOzExMDggMTE3MyAxMUIwO0MwNjE7MTEwOCAxMTczIDExQjA7CitDMDYyO0MwNjI7MTEwOCAxMTczIDExQjE7QzA2MjsxMTA4IDExNzMgMTFCMTsKK0MwNjM7QzA2MzsxMTA4IDExNzMgMTFCMjtDMDYzOzExMDggMTE3MyAxMUIyOworQzA2NDtDMDY0OzExMDggMTE3MyAxMUIzO0MwNjQ7MTEwOCAxMTczIDExQjM7CitDMDY1O0MwNjU7MTEwOCAxMTczIDExQjQ7QzA2NTsxMTA4IDExNzMgMTFCNDsKK0MwNjY7QzA2NjsxMTA4IDExNzMgMTFCNTtDMDY2OzExMDggMTE3MyAxMUI1OworQzA2NztDMDY3OzExMDggMTE3MyAxMUI2O0MwNjc7MTEwOCAxMTczIDExQjY7CitDMDY4O0MwNjg7MTEwOCAxMTczIDExQjc7QzA2ODsxMTA4IDExNzMgMTFCNzsKK0MwNjk7QzA2OTsxMTA4IDExNzMgMTFCODtDMDY5OzExMDggMTE3MyAxMUI4OworQzA2QTtDMDZBOzExMDggMTE3MyAxMUI5O0MwNkE7MTEwOCAxMTczIDExQjk7CitDMDZCO0MwNkI7MTEwOCAxMTczIDExQkE7QzA2QjsxMTA4IDExNzMgMTFCQTsKK0MwNkM7QzA2QzsxMTA4IDExNzMgMTFCQjtDMDZDOzExMDggMTE3MyAxMUJCOworQzA2RDtDMDZEOzExMDggMTE3MyAxMUJDO0MwNkQ7MTEwOCAxMTczIDExQkM7CitDMDZFO0MwNkU7MTEwOCAxMTczIDExQkQ7QzA2RTsxMTA4IDExNzMgMTFCRDsKK0MwNkY7QzA2RjsxMTA4IDExNzMgMTFCRTtDMDZGOzExMDggMTE3MyAxMUJFOworQzA3MDtDMDcwOzExMDggMTE3MyAxMUJGO0MwNzA7MTEwOCAxMTczIDExQkY7CitDMDcxO0MwNzE7MTEwOCAxMTczIDExQzA7QzA3MTsxMTA4IDExNzMgMTFDMDsKK0MwNzI7QzA3MjsxMTA4IDExNzMgMTFDMTtDMDcyOzExMDggMTE3MyAxMUMxOworQzA3MztDMDczOzExMDggMTE3MyAxMUMyO0MwNzM7MTEwOCAxMTczIDExQzI7CitDMDc0O0MwNzQ7MTEwOCAxMTc0O0MwNzQ7MTEwOCAxMTc0OworQzA3NTtDMDc1OzExMDggMTE3NCAxMUE4O0MwNzU7MTEwOCAxMTc0IDExQTg7CitDMDc2O0MwNzY7MTEwOCAxMTc0IDExQTk7QzA3NjsxMTA4IDExNzQgMTFBOTsKK0MwNzc7QzA3NzsxMTA4IDExNzQgMTFBQTtDMDc3OzExMDggMTE3NCAxMUFBOworQzA3ODtDMDc4OzExMDggMTE3NCAxMUFCO0MwNzg7MTEwOCAxMTc0IDExQUI7CitDMDc5O0MwNzk7MTEwOCAxMTc0IDExQUM7QzA3OTsxMTA4IDExNzQgMTFBQzsKK0MwN0E7QzA3QTsxMTA4IDExNzQgMTFBRDtDMDdBOzExMDggMTE3NCAxMUFEOworQzA3QjtDMDdCOzExMDggMTE3NCAxMUFFO0MwN0I7MTEwOCAxMTc0IDExQUU7CitDMDdDO0MwN0M7MTEwOCAxMTc0IDExQUY7QzA3QzsxMTA4IDExNzQgMTFBRjsKK0MwN0Q7QzA3RDsxMTA4IDExNzQgMTFCMDtDMDdEOzExMDggMTE3NCAxMUIwOworQzA3RTtDMDdFOzExMDggMTE3NCAxMUIxO0MwN0U7MTEwOCAxMTc0IDExQjE7CitDMDdGO0MwN0Y7MTEwOCAxMTc0IDExQjI7QzA3RjsxMTA4IDExNzQgMTFCMjsKK0MwODA7QzA4MDsxMTA4IDExNzQgMTFCMztDMDgwOzExMDggMTE3NCAxMUIzOworQzA4MTtDMDgxOzExMDggMTE3NCAxMUI0O0MwODE7MTEwOCAxMTc0IDExQjQ7CitDMDgyO0MwODI7MTEwOCAxMTc0IDExQjU7QzA4MjsxMTA4IDExNzQgMTFCNTsKK0MwODM7QzA4MzsxMTA4IDExNzQgMTFCNjtDMDgzOzExMDggMTE3NCAxMUI2OworQzA4NDtDMDg0OzExMDggMTE3NCAxMUI3O0MwODQ7MTEwOCAxMTc0IDExQjc7CitDMDg1O0MwODU7MTEwOCAxMTc0IDExQjg7QzA4NTsxMTA4IDExNzQgMTFCODsKK0MwODY7QzA4NjsxMTA4IDExNzQgMTFCOTtDMDg2OzExMDggMTE3NCAxMUI5OworQzA4NztDMDg3OzExMDggMTE3NCAxMUJBO0MwODc7MTEwOCAxMTc0IDExQkE7CitDMDg4O0MwODg7MTEwOCAxMTc0IDExQkI7QzA4ODsxMTA4IDExNzQgMTFCQjsKK0MwODk7QzA4OTsxMTA4IDExNzQgMTFCQztDMDg5OzExMDggMTE3NCAxMUJDOworQzA4QTtDMDhBOzExMDggMTE3NCAxMUJEO0MwOEE7MTEwOCAxMTc0IDExQkQ7CitDMDhCO0MwOEI7MTEwOCAxMTc0IDExQkU7QzA4QjsxMTA4IDExNzQgMTFCRTsKK0MwOEM7QzA4QzsxMTA4IDExNzQgMTFCRjtDMDhDOzExMDggMTE3NCAxMUJGOworQzA4RDtDMDhEOzExMDggMTE3NCAxMUMwO0MwOEQ7MTEwOCAxMTc0IDExQzA7CitDMDhFO0MwOEU7MTEwOCAxMTc0IDExQzE7QzA4RTsxMTA4IDExNzQgMTFDMTsKK0MwOEY7QzA4RjsxMTA4IDExNzQgMTFDMjtDMDhGOzExMDggMTE3NCAxMUMyOworQzA5MDtDMDkwOzExMDggMTE3NTtDMDkwOzExMDggMTE3NTsKK0MwOTE7QzA5MTsxMTA4IDExNzUgMTFBODtDMDkxOzExMDggMTE3NSAxMUE4OworQzA5MjtDMDkyOzExMDggMTE3NSAxMUE5O0MwOTI7MTEwOCAxMTc1IDExQTk7CitDMDkzO0MwOTM7MTEwOCAxMTc1IDExQUE7QzA5MzsxMTA4IDExNzUgMTFBQTsKK0MwOTQ7QzA5NDsxMTA4IDExNzUgMTFBQjtDMDk0OzExMDggMTE3NSAxMUFCOworQzA5NTtDMDk1OzExMDggMTE3NSAxMUFDO0MwOTU7MTEwOCAxMTc1IDExQUM7CitDMDk2O0MwOTY7MTEwOCAxMTc1IDExQUQ7QzA5NjsxMTA4IDExNzUgMTFBRDsKK0MwOTc7QzA5NzsxMTA4IDExNzUgMTFBRTtDMDk3OzExMDggMTE3NSAxMUFFOworQzA5ODtDMDk4OzExMDggMTE3NSAxMUFGO0MwOTg7MTEwOCAxMTc1IDExQUY7CitDMDk5O0MwOTk7MTEwOCAxMTc1IDExQjA7QzA5OTsxMTA4IDExNzUgMTFCMDsKK0MwOUE7QzA5QTsxMTA4IDExNzUgMTFCMTtDMDlBOzExMDggMTE3NSAxMUIxOworQzA5QjtDMDlCOzExMDggMTE3NSAxMUIyO0MwOUI7MTEwOCAxMTc1IDExQjI7CitDMDlDO0MwOUM7MTEwOCAxMTc1IDExQjM7QzA5QzsxMTA4IDExNzUgMTFCMzsKK0MwOUQ7QzA5RDsxMTA4IDExNzUgMTFCNDtDMDlEOzExMDggMTE3NSAxMUI0OworQzA5RTtDMDlFOzExMDggMTE3NSAxMUI1O0MwOUU7MTEwOCAxMTc1IDExQjU7CitDMDlGO0MwOUY7MTEwOCAxMTc1IDExQjY7QzA5RjsxMTA4IDExNzUgMTFCNjsKK0MwQTA7QzBBMDsxMTA4IDExNzUgMTFCNztDMEEwOzExMDggMTE3NSAxMUI3OworQzBBMTtDMEExOzExMDggMTE3NSAxMUI4O0MwQTE7MTEwOCAxMTc1IDExQjg7CitDMEEyO0MwQTI7MTEwOCAxMTc1IDExQjk7QzBBMjsxMTA4IDExNzUgMTFCOTsKK0MwQTM7QzBBMzsxMTA4IDExNzUgMTFCQTtDMEEzOzExMDggMTE3NSAxMUJBOworQzBBNDtDMEE0OzExMDggMTE3NSAxMUJCO0MwQTQ7MTEwOCAxMTc1IDExQkI7CitDMEE1O0MwQTU7MTEwOCAxMTc1IDExQkM7QzBBNTsxMTA4IDExNzUgMTFCQzsKK0MwQTY7QzBBNjsxMTA4IDExNzUgMTFCRDtDMEE2OzExMDggMTE3NSAxMUJEOworQzBBNztDMEE3OzExMDggMTE3NSAxMUJFO0MwQTc7MTEwOCAxMTc1IDExQkU7CitDMEE4O0MwQTg7MTEwOCAxMTc1IDExQkY7QzBBODsxMTA4IDExNzUgMTFCRjsKK0MwQTk7QzBBOTsxMTA4IDExNzUgMTFDMDtDMEE5OzExMDggMTE3NSAxMUMwOworQzBBQTtDMEFBOzExMDggMTE3NSAxMUMxO0MwQUE7MTEwOCAxMTc1IDExQzE7CitDMEFCO0MwQUI7MTEwOCAxMTc1IDExQzI7QzBBQjsxMTA4IDExNzUgMTFDMjsKK0MwQUM7QzBBQzsxMTA5IDExNjE7QzBBQzsxMTA5IDExNjE7CitDMEFEO0MwQUQ7MTEwOSAxMTYxIDExQTg7QzBBRDsxMTA5IDExNjEgMTFBODsKK0MwQUU7QzBBRTsxMTA5IDExNjEgMTFBOTtDMEFFOzExMDkgMTE2MSAxMUE5OworQzBBRjtDMEFGOzExMDkgMTE2MSAxMUFBO0MwQUY7MTEwOSAxMTYxIDExQUE7CitDMEIwO0MwQjA7MTEwOSAxMTYxIDExQUI7QzBCMDsxMTA5IDExNjEgMTFBQjsKK0MwQjE7QzBCMTsxMTA5IDExNjEgMTFBQztDMEIxOzExMDkgMTE2MSAxMUFDOworQzBCMjtDMEIyOzExMDkgMTE2MSAxMUFEO0MwQjI7MTEwOSAxMTYxIDExQUQ7CitDMEIzO0MwQjM7MTEwOSAxMTYxIDExQUU7QzBCMzsxMTA5IDExNjEgMTFBRTsKK0MwQjQ7QzBCNDsxMTA5IDExNjEgMTFBRjtDMEI0OzExMDkgMTE2MSAxMUFGOworQzBCNTtDMEI1OzExMDkgMTE2MSAxMUIwO0MwQjU7MTEwOSAxMTYxIDExQjA7CitDMEI2O0MwQjY7MTEwOSAxMTYxIDExQjE7QzBCNjsxMTA5IDExNjEgMTFCMTsKK0MwQjc7QzBCNzsxMTA5IDExNjEgMTFCMjtDMEI3OzExMDkgMTE2MSAxMUIyOworQzBCODtDMEI4OzExMDkgMTE2MSAxMUIzO0MwQjg7MTEwOSAxMTYxIDExQjM7CitDMEI5O0MwQjk7MTEwOSAxMTYxIDExQjQ7QzBCOTsxMTA5IDExNjEgMTFCNDsKK0MwQkE7QzBCQTsxMTA5IDExNjEgMTFCNTtDMEJBOzExMDkgMTE2MSAxMUI1OworQzBCQjtDMEJCOzExMDkgMTE2MSAxMUI2O0MwQkI7MTEwOSAxMTYxIDExQjY7CitDMEJDO0MwQkM7MTEwOSAxMTYxIDExQjc7QzBCQzsxMTA5IDExNjEgMTFCNzsKK0MwQkQ7QzBCRDsxMTA5IDExNjEgMTFCODtDMEJEOzExMDkgMTE2MSAxMUI4OworQzBCRTtDMEJFOzExMDkgMTE2MSAxMUI5O0MwQkU7MTEwOSAxMTYxIDExQjk7CitDMEJGO0MwQkY7MTEwOSAxMTYxIDExQkE7QzBCRjsxMTA5IDExNjEgMTFCQTsKK0MwQzA7QzBDMDsxMTA5IDExNjEgMTFCQjtDMEMwOzExMDkgMTE2MSAxMUJCOworQzBDMTtDMEMxOzExMDkgMTE2MSAxMUJDO0MwQzE7MTEwOSAxMTYxIDExQkM7CitDMEMyO0MwQzI7MTEwOSAxMTYxIDExQkQ7QzBDMjsxMTA5IDExNjEgMTFCRDsKK0MwQzM7QzBDMzsxMTA5IDExNjEgMTFCRTtDMEMzOzExMDkgMTE2MSAxMUJFOworQzBDNDtDMEM0OzExMDkgMTE2MSAxMUJGO0MwQzQ7MTEwOSAxMTYxIDExQkY7CitDMEM1O0MwQzU7MTEwOSAxMTYxIDExQzA7QzBDNTsxMTA5IDExNjEgMTFDMDsKK0MwQzY7QzBDNjsxMTA5IDExNjEgMTFDMTtDMEM2OzExMDkgMTE2MSAxMUMxOworQzBDNztDMEM3OzExMDkgMTE2MSAxMUMyO0MwQzc7MTEwOSAxMTYxIDExQzI7CitDMEM4O0MwQzg7MTEwOSAxMTYyO0MwQzg7MTEwOSAxMTYyOworQzBDOTtDMEM5OzExMDkgMTE2MiAxMUE4O0MwQzk7MTEwOSAxMTYyIDExQTg7CitDMENBO0MwQ0E7MTEwOSAxMTYyIDExQTk7QzBDQTsxMTA5IDExNjIgMTFBOTsKK0MwQ0I7QzBDQjsxMTA5IDExNjIgMTFBQTtDMENCOzExMDkgMTE2MiAxMUFBOworQzBDQztDMENDOzExMDkgMTE2MiAxMUFCO0MwQ0M7MTEwOSAxMTYyIDExQUI7CitDMENEO0MwQ0Q7MTEwOSAxMTYyIDExQUM7QzBDRDsxMTA5IDExNjIgMTFBQzsKK0MwQ0U7QzBDRTsxMTA5IDExNjIgMTFBRDtDMENFOzExMDkgMTE2MiAxMUFEOworQzBDRjtDMENGOzExMDkgMTE2MiAxMUFFO0MwQ0Y7MTEwOSAxMTYyIDExQUU7CitDMEQwO0MwRDA7MTEwOSAxMTYyIDExQUY7QzBEMDsxMTA5IDExNjIgMTFBRjsKK0MwRDE7QzBEMTsxMTA5IDExNjIgMTFCMDtDMEQxOzExMDkgMTE2MiAxMUIwOworQzBEMjtDMEQyOzExMDkgMTE2MiAxMUIxO0MwRDI7MTEwOSAxMTYyIDExQjE7CitDMEQzO0MwRDM7MTEwOSAxMTYyIDExQjI7QzBEMzsxMTA5IDExNjIgMTFCMjsKK0MwRDQ7QzBENDsxMTA5IDExNjIgMTFCMztDMEQ0OzExMDkgMTE2MiAxMUIzOworQzBENTtDMEQ1OzExMDkgMTE2MiAxMUI0O0MwRDU7MTEwOSAxMTYyIDExQjQ7CitDMEQ2O0MwRDY7MTEwOSAxMTYyIDExQjU7QzBENjsxMTA5IDExNjIgMTFCNTsKK0MwRDc7QzBENzsxMTA5IDExNjIgMTFCNjtDMEQ3OzExMDkgMTE2MiAxMUI2OworQzBEODtDMEQ4OzExMDkgMTE2MiAxMUI3O0MwRDg7MTEwOSAxMTYyIDExQjc7CitDMEQ5O0MwRDk7MTEwOSAxMTYyIDExQjg7QzBEOTsxMTA5IDExNjIgMTFCODsKK0MwREE7QzBEQTsxMTA5IDExNjIgMTFCOTtDMERBOzExMDkgMTE2MiAxMUI5OworQzBEQjtDMERCOzExMDkgMTE2MiAxMUJBO0MwREI7MTEwOSAxMTYyIDExQkE7CitDMERDO0MwREM7MTEwOSAxMTYyIDExQkI7QzBEQzsxMTA5IDExNjIgMTFCQjsKK0MwREQ7QzBERDsxMTA5IDExNjIgMTFCQztDMEREOzExMDkgMTE2MiAxMUJDOworQzBERTtDMERFOzExMDkgMTE2MiAxMUJEO0MwREU7MTEwOSAxMTYyIDExQkQ7CitDMERGO0MwREY7MTEwOSAxMTYyIDExQkU7QzBERjsxMTA5IDExNjIgMTFCRTsKK0MwRTA7QzBFMDsxMTA5IDExNjIgMTFCRjtDMEUwOzExMDkgMTE2MiAxMUJGOworQzBFMTtDMEUxOzExMDkgMTE2MiAxMUMwO0MwRTE7MTEwOSAxMTYyIDExQzA7CitDMEUyO0MwRTI7MTEwOSAxMTYyIDExQzE7QzBFMjsxMTA5IDExNjIgMTFDMTsKK0MwRTM7QzBFMzsxMTA5IDExNjIgMTFDMjtDMEUzOzExMDkgMTE2MiAxMUMyOworQzBFNDtDMEU0OzExMDkgMTE2MztDMEU0OzExMDkgMTE2MzsKK0MwRTU7QzBFNTsxMTA5IDExNjMgMTFBODtDMEU1OzExMDkgMTE2MyAxMUE4OworQzBFNjtDMEU2OzExMDkgMTE2MyAxMUE5O0MwRTY7MTEwOSAxMTYzIDExQTk7CitDMEU3O0MwRTc7MTEwOSAxMTYzIDExQUE7QzBFNzsxMTA5IDExNjMgMTFBQTsKK0MwRTg7QzBFODsxMTA5IDExNjMgMTFBQjtDMEU4OzExMDkgMTE2MyAxMUFCOworQzBFOTtDMEU5OzExMDkgMTE2MyAxMUFDO0MwRTk7MTEwOSAxMTYzIDExQUM7CitDMEVBO0MwRUE7MTEwOSAxMTYzIDExQUQ7QzBFQTsxMTA5IDExNjMgMTFBRDsKK0MwRUI7QzBFQjsxMTA5IDExNjMgMTFBRTtDMEVCOzExMDkgMTE2MyAxMUFFOworQzBFQztDMEVDOzExMDkgMTE2MyAxMUFGO0MwRUM7MTEwOSAxMTYzIDExQUY7CitDMEVEO0MwRUQ7MTEwOSAxMTYzIDExQjA7QzBFRDsxMTA5IDExNjMgMTFCMDsKK0MwRUU7QzBFRTsxMTA5IDExNjMgMTFCMTtDMEVFOzExMDkgMTE2MyAxMUIxOworQzBFRjtDMEVGOzExMDkgMTE2MyAxMUIyO0MwRUY7MTEwOSAxMTYzIDExQjI7CitDMEYwO0MwRjA7MTEwOSAxMTYzIDExQjM7QzBGMDsxMTA5IDExNjMgMTFCMzsKK0MwRjE7QzBGMTsxMTA5IDExNjMgMTFCNDtDMEYxOzExMDkgMTE2MyAxMUI0OworQzBGMjtDMEYyOzExMDkgMTE2MyAxMUI1O0MwRjI7MTEwOSAxMTYzIDExQjU7CitDMEYzO0MwRjM7MTEwOSAxMTYzIDExQjY7QzBGMzsxMTA5IDExNjMgMTFCNjsKK0MwRjQ7QzBGNDsxMTA5IDExNjMgMTFCNztDMEY0OzExMDkgMTE2MyAxMUI3OworQzBGNTtDMEY1OzExMDkgMTE2MyAxMUI4O0MwRjU7MTEwOSAxMTYzIDExQjg7CitDMEY2O0MwRjY7MTEwOSAxMTYzIDExQjk7QzBGNjsxMTA5IDExNjMgMTFCOTsKK0MwRjc7QzBGNzsxMTA5IDExNjMgMTFCQTtDMEY3OzExMDkgMTE2MyAxMUJBOworQzBGODtDMEY4OzExMDkgMTE2MyAxMUJCO0MwRjg7MTEwOSAxMTYzIDExQkI7CitDMEY5O0MwRjk7MTEwOSAxMTYzIDExQkM7QzBGOTsxMTA5IDExNjMgMTFCQzsKK0MwRkE7QzBGQTsxMTA5IDExNjMgMTFCRDtDMEZBOzExMDkgMTE2MyAxMUJEOworQzBGQjtDMEZCOzExMDkgMTE2MyAxMUJFO0MwRkI7MTEwOSAxMTYzIDExQkU7CitDMEZDO0MwRkM7MTEwOSAxMTYzIDExQkY7QzBGQzsxMTA5IDExNjMgMTFCRjsKK0MwRkQ7QzBGRDsxMTA5IDExNjMgMTFDMDtDMEZEOzExMDkgMTE2MyAxMUMwOworQzBGRTtDMEZFOzExMDkgMTE2MyAxMUMxO0MwRkU7MTEwOSAxMTYzIDExQzE7CitDMEZGO0MwRkY7MTEwOSAxMTYzIDExQzI7QzBGRjsxMTA5IDExNjMgMTFDMjsKK0MxMDA7QzEwMDsxMTA5IDExNjQ7QzEwMDsxMTA5IDExNjQ7CitDMTAxO0MxMDE7MTEwOSAxMTY0IDExQTg7QzEwMTsxMTA5IDExNjQgMTFBODsKK0MxMDI7QzEwMjsxMTA5IDExNjQgMTFBOTtDMTAyOzExMDkgMTE2NCAxMUE5OworQzEwMztDMTAzOzExMDkgMTE2NCAxMUFBO0MxMDM7MTEwOSAxMTY0IDExQUE7CitDMTA0O0MxMDQ7MTEwOSAxMTY0IDExQUI7QzEwNDsxMTA5IDExNjQgMTFBQjsKK0MxMDU7QzEwNTsxMTA5IDExNjQgMTFBQztDMTA1OzExMDkgMTE2NCAxMUFDOworQzEwNjtDMTA2OzExMDkgMTE2NCAxMUFEO0MxMDY7MTEwOSAxMTY0IDExQUQ7CitDMTA3O0MxMDc7MTEwOSAxMTY0IDExQUU7QzEwNzsxMTA5IDExNjQgMTFBRTsKK0MxMDg7QzEwODsxMTA5IDExNjQgMTFBRjtDMTA4OzExMDkgMTE2NCAxMUFGOworQzEwOTtDMTA5OzExMDkgMTE2NCAxMUIwO0MxMDk7MTEwOSAxMTY0IDExQjA7CitDMTBBO0MxMEE7MTEwOSAxMTY0IDExQjE7QzEwQTsxMTA5IDExNjQgMTFCMTsKK0MxMEI7QzEwQjsxMTA5IDExNjQgMTFCMjtDMTBCOzExMDkgMTE2NCAxMUIyOworQzEwQztDMTBDOzExMDkgMTE2NCAxMUIzO0MxMEM7MTEwOSAxMTY0IDExQjM7CitDMTBEO0MxMEQ7MTEwOSAxMTY0IDExQjQ7QzEwRDsxMTA5IDExNjQgMTFCNDsKK0MxMEU7QzEwRTsxMTA5IDExNjQgMTFCNTtDMTBFOzExMDkgMTE2NCAxMUI1OworQzEwRjtDMTBGOzExMDkgMTE2NCAxMUI2O0MxMEY7MTEwOSAxMTY0IDExQjY7CitDMTEwO0MxMTA7MTEwOSAxMTY0IDExQjc7QzExMDsxMTA5IDExNjQgMTFCNzsKK0MxMTE7QzExMTsxMTA5IDExNjQgMTFCODtDMTExOzExMDkgMTE2NCAxMUI4OworQzExMjtDMTEyOzExMDkgMTE2NCAxMUI5O0MxMTI7MTEwOSAxMTY0IDExQjk7CitDMTEzO0MxMTM7MTEwOSAxMTY0IDExQkE7QzExMzsxMTA5IDExNjQgMTFCQTsKK0MxMTQ7QzExNDsxMTA5IDExNjQgMTFCQjtDMTE0OzExMDkgMTE2NCAxMUJCOworQzExNTtDMTE1OzExMDkgMTE2NCAxMUJDO0MxMTU7MTEwOSAxMTY0IDExQkM7CitDMTE2O0MxMTY7MTEwOSAxMTY0IDExQkQ7QzExNjsxMTA5IDExNjQgMTFCRDsKK0MxMTc7QzExNzsxMTA5IDExNjQgMTFCRTtDMTE3OzExMDkgMTE2NCAxMUJFOworQzExODtDMTE4OzExMDkgMTE2NCAxMUJGO0MxMTg7MTEwOSAxMTY0IDExQkY7CitDMTE5O0MxMTk7MTEwOSAxMTY0IDExQzA7QzExOTsxMTA5IDExNjQgMTFDMDsKK0MxMUE7QzExQTsxMTA5IDExNjQgMTFDMTtDMTFBOzExMDkgMTE2NCAxMUMxOworQzExQjtDMTFCOzExMDkgMTE2NCAxMUMyO0MxMUI7MTEwOSAxMTY0IDExQzI7CitDMTFDO0MxMUM7MTEwOSAxMTY1O0MxMUM7MTEwOSAxMTY1OworQzExRDtDMTFEOzExMDkgMTE2NSAxMUE4O0MxMUQ7MTEwOSAxMTY1IDExQTg7CitDMTFFO0MxMUU7MTEwOSAxMTY1IDExQTk7QzExRTsxMTA5IDExNjUgMTFBOTsKK0MxMUY7QzExRjsxMTA5IDExNjUgMTFBQTtDMTFGOzExMDkgMTE2NSAxMUFBOworQzEyMDtDMTIwOzExMDkgMTE2NSAxMUFCO0MxMjA7MTEwOSAxMTY1IDExQUI7CitDMTIxO0MxMjE7MTEwOSAxMTY1IDExQUM7QzEyMTsxMTA5IDExNjUgMTFBQzsKK0MxMjI7QzEyMjsxMTA5IDExNjUgMTFBRDtDMTIyOzExMDkgMTE2NSAxMUFEOworQzEyMztDMTIzOzExMDkgMTE2NSAxMUFFO0MxMjM7MTEwOSAxMTY1IDExQUU7CitDMTI0O0MxMjQ7MTEwOSAxMTY1IDExQUY7QzEyNDsxMTA5IDExNjUgMTFBRjsKK0MxMjU7QzEyNTsxMTA5IDExNjUgMTFCMDtDMTI1OzExMDkgMTE2NSAxMUIwOworQzEyNjtDMTI2OzExMDkgMTE2NSAxMUIxO0MxMjY7MTEwOSAxMTY1IDExQjE7CitDMTI3O0MxMjc7MTEwOSAxMTY1IDExQjI7QzEyNzsxMTA5IDExNjUgMTFCMjsKK0MxMjg7QzEyODsxMTA5IDExNjUgMTFCMztDMTI4OzExMDkgMTE2NSAxMUIzOworQzEyOTtDMTI5OzExMDkgMTE2NSAxMUI0O0MxMjk7MTEwOSAxMTY1IDExQjQ7CitDMTJBO0MxMkE7MTEwOSAxMTY1IDExQjU7QzEyQTsxMTA5IDExNjUgMTFCNTsKK0MxMkI7QzEyQjsxMTA5IDExNjUgMTFCNjtDMTJCOzExMDkgMTE2NSAxMUI2OworQzEyQztDMTJDOzExMDkgMTE2NSAxMUI3O0MxMkM7MTEwOSAxMTY1IDExQjc7CitDMTJEO0MxMkQ7MTEwOSAxMTY1IDExQjg7QzEyRDsxMTA5IDExNjUgMTFCODsKK0MxMkU7QzEyRTsxMTA5IDExNjUgMTFCOTtDMTJFOzExMDkgMTE2NSAxMUI5OworQzEyRjtDMTJGOzExMDkgMTE2NSAxMUJBO0MxMkY7MTEwOSAxMTY1IDExQkE7CitDMTMwO0MxMzA7MTEwOSAxMTY1IDExQkI7QzEzMDsxMTA5IDExNjUgMTFCQjsKK0MxMzE7QzEzMTsxMTA5IDExNjUgMTFCQztDMTMxOzExMDkgMTE2NSAxMUJDOworQzEzMjtDMTMyOzExMDkgMTE2NSAxMUJEO0MxMzI7MTEwOSAxMTY1IDExQkQ7CitDMTMzO0MxMzM7MTEwOSAxMTY1IDExQkU7QzEzMzsxMTA5IDExNjUgMTFCRTsKK0MxMzQ7QzEzNDsxMTA5IDExNjUgMTFCRjtDMTM0OzExMDkgMTE2NSAxMUJGOworQzEzNTtDMTM1OzExMDkgMTE2NSAxMUMwO0MxMzU7MTEwOSAxMTY1IDExQzA7CitDMTM2O0MxMzY7MTEwOSAxMTY1IDExQzE7QzEzNjsxMTA5IDExNjUgMTFDMTsKK0MxMzc7QzEzNzsxMTA5IDExNjUgMTFDMjtDMTM3OzExMDkgMTE2NSAxMUMyOworQzEzODtDMTM4OzExMDkgMTE2NjtDMTM4OzExMDkgMTE2NjsKK0MxMzk7QzEzOTsxMTA5IDExNjYgMTFBODtDMTM5OzExMDkgMTE2NiAxMUE4OworQzEzQTtDMTNBOzExMDkgMTE2NiAxMUE5O0MxM0E7MTEwOSAxMTY2IDExQTk7CitDMTNCO0MxM0I7MTEwOSAxMTY2IDExQUE7QzEzQjsxMTA5IDExNjYgMTFBQTsKK0MxM0M7QzEzQzsxMTA5IDExNjYgMTFBQjtDMTNDOzExMDkgMTE2NiAxMUFCOworQzEzRDtDMTNEOzExMDkgMTE2NiAxMUFDO0MxM0Q7MTEwOSAxMTY2IDExQUM7CitDMTNFO0MxM0U7MTEwOSAxMTY2IDExQUQ7QzEzRTsxMTA5IDExNjYgMTFBRDsKK0MxM0Y7QzEzRjsxMTA5IDExNjYgMTFBRTtDMTNGOzExMDkgMTE2NiAxMUFFOworQzE0MDtDMTQwOzExMDkgMTE2NiAxMUFGO0MxNDA7MTEwOSAxMTY2IDExQUY7CitDMTQxO0MxNDE7MTEwOSAxMTY2IDExQjA7QzE0MTsxMTA5IDExNjYgMTFCMDsKK0MxNDI7QzE0MjsxMTA5IDExNjYgMTFCMTtDMTQyOzExMDkgMTE2NiAxMUIxOworQzE0MztDMTQzOzExMDkgMTE2NiAxMUIyO0MxNDM7MTEwOSAxMTY2IDExQjI7CitDMTQ0O0MxNDQ7MTEwOSAxMTY2IDExQjM7QzE0NDsxMTA5IDExNjYgMTFCMzsKK0MxNDU7QzE0NTsxMTA5IDExNjYgMTFCNDtDMTQ1OzExMDkgMTE2NiAxMUI0OworQzE0NjtDMTQ2OzExMDkgMTE2NiAxMUI1O0MxNDY7MTEwOSAxMTY2IDExQjU7CitDMTQ3O0MxNDc7MTEwOSAxMTY2IDExQjY7QzE0NzsxMTA5IDExNjYgMTFCNjsKK0MxNDg7QzE0ODsxMTA5IDExNjYgMTFCNztDMTQ4OzExMDkgMTE2NiAxMUI3OworQzE0OTtDMTQ5OzExMDkgMTE2NiAxMUI4O0MxNDk7MTEwOSAxMTY2IDExQjg7CitDMTRBO0MxNEE7MTEwOSAxMTY2IDExQjk7QzE0QTsxMTA5IDExNjYgMTFCOTsKK0MxNEI7QzE0QjsxMTA5IDExNjYgMTFCQTtDMTRCOzExMDkgMTE2NiAxMUJBOworQzE0QztDMTRDOzExMDkgMTE2NiAxMUJCO0MxNEM7MTEwOSAxMTY2IDExQkI7CitDMTREO0MxNEQ7MTEwOSAxMTY2IDExQkM7QzE0RDsxMTA5IDExNjYgMTFCQzsKK0MxNEU7QzE0RTsxMTA5IDExNjYgMTFCRDtDMTRFOzExMDkgMTE2NiAxMUJEOworQzE0RjtDMTRGOzExMDkgMTE2NiAxMUJFO0MxNEY7MTEwOSAxMTY2IDExQkU7CitDMTUwO0MxNTA7MTEwOSAxMTY2IDExQkY7QzE1MDsxMTA5IDExNjYgMTFCRjsKK0MxNTE7QzE1MTsxMTA5IDExNjYgMTFDMDtDMTUxOzExMDkgMTE2NiAxMUMwOworQzE1MjtDMTUyOzExMDkgMTE2NiAxMUMxO0MxNTI7MTEwOSAxMTY2IDExQzE7CitDMTUzO0MxNTM7MTEwOSAxMTY2IDExQzI7QzE1MzsxMTA5IDExNjYgMTFDMjsKK0MxNTQ7QzE1NDsxMTA5IDExNjc7QzE1NDsxMTA5IDExNjc7CitDMTU1O0MxNTU7MTEwOSAxMTY3IDExQTg7QzE1NTsxMTA5IDExNjcgMTFBODsKK0MxNTY7QzE1NjsxMTA5IDExNjcgMTFBOTtDMTU2OzExMDkgMTE2NyAxMUE5OworQzE1NztDMTU3OzExMDkgMTE2NyAxMUFBO0MxNTc7MTEwOSAxMTY3IDExQUE7CitDMTU4O0MxNTg7MTEwOSAxMTY3IDExQUI7QzE1ODsxMTA5IDExNjcgMTFBQjsKK0MxNTk7QzE1OTsxMTA5IDExNjcgMTFBQztDMTU5OzExMDkgMTE2NyAxMUFDOworQzE1QTtDMTVBOzExMDkgMTE2NyAxMUFEO0MxNUE7MTEwOSAxMTY3IDExQUQ7CitDMTVCO0MxNUI7MTEwOSAxMTY3IDExQUU7QzE1QjsxMTA5IDExNjcgMTFBRTsKK0MxNUM7QzE1QzsxMTA5IDExNjcgMTFBRjtDMTVDOzExMDkgMTE2NyAxMUFGOworQzE1RDtDMTVEOzExMDkgMTE2NyAxMUIwO0MxNUQ7MTEwOSAxMTY3IDExQjA7CitDMTVFO0MxNUU7MTEwOSAxMTY3IDExQjE7QzE1RTsxMTA5IDExNjcgMTFCMTsKK0MxNUY7QzE1RjsxMTA5IDExNjcgMTFCMjtDMTVGOzExMDkgMTE2NyAxMUIyOworQzE2MDtDMTYwOzExMDkgMTE2NyAxMUIzO0MxNjA7MTEwOSAxMTY3IDExQjM7CitDMTYxO0MxNjE7MTEwOSAxMTY3IDExQjQ7QzE2MTsxMTA5IDExNjcgMTFCNDsKK0MxNjI7QzE2MjsxMTA5IDExNjcgMTFCNTtDMTYyOzExMDkgMTE2NyAxMUI1OworQzE2MztDMTYzOzExMDkgMTE2NyAxMUI2O0MxNjM7MTEwOSAxMTY3IDExQjY7CitDMTY0O0MxNjQ7MTEwOSAxMTY3IDExQjc7QzE2NDsxMTA5IDExNjcgMTFCNzsKK0MxNjU7QzE2NTsxMTA5IDExNjcgMTFCODtDMTY1OzExMDkgMTE2NyAxMUI4OworQzE2NjtDMTY2OzExMDkgMTE2NyAxMUI5O0MxNjY7MTEwOSAxMTY3IDExQjk7CitDMTY3O0MxNjc7MTEwOSAxMTY3IDExQkE7QzE2NzsxMTA5IDExNjcgMTFCQTsKK0MxNjg7QzE2ODsxMTA5IDExNjcgMTFCQjtDMTY4OzExMDkgMTE2NyAxMUJCOworQzE2OTtDMTY5OzExMDkgMTE2NyAxMUJDO0MxNjk7MTEwOSAxMTY3IDExQkM7CitDMTZBO0MxNkE7MTEwOSAxMTY3IDExQkQ7QzE2QTsxMTA5IDExNjcgMTFCRDsKK0MxNkI7QzE2QjsxMTA5IDExNjcgMTFCRTtDMTZCOzExMDkgMTE2NyAxMUJFOworQzE2QztDMTZDOzExMDkgMTE2NyAxMUJGO0MxNkM7MTEwOSAxMTY3IDExQkY7CitDMTZEO0MxNkQ7MTEwOSAxMTY3IDExQzA7QzE2RDsxMTA5IDExNjcgMTFDMDsKK0MxNkU7QzE2RTsxMTA5IDExNjcgMTFDMTtDMTZFOzExMDkgMTE2NyAxMUMxOworQzE2RjtDMTZGOzExMDkgMTE2NyAxMUMyO0MxNkY7MTEwOSAxMTY3IDExQzI7CitDMTcwO0MxNzA7MTEwOSAxMTY4O0MxNzA7MTEwOSAxMTY4OworQzE3MTtDMTcxOzExMDkgMTE2OCAxMUE4O0MxNzE7MTEwOSAxMTY4IDExQTg7CitDMTcyO0MxNzI7MTEwOSAxMTY4IDExQTk7QzE3MjsxMTA5IDExNjggMTFBOTsKK0MxNzM7QzE3MzsxMTA5IDExNjggMTFBQTtDMTczOzExMDkgMTE2OCAxMUFBOworQzE3NDtDMTc0OzExMDkgMTE2OCAxMUFCO0MxNzQ7MTEwOSAxMTY4IDExQUI7CitDMTc1O0MxNzU7MTEwOSAxMTY4IDExQUM7QzE3NTsxMTA5IDExNjggMTFBQzsKK0MxNzY7QzE3NjsxMTA5IDExNjggMTFBRDtDMTc2OzExMDkgMTE2OCAxMUFEOworQzE3NztDMTc3OzExMDkgMTE2OCAxMUFFO0MxNzc7MTEwOSAxMTY4IDExQUU7CitDMTc4O0MxNzg7MTEwOSAxMTY4IDExQUY7QzE3ODsxMTA5IDExNjggMTFBRjsKK0MxNzk7QzE3OTsxMTA5IDExNjggMTFCMDtDMTc5OzExMDkgMTE2OCAxMUIwOworQzE3QTtDMTdBOzExMDkgMTE2OCAxMUIxO0MxN0E7MTEwOSAxMTY4IDExQjE7CitDMTdCO0MxN0I7MTEwOSAxMTY4IDExQjI7QzE3QjsxMTA5IDExNjggMTFCMjsKK0MxN0M7QzE3QzsxMTA5IDExNjggMTFCMztDMTdDOzExMDkgMTE2OCAxMUIzOworQzE3RDtDMTdEOzExMDkgMTE2OCAxMUI0O0MxN0Q7MTEwOSAxMTY4IDExQjQ7CitDMTdFO0MxN0U7MTEwOSAxMTY4IDExQjU7QzE3RTsxMTA5IDExNjggMTFCNTsKK0MxN0Y7QzE3RjsxMTA5IDExNjggMTFCNjtDMTdGOzExMDkgMTE2OCAxMUI2OworQzE4MDtDMTgwOzExMDkgMTE2OCAxMUI3O0MxODA7MTEwOSAxMTY4IDExQjc7CitDMTgxO0MxODE7MTEwOSAxMTY4IDExQjg7QzE4MTsxMTA5IDExNjggMTFCODsKK0MxODI7QzE4MjsxMTA5IDExNjggMTFCOTtDMTgyOzExMDkgMTE2OCAxMUI5OworQzE4MztDMTgzOzExMDkgMTE2OCAxMUJBO0MxODM7MTEwOSAxMTY4IDExQkE7CitDMTg0O0MxODQ7MTEwOSAxMTY4IDExQkI7QzE4NDsxMTA5IDExNjggMTFCQjsKK0MxODU7QzE4NTsxMTA5IDExNjggMTFCQztDMTg1OzExMDkgMTE2OCAxMUJDOworQzE4NjtDMTg2OzExMDkgMTE2OCAxMUJEO0MxODY7MTEwOSAxMTY4IDExQkQ7CitDMTg3O0MxODc7MTEwOSAxMTY4IDExQkU7QzE4NzsxMTA5IDExNjggMTFCRTsKK0MxODg7QzE4ODsxMTA5IDExNjggMTFCRjtDMTg4OzExMDkgMTE2OCAxMUJGOworQzE4OTtDMTg5OzExMDkgMTE2OCAxMUMwO0MxODk7MTEwOSAxMTY4IDExQzA7CitDMThBO0MxOEE7MTEwOSAxMTY4IDExQzE7QzE4QTsxMTA5IDExNjggMTFDMTsKK0MxOEI7QzE4QjsxMTA5IDExNjggMTFDMjtDMThCOzExMDkgMTE2OCAxMUMyOworQzE4QztDMThDOzExMDkgMTE2OTtDMThDOzExMDkgMTE2OTsKK0MxOEQ7QzE4RDsxMTA5IDExNjkgMTFBODtDMThEOzExMDkgMTE2OSAxMUE4OworQzE4RTtDMThFOzExMDkgMTE2OSAxMUE5O0MxOEU7MTEwOSAxMTY5IDExQTk7CitDMThGO0MxOEY7MTEwOSAxMTY5IDExQUE7QzE4RjsxMTA5IDExNjkgMTFBQTsKK0MxOTA7QzE5MDsxMTA5IDExNjkgMTFBQjtDMTkwOzExMDkgMTE2OSAxMUFCOworQzE5MTtDMTkxOzExMDkgMTE2OSAxMUFDO0MxOTE7MTEwOSAxMTY5IDExQUM7CitDMTkyO0MxOTI7MTEwOSAxMTY5IDExQUQ7QzE5MjsxMTA5IDExNjkgMTFBRDsKK0MxOTM7QzE5MzsxMTA5IDExNjkgMTFBRTtDMTkzOzExMDkgMTE2OSAxMUFFOworQzE5NDtDMTk0OzExMDkgMTE2OSAxMUFGO0MxOTQ7MTEwOSAxMTY5IDExQUY7CitDMTk1O0MxOTU7MTEwOSAxMTY5IDExQjA7QzE5NTsxMTA5IDExNjkgMTFCMDsKK0MxOTY7QzE5NjsxMTA5IDExNjkgMTFCMTtDMTk2OzExMDkgMTE2OSAxMUIxOworQzE5NztDMTk3OzExMDkgMTE2OSAxMUIyO0MxOTc7MTEwOSAxMTY5IDExQjI7CitDMTk4O0MxOTg7MTEwOSAxMTY5IDExQjM7QzE5ODsxMTA5IDExNjkgMTFCMzsKK0MxOTk7QzE5OTsxMTA5IDExNjkgMTFCNDtDMTk5OzExMDkgMTE2OSAxMUI0OworQzE5QTtDMTlBOzExMDkgMTE2OSAxMUI1O0MxOUE7MTEwOSAxMTY5IDExQjU7CitDMTlCO0MxOUI7MTEwOSAxMTY5IDExQjY7QzE5QjsxMTA5IDExNjkgMTFCNjsKK0MxOUM7QzE5QzsxMTA5IDExNjkgMTFCNztDMTlDOzExMDkgMTE2OSAxMUI3OworQzE5RDtDMTlEOzExMDkgMTE2OSAxMUI4O0MxOUQ7MTEwOSAxMTY5IDExQjg7CitDMTlFO0MxOUU7MTEwOSAxMTY5IDExQjk7QzE5RTsxMTA5IDExNjkgMTFCOTsKK0MxOUY7QzE5RjsxMTA5IDExNjkgMTFCQTtDMTlGOzExMDkgMTE2OSAxMUJBOworQzFBMDtDMUEwOzExMDkgMTE2OSAxMUJCO0MxQTA7MTEwOSAxMTY5IDExQkI7CitDMUExO0MxQTE7MTEwOSAxMTY5IDExQkM7QzFBMTsxMTA5IDExNjkgMTFCQzsKK0MxQTI7QzFBMjsxMTA5IDExNjkgMTFCRDtDMUEyOzExMDkgMTE2OSAxMUJEOworQzFBMztDMUEzOzExMDkgMTE2OSAxMUJFO0MxQTM7MTEwOSAxMTY5IDExQkU7CitDMUE0O0MxQTQ7MTEwOSAxMTY5IDExQkY7QzFBNDsxMTA5IDExNjkgMTFCRjsKK0MxQTU7QzFBNTsxMTA5IDExNjkgMTFDMDtDMUE1OzExMDkgMTE2OSAxMUMwOworQzFBNjtDMUE2OzExMDkgMTE2OSAxMUMxO0MxQTY7MTEwOSAxMTY5IDExQzE7CitDMUE3O0MxQTc7MTEwOSAxMTY5IDExQzI7QzFBNzsxMTA5IDExNjkgMTFDMjsKK0MxQTg7QzFBODsxMTA5IDExNkE7QzFBODsxMTA5IDExNkE7CitDMUE5O0MxQTk7MTEwOSAxMTZBIDExQTg7QzFBOTsxMTA5IDExNkEgMTFBODsKK0MxQUE7QzFBQTsxMTA5IDExNkEgMTFBOTtDMUFBOzExMDkgMTE2QSAxMUE5OworQzFBQjtDMUFCOzExMDkgMTE2QSAxMUFBO0MxQUI7MTEwOSAxMTZBIDExQUE7CitDMUFDO0MxQUM7MTEwOSAxMTZBIDExQUI7QzFBQzsxMTA5IDExNkEgMTFBQjsKK0MxQUQ7QzFBRDsxMTA5IDExNkEgMTFBQztDMUFEOzExMDkgMTE2QSAxMUFDOworQzFBRTtDMUFFOzExMDkgMTE2QSAxMUFEO0MxQUU7MTEwOSAxMTZBIDExQUQ7CitDMUFGO0MxQUY7MTEwOSAxMTZBIDExQUU7QzFBRjsxMTA5IDExNkEgMTFBRTsKK0MxQjA7QzFCMDsxMTA5IDExNkEgMTFBRjtDMUIwOzExMDkgMTE2QSAxMUFGOworQzFCMTtDMUIxOzExMDkgMTE2QSAxMUIwO0MxQjE7MTEwOSAxMTZBIDExQjA7CitDMUIyO0MxQjI7MTEwOSAxMTZBIDExQjE7QzFCMjsxMTA5IDExNkEgMTFCMTsKK0MxQjM7QzFCMzsxMTA5IDExNkEgMTFCMjtDMUIzOzExMDkgMTE2QSAxMUIyOworQzFCNDtDMUI0OzExMDkgMTE2QSAxMUIzO0MxQjQ7MTEwOSAxMTZBIDExQjM7CitDMUI1O0MxQjU7MTEwOSAxMTZBIDExQjQ7QzFCNTsxMTA5IDExNkEgMTFCNDsKK0MxQjY7QzFCNjsxMTA5IDExNkEgMTFCNTtDMUI2OzExMDkgMTE2QSAxMUI1OworQzFCNztDMUI3OzExMDkgMTE2QSAxMUI2O0MxQjc7MTEwOSAxMTZBIDExQjY7CitDMUI4O0MxQjg7MTEwOSAxMTZBIDExQjc7QzFCODsxMTA5IDExNkEgMTFCNzsKK0MxQjk7QzFCOTsxMTA5IDExNkEgMTFCODtDMUI5OzExMDkgMTE2QSAxMUI4OworQzFCQTtDMUJBOzExMDkgMTE2QSAxMUI5O0MxQkE7MTEwOSAxMTZBIDExQjk7CitDMUJCO0MxQkI7MTEwOSAxMTZBIDExQkE7QzFCQjsxMTA5IDExNkEgMTFCQTsKK0MxQkM7QzFCQzsxMTA5IDExNkEgMTFCQjtDMUJDOzExMDkgMTE2QSAxMUJCOworQzFCRDtDMUJEOzExMDkgMTE2QSAxMUJDO0MxQkQ7MTEwOSAxMTZBIDExQkM7CitDMUJFO0MxQkU7MTEwOSAxMTZBIDExQkQ7QzFCRTsxMTA5IDExNkEgMTFCRDsKK0MxQkY7QzFCRjsxMTA5IDExNkEgMTFCRTtDMUJGOzExMDkgMTE2QSAxMUJFOworQzFDMDtDMUMwOzExMDkgMTE2QSAxMUJGO0MxQzA7MTEwOSAxMTZBIDExQkY7CitDMUMxO0MxQzE7MTEwOSAxMTZBIDExQzA7QzFDMTsxMTA5IDExNkEgMTFDMDsKK0MxQzI7QzFDMjsxMTA5IDExNkEgMTFDMTtDMUMyOzExMDkgMTE2QSAxMUMxOworQzFDMztDMUMzOzExMDkgMTE2QSAxMUMyO0MxQzM7MTEwOSAxMTZBIDExQzI7CitDMUM0O0MxQzQ7MTEwOSAxMTZCO0MxQzQ7MTEwOSAxMTZCOworQzFDNTtDMUM1OzExMDkgMTE2QiAxMUE4O0MxQzU7MTEwOSAxMTZCIDExQTg7CitDMUM2O0MxQzY7MTEwOSAxMTZCIDExQTk7QzFDNjsxMTA5IDExNkIgMTFBOTsKK0MxQzc7QzFDNzsxMTA5IDExNkIgMTFBQTtDMUM3OzExMDkgMTE2QiAxMUFBOworQzFDODtDMUM4OzExMDkgMTE2QiAxMUFCO0MxQzg7MTEwOSAxMTZCIDExQUI7CitDMUM5O0MxQzk7MTEwOSAxMTZCIDExQUM7QzFDOTsxMTA5IDExNkIgMTFBQzsKK0MxQ0E7QzFDQTsxMTA5IDExNkIgMTFBRDtDMUNBOzExMDkgMTE2QiAxMUFEOworQzFDQjtDMUNCOzExMDkgMTE2QiAxMUFFO0MxQ0I7MTEwOSAxMTZCIDExQUU7CitDMUNDO0MxQ0M7MTEwOSAxMTZCIDExQUY7QzFDQzsxMTA5IDExNkIgMTFBRjsKK0MxQ0Q7QzFDRDsxMTA5IDExNkIgMTFCMDtDMUNEOzExMDkgMTE2QiAxMUIwOworQzFDRTtDMUNFOzExMDkgMTE2QiAxMUIxO0MxQ0U7MTEwOSAxMTZCIDExQjE7CitDMUNGO0MxQ0Y7MTEwOSAxMTZCIDExQjI7QzFDRjsxMTA5IDExNkIgMTFCMjsKK0MxRDA7QzFEMDsxMTA5IDExNkIgMTFCMztDMUQwOzExMDkgMTE2QiAxMUIzOworQzFEMTtDMUQxOzExMDkgMTE2QiAxMUI0O0MxRDE7MTEwOSAxMTZCIDExQjQ7CitDMUQyO0MxRDI7MTEwOSAxMTZCIDExQjU7QzFEMjsxMTA5IDExNkIgMTFCNTsKK0MxRDM7QzFEMzsxMTA5IDExNkIgMTFCNjtDMUQzOzExMDkgMTE2QiAxMUI2OworQzFENDtDMUQ0OzExMDkgMTE2QiAxMUI3O0MxRDQ7MTEwOSAxMTZCIDExQjc7CitDMUQ1O0MxRDU7MTEwOSAxMTZCIDExQjg7QzFENTsxMTA5IDExNkIgMTFCODsKK0MxRDY7QzFENjsxMTA5IDExNkIgMTFCOTtDMUQ2OzExMDkgMTE2QiAxMUI5OworQzFENztDMUQ3OzExMDkgMTE2QiAxMUJBO0MxRDc7MTEwOSAxMTZCIDExQkE7CitDMUQ4O0MxRDg7MTEwOSAxMTZCIDExQkI7QzFEODsxMTA5IDExNkIgMTFCQjsKK0MxRDk7QzFEOTsxMTA5IDExNkIgMTFCQztDMUQ5OzExMDkgMTE2QiAxMUJDOworQzFEQTtDMURBOzExMDkgMTE2QiAxMUJEO0MxREE7MTEwOSAxMTZCIDExQkQ7CitDMURCO0MxREI7MTEwOSAxMTZCIDExQkU7QzFEQjsxMTA5IDExNkIgMTFCRTsKK0MxREM7QzFEQzsxMTA5IDExNkIgMTFCRjtDMURDOzExMDkgMTE2QiAxMUJGOworQzFERDtDMUREOzExMDkgMTE2QiAxMUMwO0MxREQ7MTEwOSAxMTZCIDExQzA7CitDMURFO0MxREU7MTEwOSAxMTZCIDExQzE7QzFERTsxMTA5IDExNkIgMTFDMTsKK0MxREY7QzFERjsxMTA5IDExNkIgMTFDMjtDMURGOzExMDkgMTE2QiAxMUMyOworQzFFMDtDMUUwOzExMDkgMTE2QztDMUUwOzExMDkgMTE2QzsKK0MxRTE7QzFFMTsxMTA5IDExNkMgMTFBODtDMUUxOzExMDkgMTE2QyAxMUE4OworQzFFMjtDMUUyOzExMDkgMTE2QyAxMUE5O0MxRTI7MTEwOSAxMTZDIDExQTk7CitDMUUzO0MxRTM7MTEwOSAxMTZDIDExQUE7QzFFMzsxMTA5IDExNkMgMTFBQTsKK0MxRTQ7QzFFNDsxMTA5IDExNkMgMTFBQjtDMUU0OzExMDkgMTE2QyAxMUFCOworQzFFNTtDMUU1OzExMDkgMTE2QyAxMUFDO0MxRTU7MTEwOSAxMTZDIDExQUM7CitDMUU2O0MxRTY7MTEwOSAxMTZDIDExQUQ7QzFFNjsxMTA5IDExNkMgMTFBRDsKK0MxRTc7QzFFNzsxMTA5IDExNkMgMTFBRTtDMUU3OzExMDkgMTE2QyAxMUFFOworQzFFODtDMUU4OzExMDkgMTE2QyAxMUFGO0MxRTg7MTEwOSAxMTZDIDExQUY7CitDMUU5O0MxRTk7MTEwOSAxMTZDIDExQjA7QzFFOTsxMTA5IDExNkMgMTFCMDsKK0MxRUE7QzFFQTsxMTA5IDExNkMgMTFCMTtDMUVBOzExMDkgMTE2QyAxMUIxOworQzFFQjtDMUVCOzExMDkgMTE2QyAxMUIyO0MxRUI7MTEwOSAxMTZDIDExQjI7CitDMUVDO0MxRUM7MTEwOSAxMTZDIDExQjM7QzFFQzsxMTA5IDExNkMgMTFCMzsKK0MxRUQ7QzFFRDsxMTA5IDExNkMgMTFCNDtDMUVEOzExMDkgMTE2QyAxMUI0OworQzFFRTtDMUVFOzExMDkgMTE2QyAxMUI1O0MxRUU7MTEwOSAxMTZDIDExQjU7CitDMUVGO0MxRUY7MTEwOSAxMTZDIDExQjY7QzFFRjsxMTA5IDExNkMgMTFCNjsKK0MxRjA7QzFGMDsxMTA5IDExNkMgMTFCNztDMUYwOzExMDkgMTE2QyAxMUI3OworQzFGMTtDMUYxOzExMDkgMTE2QyAxMUI4O0MxRjE7MTEwOSAxMTZDIDExQjg7CitDMUYyO0MxRjI7MTEwOSAxMTZDIDExQjk7QzFGMjsxMTA5IDExNkMgMTFCOTsKK0MxRjM7QzFGMzsxMTA5IDExNkMgMTFCQTtDMUYzOzExMDkgMTE2QyAxMUJBOworQzFGNDtDMUY0OzExMDkgMTE2QyAxMUJCO0MxRjQ7MTEwOSAxMTZDIDExQkI7CitDMUY1O0MxRjU7MTEwOSAxMTZDIDExQkM7QzFGNTsxMTA5IDExNkMgMTFCQzsKK0MxRjY7QzFGNjsxMTA5IDExNkMgMTFCRDtDMUY2OzExMDkgMTE2QyAxMUJEOworQzFGNztDMUY3OzExMDkgMTE2QyAxMUJFO0MxRjc7MTEwOSAxMTZDIDExQkU7CitDMUY4O0MxRjg7MTEwOSAxMTZDIDExQkY7QzFGODsxMTA5IDExNkMgMTFCRjsKK0MxRjk7QzFGOTsxMTA5IDExNkMgMTFDMDtDMUY5OzExMDkgMTE2QyAxMUMwOworQzFGQTtDMUZBOzExMDkgMTE2QyAxMUMxO0MxRkE7MTEwOSAxMTZDIDExQzE7CitDMUZCO0MxRkI7MTEwOSAxMTZDIDExQzI7QzFGQjsxMTA5IDExNkMgMTFDMjsKK0MxRkM7QzFGQzsxMTA5IDExNkQ7QzFGQzsxMTA5IDExNkQ7CitDMUZEO0MxRkQ7MTEwOSAxMTZEIDExQTg7QzFGRDsxMTA5IDExNkQgMTFBODsKK0MxRkU7QzFGRTsxMTA5IDExNkQgMTFBOTtDMUZFOzExMDkgMTE2RCAxMUE5OworQzFGRjtDMUZGOzExMDkgMTE2RCAxMUFBO0MxRkY7MTEwOSAxMTZEIDExQUE7CitDMjAwO0MyMDA7MTEwOSAxMTZEIDExQUI7QzIwMDsxMTA5IDExNkQgMTFBQjsKK0MyMDE7QzIwMTsxMTA5IDExNkQgMTFBQztDMjAxOzExMDkgMTE2RCAxMUFDOworQzIwMjtDMjAyOzExMDkgMTE2RCAxMUFEO0MyMDI7MTEwOSAxMTZEIDExQUQ7CitDMjAzO0MyMDM7MTEwOSAxMTZEIDExQUU7QzIwMzsxMTA5IDExNkQgMTFBRTsKK0MyMDQ7QzIwNDsxMTA5IDExNkQgMTFBRjtDMjA0OzExMDkgMTE2RCAxMUFGOworQzIwNTtDMjA1OzExMDkgMTE2RCAxMUIwO0MyMDU7MTEwOSAxMTZEIDExQjA7CitDMjA2O0MyMDY7MTEwOSAxMTZEIDExQjE7QzIwNjsxMTA5IDExNkQgMTFCMTsKK0MyMDc7QzIwNzsxMTA5IDExNkQgMTFCMjtDMjA3OzExMDkgMTE2RCAxMUIyOworQzIwODtDMjA4OzExMDkgMTE2RCAxMUIzO0MyMDg7MTEwOSAxMTZEIDExQjM7CitDMjA5O0MyMDk7MTEwOSAxMTZEIDExQjQ7QzIwOTsxMTA5IDExNkQgMTFCNDsKK0MyMEE7QzIwQTsxMTA5IDExNkQgMTFCNTtDMjBBOzExMDkgMTE2RCAxMUI1OworQzIwQjtDMjBCOzExMDkgMTE2RCAxMUI2O0MyMEI7MTEwOSAxMTZEIDExQjY7CitDMjBDO0MyMEM7MTEwOSAxMTZEIDExQjc7QzIwQzsxMTA5IDExNkQgMTFCNzsKK0MyMEQ7QzIwRDsxMTA5IDExNkQgMTFCODtDMjBEOzExMDkgMTE2RCAxMUI4OworQzIwRTtDMjBFOzExMDkgMTE2RCAxMUI5O0MyMEU7MTEwOSAxMTZEIDExQjk7CitDMjBGO0MyMEY7MTEwOSAxMTZEIDExQkE7QzIwRjsxMTA5IDExNkQgMTFCQTsKK0MyMTA7QzIxMDsxMTA5IDExNkQgMTFCQjtDMjEwOzExMDkgMTE2RCAxMUJCOworQzIxMTtDMjExOzExMDkgMTE2RCAxMUJDO0MyMTE7MTEwOSAxMTZEIDExQkM7CitDMjEyO0MyMTI7MTEwOSAxMTZEIDExQkQ7QzIxMjsxMTA5IDExNkQgMTFCRDsKK0MyMTM7QzIxMzsxMTA5IDExNkQgMTFCRTtDMjEzOzExMDkgMTE2RCAxMUJFOworQzIxNDtDMjE0OzExMDkgMTE2RCAxMUJGO0MyMTQ7MTEwOSAxMTZEIDExQkY7CitDMjE1O0MyMTU7MTEwOSAxMTZEIDExQzA7QzIxNTsxMTA5IDExNkQgMTFDMDsKK0MyMTY7QzIxNjsxMTA5IDExNkQgMTFDMTtDMjE2OzExMDkgMTE2RCAxMUMxOworQzIxNztDMjE3OzExMDkgMTE2RCAxMUMyO0MyMTc7MTEwOSAxMTZEIDExQzI7CitDMjE4O0MyMTg7MTEwOSAxMTZFO0MyMTg7MTEwOSAxMTZFOworQzIxOTtDMjE5OzExMDkgMTE2RSAxMUE4O0MyMTk7MTEwOSAxMTZFIDExQTg7CitDMjFBO0MyMUE7MTEwOSAxMTZFIDExQTk7QzIxQTsxMTA5IDExNkUgMTFBOTsKK0MyMUI7QzIxQjsxMTA5IDExNkUgMTFBQTtDMjFCOzExMDkgMTE2RSAxMUFBOworQzIxQztDMjFDOzExMDkgMTE2RSAxMUFCO0MyMUM7MTEwOSAxMTZFIDExQUI7CitDMjFEO0MyMUQ7MTEwOSAxMTZFIDExQUM7QzIxRDsxMTA5IDExNkUgMTFBQzsKK0MyMUU7QzIxRTsxMTA5IDExNkUgMTFBRDtDMjFFOzExMDkgMTE2RSAxMUFEOworQzIxRjtDMjFGOzExMDkgMTE2RSAxMUFFO0MyMUY7MTEwOSAxMTZFIDExQUU7CitDMjIwO0MyMjA7MTEwOSAxMTZFIDExQUY7QzIyMDsxMTA5IDExNkUgMTFBRjsKK0MyMjE7QzIyMTsxMTA5IDExNkUgMTFCMDtDMjIxOzExMDkgMTE2RSAxMUIwOworQzIyMjtDMjIyOzExMDkgMTE2RSAxMUIxO0MyMjI7MTEwOSAxMTZFIDExQjE7CitDMjIzO0MyMjM7MTEwOSAxMTZFIDExQjI7QzIyMzsxMTA5IDExNkUgMTFCMjsKK0MyMjQ7QzIyNDsxMTA5IDExNkUgMTFCMztDMjI0OzExMDkgMTE2RSAxMUIzOworQzIyNTtDMjI1OzExMDkgMTE2RSAxMUI0O0MyMjU7MTEwOSAxMTZFIDExQjQ7CitDMjI2O0MyMjY7MTEwOSAxMTZFIDExQjU7QzIyNjsxMTA5IDExNkUgMTFCNTsKK0MyMjc7QzIyNzsxMTA5IDExNkUgMTFCNjtDMjI3OzExMDkgMTE2RSAxMUI2OworQzIyODtDMjI4OzExMDkgMTE2RSAxMUI3O0MyMjg7MTEwOSAxMTZFIDExQjc7CitDMjI5O0MyMjk7MTEwOSAxMTZFIDExQjg7QzIyOTsxMTA5IDExNkUgMTFCODsKK0MyMkE7QzIyQTsxMTA5IDExNkUgMTFCOTtDMjJBOzExMDkgMTE2RSAxMUI5OworQzIyQjtDMjJCOzExMDkgMTE2RSAxMUJBO0MyMkI7MTEwOSAxMTZFIDExQkE7CitDMjJDO0MyMkM7MTEwOSAxMTZFIDExQkI7QzIyQzsxMTA5IDExNkUgMTFCQjsKK0MyMkQ7QzIyRDsxMTA5IDExNkUgMTFCQztDMjJEOzExMDkgMTE2RSAxMUJDOworQzIyRTtDMjJFOzExMDkgMTE2RSAxMUJEO0MyMkU7MTEwOSAxMTZFIDExQkQ7CitDMjJGO0MyMkY7MTEwOSAxMTZFIDExQkU7QzIyRjsxMTA5IDExNkUgMTFCRTsKK0MyMzA7QzIzMDsxMTA5IDExNkUgMTFCRjtDMjMwOzExMDkgMTE2RSAxMUJGOworQzIzMTtDMjMxOzExMDkgMTE2RSAxMUMwO0MyMzE7MTEwOSAxMTZFIDExQzA7CitDMjMyO0MyMzI7MTEwOSAxMTZFIDExQzE7QzIzMjsxMTA5IDExNkUgMTFDMTsKK0MyMzM7QzIzMzsxMTA5IDExNkUgMTFDMjtDMjMzOzExMDkgMTE2RSAxMUMyOworQzIzNDtDMjM0OzExMDkgMTE2RjtDMjM0OzExMDkgMTE2RjsKK0MyMzU7QzIzNTsxMTA5IDExNkYgMTFBODtDMjM1OzExMDkgMTE2RiAxMUE4OworQzIzNjtDMjM2OzExMDkgMTE2RiAxMUE5O0MyMzY7MTEwOSAxMTZGIDExQTk7CitDMjM3O0MyMzc7MTEwOSAxMTZGIDExQUE7QzIzNzsxMTA5IDExNkYgMTFBQTsKK0MyMzg7QzIzODsxMTA5IDExNkYgMTFBQjtDMjM4OzExMDkgMTE2RiAxMUFCOworQzIzOTtDMjM5OzExMDkgMTE2RiAxMUFDO0MyMzk7MTEwOSAxMTZGIDExQUM7CitDMjNBO0MyM0E7MTEwOSAxMTZGIDExQUQ7QzIzQTsxMTA5IDExNkYgMTFBRDsKK0MyM0I7QzIzQjsxMTA5IDExNkYgMTFBRTtDMjNCOzExMDkgMTE2RiAxMUFFOworQzIzQztDMjNDOzExMDkgMTE2RiAxMUFGO0MyM0M7MTEwOSAxMTZGIDExQUY7CitDMjNEO0MyM0Q7MTEwOSAxMTZGIDExQjA7QzIzRDsxMTA5IDExNkYgMTFCMDsKK0MyM0U7QzIzRTsxMTA5IDExNkYgMTFCMTtDMjNFOzExMDkgMTE2RiAxMUIxOworQzIzRjtDMjNGOzExMDkgMTE2RiAxMUIyO0MyM0Y7MTEwOSAxMTZGIDExQjI7CitDMjQwO0MyNDA7MTEwOSAxMTZGIDExQjM7QzI0MDsxMTA5IDExNkYgMTFCMzsKK0MyNDE7QzI0MTsxMTA5IDExNkYgMTFCNDtDMjQxOzExMDkgMTE2RiAxMUI0OworQzI0MjtDMjQyOzExMDkgMTE2RiAxMUI1O0MyNDI7MTEwOSAxMTZGIDExQjU7CitDMjQzO0MyNDM7MTEwOSAxMTZGIDExQjY7QzI0MzsxMTA5IDExNkYgMTFCNjsKK0MyNDQ7QzI0NDsxMTA5IDExNkYgMTFCNztDMjQ0OzExMDkgMTE2RiAxMUI3OworQzI0NTtDMjQ1OzExMDkgMTE2RiAxMUI4O0MyNDU7MTEwOSAxMTZGIDExQjg7CitDMjQ2O0MyNDY7MTEwOSAxMTZGIDExQjk7QzI0NjsxMTA5IDExNkYgMTFCOTsKK0MyNDc7QzI0NzsxMTA5IDExNkYgMTFCQTtDMjQ3OzExMDkgMTE2RiAxMUJBOworQzI0ODtDMjQ4OzExMDkgMTE2RiAxMUJCO0MyNDg7MTEwOSAxMTZGIDExQkI7CitDMjQ5O0MyNDk7MTEwOSAxMTZGIDExQkM7QzI0OTsxMTA5IDExNkYgMTFCQzsKK0MyNEE7QzI0QTsxMTA5IDExNkYgMTFCRDtDMjRBOzExMDkgMTE2RiAxMUJEOworQzI0QjtDMjRCOzExMDkgMTE2RiAxMUJFO0MyNEI7MTEwOSAxMTZGIDExQkU7CitDMjRDO0MyNEM7MTEwOSAxMTZGIDExQkY7QzI0QzsxMTA5IDExNkYgMTFCRjsKK0MyNEQ7QzI0RDsxMTA5IDExNkYgMTFDMDtDMjREOzExMDkgMTE2RiAxMUMwOworQzI0RTtDMjRFOzExMDkgMTE2RiAxMUMxO0MyNEU7MTEwOSAxMTZGIDExQzE7CitDMjRGO0MyNEY7MTEwOSAxMTZGIDExQzI7QzI0RjsxMTA5IDExNkYgMTFDMjsKK0MyNTA7QzI1MDsxMTA5IDExNzA7QzI1MDsxMTA5IDExNzA7CitDMjUxO0MyNTE7MTEwOSAxMTcwIDExQTg7QzI1MTsxMTA5IDExNzAgMTFBODsKK0MyNTI7QzI1MjsxMTA5IDExNzAgMTFBOTtDMjUyOzExMDkgMTE3MCAxMUE5OworQzI1MztDMjUzOzExMDkgMTE3MCAxMUFBO0MyNTM7MTEwOSAxMTcwIDExQUE7CitDMjU0O0MyNTQ7MTEwOSAxMTcwIDExQUI7QzI1NDsxMTA5IDExNzAgMTFBQjsKK0MyNTU7QzI1NTsxMTA5IDExNzAgMTFBQztDMjU1OzExMDkgMTE3MCAxMUFDOworQzI1NjtDMjU2OzExMDkgMTE3MCAxMUFEO0MyNTY7MTEwOSAxMTcwIDExQUQ7CitDMjU3O0MyNTc7MTEwOSAxMTcwIDExQUU7QzI1NzsxMTA5IDExNzAgMTFBRTsKK0MyNTg7QzI1ODsxMTA5IDExNzAgMTFBRjtDMjU4OzExMDkgMTE3MCAxMUFGOworQzI1OTtDMjU5OzExMDkgMTE3MCAxMUIwO0MyNTk7MTEwOSAxMTcwIDExQjA7CitDMjVBO0MyNUE7MTEwOSAxMTcwIDExQjE7QzI1QTsxMTA5IDExNzAgMTFCMTsKK0MyNUI7QzI1QjsxMTA5IDExNzAgMTFCMjtDMjVCOzExMDkgMTE3MCAxMUIyOworQzI1QztDMjVDOzExMDkgMTE3MCAxMUIzO0MyNUM7MTEwOSAxMTcwIDExQjM7CitDMjVEO0MyNUQ7MTEwOSAxMTcwIDExQjQ7QzI1RDsxMTA5IDExNzAgMTFCNDsKK0MyNUU7QzI1RTsxMTA5IDExNzAgMTFCNTtDMjVFOzExMDkgMTE3MCAxMUI1OworQzI1RjtDMjVGOzExMDkgMTE3MCAxMUI2O0MyNUY7MTEwOSAxMTcwIDExQjY7CitDMjYwO0MyNjA7MTEwOSAxMTcwIDExQjc7QzI2MDsxMTA5IDExNzAgMTFCNzsKK0MyNjE7QzI2MTsxMTA5IDExNzAgMTFCODtDMjYxOzExMDkgMTE3MCAxMUI4OworQzI2MjtDMjYyOzExMDkgMTE3MCAxMUI5O0MyNjI7MTEwOSAxMTcwIDExQjk7CitDMjYzO0MyNjM7MTEwOSAxMTcwIDExQkE7QzI2MzsxMTA5IDExNzAgMTFCQTsKK0MyNjQ7QzI2NDsxMTA5IDExNzAgMTFCQjtDMjY0OzExMDkgMTE3MCAxMUJCOworQzI2NTtDMjY1OzExMDkgMTE3MCAxMUJDO0MyNjU7MTEwOSAxMTcwIDExQkM7CitDMjY2O0MyNjY7MTEwOSAxMTcwIDExQkQ7QzI2NjsxMTA5IDExNzAgMTFCRDsKK0MyNjc7QzI2NzsxMTA5IDExNzAgMTFCRTtDMjY3OzExMDkgMTE3MCAxMUJFOworQzI2ODtDMjY4OzExMDkgMTE3MCAxMUJGO0MyNjg7MTEwOSAxMTcwIDExQkY7CitDMjY5O0MyNjk7MTEwOSAxMTcwIDExQzA7QzI2OTsxMTA5IDExNzAgMTFDMDsKK0MyNkE7QzI2QTsxMTA5IDExNzAgMTFDMTtDMjZBOzExMDkgMTE3MCAxMUMxOworQzI2QjtDMjZCOzExMDkgMTE3MCAxMUMyO0MyNkI7MTEwOSAxMTcwIDExQzI7CitDMjZDO0MyNkM7MTEwOSAxMTcxO0MyNkM7MTEwOSAxMTcxOworQzI2RDtDMjZEOzExMDkgMTE3MSAxMUE4O0MyNkQ7MTEwOSAxMTcxIDExQTg7CitDMjZFO0MyNkU7MTEwOSAxMTcxIDExQTk7QzI2RTsxMTA5IDExNzEgMTFBOTsKK0MyNkY7QzI2RjsxMTA5IDExNzEgMTFBQTtDMjZGOzExMDkgMTE3MSAxMUFBOworQzI3MDtDMjcwOzExMDkgMTE3MSAxMUFCO0MyNzA7MTEwOSAxMTcxIDExQUI7CitDMjcxO0MyNzE7MTEwOSAxMTcxIDExQUM7QzI3MTsxMTA5IDExNzEgMTFBQzsKK0MyNzI7QzI3MjsxMTA5IDExNzEgMTFBRDtDMjcyOzExMDkgMTE3MSAxMUFEOworQzI3MztDMjczOzExMDkgMTE3MSAxMUFFO0MyNzM7MTEwOSAxMTcxIDExQUU7CitDMjc0O0MyNzQ7MTEwOSAxMTcxIDExQUY7QzI3NDsxMTA5IDExNzEgMTFBRjsKK0MyNzU7QzI3NTsxMTA5IDExNzEgMTFCMDtDMjc1OzExMDkgMTE3MSAxMUIwOworQzI3NjtDMjc2OzExMDkgMTE3MSAxMUIxO0MyNzY7MTEwOSAxMTcxIDExQjE7CitDMjc3O0MyNzc7MTEwOSAxMTcxIDExQjI7QzI3NzsxMTA5IDExNzEgMTFCMjsKK0MyNzg7QzI3ODsxMTA5IDExNzEgMTFCMztDMjc4OzExMDkgMTE3MSAxMUIzOworQzI3OTtDMjc5OzExMDkgMTE3MSAxMUI0O0MyNzk7MTEwOSAxMTcxIDExQjQ7CitDMjdBO0MyN0E7MTEwOSAxMTcxIDExQjU7QzI3QTsxMTA5IDExNzEgMTFCNTsKK0MyN0I7QzI3QjsxMTA5IDExNzEgMTFCNjtDMjdCOzExMDkgMTE3MSAxMUI2OworQzI3QztDMjdDOzExMDkgMTE3MSAxMUI3O0MyN0M7MTEwOSAxMTcxIDExQjc7CitDMjdEO0MyN0Q7MTEwOSAxMTcxIDExQjg7QzI3RDsxMTA5IDExNzEgMTFCODsKK0MyN0U7QzI3RTsxMTA5IDExNzEgMTFCOTtDMjdFOzExMDkgMTE3MSAxMUI5OworQzI3RjtDMjdGOzExMDkgMTE3MSAxMUJBO0MyN0Y7MTEwOSAxMTcxIDExQkE7CitDMjgwO0MyODA7MTEwOSAxMTcxIDExQkI7QzI4MDsxMTA5IDExNzEgMTFCQjsKK0MyODE7QzI4MTsxMTA5IDExNzEgMTFCQztDMjgxOzExMDkgMTE3MSAxMUJDOworQzI4MjtDMjgyOzExMDkgMTE3MSAxMUJEO0MyODI7MTEwOSAxMTcxIDExQkQ7CitDMjgzO0MyODM7MTEwOSAxMTcxIDExQkU7QzI4MzsxMTA5IDExNzEgMTFCRTsKK0MyODQ7QzI4NDsxMTA5IDExNzEgMTFCRjtDMjg0OzExMDkgMTE3MSAxMUJGOworQzI4NTtDMjg1OzExMDkgMTE3MSAxMUMwO0MyODU7MTEwOSAxMTcxIDExQzA7CitDMjg2O0MyODY7MTEwOSAxMTcxIDExQzE7QzI4NjsxMTA5IDExNzEgMTFDMTsKK0MyODc7QzI4NzsxMTA5IDExNzEgMTFDMjtDMjg3OzExMDkgMTE3MSAxMUMyOworQzI4ODtDMjg4OzExMDkgMTE3MjtDMjg4OzExMDkgMTE3MjsKK0MyODk7QzI4OTsxMTA5IDExNzIgMTFBODtDMjg5OzExMDkgMTE3MiAxMUE4OworQzI4QTtDMjhBOzExMDkgMTE3MiAxMUE5O0MyOEE7MTEwOSAxMTcyIDExQTk7CitDMjhCO0MyOEI7MTEwOSAxMTcyIDExQUE7QzI4QjsxMTA5IDExNzIgMTFBQTsKK0MyOEM7QzI4QzsxMTA5IDExNzIgMTFBQjtDMjhDOzExMDkgMTE3MiAxMUFCOworQzI4RDtDMjhEOzExMDkgMTE3MiAxMUFDO0MyOEQ7MTEwOSAxMTcyIDExQUM7CitDMjhFO0MyOEU7MTEwOSAxMTcyIDExQUQ7QzI4RTsxMTA5IDExNzIgMTFBRDsKK0MyOEY7QzI4RjsxMTA5IDExNzIgMTFBRTtDMjhGOzExMDkgMTE3MiAxMUFFOworQzI5MDtDMjkwOzExMDkgMTE3MiAxMUFGO0MyOTA7MTEwOSAxMTcyIDExQUY7CitDMjkxO0MyOTE7MTEwOSAxMTcyIDExQjA7QzI5MTsxMTA5IDExNzIgMTFCMDsKK0MyOTI7QzI5MjsxMTA5IDExNzIgMTFCMTtDMjkyOzExMDkgMTE3MiAxMUIxOworQzI5MztDMjkzOzExMDkgMTE3MiAxMUIyO0MyOTM7MTEwOSAxMTcyIDExQjI7CitDMjk0O0MyOTQ7MTEwOSAxMTcyIDExQjM7QzI5NDsxMTA5IDExNzIgMTFCMzsKK0MyOTU7QzI5NTsxMTA5IDExNzIgMTFCNDtDMjk1OzExMDkgMTE3MiAxMUI0OworQzI5NjtDMjk2OzExMDkgMTE3MiAxMUI1O0MyOTY7MTEwOSAxMTcyIDExQjU7CitDMjk3O0MyOTc7MTEwOSAxMTcyIDExQjY7QzI5NzsxMTA5IDExNzIgMTFCNjsKK0MyOTg7QzI5ODsxMTA5IDExNzIgMTFCNztDMjk4OzExMDkgMTE3MiAxMUI3OworQzI5OTtDMjk5OzExMDkgMTE3MiAxMUI4O0MyOTk7MTEwOSAxMTcyIDExQjg7CitDMjlBO0MyOUE7MTEwOSAxMTcyIDExQjk7QzI5QTsxMTA5IDExNzIgMTFCOTsKK0MyOUI7QzI5QjsxMTA5IDExNzIgMTFCQTtDMjlCOzExMDkgMTE3MiAxMUJBOworQzI5QztDMjlDOzExMDkgMTE3MiAxMUJCO0MyOUM7MTEwOSAxMTcyIDExQkI7CitDMjlEO0MyOUQ7MTEwOSAxMTcyIDExQkM7QzI5RDsxMTA5IDExNzIgMTFCQzsKK0MyOUU7QzI5RTsxMTA5IDExNzIgMTFCRDtDMjlFOzExMDkgMTE3MiAxMUJEOworQzI5RjtDMjlGOzExMDkgMTE3MiAxMUJFO0MyOUY7MTEwOSAxMTcyIDExQkU7CitDMkEwO0MyQTA7MTEwOSAxMTcyIDExQkY7QzJBMDsxMTA5IDExNzIgMTFCRjsKK0MyQTE7QzJBMTsxMTA5IDExNzIgMTFDMDtDMkExOzExMDkgMTE3MiAxMUMwOworQzJBMjtDMkEyOzExMDkgMTE3MiAxMUMxO0MyQTI7MTEwOSAxMTcyIDExQzE7CitDMkEzO0MyQTM7MTEwOSAxMTcyIDExQzI7QzJBMzsxMTA5IDExNzIgMTFDMjsKK0MyQTQ7QzJBNDsxMTA5IDExNzM7QzJBNDsxMTA5IDExNzM7CitDMkE1O0MyQTU7MTEwOSAxMTczIDExQTg7QzJBNTsxMTA5IDExNzMgMTFBODsKK0MyQTY7QzJBNjsxMTA5IDExNzMgMTFBOTtDMkE2OzExMDkgMTE3MyAxMUE5OworQzJBNztDMkE3OzExMDkgMTE3MyAxMUFBO0MyQTc7MTEwOSAxMTczIDExQUE7CitDMkE4O0MyQTg7MTEwOSAxMTczIDExQUI7QzJBODsxMTA5IDExNzMgMTFBQjsKK0MyQTk7QzJBOTsxMTA5IDExNzMgMTFBQztDMkE5OzExMDkgMTE3MyAxMUFDOworQzJBQTtDMkFBOzExMDkgMTE3MyAxMUFEO0MyQUE7MTEwOSAxMTczIDExQUQ7CitDMkFCO0MyQUI7MTEwOSAxMTczIDExQUU7QzJBQjsxMTA5IDExNzMgMTFBRTsKK0MyQUM7QzJBQzsxMTA5IDExNzMgMTFBRjtDMkFDOzExMDkgMTE3MyAxMUFGOworQzJBRDtDMkFEOzExMDkgMTE3MyAxMUIwO0MyQUQ7MTEwOSAxMTczIDExQjA7CitDMkFFO0MyQUU7MTEwOSAxMTczIDExQjE7QzJBRTsxMTA5IDExNzMgMTFCMTsKK0MyQUY7QzJBRjsxMTA5IDExNzMgMTFCMjtDMkFGOzExMDkgMTE3MyAxMUIyOworQzJCMDtDMkIwOzExMDkgMTE3MyAxMUIzO0MyQjA7MTEwOSAxMTczIDExQjM7CitDMkIxO0MyQjE7MTEwOSAxMTczIDExQjQ7QzJCMTsxMTA5IDExNzMgMTFCNDsKK0MyQjI7QzJCMjsxMTA5IDExNzMgMTFCNTtDMkIyOzExMDkgMTE3MyAxMUI1OworQzJCMztDMkIzOzExMDkgMTE3MyAxMUI2O0MyQjM7MTEwOSAxMTczIDExQjY7CitDMkI0O0MyQjQ7MTEwOSAxMTczIDExQjc7QzJCNDsxMTA5IDExNzMgMTFCNzsKK0MyQjU7QzJCNTsxMTA5IDExNzMgMTFCODtDMkI1OzExMDkgMTE3MyAxMUI4OworQzJCNjtDMkI2OzExMDkgMTE3MyAxMUI5O0MyQjY7MTEwOSAxMTczIDExQjk7CitDMkI3O0MyQjc7MTEwOSAxMTczIDExQkE7QzJCNzsxMTA5IDExNzMgMTFCQTsKK0MyQjg7QzJCODsxMTA5IDExNzMgMTFCQjtDMkI4OzExMDkgMTE3MyAxMUJCOworQzJCOTtDMkI5OzExMDkgMTE3MyAxMUJDO0MyQjk7MTEwOSAxMTczIDExQkM7CitDMkJBO0MyQkE7MTEwOSAxMTczIDExQkQ7QzJCQTsxMTA5IDExNzMgMTFCRDsKK0MyQkI7QzJCQjsxMTA5IDExNzMgMTFCRTtDMkJCOzExMDkgMTE3MyAxMUJFOworQzJCQztDMkJDOzExMDkgMTE3MyAxMUJGO0MyQkM7MTEwOSAxMTczIDExQkY7CitDMkJEO0MyQkQ7MTEwOSAxMTczIDExQzA7QzJCRDsxMTA5IDExNzMgMTFDMDsKK0MyQkU7QzJCRTsxMTA5IDExNzMgMTFDMTtDMkJFOzExMDkgMTE3MyAxMUMxOworQzJCRjtDMkJGOzExMDkgMTE3MyAxMUMyO0MyQkY7MTEwOSAxMTczIDExQzI7CitDMkMwO0MyQzA7MTEwOSAxMTc0O0MyQzA7MTEwOSAxMTc0OworQzJDMTtDMkMxOzExMDkgMTE3NCAxMUE4O0MyQzE7MTEwOSAxMTc0IDExQTg7CitDMkMyO0MyQzI7MTEwOSAxMTc0IDExQTk7QzJDMjsxMTA5IDExNzQgMTFBOTsKK0MyQzM7QzJDMzsxMTA5IDExNzQgMTFBQTtDMkMzOzExMDkgMTE3NCAxMUFBOworQzJDNDtDMkM0OzExMDkgMTE3NCAxMUFCO0MyQzQ7MTEwOSAxMTc0IDExQUI7CitDMkM1O0MyQzU7MTEwOSAxMTc0IDExQUM7QzJDNTsxMTA5IDExNzQgMTFBQzsKK0MyQzY7QzJDNjsxMTA5IDExNzQgMTFBRDtDMkM2OzExMDkgMTE3NCAxMUFEOworQzJDNztDMkM3OzExMDkgMTE3NCAxMUFFO0MyQzc7MTEwOSAxMTc0IDExQUU7CitDMkM4O0MyQzg7MTEwOSAxMTc0IDExQUY7QzJDODsxMTA5IDExNzQgMTFBRjsKK0MyQzk7QzJDOTsxMTA5IDExNzQgMTFCMDtDMkM5OzExMDkgMTE3NCAxMUIwOworQzJDQTtDMkNBOzExMDkgMTE3NCAxMUIxO0MyQ0E7MTEwOSAxMTc0IDExQjE7CitDMkNCO0MyQ0I7MTEwOSAxMTc0IDExQjI7QzJDQjsxMTA5IDExNzQgMTFCMjsKK0MyQ0M7QzJDQzsxMTA5IDExNzQgMTFCMztDMkNDOzExMDkgMTE3NCAxMUIzOworQzJDRDtDMkNEOzExMDkgMTE3NCAxMUI0O0MyQ0Q7MTEwOSAxMTc0IDExQjQ7CitDMkNFO0MyQ0U7MTEwOSAxMTc0IDExQjU7QzJDRTsxMTA5IDExNzQgMTFCNTsKK0MyQ0Y7QzJDRjsxMTA5IDExNzQgMTFCNjtDMkNGOzExMDkgMTE3NCAxMUI2OworQzJEMDtDMkQwOzExMDkgMTE3NCAxMUI3O0MyRDA7MTEwOSAxMTc0IDExQjc7CitDMkQxO0MyRDE7MTEwOSAxMTc0IDExQjg7QzJEMTsxMTA5IDExNzQgMTFCODsKK0MyRDI7QzJEMjsxMTA5IDExNzQgMTFCOTtDMkQyOzExMDkgMTE3NCAxMUI5OworQzJEMztDMkQzOzExMDkgMTE3NCAxMUJBO0MyRDM7MTEwOSAxMTc0IDExQkE7CitDMkQ0O0MyRDQ7MTEwOSAxMTc0IDExQkI7QzJENDsxMTA5IDExNzQgMTFCQjsKK0MyRDU7QzJENTsxMTA5IDExNzQgMTFCQztDMkQ1OzExMDkgMTE3NCAxMUJDOworQzJENjtDMkQ2OzExMDkgMTE3NCAxMUJEO0MyRDY7MTEwOSAxMTc0IDExQkQ7CitDMkQ3O0MyRDc7MTEwOSAxMTc0IDExQkU7QzJENzsxMTA5IDExNzQgMTFCRTsKK0MyRDg7QzJEODsxMTA5IDExNzQgMTFCRjtDMkQ4OzExMDkgMTE3NCAxMUJGOworQzJEOTtDMkQ5OzExMDkgMTE3NCAxMUMwO0MyRDk7MTEwOSAxMTc0IDExQzA7CitDMkRBO0MyREE7MTEwOSAxMTc0IDExQzE7QzJEQTsxMTA5IDExNzQgMTFDMTsKK0MyREI7QzJEQjsxMTA5IDExNzQgMTFDMjtDMkRCOzExMDkgMTE3NCAxMUMyOworQzJEQztDMkRDOzExMDkgMTE3NTtDMkRDOzExMDkgMTE3NTsKK0MyREQ7QzJERDsxMTA5IDExNzUgMTFBODtDMkREOzExMDkgMTE3NSAxMUE4OworQzJERTtDMkRFOzExMDkgMTE3NSAxMUE5O0MyREU7MTEwOSAxMTc1IDExQTk7CitDMkRGO0MyREY7MTEwOSAxMTc1IDExQUE7QzJERjsxMTA5IDExNzUgMTFBQTsKK0MyRTA7QzJFMDsxMTA5IDExNzUgMTFBQjtDMkUwOzExMDkgMTE3NSAxMUFCOworQzJFMTtDMkUxOzExMDkgMTE3NSAxMUFDO0MyRTE7MTEwOSAxMTc1IDExQUM7CitDMkUyO0MyRTI7MTEwOSAxMTc1IDExQUQ7QzJFMjsxMTA5IDExNzUgMTFBRDsKK0MyRTM7QzJFMzsxMTA5IDExNzUgMTFBRTtDMkUzOzExMDkgMTE3NSAxMUFFOworQzJFNDtDMkU0OzExMDkgMTE3NSAxMUFGO0MyRTQ7MTEwOSAxMTc1IDExQUY7CitDMkU1O0MyRTU7MTEwOSAxMTc1IDExQjA7QzJFNTsxMTA5IDExNzUgMTFCMDsKK0MyRTY7QzJFNjsxMTA5IDExNzUgMTFCMTtDMkU2OzExMDkgMTE3NSAxMUIxOworQzJFNztDMkU3OzExMDkgMTE3NSAxMUIyO0MyRTc7MTEwOSAxMTc1IDExQjI7CitDMkU4O0MyRTg7MTEwOSAxMTc1IDExQjM7QzJFODsxMTA5IDExNzUgMTFCMzsKK0MyRTk7QzJFOTsxMTA5IDExNzUgMTFCNDtDMkU5OzExMDkgMTE3NSAxMUI0OworQzJFQTtDMkVBOzExMDkgMTE3NSAxMUI1O0MyRUE7MTEwOSAxMTc1IDExQjU7CitDMkVCO0MyRUI7MTEwOSAxMTc1IDExQjY7QzJFQjsxMTA5IDExNzUgMTFCNjsKK0MyRUM7QzJFQzsxMTA5IDExNzUgMTFCNztDMkVDOzExMDkgMTE3NSAxMUI3OworQzJFRDtDMkVEOzExMDkgMTE3NSAxMUI4O0MyRUQ7MTEwOSAxMTc1IDExQjg7CitDMkVFO0MyRUU7MTEwOSAxMTc1IDExQjk7QzJFRTsxMTA5IDExNzUgMTFCOTsKK0MyRUY7QzJFRjsxMTA5IDExNzUgMTFCQTtDMkVGOzExMDkgMTE3NSAxMUJBOworQzJGMDtDMkYwOzExMDkgMTE3NSAxMUJCO0MyRjA7MTEwOSAxMTc1IDExQkI7CitDMkYxO0MyRjE7MTEwOSAxMTc1IDExQkM7QzJGMTsxMTA5IDExNzUgMTFCQzsKK0MyRjI7QzJGMjsxMTA5IDExNzUgMTFCRDtDMkYyOzExMDkgMTE3NSAxMUJEOworQzJGMztDMkYzOzExMDkgMTE3NSAxMUJFO0MyRjM7MTEwOSAxMTc1IDExQkU7CitDMkY0O0MyRjQ7MTEwOSAxMTc1IDExQkY7QzJGNDsxMTA5IDExNzUgMTFCRjsKK0MyRjU7QzJGNTsxMTA5IDExNzUgMTFDMDtDMkY1OzExMDkgMTE3NSAxMUMwOworQzJGNjtDMkY2OzExMDkgMTE3NSAxMUMxO0MyRjY7MTEwOSAxMTc1IDExQzE7CitDMkY3O0MyRjc7MTEwOSAxMTc1IDExQzI7QzJGNzsxMTA5IDExNzUgMTFDMjsKK0MyRjg7QzJGODsxMTBBIDExNjE7QzJGODsxMTBBIDExNjE7CitDMkY5O0MyRjk7MTEwQSAxMTYxIDExQTg7QzJGOTsxMTBBIDExNjEgMTFBODsKK0MyRkE7QzJGQTsxMTBBIDExNjEgMTFBOTtDMkZBOzExMEEgMTE2MSAxMUE5OworQzJGQjtDMkZCOzExMEEgMTE2MSAxMUFBO0MyRkI7MTEwQSAxMTYxIDExQUE7CitDMkZDO0MyRkM7MTEwQSAxMTYxIDExQUI7QzJGQzsxMTBBIDExNjEgMTFBQjsKK0MyRkQ7QzJGRDsxMTBBIDExNjEgMTFBQztDMkZEOzExMEEgMTE2MSAxMUFDOworQzJGRTtDMkZFOzExMEEgMTE2MSAxMUFEO0MyRkU7MTEwQSAxMTYxIDExQUQ7CitDMkZGO0MyRkY7MTEwQSAxMTYxIDExQUU7QzJGRjsxMTBBIDExNjEgMTFBRTsKK0MzMDA7QzMwMDsxMTBBIDExNjEgMTFBRjtDMzAwOzExMEEgMTE2MSAxMUFGOworQzMwMTtDMzAxOzExMEEgMTE2MSAxMUIwO0MzMDE7MTEwQSAxMTYxIDExQjA7CitDMzAyO0MzMDI7MTEwQSAxMTYxIDExQjE7QzMwMjsxMTBBIDExNjEgMTFCMTsKK0MzMDM7QzMwMzsxMTBBIDExNjEgMTFCMjtDMzAzOzExMEEgMTE2MSAxMUIyOworQzMwNDtDMzA0OzExMEEgMTE2MSAxMUIzO0MzMDQ7MTEwQSAxMTYxIDExQjM7CitDMzA1O0MzMDU7MTEwQSAxMTYxIDExQjQ7QzMwNTsxMTBBIDExNjEgMTFCNDsKK0MzMDY7QzMwNjsxMTBBIDExNjEgMTFCNTtDMzA2OzExMEEgMTE2MSAxMUI1OworQzMwNztDMzA3OzExMEEgMTE2MSAxMUI2O0MzMDc7MTEwQSAxMTYxIDExQjY7CitDMzA4O0MzMDg7MTEwQSAxMTYxIDExQjc7QzMwODsxMTBBIDExNjEgMTFCNzsKK0MzMDk7QzMwOTsxMTBBIDExNjEgMTFCODtDMzA5OzExMEEgMTE2MSAxMUI4OworQzMwQTtDMzBBOzExMEEgMTE2MSAxMUI5O0MzMEE7MTEwQSAxMTYxIDExQjk7CitDMzBCO0MzMEI7MTEwQSAxMTYxIDExQkE7QzMwQjsxMTBBIDExNjEgMTFCQTsKK0MzMEM7QzMwQzsxMTBBIDExNjEgMTFCQjtDMzBDOzExMEEgMTE2MSAxMUJCOworQzMwRDtDMzBEOzExMEEgMTE2MSAxMUJDO0MzMEQ7MTEwQSAxMTYxIDExQkM7CitDMzBFO0MzMEU7MTEwQSAxMTYxIDExQkQ7QzMwRTsxMTBBIDExNjEgMTFCRDsKK0MzMEY7QzMwRjsxMTBBIDExNjEgMTFCRTtDMzBGOzExMEEgMTE2MSAxMUJFOworQzMxMDtDMzEwOzExMEEgMTE2MSAxMUJGO0MzMTA7MTEwQSAxMTYxIDExQkY7CitDMzExO0MzMTE7MTEwQSAxMTYxIDExQzA7QzMxMTsxMTBBIDExNjEgMTFDMDsKK0MzMTI7QzMxMjsxMTBBIDExNjEgMTFDMTtDMzEyOzExMEEgMTE2MSAxMUMxOworQzMxMztDMzEzOzExMEEgMTE2MSAxMUMyO0MzMTM7MTEwQSAxMTYxIDExQzI7CitDMzE0O0MzMTQ7MTEwQSAxMTYyO0MzMTQ7MTEwQSAxMTYyOworQzMxNTtDMzE1OzExMEEgMTE2MiAxMUE4O0MzMTU7MTEwQSAxMTYyIDExQTg7CitDMzE2O0MzMTY7MTEwQSAxMTYyIDExQTk7QzMxNjsxMTBBIDExNjIgMTFBOTsKK0MzMTc7QzMxNzsxMTBBIDExNjIgMTFBQTtDMzE3OzExMEEgMTE2MiAxMUFBOworQzMxODtDMzE4OzExMEEgMTE2MiAxMUFCO0MzMTg7MTEwQSAxMTYyIDExQUI7CitDMzE5O0MzMTk7MTEwQSAxMTYyIDExQUM7QzMxOTsxMTBBIDExNjIgMTFBQzsKK0MzMUE7QzMxQTsxMTBBIDExNjIgMTFBRDtDMzFBOzExMEEgMTE2MiAxMUFEOworQzMxQjtDMzFCOzExMEEgMTE2MiAxMUFFO0MzMUI7MTEwQSAxMTYyIDExQUU7CitDMzFDO0MzMUM7MTEwQSAxMTYyIDExQUY7QzMxQzsxMTBBIDExNjIgMTFBRjsKK0MzMUQ7QzMxRDsxMTBBIDExNjIgMTFCMDtDMzFEOzExMEEgMTE2MiAxMUIwOworQzMxRTtDMzFFOzExMEEgMTE2MiAxMUIxO0MzMUU7MTEwQSAxMTYyIDExQjE7CitDMzFGO0MzMUY7MTEwQSAxMTYyIDExQjI7QzMxRjsxMTBBIDExNjIgMTFCMjsKK0MzMjA7QzMyMDsxMTBBIDExNjIgMTFCMztDMzIwOzExMEEgMTE2MiAxMUIzOworQzMyMTtDMzIxOzExMEEgMTE2MiAxMUI0O0MzMjE7MTEwQSAxMTYyIDExQjQ7CitDMzIyO0MzMjI7MTEwQSAxMTYyIDExQjU7QzMyMjsxMTBBIDExNjIgMTFCNTsKK0MzMjM7QzMyMzsxMTBBIDExNjIgMTFCNjtDMzIzOzExMEEgMTE2MiAxMUI2OworQzMyNDtDMzI0OzExMEEgMTE2MiAxMUI3O0MzMjQ7MTEwQSAxMTYyIDExQjc7CitDMzI1O0MzMjU7MTEwQSAxMTYyIDExQjg7QzMyNTsxMTBBIDExNjIgMTFCODsKK0MzMjY7QzMyNjsxMTBBIDExNjIgMTFCOTtDMzI2OzExMEEgMTE2MiAxMUI5OworQzMyNztDMzI3OzExMEEgMTE2MiAxMUJBO0MzMjc7MTEwQSAxMTYyIDExQkE7CitDMzI4O0MzMjg7MTEwQSAxMTYyIDExQkI7QzMyODsxMTBBIDExNjIgMTFCQjsKK0MzMjk7QzMyOTsxMTBBIDExNjIgMTFCQztDMzI5OzExMEEgMTE2MiAxMUJDOworQzMyQTtDMzJBOzExMEEgMTE2MiAxMUJEO0MzMkE7MTEwQSAxMTYyIDExQkQ7CitDMzJCO0MzMkI7MTEwQSAxMTYyIDExQkU7QzMyQjsxMTBBIDExNjIgMTFCRTsKK0MzMkM7QzMyQzsxMTBBIDExNjIgMTFCRjtDMzJDOzExMEEgMTE2MiAxMUJGOworQzMyRDtDMzJEOzExMEEgMTE2MiAxMUMwO0MzMkQ7MTEwQSAxMTYyIDExQzA7CitDMzJFO0MzMkU7MTEwQSAxMTYyIDExQzE7QzMyRTsxMTBBIDExNjIgMTFDMTsKK0MzMkY7QzMyRjsxMTBBIDExNjIgMTFDMjtDMzJGOzExMEEgMTE2MiAxMUMyOworQzMzMDtDMzMwOzExMEEgMTE2MztDMzMwOzExMEEgMTE2MzsKK0MzMzE7QzMzMTsxMTBBIDExNjMgMTFBODtDMzMxOzExMEEgMTE2MyAxMUE4OworQzMzMjtDMzMyOzExMEEgMTE2MyAxMUE5O0MzMzI7MTEwQSAxMTYzIDExQTk7CitDMzMzO0MzMzM7MTEwQSAxMTYzIDExQUE7QzMzMzsxMTBBIDExNjMgMTFBQTsKK0MzMzQ7QzMzNDsxMTBBIDExNjMgMTFBQjtDMzM0OzExMEEgMTE2MyAxMUFCOworQzMzNTtDMzM1OzExMEEgMTE2MyAxMUFDO0MzMzU7MTEwQSAxMTYzIDExQUM7CitDMzM2O0MzMzY7MTEwQSAxMTYzIDExQUQ7QzMzNjsxMTBBIDExNjMgMTFBRDsKK0MzMzc7QzMzNzsxMTBBIDExNjMgMTFBRTtDMzM3OzExMEEgMTE2MyAxMUFFOworQzMzODtDMzM4OzExMEEgMTE2MyAxMUFGO0MzMzg7MTEwQSAxMTYzIDExQUY7CitDMzM5O0MzMzk7MTEwQSAxMTYzIDExQjA7QzMzOTsxMTBBIDExNjMgMTFCMDsKK0MzM0E7QzMzQTsxMTBBIDExNjMgMTFCMTtDMzNBOzExMEEgMTE2MyAxMUIxOworQzMzQjtDMzNCOzExMEEgMTE2MyAxMUIyO0MzM0I7MTEwQSAxMTYzIDExQjI7CitDMzNDO0MzM0M7MTEwQSAxMTYzIDExQjM7QzMzQzsxMTBBIDExNjMgMTFCMzsKK0MzM0Q7QzMzRDsxMTBBIDExNjMgMTFCNDtDMzNEOzExMEEgMTE2MyAxMUI0OworQzMzRTtDMzNFOzExMEEgMTE2MyAxMUI1O0MzM0U7MTEwQSAxMTYzIDExQjU7CitDMzNGO0MzM0Y7MTEwQSAxMTYzIDExQjY7QzMzRjsxMTBBIDExNjMgMTFCNjsKK0MzNDA7QzM0MDsxMTBBIDExNjMgMTFCNztDMzQwOzExMEEgMTE2MyAxMUI3OworQzM0MTtDMzQxOzExMEEgMTE2MyAxMUI4O0MzNDE7MTEwQSAxMTYzIDExQjg7CitDMzQyO0MzNDI7MTEwQSAxMTYzIDExQjk7QzM0MjsxMTBBIDExNjMgMTFCOTsKK0MzNDM7QzM0MzsxMTBBIDExNjMgMTFCQTtDMzQzOzExMEEgMTE2MyAxMUJBOworQzM0NDtDMzQ0OzExMEEgMTE2MyAxMUJCO0MzNDQ7MTEwQSAxMTYzIDExQkI7CitDMzQ1O0MzNDU7MTEwQSAxMTYzIDExQkM7QzM0NTsxMTBBIDExNjMgMTFCQzsKK0MzNDY7QzM0NjsxMTBBIDExNjMgMTFCRDtDMzQ2OzExMEEgMTE2MyAxMUJEOworQzM0NztDMzQ3OzExMEEgMTE2MyAxMUJFO0MzNDc7MTEwQSAxMTYzIDExQkU7CitDMzQ4O0MzNDg7MTEwQSAxMTYzIDExQkY7QzM0ODsxMTBBIDExNjMgMTFCRjsKK0MzNDk7QzM0OTsxMTBBIDExNjMgMTFDMDtDMzQ5OzExMEEgMTE2MyAxMUMwOworQzM0QTtDMzRBOzExMEEgMTE2MyAxMUMxO0MzNEE7MTEwQSAxMTYzIDExQzE7CitDMzRCO0MzNEI7MTEwQSAxMTYzIDExQzI7QzM0QjsxMTBBIDExNjMgMTFDMjsKK0MzNEM7QzM0QzsxMTBBIDExNjQ7QzM0QzsxMTBBIDExNjQ7CitDMzREO0MzNEQ7MTEwQSAxMTY0IDExQTg7QzM0RDsxMTBBIDExNjQgMTFBODsKK0MzNEU7QzM0RTsxMTBBIDExNjQgMTFBOTtDMzRFOzExMEEgMTE2NCAxMUE5OworQzM0RjtDMzRGOzExMEEgMTE2NCAxMUFBO0MzNEY7MTEwQSAxMTY0IDExQUE7CitDMzUwO0MzNTA7MTEwQSAxMTY0IDExQUI7QzM1MDsxMTBBIDExNjQgMTFBQjsKK0MzNTE7QzM1MTsxMTBBIDExNjQgMTFBQztDMzUxOzExMEEgMTE2NCAxMUFDOworQzM1MjtDMzUyOzExMEEgMTE2NCAxMUFEO0MzNTI7MTEwQSAxMTY0IDExQUQ7CitDMzUzO0MzNTM7MTEwQSAxMTY0IDExQUU7QzM1MzsxMTBBIDExNjQgMTFBRTsKK0MzNTQ7QzM1NDsxMTBBIDExNjQgMTFBRjtDMzU0OzExMEEgMTE2NCAxMUFGOworQzM1NTtDMzU1OzExMEEgMTE2NCAxMUIwO0MzNTU7MTEwQSAxMTY0IDExQjA7CitDMzU2O0MzNTY7MTEwQSAxMTY0IDExQjE7QzM1NjsxMTBBIDExNjQgMTFCMTsKK0MzNTc7QzM1NzsxMTBBIDExNjQgMTFCMjtDMzU3OzExMEEgMTE2NCAxMUIyOworQzM1ODtDMzU4OzExMEEgMTE2NCAxMUIzO0MzNTg7MTEwQSAxMTY0IDExQjM7CitDMzU5O0MzNTk7MTEwQSAxMTY0IDExQjQ7QzM1OTsxMTBBIDExNjQgMTFCNDsKK0MzNUE7QzM1QTsxMTBBIDExNjQgMTFCNTtDMzVBOzExMEEgMTE2NCAxMUI1OworQzM1QjtDMzVCOzExMEEgMTE2NCAxMUI2O0MzNUI7MTEwQSAxMTY0IDExQjY7CitDMzVDO0MzNUM7MTEwQSAxMTY0IDExQjc7QzM1QzsxMTBBIDExNjQgMTFCNzsKK0MzNUQ7QzM1RDsxMTBBIDExNjQgMTFCODtDMzVEOzExMEEgMTE2NCAxMUI4OworQzM1RTtDMzVFOzExMEEgMTE2NCAxMUI5O0MzNUU7MTEwQSAxMTY0IDExQjk7CitDMzVGO0MzNUY7MTEwQSAxMTY0IDExQkE7QzM1RjsxMTBBIDExNjQgMTFCQTsKK0MzNjA7QzM2MDsxMTBBIDExNjQgMTFCQjtDMzYwOzExMEEgMTE2NCAxMUJCOworQzM2MTtDMzYxOzExMEEgMTE2NCAxMUJDO0MzNjE7MTEwQSAxMTY0IDExQkM7CitDMzYyO0MzNjI7MTEwQSAxMTY0IDExQkQ7QzM2MjsxMTBBIDExNjQgMTFCRDsKK0MzNjM7QzM2MzsxMTBBIDExNjQgMTFCRTtDMzYzOzExMEEgMTE2NCAxMUJFOworQzM2NDtDMzY0OzExMEEgMTE2NCAxMUJGO0MzNjQ7MTEwQSAxMTY0IDExQkY7CitDMzY1O0MzNjU7MTEwQSAxMTY0IDExQzA7QzM2NTsxMTBBIDExNjQgMTFDMDsKK0MzNjY7QzM2NjsxMTBBIDExNjQgMTFDMTtDMzY2OzExMEEgMTE2NCAxMUMxOworQzM2NztDMzY3OzExMEEgMTE2NCAxMUMyO0MzNjc7MTEwQSAxMTY0IDExQzI7CitDMzY4O0MzNjg7MTEwQSAxMTY1O0MzNjg7MTEwQSAxMTY1OworQzM2OTtDMzY5OzExMEEgMTE2NSAxMUE4O0MzNjk7MTEwQSAxMTY1IDExQTg7CitDMzZBO0MzNkE7MTEwQSAxMTY1IDExQTk7QzM2QTsxMTBBIDExNjUgMTFBOTsKK0MzNkI7QzM2QjsxMTBBIDExNjUgMTFBQTtDMzZCOzExMEEgMTE2NSAxMUFBOworQzM2QztDMzZDOzExMEEgMTE2NSAxMUFCO0MzNkM7MTEwQSAxMTY1IDExQUI7CitDMzZEO0MzNkQ7MTEwQSAxMTY1IDExQUM7QzM2RDsxMTBBIDExNjUgMTFBQzsKK0MzNkU7QzM2RTsxMTBBIDExNjUgMTFBRDtDMzZFOzExMEEgMTE2NSAxMUFEOworQzM2RjtDMzZGOzExMEEgMTE2NSAxMUFFO0MzNkY7MTEwQSAxMTY1IDExQUU7CitDMzcwO0MzNzA7MTEwQSAxMTY1IDExQUY7QzM3MDsxMTBBIDExNjUgMTFBRjsKK0MzNzE7QzM3MTsxMTBBIDExNjUgMTFCMDtDMzcxOzExMEEgMTE2NSAxMUIwOworQzM3MjtDMzcyOzExMEEgMTE2NSAxMUIxO0MzNzI7MTEwQSAxMTY1IDExQjE7CitDMzczO0MzNzM7MTEwQSAxMTY1IDExQjI7QzM3MzsxMTBBIDExNjUgMTFCMjsKK0MzNzQ7QzM3NDsxMTBBIDExNjUgMTFCMztDMzc0OzExMEEgMTE2NSAxMUIzOworQzM3NTtDMzc1OzExMEEgMTE2NSAxMUI0O0MzNzU7MTEwQSAxMTY1IDExQjQ7CitDMzc2O0MzNzY7MTEwQSAxMTY1IDExQjU7QzM3NjsxMTBBIDExNjUgMTFCNTsKK0MzNzc7QzM3NzsxMTBBIDExNjUgMTFCNjtDMzc3OzExMEEgMTE2NSAxMUI2OworQzM3ODtDMzc4OzExMEEgMTE2NSAxMUI3O0MzNzg7MTEwQSAxMTY1IDExQjc7CitDMzc5O0MzNzk7MTEwQSAxMTY1IDExQjg7QzM3OTsxMTBBIDExNjUgMTFCODsKK0MzN0E7QzM3QTsxMTBBIDExNjUgMTFCOTtDMzdBOzExMEEgMTE2NSAxMUI5OworQzM3QjtDMzdCOzExMEEgMTE2NSAxMUJBO0MzN0I7MTEwQSAxMTY1IDExQkE7CitDMzdDO0MzN0M7MTEwQSAxMTY1IDExQkI7QzM3QzsxMTBBIDExNjUgMTFCQjsKK0MzN0Q7QzM3RDsxMTBBIDExNjUgMTFCQztDMzdEOzExMEEgMTE2NSAxMUJDOworQzM3RTtDMzdFOzExMEEgMTE2NSAxMUJEO0MzN0U7MTEwQSAxMTY1IDExQkQ7CitDMzdGO0MzN0Y7MTEwQSAxMTY1IDExQkU7QzM3RjsxMTBBIDExNjUgMTFCRTsKK0MzODA7QzM4MDsxMTBBIDExNjUgMTFCRjtDMzgwOzExMEEgMTE2NSAxMUJGOworQzM4MTtDMzgxOzExMEEgMTE2NSAxMUMwO0MzODE7MTEwQSAxMTY1IDExQzA7CitDMzgyO0MzODI7MTEwQSAxMTY1IDExQzE7QzM4MjsxMTBBIDExNjUgMTFDMTsKK0MzODM7QzM4MzsxMTBBIDExNjUgMTFDMjtDMzgzOzExMEEgMTE2NSAxMUMyOworQzM4NDtDMzg0OzExMEEgMTE2NjtDMzg0OzExMEEgMTE2NjsKK0MzODU7QzM4NTsxMTBBIDExNjYgMTFBODtDMzg1OzExMEEgMTE2NiAxMUE4OworQzM4NjtDMzg2OzExMEEgMTE2NiAxMUE5O0MzODY7MTEwQSAxMTY2IDExQTk7CitDMzg3O0MzODc7MTEwQSAxMTY2IDExQUE7QzM4NzsxMTBBIDExNjYgMTFBQTsKK0MzODg7QzM4ODsxMTBBIDExNjYgMTFBQjtDMzg4OzExMEEgMTE2NiAxMUFCOworQzM4OTtDMzg5OzExMEEgMTE2NiAxMUFDO0MzODk7MTEwQSAxMTY2IDExQUM7CitDMzhBO0MzOEE7MTEwQSAxMTY2IDExQUQ7QzM4QTsxMTBBIDExNjYgMTFBRDsKK0MzOEI7QzM4QjsxMTBBIDExNjYgMTFBRTtDMzhCOzExMEEgMTE2NiAxMUFFOworQzM4QztDMzhDOzExMEEgMTE2NiAxMUFGO0MzOEM7MTEwQSAxMTY2IDExQUY7CitDMzhEO0MzOEQ7MTEwQSAxMTY2IDExQjA7QzM4RDsxMTBBIDExNjYgMTFCMDsKK0MzOEU7QzM4RTsxMTBBIDExNjYgMTFCMTtDMzhFOzExMEEgMTE2NiAxMUIxOworQzM4RjtDMzhGOzExMEEgMTE2NiAxMUIyO0MzOEY7MTEwQSAxMTY2IDExQjI7CitDMzkwO0MzOTA7MTEwQSAxMTY2IDExQjM7QzM5MDsxMTBBIDExNjYgMTFCMzsKK0MzOTE7QzM5MTsxMTBBIDExNjYgMTFCNDtDMzkxOzExMEEgMTE2NiAxMUI0OworQzM5MjtDMzkyOzExMEEgMTE2NiAxMUI1O0MzOTI7MTEwQSAxMTY2IDExQjU7CitDMzkzO0MzOTM7MTEwQSAxMTY2IDExQjY7QzM5MzsxMTBBIDExNjYgMTFCNjsKK0MzOTQ7QzM5NDsxMTBBIDExNjYgMTFCNztDMzk0OzExMEEgMTE2NiAxMUI3OworQzM5NTtDMzk1OzExMEEgMTE2NiAxMUI4O0MzOTU7MTEwQSAxMTY2IDExQjg7CitDMzk2O0MzOTY7MTEwQSAxMTY2IDExQjk7QzM5NjsxMTBBIDExNjYgMTFCOTsKK0MzOTc7QzM5NzsxMTBBIDExNjYgMTFCQTtDMzk3OzExMEEgMTE2NiAxMUJBOworQzM5ODtDMzk4OzExMEEgMTE2NiAxMUJCO0MzOTg7MTEwQSAxMTY2IDExQkI7CitDMzk5O0MzOTk7MTEwQSAxMTY2IDExQkM7QzM5OTsxMTBBIDExNjYgMTFCQzsKK0MzOUE7QzM5QTsxMTBBIDExNjYgMTFCRDtDMzlBOzExMEEgMTE2NiAxMUJEOworQzM5QjtDMzlCOzExMEEgMTE2NiAxMUJFO0MzOUI7MTEwQSAxMTY2IDExQkU7CitDMzlDO0MzOUM7MTEwQSAxMTY2IDExQkY7QzM5QzsxMTBBIDExNjYgMTFCRjsKK0MzOUQ7QzM5RDsxMTBBIDExNjYgMTFDMDtDMzlEOzExMEEgMTE2NiAxMUMwOworQzM5RTtDMzlFOzExMEEgMTE2NiAxMUMxO0MzOUU7MTEwQSAxMTY2IDExQzE7CitDMzlGO0MzOUY7MTEwQSAxMTY2IDExQzI7QzM5RjsxMTBBIDExNjYgMTFDMjsKK0MzQTA7QzNBMDsxMTBBIDExNjc7QzNBMDsxMTBBIDExNjc7CitDM0ExO0MzQTE7MTEwQSAxMTY3IDExQTg7QzNBMTsxMTBBIDExNjcgMTFBODsKK0MzQTI7QzNBMjsxMTBBIDExNjcgMTFBOTtDM0EyOzExMEEgMTE2NyAxMUE5OworQzNBMztDM0EzOzExMEEgMTE2NyAxMUFBO0MzQTM7MTEwQSAxMTY3IDExQUE7CitDM0E0O0MzQTQ7MTEwQSAxMTY3IDExQUI7QzNBNDsxMTBBIDExNjcgMTFBQjsKK0MzQTU7QzNBNTsxMTBBIDExNjcgMTFBQztDM0E1OzExMEEgMTE2NyAxMUFDOworQzNBNjtDM0E2OzExMEEgMTE2NyAxMUFEO0MzQTY7MTEwQSAxMTY3IDExQUQ7CitDM0E3O0MzQTc7MTEwQSAxMTY3IDExQUU7QzNBNzsxMTBBIDExNjcgMTFBRTsKK0MzQTg7QzNBODsxMTBBIDExNjcgMTFBRjtDM0E4OzExMEEgMTE2NyAxMUFGOworQzNBOTtDM0E5OzExMEEgMTE2NyAxMUIwO0MzQTk7MTEwQSAxMTY3IDExQjA7CitDM0FBO0MzQUE7MTEwQSAxMTY3IDExQjE7QzNBQTsxMTBBIDExNjcgMTFCMTsKK0MzQUI7QzNBQjsxMTBBIDExNjcgMTFCMjtDM0FCOzExMEEgMTE2NyAxMUIyOworQzNBQztDM0FDOzExMEEgMTE2NyAxMUIzO0MzQUM7MTEwQSAxMTY3IDExQjM7CitDM0FEO0MzQUQ7MTEwQSAxMTY3IDExQjQ7QzNBRDsxMTBBIDExNjcgMTFCNDsKK0MzQUU7QzNBRTsxMTBBIDExNjcgMTFCNTtDM0FFOzExMEEgMTE2NyAxMUI1OworQzNBRjtDM0FGOzExMEEgMTE2NyAxMUI2O0MzQUY7MTEwQSAxMTY3IDExQjY7CitDM0IwO0MzQjA7MTEwQSAxMTY3IDExQjc7QzNCMDsxMTBBIDExNjcgMTFCNzsKK0MzQjE7QzNCMTsxMTBBIDExNjcgMTFCODtDM0IxOzExMEEgMTE2NyAxMUI4OworQzNCMjtDM0IyOzExMEEgMTE2NyAxMUI5O0MzQjI7MTEwQSAxMTY3IDExQjk7CitDM0IzO0MzQjM7MTEwQSAxMTY3IDExQkE7QzNCMzsxMTBBIDExNjcgMTFCQTsKK0MzQjQ7QzNCNDsxMTBBIDExNjcgMTFCQjtDM0I0OzExMEEgMTE2NyAxMUJCOworQzNCNTtDM0I1OzExMEEgMTE2NyAxMUJDO0MzQjU7MTEwQSAxMTY3IDExQkM7CitDM0I2O0MzQjY7MTEwQSAxMTY3IDExQkQ7QzNCNjsxMTBBIDExNjcgMTFCRDsKK0MzQjc7QzNCNzsxMTBBIDExNjcgMTFCRTtDM0I3OzExMEEgMTE2NyAxMUJFOworQzNCODtDM0I4OzExMEEgMTE2NyAxMUJGO0MzQjg7MTEwQSAxMTY3IDExQkY7CitDM0I5O0MzQjk7MTEwQSAxMTY3IDExQzA7QzNCOTsxMTBBIDExNjcgMTFDMDsKK0MzQkE7QzNCQTsxMTBBIDExNjcgMTFDMTtDM0JBOzExMEEgMTE2NyAxMUMxOworQzNCQjtDM0JCOzExMEEgMTE2NyAxMUMyO0MzQkI7MTEwQSAxMTY3IDExQzI7CitDM0JDO0MzQkM7MTEwQSAxMTY4O0MzQkM7MTEwQSAxMTY4OworQzNCRDtDM0JEOzExMEEgMTE2OCAxMUE4O0MzQkQ7MTEwQSAxMTY4IDExQTg7CitDM0JFO0MzQkU7MTEwQSAxMTY4IDExQTk7QzNCRTsxMTBBIDExNjggMTFBOTsKK0MzQkY7QzNCRjsxMTBBIDExNjggMTFBQTtDM0JGOzExMEEgMTE2OCAxMUFBOworQzNDMDtDM0MwOzExMEEgMTE2OCAxMUFCO0MzQzA7MTEwQSAxMTY4IDExQUI7CitDM0MxO0MzQzE7MTEwQSAxMTY4IDExQUM7QzNDMTsxMTBBIDExNjggMTFBQzsKK0MzQzI7QzNDMjsxMTBBIDExNjggMTFBRDtDM0MyOzExMEEgMTE2OCAxMUFEOworQzNDMztDM0MzOzExMEEgMTE2OCAxMUFFO0MzQzM7MTEwQSAxMTY4IDExQUU7CitDM0M0O0MzQzQ7MTEwQSAxMTY4IDExQUY7QzNDNDsxMTBBIDExNjggMTFBRjsKK0MzQzU7QzNDNTsxMTBBIDExNjggMTFCMDtDM0M1OzExMEEgMTE2OCAxMUIwOworQzNDNjtDM0M2OzExMEEgMTE2OCAxMUIxO0MzQzY7MTEwQSAxMTY4IDExQjE7CitDM0M3O0MzQzc7MTEwQSAxMTY4IDExQjI7QzNDNzsxMTBBIDExNjggMTFCMjsKK0MzQzg7QzNDODsxMTBBIDExNjggMTFCMztDM0M4OzExMEEgMTE2OCAxMUIzOworQzNDOTtDM0M5OzExMEEgMTE2OCAxMUI0O0MzQzk7MTEwQSAxMTY4IDExQjQ7CitDM0NBO0MzQ0E7MTEwQSAxMTY4IDExQjU7QzNDQTsxMTBBIDExNjggMTFCNTsKK0MzQ0I7QzNDQjsxMTBBIDExNjggMTFCNjtDM0NCOzExMEEgMTE2OCAxMUI2OworQzNDQztDM0NDOzExMEEgMTE2OCAxMUI3O0MzQ0M7MTEwQSAxMTY4IDExQjc7CitDM0NEO0MzQ0Q7MTEwQSAxMTY4IDExQjg7QzNDRDsxMTBBIDExNjggMTFCODsKK0MzQ0U7QzNDRTsxMTBBIDExNjggMTFCOTtDM0NFOzExMEEgMTE2OCAxMUI5OworQzNDRjtDM0NGOzExMEEgMTE2OCAxMUJBO0MzQ0Y7MTEwQSAxMTY4IDExQkE7CitDM0QwO0MzRDA7MTEwQSAxMTY4IDExQkI7QzNEMDsxMTBBIDExNjggMTFCQjsKK0MzRDE7QzNEMTsxMTBBIDExNjggMTFCQztDM0QxOzExMEEgMTE2OCAxMUJDOworQzNEMjtDM0QyOzExMEEgMTE2OCAxMUJEO0MzRDI7MTEwQSAxMTY4IDExQkQ7CitDM0QzO0MzRDM7MTEwQSAxMTY4IDExQkU7QzNEMzsxMTBBIDExNjggMTFCRTsKK0MzRDQ7QzNENDsxMTBBIDExNjggMTFCRjtDM0Q0OzExMEEgMTE2OCAxMUJGOworQzNENTtDM0Q1OzExMEEgMTE2OCAxMUMwO0MzRDU7MTEwQSAxMTY4IDExQzA7CitDM0Q2O0MzRDY7MTEwQSAxMTY4IDExQzE7QzNENjsxMTBBIDExNjggMTFDMTsKK0MzRDc7QzNENzsxMTBBIDExNjggMTFDMjtDM0Q3OzExMEEgMTE2OCAxMUMyOworQzNEODtDM0Q4OzExMEEgMTE2OTtDM0Q4OzExMEEgMTE2OTsKK0MzRDk7QzNEOTsxMTBBIDExNjkgMTFBODtDM0Q5OzExMEEgMTE2OSAxMUE4OworQzNEQTtDM0RBOzExMEEgMTE2OSAxMUE5O0MzREE7MTEwQSAxMTY5IDExQTk7CitDM0RCO0MzREI7MTEwQSAxMTY5IDExQUE7QzNEQjsxMTBBIDExNjkgMTFBQTsKK0MzREM7QzNEQzsxMTBBIDExNjkgMTFBQjtDM0RDOzExMEEgMTE2OSAxMUFCOworQzNERDtDM0REOzExMEEgMTE2OSAxMUFDO0MzREQ7MTEwQSAxMTY5IDExQUM7CitDM0RFO0MzREU7MTEwQSAxMTY5IDExQUQ7QzNERTsxMTBBIDExNjkgMTFBRDsKK0MzREY7QzNERjsxMTBBIDExNjkgMTFBRTtDM0RGOzExMEEgMTE2OSAxMUFFOworQzNFMDtDM0UwOzExMEEgMTE2OSAxMUFGO0MzRTA7MTEwQSAxMTY5IDExQUY7CitDM0UxO0MzRTE7MTEwQSAxMTY5IDExQjA7QzNFMTsxMTBBIDExNjkgMTFCMDsKK0MzRTI7QzNFMjsxMTBBIDExNjkgMTFCMTtDM0UyOzExMEEgMTE2OSAxMUIxOworQzNFMztDM0UzOzExMEEgMTE2OSAxMUIyO0MzRTM7MTEwQSAxMTY5IDExQjI7CitDM0U0O0MzRTQ7MTEwQSAxMTY5IDExQjM7QzNFNDsxMTBBIDExNjkgMTFCMzsKK0MzRTU7QzNFNTsxMTBBIDExNjkgMTFCNDtDM0U1OzExMEEgMTE2OSAxMUI0OworQzNFNjtDM0U2OzExMEEgMTE2OSAxMUI1O0MzRTY7MTEwQSAxMTY5IDExQjU7CitDM0U3O0MzRTc7MTEwQSAxMTY5IDExQjY7QzNFNzsxMTBBIDExNjkgMTFCNjsKK0MzRTg7QzNFODsxMTBBIDExNjkgMTFCNztDM0U4OzExMEEgMTE2OSAxMUI3OworQzNFOTtDM0U5OzExMEEgMTE2OSAxMUI4O0MzRTk7MTEwQSAxMTY5IDExQjg7CitDM0VBO0MzRUE7MTEwQSAxMTY5IDExQjk7QzNFQTsxMTBBIDExNjkgMTFCOTsKK0MzRUI7QzNFQjsxMTBBIDExNjkgMTFCQTtDM0VCOzExMEEgMTE2OSAxMUJBOworQzNFQztDM0VDOzExMEEgMTE2OSAxMUJCO0MzRUM7MTEwQSAxMTY5IDExQkI7CitDM0VEO0MzRUQ7MTEwQSAxMTY5IDExQkM7QzNFRDsxMTBBIDExNjkgMTFCQzsKK0MzRUU7QzNFRTsxMTBBIDExNjkgMTFCRDtDM0VFOzExMEEgMTE2OSAxMUJEOworQzNFRjtDM0VGOzExMEEgMTE2OSAxMUJFO0MzRUY7MTEwQSAxMTY5IDExQkU7CitDM0YwO0MzRjA7MTEwQSAxMTY5IDExQkY7QzNGMDsxMTBBIDExNjkgMTFCRjsKK0MzRjE7QzNGMTsxMTBBIDExNjkgMTFDMDtDM0YxOzExMEEgMTE2OSAxMUMwOworQzNGMjtDM0YyOzExMEEgMTE2OSAxMUMxO0MzRjI7MTEwQSAxMTY5IDExQzE7CitDM0YzO0MzRjM7MTEwQSAxMTY5IDExQzI7QzNGMzsxMTBBIDExNjkgMTFDMjsKK0MzRjQ7QzNGNDsxMTBBIDExNkE7QzNGNDsxMTBBIDExNkE7CitDM0Y1O0MzRjU7MTEwQSAxMTZBIDExQTg7QzNGNTsxMTBBIDExNkEgMTFBODsKK0MzRjY7QzNGNjsxMTBBIDExNkEgMTFBOTtDM0Y2OzExMEEgMTE2QSAxMUE5OworQzNGNztDM0Y3OzExMEEgMTE2QSAxMUFBO0MzRjc7MTEwQSAxMTZBIDExQUE7CitDM0Y4O0MzRjg7MTEwQSAxMTZBIDExQUI7QzNGODsxMTBBIDExNkEgMTFBQjsKK0MzRjk7QzNGOTsxMTBBIDExNkEgMTFBQztDM0Y5OzExMEEgMTE2QSAxMUFDOworQzNGQTtDM0ZBOzExMEEgMTE2QSAxMUFEO0MzRkE7MTEwQSAxMTZBIDExQUQ7CitDM0ZCO0MzRkI7MTEwQSAxMTZBIDExQUU7QzNGQjsxMTBBIDExNkEgMTFBRTsKK0MzRkM7QzNGQzsxMTBBIDExNkEgMTFBRjtDM0ZDOzExMEEgMTE2QSAxMUFGOworQzNGRDtDM0ZEOzExMEEgMTE2QSAxMUIwO0MzRkQ7MTEwQSAxMTZBIDExQjA7CitDM0ZFO0MzRkU7MTEwQSAxMTZBIDExQjE7QzNGRTsxMTBBIDExNkEgMTFCMTsKK0MzRkY7QzNGRjsxMTBBIDExNkEgMTFCMjtDM0ZGOzExMEEgMTE2QSAxMUIyOworQzQwMDtDNDAwOzExMEEgMTE2QSAxMUIzO0M0MDA7MTEwQSAxMTZBIDExQjM7CitDNDAxO0M0MDE7MTEwQSAxMTZBIDExQjQ7QzQwMTsxMTBBIDExNkEgMTFCNDsKK0M0MDI7QzQwMjsxMTBBIDExNkEgMTFCNTtDNDAyOzExMEEgMTE2QSAxMUI1OworQzQwMztDNDAzOzExMEEgMTE2QSAxMUI2O0M0MDM7MTEwQSAxMTZBIDExQjY7CitDNDA0O0M0MDQ7MTEwQSAxMTZBIDExQjc7QzQwNDsxMTBBIDExNkEgMTFCNzsKK0M0MDU7QzQwNTsxMTBBIDExNkEgMTFCODtDNDA1OzExMEEgMTE2QSAxMUI4OworQzQwNjtDNDA2OzExMEEgMTE2QSAxMUI5O0M0MDY7MTEwQSAxMTZBIDExQjk7CitDNDA3O0M0MDc7MTEwQSAxMTZBIDExQkE7QzQwNzsxMTBBIDExNkEgMTFCQTsKK0M0MDg7QzQwODsxMTBBIDExNkEgMTFCQjtDNDA4OzExMEEgMTE2QSAxMUJCOworQzQwOTtDNDA5OzExMEEgMTE2QSAxMUJDO0M0MDk7MTEwQSAxMTZBIDExQkM7CitDNDBBO0M0MEE7MTEwQSAxMTZBIDExQkQ7QzQwQTsxMTBBIDExNkEgMTFCRDsKK0M0MEI7QzQwQjsxMTBBIDExNkEgMTFCRTtDNDBCOzExMEEgMTE2QSAxMUJFOworQzQwQztDNDBDOzExMEEgMTE2QSAxMUJGO0M0MEM7MTEwQSAxMTZBIDExQkY7CitDNDBEO0M0MEQ7MTEwQSAxMTZBIDExQzA7QzQwRDsxMTBBIDExNkEgMTFDMDsKK0M0MEU7QzQwRTsxMTBBIDExNkEgMTFDMTtDNDBFOzExMEEgMTE2QSAxMUMxOworQzQwRjtDNDBGOzExMEEgMTE2QSAxMUMyO0M0MEY7MTEwQSAxMTZBIDExQzI7CitDNDEwO0M0MTA7MTEwQSAxMTZCO0M0MTA7MTEwQSAxMTZCOworQzQxMTtDNDExOzExMEEgMTE2QiAxMUE4O0M0MTE7MTEwQSAxMTZCIDExQTg7CitDNDEyO0M0MTI7MTEwQSAxMTZCIDExQTk7QzQxMjsxMTBBIDExNkIgMTFBOTsKK0M0MTM7QzQxMzsxMTBBIDExNkIgMTFBQTtDNDEzOzExMEEgMTE2QiAxMUFBOworQzQxNDtDNDE0OzExMEEgMTE2QiAxMUFCO0M0MTQ7MTEwQSAxMTZCIDExQUI7CitDNDE1O0M0MTU7MTEwQSAxMTZCIDExQUM7QzQxNTsxMTBBIDExNkIgMTFBQzsKK0M0MTY7QzQxNjsxMTBBIDExNkIgMTFBRDtDNDE2OzExMEEgMTE2QiAxMUFEOworQzQxNztDNDE3OzExMEEgMTE2QiAxMUFFO0M0MTc7MTEwQSAxMTZCIDExQUU7CitDNDE4O0M0MTg7MTEwQSAxMTZCIDExQUY7QzQxODsxMTBBIDExNkIgMTFBRjsKK0M0MTk7QzQxOTsxMTBBIDExNkIgMTFCMDtDNDE5OzExMEEgMTE2QiAxMUIwOworQzQxQTtDNDFBOzExMEEgMTE2QiAxMUIxO0M0MUE7MTEwQSAxMTZCIDExQjE7CitDNDFCO0M0MUI7MTEwQSAxMTZCIDExQjI7QzQxQjsxMTBBIDExNkIgMTFCMjsKK0M0MUM7QzQxQzsxMTBBIDExNkIgMTFCMztDNDFDOzExMEEgMTE2QiAxMUIzOworQzQxRDtDNDFEOzExMEEgMTE2QiAxMUI0O0M0MUQ7MTEwQSAxMTZCIDExQjQ7CitDNDFFO0M0MUU7MTEwQSAxMTZCIDExQjU7QzQxRTsxMTBBIDExNkIgMTFCNTsKK0M0MUY7QzQxRjsxMTBBIDExNkIgMTFCNjtDNDFGOzExMEEgMTE2QiAxMUI2OworQzQyMDtDNDIwOzExMEEgMTE2QiAxMUI3O0M0MjA7MTEwQSAxMTZCIDExQjc7CitDNDIxO0M0MjE7MTEwQSAxMTZCIDExQjg7QzQyMTsxMTBBIDExNkIgMTFCODsKK0M0MjI7QzQyMjsxMTBBIDExNkIgMTFCOTtDNDIyOzExMEEgMTE2QiAxMUI5OworQzQyMztDNDIzOzExMEEgMTE2QiAxMUJBO0M0MjM7MTEwQSAxMTZCIDExQkE7CitDNDI0O0M0MjQ7MTEwQSAxMTZCIDExQkI7QzQyNDsxMTBBIDExNkIgMTFCQjsKK0M0MjU7QzQyNTsxMTBBIDExNkIgMTFCQztDNDI1OzExMEEgMTE2QiAxMUJDOworQzQyNjtDNDI2OzExMEEgMTE2QiAxMUJEO0M0MjY7MTEwQSAxMTZCIDExQkQ7CitDNDI3O0M0Mjc7MTEwQSAxMTZCIDExQkU7QzQyNzsxMTBBIDExNkIgMTFCRTsKK0M0Mjg7QzQyODsxMTBBIDExNkIgMTFCRjtDNDI4OzExMEEgMTE2QiAxMUJGOworQzQyOTtDNDI5OzExMEEgMTE2QiAxMUMwO0M0Mjk7MTEwQSAxMTZCIDExQzA7CitDNDJBO0M0MkE7MTEwQSAxMTZCIDExQzE7QzQyQTsxMTBBIDExNkIgMTFDMTsKK0M0MkI7QzQyQjsxMTBBIDExNkIgMTFDMjtDNDJCOzExMEEgMTE2QiAxMUMyOworQzQyQztDNDJDOzExMEEgMTE2QztDNDJDOzExMEEgMTE2QzsKK0M0MkQ7QzQyRDsxMTBBIDExNkMgMTFBODtDNDJEOzExMEEgMTE2QyAxMUE4OworQzQyRTtDNDJFOzExMEEgMTE2QyAxMUE5O0M0MkU7MTEwQSAxMTZDIDExQTk7CitDNDJGO0M0MkY7MTEwQSAxMTZDIDExQUE7QzQyRjsxMTBBIDExNkMgMTFBQTsKK0M0MzA7QzQzMDsxMTBBIDExNkMgMTFBQjtDNDMwOzExMEEgMTE2QyAxMUFCOworQzQzMTtDNDMxOzExMEEgMTE2QyAxMUFDO0M0MzE7MTEwQSAxMTZDIDExQUM7CitDNDMyO0M0MzI7MTEwQSAxMTZDIDExQUQ7QzQzMjsxMTBBIDExNkMgMTFBRDsKK0M0MzM7QzQzMzsxMTBBIDExNkMgMTFBRTtDNDMzOzExMEEgMTE2QyAxMUFFOworQzQzNDtDNDM0OzExMEEgMTE2QyAxMUFGO0M0MzQ7MTEwQSAxMTZDIDExQUY7CitDNDM1O0M0MzU7MTEwQSAxMTZDIDExQjA7QzQzNTsxMTBBIDExNkMgMTFCMDsKK0M0MzY7QzQzNjsxMTBBIDExNkMgMTFCMTtDNDM2OzExMEEgMTE2QyAxMUIxOworQzQzNztDNDM3OzExMEEgMTE2QyAxMUIyO0M0Mzc7MTEwQSAxMTZDIDExQjI7CitDNDM4O0M0Mzg7MTEwQSAxMTZDIDExQjM7QzQzODsxMTBBIDExNkMgMTFCMzsKK0M0Mzk7QzQzOTsxMTBBIDExNkMgMTFCNDtDNDM5OzExMEEgMTE2QyAxMUI0OworQzQzQTtDNDNBOzExMEEgMTE2QyAxMUI1O0M0M0E7MTEwQSAxMTZDIDExQjU7CitDNDNCO0M0M0I7MTEwQSAxMTZDIDExQjY7QzQzQjsxMTBBIDExNkMgMTFCNjsKK0M0M0M7QzQzQzsxMTBBIDExNkMgMTFCNztDNDNDOzExMEEgMTE2QyAxMUI3OworQzQzRDtDNDNEOzExMEEgMTE2QyAxMUI4O0M0M0Q7MTEwQSAxMTZDIDExQjg7CitDNDNFO0M0M0U7MTEwQSAxMTZDIDExQjk7QzQzRTsxMTBBIDExNkMgMTFCOTsKK0M0M0Y7QzQzRjsxMTBBIDExNkMgMTFCQTtDNDNGOzExMEEgMTE2QyAxMUJBOworQzQ0MDtDNDQwOzExMEEgMTE2QyAxMUJCO0M0NDA7MTEwQSAxMTZDIDExQkI7CitDNDQxO0M0NDE7MTEwQSAxMTZDIDExQkM7QzQ0MTsxMTBBIDExNkMgMTFCQzsKK0M0NDI7QzQ0MjsxMTBBIDExNkMgMTFCRDtDNDQyOzExMEEgMTE2QyAxMUJEOworQzQ0MztDNDQzOzExMEEgMTE2QyAxMUJFO0M0NDM7MTEwQSAxMTZDIDExQkU7CitDNDQ0O0M0NDQ7MTEwQSAxMTZDIDExQkY7QzQ0NDsxMTBBIDExNkMgMTFCRjsKK0M0NDU7QzQ0NTsxMTBBIDExNkMgMTFDMDtDNDQ1OzExMEEgMTE2QyAxMUMwOworQzQ0NjtDNDQ2OzExMEEgMTE2QyAxMUMxO0M0NDY7MTEwQSAxMTZDIDExQzE7CitDNDQ3O0M0NDc7MTEwQSAxMTZDIDExQzI7QzQ0NzsxMTBBIDExNkMgMTFDMjsKK0M0NDg7QzQ0ODsxMTBBIDExNkQ7QzQ0ODsxMTBBIDExNkQ7CitDNDQ5O0M0NDk7MTEwQSAxMTZEIDExQTg7QzQ0OTsxMTBBIDExNkQgMTFBODsKK0M0NEE7QzQ0QTsxMTBBIDExNkQgMTFBOTtDNDRBOzExMEEgMTE2RCAxMUE5OworQzQ0QjtDNDRCOzExMEEgMTE2RCAxMUFBO0M0NEI7MTEwQSAxMTZEIDExQUE7CitDNDRDO0M0NEM7MTEwQSAxMTZEIDExQUI7QzQ0QzsxMTBBIDExNkQgMTFBQjsKK0M0NEQ7QzQ0RDsxMTBBIDExNkQgMTFBQztDNDREOzExMEEgMTE2RCAxMUFDOworQzQ0RTtDNDRFOzExMEEgMTE2RCAxMUFEO0M0NEU7MTEwQSAxMTZEIDExQUQ7CitDNDRGO0M0NEY7MTEwQSAxMTZEIDExQUU7QzQ0RjsxMTBBIDExNkQgMTFBRTsKK0M0NTA7QzQ1MDsxMTBBIDExNkQgMTFBRjtDNDUwOzExMEEgMTE2RCAxMUFGOworQzQ1MTtDNDUxOzExMEEgMTE2RCAxMUIwO0M0NTE7MTEwQSAxMTZEIDExQjA7CitDNDUyO0M0NTI7MTEwQSAxMTZEIDExQjE7QzQ1MjsxMTBBIDExNkQgMTFCMTsKK0M0NTM7QzQ1MzsxMTBBIDExNkQgMTFCMjtDNDUzOzExMEEgMTE2RCAxMUIyOworQzQ1NDtDNDU0OzExMEEgMTE2RCAxMUIzO0M0NTQ7MTEwQSAxMTZEIDExQjM7CitDNDU1O0M0NTU7MTEwQSAxMTZEIDExQjQ7QzQ1NTsxMTBBIDExNkQgMTFCNDsKK0M0NTY7QzQ1NjsxMTBBIDExNkQgMTFCNTtDNDU2OzExMEEgMTE2RCAxMUI1OworQzQ1NztDNDU3OzExMEEgMTE2RCAxMUI2O0M0NTc7MTEwQSAxMTZEIDExQjY7CitDNDU4O0M0NTg7MTEwQSAxMTZEIDExQjc7QzQ1ODsxMTBBIDExNkQgMTFCNzsKK0M0NTk7QzQ1OTsxMTBBIDExNkQgMTFCODtDNDU5OzExMEEgMTE2RCAxMUI4OworQzQ1QTtDNDVBOzExMEEgMTE2RCAxMUI5O0M0NUE7MTEwQSAxMTZEIDExQjk7CitDNDVCO0M0NUI7MTEwQSAxMTZEIDExQkE7QzQ1QjsxMTBBIDExNkQgMTFCQTsKK0M0NUM7QzQ1QzsxMTBBIDExNkQgMTFCQjtDNDVDOzExMEEgMTE2RCAxMUJCOworQzQ1RDtDNDVEOzExMEEgMTE2RCAxMUJDO0M0NUQ7MTEwQSAxMTZEIDExQkM7CitDNDVFO0M0NUU7MTEwQSAxMTZEIDExQkQ7QzQ1RTsxMTBBIDExNkQgMTFCRDsKK0M0NUY7QzQ1RjsxMTBBIDExNkQgMTFCRTtDNDVGOzExMEEgMTE2RCAxMUJFOworQzQ2MDtDNDYwOzExMEEgMTE2RCAxMUJGO0M0NjA7MTEwQSAxMTZEIDExQkY7CitDNDYxO0M0NjE7MTEwQSAxMTZEIDExQzA7QzQ2MTsxMTBBIDExNkQgMTFDMDsKK0M0NjI7QzQ2MjsxMTBBIDExNkQgMTFDMTtDNDYyOzExMEEgMTE2RCAxMUMxOworQzQ2MztDNDYzOzExMEEgMTE2RCAxMUMyO0M0NjM7MTEwQSAxMTZEIDExQzI7CitDNDY0O0M0NjQ7MTEwQSAxMTZFO0M0NjQ7MTEwQSAxMTZFOworQzQ2NTtDNDY1OzExMEEgMTE2RSAxMUE4O0M0NjU7MTEwQSAxMTZFIDExQTg7CitDNDY2O0M0NjY7MTEwQSAxMTZFIDExQTk7QzQ2NjsxMTBBIDExNkUgMTFBOTsKK0M0Njc7QzQ2NzsxMTBBIDExNkUgMTFBQTtDNDY3OzExMEEgMTE2RSAxMUFBOworQzQ2ODtDNDY4OzExMEEgMTE2RSAxMUFCO0M0Njg7MTEwQSAxMTZFIDExQUI7CitDNDY5O0M0Njk7MTEwQSAxMTZFIDExQUM7QzQ2OTsxMTBBIDExNkUgMTFBQzsKK0M0NkE7QzQ2QTsxMTBBIDExNkUgMTFBRDtDNDZBOzExMEEgMTE2RSAxMUFEOworQzQ2QjtDNDZCOzExMEEgMTE2RSAxMUFFO0M0NkI7MTEwQSAxMTZFIDExQUU7CitDNDZDO0M0NkM7MTEwQSAxMTZFIDExQUY7QzQ2QzsxMTBBIDExNkUgMTFBRjsKK0M0NkQ7QzQ2RDsxMTBBIDExNkUgMTFCMDtDNDZEOzExMEEgMTE2RSAxMUIwOworQzQ2RTtDNDZFOzExMEEgMTE2RSAxMUIxO0M0NkU7MTEwQSAxMTZFIDExQjE7CitDNDZGO0M0NkY7MTEwQSAxMTZFIDExQjI7QzQ2RjsxMTBBIDExNkUgMTFCMjsKK0M0NzA7QzQ3MDsxMTBBIDExNkUgMTFCMztDNDcwOzExMEEgMTE2RSAxMUIzOworQzQ3MTtDNDcxOzExMEEgMTE2RSAxMUI0O0M0NzE7MTEwQSAxMTZFIDExQjQ7CitDNDcyO0M0NzI7MTEwQSAxMTZFIDExQjU7QzQ3MjsxMTBBIDExNkUgMTFCNTsKK0M0NzM7QzQ3MzsxMTBBIDExNkUgMTFCNjtDNDczOzExMEEgMTE2RSAxMUI2OworQzQ3NDtDNDc0OzExMEEgMTE2RSAxMUI3O0M0NzQ7MTEwQSAxMTZFIDExQjc7CitDNDc1O0M0NzU7MTEwQSAxMTZFIDExQjg7QzQ3NTsxMTBBIDExNkUgMTFCODsKK0M0NzY7QzQ3NjsxMTBBIDExNkUgMTFCOTtDNDc2OzExMEEgMTE2RSAxMUI5OworQzQ3NztDNDc3OzExMEEgMTE2RSAxMUJBO0M0Nzc7MTEwQSAxMTZFIDExQkE7CitDNDc4O0M0Nzg7MTEwQSAxMTZFIDExQkI7QzQ3ODsxMTBBIDExNkUgMTFCQjsKK0M0Nzk7QzQ3OTsxMTBBIDExNkUgMTFCQztDNDc5OzExMEEgMTE2RSAxMUJDOworQzQ3QTtDNDdBOzExMEEgMTE2RSAxMUJEO0M0N0E7MTEwQSAxMTZFIDExQkQ7CitDNDdCO0M0N0I7MTEwQSAxMTZFIDExQkU7QzQ3QjsxMTBBIDExNkUgMTFCRTsKK0M0N0M7QzQ3QzsxMTBBIDExNkUgMTFCRjtDNDdDOzExMEEgMTE2RSAxMUJGOworQzQ3RDtDNDdEOzExMEEgMTE2RSAxMUMwO0M0N0Q7MTEwQSAxMTZFIDExQzA7CitDNDdFO0M0N0U7MTEwQSAxMTZFIDExQzE7QzQ3RTsxMTBBIDExNkUgMTFDMTsKK0M0N0Y7QzQ3RjsxMTBBIDExNkUgMTFDMjtDNDdGOzExMEEgMTE2RSAxMUMyOworQzQ4MDtDNDgwOzExMEEgMTE2RjtDNDgwOzExMEEgMTE2RjsKK0M0ODE7QzQ4MTsxMTBBIDExNkYgMTFBODtDNDgxOzExMEEgMTE2RiAxMUE4OworQzQ4MjtDNDgyOzExMEEgMTE2RiAxMUE5O0M0ODI7MTEwQSAxMTZGIDExQTk7CitDNDgzO0M0ODM7MTEwQSAxMTZGIDExQUE7QzQ4MzsxMTBBIDExNkYgMTFBQTsKK0M0ODQ7QzQ4NDsxMTBBIDExNkYgMTFBQjtDNDg0OzExMEEgMTE2RiAxMUFCOworQzQ4NTtDNDg1OzExMEEgMTE2RiAxMUFDO0M0ODU7MTEwQSAxMTZGIDExQUM7CitDNDg2O0M0ODY7MTEwQSAxMTZGIDExQUQ7QzQ4NjsxMTBBIDExNkYgMTFBRDsKK0M0ODc7QzQ4NzsxMTBBIDExNkYgMTFBRTtDNDg3OzExMEEgMTE2RiAxMUFFOworQzQ4ODtDNDg4OzExMEEgMTE2RiAxMUFGO0M0ODg7MTEwQSAxMTZGIDExQUY7CitDNDg5O0M0ODk7MTEwQSAxMTZGIDExQjA7QzQ4OTsxMTBBIDExNkYgMTFCMDsKK0M0OEE7QzQ4QTsxMTBBIDExNkYgMTFCMTtDNDhBOzExMEEgMTE2RiAxMUIxOworQzQ4QjtDNDhCOzExMEEgMTE2RiAxMUIyO0M0OEI7MTEwQSAxMTZGIDExQjI7CitDNDhDO0M0OEM7MTEwQSAxMTZGIDExQjM7QzQ4QzsxMTBBIDExNkYgMTFCMzsKK0M0OEQ7QzQ4RDsxMTBBIDExNkYgMTFCNDtDNDhEOzExMEEgMTE2RiAxMUI0OworQzQ4RTtDNDhFOzExMEEgMTE2RiAxMUI1O0M0OEU7MTEwQSAxMTZGIDExQjU7CitDNDhGO0M0OEY7MTEwQSAxMTZGIDExQjY7QzQ4RjsxMTBBIDExNkYgMTFCNjsKK0M0OTA7QzQ5MDsxMTBBIDExNkYgMTFCNztDNDkwOzExMEEgMTE2RiAxMUI3OworQzQ5MTtDNDkxOzExMEEgMTE2RiAxMUI4O0M0OTE7MTEwQSAxMTZGIDExQjg7CitDNDkyO0M0OTI7MTEwQSAxMTZGIDExQjk7QzQ5MjsxMTBBIDExNkYgMTFCOTsKK0M0OTM7QzQ5MzsxMTBBIDExNkYgMTFCQTtDNDkzOzExMEEgMTE2RiAxMUJBOworQzQ5NDtDNDk0OzExMEEgMTE2RiAxMUJCO0M0OTQ7MTEwQSAxMTZGIDExQkI7CitDNDk1O0M0OTU7MTEwQSAxMTZGIDExQkM7QzQ5NTsxMTBBIDExNkYgMTFCQzsKK0M0OTY7QzQ5NjsxMTBBIDExNkYgMTFCRDtDNDk2OzExMEEgMTE2RiAxMUJEOworQzQ5NztDNDk3OzExMEEgMTE2RiAxMUJFO0M0OTc7MTEwQSAxMTZGIDExQkU7CitDNDk4O0M0OTg7MTEwQSAxMTZGIDExQkY7QzQ5ODsxMTBBIDExNkYgMTFCRjsKK0M0OTk7QzQ5OTsxMTBBIDExNkYgMTFDMDtDNDk5OzExMEEgMTE2RiAxMUMwOworQzQ5QTtDNDlBOzExMEEgMTE2RiAxMUMxO0M0OUE7MTEwQSAxMTZGIDExQzE7CitDNDlCO0M0OUI7MTEwQSAxMTZGIDExQzI7QzQ5QjsxMTBBIDExNkYgMTFDMjsKK0M0OUM7QzQ5QzsxMTBBIDExNzA7QzQ5QzsxMTBBIDExNzA7CitDNDlEO0M0OUQ7MTEwQSAxMTcwIDExQTg7QzQ5RDsxMTBBIDExNzAgMTFBODsKK0M0OUU7QzQ5RTsxMTBBIDExNzAgMTFBOTtDNDlFOzExMEEgMTE3MCAxMUE5OworQzQ5RjtDNDlGOzExMEEgMTE3MCAxMUFBO0M0OUY7MTEwQSAxMTcwIDExQUE7CitDNEEwO0M0QTA7MTEwQSAxMTcwIDExQUI7QzRBMDsxMTBBIDExNzAgMTFBQjsKK0M0QTE7QzRBMTsxMTBBIDExNzAgMTFBQztDNEExOzExMEEgMTE3MCAxMUFDOworQzRBMjtDNEEyOzExMEEgMTE3MCAxMUFEO0M0QTI7MTEwQSAxMTcwIDExQUQ7CitDNEEzO0M0QTM7MTEwQSAxMTcwIDExQUU7QzRBMzsxMTBBIDExNzAgMTFBRTsKK0M0QTQ7QzRBNDsxMTBBIDExNzAgMTFBRjtDNEE0OzExMEEgMTE3MCAxMUFGOworQzRBNTtDNEE1OzExMEEgMTE3MCAxMUIwO0M0QTU7MTEwQSAxMTcwIDExQjA7CitDNEE2O0M0QTY7MTEwQSAxMTcwIDExQjE7QzRBNjsxMTBBIDExNzAgMTFCMTsKK0M0QTc7QzRBNzsxMTBBIDExNzAgMTFCMjtDNEE3OzExMEEgMTE3MCAxMUIyOworQzRBODtDNEE4OzExMEEgMTE3MCAxMUIzO0M0QTg7MTEwQSAxMTcwIDExQjM7CitDNEE5O0M0QTk7MTEwQSAxMTcwIDExQjQ7QzRBOTsxMTBBIDExNzAgMTFCNDsKK0M0QUE7QzRBQTsxMTBBIDExNzAgMTFCNTtDNEFBOzExMEEgMTE3MCAxMUI1OworQzRBQjtDNEFCOzExMEEgMTE3MCAxMUI2O0M0QUI7MTEwQSAxMTcwIDExQjY7CitDNEFDO0M0QUM7MTEwQSAxMTcwIDExQjc7QzRBQzsxMTBBIDExNzAgMTFCNzsKK0M0QUQ7QzRBRDsxMTBBIDExNzAgMTFCODtDNEFEOzExMEEgMTE3MCAxMUI4OworQzRBRTtDNEFFOzExMEEgMTE3MCAxMUI5O0M0QUU7MTEwQSAxMTcwIDExQjk7CitDNEFGO0M0QUY7MTEwQSAxMTcwIDExQkE7QzRBRjsxMTBBIDExNzAgMTFCQTsKK0M0QjA7QzRCMDsxMTBBIDExNzAgMTFCQjtDNEIwOzExMEEgMTE3MCAxMUJCOworQzRCMTtDNEIxOzExMEEgMTE3MCAxMUJDO0M0QjE7MTEwQSAxMTcwIDExQkM7CitDNEIyO0M0QjI7MTEwQSAxMTcwIDExQkQ7QzRCMjsxMTBBIDExNzAgMTFCRDsKK0M0QjM7QzRCMzsxMTBBIDExNzAgMTFCRTtDNEIzOzExMEEgMTE3MCAxMUJFOworQzRCNDtDNEI0OzExMEEgMTE3MCAxMUJGO0M0QjQ7MTEwQSAxMTcwIDExQkY7CitDNEI1O0M0QjU7MTEwQSAxMTcwIDExQzA7QzRCNTsxMTBBIDExNzAgMTFDMDsKK0M0QjY7QzRCNjsxMTBBIDExNzAgMTFDMTtDNEI2OzExMEEgMTE3MCAxMUMxOworQzRCNztDNEI3OzExMEEgMTE3MCAxMUMyO0M0Qjc7MTEwQSAxMTcwIDExQzI7CitDNEI4O0M0Qjg7MTEwQSAxMTcxO0M0Qjg7MTEwQSAxMTcxOworQzRCOTtDNEI5OzExMEEgMTE3MSAxMUE4O0M0Qjk7MTEwQSAxMTcxIDExQTg7CitDNEJBO0M0QkE7MTEwQSAxMTcxIDExQTk7QzRCQTsxMTBBIDExNzEgMTFBOTsKK0M0QkI7QzRCQjsxMTBBIDExNzEgMTFBQTtDNEJCOzExMEEgMTE3MSAxMUFBOworQzRCQztDNEJDOzExMEEgMTE3MSAxMUFCO0M0QkM7MTEwQSAxMTcxIDExQUI7CitDNEJEO0M0QkQ7MTEwQSAxMTcxIDExQUM7QzRCRDsxMTBBIDExNzEgMTFBQzsKK0M0QkU7QzRCRTsxMTBBIDExNzEgMTFBRDtDNEJFOzExMEEgMTE3MSAxMUFEOworQzRCRjtDNEJGOzExMEEgMTE3MSAxMUFFO0M0QkY7MTEwQSAxMTcxIDExQUU7CitDNEMwO0M0QzA7MTEwQSAxMTcxIDExQUY7QzRDMDsxMTBBIDExNzEgMTFBRjsKK0M0QzE7QzRDMTsxMTBBIDExNzEgMTFCMDtDNEMxOzExMEEgMTE3MSAxMUIwOworQzRDMjtDNEMyOzExMEEgMTE3MSAxMUIxO0M0QzI7MTEwQSAxMTcxIDExQjE7CitDNEMzO0M0QzM7MTEwQSAxMTcxIDExQjI7QzRDMzsxMTBBIDExNzEgMTFCMjsKK0M0QzQ7QzRDNDsxMTBBIDExNzEgMTFCMztDNEM0OzExMEEgMTE3MSAxMUIzOworQzRDNTtDNEM1OzExMEEgMTE3MSAxMUI0O0M0QzU7MTEwQSAxMTcxIDExQjQ7CitDNEM2O0M0QzY7MTEwQSAxMTcxIDExQjU7QzRDNjsxMTBBIDExNzEgMTFCNTsKK0M0Qzc7QzRDNzsxMTBBIDExNzEgMTFCNjtDNEM3OzExMEEgMTE3MSAxMUI2OworQzRDODtDNEM4OzExMEEgMTE3MSAxMUI3O0M0Qzg7MTEwQSAxMTcxIDExQjc7CitDNEM5O0M0Qzk7MTEwQSAxMTcxIDExQjg7QzRDOTsxMTBBIDExNzEgMTFCODsKK0M0Q0E7QzRDQTsxMTBBIDExNzEgMTFCOTtDNENBOzExMEEgMTE3MSAxMUI5OworQzRDQjtDNENCOzExMEEgMTE3MSAxMUJBO0M0Q0I7MTEwQSAxMTcxIDExQkE7CitDNENDO0M0Q0M7MTEwQSAxMTcxIDExQkI7QzRDQzsxMTBBIDExNzEgMTFCQjsKK0M0Q0Q7QzRDRDsxMTBBIDExNzEgMTFCQztDNENEOzExMEEgMTE3MSAxMUJDOworQzRDRTtDNENFOzExMEEgMTE3MSAxMUJEO0M0Q0U7MTEwQSAxMTcxIDExQkQ7CitDNENGO0M0Q0Y7MTEwQSAxMTcxIDExQkU7QzRDRjsxMTBBIDExNzEgMTFCRTsKK0M0RDA7QzREMDsxMTBBIDExNzEgMTFCRjtDNEQwOzExMEEgMTE3MSAxMUJGOworQzREMTtDNEQxOzExMEEgMTE3MSAxMUMwO0M0RDE7MTEwQSAxMTcxIDExQzA7CitDNEQyO0M0RDI7MTEwQSAxMTcxIDExQzE7QzREMjsxMTBBIDExNzEgMTFDMTsKK0M0RDM7QzREMzsxMTBBIDExNzEgMTFDMjtDNEQzOzExMEEgMTE3MSAxMUMyOworQzRENDtDNEQ0OzExMEEgMTE3MjtDNEQ0OzExMEEgMTE3MjsKK0M0RDU7QzRENTsxMTBBIDExNzIgMTFBODtDNEQ1OzExMEEgMTE3MiAxMUE4OworQzRENjtDNEQ2OzExMEEgMTE3MiAxMUE5O0M0RDY7MTEwQSAxMTcyIDExQTk7CitDNEQ3O0M0RDc7MTEwQSAxMTcyIDExQUE7QzRENzsxMTBBIDExNzIgMTFBQTsKK0M0RDg7QzREODsxMTBBIDExNzIgMTFBQjtDNEQ4OzExMEEgMTE3MiAxMUFCOworQzREOTtDNEQ5OzExMEEgMTE3MiAxMUFDO0M0RDk7MTEwQSAxMTcyIDExQUM7CitDNERBO0M0REE7MTEwQSAxMTcyIDExQUQ7QzREQTsxMTBBIDExNzIgMTFBRDsKK0M0REI7QzREQjsxMTBBIDExNzIgMTFBRTtDNERCOzExMEEgMTE3MiAxMUFFOworQzREQztDNERDOzExMEEgMTE3MiAxMUFGO0M0REM7MTEwQSAxMTcyIDExQUY7CitDNEREO0M0REQ7MTEwQSAxMTcyIDExQjA7QzRERDsxMTBBIDExNzIgMTFCMDsKK0M0REU7QzRERTsxMTBBIDExNzIgMTFCMTtDNERFOzExMEEgMTE3MiAxMUIxOworQzRERjtDNERGOzExMEEgMTE3MiAxMUIyO0M0REY7MTEwQSAxMTcyIDExQjI7CitDNEUwO0M0RTA7MTEwQSAxMTcyIDExQjM7QzRFMDsxMTBBIDExNzIgMTFCMzsKK0M0RTE7QzRFMTsxMTBBIDExNzIgMTFCNDtDNEUxOzExMEEgMTE3MiAxMUI0OworQzRFMjtDNEUyOzExMEEgMTE3MiAxMUI1O0M0RTI7MTEwQSAxMTcyIDExQjU7CitDNEUzO0M0RTM7MTEwQSAxMTcyIDExQjY7QzRFMzsxMTBBIDExNzIgMTFCNjsKK0M0RTQ7QzRFNDsxMTBBIDExNzIgMTFCNztDNEU0OzExMEEgMTE3MiAxMUI3OworQzRFNTtDNEU1OzExMEEgMTE3MiAxMUI4O0M0RTU7MTEwQSAxMTcyIDExQjg7CitDNEU2O0M0RTY7MTEwQSAxMTcyIDExQjk7QzRFNjsxMTBBIDExNzIgMTFCOTsKK0M0RTc7QzRFNzsxMTBBIDExNzIgMTFCQTtDNEU3OzExMEEgMTE3MiAxMUJBOworQzRFODtDNEU4OzExMEEgMTE3MiAxMUJCO0M0RTg7MTEwQSAxMTcyIDExQkI7CitDNEU5O0M0RTk7MTEwQSAxMTcyIDExQkM7QzRFOTsxMTBBIDExNzIgMTFCQzsKK0M0RUE7QzRFQTsxMTBBIDExNzIgMTFCRDtDNEVBOzExMEEgMTE3MiAxMUJEOworQzRFQjtDNEVCOzExMEEgMTE3MiAxMUJFO0M0RUI7MTEwQSAxMTcyIDExQkU7CitDNEVDO0M0RUM7MTEwQSAxMTcyIDExQkY7QzRFQzsxMTBBIDExNzIgMTFCRjsKK0M0RUQ7QzRFRDsxMTBBIDExNzIgMTFDMDtDNEVEOzExMEEgMTE3MiAxMUMwOworQzRFRTtDNEVFOzExMEEgMTE3MiAxMUMxO0M0RUU7MTEwQSAxMTcyIDExQzE7CitDNEVGO0M0RUY7MTEwQSAxMTcyIDExQzI7QzRFRjsxMTBBIDExNzIgMTFDMjsKK0M0RjA7QzRGMDsxMTBBIDExNzM7QzRGMDsxMTBBIDExNzM7CitDNEYxO0M0RjE7MTEwQSAxMTczIDExQTg7QzRGMTsxMTBBIDExNzMgMTFBODsKK0M0RjI7QzRGMjsxMTBBIDExNzMgMTFBOTtDNEYyOzExMEEgMTE3MyAxMUE5OworQzRGMztDNEYzOzExMEEgMTE3MyAxMUFBO0M0RjM7MTEwQSAxMTczIDExQUE7CitDNEY0O0M0RjQ7MTEwQSAxMTczIDExQUI7QzRGNDsxMTBBIDExNzMgMTFBQjsKK0M0RjU7QzRGNTsxMTBBIDExNzMgMTFBQztDNEY1OzExMEEgMTE3MyAxMUFDOworQzRGNjtDNEY2OzExMEEgMTE3MyAxMUFEO0M0RjY7MTEwQSAxMTczIDExQUQ7CitDNEY3O0M0Rjc7MTEwQSAxMTczIDExQUU7QzRGNzsxMTBBIDExNzMgMTFBRTsKK0M0Rjg7QzRGODsxMTBBIDExNzMgMTFBRjtDNEY4OzExMEEgMTE3MyAxMUFGOworQzRGOTtDNEY5OzExMEEgMTE3MyAxMUIwO0M0Rjk7MTEwQSAxMTczIDExQjA7CitDNEZBO0M0RkE7MTEwQSAxMTczIDExQjE7QzRGQTsxMTBBIDExNzMgMTFCMTsKK0M0RkI7QzRGQjsxMTBBIDExNzMgMTFCMjtDNEZCOzExMEEgMTE3MyAxMUIyOworQzRGQztDNEZDOzExMEEgMTE3MyAxMUIzO0M0RkM7MTEwQSAxMTczIDExQjM7CitDNEZEO0M0RkQ7MTEwQSAxMTczIDExQjQ7QzRGRDsxMTBBIDExNzMgMTFCNDsKK0M0RkU7QzRGRTsxMTBBIDExNzMgMTFCNTtDNEZFOzExMEEgMTE3MyAxMUI1OworQzRGRjtDNEZGOzExMEEgMTE3MyAxMUI2O0M0RkY7MTEwQSAxMTczIDExQjY7CitDNTAwO0M1MDA7MTEwQSAxMTczIDExQjc7QzUwMDsxMTBBIDExNzMgMTFCNzsKK0M1MDE7QzUwMTsxMTBBIDExNzMgMTFCODtDNTAxOzExMEEgMTE3MyAxMUI4OworQzUwMjtDNTAyOzExMEEgMTE3MyAxMUI5O0M1MDI7MTEwQSAxMTczIDExQjk7CitDNTAzO0M1MDM7MTEwQSAxMTczIDExQkE7QzUwMzsxMTBBIDExNzMgMTFCQTsKK0M1MDQ7QzUwNDsxMTBBIDExNzMgMTFCQjtDNTA0OzExMEEgMTE3MyAxMUJCOworQzUwNTtDNTA1OzExMEEgMTE3MyAxMUJDO0M1MDU7MTEwQSAxMTczIDExQkM7CitDNTA2O0M1MDY7MTEwQSAxMTczIDExQkQ7QzUwNjsxMTBBIDExNzMgMTFCRDsKK0M1MDc7QzUwNzsxMTBBIDExNzMgMTFCRTtDNTA3OzExMEEgMTE3MyAxMUJFOworQzUwODtDNTA4OzExMEEgMTE3MyAxMUJGO0M1MDg7MTEwQSAxMTczIDExQkY7CitDNTA5O0M1MDk7MTEwQSAxMTczIDExQzA7QzUwOTsxMTBBIDExNzMgMTFDMDsKK0M1MEE7QzUwQTsxMTBBIDExNzMgMTFDMTtDNTBBOzExMEEgMTE3MyAxMUMxOworQzUwQjtDNTBCOzExMEEgMTE3MyAxMUMyO0M1MEI7MTEwQSAxMTczIDExQzI7CitDNTBDO0M1MEM7MTEwQSAxMTc0O0M1MEM7MTEwQSAxMTc0OworQzUwRDtDNTBEOzExMEEgMTE3NCAxMUE4O0M1MEQ7MTEwQSAxMTc0IDExQTg7CitDNTBFO0M1MEU7MTEwQSAxMTc0IDExQTk7QzUwRTsxMTBBIDExNzQgMTFBOTsKK0M1MEY7QzUwRjsxMTBBIDExNzQgMTFBQTtDNTBGOzExMEEgMTE3NCAxMUFBOworQzUxMDtDNTEwOzExMEEgMTE3NCAxMUFCO0M1MTA7MTEwQSAxMTc0IDExQUI7CitDNTExO0M1MTE7MTEwQSAxMTc0IDExQUM7QzUxMTsxMTBBIDExNzQgMTFBQzsKK0M1MTI7QzUxMjsxMTBBIDExNzQgMTFBRDtDNTEyOzExMEEgMTE3NCAxMUFEOworQzUxMztDNTEzOzExMEEgMTE3NCAxMUFFO0M1MTM7MTEwQSAxMTc0IDExQUU7CitDNTE0O0M1MTQ7MTEwQSAxMTc0IDExQUY7QzUxNDsxMTBBIDExNzQgMTFBRjsKK0M1MTU7QzUxNTsxMTBBIDExNzQgMTFCMDtDNTE1OzExMEEgMTE3NCAxMUIwOworQzUxNjtDNTE2OzExMEEgMTE3NCAxMUIxO0M1MTY7MTEwQSAxMTc0IDExQjE7CitDNTE3O0M1MTc7MTEwQSAxMTc0IDExQjI7QzUxNzsxMTBBIDExNzQgMTFCMjsKK0M1MTg7QzUxODsxMTBBIDExNzQgMTFCMztDNTE4OzExMEEgMTE3NCAxMUIzOworQzUxOTtDNTE5OzExMEEgMTE3NCAxMUI0O0M1MTk7MTEwQSAxMTc0IDExQjQ7CitDNTFBO0M1MUE7MTEwQSAxMTc0IDExQjU7QzUxQTsxMTBBIDExNzQgMTFCNTsKK0M1MUI7QzUxQjsxMTBBIDExNzQgMTFCNjtDNTFCOzExMEEgMTE3NCAxMUI2OworQzUxQztDNTFDOzExMEEgMTE3NCAxMUI3O0M1MUM7MTEwQSAxMTc0IDExQjc7CitDNTFEO0M1MUQ7MTEwQSAxMTc0IDExQjg7QzUxRDsxMTBBIDExNzQgMTFCODsKK0M1MUU7QzUxRTsxMTBBIDExNzQgMTFCOTtDNTFFOzExMEEgMTE3NCAxMUI5OworQzUxRjtDNTFGOzExMEEgMTE3NCAxMUJBO0M1MUY7MTEwQSAxMTc0IDExQkE7CitDNTIwO0M1MjA7MTEwQSAxMTc0IDExQkI7QzUyMDsxMTBBIDExNzQgMTFCQjsKK0M1MjE7QzUyMTsxMTBBIDExNzQgMTFCQztDNTIxOzExMEEgMTE3NCAxMUJDOworQzUyMjtDNTIyOzExMEEgMTE3NCAxMUJEO0M1MjI7MTEwQSAxMTc0IDExQkQ7CitDNTIzO0M1MjM7MTEwQSAxMTc0IDExQkU7QzUyMzsxMTBBIDExNzQgMTFCRTsKK0M1MjQ7QzUyNDsxMTBBIDExNzQgMTFCRjtDNTI0OzExMEEgMTE3NCAxMUJGOworQzUyNTtDNTI1OzExMEEgMTE3NCAxMUMwO0M1MjU7MTEwQSAxMTc0IDExQzA7CitDNTI2O0M1MjY7MTEwQSAxMTc0IDExQzE7QzUyNjsxMTBBIDExNzQgMTFDMTsKK0M1Mjc7QzUyNzsxMTBBIDExNzQgMTFDMjtDNTI3OzExMEEgMTE3NCAxMUMyOworQzUyODtDNTI4OzExMEEgMTE3NTtDNTI4OzExMEEgMTE3NTsKK0M1Mjk7QzUyOTsxMTBBIDExNzUgMTFBODtDNTI5OzExMEEgMTE3NSAxMUE4OworQzUyQTtDNTJBOzExMEEgMTE3NSAxMUE5O0M1MkE7MTEwQSAxMTc1IDExQTk7CitDNTJCO0M1MkI7MTEwQSAxMTc1IDExQUE7QzUyQjsxMTBBIDExNzUgMTFBQTsKK0M1MkM7QzUyQzsxMTBBIDExNzUgMTFBQjtDNTJDOzExMEEgMTE3NSAxMUFCOworQzUyRDtDNTJEOzExMEEgMTE3NSAxMUFDO0M1MkQ7MTEwQSAxMTc1IDExQUM7CitDNTJFO0M1MkU7MTEwQSAxMTc1IDExQUQ7QzUyRTsxMTBBIDExNzUgMTFBRDsKK0M1MkY7QzUyRjsxMTBBIDExNzUgMTFBRTtDNTJGOzExMEEgMTE3NSAxMUFFOworQzUzMDtDNTMwOzExMEEgMTE3NSAxMUFGO0M1MzA7MTEwQSAxMTc1IDExQUY7CitDNTMxO0M1MzE7MTEwQSAxMTc1IDExQjA7QzUzMTsxMTBBIDExNzUgMTFCMDsKK0M1MzI7QzUzMjsxMTBBIDExNzUgMTFCMTtDNTMyOzExMEEgMTE3NSAxMUIxOworQzUzMztDNTMzOzExMEEgMTE3NSAxMUIyO0M1MzM7MTEwQSAxMTc1IDExQjI7CitDNTM0O0M1MzQ7MTEwQSAxMTc1IDExQjM7QzUzNDsxMTBBIDExNzUgMTFCMzsKK0M1MzU7QzUzNTsxMTBBIDExNzUgMTFCNDtDNTM1OzExMEEgMTE3NSAxMUI0OworQzUzNjtDNTM2OzExMEEgMTE3NSAxMUI1O0M1MzY7MTEwQSAxMTc1IDExQjU7CitDNTM3O0M1Mzc7MTEwQSAxMTc1IDExQjY7QzUzNzsxMTBBIDExNzUgMTFCNjsKK0M1Mzg7QzUzODsxMTBBIDExNzUgMTFCNztDNTM4OzExMEEgMTE3NSAxMUI3OworQzUzOTtDNTM5OzExMEEgMTE3NSAxMUI4O0M1Mzk7MTEwQSAxMTc1IDExQjg7CitDNTNBO0M1M0E7MTEwQSAxMTc1IDExQjk7QzUzQTsxMTBBIDExNzUgMTFCOTsKK0M1M0I7QzUzQjsxMTBBIDExNzUgMTFCQTtDNTNCOzExMEEgMTE3NSAxMUJBOworQzUzQztDNTNDOzExMEEgMTE3NSAxMUJCO0M1M0M7MTEwQSAxMTc1IDExQkI7CitDNTNEO0M1M0Q7MTEwQSAxMTc1IDExQkM7QzUzRDsxMTBBIDExNzUgMTFCQzsKK0M1M0U7QzUzRTsxMTBBIDExNzUgMTFCRDtDNTNFOzExMEEgMTE3NSAxMUJEOworQzUzRjtDNTNGOzExMEEgMTE3NSAxMUJFO0M1M0Y7MTEwQSAxMTc1IDExQkU7CitDNTQwO0M1NDA7MTEwQSAxMTc1IDExQkY7QzU0MDsxMTBBIDExNzUgMTFCRjsKK0M1NDE7QzU0MTsxMTBBIDExNzUgMTFDMDtDNTQxOzExMEEgMTE3NSAxMUMwOworQzU0MjtDNTQyOzExMEEgMTE3NSAxMUMxO0M1NDI7MTEwQSAxMTc1IDExQzE7CitDNTQzO0M1NDM7MTEwQSAxMTc1IDExQzI7QzU0MzsxMTBBIDExNzUgMTFDMjsKK0M1NDQ7QzU0NDsxMTBCIDExNjE7QzU0NDsxMTBCIDExNjE7CitDNTQ1O0M1NDU7MTEwQiAxMTYxIDExQTg7QzU0NTsxMTBCIDExNjEgMTFBODsKK0M1NDY7QzU0NjsxMTBCIDExNjEgMTFBOTtDNTQ2OzExMEIgMTE2MSAxMUE5OworQzU0NztDNTQ3OzExMEIgMTE2MSAxMUFBO0M1NDc7MTEwQiAxMTYxIDExQUE7CitDNTQ4O0M1NDg7MTEwQiAxMTYxIDExQUI7QzU0ODsxMTBCIDExNjEgMTFBQjsKK0M1NDk7QzU0OTsxMTBCIDExNjEgMTFBQztDNTQ5OzExMEIgMTE2MSAxMUFDOworQzU0QTtDNTRBOzExMEIgMTE2MSAxMUFEO0M1NEE7MTEwQiAxMTYxIDExQUQ7CitDNTRCO0M1NEI7MTEwQiAxMTYxIDExQUU7QzU0QjsxMTBCIDExNjEgMTFBRTsKK0M1NEM7QzU0QzsxMTBCIDExNjEgMTFBRjtDNTRDOzExMEIgMTE2MSAxMUFGOworQzU0RDtDNTREOzExMEIgMTE2MSAxMUIwO0M1NEQ7MTEwQiAxMTYxIDExQjA7CitDNTRFO0M1NEU7MTEwQiAxMTYxIDExQjE7QzU0RTsxMTBCIDExNjEgMTFCMTsKK0M1NEY7QzU0RjsxMTBCIDExNjEgMTFCMjtDNTRGOzExMEIgMTE2MSAxMUIyOworQzU1MDtDNTUwOzExMEIgMTE2MSAxMUIzO0M1NTA7MTEwQiAxMTYxIDExQjM7CitDNTUxO0M1NTE7MTEwQiAxMTYxIDExQjQ7QzU1MTsxMTBCIDExNjEgMTFCNDsKK0M1NTI7QzU1MjsxMTBCIDExNjEgMTFCNTtDNTUyOzExMEIgMTE2MSAxMUI1OworQzU1MztDNTUzOzExMEIgMTE2MSAxMUI2O0M1NTM7MTEwQiAxMTYxIDExQjY7CitDNTU0O0M1NTQ7MTEwQiAxMTYxIDExQjc7QzU1NDsxMTBCIDExNjEgMTFCNzsKK0M1NTU7QzU1NTsxMTBCIDExNjEgMTFCODtDNTU1OzExMEIgMTE2MSAxMUI4OworQzU1NjtDNTU2OzExMEIgMTE2MSAxMUI5O0M1NTY7MTEwQiAxMTYxIDExQjk7CitDNTU3O0M1NTc7MTEwQiAxMTYxIDExQkE7QzU1NzsxMTBCIDExNjEgMTFCQTsKK0M1NTg7QzU1ODsxMTBCIDExNjEgMTFCQjtDNTU4OzExMEIgMTE2MSAxMUJCOworQzU1OTtDNTU5OzExMEIgMTE2MSAxMUJDO0M1NTk7MTEwQiAxMTYxIDExQkM7CitDNTVBO0M1NUE7MTEwQiAxMTYxIDExQkQ7QzU1QTsxMTBCIDExNjEgMTFCRDsKK0M1NUI7QzU1QjsxMTBCIDExNjEgMTFCRTtDNTVCOzExMEIgMTE2MSAxMUJFOworQzU1QztDNTVDOzExMEIgMTE2MSAxMUJGO0M1NUM7MTEwQiAxMTYxIDExQkY7CitDNTVEO0M1NUQ7MTEwQiAxMTYxIDExQzA7QzU1RDsxMTBCIDExNjEgMTFDMDsKK0M1NUU7QzU1RTsxMTBCIDExNjEgMTFDMTtDNTVFOzExMEIgMTE2MSAxMUMxOworQzU1RjtDNTVGOzExMEIgMTE2MSAxMUMyO0M1NUY7MTEwQiAxMTYxIDExQzI7CitDNTYwO0M1NjA7MTEwQiAxMTYyO0M1NjA7MTEwQiAxMTYyOworQzU2MTtDNTYxOzExMEIgMTE2MiAxMUE4O0M1NjE7MTEwQiAxMTYyIDExQTg7CitDNTYyO0M1NjI7MTEwQiAxMTYyIDExQTk7QzU2MjsxMTBCIDExNjIgMTFBOTsKK0M1NjM7QzU2MzsxMTBCIDExNjIgMTFBQTtDNTYzOzExMEIgMTE2MiAxMUFBOworQzU2NDtDNTY0OzExMEIgMTE2MiAxMUFCO0M1NjQ7MTEwQiAxMTYyIDExQUI7CitDNTY1O0M1NjU7MTEwQiAxMTYyIDExQUM7QzU2NTsxMTBCIDExNjIgMTFBQzsKK0M1NjY7QzU2NjsxMTBCIDExNjIgMTFBRDtDNTY2OzExMEIgMTE2MiAxMUFEOworQzU2NztDNTY3OzExMEIgMTE2MiAxMUFFO0M1Njc7MTEwQiAxMTYyIDExQUU7CitDNTY4O0M1Njg7MTEwQiAxMTYyIDExQUY7QzU2ODsxMTBCIDExNjIgMTFBRjsKK0M1Njk7QzU2OTsxMTBCIDExNjIgMTFCMDtDNTY5OzExMEIgMTE2MiAxMUIwOworQzU2QTtDNTZBOzExMEIgMTE2MiAxMUIxO0M1NkE7MTEwQiAxMTYyIDExQjE7CitDNTZCO0M1NkI7MTEwQiAxMTYyIDExQjI7QzU2QjsxMTBCIDExNjIgMTFCMjsKK0M1NkM7QzU2QzsxMTBCIDExNjIgMTFCMztDNTZDOzExMEIgMTE2MiAxMUIzOworQzU2RDtDNTZEOzExMEIgMTE2MiAxMUI0O0M1NkQ7MTEwQiAxMTYyIDExQjQ7CitDNTZFO0M1NkU7MTEwQiAxMTYyIDExQjU7QzU2RTsxMTBCIDExNjIgMTFCNTsKK0M1NkY7QzU2RjsxMTBCIDExNjIgMTFCNjtDNTZGOzExMEIgMTE2MiAxMUI2OworQzU3MDtDNTcwOzExMEIgMTE2MiAxMUI3O0M1NzA7MTEwQiAxMTYyIDExQjc7CitDNTcxO0M1NzE7MTEwQiAxMTYyIDExQjg7QzU3MTsxMTBCIDExNjIgMTFCODsKK0M1NzI7QzU3MjsxMTBCIDExNjIgMTFCOTtDNTcyOzExMEIgMTE2MiAxMUI5OworQzU3MztDNTczOzExMEIgMTE2MiAxMUJBO0M1NzM7MTEwQiAxMTYyIDExQkE7CitDNTc0O0M1NzQ7MTEwQiAxMTYyIDExQkI7QzU3NDsxMTBCIDExNjIgMTFCQjsKK0M1NzU7QzU3NTsxMTBCIDExNjIgMTFCQztDNTc1OzExMEIgMTE2MiAxMUJDOworQzU3NjtDNTc2OzExMEIgMTE2MiAxMUJEO0M1NzY7MTEwQiAxMTYyIDExQkQ7CitDNTc3O0M1Nzc7MTEwQiAxMTYyIDExQkU7QzU3NzsxMTBCIDExNjIgMTFCRTsKK0M1Nzg7QzU3ODsxMTBCIDExNjIgMTFCRjtDNTc4OzExMEIgMTE2MiAxMUJGOworQzU3OTtDNTc5OzExMEIgMTE2MiAxMUMwO0M1Nzk7MTEwQiAxMTYyIDExQzA7CitDNTdBO0M1N0E7MTEwQiAxMTYyIDExQzE7QzU3QTsxMTBCIDExNjIgMTFDMTsKK0M1N0I7QzU3QjsxMTBCIDExNjIgMTFDMjtDNTdCOzExMEIgMTE2MiAxMUMyOworQzU3QztDNTdDOzExMEIgMTE2MztDNTdDOzExMEIgMTE2MzsKK0M1N0Q7QzU3RDsxMTBCIDExNjMgMTFBODtDNTdEOzExMEIgMTE2MyAxMUE4OworQzU3RTtDNTdFOzExMEIgMTE2MyAxMUE5O0M1N0U7MTEwQiAxMTYzIDExQTk7CitDNTdGO0M1N0Y7MTEwQiAxMTYzIDExQUE7QzU3RjsxMTBCIDExNjMgMTFBQTsKK0M1ODA7QzU4MDsxMTBCIDExNjMgMTFBQjtDNTgwOzExMEIgMTE2MyAxMUFCOworQzU4MTtDNTgxOzExMEIgMTE2MyAxMUFDO0M1ODE7MTEwQiAxMTYzIDExQUM7CitDNTgyO0M1ODI7MTEwQiAxMTYzIDExQUQ7QzU4MjsxMTBCIDExNjMgMTFBRDsKK0M1ODM7QzU4MzsxMTBCIDExNjMgMTFBRTtDNTgzOzExMEIgMTE2MyAxMUFFOworQzU4NDtDNTg0OzExMEIgMTE2MyAxMUFGO0M1ODQ7MTEwQiAxMTYzIDExQUY7CitDNTg1O0M1ODU7MTEwQiAxMTYzIDExQjA7QzU4NTsxMTBCIDExNjMgMTFCMDsKK0M1ODY7QzU4NjsxMTBCIDExNjMgMTFCMTtDNTg2OzExMEIgMTE2MyAxMUIxOworQzU4NztDNTg3OzExMEIgMTE2MyAxMUIyO0M1ODc7MTEwQiAxMTYzIDExQjI7CitDNTg4O0M1ODg7MTEwQiAxMTYzIDExQjM7QzU4ODsxMTBCIDExNjMgMTFCMzsKK0M1ODk7QzU4OTsxMTBCIDExNjMgMTFCNDtDNTg5OzExMEIgMTE2MyAxMUI0OworQzU4QTtDNThBOzExMEIgMTE2MyAxMUI1O0M1OEE7MTEwQiAxMTYzIDExQjU7CitDNThCO0M1OEI7MTEwQiAxMTYzIDExQjY7QzU4QjsxMTBCIDExNjMgMTFCNjsKK0M1OEM7QzU4QzsxMTBCIDExNjMgMTFCNztDNThDOzExMEIgMTE2MyAxMUI3OworQzU4RDtDNThEOzExMEIgMTE2MyAxMUI4O0M1OEQ7MTEwQiAxMTYzIDExQjg7CitDNThFO0M1OEU7MTEwQiAxMTYzIDExQjk7QzU4RTsxMTBCIDExNjMgMTFCOTsKK0M1OEY7QzU4RjsxMTBCIDExNjMgMTFCQTtDNThGOzExMEIgMTE2MyAxMUJBOworQzU5MDtDNTkwOzExMEIgMTE2MyAxMUJCO0M1OTA7MTEwQiAxMTYzIDExQkI7CitDNTkxO0M1OTE7MTEwQiAxMTYzIDExQkM7QzU5MTsxMTBCIDExNjMgMTFCQzsKK0M1OTI7QzU5MjsxMTBCIDExNjMgMTFCRDtDNTkyOzExMEIgMTE2MyAxMUJEOworQzU5MztDNTkzOzExMEIgMTE2MyAxMUJFO0M1OTM7MTEwQiAxMTYzIDExQkU7CitDNTk0O0M1OTQ7MTEwQiAxMTYzIDExQkY7QzU5NDsxMTBCIDExNjMgMTFCRjsKK0M1OTU7QzU5NTsxMTBCIDExNjMgMTFDMDtDNTk1OzExMEIgMTE2MyAxMUMwOworQzU5NjtDNTk2OzExMEIgMTE2MyAxMUMxO0M1OTY7MTEwQiAxMTYzIDExQzE7CitDNTk3O0M1OTc7MTEwQiAxMTYzIDExQzI7QzU5NzsxMTBCIDExNjMgMTFDMjsKK0M1OTg7QzU5ODsxMTBCIDExNjQ7QzU5ODsxMTBCIDExNjQ7CitDNTk5O0M1OTk7MTEwQiAxMTY0IDExQTg7QzU5OTsxMTBCIDExNjQgMTFBODsKK0M1OUE7QzU5QTsxMTBCIDExNjQgMTFBOTtDNTlBOzExMEIgMTE2NCAxMUE5OworQzU5QjtDNTlCOzExMEIgMTE2NCAxMUFBO0M1OUI7MTEwQiAxMTY0IDExQUE7CitDNTlDO0M1OUM7MTEwQiAxMTY0IDExQUI7QzU5QzsxMTBCIDExNjQgMTFBQjsKK0M1OUQ7QzU5RDsxMTBCIDExNjQgMTFBQztDNTlEOzExMEIgMTE2NCAxMUFDOworQzU5RTtDNTlFOzExMEIgMTE2NCAxMUFEO0M1OUU7MTEwQiAxMTY0IDExQUQ7CitDNTlGO0M1OUY7MTEwQiAxMTY0IDExQUU7QzU5RjsxMTBCIDExNjQgMTFBRTsKK0M1QTA7QzVBMDsxMTBCIDExNjQgMTFBRjtDNUEwOzExMEIgMTE2NCAxMUFGOworQzVBMTtDNUExOzExMEIgMTE2NCAxMUIwO0M1QTE7MTEwQiAxMTY0IDExQjA7CitDNUEyO0M1QTI7MTEwQiAxMTY0IDExQjE7QzVBMjsxMTBCIDExNjQgMTFCMTsKK0M1QTM7QzVBMzsxMTBCIDExNjQgMTFCMjtDNUEzOzExMEIgMTE2NCAxMUIyOworQzVBNDtDNUE0OzExMEIgMTE2NCAxMUIzO0M1QTQ7MTEwQiAxMTY0IDExQjM7CitDNUE1O0M1QTU7MTEwQiAxMTY0IDExQjQ7QzVBNTsxMTBCIDExNjQgMTFCNDsKK0M1QTY7QzVBNjsxMTBCIDExNjQgMTFCNTtDNUE2OzExMEIgMTE2NCAxMUI1OworQzVBNztDNUE3OzExMEIgMTE2NCAxMUI2O0M1QTc7MTEwQiAxMTY0IDExQjY7CitDNUE4O0M1QTg7MTEwQiAxMTY0IDExQjc7QzVBODsxMTBCIDExNjQgMTFCNzsKK0M1QTk7QzVBOTsxMTBCIDExNjQgMTFCODtDNUE5OzExMEIgMTE2NCAxMUI4OworQzVBQTtDNUFBOzExMEIgMTE2NCAxMUI5O0M1QUE7MTEwQiAxMTY0IDExQjk7CitDNUFCO0M1QUI7MTEwQiAxMTY0IDExQkE7QzVBQjsxMTBCIDExNjQgMTFCQTsKK0M1QUM7QzVBQzsxMTBCIDExNjQgMTFCQjtDNUFDOzExMEIgMTE2NCAxMUJCOworQzVBRDtDNUFEOzExMEIgMTE2NCAxMUJDO0M1QUQ7MTEwQiAxMTY0IDExQkM7CitDNUFFO0M1QUU7MTEwQiAxMTY0IDExQkQ7QzVBRTsxMTBCIDExNjQgMTFCRDsKK0M1QUY7QzVBRjsxMTBCIDExNjQgMTFCRTtDNUFGOzExMEIgMTE2NCAxMUJFOworQzVCMDtDNUIwOzExMEIgMTE2NCAxMUJGO0M1QjA7MTEwQiAxMTY0IDExQkY7CitDNUIxO0M1QjE7MTEwQiAxMTY0IDExQzA7QzVCMTsxMTBCIDExNjQgMTFDMDsKK0M1QjI7QzVCMjsxMTBCIDExNjQgMTFDMTtDNUIyOzExMEIgMTE2NCAxMUMxOworQzVCMztDNUIzOzExMEIgMTE2NCAxMUMyO0M1QjM7MTEwQiAxMTY0IDExQzI7CitDNUI0O0M1QjQ7MTEwQiAxMTY1O0M1QjQ7MTEwQiAxMTY1OworQzVCNTtDNUI1OzExMEIgMTE2NSAxMUE4O0M1QjU7MTEwQiAxMTY1IDExQTg7CitDNUI2O0M1QjY7MTEwQiAxMTY1IDExQTk7QzVCNjsxMTBCIDExNjUgMTFBOTsKK0M1Qjc7QzVCNzsxMTBCIDExNjUgMTFBQTtDNUI3OzExMEIgMTE2NSAxMUFBOworQzVCODtDNUI4OzExMEIgMTE2NSAxMUFCO0M1Qjg7MTEwQiAxMTY1IDExQUI7CitDNUI5O0M1Qjk7MTEwQiAxMTY1IDExQUM7QzVCOTsxMTBCIDExNjUgMTFBQzsKK0M1QkE7QzVCQTsxMTBCIDExNjUgMTFBRDtDNUJBOzExMEIgMTE2NSAxMUFEOworQzVCQjtDNUJCOzExMEIgMTE2NSAxMUFFO0M1QkI7MTEwQiAxMTY1IDExQUU7CitDNUJDO0M1QkM7MTEwQiAxMTY1IDExQUY7QzVCQzsxMTBCIDExNjUgMTFBRjsKK0M1QkQ7QzVCRDsxMTBCIDExNjUgMTFCMDtDNUJEOzExMEIgMTE2NSAxMUIwOworQzVCRTtDNUJFOzExMEIgMTE2NSAxMUIxO0M1QkU7MTEwQiAxMTY1IDExQjE7CitDNUJGO0M1QkY7MTEwQiAxMTY1IDExQjI7QzVCRjsxMTBCIDExNjUgMTFCMjsKK0M1QzA7QzVDMDsxMTBCIDExNjUgMTFCMztDNUMwOzExMEIgMTE2NSAxMUIzOworQzVDMTtDNUMxOzExMEIgMTE2NSAxMUI0O0M1QzE7MTEwQiAxMTY1IDExQjQ7CitDNUMyO0M1QzI7MTEwQiAxMTY1IDExQjU7QzVDMjsxMTBCIDExNjUgMTFCNTsKK0M1QzM7QzVDMzsxMTBCIDExNjUgMTFCNjtDNUMzOzExMEIgMTE2NSAxMUI2OworQzVDNDtDNUM0OzExMEIgMTE2NSAxMUI3O0M1QzQ7MTEwQiAxMTY1IDExQjc7CitDNUM1O0M1QzU7MTEwQiAxMTY1IDExQjg7QzVDNTsxMTBCIDExNjUgMTFCODsKK0M1QzY7QzVDNjsxMTBCIDExNjUgMTFCOTtDNUM2OzExMEIgMTE2NSAxMUI5OworQzVDNztDNUM3OzExMEIgMTE2NSAxMUJBO0M1Qzc7MTEwQiAxMTY1IDExQkE7CitDNUM4O0M1Qzg7MTEwQiAxMTY1IDExQkI7QzVDODsxMTBCIDExNjUgMTFCQjsKK0M1Qzk7QzVDOTsxMTBCIDExNjUgMTFCQztDNUM5OzExMEIgMTE2NSAxMUJDOworQzVDQTtDNUNBOzExMEIgMTE2NSAxMUJEO0M1Q0E7MTEwQiAxMTY1IDExQkQ7CitDNUNCO0M1Q0I7MTEwQiAxMTY1IDExQkU7QzVDQjsxMTBCIDExNjUgMTFCRTsKK0M1Q0M7QzVDQzsxMTBCIDExNjUgMTFCRjtDNUNDOzExMEIgMTE2NSAxMUJGOworQzVDRDtDNUNEOzExMEIgMTE2NSAxMUMwO0M1Q0Q7MTEwQiAxMTY1IDExQzA7CitDNUNFO0M1Q0U7MTEwQiAxMTY1IDExQzE7QzVDRTsxMTBCIDExNjUgMTFDMTsKK0M1Q0Y7QzVDRjsxMTBCIDExNjUgMTFDMjtDNUNGOzExMEIgMTE2NSAxMUMyOworQzVEMDtDNUQwOzExMEIgMTE2NjtDNUQwOzExMEIgMTE2NjsKK0M1RDE7QzVEMTsxMTBCIDExNjYgMTFBODtDNUQxOzExMEIgMTE2NiAxMUE4OworQzVEMjtDNUQyOzExMEIgMTE2NiAxMUE5O0M1RDI7MTEwQiAxMTY2IDExQTk7CitDNUQzO0M1RDM7MTEwQiAxMTY2IDExQUE7QzVEMzsxMTBCIDExNjYgMTFBQTsKK0M1RDQ7QzVENDsxMTBCIDExNjYgMTFBQjtDNUQ0OzExMEIgMTE2NiAxMUFCOworQzVENTtDNUQ1OzExMEIgMTE2NiAxMUFDO0M1RDU7MTEwQiAxMTY2IDExQUM7CitDNUQ2O0M1RDY7MTEwQiAxMTY2IDExQUQ7QzVENjsxMTBCIDExNjYgMTFBRDsKK0M1RDc7QzVENzsxMTBCIDExNjYgMTFBRTtDNUQ3OzExMEIgMTE2NiAxMUFFOworQzVEODtDNUQ4OzExMEIgMTE2NiAxMUFGO0M1RDg7MTEwQiAxMTY2IDExQUY7CitDNUQ5O0M1RDk7MTEwQiAxMTY2IDExQjA7QzVEOTsxMTBCIDExNjYgMTFCMDsKK0M1REE7QzVEQTsxMTBCIDExNjYgMTFCMTtDNURBOzExMEIgMTE2NiAxMUIxOworQzVEQjtDNURCOzExMEIgMTE2NiAxMUIyO0M1REI7MTEwQiAxMTY2IDExQjI7CitDNURDO0M1REM7MTEwQiAxMTY2IDExQjM7QzVEQzsxMTBCIDExNjYgMTFCMzsKK0M1REQ7QzVERDsxMTBCIDExNjYgMTFCNDtDNUREOzExMEIgMTE2NiAxMUI0OworQzVERTtDNURFOzExMEIgMTE2NiAxMUI1O0M1REU7MTEwQiAxMTY2IDExQjU7CitDNURGO0M1REY7MTEwQiAxMTY2IDExQjY7QzVERjsxMTBCIDExNjYgMTFCNjsKK0M1RTA7QzVFMDsxMTBCIDExNjYgMTFCNztDNUUwOzExMEIgMTE2NiAxMUI3OworQzVFMTtDNUUxOzExMEIgMTE2NiAxMUI4O0M1RTE7MTEwQiAxMTY2IDExQjg7CitDNUUyO0M1RTI7MTEwQiAxMTY2IDExQjk7QzVFMjsxMTBCIDExNjYgMTFCOTsKK0M1RTM7QzVFMzsxMTBCIDExNjYgMTFCQTtDNUUzOzExMEIgMTE2NiAxMUJBOworQzVFNDtDNUU0OzExMEIgMTE2NiAxMUJCO0M1RTQ7MTEwQiAxMTY2IDExQkI7CitDNUU1O0M1RTU7MTEwQiAxMTY2IDExQkM7QzVFNTsxMTBCIDExNjYgMTFCQzsKK0M1RTY7QzVFNjsxMTBCIDExNjYgMTFCRDtDNUU2OzExMEIgMTE2NiAxMUJEOworQzVFNztDNUU3OzExMEIgMTE2NiAxMUJFO0M1RTc7MTEwQiAxMTY2IDExQkU7CitDNUU4O0M1RTg7MTEwQiAxMTY2IDExQkY7QzVFODsxMTBCIDExNjYgMTFCRjsKK0M1RTk7QzVFOTsxMTBCIDExNjYgMTFDMDtDNUU5OzExMEIgMTE2NiAxMUMwOworQzVFQTtDNUVBOzExMEIgMTE2NiAxMUMxO0M1RUE7MTEwQiAxMTY2IDExQzE7CitDNUVCO0M1RUI7MTEwQiAxMTY2IDExQzI7QzVFQjsxMTBCIDExNjYgMTFDMjsKK0M1RUM7QzVFQzsxMTBCIDExNjc7QzVFQzsxMTBCIDExNjc7CitDNUVEO0M1RUQ7MTEwQiAxMTY3IDExQTg7QzVFRDsxMTBCIDExNjcgMTFBODsKK0M1RUU7QzVFRTsxMTBCIDExNjcgMTFBOTtDNUVFOzExMEIgMTE2NyAxMUE5OworQzVFRjtDNUVGOzExMEIgMTE2NyAxMUFBO0M1RUY7MTEwQiAxMTY3IDExQUE7CitDNUYwO0M1RjA7MTEwQiAxMTY3IDExQUI7QzVGMDsxMTBCIDExNjcgMTFBQjsKK0M1RjE7QzVGMTsxMTBCIDExNjcgMTFBQztDNUYxOzExMEIgMTE2NyAxMUFDOworQzVGMjtDNUYyOzExMEIgMTE2NyAxMUFEO0M1RjI7MTEwQiAxMTY3IDExQUQ7CitDNUYzO0M1RjM7MTEwQiAxMTY3IDExQUU7QzVGMzsxMTBCIDExNjcgMTFBRTsKK0M1RjQ7QzVGNDsxMTBCIDExNjcgMTFBRjtDNUY0OzExMEIgMTE2NyAxMUFGOworQzVGNTtDNUY1OzExMEIgMTE2NyAxMUIwO0M1RjU7MTEwQiAxMTY3IDExQjA7CitDNUY2O0M1RjY7MTEwQiAxMTY3IDExQjE7QzVGNjsxMTBCIDExNjcgMTFCMTsKK0M1Rjc7QzVGNzsxMTBCIDExNjcgMTFCMjtDNUY3OzExMEIgMTE2NyAxMUIyOworQzVGODtDNUY4OzExMEIgMTE2NyAxMUIzO0M1Rjg7MTEwQiAxMTY3IDExQjM7CitDNUY5O0M1Rjk7MTEwQiAxMTY3IDExQjQ7QzVGOTsxMTBCIDExNjcgMTFCNDsKK0M1RkE7QzVGQTsxMTBCIDExNjcgMTFCNTtDNUZBOzExMEIgMTE2NyAxMUI1OworQzVGQjtDNUZCOzExMEIgMTE2NyAxMUI2O0M1RkI7MTEwQiAxMTY3IDExQjY7CitDNUZDO0M1RkM7MTEwQiAxMTY3IDExQjc7QzVGQzsxMTBCIDExNjcgMTFCNzsKK0M1RkQ7QzVGRDsxMTBCIDExNjcgMTFCODtDNUZEOzExMEIgMTE2NyAxMUI4OworQzVGRTtDNUZFOzExMEIgMTE2NyAxMUI5O0M1RkU7MTEwQiAxMTY3IDExQjk7CitDNUZGO0M1RkY7MTEwQiAxMTY3IDExQkE7QzVGRjsxMTBCIDExNjcgMTFCQTsKK0M2MDA7QzYwMDsxMTBCIDExNjcgMTFCQjtDNjAwOzExMEIgMTE2NyAxMUJCOworQzYwMTtDNjAxOzExMEIgMTE2NyAxMUJDO0M2MDE7MTEwQiAxMTY3IDExQkM7CitDNjAyO0M2MDI7MTEwQiAxMTY3IDExQkQ7QzYwMjsxMTBCIDExNjcgMTFCRDsKK0M2MDM7QzYwMzsxMTBCIDExNjcgMTFCRTtDNjAzOzExMEIgMTE2NyAxMUJFOworQzYwNDtDNjA0OzExMEIgMTE2NyAxMUJGO0M2MDQ7MTEwQiAxMTY3IDExQkY7CitDNjA1O0M2MDU7MTEwQiAxMTY3IDExQzA7QzYwNTsxMTBCIDExNjcgMTFDMDsKK0M2MDY7QzYwNjsxMTBCIDExNjcgMTFDMTtDNjA2OzExMEIgMTE2NyAxMUMxOworQzYwNztDNjA3OzExMEIgMTE2NyAxMUMyO0M2MDc7MTEwQiAxMTY3IDExQzI7CitDNjA4O0M2MDg7MTEwQiAxMTY4O0M2MDg7MTEwQiAxMTY4OworQzYwOTtDNjA5OzExMEIgMTE2OCAxMUE4O0M2MDk7MTEwQiAxMTY4IDExQTg7CitDNjBBO0M2MEE7MTEwQiAxMTY4IDExQTk7QzYwQTsxMTBCIDExNjggMTFBOTsKK0M2MEI7QzYwQjsxMTBCIDExNjggMTFBQTtDNjBCOzExMEIgMTE2OCAxMUFBOworQzYwQztDNjBDOzExMEIgMTE2OCAxMUFCO0M2MEM7MTEwQiAxMTY4IDExQUI7CitDNjBEO0M2MEQ7MTEwQiAxMTY4IDExQUM7QzYwRDsxMTBCIDExNjggMTFBQzsKK0M2MEU7QzYwRTsxMTBCIDExNjggMTFBRDtDNjBFOzExMEIgMTE2OCAxMUFEOworQzYwRjtDNjBGOzExMEIgMTE2OCAxMUFFO0M2MEY7MTEwQiAxMTY4IDExQUU7CitDNjEwO0M2MTA7MTEwQiAxMTY4IDExQUY7QzYxMDsxMTBCIDExNjggMTFBRjsKK0M2MTE7QzYxMTsxMTBCIDExNjggMTFCMDtDNjExOzExMEIgMTE2OCAxMUIwOworQzYxMjtDNjEyOzExMEIgMTE2OCAxMUIxO0M2MTI7MTEwQiAxMTY4IDExQjE7CitDNjEzO0M2MTM7MTEwQiAxMTY4IDExQjI7QzYxMzsxMTBCIDExNjggMTFCMjsKK0M2MTQ7QzYxNDsxMTBCIDExNjggMTFCMztDNjE0OzExMEIgMTE2OCAxMUIzOworQzYxNTtDNjE1OzExMEIgMTE2OCAxMUI0O0M2MTU7MTEwQiAxMTY4IDExQjQ7CitDNjE2O0M2MTY7MTEwQiAxMTY4IDExQjU7QzYxNjsxMTBCIDExNjggMTFCNTsKK0M2MTc7QzYxNzsxMTBCIDExNjggMTFCNjtDNjE3OzExMEIgMTE2OCAxMUI2OworQzYxODtDNjE4OzExMEIgMTE2OCAxMUI3O0M2MTg7MTEwQiAxMTY4IDExQjc7CitDNjE5O0M2MTk7MTEwQiAxMTY4IDExQjg7QzYxOTsxMTBCIDExNjggMTFCODsKK0M2MUE7QzYxQTsxMTBCIDExNjggMTFCOTtDNjFBOzExMEIgMTE2OCAxMUI5OworQzYxQjtDNjFCOzExMEIgMTE2OCAxMUJBO0M2MUI7MTEwQiAxMTY4IDExQkE7CitDNjFDO0M2MUM7MTEwQiAxMTY4IDExQkI7QzYxQzsxMTBCIDExNjggMTFCQjsKK0M2MUQ7QzYxRDsxMTBCIDExNjggMTFCQztDNjFEOzExMEIgMTE2OCAxMUJDOworQzYxRTtDNjFFOzExMEIgMTE2OCAxMUJEO0M2MUU7MTEwQiAxMTY4IDExQkQ7CitDNjFGO0M2MUY7MTEwQiAxMTY4IDExQkU7QzYxRjsxMTBCIDExNjggMTFCRTsKK0M2MjA7QzYyMDsxMTBCIDExNjggMTFCRjtDNjIwOzExMEIgMTE2OCAxMUJGOworQzYyMTtDNjIxOzExMEIgMTE2OCAxMUMwO0M2MjE7MTEwQiAxMTY4IDExQzA7CitDNjIyO0M2MjI7MTEwQiAxMTY4IDExQzE7QzYyMjsxMTBCIDExNjggMTFDMTsKK0M2MjM7QzYyMzsxMTBCIDExNjggMTFDMjtDNjIzOzExMEIgMTE2OCAxMUMyOworQzYyNDtDNjI0OzExMEIgMTE2OTtDNjI0OzExMEIgMTE2OTsKK0M2MjU7QzYyNTsxMTBCIDExNjkgMTFBODtDNjI1OzExMEIgMTE2OSAxMUE4OworQzYyNjtDNjI2OzExMEIgMTE2OSAxMUE5O0M2MjY7MTEwQiAxMTY5IDExQTk7CitDNjI3O0M2Mjc7MTEwQiAxMTY5IDExQUE7QzYyNzsxMTBCIDExNjkgMTFBQTsKK0M2Mjg7QzYyODsxMTBCIDExNjkgMTFBQjtDNjI4OzExMEIgMTE2OSAxMUFCOworQzYyOTtDNjI5OzExMEIgMTE2OSAxMUFDO0M2Mjk7MTEwQiAxMTY5IDExQUM7CitDNjJBO0M2MkE7MTEwQiAxMTY5IDExQUQ7QzYyQTsxMTBCIDExNjkgMTFBRDsKK0M2MkI7QzYyQjsxMTBCIDExNjkgMTFBRTtDNjJCOzExMEIgMTE2OSAxMUFFOworQzYyQztDNjJDOzExMEIgMTE2OSAxMUFGO0M2MkM7MTEwQiAxMTY5IDExQUY7CitDNjJEO0M2MkQ7MTEwQiAxMTY5IDExQjA7QzYyRDsxMTBCIDExNjkgMTFCMDsKK0M2MkU7QzYyRTsxMTBCIDExNjkgMTFCMTtDNjJFOzExMEIgMTE2OSAxMUIxOworQzYyRjtDNjJGOzExMEIgMTE2OSAxMUIyO0M2MkY7MTEwQiAxMTY5IDExQjI7CitDNjMwO0M2MzA7MTEwQiAxMTY5IDExQjM7QzYzMDsxMTBCIDExNjkgMTFCMzsKK0M2MzE7QzYzMTsxMTBCIDExNjkgMTFCNDtDNjMxOzExMEIgMTE2OSAxMUI0OworQzYzMjtDNjMyOzExMEIgMTE2OSAxMUI1O0M2MzI7MTEwQiAxMTY5IDExQjU7CitDNjMzO0M2MzM7MTEwQiAxMTY5IDExQjY7QzYzMzsxMTBCIDExNjkgMTFCNjsKK0M2MzQ7QzYzNDsxMTBCIDExNjkgMTFCNztDNjM0OzExMEIgMTE2OSAxMUI3OworQzYzNTtDNjM1OzExMEIgMTE2OSAxMUI4O0M2MzU7MTEwQiAxMTY5IDExQjg7CitDNjM2O0M2MzY7MTEwQiAxMTY5IDExQjk7QzYzNjsxMTBCIDExNjkgMTFCOTsKK0M2Mzc7QzYzNzsxMTBCIDExNjkgMTFCQTtDNjM3OzExMEIgMTE2OSAxMUJBOworQzYzODtDNjM4OzExMEIgMTE2OSAxMUJCO0M2Mzg7MTEwQiAxMTY5IDExQkI7CitDNjM5O0M2Mzk7MTEwQiAxMTY5IDExQkM7QzYzOTsxMTBCIDExNjkgMTFCQzsKK0M2M0E7QzYzQTsxMTBCIDExNjkgMTFCRDtDNjNBOzExMEIgMTE2OSAxMUJEOworQzYzQjtDNjNCOzExMEIgMTE2OSAxMUJFO0M2M0I7MTEwQiAxMTY5IDExQkU7CitDNjNDO0M2M0M7MTEwQiAxMTY5IDExQkY7QzYzQzsxMTBCIDExNjkgMTFCRjsKK0M2M0Q7QzYzRDsxMTBCIDExNjkgMTFDMDtDNjNEOzExMEIgMTE2OSAxMUMwOworQzYzRTtDNjNFOzExMEIgMTE2OSAxMUMxO0M2M0U7MTEwQiAxMTY5IDExQzE7CitDNjNGO0M2M0Y7MTEwQiAxMTY5IDExQzI7QzYzRjsxMTBCIDExNjkgMTFDMjsKK0M2NDA7QzY0MDsxMTBCIDExNkE7QzY0MDsxMTBCIDExNkE7CitDNjQxO0M2NDE7MTEwQiAxMTZBIDExQTg7QzY0MTsxMTBCIDExNkEgMTFBODsKK0M2NDI7QzY0MjsxMTBCIDExNkEgMTFBOTtDNjQyOzExMEIgMTE2QSAxMUE5OworQzY0MztDNjQzOzExMEIgMTE2QSAxMUFBO0M2NDM7MTEwQiAxMTZBIDExQUE7CitDNjQ0O0M2NDQ7MTEwQiAxMTZBIDExQUI7QzY0NDsxMTBCIDExNkEgMTFBQjsKK0M2NDU7QzY0NTsxMTBCIDExNkEgMTFBQztDNjQ1OzExMEIgMTE2QSAxMUFDOworQzY0NjtDNjQ2OzExMEIgMTE2QSAxMUFEO0M2NDY7MTEwQiAxMTZBIDExQUQ7CitDNjQ3O0M2NDc7MTEwQiAxMTZBIDExQUU7QzY0NzsxMTBCIDExNkEgMTFBRTsKK0M2NDg7QzY0ODsxMTBCIDExNkEgMTFBRjtDNjQ4OzExMEIgMTE2QSAxMUFGOworQzY0OTtDNjQ5OzExMEIgMTE2QSAxMUIwO0M2NDk7MTEwQiAxMTZBIDExQjA7CitDNjRBO0M2NEE7MTEwQiAxMTZBIDExQjE7QzY0QTsxMTBCIDExNkEgMTFCMTsKK0M2NEI7QzY0QjsxMTBCIDExNkEgMTFCMjtDNjRCOzExMEIgMTE2QSAxMUIyOworQzY0QztDNjRDOzExMEIgMTE2QSAxMUIzO0M2NEM7MTEwQiAxMTZBIDExQjM7CitDNjREO0M2NEQ7MTEwQiAxMTZBIDExQjQ7QzY0RDsxMTBCIDExNkEgMTFCNDsKK0M2NEU7QzY0RTsxMTBCIDExNkEgMTFCNTtDNjRFOzExMEIgMTE2QSAxMUI1OworQzY0RjtDNjRGOzExMEIgMTE2QSAxMUI2O0M2NEY7MTEwQiAxMTZBIDExQjY7CitDNjUwO0M2NTA7MTEwQiAxMTZBIDExQjc7QzY1MDsxMTBCIDExNkEgMTFCNzsKK0M2NTE7QzY1MTsxMTBCIDExNkEgMTFCODtDNjUxOzExMEIgMTE2QSAxMUI4OworQzY1MjtDNjUyOzExMEIgMTE2QSAxMUI5O0M2NTI7MTEwQiAxMTZBIDExQjk7CitDNjUzO0M2NTM7MTEwQiAxMTZBIDExQkE7QzY1MzsxMTBCIDExNkEgMTFCQTsKK0M2NTQ7QzY1NDsxMTBCIDExNkEgMTFCQjtDNjU0OzExMEIgMTE2QSAxMUJCOworQzY1NTtDNjU1OzExMEIgMTE2QSAxMUJDO0M2NTU7MTEwQiAxMTZBIDExQkM7CitDNjU2O0M2NTY7MTEwQiAxMTZBIDExQkQ7QzY1NjsxMTBCIDExNkEgMTFCRDsKK0M2NTc7QzY1NzsxMTBCIDExNkEgMTFCRTtDNjU3OzExMEIgMTE2QSAxMUJFOworQzY1ODtDNjU4OzExMEIgMTE2QSAxMUJGO0M2NTg7MTEwQiAxMTZBIDExQkY7CitDNjU5O0M2NTk7MTEwQiAxMTZBIDExQzA7QzY1OTsxMTBCIDExNkEgMTFDMDsKK0M2NUE7QzY1QTsxMTBCIDExNkEgMTFDMTtDNjVBOzExMEIgMTE2QSAxMUMxOworQzY1QjtDNjVCOzExMEIgMTE2QSAxMUMyO0M2NUI7MTEwQiAxMTZBIDExQzI7CitDNjVDO0M2NUM7MTEwQiAxMTZCO0M2NUM7MTEwQiAxMTZCOworQzY1RDtDNjVEOzExMEIgMTE2QiAxMUE4O0M2NUQ7MTEwQiAxMTZCIDExQTg7CitDNjVFO0M2NUU7MTEwQiAxMTZCIDExQTk7QzY1RTsxMTBCIDExNkIgMTFBOTsKK0M2NUY7QzY1RjsxMTBCIDExNkIgMTFBQTtDNjVGOzExMEIgMTE2QiAxMUFBOworQzY2MDtDNjYwOzExMEIgMTE2QiAxMUFCO0M2NjA7MTEwQiAxMTZCIDExQUI7CitDNjYxO0M2NjE7MTEwQiAxMTZCIDExQUM7QzY2MTsxMTBCIDExNkIgMTFBQzsKK0M2NjI7QzY2MjsxMTBCIDExNkIgMTFBRDtDNjYyOzExMEIgMTE2QiAxMUFEOworQzY2MztDNjYzOzExMEIgMTE2QiAxMUFFO0M2NjM7MTEwQiAxMTZCIDExQUU7CitDNjY0O0M2NjQ7MTEwQiAxMTZCIDExQUY7QzY2NDsxMTBCIDExNkIgMTFBRjsKK0M2NjU7QzY2NTsxMTBCIDExNkIgMTFCMDtDNjY1OzExMEIgMTE2QiAxMUIwOworQzY2NjtDNjY2OzExMEIgMTE2QiAxMUIxO0M2NjY7MTEwQiAxMTZCIDExQjE7CitDNjY3O0M2Njc7MTEwQiAxMTZCIDExQjI7QzY2NzsxMTBCIDExNkIgMTFCMjsKK0M2Njg7QzY2ODsxMTBCIDExNkIgMTFCMztDNjY4OzExMEIgMTE2QiAxMUIzOworQzY2OTtDNjY5OzExMEIgMTE2QiAxMUI0O0M2Njk7MTEwQiAxMTZCIDExQjQ7CitDNjZBO0M2NkE7MTEwQiAxMTZCIDExQjU7QzY2QTsxMTBCIDExNkIgMTFCNTsKK0M2NkI7QzY2QjsxMTBCIDExNkIgMTFCNjtDNjZCOzExMEIgMTE2QiAxMUI2OworQzY2QztDNjZDOzExMEIgMTE2QiAxMUI3O0M2NkM7MTEwQiAxMTZCIDExQjc7CitDNjZEO0M2NkQ7MTEwQiAxMTZCIDExQjg7QzY2RDsxMTBCIDExNkIgMTFCODsKK0M2NkU7QzY2RTsxMTBCIDExNkIgMTFCOTtDNjZFOzExMEIgMTE2QiAxMUI5OworQzY2RjtDNjZGOzExMEIgMTE2QiAxMUJBO0M2NkY7MTEwQiAxMTZCIDExQkE7CitDNjcwO0M2NzA7MTEwQiAxMTZCIDExQkI7QzY3MDsxMTBCIDExNkIgMTFCQjsKK0M2NzE7QzY3MTsxMTBCIDExNkIgMTFCQztDNjcxOzExMEIgMTE2QiAxMUJDOworQzY3MjtDNjcyOzExMEIgMTE2QiAxMUJEO0M2NzI7MTEwQiAxMTZCIDExQkQ7CitDNjczO0M2NzM7MTEwQiAxMTZCIDExQkU7QzY3MzsxMTBCIDExNkIgMTFCRTsKK0M2NzQ7QzY3NDsxMTBCIDExNkIgMTFCRjtDNjc0OzExMEIgMTE2QiAxMUJGOworQzY3NTtDNjc1OzExMEIgMTE2QiAxMUMwO0M2NzU7MTEwQiAxMTZCIDExQzA7CitDNjc2O0M2NzY7MTEwQiAxMTZCIDExQzE7QzY3NjsxMTBCIDExNkIgMTFDMTsKK0M2Nzc7QzY3NzsxMTBCIDExNkIgMTFDMjtDNjc3OzExMEIgMTE2QiAxMUMyOworQzY3ODtDNjc4OzExMEIgMTE2QztDNjc4OzExMEIgMTE2QzsKK0M2Nzk7QzY3OTsxMTBCIDExNkMgMTFBODtDNjc5OzExMEIgMTE2QyAxMUE4OworQzY3QTtDNjdBOzExMEIgMTE2QyAxMUE5O0M2N0E7MTEwQiAxMTZDIDExQTk7CitDNjdCO0M2N0I7MTEwQiAxMTZDIDExQUE7QzY3QjsxMTBCIDExNkMgMTFBQTsKK0M2N0M7QzY3QzsxMTBCIDExNkMgMTFBQjtDNjdDOzExMEIgMTE2QyAxMUFCOworQzY3RDtDNjdEOzExMEIgMTE2QyAxMUFDO0M2N0Q7MTEwQiAxMTZDIDExQUM7CitDNjdFO0M2N0U7MTEwQiAxMTZDIDExQUQ7QzY3RTsxMTBCIDExNkMgMTFBRDsKK0M2N0Y7QzY3RjsxMTBCIDExNkMgMTFBRTtDNjdGOzExMEIgMTE2QyAxMUFFOworQzY4MDtDNjgwOzExMEIgMTE2QyAxMUFGO0M2ODA7MTEwQiAxMTZDIDExQUY7CitDNjgxO0M2ODE7MTEwQiAxMTZDIDExQjA7QzY4MTsxMTBCIDExNkMgMTFCMDsKK0M2ODI7QzY4MjsxMTBCIDExNkMgMTFCMTtDNjgyOzExMEIgMTE2QyAxMUIxOworQzY4MztDNjgzOzExMEIgMTE2QyAxMUIyO0M2ODM7MTEwQiAxMTZDIDExQjI7CitDNjg0O0M2ODQ7MTEwQiAxMTZDIDExQjM7QzY4NDsxMTBCIDExNkMgMTFCMzsKK0M2ODU7QzY4NTsxMTBCIDExNkMgMTFCNDtDNjg1OzExMEIgMTE2QyAxMUI0OworQzY4NjtDNjg2OzExMEIgMTE2QyAxMUI1O0M2ODY7MTEwQiAxMTZDIDExQjU7CitDNjg3O0M2ODc7MTEwQiAxMTZDIDExQjY7QzY4NzsxMTBCIDExNkMgMTFCNjsKK0M2ODg7QzY4ODsxMTBCIDExNkMgMTFCNztDNjg4OzExMEIgMTE2QyAxMUI3OworQzY4OTtDNjg5OzExMEIgMTE2QyAxMUI4O0M2ODk7MTEwQiAxMTZDIDExQjg7CitDNjhBO0M2OEE7MTEwQiAxMTZDIDExQjk7QzY4QTsxMTBCIDExNkMgMTFCOTsKK0M2OEI7QzY4QjsxMTBCIDExNkMgMTFCQTtDNjhCOzExMEIgMTE2QyAxMUJBOworQzY4QztDNjhDOzExMEIgMTE2QyAxMUJCO0M2OEM7MTEwQiAxMTZDIDExQkI7CitDNjhEO0M2OEQ7MTEwQiAxMTZDIDExQkM7QzY4RDsxMTBCIDExNkMgMTFCQzsKK0M2OEU7QzY4RTsxMTBCIDExNkMgMTFCRDtDNjhFOzExMEIgMTE2QyAxMUJEOworQzY4RjtDNjhGOzExMEIgMTE2QyAxMUJFO0M2OEY7MTEwQiAxMTZDIDExQkU7CitDNjkwO0M2OTA7MTEwQiAxMTZDIDExQkY7QzY5MDsxMTBCIDExNkMgMTFCRjsKK0M2OTE7QzY5MTsxMTBCIDExNkMgMTFDMDtDNjkxOzExMEIgMTE2QyAxMUMwOworQzY5MjtDNjkyOzExMEIgMTE2QyAxMUMxO0M2OTI7MTEwQiAxMTZDIDExQzE7CitDNjkzO0M2OTM7MTEwQiAxMTZDIDExQzI7QzY5MzsxMTBCIDExNkMgMTFDMjsKK0M2OTQ7QzY5NDsxMTBCIDExNkQ7QzY5NDsxMTBCIDExNkQ7CitDNjk1O0M2OTU7MTEwQiAxMTZEIDExQTg7QzY5NTsxMTBCIDExNkQgMTFBODsKK0M2OTY7QzY5NjsxMTBCIDExNkQgMTFBOTtDNjk2OzExMEIgMTE2RCAxMUE5OworQzY5NztDNjk3OzExMEIgMTE2RCAxMUFBO0M2OTc7MTEwQiAxMTZEIDExQUE7CitDNjk4O0M2OTg7MTEwQiAxMTZEIDExQUI7QzY5ODsxMTBCIDExNkQgMTFBQjsKK0M2OTk7QzY5OTsxMTBCIDExNkQgMTFBQztDNjk5OzExMEIgMTE2RCAxMUFDOworQzY5QTtDNjlBOzExMEIgMTE2RCAxMUFEO0M2OUE7MTEwQiAxMTZEIDExQUQ7CitDNjlCO0M2OUI7MTEwQiAxMTZEIDExQUU7QzY5QjsxMTBCIDExNkQgMTFBRTsKK0M2OUM7QzY5QzsxMTBCIDExNkQgMTFBRjtDNjlDOzExMEIgMTE2RCAxMUFGOworQzY5RDtDNjlEOzExMEIgMTE2RCAxMUIwO0M2OUQ7MTEwQiAxMTZEIDExQjA7CitDNjlFO0M2OUU7MTEwQiAxMTZEIDExQjE7QzY5RTsxMTBCIDExNkQgMTFCMTsKK0M2OUY7QzY5RjsxMTBCIDExNkQgMTFCMjtDNjlGOzExMEIgMTE2RCAxMUIyOworQzZBMDtDNkEwOzExMEIgMTE2RCAxMUIzO0M2QTA7MTEwQiAxMTZEIDExQjM7CitDNkExO0M2QTE7MTEwQiAxMTZEIDExQjQ7QzZBMTsxMTBCIDExNkQgMTFCNDsKK0M2QTI7QzZBMjsxMTBCIDExNkQgMTFCNTtDNkEyOzExMEIgMTE2RCAxMUI1OworQzZBMztDNkEzOzExMEIgMTE2RCAxMUI2O0M2QTM7MTEwQiAxMTZEIDExQjY7CitDNkE0O0M2QTQ7MTEwQiAxMTZEIDExQjc7QzZBNDsxMTBCIDExNkQgMTFCNzsKK0M2QTU7QzZBNTsxMTBCIDExNkQgMTFCODtDNkE1OzExMEIgMTE2RCAxMUI4OworQzZBNjtDNkE2OzExMEIgMTE2RCAxMUI5O0M2QTY7MTEwQiAxMTZEIDExQjk7CitDNkE3O0M2QTc7MTEwQiAxMTZEIDExQkE7QzZBNzsxMTBCIDExNkQgMTFCQTsKK0M2QTg7QzZBODsxMTBCIDExNkQgMTFCQjtDNkE4OzExMEIgMTE2RCAxMUJCOworQzZBOTtDNkE5OzExMEIgMTE2RCAxMUJDO0M2QTk7MTEwQiAxMTZEIDExQkM7CitDNkFBO0M2QUE7MTEwQiAxMTZEIDExQkQ7QzZBQTsxMTBCIDExNkQgMTFCRDsKK0M2QUI7QzZBQjsxMTBCIDExNkQgMTFCRTtDNkFCOzExMEIgMTE2RCAxMUJFOworQzZBQztDNkFDOzExMEIgMTE2RCAxMUJGO0M2QUM7MTEwQiAxMTZEIDExQkY7CitDNkFEO0M2QUQ7MTEwQiAxMTZEIDExQzA7QzZBRDsxMTBCIDExNkQgMTFDMDsKK0M2QUU7QzZBRTsxMTBCIDExNkQgMTFDMTtDNkFFOzExMEIgMTE2RCAxMUMxOworQzZBRjtDNkFGOzExMEIgMTE2RCAxMUMyO0M2QUY7MTEwQiAxMTZEIDExQzI7CitDNkIwO0M2QjA7MTEwQiAxMTZFO0M2QjA7MTEwQiAxMTZFOworQzZCMTtDNkIxOzExMEIgMTE2RSAxMUE4O0M2QjE7MTEwQiAxMTZFIDExQTg7CitDNkIyO0M2QjI7MTEwQiAxMTZFIDExQTk7QzZCMjsxMTBCIDExNkUgMTFBOTsKK0M2QjM7QzZCMzsxMTBCIDExNkUgMTFBQTtDNkIzOzExMEIgMTE2RSAxMUFBOworQzZCNDtDNkI0OzExMEIgMTE2RSAxMUFCO0M2QjQ7MTEwQiAxMTZFIDExQUI7CitDNkI1O0M2QjU7MTEwQiAxMTZFIDExQUM7QzZCNTsxMTBCIDExNkUgMTFBQzsKK0M2QjY7QzZCNjsxMTBCIDExNkUgMTFBRDtDNkI2OzExMEIgMTE2RSAxMUFEOworQzZCNztDNkI3OzExMEIgMTE2RSAxMUFFO0M2Qjc7MTEwQiAxMTZFIDExQUU7CitDNkI4O0M2Qjg7MTEwQiAxMTZFIDExQUY7QzZCODsxMTBCIDExNkUgMTFBRjsKK0M2Qjk7QzZCOTsxMTBCIDExNkUgMTFCMDtDNkI5OzExMEIgMTE2RSAxMUIwOworQzZCQTtDNkJBOzExMEIgMTE2RSAxMUIxO0M2QkE7MTEwQiAxMTZFIDExQjE7CitDNkJCO0M2QkI7MTEwQiAxMTZFIDExQjI7QzZCQjsxMTBCIDExNkUgMTFCMjsKK0M2QkM7QzZCQzsxMTBCIDExNkUgMTFCMztDNkJDOzExMEIgMTE2RSAxMUIzOworQzZCRDtDNkJEOzExMEIgMTE2RSAxMUI0O0M2QkQ7MTEwQiAxMTZFIDExQjQ7CitDNkJFO0M2QkU7MTEwQiAxMTZFIDExQjU7QzZCRTsxMTBCIDExNkUgMTFCNTsKK0M2QkY7QzZCRjsxMTBCIDExNkUgMTFCNjtDNkJGOzExMEIgMTE2RSAxMUI2OworQzZDMDtDNkMwOzExMEIgMTE2RSAxMUI3O0M2QzA7MTEwQiAxMTZFIDExQjc7CitDNkMxO0M2QzE7MTEwQiAxMTZFIDExQjg7QzZDMTsxMTBCIDExNkUgMTFCODsKK0M2QzI7QzZDMjsxMTBCIDExNkUgMTFCOTtDNkMyOzExMEIgMTE2RSAxMUI5OworQzZDMztDNkMzOzExMEIgMTE2RSAxMUJBO0M2QzM7MTEwQiAxMTZFIDExQkE7CitDNkM0O0M2QzQ7MTEwQiAxMTZFIDExQkI7QzZDNDsxMTBCIDExNkUgMTFCQjsKK0M2QzU7QzZDNTsxMTBCIDExNkUgMTFCQztDNkM1OzExMEIgMTE2RSAxMUJDOworQzZDNjtDNkM2OzExMEIgMTE2RSAxMUJEO0M2QzY7MTEwQiAxMTZFIDExQkQ7CitDNkM3O0M2Qzc7MTEwQiAxMTZFIDExQkU7QzZDNzsxMTBCIDExNkUgMTFCRTsKK0M2Qzg7QzZDODsxMTBCIDExNkUgMTFCRjtDNkM4OzExMEIgMTE2RSAxMUJGOworQzZDOTtDNkM5OzExMEIgMTE2RSAxMUMwO0M2Qzk7MTEwQiAxMTZFIDExQzA7CitDNkNBO0M2Q0E7MTEwQiAxMTZFIDExQzE7QzZDQTsxMTBCIDExNkUgMTFDMTsKK0M2Q0I7QzZDQjsxMTBCIDExNkUgMTFDMjtDNkNCOzExMEIgMTE2RSAxMUMyOworQzZDQztDNkNDOzExMEIgMTE2RjtDNkNDOzExMEIgMTE2RjsKK0M2Q0Q7QzZDRDsxMTBCIDExNkYgMTFBODtDNkNEOzExMEIgMTE2RiAxMUE4OworQzZDRTtDNkNFOzExMEIgMTE2RiAxMUE5O0M2Q0U7MTEwQiAxMTZGIDExQTk7CitDNkNGO0M2Q0Y7MTEwQiAxMTZGIDExQUE7QzZDRjsxMTBCIDExNkYgMTFBQTsKK0M2RDA7QzZEMDsxMTBCIDExNkYgMTFBQjtDNkQwOzExMEIgMTE2RiAxMUFCOworQzZEMTtDNkQxOzExMEIgMTE2RiAxMUFDO0M2RDE7MTEwQiAxMTZGIDExQUM7CitDNkQyO0M2RDI7MTEwQiAxMTZGIDExQUQ7QzZEMjsxMTBCIDExNkYgMTFBRDsKK0M2RDM7QzZEMzsxMTBCIDExNkYgMTFBRTtDNkQzOzExMEIgMTE2RiAxMUFFOworQzZENDtDNkQ0OzExMEIgMTE2RiAxMUFGO0M2RDQ7MTEwQiAxMTZGIDExQUY7CitDNkQ1O0M2RDU7MTEwQiAxMTZGIDExQjA7QzZENTsxMTBCIDExNkYgMTFCMDsKK0M2RDY7QzZENjsxMTBCIDExNkYgMTFCMTtDNkQ2OzExMEIgMTE2RiAxMUIxOworQzZENztDNkQ3OzExMEIgMTE2RiAxMUIyO0M2RDc7MTEwQiAxMTZGIDExQjI7CitDNkQ4O0M2RDg7MTEwQiAxMTZGIDExQjM7QzZEODsxMTBCIDExNkYgMTFCMzsKK0M2RDk7QzZEOTsxMTBCIDExNkYgMTFCNDtDNkQ5OzExMEIgMTE2RiAxMUI0OworQzZEQTtDNkRBOzExMEIgMTE2RiAxMUI1O0M2REE7MTEwQiAxMTZGIDExQjU7CitDNkRCO0M2REI7MTEwQiAxMTZGIDExQjY7QzZEQjsxMTBCIDExNkYgMTFCNjsKK0M2REM7QzZEQzsxMTBCIDExNkYgMTFCNztDNkRDOzExMEIgMTE2RiAxMUI3OworQzZERDtDNkREOzExMEIgMTE2RiAxMUI4O0M2REQ7MTEwQiAxMTZGIDExQjg7CitDNkRFO0M2REU7MTEwQiAxMTZGIDExQjk7QzZERTsxMTBCIDExNkYgMTFCOTsKK0M2REY7QzZERjsxMTBCIDExNkYgMTFCQTtDNkRGOzExMEIgMTE2RiAxMUJBOworQzZFMDtDNkUwOzExMEIgMTE2RiAxMUJCO0M2RTA7MTEwQiAxMTZGIDExQkI7CitDNkUxO0M2RTE7MTEwQiAxMTZGIDExQkM7QzZFMTsxMTBCIDExNkYgMTFCQzsKK0M2RTI7QzZFMjsxMTBCIDExNkYgMTFCRDtDNkUyOzExMEIgMTE2RiAxMUJEOworQzZFMztDNkUzOzExMEIgMTE2RiAxMUJFO0M2RTM7MTEwQiAxMTZGIDExQkU7CitDNkU0O0M2RTQ7MTEwQiAxMTZGIDExQkY7QzZFNDsxMTBCIDExNkYgMTFCRjsKK0M2RTU7QzZFNTsxMTBCIDExNkYgMTFDMDtDNkU1OzExMEIgMTE2RiAxMUMwOworQzZFNjtDNkU2OzExMEIgMTE2RiAxMUMxO0M2RTY7MTEwQiAxMTZGIDExQzE7CitDNkU3O0M2RTc7MTEwQiAxMTZGIDExQzI7QzZFNzsxMTBCIDExNkYgMTFDMjsKK0M2RTg7QzZFODsxMTBCIDExNzA7QzZFODsxMTBCIDExNzA7CitDNkU5O0M2RTk7MTEwQiAxMTcwIDExQTg7QzZFOTsxMTBCIDExNzAgMTFBODsKK0M2RUE7QzZFQTsxMTBCIDExNzAgMTFBOTtDNkVBOzExMEIgMTE3MCAxMUE5OworQzZFQjtDNkVCOzExMEIgMTE3MCAxMUFBO0M2RUI7MTEwQiAxMTcwIDExQUE7CitDNkVDO0M2RUM7MTEwQiAxMTcwIDExQUI7QzZFQzsxMTBCIDExNzAgMTFBQjsKK0M2RUQ7QzZFRDsxMTBCIDExNzAgMTFBQztDNkVEOzExMEIgMTE3MCAxMUFDOworQzZFRTtDNkVFOzExMEIgMTE3MCAxMUFEO0M2RUU7MTEwQiAxMTcwIDExQUQ7CitDNkVGO0M2RUY7MTEwQiAxMTcwIDExQUU7QzZFRjsxMTBCIDExNzAgMTFBRTsKK0M2RjA7QzZGMDsxMTBCIDExNzAgMTFBRjtDNkYwOzExMEIgMTE3MCAxMUFGOworQzZGMTtDNkYxOzExMEIgMTE3MCAxMUIwO0M2RjE7MTEwQiAxMTcwIDExQjA7CitDNkYyO0M2RjI7MTEwQiAxMTcwIDExQjE7QzZGMjsxMTBCIDExNzAgMTFCMTsKK0M2RjM7QzZGMzsxMTBCIDExNzAgMTFCMjtDNkYzOzExMEIgMTE3MCAxMUIyOworQzZGNDtDNkY0OzExMEIgMTE3MCAxMUIzO0M2RjQ7MTEwQiAxMTcwIDExQjM7CitDNkY1O0M2RjU7MTEwQiAxMTcwIDExQjQ7QzZGNTsxMTBCIDExNzAgMTFCNDsKK0M2RjY7QzZGNjsxMTBCIDExNzAgMTFCNTtDNkY2OzExMEIgMTE3MCAxMUI1OworQzZGNztDNkY3OzExMEIgMTE3MCAxMUI2O0M2Rjc7MTEwQiAxMTcwIDExQjY7CitDNkY4O0M2Rjg7MTEwQiAxMTcwIDExQjc7QzZGODsxMTBCIDExNzAgMTFCNzsKK0M2Rjk7QzZGOTsxMTBCIDExNzAgMTFCODtDNkY5OzExMEIgMTE3MCAxMUI4OworQzZGQTtDNkZBOzExMEIgMTE3MCAxMUI5O0M2RkE7MTEwQiAxMTcwIDExQjk7CitDNkZCO0M2RkI7MTEwQiAxMTcwIDExQkE7QzZGQjsxMTBCIDExNzAgMTFCQTsKK0M2RkM7QzZGQzsxMTBCIDExNzAgMTFCQjtDNkZDOzExMEIgMTE3MCAxMUJCOworQzZGRDtDNkZEOzExMEIgMTE3MCAxMUJDO0M2RkQ7MTEwQiAxMTcwIDExQkM7CitDNkZFO0M2RkU7MTEwQiAxMTcwIDExQkQ7QzZGRTsxMTBCIDExNzAgMTFCRDsKK0M2RkY7QzZGRjsxMTBCIDExNzAgMTFCRTtDNkZGOzExMEIgMTE3MCAxMUJFOworQzcwMDtDNzAwOzExMEIgMTE3MCAxMUJGO0M3MDA7MTEwQiAxMTcwIDExQkY7CitDNzAxO0M3MDE7MTEwQiAxMTcwIDExQzA7QzcwMTsxMTBCIDExNzAgMTFDMDsKK0M3MDI7QzcwMjsxMTBCIDExNzAgMTFDMTtDNzAyOzExMEIgMTE3MCAxMUMxOworQzcwMztDNzAzOzExMEIgMTE3MCAxMUMyO0M3MDM7MTEwQiAxMTcwIDExQzI7CitDNzA0O0M3MDQ7MTEwQiAxMTcxO0M3MDQ7MTEwQiAxMTcxOworQzcwNTtDNzA1OzExMEIgMTE3MSAxMUE4O0M3MDU7MTEwQiAxMTcxIDExQTg7CitDNzA2O0M3MDY7MTEwQiAxMTcxIDExQTk7QzcwNjsxMTBCIDExNzEgMTFBOTsKK0M3MDc7QzcwNzsxMTBCIDExNzEgMTFBQTtDNzA3OzExMEIgMTE3MSAxMUFBOworQzcwODtDNzA4OzExMEIgMTE3MSAxMUFCO0M3MDg7MTEwQiAxMTcxIDExQUI7CitDNzA5O0M3MDk7MTEwQiAxMTcxIDExQUM7QzcwOTsxMTBCIDExNzEgMTFBQzsKK0M3MEE7QzcwQTsxMTBCIDExNzEgMTFBRDtDNzBBOzExMEIgMTE3MSAxMUFEOworQzcwQjtDNzBCOzExMEIgMTE3MSAxMUFFO0M3MEI7MTEwQiAxMTcxIDExQUU7CitDNzBDO0M3MEM7MTEwQiAxMTcxIDExQUY7QzcwQzsxMTBCIDExNzEgMTFBRjsKK0M3MEQ7QzcwRDsxMTBCIDExNzEgMTFCMDtDNzBEOzExMEIgMTE3MSAxMUIwOworQzcwRTtDNzBFOzExMEIgMTE3MSAxMUIxO0M3MEU7MTEwQiAxMTcxIDExQjE7CitDNzBGO0M3MEY7MTEwQiAxMTcxIDExQjI7QzcwRjsxMTBCIDExNzEgMTFCMjsKK0M3MTA7QzcxMDsxMTBCIDExNzEgMTFCMztDNzEwOzExMEIgMTE3MSAxMUIzOworQzcxMTtDNzExOzExMEIgMTE3MSAxMUI0O0M3MTE7MTEwQiAxMTcxIDExQjQ7CitDNzEyO0M3MTI7MTEwQiAxMTcxIDExQjU7QzcxMjsxMTBCIDExNzEgMTFCNTsKK0M3MTM7QzcxMzsxMTBCIDExNzEgMTFCNjtDNzEzOzExMEIgMTE3MSAxMUI2OworQzcxNDtDNzE0OzExMEIgMTE3MSAxMUI3O0M3MTQ7MTEwQiAxMTcxIDExQjc7CitDNzE1O0M3MTU7MTEwQiAxMTcxIDExQjg7QzcxNTsxMTBCIDExNzEgMTFCODsKK0M3MTY7QzcxNjsxMTBCIDExNzEgMTFCOTtDNzE2OzExMEIgMTE3MSAxMUI5OworQzcxNztDNzE3OzExMEIgMTE3MSAxMUJBO0M3MTc7MTEwQiAxMTcxIDExQkE7CitDNzE4O0M3MTg7MTEwQiAxMTcxIDExQkI7QzcxODsxMTBCIDExNzEgMTFCQjsKK0M3MTk7QzcxOTsxMTBCIDExNzEgMTFCQztDNzE5OzExMEIgMTE3MSAxMUJDOworQzcxQTtDNzFBOzExMEIgMTE3MSAxMUJEO0M3MUE7MTEwQiAxMTcxIDExQkQ7CitDNzFCO0M3MUI7MTEwQiAxMTcxIDExQkU7QzcxQjsxMTBCIDExNzEgMTFCRTsKK0M3MUM7QzcxQzsxMTBCIDExNzEgMTFCRjtDNzFDOzExMEIgMTE3MSAxMUJGOworQzcxRDtDNzFEOzExMEIgMTE3MSAxMUMwO0M3MUQ7MTEwQiAxMTcxIDExQzA7CitDNzFFO0M3MUU7MTEwQiAxMTcxIDExQzE7QzcxRTsxMTBCIDExNzEgMTFDMTsKK0M3MUY7QzcxRjsxMTBCIDExNzEgMTFDMjtDNzFGOzExMEIgMTE3MSAxMUMyOworQzcyMDtDNzIwOzExMEIgMTE3MjtDNzIwOzExMEIgMTE3MjsKK0M3MjE7QzcyMTsxMTBCIDExNzIgMTFBODtDNzIxOzExMEIgMTE3MiAxMUE4OworQzcyMjtDNzIyOzExMEIgMTE3MiAxMUE5O0M3MjI7MTEwQiAxMTcyIDExQTk7CitDNzIzO0M3MjM7MTEwQiAxMTcyIDExQUE7QzcyMzsxMTBCIDExNzIgMTFBQTsKK0M3MjQ7QzcyNDsxMTBCIDExNzIgMTFBQjtDNzI0OzExMEIgMTE3MiAxMUFCOworQzcyNTtDNzI1OzExMEIgMTE3MiAxMUFDO0M3MjU7MTEwQiAxMTcyIDExQUM7CitDNzI2O0M3MjY7MTEwQiAxMTcyIDExQUQ7QzcyNjsxMTBCIDExNzIgMTFBRDsKK0M3Mjc7QzcyNzsxMTBCIDExNzIgMTFBRTtDNzI3OzExMEIgMTE3MiAxMUFFOworQzcyODtDNzI4OzExMEIgMTE3MiAxMUFGO0M3Mjg7MTEwQiAxMTcyIDExQUY7CitDNzI5O0M3Mjk7MTEwQiAxMTcyIDExQjA7QzcyOTsxMTBCIDExNzIgMTFCMDsKK0M3MkE7QzcyQTsxMTBCIDExNzIgMTFCMTtDNzJBOzExMEIgMTE3MiAxMUIxOworQzcyQjtDNzJCOzExMEIgMTE3MiAxMUIyO0M3MkI7MTEwQiAxMTcyIDExQjI7CitDNzJDO0M3MkM7MTEwQiAxMTcyIDExQjM7QzcyQzsxMTBCIDExNzIgMTFCMzsKK0M3MkQ7QzcyRDsxMTBCIDExNzIgMTFCNDtDNzJEOzExMEIgMTE3MiAxMUI0OworQzcyRTtDNzJFOzExMEIgMTE3MiAxMUI1O0M3MkU7MTEwQiAxMTcyIDExQjU7CitDNzJGO0M3MkY7MTEwQiAxMTcyIDExQjY7QzcyRjsxMTBCIDExNzIgMTFCNjsKK0M3MzA7QzczMDsxMTBCIDExNzIgMTFCNztDNzMwOzExMEIgMTE3MiAxMUI3OworQzczMTtDNzMxOzExMEIgMTE3MiAxMUI4O0M3MzE7MTEwQiAxMTcyIDExQjg7CitDNzMyO0M3MzI7MTEwQiAxMTcyIDExQjk7QzczMjsxMTBCIDExNzIgMTFCOTsKK0M3MzM7QzczMzsxMTBCIDExNzIgMTFCQTtDNzMzOzExMEIgMTE3MiAxMUJBOworQzczNDtDNzM0OzExMEIgMTE3MiAxMUJCO0M3MzQ7MTEwQiAxMTcyIDExQkI7CitDNzM1O0M3MzU7MTEwQiAxMTcyIDExQkM7QzczNTsxMTBCIDExNzIgMTFCQzsKK0M3MzY7QzczNjsxMTBCIDExNzIgMTFCRDtDNzM2OzExMEIgMTE3MiAxMUJEOworQzczNztDNzM3OzExMEIgMTE3MiAxMUJFO0M3Mzc7MTEwQiAxMTcyIDExQkU7CitDNzM4O0M3Mzg7MTEwQiAxMTcyIDExQkY7QzczODsxMTBCIDExNzIgMTFCRjsKK0M3Mzk7QzczOTsxMTBCIDExNzIgMTFDMDtDNzM5OzExMEIgMTE3MiAxMUMwOworQzczQTtDNzNBOzExMEIgMTE3MiAxMUMxO0M3M0E7MTEwQiAxMTcyIDExQzE7CitDNzNCO0M3M0I7MTEwQiAxMTcyIDExQzI7QzczQjsxMTBCIDExNzIgMTFDMjsKK0M3M0M7QzczQzsxMTBCIDExNzM7QzczQzsxMTBCIDExNzM7CitDNzNEO0M3M0Q7MTEwQiAxMTczIDExQTg7QzczRDsxMTBCIDExNzMgMTFBODsKK0M3M0U7QzczRTsxMTBCIDExNzMgMTFBOTtDNzNFOzExMEIgMTE3MyAxMUE5OworQzczRjtDNzNGOzExMEIgMTE3MyAxMUFBO0M3M0Y7MTEwQiAxMTczIDExQUE7CitDNzQwO0M3NDA7MTEwQiAxMTczIDExQUI7Qzc0MDsxMTBCIDExNzMgMTFBQjsKK0M3NDE7Qzc0MTsxMTBCIDExNzMgMTFBQztDNzQxOzExMEIgMTE3MyAxMUFDOworQzc0MjtDNzQyOzExMEIgMTE3MyAxMUFEO0M3NDI7MTEwQiAxMTczIDExQUQ7CitDNzQzO0M3NDM7MTEwQiAxMTczIDExQUU7Qzc0MzsxMTBCIDExNzMgMTFBRTsKK0M3NDQ7Qzc0NDsxMTBCIDExNzMgMTFBRjtDNzQ0OzExMEIgMTE3MyAxMUFGOworQzc0NTtDNzQ1OzExMEIgMTE3MyAxMUIwO0M3NDU7MTEwQiAxMTczIDExQjA7CitDNzQ2O0M3NDY7MTEwQiAxMTczIDExQjE7Qzc0NjsxMTBCIDExNzMgMTFCMTsKK0M3NDc7Qzc0NzsxMTBCIDExNzMgMTFCMjtDNzQ3OzExMEIgMTE3MyAxMUIyOworQzc0ODtDNzQ4OzExMEIgMTE3MyAxMUIzO0M3NDg7MTEwQiAxMTczIDExQjM7CitDNzQ5O0M3NDk7MTEwQiAxMTczIDExQjQ7Qzc0OTsxMTBCIDExNzMgMTFCNDsKK0M3NEE7Qzc0QTsxMTBCIDExNzMgMTFCNTtDNzRBOzExMEIgMTE3MyAxMUI1OworQzc0QjtDNzRCOzExMEIgMTE3MyAxMUI2O0M3NEI7MTEwQiAxMTczIDExQjY7CitDNzRDO0M3NEM7MTEwQiAxMTczIDExQjc7Qzc0QzsxMTBCIDExNzMgMTFCNzsKK0M3NEQ7Qzc0RDsxMTBCIDExNzMgMTFCODtDNzREOzExMEIgMTE3MyAxMUI4OworQzc0RTtDNzRFOzExMEIgMTE3MyAxMUI5O0M3NEU7MTEwQiAxMTczIDExQjk7CitDNzRGO0M3NEY7MTEwQiAxMTczIDExQkE7Qzc0RjsxMTBCIDExNzMgMTFCQTsKK0M3NTA7Qzc1MDsxMTBCIDExNzMgMTFCQjtDNzUwOzExMEIgMTE3MyAxMUJCOworQzc1MTtDNzUxOzExMEIgMTE3MyAxMUJDO0M3NTE7MTEwQiAxMTczIDExQkM7CitDNzUyO0M3NTI7MTEwQiAxMTczIDExQkQ7Qzc1MjsxMTBCIDExNzMgMTFCRDsKK0M3NTM7Qzc1MzsxMTBCIDExNzMgMTFCRTtDNzUzOzExMEIgMTE3MyAxMUJFOworQzc1NDtDNzU0OzExMEIgMTE3MyAxMUJGO0M3NTQ7MTEwQiAxMTczIDExQkY7CitDNzU1O0M3NTU7MTEwQiAxMTczIDExQzA7Qzc1NTsxMTBCIDExNzMgMTFDMDsKK0M3NTY7Qzc1NjsxMTBCIDExNzMgMTFDMTtDNzU2OzExMEIgMTE3MyAxMUMxOworQzc1NztDNzU3OzExMEIgMTE3MyAxMUMyO0M3NTc7MTEwQiAxMTczIDExQzI7CitDNzU4O0M3NTg7MTEwQiAxMTc0O0M3NTg7MTEwQiAxMTc0OworQzc1OTtDNzU5OzExMEIgMTE3NCAxMUE4O0M3NTk7MTEwQiAxMTc0IDExQTg7CitDNzVBO0M3NUE7MTEwQiAxMTc0IDExQTk7Qzc1QTsxMTBCIDExNzQgMTFBOTsKK0M3NUI7Qzc1QjsxMTBCIDExNzQgMTFBQTtDNzVCOzExMEIgMTE3NCAxMUFBOworQzc1QztDNzVDOzExMEIgMTE3NCAxMUFCO0M3NUM7MTEwQiAxMTc0IDExQUI7CitDNzVEO0M3NUQ7MTEwQiAxMTc0IDExQUM7Qzc1RDsxMTBCIDExNzQgMTFBQzsKK0M3NUU7Qzc1RTsxMTBCIDExNzQgMTFBRDtDNzVFOzExMEIgMTE3NCAxMUFEOworQzc1RjtDNzVGOzExMEIgMTE3NCAxMUFFO0M3NUY7MTEwQiAxMTc0IDExQUU7CitDNzYwO0M3NjA7MTEwQiAxMTc0IDExQUY7Qzc2MDsxMTBCIDExNzQgMTFBRjsKK0M3NjE7Qzc2MTsxMTBCIDExNzQgMTFCMDtDNzYxOzExMEIgMTE3NCAxMUIwOworQzc2MjtDNzYyOzExMEIgMTE3NCAxMUIxO0M3NjI7MTEwQiAxMTc0IDExQjE7CitDNzYzO0M3NjM7MTEwQiAxMTc0IDExQjI7Qzc2MzsxMTBCIDExNzQgMTFCMjsKK0M3NjQ7Qzc2NDsxMTBCIDExNzQgMTFCMztDNzY0OzExMEIgMTE3NCAxMUIzOworQzc2NTtDNzY1OzExMEIgMTE3NCAxMUI0O0M3NjU7MTEwQiAxMTc0IDExQjQ7CitDNzY2O0M3NjY7MTEwQiAxMTc0IDExQjU7Qzc2NjsxMTBCIDExNzQgMTFCNTsKK0M3Njc7Qzc2NzsxMTBCIDExNzQgMTFCNjtDNzY3OzExMEIgMTE3NCAxMUI2OworQzc2ODtDNzY4OzExMEIgMTE3NCAxMUI3O0M3Njg7MTEwQiAxMTc0IDExQjc7CitDNzY5O0M3Njk7MTEwQiAxMTc0IDExQjg7Qzc2OTsxMTBCIDExNzQgMTFCODsKK0M3NkE7Qzc2QTsxMTBCIDExNzQgMTFCOTtDNzZBOzExMEIgMTE3NCAxMUI5OworQzc2QjtDNzZCOzExMEIgMTE3NCAxMUJBO0M3NkI7MTEwQiAxMTc0IDExQkE7CitDNzZDO0M3NkM7MTEwQiAxMTc0IDExQkI7Qzc2QzsxMTBCIDExNzQgMTFCQjsKK0M3NkQ7Qzc2RDsxMTBCIDExNzQgMTFCQztDNzZEOzExMEIgMTE3NCAxMUJDOworQzc2RTtDNzZFOzExMEIgMTE3NCAxMUJEO0M3NkU7MTEwQiAxMTc0IDExQkQ7CitDNzZGO0M3NkY7MTEwQiAxMTc0IDExQkU7Qzc2RjsxMTBCIDExNzQgMTFCRTsKK0M3NzA7Qzc3MDsxMTBCIDExNzQgMTFCRjtDNzcwOzExMEIgMTE3NCAxMUJGOworQzc3MTtDNzcxOzExMEIgMTE3NCAxMUMwO0M3NzE7MTEwQiAxMTc0IDExQzA7CitDNzcyO0M3NzI7MTEwQiAxMTc0IDExQzE7Qzc3MjsxMTBCIDExNzQgMTFDMTsKK0M3NzM7Qzc3MzsxMTBCIDExNzQgMTFDMjtDNzczOzExMEIgMTE3NCAxMUMyOworQzc3NDtDNzc0OzExMEIgMTE3NTtDNzc0OzExMEIgMTE3NTsKK0M3NzU7Qzc3NTsxMTBCIDExNzUgMTFBODtDNzc1OzExMEIgMTE3NSAxMUE4OworQzc3NjtDNzc2OzExMEIgMTE3NSAxMUE5O0M3NzY7MTEwQiAxMTc1IDExQTk7CitDNzc3O0M3Nzc7MTEwQiAxMTc1IDExQUE7Qzc3NzsxMTBCIDExNzUgMTFBQTsKK0M3Nzg7Qzc3ODsxMTBCIDExNzUgMTFBQjtDNzc4OzExMEIgMTE3NSAxMUFCOworQzc3OTtDNzc5OzExMEIgMTE3NSAxMUFDO0M3Nzk7MTEwQiAxMTc1IDExQUM7CitDNzdBO0M3N0E7MTEwQiAxMTc1IDExQUQ7Qzc3QTsxMTBCIDExNzUgMTFBRDsKK0M3N0I7Qzc3QjsxMTBCIDExNzUgMTFBRTtDNzdCOzExMEIgMTE3NSAxMUFFOworQzc3QztDNzdDOzExMEIgMTE3NSAxMUFGO0M3N0M7MTEwQiAxMTc1IDExQUY7CitDNzdEO0M3N0Q7MTEwQiAxMTc1IDExQjA7Qzc3RDsxMTBCIDExNzUgMTFCMDsKK0M3N0U7Qzc3RTsxMTBCIDExNzUgMTFCMTtDNzdFOzExMEIgMTE3NSAxMUIxOworQzc3RjtDNzdGOzExMEIgMTE3NSAxMUIyO0M3N0Y7MTEwQiAxMTc1IDExQjI7CitDNzgwO0M3ODA7MTEwQiAxMTc1IDExQjM7Qzc4MDsxMTBCIDExNzUgMTFCMzsKK0M3ODE7Qzc4MTsxMTBCIDExNzUgMTFCNDtDNzgxOzExMEIgMTE3NSAxMUI0OworQzc4MjtDNzgyOzExMEIgMTE3NSAxMUI1O0M3ODI7MTEwQiAxMTc1IDExQjU7CitDNzgzO0M3ODM7MTEwQiAxMTc1IDExQjY7Qzc4MzsxMTBCIDExNzUgMTFCNjsKK0M3ODQ7Qzc4NDsxMTBCIDExNzUgMTFCNztDNzg0OzExMEIgMTE3NSAxMUI3OworQzc4NTtDNzg1OzExMEIgMTE3NSAxMUI4O0M3ODU7MTEwQiAxMTc1IDExQjg7CitDNzg2O0M3ODY7MTEwQiAxMTc1IDExQjk7Qzc4NjsxMTBCIDExNzUgMTFCOTsKK0M3ODc7Qzc4NzsxMTBCIDExNzUgMTFCQTtDNzg3OzExMEIgMTE3NSAxMUJBOworQzc4ODtDNzg4OzExMEIgMTE3NSAxMUJCO0M3ODg7MTEwQiAxMTc1IDExQkI7CitDNzg5O0M3ODk7MTEwQiAxMTc1IDExQkM7Qzc4OTsxMTBCIDExNzUgMTFCQzsKK0M3OEE7Qzc4QTsxMTBCIDExNzUgMTFCRDtDNzhBOzExMEIgMTE3NSAxMUJEOworQzc4QjtDNzhCOzExMEIgMTE3NSAxMUJFO0M3OEI7MTEwQiAxMTc1IDExQkU7CitDNzhDO0M3OEM7MTEwQiAxMTc1IDExQkY7Qzc4QzsxMTBCIDExNzUgMTFCRjsKK0M3OEQ7Qzc4RDsxMTBCIDExNzUgMTFDMDtDNzhEOzExMEIgMTE3NSAxMUMwOworQzc4RTtDNzhFOzExMEIgMTE3NSAxMUMxO0M3OEU7MTEwQiAxMTc1IDExQzE7CitDNzhGO0M3OEY7MTEwQiAxMTc1IDExQzI7Qzc4RjsxMTBCIDExNzUgMTFDMjsKK0M3OTA7Qzc5MDsxMTBDIDExNjE7Qzc5MDsxMTBDIDExNjE7CitDNzkxO0M3OTE7MTEwQyAxMTYxIDExQTg7Qzc5MTsxMTBDIDExNjEgMTFBODsKK0M3OTI7Qzc5MjsxMTBDIDExNjEgMTFBOTtDNzkyOzExMEMgMTE2MSAxMUE5OworQzc5MztDNzkzOzExMEMgMTE2MSAxMUFBO0M3OTM7MTEwQyAxMTYxIDExQUE7CitDNzk0O0M3OTQ7MTEwQyAxMTYxIDExQUI7Qzc5NDsxMTBDIDExNjEgMTFBQjsKK0M3OTU7Qzc5NTsxMTBDIDExNjEgMTFBQztDNzk1OzExMEMgMTE2MSAxMUFDOworQzc5NjtDNzk2OzExMEMgMTE2MSAxMUFEO0M3OTY7MTEwQyAxMTYxIDExQUQ7CitDNzk3O0M3OTc7MTEwQyAxMTYxIDExQUU7Qzc5NzsxMTBDIDExNjEgMTFBRTsKK0M3OTg7Qzc5ODsxMTBDIDExNjEgMTFBRjtDNzk4OzExMEMgMTE2MSAxMUFGOworQzc5OTtDNzk5OzExMEMgMTE2MSAxMUIwO0M3OTk7MTEwQyAxMTYxIDExQjA7CitDNzlBO0M3OUE7MTEwQyAxMTYxIDExQjE7Qzc5QTsxMTBDIDExNjEgMTFCMTsKK0M3OUI7Qzc5QjsxMTBDIDExNjEgMTFCMjtDNzlCOzExMEMgMTE2MSAxMUIyOworQzc5QztDNzlDOzExMEMgMTE2MSAxMUIzO0M3OUM7MTEwQyAxMTYxIDExQjM7CitDNzlEO0M3OUQ7MTEwQyAxMTYxIDExQjQ7Qzc5RDsxMTBDIDExNjEgMTFCNDsKK0M3OUU7Qzc5RTsxMTBDIDExNjEgMTFCNTtDNzlFOzExMEMgMTE2MSAxMUI1OworQzc5RjtDNzlGOzExMEMgMTE2MSAxMUI2O0M3OUY7MTEwQyAxMTYxIDExQjY7CitDN0EwO0M3QTA7MTEwQyAxMTYxIDExQjc7QzdBMDsxMTBDIDExNjEgMTFCNzsKK0M3QTE7QzdBMTsxMTBDIDExNjEgMTFCODtDN0ExOzExMEMgMTE2MSAxMUI4OworQzdBMjtDN0EyOzExMEMgMTE2MSAxMUI5O0M3QTI7MTEwQyAxMTYxIDExQjk7CitDN0EzO0M3QTM7MTEwQyAxMTYxIDExQkE7QzdBMzsxMTBDIDExNjEgMTFCQTsKK0M3QTQ7QzdBNDsxMTBDIDExNjEgMTFCQjtDN0E0OzExMEMgMTE2MSAxMUJCOworQzdBNTtDN0E1OzExMEMgMTE2MSAxMUJDO0M3QTU7MTEwQyAxMTYxIDExQkM7CitDN0E2O0M3QTY7MTEwQyAxMTYxIDExQkQ7QzdBNjsxMTBDIDExNjEgMTFCRDsKK0M3QTc7QzdBNzsxMTBDIDExNjEgMTFCRTtDN0E3OzExMEMgMTE2MSAxMUJFOworQzdBODtDN0E4OzExMEMgMTE2MSAxMUJGO0M3QTg7MTEwQyAxMTYxIDExQkY7CitDN0E5O0M3QTk7MTEwQyAxMTYxIDExQzA7QzdBOTsxMTBDIDExNjEgMTFDMDsKK0M3QUE7QzdBQTsxMTBDIDExNjEgMTFDMTtDN0FBOzExMEMgMTE2MSAxMUMxOworQzdBQjtDN0FCOzExMEMgMTE2MSAxMUMyO0M3QUI7MTEwQyAxMTYxIDExQzI7CitDN0FDO0M3QUM7MTEwQyAxMTYyO0M3QUM7MTEwQyAxMTYyOworQzdBRDtDN0FEOzExMEMgMTE2MiAxMUE4O0M3QUQ7MTEwQyAxMTYyIDExQTg7CitDN0FFO0M3QUU7MTEwQyAxMTYyIDExQTk7QzdBRTsxMTBDIDExNjIgMTFBOTsKK0M3QUY7QzdBRjsxMTBDIDExNjIgMTFBQTtDN0FGOzExMEMgMTE2MiAxMUFBOworQzdCMDtDN0IwOzExMEMgMTE2MiAxMUFCO0M3QjA7MTEwQyAxMTYyIDExQUI7CitDN0IxO0M3QjE7MTEwQyAxMTYyIDExQUM7QzdCMTsxMTBDIDExNjIgMTFBQzsKK0M3QjI7QzdCMjsxMTBDIDExNjIgMTFBRDtDN0IyOzExMEMgMTE2MiAxMUFEOworQzdCMztDN0IzOzExMEMgMTE2MiAxMUFFO0M3QjM7MTEwQyAxMTYyIDExQUU7CitDN0I0O0M3QjQ7MTEwQyAxMTYyIDExQUY7QzdCNDsxMTBDIDExNjIgMTFBRjsKK0M3QjU7QzdCNTsxMTBDIDExNjIgMTFCMDtDN0I1OzExMEMgMTE2MiAxMUIwOworQzdCNjtDN0I2OzExMEMgMTE2MiAxMUIxO0M3QjY7MTEwQyAxMTYyIDExQjE7CitDN0I3O0M3Qjc7MTEwQyAxMTYyIDExQjI7QzdCNzsxMTBDIDExNjIgMTFCMjsKK0M3Qjg7QzdCODsxMTBDIDExNjIgMTFCMztDN0I4OzExMEMgMTE2MiAxMUIzOworQzdCOTtDN0I5OzExMEMgMTE2MiAxMUI0O0M3Qjk7MTEwQyAxMTYyIDExQjQ7CitDN0JBO0M3QkE7MTEwQyAxMTYyIDExQjU7QzdCQTsxMTBDIDExNjIgMTFCNTsKK0M3QkI7QzdCQjsxMTBDIDExNjIgMTFCNjtDN0JCOzExMEMgMTE2MiAxMUI2OworQzdCQztDN0JDOzExMEMgMTE2MiAxMUI3O0M3QkM7MTEwQyAxMTYyIDExQjc7CitDN0JEO0M3QkQ7MTEwQyAxMTYyIDExQjg7QzdCRDsxMTBDIDExNjIgMTFCODsKK0M3QkU7QzdCRTsxMTBDIDExNjIgMTFCOTtDN0JFOzExMEMgMTE2MiAxMUI5OworQzdCRjtDN0JGOzExMEMgMTE2MiAxMUJBO0M3QkY7MTEwQyAxMTYyIDExQkE7CitDN0MwO0M3QzA7MTEwQyAxMTYyIDExQkI7QzdDMDsxMTBDIDExNjIgMTFCQjsKK0M3QzE7QzdDMTsxMTBDIDExNjIgMTFCQztDN0MxOzExMEMgMTE2MiAxMUJDOworQzdDMjtDN0MyOzExMEMgMTE2MiAxMUJEO0M3QzI7MTEwQyAxMTYyIDExQkQ7CitDN0MzO0M3QzM7MTEwQyAxMTYyIDExQkU7QzdDMzsxMTBDIDExNjIgMTFCRTsKK0M3QzQ7QzdDNDsxMTBDIDExNjIgMTFCRjtDN0M0OzExMEMgMTE2MiAxMUJGOworQzdDNTtDN0M1OzExMEMgMTE2MiAxMUMwO0M3QzU7MTEwQyAxMTYyIDExQzA7CitDN0M2O0M3QzY7MTEwQyAxMTYyIDExQzE7QzdDNjsxMTBDIDExNjIgMTFDMTsKK0M3Qzc7QzdDNzsxMTBDIDExNjIgMTFDMjtDN0M3OzExMEMgMTE2MiAxMUMyOworQzdDODtDN0M4OzExMEMgMTE2MztDN0M4OzExMEMgMTE2MzsKK0M3Qzk7QzdDOTsxMTBDIDExNjMgMTFBODtDN0M5OzExMEMgMTE2MyAxMUE4OworQzdDQTtDN0NBOzExMEMgMTE2MyAxMUE5O0M3Q0E7MTEwQyAxMTYzIDExQTk7CitDN0NCO0M3Q0I7MTEwQyAxMTYzIDExQUE7QzdDQjsxMTBDIDExNjMgMTFBQTsKK0M3Q0M7QzdDQzsxMTBDIDExNjMgMTFBQjtDN0NDOzExMEMgMTE2MyAxMUFCOworQzdDRDtDN0NEOzExMEMgMTE2MyAxMUFDO0M3Q0Q7MTEwQyAxMTYzIDExQUM7CitDN0NFO0M3Q0U7MTEwQyAxMTYzIDExQUQ7QzdDRTsxMTBDIDExNjMgMTFBRDsKK0M3Q0Y7QzdDRjsxMTBDIDExNjMgMTFBRTtDN0NGOzExMEMgMTE2MyAxMUFFOworQzdEMDtDN0QwOzExMEMgMTE2MyAxMUFGO0M3RDA7MTEwQyAxMTYzIDExQUY7CitDN0QxO0M3RDE7MTEwQyAxMTYzIDExQjA7QzdEMTsxMTBDIDExNjMgMTFCMDsKK0M3RDI7QzdEMjsxMTBDIDExNjMgMTFCMTtDN0QyOzExMEMgMTE2MyAxMUIxOworQzdEMztDN0QzOzExMEMgMTE2MyAxMUIyO0M3RDM7MTEwQyAxMTYzIDExQjI7CitDN0Q0O0M3RDQ7MTEwQyAxMTYzIDExQjM7QzdENDsxMTBDIDExNjMgMTFCMzsKK0M3RDU7QzdENTsxMTBDIDExNjMgMTFCNDtDN0Q1OzExMEMgMTE2MyAxMUI0OworQzdENjtDN0Q2OzExMEMgMTE2MyAxMUI1O0M3RDY7MTEwQyAxMTYzIDExQjU7CitDN0Q3O0M3RDc7MTEwQyAxMTYzIDExQjY7QzdENzsxMTBDIDExNjMgMTFCNjsKK0M3RDg7QzdEODsxMTBDIDExNjMgMTFCNztDN0Q4OzExMEMgMTE2MyAxMUI3OworQzdEOTtDN0Q5OzExMEMgMTE2MyAxMUI4O0M3RDk7MTEwQyAxMTYzIDExQjg7CitDN0RBO0M3REE7MTEwQyAxMTYzIDExQjk7QzdEQTsxMTBDIDExNjMgMTFCOTsKK0M3REI7QzdEQjsxMTBDIDExNjMgMTFCQTtDN0RCOzExMEMgMTE2MyAxMUJBOworQzdEQztDN0RDOzExMEMgMTE2MyAxMUJCO0M3REM7MTEwQyAxMTYzIDExQkI7CitDN0REO0M3REQ7MTEwQyAxMTYzIDExQkM7QzdERDsxMTBDIDExNjMgMTFCQzsKK0M3REU7QzdERTsxMTBDIDExNjMgMTFCRDtDN0RFOzExMEMgMTE2MyAxMUJEOworQzdERjtDN0RGOzExMEMgMTE2MyAxMUJFO0M3REY7MTEwQyAxMTYzIDExQkU7CitDN0UwO0M3RTA7MTEwQyAxMTYzIDExQkY7QzdFMDsxMTBDIDExNjMgMTFCRjsKK0M3RTE7QzdFMTsxMTBDIDExNjMgMTFDMDtDN0UxOzExMEMgMTE2MyAxMUMwOworQzdFMjtDN0UyOzExMEMgMTE2MyAxMUMxO0M3RTI7MTEwQyAxMTYzIDExQzE7CitDN0UzO0M3RTM7MTEwQyAxMTYzIDExQzI7QzdFMzsxMTBDIDExNjMgMTFDMjsKK0M3RTQ7QzdFNDsxMTBDIDExNjQ7QzdFNDsxMTBDIDExNjQ7CitDN0U1O0M3RTU7MTEwQyAxMTY0IDExQTg7QzdFNTsxMTBDIDExNjQgMTFBODsKK0M3RTY7QzdFNjsxMTBDIDExNjQgMTFBOTtDN0U2OzExMEMgMTE2NCAxMUE5OworQzdFNztDN0U3OzExMEMgMTE2NCAxMUFBO0M3RTc7MTEwQyAxMTY0IDExQUE7CitDN0U4O0M3RTg7MTEwQyAxMTY0IDExQUI7QzdFODsxMTBDIDExNjQgMTFBQjsKK0M3RTk7QzdFOTsxMTBDIDExNjQgMTFBQztDN0U5OzExMEMgMTE2NCAxMUFDOworQzdFQTtDN0VBOzExMEMgMTE2NCAxMUFEO0M3RUE7MTEwQyAxMTY0IDExQUQ7CitDN0VCO0M3RUI7MTEwQyAxMTY0IDExQUU7QzdFQjsxMTBDIDExNjQgMTFBRTsKK0M3RUM7QzdFQzsxMTBDIDExNjQgMTFBRjtDN0VDOzExMEMgMTE2NCAxMUFGOworQzdFRDtDN0VEOzExMEMgMTE2NCAxMUIwO0M3RUQ7MTEwQyAxMTY0IDExQjA7CitDN0VFO0M3RUU7MTEwQyAxMTY0IDExQjE7QzdFRTsxMTBDIDExNjQgMTFCMTsKK0M3RUY7QzdFRjsxMTBDIDExNjQgMTFCMjtDN0VGOzExMEMgMTE2NCAxMUIyOworQzdGMDtDN0YwOzExMEMgMTE2NCAxMUIzO0M3RjA7MTEwQyAxMTY0IDExQjM7CitDN0YxO0M3RjE7MTEwQyAxMTY0IDExQjQ7QzdGMTsxMTBDIDExNjQgMTFCNDsKK0M3RjI7QzdGMjsxMTBDIDExNjQgMTFCNTtDN0YyOzExMEMgMTE2NCAxMUI1OworQzdGMztDN0YzOzExMEMgMTE2NCAxMUI2O0M3RjM7MTEwQyAxMTY0IDExQjY7CitDN0Y0O0M3RjQ7MTEwQyAxMTY0IDExQjc7QzdGNDsxMTBDIDExNjQgMTFCNzsKK0M3RjU7QzdGNTsxMTBDIDExNjQgMTFCODtDN0Y1OzExMEMgMTE2NCAxMUI4OworQzdGNjtDN0Y2OzExMEMgMTE2NCAxMUI5O0M3RjY7MTEwQyAxMTY0IDExQjk7CitDN0Y3O0M3Rjc7MTEwQyAxMTY0IDExQkE7QzdGNzsxMTBDIDExNjQgMTFCQTsKK0M3Rjg7QzdGODsxMTBDIDExNjQgMTFCQjtDN0Y4OzExMEMgMTE2NCAxMUJCOworQzdGOTtDN0Y5OzExMEMgMTE2NCAxMUJDO0M3Rjk7MTEwQyAxMTY0IDExQkM7CitDN0ZBO0M3RkE7MTEwQyAxMTY0IDExQkQ7QzdGQTsxMTBDIDExNjQgMTFCRDsKK0M3RkI7QzdGQjsxMTBDIDExNjQgMTFCRTtDN0ZCOzExMEMgMTE2NCAxMUJFOworQzdGQztDN0ZDOzExMEMgMTE2NCAxMUJGO0M3RkM7MTEwQyAxMTY0IDExQkY7CitDN0ZEO0M3RkQ7MTEwQyAxMTY0IDExQzA7QzdGRDsxMTBDIDExNjQgMTFDMDsKK0M3RkU7QzdGRTsxMTBDIDExNjQgMTFDMTtDN0ZFOzExMEMgMTE2NCAxMUMxOworQzdGRjtDN0ZGOzExMEMgMTE2NCAxMUMyO0M3RkY7MTEwQyAxMTY0IDExQzI7CitDODAwO0M4MDA7MTEwQyAxMTY1O0M4MDA7MTEwQyAxMTY1OworQzgwMTtDODAxOzExMEMgMTE2NSAxMUE4O0M4MDE7MTEwQyAxMTY1IDExQTg7CitDODAyO0M4MDI7MTEwQyAxMTY1IDExQTk7QzgwMjsxMTBDIDExNjUgMTFBOTsKK0M4MDM7QzgwMzsxMTBDIDExNjUgMTFBQTtDODAzOzExMEMgMTE2NSAxMUFBOworQzgwNDtDODA0OzExMEMgMTE2NSAxMUFCO0M4MDQ7MTEwQyAxMTY1IDExQUI7CitDODA1O0M4MDU7MTEwQyAxMTY1IDExQUM7QzgwNTsxMTBDIDExNjUgMTFBQzsKK0M4MDY7QzgwNjsxMTBDIDExNjUgMTFBRDtDODA2OzExMEMgMTE2NSAxMUFEOworQzgwNztDODA3OzExMEMgMTE2NSAxMUFFO0M4MDc7MTEwQyAxMTY1IDExQUU7CitDODA4O0M4MDg7MTEwQyAxMTY1IDExQUY7QzgwODsxMTBDIDExNjUgMTFBRjsKK0M4MDk7QzgwOTsxMTBDIDExNjUgMTFCMDtDODA5OzExMEMgMTE2NSAxMUIwOworQzgwQTtDODBBOzExMEMgMTE2NSAxMUIxO0M4MEE7MTEwQyAxMTY1IDExQjE7CitDODBCO0M4MEI7MTEwQyAxMTY1IDExQjI7QzgwQjsxMTBDIDExNjUgMTFCMjsKK0M4MEM7QzgwQzsxMTBDIDExNjUgMTFCMztDODBDOzExMEMgMTE2NSAxMUIzOworQzgwRDtDODBEOzExMEMgMTE2NSAxMUI0O0M4MEQ7MTEwQyAxMTY1IDExQjQ7CitDODBFO0M4MEU7MTEwQyAxMTY1IDExQjU7QzgwRTsxMTBDIDExNjUgMTFCNTsKK0M4MEY7QzgwRjsxMTBDIDExNjUgMTFCNjtDODBGOzExMEMgMTE2NSAxMUI2OworQzgxMDtDODEwOzExMEMgMTE2NSAxMUI3O0M4MTA7MTEwQyAxMTY1IDExQjc7CitDODExO0M4MTE7MTEwQyAxMTY1IDExQjg7QzgxMTsxMTBDIDExNjUgMTFCODsKK0M4MTI7QzgxMjsxMTBDIDExNjUgMTFCOTtDODEyOzExMEMgMTE2NSAxMUI5OworQzgxMztDODEzOzExMEMgMTE2NSAxMUJBO0M4MTM7MTEwQyAxMTY1IDExQkE7CitDODE0O0M4MTQ7MTEwQyAxMTY1IDExQkI7QzgxNDsxMTBDIDExNjUgMTFCQjsKK0M4MTU7QzgxNTsxMTBDIDExNjUgMTFCQztDODE1OzExMEMgMTE2NSAxMUJDOworQzgxNjtDODE2OzExMEMgMTE2NSAxMUJEO0M4MTY7MTEwQyAxMTY1IDExQkQ7CitDODE3O0M4MTc7MTEwQyAxMTY1IDExQkU7QzgxNzsxMTBDIDExNjUgMTFCRTsKK0M4MTg7QzgxODsxMTBDIDExNjUgMTFCRjtDODE4OzExMEMgMTE2NSAxMUJGOworQzgxOTtDODE5OzExMEMgMTE2NSAxMUMwO0M4MTk7MTEwQyAxMTY1IDExQzA7CitDODFBO0M4MUE7MTEwQyAxMTY1IDExQzE7QzgxQTsxMTBDIDExNjUgMTFDMTsKK0M4MUI7QzgxQjsxMTBDIDExNjUgMTFDMjtDODFCOzExMEMgMTE2NSAxMUMyOworQzgxQztDODFDOzExMEMgMTE2NjtDODFDOzExMEMgMTE2NjsKK0M4MUQ7QzgxRDsxMTBDIDExNjYgMTFBODtDODFEOzExMEMgMTE2NiAxMUE4OworQzgxRTtDODFFOzExMEMgMTE2NiAxMUE5O0M4MUU7MTEwQyAxMTY2IDExQTk7CitDODFGO0M4MUY7MTEwQyAxMTY2IDExQUE7QzgxRjsxMTBDIDExNjYgMTFBQTsKK0M4MjA7QzgyMDsxMTBDIDExNjYgMTFBQjtDODIwOzExMEMgMTE2NiAxMUFCOworQzgyMTtDODIxOzExMEMgMTE2NiAxMUFDO0M4MjE7MTEwQyAxMTY2IDExQUM7CitDODIyO0M4MjI7MTEwQyAxMTY2IDExQUQ7QzgyMjsxMTBDIDExNjYgMTFBRDsKK0M4MjM7QzgyMzsxMTBDIDExNjYgMTFBRTtDODIzOzExMEMgMTE2NiAxMUFFOworQzgyNDtDODI0OzExMEMgMTE2NiAxMUFGO0M4MjQ7MTEwQyAxMTY2IDExQUY7CitDODI1O0M4MjU7MTEwQyAxMTY2IDExQjA7QzgyNTsxMTBDIDExNjYgMTFCMDsKK0M4MjY7QzgyNjsxMTBDIDExNjYgMTFCMTtDODI2OzExMEMgMTE2NiAxMUIxOworQzgyNztDODI3OzExMEMgMTE2NiAxMUIyO0M4Mjc7MTEwQyAxMTY2IDExQjI7CitDODI4O0M4Mjg7MTEwQyAxMTY2IDExQjM7QzgyODsxMTBDIDExNjYgMTFCMzsKK0M4Mjk7QzgyOTsxMTBDIDExNjYgMTFCNDtDODI5OzExMEMgMTE2NiAxMUI0OworQzgyQTtDODJBOzExMEMgMTE2NiAxMUI1O0M4MkE7MTEwQyAxMTY2IDExQjU7CitDODJCO0M4MkI7MTEwQyAxMTY2IDExQjY7QzgyQjsxMTBDIDExNjYgMTFCNjsKK0M4MkM7QzgyQzsxMTBDIDExNjYgMTFCNztDODJDOzExMEMgMTE2NiAxMUI3OworQzgyRDtDODJEOzExMEMgMTE2NiAxMUI4O0M4MkQ7MTEwQyAxMTY2IDExQjg7CitDODJFO0M4MkU7MTEwQyAxMTY2IDExQjk7QzgyRTsxMTBDIDExNjYgMTFCOTsKK0M4MkY7QzgyRjsxMTBDIDExNjYgMTFCQTtDODJGOzExMEMgMTE2NiAxMUJBOworQzgzMDtDODMwOzExMEMgMTE2NiAxMUJCO0M4MzA7MTEwQyAxMTY2IDExQkI7CitDODMxO0M4MzE7MTEwQyAxMTY2IDExQkM7QzgzMTsxMTBDIDExNjYgMTFCQzsKK0M4MzI7QzgzMjsxMTBDIDExNjYgMTFCRDtDODMyOzExMEMgMTE2NiAxMUJEOworQzgzMztDODMzOzExMEMgMTE2NiAxMUJFO0M4MzM7MTEwQyAxMTY2IDExQkU7CitDODM0O0M4MzQ7MTEwQyAxMTY2IDExQkY7QzgzNDsxMTBDIDExNjYgMTFCRjsKK0M4MzU7QzgzNTsxMTBDIDExNjYgMTFDMDtDODM1OzExMEMgMTE2NiAxMUMwOworQzgzNjtDODM2OzExMEMgMTE2NiAxMUMxO0M4MzY7MTEwQyAxMTY2IDExQzE7CitDODM3O0M4Mzc7MTEwQyAxMTY2IDExQzI7QzgzNzsxMTBDIDExNjYgMTFDMjsKK0M4Mzg7QzgzODsxMTBDIDExNjc7QzgzODsxMTBDIDExNjc7CitDODM5O0M4Mzk7MTEwQyAxMTY3IDExQTg7QzgzOTsxMTBDIDExNjcgMTFBODsKK0M4M0E7QzgzQTsxMTBDIDExNjcgMTFBOTtDODNBOzExMEMgMTE2NyAxMUE5OworQzgzQjtDODNCOzExMEMgMTE2NyAxMUFBO0M4M0I7MTEwQyAxMTY3IDExQUE7CitDODNDO0M4M0M7MTEwQyAxMTY3IDExQUI7QzgzQzsxMTBDIDExNjcgMTFBQjsKK0M4M0Q7QzgzRDsxMTBDIDExNjcgMTFBQztDODNEOzExMEMgMTE2NyAxMUFDOworQzgzRTtDODNFOzExMEMgMTE2NyAxMUFEO0M4M0U7MTEwQyAxMTY3IDExQUQ7CitDODNGO0M4M0Y7MTEwQyAxMTY3IDExQUU7QzgzRjsxMTBDIDExNjcgMTFBRTsKK0M4NDA7Qzg0MDsxMTBDIDExNjcgMTFBRjtDODQwOzExMEMgMTE2NyAxMUFGOworQzg0MTtDODQxOzExMEMgMTE2NyAxMUIwO0M4NDE7MTEwQyAxMTY3IDExQjA7CitDODQyO0M4NDI7MTEwQyAxMTY3IDExQjE7Qzg0MjsxMTBDIDExNjcgMTFCMTsKK0M4NDM7Qzg0MzsxMTBDIDExNjcgMTFCMjtDODQzOzExMEMgMTE2NyAxMUIyOworQzg0NDtDODQ0OzExMEMgMTE2NyAxMUIzO0M4NDQ7MTEwQyAxMTY3IDExQjM7CitDODQ1O0M4NDU7MTEwQyAxMTY3IDExQjQ7Qzg0NTsxMTBDIDExNjcgMTFCNDsKK0M4NDY7Qzg0NjsxMTBDIDExNjcgMTFCNTtDODQ2OzExMEMgMTE2NyAxMUI1OworQzg0NztDODQ3OzExMEMgMTE2NyAxMUI2O0M4NDc7MTEwQyAxMTY3IDExQjY7CitDODQ4O0M4NDg7MTEwQyAxMTY3IDExQjc7Qzg0ODsxMTBDIDExNjcgMTFCNzsKK0M4NDk7Qzg0OTsxMTBDIDExNjcgMTFCODtDODQ5OzExMEMgMTE2NyAxMUI4OworQzg0QTtDODRBOzExMEMgMTE2NyAxMUI5O0M4NEE7MTEwQyAxMTY3IDExQjk7CitDODRCO0M4NEI7MTEwQyAxMTY3IDExQkE7Qzg0QjsxMTBDIDExNjcgMTFCQTsKK0M4NEM7Qzg0QzsxMTBDIDExNjcgMTFCQjtDODRDOzExMEMgMTE2NyAxMUJCOworQzg0RDtDODREOzExMEMgMTE2NyAxMUJDO0M4NEQ7MTEwQyAxMTY3IDExQkM7CitDODRFO0M4NEU7MTEwQyAxMTY3IDExQkQ7Qzg0RTsxMTBDIDExNjcgMTFCRDsKK0M4NEY7Qzg0RjsxMTBDIDExNjcgMTFCRTtDODRGOzExMEMgMTE2NyAxMUJFOworQzg1MDtDODUwOzExMEMgMTE2NyAxMUJGO0M4NTA7MTEwQyAxMTY3IDExQkY7CitDODUxO0M4NTE7MTEwQyAxMTY3IDExQzA7Qzg1MTsxMTBDIDExNjcgMTFDMDsKK0M4NTI7Qzg1MjsxMTBDIDExNjcgMTFDMTtDODUyOzExMEMgMTE2NyAxMUMxOworQzg1MztDODUzOzExMEMgMTE2NyAxMUMyO0M4NTM7MTEwQyAxMTY3IDExQzI7CitDODU0O0M4NTQ7MTEwQyAxMTY4O0M4NTQ7MTEwQyAxMTY4OworQzg1NTtDODU1OzExMEMgMTE2OCAxMUE4O0M4NTU7MTEwQyAxMTY4IDExQTg7CitDODU2O0M4NTY7MTEwQyAxMTY4IDExQTk7Qzg1NjsxMTBDIDExNjggMTFBOTsKK0M4NTc7Qzg1NzsxMTBDIDExNjggMTFBQTtDODU3OzExMEMgMTE2OCAxMUFBOworQzg1ODtDODU4OzExMEMgMTE2OCAxMUFCO0M4NTg7MTEwQyAxMTY4IDExQUI7CitDODU5O0M4NTk7MTEwQyAxMTY4IDExQUM7Qzg1OTsxMTBDIDExNjggMTFBQzsKK0M4NUE7Qzg1QTsxMTBDIDExNjggMTFBRDtDODVBOzExMEMgMTE2OCAxMUFEOworQzg1QjtDODVCOzExMEMgMTE2OCAxMUFFO0M4NUI7MTEwQyAxMTY4IDExQUU7CitDODVDO0M4NUM7MTEwQyAxMTY4IDExQUY7Qzg1QzsxMTBDIDExNjggMTFBRjsKK0M4NUQ7Qzg1RDsxMTBDIDExNjggMTFCMDtDODVEOzExMEMgMTE2OCAxMUIwOworQzg1RTtDODVFOzExMEMgMTE2OCAxMUIxO0M4NUU7MTEwQyAxMTY4IDExQjE7CitDODVGO0M4NUY7MTEwQyAxMTY4IDExQjI7Qzg1RjsxMTBDIDExNjggMTFCMjsKK0M4NjA7Qzg2MDsxMTBDIDExNjggMTFCMztDODYwOzExMEMgMTE2OCAxMUIzOworQzg2MTtDODYxOzExMEMgMTE2OCAxMUI0O0M4NjE7MTEwQyAxMTY4IDExQjQ7CitDODYyO0M4NjI7MTEwQyAxMTY4IDExQjU7Qzg2MjsxMTBDIDExNjggMTFCNTsKK0M4NjM7Qzg2MzsxMTBDIDExNjggMTFCNjtDODYzOzExMEMgMTE2OCAxMUI2OworQzg2NDtDODY0OzExMEMgMTE2OCAxMUI3O0M4NjQ7MTEwQyAxMTY4IDExQjc7CitDODY1O0M4NjU7MTEwQyAxMTY4IDExQjg7Qzg2NTsxMTBDIDExNjggMTFCODsKK0M4NjY7Qzg2NjsxMTBDIDExNjggMTFCOTtDODY2OzExMEMgMTE2OCAxMUI5OworQzg2NztDODY3OzExMEMgMTE2OCAxMUJBO0M4Njc7MTEwQyAxMTY4IDExQkE7CitDODY4O0M4Njg7MTEwQyAxMTY4IDExQkI7Qzg2ODsxMTBDIDExNjggMTFCQjsKK0M4Njk7Qzg2OTsxMTBDIDExNjggMTFCQztDODY5OzExMEMgMTE2OCAxMUJDOworQzg2QTtDODZBOzExMEMgMTE2OCAxMUJEO0M4NkE7MTEwQyAxMTY4IDExQkQ7CitDODZCO0M4NkI7MTEwQyAxMTY4IDExQkU7Qzg2QjsxMTBDIDExNjggMTFCRTsKK0M4NkM7Qzg2QzsxMTBDIDExNjggMTFCRjtDODZDOzExMEMgMTE2OCAxMUJGOworQzg2RDtDODZEOzExMEMgMTE2OCAxMUMwO0M4NkQ7MTEwQyAxMTY4IDExQzA7CitDODZFO0M4NkU7MTEwQyAxMTY4IDExQzE7Qzg2RTsxMTBDIDExNjggMTFDMTsKK0M4NkY7Qzg2RjsxMTBDIDExNjggMTFDMjtDODZGOzExMEMgMTE2OCAxMUMyOworQzg3MDtDODcwOzExMEMgMTE2OTtDODcwOzExMEMgMTE2OTsKK0M4NzE7Qzg3MTsxMTBDIDExNjkgMTFBODtDODcxOzExMEMgMTE2OSAxMUE4OworQzg3MjtDODcyOzExMEMgMTE2OSAxMUE5O0M4NzI7MTEwQyAxMTY5IDExQTk7CitDODczO0M4NzM7MTEwQyAxMTY5IDExQUE7Qzg3MzsxMTBDIDExNjkgMTFBQTsKK0M4NzQ7Qzg3NDsxMTBDIDExNjkgMTFBQjtDODc0OzExMEMgMTE2OSAxMUFCOworQzg3NTtDODc1OzExMEMgMTE2OSAxMUFDO0M4NzU7MTEwQyAxMTY5IDExQUM7CitDODc2O0M4NzY7MTEwQyAxMTY5IDExQUQ7Qzg3NjsxMTBDIDExNjkgMTFBRDsKK0M4Nzc7Qzg3NzsxMTBDIDExNjkgMTFBRTtDODc3OzExMEMgMTE2OSAxMUFFOworQzg3ODtDODc4OzExMEMgMTE2OSAxMUFGO0M4Nzg7MTEwQyAxMTY5IDExQUY7CitDODc5O0M4Nzk7MTEwQyAxMTY5IDExQjA7Qzg3OTsxMTBDIDExNjkgMTFCMDsKK0M4N0E7Qzg3QTsxMTBDIDExNjkgMTFCMTtDODdBOzExMEMgMTE2OSAxMUIxOworQzg3QjtDODdCOzExMEMgMTE2OSAxMUIyO0M4N0I7MTEwQyAxMTY5IDExQjI7CitDODdDO0M4N0M7MTEwQyAxMTY5IDExQjM7Qzg3QzsxMTBDIDExNjkgMTFCMzsKK0M4N0Q7Qzg3RDsxMTBDIDExNjkgMTFCNDtDODdEOzExMEMgMTE2OSAxMUI0OworQzg3RTtDODdFOzExMEMgMTE2OSAxMUI1O0M4N0U7MTEwQyAxMTY5IDExQjU7CitDODdGO0M4N0Y7MTEwQyAxMTY5IDExQjY7Qzg3RjsxMTBDIDExNjkgMTFCNjsKK0M4ODA7Qzg4MDsxMTBDIDExNjkgMTFCNztDODgwOzExMEMgMTE2OSAxMUI3OworQzg4MTtDODgxOzExMEMgMTE2OSAxMUI4O0M4ODE7MTEwQyAxMTY5IDExQjg7CitDODgyO0M4ODI7MTEwQyAxMTY5IDExQjk7Qzg4MjsxMTBDIDExNjkgMTFCOTsKK0M4ODM7Qzg4MzsxMTBDIDExNjkgMTFCQTtDODgzOzExMEMgMTE2OSAxMUJBOworQzg4NDtDODg0OzExMEMgMTE2OSAxMUJCO0M4ODQ7MTEwQyAxMTY5IDExQkI7CitDODg1O0M4ODU7MTEwQyAxMTY5IDExQkM7Qzg4NTsxMTBDIDExNjkgMTFCQzsKK0M4ODY7Qzg4NjsxMTBDIDExNjkgMTFCRDtDODg2OzExMEMgMTE2OSAxMUJEOworQzg4NztDODg3OzExMEMgMTE2OSAxMUJFO0M4ODc7MTEwQyAxMTY5IDExQkU7CitDODg4O0M4ODg7MTEwQyAxMTY5IDExQkY7Qzg4ODsxMTBDIDExNjkgMTFCRjsKK0M4ODk7Qzg4OTsxMTBDIDExNjkgMTFDMDtDODg5OzExMEMgMTE2OSAxMUMwOworQzg4QTtDODhBOzExMEMgMTE2OSAxMUMxO0M4OEE7MTEwQyAxMTY5IDExQzE7CitDODhCO0M4OEI7MTEwQyAxMTY5IDExQzI7Qzg4QjsxMTBDIDExNjkgMTFDMjsKK0M4OEM7Qzg4QzsxMTBDIDExNkE7Qzg4QzsxMTBDIDExNkE7CitDODhEO0M4OEQ7MTEwQyAxMTZBIDExQTg7Qzg4RDsxMTBDIDExNkEgMTFBODsKK0M4OEU7Qzg4RTsxMTBDIDExNkEgMTFBOTtDODhFOzExMEMgMTE2QSAxMUE5OworQzg4RjtDODhGOzExMEMgMTE2QSAxMUFBO0M4OEY7MTEwQyAxMTZBIDExQUE7CitDODkwO0M4OTA7MTEwQyAxMTZBIDExQUI7Qzg5MDsxMTBDIDExNkEgMTFBQjsKK0M4OTE7Qzg5MTsxMTBDIDExNkEgMTFBQztDODkxOzExMEMgMTE2QSAxMUFDOworQzg5MjtDODkyOzExMEMgMTE2QSAxMUFEO0M4OTI7MTEwQyAxMTZBIDExQUQ7CitDODkzO0M4OTM7MTEwQyAxMTZBIDExQUU7Qzg5MzsxMTBDIDExNkEgMTFBRTsKK0M4OTQ7Qzg5NDsxMTBDIDExNkEgMTFBRjtDODk0OzExMEMgMTE2QSAxMUFGOworQzg5NTtDODk1OzExMEMgMTE2QSAxMUIwO0M4OTU7MTEwQyAxMTZBIDExQjA7CitDODk2O0M4OTY7MTEwQyAxMTZBIDExQjE7Qzg5NjsxMTBDIDExNkEgMTFCMTsKK0M4OTc7Qzg5NzsxMTBDIDExNkEgMTFCMjtDODk3OzExMEMgMTE2QSAxMUIyOworQzg5ODtDODk4OzExMEMgMTE2QSAxMUIzO0M4OTg7MTEwQyAxMTZBIDExQjM7CitDODk5O0M4OTk7MTEwQyAxMTZBIDExQjQ7Qzg5OTsxMTBDIDExNkEgMTFCNDsKK0M4OUE7Qzg5QTsxMTBDIDExNkEgMTFCNTtDODlBOzExMEMgMTE2QSAxMUI1OworQzg5QjtDODlCOzExMEMgMTE2QSAxMUI2O0M4OUI7MTEwQyAxMTZBIDExQjY7CitDODlDO0M4OUM7MTEwQyAxMTZBIDExQjc7Qzg5QzsxMTBDIDExNkEgMTFCNzsKK0M4OUQ7Qzg5RDsxMTBDIDExNkEgMTFCODtDODlEOzExMEMgMTE2QSAxMUI4OworQzg5RTtDODlFOzExMEMgMTE2QSAxMUI5O0M4OUU7MTEwQyAxMTZBIDExQjk7CitDODlGO0M4OUY7MTEwQyAxMTZBIDExQkE7Qzg5RjsxMTBDIDExNkEgMTFCQTsKK0M4QTA7QzhBMDsxMTBDIDExNkEgMTFCQjtDOEEwOzExMEMgMTE2QSAxMUJCOworQzhBMTtDOEExOzExMEMgMTE2QSAxMUJDO0M4QTE7MTEwQyAxMTZBIDExQkM7CitDOEEyO0M4QTI7MTEwQyAxMTZBIDExQkQ7QzhBMjsxMTBDIDExNkEgMTFCRDsKK0M4QTM7QzhBMzsxMTBDIDExNkEgMTFCRTtDOEEzOzExMEMgMTE2QSAxMUJFOworQzhBNDtDOEE0OzExMEMgMTE2QSAxMUJGO0M4QTQ7MTEwQyAxMTZBIDExQkY7CitDOEE1O0M4QTU7MTEwQyAxMTZBIDExQzA7QzhBNTsxMTBDIDExNkEgMTFDMDsKK0M4QTY7QzhBNjsxMTBDIDExNkEgMTFDMTtDOEE2OzExMEMgMTE2QSAxMUMxOworQzhBNztDOEE3OzExMEMgMTE2QSAxMUMyO0M4QTc7MTEwQyAxMTZBIDExQzI7CitDOEE4O0M4QTg7MTEwQyAxMTZCO0M4QTg7MTEwQyAxMTZCOworQzhBOTtDOEE5OzExMEMgMTE2QiAxMUE4O0M4QTk7MTEwQyAxMTZCIDExQTg7CitDOEFBO0M4QUE7MTEwQyAxMTZCIDExQTk7QzhBQTsxMTBDIDExNkIgMTFBOTsKK0M4QUI7QzhBQjsxMTBDIDExNkIgMTFBQTtDOEFCOzExMEMgMTE2QiAxMUFBOworQzhBQztDOEFDOzExMEMgMTE2QiAxMUFCO0M4QUM7MTEwQyAxMTZCIDExQUI7CitDOEFEO0M4QUQ7MTEwQyAxMTZCIDExQUM7QzhBRDsxMTBDIDExNkIgMTFBQzsKK0M4QUU7QzhBRTsxMTBDIDExNkIgMTFBRDtDOEFFOzExMEMgMTE2QiAxMUFEOworQzhBRjtDOEFGOzExMEMgMTE2QiAxMUFFO0M4QUY7MTEwQyAxMTZCIDExQUU7CitDOEIwO0M4QjA7MTEwQyAxMTZCIDExQUY7QzhCMDsxMTBDIDExNkIgMTFBRjsKK0M4QjE7QzhCMTsxMTBDIDExNkIgMTFCMDtDOEIxOzExMEMgMTE2QiAxMUIwOworQzhCMjtDOEIyOzExMEMgMTE2QiAxMUIxO0M4QjI7MTEwQyAxMTZCIDExQjE7CitDOEIzO0M4QjM7MTEwQyAxMTZCIDExQjI7QzhCMzsxMTBDIDExNkIgMTFCMjsKK0M4QjQ7QzhCNDsxMTBDIDExNkIgMTFCMztDOEI0OzExMEMgMTE2QiAxMUIzOworQzhCNTtDOEI1OzExMEMgMTE2QiAxMUI0O0M4QjU7MTEwQyAxMTZCIDExQjQ7CitDOEI2O0M4QjY7MTEwQyAxMTZCIDExQjU7QzhCNjsxMTBDIDExNkIgMTFCNTsKK0M4Qjc7QzhCNzsxMTBDIDExNkIgMTFCNjtDOEI3OzExMEMgMTE2QiAxMUI2OworQzhCODtDOEI4OzExMEMgMTE2QiAxMUI3O0M4Qjg7MTEwQyAxMTZCIDExQjc7CitDOEI5O0M4Qjk7MTEwQyAxMTZCIDExQjg7QzhCOTsxMTBDIDExNkIgMTFCODsKK0M4QkE7QzhCQTsxMTBDIDExNkIgMTFCOTtDOEJBOzExMEMgMTE2QiAxMUI5OworQzhCQjtDOEJCOzExMEMgMTE2QiAxMUJBO0M4QkI7MTEwQyAxMTZCIDExQkE7CitDOEJDO0M4QkM7MTEwQyAxMTZCIDExQkI7QzhCQzsxMTBDIDExNkIgMTFCQjsKK0M4QkQ7QzhCRDsxMTBDIDExNkIgMTFCQztDOEJEOzExMEMgMTE2QiAxMUJDOworQzhCRTtDOEJFOzExMEMgMTE2QiAxMUJEO0M4QkU7MTEwQyAxMTZCIDExQkQ7CitDOEJGO0M4QkY7MTEwQyAxMTZCIDExQkU7QzhCRjsxMTBDIDExNkIgMTFCRTsKK0M4QzA7QzhDMDsxMTBDIDExNkIgMTFCRjtDOEMwOzExMEMgMTE2QiAxMUJGOworQzhDMTtDOEMxOzExMEMgMTE2QiAxMUMwO0M4QzE7MTEwQyAxMTZCIDExQzA7CitDOEMyO0M4QzI7MTEwQyAxMTZCIDExQzE7QzhDMjsxMTBDIDExNkIgMTFDMTsKK0M4QzM7QzhDMzsxMTBDIDExNkIgMTFDMjtDOEMzOzExMEMgMTE2QiAxMUMyOworQzhDNDtDOEM0OzExMEMgMTE2QztDOEM0OzExMEMgMTE2QzsKK0M4QzU7QzhDNTsxMTBDIDExNkMgMTFBODtDOEM1OzExMEMgMTE2QyAxMUE4OworQzhDNjtDOEM2OzExMEMgMTE2QyAxMUE5O0M4QzY7MTEwQyAxMTZDIDExQTk7CitDOEM3O0M4Qzc7MTEwQyAxMTZDIDExQUE7QzhDNzsxMTBDIDExNkMgMTFBQTsKK0M4Qzg7QzhDODsxMTBDIDExNkMgMTFBQjtDOEM4OzExMEMgMTE2QyAxMUFCOworQzhDOTtDOEM5OzExMEMgMTE2QyAxMUFDO0M4Qzk7MTEwQyAxMTZDIDExQUM7CitDOENBO0M4Q0E7MTEwQyAxMTZDIDExQUQ7QzhDQTsxMTBDIDExNkMgMTFBRDsKK0M4Q0I7QzhDQjsxMTBDIDExNkMgMTFBRTtDOENCOzExMEMgMTE2QyAxMUFFOworQzhDQztDOENDOzExMEMgMTE2QyAxMUFGO0M4Q0M7MTEwQyAxMTZDIDExQUY7CitDOENEO0M4Q0Q7MTEwQyAxMTZDIDExQjA7QzhDRDsxMTBDIDExNkMgMTFCMDsKK0M4Q0U7QzhDRTsxMTBDIDExNkMgMTFCMTtDOENFOzExMEMgMTE2QyAxMUIxOworQzhDRjtDOENGOzExMEMgMTE2QyAxMUIyO0M4Q0Y7MTEwQyAxMTZDIDExQjI7CitDOEQwO0M4RDA7MTEwQyAxMTZDIDExQjM7QzhEMDsxMTBDIDExNkMgMTFCMzsKK0M4RDE7QzhEMTsxMTBDIDExNkMgMTFCNDtDOEQxOzExMEMgMTE2QyAxMUI0OworQzhEMjtDOEQyOzExMEMgMTE2QyAxMUI1O0M4RDI7MTEwQyAxMTZDIDExQjU7CitDOEQzO0M4RDM7MTEwQyAxMTZDIDExQjY7QzhEMzsxMTBDIDExNkMgMTFCNjsKK0M4RDQ7QzhENDsxMTBDIDExNkMgMTFCNztDOEQ0OzExMEMgMTE2QyAxMUI3OworQzhENTtDOEQ1OzExMEMgMTE2QyAxMUI4O0M4RDU7MTEwQyAxMTZDIDExQjg7CitDOEQ2O0M4RDY7MTEwQyAxMTZDIDExQjk7QzhENjsxMTBDIDExNkMgMTFCOTsKK0M4RDc7QzhENzsxMTBDIDExNkMgMTFCQTtDOEQ3OzExMEMgMTE2QyAxMUJBOworQzhEODtDOEQ4OzExMEMgMTE2QyAxMUJCO0M4RDg7MTEwQyAxMTZDIDExQkI7CitDOEQ5O0M4RDk7MTEwQyAxMTZDIDExQkM7QzhEOTsxMTBDIDExNkMgMTFCQzsKK0M4REE7QzhEQTsxMTBDIDExNkMgMTFCRDtDOERBOzExMEMgMTE2QyAxMUJEOworQzhEQjtDOERCOzExMEMgMTE2QyAxMUJFO0M4REI7MTEwQyAxMTZDIDExQkU7CitDOERDO0M4REM7MTEwQyAxMTZDIDExQkY7QzhEQzsxMTBDIDExNkMgMTFCRjsKK0M4REQ7QzhERDsxMTBDIDExNkMgMTFDMDtDOEREOzExMEMgMTE2QyAxMUMwOworQzhERTtDOERFOzExMEMgMTE2QyAxMUMxO0M4REU7MTEwQyAxMTZDIDExQzE7CitDOERGO0M4REY7MTEwQyAxMTZDIDExQzI7QzhERjsxMTBDIDExNkMgMTFDMjsKK0M4RTA7QzhFMDsxMTBDIDExNkQ7QzhFMDsxMTBDIDExNkQ7CitDOEUxO0M4RTE7MTEwQyAxMTZEIDExQTg7QzhFMTsxMTBDIDExNkQgMTFBODsKK0M4RTI7QzhFMjsxMTBDIDExNkQgMTFBOTtDOEUyOzExMEMgMTE2RCAxMUE5OworQzhFMztDOEUzOzExMEMgMTE2RCAxMUFBO0M4RTM7MTEwQyAxMTZEIDExQUE7CitDOEU0O0M4RTQ7MTEwQyAxMTZEIDExQUI7QzhFNDsxMTBDIDExNkQgMTFBQjsKK0M4RTU7QzhFNTsxMTBDIDExNkQgMTFBQztDOEU1OzExMEMgMTE2RCAxMUFDOworQzhFNjtDOEU2OzExMEMgMTE2RCAxMUFEO0M4RTY7MTEwQyAxMTZEIDExQUQ7CitDOEU3O0M4RTc7MTEwQyAxMTZEIDExQUU7QzhFNzsxMTBDIDExNkQgMTFBRTsKK0M4RTg7QzhFODsxMTBDIDExNkQgMTFBRjtDOEU4OzExMEMgMTE2RCAxMUFGOworQzhFOTtDOEU5OzExMEMgMTE2RCAxMUIwO0M4RTk7MTEwQyAxMTZEIDExQjA7CitDOEVBO0M4RUE7MTEwQyAxMTZEIDExQjE7QzhFQTsxMTBDIDExNkQgMTFCMTsKK0M4RUI7QzhFQjsxMTBDIDExNkQgMTFCMjtDOEVCOzExMEMgMTE2RCAxMUIyOworQzhFQztDOEVDOzExMEMgMTE2RCAxMUIzO0M4RUM7MTEwQyAxMTZEIDExQjM7CitDOEVEO0M4RUQ7MTEwQyAxMTZEIDExQjQ7QzhFRDsxMTBDIDExNkQgMTFCNDsKK0M4RUU7QzhFRTsxMTBDIDExNkQgMTFCNTtDOEVFOzExMEMgMTE2RCAxMUI1OworQzhFRjtDOEVGOzExMEMgMTE2RCAxMUI2O0M4RUY7MTEwQyAxMTZEIDExQjY7CitDOEYwO0M4RjA7MTEwQyAxMTZEIDExQjc7QzhGMDsxMTBDIDExNkQgMTFCNzsKK0M4RjE7QzhGMTsxMTBDIDExNkQgMTFCODtDOEYxOzExMEMgMTE2RCAxMUI4OworQzhGMjtDOEYyOzExMEMgMTE2RCAxMUI5O0M4RjI7MTEwQyAxMTZEIDExQjk7CitDOEYzO0M4RjM7MTEwQyAxMTZEIDExQkE7QzhGMzsxMTBDIDExNkQgMTFCQTsKK0M4RjQ7QzhGNDsxMTBDIDExNkQgMTFCQjtDOEY0OzExMEMgMTE2RCAxMUJCOworQzhGNTtDOEY1OzExMEMgMTE2RCAxMUJDO0M4RjU7MTEwQyAxMTZEIDExQkM7CitDOEY2O0M4RjY7MTEwQyAxMTZEIDExQkQ7QzhGNjsxMTBDIDExNkQgMTFCRDsKK0M4Rjc7QzhGNzsxMTBDIDExNkQgMTFCRTtDOEY3OzExMEMgMTE2RCAxMUJFOworQzhGODtDOEY4OzExMEMgMTE2RCAxMUJGO0M4Rjg7MTEwQyAxMTZEIDExQkY7CitDOEY5O0M4Rjk7MTEwQyAxMTZEIDExQzA7QzhGOTsxMTBDIDExNkQgMTFDMDsKK0M4RkE7QzhGQTsxMTBDIDExNkQgMTFDMTtDOEZBOzExMEMgMTE2RCAxMUMxOworQzhGQjtDOEZCOzExMEMgMTE2RCAxMUMyO0M4RkI7MTEwQyAxMTZEIDExQzI7CitDOEZDO0M4RkM7MTEwQyAxMTZFO0M4RkM7MTEwQyAxMTZFOworQzhGRDtDOEZEOzExMEMgMTE2RSAxMUE4O0M4RkQ7MTEwQyAxMTZFIDExQTg7CitDOEZFO0M4RkU7MTEwQyAxMTZFIDExQTk7QzhGRTsxMTBDIDExNkUgMTFBOTsKK0M4RkY7QzhGRjsxMTBDIDExNkUgMTFBQTtDOEZGOzExMEMgMTE2RSAxMUFBOworQzkwMDtDOTAwOzExMEMgMTE2RSAxMUFCO0M5MDA7MTEwQyAxMTZFIDExQUI7CitDOTAxO0M5MDE7MTEwQyAxMTZFIDExQUM7QzkwMTsxMTBDIDExNkUgMTFBQzsKK0M5MDI7QzkwMjsxMTBDIDExNkUgMTFBRDtDOTAyOzExMEMgMTE2RSAxMUFEOworQzkwMztDOTAzOzExMEMgMTE2RSAxMUFFO0M5MDM7MTEwQyAxMTZFIDExQUU7CitDOTA0O0M5MDQ7MTEwQyAxMTZFIDExQUY7QzkwNDsxMTBDIDExNkUgMTFBRjsKK0M5MDU7QzkwNTsxMTBDIDExNkUgMTFCMDtDOTA1OzExMEMgMTE2RSAxMUIwOworQzkwNjtDOTA2OzExMEMgMTE2RSAxMUIxO0M5MDY7MTEwQyAxMTZFIDExQjE7CitDOTA3O0M5MDc7MTEwQyAxMTZFIDExQjI7QzkwNzsxMTBDIDExNkUgMTFCMjsKK0M5MDg7QzkwODsxMTBDIDExNkUgMTFCMztDOTA4OzExMEMgMTE2RSAxMUIzOworQzkwOTtDOTA5OzExMEMgMTE2RSAxMUI0O0M5MDk7MTEwQyAxMTZFIDExQjQ7CitDOTBBO0M5MEE7MTEwQyAxMTZFIDExQjU7QzkwQTsxMTBDIDExNkUgMTFCNTsKK0M5MEI7QzkwQjsxMTBDIDExNkUgMTFCNjtDOTBCOzExMEMgMTE2RSAxMUI2OworQzkwQztDOTBDOzExMEMgMTE2RSAxMUI3O0M5MEM7MTEwQyAxMTZFIDExQjc7CitDOTBEO0M5MEQ7MTEwQyAxMTZFIDExQjg7QzkwRDsxMTBDIDExNkUgMTFCODsKK0M5MEU7QzkwRTsxMTBDIDExNkUgMTFCOTtDOTBFOzExMEMgMTE2RSAxMUI5OworQzkwRjtDOTBGOzExMEMgMTE2RSAxMUJBO0M5MEY7MTEwQyAxMTZFIDExQkE7CitDOTEwO0M5MTA7MTEwQyAxMTZFIDExQkI7QzkxMDsxMTBDIDExNkUgMTFCQjsKK0M5MTE7QzkxMTsxMTBDIDExNkUgMTFCQztDOTExOzExMEMgMTE2RSAxMUJDOworQzkxMjtDOTEyOzExMEMgMTE2RSAxMUJEO0M5MTI7MTEwQyAxMTZFIDExQkQ7CitDOTEzO0M5MTM7MTEwQyAxMTZFIDExQkU7QzkxMzsxMTBDIDExNkUgMTFCRTsKK0M5MTQ7QzkxNDsxMTBDIDExNkUgMTFCRjtDOTE0OzExMEMgMTE2RSAxMUJGOworQzkxNTtDOTE1OzExMEMgMTE2RSAxMUMwO0M5MTU7MTEwQyAxMTZFIDExQzA7CitDOTE2O0M5MTY7MTEwQyAxMTZFIDExQzE7QzkxNjsxMTBDIDExNkUgMTFDMTsKK0M5MTc7QzkxNzsxMTBDIDExNkUgMTFDMjtDOTE3OzExMEMgMTE2RSAxMUMyOworQzkxODtDOTE4OzExMEMgMTE2RjtDOTE4OzExMEMgMTE2RjsKK0M5MTk7QzkxOTsxMTBDIDExNkYgMTFBODtDOTE5OzExMEMgMTE2RiAxMUE4OworQzkxQTtDOTFBOzExMEMgMTE2RiAxMUE5O0M5MUE7MTEwQyAxMTZGIDExQTk7CitDOTFCO0M5MUI7MTEwQyAxMTZGIDExQUE7QzkxQjsxMTBDIDExNkYgMTFBQTsKK0M5MUM7QzkxQzsxMTBDIDExNkYgMTFBQjtDOTFDOzExMEMgMTE2RiAxMUFCOworQzkxRDtDOTFEOzExMEMgMTE2RiAxMUFDO0M5MUQ7MTEwQyAxMTZGIDExQUM7CitDOTFFO0M5MUU7MTEwQyAxMTZGIDExQUQ7QzkxRTsxMTBDIDExNkYgMTFBRDsKK0M5MUY7QzkxRjsxMTBDIDExNkYgMTFBRTtDOTFGOzExMEMgMTE2RiAxMUFFOworQzkyMDtDOTIwOzExMEMgMTE2RiAxMUFGO0M5MjA7MTEwQyAxMTZGIDExQUY7CitDOTIxO0M5MjE7MTEwQyAxMTZGIDExQjA7QzkyMTsxMTBDIDExNkYgMTFCMDsKK0M5MjI7QzkyMjsxMTBDIDExNkYgMTFCMTtDOTIyOzExMEMgMTE2RiAxMUIxOworQzkyMztDOTIzOzExMEMgMTE2RiAxMUIyO0M5MjM7MTEwQyAxMTZGIDExQjI7CitDOTI0O0M5MjQ7MTEwQyAxMTZGIDExQjM7QzkyNDsxMTBDIDExNkYgMTFCMzsKK0M5MjU7QzkyNTsxMTBDIDExNkYgMTFCNDtDOTI1OzExMEMgMTE2RiAxMUI0OworQzkyNjtDOTI2OzExMEMgMTE2RiAxMUI1O0M5MjY7MTEwQyAxMTZGIDExQjU7CitDOTI3O0M5Mjc7MTEwQyAxMTZGIDExQjY7QzkyNzsxMTBDIDExNkYgMTFCNjsKK0M5Mjg7QzkyODsxMTBDIDExNkYgMTFCNztDOTI4OzExMEMgMTE2RiAxMUI3OworQzkyOTtDOTI5OzExMEMgMTE2RiAxMUI4O0M5Mjk7MTEwQyAxMTZGIDExQjg7CitDOTJBO0M5MkE7MTEwQyAxMTZGIDExQjk7QzkyQTsxMTBDIDExNkYgMTFCOTsKK0M5MkI7QzkyQjsxMTBDIDExNkYgMTFCQTtDOTJCOzExMEMgMTE2RiAxMUJBOworQzkyQztDOTJDOzExMEMgMTE2RiAxMUJCO0M5MkM7MTEwQyAxMTZGIDExQkI7CitDOTJEO0M5MkQ7MTEwQyAxMTZGIDExQkM7QzkyRDsxMTBDIDExNkYgMTFCQzsKK0M5MkU7QzkyRTsxMTBDIDExNkYgMTFCRDtDOTJFOzExMEMgMTE2RiAxMUJEOworQzkyRjtDOTJGOzExMEMgMTE2RiAxMUJFO0M5MkY7MTEwQyAxMTZGIDExQkU7CitDOTMwO0M5MzA7MTEwQyAxMTZGIDExQkY7QzkzMDsxMTBDIDExNkYgMTFCRjsKK0M5MzE7QzkzMTsxMTBDIDExNkYgMTFDMDtDOTMxOzExMEMgMTE2RiAxMUMwOworQzkzMjtDOTMyOzExMEMgMTE2RiAxMUMxO0M5MzI7MTEwQyAxMTZGIDExQzE7CitDOTMzO0M5MzM7MTEwQyAxMTZGIDExQzI7QzkzMzsxMTBDIDExNkYgMTFDMjsKK0M5MzQ7QzkzNDsxMTBDIDExNzA7QzkzNDsxMTBDIDExNzA7CitDOTM1O0M5MzU7MTEwQyAxMTcwIDExQTg7QzkzNTsxMTBDIDExNzAgMTFBODsKK0M5MzY7QzkzNjsxMTBDIDExNzAgMTFBOTtDOTM2OzExMEMgMTE3MCAxMUE5OworQzkzNztDOTM3OzExMEMgMTE3MCAxMUFBO0M5Mzc7MTEwQyAxMTcwIDExQUE7CitDOTM4O0M5Mzg7MTEwQyAxMTcwIDExQUI7QzkzODsxMTBDIDExNzAgMTFBQjsKK0M5Mzk7QzkzOTsxMTBDIDExNzAgMTFBQztDOTM5OzExMEMgMTE3MCAxMUFDOworQzkzQTtDOTNBOzExMEMgMTE3MCAxMUFEO0M5M0E7MTEwQyAxMTcwIDExQUQ7CitDOTNCO0M5M0I7MTEwQyAxMTcwIDExQUU7QzkzQjsxMTBDIDExNzAgMTFBRTsKK0M5M0M7QzkzQzsxMTBDIDExNzAgMTFBRjtDOTNDOzExMEMgMTE3MCAxMUFGOworQzkzRDtDOTNEOzExMEMgMTE3MCAxMUIwO0M5M0Q7MTEwQyAxMTcwIDExQjA7CitDOTNFO0M5M0U7MTEwQyAxMTcwIDExQjE7QzkzRTsxMTBDIDExNzAgMTFCMTsKK0M5M0Y7QzkzRjsxMTBDIDExNzAgMTFCMjtDOTNGOzExMEMgMTE3MCAxMUIyOworQzk0MDtDOTQwOzExMEMgMTE3MCAxMUIzO0M5NDA7MTEwQyAxMTcwIDExQjM7CitDOTQxO0M5NDE7MTEwQyAxMTcwIDExQjQ7Qzk0MTsxMTBDIDExNzAgMTFCNDsKK0M5NDI7Qzk0MjsxMTBDIDExNzAgMTFCNTtDOTQyOzExMEMgMTE3MCAxMUI1OworQzk0MztDOTQzOzExMEMgMTE3MCAxMUI2O0M5NDM7MTEwQyAxMTcwIDExQjY7CitDOTQ0O0M5NDQ7MTEwQyAxMTcwIDExQjc7Qzk0NDsxMTBDIDExNzAgMTFCNzsKK0M5NDU7Qzk0NTsxMTBDIDExNzAgMTFCODtDOTQ1OzExMEMgMTE3MCAxMUI4OworQzk0NjtDOTQ2OzExMEMgMTE3MCAxMUI5O0M5NDY7MTEwQyAxMTcwIDExQjk7CitDOTQ3O0M5NDc7MTEwQyAxMTcwIDExQkE7Qzk0NzsxMTBDIDExNzAgMTFCQTsKK0M5NDg7Qzk0ODsxMTBDIDExNzAgMTFCQjtDOTQ4OzExMEMgMTE3MCAxMUJCOworQzk0OTtDOTQ5OzExMEMgMTE3MCAxMUJDO0M5NDk7MTEwQyAxMTcwIDExQkM7CitDOTRBO0M5NEE7MTEwQyAxMTcwIDExQkQ7Qzk0QTsxMTBDIDExNzAgMTFCRDsKK0M5NEI7Qzk0QjsxMTBDIDExNzAgMTFCRTtDOTRCOzExMEMgMTE3MCAxMUJFOworQzk0QztDOTRDOzExMEMgMTE3MCAxMUJGO0M5NEM7MTEwQyAxMTcwIDExQkY7CitDOTREO0M5NEQ7MTEwQyAxMTcwIDExQzA7Qzk0RDsxMTBDIDExNzAgMTFDMDsKK0M5NEU7Qzk0RTsxMTBDIDExNzAgMTFDMTtDOTRFOzExMEMgMTE3MCAxMUMxOworQzk0RjtDOTRGOzExMEMgMTE3MCAxMUMyO0M5NEY7MTEwQyAxMTcwIDExQzI7CitDOTUwO0M5NTA7MTEwQyAxMTcxO0M5NTA7MTEwQyAxMTcxOworQzk1MTtDOTUxOzExMEMgMTE3MSAxMUE4O0M5NTE7MTEwQyAxMTcxIDExQTg7CitDOTUyO0M5NTI7MTEwQyAxMTcxIDExQTk7Qzk1MjsxMTBDIDExNzEgMTFBOTsKK0M5NTM7Qzk1MzsxMTBDIDExNzEgMTFBQTtDOTUzOzExMEMgMTE3MSAxMUFBOworQzk1NDtDOTU0OzExMEMgMTE3MSAxMUFCO0M5NTQ7MTEwQyAxMTcxIDExQUI7CitDOTU1O0M5NTU7MTEwQyAxMTcxIDExQUM7Qzk1NTsxMTBDIDExNzEgMTFBQzsKK0M5NTY7Qzk1NjsxMTBDIDExNzEgMTFBRDtDOTU2OzExMEMgMTE3MSAxMUFEOworQzk1NztDOTU3OzExMEMgMTE3MSAxMUFFO0M5NTc7MTEwQyAxMTcxIDExQUU7CitDOTU4O0M5NTg7MTEwQyAxMTcxIDExQUY7Qzk1ODsxMTBDIDExNzEgMTFBRjsKK0M5NTk7Qzk1OTsxMTBDIDExNzEgMTFCMDtDOTU5OzExMEMgMTE3MSAxMUIwOworQzk1QTtDOTVBOzExMEMgMTE3MSAxMUIxO0M5NUE7MTEwQyAxMTcxIDExQjE7CitDOTVCO0M5NUI7MTEwQyAxMTcxIDExQjI7Qzk1QjsxMTBDIDExNzEgMTFCMjsKK0M5NUM7Qzk1QzsxMTBDIDExNzEgMTFCMztDOTVDOzExMEMgMTE3MSAxMUIzOworQzk1RDtDOTVEOzExMEMgMTE3MSAxMUI0O0M5NUQ7MTEwQyAxMTcxIDExQjQ7CitDOTVFO0M5NUU7MTEwQyAxMTcxIDExQjU7Qzk1RTsxMTBDIDExNzEgMTFCNTsKK0M5NUY7Qzk1RjsxMTBDIDExNzEgMTFCNjtDOTVGOzExMEMgMTE3MSAxMUI2OworQzk2MDtDOTYwOzExMEMgMTE3MSAxMUI3O0M5NjA7MTEwQyAxMTcxIDExQjc7CitDOTYxO0M5NjE7MTEwQyAxMTcxIDExQjg7Qzk2MTsxMTBDIDExNzEgMTFCODsKK0M5NjI7Qzk2MjsxMTBDIDExNzEgMTFCOTtDOTYyOzExMEMgMTE3MSAxMUI5OworQzk2MztDOTYzOzExMEMgMTE3MSAxMUJBO0M5NjM7MTEwQyAxMTcxIDExQkE7CitDOTY0O0M5NjQ7MTEwQyAxMTcxIDExQkI7Qzk2NDsxMTBDIDExNzEgMTFCQjsKK0M5NjU7Qzk2NTsxMTBDIDExNzEgMTFCQztDOTY1OzExMEMgMTE3MSAxMUJDOworQzk2NjtDOTY2OzExMEMgMTE3MSAxMUJEO0M5NjY7MTEwQyAxMTcxIDExQkQ7CitDOTY3O0M5Njc7MTEwQyAxMTcxIDExQkU7Qzk2NzsxMTBDIDExNzEgMTFCRTsKK0M5Njg7Qzk2ODsxMTBDIDExNzEgMTFCRjtDOTY4OzExMEMgMTE3MSAxMUJGOworQzk2OTtDOTY5OzExMEMgMTE3MSAxMUMwO0M5Njk7MTEwQyAxMTcxIDExQzA7CitDOTZBO0M5NkE7MTEwQyAxMTcxIDExQzE7Qzk2QTsxMTBDIDExNzEgMTFDMTsKK0M5NkI7Qzk2QjsxMTBDIDExNzEgMTFDMjtDOTZCOzExMEMgMTE3MSAxMUMyOworQzk2QztDOTZDOzExMEMgMTE3MjtDOTZDOzExMEMgMTE3MjsKK0M5NkQ7Qzk2RDsxMTBDIDExNzIgMTFBODtDOTZEOzExMEMgMTE3MiAxMUE4OworQzk2RTtDOTZFOzExMEMgMTE3MiAxMUE5O0M5NkU7MTEwQyAxMTcyIDExQTk7CitDOTZGO0M5NkY7MTEwQyAxMTcyIDExQUE7Qzk2RjsxMTBDIDExNzIgMTFBQTsKK0M5NzA7Qzk3MDsxMTBDIDExNzIgMTFBQjtDOTcwOzExMEMgMTE3MiAxMUFCOworQzk3MTtDOTcxOzExMEMgMTE3MiAxMUFDO0M5NzE7MTEwQyAxMTcyIDExQUM7CitDOTcyO0M5NzI7MTEwQyAxMTcyIDExQUQ7Qzk3MjsxMTBDIDExNzIgMTFBRDsKK0M5NzM7Qzk3MzsxMTBDIDExNzIgMTFBRTtDOTczOzExMEMgMTE3MiAxMUFFOworQzk3NDtDOTc0OzExMEMgMTE3MiAxMUFGO0M5NzQ7MTEwQyAxMTcyIDExQUY7CitDOTc1O0M5NzU7MTEwQyAxMTcyIDExQjA7Qzk3NTsxMTBDIDExNzIgMTFCMDsKK0M5NzY7Qzk3NjsxMTBDIDExNzIgMTFCMTtDOTc2OzExMEMgMTE3MiAxMUIxOworQzk3NztDOTc3OzExMEMgMTE3MiAxMUIyO0M5Nzc7MTEwQyAxMTcyIDExQjI7CitDOTc4O0M5Nzg7MTEwQyAxMTcyIDExQjM7Qzk3ODsxMTBDIDExNzIgMTFCMzsKK0M5Nzk7Qzk3OTsxMTBDIDExNzIgMTFCNDtDOTc5OzExMEMgMTE3MiAxMUI0OworQzk3QTtDOTdBOzExMEMgMTE3MiAxMUI1O0M5N0E7MTEwQyAxMTcyIDExQjU7CitDOTdCO0M5N0I7MTEwQyAxMTcyIDExQjY7Qzk3QjsxMTBDIDExNzIgMTFCNjsKK0M5N0M7Qzk3QzsxMTBDIDExNzIgMTFCNztDOTdDOzExMEMgMTE3MiAxMUI3OworQzk3RDtDOTdEOzExMEMgMTE3MiAxMUI4O0M5N0Q7MTEwQyAxMTcyIDExQjg7CitDOTdFO0M5N0U7MTEwQyAxMTcyIDExQjk7Qzk3RTsxMTBDIDExNzIgMTFCOTsKK0M5N0Y7Qzk3RjsxMTBDIDExNzIgMTFCQTtDOTdGOzExMEMgMTE3MiAxMUJBOworQzk4MDtDOTgwOzExMEMgMTE3MiAxMUJCO0M5ODA7MTEwQyAxMTcyIDExQkI7CitDOTgxO0M5ODE7MTEwQyAxMTcyIDExQkM7Qzk4MTsxMTBDIDExNzIgMTFCQzsKK0M5ODI7Qzk4MjsxMTBDIDExNzIgMTFCRDtDOTgyOzExMEMgMTE3MiAxMUJEOworQzk4MztDOTgzOzExMEMgMTE3MiAxMUJFO0M5ODM7MTEwQyAxMTcyIDExQkU7CitDOTg0O0M5ODQ7MTEwQyAxMTcyIDExQkY7Qzk4NDsxMTBDIDExNzIgMTFCRjsKK0M5ODU7Qzk4NTsxMTBDIDExNzIgMTFDMDtDOTg1OzExMEMgMTE3MiAxMUMwOworQzk4NjtDOTg2OzExMEMgMTE3MiAxMUMxO0M5ODY7MTEwQyAxMTcyIDExQzE7CitDOTg3O0M5ODc7MTEwQyAxMTcyIDExQzI7Qzk4NzsxMTBDIDExNzIgMTFDMjsKK0M5ODg7Qzk4ODsxMTBDIDExNzM7Qzk4ODsxMTBDIDExNzM7CitDOTg5O0M5ODk7MTEwQyAxMTczIDExQTg7Qzk4OTsxMTBDIDExNzMgMTFBODsKK0M5OEE7Qzk4QTsxMTBDIDExNzMgMTFBOTtDOThBOzExMEMgMTE3MyAxMUE5OworQzk4QjtDOThCOzExMEMgMTE3MyAxMUFBO0M5OEI7MTEwQyAxMTczIDExQUE7CitDOThDO0M5OEM7MTEwQyAxMTczIDExQUI7Qzk4QzsxMTBDIDExNzMgMTFBQjsKK0M5OEQ7Qzk4RDsxMTBDIDExNzMgMTFBQztDOThEOzExMEMgMTE3MyAxMUFDOworQzk4RTtDOThFOzExMEMgMTE3MyAxMUFEO0M5OEU7MTEwQyAxMTczIDExQUQ7CitDOThGO0M5OEY7MTEwQyAxMTczIDExQUU7Qzk4RjsxMTBDIDExNzMgMTFBRTsKK0M5OTA7Qzk5MDsxMTBDIDExNzMgMTFBRjtDOTkwOzExMEMgMTE3MyAxMUFGOworQzk5MTtDOTkxOzExMEMgMTE3MyAxMUIwO0M5OTE7MTEwQyAxMTczIDExQjA7CitDOTkyO0M5OTI7MTEwQyAxMTczIDExQjE7Qzk5MjsxMTBDIDExNzMgMTFCMTsKK0M5OTM7Qzk5MzsxMTBDIDExNzMgMTFCMjtDOTkzOzExMEMgMTE3MyAxMUIyOworQzk5NDtDOTk0OzExMEMgMTE3MyAxMUIzO0M5OTQ7MTEwQyAxMTczIDExQjM7CitDOTk1O0M5OTU7MTEwQyAxMTczIDExQjQ7Qzk5NTsxMTBDIDExNzMgMTFCNDsKK0M5OTY7Qzk5NjsxMTBDIDExNzMgMTFCNTtDOTk2OzExMEMgMTE3MyAxMUI1OworQzk5NztDOTk3OzExMEMgMTE3MyAxMUI2O0M5OTc7MTEwQyAxMTczIDExQjY7CitDOTk4O0M5OTg7MTEwQyAxMTczIDExQjc7Qzk5ODsxMTBDIDExNzMgMTFCNzsKK0M5OTk7Qzk5OTsxMTBDIDExNzMgMTFCODtDOTk5OzExMEMgMTE3MyAxMUI4OworQzk5QTtDOTlBOzExMEMgMTE3MyAxMUI5O0M5OUE7MTEwQyAxMTczIDExQjk7CitDOTlCO0M5OUI7MTEwQyAxMTczIDExQkE7Qzk5QjsxMTBDIDExNzMgMTFCQTsKK0M5OUM7Qzk5QzsxMTBDIDExNzMgMTFCQjtDOTlDOzExMEMgMTE3MyAxMUJCOworQzk5RDtDOTlEOzExMEMgMTE3MyAxMUJDO0M5OUQ7MTEwQyAxMTczIDExQkM7CitDOTlFO0M5OUU7MTEwQyAxMTczIDExQkQ7Qzk5RTsxMTBDIDExNzMgMTFCRDsKK0M5OUY7Qzk5RjsxMTBDIDExNzMgMTFCRTtDOTlGOzExMEMgMTE3MyAxMUJFOworQzlBMDtDOUEwOzExMEMgMTE3MyAxMUJGO0M5QTA7MTEwQyAxMTczIDExQkY7CitDOUExO0M5QTE7MTEwQyAxMTczIDExQzA7QzlBMTsxMTBDIDExNzMgMTFDMDsKK0M5QTI7QzlBMjsxMTBDIDExNzMgMTFDMTtDOUEyOzExMEMgMTE3MyAxMUMxOworQzlBMztDOUEzOzExMEMgMTE3MyAxMUMyO0M5QTM7MTEwQyAxMTczIDExQzI7CitDOUE0O0M5QTQ7MTEwQyAxMTc0O0M5QTQ7MTEwQyAxMTc0OworQzlBNTtDOUE1OzExMEMgMTE3NCAxMUE4O0M5QTU7MTEwQyAxMTc0IDExQTg7CitDOUE2O0M5QTY7MTEwQyAxMTc0IDExQTk7QzlBNjsxMTBDIDExNzQgMTFBOTsKK0M5QTc7QzlBNzsxMTBDIDExNzQgMTFBQTtDOUE3OzExMEMgMTE3NCAxMUFBOworQzlBODtDOUE4OzExMEMgMTE3NCAxMUFCO0M5QTg7MTEwQyAxMTc0IDExQUI7CitDOUE5O0M5QTk7MTEwQyAxMTc0IDExQUM7QzlBOTsxMTBDIDExNzQgMTFBQzsKK0M5QUE7QzlBQTsxMTBDIDExNzQgMTFBRDtDOUFBOzExMEMgMTE3NCAxMUFEOworQzlBQjtDOUFCOzExMEMgMTE3NCAxMUFFO0M5QUI7MTEwQyAxMTc0IDExQUU7CitDOUFDO0M5QUM7MTEwQyAxMTc0IDExQUY7QzlBQzsxMTBDIDExNzQgMTFBRjsKK0M5QUQ7QzlBRDsxMTBDIDExNzQgMTFCMDtDOUFEOzExMEMgMTE3NCAxMUIwOworQzlBRTtDOUFFOzExMEMgMTE3NCAxMUIxO0M5QUU7MTEwQyAxMTc0IDExQjE7CitDOUFGO0M5QUY7MTEwQyAxMTc0IDExQjI7QzlBRjsxMTBDIDExNzQgMTFCMjsKK0M5QjA7QzlCMDsxMTBDIDExNzQgMTFCMztDOUIwOzExMEMgMTE3NCAxMUIzOworQzlCMTtDOUIxOzExMEMgMTE3NCAxMUI0O0M5QjE7MTEwQyAxMTc0IDExQjQ7CitDOUIyO0M5QjI7MTEwQyAxMTc0IDExQjU7QzlCMjsxMTBDIDExNzQgMTFCNTsKK0M5QjM7QzlCMzsxMTBDIDExNzQgMTFCNjtDOUIzOzExMEMgMTE3NCAxMUI2OworQzlCNDtDOUI0OzExMEMgMTE3NCAxMUI3O0M5QjQ7MTEwQyAxMTc0IDExQjc7CitDOUI1O0M5QjU7MTEwQyAxMTc0IDExQjg7QzlCNTsxMTBDIDExNzQgMTFCODsKK0M5QjY7QzlCNjsxMTBDIDExNzQgMTFCOTtDOUI2OzExMEMgMTE3NCAxMUI5OworQzlCNztDOUI3OzExMEMgMTE3NCAxMUJBO0M5Qjc7MTEwQyAxMTc0IDExQkE7CitDOUI4O0M5Qjg7MTEwQyAxMTc0IDExQkI7QzlCODsxMTBDIDExNzQgMTFCQjsKK0M5Qjk7QzlCOTsxMTBDIDExNzQgMTFCQztDOUI5OzExMEMgMTE3NCAxMUJDOworQzlCQTtDOUJBOzExMEMgMTE3NCAxMUJEO0M5QkE7MTEwQyAxMTc0IDExQkQ7CitDOUJCO0M5QkI7MTEwQyAxMTc0IDExQkU7QzlCQjsxMTBDIDExNzQgMTFCRTsKK0M5QkM7QzlCQzsxMTBDIDExNzQgMTFCRjtDOUJDOzExMEMgMTE3NCAxMUJGOworQzlCRDtDOUJEOzExMEMgMTE3NCAxMUMwO0M5QkQ7MTEwQyAxMTc0IDExQzA7CitDOUJFO0M5QkU7MTEwQyAxMTc0IDExQzE7QzlCRTsxMTBDIDExNzQgMTFDMTsKK0M5QkY7QzlCRjsxMTBDIDExNzQgMTFDMjtDOUJGOzExMEMgMTE3NCAxMUMyOworQzlDMDtDOUMwOzExMEMgMTE3NTtDOUMwOzExMEMgMTE3NTsKK0M5QzE7QzlDMTsxMTBDIDExNzUgMTFBODtDOUMxOzExMEMgMTE3NSAxMUE4OworQzlDMjtDOUMyOzExMEMgMTE3NSAxMUE5O0M5QzI7MTEwQyAxMTc1IDExQTk7CitDOUMzO0M5QzM7MTEwQyAxMTc1IDExQUE7QzlDMzsxMTBDIDExNzUgMTFBQTsKK0M5QzQ7QzlDNDsxMTBDIDExNzUgMTFBQjtDOUM0OzExMEMgMTE3NSAxMUFCOworQzlDNTtDOUM1OzExMEMgMTE3NSAxMUFDO0M5QzU7MTEwQyAxMTc1IDExQUM7CitDOUM2O0M5QzY7MTEwQyAxMTc1IDExQUQ7QzlDNjsxMTBDIDExNzUgMTFBRDsKK0M5Qzc7QzlDNzsxMTBDIDExNzUgMTFBRTtDOUM3OzExMEMgMTE3NSAxMUFFOworQzlDODtDOUM4OzExMEMgMTE3NSAxMUFGO0M5Qzg7MTEwQyAxMTc1IDExQUY7CitDOUM5O0M5Qzk7MTEwQyAxMTc1IDExQjA7QzlDOTsxMTBDIDExNzUgMTFCMDsKK0M5Q0E7QzlDQTsxMTBDIDExNzUgMTFCMTtDOUNBOzExMEMgMTE3NSAxMUIxOworQzlDQjtDOUNCOzExMEMgMTE3NSAxMUIyO0M5Q0I7MTEwQyAxMTc1IDExQjI7CitDOUNDO0M5Q0M7MTEwQyAxMTc1IDExQjM7QzlDQzsxMTBDIDExNzUgMTFCMzsKK0M5Q0Q7QzlDRDsxMTBDIDExNzUgMTFCNDtDOUNEOzExMEMgMTE3NSAxMUI0OworQzlDRTtDOUNFOzExMEMgMTE3NSAxMUI1O0M5Q0U7MTEwQyAxMTc1IDExQjU7CitDOUNGO0M5Q0Y7MTEwQyAxMTc1IDExQjY7QzlDRjsxMTBDIDExNzUgMTFCNjsKK0M5RDA7QzlEMDsxMTBDIDExNzUgMTFCNztDOUQwOzExMEMgMTE3NSAxMUI3OworQzlEMTtDOUQxOzExMEMgMTE3NSAxMUI4O0M5RDE7MTEwQyAxMTc1IDExQjg7CitDOUQyO0M5RDI7MTEwQyAxMTc1IDExQjk7QzlEMjsxMTBDIDExNzUgMTFCOTsKK0M5RDM7QzlEMzsxMTBDIDExNzUgMTFCQTtDOUQzOzExMEMgMTE3NSAxMUJBOworQzlENDtDOUQ0OzExMEMgMTE3NSAxMUJCO0M5RDQ7MTEwQyAxMTc1IDExQkI7CitDOUQ1O0M5RDU7MTEwQyAxMTc1IDExQkM7QzlENTsxMTBDIDExNzUgMTFCQzsKK0M5RDY7QzlENjsxMTBDIDExNzUgMTFCRDtDOUQ2OzExMEMgMTE3NSAxMUJEOworQzlENztDOUQ3OzExMEMgMTE3NSAxMUJFO0M5RDc7MTEwQyAxMTc1IDExQkU7CitDOUQ4O0M5RDg7MTEwQyAxMTc1IDExQkY7QzlEODsxMTBDIDExNzUgMTFCRjsKK0M5RDk7QzlEOTsxMTBDIDExNzUgMTFDMDtDOUQ5OzExMEMgMTE3NSAxMUMwOworQzlEQTtDOURBOzExMEMgMTE3NSAxMUMxO0M5REE7MTEwQyAxMTc1IDExQzE7CitDOURCO0M5REI7MTEwQyAxMTc1IDExQzI7QzlEQjsxMTBDIDExNzUgMTFDMjsKK0M5REM7QzlEQzsxMTBEIDExNjE7QzlEQzsxMTBEIDExNjE7CitDOUREO0M5REQ7MTEwRCAxMTYxIDExQTg7QzlERDsxMTBEIDExNjEgMTFBODsKK0M5REU7QzlERTsxMTBEIDExNjEgMTFBOTtDOURFOzExMEQgMTE2MSAxMUE5OworQzlERjtDOURGOzExMEQgMTE2MSAxMUFBO0M5REY7MTEwRCAxMTYxIDExQUE7CitDOUUwO0M5RTA7MTEwRCAxMTYxIDExQUI7QzlFMDsxMTBEIDExNjEgMTFBQjsKK0M5RTE7QzlFMTsxMTBEIDExNjEgMTFBQztDOUUxOzExMEQgMTE2MSAxMUFDOworQzlFMjtDOUUyOzExMEQgMTE2MSAxMUFEO0M5RTI7MTEwRCAxMTYxIDExQUQ7CitDOUUzO0M5RTM7MTEwRCAxMTYxIDExQUU7QzlFMzsxMTBEIDExNjEgMTFBRTsKK0M5RTQ7QzlFNDsxMTBEIDExNjEgMTFBRjtDOUU0OzExMEQgMTE2MSAxMUFGOworQzlFNTtDOUU1OzExMEQgMTE2MSAxMUIwO0M5RTU7MTEwRCAxMTYxIDExQjA7CitDOUU2O0M5RTY7MTEwRCAxMTYxIDExQjE7QzlFNjsxMTBEIDExNjEgMTFCMTsKK0M5RTc7QzlFNzsxMTBEIDExNjEgMTFCMjtDOUU3OzExMEQgMTE2MSAxMUIyOworQzlFODtDOUU4OzExMEQgMTE2MSAxMUIzO0M5RTg7MTEwRCAxMTYxIDExQjM7CitDOUU5O0M5RTk7MTEwRCAxMTYxIDExQjQ7QzlFOTsxMTBEIDExNjEgMTFCNDsKK0M5RUE7QzlFQTsxMTBEIDExNjEgMTFCNTtDOUVBOzExMEQgMTE2MSAxMUI1OworQzlFQjtDOUVCOzExMEQgMTE2MSAxMUI2O0M5RUI7MTEwRCAxMTYxIDExQjY7CitDOUVDO0M5RUM7MTEwRCAxMTYxIDExQjc7QzlFQzsxMTBEIDExNjEgMTFCNzsKK0M5RUQ7QzlFRDsxMTBEIDExNjEgMTFCODtDOUVEOzExMEQgMTE2MSAxMUI4OworQzlFRTtDOUVFOzExMEQgMTE2MSAxMUI5O0M5RUU7MTEwRCAxMTYxIDExQjk7CitDOUVGO0M5RUY7MTEwRCAxMTYxIDExQkE7QzlFRjsxMTBEIDExNjEgMTFCQTsKK0M5RjA7QzlGMDsxMTBEIDExNjEgMTFCQjtDOUYwOzExMEQgMTE2MSAxMUJCOworQzlGMTtDOUYxOzExMEQgMTE2MSAxMUJDO0M5RjE7MTEwRCAxMTYxIDExQkM7CitDOUYyO0M5RjI7MTEwRCAxMTYxIDExQkQ7QzlGMjsxMTBEIDExNjEgMTFCRDsKK0M5RjM7QzlGMzsxMTBEIDExNjEgMTFCRTtDOUYzOzExMEQgMTE2MSAxMUJFOworQzlGNDtDOUY0OzExMEQgMTE2MSAxMUJGO0M5RjQ7MTEwRCAxMTYxIDExQkY7CitDOUY1O0M5RjU7MTEwRCAxMTYxIDExQzA7QzlGNTsxMTBEIDExNjEgMTFDMDsKK0M5RjY7QzlGNjsxMTBEIDExNjEgMTFDMTtDOUY2OzExMEQgMTE2MSAxMUMxOworQzlGNztDOUY3OzExMEQgMTE2MSAxMUMyO0M5Rjc7MTEwRCAxMTYxIDExQzI7CitDOUY4O0M5Rjg7MTEwRCAxMTYyO0M5Rjg7MTEwRCAxMTYyOworQzlGOTtDOUY5OzExMEQgMTE2MiAxMUE4O0M5Rjk7MTEwRCAxMTYyIDExQTg7CitDOUZBO0M5RkE7MTEwRCAxMTYyIDExQTk7QzlGQTsxMTBEIDExNjIgMTFBOTsKK0M5RkI7QzlGQjsxMTBEIDExNjIgMTFBQTtDOUZCOzExMEQgMTE2MiAxMUFBOworQzlGQztDOUZDOzExMEQgMTE2MiAxMUFCO0M5RkM7MTEwRCAxMTYyIDExQUI7CitDOUZEO0M5RkQ7MTEwRCAxMTYyIDExQUM7QzlGRDsxMTBEIDExNjIgMTFBQzsKK0M5RkU7QzlGRTsxMTBEIDExNjIgMTFBRDtDOUZFOzExMEQgMTE2MiAxMUFEOworQzlGRjtDOUZGOzExMEQgMTE2MiAxMUFFO0M5RkY7MTEwRCAxMTYyIDExQUU7CitDQTAwO0NBMDA7MTEwRCAxMTYyIDExQUY7Q0EwMDsxMTBEIDExNjIgMTFBRjsKK0NBMDE7Q0EwMTsxMTBEIDExNjIgMTFCMDtDQTAxOzExMEQgMTE2MiAxMUIwOworQ0EwMjtDQTAyOzExMEQgMTE2MiAxMUIxO0NBMDI7MTEwRCAxMTYyIDExQjE7CitDQTAzO0NBMDM7MTEwRCAxMTYyIDExQjI7Q0EwMzsxMTBEIDExNjIgMTFCMjsKK0NBMDQ7Q0EwNDsxMTBEIDExNjIgMTFCMztDQTA0OzExMEQgMTE2MiAxMUIzOworQ0EwNTtDQTA1OzExMEQgMTE2MiAxMUI0O0NBMDU7MTEwRCAxMTYyIDExQjQ7CitDQTA2O0NBMDY7MTEwRCAxMTYyIDExQjU7Q0EwNjsxMTBEIDExNjIgMTFCNTsKK0NBMDc7Q0EwNzsxMTBEIDExNjIgMTFCNjtDQTA3OzExMEQgMTE2MiAxMUI2OworQ0EwODtDQTA4OzExMEQgMTE2MiAxMUI3O0NBMDg7MTEwRCAxMTYyIDExQjc7CitDQTA5O0NBMDk7MTEwRCAxMTYyIDExQjg7Q0EwOTsxMTBEIDExNjIgMTFCODsKK0NBMEE7Q0EwQTsxMTBEIDExNjIgMTFCOTtDQTBBOzExMEQgMTE2MiAxMUI5OworQ0EwQjtDQTBCOzExMEQgMTE2MiAxMUJBO0NBMEI7MTEwRCAxMTYyIDExQkE7CitDQTBDO0NBMEM7MTEwRCAxMTYyIDExQkI7Q0EwQzsxMTBEIDExNjIgMTFCQjsKK0NBMEQ7Q0EwRDsxMTBEIDExNjIgMTFCQztDQTBEOzExMEQgMTE2MiAxMUJDOworQ0EwRTtDQTBFOzExMEQgMTE2MiAxMUJEO0NBMEU7MTEwRCAxMTYyIDExQkQ7CitDQTBGO0NBMEY7MTEwRCAxMTYyIDExQkU7Q0EwRjsxMTBEIDExNjIgMTFCRTsKK0NBMTA7Q0ExMDsxMTBEIDExNjIgMTFCRjtDQTEwOzExMEQgMTE2MiAxMUJGOworQ0ExMTtDQTExOzExMEQgMTE2MiAxMUMwO0NBMTE7MTEwRCAxMTYyIDExQzA7CitDQTEyO0NBMTI7MTEwRCAxMTYyIDExQzE7Q0ExMjsxMTBEIDExNjIgMTFDMTsKK0NBMTM7Q0ExMzsxMTBEIDExNjIgMTFDMjtDQTEzOzExMEQgMTE2MiAxMUMyOworQ0ExNDtDQTE0OzExMEQgMTE2MztDQTE0OzExMEQgMTE2MzsKK0NBMTU7Q0ExNTsxMTBEIDExNjMgMTFBODtDQTE1OzExMEQgMTE2MyAxMUE4OworQ0ExNjtDQTE2OzExMEQgMTE2MyAxMUE5O0NBMTY7MTEwRCAxMTYzIDExQTk7CitDQTE3O0NBMTc7MTEwRCAxMTYzIDExQUE7Q0ExNzsxMTBEIDExNjMgMTFBQTsKK0NBMTg7Q0ExODsxMTBEIDExNjMgMTFBQjtDQTE4OzExMEQgMTE2MyAxMUFCOworQ0ExOTtDQTE5OzExMEQgMTE2MyAxMUFDO0NBMTk7MTEwRCAxMTYzIDExQUM7CitDQTFBO0NBMUE7MTEwRCAxMTYzIDExQUQ7Q0ExQTsxMTBEIDExNjMgMTFBRDsKK0NBMUI7Q0ExQjsxMTBEIDExNjMgMTFBRTtDQTFCOzExMEQgMTE2MyAxMUFFOworQ0ExQztDQTFDOzExMEQgMTE2MyAxMUFGO0NBMUM7MTEwRCAxMTYzIDExQUY7CitDQTFEO0NBMUQ7MTEwRCAxMTYzIDExQjA7Q0ExRDsxMTBEIDExNjMgMTFCMDsKK0NBMUU7Q0ExRTsxMTBEIDExNjMgMTFCMTtDQTFFOzExMEQgMTE2MyAxMUIxOworQ0ExRjtDQTFGOzExMEQgMTE2MyAxMUIyO0NBMUY7MTEwRCAxMTYzIDExQjI7CitDQTIwO0NBMjA7MTEwRCAxMTYzIDExQjM7Q0EyMDsxMTBEIDExNjMgMTFCMzsKK0NBMjE7Q0EyMTsxMTBEIDExNjMgMTFCNDtDQTIxOzExMEQgMTE2MyAxMUI0OworQ0EyMjtDQTIyOzExMEQgMTE2MyAxMUI1O0NBMjI7MTEwRCAxMTYzIDExQjU7CitDQTIzO0NBMjM7MTEwRCAxMTYzIDExQjY7Q0EyMzsxMTBEIDExNjMgMTFCNjsKK0NBMjQ7Q0EyNDsxMTBEIDExNjMgMTFCNztDQTI0OzExMEQgMTE2MyAxMUI3OworQ0EyNTtDQTI1OzExMEQgMTE2MyAxMUI4O0NBMjU7MTEwRCAxMTYzIDExQjg7CitDQTI2O0NBMjY7MTEwRCAxMTYzIDExQjk7Q0EyNjsxMTBEIDExNjMgMTFCOTsKK0NBMjc7Q0EyNzsxMTBEIDExNjMgMTFCQTtDQTI3OzExMEQgMTE2MyAxMUJBOworQ0EyODtDQTI4OzExMEQgMTE2MyAxMUJCO0NBMjg7MTEwRCAxMTYzIDExQkI7CitDQTI5O0NBMjk7MTEwRCAxMTYzIDExQkM7Q0EyOTsxMTBEIDExNjMgMTFCQzsKK0NBMkE7Q0EyQTsxMTBEIDExNjMgMTFCRDtDQTJBOzExMEQgMTE2MyAxMUJEOworQ0EyQjtDQTJCOzExMEQgMTE2MyAxMUJFO0NBMkI7MTEwRCAxMTYzIDExQkU7CitDQTJDO0NBMkM7MTEwRCAxMTYzIDExQkY7Q0EyQzsxMTBEIDExNjMgMTFCRjsKK0NBMkQ7Q0EyRDsxMTBEIDExNjMgMTFDMDtDQTJEOzExMEQgMTE2MyAxMUMwOworQ0EyRTtDQTJFOzExMEQgMTE2MyAxMUMxO0NBMkU7MTEwRCAxMTYzIDExQzE7CitDQTJGO0NBMkY7MTEwRCAxMTYzIDExQzI7Q0EyRjsxMTBEIDExNjMgMTFDMjsKK0NBMzA7Q0EzMDsxMTBEIDExNjQ7Q0EzMDsxMTBEIDExNjQ7CitDQTMxO0NBMzE7MTEwRCAxMTY0IDExQTg7Q0EzMTsxMTBEIDExNjQgMTFBODsKK0NBMzI7Q0EzMjsxMTBEIDExNjQgMTFBOTtDQTMyOzExMEQgMTE2NCAxMUE5OworQ0EzMztDQTMzOzExMEQgMTE2NCAxMUFBO0NBMzM7MTEwRCAxMTY0IDExQUE7CitDQTM0O0NBMzQ7MTEwRCAxMTY0IDExQUI7Q0EzNDsxMTBEIDExNjQgMTFBQjsKK0NBMzU7Q0EzNTsxMTBEIDExNjQgMTFBQztDQTM1OzExMEQgMTE2NCAxMUFDOworQ0EzNjtDQTM2OzExMEQgMTE2NCAxMUFEO0NBMzY7MTEwRCAxMTY0IDExQUQ7CitDQTM3O0NBMzc7MTEwRCAxMTY0IDExQUU7Q0EzNzsxMTBEIDExNjQgMTFBRTsKK0NBMzg7Q0EzODsxMTBEIDExNjQgMTFBRjtDQTM4OzExMEQgMTE2NCAxMUFGOworQ0EzOTtDQTM5OzExMEQgMTE2NCAxMUIwO0NBMzk7MTEwRCAxMTY0IDExQjA7CitDQTNBO0NBM0E7MTEwRCAxMTY0IDExQjE7Q0EzQTsxMTBEIDExNjQgMTFCMTsKK0NBM0I7Q0EzQjsxMTBEIDExNjQgMTFCMjtDQTNCOzExMEQgMTE2NCAxMUIyOworQ0EzQztDQTNDOzExMEQgMTE2NCAxMUIzO0NBM0M7MTEwRCAxMTY0IDExQjM7CitDQTNEO0NBM0Q7MTEwRCAxMTY0IDExQjQ7Q0EzRDsxMTBEIDExNjQgMTFCNDsKK0NBM0U7Q0EzRTsxMTBEIDExNjQgMTFCNTtDQTNFOzExMEQgMTE2NCAxMUI1OworQ0EzRjtDQTNGOzExMEQgMTE2NCAxMUI2O0NBM0Y7MTEwRCAxMTY0IDExQjY7CitDQTQwO0NBNDA7MTEwRCAxMTY0IDExQjc7Q0E0MDsxMTBEIDExNjQgMTFCNzsKK0NBNDE7Q0E0MTsxMTBEIDExNjQgMTFCODtDQTQxOzExMEQgMTE2NCAxMUI4OworQ0E0MjtDQTQyOzExMEQgMTE2NCAxMUI5O0NBNDI7MTEwRCAxMTY0IDExQjk7CitDQTQzO0NBNDM7MTEwRCAxMTY0IDExQkE7Q0E0MzsxMTBEIDExNjQgMTFCQTsKK0NBNDQ7Q0E0NDsxMTBEIDExNjQgMTFCQjtDQTQ0OzExMEQgMTE2NCAxMUJCOworQ0E0NTtDQTQ1OzExMEQgMTE2NCAxMUJDO0NBNDU7MTEwRCAxMTY0IDExQkM7CitDQTQ2O0NBNDY7MTEwRCAxMTY0IDExQkQ7Q0E0NjsxMTBEIDExNjQgMTFCRDsKK0NBNDc7Q0E0NzsxMTBEIDExNjQgMTFCRTtDQTQ3OzExMEQgMTE2NCAxMUJFOworQ0E0ODtDQTQ4OzExMEQgMTE2NCAxMUJGO0NBNDg7MTEwRCAxMTY0IDExQkY7CitDQTQ5O0NBNDk7MTEwRCAxMTY0IDExQzA7Q0E0OTsxMTBEIDExNjQgMTFDMDsKK0NBNEE7Q0E0QTsxMTBEIDExNjQgMTFDMTtDQTRBOzExMEQgMTE2NCAxMUMxOworQ0E0QjtDQTRCOzExMEQgMTE2NCAxMUMyO0NBNEI7MTEwRCAxMTY0IDExQzI7CitDQTRDO0NBNEM7MTEwRCAxMTY1O0NBNEM7MTEwRCAxMTY1OworQ0E0RDtDQTREOzExMEQgMTE2NSAxMUE4O0NBNEQ7MTEwRCAxMTY1IDExQTg7CitDQTRFO0NBNEU7MTEwRCAxMTY1IDExQTk7Q0E0RTsxMTBEIDExNjUgMTFBOTsKK0NBNEY7Q0E0RjsxMTBEIDExNjUgMTFBQTtDQTRGOzExMEQgMTE2NSAxMUFBOworQ0E1MDtDQTUwOzExMEQgMTE2NSAxMUFCO0NBNTA7MTEwRCAxMTY1IDExQUI7CitDQTUxO0NBNTE7MTEwRCAxMTY1IDExQUM7Q0E1MTsxMTBEIDExNjUgMTFBQzsKK0NBNTI7Q0E1MjsxMTBEIDExNjUgMTFBRDtDQTUyOzExMEQgMTE2NSAxMUFEOworQ0E1MztDQTUzOzExMEQgMTE2NSAxMUFFO0NBNTM7MTEwRCAxMTY1IDExQUU7CitDQTU0O0NBNTQ7MTEwRCAxMTY1IDExQUY7Q0E1NDsxMTBEIDExNjUgMTFBRjsKK0NBNTU7Q0E1NTsxMTBEIDExNjUgMTFCMDtDQTU1OzExMEQgMTE2NSAxMUIwOworQ0E1NjtDQTU2OzExMEQgMTE2NSAxMUIxO0NBNTY7MTEwRCAxMTY1IDExQjE7CitDQTU3O0NBNTc7MTEwRCAxMTY1IDExQjI7Q0E1NzsxMTBEIDExNjUgMTFCMjsKK0NBNTg7Q0E1ODsxMTBEIDExNjUgMTFCMztDQTU4OzExMEQgMTE2NSAxMUIzOworQ0E1OTtDQTU5OzExMEQgMTE2NSAxMUI0O0NBNTk7MTEwRCAxMTY1IDExQjQ7CitDQTVBO0NBNUE7MTEwRCAxMTY1IDExQjU7Q0E1QTsxMTBEIDExNjUgMTFCNTsKK0NBNUI7Q0E1QjsxMTBEIDExNjUgMTFCNjtDQTVCOzExMEQgMTE2NSAxMUI2OworQ0E1QztDQTVDOzExMEQgMTE2NSAxMUI3O0NBNUM7MTEwRCAxMTY1IDExQjc7CitDQTVEO0NBNUQ7MTEwRCAxMTY1IDExQjg7Q0E1RDsxMTBEIDExNjUgMTFCODsKK0NBNUU7Q0E1RTsxMTBEIDExNjUgMTFCOTtDQTVFOzExMEQgMTE2NSAxMUI5OworQ0E1RjtDQTVGOzExMEQgMTE2NSAxMUJBO0NBNUY7MTEwRCAxMTY1IDExQkE7CitDQTYwO0NBNjA7MTEwRCAxMTY1IDExQkI7Q0E2MDsxMTBEIDExNjUgMTFCQjsKK0NBNjE7Q0E2MTsxMTBEIDExNjUgMTFCQztDQTYxOzExMEQgMTE2NSAxMUJDOworQ0E2MjtDQTYyOzExMEQgMTE2NSAxMUJEO0NBNjI7MTEwRCAxMTY1IDExQkQ7CitDQTYzO0NBNjM7MTEwRCAxMTY1IDExQkU7Q0E2MzsxMTBEIDExNjUgMTFCRTsKK0NBNjQ7Q0E2NDsxMTBEIDExNjUgMTFCRjtDQTY0OzExMEQgMTE2NSAxMUJGOworQ0E2NTtDQTY1OzExMEQgMTE2NSAxMUMwO0NBNjU7MTEwRCAxMTY1IDExQzA7CitDQTY2O0NBNjY7MTEwRCAxMTY1IDExQzE7Q0E2NjsxMTBEIDExNjUgMTFDMTsKK0NBNjc7Q0E2NzsxMTBEIDExNjUgMTFDMjtDQTY3OzExMEQgMTE2NSAxMUMyOworQ0E2ODtDQTY4OzExMEQgMTE2NjtDQTY4OzExMEQgMTE2NjsKK0NBNjk7Q0E2OTsxMTBEIDExNjYgMTFBODtDQTY5OzExMEQgMTE2NiAxMUE4OworQ0E2QTtDQTZBOzExMEQgMTE2NiAxMUE5O0NBNkE7MTEwRCAxMTY2IDExQTk7CitDQTZCO0NBNkI7MTEwRCAxMTY2IDExQUE7Q0E2QjsxMTBEIDExNjYgMTFBQTsKK0NBNkM7Q0E2QzsxMTBEIDExNjYgMTFBQjtDQTZDOzExMEQgMTE2NiAxMUFCOworQ0E2RDtDQTZEOzExMEQgMTE2NiAxMUFDO0NBNkQ7MTEwRCAxMTY2IDExQUM7CitDQTZFO0NBNkU7MTEwRCAxMTY2IDExQUQ7Q0E2RTsxMTBEIDExNjYgMTFBRDsKK0NBNkY7Q0E2RjsxMTBEIDExNjYgMTFBRTtDQTZGOzExMEQgMTE2NiAxMUFFOworQ0E3MDtDQTcwOzExMEQgMTE2NiAxMUFGO0NBNzA7MTEwRCAxMTY2IDExQUY7CitDQTcxO0NBNzE7MTEwRCAxMTY2IDExQjA7Q0E3MTsxMTBEIDExNjYgMTFCMDsKK0NBNzI7Q0E3MjsxMTBEIDExNjYgMTFCMTtDQTcyOzExMEQgMTE2NiAxMUIxOworQ0E3MztDQTczOzExMEQgMTE2NiAxMUIyO0NBNzM7MTEwRCAxMTY2IDExQjI7CitDQTc0O0NBNzQ7MTEwRCAxMTY2IDExQjM7Q0E3NDsxMTBEIDExNjYgMTFCMzsKK0NBNzU7Q0E3NTsxMTBEIDExNjYgMTFCNDtDQTc1OzExMEQgMTE2NiAxMUI0OworQ0E3NjtDQTc2OzExMEQgMTE2NiAxMUI1O0NBNzY7MTEwRCAxMTY2IDExQjU7CitDQTc3O0NBNzc7MTEwRCAxMTY2IDExQjY7Q0E3NzsxMTBEIDExNjYgMTFCNjsKK0NBNzg7Q0E3ODsxMTBEIDExNjYgMTFCNztDQTc4OzExMEQgMTE2NiAxMUI3OworQ0E3OTtDQTc5OzExMEQgMTE2NiAxMUI4O0NBNzk7MTEwRCAxMTY2IDExQjg7CitDQTdBO0NBN0E7MTEwRCAxMTY2IDExQjk7Q0E3QTsxMTBEIDExNjYgMTFCOTsKK0NBN0I7Q0E3QjsxMTBEIDExNjYgMTFCQTtDQTdCOzExMEQgMTE2NiAxMUJBOworQ0E3QztDQTdDOzExMEQgMTE2NiAxMUJCO0NBN0M7MTEwRCAxMTY2IDExQkI7CitDQTdEO0NBN0Q7MTEwRCAxMTY2IDExQkM7Q0E3RDsxMTBEIDExNjYgMTFCQzsKK0NBN0U7Q0E3RTsxMTBEIDExNjYgMTFCRDtDQTdFOzExMEQgMTE2NiAxMUJEOworQ0E3RjtDQTdGOzExMEQgMTE2NiAxMUJFO0NBN0Y7MTEwRCAxMTY2IDExQkU7CitDQTgwO0NBODA7MTEwRCAxMTY2IDExQkY7Q0E4MDsxMTBEIDExNjYgMTFCRjsKK0NBODE7Q0E4MTsxMTBEIDExNjYgMTFDMDtDQTgxOzExMEQgMTE2NiAxMUMwOworQ0E4MjtDQTgyOzExMEQgMTE2NiAxMUMxO0NBODI7MTEwRCAxMTY2IDExQzE7CitDQTgzO0NBODM7MTEwRCAxMTY2IDExQzI7Q0E4MzsxMTBEIDExNjYgMTFDMjsKK0NBODQ7Q0E4NDsxMTBEIDExNjc7Q0E4NDsxMTBEIDExNjc7CitDQTg1O0NBODU7MTEwRCAxMTY3IDExQTg7Q0E4NTsxMTBEIDExNjcgMTFBODsKK0NBODY7Q0E4NjsxMTBEIDExNjcgMTFBOTtDQTg2OzExMEQgMTE2NyAxMUE5OworQ0E4NztDQTg3OzExMEQgMTE2NyAxMUFBO0NBODc7MTEwRCAxMTY3IDExQUE7CitDQTg4O0NBODg7MTEwRCAxMTY3IDExQUI7Q0E4ODsxMTBEIDExNjcgMTFBQjsKK0NBODk7Q0E4OTsxMTBEIDExNjcgMTFBQztDQTg5OzExMEQgMTE2NyAxMUFDOworQ0E4QTtDQThBOzExMEQgMTE2NyAxMUFEO0NBOEE7MTEwRCAxMTY3IDExQUQ7CitDQThCO0NBOEI7MTEwRCAxMTY3IDExQUU7Q0E4QjsxMTBEIDExNjcgMTFBRTsKK0NBOEM7Q0E4QzsxMTBEIDExNjcgMTFBRjtDQThDOzExMEQgMTE2NyAxMUFGOworQ0E4RDtDQThEOzExMEQgMTE2NyAxMUIwO0NBOEQ7MTEwRCAxMTY3IDExQjA7CitDQThFO0NBOEU7MTEwRCAxMTY3IDExQjE7Q0E4RTsxMTBEIDExNjcgMTFCMTsKK0NBOEY7Q0E4RjsxMTBEIDExNjcgMTFCMjtDQThGOzExMEQgMTE2NyAxMUIyOworQ0E5MDtDQTkwOzExMEQgMTE2NyAxMUIzO0NBOTA7MTEwRCAxMTY3IDExQjM7CitDQTkxO0NBOTE7MTEwRCAxMTY3IDExQjQ7Q0E5MTsxMTBEIDExNjcgMTFCNDsKK0NBOTI7Q0E5MjsxMTBEIDExNjcgMTFCNTtDQTkyOzExMEQgMTE2NyAxMUI1OworQ0E5MztDQTkzOzExMEQgMTE2NyAxMUI2O0NBOTM7MTEwRCAxMTY3IDExQjY7CitDQTk0O0NBOTQ7MTEwRCAxMTY3IDExQjc7Q0E5NDsxMTBEIDExNjcgMTFCNzsKK0NBOTU7Q0E5NTsxMTBEIDExNjcgMTFCODtDQTk1OzExMEQgMTE2NyAxMUI4OworQ0E5NjtDQTk2OzExMEQgMTE2NyAxMUI5O0NBOTY7MTEwRCAxMTY3IDExQjk7CitDQTk3O0NBOTc7MTEwRCAxMTY3IDExQkE7Q0E5NzsxMTBEIDExNjcgMTFCQTsKK0NBOTg7Q0E5ODsxMTBEIDExNjcgMTFCQjtDQTk4OzExMEQgMTE2NyAxMUJCOworQ0E5OTtDQTk5OzExMEQgMTE2NyAxMUJDO0NBOTk7MTEwRCAxMTY3IDExQkM7CitDQTlBO0NBOUE7MTEwRCAxMTY3IDExQkQ7Q0E5QTsxMTBEIDExNjcgMTFCRDsKK0NBOUI7Q0E5QjsxMTBEIDExNjcgMTFCRTtDQTlCOzExMEQgMTE2NyAxMUJFOworQ0E5QztDQTlDOzExMEQgMTE2NyAxMUJGO0NBOUM7MTEwRCAxMTY3IDExQkY7CitDQTlEO0NBOUQ7MTEwRCAxMTY3IDExQzA7Q0E5RDsxMTBEIDExNjcgMTFDMDsKK0NBOUU7Q0E5RTsxMTBEIDExNjcgMTFDMTtDQTlFOzExMEQgMTE2NyAxMUMxOworQ0E5RjtDQTlGOzExMEQgMTE2NyAxMUMyO0NBOUY7MTEwRCAxMTY3IDExQzI7CitDQUEwO0NBQTA7MTEwRCAxMTY4O0NBQTA7MTEwRCAxMTY4OworQ0FBMTtDQUExOzExMEQgMTE2OCAxMUE4O0NBQTE7MTEwRCAxMTY4IDExQTg7CitDQUEyO0NBQTI7MTEwRCAxMTY4IDExQTk7Q0FBMjsxMTBEIDExNjggMTFBOTsKK0NBQTM7Q0FBMzsxMTBEIDExNjggMTFBQTtDQUEzOzExMEQgMTE2OCAxMUFBOworQ0FBNDtDQUE0OzExMEQgMTE2OCAxMUFCO0NBQTQ7MTEwRCAxMTY4IDExQUI7CitDQUE1O0NBQTU7MTEwRCAxMTY4IDExQUM7Q0FBNTsxMTBEIDExNjggMTFBQzsKK0NBQTY7Q0FBNjsxMTBEIDExNjggMTFBRDtDQUE2OzExMEQgMTE2OCAxMUFEOworQ0FBNztDQUE3OzExMEQgMTE2OCAxMUFFO0NBQTc7MTEwRCAxMTY4IDExQUU7CitDQUE4O0NBQTg7MTEwRCAxMTY4IDExQUY7Q0FBODsxMTBEIDExNjggMTFBRjsKK0NBQTk7Q0FBOTsxMTBEIDExNjggMTFCMDtDQUE5OzExMEQgMTE2OCAxMUIwOworQ0FBQTtDQUFBOzExMEQgMTE2OCAxMUIxO0NBQUE7MTEwRCAxMTY4IDExQjE7CitDQUFCO0NBQUI7MTEwRCAxMTY4IDExQjI7Q0FBQjsxMTBEIDExNjggMTFCMjsKK0NBQUM7Q0FBQzsxMTBEIDExNjggMTFCMztDQUFDOzExMEQgMTE2OCAxMUIzOworQ0FBRDtDQUFEOzExMEQgMTE2OCAxMUI0O0NBQUQ7MTEwRCAxMTY4IDExQjQ7CitDQUFFO0NBQUU7MTEwRCAxMTY4IDExQjU7Q0FBRTsxMTBEIDExNjggMTFCNTsKK0NBQUY7Q0FBRjsxMTBEIDExNjggMTFCNjtDQUFGOzExMEQgMTE2OCAxMUI2OworQ0FCMDtDQUIwOzExMEQgMTE2OCAxMUI3O0NBQjA7MTEwRCAxMTY4IDExQjc7CitDQUIxO0NBQjE7MTEwRCAxMTY4IDExQjg7Q0FCMTsxMTBEIDExNjggMTFCODsKK0NBQjI7Q0FCMjsxMTBEIDExNjggMTFCOTtDQUIyOzExMEQgMTE2OCAxMUI5OworQ0FCMztDQUIzOzExMEQgMTE2OCAxMUJBO0NBQjM7MTEwRCAxMTY4IDExQkE7CitDQUI0O0NBQjQ7MTEwRCAxMTY4IDExQkI7Q0FCNDsxMTBEIDExNjggMTFCQjsKK0NBQjU7Q0FCNTsxMTBEIDExNjggMTFCQztDQUI1OzExMEQgMTE2OCAxMUJDOworQ0FCNjtDQUI2OzExMEQgMTE2OCAxMUJEO0NBQjY7MTEwRCAxMTY4IDExQkQ7CitDQUI3O0NBQjc7MTEwRCAxMTY4IDExQkU7Q0FCNzsxMTBEIDExNjggMTFCRTsKK0NBQjg7Q0FCODsxMTBEIDExNjggMTFCRjtDQUI4OzExMEQgMTE2OCAxMUJGOworQ0FCOTtDQUI5OzExMEQgMTE2OCAxMUMwO0NBQjk7MTEwRCAxMTY4IDExQzA7CitDQUJBO0NBQkE7MTEwRCAxMTY4IDExQzE7Q0FCQTsxMTBEIDExNjggMTFDMTsKK0NBQkI7Q0FCQjsxMTBEIDExNjggMTFDMjtDQUJCOzExMEQgMTE2OCAxMUMyOworQ0FCQztDQUJDOzExMEQgMTE2OTtDQUJDOzExMEQgMTE2OTsKK0NBQkQ7Q0FCRDsxMTBEIDExNjkgMTFBODtDQUJEOzExMEQgMTE2OSAxMUE4OworQ0FCRTtDQUJFOzExMEQgMTE2OSAxMUE5O0NBQkU7MTEwRCAxMTY5IDExQTk7CitDQUJGO0NBQkY7MTEwRCAxMTY5IDExQUE7Q0FCRjsxMTBEIDExNjkgMTFBQTsKK0NBQzA7Q0FDMDsxMTBEIDExNjkgMTFBQjtDQUMwOzExMEQgMTE2OSAxMUFCOworQ0FDMTtDQUMxOzExMEQgMTE2OSAxMUFDO0NBQzE7MTEwRCAxMTY5IDExQUM7CitDQUMyO0NBQzI7MTEwRCAxMTY5IDExQUQ7Q0FDMjsxMTBEIDExNjkgMTFBRDsKK0NBQzM7Q0FDMzsxMTBEIDExNjkgMTFBRTtDQUMzOzExMEQgMTE2OSAxMUFFOworQ0FDNDtDQUM0OzExMEQgMTE2OSAxMUFGO0NBQzQ7MTEwRCAxMTY5IDExQUY7CitDQUM1O0NBQzU7MTEwRCAxMTY5IDExQjA7Q0FDNTsxMTBEIDExNjkgMTFCMDsKK0NBQzY7Q0FDNjsxMTBEIDExNjkgMTFCMTtDQUM2OzExMEQgMTE2OSAxMUIxOworQ0FDNztDQUM3OzExMEQgMTE2OSAxMUIyO0NBQzc7MTEwRCAxMTY5IDExQjI7CitDQUM4O0NBQzg7MTEwRCAxMTY5IDExQjM7Q0FDODsxMTBEIDExNjkgMTFCMzsKK0NBQzk7Q0FDOTsxMTBEIDExNjkgMTFCNDtDQUM5OzExMEQgMTE2OSAxMUI0OworQ0FDQTtDQUNBOzExMEQgMTE2OSAxMUI1O0NBQ0E7MTEwRCAxMTY5IDExQjU7CitDQUNCO0NBQ0I7MTEwRCAxMTY5IDExQjY7Q0FDQjsxMTBEIDExNjkgMTFCNjsKK0NBQ0M7Q0FDQzsxMTBEIDExNjkgMTFCNztDQUNDOzExMEQgMTE2OSAxMUI3OworQ0FDRDtDQUNEOzExMEQgMTE2OSAxMUI4O0NBQ0Q7MTEwRCAxMTY5IDExQjg7CitDQUNFO0NBQ0U7MTEwRCAxMTY5IDExQjk7Q0FDRTsxMTBEIDExNjkgMTFCOTsKK0NBQ0Y7Q0FDRjsxMTBEIDExNjkgMTFCQTtDQUNGOzExMEQgMTE2OSAxMUJBOworQ0FEMDtDQUQwOzExMEQgMTE2OSAxMUJCO0NBRDA7MTEwRCAxMTY5IDExQkI7CitDQUQxO0NBRDE7MTEwRCAxMTY5IDExQkM7Q0FEMTsxMTBEIDExNjkgMTFCQzsKK0NBRDI7Q0FEMjsxMTBEIDExNjkgMTFCRDtDQUQyOzExMEQgMTE2OSAxMUJEOworQ0FEMztDQUQzOzExMEQgMTE2OSAxMUJFO0NBRDM7MTEwRCAxMTY5IDExQkU7CitDQUQ0O0NBRDQ7MTEwRCAxMTY5IDExQkY7Q0FENDsxMTBEIDExNjkgMTFCRjsKK0NBRDU7Q0FENTsxMTBEIDExNjkgMTFDMDtDQUQ1OzExMEQgMTE2OSAxMUMwOworQ0FENjtDQUQ2OzExMEQgMTE2OSAxMUMxO0NBRDY7MTEwRCAxMTY5IDExQzE7CitDQUQ3O0NBRDc7MTEwRCAxMTY5IDExQzI7Q0FENzsxMTBEIDExNjkgMTFDMjsKK0NBRDg7Q0FEODsxMTBEIDExNkE7Q0FEODsxMTBEIDExNkE7CitDQUQ5O0NBRDk7MTEwRCAxMTZBIDExQTg7Q0FEOTsxMTBEIDExNkEgMTFBODsKK0NBREE7Q0FEQTsxMTBEIDExNkEgMTFBOTtDQURBOzExMEQgMTE2QSAxMUE5OworQ0FEQjtDQURCOzExMEQgMTE2QSAxMUFBO0NBREI7MTEwRCAxMTZBIDExQUE7CitDQURDO0NBREM7MTEwRCAxMTZBIDExQUI7Q0FEQzsxMTBEIDExNkEgMTFBQjsKK0NBREQ7Q0FERDsxMTBEIDExNkEgMTFBQztDQUREOzExMEQgMTE2QSAxMUFDOworQ0FERTtDQURFOzExMEQgMTE2QSAxMUFEO0NBREU7MTEwRCAxMTZBIDExQUQ7CitDQURGO0NBREY7MTEwRCAxMTZBIDExQUU7Q0FERjsxMTBEIDExNkEgMTFBRTsKK0NBRTA7Q0FFMDsxMTBEIDExNkEgMTFBRjtDQUUwOzExMEQgMTE2QSAxMUFGOworQ0FFMTtDQUUxOzExMEQgMTE2QSAxMUIwO0NBRTE7MTEwRCAxMTZBIDExQjA7CitDQUUyO0NBRTI7MTEwRCAxMTZBIDExQjE7Q0FFMjsxMTBEIDExNkEgMTFCMTsKK0NBRTM7Q0FFMzsxMTBEIDExNkEgMTFCMjtDQUUzOzExMEQgMTE2QSAxMUIyOworQ0FFNDtDQUU0OzExMEQgMTE2QSAxMUIzO0NBRTQ7MTEwRCAxMTZBIDExQjM7CitDQUU1O0NBRTU7MTEwRCAxMTZBIDExQjQ7Q0FFNTsxMTBEIDExNkEgMTFCNDsKK0NBRTY7Q0FFNjsxMTBEIDExNkEgMTFCNTtDQUU2OzExMEQgMTE2QSAxMUI1OworQ0FFNztDQUU3OzExMEQgMTE2QSAxMUI2O0NBRTc7MTEwRCAxMTZBIDExQjY7CitDQUU4O0NBRTg7MTEwRCAxMTZBIDExQjc7Q0FFODsxMTBEIDExNkEgMTFCNzsKK0NBRTk7Q0FFOTsxMTBEIDExNkEgMTFCODtDQUU5OzExMEQgMTE2QSAxMUI4OworQ0FFQTtDQUVBOzExMEQgMTE2QSAxMUI5O0NBRUE7MTEwRCAxMTZBIDExQjk7CitDQUVCO0NBRUI7MTEwRCAxMTZBIDExQkE7Q0FFQjsxMTBEIDExNkEgMTFCQTsKK0NBRUM7Q0FFQzsxMTBEIDExNkEgMTFCQjtDQUVDOzExMEQgMTE2QSAxMUJCOworQ0FFRDtDQUVEOzExMEQgMTE2QSAxMUJDO0NBRUQ7MTEwRCAxMTZBIDExQkM7CitDQUVFO0NBRUU7MTEwRCAxMTZBIDExQkQ7Q0FFRTsxMTBEIDExNkEgMTFCRDsKK0NBRUY7Q0FFRjsxMTBEIDExNkEgMTFCRTtDQUVGOzExMEQgMTE2QSAxMUJFOworQ0FGMDtDQUYwOzExMEQgMTE2QSAxMUJGO0NBRjA7MTEwRCAxMTZBIDExQkY7CitDQUYxO0NBRjE7MTEwRCAxMTZBIDExQzA7Q0FGMTsxMTBEIDExNkEgMTFDMDsKK0NBRjI7Q0FGMjsxMTBEIDExNkEgMTFDMTtDQUYyOzExMEQgMTE2QSAxMUMxOworQ0FGMztDQUYzOzExMEQgMTE2QSAxMUMyO0NBRjM7MTEwRCAxMTZBIDExQzI7CitDQUY0O0NBRjQ7MTEwRCAxMTZCO0NBRjQ7MTEwRCAxMTZCOworQ0FGNTtDQUY1OzExMEQgMTE2QiAxMUE4O0NBRjU7MTEwRCAxMTZCIDExQTg7CitDQUY2O0NBRjY7MTEwRCAxMTZCIDExQTk7Q0FGNjsxMTBEIDExNkIgMTFBOTsKK0NBRjc7Q0FGNzsxMTBEIDExNkIgMTFBQTtDQUY3OzExMEQgMTE2QiAxMUFBOworQ0FGODtDQUY4OzExMEQgMTE2QiAxMUFCO0NBRjg7MTEwRCAxMTZCIDExQUI7CitDQUY5O0NBRjk7MTEwRCAxMTZCIDExQUM7Q0FGOTsxMTBEIDExNkIgMTFBQzsKK0NBRkE7Q0FGQTsxMTBEIDExNkIgMTFBRDtDQUZBOzExMEQgMTE2QiAxMUFEOworQ0FGQjtDQUZCOzExMEQgMTE2QiAxMUFFO0NBRkI7MTEwRCAxMTZCIDExQUU7CitDQUZDO0NBRkM7MTEwRCAxMTZCIDExQUY7Q0FGQzsxMTBEIDExNkIgMTFBRjsKK0NBRkQ7Q0FGRDsxMTBEIDExNkIgMTFCMDtDQUZEOzExMEQgMTE2QiAxMUIwOworQ0FGRTtDQUZFOzExMEQgMTE2QiAxMUIxO0NBRkU7MTEwRCAxMTZCIDExQjE7CitDQUZGO0NBRkY7MTEwRCAxMTZCIDExQjI7Q0FGRjsxMTBEIDExNkIgMTFCMjsKK0NCMDA7Q0IwMDsxMTBEIDExNkIgMTFCMztDQjAwOzExMEQgMTE2QiAxMUIzOworQ0IwMTtDQjAxOzExMEQgMTE2QiAxMUI0O0NCMDE7MTEwRCAxMTZCIDExQjQ7CitDQjAyO0NCMDI7MTEwRCAxMTZCIDExQjU7Q0IwMjsxMTBEIDExNkIgMTFCNTsKK0NCMDM7Q0IwMzsxMTBEIDExNkIgMTFCNjtDQjAzOzExMEQgMTE2QiAxMUI2OworQ0IwNDtDQjA0OzExMEQgMTE2QiAxMUI3O0NCMDQ7MTEwRCAxMTZCIDExQjc7CitDQjA1O0NCMDU7MTEwRCAxMTZCIDExQjg7Q0IwNTsxMTBEIDExNkIgMTFCODsKK0NCMDY7Q0IwNjsxMTBEIDExNkIgMTFCOTtDQjA2OzExMEQgMTE2QiAxMUI5OworQ0IwNztDQjA3OzExMEQgMTE2QiAxMUJBO0NCMDc7MTEwRCAxMTZCIDExQkE7CitDQjA4O0NCMDg7MTEwRCAxMTZCIDExQkI7Q0IwODsxMTBEIDExNkIgMTFCQjsKK0NCMDk7Q0IwOTsxMTBEIDExNkIgMTFCQztDQjA5OzExMEQgMTE2QiAxMUJDOworQ0IwQTtDQjBBOzExMEQgMTE2QiAxMUJEO0NCMEE7MTEwRCAxMTZCIDExQkQ7CitDQjBCO0NCMEI7MTEwRCAxMTZCIDExQkU7Q0IwQjsxMTBEIDExNkIgMTFCRTsKK0NCMEM7Q0IwQzsxMTBEIDExNkIgMTFCRjtDQjBDOzExMEQgMTE2QiAxMUJGOworQ0IwRDtDQjBEOzExMEQgMTE2QiAxMUMwO0NCMEQ7MTEwRCAxMTZCIDExQzA7CitDQjBFO0NCMEU7MTEwRCAxMTZCIDExQzE7Q0IwRTsxMTBEIDExNkIgMTFDMTsKK0NCMEY7Q0IwRjsxMTBEIDExNkIgMTFDMjtDQjBGOzExMEQgMTE2QiAxMUMyOworQ0IxMDtDQjEwOzExMEQgMTE2QztDQjEwOzExMEQgMTE2QzsKK0NCMTE7Q0IxMTsxMTBEIDExNkMgMTFBODtDQjExOzExMEQgMTE2QyAxMUE4OworQ0IxMjtDQjEyOzExMEQgMTE2QyAxMUE5O0NCMTI7MTEwRCAxMTZDIDExQTk7CitDQjEzO0NCMTM7MTEwRCAxMTZDIDExQUE7Q0IxMzsxMTBEIDExNkMgMTFBQTsKK0NCMTQ7Q0IxNDsxMTBEIDExNkMgMTFBQjtDQjE0OzExMEQgMTE2QyAxMUFCOworQ0IxNTtDQjE1OzExMEQgMTE2QyAxMUFDO0NCMTU7MTEwRCAxMTZDIDExQUM7CitDQjE2O0NCMTY7MTEwRCAxMTZDIDExQUQ7Q0IxNjsxMTBEIDExNkMgMTFBRDsKK0NCMTc7Q0IxNzsxMTBEIDExNkMgMTFBRTtDQjE3OzExMEQgMTE2QyAxMUFFOworQ0IxODtDQjE4OzExMEQgMTE2QyAxMUFGO0NCMTg7MTEwRCAxMTZDIDExQUY7CitDQjE5O0NCMTk7MTEwRCAxMTZDIDExQjA7Q0IxOTsxMTBEIDExNkMgMTFCMDsKK0NCMUE7Q0IxQTsxMTBEIDExNkMgMTFCMTtDQjFBOzExMEQgMTE2QyAxMUIxOworQ0IxQjtDQjFCOzExMEQgMTE2QyAxMUIyO0NCMUI7MTEwRCAxMTZDIDExQjI7CitDQjFDO0NCMUM7MTEwRCAxMTZDIDExQjM7Q0IxQzsxMTBEIDExNkMgMTFCMzsKK0NCMUQ7Q0IxRDsxMTBEIDExNkMgMTFCNDtDQjFEOzExMEQgMTE2QyAxMUI0OworQ0IxRTtDQjFFOzExMEQgMTE2QyAxMUI1O0NCMUU7MTEwRCAxMTZDIDExQjU7CitDQjFGO0NCMUY7MTEwRCAxMTZDIDExQjY7Q0IxRjsxMTBEIDExNkMgMTFCNjsKK0NCMjA7Q0IyMDsxMTBEIDExNkMgMTFCNztDQjIwOzExMEQgMTE2QyAxMUI3OworQ0IyMTtDQjIxOzExMEQgMTE2QyAxMUI4O0NCMjE7MTEwRCAxMTZDIDExQjg7CitDQjIyO0NCMjI7MTEwRCAxMTZDIDExQjk7Q0IyMjsxMTBEIDExNkMgMTFCOTsKK0NCMjM7Q0IyMzsxMTBEIDExNkMgMTFCQTtDQjIzOzExMEQgMTE2QyAxMUJBOworQ0IyNDtDQjI0OzExMEQgMTE2QyAxMUJCO0NCMjQ7MTEwRCAxMTZDIDExQkI7CitDQjI1O0NCMjU7MTEwRCAxMTZDIDExQkM7Q0IyNTsxMTBEIDExNkMgMTFCQzsKK0NCMjY7Q0IyNjsxMTBEIDExNkMgMTFCRDtDQjI2OzExMEQgMTE2QyAxMUJEOworQ0IyNztDQjI3OzExMEQgMTE2QyAxMUJFO0NCMjc7MTEwRCAxMTZDIDExQkU7CitDQjI4O0NCMjg7MTEwRCAxMTZDIDExQkY7Q0IyODsxMTBEIDExNkMgMTFCRjsKK0NCMjk7Q0IyOTsxMTBEIDExNkMgMTFDMDtDQjI5OzExMEQgMTE2QyAxMUMwOworQ0IyQTtDQjJBOzExMEQgMTE2QyAxMUMxO0NCMkE7MTEwRCAxMTZDIDExQzE7CitDQjJCO0NCMkI7MTEwRCAxMTZDIDExQzI7Q0IyQjsxMTBEIDExNkMgMTFDMjsKK0NCMkM7Q0IyQzsxMTBEIDExNkQ7Q0IyQzsxMTBEIDExNkQ7CitDQjJEO0NCMkQ7MTEwRCAxMTZEIDExQTg7Q0IyRDsxMTBEIDExNkQgMTFBODsKK0NCMkU7Q0IyRTsxMTBEIDExNkQgMTFBOTtDQjJFOzExMEQgMTE2RCAxMUE5OworQ0IyRjtDQjJGOzExMEQgMTE2RCAxMUFBO0NCMkY7MTEwRCAxMTZEIDExQUE7CitDQjMwO0NCMzA7MTEwRCAxMTZEIDExQUI7Q0IzMDsxMTBEIDExNkQgMTFBQjsKK0NCMzE7Q0IzMTsxMTBEIDExNkQgMTFBQztDQjMxOzExMEQgMTE2RCAxMUFDOworQ0IzMjtDQjMyOzExMEQgMTE2RCAxMUFEO0NCMzI7MTEwRCAxMTZEIDExQUQ7CitDQjMzO0NCMzM7MTEwRCAxMTZEIDExQUU7Q0IzMzsxMTBEIDExNkQgMTFBRTsKK0NCMzQ7Q0IzNDsxMTBEIDExNkQgMTFBRjtDQjM0OzExMEQgMTE2RCAxMUFGOworQ0IzNTtDQjM1OzExMEQgMTE2RCAxMUIwO0NCMzU7MTEwRCAxMTZEIDExQjA7CitDQjM2O0NCMzY7MTEwRCAxMTZEIDExQjE7Q0IzNjsxMTBEIDExNkQgMTFCMTsKK0NCMzc7Q0IzNzsxMTBEIDExNkQgMTFCMjtDQjM3OzExMEQgMTE2RCAxMUIyOworQ0IzODtDQjM4OzExMEQgMTE2RCAxMUIzO0NCMzg7MTEwRCAxMTZEIDExQjM7CitDQjM5O0NCMzk7MTEwRCAxMTZEIDExQjQ7Q0IzOTsxMTBEIDExNkQgMTFCNDsKK0NCM0E7Q0IzQTsxMTBEIDExNkQgMTFCNTtDQjNBOzExMEQgMTE2RCAxMUI1OworQ0IzQjtDQjNCOzExMEQgMTE2RCAxMUI2O0NCM0I7MTEwRCAxMTZEIDExQjY7CitDQjNDO0NCM0M7MTEwRCAxMTZEIDExQjc7Q0IzQzsxMTBEIDExNkQgMTFCNzsKK0NCM0Q7Q0IzRDsxMTBEIDExNkQgMTFCODtDQjNEOzExMEQgMTE2RCAxMUI4OworQ0IzRTtDQjNFOzExMEQgMTE2RCAxMUI5O0NCM0U7MTEwRCAxMTZEIDExQjk7CitDQjNGO0NCM0Y7MTEwRCAxMTZEIDExQkE7Q0IzRjsxMTBEIDExNkQgMTFCQTsKK0NCNDA7Q0I0MDsxMTBEIDExNkQgMTFCQjtDQjQwOzExMEQgMTE2RCAxMUJCOworQ0I0MTtDQjQxOzExMEQgMTE2RCAxMUJDO0NCNDE7MTEwRCAxMTZEIDExQkM7CitDQjQyO0NCNDI7MTEwRCAxMTZEIDExQkQ7Q0I0MjsxMTBEIDExNkQgMTFCRDsKK0NCNDM7Q0I0MzsxMTBEIDExNkQgMTFCRTtDQjQzOzExMEQgMTE2RCAxMUJFOworQ0I0NDtDQjQ0OzExMEQgMTE2RCAxMUJGO0NCNDQ7MTEwRCAxMTZEIDExQkY7CitDQjQ1O0NCNDU7MTEwRCAxMTZEIDExQzA7Q0I0NTsxMTBEIDExNkQgMTFDMDsKK0NCNDY7Q0I0NjsxMTBEIDExNkQgMTFDMTtDQjQ2OzExMEQgMTE2RCAxMUMxOworQ0I0NztDQjQ3OzExMEQgMTE2RCAxMUMyO0NCNDc7MTEwRCAxMTZEIDExQzI7CitDQjQ4O0NCNDg7MTEwRCAxMTZFO0NCNDg7MTEwRCAxMTZFOworQ0I0OTtDQjQ5OzExMEQgMTE2RSAxMUE4O0NCNDk7MTEwRCAxMTZFIDExQTg7CitDQjRBO0NCNEE7MTEwRCAxMTZFIDExQTk7Q0I0QTsxMTBEIDExNkUgMTFBOTsKK0NCNEI7Q0I0QjsxMTBEIDExNkUgMTFBQTtDQjRCOzExMEQgMTE2RSAxMUFBOworQ0I0QztDQjRDOzExMEQgMTE2RSAxMUFCO0NCNEM7MTEwRCAxMTZFIDExQUI7CitDQjREO0NCNEQ7MTEwRCAxMTZFIDExQUM7Q0I0RDsxMTBEIDExNkUgMTFBQzsKK0NCNEU7Q0I0RTsxMTBEIDExNkUgMTFBRDtDQjRFOzExMEQgMTE2RSAxMUFEOworQ0I0RjtDQjRGOzExMEQgMTE2RSAxMUFFO0NCNEY7MTEwRCAxMTZFIDExQUU7CitDQjUwO0NCNTA7MTEwRCAxMTZFIDExQUY7Q0I1MDsxMTBEIDExNkUgMTFBRjsKK0NCNTE7Q0I1MTsxMTBEIDExNkUgMTFCMDtDQjUxOzExMEQgMTE2RSAxMUIwOworQ0I1MjtDQjUyOzExMEQgMTE2RSAxMUIxO0NCNTI7MTEwRCAxMTZFIDExQjE7CitDQjUzO0NCNTM7MTEwRCAxMTZFIDExQjI7Q0I1MzsxMTBEIDExNkUgMTFCMjsKK0NCNTQ7Q0I1NDsxMTBEIDExNkUgMTFCMztDQjU0OzExMEQgMTE2RSAxMUIzOworQ0I1NTtDQjU1OzExMEQgMTE2RSAxMUI0O0NCNTU7MTEwRCAxMTZFIDExQjQ7CitDQjU2O0NCNTY7MTEwRCAxMTZFIDExQjU7Q0I1NjsxMTBEIDExNkUgMTFCNTsKK0NCNTc7Q0I1NzsxMTBEIDExNkUgMTFCNjtDQjU3OzExMEQgMTE2RSAxMUI2OworQ0I1ODtDQjU4OzExMEQgMTE2RSAxMUI3O0NCNTg7MTEwRCAxMTZFIDExQjc7CitDQjU5O0NCNTk7MTEwRCAxMTZFIDExQjg7Q0I1OTsxMTBEIDExNkUgMTFCODsKK0NCNUE7Q0I1QTsxMTBEIDExNkUgMTFCOTtDQjVBOzExMEQgMTE2RSAxMUI5OworQ0I1QjtDQjVCOzExMEQgMTE2RSAxMUJBO0NCNUI7MTEwRCAxMTZFIDExQkE7CitDQjVDO0NCNUM7MTEwRCAxMTZFIDExQkI7Q0I1QzsxMTBEIDExNkUgMTFCQjsKK0NCNUQ7Q0I1RDsxMTBEIDExNkUgMTFCQztDQjVEOzExMEQgMTE2RSAxMUJDOworQ0I1RTtDQjVFOzExMEQgMTE2RSAxMUJEO0NCNUU7MTEwRCAxMTZFIDExQkQ7CitDQjVGO0NCNUY7MTEwRCAxMTZFIDExQkU7Q0I1RjsxMTBEIDExNkUgMTFCRTsKK0NCNjA7Q0I2MDsxMTBEIDExNkUgMTFCRjtDQjYwOzExMEQgMTE2RSAxMUJGOworQ0I2MTtDQjYxOzExMEQgMTE2RSAxMUMwO0NCNjE7MTEwRCAxMTZFIDExQzA7CitDQjYyO0NCNjI7MTEwRCAxMTZFIDExQzE7Q0I2MjsxMTBEIDExNkUgMTFDMTsKK0NCNjM7Q0I2MzsxMTBEIDExNkUgMTFDMjtDQjYzOzExMEQgMTE2RSAxMUMyOworQ0I2NDtDQjY0OzExMEQgMTE2RjtDQjY0OzExMEQgMTE2RjsKK0NCNjU7Q0I2NTsxMTBEIDExNkYgMTFBODtDQjY1OzExMEQgMTE2RiAxMUE4OworQ0I2NjtDQjY2OzExMEQgMTE2RiAxMUE5O0NCNjY7MTEwRCAxMTZGIDExQTk7CitDQjY3O0NCNjc7MTEwRCAxMTZGIDExQUE7Q0I2NzsxMTBEIDExNkYgMTFBQTsKK0NCNjg7Q0I2ODsxMTBEIDExNkYgMTFBQjtDQjY4OzExMEQgMTE2RiAxMUFCOworQ0I2OTtDQjY5OzExMEQgMTE2RiAxMUFDO0NCNjk7MTEwRCAxMTZGIDExQUM7CitDQjZBO0NCNkE7MTEwRCAxMTZGIDExQUQ7Q0I2QTsxMTBEIDExNkYgMTFBRDsKK0NCNkI7Q0I2QjsxMTBEIDExNkYgMTFBRTtDQjZCOzExMEQgMTE2RiAxMUFFOworQ0I2QztDQjZDOzExMEQgMTE2RiAxMUFGO0NCNkM7MTEwRCAxMTZGIDExQUY7CitDQjZEO0NCNkQ7MTEwRCAxMTZGIDExQjA7Q0I2RDsxMTBEIDExNkYgMTFCMDsKK0NCNkU7Q0I2RTsxMTBEIDExNkYgMTFCMTtDQjZFOzExMEQgMTE2RiAxMUIxOworQ0I2RjtDQjZGOzExMEQgMTE2RiAxMUIyO0NCNkY7MTEwRCAxMTZGIDExQjI7CitDQjcwO0NCNzA7MTEwRCAxMTZGIDExQjM7Q0I3MDsxMTBEIDExNkYgMTFCMzsKK0NCNzE7Q0I3MTsxMTBEIDExNkYgMTFCNDtDQjcxOzExMEQgMTE2RiAxMUI0OworQ0I3MjtDQjcyOzExMEQgMTE2RiAxMUI1O0NCNzI7MTEwRCAxMTZGIDExQjU7CitDQjczO0NCNzM7MTEwRCAxMTZGIDExQjY7Q0I3MzsxMTBEIDExNkYgMTFCNjsKK0NCNzQ7Q0I3NDsxMTBEIDExNkYgMTFCNztDQjc0OzExMEQgMTE2RiAxMUI3OworQ0I3NTtDQjc1OzExMEQgMTE2RiAxMUI4O0NCNzU7MTEwRCAxMTZGIDExQjg7CitDQjc2O0NCNzY7MTEwRCAxMTZGIDExQjk7Q0I3NjsxMTBEIDExNkYgMTFCOTsKK0NCNzc7Q0I3NzsxMTBEIDExNkYgMTFCQTtDQjc3OzExMEQgMTE2RiAxMUJBOworQ0I3ODtDQjc4OzExMEQgMTE2RiAxMUJCO0NCNzg7MTEwRCAxMTZGIDExQkI7CitDQjc5O0NCNzk7MTEwRCAxMTZGIDExQkM7Q0I3OTsxMTBEIDExNkYgMTFCQzsKK0NCN0E7Q0I3QTsxMTBEIDExNkYgMTFCRDtDQjdBOzExMEQgMTE2RiAxMUJEOworQ0I3QjtDQjdCOzExMEQgMTE2RiAxMUJFO0NCN0I7MTEwRCAxMTZGIDExQkU7CitDQjdDO0NCN0M7MTEwRCAxMTZGIDExQkY7Q0I3QzsxMTBEIDExNkYgMTFCRjsKK0NCN0Q7Q0I3RDsxMTBEIDExNkYgMTFDMDtDQjdEOzExMEQgMTE2RiAxMUMwOworQ0I3RTtDQjdFOzExMEQgMTE2RiAxMUMxO0NCN0U7MTEwRCAxMTZGIDExQzE7CitDQjdGO0NCN0Y7MTEwRCAxMTZGIDExQzI7Q0I3RjsxMTBEIDExNkYgMTFDMjsKK0NCODA7Q0I4MDsxMTBEIDExNzA7Q0I4MDsxMTBEIDExNzA7CitDQjgxO0NCODE7MTEwRCAxMTcwIDExQTg7Q0I4MTsxMTBEIDExNzAgMTFBODsKK0NCODI7Q0I4MjsxMTBEIDExNzAgMTFBOTtDQjgyOzExMEQgMTE3MCAxMUE5OworQ0I4MztDQjgzOzExMEQgMTE3MCAxMUFBO0NCODM7MTEwRCAxMTcwIDExQUE7CitDQjg0O0NCODQ7MTEwRCAxMTcwIDExQUI7Q0I4NDsxMTBEIDExNzAgMTFBQjsKK0NCODU7Q0I4NTsxMTBEIDExNzAgMTFBQztDQjg1OzExMEQgMTE3MCAxMUFDOworQ0I4NjtDQjg2OzExMEQgMTE3MCAxMUFEO0NCODY7MTEwRCAxMTcwIDExQUQ7CitDQjg3O0NCODc7MTEwRCAxMTcwIDExQUU7Q0I4NzsxMTBEIDExNzAgMTFBRTsKK0NCODg7Q0I4ODsxMTBEIDExNzAgMTFBRjtDQjg4OzExMEQgMTE3MCAxMUFGOworQ0I4OTtDQjg5OzExMEQgMTE3MCAxMUIwO0NCODk7MTEwRCAxMTcwIDExQjA7CitDQjhBO0NCOEE7MTEwRCAxMTcwIDExQjE7Q0I4QTsxMTBEIDExNzAgMTFCMTsKK0NCOEI7Q0I4QjsxMTBEIDExNzAgMTFCMjtDQjhCOzExMEQgMTE3MCAxMUIyOworQ0I4QztDQjhDOzExMEQgMTE3MCAxMUIzO0NCOEM7MTEwRCAxMTcwIDExQjM7CitDQjhEO0NCOEQ7MTEwRCAxMTcwIDExQjQ7Q0I4RDsxMTBEIDExNzAgMTFCNDsKK0NCOEU7Q0I4RTsxMTBEIDExNzAgMTFCNTtDQjhFOzExMEQgMTE3MCAxMUI1OworQ0I4RjtDQjhGOzExMEQgMTE3MCAxMUI2O0NCOEY7MTEwRCAxMTcwIDExQjY7CitDQjkwO0NCOTA7MTEwRCAxMTcwIDExQjc7Q0I5MDsxMTBEIDExNzAgMTFCNzsKK0NCOTE7Q0I5MTsxMTBEIDExNzAgMTFCODtDQjkxOzExMEQgMTE3MCAxMUI4OworQ0I5MjtDQjkyOzExMEQgMTE3MCAxMUI5O0NCOTI7MTEwRCAxMTcwIDExQjk7CitDQjkzO0NCOTM7MTEwRCAxMTcwIDExQkE7Q0I5MzsxMTBEIDExNzAgMTFCQTsKK0NCOTQ7Q0I5NDsxMTBEIDExNzAgMTFCQjtDQjk0OzExMEQgMTE3MCAxMUJCOworQ0I5NTtDQjk1OzExMEQgMTE3MCAxMUJDO0NCOTU7MTEwRCAxMTcwIDExQkM7CitDQjk2O0NCOTY7MTEwRCAxMTcwIDExQkQ7Q0I5NjsxMTBEIDExNzAgMTFCRDsKK0NCOTc7Q0I5NzsxMTBEIDExNzAgMTFCRTtDQjk3OzExMEQgMTE3MCAxMUJFOworQ0I5ODtDQjk4OzExMEQgMTE3MCAxMUJGO0NCOTg7MTEwRCAxMTcwIDExQkY7CitDQjk5O0NCOTk7MTEwRCAxMTcwIDExQzA7Q0I5OTsxMTBEIDExNzAgMTFDMDsKK0NCOUE7Q0I5QTsxMTBEIDExNzAgMTFDMTtDQjlBOzExMEQgMTE3MCAxMUMxOworQ0I5QjtDQjlCOzExMEQgMTE3MCAxMUMyO0NCOUI7MTEwRCAxMTcwIDExQzI7CitDQjlDO0NCOUM7MTEwRCAxMTcxO0NCOUM7MTEwRCAxMTcxOworQ0I5RDtDQjlEOzExMEQgMTE3MSAxMUE4O0NCOUQ7MTEwRCAxMTcxIDExQTg7CitDQjlFO0NCOUU7MTEwRCAxMTcxIDExQTk7Q0I5RTsxMTBEIDExNzEgMTFBOTsKK0NCOUY7Q0I5RjsxMTBEIDExNzEgMTFBQTtDQjlGOzExMEQgMTE3MSAxMUFBOworQ0JBMDtDQkEwOzExMEQgMTE3MSAxMUFCO0NCQTA7MTEwRCAxMTcxIDExQUI7CitDQkExO0NCQTE7MTEwRCAxMTcxIDExQUM7Q0JBMTsxMTBEIDExNzEgMTFBQzsKK0NCQTI7Q0JBMjsxMTBEIDExNzEgMTFBRDtDQkEyOzExMEQgMTE3MSAxMUFEOworQ0JBMztDQkEzOzExMEQgMTE3MSAxMUFFO0NCQTM7MTEwRCAxMTcxIDExQUU7CitDQkE0O0NCQTQ7MTEwRCAxMTcxIDExQUY7Q0JBNDsxMTBEIDExNzEgMTFBRjsKK0NCQTU7Q0JBNTsxMTBEIDExNzEgMTFCMDtDQkE1OzExMEQgMTE3MSAxMUIwOworQ0JBNjtDQkE2OzExMEQgMTE3MSAxMUIxO0NCQTY7MTEwRCAxMTcxIDExQjE7CitDQkE3O0NCQTc7MTEwRCAxMTcxIDExQjI7Q0JBNzsxMTBEIDExNzEgMTFCMjsKK0NCQTg7Q0JBODsxMTBEIDExNzEgMTFCMztDQkE4OzExMEQgMTE3MSAxMUIzOworQ0JBOTtDQkE5OzExMEQgMTE3MSAxMUI0O0NCQTk7MTEwRCAxMTcxIDExQjQ7CitDQkFBO0NCQUE7MTEwRCAxMTcxIDExQjU7Q0JBQTsxMTBEIDExNzEgMTFCNTsKK0NCQUI7Q0JBQjsxMTBEIDExNzEgMTFCNjtDQkFCOzExMEQgMTE3MSAxMUI2OworQ0JBQztDQkFDOzExMEQgMTE3MSAxMUI3O0NCQUM7MTEwRCAxMTcxIDExQjc7CitDQkFEO0NCQUQ7MTEwRCAxMTcxIDExQjg7Q0JBRDsxMTBEIDExNzEgMTFCODsKK0NCQUU7Q0JBRTsxMTBEIDExNzEgMTFCOTtDQkFFOzExMEQgMTE3MSAxMUI5OworQ0JBRjtDQkFGOzExMEQgMTE3MSAxMUJBO0NCQUY7MTEwRCAxMTcxIDExQkE7CitDQkIwO0NCQjA7MTEwRCAxMTcxIDExQkI7Q0JCMDsxMTBEIDExNzEgMTFCQjsKK0NCQjE7Q0JCMTsxMTBEIDExNzEgMTFCQztDQkIxOzExMEQgMTE3MSAxMUJDOworQ0JCMjtDQkIyOzExMEQgMTE3MSAxMUJEO0NCQjI7MTEwRCAxMTcxIDExQkQ7CitDQkIzO0NCQjM7MTEwRCAxMTcxIDExQkU7Q0JCMzsxMTBEIDExNzEgMTFCRTsKK0NCQjQ7Q0JCNDsxMTBEIDExNzEgMTFCRjtDQkI0OzExMEQgMTE3MSAxMUJGOworQ0JCNTtDQkI1OzExMEQgMTE3MSAxMUMwO0NCQjU7MTEwRCAxMTcxIDExQzA7CitDQkI2O0NCQjY7MTEwRCAxMTcxIDExQzE7Q0JCNjsxMTBEIDExNzEgMTFDMTsKK0NCQjc7Q0JCNzsxMTBEIDExNzEgMTFDMjtDQkI3OzExMEQgMTE3MSAxMUMyOworQ0JCODtDQkI4OzExMEQgMTE3MjtDQkI4OzExMEQgMTE3MjsKK0NCQjk7Q0JCOTsxMTBEIDExNzIgMTFBODtDQkI5OzExMEQgMTE3MiAxMUE4OworQ0JCQTtDQkJBOzExMEQgMTE3MiAxMUE5O0NCQkE7MTEwRCAxMTcyIDExQTk7CitDQkJCO0NCQkI7MTEwRCAxMTcyIDExQUE7Q0JCQjsxMTBEIDExNzIgMTFBQTsKK0NCQkM7Q0JCQzsxMTBEIDExNzIgMTFBQjtDQkJDOzExMEQgMTE3MiAxMUFCOworQ0JCRDtDQkJEOzExMEQgMTE3MiAxMUFDO0NCQkQ7MTEwRCAxMTcyIDExQUM7CitDQkJFO0NCQkU7MTEwRCAxMTcyIDExQUQ7Q0JCRTsxMTBEIDExNzIgMTFBRDsKK0NCQkY7Q0JCRjsxMTBEIDExNzIgMTFBRTtDQkJGOzExMEQgMTE3MiAxMUFFOworQ0JDMDtDQkMwOzExMEQgMTE3MiAxMUFGO0NCQzA7MTEwRCAxMTcyIDExQUY7CitDQkMxO0NCQzE7MTEwRCAxMTcyIDExQjA7Q0JDMTsxMTBEIDExNzIgMTFCMDsKK0NCQzI7Q0JDMjsxMTBEIDExNzIgMTFCMTtDQkMyOzExMEQgMTE3MiAxMUIxOworQ0JDMztDQkMzOzExMEQgMTE3MiAxMUIyO0NCQzM7MTEwRCAxMTcyIDExQjI7CitDQkM0O0NCQzQ7MTEwRCAxMTcyIDExQjM7Q0JDNDsxMTBEIDExNzIgMTFCMzsKK0NCQzU7Q0JDNTsxMTBEIDExNzIgMTFCNDtDQkM1OzExMEQgMTE3MiAxMUI0OworQ0JDNjtDQkM2OzExMEQgMTE3MiAxMUI1O0NCQzY7MTEwRCAxMTcyIDExQjU7CitDQkM3O0NCQzc7MTEwRCAxMTcyIDExQjY7Q0JDNzsxMTBEIDExNzIgMTFCNjsKK0NCQzg7Q0JDODsxMTBEIDExNzIgMTFCNztDQkM4OzExMEQgMTE3MiAxMUI3OworQ0JDOTtDQkM5OzExMEQgMTE3MiAxMUI4O0NCQzk7MTEwRCAxMTcyIDExQjg7CitDQkNBO0NCQ0E7MTEwRCAxMTcyIDExQjk7Q0JDQTsxMTBEIDExNzIgMTFCOTsKK0NCQ0I7Q0JDQjsxMTBEIDExNzIgMTFCQTtDQkNCOzExMEQgMTE3MiAxMUJBOworQ0JDQztDQkNDOzExMEQgMTE3MiAxMUJCO0NCQ0M7MTEwRCAxMTcyIDExQkI7CitDQkNEO0NCQ0Q7MTEwRCAxMTcyIDExQkM7Q0JDRDsxMTBEIDExNzIgMTFCQzsKK0NCQ0U7Q0JDRTsxMTBEIDExNzIgMTFCRDtDQkNFOzExMEQgMTE3MiAxMUJEOworQ0JDRjtDQkNGOzExMEQgMTE3MiAxMUJFO0NCQ0Y7MTEwRCAxMTcyIDExQkU7CitDQkQwO0NCRDA7MTEwRCAxMTcyIDExQkY7Q0JEMDsxMTBEIDExNzIgMTFCRjsKK0NCRDE7Q0JEMTsxMTBEIDExNzIgMTFDMDtDQkQxOzExMEQgMTE3MiAxMUMwOworQ0JEMjtDQkQyOzExMEQgMTE3MiAxMUMxO0NCRDI7MTEwRCAxMTcyIDExQzE7CitDQkQzO0NCRDM7MTEwRCAxMTcyIDExQzI7Q0JEMzsxMTBEIDExNzIgMTFDMjsKK0NCRDQ7Q0JENDsxMTBEIDExNzM7Q0JENDsxMTBEIDExNzM7CitDQkQ1O0NCRDU7MTEwRCAxMTczIDExQTg7Q0JENTsxMTBEIDExNzMgMTFBODsKK0NCRDY7Q0JENjsxMTBEIDExNzMgMTFBOTtDQkQ2OzExMEQgMTE3MyAxMUE5OworQ0JENztDQkQ3OzExMEQgMTE3MyAxMUFBO0NCRDc7MTEwRCAxMTczIDExQUE7CitDQkQ4O0NCRDg7MTEwRCAxMTczIDExQUI7Q0JEODsxMTBEIDExNzMgMTFBQjsKK0NCRDk7Q0JEOTsxMTBEIDExNzMgMTFBQztDQkQ5OzExMEQgMTE3MyAxMUFDOworQ0JEQTtDQkRBOzExMEQgMTE3MyAxMUFEO0NCREE7MTEwRCAxMTczIDExQUQ7CitDQkRCO0NCREI7MTEwRCAxMTczIDExQUU7Q0JEQjsxMTBEIDExNzMgMTFBRTsKK0NCREM7Q0JEQzsxMTBEIDExNzMgMTFBRjtDQkRDOzExMEQgMTE3MyAxMUFGOworQ0JERDtDQkREOzExMEQgMTE3MyAxMUIwO0NCREQ7MTEwRCAxMTczIDExQjA7CitDQkRFO0NCREU7MTEwRCAxMTczIDExQjE7Q0JERTsxMTBEIDExNzMgMTFCMTsKK0NCREY7Q0JERjsxMTBEIDExNzMgMTFCMjtDQkRGOzExMEQgMTE3MyAxMUIyOworQ0JFMDtDQkUwOzExMEQgMTE3MyAxMUIzO0NCRTA7MTEwRCAxMTczIDExQjM7CitDQkUxO0NCRTE7MTEwRCAxMTczIDExQjQ7Q0JFMTsxMTBEIDExNzMgMTFCNDsKK0NCRTI7Q0JFMjsxMTBEIDExNzMgMTFCNTtDQkUyOzExMEQgMTE3MyAxMUI1OworQ0JFMztDQkUzOzExMEQgMTE3MyAxMUI2O0NCRTM7MTEwRCAxMTczIDExQjY7CitDQkU0O0NCRTQ7MTEwRCAxMTczIDExQjc7Q0JFNDsxMTBEIDExNzMgMTFCNzsKK0NCRTU7Q0JFNTsxMTBEIDExNzMgMTFCODtDQkU1OzExMEQgMTE3MyAxMUI4OworQ0JFNjtDQkU2OzExMEQgMTE3MyAxMUI5O0NCRTY7MTEwRCAxMTczIDExQjk7CitDQkU3O0NCRTc7MTEwRCAxMTczIDExQkE7Q0JFNzsxMTBEIDExNzMgMTFCQTsKK0NCRTg7Q0JFODsxMTBEIDExNzMgMTFCQjtDQkU4OzExMEQgMTE3MyAxMUJCOworQ0JFOTtDQkU5OzExMEQgMTE3MyAxMUJDO0NCRTk7MTEwRCAxMTczIDExQkM7CitDQkVBO0NCRUE7MTEwRCAxMTczIDExQkQ7Q0JFQTsxMTBEIDExNzMgMTFCRDsKK0NCRUI7Q0JFQjsxMTBEIDExNzMgMTFCRTtDQkVCOzExMEQgMTE3MyAxMUJFOworQ0JFQztDQkVDOzExMEQgMTE3MyAxMUJGO0NCRUM7MTEwRCAxMTczIDExQkY7CitDQkVEO0NCRUQ7MTEwRCAxMTczIDExQzA7Q0JFRDsxMTBEIDExNzMgMTFDMDsKK0NCRUU7Q0JFRTsxMTBEIDExNzMgMTFDMTtDQkVFOzExMEQgMTE3MyAxMUMxOworQ0JFRjtDQkVGOzExMEQgMTE3MyAxMUMyO0NCRUY7MTEwRCAxMTczIDExQzI7CitDQkYwO0NCRjA7MTEwRCAxMTc0O0NCRjA7MTEwRCAxMTc0OworQ0JGMTtDQkYxOzExMEQgMTE3NCAxMUE4O0NCRjE7MTEwRCAxMTc0IDExQTg7CitDQkYyO0NCRjI7MTEwRCAxMTc0IDExQTk7Q0JGMjsxMTBEIDExNzQgMTFBOTsKK0NCRjM7Q0JGMzsxMTBEIDExNzQgMTFBQTtDQkYzOzExMEQgMTE3NCAxMUFBOworQ0JGNDtDQkY0OzExMEQgMTE3NCAxMUFCO0NCRjQ7MTEwRCAxMTc0IDExQUI7CitDQkY1O0NCRjU7MTEwRCAxMTc0IDExQUM7Q0JGNTsxMTBEIDExNzQgMTFBQzsKK0NCRjY7Q0JGNjsxMTBEIDExNzQgMTFBRDtDQkY2OzExMEQgMTE3NCAxMUFEOworQ0JGNztDQkY3OzExMEQgMTE3NCAxMUFFO0NCRjc7MTEwRCAxMTc0IDExQUU7CitDQkY4O0NCRjg7MTEwRCAxMTc0IDExQUY7Q0JGODsxMTBEIDExNzQgMTFBRjsKK0NCRjk7Q0JGOTsxMTBEIDExNzQgMTFCMDtDQkY5OzExMEQgMTE3NCAxMUIwOworQ0JGQTtDQkZBOzExMEQgMTE3NCAxMUIxO0NCRkE7MTEwRCAxMTc0IDExQjE7CitDQkZCO0NCRkI7MTEwRCAxMTc0IDExQjI7Q0JGQjsxMTBEIDExNzQgMTFCMjsKK0NCRkM7Q0JGQzsxMTBEIDExNzQgMTFCMztDQkZDOzExMEQgMTE3NCAxMUIzOworQ0JGRDtDQkZEOzExMEQgMTE3NCAxMUI0O0NCRkQ7MTEwRCAxMTc0IDExQjQ7CitDQkZFO0NCRkU7MTEwRCAxMTc0IDExQjU7Q0JGRTsxMTBEIDExNzQgMTFCNTsKK0NCRkY7Q0JGRjsxMTBEIDExNzQgMTFCNjtDQkZGOzExMEQgMTE3NCAxMUI2OworQ0MwMDtDQzAwOzExMEQgMTE3NCAxMUI3O0NDMDA7MTEwRCAxMTc0IDExQjc7CitDQzAxO0NDMDE7MTEwRCAxMTc0IDExQjg7Q0MwMTsxMTBEIDExNzQgMTFCODsKK0NDMDI7Q0MwMjsxMTBEIDExNzQgMTFCOTtDQzAyOzExMEQgMTE3NCAxMUI5OworQ0MwMztDQzAzOzExMEQgMTE3NCAxMUJBO0NDMDM7MTEwRCAxMTc0IDExQkE7CitDQzA0O0NDMDQ7MTEwRCAxMTc0IDExQkI7Q0MwNDsxMTBEIDExNzQgMTFCQjsKK0NDMDU7Q0MwNTsxMTBEIDExNzQgMTFCQztDQzA1OzExMEQgMTE3NCAxMUJDOworQ0MwNjtDQzA2OzExMEQgMTE3NCAxMUJEO0NDMDY7MTEwRCAxMTc0IDExQkQ7CitDQzA3O0NDMDc7MTEwRCAxMTc0IDExQkU7Q0MwNzsxMTBEIDExNzQgMTFCRTsKK0NDMDg7Q0MwODsxMTBEIDExNzQgMTFCRjtDQzA4OzExMEQgMTE3NCAxMUJGOworQ0MwOTtDQzA5OzExMEQgMTE3NCAxMUMwO0NDMDk7MTEwRCAxMTc0IDExQzA7CitDQzBBO0NDMEE7MTEwRCAxMTc0IDExQzE7Q0MwQTsxMTBEIDExNzQgMTFDMTsKK0NDMEI7Q0MwQjsxMTBEIDExNzQgMTFDMjtDQzBCOzExMEQgMTE3NCAxMUMyOworQ0MwQztDQzBDOzExMEQgMTE3NTtDQzBDOzExMEQgMTE3NTsKK0NDMEQ7Q0MwRDsxMTBEIDExNzUgMTFBODtDQzBEOzExMEQgMTE3NSAxMUE4OworQ0MwRTtDQzBFOzExMEQgMTE3NSAxMUE5O0NDMEU7MTEwRCAxMTc1IDExQTk7CitDQzBGO0NDMEY7MTEwRCAxMTc1IDExQUE7Q0MwRjsxMTBEIDExNzUgMTFBQTsKK0NDMTA7Q0MxMDsxMTBEIDExNzUgMTFBQjtDQzEwOzExMEQgMTE3NSAxMUFCOworQ0MxMTtDQzExOzExMEQgMTE3NSAxMUFDO0NDMTE7MTEwRCAxMTc1IDExQUM7CitDQzEyO0NDMTI7MTEwRCAxMTc1IDExQUQ7Q0MxMjsxMTBEIDExNzUgMTFBRDsKK0NDMTM7Q0MxMzsxMTBEIDExNzUgMTFBRTtDQzEzOzExMEQgMTE3NSAxMUFFOworQ0MxNDtDQzE0OzExMEQgMTE3NSAxMUFGO0NDMTQ7MTEwRCAxMTc1IDExQUY7CitDQzE1O0NDMTU7MTEwRCAxMTc1IDExQjA7Q0MxNTsxMTBEIDExNzUgMTFCMDsKK0NDMTY7Q0MxNjsxMTBEIDExNzUgMTFCMTtDQzE2OzExMEQgMTE3NSAxMUIxOworQ0MxNztDQzE3OzExMEQgMTE3NSAxMUIyO0NDMTc7MTEwRCAxMTc1IDExQjI7CitDQzE4O0NDMTg7MTEwRCAxMTc1IDExQjM7Q0MxODsxMTBEIDExNzUgMTFCMzsKK0NDMTk7Q0MxOTsxMTBEIDExNzUgMTFCNDtDQzE5OzExMEQgMTE3NSAxMUI0OworQ0MxQTtDQzFBOzExMEQgMTE3NSAxMUI1O0NDMUE7MTEwRCAxMTc1IDExQjU7CitDQzFCO0NDMUI7MTEwRCAxMTc1IDExQjY7Q0MxQjsxMTBEIDExNzUgMTFCNjsKK0NDMUM7Q0MxQzsxMTBEIDExNzUgMTFCNztDQzFDOzExMEQgMTE3NSAxMUI3OworQ0MxRDtDQzFEOzExMEQgMTE3NSAxMUI4O0NDMUQ7MTEwRCAxMTc1IDExQjg7CitDQzFFO0NDMUU7MTEwRCAxMTc1IDExQjk7Q0MxRTsxMTBEIDExNzUgMTFCOTsKK0NDMUY7Q0MxRjsxMTBEIDExNzUgMTFCQTtDQzFGOzExMEQgMTE3NSAxMUJBOworQ0MyMDtDQzIwOzExMEQgMTE3NSAxMUJCO0NDMjA7MTEwRCAxMTc1IDExQkI7CitDQzIxO0NDMjE7MTEwRCAxMTc1IDExQkM7Q0MyMTsxMTBEIDExNzUgMTFCQzsKK0NDMjI7Q0MyMjsxMTBEIDExNzUgMTFCRDtDQzIyOzExMEQgMTE3NSAxMUJEOworQ0MyMztDQzIzOzExMEQgMTE3NSAxMUJFO0NDMjM7MTEwRCAxMTc1IDExQkU7CitDQzI0O0NDMjQ7MTEwRCAxMTc1IDExQkY7Q0MyNDsxMTBEIDExNzUgMTFCRjsKK0NDMjU7Q0MyNTsxMTBEIDExNzUgMTFDMDtDQzI1OzExMEQgMTE3NSAxMUMwOworQ0MyNjtDQzI2OzExMEQgMTE3NSAxMUMxO0NDMjY7MTEwRCAxMTc1IDExQzE7CitDQzI3O0NDMjc7MTEwRCAxMTc1IDExQzI7Q0MyNzsxMTBEIDExNzUgMTFDMjsKK0NDMjg7Q0MyODsxMTBFIDExNjE7Q0MyODsxMTBFIDExNjE7CitDQzI5O0NDMjk7MTEwRSAxMTYxIDExQTg7Q0MyOTsxMTBFIDExNjEgMTFBODsKK0NDMkE7Q0MyQTsxMTBFIDExNjEgMTFBOTtDQzJBOzExMEUgMTE2MSAxMUE5OworQ0MyQjtDQzJCOzExMEUgMTE2MSAxMUFBO0NDMkI7MTEwRSAxMTYxIDExQUE7CitDQzJDO0NDMkM7MTEwRSAxMTYxIDExQUI7Q0MyQzsxMTBFIDExNjEgMTFBQjsKK0NDMkQ7Q0MyRDsxMTBFIDExNjEgMTFBQztDQzJEOzExMEUgMTE2MSAxMUFDOworQ0MyRTtDQzJFOzExMEUgMTE2MSAxMUFEO0NDMkU7MTEwRSAxMTYxIDExQUQ7CitDQzJGO0NDMkY7MTEwRSAxMTYxIDExQUU7Q0MyRjsxMTBFIDExNjEgMTFBRTsKK0NDMzA7Q0MzMDsxMTBFIDExNjEgMTFBRjtDQzMwOzExMEUgMTE2MSAxMUFGOworQ0MzMTtDQzMxOzExMEUgMTE2MSAxMUIwO0NDMzE7MTEwRSAxMTYxIDExQjA7CitDQzMyO0NDMzI7MTEwRSAxMTYxIDExQjE7Q0MzMjsxMTBFIDExNjEgMTFCMTsKK0NDMzM7Q0MzMzsxMTBFIDExNjEgMTFCMjtDQzMzOzExMEUgMTE2MSAxMUIyOworQ0MzNDtDQzM0OzExMEUgMTE2MSAxMUIzO0NDMzQ7MTEwRSAxMTYxIDExQjM7CitDQzM1O0NDMzU7MTEwRSAxMTYxIDExQjQ7Q0MzNTsxMTBFIDExNjEgMTFCNDsKK0NDMzY7Q0MzNjsxMTBFIDExNjEgMTFCNTtDQzM2OzExMEUgMTE2MSAxMUI1OworQ0MzNztDQzM3OzExMEUgMTE2MSAxMUI2O0NDMzc7MTEwRSAxMTYxIDExQjY7CitDQzM4O0NDMzg7MTEwRSAxMTYxIDExQjc7Q0MzODsxMTBFIDExNjEgMTFCNzsKK0NDMzk7Q0MzOTsxMTBFIDExNjEgMTFCODtDQzM5OzExMEUgMTE2MSAxMUI4OworQ0MzQTtDQzNBOzExMEUgMTE2MSAxMUI5O0NDM0E7MTEwRSAxMTYxIDExQjk7CitDQzNCO0NDM0I7MTEwRSAxMTYxIDExQkE7Q0MzQjsxMTBFIDExNjEgMTFCQTsKK0NDM0M7Q0MzQzsxMTBFIDExNjEgMTFCQjtDQzNDOzExMEUgMTE2MSAxMUJCOworQ0MzRDtDQzNEOzExMEUgMTE2MSAxMUJDO0NDM0Q7MTEwRSAxMTYxIDExQkM7CitDQzNFO0NDM0U7MTEwRSAxMTYxIDExQkQ7Q0MzRTsxMTBFIDExNjEgMTFCRDsKK0NDM0Y7Q0MzRjsxMTBFIDExNjEgMTFCRTtDQzNGOzExMEUgMTE2MSAxMUJFOworQ0M0MDtDQzQwOzExMEUgMTE2MSAxMUJGO0NDNDA7MTEwRSAxMTYxIDExQkY7CitDQzQxO0NDNDE7MTEwRSAxMTYxIDExQzA7Q0M0MTsxMTBFIDExNjEgMTFDMDsKK0NDNDI7Q0M0MjsxMTBFIDExNjEgMTFDMTtDQzQyOzExMEUgMTE2MSAxMUMxOworQ0M0MztDQzQzOzExMEUgMTE2MSAxMUMyO0NDNDM7MTEwRSAxMTYxIDExQzI7CitDQzQ0O0NDNDQ7MTEwRSAxMTYyO0NDNDQ7MTEwRSAxMTYyOworQ0M0NTtDQzQ1OzExMEUgMTE2MiAxMUE4O0NDNDU7MTEwRSAxMTYyIDExQTg7CitDQzQ2O0NDNDY7MTEwRSAxMTYyIDExQTk7Q0M0NjsxMTBFIDExNjIgMTFBOTsKK0NDNDc7Q0M0NzsxMTBFIDExNjIgMTFBQTtDQzQ3OzExMEUgMTE2MiAxMUFBOworQ0M0ODtDQzQ4OzExMEUgMTE2MiAxMUFCO0NDNDg7MTEwRSAxMTYyIDExQUI7CitDQzQ5O0NDNDk7MTEwRSAxMTYyIDExQUM7Q0M0OTsxMTBFIDExNjIgMTFBQzsKK0NDNEE7Q0M0QTsxMTBFIDExNjIgMTFBRDtDQzRBOzExMEUgMTE2MiAxMUFEOworQ0M0QjtDQzRCOzExMEUgMTE2MiAxMUFFO0NDNEI7MTEwRSAxMTYyIDExQUU7CitDQzRDO0NDNEM7MTEwRSAxMTYyIDExQUY7Q0M0QzsxMTBFIDExNjIgMTFBRjsKK0NDNEQ7Q0M0RDsxMTBFIDExNjIgMTFCMDtDQzREOzExMEUgMTE2MiAxMUIwOworQ0M0RTtDQzRFOzExMEUgMTE2MiAxMUIxO0NDNEU7MTEwRSAxMTYyIDExQjE7CitDQzRGO0NDNEY7MTEwRSAxMTYyIDExQjI7Q0M0RjsxMTBFIDExNjIgMTFCMjsKK0NDNTA7Q0M1MDsxMTBFIDExNjIgMTFCMztDQzUwOzExMEUgMTE2MiAxMUIzOworQ0M1MTtDQzUxOzExMEUgMTE2MiAxMUI0O0NDNTE7MTEwRSAxMTYyIDExQjQ7CitDQzUyO0NDNTI7MTEwRSAxMTYyIDExQjU7Q0M1MjsxMTBFIDExNjIgMTFCNTsKK0NDNTM7Q0M1MzsxMTBFIDExNjIgMTFCNjtDQzUzOzExMEUgMTE2MiAxMUI2OworQ0M1NDtDQzU0OzExMEUgMTE2MiAxMUI3O0NDNTQ7MTEwRSAxMTYyIDExQjc7CitDQzU1O0NDNTU7MTEwRSAxMTYyIDExQjg7Q0M1NTsxMTBFIDExNjIgMTFCODsKK0NDNTY7Q0M1NjsxMTBFIDExNjIgMTFCOTtDQzU2OzExMEUgMTE2MiAxMUI5OworQ0M1NztDQzU3OzExMEUgMTE2MiAxMUJBO0NDNTc7MTEwRSAxMTYyIDExQkE7CitDQzU4O0NDNTg7MTEwRSAxMTYyIDExQkI7Q0M1ODsxMTBFIDExNjIgMTFCQjsKK0NDNTk7Q0M1OTsxMTBFIDExNjIgMTFCQztDQzU5OzExMEUgMTE2MiAxMUJDOworQ0M1QTtDQzVBOzExMEUgMTE2MiAxMUJEO0NDNUE7MTEwRSAxMTYyIDExQkQ7CitDQzVCO0NDNUI7MTEwRSAxMTYyIDExQkU7Q0M1QjsxMTBFIDExNjIgMTFCRTsKK0NDNUM7Q0M1QzsxMTBFIDExNjIgMTFCRjtDQzVDOzExMEUgMTE2MiAxMUJGOworQ0M1RDtDQzVEOzExMEUgMTE2MiAxMUMwO0NDNUQ7MTEwRSAxMTYyIDExQzA7CitDQzVFO0NDNUU7MTEwRSAxMTYyIDExQzE7Q0M1RTsxMTBFIDExNjIgMTFDMTsKK0NDNUY7Q0M1RjsxMTBFIDExNjIgMTFDMjtDQzVGOzExMEUgMTE2MiAxMUMyOworQ0M2MDtDQzYwOzExMEUgMTE2MztDQzYwOzExMEUgMTE2MzsKK0NDNjE7Q0M2MTsxMTBFIDExNjMgMTFBODtDQzYxOzExMEUgMTE2MyAxMUE4OworQ0M2MjtDQzYyOzExMEUgMTE2MyAxMUE5O0NDNjI7MTEwRSAxMTYzIDExQTk7CitDQzYzO0NDNjM7MTEwRSAxMTYzIDExQUE7Q0M2MzsxMTBFIDExNjMgMTFBQTsKK0NDNjQ7Q0M2NDsxMTBFIDExNjMgMTFBQjtDQzY0OzExMEUgMTE2MyAxMUFCOworQ0M2NTtDQzY1OzExMEUgMTE2MyAxMUFDO0NDNjU7MTEwRSAxMTYzIDExQUM7CitDQzY2O0NDNjY7MTEwRSAxMTYzIDExQUQ7Q0M2NjsxMTBFIDExNjMgMTFBRDsKK0NDNjc7Q0M2NzsxMTBFIDExNjMgMTFBRTtDQzY3OzExMEUgMTE2MyAxMUFFOworQ0M2ODtDQzY4OzExMEUgMTE2MyAxMUFGO0NDNjg7MTEwRSAxMTYzIDExQUY7CitDQzY5O0NDNjk7MTEwRSAxMTYzIDExQjA7Q0M2OTsxMTBFIDExNjMgMTFCMDsKK0NDNkE7Q0M2QTsxMTBFIDExNjMgMTFCMTtDQzZBOzExMEUgMTE2MyAxMUIxOworQ0M2QjtDQzZCOzExMEUgMTE2MyAxMUIyO0NDNkI7MTEwRSAxMTYzIDExQjI7CitDQzZDO0NDNkM7MTEwRSAxMTYzIDExQjM7Q0M2QzsxMTBFIDExNjMgMTFCMzsKK0NDNkQ7Q0M2RDsxMTBFIDExNjMgMTFCNDtDQzZEOzExMEUgMTE2MyAxMUI0OworQ0M2RTtDQzZFOzExMEUgMTE2MyAxMUI1O0NDNkU7MTEwRSAxMTYzIDExQjU7CitDQzZGO0NDNkY7MTEwRSAxMTYzIDExQjY7Q0M2RjsxMTBFIDExNjMgMTFCNjsKK0NDNzA7Q0M3MDsxMTBFIDExNjMgMTFCNztDQzcwOzExMEUgMTE2MyAxMUI3OworQ0M3MTtDQzcxOzExMEUgMTE2MyAxMUI4O0NDNzE7MTEwRSAxMTYzIDExQjg7CitDQzcyO0NDNzI7MTEwRSAxMTYzIDExQjk7Q0M3MjsxMTBFIDExNjMgMTFCOTsKK0NDNzM7Q0M3MzsxMTBFIDExNjMgMTFCQTtDQzczOzExMEUgMTE2MyAxMUJBOworQ0M3NDtDQzc0OzExMEUgMTE2MyAxMUJCO0NDNzQ7MTEwRSAxMTYzIDExQkI7CitDQzc1O0NDNzU7MTEwRSAxMTYzIDExQkM7Q0M3NTsxMTBFIDExNjMgMTFCQzsKK0NDNzY7Q0M3NjsxMTBFIDExNjMgMTFCRDtDQzc2OzExMEUgMTE2MyAxMUJEOworQ0M3NztDQzc3OzExMEUgMTE2MyAxMUJFO0NDNzc7MTEwRSAxMTYzIDExQkU7CitDQzc4O0NDNzg7MTEwRSAxMTYzIDExQkY7Q0M3ODsxMTBFIDExNjMgMTFCRjsKK0NDNzk7Q0M3OTsxMTBFIDExNjMgMTFDMDtDQzc5OzExMEUgMTE2MyAxMUMwOworQ0M3QTtDQzdBOzExMEUgMTE2MyAxMUMxO0NDN0E7MTEwRSAxMTYzIDExQzE7CitDQzdCO0NDN0I7MTEwRSAxMTYzIDExQzI7Q0M3QjsxMTBFIDExNjMgMTFDMjsKK0NDN0M7Q0M3QzsxMTBFIDExNjQ7Q0M3QzsxMTBFIDExNjQ7CitDQzdEO0NDN0Q7MTEwRSAxMTY0IDExQTg7Q0M3RDsxMTBFIDExNjQgMTFBODsKK0NDN0U7Q0M3RTsxMTBFIDExNjQgMTFBOTtDQzdFOzExMEUgMTE2NCAxMUE5OworQ0M3RjtDQzdGOzExMEUgMTE2NCAxMUFBO0NDN0Y7MTEwRSAxMTY0IDExQUE7CitDQzgwO0NDODA7MTEwRSAxMTY0IDExQUI7Q0M4MDsxMTBFIDExNjQgMTFBQjsKK0NDODE7Q0M4MTsxMTBFIDExNjQgMTFBQztDQzgxOzExMEUgMTE2NCAxMUFDOworQ0M4MjtDQzgyOzExMEUgMTE2NCAxMUFEO0NDODI7MTEwRSAxMTY0IDExQUQ7CitDQzgzO0NDODM7MTEwRSAxMTY0IDExQUU7Q0M4MzsxMTBFIDExNjQgMTFBRTsKK0NDODQ7Q0M4NDsxMTBFIDExNjQgMTFBRjtDQzg0OzExMEUgMTE2NCAxMUFGOworQ0M4NTtDQzg1OzExMEUgMTE2NCAxMUIwO0NDODU7MTEwRSAxMTY0IDExQjA7CitDQzg2O0NDODY7MTEwRSAxMTY0IDExQjE7Q0M4NjsxMTBFIDExNjQgMTFCMTsKK0NDODc7Q0M4NzsxMTBFIDExNjQgMTFCMjtDQzg3OzExMEUgMTE2NCAxMUIyOworQ0M4ODtDQzg4OzExMEUgMTE2NCAxMUIzO0NDODg7MTEwRSAxMTY0IDExQjM7CitDQzg5O0NDODk7MTEwRSAxMTY0IDExQjQ7Q0M4OTsxMTBFIDExNjQgMTFCNDsKK0NDOEE7Q0M4QTsxMTBFIDExNjQgMTFCNTtDQzhBOzExMEUgMTE2NCAxMUI1OworQ0M4QjtDQzhCOzExMEUgMTE2NCAxMUI2O0NDOEI7MTEwRSAxMTY0IDExQjY7CitDQzhDO0NDOEM7MTEwRSAxMTY0IDExQjc7Q0M4QzsxMTBFIDExNjQgMTFCNzsKK0NDOEQ7Q0M4RDsxMTBFIDExNjQgMTFCODtDQzhEOzExMEUgMTE2NCAxMUI4OworQ0M4RTtDQzhFOzExMEUgMTE2NCAxMUI5O0NDOEU7MTEwRSAxMTY0IDExQjk7CitDQzhGO0NDOEY7MTEwRSAxMTY0IDExQkE7Q0M4RjsxMTBFIDExNjQgMTFCQTsKK0NDOTA7Q0M5MDsxMTBFIDExNjQgMTFCQjtDQzkwOzExMEUgMTE2NCAxMUJCOworQ0M5MTtDQzkxOzExMEUgMTE2NCAxMUJDO0NDOTE7MTEwRSAxMTY0IDExQkM7CitDQzkyO0NDOTI7MTEwRSAxMTY0IDExQkQ7Q0M5MjsxMTBFIDExNjQgMTFCRDsKK0NDOTM7Q0M5MzsxMTBFIDExNjQgMTFCRTtDQzkzOzExMEUgMTE2NCAxMUJFOworQ0M5NDtDQzk0OzExMEUgMTE2NCAxMUJGO0NDOTQ7MTEwRSAxMTY0IDExQkY7CitDQzk1O0NDOTU7MTEwRSAxMTY0IDExQzA7Q0M5NTsxMTBFIDExNjQgMTFDMDsKK0NDOTY7Q0M5NjsxMTBFIDExNjQgMTFDMTtDQzk2OzExMEUgMTE2NCAxMUMxOworQ0M5NztDQzk3OzExMEUgMTE2NCAxMUMyO0NDOTc7MTEwRSAxMTY0IDExQzI7CitDQzk4O0NDOTg7MTEwRSAxMTY1O0NDOTg7MTEwRSAxMTY1OworQ0M5OTtDQzk5OzExMEUgMTE2NSAxMUE4O0NDOTk7MTEwRSAxMTY1IDExQTg7CitDQzlBO0NDOUE7MTEwRSAxMTY1IDExQTk7Q0M5QTsxMTBFIDExNjUgMTFBOTsKK0NDOUI7Q0M5QjsxMTBFIDExNjUgMTFBQTtDQzlCOzExMEUgMTE2NSAxMUFBOworQ0M5QztDQzlDOzExMEUgMTE2NSAxMUFCO0NDOUM7MTEwRSAxMTY1IDExQUI7CitDQzlEO0NDOUQ7MTEwRSAxMTY1IDExQUM7Q0M5RDsxMTBFIDExNjUgMTFBQzsKK0NDOUU7Q0M5RTsxMTBFIDExNjUgMTFBRDtDQzlFOzExMEUgMTE2NSAxMUFEOworQ0M5RjtDQzlGOzExMEUgMTE2NSAxMUFFO0NDOUY7MTEwRSAxMTY1IDExQUU7CitDQ0EwO0NDQTA7MTEwRSAxMTY1IDExQUY7Q0NBMDsxMTBFIDExNjUgMTFBRjsKK0NDQTE7Q0NBMTsxMTBFIDExNjUgMTFCMDtDQ0ExOzExMEUgMTE2NSAxMUIwOworQ0NBMjtDQ0EyOzExMEUgMTE2NSAxMUIxO0NDQTI7MTEwRSAxMTY1IDExQjE7CitDQ0EzO0NDQTM7MTEwRSAxMTY1IDExQjI7Q0NBMzsxMTBFIDExNjUgMTFCMjsKK0NDQTQ7Q0NBNDsxMTBFIDExNjUgMTFCMztDQ0E0OzExMEUgMTE2NSAxMUIzOworQ0NBNTtDQ0E1OzExMEUgMTE2NSAxMUI0O0NDQTU7MTEwRSAxMTY1IDExQjQ7CitDQ0E2O0NDQTY7MTEwRSAxMTY1IDExQjU7Q0NBNjsxMTBFIDExNjUgMTFCNTsKK0NDQTc7Q0NBNzsxMTBFIDExNjUgMTFCNjtDQ0E3OzExMEUgMTE2NSAxMUI2OworQ0NBODtDQ0E4OzExMEUgMTE2NSAxMUI3O0NDQTg7MTEwRSAxMTY1IDExQjc7CitDQ0E5O0NDQTk7MTEwRSAxMTY1IDExQjg7Q0NBOTsxMTBFIDExNjUgMTFCODsKK0NDQUE7Q0NBQTsxMTBFIDExNjUgMTFCOTtDQ0FBOzExMEUgMTE2NSAxMUI5OworQ0NBQjtDQ0FCOzExMEUgMTE2NSAxMUJBO0NDQUI7MTEwRSAxMTY1IDExQkE7CitDQ0FDO0NDQUM7MTEwRSAxMTY1IDExQkI7Q0NBQzsxMTBFIDExNjUgMTFCQjsKK0NDQUQ7Q0NBRDsxMTBFIDExNjUgMTFCQztDQ0FEOzExMEUgMTE2NSAxMUJDOworQ0NBRTtDQ0FFOzExMEUgMTE2NSAxMUJEO0NDQUU7MTEwRSAxMTY1IDExQkQ7CitDQ0FGO0NDQUY7MTEwRSAxMTY1IDExQkU7Q0NBRjsxMTBFIDExNjUgMTFCRTsKK0NDQjA7Q0NCMDsxMTBFIDExNjUgMTFCRjtDQ0IwOzExMEUgMTE2NSAxMUJGOworQ0NCMTtDQ0IxOzExMEUgMTE2NSAxMUMwO0NDQjE7MTEwRSAxMTY1IDExQzA7CitDQ0IyO0NDQjI7MTEwRSAxMTY1IDExQzE7Q0NCMjsxMTBFIDExNjUgMTFDMTsKK0NDQjM7Q0NCMzsxMTBFIDExNjUgMTFDMjtDQ0IzOzExMEUgMTE2NSAxMUMyOworQ0NCNDtDQ0I0OzExMEUgMTE2NjtDQ0I0OzExMEUgMTE2NjsKK0NDQjU7Q0NCNTsxMTBFIDExNjYgMTFBODtDQ0I1OzExMEUgMTE2NiAxMUE4OworQ0NCNjtDQ0I2OzExMEUgMTE2NiAxMUE5O0NDQjY7MTEwRSAxMTY2IDExQTk7CitDQ0I3O0NDQjc7MTEwRSAxMTY2IDExQUE7Q0NCNzsxMTBFIDExNjYgMTFBQTsKK0NDQjg7Q0NCODsxMTBFIDExNjYgMTFBQjtDQ0I4OzExMEUgMTE2NiAxMUFCOworQ0NCOTtDQ0I5OzExMEUgMTE2NiAxMUFDO0NDQjk7MTEwRSAxMTY2IDExQUM7CitDQ0JBO0NDQkE7MTEwRSAxMTY2IDExQUQ7Q0NCQTsxMTBFIDExNjYgMTFBRDsKK0NDQkI7Q0NCQjsxMTBFIDExNjYgMTFBRTtDQ0JCOzExMEUgMTE2NiAxMUFFOworQ0NCQztDQ0JDOzExMEUgMTE2NiAxMUFGO0NDQkM7MTEwRSAxMTY2IDExQUY7CitDQ0JEO0NDQkQ7MTEwRSAxMTY2IDExQjA7Q0NCRDsxMTBFIDExNjYgMTFCMDsKK0NDQkU7Q0NCRTsxMTBFIDExNjYgMTFCMTtDQ0JFOzExMEUgMTE2NiAxMUIxOworQ0NCRjtDQ0JGOzExMEUgMTE2NiAxMUIyO0NDQkY7MTEwRSAxMTY2IDExQjI7CitDQ0MwO0NDQzA7MTEwRSAxMTY2IDExQjM7Q0NDMDsxMTBFIDExNjYgMTFCMzsKK0NDQzE7Q0NDMTsxMTBFIDExNjYgMTFCNDtDQ0MxOzExMEUgMTE2NiAxMUI0OworQ0NDMjtDQ0MyOzExMEUgMTE2NiAxMUI1O0NDQzI7MTEwRSAxMTY2IDExQjU7CitDQ0MzO0NDQzM7MTEwRSAxMTY2IDExQjY7Q0NDMzsxMTBFIDExNjYgMTFCNjsKK0NDQzQ7Q0NDNDsxMTBFIDExNjYgMTFCNztDQ0M0OzExMEUgMTE2NiAxMUI3OworQ0NDNTtDQ0M1OzExMEUgMTE2NiAxMUI4O0NDQzU7MTEwRSAxMTY2IDExQjg7CitDQ0M2O0NDQzY7MTEwRSAxMTY2IDExQjk7Q0NDNjsxMTBFIDExNjYgMTFCOTsKK0NDQzc7Q0NDNzsxMTBFIDExNjYgMTFCQTtDQ0M3OzExMEUgMTE2NiAxMUJBOworQ0NDODtDQ0M4OzExMEUgMTE2NiAxMUJCO0NDQzg7MTEwRSAxMTY2IDExQkI7CitDQ0M5O0NDQzk7MTEwRSAxMTY2IDExQkM7Q0NDOTsxMTBFIDExNjYgMTFCQzsKK0NDQ0E7Q0NDQTsxMTBFIDExNjYgMTFCRDtDQ0NBOzExMEUgMTE2NiAxMUJEOworQ0NDQjtDQ0NCOzExMEUgMTE2NiAxMUJFO0NDQ0I7MTEwRSAxMTY2IDExQkU7CitDQ0NDO0NDQ0M7MTEwRSAxMTY2IDExQkY7Q0NDQzsxMTBFIDExNjYgMTFCRjsKK0NDQ0Q7Q0NDRDsxMTBFIDExNjYgMTFDMDtDQ0NEOzExMEUgMTE2NiAxMUMwOworQ0NDRTtDQ0NFOzExMEUgMTE2NiAxMUMxO0NDQ0U7MTEwRSAxMTY2IDExQzE7CitDQ0NGO0NDQ0Y7MTEwRSAxMTY2IDExQzI7Q0NDRjsxMTBFIDExNjYgMTFDMjsKK0NDRDA7Q0NEMDsxMTBFIDExNjc7Q0NEMDsxMTBFIDExNjc7CitDQ0QxO0NDRDE7MTEwRSAxMTY3IDExQTg7Q0NEMTsxMTBFIDExNjcgMTFBODsKK0NDRDI7Q0NEMjsxMTBFIDExNjcgMTFBOTtDQ0QyOzExMEUgMTE2NyAxMUE5OworQ0NEMztDQ0QzOzExMEUgMTE2NyAxMUFBO0NDRDM7MTEwRSAxMTY3IDExQUE7CitDQ0Q0O0NDRDQ7MTEwRSAxMTY3IDExQUI7Q0NENDsxMTBFIDExNjcgMTFBQjsKK0NDRDU7Q0NENTsxMTBFIDExNjcgMTFBQztDQ0Q1OzExMEUgMTE2NyAxMUFDOworQ0NENjtDQ0Q2OzExMEUgMTE2NyAxMUFEO0NDRDY7MTEwRSAxMTY3IDExQUQ7CitDQ0Q3O0NDRDc7MTEwRSAxMTY3IDExQUU7Q0NENzsxMTBFIDExNjcgMTFBRTsKK0NDRDg7Q0NEODsxMTBFIDExNjcgMTFBRjtDQ0Q4OzExMEUgMTE2NyAxMUFGOworQ0NEOTtDQ0Q5OzExMEUgMTE2NyAxMUIwO0NDRDk7MTEwRSAxMTY3IDExQjA7CitDQ0RBO0NDREE7MTEwRSAxMTY3IDExQjE7Q0NEQTsxMTBFIDExNjcgMTFCMTsKK0NDREI7Q0NEQjsxMTBFIDExNjcgMTFCMjtDQ0RCOzExMEUgMTE2NyAxMUIyOworQ0NEQztDQ0RDOzExMEUgMTE2NyAxMUIzO0NDREM7MTEwRSAxMTY3IDExQjM7CitDQ0REO0NDREQ7MTEwRSAxMTY3IDExQjQ7Q0NERDsxMTBFIDExNjcgMTFCNDsKK0NDREU7Q0NERTsxMTBFIDExNjcgMTFCNTtDQ0RFOzExMEUgMTE2NyAxMUI1OworQ0NERjtDQ0RGOzExMEUgMTE2NyAxMUI2O0NDREY7MTEwRSAxMTY3IDExQjY7CitDQ0UwO0NDRTA7MTEwRSAxMTY3IDExQjc7Q0NFMDsxMTBFIDExNjcgMTFCNzsKK0NDRTE7Q0NFMTsxMTBFIDExNjcgMTFCODtDQ0UxOzExMEUgMTE2NyAxMUI4OworQ0NFMjtDQ0UyOzExMEUgMTE2NyAxMUI5O0NDRTI7MTEwRSAxMTY3IDExQjk7CitDQ0UzO0NDRTM7MTEwRSAxMTY3IDExQkE7Q0NFMzsxMTBFIDExNjcgMTFCQTsKK0NDRTQ7Q0NFNDsxMTBFIDExNjcgMTFCQjtDQ0U0OzExMEUgMTE2NyAxMUJCOworQ0NFNTtDQ0U1OzExMEUgMTE2NyAxMUJDO0NDRTU7MTEwRSAxMTY3IDExQkM7CitDQ0U2O0NDRTY7MTEwRSAxMTY3IDExQkQ7Q0NFNjsxMTBFIDExNjcgMTFCRDsKK0NDRTc7Q0NFNzsxMTBFIDExNjcgMTFCRTtDQ0U3OzExMEUgMTE2NyAxMUJFOworQ0NFODtDQ0U4OzExMEUgMTE2NyAxMUJGO0NDRTg7MTEwRSAxMTY3IDExQkY7CitDQ0U5O0NDRTk7MTEwRSAxMTY3IDExQzA7Q0NFOTsxMTBFIDExNjcgMTFDMDsKK0NDRUE7Q0NFQTsxMTBFIDExNjcgMTFDMTtDQ0VBOzExMEUgMTE2NyAxMUMxOworQ0NFQjtDQ0VCOzExMEUgMTE2NyAxMUMyO0NDRUI7MTEwRSAxMTY3IDExQzI7CitDQ0VDO0NDRUM7MTEwRSAxMTY4O0NDRUM7MTEwRSAxMTY4OworQ0NFRDtDQ0VEOzExMEUgMTE2OCAxMUE4O0NDRUQ7MTEwRSAxMTY4IDExQTg7CitDQ0VFO0NDRUU7MTEwRSAxMTY4IDExQTk7Q0NFRTsxMTBFIDExNjggMTFBOTsKK0NDRUY7Q0NFRjsxMTBFIDExNjggMTFBQTtDQ0VGOzExMEUgMTE2OCAxMUFBOworQ0NGMDtDQ0YwOzExMEUgMTE2OCAxMUFCO0NDRjA7MTEwRSAxMTY4IDExQUI7CitDQ0YxO0NDRjE7MTEwRSAxMTY4IDExQUM7Q0NGMTsxMTBFIDExNjggMTFBQzsKK0NDRjI7Q0NGMjsxMTBFIDExNjggMTFBRDtDQ0YyOzExMEUgMTE2OCAxMUFEOworQ0NGMztDQ0YzOzExMEUgMTE2OCAxMUFFO0NDRjM7MTEwRSAxMTY4IDExQUU7CitDQ0Y0O0NDRjQ7MTEwRSAxMTY4IDExQUY7Q0NGNDsxMTBFIDExNjggMTFBRjsKK0NDRjU7Q0NGNTsxMTBFIDExNjggMTFCMDtDQ0Y1OzExMEUgMTE2OCAxMUIwOworQ0NGNjtDQ0Y2OzExMEUgMTE2OCAxMUIxO0NDRjY7MTEwRSAxMTY4IDExQjE7CitDQ0Y3O0NDRjc7MTEwRSAxMTY4IDExQjI7Q0NGNzsxMTBFIDExNjggMTFCMjsKK0NDRjg7Q0NGODsxMTBFIDExNjggMTFCMztDQ0Y4OzExMEUgMTE2OCAxMUIzOworQ0NGOTtDQ0Y5OzExMEUgMTE2OCAxMUI0O0NDRjk7MTEwRSAxMTY4IDExQjQ7CitDQ0ZBO0NDRkE7MTEwRSAxMTY4IDExQjU7Q0NGQTsxMTBFIDExNjggMTFCNTsKK0NDRkI7Q0NGQjsxMTBFIDExNjggMTFCNjtDQ0ZCOzExMEUgMTE2OCAxMUI2OworQ0NGQztDQ0ZDOzExMEUgMTE2OCAxMUI3O0NDRkM7MTEwRSAxMTY4IDExQjc7CitDQ0ZEO0NDRkQ7MTEwRSAxMTY4IDExQjg7Q0NGRDsxMTBFIDExNjggMTFCODsKK0NDRkU7Q0NGRTsxMTBFIDExNjggMTFCOTtDQ0ZFOzExMEUgMTE2OCAxMUI5OworQ0NGRjtDQ0ZGOzExMEUgMTE2OCAxMUJBO0NDRkY7MTEwRSAxMTY4IDExQkE7CitDRDAwO0NEMDA7MTEwRSAxMTY4IDExQkI7Q0QwMDsxMTBFIDExNjggMTFCQjsKK0NEMDE7Q0QwMTsxMTBFIDExNjggMTFCQztDRDAxOzExMEUgMTE2OCAxMUJDOworQ0QwMjtDRDAyOzExMEUgMTE2OCAxMUJEO0NEMDI7MTEwRSAxMTY4IDExQkQ7CitDRDAzO0NEMDM7MTEwRSAxMTY4IDExQkU7Q0QwMzsxMTBFIDExNjggMTFCRTsKK0NEMDQ7Q0QwNDsxMTBFIDExNjggMTFCRjtDRDA0OzExMEUgMTE2OCAxMUJGOworQ0QwNTtDRDA1OzExMEUgMTE2OCAxMUMwO0NEMDU7MTEwRSAxMTY4IDExQzA7CitDRDA2O0NEMDY7MTEwRSAxMTY4IDExQzE7Q0QwNjsxMTBFIDExNjggMTFDMTsKK0NEMDc7Q0QwNzsxMTBFIDExNjggMTFDMjtDRDA3OzExMEUgMTE2OCAxMUMyOworQ0QwODtDRDA4OzExMEUgMTE2OTtDRDA4OzExMEUgMTE2OTsKK0NEMDk7Q0QwOTsxMTBFIDExNjkgMTFBODtDRDA5OzExMEUgMTE2OSAxMUE4OworQ0QwQTtDRDBBOzExMEUgMTE2OSAxMUE5O0NEMEE7MTEwRSAxMTY5IDExQTk7CitDRDBCO0NEMEI7MTEwRSAxMTY5IDExQUE7Q0QwQjsxMTBFIDExNjkgMTFBQTsKK0NEMEM7Q0QwQzsxMTBFIDExNjkgMTFBQjtDRDBDOzExMEUgMTE2OSAxMUFCOworQ0QwRDtDRDBEOzExMEUgMTE2OSAxMUFDO0NEMEQ7MTEwRSAxMTY5IDExQUM7CitDRDBFO0NEMEU7MTEwRSAxMTY5IDExQUQ7Q0QwRTsxMTBFIDExNjkgMTFBRDsKK0NEMEY7Q0QwRjsxMTBFIDExNjkgMTFBRTtDRDBGOzExMEUgMTE2OSAxMUFFOworQ0QxMDtDRDEwOzExMEUgMTE2OSAxMUFGO0NEMTA7MTEwRSAxMTY5IDExQUY7CitDRDExO0NEMTE7MTEwRSAxMTY5IDExQjA7Q0QxMTsxMTBFIDExNjkgMTFCMDsKK0NEMTI7Q0QxMjsxMTBFIDExNjkgMTFCMTtDRDEyOzExMEUgMTE2OSAxMUIxOworQ0QxMztDRDEzOzExMEUgMTE2OSAxMUIyO0NEMTM7MTEwRSAxMTY5IDExQjI7CitDRDE0O0NEMTQ7MTEwRSAxMTY5IDExQjM7Q0QxNDsxMTBFIDExNjkgMTFCMzsKK0NEMTU7Q0QxNTsxMTBFIDExNjkgMTFCNDtDRDE1OzExMEUgMTE2OSAxMUI0OworQ0QxNjtDRDE2OzExMEUgMTE2OSAxMUI1O0NEMTY7MTEwRSAxMTY5IDExQjU7CitDRDE3O0NEMTc7MTEwRSAxMTY5IDExQjY7Q0QxNzsxMTBFIDExNjkgMTFCNjsKK0NEMTg7Q0QxODsxMTBFIDExNjkgMTFCNztDRDE4OzExMEUgMTE2OSAxMUI3OworQ0QxOTtDRDE5OzExMEUgMTE2OSAxMUI4O0NEMTk7MTEwRSAxMTY5IDExQjg7CitDRDFBO0NEMUE7MTEwRSAxMTY5IDExQjk7Q0QxQTsxMTBFIDExNjkgMTFCOTsKK0NEMUI7Q0QxQjsxMTBFIDExNjkgMTFCQTtDRDFCOzExMEUgMTE2OSAxMUJBOworQ0QxQztDRDFDOzExMEUgMTE2OSAxMUJCO0NEMUM7MTEwRSAxMTY5IDExQkI7CitDRDFEO0NEMUQ7MTEwRSAxMTY5IDExQkM7Q0QxRDsxMTBFIDExNjkgMTFCQzsKK0NEMUU7Q0QxRTsxMTBFIDExNjkgMTFCRDtDRDFFOzExMEUgMTE2OSAxMUJEOworQ0QxRjtDRDFGOzExMEUgMTE2OSAxMUJFO0NEMUY7MTEwRSAxMTY5IDExQkU7CitDRDIwO0NEMjA7MTEwRSAxMTY5IDExQkY7Q0QyMDsxMTBFIDExNjkgMTFCRjsKK0NEMjE7Q0QyMTsxMTBFIDExNjkgMTFDMDtDRDIxOzExMEUgMTE2OSAxMUMwOworQ0QyMjtDRDIyOzExMEUgMTE2OSAxMUMxO0NEMjI7MTEwRSAxMTY5IDExQzE7CitDRDIzO0NEMjM7MTEwRSAxMTY5IDExQzI7Q0QyMzsxMTBFIDExNjkgMTFDMjsKK0NEMjQ7Q0QyNDsxMTBFIDExNkE7Q0QyNDsxMTBFIDExNkE7CitDRDI1O0NEMjU7MTEwRSAxMTZBIDExQTg7Q0QyNTsxMTBFIDExNkEgMTFBODsKK0NEMjY7Q0QyNjsxMTBFIDExNkEgMTFBOTtDRDI2OzExMEUgMTE2QSAxMUE5OworQ0QyNztDRDI3OzExMEUgMTE2QSAxMUFBO0NEMjc7MTEwRSAxMTZBIDExQUE7CitDRDI4O0NEMjg7MTEwRSAxMTZBIDExQUI7Q0QyODsxMTBFIDExNkEgMTFBQjsKK0NEMjk7Q0QyOTsxMTBFIDExNkEgMTFBQztDRDI5OzExMEUgMTE2QSAxMUFDOworQ0QyQTtDRDJBOzExMEUgMTE2QSAxMUFEO0NEMkE7MTEwRSAxMTZBIDExQUQ7CitDRDJCO0NEMkI7MTEwRSAxMTZBIDExQUU7Q0QyQjsxMTBFIDExNkEgMTFBRTsKK0NEMkM7Q0QyQzsxMTBFIDExNkEgMTFBRjtDRDJDOzExMEUgMTE2QSAxMUFGOworQ0QyRDtDRDJEOzExMEUgMTE2QSAxMUIwO0NEMkQ7MTEwRSAxMTZBIDExQjA7CitDRDJFO0NEMkU7MTEwRSAxMTZBIDExQjE7Q0QyRTsxMTBFIDExNkEgMTFCMTsKK0NEMkY7Q0QyRjsxMTBFIDExNkEgMTFCMjtDRDJGOzExMEUgMTE2QSAxMUIyOworQ0QzMDtDRDMwOzExMEUgMTE2QSAxMUIzO0NEMzA7MTEwRSAxMTZBIDExQjM7CitDRDMxO0NEMzE7MTEwRSAxMTZBIDExQjQ7Q0QzMTsxMTBFIDExNkEgMTFCNDsKK0NEMzI7Q0QzMjsxMTBFIDExNkEgMTFCNTtDRDMyOzExMEUgMTE2QSAxMUI1OworQ0QzMztDRDMzOzExMEUgMTE2QSAxMUI2O0NEMzM7MTEwRSAxMTZBIDExQjY7CitDRDM0O0NEMzQ7MTEwRSAxMTZBIDExQjc7Q0QzNDsxMTBFIDExNkEgMTFCNzsKK0NEMzU7Q0QzNTsxMTBFIDExNkEgMTFCODtDRDM1OzExMEUgMTE2QSAxMUI4OworQ0QzNjtDRDM2OzExMEUgMTE2QSAxMUI5O0NEMzY7MTEwRSAxMTZBIDExQjk7CitDRDM3O0NEMzc7MTEwRSAxMTZBIDExQkE7Q0QzNzsxMTBFIDExNkEgMTFCQTsKK0NEMzg7Q0QzODsxMTBFIDExNkEgMTFCQjtDRDM4OzExMEUgMTE2QSAxMUJCOworQ0QzOTtDRDM5OzExMEUgMTE2QSAxMUJDO0NEMzk7MTEwRSAxMTZBIDExQkM7CitDRDNBO0NEM0E7MTEwRSAxMTZBIDExQkQ7Q0QzQTsxMTBFIDExNkEgMTFCRDsKK0NEM0I7Q0QzQjsxMTBFIDExNkEgMTFCRTtDRDNCOzExMEUgMTE2QSAxMUJFOworQ0QzQztDRDNDOzExMEUgMTE2QSAxMUJGO0NEM0M7MTEwRSAxMTZBIDExQkY7CitDRDNEO0NEM0Q7MTEwRSAxMTZBIDExQzA7Q0QzRDsxMTBFIDExNkEgMTFDMDsKK0NEM0U7Q0QzRTsxMTBFIDExNkEgMTFDMTtDRDNFOzExMEUgMTE2QSAxMUMxOworQ0QzRjtDRDNGOzExMEUgMTE2QSAxMUMyO0NEM0Y7MTEwRSAxMTZBIDExQzI7CitDRDQwO0NENDA7MTEwRSAxMTZCO0NENDA7MTEwRSAxMTZCOworQ0Q0MTtDRDQxOzExMEUgMTE2QiAxMUE4O0NENDE7MTEwRSAxMTZCIDExQTg7CitDRDQyO0NENDI7MTEwRSAxMTZCIDExQTk7Q0Q0MjsxMTBFIDExNkIgMTFBOTsKK0NENDM7Q0Q0MzsxMTBFIDExNkIgMTFBQTtDRDQzOzExMEUgMTE2QiAxMUFBOworQ0Q0NDtDRDQ0OzExMEUgMTE2QiAxMUFCO0NENDQ7MTEwRSAxMTZCIDExQUI7CitDRDQ1O0NENDU7MTEwRSAxMTZCIDExQUM7Q0Q0NTsxMTBFIDExNkIgMTFBQzsKK0NENDY7Q0Q0NjsxMTBFIDExNkIgMTFBRDtDRDQ2OzExMEUgMTE2QiAxMUFEOworQ0Q0NztDRDQ3OzExMEUgMTE2QiAxMUFFO0NENDc7MTEwRSAxMTZCIDExQUU7CitDRDQ4O0NENDg7MTEwRSAxMTZCIDExQUY7Q0Q0ODsxMTBFIDExNkIgMTFBRjsKK0NENDk7Q0Q0OTsxMTBFIDExNkIgMTFCMDtDRDQ5OzExMEUgMTE2QiAxMUIwOworQ0Q0QTtDRDRBOzExMEUgMTE2QiAxMUIxO0NENEE7MTEwRSAxMTZCIDExQjE7CitDRDRCO0NENEI7MTEwRSAxMTZCIDExQjI7Q0Q0QjsxMTBFIDExNkIgMTFCMjsKK0NENEM7Q0Q0QzsxMTBFIDExNkIgMTFCMztDRDRDOzExMEUgMTE2QiAxMUIzOworQ0Q0RDtDRDREOzExMEUgMTE2QiAxMUI0O0NENEQ7MTEwRSAxMTZCIDExQjQ7CitDRDRFO0NENEU7MTEwRSAxMTZCIDExQjU7Q0Q0RTsxMTBFIDExNkIgMTFCNTsKK0NENEY7Q0Q0RjsxMTBFIDExNkIgMTFCNjtDRDRGOzExMEUgMTE2QiAxMUI2OworQ0Q1MDtDRDUwOzExMEUgMTE2QiAxMUI3O0NENTA7MTEwRSAxMTZCIDExQjc7CitDRDUxO0NENTE7MTEwRSAxMTZCIDExQjg7Q0Q1MTsxMTBFIDExNkIgMTFCODsKK0NENTI7Q0Q1MjsxMTBFIDExNkIgMTFCOTtDRDUyOzExMEUgMTE2QiAxMUI5OworQ0Q1MztDRDUzOzExMEUgMTE2QiAxMUJBO0NENTM7MTEwRSAxMTZCIDExQkE7CitDRDU0O0NENTQ7MTEwRSAxMTZCIDExQkI7Q0Q1NDsxMTBFIDExNkIgMTFCQjsKK0NENTU7Q0Q1NTsxMTBFIDExNkIgMTFCQztDRDU1OzExMEUgMTE2QiAxMUJDOworQ0Q1NjtDRDU2OzExMEUgMTE2QiAxMUJEO0NENTY7MTEwRSAxMTZCIDExQkQ7CitDRDU3O0NENTc7MTEwRSAxMTZCIDExQkU7Q0Q1NzsxMTBFIDExNkIgMTFCRTsKK0NENTg7Q0Q1ODsxMTBFIDExNkIgMTFCRjtDRDU4OzExMEUgMTE2QiAxMUJGOworQ0Q1OTtDRDU5OzExMEUgMTE2QiAxMUMwO0NENTk7MTEwRSAxMTZCIDExQzA7CitDRDVBO0NENUE7MTEwRSAxMTZCIDExQzE7Q0Q1QTsxMTBFIDExNkIgMTFDMTsKK0NENUI7Q0Q1QjsxMTBFIDExNkIgMTFDMjtDRDVCOzExMEUgMTE2QiAxMUMyOworQ0Q1QztDRDVDOzExMEUgMTE2QztDRDVDOzExMEUgMTE2QzsKK0NENUQ7Q0Q1RDsxMTBFIDExNkMgMTFBODtDRDVEOzExMEUgMTE2QyAxMUE4OworQ0Q1RTtDRDVFOzExMEUgMTE2QyAxMUE5O0NENUU7MTEwRSAxMTZDIDExQTk7CitDRDVGO0NENUY7MTEwRSAxMTZDIDExQUE7Q0Q1RjsxMTBFIDExNkMgMTFBQTsKK0NENjA7Q0Q2MDsxMTBFIDExNkMgMTFBQjtDRDYwOzExMEUgMTE2QyAxMUFCOworQ0Q2MTtDRDYxOzExMEUgMTE2QyAxMUFDO0NENjE7MTEwRSAxMTZDIDExQUM7CitDRDYyO0NENjI7MTEwRSAxMTZDIDExQUQ7Q0Q2MjsxMTBFIDExNkMgMTFBRDsKK0NENjM7Q0Q2MzsxMTBFIDExNkMgMTFBRTtDRDYzOzExMEUgMTE2QyAxMUFFOworQ0Q2NDtDRDY0OzExMEUgMTE2QyAxMUFGO0NENjQ7MTEwRSAxMTZDIDExQUY7CitDRDY1O0NENjU7MTEwRSAxMTZDIDExQjA7Q0Q2NTsxMTBFIDExNkMgMTFCMDsKK0NENjY7Q0Q2NjsxMTBFIDExNkMgMTFCMTtDRDY2OzExMEUgMTE2QyAxMUIxOworQ0Q2NztDRDY3OzExMEUgMTE2QyAxMUIyO0NENjc7MTEwRSAxMTZDIDExQjI7CitDRDY4O0NENjg7MTEwRSAxMTZDIDExQjM7Q0Q2ODsxMTBFIDExNkMgMTFCMzsKK0NENjk7Q0Q2OTsxMTBFIDExNkMgMTFCNDtDRDY5OzExMEUgMTE2QyAxMUI0OworQ0Q2QTtDRDZBOzExMEUgMTE2QyAxMUI1O0NENkE7MTEwRSAxMTZDIDExQjU7CitDRDZCO0NENkI7MTEwRSAxMTZDIDExQjY7Q0Q2QjsxMTBFIDExNkMgMTFCNjsKK0NENkM7Q0Q2QzsxMTBFIDExNkMgMTFCNztDRDZDOzExMEUgMTE2QyAxMUI3OworQ0Q2RDtDRDZEOzExMEUgMTE2QyAxMUI4O0NENkQ7MTEwRSAxMTZDIDExQjg7CitDRDZFO0NENkU7MTEwRSAxMTZDIDExQjk7Q0Q2RTsxMTBFIDExNkMgMTFCOTsKK0NENkY7Q0Q2RjsxMTBFIDExNkMgMTFCQTtDRDZGOzExMEUgMTE2QyAxMUJBOworQ0Q3MDtDRDcwOzExMEUgMTE2QyAxMUJCO0NENzA7MTEwRSAxMTZDIDExQkI7CitDRDcxO0NENzE7MTEwRSAxMTZDIDExQkM7Q0Q3MTsxMTBFIDExNkMgMTFCQzsKK0NENzI7Q0Q3MjsxMTBFIDExNkMgMTFCRDtDRDcyOzExMEUgMTE2QyAxMUJEOworQ0Q3MztDRDczOzExMEUgMTE2QyAxMUJFO0NENzM7MTEwRSAxMTZDIDExQkU7CitDRDc0O0NENzQ7MTEwRSAxMTZDIDExQkY7Q0Q3NDsxMTBFIDExNkMgMTFCRjsKK0NENzU7Q0Q3NTsxMTBFIDExNkMgMTFDMDtDRDc1OzExMEUgMTE2QyAxMUMwOworQ0Q3NjtDRDc2OzExMEUgMTE2QyAxMUMxO0NENzY7MTEwRSAxMTZDIDExQzE7CitDRDc3O0NENzc7MTEwRSAxMTZDIDExQzI7Q0Q3NzsxMTBFIDExNkMgMTFDMjsKK0NENzg7Q0Q3ODsxMTBFIDExNkQ7Q0Q3ODsxMTBFIDExNkQ7CitDRDc5O0NENzk7MTEwRSAxMTZEIDExQTg7Q0Q3OTsxMTBFIDExNkQgMTFBODsKK0NEN0E7Q0Q3QTsxMTBFIDExNkQgMTFBOTtDRDdBOzExMEUgMTE2RCAxMUE5OworQ0Q3QjtDRDdCOzExMEUgMTE2RCAxMUFBO0NEN0I7MTEwRSAxMTZEIDExQUE7CitDRDdDO0NEN0M7MTEwRSAxMTZEIDExQUI7Q0Q3QzsxMTBFIDExNkQgMTFBQjsKK0NEN0Q7Q0Q3RDsxMTBFIDExNkQgMTFBQztDRDdEOzExMEUgMTE2RCAxMUFDOworQ0Q3RTtDRDdFOzExMEUgMTE2RCAxMUFEO0NEN0U7MTEwRSAxMTZEIDExQUQ7CitDRDdGO0NEN0Y7MTEwRSAxMTZEIDExQUU7Q0Q3RjsxMTBFIDExNkQgMTFBRTsKK0NEODA7Q0Q4MDsxMTBFIDExNkQgMTFBRjtDRDgwOzExMEUgMTE2RCAxMUFGOworQ0Q4MTtDRDgxOzExMEUgMTE2RCAxMUIwO0NEODE7MTEwRSAxMTZEIDExQjA7CitDRDgyO0NEODI7MTEwRSAxMTZEIDExQjE7Q0Q4MjsxMTBFIDExNkQgMTFCMTsKK0NEODM7Q0Q4MzsxMTBFIDExNkQgMTFCMjtDRDgzOzExMEUgMTE2RCAxMUIyOworQ0Q4NDtDRDg0OzExMEUgMTE2RCAxMUIzO0NEODQ7MTEwRSAxMTZEIDExQjM7CitDRDg1O0NEODU7MTEwRSAxMTZEIDExQjQ7Q0Q4NTsxMTBFIDExNkQgMTFCNDsKK0NEODY7Q0Q4NjsxMTBFIDExNkQgMTFCNTtDRDg2OzExMEUgMTE2RCAxMUI1OworQ0Q4NztDRDg3OzExMEUgMTE2RCAxMUI2O0NEODc7MTEwRSAxMTZEIDExQjY7CitDRDg4O0NEODg7MTEwRSAxMTZEIDExQjc7Q0Q4ODsxMTBFIDExNkQgMTFCNzsKK0NEODk7Q0Q4OTsxMTBFIDExNkQgMTFCODtDRDg5OzExMEUgMTE2RCAxMUI4OworQ0Q4QTtDRDhBOzExMEUgMTE2RCAxMUI5O0NEOEE7MTEwRSAxMTZEIDExQjk7CitDRDhCO0NEOEI7MTEwRSAxMTZEIDExQkE7Q0Q4QjsxMTBFIDExNkQgMTFCQTsKK0NEOEM7Q0Q4QzsxMTBFIDExNkQgMTFCQjtDRDhDOzExMEUgMTE2RCAxMUJCOworQ0Q4RDtDRDhEOzExMEUgMTE2RCAxMUJDO0NEOEQ7MTEwRSAxMTZEIDExQkM7CitDRDhFO0NEOEU7MTEwRSAxMTZEIDExQkQ7Q0Q4RTsxMTBFIDExNkQgMTFCRDsKK0NEOEY7Q0Q4RjsxMTBFIDExNkQgMTFCRTtDRDhGOzExMEUgMTE2RCAxMUJFOworQ0Q5MDtDRDkwOzExMEUgMTE2RCAxMUJGO0NEOTA7MTEwRSAxMTZEIDExQkY7CitDRDkxO0NEOTE7MTEwRSAxMTZEIDExQzA7Q0Q5MTsxMTBFIDExNkQgMTFDMDsKK0NEOTI7Q0Q5MjsxMTBFIDExNkQgMTFDMTtDRDkyOzExMEUgMTE2RCAxMUMxOworQ0Q5MztDRDkzOzExMEUgMTE2RCAxMUMyO0NEOTM7MTEwRSAxMTZEIDExQzI7CitDRDk0O0NEOTQ7MTEwRSAxMTZFO0NEOTQ7MTEwRSAxMTZFOworQ0Q5NTtDRDk1OzExMEUgMTE2RSAxMUE4O0NEOTU7MTEwRSAxMTZFIDExQTg7CitDRDk2O0NEOTY7MTEwRSAxMTZFIDExQTk7Q0Q5NjsxMTBFIDExNkUgMTFBOTsKK0NEOTc7Q0Q5NzsxMTBFIDExNkUgMTFBQTtDRDk3OzExMEUgMTE2RSAxMUFBOworQ0Q5ODtDRDk4OzExMEUgMTE2RSAxMUFCO0NEOTg7MTEwRSAxMTZFIDExQUI7CitDRDk5O0NEOTk7MTEwRSAxMTZFIDExQUM7Q0Q5OTsxMTBFIDExNkUgMTFBQzsKK0NEOUE7Q0Q5QTsxMTBFIDExNkUgMTFBRDtDRDlBOzExMEUgMTE2RSAxMUFEOworQ0Q5QjtDRDlCOzExMEUgMTE2RSAxMUFFO0NEOUI7MTEwRSAxMTZFIDExQUU7CitDRDlDO0NEOUM7MTEwRSAxMTZFIDExQUY7Q0Q5QzsxMTBFIDExNkUgMTFBRjsKK0NEOUQ7Q0Q5RDsxMTBFIDExNkUgMTFCMDtDRDlEOzExMEUgMTE2RSAxMUIwOworQ0Q5RTtDRDlFOzExMEUgMTE2RSAxMUIxO0NEOUU7MTEwRSAxMTZFIDExQjE7CitDRDlGO0NEOUY7MTEwRSAxMTZFIDExQjI7Q0Q5RjsxMTBFIDExNkUgMTFCMjsKK0NEQTA7Q0RBMDsxMTBFIDExNkUgMTFCMztDREEwOzExMEUgMTE2RSAxMUIzOworQ0RBMTtDREExOzExMEUgMTE2RSAxMUI0O0NEQTE7MTEwRSAxMTZFIDExQjQ7CitDREEyO0NEQTI7MTEwRSAxMTZFIDExQjU7Q0RBMjsxMTBFIDExNkUgMTFCNTsKK0NEQTM7Q0RBMzsxMTBFIDExNkUgMTFCNjtDREEzOzExMEUgMTE2RSAxMUI2OworQ0RBNDtDREE0OzExMEUgMTE2RSAxMUI3O0NEQTQ7MTEwRSAxMTZFIDExQjc7CitDREE1O0NEQTU7MTEwRSAxMTZFIDExQjg7Q0RBNTsxMTBFIDExNkUgMTFCODsKK0NEQTY7Q0RBNjsxMTBFIDExNkUgMTFCOTtDREE2OzExMEUgMTE2RSAxMUI5OworQ0RBNztDREE3OzExMEUgMTE2RSAxMUJBO0NEQTc7MTEwRSAxMTZFIDExQkE7CitDREE4O0NEQTg7MTEwRSAxMTZFIDExQkI7Q0RBODsxMTBFIDExNkUgMTFCQjsKK0NEQTk7Q0RBOTsxMTBFIDExNkUgMTFCQztDREE5OzExMEUgMTE2RSAxMUJDOworQ0RBQTtDREFBOzExMEUgMTE2RSAxMUJEO0NEQUE7MTEwRSAxMTZFIDExQkQ7CitDREFCO0NEQUI7MTEwRSAxMTZFIDExQkU7Q0RBQjsxMTBFIDExNkUgMTFCRTsKK0NEQUM7Q0RBQzsxMTBFIDExNkUgMTFCRjtDREFDOzExMEUgMTE2RSAxMUJGOworQ0RBRDtDREFEOzExMEUgMTE2RSAxMUMwO0NEQUQ7MTEwRSAxMTZFIDExQzA7CitDREFFO0NEQUU7MTEwRSAxMTZFIDExQzE7Q0RBRTsxMTBFIDExNkUgMTFDMTsKK0NEQUY7Q0RBRjsxMTBFIDExNkUgMTFDMjtDREFGOzExMEUgMTE2RSAxMUMyOworQ0RCMDtDREIwOzExMEUgMTE2RjtDREIwOzExMEUgMTE2RjsKK0NEQjE7Q0RCMTsxMTBFIDExNkYgMTFBODtDREIxOzExMEUgMTE2RiAxMUE4OworQ0RCMjtDREIyOzExMEUgMTE2RiAxMUE5O0NEQjI7MTEwRSAxMTZGIDExQTk7CitDREIzO0NEQjM7MTEwRSAxMTZGIDExQUE7Q0RCMzsxMTBFIDExNkYgMTFBQTsKK0NEQjQ7Q0RCNDsxMTBFIDExNkYgMTFBQjtDREI0OzExMEUgMTE2RiAxMUFCOworQ0RCNTtDREI1OzExMEUgMTE2RiAxMUFDO0NEQjU7MTEwRSAxMTZGIDExQUM7CitDREI2O0NEQjY7MTEwRSAxMTZGIDExQUQ7Q0RCNjsxMTBFIDExNkYgMTFBRDsKK0NEQjc7Q0RCNzsxMTBFIDExNkYgMTFBRTtDREI3OzExMEUgMTE2RiAxMUFFOworQ0RCODtDREI4OzExMEUgMTE2RiAxMUFGO0NEQjg7MTEwRSAxMTZGIDExQUY7CitDREI5O0NEQjk7MTEwRSAxMTZGIDExQjA7Q0RCOTsxMTBFIDExNkYgMTFCMDsKK0NEQkE7Q0RCQTsxMTBFIDExNkYgMTFCMTtDREJBOzExMEUgMTE2RiAxMUIxOworQ0RCQjtDREJCOzExMEUgMTE2RiAxMUIyO0NEQkI7MTEwRSAxMTZGIDExQjI7CitDREJDO0NEQkM7MTEwRSAxMTZGIDExQjM7Q0RCQzsxMTBFIDExNkYgMTFCMzsKK0NEQkQ7Q0RCRDsxMTBFIDExNkYgMTFCNDtDREJEOzExMEUgMTE2RiAxMUI0OworQ0RCRTtDREJFOzExMEUgMTE2RiAxMUI1O0NEQkU7MTEwRSAxMTZGIDExQjU7CitDREJGO0NEQkY7MTEwRSAxMTZGIDExQjY7Q0RCRjsxMTBFIDExNkYgMTFCNjsKK0NEQzA7Q0RDMDsxMTBFIDExNkYgMTFCNztDREMwOzExMEUgMTE2RiAxMUI3OworQ0RDMTtDREMxOzExMEUgMTE2RiAxMUI4O0NEQzE7MTEwRSAxMTZGIDExQjg7CitDREMyO0NEQzI7MTEwRSAxMTZGIDExQjk7Q0RDMjsxMTBFIDExNkYgMTFCOTsKK0NEQzM7Q0RDMzsxMTBFIDExNkYgMTFCQTtDREMzOzExMEUgMTE2RiAxMUJBOworQ0RDNDtDREM0OzExMEUgMTE2RiAxMUJCO0NEQzQ7MTEwRSAxMTZGIDExQkI7CitDREM1O0NEQzU7MTEwRSAxMTZGIDExQkM7Q0RDNTsxMTBFIDExNkYgMTFCQzsKK0NEQzY7Q0RDNjsxMTBFIDExNkYgMTFCRDtDREM2OzExMEUgMTE2RiAxMUJEOworQ0RDNztDREM3OzExMEUgMTE2RiAxMUJFO0NEQzc7MTEwRSAxMTZGIDExQkU7CitDREM4O0NEQzg7MTEwRSAxMTZGIDExQkY7Q0RDODsxMTBFIDExNkYgMTFCRjsKK0NEQzk7Q0RDOTsxMTBFIDExNkYgMTFDMDtDREM5OzExMEUgMTE2RiAxMUMwOworQ0RDQTtDRENBOzExMEUgMTE2RiAxMUMxO0NEQ0E7MTEwRSAxMTZGIDExQzE7CitDRENCO0NEQ0I7MTEwRSAxMTZGIDExQzI7Q0RDQjsxMTBFIDExNkYgMTFDMjsKK0NEQ0M7Q0RDQzsxMTBFIDExNzA7Q0RDQzsxMTBFIDExNzA7CitDRENEO0NEQ0Q7MTEwRSAxMTcwIDExQTg7Q0RDRDsxMTBFIDExNzAgMTFBODsKK0NEQ0U7Q0RDRTsxMTBFIDExNzAgMTFBOTtDRENFOzExMEUgMTE3MCAxMUE5OworQ0RDRjtDRENGOzExMEUgMTE3MCAxMUFBO0NEQ0Y7MTEwRSAxMTcwIDExQUE7CitDREQwO0NERDA7MTEwRSAxMTcwIDExQUI7Q0REMDsxMTBFIDExNzAgMTFBQjsKK0NERDE7Q0REMTsxMTBFIDExNzAgMTFBQztDREQxOzExMEUgMTE3MCAxMUFDOworQ0REMjtDREQyOzExMEUgMTE3MCAxMUFEO0NERDI7MTEwRSAxMTcwIDExQUQ7CitDREQzO0NERDM7MTEwRSAxMTcwIDExQUU7Q0REMzsxMTBFIDExNzAgMTFBRTsKK0NERDQ7Q0RENDsxMTBFIDExNzAgMTFBRjtDREQ0OzExMEUgMTE3MCAxMUFGOworQ0RENTtDREQ1OzExMEUgMTE3MCAxMUIwO0NERDU7MTEwRSAxMTcwIDExQjA7CitDREQ2O0NERDY7MTEwRSAxMTcwIDExQjE7Q0RENjsxMTBFIDExNzAgMTFCMTsKK0NERDc7Q0RENzsxMTBFIDExNzAgMTFCMjtDREQ3OzExMEUgMTE3MCAxMUIyOworQ0REODtDREQ4OzExMEUgMTE3MCAxMUIzO0NERDg7MTEwRSAxMTcwIDExQjM7CitDREQ5O0NERDk7MTEwRSAxMTcwIDExQjQ7Q0REOTsxMTBFIDExNzAgMTFCNDsKK0NEREE7Q0REQTsxMTBFIDExNzAgMTFCNTtDRERBOzExMEUgMTE3MCAxMUI1OworQ0REQjtDRERCOzExMEUgMTE3MCAxMUI2O0NEREI7MTEwRSAxMTcwIDExQjY7CitDRERDO0NEREM7MTEwRSAxMTcwIDExQjc7Q0REQzsxMTBFIDExNzAgMTFCNzsKK0NEREQ7Q0RERDsxMTBFIDExNzAgMTFCODtDREREOzExMEUgMTE3MCAxMUI4OworQ0RERTtDRERFOzExMEUgMTE3MCAxMUI5O0NEREU7MTEwRSAxMTcwIDExQjk7CitDRERGO0NEREY7MTEwRSAxMTcwIDExQkE7Q0RERjsxMTBFIDExNzAgMTFCQTsKK0NERTA7Q0RFMDsxMTBFIDExNzAgMTFCQjtDREUwOzExMEUgMTE3MCAxMUJCOworQ0RFMTtDREUxOzExMEUgMTE3MCAxMUJDO0NERTE7MTEwRSAxMTcwIDExQkM7CitDREUyO0NERTI7MTEwRSAxMTcwIDExQkQ7Q0RFMjsxMTBFIDExNzAgMTFCRDsKK0NERTM7Q0RFMzsxMTBFIDExNzAgMTFCRTtDREUzOzExMEUgMTE3MCAxMUJFOworQ0RFNDtDREU0OzExMEUgMTE3MCAxMUJGO0NERTQ7MTEwRSAxMTcwIDExQkY7CitDREU1O0NERTU7MTEwRSAxMTcwIDExQzA7Q0RFNTsxMTBFIDExNzAgMTFDMDsKK0NERTY7Q0RFNjsxMTBFIDExNzAgMTFDMTtDREU2OzExMEUgMTE3MCAxMUMxOworQ0RFNztDREU3OzExMEUgMTE3MCAxMUMyO0NERTc7MTEwRSAxMTcwIDExQzI7CitDREU4O0NERTg7MTEwRSAxMTcxO0NERTg7MTEwRSAxMTcxOworQ0RFOTtDREU5OzExMEUgMTE3MSAxMUE4O0NERTk7MTEwRSAxMTcxIDExQTg7CitDREVBO0NERUE7MTEwRSAxMTcxIDExQTk7Q0RFQTsxMTBFIDExNzEgMTFBOTsKK0NERUI7Q0RFQjsxMTBFIDExNzEgMTFBQTtDREVCOzExMEUgMTE3MSAxMUFBOworQ0RFQztDREVDOzExMEUgMTE3MSAxMUFCO0NERUM7MTEwRSAxMTcxIDExQUI7CitDREVEO0NERUQ7MTEwRSAxMTcxIDExQUM7Q0RFRDsxMTBFIDExNzEgMTFBQzsKK0NERUU7Q0RFRTsxMTBFIDExNzEgMTFBRDtDREVFOzExMEUgMTE3MSAxMUFEOworQ0RFRjtDREVGOzExMEUgMTE3MSAxMUFFO0NERUY7MTEwRSAxMTcxIDExQUU7CitDREYwO0NERjA7MTEwRSAxMTcxIDExQUY7Q0RGMDsxMTBFIDExNzEgMTFBRjsKK0NERjE7Q0RGMTsxMTBFIDExNzEgMTFCMDtDREYxOzExMEUgMTE3MSAxMUIwOworQ0RGMjtDREYyOzExMEUgMTE3MSAxMUIxO0NERjI7MTEwRSAxMTcxIDExQjE7CitDREYzO0NERjM7MTEwRSAxMTcxIDExQjI7Q0RGMzsxMTBFIDExNzEgMTFCMjsKK0NERjQ7Q0RGNDsxMTBFIDExNzEgMTFCMztDREY0OzExMEUgMTE3MSAxMUIzOworQ0RGNTtDREY1OzExMEUgMTE3MSAxMUI0O0NERjU7MTEwRSAxMTcxIDExQjQ7CitDREY2O0NERjY7MTEwRSAxMTcxIDExQjU7Q0RGNjsxMTBFIDExNzEgMTFCNTsKK0NERjc7Q0RGNzsxMTBFIDExNzEgMTFCNjtDREY3OzExMEUgMTE3MSAxMUI2OworQ0RGODtDREY4OzExMEUgMTE3MSAxMUI3O0NERjg7MTEwRSAxMTcxIDExQjc7CitDREY5O0NERjk7MTEwRSAxMTcxIDExQjg7Q0RGOTsxMTBFIDExNzEgMTFCODsKK0NERkE7Q0RGQTsxMTBFIDExNzEgMTFCOTtDREZBOzExMEUgMTE3MSAxMUI5OworQ0RGQjtDREZCOzExMEUgMTE3MSAxMUJBO0NERkI7MTEwRSAxMTcxIDExQkE7CitDREZDO0NERkM7MTEwRSAxMTcxIDExQkI7Q0RGQzsxMTBFIDExNzEgMTFCQjsKK0NERkQ7Q0RGRDsxMTBFIDExNzEgMTFCQztDREZEOzExMEUgMTE3MSAxMUJDOworQ0RGRTtDREZFOzExMEUgMTE3MSAxMUJEO0NERkU7MTEwRSAxMTcxIDExQkQ7CitDREZGO0NERkY7MTEwRSAxMTcxIDExQkU7Q0RGRjsxMTBFIDExNzEgMTFCRTsKK0NFMDA7Q0UwMDsxMTBFIDExNzEgMTFCRjtDRTAwOzExMEUgMTE3MSAxMUJGOworQ0UwMTtDRTAxOzExMEUgMTE3MSAxMUMwO0NFMDE7MTEwRSAxMTcxIDExQzA7CitDRTAyO0NFMDI7MTEwRSAxMTcxIDExQzE7Q0UwMjsxMTBFIDExNzEgMTFDMTsKK0NFMDM7Q0UwMzsxMTBFIDExNzEgMTFDMjtDRTAzOzExMEUgMTE3MSAxMUMyOworQ0UwNDtDRTA0OzExMEUgMTE3MjtDRTA0OzExMEUgMTE3MjsKK0NFMDU7Q0UwNTsxMTBFIDExNzIgMTFBODtDRTA1OzExMEUgMTE3MiAxMUE4OworQ0UwNjtDRTA2OzExMEUgMTE3MiAxMUE5O0NFMDY7MTEwRSAxMTcyIDExQTk7CitDRTA3O0NFMDc7MTEwRSAxMTcyIDExQUE7Q0UwNzsxMTBFIDExNzIgMTFBQTsKK0NFMDg7Q0UwODsxMTBFIDExNzIgMTFBQjtDRTA4OzExMEUgMTE3MiAxMUFCOworQ0UwOTtDRTA5OzExMEUgMTE3MiAxMUFDO0NFMDk7MTEwRSAxMTcyIDExQUM7CitDRTBBO0NFMEE7MTEwRSAxMTcyIDExQUQ7Q0UwQTsxMTBFIDExNzIgMTFBRDsKK0NFMEI7Q0UwQjsxMTBFIDExNzIgMTFBRTtDRTBCOzExMEUgMTE3MiAxMUFFOworQ0UwQztDRTBDOzExMEUgMTE3MiAxMUFGO0NFMEM7MTEwRSAxMTcyIDExQUY7CitDRTBEO0NFMEQ7MTEwRSAxMTcyIDExQjA7Q0UwRDsxMTBFIDExNzIgMTFCMDsKK0NFMEU7Q0UwRTsxMTBFIDExNzIgMTFCMTtDRTBFOzExMEUgMTE3MiAxMUIxOworQ0UwRjtDRTBGOzExMEUgMTE3MiAxMUIyO0NFMEY7MTEwRSAxMTcyIDExQjI7CitDRTEwO0NFMTA7MTEwRSAxMTcyIDExQjM7Q0UxMDsxMTBFIDExNzIgMTFCMzsKK0NFMTE7Q0UxMTsxMTBFIDExNzIgMTFCNDtDRTExOzExMEUgMTE3MiAxMUI0OworQ0UxMjtDRTEyOzExMEUgMTE3MiAxMUI1O0NFMTI7MTEwRSAxMTcyIDExQjU7CitDRTEzO0NFMTM7MTEwRSAxMTcyIDExQjY7Q0UxMzsxMTBFIDExNzIgMTFCNjsKK0NFMTQ7Q0UxNDsxMTBFIDExNzIgMTFCNztDRTE0OzExMEUgMTE3MiAxMUI3OworQ0UxNTtDRTE1OzExMEUgMTE3MiAxMUI4O0NFMTU7MTEwRSAxMTcyIDExQjg7CitDRTE2O0NFMTY7MTEwRSAxMTcyIDExQjk7Q0UxNjsxMTBFIDExNzIgMTFCOTsKK0NFMTc7Q0UxNzsxMTBFIDExNzIgMTFCQTtDRTE3OzExMEUgMTE3MiAxMUJBOworQ0UxODtDRTE4OzExMEUgMTE3MiAxMUJCO0NFMTg7MTEwRSAxMTcyIDExQkI7CitDRTE5O0NFMTk7MTEwRSAxMTcyIDExQkM7Q0UxOTsxMTBFIDExNzIgMTFCQzsKK0NFMUE7Q0UxQTsxMTBFIDExNzIgMTFCRDtDRTFBOzExMEUgMTE3MiAxMUJEOworQ0UxQjtDRTFCOzExMEUgMTE3MiAxMUJFO0NFMUI7MTEwRSAxMTcyIDExQkU7CitDRTFDO0NFMUM7MTEwRSAxMTcyIDExQkY7Q0UxQzsxMTBFIDExNzIgMTFCRjsKK0NFMUQ7Q0UxRDsxMTBFIDExNzIgMTFDMDtDRTFEOzExMEUgMTE3MiAxMUMwOworQ0UxRTtDRTFFOzExMEUgMTE3MiAxMUMxO0NFMUU7MTEwRSAxMTcyIDExQzE7CitDRTFGO0NFMUY7MTEwRSAxMTcyIDExQzI7Q0UxRjsxMTBFIDExNzIgMTFDMjsKK0NFMjA7Q0UyMDsxMTBFIDExNzM7Q0UyMDsxMTBFIDExNzM7CitDRTIxO0NFMjE7MTEwRSAxMTczIDExQTg7Q0UyMTsxMTBFIDExNzMgMTFBODsKK0NFMjI7Q0UyMjsxMTBFIDExNzMgMTFBOTtDRTIyOzExMEUgMTE3MyAxMUE5OworQ0UyMztDRTIzOzExMEUgMTE3MyAxMUFBO0NFMjM7MTEwRSAxMTczIDExQUE7CitDRTI0O0NFMjQ7MTEwRSAxMTczIDExQUI7Q0UyNDsxMTBFIDExNzMgMTFBQjsKK0NFMjU7Q0UyNTsxMTBFIDExNzMgMTFBQztDRTI1OzExMEUgMTE3MyAxMUFDOworQ0UyNjtDRTI2OzExMEUgMTE3MyAxMUFEO0NFMjY7MTEwRSAxMTczIDExQUQ7CitDRTI3O0NFMjc7MTEwRSAxMTczIDExQUU7Q0UyNzsxMTBFIDExNzMgMTFBRTsKK0NFMjg7Q0UyODsxMTBFIDExNzMgMTFBRjtDRTI4OzExMEUgMTE3MyAxMUFGOworQ0UyOTtDRTI5OzExMEUgMTE3MyAxMUIwO0NFMjk7MTEwRSAxMTczIDExQjA7CitDRTJBO0NFMkE7MTEwRSAxMTczIDExQjE7Q0UyQTsxMTBFIDExNzMgMTFCMTsKK0NFMkI7Q0UyQjsxMTBFIDExNzMgMTFCMjtDRTJCOzExMEUgMTE3MyAxMUIyOworQ0UyQztDRTJDOzExMEUgMTE3MyAxMUIzO0NFMkM7MTEwRSAxMTczIDExQjM7CitDRTJEO0NFMkQ7MTEwRSAxMTczIDExQjQ7Q0UyRDsxMTBFIDExNzMgMTFCNDsKK0NFMkU7Q0UyRTsxMTBFIDExNzMgMTFCNTtDRTJFOzExMEUgMTE3MyAxMUI1OworQ0UyRjtDRTJGOzExMEUgMTE3MyAxMUI2O0NFMkY7MTEwRSAxMTczIDExQjY7CitDRTMwO0NFMzA7MTEwRSAxMTczIDExQjc7Q0UzMDsxMTBFIDExNzMgMTFCNzsKK0NFMzE7Q0UzMTsxMTBFIDExNzMgMTFCODtDRTMxOzExMEUgMTE3MyAxMUI4OworQ0UzMjtDRTMyOzExMEUgMTE3MyAxMUI5O0NFMzI7MTEwRSAxMTczIDExQjk7CitDRTMzO0NFMzM7MTEwRSAxMTczIDExQkE7Q0UzMzsxMTBFIDExNzMgMTFCQTsKK0NFMzQ7Q0UzNDsxMTBFIDExNzMgMTFCQjtDRTM0OzExMEUgMTE3MyAxMUJCOworQ0UzNTtDRTM1OzExMEUgMTE3MyAxMUJDO0NFMzU7MTEwRSAxMTczIDExQkM7CitDRTM2O0NFMzY7MTEwRSAxMTczIDExQkQ7Q0UzNjsxMTBFIDExNzMgMTFCRDsKK0NFMzc7Q0UzNzsxMTBFIDExNzMgMTFCRTtDRTM3OzExMEUgMTE3MyAxMUJFOworQ0UzODtDRTM4OzExMEUgMTE3MyAxMUJGO0NFMzg7MTEwRSAxMTczIDExQkY7CitDRTM5O0NFMzk7MTEwRSAxMTczIDExQzA7Q0UzOTsxMTBFIDExNzMgMTFDMDsKK0NFM0E7Q0UzQTsxMTBFIDExNzMgMTFDMTtDRTNBOzExMEUgMTE3MyAxMUMxOworQ0UzQjtDRTNCOzExMEUgMTE3MyAxMUMyO0NFM0I7MTEwRSAxMTczIDExQzI7CitDRTNDO0NFM0M7MTEwRSAxMTc0O0NFM0M7MTEwRSAxMTc0OworQ0UzRDtDRTNEOzExMEUgMTE3NCAxMUE4O0NFM0Q7MTEwRSAxMTc0IDExQTg7CitDRTNFO0NFM0U7MTEwRSAxMTc0IDExQTk7Q0UzRTsxMTBFIDExNzQgMTFBOTsKK0NFM0Y7Q0UzRjsxMTBFIDExNzQgMTFBQTtDRTNGOzExMEUgMTE3NCAxMUFBOworQ0U0MDtDRTQwOzExMEUgMTE3NCAxMUFCO0NFNDA7MTEwRSAxMTc0IDExQUI7CitDRTQxO0NFNDE7MTEwRSAxMTc0IDExQUM7Q0U0MTsxMTBFIDExNzQgMTFBQzsKK0NFNDI7Q0U0MjsxMTBFIDExNzQgMTFBRDtDRTQyOzExMEUgMTE3NCAxMUFEOworQ0U0MztDRTQzOzExMEUgMTE3NCAxMUFFO0NFNDM7MTEwRSAxMTc0IDExQUU7CitDRTQ0O0NFNDQ7MTEwRSAxMTc0IDExQUY7Q0U0NDsxMTBFIDExNzQgMTFBRjsKK0NFNDU7Q0U0NTsxMTBFIDExNzQgMTFCMDtDRTQ1OzExMEUgMTE3NCAxMUIwOworQ0U0NjtDRTQ2OzExMEUgMTE3NCAxMUIxO0NFNDY7MTEwRSAxMTc0IDExQjE7CitDRTQ3O0NFNDc7MTEwRSAxMTc0IDExQjI7Q0U0NzsxMTBFIDExNzQgMTFCMjsKK0NFNDg7Q0U0ODsxMTBFIDExNzQgMTFCMztDRTQ4OzExMEUgMTE3NCAxMUIzOworQ0U0OTtDRTQ5OzExMEUgMTE3NCAxMUI0O0NFNDk7MTEwRSAxMTc0IDExQjQ7CitDRTRBO0NFNEE7MTEwRSAxMTc0IDExQjU7Q0U0QTsxMTBFIDExNzQgMTFCNTsKK0NFNEI7Q0U0QjsxMTBFIDExNzQgMTFCNjtDRTRCOzExMEUgMTE3NCAxMUI2OworQ0U0QztDRTRDOzExMEUgMTE3NCAxMUI3O0NFNEM7MTEwRSAxMTc0IDExQjc7CitDRTREO0NFNEQ7MTEwRSAxMTc0IDExQjg7Q0U0RDsxMTBFIDExNzQgMTFCODsKK0NFNEU7Q0U0RTsxMTBFIDExNzQgMTFCOTtDRTRFOzExMEUgMTE3NCAxMUI5OworQ0U0RjtDRTRGOzExMEUgMTE3NCAxMUJBO0NFNEY7MTEwRSAxMTc0IDExQkE7CitDRTUwO0NFNTA7MTEwRSAxMTc0IDExQkI7Q0U1MDsxMTBFIDExNzQgMTFCQjsKK0NFNTE7Q0U1MTsxMTBFIDExNzQgMTFCQztDRTUxOzExMEUgMTE3NCAxMUJDOworQ0U1MjtDRTUyOzExMEUgMTE3NCAxMUJEO0NFNTI7MTEwRSAxMTc0IDExQkQ7CitDRTUzO0NFNTM7MTEwRSAxMTc0IDExQkU7Q0U1MzsxMTBFIDExNzQgMTFCRTsKK0NFNTQ7Q0U1NDsxMTBFIDExNzQgMTFCRjtDRTU0OzExMEUgMTE3NCAxMUJGOworQ0U1NTtDRTU1OzExMEUgMTE3NCAxMUMwO0NFNTU7MTEwRSAxMTc0IDExQzA7CitDRTU2O0NFNTY7MTEwRSAxMTc0IDExQzE7Q0U1NjsxMTBFIDExNzQgMTFDMTsKK0NFNTc7Q0U1NzsxMTBFIDExNzQgMTFDMjtDRTU3OzExMEUgMTE3NCAxMUMyOworQ0U1ODtDRTU4OzExMEUgMTE3NTtDRTU4OzExMEUgMTE3NTsKK0NFNTk7Q0U1OTsxMTBFIDExNzUgMTFBODtDRTU5OzExMEUgMTE3NSAxMUE4OworQ0U1QTtDRTVBOzExMEUgMTE3NSAxMUE5O0NFNUE7MTEwRSAxMTc1IDExQTk7CitDRTVCO0NFNUI7MTEwRSAxMTc1IDExQUE7Q0U1QjsxMTBFIDExNzUgMTFBQTsKK0NFNUM7Q0U1QzsxMTBFIDExNzUgMTFBQjtDRTVDOzExMEUgMTE3NSAxMUFCOworQ0U1RDtDRTVEOzExMEUgMTE3NSAxMUFDO0NFNUQ7MTEwRSAxMTc1IDExQUM7CitDRTVFO0NFNUU7MTEwRSAxMTc1IDExQUQ7Q0U1RTsxMTBFIDExNzUgMTFBRDsKK0NFNUY7Q0U1RjsxMTBFIDExNzUgMTFBRTtDRTVGOzExMEUgMTE3NSAxMUFFOworQ0U2MDtDRTYwOzExMEUgMTE3NSAxMUFGO0NFNjA7MTEwRSAxMTc1IDExQUY7CitDRTYxO0NFNjE7MTEwRSAxMTc1IDExQjA7Q0U2MTsxMTBFIDExNzUgMTFCMDsKK0NFNjI7Q0U2MjsxMTBFIDExNzUgMTFCMTtDRTYyOzExMEUgMTE3NSAxMUIxOworQ0U2MztDRTYzOzExMEUgMTE3NSAxMUIyO0NFNjM7MTEwRSAxMTc1IDExQjI7CitDRTY0O0NFNjQ7MTEwRSAxMTc1IDExQjM7Q0U2NDsxMTBFIDExNzUgMTFCMzsKK0NFNjU7Q0U2NTsxMTBFIDExNzUgMTFCNDtDRTY1OzExMEUgMTE3NSAxMUI0OworQ0U2NjtDRTY2OzExMEUgMTE3NSAxMUI1O0NFNjY7MTEwRSAxMTc1IDExQjU7CitDRTY3O0NFNjc7MTEwRSAxMTc1IDExQjY7Q0U2NzsxMTBFIDExNzUgMTFCNjsKK0NFNjg7Q0U2ODsxMTBFIDExNzUgMTFCNztDRTY4OzExMEUgMTE3NSAxMUI3OworQ0U2OTtDRTY5OzExMEUgMTE3NSAxMUI4O0NFNjk7MTEwRSAxMTc1IDExQjg7CitDRTZBO0NFNkE7MTEwRSAxMTc1IDExQjk7Q0U2QTsxMTBFIDExNzUgMTFCOTsKK0NFNkI7Q0U2QjsxMTBFIDExNzUgMTFCQTtDRTZCOzExMEUgMTE3NSAxMUJBOworQ0U2QztDRTZDOzExMEUgMTE3NSAxMUJCO0NFNkM7MTEwRSAxMTc1IDExQkI7CitDRTZEO0NFNkQ7MTEwRSAxMTc1IDExQkM7Q0U2RDsxMTBFIDExNzUgMTFCQzsKK0NFNkU7Q0U2RTsxMTBFIDExNzUgMTFCRDtDRTZFOzExMEUgMTE3NSAxMUJEOworQ0U2RjtDRTZGOzExMEUgMTE3NSAxMUJFO0NFNkY7MTEwRSAxMTc1IDExQkU7CitDRTcwO0NFNzA7MTEwRSAxMTc1IDExQkY7Q0U3MDsxMTBFIDExNzUgMTFCRjsKK0NFNzE7Q0U3MTsxMTBFIDExNzUgMTFDMDtDRTcxOzExMEUgMTE3NSAxMUMwOworQ0U3MjtDRTcyOzExMEUgMTE3NSAxMUMxO0NFNzI7MTEwRSAxMTc1IDExQzE7CitDRTczO0NFNzM7MTEwRSAxMTc1IDExQzI7Q0U3MzsxMTBFIDExNzUgMTFDMjsKK0NFNzQ7Q0U3NDsxMTBGIDExNjE7Q0U3NDsxMTBGIDExNjE7CitDRTc1O0NFNzU7MTEwRiAxMTYxIDExQTg7Q0U3NTsxMTBGIDExNjEgMTFBODsKK0NFNzY7Q0U3NjsxMTBGIDExNjEgMTFBOTtDRTc2OzExMEYgMTE2MSAxMUE5OworQ0U3NztDRTc3OzExMEYgMTE2MSAxMUFBO0NFNzc7MTEwRiAxMTYxIDExQUE7CitDRTc4O0NFNzg7MTEwRiAxMTYxIDExQUI7Q0U3ODsxMTBGIDExNjEgMTFBQjsKK0NFNzk7Q0U3OTsxMTBGIDExNjEgMTFBQztDRTc5OzExMEYgMTE2MSAxMUFDOworQ0U3QTtDRTdBOzExMEYgMTE2MSAxMUFEO0NFN0E7MTEwRiAxMTYxIDExQUQ7CitDRTdCO0NFN0I7MTEwRiAxMTYxIDExQUU7Q0U3QjsxMTBGIDExNjEgMTFBRTsKK0NFN0M7Q0U3QzsxMTBGIDExNjEgMTFBRjtDRTdDOzExMEYgMTE2MSAxMUFGOworQ0U3RDtDRTdEOzExMEYgMTE2MSAxMUIwO0NFN0Q7MTEwRiAxMTYxIDExQjA7CitDRTdFO0NFN0U7MTEwRiAxMTYxIDExQjE7Q0U3RTsxMTBGIDExNjEgMTFCMTsKK0NFN0Y7Q0U3RjsxMTBGIDExNjEgMTFCMjtDRTdGOzExMEYgMTE2MSAxMUIyOworQ0U4MDtDRTgwOzExMEYgMTE2MSAxMUIzO0NFODA7MTEwRiAxMTYxIDExQjM7CitDRTgxO0NFODE7MTEwRiAxMTYxIDExQjQ7Q0U4MTsxMTBGIDExNjEgMTFCNDsKK0NFODI7Q0U4MjsxMTBGIDExNjEgMTFCNTtDRTgyOzExMEYgMTE2MSAxMUI1OworQ0U4MztDRTgzOzExMEYgMTE2MSAxMUI2O0NFODM7MTEwRiAxMTYxIDExQjY7CitDRTg0O0NFODQ7MTEwRiAxMTYxIDExQjc7Q0U4NDsxMTBGIDExNjEgMTFCNzsKK0NFODU7Q0U4NTsxMTBGIDExNjEgMTFCODtDRTg1OzExMEYgMTE2MSAxMUI4OworQ0U4NjtDRTg2OzExMEYgMTE2MSAxMUI5O0NFODY7MTEwRiAxMTYxIDExQjk7CitDRTg3O0NFODc7MTEwRiAxMTYxIDExQkE7Q0U4NzsxMTBGIDExNjEgMTFCQTsKK0NFODg7Q0U4ODsxMTBGIDExNjEgMTFCQjtDRTg4OzExMEYgMTE2MSAxMUJCOworQ0U4OTtDRTg5OzExMEYgMTE2MSAxMUJDO0NFODk7MTEwRiAxMTYxIDExQkM7CitDRThBO0NFOEE7MTEwRiAxMTYxIDExQkQ7Q0U4QTsxMTBGIDExNjEgMTFCRDsKK0NFOEI7Q0U4QjsxMTBGIDExNjEgMTFCRTtDRThCOzExMEYgMTE2MSAxMUJFOworQ0U4QztDRThDOzExMEYgMTE2MSAxMUJGO0NFOEM7MTEwRiAxMTYxIDExQkY7CitDRThEO0NFOEQ7MTEwRiAxMTYxIDExQzA7Q0U4RDsxMTBGIDExNjEgMTFDMDsKK0NFOEU7Q0U4RTsxMTBGIDExNjEgMTFDMTtDRThFOzExMEYgMTE2MSAxMUMxOworQ0U4RjtDRThGOzExMEYgMTE2MSAxMUMyO0NFOEY7MTEwRiAxMTYxIDExQzI7CitDRTkwO0NFOTA7MTEwRiAxMTYyO0NFOTA7MTEwRiAxMTYyOworQ0U5MTtDRTkxOzExMEYgMTE2MiAxMUE4O0NFOTE7MTEwRiAxMTYyIDExQTg7CitDRTkyO0NFOTI7MTEwRiAxMTYyIDExQTk7Q0U5MjsxMTBGIDExNjIgMTFBOTsKK0NFOTM7Q0U5MzsxMTBGIDExNjIgMTFBQTtDRTkzOzExMEYgMTE2MiAxMUFBOworQ0U5NDtDRTk0OzExMEYgMTE2MiAxMUFCO0NFOTQ7MTEwRiAxMTYyIDExQUI7CitDRTk1O0NFOTU7MTEwRiAxMTYyIDExQUM7Q0U5NTsxMTBGIDExNjIgMTFBQzsKK0NFOTY7Q0U5NjsxMTBGIDExNjIgMTFBRDtDRTk2OzExMEYgMTE2MiAxMUFEOworQ0U5NztDRTk3OzExMEYgMTE2MiAxMUFFO0NFOTc7MTEwRiAxMTYyIDExQUU7CitDRTk4O0NFOTg7MTEwRiAxMTYyIDExQUY7Q0U5ODsxMTBGIDExNjIgMTFBRjsKK0NFOTk7Q0U5OTsxMTBGIDExNjIgMTFCMDtDRTk5OzExMEYgMTE2MiAxMUIwOworQ0U5QTtDRTlBOzExMEYgMTE2MiAxMUIxO0NFOUE7MTEwRiAxMTYyIDExQjE7CitDRTlCO0NFOUI7MTEwRiAxMTYyIDExQjI7Q0U5QjsxMTBGIDExNjIgMTFCMjsKK0NFOUM7Q0U5QzsxMTBGIDExNjIgMTFCMztDRTlDOzExMEYgMTE2MiAxMUIzOworQ0U5RDtDRTlEOzExMEYgMTE2MiAxMUI0O0NFOUQ7MTEwRiAxMTYyIDExQjQ7CitDRTlFO0NFOUU7MTEwRiAxMTYyIDExQjU7Q0U5RTsxMTBGIDExNjIgMTFCNTsKK0NFOUY7Q0U5RjsxMTBGIDExNjIgMTFCNjtDRTlGOzExMEYgMTE2MiAxMUI2OworQ0VBMDtDRUEwOzExMEYgMTE2MiAxMUI3O0NFQTA7MTEwRiAxMTYyIDExQjc7CitDRUExO0NFQTE7MTEwRiAxMTYyIDExQjg7Q0VBMTsxMTBGIDExNjIgMTFCODsKK0NFQTI7Q0VBMjsxMTBGIDExNjIgMTFCOTtDRUEyOzExMEYgMTE2MiAxMUI5OworQ0VBMztDRUEzOzExMEYgMTE2MiAxMUJBO0NFQTM7MTEwRiAxMTYyIDExQkE7CitDRUE0O0NFQTQ7MTEwRiAxMTYyIDExQkI7Q0VBNDsxMTBGIDExNjIgMTFCQjsKK0NFQTU7Q0VBNTsxMTBGIDExNjIgMTFCQztDRUE1OzExMEYgMTE2MiAxMUJDOworQ0VBNjtDRUE2OzExMEYgMTE2MiAxMUJEO0NFQTY7MTEwRiAxMTYyIDExQkQ7CitDRUE3O0NFQTc7MTEwRiAxMTYyIDExQkU7Q0VBNzsxMTBGIDExNjIgMTFCRTsKK0NFQTg7Q0VBODsxMTBGIDExNjIgMTFCRjtDRUE4OzExMEYgMTE2MiAxMUJGOworQ0VBOTtDRUE5OzExMEYgMTE2MiAxMUMwO0NFQTk7MTEwRiAxMTYyIDExQzA7CitDRUFBO0NFQUE7MTEwRiAxMTYyIDExQzE7Q0VBQTsxMTBGIDExNjIgMTFDMTsKK0NFQUI7Q0VBQjsxMTBGIDExNjIgMTFDMjtDRUFCOzExMEYgMTE2MiAxMUMyOworQ0VBQztDRUFDOzExMEYgMTE2MztDRUFDOzExMEYgMTE2MzsKK0NFQUQ7Q0VBRDsxMTBGIDExNjMgMTFBODtDRUFEOzExMEYgMTE2MyAxMUE4OworQ0VBRTtDRUFFOzExMEYgMTE2MyAxMUE5O0NFQUU7MTEwRiAxMTYzIDExQTk7CitDRUFGO0NFQUY7MTEwRiAxMTYzIDExQUE7Q0VBRjsxMTBGIDExNjMgMTFBQTsKK0NFQjA7Q0VCMDsxMTBGIDExNjMgMTFBQjtDRUIwOzExMEYgMTE2MyAxMUFCOworQ0VCMTtDRUIxOzExMEYgMTE2MyAxMUFDO0NFQjE7MTEwRiAxMTYzIDExQUM7CitDRUIyO0NFQjI7MTEwRiAxMTYzIDExQUQ7Q0VCMjsxMTBGIDExNjMgMTFBRDsKK0NFQjM7Q0VCMzsxMTBGIDExNjMgMTFBRTtDRUIzOzExMEYgMTE2MyAxMUFFOworQ0VCNDtDRUI0OzExMEYgMTE2MyAxMUFGO0NFQjQ7MTEwRiAxMTYzIDExQUY7CitDRUI1O0NFQjU7MTEwRiAxMTYzIDExQjA7Q0VCNTsxMTBGIDExNjMgMTFCMDsKK0NFQjY7Q0VCNjsxMTBGIDExNjMgMTFCMTtDRUI2OzExMEYgMTE2MyAxMUIxOworQ0VCNztDRUI3OzExMEYgMTE2MyAxMUIyO0NFQjc7MTEwRiAxMTYzIDExQjI7CitDRUI4O0NFQjg7MTEwRiAxMTYzIDExQjM7Q0VCODsxMTBGIDExNjMgMTFCMzsKK0NFQjk7Q0VCOTsxMTBGIDExNjMgMTFCNDtDRUI5OzExMEYgMTE2MyAxMUI0OworQ0VCQTtDRUJBOzExMEYgMTE2MyAxMUI1O0NFQkE7MTEwRiAxMTYzIDExQjU7CitDRUJCO0NFQkI7MTEwRiAxMTYzIDExQjY7Q0VCQjsxMTBGIDExNjMgMTFCNjsKK0NFQkM7Q0VCQzsxMTBGIDExNjMgMTFCNztDRUJDOzExMEYgMTE2MyAxMUI3OworQ0VCRDtDRUJEOzExMEYgMTE2MyAxMUI4O0NFQkQ7MTEwRiAxMTYzIDExQjg7CitDRUJFO0NFQkU7MTEwRiAxMTYzIDExQjk7Q0VCRTsxMTBGIDExNjMgMTFCOTsKK0NFQkY7Q0VCRjsxMTBGIDExNjMgMTFCQTtDRUJGOzExMEYgMTE2MyAxMUJBOworQ0VDMDtDRUMwOzExMEYgMTE2MyAxMUJCO0NFQzA7MTEwRiAxMTYzIDExQkI7CitDRUMxO0NFQzE7MTEwRiAxMTYzIDExQkM7Q0VDMTsxMTBGIDExNjMgMTFCQzsKK0NFQzI7Q0VDMjsxMTBGIDExNjMgMTFCRDtDRUMyOzExMEYgMTE2MyAxMUJEOworQ0VDMztDRUMzOzExMEYgMTE2MyAxMUJFO0NFQzM7MTEwRiAxMTYzIDExQkU7CitDRUM0O0NFQzQ7MTEwRiAxMTYzIDExQkY7Q0VDNDsxMTBGIDExNjMgMTFCRjsKK0NFQzU7Q0VDNTsxMTBGIDExNjMgMTFDMDtDRUM1OzExMEYgMTE2MyAxMUMwOworQ0VDNjtDRUM2OzExMEYgMTE2MyAxMUMxO0NFQzY7MTEwRiAxMTYzIDExQzE7CitDRUM3O0NFQzc7MTEwRiAxMTYzIDExQzI7Q0VDNzsxMTBGIDExNjMgMTFDMjsKK0NFQzg7Q0VDODsxMTBGIDExNjQ7Q0VDODsxMTBGIDExNjQ7CitDRUM5O0NFQzk7MTEwRiAxMTY0IDExQTg7Q0VDOTsxMTBGIDExNjQgMTFBODsKK0NFQ0E7Q0VDQTsxMTBGIDExNjQgMTFBOTtDRUNBOzExMEYgMTE2NCAxMUE5OworQ0VDQjtDRUNCOzExMEYgMTE2NCAxMUFBO0NFQ0I7MTEwRiAxMTY0IDExQUE7CitDRUNDO0NFQ0M7MTEwRiAxMTY0IDExQUI7Q0VDQzsxMTBGIDExNjQgMTFBQjsKK0NFQ0Q7Q0VDRDsxMTBGIDExNjQgMTFBQztDRUNEOzExMEYgMTE2NCAxMUFDOworQ0VDRTtDRUNFOzExMEYgMTE2NCAxMUFEO0NFQ0U7MTEwRiAxMTY0IDExQUQ7CitDRUNGO0NFQ0Y7MTEwRiAxMTY0IDExQUU7Q0VDRjsxMTBGIDExNjQgMTFBRTsKK0NFRDA7Q0VEMDsxMTBGIDExNjQgMTFBRjtDRUQwOzExMEYgMTE2NCAxMUFGOworQ0VEMTtDRUQxOzExMEYgMTE2NCAxMUIwO0NFRDE7MTEwRiAxMTY0IDExQjA7CitDRUQyO0NFRDI7MTEwRiAxMTY0IDExQjE7Q0VEMjsxMTBGIDExNjQgMTFCMTsKK0NFRDM7Q0VEMzsxMTBGIDExNjQgMTFCMjtDRUQzOzExMEYgMTE2NCAxMUIyOworQ0VENDtDRUQ0OzExMEYgMTE2NCAxMUIzO0NFRDQ7MTEwRiAxMTY0IDExQjM7CitDRUQ1O0NFRDU7MTEwRiAxMTY0IDExQjQ7Q0VENTsxMTBGIDExNjQgMTFCNDsKK0NFRDY7Q0VENjsxMTBGIDExNjQgMTFCNTtDRUQ2OzExMEYgMTE2NCAxMUI1OworQ0VENztDRUQ3OzExMEYgMTE2NCAxMUI2O0NFRDc7MTEwRiAxMTY0IDExQjY7CitDRUQ4O0NFRDg7MTEwRiAxMTY0IDExQjc7Q0VEODsxMTBGIDExNjQgMTFCNzsKK0NFRDk7Q0VEOTsxMTBGIDExNjQgMTFCODtDRUQ5OzExMEYgMTE2NCAxMUI4OworQ0VEQTtDRURBOzExMEYgMTE2NCAxMUI5O0NFREE7MTEwRiAxMTY0IDExQjk7CitDRURCO0NFREI7MTEwRiAxMTY0IDExQkE7Q0VEQjsxMTBGIDExNjQgMTFCQTsKK0NFREM7Q0VEQzsxMTBGIDExNjQgMTFCQjtDRURDOzExMEYgMTE2NCAxMUJCOworQ0VERDtDRUREOzExMEYgMTE2NCAxMUJDO0NFREQ7MTEwRiAxMTY0IDExQkM7CitDRURFO0NFREU7MTEwRiAxMTY0IDExQkQ7Q0VERTsxMTBGIDExNjQgMTFCRDsKK0NFREY7Q0VERjsxMTBGIDExNjQgMTFCRTtDRURGOzExMEYgMTE2NCAxMUJFOworQ0VFMDtDRUUwOzExMEYgMTE2NCAxMUJGO0NFRTA7MTEwRiAxMTY0IDExQkY7CitDRUUxO0NFRTE7MTEwRiAxMTY0IDExQzA7Q0VFMTsxMTBGIDExNjQgMTFDMDsKK0NFRTI7Q0VFMjsxMTBGIDExNjQgMTFDMTtDRUUyOzExMEYgMTE2NCAxMUMxOworQ0VFMztDRUUzOzExMEYgMTE2NCAxMUMyO0NFRTM7MTEwRiAxMTY0IDExQzI7CitDRUU0O0NFRTQ7MTEwRiAxMTY1O0NFRTQ7MTEwRiAxMTY1OworQ0VFNTtDRUU1OzExMEYgMTE2NSAxMUE4O0NFRTU7MTEwRiAxMTY1IDExQTg7CitDRUU2O0NFRTY7MTEwRiAxMTY1IDExQTk7Q0VFNjsxMTBGIDExNjUgMTFBOTsKK0NFRTc7Q0VFNzsxMTBGIDExNjUgMTFBQTtDRUU3OzExMEYgMTE2NSAxMUFBOworQ0VFODtDRUU4OzExMEYgMTE2NSAxMUFCO0NFRTg7MTEwRiAxMTY1IDExQUI7CitDRUU5O0NFRTk7MTEwRiAxMTY1IDExQUM7Q0VFOTsxMTBGIDExNjUgMTFBQzsKK0NFRUE7Q0VFQTsxMTBGIDExNjUgMTFBRDtDRUVBOzExMEYgMTE2NSAxMUFEOworQ0VFQjtDRUVCOzExMEYgMTE2NSAxMUFFO0NFRUI7MTEwRiAxMTY1IDExQUU7CitDRUVDO0NFRUM7MTEwRiAxMTY1IDExQUY7Q0VFQzsxMTBGIDExNjUgMTFBRjsKK0NFRUQ7Q0VFRDsxMTBGIDExNjUgMTFCMDtDRUVEOzExMEYgMTE2NSAxMUIwOworQ0VFRTtDRUVFOzExMEYgMTE2NSAxMUIxO0NFRUU7MTEwRiAxMTY1IDExQjE7CitDRUVGO0NFRUY7MTEwRiAxMTY1IDExQjI7Q0VFRjsxMTBGIDExNjUgMTFCMjsKK0NFRjA7Q0VGMDsxMTBGIDExNjUgMTFCMztDRUYwOzExMEYgMTE2NSAxMUIzOworQ0VGMTtDRUYxOzExMEYgMTE2NSAxMUI0O0NFRjE7MTEwRiAxMTY1IDExQjQ7CitDRUYyO0NFRjI7MTEwRiAxMTY1IDExQjU7Q0VGMjsxMTBGIDExNjUgMTFCNTsKK0NFRjM7Q0VGMzsxMTBGIDExNjUgMTFCNjtDRUYzOzExMEYgMTE2NSAxMUI2OworQ0VGNDtDRUY0OzExMEYgMTE2NSAxMUI3O0NFRjQ7MTEwRiAxMTY1IDExQjc7CitDRUY1O0NFRjU7MTEwRiAxMTY1IDExQjg7Q0VGNTsxMTBGIDExNjUgMTFCODsKK0NFRjY7Q0VGNjsxMTBGIDExNjUgMTFCOTtDRUY2OzExMEYgMTE2NSAxMUI5OworQ0VGNztDRUY3OzExMEYgMTE2NSAxMUJBO0NFRjc7MTEwRiAxMTY1IDExQkE7CitDRUY4O0NFRjg7MTEwRiAxMTY1IDExQkI7Q0VGODsxMTBGIDExNjUgMTFCQjsKK0NFRjk7Q0VGOTsxMTBGIDExNjUgMTFCQztDRUY5OzExMEYgMTE2NSAxMUJDOworQ0VGQTtDRUZBOzExMEYgMTE2NSAxMUJEO0NFRkE7MTEwRiAxMTY1IDExQkQ7CitDRUZCO0NFRkI7MTEwRiAxMTY1IDExQkU7Q0VGQjsxMTBGIDExNjUgMTFCRTsKK0NFRkM7Q0VGQzsxMTBGIDExNjUgMTFCRjtDRUZDOzExMEYgMTE2NSAxMUJGOworQ0VGRDtDRUZEOzExMEYgMTE2NSAxMUMwO0NFRkQ7MTEwRiAxMTY1IDExQzA7CitDRUZFO0NFRkU7MTEwRiAxMTY1IDExQzE7Q0VGRTsxMTBGIDExNjUgMTFDMTsKK0NFRkY7Q0VGRjsxMTBGIDExNjUgMTFDMjtDRUZGOzExMEYgMTE2NSAxMUMyOworQ0YwMDtDRjAwOzExMEYgMTE2NjtDRjAwOzExMEYgMTE2NjsKK0NGMDE7Q0YwMTsxMTBGIDExNjYgMTFBODtDRjAxOzExMEYgMTE2NiAxMUE4OworQ0YwMjtDRjAyOzExMEYgMTE2NiAxMUE5O0NGMDI7MTEwRiAxMTY2IDExQTk7CitDRjAzO0NGMDM7MTEwRiAxMTY2IDExQUE7Q0YwMzsxMTBGIDExNjYgMTFBQTsKK0NGMDQ7Q0YwNDsxMTBGIDExNjYgMTFBQjtDRjA0OzExMEYgMTE2NiAxMUFCOworQ0YwNTtDRjA1OzExMEYgMTE2NiAxMUFDO0NGMDU7MTEwRiAxMTY2IDExQUM7CitDRjA2O0NGMDY7MTEwRiAxMTY2IDExQUQ7Q0YwNjsxMTBGIDExNjYgMTFBRDsKK0NGMDc7Q0YwNzsxMTBGIDExNjYgMTFBRTtDRjA3OzExMEYgMTE2NiAxMUFFOworQ0YwODtDRjA4OzExMEYgMTE2NiAxMUFGO0NGMDg7MTEwRiAxMTY2IDExQUY7CitDRjA5O0NGMDk7MTEwRiAxMTY2IDExQjA7Q0YwOTsxMTBGIDExNjYgMTFCMDsKK0NGMEE7Q0YwQTsxMTBGIDExNjYgMTFCMTtDRjBBOzExMEYgMTE2NiAxMUIxOworQ0YwQjtDRjBCOzExMEYgMTE2NiAxMUIyO0NGMEI7MTEwRiAxMTY2IDExQjI7CitDRjBDO0NGMEM7MTEwRiAxMTY2IDExQjM7Q0YwQzsxMTBGIDExNjYgMTFCMzsKK0NGMEQ7Q0YwRDsxMTBGIDExNjYgMTFCNDtDRjBEOzExMEYgMTE2NiAxMUI0OworQ0YwRTtDRjBFOzExMEYgMTE2NiAxMUI1O0NGMEU7MTEwRiAxMTY2IDExQjU7CitDRjBGO0NGMEY7MTEwRiAxMTY2IDExQjY7Q0YwRjsxMTBGIDExNjYgMTFCNjsKK0NGMTA7Q0YxMDsxMTBGIDExNjYgMTFCNztDRjEwOzExMEYgMTE2NiAxMUI3OworQ0YxMTtDRjExOzExMEYgMTE2NiAxMUI4O0NGMTE7MTEwRiAxMTY2IDExQjg7CitDRjEyO0NGMTI7MTEwRiAxMTY2IDExQjk7Q0YxMjsxMTBGIDExNjYgMTFCOTsKK0NGMTM7Q0YxMzsxMTBGIDExNjYgMTFCQTtDRjEzOzExMEYgMTE2NiAxMUJBOworQ0YxNDtDRjE0OzExMEYgMTE2NiAxMUJCO0NGMTQ7MTEwRiAxMTY2IDExQkI7CitDRjE1O0NGMTU7MTEwRiAxMTY2IDExQkM7Q0YxNTsxMTBGIDExNjYgMTFCQzsKK0NGMTY7Q0YxNjsxMTBGIDExNjYgMTFCRDtDRjE2OzExMEYgMTE2NiAxMUJEOworQ0YxNztDRjE3OzExMEYgMTE2NiAxMUJFO0NGMTc7MTEwRiAxMTY2IDExQkU7CitDRjE4O0NGMTg7MTEwRiAxMTY2IDExQkY7Q0YxODsxMTBGIDExNjYgMTFCRjsKK0NGMTk7Q0YxOTsxMTBGIDExNjYgMTFDMDtDRjE5OzExMEYgMTE2NiAxMUMwOworQ0YxQTtDRjFBOzExMEYgMTE2NiAxMUMxO0NGMUE7MTEwRiAxMTY2IDExQzE7CitDRjFCO0NGMUI7MTEwRiAxMTY2IDExQzI7Q0YxQjsxMTBGIDExNjYgMTFDMjsKK0NGMUM7Q0YxQzsxMTBGIDExNjc7Q0YxQzsxMTBGIDExNjc7CitDRjFEO0NGMUQ7MTEwRiAxMTY3IDExQTg7Q0YxRDsxMTBGIDExNjcgMTFBODsKK0NGMUU7Q0YxRTsxMTBGIDExNjcgMTFBOTtDRjFFOzExMEYgMTE2NyAxMUE5OworQ0YxRjtDRjFGOzExMEYgMTE2NyAxMUFBO0NGMUY7MTEwRiAxMTY3IDExQUE7CitDRjIwO0NGMjA7MTEwRiAxMTY3IDExQUI7Q0YyMDsxMTBGIDExNjcgMTFBQjsKK0NGMjE7Q0YyMTsxMTBGIDExNjcgMTFBQztDRjIxOzExMEYgMTE2NyAxMUFDOworQ0YyMjtDRjIyOzExMEYgMTE2NyAxMUFEO0NGMjI7MTEwRiAxMTY3IDExQUQ7CitDRjIzO0NGMjM7MTEwRiAxMTY3IDExQUU7Q0YyMzsxMTBGIDExNjcgMTFBRTsKK0NGMjQ7Q0YyNDsxMTBGIDExNjcgMTFBRjtDRjI0OzExMEYgMTE2NyAxMUFGOworQ0YyNTtDRjI1OzExMEYgMTE2NyAxMUIwO0NGMjU7MTEwRiAxMTY3IDExQjA7CitDRjI2O0NGMjY7MTEwRiAxMTY3IDExQjE7Q0YyNjsxMTBGIDExNjcgMTFCMTsKK0NGMjc7Q0YyNzsxMTBGIDExNjcgMTFCMjtDRjI3OzExMEYgMTE2NyAxMUIyOworQ0YyODtDRjI4OzExMEYgMTE2NyAxMUIzO0NGMjg7MTEwRiAxMTY3IDExQjM7CitDRjI5O0NGMjk7MTEwRiAxMTY3IDExQjQ7Q0YyOTsxMTBGIDExNjcgMTFCNDsKK0NGMkE7Q0YyQTsxMTBGIDExNjcgMTFCNTtDRjJBOzExMEYgMTE2NyAxMUI1OworQ0YyQjtDRjJCOzExMEYgMTE2NyAxMUI2O0NGMkI7MTEwRiAxMTY3IDExQjY7CitDRjJDO0NGMkM7MTEwRiAxMTY3IDExQjc7Q0YyQzsxMTBGIDExNjcgMTFCNzsKK0NGMkQ7Q0YyRDsxMTBGIDExNjcgMTFCODtDRjJEOzExMEYgMTE2NyAxMUI4OworQ0YyRTtDRjJFOzExMEYgMTE2NyAxMUI5O0NGMkU7MTEwRiAxMTY3IDExQjk7CitDRjJGO0NGMkY7MTEwRiAxMTY3IDExQkE7Q0YyRjsxMTBGIDExNjcgMTFCQTsKK0NGMzA7Q0YzMDsxMTBGIDExNjcgMTFCQjtDRjMwOzExMEYgMTE2NyAxMUJCOworQ0YzMTtDRjMxOzExMEYgMTE2NyAxMUJDO0NGMzE7MTEwRiAxMTY3IDExQkM7CitDRjMyO0NGMzI7MTEwRiAxMTY3IDExQkQ7Q0YzMjsxMTBGIDExNjcgMTFCRDsKK0NGMzM7Q0YzMzsxMTBGIDExNjcgMTFCRTtDRjMzOzExMEYgMTE2NyAxMUJFOworQ0YzNDtDRjM0OzExMEYgMTE2NyAxMUJGO0NGMzQ7MTEwRiAxMTY3IDExQkY7CitDRjM1O0NGMzU7MTEwRiAxMTY3IDExQzA7Q0YzNTsxMTBGIDExNjcgMTFDMDsKK0NGMzY7Q0YzNjsxMTBGIDExNjcgMTFDMTtDRjM2OzExMEYgMTE2NyAxMUMxOworQ0YzNztDRjM3OzExMEYgMTE2NyAxMUMyO0NGMzc7MTEwRiAxMTY3IDExQzI7CitDRjM4O0NGMzg7MTEwRiAxMTY4O0NGMzg7MTEwRiAxMTY4OworQ0YzOTtDRjM5OzExMEYgMTE2OCAxMUE4O0NGMzk7MTEwRiAxMTY4IDExQTg7CitDRjNBO0NGM0E7MTEwRiAxMTY4IDExQTk7Q0YzQTsxMTBGIDExNjggMTFBOTsKK0NGM0I7Q0YzQjsxMTBGIDExNjggMTFBQTtDRjNCOzExMEYgMTE2OCAxMUFBOworQ0YzQztDRjNDOzExMEYgMTE2OCAxMUFCO0NGM0M7MTEwRiAxMTY4IDExQUI7CitDRjNEO0NGM0Q7MTEwRiAxMTY4IDExQUM7Q0YzRDsxMTBGIDExNjggMTFBQzsKK0NGM0U7Q0YzRTsxMTBGIDExNjggMTFBRDtDRjNFOzExMEYgMTE2OCAxMUFEOworQ0YzRjtDRjNGOzExMEYgMTE2OCAxMUFFO0NGM0Y7MTEwRiAxMTY4IDExQUU7CitDRjQwO0NGNDA7MTEwRiAxMTY4IDExQUY7Q0Y0MDsxMTBGIDExNjggMTFBRjsKK0NGNDE7Q0Y0MTsxMTBGIDExNjggMTFCMDtDRjQxOzExMEYgMTE2OCAxMUIwOworQ0Y0MjtDRjQyOzExMEYgMTE2OCAxMUIxO0NGNDI7MTEwRiAxMTY4IDExQjE7CitDRjQzO0NGNDM7MTEwRiAxMTY4IDExQjI7Q0Y0MzsxMTBGIDExNjggMTFCMjsKK0NGNDQ7Q0Y0NDsxMTBGIDExNjggMTFCMztDRjQ0OzExMEYgMTE2OCAxMUIzOworQ0Y0NTtDRjQ1OzExMEYgMTE2OCAxMUI0O0NGNDU7MTEwRiAxMTY4IDExQjQ7CitDRjQ2O0NGNDY7MTEwRiAxMTY4IDExQjU7Q0Y0NjsxMTBGIDExNjggMTFCNTsKK0NGNDc7Q0Y0NzsxMTBGIDExNjggMTFCNjtDRjQ3OzExMEYgMTE2OCAxMUI2OworQ0Y0ODtDRjQ4OzExMEYgMTE2OCAxMUI3O0NGNDg7MTEwRiAxMTY4IDExQjc7CitDRjQ5O0NGNDk7MTEwRiAxMTY4IDExQjg7Q0Y0OTsxMTBGIDExNjggMTFCODsKK0NGNEE7Q0Y0QTsxMTBGIDExNjggMTFCOTtDRjRBOzExMEYgMTE2OCAxMUI5OworQ0Y0QjtDRjRCOzExMEYgMTE2OCAxMUJBO0NGNEI7MTEwRiAxMTY4IDExQkE7CitDRjRDO0NGNEM7MTEwRiAxMTY4IDExQkI7Q0Y0QzsxMTBGIDExNjggMTFCQjsKK0NGNEQ7Q0Y0RDsxMTBGIDExNjggMTFCQztDRjREOzExMEYgMTE2OCAxMUJDOworQ0Y0RTtDRjRFOzExMEYgMTE2OCAxMUJEO0NGNEU7MTEwRiAxMTY4IDExQkQ7CitDRjRGO0NGNEY7MTEwRiAxMTY4IDExQkU7Q0Y0RjsxMTBGIDExNjggMTFCRTsKK0NGNTA7Q0Y1MDsxMTBGIDExNjggMTFCRjtDRjUwOzExMEYgMTE2OCAxMUJGOworQ0Y1MTtDRjUxOzExMEYgMTE2OCAxMUMwO0NGNTE7MTEwRiAxMTY4IDExQzA7CitDRjUyO0NGNTI7MTEwRiAxMTY4IDExQzE7Q0Y1MjsxMTBGIDExNjggMTFDMTsKK0NGNTM7Q0Y1MzsxMTBGIDExNjggMTFDMjtDRjUzOzExMEYgMTE2OCAxMUMyOworQ0Y1NDtDRjU0OzExMEYgMTE2OTtDRjU0OzExMEYgMTE2OTsKK0NGNTU7Q0Y1NTsxMTBGIDExNjkgMTFBODtDRjU1OzExMEYgMTE2OSAxMUE4OworQ0Y1NjtDRjU2OzExMEYgMTE2OSAxMUE5O0NGNTY7MTEwRiAxMTY5IDExQTk7CitDRjU3O0NGNTc7MTEwRiAxMTY5IDExQUE7Q0Y1NzsxMTBGIDExNjkgMTFBQTsKK0NGNTg7Q0Y1ODsxMTBGIDExNjkgMTFBQjtDRjU4OzExMEYgMTE2OSAxMUFCOworQ0Y1OTtDRjU5OzExMEYgMTE2OSAxMUFDO0NGNTk7MTEwRiAxMTY5IDExQUM7CitDRjVBO0NGNUE7MTEwRiAxMTY5IDExQUQ7Q0Y1QTsxMTBGIDExNjkgMTFBRDsKK0NGNUI7Q0Y1QjsxMTBGIDExNjkgMTFBRTtDRjVCOzExMEYgMTE2OSAxMUFFOworQ0Y1QztDRjVDOzExMEYgMTE2OSAxMUFGO0NGNUM7MTEwRiAxMTY5IDExQUY7CitDRjVEO0NGNUQ7MTEwRiAxMTY5IDExQjA7Q0Y1RDsxMTBGIDExNjkgMTFCMDsKK0NGNUU7Q0Y1RTsxMTBGIDExNjkgMTFCMTtDRjVFOzExMEYgMTE2OSAxMUIxOworQ0Y1RjtDRjVGOzExMEYgMTE2OSAxMUIyO0NGNUY7MTEwRiAxMTY5IDExQjI7CitDRjYwO0NGNjA7MTEwRiAxMTY5IDExQjM7Q0Y2MDsxMTBGIDExNjkgMTFCMzsKK0NGNjE7Q0Y2MTsxMTBGIDExNjkgMTFCNDtDRjYxOzExMEYgMTE2OSAxMUI0OworQ0Y2MjtDRjYyOzExMEYgMTE2OSAxMUI1O0NGNjI7MTEwRiAxMTY5IDExQjU7CitDRjYzO0NGNjM7MTEwRiAxMTY5IDExQjY7Q0Y2MzsxMTBGIDExNjkgMTFCNjsKK0NGNjQ7Q0Y2NDsxMTBGIDExNjkgMTFCNztDRjY0OzExMEYgMTE2OSAxMUI3OworQ0Y2NTtDRjY1OzExMEYgMTE2OSAxMUI4O0NGNjU7MTEwRiAxMTY5IDExQjg7CitDRjY2O0NGNjY7MTEwRiAxMTY5IDExQjk7Q0Y2NjsxMTBGIDExNjkgMTFCOTsKK0NGNjc7Q0Y2NzsxMTBGIDExNjkgMTFCQTtDRjY3OzExMEYgMTE2OSAxMUJBOworQ0Y2ODtDRjY4OzExMEYgMTE2OSAxMUJCO0NGNjg7MTEwRiAxMTY5IDExQkI7CitDRjY5O0NGNjk7MTEwRiAxMTY5IDExQkM7Q0Y2OTsxMTBGIDExNjkgMTFCQzsKK0NGNkE7Q0Y2QTsxMTBGIDExNjkgMTFCRDtDRjZBOzExMEYgMTE2OSAxMUJEOworQ0Y2QjtDRjZCOzExMEYgMTE2OSAxMUJFO0NGNkI7MTEwRiAxMTY5IDExQkU7CitDRjZDO0NGNkM7MTEwRiAxMTY5IDExQkY7Q0Y2QzsxMTBGIDExNjkgMTFCRjsKK0NGNkQ7Q0Y2RDsxMTBGIDExNjkgMTFDMDtDRjZEOzExMEYgMTE2OSAxMUMwOworQ0Y2RTtDRjZFOzExMEYgMTE2OSAxMUMxO0NGNkU7MTEwRiAxMTY5IDExQzE7CitDRjZGO0NGNkY7MTEwRiAxMTY5IDExQzI7Q0Y2RjsxMTBGIDExNjkgMTFDMjsKK0NGNzA7Q0Y3MDsxMTBGIDExNkE7Q0Y3MDsxMTBGIDExNkE7CitDRjcxO0NGNzE7MTEwRiAxMTZBIDExQTg7Q0Y3MTsxMTBGIDExNkEgMTFBODsKK0NGNzI7Q0Y3MjsxMTBGIDExNkEgMTFBOTtDRjcyOzExMEYgMTE2QSAxMUE5OworQ0Y3MztDRjczOzExMEYgMTE2QSAxMUFBO0NGNzM7MTEwRiAxMTZBIDExQUE7CitDRjc0O0NGNzQ7MTEwRiAxMTZBIDExQUI7Q0Y3NDsxMTBGIDExNkEgMTFBQjsKK0NGNzU7Q0Y3NTsxMTBGIDExNkEgMTFBQztDRjc1OzExMEYgMTE2QSAxMUFDOworQ0Y3NjtDRjc2OzExMEYgMTE2QSAxMUFEO0NGNzY7MTEwRiAxMTZBIDExQUQ7CitDRjc3O0NGNzc7MTEwRiAxMTZBIDExQUU7Q0Y3NzsxMTBGIDExNkEgMTFBRTsKK0NGNzg7Q0Y3ODsxMTBGIDExNkEgMTFBRjtDRjc4OzExMEYgMTE2QSAxMUFGOworQ0Y3OTtDRjc5OzExMEYgMTE2QSAxMUIwO0NGNzk7MTEwRiAxMTZBIDExQjA7CitDRjdBO0NGN0E7MTEwRiAxMTZBIDExQjE7Q0Y3QTsxMTBGIDExNkEgMTFCMTsKK0NGN0I7Q0Y3QjsxMTBGIDExNkEgMTFCMjtDRjdCOzExMEYgMTE2QSAxMUIyOworQ0Y3QztDRjdDOzExMEYgMTE2QSAxMUIzO0NGN0M7MTEwRiAxMTZBIDExQjM7CitDRjdEO0NGN0Q7MTEwRiAxMTZBIDExQjQ7Q0Y3RDsxMTBGIDExNkEgMTFCNDsKK0NGN0U7Q0Y3RTsxMTBGIDExNkEgMTFCNTtDRjdFOzExMEYgMTE2QSAxMUI1OworQ0Y3RjtDRjdGOzExMEYgMTE2QSAxMUI2O0NGN0Y7MTEwRiAxMTZBIDExQjY7CitDRjgwO0NGODA7MTEwRiAxMTZBIDExQjc7Q0Y4MDsxMTBGIDExNkEgMTFCNzsKK0NGODE7Q0Y4MTsxMTBGIDExNkEgMTFCODtDRjgxOzExMEYgMTE2QSAxMUI4OworQ0Y4MjtDRjgyOzExMEYgMTE2QSAxMUI5O0NGODI7MTEwRiAxMTZBIDExQjk7CitDRjgzO0NGODM7MTEwRiAxMTZBIDExQkE7Q0Y4MzsxMTBGIDExNkEgMTFCQTsKK0NGODQ7Q0Y4NDsxMTBGIDExNkEgMTFCQjtDRjg0OzExMEYgMTE2QSAxMUJCOworQ0Y4NTtDRjg1OzExMEYgMTE2QSAxMUJDO0NGODU7MTEwRiAxMTZBIDExQkM7CitDRjg2O0NGODY7MTEwRiAxMTZBIDExQkQ7Q0Y4NjsxMTBGIDExNkEgMTFCRDsKK0NGODc7Q0Y4NzsxMTBGIDExNkEgMTFCRTtDRjg3OzExMEYgMTE2QSAxMUJFOworQ0Y4ODtDRjg4OzExMEYgMTE2QSAxMUJGO0NGODg7MTEwRiAxMTZBIDExQkY7CitDRjg5O0NGODk7MTEwRiAxMTZBIDExQzA7Q0Y4OTsxMTBGIDExNkEgMTFDMDsKK0NGOEE7Q0Y4QTsxMTBGIDExNkEgMTFDMTtDRjhBOzExMEYgMTE2QSAxMUMxOworQ0Y4QjtDRjhCOzExMEYgMTE2QSAxMUMyO0NGOEI7MTEwRiAxMTZBIDExQzI7CitDRjhDO0NGOEM7MTEwRiAxMTZCO0NGOEM7MTEwRiAxMTZCOworQ0Y4RDtDRjhEOzExMEYgMTE2QiAxMUE4O0NGOEQ7MTEwRiAxMTZCIDExQTg7CitDRjhFO0NGOEU7MTEwRiAxMTZCIDExQTk7Q0Y4RTsxMTBGIDExNkIgMTFBOTsKK0NGOEY7Q0Y4RjsxMTBGIDExNkIgMTFBQTtDRjhGOzExMEYgMTE2QiAxMUFBOworQ0Y5MDtDRjkwOzExMEYgMTE2QiAxMUFCO0NGOTA7MTEwRiAxMTZCIDExQUI7CitDRjkxO0NGOTE7MTEwRiAxMTZCIDExQUM7Q0Y5MTsxMTBGIDExNkIgMTFBQzsKK0NGOTI7Q0Y5MjsxMTBGIDExNkIgMTFBRDtDRjkyOzExMEYgMTE2QiAxMUFEOworQ0Y5MztDRjkzOzExMEYgMTE2QiAxMUFFO0NGOTM7MTEwRiAxMTZCIDExQUU7CitDRjk0O0NGOTQ7MTEwRiAxMTZCIDExQUY7Q0Y5NDsxMTBGIDExNkIgMTFBRjsKK0NGOTU7Q0Y5NTsxMTBGIDExNkIgMTFCMDtDRjk1OzExMEYgMTE2QiAxMUIwOworQ0Y5NjtDRjk2OzExMEYgMTE2QiAxMUIxO0NGOTY7MTEwRiAxMTZCIDExQjE7CitDRjk3O0NGOTc7MTEwRiAxMTZCIDExQjI7Q0Y5NzsxMTBGIDExNkIgMTFCMjsKK0NGOTg7Q0Y5ODsxMTBGIDExNkIgMTFCMztDRjk4OzExMEYgMTE2QiAxMUIzOworQ0Y5OTtDRjk5OzExMEYgMTE2QiAxMUI0O0NGOTk7MTEwRiAxMTZCIDExQjQ7CitDRjlBO0NGOUE7MTEwRiAxMTZCIDExQjU7Q0Y5QTsxMTBGIDExNkIgMTFCNTsKK0NGOUI7Q0Y5QjsxMTBGIDExNkIgMTFCNjtDRjlCOzExMEYgMTE2QiAxMUI2OworQ0Y5QztDRjlDOzExMEYgMTE2QiAxMUI3O0NGOUM7MTEwRiAxMTZCIDExQjc7CitDRjlEO0NGOUQ7MTEwRiAxMTZCIDExQjg7Q0Y5RDsxMTBGIDExNkIgMTFCODsKK0NGOUU7Q0Y5RTsxMTBGIDExNkIgMTFCOTtDRjlFOzExMEYgMTE2QiAxMUI5OworQ0Y5RjtDRjlGOzExMEYgMTE2QiAxMUJBO0NGOUY7MTEwRiAxMTZCIDExQkE7CitDRkEwO0NGQTA7MTEwRiAxMTZCIDExQkI7Q0ZBMDsxMTBGIDExNkIgMTFCQjsKK0NGQTE7Q0ZBMTsxMTBGIDExNkIgMTFCQztDRkExOzExMEYgMTE2QiAxMUJDOworQ0ZBMjtDRkEyOzExMEYgMTE2QiAxMUJEO0NGQTI7MTEwRiAxMTZCIDExQkQ7CitDRkEzO0NGQTM7MTEwRiAxMTZCIDExQkU7Q0ZBMzsxMTBGIDExNkIgMTFCRTsKK0NGQTQ7Q0ZBNDsxMTBGIDExNkIgMTFCRjtDRkE0OzExMEYgMTE2QiAxMUJGOworQ0ZBNTtDRkE1OzExMEYgMTE2QiAxMUMwO0NGQTU7MTEwRiAxMTZCIDExQzA7CitDRkE2O0NGQTY7MTEwRiAxMTZCIDExQzE7Q0ZBNjsxMTBGIDExNkIgMTFDMTsKK0NGQTc7Q0ZBNzsxMTBGIDExNkIgMTFDMjtDRkE3OzExMEYgMTE2QiAxMUMyOworQ0ZBODtDRkE4OzExMEYgMTE2QztDRkE4OzExMEYgMTE2QzsKK0NGQTk7Q0ZBOTsxMTBGIDExNkMgMTFBODtDRkE5OzExMEYgMTE2QyAxMUE4OworQ0ZBQTtDRkFBOzExMEYgMTE2QyAxMUE5O0NGQUE7MTEwRiAxMTZDIDExQTk7CitDRkFCO0NGQUI7MTEwRiAxMTZDIDExQUE7Q0ZBQjsxMTBGIDExNkMgMTFBQTsKK0NGQUM7Q0ZBQzsxMTBGIDExNkMgMTFBQjtDRkFDOzExMEYgMTE2QyAxMUFCOworQ0ZBRDtDRkFEOzExMEYgMTE2QyAxMUFDO0NGQUQ7MTEwRiAxMTZDIDExQUM7CitDRkFFO0NGQUU7MTEwRiAxMTZDIDExQUQ7Q0ZBRTsxMTBGIDExNkMgMTFBRDsKK0NGQUY7Q0ZBRjsxMTBGIDExNkMgMTFBRTtDRkFGOzExMEYgMTE2QyAxMUFFOworQ0ZCMDtDRkIwOzExMEYgMTE2QyAxMUFGO0NGQjA7MTEwRiAxMTZDIDExQUY7CitDRkIxO0NGQjE7MTEwRiAxMTZDIDExQjA7Q0ZCMTsxMTBGIDExNkMgMTFCMDsKK0NGQjI7Q0ZCMjsxMTBGIDExNkMgMTFCMTtDRkIyOzExMEYgMTE2QyAxMUIxOworQ0ZCMztDRkIzOzExMEYgMTE2QyAxMUIyO0NGQjM7MTEwRiAxMTZDIDExQjI7CitDRkI0O0NGQjQ7MTEwRiAxMTZDIDExQjM7Q0ZCNDsxMTBGIDExNkMgMTFCMzsKK0NGQjU7Q0ZCNTsxMTBGIDExNkMgMTFCNDtDRkI1OzExMEYgMTE2QyAxMUI0OworQ0ZCNjtDRkI2OzExMEYgMTE2QyAxMUI1O0NGQjY7MTEwRiAxMTZDIDExQjU7CitDRkI3O0NGQjc7MTEwRiAxMTZDIDExQjY7Q0ZCNzsxMTBGIDExNkMgMTFCNjsKK0NGQjg7Q0ZCODsxMTBGIDExNkMgMTFCNztDRkI4OzExMEYgMTE2QyAxMUI3OworQ0ZCOTtDRkI5OzExMEYgMTE2QyAxMUI4O0NGQjk7MTEwRiAxMTZDIDExQjg7CitDRkJBO0NGQkE7MTEwRiAxMTZDIDExQjk7Q0ZCQTsxMTBGIDExNkMgMTFCOTsKK0NGQkI7Q0ZCQjsxMTBGIDExNkMgMTFCQTtDRkJCOzExMEYgMTE2QyAxMUJBOworQ0ZCQztDRkJDOzExMEYgMTE2QyAxMUJCO0NGQkM7MTEwRiAxMTZDIDExQkI7CitDRkJEO0NGQkQ7MTEwRiAxMTZDIDExQkM7Q0ZCRDsxMTBGIDExNkMgMTFCQzsKK0NGQkU7Q0ZCRTsxMTBGIDExNkMgMTFCRDtDRkJFOzExMEYgMTE2QyAxMUJEOworQ0ZCRjtDRkJGOzExMEYgMTE2QyAxMUJFO0NGQkY7MTEwRiAxMTZDIDExQkU7CitDRkMwO0NGQzA7MTEwRiAxMTZDIDExQkY7Q0ZDMDsxMTBGIDExNkMgMTFCRjsKK0NGQzE7Q0ZDMTsxMTBGIDExNkMgMTFDMDtDRkMxOzExMEYgMTE2QyAxMUMwOworQ0ZDMjtDRkMyOzExMEYgMTE2QyAxMUMxO0NGQzI7MTEwRiAxMTZDIDExQzE7CitDRkMzO0NGQzM7MTEwRiAxMTZDIDExQzI7Q0ZDMzsxMTBGIDExNkMgMTFDMjsKK0NGQzQ7Q0ZDNDsxMTBGIDExNkQ7Q0ZDNDsxMTBGIDExNkQ7CitDRkM1O0NGQzU7MTEwRiAxMTZEIDExQTg7Q0ZDNTsxMTBGIDExNkQgMTFBODsKK0NGQzY7Q0ZDNjsxMTBGIDExNkQgMTFBOTtDRkM2OzExMEYgMTE2RCAxMUE5OworQ0ZDNztDRkM3OzExMEYgMTE2RCAxMUFBO0NGQzc7MTEwRiAxMTZEIDExQUE7CitDRkM4O0NGQzg7MTEwRiAxMTZEIDExQUI7Q0ZDODsxMTBGIDExNkQgMTFBQjsKK0NGQzk7Q0ZDOTsxMTBGIDExNkQgMTFBQztDRkM5OzExMEYgMTE2RCAxMUFDOworQ0ZDQTtDRkNBOzExMEYgMTE2RCAxMUFEO0NGQ0E7MTEwRiAxMTZEIDExQUQ7CitDRkNCO0NGQ0I7MTEwRiAxMTZEIDExQUU7Q0ZDQjsxMTBGIDExNkQgMTFBRTsKK0NGQ0M7Q0ZDQzsxMTBGIDExNkQgMTFBRjtDRkNDOzExMEYgMTE2RCAxMUFGOworQ0ZDRDtDRkNEOzExMEYgMTE2RCAxMUIwO0NGQ0Q7MTEwRiAxMTZEIDExQjA7CitDRkNFO0NGQ0U7MTEwRiAxMTZEIDExQjE7Q0ZDRTsxMTBGIDExNkQgMTFCMTsKK0NGQ0Y7Q0ZDRjsxMTBGIDExNkQgMTFCMjtDRkNGOzExMEYgMTE2RCAxMUIyOworQ0ZEMDtDRkQwOzExMEYgMTE2RCAxMUIzO0NGRDA7MTEwRiAxMTZEIDExQjM7CitDRkQxO0NGRDE7MTEwRiAxMTZEIDExQjQ7Q0ZEMTsxMTBGIDExNkQgMTFCNDsKK0NGRDI7Q0ZEMjsxMTBGIDExNkQgMTFCNTtDRkQyOzExMEYgMTE2RCAxMUI1OworQ0ZEMztDRkQzOzExMEYgMTE2RCAxMUI2O0NGRDM7MTEwRiAxMTZEIDExQjY7CitDRkQ0O0NGRDQ7MTEwRiAxMTZEIDExQjc7Q0ZENDsxMTBGIDExNkQgMTFCNzsKK0NGRDU7Q0ZENTsxMTBGIDExNkQgMTFCODtDRkQ1OzExMEYgMTE2RCAxMUI4OworQ0ZENjtDRkQ2OzExMEYgMTE2RCAxMUI5O0NGRDY7MTEwRiAxMTZEIDExQjk7CitDRkQ3O0NGRDc7MTEwRiAxMTZEIDExQkE7Q0ZENzsxMTBGIDExNkQgMTFCQTsKK0NGRDg7Q0ZEODsxMTBGIDExNkQgMTFCQjtDRkQ4OzExMEYgMTE2RCAxMUJCOworQ0ZEOTtDRkQ5OzExMEYgMTE2RCAxMUJDO0NGRDk7MTEwRiAxMTZEIDExQkM7CitDRkRBO0NGREE7MTEwRiAxMTZEIDExQkQ7Q0ZEQTsxMTBGIDExNkQgMTFCRDsKK0NGREI7Q0ZEQjsxMTBGIDExNkQgMTFCRTtDRkRCOzExMEYgMTE2RCAxMUJFOworQ0ZEQztDRkRDOzExMEYgMTE2RCAxMUJGO0NGREM7MTEwRiAxMTZEIDExQkY7CitDRkREO0NGREQ7MTEwRiAxMTZEIDExQzA7Q0ZERDsxMTBGIDExNkQgMTFDMDsKK0NGREU7Q0ZERTsxMTBGIDExNkQgMTFDMTtDRkRFOzExMEYgMTE2RCAxMUMxOworQ0ZERjtDRkRGOzExMEYgMTE2RCAxMUMyO0NGREY7MTEwRiAxMTZEIDExQzI7CitDRkUwO0NGRTA7MTEwRiAxMTZFO0NGRTA7MTEwRiAxMTZFOworQ0ZFMTtDRkUxOzExMEYgMTE2RSAxMUE4O0NGRTE7MTEwRiAxMTZFIDExQTg7CitDRkUyO0NGRTI7MTEwRiAxMTZFIDExQTk7Q0ZFMjsxMTBGIDExNkUgMTFBOTsKK0NGRTM7Q0ZFMzsxMTBGIDExNkUgMTFBQTtDRkUzOzExMEYgMTE2RSAxMUFBOworQ0ZFNDtDRkU0OzExMEYgMTE2RSAxMUFCO0NGRTQ7MTEwRiAxMTZFIDExQUI7CitDRkU1O0NGRTU7MTEwRiAxMTZFIDExQUM7Q0ZFNTsxMTBGIDExNkUgMTFBQzsKK0NGRTY7Q0ZFNjsxMTBGIDExNkUgMTFBRDtDRkU2OzExMEYgMTE2RSAxMUFEOworQ0ZFNztDRkU3OzExMEYgMTE2RSAxMUFFO0NGRTc7MTEwRiAxMTZFIDExQUU7CitDRkU4O0NGRTg7MTEwRiAxMTZFIDExQUY7Q0ZFODsxMTBGIDExNkUgMTFBRjsKK0NGRTk7Q0ZFOTsxMTBGIDExNkUgMTFCMDtDRkU5OzExMEYgMTE2RSAxMUIwOworQ0ZFQTtDRkVBOzExMEYgMTE2RSAxMUIxO0NGRUE7MTEwRiAxMTZFIDExQjE7CitDRkVCO0NGRUI7MTEwRiAxMTZFIDExQjI7Q0ZFQjsxMTBGIDExNkUgMTFCMjsKK0NGRUM7Q0ZFQzsxMTBGIDExNkUgMTFCMztDRkVDOzExMEYgMTE2RSAxMUIzOworQ0ZFRDtDRkVEOzExMEYgMTE2RSAxMUI0O0NGRUQ7MTEwRiAxMTZFIDExQjQ7CitDRkVFO0NGRUU7MTEwRiAxMTZFIDExQjU7Q0ZFRTsxMTBGIDExNkUgMTFCNTsKK0NGRUY7Q0ZFRjsxMTBGIDExNkUgMTFCNjtDRkVGOzExMEYgMTE2RSAxMUI2OworQ0ZGMDtDRkYwOzExMEYgMTE2RSAxMUI3O0NGRjA7MTEwRiAxMTZFIDExQjc7CitDRkYxO0NGRjE7MTEwRiAxMTZFIDExQjg7Q0ZGMTsxMTBGIDExNkUgMTFCODsKK0NGRjI7Q0ZGMjsxMTBGIDExNkUgMTFCOTtDRkYyOzExMEYgMTE2RSAxMUI5OworQ0ZGMztDRkYzOzExMEYgMTE2RSAxMUJBO0NGRjM7MTEwRiAxMTZFIDExQkE7CitDRkY0O0NGRjQ7MTEwRiAxMTZFIDExQkI7Q0ZGNDsxMTBGIDExNkUgMTFCQjsKK0NGRjU7Q0ZGNTsxMTBGIDExNkUgMTFCQztDRkY1OzExMEYgMTE2RSAxMUJDOworQ0ZGNjtDRkY2OzExMEYgMTE2RSAxMUJEO0NGRjY7MTEwRiAxMTZFIDExQkQ7CitDRkY3O0NGRjc7MTEwRiAxMTZFIDExQkU7Q0ZGNzsxMTBGIDExNkUgMTFCRTsKK0NGRjg7Q0ZGODsxMTBGIDExNkUgMTFCRjtDRkY4OzExMEYgMTE2RSAxMUJGOworQ0ZGOTtDRkY5OzExMEYgMTE2RSAxMUMwO0NGRjk7MTEwRiAxMTZFIDExQzA7CitDRkZBO0NGRkE7MTEwRiAxMTZFIDExQzE7Q0ZGQTsxMTBGIDExNkUgMTFDMTsKK0NGRkI7Q0ZGQjsxMTBGIDExNkUgMTFDMjtDRkZCOzExMEYgMTE2RSAxMUMyOworQ0ZGQztDRkZDOzExMEYgMTE2RjtDRkZDOzExMEYgMTE2RjsKK0NGRkQ7Q0ZGRDsxMTBGIDExNkYgMTFBODtDRkZEOzExMEYgMTE2RiAxMUE4OworQ0ZGRTtDRkZFOzExMEYgMTE2RiAxMUE5O0NGRkU7MTEwRiAxMTZGIDExQTk7CitDRkZGO0NGRkY7MTEwRiAxMTZGIDExQUE7Q0ZGRjsxMTBGIDExNkYgMTFBQTsKK0QwMDA7RDAwMDsxMTBGIDExNkYgMTFBQjtEMDAwOzExMEYgMTE2RiAxMUFCOworRDAwMTtEMDAxOzExMEYgMTE2RiAxMUFDO0QwMDE7MTEwRiAxMTZGIDExQUM7CitEMDAyO0QwMDI7MTEwRiAxMTZGIDExQUQ7RDAwMjsxMTBGIDExNkYgMTFBRDsKK0QwMDM7RDAwMzsxMTBGIDExNkYgMTFBRTtEMDAzOzExMEYgMTE2RiAxMUFFOworRDAwNDtEMDA0OzExMEYgMTE2RiAxMUFGO0QwMDQ7MTEwRiAxMTZGIDExQUY7CitEMDA1O0QwMDU7MTEwRiAxMTZGIDExQjA7RDAwNTsxMTBGIDExNkYgMTFCMDsKK0QwMDY7RDAwNjsxMTBGIDExNkYgMTFCMTtEMDA2OzExMEYgMTE2RiAxMUIxOworRDAwNztEMDA3OzExMEYgMTE2RiAxMUIyO0QwMDc7MTEwRiAxMTZGIDExQjI7CitEMDA4O0QwMDg7MTEwRiAxMTZGIDExQjM7RDAwODsxMTBGIDExNkYgMTFCMzsKK0QwMDk7RDAwOTsxMTBGIDExNkYgMTFCNDtEMDA5OzExMEYgMTE2RiAxMUI0OworRDAwQTtEMDBBOzExMEYgMTE2RiAxMUI1O0QwMEE7MTEwRiAxMTZGIDExQjU7CitEMDBCO0QwMEI7MTEwRiAxMTZGIDExQjY7RDAwQjsxMTBGIDExNkYgMTFCNjsKK0QwMEM7RDAwQzsxMTBGIDExNkYgMTFCNztEMDBDOzExMEYgMTE2RiAxMUI3OworRDAwRDtEMDBEOzExMEYgMTE2RiAxMUI4O0QwMEQ7MTEwRiAxMTZGIDExQjg7CitEMDBFO0QwMEU7MTEwRiAxMTZGIDExQjk7RDAwRTsxMTBGIDExNkYgMTFCOTsKK0QwMEY7RDAwRjsxMTBGIDExNkYgMTFCQTtEMDBGOzExMEYgMTE2RiAxMUJBOworRDAxMDtEMDEwOzExMEYgMTE2RiAxMUJCO0QwMTA7MTEwRiAxMTZGIDExQkI7CitEMDExO0QwMTE7MTEwRiAxMTZGIDExQkM7RDAxMTsxMTBGIDExNkYgMTFCQzsKK0QwMTI7RDAxMjsxMTBGIDExNkYgMTFCRDtEMDEyOzExMEYgMTE2RiAxMUJEOworRDAxMztEMDEzOzExMEYgMTE2RiAxMUJFO0QwMTM7MTEwRiAxMTZGIDExQkU7CitEMDE0O0QwMTQ7MTEwRiAxMTZGIDExQkY7RDAxNDsxMTBGIDExNkYgMTFCRjsKK0QwMTU7RDAxNTsxMTBGIDExNkYgMTFDMDtEMDE1OzExMEYgMTE2RiAxMUMwOworRDAxNjtEMDE2OzExMEYgMTE2RiAxMUMxO0QwMTY7MTEwRiAxMTZGIDExQzE7CitEMDE3O0QwMTc7MTEwRiAxMTZGIDExQzI7RDAxNzsxMTBGIDExNkYgMTFDMjsKK0QwMTg7RDAxODsxMTBGIDExNzA7RDAxODsxMTBGIDExNzA7CitEMDE5O0QwMTk7MTEwRiAxMTcwIDExQTg7RDAxOTsxMTBGIDExNzAgMTFBODsKK0QwMUE7RDAxQTsxMTBGIDExNzAgMTFBOTtEMDFBOzExMEYgMTE3MCAxMUE5OworRDAxQjtEMDFCOzExMEYgMTE3MCAxMUFBO0QwMUI7MTEwRiAxMTcwIDExQUE7CitEMDFDO0QwMUM7MTEwRiAxMTcwIDExQUI7RDAxQzsxMTBGIDExNzAgMTFBQjsKK0QwMUQ7RDAxRDsxMTBGIDExNzAgMTFBQztEMDFEOzExMEYgMTE3MCAxMUFDOworRDAxRTtEMDFFOzExMEYgMTE3MCAxMUFEO0QwMUU7MTEwRiAxMTcwIDExQUQ7CitEMDFGO0QwMUY7MTEwRiAxMTcwIDExQUU7RDAxRjsxMTBGIDExNzAgMTFBRTsKK0QwMjA7RDAyMDsxMTBGIDExNzAgMTFBRjtEMDIwOzExMEYgMTE3MCAxMUFGOworRDAyMTtEMDIxOzExMEYgMTE3MCAxMUIwO0QwMjE7MTEwRiAxMTcwIDExQjA7CitEMDIyO0QwMjI7MTEwRiAxMTcwIDExQjE7RDAyMjsxMTBGIDExNzAgMTFCMTsKK0QwMjM7RDAyMzsxMTBGIDExNzAgMTFCMjtEMDIzOzExMEYgMTE3MCAxMUIyOworRDAyNDtEMDI0OzExMEYgMTE3MCAxMUIzO0QwMjQ7MTEwRiAxMTcwIDExQjM7CitEMDI1O0QwMjU7MTEwRiAxMTcwIDExQjQ7RDAyNTsxMTBGIDExNzAgMTFCNDsKK0QwMjY7RDAyNjsxMTBGIDExNzAgMTFCNTtEMDI2OzExMEYgMTE3MCAxMUI1OworRDAyNztEMDI3OzExMEYgMTE3MCAxMUI2O0QwMjc7MTEwRiAxMTcwIDExQjY7CitEMDI4O0QwMjg7MTEwRiAxMTcwIDExQjc7RDAyODsxMTBGIDExNzAgMTFCNzsKK0QwMjk7RDAyOTsxMTBGIDExNzAgMTFCODtEMDI5OzExMEYgMTE3MCAxMUI4OworRDAyQTtEMDJBOzExMEYgMTE3MCAxMUI5O0QwMkE7MTEwRiAxMTcwIDExQjk7CitEMDJCO0QwMkI7MTEwRiAxMTcwIDExQkE7RDAyQjsxMTBGIDExNzAgMTFCQTsKK0QwMkM7RDAyQzsxMTBGIDExNzAgMTFCQjtEMDJDOzExMEYgMTE3MCAxMUJCOworRDAyRDtEMDJEOzExMEYgMTE3MCAxMUJDO0QwMkQ7MTEwRiAxMTcwIDExQkM7CitEMDJFO0QwMkU7MTEwRiAxMTcwIDExQkQ7RDAyRTsxMTBGIDExNzAgMTFCRDsKK0QwMkY7RDAyRjsxMTBGIDExNzAgMTFCRTtEMDJGOzExMEYgMTE3MCAxMUJFOworRDAzMDtEMDMwOzExMEYgMTE3MCAxMUJGO0QwMzA7MTEwRiAxMTcwIDExQkY7CitEMDMxO0QwMzE7MTEwRiAxMTcwIDExQzA7RDAzMTsxMTBGIDExNzAgMTFDMDsKK0QwMzI7RDAzMjsxMTBGIDExNzAgMTFDMTtEMDMyOzExMEYgMTE3MCAxMUMxOworRDAzMztEMDMzOzExMEYgMTE3MCAxMUMyO0QwMzM7MTEwRiAxMTcwIDExQzI7CitEMDM0O0QwMzQ7MTEwRiAxMTcxO0QwMzQ7MTEwRiAxMTcxOworRDAzNTtEMDM1OzExMEYgMTE3MSAxMUE4O0QwMzU7MTEwRiAxMTcxIDExQTg7CitEMDM2O0QwMzY7MTEwRiAxMTcxIDExQTk7RDAzNjsxMTBGIDExNzEgMTFBOTsKK0QwMzc7RDAzNzsxMTBGIDExNzEgMTFBQTtEMDM3OzExMEYgMTE3MSAxMUFBOworRDAzODtEMDM4OzExMEYgMTE3MSAxMUFCO0QwMzg7MTEwRiAxMTcxIDExQUI7CitEMDM5O0QwMzk7MTEwRiAxMTcxIDExQUM7RDAzOTsxMTBGIDExNzEgMTFBQzsKK0QwM0E7RDAzQTsxMTBGIDExNzEgMTFBRDtEMDNBOzExMEYgMTE3MSAxMUFEOworRDAzQjtEMDNCOzExMEYgMTE3MSAxMUFFO0QwM0I7MTEwRiAxMTcxIDExQUU7CitEMDNDO0QwM0M7MTEwRiAxMTcxIDExQUY7RDAzQzsxMTBGIDExNzEgMTFBRjsKK0QwM0Q7RDAzRDsxMTBGIDExNzEgMTFCMDtEMDNEOzExMEYgMTE3MSAxMUIwOworRDAzRTtEMDNFOzExMEYgMTE3MSAxMUIxO0QwM0U7MTEwRiAxMTcxIDExQjE7CitEMDNGO0QwM0Y7MTEwRiAxMTcxIDExQjI7RDAzRjsxMTBGIDExNzEgMTFCMjsKK0QwNDA7RDA0MDsxMTBGIDExNzEgMTFCMztEMDQwOzExMEYgMTE3MSAxMUIzOworRDA0MTtEMDQxOzExMEYgMTE3MSAxMUI0O0QwNDE7MTEwRiAxMTcxIDExQjQ7CitEMDQyO0QwNDI7MTEwRiAxMTcxIDExQjU7RDA0MjsxMTBGIDExNzEgMTFCNTsKK0QwNDM7RDA0MzsxMTBGIDExNzEgMTFCNjtEMDQzOzExMEYgMTE3MSAxMUI2OworRDA0NDtEMDQ0OzExMEYgMTE3MSAxMUI3O0QwNDQ7MTEwRiAxMTcxIDExQjc7CitEMDQ1O0QwNDU7MTEwRiAxMTcxIDExQjg7RDA0NTsxMTBGIDExNzEgMTFCODsKK0QwNDY7RDA0NjsxMTBGIDExNzEgMTFCOTtEMDQ2OzExMEYgMTE3MSAxMUI5OworRDA0NztEMDQ3OzExMEYgMTE3MSAxMUJBO0QwNDc7MTEwRiAxMTcxIDExQkE7CitEMDQ4O0QwNDg7MTEwRiAxMTcxIDExQkI7RDA0ODsxMTBGIDExNzEgMTFCQjsKK0QwNDk7RDA0OTsxMTBGIDExNzEgMTFCQztEMDQ5OzExMEYgMTE3MSAxMUJDOworRDA0QTtEMDRBOzExMEYgMTE3MSAxMUJEO0QwNEE7MTEwRiAxMTcxIDExQkQ7CitEMDRCO0QwNEI7MTEwRiAxMTcxIDExQkU7RDA0QjsxMTBGIDExNzEgMTFCRTsKK0QwNEM7RDA0QzsxMTBGIDExNzEgMTFCRjtEMDRDOzExMEYgMTE3MSAxMUJGOworRDA0RDtEMDREOzExMEYgMTE3MSAxMUMwO0QwNEQ7MTEwRiAxMTcxIDExQzA7CitEMDRFO0QwNEU7MTEwRiAxMTcxIDExQzE7RDA0RTsxMTBGIDExNzEgMTFDMTsKK0QwNEY7RDA0RjsxMTBGIDExNzEgMTFDMjtEMDRGOzExMEYgMTE3MSAxMUMyOworRDA1MDtEMDUwOzExMEYgMTE3MjtEMDUwOzExMEYgMTE3MjsKK0QwNTE7RDA1MTsxMTBGIDExNzIgMTFBODtEMDUxOzExMEYgMTE3MiAxMUE4OworRDA1MjtEMDUyOzExMEYgMTE3MiAxMUE5O0QwNTI7MTEwRiAxMTcyIDExQTk7CitEMDUzO0QwNTM7MTEwRiAxMTcyIDExQUE7RDA1MzsxMTBGIDExNzIgMTFBQTsKK0QwNTQ7RDA1NDsxMTBGIDExNzIgMTFBQjtEMDU0OzExMEYgMTE3MiAxMUFCOworRDA1NTtEMDU1OzExMEYgMTE3MiAxMUFDO0QwNTU7MTEwRiAxMTcyIDExQUM7CitEMDU2O0QwNTY7MTEwRiAxMTcyIDExQUQ7RDA1NjsxMTBGIDExNzIgMTFBRDsKK0QwNTc7RDA1NzsxMTBGIDExNzIgMTFBRTtEMDU3OzExMEYgMTE3MiAxMUFFOworRDA1ODtEMDU4OzExMEYgMTE3MiAxMUFGO0QwNTg7MTEwRiAxMTcyIDExQUY7CitEMDU5O0QwNTk7MTEwRiAxMTcyIDExQjA7RDA1OTsxMTBGIDExNzIgMTFCMDsKK0QwNUE7RDA1QTsxMTBGIDExNzIgMTFCMTtEMDVBOzExMEYgMTE3MiAxMUIxOworRDA1QjtEMDVCOzExMEYgMTE3MiAxMUIyO0QwNUI7MTEwRiAxMTcyIDExQjI7CitEMDVDO0QwNUM7MTEwRiAxMTcyIDExQjM7RDA1QzsxMTBGIDExNzIgMTFCMzsKK0QwNUQ7RDA1RDsxMTBGIDExNzIgMTFCNDtEMDVEOzExMEYgMTE3MiAxMUI0OworRDA1RTtEMDVFOzExMEYgMTE3MiAxMUI1O0QwNUU7MTEwRiAxMTcyIDExQjU7CitEMDVGO0QwNUY7MTEwRiAxMTcyIDExQjY7RDA1RjsxMTBGIDExNzIgMTFCNjsKK0QwNjA7RDA2MDsxMTBGIDExNzIgMTFCNztEMDYwOzExMEYgMTE3MiAxMUI3OworRDA2MTtEMDYxOzExMEYgMTE3MiAxMUI4O0QwNjE7MTEwRiAxMTcyIDExQjg7CitEMDYyO0QwNjI7MTEwRiAxMTcyIDExQjk7RDA2MjsxMTBGIDExNzIgMTFCOTsKK0QwNjM7RDA2MzsxMTBGIDExNzIgMTFCQTtEMDYzOzExMEYgMTE3MiAxMUJBOworRDA2NDtEMDY0OzExMEYgMTE3MiAxMUJCO0QwNjQ7MTEwRiAxMTcyIDExQkI7CitEMDY1O0QwNjU7MTEwRiAxMTcyIDExQkM7RDA2NTsxMTBGIDExNzIgMTFCQzsKK0QwNjY7RDA2NjsxMTBGIDExNzIgMTFCRDtEMDY2OzExMEYgMTE3MiAxMUJEOworRDA2NztEMDY3OzExMEYgMTE3MiAxMUJFO0QwNjc7MTEwRiAxMTcyIDExQkU7CitEMDY4O0QwNjg7MTEwRiAxMTcyIDExQkY7RDA2ODsxMTBGIDExNzIgMTFCRjsKK0QwNjk7RDA2OTsxMTBGIDExNzIgMTFDMDtEMDY5OzExMEYgMTE3MiAxMUMwOworRDA2QTtEMDZBOzExMEYgMTE3MiAxMUMxO0QwNkE7MTEwRiAxMTcyIDExQzE7CitEMDZCO0QwNkI7MTEwRiAxMTcyIDExQzI7RDA2QjsxMTBGIDExNzIgMTFDMjsKK0QwNkM7RDA2QzsxMTBGIDExNzM7RDA2QzsxMTBGIDExNzM7CitEMDZEO0QwNkQ7MTEwRiAxMTczIDExQTg7RDA2RDsxMTBGIDExNzMgMTFBODsKK0QwNkU7RDA2RTsxMTBGIDExNzMgMTFBOTtEMDZFOzExMEYgMTE3MyAxMUE5OworRDA2RjtEMDZGOzExMEYgMTE3MyAxMUFBO0QwNkY7MTEwRiAxMTczIDExQUE7CitEMDcwO0QwNzA7MTEwRiAxMTczIDExQUI7RDA3MDsxMTBGIDExNzMgMTFBQjsKK0QwNzE7RDA3MTsxMTBGIDExNzMgMTFBQztEMDcxOzExMEYgMTE3MyAxMUFDOworRDA3MjtEMDcyOzExMEYgMTE3MyAxMUFEO0QwNzI7MTEwRiAxMTczIDExQUQ7CitEMDczO0QwNzM7MTEwRiAxMTczIDExQUU7RDA3MzsxMTBGIDExNzMgMTFBRTsKK0QwNzQ7RDA3NDsxMTBGIDExNzMgMTFBRjtEMDc0OzExMEYgMTE3MyAxMUFGOworRDA3NTtEMDc1OzExMEYgMTE3MyAxMUIwO0QwNzU7MTEwRiAxMTczIDExQjA7CitEMDc2O0QwNzY7MTEwRiAxMTczIDExQjE7RDA3NjsxMTBGIDExNzMgMTFCMTsKK0QwNzc7RDA3NzsxMTBGIDExNzMgMTFCMjtEMDc3OzExMEYgMTE3MyAxMUIyOworRDA3ODtEMDc4OzExMEYgMTE3MyAxMUIzO0QwNzg7MTEwRiAxMTczIDExQjM7CitEMDc5O0QwNzk7MTEwRiAxMTczIDExQjQ7RDA3OTsxMTBGIDExNzMgMTFCNDsKK0QwN0E7RDA3QTsxMTBGIDExNzMgMTFCNTtEMDdBOzExMEYgMTE3MyAxMUI1OworRDA3QjtEMDdCOzExMEYgMTE3MyAxMUI2O0QwN0I7MTEwRiAxMTczIDExQjY7CitEMDdDO0QwN0M7MTEwRiAxMTczIDExQjc7RDA3QzsxMTBGIDExNzMgMTFCNzsKK0QwN0Q7RDA3RDsxMTBGIDExNzMgMTFCODtEMDdEOzExMEYgMTE3MyAxMUI4OworRDA3RTtEMDdFOzExMEYgMTE3MyAxMUI5O0QwN0U7MTEwRiAxMTczIDExQjk7CitEMDdGO0QwN0Y7MTEwRiAxMTczIDExQkE7RDA3RjsxMTBGIDExNzMgMTFCQTsKK0QwODA7RDA4MDsxMTBGIDExNzMgMTFCQjtEMDgwOzExMEYgMTE3MyAxMUJCOworRDA4MTtEMDgxOzExMEYgMTE3MyAxMUJDO0QwODE7MTEwRiAxMTczIDExQkM7CitEMDgyO0QwODI7MTEwRiAxMTczIDExQkQ7RDA4MjsxMTBGIDExNzMgMTFCRDsKK0QwODM7RDA4MzsxMTBGIDExNzMgMTFCRTtEMDgzOzExMEYgMTE3MyAxMUJFOworRDA4NDtEMDg0OzExMEYgMTE3MyAxMUJGO0QwODQ7MTEwRiAxMTczIDExQkY7CitEMDg1O0QwODU7MTEwRiAxMTczIDExQzA7RDA4NTsxMTBGIDExNzMgMTFDMDsKK0QwODY7RDA4NjsxMTBGIDExNzMgMTFDMTtEMDg2OzExMEYgMTE3MyAxMUMxOworRDA4NztEMDg3OzExMEYgMTE3MyAxMUMyO0QwODc7MTEwRiAxMTczIDExQzI7CitEMDg4O0QwODg7MTEwRiAxMTc0O0QwODg7MTEwRiAxMTc0OworRDA4OTtEMDg5OzExMEYgMTE3NCAxMUE4O0QwODk7MTEwRiAxMTc0IDExQTg7CitEMDhBO0QwOEE7MTEwRiAxMTc0IDExQTk7RDA4QTsxMTBGIDExNzQgMTFBOTsKK0QwOEI7RDA4QjsxMTBGIDExNzQgMTFBQTtEMDhCOzExMEYgMTE3NCAxMUFBOworRDA4QztEMDhDOzExMEYgMTE3NCAxMUFCO0QwOEM7MTEwRiAxMTc0IDExQUI7CitEMDhEO0QwOEQ7MTEwRiAxMTc0IDExQUM7RDA4RDsxMTBGIDExNzQgMTFBQzsKK0QwOEU7RDA4RTsxMTBGIDExNzQgMTFBRDtEMDhFOzExMEYgMTE3NCAxMUFEOworRDA4RjtEMDhGOzExMEYgMTE3NCAxMUFFO0QwOEY7MTEwRiAxMTc0IDExQUU7CitEMDkwO0QwOTA7MTEwRiAxMTc0IDExQUY7RDA5MDsxMTBGIDExNzQgMTFBRjsKK0QwOTE7RDA5MTsxMTBGIDExNzQgMTFCMDtEMDkxOzExMEYgMTE3NCAxMUIwOworRDA5MjtEMDkyOzExMEYgMTE3NCAxMUIxO0QwOTI7MTEwRiAxMTc0IDExQjE7CitEMDkzO0QwOTM7MTEwRiAxMTc0IDExQjI7RDA5MzsxMTBGIDExNzQgMTFCMjsKK0QwOTQ7RDA5NDsxMTBGIDExNzQgMTFCMztEMDk0OzExMEYgMTE3NCAxMUIzOworRDA5NTtEMDk1OzExMEYgMTE3NCAxMUI0O0QwOTU7MTEwRiAxMTc0IDExQjQ7CitEMDk2O0QwOTY7MTEwRiAxMTc0IDExQjU7RDA5NjsxMTBGIDExNzQgMTFCNTsKK0QwOTc7RDA5NzsxMTBGIDExNzQgMTFCNjtEMDk3OzExMEYgMTE3NCAxMUI2OworRDA5ODtEMDk4OzExMEYgMTE3NCAxMUI3O0QwOTg7MTEwRiAxMTc0IDExQjc7CitEMDk5O0QwOTk7MTEwRiAxMTc0IDExQjg7RDA5OTsxMTBGIDExNzQgMTFCODsKK0QwOUE7RDA5QTsxMTBGIDExNzQgMTFCOTtEMDlBOzExMEYgMTE3NCAxMUI5OworRDA5QjtEMDlCOzExMEYgMTE3NCAxMUJBO0QwOUI7MTEwRiAxMTc0IDExQkE7CitEMDlDO0QwOUM7MTEwRiAxMTc0IDExQkI7RDA5QzsxMTBGIDExNzQgMTFCQjsKK0QwOUQ7RDA5RDsxMTBGIDExNzQgMTFCQztEMDlEOzExMEYgMTE3NCAxMUJDOworRDA5RTtEMDlFOzExMEYgMTE3NCAxMUJEO0QwOUU7MTEwRiAxMTc0IDExQkQ7CitEMDlGO0QwOUY7MTEwRiAxMTc0IDExQkU7RDA5RjsxMTBGIDExNzQgMTFCRTsKK0QwQTA7RDBBMDsxMTBGIDExNzQgMTFCRjtEMEEwOzExMEYgMTE3NCAxMUJGOworRDBBMTtEMEExOzExMEYgMTE3NCAxMUMwO0QwQTE7MTEwRiAxMTc0IDExQzA7CitEMEEyO0QwQTI7MTEwRiAxMTc0IDExQzE7RDBBMjsxMTBGIDExNzQgMTFDMTsKK0QwQTM7RDBBMzsxMTBGIDExNzQgMTFDMjtEMEEzOzExMEYgMTE3NCAxMUMyOworRDBBNDtEMEE0OzExMEYgMTE3NTtEMEE0OzExMEYgMTE3NTsKK0QwQTU7RDBBNTsxMTBGIDExNzUgMTFBODtEMEE1OzExMEYgMTE3NSAxMUE4OworRDBBNjtEMEE2OzExMEYgMTE3NSAxMUE5O0QwQTY7MTEwRiAxMTc1IDExQTk7CitEMEE3O0QwQTc7MTEwRiAxMTc1IDExQUE7RDBBNzsxMTBGIDExNzUgMTFBQTsKK0QwQTg7RDBBODsxMTBGIDExNzUgMTFBQjtEMEE4OzExMEYgMTE3NSAxMUFCOworRDBBOTtEMEE5OzExMEYgMTE3NSAxMUFDO0QwQTk7MTEwRiAxMTc1IDExQUM7CitEMEFBO0QwQUE7MTEwRiAxMTc1IDExQUQ7RDBBQTsxMTBGIDExNzUgMTFBRDsKK0QwQUI7RDBBQjsxMTBGIDExNzUgMTFBRTtEMEFCOzExMEYgMTE3NSAxMUFFOworRDBBQztEMEFDOzExMEYgMTE3NSAxMUFGO0QwQUM7MTEwRiAxMTc1IDExQUY7CitEMEFEO0QwQUQ7MTEwRiAxMTc1IDExQjA7RDBBRDsxMTBGIDExNzUgMTFCMDsKK0QwQUU7RDBBRTsxMTBGIDExNzUgMTFCMTtEMEFFOzExMEYgMTE3NSAxMUIxOworRDBBRjtEMEFGOzExMEYgMTE3NSAxMUIyO0QwQUY7MTEwRiAxMTc1IDExQjI7CitEMEIwO0QwQjA7MTEwRiAxMTc1IDExQjM7RDBCMDsxMTBGIDExNzUgMTFCMzsKK0QwQjE7RDBCMTsxMTBGIDExNzUgMTFCNDtEMEIxOzExMEYgMTE3NSAxMUI0OworRDBCMjtEMEIyOzExMEYgMTE3NSAxMUI1O0QwQjI7MTEwRiAxMTc1IDExQjU7CitEMEIzO0QwQjM7MTEwRiAxMTc1IDExQjY7RDBCMzsxMTBGIDExNzUgMTFCNjsKK0QwQjQ7RDBCNDsxMTBGIDExNzUgMTFCNztEMEI0OzExMEYgMTE3NSAxMUI3OworRDBCNTtEMEI1OzExMEYgMTE3NSAxMUI4O0QwQjU7MTEwRiAxMTc1IDExQjg7CitEMEI2O0QwQjY7MTEwRiAxMTc1IDExQjk7RDBCNjsxMTBGIDExNzUgMTFCOTsKK0QwQjc7RDBCNzsxMTBGIDExNzUgMTFCQTtEMEI3OzExMEYgMTE3NSAxMUJBOworRDBCODtEMEI4OzExMEYgMTE3NSAxMUJCO0QwQjg7MTEwRiAxMTc1IDExQkI7CitEMEI5O0QwQjk7MTEwRiAxMTc1IDExQkM7RDBCOTsxMTBGIDExNzUgMTFCQzsKK0QwQkE7RDBCQTsxMTBGIDExNzUgMTFCRDtEMEJBOzExMEYgMTE3NSAxMUJEOworRDBCQjtEMEJCOzExMEYgMTE3NSAxMUJFO0QwQkI7MTEwRiAxMTc1IDExQkU7CitEMEJDO0QwQkM7MTEwRiAxMTc1IDExQkY7RDBCQzsxMTBGIDExNzUgMTFCRjsKK0QwQkQ7RDBCRDsxMTBGIDExNzUgMTFDMDtEMEJEOzExMEYgMTE3NSAxMUMwOworRDBCRTtEMEJFOzExMEYgMTE3NSAxMUMxO0QwQkU7MTEwRiAxMTc1IDExQzE7CitEMEJGO0QwQkY7MTEwRiAxMTc1IDExQzI7RDBCRjsxMTBGIDExNzUgMTFDMjsKK0QwQzA7RDBDMDsxMTEwIDExNjE7RDBDMDsxMTEwIDExNjE7CitEMEMxO0QwQzE7MTExMCAxMTYxIDExQTg7RDBDMTsxMTEwIDExNjEgMTFBODsKK0QwQzI7RDBDMjsxMTEwIDExNjEgMTFBOTtEMEMyOzExMTAgMTE2MSAxMUE5OworRDBDMztEMEMzOzExMTAgMTE2MSAxMUFBO0QwQzM7MTExMCAxMTYxIDExQUE7CitEMEM0O0QwQzQ7MTExMCAxMTYxIDExQUI7RDBDNDsxMTEwIDExNjEgMTFBQjsKK0QwQzU7RDBDNTsxMTEwIDExNjEgMTFBQztEMEM1OzExMTAgMTE2MSAxMUFDOworRDBDNjtEMEM2OzExMTAgMTE2MSAxMUFEO0QwQzY7MTExMCAxMTYxIDExQUQ7CitEMEM3O0QwQzc7MTExMCAxMTYxIDExQUU7RDBDNzsxMTEwIDExNjEgMTFBRTsKK0QwQzg7RDBDODsxMTEwIDExNjEgMTFBRjtEMEM4OzExMTAgMTE2MSAxMUFGOworRDBDOTtEMEM5OzExMTAgMTE2MSAxMUIwO0QwQzk7MTExMCAxMTYxIDExQjA7CitEMENBO0QwQ0E7MTExMCAxMTYxIDExQjE7RDBDQTsxMTEwIDExNjEgMTFCMTsKK0QwQ0I7RDBDQjsxMTEwIDExNjEgMTFCMjtEMENCOzExMTAgMTE2MSAxMUIyOworRDBDQztEMENDOzExMTAgMTE2MSAxMUIzO0QwQ0M7MTExMCAxMTYxIDExQjM7CitEMENEO0QwQ0Q7MTExMCAxMTYxIDExQjQ7RDBDRDsxMTEwIDExNjEgMTFCNDsKK0QwQ0U7RDBDRTsxMTEwIDExNjEgMTFCNTtEMENFOzExMTAgMTE2MSAxMUI1OworRDBDRjtEMENGOzExMTAgMTE2MSAxMUI2O0QwQ0Y7MTExMCAxMTYxIDExQjY7CitEMEQwO0QwRDA7MTExMCAxMTYxIDExQjc7RDBEMDsxMTEwIDExNjEgMTFCNzsKK0QwRDE7RDBEMTsxMTEwIDExNjEgMTFCODtEMEQxOzExMTAgMTE2MSAxMUI4OworRDBEMjtEMEQyOzExMTAgMTE2MSAxMUI5O0QwRDI7MTExMCAxMTYxIDExQjk7CitEMEQzO0QwRDM7MTExMCAxMTYxIDExQkE7RDBEMzsxMTEwIDExNjEgMTFCQTsKK0QwRDQ7RDBENDsxMTEwIDExNjEgMTFCQjtEMEQ0OzExMTAgMTE2MSAxMUJCOworRDBENTtEMEQ1OzExMTAgMTE2MSAxMUJDO0QwRDU7MTExMCAxMTYxIDExQkM7CitEMEQ2O0QwRDY7MTExMCAxMTYxIDExQkQ7RDBENjsxMTEwIDExNjEgMTFCRDsKK0QwRDc7RDBENzsxMTEwIDExNjEgMTFCRTtEMEQ3OzExMTAgMTE2MSAxMUJFOworRDBEODtEMEQ4OzExMTAgMTE2MSAxMUJGO0QwRDg7MTExMCAxMTYxIDExQkY7CitEMEQ5O0QwRDk7MTExMCAxMTYxIDExQzA7RDBEOTsxMTEwIDExNjEgMTFDMDsKK0QwREE7RDBEQTsxMTEwIDExNjEgMTFDMTtEMERBOzExMTAgMTE2MSAxMUMxOworRDBEQjtEMERCOzExMTAgMTE2MSAxMUMyO0QwREI7MTExMCAxMTYxIDExQzI7CitEMERDO0QwREM7MTExMCAxMTYyO0QwREM7MTExMCAxMTYyOworRDBERDtEMEREOzExMTAgMTE2MiAxMUE4O0QwREQ7MTExMCAxMTYyIDExQTg7CitEMERFO0QwREU7MTExMCAxMTYyIDExQTk7RDBERTsxMTEwIDExNjIgMTFBOTsKK0QwREY7RDBERjsxMTEwIDExNjIgMTFBQTtEMERGOzExMTAgMTE2MiAxMUFBOworRDBFMDtEMEUwOzExMTAgMTE2MiAxMUFCO0QwRTA7MTExMCAxMTYyIDExQUI7CitEMEUxO0QwRTE7MTExMCAxMTYyIDExQUM7RDBFMTsxMTEwIDExNjIgMTFBQzsKK0QwRTI7RDBFMjsxMTEwIDExNjIgMTFBRDtEMEUyOzExMTAgMTE2MiAxMUFEOworRDBFMztEMEUzOzExMTAgMTE2MiAxMUFFO0QwRTM7MTExMCAxMTYyIDExQUU7CitEMEU0O0QwRTQ7MTExMCAxMTYyIDExQUY7RDBFNDsxMTEwIDExNjIgMTFBRjsKK0QwRTU7RDBFNTsxMTEwIDExNjIgMTFCMDtEMEU1OzExMTAgMTE2MiAxMUIwOworRDBFNjtEMEU2OzExMTAgMTE2MiAxMUIxO0QwRTY7MTExMCAxMTYyIDExQjE7CitEMEU3O0QwRTc7MTExMCAxMTYyIDExQjI7RDBFNzsxMTEwIDExNjIgMTFCMjsKK0QwRTg7RDBFODsxMTEwIDExNjIgMTFCMztEMEU4OzExMTAgMTE2MiAxMUIzOworRDBFOTtEMEU5OzExMTAgMTE2MiAxMUI0O0QwRTk7MTExMCAxMTYyIDExQjQ7CitEMEVBO0QwRUE7MTExMCAxMTYyIDExQjU7RDBFQTsxMTEwIDExNjIgMTFCNTsKK0QwRUI7RDBFQjsxMTEwIDExNjIgMTFCNjtEMEVCOzExMTAgMTE2MiAxMUI2OworRDBFQztEMEVDOzExMTAgMTE2MiAxMUI3O0QwRUM7MTExMCAxMTYyIDExQjc7CitEMEVEO0QwRUQ7MTExMCAxMTYyIDExQjg7RDBFRDsxMTEwIDExNjIgMTFCODsKK0QwRUU7RDBFRTsxMTEwIDExNjIgMTFCOTtEMEVFOzExMTAgMTE2MiAxMUI5OworRDBFRjtEMEVGOzExMTAgMTE2MiAxMUJBO0QwRUY7MTExMCAxMTYyIDExQkE7CitEMEYwO0QwRjA7MTExMCAxMTYyIDExQkI7RDBGMDsxMTEwIDExNjIgMTFCQjsKK0QwRjE7RDBGMTsxMTEwIDExNjIgMTFCQztEMEYxOzExMTAgMTE2MiAxMUJDOworRDBGMjtEMEYyOzExMTAgMTE2MiAxMUJEO0QwRjI7MTExMCAxMTYyIDExQkQ7CitEMEYzO0QwRjM7MTExMCAxMTYyIDExQkU7RDBGMzsxMTEwIDExNjIgMTFCRTsKK0QwRjQ7RDBGNDsxMTEwIDExNjIgMTFCRjtEMEY0OzExMTAgMTE2MiAxMUJGOworRDBGNTtEMEY1OzExMTAgMTE2MiAxMUMwO0QwRjU7MTExMCAxMTYyIDExQzA7CitEMEY2O0QwRjY7MTExMCAxMTYyIDExQzE7RDBGNjsxMTEwIDExNjIgMTFDMTsKK0QwRjc7RDBGNzsxMTEwIDExNjIgMTFDMjtEMEY3OzExMTAgMTE2MiAxMUMyOworRDBGODtEMEY4OzExMTAgMTE2MztEMEY4OzExMTAgMTE2MzsKK0QwRjk7RDBGOTsxMTEwIDExNjMgMTFBODtEMEY5OzExMTAgMTE2MyAxMUE4OworRDBGQTtEMEZBOzExMTAgMTE2MyAxMUE5O0QwRkE7MTExMCAxMTYzIDExQTk7CitEMEZCO0QwRkI7MTExMCAxMTYzIDExQUE7RDBGQjsxMTEwIDExNjMgMTFBQTsKK0QwRkM7RDBGQzsxMTEwIDExNjMgMTFBQjtEMEZDOzExMTAgMTE2MyAxMUFCOworRDBGRDtEMEZEOzExMTAgMTE2MyAxMUFDO0QwRkQ7MTExMCAxMTYzIDExQUM7CitEMEZFO0QwRkU7MTExMCAxMTYzIDExQUQ7RDBGRTsxMTEwIDExNjMgMTFBRDsKK0QwRkY7RDBGRjsxMTEwIDExNjMgMTFBRTtEMEZGOzExMTAgMTE2MyAxMUFFOworRDEwMDtEMTAwOzExMTAgMTE2MyAxMUFGO0QxMDA7MTExMCAxMTYzIDExQUY7CitEMTAxO0QxMDE7MTExMCAxMTYzIDExQjA7RDEwMTsxMTEwIDExNjMgMTFCMDsKK0QxMDI7RDEwMjsxMTEwIDExNjMgMTFCMTtEMTAyOzExMTAgMTE2MyAxMUIxOworRDEwMztEMTAzOzExMTAgMTE2MyAxMUIyO0QxMDM7MTExMCAxMTYzIDExQjI7CitEMTA0O0QxMDQ7MTExMCAxMTYzIDExQjM7RDEwNDsxMTEwIDExNjMgMTFCMzsKK0QxMDU7RDEwNTsxMTEwIDExNjMgMTFCNDtEMTA1OzExMTAgMTE2MyAxMUI0OworRDEwNjtEMTA2OzExMTAgMTE2MyAxMUI1O0QxMDY7MTExMCAxMTYzIDExQjU7CitEMTA3O0QxMDc7MTExMCAxMTYzIDExQjY7RDEwNzsxMTEwIDExNjMgMTFCNjsKK0QxMDg7RDEwODsxMTEwIDExNjMgMTFCNztEMTA4OzExMTAgMTE2MyAxMUI3OworRDEwOTtEMTA5OzExMTAgMTE2MyAxMUI4O0QxMDk7MTExMCAxMTYzIDExQjg7CitEMTBBO0QxMEE7MTExMCAxMTYzIDExQjk7RDEwQTsxMTEwIDExNjMgMTFCOTsKK0QxMEI7RDEwQjsxMTEwIDExNjMgMTFCQTtEMTBCOzExMTAgMTE2MyAxMUJBOworRDEwQztEMTBDOzExMTAgMTE2MyAxMUJCO0QxMEM7MTExMCAxMTYzIDExQkI7CitEMTBEO0QxMEQ7MTExMCAxMTYzIDExQkM7RDEwRDsxMTEwIDExNjMgMTFCQzsKK0QxMEU7RDEwRTsxMTEwIDExNjMgMTFCRDtEMTBFOzExMTAgMTE2MyAxMUJEOworRDEwRjtEMTBGOzExMTAgMTE2MyAxMUJFO0QxMEY7MTExMCAxMTYzIDExQkU7CitEMTEwO0QxMTA7MTExMCAxMTYzIDExQkY7RDExMDsxMTEwIDExNjMgMTFCRjsKK0QxMTE7RDExMTsxMTEwIDExNjMgMTFDMDtEMTExOzExMTAgMTE2MyAxMUMwOworRDExMjtEMTEyOzExMTAgMTE2MyAxMUMxO0QxMTI7MTExMCAxMTYzIDExQzE7CitEMTEzO0QxMTM7MTExMCAxMTYzIDExQzI7RDExMzsxMTEwIDExNjMgMTFDMjsKK0QxMTQ7RDExNDsxMTEwIDExNjQ7RDExNDsxMTEwIDExNjQ7CitEMTE1O0QxMTU7MTExMCAxMTY0IDExQTg7RDExNTsxMTEwIDExNjQgMTFBODsKK0QxMTY7RDExNjsxMTEwIDExNjQgMTFBOTtEMTE2OzExMTAgMTE2NCAxMUE5OworRDExNztEMTE3OzExMTAgMTE2NCAxMUFBO0QxMTc7MTExMCAxMTY0IDExQUE7CitEMTE4O0QxMTg7MTExMCAxMTY0IDExQUI7RDExODsxMTEwIDExNjQgMTFBQjsKK0QxMTk7RDExOTsxMTEwIDExNjQgMTFBQztEMTE5OzExMTAgMTE2NCAxMUFDOworRDExQTtEMTFBOzExMTAgMTE2NCAxMUFEO0QxMUE7MTExMCAxMTY0IDExQUQ7CitEMTFCO0QxMUI7MTExMCAxMTY0IDExQUU7RDExQjsxMTEwIDExNjQgMTFBRTsKK0QxMUM7RDExQzsxMTEwIDExNjQgMTFBRjtEMTFDOzExMTAgMTE2NCAxMUFGOworRDExRDtEMTFEOzExMTAgMTE2NCAxMUIwO0QxMUQ7MTExMCAxMTY0IDExQjA7CitEMTFFO0QxMUU7MTExMCAxMTY0IDExQjE7RDExRTsxMTEwIDExNjQgMTFCMTsKK0QxMUY7RDExRjsxMTEwIDExNjQgMTFCMjtEMTFGOzExMTAgMTE2NCAxMUIyOworRDEyMDtEMTIwOzExMTAgMTE2NCAxMUIzO0QxMjA7MTExMCAxMTY0IDExQjM7CitEMTIxO0QxMjE7MTExMCAxMTY0IDExQjQ7RDEyMTsxMTEwIDExNjQgMTFCNDsKK0QxMjI7RDEyMjsxMTEwIDExNjQgMTFCNTtEMTIyOzExMTAgMTE2NCAxMUI1OworRDEyMztEMTIzOzExMTAgMTE2NCAxMUI2O0QxMjM7MTExMCAxMTY0IDExQjY7CitEMTI0O0QxMjQ7MTExMCAxMTY0IDExQjc7RDEyNDsxMTEwIDExNjQgMTFCNzsKK0QxMjU7RDEyNTsxMTEwIDExNjQgMTFCODtEMTI1OzExMTAgMTE2NCAxMUI4OworRDEyNjtEMTI2OzExMTAgMTE2NCAxMUI5O0QxMjY7MTExMCAxMTY0IDExQjk7CitEMTI3O0QxMjc7MTExMCAxMTY0IDExQkE7RDEyNzsxMTEwIDExNjQgMTFCQTsKK0QxMjg7RDEyODsxMTEwIDExNjQgMTFCQjtEMTI4OzExMTAgMTE2NCAxMUJCOworRDEyOTtEMTI5OzExMTAgMTE2NCAxMUJDO0QxMjk7MTExMCAxMTY0IDExQkM7CitEMTJBO0QxMkE7MTExMCAxMTY0IDExQkQ7RDEyQTsxMTEwIDExNjQgMTFCRDsKK0QxMkI7RDEyQjsxMTEwIDExNjQgMTFCRTtEMTJCOzExMTAgMTE2NCAxMUJFOworRDEyQztEMTJDOzExMTAgMTE2NCAxMUJGO0QxMkM7MTExMCAxMTY0IDExQkY7CitEMTJEO0QxMkQ7MTExMCAxMTY0IDExQzA7RDEyRDsxMTEwIDExNjQgMTFDMDsKK0QxMkU7RDEyRTsxMTEwIDExNjQgMTFDMTtEMTJFOzExMTAgMTE2NCAxMUMxOworRDEyRjtEMTJGOzExMTAgMTE2NCAxMUMyO0QxMkY7MTExMCAxMTY0IDExQzI7CitEMTMwO0QxMzA7MTExMCAxMTY1O0QxMzA7MTExMCAxMTY1OworRDEzMTtEMTMxOzExMTAgMTE2NSAxMUE4O0QxMzE7MTExMCAxMTY1IDExQTg7CitEMTMyO0QxMzI7MTExMCAxMTY1IDExQTk7RDEzMjsxMTEwIDExNjUgMTFBOTsKK0QxMzM7RDEzMzsxMTEwIDExNjUgMTFBQTtEMTMzOzExMTAgMTE2NSAxMUFBOworRDEzNDtEMTM0OzExMTAgMTE2NSAxMUFCO0QxMzQ7MTExMCAxMTY1IDExQUI7CitEMTM1O0QxMzU7MTExMCAxMTY1IDExQUM7RDEzNTsxMTEwIDExNjUgMTFBQzsKK0QxMzY7RDEzNjsxMTEwIDExNjUgMTFBRDtEMTM2OzExMTAgMTE2NSAxMUFEOworRDEzNztEMTM3OzExMTAgMTE2NSAxMUFFO0QxMzc7MTExMCAxMTY1IDExQUU7CitEMTM4O0QxMzg7MTExMCAxMTY1IDExQUY7RDEzODsxMTEwIDExNjUgMTFBRjsKK0QxMzk7RDEzOTsxMTEwIDExNjUgMTFCMDtEMTM5OzExMTAgMTE2NSAxMUIwOworRDEzQTtEMTNBOzExMTAgMTE2NSAxMUIxO0QxM0E7MTExMCAxMTY1IDExQjE7CitEMTNCO0QxM0I7MTExMCAxMTY1IDExQjI7RDEzQjsxMTEwIDExNjUgMTFCMjsKK0QxM0M7RDEzQzsxMTEwIDExNjUgMTFCMztEMTNDOzExMTAgMTE2NSAxMUIzOworRDEzRDtEMTNEOzExMTAgMTE2NSAxMUI0O0QxM0Q7MTExMCAxMTY1IDExQjQ7CitEMTNFO0QxM0U7MTExMCAxMTY1IDExQjU7RDEzRTsxMTEwIDExNjUgMTFCNTsKK0QxM0Y7RDEzRjsxMTEwIDExNjUgMTFCNjtEMTNGOzExMTAgMTE2NSAxMUI2OworRDE0MDtEMTQwOzExMTAgMTE2NSAxMUI3O0QxNDA7MTExMCAxMTY1IDExQjc7CitEMTQxO0QxNDE7MTExMCAxMTY1IDExQjg7RDE0MTsxMTEwIDExNjUgMTFCODsKK0QxNDI7RDE0MjsxMTEwIDExNjUgMTFCOTtEMTQyOzExMTAgMTE2NSAxMUI5OworRDE0MztEMTQzOzExMTAgMTE2NSAxMUJBO0QxNDM7MTExMCAxMTY1IDExQkE7CitEMTQ0O0QxNDQ7MTExMCAxMTY1IDExQkI7RDE0NDsxMTEwIDExNjUgMTFCQjsKK0QxNDU7RDE0NTsxMTEwIDExNjUgMTFCQztEMTQ1OzExMTAgMTE2NSAxMUJDOworRDE0NjtEMTQ2OzExMTAgMTE2NSAxMUJEO0QxNDY7MTExMCAxMTY1IDExQkQ7CitEMTQ3O0QxNDc7MTExMCAxMTY1IDExQkU7RDE0NzsxMTEwIDExNjUgMTFCRTsKK0QxNDg7RDE0ODsxMTEwIDExNjUgMTFCRjtEMTQ4OzExMTAgMTE2NSAxMUJGOworRDE0OTtEMTQ5OzExMTAgMTE2NSAxMUMwO0QxNDk7MTExMCAxMTY1IDExQzA7CitEMTRBO0QxNEE7MTExMCAxMTY1IDExQzE7RDE0QTsxMTEwIDExNjUgMTFDMTsKK0QxNEI7RDE0QjsxMTEwIDExNjUgMTFDMjtEMTRCOzExMTAgMTE2NSAxMUMyOworRDE0QztEMTRDOzExMTAgMTE2NjtEMTRDOzExMTAgMTE2NjsKK0QxNEQ7RDE0RDsxMTEwIDExNjYgMTFBODtEMTREOzExMTAgMTE2NiAxMUE4OworRDE0RTtEMTRFOzExMTAgMTE2NiAxMUE5O0QxNEU7MTExMCAxMTY2IDExQTk7CitEMTRGO0QxNEY7MTExMCAxMTY2IDExQUE7RDE0RjsxMTEwIDExNjYgMTFBQTsKK0QxNTA7RDE1MDsxMTEwIDExNjYgMTFBQjtEMTUwOzExMTAgMTE2NiAxMUFCOworRDE1MTtEMTUxOzExMTAgMTE2NiAxMUFDO0QxNTE7MTExMCAxMTY2IDExQUM7CitEMTUyO0QxNTI7MTExMCAxMTY2IDExQUQ7RDE1MjsxMTEwIDExNjYgMTFBRDsKK0QxNTM7RDE1MzsxMTEwIDExNjYgMTFBRTtEMTUzOzExMTAgMTE2NiAxMUFFOworRDE1NDtEMTU0OzExMTAgMTE2NiAxMUFGO0QxNTQ7MTExMCAxMTY2IDExQUY7CitEMTU1O0QxNTU7MTExMCAxMTY2IDExQjA7RDE1NTsxMTEwIDExNjYgMTFCMDsKK0QxNTY7RDE1NjsxMTEwIDExNjYgMTFCMTtEMTU2OzExMTAgMTE2NiAxMUIxOworRDE1NztEMTU3OzExMTAgMTE2NiAxMUIyO0QxNTc7MTExMCAxMTY2IDExQjI7CitEMTU4O0QxNTg7MTExMCAxMTY2IDExQjM7RDE1ODsxMTEwIDExNjYgMTFCMzsKK0QxNTk7RDE1OTsxMTEwIDExNjYgMTFCNDtEMTU5OzExMTAgMTE2NiAxMUI0OworRDE1QTtEMTVBOzExMTAgMTE2NiAxMUI1O0QxNUE7MTExMCAxMTY2IDExQjU7CitEMTVCO0QxNUI7MTExMCAxMTY2IDExQjY7RDE1QjsxMTEwIDExNjYgMTFCNjsKK0QxNUM7RDE1QzsxMTEwIDExNjYgMTFCNztEMTVDOzExMTAgMTE2NiAxMUI3OworRDE1RDtEMTVEOzExMTAgMTE2NiAxMUI4O0QxNUQ7MTExMCAxMTY2IDExQjg7CitEMTVFO0QxNUU7MTExMCAxMTY2IDExQjk7RDE1RTsxMTEwIDExNjYgMTFCOTsKK0QxNUY7RDE1RjsxMTEwIDExNjYgMTFCQTtEMTVGOzExMTAgMTE2NiAxMUJBOworRDE2MDtEMTYwOzExMTAgMTE2NiAxMUJCO0QxNjA7MTExMCAxMTY2IDExQkI7CitEMTYxO0QxNjE7MTExMCAxMTY2IDExQkM7RDE2MTsxMTEwIDExNjYgMTFCQzsKK0QxNjI7RDE2MjsxMTEwIDExNjYgMTFCRDtEMTYyOzExMTAgMTE2NiAxMUJEOworRDE2MztEMTYzOzExMTAgMTE2NiAxMUJFO0QxNjM7MTExMCAxMTY2IDExQkU7CitEMTY0O0QxNjQ7MTExMCAxMTY2IDExQkY7RDE2NDsxMTEwIDExNjYgMTFCRjsKK0QxNjU7RDE2NTsxMTEwIDExNjYgMTFDMDtEMTY1OzExMTAgMTE2NiAxMUMwOworRDE2NjtEMTY2OzExMTAgMTE2NiAxMUMxO0QxNjY7MTExMCAxMTY2IDExQzE7CitEMTY3O0QxNjc7MTExMCAxMTY2IDExQzI7RDE2NzsxMTEwIDExNjYgMTFDMjsKK0QxNjg7RDE2ODsxMTEwIDExNjc7RDE2ODsxMTEwIDExNjc7CitEMTY5O0QxNjk7MTExMCAxMTY3IDExQTg7RDE2OTsxMTEwIDExNjcgMTFBODsKK0QxNkE7RDE2QTsxMTEwIDExNjcgMTFBOTtEMTZBOzExMTAgMTE2NyAxMUE5OworRDE2QjtEMTZCOzExMTAgMTE2NyAxMUFBO0QxNkI7MTExMCAxMTY3IDExQUE7CitEMTZDO0QxNkM7MTExMCAxMTY3IDExQUI7RDE2QzsxMTEwIDExNjcgMTFBQjsKK0QxNkQ7RDE2RDsxMTEwIDExNjcgMTFBQztEMTZEOzExMTAgMTE2NyAxMUFDOworRDE2RTtEMTZFOzExMTAgMTE2NyAxMUFEO0QxNkU7MTExMCAxMTY3IDExQUQ7CitEMTZGO0QxNkY7MTExMCAxMTY3IDExQUU7RDE2RjsxMTEwIDExNjcgMTFBRTsKK0QxNzA7RDE3MDsxMTEwIDExNjcgMTFBRjtEMTcwOzExMTAgMTE2NyAxMUFGOworRDE3MTtEMTcxOzExMTAgMTE2NyAxMUIwO0QxNzE7MTExMCAxMTY3IDExQjA7CitEMTcyO0QxNzI7MTExMCAxMTY3IDExQjE7RDE3MjsxMTEwIDExNjcgMTFCMTsKK0QxNzM7RDE3MzsxMTEwIDExNjcgMTFCMjtEMTczOzExMTAgMTE2NyAxMUIyOworRDE3NDtEMTc0OzExMTAgMTE2NyAxMUIzO0QxNzQ7MTExMCAxMTY3IDExQjM7CitEMTc1O0QxNzU7MTExMCAxMTY3IDExQjQ7RDE3NTsxMTEwIDExNjcgMTFCNDsKK0QxNzY7RDE3NjsxMTEwIDExNjcgMTFCNTtEMTc2OzExMTAgMTE2NyAxMUI1OworRDE3NztEMTc3OzExMTAgMTE2NyAxMUI2O0QxNzc7MTExMCAxMTY3IDExQjY7CitEMTc4O0QxNzg7MTExMCAxMTY3IDExQjc7RDE3ODsxMTEwIDExNjcgMTFCNzsKK0QxNzk7RDE3OTsxMTEwIDExNjcgMTFCODtEMTc5OzExMTAgMTE2NyAxMUI4OworRDE3QTtEMTdBOzExMTAgMTE2NyAxMUI5O0QxN0E7MTExMCAxMTY3IDExQjk7CitEMTdCO0QxN0I7MTExMCAxMTY3IDExQkE7RDE3QjsxMTEwIDExNjcgMTFCQTsKK0QxN0M7RDE3QzsxMTEwIDExNjcgMTFCQjtEMTdDOzExMTAgMTE2NyAxMUJCOworRDE3RDtEMTdEOzExMTAgMTE2NyAxMUJDO0QxN0Q7MTExMCAxMTY3IDExQkM7CitEMTdFO0QxN0U7MTExMCAxMTY3IDExQkQ7RDE3RTsxMTEwIDExNjcgMTFCRDsKK0QxN0Y7RDE3RjsxMTEwIDExNjcgMTFCRTtEMTdGOzExMTAgMTE2NyAxMUJFOworRDE4MDtEMTgwOzExMTAgMTE2NyAxMUJGO0QxODA7MTExMCAxMTY3IDExQkY7CitEMTgxO0QxODE7MTExMCAxMTY3IDExQzA7RDE4MTsxMTEwIDExNjcgMTFDMDsKK0QxODI7RDE4MjsxMTEwIDExNjcgMTFDMTtEMTgyOzExMTAgMTE2NyAxMUMxOworRDE4MztEMTgzOzExMTAgMTE2NyAxMUMyO0QxODM7MTExMCAxMTY3IDExQzI7CitEMTg0O0QxODQ7MTExMCAxMTY4O0QxODQ7MTExMCAxMTY4OworRDE4NTtEMTg1OzExMTAgMTE2OCAxMUE4O0QxODU7MTExMCAxMTY4IDExQTg7CitEMTg2O0QxODY7MTExMCAxMTY4IDExQTk7RDE4NjsxMTEwIDExNjggMTFBOTsKK0QxODc7RDE4NzsxMTEwIDExNjggMTFBQTtEMTg3OzExMTAgMTE2OCAxMUFBOworRDE4ODtEMTg4OzExMTAgMTE2OCAxMUFCO0QxODg7MTExMCAxMTY4IDExQUI7CitEMTg5O0QxODk7MTExMCAxMTY4IDExQUM7RDE4OTsxMTEwIDExNjggMTFBQzsKK0QxOEE7RDE4QTsxMTEwIDExNjggMTFBRDtEMThBOzExMTAgMTE2OCAxMUFEOworRDE4QjtEMThCOzExMTAgMTE2OCAxMUFFO0QxOEI7MTExMCAxMTY4IDExQUU7CitEMThDO0QxOEM7MTExMCAxMTY4IDExQUY7RDE4QzsxMTEwIDExNjggMTFBRjsKK0QxOEQ7RDE4RDsxMTEwIDExNjggMTFCMDtEMThEOzExMTAgMTE2OCAxMUIwOworRDE4RTtEMThFOzExMTAgMTE2OCAxMUIxO0QxOEU7MTExMCAxMTY4IDExQjE7CitEMThGO0QxOEY7MTExMCAxMTY4IDExQjI7RDE4RjsxMTEwIDExNjggMTFCMjsKK0QxOTA7RDE5MDsxMTEwIDExNjggMTFCMztEMTkwOzExMTAgMTE2OCAxMUIzOworRDE5MTtEMTkxOzExMTAgMTE2OCAxMUI0O0QxOTE7MTExMCAxMTY4IDExQjQ7CitEMTkyO0QxOTI7MTExMCAxMTY4IDExQjU7RDE5MjsxMTEwIDExNjggMTFCNTsKK0QxOTM7RDE5MzsxMTEwIDExNjggMTFCNjtEMTkzOzExMTAgMTE2OCAxMUI2OworRDE5NDtEMTk0OzExMTAgMTE2OCAxMUI3O0QxOTQ7MTExMCAxMTY4IDExQjc7CitEMTk1O0QxOTU7MTExMCAxMTY4IDExQjg7RDE5NTsxMTEwIDExNjggMTFCODsKK0QxOTY7RDE5NjsxMTEwIDExNjggMTFCOTtEMTk2OzExMTAgMTE2OCAxMUI5OworRDE5NztEMTk3OzExMTAgMTE2OCAxMUJBO0QxOTc7MTExMCAxMTY4IDExQkE7CitEMTk4O0QxOTg7MTExMCAxMTY4IDExQkI7RDE5ODsxMTEwIDExNjggMTFCQjsKK0QxOTk7RDE5OTsxMTEwIDExNjggMTFCQztEMTk5OzExMTAgMTE2OCAxMUJDOworRDE5QTtEMTlBOzExMTAgMTE2OCAxMUJEO0QxOUE7MTExMCAxMTY4IDExQkQ7CitEMTlCO0QxOUI7MTExMCAxMTY4IDExQkU7RDE5QjsxMTEwIDExNjggMTFCRTsKK0QxOUM7RDE5QzsxMTEwIDExNjggMTFCRjtEMTlDOzExMTAgMTE2OCAxMUJGOworRDE5RDtEMTlEOzExMTAgMTE2OCAxMUMwO0QxOUQ7MTExMCAxMTY4IDExQzA7CitEMTlFO0QxOUU7MTExMCAxMTY4IDExQzE7RDE5RTsxMTEwIDExNjggMTFDMTsKK0QxOUY7RDE5RjsxMTEwIDExNjggMTFDMjtEMTlGOzExMTAgMTE2OCAxMUMyOworRDFBMDtEMUEwOzExMTAgMTE2OTtEMUEwOzExMTAgMTE2OTsKK0QxQTE7RDFBMTsxMTEwIDExNjkgMTFBODtEMUExOzExMTAgMTE2OSAxMUE4OworRDFBMjtEMUEyOzExMTAgMTE2OSAxMUE5O0QxQTI7MTExMCAxMTY5IDExQTk7CitEMUEzO0QxQTM7MTExMCAxMTY5IDExQUE7RDFBMzsxMTEwIDExNjkgMTFBQTsKK0QxQTQ7RDFBNDsxMTEwIDExNjkgMTFBQjtEMUE0OzExMTAgMTE2OSAxMUFCOworRDFBNTtEMUE1OzExMTAgMTE2OSAxMUFDO0QxQTU7MTExMCAxMTY5IDExQUM7CitEMUE2O0QxQTY7MTExMCAxMTY5IDExQUQ7RDFBNjsxMTEwIDExNjkgMTFBRDsKK0QxQTc7RDFBNzsxMTEwIDExNjkgMTFBRTtEMUE3OzExMTAgMTE2OSAxMUFFOworRDFBODtEMUE4OzExMTAgMTE2OSAxMUFGO0QxQTg7MTExMCAxMTY5IDExQUY7CitEMUE5O0QxQTk7MTExMCAxMTY5IDExQjA7RDFBOTsxMTEwIDExNjkgMTFCMDsKK0QxQUE7RDFBQTsxMTEwIDExNjkgMTFCMTtEMUFBOzExMTAgMTE2OSAxMUIxOworRDFBQjtEMUFCOzExMTAgMTE2OSAxMUIyO0QxQUI7MTExMCAxMTY5IDExQjI7CitEMUFDO0QxQUM7MTExMCAxMTY5IDExQjM7RDFBQzsxMTEwIDExNjkgMTFCMzsKK0QxQUQ7RDFBRDsxMTEwIDExNjkgMTFCNDtEMUFEOzExMTAgMTE2OSAxMUI0OworRDFBRTtEMUFFOzExMTAgMTE2OSAxMUI1O0QxQUU7MTExMCAxMTY5IDExQjU7CitEMUFGO0QxQUY7MTExMCAxMTY5IDExQjY7RDFBRjsxMTEwIDExNjkgMTFCNjsKK0QxQjA7RDFCMDsxMTEwIDExNjkgMTFCNztEMUIwOzExMTAgMTE2OSAxMUI3OworRDFCMTtEMUIxOzExMTAgMTE2OSAxMUI4O0QxQjE7MTExMCAxMTY5IDExQjg7CitEMUIyO0QxQjI7MTExMCAxMTY5IDExQjk7RDFCMjsxMTEwIDExNjkgMTFCOTsKK0QxQjM7RDFCMzsxMTEwIDExNjkgMTFCQTtEMUIzOzExMTAgMTE2OSAxMUJBOworRDFCNDtEMUI0OzExMTAgMTE2OSAxMUJCO0QxQjQ7MTExMCAxMTY5IDExQkI7CitEMUI1O0QxQjU7MTExMCAxMTY5IDExQkM7RDFCNTsxMTEwIDExNjkgMTFCQzsKK0QxQjY7RDFCNjsxMTEwIDExNjkgMTFCRDtEMUI2OzExMTAgMTE2OSAxMUJEOworRDFCNztEMUI3OzExMTAgMTE2OSAxMUJFO0QxQjc7MTExMCAxMTY5IDExQkU7CitEMUI4O0QxQjg7MTExMCAxMTY5IDExQkY7RDFCODsxMTEwIDExNjkgMTFCRjsKK0QxQjk7RDFCOTsxMTEwIDExNjkgMTFDMDtEMUI5OzExMTAgMTE2OSAxMUMwOworRDFCQTtEMUJBOzExMTAgMTE2OSAxMUMxO0QxQkE7MTExMCAxMTY5IDExQzE7CitEMUJCO0QxQkI7MTExMCAxMTY5IDExQzI7RDFCQjsxMTEwIDExNjkgMTFDMjsKK0QxQkM7RDFCQzsxMTEwIDExNkE7RDFCQzsxMTEwIDExNkE7CitEMUJEO0QxQkQ7MTExMCAxMTZBIDExQTg7RDFCRDsxMTEwIDExNkEgMTFBODsKK0QxQkU7RDFCRTsxMTEwIDExNkEgMTFBOTtEMUJFOzExMTAgMTE2QSAxMUE5OworRDFCRjtEMUJGOzExMTAgMTE2QSAxMUFBO0QxQkY7MTExMCAxMTZBIDExQUE7CitEMUMwO0QxQzA7MTExMCAxMTZBIDExQUI7RDFDMDsxMTEwIDExNkEgMTFBQjsKK0QxQzE7RDFDMTsxMTEwIDExNkEgMTFBQztEMUMxOzExMTAgMTE2QSAxMUFDOworRDFDMjtEMUMyOzExMTAgMTE2QSAxMUFEO0QxQzI7MTExMCAxMTZBIDExQUQ7CitEMUMzO0QxQzM7MTExMCAxMTZBIDExQUU7RDFDMzsxMTEwIDExNkEgMTFBRTsKK0QxQzQ7RDFDNDsxMTEwIDExNkEgMTFBRjtEMUM0OzExMTAgMTE2QSAxMUFGOworRDFDNTtEMUM1OzExMTAgMTE2QSAxMUIwO0QxQzU7MTExMCAxMTZBIDExQjA7CitEMUM2O0QxQzY7MTExMCAxMTZBIDExQjE7RDFDNjsxMTEwIDExNkEgMTFCMTsKK0QxQzc7RDFDNzsxMTEwIDExNkEgMTFCMjtEMUM3OzExMTAgMTE2QSAxMUIyOworRDFDODtEMUM4OzExMTAgMTE2QSAxMUIzO0QxQzg7MTExMCAxMTZBIDExQjM7CitEMUM5O0QxQzk7MTExMCAxMTZBIDExQjQ7RDFDOTsxMTEwIDExNkEgMTFCNDsKK0QxQ0E7RDFDQTsxMTEwIDExNkEgMTFCNTtEMUNBOzExMTAgMTE2QSAxMUI1OworRDFDQjtEMUNCOzExMTAgMTE2QSAxMUI2O0QxQ0I7MTExMCAxMTZBIDExQjY7CitEMUNDO0QxQ0M7MTExMCAxMTZBIDExQjc7RDFDQzsxMTEwIDExNkEgMTFCNzsKK0QxQ0Q7RDFDRDsxMTEwIDExNkEgMTFCODtEMUNEOzExMTAgMTE2QSAxMUI4OworRDFDRTtEMUNFOzExMTAgMTE2QSAxMUI5O0QxQ0U7MTExMCAxMTZBIDExQjk7CitEMUNGO0QxQ0Y7MTExMCAxMTZBIDExQkE7RDFDRjsxMTEwIDExNkEgMTFCQTsKK0QxRDA7RDFEMDsxMTEwIDExNkEgMTFCQjtEMUQwOzExMTAgMTE2QSAxMUJCOworRDFEMTtEMUQxOzExMTAgMTE2QSAxMUJDO0QxRDE7MTExMCAxMTZBIDExQkM7CitEMUQyO0QxRDI7MTExMCAxMTZBIDExQkQ7RDFEMjsxMTEwIDExNkEgMTFCRDsKK0QxRDM7RDFEMzsxMTEwIDExNkEgMTFCRTtEMUQzOzExMTAgMTE2QSAxMUJFOworRDFENDtEMUQ0OzExMTAgMTE2QSAxMUJGO0QxRDQ7MTExMCAxMTZBIDExQkY7CitEMUQ1O0QxRDU7MTExMCAxMTZBIDExQzA7RDFENTsxMTEwIDExNkEgMTFDMDsKK0QxRDY7RDFENjsxMTEwIDExNkEgMTFDMTtEMUQ2OzExMTAgMTE2QSAxMUMxOworRDFENztEMUQ3OzExMTAgMTE2QSAxMUMyO0QxRDc7MTExMCAxMTZBIDExQzI7CitEMUQ4O0QxRDg7MTExMCAxMTZCO0QxRDg7MTExMCAxMTZCOworRDFEOTtEMUQ5OzExMTAgMTE2QiAxMUE4O0QxRDk7MTExMCAxMTZCIDExQTg7CitEMURBO0QxREE7MTExMCAxMTZCIDExQTk7RDFEQTsxMTEwIDExNkIgMTFBOTsKK0QxREI7RDFEQjsxMTEwIDExNkIgMTFBQTtEMURCOzExMTAgMTE2QiAxMUFBOworRDFEQztEMURDOzExMTAgMTE2QiAxMUFCO0QxREM7MTExMCAxMTZCIDExQUI7CitEMUREO0QxREQ7MTExMCAxMTZCIDExQUM7RDFERDsxMTEwIDExNkIgMTFBQzsKK0QxREU7RDFERTsxMTEwIDExNkIgMTFBRDtEMURFOzExMTAgMTE2QiAxMUFEOworRDFERjtEMURGOzExMTAgMTE2QiAxMUFFO0QxREY7MTExMCAxMTZCIDExQUU7CitEMUUwO0QxRTA7MTExMCAxMTZCIDExQUY7RDFFMDsxMTEwIDExNkIgMTFBRjsKK0QxRTE7RDFFMTsxMTEwIDExNkIgMTFCMDtEMUUxOzExMTAgMTE2QiAxMUIwOworRDFFMjtEMUUyOzExMTAgMTE2QiAxMUIxO0QxRTI7MTExMCAxMTZCIDExQjE7CitEMUUzO0QxRTM7MTExMCAxMTZCIDExQjI7RDFFMzsxMTEwIDExNkIgMTFCMjsKK0QxRTQ7RDFFNDsxMTEwIDExNkIgMTFCMztEMUU0OzExMTAgMTE2QiAxMUIzOworRDFFNTtEMUU1OzExMTAgMTE2QiAxMUI0O0QxRTU7MTExMCAxMTZCIDExQjQ7CitEMUU2O0QxRTY7MTExMCAxMTZCIDExQjU7RDFFNjsxMTEwIDExNkIgMTFCNTsKK0QxRTc7RDFFNzsxMTEwIDExNkIgMTFCNjtEMUU3OzExMTAgMTE2QiAxMUI2OworRDFFODtEMUU4OzExMTAgMTE2QiAxMUI3O0QxRTg7MTExMCAxMTZCIDExQjc7CitEMUU5O0QxRTk7MTExMCAxMTZCIDExQjg7RDFFOTsxMTEwIDExNkIgMTFCODsKK0QxRUE7RDFFQTsxMTEwIDExNkIgMTFCOTtEMUVBOzExMTAgMTE2QiAxMUI5OworRDFFQjtEMUVCOzExMTAgMTE2QiAxMUJBO0QxRUI7MTExMCAxMTZCIDExQkE7CitEMUVDO0QxRUM7MTExMCAxMTZCIDExQkI7RDFFQzsxMTEwIDExNkIgMTFCQjsKK0QxRUQ7RDFFRDsxMTEwIDExNkIgMTFCQztEMUVEOzExMTAgMTE2QiAxMUJDOworRDFFRTtEMUVFOzExMTAgMTE2QiAxMUJEO0QxRUU7MTExMCAxMTZCIDExQkQ7CitEMUVGO0QxRUY7MTExMCAxMTZCIDExQkU7RDFFRjsxMTEwIDExNkIgMTFCRTsKK0QxRjA7RDFGMDsxMTEwIDExNkIgMTFCRjtEMUYwOzExMTAgMTE2QiAxMUJGOworRDFGMTtEMUYxOzExMTAgMTE2QiAxMUMwO0QxRjE7MTExMCAxMTZCIDExQzA7CitEMUYyO0QxRjI7MTExMCAxMTZCIDExQzE7RDFGMjsxMTEwIDExNkIgMTFDMTsKK0QxRjM7RDFGMzsxMTEwIDExNkIgMTFDMjtEMUYzOzExMTAgMTE2QiAxMUMyOworRDFGNDtEMUY0OzExMTAgMTE2QztEMUY0OzExMTAgMTE2QzsKK0QxRjU7RDFGNTsxMTEwIDExNkMgMTFBODtEMUY1OzExMTAgMTE2QyAxMUE4OworRDFGNjtEMUY2OzExMTAgMTE2QyAxMUE5O0QxRjY7MTExMCAxMTZDIDExQTk7CitEMUY3O0QxRjc7MTExMCAxMTZDIDExQUE7RDFGNzsxMTEwIDExNkMgMTFBQTsKK0QxRjg7RDFGODsxMTEwIDExNkMgMTFBQjtEMUY4OzExMTAgMTE2QyAxMUFCOworRDFGOTtEMUY5OzExMTAgMTE2QyAxMUFDO0QxRjk7MTExMCAxMTZDIDExQUM7CitEMUZBO0QxRkE7MTExMCAxMTZDIDExQUQ7RDFGQTsxMTEwIDExNkMgMTFBRDsKK0QxRkI7RDFGQjsxMTEwIDExNkMgMTFBRTtEMUZCOzExMTAgMTE2QyAxMUFFOworRDFGQztEMUZDOzExMTAgMTE2QyAxMUFGO0QxRkM7MTExMCAxMTZDIDExQUY7CitEMUZEO0QxRkQ7MTExMCAxMTZDIDExQjA7RDFGRDsxMTEwIDExNkMgMTFCMDsKK0QxRkU7RDFGRTsxMTEwIDExNkMgMTFCMTtEMUZFOzExMTAgMTE2QyAxMUIxOworRDFGRjtEMUZGOzExMTAgMTE2QyAxMUIyO0QxRkY7MTExMCAxMTZDIDExQjI7CitEMjAwO0QyMDA7MTExMCAxMTZDIDExQjM7RDIwMDsxMTEwIDExNkMgMTFCMzsKK0QyMDE7RDIwMTsxMTEwIDExNkMgMTFCNDtEMjAxOzExMTAgMTE2QyAxMUI0OworRDIwMjtEMjAyOzExMTAgMTE2QyAxMUI1O0QyMDI7MTExMCAxMTZDIDExQjU7CitEMjAzO0QyMDM7MTExMCAxMTZDIDExQjY7RDIwMzsxMTEwIDExNkMgMTFCNjsKK0QyMDQ7RDIwNDsxMTEwIDExNkMgMTFCNztEMjA0OzExMTAgMTE2QyAxMUI3OworRDIwNTtEMjA1OzExMTAgMTE2QyAxMUI4O0QyMDU7MTExMCAxMTZDIDExQjg7CitEMjA2O0QyMDY7MTExMCAxMTZDIDExQjk7RDIwNjsxMTEwIDExNkMgMTFCOTsKK0QyMDc7RDIwNzsxMTEwIDExNkMgMTFCQTtEMjA3OzExMTAgMTE2QyAxMUJBOworRDIwODtEMjA4OzExMTAgMTE2QyAxMUJCO0QyMDg7MTExMCAxMTZDIDExQkI7CitEMjA5O0QyMDk7MTExMCAxMTZDIDExQkM7RDIwOTsxMTEwIDExNkMgMTFCQzsKK0QyMEE7RDIwQTsxMTEwIDExNkMgMTFCRDtEMjBBOzExMTAgMTE2QyAxMUJEOworRDIwQjtEMjBCOzExMTAgMTE2QyAxMUJFO0QyMEI7MTExMCAxMTZDIDExQkU7CitEMjBDO0QyMEM7MTExMCAxMTZDIDExQkY7RDIwQzsxMTEwIDExNkMgMTFCRjsKK0QyMEQ7RDIwRDsxMTEwIDExNkMgMTFDMDtEMjBEOzExMTAgMTE2QyAxMUMwOworRDIwRTtEMjBFOzExMTAgMTE2QyAxMUMxO0QyMEU7MTExMCAxMTZDIDExQzE7CitEMjBGO0QyMEY7MTExMCAxMTZDIDExQzI7RDIwRjsxMTEwIDExNkMgMTFDMjsKK0QyMTA7RDIxMDsxMTEwIDExNkQ7RDIxMDsxMTEwIDExNkQ7CitEMjExO0QyMTE7MTExMCAxMTZEIDExQTg7RDIxMTsxMTEwIDExNkQgMTFBODsKK0QyMTI7RDIxMjsxMTEwIDExNkQgMTFBOTtEMjEyOzExMTAgMTE2RCAxMUE5OworRDIxMztEMjEzOzExMTAgMTE2RCAxMUFBO0QyMTM7MTExMCAxMTZEIDExQUE7CitEMjE0O0QyMTQ7MTExMCAxMTZEIDExQUI7RDIxNDsxMTEwIDExNkQgMTFBQjsKK0QyMTU7RDIxNTsxMTEwIDExNkQgMTFBQztEMjE1OzExMTAgMTE2RCAxMUFDOworRDIxNjtEMjE2OzExMTAgMTE2RCAxMUFEO0QyMTY7MTExMCAxMTZEIDExQUQ7CitEMjE3O0QyMTc7MTExMCAxMTZEIDExQUU7RDIxNzsxMTEwIDExNkQgMTFBRTsKK0QyMTg7RDIxODsxMTEwIDExNkQgMTFBRjtEMjE4OzExMTAgMTE2RCAxMUFGOworRDIxOTtEMjE5OzExMTAgMTE2RCAxMUIwO0QyMTk7MTExMCAxMTZEIDExQjA7CitEMjFBO0QyMUE7MTExMCAxMTZEIDExQjE7RDIxQTsxMTEwIDExNkQgMTFCMTsKK0QyMUI7RDIxQjsxMTEwIDExNkQgMTFCMjtEMjFCOzExMTAgMTE2RCAxMUIyOworRDIxQztEMjFDOzExMTAgMTE2RCAxMUIzO0QyMUM7MTExMCAxMTZEIDExQjM7CitEMjFEO0QyMUQ7MTExMCAxMTZEIDExQjQ7RDIxRDsxMTEwIDExNkQgMTFCNDsKK0QyMUU7RDIxRTsxMTEwIDExNkQgMTFCNTtEMjFFOzExMTAgMTE2RCAxMUI1OworRDIxRjtEMjFGOzExMTAgMTE2RCAxMUI2O0QyMUY7MTExMCAxMTZEIDExQjY7CitEMjIwO0QyMjA7MTExMCAxMTZEIDExQjc7RDIyMDsxMTEwIDExNkQgMTFCNzsKK0QyMjE7RDIyMTsxMTEwIDExNkQgMTFCODtEMjIxOzExMTAgMTE2RCAxMUI4OworRDIyMjtEMjIyOzExMTAgMTE2RCAxMUI5O0QyMjI7MTExMCAxMTZEIDExQjk7CitEMjIzO0QyMjM7MTExMCAxMTZEIDExQkE7RDIyMzsxMTEwIDExNkQgMTFCQTsKK0QyMjQ7RDIyNDsxMTEwIDExNkQgMTFCQjtEMjI0OzExMTAgMTE2RCAxMUJCOworRDIyNTtEMjI1OzExMTAgMTE2RCAxMUJDO0QyMjU7MTExMCAxMTZEIDExQkM7CitEMjI2O0QyMjY7MTExMCAxMTZEIDExQkQ7RDIyNjsxMTEwIDExNkQgMTFCRDsKK0QyMjc7RDIyNzsxMTEwIDExNkQgMTFCRTtEMjI3OzExMTAgMTE2RCAxMUJFOworRDIyODtEMjI4OzExMTAgMTE2RCAxMUJGO0QyMjg7MTExMCAxMTZEIDExQkY7CitEMjI5O0QyMjk7MTExMCAxMTZEIDExQzA7RDIyOTsxMTEwIDExNkQgMTFDMDsKK0QyMkE7RDIyQTsxMTEwIDExNkQgMTFDMTtEMjJBOzExMTAgMTE2RCAxMUMxOworRDIyQjtEMjJCOzExMTAgMTE2RCAxMUMyO0QyMkI7MTExMCAxMTZEIDExQzI7CitEMjJDO0QyMkM7MTExMCAxMTZFO0QyMkM7MTExMCAxMTZFOworRDIyRDtEMjJEOzExMTAgMTE2RSAxMUE4O0QyMkQ7MTExMCAxMTZFIDExQTg7CitEMjJFO0QyMkU7MTExMCAxMTZFIDExQTk7RDIyRTsxMTEwIDExNkUgMTFBOTsKK0QyMkY7RDIyRjsxMTEwIDExNkUgMTFBQTtEMjJGOzExMTAgMTE2RSAxMUFBOworRDIzMDtEMjMwOzExMTAgMTE2RSAxMUFCO0QyMzA7MTExMCAxMTZFIDExQUI7CitEMjMxO0QyMzE7MTExMCAxMTZFIDExQUM7RDIzMTsxMTEwIDExNkUgMTFBQzsKK0QyMzI7RDIzMjsxMTEwIDExNkUgMTFBRDtEMjMyOzExMTAgMTE2RSAxMUFEOworRDIzMztEMjMzOzExMTAgMTE2RSAxMUFFO0QyMzM7MTExMCAxMTZFIDExQUU7CitEMjM0O0QyMzQ7MTExMCAxMTZFIDExQUY7RDIzNDsxMTEwIDExNkUgMTFBRjsKK0QyMzU7RDIzNTsxMTEwIDExNkUgMTFCMDtEMjM1OzExMTAgMTE2RSAxMUIwOworRDIzNjtEMjM2OzExMTAgMTE2RSAxMUIxO0QyMzY7MTExMCAxMTZFIDExQjE7CitEMjM3O0QyMzc7MTExMCAxMTZFIDExQjI7RDIzNzsxMTEwIDExNkUgMTFCMjsKK0QyMzg7RDIzODsxMTEwIDExNkUgMTFCMztEMjM4OzExMTAgMTE2RSAxMUIzOworRDIzOTtEMjM5OzExMTAgMTE2RSAxMUI0O0QyMzk7MTExMCAxMTZFIDExQjQ7CitEMjNBO0QyM0E7MTExMCAxMTZFIDExQjU7RDIzQTsxMTEwIDExNkUgMTFCNTsKK0QyM0I7RDIzQjsxMTEwIDExNkUgMTFCNjtEMjNCOzExMTAgMTE2RSAxMUI2OworRDIzQztEMjNDOzExMTAgMTE2RSAxMUI3O0QyM0M7MTExMCAxMTZFIDExQjc7CitEMjNEO0QyM0Q7MTExMCAxMTZFIDExQjg7RDIzRDsxMTEwIDExNkUgMTFCODsKK0QyM0U7RDIzRTsxMTEwIDExNkUgMTFCOTtEMjNFOzExMTAgMTE2RSAxMUI5OworRDIzRjtEMjNGOzExMTAgMTE2RSAxMUJBO0QyM0Y7MTExMCAxMTZFIDExQkE7CitEMjQwO0QyNDA7MTExMCAxMTZFIDExQkI7RDI0MDsxMTEwIDExNkUgMTFCQjsKK0QyNDE7RDI0MTsxMTEwIDExNkUgMTFCQztEMjQxOzExMTAgMTE2RSAxMUJDOworRDI0MjtEMjQyOzExMTAgMTE2RSAxMUJEO0QyNDI7MTExMCAxMTZFIDExQkQ7CitEMjQzO0QyNDM7MTExMCAxMTZFIDExQkU7RDI0MzsxMTEwIDExNkUgMTFCRTsKK0QyNDQ7RDI0NDsxMTEwIDExNkUgMTFCRjtEMjQ0OzExMTAgMTE2RSAxMUJGOworRDI0NTtEMjQ1OzExMTAgMTE2RSAxMUMwO0QyNDU7MTExMCAxMTZFIDExQzA7CitEMjQ2O0QyNDY7MTExMCAxMTZFIDExQzE7RDI0NjsxMTEwIDExNkUgMTFDMTsKK0QyNDc7RDI0NzsxMTEwIDExNkUgMTFDMjtEMjQ3OzExMTAgMTE2RSAxMUMyOworRDI0ODtEMjQ4OzExMTAgMTE2RjtEMjQ4OzExMTAgMTE2RjsKK0QyNDk7RDI0OTsxMTEwIDExNkYgMTFBODtEMjQ5OzExMTAgMTE2RiAxMUE4OworRDI0QTtEMjRBOzExMTAgMTE2RiAxMUE5O0QyNEE7MTExMCAxMTZGIDExQTk7CitEMjRCO0QyNEI7MTExMCAxMTZGIDExQUE7RDI0QjsxMTEwIDExNkYgMTFBQTsKK0QyNEM7RDI0QzsxMTEwIDExNkYgMTFBQjtEMjRDOzExMTAgMTE2RiAxMUFCOworRDI0RDtEMjREOzExMTAgMTE2RiAxMUFDO0QyNEQ7MTExMCAxMTZGIDExQUM7CitEMjRFO0QyNEU7MTExMCAxMTZGIDExQUQ7RDI0RTsxMTEwIDExNkYgMTFBRDsKK0QyNEY7RDI0RjsxMTEwIDExNkYgMTFBRTtEMjRGOzExMTAgMTE2RiAxMUFFOworRDI1MDtEMjUwOzExMTAgMTE2RiAxMUFGO0QyNTA7MTExMCAxMTZGIDExQUY7CitEMjUxO0QyNTE7MTExMCAxMTZGIDExQjA7RDI1MTsxMTEwIDExNkYgMTFCMDsKK0QyNTI7RDI1MjsxMTEwIDExNkYgMTFCMTtEMjUyOzExMTAgMTE2RiAxMUIxOworRDI1MztEMjUzOzExMTAgMTE2RiAxMUIyO0QyNTM7MTExMCAxMTZGIDExQjI7CitEMjU0O0QyNTQ7MTExMCAxMTZGIDExQjM7RDI1NDsxMTEwIDExNkYgMTFCMzsKK0QyNTU7RDI1NTsxMTEwIDExNkYgMTFCNDtEMjU1OzExMTAgMTE2RiAxMUI0OworRDI1NjtEMjU2OzExMTAgMTE2RiAxMUI1O0QyNTY7MTExMCAxMTZGIDExQjU7CitEMjU3O0QyNTc7MTExMCAxMTZGIDExQjY7RDI1NzsxMTEwIDExNkYgMTFCNjsKK0QyNTg7RDI1ODsxMTEwIDExNkYgMTFCNztEMjU4OzExMTAgMTE2RiAxMUI3OworRDI1OTtEMjU5OzExMTAgMTE2RiAxMUI4O0QyNTk7MTExMCAxMTZGIDExQjg7CitEMjVBO0QyNUE7MTExMCAxMTZGIDExQjk7RDI1QTsxMTEwIDExNkYgMTFCOTsKK0QyNUI7RDI1QjsxMTEwIDExNkYgMTFCQTtEMjVCOzExMTAgMTE2RiAxMUJBOworRDI1QztEMjVDOzExMTAgMTE2RiAxMUJCO0QyNUM7MTExMCAxMTZGIDExQkI7CitEMjVEO0QyNUQ7MTExMCAxMTZGIDExQkM7RDI1RDsxMTEwIDExNkYgMTFCQzsKK0QyNUU7RDI1RTsxMTEwIDExNkYgMTFCRDtEMjVFOzExMTAgMTE2RiAxMUJEOworRDI1RjtEMjVGOzExMTAgMTE2RiAxMUJFO0QyNUY7MTExMCAxMTZGIDExQkU7CitEMjYwO0QyNjA7MTExMCAxMTZGIDExQkY7RDI2MDsxMTEwIDExNkYgMTFCRjsKK0QyNjE7RDI2MTsxMTEwIDExNkYgMTFDMDtEMjYxOzExMTAgMTE2RiAxMUMwOworRDI2MjtEMjYyOzExMTAgMTE2RiAxMUMxO0QyNjI7MTExMCAxMTZGIDExQzE7CitEMjYzO0QyNjM7MTExMCAxMTZGIDExQzI7RDI2MzsxMTEwIDExNkYgMTFDMjsKK0QyNjQ7RDI2NDsxMTEwIDExNzA7RDI2NDsxMTEwIDExNzA7CitEMjY1O0QyNjU7MTExMCAxMTcwIDExQTg7RDI2NTsxMTEwIDExNzAgMTFBODsKK0QyNjY7RDI2NjsxMTEwIDExNzAgMTFBOTtEMjY2OzExMTAgMTE3MCAxMUE5OworRDI2NztEMjY3OzExMTAgMTE3MCAxMUFBO0QyNjc7MTExMCAxMTcwIDExQUE7CitEMjY4O0QyNjg7MTExMCAxMTcwIDExQUI7RDI2ODsxMTEwIDExNzAgMTFBQjsKK0QyNjk7RDI2OTsxMTEwIDExNzAgMTFBQztEMjY5OzExMTAgMTE3MCAxMUFDOworRDI2QTtEMjZBOzExMTAgMTE3MCAxMUFEO0QyNkE7MTExMCAxMTcwIDExQUQ7CitEMjZCO0QyNkI7MTExMCAxMTcwIDExQUU7RDI2QjsxMTEwIDExNzAgMTFBRTsKK0QyNkM7RDI2QzsxMTEwIDExNzAgMTFBRjtEMjZDOzExMTAgMTE3MCAxMUFGOworRDI2RDtEMjZEOzExMTAgMTE3MCAxMUIwO0QyNkQ7MTExMCAxMTcwIDExQjA7CitEMjZFO0QyNkU7MTExMCAxMTcwIDExQjE7RDI2RTsxMTEwIDExNzAgMTFCMTsKK0QyNkY7RDI2RjsxMTEwIDExNzAgMTFCMjtEMjZGOzExMTAgMTE3MCAxMUIyOworRDI3MDtEMjcwOzExMTAgMTE3MCAxMUIzO0QyNzA7MTExMCAxMTcwIDExQjM7CitEMjcxO0QyNzE7MTExMCAxMTcwIDExQjQ7RDI3MTsxMTEwIDExNzAgMTFCNDsKK0QyNzI7RDI3MjsxMTEwIDExNzAgMTFCNTtEMjcyOzExMTAgMTE3MCAxMUI1OworRDI3MztEMjczOzExMTAgMTE3MCAxMUI2O0QyNzM7MTExMCAxMTcwIDExQjY7CitEMjc0O0QyNzQ7MTExMCAxMTcwIDExQjc7RDI3NDsxMTEwIDExNzAgMTFCNzsKK0QyNzU7RDI3NTsxMTEwIDExNzAgMTFCODtEMjc1OzExMTAgMTE3MCAxMUI4OworRDI3NjtEMjc2OzExMTAgMTE3MCAxMUI5O0QyNzY7MTExMCAxMTcwIDExQjk7CitEMjc3O0QyNzc7MTExMCAxMTcwIDExQkE7RDI3NzsxMTEwIDExNzAgMTFCQTsKK0QyNzg7RDI3ODsxMTEwIDExNzAgMTFCQjtEMjc4OzExMTAgMTE3MCAxMUJCOworRDI3OTtEMjc5OzExMTAgMTE3MCAxMUJDO0QyNzk7MTExMCAxMTcwIDExQkM7CitEMjdBO0QyN0E7MTExMCAxMTcwIDExQkQ7RDI3QTsxMTEwIDExNzAgMTFCRDsKK0QyN0I7RDI3QjsxMTEwIDExNzAgMTFCRTtEMjdCOzExMTAgMTE3MCAxMUJFOworRDI3QztEMjdDOzExMTAgMTE3MCAxMUJGO0QyN0M7MTExMCAxMTcwIDExQkY7CitEMjdEO0QyN0Q7MTExMCAxMTcwIDExQzA7RDI3RDsxMTEwIDExNzAgMTFDMDsKK0QyN0U7RDI3RTsxMTEwIDExNzAgMTFDMTtEMjdFOzExMTAgMTE3MCAxMUMxOworRDI3RjtEMjdGOzExMTAgMTE3MCAxMUMyO0QyN0Y7MTExMCAxMTcwIDExQzI7CitEMjgwO0QyODA7MTExMCAxMTcxO0QyODA7MTExMCAxMTcxOworRDI4MTtEMjgxOzExMTAgMTE3MSAxMUE4O0QyODE7MTExMCAxMTcxIDExQTg7CitEMjgyO0QyODI7MTExMCAxMTcxIDExQTk7RDI4MjsxMTEwIDExNzEgMTFBOTsKK0QyODM7RDI4MzsxMTEwIDExNzEgMTFBQTtEMjgzOzExMTAgMTE3MSAxMUFBOworRDI4NDtEMjg0OzExMTAgMTE3MSAxMUFCO0QyODQ7MTExMCAxMTcxIDExQUI7CitEMjg1O0QyODU7MTExMCAxMTcxIDExQUM7RDI4NTsxMTEwIDExNzEgMTFBQzsKK0QyODY7RDI4NjsxMTEwIDExNzEgMTFBRDtEMjg2OzExMTAgMTE3MSAxMUFEOworRDI4NztEMjg3OzExMTAgMTE3MSAxMUFFO0QyODc7MTExMCAxMTcxIDExQUU7CitEMjg4O0QyODg7MTExMCAxMTcxIDExQUY7RDI4ODsxMTEwIDExNzEgMTFBRjsKK0QyODk7RDI4OTsxMTEwIDExNzEgMTFCMDtEMjg5OzExMTAgMTE3MSAxMUIwOworRDI4QTtEMjhBOzExMTAgMTE3MSAxMUIxO0QyOEE7MTExMCAxMTcxIDExQjE7CitEMjhCO0QyOEI7MTExMCAxMTcxIDExQjI7RDI4QjsxMTEwIDExNzEgMTFCMjsKK0QyOEM7RDI4QzsxMTEwIDExNzEgMTFCMztEMjhDOzExMTAgMTE3MSAxMUIzOworRDI4RDtEMjhEOzExMTAgMTE3MSAxMUI0O0QyOEQ7MTExMCAxMTcxIDExQjQ7CitEMjhFO0QyOEU7MTExMCAxMTcxIDExQjU7RDI4RTsxMTEwIDExNzEgMTFCNTsKK0QyOEY7RDI4RjsxMTEwIDExNzEgMTFCNjtEMjhGOzExMTAgMTE3MSAxMUI2OworRDI5MDtEMjkwOzExMTAgMTE3MSAxMUI3O0QyOTA7MTExMCAxMTcxIDExQjc7CitEMjkxO0QyOTE7MTExMCAxMTcxIDExQjg7RDI5MTsxMTEwIDExNzEgMTFCODsKK0QyOTI7RDI5MjsxMTEwIDExNzEgMTFCOTtEMjkyOzExMTAgMTE3MSAxMUI5OworRDI5MztEMjkzOzExMTAgMTE3MSAxMUJBO0QyOTM7MTExMCAxMTcxIDExQkE7CitEMjk0O0QyOTQ7MTExMCAxMTcxIDExQkI7RDI5NDsxMTEwIDExNzEgMTFCQjsKK0QyOTU7RDI5NTsxMTEwIDExNzEgMTFCQztEMjk1OzExMTAgMTE3MSAxMUJDOworRDI5NjtEMjk2OzExMTAgMTE3MSAxMUJEO0QyOTY7MTExMCAxMTcxIDExQkQ7CitEMjk3O0QyOTc7MTExMCAxMTcxIDExQkU7RDI5NzsxMTEwIDExNzEgMTFCRTsKK0QyOTg7RDI5ODsxMTEwIDExNzEgMTFCRjtEMjk4OzExMTAgMTE3MSAxMUJGOworRDI5OTtEMjk5OzExMTAgMTE3MSAxMUMwO0QyOTk7MTExMCAxMTcxIDExQzA7CitEMjlBO0QyOUE7MTExMCAxMTcxIDExQzE7RDI5QTsxMTEwIDExNzEgMTFDMTsKK0QyOUI7RDI5QjsxMTEwIDExNzEgMTFDMjtEMjlCOzExMTAgMTE3MSAxMUMyOworRDI5QztEMjlDOzExMTAgMTE3MjtEMjlDOzExMTAgMTE3MjsKK0QyOUQ7RDI5RDsxMTEwIDExNzIgMTFBODtEMjlEOzExMTAgMTE3MiAxMUE4OworRDI5RTtEMjlFOzExMTAgMTE3MiAxMUE5O0QyOUU7MTExMCAxMTcyIDExQTk7CitEMjlGO0QyOUY7MTExMCAxMTcyIDExQUE7RDI5RjsxMTEwIDExNzIgMTFBQTsKK0QyQTA7RDJBMDsxMTEwIDExNzIgMTFBQjtEMkEwOzExMTAgMTE3MiAxMUFCOworRDJBMTtEMkExOzExMTAgMTE3MiAxMUFDO0QyQTE7MTExMCAxMTcyIDExQUM7CitEMkEyO0QyQTI7MTExMCAxMTcyIDExQUQ7RDJBMjsxMTEwIDExNzIgMTFBRDsKK0QyQTM7RDJBMzsxMTEwIDExNzIgMTFBRTtEMkEzOzExMTAgMTE3MiAxMUFFOworRDJBNDtEMkE0OzExMTAgMTE3MiAxMUFGO0QyQTQ7MTExMCAxMTcyIDExQUY7CitEMkE1O0QyQTU7MTExMCAxMTcyIDExQjA7RDJBNTsxMTEwIDExNzIgMTFCMDsKK0QyQTY7RDJBNjsxMTEwIDExNzIgMTFCMTtEMkE2OzExMTAgMTE3MiAxMUIxOworRDJBNztEMkE3OzExMTAgMTE3MiAxMUIyO0QyQTc7MTExMCAxMTcyIDExQjI7CitEMkE4O0QyQTg7MTExMCAxMTcyIDExQjM7RDJBODsxMTEwIDExNzIgMTFCMzsKK0QyQTk7RDJBOTsxMTEwIDExNzIgMTFCNDtEMkE5OzExMTAgMTE3MiAxMUI0OworRDJBQTtEMkFBOzExMTAgMTE3MiAxMUI1O0QyQUE7MTExMCAxMTcyIDExQjU7CitEMkFCO0QyQUI7MTExMCAxMTcyIDExQjY7RDJBQjsxMTEwIDExNzIgMTFCNjsKK0QyQUM7RDJBQzsxMTEwIDExNzIgMTFCNztEMkFDOzExMTAgMTE3MiAxMUI3OworRDJBRDtEMkFEOzExMTAgMTE3MiAxMUI4O0QyQUQ7MTExMCAxMTcyIDExQjg7CitEMkFFO0QyQUU7MTExMCAxMTcyIDExQjk7RDJBRTsxMTEwIDExNzIgMTFCOTsKK0QyQUY7RDJBRjsxMTEwIDExNzIgMTFCQTtEMkFGOzExMTAgMTE3MiAxMUJBOworRDJCMDtEMkIwOzExMTAgMTE3MiAxMUJCO0QyQjA7MTExMCAxMTcyIDExQkI7CitEMkIxO0QyQjE7MTExMCAxMTcyIDExQkM7RDJCMTsxMTEwIDExNzIgMTFCQzsKK0QyQjI7RDJCMjsxMTEwIDExNzIgMTFCRDtEMkIyOzExMTAgMTE3MiAxMUJEOworRDJCMztEMkIzOzExMTAgMTE3MiAxMUJFO0QyQjM7MTExMCAxMTcyIDExQkU7CitEMkI0O0QyQjQ7MTExMCAxMTcyIDExQkY7RDJCNDsxMTEwIDExNzIgMTFCRjsKK0QyQjU7RDJCNTsxMTEwIDExNzIgMTFDMDtEMkI1OzExMTAgMTE3MiAxMUMwOworRDJCNjtEMkI2OzExMTAgMTE3MiAxMUMxO0QyQjY7MTExMCAxMTcyIDExQzE7CitEMkI3O0QyQjc7MTExMCAxMTcyIDExQzI7RDJCNzsxMTEwIDExNzIgMTFDMjsKK0QyQjg7RDJCODsxMTEwIDExNzM7RDJCODsxMTEwIDExNzM7CitEMkI5O0QyQjk7MTExMCAxMTczIDExQTg7RDJCOTsxMTEwIDExNzMgMTFBODsKK0QyQkE7RDJCQTsxMTEwIDExNzMgMTFBOTtEMkJBOzExMTAgMTE3MyAxMUE5OworRDJCQjtEMkJCOzExMTAgMTE3MyAxMUFBO0QyQkI7MTExMCAxMTczIDExQUE7CitEMkJDO0QyQkM7MTExMCAxMTczIDExQUI7RDJCQzsxMTEwIDExNzMgMTFBQjsKK0QyQkQ7RDJCRDsxMTEwIDExNzMgMTFBQztEMkJEOzExMTAgMTE3MyAxMUFDOworRDJCRTtEMkJFOzExMTAgMTE3MyAxMUFEO0QyQkU7MTExMCAxMTczIDExQUQ7CitEMkJGO0QyQkY7MTExMCAxMTczIDExQUU7RDJCRjsxMTEwIDExNzMgMTFBRTsKK0QyQzA7RDJDMDsxMTEwIDExNzMgMTFBRjtEMkMwOzExMTAgMTE3MyAxMUFGOworRDJDMTtEMkMxOzExMTAgMTE3MyAxMUIwO0QyQzE7MTExMCAxMTczIDExQjA7CitEMkMyO0QyQzI7MTExMCAxMTczIDExQjE7RDJDMjsxMTEwIDExNzMgMTFCMTsKK0QyQzM7RDJDMzsxMTEwIDExNzMgMTFCMjtEMkMzOzExMTAgMTE3MyAxMUIyOworRDJDNDtEMkM0OzExMTAgMTE3MyAxMUIzO0QyQzQ7MTExMCAxMTczIDExQjM7CitEMkM1O0QyQzU7MTExMCAxMTczIDExQjQ7RDJDNTsxMTEwIDExNzMgMTFCNDsKK0QyQzY7RDJDNjsxMTEwIDExNzMgMTFCNTtEMkM2OzExMTAgMTE3MyAxMUI1OworRDJDNztEMkM3OzExMTAgMTE3MyAxMUI2O0QyQzc7MTExMCAxMTczIDExQjY7CitEMkM4O0QyQzg7MTExMCAxMTczIDExQjc7RDJDODsxMTEwIDExNzMgMTFCNzsKK0QyQzk7RDJDOTsxMTEwIDExNzMgMTFCODtEMkM5OzExMTAgMTE3MyAxMUI4OworRDJDQTtEMkNBOzExMTAgMTE3MyAxMUI5O0QyQ0E7MTExMCAxMTczIDExQjk7CitEMkNCO0QyQ0I7MTExMCAxMTczIDExQkE7RDJDQjsxMTEwIDExNzMgMTFCQTsKK0QyQ0M7RDJDQzsxMTEwIDExNzMgMTFCQjtEMkNDOzExMTAgMTE3MyAxMUJCOworRDJDRDtEMkNEOzExMTAgMTE3MyAxMUJDO0QyQ0Q7MTExMCAxMTczIDExQkM7CitEMkNFO0QyQ0U7MTExMCAxMTczIDExQkQ7RDJDRTsxMTEwIDExNzMgMTFCRDsKK0QyQ0Y7RDJDRjsxMTEwIDExNzMgMTFCRTtEMkNGOzExMTAgMTE3MyAxMUJFOworRDJEMDtEMkQwOzExMTAgMTE3MyAxMUJGO0QyRDA7MTExMCAxMTczIDExQkY7CitEMkQxO0QyRDE7MTExMCAxMTczIDExQzA7RDJEMTsxMTEwIDExNzMgMTFDMDsKK0QyRDI7RDJEMjsxMTEwIDExNzMgMTFDMTtEMkQyOzExMTAgMTE3MyAxMUMxOworRDJEMztEMkQzOzExMTAgMTE3MyAxMUMyO0QyRDM7MTExMCAxMTczIDExQzI7CitEMkQ0O0QyRDQ7MTExMCAxMTc0O0QyRDQ7MTExMCAxMTc0OworRDJENTtEMkQ1OzExMTAgMTE3NCAxMUE4O0QyRDU7MTExMCAxMTc0IDExQTg7CitEMkQ2O0QyRDY7MTExMCAxMTc0IDExQTk7RDJENjsxMTEwIDExNzQgMTFBOTsKK0QyRDc7RDJENzsxMTEwIDExNzQgMTFBQTtEMkQ3OzExMTAgMTE3NCAxMUFBOworRDJEODtEMkQ4OzExMTAgMTE3NCAxMUFCO0QyRDg7MTExMCAxMTc0IDExQUI7CitEMkQ5O0QyRDk7MTExMCAxMTc0IDExQUM7RDJEOTsxMTEwIDExNzQgMTFBQzsKK0QyREE7RDJEQTsxMTEwIDExNzQgMTFBRDtEMkRBOzExMTAgMTE3NCAxMUFEOworRDJEQjtEMkRCOzExMTAgMTE3NCAxMUFFO0QyREI7MTExMCAxMTc0IDExQUU7CitEMkRDO0QyREM7MTExMCAxMTc0IDExQUY7RDJEQzsxMTEwIDExNzQgMTFBRjsKK0QyREQ7RDJERDsxMTEwIDExNzQgMTFCMDtEMkREOzExMTAgMTE3NCAxMUIwOworRDJERTtEMkRFOzExMTAgMTE3NCAxMUIxO0QyREU7MTExMCAxMTc0IDExQjE7CitEMkRGO0QyREY7MTExMCAxMTc0IDExQjI7RDJERjsxMTEwIDExNzQgMTFCMjsKK0QyRTA7RDJFMDsxMTEwIDExNzQgMTFCMztEMkUwOzExMTAgMTE3NCAxMUIzOworRDJFMTtEMkUxOzExMTAgMTE3NCAxMUI0O0QyRTE7MTExMCAxMTc0IDExQjQ7CitEMkUyO0QyRTI7MTExMCAxMTc0IDExQjU7RDJFMjsxMTEwIDExNzQgMTFCNTsKK0QyRTM7RDJFMzsxMTEwIDExNzQgMTFCNjtEMkUzOzExMTAgMTE3NCAxMUI2OworRDJFNDtEMkU0OzExMTAgMTE3NCAxMUI3O0QyRTQ7MTExMCAxMTc0IDExQjc7CitEMkU1O0QyRTU7MTExMCAxMTc0IDExQjg7RDJFNTsxMTEwIDExNzQgMTFCODsKK0QyRTY7RDJFNjsxMTEwIDExNzQgMTFCOTtEMkU2OzExMTAgMTE3NCAxMUI5OworRDJFNztEMkU3OzExMTAgMTE3NCAxMUJBO0QyRTc7MTExMCAxMTc0IDExQkE7CitEMkU4O0QyRTg7MTExMCAxMTc0IDExQkI7RDJFODsxMTEwIDExNzQgMTFCQjsKK0QyRTk7RDJFOTsxMTEwIDExNzQgMTFCQztEMkU5OzExMTAgMTE3NCAxMUJDOworRDJFQTtEMkVBOzExMTAgMTE3NCAxMUJEO0QyRUE7MTExMCAxMTc0IDExQkQ7CitEMkVCO0QyRUI7MTExMCAxMTc0IDExQkU7RDJFQjsxMTEwIDExNzQgMTFCRTsKK0QyRUM7RDJFQzsxMTEwIDExNzQgMTFCRjtEMkVDOzExMTAgMTE3NCAxMUJGOworRDJFRDtEMkVEOzExMTAgMTE3NCAxMUMwO0QyRUQ7MTExMCAxMTc0IDExQzA7CitEMkVFO0QyRUU7MTExMCAxMTc0IDExQzE7RDJFRTsxMTEwIDExNzQgMTFDMTsKK0QyRUY7RDJFRjsxMTEwIDExNzQgMTFDMjtEMkVGOzExMTAgMTE3NCAxMUMyOworRDJGMDtEMkYwOzExMTAgMTE3NTtEMkYwOzExMTAgMTE3NTsKK0QyRjE7RDJGMTsxMTEwIDExNzUgMTFBODtEMkYxOzExMTAgMTE3NSAxMUE4OworRDJGMjtEMkYyOzExMTAgMTE3NSAxMUE5O0QyRjI7MTExMCAxMTc1IDExQTk7CitEMkYzO0QyRjM7MTExMCAxMTc1IDExQUE7RDJGMzsxMTEwIDExNzUgMTFBQTsKK0QyRjQ7RDJGNDsxMTEwIDExNzUgMTFBQjtEMkY0OzExMTAgMTE3NSAxMUFCOworRDJGNTtEMkY1OzExMTAgMTE3NSAxMUFDO0QyRjU7MTExMCAxMTc1IDExQUM7CitEMkY2O0QyRjY7MTExMCAxMTc1IDExQUQ7RDJGNjsxMTEwIDExNzUgMTFBRDsKK0QyRjc7RDJGNzsxMTEwIDExNzUgMTFBRTtEMkY3OzExMTAgMTE3NSAxMUFFOworRDJGODtEMkY4OzExMTAgMTE3NSAxMUFGO0QyRjg7MTExMCAxMTc1IDExQUY7CitEMkY5O0QyRjk7MTExMCAxMTc1IDExQjA7RDJGOTsxMTEwIDExNzUgMTFCMDsKK0QyRkE7RDJGQTsxMTEwIDExNzUgMTFCMTtEMkZBOzExMTAgMTE3NSAxMUIxOworRDJGQjtEMkZCOzExMTAgMTE3NSAxMUIyO0QyRkI7MTExMCAxMTc1IDExQjI7CitEMkZDO0QyRkM7MTExMCAxMTc1IDExQjM7RDJGQzsxMTEwIDExNzUgMTFCMzsKK0QyRkQ7RDJGRDsxMTEwIDExNzUgMTFCNDtEMkZEOzExMTAgMTE3NSAxMUI0OworRDJGRTtEMkZFOzExMTAgMTE3NSAxMUI1O0QyRkU7MTExMCAxMTc1IDExQjU7CitEMkZGO0QyRkY7MTExMCAxMTc1IDExQjY7RDJGRjsxMTEwIDExNzUgMTFCNjsKK0QzMDA7RDMwMDsxMTEwIDExNzUgMTFCNztEMzAwOzExMTAgMTE3NSAxMUI3OworRDMwMTtEMzAxOzExMTAgMTE3NSAxMUI4O0QzMDE7MTExMCAxMTc1IDExQjg7CitEMzAyO0QzMDI7MTExMCAxMTc1IDExQjk7RDMwMjsxMTEwIDExNzUgMTFCOTsKK0QzMDM7RDMwMzsxMTEwIDExNzUgMTFCQTtEMzAzOzExMTAgMTE3NSAxMUJBOworRDMwNDtEMzA0OzExMTAgMTE3NSAxMUJCO0QzMDQ7MTExMCAxMTc1IDExQkI7CitEMzA1O0QzMDU7MTExMCAxMTc1IDExQkM7RDMwNTsxMTEwIDExNzUgMTFCQzsKK0QzMDY7RDMwNjsxMTEwIDExNzUgMTFCRDtEMzA2OzExMTAgMTE3NSAxMUJEOworRDMwNztEMzA3OzExMTAgMTE3NSAxMUJFO0QzMDc7MTExMCAxMTc1IDExQkU7CitEMzA4O0QzMDg7MTExMCAxMTc1IDExQkY7RDMwODsxMTEwIDExNzUgMTFCRjsKK0QzMDk7RDMwOTsxMTEwIDExNzUgMTFDMDtEMzA5OzExMTAgMTE3NSAxMUMwOworRDMwQTtEMzBBOzExMTAgMTE3NSAxMUMxO0QzMEE7MTExMCAxMTc1IDExQzE7CitEMzBCO0QzMEI7MTExMCAxMTc1IDExQzI7RDMwQjsxMTEwIDExNzUgMTFDMjsKK0QzMEM7RDMwQzsxMTExIDExNjE7RDMwQzsxMTExIDExNjE7CitEMzBEO0QzMEQ7MTExMSAxMTYxIDExQTg7RDMwRDsxMTExIDExNjEgMTFBODsKK0QzMEU7RDMwRTsxMTExIDExNjEgMTFBOTtEMzBFOzExMTEgMTE2MSAxMUE5OworRDMwRjtEMzBGOzExMTEgMTE2MSAxMUFBO0QzMEY7MTExMSAxMTYxIDExQUE7CitEMzEwO0QzMTA7MTExMSAxMTYxIDExQUI7RDMxMDsxMTExIDExNjEgMTFBQjsKK0QzMTE7RDMxMTsxMTExIDExNjEgMTFBQztEMzExOzExMTEgMTE2MSAxMUFDOworRDMxMjtEMzEyOzExMTEgMTE2MSAxMUFEO0QzMTI7MTExMSAxMTYxIDExQUQ7CitEMzEzO0QzMTM7MTExMSAxMTYxIDExQUU7RDMxMzsxMTExIDExNjEgMTFBRTsKK0QzMTQ7RDMxNDsxMTExIDExNjEgMTFBRjtEMzE0OzExMTEgMTE2MSAxMUFGOworRDMxNTtEMzE1OzExMTEgMTE2MSAxMUIwO0QzMTU7MTExMSAxMTYxIDExQjA7CitEMzE2O0QzMTY7MTExMSAxMTYxIDExQjE7RDMxNjsxMTExIDExNjEgMTFCMTsKK0QzMTc7RDMxNzsxMTExIDExNjEgMTFCMjtEMzE3OzExMTEgMTE2MSAxMUIyOworRDMxODtEMzE4OzExMTEgMTE2MSAxMUIzO0QzMTg7MTExMSAxMTYxIDExQjM7CitEMzE5O0QzMTk7MTExMSAxMTYxIDExQjQ7RDMxOTsxMTExIDExNjEgMTFCNDsKK0QzMUE7RDMxQTsxMTExIDExNjEgMTFCNTtEMzFBOzExMTEgMTE2MSAxMUI1OworRDMxQjtEMzFCOzExMTEgMTE2MSAxMUI2O0QzMUI7MTExMSAxMTYxIDExQjY7CitEMzFDO0QzMUM7MTExMSAxMTYxIDExQjc7RDMxQzsxMTExIDExNjEgMTFCNzsKK0QzMUQ7RDMxRDsxMTExIDExNjEgMTFCODtEMzFEOzExMTEgMTE2MSAxMUI4OworRDMxRTtEMzFFOzExMTEgMTE2MSAxMUI5O0QzMUU7MTExMSAxMTYxIDExQjk7CitEMzFGO0QzMUY7MTExMSAxMTYxIDExQkE7RDMxRjsxMTExIDExNjEgMTFCQTsKK0QzMjA7RDMyMDsxMTExIDExNjEgMTFCQjtEMzIwOzExMTEgMTE2MSAxMUJCOworRDMyMTtEMzIxOzExMTEgMTE2MSAxMUJDO0QzMjE7MTExMSAxMTYxIDExQkM7CitEMzIyO0QzMjI7MTExMSAxMTYxIDExQkQ7RDMyMjsxMTExIDExNjEgMTFCRDsKK0QzMjM7RDMyMzsxMTExIDExNjEgMTFCRTtEMzIzOzExMTEgMTE2MSAxMUJFOworRDMyNDtEMzI0OzExMTEgMTE2MSAxMUJGO0QzMjQ7MTExMSAxMTYxIDExQkY7CitEMzI1O0QzMjU7MTExMSAxMTYxIDExQzA7RDMyNTsxMTExIDExNjEgMTFDMDsKK0QzMjY7RDMyNjsxMTExIDExNjEgMTFDMTtEMzI2OzExMTEgMTE2MSAxMUMxOworRDMyNztEMzI3OzExMTEgMTE2MSAxMUMyO0QzMjc7MTExMSAxMTYxIDExQzI7CitEMzI4O0QzMjg7MTExMSAxMTYyO0QzMjg7MTExMSAxMTYyOworRDMyOTtEMzI5OzExMTEgMTE2MiAxMUE4O0QzMjk7MTExMSAxMTYyIDExQTg7CitEMzJBO0QzMkE7MTExMSAxMTYyIDExQTk7RDMyQTsxMTExIDExNjIgMTFBOTsKK0QzMkI7RDMyQjsxMTExIDExNjIgMTFBQTtEMzJCOzExMTEgMTE2MiAxMUFBOworRDMyQztEMzJDOzExMTEgMTE2MiAxMUFCO0QzMkM7MTExMSAxMTYyIDExQUI7CitEMzJEO0QzMkQ7MTExMSAxMTYyIDExQUM7RDMyRDsxMTExIDExNjIgMTFBQzsKK0QzMkU7RDMyRTsxMTExIDExNjIgMTFBRDtEMzJFOzExMTEgMTE2MiAxMUFEOworRDMyRjtEMzJGOzExMTEgMTE2MiAxMUFFO0QzMkY7MTExMSAxMTYyIDExQUU7CitEMzMwO0QzMzA7MTExMSAxMTYyIDExQUY7RDMzMDsxMTExIDExNjIgMTFBRjsKK0QzMzE7RDMzMTsxMTExIDExNjIgMTFCMDtEMzMxOzExMTEgMTE2MiAxMUIwOworRDMzMjtEMzMyOzExMTEgMTE2MiAxMUIxO0QzMzI7MTExMSAxMTYyIDExQjE7CitEMzMzO0QzMzM7MTExMSAxMTYyIDExQjI7RDMzMzsxMTExIDExNjIgMTFCMjsKK0QzMzQ7RDMzNDsxMTExIDExNjIgMTFCMztEMzM0OzExMTEgMTE2MiAxMUIzOworRDMzNTtEMzM1OzExMTEgMTE2MiAxMUI0O0QzMzU7MTExMSAxMTYyIDExQjQ7CitEMzM2O0QzMzY7MTExMSAxMTYyIDExQjU7RDMzNjsxMTExIDExNjIgMTFCNTsKK0QzMzc7RDMzNzsxMTExIDExNjIgMTFCNjtEMzM3OzExMTEgMTE2MiAxMUI2OworRDMzODtEMzM4OzExMTEgMTE2MiAxMUI3O0QzMzg7MTExMSAxMTYyIDExQjc7CitEMzM5O0QzMzk7MTExMSAxMTYyIDExQjg7RDMzOTsxMTExIDExNjIgMTFCODsKK0QzM0E7RDMzQTsxMTExIDExNjIgMTFCOTtEMzNBOzExMTEgMTE2MiAxMUI5OworRDMzQjtEMzNCOzExMTEgMTE2MiAxMUJBO0QzM0I7MTExMSAxMTYyIDExQkE7CitEMzNDO0QzM0M7MTExMSAxMTYyIDExQkI7RDMzQzsxMTExIDExNjIgMTFCQjsKK0QzM0Q7RDMzRDsxMTExIDExNjIgMTFCQztEMzNEOzExMTEgMTE2MiAxMUJDOworRDMzRTtEMzNFOzExMTEgMTE2MiAxMUJEO0QzM0U7MTExMSAxMTYyIDExQkQ7CitEMzNGO0QzM0Y7MTExMSAxMTYyIDExQkU7RDMzRjsxMTExIDExNjIgMTFCRTsKK0QzNDA7RDM0MDsxMTExIDExNjIgMTFCRjtEMzQwOzExMTEgMTE2MiAxMUJGOworRDM0MTtEMzQxOzExMTEgMTE2MiAxMUMwO0QzNDE7MTExMSAxMTYyIDExQzA7CitEMzQyO0QzNDI7MTExMSAxMTYyIDExQzE7RDM0MjsxMTExIDExNjIgMTFDMTsKK0QzNDM7RDM0MzsxMTExIDExNjIgMTFDMjtEMzQzOzExMTEgMTE2MiAxMUMyOworRDM0NDtEMzQ0OzExMTEgMTE2MztEMzQ0OzExMTEgMTE2MzsKK0QzNDU7RDM0NTsxMTExIDExNjMgMTFBODtEMzQ1OzExMTEgMTE2MyAxMUE4OworRDM0NjtEMzQ2OzExMTEgMTE2MyAxMUE5O0QzNDY7MTExMSAxMTYzIDExQTk7CitEMzQ3O0QzNDc7MTExMSAxMTYzIDExQUE7RDM0NzsxMTExIDExNjMgMTFBQTsKK0QzNDg7RDM0ODsxMTExIDExNjMgMTFBQjtEMzQ4OzExMTEgMTE2MyAxMUFCOworRDM0OTtEMzQ5OzExMTEgMTE2MyAxMUFDO0QzNDk7MTExMSAxMTYzIDExQUM7CitEMzRBO0QzNEE7MTExMSAxMTYzIDExQUQ7RDM0QTsxMTExIDExNjMgMTFBRDsKK0QzNEI7RDM0QjsxMTExIDExNjMgMTFBRTtEMzRCOzExMTEgMTE2MyAxMUFFOworRDM0QztEMzRDOzExMTEgMTE2MyAxMUFGO0QzNEM7MTExMSAxMTYzIDExQUY7CitEMzREO0QzNEQ7MTExMSAxMTYzIDExQjA7RDM0RDsxMTExIDExNjMgMTFCMDsKK0QzNEU7RDM0RTsxMTExIDExNjMgMTFCMTtEMzRFOzExMTEgMTE2MyAxMUIxOworRDM0RjtEMzRGOzExMTEgMTE2MyAxMUIyO0QzNEY7MTExMSAxMTYzIDExQjI7CitEMzUwO0QzNTA7MTExMSAxMTYzIDExQjM7RDM1MDsxMTExIDExNjMgMTFCMzsKK0QzNTE7RDM1MTsxMTExIDExNjMgMTFCNDtEMzUxOzExMTEgMTE2MyAxMUI0OworRDM1MjtEMzUyOzExMTEgMTE2MyAxMUI1O0QzNTI7MTExMSAxMTYzIDExQjU7CitEMzUzO0QzNTM7MTExMSAxMTYzIDExQjY7RDM1MzsxMTExIDExNjMgMTFCNjsKK0QzNTQ7RDM1NDsxMTExIDExNjMgMTFCNztEMzU0OzExMTEgMTE2MyAxMUI3OworRDM1NTtEMzU1OzExMTEgMTE2MyAxMUI4O0QzNTU7MTExMSAxMTYzIDExQjg7CitEMzU2O0QzNTY7MTExMSAxMTYzIDExQjk7RDM1NjsxMTExIDExNjMgMTFCOTsKK0QzNTc7RDM1NzsxMTExIDExNjMgMTFCQTtEMzU3OzExMTEgMTE2MyAxMUJBOworRDM1ODtEMzU4OzExMTEgMTE2MyAxMUJCO0QzNTg7MTExMSAxMTYzIDExQkI7CitEMzU5O0QzNTk7MTExMSAxMTYzIDExQkM7RDM1OTsxMTExIDExNjMgMTFCQzsKK0QzNUE7RDM1QTsxMTExIDExNjMgMTFCRDtEMzVBOzExMTEgMTE2MyAxMUJEOworRDM1QjtEMzVCOzExMTEgMTE2MyAxMUJFO0QzNUI7MTExMSAxMTYzIDExQkU7CitEMzVDO0QzNUM7MTExMSAxMTYzIDExQkY7RDM1QzsxMTExIDExNjMgMTFCRjsKK0QzNUQ7RDM1RDsxMTExIDExNjMgMTFDMDtEMzVEOzExMTEgMTE2MyAxMUMwOworRDM1RTtEMzVFOzExMTEgMTE2MyAxMUMxO0QzNUU7MTExMSAxMTYzIDExQzE7CitEMzVGO0QzNUY7MTExMSAxMTYzIDExQzI7RDM1RjsxMTExIDExNjMgMTFDMjsKK0QzNjA7RDM2MDsxMTExIDExNjQ7RDM2MDsxMTExIDExNjQ7CitEMzYxO0QzNjE7MTExMSAxMTY0IDExQTg7RDM2MTsxMTExIDExNjQgMTFBODsKK0QzNjI7RDM2MjsxMTExIDExNjQgMTFBOTtEMzYyOzExMTEgMTE2NCAxMUE5OworRDM2MztEMzYzOzExMTEgMTE2NCAxMUFBO0QzNjM7MTExMSAxMTY0IDExQUE7CitEMzY0O0QzNjQ7MTExMSAxMTY0IDExQUI7RDM2NDsxMTExIDExNjQgMTFBQjsKK0QzNjU7RDM2NTsxMTExIDExNjQgMTFBQztEMzY1OzExMTEgMTE2NCAxMUFDOworRDM2NjtEMzY2OzExMTEgMTE2NCAxMUFEO0QzNjY7MTExMSAxMTY0IDExQUQ7CitEMzY3O0QzNjc7MTExMSAxMTY0IDExQUU7RDM2NzsxMTExIDExNjQgMTFBRTsKK0QzNjg7RDM2ODsxMTExIDExNjQgMTFBRjtEMzY4OzExMTEgMTE2NCAxMUFGOworRDM2OTtEMzY5OzExMTEgMTE2NCAxMUIwO0QzNjk7MTExMSAxMTY0IDExQjA7CitEMzZBO0QzNkE7MTExMSAxMTY0IDExQjE7RDM2QTsxMTExIDExNjQgMTFCMTsKK0QzNkI7RDM2QjsxMTExIDExNjQgMTFCMjtEMzZCOzExMTEgMTE2NCAxMUIyOworRDM2QztEMzZDOzExMTEgMTE2NCAxMUIzO0QzNkM7MTExMSAxMTY0IDExQjM7CitEMzZEO0QzNkQ7MTExMSAxMTY0IDExQjQ7RDM2RDsxMTExIDExNjQgMTFCNDsKK0QzNkU7RDM2RTsxMTExIDExNjQgMTFCNTtEMzZFOzExMTEgMTE2NCAxMUI1OworRDM2RjtEMzZGOzExMTEgMTE2NCAxMUI2O0QzNkY7MTExMSAxMTY0IDExQjY7CitEMzcwO0QzNzA7MTExMSAxMTY0IDExQjc7RDM3MDsxMTExIDExNjQgMTFCNzsKK0QzNzE7RDM3MTsxMTExIDExNjQgMTFCODtEMzcxOzExMTEgMTE2NCAxMUI4OworRDM3MjtEMzcyOzExMTEgMTE2NCAxMUI5O0QzNzI7MTExMSAxMTY0IDExQjk7CitEMzczO0QzNzM7MTExMSAxMTY0IDExQkE7RDM3MzsxMTExIDExNjQgMTFCQTsKK0QzNzQ7RDM3NDsxMTExIDExNjQgMTFCQjtEMzc0OzExMTEgMTE2NCAxMUJCOworRDM3NTtEMzc1OzExMTEgMTE2NCAxMUJDO0QzNzU7MTExMSAxMTY0IDExQkM7CitEMzc2O0QzNzY7MTExMSAxMTY0IDExQkQ7RDM3NjsxMTExIDExNjQgMTFCRDsKK0QzNzc7RDM3NzsxMTExIDExNjQgMTFCRTtEMzc3OzExMTEgMTE2NCAxMUJFOworRDM3ODtEMzc4OzExMTEgMTE2NCAxMUJGO0QzNzg7MTExMSAxMTY0IDExQkY7CitEMzc5O0QzNzk7MTExMSAxMTY0IDExQzA7RDM3OTsxMTExIDExNjQgMTFDMDsKK0QzN0E7RDM3QTsxMTExIDExNjQgMTFDMTtEMzdBOzExMTEgMTE2NCAxMUMxOworRDM3QjtEMzdCOzExMTEgMTE2NCAxMUMyO0QzN0I7MTExMSAxMTY0IDExQzI7CitEMzdDO0QzN0M7MTExMSAxMTY1O0QzN0M7MTExMSAxMTY1OworRDM3RDtEMzdEOzExMTEgMTE2NSAxMUE4O0QzN0Q7MTExMSAxMTY1IDExQTg7CitEMzdFO0QzN0U7MTExMSAxMTY1IDExQTk7RDM3RTsxMTExIDExNjUgMTFBOTsKK0QzN0Y7RDM3RjsxMTExIDExNjUgMTFBQTtEMzdGOzExMTEgMTE2NSAxMUFBOworRDM4MDtEMzgwOzExMTEgMTE2NSAxMUFCO0QzODA7MTExMSAxMTY1IDExQUI7CitEMzgxO0QzODE7MTExMSAxMTY1IDExQUM7RDM4MTsxMTExIDExNjUgMTFBQzsKK0QzODI7RDM4MjsxMTExIDExNjUgMTFBRDtEMzgyOzExMTEgMTE2NSAxMUFEOworRDM4MztEMzgzOzExMTEgMTE2NSAxMUFFO0QzODM7MTExMSAxMTY1IDExQUU7CitEMzg0O0QzODQ7MTExMSAxMTY1IDExQUY7RDM4NDsxMTExIDExNjUgMTFBRjsKK0QzODU7RDM4NTsxMTExIDExNjUgMTFCMDtEMzg1OzExMTEgMTE2NSAxMUIwOworRDM4NjtEMzg2OzExMTEgMTE2NSAxMUIxO0QzODY7MTExMSAxMTY1IDExQjE7CitEMzg3O0QzODc7MTExMSAxMTY1IDExQjI7RDM4NzsxMTExIDExNjUgMTFCMjsKK0QzODg7RDM4ODsxMTExIDExNjUgMTFCMztEMzg4OzExMTEgMTE2NSAxMUIzOworRDM4OTtEMzg5OzExMTEgMTE2NSAxMUI0O0QzODk7MTExMSAxMTY1IDExQjQ7CitEMzhBO0QzOEE7MTExMSAxMTY1IDExQjU7RDM4QTsxMTExIDExNjUgMTFCNTsKK0QzOEI7RDM4QjsxMTExIDExNjUgMTFCNjtEMzhCOzExMTEgMTE2NSAxMUI2OworRDM4QztEMzhDOzExMTEgMTE2NSAxMUI3O0QzOEM7MTExMSAxMTY1IDExQjc7CitEMzhEO0QzOEQ7MTExMSAxMTY1IDExQjg7RDM4RDsxMTExIDExNjUgMTFCODsKK0QzOEU7RDM4RTsxMTExIDExNjUgMTFCOTtEMzhFOzExMTEgMTE2NSAxMUI5OworRDM4RjtEMzhGOzExMTEgMTE2NSAxMUJBO0QzOEY7MTExMSAxMTY1IDExQkE7CitEMzkwO0QzOTA7MTExMSAxMTY1IDExQkI7RDM5MDsxMTExIDExNjUgMTFCQjsKK0QzOTE7RDM5MTsxMTExIDExNjUgMTFCQztEMzkxOzExMTEgMTE2NSAxMUJDOworRDM5MjtEMzkyOzExMTEgMTE2NSAxMUJEO0QzOTI7MTExMSAxMTY1IDExQkQ7CitEMzkzO0QzOTM7MTExMSAxMTY1IDExQkU7RDM5MzsxMTExIDExNjUgMTFCRTsKK0QzOTQ7RDM5NDsxMTExIDExNjUgMTFCRjtEMzk0OzExMTEgMTE2NSAxMUJGOworRDM5NTtEMzk1OzExMTEgMTE2NSAxMUMwO0QzOTU7MTExMSAxMTY1IDExQzA7CitEMzk2O0QzOTY7MTExMSAxMTY1IDExQzE7RDM5NjsxMTExIDExNjUgMTFDMTsKK0QzOTc7RDM5NzsxMTExIDExNjUgMTFDMjtEMzk3OzExMTEgMTE2NSAxMUMyOworRDM5ODtEMzk4OzExMTEgMTE2NjtEMzk4OzExMTEgMTE2NjsKK0QzOTk7RDM5OTsxMTExIDExNjYgMTFBODtEMzk5OzExMTEgMTE2NiAxMUE4OworRDM5QTtEMzlBOzExMTEgMTE2NiAxMUE5O0QzOUE7MTExMSAxMTY2IDExQTk7CitEMzlCO0QzOUI7MTExMSAxMTY2IDExQUE7RDM5QjsxMTExIDExNjYgMTFBQTsKK0QzOUM7RDM5QzsxMTExIDExNjYgMTFBQjtEMzlDOzExMTEgMTE2NiAxMUFCOworRDM5RDtEMzlEOzExMTEgMTE2NiAxMUFDO0QzOUQ7MTExMSAxMTY2IDExQUM7CitEMzlFO0QzOUU7MTExMSAxMTY2IDExQUQ7RDM5RTsxMTExIDExNjYgMTFBRDsKK0QzOUY7RDM5RjsxMTExIDExNjYgMTFBRTtEMzlGOzExMTEgMTE2NiAxMUFFOworRDNBMDtEM0EwOzExMTEgMTE2NiAxMUFGO0QzQTA7MTExMSAxMTY2IDExQUY7CitEM0ExO0QzQTE7MTExMSAxMTY2IDExQjA7RDNBMTsxMTExIDExNjYgMTFCMDsKK0QzQTI7RDNBMjsxMTExIDExNjYgMTFCMTtEM0EyOzExMTEgMTE2NiAxMUIxOworRDNBMztEM0EzOzExMTEgMTE2NiAxMUIyO0QzQTM7MTExMSAxMTY2IDExQjI7CitEM0E0O0QzQTQ7MTExMSAxMTY2IDExQjM7RDNBNDsxMTExIDExNjYgMTFCMzsKK0QzQTU7RDNBNTsxMTExIDExNjYgMTFCNDtEM0E1OzExMTEgMTE2NiAxMUI0OworRDNBNjtEM0E2OzExMTEgMTE2NiAxMUI1O0QzQTY7MTExMSAxMTY2IDExQjU7CitEM0E3O0QzQTc7MTExMSAxMTY2IDExQjY7RDNBNzsxMTExIDExNjYgMTFCNjsKK0QzQTg7RDNBODsxMTExIDExNjYgMTFCNztEM0E4OzExMTEgMTE2NiAxMUI3OworRDNBOTtEM0E5OzExMTEgMTE2NiAxMUI4O0QzQTk7MTExMSAxMTY2IDExQjg7CitEM0FBO0QzQUE7MTExMSAxMTY2IDExQjk7RDNBQTsxMTExIDExNjYgMTFCOTsKK0QzQUI7RDNBQjsxMTExIDExNjYgMTFCQTtEM0FCOzExMTEgMTE2NiAxMUJBOworRDNBQztEM0FDOzExMTEgMTE2NiAxMUJCO0QzQUM7MTExMSAxMTY2IDExQkI7CitEM0FEO0QzQUQ7MTExMSAxMTY2IDExQkM7RDNBRDsxMTExIDExNjYgMTFCQzsKK0QzQUU7RDNBRTsxMTExIDExNjYgMTFCRDtEM0FFOzExMTEgMTE2NiAxMUJEOworRDNBRjtEM0FGOzExMTEgMTE2NiAxMUJFO0QzQUY7MTExMSAxMTY2IDExQkU7CitEM0IwO0QzQjA7MTExMSAxMTY2IDExQkY7RDNCMDsxMTExIDExNjYgMTFCRjsKK0QzQjE7RDNCMTsxMTExIDExNjYgMTFDMDtEM0IxOzExMTEgMTE2NiAxMUMwOworRDNCMjtEM0IyOzExMTEgMTE2NiAxMUMxO0QzQjI7MTExMSAxMTY2IDExQzE7CitEM0IzO0QzQjM7MTExMSAxMTY2IDExQzI7RDNCMzsxMTExIDExNjYgMTFDMjsKK0QzQjQ7RDNCNDsxMTExIDExNjc7RDNCNDsxMTExIDExNjc7CitEM0I1O0QzQjU7MTExMSAxMTY3IDExQTg7RDNCNTsxMTExIDExNjcgMTFBODsKK0QzQjY7RDNCNjsxMTExIDExNjcgMTFBOTtEM0I2OzExMTEgMTE2NyAxMUE5OworRDNCNztEM0I3OzExMTEgMTE2NyAxMUFBO0QzQjc7MTExMSAxMTY3IDExQUE7CitEM0I4O0QzQjg7MTExMSAxMTY3IDExQUI7RDNCODsxMTExIDExNjcgMTFBQjsKK0QzQjk7RDNCOTsxMTExIDExNjcgMTFBQztEM0I5OzExMTEgMTE2NyAxMUFDOworRDNCQTtEM0JBOzExMTEgMTE2NyAxMUFEO0QzQkE7MTExMSAxMTY3IDExQUQ7CitEM0JCO0QzQkI7MTExMSAxMTY3IDExQUU7RDNCQjsxMTExIDExNjcgMTFBRTsKK0QzQkM7RDNCQzsxMTExIDExNjcgMTFBRjtEM0JDOzExMTEgMTE2NyAxMUFGOworRDNCRDtEM0JEOzExMTEgMTE2NyAxMUIwO0QzQkQ7MTExMSAxMTY3IDExQjA7CitEM0JFO0QzQkU7MTExMSAxMTY3IDExQjE7RDNCRTsxMTExIDExNjcgMTFCMTsKK0QzQkY7RDNCRjsxMTExIDExNjcgMTFCMjtEM0JGOzExMTEgMTE2NyAxMUIyOworRDNDMDtEM0MwOzExMTEgMTE2NyAxMUIzO0QzQzA7MTExMSAxMTY3IDExQjM7CitEM0MxO0QzQzE7MTExMSAxMTY3IDExQjQ7RDNDMTsxMTExIDExNjcgMTFCNDsKK0QzQzI7RDNDMjsxMTExIDExNjcgMTFCNTtEM0MyOzExMTEgMTE2NyAxMUI1OworRDNDMztEM0MzOzExMTEgMTE2NyAxMUI2O0QzQzM7MTExMSAxMTY3IDExQjY7CitEM0M0O0QzQzQ7MTExMSAxMTY3IDExQjc7RDNDNDsxMTExIDExNjcgMTFCNzsKK0QzQzU7RDNDNTsxMTExIDExNjcgMTFCODtEM0M1OzExMTEgMTE2NyAxMUI4OworRDNDNjtEM0M2OzExMTEgMTE2NyAxMUI5O0QzQzY7MTExMSAxMTY3IDExQjk7CitEM0M3O0QzQzc7MTExMSAxMTY3IDExQkE7RDNDNzsxMTExIDExNjcgMTFCQTsKK0QzQzg7RDNDODsxMTExIDExNjcgMTFCQjtEM0M4OzExMTEgMTE2NyAxMUJCOworRDNDOTtEM0M5OzExMTEgMTE2NyAxMUJDO0QzQzk7MTExMSAxMTY3IDExQkM7CitEM0NBO0QzQ0E7MTExMSAxMTY3IDExQkQ7RDNDQTsxMTExIDExNjcgMTFCRDsKK0QzQ0I7RDNDQjsxMTExIDExNjcgMTFCRTtEM0NCOzExMTEgMTE2NyAxMUJFOworRDNDQztEM0NDOzExMTEgMTE2NyAxMUJGO0QzQ0M7MTExMSAxMTY3IDExQkY7CitEM0NEO0QzQ0Q7MTExMSAxMTY3IDExQzA7RDNDRDsxMTExIDExNjcgMTFDMDsKK0QzQ0U7RDNDRTsxMTExIDExNjcgMTFDMTtEM0NFOzExMTEgMTE2NyAxMUMxOworRDNDRjtEM0NGOzExMTEgMTE2NyAxMUMyO0QzQ0Y7MTExMSAxMTY3IDExQzI7CitEM0QwO0QzRDA7MTExMSAxMTY4O0QzRDA7MTExMSAxMTY4OworRDNEMTtEM0QxOzExMTEgMTE2OCAxMUE4O0QzRDE7MTExMSAxMTY4IDExQTg7CitEM0QyO0QzRDI7MTExMSAxMTY4IDExQTk7RDNEMjsxMTExIDExNjggMTFBOTsKK0QzRDM7RDNEMzsxMTExIDExNjggMTFBQTtEM0QzOzExMTEgMTE2OCAxMUFBOworRDNENDtEM0Q0OzExMTEgMTE2OCAxMUFCO0QzRDQ7MTExMSAxMTY4IDExQUI7CitEM0Q1O0QzRDU7MTExMSAxMTY4IDExQUM7RDNENTsxMTExIDExNjggMTFBQzsKK0QzRDY7RDNENjsxMTExIDExNjggMTFBRDtEM0Q2OzExMTEgMTE2OCAxMUFEOworRDNENztEM0Q3OzExMTEgMTE2OCAxMUFFO0QzRDc7MTExMSAxMTY4IDExQUU7CitEM0Q4O0QzRDg7MTExMSAxMTY4IDExQUY7RDNEODsxMTExIDExNjggMTFBRjsKK0QzRDk7RDNEOTsxMTExIDExNjggMTFCMDtEM0Q5OzExMTEgMTE2OCAxMUIwOworRDNEQTtEM0RBOzExMTEgMTE2OCAxMUIxO0QzREE7MTExMSAxMTY4IDExQjE7CitEM0RCO0QzREI7MTExMSAxMTY4IDExQjI7RDNEQjsxMTExIDExNjggMTFCMjsKK0QzREM7RDNEQzsxMTExIDExNjggMTFCMztEM0RDOzExMTEgMTE2OCAxMUIzOworRDNERDtEM0REOzExMTEgMTE2OCAxMUI0O0QzREQ7MTExMSAxMTY4IDExQjQ7CitEM0RFO0QzREU7MTExMSAxMTY4IDExQjU7RDNERTsxMTExIDExNjggMTFCNTsKK0QzREY7RDNERjsxMTExIDExNjggMTFCNjtEM0RGOzExMTEgMTE2OCAxMUI2OworRDNFMDtEM0UwOzExMTEgMTE2OCAxMUI3O0QzRTA7MTExMSAxMTY4IDExQjc7CitEM0UxO0QzRTE7MTExMSAxMTY4IDExQjg7RDNFMTsxMTExIDExNjggMTFCODsKK0QzRTI7RDNFMjsxMTExIDExNjggMTFCOTtEM0UyOzExMTEgMTE2OCAxMUI5OworRDNFMztEM0UzOzExMTEgMTE2OCAxMUJBO0QzRTM7MTExMSAxMTY4IDExQkE7CitEM0U0O0QzRTQ7MTExMSAxMTY4IDExQkI7RDNFNDsxMTExIDExNjggMTFCQjsKK0QzRTU7RDNFNTsxMTExIDExNjggMTFCQztEM0U1OzExMTEgMTE2OCAxMUJDOworRDNFNjtEM0U2OzExMTEgMTE2OCAxMUJEO0QzRTY7MTExMSAxMTY4IDExQkQ7CitEM0U3O0QzRTc7MTExMSAxMTY4IDExQkU7RDNFNzsxMTExIDExNjggMTFCRTsKK0QzRTg7RDNFODsxMTExIDExNjggMTFCRjtEM0U4OzExMTEgMTE2OCAxMUJGOworRDNFOTtEM0U5OzExMTEgMTE2OCAxMUMwO0QzRTk7MTExMSAxMTY4IDExQzA7CitEM0VBO0QzRUE7MTExMSAxMTY4IDExQzE7RDNFQTsxMTExIDExNjggMTFDMTsKK0QzRUI7RDNFQjsxMTExIDExNjggMTFDMjtEM0VCOzExMTEgMTE2OCAxMUMyOworRDNFQztEM0VDOzExMTEgMTE2OTtEM0VDOzExMTEgMTE2OTsKK0QzRUQ7RDNFRDsxMTExIDExNjkgMTFBODtEM0VEOzExMTEgMTE2OSAxMUE4OworRDNFRTtEM0VFOzExMTEgMTE2OSAxMUE5O0QzRUU7MTExMSAxMTY5IDExQTk7CitEM0VGO0QzRUY7MTExMSAxMTY5IDExQUE7RDNFRjsxMTExIDExNjkgMTFBQTsKK0QzRjA7RDNGMDsxMTExIDExNjkgMTFBQjtEM0YwOzExMTEgMTE2OSAxMUFCOworRDNGMTtEM0YxOzExMTEgMTE2OSAxMUFDO0QzRjE7MTExMSAxMTY5IDExQUM7CitEM0YyO0QzRjI7MTExMSAxMTY5IDExQUQ7RDNGMjsxMTExIDExNjkgMTFBRDsKK0QzRjM7RDNGMzsxMTExIDExNjkgMTFBRTtEM0YzOzExMTEgMTE2OSAxMUFFOworRDNGNDtEM0Y0OzExMTEgMTE2OSAxMUFGO0QzRjQ7MTExMSAxMTY5IDExQUY7CitEM0Y1O0QzRjU7MTExMSAxMTY5IDExQjA7RDNGNTsxMTExIDExNjkgMTFCMDsKK0QzRjY7RDNGNjsxMTExIDExNjkgMTFCMTtEM0Y2OzExMTEgMTE2OSAxMUIxOworRDNGNztEM0Y3OzExMTEgMTE2OSAxMUIyO0QzRjc7MTExMSAxMTY5IDExQjI7CitEM0Y4O0QzRjg7MTExMSAxMTY5IDExQjM7RDNGODsxMTExIDExNjkgMTFCMzsKK0QzRjk7RDNGOTsxMTExIDExNjkgMTFCNDtEM0Y5OzExMTEgMTE2OSAxMUI0OworRDNGQTtEM0ZBOzExMTEgMTE2OSAxMUI1O0QzRkE7MTExMSAxMTY5IDExQjU7CitEM0ZCO0QzRkI7MTExMSAxMTY5IDExQjY7RDNGQjsxMTExIDExNjkgMTFCNjsKK0QzRkM7RDNGQzsxMTExIDExNjkgMTFCNztEM0ZDOzExMTEgMTE2OSAxMUI3OworRDNGRDtEM0ZEOzExMTEgMTE2OSAxMUI4O0QzRkQ7MTExMSAxMTY5IDExQjg7CitEM0ZFO0QzRkU7MTExMSAxMTY5IDExQjk7RDNGRTsxMTExIDExNjkgMTFCOTsKK0QzRkY7RDNGRjsxMTExIDExNjkgMTFCQTtEM0ZGOzExMTEgMTE2OSAxMUJBOworRDQwMDtENDAwOzExMTEgMTE2OSAxMUJCO0Q0MDA7MTExMSAxMTY5IDExQkI7CitENDAxO0Q0MDE7MTExMSAxMTY5IDExQkM7RDQwMTsxMTExIDExNjkgMTFCQzsKK0Q0MDI7RDQwMjsxMTExIDExNjkgMTFCRDtENDAyOzExMTEgMTE2OSAxMUJEOworRDQwMztENDAzOzExMTEgMTE2OSAxMUJFO0Q0MDM7MTExMSAxMTY5IDExQkU7CitENDA0O0Q0MDQ7MTExMSAxMTY5IDExQkY7RDQwNDsxMTExIDExNjkgMTFCRjsKK0Q0MDU7RDQwNTsxMTExIDExNjkgMTFDMDtENDA1OzExMTEgMTE2OSAxMUMwOworRDQwNjtENDA2OzExMTEgMTE2OSAxMUMxO0Q0MDY7MTExMSAxMTY5IDExQzE7CitENDA3O0Q0MDc7MTExMSAxMTY5IDExQzI7RDQwNzsxMTExIDExNjkgMTFDMjsKK0Q0MDg7RDQwODsxMTExIDExNkE7RDQwODsxMTExIDExNkE7CitENDA5O0Q0MDk7MTExMSAxMTZBIDExQTg7RDQwOTsxMTExIDExNkEgMTFBODsKK0Q0MEE7RDQwQTsxMTExIDExNkEgMTFBOTtENDBBOzExMTEgMTE2QSAxMUE5OworRDQwQjtENDBCOzExMTEgMTE2QSAxMUFBO0Q0MEI7MTExMSAxMTZBIDExQUE7CitENDBDO0Q0MEM7MTExMSAxMTZBIDExQUI7RDQwQzsxMTExIDExNkEgMTFBQjsKK0Q0MEQ7RDQwRDsxMTExIDExNkEgMTFBQztENDBEOzExMTEgMTE2QSAxMUFDOworRDQwRTtENDBFOzExMTEgMTE2QSAxMUFEO0Q0MEU7MTExMSAxMTZBIDExQUQ7CitENDBGO0Q0MEY7MTExMSAxMTZBIDExQUU7RDQwRjsxMTExIDExNkEgMTFBRTsKK0Q0MTA7RDQxMDsxMTExIDExNkEgMTFBRjtENDEwOzExMTEgMTE2QSAxMUFGOworRDQxMTtENDExOzExMTEgMTE2QSAxMUIwO0Q0MTE7MTExMSAxMTZBIDExQjA7CitENDEyO0Q0MTI7MTExMSAxMTZBIDExQjE7RDQxMjsxMTExIDExNkEgMTFCMTsKK0Q0MTM7RDQxMzsxMTExIDExNkEgMTFCMjtENDEzOzExMTEgMTE2QSAxMUIyOworRDQxNDtENDE0OzExMTEgMTE2QSAxMUIzO0Q0MTQ7MTExMSAxMTZBIDExQjM7CitENDE1O0Q0MTU7MTExMSAxMTZBIDExQjQ7RDQxNTsxMTExIDExNkEgMTFCNDsKK0Q0MTY7RDQxNjsxMTExIDExNkEgMTFCNTtENDE2OzExMTEgMTE2QSAxMUI1OworRDQxNztENDE3OzExMTEgMTE2QSAxMUI2O0Q0MTc7MTExMSAxMTZBIDExQjY7CitENDE4O0Q0MTg7MTExMSAxMTZBIDExQjc7RDQxODsxMTExIDExNkEgMTFCNzsKK0Q0MTk7RDQxOTsxMTExIDExNkEgMTFCODtENDE5OzExMTEgMTE2QSAxMUI4OworRDQxQTtENDFBOzExMTEgMTE2QSAxMUI5O0Q0MUE7MTExMSAxMTZBIDExQjk7CitENDFCO0Q0MUI7MTExMSAxMTZBIDExQkE7RDQxQjsxMTExIDExNkEgMTFCQTsKK0Q0MUM7RDQxQzsxMTExIDExNkEgMTFCQjtENDFDOzExMTEgMTE2QSAxMUJCOworRDQxRDtENDFEOzExMTEgMTE2QSAxMUJDO0Q0MUQ7MTExMSAxMTZBIDExQkM7CitENDFFO0Q0MUU7MTExMSAxMTZBIDExQkQ7RDQxRTsxMTExIDExNkEgMTFCRDsKK0Q0MUY7RDQxRjsxMTExIDExNkEgMTFCRTtENDFGOzExMTEgMTE2QSAxMUJFOworRDQyMDtENDIwOzExMTEgMTE2QSAxMUJGO0Q0MjA7MTExMSAxMTZBIDExQkY7CitENDIxO0Q0MjE7MTExMSAxMTZBIDExQzA7RDQyMTsxMTExIDExNkEgMTFDMDsKK0Q0MjI7RDQyMjsxMTExIDExNkEgMTFDMTtENDIyOzExMTEgMTE2QSAxMUMxOworRDQyMztENDIzOzExMTEgMTE2QSAxMUMyO0Q0MjM7MTExMSAxMTZBIDExQzI7CitENDI0O0Q0MjQ7MTExMSAxMTZCO0Q0MjQ7MTExMSAxMTZCOworRDQyNTtENDI1OzExMTEgMTE2QiAxMUE4O0Q0MjU7MTExMSAxMTZCIDExQTg7CitENDI2O0Q0MjY7MTExMSAxMTZCIDExQTk7RDQyNjsxMTExIDExNkIgMTFBOTsKK0Q0Mjc7RDQyNzsxMTExIDExNkIgMTFBQTtENDI3OzExMTEgMTE2QiAxMUFBOworRDQyODtENDI4OzExMTEgMTE2QiAxMUFCO0Q0Mjg7MTExMSAxMTZCIDExQUI7CitENDI5O0Q0Mjk7MTExMSAxMTZCIDExQUM7RDQyOTsxMTExIDExNkIgMTFBQzsKK0Q0MkE7RDQyQTsxMTExIDExNkIgMTFBRDtENDJBOzExMTEgMTE2QiAxMUFEOworRDQyQjtENDJCOzExMTEgMTE2QiAxMUFFO0Q0MkI7MTExMSAxMTZCIDExQUU7CitENDJDO0Q0MkM7MTExMSAxMTZCIDExQUY7RDQyQzsxMTExIDExNkIgMTFBRjsKK0Q0MkQ7RDQyRDsxMTExIDExNkIgMTFCMDtENDJEOzExMTEgMTE2QiAxMUIwOworRDQyRTtENDJFOzExMTEgMTE2QiAxMUIxO0Q0MkU7MTExMSAxMTZCIDExQjE7CitENDJGO0Q0MkY7MTExMSAxMTZCIDExQjI7RDQyRjsxMTExIDExNkIgMTFCMjsKK0Q0MzA7RDQzMDsxMTExIDExNkIgMTFCMztENDMwOzExMTEgMTE2QiAxMUIzOworRDQzMTtENDMxOzExMTEgMTE2QiAxMUI0O0Q0MzE7MTExMSAxMTZCIDExQjQ7CitENDMyO0Q0MzI7MTExMSAxMTZCIDExQjU7RDQzMjsxMTExIDExNkIgMTFCNTsKK0Q0MzM7RDQzMzsxMTExIDExNkIgMTFCNjtENDMzOzExMTEgMTE2QiAxMUI2OworRDQzNDtENDM0OzExMTEgMTE2QiAxMUI3O0Q0MzQ7MTExMSAxMTZCIDExQjc7CitENDM1O0Q0MzU7MTExMSAxMTZCIDExQjg7RDQzNTsxMTExIDExNkIgMTFCODsKK0Q0MzY7RDQzNjsxMTExIDExNkIgMTFCOTtENDM2OzExMTEgMTE2QiAxMUI5OworRDQzNztENDM3OzExMTEgMTE2QiAxMUJBO0Q0Mzc7MTExMSAxMTZCIDExQkE7CitENDM4O0Q0Mzg7MTExMSAxMTZCIDExQkI7RDQzODsxMTExIDExNkIgMTFCQjsKK0Q0Mzk7RDQzOTsxMTExIDExNkIgMTFCQztENDM5OzExMTEgMTE2QiAxMUJDOworRDQzQTtENDNBOzExMTEgMTE2QiAxMUJEO0Q0M0E7MTExMSAxMTZCIDExQkQ7CitENDNCO0Q0M0I7MTExMSAxMTZCIDExQkU7RDQzQjsxMTExIDExNkIgMTFCRTsKK0Q0M0M7RDQzQzsxMTExIDExNkIgMTFCRjtENDNDOzExMTEgMTE2QiAxMUJGOworRDQzRDtENDNEOzExMTEgMTE2QiAxMUMwO0Q0M0Q7MTExMSAxMTZCIDExQzA7CitENDNFO0Q0M0U7MTExMSAxMTZCIDExQzE7RDQzRTsxMTExIDExNkIgMTFDMTsKK0Q0M0Y7RDQzRjsxMTExIDExNkIgMTFDMjtENDNGOzExMTEgMTE2QiAxMUMyOworRDQ0MDtENDQwOzExMTEgMTE2QztENDQwOzExMTEgMTE2QzsKK0Q0NDE7RDQ0MTsxMTExIDExNkMgMTFBODtENDQxOzExMTEgMTE2QyAxMUE4OworRDQ0MjtENDQyOzExMTEgMTE2QyAxMUE5O0Q0NDI7MTExMSAxMTZDIDExQTk7CitENDQzO0Q0NDM7MTExMSAxMTZDIDExQUE7RDQ0MzsxMTExIDExNkMgMTFBQTsKK0Q0NDQ7RDQ0NDsxMTExIDExNkMgMTFBQjtENDQ0OzExMTEgMTE2QyAxMUFCOworRDQ0NTtENDQ1OzExMTEgMTE2QyAxMUFDO0Q0NDU7MTExMSAxMTZDIDExQUM7CitENDQ2O0Q0NDY7MTExMSAxMTZDIDExQUQ7RDQ0NjsxMTExIDExNkMgMTFBRDsKK0Q0NDc7RDQ0NzsxMTExIDExNkMgMTFBRTtENDQ3OzExMTEgMTE2QyAxMUFFOworRDQ0ODtENDQ4OzExMTEgMTE2QyAxMUFGO0Q0NDg7MTExMSAxMTZDIDExQUY7CitENDQ5O0Q0NDk7MTExMSAxMTZDIDExQjA7RDQ0OTsxMTExIDExNkMgMTFCMDsKK0Q0NEE7RDQ0QTsxMTExIDExNkMgMTFCMTtENDRBOzExMTEgMTE2QyAxMUIxOworRDQ0QjtENDRCOzExMTEgMTE2QyAxMUIyO0Q0NEI7MTExMSAxMTZDIDExQjI7CitENDRDO0Q0NEM7MTExMSAxMTZDIDExQjM7RDQ0QzsxMTExIDExNkMgMTFCMzsKK0Q0NEQ7RDQ0RDsxMTExIDExNkMgMTFCNDtENDREOzExMTEgMTE2QyAxMUI0OworRDQ0RTtENDRFOzExMTEgMTE2QyAxMUI1O0Q0NEU7MTExMSAxMTZDIDExQjU7CitENDRGO0Q0NEY7MTExMSAxMTZDIDExQjY7RDQ0RjsxMTExIDExNkMgMTFCNjsKK0Q0NTA7RDQ1MDsxMTExIDExNkMgMTFCNztENDUwOzExMTEgMTE2QyAxMUI3OworRDQ1MTtENDUxOzExMTEgMTE2QyAxMUI4O0Q0NTE7MTExMSAxMTZDIDExQjg7CitENDUyO0Q0NTI7MTExMSAxMTZDIDExQjk7RDQ1MjsxMTExIDExNkMgMTFCOTsKK0Q0NTM7RDQ1MzsxMTExIDExNkMgMTFCQTtENDUzOzExMTEgMTE2QyAxMUJBOworRDQ1NDtENDU0OzExMTEgMTE2QyAxMUJCO0Q0NTQ7MTExMSAxMTZDIDExQkI7CitENDU1O0Q0NTU7MTExMSAxMTZDIDExQkM7RDQ1NTsxMTExIDExNkMgMTFCQzsKK0Q0NTY7RDQ1NjsxMTExIDExNkMgMTFCRDtENDU2OzExMTEgMTE2QyAxMUJEOworRDQ1NztENDU3OzExMTEgMTE2QyAxMUJFO0Q0NTc7MTExMSAxMTZDIDExQkU7CitENDU4O0Q0NTg7MTExMSAxMTZDIDExQkY7RDQ1ODsxMTExIDExNkMgMTFCRjsKK0Q0NTk7RDQ1OTsxMTExIDExNkMgMTFDMDtENDU5OzExMTEgMTE2QyAxMUMwOworRDQ1QTtENDVBOzExMTEgMTE2QyAxMUMxO0Q0NUE7MTExMSAxMTZDIDExQzE7CitENDVCO0Q0NUI7MTExMSAxMTZDIDExQzI7RDQ1QjsxMTExIDExNkMgMTFDMjsKK0Q0NUM7RDQ1QzsxMTExIDExNkQ7RDQ1QzsxMTExIDExNkQ7CitENDVEO0Q0NUQ7MTExMSAxMTZEIDExQTg7RDQ1RDsxMTExIDExNkQgMTFBODsKK0Q0NUU7RDQ1RTsxMTExIDExNkQgMTFBOTtENDVFOzExMTEgMTE2RCAxMUE5OworRDQ1RjtENDVGOzExMTEgMTE2RCAxMUFBO0Q0NUY7MTExMSAxMTZEIDExQUE7CitENDYwO0Q0NjA7MTExMSAxMTZEIDExQUI7RDQ2MDsxMTExIDExNkQgMTFBQjsKK0Q0NjE7RDQ2MTsxMTExIDExNkQgMTFBQztENDYxOzExMTEgMTE2RCAxMUFDOworRDQ2MjtENDYyOzExMTEgMTE2RCAxMUFEO0Q0NjI7MTExMSAxMTZEIDExQUQ7CitENDYzO0Q0NjM7MTExMSAxMTZEIDExQUU7RDQ2MzsxMTExIDExNkQgMTFBRTsKK0Q0NjQ7RDQ2NDsxMTExIDExNkQgMTFBRjtENDY0OzExMTEgMTE2RCAxMUFGOworRDQ2NTtENDY1OzExMTEgMTE2RCAxMUIwO0Q0NjU7MTExMSAxMTZEIDExQjA7CitENDY2O0Q0NjY7MTExMSAxMTZEIDExQjE7RDQ2NjsxMTExIDExNkQgMTFCMTsKK0Q0Njc7RDQ2NzsxMTExIDExNkQgMTFCMjtENDY3OzExMTEgMTE2RCAxMUIyOworRDQ2ODtENDY4OzExMTEgMTE2RCAxMUIzO0Q0Njg7MTExMSAxMTZEIDExQjM7CitENDY5O0Q0Njk7MTExMSAxMTZEIDExQjQ7RDQ2OTsxMTExIDExNkQgMTFCNDsKK0Q0NkE7RDQ2QTsxMTExIDExNkQgMTFCNTtENDZBOzExMTEgMTE2RCAxMUI1OworRDQ2QjtENDZCOzExMTEgMTE2RCAxMUI2O0Q0NkI7MTExMSAxMTZEIDExQjY7CitENDZDO0Q0NkM7MTExMSAxMTZEIDExQjc7RDQ2QzsxMTExIDExNkQgMTFCNzsKK0Q0NkQ7RDQ2RDsxMTExIDExNkQgMTFCODtENDZEOzExMTEgMTE2RCAxMUI4OworRDQ2RTtENDZFOzExMTEgMTE2RCAxMUI5O0Q0NkU7MTExMSAxMTZEIDExQjk7CitENDZGO0Q0NkY7MTExMSAxMTZEIDExQkE7RDQ2RjsxMTExIDExNkQgMTFCQTsKK0Q0NzA7RDQ3MDsxMTExIDExNkQgMTFCQjtENDcwOzExMTEgMTE2RCAxMUJCOworRDQ3MTtENDcxOzExMTEgMTE2RCAxMUJDO0Q0NzE7MTExMSAxMTZEIDExQkM7CitENDcyO0Q0NzI7MTExMSAxMTZEIDExQkQ7RDQ3MjsxMTExIDExNkQgMTFCRDsKK0Q0NzM7RDQ3MzsxMTExIDExNkQgMTFCRTtENDczOzExMTEgMTE2RCAxMUJFOworRDQ3NDtENDc0OzExMTEgMTE2RCAxMUJGO0Q0NzQ7MTExMSAxMTZEIDExQkY7CitENDc1O0Q0NzU7MTExMSAxMTZEIDExQzA7RDQ3NTsxMTExIDExNkQgMTFDMDsKK0Q0NzY7RDQ3NjsxMTExIDExNkQgMTFDMTtENDc2OzExMTEgMTE2RCAxMUMxOworRDQ3NztENDc3OzExMTEgMTE2RCAxMUMyO0Q0Nzc7MTExMSAxMTZEIDExQzI7CitENDc4O0Q0Nzg7MTExMSAxMTZFO0Q0Nzg7MTExMSAxMTZFOworRDQ3OTtENDc5OzExMTEgMTE2RSAxMUE4O0Q0Nzk7MTExMSAxMTZFIDExQTg7CitENDdBO0Q0N0E7MTExMSAxMTZFIDExQTk7RDQ3QTsxMTExIDExNkUgMTFBOTsKK0Q0N0I7RDQ3QjsxMTExIDExNkUgMTFBQTtENDdCOzExMTEgMTE2RSAxMUFBOworRDQ3QztENDdDOzExMTEgMTE2RSAxMUFCO0Q0N0M7MTExMSAxMTZFIDExQUI7CitENDdEO0Q0N0Q7MTExMSAxMTZFIDExQUM7RDQ3RDsxMTExIDExNkUgMTFBQzsKK0Q0N0U7RDQ3RTsxMTExIDExNkUgMTFBRDtENDdFOzExMTEgMTE2RSAxMUFEOworRDQ3RjtENDdGOzExMTEgMTE2RSAxMUFFO0Q0N0Y7MTExMSAxMTZFIDExQUU7CitENDgwO0Q0ODA7MTExMSAxMTZFIDExQUY7RDQ4MDsxMTExIDExNkUgMTFBRjsKK0Q0ODE7RDQ4MTsxMTExIDExNkUgMTFCMDtENDgxOzExMTEgMTE2RSAxMUIwOworRDQ4MjtENDgyOzExMTEgMTE2RSAxMUIxO0Q0ODI7MTExMSAxMTZFIDExQjE7CitENDgzO0Q0ODM7MTExMSAxMTZFIDExQjI7RDQ4MzsxMTExIDExNkUgMTFCMjsKK0Q0ODQ7RDQ4NDsxMTExIDExNkUgMTFCMztENDg0OzExMTEgMTE2RSAxMUIzOworRDQ4NTtENDg1OzExMTEgMTE2RSAxMUI0O0Q0ODU7MTExMSAxMTZFIDExQjQ7CitENDg2O0Q0ODY7MTExMSAxMTZFIDExQjU7RDQ4NjsxMTExIDExNkUgMTFCNTsKK0Q0ODc7RDQ4NzsxMTExIDExNkUgMTFCNjtENDg3OzExMTEgMTE2RSAxMUI2OworRDQ4ODtENDg4OzExMTEgMTE2RSAxMUI3O0Q0ODg7MTExMSAxMTZFIDExQjc7CitENDg5O0Q0ODk7MTExMSAxMTZFIDExQjg7RDQ4OTsxMTExIDExNkUgMTFCODsKK0Q0OEE7RDQ4QTsxMTExIDExNkUgMTFCOTtENDhBOzExMTEgMTE2RSAxMUI5OworRDQ4QjtENDhCOzExMTEgMTE2RSAxMUJBO0Q0OEI7MTExMSAxMTZFIDExQkE7CitENDhDO0Q0OEM7MTExMSAxMTZFIDExQkI7RDQ4QzsxMTExIDExNkUgMTFCQjsKK0Q0OEQ7RDQ4RDsxMTExIDExNkUgMTFCQztENDhEOzExMTEgMTE2RSAxMUJDOworRDQ4RTtENDhFOzExMTEgMTE2RSAxMUJEO0Q0OEU7MTExMSAxMTZFIDExQkQ7CitENDhGO0Q0OEY7MTExMSAxMTZFIDExQkU7RDQ4RjsxMTExIDExNkUgMTFCRTsKK0Q0OTA7RDQ5MDsxMTExIDExNkUgMTFCRjtENDkwOzExMTEgMTE2RSAxMUJGOworRDQ5MTtENDkxOzExMTEgMTE2RSAxMUMwO0Q0OTE7MTExMSAxMTZFIDExQzA7CitENDkyO0Q0OTI7MTExMSAxMTZFIDExQzE7RDQ5MjsxMTExIDExNkUgMTFDMTsKK0Q0OTM7RDQ5MzsxMTExIDExNkUgMTFDMjtENDkzOzExMTEgMTE2RSAxMUMyOworRDQ5NDtENDk0OzExMTEgMTE2RjtENDk0OzExMTEgMTE2RjsKK0Q0OTU7RDQ5NTsxMTExIDExNkYgMTFBODtENDk1OzExMTEgMTE2RiAxMUE4OworRDQ5NjtENDk2OzExMTEgMTE2RiAxMUE5O0Q0OTY7MTExMSAxMTZGIDExQTk7CitENDk3O0Q0OTc7MTExMSAxMTZGIDExQUE7RDQ5NzsxMTExIDExNkYgMTFBQTsKK0Q0OTg7RDQ5ODsxMTExIDExNkYgMTFBQjtENDk4OzExMTEgMTE2RiAxMUFCOworRDQ5OTtENDk5OzExMTEgMTE2RiAxMUFDO0Q0OTk7MTExMSAxMTZGIDExQUM7CitENDlBO0Q0OUE7MTExMSAxMTZGIDExQUQ7RDQ5QTsxMTExIDExNkYgMTFBRDsKK0Q0OUI7RDQ5QjsxMTExIDExNkYgMTFBRTtENDlCOzExMTEgMTE2RiAxMUFFOworRDQ5QztENDlDOzExMTEgMTE2RiAxMUFGO0Q0OUM7MTExMSAxMTZGIDExQUY7CitENDlEO0Q0OUQ7MTExMSAxMTZGIDExQjA7RDQ5RDsxMTExIDExNkYgMTFCMDsKK0Q0OUU7RDQ5RTsxMTExIDExNkYgMTFCMTtENDlFOzExMTEgMTE2RiAxMUIxOworRDQ5RjtENDlGOzExMTEgMTE2RiAxMUIyO0Q0OUY7MTExMSAxMTZGIDExQjI7CitENEEwO0Q0QTA7MTExMSAxMTZGIDExQjM7RDRBMDsxMTExIDExNkYgMTFCMzsKK0Q0QTE7RDRBMTsxMTExIDExNkYgMTFCNDtENEExOzExMTEgMTE2RiAxMUI0OworRDRBMjtENEEyOzExMTEgMTE2RiAxMUI1O0Q0QTI7MTExMSAxMTZGIDExQjU7CitENEEzO0Q0QTM7MTExMSAxMTZGIDExQjY7RDRBMzsxMTExIDExNkYgMTFCNjsKK0Q0QTQ7RDRBNDsxMTExIDExNkYgMTFCNztENEE0OzExMTEgMTE2RiAxMUI3OworRDRBNTtENEE1OzExMTEgMTE2RiAxMUI4O0Q0QTU7MTExMSAxMTZGIDExQjg7CitENEE2O0Q0QTY7MTExMSAxMTZGIDExQjk7RDRBNjsxMTExIDExNkYgMTFCOTsKK0Q0QTc7RDRBNzsxMTExIDExNkYgMTFCQTtENEE3OzExMTEgMTE2RiAxMUJBOworRDRBODtENEE4OzExMTEgMTE2RiAxMUJCO0Q0QTg7MTExMSAxMTZGIDExQkI7CitENEE5O0Q0QTk7MTExMSAxMTZGIDExQkM7RDRBOTsxMTExIDExNkYgMTFCQzsKK0Q0QUE7RDRBQTsxMTExIDExNkYgMTFCRDtENEFBOzExMTEgMTE2RiAxMUJEOworRDRBQjtENEFCOzExMTEgMTE2RiAxMUJFO0Q0QUI7MTExMSAxMTZGIDExQkU7CitENEFDO0Q0QUM7MTExMSAxMTZGIDExQkY7RDRBQzsxMTExIDExNkYgMTFCRjsKK0Q0QUQ7RDRBRDsxMTExIDExNkYgMTFDMDtENEFEOzExMTEgMTE2RiAxMUMwOworRDRBRTtENEFFOzExMTEgMTE2RiAxMUMxO0Q0QUU7MTExMSAxMTZGIDExQzE7CitENEFGO0Q0QUY7MTExMSAxMTZGIDExQzI7RDRBRjsxMTExIDExNkYgMTFDMjsKK0Q0QjA7RDRCMDsxMTExIDExNzA7RDRCMDsxMTExIDExNzA7CitENEIxO0Q0QjE7MTExMSAxMTcwIDExQTg7RDRCMTsxMTExIDExNzAgMTFBODsKK0Q0QjI7RDRCMjsxMTExIDExNzAgMTFBOTtENEIyOzExMTEgMTE3MCAxMUE5OworRDRCMztENEIzOzExMTEgMTE3MCAxMUFBO0Q0QjM7MTExMSAxMTcwIDExQUE7CitENEI0O0Q0QjQ7MTExMSAxMTcwIDExQUI7RDRCNDsxMTExIDExNzAgMTFBQjsKK0Q0QjU7RDRCNTsxMTExIDExNzAgMTFBQztENEI1OzExMTEgMTE3MCAxMUFDOworRDRCNjtENEI2OzExMTEgMTE3MCAxMUFEO0Q0QjY7MTExMSAxMTcwIDExQUQ7CitENEI3O0Q0Qjc7MTExMSAxMTcwIDExQUU7RDRCNzsxMTExIDExNzAgMTFBRTsKK0Q0Qjg7RDRCODsxMTExIDExNzAgMTFBRjtENEI4OzExMTEgMTE3MCAxMUFGOworRDRCOTtENEI5OzExMTEgMTE3MCAxMUIwO0Q0Qjk7MTExMSAxMTcwIDExQjA7CitENEJBO0Q0QkE7MTExMSAxMTcwIDExQjE7RDRCQTsxMTExIDExNzAgMTFCMTsKK0Q0QkI7RDRCQjsxMTExIDExNzAgMTFCMjtENEJCOzExMTEgMTE3MCAxMUIyOworRDRCQztENEJDOzExMTEgMTE3MCAxMUIzO0Q0QkM7MTExMSAxMTcwIDExQjM7CitENEJEO0Q0QkQ7MTExMSAxMTcwIDExQjQ7RDRCRDsxMTExIDExNzAgMTFCNDsKK0Q0QkU7RDRCRTsxMTExIDExNzAgMTFCNTtENEJFOzExMTEgMTE3MCAxMUI1OworRDRCRjtENEJGOzExMTEgMTE3MCAxMUI2O0Q0QkY7MTExMSAxMTcwIDExQjY7CitENEMwO0Q0QzA7MTExMSAxMTcwIDExQjc7RDRDMDsxMTExIDExNzAgMTFCNzsKK0Q0QzE7RDRDMTsxMTExIDExNzAgMTFCODtENEMxOzExMTEgMTE3MCAxMUI4OworRDRDMjtENEMyOzExMTEgMTE3MCAxMUI5O0Q0QzI7MTExMSAxMTcwIDExQjk7CitENEMzO0Q0QzM7MTExMSAxMTcwIDExQkE7RDRDMzsxMTExIDExNzAgMTFCQTsKK0Q0QzQ7RDRDNDsxMTExIDExNzAgMTFCQjtENEM0OzExMTEgMTE3MCAxMUJCOworRDRDNTtENEM1OzExMTEgMTE3MCAxMUJDO0Q0QzU7MTExMSAxMTcwIDExQkM7CitENEM2O0Q0QzY7MTExMSAxMTcwIDExQkQ7RDRDNjsxMTExIDExNzAgMTFCRDsKK0Q0Qzc7RDRDNzsxMTExIDExNzAgMTFCRTtENEM3OzExMTEgMTE3MCAxMUJFOworRDRDODtENEM4OzExMTEgMTE3MCAxMUJGO0Q0Qzg7MTExMSAxMTcwIDExQkY7CitENEM5O0Q0Qzk7MTExMSAxMTcwIDExQzA7RDRDOTsxMTExIDExNzAgMTFDMDsKK0Q0Q0E7RDRDQTsxMTExIDExNzAgMTFDMTtENENBOzExMTEgMTE3MCAxMUMxOworRDRDQjtENENCOzExMTEgMTE3MCAxMUMyO0Q0Q0I7MTExMSAxMTcwIDExQzI7CitENENDO0Q0Q0M7MTExMSAxMTcxO0Q0Q0M7MTExMSAxMTcxOworRDRDRDtENENEOzExMTEgMTE3MSAxMUE4O0Q0Q0Q7MTExMSAxMTcxIDExQTg7CitENENFO0Q0Q0U7MTExMSAxMTcxIDExQTk7RDRDRTsxMTExIDExNzEgMTFBOTsKK0Q0Q0Y7RDRDRjsxMTExIDExNzEgMTFBQTtENENGOzExMTEgMTE3MSAxMUFBOworRDREMDtENEQwOzExMTEgMTE3MSAxMUFCO0Q0RDA7MTExMSAxMTcxIDExQUI7CitENEQxO0Q0RDE7MTExMSAxMTcxIDExQUM7RDREMTsxMTExIDExNzEgMTFBQzsKK0Q0RDI7RDREMjsxMTExIDExNzEgMTFBRDtENEQyOzExMTEgMTE3MSAxMUFEOworRDREMztENEQzOzExMTEgMTE3MSAxMUFFO0Q0RDM7MTExMSAxMTcxIDExQUU7CitENEQ0O0Q0RDQ7MTExMSAxMTcxIDExQUY7RDRENDsxMTExIDExNzEgMTFBRjsKK0Q0RDU7RDRENTsxMTExIDExNzEgMTFCMDtENEQ1OzExMTEgMTE3MSAxMUIwOworRDRENjtENEQ2OzExMTEgMTE3MSAxMUIxO0Q0RDY7MTExMSAxMTcxIDExQjE7CitENEQ3O0Q0RDc7MTExMSAxMTcxIDExQjI7RDRENzsxMTExIDExNzEgMTFCMjsKK0Q0RDg7RDREODsxMTExIDExNzEgMTFCMztENEQ4OzExMTEgMTE3MSAxMUIzOworRDREOTtENEQ5OzExMTEgMTE3MSAxMUI0O0Q0RDk7MTExMSAxMTcxIDExQjQ7CitENERBO0Q0REE7MTExMSAxMTcxIDExQjU7RDREQTsxMTExIDExNzEgMTFCNTsKK0Q0REI7RDREQjsxMTExIDExNzEgMTFCNjtENERCOzExMTEgMTE3MSAxMUI2OworRDREQztENERDOzExMTEgMTE3MSAxMUI3O0Q0REM7MTExMSAxMTcxIDExQjc7CitENEREO0Q0REQ7MTExMSAxMTcxIDExQjg7RDRERDsxMTExIDExNzEgMTFCODsKK0Q0REU7RDRERTsxMTExIDExNzEgMTFCOTtENERFOzExMTEgMTE3MSAxMUI5OworRDRERjtENERGOzExMTEgMTE3MSAxMUJBO0Q0REY7MTExMSAxMTcxIDExQkE7CitENEUwO0Q0RTA7MTExMSAxMTcxIDExQkI7RDRFMDsxMTExIDExNzEgMTFCQjsKK0Q0RTE7RDRFMTsxMTExIDExNzEgMTFCQztENEUxOzExMTEgMTE3MSAxMUJDOworRDRFMjtENEUyOzExMTEgMTE3MSAxMUJEO0Q0RTI7MTExMSAxMTcxIDExQkQ7CitENEUzO0Q0RTM7MTExMSAxMTcxIDExQkU7RDRFMzsxMTExIDExNzEgMTFCRTsKK0Q0RTQ7RDRFNDsxMTExIDExNzEgMTFCRjtENEU0OzExMTEgMTE3MSAxMUJGOworRDRFNTtENEU1OzExMTEgMTE3MSAxMUMwO0Q0RTU7MTExMSAxMTcxIDExQzA7CitENEU2O0Q0RTY7MTExMSAxMTcxIDExQzE7RDRFNjsxMTExIDExNzEgMTFDMTsKK0Q0RTc7RDRFNzsxMTExIDExNzEgMTFDMjtENEU3OzExMTEgMTE3MSAxMUMyOworRDRFODtENEU4OzExMTEgMTE3MjtENEU4OzExMTEgMTE3MjsKK0Q0RTk7RDRFOTsxMTExIDExNzIgMTFBODtENEU5OzExMTEgMTE3MiAxMUE4OworRDRFQTtENEVBOzExMTEgMTE3MiAxMUE5O0Q0RUE7MTExMSAxMTcyIDExQTk7CitENEVCO0Q0RUI7MTExMSAxMTcyIDExQUE7RDRFQjsxMTExIDExNzIgMTFBQTsKK0Q0RUM7RDRFQzsxMTExIDExNzIgMTFBQjtENEVDOzExMTEgMTE3MiAxMUFCOworRDRFRDtENEVEOzExMTEgMTE3MiAxMUFDO0Q0RUQ7MTExMSAxMTcyIDExQUM7CitENEVFO0Q0RUU7MTExMSAxMTcyIDExQUQ7RDRFRTsxMTExIDExNzIgMTFBRDsKK0Q0RUY7RDRFRjsxMTExIDExNzIgMTFBRTtENEVGOzExMTEgMTE3MiAxMUFFOworRDRGMDtENEYwOzExMTEgMTE3MiAxMUFGO0Q0RjA7MTExMSAxMTcyIDExQUY7CitENEYxO0Q0RjE7MTExMSAxMTcyIDExQjA7RDRGMTsxMTExIDExNzIgMTFCMDsKK0Q0RjI7RDRGMjsxMTExIDExNzIgMTFCMTtENEYyOzExMTEgMTE3MiAxMUIxOworRDRGMztENEYzOzExMTEgMTE3MiAxMUIyO0Q0RjM7MTExMSAxMTcyIDExQjI7CitENEY0O0Q0RjQ7MTExMSAxMTcyIDExQjM7RDRGNDsxMTExIDExNzIgMTFCMzsKK0Q0RjU7RDRGNTsxMTExIDExNzIgMTFCNDtENEY1OzExMTEgMTE3MiAxMUI0OworRDRGNjtENEY2OzExMTEgMTE3MiAxMUI1O0Q0RjY7MTExMSAxMTcyIDExQjU7CitENEY3O0Q0Rjc7MTExMSAxMTcyIDExQjY7RDRGNzsxMTExIDExNzIgMTFCNjsKK0Q0Rjg7RDRGODsxMTExIDExNzIgMTFCNztENEY4OzExMTEgMTE3MiAxMUI3OworRDRGOTtENEY5OzExMTEgMTE3MiAxMUI4O0Q0Rjk7MTExMSAxMTcyIDExQjg7CitENEZBO0Q0RkE7MTExMSAxMTcyIDExQjk7RDRGQTsxMTExIDExNzIgMTFCOTsKK0Q0RkI7RDRGQjsxMTExIDExNzIgMTFCQTtENEZCOzExMTEgMTE3MiAxMUJBOworRDRGQztENEZDOzExMTEgMTE3MiAxMUJCO0Q0RkM7MTExMSAxMTcyIDExQkI7CitENEZEO0Q0RkQ7MTExMSAxMTcyIDExQkM7RDRGRDsxMTExIDExNzIgMTFCQzsKK0Q0RkU7RDRGRTsxMTExIDExNzIgMTFCRDtENEZFOzExMTEgMTE3MiAxMUJEOworRDRGRjtENEZGOzExMTEgMTE3MiAxMUJFO0Q0RkY7MTExMSAxMTcyIDExQkU7CitENTAwO0Q1MDA7MTExMSAxMTcyIDExQkY7RDUwMDsxMTExIDExNzIgMTFCRjsKK0Q1MDE7RDUwMTsxMTExIDExNzIgMTFDMDtENTAxOzExMTEgMTE3MiAxMUMwOworRDUwMjtENTAyOzExMTEgMTE3MiAxMUMxO0Q1MDI7MTExMSAxMTcyIDExQzE7CitENTAzO0Q1MDM7MTExMSAxMTcyIDExQzI7RDUwMzsxMTExIDExNzIgMTFDMjsKK0Q1MDQ7RDUwNDsxMTExIDExNzM7RDUwNDsxMTExIDExNzM7CitENTA1O0Q1MDU7MTExMSAxMTczIDExQTg7RDUwNTsxMTExIDExNzMgMTFBODsKK0Q1MDY7RDUwNjsxMTExIDExNzMgMTFBOTtENTA2OzExMTEgMTE3MyAxMUE5OworRDUwNztENTA3OzExMTEgMTE3MyAxMUFBO0Q1MDc7MTExMSAxMTczIDExQUE7CitENTA4O0Q1MDg7MTExMSAxMTczIDExQUI7RDUwODsxMTExIDExNzMgMTFBQjsKK0Q1MDk7RDUwOTsxMTExIDExNzMgMTFBQztENTA5OzExMTEgMTE3MyAxMUFDOworRDUwQTtENTBBOzExMTEgMTE3MyAxMUFEO0Q1MEE7MTExMSAxMTczIDExQUQ7CitENTBCO0Q1MEI7MTExMSAxMTczIDExQUU7RDUwQjsxMTExIDExNzMgMTFBRTsKK0Q1MEM7RDUwQzsxMTExIDExNzMgMTFBRjtENTBDOzExMTEgMTE3MyAxMUFGOworRDUwRDtENTBEOzExMTEgMTE3MyAxMUIwO0Q1MEQ7MTExMSAxMTczIDExQjA7CitENTBFO0Q1MEU7MTExMSAxMTczIDExQjE7RDUwRTsxMTExIDExNzMgMTFCMTsKK0Q1MEY7RDUwRjsxMTExIDExNzMgMTFCMjtENTBGOzExMTEgMTE3MyAxMUIyOworRDUxMDtENTEwOzExMTEgMTE3MyAxMUIzO0Q1MTA7MTExMSAxMTczIDExQjM7CitENTExO0Q1MTE7MTExMSAxMTczIDExQjQ7RDUxMTsxMTExIDExNzMgMTFCNDsKK0Q1MTI7RDUxMjsxMTExIDExNzMgMTFCNTtENTEyOzExMTEgMTE3MyAxMUI1OworRDUxMztENTEzOzExMTEgMTE3MyAxMUI2O0Q1MTM7MTExMSAxMTczIDExQjY7CitENTE0O0Q1MTQ7MTExMSAxMTczIDExQjc7RDUxNDsxMTExIDExNzMgMTFCNzsKK0Q1MTU7RDUxNTsxMTExIDExNzMgMTFCODtENTE1OzExMTEgMTE3MyAxMUI4OworRDUxNjtENTE2OzExMTEgMTE3MyAxMUI5O0Q1MTY7MTExMSAxMTczIDExQjk7CitENTE3O0Q1MTc7MTExMSAxMTczIDExQkE7RDUxNzsxMTExIDExNzMgMTFCQTsKK0Q1MTg7RDUxODsxMTExIDExNzMgMTFCQjtENTE4OzExMTEgMTE3MyAxMUJCOworRDUxOTtENTE5OzExMTEgMTE3MyAxMUJDO0Q1MTk7MTExMSAxMTczIDExQkM7CitENTFBO0Q1MUE7MTExMSAxMTczIDExQkQ7RDUxQTsxMTExIDExNzMgMTFCRDsKK0Q1MUI7RDUxQjsxMTExIDExNzMgMTFCRTtENTFCOzExMTEgMTE3MyAxMUJFOworRDUxQztENTFDOzExMTEgMTE3MyAxMUJGO0Q1MUM7MTExMSAxMTczIDExQkY7CitENTFEO0Q1MUQ7MTExMSAxMTczIDExQzA7RDUxRDsxMTExIDExNzMgMTFDMDsKK0Q1MUU7RDUxRTsxMTExIDExNzMgMTFDMTtENTFFOzExMTEgMTE3MyAxMUMxOworRDUxRjtENTFGOzExMTEgMTE3MyAxMUMyO0Q1MUY7MTExMSAxMTczIDExQzI7CitENTIwO0Q1MjA7MTExMSAxMTc0O0Q1MjA7MTExMSAxMTc0OworRDUyMTtENTIxOzExMTEgMTE3NCAxMUE4O0Q1MjE7MTExMSAxMTc0IDExQTg7CitENTIyO0Q1MjI7MTExMSAxMTc0IDExQTk7RDUyMjsxMTExIDExNzQgMTFBOTsKK0Q1MjM7RDUyMzsxMTExIDExNzQgMTFBQTtENTIzOzExMTEgMTE3NCAxMUFBOworRDUyNDtENTI0OzExMTEgMTE3NCAxMUFCO0Q1MjQ7MTExMSAxMTc0IDExQUI7CitENTI1O0Q1MjU7MTExMSAxMTc0IDExQUM7RDUyNTsxMTExIDExNzQgMTFBQzsKK0Q1MjY7RDUyNjsxMTExIDExNzQgMTFBRDtENTI2OzExMTEgMTE3NCAxMUFEOworRDUyNztENTI3OzExMTEgMTE3NCAxMUFFO0Q1Mjc7MTExMSAxMTc0IDExQUU7CitENTI4O0Q1Mjg7MTExMSAxMTc0IDExQUY7RDUyODsxMTExIDExNzQgMTFBRjsKK0Q1Mjk7RDUyOTsxMTExIDExNzQgMTFCMDtENTI5OzExMTEgMTE3NCAxMUIwOworRDUyQTtENTJBOzExMTEgMTE3NCAxMUIxO0Q1MkE7MTExMSAxMTc0IDExQjE7CitENTJCO0Q1MkI7MTExMSAxMTc0IDExQjI7RDUyQjsxMTExIDExNzQgMTFCMjsKK0Q1MkM7RDUyQzsxMTExIDExNzQgMTFCMztENTJDOzExMTEgMTE3NCAxMUIzOworRDUyRDtENTJEOzExMTEgMTE3NCAxMUI0O0Q1MkQ7MTExMSAxMTc0IDExQjQ7CitENTJFO0Q1MkU7MTExMSAxMTc0IDExQjU7RDUyRTsxMTExIDExNzQgMTFCNTsKK0Q1MkY7RDUyRjsxMTExIDExNzQgMTFCNjtENTJGOzExMTEgMTE3NCAxMUI2OworRDUzMDtENTMwOzExMTEgMTE3NCAxMUI3O0Q1MzA7MTExMSAxMTc0IDExQjc7CitENTMxO0Q1MzE7MTExMSAxMTc0IDExQjg7RDUzMTsxMTExIDExNzQgMTFCODsKK0Q1MzI7RDUzMjsxMTExIDExNzQgMTFCOTtENTMyOzExMTEgMTE3NCAxMUI5OworRDUzMztENTMzOzExMTEgMTE3NCAxMUJBO0Q1MzM7MTExMSAxMTc0IDExQkE7CitENTM0O0Q1MzQ7MTExMSAxMTc0IDExQkI7RDUzNDsxMTExIDExNzQgMTFCQjsKK0Q1MzU7RDUzNTsxMTExIDExNzQgMTFCQztENTM1OzExMTEgMTE3NCAxMUJDOworRDUzNjtENTM2OzExMTEgMTE3NCAxMUJEO0Q1MzY7MTExMSAxMTc0IDExQkQ7CitENTM3O0Q1Mzc7MTExMSAxMTc0IDExQkU7RDUzNzsxMTExIDExNzQgMTFCRTsKK0Q1Mzg7RDUzODsxMTExIDExNzQgMTFCRjtENTM4OzExMTEgMTE3NCAxMUJGOworRDUzOTtENTM5OzExMTEgMTE3NCAxMUMwO0Q1Mzk7MTExMSAxMTc0IDExQzA7CitENTNBO0Q1M0E7MTExMSAxMTc0IDExQzE7RDUzQTsxMTExIDExNzQgMTFDMTsKK0Q1M0I7RDUzQjsxMTExIDExNzQgMTFDMjtENTNCOzExMTEgMTE3NCAxMUMyOworRDUzQztENTNDOzExMTEgMTE3NTtENTNDOzExMTEgMTE3NTsKK0Q1M0Q7RDUzRDsxMTExIDExNzUgMTFBODtENTNEOzExMTEgMTE3NSAxMUE4OworRDUzRTtENTNFOzExMTEgMTE3NSAxMUE5O0Q1M0U7MTExMSAxMTc1IDExQTk7CitENTNGO0Q1M0Y7MTExMSAxMTc1IDExQUE7RDUzRjsxMTExIDExNzUgMTFBQTsKK0Q1NDA7RDU0MDsxMTExIDExNzUgMTFBQjtENTQwOzExMTEgMTE3NSAxMUFCOworRDU0MTtENTQxOzExMTEgMTE3NSAxMUFDO0Q1NDE7MTExMSAxMTc1IDExQUM7CitENTQyO0Q1NDI7MTExMSAxMTc1IDExQUQ7RDU0MjsxMTExIDExNzUgMTFBRDsKK0Q1NDM7RDU0MzsxMTExIDExNzUgMTFBRTtENTQzOzExMTEgMTE3NSAxMUFFOworRDU0NDtENTQ0OzExMTEgMTE3NSAxMUFGO0Q1NDQ7MTExMSAxMTc1IDExQUY7CitENTQ1O0Q1NDU7MTExMSAxMTc1IDExQjA7RDU0NTsxMTExIDExNzUgMTFCMDsKK0Q1NDY7RDU0NjsxMTExIDExNzUgMTFCMTtENTQ2OzExMTEgMTE3NSAxMUIxOworRDU0NztENTQ3OzExMTEgMTE3NSAxMUIyO0Q1NDc7MTExMSAxMTc1IDExQjI7CitENTQ4O0Q1NDg7MTExMSAxMTc1IDExQjM7RDU0ODsxMTExIDExNzUgMTFCMzsKK0Q1NDk7RDU0OTsxMTExIDExNzUgMTFCNDtENTQ5OzExMTEgMTE3NSAxMUI0OworRDU0QTtENTRBOzExMTEgMTE3NSAxMUI1O0Q1NEE7MTExMSAxMTc1IDExQjU7CitENTRCO0Q1NEI7MTExMSAxMTc1IDExQjY7RDU0QjsxMTExIDExNzUgMTFCNjsKK0Q1NEM7RDU0QzsxMTExIDExNzUgMTFCNztENTRDOzExMTEgMTE3NSAxMUI3OworRDU0RDtENTREOzExMTEgMTE3NSAxMUI4O0Q1NEQ7MTExMSAxMTc1IDExQjg7CitENTRFO0Q1NEU7MTExMSAxMTc1IDExQjk7RDU0RTsxMTExIDExNzUgMTFCOTsKK0Q1NEY7RDU0RjsxMTExIDExNzUgMTFCQTtENTRGOzExMTEgMTE3NSAxMUJBOworRDU1MDtENTUwOzExMTEgMTE3NSAxMUJCO0Q1NTA7MTExMSAxMTc1IDExQkI7CitENTUxO0Q1NTE7MTExMSAxMTc1IDExQkM7RDU1MTsxMTExIDExNzUgMTFCQzsKK0Q1NTI7RDU1MjsxMTExIDExNzUgMTFCRDtENTUyOzExMTEgMTE3NSAxMUJEOworRDU1MztENTUzOzExMTEgMTE3NSAxMUJFO0Q1NTM7MTExMSAxMTc1IDExQkU7CitENTU0O0Q1NTQ7MTExMSAxMTc1IDExQkY7RDU1NDsxMTExIDExNzUgMTFCRjsKK0Q1NTU7RDU1NTsxMTExIDExNzUgMTFDMDtENTU1OzExMTEgMTE3NSAxMUMwOworRDU1NjtENTU2OzExMTEgMTE3NSAxMUMxO0Q1NTY7MTExMSAxMTc1IDExQzE7CitENTU3O0Q1NTc7MTExMSAxMTc1IDExQzI7RDU1NzsxMTExIDExNzUgMTFDMjsKK0Q1NTg7RDU1ODsxMTEyIDExNjE7RDU1ODsxMTEyIDExNjE7CitENTU5O0Q1NTk7MTExMiAxMTYxIDExQTg7RDU1OTsxMTEyIDExNjEgMTFBODsKK0Q1NUE7RDU1QTsxMTEyIDExNjEgMTFBOTtENTVBOzExMTIgMTE2MSAxMUE5OworRDU1QjtENTVCOzExMTIgMTE2MSAxMUFBO0Q1NUI7MTExMiAxMTYxIDExQUE7CitENTVDO0Q1NUM7MTExMiAxMTYxIDExQUI7RDU1QzsxMTEyIDExNjEgMTFBQjsKK0Q1NUQ7RDU1RDsxMTEyIDExNjEgMTFBQztENTVEOzExMTIgMTE2MSAxMUFDOworRDU1RTtENTVFOzExMTIgMTE2MSAxMUFEO0Q1NUU7MTExMiAxMTYxIDExQUQ7CitENTVGO0Q1NUY7MTExMiAxMTYxIDExQUU7RDU1RjsxMTEyIDExNjEgMTFBRTsKK0Q1NjA7RDU2MDsxMTEyIDExNjEgMTFBRjtENTYwOzExMTIgMTE2MSAxMUFGOworRDU2MTtENTYxOzExMTIgMTE2MSAxMUIwO0Q1NjE7MTExMiAxMTYxIDExQjA7CitENTYyO0Q1NjI7MTExMiAxMTYxIDExQjE7RDU2MjsxMTEyIDExNjEgMTFCMTsKK0Q1NjM7RDU2MzsxMTEyIDExNjEgMTFCMjtENTYzOzExMTIgMTE2MSAxMUIyOworRDU2NDtENTY0OzExMTIgMTE2MSAxMUIzO0Q1NjQ7MTExMiAxMTYxIDExQjM7CitENTY1O0Q1NjU7MTExMiAxMTYxIDExQjQ7RDU2NTsxMTEyIDExNjEgMTFCNDsKK0Q1NjY7RDU2NjsxMTEyIDExNjEgMTFCNTtENTY2OzExMTIgMTE2MSAxMUI1OworRDU2NztENTY3OzExMTIgMTE2MSAxMUI2O0Q1Njc7MTExMiAxMTYxIDExQjY7CitENTY4O0Q1Njg7MTExMiAxMTYxIDExQjc7RDU2ODsxMTEyIDExNjEgMTFCNzsKK0Q1Njk7RDU2OTsxMTEyIDExNjEgMTFCODtENTY5OzExMTIgMTE2MSAxMUI4OworRDU2QTtENTZBOzExMTIgMTE2MSAxMUI5O0Q1NkE7MTExMiAxMTYxIDExQjk7CitENTZCO0Q1NkI7MTExMiAxMTYxIDExQkE7RDU2QjsxMTEyIDExNjEgMTFCQTsKK0Q1NkM7RDU2QzsxMTEyIDExNjEgMTFCQjtENTZDOzExMTIgMTE2MSAxMUJCOworRDU2RDtENTZEOzExMTIgMTE2MSAxMUJDO0Q1NkQ7MTExMiAxMTYxIDExQkM7CitENTZFO0Q1NkU7MTExMiAxMTYxIDExQkQ7RDU2RTsxMTEyIDExNjEgMTFCRDsKK0Q1NkY7RDU2RjsxMTEyIDExNjEgMTFCRTtENTZGOzExMTIgMTE2MSAxMUJFOworRDU3MDtENTcwOzExMTIgMTE2MSAxMUJGO0Q1NzA7MTExMiAxMTYxIDExQkY7CitENTcxO0Q1NzE7MTExMiAxMTYxIDExQzA7RDU3MTsxMTEyIDExNjEgMTFDMDsKK0Q1NzI7RDU3MjsxMTEyIDExNjEgMTFDMTtENTcyOzExMTIgMTE2MSAxMUMxOworRDU3MztENTczOzExMTIgMTE2MSAxMUMyO0Q1NzM7MTExMiAxMTYxIDExQzI7CitENTc0O0Q1NzQ7MTExMiAxMTYyO0Q1NzQ7MTExMiAxMTYyOworRDU3NTtENTc1OzExMTIgMTE2MiAxMUE4O0Q1NzU7MTExMiAxMTYyIDExQTg7CitENTc2O0Q1NzY7MTExMiAxMTYyIDExQTk7RDU3NjsxMTEyIDExNjIgMTFBOTsKK0Q1Nzc7RDU3NzsxMTEyIDExNjIgMTFBQTtENTc3OzExMTIgMTE2MiAxMUFBOworRDU3ODtENTc4OzExMTIgMTE2MiAxMUFCO0Q1Nzg7MTExMiAxMTYyIDExQUI7CitENTc5O0Q1Nzk7MTExMiAxMTYyIDExQUM7RDU3OTsxMTEyIDExNjIgMTFBQzsKK0Q1N0E7RDU3QTsxMTEyIDExNjIgMTFBRDtENTdBOzExMTIgMTE2MiAxMUFEOworRDU3QjtENTdCOzExMTIgMTE2MiAxMUFFO0Q1N0I7MTExMiAxMTYyIDExQUU7CitENTdDO0Q1N0M7MTExMiAxMTYyIDExQUY7RDU3QzsxMTEyIDExNjIgMTFBRjsKK0Q1N0Q7RDU3RDsxMTEyIDExNjIgMTFCMDtENTdEOzExMTIgMTE2MiAxMUIwOworRDU3RTtENTdFOzExMTIgMTE2MiAxMUIxO0Q1N0U7MTExMiAxMTYyIDExQjE7CitENTdGO0Q1N0Y7MTExMiAxMTYyIDExQjI7RDU3RjsxMTEyIDExNjIgMTFCMjsKK0Q1ODA7RDU4MDsxMTEyIDExNjIgMTFCMztENTgwOzExMTIgMTE2MiAxMUIzOworRDU4MTtENTgxOzExMTIgMTE2MiAxMUI0O0Q1ODE7MTExMiAxMTYyIDExQjQ7CitENTgyO0Q1ODI7MTExMiAxMTYyIDExQjU7RDU4MjsxMTEyIDExNjIgMTFCNTsKK0Q1ODM7RDU4MzsxMTEyIDExNjIgMTFCNjtENTgzOzExMTIgMTE2MiAxMUI2OworRDU4NDtENTg0OzExMTIgMTE2MiAxMUI3O0Q1ODQ7MTExMiAxMTYyIDExQjc7CitENTg1O0Q1ODU7MTExMiAxMTYyIDExQjg7RDU4NTsxMTEyIDExNjIgMTFCODsKK0Q1ODY7RDU4NjsxMTEyIDExNjIgMTFCOTtENTg2OzExMTIgMTE2MiAxMUI5OworRDU4NztENTg3OzExMTIgMTE2MiAxMUJBO0Q1ODc7MTExMiAxMTYyIDExQkE7CitENTg4O0Q1ODg7MTExMiAxMTYyIDExQkI7RDU4ODsxMTEyIDExNjIgMTFCQjsKK0Q1ODk7RDU4OTsxMTEyIDExNjIgMTFCQztENTg5OzExMTIgMTE2MiAxMUJDOworRDU4QTtENThBOzExMTIgMTE2MiAxMUJEO0Q1OEE7MTExMiAxMTYyIDExQkQ7CitENThCO0Q1OEI7MTExMiAxMTYyIDExQkU7RDU4QjsxMTEyIDExNjIgMTFCRTsKK0Q1OEM7RDU4QzsxMTEyIDExNjIgMTFCRjtENThDOzExMTIgMTE2MiAxMUJGOworRDU4RDtENThEOzExMTIgMTE2MiAxMUMwO0Q1OEQ7MTExMiAxMTYyIDExQzA7CitENThFO0Q1OEU7MTExMiAxMTYyIDExQzE7RDU4RTsxMTEyIDExNjIgMTFDMTsKK0Q1OEY7RDU4RjsxMTEyIDExNjIgMTFDMjtENThGOzExMTIgMTE2MiAxMUMyOworRDU5MDtENTkwOzExMTIgMTE2MztENTkwOzExMTIgMTE2MzsKK0Q1OTE7RDU5MTsxMTEyIDExNjMgMTFBODtENTkxOzExMTIgMTE2MyAxMUE4OworRDU5MjtENTkyOzExMTIgMTE2MyAxMUE5O0Q1OTI7MTExMiAxMTYzIDExQTk7CitENTkzO0Q1OTM7MTExMiAxMTYzIDExQUE7RDU5MzsxMTEyIDExNjMgMTFBQTsKK0Q1OTQ7RDU5NDsxMTEyIDExNjMgMTFBQjtENTk0OzExMTIgMTE2MyAxMUFCOworRDU5NTtENTk1OzExMTIgMTE2MyAxMUFDO0Q1OTU7MTExMiAxMTYzIDExQUM7CitENTk2O0Q1OTY7MTExMiAxMTYzIDExQUQ7RDU5NjsxMTEyIDExNjMgMTFBRDsKK0Q1OTc7RDU5NzsxMTEyIDExNjMgMTFBRTtENTk3OzExMTIgMTE2MyAxMUFFOworRDU5ODtENTk4OzExMTIgMTE2MyAxMUFGO0Q1OTg7MTExMiAxMTYzIDExQUY7CitENTk5O0Q1OTk7MTExMiAxMTYzIDExQjA7RDU5OTsxMTEyIDExNjMgMTFCMDsKK0Q1OUE7RDU5QTsxMTEyIDExNjMgMTFCMTtENTlBOzExMTIgMTE2MyAxMUIxOworRDU5QjtENTlCOzExMTIgMTE2MyAxMUIyO0Q1OUI7MTExMiAxMTYzIDExQjI7CitENTlDO0Q1OUM7MTExMiAxMTYzIDExQjM7RDU5QzsxMTEyIDExNjMgMTFCMzsKK0Q1OUQ7RDU5RDsxMTEyIDExNjMgMTFCNDtENTlEOzExMTIgMTE2MyAxMUI0OworRDU5RTtENTlFOzExMTIgMTE2MyAxMUI1O0Q1OUU7MTExMiAxMTYzIDExQjU7CitENTlGO0Q1OUY7MTExMiAxMTYzIDExQjY7RDU5RjsxMTEyIDExNjMgMTFCNjsKK0Q1QTA7RDVBMDsxMTEyIDExNjMgMTFCNztENUEwOzExMTIgMTE2MyAxMUI3OworRDVBMTtENUExOzExMTIgMTE2MyAxMUI4O0Q1QTE7MTExMiAxMTYzIDExQjg7CitENUEyO0Q1QTI7MTExMiAxMTYzIDExQjk7RDVBMjsxMTEyIDExNjMgMTFCOTsKK0Q1QTM7RDVBMzsxMTEyIDExNjMgMTFCQTtENUEzOzExMTIgMTE2MyAxMUJBOworRDVBNDtENUE0OzExMTIgMTE2MyAxMUJCO0Q1QTQ7MTExMiAxMTYzIDExQkI7CitENUE1O0Q1QTU7MTExMiAxMTYzIDExQkM7RDVBNTsxMTEyIDExNjMgMTFCQzsKK0Q1QTY7RDVBNjsxMTEyIDExNjMgMTFCRDtENUE2OzExMTIgMTE2MyAxMUJEOworRDVBNztENUE3OzExMTIgMTE2MyAxMUJFO0Q1QTc7MTExMiAxMTYzIDExQkU7CitENUE4O0Q1QTg7MTExMiAxMTYzIDExQkY7RDVBODsxMTEyIDExNjMgMTFCRjsKK0Q1QTk7RDVBOTsxMTEyIDExNjMgMTFDMDtENUE5OzExMTIgMTE2MyAxMUMwOworRDVBQTtENUFBOzExMTIgMTE2MyAxMUMxO0Q1QUE7MTExMiAxMTYzIDExQzE7CitENUFCO0Q1QUI7MTExMiAxMTYzIDExQzI7RDVBQjsxMTEyIDExNjMgMTFDMjsKK0Q1QUM7RDVBQzsxMTEyIDExNjQ7RDVBQzsxMTEyIDExNjQ7CitENUFEO0Q1QUQ7MTExMiAxMTY0IDExQTg7RDVBRDsxMTEyIDExNjQgMTFBODsKK0Q1QUU7RDVBRTsxMTEyIDExNjQgMTFBOTtENUFFOzExMTIgMTE2NCAxMUE5OworRDVBRjtENUFGOzExMTIgMTE2NCAxMUFBO0Q1QUY7MTExMiAxMTY0IDExQUE7CitENUIwO0Q1QjA7MTExMiAxMTY0IDExQUI7RDVCMDsxMTEyIDExNjQgMTFBQjsKK0Q1QjE7RDVCMTsxMTEyIDExNjQgMTFBQztENUIxOzExMTIgMTE2NCAxMUFDOworRDVCMjtENUIyOzExMTIgMTE2NCAxMUFEO0Q1QjI7MTExMiAxMTY0IDExQUQ7CitENUIzO0Q1QjM7MTExMiAxMTY0IDExQUU7RDVCMzsxMTEyIDExNjQgMTFBRTsKK0Q1QjQ7RDVCNDsxMTEyIDExNjQgMTFBRjtENUI0OzExMTIgMTE2NCAxMUFGOworRDVCNTtENUI1OzExMTIgMTE2NCAxMUIwO0Q1QjU7MTExMiAxMTY0IDExQjA7CitENUI2O0Q1QjY7MTExMiAxMTY0IDExQjE7RDVCNjsxMTEyIDExNjQgMTFCMTsKK0Q1Qjc7RDVCNzsxMTEyIDExNjQgMTFCMjtENUI3OzExMTIgMTE2NCAxMUIyOworRDVCODtENUI4OzExMTIgMTE2NCAxMUIzO0Q1Qjg7MTExMiAxMTY0IDExQjM7CitENUI5O0Q1Qjk7MTExMiAxMTY0IDExQjQ7RDVCOTsxMTEyIDExNjQgMTFCNDsKK0Q1QkE7RDVCQTsxMTEyIDExNjQgMTFCNTtENUJBOzExMTIgMTE2NCAxMUI1OworRDVCQjtENUJCOzExMTIgMTE2NCAxMUI2O0Q1QkI7MTExMiAxMTY0IDExQjY7CitENUJDO0Q1QkM7MTExMiAxMTY0IDExQjc7RDVCQzsxMTEyIDExNjQgMTFCNzsKK0Q1QkQ7RDVCRDsxMTEyIDExNjQgMTFCODtENUJEOzExMTIgMTE2NCAxMUI4OworRDVCRTtENUJFOzExMTIgMTE2NCAxMUI5O0Q1QkU7MTExMiAxMTY0IDExQjk7CitENUJGO0Q1QkY7MTExMiAxMTY0IDExQkE7RDVCRjsxMTEyIDExNjQgMTFCQTsKK0Q1QzA7RDVDMDsxMTEyIDExNjQgMTFCQjtENUMwOzExMTIgMTE2NCAxMUJCOworRDVDMTtENUMxOzExMTIgMTE2NCAxMUJDO0Q1QzE7MTExMiAxMTY0IDExQkM7CitENUMyO0Q1QzI7MTExMiAxMTY0IDExQkQ7RDVDMjsxMTEyIDExNjQgMTFCRDsKK0Q1QzM7RDVDMzsxMTEyIDExNjQgMTFCRTtENUMzOzExMTIgMTE2NCAxMUJFOworRDVDNDtENUM0OzExMTIgMTE2NCAxMUJGO0Q1QzQ7MTExMiAxMTY0IDExQkY7CitENUM1O0Q1QzU7MTExMiAxMTY0IDExQzA7RDVDNTsxMTEyIDExNjQgMTFDMDsKK0Q1QzY7RDVDNjsxMTEyIDExNjQgMTFDMTtENUM2OzExMTIgMTE2NCAxMUMxOworRDVDNztENUM3OzExMTIgMTE2NCAxMUMyO0Q1Qzc7MTExMiAxMTY0IDExQzI7CitENUM4O0Q1Qzg7MTExMiAxMTY1O0Q1Qzg7MTExMiAxMTY1OworRDVDOTtENUM5OzExMTIgMTE2NSAxMUE4O0Q1Qzk7MTExMiAxMTY1IDExQTg7CitENUNBO0Q1Q0E7MTExMiAxMTY1IDExQTk7RDVDQTsxMTEyIDExNjUgMTFBOTsKK0Q1Q0I7RDVDQjsxMTEyIDExNjUgMTFBQTtENUNCOzExMTIgMTE2NSAxMUFBOworRDVDQztENUNDOzExMTIgMTE2NSAxMUFCO0Q1Q0M7MTExMiAxMTY1IDExQUI7CitENUNEO0Q1Q0Q7MTExMiAxMTY1IDExQUM7RDVDRDsxMTEyIDExNjUgMTFBQzsKK0Q1Q0U7RDVDRTsxMTEyIDExNjUgMTFBRDtENUNFOzExMTIgMTE2NSAxMUFEOworRDVDRjtENUNGOzExMTIgMTE2NSAxMUFFO0Q1Q0Y7MTExMiAxMTY1IDExQUU7CitENUQwO0Q1RDA7MTExMiAxMTY1IDExQUY7RDVEMDsxMTEyIDExNjUgMTFBRjsKK0Q1RDE7RDVEMTsxMTEyIDExNjUgMTFCMDtENUQxOzExMTIgMTE2NSAxMUIwOworRDVEMjtENUQyOzExMTIgMTE2NSAxMUIxO0Q1RDI7MTExMiAxMTY1IDExQjE7CitENUQzO0Q1RDM7MTExMiAxMTY1IDExQjI7RDVEMzsxMTEyIDExNjUgMTFCMjsKK0Q1RDQ7RDVENDsxMTEyIDExNjUgMTFCMztENUQ0OzExMTIgMTE2NSAxMUIzOworRDVENTtENUQ1OzExMTIgMTE2NSAxMUI0O0Q1RDU7MTExMiAxMTY1IDExQjQ7CitENUQ2O0Q1RDY7MTExMiAxMTY1IDExQjU7RDVENjsxMTEyIDExNjUgMTFCNTsKK0Q1RDc7RDVENzsxMTEyIDExNjUgMTFCNjtENUQ3OzExMTIgMTE2NSAxMUI2OworRDVEODtENUQ4OzExMTIgMTE2NSAxMUI3O0Q1RDg7MTExMiAxMTY1IDExQjc7CitENUQ5O0Q1RDk7MTExMiAxMTY1IDExQjg7RDVEOTsxMTEyIDExNjUgMTFCODsKK0Q1REE7RDVEQTsxMTEyIDExNjUgMTFCOTtENURBOzExMTIgMTE2NSAxMUI5OworRDVEQjtENURCOzExMTIgMTE2NSAxMUJBO0Q1REI7MTExMiAxMTY1IDExQkE7CitENURDO0Q1REM7MTExMiAxMTY1IDExQkI7RDVEQzsxMTEyIDExNjUgMTFCQjsKK0Q1REQ7RDVERDsxMTEyIDExNjUgMTFCQztENUREOzExMTIgMTE2NSAxMUJDOworRDVERTtENURFOzExMTIgMTE2NSAxMUJEO0Q1REU7MTExMiAxMTY1IDExQkQ7CitENURGO0Q1REY7MTExMiAxMTY1IDExQkU7RDVERjsxMTEyIDExNjUgMTFCRTsKK0Q1RTA7RDVFMDsxMTEyIDExNjUgMTFCRjtENUUwOzExMTIgMTE2NSAxMUJGOworRDVFMTtENUUxOzExMTIgMTE2NSAxMUMwO0Q1RTE7MTExMiAxMTY1IDExQzA7CitENUUyO0Q1RTI7MTExMiAxMTY1IDExQzE7RDVFMjsxMTEyIDExNjUgMTFDMTsKK0Q1RTM7RDVFMzsxMTEyIDExNjUgMTFDMjtENUUzOzExMTIgMTE2NSAxMUMyOworRDVFNDtENUU0OzExMTIgMTE2NjtENUU0OzExMTIgMTE2NjsKK0Q1RTU7RDVFNTsxMTEyIDExNjYgMTFBODtENUU1OzExMTIgMTE2NiAxMUE4OworRDVFNjtENUU2OzExMTIgMTE2NiAxMUE5O0Q1RTY7MTExMiAxMTY2IDExQTk7CitENUU3O0Q1RTc7MTExMiAxMTY2IDExQUE7RDVFNzsxMTEyIDExNjYgMTFBQTsKK0Q1RTg7RDVFODsxMTEyIDExNjYgMTFBQjtENUU4OzExMTIgMTE2NiAxMUFCOworRDVFOTtENUU5OzExMTIgMTE2NiAxMUFDO0Q1RTk7MTExMiAxMTY2IDExQUM7CitENUVBO0Q1RUE7MTExMiAxMTY2IDExQUQ7RDVFQTsxMTEyIDExNjYgMTFBRDsKK0Q1RUI7RDVFQjsxMTEyIDExNjYgMTFBRTtENUVCOzExMTIgMTE2NiAxMUFFOworRDVFQztENUVDOzExMTIgMTE2NiAxMUFGO0Q1RUM7MTExMiAxMTY2IDExQUY7CitENUVEO0Q1RUQ7MTExMiAxMTY2IDExQjA7RDVFRDsxMTEyIDExNjYgMTFCMDsKK0Q1RUU7RDVFRTsxMTEyIDExNjYgMTFCMTtENUVFOzExMTIgMTE2NiAxMUIxOworRDVFRjtENUVGOzExMTIgMTE2NiAxMUIyO0Q1RUY7MTExMiAxMTY2IDExQjI7CitENUYwO0Q1RjA7MTExMiAxMTY2IDExQjM7RDVGMDsxMTEyIDExNjYgMTFCMzsKK0Q1RjE7RDVGMTsxMTEyIDExNjYgMTFCNDtENUYxOzExMTIgMTE2NiAxMUI0OworRDVGMjtENUYyOzExMTIgMTE2NiAxMUI1O0Q1RjI7MTExMiAxMTY2IDExQjU7CitENUYzO0Q1RjM7MTExMiAxMTY2IDExQjY7RDVGMzsxMTEyIDExNjYgMTFCNjsKK0Q1RjQ7RDVGNDsxMTEyIDExNjYgMTFCNztENUY0OzExMTIgMTE2NiAxMUI3OworRDVGNTtENUY1OzExMTIgMTE2NiAxMUI4O0Q1RjU7MTExMiAxMTY2IDExQjg7CitENUY2O0Q1RjY7MTExMiAxMTY2IDExQjk7RDVGNjsxMTEyIDExNjYgMTFCOTsKK0Q1Rjc7RDVGNzsxMTEyIDExNjYgMTFCQTtENUY3OzExMTIgMTE2NiAxMUJBOworRDVGODtENUY4OzExMTIgMTE2NiAxMUJCO0Q1Rjg7MTExMiAxMTY2IDExQkI7CitENUY5O0Q1Rjk7MTExMiAxMTY2IDExQkM7RDVGOTsxMTEyIDExNjYgMTFCQzsKK0Q1RkE7RDVGQTsxMTEyIDExNjYgMTFCRDtENUZBOzExMTIgMTE2NiAxMUJEOworRDVGQjtENUZCOzExMTIgMTE2NiAxMUJFO0Q1RkI7MTExMiAxMTY2IDExQkU7CitENUZDO0Q1RkM7MTExMiAxMTY2IDExQkY7RDVGQzsxMTEyIDExNjYgMTFCRjsKK0Q1RkQ7RDVGRDsxMTEyIDExNjYgMTFDMDtENUZEOzExMTIgMTE2NiAxMUMwOworRDVGRTtENUZFOzExMTIgMTE2NiAxMUMxO0Q1RkU7MTExMiAxMTY2IDExQzE7CitENUZGO0Q1RkY7MTExMiAxMTY2IDExQzI7RDVGRjsxMTEyIDExNjYgMTFDMjsKK0Q2MDA7RDYwMDsxMTEyIDExNjc7RDYwMDsxMTEyIDExNjc7CitENjAxO0Q2MDE7MTExMiAxMTY3IDExQTg7RDYwMTsxMTEyIDExNjcgMTFBODsKK0Q2MDI7RDYwMjsxMTEyIDExNjcgMTFBOTtENjAyOzExMTIgMTE2NyAxMUE5OworRDYwMztENjAzOzExMTIgMTE2NyAxMUFBO0Q2MDM7MTExMiAxMTY3IDExQUE7CitENjA0O0Q2MDQ7MTExMiAxMTY3IDExQUI7RDYwNDsxMTEyIDExNjcgMTFBQjsKK0Q2MDU7RDYwNTsxMTEyIDExNjcgMTFBQztENjA1OzExMTIgMTE2NyAxMUFDOworRDYwNjtENjA2OzExMTIgMTE2NyAxMUFEO0Q2MDY7MTExMiAxMTY3IDExQUQ7CitENjA3O0Q2MDc7MTExMiAxMTY3IDExQUU7RDYwNzsxMTEyIDExNjcgMTFBRTsKK0Q2MDg7RDYwODsxMTEyIDExNjcgMTFBRjtENjA4OzExMTIgMTE2NyAxMUFGOworRDYwOTtENjA5OzExMTIgMTE2NyAxMUIwO0Q2MDk7MTExMiAxMTY3IDExQjA7CitENjBBO0Q2MEE7MTExMiAxMTY3IDExQjE7RDYwQTsxMTEyIDExNjcgMTFCMTsKK0Q2MEI7RDYwQjsxMTEyIDExNjcgMTFCMjtENjBCOzExMTIgMTE2NyAxMUIyOworRDYwQztENjBDOzExMTIgMTE2NyAxMUIzO0Q2MEM7MTExMiAxMTY3IDExQjM7CitENjBEO0Q2MEQ7MTExMiAxMTY3IDExQjQ7RDYwRDsxMTEyIDExNjcgMTFCNDsKK0Q2MEU7RDYwRTsxMTEyIDExNjcgMTFCNTtENjBFOzExMTIgMTE2NyAxMUI1OworRDYwRjtENjBGOzExMTIgMTE2NyAxMUI2O0Q2MEY7MTExMiAxMTY3IDExQjY7CitENjEwO0Q2MTA7MTExMiAxMTY3IDExQjc7RDYxMDsxMTEyIDExNjcgMTFCNzsKK0Q2MTE7RDYxMTsxMTEyIDExNjcgMTFCODtENjExOzExMTIgMTE2NyAxMUI4OworRDYxMjtENjEyOzExMTIgMTE2NyAxMUI5O0Q2MTI7MTExMiAxMTY3IDExQjk7CitENjEzO0Q2MTM7MTExMiAxMTY3IDExQkE7RDYxMzsxMTEyIDExNjcgMTFCQTsKK0Q2MTQ7RDYxNDsxMTEyIDExNjcgMTFCQjtENjE0OzExMTIgMTE2NyAxMUJCOworRDYxNTtENjE1OzExMTIgMTE2NyAxMUJDO0Q2MTU7MTExMiAxMTY3IDExQkM7CitENjE2O0Q2MTY7MTExMiAxMTY3IDExQkQ7RDYxNjsxMTEyIDExNjcgMTFCRDsKK0Q2MTc7RDYxNzsxMTEyIDExNjcgMTFCRTtENjE3OzExMTIgMTE2NyAxMUJFOworRDYxODtENjE4OzExMTIgMTE2NyAxMUJGO0Q2MTg7MTExMiAxMTY3IDExQkY7CitENjE5O0Q2MTk7MTExMiAxMTY3IDExQzA7RDYxOTsxMTEyIDExNjcgMTFDMDsKK0Q2MUE7RDYxQTsxMTEyIDExNjcgMTFDMTtENjFBOzExMTIgMTE2NyAxMUMxOworRDYxQjtENjFCOzExMTIgMTE2NyAxMUMyO0Q2MUI7MTExMiAxMTY3IDExQzI7CitENjFDO0Q2MUM7MTExMiAxMTY4O0Q2MUM7MTExMiAxMTY4OworRDYxRDtENjFEOzExMTIgMTE2OCAxMUE4O0Q2MUQ7MTExMiAxMTY4IDExQTg7CitENjFFO0Q2MUU7MTExMiAxMTY4IDExQTk7RDYxRTsxMTEyIDExNjggMTFBOTsKK0Q2MUY7RDYxRjsxMTEyIDExNjggMTFBQTtENjFGOzExMTIgMTE2OCAxMUFBOworRDYyMDtENjIwOzExMTIgMTE2OCAxMUFCO0Q2MjA7MTExMiAxMTY4IDExQUI7CitENjIxO0Q2MjE7MTExMiAxMTY4IDExQUM7RDYyMTsxMTEyIDExNjggMTFBQzsKK0Q2MjI7RDYyMjsxMTEyIDExNjggMTFBRDtENjIyOzExMTIgMTE2OCAxMUFEOworRDYyMztENjIzOzExMTIgMTE2OCAxMUFFO0Q2MjM7MTExMiAxMTY4IDExQUU7CitENjI0O0Q2MjQ7MTExMiAxMTY4IDExQUY7RDYyNDsxMTEyIDExNjggMTFBRjsKK0Q2MjU7RDYyNTsxMTEyIDExNjggMTFCMDtENjI1OzExMTIgMTE2OCAxMUIwOworRDYyNjtENjI2OzExMTIgMTE2OCAxMUIxO0Q2MjY7MTExMiAxMTY4IDExQjE7CitENjI3O0Q2Mjc7MTExMiAxMTY4IDExQjI7RDYyNzsxMTEyIDExNjggMTFCMjsKK0Q2Mjg7RDYyODsxMTEyIDExNjggMTFCMztENjI4OzExMTIgMTE2OCAxMUIzOworRDYyOTtENjI5OzExMTIgMTE2OCAxMUI0O0Q2Mjk7MTExMiAxMTY4IDExQjQ7CitENjJBO0Q2MkE7MTExMiAxMTY4IDExQjU7RDYyQTsxMTEyIDExNjggMTFCNTsKK0Q2MkI7RDYyQjsxMTEyIDExNjggMTFCNjtENjJCOzExMTIgMTE2OCAxMUI2OworRDYyQztENjJDOzExMTIgMTE2OCAxMUI3O0Q2MkM7MTExMiAxMTY4IDExQjc7CitENjJEO0Q2MkQ7MTExMiAxMTY4IDExQjg7RDYyRDsxMTEyIDExNjggMTFCODsKK0Q2MkU7RDYyRTsxMTEyIDExNjggMTFCOTtENjJFOzExMTIgMTE2OCAxMUI5OworRDYyRjtENjJGOzExMTIgMTE2OCAxMUJBO0Q2MkY7MTExMiAxMTY4IDExQkE7CitENjMwO0Q2MzA7MTExMiAxMTY4IDExQkI7RDYzMDsxMTEyIDExNjggMTFCQjsKK0Q2MzE7RDYzMTsxMTEyIDExNjggMTFCQztENjMxOzExMTIgMTE2OCAxMUJDOworRDYzMjtENjMyOzExMTIgMTE2OCAxMUJEO0Q2MzI7MTExMiAxMTY4IDExQkQ7CitENjMzO0Q2MzM7MTExMiAxMTY4IDExQkU7RDYzMzsxMTEyIDExNjggMTFCRTsKK0Q2MzQ7RDYzNDsxMTEyIDExNjggMTFCRjtENjM0OzExMTIgMTE2OCAxMUJGOworRDYzNTtENjM1OzExMTIgMTE2OCAxMUMwO0Q2MzU7MTExMiAxMTY4IDExQzA7CitENjM2O0Q2MzY7MTExMiAxMTY4IDExQzE7RDYzNjsxMTEyIDExNjggMTFDMTsKK0Q2Mzc7RDYzNzsxMTEyIDExNjggMTFDMjtENjM3OzExMTIgMTE2OCAxMUMyOworRDYzODtENjM4OzExMTIgMTE2OTtENjM4OzExMTIgMTE2OTsKK0Q2Mzk7RDYzOTsxMTEyIDExNjkgMTFBODtENjM5OzExMTIgMTE2OSAxMUE4OworRDYzQTtENjNBOzExMTIgMTE2OSAxMUE5O0Q2M0E7MTExMiAxMTY5IDExQTk7CitENjNCO0Q2M0I7MTExMiAxMTY5IDExQUE7RDYzQjsxMTEyIDExNjkgMTFBQTsKK0Q2M0M7RDYzQzsxMTEyIDExNjkgMTFBQjtENjNDOzExMTIgMTE2OSAxMUFCOworRDYzRDtENjNEOzExMTIgMTE2OSAxMUFDO0Q2M0Q7MTExMiAxMTY5IDExQUM7CitENjNFO0Q2M0U7MTExMiAxMTY5IDExQUQ7RDYzRTsxMTEyIDExNjkgMTFBRDsKK0Q2M0Y7RDYzRjsxMTEyIDExNjkgMTFBRTtENjNGOzExMTIgMTE2OSAxMUFFOworRDY0MDtENjQwOzExMTIgMTE2OSAxMUFGO0Q2NDA7MTExMiAxMTY5IDExQUY7CitENjQxO0Q2NDE7MTExMiAxMTY5IDExQjA7RDY0MTsxMTEyIDExNjkgMTFCMDsKK0Q2NDI7RDY0MjsxMTEyIDExNjkgMTFCMTtENjQyOzExMTIgMTE2OSAxMUIxOworRDY0MztENjQzOzExMTIgMTE2OSAxMUIyO0Q2NDM7MTExMiAxMTY5IDExQjI7CitENjQ0O0Q2NDQ7MTExMiAxMTY5IDExQjM7RDY0NDsxMTEyIDExNjkgMTFCMzsKK0Q2NDU7RDY0NTsxMTEyIDExNjkgMTFCNDtENjQ1OzExMTIgMTE2OSAxMUI0OworRDY0NjtENjQ2OzExMTIgMTE2OSAxMUI1O0Q2NDY7MTExMiAxMTY5IDExQjU7CitENjQ3O0Q2NDc7MTExMiAxMTY5IDExQjY7RDY0NzsxMTEyIDExNjkgMTFCNjsKK0Q2NDg7RDY0ODsxMTEyIDExNjkgMTFCNztENjQ4OzExMTIgMTE2OSAxMUI3OworRDY0OTtENjQ5OzExMTIgMTE2OSAxMUI4O0Q2NDk7MTExMiAxMTY5IDExQjg7CitENjRBO0Q2NEE7MTExMiAxMTY5IDExQjk7RDY0QTsxMTEyIDExNjkgMTFCOTsKK0Q2NEI7RDY0QjsxMTEyIDExNjkgMTFCQTtENjRCOzExMTIgMTE2OSAxMUJBOworRDY0QztENjRDOzExMTIgMTE2OSAxMUJCO0Q2NEM7MTExMiAxMTY5IDExQkI7CitENjREO0Q2NEQ7MTExMiAxMTY5IDExQkM7RDY0RDsxMTEyIDExNjkgMTFCQzsKK0Q2NEU7RDY0RTsxMTEyIDExNjkgMTFCRDtENjRFOzExMTIgMTE2OSAxMUJEOworRDY0RjtENjRGOzExMTIgMTE2OSAxMUJFO0Q2NEY7MTExMiAxMTY5IDExQkU7CitENjUwO0Q2NTA7MTExMiAxMTY5IDExQkY7RDY1MDsxMTEyIDExNjkgMTFCRjsKK0Q2NTE7RDY1MTsxMTEyIDExNjkgMTFDMDtENjUxOzExMTIgMTE2OSAxMUMwOworRDY1MjtENjUyOzExMTIgMTE2OSAxMUMxO0Q2NTI7MTExMiAxMTY5IDExQzE7CitENjUzO0Q2NTM7MTExMiAxMTY5IDExQzI7RDY1MzsxMTEyIDExNjkgMTFDMjsKK0Q2NTQ7RDY1NDsxMTEyIDExNkE7RDY1NDsxMTEyIDExNkE7CitENjU1O0Q2NTU7MTExMiAxMTZBIDExQTg7RDY1NTsxMTEyIDExNkEgMTFBODsKK0Q2NTY7RDY1NjsxMTEyIDExNkEgMTFBOTtENjU2OzExMTIgMTE2QSAxMUE5OworRDY1NztENjU3OzExMTIgMTE2QSAxMUFBO0Q2NTc7MTExMiAxMTZBIDExQUE7CitENjU4O0Q2NTg7MTExMiAxMTZBIDExQUI7RDY1ODsxMTEyIDExNkEgMTFBQjsKK0Q2NTk7RDY1OTsxMTEyIDExNkEgMTFBQztENjU5OzExMTIgMTE2QSAxMUFDOworRDY1QTtENjVBOzExMTIgMTE2QSAxMUFEO0Q2NUE7MTExMiAxMTZBIDExQUQ7CitENjVCO0Q2NUI7MTExMiAxMTZBIDExQUU7RDY1QjsxMTEyIDExNkEgMTFBRTsKK0Q2NUM7RDY1QzsxMTEyIDExNkEgMTFBRjtENjVDOzExMTIgMTE2QSAxMUFGOworRDY1RDtENjVEOzExMTIgMTE2QSAxMUIwO0Q2NUQ7MTExMiAxMTZBIDExQjA7CitENjVFO0Q2NUU7MTExMiAxMTZBIDExQjE7RDY1RTsxMTEyIDExNkEgMTFCMTsKK0Q2NUY7RDY1RjsxMTEyIDExNkEgMTFCMjtENjVGOzExMTIgMTE2QSAxMUIyOworRDY2MDtENjYwOzExMTIgMTE2QSAxMUIzO0Q2NjA7MTExMiAxMTZBIDExQjM7CitENjYxO0Q2NjE7MTExMiAxMTZBIDExQjQ7RDY2MTsxMTEyIDExNkEgMTFCNDsKK0Q2NjI7RDY2MjsxMTEyIDExNkEgMTFCNTtENjYyOzExMTIgMTE2QSAxMUI1OworRDY2MztENjYzOzExMTIgMTE2QSAxMUI2O0Q2NjM7MTExMiAxMTZBIDExQjY7CitENjY0O0Q2NjQ7MTExMiAxMTZBIDExQjc7RDY2NDsxMTEyIDExNkEgMTFCNzsKK0Q2NjU7RDY2NTsxMTEyIDExNkEgMTFCODtENjY1OzExMTIgMTE2QSAxMUI4OworRDY2NjtENjY2OzExMTIgMTE2QSAxMUI5O0Q2NjY7MTExMiAxMTZBIDExQjk7CitENjY3O0Q2Njc7MTExMiAxMTZBIDExQkE7RDY2NzsxMTEyIDExNkEgMTFCQTsKK0Q2Njg7RDY2ODsxMTEyIDExNkEgMTFCQjtENjY4OzExMTIgMTE2QSAxMUJCOworRDY2OTtENjY5OzExMTIgMTE2QSAxMUJDO0Q2Njk7MTExMiAxMTZBIDExQkM7CitENjZBO0Q2NkE7MTExMiAxMTZBIDExQkQ7RDY2QTsxMTEyIDExNkEgMTFCRDsKK0Q2NkI7RDY2QjsxMTEyIDExNkEgMTFCRTtENjZCOzExMTIgMTE2QSAxMUJFOworRDY2QztENjZDOzExMTIgMTE2QSAxMUJGO0Q2NkM7MTExMiAxMTZBIDExQkY7CitENjZEO0Q2NkQ7MTExMiAxMTZBIDExQzA7RDY2RDsxMTEyIDExNkEgMTFDMDsKK0Q2NkU7RDY2RTsxMTEyIDExNkEgMTFDMTtENjZFOzExMTIgMTE2QSAxMUMxOworRDY2RjtENjZGOzExMTIgMTE2QSAxMUMyO0Q2NkY7MTExMiAxMTZBIDExQzI7CitENjcwO0Q2NzA7MTExMiAxMTZCO0Q2NzA7MTExMiAxMTZCOworRDY3MTtENjcxOzExMTIgMTE2QiAxMUE4O0Q2NzE7MTExMiAxMTZCIDExQTg7CitENjcyO0Q2NzI7MTExMiAxMTZCIDExQTk7RDY3MjsxMTEyIDExNkIgMTFBOTsKK0Q2NzM7RDY3MzsxMTEyIDExNkIgMTFBQTtENjczOzExMTIgMTE2QiAxMUFBOworRDY3NDtENjc0OzExMTIgMTE2QiAxMUFCO0Q2NzQ7MTExMiAxMTZCIDExQUI7CitENjc1O0Q2NzU7MTExMiAxMTZCIDExQUM7RDY3NTsxMTEyIDExNkIgMTFBQzsKK0Q2NzY7RDY3NjsxMTEyIDExNkIgMTFBRDtENjc2OzExMTIgMTE2QiAxMUFEOworRDY3NztENjc3OzExMTIgMTE2QiAxMUFFO0Q2Nzc7MTExMiAxMTZCIDExQUU7CitENjc4O0Q2Nzg7MTExMiAxMTZCIDExQUY7RDY3ODsxMTEyIDExNkIgMTFBRjsKK0Q2Nzk7RDY3OTsxMTEyIDExNkIgMTFCMDtENjc5OzExMTIgMTE2QiAxMUIwOworRDY3QTtENjdBOzExMTIgMTE2QiAxMUIxO0Q2N0E7MTExMiAxMTZCIDExQjE7CitENjdCO0Q2N0I7MTExMiAxMTZCIDExQjI7RDY3QjsxMTEyIDExNkIgMTFCMjsKK0Q2N0M7RDY3QzsxMTEyIDExNkIgMTFCMztENjdDOzExMTIgMTE2QiAxMUIzOworRDY3RDtENjdEOzExMTIgMTE2QiAxMUI0O0Q2N0Q7MTExMiAxMTZCIDExQjQ7CitENjdFO0Q2N0U7MTExMiAxMTZCIDExQjU7RDY3RTsxMTEyIDExNkIgMTFCNTsKK0Q2N0Y7RDY3RjsxMTEyIDExNkIgMTFCNjtENjdGOzExMTIgMTE2QiAxMUI2OworRDY4MDtENjgwOzExMTIgMTE2QiAxMUI3O0Q2ODA7MTExMiAxMTZCIDExQjc7CitENjgxO0Q2ODE7MTExMiAxMTZCIDExQjg7RDY4MTsxMTEyIDExNkIgMTFCODsKK0Q2ODI7RDY4MjsxMTEyIDExNkIgMTFCOTtENjgyOzExMTIgMTE2QiAxMUI5OworRDY4MztENjgzOzExMTIgMTE2QiAxMUJBO0Q2ODM7MTExMiAxMTZCIDExQkE7CitENjg0O0Q2ODQ7MTExMiAxMTZCIDExQkI7RDY4NDsxMTEyIDExNkIgMTFCQjsKK0Q2ODU7RDY4NTsxMTEyIDExNkIgMTFCQztENjg1OzExMTIgMTE2QiAxMUJDOworRDY4NjtENjg2OzExMTIgMTE2QiAxMUJEO0Q2ODY7MTExMiAxMTZCIDExQkQ7CitENjg3O0Q2ODc7MTExMiAxMTZCIDExQkU7RDY4NzsxMTEyIDExNkIgMTFCRTsKK0Q2ODg7RDY4ODsxMTEyIDExNkIgMTFCRjtENjg4OzExMTIgMTE2QiAxMUJGOworRDY4OTtENjg5OzExMTIgMTE2QiAxMUMwO0Q2ODk7MTExMiAxMTZCIDExQzA7CitENjhBO0Q2OEE7MTExMiAxMTZCIDExQzE7RDY4QTsxMTEyIDExNkIgMTFDMTsKK0Q2OEI7RDY4QjsxMTEyIDExNkIgMTFDMjtENjhCOzExMTIgMTE2QiAxMUMyOworRDY4QztENjhDOzExMTIgMTE2QztENjhDOzExMTIgMTE2QzsKK0Q2OEQ7RDY4RDsxMTEyIDExNkMgMTFBODtENjhEOzExMTIgMTE2QyAxMUE4OworRDY4RTtENjhFOzExMTIgMTE2QyAxMUE5O0Q2OEU7MTExMiAxMTZDIDExQTk7CitENjhGO0Q2OEY7MTExMiAxMTZDIDExQUE7RDY4RjsxMTEyIDExNkMgMTFBQTsKK0Q2OTA7RDY5MDsxMTEyIDExNkMgMTFBQjtENjkwOzExMTIgMTE2QyAxMUFCOworRDY5MTtENjkxOzExMTIgMTE2QyAxMUFDO0Q2OTE7MTExMiAxMTZDIDExQUM7CitENjkyO0Q2OTI7MTExMiAxMTZDIDExQUQ7RDY5MjsxMTEyIDExNkMgMTFBRDsKK0Q2OTM7RDY5MzsxMTEyIDExNkMgMTFBRTtENjkzOzExMTIgMTE2QyAxMUFFOworRDY5NDtENjk0OzExMTIgMTE2QyAxMUFGO0Q2OTQ7MTExMiAxMTZDIDExQUY7CitENjk1O0Q2OTU7MTExMiAxMTZDIDExQjA7RDY5NTsxMTEyIDExNkMgMTFCMDsKK0Q2OTY7RDY5NjsxMTEyIDExNkMgMTFCMTtENjk2OzExMTIgMTE2QyAxMUIxOworRDY5NztENjk3OzExMTIgMTE2QyAxMUIyO0Q2OTc7MTExMiAxMTZDIDExQjI7CitENjk4O0Q2OTg7MTExMiAxMTZDIDExQjM7RDY5ODsxMTEyIDExNkMgMTFCMzsKK0Q2OTk7RDY5OTsxMTEyIDExNkMgMTFCNDtENjk5OzExMTIgMTE2QyAxMUI0OworRDY5QTtENjlBOzExMTIgMTE2QyAxMUI1O0Q2OUE7MTExMiAxMTZDIDExQjU7CitENjlCO0Q2OUI7MTExMiAxMTZDIDExQjY7RDY5QjsxMTEyIDExNkMgMTFCNjsKK0Q2OUM7RDY5QzsxMTEyIDExNkMgMTFCNztENjlDOzExMTIgMTE2QyAxMUI3OworRDY5RDtENjlEOzExMTIgMTE2QyAxMUI4O0Q2OUQ7MTExMiAxMTZDIDExQjg7CitENjlFO0Q2OUU7MTExMiAxMTZDIDExQjk7RDY5RTsxMTEyIDExNkMgMTFCOTsKK0Q2OUY7RDY5RjsxMTEyIDExNkMgMTFCQTtENjlGOzExMTIgMTE2QyAxMUJBOworRDZBMDtENkEwOzExMTIgMTE2QyAxMUJCO0Q2QTA7MTExMiAxMTZDIDExQkI7CitENkExO0Q2QTE7MTExMiAxMTZDIDExQkM7RDZBMTsxMTEyIDExNkMgMTFCQzsKK0Q2QTI7RDZBMjsxMTEyIDExNkMgMTFCRDtENkEyOzExMTIgMTE2QyAxMUJEOworRDZBMztENkEzOzExMTIgMTE2QyAxMUJFO0Q2QTM7MTExMiAxMTZDIDExQkU7CitENkE0O0Q2QTQ7MTExMiAxMTZDIDExQkY7RDZBNDsxMTEyIDExNkMgMTFCRjsKK0Q2QTU7RDZBNTsxMTEyIDExNkMgMTFDMDtENkE1OzExMTIgMTE2QyAxMUMwOworRDZBNjtENkE2OzExMTIgMTE2QyAxMUMxO0Q2QTY7MTExMiAxMTZDIDExQzE7CitENkE3O0Q2QTc7MTExMiAxMTZDIDExQzI7RDZBNzsxMTEyIDExNkMgMTFDMjsKK0Q2QTg7RDZBODsxMTEyIDExNkQ7RDZBODsxMTEyIDExNkQ7CitENkE5O0Q2QTk7MTExMiAxMTZEIDExQTg7RDZBOTsxMTEyIDExNkQgMTFBODsKK0Q2QUE7RDZBQTsxMTEyIDExNkQgMTFBOTtENkFBOzExMTIgMTE2RCAxMUE5OworRDZBQjtENkFCOzExMTIgMTE2RCAxMUFBO0Q2QUI7MTExMiAxMTZEIDExQUE7CitENkFDO0Q2QUM7MTExMiAxMTZEIDExQUI7RDZBQzsxMTEyIDExNkQgMTFBQjsKK0Q2QUQ7RDZBRDsxMTEyIDExNkQgMTFBQztENkFEOzExMTIgMTE2RCAxMUFDOworRDZBRTtENkFFOzExMTIgMTE2RCAxMUFEO0Q2QUU7MTExMiAxMTZEIDExQUQ7CitENkFGO0Q2QUY7MTExMiAxMTZEIDExQUU7RDZBRjsxMTEyIDExNkQgMTFBRTsKK0Q2QjA7RDZCMDsxMTEyIDExNkQgMTFBRjtENkIwOzExMTIgMTE2RCAxMUFGOworRDZCMTtENkIxOzExMTIgMTE2RCAxMUIwO0Q2QjE7MTExMiAxMTZEIDExQjA7CitENkIyO0Q2QjI7MTExMiAxMTZEIDExQjE7RDZCMjsxMTEyIDExNkQgMTFCMTsKK0Q2QjM7RDZCMzsxMTEyIDExNkQgMTFCMjtENkIzOzExMTIgMTE2RCAxMUIyOworRDZCNDtENkI0OzExMTIgMTE2RCAxMUIzO0Q2QjQ7MTExMiAxMTZEIDExQjM7CitENkI1O0Q2QjU7MTExMiAxMTZEIDExQjQ7RDZCNTsxMTEyIDExNkQgMTFCNDsKK0Q2QjY7RDZCNjsxMTEyIDExNkQgMTFCNTtENkI2OzExMTIgMTE2RCAxMUI1OworRDZCNztENkI3OzExMTIgMTE2RCAxMUI2O0Q2Qjc7MTExMiAxMTZEIDExQjY7CitENkI4O0Q2Qjg7MTExMiAxMTZEIDExQjc7RDZCODsxMTEyIDExNkQgMTFCNzsKK0Q2Qjk7RDZCOTsxMTEyIDExNkQgMTFCODtENkI5OzExMTIgMTE2RCAxMUI4OworRDZCQTtENkJBOzExMTIgMTE2RCAxMUI5O0Q2QkE7MTExMiAxMTZEIDExQjk7CitENkJCO0Q2QkI7MTExMiAxMTZEIDExQkE7RDZCQjsxMTEyIDExNkQgMTFCQTsKK0Q2QkM7RDZCQzsxMTEyIDExNkQgMTFCQjtENkJDOzExMTIgMTE2RCAxMUJCOworRDZCRDtENkJEOzExMTIgMTE2RCAxMUJDO0Q2QkQ7MTExMiAxMTZEIDExQkM7CitENkJFO0Q2QkU7MTExMiAxMTZEIDExQkQ7RDZCRTsxMTEyIDExNkQgMTFCRDsKK0Q2QkY7RDZCRjsxMTEyIDExNkQgMTFCRTtENkJGOzExMTIgMTE2RCAxMUJFOworRDZDMDtENkMwOzExMTIgMTE2RCAxMUJGO0Q2QzA7MTExMiAxMTZEIDExQkY7CitENkMxO0Q2QzE7MTExMiAxMTZEIDExQzA7RDZDMTsxMTEyIDExNkQgMTFDMDsKK0Q2QzI7RDZDMjsxMTEyIDExNkQgMTFDMTtENkMyOzExMTIgMTE2RCAxMUMxOworRDZDMztENkMzOzExMTIgMTE2RCAxMUMyO0Q2QzM7MTExMiAxMTZEIDExQzI7CitENkM0O0Q2QzQ7MTExMiAxMTZFO0Q2QzQ7MTExMiAxMTZFOworRDZDNTtENkM1OzExMTIgMTE2RSAxMUE4O0Q2QzU7MTExMiAxMTZFIDExQTg7CitENkM2O0Q2QzY7MTExMiAxMTZFIDExQTk7RDZDNjsxMTEyIDExNkUgMTFBOTsKK0Q2Qzc7RDZDNzsxMTEyIDExNkUgMTFBQTtENkM3OzExMTIgMTE2RSAxMUFBOworRDZDODtENkM4OzExMTIgMTE2RSAxMUFCO0Q2Qzg7MTExMiAxMTZFIDExQUI7CitENkM5O0Q2Qzk7MTExMiAxMTZFIDExQUM7RDZDOTsxMTEyIDExNkUgMTFBQzsKK0Q2Q0E7RDZDQTsxMTEyIDExNkUgMTFBRDtENkNBOzExMTIgMTE2RSAxMUFEOworRDZDQjtENkNCOzExMTIgMTE2RSAxMUFFO0Q2Q0I7MTExMiAxMTZFIDExQUU7CitENkNDO0Q2Q0M7MTExMiAxMTZFIDExQUY7RDZDQzsxMTEyIDExNkUgMTFBRjsKK0Q2Q0Q7RDZDRDsxMTEyIDExNkUgMTFCMDtENkNEOzExMTIgMTE2RSAxMUIwOworRDZDRTtENkNFOzExMTIgMTE2RSAxMUIxO0Q2Q0U7MTExMiAxMTZFIDExQjE7CitENkNGO0Q2Q0Y7MTExMiAxMTZFIDExQjI7RDZDRjsxMTEyIDExNkUgMTFCMjsKK0Q2RDA7RDZEMDsxMTEyIDExNkUgMTFCMztENkQwOzExMTIgMTE2RSAxMUIzOworRDZEMTtENkQxOzExMTIgMTE2RSAxMUI0O0Q2RDE7MTExMiAxMTZFIDExQjQ7CitENkQyO0Q2RDI7MTExMiAxMTZFIDExQjU7RDZEMjsxMTEyIDExNkUgMTFCNTsKK0Q2RDM7RDZEMzsxMTEyIDExNkUgMTFCNjtENkQzOzExMTIgMTE2RSAxMUI2OworRDZENDtENkQ0OzExMTIgMTE2RSAxMUI3O0Q2RDQ7MTExMiAxMTZFIDExQjc7CitENkQ1O0Q2RDU7MTExMiAxMTZFIDExQjg7RDZENTsxMTEyIDExNkUgMTFCODsKK0Q2RDY7RDZENjsxMTEyIDExNkUgMTFCOTtENkQ2OzExMTIgMTE2RSAxMUI5OworRDZENztENkQ3OzExMTIgMTE2RSAxMUJBO0Q2RDc7MTExMiAxMTZFIDExQkE7CitENkQ4O0Q2RDg7MTExMiAxMTZFIDExQkI7RDZEODsxMTEyIDExNkUgMTFCQjsKK0Q2RDk7RDZEOTsxMTEyIDExNkUgMTFCQztENkQ5OzExMTIgMTE2RSAxMUJDOworRDZEQTtENkRBOzExMTIgMTE2RSAxMUJEO0Q2REE7MTExMiAxMTZFIDExQkQ7CitENkRCO0Q2REI7MTExMiAxMTZFIDExQkU7RDZEQjsxMTEyIDExNkUgMTFCRTsKK0Q2REM7RDZEQzsxMTEyIDExNkUgMTFCRjtENkRDOzExMTIgMTE2RSAxMUJGOworRDZERDtENkREOzExMTIgMTE2RSAxMUMwO0Q2REQ7MTExMiAxMTZFIDExQzA7CitENkRFO0Q2REU7MTExMiAxMTZFIDExQzE7RDZERTsxMTEyIDExNkUgMTFDMTsKK0Q2REY7RDZERjsxMTEyIDExNkUgMTFDMjtENkRGOzExMTIgMTE2RSAxMUMyOworRDZFMDtENkUwOzExMTIgMTE2RjtENkUwOzExMTIgMTE2RjsKK0Q2RTE7RDZFMTsxMTEyIDExNkYgMTFBODtENkUxOzExMTIgMTE2RiAxMUE4OworRDZFMjtENkUyOzExMTIgMTE2RiAxMUE5O0Q2RTI7MTExMiAxMTZGIDExQTk7CitENkUzO0Q2RTM7MTExMiAxMTZGIDExQUE7RDZFMzsxMTEyIDExNkYgMTFBQTsKK0Q2RTQ7RDZFNDsxMTEyIDExNkYgMTFBQjtENkU0OzExMTIgMTE2RiAxMUFCOworRDZFNTtENkU1OzExMTIgMTE2RiAxMUFDO0Q2RTU7MTExMiAxMTZGIDExQUM7CitENkU2O0Q2RTY7MTExMiAxMTZGIDExQUQ7RDZFNjsxMTEyIDExNkYgMTFBRDsKK0Q2RTc7RDZFNzsxMTEyIDExNkYgMTFBRTtENkU3OzExMTIgMTE2RiAxMUFFOworRDZFODtENkU4OzExMTIgMTE2RiAxMUFGO0Q2RTg7MTExMiAxMTZGIDExQUY7CitENkU5O0Q2RTk7MTExMiAxMTZGIDExQjA7RDZFOTsxMTEyIDExNkYgMTFCMDsKK0Q2RUE7RDZFQTsxMTEyIDExNkYgMTFCMTtENkVBOzExMTIgMTE2RiAxMUIxOworRDZFQjtENkVCOzExMTIgMTE2RiAxMUIyO0Q2RUI7MTExMiAxMTZGIDExQjI7CitENkVDO0Q2RUM7MTExMiAxMTZGIDExQjM7RDZFQzsxMTEyIDExNkYgMTFCMzsKK0Q2RUQ7RDZFRDsxMTEyIDExNkYgMTFCNDtENkVEOzExMTIgMTE2RiAxMUI0OworRDZFRTtENkVFOzExMTIgMTE2RiAxMUI1O0Q2RUU7MTExMiAxMTZGIDExQjU7CitENkVGO0Q2RUY7MTExMiAxMTZGIDExQjY7RDZFRjsxMTEyIDExNkYgMTFCNjsKK0Q2RjA7RDZGMDsxMTEyIDExNkYgMTFCNztENkYwOzExMTIgMTE2RiAxMUI3OworRDZGMTtENkYxOzExMTIgMTE2RiAxMUI4O0Q2RjE7MTExMiAxMTZGIDExQjg7CitENkYyO0Q2RjI7MTExMiAxMTZGIDExQjk7RDZGMjsxMTEyIDExNkYgMTFCOTsKK0Q2RjM7RDZGMzsxMTEyIDExNkYgMTFCQTtENkYzOzExMTIgMTE2RiAxMUJBOworRDZGNDtENkY0OzExMTIgMTE2RiAxMUJCO0Q2RjQ7MTExMiAxMTZGIDExQkI7CitENkY1O0Q2RjU7MTExMiAxMTZGIDExQkM7RDZGNTsxMTEyIDExNkYgMTFCQzsKK0Q2RjY7RDZGNjsxMTEyIDExNkYgMTFCRDtENkY2OzExMTIgMTE2RiAxMUJEOworRDZGNztENkY3OzExMTIgMTE2RiAxMUJFO0Q2Rjc7MTExMiAxMTZGIDExQkU7CitENkY4O0Q2Rjg7MTExMiAxMTZGIDExQkY7RDZGODsxMTEyIDExNkYgMTFCRjsKK0Q2Rjk7RDZGOTsxMTEyIDExNkYgMTFDMDtENkY5OzExMTIgMTE2RiAxMUMwOworRDZGQTtENkZBOzExMTIgMTE2RiAxMUMxO0Q2RkE7MTExMiAxMTZGIDExQzE7CitENkZCO0Q2RkI7MTExMiAxMTZGIDExQzI7RDZGQjsxMTEyIDExNkYgMTFDMjsKK0Q2RkM7RDZGQzsxMTEyIDExNzA7RDZGQzsxMTEyIDExNzA7CitENkZEO0Q2RkQ7MTExMiAxMTcwIDExQTg7RDZGRDsxMTEyIDExNzAgMTFBODsKK0Q2RkU7RDZGRTsxMTEyIDExNzAgMTFBOTtENkZFOzExMTIgMTE3MCAxMUE5OworRDZGRjtENkZGOzExMTIgMTE3MCAxMUFBO0Q2RkY7MTExMiAxMTcwIDExQUE7CitENzAwO0Q3MDA7MTExMiAxMTcwIDExQUI7RDcwMDsxMTEyIDExNzAgMTFBQjsKK0Q3MDE7RDcwMTsxMTEyIDExNzAgMTFBQztENzAxOzExMTIgMTE3MCAxMUFDOworRDcwMjtENzAyOzExMTIgMTE3MCAxMUFEO0Q3MDI7MTExMiAxMTcwIDExQUQ7CitENzAzO0Q3MDM7MTExMiAxMTcwIDExQUU7RDcwMzsxMTEyIDExNzAgMTFBRTsKK0Q3MDQ7RDcwNDsxMTEyIDExNzAgMTFBRjtENzA0OzExMTIgMTE3MCAxMUFGOworRDcwNTtENzA1OzExMTIgMTE3MCAxMUIwO0Q3MDU7MTExMiAxMTcwIDExQjA7CitENzA2O0Q3MDY7MTExMiAxMTcwIDExQjE7RDcwNjsxMTEyIDExNzAgMTFCMTsKK0Q3MDc7RDcwNzsxMTEyIDExNzAgMTFCMjtENzA3OzExMTIgMTE3MCAxMUIyOworRDcwODtENzA4OzExMTIgMTE3MCAxMUIzO0Q3MDg7MTExMiAxMTcwIDExQjM7CitENzA5O0Q3MDk7MTExMiAxMTcwIDExQjQ7RDcwOTsxMTEyIDExNzAgMTFCNDsKK0Q3MEE7RDcwQTsxMTEyIDExNzAgMTFCNTtENzBBOzExMTIgMTE3MCAxMUI1OworRDcwQjtENzBCOzExMTIgMTE3MCAxMUI2O0Q3MEI7MTExMiAxMTcwIDExQjY7CitENzBDO0Q3MEM7MTExMiAxMTcwIDExQjc7RDcwQzsxMTEyIDExNzAgMTFCNzsKK0Q3MEQ7RDcwRDsxMTEyIDExNzAgMTFCODtENzBEOzExMTIgMTE3MCAxMUI4OworRDcwRTtENzBFOzExMTIgMTE3MCAxMUI5O0Q3MEU7MTExMiAxMTcwIDExQjk7CitENzBGO0Q3MEY7MTExMiAxMTcwIDExQkE7RDcwRjsxMTEyIDExNzAgMTFCQTsKK0Q3MTA7RDcxMDsxMTEyIDExNzAgMTFCQjtENzEwOzExMTIgMTE3MCAxMUJCOworRDcxMTtENzExOzExMTIgMTE3MCAxMUJDO0Q3MTE7MTExMiAxMTcwIDExQkM7CitENzEyO0Q3MTI7MTExMiAxMTcwIDExQkQ7RDcxMjsxMTEyIDExNzAgMTFCRDsKK0Q3MTM7RDcxMzsxMTEyIDExNzAgMTFCRTtENzEzOzExMTIgMTE3MCAxMUJFOworRDcxNDtENzE0OzExMTIgMTE3MCAxMUJGO0Q3MTQ7MTExMiAxMTcwIDExQkY7CitENzE1O0Q3MTU7MTExMiAxMTcwIDExQzA7RDcxNTsxMTEyIDExNzAgMTFDMDsKK0Q3MTY7RDcxNjsxMTEyIDExNzAgMTFDMTtENzE2OzExMTIgMTE3MCAxMUMxOworRDcxNztENzE3OzExMTIgMTE3MCAxMUMyO0Q3MTc7MTExMiAxMTcwIDExQzI7CitENzE4O0Q3MTg7MTExMiAxMTcxO0Q3MTg7MTExMiAxMTcxOworRDcxOTtENzE5OzExMTIgMTE3MSAxMUE4O0Q3MTk7MTExMiAxMTcxIDExQTg7CitENzFBO0Q3MUE7MTExMiAxMTcxIDExQTk7RDcxQTsxMTEyIDExNzEgMTFBOTsKK0Q3MUI7RDcxQjsxMTEyIDExNzEgMTFBQTtENzFCOzExMTIgMTE3MSAxMUFBOworRDcxQztENzFDOzExMTIgMTE3MSAxMUFCO0Q3MUM7MTExMiAxMTcxIDExQUI7CitENzFEO0Q3MUQ7MTExMiAxMTcxIDExQUM7RDcxRDsxMTEyIDExNzEgMTFBQzsKK0Q3MUU7RDcxRTsxMTEyIDExNzEgMTFBRDtENzFFOzExMTIgMTE3MSAxMUFEOworRDcxRjtENzFGOzExMTIgMTE3MSAxMUFFO0Q3MUY7MTExMiAxMTcxIDExQUU7CitENzIwO0Q3MjA7MTExMiAxMTcxIDExQUY7RDcyMDsxMTEyIDExNzEgMTFBRjsKK0Q3MjE7RDcyMTsxMTEyIDExNzEgMTFCMDtENzIxOzExMTIgMTE3MSAxMUIwOworRDcyMjtENzIyOzExMTIgMTE3MSAxMUIxO0Q3MjI7MTExMiAxMTcxIDExQjE7CitENzIzO0Q3MjM7MTExMiAxMTcxIDExQjI7RDcyMzsxMTEyIDExNzEgMTFCMjsKK0Q3MjQ7RDcyNDsxMTEyIDExNzEgMTFCMztENzI0OzExMTIgMTE3MSAxMUIzOworRDcyNTtENzI1OzExMTIgMTE3MSAxMUI0O0Q3MjU7MTExMiAxMTcxIDExQjQ7CitENzI2O0Q3MjY7MTExMiAxMTcxIDExQjU7RDcyNjsxMTEyIDExNzEgMTFCNTsKK0Q3Mjc7RDcyNzsxMTEyIDExNzEgMTFCNjtENzI3OzExMTIgMTE3MSAxMUI2OworRDcyODtENzI4OzExMTIgMTE3MSAxMUI3O0Q3Mjg7MTExMiAxMTcxIDExQjc7CitENzI5O0Q3Mjk7MTExMiAxMTcxIDExQjg7RDcyOTsxMTEyIDExNzEgMTFCODsKK0Q3MkE7RDcyQTsxMTEyIDExNzEgMTFCOTtENzJBOzExMTIgMTE3MSAxMUI5OworRDcyQjtENzJCOzExMTIgMTE3MSAxMUJBO0Q3MkI7MTExMiAxMTcxIDExQkE7CitENzJDO0Q3MkM7MTExMiAxMTcxIDExQkI7RDcyQzsxMTEyIDExNzEgMTFCQjsKK0Q3MkQ7RDcyRDsxMTEyIDExNzEgMTFCQztENzJEOzExMTIgMTE3MSAxMUJDOworRDcyRTtENzJFOzExMTIgMTE3MSAxMUJEO0Q3MkU7MTExMiAxMTcxIDExQkQ7CitENzJGO0Q3MkY7MTExMiAxMTcxIDExQkU7RDcyRjsxMTEyIDExNzEgMTFCRTsKK0Q3MzA7RDczMDsxMTEyIDExNzEgMTFCRjtENzMwOzExMTIgMTE3MSAxMUJGOworRDczMTtENzMxOzExMTIgMTE3MSAxMUMwO0Q3MzE7MTExMiAxMTcxIDExQzA7CitENzMyO0Q3MzI7MTExMiAxMTcxIDExQzE7RDczMjsxMTEyIDExNzEgMTFDMTsKK0Q3MzM7RDczMzsxMTEyIDExNzEgMTFDMjtENzMzOzExMTIgMTE3MSAxMUMyOworRDczNDtENzM0OzExMTIgMTE3MjtENzM0OzExMTIgMTE3MjsKK0Q3MzU7RDczNTsxMTEyIDExNzIgMTFBODtENzM1OzExMTIgMTE3MiAxMUE4OworRDczNjtENzM2OzExMTIgMTE3MiAxMUE5O0Q3MzY7MTExMiAxMTcyIDExQTk7CitENzM3O0Q3Mzc7MTExMiAxMTcyIDExQUE7RDczNzsxMTEyIDExNzIgMTFBQTsKK0Q3Mzg7RDczODsxMTEyIDExNzIgMTFBQjtENzM4OzExMTIgMTE3MiAxMUFCOworRDczOTtENzM5OzExMTIgMTE3MiAxMUFDO0Q3Mzk7MTExMiAxMTcyIDExQUM7CitENzNBO0Q3M0E7MTExMiAxMTcyIDExQUQ7RDczQTsxMTEyIDExNzIgMTFBRDsKK0Q3M0I7RDczQjsxMTEyIDExNzIgMTFBRTtENzNCOzExMTIgMTE3MiAxMUFFOworRDczQztENzNDOzExMTIgMTE3MiAxMUFGO0Q3M0M7MTExMiAxMTcyIDExQUY7CitENzNEO0Q3M0Q7MTExMiAxMTcyIDExQjA7RDczRDsxMTEyIDExNzIgMTFCMDsKK0Q3M0U7RDczRTsxMTEyIDExNzIgMTFCMTtENzNFOzExMTIgMTE3MiAxMUIxOworRDczRjtENzNGOzExMTIgMTE3MiAxMUIyO0Q3M0Y7MTExMiAxMTcyIDExQjI7CitENzQwO0Q3NDA7MTExMiAxMTcyIDExQjM7RDc0MDsxMTEyIDExNzIgMTFCMzsKK0Q3NDE7RDc0MTsxMTEyIDExNzIgMTFCNDtENzQxOzExMTIgMTE3MiAxMUI0OworRDc0MjtENzQyOzExMTIgMTE3MiAxMUI1O0Q3NDI7MTExMiAxMTcyIDExQjU7CitENzQzO0Q3NDM7MTExMiAxMTcyIDExQjY7RDc0MzsxMTEyIDExNzIgMTFCNjsKK0Q3NDQ7RDc0NDsxMTEyIDExNzIgMTFCNztENzQ0OzExMTIgMTE3MiAxMUI3OworRDc0NTtENzQ1OzExMTIgMTE3MiAxMUI4O0Q3NDU7MTExMiAxMTcyIDExQjg7CitENzQ2O0Q3NDY7MTExMiAxMTcyIDExQjk7RDc0NjsxMTEyIDExNzIgMTFCOTsKK0Q3NDc7RDc0NzsxMTEyIDExNzIgMTFCQTtENzQ3OzExMTIgMTE3MiAxMUJBOworRDc0ODtENzQ4OzExMTIgMTE3MiAxMUJCO0Q3NDg7MTExMiAxMTcyIDExQkI7CitENzQ5O0Q3NDk7MTExMiAxMTcyIDExQkM7RDc0OTsxMTEyIDExNzIgMTFCQzsKK0Q3NEE7RDc0QTsxMTEyIDExNzIgMTFCRDtENzRBOzExMTIgMTE3MiAxMUJEOworRDc0QjtENzRCOzExMTIgMTE3MiAxMUJFO0Q3NEI7MTExMiAxMTcyIDExQkU7CitENzRDO0Q3NEM7MTExMiAxMTcyIDExQkY7RDc0QzsxMTEyIDExNzIgMTFCRjsKK0Q3NEQ7RDc0RDsxMTEyIDExNzIgMTFDMDtENzREOzExMTIgMTE3MiAxMUMwOworRDc0RTtENzRFOzExMTIgMTE3MiAxMUMxO0Q3NEU7MTExMiAxMTcyIDExQzE7CitENzRGO0Q3NEY7MTExMiAxMTcyIDExQzI7RDc0RjsxMTEyIDExNzIgMTFDMjsKK0Q3NTA7RDc1MDsxMTEyIDExNzM7RDc1MDsxMTEyIDExNzM7CitENzUxO0Q3NTE7MTExMiAxMTczIDExQTg7RDc1MTsxMTEyIDExNzMgMTFBODsKK0Q3NTI7RDc1MjsxMTEyIDExNzMgMTFBOTtENzUyOzExMTIgMTE3MyAxMUE5OworRDc1MztENzUzOzExMTIgMTE3MyAxMUFBO0Q3NTM7MTExMiAxMTczIDExQUE7CitENzU0O0Q3NTQ7MTExMiAxMTczIDExQUI7RDc1NDsxMTEyIDExNzMgMTFBQjsKK0Q3NTU7RDc1NTsxMTEyIDExNzMgMTFBQztENzU1OzExMTIgMTE3MyAxMUFDOworRDc1NjtENzU2OzExMTIgMTE3MyAxMUFEO0Q3NTY7MTExMiAxMTczIDExQUQ7CitENzU3O0Q3NTc7MTExMiAxMTczIDExQUU7RDc1NzsxMTEyIDExNzMgMTFBRTsKK0Q3NTg7RDc1ODsxMTEyIDExNzMgMTFBRjtENzU4OzExMTIgMTE3MyAxMUFGOworRDc1OTtENzU5OzExMTIgMTE3MyAxMUIwO0Q3NTk7MTExMiAxMTczIDExQjA7CitENzVBO0Q3NUE7MTExMiAxMTczIDExQjE7RDc1QTsxMTEyIDExNzMgMTFCMTsKK0Q3NUI7RDc1QjsxMTEyIDExNzMgMTFCMjtENzVCOzExMTIgMTE3MyAxMUIyOworRDc1QztENzVDOzExMTIgMTE3MyAxMUIzO0Q3NUM7MTExMiAxMTczIDExQjM7CitENzVEO0Q3NUQ7MTExMiAxMTczIDExQjQ7RDc1RDsxMTEyIDExNzMgMTFCNDsKK0Q3NUU7RDc1RTsxMTEyIDExNzMgMTFCNTtENzVFOzExMTIgMTE3MyAxMUI1OworRDc1RjtENzVGOzExMTIgMTE3MyAxMUI2O0Q3NUY7MTExMiAxMTczIDExQjY7CitENzYwO0Q3NjA7MTExMiAxMTczIDExQjc7RDc2MDsxMTEyIDExNzMgMTFCNzsKK0Q3NjE7RDc2MTsxMTEyIDExNzMgMTFCODtENzYxOzExMTIgMTE3MyAxMUI4OworRDc2MjtENzYyOzExMTIgMTE3MyAxMUI5O0Q3NjI7MTExMiAxMTczIDExQjk7CitENzYzO0Q3NjM7MTExMiAxMTczIDExQkE7RDc2MzsxMTEyIDExNzMgMTFCQTsKK0Q3NjQ7RDc2NDsxMTEyIDExNzMgMTFCQjtENzY0OzExMTIgMTE3MyAxMUJCOworRDc2NTtENzY1OzExMTIgMTE3MyAxMUJDO0Q3NjU7MTExMiAxMTczIDExQkM7CitENzY2O0Q3NjY7MTExMiAxMTczIDExQkQ7RDc2NjsxMTEyIDExNzMgMTFCRDsKK0Q3Njc7RDc2NzsxMTEyIDExNzMgMTFCRTtENzY3OzExMTIgMTE3MyAxMUJFOworRDc2ODtENzY4OzExMTIgMTE3MyAxMUJGO0Q3Njg7MTExMiAxMTczIDExQkY7CitENzY5O0Q3Njk7MTExMiAxMTczIDExQzA7RDc2OTsxMTEyIDExNzMgMTFDMDsKK0Q3NkE7RDc2QTsxMTEyIDExNzMgMTFDMTtENzZBOzExMTIgMTE3MyAxMUMxOworRDc2QjtENzZCOzExMTIgMTE3MyAxMUMyO0Q3NkI7MTExMiAxMTczIDExQzI7CitENzZDO0Q3NkM7MTExMiAxMTc0O0Q3NkM7MTExMiAxMTc0OworRDc2RDtENzZEOzExMTIgMTE3NCAxMUE4O0Q3NkQ7MTExMiAxMTc0IDExQTg7CitENzZFO0Q3NkU7MTExMiAxMTc0IDExQTk7RDc2RTsxMTEyIDExNzQgMTFBOTsKK0Q3NkY7RDc2RjsxMTEyIDExNzQgMTFBQTtENzZGOzExMTIgMTE3NCAxMUFBOworRDc3MDtENzcwOzExMTIgMTE3NCAxMUFCO0Q3NzA7MTExMiAxMTc0IDExQUI7CitENzcxO0Q3NzE7MTExMiAxMTc0IDExQUM7RDc3MTsxMTEyIDExNzQgMTFBQzsKK0Q3NzI7RDc3MjsxMTEyIDExNzQgMTFBRDtENzcyOzExMTIgMTE3NCAxMUFEOworRDc3MztENzczOzExMTIgMTE3NCAxMUFFO0Q3NzM7MTExMiAxMTc0IDExQUU7CitENzc0O0Q3NzQ7MTExMiAxMTc0IDExQUY7RDc3NDsxMTEyIDExNzQgMTFBRjsKK0Q3NzU7RDc3NTsxMTEyIDExNzQgMTFCMDtENzc1OzExMTIgMTE3NCAxMUIwOworRDc3NjtENzc2OzExMTIgMTE3NCAxMUIxO0Q3NzY7MTExMiAxMTc0IDExQjE7CitENzc3O0Q3Nzc7MTExMiAxMTc0IDExQjI7RDc3NzsxMTEyIDExNzQgMTFCMjsKK0Q3Nzg7RDc3ODsxMTEyIDExNzQgMTFCMztENzc4OzExMTIgMTE3NCAxMUIzOworRDc3OTtENzc5OzExMTIgMTE3NCAxMUI0O0Q3Nzk7MTExMiAxMTc0IDExQjQ7CitENzdBO0Q3N0E7MTExMiAxMTc0IDExQjU7RDc3QTsxMTEyIDExNzQgMTFCNTsKK0Q3N0I7RDc3QjsxMTEyIDExNzQgMTFCNjtENzdCOzExMTIgMTE3NCAxMUI2OworRDc3QztENzdDOzExMTIgMTE3NCAxMUI3O0Q3N0M7MTExMiAxMTc0IDExQjc7CitENzdEO0Q3N0Q7MTExMiAxMTc0IDExQjg7RDc3RDsxMTEyIDExNzQgMTFCODsKK0Q3N0U7RDc3RTsxMTEyIDExNzQgMTFCOTtENzdFOzExMTIgMTE3NCAxMUI5OworRDc3RjtENzdGOzExMTIgMTE3NCAxMUJBO0Q3N0Y7MTExMiAxMTc0IDExQkE7CitENzgwO0Q3ODA7MTExMiAxMTc0IDExQkI7RDc4MDsxMTEyIDExNzQgMTFCQjsKK0Q3ODE7RDc4MTsxMTEyIDExNzQgMTFCQztENzgxOzExMTIgMTE3NCAxMUJDOworRDc4MjtENzgyOzExMTIgMTE3NCAxMUJEO0Q3ODI7MTExMiAxMTc0IDExQkQ7CitENzgzO0Q3ODM7MTExMiAxMTc0IDExQkU7RDc4MzsxMTEyIDExNzQgMTFCRTsKK0Q3ODQ7RDc4NDsxMTEyIDExNzQgMTFCRjtENzg0OzExMTIgMTE3NCAxMUJGOworRDc4NTtENzg1OzExMTIgMTE3NCAxMUMwO0Q3ODU7MTExMiAxMTc0IDExQzA7CitENzg2O0Q3ODY7MTExMiAxMTc0IDExQzE7RDc4NjsxMTEyIDExNzQgMTFDMTsKK0Q3ODc7RDc4NzsxMTEyIDExNzQgMTFDMjtENzg3OzExMTIgMTE3NCAxMUMyOworRDc4ODtENzg4OzExMTIgMTE3NTtENzg4OzExMTIgMTE3NTsKK0Q3ODk7RDc4OTsxMTEyIDExNzUgMTFBODtENzg5OzExMTIgMTE3NSAxMUE4OworRDc4QTtENzhBOzExMTIgMTE3NSAxMUE5O0Q3OEE7MTExMiAxMTc1IDExQTk7CitENzhCO0Q3OEI7MTExMiAxMTc1IDExQUE7RDc4QjsxMTEyIDExNzUgMTFBQTsKK0Q3OEM7RDc4QzsxMTEyIDExNzUgMTFBQjtENzhDOzExMTIgMTE3NSAxMUFCOworRDc4RDtENzhEOzExMTIgMTE3NSAxMUFDO0Q3OEQ7MTExMiAxMTc1IDExQUM7CitENzhFO0Q3OEU7MTExMiAxMTc1IDExQUQ7RDc4RTsxMTEyIDExNzUgMTFBRDsKK0Q3OEY7RDc4RjsxMTEyIDExNzUgMTFBRTtENzhGOzExMTIgMTE3NSAxMUFFOworRDc5MDtENzkwOzExMTIgMTE3NSAxMUFGO0Q3OTA7MTExMiAxMTc1IDExQUY7CitENzkxO0Q3OTE7MTExMiAxMTc1IDExQjA7RDc5MTsxMTEyIDExNzUgMTFCMDsKK0Q3OTI7RDc5MjsxMTEyIDExNzUgMTFCMTtENzkyOzExMTIgMTE3NSAxMUIxOworRDc5MztENzkzOzExMTIgMTE3NSAxMUIyO0Q3OTM7MTExMiAxMTc1IDExQjI7CitENzk0O0Q3OTQ7MTExMiAxMTc1IDExQjM7RDc5NDsxMTEyIDExNzUgMTFCMzsKK0Q3OTU7RDc5NTsxMTEyIDExNzUgMTFCNDtENzk1OzExMTIgMTE3NSAxMUI0OworRDc5NjtENzk2OzExMTIgMTE3NSAxMUI1O0Q3OTY7MTExMiAxMTc1IDExQjU7CitENzk3O0Q3OTc7MTExMiAxMTc1IDExQjY7RDc5NzsxMTEyIDExNzUgMTFCNjsKK0Q3OTg7RDc5ODsxMTEyIDExNzUgMTFCNztENzk4OzExMTIgMTE3NSAxMUI3OworRDc5OTtENzk5OzExMTIgMTE3NSAxMUI4O0Q3OTk7MTExMiAxMTc1IDExQjg7CitENzlBO0Q3OUE7MTExMiAxMTc1IDExQjk7RDc5QTsxMTEyIDExNzUgMTFCOTsKK0Q3OUI7RDc5QjsxMTEyIDExNzUgMTFCQTtENzlCOzExMTIgMTE3NSAxMUJBOworRDc5QztENzlDOzExMTIgMTE3NSAxMUJCO0Q3OUM7MTExMiAxMTc1IDExQkI7CitENzlEO0Q3OUQ7MTExMiAxMTc1IDExQkM7RDc5RDsxMTEyIDExNzUgMTFCQzsKK0Q3OUU7RDc5RTsxMTEyIDExNzUgMTFCRDtENzlFOzExMTIgMTE3NSAxMUJEOworRDc5RjtENzlGOzExMTIgMTE3NSAxMUJFO0Q3OUY7MTExMiAxMTc1IDExQkU7CitEN0EwO0Q3QTA7MTExMiAxMTc1IDExQkY7RDdBMDsxMTEyIDExNzUgMTFCRjsKK0Q3QTE7RDdBMTsxMTEyIDExNzUgMTFDMDtEN0ExOzExMTIgMTE3NSAxMUMwOworRDdBMjtEN0EyOzExMTIgMTE3NSAxMUMxO0Q3QTI7MTExMiAxMTc1IDExQzE7CitEN0EzO0Q3QTM7MTExMiAxMTc1IDExQzI7RDdBMzsxMTEyIDExNzUgMTFDMjsKK0Y5MDA7OEM0ODs4QzQ4OzhDNDg7OEM0ODsKK0Y5MDE7NjZGNDs2NkY0OzY2RjQ7NjZGNDsKK0Y5MDI7OEVDQTs4RUNBOzhFQ0E7OEVDQTsKK0Y5MDM7OENDODs4Q0M4OzhDQzg7OENDODsKK0Y5MDQ7NkVEMTs2RUQxOzZFRDE7NkVEMTsKK0Y5MDU7NEUzMjs0RTMyOzRFMzI7NEUzMjsKK0Y5MDY7NTNFNTs1M0U1OzUzRTU7NTNFNTsKK0Y5MDc7OUY5Qzs5RjlDOzlGOUM7OUY5QzsKK0Y5MDg7OUY5Qzs5RjlDOzlGOUM7OUY5QzsKK0Y5MDk7NTk1MTs1OTUxOzU5NTE7NTk1MTsKK0Y5MEE7OTFEMTs5MUQxOzkxRDE7OTFEMTsKK0Y5MEI7NTU4Nzs1NTg3OzU1ODc7NTU4NzsKK0Y5MEM7NTk0ODs1OTQ4OzU5NDg7NTk0ODsKK0Y5MEQ7NjFGNjs2MUY2OzYxRjY7NjFGNjsKK0Y5MEU7NzY2OTs3NjY5Ozc2Njk7NzY2OTsKK0Y5MEY7N0Y4NTs3Rjg1OzdGODU7N0Y4NTsKK0Y5MTA7ODYzRjs4NjNGOzg2M0Y7ODYzRjsKK0Y5MTE7ODdCQTs4N0JBOzg3QkE7ODdCQTsKK0Y5MTI7ODhGODs4OEY4Ozg4Rjg7ODhGODsKK0Y5MTM7OTA4Rjs5MDhGOzkwOEY7OTA4RjsKK0Y5MTQ7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5MTU7NkQxQjs2RDFCOzZEMUI7NkQxQjsKK0Y5MTY7NzBEOTs3MEQ5OzcwRDk7NzBEOTsKK0Y5MTc7NzNERTs3M0RFOzczREU7NzNERTsKK0Y5MTg7ODQzRDs4NDNEOzg0M0Q7ODQzRDsKK0Y5MTk7OTE2QTs5MTZBOzkxNkE7OTE2QTsKK0Y5MUE7OTlGMTs5OUYxOzk5RjE7OTlGMTsKK0Y5MUI7NEU4Mjs0RTgyOzRFODI7NEU4MjsKK0Y5MUM7NTM3NTs1Mzc1OzUzNzU7NTM3NTsKK0Y5MUQ7NkIwNDs2QjA0OzZCMDQ7NkIwNDsKK0Y5MUU7NzIxQjs3MjFCOzcyMUI7NzIxQjsKK0Y5MUY7ODYyRDs4NjJEOzg2MkQ7ODYyRDsKK0Y5MjA7OUUxRTs5RTFFOzlFMUU7OUUxRTsKK0Y5MjE7NUQ1MDs1RDUwOzVENTA7NUQ1MDsKK0Y5MjI7NkZFQjs2RkVCOzZGRUI7NkZFQjsKK0Y5MjM7ODVDRDs4NUNEOzg1Q0Q7ODVDRDsKK0Y5MjQ7ODk2NDs4OTY0Ozg5NjQ7ODk2NDsKK0Y5MjU7NjJDOTs2MkM5OzYyQzk7NjJDOTsKK0Y5MjY7ODFEODs4MUQ4OzgxRDg7ODFEODsKK0Y5Mjc7ODgxRjs4ODFGOzg4MUY7ODgxRjsKK0Y5Mjg7NUVDQTs1RUNBOzVFQ0E7NUVDQTsKK0Y5Mjk7NjcxNzs2NzE3OzY3MTc7NjcxNzsKK0Y5MkE7NkQ2QTs2RDZBOzZENkE7NkQ2QTsKK0Y5MkI7NzJGQzs3MkZDOzcyRkM7NzJGQzsKK0Y5MkM7OTBDRTs5MENFOzkwQ0U7OTBDRTsKK0Y5MkQ7NEY4Njs0Rjg2OzRGODY7NEY4NjsKK0Y5MkU7NTFCNzs1MUI3OzUxQjc7NTFCNzsKK0Y5MkY7NTJERTs1MkRFOzUyREU7NTJERTsKK0Y5MzA7NjRDNDs2NEM0OzY0QzQ7NjRDNDsKK0Y5MzE7NkFEMzs2QUQzOzZBRDM7NkFEMzsKK0Y5MzI7NzIxMDs3MjEwOzcyMTA7NzIxMDsKK0Y5MzM7NzZFNzs3NkU3Ozc2RTc7NzZFNzsKK0Y5MzQ7ODAwMTs4MDAxOzgwMDE7ODAwMTsKK0Y5MzU7ODYwNjs4NjA2Ozg2MDY7ODYwNjsKK0Y5MzY7ODY1Qzs4NjVDOzg2NUM7ODY1QzsKK0Y5Mzc7OERFRjs4REVGOzhERUY7OERFRjsKK0Y5Mzg7OTczMjs5NzMyOzk3MzI7OTczMjsKK0Y5Mzk7OUI2Rjs5QjZGOzlCNkY7OUI2RjsKK0Y5M0E7OURGQTs5REZBOzlERkE7OURGQTsKK0Y5M0I7Nzg4Qzs3ODhDOzc4OEM7Nzg4QzsKK0Y5M0M7Nzk3Rjs3OTdGOzc5N0Y7Nzk3RjsKK0Y5M0Q7N0RBMDs3REEwOzdEQTA7N0RBMDsKK0Y5M0U7ODNDOTs4M0M5OzgzQzk7ODNDOTsKK0Y5M0Y7OTMwNDs5MzA0OzkzMDQ7OTMwNDsKK0Y5NDA7OUU3Rjs5RTdGOzlFN0Y7OUU3RjsKK0Y5NDE7OEFENjs4QUQ2OzhBRDY7OEFENjsKK0Y5NDI7NThERjs1OERGOzU4REY7NThERjsKK0Y5NDM7NUYwNDs1RjA0OzVGMDQ7NUYwNDsKK0Y5NDQ7N0M2MDs3QzYwOzdDNjA7N0M2MDsKK0Y5NDU7ODA3RTs4MDdFOzgwN0U7ODA3RTsKK0Y5NDY7NzI2Mjs3MjYyOzcyNjI7NzI2MjsKK0Y5NDc7NzhDQTs3OENBOzc4Q0E7NzhDQTsKK0Y5NDg7OENDMjs4Q0MyOzhDQzI7OENDMjsKK0Y5NDk7OTZGNzs5NkY3Ozk2Rjc7OTZGNzsKK0Y5NEE7NThEODs1OEQ4OzU4RDg7NThEODsKK0Y5NEI7NUM2Mjs1QzYyOzVDNjI7NUM2MjsKK0Y5NEM7NkExMzs2QTEzOzZBMTM7NkExMzsKK0Y5NEQ7NkREQTs2RERBOzZEREE7NkREQTsKK0Y5NEU7NkYwRjs2RjBGOzZGMEY7NkYwRjsKK0Y5NEY7N0QyRjs3RDJGOzdEMkY7N0QyRjsKK0Y5NTA7N0UzNzs3RTM3OzdFMzc7N0UzNzsKK0Y5NTE7OTY0Qjs5NjRCOzk2NEI7OTY0QjsKK0Y5NTI7NTJEMjs1MkQyOzUyRDI7NTJEMjsKK0Y5NTM7ODA4Qjs4MDhCOzgwOEI7ODA4QjsKK0Y5NTQ7NTFEQzs1MURDOzUxREM7NTFEQzsKK0Y5NTU7NTFDQzs1MUNDOzUxQ0M7NTFDQzsKK0Y5NTY7N0ExQzs3QTFDOzdBMUM7N0ExQzsKK0Y5NTc7N0RCRTs3REJFOzdEQkU7N0RCRTsKK0Y5NTg7ODNGMTs4M0YxOzgzRjE7ODNGMTsKK0Y5NTk7OTY3NTs5Njc1Ozk2NzU7OTY3NTsKK0Y5NUE7OEI4MDs4QjgwOzhCODA7OEI4MDsKK0Y5NUI7NjJDRjs2MkNGOzYyQ0Y7NjJDRjsKK0Y5NUM7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5NUQ7OEFGRTs4QUZFOzhBRkU7OEFGRTsKK0Y5NUU7NEUzOTs0RTM5OzRFMzk7NEUzOTsKK0Y5NUY7NUJFNzs1QkU3OzVCRTc7NUJFNzsKK0Y5NjA7NjAxMjs2MDEyOzYwMTI7NjAxMjsKK0Y5NjE7NzM4Nzs3Mzg3OzczODc7NzM4NzsKK0Y5NjI7NzU3MDs3NTcwOzc1NzA7NzU3MDsKK0Y5NjM7NTMxNzs1MzE3OzUzMTc7NTMxNzsKK0Y5NjQ7NzhGQjs3OEZCOzc4RkI7NzhGQjsKK0Y5NjU7NEZCRjs0RkJGOzRGQkY7NEZCRjsKK0Y5NjY7NUZBOTs1RkE5OzVGQTk7NUZBOTsKK0Y5Njc7NEUwRDs0RTBEOzRFMEQ7NEUwRDsKK0Y5Njg7NkNDQzs2Q0NDOzZDQ0M7NkNDQzsKK0Y5Njk7NjU3ODs2NTc4OzY1Nzg7NjU3ODsKK0Y5NkE7N0QyMjs3RDIyOzdEMjI7N0QyMjsKK0Y5NkI7NTNDMzs1M0MzOzUzQzM7NTNDMzsKK0Y5NkM7NTg1RTs1ODVFOzU4NUU7NTg1RTsKK0Y5NkQ7NzcwMTs3NzAxOzc3MDE7NzcwMTsKK0Y5NkU7ODQ0OTs4NDQ5Ozg0NDk7ODQ0OTsKK0Y5NkY7OEFBQTs4QUFBOzhBQUE7OEFBQTsKK0Y5NzA7NkJCQTs2QkJBOzZCQkE7NkJCQTsKK0Y5NzE7OEZCMDs4RkIwOzhGQjA7OEZCMDsKK0Y5NzI7NkM4ODs2Qzg4OzZDODg7NkM4ODsKK0Y5NzM7NjJGRTs2MkZFOzYyRkU7NjJGRTsKK0Y5NzQ7ODJFNTs4MkU1OzgyRTU7ODJFNTsKK0Y5NzU7NjNBMDs2M0EwOzYzQTA7NjNBMDsKK0Y5NzY7NzU2NTs3NTY1Ozc1NjU7NzU2NTsKK0Y5Nzc7NEVBRTs0RUFFOzRFQUU7NEVBRTsKK0Y5Nzg7NTE2OTs1MTY5OzUxNjk7NTE2OTsKK0Y5Nzk7NTFDOTs1MUM5OzUxQzk7NTFDOTsKK0Y5N0E7Njg4MTs2ODgxOzY4ODE7Njg4MTsKK0Y5N0I7N0NFNzs3Q0U3OzdDRTc7N0NFNzsKK0Y5N0M7ODI2Rjs4MjZGOzgyNkY7ODI2RjsKK0Y5N0Q7OEFEMjs4QUQyOzhBRDI7OEFEMjsKK0Y5N0U7OTFDRjs5MUNGOzkxQ0Y7OTFDRjsKK0Y5N0Y7NTJGNTs1MkY1OzUyRjU7NTJGNTsKK0Y5ODA7NTQ0Mjs1NDQyOzU0NDI7NTQ0MjsKK0Y5ODE7NTk3Mzs1OTczOzU5NzM7NTk3MzsKK0Y5ODI7NUVFQzs1RUVDOzVFRUM7NUVFQzsKK0Y5ODM7NjVDNTs2NUM1OzY1QzU7NjVDNTsKK0Y5ODQ7NkZGRTs2RkZFOzZGRkU7NkZGRTsKK0Y5ODU7NzkyQTs3OTJBOzc5MkE7NzkyQTsKK0Y5ODY7OTVBRDs5NUFEOzk1QUQ7OTVBRDsKK0Y5ODc7OUE2QTs5QTZBOzlBNkE7OUE2QTsKK0Y5ODg7OUU5Nzs5RTk3OzlFOTc7OUU5NzsKK0Y5ODk7OUVDRTs5RUNFOzlFQ0U7OUVDRTsKK0Y5OEE7NTI5Qjs1MjlCOzUyOUI7NTI5QjsKK0Y5OEI7NjZDNjs2NkM2OzY2QzY7NjZDNjsKK0Y5OEM7NkI3Nzs2Qjc3OzZCNzc7NkI3NzsKK0Y5OEQ7OEY2Mjs4RjYyOzhGNjI7OEY2MjsKK0Y5OEU7NUU3NDs1RTc0OzVFNzQ7NUU3NDsKK0Y5OEY7NjE5MDs2MTkwOzYxOTA7NjE5MDsKK0Y5OTA7NjIwMDs2MjAwOzYyMDA7NjIwMDsKK0Y5OTE7NjQ5QTs2NDlBOzY0OUE7NjQ5QTsKK0Y5OTI7NkYyMzs2RjIzOzZGMjM7NkYyMzsKK0Y5OTM7NzE0OTs3MTQ5OzcxNDk7NzE0OTsKK0Y5OTQ7NzQ4OTs3NDg5Ozc0ODk7NzQ4OTsKK0Y5OTU7NzlDQTs3OUNBOzc5Q0E7NzlDQTsKK0Y5OTY7N0RGNDs3REY0OzdERjQ7N0RGNDsKK0Y5OTc7ODA2Rjs4MDZGOzgwNkY7ODA2RjsKK0Y5OTg7OEYyNjs4RjI2OzhGMjY7OEYyNjsKK0Y5OTk7ODRFRTs4NEVFOzg0RUU7ODRFRTsKK0Y5OUE7OTAyMzs5MDIzOzkwMjM7OTAyMzsKK0Y5OUI7OTM0QTs5MzRBOzkzNEE7OTM0QTsKK0Y5OUM7NTIxNzs1MjE3OzUyMTc7NTIxNzsKK0Y5OUQ7NTJBMzs1MkEzOzUyQTM7NTJBMzsKK0Y5OUU7NTRCRDs1NEJEOzU0QkQ7NTRCRDsKK0Y5OUY7NzBDODs3MEM4OzcwQzg7NzBDODsKK0Y5QTA7ODhDMjs4OEMyOzg4QzI7ODhDMjsKK0Y5QTE7OEFBQTs4QUFBOzhBQUE7OEFBQTsKK0Y5QTI7NUVDOTs1RUM5OzVFQzk7NUVDOTsKK0Y5QTM7NUZGNTs1RkY1OzVGRjU7NUZGNTsKK0Y5QTQ7NjM3Qjs2MzdCOzYzN0I7NjM3QjsKK0Y5QTU7NkJBRTs2QkFFOzZCQUU7NkJBRTsKK0Y5QTY7N0MzRTs3QzNFOzdDM0U7N0MzRTsKK0Y5QTc7NzM3NTs3Mzc1OzczNzU7NzM3NTsKK0Y5QTg7NEVFNDs0RUU0OzRFRTQ7NEVFNDsKK0Y5QTk7NTZGOTs1NkY5OzU2Rjk7NTZGOTsKK0Y5QUE7NUJFNzs1QkU3OzVCRTc7NUJFNzsKK0Y5QUI7NURCQTs1REJBOzVEQkE7NURCQTsKK0Y5QUM7NjAxQzs2MDFDOzYwMUM7NjAxQzsKK0Y5QUQ7NzNCMjs3M0IyOzczQjI7NzNCMjsKK0Y5QUU7NzQ2OTs3NDY5Ozc0Njk7NzQ2OTsKK0Y5QUY7N0Y5QTs3RjlBOzdGOUE7N0Y5QTsKK0Y5QjA7ODA0Njs4MDQ2OzgwNDY7ODA0NjsKK0Y5QjE7OTIzNDs5MjM0OzkyMzQ7OTIzNDsKK0Y5QjI7OTZGNjs5NkY2Ozk2RjY7OTZGNjsKK0Y5QjM7OTc0ODs5NzQ4Ozk3NDg7OTc0ODsKK0Y5QjQ7OTgxODs5ODE4Ozk4MTg7OTgxODsKK0Y5QjU7NEY4Qjs0RjhCOzRGOEI7NEY4QjsKK0Y5QjY7NzlBRTs3OUFFOzc5QUU7NzlBRTsKK0Y5Qjc7OTFCNDs5MUI0OzkxQjQ7OTFCNDsKK0Y5Qjg7OTZCODs5NkI4Ozk2Qjg7OTZCODsKK0Y5Qjk7NjBFMTs2MEUxOzYwRTE7NjBFMTsKK0Y5QkE7NEU4Njs0RTg2OzRFODY7NEU4NjsKK0Y5QkI7NTBEQTs1MERBOzUwREE7NTBEQTsKK0Y5QkM7NUJFRTs1QkVFOzVCRUU7NUJFRTsKK0Y5QkQ7NUMzRjs1QzNGOzVDM0Y7NUMzRjsKK0Y5QkU7NjU5OTs2NTk5OzY1OTk7NjU5OTsKK0Y5QkY7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5QzA7NzFDRTs3MUNFOzcxQ0U7NzFDRTsKK0Y5QzE7NzY0Mjs3NjQyOzc2NDI7NzY0MjsKK0Y5QzI7ODRGQzs4NEZDOzg0RkM7ODRGQzsKK0Y5QzM7OTA3Qzs5MDdDOzkwN0M7OTA3QzsKK0Y5QzQ7OUY4RDs5RjhEOzlGOEQ7OUY4RDsKK0Y5QzU7NjY4ODs2Njg4OzY2ODg7NjY4ODsKK0Y5QzY7OTYyRTs5NjJFOzk2MkU7OTYyRTsKK0Y5Qzc7NTI4OTs1Mjg5OzUyODk7NTI4OTsKK0Y5Qzg7Njc3Qjs2NzdCOzY3N0I7Njc3QjsKK0Y5Qzk7NjdGMzs2N0YzOzY3RjM7NjdGMzsKK0Y5Q0E7NkQ0MTs2RDQxOzZENDE7NkQ0MTsKK0Y5Q0I7NkU5Qzs2RTlDOzZFOUM7NkU5QzsKK0Y5Q0M7NzQwOTs3NDA5Ozc0MDk7NzQwOTsKK0Y5Q0Q7NzU1OTs3NTU5Ozc1NTk7NzU1OTsKK0Y5Q0U7Nzg2Qjs3ODZCOzc4NkI7Nzg2QjsKK0Y5Q0Y7N0QxMDs3RDEwOzdEMTA7N0QxMDsKK0Y5RDA7OTg1RTs5ODVFOzk4NUU7OTg1RTsKK0Y5RDE7NTE2RDs1MTZEOzUxNkQ7NTE2RDsKK0Y5RDI7NjIyRTs2MjJFOzYyMkU7NjIyRTsKK0Y5RDM7OTY3ODs5Njc4Ozk2Nzg7OTY3ODsKK0Y5RDQ7NTAyQjs1MDJCOzUwMkI7NTAyQjsKK0Y5RDU7NUQxOTs1RDE5OzVEMTk7NUQxOTsKK0Y5RDY7NkRFQTs2REVBOzZERUE7NkRFQTsKK0Y5RDc7OEYyQTs4RjJBOzhGMkE7OEYyQTsKK0Y5RDg7NUY4Qjs1RjhCOzVGOEI7NUY4QjsKK0Y5RDk7NjE0NDs2MTQ0OzYxNDQ7NjE0NDsKK0Y5REE7NjgxNzs2ODE3OzY4MTc7NjgxNzsKK0Y5REI7NzM4Nzs3Mzg3OzczODc7NzM4NzsKK0Y5REM7OTY4Njs5Njg2Ozk2ODY7OTY4NjsKK0Y5REQ7NTIyOTs1MjI5OzUyMjk7NTIyOTsKK0Y5REU7NTQwRjs1NDBGOzU0MEY7NTQwRjsKK0Y5REY7NUM2NTs1QzY1OzVDNjU7NUM2NTsKK0Y5RTA7NjYxMzs2NjEzOzY2MTM7NjYxMzsKK0Y5RTE7Njc0RTs2NzRFOzY3NEU7Njc0RTsKK0Y5RTI7NjhBODs2OEE4OzY4QTg7NjhBODsKK0Y5RTM7NkNFNTs2Q0U1OzZDRTU7NkNFNTsKK0Y5RTQ7NzQwNjs3NDA2Ozc0MDY7NzQwNjsKK0Y5RTU7NzVFMjs3NUUyOzc1RTI7NzVFMjsKK0Y5RTY7N0Y3OTs3Rjc5OzdGNzk7N0Y3OTsKK0Y5RTc7ODhDRjs4OENGOzg4Q0Y7ODhDRjsKK0Y5RTg7ODhFMTs4OEUxOzg4RTE7ODhFMTsKK0Y5RTk7OTFDQzs5MUNDOzkxQ0M7OTFDQzsKK0Y5RUE7OTZFMjs5NkUyOzk2RTI7OTZFMjsKK0Y5RUI7NTMzRjs1MzNGOzUzM0Y7NTMzRjsKK0Y5RUM7NkVCQTs2RUJBOzZFQkE7NkVCQTsKK0Y5RUQ7NTQxRDs1NDFEOzU0MUQ7NTQxRDsKK0Y5RUU7NzFEMDs3MUQwOzcxRDA7NzFEMDsKK0Y5RUY7NzQ5ODs3NDk4Ozc0OTg7NzQ5ODsKK0Y5RjA7ODVGQTs4NUZBOzg1RkE7ODVGQTsKK0Y5RjE7OTZBMzs5NkEzOzk2QTM7OTZBMzsKK0Y5RjI7OUM1Nzs5QzU3OzlDNTc7OUM1NzsKK0Y5RjM7OUU5Rjs5RTlGOzlFOUY7OUU5RjsKK0Y5RjQ7Njc5Nzs2Nzk3OzY3OTc7Njc5NzsKK0Y5RjU7NkRDQjs2RENCOzZEQ0I7NkRDQjsKK0Y5RjY7ODFFODs4MUU4OzgxRTg7ODFFODsKK0Y5Rjc7N0FDQjs3QUNCOzdBQ0I7N0FDQjsKK0Y5Rjg7N0IyMDs3QjIwOzdCMjA7N0IyMDsKK0Y5Rjk7N0M5Mjs3QzkyOzdDOTI7N0M5MjsKK0Y5RkE7NzJDMDs3MkMwOzcyQzA7NzJDMDsKK0Y5RkI7NzA5OTs3MDk5OzcwOTk7NzA5OTsKK0Y5RkM7OEI1ODs4QjU4OzhCNTg7OEI1ODsKK0Y5RkQ7NEVDMDs0RUMwOzRFQzA7NEVDMDsKK0Y5RkU7ODMzNjs4MzM2OzgzMzY7ODMzNjsKK0Y5RkY7NTIzQTs1MjNBOzUyM0E7NTIzQTsKK0ZBMDA7NTIwNzs1MjA3OzUyMDc7NTIwNzsKK0ZBMDE7NUVBNjs1RUE2OzVFQTY7NUVBNjsKK0ZBMDI7NjJEMzs2MkQzOzYyRDM7NjJEMzsKK0ZBMDM7N0NENjs3Q0Q2OzdDRDY7N0NENjsKK0ZBMDQ7NUI4NTs1Qjg1OzVCODU7NUI4NTsKK0ZBMDU7NkQxRTs2RDFFOzZEMUU7NkQxRTsKK0ZBMDY7NjZCNDs2NkI0OzY2QjQ7NjZCNDsKK0ZBMDc7OEYzQjs4RjNCOzhGM0I7OEYzQjsKK0ZBMDg7ODg0Qzs4ODRDOzg4NEM7ODg0QzsKK0ZBMDk7OTY0RDs5NjREOzk2NEQ7OTY0RDsKK0ZBMEE7ODk4Qjs4OThCOzg5OEI7ODk4QjsKK0ZBMEI7NUVEMzs1RUQzOzVFRDM7NUVEMzsKK0ZBMEM7NTE0MDs1MTQwOzUxNDA7NTE0MDsKK0ZBMEQ7NTVDMDs1NUMwOzU1QzA7NTVDMDsKK0ZBMTA7NTg1QTs1ODVBOzU4NUE7NTg1QTsKK0ZBMTI7NjY3NDs2Njc0OzY2NzQ7NjY3NDsKK0ZBMTU7NTFERTs1MURFOzUxREU7NTFERTsKK0ZBMTY7NzMyQTs3MzJBOzczMkE7NzMyQTsKK0ZBMTc7NzZDQTs3NkNBOzc2Q0E7NzZDQTsKK0ZBMTg7NzkzQzs3OTNDOzc5M0M7NzkzQzsKK0ZBMTk7Nzk1RTs3OTVFOzc5NUU7Nzk1RTsKK0ZBMUE7Nzk2NTs3OTY1Ozc5NjU7Nzk2NTsKK0ZBMUI7Nzk4Rjs3OThGOzc5OEY7Nzk4RjsKK0ZBMUM7OTc1Njs5NzU2Ozk3NTY7OTc1NjsKK0ZBMUQ7N0NCRTs3Q0JFOzdDQkU7N0NCRTsKK0ZBMUU7N0ZCRDs3RkJEOzdGQkQ7N0ZCRDsKK0ZBMjA7ODYxMjs4NjEyOzg2MTI7ODYxMjsKK0ZBMjI7OEFGODs4QUY4OzhBRjg7OEFGODsKK0ZBMjU7OTAzODs5MDM4OzkwMzg7OTAzODsKK0ZBMjY7OTBGRDs5MEZEOzkwRkQ7OTBGRDsKK0ZBMkE7OThFRjs5OEVGOzk4RUY7OThFRjsKK0ZBMkI7OThGQzs5OEZDOzk4RkM7OThGQzsKK0ZBMkM7OTkyODs5OTI4Ozk5Mjg7OTkyODsKK0ZBMkQ7OURCNDs5REI0OzlEQjQ7OURCNDsKK0ZBMzA7NEZBRTs0RkFFOzRGQUU7NEZBRTsKK0ZBMzE7NTBFNzs1MEU3OzUwRTc7NTBFNzsKK0ZBMzI7NTE0RDs1MTREOzUxNEQ7NTE0RDsKK0ZBMzM7NTJDOTs1MkM5OzUyQzk7NTJDOTsKK0ZBMzQ7NTJFNDs1MkU0OzUyRTQ7NTJFNDsKK0ZBMzU7NTM1MTs1MzUxOzUzNTE7NTM1MTsKK0ZBMzY7NTU5RDs1NTlEOzU1OUQ7NTU5RDsKK0ZBMzc7NTYwNjs1NjA2OzU2MDY7NTYwNjsKK0ZBMzg7NTY2ODs1NjY4OzU2Njg7NTY2ODsKK0ZBMzk7NTg0MDs1ODQwOzU4NDA7NTg0MDsKK0ZBM0E7NThBODs1OEE4OzU4QTg7NThBODsKK0ZBM0I7NUM2NDs1QzY0OzVDNjQ7NUM2NDsKK0ZBM0M7NUM2RTs1QzZFOzVDNkU7NUM2RTsKK0ZBM0Q7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKK0ZBM0U7NjE2ODs2MTY4OzYxNjg7NjE2ODsKK0ZBM0Y7NjE4RTs2MThFOzYxOEU7NjE4RTsKK0ZBNDA7NjFGMjs2MUYyOzYxRjI7NjFGMjsKK0ZBNDE7NjU0Rjs2NTRGOzY1NEY7NjU0RjsKK0ZBNDI7NjVFMjs2NUUyOzY1RTI7NjVFMjsKK0ZBNDM7NjY5MTs2NjkxOzY2OTE7NjY5MTsKK0ZBNDQ7Njg4NTs2ODg1OzY4ODU7Njg4NTsKK0ZBNDU7NkQ3Nzs2RDc3OzZENzc7NkQ3NzsKK0ZBNDY7NkUxQTs2RTFBOzZFMUE7NkUxQTsKK0ZBNDc7NkYyMjs2RjIyOzZGMjI7NkYyMjsKK0ZBNDg7NzE2RTs3MTZFOzcxNkU7NzE2RTsKK0ZBNDk7NzIyQjs3MjJCOzcyMkI7NzIyQjsKK0ZBNEE7NzQyMjs3NDIyOzc0MjI7NzQyMjsKK0ZBNEI7Nzg5MTs3ODkxOzc4OTE7Nzg5MTsKK0ZBNEM7NzkzRTs3OTNFOzc5M0U7NzkzRTsKK0ZBNEQ7Nzk0OTs3OTQ5Ozc5NDk7Nzk0OTsKK0ZBNEU7Nzk0ODs3OTQ4Ozc5NDg7Nzk0ODsKK0ZBNEY7Nzk1MDs3OTUwOzc5NTA7Nzk1MDsKK0ZBNTA7Nzk1Njs3OTU2Ozc5NTY7Nzk1NjsKK0ZBNTE7Nzk1RDs3OTVEOzc5NUQ7Nzk1RDsKK0ZBNTI7Nzk4RDs3OThEOzc5OEQ7Nzk4RDsKK0ZBNTM7Nzk4RTs3OThFOzc5OEU7Nzk4RTsKK0ZBNTQ7N0E0MDs3QTQwOzdBNDA7N0E0MDsKK0ZBNTU7N0E4MTs3QTgxOzdBODE7N0E4MTsKK0ZBNTY7N0JDMDs3QkMwOzdCQzA7N0JDMDsKK0ZBNTc7N0RGNDs3REY0OzdERjQ7N0RGNDsKK0ZBNTg7N0UwOTs3RTA5OzdFMDk7N0UwOTsKK0ZBNTk7N0U0MTs3RTQxOzdFNDE7N0U0MTsKK0ZBNUE7N0Y3Mjs3RjcyOzdGNzI7N0Y3MjsKK0ZBNUI7ODAwNTs4MDA1OzgwMDU7ODAwNTsKK0ZBNUM7ODFFRDs4MUVEOzgxRUQ7ODFFRDsKK0ZBNUQ7ODI3OTs4Mjc5OzgyNzk7ODI3OTsKK0ZBNUU7ODI3OTs4Mjc5OzgyNzk7ODI3OTsKK0ZBNUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKK0ZBNjA7ODkxMDs4OTEwOzg5MTA7ODkxMDsKK0ZBNjE7ODk5Njs4OTk2Ozg5OTY7ODk5NjsKK0ZBNjI7OEIwMTs4QjAxOzhCMDE7OEIwMTsKK0ZBNjM7OEIzOTs4QjM5OzhCMzk7OEIzOTsKK0ZBNjQ7OENEMzs4Q0QzOzhDRDM7OENEMzsKK0ZBNjU7OEQwODs4RDA4OzhEMDg7OEQwODsKK0ZBNjY7OEZCNjs4RkI2OzhGQjY7OEZCNjsKK0ZBNjc7OTAzODs5MDM4OzkwMzg7OTAzODsKK0ZBNjg7OTZFMzs5NkUzOzk2RTM7OTZFMzsKK0ZBNjk7OTdGRjs5N0ZGOzk3RkY7OTdGRjsKK0ZBNkE7OTgzQjs5ODNCOzk4M0I7OTgzQjsKK0ZCMDA7RkIwMDtGQjAwOzAwNjYgMDA2NjswMDY2IDAwNjY7CitGQjAxO0ZCMDE7RkIwMTswMDY2IDAwNjk7MDA2NiAwMDY5OworRkIwMjtGQjAyO0ZCMDI7MDA2NiAwMDZDOzAwNjYgMDA2QzsKK0ZCMDM7RkIwMztGQjAzOzAwNjYgMDA2NiAwMDY5OzAwNjYgMDA2NiAwMDY5OworRkIwNDtGQjA0O0ZCMDQ7MDA2NiAwMDY2IDAwNkM7MDA2NiAwMDY2IDAwNkM7CitGQjA1O0ZCMDU7RkIwNTswMDczIDAwNzQ7MDA3MyAwMDc0OworRkIwNjtGQjA2O0ZCMDY7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMTM7RkIxMztGQjEzOzA1NzQgMDU3NjswNTc0IDA1NzY7CitGQjE0O0ZCMTQ7RkIxNDswNTc0IDA1NjU7MDU3NCAwNTY1OworRkIxNTtGQjE1O0ZCMTU7MDU3NCAwNTZCOzA1NzQgMDU2QjsKK0ZCMTY7RkIxNjtGQjE2OzA1N0UgMDU3NjswNTdFIDA1NzY7CitGQjE3O0ZCMTc7RkIxNzswNTc0IDA1NkQ7MDU3NCAwNTZEOworRkIxRDswNUQ5IDA1QjQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7CitGQjFGOzA1RjIgMDVCNzswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzsKK0ZCMjA7RkIyMDtGQjIwOzA1RTI7MDVFMjsKK0ZCMjE7RkIyMTtGQjIxOzA1RDA7MDVEMDsKK0ZCMjI7RkIyMjtGQjIyOzA1RDM7MDVEMzsKK0ZCMjM7RkIyMztGQjIzOzA1RDQ7MDVENDsKK0ZCMjQ7RkIyNDtGQjI0OzA1REI7MDVEQjsKK0ZCMjU7RkIyNTtGQjI1OzA1REM7MDVEQzsKK0ZCMjY7RkIyNjtGQjI2OzA1REQ7MDVERDsKK0ZCMjc7RkIyNztGQjI3OzA1RTg7MDVFODsKK0ZCMjg7RkIyODtGQjI4OzA1RUE7MDVFQTsKK0ZCMjk7RkIyOTtGQjI5OzAwMkI7MDAyQjsKK0ZCMkE7MDVFOSAwNUMxOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOworRkIyQjswNUU5IDA1QzI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7CitGQjJDOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOworRkIyRDswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjsKK0ZCMkU7MDVEMCAwNUI3OzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OworRkIyRjswNUQwIDA1Qjg7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7CitGQjMwOzA1RDAgMDVCQzswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzsKK0ZCMzE7MDVEMSAwNUJDOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOworRkIzMjswNUQyIDA1QkM7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7CitGQjMzOzA1RDMgMDVCQzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzsKK0ZCMzQ7MDVENCAwNUJDOzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOworRkIzNTswNUQ1IDA1QkM7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7CitGQjM2OzA1RDYgMDVCQzswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzsKK0ZCMzg7MDVEOCAwNUJDOzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOworRkIzOTswNUQ5IDA1QkM7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7CitGQjNBOzA1REEgMDVCQzswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzsKK0ZCM0I7MDVEQiAwNUJDOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOworRkIzQzswNURDIDA1QkM7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7CitGQjNFOzA1REUgMDVCQzswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzsKK0ZCNDA7MDVFMCAwNUJDOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOworRkI0MTswNUUxIDA1QkM7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7CitGQjQzOzA1RTMgMDVCQzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzsKK0ZCNDQ7MDVFNCAwNUJDOzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOworRkI0NjswNUU2IDA1QkM7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7CitGQjQ3OzA1RTcgMDVCQzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzsKK0ZCNDg7MDVFOCAwNUJDOzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOworRkI0OTswNUU5IDA1QkM7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7CitGQjRBOzA1RUEgMDVCQzswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzsKK0ZCNEI7MDVENSAwNUI5OzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OworRkI0QzswNUQxIDA1QkY7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7CitGQjREOzA1REIgMDVCRjswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjsKK0ZCNEU7MDVFNCAwNUJGOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOworRkI0RjtGQjRGO0ZCNEY7MDVEMCAwNURDOzA1RDAgMDVEQzsKK0ZCNTA7RkI1MDtGQjUwOzA2NzE7MDY3MTsKK0ZCNTE7RkI1MTtGQjUxOzA2NzE7MDY3MTsKK0ZCNTI7RkI1MjtGQjUyOzA2N0I7MDY3QjsKK0ZCNTM7RkI1MztGQjUzOzA2N0I7MDY3QjsKK0ZCNTQ7RkI1NDtGQjU0OzA2N0I7MDY3QjsKK0ZCNTU7RkI1NTtGQjU1OzA2N0I7MDY3QjsKK0ZCNTY7RkI1NjtGQjU2OzA2N0U7MDY3RTsKK0ZCNTc7RkI1NztGQjU3OzA2N0U7MDY3RTsKK0ZCNTg7RkI1ODtGQjU4OzA2N0U7MDY3RTsKK0ZCNTk7RkI1OTtGQjU5OzA2N0U7MDY3RTsKK0ZCNUE7RkI1QTtGQjVBOzA2ODA7MDY4MDsKK0ZCNUI7RkI1QjtGQjVCOzA2ODA7MDY4MDsKK0ZCNUM7RkI1QztGQjVDOzA2ODA7MDY4MDsKK0ZCNUQ7RkI1RDtGQjVEOzA2ODA7MDY4MDsKK0ZCNUU7RkI1RTtGQjVFOzA2N0E7MDY3QTsKK0ZCNUY7RkI1RjtGQjVGOzA2N0E7MDY3QTsKK0ZCNjA7RkI2MDtGQjYwOzA2N0E7MDY3QTsKK0ZCNjE7RkI2MTtGQjYxOzA2N0E7MDY3QTsKK0ZCNjI7RkI2MjtGQjYyOzA2N0Y7MDY3RjsKK0ZCNjM7RkI2MztGQjYzOzA2N0Y7MDY3RjsKK0ZCNjQ7RkI2NDtGQjY0OzA2N0Y7MDY3RjsKK0ZCNjU7RkI2NTtGQjY1OzA2N0Y7MDY3RjsKK0ZCNjY7RkI2NjtGQjY2OzA2Nzk7MDY3OTsKK0ZCNjc7RkI2NztGQjY3OzA2Nzk7MDY3OTsKK0ZCNjg7RkI2ODtGQjY4OzA2Nzk7MDY3OTsKK0ZCNjk7RkI2OTtGQjY5OzA2Nzk7MDY3OTsKK0ZCNkE7RkI2QTtGQjZBOzA2QTQ7MDZBNDsKK0ZCNkI7RkI2QjtGQjZCOzA2QTQ7MDZBNDsKK0ZCNkM7RkI2QztGQjZDOzA2QTQ7MDZBNDsKK0ZCNkQ7RkI2RDtGQjZEOzA2QTQ7MDZBNDsKK0ZCNkU7RkI2RTtGQjZFOzA2QTY7MDZBNjsKK0ZCNkY7RkI2RjtGQjZGOzA2QTY7MDZBNjsKK0ZCNzA7RkI3MDtGQjcwOzA2QTY7MDZBNjsKK0ZCNzE7RkI3MTtGQjcxOzA2QTY7MDZBNjsKK0ZCNzI7RkI3MjtGQjcyOzA2ODQ7MDY4NDsKK0ZCNzM7RkI3MztGQjczOzA2ODQ7MDY4NDsKK0ZCNzQ7RkI3NDtGQjc0OzA2ODQ7MDY4NDsKK0ZCNzU7RkI3NTtGQjc1OzA2ODQ7MDY4NDsKK0ZCNzY7RkI3NjtGQjc2OzA2ODM7MDY4MzsKK0ZCNzc7RkI3NztGQjc3OzA2ODM7MDY4MzsKK0ZCNzg7RkI3ODtGQjc4OzA2ODM7MDY4MzsKK0ZCNzk7RkI3OTtGQjc5OzA2ODM7MDY4MzsKK0ZCN0E7RkI3QTtGQjdBOzA2ODY7MDY4NjsKK0ZCN0I7RkI3QjtGQjdCOzA2ODY7MDY4NjsKK0ZCN0M7RkI3QztGQjdDOzA2ODY7MDY4NjsKK0ZCN0Q7RkI3RDtGQjdEOzA2ODY7MDY4NjsKK0ZCN0U7RkI3RTtGQjdFOzA2ODc7MDY4NzsKK0ZCN0Y7RkI3RjtGQjdGOzA2ODc7MDY4NzsKK0ZCODA7RkI4MDtGQjgwOzA2ODc7MDY4NzsKK0ZCODE7RkI4MTtGQjgxOzA2ODc7MDY4NzsKK0ZCODI7RkI4MjtGQjgyOzA2OEQ7MDY4RDsKK0ZCODM7RkI4MztGQjgzOzA2OEQ7MDY4RDsKK0ZCODQ7RkI4NDtGQjg0OzA2OEM7MDY4QzsKK0ZCODU7RkI4NTtGQjg1OzA2OEM7MDY4QzsKK0ZCODY7RkI4NjtGQjg2OzA2OEU7MDY4RTsKK0ZCODc7RkI4NztGQjg3OzA2OEU7MDY4RTsKK0ZCODg7RkI4ODtGQjg4OzA2ODg7MDY4ODsKK0ZCODk7RkI4OTtGQjg5OzA2ODg7MDY4ODsKK0ZCOEE7RkI4QTtGQjhBOzA2OTg7MDY5ODsKK0ZCOEI7RkI4QjtGQjhCOzA2OTg7MDY5ODsKK0ZCOEM7RkI4QztGQjhDOzA2OTE7MDY5MTsKK0ZCOEQ7RkI4RDtGQjhEOzA2OTE7MDY5MTsKK0ZCOEU7RkI4RTtGQjhFOzA2QTk7MDZBOTsKK0ZCOEY7RkI4RjtGQjhGOzA2QTk7MDZBOTsKK0ZCOTA7RkI5MDtGQjkwOzA2QTk7MDZBOTsKK0ZCOTE7RkI5MTtGQjkxOzA2QTk7MDZBOTsKK0ZCOTI7RkI5MjtGQjkyOzA2QUY7MDZBRjsKK0ZCOTM7RkI5MztGQjkzOzA2QUY7MDZBRjsKK0ZCOTQ7RkI5NDtGQjk0OzA2QUY7MDZBRjsKK0ZCOTU7RkI5NTtGQjk1OzA2QUY7MDZBRjsKK0ZCOTY7RkI5NjtGQjk2OzA2QjM7MDZCMzsKK0ZCOTc7RkI5NztGQjk3OzA2QjM7MDZCMzsKK0ZCOTg7RkI5ODtGQjk4OzA2QjM7MDZCMzsKK0ZCOTk7RkI5OTtGQjk5OzA2QjM7MDZCMzsKK0ZCOUE7RkI5QTtGQjlBOzA2QjE7MDZCMTsKK0ZCOUI7RkI5QjtGQjlCOzA2QjE7MDZCMTsKK0ZCOUM7RkI5QztGQjlDOzA2QjE7MDZCMTsKK0ZCOUQ7RkI5RDtGQjlEOzA2QjE7MDZCMTsKK0ZCOUU7RkI5RTtGQjlFOzA2QkE7MDZCQTsKK0ZCOUY7RkI5RjtGQjlGOzA2QkE7MDZCQTsKK0ZCQTA7RkJBMDtGQkEwOzA2QkI7MDZCQjsKK0ZCQTE7RkJBMTtGQkExOzA2QkI7MDZCQjsKK0ZCQTI7RkJBMjtGQkEyOzA2QkI7MDZCQjsKK0ZCQTM7RkJBMztGQkEzOzA2QkI7MDZCQjsKK0ZCQTQ7RkJBNDtGQkE0OzA2QzA7MDZENSAwNjU0OworRkJBNTtGQkE1O0ZCQTU7MDZDMDswNkQ1IDA2NTQ7CitGQkE2O0ZCQTY7RkJBNjswNkMxOzA2QzE7CitGQkE3O0ZCQTc7RkJBNzswNkMxOzA2QzE7CitGQkE4O0ZCQTg7RkJBODswNkMxOzA2QzE7CitGQkE5O0ZCQTk7RkJBOTswNkMxOzA2QzE7CitGQkFBO0ZCQUE7RkJBQTswNkJFOzA2QkU7CitGQkFCO0ZCQUI7RkJBQjswNkJFOzA2QkU7CitGQkFDO0ZCQUM7RkJBQzswNkJFOzA2QkU7CitGQkFEO0ZCQUQ7RkJBRDswNkJFOzA2QkU7CitGQkFFO0ZCQUU7RkJBRTswNkQyOzA2RDI7CitGQkFGO0ZCQUY7RkJBRjswNkQyOzA2RDI7CitGQkIwO0ZCQjA7RkJCMDswNkQzOzA2RDIgMDY1NDsKK0ZCQjE7RkJCMTtGQkIxOzA2RDM7MDZEMiAwNjU0OworRkJEMztGQkQzO0ZCRDM7MDZBRDswNkFEOworRkJENDtGQkQ0O0ZCRDQ7MDZBRDswNkFEOworRkJENTtGQkQ1O0ZCRDU7MDZBRDswNkFEOworRkJENjtGQkQ2O0ZCRDY7MDZBRDswNkFEOworRkJENztGQkQ3O0ZCRDc7MDZDNzswNkM3OworRkJEODtGQkQ4O0ZCRDg7MDZDNzswNkM3OworRkJEOTtGQkQ5O0ZCRDk7MDZDNjswNkM2OworRkJEQTtGQkRBO0ZCREE7MDZDNjswNkM2OworRkJEQjtGQkRCO0ZCREI7MDZDODswNkM4OworRkJEQztGQkRDO0ZCREM7MDZDODswNkM4OworRkJERDtGQkREO0ZCREQ7MDZDNyAwNjc0OzA2QzcgMDY3NDsKK0ZCREU7RkJERTtGQkRFOzA2Q0I7MDZDQjsKK0ZCREY7RkJERjtGQkRGOzA2Q0I7MDZDQjsKK0ZCRTA7RkJFMDtGQkUwOzA2QzU7MDZDNTsKK0ZCRTE7RkJFMTtGQkUxOzA2QzU7MDZDNTsKK0ZCRTI7RkJFMjtGQkUyOzA2Qzk7MDZDOTsKK0ZCRTM7RkJFMztGQkUzOzA2Qzk7MDZDOTsKK0ZCRTQ7RkJFNDtGQkU0OzA2RDA7MDZEMDsKK0ZCRTU7RkJFNTtGQkU1OzA2RDA7MDZEMDsKK0ZCRTY7RkJFNjtGQkU2OzA2RDA7MDZEMDsKK0ZCRTc7RkJFNztGQkU3OzA2RDA7MDZEMDsKK0ZCRTg7RkJFODtGQkU4OzA2NDk7MDY0OTsKK0ZCRTk7RkJFOTtGQkU5OzA2NDk7MDY0OTsKK0ZCRUE7RkJFQTtGQkVBOzA2MjYgMDYyNzswNjRBIDA2NTQgMDYyNzsKK0ZCRUI7RkJFQjtGQkVCOzA2MjYgMDYyNzswNjRBIDA2NTQgMDYyNzsKK0ZCRUM7RkJFQztGQkVDOzA2MjYgMDZENTswNjRBIDA2NTQgMDZENTsKK0ZCRUQ7RkJFRDtGQkVEOzA2MjYgMDZENTswNjRBIDA2NTQgMDZENTsKK0ZCRUU7RkJFRTtGQkVFOzA2MjYgMDY0ODswNjRBIDA2NTQgMDY0ODsKK0ZCRUY7RkJFRjtGQkVGOzA2MjYgMDY0ODswNjRBIDA2NTQgMDY0ODsKK0ZCRjA7RkJGMDtGQkYwOzA2MjYgMDZDNzswNjRBIDA2NTQgMDZDNzsKK0ZCRjE7RkJGMTtGQkYxOzA2MjYgMDZDNzswNjRBIDA2NTQgMDZDNzsKK0ZCRjI7RkJGMjtGQkYyOzA2MjYgMDZDNjswNjRBIDA2NTQgMDZDNjsKK0ZCRjM7RkJGMztGQkYzOzA2MjYgMDZDNjswNjRBIDA2NTQgMDZDNjsKK0ZCRjQ7RkJGNDtGQkY0OzA2MjYgMDZDODswNjRBIDA2NTQgMDZDODsKK0ZCRjU7RkJGNTtGQkY1OzA2MjYgMDZDODswNjRBIDA2NTQgMDZDODsKK0ZCRjY7RkJGNjtGQkY2OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjc7RkJGNztGQkY3OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjg7RkJGODtGQkY4OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjk7RkJGOTtGQkY5OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkE7RkJGQTtGQkZBOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkI7RkJGQjtGQkZCOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkM7RkJGQztGQkZDOzA2Q0M7MDZDQzsKK0ZCRkQ7RkJGRDtGQkZEOzA2Q0M7MDZDQzsKK0ZCRkU7RkJGRTtGQkZFOzA2Q0M7MDZDQzsKK0ZCRkY7RkJGRjtGQkZGOzA2Q0M7MDZDQzsKK0ZDMDA7RkMwMDtGQzAwOzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDMDE7RkMwMTtGQzAxOzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDMDI7RkMwMjtGQzAyOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDMDM7RkMwMztGQzAzOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDMDQ7RkMwNDtGQzA0OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDMDU7RkMwNTtGQzA1OzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzA2O0ZDMDY7RkMwNjswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkMwNztGQzA3O0ZDMDc7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDMDg7RkMwODtGQzA4OzA2MjggMDY0NTswNjI4IDA2NDU7CitGQzA5O0ZDMDk7RkMwOTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkMwQTtGQzBBO0ZDMEE7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDMEI7RkMwQjtGQzBCOzA2MkEgMDYyQzswNjJBIDA2MkM7CitGQzBDO0ZDMEM7RkMwQzswNjJBIDA2MkQ7MDYyQSAwNjJEOworRkMwRDtGQzBEO0ZDMEQ7MDYyQSAwNjJFOzA2MkEgMDYyRTsKK0ZDMEU7RkMwRTtGQzBFOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQzBGO0ZDMEY7RkMwRjswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkMxMDtGQzEwO0ZDMTA7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDMTE7RkMxMTtGQzExOzA2MkIgMDYyQzswNjJCIDA2MkM7CitGQzEyO0ZDMTI7RkMxMjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkMxMztGQzEzO0ZDMTM7MDYyQiAwNjQ5OzA2MkIgMDY0OTsKK0ZDMTQ7RkMxNDtGQzE0OzA2MkIgMDY0QTswNjJCIDA2NEE7CitGQzE1O0ZDMTU7RkMxNTswNjJDIDA2MkQ7MDYyQyAwNjJEOworRkMxNjtGQzE2O0ZDMTY7MDYyQyAwNjQ1OzA2MkMgMDY0NTsKK0ZDMTc7RkMxNztGQzE3OzA2MkQgMDYyQzswNjJEIDA2MkM7CitGQzE4O0ZDMTg7RkMxODswNjJEIDA2NDU7MDYyRCAwNjQ1OworRkMxOTtGQzE5O0ZDMTk7MDYyRSAwNjJDOzA2MkUgMDYyQzsKK0ZDMUE7RkMxQTtGQzFBOzA2MkUgMDYyRDswNjJFIDA2MkQ7CitGQzFCO0ZDMUI7RkMxQjswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkMxQztGQzFDO0ZDMUM7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDMUQ7RkMxRDtGQzFEOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQzFFO0ZDMUU7RkMxRTswNjMzIDA2MkU7MDYzMyAwNjJFOworRkMxRjtGQzFGO0ZDMUY7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDMjA7RkMyMDtGQzIwOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQzIxO0ZDMjE7RkMyMTswNjM1IDA2NDU7MDYzNSAwNjQ1OworRkMyMjtGQzIyO0ZDMjI7MDYzNiAwNjJDOzA2MzYgMDYyQzsKK0ZDMjM7RkMyMztGQzIzOzA2MzYgMDYyRDswNjM2IDA2MkQ7CitGQzI0O0ZDMjQ7RkMyNDswNjM2IDA2MkU7MDYzNiAwNjJFOworRkMyNTtGQzI1O0ZDMjU7MDYzNiAwNjQ1OzA2MzYgMDY0NTsKK0ZDMjY7RkMyNjtGQzI2OzA2MzcgMDYyRDswNjM3IDA2MkQ7CitGQzI3O0ZDMjc7RkMyNzswNjM3IDA2NDU7MDYzNyAwNjQ1OworRkMyODtGQzI4O0ZDMjg7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDMjk7RkMyOTtGQzI5OzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQzJBO0ZDMkE7RkMyQTswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkMyQjtGQzJCO0ZDMkI7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDMkM7RkMyQztGQzJDOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQzJEO0ZDMkQ7RkMyRDswNjQxIDA2MkM7MDY0MSAwNjJDOworRkMyRTtGQzJFO0ZDMkU7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDMkY7RkMyRjtGQzJGOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQzMwO0ZDMzA7RkMzMDswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkMzMTtGQzMxO0ZDMzE7MDY0MSAwNjQ5OzA2NDEgMDY0OTsKK0ZDMzI7RkMzMjtGQzMyOzA2NDEgMDY0QTswNjQxIDA2NEE7CitGQzMzO0ZDMzM7RkMzMzswNjQyIDA2MkQ7MDY0MiAwNjJEOworRkMzNDtGQzM0O0ZDMzQ7MDY0MiAwNjQ1OzA2NDIgMDY0NTsKK0ZDMzU7RkMzNTtGQzM1OzA2NDIgMDY0OTswNjQyIDA2NDk7CitGQzM2O0ZDMzY7RkMzNjswNjQyIDA2NEE7MDY0MiAwNjRBOworRkMzNztGQzM3O0ZDMzc7MDY0MyAwNjI3OzA2NDMgMDYyNzsKK0ZDMzg7RkMzODtGQzM4OzA2NDMgMDYyQzswNjQzIDA2MkM7CitGQzM5O0ZDMzk7RkMzOTswNjQzIDA2MkQ7MDY0MyAwNjJEOworRkMzQTtGQzNBO0ZDM0E7MDY0MyAwNjJFOzA2NDMgMDYyRTsKK0ZDM0I7RkMzQjtGQzNCOzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQzNDO0ZDM0M7RkMzQzswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkMzRDtGQzNEO0ZDM0Q7MDY0MyAwNjQ5OzA2NDMgMDY0OTsKK0ZDM0U7RkMzRTtGQzNFOzA2NDMgMDY0QTswNjQzIDA2NEE7CitGQzNGO0ZDM0Y7RkMzRjswNjQ0IDA2MkM7MDY0NCAwNjJDOworRkM0MDtGQzQwO0ZDNDA7MDY0NCAwNjJEOzA2NDQgMDYyRDsKK0ZDNDE7RkM0MTtGQzQxOzA2NDQgMDYyRTswNjQ0IDA2MkU7CitGQzQyO0ZDNDI7RkM0MjswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkM0MztGQzQzO0ZDNDM7MDY0NCAwNjQ5OzA2NDQgMDY0OTsKK0ZDNDQ7RkM0NDtGQzQ0OzA2NDQgMDY0QTswNjQ0IDA2NEE7CitGQzQ1O0ZDNDU7RkM0NTswNjQ1IDA2MkM7MDY0NSAwNjJDOworRkM0NjtGQzQ2O0ZDNDY7MDY0NSAwNjJEOzA2NDUgMDYyRDsKK0ZDNDc7RkM0NztGQzQ3OzA2NDUgMDYyRTswNjQ1IDA2MkU7CitGQzQ4O0ZDNDg7RkM0ODswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM0OTtGQzQ5O0ZDNDk7MDY0NSAwNjQ5OzA2NDUgMDY0OTsKK0ZDNEE7RkM0QTtGQzRBOzA2NDUgMDY0QTswNjQ1IDA2NEE7CitGQzRCO0ZDNEI7RkM0QjswNjQ2IDA2MkM7MDY0NiAwNjJDOworRkM0QztGQzRDO0ZDNEM7MDY0NiAwNjJEOzA2NDYgMDYyRDsKK0ZDNEQ7RkM0RDtGQzREOzA2NDYgMDYyRTswNjQ2IDA2MkU7CitGQzRFO0ZDNEU7RkM0RTswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM0RjtGQzRGO0ZDNEY7MDY0NiAwNjQ5OzA2NDYgMDY0OTsKK0ZDNTA7RkM1MDtGQzUwOzA2NDYgMDY0QTswNjQ2IDA2NEE7CitGQzUxO0ZDNTE7RkM1MTswNjQ3IDA2MkM7MDY0NyAwNjJDOworRkM1MjtGQzUyO0ZDNTI7MDY0NyAwNjQ1OzA2NDcgMDY0NTsKK0ZDNTM7RkM1MztGQzUzOzA2NDcgMDY0OTswNjQ3IDA2NDk7CitGQzU0O0ZDNTQ7RkM1NDswNjQ3IDA2NEE7MDY0NyAwNjRBOworRkM1NTtGQzU1O0ZDNTU7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDNTY7RkM1NjtGQzU2OzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQzU3O0ZDNTc7RkM1NzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkM1ODtGQzU4O0ZDNTg7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDNTk7RkM1OTtGQzU5OzA2NEEgMDY0OTswNjRBIDA2NDk7CitGQzVBO0ZDNUE7RkM1QTswNjRBIDA2NEE7MDY0QSAwNjRBOworRkM1QjtGQzVCO0ZDNUI7MDYzMCAwNjcwOzA2MzAgMDY3MDsKK0ZDNUM7RkM1QztGQzVDOzA2MzEgMDY3MDswNjMxIDA2NzA7CitGQzVEO0ZDNUQ7RkM1RDswNjQ5IDA2NzA7MDY0OSAwNjcwOworRkM1RTtGQzVFO0ZDNUU7MDAyMCAwNjRDIDA2NTE7MDAyMCAwNjRDIDA2NTE7CitGQzVGO0ZDNUY7RkM1RjswMDIwIDA2NEQgMDY1MTswMDIwIDA2NEQgMDY1MTsKK0ZDNjA7RkM2MDtGQzYwOzAwMjAgMDY0RSAwNjUxOzAwMjAgMDY0RSAwNjUxOworRkM2MTtGQzYxO0ZDNjE7MDAyMCAwNjRGIDA2NTE7MDAyMCAwNjRGIDA2NTE7CitGQzYyO0ZDNjI7RkM2MjswMDIwIDA2NTAgMDY1MTswMDIwIDA2NTAgMDY1MTsKK0ZDNjM7RkM2MztGQzYzOzAwMjAgMDY1MSAwNjcwOzAwMjAgMDY1MSAwNjcwOworRkM2NDtGQzY0O0ZDNjQ7MDYyNiAwNjMxOzA2NEEgMDY1NCAwNjMxOworRkM2NTtGQzY1O0ZDNjU7MDYyNiAwNjMyOzA2NEEgMDY1NCAwNjMyOworRkM2NjtGQzY2O0ZDNjY7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkM2NztGQzY3O0ZDNjc7MDYyNiAwNjQ2OzA2NEEgMDY1NCAwNjQ2OworRkM2ODtGQzY4O0ZDNjg7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkM2OTtGQzY5O0ZDNjk7MDYyNiAwNjRBOzA2NEEgMDY1NCAwNjRBOworRkM2QTtGQzZBO0ZDNkE7MDYyOCAwNjMxOzA2MjggMDYzMTsKK0ZDNkI7RkM2QjtGQzZCOzA2MjggMDYzMjswNjI4IDA2MzI7CitGQzZDO0ZDNkM7RkM2QzswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkM2RDtGQzZEO0ZDNkQ7MDYyOCAwNjQ2OzA2MjggMDY0NjsKK0ZDNkU7RkM2RTtGQzZFOzA2MjggMDY0OTswNjI4IDA2NDk7CitGQzZGO0ZDNkY7RkM2RjswNjI4IDA2NEE7MDYyOCAwNjRBOworRkM3MDtGQzcwO0ZDNzA7MDYyQSAwNjMxOzA2MkEgMDYzMTsKK0ZDNzE7RkM3MTtGQzcxOzA2MkEgMDYzMjswNjJBIDA2MzI7CitGQzcyO0ZDNzI7RkM3MjswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkM3MztGQzczO0ZDNzM7MDYyQSAwNjQ2OzA2MkEgMDY0NjsKK0ZDNzQ7RkM3NDtGQzc0OzA2MkEgMDY0OTswNjJBIDA2NDk7CitGQzc1O0ZDNzU7RkM3NTswNjJBIDA2NEE7MDYyQSAwNjRBOworRkM3NjtGQzc2O0ZDNzY7MDYyQiAwNjMxOzA2MkIgMDYzMTsKK0ZDNzc7RkM3NztGQzc3OzA2MkIgMDYzMjswNjJCIDA2MzI7CitGQzc4O0ZDNzg7RkM3ODswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkM3OTtGQzc5O0ZDNzk7MDYyQiAwNjQ2OzA2MkIgMDY0NjsKK0ZDN0E7RkM3QTtGQzdBOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzdCO0ZDN0I7RkM3QjswNjJCIDA2NEE7MDYyQiAwNjRBOworRkM3QztGQzdDO0ZDN0M7MDY0MSAwNjQ5OzA2NDEgMDY0OTsKK0ZDN0Q7RkM3RDtGQzdEOzA2NDEgMDY0QTswNjQxIDA2NEE7CitGQzdFO0ZDN0U7RkM3RTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkM3RjtGQzdGO0ZDN0Y7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDODA7RkM4MDtGQzgwOzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzgxO0ZDODE7RkM4MTswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkM4MjtGQzgyO0ZDODI7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDODM7RkM4MztGQzgzOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzg0O0ZDODQ7RkM4NDswNjQzIDA2NEE7MDY0MyAwNjRBOworRkM4NTtGQzg1O0ZDODU7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDODY7RkM4NjtGQzg2OzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzg3O0ZDODc7RkM4NzswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM4ODtGQzg4O0ZDODg7MDY0NSAwNjI3OzA2NDUgMDYyNzsKK0ZDODk7RkM4OTtGQzg5OzA2NDUgMDY0NTswNjQ1IDA2NDU7CitGQzhBO0ZDOEE7RkM4QTswNjQ2IDA2MzE7MDY0NiAwNjMxOworRkM4QjtGQzhCO0ZDOEI7MDY0NiAwNjMyOzA2NDYgMDYzMjsKK0ZDOEM7RkM4QztGQzhDOzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQzhEO0ZDOEQ7RkM4RDswNjQ2IDA2NDY7MDY0NiAwNjQ2OworRkM4RTtGQzhFO0ZDOEU7MDY0NiAwNjQ5OzA2NDYgMDY0OTsKK0ZDOEY7RkM4RjtGQzhGOzA2NDYgMDY0QTswNjQ2IDA2NEE7CitGQzkwO0ZDOTA7RkM5MDswNjQ5IDA2NzA7MDY0OSAwNjcwOworRkM5MTtGQzkxO0ZDOTE7MDY0QSAwNjMxOzA2NEEgMDYzMTsKK0ZDOTI7RkM5MjtGQzkyOzA2NEEgMDYzMjswNjRBIDA2MzI7CitGQzkzO0ZDOTM7RkM5MzswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkM5NDtGQzk0O0ZDOTQ7MDY0QSAwNjQ2OzA2NEEgMDY0NjsKK0ZDOTU7RkM5NTtGQzk1OzA2NEEgMDY0OTswNjRBIDA2NDk7CitGQzk2O0ZDOTY7RkM5NjswNjRBIDA2NEE7MDY0QSAwNjRBOworRkM5NztGQzk3O0ZDOTc7MDYyNiAwNjJDOzA2NEEgMDY1NCAwNjJDOworRkM5ODtGQzk4O0ZDOTg7MDYyNiAwNjJEOzA2NEEgMDY1NCAwNjJEOworRkM5OTtGQzk5O0ZDOTk7MDYyNiAwNjJFOzA2NEEgMDY1NCAwNjJFOworRkM5QTtGQzlBO0ZDOUE7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkM5QjtGQzlCO0ZDOUI7MDYyNiAwNjQ3OzA2NEEgMDY1NCAwNjQ3OworRkM5QztGQzlDO0ZDOUM7MDYyOCAwNjJDOzA2MjggMDYyQzsKK0ZDOUQ7RkM5RDtGQzlEOzA2MjggMDYyRDswNjI4IDA2MkQ7CitGQzlFO0ZDOUU7RkM5RTswNjI4IDA2MkU7MDYyOCAwNjJFOworRkM5RjtGQzlGO0ZDOUY7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDQTA7RkNBMDtGQ0EwOzA2MjggMDY0NzswNjI4IDA2NDc7CitGQ0ExO0ZDQTE7RkNBMTswNjJBIDA2MkM7MDYyQSAwNjJDOworRkNBMjtGQ0EyO0ZDQTI7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDQTM7RkNBMztGQ0EzOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQ0E0O0ZDQTQ7RkNBNDswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkNBNTtGQ0E1O0ZDQTU7MDYyQSAwNjQ3OzA2MkEgMDY0NzsKK0ZDQTY7RkNBNjtGQ0E2OzA2MkIgMDY0NTswNjJCIDA2NDU7CitGQ0E3O0ZDQTc7RkNBNzswNjJDIDA2MkQ7MDYyQyAwNjJEOworRkNBODtGQ0E4O0ZDQTg7MDYyQyAwNjQ1OzA2MkMgMDY0NTsKK0ZDQTk7RkNBOTtGQ0E5OzA2MkQgMDYyQzswNjJEIDA2MkM7CitGQ0FBO0ZDQUE7RkNBQTswNjJEIDA2NDU7MDYyRCAwNjQ1OworRkNBQjtGQ0FCO0ZDQUI7MDYyRSAwNjJDOzA2MkUgMDYyQzsKK0ZDQUM7RkNBQztGQ0FDOzA2MkUgMDY0NTswNjJFIDA2NDU7CitGQ0FEO0ZDQUQ7RkNBRDswNjMzIDA2MkM7MDYzMyAwNjJDOworRkNBRTtGQ0FFO0ZDQUU7MDYzMyAwNjJEOzA2MzMgMDYyRDsKK0ZDQUY7RkNBRjtGQ0FGOzA2MzMgMDYyRTswNjMzIDA2MkU7CitGQ0IwO0ZDQjA7RkNCMDswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNCMTtGQ0IxO0ZDQjE7MDYzNSAwNjJEOzA2MzUgMDYyRDsKK0ZDQjI7RkNCMjtGQ0IyOzA2MzUgMDYyRTswNjM1IDA2MkU7CitGQ0IzO0ZDQjM7RkNCMzswNjM1IDA2NDU7MDYzNSAwNjQ1OworRkNCNDtGQ0I0O0ZDQjQ7MDYzNiAwNjJDOzA2MzYgMDYyQzsKK0ZDQjU7RkNCNTtGQ0I1OzA2MzYgMDYyRDswNjM2IDA2MkQ7CitGQ0I2O0ZDQjY7RkNCNjswNjM2IDA2MkU7MDYzNiAwNjJFOworRkNCNztGQ0I3O0ZDQjc7MDYzNiAwNjQ1OzA2MzYgMDY0NTsKK0ZDQjg7RkNCODtGQ0I4OzA2MzcgMDYyRDswNjM3IDA2MkQ7CitGQ0I5O0ZDQjk7RkNCOTswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkNCQTtGQ0JBO0ZDQkE7MDYzOSAwNjJDOzA2MzkgMDYyQzsKK0ZDQkI7RkNCQjtGQ0JCOzA2MzkgMDY0NTswNjM5IDA2NDU7CitGQ0JDO0ZDQkM7RkNCQzswNjNBIDA2MkM7MDYzQSAwNjJDOworRkNCRDtGQ0JEO0ZDQkQ7MDYzQSAwNjQ1OzA2M0EgMDY0NTsKK0ZDQkU7RkNCRTtGQ0JFOzA2NDEgMDYyQzswNjQxIDA2MkM7CitGQ0JGO0ZDQkY7RkNCRjswNjQxIDA2MkQ7MDY0MSAwNjJEOworRkNDMDtGQ0MwO0ZDQzA7MDY0MSAwNjJFOzA2NDEgMDYyRTsKK0ZDQzE7RkNDMTtGQ0MxOzA2NDEgMDY0NTswNjQxIDA2NDU7CitGQ0MyO0ZDQzI7RkNDMjswNjQyIDA2MkQ7MDY0MiAwNjJEOworRkNDMztGQ0MzO0ZDQzM7MDY0MiAwNjQ1OzA2NDIgMDY0NTsKK0ZDQzQ7RkNDNDtGQ0M0OzA2NDMgMDYyQzswNjQzIDA2MkM7CitGQ0M1O0ZDQzU7RkNDNTswNjQzIDA2MkQ7MDY0MyAwNjJEOworRkNDNjtGQ0M2O0ZDQzY7MDY0MyAwNjJFOzA2NDMgMDYyRTsKK0ZDQzc7RkNDNztGQ0M3OzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQ0M4O0ZDQzg7RkNDODswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkNDOTtGQ0M5O0ZDQzk7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDQ0E7RkNDQTtGQ0NBOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQ0NCO0ZDQ0I7RkNDQjswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkNDQztGQ0NDO0ZDQ0M7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDQ0Q7RkNDRDtGQ0NEOzA2NDQgMDY0NzswNjQ0IDA2NDc7CitGQ0NFO0ZDQ0U7RkNDRTswNjQ1IDA2MkM7MDY0NSAwNjJDOworRkNDRjtGQ0NGO0ZDQ0Y7MDY0NSAwNjJEOzA2NDUgMDYyRDsKK0ZDRDA7RkNEMDtGQ0QwOzA2NDUgMDYyRTswNjQ1IDA2MkU7CitGQ0QxO0ZDRDE7RkNEMTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkNEMjtGQ0QyO0ZDRDI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDRDM7RkNEMztGQ0QzOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQ0Q0O0ZDRDQ7RkNENDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkNENTtGQ0Q1O0ZDRDU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRDY7RkNENjtGQ0Q2OzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0Q3O0ZDRDc7RkNENzswNjQ3IDA2MkM7MDY0NyAwNjJDOworRkNEODtGQ0Q4O0ZDRDg7MDY0NyAwNjQ1OzA2NDcgMDY0NTsKK0ZDRDk7RkNEOTtGQ0Q5OzA2NDcgMDY3MDswNjQ3IDA2NzA7CitGQ0RBO0ZDREE7RkNEQTswNjRBIDA2MkM7MDY0QSAwNjJDOworRkNEQjtGQ0RCO0ZDREI7MDY0QSAwNjJEOzA2NEEgMDYyRDsKK0ZDREM7RkNEQztGQ0RDOzA2NEEgMDYyRTswNjRBIDA2MkU7CitGQ0REO0ZDREQ7RkNERDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNERTtGQ0RFO0ZDREU7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDREY7RkNERjtGQ0RGOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDRTA7RkNFMDtGQ0UwOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDRTE7RkNFMTtGQ0UxOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0UyO0ZDRTI7RkNFMjswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNFMztGQ0UzO0ZDRTM7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDRTQ7RkNFNDtGQ0U0OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0U1O0ZDRTU7RkNFNTswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNFNjtGQ0U2O0ZDRTY7MDYyQiAwNjQ3OzA2MkIgMDY0NzsKK0ZDRTc7RkNFNztGQ0U3OzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQ0U4O0ZDRTg7RkNFODswNjMzIDA2NDc7MDYzMyAwNjQ3OworRkNFOTtGQ0U5O0ZDRTk7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZDRUE7RkNFQTtGQ0VBOzA2MzQgMDY0NzswNjM0IDA2NDc7CitGQ0VCO0ZDRUI7RkNFQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNFQztGQ0VDO0ZDRUM7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDRUQ7RkNFRDtGQ0VEOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0VFO0ZDRUU7RkNFRTswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkNFRjtGQ0VGO0ZDRUY7MDY0NiAwNjQ3OzA2NDYgMDY0NzsKK0ZDRjA7RkNGMDtGQ0YwOzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQ0YxO0ZDRjE7RkNGMTswNjRBIDA2NDc7MDY0QSAwNjQ3OworRkNGMjtGQ0YyO0ZDRjI7MDY0MCAwNjRFIDA2NTE7MDY0MCAwNjRFIDA2NTE7CitGQ0YzO0ZDRjM7RkNGMzswNjQwIDA2NEYgMDY1MTswNjQwIDA2NEYgMDY1MTsKK0ZDRjQ7RkNGNDtGQ0Y0OzA2NDAgMDY1MCAwNjUxOzA2NDAgMDY1MCAwNjUxOworRkNGNTtGQ0Y1O0ZDRjU7MDYzNyAwNjQ5OzA2MzcgMDY0OTsKK0ZDRjY7RkNGNjtGQ0Y2OzA2MzcgMDY0QTswNjM3IDA2NEE7CitGQ0Y3O0ZDRjc7RkNGNzswNjM5IDA2NDk7MDYzOSAwNjQ5OworRkNGODtGQ0Y4O0ZDRjg7MDYzOSAwNjRBOzA2MzkgMDY0QTsKK0ZDRjk7RkNGOTtGQ0Y5OzA2M0EgMDY0OTswNjNBIDA2NDk7CitGQ0ZBO0ZDRkE7RkNGQTswNjNBIDA2NEE7MDYzQSAwNjRBOworRkNGQjtGQ0ZCO0ZDRkI7MDYzMyAwNjQ5OzA2MzMgMDY0OTsKK0ZDRkM7RkNGQztGQ0ZDOzA2MzMgMDY0QTswNjMzIDA2NEE7CitGQ0ZEO0ZDRkQ7RkNGRDswNjM0IDA2NDk7MDYzNCAwNjQ5OworRkNGRTtGQ0ZFO0ZDRkU7MDYzNCAwNjRBOzA2MzQgMDY0QTsKK0ZDRkY7RkNGRjtGQ0ZGOzA2MkQgMDY0OTswNjJEIDA2NDk7CitGRDAwO0ZEMDA7RkQwMDswNjJEIDA2NEE7MDYyRCAwNjRBOworRkQwMTtGRDAxO0ZEMDE7MDYyQyAwNjQ5OzA2MkMgMDY0OTsKK0ZEMDI7RkQwMjtGRDAyOzA2MkMgMDY0QTswNjJDIDA2NEE7CitGRDAzO0ZEMDM7RkQwMzswNjJFIDA2NDk7MDYyRSAwNjQ5OworRkQwNDtGRDA0O0ZEMDQ7MDYyRSAwNjRBOzA2MkUgMDY0QTsKK0ZEMDU7RkQwNTtGRDA1OzA2MzUgMDY0OTswNjM1IDA2NDk7CitGRDA2O0ZEMDY7RkQwNjswNjM1IDA2NEE7MDYzNSAwNjRBOworRkQwNztGRDA3O0ZEMDc7MDYzNiAwNjQ5OzA2MzYgMDY0OTsKK0ZEMDg7RkQwODtGRDA4OzA2MzYgMDY0QTswNjM2IDA2NEE7CitGRDA5O0ZEMDk7RkQwOTswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQwQTtGRDBBO0ZEMEE7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMEI7RkQwQjtGRDBCOzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDBDO0ZEMEM7RkQwQzswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkQwRDtGRDBEO0ZEMEQ7MDYzNCAwNjMxOzA2MzQgMDYzMTsKK0ZEMEU7RkQwRTtGRDBFOzA2MzMgMDYzMTswNjMzIDA2MzE7CitGRDBGO0ZEMEY7RkQwRjswNjM1IDA2MzE7MDYzNSAwNjMxOworRkQxMDtGRDEwO0ZEMTA7MDYzNiAwNjMxOzA2MzYgMDYzMTsKK0ZEMTE7RkQxMTtGRDExOzA2MzcgMDY0OTswNjM3IDA2NDk7CitGRDEyO0ZEMTI7RkQxMjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkQxMztGRDEzO0ZEMTM7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZEMTQ7RkQxNDtGRDE0OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGRDE1O0ZEMTU7RkQxNTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkQxNjtGRDE2O0ZEMTY7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZEMTc7RkQxNztGRDE3OzA2MzMgMDY0OTswNjMzIDA2NDk7CitGRDE4O0ZEMTg7RkQxODswNjMzIDA2NEE7MDYzMyAwNjRBOworRkQxOTtGRDE5O0ZEMTk7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZEMUE7RkQxQTtGRDFBOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGRDFCO0ZEMUI7RkQxQjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQxQztGRDFDO0ZEMUM7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMUQ7RkQxRDtGRDFEOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDFFO0ZEMUU7RkQxRTswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQxRjtGRDFGO0ZEMUY7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMjA7RkQyMDtGRDIwOzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDIxO0ZEMjE7RkQyMTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQyMjtGRDIyO0ZEMjI7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMjM7RkQyMztGRDIzOzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDI0O0ZEMjQ7RkQyNDswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQyNTtGRDI1O0ZEMjU7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMjY7RkQyNjtGRDI2OzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDI3O0ZEMjc7RkQyNzswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQyODtGRDI4O0ZEMjg7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMjk7RkQyOTtGRDI5OzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDJBO0ZEMkE7RkQyQTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQyQjtGRDJCO0ZEMkI7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMkM7RkQyQztGRDJDOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDJEO0ZEMkQ7RkQyRDswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQyRTtGRDJFO0ZEMkU7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMkY7RkQyRjtGRDJGOzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDMwO0ZEMzA7RkQzMDswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkQzMTtGRDMxO0ZEMzE7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZEMzI7RkQzMjtGRDMyOzA2MzQgMDY0NzswNjM0IDA2NDc7CitGRDMzO0ZEMzM7RkQzMzswNjM3IDA2NDU7MDYzNyAwNjQ1OworRkQzNDtGRDM0O0ZEMzQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZEMzU7RkQzNTtGRDM1OzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGRDM2O0ZEMzY7RkQzNjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkQzNztGRDM3O0ZEMzc7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMzg7RkQzODtGRDM4OzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDM5O0ZEMzk7RkQzOTswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzQTtGRDNBO0ZEM0E7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEM0I7RkQzQjtGRDNCOzA2MzggMDY0NTswNjM4IDA2NDU7CitGRDNDO0ZEM0M7RkQzQzswNjI3IDA2NEI7MDYyNyAwNjRCOworRkQzRDtGRDNEO0ZEM0Q7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZENTA7RkQ1MDtGRDUwOzA2MkEgMDYyQyAwNjQ1OzA2MkEgMDYyQyAwNjQ1OworRkQ1MTtGRDUxO0ZENTE7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUyO0ZENTI7RkQ1MjswNjJBIDA2MkQgMDYyQzswNjJBIDA2MkQgMDYyQzsKK0ZENTM7RkQ1MztGRDUzOzA2MkEgMDYyRCAwNjQ1OzA2MkEgMDYyRCAwNjQ1OworRkQ1NDtGRDU0O0ZENTQ7MDYyQSAwNjJFIDA2NDU7MDYyQSAwNjJFIDA2NDU7CitGRDU1O0ZENTU7RkQ1NTswNjJBIDA2NDUgMDYyQzswNjJBIDA2NDUgMDYyQzsKK0ZENTY7RkQ1NjtGRDU2OzA2MkEgMDY0NSAwNjJEOzA2MkEgMDY0NSAwNjJEOworRkQ1NztGRDU3O0ZENTc7MDYyQSAwNjQ1IDA2MkU7MDYyQSAwNjQ1IDA2MkU7CitGRDU4O0ZENTg7RkQ1ODswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENTk7RkQ1OTtGRDU5OzA2MkMgMDY0NSAwNjJEOzA2MkMgMDY0NSAwNjJEOworRkQ1QTtGRDVBO0ZENUE7MDYyRCAwNjQ1IDA2NEE7MDYyRCAwNjQ1IDA2NEE7CitGRDVCO0ZENUI7RkQ1QjswNjJEIDA2NDUgMDY0OTswNjJEIDA2NDUgMDY0OTsKK0ZENUM7RkQ1QztGRDVDOzA2MzMgMDYyRCAwNjJDOzA2MzMgMDYyRCAwNjJDOworRkQ1RDtGRDVEO0ZENUQ7MDYzMyAwNjJDIDA2MkQ7MDYzMyAwNjJDIDA2MkQ7CitGRDVFO0ZENUU7RkQ1RTswNjMzIDA2MkMgMDY0OTswNjMzIDA2MkMgMDY0OTsKK0ZENUY7RkQ1RjtGRDVGOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MDtGRDYwO0ZENjA7MDYzMyAwNjQ1IDA2MkQ7MDYzMyAwNjQ1IDA2MkQ7CitGRDYxO0ZENjE7RkQ2MTswNjMzIDA2NDUgMDYyQzswNjMzIDA2NDUgMDYyQzsKK0ZENjI7RkQ2MjtGRDYyOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2MztGRDYzO0ZENjM7MDYzMyAwNjQ1IDA2NDU7MDYzMyAwNjQ1IDA2NDU7CitGRDY0O0ZENjQ7RkQ2NDswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjU7RkQ2NTtGRDY1OzA2MzUgMDYyRCAwNjJEOzA2MzUgMDYyRCAwNjJEOworRkQ2NjtGRDY2O0ZENjY7MDYzNSAwNjQ1IDA2NDU7MDYzNSAwNjQ1IDA2NDU7CitGRDY3O0ZENjc7RkQ2NzswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjg7RkQ2ODtGRDY4OzA2MzQgMDYyRCAwNjQ1OzA2MzQgMDYyRCAwNjQ1OworRkQ2OTtGRDY5O0ZENjk7MDYzNCAwNjJDIDA2NEE7MDYzNCAwNjJDIDA2NEE7CitGRDZBO0ZENkE7RkQ2QTswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkI7RkQ2QjtGRDZCOzA2MzQgMDY0NSAwNjJFOzA2MzQgMDY0NSAwNjJFOworRkQ2QztGRDZDO0ZENkM7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZEO0ZENkQ7RkQ2RDswNjM0IDA2NDUgMDY0NTswNjM0IDA2NDUgMDY0NTsKK0ZENkU7RkQ2RTtGRDZFOzA2MzYgMDYyRCAwNjQ5OzA2MzYgMDYyRCAwNjQ5OworRkQ2RjtGRDZGO0ZENkY7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcwO0ZENzA7RkQ3MDswNjM2IDA2MkUgMDY0NTswNjM2IDA2MkUgMDY0NTsKK0ZENzE7RkQ3MTtGRDcxOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MjtGRDcyO0ZENzI7MDYzNyAwNjQ1IDA2MkQ7MDYzNyAwNjQ1IDA2MkQ7CitGRDczO0ZENzM7RkQ3MzswNjM3IDA2NDUgMDY0NTswNjM3IDA2NDUgMDY0NTsKK0ZENzQ7RkQ3NDtGRDc0OzA2MzcgMDY0NSAwNjRBOzA2MzcgMDY0NSAwNjRBOworRkQ3NTtGRDc1O0ZENzU7MDYzOSAwNjJDIDA2NDU7MDYzOSAwNjJDIDA2NDU7CitGRDc2O0ZENzY7RkQ3NjswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzc7RkQ3NztGRDc3OzA2MzkgMDY0NSAwNjQ1OzA2MzkgMDY0NSAwNjQ1OworRkQ3ODtGRDc4O0ZENzg7MDYzOSAwNjQ1IDA2NDk7MDYzOSAwNjQ1IDA2NDk7CitGRDc5O0ZENzk7RkQ3OTswNjNBIDA2NDUgMDY0NTswNjNBIDA2NDUgMDY0NTsKK0ZEN0E7RkQ3QTtGRDdBOzA2M0EgMDY0NSAwNjRBOzA2M0EgMDY0NSAwNjRBOworRkQ3QjtGRDdCO0ZEN0I7MDYzQSAwNjQ1IDA2NDk7MDYzQSAwNjQ1IDA2NDk7CitGRDdDO0ZEN0M7RkQ3QzswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0Q7RkQ3RDtGRDdEOzA2NDEgMDYyRSAwNjQ1OzA2NDEgMDYyRSAwNjQ1OworRkQ3RTtGRDdFO0ZEN0U7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGRDdGO0ZEN0Y7RkQ3RjswNjQyIDA2NDUgMDY0NTswNjQyIDA2NDUgMDY0NTsKK0ZEODA7RkQ4MDtGRDgwOzA2NDQgMDYyRCAwNjQ1OzA2NDQgMDYyRCAwNjQ1OworRkQ4MTtGRDgxO0ZEODE7MDY0NCAwNjJEIDA2NEE7MDY0NCAwNjJEIDA2NEE7CitGRDgyO0ZEODI7RkQ4MjswNjQ0IDA2MkQgMDY0OTswNjQ0IDA2MkQgMDY0OTsKK0ZEODM7RkQ4MztGRDgzOzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NDtGRDg0O0ZEODQ7MDY0NCAwNjJDIDA2MkM7MDY0NCAwNjJDIDA2MkM7CitGRDg1O0ZEODU7RkQ4NTswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODY7RkQ4NjtGRDg2OzA2NDQgMDYyRSAwNjQ1OzA2NDQgMDYyRSAwNjQ1OworRkQ4NztGRDg3O0ZEODc7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg4O0ZEODg7RkQ4ODswNjQ0IDA2NDUgMDYyRDswNjQ0IDA2NDUgMDYyRDsKK0ZEODk7RkQ4OTtGRDg5OzA2NDUgMDYyRCAwNjJDOzA2NDUgMDYyRCAwNjJDOworRkQ4QTtGRDhBO0ZEOEE7MDY0NSAwNjJEIDA2NDU7MDY0NSAwNjJEIDA2NDU7CitGRDhCO0ZEOEI7RkQ4QjswNjQ1IDA2MkQgMDY0QTswNjQ1IDA2MkQgMDY0QTsKK0ZEOEM7RkQ4QztGRDhDOzA2NDUgMDYyQyAwNjJEOzA2NDUgMDYyQyAwNjJEOworRkQ4RDtGRDhEO0ZEOEQ7MDY0NSAwNjJDIDA2NDU7MDY0NSAwNjJDIDA2NDU7CitGRDhFO0ZEOEU7RkQ4RTswNjQ1IDA2MkUgMDYyQzswNjQ1IDA2MkUgMDYyQzsKK0ZEOEY7RkQ4RjtGRDhGOzA2NDUgMDYyRSAwNjQ1OzA2NDUgMDYyRSAwNjQ1OworRkQ5MjtGRDkyO0ZEOTI7MDY0NSAwNjJDIDA2MkU7MDY0NSAwNjJDIDA2MkU7CitGRDkzO0ZEOTM7RkQ5MzswNjQ3IDA2NDUgMDYyQzswNjQ3IDA2NDUgMDYyQzsKK0ZEOTQ7RkQ5NDtGRDk0OzA2NDcgMDY0NSAwNjQ1OzA2NDcgMDY0NSAwNjQ1OworRkQ5NTtGRDk1O0ZEOTU7MDY0NiAwNjJEIDA2NDU7MDY0NiAwNjJEIDA2NDU7CitGRDk2O0ZEOTY7RkQ5NjswNjQ2IDA2MkQgMDY0OTswNjQ2IDA2MkQgMDY0OTsKK0ZEOTc7RkQ5NztGRDk3OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5ODtGRDk4O0ZEOTg7MDY0NiAwNjJDIDA2NDU7MDY0NiAwNjJDIDA2NDU7CitGRDk5O0ZEOTk7RkQ5OTswNjQ2IDA2MkMgMDY0OTswNjQ2IDA2MkMgMDY0OTsKK0ZEOUE7RkQ5QTtGRDlBOzA2NDYgMDY0NSAwNjRBOzA2NDYgMDY0NSAwNjRBOworRkQ5QjtGRDlCO0ZEOUI7MDY0NiAwNjQ1IDA2NDk7MDY0NiAwNjQ1IDA2NDk7CitGRDlDO0ZEOUM7RkQ5QzswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUQ7RkQ5RDtGRDlEOzA2NEEgMDY0NSAwNjQ1OzA2NEEgMDY0NSAwNjQ1OworRkQ5RTtGRDlFO0ZEOUU7MDYyOCAwNjJFIDA2NEE7MDYyOCAwNjJFIDA2NEE7CitGRDlGO0ZEOUY7RkQ5RjswNjJBIDA2MkMgMDY0QTswNjJBIDA2MkMgMDY0QTsKK0ZEQTA7RkRBMDtGREEwOzA2MkEgMDYyQyAwNjQ5OzA2MkEgMDYyQyAwNjQ5OworRkRBMTtGREExO0ZEQTE7MDYyQSAwNjJFIDA2NEE7MDYyQSAwNjJFIDA2NEE7CitGREEyO0ZEQTI7RkRBMjswNjJBIDA2MkUgMDY0OTswNjJBIDA2MkUgMDY0OTsKK0ZEQTM7RkRBMztGREEzOzA2MkEgMDY0NSAwNjRBOzA2MkEgMDY0NSAwNjRBOworRkRBNDtGREE0O0ZEQTQ7MDYyQSAwNjQ1IDA2NDk7MDYyQSAwNjQ1IDA2NDk7CitGREE1O0ZEQTU7RkRBNTswNjJDIDA2NDUgMDY0QTswNjJDIDA2NDUgMDY0QTsKK0ZEQTY7RkRBNjtGREE2OzA2MkMgMDYyRCAwNjQ5OzA2MkMgMDYyRCAwNjQ5OworRkRBNztGREE3O0ZEQTc7MDYyQyAwNjQ1IDA2NDk7MDYyQyAwNjQ1IDA2NDk7CitGREE4O0ZEQTg7RkRBODswNjMzIDA2MkUgMDY0OTswNjMzIDA2MkUgMDY0OTsKK0ZEQTk7RkRBOTtGREE5OzA2MzUgMDYyRCAwNjRBOzA2MzUgMDYyRCAwNjRBOworRkRBQTtGREFBO0ZEQUE7MDYzNCAwNjJEIDA2NEE7MDYzNCAwNjJEIDA2NEE7CitGREFCO0ZEQUI7RkRBQjswNjM2IDA2MkQgMDY0QTswNjM2IDA2MkQgMDY0QTsKK0ZEQUM7RkRBQztGREFDOzA2NDQgMDYyQyAwNjRBOzA2NDQgMDYyQyAwNjRBOworRkRBRDtGREFEO0ZEQUQ7MDY0NCAwNjQ1IDA2NEE7MDY0NCAwNjQ1IDA2NEE7CitGREFFO0ZEQUU7RkRBRTswNjRBIDA2MkQgMDY0QTswNjRBIDA2MkQgMDY0QTsKK0ZEQUY7RkRBRjtGREFGOzA2NEEgMDYyQyAwNjRBOzA2NEEgMDYyQyAwNjRBOworRkRCMDtGREIwO0ZEQjA7MDY0QSAwNjQ1IDA2NEE7MDY0QSAwNjQ1IDA2NEE7CitGREIxO0ZEQjE7RkRCMTswNjQ1IDA2NDUgMDY0QTswNjQ1IDA2NDUgMDY0QTsKK0ZEQjI7RkRCMjtGREIyOzA2NDIgMDY0NSAwNjRBOzA2NDIgMDY0NSAwNjRBOworRkRCMztGREIzO0ZEQjM7MDY0NiAwNjJEIDA2NEE7MDY0NiAwNjJEIDA2NEE7CitGREI0O0ZEQjQ7RkRCNDswNjQyIDA2NDUgMDYyRDswNjQyIDA2NDUgMDYyRDsKK0ZEQjU7RkRCNTtGREI1OzA2NDQgMDYyRCAwNjQ1OzA2NDQgMDYyRCAwNjQ1OworRkRCNjtGREI2O0ZEQjY7MDYzOSAwNjQ1IDA2NEE7MDYzOSAwNjQ1IDA2NEE7CitGREI3O0ZEQjc7RkRCNzswNjQzIDA2NDUgMDY0QTswNjQzIDA2NDUgMDY0QTsKK0ZEQjg7RkRCODtGREI4OzA2NDYgMDYyQyAwNjJEOzA2NDYgMDYyQyAwNjJEOworRkRCOTtGREI5O0ZEQjk7MDY0NSAwNjJFIDA2NEE7MDY0NSAwNjJFIDA2NEE7CitGREJBO0ZEQkE7RkRCQTswNjQ0IDA2MkMgMDY0NTswNjQ0IDA2MkMgMDY0NTsKK0ZEQkI7RkRCQjtGREJCOzA2NDMgMDY0NSAwNjQ1OzA2NDMgMDY0NSAwNjQ1OworRkRCQztGREJDO0ZEQkM7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJEO0ZEQkQ7RkRCRDswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQkU7RkRCRTtGREJFOzA2MkMgMDYyRCAwNjRBOzA2MkMgMDYyRCAwNjRBOworRkRCRjtGREJGO0ZEQkY7MDYyRCAwNjJDIDA2NEE7MDYyRCAwNjJDIDA2NEE7CitGREMwO0ZEQzA7RkRDMDswNjQ1IDA2MkMgMDY0QTswNjQ1IDA2MkMgMDY0QTsKK0ZEQzE7RkRDMTtGREMxOzA2NDEgMDY0NSAwNjRBOzA2NDEgMDY0NSAwNjRBOworRkRDMjtGREMyO0ZEQzI7MDYyOCAwNjJEIDA2NEE7MDYyOCAwNjJEIDA2NEE7CitGREMzO0ZEQzM7RkRDMzswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQzQ7RkRDNDtGREM0OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkRDNTtGREM1O0ZEQzU7MDYzNSAwNjQ1IDA2NDU7MDYzNSAwNjQ1IDA2NDU7CitGREM2O0ZEQzY7RkRDNjswNjMzIDA2MkUgMDY0QTswNjMzIDA2MkUgMDY0QTsKK0ZEQzc7RkRDNztGREM3OzA2NDYgMDYyQyAwNjRBOzA2NDYgMDYyQyAwNjRBOworRkRGMDtGREYwO0ZERjA7MDYzNSAwNjQ0IDA2RDI7MDYzNSAwNjQ0IDA2RDI7CitGREYxO0ZERjE7RkRGMTswNjQyIDA2NDQgMDZEMjswNjQyIDA2NDQgMDZEMjsKK0ZERjI7RkRGMjtGREYyOzA2MjcgMDY0NCAwNjQ0IDA2NDc7MDYyNyAwNjQ0IDA2NDQgMDY0NzsKK0ZERjM7RkRGMztGREYzOzA2MjcgMDY0MyAwNjI4IDA2MzE7MDYyNyAwNjQzIDA2MjggMDYzMTsKK0ZERjQ7RkRGNDtGREY0OzA2NDUgMDYyRCAwNjQ1IDA2MkY7MDY0NSAwNjJEIDA2NDUgMDYyRjsKK0ZERjU7RkRGNTtGREY1OzA2MzUgMDY0NCAwNjM5IDA2NDU7MDYzNSAwNjQ0IDA2MzkgMDY0NTsKK0ZERjY7RkRGNjtGREY2OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7MDYzMSAwNjMzIDA2NDggMDY0NDsKK0ZERjc7RkRGNztGREY3OzA2MzkgMDY0NCAwNjRBIDA2NDc7MDYzOSAwNjQ0IDA2NEEgMDY0NzsKK0ZERjg7RkRGODtGREY4OzA2NDggMDYzMyAwNjQ0IDA2NDU7MDY0OCAwNjMzIDA2NDQgMDY0NTsKK0ZERjk7RkRGOTtGREY5OzA2MzUgMDY0NCAwNjQ5OzA2MzUgMDY0NCAwNjQ5OworRkRGQTtGREZBO0ZERkE7MDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7MDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREZCO0ZERkI7RkRGQjswNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OworRkRGQztGREZDO0ZERkM7MDYzMSAwNkNDIDA2MjcgMDY0NDswNjMxIDA2Q0MgMDYyNyAwNjQ0OworRkUzMDtGRTMwO0ZFMzA7MDAyRSAwMDJFOzAwMkUgMDAyRTsKK0ZFMzE7RkUzMTtGRTMxOzIwMTQ7MjAxNDsKK0ZFMzI7RkUzMjtGRTMyOzIwMTM7MjAxMzsKK0ZFMzM7RkUzMztGRTMzOzAwNUY7MDA1RjsKK0ZFMzQ7RkUzNDtGRTM0OzAwNUY7MDA1RjsKK0ZFMzU7RkUzNTtGRTM1OzAwMjg7MDAyODsKK0ZFMzY7RkUzNjtGRTM2OzAwMjk7MDAyOTsKK0ZFMzc7RkUzNztGRTM3OzAwN0I7MDA3QjsKK0ZFMzg7RkUzODtGRTM4OzAwN0Q7MDA3RDsKK0ZFMzk7RkUzOTtGRTM5OzMwMTQ7MzAxNDsKK0ZFM0E7RkUzQTtGRTNBOzMwMTU7MzAxNTsKK0ZFM0I7RkUzQjtGRTNCOzMwMTA7MzAxMDsKK0ZFM0M7RkUzQztGRTNDOzMwMTE7MzAxMTsKK0ZFM0Q7RkUzRDtGRTNEOzMwMEE7MzAwQTsKK0ZFM0U7RkUzRTtGRTNFOzMwMEI7MzAwQjsKK0ZFM0Y7RkUzRjtGRTNGOzMwMDg7MzAwODsKK0ZFNDA7RkU0MDtGRTQwOzMwMDk7MzAwOTsKK0ZFNDE7RkU0MTtGRTQxOzMwMEM7MzAwQzsKK0ZFNDI7RkU0MjtGRTQyOzMwMEQ7MzAwRDsKK0ZFNDM7RkU0MztGRTQzOzMwMEU7MzAwRTsKK0ZFNDQ7RkU0NDtGRTQ0OzMwMEY7MzAwRjsKK0ZFNDk7RkU0OTtGRTQ5OzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRBO0ZFNEE7RkU0QTswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QjtGRTRCO0ZFNEI7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEM7RkU0QztGRTRDOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTREO0ZFNEQ7RkU0RDswMDVGOzAwNUY7CitGRTRFO0ZFNEU7RkU0RTswMDVGOzAwNUY7CitGRTRGO0ZFNEY7RkU0RjswMDVGOzAwNUY7CitGRTUwO0ZFNTA7RkU1MDswMDJDOzAwMkM7CitGRTUxO0ZFNTE7RkU1MTszMDAxOzMwMDE7CitGRTUyO0ZFNTI7RkU1MjswMDJFOzAwMkU7CitGRTU0O0ZFNTQ7RkU1NDswMDNCOzAwM0I7CitGRTU1O0ZFNTU7RkU1NTswMDNBOzAwM0E7CitGRTU2O0ZFNTY7RkU1NjswMDNGOzAwM0Y7CitGRTU3O0ZFNTc7RkU1NzswMDIxOzAwMjE7CitGRTU4O0ZFNTg7RkU1ODsyMDE0OzIwMTQ7CitGRTU5O0ZFNTk7RkU1OTswMDI4OzAwMjg7CitGRTVBO0ZFNUE7RkU1QTswMDI5OzAwMjk7CitGRTVCO0ZFNUI7RkU1QjswMDdCOzAwN0I7CitGRTVDO0ZFNUM7RkU1QzswMDdEOzAwN0Q7CitGRTVEO0ZFNUQ7RkU1RDszMDE0OzMwMTQ7CitGRTVFO0ZFNUU7RkU1RTszMDE1OzMwMTU7CitGRTVGO0ZFNUY7RkU1RjswMDIzOzAwMjM7CitGRTYwO0ZFNjA7RkU2MDswMDI2OzAwMjY7CitGRTYxO0ZFNjE7RkU2MTswMDJBOzAwMkE7CitGRTYyO0ZFNjI7RkU2MjswMDJCOzAwMkI7CitGRTYzO0ZFNjM7RkU2MzswMDJEOzAwMkQ7CitGRTY0O0ZFNjQ7RkU2NDswMDNDOzAwM0M7CitGRTY1O0ZFNjU7RkU2NTswMDNFOzAwM0U7CitGRTY2O0ZFNjY7RkU2NjswMDNEOzAwM0Q7CitGRTY4O0ZFNjg7RkU2ODswMDVDOzAwNUM7CitGRTY5O0ZFNjk7RkU2OTswMDI0OzAwMjQ7CitGRTZBO0ZFNkE7RkU2QTswMDI1OzAwMjU7CitGRTZCO0ZFNkI7RkU2QjswMDQwOzAwNDA7CitGRTcwO0ZFNzA7RkU3MDswMDIwIDA2NEI7MDAyMCAwNjRCOworRkU3MTtGRTcxO0ZFNzE7MDY0MCAwNjRCOzA2NDAgMDY0QjsKK0ZFNzI7RkU3MjtGRTcyOzAwMjAgMDY0QzswMDIwIDA2NEM7CitGRTc0O0ZFNzQ7RkU3NDswMDIwIDA2NEQ7MDAyMCAwNjREOworRkU3NjtGRTc2O0ZFNzY7MDAyMCAwNjRFOzAwMjAgMDY0RTsKK0ZFNzc7RkU3NztGRTc3OzA2NDAgMDY0RTswNjQwIDA2NEU7CitGRTc4O0ZFNzg7RkU3ODswMDIwIDA2NEY7MDAyMCAwNjRGOworRkU3OTtGRTc5O0ZFNzk7MDY0MCAwNjRGOzA2NDAgMDY0RjsKK0ZFN0E7RkU3QTtGRTdBOzAwMjAgMDY1MDswMDIwIDA2NTA7CitGRTdCO0ZFN0I7RkU3QjswNjQwIDA2NTA7MDY0MCAwNjUwOworRkU3QztGRTdDO0ZFN0M7MDAyMCAwNjUxOzAwMjAgMDY1MTsKK0ZFN0Q7RkU3RDtGRTdEOzA2NDAgMDY1MTswNjQwIDA2NTE7CitGRTdFO0ZFN0U7RkU3RTswMDIwIDA2NTI7MDAyMCAwNjUyOworRkU3RjtGRTdGO0ZFN0Y7MDY0MCAwNjUyOzA2NDAgMDY1MjsKK0ZFODA7RkU4MDtGRTgwOzA2MjE7MDYyMTsKK0ZFODE7RkU4MTtGRTgxOzA2MjI7MDYyNyAwNjUzOworRkU4MjtGRTgyO0ZFODI7MDYyMjswNjI3IDA2NTM7CitGRTgzO0ZFODM7RkU4MzswNjIzOzA2MjcgMDY1NDsKK0ZFODQ7RkU4NDtGRTg0OzA2MjM7MDYyNyAwNjU0OworRkU4NTtGRTg1O0ZFODU7MDYyNDswNjQ4IDA2NTQ7CitGRTg2O0ZFODY7RkU4NjswNjI0OzA2NDggMDY1NDsKK0ZFODc7RkU4NztGRTg3OzA2MjU7MDYyNyAwNjU1OworRkU4ODtGRTg4O0ZFODg7MDYyNTswNjI3IDA2NTU7CitGRTg5O0ZFODk7RkU4OTswNjI2OzA2NEEgMDY1NDsKK0ZFOEE7RkU4QTtGRThBOzA2MjY7MDY0QSAwNjU0OworRkU4QjtGRThCO0ZFOEI7MDYyNjswNjRBIDA2NTQ7CitGRThDO0ZFOEM7RkU4QzswNjI2OzA2NEEgMDY1NDsKK0ZFOEQ7RkU4RDtGRThEOzA2Mjc7MDYyNzsKK0ZFOEU7RkU4RTtGRThFOzA2Mjc7MDYyNzsKK0ZFOEY7RkU4RjtGRThGOzA2Mjg7MDYyODsKK0ZFOTA7RkU5MDtGRTkwOzA2Mjg7MDYyODsKK0ZFOTE7RkU5MTtGRTkxOzA2Mjg7MDYyODsKK0ZFOTI7RkU5MjtGRTkyOzA2Mjg7MDYyODsKK0ZFOTM7RkU5MztGRTkzOzA2Mjk7MDYyOTsKK0ZFOTQ7RkU5NDtGRTk0OzA2Mjk7MDYyOTsKK0ZFOTU7RkU5NTtGRTk1OzA2MkE7MDYyQTsKK0ZFOTY7RkU5NjtGRTk2OzA2MkE7MDYyQTsKK0ZFOTc7RkU5NztGRTk3OzA2MkE7MDYyQTsKK0ZFOTg7RkU5ODtGRTk4OzA2MkE7MDYyQTsKK0ZFOTk7RkU5OTtGRTk5OzA2MkI7MDYyQjsKK0ZFOUE7RkU5QTtGRTlBOzA2MkI7MDYyQjsKK0ZFOUI7RkU5QjtGRTlCOzA2MkI7MDYyQjsKK0ZFOUM7RkU5QztGRTlDOzA2MkI7MDYyQjsKK0ZFOUQ7RkU5RDtGRTlEOzA2MkM7MDYyQzsKK0ZFOUU7RkU5RTtGRTlFOzA2MkM7MDYyQzsKK0ZFOUY7RkU5RjtGRTlGOzA2MkM7MDYyQzsKK0ZFQTA7RkVBMDtGRUEwOzA2MkM7MDYyQzsKK0ZFQTE7RkVBMTtGRUExOzA2MkQ7MDYyRDsKK0ZFQTI7RkVBMjtGRUEyOzA2MkQ7MDYyRDsKK0ZFQTM7RkVBMztGRUEzOzA2MkQ7MDYyRDsKK0ZFQTQ7RkVBNDtGRUE0OzA2MkQ7MDYyRDsKK0ZFQTU7RkVBNTtGRUE1OzA2MkU7MDYyRTsKK0ZFQTY7RkVBNjtGRUE2OzA2MkU7MDYyRTsKK0ZFQTc7RkVBNztGRUE3OzA2MkU7MDYyRTsKK0ZFQTg7RkVBODtGRUE4OzA2MkU7MDYyRTsKK0ZFQTk7RkVBOTtGRUE5OzA2MkY7MDYyRjsKK0ZFQUE7RkVBQTtGRUFBOzA2MkY7MDYyRjsKK0ZFQUI7RkVBQjtGRUFCOzA2MzA7MDYzMDsKK0ZFQUM7RkVBQztGRUFDOzA2MzA7MDYzMDsKK0ZFQUQ7RkVBRDtGRUFEOzA2MzE7MDYzMTsKK0ZFQUU7RkVBRTtGRUFFOzA2MzE7MDYzMTsKK0ZFQUY7RkVBRjtGRUFGOzA2MzI7MDYzMjsKK0ZFQjA7RkVCMDtGRUIwOzA2MzI7MDYzMjsKK0ZFQjE7RkVCMTtGRUIxOzA2MzM7MDYzMzsKK0ZFQjI7RkVCMjtGRUIyOzA2MzM7MDYzMzsKK0ZFQjM7RkVCMztGRUIzOzA2MzM7MDYzMzsKK0ZFQjQ7RkVCNDtGRUI0OzA2MzM7MDYzMzsKK0ZFQjU7RkVCNTtGRUI1OzA2MzQ7MDYzNDsKK0ZFQjY7RkVCNjtGRUI2OzA2MzQ7MDYzNDsKK0ZFQjc7RkVCNztGRUI3OzA2MzQ7MDYzNDsKK0ZFQjg7RkVCODtGRUI4OzA2MzQ7MDYzNDsKK0ZFQjk7RkVCOTtGRUI5OzA2MzU7MDYzNTsKK0ZFQkE7RkVCQTtGRUJBOzA2MzU7MDYzNTsKK0ZFQkI7RkVCQjtGRUJCOzA2MzU7MDYzNTsKK0ZFQkM7RkVCQztGRUJDOzA2MzU7MDYzNTsKK0ZFQkQ7RkVCRDtGRUJEOzA2MzY7MDYzNjsKK0ZFQkU7RkVCRTtGRUJFOzA2MzY7MDYzNjsKK0ZFQkY7RkVCRjtGRUJGOzA2MzY7MDYzNjsKK0ZFQzA7RkVDMDtGRUMwOzA2MzY7MDYzNjsKK0ZFQzE7RkVDMTtGRUMxOzA2Mzc7MDYzNzsKK0ZFQzI7RkVDMjtGRUMyOzA2Mzc7MDYzNzsKK0ZFQzM7RkVDMztGRUMzOzA2Mzc7MDYzNzsKK0ZFQzQ7RkVDNDtGRUM0OzA2Mzc7MDYzNzsKK0ZFQzU7RkVDNTtGRUM1OzA2Mzg7MDYzODsKK0ZFQzY7RkVDNjtGRUM2OzA2Mzg7MDYzODsKK0ZFQzc7RkVDNztGRUM3OzA2Mzg7MDYzODsKK0ZFQzg7RkVDODtGRUM4OzA2Mzg7MDYzODsKK0ZFQzk7RkVDOTtGRUM5OzA2Mzk7MDYzOTsKK0ZFQ0E7RkVDQTtGRUNBOzA2Mzk7MDYzOTsKK0ZFQ0I7RkVDQjtGRUNCOzA2Mzk7MDYzOTsKK0ZFQ0M7RkVDQztGRUNDOzA2Mzk7MDYzOTsKK0ZFQ0Q7RkVDRDtGRUNEOzA2M0E7MDYzQTsKK0ZFQ0U7RkVDRTtGRUNFOzA2M0E7MDYzQTsKK0ZFQ0Y7RkVDRjtGRUNGOzA2M0E7MDYzQTsKK0ZFRDA7RkVEMDtGRUQwOzA2M0E7MDYzQTsKK0ZFRDE7RkVEMTtGRUQxOzA2NDE7MDY0MTsKK0ZFRDI7RkVEMjtGRUQyOzA2NDE7MDY0MTsKK0ZFRDM7RkVEMztGRUQzOzA2NDE7MDY0MTsKK0ZFRDQ7RkVENDtGRUQ0OzA2NDE7MDY0MTsKK0ZFRDU7RkVENTtGRUQ1OzA2NDI7MDY0MjsKK0ZFRDY7RkVENjtGRUQ2OzA2NDI7MDY0MjsKK0ZFRDc7RkVENztGRUQ3OzA2NDI7MDY0MjsKK0ZFRDg7RkVEODtGRUQ4OzA2NDI7MDY0MjsKK0ZFRDk7RkVEOTtGRUQ5OzA2NDM7MDY0MzsKK0ZFREE7RkVEQTtGRURBOzA2NDM7MDY0MzsKK0ZFREI7RkVEQjtGRURCOzA2NDM7MDY0MzsKK0ZFREM7RkVEQztGRURDOzA2NDM7MDY0MzsKK0ZFREQ7RkVERDtGRUREOzA2NDQ7MDY0NDsKK0ZFREU7RkVERTtGRURFOzA2NDQ7MDY0NDsKK0ZFREY7RkVERjtGRURGOzA2NDQ7MDY0NDsKK0ZFRTA7RkVFMDtGRUUwOzA2NDQ7MDY0NDsKK0ZFRTE7RkVFMTtGRUUxOzA2NDU7MDY0NTsKK0ZFRTI7RkVFMjtGRUUyOzA2NDU7MDY0NTsKK0ZFRTM7RkVFMztGRUUzOzA2NDU7MDY0NTsKK0ZFRTQ7RkVFNDtGRUU0OzA2NDU7MDY0NTsKK0ZFRTU7RkVFNTtGRUU1OzA2NDY7MDY0NjsKK0ZFRTY7RkVFNjtGRUU2OzA2NDY7MDY0NjsKK0ZFRTc7RkVFNztGRUU3OzA2NDY7MDY0NjsKK0ZFRTg7RkVFODtGRUU4OzA2NDY7MDY0NjsKK0ZFRTk7RkVFOTtGRUU5OzA2NDc7MDY0NzsKK0ZFRUE7RkVFQTtGRUVBOzA2NDc7MDY0NzsKK0ZFRUI7RkVFQjtGRUVCOzA2NDc7MDY0NzsKK0ZFRUM7RkVFQztGRUVDOzA2NDc7MDY0NzsKK0ZFRUQ7RkVFRDtGRUVEOzA2NDg7MDY0ODsKK0ZFRUU7RkVFRTtGRUVFOzA2NDg7MDY0ODsKK0ZFRUY7RkVFRjtGRUVGOzA2NDk7MDY0OTsKK0ZFRjA7RkVGMDtGRUYwOzA2NDk7MDY0OTsKK0ZFRjE7RkVGMTtGRUYxOzA2NEE7MDY0QTsKK0ZFRjI7RkVGMjtGRUYyOzA2NEE7MDY0QTsKK0ZFRjM7RkVGMztGRUYzOzA2NEE7MDY0QTsKK0ZFRjQ7RkVGNDtGRUY0OzA2NEE7MDY0QTsKK0ZFRjU7RkVGNTtGRUY1OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjY7RkVGNjtGRUY2OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjc7RkVGNztGRUY3OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjg7RkVGODtGRUY4OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjk7RkVGOTtGRUY5OzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkE7RkVGQTtGRUZBOzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkI7RkVGQjtGRUZCOzA2NDQgMDYyNzswNjQ0IDA2Mjc7CitGRUZDO0ZFRkM7RkVGQzswNjQ0IDA2Mjc7MDY0NCAwNjI3OworRkYwMTtGRjAxO0ZGMDE7MDAyMTswMDIxOworRkYwMjtGRjAyO0ZGMDI7MDAyMjswMDIyOworRkYwMztGRjAzO0ZGMDM7MDAyMzswMDIzOworRkYwNDtGRjA0O0ZGMDQ7MDAyNDswMDI0OworRkYwNTtGRjA1O0ZGMDU7MDAyNTswMDI1OworRkYwNjtGRjA2O0ZGMDY7MDAyNjswMDI2OworRkYwNztGRjA3O0ZGMDc7MDAyNzswMDI3OworRkYwODtGRjA4O0ZGMDg7MDAyODswMDI4OworRkYwOTtGRjA5O0ZGMDk7MDAyOTswMDI5OworRkYwQTtGRjBBO0ZGMEE7MDAyQTswMDJBOworRkYwQjtGRjBCO0ZGMEI7MDAyQjswMDJCOworRkYwQztGRjBDO0ZGMEM7MDAyQzswMDJDOworRkYwRDtGRjBEO0ZGMEQ7MDAyRDswMDJEOworRkYwRTtGRjBFO0ZGMEU7MDAyRTswMDJFOworRkYwRjtGRjBGO0ZGMEY7MDAyRjswMDJGOworRkYxMDtGRjEwO0ZGMTA7MDAzMDswMDMwOworRkYxMTtGRjExO0ZGMTE7MDAzMTswMDMxOworRkYxMjtGRjEyO0ZGMTI7MDAzMjswMDMyOworRkYxMztGRjEzO0ZGMTM7MDAzMzswMDMzOworRkYxNDtGRjE0O0ZGMTQ7MDAzNDswMDM0OworRkYxNTtGRjE1O0ZGMTU7MDAzNTswMDM1OworRkYxNjtGRjE2O0ZGMTY7MDAzNjswMDM2OworRkYxNztGRjE3O0ZGMTc7MDAzNzswMDM3OworRkYxODtGRjE4O0ZGMTg7MDAzODswMDM4OworRkYxOTtGRjE5O0ZGMTk7MDAzOTswMDM5OworRkYxQTtGRjFBO0ZGMUE7MDAzQTswMDNBOworRkYxQjtGRjFCO0ZGMUI7MDAzQjswMDNCOworRkYxQztGRjFDO0ZGMUM7MDAzQzswMDNDOworRkYxRDtGRjFEO0ZGMUQ7MDAzRDswMDNEOworRkYxRTtGRjFFO0ZGMUU7MDAzRTswMDNFOworRkYxRjtGRjFGO0ZGMUY7MDAzRjswMDNGOworRkYyMDtGRjIwO0ZGMjA7MDA0MDswMDQwOworRkYyMTtGRjIxO0ZGMjE7MDA0MTswMDQxOworRkYyMjtGRjIyO0ZGMjI7MDA0MjswMDQyOworRkYyMztGRjIzO0ZGMjM7MDA0MzswMDQzOworRkYyNDtGRjI0O0ZGMjQ7MDA0NDswMDQ0OworRkYyNTtGRjI1O0ZGMjU7MDA0NTswMDQ1OworRkYyNjtGRjI2O0ZGMjY7MDA0NjswMDQ2OworRkYyNztGRjI3O0ZGMjc7MDA0NzswMDQ3OworRkYyODtGRjI4O0ZGMjg7MDA0ODswMDQ4OworRkYyOTtGRjI5O0ZGMjk7MDA0OTswMDQ5OworRkYyQTtGRjJBO0ZGMkE7MDA0QTswMDRBOworRkYyQjtGRjJCO0ZGMkI7MDA0QjswMDRCOworRkYyQztGRjJDO0ZGMkM7MDA0QzswMDRDOworRkYyRDtGRjJEO0ZGMkQ7MDA0RDswMDREOworRkYyRTtGRjJFO0ZGMkU7MDA0RTswMDRFOworRkYyRjtGRjJGO0ZGMkY7MDA0RjswMDRGOworRkYzMDtGRjMwO0ZGMzA7MDA1MDswMDUwOworRkYzMTtGRjMxO0ZGMzE7MDA1MTswMDUxOworRkYzMjtGRjMyO0ZGMzI7MDA1MjswMDUyOworRkYzMztGRjMzO0ZGMzM7MDA1MzswMDUzOworRkYzNDtGRjM0O0ZGMzQ7MDA1NDswMDU0OworRkYzNTtGRjM1O0ZGMzU7MDA1NTswMDU1OworRkYzNjtGRjM2O0ZGMzY7MDA1NjswMDU2OworRkYzNztGRjM3O0ZGMzc7MDA1NzswMDU3OworRkYzODtGRjM4O0ZGMzg7MDA1ODswMDU4OworRkYzOTtGRjM5O0ZGMzk7MDA1OTswMDU5OworRkYzQTtGRjNBO0ZGM0E7MDA1QTswMDVBOworRkYzQjtGRjNCO0ZGM0I7MDA1QjswMDVCOworRkYzQztGRjNDO0ZGM0M7MDA1QzswMDVDOworRkYzRDtGRjNEO0ZGM0Q7MDA1RDswMDVEOworRkYzRTtGRjNFO0ZGM0U7MDA1RTswMDVFOworRkYzRjtGRjNGO0ZGM0Y7MDA1RjswMDVGOworRkY0MDtGRjQwO0ZGNDA7MDA2MDswMDYwOworRkY0MTtGRjQxO0ZGNDE7MDA2MTswMDYxOworRkY0MjtGRjQyO0ZGNDI7MDA2MjswMDYyOworRkY0MztGRjQzO0ZGNDM7MDA2MzswMDYzOworRkY0NDtGRjQ0O0ZGNDQ7MDA2NDswMDY0OworRkY0NTtGRjQ1O0ZGNDU7MDA2NTswMDY1OworRkY0NjtGRjQ2O0ZGNDY7MDA2NjswMDY2OworRkY0NztGRjQ3O0ZGNDc7MDA2NzswMDY3OworRkY0ODtGRjQ4O0ZGNDg7MDA2ODswMDY4OworRkY0OTtGRjQ5O0ZGNDk7MDA2OTswMDY5OworRkY0QTtGRjRBO0ZGNEE7MDA2QTswMDZBOworRkY0QjtGRjRCO0ZGNEI7MDA2QjswMDZCOworRkY0QztGRjRDO0ZGNEM7MDA2QzswMDZDOworRkY0RDtGRjREO0ZGNEQ7MDA2RDswMDZEOworRkY0RTtGRjRFO0ZGNEU7MDA2RTswMDZFOworRkY0RjtGRjRGO0ZGNEY7MDA2RjswMDZGOworRkY1MDtGRjUwO0ZGNTA7MDA3MDswMDcwOworRkY1MTtGRjUxO0ZGNTE7MDA3MTswMDcxOworRkY1MjtGRjUyO0ZGNTI7MDA3MjswMDcyOworRkY1MztGRjUzO0ZGNTM7MDA3MzswMDczOworRkY1NDtGRjU0O0ZGNTQ7MDA3NDswMDc0OworRkY1NTtGRjU1O0ZGNTU7MDA3NTswMDc1OworRkY1NjtGRjU2O0ZGNTY7MDA3NjswMDc2OworRkY1NztGRjU3O0ZGNTc7MDA3NzswMDc3OworRkY1ODtGRjU4O0ZGNTg7MDA3ODswMDc4OworRkY1OTtGRjU5O0ZGNTk7MDA3OTswMDc5OworRkY1QTtGRjVBO0ZGNUE7MDA3QTswMDdBOworRkY1QjtGRjVCO0ZGNUI7MDA3QjswMDdCOworRkY1QztGRjVDO0ZGNUM7MDA3QzswMDdDOworRkY1RDtGRjVEO0ZGNUQ7MDA3RDswMDdEOworRkY1RTtGRjVFO0ZGNUU7MDA3RTswMDdFOworRkY1RjtGRjVGO0ZGNUY7Mjk4NTsyOTg1OworRkY2MDtGRjYwO0ZGNjA7Mjk4NjsyOTg2OworRkY2MTtGRjYxO0ZGNjE7MzAwMjszMDAyOworRkY2MjtGRjYyO0ZGNjI7MzAwQzszMDBDOworRkY2MztGRjYzO0ZGNjM7MzAwRDszMDBEOworRkY2NDtGRjY0O0ZGNjQ7MzAwMTszMDAxOworRkY2NTtGRjY1O0ZGNjU7MzBGQjszMEZCOworRkY2NjtGRjY2O0ZGNjY7MzBGMjszMEYyOworRkY2NztGRjY3O0ZGNjc7MzBBMTszMEExOworRkY2ODtGRjY4O0ZGNjg7MzBBMzszMEEzOworRkY2OTtGRjY5O0ZGNjk7MzBBNTszMEE1OworRkY2QTtGRjZBO0ZGNkE7MzBBNzszMEE3OworRkY2QjtGRjZCO0ZGNkI7MzBBOTszMEE5OworRkY2QztGRjZDO0ZGNkM7MzBFMzszMEUzOworRkY2RDtGRjZEO0ZGNkQ7MzBFNTszMEU1OworRkY2RTtGRjZFO0ZGNkU7MzBFNzszMEU3OworRkY2RjtGRjZGO0ZGNkY7MzBDMzszMEMzOworRkY3MDtGRjcwO0ZGNzA7MzBGQzszMEZDOworRkY3MTtGRjcxO0ZGNzE7MzBBMjszMEEyOworRkY3MjtGRjcyO0ZGNzI7MzBBNDszMEE0OworRkY3MztGRjczO0ZGNzM7MzBBNjszMEE2OworRkY3NDtGRjc0O0ZGNzQ7MzBBODszMEE4OworRkY3NTtGRjc1O0ZGNzU7MzBBQTszMEFBOworRkY3NjtGRjc2O0ZGNzY7MzBBQjszMEFCOworRkY3NztGRjc3O0ZGNzc7MzBBRDszMEFEOworRkY3ODtGRjc4O0ZGNzg7MzBBRjszMEFGOworRkY3OTtGRjc5O0ZGNzk7MzBCMTszMEIxOworRkY3QTtGRjdBO0ZGN0E7MzBCMzszMEIzOworRkY3QjtGRjdCO0ZGN0I7MzBCNTszMEI1OworRkY3QztGRjdDO0ZGN0M7MzBCNzszMEI3OworRkY3RDtGRjdEO0ZGN0Q7MzBCOTszMEI5OworRkY3RTtGRjdFO0ZGN0U7MzBCQjszMEJCOworRkY3RjtGRjdGO0ZGN0Y7MzBCRDszMEJEOworRkY4MDtGRjgwO0ZGODA7MzBCRjszMEJGOworRkY4MTtGRjgxO0ZGODE7MzBDMTszMEMxOworRkY4MjtGRjgyO0ZGODI7MzBDNDszMEM0OworRkY4MztGRjgzO0ZGODM7MzBDNjszMEM2OworRkY4NDtGRjg0O0ZGODQ7MzBDODszMEM4OworRkY4NTtGRjg1O0ZGODU7MzBDQTszMENBOworRkY4NjtGRjg2O0ZGODY7MzBDQjszMENCOworRkY4NztGRjg3O0ZGODc7MzBDQzszMENDOworRkY4ODtGRjg4O0ZGODg7MzBDRDszMENEOworRkY4OTtGRjg5O0ZGODk7MzBDRTszMENFOworRkY4QTtGRjhBO0ZGOEE7MzBDRjszMENGOworRkY4QjtGRjhCO0ZGOEI7MzBEMjszMEQyOworRkY4QztGRjhDO0ZGOEM7MzBENTszMEQ1OworRkY4RDtGRjhEO0ZGOEQ7MzBEODszMEQ4OworRkY4RTtGRjhFO0ZGOEU7MzBEQjszMERCOworRkY4RjtGRjhGO0ZGOEY7MzBERTszMERFOworRkY5MDtGRjkwO0ZGOTA7MzBERjszMERGOworRkY5MTtGRjkxO0ZGOTE7MzBFMDszMEUwOworRkY5MjtGRjkyO0ZGOTI7MzBFMTszMEUxOworRkY5MztGRjkzO0ZGOTM7MzBFMjszMEUyOworRkY5NDtGRjk0O0ZGOTQ7MzBFNDszMEU0OworRkY5NTtGRjk1O0ZGOTU7MzBFNjszMEU2OworRkY5NjtGRjk2O0ZGOTY7MzBFODszMEU4OworRkY5NztGRjk3O0ZGOTc7MzBFOTszMEU5OworRkY5ODtGRjk4O0ZGOTg7MzBFQTszMEVBOworRkY5OTtGRjk5O0ZGOTk7MzBFQjszMEVCOworRkY5QTtGRjlBO0ZGOUE7MzBFQzszMEVDOworRkY5QjtGRjlCO0ZGOUI7MzBFRDszMEVEOworRkY5QztGRjlDO0ZGOUM7MzBFRjszMEVGOworRkY5RDtGRjlEO0ZGOUQ7MzBGMzszMEYzOworRkY5RTtGRjlFO0ZGOUU7MzA5OTszMDk5OworRkY5RjtGRjlGO0ZGOUY7MzA5QTszMDlBOworRkZBMDtGRkEwO0ZGQTA7MTE2MDsxMTYwOworRkZBMTtGRkExO0ZGQTE7MTEwMDsxMTAwOworRkZBMjtGRkEyO0ZGQTI7MTEwMTsxMTAxOworRkZBMztGRkEzO0ZGQTM7MTFBQTsxMUFBOworRkZBNDtGRkE0O0ZGQTQ7MTEwMjsxMTAyOworRkZBNTtGRkE1O0ZGQTU7MTFBQzsxMUFDOworRkZBNjtGRkE2O0ZGQTY7MTFBRDsxMUFEOworRkZBNztGRkE3O0ZGQTc7MTEwMzsxMTAzOworRkZBODtGRkE4O0ZGQTg7MTEwNDsxMTA0OworRkZBOTtGRkE5O0ZGQTk7MTEwNTsxMTA1OworRkZBQTtGRkFBO0ZGQUE7MTFCMDsxMUIwOworRkZBQjtGRkFCO0ZGQUI7MTFCMTsxMUIxOworRkZBQztGRkFDO0ZGQUM7MTFCMjsxMUIyOworRkZBRDtGRkFEO0ZGQUQ7MTFCMzsxMUIzOworRkZBRTtGRkFFO0ZGQUU7MTFCNDsxMUI0OworRkZBRjtGRkFGO0ZGQUY7MTFCNTsxMUI1OworRkZCMDtGRkIwO0ZGQjA7MTExQTsxMTFBOworRkZCMTtGRkIxO0ZGQjE7MTEwNjsxMTA2OworRkZCMjtGRkIyO0ZGQjI7MTEwNzsxMTA3OworRkZCMztGRkIzO0ZGQjM7MTEwODsxMTA4OworRkZCNDtGRkI0O0ZGQjQ7MTEyMTsxMTIxOworRkZCNTtGRkI1O0ZGQjU7MTEwOTsxMTA5OworRkZCNjtGRkI2O0ZGQjY7MTEwQTsxMTBBOworRkZCNztGRkI3O0ZGQjc7MTEwQjsxMTBCOworRkZCODtGRkI4O0ZGQjg7MTEwQzsxMTBDOworRkZCOTtGRkI5O0ZGQjk7MTEwRDsxMTBEOworRkZCQTtGRkJBO0ZGQkE7MTEwRTsxMTBFOworRkZCQjtGRkJCO0ZGQkI7MTEwRjsxMTBGOworRkZCQztGRkJDO0ZGQkM7MTExMDsxMTEwOworRkZCRDtGRkJEO0ZGQkQ7MTExMTsxMTExOworRkZCRTtGRkJFO0ZGQkU7MTExMjsxMTEyOworRkZDMjtGRkMyO0ZGQzI7MTE2MTsxMTYxOworRkZDMztGRkMzO0ZGQzM7MTE2MjsxMTYyOworRkZDNDtGRkM0O0ZGQzQ7MTE2MzsxMTYzOworRkZDNTtGRkM1O0ZGQzU7MTE2NDsxMTY0OworRkZDNjtGRkM2O0ZGQzY7MTE2NTsxMTY1OworRkZDNztGRkM3O0ZGQzc7MTE2NjsxMTY2OworRkZDQTtGRkNBO0ZGQ0E7MTE2NzsxMTY3OworRkZDQjtGRkNCO0ZGQ0I7MTE2ODsxMTY4OworRkZDQztGRkNDO0ZGQ0M7MTE2OTsxMTY5OworRkZDRDtGRkNEO0ZGQ0Q7MTE2QTsxMTZBOworRkZDRTtGRkNFO0ZGQ0U7MTE2QjsxMTZCOworRkZDRjtGRkNGO0ZGQ0Y7MTE2QzsxMTZDOworRkZEMjtGRkQyO0ZGRDI7MTE2RDsxMTZEOworRkZEMztGRkQzO0ZGRDM7MTE2RTsxMTZFOworRkZENDtGRkQ0O0ZGRDQ7MTE2RjsxMTZGOworRkZENTtGRkQ1O0ZGRDU7MTE3MDsxMTcwOworRkZENjtGRkQ2O0ZGRDY7MTE3MTsxMTcxOworRkZENztGRkQ3O0ZGRDc7MTE3MjsxMTcyOworRkZEQTtGRkRBO0ZGREE7MTE3MzsxMTczOworRkZEQjtGRkRCO0ZGREI7MTE3NDsxMTc0OworRkZEQztGRkRDO0ZGREM7MTE3NTsxMTc1OworRkZFMDtGRkUwO0ZGRTA7MDBBMjswMEEyOworRkZFMTtGRkUxO0ZGRTE7MDBBMzswMEEzOworRkZFMjtGRkUyO0ZGRTI7MDBBQzswMEFDOworRkZFMztGRkUzO0ZGRTM7MDAyMCAwMzA0OzAwMjAgMDMwNDsKK0ZGRTQ7RkZFNDtGRkU0OzAwQTY7MDBBNjsKK0ZGRTU7RkZFNTtGRkU1OzAwQTU7MDBBNTsKK0ZGRTY7RkZFNjtGRkU2OzIwQTk7MjBBOTsKK0ZGRTg7RkZFODtGRkU4OzI1MDI7MjUwMjsKK0ZGRTk7RkZFOTtGRkU5OzIxOTA7MjE5MDsKK0ZGRUE7RkZFQTtGRkVBOzIxOTE7MjE5MTsKK0ZGRUI7RkZFQjtGRkVCOzIxOTI7MjE5MjsKK0ZGRUM7RkZFQztGRkVDOzIxOTM7MjE5MzsKK0ZGRUQ7RkZFRDtGRkVEOzI1QTA7MjVBMDsKK0ZGRUU7RkZFRTtGRkVFOzI1Q0I7MjVDQjsKKzFEMTVFOzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OworMUQxNUY7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7CisxRDE2MDsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsKKzFEMTYxOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOworMUQxNjI7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7CisxRDE2MzsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsKKzFEMTY0OzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOworMUQxQkI7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7CisxRDFCQzsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsKKzFEMUJEOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOworMUQxQkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7CisxRDFCRjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsKKzFEMUMwOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOworMUQ0MDA7MUQ0MDA7MUQ0MDA7MDA0MTswMDQxOworMUQ0MDE7MUQ0MDE7MUQ0MDE7MDA0MjswMDQyOworMUQ0MDI7MUQ0MDI7MUQ0MDI7MDA0MzswMDQzOworMUQ0MDM7MUQ0MDM7MUQ0MDM7MDA0NDswMDQ0OworMUQ0MDQ7MUQ0MDQ7MUQ0MDQ7MDA0NTswMDQ1OworMUQ0MDU7MUQ0MDU7MUQ0MDU7MDA0NjswMDQ2OworMUQ0MDY7MUQ0MDY7MUQ0MDY7MDA0NzswMDQ3OworMUQ0MDc7MUQ0MDc7MUQ0MDc7MDA0ODswMDQ4OworMUQ0MDg7MUQ0MDg7MUQ0MDg7MDA0OTswMDQ5OworMUQ0MDk7MUQ0MDk7MUQ0MDk7MDA0QTswMDRBOworMUQ0MEE7MUQ0MEE7MUQ0MEE7MDA0QjswMDRCOworMUQ0MEI7MUQ0MEI7MUQ0MEI7MDA0QzswMDRDOworMUQ0MEM7MUQ0MEM7MUQ0MEM7MDA0RDswMDREOworMUQ0MEQ7MUQ0MEQ7MUQ0MEQ7MDA0RTswMDRFOworMUQ0MEU7MUQ0MEU7MUQ0MEU7MDA0RjswMDRGOworMUQ0MEY7MUQ0MEY7MUQ0MEY7MDA1MDswMDUwOworMUQ0MTA7MUQ0MTA7MUQ0MTA7MDA1MTswMDUxOworMUQ0MTE7MUQ0MTE7MUQ0MTE7MDA1MjswMDUyOworMUQ0MTI7MUQ0MTI7MUQ0MTI7MDA1MzswMDUzOworMUQ0MTM7MUQ0MTM7MUQ0MTM7MDA1NDswMDU0OworMUQ0MTQ7MUQ0MTQ7MUQ0MTQ7MDA1NTswMDU1OworMUQ0MTU7MUQ0MTU7MUQ0MTU7MDA1NjswMDU2OworMUQ0MTY7MUQ0MTY7MUQ0MTY7MDA1NzswMDU3OworMUQ0MTc7MUQ0MTc7MUQ0MTc7MDA1ODswMDU4OworMUQ0MTg7MUQ0MTg7MUQ0MTg7MDA1OTswMDU5OworMUQ0MTk7MUQ0MTk7MUQ0MTk7MDA1QTswMDVBOworMUQ0MUE7MUQ0MUE7MUQ0MUE7MDA2MTswMDYxOworMUQ0MUI7MUQ0MUI7MUQ0MUI7MDA2MjswMDYyOworMUQ0MUM7MUQ0MUM7MUQ0MUM7MDA2MzswMDYzOworMUQ0MUQ7MUQ0MUQ7MUQ0MUQ7MDA2NDswMDY0OworMUQ0MUU7MUQ0MUU7MUQ0MUU7MDA2NTswMDY1OworMUQ0MUY7MUQ0MUY7MUQ0MUY7MDA2NjswMDY2OworMUQ0MjA7MUQ0MjA7MUQ0MjA7MDA2NzswMDY3OworMUQ0MjE7MUQ0MjE7MUQ0MjE7MDA2ODswMDY4OworMUQ0MjI7MUQ0MjI7MUQ0MjI7MDA2OTswMDY5OworMUQ0MjM7MUQ0MjM7MUQ0MjM7MDA2QTswMDZBOworMUQ0MjQ7MUQ0MjQ7MUQ0MjQ7MDA2QjswMDZCOworMUQ0MjU7MUQ0MjU7MUQ0MjU7MDA2QzswMDZDOworMUQ0MjY7MUQ0MjY7MUQ0MjY7MDA2RDswMDZEOworMUQ0Mjc7MUQ0Mjc7MUQ0Mjc7MDA2RTswMDZFOworMUQ0Mjg7MUQ0Mjg7MUQ0Mjg7MDA2RjswMDZGOworMUQ0Mjk7MUQ0Mjk7MUQ0Mjk7MDA3MDswMDcwOworMUQ0MkE7MUQ0MkE7MUQ0MkE7MDA3MTswMDcxOworMUQ0MkI7MUQ0MkI7MUQ0MkI7MDA3MjswMDcyOworMUQ0MkM7MUQ0MkM7MUQ0MkM7MDA3MzswMDczOworMUQ0MkQ7MUQ0MkQ7MUQ0MkQ7MDA3NDswMDc0OworMUQ0MkU7MUQ0MkU7MUQ0MkU7MDA3NTswMDc1OworMUQ0MkY7MUQ0MkY7MUQ0MkY7MDA3NjswMDc2OworMUQ0MzA7MUQ0MzA7MUQ0MzA7MDA3NzswMDc3OworMUQ0MzE7MUQ0MzE7MUQ0MzE7MDA3ODswMDc4OworMUQ0MzI7MUQ0MzI7MUQ0MzI7MDA3OTswMDc5OworMUQ0MzM7MUQ0MzM7MUQ0MzM7MDA3QTswMDdBOworMUQ0MzQ7MUQ0MzQ7MUQ0MzQ7MDA0MTswMDQxOworMUQ0MzU7MUQ0MzU7MUQ0MzU7MDA0MjswMDQyOworMUQ0MzY7MUQ0MzY7MUQ0MzY7MDA0MzswMDQzOworMUQ0Mzc7MUQ0Mzc7MUQ0Mzc7MDA0NDswMDQ0OworMUQ0Mzg7MUQ0Mzg7MUQ0Mzg7MDA0NTswMDQ1OworMUQ0Mzk7MUQ0Mzk7MUQ0Mzk7MDA0NjswMDQ2OworMUQ0M0E7MUQ0M0E7MUQ0M0E7MDA0NzswMDQ3OworMUQ0M0I7MUQ0M0I7MUQ0M0I7MDA0ODswMDQ4OworMUQ0M0M7MUQ0M0M7MUQ0M0M7MDA0OTswMDQ5OworMUQ0M0Q7MUQ0M0Q7MUQ0M0Q7MDA0QTswMDRBOworMUQ0M0U7MUQ0M0U7MUQ0M0U7MDA0QjswMDRCOworMUQ0M0Y7MUQ0M0Y7MUQ0M0Y7MDA0QzswMDRDOworMUQ0NDA7MUQ0NDA7MUQ0NDA7MDA0RDswMDREOworMUQ0NDE7MUQ0NDE7MUQ0NDE7MDA0RTswMDRFOworMUQ0NDI7MUQ0NDI7MUQ0NDI7MDA0RjswMDRGOworMUQ0NDM7MUQ0NDM7MUQ0NDM7MDA1MDswMDUwOworMUQ0NDQ7MUQ0NDQ7MUQ0NDQ7MDA1MTswMDUxOworMUQ0NDU7MUQ0NDU7MUQ0NDU7MDA1MjswMDUyOworMUQ0NDY7MUQ0NDY7MUQ0NDY7MDA1MzswMDUzOworMUQ0NDc7MUQ0NDc7MUQ0NDc7MDA1NDswMDU0OworMUQ0NDg7MUQ0NDg7MUQ0NDg7MDA1NTswMDU1OworMUQ0NDk7MUQ0NDk7MUQ0NDk7MDA1NjswMDU2OworMUQ0NEE7MUQ0NEE7MUQ0NEE7MDA1NzswMDU3OworMUQ0NEI7MUQ0NEI7MUQ0NEI7MDA1ODswMDU4OworMUQ0NEM7MUQ0NEM7MUQ0NEM7MDA1OTswMDU5OworMUQ0NEQ7MUQ0NEQ7MUQ0NEQ7MDA1QTswMDVBOworMUQ0NEU7MUQ0NEU7MUQ0NEU7MDA2MTswMDYxOworMUQ0NEY7MUQ0NEY7MUQ0NEY7MDA2MjswMDYyOworMUQ0NTA7MUQ0NTA7MUQ0NTA7MDA2MzswMDYzOworMUQ0NTE7MUQ0NTE7MUQ0NTE7MDA2NDswMDY0OworMUQ0NTI7MUQ0NTI7MUQ0NTI7MDA2NTswMDY1OworMUQ0NTM7MUQ0NTM7MUQ0NTM7MDA2NjswMDY2OworMUQ0NTQ7MUQ0NTQ7MUQ0NTQ7MDA2NzswMDY3OworMUQ0NTY7MUQ0NTY7MUQ0NTY7MDA2OTswMDY5OworMUQ0NTc7MUQ0NTc7MUQ0NTc7MDA2QTswMDZBOworMUQ0NTg7MUQ0NTg7MUQ0NTg7MDA2QjswMDZCOworMUQ0NTk7MUQ0NTk7MUQ0NTk7MDA2QzswMDZDOworMUQ0NUE7MUQ0NUE7MUQ0NUE7MDA2RDswMDZEOworMUQ0NUI7MUQ0NUI7MUQ0NUI7MDA2RTswMDZFOworMUQ0NUM7MUQ0NUM7MUQ0NUM7MDA2RjswMDZGOworMUQ0NUQ7MUQ0NUQ7MUQ0NUQ7MDA3MDswMDcwOworMUQ0NUU7MUQ0NUU7MUQ0NUU7MDA3MTswMDcxOworMUQ0NUY7MUQ0NUY7MUQ0NUY7MDA3MjswMDcyOworMUQ0NjA7MUQ0NjA7MUQ0NjA7MDA3MzswMDczOworMUQ0NjE7MUQ0NjE7MUQ0NjE7MDA3NDswMDc0OworMUQ0NjI7MUQ0NjI7MUQ0NjI7MDA3NTswMDc1OworMUQ0NjM7MUQ0NjM7MUQ0NjM7MDA3NjswMDc2OworMUQ0NjQ7MUQ0NjQ7MUQ0NjQ7MDA3NzswMDc3OworMUQ0NjU7MUQ0NjU7MUQ0NjU7MDA3ODswMDc4OworMUQ0NjY7MUQ0NjY7MUQ0NjY7MDA3OTswMDc5OworMUQ0Njc7MUQ0Njc7MUQ0Njc7MDA3QTswMDdBOworMUQ0Njg7MUQ0Njg7MUQ0Njg7MDA0MTswMDQxOworMUQ0Njk7MUQ0Njk7MUQ0Njk7MDA0MjswMDQyOworMUQ0NkE7MUQ0NkE7MUQ0NkE7MDA0MzswMDQzOworMUQ0NkI7MUQ0NkI7MUQ0NkI7MDA0NDswMDQ0OworMUQ0NkM7MUQ0NkM7MUQ0NkM7MDA0NTswMDQ1OworMUQ0NkQ7MUQ0NkQ7MUQ0NkQ7MDA0NjswMDQ2OworMUQ0NkU7MUQ0NkU7MUQ0NkU7MDA0NzswMDQ3OworMUQ0NkY7MUQ0NkY7MUQ0NkY7MDA0ODswMDQ4OworMUQ0NzA7MUQ0NzA7MUQ0NzA7MDA0OTswMDQ5OworMUQ0NzE7MUQ0NzE7MUQ0NzE7MDA0QTswMDRBOworMUQ0NzI7MUQ0NzI7MUQ0NzI7MDA0QjswMDRCOworMUQ0NzM7MUQ0NzM7MUQ0NzM7MDA0QzswMDRDOworMUQ0NzQ7MUQ0NzQ7MUQ0NzQ7MDA0RDswMDREOworMUQ0NzU7MUQ0NzU7MUQ0NzU7MDA0RTswMDRFOworMUQ0NzY7MUQ0NzY7MUQ0NzY7MDA0RjswMDRGOworMUQ0Nzc7MUQ0Nzc7MUQ0Nzc7MDA1MDswMDUwOworMUQ0Nzg7MUQ0Nzg7MUQ0Nzg7MDA1MTswMDUxOworMUQ0Nzk7MUQ0Nzk7MUQ0Nzk7MDA1MjswMDUyOworMUQ0N0E7MUQ0N0E7MUQ0N0E7MDA1MzswMDUzOworMUQ0N0I7MUQ0N0I7MUQ0N0I7MDA1NDswMDU0OworMUQ0N0M7MUQ0N0M7MUQ0N0M7MDA1NTswMDU1OworMUQ0N0Q7MUQ0N0Q7MUQ0N0Q7MDA1NjswMDU2OworMUQ0N0U7MUQ0N0U7MUQ0N0U7MDA1NzswMDU3OworMUQ0N0Y7MUQ0N0Y7MUQ0N0Y7MDA1ODswMDU4OworMUQ0ODA7MUQ0ODA7MUQ0ODA7MDA1OTswMDU5OworMUQ0ODE7MUQ0ODE7MUQ0ODE7MDA1QTswMDVBOworMUQ0ODI7MUQ0ODI7MUQ0ODI7MDA2MTswMDYxOworMUQ0ODM7MUQ0ODM7MUQ0ODM7MDA2MjswMDYyOworMUQ0ODQ7MUQ0ODQ7MUQ0ODQ7MDA2MzswMDYzOworMUQ0ODU7MUQ0ODU7MUQ0ODU7MDA2NDswMDY0OworMUQ0ODY7MUQ0ODY7MUQ0ODY7MDA2NTswMDY1OworMUQ0ODc7MUQ0ODc7MUQ0ODc7MDA2NjswMDY2OworMUQ0ODg7MUQ0ODg7MUQ0ODg7MDA2NzswMDY3OworMUQ0ODk7MUQ0ODk7MUQ0ODk7MDA2ODswMDY4OworMUQ0OEE7MUQ0OEE7MUQ0OEE7MDA2OTswMDY5OworMUQ0OEI7MUQ0OEI7MUQ0OEI7MDA2QTswMDZBOworMUQ0OEM7MUQ0OEM7MUQ0OEM7MDA2QjswMDZCOworMUQ0OEQ7MUQ0OEQ7MUQ0OEQ7MDA2QzswMDZDOworMUQ0OEU7MUQ0OEU7MUQ0OEU7MDA2RDswMDZEOworMUQ0OEY7MUQ0OEY7MUQ0OEY7MDA2RTswMDZFOworMUQ0OTA7MUQ0OTA7MUQ0OTA7MDA2RjswMDZGOworMUQ0OTE7MUQ0OTE7MUQ0OTE7MDA3MDswMDcwOworMUQ0OTI7MUQ0OTI7MUQ0OTI7MDA3MTswMDcxOworMUQ0OTM7MUQ0OTM7MUQ0OTM7MDA3MjswMDcyOworMUQ0OTQ7MUQ0OTQ7MUQ0OTQ7MDA3MzswMDczOworMUQ0OTU7MUQ0OTU7MUQ0OTU7MDA3NDswMDc0OworMUQ0OTY7MUQ0OTY7MUQ0OTY7MDA3NTswMDc1OworMUQ0OTc7MUQ0OTc7MUQ0OTc7MDA3NjswMDc2OworMUQ0OTg7MUQ0OTg7MUQ0OTg7MDA3NzswMDc3OworMUQ0OTk7MUQ0OTk7MUQ0OTk7MDA3ODswMDc4OworMUQ0OUE7MUQ0OUE7MUQ0OUE7MDA3OTswMDc5OworMUQ0OUI7MUQ0OUI7MUQ0OUI7MDA3QTswMDdBOworMUQ0OUM7MUQ0OUM7MUQ0OUM7MDA0MTswMDQxOworMUQ0OUU7MUQ0OUU7MUQ0OUU7MDA0MzswMDQzOworMUQ0OUY7MUQ0OUY7MUQ0OUY7MDA0NDswMDQ0OworMUQ0QTI7MUQ0QTI7MUQ0QTI7MDA0NzswMDQ3OworMUQ0QTU7MUQ0QTU7MUQ0QTU7MDA0QTswMDRBOworMUQ0QTY7MUQ0QTY7MUQ0QTY7MDA0QjswMDRCOworMUQ0QTk7MUQ0QTk7MUQ0QTk7MDA0RTswMDRFOworMUQ0QUE7MUQ0QUE7MUQ0QUE7MDA0RjswMDRGOworMUQ0QUI7MUQ0QUI7MUQ0QUI7MDA1MDswMDUwOworMUQ0QUM7MUQ0QUM7MUQ0QUM7MDA1MTswMDUxOworMUQ0QUU7MUQ0QUU7MUQ0QUU7MDA1MzswMDUzOworMUQ0QUY7MUQ0QUY7MUQ0QUY7MDA1NDswMDU0OworMUQ0QjA7MUQ0QjA7MUQ0QjA7MDA1NTswMDU1OworMUQ0QjE7MUQ0QjE7MUQ0QjE7MDA1NjswMDU2OworMUQ0QjI7MUQ0QjI7MUQ0QjI7MDA1NzswMDU3OworMUQ0QjM7MUQ0QjM7MUQ0QjM7MDA1ODswMDU4OworMUQ0QjQ7MUQ0QjQ7MUQ0QjQ7MDA1OTswMDU5OworMUQ0QjU7MUQ0QjU7MUQ0QjU7MDA1QTswMDVBOworMUQ0QjY7MUQ0QjY7MUQ0QjY7MDA2MTswMDYxOworMUQ0Qjc7MUQ0Qjc7MUQ0Qjc7MDA2MjswMDYyOworMUQ0Qjg7MUQ0Qjg7MUQ0Qjg7MDA2MzswMDYzOworMUQ0Qjk7MUQ0Qjk7MUQ0Qjk7MDA2NDswMDY0OworMUQ0QkI7MUQ0QkI7MUQ0QkI7MDA2NjswMDY2OworMUQ0QkQ7MUQ0QkQ7MUQ0QkQ7MDA2ODswMDY4OworMUQ0QkU7MUQ0QkU7MUQ0QkU7MDA2OTswMDY5OworMUQ0QkY7MUQ0QkY7MUQ0QkY7MDA2QTswMDZBOworMUQ0QzA7MUQ0QzA7MUQ0QzA7MDA2QjswMDZCOworMUQ0QzI7MUQ0QzI7MUQ0QzI7MDA2RDswMDZEOworMUQ0QzM7MUQ0QzM7MUQ0QzM7MDA2RTswMDZFOworMUQ0QzU7MUQ0QzU7MUQ0QzU7MDA3MDswMDcwOworMUQ0QzY7MUQ0QzY7MUQ0QzY7MDA3MTswMDcxOworMUQ0Qzc7MUQ0Qzc7MUQ0Qzc7MDA3MjswMDcyOworMUQ0Qzg7MUQ0Qzg7MUQ0Qzg7MDA3MzswMDczOworMUQ0Qzk7MUQ0Qzk7MUQ0Qzk7MDA3NDswMDc0OworMUQ0Q0E7MUQ0Q0E7MUQ0Q0E7MDA3NTswMDc1OworMUQ0Q0I7MUQ0Q0I7MUQ0Q0I7MDA3NjswMDc2OworMUQ0Q0M7MUQ0Q0M7MUQ0Q0M7MDA3NzswMDc3OworMUQ0Q0Q7MUQ0Q0Q7MUQ0Q0Q7MDA3ODswMDc4OworMUQ0Q0U7MUQ0Q0U7MUQ0Q0U7MDA3OTswMDc5OworMUQ0Q0Y7MUQ0Q0Y7MUQ0Q0Y7MDA3QTswMDdBOworMUQ0RDA7MUQ0RDA7MUQ0RDA7MDA0MTswMDQxOworMUQ0RDE7MUQ0RDE7MUQ0RDE7MDA0MjswMDQyOworMUQ0RDI7MUQ0RDI7MUQ0RDI7MDA0MzswMDQzOworMUQ0RDM7MUQ0RDM7MUQ0RDM7MDA0NDswMDQ0OworMUQ0RDQ7MUQ0RDQ7MUQ0RDQ7MDA0NTswMDQ1OworMUQ0RDU7MUQ0RDU7MUQ0RDU7MDA0NjswMDQ2OworMUQ0RDY7MUQ0RDY7MUQ0RDY7MDA0NzswMDQ3OworMUQ0RDc7MUQ0RDc7MUQ0RDc7MDA0ODswMDQ4OworMUQ0RDg7MUQ0RDg7MUQ0RDg7MDA0OTswMDQ5OworMUQ0RDk7MUQ0RDk7MUQ0RDk7MDA0QTswMDRBOworMUQ0REE7MUQ0REE7MUQ0REE7MDA0QjswMDRCOworMUQ0REI7MUQ0REI7MUQ0REI7MDA0QzswMDRDOworMUQ0REM7MUQ0REM7MUQ0REM7MDA0RDswMDREOworMUQ0REQ7MUQ0REQ7MUQ0REQ7MDA0RTswMDRFOworMUQ0REU7MUQ0REU7MUQ0REU7MDA0RjswMDRGOworMUQ0REY7MUQ0REY7MUQ0REY7MDA1MDswMDUwOworMUQ0RTA7MUQ0RTA7MUQ0RTA7MDA1MTswMDUxOworMUQ0RTE7MUQ0RTE7MUQ0RTE7MDA1MjswMDUyOworMUQ0RTI7MUQ0RTI7MUQ0RTI7MDA1MzswMDUzOworMUQ0RTM7MUQ0RTM7MUQ0RTM7MDA1NDswMDU0OworMUQ0RTQ7MUQ0RTQ7MUQ0RTQ7MDA1NTswMDU1OworMUQ0RTU7MUQ0RTU7MUQ0RTU7MDA1NjswMDU2OworMUQ0RTY7MUQ0RTY7MUQ0RTY7MDA1NzswMDU3OworMUQ0RTc7MUQ0RTc7MUQ0RTc7MDA1ODswMDU4OworMUQ0RTg7MUQ0RTg7MUQ0RTg7MDA1OTswMDU5OworMUQ0RTk7MUQ0RTk7MUQ0RTk7MDA1QTswMDVBOworMUQ0RUE7MUQ0RUE7MUQ0RUE7MDA2MTswMDYxOworMUQ0RUI7MUQ0RUI7MUQ0RUI7MDA2MjswMDYyOworMUQ0RUM7MUQ0RUM7MUQ0RUM7MDA2MzswMDYzOworMUQ0RUQ7MUQ0RUQ7MUQ0RUQ7MDA2NDswMDY0OworMUQ0RUU7MUQ0RUU7MUQ0RUU7MDA2NTswMDY1OworMUQ0RUY7MUQ0RUY7MUQ0RUY7MDA2NjswMDY2OworMUQ0RjA7MUQ0RjA7MUQ0RjA7MDA2NzswMDY3OworMUQ0RjE7MUQ0RjE7MUQ0RjE7MDA2ODswMDY4OworMUQ0RjI7MUQ0RjI7MUQ0RjI7MDA2OTswMDY5OworMUQ0RjM7MUQ0RjM7MUQ0RjM7MDA2QTswMDZBOworMUQ0RjQ7MUQ0RjQ7MUQ0RjQ7MDA2QjswMDZCOworMUQ0RjU7MUQ0RjU7MUQ0RjU7MDA2QzswMDZDOworMUQ0RjY7MUQ0RjY7MUQ0RjY7MDA2RDswMDZEOworMUQ0Rjc7MUQ0Rjc7MUQ0Rjc7MDA2RTswMDZFOworMUQ0Rjg7MUQ0Rjg7MUQ0Rjg7MDA2RjswMDZGOworMUQ0Rjk7MUQ0Rjk7MUQ0Rjk7MDA3MDswMDcwOworMUQ0RkE7MUQ0RkE7MUQ0RkE7MDA3MTswMDcxOworMUQ0RkI7MUQ0RkI7MUQ0RkI7MDA3MjswMDcyOworMUQ0RkM7MUQ0RkM7MUQ0RkM7MDA3MzswMDczOworMUQ0RkQ7MUQ0RkQ7MUQ0RkQ7MDA3NDswMDc0OworMUQ0RkU7MUQ0RkU7MUQ0RkU7MDA3NTswMDc1OworMUQ0RkY7MUQ0RkY7MUQ0RkY7MDA3NjswMDc2OworMUQ1MDA7MUQ1MDA7MUQ1MDA7MDA3NzswMDc3OworMUQ1MDE7MUQ1MDE7MUQ1MDE7MDA3ODswMDc4OworMUQ1MDI7MUQ1MDI7MUQ1MDI7MDA3OTswMDc5OworMUQ1MDM7MUQ1MDM7MUQ1MDM7MDA3QTswMDdBOworMUQ1MDQ7MUQ1MDQ7MUQ1MDQ7MDA0MTswMDQxOworMUQ1MDU7MUQ1MDU7MUQ1MDU7MDA0MjswMDQyOworMUQ1MDc7MUQ1MDc7MUQ1MDc7MDA0NDswMDQ0OworMUQ1MDg7MUQ1MDg7MUQ1MDg7MDA0NTswMDQ1OworMUQ1MDk7MUQ1MDk7MUQ1MDk7MDA0NjswMDQ2OworMUQ1MEE7MUQ1MEE7MUQ1MEE7MDA0NzswMDQ3OworMUQ1MEQ7MUQ1MEQ7MUQ1MEQ7MDA0QTswMDRBOworMUQ1MEU7MUQ1MEU7MUQ1MEU7MDA0QjswMDRCOworMUQ1MEY7MUQ1MEY7MUQ1MEY7MDA0QzswMDRDOworMUQ1MTA7MUQ1MTA7MUQ1MTA7MDA0RDswMDREOworMUQ1MTE7MUQ1MTE7MUQ1MTE7MDA0RTswMDRFOworMUQ1MTI7MUQ1MTI7MUQ1MTI7MDA0RjswMDRGOworMUQ1MTM7MUQ1MTM7MUQ1MTM7MDA1MDswMDUwOworMUQ1MTQ7MUQ1MTQ7MUQ1MTQ7MDA1MTswMDUxOworMUQ1MTY7MUQ1MTY7MUQ1MTY7MDA1MzswMDUzOworMUQ1MTc7MUQ1MTc7MUQ1MTc7MDA1NDswMDU0OworMUQ1MTg7MUQ1MTg7MUQ1MTg7MDA1NTswMDU1OworMUQ1MTk7MUQ1MTk7MUQ1MTk7MDA1NjswMDU2OworMUQ1MUE7MUQ1MUE7MUQ1MUE7MDA1NzswMDU3OworMUQ1MUI7MUQ1MUI7MUQ1MUI7MDA1ODswMDU4OworMUQ1MUM7MUQ1MUM7MUQ1MUM7MDA1OTswMDU5OworMUQ1MUU7MUQ1MUU7MUQ1MUU7MDA2MTswMDYxOworMUQ1MUY7MUQ1MUY7MUQ1MUY7MDA2MjswMDYyOworMUQ1MjA7MUQ1MjA7MUQ1MjA7MDA2MzswMDYzOworMUQ1MjE7MUQ1MjE7MUQ1MjE7MDA2NDswMDY0OworMUQ1MjI7MUQ1MjI7MUQ1MjI7MDA2NTswMDY1OworMUQ1MjM7MUQ1MjM7MUQ1MjM7MDA2NjswMDY2OworMUQ1MjQ7MUQ1MjQ7MUQ1MjQ7MDA2NzswMDY3OworMUQ1MjU7MUQ1MjU7MUQ1MjU7MDA2ODswMDY4OworMUQ1MjY7MUQ1MjY7MUQ1MjY7MDA2OTswMDY5OworMUQ1Mjc7MUQ1Mjc7MUQ1Mjc7MDA2QTswMDZBOworMUQ1Mjg7MUQ1Mjg7MUQ1Mjg7MDA2QjswMDZCOworMUQ1Mjk7MUQ1Mjk7MUQ1Mjk7MDA2QzswMDZDOworMUQ1MkE7MUQ1MkE7MUQ1MkE7MDA2RDswMDZEOworMUQ1MkI7MUQ1MkI7MUQ1MkI7MDA2RTswMDZFOworMUQ1MkM7MUQ1MkM7MUQ1MkM7MDA2RjswMDZGOworMUQ1MkQ7MUQ1MkQ7MUQ1MkQ7MDA3MDswMDcwOworMUQ1MkU7MUQ1MkU7MUQ1MkU7MDA3MTswMDcxOworMUQ1MkY7MUQ1MkY7MUQ1MkY7MDA3MjswMDcyOworMUQ1MzA7MUQ1MzA7MUQ1MzA7MDA3MzswMDczOworMUQ1MzE7MUQ1MzE7MUQ1MzE7MDA3NDswMDc0OworMUQ1MzI7MUQ1MzI7MUQ1MzI7MDA3NTswMDc1OworMUQ1MzM7MUQ1MzM7MUQ1MzM7MDA3NjswMDc2OworMUQ1MzQ7MUQ1MzQ7MUQ1MzQ7MDA3NzswMDc3OworMUQ1MzU7MUQ1MzU7MUQ1MzU7MDA3ODswMDc4OworMUQ1MzY7MUQ1MzY7MUQ1MzY7MDA3OTswMDc5OworMUQ1Mzc7MUQ1Mzc7MUQ1Mzc7MDA3QTswMDdBOworMUQ1Mzg7MUQ1Mzg7MUQ1Mzg7MDA0MTswMDQxOworMUQ1Mzk7MUQ1Mzk7MUQ1Mzk7MDA0MjswMDQyOworMUQ1M0I7MUQ1M0I7MUQ1M0I7MDA0NDswMDQ0OworMUQ1M0M7MUQ1M0M7MUQ1M0M7MDA0NTswMDQ1OworMUQ1M0Q7MUQ1M0Q7MUQ1M0Q7MDA0NjswMDQ2OworMUQ1M0U7MUQ1M0U7MUQ1M0U7MDA0NzswMDQ3OworMUQ1NDA7MUQ1NDA7MUQ1NDA7MDA0OTswMDQ5OworMUQ1NDE7MUQ1NDE7MUQ1NDE7MDA0QTswMDRBOworMUQ1NDI7MUQ1NDI7MUQ1NDI7MDA0QjswMDRCOworMUQ1NDM7MUQ1NDM7MUQ1NDM7MDA0QzswMDRDOworMUQ1NDQ7MUQ1NDQ7MUQ1NDQ7MDA0RDswMDREOworMUQ1NDY7MUQ1NDY7MUQ1NDY7MDA0RjswMDRGOworMUQ1NEE7MUQ1NEE7MUQ1NEE7MDA1MzswMDUzOworMUQ1NEI7MUQ1NEI7MUQ1NEI7MDA1NDswMDU0OworMUQ1NEM7MUQ1NEM7MUQ1NEM7MDA1NTswMDU1OworMUQ1NEQ7MUQ1NEQ7MUQ1NEQ7MDA1NjswMDU2OworMUQ1NEU7MUQ1NEU7MUQ1NEU7MDA1NzswMDU3OworMUQ1NEY7MUQ1NEY7MUQ1NEY7MDA1ODswMDU4OworMUQ1NTA7MUQ1NTA7MUQ1NTA7MDA1OTswMDU5OworMUQ1NTI7MUQ1NTI7MUQ1NTI7MDA2MTswMDYxOworMUQ1NTM7MUQ1NTM7MUQ1NTM7MDA2MjswMDYyOworMUQ1NTQ7MUQ1NTQ7MUQ1NTQ7MDA2MzswMDYzOworMUQ1NTU7MUQ1NTU7MUQ1NTU7MDA2NDswMDY0OworMUQ1NTY7MUQ1NTY7MUQ1NTY7MDA2NTswMDY1OworMUQ1NTc7MUQ1NTc7MUQ1NTc7MDA2NjswMDY2OworMUQ1NTg7MUQ1NTg7MUQ1NTg7MDA2NzswMDY3OworMUQ1NTk7MUQ1NTk7MUQ1NTk7MDA2ODswMDY4OworMUQ1NUE7MUQ1NUE7MUQ1NUE7MDA2OTswMDY5OworMUQ1NUI7MUQ1NUI7MUQ1NUI7MDA2QTswMDZBOworMUQ1NUM7MUQ1NUM7MUQ1NUM7MDA2QjswMDZCOworMUQ1NUQ7MUQ1NUQ7MUQ1NUQ7MDA2QzswMDZDOworMUQ1NUU7MUQ1NUU7MUQ1NUU7MDA2RDswMDZEOworMUQ1NUY7MUQ1NUY7MUQ1NUY7MDA2RTswMDZFOworMUQ1NjA7MUQ1NjA7MUQ1NjA7MDA2RjswMDZGOworMUQ1NjE7MUQ1NjE7MUQ1NjE7MDA3MDswMDcwOworMUQ1NjI7MUQ1NjI7MUQ1NjI7MDA3MTswMDcxOworMUQ1NjM7MUQ1NjM7MUQ1NjM7MDA3MjswMDcyOworMUQ1NjQ7MUQ1NjQ7MUQ1NjQ7MDA3MzswMDczOworMUQ1NjU7MUQ1NjU7MUQ1NjU7MDA3NDswMDc0OworMUQ1NjY7MUQ1NjY7MUQ1NjY7MDA3NTswMDc1OworMUQ1Njc7MUQ1Njc7MUQ1Njc7MDA3NjswMDc2OworMUQ1Njg7MUQ1Njg7MUQ1Njg7MDA3NzswMDc3OworMUQ1Njk7MUQ1Njk7MUQ1Njk7MDA3ODswMDc4OworMUQ1NkE7MUQ1NkE7MUQ1NkE7MDA3OTswMDc5OworMUQ1NkI7MUQ1NkI7MUQ1NkI7MDA3QTswMDdBOworMUQ1NkM7MUQ1NkM7MUQ1NkM7MDA0MTswMDQxOworMUQ1NkQ7MUQ1NkQ7MUQ1NkQ7MDA0MjswMDQyOworMUQ1NkU7MUQ1NkU7MUQ1NkU7MDA0MzswMDQzOworMUQ1NkY7MUQ1NkY7MUQ1NkY7MDA0NDswMDQ0OworMUQ1NzA7MUQ1NzA7MUQ1NzA7MDA0NTswMDQ1OworMUQ1NzE7MUQ1NzE7MUQ1NzE7MDA0NjswMDQ2OworMUQ1NzI7MUQ1NzI7MUQ1NzI7MDA0NzswMDQ3OworMUQ1NzM7MUQ1NzM7MUQ1NzM7MDA0ODswMDQ4OworMUQ1NzQ7MUQ1NzQ7MUQ1NzQ7MDA0OTswMDQ5OworMUQ1NzU7MUQ1NzU7MUQ1NzU7MDA0QTswMDRBOworMUQ1NzY7MUQ1NzY7MUQ1NzY7MDA0QjswMDRCOworMUQ1Nzc7MUQ1Nzc7MUQ1Nzc7MDA0QzswMDRDOworMUQ1Nzg7MUQ1Nzg7MUQ1Nzg7MDA0RDswMDREOworMUQ1Nzk7MUQ1Nzk7MUQ1Nzk7MDA0RTswMDRFOworMUQ1N0E7MUQ1N0E7MUQ1N0E7MDA0RjswMDRGOworMUQ1N0I7MUQ1N0I7MUQ1N0I7MDA1MDswMDUwOworMUQ1N0M7MUQ1N0M7MUQ1N0M7MDA1MTswMDUxOworMUQ1N0Q7MUQ1N0Q7MUQ1N0Q7MDA1MjswMDUyOworMUQ1N0U7MUQ1N0U7MUQ1N0U7MDA1MzswMDUzOworMUQ1N0Y7MUQ1N0Y7MUQ1N0Y7MDA1NDswMDU0OworMUQ1ODA7MUQ1ODA7MUQ1ODA7MDA1NTswMDU1OworMUQ1ODE7MUQ1ODE7MUQ1ODE7MDA1NjswMDU2OworMUQ1ODI7MUQ1ODI7MUQ1ODI7MDA1NzswMDU3OworMUQ1ODM7MUQ1ODM7MUQ1ODM7MDA1ODswMDU4OworMUQ1ODQ7MUQ1ODQ7MUQ1ODQ7MDA1OTswMDU5OworMUQ1ODU7MUQ1ODU7MUQ1ODU7MDA1QTswMDVBOworMUQ1ODY7MUQ1ODY7MUQ1ODY7MDA2MTswMDYxOworMUQ1ODc7MUQ1ODc7MUQ1ODc7MDA2MjswMDYyOworMUQ1ODg7MUQ1ODg7MUQ1ODg7MDA2MzswMDYzOworMUQ1ODk7MUQ1ODk7MUQ1ODk7MDA2NDswMDY0OworMUQ1OEE7MUQ1OEE7MUQ1OEE7MDA2NTswMDY1OworMUQ1OEI7MUQ1OEI7MUQ1OEI7MDA2NjswMDY2OworMUQ1OEM7MUQ1OEM7MUQ1OEM7MDA2NzswMDY3OworMUQ1OEQ7MUQ1OEQ7MUQ1OEQ7MDA2ODswMDY4OworMUQ1OEU7MUQ1OEU7MUQ1OEU7MDA2OTswMDY5OworMUQ1OEY7MUQ1OEY7MUQ1OEY7MDA2QTswMDZBOworMUQ1OTA7MUQ1OTA7MUQ1OTA7MDA2QjswMDZCOworMUQ1OTE7MUQ1OTE7MUQ1OTE7MDA2QzswMDZDOworMUQ1OTI7MUQ1OTI7MUQ1OTI7MDA2RDswMDZEOworMUQ1OTM7MUQ1OTM7MUQ1OTM7MDA2RTswMDZFOworMUQ1OTQ7MUQ1OTQ7MUQ1OTQ7MDA2RjswMDZGOworMUQ1OTU7MUQ1OTU7MUQ1OTU7MDA3MDswMDcwOworMUQ1OTY7MUQ1OTY7MUQ1OTY7MDA3MTswMDcxOworMUQ1OTc7MUQ1OTc7MUQ1OTc7MDA3MjswMDcyOworMUQ1OTg7MUQ1OTg7MUQ1OTg7MDA3MzswMDczOworMUQ1OTk7MUQ1OTk7MUQ1OTk7MDA3NDswMDc0OworMUQ1OUE7MUQ1OUE7MUQ1OUE7MDA3NTswMDc1OworMUQ1OUI7MUQ1OUI7MUQ1OUI7MDA3NjswMDc2OworMUQ1OUM7MUQ1OUM7MUQ1OUM7MDA3NzswMDc3OworMUQ1OUQ7MUQ1OUQ7MUQ1OUQ7MDA3ODswMDc4OworMUQ1OUU7MUQ1OUU7MUQ1OUU7MDA3OTswMDc5OworMUQ1OUY7MUQ1OUY7MUQ1OUY7MDA3QTswMDdBOworMUQ1QTA7MUQ1QTA7MUQ1QTA7MDA0MTswMDQxOworMUQ1QTE7MUQ1QTE7MUQ1QTE7MDA0MjswMDQyOworMUQ1QTI7MUQ1QTI7MUQ1QTI7MDA0MzswMDQzOworMUQ1QTM7MUQ1QTM7MUQ1QTM7MDA0NDswMDQ0OworMUQ1QTQ7MUQ1QTQ7MUQ1QTQ7MDA0NTswMDQ1OworMUQ1QTU7MUQ1QTU7MUQ1QTU7MDA0NjswMDQ2OworMUQ1QTY7MUQ1QTY7MUQ1QTY7MDA0NzswMDQ3OworMUQ1QTc7MUQ1QTc7MUQ1QTc7MDA0ODswMDQ4OworMUQ1QTg7MUQ1QTg7MUQ1QTg7MDA0OTswMDQ5OworMUQ1QTk7MUQ1QTk7MUQ1QTk7MDA0QTswMDRBOworMUQ1QUE7MUQ1QUE7MUQ1QUE7MDA0QjswMDRCOworMUQ1QUI7MUQ1QUI7MUQ1QUI7MDA0QzswMDRDOworMUQ1QUM7MUQ1QUM7MUQ1QUM7MDA0RDswMDREOworMUQ1QUQ7MUQ1QUQ7MUQ1QUQ7MDA0RTswMDRFOworMUQ1QUU7MUQ1QUU7MUQ1QUU7MDA0RjswMDRGOworMUQ1QUY7MUQ1QUY7MUQ1QUY7MDA1MDswMDUwOworMUQ1QjA7MUQ1QjA7MUQ1QjA7MDA1MTswMDUxOworMUQ1QjE7MUQ1QjE7MUQ1QjE7MDA1MjswMDUyOworMUQ1QjI7MUQ1QjI7MUQ1QjI7MDA1MzswMDUzOworMUQ1QjM7MUQ1QjM7MUQ1QjM7MDA1NDswMDU0OworMUQ1QjQ7MUQ1QjQ7MUQ1QjQ7MDA1NTswMDU1OworMUQ1QjU7MUQ1QjU7MUQ1QjU7MDA1NjswMDU2OworMUQ1QjY7MUQ1QjY7MUQ1QjY7MDA1NzswMDU3OworMUQ1Qjc7MUQ1Qjc7MUQ1Qjc7MDA1ODswMDU4OworMUQ1Qjg7MUQ1Qjg7MUQ1Qjg7MDA1OTswMDU5OworMUQ1Qjk7MUQ1Qjk7MUQ1Qjk7MDA1QTswMDVBOworMUQ1QkE7MUQ1QkE7MUQ1QkE7MDA2MTswMDYxOworMUQ1QkI7MUQ1QkI7MUQ1QkI7MDA2MjswMDYyOworMUQ1QkM7MUQ1QkM7MUQ1QkM7MDA2MzswMDYzOworMUQ1QkQ7MUQ1QkQ7MUQ1QkQ7MDA2NDswMDY0OworMUQ1QkU7MUQ1QkU7MUQ1QkU7MDA2NTswMDY1OworMUQ1QkY7MUQ1QkY7MUQ1QkY7MDA2NjswMDY2OworMUQ1QzA7MUQ1QzA7MUQ1QzA7MDA2NzswMDY3OworMUQ1QzE7MUQ1QzE7MUQ1QzE7MDA2ODswMDY4OworMUQ1QzI7MUQ1QzI7MUQ1QzI7MDA2OTswMDY5OworMUQ1QzM7MUQ1QzM7MUQ1QzM7MDA2QTswMDZBOworMUQ1QzQ7MUQ1QzQ7MUQ1QzQ7MDA2QjswMDZCOworMUQ1QzU7MUQ1QzU7MUQ1QzU7MDA2QzswMDZDOworMUQ1QzY7MUQ1QzY7MUQ1QzY7MDA2RDswMDZEOworMUQ1Qzc7MUQ1Qzc7MUQ1Qzc7MDA2RTswMDZFOworMUQ1Qzg7MUQ1Qzg7MUQ1Qzg7MDA2RjswMDZGOworMUQ1Qzk7MUQ1Qzk7MUQ1Qzk7MDA3MDswMDcwOworMUQ1Q0E7MUQ1Q0E7MUQ1Q0E7MDA3MTswMDcxOworMUQ1Q0I7MUQ1Q0I7MUQ1Q0I7MDA3MjswMDcyOworMUQ1Q0M7MUQ1Q0M7MUQ1Q0M7MDA3MzswMDczOworMUQ1Q0Q7MUQ1Q0Q7MUQ1Q0Q7MDA3NDswMDc0OworMUQ1Q0U7MUQ1Q0U7MUQ1Q0U7MDA3NTswMDc1OworMUQ1Q0Y7MUQ1Q0Y7MUQ1Q0Y7MDA3NjswMDc2OworMUQ1RDA7MUQ1RDA7MUQ1RDA7MDA3NzswMDc3OworMUQ1RDE7MUQ1RDE7MUQ1RDE7MDA3ODswMDc4OworMUQ1RDI7MUQ1RDI7MUQ1RDI7MDA3OTswMDc5OworMUQ1RDM7MUQ1RDM7MUQ1RDM7MDA3QTswMDdBOworMUQ1RDQ7MUQ1RDQ7MUQ1RDQ7MDA0MTswMDQxOworMUQ1RDU7MUQ1RDU7MUQ1RDU7MDA0MjswMDQyOworMUQ1RDY7MUQ1RDY7MUQ1RDY7MDA0MzswMDQzOworMUQ1RDc7MUQ1RDc7MUQ1RDc7MDA0NDswMDQ0OworMUQ1RDg7MUQ1RDg7MUQ1RDg7MDA0NTswMDQ1OworMUQ1RDk7MUQ1RDk7MUQ1RDk7MDA0NjswMDQ2OworMUQ1REE7MUQ1REE7MUQ1REE7MDA0NzswMDQ3OworMUQ1REI7MUQ1REI7MUQ1REI7MDA0ODswMDQ4OworMUQ1REM7MUQ1REM7MUQ1REM7MDA0OTswMDQ5OworMUQ1REQ7MUQ1REQ7MUQ1REQ7MDA0QTswMDRBOworMUQ1REU7MUQ1REU7MUQ1REU7MDA0QjswMDRCOworMUQ1REY7MUQ1REY7MUQ1REY7MDA0QzswMDRDOworMUQ1RTA7MUQ1RTA7MUQ1RTA7MDA0RDswMDREOworMUQ1RTE7MUQ1RTE7MUQ1RTE7MDA0RTswMDRFOworMUQ1RTI7MUQ1RTI7MUQ1RTI7MDA0RjswMDRGOworMUQ1RTM7MUQ1RTM7MUQ1RTM7MDA1MDswMDUwOworMUQ1RTQ7MUQ1RTQ7MUQ1RTQ7MDA1MTswMDUxOworMUQ1RTU7MUQ1RTU7MUQ1RTU7MDA1MjswMDUyOworMUQ1RTY7MUQ1RTY7MUQ1RTY7MDA1MzswMDUzOworMUQ1RTc7MUQ1RTc7MUQ1RTc7MDA1NDswMDU0OworMUQ1RTg7MUQ1RTg7MUQ1RTg7MDA1NTswMDU1OworMUQ1RTk7MUQ1RTk7MUQ1RTk7MDA1NjswMDU2OworMUQ1RUE7MUQ1RUE7MUQ1RUE7MDA1NzswMDU3OworMUQ1RUI7MUQ1RUI7MUQ1RUI7MDA1ODswMDU4OworMUQ1RUM7MUQ1RUM7MUQ1RUM7MDA1OTswMDU5OworMUQ1RUQ7MUQ1RUQ7MUQ1RUQ7MDA1QTswMDVBOworMUQ1RUU7MUQ1RUU7MUQ1RUU7MDA2MTswMDYxOworMUQ1RUY7MUQ1RUY7MUQ1RUY7MDA2MjswMDYyOworMUQ1RjA7MUQ1RjA7MUQ1RjA7MDA2MzswMDYzOworMUQ1RjE7MUQ1RjE7MUQ1RjE7MDA2NDswMDY0OworMUQ1RjI7MUQ1RjI7MUQ1RjI7MDA2NTswMDY1OworMUQ1RjM7MUQ1RjM7MUQ1RjM7MDA2NjswMDY2OworMUQ1RjQ7MUQ1RjQ7MUQ1RjQ7MDA2NzswMDY3OworMUQ1RjU7MUQ1RjU7MUQ1RjU7MDA2ODswMDY4OworMUQ1RjY7MUQ1RjY7MUQ1RjY7MDA2OTswMDY5OworMUQ1Rjc7MUQ1Rjc7MUQ1Rjc7MDA2QTswMDZBOworMUQ1Rjg7MUQ1Rjg7MUQ1Rjg7MDA2QjswMDZCOworMUQ1Rjk7MUQ1Rjk7MUQ1Rjk7MDA2QzswMDZDOworMUQ1RkE7MUQ1RkE7MUQ1RkE7MDA2RDswMDZEOworMUQ1RkI7MUQ1RkI7MUQ1RkI7MDA2RTswMDZFOworMUQ1RkM7MUQ1RkM7MUQ1RkM7MDA2RjswMDZGOworMUQ1RkQ7MUQ1RkQ7MUQ1RkQ7MDA3MDswMDcwOworMUQ1RkU7MUQ1RkU7MUQ1RkU7MDA3MTswMDcxOworMUQ1RkY7MUQ1RkY7MUQ1RkY7MDA3MjswMDcyOworMUQ2MDA7MUQ2MDA7MUQ2MDA7MDA3MzswMDczOworMUQ2MDE7MUQ2MDE7MUQ2MDE7MDA3NDswMDc0OworMUQ2MDI7MUQ2MDI7MUQ2MDI7MDA3NTswMDc1OworMUQ2MDM7MUQ2MDM7MUQ2MDM7MDA3NjswMDc2OworMUQ2MDQ7MUQ2MDQ7MUQ2MDQ7MDA3NzswMDc3OworMUQ2MDU7MUQ2MDU7MUQ2MDU7MDA3ODswMDc4OworMUQ2MDY7MUQ2MDY7MUQ2MDY7MDA3OTswMDc5OworMUQ2MDc7MUQ2MDc7MUQ2MDc7MDA3QTswMDdBOworMUQ2MDg7MUQ2MDg7MUQ2MDg7MDA0MTswMDQxOworMUQ2MDk7MUQ2MDk7MUQ2MDk7MDA0MjswMDQyOworMUQ2MEE7MUQ2MEE7MUQ2MEE7MDA0MzswMDQzOworMUQ2MEI7MUQ2MEI7MUQ2MEI7MDA0NDswMDQ0OworMUQ2MEM7MUQ2MEM7MUQ2MEM7MDA0NTswMDQ1OworMUQ2MEQ7MUQ2MEQ7MUQ2MEQ7MDA0NjswMDQ2OworMUQ2MEU7MUQ2MEU7MUQ2MEU7MDA0NzswMDQ3OworMUQ2MEY7MUQ2MEY7MUQ2MEY7MDA0ODswMDQ4OworMUQ2MTA7MUQ2MTA7MUQ2MTA7MDA0OTswMDQ5OworMUQ2MTE7MUQ2MTE7MUQ2MTE7MDA0QTswMDRBOworMUQ2MTI7MUQ2MTI7MUQ2MTI7MDA0QjswMDRCOworMUQ2MTM7MUQ2MTM7MUQ2MTM7MDA0QzswMDRDOworMUQ2MTQ7MUQ2MTQ7MUQ2MTQ7MDA0RDswMDREOworMUQ2MTU7MUQ2MTU7MUQ2MTU7MDA0RTswMDRFOworMUQ2MTY7MUQ2MTY7MUQ2MTY7MDA0RjswMDRGOworMUQ2MTc7MUQ2MTc7MUQ2MTc7MDA1MDswMDUwOworMUQ2MTg7MUQ2MTg7MUQ2MTg7MDA1MTswMDUxOworMUQ2MTk7MUQ2MTk7MUQ2MTk7MDA1MjswMDUyOworMUQ2MUE7MUQ2MUE7MUQ2MUE7MDA1MzswMDUzOworMUQ2MUI7MUQ2MUI7MUQ2MUI7MDA1NDswMDU0OworMUQ2MUM7MUQ2MUM7MUQ2MUM7MDA1NTswMDU1OworMUQ2MUQ7MUQ2MUQ7MUQ2MUQ7MDA1NjswMDU2OworMUQ2MUU7MUQ2MUU7MUQ2MUU7MDA1NzswMDU3OworMUQ2MUY7MUQ2MUY7MUQ2MUY7MDA1ODswMDU4OworMUQ2MjA7MUQ2MjA7MUQ2MjA7MDA1OTswMDU5OworMUQ2MjE7MUQ2MjE7MUQ2MjE7MDA1QTswMDVBOworMUQ2MjI7MUQ2MjI7MUQ2MjI7MDA2MTswMDYxOworMUQ2MjM7MUQ2MjM7MUQ2MjM7MDA2MjswMDYyOworMUQ2MjQ7MUQ2MjQ7MUQ2MjQ7MDA2MzswMDYzOworMUQ2MjU7MUQ2MjU7MUQ2MjU7MDA2NDswMDY0OworMUQ2MjY7MUQ2MjY7MUQ2MjY7MDA2NTswMDY1OworMUQ2Mjc7MUQ2Mjc7MUQ2Mjc7MDA2NjswMDY2OworMUQ2Mjg7MUQ2Mjg7MUQ2Mjg7MDA2NzswMDY3OworMUQ2Mjk7MUQ2Mjk7MUQ2Mjk7MDA2ODswMDY4OworMUQ2MkE7MUQ2MkE7MUQ2MkE7MDA2OTswMDY5OworMUQ2MkI7MUQ2MkI7MUQ2MkI7MDA2QTswMDZBOworMUQ2MkM7MUQ2MkM7MUQ2MkM7MDA2QjswMDZCOworMUQ2MkQ7MUQ2MkQ7MUQ2MkQ7MDA2QzswMDZDOworMUQ2MkU7MUQ2MkU7MUQ2MkU7MDA2RDswMDZEOworMUQ2MkY7MUQ2MkY7MUQ2MkY7MDA2RTswMDZFOworMUQ2MzA7MUQ2MzA7MUQ2MzA7MDA2RjswMDZGOworMUQ2MzE7MUQ2MzE7MUQ2MzE7MDA3MDswMDcwOworMUQ2MzI7MUQ2MzI7MUQ2MzI7MDA3MTswMDcxOworMUQ2MzM7MUQ2MzM7MUQ2MzM7MDA3MjswMDcyOworMUQ2MzQ7MUQ2MzQ7MUQ2MzQ7MDA3MzswMDczOworMUQ2MzU7MUQ2MzU7MUQ2MzU7MDA3NDswMDc0OworMUQ2MzY7MUQ2MzY7MUQ2MzY7MDA3NTswMDc1OworMUQ2Mzc7MUQ2Mzc7MUQ2Mzc7MDA3NjswMDc2OworMUQ2Mzg7MUQ2Mzg7MUQ2Mzg7MDA3NzswMDc3OworMUQ2Mzk7MUQ2Mzk7MUQ2Mzk7MDA3ODswMDc4OworMUQ2M0E7MUQ2M0E7MUQ2M0E7MDA3OTswMDc5OworMUQ2M0I7MUQ2M0I7MUQ2M0I7MDA3QTswMDdBOworMUQ2M0M7MUQ2M0M7MUQ2M0M7MDA0MTswMDQxOworMUQ2M0Q7MUQ2M0Q7MUQ2M0Q7MDA0MjswMDQyOworMUQ2M0U7MUQ2M0U7MUQ2M0U7MDA0MzswMDQzOworMUQ2M0Y7MUQ2M0Y7MUQ2M0Y7MDA0NDswMDQ0OworMUQ2NDA7MUQ2NDA7MUQ2NDA7MDA0NTswMDQ1OworMUQ2NDE7MUQ2NDE7MUQ2NDE7MDA0NjswMDQ2OworMUQ2NDI7MUQ2NDI7MUQ2NDI7MDA0NzswMDQ3OworMUQ2NDM7MUQ2NDM7MUQ2NDM7MDA0ODswMDQ4OworMUQ2NDQ7MUQ2NDQ7MUQ2NDQ7MDA0OTswMDQ5OworMUQ2NDU7MUQ2NDU7MUQ2NDU7MDA0QTswMDRBOworMUQ2NDY7MUQ2NDY7MUQ2NDY7MDA0QjswMDRCOworMUQ2NDc7MUQ2NDc7MUQ2NDc7MDA0QzswMDRDOworMUQ2NDg7MUQ2NDg7MUQ2NDg7MDA0RDswMDREOworMUQ2NDk7MUQ2NDk7MUQ2NDk7MDA0RTswMDRFOworMUQ2NEE7MUQ2NEE7MUQ2NEE7MDA0RjswMDRGOworMUQ2NEI7MUQ2NEI7MUQ2NEI7MDA1MDswMDUwOworMUQ2NEM7MUQ2NEM7MUQ2NEM7MDA1MTswMDUxOworMUQ2NEQ7MUQ2NEQ7MUQ2NEQ7MDA1MjswMDUyOworMUQ2NEU7MUQ2NEU7MUQ2NEU7MDA1MzswMDUzOworMUQ2NEY7MUQ2NEY7MUQ2NEY7MDA1NDswMDU0OworMUQ2NTA7MUQ2NTA7MUQ2NTA7MDA1NTswMDU1OworMUQ2NTE7MUQ2NTE7MUQ2NTE7MDA1NjswMDU2OworMUQ2NTI7MUQ2NTI7MUQ2NTI7MDA1NzswMDU3OworMUQ2NTM7MUQ2NTM7MUQ2NTM7MDA1ODswMDU4OworMUQ2NTQ7MUQ2NTQ7MUQ2NTQ7MDA1OTswMDU5OworMUQ2NTU7MUQ2NTU7MUQ2NTU7MDA1QTswMDVBOworMUQ2NTY7MUQ2NTY7MUQ2NTY7MDA2MTswMDYxOworMUQ2NTc7MUQ2NTc7MUQ2NTc7MDA2MjswMDYyOworMUQ2NTg7MUQ2NTg7MUQ2NTg7MDA2MzswMDYzOworMUQ2NTk7MUQ2NTk7MUQ2NTk7MDA2NDswMDY0OworMUQ2NUE7MUQ2NUE7MUQ2NUE7MDA2NTswMDY1OworMUQ2NUI7MUQ2NUI7MUQ2NUI7MDA2NjswMDY2OworMUQ2NUM7MUQ2NUM7MUQ2NUM7MDA2NzswMDY3OworMUQ2NUQ7MUQ2NUQ7MUQ2NUQ7MDA2ODswMDY4OworMUQ2NUU7MUQ2NUU7MUQ2NUU7MDA2OTswMDY5OworMUQ2NUY7MUQ2NUY7MUQ2NUY7MDA2QTswMDZBOworMUQ2NjA7MUQ2NjA7MUQ2NjA7MDA2QjswMDZCOworMUQ2NjE7MUQ2NjE7MUQ2NjE7MDA2QzswMDZDOworMUQ2NjI7MUQ2NjI7MUQ2NjI7MDA2RDswMDZEOworMUQ2NjM7MUQ2NjM7MUQ2NjM7MDA2RTswMDZFOworMUQ2NjQ7MUQ2NjQ7MUQ2NjQ7MDA2RjswMDZGOworMUQ2NjU7MUQ2NjU7MUQ2NjU7MDA3MDswMDcwOworMUQ2NjY7MUQ2NjY7MUQ2NjY7MDA3MTswMDcxOworMUQ2Njc7MUQ2Njc7MUQ2Njc7MDA3MjswMDcyOworMUQ2Njg7MUQ2Njg7MUQ2Njg7MDA3MzswMDczOworMUQ2Njk7MUQ2Njk7MUQ2Njk7MDA3NDswMDc0OworMUQ2NkE7MUQ2NkE7MUQ2NkE7MDA3NTswMDc1OworMUQ2NkI7MUQ2NkI7MUQ2NkI7MDA3NjswMDc2OworMUQ2NkM7MUQ2NkM7MUQ2NkM7MDA3NzswMDc3OworMUQ2NkQ7MUQ2NkQ7MUQ2NkQ7MDA3ODswMDc4OworMUQ2NkU7MUQ2NkU7MUQ2NkU7MDA3OTswMDc5OworMUQ2NkY7MUQ2NkY7MUQ2NkY7MDA3QTswMDdBOworMUQ2NzA7MUQ2NzA7MUQ2NzA7MDA0MTswMDQxOworMUQ2NzE7MUQ2NzE7MUQ2NzE7MDA0MjswMDQyOworMUQ2NzI7MUQ2NzI7MUQ2NzI7MDA0MzswMDQzOworMUQ2NzM7MUQ2NzM7MUQ2NzM7MDA0NDswMDQ0OworMUQ2NzQ7MUQ2NzQ7MUQ2NzQ7MDA0NTswMDQ1OworMUQ2NzU7MUQ2NzU7MUQ2NzU7MDA0NjswMDQ2OworMUQ2NzY7MUQ2NzY7MUQ2NzY7MDA0NzswMDQ3OworMUQ2Nzc7MUQ2Nzc7MUQ2Nzc7MDA0ODswMDQ4OworMUQ2Nzg7MUQ2Nzg7MUQ2Nzg7MDA0OTswMDQ5OworMUQ2Nzk7MUQ2Nzk7MUQ2Nzk7MDA0QTswMDRBOworMUQ2N0E7MUQ2N0E7MUQ2N0E7MDA0QjswMDRCOworMUQ2N0I7MUQ2N0I7MUQ2N0I7MDA0QzswMDRDOworMUQ2N0M7MUQ2N0M7MUQ2N0M7MDA0RDswMDREOworMUQ2N0Q7MUQ2N0Q7MUQ2N0Q7MDA0RTswMDRFOworMUQ2N0U7MUQ2N0U7MUQ2N0U7MDA0RjswMDRGOworMUQ2N0Y7MUQ2N0Y7MUQ2N0Y7MDA1MDswMDUwOworMUQ2ODA7MUQ2ODA7MUQ2ODA7MDA1MTswMDUxOworMUQ2ODE7MUQ2ODE7MUQ2ODE7MDA1MjswMDUyOworMUQ2ODI7MUQ2ODI7MUQ2ODI7MDA1MzswMDUzOworMUQ2ODM7MUQ2ODM7MUQ2ODM7MDA1NDswMDU0OworMUQ2ODQ7MUQ2ODQ7MUQ2ODQ7MDA1NTswMDU1OworMUQ2ODU7MUQ2ODU7MUQ2ODU7MDA1NjswMDU2OworMUQ2ODY7MUQ2ODY7MUQ2ODY7MDA1NzswMDU3OworMUQ2ODc7MUQ2ODc7MUQ2ODc7MDA1ODswMDU4OworMUQ2ODg7MUQ2ODg7MUQ2ODg7MDA1OTswMDU5OworMUQ2ODk7MUQ2ODk7MUQ2ODk7MDA1QTswMDVBOworMUQ2OEE7MUQ2OEE7MUQ2OEE7MDA2MTswMDYxOworMUQ2OEI7MUQ2OEI7MUQ2OEI7MDA2MjswMDYyOworMUQ2OEM7MUQ2OEM7MUQ2OEM7MDA2MzswMDYzOworMUQ2OEQ7MUQ2OEQ7MUQ2OEQ7MDA2NDswMDY0OworMUQ2OEU7MUQ2OEU7MUQ2OEU7MDA2NTswMDY1OworMUQ2OEY7MUQ2OEY7MUQ2OEY7MDA2NjswMDY2OworMUQ2OTA7MUQ2OTA7MUQ2OTA7MDA2NzswMDY3OworMUQ2OTE7MUQ2OTE7MUQ2OTE7MDA2ODswMDY4OworMUQ2OTI7MUQ2OTI7MUQ2OTI7MDA2OTswMDY5OworMUQ2OTM7MUQ2OTM7MUQ2OTM7MDA2QTswMDZBOworMUQ2OTQ7MUQ2OTQ7MUQ2OTQ7MDA2QjswMDZCOworMUQ2OTU7MUQ2OTU7MUQ2OTU7MDA2QzswMDZDOworMUQ2OTY7MUQ2OTY7MUQ2OTY7MDA2RDswMDZEOworMUQ2OTc7MUQ2OTc7MUQ2OTc7MDA2RTswMDZFOworMUQ2OTg7MUQ2OTg7MUQ2OTg7MDA2RjswMDZGOworMUQ2OTk7MUQ2OTk7MUQ2OTk7MDA3MDswMDcwOworMUQ2OUE7MUQ2OUE7MUQ2OUE7MDA3MTswMDcxOworMUQ2OUI7MUQ2OUI7MUQ2OUI7MDA3MjswMDcyOworMUQ2OUM7MUQ2OUM7MUQ2OUM7MDA3MzswMDczOworMUQ2OUQ7MUQ2OUQ7MUQ2OUQ7MDA3NDswMDc0OworMUQ2OUU7MUQ2OUU7MUQ2OUU7MDA3NTswMDc1OworMUQ2OUY7MUQ2OUY7MUQ2OUY7MDA3NjswMDc2OworMUQ2QTA7MUQ2QTA7MUQ2QTA7MDA3NzswMDc3OworMUQ2QTE7MUQ2QTE7MUQ2QTE7MDA3ODswMDc4OworMUQ2QTI7MUQ2QTI7MUQ2QTI7MDA3OTswMDc5OworMUQ2QTM7MUQ2QTM7MUQ2QTM7MDA3QTswMDdBOworMUQ2QTg7MUQ2QTg7MUQ2QTg7MDM5MTswMzkxOworMUQ2QTk7MUQ2QTk7MUQ2QTk7MDM5MjswMzkyOworMUQ2QUE7MUQ2QUE7MUQ2QUE7MDM5MzswMzkzOworMUQ2QUI7MUQ2QUI7MUQ2QUI7MDM5NDswMzk0OworMUQ2QUM7MUQ2QUM7MUQ2QUM7MDM5NTswMzk1OworMUQ2QUQ7MUQ2QUQ7MUQ2QUQ7MDM5NjswMzk2OworMUQ2QUU7MUQ2QUU7MUQ2QUU7MDM5NzswMzk3OworMUQ2QUY7MUQ2QUY7MUQ2QUY7MDM5ODswMzk4OworMUQ2QjA7MUQ2QjA7MUQ2QjA7MDM5OTswMzk5OworMUQ2QjE7MUQ2QjE7MUQ2QjE7MDM5QTswMzlBOworMUQ2QjI7MUQ2QjI7MUQ2QjI7MDM5QjswMzlCOworMUQ2QjM7MUQ2QjM7MUQ2QjM7MDM5QzswMzlDOworMUQ2QjQ7MUQ2QjQ7MUQ2QjQ7MDM5RDswMzlEOworMUQ2QjU7MUQ2QjU7MUQ2QjU7MDM5RTswMzlFOworMUQ2QjY7MUQ2QjY7MUQ2QjY7MDM5RjswMzlGOworMUQ2Qjc7MUQ2Qjc7MUQ2Qjc7MDNBMDswM0EwOworMUQ2Qjg7MUQ2Qjg7MUQ2Qjg7MDNBMTswM0ExOworMUQ2Qjk7MUQ2Qjk7MUQ2Qjk7MDM5ODswMzk4OworMUQ2QkE7MUQ2QkE7MUQ2QkE7MDNBMzswM0EzOworMUQ2QkI7MUQ2QkI7MUQ2QkI7MDNBNDswM0E0OworMUQ2QkM7MUQ2QkM7MUQ2QkM7MDNBNTswM0E1OworMUQ2QkQ7MUQ2QkQ7MUQ2QkQ7MDNBNjswM0E2OworMUQ2QkU7MUQ2QkU7MUQ2QkU7MDNBNzswM0E3OworMUQ2QkY7MUQ2QkY7MUQ2QkY7MDNBODswM0E4OworMUQ2QzA7MUQ2QzA7MUQ2QzA7MDNBOTswM0E5OworMUQ2QzE7MUQ2QzE7MUQ2QzE7MjIwNzsyMjA3OworMUQ2QzI7MUQ2QzI7MUQ2QzI7MDNCMTswM0IxOworMUQ2QzM7MUQ2QzM7MUQ2QzM7MDNCMjswM0IyOworMUQ2QzQ7MUQ2QzQ7MUQ2QzQ7MDNCMzswM0IzOworMUQ2QzU7MUQ2QzU7MUQ2QzU7MDNCNDswM0I0OworMUQ2QzY7MUQ2QzY7MUQ2QzY7MDNCNTswM0I1OworMUQ2Qzc7MUQ2Qzc7MUQ2Qzc7MDNCNjswM0I2OworMUQ2Qzg7MUQ2Qzg7MUQ2Qzg7MDNCNzswM0I3OworMUQ2Qzk7MUQ2Qzk7MUQ2Qzk7MDNCODswM0I4OworMUQ2Q0E7MUQ2Q0E7MUQ2Q0E7MDNCOTswM0I5OworMUQ2Q0I7MUQ2Q0I7MUQ2Q0I7MDNCQTswM0JBOworMUQ2Q0M7MUQ2Q0M7MUQ2Q0M7MDNCQjswM0JCOworMUQ2Q0Q7MUQ2Q0Q7MUQ2Q0Q7MDNCQzswM0JDOworMUQ2Q0U7MUQ2Q0U7MUQ2Q0U7MDNCRDswM0JEOworMUQ2Q0Y7MUQ2Q0Y7MUQ2Q0Y7MDNCRTswM0JFOworMUQ2RDA7MUQ2RDA7MUQ2RDA7MDNCRjswM0JGOworMUQ2RDE7MUQ2RDE7MUQ2RDE7MDNDMDswM0MwOworMUQ2RDI7MUQ2RDI7MUQ2RDI7MDNDMTswM0MxOworMUQ2RDM7MUQ2RDM7MUQ2RDM7MDNDMjswM0MyOworMUQ2RDQ7MUQ2RDQ7MUQ2RDQ7MDNDMzswM0MzOworMUQ2RDU7MUQ2RDU7MUQ2RDU7MDNDNDswM0M0OworMUQ2RDY7MUQ2RDY7MUQ2RDY7MDNDNTswM0M1OworMUQ2RDc7MUQ2RDc7MUQ2RDc7MDNDNjswM0M2OworMUQ2RDg7MUQ2RDg7MUQ2RDg7MDNDNzswM0M3OworMUQ2RDk7MUQ2RDk7MUQ2RDk7MDNDODswM0M4OworMUQ2REE7MUQ2REE7MUQ2REE7MDNDOTswM0M5OworMUQ2REI7MUQ2REI7MUQ2REI7MjIwMjsyMjAyOworMUQ2REM7MUQ2REM7MUQ2REM7MDNCNTswM0I1OworMUQ2REQ7MUQ2REQ7MUQ2REQ7MDNCODswM0I4OworMUQ2REU7MUQ2REU7MUQ2REU7MDNCQTswM0JBOworMUQ2REY7MUQ2REY7MUQ2REY7MDNDNjswM0M2OworMUQ2RTA7MUQ2RTA7MUQ2RTA7MDNDMTswM0MxOworMUQ2RTE7MUQ2RTE7MUQ2RTE7MDNDMDswM0MwOworMUQ2RTI7MUQ2RTI7MUQ2RTI7MDM5MTswMzkxOworMUQ2RTM7MUQ2RTM7MUQ2RTM7MDM5MjswMzkyOworMUQ2RTQ7MUQ2RTQ7MUQ2RTQ7MDM5MzswMzkzOworMUQ2RTU7MUQ2RTU7MUQ2RTU7MDM5NDswMzk0OworMUQ2RTY7MUQ2RTY7MUQ2RTY7MDM5NTswMzk1OworMUQ2RTc7MUQ2RTc7MUQ2RTc7MDM5NjswMzk2OworMUQ2RTg7MUQ2RTg7MUQ2RTg7MDM5NzswMzk3OworMUQ2RTk7MUQ2RTk7MUQ2RTk7MDM5ODswMzk4OworMUQ2RUE7MUQ2RUE7MUQ2RUE7MDM5OTswMzk5OworMUQ2RUI7MUQ2RUI7MUQ2RUI7MDM5QTswMzlBOworMUQ2RUM7MUQ2RUM7MUQ2RUM7MDM5QjswMzlCOworMUQ2RUQ7MUQ2RUQ7MUQ2RUQ7MDM5QzswMzlDOworMUQ2RUU7MUQ2RUU7MUQ2RUU7MDM5RDswMzlEOworMUQ2RUY7MUQ2RUY7MUQ2RUY7MDM5RTswMzlFOworMUQ2RjA7MUQ2RjA7MUQ2RjA7MDM5RjswMzlGOworMUQ2RjE7MUQ2RjE7MUQ2RjE7MDNBMDswM0EwOworMUQ2RjI7MUQ2RjI7MUQ2RjI7MDNBMTswM0ExOworMUQ2RjM7MUQ2RjM7MUQ2RjM7MDM5ODswMzk4OworMUQ2RjQ7MUQ2RjQ7MUQ2RjQ7MDNBMzswM0EzOworMUQ2RjU7MUQ2RjU7MUQ2RjU7MDNBNDswM0E0OworMUQ2RjY7MUQ2RjY7MUQ2RjY7MDNBNTswM0E1OworMUQ2Rjc7MUQ2Rjc7MUQ2Rjc7MDNBNjswM0E2OworMUQ2Rjg7MUQ2Rjg7MUQ2Rjg7MDNBNzswM0E3OworMUQ2Rjk7MUQ2Rjk7MUQ2Rjk7MDNBODswM0E4OworMUQ2RkE7MUQ2RkE7MUQ2RkE7MDNBOTswM0E5OworMUQ2RkI7MUQ2RkI7MUQ2RkI7MjIwNzsyMjA3OworMUQ2RkM7MUQ2RkM7MUQ2RkM7MDNCMTswM0IxOworMUQ2RkQ7MUQ2RkQ7MUQ2RkQ7MDNCMjswM0IyOworMUQ2RkU7MUQ2RkU7MUQ2RkU7MDNCMzswM0IzOworMUQ2RkY7MUQ2RkY7MUQ2RkY7MDNCNDswM0I0OworMUQ3MDA7MUQ3MDA7MUQ3MDA7MDNCNTswM0I1OworMUQ3MDE7MUQ3MDE7MUQ3MDE7MDNCNjswM0I2OworMUQ3MDI7MUQ3MDI7MUQ3MDI7MDNCNzswM0I3OworMUQ3MDM7MUQ3MDM7MUQ3MDM7MDNCODswM0I4OworMUQ3MDQ7MUQ3MDQ7MUQ3MDQ7MDNCOTswM0I5OworMUQ3MDU7MUQ3MDU7MUQ3MDU7MDNCQTswM0JBOworMUQ3MDY7MUQ3MDY7MUQ3MDY7MDNCQjswM0JCOworMUQ3MDc7MUQ3MDc7MUQ3MDc7MDNCQzswM0JDOworMUQ3MDg7MUQ3MDg7MUQ3MDg7MDNCRDswM0JEOworMUQ3MDk7MUQ3MDk7MUQ3MDk7MDNCRTswM0JFOworMUQ3MEE7MUQ3MEE7MUQ3MEE7MDNCRjswM0JGOworMUQ3MEI7MUQ3MEI7MUQ3MEI7MDNDMDswM0MwOworMUQ3MEM7MUQ3MEM7MUQ3MEM7MDNDMTswM0MxOworMUQ3MEQ7MUQ3MEQ7MUQ3MEQ7MDNDMjswM0MyOworMUQ3MEU7MUQ3MEU7MUQ3MEU7MDNDMzswM0MzOworMUQ3MEY7MUQ3MEY7MUQ3MEY7MDNDNDswM0M0OworMUQ3MTA7MUQ3MTA7MUQ3MTA7MDNDNTswM0M1OworMUQ3MTE7MUQ3MTE7MUQ3MTE7MDNDNjswM0M2OworMUQ3MTI7MUQ3MTI7MUQ3MTI7MDNDNzswM0M3OworMUQ3MTM7MUQ3MTM7MUQ3MTM7MDNDODswM0M4OworMUQ3MTQ7MUQ3MTQ7MUQ3MTQ7MDNDOTswM0M5OworMUQ3MTU7MUQ3MTU7MUQ3MTU7MjIwMjsyMjAyOworMUQ3MTY7MUQ3MTY7MUQ3MTY7MDNCNTswM0I1OworMUQ3MTc7MUQ3MTc7MUQ3MTc7MDNCODswM0I4OworMUQ3MTg7MUQ3MTg7MUQ3MTg7MDNCQTswM0JBOworMUQ3MTk7MUQ3MTk7MUQ3MTk7MDNDNjswM0M2OworMUQ3MUE7MUQ3MUE7MUQ3MUE7MDNDMTswM0MxOworMUQ3MUI7MUQ3MUI7MUQ3MUI7MDNDMDswM0MwOworMUQ3MUM7MUQ3MUM7MUQ3MUM7MDM5MTswMzkxOworMUQ3MUQ7MUQ3MUQ7MUQ3MUQ7MDM5MjswMzkyOworMUQ3MUU7MUQ3MUU7MUQ3MUU7MDM5MzswMzkzOworMUQ3MUY7MUQ3MUY7MUQ3MUY7MDM5NDswMzk0OworMUQ3MjA7MUQ3MjA7MUQ3MjA7MDM5NTswMzk1OworMUQ3MjE7MUQ3MjE7MUQ3MjE7MDM5NjswMzk2OworMUQ3MjI7MUQ3MjI7MUQ3MjI7MDM5NzswMzk3OworMUQ3MjM7MUQ3MjM7MUQ3MjM7MDM5ODswMzk4OworMUQ3MjQ7MUQ3MjQ7MUQ3MjQ7MDM5OTswMzk5OworMUQ3MjU7MUQ3MjU7MUQ3MjU7MDM5QTswMzlBOworMUQ3MjY7MUQ3MjY7MUQ3MjY7MDM5QjswMzlCOworMUQ3Mjc7MUQ3Mjc7MUQ3Mjc7MDM5QzswMzlDOworMUQ3Mjg7MUQ3Mjg7MUQ3Mjg7MDM5RDswMzlEOworMUQ3Mjk7MUQ3Mjk7MUQ3Mjk7MDM5RTswMzlFOworMUQ3MkE7MUQ3MkE7MUQ3MkE7MDM5RjswMzlGOworMUQ3MkI7MUQ3MkI7MUQ3MkI7MDNBMDswM0EwOworMUQ3MkM7MUQ3MkM7MUQ3MkM7MDNBMTswM0ExOworMUQ3MkQ7MUQ3MkQ7MUQ3MkQ7MDM5ODswMzk4OworMUQ3MkU7MUQ3MkU7MUQ3MkU7MDNBMzswM0EzOworMUQ3MkY7MUQ3MkY7MUQ3MkY7MDNBNDswM0E0OworMUQ3MzA7MUQ3MzA7MUQ3MzA7MDNBNTswM0E1OworMUQ3MzE7MUQ3MzE7MUQ3MzE7MDNBNjswM0E2OworMUQ3MzI7MUQ3MzI7MUQ3MzI7MDNBNzswM0E3OworMUQ3MzM7MUQ3MzM7MUQ3MzM7MDNBODswM0E4OworMUQ3MzQ7MUQ3MzQ7MUQ3MzQ7MDNBOTswM0E5OworMUQ3MzU7MUQ3MzU7MUQ3MzU7MjIwNzsyMjA3OworMUQ3MzY7MUQ3MzY7MUQ3MzY7MDNCMTswM0IxOworMUQ3Mzc7MUQ3Mzc7MUQ3Mzc7MDNCMjswM0IyOworMUQ3Mzg7MUQ3Mzg7MUQ3Mzg7MDNCMzswM0IzOworMUQ3Mzk7MUQ3Mzk7MUQ3Mzk7MDNCNDswM0I0OworMUQ3M0E7MUQ3M0E7MUQ3M0E7MDNCNTswM0I1OworMUQ3M0I7MUQ3M0I7MUQ3M0I7MDNCNjswM0I2OworMUQ3M0M7MUQ3M0M7MUQ3M0M7MDNCNzswM0I3OworMUQ3M0Q7MUQ3M0Q7MUQ3M0Q7MDNCODswM0I4OworMUQ3M0U7MUQ3M0U7MUQ3M0U7MDNCOTswM0I5OworMUQ3M0Y7MUQ3M0Y7MUQ3M0Y7MDNCQTswM0JBOworMUQ3NDA7MUQ3NDA7MUQ3NDA7MDNCQjswM0JCOworMUQ3NDE7MUQ3NDE7MUQ3NDE7MDNCQzswM0JDOworMUQ3NDI7MUQ3NDI7MUQ3NDI7MDNCRDswM0JEOworMUQ3NDM7MUQ3NDM7MUQ3NDM7MDNCRTswM0JFOworMUQ3NDQ7MUQ3NDQ7MUQ3NDQ7MDNCRjswM0JGOworMUQ3NDU7MUQ3NDU7MUQ3NDU7MDNDMDswM0MwOworMUQ3NDY7MUQ3NDY7MUQ3NDY7MDNDMTswM0MxOworMUQ3NDc7MUQ3NDc7MUQ3NDc7MDNDMjswM0MyOworMUQ3NDg7MUQ3NDg7MUQ3NDg7MDNDMzswM0MzOworMUQ3NDk7MUQ3NDk7MUQ3NDk7MDNDNDswM0M0OworMUQ3NEE7MUQ3NEE7MUQ3NEE7MDNDNTswM0M1OworMUQ3NEI7MUQ3NEI7MUQ3NEI7MDNDNjswM0M2OworMUQ3NEM7MUQ3NEM7MUQ3NEM7MDNDNzswM0M3OworMUQ3NEQ7MUQ3NEQ7MUQ3NEQ7MDNDODswM0M4OworMUQ3NEU7MUQ3NEU7MUQ3NEU7MDNDOTswM0M5OworMUQ3NEY7MUQ3NEY7MUQ3NEY7MjIwMjsyMjAyOworMUQ3NTA7MUQ3NTA7MUQ3NTA7MDNCNTswM0I1OworMUQ3NTE7MUQ3NTE7MUQ3NTE7MDNCODswM0I4OworMUQ3NTI7MUQ3NTI7MUQ3NTI7MDNCQTswM0JBOworMUQ3NTM7MUQ3NTM7MUQ3NTM7MDNDNjswM0M2OworMUQ3NTQ7MUQ3NTQ7MUQ3NTQ7MDNDMTswM0MxOworMUQ3NTU7MUQ3NTU7MUQ3NTU7MDNDMDswM0MwOworMUQ3NTY7MUQ3NTY7MUQ3NTY7MDM5MTswMzkxOworMUQ3NTc7MUQ3NTc7MUQ3NTc7MDM5MjswMzkyOworMUQ3NTg7MUQ3NTg7MUQ3NTg7MDM5MzswMzkzOworMUQ3NTk7MUQ3NTk7MUQ3NTk7MDM5NDswMzk0OworMUQ3NUE7MUQ3NUE7MUQ3NUE7MDM5NTswMzk1OworMUQ3NUI7MUQ3NUI7MUQ3NUI7MDM5NjswMzk2OworMUQ3NUM7MUQ3NUM7MUQ3NUM7MDM5NzswMzk3OworMUQ3NUQ7MUQ3NUQ7MUQ3NUQ7MDM5ODswMzk4OworMUQ3NUU7MUQ3NUU7MUQ3NUU7MDM5OTswMzk5OworMUQ3NUY7MUQ3NUY7MUQ3NUY7MDM5QTswMzlBOworMUQ3NjA7MUQ3NjA7MUQ3NjA7MDM5QjswMzlCOworMUQ3NjE7MUQ3NjE7MUQ3NjE7MDM5QzswMzlDOworMUQ3NjI7MUQ3NjI7MUQ3NjI7MDM5RDswMzlEOworMUQ3NjM7MUQ3NjM7MUQ3NjM7MDM5RTswMzlFOworMUQ3NjQ7MUQ3NjQ7MUQ3NjQ7MDM5RjswMzlGOworMUQ3NjU7MUQ3NjU7MUQ3NjU7MDNBMDswM0EwOworMUQ3NjY7MUQ3NjY7MUQ3NjY7MDNBMTswM0ExOworMUQ3Njc7MUQ3Njc7MUQ3Njc7MDM5ODswMzk4OworMUQ3Njg7MUQ3Njg7MUQ3Njg7MDNBMzswM0EzOworMUQ3Njk7MUQ3Njk7MUQ3Njk7MDNBNDswM0E0OworMUQ3NkE7MUQ3NkE7MUQ3NkE7MDNBNTswM0E1OworMUQ3NkI7MUQ3NkI7MUQ3NkI7MDNBNjswM0E2OworMUQ3NkM7MUQ3NkM7MUQ3NkM7MDNBNzswM0E3OworMUQ3NkQ7MUQ3NkQ7MUQ3NkQ7MDNBODswM0E4OworMUQ3NkU7MUQ3NkU7MUQ3NkU7MDNBOTswM0E5OworMUQ3NkY7MUQ3NkY7MUQ3NkY7MjIwNzsyMjA3OworMUQ3NzA7MUQ3NzA7MUQ3NzA7MDNCMTswM0IxOworMUQ3NzE7MUQ3NzE7MUQ3NzE7MDNCMjswM0IyOworMUQ3NzI7MUQ3NzI7MUQ3NzI7MDNCMzswM0IzOworMUQ3NzM7MUQ3NzM7MUQ3NzM7MDNCNDswM0I0OworMUQ3NzQ7MUQ3NzQ7MUQ3NzQ7MDNCNTswM0I1OworMUQ3NzU7MUQ3NzU7MUQ3NzU7MDNCNjswM0I2OworMUQ3NzY7MUQ3NzY7MUQ3NzY7MDNCNzswM0I3OworMUQ3Nzc7MUQ3Nzc7MUQ3Nzc7MDNCODswM0I4OworMUQ3Nzg7MUQ3Nzg7MUQ3Nzg7MDNCOTswM0I5OworMUQ3Nzk7MUQ3Nzk7MUQ3Nzk7MDNCQTswM0JBOworMUQ3N0E7MUQ3N0E7MUQ3N0E7MDNCQjswM0JCOworMUQ3N0I7MUQ3N0I7MUQ3N0I7MDNCQzswM0JDOworMUQ3N0M7MUQ3N0M7MUQ3N0M7MDNCRDswM0JEOworMUQ3N0Q7MUQ3N0Q7MUQ3N0Q7MDNCRTswM0JFOworMUQ3N0U7MUQ3N0U7MUQ3N0U7MDNCRjswM0JGOworMUQ3N0Y7MUQ3N0Y7MUQ3N0Y7MDNDMDswM0MwOworMUQ3ODA7MUQ3ODA7MUQ3ODA7MDNDMTswM0MxOworMUQ3ODE7MUQ3ODE7MUQ3ODE7MDNDMjswM0MyOworMUQ3ODI7MUQ3ODI7MUQ3ODI7MDNDMzswM0MzOworMUQ3ODM7MUQ3ODM7MUQ3ODM7MDNDNDswM0M0OworMUQ3ODQ7MUQ3ODQ7MUQ3ODQ7MDNDNTswM0M1OworMUQ3ODU7MUQ3ODU7MUQ3ODU7MDNDNjswM0M2OworMUQ3ODY7MUQ3ODY7MUQ3ODY7MDNDNzswM0M3OworMUQ3ODc7MUQ3ODc7MUQ3ODc7MDNDODswM0M4OworMUQ3ODg7MUQ3ODg7MUQ3ODg7MDNDOTswM0M5OworMUQ3ODk7MUQ3ODk7MUQ3ODk7MjIwMjsyMjAyOworMUQ3OEE7MUQ3OEE7MUQ3OEE7MDNCNTswM0I1OworMUQ3OEI7MUQ3OEI7MUQ3OEI7MDNCODswM0I4OworMUQ3OEM7MUQ3OEM7MUQ3OEM7MDNCQTswM0JBOworMUQ3OEQ7MUQ3OEQ7MUQ3OEQ7MDNDNjswM0M2OworMUQ3OEU7MUQ3OEU7MUQ3OEU7MDNDMTswM0MxOworMUQ3OEY7MUQ3OEY7MUQ3OEY7MDNDMDswM0MwOworMUQ3OTA7MUQ3OTA7MUQ3OTA7MDM5MTswMzkxOworMUQ3OTE7MUQ3OTE7MUQ3OTE7MDM5MjswMzkyOworMUQ3OTI7MUQ3OTI7MUQ3OTI7MDM5MzswMzkzOworMUQ3OTM7MUQ3OTM7MUQ3OTM7MDM5NDswMzk0OworMUQ3OTQ7MUQ3OTQ7MUQ3OTQ7MDM5NTswMzk1OworMUQ3OTU7MUQ3OTU7MUQ3OTU7MDM5NjswMzk2OworMUQ3OTY7MUQ3OTY7MUQ3OTY7MDM5NzswMzk3OworMUQ3OTc7MUQ3OTc7MUQ3OTc7MDM5ODswMzk4OworMUQ3OTg7MUQ3OTg7MUQ3OTg7MDM5OTswMzk5OworMUQ3OTk7MUQ3OTk7MUQ3OTk7MDM5QTswMzlBOworMUQ3OUE7MUQ3OUE7MUQ3OUE7MDM5QjswMzlCOworMUQ3OUI7MUQ3OUI7MUQ3OUI7MDM5QzswMzlDOworMUQ3OUM7MUQ3OUM7MUQ3OUM7MDM5RDswMzlEOworMUQ3OUQ7MUQ3OUQ7MUQ3OUQ7MDM5RTswMzlFOworMUQ3OUU7MUQ3OUU7MUQ3OUU7MDM5RjswMzlGOworMUQ3OUY7MUQ3OUY7MUQ3OUY7MDNBMDswM0EwOworMUQ3QTA7MUQ3QTA7MUQ3QTA7MDNBMTswM0ExOworMUQ3QTE7MUQ3QTE7MUQ3QTE7MDM5ODswMzk4OworMUQ3QTI7MUQ3QTI7MUQ3QTI7MDNBMzswM0EzOworMUQ3QTM7MUQ3QTM7MUQ3QTM7MDNBNDswM0E0OworMUQ3QTQ7MUQ3QTQ7MUQ3QTQ7MDNBNTswM0E1OworMUQ3QTU7MUQ3QTU7MUQ3QTU7MDNBNjswM0E2OworMUQ3QTY7MUQ3QTY7MUQ3QTY7MDNBNzswM0E3OworMUQ3QTc7MUQ3QTc7MUQ3QTc7MDNBODswM0E4OworMUQ3QTg7MUQ3QTg7MUQ3QTg7MDNBOTswM0E5OworMUQ3QTk7MUQ3QTk7MUQ3QTk7MjIwNzsyMjA3OworMUQ3QUE7MUQ3QUE7MUQ3QUE7MDNCMTswM0IxOworMUQ3QUI7MUQ3QUI7MUQ3QUI7MDNCMjswM0IyOworMUQ3QUM7MUQ3QUM7MUQ3QUM7MDNCMzswM0IzOworMUQ3QUQ7MUQ3QUQ7MUQ3QUQ7MDNCNDswM0I0OworMUQ3QUU7MUQ3QUU7MUQ3QUU7MDNCNTswM0I1OworMUQ3QUY7MUQ3QUY7MUQ3QUY7MDNCNjswM0I2OworMUQ3QjA7MUQ3QjA7MUQ3QjA7MDNCNzswM0I3OworMUQ3QjE7MUQ3QjE7MUQ3QjE7MDNCODswM0I4OworMUQ3QjI7MUQ3QjI7MUQ3QjI7MDNCOTswM0I5OworMUQ3QjM7MUQ3QjM7MUQ3QjM7MDNCQTswM0JBOworMUQ3QjQ7MUQ3QjQ7MUQ3QjQ7MDNCQjswM0JCOworMUQ3QjU7MUQ3QjU7MUQ3QjU7MDNCQzswM0JDOworMUQ3QjY7MUQ3QjY7MUQ3QjY7MDNCRDswM0JEOworMUQ3Qjc7MUQ3Qjc7MUQ3Qjc7MDNCRTswM0JFOworMUQ3Qjg7MUQ3Qjg7MUQ3Qjg7MDNCRjswM0JGOworMUQ3Qjk7MUQ3Qjk7MUQ3Qjk7MDNDMDswM0MwOworMUQ3QkE7MUQ3QkE7MUQ3QkE7MDNDMTswM0MxOworMUQ3QkI7MUQ3QkI7MUQ3QkI7MDNDMjswM0MyOworMUQ3QkM7MUQ3QkM7MUQ3QkM7MDNDMzswM0MzOworMUQ3QkQ7MUQ3QkQ7MUQ3QkQ7MDNDNDswM0M0OworMUQ3QkU7MUQ3QkU7MUQ3QkU7MDNDNTswM0M1OworMUQ3QkY7MUQ3QkY7MUQ3QkY7MDNDNjswM0M2OworMUQ3QzA7MUQ3QzA7MUQ3QzA7MDNDNzswM0M3OworMUQ3QzE7MUQ3QzE7MUQ3QzE7MDNDODswM0M4OworMUQ3QzI7MUQ3QzI7MUQ3QzI7MDNDOTswM0M5OworMUQ3QzM7MUQ3QzM7MUQ3QzM7MjIwMjsyMjAyOworMUQ3QzQ7MUQ3QzQ7MUQ3QzQ7MDNCNTswM0I1OworMUQ3QzU7MUQ3QzU7MUQ3QzU7MDNCODswM0I4OworMUQ3QzY7MUQ3QzY7MUQ3QzY7MDNCQTswM0JBOworMUQ3Qzc7MUQ3Qzc7MUQ3Qzc7MDNDNjswM0M2OworMUQ3Qzg7MUQ3Qzg7MUQ3Qzg7MDNDMTswM0MxOworMUQ3Qzk7MUQ3Qzk7MUQ3Qzk7MDNDMDswM0MwOworMUQ3Q0U7MUQ3Q0U7MUQ3Q0U7MDAzMDswMDMwOworMUQ3Q0Y7MUQ3Q0Y7MUQ3Q0Y7MDAzMTswMDMxOworMUQ3RDA7MUQ3RDA7MUQ3RDA7MDAzMjswMDMyOworMUQ3RDE7MUQ3RDE7MUQ3RDE7MDAzMzswMDMzOworMUQ3RDI7MUQ3RDI7MUQ3RDI7MDAzNDswMDM0OworMUQ3RDM7MUQ3RDM7MUQ3RDM7MDAzNTswMDM1OworMUQ3RDQ7MUQ3RDQ7MUQ3RDQ7MDAzNjswMDM2OworMUQ3RDU7MUQ3RDU7MUQ3RDU7MDAzNzswMDM3OworMUQ3RDY7MUQ3RDY7MUQ3RDY7MDAzODswMDM4OworMUQ3RDc7MUQ3RDc7MUQ3RDc7MDAzOTswMDM5OworMUQ3RDg7MUQ3RDg7MUQ3RDg7MDAzMDswMDMwOworMUQ3RDk7MUQ3RDk7MUQ3RDk7MDAzMTswMDMxOworMUQ3REE7MUQ3REE7MUQ3REE7MDAzMjswMDMyOworMUQ3REI7MUQ3REI7MUQ3REI7MDAzMzswMDMzOworMUQ3REM7MUQ3REM7MUQ3REM7MDAzNDswMDM0OworMUQ3REQ7MUQ3REQ7MUQ3REQ7MDAzNTswMDM1OworMUQ3REU7MUQ3REU7MUQ3REU7MDAzNjswMDM2OworMUQ3REY7MUQ3REY7MUQ3REY7MDAzNzswMDM3OworMUQ3RTA7MUQ3RTA7MUQ3RTA7MDAzODswMDM4OworMUQ3RTE7MUQ3RTE7MUQ3RTE7MDAzOTswMDM5OworMUQ3RTI7MUQ3RTI7MUQ3RTI7MDAzMDswMDMwOworMUQ3RTM7MUQ3RTM7MUQ3RTM7MDAzMTswMDMxOworMUQ3RTQ7MUQ3RTQ7MUQ3RTQ7MDAzMjswMDMyOworMUQ3RTU7MUQ3RTU7MUQ3RTU7MDAzMzswMDMzOworMUQ3RTY7MUQ3RTY7MUQ3RTY7MDAzNDswMDM0OworMUQ3RTc7MUQ3RTc7MUQ3RTc7MDAzNTswMDM1OworMUQ3RTg7MUQ3RTg7MUQ3RTg7MDAzNjswMDM2OworMUQ3RTk7MUQ3RTk7MUQ3RTk7MDAzNzswMDM3OworMUQ3RUE7MUQ3RUE7MUQ3RUE7MDAzODswMDM4OworMUQ3RUI7MUQ3RUI7MUQ3RUI7MDAzOTswMDM5OworMUQ3RUM7MUQ3RUM7MUQ3RUM7MDAzMDswMDMwOworMUQ3RUQ7MUQ3RUQ7MUQ3RUQ7MDAzMTswMDMxOworMUQ3RUU7MUQ3RUU7MUQ3RUU7MDAzMjswMDMyOworMUQ3RUY7MUQ3RUY7MUQ3RUY7MDAzMzswMDMzOworMUQ3RjA7MUQ3RjA7MUQ3RjA7MDAzNDswMDM0OworMUQ3RjE7MUQ3RjE7MUQ3RjE7MDAzNTswMDM1OworMUQ3RjI7MUQ3RjI7MUQ3RjI7MDAzNjswMDM2OworMUQ3RjM7MUQ3RjM7MUQ3RjM7MDAzNzswMDM3OworMUQ3RjQ7MUQ3RjQ7MUQ3RjQ7MDAzODswMDM4OworMUQ3RjU7MUQ3RjU7MUQ3RjU7MDAzOTswMDM5OworMUQ3RjY7MUQ3RjY7MUQ3RjY7MDAzMDswMDMwOworMUQ3Rjc7MUQ3Rjc7MUQ3Rjc7MDAzMTswMDMxOworMUQ3Rjg7MUQ3Rjg7MUQ3Rjg7MDAzMjswMDMyOworMUQ3Rjk7MUQ3Rjk7MUQ3Rjk7MDAzMzswMDMzOworMUQ3RkE7MUQ3RkE7MUQ3RkE7MDAzNDswMDM0OworMUQ3RkI7MUQ3RkI7MUQ3RkI7MDAzNTswMDM1OworMUQ3RkM7MUQ3RkM7MUQ3RkM7MDAzNjswMDM2OworMUQ3RkQ7MUQ3RkQ7MUQ3RkQ7MDAzNzswMDM3OworMUQ3RkU7MUQ3RkU7MUQ3RkU7MDAzODswMDM4OworMUQ3RkY7MUQ3RkY7MUQ3RkY7MDAzOTswMDM5OworMkY4MDA7NEUzRDs0RTNEOzRFM0Q7NEUzRDsKKzJGODAxOzRFMzg7NEUzODs0RTM4OzRFMzg7CisyRjgwMjs0RTQxOzRFNDE7NEU0MTs0RTQxOworMkY4MDM7MjAxMjI7MjAxMjI7MjAxMjI7MjAxMjI7CisyRjgwNDs0RjYwOzRGNjA7NEY2MDs0RjYwOworMkY4MDU7NEZBRTs0RkFFOzRGQUU7NEZBRTsKKzJGODA2OzRGQkI7NEZCQjs0RkJCOzRGQkI7CisyRjgwNzs1MDAyOzUwMDI7NTAwMjs1MDAyOworMkY4MDg7NTA3QTs1MDdBOzUwN0E7NTA3QTsKKzJGODA5OzUwOTk7NTA5OTs1MDk5OzUwOTk7CisyRjgwQTs1MEU3OzUwRTc7NTBFNzs1MEU3OworMkY4MEI7NTBDRjs1MENGOzUwQ0Y7NTBDRjsKKzJGODBDOzM0OUU7MzQ5RTszNDlFOzM0OUU7CisyRjgwRDsyMDYzQTsyMDYzQTsyMDYzQTsyMDYzQTsKKzJGODBFOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CisyRjgwRjs1MTU0OzUxNTQ7NTE1NDs1MTU0OworMkY4MTA7NTE2NDs1MTY0OzUxNjQ7NTE2NDsKKzJGODExOzUxNzc7NTE3Nzs1MTc3OzUxNzc7CisyRjgxMjsyMDUxQzsyMDUxQzsyMDUxQzsyMDUxQzsKKzJGODEzOzM0Qjk7MzRCOTszNEI5OzM0Qjk7CisyRjgxNDs1MTY3OzUxNjc7NTE2Nzs1MTY3OworMkY4MTU7NTE4RDs1MThEOzUxOEQ7NTE4RDsKKzJGODE2OzIwNTRCOzIwNTRCOzIwNTRCOzIwNTRCOworMkY4MTc7NTE5Nzs1MTk3OzUxOTc7NTE5NzsKKzJGODE4OzUxQTQ7NTFBNDs1MUE0OzUxQTQ7CisyRjgxOTs0RUNDOzRFQ0M7NEVDQzs0RUNDOworMkY4MUE7NTFBQzs1MUFDOzUxQUM7NTFBQzsKKzJGODFCOzUxQjU7NTFCNTs1MUI1OzUxQjU7CisyRjgxQzsyOTFERjsyOTFERjsyOTFERjsyOTFERjsKKzJGODFEOzUxRjU7NTFGNTs1MUY1OzUxRjU7CisyRjgxRTs1MjAzOzUyMDM7NTIwMzs1MjAzOworMkY4MUY7MzRERjszNERGOzM0REY7MzRERjsKKzJGODIwOzUyM0I7NTIzQjs1MjNCOzUyM0I7CisyRjgyMTs1MjQ2OzUyNDY7NTI0Njs1MjQ2OworMkY4MjI7NTI3Mjs1MjcyOzUyNzI7NTI3MjsKKzJGODIzOzUyNzc7NTI3Nzs1Mjc3OzUyNzc7CisyRjgyNDszNTE1OzM1MTU7MzUxNTszNTE1OworMkY4MjU7NTJDNzs1MkM3OzUyQzc7NTJDNzsKKzJGODI2OzUyQzk7NTJDOTs1MkM5OzUyQzk7CisyRjgyNzs1MkU0OzUyRTQ7NTJFNDs1MkU0OworMkY4Mjg7NTJGQTs1MkZBOzUyRkE7NTJGQTsKKzJGODI5OzUzMDU7NTMwNTs1MzA1OzUzMDU7CisyRjgyQTs1MzA2OzUzMDY7NTMwNjs1MzA2OworMkY4MkI7NTMxNzs1MzE3OzUzMTc7NTMxNzsKKzJGODJDOzUzNDk7NTM0OTs1MzQ5OzUzNDk7CisyRjgyRDs1MzUxOzUzNTE7NTM1MTs1MzUxOworMkY4MkU7NTM1QTs1MzVBOzUzNUE7NTM1QTsKKzJGODJGOzUzNzM7NTM3Mzs1MzczOzUzNzM7CisyRjgzMDs1MzdEOzUzN0Q7NTM3RDs1MzdEOworMkY4MzE7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODMyOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzMzs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzQ7MjBBMkM7MjBBMkM7MjBBMkM7MjBBMkM7CisyRjgzNTs3MDcwOzcwNzA7NzA3MDs3MDcwOworMkY4MzY7NTNDQTs1M0NBOzUzQ0E7NTNDQTsKKzJGODM3OzUzREY7NTNERjs1M0RGOzUzREY7CisyRjgzODsyMEI2MzsyMEI2MzsyMEI2MzsyMEI2MzsKKzJGODM5OzUzRUI7NTNFQjs1M0VCOzUzRUI7CisyRjgzQTs1M0YxOzUzRjE7NTNGMTs1M0YxOworMkY4M0I7NTQwNjs1NDA2OzU0MDY7NTQwNjsKKzJGODNDOzU0OUU7NTQ5RTs1NDlFOzU0OUU7CisyRjgzRDs1NDM4OzU0Mzg7NTQzODs1NDM4OworMkY4M0U7NTQ0ODs1NDQ4OzU0NDg7NTQ0ODsKKzJGODNGOzU0Njg7NTQ2ODs1NDY4OzU0Njg7CisyRjg0MDs1NEEyOzU0QTI7NTRBMjs1NEEyOworMkY4NDE7NTRGNjs1NEY2OzU0RjY7NTRGNjsKKzJGODQyOzU1MTA7NTUxMDs1NTEwOzU1MTA7CisyRjg0Mzs1NTUzOzU1NTM7NTU1Mzs1NTUzOworMkY4NDQ7NTU2Mzs1NTYzOzU1NjM7NTU2MzsKKzJGODQ1OzU1ODQ7NTU4NDs1NTg0OzU1ODQ7CisyRjg0Njs1NTg0OzU1ODQ7NTU4NDs1NTg0OworMkY4NDc7NTU5OTs1NTk5OzU1OTk7NTU5OTsKKzJGODQ4OzU1QUI7NTVBQjs1NUFCOzU1QUI7CisyRjg0OTs1NUIzOzU1QjM7NTVCMzs1NUIzOworMkY4NEE7NTVDMjs1NUMyOzU1QzI7NTVDMjsKKzJGODRCOzU3MTY7NTcxNjs1NzE2OzU3MTY7CisyRjg0Qzs1NjA2OzU2MDY7NTYwNjs1NjA2OworMkY4NEQ7NTcxNzs1NzE3OzU3MTc7NTcxNzsKKzJGODRFOzU2NTE7NTY1MTs1NjUxOzU2NTE7CisyRjg0Rjs1Njc0OzU2NzQ7NTY3NDs1Njc0OworMkY4NTA7NTIwNzs1MjA3OzUyMDc7NTIwNzsKKzJGODUxOzU4RUU7NThFRTs1OEVFOzU4RUU7CisyRjg1Mjs1N0NFOzU3Q0U7NTdDRTs1N0NFOworMkY4NTM7NTdGNDs1N0Y0OzU3RjQ7NTdGNDsKKzJGODU0OzU4MEQ7NTgwRDs1ODBEOzU4MEQ7CisyRjg1NTs1NzhCOzU3OEI7NTc4Qjs1NzhCOworMkY4NTY7NTgzMjs1ODMyOzU4MzI7NTgzMjsKKzJGODU3OzU4MzE7NTgzMTs1ODMxOzU4MzE7CisyRjg1ODs1OEFDOzU4QUM7NThBQzs1OEFDOworMkY4NTk7MjE0RTQ7MjE0RTQ7MjE0RTQ7MjE0RTQ7CisyRjg1QTs1OEYyOzU4RjI7NThGMjs1OEYyOworMkY4NUI7NThGNzs1OEY3OzU4Rjc7NThGNzsKKzJGODVDOzU5MDY7NTkwNjs1OTA2OzU5MDY7CisyRjg1RDs1OTFBOzU5MUE7NTkxQTs1OTFBOworMkY4NUU7NTkyMjs1OTIyOzU5MjI7NTkyMjsKKzJGODVGOzU5NjI7NTk2Mjs1OTYyOzU5NjI7CisyRjg2MDsyMTZBODsyMTZBODsyMTZBODsyMTZBODsKKzJGODYxOzIxNkVBOzIxNkVBOzIxNkVBOzIxNkVBOworMkY4NjI7NTlFQzs1OUVDOzU5RUM7NTlFQzsKKzJGODYzOzVBMUI7NUExQjs1QTFCOzVBMUI7CisyRjg2NDs1QTI3OzVBMjc7NUEyNzs1QTI3OworMkY4NjU7NTlEODs1OUQ4OzU5RDg7NTlEODsKKzJGODY2OzVBNjY7NUE2Njs1QTY2OzVBNjY7CisyRjg2NzszNkVFOzM2RUU7MzZFRTszNkVFOworIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4wLjAudHh0IC0tIDJGODY4OzIxMzZBOzIxMzZBOzIxMzZBOzIxMzZBOworMkY4Njk7NUIwODs1QjA4OzVCMDg7NUIwODsKKzJGODZBOzVCM0U7NUIzRTs1QjNFOzVCM0U7CisyRjg2Qjs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkM7MjE5Qzg7MjE5Qzg7MjE5Qzg7MjE5Qzg7CisyRjg2RDs1QkMzOzVCQzM7NUJDMzs1QkMzOworMkY4NkU7NUJEODs1QkQ4OzVCRDg7NUJEODsKKzJGODZGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CisyRjg3MDs1QkYzOzVCRjM7NUJGMzs1QkYzOworMkY4NzE7MjFCMTg7MjFCMTg7MjFCMTg7MjFCMTg7CisyRjg3Mjs1QkZGOzVCRkY7NUJGRjs1QkZGOworMkY4NzM7NUMwNjs1QzA2OzVDMDY7NUMwNjsKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMC4wLnR4dCAtLSAyRjg3NDs1RjMzOzVGMzM7NUYzMzs1RjMzOworMkY4NzU7NUMyMjs1QzIyOzVDMjI7NUMyMjsKKzJGODc2OzM3ODE7Mzc4MTszNzgxOzM3ODE7CisyRjg3Nzs1QzYwOzVDNjA7NUM2MDs1QzYwOworMkY4Nzg7NUM2RTs1QzZFOzVDNkU7NUM2RTsKKzJGODc5OzVDQzA7NUNDMDs1Q0MwOzVDQzA7CisyRjg3QTs1QzhEOzVDOEQ7NUM4RDs1QzhEOworMkY4N0I7MjFERTQ7MjFERTQ7MjFERTQ7MjFERTQ7CisyRjg3Qzs1RDQzOzVENDM7NUQ0Mzs1RDQzOworMkY4N0Q7MjFERTY7MjFERTY7MjFERTY7MjFERTY7CisyRjg3RTs1RDZFOzVENkU7NUQ2RTs1RDZFOworMkY4N0Y7NUQ2Qjs1RDZCOzVENkI7NUQ2QjsKKzJGODgwOzVEN0M7NUQ3Qzs1RDdDOzVEN0M7CisyRjg4MTs1REUxOzVERTE7NURFMTs1REUxOworMkY4ODI7NURFMjs1REUyOzVERTI7NURFMjsKKzJGODgzOzM4MkY7MzgyRjszODJGOzM4MkY7CisyRjg4NDs1REZEOzVERkQ7NURGRDs1REZEOworMkY4ODU7NUUyODs1RTI4OzVFMjg7NUUyODsKKzJGODg2OzVFM0Q7NUUzRDs1RTNEOzVFM0Q7CisyRjg4Nzs1RTY5OzVFNjk7NUU2OTs1RTY5OworMkY4ODg7Mzg2MjszODYyOzM4NjI7Mzg2MjsKKzJGODg5OzIyMTgzOzIyMTgzOzIyMTgzOzIyMTgzOworMkY4OEE7Mzg3QzszODdDOzM4N0M7Mzg3QzsKKzJGODhCOzVFQjA7NUVCMDs1RUIwOzVFQjA7CisyRjg4Qzs1RUIzOzVFQjM7NUVCMzs1RUIzOworMkY4OEQ7NUVCNjs1RUI2OzVFQjY7NUVCNjsKKzJGODhFOzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CisyRjg4RjsyQTM5MjsyQTM5MjsyQTM5MjsyQTM5MjsKKzJGODkwOzVFRkU7NUVGRTs1RUZFOzVFRkU7CisyRjg5MTsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkyOzIyMzMxOzIyMzMxOzIyMzMxOzIyMzMxOworMkY4OTM7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGODk0OzVGMjI7NUYyMjs1RjIyOzVGMjI7CisyRjg5NTs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTY7MzhDNzszOEM3OzM4Qzc7MzhDNzsKKzJGODk3OzIzMkI4OzIzMkI4OzIzMkI4OzIzMkI4OworMkY4OTg7MjYxREE7MjYxREE7MjYxREE7MjYxREE7CisyRjg5OTs1RjYyOzVGNjI7NUY2Mjs1RjYyOworMkY4OUE7NUY2Qjs1RjZCOzVGNkI7NUY2QjsKKzJGODlCOzM4RTM7MzhFMzszOEUzOzM4RTM7CisyRjg5Qzs1RjlBOzVGOUE7NUY5QTs1RjlBOworMkY4OUQ7NUZDRDs1RkNEOzVGQ0Q7NUZDRDsKKzJGODlFOzVGRDc7NUZENzs1RkQ3OzVGRDc7CisyRjg5Rjs1RkY5OzVGRjk7NUZGOTs1RkY5OworMkY4QTA7NjA4MTs2MDgxOzYwODE7NjA4MTsKKzJGOEExOzM5M0E7MzkzQTszOTNBOzM5M0E7CisyRjhBMjszOTFDOzM5MUM7MzkxQzszOTFDOworMkY4QTM7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKKzJGOEE0OzIyNkQ0OzIyNkQ0OzIyNkQ0OzIyNkQ0OworMkY4QTU7NjBDNzs2MEM3OzYwQzc7NjBDNzsKKzJGOEE2OzYxNDg7NjE0ODs2MTQ4OzYxNDg7CisyRjhBNzs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QTg7NjE0RTs2MTRFOzYxNEU7NjE0RTsKKzJGOEE5OzYxNEM7NjE0Qzs2MTRDOzYxNEM7CisyRjhBQTs2MTdBOzYxN0E7NjE3QTs2MTdBOworMkY4QUI7NjE4RTs2MThFOzYxOEU7NjE4RTsKKzJGOEFDOzYxQjI7NjFCMjs2MUIyOzYxQjI7CisyRjhBRDs2MUE0OzYxQTQ7NjFBNDs2MUE0OworMkY4QUU7NjFBRjs2MUFGOzYxQUY7NjFBRjsKKzJGOEFGOzYxREU7NjFERTs2MURFOzYxREU7CisyRjhCMDs2MUYyOzYxRjI7NjFGMjs2MUYyOworMkY4QjE7NjFGNjs2MUY2OzYxRjY7NjFGNjsKKzJGOEIyOzYyMTA7NjIxMDs2MjEwOzYyMTA7CisyRjhCMzs2MjFCOzYyMUI7NjIxQjs2MjFCOworMkY4QjQ7NjI1RDs2MjVEOzYyNUQ7NjI1RDsKKzJGOEI1OzYyQjE7NjJCMTs2MkIxOzYyQjE7CisyRjhCNjs2MkQ0OzYyRDQ7NjJENDs2MkQ0OworMkY4Qjc7NjM1MDs2MzUwOzYzNTA7NjM1MDsKKzJGOEI4OzIyQjBDOzIyQjBDOzIyQjBDOzIyQjBDOworMkY4Qjk7NjMzRDs2MzNEOzYzM0Q7NjMzRDsKKzJGOEJBOzYyRkM7NjJGQzs2MkZDOzYyRkM7CisyRjhCQjs2MzY4OzYzNjg7NjM2ODs2MzY4OworMkY4QkM7NjM4Mzs2MzgzOzYzODM7NjM4MzsKKzJGOEJEOzYzRTQ7NjNFNDs2M0U0OzYzRTQ7CisyRjhCRTsyMkJGMTsyMkJGMTsyMkJGMTsyMkJGMTsKKzJGOEJGOzY0MjI7NjQyMjs2NDIyOzY0MjI7CisyRjhDMDs2M0M1OzYzQzU7NjNDNTs2M0M1OworMkY4QzE7NjNBOTs2M0E5OzYzQTk7NjNBOTsKKzJGOEMyOzNBMkU7M0EyRTszQTJFOzNBMkU7CisyRjhDMzs2NDY5OzY0Njk7NjQ2OTs2NDY5OworMkY4QzQ7NjQ3RTs2NDdFOzY0N0U7NjQ3RTsKKzJGOEM1OzY0OUQ7NjQ5RDs2NDlEOzY0OUQ7CisyRjhDNjs2NDc3OzY0Nzc7NjQ3Nzs2NDc3OworMkY4Qzc7M0E2QzszQTZDOzNBNkM7M0E2QzsKKzJGOEM4OzY1NEY7NjU0Rjs2NTRGOzY1NEY7CisyRjhDOTs2NTZDOzY1NkM7NjU2Qzs2NTZDOworMkY4Q0E7MjMwMEE7MjMwMEE7MjMwMEE7MjMwMEE7CisyRjhDQjs2NUUzOzY1RTM7NjVFMzs2NUUzOworMkY4Q0M7NjZGODs2NkY4OzY2Rjg7NjZGODsKKzJGOENEOzY2NDk7NjY0OTs2NjQ5OzY2NDk7CisyRjhDRTszQjE5OzNCMTk7M0IxOTszQjE5OworMkY4Q0Y7NjY5MTs2NjkxOzY2OTE7NjY5MTsKKzJGOEQwOzNCMDg7M0IwODszQjA4OzNCMDg7CisyRjhEMTszQUU0OzNBRTQ7M0FFNDszQUU0OworMkY4RDI7NTE5Mjs1MTkyOzUxOTI7NTE5MjsKKzJGOEQzOzUxOTU7NTE5NTs1MTk1OzUxOTU7CisyRjhENDs2NzAwOzY3MDA7NjcwMDs2NzAwOworMkY4RDU7NjY5Qzs2NjlDOzY2OUM7NjY5QzsKKzJGOEQ2OzgwQUQ7ODBBRDs4MEFEOzgwQUQ7CisyRjhENzs0M0Q5OzQzRDk7NDNEOTs0M0Q5OworMkY4RDg7NjcxNzs2NzE3OzY3MTc7NjcxNzsKKzJGOEQ5OzY3MUI7NjcxQjs2NzFCOzY3MUI7CisyRjhEQTs2NzIxOzY3MjE7NjcyMTs2NzIxOworMkY4REI7Njc1RTs2NzVFOzY3NUU7Njc1RTsKKzJGOERDOzY3NTM7Njc1Mzs2NzUzOzY3NTM7CisyRjhERDsyMzNDMzsyMzNDMzsyMzNDMzsyMzNDMzsKKzJGOERFOzNCNDk7M0I0OTszQjQ5OzNCNDk7CisyRjhERjs2N0ZBOzY3RkE7NjdGQTs2N0ZBOworMkY4RTA7Njc4NTs2Nzg1OzY3ODU7Njc4NTsKKzJGOEUxOzY4NTI7Njg1Mjs2ODUyOzY4NTI7CisyRjhFMjs2ODg1OzY4ODU7Njg4NTs2ODg1OworMkY4RTM7MjM0NkQ7MjM0NkQ7MjM0NkQ7MjM0NkQ7CisyRjhFNDs2ODhFOzY4OEU7Njg4RTs2ODhFOworMkY4RTU7NjgxRjs2ODFGOzY4MUY7NjgxRjsKKzJGOEU2OzY5MTQ7NjkxNDs2OTE0OzY5MTQ7CisyRjhFNzszQjlEOzNCOUQ7M0I5RDszQjlEOworMkY4RTg7Njk0Mjs2OTQyOzY5NDI7Njk0MjsKKzJGOEU5OzY5QTM7NjlBMzs2OUEzOzY5QTM7CisyRjhFQTs2OUVBOzY5RUE7NjlFQTs2OUVBOworMkY4RUI7NkFBODs2QUE4OzZBQTg7NkFBODsKKzJGOEVDOzIzNkEzOzIzNkEzOzIzNkEzOzIzNkEzOworMkY4RUQ7NkFEQjs2QURCOzZBREI7NkFEQjsKKzJGOEVFOzNDMTg7M0MxODszQzE4OzNDMTg7CisyRjhFRjs2QjIxOzZCMjE7NkIyMTs2QjIxOworMkY4RjA7MjM4QTc7MjM4QTc7MjM4QTc7MjM4QTc7CisyRjhGMTs2QjU0OzZCNTQ7NkI1NDs2QjU0OworMkY4RjI7M0M0RTszQzRFOzNDNEU7M0M0RTsKKzJGOEYzOzZCNzI7NkI3Mjs2QjcyOzZCNzI7CisyRjhGNDs2QjlGOzZCOUY7NkI5Rjs2QjlGOworMkY4RjU7NkJCQTs2QkJBOzZCQkE7NkJCQTsKKzJGOEY2OzZCQkI7NkJCQjs2QkJCOzZCQkI7CisyRjhGNzsyM0E4RDsyM0E4RDsyM0E4RDsyM0E4RDsKKzJGOEY4OzIxRDBCOzIxRDBCOzIxRDBCOzIxRDBCOworMkY4Rjk7MjNBRkE7MjNBRkE7MjNBRkE7MjNBRkE7CisyRjhGQTs2QzRFOzZDNEU7NkM0RTs2QzRFOworMkY4RkI7MjNDQkM7MjNDQkM7MjNDQkM7MjNDQkM7CisyRjhGQzs2Q0JGOzZDQkY7NkNCRjs2Q0JGOworMkY4RkQ7NkNDRDs2Q0NEOzZDQ0Q7NkNDRDsKKzJGOEZFOzZDNjc7NkM2Nzs2QzY3OzZDNjc7CisyRjhGRjs2RDE2OzZEMTY7NkQxNjs2RDE2OworMkY5MDA7NkQzRTs2RDNFOzZEM0U7NkQzRTsKKzJGOTAxOzZENzc7NkQ3Nzs2RDc3OzZENzc7CisyRjkwMjs2RDQxOzZENDE7NkQ0MTs2RDQxOworMkY5MDM7NkQ2OTs2RDY5OzZENjk7NkQ2OTsKKzJGOTA0OzZENzg7NkQ3ODs2RDc4OzZENzg7CisyRjkwNTs2RDg1OzZEODU7NkQ4NTs2RDg1OworMkY5MDY7MjNEMUU7MjNEMUU7MjNEMUU7MjNEMUU7CisyRjkwNzs2RDM0OzZEMzQ7NkQzNDs2RDM0OworMkY5MDg7NkUyRjs2RTJGOzZFMkY7NkUyRjsKKzJGOTA5OzZFNkU7NkU2RTs2RTZFOzZFNkU7CisyRjkwQTszRDMzOzNEMzM7M0QzMzszRDMzOworMkY5MEI7NkVDQjs2RUNCOzZFQ0I7NkVDQjsKKzJGOTBDOzZFQzc7NkVDNzs2RUM3OzZFQzc7CisyRjkwRDsyM0VEMTsyM0VEMTsyM0VEMTsyM0VEMTsKKzJGOTBFOzZERjk7NkRGOTs2REY5OzZERjk7CisyRjkwRjs2RjZFOzZGNkU7NkY2RTs2RjZFOworMkY5MTA7MjNGNUU7MjNGNUU7MjNGNUU7MjNGNUU7CisyRjkxMTsyM0Y4RTsyM0Y4RTsyM0Y4RTsyM0Y4RTsKKzJGOTEyOzZGQzY7NkZDNjs2RkM2OzZGQzY7CisyRjkxMzs3MDM5OzcwMzk7NzAzOTs3MDM5OworMkY5MTQ7NzAxRTs3MDFFOzcwMUU7NzAxRTsKKzJGOTE1OzcwMUI7NzAxQjs3MDFCOzcwMUI7CisyRjkxNjszRDk2OzNEOTY7M0Q5NjszRDk2OworMkY5MTc7NzA0QTs3MDRBOzcwNEE7NzA0QTsKKzJGOTE4OzcwN0Q7NzA3RDs3MDdEOzcwN0Q7CisyRjkxOTs3MDc3OzcwNzc7NzA3Nzs3MDc3OworMkY5MUE7NzBBRDs3MEFEOzcwQUQ7NzBBRDsKKzJGOTFCOzIwNTI1OzIwNTI1OzIwNTI1OzIwNTI1OworMkY5MUM7NzE0NTs3MTQ1OzcxNDU7NzE0NTsKKzJGOTFEOzI0MjYzOzI0MjYzOzI0MjYzOzI0MjYzOworMkY5MUU7NzE5Qzs3MTlDOzcxOUM7NzE5QzsKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMC4wLnR4dCAtLSAyRjkxRjs0M0FCOzQzQUI7NDNBQjs0M0FCOworMkY5MjA7NzIyODs3MjI4OzcyMjg7NzIyODsKKzJGOTIxOzcyMzU7NzIzNTs3MjM1OzcyMzU7CisyRjkyMjs3MjUwOzcyNTA7NzI1MDs3MjUwOworMkY5MjM7MjQ2MDg7MjQ2MDg7MjQ2MDg7MjQ2MDg7CisyRjkyNDs3MjgwOzcyODA7NzI4MDs3MjgwOworMkY5MjU7NzI5NTs3Mjk1OzcyOTU7NzI5NTsKKzJGOTI2OzI0NzM1OzI0NzM1OzI0NzM1OzI0NzM1OworMkY5Mjc7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7CisyRjkyODs3MzdBOzczN0E7NzM3QTs3MzdBOworMkY5Mjk7NzM4Qjs3MzhCOzczOEI7NzM4QjsKKzJGOTJBOzNFQUM7M0VBQzszRUFDOzNFQUM7CisyRjkyQjs3M0E1OzczQTU7NzNBNTs3M0E1OworMkY5MkM7M0VCODszRUI4OzNFQjg7M0VCODsKKzJGOTJEOzNFQjg7M0VCODszRUI4OzNFQjg7CisyRjkyRTs3NDQ3Ozc0NDc7NzQ0Nzs3NDQ3OworMkY5MkY7NzQ1Qzs3NDVDOzc0NUM7NzQ1QzsKKzJGOTMwOzc0NzE7NzQ3MTs3NDcxOzc0NzE7CisyRjkzMTs3NDg1Ozc0ODU7NzQ4NTs3NDg1OworMkY5MzI7NzRDQTs3NENBOzc0Q0E7NzRDQTsKKzJGOTMzOzNGMUI7M0YxQjszRjFCOzNGMUI7CisyRjkzNDs3NTI0Ozc1MjQ7NzUyNDs3NTI0OworMkY5MzU7MjRDMzY7MjRDMzY7MjRDMzY7MjRDMzY7CisyRjkzNjs3NTNFOzc1M0U7NzUzRTs3NTNFOworMkY5Mzc7MjRDOTI7MjRDOTI7MjRDOTI7MjRDOTI7CisyRjkzODs3NTcwOzc1NzA7NzU3MDs3NTcwOworMkY5Mzk7MjIxOUY7MjIxOUY7MjIxOUY7MjIxOUY7CisyRjkzQTs3NjEwOzc2MTA7NzYxMDs3NjEwOworMkY5M0I7MjRGQTE7MjRGQTE7MjRGQTE7MjRGQTE7CisyRjkzQzsyNEZCODsyNEZCODsyNEZCODsyNEZCODsKKzJGOTNEOzI1MDQ0OzI1MDQ0OzI1MDQ0OzI1MDQ0OworMkY5M0U7M0ZGQzszRkZDOzNGRkM7M0ZGQzsKKzJGOTNGOzQwMDg7NDAwODs0MDA4OzQwMDg7CisyRjk0MDs3NkY0Ozc2RjQ7NzZGNDs3NkY0OworMkY5NDE7MjUwRjM7MjUwRjM7MjUwRjM7MjUwRjM7CisyRjk0MjsyNTBGMjsyNTBGMjsyNTBGMjsyNTBGMjsKKzJGOTQzOzI1MTE5OzI1MTE5OzI1MTE5OzI1MTE5OworMkY5NDQ7MjUxMzM7MjUxMzM7MjUxMzM7MjUxMzM7CisyRjk0NTs3NzFFOzc3MUU7NzcxRTs3NzFFOworMkY5NDY7NzcxRjs3NzFGOzc3MUY7NzcxRjsKKzJGOTQ3Ozc3MUY7NzcxRjs3NzFGOzc3MUY7CisyRjk0ODs3NzRBOzc3NEE7Nzc0QTs3NzRBOworMkY5NDk7NDAzOTs0MDM5OzQwMzk7NDAzOTsKKzJGOTRBOzc3OEI7Nzc4Qjs3NzhCOzc3OEI7CisyRjk0Qjs0MDQ2OzQwNDY7NDA0Njs0MDQ2OworMkY5NEM7NDA5Njs0MDk2OzQwOTY7NDA5NjsKKzJGOTREOzI1NDFEOzI1NDFEOzI1NDFEOzI1NDFEOworMkY5NEU7Nzg0RTs3ODRFOzc4NEU7Nzg0RTsKKzJGOTRGOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CisyRjk1MDs3OENDOzc4Q0M7NzhDQzs3OENDOworMkY5NTE7NDBFMzs0MEUzOzQwRTM7NDBFMzsKKzJGOTUyOzI1NjI2OzI1NjI2OzI1NjI2OzI1NjI2OworMkY5NTM7Nzk1Njs3OTU2Ozc5NTY7Nzk1NjsKKzJGOTU0OzI1NjlBOzI1NjlBOzI1NjlBOzI1NjlBOworMkY5NTU7MjU2QzU7MjU2QzU7MjU2QzU7MjU2QzU7CisyRjk1Njs3OThGOzc5OEY7Nzk4Rjs3OThGOworMkY5NTc7NzlFQjs3OUVCOzc5RUI7NzlFQjsKKzJGOTU4OzQxMkY7NDEyRjs0MTJGOzQxMkY7CisyRjk1OTs3QTQwOzdBNDA7N0E0MDs3QTQwOworMkY5NUE7N0E0QTs3QTRBOzdBNEE7N0E0QTsKKzJGOTVCOzdBNEY7N0E0Rjs3QTRGOzdBNEY7CisyRjk1QzsyNTk3QzsyNTk3QzsyNTk3QzsyNTk3QzsKKzJGOTVEOzI1QUE3OzI1QUE3OzI1QUE3OzI1QUE3OworMkY5NUU7MjVBQTc7MjVBQTc7MjVBQTc7MjVBQTc7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY5NUY7N0FBRTs3QUFFOzdBQUU7N0FBRTsKKzJGOTYwOzQyMDI7NDIwMjs0MjAyOzQyMDI7CisyRjk2MTsyNUJBQjsyNUJBQjsyNUJBQjsyNUJBQjsKKzJGOTYyOzdCQzY7N0JDNjs3QkM2OzdCQzY7CisyRjk2Mzs3QkM5OzdCQzk7N0JDOTs3QkM5OworMkY5NjQ7NDIyNzs0MjI3OzQyMjc7NDIyNzsKKzJGOTY1OzI1QzgwOzI1QzgwOzI1QzgwOzI1QzgwOworMkY5NjY7N0NEMjs3Q0QyOzdDRDI7N0NEMjsKKzJGOTY3OzQyQTA7NDJBMDs0MkEwOzQyQTA7CisyRjk2ODs3Q0U4OzdDRTg7N0NFODs3Q0U4OworMkY5Njk7N0NFMzs3Q0UzOzdDRTM7N0NFMzsKKzJGOTZBOzdEMDA7N0QwMDs3RDAwOzdEMDA7CisyRjk2QjsyNUY4NjsyNUY4NjsyNUY4NjsyNUY4NjsKKzJGOTZDOzdENjM7N0Q2Mzs3RDYzOzdENjM7CisyRjk2RDs0MzAxOzQzMDE7NDMwMTs0MzAxOworMkY5NkU7N0RDNzs3REM3OzdEQzc7N0RDNzsKKzJGOTZGOzdFMDI7N0UwMjs3RTAyOzdFMDI7CisyRjk3MDs3RTQ1OzdFNDU7N0U0NTs3RTQ1OworMkY5NzE7NDMzNDs0MzM0OzQzMzQ7NDMzNDsKKzJGOTcyOzI2MjI4OzI2MjI4OzI2MjI4OzI2MjI4OworMkY5NzM7MjYyNDc7MjYyNDc7MjYyNDc7MjYyNDc7CisyRjk3NDs0MzU5OzQzNTk7NDM1OTs0MzU5OworMkY5NzU7MjYyRDk7MjYyRDk7MjYyRDk7MjYyRDk7CisyRjk3Njs3RjdBOzdGN0E7N0Y3QTs3RjdBOworMkY5Nzc7MjYzM0U7MjYzM0U7MjYzM0U7MjYzM0U7CisyRjk3ODs3Rjk1OzdGOTU7N0Y5NTs3Rjk1OworMkY5Nzk7N0ZGQTs3RkZBOzdGRkE7N0ZGQTsKKzJGOTdBOzgwMDU7ODAwNTs4MDA1OzgwMDU7CisyRjk3QjsyNjREQTsyNjREQTsyNjREQTsyNjREQTsKKzJGOTdDOzI2NTIzOzI2NTIzOzI2NTIzOzI2NTIzOworMkY5N0Q7ODA2MDs4MDYwOzgwNjA7ODA2MDsKKzJGOTdFOzI2NUE4OzI2NUE4OzI2NUE4OzI2NUE4OworMkY5N0Y7ODA3MDs4MDcwOzgwNzA7ODA3MDsKKzJGOTgwOzIzMzVGOzIzMzVGOzIzMzVGOzIzMzVGOworMkY5ODE7NDNENTs0M0Q1OzQzRDU7NDNENTsKKzJGOTgyOzgwQjI7ODBCMjs4MEIyOzgwQjI7CisyRjk4Mzs4MTAzOzgxMDM7ODEwMzs4MTAzOworMkY5ODQ7NDQwQjs0NDBCOzQ0MEI7NDQwQjsKKzJGOTg1OzgxM0U7ODEzRTs4MTNFOzgxM0U7CisyRjk4Njs1QUI1OzVBQjU7NUFCNTs1QUI1OworMkY5ODc7MjY3QTc7MjY3QTc7MjY3QTc7MjY3QTc7CisyRjk4ODsyNjdCNTsyNjdCNTsyNjdCNTsyNjdCNTsKKzJGOTg5OzIzMzkzOzIzMzkzOzIzMzkzOzIzMzkzOworMkY5OEE7MjMzOUM7MjMzOUM7MjMzOUM7MjMzOUM7CisyRjk4Qjs4MjAxOzgyMDE7ODIwMTs4MjAxOworMkY5OEM7ODIwNDs4MjA0OzgyMDQ7ODIwNDsKKzJGOThEOzhGOUU7OEY5RTs4RjlFOzhGOUU7CisyRjk4RTs0NDZCOzQ0NkI7NDQ2Qjs0NDZCOworMkY5OEY7ODI5MTs4MjkxOzgyOTE7ODI5MTsKKzJGOTkwOzgyOEI7ODI4Qjs4MjhCOzgyOEI7CisyRjk5MTs4MjlEOzgyOUQ7ODI5RDs4MjlEOworMkY5OTI7NTJCMzs1MkIzOzUyQjM7NTJCMzsKKzJGOTkzOzgyQjE7ODJCMTs4MkIxOzgyQjE7CisyRjk5NDs4MkIzOzgyQjM7ODJCMzs4MkIzOworMkY5OTU7ODJCRDs4MkJEOzgyQkQ7ODJCRDsKKzJGOTk2OzgyRTY7ODJFNjs4MkU2OzgyRTY7CisyRjk5NzsyNkIzQzsyNkIzQzsyNkIzQzsyNkIzQzsKKzJGOTk4OzgyRTU7ODJFNTs4MkU1OzgyRTU7CisyRjk5OTs4MzFEOzgzMUQ7ODMxRDs4MzFEOworMkY5OUE7ODM2Mzs4MzYzOzgzNjM7ODM2MzsKKzJGOTlCOzgzQUQ7ODNBRDs4M0FEOzgzQUQ7CisyRjk5Qzs4MzIzOzgzMjM7ODMyMzs4MzIzOworMkY5OUQ7ODNCRDs4M0JEOzgzQkQ7ODNCRDsKKzJGOTlFOzgzRTc7ODNFNzs4M0U3OzgzRTc7CisyRjk5Rjs4NDU3Ozg0NTc7ODQ1Nzs4NDU3OworMkY5QTA7ODM1Mzs4MzUzOzgzNTM7ODM1MzsKKzJGOUExOzgzQ0E7ODNDQTs4M0NBOzgzQ0E7CisyRjlBMjs4M0NDOzgzQ0M7ODNDQzs4M0NDOworMkY5QTM7ODNEQzs4M0RDOzgzREM7ODNEQzsKKzJGOUE0OzI2QzM2OzI2QzM2OzI2QzM2OzI2QzM2OworMkY5QTU7MjZENkI7MjZENkI7MjZENkI7MjZENkI7CisyRjlBNjsyNkNENTsyNkNENTsyNkNENTsyNkNENTsKKzJGOUE3OzQ1MkI7NDUyQjs0NTJCOzQ1MkI7CisyRjlBODs4NEYxOzg0RjE7ODRGMTs4NEYxOworMkY5QTk7ODRGMzs4NEYzOzg0RjM7ODRGMzsKKzJGOUFBOzg1MTY7ODUxNjs4NTE2Ozg1MTY7CisyRjlBQjsyNzNDQTsyNzNDQTsyNzNDQTsyNzNDQTsKKzJGOUFDOzg1NjQ7ODU2NDs4NTY0Ozg1NjQ7CisyRjlBRDsyNkYyQzsyNkYyQzsyNkYyQzsyNkYyQzsKKzJGOUFFOzQ1NUQ7NDU1RDs0NTVEOzQ1NUQ7CisyRjlBRjs0NTYxOzQ1NjE7NDU2MTs0NTYxOworMkY5QjA7MjZGQjE7MjZGQjE7MjZGQjE7MjZGQjE7CisyRjlCMTsyNzBEMjsyNzBEMjsyNzBEMjsyNzBEMjsKKzJGOUIyOzQ1NkI7NDU2Qjs0NTZCOzQ1NkI7CisyRjlCMzs4NjUwOzg2NTA7ODY1MDs4NjUwOworMkY5QjQ7ODY1Qzs4NjVDOzg2NUM7ODY1QzsKKzJGOUI1Ozg2Njc7ODY2Nzs4NjY3Ozg2Njc7CisyRjlCNjs4NjY5Ozg2Njk7ODY2OTs4NjY5OworMkY5Qjc7ODZBOTs4NkE5Ozg2QTk7ODZBOTsKKzJGOUI4Ozg2ODg7ODY4ODs4Njg4Ozg2ODg7CisyRjlCOTs4NzBFOzg3MEU7ODcwRTs4NzBFOworMkY5QkE7ODZFMjs4NkUyOzg2RTI7ODZFMjsKKzJGOUJCOzg3Nzk7ODc3OTs4Nzc5Ozg3Nzk7CisyRjlCQzs4NzI4Ozg3Mjg7ODcyODs4NzI4OworMkY5QkQ7ODc2Qjs4NzZCOzg3NkI7ODc2QjsKKzJGOUJFOzg3ODY7ODc4Njs4Nzg2Ozg3ODY7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY5QkY7NEQ1Nzs0RDU3OzRENTc7NEQ1NzsKKzJGOUMwOzg3RTE7ODdFMTs4N0UxOzg3RTE7CisyRjlDMTs4ODAxOzg4MDE7ODgwMTs4ODAxOworMkY5QzI7NDVGOTs0NUY5OzQ1Rjk7NDVGOTsKKzJGOUMzOzg4NjA7ODg2MDs4ODYwOzg4NjA7CisyRjlDNDs4ODYzOzg4NjM7ODg2Mzs4ODYzOworMkY5QzU7Mjc2Njc7Mjc2Njc7Mjc2Njc7Mjc2Njc7CisyRjlDNjs4OEQ3Ozg4RDc7ODhENzs4OEQ3OworMkY5Qzc7ODhERTs4OERFOzg4REU7ODhERTsKKzJGOUM4OzQ2MzU7NDYzNTs0NjM1OzQ2MzU7CisyRjlDOTs4OEZBOzg4RkE7ODhGQTs4OEZBOworMkY5Q0E7MzRCQjszNEJCOzM0QkI7MzRCQjsKKzJGOUNCOzI3OEFFOzI3OEFFOzI3OEFFOzI3OEFFOworMkY5Q0M7Mjc5NjY7Mjc5NjY7Mjc5NjY7Mjc5NjY7CisyRjlDRDs0NkJFOzQ2QkU7NDZCRTs0NkJFOworMkY5Q0U7NDZDNzs0NkM3OzQ2Qzc7NDZDNzsKKzJGOUNGOzhBQTA7OEFBMDs4QUEwOzhBQTA7CisyRjlEMDs4QUVEOzhBRUQ7OEFFRDs4QUVEOworMkY5RDE7OEI4QTs4QjhBOzhCOEE7OEI4QTsKKzJGOUQyOzhDNTU7OEM1NTs4QzU1OzhDNTU7CisyRjlEMzsyN0NBODsyN0NBODsyN0NBODsyN0NBODsKKzJGOUQ0OzhDQUI7OENBQjs4Q0FCOzhDQUI7CisyRjlENTs4Q0MxOzhDQzE7OENDMTs4Q0MxOworMkY5RDY7OEQxQjs4RDFCOzhEMUI7OEQxQjsKKzJGOUQ3OzhENzc7OEQ3Nzs4RDc3OzhENzc7CisyRjlEODsyN0YyRjsyN0YyRjsyN0YyRjsyN0YyRjsKKzJGOUQ5OzIwODA0OzIwODA0OzIwODA0OzIwODA0OworMkY5REE7OERDQjs4RENCOzhEQ0I7OERDQjsKKzJGOURCOzhEQkM7OERCQzs4REJDOzhEQkM7CisyRjlEQzs4REYwOzhERjA7OERGMDs4REYwOworMkY5REQ7MjA4REU7MjA4REU7MjA4REU7MjA4REU7CisyRjlERTs4RUQ0OzhFRDQ7OEVENDs4RUQ0OworMkY5REY7OEYzODs4RjM4OzhGMzg7OEYzODsKKzJGOUUwOzI4NUQyOzI4NUQyOzI4NUQyOzI4NUQyOworMkY5RTE7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7CisyRjlFMjs5MDk0OzkwOTQ7OTA5NDs5MDk0OworMkY5RTM7OTBGMTs5MEYxOzkwRjE7OTBGMTsKKzJGOUU0OzkxMTE7OTExMTs5MTExOzkxMTE7CisyRjlFNTsyODcyRTsyODcyRTsyODcyRTsyODcyRTsKKzJGOUU2OzkxMUI7OTExQjs5MTFCOzkxMUI7CisyRjlFNzs5MjM4OzkyMzg7OTIzODs5MjM4OworMkY5RTg7OTJENzs5MkQ3OzkyRDc7OTJENzsKKzJGOUU5OzkyRDg7OTJEODs5MkQ4OzkyRDg7CisyRjlFQTs5MjdDOzkyN0M7OTI3Qzs5MjdDOworMkY5RUI7OTNGOTs5M0Y5OzkzRjk7OTNGOTsKKzJGOUVDOzk0MTU7OTQxNTs5NDE1Ozk0MTU7CisyRjlFRDsyOEJGQTsyOEJGQTsyOEJGQTsyOEJGQTsKKzJGOUVFOzk1OEI7OTU4Qjs5NThCOzk1OEI7CisyRjlFRjs0OTk1OzQ5OTU7NDk5NTs0OTk1OworMkY5RjA7OTVCNzs5NUI3Ozk1Qjc7OTVCNzsKKzJGOUYxOzI4RDc3OzI4RDc3OzI4RDc3OzI4RDc3OworMkY5RjI7NDlFNjs0OUU2OzQ5RTY7NDlFNjsKKzJGOUYzOzk2QzM7OTZDMzs5NkMzOzk2QzM7CisyRjlGNDs1REIyOzVEQjI7NURCMjs1REIyOworMkY5RjU7OTcyMzs5NzIzOzk3MjM7OTcyMzsKKzJGOUY2OzI5MTQ1OzI5MTQ1OzI5MTQ1OzI5MTQ1OworMkY5Rjc7MjkyMUE7MjkyMUE7MjkyMUE7MjkyMUE7CisyRjlGODs0QTZFOzRBNkU7NEE2RTs0QTZFOworMkY5Rjk7NEE3Njs0QTc2OzRBNzY7NEE3NjsKKzJGOUZBOzk3RTA7OTdFMDs5N0UwOzk3RTA7CisyRjlGQjsyOTQwQTsyOTQwQTsyOTQwQTsyOTQwQTsKKzJGOUZDOzRBQjI7NEFCMjs0QUIyOzRBQjI7CisyRjlGRDsyOTQ5NjsyOTQ5NjsyOTQ5NjsyOTQ5NjsKKzJGOUZFOzk4MEI7OTgwQjs5ODBCOzk4MEI7CisyRjlGRjs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkZBMDA7OTgyOTs5ODI5Ozk4Mjk7OTgyOTsKKzJGQTAxOzI5NUI2OzI5NUI2OzI5NUI2OzI5NUI2OworMkZBMDI7OThFMjs5OEUyOzk4RTI7OThFMjsKKzJGQTAzOzRCMzM7NEIzMzs0QjMzOzRCMzM7CisyRkEwNDs5OTI5Ozk5Mjk7OTkyOTs5OTI5OworMkZBMDU7OTlBNzs5OUE3Ozk5QTc7OTlBNzsKKzJGQTA2Ozk5QzI7OTlDMjs5OUMyOzk5QzI7CisyRkEwNzs5OUZFOzk5RkU7OTlGRTs5OUZFOworMkZBMDg7NEJDRTs0QkNFOzRCQ0U7NEJDRTsKKzJGQTA5OzI5QjMwOzI5QjMwOzI5QjMwOzI5QjMwOworMkZBMEE7OUIxMjs5QjEyOzlCMTI7OUIxMjsKKzJGQTBCOzlDNDA7OUM0MDs5QzQwOzlDNDA7CisyRkEwQzs5Q0ZEOzlDRkQ7OUNGRDs5Q0ZEOworMkZBMEQ7NENDRTs0Q0NFOzRDQ0U7NENDRTsKKzJGQTBFOzRDRUQ7NENFRDs0Q0VEOzRDRUQ7CisyRkEwRjs5RDY3OzlENjc7OUQ2Nzs5RDY3OworMkZBMTA7MkEwQ0U7MkEwQ0U7MkEwQ0U7MkEwQ0U7CisyRkExMTs0Q0Y4OzRDRjg7NENGODs0Q0Y4OworMkZBMTI7MkExMDU7MkExMDU7MkExMDU7MkExMDU7CisyRkExMzsyQTIwRTsyQTIwRTsyQTIwRTsyQTIwRTsKKzJGQTE0OzJBMjkxOzJBMjkxOzJBMjkxOzJBMjkxOworMkZBMTU7OUVCQjs5RUJCOzlFQkI7OUVCQjsKKzJGQTE2OzRENTY7NEQ1Njs0RDU2OzRENTY7CisyRkExNzs5RUY5OzlFRjk7OUVGOTs5RUY5OworMkZBMTg7OUVGRTs5RUZFOzlFRkU7OUVGRTsKKzJGQTE5OzlGMDU7OUYwNTs5RjA1OzlGMDU7CisyRkExQTs5RjBGOzlGMEY7OUYwRjs5RjBGOworMkZBMUI7OUYxNjs5RjE2OzlGMTY7OUYxNjsKKzJGQTFDOzlGM0I7OUYzQjs5RjNCOzlGM0I7CisyRkExRDsyQTYwMDsyQTYwMDsyQTYwMDsyQTYwMDsKKyMKK0BQYXJ0MiAjIENhbm9uaWNhbCBPcmRlciBUZXN0CisjCiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzAwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzMDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAyIDAwNjI7MDBFMCAwNUFFIDAzMDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjsKKzAwNjEgMDMwMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7MUVBNyAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMyAwMDYyOzAwRTAgMDVBRSAwMzAzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7CiswMDYxIDAzMDMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDMgMDMwMCAwMzE1IDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA0IDAwNjI7MDBFMCAwNUFFIDAzMDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjsKKzAwNjEgMDMwNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNCAwMzAwIDAzMTUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDUgMDA2MjswMEUwIDA1QUUgMDMwNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOworMDA2MSAwMzA1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDYgMDA2MjswMEUwIDA1QUUgMDMwNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOworMDA2MSAwMzA2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsxRUIxIDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA3IDAwNjI7MDBFMCAwNUFFIDAzMDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjsKKzAwNjEgMDMwNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMjcgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNyAwMzAwIDAzMTUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDggMDA2MjswMEUwIDA1QUUgMDMwOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOworMDA2MSAwMzA4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwOSAwMDYyOzAwRTAgMDVBRSAwMzA5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7CiswMDYxIDAzMDkgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUEzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDkgMDMwMCAwMzE1IDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBBIDAwNjI7MDBFMCAwNUFFIDAzMEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjsKKzAwNjEgMDMwQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTUgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQSAwMzAwIDAzMTUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEIgMDA2MjswMEUwIDA1QUUgMDMwQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOworMDA2MSAwMzBCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEMgMDA2MjswMEUwIDA1QUUgMDMwQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOworMDA2MSAwMzBDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDFDRSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBDIDAzMDAgMDMxNSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRCAwMDYyOzAwRTAgMDVBRSAwMzBEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7CiswMDYxIDAzMEQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRSAwMDYyOzAwRTAgMDVBRSAwMzBFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7CiswMDYxIDAzMEUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRiAwMDYyOzAwRTAgMDVBRSAwMzBGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7CiswMDYxIDAzMEYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEYgMDMwMCAwMzE1IDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEwIDAwNjI7MDBFMCAwNUFFIDAzMTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjsKKzAwNjEgMDMxMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzExIDAwNjI7MDBFMCAwNUFFIDAzMTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjsKKzAwNjEgMDMxMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMDMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMSAwMzAwIDAzMTUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTIgMDA2MjswMEUwIDA1QUUgMDMxMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOworMDA2MSAwMzEyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzEzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTQgMDA2MjswMEUwIDA1QUUgMDMxNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOworMDA2MSAwMzE0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDAzMTUgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOworMDA2MSAwMzE1IDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjsKKzAwNjEgMDMxNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7CiswMDYxIDAzMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOworMDA2MSAwMzE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDAzMUEgMDA2MjswMEUwIDAzMTUgMDMxQSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxQSAwMzYyIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM2MiAwMDYyOworMDA2MSAwMzFBIDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzFBIDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzFBIDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMDMxQiAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwMzFCIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjsKKzAwNjEgMDMxQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7CiswMDYxIDAzMUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOworMDA2MSAwMzFFIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjsKKzAwNjEgMDMxRiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIwIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7CiswMDYxIDAzMjAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzIxIDAzMUIgMDMyMSAwRjc0IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjsKKzAwNjEgMDMyMiAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7CiswMDYxIDAzMjMgMDU5QSAwMzE2IDMwMkEgMDA2MjsxRUExIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjMgMDMxNiAwNTlBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7CiswMDYxIDAzMjQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOworMDA2MSAwMzI1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MUUwMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI1IDAzMTYgMDU5QSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOworMDA2MSAwMzI2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjcgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjsKKzAwNjEgMDMyNyAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI4IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7CiswMDYxIDAzMjggMDMxQiAwMzIxIDBGNzQgMDA2MjswMTA1IDBGNzQgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjggMDMyMSAwMzFCIDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7CiswMDYxIDAzMjkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOworMDA2MSAwMzJBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkIgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjsKKzAwNjEgMDMyQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7CiswMDYxIDAzMkMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOworMDA2MSAwMzJEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjsKKzAwNjEgMDMyRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7CiswMDYxIDAzMkYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOworMDA2MSAwMzMwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjsKKzAwNjEgMDMzMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7CiswMDYxIDAzMzIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOworMDA2MSAwMzMzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM0IDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzM0IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzUgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7CiswMDYxIDAzMzUgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNiAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjsKKzAwNjEgMDMzNiAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM3IDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOworMDA2MSAwMzM3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzggMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7CiswMDYxIDAzMzggMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7CiswMDYxIDAzMzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOworMDA2MSAwMzNBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0IgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjsKKzAwNjEgMDMzQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7CiswMDYxIDAzM0MgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRCAwMDYyOzAwRTAgMDVBRSAwMzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7CiswMDYxIDAzM0QgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRSAwMDYyOzAwRTAgMDVBRSAwMzNFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7CiswMDYxIDAzM0UgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRiAwMDYyOzAwRTAgMDVBRSAwMzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7CiswMDYxIDAzM0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MCAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQxIDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjsKKzAwNjEgMDM0MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDIgMDA2MjswMEUwIDA1QUUgMDM0MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOworMDA2MSAwMzQyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDQgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDUgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOworMDA2MSAwMzQ1IDAzNDUgMDM2MCAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0NiAwMDYyOzAwRTAgMDVBRSAwMzQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7CiswMDYxIDAzNDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0NyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOworMDA2MSAwMzQ3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDggMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjsKKzAwNjEgMDM0OCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7CiswMDYxIDAzNDkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QSAwMDYyOzAwRTAgMDVBRSAwMzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7CiswMDYxIDAzNEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QiAwMDYyOzAwRTAgMDVBRSAwMzRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7CiswMDYxIDAzNEIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QyAwMDYyOzAwRTAgMDVBRSAwMzRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7CiswMDYxIDAzNEMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOworMDA2MSAwMzREIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjsKKzAwNjEgMDM0RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzQ1IDAzNjAgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNjAgMDM0NSAwMzYwIDAzNjIgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzYwIDAzNjIgMDM2MSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOworMDA2MSAwMzYxIDAzNDUgMDM2MCAwMzYyIDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNjAgMDM2MiAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjsKKzAwNjEgMDM2MiAwMzYwIDAzNjIgMDMxNSAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzYzIDAwNjI7MDBFMCAwNUFFIDAzNjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjsKKzAwNjEgMDM2MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY0IDAwNjI7MDBFMCAwNUFFIDAzNjQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjsKKzAwNjEgMDM2NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY1IDAwNjI7MDBFMCAwNUFFIDAzNjUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjsKKzAwNjEgMDM2NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY2IDAwNjI7MDBFMCAwNUFFIDAzNjYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjsKKzAwNjEgMDM2NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY3IDAwNjI7MDBFMCAwNUFFIDAzNjcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjsKKzAwNjEgMDM2NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY4IDAwNjI7MDBFMCAwNUFFIDAzNjggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjsKKzAwNjEgMDM2OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY5IDAwNjI7MDBFMCAwNUFFIDAzNjkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjsKKzAwNjEgMDM2OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZBIDAwNjI7MDBFMCAwNUFFIDAzNkEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjsKKzAwNjEgMDM2QSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZCIDAwNjI7MDBFMCAwNUFFIDAzNkIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjsKKzAwNjEgMDM2QiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZDIDAwNjI7MDBFMCAwNUFFIDAzNkMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjsKKzAwNjEgMDM2QyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZEIDAwNjI7MDBFMCAwNUFFIDAzNkQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjsKKzAwNjEgMDM2RCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZFIDAwNjI7MDBFMCAwNUFFIDAzNkUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjsKKzAwNjEgMDM2RSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZGIDAwNjI7MDBFMCAwNUFFIDAzNkYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjsKKzAwNjEgMDM2RiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDgzIDAwNjI7MDBFMCAwNUFFIDA0ODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjsKKzAwNjEgMDQ4MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg0IDAwNjI7MDBFMCAwNUFFIDA0ODQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg1IDAwNjI7MDBFMCAwNUFFIDA0ODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg2IDAwNjI7MDBFMCAwNUFFIDA0ODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTkxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7CiswMDYxIDA1OTEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MiAwMDYyOzAwRTAgMDVBRSAwNTkyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7CiswMDYxIDA1OTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MyAwMDYyOzAwRTAgMDVBRSAwNTkzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7CiswMDYxIDA1OTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NCAwMDYyOzAwRTAgMDVBRSAwNTk0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7CiswMDYxIDA1OTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NSAwMDYyOzAwRTAgMDVBRSAwNTk1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7CiswMDYxIDA1OTUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOworMDA2MSAwNTk2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTcgMDA2MjswMEUwIDA1QUUgMDU5NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOworMDA2MSAwNTk3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTggMDA2MjswMEUwIDA1QUUgMDU5OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOworMDA2MSAwNTk4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTkgMDA2MjswMEUwIDA1QUUgMDU5OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOworMDA2MSAwNTk5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1OUEgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTlCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7CiswMDYxIDA1OUIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5QyAwMDYyOzAwRTAgMDVBRSAwNTlDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7CiswMDYxIDA1OUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RCAwMDYyOzAwRTAgMDVBRSAwNTlEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7CiswMDYxIDA1OUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RSAwMDYyOzAwRTAgMDVBRSAwNTlFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7CiswMDYxIDA1OUUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RiAwMDYyOzAwRTAgMDVBRSAwNTlGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7CiswMDYxIDA1OUYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMCAwMDYyOzAwRTAgMDVBRSAwNUEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7CiswMDYxIDA1QTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMSAwMDYyOzAwRTAgMDVBRSAwNUExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7CiswMDYxIDA1QTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOworMDA2MSAwNUEzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjsKKzAwNjEgMDVBNCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7CiswMDYxIDA1QTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOworMDA2MSAwNUE2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTcgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjsKKzAwNjEgMDVBNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUE4IDAwNjI7MDBFMCAwNUFFIDA1QTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUE4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE4IDAzMTUgMDA2MjsKKzAwNjEgMDVBOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUE5IDAwNjI7MDBFMCAwNUFFIDA1QTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUE5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE5IDAzMTUgMDA2MjsKKzAwNjEgMDVBOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUFBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7CiswMDYxIDA1QUEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBQiAwMDYyOzAwRTAgMDVBRSAwNUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQiAwMzE1IDAwNjI7CiswMDYxIDA1QUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBQyAwMDYyOzAwRTAgMDVBRSAwNUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQyAwMzE1IDAwNjI7CiswMDYxIDA1QUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzAyRSAwNTlBIDAzMTYgMDVBRCAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOworMDA2MSAwNUFEIDMwMkUgMDU5QSAwMzE2IDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAwNUFFIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDA1QUUgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUYgMDA2MjswMEUwIDA1QUUgMDVBRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUYgMDMxNSAwMDYyOworMDA2MSAwNUFGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjEgMDVCMCAwOTREIDA1QjAgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjsKKzAwNjEgMDVCMCAwNUIxIDA1QjAgMDk0RCAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOworMDA2MSAwNUIyIDA1QjEgMDVCMCAwNUIxIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7CiswMDYxIDA1QjEgMDVCMiAwNUIxIDA1QjAgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjsKKzAwNjEgMDVCMyAwNUIyIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOworMDA2MSAwNUIyIDA1QjMgMDVCMiAwNUIxIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7CiswMDYxIDA1QjQgMDVCMyAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjsKKzAwNjEgMDVCMyAwNUI0IDA1QjMgMDVCMiAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOworMDA2MSAwNUI1IDA1QjQgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7CiswMDYxIDA1QjQgMDVCNSAwNUI0IDA1QjMgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjsKKzAwNjEgMDVCNiAwNUI1IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOworMDA2MSAwNUI1IDA1QjYgMDVCNSAwNUI0IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7CiswMDYxIDA1QjcgMDVCNiAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjsKKzAwNjEgMDVCNiAwNUI3IDA1QjYgMDVCNSAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOworMDA2MSAwNUI4IDA1QjcgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7CiswMDYxIDA1QjcgMDVCOCAwNUI3IDA1QjYgMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjsKKzAwNjEgMDVCOSAwNUI4IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOworMDA2MSAwNUI4IDA1QjkgMDVCOCAwNUI3IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7CiswMDYxIDA1QkIgMDVCOSAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjsKKzAwNjEgMDVCOSAwNUJCIDA1QjkgMDVCOCAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOworMDA2MSAwNUJDIDA1QkIgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7CiswMDYxIDA1QkIgMDVCQyAwNUJCIDA1QjkgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjsKKzAwNjEgMDVCRCAwNUJDIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOworMDA2MSAwNUJDIDA1QkQgMDVCQyAwNUJCIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7CiswMDYxIDA1QkYgMDVCRCAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjsKKzAwNjEgMDVCRCAwNUJGIDA1QkQgMDVCQyAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOworMDA2MSAwNUMxIDA1QkYgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7CiswMDYxIDA1QkYgMDVDMSAwNUJGIDA1QkQgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjsKKzAwNjEgMDVDMiAwNUMxIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOworMDA2MSAwNUMxIDA1QzIgMDVDMSAwNUJGIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7CiswMDYxIEZCMUUgMDVDMiAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjsKKzAwNjEgMDVDMiBGQjFFIDA1QzIgMDVDMSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUM0IDAwNjI7MDBFMCAwNUFFIDA1QzQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QzQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUM0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUM0IDAzMTUgMDA2MjsKKzAwNjEgMDVDNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNjRDIDA2NEIgRkIxRSAwNjRCIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEIgMDY0QyAwNjRCIEZCMUUgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjsKKzAwNjEgMDY0RCAwNjRDIDA2NEIgMDY0QyAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRDIDA2NEQgMDY0QyAwNjRCIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7CiswMDYxIDA2NEUgMDY0RCAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RCAwNjRFIDA2NEQgMDY0QyAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOworMDA2MSAwNjRGIDA2NEUgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NEUgMDY0RiAwNjRFIDA2NEQgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjsKKzAwNjEgMDY1MCAwNjRGIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjRGIDA2NTAgMDY0RiAwNjRFIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7CiswMDYxIDA2NTEgMDY1MCAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MCAwNjUxIDA2NTAgMDY0RiAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOworMDA2MSAwNjUyIDA2NTEgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NTEgMDY1MiAwNjUxIDA2NTAgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjsKKzAwNjEgMDY3MCAwNjUyIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwNjUyIDA2NzAgMDY1MiAwNjUxIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTMgMDA2MjswMEUwIDA1QUUgMDY1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOworMDA2MSAwNjUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTQgMDA2MjswMEUwIDA1QUUgMDY1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOworMDA2MSAwNjU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2NTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjsKKzAwNjEgMDY1NSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNzExIDA2NzAgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDA2NzAgMDcxMSAwNjcwIDA2NTIgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENiAwMDYyOzAwRTAgMDVBRSAwNkQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7CiswMDYxIDA2RDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENyAwMDYyOzAwRTAgMDVBRSAwNkQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7CiswMDYxIDA2RDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOCAwMDYyOzAwRTAgMDVBRSAwNkQ4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7CiswMDYxIDA2RDggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOSAwMDYyOzAwRTAgMDVBRSAwNkQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7CiswMDYxIDA2RDkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQSAwMDYyOzAwRTAgMDVBRSAwNkRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7CiswMDYxIDA2REEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQiAwMDYyOzAwRTAgMDVBRSAwNkRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7CiswMDYxIDA2REIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQyAwMDYyOzAwRTAgMDVBRSAwNkRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7CiswMDYxIDA2REMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZERiAwMDYyOzAwRTAgMDVBRSAwNkRGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7CiswMDYxIDA2REYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMCAwMDYyOzAwRTAgMDVBRSAwNkUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7CiswMDYxIDA2RTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMSAwMDYyOzAwRTAgMDVBRSAwNkUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7CiswMDYxIDA2RTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMiAwMDYyOzAwRTAgMDVBRSAwNkUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7CiswMDYxIDA2RTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOworMDA2MSAwNkUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTQgMDA2MjswMEUwIDA1QUUgMDZFNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOworMDA2MSAwNkU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTcgMDA2MjswMEUwIDA1QUUgMDZFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOworMDA2MSAwNkU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTggMDA2MjswMEUwIDA1QUUgMDZFOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOworMDA2MSAwNkU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjsKKzAwNjEgMDZFQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVCIDAwNjI7MDBFMCAwNUFFIDA2RUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjsKKzAwNjEgMDZFQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVDIDAwNjI7MDBFMCAwNUFFIDA2RUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjsKKzAwNjEgMDZFQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7CiswMDYxIDA2RUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMEM1NSAwNzExIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwNzExIDBDNTUgMDcxMSAwNjcwIDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzAgMDA2MjswMEUwIDA1QUUgMDczMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOworMDA2MSAwNzMwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjsKKzAwNjEgMDczMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMyIDAwNjI7MDBFMCAwNUFFIDA3MzIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjsKKzAwNjEgMDczMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMzIDAwNjI7MDBFMCAwNUFFIDA3MzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjsKKzAwNjEgMDczMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7CiswMDYxIDA3MzQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNSAwMDYyOzAwRTAgMDVBRSAwNzM1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7CiswMDYxIDA3MzUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNiAwMDYyOzAwRTAgMDVBRSAwNzM2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7CiswMDYxIDA3MzYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOworMDA2MSAwNzM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjsKKzAwNjEgMDczOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7CiswMDYxIDA3MzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczQSAwMDYyOzAwRTAgMDVBRSAwNzNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7CiswMDYxIDA3M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOworMDA2MSAwNzNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0MgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjsKKzAwNjEgMDczQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNEIDAwNjI7MDBFMCAwNUFFIDA3M0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0QgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjsKKzAwNjEgMDczRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7CiswMDYxIDA3M0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRiAwMDYyOzAwRTAgMDVBRSAwNzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7CiswMDYxIDA3M0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MCAwMDYyOzAwRTAgMDVBRSAwNzQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7CiswMDYxIDA3NDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MSAwMDYyOzAwRTAgMDVBRSAwNzQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7CiswMDYxIDA3NDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOworMDA2MSAwNzQyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDMgMDA2MjswMEUwIDA1QUUgMDc0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOworMDA2MSAwNzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjsKKzAwNjEgMDc0NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ1IDAwNjI7MDBFMCAwNUFFIDA3NDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjsKKzAwNjEgMDc0NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7CiswMDYxIDA3NDYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NyAwMDYyOzAwRTAgMDVBRSAwNzQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7CiswMDYxIDA3NDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0OCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOworMDA2MSAwNzQ4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDkgMDA2MjswMEUwIDA1QUUgMDc0OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOworMDA2MSAwNzQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NEEgMDA2MjswMEUwIDA1QUUgMDc0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOworMDA2MSAwNzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDkzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA5NEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1MSAwMDYyOzAwRTAgMDVBRSAwOTUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7CiswMDYxIDA5NTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDk1MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOworMDA2MSAwOTUyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTMgMDA2MjswMEUwIDA1QUUgMDk1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOworMDA2MSAwOTUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTQgMDA2MjswMEUwIDA1QUUgMDk1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOworMDA2MSAwOTU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5QkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjsKKzAwNjEgMDlCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOUNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7CiswMDYxIDA5Q0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEEzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOworMDA2MSAwQTNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjsKKzAwNjEgMEE0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7CiswMDYxIDBBQkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEFDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOworMDA2MSAwQUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBCM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjsKKzAwNjEgMEIzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQjREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7CiswMDYxIDBCNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEJDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOworMDA2MSAwQkNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjsKKzAwNjEgMEM0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwQzU2IDBDNTUgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBDNTUgMEM1NiAwQzU1IDA3MTEgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjsKKzAwNjEgMEUzOCAwQzU2IDBDNTUgMEM1NiAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwQzU2IDBFMzggMEM1NiAwQzU1IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjsKKzAwNjEgMENDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwRDREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7CiswMDYxIDBENEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMERDQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOworMDA2MSAwRENBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFNDggMEUzOCAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEUzOCAwRTQ4IDBFMzggMEM1NiAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM5IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7CiswMDYxIDBFMzkgMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEUzQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOworMDA2MSAwRTNBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNDggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEU0OCAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ5IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7CiswMDYxIDBFNDkgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0QSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOworMDA2MSAwRTRBIDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEIgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjsKKzAwNjEgMEU0QiAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUM4IDBFQjggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQjggMEVDOCAwRUI4IDBFNDggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOSAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOworMDA2MSAwRUI5IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEVDOCAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM5IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7CiswMDYxIDBFQzkgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDQSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOworMDA2MSAwRUNBIDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0IgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjsKKzAwNjEgMEVDQiAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7CiswMDYxIDBGMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOworMDA2MSAwRjE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMzUgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjsKKzAwNjEgMEYzNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7CiswMDYxIDBGMzcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMEYzOSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOworMDA2MSAwRjM5IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDBGNzIgMEY3MSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3MSAwRjcyIDBGNzEgMEVDOCAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzIgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMyMSAwRjc0IDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDAzMjEgMEY3NCAwRjcyIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0EgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjsKKzAwNjEgMEY3QSAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdCIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7CiswMDYxIDBGN0IgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QyAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOworMDA2MSAwRjdDIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0QgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjsKKzAwNjEgMEY3RCAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjgwIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7CiswMDYxIDBGODAgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MiAwMDYyOzAwRTAgMDVBRSAwRjgyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgyIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7CiswMDYxIDBGODIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MyAwMDYyOzAwRTAgMDVBRSAwRjgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7CiswMDYxIDBGODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEY4NCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOworMDA2MSAwRjg0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODYgMDA2MjswMEUwIDA1QUUgMEY4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOworMDA2MSAwRjg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODcgMDA2MjswMEUwIDA1QUUgMEY4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOworMDA2MSAwRjg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGQzYgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjsKKzAwNjEgMEZDNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAxMDM3IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7CiswMDYxIDEwMzcgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTAzOSAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOworMDA2MSAxMDM5IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3MTQgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjsKKzAwNjEgMTcxNCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzM0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7CiswMDYxIDE3MzQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTdEMiAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOworMDA2MSAxN0QyIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAxOEE5IDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7CiswMDYxIDE4QTkgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDAgMDA2MjswMEUwIDA1QUUgMjBEMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDAgMDMxNSAwMDYyOworMDA2MSAyMEQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDEgMDA2MjswMEUwIDA1QUUgMjBEMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDEgMDMxNSAwMDYyOworMDA2MSAyMEQxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQyIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOworMDA2MSAyMEQyIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDMgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7CiswMDYxIDIwRDMgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ0IDAwNjI7MDBFMCAwNUFFIDIwRDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ0IDAzMTUgMDA2MjsKKzAwNjEgMjBENCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ1IDAwNjI7MDBFMCAwNUFFIDIwRDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ1IDAzMTUgMDA2MjsKKzAwNjEgMjBENSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ2IDAwNjI7MDBFMCAwNUFFIDIwRDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ2IDAzMTUgMDA2MjsKKzAwNjEgMjBENiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ3IDAwNjI7MDBFMCAwNUFFIDIwRDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ3IDAzMTUgMDA2MjsKKzAwNjEgMjBENyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEOCAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjsKKzAwNjEgMjBEOCAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQ5IDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOworMDA2MSAyMEQ5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwREEgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7CiswMDYxIDIwREEgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMERCIDAwNjI7MDBFMCAwNUFFIDIwREIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREIgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMERCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERCIDAzMTUgMDA2MjsKKzAwNjEgMjBEQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMERDIDAwNjI7MDBFMCAwNUFFIDIwREMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREMgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMERDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERDIDAzMTUgMDA2MjsKKzAwNjEgMjBEQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEUxIDAwNjI7MDBFMCAwNUFFIDIwRTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEUxIDAzMTUgMDA2MjsKKzAwNjEgMjBFMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFNSAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjsKKzAwNjEgMjBFNSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEU2IDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOworMDA2MSAyMEU2IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFNyAwMDYyOzAwRTAgMDVBRSAyMEU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU3IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFNyAwMzE1IDAwNjI7CiswMDYxIDIwRTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMjBFOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOworMDA2MSAyMEU4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTkgMDA2MjswMEUwIDA1QUUgMjBFOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTkgMDMxNSAwMDYyOworMDA2MSAyMEU5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEVBIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOworMDA2MSAyMEVBIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNiAzMDJBIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAzMDJBIDAzMTYgMzAyQSAwMzFCIDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAzMDJCIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7CiswMDYxIDMwMkIgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDMwMkMgMDA2MjswMEUwIDAzMTUgMzAyQyAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMzAyQyAwMzYyIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM2MiAwMDYyOworMDA2MSAzMDJDIDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAzMDJDIDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAzMDJDIDAzMTUgMDM2MiAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMzAyRSAwNTlBIDAzMTYgMzAyRCAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOworMDA2MSAzMDJEIDMwMkUgMDU5QSAwMzE2IDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJFIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAzMDJFIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMUQxNkQgMzAyRSAwNTlBIDMwMkYgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7CiswMDYxIDMwMkYgMUQxNkQgMzAyRSAwNTlBIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAwOTREIDMwOTkgMDkzQyAzMDk5IDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDMwOTkgMDk0RCAzMDk5IDA5M0MgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5QSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOworMDA2MSAzMDlBIDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA2NEIgRkIxRSAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjsKKzAwNjEgRkIxRSAwNjRCIEZCMUUgMDVDMiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIwIDAwNjI7MDBFMCAwNUFFIEZFMjAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjAgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIwIDAzMTUgMDA2MjsKKzAwNjEgRkUyMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIxIDAwNjI7MDBFMCAwNUFFIEZFMjEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjEgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIxIDAzMTUgMDA2MjsKKzAwNjEgRkUyMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIyIDAwNjI7MDBFMCAwNUFFIEZFMjIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjIgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIyIDAzMTUgMDA2MjsKKzAwNjEgRkUyMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIzIDAwNjI7MDBFMCAwNUFFIEZFMjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjMgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIzIDAzMTUgMDA2MjsKKzAwNjEgRkUyMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjUgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTY2IDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOworMDA2MSAxRDE2NiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY3IDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjcgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY4IDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjggMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY5IDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjkgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDVBRSAxRDE2RCAzMDJFIDFEMTZEIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMUQxNkQgMDVBRSAxRDE2RCAzMDJFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7CiswMDYxIDFEMTZFIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2RiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjsKKzAwNjEgMUQxNkYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcwIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOworMDA2MSAxRDE3MCAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7CiswMDYxIDFEMTcxIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzIgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOworMDA2MSAxRDE3QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0MgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7CiswMDYxIDFEMTdDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0QgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOworMDA2MSAxRDE3RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0YgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7CiswMDYxIDFEMTdGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjsKKzAwNjEgMUQxODAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOworMDA2MSAxRDE4MSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7CiswMDYxIDFEMTgyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOworMDA2MSAxRDE4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODYgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjsKKzAwNjEgMUQxODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg3IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7CiswMDYxIDFEMTg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4OCAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOworMDA2MSAxRDE4OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODkgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjsKKzAwNjEgMUQxODkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOworMDA2MSAxRDE4QSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxOEIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7CiswMDYxIDFEMThCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOworMDA2MSAxRDFBQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUIgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFDIDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7CiswMDYxIDFEMUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBRCAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOworMDA2MSAxRDFBRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjsKKyMKKyMgRU5EIE9GIEZJTEUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjVlNGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QudHh0CkBAIC0wLDAgKzEsMTc1NTggQEAKKyMgTm9ybWFsaXphdGlvblRlc3QtNC4xLjAudHh0CisjIERhdGU6IDIwMDUtMDMtMjYsIDAwOjMzOjI5IEdNVCBbTURdCisjCisjIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlCisjIENvcHlyaWdodCAoYykgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4KKyMgRm9yIHRlcm1zIG9mIHVzZSwgc2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdGVybXNfb2ZfdXNlLmh0bWwKKyMgRm9yIGRvY3VtZW50YXRpb24sIHNlZSBVQ0QuaHRtbAorIworIyBOb3JtYWxpemF0aW9uIFRlc3QgU3VpdGUKKyMgRm9ybWF0OgorIworIyAgIENvbHVtbnMgKGMxLCBjMiwuLi4pIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworIyAgIENvbW1lbnRzIGFyZSBpbmRpY2F0ZWQgd2l0aCBoYXNoIG1hcmtzCisjCisjIENPTkZPUk1BTkNFOgorIyAxLiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudCBpbXBsZW1lbnRhdGlvbnMKKyMKKyMgICAgTkZDCisjICAgICAgYzIgPT0gIE5GQyhjMSkgPT0gIE5GQyhjMikgPT0gIE5GQyhjMykKKyMgICAgICBjNCA9PSAgTkZDKGM0KSA9PSAgTkZDKGM1KQorIworIyAgICBORkQKKyMgICAgICBjMyA9PSAgTkZEKGMxKSA9PSAgTkZEKGMyKSA9PSAgTkZEKGMzKQorIyAgICAgIGM1ID09ICBORkQoYzQpID09ICBORkQoYzUpCisjCisjICAgIE5GS0MKKyMgICAgICBjNCA9PSBORktDKGMxKSA9PSBORktDKGMyKSA9PSBORktDKGMzKSA9PSBORktDKGM0KSA9PSBORktDKGM1KQorIworIyAgICBORktECisjICAgICAgYzUgPT0gTkZLRChjMSkgPT0gTkZLRChjMikgPT0gTkZLRChjMykgPT0gTkZLRChjNCkgPT0gTkZLRChjNSkKKyMKKyMgMi4gRm9yIGV2ZXJ5IGNvZGUgcG9pbnQgWCBhc3NpZ25lZCBpbiB0aGlzIHZlcnNpb24gb2YgVW5pY29kZSB0aGF0IGlzIG5vdCBzcGVjaWZpY2FsbHkKKyMgICAgbGlzdGVkIGluIFBhcnQgMSwgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQKKyMgICAgaW1wbGVtZW50YXRpb25zOgorIworIyAgICAgIFggPT0gTkZDKFgpID09IE5GRChYKSA9PSBORktDKFgpID09IE5GS0QoWCkKKyMKK0BQYXJ0MCAjIFNwZWNpZmljIGNhc2VzCisjCisxRTBBOzFFMEE7MDA0NCAwMzA3OzFFMEE7MDA0NCAwMzA3OworMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsKKzFFMEEgMDMyMzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMUUwQyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CiswMDQ0IDAzMDcgMDMyMzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzFFMEEgMDMxQjsxRTBBIDAzMUI7MDA0NCAwMzFCIDAzMDc7MUUwQSAwMzFCOzAwNDQgMDMxQiAwMzA3OworMUUwQyAwMzFCOzFFMEMgMDMxQjswMDQ0IDAzMUIgMDMyMzsxRTBDIDAzMUI7MDA0NCAwMzFCIDAzMjM7CisxRTBBIDAzMUIgMDMyMzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CisxRTBDIDAzMUIgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMDQ0IDAzMUIgMDMwNyAwMzIzOzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDBDODswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAxMTI7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CiswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CisxRTE0OzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzAxMTIgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CisxRTE0IDAzMDQ7MUUxNCAwMzA0OzAwNDUgMDMwNCAwMzAwIDAzMDQ7MUUxNCAwMzA0OzAwNDUgMDMwNCAwMzAwIDAzMDQ7CiswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CiswMDQ1IDAzMDAgMDMwNDswMEM4IDAzMDQ7MDA0NSAwMzAwIDAzMDQ7MDBDOCAwMzA0OzAwNDUgMDMwMCAwMzA0OworMDVCOCAwNUI5IDA1QjEgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjsKKzA1OTIgMDVCNyAwNUJDIDA1QTUgMDVCMCAwNUMwIDA1QzQgMDVBRDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7CisjCitAUGFydDEgIyBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHRlc3QKKyMgQWxsIGNoYXJhY3RlcnMgbm90IGV4cGxpY2l0bHkgb2NjdXJyaW5nIGluIGMxIG9mIFBhcnQgMSBoYXZlIGlkZW50aWNhbCBORkMsIEQsIEtDLCBLRCBmb3Jtcy4KKyMKKzAwQTA7MDBBMDswMEEwOzAwMjA7MDAyMDsKKzAwQTg7MDBBODswMEE4OzAwMjAgMDMwODswMDIwIDAzMDg7CiswMEFBOzAwQUE7MDBBQTswMDYxOzAwNjE7CiswMEFGOzAwQUY7MDBBRjswMDIwIDAzMDQ7MDAyMCAwMzA0OworMDBCMjswMEIyOzAwQjI7MDAzMjswMDMyOworMDBCMzswMEIzOzAwQjM7MDAzMzswMDMzOworMDBCNDswMEI0OzAwQjQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzAwQjU7MDBCNTswMEI1OzAzQkM7MDNCQzsKKzAwQjg7MDBCODswMEI4OzAwMjAgMDMyNzswMDIwIDAzMjc7CiswMEI5OzAwQjk7MDBCOTswMDMxOzAwMzE7CiswMEJBOzAwQkE7MDBCQTswMDZGOzAwNkY7CiswMEJDOzAwQkM7MDBCQzswMDMxIDIwNDQgMDAzNDswMDMxIDIwNDQgMDAzNDsKKzAwQkQ7MDBCRDswMEJEOzAwMzEgMjA0NCAwMDMyOzAwMzEgMjA0NCAwMDMyOworMDBCRTswMEJFOzAwQkU7MDAzMyAyMDQ0IDAwMzQ7MDAzMyAyMDQ0IDAwMzQ7CiswMEMwOzAwQzA7MDA0MSAwMzAwOzAwQzA7MDA0MSAwMzAwOworMDBDMTswMEMxOzAwNDEgMDMwMTswMEMxOzAwNDEgMDMwMTsKKzAwQzI7MDBDMjswMDQxIDAzMDI7MDBDMjswMDQxIDAzMDI7CiswMEMzOzAwQzM7MDA0MSAwMzAzOzAwQzM7MDA0MSAwMzAzOworMDBDNDswMEM0OzAwNDEgMDMwODswMEM0OzAwNDEgMDMwODsKKzAwQzU7MDBDNTswMDQxIDAzMEE7MDBDNTswMDQxIDAzMEE7CiswMEM3OzAwQzc7MDA0MyAwMzI3OzAwQzc7MDA0MyAwMzI3OworMDBDODswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAwQzk7MDBDOTswMDQ1IDAzMDE7MDBDOTswMDQ1IDAzMDE7CiswMENBOzAwQ0E7MDA0NSAwMzAyOzAwQ0E7MDA0NSAwMzAyOworMDBDQjswMENCOzAwNDUgMDMwODswMENCOzAwNDUgMDMwODsKKzAwQ0M7MDBDQzswMDQ5IDAzMDA7MDBDQzswMDQ5IDAzMDA7CiswMENEOzAwQ0Q7MDA0OSAwMzAxOzAwQ0Q7MDA0OSAwMzAxOworMDBDRTswMENFOzAwNDkgMDMwMjswMENFOzAwNDkgMDMwMjsKKzAwQ0Y7MDBDRjswMDQ5IDAzMDg7MDBDRjswMDQ5IDAzMDg7CiswMEQxOzAwRDE7MDA0RSAwMzAzOzAwRDE7MDA0RSAwMzAzOworMDBEMjswMEQyOzAwNEYgMDMwMDswMEQyOzAwNEYgMDMwMDsKKzAwRDM7MDBEMzswMDRGIDAzMDE7MDBEMzswMDRGIDAzMDE7CiswMEQ0OzAwRDQ7MDA0RiAwMzAyOzAwRDQ7MDA0RiAwMzAyOworMDBENTswMEQ1OzAwNEYgMDMwMzswMEQ1OzAwNEYgMDMwMzsKKzAwRDY7MDBENjswMDRGIDAzMDg7MDBENjswMDRGIDAzMDg7CiswMEQ5OzAwRDk7MDA1NSAwMzAwOzAwRDk7MDA1NSAwMzAwOworMDBEQTswMERBOzAwNTUgMDMwMTswMERBOzAwNTUgMDMwMTsKKzAwREI7MDBEQjswMDU1IDAzMDI7MDBEQjswMDU1IDAzMDI7CiswMERDOzAwREM7MDA1NSAwMzA4OzAwREM7MDA1NSAwMzA4OworMDBERDswMEREOzAwNTkgMDMwMTswMEREOzAwNTkgMDMwMTsKKzAwRTA7MDBFMDswMDYxIDAzMDA7MDBFMDswMDYxIDAzMDA7CiswMEUxOzAwRTE7MDA2MSAwMzAxOzAwRTE7MDA2MSAwMzAxOworMDBFMjswMEUyOzAwNjEgMDMwMjswMEUyOzAwNjEgMDMwMjsKKzAwRTM7MDBFMzswMDYxIDAzMDM7MDBFMzswMDYxIDAzMDM7CiswMEU0OzAwRTQ7MDA2MSAwMzA4OzAwRTQ7MDA2MSAwMzA4OworMDBFNTswMEU1OzAwNjEgMDMwQTswMEU1OzAwNjEgMDMwQTsKKzAwRTc7MDBFNzswMDYzIDAzMjc7MDBFNzswMDYzIDAzMjc7CiswMEU4OzAwRTg7MDA2NSAwMzAwOzAwRTg7MDA2NSAwMzAwOworMDBFOTswMEU5OzAwNjUgMDMwMTswMEU5OzAwNjUgMDMwMTsKKzAwRUE7MDBFQTswMDY1IDAzMDI7MDBFQTswMDY1IDAzMDI7CiswMEVCOzAwRUI7MDA2NSAwMzA4OzAwRUI7MDA2NSAwMzA4OworMDBFQzswMEVDOzAwNjkgMDMwMDswMEVDOzAwNjkgMDMwMDsKKzAwRUQ7MDBFRDswMDY5IDAzMDE7MDBFRDswMDY5IDAzMDE7CiswMEVFOzAwRUU7MDA2OSAwMzAyOzAwRUU7MDA2OSAwMzAyOworMDBFRjswMEVGOzAwNjkgMDMwODswMEVGOzAwNjkgMDMwODsKKzAwRjE7MDBGMTswMDZFIDAzMDM7MDBGMTswMDZFIDAzMDM7CiswMEYyOzAwRjI7MDA2RiAwMzAwOzAwRjI7MDA2RiAwMzAwOworMDBGMzswMEYzOzAwNkYgMDMwMTswMEYzOzAwNkYgMDMwMTsKKzAwRjQ7MDBGNDswMDZGIDAzMDI7MDBGNDswMDZGIDAzMDI7CiswMEY1OzAwRjU7MDA2RiAwMzAzOzAwRjU7MDA2RiAwMzAzOworMDBGNjswMEY2OzAwNkYgMDMwODswMEY2OzAwNkYgMDMwODsKKzAwRjk7MDBGOTswMDc1IDAzMDA7MDBGOTswMDc1IDAzMDA7CiswMEZBOzAwRkE7MDA3NSAwMzAxOzAwRkE7MDA3NSAwMzAxOworMDBGQjswMEZCOzAwNzUgMDMwMjswMEZCOzAwNzUgMDMwMjsKKzAwRkM7MDBGQzswMDc1IDAzMDg7MDBGQzswMDc1IDAzMDg7CiswMEZEOzAwRkQ7MDA3OSAwMzAxOzAwRkQ7MDA3OSAwMzAxOworMDBGRjswMEZGOzAwNzkgMDMwODswMEZGOzAwNzkgMDMwODsKKzAxMDA7MDEwMDswMDQxIDAzMDQ7MDEwMDswMDQxIDAzMDQ7CiswMTAxOzAxMDE7MDA2MSAwMzA0OzAxMDE7MDA2MSAwMzA0OworMDEwMjswMTAyOzAwNDEgMDMwNjswMTAyOzAwNDEgMDMwNjsKKzAxMDM7MDEwMzswMDYxIDAzMDY7MDEwMzswMDYxIDAzMDY7CiswMTA0OzAxMDQ7MDA0MSAwMzI4OzAxMDQ7MDA0MSAwMzI4OworMDEwNTswMTA1OzAwNjEgMDMyODswMTA1OzAwNjEgMDMyODsKKzAxMDY7MDEwNjswMDQzIDAzMDE7MDEwNjswMDQzIDAzMDE7CiswMTA3OzAxMDc7MDA2MyAwMzAxOzAxMDc7MDA2MyAwMzAxOworMDEwODswMTA4OzAwNDMgMDMwMjswMTA4OzAwNDMgMDMwMjsKKzAxMDk7MDEwOTswMDYzIDAzMDI7MDEwOTswMDYzIDAzMDI7CiswMTBBOzAxMEE7MDA0MyAwMzA3OzAxMEE7MDA0MyAwMzA3OworMDEwQjswMTBCOzAwNjMgMDMwNzswMTBCOzAwNjMgMDMwNzsKKzAxMEM7MDEwQzswMDQzIDAzMEM7MDEwQzswMDQzIDAzMEM7CiswMTBEOzAxMEQ7MDA2MyAwMzBDOzAxMEQ7MDA2MyAwMzBDOworMDEwRTswMTBFOzAwNDQgMDMwQzswMTBFOzAwNDQgMDMwQzsKKzAxMEY7MDEwRjswMDY0IDAzMEM7MDEwRjswMDY0IDAzMEM7CiswMTEyOzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMDExMzswMTEzOzAwNjUgMDMwNDswMTEzOzAwNjUgMDMwNDsKKzAxMTQ7MDExNDswMDQ1IDAzMDY7MDExNDswMDQ1IDAzMDY7CiswMTE1OzAxMTU7MDA2NSAwMzA2OzAxMTU7MDA2NSAwMzA2OworMDExNjswMTE2OzAwNDUgMDMwNzswMTE2OzAwNDUgMDMwNzsKKzAxMTc7MDExNzswMDY1IDAzMDc7MDExNzswMDY1IDAzMDc7CiswMTE4OzAxMTg7MDA0NSAwMzI4OzAxMTg7MDA0NSAwMzI4OworMDExOTswMTE5OzAwNjUgMDMyODswMTE5OzAwNjUgMDMyODsKKzAxMUE7MDExQTswMDQ1IDAzMEM7MDExQTswMDQ1IDAzMEM7CiswMTFCOzAxMUI7MDA2NSAwMzBDOzAxMUI7MDA2NSAwMzBDOworMDExQzswMTFDOzAwNDcgMDMwMjswMTFDOzAwNDcgMDMwMjsKKzAxMUQ7MDExRDswMDY3IDAzMDI7MDExRDswMDY3IDAzMDI7CiswMTFFOzAxMUU7MDA0NyAwMzA2OzAxMUU7MDA0NyAwMzA2OworMDExRjswMTFGOzAwNjcgMDMwNjswMTFGOzAwNjcgMDMwNjsKKzAxMjA7MDEyMDswMDQ3IDAzMDc7MDEyMDswMDQ3IDAzMDc7CiswMTIxOzAxMjE7MDA2NyAwMzA3OzAxMjE7MDA2NyAwMzA3OworMDEyMjswMTIyOzAwNDcgMDMyNzswMTIyOzAwNDcgMDMyNzsKKzAxMjM7MDEyMzswMDY3IDAzMjc7MDEyMzswMDY3IDAzMjc7CiswMTI0OzAxMjQ7MDA0OCAwMzAyOzAxMjQ7MDA0OCAwMzAyOworMDEyNTswMTI1OzAwNjggMDMwMjswMTI1OzAwNjggMDMwMjsKKzAxMjg7MDEyODswMDQ5IDAzMDM7MDEyODswMDQ5IDAzMDM7CiswMTI5OzAxMjk7MDA2OSAwMzAzOzAxMjk7MDA2OSAwMzAzOworMDEyQTswMTJBOzAwNDkgMDMwNDswMTJBOzAwNDkgMDMwNDsKKzAxMkI7MDEyQjswMDY5IDAzMDQ7MDEyQjswMDY5IDAzMDQ7CiswMTJDOzAxMkM7MDA0OSAwMzA2OzAxMkM7MDA0OSAwMzA2OworMDEyRDswMTJEOzAwNjkgMDMwNjswMTJEOzAwNjkgMDMwNjsKKzAxMkU7MDEyRTswMDQ5IDAzMjg7MDEyRTswMDQ5IDAzMjg7CiswMTJGOzAxMkY7MDA2OSAwMzI4OzAxMkY7MDA2OSAwMzI4OworMDEzMDswMTMwOzAwNDkgMDMwNzswMTMwOzAwNDkgMDMwNzsKKzAxMzI7MDEzMjswMTMyOzAwNDkgMDA0QTswMDQ5IDAwNEE7CiswMTMzOzAxMzM7MDEzMzswMDY5IDAwNkE7MDA2OSAwMDZBOworMDEzNDswMTM0OzAwNEEgMDMwMjswMTM0OzAwNEEgMDMwMjsKKzAxMzU7MDEzNTswMDZBIDAzMDI7MDEzNTswMDZBIDAzMDI7CiswMTM2OzAxMzY7MDA0QiAwMzI3OzAxMzY7MDA0QiAwMzI3OworMDEzNzswMTM3OzAwNkIgMDMyNzswMTM3OzAwNkIgMDMyNzsKKzAxMzk7MDEzOTswMDRDIDAzMDE7MDEzOTswMDRDIDAzMDE7CiswMTNBOzAxM0E7MDA2QyAwMzAxOzAxM0E7MDA2QyAwMzAxOworMDEzQjswMTNCOzAwNEMgMDMyNzswMTNCOzAwNEMgMDMyNzsKKzAxM0M7MDEzQzswMDZDIDAzMjc7MDEzQzswMDZDIDAzMjc7CiswMTNEOzAxM0Q7MDA0QyAwMzBDOzAxM0Q7MDA0QyAwMzBDOworMDEzRTswMTNFOzAwNkMgMDMwQzswMTNFOzAwNkMgMDMwQzsKKzAxM0Y7MDEzRjswMTNGOzAwNEMgMDBCNzswMDRDIDAwQjc7CiswMTQwOzAxNDA7MDE0MDswMDZDIDAwQjc7MDA2QyAwMEI3OworMDE0MzswMTQzOzAwNEUgMDMwMTswMTQzOzAwNEUgMDMwMTsKKzAxNDQ7MDE0NDswMDZFIDAzMDE7MDE0NDswMDZFIDAzMDE7CiswMTQ1OzAxNDU7MDA0RSAwMzI3OzAxNDU7MDA0RSAwMzI3OworMDE0NjswMTQ2OzAwNkUgMDMyNzswMTQ2OzAwNkUgMDMyNzsKKzAxNDc7MDE0NzswMDRFIDAzMEM7MDE0NzswMDRFIDAzMEM7CiswMTQ4OzAxNDg7MDA2RSAwMzBDOzAxNDg7MDA2RSAwMzBDOworMDE0OTswMTQ5OzAxNDk7MDJCQyAwMDZFOzAyQkMgMDA2RTsKKzAxNEM7MDE0QzswMDRGIDAzMDQ7MDE0QzswMDRGIDAzMDQ7CiswMTREOzAxNEQ7MDA2RiAwMzA0OzAxNEQ7MDA2RiAwMzA0OworMDE0RTswMTRFOzAwNEYgMDMwNjswMTRFOzAwNEYgMDMwNjsKKzAxNEY7MDE0RjswMDZGIDAzMDY7MDE0RjswMDZGIDAzMDY7CiswMTUwOzAxNTA7MDA0RiAwMzBCOzAxNTA7MDA0RiAwMzBCOworMDE1MTswMTUxOzAwNkYgMDMwQjswMTUxOzAwNkYgMDMwQjsKKzAxNTQ7MDE1NDswMDUyIDAzMDE7MDE1NDswMDUyIDAzMDE7CiswMTU1OzAxNTU7MDA3MiAwMzAxOzAxNTU7MDA3MiAwMzAxOworMDE1NjswMTU2OzAwNTIgMDMyNzswMTU2OzAwNTIgMDMyNzsKKzAxNTc7MDE1NzswMDcyIDAzMjc7MDE1NzswMDcyIDAzMjc7CiswMTU4OzAxNTg7MDA1MiAwMzBDOzAxNTg7MDA1MiAwMzBDOworMDE1OTswMTU5OzAwNzIgMDMwQzswMTU5OzAwNzIgMDMwQzsKKzAxNUE7MDE1QTswMDUzIDAzMDE7MDE1QTswMDUzIDAzMDE7CiswMTVCOzAxNUI7MDA3MyAwMzAxOzAxNUI7MDA3MyAwMzAxOworMDE1QzswMTVDOzAwNTMgMDMwMjswMTVDOzAwNTMgMDMwMjsKKzAxNUQ7MDE1RDswMDczIDAzMDI7MDE1RDswMDczIDAzMDI7CiswMTVFOzAxNUU7MDA1MyAwMzI3OzAxNUU7MDA1MyAwMzI3OworMDE1RjswMTVGOzAwNzMgMDMyNzswMTVGOzAwNzMgMDMyNzsKKzAxNjA7MDE2MDswMDUzIDAzMEM7MDE2MDswMDUzIDAzMEM7CiswMTYxOzAxNjE7MDA3MyAwMzBDOzAxNjE7MDA3MyAwMzBDOworMDE2MjswMTYyOzAwNTQgMDMyNzswMTYyOzAwNTQgMDMyNzsKKzAxNjM7MDE2MzswMDc0IDAzMjc7MDE2MzswMDc0IDAzMjc7CiswMTY0OzAxNjQ7MDA1NCAwMzBDOzAxNjQ7MDA1NCAwMzBDOworMDE2NTswMTY1OzAwNzQgMDMwQzswMTY1OzAwNzQgMDMwQzsKKzAxNjg7MDE2ODswMDU1IDAzMDM7MDE2ODswMDU1IDAzMDM7CiswMTY5OzAxNjk7MDA3NSAwMzAzOzAxNjk7MDA3NSAwMzAzOworMDE2QTswMTZBOzAwNTUgMDMwNDswMTZBOzAwNTUgMDMwNDsKKzAxNkI7MDE2QjswMDc1IDAzMDQ7MDE2QjswMDc1IDAzMDQ7CiswMTZDOzAxNkM7MDA1NSAwMzA2OzAxNkM7MDA1NSAwMzA2OworMDE2RDswMTZEOzAwNzUgMDMwNjswMTZEOzAwNzUgMDMwNjsKKzAxNkU7MDE2RTswMDU1IDAzMEE7MDE2RTswMDU1IDAzMEE7CiswMTZGOzAxNkY7MDA3NSAwMzBBOzAxNkY7MDA3NSAwMzBBOworMDE3MDswMTcwOzAwNTUgMDMwQjswMTcwOzAwNTUgMDMwQjsKKzAxNzE7MDE3MTswMDc1IDAzMEI7MDE3MTswMDc1IDAzMEI7CiswMTcyOzAxNzI7MDA1NSAwMzI4OzAxNzI7MDA1NSAwMzI4OworMDE3MzswMTczOzAwNzUgMDMyODswMTczOzAwNzUgMDMyODsKKzAxNzQ7MDE3NDswMDU3IDAzMDI7MDE3NDswMDU3IDAzMDI7CiswMTc1OzAxNzU7MDA3NyAwMzAyOzAxNzU7MDA3NyAwMzAyOworMDE3NjswMTc2OzAwNTkgMDMwMjswMTc2OzAwNTkgMDMwMjsKKzAxNzc7MDE3NzswMDc5IDAzMDI7MDE3NzswMDc5IDAzMDI7CiswMTc4OzAxNzg7MDA1OSAwMzA4OzAxNzg7MDA1OSAwMzA4OworMDE3OTswMTc5OzAwNUEgMDMwMTswMTc5OzAwNUEgMDMwMTsKKzAxN0E7MDE3QTswMDdBIDAzMDE7MDE3QTswMDdBIDAzMDE7CiswMTdCOzAxN0I7MDA1QSAwMzA3OzAxN0I7MDA1QSAwMzA3OworMDE3QzswMTdDOzAwN0EgMDMwNzswMTdDOzAwN0EgMDMwNzsKKzAxN0Q7MDE3RDswMDVBIDAzMEM7MDE3RDswMDVBIDAzMEM7CiswMTdFOzAxN0U7MDA3QSAwMzBDOzAxN0U7MDA3QSAwMzBDOworMDE3RjswMTdGOzAxN0Y7MDA3MzswMDczOworMDFBMDswMUEwOzAwNEYgMDMxQjswMUEwOzAwNEYgMDMxQjsKKzAxQTE7MDFBMTswMDZGIDAzMUI7MDFBMTswMDZGIDAzMUI7CiswMUFGOzAxQUY7MDA1NSAwMzFCOzAxQUY7MDA1NSAwMzFCOworMDFCMDswMUIwOzAwNzUgMDMxQjswMUIwOzAwNzUgMDMxQjsKKzAxQzQ7MDFDNDswMUM0OzAwNDQgMDE3RDswMDQ0IDAwNUEgMDMwQzsKKzAxQzU7MDFDNTswMUM1OzAwNDQgMDE3RTswMDQ0IDAwN0EgMDMwQzsKKzAxQzY7MDFDNjswMUM2OzAwNjQgMDE3RTswMDY0IDAwN0EgMDMwQzsKKzAxQzc7MDFDNzswMUM3OzAwNEMgMDA0QTswMDRDIDAwNEE7CiswMUM4OzAxQzg7MDFDODswMDRDIDAwNkE7MDA0QyAwMDZBOworMDFDOTswMUM5OzAxQzk7MDA2QyAwMDZBOzAwNkMgMDA2QTsKKzAxQ0E7MDFDQTswMUNBOzAwNEUgMDA0QTswMDRFIDAwNEE7CiswMUNCOzAxQ0I7MDFDQjswMDRFIDAwNkE7MDA0RSAwMDZBOworMDFDQzswMUNDOzAxQ0M7MDA2RSAwMDZBOzAwNkUgMDA2QTsKKzAxQ0Q7MDFDRDswMDQxIDAzMEM7MDFDRDswMDQxIDAzMEM7CiswMUNFOzAxQ0U7MDA2MSAwMzBDOzAxQ0U7MDA2MSAwMzBDOworMDFDRjswMUNGOzAwNDkgMDMwQzswMUNGOzAwNDkgMDMwQzsKKzAxRDA7MDFEMDswMDY5IDAzMEM7MDFEMDswMDY5IDAzMEM7CiswMUQxOzAxRDE7MDA0RiAwMzBDOzAxRDE7MDA0RiAwMzBDOworMDFEMjswMUQyOzAwNkYgMDMwQzswMUQyOzAwNkYgMDMwQzsKKzAxRDM7MDFEMzswMDU1IDAzMEM7MDFEMzswMDU1IDAzMEM7CiswMUQ0OzAxRDQ7MDA3NSAwMzBDOzAxRDQ7MDA3NSAwMzBDOworMDFENTswMUQ1OzAwNTUgMDMwOCAwMzA0OzAxRDU7MDA1NSAwMzA4IDAzMDQ7CiswMUQ2OzAxRDY7MDA3NSAwMzA4IDAzMDQ7MDFENjswMDc1IDAzMDggMDMwNDsKKzAxRDc7MDFENzswMDU1IDAzMDggMDMwMTswMUQ3OzAwNTUgMDMwOCAwMzAxOworMDFEODswMUQ4OzAwNzUgMDMwOCAwMzAxOzAxRDg7MDA3NSAwMzA4IDAzMDE7CiswMUQ5OzAxRDk7MDA1NSAwMzA4IDAzMEM7MDFEOTswMDU1IDAzMDggMDMwQzsKKzAxREE7MDFEQTswMDc1IDAzMDggMDMwQzswMURBOzAwNzUgMDMwOCAwMzBDOworMDFEQjswMURCOzAwNTUgMDMwOCAwMzAwOzAxREI7MDA1NSAwMzA4IDAzMDA7CiswMURDOzAxREM7MDA3NSAwMzA4IDAzMDA7MDFEQzswMDc1IDAzMDggMDMwMDsKKzAxREU7MDFERTswMDQxIDAzMDggMDMwNDswMURFOzAwNDEgMDMwOCAwMzA0OworMDFERjswMURGOzAwNjEgMDMwOCAwMzA0OzAxREY7MDA2MSAwMzA4IDAzMDQ7CiswMUUwOzAxRTA7MDA0MSAwMzA3IDAzMDQ7MDFFMDswMDQxIDAzMDcgMDMwNDsKKzAxRTE7MDFFMTswMDYxIDAzMDcgMDMwNDswMUUxOzAwNjEgMDMwNyAwMzA0OworMDFFMjswMUUyOzAwQzYgMDMwNDswMUUyOzAwQzYgMDMwNDsKKzAxRTM7MDFFMzswMEU2IDAzMDQ7MDFFMzswMEU2IDAzMDQ7CiswMUU2OzAxRTY7MDA0NyAwMzBDOzAxRTY7MDA0NyAwMzBDOworMDFFNzswMUU3OzAwNjcgMDMwQzswMUU3OzAwNjcgMDMwQzsKKzAxRTg7MDFFODswMDRCIDAzMEM7MDFFODswMDRCIDAzMEM7CiswMUU5OzAxRTk7MDA2QiAwMzBDOzAxRTk7MDA2QiAwMzBDOworMDFFQTswMUVBOzAwNEYgMDMyODswMUVBOzAwNEYgMDMyODsKKzAxRUI7MDFFQjswMDZGIDAzMjg7MDFFQjswMDZGIDAzMjg7CiswMUVDOzAxRUM7MDA0RiAwMzI4IDAzMDQ7MDFFQzswMDRGIDAzMjggMDMwNDsKKzAxRUQ7MDFFRDswMDZGIDAzMjggMDMwNDswMUVEOzAwNkYgMDMyOCAwMzA0OworMDFFRTswMUVFOzAxQjcgMDMwQzswMUVFOzAxQjcgMDMwQzsKKzAxRUY7MDFFRjswMjkyIDAzMEM7MDFFRjswMjkyIDAzMEM7CiswMUYwOzAxRjA7MDA2QSAwMzBDOzAxRjA7MDA2QSAwMzBDOworMDFGMTswMUYxOzAxRjE7MDA0NCAwMDVBOzAwNDQgMDA1QTsKKzAxRjI7MDFGMjswMUYyOzAwNDQgMDA3QTswMDQ0IDAwN0E7CiswMUYzOzAxRjM7MDFGMzswMDY0IDAwN0E7MDA2NCAwMDdBOworMDFGNDswMUY0OzAwNDcgMDMwMTswMUY0OzAwNDcgMDMwMTsKKzAxRjU7MDFGNTswMDY3IDAzMDE7MDFGNTswMDY3IDAzMDE7CiswMUY4OzAxRjg7MDA0RSAwMzAwOzAxRjg7MDA0RSAwMzAwOworMDFGOTswMUY5OzAwNkUgMDMwMDswMUY5OzAwNkUgMDMwMDsKKzAxRkE7MDFGQTswMDQxIDAzMEEgMDMwMTswMUZBOzAwNDEgMDMwQSAwMzAxOworMDFGQjswMUZCOzAwNjEgMDMwQSAwMzAxOzAxRkI7MDA2MSAwMzBBIDAzMDE7CiswMUZDOzAxRkM7MDBDNiAwMzAxOzAxRkM7MDBDNiAwMzAxOworMDFGRDswMUZEOzAwRTYgMDMwMTswMUZEOzAwRTYgMDMwMTsKKzAxRkU7MDFGRTswMEQ4IDAzMDE7MDFGRTswMEQ4IDAzMDE7CiswMUZGOzAxRkY7MDBGOCAwMzAxOzAxRkY7MDBGOCAwMzAxOworMDIwMDswMjAwOzAwNDEgMDMwRjswMjAwOzAwNDEgMDMwRjsKKzAyMDE7MDIwMTswMDYxIDAzMEY7MDIwMTswMDYxIDAzMEY7CiswMjAyOzAyMDI7MDA0MSAwMzExOzAyMDI7MDA0MSAwMzExOworMDIwMzswMjAzOzAwNjEgMDMxMTswMjAzOzAwNjEgMDMxMTsKKzAyMDQ7MDIwNDswMDQ1IDAzMEY7MDIwNDswMDQ1IDAzMEY7CiswMjA1OzAyMDU7MDA2NSAwMzBGOzAyMDU7MDA2NSAwMzBGOworMDIwNjswMjA2OzAwNDUgMDMxMTswMjA2OzAwNDUgMDMxMTsKKzAyMDc7MDIwNzswMDY1IDAzMTE7MDIwNzswMDY1IDAzMTE7CiswMjA4OzAyMDg7MDA0OSAwMzBGOzAyMDg7MDA0OSAwMzBGOworMDIwOTswMjA5OzAwNjkgMDMwRjswMjA5OzAwNjkgMDMwRjsKKzAyMEE7MDIwQTswMDQ5IDAzMTE7MDIwQTswMDQ5IDAzMTE7CiswMjBCOzAyMEI7MDA2OSAwMzExOzAyMEI7MDA2OSAwMzExOworMDIwQzswMjBDOzAwNEYgMDMwRjswMjBDOzAwNEYgMDMwRjsKKzAyMEQ7MDIwRDswMDZGIDAzMEY7MDIwRDswMDZGIDAzMEY7CiswMjBFOzAyMEU7MDA0RiAwMzExOzAyMEU7MDA0RiAwMzExOworMDIwRjswMjBGOzAwNkYgMDMxMTswMjBGOzAwNkYgMDMxMTsKKzAyMTA7MDIxMDswMDUyIDAzMEY7MDIxMDswMDUyIDAzMEY7CiswMjExOzAyMTE7MDA3MiAwMzBGOzAyMTE7MDA3MiAwMzBGOworMDIxMjswMjEyOzAwNTIgMDMxMTswMjEyOzAwNTIgMDMxMTsKKzAyMTM7MDIxMzswMDcyIDAzMTE7MDIxMzswMDcyIDAzMTE7CiswMjE0OzAyMTQ7MDA1NSAwMzBGOzAyMTQ7MDA1NSAwMzBGOworMDIxNTswMjE1OzAwNzUgMDMwRjswMjE1OzAwNzUgMDMwRjsKKzAyMTY7MDIxNjswMDU1IDAzMTE7MDIxNjswMDU1IDAzMTE7CiswMjE3OzAyMTc7MDA3NSAwMzExOzAyMTc7MDA3NSAwMzExOworMDIxODswMjE4OzAwNTMgMDMyNjswMjE4OzAwNTMgMDMyNjsKKzAyMTk7MDIxOTswMDczIDAzMjY7MDIxOTswMDczIDAzMjY7CiswMjFBOzAyMUE7MDA1NCAwMzI2OzAyMUE7MDA1NCAwMzI2OworMDIxQjswMjFCOzAwNzQgMDMyNjswMjFCOzAwNzQgMDMyNjsKKzAyMUU7MDIxRTswMDQ4IDAzMEM7MDIxRTswMDQ4IDAzMEM7CiswMjFGOzAyMUY7MDA2OCAwMzBDOzAyMUY7MDA2OCAwMzBDOworMDIyNjswMjI2OzAwNDEgMDMwNzswMjI2OzAwNDEgMDMwNzsKKzAyMjc7MDIyNzswMDYxIDAzMDc7MDIyNzswMDYxIDAzMDc7CiswMjI4OzAyMjg7MDA0NSAwMzI3OzAyMjg7MDA0NSAwMzI3OworMDIyOTswMjI5OzAwNjUgMDMyNzswMjI5OzAwNjUgMDMyNzsKKzAyMkE7MDIyQTswMDRGIDAzMDggMDMwNDswMjJBOzAwNEYgMDMwOCAwMzA0OworMDIyQjswMjJCOzAwNkYgMDMwOCAwMzA0OzAyMkI7MDA2RiAwMzA4IDAzMDQ7CiswMjJDOzAyMkM7MDA0RiAwMzAzIDAzMDQ7MDIyQzswMDRGIDAzMDMgMDMwNDsKKzAyMkQ7MDIyRDswMDZGIDAzMDMgMDMwNDswMjJEOzAwNkYgMDMwMyAwMzA0OworMDIyRTswMjJFOzAwNEYgMDMwNzswMjJFOzAwNEYgMDMwNzsKKzAyMkY7MDIyRjswMDZGIDAzMDc7MDIyRjswMDZGIDAzMDc7CiswMjMwOzAyMzA7MDA0RiAwMzA3IDAzMDQ7MDIzMDswMDRGIDAzMDcgMDMwNDsKKzAyMzE7MDIzMTswMDZGIDAzMDcgMDMwNDswMjMxOzAwNkYgMDMwNyAwMzA0OworMDIzMjswMjMyOzAwNTkgMDMwNDswMjMyOzAwNTkgMDMwNDsKKzAyMzM7MDIzMzswMDc5IDAzMDQ7MDIzMzswMDc5IDAzMDQ7CiswMkIwOzAyQjA7MDJCMDswMDY4OzAwNjg7CiswMkIxOzAyQjE7MDJCMTswMjY2OzAyNjY7CiswMkIyOzAyQjI7MDJCMjswMDZBOzAwNkE7CiswMkIzOzAyQjM7MDJCMzswMDcyOzAwNzI7CiswMkI0OzAyQjQ7MDJCNDswMjc5OzAyNzk7CiswMkI1OzAyQjU7MDJCNTswMjdCOzAyN0I7CiswMkI2OzAyQjY7MDJCNjswMjgxOzAyODE7CiswMkI3OzAyQjc7MDJCNzswMDc3OzAwNzc7CiswMkI4OzAyQjg7MDJCODswMDc5OzAwNzk7CiswMkQ4OzAyRDg7MDJEODswMDIwIDAzMDY7MDAyMCAwMzA2OworMDJEOTswMkQ5OzAyRDk7MDAyMCAwMzA3OzAwMjAgMDMwNzsKKzAyREE7MDJEQTswMkRBOzAwMjAgMDMwQTswMDIwIDAzMEE7CiswMkRCOzAyREI7MDJEQjswMDIwIDAzMjg7MDAyMCAwMzI4OworMDJEQzswMkRDOzAyREM7MDAyMCAwMzAzOzAwMjAgMDMwMzsKKzAyREQ7MDJERDswMkREOzAwMjAgMDMwQjswMDIwIDAzMEI7CiswMkUwOzAyRTA7MDJFMDswMjYzOzAyNjM7CiswMkUxOzAyRTE7MDJFMTswMDZDOzAwNkM7CiswMkUyOzAyRTI7MDJFMjswMDczOzAwNzM7CiswMkUzOzAyRTM7MDJFMzswMDc4OzAwNzg7CiswMkU0OzAyRTQ7MDJFNDswMjk1OzAyOTU7CiswMzQwOzAzMDA7MDMwMDswMzAwOzAzMDA7CiswMzQxOzAzMDE7MDMwMTswMzAxOzAzMDE7CiswMzQzOzAzMTM7MDMxMzswMzEzOzAzMTM7CiswMzQ0OzAzMDggMDMwMTswMzA4IDAzMDE7MDMwOCAwMzAxOzAzMDggMDMwMTsKKzAzNzQ7MDJCOTswMkI5OzAyQjk7MDJCOTsKKzAzN0E7MDM3QTswMzdBOzAwMjAgMDM0NTswMDIwIDAzNDU7CiswMzdFOzAwM0I7MDAzQjswMDNCOzAwM0I7CiswMzg0OzAzODQ7MDM4NDswMDIwIDAzMDE7MDAyMCAwMzAxOworMDM4NTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsKKzAzODY7MDM4NjswMzkxIDAzMDE7MDM4NjswMzkxIDAzMDE7CiswMzg3OzAwQjc7MDBCNzswMEI3OzAwQjc7CiswMzg4OzAzODg7MDM5NSAwMzAxOzAzODg7MDM5NSAwMzAxOworMDM4OTswMzg5OzAzOTcgMDMwMTswMzg5OzAzOTcgMDMwMTsKKzAzOEE7MDM4QTswMzk5IDAzMDE7MDM4QTswMzk5IDAzMDE7CiswMzhDOzAzOEM7MDM5RiAwMzAxOzAzOEM7MDM5RiAwMzAxOworMDM4RTswMzhFOzAzQTUgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzAzOEY7MDM4RjswM0E5IDAzMDE7MDM4RjswM0E5IDAzMDE7CiswMzkwOzAzOTA7MDNCOSAwMzA4IDAzMDE7MDM5MDswM0I5IDAzMDggMDMwMTsKKzAzQUE7MDNBQTswMzk5IDAzMDg7MDNBQTswMzk5IDAzMDg7CiswM0FCOzAzQUI7MDNBNSAwMzA4OzAzQUI7MDNBNSAwMzA4OworMDNBQzswM0FDOzAzQjEgMDMwMTswM0FDOzAzQjEgMDMwMTsKKzAzQUQ7MDNBRDswM0I1IDAzMDE7MDNBRDswM0I1IDAzMDE7CiswM0FFOzAzQUU7MDNCNyAwMzAxOzAzQUU7MDNCNyAwMzAxOworMDNBRjswM0FGOzAzQjkgMDMwMTswM0FGOzAzQjkgMDMwMTsKKzAzQjA7MDNCMDswM0M1IDAzMDggMDMwMTswM0IwOzAzQzUgMDMwOCAwMzAxOworMDNDQTswM0NBOzAzQjkgMDMwODswM0NBOzAzQjkgMDMwODsKKzAzQ0I7MDNDQjswM0M1IDAzMDg7MDNDQjswM0M1IDAzMDg7CiswM0NDOzAzQ0M7MDNCRiAwMzAxOzAzQ0M7MDNCRiAwMzAxOworMDNDRDswM0NEOzAzQzUgMDMwMTswM0NEOzAzQzUgMDMwMTsKKzAzQ0U7MDNDRTswM0M5IDAzMDE7MDNDRTswM0M5IDAzMDE7CiswM0QwOzAzRDA7MDNEMDswM0IyOzAzQjI7CiswM0QxOzAzRDE7MDNEMTswM0I4OzAzQjg7CiswM0QyOzAzRDI7MDNEMjswM0E1OzAzQTU7CiswM0QzOzAzRDM7MDNEMiAwMzAxOzAzOEU7MDNBNSAwMzAxOworMDNENDswM0Q0OzAzRDIgMDMwODswM0FCOzAzQTUgMDMwODsKKzAzRDU7MDNENTswM0Q1OzAzQzY7MDNDNjsKKzAzRDY7MDNENjswM0Q2OzAzQzA7MDNDMDsKKzAzRjA7MDNGMDswM0YwOzAzQkE7MDNCQTsKKzAzRjE7MDNGMTswM0YxOzAzQzE7MDNDMTsKKzAzRjI7MDNGMjswM0YyOzAzQzI7MDNDMjsKKzAzRjQ7MDNGNDswM0Y0OzAzOTg7MDM5ODsKKzAzRjU7MDNGNTswM0Y1OzAzQjU7MDNCNTsKKzAzRjk7MDNGOTswM0Y5OzAzQTM7MDNBMzsKKzA0MDA7MDQwMDswNDE1IDAzMDA7MDQwMDswNDE1IDAzMDA7CiswNDAxOzA0MDE7MDQxNSAwMzA4OzA0MDE7MDQxNSAwMzA4OworMDQwMzswNDAzOzA0MTMgMDMwMTswNDAzOzA0MTMgMDMwMTsKKzA0MDc7MDQwNzswNDA2IDAzMDg7MDQwNzswNDA2IDAzMDg7CiswNDBDOzA0MEM7MDQxQSAwMzAxOzA0MEM7MDQxQSAwMzAxOworMDQwRDswNDBEOzA0MTggMDMwMDswNDBEOzA0MTggMDMwMDsKKzA0MEU7MDQwRTswNDIzIDAzMDY7MDQwRTswNDIzIDAzMDY7CiswNDE5OzA0MTk7MDQxOCAwMzA2OzA0MTk7MDQxOCAwMzA2OworMDQzOTswNDM5OzA0MzggMDMwNjswNDM5OzA0MzggMDMwNjsKKzA0NTA7MDQ1MDswNDM1IDAzMDA7MDQ1MDswNDM1IDAzMDA7CiswNDUxOzA0NTE7MDQzNSAwMzA4OzA0NTE7MDQzNSAwMzA4OworMDQ1MzswNDUzOzA0MzMgMDMwMTswNDUzOzA0MzMgMDMwMTsKKzA0NTc7MDQ1NzswNDU2IDAzMDg7MDQ1NzswNDU2IDAzMDg7CiswNDVDOzA0NUM7MDQzQSAwMzAxOzA0NUM7MDQzQSAwMzAxOworMDQ1RDswNDVEOzA0MzggMDMwMDswNDVEOzA0MzggMDMwMDsKKzA0NUU7MDQ1RTswNDQzIDAzMDY7MDQ1RTswNDQzIDAzMDY7CiswNDc2OzA0NzY7MDQ3NCAwMzBGOzA0NzY7MDQ3NCAwMzBGOworMDQ3NzswNDc3OzA0NzUgMDMwRjswNDc3OzA0NzUgMDMwRjsKKzA0QzE7MDRDMTswNDE2IDAzMDY7MDRDMTswNDE2IDAzMDY7CiswNEMyOzA0QzI7MDQzNiAwMzA2OzA0QzI7MDQzNiAwMzA2OworMDREMDswNEQwOzA0MTAgMDMwNjswNEQwOzA0MTAgMDMwNjsKKzA0RDE7MDREMTswNDMwIDAzMDY7MDREMTswNDMwIDAzMDY7CiswNEQyOzA0RDI7MDQxMCAwMzA4OzA0RDI7MDQxMCAwMzA4OworMDREMzswNEQzOzA0MzAgMDMwODswNEQzOzA0MzAgMDMwODsKKzA0RDY7MDRENjswNDE1IDAzMDY7MDRENjswNDE1IDAzMDY7CiswNEQ3OzA0RDc7MDQzNSAwMzA2OzA0RDc7MDQzNSAwMzA2OworMDREQTswNERBOzA0RDggMDMwODswNERBOzA0RDggMDMwODsKKzA0REI7MDREQjswNEQ5IDAzMDg7MDREQjswNEQ5IDAzMDg7CiswNERDOzA0REM7MDQxNiAwMzA4OzA0REM7MDQxNiAwMzA4OworMDRERDswNEREOzA0MzYgMDMwODswNEREOzA0MzYgMDMwODsKKzA0REU7MDRERTswNDE3IDAzMDg7MDRERTswNDE3IDAzMDg7CiswNERGOzA0REY7MDQzNyAwMzA4OzA0REY7MDQzNyAwMzA4OworMDRFMjswNEUyOzA0MTggMDMwNDswNEUyOzA0MTggMDMwNDsKKzA0RTM7MDRFMzswNDM4IDAzMDQ7MDRFMzswNDM4IDAzMDQ7CiswNEU0OzA0RTQ7MDQxOCAwMzA4OzA0RTQ7MDQxOCAwMzA4OworMDRFNTswNEU1OzA0MzggMDMwODswNEU1OzA0MzggMDMwODsKKzA0RTY7MDRFNjswNDFFIDAzMDg7MDRFNjswNDFFIDAzMDg7CiswNEU3OzA0RTc7MDQzRSAwMzA4OzA0RTc7MDQzRSAwMzA4OworMDRFQTswNEVBOzA0RTggMDMwODswNEVBOzA0RTggMDMwODsKKzA0RUI7MDRFQjswNEU5IDAzMDg7MDRFQjswNEU5IDAzMDg7CiswNEVDOzA0RUM7MDQyRCAwMzA4OzA0RUM7MDQyRCAwMzA4OworMDRFRDswNEVEOzA0NEQgMDMwODswNEVEOzA0NEQgMDMwODsKKzA0RUU7MDRFRTswNDIzIDAzMDQ7MDRFRTswNDIzIDAzMDQ7CiswNEVGOzA0RUY7MDQ0MyAwMzA0OzA0RUY7MDQ0MyAwMzA0OworMDRGMDswNEYwOzA0MjMgMDMwODswNEYwOzA0MjMgMDMwODsKKzA0RjE7MDRGMTswNDQzIDAzMDg7MDRGMTswNDQzIDAzMDg7CiswNEYyOzA0RjI7MDQyMyAwMzBCOzA0RjI7MDQyMyAwMzBCOworMDRGMzswNEYzOzA0NDMgMDMwQjswNEYzOzA0NDMgMDMwQjsKKzA0RjQ7MDRGNDswNDI3IDAzMDg7MDRGNDswNDI3IDAzMDg7CiswNEY1OzA0RjU7MDQ0NyAwMzA4OzA0RjU7MDQ0NyAwMzA4OworMDRGODswNEY4OzA0MkIgMDMwODswNEY4OzA0MkIgMDMwODsKKzA0Rjk7MDRGOTswNDRCIDAzMDg7MDRGOTswNDRCIDAzMDg7CiswNTg3OzA1ODc7MDU4NzswNTY1IDA1ODI7MDU2NSAwNTgyOworMDYyMjswNjIyOzA2MjcgMDY1MzswNjIyOzA2MjcgMDY1MzsKKzA2MjM7MDYyMzswNjI3IDA2NTQ7MDYyMzswNjI3IDA2NTQ7CiswNjI0OzA2MjQ7MDY0OCAwNjU0OzA2MjQ7MDY0OCAwNjU0OworMDYyNTswNjI1OzA2MjcgMDY1NTswNjI1OzA2MjcgMDY1NTsKKzA2MjY7MDYyNjswNjRBIDA2NTQ7MDYyNjswNjRBIDA2NTQ7CiswNjc1OzA2NzU7MDY3NTswNjI3IDA2NzQ7MDYyNyAwNjc0OworMDY3NjswNjc2OzA2NzY7MDY0OCAwNjc0OzA2NDggMDY3NDsKKzA2Nzc7MDY3NzswNjc3OzA2QzcgMDY3NDswNkM3IDA2NzQ7CiswNjc4OzA2Nzg7MDY3ODswNjRBIDA2NzQ7MDY0QSAwNjc0OworMDZDMDswNkMwOzA2RDUgMDY1NDswNkMwOzA2RDUgMDY1NDsKKzA2QzI7MDZDMjswNkMxIDA2NTQ7MDZDMjswNkMxIDA2NTQ7CiswNkQzOzA2RDM7MDZEMiAwNjU0OzA2RDM7MDZEMiAwNjU0OworMDkyOTswOTI5OzA5MjggMDkzQzswOTI5OzA5MjggMDkzQzsKKzA5MzE7MDkzMTswOTMwIDA5M0M7MDkzMTswOTMwIDA5M0M7CiswOTM0OzA5MzQ7MDkzMyAwOTNDOzA5MzQ7MDkzMyAwOTNDOworMDk1ODswOTE1IDA5M0M7MDkxNSAwOTNDOzA5MTUgMDkzQzswOTE1IDA5M0M7CiswOTU5OzA5MTYgMDkzQzswOTE2IDA5M0M7MDkxNiAwOTNDOzA5MTYgMDkzQzsKKzA5NUE7MDkxNyAwOTNDOzA5MTcgMDkzQzswOTE3IDA5M0M7MDkxNyAwOTNDOworMDk1QjswOTFDIDA5M0M7MDkxQyAwOTNDOzA5MUMgMDkzQzswOTFDIDA5M0M7CiswOTVDOzA5MjEgMDkzQzswOTIxIDA5M0M7MDkyMSAwOTNDOzA5MjEgMDkzQzsKKzA5NUQ7MDkyMiAwOTNDOzA5MjIgMDkzQzswOTIyIDA5M0M7MDkyMiAwOTNDOworMDk1RTswOTJCIDA5M0M7MDkyQiAwOTNDOzA5MkIgMDkzQzswOTJCIDA5M0M7CiswOTVGOzA5MkYgMDkzQzswOTJGIDA5M0M7MDkyRiAwOTNDOzA5MkYgMDkzQzsKKzA5Q0I7MDlDQjswOUM3IDA5QkU7MDlDQjswOUM3IDA5QkU7CiswOUNDOzA5Q0M7MDlDNyAwOUQ3OzA5Q0M7MDlDNyAwOUQ3OworMDlEQzswOUExIDA5QkM7MDlBMSAwOUJDOzA5QTEgMDlCQzswOUExIDA5QkM7CiswOUREOzA5QTIgMDlCQzswOUEyIDA5QkM7MDlBMiAwOUJDOzA5QTIgMDlCQzsKKzA5REY7MDlBRiAwOUJDOzA5QUYgMDlCQzswOUFGIDA5QkM7MDlBRiAwOUJDOworMEEzMzswQTMyIDBBM0M7MEEzMiAwQTNDOzBBMzIgMEEzQzswQTMyIDBBM0M7CiswQTM2OzBBMzggMEEzQzswQTM4IDBBM0M7MEEzOCAwQTNDOzBBMzggMEEzQzsKKzBBNTk7MEExNiAwQTNDOzBBMTYgMEEzQzswQTE2IDBBM0M7MEExNiAwQTNDOworMEE1QTswQTE3IDBBM0M7MEExNyAwQTNDOzBBMTcgMEEzQzswQTE3IDBBM0M7CiswQTVCOzBBMUMgMEEzQzswQTFDIDBBM0M7MEExQyAwQTNDOzBBMUMgMEEzQzsKKzBBNUU7MEEyQiAwQTNDOzBBMkIgMEEzQzswQTJCIDBBM0M7MEEyQiAwQTNDOworMEI0ODswQjQ4OzBCNDcgMEI1NjswQjQ4OzBCNDcgMEI1NjsKKzBCNEI7MEI0QjswQjQ3IDBCM0U7MEI0QjswQjQ3IDBCM0U7CiswQjRDOzBCNEM7MEI0NyAwQjU3OzBCNEM7MEI0NyAwQjU3OworMEI1QzswQjIxIDBCM0M7MEIyMSAwQjNDOzBCMjEgMEIzQzswQjIxIDBCM0M7CiswQjVEOzBCMjIgMEIzQzswQjIyIDBCM0M7MEIyMiAwQjNDOzBCMjIgMEIzQzsKKzBCOTQ7MEI5NDswQjkyIDBCRDc7MEI5NDswQjkyIDBCRDc7CiswQkNBOzBCQ0E7MEJDNiAwQkJFOzBCQ0E7MEJDNiAwQkJFOworMEJDQjswQkNCOzBCQzcgMEJCRTswQkNCOzBCQzcgMEJCRTsKKzBCQ0M7MEJDQzswQkM2IDBCRDc7MEJDQzswQkM2IDBCRDc7CiswQzQ4OzBDNDg7MEM0NiAwQzU2OzBDNDg7MEM0NiAwQzU2OworMENDMDswQ0MwOzBDQkYgMENENTswQ0MwOzBDQkYgMENENTsKKzBDQzc7MENDNzswQ0M2IDBDRDU7MENDNzswQ0M2IDBDRDU7CiswQ0M4OzBDQzg7MENDNiAwQ0Q2OzBDQzg7MENDNiAwQ0Q2OworMENDQTswQ0NBOzBDQzYgMENDMjswQ0NBOzBDQzYgMENDMjsKKzBDQ0I7MENDQjswQ0M2IDBDQzIgMENENTswQ0NCOzBDQzYgMENDMiAwQ0Q1OworMEQ0QTswRDRBOzBENDYgMEQzRTswRDRBOzBENDYgMEQzRTsKKzBENEI7MEQ0QjswRDQ3IDBEM0U7MEQ0QjswRDQ3IDBEM0U7CiswRDRDOzBENEM7MEQ0NiAwRDU3OzBENEM7MEQ0NiAwRDU3OworMEREQTswRERBOzBERDkgMERDQTswRERBOzBERDkgMERDQTsKKzBEREM7MEREQzswREQ5IDBEQ0Y7MEREQzswREQ5IDBEQ0Y7CiswREREOzBEREQ7MEREOSAwRENGIDBEQ0E7MERERDswREQ5IDBEQ0YgMERDQTsKKzBEREU7MERERTswREQ5IDBEREY7MERERTswREQ5IDBEREY7CiswRTMzOzBFMzM7MEUzMzswRTREIDBFMzI7MEU0RCAwRTMyOworMEVCMzswRUIzOzBFQjM7MEVDRCAwRUIyOzBFQ0QgMEVCMjsKKzBFREM7MEVEQzswRURDOzBFQUIgMEU5OTswRUFCIDBFOTk7CiswRUREOzBFREQ7MEVERDswRUFCIDBFQTE7MEVBQiAwRUExOworMEYwQzswRjBDOzBGMEM7MEYwQjswRjBCOworMEY0MzswRjQyIDBGQjc7MEY0MiAwRkI3OzBGNDIgMEZCNzswRjQyIDBGQjc7CiswRjREOzBGNEMgMEZCNzswRjRDIDBGQjc7MEY0QyAwRkI3OzBGNEMgMEZCNzsKKzBGNTI7MEY1MSAwRkI3OzBGNTEgMEZCNzswRjUxIDBGQjc7MEY1MSAwRkI3OworMEY1NzswRjU2IDBGQjc7MEY1NiAwRkI3OzBGNTYgMEZCNzswRjU2IDBGQjc7CiswRjVDOzBGNUIgMEZCNzswRjVCIDBGQjc7MEY1QiAwRkI3OzBGNUIgMEZCNzsKKzBGNjk7MEY0MCAwRkI1OzBGNDAgMEZCNTswRjQwIDBGQjU7MEY0MCAwRkI1OworMEY3MzswRjcxIDBGNzI7MEY3MSAwRjcyOzBGNzEgMEY3MjswRjcxIDBGNzI7CiswRjc1OzBGNzEgMEY3NDswRjcxIDBGNzQ7MEY3MSAwRjc0OzBGNzEgMEY3NDsKKzBGNzY7MEZCMiAwRjgwOzBGQjIgMEY4MDswRkIyIDBGODA7MEZCMiAwRjgwOworMEY3NzswRjc3OzBGNzc7MEZCMiAwRjcxIDBGODA7MEZCMiAwRjcxIDBGODA7CiswRjc4OzBGQjMgMEY4MDswRkIzIDBGODA7MEZCMyAwRjgwOzBGQjMgMEY4MDsKKzBGNzk7MEY3OTswRjc5OzBGQjMgMEY3MSAwRjgwOzBGQjMgMEY3MSAwRjgwOworMEY4MTswRjcxIDBGODA7MEY3MSAwRjgwOzBGNzEgMEY4MDswRjcxIDBGODA7CiswRjkzOzBGOTIgMEZCNzswRjkyIDBGQjc7MEY5MiAwRkI3OzBGOTIgMEZCNzsKKzBGOUQ7MEY5QyAwRkI3OzBGOUMgMEZCNzswRjlDIDBGQjc7MEY5QyAwRkI3OworMEZBMjswRkExIDBGQjc7MEZBMSAwRkI3OzBGQTEgMEZCNzswRkExIDBGQjc7CiswRkE3OzBGQTYgMEZCNzswRkE2IDBGQjc7MEZBNiAwRkI3OzBGQTYgMEZCNzsKKzBGQUM7MEZBQiAwRkI3OzBGQUIgMEZCNzswRkFCIDBGQjc7MEZBQiAwRkI3OworMEZCOTswRjkwIDBGQjU7MEY5MCAwRkI1OzBGOTAgMEZCNTswRjkwIDBGQjU7CisxMDI2OzEwMjY7MTAyNSAxMDJFOzEwMjY7MTAyNSAxMDJFOworMTBGQzsxMEZDOzEwRkM7MTBEQzsxMERDOworMUQyQzsxRDJDOzFEMkM7MDA0MTswMDQxOworMUQyRDsxRDJEOzFEMkQ7MDBDNjswMEM2OworMUQyRTsxRDJFOzFEMkU7MDA0MjswMDQyOworMUQzMDsxRDMwOzFEMzA7MDA0NDswMDQ0OworMUQzMTsxRDMxOzFEMzE7MDA0NTswMDQ1OworMUQzMjsxRDMyOzFEMzI7MDE4RTswMThFOworMUQzMzsxRDMzOzFEMzM7MDA0NzswMDQ3OworMUQzNDsxRDM0OzFEMzQ7MDA0ODswMDQ4OworMUQzNTsxRDM1OzFEMzU7MDA0OTswMDQ5OworMUQzNjsxRDM2OzFEMzY7MDA0QTswMDRBOworMUQzNzsxRDM3OzFEMzc7MDA0QjswMDRCOworMUQzODsxRDM4OzFEMzg7MDA0QzswMDRDOworMUQzOTsxRDM5OzFEMzk7MDA0RDswMDREOworMUQzQTsxRDNBOzFEM0E7MDA0RTswMDRFOworMUQzQzsxRDNDOzFEM0M7MDA0RjswMDRGOworMUQzRDsxRDNEOzFEM0Q7MDIyMjswMjIyOworMUQzRTsxRDNFOzFEM0U7MDA1MDswMDUwOworMUQzRjsxRDNGOzFEM0Y7MDA1MjswMDUyOworMUQ0MDsxRDQwOzFENDA7MDA1NDswMDU0OworMUQ0MTsxRDQxOzFENDE7MDA1NTswMDU1OworMUQ0MjsxRDQyOzFENDI7MDA1NzswMDU3OworMUQ0MzsxRDQzOzFENDM7MDA2MTswMDYxOworMUQ0NDsxRDQ0OzFENDQ7MDI1MDswMjUwOworMUQ0NTsxRDQ1OzFENDU7MDI1MTswMjUxOworMUQ0NjsxRDQ2OzFENDY7MUQwMjsxRDAyOworMUQ0NzsxRDQ3OzFENDc7MDA2MjswMDYyOworMUQ0ODsxRDQ4OzFENDg7MDA2NDswMDY0OworMUQ0OTsxRDQ5OzFENDk7MDA2NTswMDY1OworMUQ0QTsxRDRBOzFENEE7MDI1OTswMjU5OworMUQ0QjsxRDRCOzFENEI7MDI1QjswMjVCOworMUQ0QzsxRDRDOzFENEM7MDI1QzswMjVDOworMUQ0RDsxRDREOzFENEQ7MDA2NzswMDY3OworMUQ0RjsxRDRGOzFENEY7MDA2QjswMDZCOworMUQ1MDsxRDUwOzFENTA7MDA2RDswMDZEOworMUQ1MTsxRDUxOzFENTE7MDE0QjswMTRCOworMUQ1MjsxRDUyOzFENTI7MDA2RjswMDZGOworMUQ1MzsxRDUzOzFENTM7MDI1NDswMjU0OworMUQ1NDsxRDU0OzFENTQ7MUQxNjsxRDE2OworMUQ1NTsxRDU1OzFENTU7MUQxNzsxRDE3OworMUQ1NjsxRDU2OzFENTY7MDA3MDswMDcwOworMUQ1NzsxRDU3OzFENTc7MDA3NDswMDc0OworMUQ1ODsxRDU4OzFENTg7MDA3NTswMDc1OworMUQ1OTsxRDU5OzFENTk7MUQxRDsxRDFEOworMUQ1QTsxRDVBOzFENUE7MDI2RjswMjZGOworMUQ1QjsxRDVCOzFENUI7MDA3NjswMDc2OworMUQ1QzsxRDVDOzFENUM7MUQyNTsxRDI1OworMUQ1RDsxRDVEOzFENUQ7MDNCMjswM0IyOworMUQ1RTsxRDVFOzFENUU7MDNCMzswM0IzOworMUQ1RjsxRDVGOzFENUY7MDNCNDswM0I0OworMUQ2MDsxRDYwOzFENjA7MDNDNjswM0M2OworMUQ2MTsxRDYxOzFENjE7MDNDNzswM0M3OworMUQ2MjsxRDYyOzFENjI7MDA2OTswMDY5OworMUQ2MzsxRDYzOzFENjM7MDA3MjswMDcyOworMUQ2NDsxRDY0OzFENjQ7MDA3NTswMDc1OworMUQ2NTsxRDY1OzFENjU7MDA3NjswMDc2OworMUQ2NjsxRDY2OzFENjY7MDNCMjswM0IyOworMUQ2NzsxRDY3OzFENjc7MDNCMzswM0IzOworMUQ2ODsxRDY4OzFENjg7MDNDMTswM0MxOworMUQ2OTsxRDY5OzFENjk7MDNDNjswM0M2OworMUQ2QTsxRDZBOzFENkE7MDNDNzswM0M3OworMUQ3ODsxRDc4OzFENzg7MDQzRDswNDNEOworMUQ5QjsxRDlCOzFEOUI7MDI1MjswMjUyOworMUQ5QzsxRDlDOzFEOUM7MDA2MzswMDYzOworMUQ5RDsxRDlEOzFEOUQ7MDI1NTswMjU1OworMUQ5RTsxRDlFOzFEOUU7MDBGMDswMEYwOworMUQ5RjsxRDlGOzFEOUY7MDI1QzswMjVDOworMURBMDsxREEwOzFEQTA7MDA2NjswMDY2OworMURBMTsxREExOzFEQTE7MDI1RjswMjVGOworMURBMjsxREEyOzFEQTI7MDI2MTswMjYxOworMURBMzsxREEzOzFEQTM7MDI2NTswMjY1OworMURBNDsxREE0OzFEQTQ7MDI2ODswMjY4OworMURBNTsxREE1OzFEQTU7MDI2OTswMjY5OworMURBNjsxREE2OzFEQTY7MDI2QTswMjZBOworMURBNzsxREE3OzFEQTc7MUQ3QjsxRDdCOworMURBODsxREE4OzFEQTg7MDI5RDswMjlEOworMURBOTsxREE5OzFEQTk7MDI2RDswMjZEOworMURBQTsxREFBOzFEQUE7MUQ4NTsxRDg1OworMURBQjsxREFCOzFEQUI7MDI5RjswMjlGOworMURBQzsxREFDOzFEQUM7MDI3MTswMjcxOworMURBRDsxREFEOzFEQUQ7MDI3MDswMjcwOworMURBRTsxREFFOzFEQUU7MDI3MjswMjcyOworMURBRjsxREFGOzFEQUY7MDI3MzswMjczOworMURCMDsxREIwOzFEQjA7MDI3NDswMjc0OworMURCMTsxREIxOzFEQjE7MDI3NTswMjc1OworMURCMjsxREIyOzFEQjI7MDI3ODswMjc4OworMURCMzsxREIzOzFEQjM7MDI4MjswMjgyOworMURCNDsxREI0OzFEQjQ7MDI4MzswMjgzOworMURCNTsxREI1OzFEQjU7MDFBQjswMUFCOworMURCNjsxREI2OzFEQjY7MDI4OTswMjg5OworMURCNzsxREI3OzFEQjc7MDI4QTswMjhBOworMURCODsxREI4OzFEQjg7MUQxQzsxRDFDOworMURCOTsxREI5OzFEQjk7MDI4QjswMjhCOworMURCQTsxREJBOzFEQkE7MDI4QzswMjhDOworMURCQjsxREJCOzFEQkI7MDA3QTswMDdBOworMURCQzsxREJDOzFEQkM7MDI5MDswMjkwOworMURCRDsxREJEOzFEQkQ7MDI5MTswMjkxOworMURCRTsxREJFOzFEQkU7MDI5MjswMjkyOworMURCRjsxREJGOzFEQkY7MDNCODswM0I4OworMUUwMDsxRTAwOzAwNDEgMDMyNTsxRTAwOzAwNDEgMDMyNTsKKzFFMDE7MUUwMTswMDYxIDAzMjU7MUUwMTswMDYxIDAzMjU7CisxRTAyOzFFMDI7MDA0MiAwMzA3OzFFMDI7MDA0MiAwMzA3OworMUUwMzsxRTAzOzAwNjIgMDMwNzsxRTAzOzAwNjIgMDMwNzsKKzFFMDQ7MUUwNDswMDQyIDAzMjM7MUUwNDswMDQyIDAzMjM7CisxRTA1OzFFMDU7MDA2MiAwMzIzOzFFMDU7MDA2MiAwMzIzOworMUUwNjsxRTA2OzAwNDIgMDMzMTsxRTA2OzAwNDIgMDMzMTsKKzFFMDc7MUUwNzswMDYyIDAzMzE7MUUwNzswMDYyIDAzMzE7CisxRTA4OzFFMDg7MDA0MyAwMzI3IDAzMDE7MUUwODswMDQzIDAzMjcgMDMwMTsKKzFFMDk7MUUwOTswMDYzIDAzMjcgMDMwMTsxRTA5OzAwNjMgMDMyNyAwMzAxOworMUUwQTsxRTBBOzAwNDQgMDMwNzsxRTBBOzAwNDQgMDMwNzsKKzFFMEI7MUUwQjswMDY0IDAzMDc7MUUwQjswMDY0IDAzMDc7CisxRTBDOzFFMEM7MDA0NCAwMzIzOzFFMEM7MDA0NCAwMzIzOworMUUwRDsxRTBEOzAwNjQgMDMyMzsxRTBEOzAwNjQgMDMyMzsKKzFFMEU7MUUwRTswMDQ0IDAzMzE7MUUwRTswMDQ0IDAzMzE7CisxRTBGOzFFMEY7MDA2NCAwMzMxOzFFMEY7MDA2NCAwMzMxOworMUUxMDsxRTEwOzAwNDQgMDMyNzsxRTEwOzAwNDQgMDMyNzsKKzFFMTE7MUUxMTswMDY0IDAzMjc7MUUxMTswMDY0IDAzMjc7CisxRTEyOzFFMTI7MDA0NCAwMzJEOzFFMTI7MDA0NCAwMzJEOworMUUxMzsxRTEzOzAwNjQgMDMyRDsxRTEzOzAwNjQgMDMyRDsKKzFFMTQ7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMUUxNTsxRTE1OzAwNjUgMDMwNCAwMzAwOzFFMTU7MDA2NSAwMzA0IDAzMDA7CisxRTE2OzFFMTY7MDA0NSAwMzA0IDAzMDE7MUUxNjswMDQ1IDAzMDQgMDMwMTsKKzFFMTc7MUUxNzswMDY1IDAzMDQgMDMwMTsxRTE3OzAwNjUgMDMwNCAwMzAxOworMUUxODsxRTE4OzAwNDUgMDMyRDsxRTE4OzAwNDUgMDMyRDsKKzFFMTk7MUUxOTswMDY1IDAzMkQ7MUUxOTswMDY1IDAzMkQ7CisxRTFBOzFFMUE7MDA0NSAwMzMwOzFFMUE7MDA0NSAwMzMwOworMUUxQjsxRTFCOzAwNjUgMDMzMDsxRTFCOzAwNjUgMDMzMDsKKzFFMUM7MUUxQzswMDQ1IDAzMjcgMDMwNjsxRTFDOzAwNDUgMDMyNyAwMzA2OworMUUxRDsxRTFEOzAwNjUgMDMyNyAwMzA2OzFFMUQ7MDA2NSAwMzI3IDAzMDY7CisxRTFFOzFFMUU7MDA0NiAwMzA3OzFFMUU7MDA0NiAwMzA3OworMUUxRjsxRTFGOzAwNjYgMDMwNzsxRTFGOzAwNjYgMDMwNzsKKzFFMjA7MUUyMDswMDQ3IDAzMDQ7MUUyMDswMDQ3IDAzMDQ7CisxRTIxOzFFMjE7MDA2NyAwMzA0OzFFMjE7MDA2NyAwMzA0OworMUUyMjsxRTIyOzAwNDggMDMwNzsxRTIyOzAwNDggMDMwNzsKKzFFMjM7MUUyMzswMDY4IDAzMDc7MUUyMzswMDY4IDAzMDc7CisxRTI0OzFFMjQ7MDA0OCAwMzIzOzFFMjQ7MDA0OCAwMzIzOworMUUyNTsxRTI1OzAwNjggMDMyMzsxRTI1OzAwNjggMDMyMzsKKzFFMjY7MUUyNjswMDQ4IDAzMDg7MUUyNjswMDQ4IDAzMDg7CisxRTI3OzFFMjc7MDA2OCAwMzA4OzFFMjc7MDA2OCAwMzA4OworMUUyODsxRTI4OzAwNDggMDMyNzsxRTI4OzAwNDggMDMyNzsKKzFFMjk7MUUyOTswMDY4IDAzMjc7MUUyOTswMDY4IDAzMjc7CisxRTJBOzFFMkE7MDA0OCAwMzJFOzFFMkE7MDA0OCAwMzJFOworMUUyQjsxRTJCOzAwNjggMDMyRTsxRTJCOzAwNjggMDMyRTsKKzFFMkM7MUUyQzswMDQ5IDAzMzA7MUUyQzswMDQ5IDAzMzA7CisxRTJEOzFFMkQ7MDA2OSAwMzMwOzFFMkQ7MDA2OSAwMzMwOworMUUyRTsxRTJFOzAwNDkgMDMwOCAwMzAxOzFFMkU7MDA0OSAwMzA4IDAzMDE7CisxRTJGOzFFMkY7MDA2OSAwMzA4IDAzMDE7MUUyRjswMDY5IDAzMDggMDMwMTsKKzFFMzA7MUUzMDswMDRCIDAzMDE7MUUzMDswMDRCIDAzMDE7CisxRTMxOzFFMzE7MDA2QiAwMzAxOzFFMzE7MDA2QiAwMzAxOworMUUzMjsxRTMyOzAwNEIgMDMyMzsxRTMyOzAwNEIgMDMyMzsKKzFFMzM7MUUzMzswMDZCIDAzMjM7MUUzMzswMDZCIDAzMjM7CisxRTM0OzFFMzQ7MDA0QiAwMzMxOzFFMzQ7MDA0QiAwMzMxOworMUUzNTsxRTM1OzAwNkIgMDMzMTsxRTM1OzAwNkIgMDMzMTsKKzFFMzY7MUUzNjswMDRDIDAzMjM7MUUzNjswMDRDIDAzMjM7CisxRTM3OzFFMzc7MDA2QyAwMzIzOzFFMzc7MDA2QyAwMzIzOworMUUzODsxRTM4OzAwNEMgMDMyMyAwMzA0OzFFMzg7MDA0QyAwMzIzIDAzMDQ7CisxRTM5OzFFMzk7MDA2QyAwMzIzIDAzMDQ7MUUzOTswMDZDIDAzMjMgMDMwNDsKKzFFM0E7MUUzQTswMDRDIDAzMzE7MUUzQTswMDRDIDAzMzE7CisxRTNCOzFFM0I7MDA2QyAwMzMxOzFFM0I7MDA2QyAwMzMxOworMUUzQzsxRTNDOzAwNEMgMDMyRDsxRTNDOzAwNEMgMDMyRDsKKzFFM0Q7MUUzRDswMDZDIDAzMkQ7MUUzRDswMDZDIDAzMkQ7CisxRTNFOzFFM0U7MDA0RCAwMzAxOzFFM0U7MDA0RCAwMzAxOworMUUzRjsxRTNGOzAwNkQgMDMwMTsxRTNGOzAwNkQgMDMwMTsKKzFFNDA7MUU0MDswMDREIDAzMDc7MUU0MDswMDREIDAzMDc7CisxRTQxOzFFNDE7MDA2RCAwMzA3OzFFNDE7MDA2RCAwMzA3OworMUU0MjsxRTQyOzAwNEQgMDMyMzsxRTQyOzAwNEQgMDMyMzsKKzFFNDM7MUU0MzswMDZEIDAzMjM7MUU0MzswMDZEIDAzMjM7CisxRTQ0OzFFNDQ7MDA0RSAwMzA3OzFFNDQ7MDA0RSAwMzA3OworMUU0NTsxRTQ1OzAwNkUgMDMwNzsxRTQ1OzAwNkUgMDMwNzsKKzFFNDY7MUU0NjswMDRFIDAzMjM7MUU0NjswMDRFIDAzMjM7CisxRTQ3OzFFNDc7MDA2RSAwMzIzOzFFNDc7MDA2RSAwMzIzOworMUU0ODsxRTQ4OzAwNEUgMDMzMTsxRTQ4OzAwNEUgMDMzMTsKKzFFNDk7MUU0OTswMDZFIDAzMzE7MUU0OTswMDZFIDAzMzE7CisxRTRBOzFFNEE7MDA0RSAwMzJEOzFFNEE7MDA0RSAwMzJEOworMUU0QjsxRTRCOzAwNkUgMDMyRDsxRTRCOzAwNkUgMDMyRDsKKzFFNEM7MUU0QzswMDRGIDAzMDMgMDMwMTsxRTRDOzAwNEYgMDMwMyAwMzAxOworMUU0RDsxRTREOzAwNkYgMDMwMyAwMzAxOzFFNEQ7MDA2RiAwMzAzIDAzMDE7CisxRTRFOzFFNEU7MDA0RiAwMzAzIDAzMDg7MUU0RTswMDRGIDAzMDMgMDMwODsKKzFFNEY7MUU0RjswMDZGIDAzMDMgMDMwODsxRTRGOzAwNkYgMDMwMyAwMzA4OworMUU1MDsxRTUwOzAwNEYgMDMwNCAwMzAwOzFFNTA7MDA0RiAwMzA0IDAzMDA7CisxRTUxOzFFNTE7MDA2RiAwMzA0IDAzMDA7MUU1MTswMDZGIDAzMDQgMDMwMDsKKzFFNTI7MUU1MjswMDRGIDAzMDQgMDMwMTsxRTUyOzAwNEYgMDMwNCAwMzAxOworMUU1MzsxRTUzOzAwNkYgMDMwNCAwMzAxOzFFNTM7MDA2RiAwMzA0IDAzMDE7CisxRTU0OzFFNTQ7MDA1MCAwMzAxOzFFNTQ7MDA1MCAwMzAxOworMUU1NTsxRTU1OzAwNzAgMDMwMTsxRTU1OzAwNzAgMDMwMTsKKzFFNTY7MUU1NjswMDUwIDAzMDc7MUU1NjswMDUwIDAzMDc7CisxRTU3OzFFNTc7MDA3MCAwMzA3OzFFNTc7MDA3MCAwMzA3OworMUU1ODsxRTU4OzAwNTIgMDMwNzsxRTU4OzAwNTIgMDMwNzsKKzFFNTk7MUU1OTswMDcyIDAzMDc7MUU1OTswMDcyIDAzMDc7CisxRTVBOzFFNUE7MDA1MiAwMzIzOzFFNUE7MDA1MiAwMzIzOworMUU1QjsxRTVCOzAwNzIgMDMyMzsxRTVCOzAwNzIgMDMyMzsKKzFFNUM7MUU1QzswMDUyIDAzMjMgMDMwNDsxRTVDOzAwNTIgMDMyMyAwMzA0OworMUU1RDsxRTVEOzAwNzIgMDMyMyAwMzA0OzFFNUQ7MDA3MiAwMzIzIDAzMDQ7CisxRTVFOzFFNUU7MDA1MiAwMzMxOzFFNUU7MDA1MiAwMzMxOworMUU1RjsxRTVGOzAwNzIgMDMzMTsxRTVGOzAwNzIgMDMzMTsKKzFFNjA7MUU2MDswMDUzIDAzMDc7MUU2MDswMDUzIDAzMDc7CisxRTYxOzFFNjE7MDA3MyAwMzA3OzFFNjE7MDA3MyAwMzA3OworMUU2MjsxRTYyOzAwNTMgMDMyMzsxRTYyOzAwNTMgMDMyMzsKKzFFNjM7MUU2MzswMDczIDAzMjM7MUU2MzswMDczIDAzMjM7CisxRTY0OzFFNjQ7MDA1MyAwMzAxIDAzMDc7MUU2NDswMDUzIDAzMDEgMDMwNzsKKzFFNjU7MUU2NTswMDczIDAzMDEgMDMwNzsxRTY1OzAwNzMgMDMwMSAwMzA3OworMUU2NjsxRTY2OzAwNTMgMDMwQyAwMzA3OzFFNjY7MDA1MyAwMzBDIDAzMDc7CisxRTY3OzFFNjc7MDA3MyAwMzBDIDAzMDc7MUU2NzswMDczIDAzMEMgMDMwNzsKKzFFNjg7MUU2ODswMDUzIDAzMjMgMDMwNzsxRTY4OzAwNTMgMDMyMyAwMzA3OworMUU2OTsxRTY5OzAwNzMgMDMyMyAwMzA3OzFFNjk7MDA3MyAwMzIzIDAzMDc7CisxRTZBOzFFNkE7MDA1NCAwMzA3OzFFNkE7MDA1NCAwMzA3OworMUU2QjsxRTZCOzAwNzQgMDMwNzsxRTZCOzAwNzQgMDMwNzsKKzFFNkM7MUU2QzswMDU0IDAzMjM7MUU2QzswMDU0IDAzMjM7CisxRTZEOzFFNkQ7MDA3NCAwMzIzOzFFNkQ7MDA3NCAwMzIzOworMUU2RTsxRTZFOzAwNTQgMDMzMTsxRTZFOzAwNTQgMDMzMTsKKzFFNkY7MUU2RjswMDc0IDAzMzE7MUU2RjswMDc0IDAzMzE7CisxRTcwOzFFNzA7MDA1NCAwMzJEOzFFNzA7MDA1NCAwMzJEOworMUU3MTsxRTcxOzAwNzQgMDMyRDsxRTcxOzAwNzQgMDMyRDsKKzFFNzI7MUU3MjswMDU1IDAzMjQ7MUU3MjswMDU1IDAzMjQ7CisxRTczOzFFNzM7MDA3NSAwMzI0OzFFNzM7MDA3NSAwMzI0OworMUU3NDsxRTc0OzAwNTUgMDMzMDsxRTc0OzAwNTUgMDMzMDsKKzFFNzU7MUU3NTswMDc1IDAzMzA7MUU3NTswMDc1IDAzMzA7CisxRTc2OzFFNzY7MDA1NSAwMzJEOzFFNzY7MDA1NSAwMzJEOworMUU3NzsxRTc3OzAwNzUgMDMyRDsxRTc3OzAwNzUgMDMyRDsKKzFFNzg7MUU3ODswMDU1IDAzMDMgMDMwMTsxRTc4OzAwNTUgMDMwMyAwMzAxOworMUU3OTsxRTc5OzAwNzUgMDMwMyAwMzAxOzFFNzk7MDA3NSAwMzAzIDAzMDE7CisxRTdBOzFFN0E7MDA1NSAwMzA0IDAzMDg7MUU3QTswMDU1IDAzMDQgMDMwODsKKzFFN0I7MUU3QjswMDc1IDAzMDQgMDMwODsxRTdCOzAwNzUgMDMwNCAwMzA4OworMUU3QzsxRTdDOzAwNTYgMDMwMzsxRTdDOzAwNTYgMDMwMzsKKzFFN0Q7MUU3RDswMDc2IDAzMDM7MUU3RDswMDc2IDAzMDM7CisxRTdFOzFFN0U7MDA1NiAwMzIzOzFFN0U7MDA1NiAwMzIzOworMUU3RjsxRTdGOzAwNzYgMDMyMzsxRTdGOzAwNzYgMDMyMzsKKzFFODA7MUU4MDswMDU3IDAzMDA7MUU4MDswMDU3IDAzMDA7CisxRTgxOzFFODE7MDA3NyAwMzAwOzFFODE7MDA3NyAwMzAwOworMUU4MjsxRTgyOzAwNTcgMDMwMTsxRTgyOzAwNTcgMDMwMTsKKzFFODM7MUU4MzswMDc3IDAzMDE7MUU4MzswMDc3IDAzMDE7CisxRTg0OzFFODQ7MDA1NyAwMzA4OzFFODQ7MDA1NyAwMzA4OworMUU4NTsxRTg1OzAwNzcgMDMwODsxRTg1OzAwNzcgMDMwODsKKzFFODY7MUU4NjswMDU3IDAzMDc7MUU4NjswMDU3IDAzMDc7CisxRTg3OzFFODc7MDA3NyAwMzA3OzFFODc7MDA3NyAwMzA3OworMUU4ODsxRTg4OzAwNTcgMDMyMzsxRTg4OzAwNTcgMDMyMzsKKzFFODk7MUU4OTswMDc3IDAzMjM7MUU4OTswMDc3IDAzMjM7CisxRThBOzFFOEE7MDA1OCAwMzA3OzFFOEE7MDA1OCAwMzA3OworMUU4QjsxRThCOzAwNzggMDMwNzsxRThCOzAwNzggMDMwNzsKKzFFOEM7MUU4QzswMDU4IDAzMDg7MUU4QzswMDU4IDAzMDg7CisxRThEOzFFOEQ7MDA3OCAwMzA4OzFFOEQ7MDA3OCAwMzA4OworMUU4RTsxRThFOzAwNTkgMDMwNzsxRThFOzAwNTkgMDMwNzsKKzFFOEY7MUU4RjswMDc5IDAzMDc7MUU4RjswMDc5IDAzMDc7CisxRTkwOzFFOTA7MDA1QSAwMzAyOzFFOTA7MDA1QSAwMzAyOworMUU5MTsxRTkxOzAwN0EgMDMwMjsxRTkxOzAwN0EgMDMwMjsKKzFFOTI7MUU5MjswMDVBIDAzMjM7MUU5MjswMDVBIDAzMjM7CisxRTkzOzFFOTM7MDA3QSAwMzIzOzFFOTM7MDA3QSAwMzIzOworMUU5NDsxRTk0OzAwNUEgMDMzMTsxRTk0OzAwNUEgMDMzMTsKKzFFOTU7MUU5NTswMDdBIDAzMzE7MUU5NTswMDdBIDAzMzE7CisxRTk2OzFFOTY7MDA2OCAwMzMxOzFFOTY7MDA2OCAwMzMxOworMUU5NzsxRTk3OzAwNzQgMDMwODsxRTk3OzAwNzQgMDMwODsKKzFFOTg7MUU5ODswMDc3IDAzMEE7MUU5ODswMDc3IDAzMEE7CisxRTk5OzFFOTk7MDA3OSAwMzBBOzFFOTk7MDA3OSAwMzBBOworMUU5QTsxRTlBOzFFOUE7MDA2MSAwMkJFOzAwNjEgMDJCRTsKKzFFOUI7MUU5QjswMTdGIDAzMDc7MUU2MTswMDczIDAzMDc7CisxRUEwOzFFQTA7MDA0MSAwMzIzOzFFQTA7MDA0MSAwMzIzOworMUVBMTsxRUExOzAwNjEgMDMyMzsxRUExOzAwNjEgMDMyMzsKKzFFQTI7MUVBMjswMDQxIDAzMDk7MUVBMjswMDQxIDAzMDk7CisxRUEzOzFFQTM7MDA2MSAwMzA5OzFFQTM7MDA2MSAwMzA5OworMUVBNDsxRUE0OzAwNDEgMDMwMiAwMzAxOzFFQTQ7MDA0MSAwMzAyIDAzMDE7CisxRUE1OzFFQTU7MDA2MSAwMzAyIDAzMDE7MUVBNTswMDYxIDAzMDIgMDMwMTsKKzFFQTY7MUVBNjswMDQxIDAzMDIgMDMwMDsxRUE2OzAwNDEgMDMwMiAwMzAwOworMUVBNzsxRUE3OzAwNjEgMDMwMiAwMzAwOzFFQTc7MDA2MSAwMzAyIDAzMDA7CisxRUE4OzFFQTg7MDA0MSAwMzAyIDAzMDk7MUVBODswMDQxIDAzMDIgMDMwOTsKKzFFQTk7MUVBOTswMDYxIDAzMDIgMDMwOTsxRUE5OzAwNjEgMDMwMiAwMzA5OworMUVBQTsxRUFBOzAwNDEgMDMwMiAwMzAzOzFFQUE7MDA0MSAwMzAyIDAzMDM7CisxRUFCOzFFQUI7MDA2MSAwMzAyIDAzMDM7MUVBQjswMDYxIDAzMDIgMDMwMzsKKzFFQUM7MUVBQzswMDQxIDAzMjMgMDMwMjsxRUFDOzAwNDEgMDMyMyAwMzAyOworMUVBRDsxRUFEOzAwNjEgMDMyMyAwMzAyOzFFQUQ7MDA2MSAwMzIzIDAzMDI7CisxRUFFOzFFQUU7MDA0MSAwMzA2IDAzMDE7MUVBRTswMDQxIDAzMDYgMDMwMTsKKzFFQUY7MUVBRjswMDYxIDAzMDYgMDMwMTsxRUFGOzAwNjEgMDMwNiAwMzAxOworMUVCMDsxRUIwOzAwNDEgMDMwNiAwMzAwOzFFQjA7MDA0MSAwMzA2IDAzMDA7CisxRUIxOzFFQjE7MDA2MSAwMzA2IDAzMDA7MUVCMTswMDYxIDAzMDYgMDMwMDsKKzFFQjI7MUVCMjswMDQxIDAzMDYgMDMwOTsxRUIyOzAwNDEgMDMwNiAwMzA5OworMUVCMzsxRUIzOzAwNjEgMDMwNiAwMzA5OzFFQjM7MDA2MSAwMzA2IDAzMDk7CisxRUI0OzFFQjQ7MDA0MSAwMzA2IDAzMDM7MUVCNDswMDQxIDAzMDYgMDMwMzsKKzFFQjU7MUVCNTswMDYxIDAzMDYgMDMwMzsxRUI1OzAwNjEgMDMwNiAwMzAzOworMUVCNjsxRUI2OzAwNDEgMDMyMyAwMzA2OzFFQjY7MDA0MSAwMzIzIDAzMDY7CisxRUI3OzFFQjc7MDA2MSAwMzIzIDAzMDY7MUVCNzswMDYxIDAzMjMgMDMwNjsKKzFFQjg7MUVCODswMDQ1IDAzMjM7MUVCODswMDQ1IDAzMjM7CisxRUI5OzFFQjk7MDA2NSAwMzIzOzFFQjk7MDA2NSAwMzIzOworMUVCQTsxRUJBOzAwNDUgMDMwOTsxRUJBOzAwNDUgMDMwOTsKKzFFQkI7MUVCQjswMDY1IDAzMDk7MUVCQjswMDY1IDAzMDk7CisxRUJDOzFFQkM7MDA0NSAwMzAzOzFFQkM7MDA0NSAwMzAzOworMUVCRDsxRUJEOzAwNjUgMDMwMzsxRUJEOzAwNjUgMDMwMzsKKzFFQkU7MUVCRTswMDQ1IDAzMDIgMDMwMTsxRUJFOzAwNDUgMDMwMiAwMzAxOworMUVCRjsxRUJGOzAwNjUgMDMwMiAwMzAxOzFFQkY7MDA2NSAwMzAyIDAzMDE7CisxRUMwOzFFQzA7MDA0NSAwMzAyIDAzMDA7MUVDMDswMDQ1IDAzMDIgMDMwMDsKKzFFQzE7MUVDMTswMDY1IDAzMDIgMDMwMDsxRUMxOzAwNjUgMDMwMiAwMzAwOworMUVDMjsxRUMyOzAwNDUgMDMwMiAwMzA5OzFFQzI7MDA0NSAwMzAyIDAzMDk7CisxRUMzOzFFQzM7MDA2NSAwMzAyIDAzMDk7MUVDMzswMDY1IDAzMDIgMDMwOTsKKzFFQzQ7MUVDNDswMDQ1IDAzMDIgMDMwMzsxRUM0OzAwNDUgMDMwMiAwMzAzOworMUVDNTsxRUM1OzAwNjUgMDMwMiAwMzAzOzFFQzU7MDA2NSAwMzAyIDAzMDM7CisxRUM2OzFFQzY7MDA0NSAwMzIzIDAzMDI7MUVDNjswMDQ1IDAzMjMgMDMwMjsKKzFFQzc7MUVDNzswMDY1IDAzMjMgMDMwMjsxRUM3OzAwNjUgMDMyMyAwMzAyOworMUVDODsxRUM4OzAwNDkgMDMwOTsxRUM4OzAwNDkgMDMwOTsKKzFFQzk7MUVDOTswMDY5IDAzMDk7MUVDOTswMDY5IDAzMDk7CisxRUNBOzFFQ0E7MDA0OSAwMzIzOzFFQ0E7MDA0OSAwMzIzOworMUVDQjsxRUNCOzAwNjkgMDMyMzsxRUNCOzAwNjkgMDMyMzsKKzFFQ0M7MUVDQzswMDRGIDAzMjM7MUVDQzswMDRGIDAzMjM7CisxRUNEOzFFQ0Q7MDA2RiAwMzIzOzFFQ0Q7MDA2RiAwMzIzOworMUVDRTsxRUNFOzAwNEYgMDMwOTsxRUNFOzAwNEYgMDMwOTsKKzFFQ0Y7MUVDRjswMDZGIDAzMDk7MUVDRjswMDZGIDAzMDk7CisxRUQwOzFFRDA7MDA0RiAwMzAyIDAzMDE7MUVEMDswMDRGIDAzMDIgMDMwMTsKKzFFRDE7MUVEMTswMDZGIDAzMDIgMDMwMTsxRUQxOzAwNkYgMDMwMiAwMzAxOworMUVEMjsxRUQyOzAwNEYgMDMwMiAwMzAwOzFFRDI7MDA0RiAwMzAyIDAzMDA7CisxRUQzOzFFRDM7MDA2RiAwMzAyIDAzMDA7MUVEMzswMDZGIDAzMDIgMDMwMDsKKzFFRDQ7MUVENDswMDRGIDAzMDIgMDMwOTsxRUQ0OzAwNEYgMDMwMiAwMzA5OworMUVENTsxRUQ1OzAwNkYgMDMwMiAwMzA5OzFFRDU7MDA2RiAwMzAyIDAzMDk7CisxRUQ2OzFFRDY7MDA0RiAwMzAyIDAzMDM7MUVENjswMDRGIDAzMDIgMDMwMzsKKzFFRDc7MUVENzswMDZGIDAzMDIgMDMwMzsxRUQ3OzAwNkYgMDMwMiAwMzAzOworMUVEODsxRUQ4OzAwNEYgMDMyMyAwMzAyOzFFRDg7MDA0RiAwMzIzIDAzMDI7CisxRUQ5OzFFRDk7MDA2RiAwMzIzIDAzMDI7MUVEOTswMDZGIDAzMjMgMDMwMjsKKzFFREE7MUVEQTswMDRGIDAzMUIgMDMwMTsxRURBOzAwNEYgMDMxQiAwMzAxOworMUVEQjsxRURCOzAwNkYgMDMxQiAwMzAxOzFFREI7MDA2RiAwMzFCIDAzMDE7CisxRURDOzFFREM7MDA0RiAwMzFCIDAzMDA7MUVEQzswMDRGIDAzMUIgMDMwMDsKKzFFREQ7MUVERDswMDZGIDAzMUIgMDMwMDsxRUREOzAwNkYgMDMxQiAwMzAwOworMUVERTsxRURFOzAwNEYgMDMxQiAwMzA5OzFFREU7MDA0RiAwMzFCIDAzMDk7CisxRURGOzFFREY7MDA2RiAwMzFCIDAzMDk7MUVERjswMDZGIDAzMUIgMDMwOTsKKzFFRTA7MUVFMDswMDRGIDAzMUIgMDMwMzsxRUUwOzAwNEYgMDMxQiAwMzAzOworMUVFMTsxRUUxOzAwNkYgMDMxQiAwMzAzOzFFRTE7MDA2RiAwMzFCIDAzMDM7CisxRUUyOzFFRTI7MDA0RiAwMzFCIDAzMjM7MUVFMjswMDRGIDAzMUIgMDMyMzsKKzFFRTM7MUVFMzswMDZGIDAzMUIgMDMyMzsxRUUzOzAwNkYgMDMxQiAwMzIzOworMUVFNDsxRUU0OzAwNTUgMDMyMzsxRUU0OzAwNTUgMDMyMzsKKzFFRTU7MUVFNTswMDc1IDAzMjM7MUVFNTswMDc1IDAzMjM7CisxRUU2OzFFRTY7MDA1NSAwMzA5OzFFRTY7MDA1NSAwMzA5OworMUVFNzsxRUU3OzAwNzUgMDMwOTsxRUU3OzAwNzUgMDMwOTsKKzFFRTg7MUVFODswMDU1IDAzMUIgMDMwMTsxRUU4OzAwNTUgMDMxQiAwMzAxOworMUVFOTsxRUU5OzAwNzUgMDMxQiAwMzAxOzFFRTk7MDA3NSAwMzFCIDAzMDE7CisxRUVBOzFFRUE7MDA1NSAwMzFCIDAzMDA7MUVFQTswMDU1IDAzMUIgMDMwMDsKKzFFRUI7MUVFQjswMDc1IDAzMUIgMDMwMDsxRUVCOzAwNzUgMDMxQiAwMzAwOworMUVFQzsxRUVDOzAwNTUgMDMxQiAwMzA5OzFFRUM7MDA1NSAwMzFCIDAzMDk7CisxRUVEOzFFRUQ7MDA3NSAwMzFCIDAzMDk7MUVFRDswMDc1IDAzMUIgMDMwOTsKKzFFRUU7MUVFRTswMDU1IDAzMUIgMDMwMzsxRUVFOzAwNTUgMDMxQiAwMzAzOworMUVFRjsxRUVGOzAwNzUgMDMxQiAwMzAzOzFFRUY7MDA3NSAwMzFCIDAzMDM7CisxRUYwOzFFRjA7MDA1NSAwMzFCIDAzMjM7MUVGMDswMDU1IDAzMUIgMDMyMzsKKzFFRjE7MUVGMTswMDc1IDAzMUIgMDMyMzsxRUYxOzAwNzUgMDMxQiAwMzIzOworMUVGMjsxRUYyOzAwNTkgMDMwMDsxRUYyOzAwNTkgMDMwMDsKKzFFRjM7MUVGMzswMDc5IDAzMDA7MUVGMzswMDc5IDAzMDA7CisxRUY0OzFFRjQ7MDA1OSAwMzIzOzFFRjQ7MDA1OSAwMzIzOworMUVGNTsxRUY1OzAwNzkgMDMyMzsxRUY1OzAwNzkgMDMyMzsKKzFFRjY7MUVGNjswMDU5IDAzMDk7MUVGNjswMDU5IDAzMDk7CisxRUY3OzFFRjc7MDA3OSAwMzA5OzFFRjc7MDA3OSAwMzA5OworMUVGODsxRUY4OzAwNTkgMDMwMzsxRUY4OzAwNTkgMDMwMzsKKzFFRjk7MUVGOTswMDc5IDAzMDM7MUVGOTswMDc5IDAzMDM7CisxRjAwOzFGMDA7MDNCMSAwMzEzOzFGMDA7MDNCMSAwMzEzOworMUYwMTsxRjAxOzAzQjEgMDMxNDsxRjAxOzAzQjEgMDMxNDsKKzFGMDI7MUYwMjswM0IxIDAzMTMgMDMwMDsxRjAyOzAzQjEgMDMxMyAwMzAwOworMUYwMzsxRjAzOzAzQjEgMDMxNCAwMzAwOzFGMDM7MDNCMSAwMzE0IDAzMDA7CisxRjA0OzFGMDQ7MDNCMSAwMzEzIDAzMDE7MUYwNDswM0IxIDAzMTMgMDMwMTsKKzFGMDU7MUYwNTswM0IxIDAzMTQgMDMwMTsxRjA1OzAzQjEgMDMxNCAwMzAxOworMUYwNjsxRjA2OzAzQjEgMDMxMyAwMzQyOzFGMDY7MDNCMSAwMzEzIDAzNDI7CisxRjA3OzFGMDc7MDNCMSAwMzE0IDAzNDI7MUYwNzswM0IxIDAzMTQgMDM0MjsKKzFGMDg7MUYwODswMzkxIDAzMTM7MUYwODswMzkxIDAzMTM7CisxRjA5OzFGMDk7MDM5MSAwMzE0OzFGMDk7MDM5MSAwMzE0OworMUYwQTsxRjBBOzAzOTEgMDMxMyAwMzAwOzFGMEE7MDM5MSAwMzEzIDAzMDA7CisxRjBCOzFGMEI7MDM5MSAwMzE0IDAzMDA7MUYwQjswMzkxIDAzMTQgMDMwMDsKKzFGMEM7MUYwQzswMzkxIDAzMTMgMDMwMTsxRjBDOzAzOTEgMDMxMyAwMzAxOworMUYwRDsxRjBEOzAzOTEgMDMxNCAwMzAxOzFGMEQ7MDM5MSAwMzE0IDAzMDE7CisxRjBFOzFGMEU7MDM5MSAwMzEzIDAzNDI7MUYwRTswMzkxIDAzMTMgMDM0MjsKKzFGMEY7MUYwRjswMzkxIDAzMTQgMDM0MjsxRjBGOzAzOTEgMDMxNCAwMzQyOworMUYxMDsxRjEwOzAzQjUgMDMxMzsxRjEwOzAzQjUgMDMxMzsKKzFGMTE7MUYxMTswM0I1IDAzMTQ7MUYxMTswM0I1IDAzMTQ7CisxRjEyOzFGMTI7MDNCNSAwMzEzIDAzMDA7MUYxMjswM0I1IDAzMTMgMDMwMDsKKzFGMTM7MUYxMzswM0I1IDAzMTQgMDMwMDsxRjEzOzAzQjUgMDMxNCAwMzAwOworMUYxNDsxRjE0OzAzQjUgMDMxMyAwMzAxOzFGMTQ7MDNCNSAwMzEzIDAzMDE7CisxRjE1OzFGMTU7MDNCNSAwMzE0IDAzMDE7MUYxNTswM0I1IDAzMTQgMDMwMTsKKzFGMTg7MUYxODswMzk1IDAzMTM7MUYxODswMzk1IDAzMTM7CisxRjE5OzFGMTk7MDM5NSAwMzE0OzFGMTk7MDM5NSAwMzE0OworMUYxQTsxRjFBOzAzOTUgMDMxMyAwMzAwOzFGMUE7MDM5NSAwMzEzIDAzMDA7CisxRjFCOzFGMUI7MDM5NSAwMzE0IDAzMDA7MUYxQjswMzk1IDAzMTQgMDMwMDsKKzFGMUM7MUYxQzswMzk1IDAzMTMgMDMwMTsxRjFDOzAzOTUgMDMxMyAwMzAxOworMUYxRDsxRjFEOzAzOTUgMDMxNCAwMzAxOzFGMUQ7MDM5NSAwMzE0IDAzMDE7CisxRjIwOzFGMjA7MDNCNyAwMzEzOzFGMjA7MDNCNyAwMzEzOworMUYyMTsxRjIxOzAzQjcgMDMxNDsxRjIxOzAzQjcgMDMxNDsKKzFGMjI7MUYyMjswM0I3IDAzMTMgMDMwMDsxRjIyOzAzQjcgMDMxMyAwMzAwOworMUYyMzsxRjIzOzAzQjcgMDMxNCAwMzAwOzFGMjM7MDNCNyAwMzE0IDAzMDA7CisxRjI0OzFGMjQ7MDNCNyAwMzEzIDAzMDE7MUYyNDswM0I3IDAzMTMgMDMwMTsKKzFGMjU7MUYyNTswM0I3IDAzMTQgMDMwMTsxRjI1OzAzQjcgMDMxNCAwMzAxOworMUYyNjsxRjI2OzAzQjcgMDMxMyAwMzQyOzFGMjY7MDNCNyAwMzEzIDAzNDI7CisxRjI3OzFGMjc7MDNCNyAwMzE0IDAzNDI7MUYyNzswM0I3IDAzMTQgMDM0MjsKKzFGMjg7MUYyODswMzk3IDAzMTM7MUYyODswMzk3IDAzMTM7CisxRjI5OzFGMjk7MDM5NyAwMzE0OzFGMjk7MDM5NyAwMzE0OworMUYyQTsxRjJBOzAzOTcgMDMxMyAwMzAwOzFGMkE7MDM5NyAwMzEzIDAzMDA7CisxRjJCOzFGMkI7MDM5NyAwMzE0IDAzMDA7MUYyQjswMzk3IDAzMTQgMDMwMDsKKzFGMkM7MUYyQzswMzk3IDAzMTMgMDMwMTsxRjJDOzAzOTcgMDMxMyAwMzAxOworMUYyRDsxRjJEOzAzOTcgMDMxNCAwMzAxOzFGMkQ7MDM5NyAwMzE0IDAzMDE7CisxRjJFOzFGMkU7MDM5NyAwMzEzIDAzNDI7MUYyRTswMzk3IDAzMTMgMDM0MjsKKzFGMkY7MUYyRjswMzk3IDAzMTQgMDM0MjsxRjJGOzAzOTcgMDMxNCAwMzQyOworMUYzMDsxRjMwOzAzQjkgMDMxMzsxRjMwOzAzQjkgMDMxMzsKKzFGMzE7MUYzMTswM0I5IDAzMTQ7MUYzMTswM0I5IDAzMTQ7CisxRjMyOzFGMzI7MDNCOSAwMzEzIDAzMDA7MUYzMjswM0I5IDAzMTMgMDMwMDsKKzFGMzM7MUYzMzswM0I5IDAzMTQgMDMwMDsxRjMzOzAzQjkgMDMxNCAwMzAwOworMUYzNDsxRjM0OzAzQjkgMDMxMyAwMzAxOzFGMzQ7MDNCOSAwMzEzIDAzMDE7CisxRjM1OzFGMzU7MDNCOSAwMzE0IDAzMDE7MUYzNTswM0I5IDAzMTQgMDMwMTsKKzFGMzY7MUYzNjswM0I5IDAzMTMgMDM0MjsxRjM2OzAzQjkgMDMxMyAwMzQyOworMUYzNzsxRjM3OzAzQjkgMDMxNCAwMzQyOzFGMzc7MDNCOSAwMzE0IDAzNDI7CisxRjM4OzFGMzg7MDM5OSAwMzEzOzFGMzg7MDM5OSAwMzEzOworMUYzOTsxRjM5OzAzOTkgMDMxNDsxRjM5OzAzOTkgMDMxNDsKKzFGM0E7MUYzQTswMzk5IDAzMTMgMDMwMDsxRjNBOzAzOTkgMDMxMyAwMzAwOworMUYzQjsxRjNCOzAzOTkgMDMxNCAwMzAwOzFGM0I7MDM5OSAwMzE0IDAzMDA7CisxRjNDOzFGM0M7MDM5OSAwMzEzIDAzMDE7MUYzQzswMzk5IDAzMTMgMDMwMTsKKzFGM0Q7MUYzRDswMzk5IDAzMTQgMDMwMTsxRjNEOzAzOTkgMDMxNCAwMzAxOworMUYzRTsxRjNFOzAzOTkgMDMxMyAwMzQyOzFGM0U7MDM5OSAwMzEzIDAzNDI7CisxRjNGOzFGM0Y7MDM5OSAwMzE0IDAzNDI7MUYzRjswMzk5IDAzMTQgMDM0MjsKKzFGNDA7MUY0MDswM0JGIDAzMTM7MUY0MDswM0JGIDAzMTM7CisxRjQxOzFGNDE7MDNCRiAwMzE0OzFGNDE7MDNCRiAwMzE0OworMUY0MjsxRjQyOzAzQkYgMDMxMyAwMzAwOzFGNDI7MDNCRiAwMzEzIDAzMDA7CisxRjQzOzFGNDM7MDNCRiAwMzE0IDAzMDA7MUY0MzswM0JGIDAzMTQgMDMwMDsKKzFGNDQ7MUY0NDswM0JGIDAzMTMgMDMwMTsxRjQ0OzAzQkYgMDMxMyAwMzAxOworMUY0NTsxRjQ1OzAzQkYgMDMxNCAwMzAxOzFGNDU7MDNCRiAwMzE0IDAzMDE7CisxRjQ4OzFGNDg7MDM5RiAwMzEzOzFGNDg7MDM5RiAwMzEzOworMUY0OTsxRjQ5OzAzOUYgMDMxNDsxRjQ5OzAzOUYgMDMxNDsKKzFGNEE7MUY0QTswMzlGIDAzMTMgMDMwMDsxRjRBOzAzOUYgMDMxMyAwMzAwOworMUY0QjsxRjRCOzAzOUYgMDMxNCAwMzAwOzFGNEI7MDM5RiAwMzE0IDAzMDA7CisxRjRDOzFGNEM7MDM5RiAwMzEzIDAzMDE7MUY0QzswMzlGIDAzMTMgMDMwMTsKKzFGNEQ7MUY0RDswMzlGIDAzMTQgMDMwMTsxRjREOzAzOUYgMDMxNCAwMzAxOworMUY1MDsxRjUwOzAzQzUgMDMxMzsxRjUwOzAzQzUgMDMxMzsKKzFGNTE7MUY1MTswM0M1IDAzMTQ7MUY1MTswM0M1IDAzMTQ7CisxRjUyOzFGNTI7MDNDNSAwMzEzIDAzMDA7MUY1MjswM0M1IDAzMTMgMDMwMDsKKzFGNTM7MUY1MzswM0M1IDAzMTQgMDMwMDsxRjUzOzAzQzUgMDMxNCAwMzAwOworMUY1NDsxRjU0OzAzQzUgMDMxMyAwMzAxOzFGNTQ7MDNDNSAwMzEzIDAzMDE7CisxRjU1OzFGNTU7MDNDNSAwMzE0IDAzMDE7MUY1NTswM0M1IDAzMTQgMDMwMTsKKzFGNTY7MUY1NjswM0M1IDAzMTMgMDM0MjsxRjU2OzAzQzUgMDMxMyAwMzQyOworMUY1NzsxRjU3OzAzQzUgMDMxNCAwMzQyOzFGNTc7MDNDNSAwMzE0IDAzNDI7CisxRjU5OzFGNTk7MDNBNSAwMzE0OzFGNTk7MDNBNSAwMzE0OworMUY1QjsxRjVCOzAzQTUgMDMxNCAwMzAwOzFGNUI7MDNBNSAwMzE0IDAzMDA7CisxRjVEOzFGNUQ7MDNBNSAwMzE0IDAzMDE7MUY1RDswM0E1IDAzMTQgMDMwMTsKKzFGNUY7MUY1RjswM0E1IDAzMTQgMDM0MjsxRjVGOzAzQTUgMDMxNCAwMzQyOworMUY2MDsxRjYwOzAzQzkgMDMxMzsxRjYwOzAzQzkgMDMxMzsKKzFGNjE7MUY2MTswM0M5IDAzMTQ7MUY2MTswM0M5IDAzMTQ7CisxRjYyOzFGNjI7MDNDOSAwMzEzIDAzMDA7MUY2MjswM0M5IDAzMTMgMDMwMDsKKzFGNjM7MUY2MzswM0M5IDAzMTQgMDMwMDsxRjYzOzAzQzkgMDMxNCAwMzAwOworMUY2NDsxRjY0OzAzQzkgMDMxMyAwMzAxOzFGNjQ7MDNDOSAwMzEzIDAzMDE7CisxRjY1OzFGNjU7MDNDOSAwMzE0IDAzMDE7MUY2NTswM0M5IDAzMTQgMDMwMTsKKzFGNjY7MUY2NjswM0M5IDAzMTMgMDM0MjsxRjY2OzAzQzkgMDMxMyAwMzQyOworMUY2NzsxRjY3OzAzQzkgMDMxNCAwMzQyOzFGNjc7MDNDOSAwMzE0IDAzNDI7CisxRjY4OzFGNjg7MDNBOSAwMzEzOzFGNjg7MDNBOSAwMzEzOworMUY2OTsxRjY5OzAzQTkgMDMxNDsxRjY5OzAzQTkgMDMxNDsKKzFGNkE7MUY2QTswM0E5IDAzMTMgMDMwMDsxRjZBOzAzQTkgMDMxMyAwMzAwOworMUY2QjsxRjZCOzAzQTkgMDMxNCAwMzAwOzFGNkI7MDNBOSAwMzE0IDAzMDA7CisxRjZDOzFGNkM7MDNBOSAwMzEzIDAzMDE7MUY2QzswM0E5IDAzMTMgMDMwMTsKKzFGNkQ7MUY2RDswM0E5IDAzMTQgMDMwMTsxRjZEOzAzQTkgMDMxNCAwMzAxOworMUY2RTsxRjZFOzAzQTkgMDMxMyAwMzQyOzFGNkU7MDNBOSAwMzEzIDAzNDI7CisxRjZGOzFGNkY7MDNBOSAwMzE0IDAzNDI7MUY2RjswM0E5IDAzMTQgMDM0MjsKKzFGNzA7MUY3MDswM0IxIDAzMDA7MUY3MDswM0IxIDAzMDA7CisxRjcxOzAzQUM7MDNCMSAwMzAxOzAzQUM7MDNCMSAwMzAxOworMUY3MjsxRjcyOzAzQjUgMDMwMDsxRjcyOzAzQjUgMDMwMDsKKzFGNzM7MDNBRDswM0I1IDAzMDE7MDNBRDswM0I1IDAzMDE7CisxRjc0OzFGNzQ7MDNCNyAwMzAwOzFGNzQ7MDNCNyAwMzAwOworMUY3NTswM0FFOzAzQjcgMDMwMTswM0FFOzAzQjcgMDMwMTsKKzFGNzY7MUY3NjswM0I5IDAzMDA7MUY3NjswM0I5IDAzMDA7CisxRjc3OzAzQUY7MDNCOSAwMzAxOzAzQUY7MDNCOSAwMzAxOworMUY3ODsxRjc4OzAzQkYgMDMwMDsxRjc4OzAzQkYgMDMwMDsKKzFGNzk7MDNDQzswM0JGIDAzMDE7MDNDQzswM0JGIDAzMDE7CisxRjdBOzFGN0E7MDNDNSAwMzAwOzFGN0E7MDNDNSAwMzAwOworMUY3QjswM0NEOzAzQzUgMDMwMTswM0NEOzAzQzUgMDMwMTsKKzFGN0M7MUY3QzswM0M5IDAzMDA7MUY3QzswM0M5IDAzMDA7CisxRjdEOzAzQ0U7MDNDOSAwMzAxOzAzQ0U7MDNDOSAwMzAxOworMUY4MDsxRjgwOzAzQjEgMDMxMyAwMzQ1OzFGODA7MDNCMSAwMzEzIDAzNDU7CisxRjgxOzFGODE7MDNCMSAwMzE0IDAzNDU7MUY4MTswM0IxIDAzMTQgMDM0NTsKKzFGODI7MUY4MjswM0IxIDAzMTMgMDMwMCAwMzQ1OzFGODI7MDNCMSAwMzEzIDAzMDAgMDM0NTsKKzFGODM7MUY4MzswM0IxIDAzMTQgMDMwMCAwMzQ1OzFGODM7MDNCMSAwMzE0IDAzMDAgMDM0NTsKKzFGODQ7MUY4NDswM0IxIDAzMTMgMDMwMSAwMzQ1OzFGODQ7MDNCMSAwMzEzIDAzMDEgMDM0NTsKKzFGODU7MUY4NTswM0IxIDAzMTQgMDMwMSAwMzQ1OzFGODU7MDNCMSAwMzE0IDAzMDEgMDM0NTsKKzFGODY7MUY4NjswM0IxIDAzMTMgMDM0MiAwMzQ1OzFGODY7MDNCMSAwMzEzIDAzNDIgMDM0NTsKKzFGODc7MUY4NzswM0IxIDAzMTQgMDM0MiAwMzQ1OzFGODc7MDNCMSAwMzE0IDAzNDIgMDM0NTsKKzFGODg7MUY4ODswMzkxIDAzMTMgMDM0NTsxRjg4OzAzOTEgMDMxMyAwMzQ1OworMUY4OTsxRjg5OzAzOTEgMDMxNCAwMzQ1OzFGODk7MDM5MSAwMzE0IDAzNDU7CisxRjhBOzFGOEE7MDM5MSAwMzEzIDAzMDAgMDM0NTsxRjhBOzAzOTEgMDMxMyAwMzAwIDAzNDU7CisxRjhCOzFGOEI7MDM5MSAwMzE0IDAzMDAgMDM0NTsxRjhCOzAzOTEgMDMxNCAwMzAwIDAzNDU7CisxRjhDOzFGOEM7MDM5MSAwMzEzIDAzMDEgMDM0NTsxRjhDOzAzOTEgMDMxMyAwMzAxIDAzNDU7CisxRjhEOzFGOEQ7MDM5MSAwMzE0IDAzMDEgMDM0NTsxRjhEOzAzOTEgMDMxNCAwMzAxIDAzNDU7CisxRjhFOzFGOEU7MDM5MSAwMzEzIDAzNDIgMDM0NTsxRjhFOzAzOTEgMDMxMyAwMzQyIDAzNDU7CisxRjhGOzFGOEY7MDM5MSAwMzE0IDAzNDIgMDM0NTsxRjhGOzAzOTEgMDMxNCAwMzQyIDAzNDU7CisxRjkwOzFGOTA7MDNCNyAwMzEzIDAzNDU7MUY5MDswM0I3IDAzMTMgMDM0NTsKKzFGOTE7MUY5MTswM0I3IDAzMTQgMDM0NTsxRjkxOzAzQjcgMDMxNCAwMzQ1OworMUY5MjsxRjkyOzAzQjcgMDMxMyAwMzAwIDAzNDU7MUY5MjswM0I3IDAzMTMgMDMwMCAwMzQ1OworMUY5MzsxRjkzOzAzQjcgMDMxNCAwMzAwIDAzNDU7MUY5MzswM0I3IDAzMTQgMDMwMCAwMzQ1OworMUY5NDsxRjk0OzAzQjcgMDMxMyAwMzAxIDAzNDU7MUY5NDswM0I3IDAzMTMgMDMwMSAwMzQ1OworMUY5NTsxRjk1OzAzQjcgMDMxNCAwMzAxIDAzNDU7MUY5NTswM0I3IDAzMTQgMDMwMSAwMzQ1OworMUY5NjsxRjk2OzAzQjcgMDMxMyAwMzQyIDAzNDU7MUY5NjswM0I3IDAzMTMgMDM0MiAwMzQ1OworMUY5NzsxRjk3OzAzQjcgMDMxNCAwMzQyIDAzNDU7MUY5NzswM0I3IDAzMTQgMDM0MiAwMzQ1OworMUY5ODsxRjk4OzAzOTcgMDMxMyAwMzQ1OzFGOTg7MDM5NyAwMzEzIDAzNDU7CisxRjk5OzFGOTk7MDM5NyAwMzE0IDAzNDU7MUY5OTswMzk3IDAzMTQgMDM0NTsKKzFGOUE7MUY5QTswMzk3IDAzMTMgMDMwMCAwMzQ1OzFGOUE7MDM5NyAwMzEzIDAzMDAgMDM0NTsKKzFGOUI7MUY5QjswMzk3IDAzMTQgMDMwMCAwMzQ1OzFGOUI7MDM5NyAwMzE0IDAzMDAgMDM0NTsKKzFGOUM7MUY5QzswMzk3IDAzMTMgMDMwMSAwMzQ1OzFGOUM7MDM5NyAwMzEzIDAzMDEgMDM0NTsKKzFGOUQ7MUY5RDswMzk3IDAzMTQgMDMwMSAwMzQ1OzFGOUQ7MDM5NyAwMzE0IDAzMDEgMDM0NTsKKzFGOUU7MUY5RTswMzk3IDAzMTMgMDM0MiAwMzQ1OzFGOUU7MDM5NyAwMzEzIDAzNDIgMDM0NTsKKzFGOUY7MUY5RjswMzk3IDAzMTQgMDM0MiAwMzQ1OzFGOUY7MDM5NyAwMzE0IDAzNDIgMDM0NTsKKzFGQTA7MUZBMDswM0M5IDAzMTMgMDM0NTsxRkEwOzAzQzkgMDMxMyAwMzQ1OworMUZBMTsxRkExOzAzQzkgMDMxNCAwMzQ1OzFGQTE7MDNDOSAwMzE0IDAzNDU7CisxRkEyOzFGQTI7MDNDOSAwMzEzIDAzMDAgMDM0NTsxRkEyOzAzQzkgMDMxMyAwMzAwIDAzNDU7CisxRkEzOzFGQTM7MDNDOSAwMzE0IDAzMDAgMDM0NTsxRkEzOzAzQzkgMDMxNCAwMzAwIDAzNDU7CisxRkE0OzFGQTQ7MDNDOSAwMzEzIDAzMDEgMDM0NTsxRkE0OzAzQzkgMDMxMyAwMzAxIDAzNDU7CisxRkE1OzFGQTU7MDNDOSAwMzE0IDAzMDEgMDM0NTsxRkE1OzAzQzkgMDMxNCAwMzAxIDAzNDU7CisxRkE2OzFGQTY7MDNDOSAwMzEzIDAzNDIgMDM0NTsxRkE2OzAzQzkgMDMxMyAwMzQyIDAzNDU7CisxRkE3OzFGQTc7MDNDOSAwMzE0IDAzNDIgMDM0NTsxRkE3OzAzQzkgMDMxNCAwMzQyIDAzNDU7CisxRkE4OzFGQTg7MDNBOSAwMzEzIDAzNDU7MUZBODswM0E5IDAzMTMgMDM0NTsKKzFGQTk7MUZBOTswM0E5IDAzMTQgMDM0NTsxRkE5OzAzQTkgMDMxNCAwMzQ1OworMUZBQTsxRkFBOzAzQTkgMDMxMyAwMzAwIDAzNDU7MUZBQTswM0E5IDAzMTMgMDMwMCAwMzQ1OworMUZBQjsxRkFCOzAzQTkgMDMxNCAwMzAwIDAzNDU7MUZBQjswM0E5IDAzMTQgMDMwMCAwMzQ1OworMUZBQzsxRkFDOzAzQTkgMDMxMyAwMzAxIDAzNDU7MUZBQzswM0E5IDAzMTMgMDMwMSAwMzQ1OworMUZBRDsxRkFEOzAzQTkgMDMxNCAwMzAxIDAzNDU7MUZBRDswM0E5IDAzMTQgMDMwMSAwMzQ1OworMUZBRTsxRkFFOzAzQTkgMDMxMyAwMzQyIDAzNDU7MUZBRTswM0E5IDAzMTMgMDM0MiAwMzQ1OworMUZBRjsxRkFGOzAzQTkgMDMxNCAwMzQyIDAzNDU7MUZBRjswM0E5IDAzMTQgMDM0MiAwMzQ1OworMUZCMDsxRkIwOzAzQjEgMDMwNjsxRkIwOzAzQjEgMDMwNjsKKzFGQjE7MUZCMTswM0IxIDAzMDQ7MUZCMTswM0IxIDAzMDQ7CisxRkIyOzFGQjI7MDNCMSAwMzAwIDAzNDU7MUZCMjswM0IxIDAzMDAgMDM0NTsKKzFGQjM7MUZCMzswM0IxIDAzNDU7MUZCMzswM0IxIDAzNDU7CisxRkI0OzFGQjQ7MDNCMSAwMzAxIDAzNDU7MUZCNDswM0IxIDAzMDEgMDM0NTsKKzFGQjY7MUZCNjswM0IxIDAzNDI7MUZCNjswM0IxIDAzNDI7CisxRkI3OzFGQjc7MDNCMSAwMzQyIDAzNDU7MUZCNzswM0IxIDAzNDIgMDM0NTsKKzFGQjg7MUZCODswMzkxIDAzMDY7MUZCODswMzkxIDAzMDY7CisxRkI5OzFGQjk7MDM5MSAwMzA0OzFGQjk7MDM5MSAwMzA0OworMUZCQTsxRkJBOzAzOTEgMDMwMDsxRkJBOzAzOTEgMDMwMDsKKzFGQkI7MDM4NjswMzkxIDAzMDE7MDM4NjswMzkxIDAzMDE7CisxRkJDOzFGQkM7MDM5MSAwMzQ1OzFGQkM7MDM5MSAwMzQ1OworMUZCRDsxRkJEOzFGQkQ7MDAyMCAwMzEzOzAwMjAgMDMxMzsKKzFGQkU7MDNCOTswM0I5OzAzQjk7MDNCOTsKKzFGQkY7MUZCRjsxRkJGOzAwMjAgMDMxMzswMDIwIDAzMTM7CisxRkMwOzFGQzA7MUZDMDswMDIwIDAzNDI7MDAyMCAwMzQyOworMUZDMTsxRkMxOzAwQTggMDM0MjswMDIwIDAzMDggMDM0MjswMDIwIDAzMDggMDM0MjsKKzFGQzI7MUZDMjswM0I3IDAzMDAgMDM0NTsxRkMyOzAzQjcgMDMwMCAwMzQ1OworMUZDMzsxRkMzOzAzQjcgMDM0NTsxRkMzOzAzQjcgMDM0NTsKKzFGQzQ7MUZDNDswM0I3IDAzMDEgMDM0NTsxRkM0OzAzQjcgMDMwMSAwMzQ1OworMUZDNjsxRkM2OzAzQjcgMDM0MjsxRkM2OzAzQjcgMDM0MjsKKzFGQzc7MUZDNzswM0I3IDAzNDIgMDM0NTsxRkM3OzAzQjcgMDM0MiAwMzQ1OworMUZDODsxRkM4OzAzOTUgMDMwMDsxRkM4OzAzOTUgMDMwMDsKKzFGQzk7MDM4ODswMzk1IDAzMDE7MDM4ODswMzk1IDAzMDE7CisxRkNBOzFGQ0E7MDM5NyAwMzAwOzFGQ0E7MDM5NyAwMzAwOworMUZDQjswMzg5OzAzOTcgMDMwMTswMzg5OzAzOTcgMDMwMTsKKzFGQ0M7MUZDQzswMzk3IDAzNDU7MUZDQzswMzk3IDAzNDU7CisxRkNEOzFGQ0Q7MUZCRiAwMzAwOzAwMjAgMDMxMyAwMzAwOzAwMjAgMDMxMyAwMzAwOworMUZDRTsxRkNFOzFGQkYgMDMwMTswMDIwIDAzMTMgMDMwMTswMDIwIDAzMTMgMDMwMTsKKzFGQ0Y7MUZDRjsxRkJGIDAzNDI7MDAyMCAwMzEzIDAzNDI7MDAyMCAwMzEzIDAzNDI7CisxRkQwOzFGRDA7MDNCOSAwMzA2OzFGRDA7MDNCOSAwMzA2OworMUZEMTsxRkQxOzAzQjkgMDMwNDsxRkQxOzAzQjkgMDMwNDsKKzFGRDI7MUZEMjswM0I5IDAzMDggMDMwMDsxRkQyOzAzQjkgMDMwOCAwMzAwOworMUZEMzswMzkwOzAzQjkgMDMwOCAwMzAxOzAzOTA7MDNCOSAwMzA4IDAzMDE7CisxRkQ2OzFGRDY7MDNCOSAwMzQyOzFGRDY7MDNCOSAwMzQyOworMUZENzsxRkQ3OzAzQjkgMDMwOCAwMzQyOzFGRDc7MDNCOSAwMzA4IDAzNDI7CisxRkQ4OzFGRDg7MDM5OSAwMzA2OzFGRDg7MDM5OSAwMzA2OworMUZEOTsxRkQ5OzAzOTkgMDMwNDsxRkQ5OzAzOTkgMDMwNDsKKzFGREE7MUZEQTswMzk5IDAzMDA7MUZEQTswMzk5IDAzMDA7CisxRkRCOzAzOEE7MDM5OSAwMzAxOzAzOEE7MDM5OSAwMzAxOworMUZERDsxRkREOzFGRkUgMDMwMDswMDIwIDAzMTQgMDMwMDswMDIwIDAzMTQgMDMwMDsKKzFGREU7MUZERTsxRkZFIDAzMDE7MDAyMCAwMzE0IDAzMDE7MDAyMCAwMzE0IDAzMDE7CisxRkRGOzFGREY7MUZGRSAwMzQyOzAwMjAgMDMxNCAwMzQyOzAwMjAgMDMxNCAwMzQyOworMUZFMDsxRkUwOzAzQzUgMDMwNjsxRkUwOzAzQzUgMDMwNjsKKzFGRTE7MUZFMTswM0M1IDAzMDQ7MUZFMTswM0M1IDAzMDQ7CisxRkUyOzFGRTI7MDNDNSAwMzA4IDAzMDA7MUZFMjswM0M1IDAzMDggMDMwMDsKKzFGRTM7MDNCMDswM0M1IDAzMDggMDMwMTswM0IwOzAzQzUgMDMwOCAwMzAxOworMUZFNDsxRkU0OzAzQzEgMDMxMzsxRkU0OzAzQzEgMDMxMzsKKzFGRTU7MUZFNTswM0MxIDAzMTQ7MUZFNTswM0MxIDAzMTQ7CisxRkU2OzFGRTY7MDNDNSAwMzQyOzFGRTY7MDNDNSAwMzQyOworMUZFNzsxRkU3OzAzQzUgMDMwOCAwMzQyOzFGRTc7MDNDNSAwMzA4IDAzNDI7CisxRkU4OzFGRTg7MDNBNSAwMzA2OzFGRTg7MDNBNSAwMzA2OworMUZFOTsxRkU5OzAzQTUgMDMwNDsxRkU5OzAzQTUgMDMwNDsKKzFGRUE7MUZFQTswM0E1IDAzMDA7MUZFQTswM0E1IDAzMDA7CisxRkVCOzAzOEU7MDNBNSAwMzAxOzAzOEU7MDNBNSAwMzAxOworMUZFQzsxRkVDOzAzQTEgMDMxNDsxRkVDOzAzQTEgMDMxNDsKKzFGRUQ7MUZFRDswMEE4IDAzMDA7MDAyMCAwMzA4IDAzMDA7MDAyMCAwMzA4IDAzMDA7CisxRkVFOzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOworMUZFRjswMDYwOzAwNjA7MDA2MDswMDYwOworMUZGMjsxRkYyOzAzQzkgMDMwMCAwMzQ1OzFGRjI7MDNDOSAwMzAwIDAzNDU7CisxRkYzOzFGRjM7MDNDOSAwMzQ1OzFGRjM7MDNDOSAwMzQ1OworMUZGNDsxRkY0OzAzQzkgMDMwMSAwMzQ1OzFGRjQ7MDNDOSAwMzAxIDAzNDU7CisxRkY2OzFGRjY7MDNDOSAwMzQyOzFGRjY7MDNDOSAwMzQyOworMUZGNzsxRkY3OzAzQzkgMDM0MiAwMzQ1OzFGRjc7MDNDOSAwMzQyIDAzNDU7CisxRkY4OzFGRjg7MDM5RiAwMzAwOzFGRjg7MDM5RiAwMzAwOworMUZGOTswMzhDOzAzOUYgMDMwMTswMzhDOzAzOUYgMDMwMTsKKzFGRkE7MUZGQTswM0E5IDAzMDA7MUZGQTswM0E5IDAzMDA7CisxRkZCOzAzOEY7MDNBOSAwMzAxOzAzOEY7MDNBOSAwMzAxOworMUZGQzsxRkZDOzAzQTkgMDM0NTsxRkZDOzAzQTkgMDM0NTsKKzFGRkQ7MDBCNDswMEI0OzAwMjAgMDMwMTswMDIwIDAzMDE7CisxRkZFOzFGRkU7MUZGRTswMDIwIDAzMTQ7MDAyMCAwMzE0OworMjAwMDsyMDAyOzIwMDI7MDAyMDswMDIwOworMjAwMTsyMDAzOzIwMDM7MDAyMDswMDIwOworMjAwMjsyMDAyOzIwMDI7MDAyMDswMDIwOworMjAwMzsyMDAzOzIwMDM7MDAyMDswMDIwOworMjAwNDsyMDA0OzIwMDQ7MDAyMDswMDIwOworMjAwNTsyMDA1OzIwMDU7MDAyMDswMDIwOworMjAwNjsyMDA2OzIwMDY7MDAyMDswMDIwOworMjAwNzsyMDA3OzIwMDc7MDAyMDswMDIwOworMjAwODsyMDA4OzIwMDg7MDAyMDswMDIwOworMjAwOTsyMDA5OzIwMDk7MDAyMDswMDIwOworMjAwQTsyMDBBOzIwMEE7MDAyMDswMDIwOworMjAxMTsyMDExOzIwMTE7MjAxMDsyMDEwOworMjAxNzsyMDE3OzIwMTc7MDAyMCAwMzMzOzAwMjAgMDMzMzsKKzIwMjQ7MjAyNDsyMDI0OzAwMkU7MDAyRTsKKzIwMjU7MjAyNTsyMDI1OzAwMkUgMDAyRTswMDJFIDAwMkU7CisyMDI2OzIwMjY7MjAyNjswMDJFIDAwMkUgMDAyRTswMDJFIDAwMkUgMDAyRTsKKzIwMkY7MjAyRjsyMDJGOzAwMjA7MDAyMDsKKzIwMzM7MjAzMzsyMDMzOzIwMzIgMjAzMjsyMDMyIDIwMzI7CisyMDM0OzIwMzQ7MjAzNDsyMDMyIDIwMzIgMjAzMjsyMDMyIDIwMzIgMjAzMjsKKzIwMzY7MjAzNjsyMDM2OzIwMzUgMjAzNTsyMDM1IDIwMzU7CisyMDM3OzIwMzc7MjAzNzsyMDM1IDIwMzUgMjAzNTsyMDM1IDIwMzUgMjAzNTsKKzIwM0M7MjAzQzsyMDNDOzAwMjEgMDAyMTswMDIxIDAwMjE7CisyMDNFOzIwM0U7MjAzRTswMDIwIDAzMDU7MDAyMCAwMzA1OworMjA0NzsyMDQ3OzIwNDc7MDAzRiAwMDNGOzAwM0YgMDAzRjsKKzIwNDg7MjA0ODsyMDQ4OzAwM0YgMDAyMTswMDNGIDAwMjE7CisyMDQ5OzIwNDk7MjA0OTswMDIxIDAwM0Y7MDAyMSAwMDNGOworMjA1NzsyMDU3OzIwNTc7MjAzMiAyMDMyIDIwMzIgMjAzMjsyMDMyIDIwMzIgMjAzMiAyMDMyOworMjA1RjsyMDVGOzIwNUY7MDAyMDswMDIwOworMjA3MDsyMDcwOzIwNzA7MDAzMDswMDMwOworMjA3MTsyMDcxOzIwNzE7MDA2OTswMDY5OworMjA3NDsyMDc0OzIwNzQ7MDAzNDswMDM0OworMjA3NTsyMDc1OzIwNzU7MDAzNTswMDM1OworMjA3NjsyMDc2OzIwNzY7MDAzNjswMDM2OworMjA3NzsyMDc3OzIwNzc7MDAzNzswMDM3OworMjA3ODsyMDc4OzIwNzg7MDAzODswMDM4OworMjA3OTsyMDc5OzIwNzk7MDAzOTswMDM5OworMjA3QTsyMDdBOzIwN0E7MDAyQjswMDJCOworMjA3QjsyMDdCOzIwN0I7MjIxMjsyMjEyOworMjA3QzsyMDdDOzIwN0M7MDAzRDswMDNEOworMjA3RDsyMDdEOzIwN0Q7MDAyODswMDI4OworMjA3RTsyMDdFOzIwN0U7MDAyOTswMDI5OworMjA3RjsyMDdGOzIwN0Y7MDA2RTswMDZFOworMjA4MDsyMDgwOzIwODA7MDAzMDswMDMwOworMjA4MTsyMDgxOzIwODE7MDAzMTswMDMxOworMjA4MjsyMDgyOzIwODI7MDAzMjswMDMyOworMjA4MzsyMDgzOzIwODM7MDAzMzswMDMzOworMjA4NDsyMDg0OzIwODQ7MDAzNDswMDM0OworMjA4NTsyMDg1OzIwODU7MDAzNTswMDM1OworMjA4NjsyMDg2OzIwODY7MDAzNjswMDM2OworMjA4NzsyMDg3OzIwODc7MDAzNzswMDM3OworMjA4ODsyMDg4OzIwODg7MDAzODswMDM4OworMjA4OTsyMDg5OzIwODk7MDAzOTswMDM5OworMjA4QTsyMDhBOzIwOEE7MDAyQjswMDJCOworMjA4QjsyMDhCOzIwOEI7MjIxMjsyMjEyOworMjA4QzsyMDhDOzIwOEM7MDAzRDswMDNEOworMjA4RDsyMDhEOzIwOEQ7MDAyODswMDI4OworMjA4RTsyMDhFOzIwOEU7MDAyOTswMDI5OworMjA5MDsyMDkwOzIwOTA7MDA2MTswMDYxOworMjA5MTsyMDkxOzIwOTE7MDA2NTswMDY1OworMjA5MjsyMDkyOzIwOTI7MDA2RjswMDZGOworMjA5MzsyMDkzOzIwOTM7MDA3ODswMDc4OworMjA5NDsyMDk0OzIwOTQ7MDI1OTswMjU5OworMjBBODsyMEE4OzIwQTg7MDA1MiAwMDczOzAwNTIgMDA3MzsKKzIxMDA7MjEwMDsyMTAwOzAwNjEgMDAyRiAwMDYzOzAwNjEgMDAyRiAwMDYzOworMjEwMTsyMTAxOzIxMDE7MDA2MSAwMDJGIDAwNzM7MDA2MSAwMDJGIDAwNzM7CisyMTAyOzIxMDI7MjEwMjswMDQzOzAwNDM7CisyMTAzOzIxMDM7MjEwMzswMEIwIDAwNDM7MDBCMCAwMDQzOworMjEwNTsyMTA1OzIxMDU7MDA2MyAwMDJGIDAwNkY7MDA2MyAwMDJGIDAwNkY7CisyMTA2OzIxMDY7MjEwNjswMDYzIDAwMkYgMDA3NTswMDYzIDAwMkYgMDA3NTsKKzIxMDc7MjEwNzsyMTA3OzAxOTA7MDE5MDsKKzIxMDk7MjEwOTsyMTA5OzAwQjAgMDA0NjswMEIwIDAwNDY7CisyMTBBOzIxMEE7MjEwQTswMDY3OzAwNjc7CisyMTBCOzIxMEI7MjEwQjswMDQ4OzAwNDg7CisyMTBDOzIxMEM7MjEwQzswMDQ4OzAwNDg7CisyMTBEOzIxMEQ7MjEwRDswMDQ4OzAwNDg7CisyMTBFOzIxMEU7MjEwRTswMDY4OzAwNjg7CisyMTBGOzIxMEY7MjEwRjswMTI3OzAxMjc7CisyMTEwOzIxMTA7MjExMDswMDQ5OzAwNDk7CisyMTExOzIxMTE7MjExMTswMDQ5OzAwNDk7CisyMTEyOzIxMTI7MjExMjswMDRDOzAwNEM7CisyMTEzOzIxMTM7MjExMzswMDZDOzAwNkM7CisyMTE1OzIxMTU7MjExNTswMDRFOzAwNEU7CisyMTE2OzIxMTY7MjExNjswMDRFIDAwNkY7MDA0RSAwMDZGOworMjExOTsyMTE5OzIxMTk7MDA1MDswMDUwOworMjExQTsyMTFBOzIxMUE7MDA1MTswMDUxOworMjExQjsyMTFCOzIxMUI7MDA1MjswMDUyOworMjExQzsyMTFDOzIxMUM7MDA1MjswMDUyOworMjExRDsyMTFEOzIxMUQ7MDA1MjswMDUyOworMjEyMDsyMTIwOzIxMjA7MDA1MyAwMDREOzAwNTMgMDA0RDsKKzIxMjE7MjEyMTsyMTIxOzAwNTQgMDA0NSAwMDRDOzAwNTQgMDA0NSAwMDRDOworMjEyMjsyMTIyOzIxMjI7MDA1NCAwMDREOzAwNTQgMDA0RDsKKzIxMjQ7MjEyNDsyMTI0OzAwNUE7MDA1QTsKKzIxMjY7MDNBOTswM0E5OzAzQTk7MDNBOTsKKzIxMjg7MjEyODsyMTI4OzAwNUE7MDA1QTsKKzIxMkE7MDA0QjswMDRCOzAwNEI7MDA0QjsKKzIxMkI7MDBDNTswMDQxIDAzMEE7MDBDNTswMDQxIDAzMEE7CisyMTJDOzIxMkM7MjEyQzswMDQyOzAwNDI7CisyMTJEOzIxMkQ7MjEyRDswMDQzOzAwNDM7CisyMTJGOzIxMkY7MjEyRjswMDY1OzAwNjU7CisyMTMwOzIxMzA7MjEzMDswMDQ1OzAwNDU7CisyMTMxOzIxMzE7MjEzMTswMDQ2OzAwNDY7CisyMTMzOzIxMzM7MjEzMzswMDREOzAwNEQ7CisyMTM0OzIxMzQ7MjEzNDswMDZGOzAwNkY7CisyMTM1OzIxMzU7MjEzNTswNUQwOzA1RDA7CisyMTM2OzIxMzY7MjEzNjswNUQxOzA1RDE7CisyMTM3OzIxMzc7MjEzNzswNUQyOzA1RDI7CisyMTM4OzIxMzg7MjEzODswNUQzOzA1RDM7CisyMTM5OzIxMzk7MjEzOTswMDY5OzAwNjk7CisyMTNCOzIxM0I7MjEzQjswMDQ2IDAwNDEgMDA1ODswMDQ2IDAwNDEgMDA1ODsKKzIxM0M7MjEzQzsyMTNDOzAzQzA7MDNDMDsKKzIxM0Q7MjEzRDsyMTNEOzAzQjM7MDNCMzsKKzIxM0U7MjEzRTsyMTNFOzAzOTM7MDM5MzsKKzIxM0Y7MjEzRjsyMTNGOzAzQTA7MDNBMDsKKzIxNDA7MjE0MDsyMTQwOzIyMTE7MjIxMTsKKzIxNDU7MjE0NTsyMTQ1OzAwNDQ7MDA0NDsKKzIxNDY7MjE0NjsyMTQ2OzAwNjQ7MDA2NDsKKzIxNDc7MjE0NzsyMTQ3OzAwNjU7MDA2NTsKKzIxNDg7MjE0ODsyMTQ4OzAwNjk7MDA2OTsKKzIxNDk7MjE0OTsyMTQ5OzAwNkE7MDA2QTsKKzIxNTM7MjE1MzsyMTUzOzAwMzEgMjA0NCAwMDMzOzAwMzEgMjA0NCAwMDMzOworMjE1NDsyMTU0OzIxNTQ7MDAzMiAyMDQ0IDAwMzM7MDAzMiAyMDQ0IDAwMzM7CisyMTU1OzIxNTU7MjE1NTswMDMxIDIwNDQgMDAzNTswMDMxIDIwNDQgMDAzNTsKKzIxNTY7MjE1NjsyMTU2OzAwMzIgMjA0NCAwMDM1OzAwMzIgMjA0NCAwMDM1OworMjE1NzsyMTU3OzIxNTc7MDAzMyAyMDQ0IDAwMzU7MDAzMyAyMDQ0IDAwMzU7CisyMTU4OzIxNTg7MjE1ODswMDM0IDIwNDQgMDAzNTswMDM0IDIwNDQgMDAzNTsKKzIxNTk7MjE1OTsyMTU5OzAwMzEgMjA0NCAwMDM2OzAwMzEgMjA0NCAwMDM2OworMjE1QTsyMTVBOzIxNUE7MDAzNSAyMDQ0IDAwMzY7MDAzNSAyMDQ0IDAwMzY7CisyMTVCOzIxNUI7MjE1QjswMDMxIDIwNDQgMDAzODswMDMxIDIwNDQgMDAzODsKKzIxNUM7MjE1QzsyMTVDOzAwMzMgMjA0NCAwMDM4OzAwMzMgMjA0NCAwMDM4OworMjE1RDsyMTVEOzIxNUQ7MDAzNSAyMDQ0IDAwMzg7MDAzNSAyMDQ0IDAwMzg7CisyMTVFOzIxNUU7MjE1RTswMDM3IDIwNDQgMDAzODswMDM3IDIwNDQgMDAzODsKKzIxNUY7MjE1RjsyMTVGOzAwMzEgMjA0NDswMDMxIDIwNDQ7CisyMTYwOzIxNjA7MjE2MDswMDQ5OzAwNDk7CisyMTYxOzIxNjE7MjE2MTswMDQ5IDAwNDk7MDA0OSAwMDQ5OworMjE2MjsyMTYyOzIxNjI7MDA0OSAwMDQ5IDAwNDk7MDA0OSAwMDQ5IDAwNDk7CisyMTYzOzIxNjM7MjE2MzswMDQ5IDAwNTY7MDA0OSAwMDU2OworMjE2NDsyMTY0OzIxNjQ7MDA1NjswMDU2OworMjE2NTsyMTY1OzIxNjU7MDA1NiAwMDQ5OzAwNTYgMDA0OTsKKzIxNjY7MjE2NjsyMTY2OzAwNTYgMDA0OSAwMDQ5OzAwNTYgMDA0OSAwMDQ5OworMjE2NzsyMTY3OzIxNjc7MDA1NiAwMDQ5IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OSAwMDQ5OworMjE2ODsyMTY4OzIxNjg7MDA0OSAwMDU4OzAwNDkgMDA1ODsKKzIxNjk7MjE2OTsyMTY5OzAwNTg7MDA1ODsKKzIxNkE7MjE2QTsyMTZBOzAwNTggMDA0OTswMDU4IDAwNDk7CisyMTZCOzIxNkI7MjE2QjswMDU4IDAwNDkgMDA0OTswMDU4IDAwNDkgMDA0OTsKKzIxNkM7MjE2QzsyMTZDOzAwNEM7MDA0QzsKKzIxNkQ7MjE2RDsyMTZEOzAwNDM7MDA0MzsKKzIxNkU7MjE2RTsyMTZFOzAwNDQ7MDA0NDsKKzIxNkY7MjE2RjsyMTZGOzAwNEQ7MDA0RDsKKzIxNzA7MjE3MDsyMTcwOzAwNjk7MDA2OTsKKzIxNzE7MjE3MTsyMTcxOzAwNjkgMDA2OTswMDY5IDAwNjk7CisyMTcyOzIxNzI7MjE3MjswMDY5IDAwNjkgMDA2OTswMDY5IDAwNjkgMDA2OTsKKzIxNzM7MjE3MzsyMTczOzAwNjkgMDA3NjswMDY5IDAwNzY7CisyMTc0OzIxNzQ7MjE3NDswMDc2OzAwNzY7CisyMTc1OzIxNzU7MjE3NTswMDc2IDAwNjk7MDA3NiAwMDY5OworMjE3NjsyMTc2OzIxNzY7MDA3NiAwMDY5IDAwNjk7MDA3NiAwMDY5IDAwNjk7CisyMTc3OzIxNzc7MjE3NzswMDc2IDAwNjkgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5IDAwNjk7CisyMTc4OzIxNzg7MjE3ODswMDY5IDAwNzg7MDA2OSAwMDc4OworMjE3OTsyMTc5OzIxNzk7MDA3ODswMDc4OworMjE3QTsyMTdBOzIxN0E7MDA3OCAwMDY5OzAwNzggMDA2OTsKKzIxN0I7MjE3QjsyMTdCOzAwNzggMDA2OSAwMDY5OzAwNzggMDA2OSAwMDY5OworMjE3QzsyMTdDOzIxN0M7MDA2QzswMDZDOworMjE3RDsyMTdEOzIxN0Q7MDA2MzswMDYzOworMjE3RTsyMTdFOzIxN0U7MDA2NDswMDY0OworMjE3RjsyMTdGOzIxN0Y7MDA2RDswMDZEOworMjE5QTsyMTlBOzIxOTAgMDMzODsyMTlBOzIxOTAgMDMzODsKKzIxOUI7MjE5QjsyMTkyIDAzMzg7MjE5QjsyMTkyIDAzMzg7CisyMUFFOzIxQUU7MjE5NCAwMzM4OzIxQUU7MjE5NCAwMzM4OworMjFDRDsyMUNEOzIxRDAgMDMzODsyMUNEOzIxRDAgMDMzODsKKzIxQ0U7MjFDRTsyMUQ0IDAzMzg7MjFDRTsyMUQ0IDAzMzg7CisyMUNGOzIxQ0Y7MjFEMiAwMzM4OzIxQ0Y7MjFEMiAwMzM4OworMjIwNDsyMjA0OzIyMDMgMDMzODsyMjA0OzIyMDMgMDMzODsKKzIyMDk7MjIwOTsyMjA4IDAzMzg7MjIwOTsyMjA4IDAzMzg7CisyMjBDOzIyMEM7MjIwQiAwMzM4OzIyMEM7MjIwQiAwMzM4OworMjIyNDsyMjI0OzIyMjMgMDMzODsyMjI0OzIyMjMgMDMzODsKKzIyMjY7MjIyNjsyMjI1IDAzMzg7MjIyNjsyMjI1IDAzMzg7CisyMjJDOzIyMkM7MjIyQzsyMjJCIDIyMkI7MjIyQiAyMjJCOworMjIyRDsyMjJEOzIyMkQ7MjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkI7CisyMjJGOzIyMkY7MjIyRjsyMjJFIDIyMkU7MjIyRSAyMjJFOworMjIzMDsyMjMwOzIyMzA7MjIyRSAyMjJFIDIyMkU7MjIyRSAyMjJFIDIyMkU7CisyMjQxOzIyNDE7MjIzQyAwMzM4OzIyNDE7MjIzQyAwMzM4OworMjI0NDsyMjQ0OzIyNDMgMDMzODsyMjQ0OzIyNDMgMDMzODsKKzIyNDc7MjI0NzsyMjQ1IDAzMzg7MjI0NzsyMjQ1IDAzMzg7CisyMjQ5OzIyNDk7MjI0OCAwMzM4OzIyNDk7MjI0OCAwMzM4OworMjI2MDsyMjYwOzAwM0QgMDMzODsyMjYwOzAwM0QgMDMzODsKKzIyNjI7MjI2MjsyMjYxIDAzMzg7MjI2MjsyMjYxIDAzMzg7CisyMjZEOzIyNkQ7MjI0RCAwMzM4OzIyNkQ7MjI0RCAwMzM4OworMjI2RTsyMjZFOzAwM0MgMDMzODsyMjZFOzAwM0MgMDMzODsKKzIyNkY7MjI2RjswMDNFIDAzMzg7MjI2RjswMDNFIDAzMzg7CisyMjcwOzIyNzA7MjI2NCAwMzM4OzIyNzA7MjI2NCAwMzM4OworMjI3MTsyMjcxOzIyNjUgMDMzODsyMjcxOzIyNjUgMDMzODsKKzIyNzQ7MjI3NDsyMjcyIDAzMzg7MjI3NDsyMjcyIDAzMzg7CisyMjc1OzIyNzU7MjI3MyAwMzM4OzIyNzU7MjI3MyAwMzM4OworMjI3ODsyMjc4OzIyNzYgMDMzODsyMjc4OzIyNzYgMDMzODsKKzIyNzk7MjI3OTsyMjc3IDAzMzg7MjI3OTsyMjc3IDAzMzg7CisyMjgwOzIyODA7MjI3QSAwMzM4OzIyODA7MjI3QSAwMzM4OworMjI4MTsyMjgxOzIyN0IgMDMzODsyMjgxOzIyN0IgMDMzODsKKzIyODQ7MjI4NDsyMjgyIDAzMzg7MjI4NDsyMjgyIDAzMzg7CisyMjg1OzIyODU7MjI4MyAwMzM4OzIyODU7MjI4MyAwMzM4OworMjI4ODsyMjg4OzIyODYgMDMzODsyMjg4OzIyODYgMDMzODsKKzIyODk7MjI4OTsyMjg3IDAzMzg7MjI4OTsyMjg3IDAzMzg7CisyMkFDOzIyQUM7MjJBMiAwMzM4OzIyQUM7MjJBMiAwMzM4OworMjJBRDsyMkFEOzIyQTggMDMzODsyMkFEOzIyQTggMDMzODsKKzIyQUU7MjJBRTsyMkE5IDAzMzg7MjJBRTsyMkE5IDAzMzg7CisyMkFGOzIyQUY7MjJBQiAwMzM4OzIyQUY7MjJBQiAwMzM4OworMjJFMDsyMkUwOzIyN0MgMDMzODsyMkUwOzIyN0MgMDMzODsKKzIyRTE7MjJFMTsyMjdEIDAzMzg7MjJFMTsyMjdEIDAzMzg7CisyMkUyOzIyRTI7MjI5MSAwMzM4OzIyRTI7MjI5MSAwMzM4OworMjJFMzsyMkUzOzIyOTIgMDMzODsyMkUzOzIyOTIgMDMzODsKKzIyRUE7MjJFQTsyMkIyIDAzMzg7MjJFQTsyMkIyIDAzMzg7CisyMkVCOzIyRUI7MjJCMyAwMzM4OzIyRUI7MjJCMyAwMzM4OworMjJFQzsyMkVDOzIyQjQgMDMzODsyMkVDOzIyQjQgMDMzODsKKzIyRUQ7MjJFRDsyMkI1IDAzMzg7MjJFRDsyMkI1IDAzMzg7CisyMzI5OzMwMDg7MzAwODszMDA4OzMwMDg7CisyMzJBOzMwMDk7MzAwOTszMDA5OzMwMDk7CisyNDYwOzI0NjA7MjQ2MDswMDMxOzAwMzE7CisyNDYxOzI0NjE7MjQ2MTswMDMyOzAwMzI7CisyNDYyOzI0NjI7MjQ2MjswMDMzOzAwMzM7CisyNDYzOzI0NjM7MjQ2MzswMDM0OzAwMzQ7CisyNDY0OzI0NjQ7MjQ2NDswMDM1OzAwMzU7CisyNDY1OzI0NjU7MjQ2NTswMDM2OzAwMzY7CisyNDY2OzI0NjY7MjQ2NjswMDM3OzAwMzc7CisyNDY3OzI0Njc7MjQ2NzswMDM4OzAwMzg7CisyNDY4OzI0Njg7MjQ2ODswMDM5OzAwMzk7CisyNDY5OzI0Njk7MjQ2OTswMDMxIDAwMzA7MDAzMSAwMDMwOworMjQ2QTsyNDZBOzI0NkE7MDAzMSAwMDMxOzAwMzEgMDAzMTsKKzI0NkI7MjQ2QjsyNDZCOzAwMzEgMDAzMjswMDMxIDAwMzI7CisyNDZDOzI0NkM7MjQ2QzswMDMxIDAwMzM7MDAzMSAwMDMzOworMjQ2RDsyNDZEOzI0NkQ7MDAzMSAwMDM0OzAwMzEgMDAzNDsKKzI0NkU7MjQ2RTsyNDZFOzAwMzEgMDAzNTswMDMxIDAwMzU7CisyNDZGOzI0NkY7MjQ2RjswMDMxIDAwMzY7MDAzMSAwMDM2OworMjQ3MDsyNDcwOzI0NzA7MDAzMSAwMDM3OzAwMzEgMDAzNzsKKzI0NzE7MjQ3MTsyNDcxOzAwMzEgMDAzODswMDMxIDAwMzg7CisyNDcyOzI0NzI7MjQ3MjswMDMxIDAwMzk7MDAzMSAwMDM5OworMjQ3MzsyNDczOzI0NzM7MDAzMiAwMDMwOzAwMzIgMDAzMDsKKzI0NzQ7MjQ3NDsyNDc0OzAwMjggMDAzMSAwMDI5OzAwMjggMDAzMSAwMDI5OworMjQ3NTsyNDc1OzI0NzU7MDAyOCAwMDMyIDAwMjk7MDAyOCAwMDMyIDAwMjk7CisyNDc2OzI0NzY7MjQ3NjswMDI4IDAwMzMgMDAyOTswMDI4IDAwMzMgMDAyOTsKKzI0Nzc7MjQ3NzsyNDc3OzAwMjggMDAzNCAwMDI5OzAwMjggMDAzNCAwMDI5OworMjQ3ODsyNDc4OzI0Nzg7MDAyOCAwMDM1IDAwMjk7MDAyOCAwMDM1IDAwMjk7CisyNDc5OzI0Nzk7MjQ3OTswMDI4IDAwMzYgMDAyOTswMDI4IDAwMzYgMDAyOTsKKzI0N0E7MjQ3QTsyNDdBOzAwMjggMDAzNyAwMDI5OzAwMjggMDAzNyAwMDI5OworMjQ3QjsyNDdCOzI0N0I7MDAyOCAwMDM4IDAwMjk7MDAyOCAwMDM4IDAwMjk7CisyNDdDOzI0N0M7MjQ3QzswMDI4IDAwMzkgMDAyOTswMDI4IDAwMzkgMDAyOTsKKzI0N0Q7MjQ3RDsyNDdEOzAwMjggMDAzMSAwMDMwIDAwMjk7MDAyOCAwMDMxIDAwMzAgMDAyOTsKKzI0N0U7MjQ3RTsyNDdFOzAwMjggMDAzMSAwMDMxIDAwMjk7MDAyOCAwMDMxIDAwMzEgMDAyOTsKKzI0N0Y7MjQ3RjsyNDdGOzAwMjggMDAzMSAwMDMyIDAwMjk7MDAyOCAwMDMxIDAwMzIgMDAyOTsKKzI0ODA7MjQ4MDsyNDgwOzAwMjggMDAzMSAwMDMzIDAwMjk7MDAyOCAwMDMxIDAwMzMgMDAyOTsKKzI0ODE7MjQ4MTsyNDgxOzAwMjggMDAzMSAwMDM0IDAwMjk7MDAyOCAwMDMxIDAwMzQgMDAyOTsKKzI0ODI7MjQ4MjsyNDgyOzAwMjggMDAzMSAwMDM1IDAwMjk7MDAyOCAwMDMxIDAwMzUgMDAyOTsKKzI0ODM7MjQ4MzsyNDgzOzAwMjggMDAzMSAwMDM2IDAwMjk7MDAyOCAwMDMxIDAwMzYgMDAyOTsKKzI0ODQ7MjQ4NDsyNDg0OzAwMjggMDAzMSAwMDM3IDAwMjk7MDAyOCAwMDMxIDAwMzcgMDAyOTsKKzI0ODU7MjQ4NTsyNDg1OzAwMjggMDAzMSAwMDM4IDAwMjk7MDAyOCAwMDMxIDAwMzggMDAyOTsKKzI0ODY7MjQ4NjsyNDg2OzAwMjggMDAzMSAwMDM5IDAwMjk7MDAyOCAwMDMxIDAwMzkgMDAyOTsKKzI0ODc7MjQ4NzsyNDg3OzAwMjggMDAzMiAwMDMwIDAwMjk7MDAyOCAwMDMyIDAwMzAgMDAyOTsKKzI0ODg7MjQ4ODsyNDg4OzAwMzEgMDAyRTswMDMxIDAwMkU7CisyNDg5OzI0ODk7MjQ4OTswMDMyIDAwMkU7MDAzMiAwMDJFOworMjQ4QTsyNDhBOzI0OEE7MDAzMyAwMDJFOzAwMzMgMDAyRTsKKzI0OEI7MjQ4QjsyNDhCOzAwMzQgMDAyRTswMDM0IDAwMkU7CisyNDhDOzI0OEM7MjQ4QzswMDM1IDAwMkU7MDAzNSAwMDJFOworMjQ4RDsyNDhEOzI0OEQ7MDAzNiAwMDJFOzAwMzYgMDAyRTsKKzI0OEU7MjQ4RTsyNDhFOzAwMzcgMDAyRTswMDM3IDAwMkU7CisyNDhGOzI0OEY7MjQ4RjswMDM4IDAwMkU7MDAzOCAwMDJFOworMjQ5MDsyNDkwOzI0OTA7MDAzOSAwMDJFOzAwMzkgMDAyRTsKKzI0OTE7MjQ5MTsyNDkxOzAwMzEgMDAzMCAwMDJFOzAwMzEgMDAzMCAwMDJFOworMjQ5MjsyNDkyOzI0OTI7MDAzMSAwMDMxIDAwMkU7MDAzMSAwMDMxIDAwMkU7CisyNDkzOzI0OTM7MjQ5MzswMDMxIDAwMzIgMDAyRTswMDMxIDAwMzIgMDAyRTsKKzI0OTQ7MjQ5NDsyNDk0OzAwMzEgMDAzMyAwMDJFOzAwMzEgMDAzMyAwMDJFOworMjQ5NTsyNDk1OzI0OTU7MDAzMSAwMDM0IDAwMkU7MDAzMSAwMDM0IDAwMkU7CisyNDk2OzI0OTY7MjQ5NjswMDMxIDAwMzUgMDAyRTswMDMxIDAwMzUgMDAyRTsKKzI0OTc7MjQ5NzsyNDk3OzAwMzEgMDAzNiAwMDJFOzAwMzEgMDAzNiAwMDJFOworMjQ5ODsyNDk4OzI0OTg7MDAzMSAwMDM3IDAwMkU7MDAzMSAwMDM3IDAwMkU7CisyNDk5OzI0OTk7MjQ5OTswMDMxIDAwMzggMDAyRTswMDMxIDAwMzggMDAyRTsKKzI0OUE7MjQ5QTsyNDlBOzAwMzEgMDAzOSAwMDJFOzAwMzEgMDAzOSAwMDJFOworMjQ5QjsyNDlCOzI0OUI7MDAzMiAwMDMwIDAwMkU7MDAzMiAwMDMwIDAwMkU7CisyNDlDOzI0OUM7MjQ5QzswMDI4IDAwNjEgMDAyOTswMDI4IDAwNjEgMDAyOTsKKzI0OUQ7MjQ5RDsyNDlEOzAwMjggMDA2MiAwMDI5OzAwMjggMDA2MiAwMDI5OworMjQ5RTsyNDlFOzI0OUU7MDAyOCAwMDYzIDAwMjk7MDAyOCAwMDYzIDAwMjk7CisyNDlGOzI0OUY7MjQ5RjswMDI4IDAwNjQgMDAyOTswMDI4IDAwNjQgMDAyOTsKKzI0QTA7MjRBMDsyNEEwOzAwMjggMDA2NSAwMDI5OzAwMjggMDA2NSAwMDI5OworMjRBMTsyNEExOzI0QTE7MDAyOCAwMDY2IDAwMjk7MDAyOCAwMDY2IDAwMjk7CisyNEEyOzI0QTI7MjRBMjswMDI4IDAwNjcgMDAyOTswMDI4IDAwNjcgMDAyOTsKKzI0QTM7MjRBMzsyNEEzOzAwMjggMDA2OCAwMDI5OzAwMjggMDA2OCAwMDI5OworMjRBNDsyNEE0OzI0QTQ7MDAyOCAwMDY5IDAwMjk7MDAyOCAwMDY5IDAwMjk7CisyNEE1OzI0QTU7MjRBNTswMDI4IDAwNkEgMDAyOTswMDI4IDAwNkEgMDAyOTsKKzI0QTY7MjRBNjsyNEE2OzAwMjggMDA2QiAwMDI5OzAwMjggMDA2QiAwMDI5OworMjRBNzsyNEE3OzI0QTc7MDAyOCAwMDZDIDAwMjk7MDAyOCAwMDZDIDAwMjk7CisyNEE4OzI0QTg7MjRBODswMDI4IDAwNkQgMDAyOTswMDI4IDAwNkQgMDAyOTsKKzI0QTk7MjRBOTsyNEE5OzAwMjggMDA2RSAwMDI5OzAwMjggMDA2RSAwMDI5OworMjRBQTsyNEFBOzI0QUE7MDAyOCAwMDZGIDAwMjk7MDAyOCAwMDZGIDAwMjk7CisyNEFCOzI0QUI7MjRBQjswMDI4IDAwNzAgMDAyOTswMDI4IDAwNzAgMDAyOTsKKzI0QUM7MjRBQzsyNEFDOzAwMjggMDA3MSAwMDI5OzAwMjggMDA3MSAwMDI5OworMjRBRDsyNEFEOzI0QUQ7MDAyOCAwMDcyIDAwMjk7MDAyOCAwMDcyIDAwMjk7CisyNEFFOzI0QUU7MjRBRTswMDI4IDAwNzMgMDAyOTswMDI4IDAwNzMgMDAyOTsKKzI0QUY7MjRBRjsyNEFGOzAwMjggMDA3NCAwMDI5OzAwMjggMDA3NCAwMDI5OworMjRCMDsyNEIwOzI0QjA7MDAyOCAwMDc1IDAwMjk7MDAyOCAwMDc1IDAwMjk7CisyNEIxOzI0QjE7MjRCMTswMDI4IDAwNzYgMDAyOTswMDI4IDAwNzYgMDAyOTsKKzI0QjI7MjRCMjsyNEIyOzAwMjggMDA3NyAwMDI5OzAwMjggMDA3NyAwMDI5OworMjRCMzsyNEIzOzI0QjM7MDAyOCAwMDc4IDAwMjk7MDAyOCAwMDc4IDAwMjk7CisyNEI0OzI0QjQ7MjRCNDswMDI4IDAwNzkgMDAyOTswMDI4IDAwNzkgMDAyOTsKKzI0QjU7MjRCNTsyNEI1OzAwMjggMDA3QSAwMDI5OzAwMjggMDA3QSAwMDI5OworMjRCNjsyNEI2OzI0QjY7MDA0MTswMDQxOworMjRCNzsyNEI3OzI0Qjc7MDA0MjswMDQyOworMjRCODsyNEI4OzI0Qjg7MDA0MzswMDQzOworMjRCOTsyNEI5OzI0Qjk7MDA0NDswMDQ0OworMjRCQTsyNEJBOzI0QkE7MDA0NTswMDQ1OworMjRCQjsyNEJCOzI0QkI7MDA0NjswMDQ2OworMjRCQzsyNEJDOzI0QkM7MDA0NzswMDQ3OworMjRCRDsyNEJEOzI0QkQ7MDA0ODswMDQ4OworMjRCRTsyNEJFOzI0QkU7MDA0OTswMDQ5OworMjRCRjsyNEJGOzI0QkY7MDA0QTswMDRBOworMjRDMDsyNEMwOzI0QzA7MDA0QjswMDRCOworMjRDMTsyNEMxOzI0QzE7MDA0QzswMDRDOworMjRDMjsyNEMyOzI0QzI7MDA0RDswMDREOworMjRDMzsyNEMzOzI0QzM7MDA0RTswMDRFOworMjRDNDsyNEM0OzI0QzQ7MDA0RjswMDRGOworMjRDNTsyNEM1OzI0QzU7MDA1MDswMDUwOworMjRDNjsyNEM2OzI0QzY7MDA1MTswMDUxOworMjRDNzsyNEM3OzI0Qzc7MDA1MjswMDUyOworMjRDODsyNEM4OzI0Qzg7MDA1MzswMDUzOworMjRDOTsyNEM5OzI0Qzk7MDA1NDswMDU0OworMjRDQTsyNENBOzI0Q0E7MDA1NTswMDU1OworMjRDQjsyNENCOzI0Q0I7MDA1NjswMDU2OworMjRDQzsyNENDOzI0Q0M7MDA1NzswMDU3OworMjRDRDsyNENEOzI0Q0Q7MDA1ODswMDU4OworMjRDRTsyNENFOzI0Q0U7MDA1OTswMDU5OworMjRDRjsyNENGOzI0Q0Y7MDA1QTswMDVBOworMjREMDsyNEQwOzI0RDA7MDA2MTswMDYxOworMjREMTsyNEQxOzI0RDE7MDA2MjswMDYyOworMjREMjsyNEQyOzI0RDI7MDA2MzswMDYzOworMjREMzsyNEQzOzI0RDM7MDA2NDswMDY0OworMjRENDsyNEQ0OzI0RDQ7MDA2NTswMDY1OworMjRENTsyNEQ1OzI0RDU7MDA2NjswMDY2OworMjRENjsyNEQ2OzI0RDY7MDA2NzswMDY3OworMjRENzsyNEQ3OzI0RDc7MDA2ODswMDY4OworMjREODsyNEQ4OzI0RDg7MDA2OTswMDY5OworMjREOTsyNEQ5OzI0RDk7MDA2QTswMDZBOworMjREQTsyNERBOzI0REE7MDA2QjswMDZCOworMjREQjsyNERCOzI0REI7MDA2QzswMDZDOworMjREQzsyNERDOzI0REM7MDA2RDswMDZEOworMjRERDsyNEREOzI0REQ7MDA2RTswMDZFOworMjRERTsyNERFOzI0REU7MDA2RjswMDZGOworMjRERjsyNERGOzI0REY7MDA3MDswMDcwOworMjRFMDsyNEUwOzI0RTA7MDA3MTswMDcxOworMjRFMTsyNEUxOzI0RTE7MDA3MjswMDcyOworMjRFMjsyNEUyOzI0RTI7MDA3MzswMDczOworMjRFMzsyNEUzOzI0RTM7MDA3NDswMDc0OworMjRFNDsyNEU0OzI0RTQ7MDA3NTswMDc1OworMjRFNTsyNEU1OzI0RTU7MDA3NjswMDc2OworMjRFNjsyNEU2OzI0RTY7MDA3NzswMDc3OworMjRFNzsyNEU3OzI0RTc7MDA3ODswMDc4OworMjRFODsyNEU4OzI0RTg7MDA3OTswMDc5OworMjRFOTsyNEU5OzI0RTk7MDA3QTswMDdBOworMjRFQTsyNEVBOzI0RUE7MDAzMDswMDMwOworMkEwQzsyQTBDOzJBMEM7MjIyQiAyMjJCIDIyMkIgMjIyQjsyMjJCIDIyMkIgMjIyQiAyMjJCOworMkE3NDsyQTc0OzJBNzQ7MDAzQSAwMDNBIDAwM0Q7MDAzQSAwMDNBIDAwM0Q7CisyQTc1OzJBNzU7MkE3NTswMDNEIDAwM0Q7MDAzRCAwMDNEOworMkE3NjsyQTc2OzJBNzY7MDAzRCAwMDNEIDAwM0Q7MDAzRCAwMDNEIDAwM0Q7CisyQURDOzJBREQgMDMzODsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsKKzJENkY7MkQ2RjsyRDZGOzJENjE7MkQ2MTsKKzJFOUY7MkU5RjsyRTlGOzZCQ0Q7NkJDRDsKKzJFRjM7MkVGMzsyRUYzOzlGOUY7OUY5RjsKKzJGMDA7MkYwMDsyRjAwOzRFMDA7NEUwMDsKKzJGMDE7MkYwMTsyRjAxOzRFMjg7NEUyODsKKzJGMDI7MkYwMjsyRjAyOzRFMzY7NEUzNjsKKzJGMDM7MkYwMzsyRjAzOzRFM0Y7NEUzRjsKKzJGMDQ7MkYwNDsyRjA0OzRFNTk7NEU1OTsKKzJGMDU7MkYwNTsyRjA1OzRFODU7NEU4NTsKKzJGMDY7MkYwNjsyRjA2OzRFOEM7NEU4QzsKKzJGMDc7MkYwNzsyRjA3OzRFQTA7NEVBMDsKKzJGMDg7MkYwODsyRjA4OzRFQkE7NEVCQTsKKzJGMDk7MkYwOTsyRjA5OzUxM0Y7NTEzRjsKKzJGMEE7MkYwQTsyRjBBOzUxNjU7NTE2NTsKKzJGMEI7MkYwQjsyRjBCOzUxNkI7NTE2QjsKKzJGMEM7MkYwQzsyRjBDOzUxODI7NTE4MjsKKzJGMEQ7MkYwRDsyRjBEOzUxOTY7NTE5NjsKKzJGMEU7MkYwRTsyRjBFOzUxQUI7NTFBQjsKKzJGMEY7MkYwRjsyRjBGOzUxRTA7NTFFMDsKKzJGMTA7MkYxMDsyRjEwOzUxRjU7NTFGNTsKKzJGMTE7MkYxMTsyRjExOzUyMDA7NTIwMDsKKzJGMTI7MkYxMjsyRjEyOzUyOUI7NTI5QjsKKzJGMTM7MkYxMzsyRjEzOzUyRjk7NTJGOTsKKzJGMTQ7MkYxNDsyRjE0OzUzMTU7NTMxNTsKKzJGMTU7MkYxNTsyRjE1OzUzMUE7NTMxQTsKKzJGMTY7MkYxNjsyRjE2OzUzMzg7NTMzODsKKzJGMTc7MkYxNzsyRjE3OzUzNDE7NTM0MTsKKzJGMTg7MkYxODsyRjE4OzUzNUM7NTM1QzsKKzJGMTk7MkYxOTsyRjE5OzUzNjk7NTM2OTsKKzJGMUE7MkYxQTsyRjFBOzUzODI7NTM4MjsKKzJGMUI7MkYxQjsyRjFCOzUzQjY7NTNCNjsKKzJGMUM7MkYxQzsyRjFDOzUzQzg7NTNDODsKKzJGMUQ7MkYxRDsyRjFEOzUzRTM7NTNFMzsKKzJGMUU7MkYxRTsyRjFFOzU2RDc7NTZENzsKKzJGMUY7MkYxRjsyRjFGOzU3MUY7NTcxRjsKKzJGMjA7MkYyMDsyRjIwOzU4RUI7NThFQjsKKzJGMjE7MkYyMTsyRjIxOzU5MDI7NTkwMjsKKzJGMjI7MkYyMjsyRjIyOzU5MEE7NTkwQTsKKzJGMjM7MkYyMzsyRjIzOzU5MTU7NTkxNTsKKzJGMjQ7MkYyNDsyRjI0OzU5Mjc7NTkyNzsKKzJGMjU7MkYyNTsyRjI1OzU5NzM7NTk3MzsKKzJGMjY7MkYyNjsyRjI2OzVCNTA7NUI1MDsKKzJGMjc7MkYyNzsyRjI3OzVCODA7NUI4MDsKKzJGMjg7MkYyODsyRjI4OzVCRjg7NUJGODsKKzJGMjk7MkYyOTsyRjI5OzVDMEY7NUMwRjsKKzJGMkE7MkYyQTsyRjJBOzVDMjI7NUMyMjsKKzJGMkI7MkYyQjsyRjJCOzVDMzg7NUMzODsKKzJGMkM7MkYyQzsyRjJDOzVDNkU7NUM2RTsKKzJGMkQ7MkYyRDsyRjJEOzVDNzE7NUM3MTsKKzJGMkU7MkYyRTsyRjJFOzVEREI7NUREQjsKKzJGMkY7MkYyRjsyRjJGOzVERTU7NURFNTsKKzJGMzA7MkYzMDsyRjMwOzVERjE7NURGMTsKKzJGMzE7MkYzMTsyRjMxOzVERkU7NURGRTsKKzJGMzI7MkYzMjsyRjMyOzVFNzI7NUU3MjsKKzJGMzM7MkYzMzsyRjMzOzVFN0E7NUU3QTsKKzJGMzQ7MkYzNDsyRjM0OzVFN0Y7NUU3RjsKKzJGMzU7MkYzNTsyRjM1OzVFRjQ7NUVGNDsKKzJGMzY7MkYzNjsyRjM2OzVFRkU7NUVGRTsKKzJGMzc7MkYzNzsyRjM3OzVGMEI7NUYwQjsKKzJGMzg7MkYzODsyRjM4OzVGMTM7NUYxMzsKKzJGMzk7MkYzOTsyRjM5OzVGNTA7NUY1MDsKKzJGM0E7MkYzQTsyRjNBOzVGNjE7NUY2MTsKKzJGM0I7MkYzQjsyRjNCOzVGNzM7NUY3MzsKKzJGM0M7MkYzQzsyRjNDOzVGQzM7NUZDMzsKKzJGM0Q7MkYzRDsyRjNEOzYyMDg7NjIwODsKKzJGM0U7MkYzRTsyRjNFOzYyMzY7NjIzNjsKKzJGM0Y7MkYzRjsyRjNGOzYyNEI7NjI0QjsKKzJGNDA7MkY0MDsyRjQwOzY1MkY7NjUyRjsKKzJGNDE7MkY0MTsyRjQxOzY1MzQ7NjUzNDsKKzJGNDI7MkY0MjsyRjQyOzY1ODc7NjU4NzsKKzJGNDM7MkY0MzsyRjQzOzY1OTc7NjU5NzsKKzJGNDQ7MkY0NDsyRjQ0OzY1QTQ7NjVBNDsKKzJGNDU7MkY0NTsyRjQ1OzY1Qjk7NjVCOTsKKzJGNDY7MkY0NjsyRjQ2OzY1RTA7NjVFMDsKKzJGNDc7MkY0NzsyRjQ3OzY1RTU7NjVFNTsKKzJGNDg7MkY0ODsyRjQ4OzY2RjA7NjZGMDsKKzJGNDk7MkY0OTsyRjQ5OzY3MDg7NjcwODsKKzJGNEE7MkY0QTsyRjRBOzY3Mjg7NjcyODsKKzJGNEI7MkY0QjsyRjRCOzZCMjA7NkIyMDsKKzJGNEM7MkY0QzsyRjRDOzZCNjI7NkI2MjsKKzJGNEQ7MkY0RDsyRjREOzZCNzk7NkI3OTsKKzJGNEU7MkY0RTsyRjRFOzZCQjM7NkJCMzsKKzJGNEY7MkY0RjsyRjRGOzZCQ0I7NkJDQjsKKzJGNTA7MkY1MDsyRjUwOzZCRDQ7NkJENDsKKzJGNTE7MkY1MTsyRjUxOzZCREI7NkJEQjsKKzJGNTI7MkY1MjsyRjUyOzZDMEY7NkMwRjsKKzJGNTM7MkY1MzsyRjUzOzZDMTQ7NkMxNDsKKzJGNTQ7MkY1NDsyRjU0OzZDMzQ7NkMzNDsKKzJGNTU7MkY1NTsyRjU1OzcwNkI7NzA2QjsKKzJGNTY7MkY1NjsyRjU2OzcyMkE7NzIyQTsKKzJGNTc7MkY1NzsyRjU3OzcyMzY7NzIzNjsKKzJGNTg7MkY1ODsyRjU4OzcyM0I7NzIzQjsKKzJGNTk7MkY1OTsyRjU5OzcyM0Y7NzIzRjsKKzJGNUE7MkY1QTsyRjVBOzcyNDc7NzI0NzsKKzJGNUI7MkY1QjsyRjVCOzcyNTk7NzI1OTsKKzJGNUM7MkY1QzsyRjVDOzcyNUI7NzI1QjsKKzJGNUQ7MkY1RDsyRjVEOzcyQUM7NzJBQzsKKzJGNUU7MkY1RTsyRjVFOzczODQ7NzM4NDsKKzJGNUY7MkY1RjsyRjVGOzczODk7NzM4OTsKKzJGNjA7MkY2MDsyRjYwOzc0REM7NzREQzsKKzJGNjE7MkY2MTsyRjYxOzc0RTY7NzRFNjsKKzJGNjI7MkY2MjsyRjYyOzc1MTg7NzUxODsKKzJGNjM7MkY2MzsyRjYzOzc1MUY7NzUxRjsKKzJGNjQ7MkY2NDsyRjY0Ozc1Mjg7NzUyODsKKzJGNjU7MkY2NTsyRjY1Ozc1MzA7NzUzMDsKKzJGNjY7MkY2NjsyRjY2Ozc1OEI7NzU4QjsKKzJGNjc7MkY2NzsyRjY3Ozc1OTI7NzU5MjsKKzJGNjg7MkY2ODsyRjY4Ozc2NzY7NzY3NjsKKzJGNjk7MkY2OTsyRjY5Ozc2N0Q7NzY3RDsKKzJGNkE7MkY2QTsyRjZBOzc2QUU7NzZBRTsKKzJGNkI7MkY2QjsyRjZCOzc2QkY7NzZCRjsKKzJGNkM7MkY2QzsyRjZDOzc2RUU7NzZFRTsKKzJGNkQ7MkY2RDsyRjZEOzc3REI7NzdEQjsKKzJGNkU7MkY2RTsyRjZFOzc3RTI7NzdFMjsKKzJGNkY7MkY2RjsyRjZGOzc3RjM7NzdGMzsKKzJGNzA7MkY3MDsyRjcwOzc5M0E7NzkzQTsKKzJGNzE7MkY3MTsyRjcxOzc5Qjg7NzlCODsKKzJGNzI7MkY3MjsyRjcyOzc5QkU7NzlCRTsKKzJGNzM7MkY3MzsyRjczOzdBNzQ7N0E3NDsKKzJGNzQ7MkY3NDsyRjc0OzdBQ0I7N0FDQjsKKzJGNzU7MkY3NTsyRjc1OzdBRjk7N0FGOTsKKzJGNzY7MkY3NjsyRjc2OzdDNzM7N0M3MzsKKzJGNzc7MkY3NzsyRjc3OzdDRjg7N0NGODsKKzJGNzg7MkY3ODsyRjc4OzdGMzY7N0YzNjsKKzJGNzk7MkY3OTsyRjc5OzdGNTE7N0Y1MTsKKzJGN0E7MkY3QTsyRjdBOzdGOEE7N0Y4QTsKKzJGN0I7MkY3QjsyRjdCOzdGQkQ7N0ZCRDsKKzJGN0M7MkY3QzsyRjdDOzgwMDE7ODAwMTsKKzJGN0Q7MkY3RDsyRjdEOzgwMEM7ODAwQzsKKzJGN0U7MkY3RTsyRjdFOzgwMTI7ODAxMjsKKzJGN0Y7MkY3RjsyRjdGOzgwMzM7ODAzMzsKKzJGODA7MkY4MDsyRjgwOzgwN0Y7ODA3RjsKKzJGODE7MkY4MTsyRjgxOzgwODk7ODA4OTsKKzJGODI7MkY4MjsyRjgyOzgxRTM7ODFFMzsKKzJGODM7MkY4MzsyRjgzOzgxRUE7ODFFQTsKKzJGODQ7MkY4NDsyRjg0OzgxRjM7ODFGMzsKKzJGODU7MkY4NTsyRjg1OzgxRkM7ODFGQzsKKzJGODY7MkY4NjsyRjg2OzgyMEM7ODIwQzsKKzJGODc7MkY4NzsyRjg3OzgyMUI7ODIxQjsKKzJGODg7MkY4ODsyRjg4OzgyMUY7ODIxRjsKKzJGODk7MkY4OTsyRjg5OzgyNkU7ODI2RTsKKzJGOEE7MkY4QTsyRjhBOzgyNzI7ODI3MjsKKzJGOEI7MkY4QjsyRjhCOzgyNzg7ODI3ODsKKzJGOEM7MkY4QzsyRjhDOzg2NEQ7ODY0RDsKKzJGOEQ7MkY4RDsyRjhEOzg2NkI7ODY2QjsKKzJGOEU7MkY4RTsyRjhFOzg4NDA7ODg0MDsKKzJGOEY7MkY4RjsyRjhGOzg4NEM7ODg0QzsKKzJGOTA7MkY5MDsyRjkwOzg4NjM7ODg2MzsKKzJGOTE7MkY5MTsyRjkxOzg5N0U7ODk3RTsKKzJGOTI7MkY5MjsyRjkyOzg5OEI7ODk4QjsKKzJGOTM7MkY5MzsyRjkzOzg5RDI7ODlEMjsKKzJGOTQ7MkY5NDsyRjk0OzhBMDA7OEEwMDsKKzJGOTU7MkY5NTsyRjk1OzhDMzc7OEMzNzsKKzJGOTY7MkY5NjsyRjk2OzhDNDY7OEM0NjsKKzJGOTc7MkY5NzsyRjk3OzhDNTU7OEM1NTsKKzJGOTg7MkY5ODsyRjk4OzhDNzg7OEM3ODsKKzJGOTk7MkY5OTsyRjk5OzhDOUQ7OEM5RDsKKzJGOUE7MkY5QTsyRjlBOzhENjQ7OEQ2NDsKKzJGOUI7MkY5QjsyRjlCOzhENzA7OEQ3MDsKKzJGOUM7MkY5QzsyRjlDOzhEQjM7OERCMzsKKzJGOUQ7MkY5RDsyRjlEOzhFQUI7OEVBQjsKKzJGOUU7MkY5RTsyRjlFOzhFQ0E7OEVDQTsKKzJGOUY7MkY5RjsyRjlGOzhGOUI7OEY5QjsKKzJGQTA7MkZBMDsyRkEwOzhGQjA7OEZCMDsKKzJGQTE7MkZBMTsyRkExOzhGQjU7OEZCNTsKKzJGQTI7MkZBMjsyRkEyOzkwOTE7OTA5MTsKKzJGQTM7MkZBMzsyRkEzOzkxNDk7OTE0OTsKKzJGQTQ7MkZBNDsyRkE0OzkxQzY7OTFDNjsKKzJGQTU7MkZBNTsyRkE1OzkxQ0M7OTFDQzsKKzJGQTY7MkZBNjsyRkE2OzkxRDE7OTFEMTsKKzJGQTc7MkZBNzsyRkE3Ozk1Nzc7OTU3NzsKKzJGQTg7MkZBODsyRkE4Ozk1ODA7OTU4MDsKKzJGQTk7MkZBOTsyRkE5Ozk2MUM7OTYxQzsKKzJGQUE7MkZBQTsyRkFBOzk2QjY7OTZCNjsKKzJGQUI7MkZBQjsyRkFCOzk2Qjk7OTZCOTsKKzJGQUM7MkZBQzsyRkFDOzk2RTg7OTZFODsKKzJGQUQ7MkZBRDsyRkFEOzk3NTE7OTc1MTsKKzJGQUU7MkZBRTsyRkFFOzk3NUU7OTc1RTsKKzJGQUY7MkZBRjsyRkFGOzk3NjI7OTc2MjsKKzJGQjA7MkZCMDsyRkIwOzk3Njk7OTc2OTsKKzJGQjE7MkZCMTsyRkIxOzk3Q0I7OTdDQjsKKzJGQjI7MkZCMjsyRkIyOzk3RUQ7OTdFRDsKKzJGQjM7MkZCMzsyRkIzOzk3RjM7OTdGMzsKKzJGQjQ7MkZCNDsyRkI0Ozk4MDE7OTgwMTsKKzJGQjU7MkZCNTsyRkI1Ozk4QTg7OThBODsKKzJGQjY7MkZCNjsyRkI2Ozk4REI7OThEQjsKKzJGQjc7MkZCNzsyRkI3Ozk4REY7OThERjsKKzJGQjg7MkZCODsyRkI4Ozk5OTY7OTk5NjsKKzJGQjk7MkZCOTsyRkI5Ozk5OTk7OTk5OTsKKzJGQkE7MkZCQTsyRkJBOzk5QUM7OTlBQzsKKzJGQkI7MkZCQjsyRkJCOzlBQTg7OUFBODsKKzJGQkM7MkZCQzsyRkJDOzlBRDg7OUFEODsKKzJGQkQ7MkZCRDsyRkJEOzlBREY7OUFERjsKKzJGQkU7MkZCRTsyRkJFOzlCMjU7OUIyNTsKKzJGQkY7MkZCRjsyRkJGOzlCMkY7OUIyRjsKKzJGQzA7MkZDMDsyRkMwOzlCMzI7OUIzMjsKKzJGQzE7MkZDMTsyRkMxOzlCM0M7OUIzQzsKKzJGQzI7MkZDMjsyRkMyOzlCNUE7OUI1QTsKKzJGQzM7MkZDMzsyRkMzOzlDRTU7OUNFNTsKKzJGQzQ7MkZDNDsyRkM0OzlFNzU7OUU3NTsKKzJGQzU7MkZDNTsyRkM1OzlFN0Y7OUU3RjsKKzJGQzY7MkZDNjsyRkM2OzlFQTU7OUVBNTsKKzJGQzc7MkZDNzsyRkM3OzlFQkI7OUVCQjsKKzJGQzg7MkZDODsyRkM4OzlFQzM7OUVDMzsKKzJGQzk7MkZDOTsyRkM5OzlFQ0Q7OUVDRDsKKzJGQ0E7MkZDQTsyRkNBOzlFRDE7OUVEMTsKKzJGQ0I7MkZDQjsyRkNCOzlFRjk7OUVGOTsKKzJGQ0M7MkZDQzsyRkNDOzlFRkQ7OUVGRDsKKzJGQ0Q7MkZDRDsyRkNEOzlGMEU7OUYwRTsKKzJGQ0U7MkZDRTsyRkNFOzlGMTM7OUYxMzsKKzJGQ0Y7MkZDRjsyRkNGOzlGMjA7OUYyMDsKKzJGRDA7MkZEMDsyRkQwOzlGM0I7OUYzQjsKKzJGRDE7MkZEMTsyRkQxOzlGNEE7OUY0QTsKKzJGRDI7MkZEMjsyRkQyOzlGNTI7OUY1MjsKKzJGRDM7MkZEMzsyRkQzOzlGOEQ7OUY4RDsKKzJGRDQ7MkZENDsyRkQ0OzlGOUM7OUY5QzsKKzJGRDU7MkZENTsyRkQ1OzlGQTA7OUZBMDsKKzMwMDA7MzAwMDszMDAwOzAwMjA7MDAyMDsKKzMwMzY7MzAzNjszMDM2OzMwMTI7MzAxMjsKKzMwMzg7MzAzODszMDM4OzUzNDE7NTM0MTsKKzMwMzk7MzAzOTszMDM5OzUzNDQ7NTM0NDsKKzMwM0E7MzAzQTszMDNBOzUzNDU7NTM0NTsKKzMwNEM7MzA0QzszMDRCIDMwOTk7MzA0QzszMDRCIDMwOTk7CiszMDRFOzMwNEU7MzA0RCAzMDk5OzMwNEU7MzA0RCAzMDk5OworMzA1MDszMDUwOzMwNEYgMzA5OTszMDUwOzMwNEYgMzA5OTsKKzMwNTI7MzA1MjszMDUxIDMwOTk7MzA1MjszMDUxIDMwOTk7CiszMDU0OzMwNTQ7MzA1MyAzMDk5OzMwNTQ7MzA1MyAzMDk5OworMzA1NjszMDU2OzMwNTUgMzA5OTszMDU2OzMwNTUgMzA5OTsKKzMwNTg7MzA1ODszMDU3IDMwOTk7MzA1ODszMDU3IDMwOTk7CiszMDVBOzMwNUE7MzA1OSAzMDk5OzMwNUE7MzA1OSAzMDk5OworMzA1QzszMDVDOzMwNUIgMzA5OTszMDVDOzMwNUIgMzA5OTsKKzMwNUU7MzA1RTszMDVEIDMwOTk7MzA1RTszMDVEIDMwOTk7CiszMDYwOzMwNjA7MzA1RiAzMDk5OzMwNjA7MzA1RiAzMDk5OworMzA2MjszMDYyOzMwNjEgMzA5OTszMDYyOzMwNjEgMzA5OTsKKzMwNjU7MzA2NTszMDY0IDMwOTk7MzA2NTszMDY0IDMwOTk7CiszMDY3OzMwNjc7MzA2NiAzMDk5OzMwNjc7MzA2NiAzMDk5OworMzA2OTszMDY5OzMwNjggMzA5OTszMDY5OzMwNjggMzA5OTsKKzMwNzA7MzA3MDszMDZGIDMwOTk7MzA3MDszMDZGIDMwOTk7CiszMDcxOzMwNzE7MzA2RiAzMDlBOzMwNzE7MzA2RiAzMDlBOworMzA3MzszMDczOzMwNzIgMzA5OTszMDczOzMwNzIgMzA5OTsKKzMwNzQ7MzA3NDszMDcyIDMwOUE7MzA3NDszMDcyIDMwOUE7CiszMDc2OzMwNzY7MzA3NSAzMDk5OzMwNzY7MzA3NSAzMDk5OworMzA3NzszMDc3OzMwNzUgMzA5QTszMDc3OzMwNzUgMzA5QTsKKzMwNzk7MzA3OTszMDc4IDMwOTk7MzA3OTszMDc4IDMwOTk7CiszMDdBOzMwN0E7MzA3OCAzMDlBOzMwN0E7MzA3OCAzMDlBOworMzA3QzszMDdDOzMwN0IgMzA5OTszMDdDOzMwN0IgMzA5OTsKKzMwN0Q7MzA3RDszMDdCIDMwOUE7MzA3RDszMDdCIDMwOUE7CiszMDk0OzMwOTQ7MzA0NiAzMDk5OzMwOTQ7MzA0NiAzMDk5OworMzA5QjszMDlCOzMwOUI7MDAyMCAzMDk5OzAwMjAgMzA5OTsKKzMwOUM7MzA5QzszMDlDOzAwMjAgMzA5QTswMDIwIDMwOUE7CiszMDlFOzMwOUU7MzA5RCAzMDk5OzMwOUU7MzA5RCAzMDk5OworMzA5RjszMDlGOzMwOUY7MzA4OCAzMDhBOzMwODggMzA4QTsKKzMwQUM7MzBBQzszMEFCIDMwOTk7MzBBQzszMEFCIDMwOTk7CiszMEFFOzMwQUU7MzBBRCAzMDk5OzMwQUU7MzBBRCAzMDk5OworMzBCMDszMEIwOzMwQUYgMzA5OTszMEIwOzMwQUYgMzA5OTsKKzMwQjI7MzBCMjszMEIxIDMwOTk7MzBCMjszMEIxIDMwOTk7CiszMEI0OzMwQjQ7MzBCMyAzMDk5OzMwQjQ7MzBCMyAzMDk5OworMzBCNjszMEI2OzMwQjUgMzA5OTszMEI2OzMwQjUgMzA5OTsKKzMwQjg7MzBCODszMEI3IDMwOTk7MzBCODszMEI3IDMwOTk7CiszMEJBOzMwQkE7MzBCOSAzMDk5OzMwQkE7MzBCOSAzMDk5OworMzBCQzszMEJDOzMwQkIgMzA5OTszMEJDOzMwQkIgMzA5OTsKKzMwQkU7MzBCRTszMEJEIDMwOTk7MzBCRTszMEJEIDMwOTk7CiszMEMwOzMwQzA7MzBCRiAzMDk5OzMwQzA7MzBCRiAzMDk5OworMzBDMjszMEMyOzMwQzEgMzA5OTszMEMyOzMwQzEgMzA5OTsKKzMwQzU7MzBDNTszMEM0IDMwOTk7MzBDNTszMEM0IDMwOTk7CiszMEM3OzMwQzc7MzBDNiAzMDk5OzMwQzc7MzBDNiAzMDk5OworMzBDOTszMEM5OzMwQzggMzA5OTszMEM5OzMwQzggMzA5OTsKKzMwRDA7MzBEMDszMENGIDMwOTk7MzBEMDszMENGIDMwOTk7CiszMEQxOzMwRDE7MzBDRiAzMDlBOzMwRDE7MzBDRiAzMDlBOworMzBEMzszMEQzOzMwRDIgMzA5OTszMEQzOzMwRDIgMzA5OTsKKzMwRDQ7MzBENDszMEQyIDMwOUE7MzBENDszMEQyIDMwOUE7CiszMEQ2OzMwRDY7MzBENSAzMDk5OzMwRDY7MzBENSAzMDk5OworMzBENzszMEQ3OzMwRDUgMzA5QTszMEQ3OzMwRDUgMzA5QTsKKzMwRDk7MzBEOTszMEQ4IDMwOTk7MzBEOTszMEQ4IDMwOTk7CiszMERBOzMwREE7MzBEOCAzMDlBOzMwREE7MzBEOCAzMDlBOworMzBEQzszMERDOzMwREIgMzA5OTszMERDOzMwREIgMzA5OTsKKzMwREQ7MzBERDszMERCIDMwOUE7MzBERDszMERCIDMwOUE7CiszMEY0OzMwRjQ7MzBBNiAzMDk5OzMwRjQ7MzBBNiAzMDk5OworMzBGNzszMEY3OzMwRUYgMzA5OTszMEY3OzMwRUYgMzA5OTsKKzMwRjg7MzBGODszMEYwIDMwOTk7MzBGODszMEYwIDMwOTk7CiszMEY5OzMwRjk7MzBGMSAzMDk5OzMwRjk7MzBGMSAzMDk5OworMzBGQTszMEZBOzMwRjIgMzA5OTszMEZBOzMwRjIgMzA5OTsKKzMwRkU7MzBGRTszMEZEIDMwOTk7MzBGRTszMEZEIDMwOTk7CiszMEZGOzMwRkY7MzBGRjszMEIzIDMwQzg7MzBCMyAzMEM4OworMzEzMTszMTMxOzMxMzE7MTEwMDsxMTAwOworMzEzMjszMTMyOzMxMzI7MTEwMTsxMTAxOworMzEzMzszMTMzOzMxMzM7MTFBQTsxMUFBOworMzEzNDszMTM0OzMxMzQ7MTEwMjsxMTAyOworMzEzNTszMTM1OzMxMzU7MTFBQzsxMUFDOworMzEzNjszMTM2OzMxMzY7MTFBRDsxMUFEOworMzEzNzszMTM3OzMxMzc7MTEwMzsxMTAzOworMzEzODszMTM4OzMxMzg7MTEwNDsxMTA0OworMzEzOTszMTM5OzMxMzk7MTEwNTsxMTA1OworMzEzQTszMTNBOzMxM0E7MTFCMDsxMUIwOworMzEzQjszMTNCOzMxM0I7MTFCMTsxMUIxOworMzEzQzszMTNDOzMxM0M7MTFCMjsxMUIyOworMzEzRDszMTNEOzMxM0Q7MTFCMzsxMUIzOworMzEzRTszMTNFOzMxM0U7MTFCNDsxMUI0OworMzEzRjszMTNGOzMxM0Y7MTFCNTsxMUI1OworMzE0MDszMTQwOzMxNDA7MTExQTsxMTFBOworMzE0MTszMTQxOzMxNDE7MTEwNjsxMTA2OworMzE0MjszMTQyOzMxNDI7MTEwNzsxMTA3OworMzE0MzszMTQzOzMxNDM7MTEwODsxMTA4OworMzE0NDszMTQ0OzMxNDQ7MTEyMTsxMTIxOworMzE0NTszMTQ1OzMxNDU7MTEwOTsxMTA5OworMzE0NjszMTQ2OzMxNDY7MTEwQTsxMTBBOworMzE0NzszMTQ3OzMxNDc7MTEwQjsxMTBCOworMzE0ODszMTQ4OzMxNDg7MTEwQzsxMTBDOworMzE0OTszMTQ5OzMxNDk7MTEwRDsxMTBEOworMzE0QTszMTRBOzMxNEE7MTEwRTsxMTBFOworMzE0QjszMTRCOzMxNEI7MTEwRjsxMTBGOworMzE0QzszMTRDOzMxNEM7MTExMDsxMTEwOworMzE0RDszMTREOzMxNEQ7MTExMTsxMTExOworMzE0RTszMTRFOzMxNEU7MTExMjsxMTEyOworMzE0RjszMTRGOzMxNEY7MTE2MTsxMTYxOworMzE1MDszMTUwOzMxNTA7MTE2MjsxMTYyOworMzE1MTszMTUxOzMxNTE7MTE2MzsxMTYzOworMzE1MjszMTUyOzMxNTI7MTE2NDsxMTY0OworMzE1MzszMTUzOzMxNTM7MTE2NTsxMTY1OworMzE1NDszMTU0OzMxNTQ7MTE2NjsxMTY2OworMzE1NTszMTU1OzMxNTU7MTE2NzsxMTY3OworMzE1NjszMTU2OzMxNTY7MTE2ODsxMTY4OworMzE1NzszMTU3OzMxNTc7MTE2OTsxMTY5OworMzE1ODszMTU4OzMxNTg7MTE2QTsxMTZBOworMzE1OTszMTU5OzMxNTk7MTE2QjsxMTZCOworMzE1QTszMTVBOzMxNUE7MTE2QzsxMTZDOworMzE1QjszMTVCOzMxNUI7MTE2RDsxMTZEOworMzE1QzszMTVDOzMxNUM7MTE2RTsxMTZFOworMzE1RDszMTVEOzMxNUQ7MTE2RjsxMTZGOworMzE1RTszMTVFOzMxNUU7MTE3MDsxMTcwOworMzE1RjszMTVGOzMxNUY7MTE3MTsxMTcxOworMzE2MDszMTYwOzMxNjA7MTE3MjsxMTcyOworMzE2MTszMTYxOzMxNjE7MTE3MzsxMTczOworMzE2MjszMTYyOzMxNjI7MTE3NDsxMTc0OworMzE2MzszMTYzOzMxNjM7MTE3NTsxMTc1OworMzE2NDszMTY0OzMxNjQ7MTE2MDsxMTYwOworMzE2NTszMTY1OzMxNjU7MTExNDsxMTE0OworMzE2NjszMTY2OzMxNjY7MTExNTsxMTE1OworMzE2NzszMTY3OzMxNjc7MTFDNzsxMUM3OworMzE2ODszMTY4OzMxNjg7MTFDODsxMUM4OworMzE2OTszMTY5OzMxNjk7MTFDQzsxMUNDOworMzE2QTszMTZBOzMxNkE7MTFDRTsxMUNFOworMzE2QjszMTZCOzMxNkI7MTFEMzsxMUQzOworMzE2QzszMTZDOzMxNkM7MTFENzsxMUQ3OworMzE2RDszMTZEOzMxNkQ7MTFEOTsxMUQ5OworMzE2RTszMTZFOzMxNkU7MTExQzsxMTFDOworMzE2RjszMTZGOzMxNkY7MTFERDsxMUREOworMzE3MDszMTcwOzMxNzA7MTFERjsxMURGOworMzE3MTszMTcxOzMxNzE7MTExRDsxMTFEOworMzE3MjszMTcyOzMxNzI7MTExRTsxMTFFOworMzE3MzszMTczOzMxNzM7MTEyMDsxMTIwOworMzE3NDszMTc0OzMxNzQ7MTEyMjsxMTIyOworMzE3NTszMTc1OzMxNzU7MTEyMzsxMTIzOworMzE3NjszMTc2OzMxNzY7MTEyNzsxMTI3OworMzE3NzszMTc3OzMxNzc7MTEyOTsxMTI5OworMzE3ODszMTc4OzMxNzg7MTEyQjsxMTJCOworMzE3OTszMTc5OzMxNzk7MTEyQzsxMTJDOworMzE3QTszMTdBOzMxN0E7MTEyRDsxMTJEOworMzE3QjszMTdCOzMxN0I7MTEyRTsxMTJFOworMzE3QzszMTdDOzMxN0M7MTEyRjsxMTJGOworMzE3RDszMTdEOzMxN0Q7MTEzMjsxMTMyOworMzE3RTszMTdFOzMxN0U7MTEzNjsxMTM2OworMzE3RjszMTdGOzMxN0Y7MTE0MDsxMTQwOworMzE4MDszMTgwOzMxODA7MTE0NzsxMTQ3OworMzE4MTszMTgxOzMxODE7MTE0QzsxMTRDOworMzE4MjszMTgyOzMxODI7MTFGMTsxMUYxOworMzE4MzszMTgzOzMxODM7MTFGMjsxMUYyOworMzE4NDszMTg0OzMxODQ7MTE1NzsxMTU3OworMzE4NTszMTg1OzMxODU7MTE1ODsxMTU4OworMzE4NjszMTg2OzMxODY7MTE1OTsxMTU5OworMzE4NzszMTg3OzMxODc7MTE4NDsxMTg0OworMzE4ODszMTg4OzMxODg7MTE4NTsxMTg1OworMzE4OTszMTg5OzMxODk7MTE4ODsxMTg4OworMzE4QTszMThBOzMxOEE7MTE5MTsxMTkxOworMzE4QjszMThCOzMxOEI7MTE5MjsxMTkyOworMzE4QzszMThDOzMxOEM7MTE5NDsxMTk0OworMzE4RDszMThEOzMxOEQ7MTE5RTsxMTlFOworMzE4RTszMThFOzMxOEU7MTFBMTsxMUExOworMzE5MjszMTkyOzMxOTI7NEUwMDs0RTAwOworMzE5MzszMTkzOzMxOTM7NEU4Qzs0RThDOworMzE5NDszMTk0OzMxOTQ7NEUwOTs0RTA5OworMzE5NTszMTk1OzMxOTU7NTZEQjs1NkRCOworMzE5NjszMTk2OzMxOTY7NEUwQTs0RTBBOworMzE5NzszMTk3OzMxOTc7NEUyRDs0RTJEOworMzE5ODszMTk4OzMxOTg7NEUwQjs0RTBCOworMzE5OTszMTk5OzMxOTk7NzUzMjs3NTMyOworMzE5QTszMTlBOzMxOUE7NEU1OTs0RTU5OworMzE5QjszMTlCOzMxOUI7NEUxOTs0RTE5OworMzE5QzszMTlDOzMxOUM7NEUwMTs0RTAxOworMzE5RDszMTlEOzMxOUQ7NTkyOTs1OTI5OworMzE5RTszMTlFOzMxOUU7NTczMDs1NzMwOworMzE5RjszMTlGOzMxOUY7NEVCQTs0RUJBOworMzIwMDszMjAwOzMyMDA7MDAyOCAxMTAwIDAwMjk7MDAyOCAxMTAwIDAwMjk7CiszMjAxOzMyMDE7MzIwMTswMDI4IDExMDIgMDAyOTswMDI4IDExMDIgMDAyOTsKKzMyMDI7MzIwMjszMjAyOzAwMjggMTEwMyAwMDI5OzAwMjggMTEwMyAwMDI5OworMzIwMzszMjAzOzMyMDM7MDAyOCAxMTA1IDAwMjk7MDAyOCAxMTA1IDAwMjk7CiszMjA0OzMyMDQ7MzIwNDswMDI4IDExMDYgMDAyOTswMDI4IDExMDYgMDAyOTsKKzMyMDU7MzIwNTszMjA1OzAwMjggMTEwNyAwMDI5OzAwMjggMTEwNyAwMDI5OworMzIwNjszMjA2OzMyMDY7MDAyOCAxMTA5IDAwMjk7MDAyOCAxMTA5IDAwMjk7CiszMjA3OzMyMDc7MzIwNzswMDI4IDExMEIgMDAyOTswMDI4IDExMEIgMDAyOTsKKzMyMDg7MzIwODszMjA4OzAwMjggMTEwQyAwMDI5OzAwMjggMTEwQyAwMDI5OworMzIwOTszMjA5OzMyMDk7MDAyOCAxMTBFIDAwMjk7MDAyOCAxMTBFIDAwMjk7CiszMjBBOzMyMEE7MzIwQTswMDI4IDExMEYgMDAyOTswMDI4IDExMEYgMDAyOTsKKzMyMEI7MzIwQjszMjBCOzAwMjggMTExMCAwMDI5OzAwMjggMTExMCAwMDI5OworMzIwQzszMjBDOzMyMEM7MDAyOCAxMTExIDAwMjk7MDAyOCAxMTExIDAwMjk7CiszMjBEOzMyMEQ7MzIwRDswMDI4IDExMTIgMDAyOTswMDI4IDExMTIgMDAyOTsKKzMyMEU7MzIwRTszMjBFOzAwMjggQUMwMCAwMDI5OzAwMjggMTEwMCAxMTYxIDAwMjk7CiszMjBGOzMyMEY7MzIwRjswMDI4IEIwOTggMDAyOTswMDI4IDExMDIgMTE2MSAwMDI5OworMzIxMDszMjEwOzMyMTA7MDAyOCBCMkU0IDAwMjk7MDAyOCAxMTAzIDExNjEgMDAyOTsKKzMyMTE7MzIxMTszMjExOzAwMjggQjc3QyAwMDI5OzAwMjggMTEwNSAxMTYxIDAwMjk7CiszMjEyOzMyMTI7MzIxMjswMDI4IEI5QzggMDAyOTswMDI4IDExMDYgMTE2MSAwMDI5OworMzIxMzszMjEzOzMyMTM7MDAyOCBCQzE0IDAwMjk7MDAyOCAxMTA3IDExNjEgMDAyOTsKKzMyMTQ7MzIxNDszMjE0OzAwMjggQzBBQyAwMDI5OzAwMjggMTEwOSAxMTYxIDAwMjk7CiszMjE1OzMyMTU7MzIxNTswMDI4IEM1NDQgMDAyOTswMDI4IDExMEIgMTE2MSAwMDI5OworMzIxNjszMjE2OzMyMTY7MDAyOCBDNzkwIDAwMjk7MDAyOCAxMTBDIDExNjEgMDAyOTsKKzMyMTc7MzIxNzszMjE3OzAwMjggQ0MyOCAwMDI5OzAwMjggMTEwRSAxMTYxIDAwMjk7CiszMjE4OzMyMTg7MzIxODswMDI4IENFNzQgMDAyOTswMDI4IDExMEYgMTE2MSAwMDI5OworMzIxOTszMjE5OzMyMTk7MDAyOCBEMEMwIDAwMjk7MDAyOCAxMTEwIDExNjEgMDAyOTsKKzMyMUE7MzIxQTszMjFBOzAwMjggRDMwQyAwMDI5OzAwMjggMTExMSAxMTYxIDAwMjk7CiszMjFCOzMyMUI7MzIxQjswMDI4IEQ1NTggMDAyOTswMDI4IDExMTIgMTE2MSAwMDI5OworMzIxQzszMjFDOzMyMUM7MDAyOCBDOEZDIDAwMjk7MDAyOCAxMTBDIDExNkUgMDAyOTsKKzMyMUQ7MzIxRDszMjFEOzAwMjggQzYyNCBDODA0IDAwMjk7MDAyOCAxMTBCIDExNjkgMTEwQyAxMTY1IDExQUIgMDAyOTsKKzMyMUU7MzIxRTszMjFFOzAwMjggQzYyNCBENkM0IDAwMjk7MDAyOCAxMTBCIDExNjkgMTExMiAxMTZFIDAwMjk7CiszMjIwOzMyMjA7MzIyMDswMDI4IDRFMDAgMDAyOTswMDI4IDRFMDAgMDAyOTsKKzMyMjE7MzIyMTszMjIxOzAwMjggNEU4QyAwMDI5OzAwMjggNEU4QyAwMDI5OworMzIyMjszMjIyOzMyMjI7MDAyOCA0RTA5IDAwMjk7MDAyOCA0RTA5IDAwMjk7CiszMjIzOzMyMjM7MzIyMzswMDI4IDU2REIgMDAyOTswMDI4IDU2REIgMDAyOTsKKzMyMjQ7MzIyNDszMjI0OzAwMjggNEU5NCAwMDI5OzAwMjggNEU5NCAwMDI5OworMzIyNTszMjI1OzMyMjU7MDAyOCA1MTZEIDAwMjk7MDAyOCA1MTZEIDAwMjk7CiszMjI2OzMyMjY7MzIyNjswMDI4IDRFMDMgMDAyOTswMDI4IDRFMDMgMDAyOTsKKzMyMjc7MzIyNzszMjI3OzAwMjggNTE2QiAwMDI5OzAwMjggNTE2QiAwMDI5OworMzIyODszMjI4OzMyMjg7MDAyOCA0RTVEIDAwMjk7MDAyOCA0RTVEIDAwMjk7CiszMjI5OzMyMjk7MzIyOTswMDI4IDUzNDEgMDAyOTswMDI4IDUzNDEgMDAyOTsKKzMyMkE7MzIyQTszMjJBOzAwMjggNjcwOCAwMDI5OzAwMjggNjcwOCAwMDI5OworMzIyQjszMjJCOzMyMkI7MDAyOCA3MDZCIDAwMjk7MDAyOCA3MDZCIDAwMjk7CiszMjJDOzMyMkM7MzIyQzswMDI4IDZDMzQgMDAyOTswMDI4IDZDMzQgMDAyOTsKKzMyMkQ7MzIyRDszMjJEOzAwMjggNjcyOCAwMDI5OzAwMjggNjcyOCAwMDI5OworMzIyRTszMjJFOzMyMkU7MDAyOCA5MUQxIDAwMjk7MDAyOCA5MUQxIDAwMjk7CiszMjJGOzMyMkY7MzIyRjswMDI4IDU3MUYgMDAyOTswMDI4IDU3MUYgMDAyOTsKKzMyMzA7MzIzMDszMjMwOzAwMjggNjVFNSAwMDI5OzAwMjggNjVFNSAwMDI5OworMzIzMTszMjMxOzMyMzE7MDAyOCA2ODJBIDAwMjk7MDAyOCA2ODJBIDAwMjk7CiszMjMyOzMyMzI7MzIzMjswMDI4IDY3MDkgMDAyOTswMDI4IDY3MDkgMDAyOTsKKzMyMzM7MzIzMzszMjMzOzAwMjggNzkzRSAwMDI5OzAwMjggNzkzRSAwMDI5OworMzIzNDszMjM0OzMyMzQ7MDAyOCA1NDBEIDAwMjk7MDAyOCA1NDBEIDAwMjk7CiszMjM1OzMyMzU7MzIzNTswMDI4IDcyNzkgMDAyOTswMDI4IDcyNzkgMDAyOTsKKzMyMzY7MzIzNjszMjM2OzAwMjggOENBMSAwMDI5OzAwMjggOENBMSAwMDI5OworMzIzNzszMjM3OzMyMzc7MDAyOCA3OTVEIDAwMjk7MDAyOCA3OTVEIDAwMjk7CiszMjM4OzMyMzg7MzIzODswMDI4IDUyQjQgMDAyOTswMDI4IDUyQjQgMDAyOTsKKzMyMzk7MzIzOTszMjM5OzAwMjggNEVFMyAwMDI5OzAwMjggNEVFMyAwMDI5OworMzIzQTszMjNBOzMyM0E7MDAyOCA1NDdDIDAwMjk7MDAyOCA1NDdDIDAwMjk7CiszMjNCOzMyM0I7MzIzQjswMDI4IDVCNjYgMDAyOTswMDI4IDVCNjYgMDAyOTsKKzMyM0M7MzIzQzszMjNDOzAwMjggNzZFMyAwMDI5OzAwMjggNzZFMyAwMDI5OworMzIzRDszMjNEOzMyM0Q7MDAyOCA0RjAxIDAwMjk7MDAyOCA0RjAxIDAwMjk7CiszMjNFOzMyM0U7MzIzRTswMDI4IDhDQzcgMDAyOTswMDI4IDhDQzcgMDAyOTsKKzMyM0Y7MzIzRjszMjNGOzAwMjggNTM1NCAwMDI5OzAwMjggNTM1NCAwMDI5OworMzI0MDszMjQwOzMyNDA7MDAyOCA3OTZEIDAwMjk7MDAyOCA3OTZEIDAwMjk7CiszMjQxOzMyNDE7MzI0MTswMDI4IDRGMTEgMDAyOTswMDI4IDRGMTEgMDAyOTsKKzMyNDI7MzI0MjszMjQyOzAwMjggODFFQSAwMDI5OzAwMjggODFFQSAwMDI5OworMzI0MzszMjQzOzMyNDM7MDAyOCA4MUYzIDAwMjk7MDAyOCA4MUYzIDAwMjk7CiszMjUwOzMyNTA7MzI1MDswMDUwIDAwNTQgMDA0NTswMDUwIDAwNTQgMDA0NTsKKzMyNTE7MzI1MTszMjUxOzAwMzIgMDAzMTswMDMyIDAwMzE7CiszMjUyOzMyNTI7MzI1MjswMDMyIDAwMzI7MDAzMiAwMDMyOworMzI1MzszMjUzOzMyNTM7MDAzMiAwMDMzOzAwMzIgMDAzMzsKKzMyNTQ7MzI1NDszMjU0OzAwMzIgMDAzNDswMDMyIDAwMzQ7CiszMjU1OzMyNTU7MzI1NTswMDMyIDAwMzU7MDAzMiAwMDM1OworMzI1NjszMjU2OzMyNTY7MDAzMiAwMDM2OzAwMzIgMDAzNjsKKzMyNTc7MzI1NzszMjU3OzAwMzIgMDAzNzswMDMyIDAwMzc7CiszMjU4OzMyNTg7MzI1ODswMDMyIDAwMzg7MDAzMiAwMDM4OworMzI1OTszMjU5OzMyNTk7MDAzMiAwMDM5OzAwMzIgMDAzOTsKKzMyNUE7MzI1QTszMjVBOzAwMzMgMDAzMDswMDMzIDAwMzA7CiszMjVCOzMyNUI7MzI1QjswMDMzIDAwMzE7MDAzMyAwMDMxOworMzI1QzszMjVDOzMyNUM7MDAzMyAwMDMyOzAwMzMgMDAzMjsKKzMyNUQ7MzI1RDszMjVEOzAwMzMgMDAzMzswMDMzIDAwMzM7CiszMjVFOzMyNUU7MzI1RTswMDMzIDAwMzQ7MDAzMyAwMDM0OworMzI1RjszMjVGOzMyNUY7MDAzMyAwMDM1OzAwMzMgMDAzNTsKKzMyNjA7MzI2MDszMjYwOzExMDA7MTEwMDsKKzMyNjE7MzI2MTszMjYxOzExMDI7MTEwMjsKKzMyNjI7MzI2MjszMjYyOzExMDM7MTEwMzsKKzMyNjM7MzI2MzszMjYzOzExMDU7MTEwNTsKKzMyNjQ7MzI2NDszMjY0OzExMDY7MTEwNjsKKzMyNjU7MzI2NTszMjY1OzExMDc7MTEwNzsKKzMyNjY7MzI2NjszMjY2OzExMDk7MTEwOTsKKzMyNjc7MzI2NzszMjY3OzExMEI7MTEwQjsKKzMyNjg7MzI2ODszMjY4OzExMEM7MTEwQzsKKzMyNjk7MzI2OTszMjY5OzExMEU7MTEwRTsKKzMyNkE7MzI2QTszMjZBOzExMEY7MTEwRjsKKzMyNkI7MzI2QjszMjZCOzExMTA7MTExMDsKKzMyNkM7MzI2QzszMjZDOzExMTE7MTExMTsKKzMyNkQ7MzI2RDszMjZEOzExMTI7MTExMjsKKzMyNkU7MzI2RTszMjZFO0FDMDA7MTEwMCAxMTYxOworMzI2RjszMjZGOzMyNkY7QjA5ODsxMTAyIDExNjE7CiszMjcwOzMyNzA7MzI3MDtCMkU0OzExMDMgMTE2MTsKKzMyNzE7MzI3MTszMjcxO0I3N0M7MTEwNSAxMTYxOworMzI3MjszMjcyOzMyNzI7QjlDODsxMTA2IDExNjE7CiszMjczOzMyNzM7MzI3MztCQzE0OzExMDcgMTE2MTsKKzMyNzQ7MzI3NDszMjc0O0MwQUM7MTEwOSAxMTYxOworMzI3NTszMjc1OzMyNzU7QzU0NDsxMTBCIDExNjE7CiszMjc2OzMyNzY7MzI3NjtDNzkwOzExMEMgMTE2MTsKKzMyNzc7MzI3NzszMjc3O0NDMjg7MTEwRSAxMTYxOworMzI3ODszMjc4OzMyNzg7Q0U3NDsxMTBGIDExNjE7CiszMjc5OzMyNzk7MzI3OTtEMEMwOzExMTAgMTE2MTsKKzMyN0E7MzI3QTszMjdBO0QzMEM7MTExMSAxMTYxOworMzI3QjszMjdCOzMyN0I7RDU1ODsxMTEyIDExNjE7CiszMjdDOzMyN0M7MzI3QztDQzM4IEFDRTA7MTEwRSAxMTYxIDExQjcgMTEwMCAxMTY5OworMzI3RDszMjdEOzMyN0Q7QzhGQyBDNzU4OzExMEMgMTE2RSAxMTBCIDExNzQ7CiszMjdFOzMyN0U7MzI3RTtDNkIwOzExMEIgMTE2RTsKKzMyODA7MzI4MDszMjgwOzRFMDA7NEUwMDsKKzMyODE7MzI4MTszMjgxOzRFOEM7NEU4QzsKKzMyODI7MzI4MjszMjgyOzRFMDk7NEUwOTsKKzMyODM7MzI4MzszMjgzOzU2REI7NTZEQjsKKzMyODQ7MzI4NDszMjg0OzRFOTQ7NEU5NDsKKzMyODU7MzI4NTszMjg1OzUxNkQ7NTE2RDsKKzMyODY7MzI4NjszMjg2OzRFMDM7NEUwMzsKKzMyODc7MzI4NzszMjg3OzUxNkI7NTE2QjsKKzMyODg7MzI4ODszMjg4OzRFNUQ7NEU1RDsKKzMyODk7MzI4OTszMjg5OzUzNDE7NTM0MTsKKzMyOEE7MzI4QTszMjhBOzY3MDg7NjcwODsKKzMyOEI7MzI4QjszMjhCOzcwNkI7NzA2QjsKKzMyOEM7MzI4QzszMjhDOzZDMzQ7NkMzNDsKKzMyOEQ7MzI4RDszMjhEOzY3Mjg7NjcyODsKKzMyOEU7MzI4RTszMjhFOzkxRDE7OTFEMTsKKzMyOEY7MzI4RjszMjhGOzU3MUY7NTcxRjsKKzMyOTA7MzI5MDszMjkwOzY1RTU7NjVFNTsKKzMyOTE7MzI5MTszMjkxOzY4MkE7NjgyQTsKKzMyOTI7MzI5MjszMjkyOzY3MDk7NjcwOTsKKzMyOTM7MzI5MzszMjkzOzc5M0U7NzkzRTsKKzMyOTQ7MzI5NDszMjk0OzU0MEQ7NTQwRDsKKzMyOTU7MzI5NTszMjk1OzcyNzk7NzI3OTsKKzMyOTY7MzI5NjszMjk2OzhDQTE7OENBMTsKKzMyOTc7MzI5NzszMjk3Ozc5NUQ7Nzk1RDsKKzMyOTg7MzI5ODszMjk4OzUyQjQ7NTJCNDsKKzMyOTk7MzI5OTszMjk5Ozc5RDg7NzlEODsKKzMyOUE7MzI5QTszMjlBOzc1Mzc7NzUzNzsKKzMyOUI7MzI5QjszMjlCOzU5NzM7NTk3MzsKKzMyOUM7MzI5QzszMjlDOzkwNjk7OTA2OTsKKzMyOUQ7MzI5RDszMjlEOzUxMkE7NTEyQTsKKzMyOUU7MzI5RTszMjlFOzUzNzA7NTM3MDsKKzMyOUY7MzI5RjszMjlGOzZDRTg7NkNFODsKKzMyQTA7MzJBMDszMkEwOzk4MDU7OTgwNTsKKzMyQTE7MzJBMTszMkExOzRGMTE7NEYxMTsKKzMyQTI7MzJBMjszMkEyOzUxOTk7NTE5OTsKKzMyQTM7MzJBMzszMkEzOzZCNjM7NkI2MzsKKzMyQTQ7MzJBNDszMkE0OzRFMEE7NEUwQTsKKzMyQTU7MzJBNTszMkE1OzRFMkQ7NEUyRDsKKzMyQTY7MzJBNjszMkE2OzRFMEI7NEUwQjsKKzMyQTc7MzJBNzszMkE3OzVERTY7NURFNjsKKzMyQTg7MzJBODszMkE4OzUzRjM7NTNGMzsKKzMyQTk7MzJBOTszMkE5OzUzM0I7NTMzQjsKKzMyQUE7MzJBQTszMkFBOzVCOTc7NUI5NzsKKzMyQUI7MzJBQjszMkFCOzVCNjY7NUI2NjsKKzMyQUM7MzJBQzszMkFDOzc2RTM7NzZFMzsKKzMyQUQ7MzJBRDszMkFEOzRGMDE7NEYwMTsKKzMyQUU7MzJBRTszMkFFOzhDQzc7OENDNzsKKzMyQUY7MzJBRjszMkFGOzUzNTQ7NTM1NDsKKzMyQjA7MzJCMDszMkIwOzU5MUM7NTkxQzsKKzMyQjE7MzJCMTszMkIxOzAwMzMgMDAzNjswMDMzIDAwMzY7CiszMkIyOzMyQjI7MzJCMjswMDMzIDAwMzc7MDAzMyAwMDM3OworMzJCMzszMkIzOzMyQjM7MDAzMyAwMDM4OzAwMzMgMDAzODsKKzMyQjQ7MzJCNDszMkI0OzAwMzMgMDAzOTswMDMzIDAwMzk7CiszMkI1OzMyQjU7MzJCNTswMDM0IDAwMzA7MDAzNCAwMDMwOworMzJCNjszMkI2OzMyQjY7MDAzNCAwMDMxOzAwMzQgMDAzMTsKKzMyQjc7MzJCNzszMkI3OzAwMzQgMDAzMjswMDM0IDAwMzI7CiszMkI4OzMyQjg7MzJCODswMDM0IDAwMzM7MDAzNCAwMDMzOworMzJCOTszMkI5OzMyQjk7MDAzNCAwMDM0OzAwMzQgMDAzNDsKKzMyQkE7MzJCQTszMkJBOzAwMzQgMDAzNTswMDM0IDAwMzU7CiszMkJCOzMyQkI7MzJCQjswMDM0IDAwMzY7MDAzNCAwMDM2OworMzJCQzszMkJDOzMyQkM7MDAzNCAwMDM3OzAwMzQgMDAzNzsKKzMyQkQ7MzJCRDszMkJEOzAwMzQgMDAzODswMDM0IDAwMzg7CiszMkJFOzMyQkU7MzJCRTswMDM0IDAwMzk7MDAzNCAwMDM5OworMzJCRjszMkJGOzMyQkY7MDAzNSAwMDMwOzAwMzUgMDAzMDsKKzMyQzA7MzJDMDszMkMwOzAwMzEgNjcwODswMDMxIDY3MDg7CiszMkMxOzMyQzE7MzJDMTswMDMyIDY3MDg7MDAzMiA2NzA4OworMzJDMjszMkMyOzMyQzI7MDAzMyA2NzA4OzAwMzMgNjcwODsKKzMyQzM7MzJDMzszMkMzOzAwMzQgNjcwODswMDM0IDY3MDg7CiszMkM0OzMyQzQ7MzJDNDswMDM1IDY3MDg7MDAzNSA2NzA4OworMzJDNTszMkM1OzMyQzU7MDAzNiA2NzA4OzAwMzYgNjcwODsKKzMyQzY7MzJDNjszMkM2OzAwMzcgNjcwODswMDM3IDY3MDg7CiszMkM3OzMyQzc7MzJDNzswMDM4IDY3MDg7MDAzOCA2NzA4OworMzJDODszMkM4OzMyQzg7MDAzOSA2NzA4OzAwMzkgNjcwODsKKzMyQzk7MzJDOTszMkM5OzAwMzEgMDAzMCA2NzA4OzAwMzEgMDAzMCA2NzA4OworMzJDQTszMkNBOzMyQ0E7MDAzMSAwMDMxIDY3MDg7MDAzMSAwMDMxIDY3MDg7CiszMkNCOzMyQ0I7MzJDQjswMDMxIDAwMzIgNjcwODswMDMxIDAwMzIgNjcwODsKKzMyQ0M7MzJDQzszMkNDOzAwNDggMDA2NzswMDQ4IDAwNjc7CiszMkNEOzMyQ0Q7MzJDRDswMDY1IDAwNzIgMDA2NzswMDY1IDAwNzIgMDA2NzsKKzMyQ0U7MzJDRTszMkNFOzAwNjUgMDA1NjswMDY1IDAwNTY7CiszMkNGOzMyQ0Y7MzJDRjswMDRDIDAwNTQgMDA0NDswMDRDIDAwNTQgMDA0NDsKKzMyRDA7MzJEMDszMkQwOzMwQTI7MzBBMjsKKzMyRDE7MzJEMTszMkQxOzMwQTQ7MzBBNDsKKzMyRDI7MzJEMjszMkQyOzMwQTY7MzBBNjsKKzMyRDM7MzJEMzszMkQzOzMwQTg7MzBBODsKKzMyRDQ7MzJENDszMkQ0OzMwQUE7MzBBQTsKKzMyRDU7MzJENTszMkQ1OzMwQUI7MzBBQjsKKzMyRDY7MzJENjszMkQ2OzMwQUQ7MzBBRDsKKzMyRDc7MzJENzszMkQ3OzMwQUY7MzBBRjsKKzMyRDg7MzJEODszMkQ4OzMwQjE7MzBCMTsKKzMyRDk7MzJEOTszMkQ5OzMwQjM7MzBCMzsKKzMyREE7MzJEQTszMkRBOzMwQjU7MzBCNTsKKzMyREI7MzJEQjszMkRCOzMwQjc7MzBCNzsKKzMyREM7MzJEQzszMkRDOzMwQjk7MzBCOTsKKzMyREQ7MzJERDszMkREOzMwQkI7MzBCQjsKKzMyREU7MzJERTszMkRFOzMwQkQ7MzBCRDsKKzMyREY7MzJERjszMkRGOzMwQkY7MzBCRjsKKzMyRTA7MzJFMDszMkUwOzMwQzE7MzBDMTsKKzMyRTE7MzJFMTszMkUxOzMwQzQ7MzBDNDsKKzMyRTI7MzJFMjszMkUyOzMwQzY7MzBDNjsKKzMyRTM7MzJFMzszMkUzOzMwQzg7MzBDODsKKzMyRTQ7MzJFNDszMkU0OzMwQ0E7MzBDQTsKKzMyRTU7MzJFNTszMkU1OzMwQ0I7MzBDQjsKKzMyRTY7MzJFNjszMkU2OzMwQ0M7MzBDQzsKKzMyRTc7MzJFNzszMkU3OzMwQ0Q7MzBDRDsKKzMyRTg7MzJFODszMkU4OzMwQ0U7MzBDRTsKKzMyRTk7MzJFOTszMkU5OzMwQ0Y7MzBDRjsKKzMyRUE7MzJFQTszMkVBOzMwRDI7MzBEMjsKKzMyRUI7MzJFQjszMkVCOzMwRDU7MzBENTsKKzMyRUM7MzJFQzszMkVDOzMwRDg7MzBEODsKKzMyRUQ7MzJFRDszMkVEOzMwREI7MzBEQjsKKzMyRUU7MzJFRTszMkVFOzMwREU7MzBERTsKKzMyRUY7MzJFRjszMkVGOzMwREY7MzBERjsKKzMyRjA7MzJGMDszMkYwOzMwRTA7MzBFMDsKKzMyRjE7MzJGMTszMkYxOzMwRTE7MzBFMTsKKzMyRjI7MzJGMjszMkYyOzMwRTI7MzBFMjsKKzMyRjM7MzJGMzszMkYzOzMwRTQ7MzBFNDsKKzMyRjQ7MzJGNDszMkY0OzMwRTY7MzBFNjsKKzMyRjU7MzJGNTszMkY1OzMwRTg7MzBFODsKKzMyRjY7MzJGNjszMkY2OzMwRTk7MzBFOTsKKzMyRjc7MzJGNzszMkY3OzMwRUE7MzBFQTsKKzMyRjg7MzJGODszMkY4OzMwRUI7MzBFQjsKKzMyRjk7MzJGOTszMkY5OzMwRUM7MzBFQzsKKzMyRkE7MzJGQTszMkZBOzMwRUQ7MzBFRDsKKzMyRkI7MzJGQjszMkZCOzMwRUY7MzBFRjsKKzMyRkM7MzJGQzszMkZDOzMwRjA7MzBGMDsKKzMyRkQ7MzJGRDszMkZEOzMwRjE7MzBGMTsKKzMyRkU7MzJGRTszMkZFOzMwRjI7MzBGMjsKKzMzMDA7MzMwMDszMzAwOzMwQTIgMzBEMSAzMEZDIDMwQzg7MzBBMiAzMENGIDMwOUEgMzBGQyAzMEM4OworMzMwMTszMzAxOzMzMDE7MzBBMiAzMEVCIDMwRDUgMzBBMTszMEEyIDMwRUIgMzBENSAzMEExOworMzMwMjszMzAyOzMzMDI7MzBBMiAzMEYzIDMwREEgMzBBMjszMEEyIDMwRjMgMzBEOCAzMDlBIDMwQTI7CiszMzAzOzMzMDM7MzMwMzszMEEyIDMwRkMgMzBFQjszMEEyIDMwRkMgMzBFQjsKKzMzMDQ7MzMwNDszMzA0OzMwQTQgMzBDQiAzMEYzIDMwQjA7MzBBNCAzMENCIDMwRjMgMzBBRiAzMDk5OworMzMwNTszMzA1OzMzMDU7MzBBNCAzMEYzIDMwQzE7MzBBNCAzMEYzIDMwQzE7CiszMzA2OzMzMDY7MzMwNjszMEE2IDMwQTkgMzBGMzszMEE2IDMwQTkgMzBGMzsKKzMzMDc7MzMwNzszMzA3OzMwQTggMzBCOSAzMEFGIDMwRkMgMzBDOTszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzggMzA5OTsKKzMzMDg7MzMwODszMzA4OzMwQTggMzBGQyAzMEFCIDMwRkM7MzBBOCAzMEZDIDMwQUIgMzBGQzsKKzMzMDk7MzMwOTszMzA5OzMwQUEgMzBGMyAzMEI5OzMwQUEgMzBGMyAzMEI5OworMzMwQTszMzBBOzMzMEE7MzBBQSAzMEZDIDMwRTA7MzBBQSAzMEZDIDMwRTA7CiszMzBCOzMzMEI7MzMwQjszMEFCIDMwQTQgMzBFQTszMEFCIDMwQTQgMzBFQTsKKzMzMEM7MzMwQzszMzBDOzMwQUIgMzBFOSAzMEMzIDMwQzg7MzBBQiAzMEU5IDMwQzMgMzBDODsKKzMzMEQ7MzMwRDszMzBEOzMwQUIgMzBFRCAzMEVBIDMwRkM7MzBBQiAzMEVEIDMwRUEgMzBGQzsKKzMzMEU7MzMwRTszMzBFOzMwQUMgMzBFRCAzMEYzOzMwQUIgMzA5OSAzMEVEIDMwRjM7CiszMzBGOzMzMEY7MzMwRjszMEFDIDMwRjMgMzBERTszMEFCIDMwOTkgMzBGMyAzMERFOworMzMxMDszMzEwOzMzMTA7MzBBRSAzMEFDOzMwQUQgMzA5OSAzMEFCIDMwOTk7CiszMzExOzMzMTE7MzMxMTszMEFFIDMwQ0IgMzBGQzszMEFEIDMwOTkgMzBDQiAzMEZDOworMzMxMjszMzEyOzMzMTI7MzBBRCAzMEU1IDMwRUEgMzBGQzszMEFEIDMwRTUgMzBFQSAzMEZDOworMzMxMzszMzEzOzMzMTM7MzBBRSAzMEVCIDMwQzAgMzBGQzszMEFEIDMwOTkgMzBFQiAzMEJGIDMwOTkgMzBGQzsKKzMzMTQ7MzMxNDszMzE0OzMwQUQgMzBFRDszMEFEIDMwRUQ7CiszMzE1OzMzMTU7MzMxNTszMEFEIDMwRUQgMzBCMCAzMEU5IDMwRTA7MzBBRCAzMEVEIDMwQUYgMzA5OSAzMEU5IDMwRTA7CiszMzE2OzMzMTY7MzMxNjszMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjszMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjsKKzMzMTc7MzMxNzszMzE3OzMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7CiszMzE4OzMzMTg7MzMxODszMEIwIDMwRTkgMzBFMDszMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxOTszMzE5OzMzMTk7MzBCMCAzMEU5IDMwRTAgMzBDOCAzMEYzOzMwQUYgMzA5OSAzMEU5IDMwRTAgMzBDOCAzMEYzOworMzMxQTszMzFBOzMzMUE7MzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzMwQUYgMzBFQiAzMEJCIDMwOTkgMzBBNCAzMEVEOworMzMxQjszMzFCOzMzMUI7MzBBRiAzMEVEIDMwRkMgMzBDRDszMEFGIDMwRUQgMzBGQyAzMENEOworMzMxQzszMzFDOzMzMUM7MzBCMSAzMEZDIDMwQjk7MzBCMSAzMEZDIDMwQjk7CiszMzFEOzMzMUQ7MzMxRDszMEIzIDMwRUIgMzBDQTszMEIzIDMwRUIgMzBDQTsKKzMzMUU7MzMxRTszMzFFOzMwQjMgMzBGQyAzMEREOzMwQjMgMzBGQyAzMERCIDMwOUE7CiszMzFGOzMzMUY7MzMxRjszMEI1IDMwQTQgMzBBRiAzMEVCOzMwQjUgMzBBNCAzMEFGIDMwRUI7CiszMzIwOzMzMjA7MzMyMDszMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOworMzMyMTszMzIxOzMzMjE7MzBCNyAzMEVBIDMwRjMgMzBCMDszMEI3IDMwRUEgMzBGMyAzMEFGIDMwOTk7CiszMzIyOzMzMjI7MzMyMjszMEJCIDMwRjMgMzBDMTszMEJCIDMwRjMgMzBDMTsKKzMzMjM7MzMyMzszMzIzOzMwQkIgMzBGMyAzMEM4OzMwQkIgMzBGMyAzMEM4OworMzMyNDszMzI0OzMzMjQ7MzBDMCAzMEZDIDMwQjk7MzBCRiAzMDk5IDMwRkMgMzBCOTsKKzMzMjU7MzMyNTszMzI1OzMwQzcgMzBCNzszMEM2IDMwOTkgMzBCNzsKKzMzMjY7MzMyNjszMzI2OzMwQzkgMzBFQjszMEM4IDMwOTkgMzBFQjsKKzMzMjc7MzMyNzszMzI3OzMwQzggMzBGMzszMEM4IDMwRjM7CiszMzI4OzMzMjg7MzMyODszMENBIDMwQ0U7MzBDQSAzMENFOworMzMyOTszMzI5OzMzMjk7MzBDRSAzMEMzIDMwQzg7MzBDRSAzMEMzIDMwQzg7CiszMzJBOzMzMkE7MzMyQTszMENGIDMwQTQgMzBDNDszMENGIDMwQTQgMzBDNDsKKzMzMkI7MzMyQjszMzJCOzMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODszMENGIDMwOUEgMzBGQyAzMEJCIDMwRjMgMzBDODsKKzMzMkM7MzMyQzszMzJDOzMwRDEgMzBGQyAzMEM0OzMwQ0YgMzA5QSAzMEZDIDMwQzQ7CiszMzJEOzMzMkQ7MzMyRDszMEQwIDMwRkMgMzBFQyAzMEVCOzMwQ0YgMzA5OSAzMEZDIDMwRUMgMzBFQjsKKzMzMkU7MzMyRTszMzJFOzMwRDQgMzBBMiAzMEI5IDMwQzggMzBFQjszMEQyIDMwOUEgMzBBMiAzMEI5IDMwQzggMzBFQjsKKzMzMkY7MzMyRjszMzJGOzMwRDQgMzBBRiAzMEVCOzMwRDIgMzA5QSAzMEFGIDMwRUI7CiszMzMwOzMzMzA7MzMzMDszMEQ0IDMwQjM7MzBEMiAzMDlBIDMwQjM7CiszMzMxOzMzMzE7MzMzMTszMEQzIDMwRUI7MzBEMiAzMDk5IDMwRUI7CiszMzMyOzMzMzI7MzMzMjszMEQ1IDMwQTEgMzBFOSAzMEMzIDMwQzk7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM4IDMwOTk7CiszMzMzOzMzMzM7MzMzMzszMEQ1IDMwQTMgMzBGQyAzMEM4OzMwRDUgMzBBMyAzMEZDIDMwQzg7CiszMzM0OzMzMzQ7MzMzNDszMEQ2IDMwQzMgMzBCNyAzMEE3IDMwRUI7MzBENSAzMDk5IDMwQzMgMzBCNyAzMEE3IDMwRUI7CiszMzM1OzMzMzU7MzMzNTszMEQ1IDMwRTkgMzBGMzszMEQ1IDMwRTkgMzBGMzsKKzMzMzY7MzMzNjszMzM2OzMwRDggMzBBRiAzMEJGIDMwRkMgMzBFQjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7CiszMzM3OzMzMzc7MzMzNzszMERBIDMwQkQ7MzBEOCAzMDlBIDMwQkQ7CiszMzM4OzMzMzg7MzMzODszMERBIDMwQ0IgMzBEMjszMEQ4IDMwOUEgMzBDQiAzMEQyOworMzMzOTszMzM5OzMzMzk7MzBEOCAzMEVCIDMwQzQ7MzBEOCAzMEVCIDMwQzQ7CiszMzNBOzMzM0E7MzMzQTszMERBIDMwRjMgMzBCOTszMEQ4IDMwOUEgMzBGMyAzMEI5OworMzMzQjszMzNCOzMzM0I7MzBEQSAzMEZDIDMwQjg7MzBEOCAzMDlBIDMwRkMgMzBCNyAzMDk5OworMzMzQzszMzNDOzMzM0M7MzBEOSAzMEZDIDMwQkY7MzBEOCAzMDk5IDMwRkMgMzBCRjsKKzMzM0Q7MzMzRDszMzNEOzMwREQgMzBBNCAzMEYzIDMwQzg7MzBEQiAzMDlBIDMwQTQgMzBGMyAzMEM4OworMzMzRTszMzNFOzMzM0U7MzBEQyAzMEVCIDMwQzg7MzBEQiAzMDk5IDMwRUIgMzBDODsKKzMzM0Y7MzMzRjszMzNGOzMwREIgMzBGMzszMERCIDMwRjM7CiszMzQwOzMzNDA7MzM0MDszMEREIDMwRjMgMzBDOTszMERCIDMwOUEgMzBGMyAzMEM4IDMwOTk7CiszMzQxOzMzNDE7MzM0MTszMERCIDMwRkMgMzBFQjszMERCIDMwRkMgMzBFQjsKKzMzNDI7MzM0MjszMzQyOzMwREIgMzBGQyAzMEYzOzMwREIgMzBGQyAzMEYzOworMzM0MzszMzQzOzMzNDM7MzBERSAzMEE0IDMwQUYgMzBFRDszMERFIDMwQTQgMzBBRiAzMEVEOworMzM0NDszMzQ0OzMzNDQ7MzBERSAzMEE0IDMwRUI7MzBERSAzMEE0IDMwRUI7CiszMzQ1OzMzNDU7MzM0NTszMERFIDMwQzMgMzBDRjszMERFIDMwQzMgMzBDRjsKKzMzNDY7MzM0NjszMzQ2OzMwREUgMzBFQiAzMEFGOzMwREUgMzBFQiAzMEFGOworMzM0NzszMzQ3OzMzNDc7MzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzsKKzMzNDg7MzM0ODszMzQ4OzMwREYgMzBBRiAzMEVEIDMwRjM7MzBERiAzMEFGIDMwRUQgMzBGMzsKKzMzNDk7MzM0OTszMzQ5OzMwREYgMzBFQTszMERGIDMwRUE7CiszMzRBOzMzNEE7MzM0QTszMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7MzBERiAzMEVBIDMwQ0YgMzA5OSAzMEZDIDMwRUI7CiszMzRCOzMzNEI7MzM0QjszMEUxIDMwQUM7MzBFMSAzMEFCIDMwOTk7CiszMzRDOzMzNEM7MzM0QzszMEUxIDMwQUMgMzBDOCAzMEYzOzMwRTEgMzBBQiAzMDk5IDMwQzggMzBGMzsKKzMzNEQ7MzM0RDszMzREOzMwRTEgMzBGQyAzMEM4IDMwRUI7MzBFMSAzMEZDIDMwQzggMzBFQjsKKzMzNEU7MzM0RTszMzRFOzMwRTQgMzBGQyAzMEM5OzMwRTQgMzBGQyAzMEM4IDMwOTk7CiszMzRGOzMzNEY7MzM0RjszMEU0IDMwRkMgMzBFQjszMEU0IDMwRkMgMzBFQjsKKzMzNTA7MzM1MDszMzUwOzMwRTYgMzBBMiAzMEYzOzMwRTYgMzBBMiAzMEYzOworMzM1MTszMzUxOzMzNTE7MzBFQSAzMEMzIDMwQzggMzBFQjszMEVBIDMwQzMgMzBDOCAzMEVCOworMzM1MjszMzUyOzMzNTI7MzBFQSAzMEU5OzMwRUEgMzBFOTsKKzMzNTM7MzM1MzszMzUzOzMwRUIgMzBENCAzMEZDOzMwRUIgMzBEMiAzMDlBIDMwRkM7CiszMzU0OzMzNTQ7MzM1NDszMEVCIDMwRkMgMzBENiAzMEVCOzMwRUIgMzBGQyAzMEQ1IDMwOTkgMzBFQjsKKzMzNTU7MzM1NTszMzU1OzMwRUMgMzBFMDszMEVDIDMwRTA7CiszMzU2OzMzNTY7MzM1NjszMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7MzBFQyAzMEYzIDMwQzggMzBCMSAzMDk5IDMwRjM7CiszMzU3OzMzNTc7MzM1NzszMEVGIDMwQzMgMzBDODszMEVGIDMwQzMgMzBDODsKKzMzNTg7MzM1ODszMzU4OzAwMzAgNzBCOTswMDMwIDcwQjk7CiszMzU5OzMzNTk7MzM1OTswMDMxIDcwQjk7MDAzMSA3MEI5OworMzM1QTszMzVBOzMzNUE7MDAzMiA3MEI5OzAwMzIgNzBCOTsKKzMzNUI7MzM1QjszMzVCOzAwMzMgNzBCOTswMDMzIDcwQjk7CiszMzVDOzMzNUM7MzM1QzswMDM0IDcwQjk7MDAzNCA3MEI5OworMzM1RDszMzVEOzMzNUQ7MDAzNSA3MEI5OzAwMzUgNzBCOTsKKzMzNUU7MzM1RTszMzVFOzAwMzYgNzBCOTswMDM2IDcwQjk7CiszMzVGOzMzNUY7MzM1RjswMDM3IDcwQjk7MDAzNyA3MEI5OworMzM2MDszMzYwOzMzNjA7MDAzOCA3MEI5OzAwMzggNzBCOTsKKzMzNjE7MzM2MTszMzYxOzAwMzkgNzBCOTswMDM5IDcwQjk7CiszMzYyOzMzNjI7MzM2MjswMDMxIDAwMzAgNzBCOTswMDMxIDAwMzAgNzBCOTsKKzMzNjM7MzM2MzszMzYzOzAwMzEgMDAzMSA3MEI5OzAwMzEgMDAzMSA3MEI5OworMzM2NDszMzY0OzMzNjQ7MDAzMSAwMDMyIDcwQjk7MDAzMSAwMDMyIDcwQjk7CiszMzY1OzMzNjU7MzM2NTswMDMxIDAwMzMgNzBCOTswMDMxIDAwMzMgNzBCOTsKKzMzNjY7MzM2NjszMzY2OzAwMzEgMDAzNCA3MEI5OzAwMzEgMDAzNCA3MEI5OworMzM2NzszMzY3OzMzNjc7MDAzMSAwMDM1IDcwQjk7MDAzMSAwMDM1IDcwQjk7CiszMzY4OzMzNjg7MzM2ODswMDMxIDAwMzYgNzBCOTswMDMxIDAwMzYgNzBCOTsKKzMzNjk7MzM2OTszMzY5OzAwMzEgMDAzNyA3MEI5OzAwMzEgMDAzNyA3MEI5OworMzM2QTszMzZBOzMzNkE7MDAzMSAwMDM4IDcwQjk7MDAzMSAwMDM4IDcwQjk7CiszMzZCOzMzNkI7MzM2QjswMDMxIDAwMzkgNzBCOTswMDMxIDAwMzkgNzBCOTsKKzMzNkM7MzM2QzszMzZDOzAwMzIgMDAzMCA3MEI5OzAwMzIgMDAzMCA3MEI5OworMzM2RDszMzZEOzMzNkQ7MDAzMiAwMDMxIDcwQjk7MDAzMiAwMDMxIDcwQjk7CiszMzZFOzMzNkU7MzM2RTswMDMyIDAwMzIgNzBCOTswMDMyIDAwMzIgNzBCOTsKKzMzNkY7MzM2RjszMzZGOzAwMzIgMDAzMyA3MEI5OzAwMzIgMDAzMyA3MEI5OworMzM3MDszMzcwOzMzNzA7MDAzMiAwMDM0IDcwQjk7MDAzMiAwMDM0IDcwQjk7CiszMzcxOzMzNzE7MzM3MTswMDY4IDAwNTAgMDA2MTswMDY4IDAwNTAgMDA2MTsKKzMzNzI7MzM3MjszMzcyOzAwNjQgMDA2MTswMDY0IDAwNjE7CiszMzczOzMzNzM7MzM3MzswMDQxIDAwNTU7MDA0MSAwMDU1OworMzM3NDszMzc0OzMzNzQ7MDA2MiAwMDYxIDAwNzI7MDA2MiAwMDYxIDAwNzI7CiszMzc1OzMzNzU7MzM3NTswMDZGIDAwNTY7MDA2RiAwMDU2OworMzM3NjszMzc2OzMzNzY7MDA3MCAwMDYzOzAwNzAgMDA2MzsKKzMzNzc7MzM3NzszMzc3OzAwNjQgMDA2RDswMDY0IDAwNkQ7CiszMzc4OzMzNzg7MzM3ODswMDY0IDAwNkQgMDAzMjswMDY0IDAwNkQgMDAzMjsKKzMzNzk7MzM3OTszMzc5OzAwNjQgMDA2RCAwMDMzOzAwNjQgMDA2RCAwMDMzOworMzM3QTszMzdBOzMzN0E7MDA0OSAwMDU1OzAwNDkgMDA1NTsKKzMzN0I7MzM3QjszMzdCOzVFNzMgNjIxMDs1RTczIDYyMTA7CiszMzdDOzMzN0M7MzM3Qzs2NjJEIDU0OEM7NjYyRCA1NDhDOworMzM3RDszMzdEOzMzN0Q7NTkyNyA2QjYzOzU5MjcgNkI2MzsKKzMzN0U7MzM3RTszMzdFOzY2MEUgNkNCQjs2NjBFIDZDQkI7CiszMzdGOzMzN0Y7MzM3Rjs2ODJBIDVGMEYgNEYxQSA3OTNFOzY4MkEgNUYwRiA0RjFBIDc5M0U7CiszMzgwOzMzODA7MzM4MDswMDcwIDAwNDE7MDA3MCAwMDQxOworMzM4MTszMzgxOzMzODE7MDA2RSAwMDQxOzAwNkUgMDA0MTsKKzMzODI7MzM4MjszMzgyOzAzQkMgMDA0MTswM0JDIDAwNDE7CiszMzgzOzMzODM7MzM4MzswMDZEIDAwNDE7MDA2RCAwMDQxOworMzM4NDszMzg0OzMzODQ7MDA2QiAwMDQxOzAwNkIgMDA0MTsKKzMzODU7MzM4NTszMzg1OzAwNEIgMDA0MjswMDRCIDAwNDI7CiszMzg2OzMzODY7MzM4NjswMDREIDAwNDI7MDA0RCAwMDQyOworMzM4NzszMzg3OzMzODc7MDA0NyAwMDQyOzAwNDcgMDA0MjsKKzMzODg7MzM4ODszMzg4OzAwNjMgMDA2MSAwMDZDOzAwNjMgMDA2MSAwMDZDOworMzM4OTszMzg5OzMzODk7MDA2QiAwMDYzIDAwNjEgMDA2QzswMDZCIDAwNjMgMDA2MSAwMDZDOworMzM4QTszMzhBOzMzOEE7MDA3MCAwMDQ2OzAwNzAgMDA0NjsKKzMzOEI7MzM4QjszMzhCOzAwNkUgMDA0NjswMDZFIDAwNDY7CiszMzhDOzMzOEM7MzM4QzswM0JDIDAwNDY7MDNCQyAwMDQ2OworMzM4RDszMzhEOzMzOEQ7MDNCQyAwMDY3OzAzQkMgMDA2NzsKKzMzOEU7MzM4RTszMzhFOzAwNkQgMDA2NzswMDZEIDAwNjc7CiszMzhGOzMzOEY7MzM4RjswMDZCIDAwNjc7MDA2QiAwMDY3OworMzM5MDszMzkwOzMzOTA7MDA0OCAwMDdBOzAwNDggMDA3QTsKKzMzOTE7MzM5MTszMzkxOzAwNkIgMDA0OCAwMDdBOzAwNkIgMDA0OCAwMDdBOworMzM5MjszMzkyOzMzOTI7MDA0RCAwMDQ4IDAwN0E7MDA0RCAwMDQ4IDAwN0E7CiszMzkzOzMzOTM7MzM5MzswMDQ3IDAwNDggMDA3QTswMDQ3IDAwNDggMDA3QTsKKzMzOTQ7MzM5NDszMzk0OzAwNTQgMDA0OCAwMDdBOzAwNTQgMDA0OCAwMDdBOworMzM5NTszMzk1OzMzOTU7MDNCQyAwMDZDOzAzQkMgMDA2QzsKKzMzOTY7MzM5NjszMzk2OzAwNkQgMDA2QzswMDZEIDAwNkM7CiszMzk3OzMzOTc7MzM5NzswMDY0IDAwNkM7MDA2NCAwMDZDOworMzM5ODszMzk4OzMzOTg7MDA2QiAwMDZDOzAwNkIgMDA2QzsKKzMzOTk7MzM5OTszMzk5OzAwNjYgMDA2RDswMDY2IDAwNkQ7CiszMzlBOzMzOUE7MzM5QTswMDZFIDAwNkQ7MDA2RSAwMDZEOworMzM5QjszMzlCOzMzOUI7MDNCQyAwMDZEOzAzQkMgMDA2RDsKKzMzOUM7MzM5QzszMzlDOzAwNkQgMDA2RDswMDZEIDAwNkQ7CiszMzlEOzMzOUQ7MzM5RDswMDYzIDAwNkQ7MDA2MyAwMDZEOworMzM5RTszMzlFOzMzOUU7MDA2QiAwMDZEOzAwNkIgMDA2RDsKKzMzOUY7MzM5RjszMzlGOzAwNkQgMDA2RCAwMDMyOzAwNkQgMDA2RCAwMDMyOworMzNBMDszM0EwOzMzQTA7MDA2MyAwMDZEIDAwMzI7MDA2MyAwMDZEIDAwMzI7CiszM0ExOzMzQTE7MzNBMTswMDZEIDAwMzI7MDA2RCAwMDMyOworMzNBMjszM0EyOzMzQTI7MDA2QiAwMDZEIDAwMzI7MDA2QiAwMDZEIDAwMzI7CiszM0EzOzMzQTM7MzNBMzswMDZEIDAwNkQgMDAzMzswMDZEIDAwNkQgMDAzMzsKKzMzQTQ7MzNBNDszM0E0OzAwNjMgMDA2RCAwMDMzOzAwNjMgMDA2RCAwMDMzOworMzNBNTszM0E1OzMzQTU7MDA2RCAwMDMzOzAwNkQgMDAzMzsKKzMzQTY7MzNBNjszM0E2OzAwNkIgMDA2RCAwMDMzOzAwNkIgMDA2RCAwMDMzOworMzNBNzszM0E3OzMzQTc7MDA2RCAyMjE1IDAwNzM7MDA2RCAyMjE1IDAwNzM7CiszM0E4OzMzQTg7MzNBODswMDZEIDIyMTUgMDA3MyAwMDMyOzAwNkQgMjIxNSAwMDczIDAwMzI7CiszM0E5OzMzQTk7MzNBOTswMDUwIDAwNjE7MDA1MCAwMDYxOworMzNBQTszM0FBOzMzQUE7MDA2QiAwMDUwIDAwNjE7MDA2QiAwMDUwIDAwNjE7CiszM0FCOzMzQUI7MzNBQjswMDREIDAwNTAgMDA2MTswMDREIDAwNTAgMDA2MTsKKzMzQUM7MzNBQzszM0FDOzAwNDcgMDA1MCAwMDYxOzAwNDcgMDA1MCAwMDYxOworMzNBRDszM0FEOzMzQUQ7MDA3MiAwMDYxIDAwNjQ7MDA3MiAwMDYxIDAwNjQ7CiszM0FFOzMzQUU7MzNBRTswMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzM7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOworMzNBRjszM0FGOzMzQUY7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwMzI7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwMzI7CiszM0IwOzMzQjA7MzNCMDswMDcwIDAwNzM7MDA3MCAwMDczOworMzNCMTszM0IxOzMzQjE7MDA2RSAwMDczOzAwNkUgMDA3MzsKKzMzQjI7MzNCMjszM0IyOzAzQkMgMDA3MzswM0JDIDAwNzM7CiszM0IzOzMzQjM7MzNCMzswMDZEIDAwNzM7MDA2RCAwMDczOworMzNCNDszM0I0OzMzQjQ7MDA3MCAwMDU2OzAwNzAgMDA1NjsKKzMzQjU7MzNCNTszM0I1OzAwNkUgMDA1NjswMDZFIDAwNTY7CiszM0I2OzMzQjY7MzNCNjswM0JDIDAwNTY7MDNCQyAwMDU2OworMzNCNzszM0I3OzMzQjc7MDA2RCAwMDU2OzAwNkQgMDA1NjsKKzMzQjg7MzNCODszM0I4OzAwNkIgMDA1NjswMDZCIDAwNTY7CiszM0I5OzMzQjk7MzNCOTswMDREIDAwNTY7MDA0RCAwMDU2OworMzNCQTszM0JBOzMzQkE7MDA3MCAwMDU3OzAwNzAgMDA1NzsKKzMzQkI7MzNCQjszM0JCOzAwNkUgMDA1NzswMDZFIDAwNTc7CiszM0JDOzMzQkM7MzNCQzswM0JDIDAwNTc7MDNCQyAwMDU3OworMzNCRDszM0JEOzMzQkQ7MDA2RCAwMDU3OzAwNkQgMDA1NzsKKzMzQkU7MzNCRTszM0JFOzAwNkIgMDA1NzswMDZCIDAwNTc7CiszM0JGOzMzQkY7MzNCRjswMDREIDAwNTc7MDA0RCAwMDU3OworMzNDMDszM0MwOzMzQzA7MDA2QiAwM0E5OzAwNkIgMDNBOTsKKzMzQzE7MzNDMTszM0MxOzAwNEQgMDNBOTswMDREIDAzQTk7CiszM0MyOzMzQzI7MzNDMjswMDYxIDAwMkUgMDA2RCAwMDJFOzAwNjEgMDAyRSAwMDZEIDAwMkU7CiszM0MzOzMzQzM7MzNDMzswMDQyIDAwNzE7MDA0MiAwMDcxOworMzNDNDszM0M0OzMzQzQ7MDA2MyAwMDYzOzAwNjMgMDA2MzsKKzMzQzU7MzNDNTszM0M1OzAwNjMgMDA2NDswMDYzIDAwNjQ7CiszM0M2OzMzQzY7MzNDNjswMDQzIDIyMTUgMDA2QiAwMDY3OzAwNDMgMjIxNSAwMDZCIDAwNjc7CiszM0M3OzMzQzc7MzNDNzswMDQzIDAwNkYgMDAyRTswMDQzIDAwNkYgMDAyRTsKKzMzQzg7MzNDODszM0M4OzAwNjQgMDA0MjswMDY0IDAwNDI7CiszM0M5OzMzQzk7MzNDOTswMDQ3IDAwNzk7MDA0NyAwMDc5OworMzNDQTszM0NBOzMzQ0E7MDA2OCAwMDYxOzAwNjggMDA2MTsKKzMzQ0I7MzNDQjszM0NCOzAwNDggMDA1MDswMDQ4IDAwNTA7CiszM0NDOzMzQ0M7MzNDQzswMDY5IDAwNkU7MDA2OSAwMDZFOworMzNDRDszM0NEOzMzQ0Q7MDA0QiAwMDRCOzAwNEIgMDA0QjsKKzMzQ0U7MzNDRTszM0NFOzAwNEIgMDA0RDswMDRCIDAwNEQ7CiszM0NGOzMzQ0Y7MzNDRjswMDZCIDAwNzQ7MDA2QiAwMDc0OworMzNEMDszM0QwOzMzRDA7MDA2QyAwMDZEOzAwNkMgMDA2RDsKKzMzRDE7MzNEMTszM0QxOzAwNkMgMDA2RTswMDZDIDAwNkU7CiszM0QyOzMzRDI7MzNEMjswMDZDIDAwNkYgMDA2NzswMDZDIDAwNkYgMDA2NzsKKzMzRDM7MzNEMzszM0QzOzAwNkMgMDA3ODswMDZDIDAwNzg7CiszM0Q0OzMzRDQ7MzNENDswMDZEIDAwNjI7MDA2RCAwMDYyOworMzNENTszM0Q1OzMzRDU7MDA2RCAwMDY5IDAwNkM7MDA2RCAwMDY5IDAwNkM7CiszM0Q2OzMzRDY7MzNENjswMDZEIDAwNkYgMDA2QzswMDZEIDAwNkYgMDA2QzsKKzMzRDc7MzNENzszM0Q3OzAwNTAgMDA0ODswMDUwIDAwNDg7CiszM0Q4OzMzRDg7MzNEODswMDcwIDAwMkUgMDA2RCAwMDJFOzAwNzAgMDAyRSAwMDZEIDAwMkU7CiszM0Q5OzMzRDk7MzNEOTswMDUwIDAwNTAgMDA0RDswMDUwIDAwNTAgMDA0RDsKKzMzREE7MzNEQTszM0RBOzAwNTAgMDA1MjswMDUwIDAwNTI7CiszM0RCOzMzREI7MzNEQjswMDczIDAwNzI7MDA3MyAwMDcyOworMzNEQzszM0RDOzMzREM7MDA1MyAwMDc2OzAwNTMgMDA3NjsKKzMzREQ7MzNERDszM0REOzAwNTcgMDA2MjswMDU3IDAwNjI7CiszM0RFOzMzREU7MzNERTswMDU2IDIyMTUgMDA2RDswMDU2IDIyMTUgMDA2RDsKKzMzREY7MzNERjszM0RGOzAwNDEgMjIxNSAwMDZEOzAwNDEgMjIxNSAwMDZEOworMzNFMDszM0UwOzMzRTA7MDAzMSA2NUU1OzAwMzEgNjVFNTsKKzMzRTE7MzNFMTszM0UxOzAwMzIgNjVFNTswMDMyIDY1RTU7CiszM0UyOzMzRTI7MzNFMjswMDMzIDY1RTU7MDAzMyA2NUU1OworMzNFMzszM0UzOzMzRTM7MDAzNCA2NUU1OzAwMzQgNjVFNTsKKzMzRTQ7MzNFNDszM0U0OzAwMzUgNjVFNTswMDM1IDY1RTU7CiszM0U1OzMzRTU7MzNFNTswMDM2IDY1RTU7MDAzNiA2NUU1OworMzNFNjszM0U2OzMzRTY7MDAzNyA2NUU1OzAwMzcgNjVFNTsKKzMzRTc7MzNFNzszM0U3OzAwMzggNjVFNTswMDM4IDY1RTU7CiszM0U4OzMzRTg7MzNFODswMDM5IDY1RTU7MDAzOSA2NUU1OworMzNFOTszM0U5OzMzRTk7MDAzMSAwMDMwIDY1RTU7MDAzMSAwMDMwIDY1RTU7CiszM0VBOzMzRUE7MzNFQTswMDMxIDAwMzEgNjVFNTswMDMxIDAwMzEgNjVFNTsKKzMzRUI7MzNFQjszM0VCOzAwMzEgMDAzMiA2NUU1OzAwMzEgMDAzMiA2NUU1OworMzNFQzszM0VDOzMzRUM7MDAzMSAwMDMzIDY1RTU7MDAzMSAwMDMzIDY1RTU7CiszM0VEOzMzRUQ7MzNFRDswMDMxIDAwMzQgNjVFNTswMDMxIDAwMzQgNjVFNTsKKzMzRUU7MzNFRTszM0VFOzAwMzEgMDAzNSA2NUU1OzAwMzEgMDAzNSA2NUU1OworMzNFRjszM0VGOzMzRUY7MDAzMSAwMDM2IDY1RTU7MDAzMSAwMDM2IDY1RTU7CiszM0YwOzMzRjA7MzNGMDswMDMxIDAwMzcgNjVFNTswMDMxIDAwMzcgNjVFNTsKKzMzRjE7MzNGMTszM0YxOzAwMzEgMDAzOCA2NUU1OzAwMzEgMDAzOCA2NUU1OworMzNGMjszM0YyOzMzRjI7MDAzMSAwMDM5IDY1RTU7MDAzMSAwMDM5IDY1RTU7CiszM0YzOzMzRjM7MzNGMzswMDMyIDAwMzAgNjVFNTswMDMyIDAwMzAgNjVFNTsKKzMzRjQ7MzNGNDszM0Y0OzAwMzIgMDAzMSA2NUU1OzAwMzIgMDAzMSA2NUU1OworMzNGNTszM0Y1OzMzRjU7MDAzMiAwMDMyIDY1RTU7MDAzMiAwMDMyIDY1RTU7CiszM0Y2OzMzRjY7MzNGNjswMDMyIDAwMzMgNjVFNTswMDMyIDAwMzMgNjVFNTsKKzMzRjc7MzNGNzszM0Y3OzAwMzIgMDAzNCA2NUU1OzAwMzIgMDAzNCA2NUU1OworMzNGODszM0Y4OzMzRjg7MDAzMiAwMDM1IDY1RTU7MDAzMiAwMDM1IDY1RTU7CiszM0Y5OzMzRjk7MzNGOTswMDMyIDAwMzYgNjVFNTswMDMyIDAwMzYgNjVFNTsKKzMzRkE7MzNGQTszM0ZBOzAwMzIgMDAzNyA2NUU1OzAwMzIgMDAzNyA2NUU1OworMzNGQjszM0ZCOzMzRkI7MDAzMiAwMDM4IDY1RTU7MDAzMiAwMDM4IDY1RTU7CiszM0ZDOzMzRkM7MzNGQzswMDMyIDAwMzkgNjVFNTswMDMyIDAwMzkgNjVFNTsKKzMzRkQ7MzNGRDszM0ZEOzAwMzMgMDAzMCA2NUU1OzAwMzMgMDAzMCA2NUU1OworMzNGRTszM0ZFOzMzRkU7MDAzMyAwMDMxIDY1RTU7MDAzMyAwMDMxIDY1RTU7CiszM0ZGOzMzRkY7MzNGRjswMDY3IDAwNjEgMDA2QzswMDY3IDAwNjEgMDA2QzsKK0FDMDA7QUMwMDsxMTAwIDExNjE7QUMwMDsxMTAwIDExNjE7CitBQzAxO0FDMDE7MTEwMCAxMTYxIDExQTg7QUMwMTsxMTAwIDExNjEgMTFBODsKK0FDMDI7QUMwMjsxMTAwIDExNjEgMTFBOTtBQzAyOzExMDAgMTE2MSAxMUE5OworQUMwMztBQzAzOzExMDAgMTE2MSAxMUFBO0FDMDM7MTEwMCAxMTYxIDExQUE7CitBQzA0O0FDMDQ7MTEwMCAxMTYxIDExQUI7QUMwNDsxMTAwIDExNjEgMTFBQjsKK0FDMDU7QUMwNTsxMTAwIDExNjEgMTFBQztBQzA1OzExMDAgMTE2MSAxMUFDOworQUMwNjtBQzA2OzExMDAgMTE2MSAxMUFEO0FDMDY7MTEwMCAxMTYxIDExQUQ7CitBQzA3O0FDMDc7MTEwMCAxMTYxIDExQUU7QUMwNzsxMTAwIDExNjEgMTFBRTsKK0FDMDg7QUMwODsxMTAwIDExNjEgMTFBRjtBQzA4OzExMDAgMTE2MSAxMUFGOworQUMwOTtBQzA5OzExMDAgMTE2MSAxMUIwO0FDMDk7MTEwMCAxMTYxIDExQjA7CitBQzBBO0FDMEE7MTEwMCAxMTYxIDExQjE7QUMwQTsxMTAwIDExNjEgMTFCMTsKK0FDMEI7QUMwQjsxMTAwIDExNjEgMTFCMjtBQzBCOzExMDAgMTE2MSAxMUIyOworQUMwQztBQzBDOzExMDAgMTE2MSAxMUIzO0FDMEM7MTEwMCAxMTYxIDExQjM7CitBQzBEO0FDMEQ7MTEwMCAxMTYxIDExQjQ7QUMwRDsxMTAwIDExNjEgMTFCNDsKK0FDMEU7QUMwRTsxMTAwIDExNjEgMTFCNTtBQzBFOzExMDAgMTE2MSAxMUI1OworQUMwRjtBQzBGOzExMDAgMTE2MSAxMUI2O0FDMEY7MTEwMCAxMTYxIDExQjY7CitBQzEwO0FDMTA7MTEwMCAxMTYxIDExQjc7QUMxMDsxMTAwIDExNjEgMTFCNzsKK0FDMTE7QUMxMTsxMTAwIDExNjEgMTFCODtBQzExOzExMDAgMTE2MSAxMUI4OworQUMxMjtBQzEyOzExMDAgMTE2MSAxMUI5O0FDMTI7MTEwMCAxMTYxIDExQjk7CitBQzEzO0FDMTM7MTEwMCAxMTYxIDExQkE7QUMxMzsxMTAwIDExNjEgMTFCQTsKK0FDMTQ7QUMxNDsxMTAwIDExNjEgMTFCQjtBQzE0OzExMDAgMTE2MSAxMUJCOworQUMxNTtBQzE1OzExMDAgMTE2MSAxMUJDO0FDMTU7MTEwMCAxMTYxIDExQkM7CitBQzE2O0FDMTY7MTEwMCAxMTYxIDExQkQ7QUMxNjsxMTAwIDExNjEgMTFCRDsKK0FDMTc7QUMxNzsxMTAwIDExNjEgMTFCRTtBQzE3OzExMDAgMTE2MSAxMUJFOworQUMxODtBQzE4OzExMDAgMTE2MSAxMUJGO0FDMTg7MTEwMCAxMTYxIDExQkY7CitBQzE5O0FDMTk7MTEwMCAxMTYxIDExQzA7QUMxOTsxMTAwIDExNjEgMTFDMDsKK0FDMUE7QUMxQTsxMTAwIDExNjEgMTFDMTtBQzFBOzExMDAgMTE2MSAxMUMxOworQUMxQjtBQzFCOzExMDAgMTE2MSAxMUMyO0FDMUI7MTEwMCAxMTYxIDExQzI7CitBQzFDO0FDMUM7MTEwMCAxMTYyO0FDMUM7MTEwMCAxMTYyOworQUMxRDtBQzFEOzExMDAgMTE2MiAxMUE4O0FDMUQ7MTEwMCAxMTYyIDExQTg7CitBQzFFO0FDMUU7MTEwMCAxMTYyIDExQTk7QUMxRTsxMTAwIDExNjIgMTFBOTsKK0FDMUY7QUMxRjsxMTAwIDExNjIgMTFBQTtBQzFGOzExMDAgMTE2MiAxMUFBOworQUMyMDtBQzIwOzExMDAgMTE2MiAxMUFCO0FDMjA7MTEwMCAxMTYyIDExQUI7CitBQzIxO0FDMjE7MTEwMCAxMTYyIDExQUM7QUMyMTsxMTAwIDExNjIgMTFBQzsKK0FDMjI7QUMyMjsxMTAwIDExNjIgMTFBRDtBQzIyOzExMDAgMTE2MiAxMUFEOworQUMyMztBQzIzOzExMDAgMTE2MiAxMUFFO0FDMjM7MTEwMCAxMTYyIDExQUU7CitBQzI0O0FDMjQ7MTEwMCAxMTYyIDExQUY7QUMyNDsxMTAwIDExNjIgMTFBRjsKK0FDMjU7QUMyNTsxMTAwIDExNjIgMTFCMDtBQzI1OzExMDAgMTE2MiAxMUIwOworQUMyNjtBQzI2OzExMDAgMTE2MiAxMUIxO0FDMjY7MTEwMCAxMTYyIDExQjE7CitBQzI3O0FDMjc7MTEwMCAxMTYyIDExQjI7QUMyNzsxMTAwIDExNjIgMTFCMjsKK0FDMjg7QUMyODsxMTAwIDExNjIgMTFCMztBQzI4OzExMDAgMTE2MiAxMUIzOworQUMyOTtBQzI5OzExMDAgMTE2MiAxMUI0O0FDMjk7MTEwMCAxMTYyIDExQjQ7CitBQzJBO0FDMkE7MTEwMCAxMTYyIDExQjU7QUMyQTsxMTAwIDExNjIgMTFCNTsKK0FDMkI7QUMyQjsxMTAwIDExNjIgMTFCNjtBQzJCOzExMDAgMTE2MiAxMUI2OworQUMyQztBQzJDOzExMDAgMTE2MiAxMUI3O0FDMkM7MTEwMCAxMTYyIDExQjc7CitBQzJEO0FDMkQ7MTEwMCAxMTYyIDExQjg7QUMyRDsxMTAwIDExNjIgMTFCODsKK0FDMkU7QUMyRTsxMTAwIDExNjIgMTFCOTtBQzJFOzExMDAgMTE2MiAxMUI5OworQUMyRjtBQzJGOzExMDAgMTE2MiAxMUJBO0FDMkY7MTEwMCAxMTYyIDExQkE7CitBQzMwO0FDMzA7MTEwMCAxMTYyIDExQkI7QUMzMDsxMTAwIDExNjIgMTFCQjsKK0FDMzE7QUMzMTsxMTAwIDExNjIgMTFCQztBQzMxOzExMDAgMTE2MiAxMUJDOworQUMzMjtBQzMyOzExMDAgMTE2MiAxMUJEO0FDMzI7MTEwMCAxMTYyIDExQkQ7CitBQzMzO0FDMzM7MTEwMCAxMTYyIDExQkU7QUMzMzsxMTAwIDExNjIgMTFCRTsKK0FDMzQ7QUMzNDsxMTAwIDExNjIgMTFCRjtBQzM0OzExMDAgMTE2MiAxMUJGOworQUMzNTtBQzM1OzExMDAgMTE2MiAxMUMwO0FDMzU7MTEwMCAxMTYyIDExQzA7CitBQzM2O0FDMzY7MTEwMCAxMTYyIDExQzE7QUMzNjsxMTAwIDExNjIgMTFDMTsKK0FDMzc7QUMzNzsxMTAwIDExNjIgMTFDMjtBQzM3OzExMDAgMTE2MiAxMUMyOworQUMzODtBQzM4OzExMDAgMTE2MztBQzM4OzExMDAgMTE2MzsKK0FDMzk7QUMzOTsxMTAwIDExNjMgMTFBODtBQzM5OzExMDAgMTE2MyAxMUE4OworQUMzQTtBQzNBOzExMDAgMTE2MyAxMUE5O0FDM0E7MTEwMCAxMTYzIDExQTk7CitBQzNCO0FDM0I7MTEwMCAxMTYzIDExQUE7QUMzQjsxMTAwIDExNjMgMTFBQTsKK0FDM0M7QUMzQzsxMTAwIDExNjMgMTFBQjtBQzNDOzExMDAgMTE2MyAxMUFCOworQUMzRDtBQzNEOzExMDAgMTE2MyAxMUFDO0FDM0Q7MTEwMCAxMTYzIDExQUM7CitBQzNFO0FDM0U7MTEwMCAxMTYzIDExQUQ7QUMzRTsxMTAwIDExNjMgMTFBRDsKK0FDM0Y7QUMzRjsxMTAwIDExNjMgMTFBRTtBQzNGOzExMDAgMTE2MyAxMUFFOworQUM0MDtBQzQwOzExMDAgMTE2MyAxMUFGO0FDNDA7MTEwMCAxMTYzIDExQUY7CitBQzQxO0FDNDE7MTEwMCAxMTYzIDExQjA7QUM0MTsxMTAwIDExNjMgMTFCMDsKK0FDNDI7QUM0MjsxMTAwIDExNjMgMTFCMTtBQzQyOzExMDAgMTE2MyAxMUIxOworQUM0MztBQzQzOzExMDAgMTE2MyAxMUIyO0FDNDM7MTEwMCAxMTYzIDExQjI7CitBQzQ0O0FDNDQ7MTEwMCAxMTYzIDExQjM7QUM0NDsxMTAwIDExNjMgMTFCMzsKK0FDNDU7QUM0NTsxMTAwIDExNjMgMTFCNDtBQzQ1OzExMDAgMTE2MyAxMUI0OworQUM0NjtBQzQ2OzExMDAgMTE2MyAxMUI1O0FDNDY7MTEwMCAxMTYzIDExQjU7CitBQzQ3O0FDNDc7MTEwMCAxMTYzIDExQjY7QUM0NzsxMTAwIDExNjMgMTFCNjsKK0FDNDg7QUM0ODsxMTAwIDExNjMgMTFCNztBQzQ4OzExMDAgMTE2MyAxMUI3OworQUM0OTtBQzQ5OzExMDAgMTE2MyAxMUI4O0FDNDk7MTEwMCAxMTYzIDExQjg7CitBQzRBO0FDNEE7MTEwMCAxMTYzIDExQjk7QUM0QTsxMTAwIDExNjMgMTFCOTsKK0FDNEI7QUM0QjsxMTAwIDExNjMgMTFCQTtBQzRCOzExMDAgMTE2MyAxMUJBOworQUM0QztBQzRDOzExMDAgMTE2MyAxMUJCO0FDNEM7MTEwMCAxMTYzIDExQkI7CitBQzREO0FDNEQ7MTEwMCAxMTYzIDExQkM7QUM0RDsxMTAwIDExNjMgMTFCQzsKK0FDNEU7QUM0RTsxMTAwIDExNjMgMTFCRDtBQzRFOzExMDAgMTE2MyAxMUJEOworQUM0RjtBQzRGOzExMDAgMTE2MyAxMUJFO0FDNEY7MTEwMCAxMTYzIDExQkU7CitBQzUwO0FDNTA7MTEwMCAxMTYzIDExQkY7QUM1MDsxMTAwIDExNjMgMTFCRjsKK0FDNTE7QUM1MTsxMTAwIDExNjMgMTFDMDtBQzUxOzExMDAgMTE2MyAxMUMwOworQUM1MjtBQzUyOzExMDAgMTE2MyAxMUMxO0FDNTI7MTEwMCAxMTYzIDExQzE7CitBQzUzO0FDNTM7MTEwMCAxMTYzIDExQzI7QUM1MzsxMTAwIDExNjMgMTFDMjsKK0FDNTQ7QUM1NDsxMTAwIDExNjQ7QUM1NDsxMTAwIDExNjQ7CitBQzU1O0FDNTU7MTEwMCAxMTY0IDExQTg7QUM1NTsxMTAwIDExNjQgMTFBODsKK0FDNTY7QUM1NjsxMTAwIDExNjQgMTFBOTtBQzU2OzExMDAgMTE2NCAxMUE5OworQUM1NztBQzU3OzExMDAgMTE2NCAxMUFBO0FDNTc7MTEwMCAxMTY0IDExQUE7CitBQzU4O0FDNTg7MTEwMCAxMTY0IDExQUI7QUM1ODsxMTAwIDExNjQgMTFBQjsKK0FDNTk7QUM1OTsxMTAwIDExNjQgMTFBQztBQzU5OzExMDAgMTE2NCAxMUFDOworQUM1QTtBQzVBOzExMDAgMTE2NCAxMUFEO0FDNUE7MTEwMCAxMTY0IDExQUQ7CitBQzVCO0FDNUI7MTEwMCAxMTY0IDExQUU7QUM1QjsxMTAwIDExNjQgMTFBRTsKK0FDNUM7QUM1QzsxMTAwIDExNjQgMTFBRjtBQzVDOzExMDAgMTE2NCAxMUFGOworQUM1RDtBQzVEOzExMDAgMTE2NCAxMUIwO0FDNUQ7MTEwMCAxMTY0IDExQjA7CitBQzVFO0FDNUU7MTEwMCAxMTY0IDExQjE7QUM1RTsxMTAwIDExNjQgMTFCMTsKK0FDNUY7QUM1RjsxMTAwIDExNjQgMTFCMjtBQzVGOzExMDAgMTE2NCAxMUIyOworQUM2MDtBQzYwOzExMDAgMTE2NCAxMUIzO0FDNjA7MTEwMCAxMTY0IDExQjM7CitBQzYxO0FDNjE7MTEwMCAxMTY0IDExQjQ7QUM2MTsxMTAwIDExNjQgMTFCNDsKK0FDNjI7QUM2MjsxMTAwIDExNjQgMTFCNTtBQzYyOzExMDAgMTE2NCAxMUI1OworQUM2MztBQzYzOzExMDAgMTE2NCAxMUI2O0FDNjM7MTEwMCAxMTY0IDExQjY7CitBQzY0O0FDNjQ7MTEwMCAxMTY0IDExQjc7QUM2NDsxMTAwIDExNjQgMTFCNzsKK0FDNjU7QUM2NTsxMTAwIDExNjQgMTFCODtBQzY1OzExMDAgMTE2NCAxMUI4OworQUM2NjtBQzY2OzExMDAgMTE2NCAxMUI5O0FDNjY7MTEwMCAxMTY0IDExQjk7CitBQzY3O0FDNjc7MTEwMCAxMTY0IDExQkE7QUM2NzsxMTAwIDExNjQgMTFCQTsKK0FDNjg7QUM2ODsxMTAwIDExNjQgMTFCQjtBQzY4OzExMDAgMTE2NCAxMUJCOworQUM2OTtBQzY5OzExMDAgMTE2NCAxMUJDO0FDNjk7MTEwMCAxMTY0IDExQkM7CitBQzZBO0FDNkE7MTEwMCAxMTY0IDExQkQ7QUM2QTsxMTAwIDExNjQgMTFCRDsKK0FDNkI7QUM2QjsxMTAwIDExNjQgMTFCRTtBQzZCOzExMDAgMTE2NCAxMUJFOworQUM2QztBQzZDOzExMDAgMTE2NCAxMUJGO0FDNkM7MTEwMCAxMTY0IDExQkY7CitBQzZEO0FDNkQ7MTEwMCAxMTY0IDExQzA7QUM2RDsxMTAwIDExNjQgMTFDMDsKK0FDNkU7QUM2RTsxMTAwIDExNjQgMTFDMTtBQzZFOzExMDAgMTE2NCAxMUMxOworQUM2RjtBQzZGOzExMDAgMTE2NCAxMUMyO0FDNkY7MTEwMCAxMTY0IDExQzI7CitBQzcwO0FDNzA7MTEwMCAxMTY1O0FDNzA7MTEwMCAxMTY1OworQUM3MTtBQzcxOzExMDAgMTE2NSAxMUE4O0FDNzE7MTEwMCAxMTY1IDExQTg7CitBQzcyO0FDNzI7MTEwMCAxMTY1IDExQTk7QUM3MjsxMTAwIDExNjUgMTFBOTsKK0FDNzM7QUM3MzsxMTAwIDExNjUgMTFBQTtBQzczOzExMDAgMTE2NSAxMUFBOworQUM3NDtBQzc0OzExMDAgMTE2NSAxMUFCO0FDNzQ7MTEwMCAxMTY1IDExQUI7CitBQzc1O0FDNzU7MTEwMCAxMTY1IDExQUM7QUM3NTsxMTAwIDExNjUgMTFBQzsKK0FDNzY7QUM3NjsxMTAwIDExNjUgMTFBRDtBQzc2OzExMDAgMTE2NSAxMUFEOworQUM3NztBQzc3OzExMDAgMTE2NSAxMUFFO0FDNzc7MTEwMCAxMTY1IDExQUU7CitBQzc4O0FDNzg7MTEwMCAxMTY1IDExQUY7QUM3ODsxMTAwIDExNjUgMTFBRjsKK0FDNzk7QUM3OTsxMTAwIDExNjUgMTFCMDtBQzc5OzExMDAgMTE2NSAxMUIwOworQUM3QTtBQzdBOzExMDAgMTE2NSAxMUIxO0FDN0E7MTEwMCAxMTY1IDExQjE7CitBQzdCO0FDN0I7MTEwMCAxMTY1IDExQjI7QUM3QjsxMTAwIDExNjUgMTFCMjsKK0FDN0M7QUM3QzsxMTAwIDExNjUgMTFCMztBQzdDOzExMDAgMTE2NSAxMUIzOworQUM3RDtBQzdEOzExMDAgMTE2NSAxMUI0O0FDN0Q7MTEwMCAxMTY1IDExQjQ7CitBQzdFO0FDN0U7MTEwMCAxMTY1IDExQjU7QUM3RTsxMTAwIDExNjUgMTFCNTsKK0FDN0Y7QUM3RjsxMTAwIDExNjUgMTFCNjtBQzdGOzExMDAgMTE2NSAxMUI2OworQUM4MDtBQzgwOzExMDAgMTE2NSAxMUI3O0FDODA7MTEwMCAxMTY1IDExQjc7CitBQzgxO0FDODE7MTEwMCAxMTY1IDExQjg7QUM4MTsxMTAwIDExNjUgMTFCODsKK0FDODI7QUM4MjsxMTAwIDExNjUgMTFCOTtBQzgyOzExMDAgMTE2NSAxMUI5OworQUM4MztBQzgzOzExMDAgMTE2NSAxMUJBO0FDODM7MTEwMCAxMTY1IDExQkE7CitBQzg0O0FDODQ7MTEwMCAxMTY1IDExQkI7QUM4NDsxMTAwIDExNjUgMTFCQjsKK0FDODU7QUM4NTsxMTAwIDExNjUgMTFCQztBQzg1OzExMDAgMTE2NSAxMUJDOworQUM4NjtBQzg2OzExMDAgMTE2NSAxMUJEO0FDODY7MTEwMCAxMTY1IDExQkQ7CitBQzg3O0FDODc7MTEwMCAxMTY1IDExQkU7QUM4NzsxMTAwIDExNjUgMTFCRTsKK0FDODg7QUM4ODsxMTAwIDExNjUgMTFCRjtBQzg4OzExMDAgMTE2NSAxMUJGOworQUM4OTtBQzg5OzExMDAgMTE2NSAxMUMwO0FDODk7MTEwMCAxMTY1IDExQzA7CitBQzhBO0FDOEE7MTEwMCAxMTY1IDExQzE7QUM4QTsxMTAwIDExNjUgMTFDMTsKK0FDOEI7QUM4QjsxMTAwIDExNjUgMTFDMjtBQzhCOzExMDAgMTE2NSAxMUMyOworQUM4QztBQzhDOzExMDAgMTE2NjtBQzhDOzExMDAgMTE2NjsKK0FDOEQ7QUM4RDsxMTAwIDExNjYgMTFBODtBQzhEOzExMDAgMTE2NiAxMUE4OworQUM4RTtBQzhFOzExMDAgMTE2NiAxMUE5O0FDOEU7MTEwMCAxMTY2IDExQTk7CitBQzhGO0FDOEY7MTEwMCAxMTY2IDExQUE7QUM4RjsxMTAwIDExNjYgMTFBQTsKK0FDOTA7QUM5MDsxMTAwIDExNjYgMTFBQjtBQzkwOzExMDAgMTE2NiAxMUFCOworQUM5MTtBQzkxOzExMDAgMTE2NiAxMUFDO0FDOTE7MTEwMCAxMTY2IDExQUM7CitBQzkyO0FDOTI7MTEwMCAxMTY2IDExQUQ7QUM5MjsxMTAwIDExNjYgMTFBRDsKK0FDOTM7QUM5MzsxMTAwIDExNjYgMTFBRTtBQzkzOzExMDAgMTE2NiAxMUFFOworQUM5NDtBQzk0OzExMDAgMTE2NiAxMUFGO0FDOTQ7MTEwMCAxMTY2IDExQUY7CitBQzk1O0FDOTU7MTEwMCAxMTY2IDExQjA7QUM5NTsxMTAwIDExNjYgMTFCMDsKK0FDOTY7QUM5NjsxMTAwIDExNjYgMTFCMTtBQzk2OzExMDAgMTE2NiAxMUIxOworQUM5NztBQzk3OzExMDAgMTE2NiAxMUIyO0FDOTc7MTEwMCAxMTY2IDExQjI7CitBQzk4O0FDOTg7MTEwMCAxMTY2IDExQjM7QUM5ODsxMTAwIDExNjYgMTFCMzsKK0FDOTk7QUM5OTsxMTAwIDExNjYgMTFCNDtBQzk5OzExMDAgMTE2NiAxMUI0OworQUM5QTtBQzlBOzExMDAgMTE2NiAxMUI1O0FDOUE7MTEwMCAxMTY2IDExQjU7CitBQzlCO0FDOUI7MTEwMCAxMTY2IDExQjY7QUM5QjsxMTAwIDExNjYgMTFCNjsKK0FDOUM7QUM5QzsxMTAwIDExNjYgMTFCNztBQzlDOzExMDAgMTE2NiAxMUI3OworQUM5RDtBQzlEOzExMDAgMTE2NiAxMUI4O0FDOUQ7MTEwMCAxMTY2IDExQjg7CitBQzlFO0FDOUU7MTEwMCAxMTY2IDExQjk7QUM5RTsxMTAwIDExNjYgMTFCOTsKK0FDOUY7QUM5RjsxMTAwIDExNjYgMTFCQTtBQzlGOzExMDAgMTE2NiAxMUJBOworQUNBMDtBQ0EwOzExMDAgMTE2NiAxMUJCO0FDQTA7MTEwMCAxMTY2IDExQkI7CitBQ0ExO0FDQTE7MTEwMCAxMTY2IDExQkM7QUNBMTsxMTAwIDExNjYgMTFCQzsKK0FDQTI7QUNBMjsxMTAwIDExNjYgMTFCRDtBQ0EyOzExMDAgMTE2NiAxMUJEOworQUNBMztBQ0EzOzExMDAgMTE2NiAxMUJFO0FDQTM7MTEwMCAxMTY2IDExQkU7CitBQ0E0O0FDQTQ7MTEwMCAxMTY2IDExQkY7QUNBNDsxMTAwIDExNjYgMTFCRjsKK0FDQTU7QUNBNTsxMTAwIDExNjYgMTFDMDtBQ0E1OzExMDAgMTE2NiAxMUMwOworQUNBNjtBQ0E2OzExMDAgMTE2NiAxMUMxO0FDQTY7MTEwMCAxMTY2IDExQzE7CitBQ0E3O0FDQTc7MTEwMCAxMTY2IDExQzI7QUNBNzsxMTAwIDExNjYgMTFDMjsKK0FDQTg7QUNBODsxMTAwIDExNjc7QUNBODsxMTAwIDExNjc7CitBQ0E5O0FDQTk7MTEwMCAxMTY3IDExQTg7QUNBOTsxMTAwIDExNjcgMTFBODsKK0FDQUE7QUNBQTsxMTAwIDExNjcgMTFBOTtBQ0FBOzExMDAgMTE2NyAxMUE5OworQUNBQjtBQ0FCOzExMDAgMTE2NyAxMUFBO0FDQUI7MTEwMCAxMTY3IDExQUE7CitBQ0FDO0FDQUM7MTEwMCAxMTY3IDExQUI7QUNBQzsxMTAwIDExNjcgMTFBQjsKK0FDQUQ7QUNBRDsxMTAwIDExNjcgMTFBQztBQ0FEOzExMDAgMTE2NyAxMUFDOworQUNBRTtBQ0FFOzExMDAgMTE2NyAxMUFEO0FDQUU7MTEwMCAxMTY3IDExQUQ7CitBQ0FGO0FDQUY7MTEwMCAxMTY3IDExQUU7QUNBRjsxMTAwIDExNjcgMTFBRTsKK0FDQjA7QUNCMDsxMTAwIDExNjcgMTFBRjtBQ0IwOzExMDAgMTE2NyAxMUFGOworQUNCMTtBQ0IxOzExMDAgMTE2NyAxMUIwO0FDQjE7MTEwMCAxMTY3IDExQjA7CitBQ0IyO0FDQjI7MTEwMCAxMTY3IDExQjE7QUNCMjsxMTAwIDExNjcgMTFCMTsKK0FDQjM7QUNCMzsxMTAwIDExNjcgMTFCMjtBQ0IzOzExMDAgMTE2NyAxMUIyOworQUNCNDtBQ0I0OzExMDAgMTE2NyAxMUIzO0FDQjQ7MTEwMCAxMTY3IDExQjM7CitBQ0I1O0FDQjU7MTEwMCAxMTY3IDExQjQ7QUNCNTsxMTAwIDExNjcgMTFCNDsKK0FDQjY7QUNCNjsxMTAwIDExNjcgMTFCNTtBQ0I2OzExMDAgMTE2NyAxMUI1OworQUNCNztBQ0I3OzExMDAgMTE2NyAxMUI2O0FDQjc7MTEwMCAxMTY3IDExQjY7CitBQ0I4O0FDQjg7MTEwMCAxMTY3IDExQjc7QUNCODsxMTAwIDExNjcgMTFCNzsKK0FDQjk7QUNCOTsxMTAwIDExNjcgMTFCODtBQ0I5OzExMDAgMTE2NyAxMUI4OworQUNCQTtBQ0JBOzExMDAgMTE2NyAxMUI5O0FDQkE7MTEwMCAxMTY3IDExQjk7CitBQ0JCO0FDQkI7MTEwMCAxMTY3IDExQkE7QUNCQjsxMTAwIDExNjcgMTFCQTsKK0FDQkM7QUNCQzsxMTAwIDExNjcgMTFCQjtBQ0JDOzExMDAgMTE2NyAxMUJCOworQUNCRDtBQ0JEOzExMDAgMTE2NyAxMUJDO0FDQkQ7MTEwMCAxMTY3IDExQkM7CitBQ0JFO0FDQkU7MTEwMCAxMTY3IDExQkQ7QUNCRTsxMTAwIDExNjcgMTFCRDsKK0FDQkY7QUNCRjsxMTAwIDExNjcgMTFCRTtBQ0JGOzExMDAgMTE2NyAxMUJFOworQUNDMDtBQ0MwOzExMDAgMTE2NyAxMUJGO0FDQzA7MTEwMCAxMTY3IDExQkY7CitBQ0MxO0FDQzE7MTEwMCAxMTY3IDExQzA7QUNDMTsxMTAwIDExNjcgMTFDMDsKK0FDQzI7QUNDMjsxMTAwIDExNjcgMTFDMTtBQ0MyOzExMDAgMTE2NyAxMUMxOworQUNDMztBQ0MzOzExMDAgMTE2NyAxMUMyO0FDQzM7MTEwMCAxMTY3IDExQzI7CitBQ0M0O0FDQzQ7MTEwMCAxMTY4O0FDQzQ7MTEwMCAxMTY4OworQUNDNTtBQ0M1OzExMDAgMTE2OCAxMUE4O0FDQzU7MTEwMCAxMTY4IDExQTg7CitBQ0M2O0FDQzY7MTEwMCAxMTY4IDExQTk7QUNDNjsxMTAwIDExNjggMTFBOTsKK0FDQzc7QUNDNzsxMTAwIDExNjggMTFBQTtBQ0M3OzExMDAgMTE2OCAxMUFBOworQUNDODtBQ0M4OzExMDAgMTE2OCAxMUFCO0FDQzg7MTEwMCAxMTY4IDExQUI7CitBQ0M5O0FDQzk7MTEwMCAxMTY4IDExQUM7QUNDOTsxMTAwIDExNjggMTFBQzsKK0FDQ0E7QUNDQTsxMTAwIDExNjggMTFBRDtBQ0NBOzExMDAgMTE2OCAxMUFEOworQUNDQjtBQ0NCOzExMDAgMTE2OCAxMUFFO0FDQ0I7MTEwMCAxMTY4IDExQUU7CitBQ0NDO0FDQ0M7MTEwMCAxMTY4IDExQUY7QUNDQzsxMTAwIDExNjggMTFBRjsKK0FDQ0Q7QUNDRDsxMTAwIDExNjggMTFCMDtBQ0NEOzExMDAgMTE2OCAxMUIwOworQUNDRTtBQ0NFOzExMDAgMTE2OCAxMUIxO0FDQ0U7MTEwMCAxMTY4IDExQjE7CitBQ0NGO0FDQ0Y7MTEwMCAxMTY4IDExQjI7QUNDRjsxMTAwIDExNjggMTFCMjsKK0FDRDA7QUNEMDsxMTAwIDExNjggMTFCMztBQ0QwOzExMDAgMTE2OCAxMUIzOworQUNEMTtBQ0QxOzExMDAgMTE2OCAxMUI0O0FDRDE7MTEwMCAxMTY4IDExQjQ7CitBQ0QyO0FDRDI7MTEwMCAxMTY4IDExQjU7QUNEMjsxMTAwIDExNjggMTFCNTsKK0FDRDM7QUNEMzsxMTAwIDExNjggMTFCNjtBQ0QzOzExMDAgMTE2OCAxMUI2OworQUNENDtBQ0Q0OzExMDAgMTE2OCAxMUI3O0FDRDQ7MTEwMCAxMTY4IDExQjc7CitBQ0Q1O0FDRDU7MTEwMCAxMTY4IDExQjg7QUNENTsxMTAwIDExNjggMTFCODsKK0FDRDY7QUNENjsxMTAwIDExNjggMTFCOTtBQ0Q2OzExMDAgMTE2OCAxMUI5OworQUNENztBQ0Q3OzExMDAgMTE2OCAxMUJBO0FDRDc7MTEwMCAxMTY4IDExQkE7CitBQ0Q4O0FDRDg7MTEwMCAxMTY4IDExQkI7QUNEODsxMTAwIDExNjggMTFCQjsKK0FDRDk7QUNEOTsxMTAwIDExNjggMTFCQztBQ0Q5OzExMDAgMTE2OCAxMUJDOworQUNEQTtBQ0RBOzExMDAgMTE2OCAxMUJEO0FDREE7MTEwMCAxMTY4IDExQkQ7CitBQ0RCO0FDREI7MTEwMCAxMTY4IDExQkU7QUNEQjsxMTAwIDExNjggMTFCRTsKK0FDREM7QUNEQzsxMTAwIDExNjggMTFCRjtBQ0RDOzExMDAgMTE2OCAxMUJGOworQUNERDtBQ0REOzExMDAgMTE2OCAxMUMwO0FDREQ7MTEwMCAxMTY4IDExQzA7CitBQ0RFO0FDREU7MTEwMCAxMTY4IDExQzE7QUNERTsxMTAwIDExNjggMTFDMTsKK0FDREY7QUNERjsxMTAwIDExNjggMTFDMjtBQ0RGOzExMDAgMTE2OCAxMUMyOworQUNFMDtBQ0UwOzExMDAgMTE2OTtBQ0UwOzExMDAgMTE2OTsKK0FDRTE7QUNFMTsxMTAwIDExNjkgMTFBODtBQ0UxOzExMDAgMTE2OSAxMUE4OworQUNFMjtBQ0UyOzExMDAgMTE2OSAxMUE5O0FDRTI7MTEwMCAxMTY5IDExQTk7CitBQ0UzO0FDRTM7MTEwMCAxMTY5IDExQUE7QUNFMzsxMTAwIDExNjkgMTFBQTsKK0FDRTQ7QUNFNDsxMTAwIDExNjkgMTFBQjtBQ0U0OzExMDAgMTE2OSAxMUFCOworQUNFNTtBQ0U1OzExMDAgMTE2OSAxMUFDO0FDRTU7MTEwMCAxMTY5IDExQUM7CitBQ0U2O0FDRTY7MTEwMCAxMTY5IDExQUQ7QUNFNjsxMTAwIDExNjkgMTFBRDsKK0FDRTc7QUNFNzsxMTAwIDExNjkgMTFBRTtBQ0U3OzExMDAgMTE2OSAxMUFFOworQUNFODtBQ0U4OzExMDAgMTE2OSAxMUFGO0FDRTg7MTEwMCAxMTY5IDExQUY7CitBQ0U5O0FDRTk7MTEwMCAxMTY5IDExQjA7QUNFOTsxMTAwIDExNjkgMTFCMDsKK0FDRUE7QUNFQTsxMTAwIDExNjkgMTFCMTtBQ0VBOzExMDAgMTE2OSAxMUIxOworQUNFQjtBQ0VCOzExMDAgMTE2OSAxMUIyO0FDRUI7MTEwMCAxMTY5IDExQjI7CitBQ0VDO0FDRUM7MTEwMCAxMTY5IDExQjM7QUNFQzsxMTAwIDExNjkgMTFCMzsKK0FDRUQ7QUNFRDsxMTAwIDExNjkgMTFCNDtBQ0VEOzExMDAgMTE2OSAxMUI0OworQUNFRTtBQ0VFOzExMDAgMTE2OSAxMUI1O0FDRUU7MTEwMCAxMTY5IDExQjU7CitBQ0VGO0FDRUY7MTEwMCAxMTY5IDExQjY7QUNFRjsxMTAwIDExNjkgMTFCNjsKK0FDRjA7QUNGMDsxMTAwIDExNjkgMTFCNztBQ0YwOzExMDAgMTE2OSAxMUI3OworQUNGMTtBQ0YxOzExMDAgMTE2OSAxMUI4O0FDRjE7MTEwMCAxMTY5IDExQjg7CitBQ0YyO0FDRjI7MTEwMCAxMTY5IDExQjk7QUNGMjsxMTAwIDExNjkgMTFCOTsKK0FDRjM7QUNGMzsxMTAwIDExNjkgMTFCQTtBQ0YzOzExMDAgMTE2OSAxMUJBOworQUNGNDtBQ0Y0OzExMDAgMTE2OSAxMUJCO0FDRjQ7MTEwMCAxMTY5IDExQkI7CitBQ0Y1O0FDRjU7MTEwMCAxMTY5IDExQkM7QUNGNTsxMTAwIDExNjkgMTFCQzsKK0FDRjY7QUNGNjsxMTAwIDExNjkgMTFCRDtBQ0Y2OzExMDAgMTE2OSAxMUJEOworQUNGNztBQ0Y3OzExMDAgMTE2OSAxMUJFO0FDRjc7MTEwMCAxMTY5IDExQkU7CitBQ0Y4O0FDRjg7MTEwMCAxMTY5IDExQkY7QUNGODsxMTAwIDExNjkgMTFCRjsKK0FDRjk7QUNGOTsxMTAwIDExNjkgMTFDMDtBQ0Y5OzExMDAgMTE2OSAxMUMwOworQUNGQTtBQ0ZBOzExMDAgMTE2OSAxMUMxO0FDRkE7MTEwMCAxMTY5IDExQzE7CitBQ0ZCO0FDRkI7MTEwMCAxMTY5IDExQzI7QUNGQjsxMTAwIDExNjkgMTFDMjsKK0FDRkM7QUNGQzsxMTAwIDExNkE7QUNGQzsxMTAwIDExNkE7CitBQ0ZEO0FDRkQ7MTEwMCAxMTZBIDExQTg7QUNGRDsxMTAwIDExNkEgMTFBODsKK0FDRkU7QUNGRTsxMTAwIDExNkEgMTFBOTtBQ0ZFOzExMDAgMTE2QSAxMUE5OworQUNGRjtBQ0ZGOzExMDAgMTE2QSAxMUFBO0FDRkY7MTEwMCAxMTZBIDExQUE7CitBRDAwO0FEMDA7MTEwMCAxMTZBIDExQUI7QUQwMDsxMTAwIDExNkEgMTFBQjsKK0FEMDE7QUQwMTsxMTAwIDExNkEgMTFBQztBRDAxOzExMDAgMTE2QSAxMUFDOworQUQwMjtBRDAyOzExMDAgMTE2QSAxMUFEO0FEMDI7MTEwMCAxMTZBIDExQUQ7CitBRDAzO0FEMDM7MTEwMCAxMTZBIDExQUU7QUQwMzsxMTAwIDExNkEgMTFBRTsKK0FEMDQ7QUQwNDsxMTAwIDExNkEgMTFBRjtBRDA0OzExMDAgMTE2QSAxMUFGOworQUQwNTtBRDA1OzExMDAgMTE2QSAxMUIwO0FEMDU7MTEwMCAxMTZBIDExQjA7CitBRDA2O0FEMDY7MTEwMCAxMTZBIDExQjE7QUQwNjsxMTAwIDExNkEgMTFCMTsKK0FEMDc7QUQwNzsxMTAwIDExNkEgMTFCMjtBRDA3OzExMDAgMTE2QSAxMUIyOworQUQwODtBRDA4OzExMDAgMTE2QSAxMUIzO0FEMDg7MTEwMCAxMTZBIDExQjM7CitBRDA5O0FEMDk7MTEwMCAxMTZBIDExQjQ7QUQwOTsxMTAwIDExNkEgMTFCNDsKK0FEMEE7QUQwQTsxMTAwIDExNkEgMTFCNTtBRDBBOzExMDAgMTE2QSAxMUI1OworQUQwQjtBRDBCOzExMDAgMTE2QSAxMUI2O0FEMEI7MTEwMCAxMTZBIDExQjY7CitBRDBDO0FEMEM7MTEwMCAxMTZBIDExQjc7QUQwQzsxMTAwIDExNkEgMTFCNzsKK0FEMEQ7QUQwRDsxMTAwIDExNkEgMTFCODtBRDBEOzExMDAgMTE2QSAxMUI4OworQUQwRTtBRDBFOzExMDAgMTE2QSAxMUI5O0FEMEU7MTEwMCAxMTZBIDExQjk7CitBRDBGO0FEMEY7MTEwMCAxMTZBIDExQkE7QUQwRjsxMTAwIDExNkEgMTFCQTsKK0FEMTA7QUQxMDsxMTAwIDExNkEgMTFCQjtBRDEwOzExMDAgMTE2QSAxMUJCOworQUQxMTtBRDExOzExMDAgMTE2QSAxMUJDO0FEMTE7MTEwMCAxMTZBIDExQkM7CitBRDEyO0FEMTI7MTEwMCAxMTZBIDExQkQ7QUQxMjsxMTAwIDExNkEgMTFCRDsKK0FEMTM7QUQxMzsxMTAwIDExNkEgMTFCRTtBRDEzOzExMDAgMTE2QSAxMUJFOworQUQxNDtBRDE0OzExMDAgMTE2QSAxMUJGO0FEMTQ7MTEwMCAxMTZBIDExQkY7CitBRDE1O0FEMTU7MTEwMCAxMTZBIDExQzA7QUQxNTsxMTAwIDExNkEgMTFDMDsKK0FEMTY7QUQxNjsxMTAwIDExNkEgMTFDMTtBRDE2OzExMDAgMTE2QSAxMUMxOworQUQxNztBRDE3OzExMDAgMTE2QSAxMUMyO0FEMTc7MTEwMCAxMTZBIDExQzI7CitBRDE4O0FEMTg7MTEwMCAxMTZCO0FEMTg7MTEwMCAxMTZCOworQUQxOTtBRDE5OzExMDAgMTE2QiAxMUE4O0FEMTk7MTEwMCAxMTZCIDExQTg7CitBRDFBO0FEMUE7MTEwMCAxMTZCIDExQTk7QUQxQTsxMTAwIDExNkIgMTFBOTsKK0FEMUI7QUQxQjsxMTAwIDExNkIgMTFBQTtBRDFCOzExMDAgMTE2QiAxMUFBOworQUQxQztBRDFDOzExMDAgMTE2QiAxMUFCO0FEMUM7MTEwMCAxMTZCIDExQUI7CitBRDFEO0FEMUQ7MTEwMCAxMTZCIDExQUM7QUQxRDsxMTAwIDExNkIgMTFBQzsKK0FEMUU7QUQxRTsxMTAwIDExNkIgMTFBRDtBRDFFOzExMDAgMTE2QiAxMUFEOworQUQxRjtBRDFGOzExMDAgMTE2QiAxMUFFO0FEMUY7MTEwMCAxMTZCIDExQUU7CitBRDIwO0FEMjA7MTEwMCAxMTZCIDExQUY7QUQyMDsxMTAwIDExNkIgMTFBRjsKK0FEMjE7QUQyMTsxMTAwIDExNkIgMTFCMDtBRDIxOzExMDAgMTE2QiAxMUIwOworQUQyMjtBRDIyOzExMDAgMTE2QiAxMUIxO0FEMjI7MTEwMCAxMTZCIDExQjE7CitBRDIzO0FEMjM7MTEwMCAxMTZCIDExQjI7QUQyMzsxMTAwIDExNkIgMTFCMjsKK0FEMjQ7QUQyNDsxMTAwIDExNkIgMTFCMztBRDI0OzExMDAgMTE2QiAxMUIzOworQUQyNTtBRDI1OzExMDAgMTE2QiAxMUI0O0FEMjU7MTEwMCAxMTZCIDExQjQ7CitBRDI2O0FEMjY7MTEwMCAxMTZCIDExQjU7QUQyNjsxMTAwIDExNkIgMTFCNTsKK0FEMjc7QUQyNzsxMTAwIDExNkIgMTFCNjtBRDI3OzExMDAgMTE2QiAxMUI2OworQUQyODtBRDI4OzExMDAgMTE2QiAxMUI3O0FEMjg7MTEwMCAxMTZCIDExQjc7CitBRDI5O0FEMjk7MTEwMCAxMTZCIDExQjg7QUQyOTsxMTAwIDExNkIgMTFCODsKK0FEMkE7QUQyQTsxMTAwIDExNkIgMTFCOTtBRDJBOzExMDAgMTE2QiAxMUI5OworQUQyQjtBRDJCOzExMDAgMTE2QiAxMUJBO0FEMkI7MTEwMCAxMTZCIDExQkE7CitBRDJDO0FEMkM7MTEwMCAxMTZCIDExQkI7QUQyQzsxMTAwIDExNkIgMTFCQjsKK0FEMkQ7QUQyRDsxMTAwIDExNkIgMTFCQztBRDJEOzExMDAgMTE2QiAxMUJDOworQUQyRTtBRDJFOzExMDAgMTE2QiAxMUJEO0FEMkU7MTEwMCAxMTZCIDExQkQ7CitBRDJGO0FEMkY7MTEwMCAxMTZCIDExQkU7QUQyRjsxMTAwIDExNkIgMTFCRTsKK0FEMzA7QUQzMDsxMTAwIDExNkIgMTFCRjtBRDMwOzExMDAgMTE2QiAxMUJGOworQUQzMTtBRDMxOzExMDAgMTE2QiAxMUMwO0FEMzE7MTEwMCAxMTZCIDExQzA7CitBRDMyO0FEMzI7MTEwMCAxMTZCIDExQzE7QUQzMjsxMTAwIDExNkIgMTFDMTsKK0FEMzM7QUQzMzsxMTAwIDExNkIgMTFDMjtBRDMzOzExMDAgMTE2QiAxMUMyOworQUQzNDtBRDM0OzExMDAgMTE2QztBRDM0OzExMDAgMTE2QzsKK0FEMzU7QUQzNTsxMTAwIDExNkMgMTFBODtBRDM1OzExMDAgMTE2QyAxMUE4OworQUQzNjtBRDM2OzExMDAgMTE2QyAxMUE5O0FEMzY7MTEwMCAxMTZDIDExQTk7CitBRDM3O0FEMzc7MTEwMCAxMTZDIDExQUE7QUQzNzsxMTAwIDExNkMgMTFBQTsKK0FEMzg7QUQzODsxMTAwIDExNkMgMTFBQjtBRDM4OzExMDAgMTE2QyAxMUFCOworQUQzOTtBRDM5OzExMDAgMTE2QyAxMUFDO0FEMzk7MTEwMCAxMTZDIDExQUM7CitBRDNBO0FEM0E7MTEwMCAxMTZDIDExQUQ7QUQzQTsxMTAwIDExNkMgMTFBRDsKK0FEM0I7QUQzQjsxMTAwIDExNkMgMTFBRTtBRDNCOzExMDAgMTE2QyAxMUFFOworQUQzQztBRDNDOzExMDAgMTE2QyAxMUFGO0FEM0M7MTEwMCAxMTZDIDExQUY7CitBRDNEO0FEM0Q7MTEwMCAxMTZDIDExQjA7QUQzRDsxMTAwIDExNkMgMTFCMDsKK0FEM0U7QUQzRTsxMTAwIDExNkMgMTFCMTtBRDNFOzExMDAgMTE2QyAxMUIxOworQUQzRjtBRDNGOzExMDAgMTE2QyAxMUIyO0FEM0Y7MTEwMCAxMTZDIDExQjI7CitBRDQwO0FENDA7MTEwMCAxMTZDIDExQjM7QUQ0MDsxMTAwIDExNkMgMTFCMzsKK0FENDE7QUQ0MTsxMTAwIDExNkMgMTFCNDtBRDQxOzExMDAgMTE2QyAxMUI0OworQUQ0MjtBRDQyOzExMDAgMTE2QyAxMUI1O0FENDI7MTEwMCAxMTZDIDExQjU7CitBRDQzO0FENDM7MTEwMCAxMTZDIDExQjY7QUQ0MzsxMTAwIDExNkMgMTFCNjsKK0FENDQ7QUQ0NDsxMTAwIDExNkMgMTFCNztBRDQ0OzExMDAgMTE2QyAxMUI3OworQUQ0NTtBRDQ1OzExMDAgMTE2QyAxMUI4O0FENDU7MTEwMCAxMTZDIDExQjg7CitBRDQ2O0FENDY7MTEwMCAxMTZDIDExQjk7QUQ0NjsxMTAwIDExNkMgMTFCOTsKK0FENDc7QUQ0NzsxMTAwIDExNkMgMTFCQTtBRDQ3OzExMDAgMTE2QyAxMUJBOworQUQ0ODtBRDQ4OzExMDAgMTE2QyAxMUJCO0FENDg7MTEwMCAxMTZDIDExQkI7CitBRDQ5O0FENDk7MTEwMCAxMTZDIDExQkM7QUQ0OTsxMTAwIDExNkMgMTFCQzsKK0FENEE7QUQ0QTsxMTAwIDExNkMgMTFCRDtBRDRBOzExMDAgMTE2QyAxMUJEOworQUQ0QjtBRDRCOzExMDAgMTE2QyAxMUJFO0FENEI7MTEwMCAxMTZDIDExQkU7CitBRDRDO0FENEM7MTEwMCAxMTZDIDExQkY7QUQ0QzsxMTAwIDExNkMgMTFCRjsKK0FENEQ7QUQ0RDsxMTAwIDExNkMgMTFDMDtBRDREOzExMDAgMTE2QyAxMUMwOworQUQ0RTtBRDRFOzExMDAgMTE2QyAxMUMxO0FENEU7MTEwMCAxMTZDIDExQzE7CitBRDRGO0FENEY7MTEwMCAxMTZDIDExQzI7QUQ0RjsxMTAwIDExNkMgMTFDMjsKK0FENTA7QUQ1MDsxMTAwIDExNkQ7QUQ1MDsxMTAwIDExNkQ7CitBRDUxO0FENTE7MTEwMCAxMTZEIDExQTg7QUQ1MTsxMTAwIDExNkQgMTFBODsKK0FENTI7QUQ1MjsxMTAwIDExNkQgMTFBOTtBRDUyOzExMDAgMTE2RCAxMUE5OworQUQ1MztBRDUzOzExMDAgMTE2RCAxMUFBO0FENTM7MTEwMCAxMTZEIDExQUE7CitBRDU0O0FENTQ7MTEwMCAxMTZEIDExQUI7QUQ1NDsxMTAwIDExNkQgMTFBQjsKK0FENTU7QUQ1NTsxMTAwIDExNkQgMTFBQztBRDU1OzExMDAgMTE2RCAxMUFDOworQUQ1NjtBRDU2OzExMDAgMTE2RCAxMUFEO0FENTY7MTEwMCAxMTZEIDExQUQ7CitBRDU3O0FENTc7MTEwMCAxMTZEIDExQUU7QUQ1NzsxMTAwIDExNkQgMTFBRTsKK0FENTg7QUQ1ODsxMTAwIDExNkQgMTFBRjtBRDU4OzExMDAgMTE2RCAxMUFGOworQUQ1OTtBRDU5OzExMDAgMTE2RCAxMUIwO0FENTk7MTEwMCAxMTZEIDExQjA7CitBRDVBO0FENUE7MTEwMCAxMTZEIDExQjE7QUQ1QTsxMTAwIDExNkQgMTFCMTsKK0FENUI7QUQ1QjsxMTAwIDExNkQgMTFCMjtBRDVCOzExMDAgMTE2RCAxMUIyOworQUQ1QztBRDVDOzExMDAgMTE2RCAxMUIzO0FENUM7MTEwMCAxMTZEIDExQjM7CitBRDVEO0FENUQ7MTEwMCAxMTZEIDExQjQ7QUQ1RDsxMTAwIDExNkQgMTFCNDsKK0FENUU7QUQ1RTsxMTAwIDExNkQgMTFCNTtBRDVFOzExMDAgMTE2RCAxMUI1OworQUQ1RjtBRDVGOzExMDAgMTE2RCAxMUI2O0FENUY7MTEwMCAxMTZEIDExQjY7CitBRDYwO0FENjA7MTEwMCAxMTZEIDExQjc7QUQ2MDsxMTAwIDExNkQgMTFCNzsKK0FENjE7QUQ2MTsxMTAwIDExNkQgMTFCODtBRDYxOzExMDAgMTE2RCAxMUI4OworQUQ2MjtBRDYyOzExMDAgMTE2RCAxMUI5O0FENjI7MTEwMCAxMTZEIDExQjk7CitBRDYzO0FENjM7MTEwMCAxMTZEIDExQkE7QUQ2MzsxMTAwIDExNkQgMTFCQTsKK0FENjQ7QUQ2NDsxMTAwIDExNkQgMTFCQjtBRDY0OzExMDAgMTE2RCAxMUJCOworQUQ2NTtBRDY1OzExMDAgMTE2RCAxMUJDO0FENjU7MTEwMCAxMTZEIDExQkM7CitBRDY2O0FENjY7MTEwMCAxMTZEIDExQkQ7QUQ2NjsxMTAwIDExNkQgMTFCRDsKK0FENjc7QUQ2NzsxMTAwIDExNkQgMTFCRTtBRDY3OzExMDAgMTE2RCAxMUJFOworQUQ2ODtBRDY4OzExMDAgMTE2RCAxMUJGO0FENjg7MTEwMCAxMTZEIDExQkY7CitBRDY5O0FENjk7MTEwMCAxMTZEIDExQzA7QUQ2OTsxMTAwIDExNkQgMTFDMDsKK0FENkE7QUQ2QTsxMTAwIDExNkQgMTFDMTtBRDZBOzExMDAgMTE2RCAxMUMxOworQUQ2QjtBRDZCOzExMDAgMTE2RCAxMUMyO0FENkI7MTEwMCAxMTZEIDExQzI7CitBRDZDO0FENkM7MTEwMCAxMTZFO0FENkM7MTEwMCAxMTZFOworQUQ2RDtBRDZEOzExMDAgMTE2RSAxMUE4O0FENkQ7MTEwMCAxMTZFIDExQTg7CitBRDZFO0FENkU7MTEwMCAxMTZFIDExQTk7QUQ2RTsxMTAwIDExNkUgMTFBOTsKK0FENkY7QUQ2RjsxMTAwIDExNkUgMTFBQTtBRDZGOzExMDAgMTE2RSAxMUFBOworQUQ3MDtBRDcwOzExMDAgMTE2RSAxMUFCO0FENzA7MTEwMCAxMTZFIDExQUI7CitBRDcxO0FENzE7MTEwMCAxMTZFIDExQUM7QUQ3MTsxMTAwIDExNkUgMTFBQzsKK0FENzI7QUQ3MjsxMTAwIDExNkUgMTFBRDtBRDcyOzExMDAgMTE2RSAxMUFEOworQUQ3MztBRDczOzExMDAgMTE2RSAxMUFFO0FENzM7MTEwMCAxMTZFIDExQUU7CitBRDc0O0FENzQ7MTEwMCAxMTZFIDExQUY7QUQ3NDsxMTAwIDExNkUgMTFBRjsKK0FENzU7QUQ3NTsxMTAwIDExNkUgMTFCMDtBRDc1OzExMDAgMTE2RSAxMUIwOworQUQ3NjtBRDc2OzExMDAgMTE2RSAxMUIxO0FENzY7MTEwMCAxMTZFIDExQjE7CitBRDc3O0FENzc7MTEwMCAxMTZFIDExQjI7QUQ3NzsxMTAwIDExNkUgMTFCMjsKK0FENzg7QUQ3ODsxMTAwIDExNkUgMTFCMztBRDc4OzExMDAgMTE2RSAxMUIzOworQUQ3OTtBRDc5OzExMDAgMTE2RSAxMUI0O0FENzk7MTEwMCAxMTZFIDExQjQ7CitBRDdBO0FEN0E7MTEwMCAxMTZFIDExQjU7QUQ3QTsxMTAwIDExNkUgMTFCNTsKK0FEN0I7QUQ3QjsxMTAwIDExNkUgMTFCNjtBRDdCOzExMDAgMTE2RSAxMUI2OworQUQ3QztBRDdDOzExMDAgMTE2RSAxMUI3O0FEN0M7MTEwMCAxMTZFIDExQjc7CitBRDdEO0FEN0Q7MTEwMCAxMTZFIDExQjg7QUQ3RDsxMTAwIDExNkUgMTFCODsKK0FEN0U7QUQ3RTsxMTAwIDExNkUgMTFCOTtBRDdFOzExMDAgMTE2RSAxMUI5OworQUQ3RjtBRDdGOzExMDAgMTE2RSAxMUJBO0FEN0Y7MTEwMCAxMTZFIDExQkE7CitBRDgwO0FEODA7MTEwMCAxMTZFIDExQkI7QUQ4MDsxMTAwIDExNkUgMTFCQjsKK0FEODE7QUQ4MTsxMTAwIDExNkUgMTFCQztBRDgxOzExMDAgMTE2RSAxMUJDOworQUQ4MjtBRDgyOzExMDAgMTE2RSAxMUJEO0FEODI7MTEwMCAxMTZFIDExQkQ7CitBRDgzO0FEODM7MTEwMCAxMTZFIDExQkU7QUQ4MzsxMTAwIDExNkUgMTFCRTsKK0FEODQ7QUQ4NDsxMTAwIDExNkUgMTFCRjtBRDg0OzExMDAgMTE2RSAxMUJGOworQUQ4NTtBRDg1OzExMDAgMTE2RSAxMUMwO0FEODU7MTEwMCAxMTZFIDExQzA7CitBRDg2O0FEODY7MTEwMCAxMTZFIDExQzE7QUQ4NjsxMTAwIDExNkUgMTFDMTsKK0FEODc7QUQ4NzsxMTAwIDExNkUgMTFDMjtBRDg3OzExMDAgMTE2RSAxMUMyOworQUQ4ODtBRDg4OzExMDAgMTE2RjtBRDg4OzExMDAgMTE2RjsKK0FEODk7QUQ4OTsxMTAwIDExNkYgMTFBODtBRDg5OzExMDAgMTE2RiAxMUE4OworQUQ4QTtBRDhBOzExMDAgMTE2RiAxMUE5O0FEOEE7MTEwMCAxMTZGIDExQTk7CitBRDhCO0FEOEI7MTEwMCAxMTZGIDExQUE7QUQ4QjsxMTAwIDExNkYgMTFBQTsKK0FEOEM7QUQ4QzsxMTAwIDExNkYgMTFBQjtBRDhDOzExMDAgMTE2RiAxMUFCOworQUQ4RDtBRDhEOzExMDAgMTE2RiAxMUFDO0FEOEQ7MTEwMCAxMTZGIDExQUM7CitBRDhFO0FEOEU7MTEwMCAxMTZGIDExQUQ7QUQ4RTsxMTAwIDExNkYgMTFBRDsKK0FEOEY7QUQ4RjsxMTAwIDExNkYgMTFBRTtBRDhGOzExMDAgMTE2RiAxMUFFOworQUQ5MDtBRDkwOzExMDAgMTE2RiAxMUFGO0FEOTA7MTEwMCAxMTZGIDExQUY7CitBRDkxO0FEOTE7MTEwMCAxMTZGIDExQjA7QUQ5MTsxMTAwIDExNkYgMTFCMDsKK0FEOTI7QUQ5MjsxMTAwIDExNkYgMTFCMTtBRDkyOzExMDAgMTE2RiAxMUIxOworQUQ5MztBRDkzOzExMDAgMTE2RiAxMUIyO0FEOTM7MTEwMCAxMTZGIDExQjI7CitBRDk0O0FEOTQ7MTEwMCAxMTZGIDExQjM7QUQ5NDsxMTAwIDExNkYgMTFCMzsKK0FEOTU7QUQ5NTsxMTAwIDExNkYgMTFCNDtBRDk1OzExMDAgMTE2RiAxMUI0OworQUQ5NjtBRDk2OzExMDAgMTE2RiAxMUI1O0FEOTY7MTEwMCAxMTZGIDExQjU7CitBRDk3O0FEOTc7MTEwMCAxMTZGIDExQjY7QUQ5NzsxMTAwIDExNkYgMTFCNjsKK0FEOTg7QUQ5ODsxMTAwIDExNkYgMTFCNztBRDk4OzExMDAgMTE2RiAxMUI3OworQUQ5OTtBRDk5OzExMDAgMTE2RiAxMUI4O0FEOTk7MTEwMCAxMTZGIDExQjg7CitBRDlBO0FEOUE7MTEwMCAxMTZGIDExQjk7QUQ5QTsxMTAwIDExNkYgMTFCOTsKK0FEOUI7QUQ5QjsxMTAwIDExNkYgMTFCQTtBRDlCOzExMDAgMTE2RiAxMUJBOworQUQ5QztBRDlDOzExMDAgMTE2RiAxMUJCO0FEOUM7MTEwMCAxMTZGIDExQkI7CitBRDlEO0FEOUQ7MTEwMCAxMTZGIDExQkM7QUQ5RDsxMTAwIDExNkYgMTFCQzsKK0FEOUU7QUQ5RTsxMTAwIDExNkYgMTFCRDtBRDlFOzExMDAgMTE2RiAxMUJEOworQUQ5RjtBRDlGOzExMDAgMTE2RiAxMUJFO0FEOUY7MTEwMCAxMTZGIDExQkU7CitBREEwO0FEQTA7MTEwMCAxMTZGIDExQkY7QURBMDsxMTAwIDExNkYgMTFCRjsKK0FEQTE7QURBMTsxMTAwIDExNkYgMTFDMDtBREExOzExMDAgMTE2RiAxMUMwOworQURBMjtBREEyOzExMDAgMTE2RiAxMUMxO0FEQTI7MTEwMCAxMTZGIDExQzE7CitBREEzO0FEQTM7MTEwMCAxMTZGIDExQzI7QURBMzsxMTAwIDExNkYgMTFDMjsKK0FEQTQ7QURBNDsxMTAwIDExNzA7QURBNDsxMTAwIDExNzA7CitBREE1O0FEQTU7MTEwMCAxMTcwIDExQTg7QURBNTsxMTAwIDExNzAgMTFBODsKK0FEQTY7QURBNjsxMTAwIDExNzAgMTFBOTtBREE2OzExMDAgMTE3MCAxMUE5OworQURBNztBREE3OzExMDAgMTE3MCAxMUFBO0FEQTc7MTEwMCAxMTcwIDExQUE7CitBREE4O0FEQTg7MTEwMCAxMTcwIDExQUI7QURBODsxMTAwIDExNzAgMTFBQjsKK0FEQTk7QURBOTsxMTAwIDExNzAgMTFBQztBREE5OzExMDAgMTE3MCAxMUFDOworQURBQTtBREFBOzExMDAgMTE3MCAxMUFEO0FEQUE7MTEwMCAxMTcwIDExQUQ7CitBREFCO0FEQUI7MTEwMCAxMTcwIDExQUU7QURBQjsxMTAwIDExNzAgMTFBRTsKK0FEQUM7QURBQzsxMTAwIDExNzAgMTFBRjtBREFDOzExMDAgMTE3MCAxMUFGOworQURBRDtBREFEOzExMDAgMTE3MCAxMUIwO0FEQUQ7MTEwMCAxMTcwIDExQjA7CitBREFFO0FEQUU7MTEwMCAxMTcwIDExQjE7QURBRTsxMTAwIDExNzAgMTFCMTsKK0FEQUY7QURBRjsxMTAwIDExNzAgMTFCMjtBREFGOzExMDAgMTE3MCAxMUIyOworQURCMDtBREIwOzExMDAgMTE3MCAxMUIzO0FEQjA7MTEwMCAxMTcwIDExQjM7CitBREIxO0FEQjE7MTEwMCAxMTcwIDExQjQ7QURCMTsxMTAwIDExNzAgMTFCNDsKK0FEQjI7QURCMjsxMTAwIDExNzAgMTFCNTtBREIyOzExMDAgMTE3MCAxMUI1OworQURCMztBREIzOzExMDAgMTE3MCAxMUI2O0FEQjM7MTEwMCAxMTcwIDExQjY7CitBREI0O0FEQjQ7MTEwMCAxMTcwIDExQjc7QURCNDsxMTAwIDExNzAgMTFCNzsKK0FEQjU7QURCNTsxMTAwIDExNzAgMTFCODtBREI1OzExMDAgMTE3MCAxMUI4OworQURCNjtBREI2OzExMDAgMTE3MCAxMUI5O0FEQjY7MTEwMCAxMTcwIDExQjk7CitBREI3O0FEQjc7MTEwMCAxMTcwIDExQkE7QURCNzsxMTAwIDExNzAgMTFCQTsKK0FEQjg7QURCODsxMTAwIDExNzAgMTFCQjtBREI4OzExMDAgMTE3MCAxMUJCOworQURCOTtBREI5OzExMDAgMTE3MCAxMUJDO0FEQjk7MTEwMCAxMTcwIDExQkM7CitBREJBO0FEQkE7MTEwMCAxMTcwIDExQkQ7QURCQTsxMTAwIDExNzAgMTFCRDsKK0FEQkI7QURCQjsxMTAwIDExNzAgMTFCRTtBREJCOzExMDAgMTE3MCAxMUJFOworQURCQztBREJDOzExMDAgMTE3MCAxMUJGO0FEQkM7MTEwMCAxMTcwIDExQkY7CitBREJEO0FEQkQ7MTEwMCAxMTcwIDExQzA7QURCRDsxMTAwIDExNzAgMTFDMDsKK0FEQkU7QURCRTsxMTAwIDExNzAgMTFDMTtBREJFOzExMDAgMTE3MCAxMUMxOworQURCRjtBREJGOzExMDAgMTE3MCAxMUMyO0FEQkY7MTEwMCAxMTcwIDExQzI7CitBREMwO0FEQzA7MTEwMCAxMTcxO0FEQzA7MTEwMCAxMTcxOworQURDMTtBREMxOzExMDAgMTE3MSAxMUE4O0FEQzE7MTEwMCAxMTcxIDExQTg7CitBREMyO0FEQzI7MTEwMCAxMTcxIDExQTk7QURDMjsxMTAwIDExNzEgMTFBOTsKK0FEQzM7QURDMzsxMTAwIDExNzEgMTFBQTtBREMzOzExMDAgMTE3MSAxMUFBOworQURDNDtBREM0OzExMDAgMTE3MSAxMUFCO0FEQzQ7MTEwMCAxMTcxIDExQUI7CitBREM1O0FEQzU7MTEwMCAxMTcxIDExQUM7QURDNTsxMTAwIDExNzEgMTFBQzsKK0FEQzY7QURDNjsxMTAwIDExNzEgMTFBRDtBREM2OzExMDAgMTE3MSAxMUFEOworQURDNztBREM3OzExMDAgMTE3MSAxMUFFO0FEQzc7MTEwMCAxMTcxIDExQUU7CitBREM4O0FEQzg7MTEwMCAxMTcxIDExQUY7QURDODsxMTAwIDExNzEgMTFBRjsKK0FEQzk7QURDOTsxMTAwIDExNzEgMTFCMDtBREM5OzExMDAgMTE3MSAxMUIwOworQURDQTtBRENBOzExMDAgMTE3MSAxMUIxO0FEQ0E7MTEwMCAxMTcxIDExQjE7CitBRENCO0FEQ0I7MTEwMCAxMTcxIDExQjI7QURDQjsxMTAwIDExNzEgMTFCMjsKK0FEQ0M7QURDQzsxMTAwIDExNzEgMTFCMztBRENDOzExMDAgMTE3MSAxMUIzOworQURDRDtBRENEOzExMDAgMTE3MSAxMUI0O0FEQ0Q7MTEwMCAxMTcxIDExQjQ7CitBRENFO0FEQ0U7MTEwMCAxMTcxIDExQjU7QURDRTsxMTAwIDExNzEgMTFCNTsKK0FEQ0Y7QURDRjsxMTAwIDExNzEgMTFCNjtBRENGOzExMDAgMTE3MSAxMUI2OworQUREMDtBREQwOzExMDAgMTE3MSAxMUI3O0FERDA7MTEwMCAxMTcxIDExQjc7CitBREQxO0FERDE7MTEwMCAxMTcxIDExQjg7QUREMTsxMTAwIDExNzEgMTFCODsKK0FERDI7QUREMjsxMTAwIDExNzEgMTFCOTtBREQyOzExMDAgMTE3MSAxMUI5OworQUREMztBREQzOzExMDAgMTE3MSAxMUJBO0FERDM7MTEwMCAxMTcxIDExQkE7CitBREQ0O0FERDQ7MTEwMCAxMTcxIDExQkI7QURENDsxMTAwIDExNzEgMTFCQjsKK0FERDU7QURENTsxMTAwIDExNzEgMTFCQztBREQ1OzExMDAgMTE3MSAxMUJDOworQURENjtBREQ2OzExMDAgMTE3MSAxMUJEO0FERDY7MTEwMCAxMTcxIDExQkQ7CitBREQ3O0FERDc7MTEwMCAxMTcxIDExQkU7QURENzsxMTAwIDExNzEgMTFCRTsKK0FERDg7QUREODsxMTAwIDExNzEgMTFCRjtBREQ4OzExMDAgMTE3MSAxMUJGOworQUREOTtBREQ5OzExMDAgMTE3MSAxMUMwO0FERDk7MTEwMCAxMTcxIDExQzA7CitBRERBO0FEREE7MTEwMCAxMTcxIDExQzE7QUREQTsxMTAwIDExNzEgMTFDMTsKK0FEREI7QUREQjsxMTAwIDExNzEgMTFDMjtBRERCOzExMDAgMTE3MSAxMUMyOworQUREQztBRERDOzExMDAgMTE3MjtBRERDOzExMDAgMTE3MjsKK0FEREQ7QURERDsxMTAwIDExNzIgMTFBODtBREREOzExMDAgMTE3MiAxMUE4OworQURERTtBRERFOzExMDAgMTE3MiAxMUE5O0FEREU7MTEwMCAxMTcyIDExQTk7CitBRERGO0FEREY7MTEwMCAxMTcyIDExQUE7QURERjsxMTAwIDExNzIgMTFBQTsKK0FERTA7QURFMDsxMTAwIDExNzIgMTFBQjtBREUwOzExMDAgMTE3MiAxMUFCOworQURFMTtBREUxOzExMDAgMTE3MiAxMUFDO0FERTE7MTEwMCAxMTcyIDExQUM7CitBREUyO0FERTI7MTEwMCAxMTcyIDExQUQ7QURFMjsxMTAwIDExNzIgMTFBRDsKK0FERTM7QURFMzsxMTAwIDExNzIgMTFBRTtBREUzOzExMDAgMTE3MiAxMUFFOworQURFNDtBREU0OzExMDAgMTE3MiAxMUFGO0FERTQ7MTEwMCAxMTcyIDExQUY7CitBREU1O0FERTU7MTEwMCAxMTcyIDExQjA7QURFNTsxMTAwIDExNzIgMTFCMDsKK0FERTY7QURFNjsxMTAwIDExNzIgMTFCMTtBREU2OzExMDAgMTE3MiAxMUIxOworQURFNztBREU3OzExMDAgMTE3MiAxMUIyO0FERTc7MTEwMCAxMTcyIDExQjI7CitBREU4O0FERTg7MTEwMCAxMTcyIDExQjM7QURFODsxMTAwIDExNzIgMTFCMzsKK0FERTk7QURFOTsxMTAwIDExNzIgMTFCNDtBREU5OzExMDAgMTE3MiAxMUI0OworQURFQTtBREVBOzExMDAgMTE3MiAxMUI1O0FERUE7MTEwMCAxMTcyIDExQjU7CitBREVCO0FERUI7MTEwMCAxMTcyIDExQjY7QURFQjsxMTAwIDExNzIgMTFCNjsKK0FERUM7QURFQzsxMTAwIDExNzIgMTFCNztBREVDOzExMDAgMTE3MiAxMUI3OworQURFRDtBREVEOzExMDAgMTE3MiAxMUI4O0FERUQ7MTEwMCAxMTcyIDExQjg7CitBREVFO0FERUU7MTEwMCAxMTcyIDExQjk7QURFRTsxMTAwIDExNzIgMTFCOTsKK0FERUY7QURFRjsxMTAwIDExNzIgMTFCQTtBREVGOzExMDAgMTE3MiAxMUJBOworQURGMDtBREYwOzExMDAgMTE3MiAxMUJCO0FERjA7MTEwMCAxMTcyIDExQkI7CitBREYxO0FERjE7MTEwMCAxMTcyIDExQkM7QURGMTsxMTAwIDExNzIgMTFCQzsKK0FERjI7QURGMjsxMTAwIDExNzIgMTFCRDtBREYyOzExMDAgMTE3MiAxMUJEOworQURGMztBREYzOzExMDAgMTE3MiAxMUJFO0FERjM7MTEwMCAxMTcyIDExQkU7CitBREY0O0FERjQ7MTEwMCAxMTcyIDExQkY7QURGNDsxMTAwIDExNzIgMTFCRjsKK0FERjU7QURGNTsxMTAwIDExNzIgMTFDMDtBREY1OzExMDAgMTE3MiAxMUMwOworQURGNjtBREY2OzExMDAgMTE3MiAxMUMxO0FERjY7MTEwMCAxMTcyIDExQzE7CitBREY3O0FERjc7MTEwMCAxMTcyIDExQzI7QURGNzsxMTAwIDExNzIgMTFDMjsKK0FERjg7QURGODsxMTAwIDExNzM7QURGODsxMTAwIDExNzM7CitBREY5O0FERjk7MTEwMCAxMTczIDExQTg7QURGOTsxMTAwIDExNzMgMTFBODsKK0FERkE7QURGQTsxMTAwIDExNzMgMTFBOTtBREZBOzExMDAgMTE3MyAxMUE5OworQURGQjtBREZCOzExMDAgMTE3MyAxMUFBO0FERkI7MTEwMCAxMTczIDExQUE7CitBREZDO0FERkM7MTEwMCAxMTczIDExQUI7QURGQzsxMTAwIDExNzMgMTFBQjsKK0FERkQ7QURGRDsxMTAwIDExNzMgMTFBQztBREZEOzExMDAgMTE3MyAxMUFDOworQURGRTtBREZFOzExMDAgMTE3MyAxMUFEO0FERkU7MTEwMCAxMTczIDExQUQ7CitBREZGO0FERkY7MTEwMCAxMTczIDExQUU7QURGRjsxMTAwIDExNzMgMTFBRTsKK0FFMDA7QUUwMDsxMTAwIDExNzMgMTFBRjtBRTAwOzExMDAgMTE3MyAxMUFGOworQUUwMTtBRTAxOzExMDAgMTE3MyAxMUIwO0FFMDE7MTEwMCAxMTczIDExQjA7CitBRTAyO0FFMDI7MTEwMCAxMTczIDExQjE7QUUwMjsxMTAwIDExNzMgMTFCMTsKK0FFMDM7QUUwMzsxMTAwIDExNzMgMTFCMjtBRTAzOzExMDAgMTE3MyAxMUIyOworQUUwNDtBRTA0OzExMDAgMTE3MyAxMUIzO0FFMDQ7MTEwMCAxMTczIDExQjM7CitBRTA1O0FFMDU7MTEwMCAxMTczIDExQjQ7QUUwNTsxMTAwIDExNzMgMTFCNDsKK0FFMDY7QUUwNjsxMTAwIDExNzMgMTFCNTtBRTA2OzExMDAgMTE3MyAxMUI1OworQUUwNztBRTA3OzExMDAgMTE3MyAxMUI2O0FFMDc7MTEwMCAxMTczIDExQjY7CitBRTA4O0FFMDg7MTEwMCAxMTczIDExQjc7QUUwODsxMTAwIDExNzMgMTFCNzsKK0FFMDk7QUUwOTsxMTAwIDExNzMgMTFCODtBRTA5OzExMDAgMTE3MyAxMUI4OworQUUwQTtBRTBBOzExMDAgMTE3MyAxMUI5O0FFMEE7MTEwMCAxMTczIDExQjk7CitBRTBCO0FFMEI7MTEwMCAxMTczIDExQkE7QUUwQjsxMTAwIDExNzMgMTFCQTsKK0FFMEM7QUUwQzsxMTAwIDExNzMgMTFCQjtBRTBDOzExMDAgMTE3MyAxMUJCOworQUUwRDtBRTBEOzExMDAgMTE3MyAxMUJDO0FFMEQ7MTEwMCAxMTczIDExQkM7CitBRTBFO0FFMEU7MTEwMCAxMTczIDExQkQ7QUUwRTsxMTAwIDExNzMgMTFCRDsKK0FFMEY7QUUwRjsxMTAwIDExNzMgMTFCRTtBRTBGOzExMDAgMTE3MyAxMUJFOworQUUxMDtBRTEwOzExMDAgMTE3MyAxMUJGO0FFMTA7MTEwMCAxMTczIDExQkY7CitBRTExO0FFMTE7MTEwMCAxMTczIDExQzA7QUUxMTsxMTAwIDExNzMgMTFDMDsKK0FFMTI7QUUxMjsxMTAwIDExNzMgMTFDMTtBRTEyOzExMDAgMTE3MyAxMUMxOworQUUxMztBRTEzOzExMDAgMTE3MyAxMUMyO0FFMTM7MTEwMCAxMTczIDExQzI7CitBRTE0O0FFMTQ7MTEwMCAxMTc0O0FFMTQ7MTEwMCAxMTc0OworQUUxNTtBRTE1OzExMDAgMTE3NCAxMUE4O0FFMTU7MTEwMCAxMTc0IDExQTg7CitBRTE2O0FFMTY7MTEwMCAxMTc0IDExQTk7QUUxNjsxMTAwIDExNzQgMTFBOTsKK0FFMTc7QUUxNzsxMTAwIDExNzQgMTFBQTtBRTE3OzExMDAgMTE3NCAxMUFBOworQUUxODtBRTE4OzExMDAgMTE3NCAxMUFCO0FFMTg7MTEwMCAxMTc0IDExQUI7CitBRTE5O0FFMTk7MTEwMCAxMTc0IDExQUM7QUUxOTsxMTAwIDExNzQgMTFBQzsKK0FFMUE7QUUxQTsxMTAwIDExNzQgMTFBRDtBRTFBOzExMDAgMTE3NCAxMUFEOworQUUxQjtBRTFCOzExMDAgMTE3NCAxMUFFO0FFMUI7MTEwMCAxMTc0IDExQUU7CitBRTFDO0FFMUM7MTEwMCAxMTc0IDExQUY7QUUxQzsxMTAwIDExNzQgMTFBRjsKK0FFMUQ7QUUxRDsxMTAwIDExNzQgMTFCMDtBRTFEOzExMDAgMTE3NCAxMUIwOworQUUxRTtBRTFFOzExMDAgMTE3NCAxMUIxO0FFMUU7MTEwMCAxMTc0IDExQjE7CitBRTFGO0FFMUY7MTEwMCAxMTc0IDExQjI7QUUxRjsxMTAwIDExNzQgMTFCMjsKK0FFMjA7QUUyMDsxMTAwIDExNzQgMTFCMztBRTIwOzExMDAgMTE3NCAxMUIzOworQUUyMTtBRTIxOzExMDAgMTE3NCAxMUI0O0FFMjE7MTEwMCAxMTc0IDExQjQ7CitBRTIyO0FFMjI7MTEwMCAxMTc0IDExQjU7QUUyMjsxMTAwIDExNzQgMTFCNTsKK0FFMjM7QUUyMzsxMTAwIDExNzQgMTFCNjtBRTIzOzExMDAgMTE3NCAxMUI2OworQUUyNDtBRTI0OzExMDAgMTE3NCAxMUI3O0FFMjQ7MTEwMCAxMTc0IDExQjc7CitBRTI1O0FFMjU7MTEwMCAxMTc0IDExQjg7QUUyNTsxMTAwIDExNzQgMTFCODsKK0FFMjY7QUUyNjsxMTAwIDExNzQgMTFCOTtBRTI2OzExMDAgMTE3NCAxMUI5OworQUUyNztBRTI3OzExMDAgMTE3NCAxMUJBO0FFMjc7MTEwMCAxMTc0IDExQkE7CitBRTI4O0FFMjg7MTEwMCAxMTc0IDExQkI7QUUyODsxMTAwIDExNzQgMTFCQjsKK0FFMjk7QUUyOTsxMTAwIDExNzQgMTFCQztBRTI5OzExMDAgMTE3NCAxMUJDOworQUUyQTtBRTJBOzExMDAgMTE3NCAxMUJEO0FFMkE7MTEwMCAxMTc0IDExQkQ7CitBRTJCO0FFMkI7MTEwMCAxMTc0IDExQkU7QUUyQjsxMTAwIDExNzQgMTFCRTsKK0FFMkM7QUUyQzsxMTAwIDExNzQgMTFCRjtBRTJDOzExMDAgMTE3NCAxMUJGOworQUUyRDtBRTJEOzExMDAgMTE3NCAxMUMwO0FFMkQ7MTEwMCAxMTc0IDExQzA7CitBRTJFO0FFMkU7MTEwMCAxMTc0IDExQzE7QUUyRTsxMTAwIDExNzQgMTFDMTsKK0FFMkY7QUUyRjsxMTAwIDExNzQgMTFDMjtBRTJGOzExMDAgMTE3NCAxMUMyOworQUUzMDtBRTMwOzExMDAgMTE3NTtBRTMwOzExMDAgMTE3NTsKK0FFMzE7QUUzMTsxMTAwIDExNzUgMTFBODtBRTMxOzExMDAgMTE3NSAxMUE4OworQUUzMjtBRTMyOzExMDAgMTE3NSAxMUE5O0FFMzI7MTEwMCAxMTc1IDExQTk7CitBRTMzO0FFMzM7MTEwMCAxMTc1IDExQUE7QUUzMzsxMTAwIDExNzUgMTFBQTsKK0FFMzQ7QUUzNDsxMTAwIDExNzUgMTFBQjtBRTM0OzExMDAgMTE3NSAxMUFCOworQUUzNTtBRTM1OzExMDAgMTE3NSAxMUFDO0FFMzU7MTEwMCAxMTc1IDExQUM7CitBRTM2O0FFMzY7MTEwMCAxMTc1IDExQUQ7QUUzNjsxMTAwIDExNzUgMTFBRDsKK0FFMzc7QUUzNzsxMTAwIDExNzUgMTFBRTtBRTM3OzExMDAgMTE3NSAxMUFFOworQUUzODtBRTM4OzExMDAgMTE3NSAxMUFGO0FFMzg7MTEwMCAxMTc1IDExQUY7CitBRTM5O0FFMzk7MTEwMCAxMTc1IDExQjA7QUUzOTsxMTAwIDExNzUgMTFCMDsKK0FFM0E7QUUzQTsxMTAwIDExNzUgMTFCMTtBRTNBOzExMDAgMTE3NSAxMUIxOworQUUzQjtBRTNCOzExMDAgMTE3NSAxMUIyO0FFM0I7MTEwMCAxMTc1IDExQjI7CitBRTNDO0FFM0M7MTEwMCAxMTc1IDExQjM7QUUzQzsxMTAwIDExNzUgMTFCMzsKK0FFM0Q7QUUzRDsxMTAwIDExNzUgMTFCNDtBRTNEOzExMDAgMTE3NSAxMUI0OworQUUzRTtBRTNFOzExMDAgMTE3NSAxMUI1O0FFM0U7MTEwMCAxMTc1IDExQjU7CitBRTNGO0FFM0Y7MTEwMCAxMTc1IDExQjY7QUUzRjsxMTAwIDExNzUgMTFCNjsKK0FFNDA7QUU0MDsxMTAwIDExNzUgMTFCNztBRTQwOzExMDAgMTE3NSAxMUI3OworQUU0MTtBRTQxOzExMDAgMTE3NSAxMUI4O0FFNDE7MTEwMCAxMTc1IDExQjg7CitBRTQyO0FFNDI7MTEwMCAxMTc1IDExQjk7QUU0MjsxMTAwIDExNzUgMTFCOTsKK0FFNDM7QUU0MzsxMTAwIDExNzUgMTFCQTtBRTQzOzExMDAgMTE3NSAxMUJBOworQUU0NDtBRTQ0OzExMDAgMTE3NSAxMUJCO0FFNDQ7MTEwMCAxMTc1IDExQkI7CitBRTQ1O0FFNDU7MTEwMCAxMTc1IDExQkM7QUU0NTsxMTAwIDExNzUgMTFCQzsKK0FFNDY7QUU0NjsxMTAwIDExNzUgMTFCRDtBRTQ2OzExMDAgMTE3NSAxMUJEOworQUU0NztBRTQ3OzExMDAgMTE3NSAxMUJFO0FFNDc7MTEwMCAxMTc1IDExQkU7CitBRTQ4O0FFNDg7MTEwMCAxMTc1IDExQkY7QUU0ODsxMTAwIDExNzUgMTFCRjsKK0FFNDk7QUU0OTsxMTAwIDExNzUgMTFDMDtBRTQ5OzExMDAgMTE3NSAxMUMwOworQUU0QTtBRTRBOzExMDAgMTE3NSAxMUMxO0FFNEE7MTEwMCAxMTc1IDExQzE7CitBRTRCO0FFNEI7MTEwMCAxMTc1IDExQzI7QUU0QjsxMTAwIDExNzUgMTFDMjsKK0FFNEM7QUU0QzsxMTAxIDExNjE7QUU0QzsxMTAxIDExNjE7CitBRTREO0FFNEQ7MTEwMSAxMTYxIDExQTg7QUU0RDsxMTAxIDExNjEgMTFBODsKK0FFNEU7QUU0RTsxMTAxIDExNjEgMTFBOTtBRTRFOzExMDEgMTE2MSAxMUE5OworQUU0RjtBRTRGOzExMDEgMTE2MSAxMUFBO0FFNEY7MTEwMSAxMTYxIDExQUE7CitBRTUwO0FFNTA7MTEwMSAxMTYxIDExQUI7QUU1MDsxMTAxIDExNjEgMTFBQjsKK0FFNTE7QUU1MTsxMTAxIDExNjEgMTFBQztBRTUxOzExMDEgMTE2MSAxMUFDOworQUU1MjtBRTUyOzExMDEgMTE2MSAxMUFEO0FFNTI7MTEwMSAxMTYxIDExQUQ7CitBRTUzO0FFNTM7MTEwMSAxMTYxIDExQUU7QUU1MzsxMTAxIDExNjEgMTFBRTsKK0FFNTQ7QUU1NDsxMTAxIDExNjEgMTFBRjtBRTU0OzExMDEgMTE2MSAxMUFGOworQUU1NTtBRTU1OzExMDEgMTE2MSAxMUIwO0FFNTU7MTEwMSAxMTYxIDExQjA7CitBRTU2O0FFNTY7MTEwMSAxMTYxIDExQjE7QUU1NjsxMTAxIDExNjEgMTFCMTsKK0FFNTc7QUU1NzsxMTAxIDExNjEgMTFCMjtBRTU3OzExMDEgMTE2MSAxMUIyOworQUU1ODtBRTU4OzExMDEgMTE2MSAxMUIzO0FFNTg7MTEwMSAxMTYxIDExQjM7CitBRTU5O0FFNTk7MTEwMSAxMTYxIDExQjQ7QUU1OTsxMTAxIDExNjEgMTFCNDsKK0FFNUE7QUU1QTsxMTAxIDExNjEgMTFCNTtBRTVBOzExMDEgMTE2MSAxMUI1OworQUU1QjtBRTVCOzExMDEgMTE2MSAxMUI2O0FFNUI7MTEwMSAxMTYxIDExQjY7CitBRTVDO0FFNUM7MTEwMSAxMTYxIDExQjc7QUU1QzsxMTAxIDExNjEgMTFCNzsKK0FFNUQ7QUU1RDsxMTAxIDExNjEgMTFCODtBRTVEOzExMDEgMTE2MSAxMUI4OworQUU1RTtBRTVFOzExMDEgMTE2MSAxMUI5O0FFNUU7MTEwMSAxMTYxIDExQjk7CitBRTVGO0FFNUY7MTEwMSAxMTYxIDExQkE7QUU1RjsxMTAxIDExNjEgMTFCQTsKK0FFNjA7QUU2MDsxMTAxIDExNjEgMTFCQjtBRTYwOzExMDEgMTE2MSAxMUJCOworQUU2MTtBRTYxOzExMDEgMTE2MSAxMUJDO0FFNjE7MTEwMSAxMTYxIDExQkM7CitBRTYyO0FFNjI7MTEwMSAxMTYxIDExQkQ7QUU2MjsxMTAxIDExNjEgMTFCRDsKK0FFNjM7QUU2MzsxMTAxIDExNjEgMTFCRTtBRTYzOzExMDEgMTE2MSAxMUJFOworQUU2NDtBRTY0OzExMDEgMTE2MSAxMUJGO0FFNjQ7MTEwMSAxMTYxIDExQkY7CitBRTY1O0FFNjU7MTEwMSAxMTYxIDExQzA7QUU2NTsxMTAxIDExNjEgMTFDMDsKK0FFNjY7QUU2NjsxMTAxIDExNjEgMTFDMTtBRTY2OzExMDEgMTE2MSAxMUMxOworQUU2NztBRTY3OzExMDEgMTE2MSAxMUMyO0FFNjc7MTEwMSAxMTYxIDExQzI7CitBRTY4O0FFNjg7MTEwMSAxMTYyO0FFNjg7MTEwMSAxMTYyOworQUU2OTtBRTY5OzExMDEgMTE2MiAxMUE4O0FFNjk7MTEwMSAxMTYyIDExQTg7CitBRTZBO0FFNkE7MTEwMSAxMTYyIDExQTk7QUU2QTsxMTAxIDExNjIgMTFBOTsKK0FFNkI7QUU2QjsxMTAxIDExNjIgMTFBQTtBRTZCOzExMDEgMTE2MiAxMUFBOworQUU2QztBRTZDOzExMDEgMTE2MiAxMUFCO0FFNkM7MTEwMSAxMTYyIDExQUI7CitBRTZEO0FFNkQ7MTEwMSAxMTYyIDExQUM7QUU2RDsxMTAxIDExNjIgMTFBQzsKK0FFNkU7QUU2RTsxMTAxIDExNjIgMTFBRDtBRTZFOzExMDEgMTE2MiAxMUFEOworQUU2RjtBRTZGOzExMDEgMTE2MiAxMUFFO0FFNkY7MTEwMSAxMTYyIDExQUU7CitBRTcwO0FFNzA7MTEwMSAxMTYyIDExQUY7QUU3MDsxMTAxIDExNjIgMTFBRjsKK0FFNzE7QUU3MTsxMTAxIDExNjIgMTFCMDtBRTcxOzExMDEgMTE2MiAxMUIwOworQUU3MjtBRTcyOzExMDEgMTE2MiAxMUIxO0FFNzI7MTEwMSAxMTYyIDExQjE7CitBRTczO0FFNzM7MTEwMSAxMTYyIDExQjI7QUU3MzsxMTAxIDExNjIgMTFCMjsKK0FFNzQ7QUU3NDsxMTAxIDExNjIgMTFCMztBRTc0OzExMDEgMTE2MiAxMUIzOworQUU3NTtBRTc1OzExMDEgMTE2MiAxMUI0O0FFNzU7MTEwMSAxMTYyIDExQjQ7CitBRTc2O0FFNzY7MTEwMSAxMTYyIDExQjU7QUU3NjsxMTAxIDExNjIgMTFCNTsKK0FFNzc7QUU3NzsxMTAxIDExNjIgMTFCNjtBRTc3OzExMDEgMTE2MiAxMUI2OworQUU3ODtBRTc4OzExMDEgMTE2MiAxMUI3O0FFNzg7MTEwMSAxMTYyIDExQjc7CitBRTc5O0FFNzk7MTEwMSAxMTYyIDExQjg7QUU3OTsxMTAxIDExNjIgMTFCODsKK0FFN0E7QUU3QTsxMTAxIDExNjIgMTFCOTtBRTdBOzExMDEgMTE2MiAxMUI5OworQUU3QjtBRTdCOzExMDEgMTE2MiAxMUJBO0FFN0I7MTEwMSAxMTYyIDExQkE7CitBRTdDO0FFN0M7MTEwMSAxMTYyIDExQkI7QUU3QzsxMTAxIDExNjIgMTFCQjsKK0FFN0Q7QUU3RDsxMTAxIDExNjIgMTFCQztBRTdEOzExMDEgMTE2MiAxMUJDOworQUU3RTtBRTdFOzExMDEgMTE2MiAxMUJEO0FFN0U7MTEwMSAxMTYyIDExQkQ7CitBRTdGO0FFN0Y7MTEwMSAxMTYyIDExQkU7QUU3RjsxMTAxIDExNjIgMTFCRTsKK0FFODA7QUU4MDsxMTAxIDExNjIgMTFCRjtBRTgwOzExMDEgMTE2MiAxMUJGOworQUU4MTtBRTgxOzExMDEgMTE2MiAxMUMwO0FFODE7MTEwMSAxMTYyIDExQzA7CitBRTgyO0FFODI7MTEwMSAxMTYyIDExQzE7QUU4MjsxMTAxIDExNjIgMTFDMTsKK0FFODM7QUU4MzsxMTAxIDExNjIgMTFDMjtBRTgzOzExMDEgMTE2MiAxMUMyOworQUU4NDtBRTg0OzExMDEgMTE2MztBRTg0OzExMDEgMTE2MzsKK0FFODU7QUU4NTsxMTAxIDExNjMgMTFBODtBRTg1OzExMDEgMTE2MyAxMUE4OworQUU4NjtBRTg2OzExMDEgMTE2MyAxMUE5O0FFODY7MTEwMSAxMTYzIDExQTk7CitBRTg3O0FFODc7MTEwMSAxMTYzIDExQUE7QUU4NzsxMTAxIDExNjMgMTFBQTsKK0FFODg7QUU4ODsxMTAxIDExNjMgMTFBQjtBRTg4OzExMDEgMTE2MyAxMUFCOworQUU4OTtBRTg5OzExMDEgMTE2MyAxMUFDO0FFODk7MTEwMSAxMTYzIDExQUM7CitBRThBO0FFOEE7MTEwMSAxMTYzIDExQUQ7QUU4QTsxMTAxIDExNjMgMTFBRDsKK0FFOEI7QUU4QjsxMTAxIDExNjMgMTFBRTtBRThCOzExMDEgMTE2MyAxMUFFOworQUU4QztBRThDOzExMDEgMTE2MyAxMUFGO0FFOEM7MTEwMSAxMTYzIDExQUY7CitBRThEO0FFOEQ7MTEwMSAxMTYzIDExQjA7QUU4RDsxMTAxIDExNjMgMTFCMDsKK0FFOEU7QUU4RTsxMTAxIDExNjMgMTFCMTtBRThFOzExMDEgMTE2MyAxMUIxOworQUU4RjtBRThGOzExMDEgMTE2MyAxMUIyO0FFOEY7MTEwMSAxMTYzIDExQjI7CitBRTkwO0FFOTA7MTEwMSAxMTYzIDExQjM7QUU5MDsxMTAxIDExNjMgMTFCMzsKK0FFOTE7QUU5MTsxMTAxIDExNjMgMTFCNDtBRTkxOzExMDEgMTE2MyAxMUI0OworQUU5MjtBRTkyOzExMDEgMTE2MyAxMUI1O0FFOTI7MTEwMSAxMTYzIDExQjU7CitBRTkzO0FFOTM7MTEwMSAxMTYzIDExQjY7QUU5MzsxMTAxIDExNjMgMTFCNjsKK0FFOTQ7QUU5NDsxMTAxIDExNjMgMTFCNztBRTk0OzExMDEgMTE2MyAxMUI3OworQUU5NTtBRTk1OzExMDEgMTE2MyAxMUI4O0FFOTU7MTEwMSAxMTYzIDExQjg7CitBRTk2O0FFOTY7MTEwMSAxMTYzIDExQjk7QUU5NjsxMTAxIDExNjMgMTFCOTsKK0FFOTc7QUU5NzsxMTAxIDExNjMgMTFCQTtBRTk3OzExMDEgMTE2MyAxMUJBOworQUU5ODtBRTk4OzExMDEgMTE2MyAxMUJCO0FFOTg7MTEwMSAxMTYzIDExQkI7CitBRTk5O0FFOTk7MTEwMSAxMTYzIDExQkM7QUU5OTsxMTAxIDExNjMgMTFCQzsKK0FFOUE7QUU5QTsxMTAxIDExNjMgMTFCRDtBRTlBOzExMDEgMTE2MyAxMUJEOworQUU5QjtBRTlCOzExMDEgMTE2MyAxMUJFO0FFOUI7MTEwMSAxMTYzIDExQkU7CitBRTlDO0FFOUM7MTEwMSAxMTYzIDExQkY7QUU5QzsxMTAxIDExNjMgMTFCRjsKK0FFOUQ7QUU5RDsxMTAxIDExNjMgMTFDMDtBRTlEOzExMDEgMTE2MyAxMUMwOworQUU5RTtBRTlFOzExMDEgMTE2MyAxMUMxO0FFOUU7MTEwMSAxMTYzIDExQzE7CitBRTlGO0FFOUY7MTEwMSAxMTYzIDExQzI7QUU5RjsxMTAxIDExNjMgMTFDMjsKK0FFQTA7QUVBMDsxMTAxIDExNjQ7QUVBMDsxMTAxIDExNjQ7CitBRUExO0FFQTE7MTEwMSAxMTY0IDExQTg7QUVBMTsxMTAxIDExNjQgMTFBODsKK0FFQTI7QUVBMjsxMTAxIDExNjQgMTFBOTtBRUEyOzExMDEgMTE2NCAxMUE5OworQUVBMztBRUEzOzExMDEgMTE2NCAxMUFBO0FFQTM7MTEwMSAxMTY0IDExQUE7CitBRUE0O0FFQTQ7MTEwMSAxMTY0IDExQUI7QUVBNDsxMTAxIDExNjQgMTFBQjsKK0FFQTU7QUVBNTsxMTAxIDExNjQgMTFBQztBRUE1OzExMDEgMTE2NCAxMUFDOworQUVBNjtBRUE2OzExMDEgMTE2NCAxMUFEO0FFQTY7MTEwMSAxMTY0IDExQUQ7CitBRUE3O0FFQTc7MTEwMSAxMTY0IDExQUU7QUVBNzsxMTAxIDExNjQgMTFBRTsKK0FFQTg7QUVBODsxMTAxIDExNjQgMTFBRjtBRUE4OzExMDEgMTE2NCAxMUFGOworQUVBOTtBRUE5OzExMDEgMTE2NCAxMUIwO0FFQTk7MTEwMSAxMTY0IDExQjA7CitBRUFBO0FFQUE7MTEwMSAxMTY0IDExQjE7QUVBQTsxMTAxIDExNjQgMTFCMTsKK0FFQUI7QUVBQjsxMTAxIDExNjQgMTFCMjtBRUFCOzExMDEgMTE2NCAxMUIyOworQUVBQztBRUFDOzExMDEgMTE2NCAxMUIzO0FFQUM7MTEwMSAxMTY0IDExQjM7CitBRUFEO0FFQUQ7MTEwMSAxMTY0IDExQjQ7QUVBRDsxMTAxIDExNjQgMTFCNDsKK0FFQUU7QUVBRTsxMTAxIDExNjQgMTFCNTtBRUFFOzExMDEgMTE2NCAxMUI1OworQUVBRjtBRUFGOzExMDEgMTE2NCAxMUI2O0FFQUY7MTEwMSAxMTY0IDExQjY7CitBRUIwO0FFQjA7MTEwMSAxMTY0IDExQjc7QUVCMDsxMTAxIDExNjQgMTFCNzsKK0FFQjE7QUVCMTsxMTAxIDExNjQgMTFCODtBRUIxOzExMDEgMTE2NCAxMUI4OworQUVCMjtBRUIyOzExMDEgMTE2NCAxMUI5O0FFQjI7MTEwMSAxMTY0IDExQjk7CitBRUIzO0FFQjM7MTEwMSAxMTY0IDExQkE7QUVCMzsxMTAxIDExNjQgMTFCQTsKK0FFQjQ7QUVCNDsxMTAxIDExNjQgMTFCQjtBRUI0OzExMDEgMTE2NCAxMUJCOworQUVCNTtBRUI1OzExMDEgMTE2NCAxMUJDO0FFQjU7MTEwMSAxMTY0IDExQkM7CitBRUI2O0FFQjY7MTEwMSAxMTY0IDExQkQ7QUVCNjsxMTAxIDExNjQgMTFCRDsKK0FFQjc7QUVCNzsxMTAxIDExNjQgMTFCRTtBRUI3OzExMDEgMTE2NCAxMUJFOworQUVCODtBRUI4OzExMDEgMTE2NCAxMUJGO0FFQjg7MTEwMSAxMTY0IDExQkY7CitBRUI5O0FFQjk7MTEwMSAxMTY0IDExQzA7QUVCOTsxMTAxIDExNjQgMTFDMDsKK0FFQkE7QUVCQTsxMTAxIDExNjQgMTFDMTtBRUJBOzExMDEgMTE2NCAxMUMxOworQUVCQjtBRUJCOzExMDEgMTE2NCAxMUMyO0FFQkI7MTEwMSAxMTY0IDExQzI7CitBRUJDO0FFQkM7MTEwMSAxMTY1O0FFQkM7MTEwMSAxMTY1OworQUVCRDtBRUJEOzExMDEgMTE2NSAxMUE4O0FFQkQ7MTEwMSAxMTY1IDExQTg7CitBRUJFO0FFQkU7MTEwMSAxMTY1IDExQTk7QUVCRTsxMTAxIDExNjUgMTFBOTsKK0FFQkY7QUVCRjsxMTAxIDExNjUgMTFBQTtBRUJGOzExMDEgMTE2NSAxMUFBOworQUVDMDtBRUMwOzExMDEgMTE2NSAxMUFCO0FFQzA7MTEwMSAxMTY1IDExQUI7CitBRUMxO0FFQzE7MTEwMSAxMTY1IDExQUM7QUVDMTsxMTAxIDExNjUgMTFBQzsKK0FFQzI7QUVDMjsxMTAxIDExNjUgMTFBRDtBRUMyOzExMDEgMTE2NSAxMUFEOworQUVDMztBRUMzOzExMDEgMTE2NSAxMUFFO0FFQzM7MTEwMSAxMTY1IDExQUU7CitBRUM0O0FFQzQ7MTEwMSAxMTY1IDExQUY7QUVDNDsxMTAxIDExNjUgMTFBRjsKK0FFQzU7QUVDNTsxMTAxIDExNjUgMTFCMDtBRUM1OzExMDEgMTE2NSAxMUIwOworQUVDNjtBRUM2OzExMDEgMTE2NSAxMUIxO0FFQzY7MTEwMSAxMTY1IDExQjE7CitBRUM3O0FFQzc7MTEwMSAxMTY1IDExQjI7QUVDNzsxMTAxIDExNjUgMTFCMjsKK0FFQzg7QUVDODsxMTAxIDExNjUgMTFCMztBRUM4OzExMDEgMTE2NSAxMUIzOworQUVDOTtBRUM5OzExMDEgMTE2NSAxMUI0O0FFQzk7MTEwMSAxMTY1IDExQjQ7CitBRUNBO0FFQ0E7MTEwMSAxMTY1IDExQjU7QUVDQTsxMTAxIDExNjUgMTFCNTsKK0FFQ0I7QUVDQjsxMTAxIDExNjUgMTFCNjtBRUNCOzExMDEgMTE2NSAxMUI2OworQUVDQztBRUNDOzExMDEgMTE2NSAxMUI3O0FFQ0M7MTEwMSAxMTY1IDExQjc7CitBRUNEO0FFQ0Q7MTEwMSAxMTY1IDExQjg7QUVDRDsxMTAxIDExNjUgMTFCODsKK0FFQ0U7QUVDRTsxMTAxIDExNjUgMTFCOTtBRUNFOzExMDEgMTE2NSAxMUI5OworQUVDRjtBRUNGOzExMDEgMTE2NSAxMUJBO0FFQ0Y7MTEwMSAxMTY1IDExQkE7CitBRUQwO0FFRDA7MTEwMSAxMTY1IDExQkI7QUVEMDsxMTAxIDExNjUgMTFCQjsKK0FFRDE7QUVEMTsxMTAxIDExNjUgMTFCQztBRUQxOzExMDEgMTE2NSAxMUJDOworQUVEMjtBRUQyOzExMDEgMTE2NSAxMUJEO0FFRDI7MTEwMSAxMTY1IDExQkQ7CitBRUQzO0FFRDM7MTEwMSAxMTY1IDExQkU7QUVEMzsxMTAxIDExNjUgMTFCRTsKK0FFRDQ7QUVENDsxMTAxIDExNjUgMTFCRjtBRUQ0OzExMDEgMTE2NSAxMUJGOworQUVENTtBRUQ1OzExMDEgMTE2NSAxMUMwO0FFRDU7MTEwMSAxMTY1IDExQzA7CitBRUQ2O0FFRDY7MTEwMSAxMTY1IDExQzE7QUVENjsxMTAxIDExNjUgMTFDMTsKK0FFRDc7QUVENzsxMTAxIDExNjUgMTFDMjtBRUQ3OzExMDEgMTE2NSAxMUMyOworQUVEODtBRUQ4OzExMDEgMTE2NjtBRUQ4OzExMDEgMTE2NjsKK0FFRDk7QUVEOTsxMTAxIDExNjYgMTFBODtBRUQ5OzExMDEgMTE2NiAxMUE4OworQUVEQTtBRURBOzExMDEgMTE2NiAxMUE5O0FFREE7MTEwMSAxMTY2IDExQTk7CitBRURCO0FFREI7MTEwMSAxMTY2IDExQUE7QUVEQjsxMTAxIDExNjYgMTFBQTsKK0FFREM7QUVEQzsxMTAxIDExNjYgMTFBQjtBRURDOzExMDEgMTE2NiAxMUFCOworQUVERDtBRUREOzExMDEgMTE2NiAxMUFDO0FFREQ7MTEwMSAxMTY2IDExQUM7CitBRURFO0FFREU7MTEwMSAxMTY2IDExQUQ7QUVERTsxMTAxIDExNjYgMTFBRDsKK0FFREY7QUVERjsxMTAxIDExNjYgMTFBRTtBRURGOzExMDEgMTE2NiAxMUFFOworQUVFMDtBRUUwOzExMDEgMTE2NiAxMUFGO0FFRTA7MTEwMSAxMTY2IDExQUY7CitBRUUxO0FFRTE7MTEwMSAxMTY2IDExQjA7QUVFMTsxMTAxIDExNjYgMTFCMDsKK0FFRTI7QUVFMjsxMTAxIDExNjYgMTFCMTtBRUUyOzExMDEgMTE2NiAxMUIxOworQUVFMztBRUUzOzExMDEgMTE2NiAxMUIyO0FFRTM7MTEwMSAxMTY2IDExQjI7CitBRUU0O0FFRTQ7MTEwMSAxMTY2IDExQjM7QUVFNDsxMTAxIDExNjYgMTFCMzsKK0FFRTU7QUVFNTsxMTAxIDExNjYgMTFCNDtBRUU1OzExMDEgMTE2NiAxMUI0OworQUVFNjtBRUU2OzExMDEgMTE2NiAxMUI1O0FFRTY7MTEwMSAxMTY2IDExQjU7CitBRUU3O0FFRTc7MTEwMSAxMTY2IDExQjY7QUVFNzsxMTAxIDExNjYgMTFCNjsKK0FFRTg7QUVFODsxMTAxIDExNjYgMTFCNztBRUU4OzExMDEgMTE2NiAxMUI3OworQUVFOTtBRUU5OzExMDEgMTE2NiAxMUI4O0FFRTk7MTEwMSAxMTY2IDExQjg7CitBRUVBO0FFRUE7MTEwMSAxMTY2IDExQjk7QUVFQTsxMTAxIDExNjYgMTFCOTsKK0FFRUI7QUVFQjsxMTAxIDExNjYgMTFCQTtBRUVCOzExMDEgMTE2NiAxMUJBOworQUVFQztBRUVDOzExMDEgMTE2NiAxMUJCO0FFRUM7MTEwMSAxMTY2IDExQkI7CitBRUVEO0FFRUQ7MTEwMSAxMTY2IDExQkM7QUVFRDsxMTAxIDExNjYgMTFCQzsKK0FFRUU7QUVFRTsxMTAxIDExNjYgMTFCRDtBRUVFOzExMDEgMTE2NiAxMUJEOworQUVFRjtBRUVGOzExMDEgMTE2NiAxMUJFO0FFRUY7MTEwMSAxMTY2IDExQkU7CitBRUYwO0FFRjA7MTEwMSAxMTY2IDExQkY7QUVGMDsxMTAxIDExNjYgMTFCRjsKK0FFRjE7QUVGMTsxMTAxIDExNjYgMTFDMDtBRUYxOzExMDEgMTE2NiAxMUMwOworQUVGMjtBRUYyOzExMDEgMTE2NiAxMUMxO0FFRjI7MTEwMSAxMTY2IDExQzE7CitBRUYzO0FFRjM7MTEwMSAxMTY2IDExQzI7QUVGMzsxMTAxIDExNjYgMTFDMjsKK0FFRjQ7QUVGNDsxMTAxIDExNjc7QUVGNDsxMTAxIDExNjc7CitBRUY1O0FFRjU7MTEwMSAxMTY3IDExQTg7QUVGNTsxMTAxIDExNjcgMTFBODsKK0FFRjY7QUVGNjsxMTAxIDExNjcgMTFBOTtBRUY2OzExMDEgMTE2NyAxMUE5OworQUVGNztBRUY3OzExMDEgMTE2NyAxMUFBO0FFRjc7MTEwMSAxMTY3IDExQUE7CitBRUY4O0FFRjg7MTEwMSAxMTY3IDExQUI7QUVGODsxMTAxIDExNjcgMTFBQjsKK0FFRjk7QUVGOTsxMTAxIDExNjcgMTFBQztBRUY5OzExMDEgMTE2NyAxMUFDOworQUVGQTtBRUZBOzExMDEgMTE2NyAxMUFEO0FFRkE7MTEwMSAxMTY3IDExQUQ7CitBRUZCO0FFRkI7MTEwMSAxMTY3IDExQUU7QUVGQjsxMTAxIDExNjcgMTFBRTsKK0FFRkM7QUVGQzsxMTAxIDExNjcgMTFBRjtBRUZDOzExMDEgMTE2NyAxMUFGOworQUVGRDtBRUZEOzExMDEgMTE2NyAxMUIwO0FFRkQ7MTEwMSAxMTY3IDExQjA7CitBRUZFO0FFRkU7MTEwMSAxMTY3IDExQjE7QUVGRTsxMTAxIDExNjcgMTFCMTsKK0FFRkY7QUVGRjsxMTAxIDExNjcgMTFCMjtBRUZGOzExMDEgMTE2NyAxMUIyOworQUYwMDtBRjAwOzExMDEgMTE2NyAxMUIzO0FGMDA7MTEwMSAxMTY3IDExQjM7CitBRjAxO0FGMDE7MTEwMSAxMTY3IDExQjQ7QUYwMTsxMTAxIDExNjcgMTFCNDsKK0FGMDI7QUYwMjsxMTAxIDExNjcgMTFCNTtBRjAyOzExMDEgMTE2NyAxMUI1OworQUYwMztBRjAzOzExMDEgMTE2NyAxMUI2O0FGMDM7MTEwMSAxMTY3IDExQjY7CitBRjA0O0FGMDQ7MTEwMSAxMTY3IDExQjc7QUYwNDsxMTAxIDExNjcgMTFCNzsKK0FGMDU7QUYwNTsxMTAxIDExNjcgMTFCODtBRjA1OzExMDEgMTE2NyAxMUI4OworQUYwNjtBRjA2OzExMDEgMTE2NyAxMUI5O0FGMDY7MTEwMSAxMTY3IDExQjk7CitBRjA3O0FGMDc7MTEwMSAxMTY3IDExQkE7QUYwNzsxMTAxIDExNjcgMTFCQTsKK0FGMDg7QUYwODsxMTAxIDExNjcgMTFCQjtBRjA4OzExMDEgMTE2NyAxMUJCOworQUYwOTtBRjA5OzExMDEgMTE2NyAxMUJDO0FGMDk7MTEwMSAxMTY3IDExQkM7CitBRjBBO0FGMEE7MTEwMSAxMTY3IDExQkQ7QUYwQTsxMTAxIDExNjcgMTFCRDsKK0FGMEI7QUYwQjsxMTAxIDExNjcgMTFCRTtBRjBCOzExMDEgMTE2NyAxMUJFOworQUYwQztBRjBDOzExMDEgMTE2NyAxMUJGO0FGMEM7MTEwMSAxMTY3IDExQkY7CitBRjBEO0FGMEQ7MTEwMSAxMTY3IDExQzA7QUYwRDsxMTAxIDExNjcgMTFDMDsKK0FGMEU7QUYwRTsxMTAxIDExNjcgMTFDMTtBRjBFOzExMDEgMTE2NyAxMUMxOworQUYwRjtBRjBGOzExMDEgMTE2NyAxMUMyO0FGMEY7MTEwMSAxMTY3IDExQzI7CitBRjEwO0FGMTA7MTEwMSAxMTY4O0FGMTA7MTEwMSAxMTY4OworQUYxMTtBRjExOzExMDEgMTE2OCAxMUE4O0FGMTE7MTEwMSAxMTY4IDExQTg7CitBRjEyO0FGMTI7MTEwMSAxMTY4IDExQTk7QUYxMjsxMTAxIDExNjggMTFBOTsKK0FGMTM7QUYxMzsxMTAxIDExNjggMTFBQTtBRjEzOzExMDEgMTE2OCAxMUFBOworQUYxNDtBRjE0OzExMDEgMTE2OCAxMUFCO0FGMTQ7MTEwMSAxMTY4IDExQUI7CitBRjE1O0FGMTU7MTEwMSAxMTY4IDExQUM7QUYxNTsxMTAxIDExNjggMTFBQzsKK0FGMTY7QUYxNjsxMTAxIDExNjggMTFBRDtBRjE2OzExMDEgMTE2OCAxMUFEOworQUYxNztBRjE3OzExMDEgMTE2OCAxMUFFO0FGMTc7MTEwMSAxMTY4IDExQUU7CitBRjE4O0FGMTg7MTEwMSAxMTY4IDExQUY7QUYxODsxMTAxIDExNjggMTFBRjsKK0FGMTk7QUYxOTsxMTAxIDExNjggMTFCMDtBRjE5OzExMDEgMTE2OCAxMUIwOworQUYxQTtBRjFBOzExMDEgMTE2OCAxMUIxO0FGMUE7MTEwMSAxMTY4IDExQjE7CitBRjFCO0FGMUI7MTEwMSAxMTY4IDExQjI7QUYxQjsxMTAxIDExNjggMTFCMjsKK0FGMUM7QUYxQzsxMTAxIDExNjggMTFCMztBRjFDOzExMDEgMTE2OCAxMUIzOworQUYxRDtBRjFEOzExMDEgMTE2OCAxMUI0O0FGMUQ7MTEwMSAxMTY4IDExQjQ7CitBRjFFO0FGMUU7MTEwMSAxMTY4IDExQjU7QUYxRTsxMTAxIDExNjggMTFCNTsKK0FGMUY7QUYxRjsxMTAxIDExNjggMTFCNjtBRjFGOzExMDEgMTE2OCAxMUI2OworQUYyMDtBRjIwOzExMDEgMTE2OCAxMUI3O0FGMjA7MTEwMSAxMTY4IDExQjc7CitBRjIxO0FGMjE7MTEwMSAxMTY4IDExQjg7QUYyMTsxMTAxIDExNjggMTFCODsKK0FGMjI7QUYyMjsxMTAxIDExNjggMTFCOTtBRjIyOzExMDEgMTE2OCAxMUI5OworQUYyMztBRjIzOzExMDEgMTE2OCAxMUJBO0FGMjM7MTEwMSAxMTY4IDExQkE7CitBRjI0O0FGMjQ7MTEwMSAxMTY4IDExQkI7QUYyNDsxMTAxIDExNjggMTFCQjsKK0FGMjU7QUYyNTsxMTAxIDExNjggMTFCQztBRjI1OzExMDEgMTE2OCAxMUJDOworQUYyNjtBRjI2OzExMDEgMTE2OCAxMUJEO0FGMjY7MTEwMSAxMTY4IDExQkQ7CitBRjI3O0FGMjc7MTEwMSAxMTY4IDExQkU7QUYyNzsxMTAxIDExNjggMTFCRTsKK0FGMjg7QUYyODsxMTAxIDExNjggMTFCRjtBRjI4OzExMDEgMTE2OCAxMUJGOworQUYyOTtBRjI5OzExMDEgMTE2OCAxMUMwO0FGMjk7MTEwMSAxMTY4IDExQzA7CitBRjJBO0FGMkE7MTEwMSAxMTY4IDExQzE7QUYyQTsxMTAxIDExNjggMTFDMTsKK0FGMkI7QUYyQjsxMTAxIDExNjggMTFDMjtBRjJCOzExMDEgMTE2OCAxMUMyOworQUYyQztBRjJDOzExMDEgMTE2OTtBRjJDOzExMDEgMTE2OTsKK0FGMkQ7QUYyRDsxMTAxIDExNjkgMTFBODtBRjJEOzExMDEgMTE2OSAxMUE4OworQUYyRTtBRjJFOzExMDEgMTE2OSAxMUE5O0FGMkU7MTEwMSAxMTY5IDExQTk7CitBRjJGO0FGMkY7MTEwMSAxMTY5IDExQUE7QUYyRjsxMTAxIDExNjkgMTFBQTsKK0FGMzA7QUYzMDsxMTAxIDExNjkgMTFBQjtBRjMwOzExMDEgMTE2OSAxMUFCOworQUYzMTtBRjMxOzExMDEgMTE2OSAxMUFDO0FGMzE7MTEwMSAxMTY5IDExQUM7CitBRjMyO0FGMzI7MTEwMSAxMTY5IDExQUQ7QUYzMjsxMTAxIDExNjkgMTFBRDsKK0FGMzM7QUYzMzsxMTAxIDExNjkgMTFBRTtBRjMzOzExMDEgMTE2OSAxMUFFOworQUYzNDtBRjM0OzExMDEgMTE2OSAxMUFGO0FGMzQ7MTEwMSAxMTY5IDExQUY7CitBRjM1O0FGMzU7MTEwMSAxMTY5IDExQjA7QUYzNTsxMTAxIDExNjkgMTFCMDsKK0FGMzY7QUYzNjsxMTAxIDExNjkgMTFCMTtBRjM2OzExMDEgMTE2OSAxMUIxOworQUYzNztBRjM3OzExMDEgMTE2OSAxMUIyO0FGMzc7MTEwMSAxMTY5IDExQjI7CitBRjM4O0FGMzg7MTEwMSAxMTY5IDExQjM7QUYzODsxMTAxIDExNjkgMTFCMzsKK0FGMzk7QUYzOTsxMTAxIDExNjkgMTFCNDtBRjM5OzExMDEgMTE2OSAxMUI0OworQUYzQTtBRjNBOzExMDEgMTE2OSAxMUI1O0FGM0E7MTEwMSAxMTY5IDExQjU7CitBRjNCO0FGM0I7MTEwMSAxMTY5IDExQjY7QUYzQjsxMTAxIDExNjkgMTFCNjsKK0FGM0M7QUYzQzsxMTAxIDExNjkgMTFCNztBRjNDOzExMDEgMTE2OSAxMUI3OworQUYzRDtBRjNEOzExMDEgMTE2OSAxMUI4O0FGM0Q7MTEwMSAxMTY5IDExQjg7CitBRjNFO0FGM0U7MTEwMSAxMTY5IDExQjk7QUYzRTsxMTAxIDExNjkgMTFCOTsKK0FGM0Y7QUYzRjsxMTAxIDExNjkgMTFCQTtBRjNGOzExMDEgMTE2OSAxMUJBOworQUY0MDtBRjQwOzExMDEgMTE2OSAxMUJCO0FGNDA7MTEwMSAxMTY5IDExQkI7CitBRjQxO0FGNDE7MTEwMSAxMTY5IDExQkM7QUY0MTsxMTAxIDExNjkgMTFCQzsKK0FGNDI7QUY0MjsxMTAxIDExNjkgMTFCRDtBRjQyOzExMDEgMTE2OSAxMUJEOworQUY0MztBRjQzOzExMDEgMTE2OSAxMUJFO0FGNDM7MTEwMSAxMTY5IDExQkU7CitBRjQ0O0FGNDQ7MTEwMSAxMTY5IDExQkY7QUY0NDsxMTAxIDExNjkgMTFCRjsKK0FGNDU7QUY0NTsxMTAxIDExNjkgMTFDMDtBRjQ1OzExMDEgMTE2OSAxMUMwOworQUY0NjtBRjQ2OzExMDEgMTE2OSAxMUMxO0FGNDY7MTEwMSAxMTY5IDExQzE7CitBRjQ3O0FGNDc7MTEwMSAxMTY5IDExQzI7QUY0NzsxMTAxIDExNjkgMTFDMjsKK0FGNDg7QUY0ODsxMTAxIDExNkE7QUY0ODsxMTAxIDExNkE7CitBRjQ5O0FGNDk7MTEwMSAxMTZBIDExQTg7QUY0OTsxMTAxIDExNkEgMTFBODsKK0FGNEE7QUY0QTsxMTAxIDExNkEgMTFBOTtBRjRBOzExMDEgMTE2QSAxMUE5OworQUY0QjtBRjRCOzExMDEgMTE2QSAxMUFBO0FGNEI7MTEwMSAxMTZBIDExQUE7CitBRjRDO0FGNEM7MTEwMSAxMTZBIDExQUI7QUY0QzsxMTAxIDExNkEgMTFBQjsKK0FGNEQ7QUY0RDsxMTAxIDExNkEgMTFBQztBRjREOzExMDEgMTE2QSAxMUFDOworQUY0RTtBRjRFOzExMDEgMTE2QSAxMUFEO0FGNEU7MTEwMSAxMTZBIDExQUQ7CitBRjRGO0FGNEY7MTEwMSAxMTZBIDExQUU7QUY0RjsxMTAxIDExNkEgMTFBRTsKK0FGNTA7QUY1MDsxMTAxIDExNkEgMTFBRjtBRjUwOzExMDEgMTE2QSAxMUFGOworQUY1MTtBRjUxOzExMDEgMTE2QSAxMUIwO0FGNTE7MTEwMSAxMTZBIDExQjA7CitBRjUyO0FGNTI7MTEwMSAxMTZBIDExQjE7QUY1MjsxMTAxIDExNkEgMTFCMTsKK0FGNTM7QUY1MzsxMTAxIDExNkEgMTFCMjtBRjUzOzExMDEgMTE2QSAxMUIyOworQUY1NDtBRjU0OzExMDEgMTE2QSAxMUIzO0FGNTQ7MTEwMSAxMTZBIDExQjM7CitBRjU1O0FGNTU7MTEwMSAxMTZBIDExQjQ7QUY1NTsxMTAxIDExNkEgMTFCNDsKK0FGNTY7QUY1NjsxMTAxIDExNkEgMTFCNTtBRjU2OzExMDEgMTE2QSAxMUI1OworQUY1NztBRjU3OzExMDEgMTE2QSAxMUI2O0FGNTc7MTEwMSAxMTZBIDExQjY7CitBRjU4O0FGNTg7MTEwMSAxMTZBIDExQjc7QUY1ODsxMTAxIDExNkEgMTFCNzsKK0FGNTk7QUY1OTsxMTAxIDExNkEgMTFCODtBRjU5OzExMDEgMTE2QSAxMUI4OworQUY1QTtBRjVBOzExMDEgMTE2QSAxMUI5O0FGNUE7MTEwMSAxMTZBIDExQjk7CitBRjVCO0FGNUI7MTEwMSAxMTZBIDExQkE7QUY1QjsxMTAxIDExNkEgMTFCQTsKK0FGNUM7QUY1QzsxMTAxIDExNkEgMTFCQjtBRjVDOzExMDEgMTE2QSAxMUJCOworQUY1RDtBRjVEOzExMDEgMTE2QSAxMUJDO0FGNUQ7MTEwMSAxMTZBIDExQkM7CitBRjVFO0FGNUU7MTEwMSAxMTZBIDExQkQ7QUY1RTsxMTAxIDExNkEgMTFCRDsKK0FGNUY7QUY1RjsxMTAxIDExNkEgMTFCRTtBRjVGOzExMDEgMTE2QSAxMUJFOworQUY2MDtBRjYwOzExMDEgMTE2QSAxMUJGO0FGNjA7MTEwMSAxMTZBIDExQkY7CitBRjYxO0FGNjE7MTEwMSAxMTZBIDExQzA7QUY2MTsxMTAxIDExNkEgMTFDMDsKK0FGNjI7QUY2MjsxMTAxIDExNkEgMTFDMTtBRjYyOzExMDEgMTE2QSAxMUMxOworQUY2MztBRjYzOzExMDEgMTE2QSAxMUMyO0FGNjM7MTEwMSAxMTZBIDExQzI7CitBRjY0O0FGNjQ7MTEwMSAxMTZCO0FGNjQ7MTEwMSAxMTZCOworQUY2NTtBRjY1OzExMDEgMTE2QiAxMUE4O0FGNjU7MTEwMSAxMTZCIDExQTg7CitBRjY2O0FGNjY7MTEwMSAxMTZCIDExQTk7QUY2NjsxMTAxIDExNkIgMTFBOTsKK0FGNjc7QUY2NzsxMTAxIDExNkIgMTFBQTtBRjY3OzExMDEgMTE2QiAxMUFBOworQUY2ODtBRjY4OzExMDEgMTE2QiAxMUFCO0FGNjg7MTEwMSAxMTZCIDExQUI7CitBRjY5O0FGNjk7MTEwMSAxMTZCIDExQUM7QUY2OTsxMTAxIDExNkIgMTFBQzsKK0FGNkE7QUY2QTsxMTAxIDExNkIgMTFBRDtBRjZBOzExMDEgMTE2QiAxMUFEOworQUY2QjtBRjZCOzExMDEgMTE2QiAxMUFFO0FGNkI7MTEwMSAxMTZCIDExQUU7CitBRjZDO0FGNkM7MTEwMSAxMTZCIDExQUY7QUY2QzsxMTAxIDExNkIgMTFBRjsKK0FGNkQ7QUY2RDsxMTAxIDExNkIgMTFCMDtBRjZEOzExMDEgMTE2QiAxMUIwOworQUY2RTtBRjZFOzExMDEgMTE2QiAxMUIxO0FGNkU7MTEwMSAxMTZCIDExQjE7CitBRjZGO0FGNkY7MTEwMSAxMTZCIDExQjI7QUY2RjsxMTAxIDExNkIgMTFCMjsKK0FGNzA7QUY3MDsxMTAxIDExNkIgMTFCMztBRjcwOzExMDEgMTE2QiAxMUIzOworQUY3MTtBRjcxOzExMDEgMTE2QiAxMUI0O0FGNzE7MTEwMSAxMTZCIDExQjQ7CitBRjcyO0FGNzI7MTEwMSAxMTZCIDExQjU7QUY3MjsxMTAxIDExNkIgMTFCNTsKK0FGNzM7QUY3MzsxMTAxIDExNkIgMTFCNjtBRjczOzExMDEgMTE2QiAxMUI2OworQUY3NDtBRjc0OzExMDEgMTE2QiAxMUI3O0FGNzQ7MTEwMSAxMTZCIDExQjc7CitBRjc1O0FGNzU7MTEwMSAxMTZCIDExQjg7QUY3NTsxMTAxIDExNkIgMTFCODsKK0FGNzY7QUY3NjsxMTAxIDExNkIgMTFCOTtBRjc2OzExMDEgMTE2QiAxMUI5OworQUY3NztBRjc3OzExMDEgMTE2QiAxMUJBO0FGNzc7MTEwMSAxMTZCIDExQkE7CitBRjc4O0FGNzg7MTEwMSAxMTZCIDExQkI7QUY3ODsxMTAxIDExNkIgMTFCQjsKK0FGNzk7QUY3OTsxMTAxIDExNkIgMTFCQztBRjc5OzExMDEgMTE2QiAxMUJDOworQUY3QTtBRjdBOzExMDEgMTE2QiAxMUJEO0FGN0E7MTEwMSAxMTZCIDExQkQ7CitBRjdCO0FGN0I7MTEwMSAxMTZCIDExQkU7QUY3QjsxMTAxIDExNkIgMTFCRTsKK0FGN0M7QUY3QzsxMTAxIDExNkIgMTFCRjtBRjdDOzExMDEgMTE2QiAxMUJGOworQUY3RDtBRjdEOzExMDEgMTE2QiAxMUMwO0FGN0Q7MTEwMSAxMTZCIDExQzA7CitBRjdFO0FGN0U7MTEwMSAxMTZCIDExQzE7QUY3RTsxMTAxIDExNkIgMTFDMTsKK0FGN0Y7QUY3RjsxMTAxIDExNkIgMTFDMjtBRjdGOzExMDEgMTE2QiAxMUMyOworQUY4MDtBRjgwOzExMDEgMTE2QztBRjgwOzExMDEgMTE2QzsKK0FGODE7QUY4MTsxMTAxIDExNkMgMTFBODtBRjgxOzExMDEgMTE2QyAxMUE4OworQUY4MjtBRjgyOzExMDEgMTE2QyAxMUE5O0FGODI7MTEwMSAxMTZDIDExQTk7CitBRjgzO0FGODM7MTEwMSAxMTZDIDExQUE7QUY4MzsxMTAxIDExNkMgMTFBQTsKK0FGODQ7QUY4NDsxMTAxIDExNkMgMTFBQjtBRjg0OzExMDEgMTE2QyAxMUFCOworQUY4NTtBRjg1OzExMDEgMTE2QyAxMUFDO0FGODU7MTEwMSAxMTZDIDExQUM7CitBRjg2O0FGODY7MTEwMSAxMTZDIDExQUQ7QUY4NjsxMTAxIDExNkMgMTFBRDsKK0FGODc7QUY4NzsxMTAxIDExNkMgMTFBRTtBRjg3OzExMDEgMTE2QyAxMUFFOworQUY4ODtBRjg4OzExMDEgMTE2QyAxMUFGO0FGODg7MTEwMSAxMTZDIDExQUY7CitBRjg5O0FGODk7MTEwMSAxMTZDIDExQjA7QUY4OTsxMTAxIDExNkMgMTFCMDsKK0FGOEE7QUY4QTsxMTAxIDExNkMgMTFCMTtBRjhBOzExMDEgMTE2QyAxMUIxOworQUY4QjtBRjhCOzExMDEgMTE2QyAxMUIyO0FGOEI7MTEwMSAxMTZDIDExQjI7CitBRjhDO0FGOEM7MTEwMSAxMTZDIDExQjM7QUY4QzsxMTAxIDExNkMgMTFCMzsKK0FGOEQ7QUY4RDsxMTAxIDExNkMgMTFCNDtBRjhEOzExMDEgMTE2QyAxMUI0OworQUY4RTtBRjhFOzExMDEgMTE2QyAxMUI1O0FGOEU7MTEwMSAxMTZDIDExQjU7CitBRjhGO0FGOEY7MTEwMSAxMTZDIDExQjY7QUY4RjsxMTAxIDExNkMgMTFCNjsKK0FGOTA7QUY5MDsxMTAxIDExNkMgMTFCNztBRjkwOzExMDEgMTE2QyAxMUI3OworQUY5MTtBRjkxOzExMDEgMTE2QyAxMUI4O0FGOTE7MTEwMSAxMTZDIDExQjg7CitBRjkyO0FGOTI7MTEwMSAxMTZDIDExQjk7QUY5MjsxMTAxIDExNkMgMTFCOTsKK0FGOTM7QUY5MzsxMTAxIDExNkMgMTFCQTtBRjkzOzExMDEgMTE2QyAxMUJBOworQUY5NDtBRjk0OzExMDEgMTE2QyAxMUJCO0FGOTQ7MTEwMSAxMTZDIDExQkI7CitBRjk1O0FGOTU7MTEwMSAxMTZDIDExQkM7QUY5NTsxMTAxIDExNkMgMTFCQzsKK0FGOTY7QUY5NjsxMTAxIDExNkMgMTFCRDtBRjk2OzExMDEgMTE2QyAxMUJEOworQUY5NztBRjk3OzExMDEgMTE2QyAxMUJFO0FGOTc7MTEwMSAxMTZDIDExQkU7CitBRjk4O0FGOTg7MTEwMSAxMTZDIDExQkY7QUY5ODsxMTAxIDExNkMgMTFCRjsKK0FGOTk7QUY5OTsxMTAxIDExNkMgMTFDMDtBRjk5OzExMDEgMTE2QyAxMUMwOworQUY5QTtBRjlBOzExMDEgMTE2QyAxMUMxO0FGOUE7MTEwMSAxMTZDIDExQzE7CitBRjlCO0FGOUI7MTEwMSAxMTZDIDExQzI7QUY5QjsxMTAxIDExNkMgMTFDMjsKK0FGOUM7QUY5QzsxMTAxIDExNkQ7QUY5QzsxMTAxIDExNkQ7CitBRjlEO0FGOUQ7MTEwMSAxMTZEIDExQTg7QUY5RDsxMTAxIDExNkQgMTFBODsKK0FGOUU7QUY5RTsxMTAxIDExNkQgMTFBOTtBRjlFOzExMDEgMTE2RCAxMUE5OworQUY5RjtBRjlGOzExMDEgMTE2RCAxMUFBO0FGOUY7MTEwMSAxMTZEIDExQUE7CitBRkEwO0FGQTA7MTEwMSAxMTZEIDExQUI7QUZBMDsxMTAxIDExNkQgMTFBQjsKK0FGQTE7QUZBMTsxMTAxIDExNkQgMTFBQztBRkExOzExMDEgMTE2RCAxMUFDOworQUZBMjtBRkEyOzExMDEgMTE2RCAxMUFEO0FGQTI7MTEwMSAxMTZEIDExQUQ7CitBRkEzO0FGQTM7MTEwMSAxMTZEIDExQUU7QUZBMzsxMTAxIDExNkQgMTFBRTsKK0FGQTQ7QUZBNDsxMTAxIDExNkQgMTFBRjtBRkE0OzExMDEgMTE2RCAxMUFGOworQUZBNTtBRkE1OzExMDEgMTE2RCAxMUIwO0FGQTU7MTEwMSAxMTZEIDExQjA7CitBRkE2O0FGQTY7MTEwMSAxMTZEIDExQjE7QUZBNjsxMTAxIDExNkQgMTFCMTsKK0FGQTc7QUZBNzsxMTAxIDExNkQgMTFCMjtBRkE3OzExMDEgMTE2RCAxMUIyOworQUZBODtBRkE4OzExMDEgMTE2RCAxMUIzO0FGQTg7MTEwMSAxMTZEIDExQjM7CitBRkE5O0FGQTk7MTEwMSAxMTZEIDExQjQ7QUZBOTsxMTAxIDExNkQgMTFCNDsKK0FGQUE7QUZBQTsxMTAxIDExNkQgMTFCNTtBRkFBOzExMDEgMTE2RCAxMUI1OworQUZBQjtBRkFCOzExMDEgMTE2RCAxMUI2O0FGQUI7MTEwMSAxMTZEIDExQjY7CitBRkFDO0FGQUM7MTEwMSAxMTZEIDExQjc7QUZBQzsxMTAxIDExNkQgMTFCNzsKK0FGQUQ7QUZBRDsxMTAxIDExNkQgMTFCODtBRkFEOzExMDEgMTE2RCAxMUI4OworQUZBRTtBRkFFOzExMDEgMTE2RCAxMUI5O0FGQUU7MTEwMSAxMTZEIDExQjk7CitBRkFGO0FGQUY7MTEwMSAxMTZEIDExQkE7QUZBRjsxMTAxIDExNkQgMTFCQTsKK0FGQjA7QUZCMDsxMTAxIDExNkQgMTFCQjtBRkIwOzExMDEgMTE2RCAxMUJCOworQUZCMTtBRkIxOzExMDEgMTE2RCAxMUJDO0FGQjE7MTEwMSAxMTZEIDExQkM7CitBRkIyO0FGQjI7MTEwMSAxMTZEIDExQkQ7QUZCMjsxMTAxIDExNkQgMTFCRDsKK0FGQjM7QUZCMzsxMTAxIDExNkQgMTFCRTtBRkIzOzExMDEgMTE2RCAxMUJFOworQUZCNDtBRkI0OzExMDEgMTE2RCAxMUJGO0FGQjQ7MTEwMSAxMTZEIDExQkY7CitBRkI1O0FGQjU7MTEwMSAxMTZEIDExQzA7QUZCNTsxMTAxIDExNkQgMTFDMDsKK0FGQjY7QUZCNjsxMTAxIDExNkQgMTFDMTtBRkI2OzExMDEgMTE2RCAxMUMxOworQUZCNztBRkI3OzExMDEgMTE2RCAxMUMyO0FGQjc7MTEwMSAxMTZEIDExQzI7CitBRkI4O0FGQjg7MTEwMSAxMTZFO0FGQjg7MTEwMSAxMTZFOworQUZCOTtBRkI5OzExMDEgMTE2RSAxMUE4O0FGQjk7MTEwMSAxMTZFIDExQTg7CitBRkJBO0FGQkE7MTEwMSAxMTZFIDExQTk7QUZCQTsxMTAxIDExNkUgMTFBOTsKK0FGQkI7QUZCQjsxMTAxIDExNkUgMTFBQTtBRkJCOzExMDEgMTE2RSAxMUFBOworQUZCQztBRkJDOzExMDEgMTE2RSAxMUFCO0FGQkM7MTEwMSAxMTZFIDExQUI7CitBRkJEO0FGQkQ7MTEwMSAxMTZFIDExQUM7QUZCRDsxMTAxIDExNkUgMTFBQzsKK0FGQkU7QUZCRTsxMTAxIDExNkUgMTFBRDtBRkJFOzExMDEgMTE2RSAxMUFEOworQUZCRjtBRkJGOzExMDEgMTE2RSAxMUFFO0FGQkY7MTEwMSAxMTZFIDExQUU7CitBRkMwO0FGQzA7MTEwMSAxMTZFIDExQUY7QUZDMDsxMTAxIDExNkUgMTFBRjsKK0FGQzE7QUZDMTsxMTAxIDExNkUgMTFCMDtBRkMxOzExMDEgMTE2RSAxMUIwOworQUZDMjtBRkMyOzExMDEgMTE2RSAxMUIxO0FGQzI7MTEwMSAxMTZFIDExQjE7CitBRkMzO0FGQzM7MTEwMSAxMTZFIDExQjI7QUZDMzsxMTAxIDExNkUgMTFCMjsKK0FGQzQ7QUZDNDsxMTAxIDExNkUgMTFCMztBRkM0OzExMDEgMTE2RSAxMUIzOworQUZDNTtBRkM1OzExMDEgMTE2RSAxMUI0O0FGQzU7MTEwMSAxMTZFIDExQjQ7CitBRkM2O0FGQzY7MTEwMSAxMTZFIDExQjU7QUZDNjsxMTAxIDExNkUgMTFCNTsKK0FGQzc7QUZDNzsxMTAxIDExNkUgMTFCNjtBRkM3OzExMDEgMTE2RSAxMUI2OworQUZDODtBRkM4OzExMDEgMTE2RSAxMUI3O0FGQzg7MTEwMSAxMTZFIDExQjc7CitBRkM5O0FGQzk7MTEwMSAxMTZFIDExQjg7QUZDOTsxMTAxIDExNkUgMTFCODsKK0FGQ0E7QUZDQTsxMTAxIDExNkUgMTFCOTtBRkNBOzExMDEgMTE2RSAxMUI5OworQUZDQjtBRkNCOzExMDEgMTE2RSAxMUJBO0FGQ0I7MTEwMSAxMTZFIDExQkE7CitBRkNDO0FGQ0M7MTEwMSAxMTZFIDExQkI7QUZDQzsxMTAxIDExNkUgMTFCQjsKK0FGQ0Q7QUZDRDsxMTAxIDExNkUgMTFCQztBRkNEOzExMDEgMTE2RSAxMUJDOworQUZDRTtBRkNFOzExMDEgMTE2RSAxMUJEO0FGQ0U7MTEwMSAxMTZFIDExQkQ7CitBRkNGO0FGQ0Y7MTEwMSAxMTZFIDExQkU7QUZDRjsxMTAxIDExNkUgMTFCRTsKK0FGRDA7QUZEMDsxMTAxIDExNkUgMTFCRjtBRkQwOzExMDEgMTE2RSAxMUJGOworQUZEMTtBRkQxOzExMDEgMTE2RSAxMUMwO0FGRDE7MTEwMSAxMTZFIDExQzA7CitBRkQyO0FGRDI7MTEwMSAxMTZFIDExQzE7QUZEMjsxMTAxIDExNkUgMTFDMTsKK0FGRDM7QUZEMzsxMTAxIDExNkUgMTFDMjtBRkQzOzExMDEgMTE2RSAxMUMyOworQUZENDtBRkQ0OzExMDEgMTE2RjtBRkQ0OzExMDEgMTE2RjsKK0FGRDU7QUZENTsxMTAxIDExNkYgMTFBODtBRkQ1OzExMDEgMTE2RiAxMUE4OworQUZENjtBRkQ2OzExMDEgMTE2RiAxMUE5O0FGRDY7MTEwMSAxMTZGIDExQTk7CitBRkQ3O0FGRDc7MTEwMSAxMTZGIDExQUE7QUZENzsxMTAxIDExNkYgMTFBQTsKK0FGRDg7QUZEODsxMTAxIDExNkYgMTFBQjtBRkQ4OzExMDEgMTE2RiAxMUFCOworQUZEOTtBRkQ5OzExMDEgMTE2RiAxMUFDO0FGRDk7MTEwMSAxMTZGIDExQUM7CitBRkRBO0FGREE7MTEwMSAxMTZGIDExQUQ7QUZEQTsxMTAxIDExNkYgMTFBRDsKK0FGREI7QUZEQjsxMTAxIDExNkYgMTFBRTtBRkRCOzExMDEgMTE2RiAxMUFFOworQUZEQztBRkRDOzExMDEgMTE2RiAxMUFGO0FGREM7MTEwMSAxMTZGIDExQUY7CitBRkREO0FGREQ7MTEwMSAxMTZGIDExQjA7QUZERDsxMTAxIDExNkYgMTFCMDsKK0FGREU7QUZERTsxMTAxIDExNkYgMTFCMTtBRkRFOzExMDEgMTE2RiAxMUIxOworQUZERjtBRkRGOzExMDEgMTE2RiAxMUIyO0FGREY7MTEwMSAxMTZGIDExQjI7CitBRkUwO0FGRTA7MTEwMSAxMTZGIDExQjM7QUZFMDsxMTAxIDExNkYgMTFCMzsKK0FGRTE7QUZFMTsxMTAxIDExNkYgMTFCNDtBRkUxOzExMDEgMTE2RiAxMUI0OworQUZFMjtBRkUyOzExMDEgMTE2RiAxMUI1O0FGRTI7MTEwMSAxMTZGIDExQjU7CitBRkUzO0FGRTM7MTEwMSAxMTZGIDExQjY7QUZFMzsxMTAxIDExNkYgMTFCNjsKK0FGRTQ7QUZFNDsxMTAxIDExNkYgMTFCNztBRkU0OzExMDEgMTE2RiAxMUI3OworQUZFNTtBRkU1OzExMDEgMTE2RiAxMUI4O0FGRTU7MTEwMSAxMTZGIDExQjg7CitBRkU2O0FGRTY7MTEwMSAxMTZGIDExQjk7QUZFNjsxMTAxIDExNkYgMTFCOTsKK0FGRTc7QUZFNzsxMTAxIDExNkYgMTFCQTtBRkU3OzExMDEgMTE2RiAxMUJBOworQUZFODtBRkU4OzExMDEgMTE2RiAxMUJCO0FGRTg7MTEwMSAxMTZGIDExQkI7CitBRkU5O0FGRTk7MTEwMSAxMTZGIDExQkM7QUZFOTsxMTAxIDExNkYgMTFCQzsKK0FGRUE7QUZFQTsxMTAxIDExNkYgMTFCRDtBRkVBOzExMDEgMTE2RiAxMUJEOworQUZFQjtBRkVCOzExMDEgMTE2RiAxMUJFO0FGRUI7MTEwMSAxMTZGIDExQkU7CitBRkVDO0FGRUM7MTEwMSAxMTZGIDExQkY7QUZFQzsxMTAxIDExNkYgMTFCRjsKK0FGRUQ7QUZFRDsxMTAxIDExNkYgMTFDMDtBRkVEOzExMDEgMTE2RiAxMUMwOworQUZFRTtBRkVFOzExMDEgMTE2RiAxMUMxO0FGRUU7MTEwMSAxMTZGIDExQzE7CitBRkVGO0FGRUY7MTEwMSAxMTZGIDExQzI7QUZFRjsxMTAxIDExNkYgMTFDMjsKK0FGRjA7QUZGMDsxMTAxIDExNzA7QUZGMDsxMTAxIDExNzA7CitBRkYxO0FGRjE7MTEwMSAxMTcwIDExQTg7QUZGMTsxMTAxIDExNzAgMTFBODsKK0FGRjI7QUZGMjsxMTAxIDExNzAgMTFBOTtBRkYyOzExMDEgMTE3MCAxMUE5OworQUZGMztBRkYzOzExMDEgMTE3MCAxMUFBO0FGRjM7MTEwMSAxMTcwIDExQUE7CitBRkY0O0FGRjQ7MTEwMSAxMTcwIDExQUI7QUZGNDsxMTAxIDExNzAgMTFBQjsKK0FGRjU7QUZGNTsxMTAxIDExNzAgMTFBQztBRkY1OzExMDEgMTE3MCAxMUFDOworQUZGNjtBRkY2OzExMDEgMTE3MCAxMUFEO0FGRjY7MTEwMSAxMTcwIDExQUQ7CitBRkY3O0FGRjc7MTEwMSAxMTcwIDExQUU7QUZGNzsxMTAxIDExNzAgMTFBRTsKK0FGRjg7QUZGODsxMTAxIDExNzAgMTFBRjtBRkY4OzExMDEgMTE3MCAxMUFGOworQUZGOTtBRkY5OzExMDEgMTE3MCAxMUIwO0FGRjk7MTEwMSAxMTcwIDExQjA7CitBRkZBO0FGRkE7MTEwMSAxMTcwIDExQjE7QUZGQTsxMTAxIDExNzAgMTFCMTsKK0FGRkI7QUZGQjsxMTAxIDExNzAgMTFCMjtBRkZCOzExMDEgMTE3MCAxMUIyOworQUZGQztBRkZDOzExMDEgMTE3MCAxMUIzO0FGRkM7MTEwMSAxMTcwIDExQjM7CitBRkZEO0FGRkQ7MTEwMSAxMTcwIDExQjQ7QUZGRDsxMTAxIDExNzAgMTFCNDsKK0FGRkU7QUZGRTsxMTAxIDExNzAgMTFCNTtBRkZFOzExMDEgMTE3MCAxMUI1OworQUZGRjtBRkZGOzExMDEgMTE3MCAxMUI2O0FGRkY7MTEwMSAxMTcwIDExQjY7CitCMDAwO0IwMDA7MTEwMSAxMTcwIDExQjc7QjAwMDsxMTAxIDExNzAgMTFCNzsKK0IwMDE7QjAwMTsxMTAxIDExNzAgMTFCODtCMDAxOzExMDEgMTE3MCAxMUI4OworQjAwMjtCMDAyOzExMDEgMTE3MCAxMUI5O0IwMDI7MTEwMSAxMTcwIDExQjk7CitCMDAzO0IwMDM7MTEwMSAxMTcwIDExQkE7QjAwMzsxMTAxIDExNzAgMTFCQTsKK0IwMDQ7QjAwNDsxMTAxIDExNzAgMTFCQjtCMDA0OzExMDEgMTE3MCAxMUJCOworQjAwNTtCMDA1OzExMDEgMTE3MCAxMUJDO0IwMDU7MTEwMSAxMTcwIDExQkM7CitCMDA2O0IwMDY7MTEwMSAxMTcwIDExQkQ7QjAwNjsxMTAxIDExNzAgMTFCRDsKK0IwMDc7QjAwNzsxMTAxIDExNzAgMTFCRTtCMDA3OzExMDEgMTE3MCAxMUJFOworQjAwODtCMDA4OzExMDEgMTE3MCAxMUJGO0IwMDg7MTEwMSAxMTcwIDExQkY7CitCMDA5O0IwMDk7MTEwMSAxMTcwIDExQzA7QjAwOTsxMTAxIDExNzAgMTFDMDsKK0IwMEE7QjAwQTsxMTAxIDExNzAgMTFDMTtCMDBBOzExMDEgMTE3MCAxMUMxOworQjAwQjtCMDBCOzExMDEgMTE3MCAxMUMyO0IwMEI7MTEwMSAxMTcwIDExQzI7CitCMDBDO0IwMEM7MTEwMSAxMTcxO0IwMEM7MTEwMSAxMTcxOworQjAwRDtCMDBEOzExMDEgMTE3MSAxMUE4O0IwMEQ7MTEwMSAxMTcxIDExQTg7CitCMDBFO0IwMEU7MTEwMSAxMTcxIDExQTk7QjAwRTsxMTAxIDExNzEgMTFBOTsKK0IwMEY7QjAwRjsxMTAxIDExNzEgMTFBQTtCMDBGOzExMDEgMTE3MSAxMUFBOworQjAxMDtCMDEwOzExMDEgMTE3MSAxMUFCO0IwMTA7MTEwMSAxMTcxIDExQUI7CitCMDExO0IwMTE7MTEwMSAxMTcxIDExQUM7QjAxMTsxMTAxIDExNzEgMTFBQzsKK0IwMTI7QjAxMjsxMTAxIDExNzEgMTFBRDtCMDEyOzExMDEgMTE3MSAxMUFEOworQjAxMztCMDEzOzExMDEgMTE3MSAxMUFFO0IwMTM7MTEwMSAxMTcxIDExQUU7CitCMDE0O0IwMTQ7MTEwMSAxMTcxIDExQUY7QjAxNDsxMTAxIDExNzEgMTFBRjsKK0IwMTU7QjAxNTsxMTAxIDExNzEgMTFCMDtCMDE1OzExMDEgMTE3MSAxMUIwOworQjAxNjtCMDE2OzExMDEgMTE3MSAxMUIxO0IwMTY7MTEwMSAxMTcxIDExQjE7CitCMDE3O0IwMTc7MTEwMSAxMTcxIDExQjI7QjAxNzsxMTAxIDExNzEgMTFCMjsKK0IwMTg7QjAxODsxMTAxIDExNzEgMTFCMztCMDE4OzExMDEgMTE3MSAxMUIzOworQjAxOTtCMDE5OzExMDEgMTE3MSAxMUI0O0IwMTk7MTEwMSAxMTcxIDExQjQ7CitCMDFBO0IwMUE7MTEwMSAxMTcxIDExQjU7QjAxQTsxMTAxIDExNzEgMTFCNTsKK0IwMUI7QjAxQjsxMTAxIDExNzEgMTFCNjtCMDFCOzExMDEgMTE3MSAxMUI2OworQjAxQztCMDFDOzExMDEgMTE3MSAxMUI3O0IwMUM7MTEwMSAxMTcxIDExQjc7CitCMDFEO0IwMUQ7MTEwMSAxMTcxIDExQjg7QjAxRDsxMTAxIDExNzEgMTFCODsKK0IwMUU7QjAxRTsxMTAxIDExNzEgMTFCOTtCMDFFOzExMDEgMTE3MSAxMUI5OworQjAxRjtCMDFGOzExMDEgMTE3MSAxMUJBO0IwMUY7MTEwMSAxMTcxIDExQkE7CitCMDIwO0IwMjA7MTEwMSAxMTcxIDExQkI7QjAyMDsxMTAxIDExNzEgMTFCQjsKK0IwMjE7QjAyMTsxMTAxIDExNzEgMTFCQztCMDIxOzExMDEgMTE3MSAxMUJDOworQjAyMjtCMDIyOzExMDEgMTE3MSAxMUJEO0IwMjI7MTEwMSAxMTcxIDExQkQ7CitCMDIzO0IwMjM7MTEwMSAxMTcxIDExQkU7QjAyMzsxMTAxIDExNzEgMTFCRTsKK0IwMjQ7QjAyNDsxMTAxIDExNzEgMTFCRjtCMDI0OzExMDEgMTE3MSAxMUJGOworQjAyNTtCMDI1OzExMDEgMTE3MSAxMUMwO0IwMjU7MTEwMSAxMTcxIDExQzA7CitCMDI2O0IwMjY7MTEwMSAxMTcxIDExQzE7QjAyNjsxMTAxIDExNzEgMTFDMTsKK0IwMjc7QjAyNzsxMTAxIDExNzEgMTFDMjtCMDI3OzExMDEgMTE3MSAxMUMyOworQjAyODtCMDI4OzExMDEgMTE3MjtCMDI4OzExMDEgMTE3MjsKK0IwMjk7QjAyOTsxMTAxIDExNzIgMTFBODtCMDI5OzExMDEgMTE3MiAxMUE4OworQjAyQTtCMDJBOzExMDEgMTE3MiAxMUE5O0IwMkE7MTEwMSAxMTcyIDExQTk7CitCMDJCO0IwMkI7MTEwMSAxMTcyIDExQUE7QjAyQjsxMTAxIDExNzIgMTFBQTsKK0IwMkM7QjAyQzsxMTAxIDExNzIgMTFBQjtCMDJDOzExMDEgMTE3MiAxMUFCOworQjAyRDtCMDJEOzExMDEgMTE3MiAxMUFDO0IwMkQ7MTEwMSAxMTcyIDExQUM7CitCMDJFO0IwMkU7MTEwMSAxMTcyIDExQUQ7QjAyRTsxMTAxIDExNzIgMTFBRDsKK0IwMkY7QjAyRjsxMTAxIDExNzIgMTFBRTtCMDJGOzExMDEgMTE3MiAxMUFFOworQjAzMDtCMDMwOzExMDEgMTE3MiAxMUFGO0IwMzA7MTEwMSAxMTcyIDExQUY7CitCMDMxO0IwMzE7MTEwMSAxMTcyIDExQjA7QjAzMTsxMTAxIDExNzIgMTFCMDsKK0IwMzI7QjAzMjsxMTAxIDExNzIgMTFCMTtCMDMyOzExMDEgMTE3MiAxMUIxOworQjAzMztCMDMzOzExMDEgMTE3MiAxMUIyO0IwMzM7MTEwMSAxMTcyIDExQjI7CitCMDM0O0IwMzQ7MTEwMSAxMTcyIDExQjM7QjAzNDsxMTAxIDExNzIgMTFCMzsKK0IwMzU7QjAzNTsxMTAxIDExNzIgMTFCNDtCMDM1OzExMDEgMTE3MiAxMUI0OworQjAzNjtCMDM2OzExMDEgMTE3MiAxMUI1O0IwMzY7MTEwMSAxMTcyIDExQjU7CitCMDM3O0IwMzc7MTEwMSAxMTcyIDExQjY7QjAzNzsxMTAxIDExNzIgMTFCNjsKK0IwMzg7QjAzODsxMTAxIDExNzIgMTFCNztCMDM4OzExMDEgMTE3MiAxMUI3OworQjAzOTtCMDM5OzExMDEgMTE3MiAxMUI4O0IwMzk7MTEwMSAxMTcyIDExQjg7CitCMDNBO0IwM0E7MTEwMSAxMTcyIDExQjk7QjAzQTsxMTAxIDExNzIgMTFCOTsKK0IwM0I7QjAzQjsxMTAxIDExNzIgMTFCQTtCMDNCOzExMDEgMTE3MiAxMUJBOworQjAzQztCMDNDOzExMDEgMTE3MiAxMUJCO0IwM0M7MTEwMSAxMTcyIDExQkI7CitCMDNEO0IwM0Q7MTEwMSAxMTcyIDExQkM7QjAzRDsxMTAxIDExNzIgMTFCQzsKK0IwM0U7QjAzRTsxMTAxIDExNzIgMTFCRDtCMDNFOzExMDEgMTE3MiAxMUJEOworQjAzRjtCMDNGOzExMDEgMTE3MiAxMUJFO0IwM0Y7MTEwMSAxMTcyIDExQkU7CitCMDQwO0IwNDA7MTEwMSAxMTcyIDExQkY7QjA0MDsxMTAxIDExNzIgMTFCRjsKK0IwNDE7QjA0MTsxMTAxIDExNzIgMTFDMDtCMDQxOzExMDEgMTE3MiAxMUMwOworQjA0MjtCMDQyOzExMDEgMTE3MiAxMUMxO0IwNDI7MTEwMSAxMTcyIDExQzE7CitCMDQzO0IwNDM7MTEwMSAxMTcyIDExQzI7QjA0MzsxMTAxIDExNzIgMTFDMjsKK0IwNDQ7QjA0NDsxMTAxIDExNzM7QjA0NDsxMTAxIDExNzM7CitCMDQ1O0IwNDU7MTEwMSAxMTczIDExQTg7QjA0NTsxMTAxIDExNzMgMTFBODsKK0IwNDY7QjA0NjsxMTAxIDExNzMgMTFBOTtCMDQ2OzExMDEgMTE3MyAxMUE5OworQjA0NztCMDQ3OzExMDEgMTE3MyAxMUFBO0IwNDc7MTEwMSAxMTczIDExQUE7CitCMDQ4O0IwNDg7MTEwMSAxMTczIDExQUI7QjA0ODsxMTAxIDExNzMgMTFBQjsKK0IwNDk7QjA0OTsxMTAxIDExNzMgMTFBQztCMDQ5OzExMDEgMTE3MyAxMUFDOworQjA0QTtCMDRBOzExMDEgMTE3MyAxMUFEO0IwNEE7MTEwMSAxMTczIDExQUQ7CitCMDRCO0IwNEI7MTEwMSAxMTczIDExQUU7QjA0QjsxMTAxIDExNzMgMTFBRTsKK0IwNEM7QjA0QzsxMTAxIDExNzMgMTFBRjtCMDRDOzExMDEgMTE3MyAxMUFGOworQjA0RDtCMDREOzExMDEgMTE3MyAxMUIwO0IwNEQ7MTEwMSAxMTczIDExQjA7CitCMDRFO0IwNEU7MTEwMSAxMTczIDExQjE7QjA0RTsxMTAxIDExNzMgMTFCMTsKK0IwNEY7QjA0RjsxMTAxIDExNzMgMTFCMjtCMDRGOzExMDEgMTE3MyAxMUIyOworQjA1MDtCMDUwOzExMDEgMTE3MyAxMUIzO0IwNTA7MTEwMSAxMTczIDExQjM7CitCMDUxO0IwNTE7MTEwMSAxMTczIDExQjQ7QjA1MTsxMTAxIDExNzMgMTFCNDsKK0IwNTI7QjA1MjsxMTAxIDExNzMgMTFCNTtCMDUyOzExMDEgMTE3MyAxMUI1OworQjA1MztCMDUzOzExMDEgMTE3MyAxMUI2O0IwNTM7MTEwMSAxMTczIDExQjY7CitCMDU0O0IwNTQ7MTEwMSAxMTczIDExQjc7QjA1NDsxMTAxIDExNzMgMTFCNzsKK0IwNTU7QjA1NTsxMTAxIDExNzMgMTFCODtCMDU1OzExMDEgMTE3MyAxMUI4OworQjA1NjtCMDU2OzExMDEgMTE3MyAxMUI5O0IwNTY7MTEwMSAxMTczIDExQjk7CitCMDU3O0IwNTc7MTEwMSAxMTczIDExQkE7QjA1NzsxMTAxIDExNzMgMTFCQTsKK0IwNTg7QjA1ODsxMTAxIDExNzMgMTFCQjtCMDU4OzExMDEgMTE3MyAxMUJCOworQjA1OTtCMDU5OzExMDEgMTE3MyAxMUJDO0IwNTk7MTEwMSAxMTczIDExQkM7CitCMDVBO0IwNUE7MTEwMSAxMTczIDExQkQ7QjA1QTsxMTAxIDExNzMgMTFCRDsKK0IwNUI7QjA1QjsxMTAxIDExNzMgMTFCRTtCMDVCOzExMDEgMTE3MyAxMUJFOworQjA1QztCMDVDOzExMDEgMTE3MyAxMUJGO0IwNUM7MTEwMSAxMTczIDExQkY7CitCMDVEO0IwNUQ7MTEwMSAxMTczIDExQzA7QjA1RDsxMTAxIDExNzMgMTFDMDsKK0IwNUU7QjA1RTsxMTAxIDExNzMgMTFDMTtCMDVFOzExMDEgMTE3MyAxMUMxOworQjA1RjtCMDVGOzExMDEgMTE3MyAxMUMyO0IwNUY7MTEwMSAxMTczIDExQzI7CitCMDYwO0IwNjA7MTEwMSAxMTc0O0IwNjA7MTEwMSAxMTc0OworQjA2MTtCMDYxOzExMDEgMTE3NCAxMUE4O0IwNjE7MTEwMSAxMTc0IDExQTg7CitCMDYyO0IwNjI7MTEwMSAxMTc0IDExQTk7QjA2MjsxMTAxIDExNzQgMTFBOTsKK0IwNjM7QjA2MzsxMTAxIDExNzQgMTFBQTtCMDYzOzExMDEgMTE3NCAxMUFBOworQjA2NDtCMDY0OzExMDEgMTE3NCAxMUFCO0IwNjQ7MTEwMSAxMTc0IDExQUI7CitCMDY1O0IwNjU7MTEwMSAxMTc0IDExQUM7QjA2NTsxMTAxIDExNzQgMTFBQzsKK0IwNjY7QjA2NjsxMTAxIDExNzQgMTFBRDtCMDY2OzExMDEgMTE3NCAxMUFEOworQjA2NztCMDY3OzExMDEgMTE3NCAxMUFFO0IwNjc7MTEwMSAxMTc0IDExQUU7CitCMDY4O0IwNjg7MTEwMSAxMTc0IDExQUY7QjA2ODsxMTAxIDExNzQgMTFBRjsKK0IwNjk7QjA2OTsxMTAxIDExNzQgMTFCMDtCMDY5OzExMDEgMTE3NCAxMUIwOworQjA2QTtCMDZBOzExMDEgMTE3NCAxMUIxO0IwNkE7MTEwMSAxMTc0IDExQjE7CitCMDZCO0IwNkI7MTEwMSAxMTc0IDExQjI7QjA2QjsxMTAxIDExNzQgMTFCMjsKK0IwNkM7QjA2QzsxMTAxIDExNzQgMTFCMztCMDZDOzExMDEgMTE3NCAxMUIzOworQjA2RDtCMDZEOzExMDEgMTE3NCAxMUI0O0IwNkQ7MTEwMSAxMTc0IDExQjQ7CitCMDZFO0IwNkU7MTEwMSAxMTc0IDExQjU7QjA2RTsxMTAxIDExNzQgMTFCNTsKK0IwNkY7QjA2RjsxMTAxIDExNzQgMTFCNjtCMDZGOzExMDEgMTE3NCAxMUI2OworQjA3MDtCMDcwOzExMDEgMTE3NCAxMUI3O0IwNzA7MTEwMSAxMTc0IDExQjc7CitCMDcxO0IwNzE7MTEwMSAxMTc0IDExQjg7QjA3MTsxMTAxIDExNzQgMTFCODsKK0IwNzI7QjA3MjsxMTAxIDExNzQgMTFCOTtCMDcyOzExMDEgMTE3NCAxMUI5OworQjA3MztCMDczOzExMDEgMTE3NCAxMUJBO0IwNzM7MTEwMSAxMTc0IDExQkE7CitCMDc0O0IwNzQ7MTEwMSAxMTc0IDExQkI7QjA3NDsxMTAxIDExNzQgMTFCQjsKK0IwNzU7QjA3NTsxMTAxIDExNzQgMTFCQztCMDc1OzExMDEgMTE3NCAxMUJDOworQjA3NjtCMDc2OzExMDEgMTE3NCAxMUJEO0IwNzY7MTEwMSAxMTc0IDExQkQ7CitCMDc3O0IwNzc7MTEwMSAxMTc0IDExQkU7QjA3NzsxMTAxIDExNzQgMTFCRTsKK0IwNzg7QjA3ODsxMTAxIDExNzQgMTFCRjtCMDc4OzExMDEgMTE3NCAxMUJGOworQjA3OTtCMDc5OzExMDEgMTE3NCAxMUMwO0IwNzk7MTEwMSAxMTc0IDExQzA7CitCMDdBO0IwN0E7MTEwMSAxMTc0IDExQzE7QjA3QTsxMTAxIDExNzQgMTFDMTsKK0IwN0I7QjA3QjsxMTAxIDExNzQgMTFDMjtCMDdCOzExMDEgMTE3NCAxMUMyOworQjA3QztCMDdDOzExMDEgMTE3NTtCMDdDOzExMDEgMTE3NTsKK0IwN0Q7QjA3RDsxMTAxIDExNzUgMTFBODtCMDdEOzExMDEgMTE3NSAxMUE4OworQjA3RTtCMDdFOzExMDEgMTE3NSAxMUE5O0IwN0U7MTEwMSAxMTc1IDExQTk7CitCMDdGO0IwN0Y7MTEwMSAxMTc1IDExQUE7QjA3RjsxMTAxIDExNzUgMTFBQTsKK0IwODA7QjA4MDsxMTAxIDExNzUgMTFBQjtCMDgwOzExMDEgMTE3NSAxMUFCOworQjA4MTtCMDgxOzExMDEgMTE3NSAxMUFDO0IwODE7MTEwMSAxMTc1IDExQUM7CitCMDgyO0IwODI7MTEwMSAxMTc1IDExQUQ7QjA4MjsxMTAxIDExNzUgMTFBRDsKK0IwODM7QjA4MzsxMTAxIDExNzUgMTFBRTtCMDgzOzExMDEgMTE3NSAxMUFFOworQjA4NDtCMDg0OzExMDEgMTE3NSAxMUFGO0IwODQ7MTEwMSAxMTc1IDExQUY7CitCMDg1O0IwODU7MTEwMSAxMTc1IDExQjA7QjA4NTsxMTAxIDExNzUgMTFCMDsKK0IwODY7QjA4NjsxMTAxIDExNzUgMTFCMTtCMDg2OzExMDEgMTE3NSAxMUIxOworQjA4NztCMDg3OzExMDEgMTE3NSAxMUIyO0IwODc7MTEwMSAxMTc1IDExQjI7CitCMDg4O0IwODg7MTEwMSAxMTc1IDExQjM7QjA4ODsxMTAxIDExNzUgMTFCMzsKK0IwODk7QjA4OTsxMTAxIDExNzUgMTFCNDtCMDg5OzExMDEgMTE3NSAxMUI0OworQjA4QTtCMDhBOzExMDEgMTE3NSAxMUI1O0IwOEE7MTEwMSAxMTc1IDExQjU7CitCMDhCO0IwOEI7MTEwMSAxMTc1IDExQjY7QjA4QjsxMTAxIDExNzUgMTFCNjsKK0IwOEM7QjA4QzsxMTAxIDExNzUgMTFCNztCMDhDOzExMDEgMTE3NSAxMUI3OworQjA4RDtCMDhEOzExMDEgMTE3NSAxMUI4O0IwOEQ7MTEwMSAxMTc1IDExQjg7CitCMDhFO0IwOEU7MTEwMSAxMTc1IDExQjk7QjA4RTsxMTAxIDExNzUgMTFCOTsKK0IwOEY7QjA4RjsxMTAxIDExNzUgMTFCQTtCMDhGOzExMDEgMTE3NSAxMUJBOworQjA5MDtCMDkwOzExMDEgMTE3NSAxMUJCO0IwOTA7MTEwMSAxMTc1IDExQkI7CitCMDkxO0IwOTE7MTEwMSAxMTc1IDExQkM7QjA5MTsxMTAxIDExNzUgMTFCQzsKK0IwOTI7QjA5MjsxMTAxIDExNzUgMTFCRDtCMDkyOzExMDEgMTE3NSAxMUJEOworQjA5MztCMDkzOzExMDEgMTE3NSAxMUJFO0IwOTM7MTEwMSAxMTc1IDExQkU7CitCMDk0O0IwOTQ7MTEwMSAxMTc1IDExQkY7QjA5NDsxMTAxIDExNzUgMTFCRjsKK0IwOTU7QjA5NTsxMTAxIDExNzUgMTFDMDtCMDk1OzExMDEgMTE3NSAxMUMwOworQjA5NjtCMDk2OzExMDEgMTE3NSAxMUMxO0IwOTY7MTEwMSAxMTc1IDExQzE7CitCMDk3O0IwOTc7MTEwMSAxMTc1IDExQzI7QjA5NzsxMTAxIDExNzUgMTFDMjsKK0IwOTg7QjA5ODsxMTAyIDExNjE7QjA5ODsxMTAyIDExNjE7CitCMDk5O0IwOTk7MTEwMiAxMTYxIDExQTg7QjA5OTsxMTAyIDExNjEgMTFBODsKK0IwOUE7QjA5QTsxMTAyIDExNjEgMTFBOTtCMDlBOzExMDIgMTE2MSAxMUE5OworQjA5QjtCMDlCOzExMDIgMTE2MSAxMUFBO0IwOUI7MTEwMiAxMTYxIDExQUE7CitCMDlDO0IwOUM7MTEwMiAxMTYxIDExQUI7QjA5QzsxMTAyIDExNjEgMTFBQjsKK0IwOUQ7QjA5RDsxMTAyIDExNjEgMTFBQztCMDlEOzExMDIgMTE2MSAxMUFDOworQjA5RTtCMDlFOzExMDIgMTE2MSAxMUFEO0IwOUU7MTEwMiAxMTYxIDExQUQ7CitCMDlGO0IwOUY7MTEwMiAxMTYxIDExQUU7QjA5RjsxMTAyIDExNjEgMTFBRTsKK0IwQTA7QjBBMDsxMTAyIDExNjEgMTFBRjtCMEEwOzExMDIgMTE2MSAxMUFGOworQjBBMTtCMEExOzExMDIgMTE2MSAxMUIwO0IwQTE7MTEwMiAxMTYxIDExQjA7CitCMEEyO0IwQTI7MTEwMiAxMTYxIDExQjE7QjBBMjsxMTAyIDExNjEgMTFCMTsKK0IwQTM7QjBBMzsxMTAyIDExNjEgMTFCMjtCMEEzOzExMDIgMTE2MSAxMUIyOworQjBBNDtCMEE0OzExMDIgMTE2MSAxMUIzO0IwQTQ7MTEwMiAxMTYxIDExQjM7CitCMEE1O0IwQTU7MTEwMiAxMTYxIDExQjQ7QjBBNTsxMTAyIDExNjEgMTFCNDsKK0IwQTY7QjBBNjsxMTAyIDExNjEgMTFCNTtCMEE2OzExMDIgMTE2MSAxMUI1OworQjBBNztCMEE3OzExMDIgMTE2MSAxMUI2O0IwQTc7MTEwMiAxMTYxIDExQjY7CitCMEE4O0IwQTg7MTEwMiAxMTYxIDExQjc7QjBBODsxMTAyIDExNjEgMTFCNzsKK0IwQTk7QjBBOTsxMTAyIDExNjEgMTFCODtCMEE5OzExMDIgMTE2MSAxMUI4OworQjBBQTtCMEFBOzExMDIgMTE2MSAxMUI5O0IwQUE7MTEwMiAxMTYxIDExQjk7CitCMEFCO0IwQUI7MTEwMiAxMTYxIDExQkE7QjBBQjsxMTAyIDExNjEgMTFCQTsKK0IwQUM7QjBBQzsxMTAyIDExNjEgMTFCQjtCMEFDOzExMDIgMTE2MSAxMUJCOworQjBBRDtCMEFEOzExMDIgMTE2MSAxMUJDO0IwQUQ7MTEwMiAxMTYxIDExQkM7CitCMEFFO0IwQUU7MTEwMiAxMTYxIDExQkQ7QjBBRTsxMTAyIDExNjEgMTFCRDsKK0IwQUY7QjBBRjsxMTAyIDExNjEgMTFCRTtCMEFGOzExMDIgMTE2MSAxMUJFOworQjBCMDtCMEIwOzExMDIgMTE2MSAxMUJGO0IwQjA7MTEwMiAxMTYxIDExQkY7CitCMEIxO0IwQjE7MTEwMiAxMTYxIDExQzA7QjBCMTsxMTAyIDExNjEgMTFDMDsKK0IwQjI7QjBCMjsxMTAyIDExNjEgMTFDMTtCMEIyOzExMDIgMTE2MSAxMUMxOworQjBCMztCMEIzOzExMDIgMTE2MSAxMUMyO0IwQjM7MTEwMiAxMTYxIDExQzI7CitCMEI0O0IwQjQ7MTEwMiAxMTYyO0IwQjQ7MTEwMiAxMTYyOworQjBCNTtCMEI1OzExMDIgMTE2MiAxMUE4O0IwQjU7MTEwMiAxMTYyIDExQTg7CitCMEI2O0IwQjY7MTEwMiAxMTYyIDExQTk7QjBCNjsxMTAyIDExNjIgMTFBOTsKK0IwQjc7QjBCNzsxMTAyIDExNjIgMTFBQTtCMEI3OzExMDIgMTE2MiAxMUFBOworQjBCODtCMEI4OzExMDIgMTE2MiAxMUFCO0IwQjg7MTEwMiAxMTYyIDExQUI7CitCMEI5O0IwQjk7MTEwMiAxMTYyIDExQUM7QjBCOTsxMTAyIDExNjIgMTFBQzsKK0IwQkE7QjBCQTsxMTAyIDExNjIgMTFBRDtCMEJBOzExMDIgMTE2MiAxMUFEOworQjBCQjtCMEJCOzExMDIgMTE2MiAxMUFFO0IwQkI7MTEwMiAxMTYyIDExQUU7CitCMEJDO0IwQkM7MTEwMiAxMTYyIDExQUY7QjBCQzsxMTAyIDExNjIgMTFBRjsKK0IwQkQ7QjBCRDsxMTAyIDExNjIgMTFCMDtCMEJEOzExMDIgMTE2MiAxMUIwOworQjBCRTtCMEJFOzExMDIgMTE2MiAxMUIxO0IwQkU7MTEwMiAxMTYyIDExQjE7CitCMEJGO0IwQkY7MTEwMiAxMTYyIDExQjI7QjBCRjsxMTAyIDExNjIgMTFCMjsKK0IwQzA7QjBDMDsxMTAyIDExNjIgMTFCMztCMEMwOzExMDIgMTE2MiAxMUIzOworQjBDMTtCMEMxOzExMDIgMTE2MiAxMUI0O0IwQzE7MTEwMiAxMTYyIDExQjQ7CitCMEMyO0IwQzI7MTEwMiAxMTYyIDExQjU7QjBDMjsxMTAyIDExNjIgMTFCNTsKK0IwQzM7QjBDMzsxMTAyIDExNjIgMTFCNjtCMEMzOzExMDIgMTE2MiAxMUI2OworQjBDNDtCMEM0OzExMDIgMTE2MiAxMUI3O0IwQzQ7MTEwMiAxMTYyIDExQjc7CitCMEM1O0IwQzU7MTEwMiAxMTYyIDExQjg7QjBDNTsxMTAyIDExNjIgMTFCODsKK0IwQzY7QjBDNjsxMTAyIDExNjIgMTFCOTtCMEM2OzExMDIgMTE2MiAxMUI5OworQjBDNztCMEM3OzExMDIgMTE2MiAxMUJBO0IwQzc7MTEwMiAxMTYyIDExQkE7CitCMEM4O0IwQzg7MTEwMiAxMTYyIDExQkI7QjBDODsxMTAyIDExNjIgMTFCQjsKK0IwQzk7QjBDOTsxMTAyIDExNjIgMTFCQztCMEM5OzExMDIgMTE2MiAxMUJDOworQjBDQTtCMENBOzExMDIgMTE2MiAxMUJEO0IwQ0E7MTEwMiAxMTYyIDExQkQ7CitCMENCO0IwQ0I7MTEwMiAxMTYyIDExQkU7QjBDQjsxMTAyIDExNjIgMTFCRTsKK0IwQ0M7QjBDQzsxMTAyIDExNjIgMTFCRjtCMENDOzExMDIgMTE2MiAxMUJGOworQjBDRDtCMENEOzExMDIgMTE2MiAxMUMwO0IwQ0Q7MTEwMiAxMTYyIDExQzA7CitCMENFO0IwQ0U7MTEwMiAxMTYyIDExQzE7QjBDRTsxMTAyIDExNjIgMTFDMTsKK0IwQ0Y7QjBDRjsxMTAyIDExNjIgMTFDMjtCMENGOzExMDIgMTE2MiAxMUMyOworQjBEMDtCMEQwOzExMDIgMTE2MztCMEQwOzExMDIgMTE2MzsKK0IwRDE7QjBEMTsxMTAyIDExNjMgMTFBODtCMEQxOzExMDIgMTE2MyAxMUE4OworQjBEMjtCMEQyOzExMDIgMTE2MyAxMUE5O0IwRDI7MTEwMiAxMTYzIDExQTk7CitCMEQzO0IwRDM7MTEwMiAxMTYzIDExQUE7QjBEMzsxMTAyIDExNjMgMTFBQTsKK0IwRDQ7QjBENDsxMTAyIDExNjMgMTFBQjtCMEQ0OzExMDIgMTE2MyAxMUFCOworQjBENTtCMEQ1OzExMDIgMTE2MyAxMUFDO0IwRDU7MTEwMiAxMTYzIDExQUM7CitCMEQ2O0IwRDY7MTEwMiAxMTYzIDExQUQ7QjBENjsxMTAyIDExNjMgMTFBRDsKK0IwRDc7QjBENzsxMTAyIDExNjMgMTFBRTtCMEQ3OzExMDIgMTE2MyAxMUFFOworQjBEODtCMEQ4OzExMDIgMTE2MyAxMUFGO0IwRDg7MTEwMiAxMTYzIDExQUY7CitCMEQ5O0IwRDk7MTEwMiAxMTYzIDExQjA7QjBEOTsxMTAyIDExNjMgMTFCMDsKK0IwREE7QjBEQTsxMTAyIDExNjMgMTFCMTtCMERBOzExMDIgMTE2MyAxMUIxOworQjBEQjtCMERCOzExMDIgMTE2MyAxMUIyO0IwREI7MTEwMiAxMTYzIDExQjI7CitCMERDO0IwREM7MTEwMiAxMTYzIDExQjM7QjBEQzsxMTAyIDExNjMgMTFCMzsKK0IwREQ7QjBERDsxMTAyIDExNjMgMTFCNDtCMEREOzExMDIgMTE2MyAxMUI0OworQjBERTtCMERFOzExMDIgMTE2MyAxMUI1O0IwREU7MTEwMiAxMTYzIDExQjU7CitCMERGO0IwREY7MTEwMiAxMTYzIDExQjY7QjBERjsxMTAyIDExNjMgMTFCNjsKK0IwRTA7QjBFMDsxMTAyIDExNjMgMTFCNztCMEUwOzExMDIgMTE2MyAxMUI3OworQjBFMTtCMEUxOzExMDIgMTE2MyAxMUI4O0IwRTE7MTEwMiAxMTYzIDExQjg7CitCMEUyO0IwRTI7MTEwMiAxMTYzIDExQjk7QjBFMjsxMTAyIDExNjMgMTFCOTsKK0IwRTM7QjBFMzsxMTAyIDExNjMgMTFCQTtCMEUzOzExMDIgMTE2MyAxMUJBOworQjBFNDtCMEU0OzExMDIgMTE2MyAxMUJCO0IwRTQ7MTEwMiAxMTYzIDExQkI7CitCMEU1O0IwRTU7MTEwMiAxMTYzIDExQkM7QjBFNTsxMTAyIDExNjMgMTFCQzsKK0IwRTY7QjBFNjsxMTAyIDExNjMgMTFCRDtCMEU2OzExMDIgMTE2MyAxMUJEOworQjBFNztCMEU3OzExMDIgMTE2MyAxMUJFO0IwRTc7MTEwMiAxMTYzIDExQkU7CitCMEU4O0IwRTg7MTEwMiAxMTYzIDExQkY7QjBFODsxMTAyIDExNjMgMTFCRjsKK0IwRTk7QjBFOTsxMTAyIDExNjMgMTFDMDtCMEU5OzExMDIgMTE2MyAxMUMwOworQjBFQTtCMEVBOzExMDIgMTE2MyAxMUMxO0IwRUE7MTEwMiAxMTYzIDExQzE7CitCMEVCO0IwRUI7MTEwMiAxMTYzIDExQzI7QjBFQjsxMTAyIDExNjMgMTFDMjsKK0IwRUM7QjBFQzsxMTAyIDExNjQ7QjBFQzsxMTAyIDExNjQ7CitCMEVEO0IwRUQ7MTEwMiAxMTY0IDExQTg7QjBFRDsxMTAyIDExNjQgMTFBODsKK0IwRUU7QjBFRTsxMTAyIDExNjQgMTFBOTtCMEVFOzExMDIgMTE2NCAxMUE5OworQjBFRjtCMEVGOzExMDIgMTE2NCAxMUFBO0IwRUY7MTEwMiAxMTY0IDExQUE7CitCMEYwO0IwRjA7MTEwMiAxMTY0IDExQUI7QjBGMDsxMTAyIDExNjQgMTFBQjsKK0IwRjE7QjBGMTsxMTAyIDExNjQgMTFBQztCMEYxOzExMDIgMTE2NCAxMUFDOworQjBGMjtCMEYyOzExMDIgMTE2NCAxMUFEO0IwRjI7MTEwMiAxMTY0IDExQUQ7CitCMEYzO0IwRjM7MTEwMiAxMTY0IDExQUU7QjBGMzsxMTAyIDExNjQgMTFBRTsKK0IwRjQ7QjBGNDsxMTAyIDExNjQgMTFBRjtCMEY0OzExMDIgMTE2NCAxMUFGOworQjBGNTtCMEY1OzExMDIgMTE2NCAxMUIwO0IwRjU7MTEwMiAxMTY0IDExQjA7CitCMEY2O0IwRjY7MTEwMiAxMTY0IDExQjE7QjBGNjsxMTAyIDExNjQgMTFCMTsKK0IwRjc7QjBGNzsxMTAyIDExNjQgMTFCMjtCMEY3OzExMDIgMTE2NCAxMUIyOworQjBGODtCMEY4OzExMDIgMTE2NCAxMUIzO0IwRjg7MTEwMiAxMTY0IDExQjM7CitCMEY5O0IwRjk7MTEwMiAxMTY0IDExQjQ7QjBGOTsxMTAyIDExNjQgMTFCNDsKK0IwRkE7QjBGQTsxMTAyIDExNjQgMTFCNTtCMEZBOzExMDIgMTE2NCAxMUI1OworQjBGQjtCMEZCOzExMDIgMTE2NCAxMUI2O0IwRkI7MTEwMiAxMTY0IDExQjY7CitCMEZDO0IwRkM7MTEwMiAxMTY0IDExQjc7QjBGQzsxMTAyIDExNjQgMTFCNzsKK0IwRkQ7QjBGRDsxMTAyIDExNjQgMTFCODtCMEZEOzExMDIgMTE2NCAxMUI4OworQjBGRTtCMEZFOzExMDIgMTE2NCAxMUI5O0IwRkU7MTEwMiAxMTY0IDExQjk7CitCMEZGO0IwRkY7MTEwMiAxMTY0IDExQkE7QjBGRjsxMTAyIDExNjQgMTFCQTsKK0IxMDA7QjEwMDsxMTAyIDExNjQgMTFCQjtCMTAwOzExMDIgMTE2NCAxMUJCOworQjEwMTtCMTAxOzExMDIgMTE2NCAxMUJDO0IxMDE7MTEwMiAxMTY0IDExQkM7CitCMTAyO0IxMDI7MTEwMiAxMTY0IDExQkQ7QjEwMjsxMTAyIDExNjQgMTFCRDsKK0IxMDM7QjEwMzsxMTAyIDExNjQgMTFCRTtCMTAzOzExMDIgMTE2NCAxMUJFOworQjEwNDtCMTA0OzExMDIgMTE2NCAxMUJGO0IxMDQ7MTEwMiAxMTY0IDExQkY7CitCMTA1O0IxMDU7MTEwMiAxMTY0IDExQzA7QjEwNTsxMTAyIDExNjQgMTFDMDsKK0IxMDY7QjEwNjsxMTAyIDExNjQgMTFDMTtCMTA2OzExMDIgMTE2NCAxMUMxOworQjEwNztCMTA3OzExMDIgMTE2NCAxMUMyO0IxMDc7MTEwMiAxMTY0IDExQzI7CitCMTA4O0IxMDg7MTEwMiAxMTY1O0IxMDg7MTEwMiAxMTY1OworQjEwOTtCMTA5OzExMDIgMTE2NSAxMUE4O0IxMDk7MTEwMiAxMTY1IDExQTg7CitCMTBBO0IxMEE7MTEwMiAxMTY1IDExQTk7QjEwQTsxMTAyIDExNjUgMTFBOTsKK0IxMEI7QjEwQjsxMTAyIDExNjUgMTFBQTtCMTBCOzExMDIgMTE2NSAxMUFBOworQjEwQztCMTBDOzExMDIgMTE2NSAxMUFCO0IxMEM7MTEwMiAxMTY1IDExQUI7CitCMTBEO0IxMEQ7MTEwMiAxMTY1IDExQUM7QjEwRDsxMTAyIDExNjUgMTFBQzsKK0IxMEU7QjEwRTsxMTAyIDExNjUgMTFBRDtCMTBFOzExMDIgMTE2NSAxMUFEOworQjEwRjtCMTBGOzExMDIgMTE2NSAxMUFFO0IxMEY7MTEwMiAxMTY1IDExQUU7CitCMTEwO0IxMTA7MTEwMiAxMTY1IDExQUY7QjExMDsxMTAyIDExNjUgMTFBRjsKK0IxMTE7QjExMTsxMTAyIDExNjUgMTFCMDtCMTExOzExMDIgMTE2NSAxMUIwOworQjExMjtCMTEyOzExMDIgMTE2NSAxMUIxO0IxMTI7MTEwMiAxMTY1IDExQjE7CitCMTEzO0IxMTM7MTEwMiAxMTY1IDExQjI7QjExMzsxMTAyIDExNjUgMTFCMjsKK0IxMTQ7QjExNDsxMTAyIDExNjUgMTFCMztCMTE0OzExMDIgMTE2NSAxMUIzOworQjExNTtCMTE1OzExMDIgMTE2NSAxMUI0O0IxMTU7MTEwMiAxMTY1IDExQjQ7CitCMTE2O0IxMTY7MTEwMiAxMTY1IDExQjU7QjExNjsxMTAyIDExNjUgMTFCNTsKK0IxMTc7QjExNzsxMTAyIDExNjUgMTFCNjtCMTE3OzExMDIgMTE2NSAxMUI2OworQjExODtCMTE4OzExMDIgMTE2NSAxMUI3O0IxMTg7MTEwMiAxMTY1IDExQjc7CitCMTE5O0IxMTk7MTEwMiAxMTY1IDExQjg7QjExOTsxMTAyIDExNjUgMTFCODsKK0IxMUE7QjExQTsxMTAyIDExNjUgMTFCOTtCMTFBOzExMDIgMTE2NSAxMUI5OworQjExQjtCMTFCOzExMDIgMTE2NSAxMUJBO0IxMUI7MTEwMiAxMTY1IDExQkE7CitCMTFDO0IxMUM7MTEwMiAxMTY1IDExQkI7QjExQzsxMTAyIDExNjUgMTFCQjsKK0IxMUQ7QjExRDsxMTAyIDExNjUgMTFCQztCMTFEOzExMDIgMTE2NSAxMUJDOworQjExRTtCMTFFOzExMDIgMTE2NSAxMUJEO0IxMUU7MTEwMiAxMTY1IDExQkQ7CitCMTFGO0IxMUY7MTEwMiAxMTY1IDExQkU7QjExRjsxMTAyIDExNjUgMTFCRTsKK0IxMjA7QjEyMDsxMTAyIDExNjUgMTFCRjtCMTIwOzExMDIgMTE2NSAxMUJGOworQjEyMTtCMTIxOzExMDIgMTE2NSAxMUMwO0IxMjE7MTEwMiAxMTY1IDExQzA7CitCMTIyO0IxMjI7MTEwMiAxMTY1IDExQzE7QjEyMjsxMTAyIDExNjUgMTFDMTsKK0IxMjM7QjEyMzsxMTAyIDExNjUgMTFDMjtCMTIzOzExMDIgMTE2NSAxMUMyOworQjEyNDtCMTI0OzExMDIgMTE2NjtCMTI0OzExMDIgMTE2NjsKK0IxMjU7QjEyNTsxMTAyIDExNjYgMTFBODtCMTI1OzExMDIgMTE2NiAxMUE4OworQjEyNjtCMTI2OzExMDIgMTE2NiAxMUE5O0IxMjY7MTEwMiAxMTY2IDExQTk7CitCMTI3O0IxMjc7MTEwMiAxMTY2IDExQUE7QjEyNzsxMTAyIDExNjYgMTFBQTsKK0IxMjg7QjEyODsxMTAyIDExNjYgMTFBQjtCMTI4OzExMDIgMTE2NiAxMUFCOworQjEyOTtCMTI5OzExMDIgMTE2NiAxMUFDO0IxMjk7MTEwMiAxMTY2IDExQUM7CitCMTJBO0IxMkE7MTEwMiAxMTY2IDExQUQ7QjEyQTsxMTAyIDExNjYgMTFBRDsKK0IxMkI7QjEyQjsxMTAyIDExNjYgMTFBRTtCMTJCOzExMDIgMTE2NiAxMUFFOworQjEyQztCMTJDOzExMDIgMTE2NiAxMUFGO0IxMkM7MTEwMiAxMTY2IDExQUY7CitCMTJEO0IxMkQ7MTEwMiAxMTY2IDExQjA7QjEyRDsxMTAyIDExNjYgMTFCMDsKK0IxMkU7QjEyRTsxMTAyIDExNjYgMTFCMTtCMTJFOzExMDIgMTE2NiAxMUIxOworQjEyRjtCMTJGOzExMDIgMTE2NiAxMUIyO0IxMkY7MTEwMiAxMTY2IDExQjI7CitCMTMwO0IxMzA7MTEwMiAxMTY2IDExQjM7QjEzMDsxMTAyIDExNjYgMTFCMzsKK0IxMzE7QjEzMTsxMTAyIDExNjYgMTFCNDtCMTMxOzExMDIgMTE2NiAxMUI0OworQjEzMjtCMTMyOzExMDIgMTE2NiAxMUI1O0IxMzI7MTEwMiAxMTY2IDExQjU7CitCMTMzO0IxMzM7MTEwMiAxMTY2IDExQjY7QjEzMzsxMTAyIDExNjYgMTFCNjsKK0IxMzQ7QjEzNDsxMTAyIDExNjYgMTFCNztCMTM0OzExMDIgMTE2NiAxMUI3OworQjEzNTtCMTM1OzExMDIgMTE2NiAxMUI4O0IxMzU7MTEwMiAxMTY2IDExQjg7CitCMTM2O0IxMzY7MTEwMiAxMTY2IDExQjk7QjEzNjsxMTAyIDExNjYgMTFCOTsKK0IxMzc7QjEzNzsxMTAyIDExNjYgMTFCQTtCMTM3OzExMDIgMTE2NiAxMUJBOworQjEzODtCMTM4OzExMDIgMTE2NiAxMUJCO0IxMzg7MTEwMiAxMTY2IDExQkI7CitCMTM5O0IxMzk7MTEwMiAxMTY2IDExQkM7QjEzOTsxMTAyIDExNjYgMTFCQzsKK0IxM0E7QjEzQTsxMTAyIDExNjYgMTFCRDtCMTNBOzExMDIgMTE2NiAxMUJEOworQjEzQjtCMTNCOzExMDIgMTE2NiAxMUJFO0IxM0I7MTEwMiAxMTY2IDExQkU7CitCMTNDO0IxM0M7MTEwMiAxMTY2IDExQkY7QjEzQzsxMTAyIDExNjYgMTFCRjsKK0IxM0Q7QjEzRDsxMTAyIDExNjYgMTFDMDtCMTNEOzExMDIgMTE2NiAxMUMwOworQjEzRTtCMTNFOzExMDIgMTE2NiAxMUMxO0IxM0U7MTEwMiAxMTY2IDExQzE7CitCMTNGO0IxM0Y7MTEwMiAxMTY2IDExQzI7QjEzRjsxMTAyIDExNjYgMTFDMjsKK0IxNDA7QjE0MDsxMTAyIDExNjc7QjE0MDsxMTAyIDExNjc7CitCMTQxO0IxNDE7MTEwMiAxMTY3IDExQTg7QjE0MTsxMTAyIDExNjcgMTFBODsKK0IxNDI7QjE0MjsxMTAyIDExNjcgMTFBOTtCMTQyOzExMDIgMTE2NyAxMUE5OworQjE0MztCMTQzOzExMDIgMTE2NyAxMUFBO0IxNDM7MTEwMiAxMTY3IDExQUE7CitCMTQ0O0IxNDQ7MTEwMiAxMTY3IDExQUI7QjE0NDsxMTAyIDExNjcgMTFBQjsKK0IxNDU7QjE0NTsxMTAyIDExNjcgMTFBQztCMTQ1OzExMDIgMTE2NyAxMUFDOworQjE0NjtCMTQ2OzExMDIgMTE2NyAxMUFEO0IxNDY7MTEwMiAxMTY3IDExQUQ7CitCMTQ3O0IxNDc7MTEwMiAxMTY3IDExQUU7QjE0NzsxMTAyIDExNjcgMTFBRTsKK0IxNDg7QjE0ODsxMTAyIDExNjcgMTFBRjtCMTQ4OzExMDIgMTE2NyAxMUFGOworQjE0OTtCMTQ5OzExMDIgMTE2NyAxMUIwO0IxNDk7MTEwMiAxMTY3IDExQjA7CitCMTRBO0IxNEE7MTEwMiAxMTY3IDExQjE7QjE0QTsxMTAyIDExNjcgMTFCMTsKK0IxNEI7QjE0QjsxMTAyIDExNjcgMTFCMjtCMTRCOzExMDIgMTE2NyAxMUIyOworQjE0QztCMTRDOzExMDIgMTE2NyAxMUIzO0IxNEM7MTEwMiAxMTY3IDExQjM7CitCMTREO0IxNEQ7MTEwMiAxMTY3IDExQjQ7QjE0RDsxMTAyIDExNjcgMTFCNDsKK0IxNEU7QjE0RTsxMTAyIDExNjcgMTFCNTtCMTRFOzExMDIgMTE2NyAxMUI1OworQjE0RjtCMTRGOzExMDIgMTE2NyAxMUI2O0IxNEY7MTEwMiAxMTY3IDExQjY7CitCMTUwO0IxNTA7MTEwMiAxMTY3IDExQjc7QjE1MDsxMTAyIDExNjcgMTFCNzsKK0IxNTE7QjE1MTsxMTAyIDExNjcgMTFCODtCMTUxOzExMDIgMTE2NyAxMUI4OworQjE1MjtCMTUyOzExMDIgMTE2NyAxMUI5O0IxNTI7MTEwMiAxMTY3IDExQjk7CitCMTUzO0IxNTM7MTEwMiAxMTY3IDExQkE7QjE1MzsxMTAyIDExNjcgMTFCQTsKK0IxNTQ7QjE1NDsxMTAyIDExNjcgMTFCQjtCMTU0OzExMDIgMTE2NyAxMUJCOworQjE1NTtCMTU1OzExMDIgMTE2NyAxMUJDO0IxNTU7MTEwMiAxMTY3IDExQkM7CitCMTU2O0IxNTY7MTEwMiAxMTY3IDExQkQ7QjE1NjsxMTAyIDExNjcgMTFCRDsKK0IxNTc7QjE1NzsxMTAyIDExNjcgMTFCRTtCMTU3OzExMDIgMTE2NyAxMUJFOworQjE1ODtCMTU4OzExMDIgMTE2NyAxMUJGO0IxNTg7MTEwMiAxMTY3IDExQkY7CitCMTU5O0IxNTk7MTEwMiAxMTY3IDExQzA7QjE1OTsxMTAyIDExNjcgMTFDMDsKK0IxNUE7QjE1QTsxMTAyIDExNjcgMTFDMTtCMTVBOzExMDIgMTE2NyAxMUMxOworQjE1QjtCMTVCOzExMDIgMTE2NyAxMUMyO0IxNUI7MTEwMiAxMTY3IDExQzI7CitCMTVDO0IxNUM7MTEwMiAxMTY4O0IxNUM7MTEwMiAxMTY4OworQjE1RDtCMTVEOzExMDIgMTE2OCAxMUE4O0IxNUQ7MTEwMiAxMTY4IDExQTg7CitCMTVFO0IxNUU7MTEwMiAxMTY4IDExQTk7QjE1RTsxMTAyIDExNjggMTFBOTsKK0IxNUY7QjE1RjsxMTAyIDExNjggMTFBQTtCMTVGOzExMDIgMTE2OCAxMUFBOworQjE2MDtCMTYwOzExMDIgMTE2OCAxMUFCO0IxNjA7MTEwMiAxMTY4IDExQUI7CitCMTYxO0IxNjE7MTEwMiAxMTY4IDExQUM7QjE2MTsxMTAyIDExNjggMTFBQzsKK0IxNjI7QjE2MjsxMTAyIDExNjggMTFBRDtCMTYyOzExMDIgMTE2OCAxMUFEOworQjE2MztCMTYzOzExMDIgMTE2OCAxMUFFO0IxNjM7MTEwMiAxMTY4IDExQUU7CitCMTY0O0IxNjQ7MTEwMiAxMTY4IDExQUY7QjE2NDsxMTAyIDExNjggMTFBRjsKK0IxNjU7QjE2NTsxMTAyIDExNjggMTFCMDtCMTY1OzExMDIgMTE2OCAxMUIwOworQjE2NjtCMTY2OzExMDIgMTE2OCAxMUIxO0IxNjY7MTEwMiAxMTY4IDExQjE7CitCMTY3O0IxNjc7MTEwMiAxMTY4IDExQjI7QjE2NzsxMTAyIDExNjggMTFCMjsKK0IxNjg7QjE2ODsxMTAyIDExNjggMTFCMztCMTY4OzExMDIgMTE2OCAxMUIzOworQjE2OTtCMTY5OzExMDIgMTE2OCAxMUI0O0IxNjk7MTEwMiAxMTY4IDExQjQ7CitCMTZBO0IxNkE7MTEwMiAxMTY4IDExQjU7QjE2QTsxMTAyIDExNjggMTFCNTsKK0IxNkI7QjE2QjsxMTAyIDExNjggMTFCNjtCMTZCOzExMDIgMTE2OCAxMUI2OworQjE2QztCMTZDOzExMDIgMTE2OCAxMUI3O0IxNkM7MTEwMiAxMTY4IDExQjc7CitCMTZEO0IxNkQ7MTEwMiAxMTY4IDExQjg7QjE2RDsxMTAyIDExNjggMTFCODsKK0IxNkU7QjE2RTsxMTAyIDExNjggMTFCOTtCMTZFOzExMDIgMTE2OCAxMUI5OworQjE2RjtCMTZGOzExMDIgMTE2OCAxMUJBO0IxNkY7MTEwMiAxMTY4IDExQkE7CitCMTcwO0IxNzA7MTEwMiAxMTY4IDExQkI7QjE3MDsxMTAyIDExNjggMTFCQjsKK0IxNzE7QjE3MTsxMTAyIDExNjggMTFCQztCMTcxOzExMDIgMTE2OCAxMUJDOworQjE3MjtCMTcyOzExMDIgMTE2OCAxMUJEO0IxNzI7MTEwMiAxMTY4IDExQkQ7CitCMTczO0IxNzM7MTEwMiAxMTY4IDExQkU7QjE3MzsxMTAyIDExNjggMTFCRTsKK0IxNzQ7QjE3NDsxMTAyIDExNjggMTFCRjtCMTc0OzExMDIgMTE2OCAxMUJGOworQjE3NTtCMTc1OzExMDIgMTE2OCAxMUMwO0IxNzU7MTEwMiAxMTY4IDExQzA7CitCMTc2O0IxNzY7MTEwMiAxMTY4IDExQzE7QjE3NjsxMTAyIDExNjggMTFDMTsKK0IxNzc7QjE3NzsxMTAyIDExNjggMTFDMjtCMTc3OzExMDIgMTE2OCAxMUMyOworQjE3ODtCMTc4OzExMDIgMTE2OTtCMTc4OzExMDIgMTE2OTsKK0IxNzk7QjE3OTsxMTAyIDExNjkgMTFBODtCMTc5OzExMDIgMTE2OSAxMUE4OworQjE3QTtCMTdBOzExMDIgMTE2OSAxMUE5O0IxN0E7MTEwMiAxMTY5IDExQTk7CitCMTdCO0IxN0I7MTEwMiAxMTY5IDExQUE7QjE3QjsxMTAyIDExNjkgMTFBQTsKK0IxN0M7QjE3QzsxMTAyIDExNjkgMTFBQjtCMTdDOzExMDIgMTE2OSAxMUFCOworQjE3RDtCMTdEOzExMDIgMTE2OSAxMUFDO0IxN0Q7MTEwMiAxMTY5IDExQUM7CitCMTdFO0IxN0U7MTEwMiAxMTY5IDExQUQ7QjE3RTsxMTAyIDExNjkgMTFBRDsKK0IxN0Y7QjE3RjsxMTAyIDExNjkgMTFBRTtCMTdGOzExMDIgMTE2OSAxMUFFOworQjE4MDtCMTgwOzExMDIgMTE2OSAxMUFGO0IxODA7MTEwMiAxMTY5IDExQUY7CitCMTgxO0IxODE7MTEwMiAxMTY5IDExQjA7QjE4MTsxMTAyIDExNjkgMTFCMDsKK0IxODI7QjE4MjsxMTAyIDExNjkgMTFCMTtCMTgyOzExMDIgMTE2OSAxMUIxOworQjE4MztCMTgzOzExMDIgMTE2OSAxMUIyO0IxODM7MTEwMiAxMTY5IDExQjI7CitCMTg0O0IxODQ7MTEwMiAxMTY5IDExQjM7QjE4NDsxMTAyIDExNjkgMTFCMzsKK0IxODU7QjE4NTsxMTAyIDExNjkgMTFCNDtCMTg1OzExMDIgMTE2OSAxMUI0OworQjE4NjtCMTg2OzExMDIgMTE2OSAxMUI1O0IxODY7MTEwMiAxMTY5IDExQjU7CitCMTg3O0IxODc7MTEwMiAxMTY5IDExQjY7QjE4NzsxMTAyIDExNjkgMTFCNjsKK0IxODg7QjE4ODsxMTAyIDExNjkgMTFCNztCMTg4OzExMDIgMTE2OSAxMUI3OworQjE4OTtCMTg5OzExMDIgMTE2OSAxMUI4O0IxODk7MTEwMiAxMTY5IDExQjg7CitCMThBO0IxOEE7MTEwMiAxMTY5IDExQjk7QjE4QTsxMTAyIDExNjkgMTFCOTsKK0IxOEI7QjE4QjsxMTAyIDExNjkgMTFCQTtCMThCOzExMDIgMTE2OSAxMUJBOworQjE4QztCMThDOzExMDIgMTE2OSAxMUJCO0IxOEM7MTEwMiAxMTY5IDExQkI7CitCMThEO0IxOEQ7MTEwMiAxMTY5IDExQkM7QjE4RDsxMTAyIDExNjkgMTFCQzsKK0IxOEU7QjE4RTsxMTAyIDExNjkgMTFCRDtCMThFOzExMDIgMTE2OSAxMUJEOworQjE4RjtCMThGOzExMDIgMTE2OSAxMUJFO0IxOEY7MTEwMiAxMTY5IDExQkU7CitCMTkwO0IxOTA7MTEwMiAxMTY5IDExQkY7QjE5MDsxMTAyIDExNjkgMTFCRjsKK0IxOTE7QjE5MTsxMTAyIDExNjkgMTFDMDtCMTkxOzExMDIgMTE2OSAxMUMwOworQjE5MjtCMTkyOzExMDIgMTE2OSAxMUMxO0IxOTI7MTEwMiAxMTY5IDExQzE7CitCMTkzO0IxOTM7MTEwMiAxMTY5IDExQzI7QjE5MzsxMTAyIDExNjkgMTFDMjsKK0IxOTQ7QjE5NDsxMTAyIDExNkE7QjE5NDsxMTAyIDExNkE7CitCMTk1O0IxOTU7MTEwMiAxMTZBIDExQTg7QjE5NTsxMTAyIDExNkEgMTFBODsKK0IxOTY7QjE5NjsxMTAyIDExNkEgMTFBOTtCMTk2OzExMDIgMTE2QSAxMUE5OworQjE5NztCMTk3OzExMDIgMTE2QSAxMUFBO0IxOTc7MTEwMiAxMTZBIDExQUE7CitCMTk4O0IxOTg7MTEwMiAxMTZBIDExQUI7QjE5ODsxMTAyIDExNkEgMTFBQjsKK0IxOTk7QjE5OTsxMTAyIDExNkEgMTFBQztCMTk5OzExMDIgMTE2QSAxMUFDOworQjE5QTtCMTlBOzExMDIgMTE2QSAxMUFEO0IxOUE7MTEwMiAxMTZBIDExQUQ7CitCMTlCO0IxOUI7MTEwMiAxMTZBIDExQUU7QjE5QjsxMTAyIDExNkEgMTFBRTsKK0IxOUM7QjE5QzsxMTAyIDExNkEgMTFBRjtCMTlDOzExMDIgMTE2QSAxMUFGOworQjE5RDtCMTlEOzExMDIgMTE2QSAxMUIwO0IxOUQ7MTEwMiAxMTZBIDExQjA7CitCMTlFO0IxOUU7MTEwMiAxMTZBIDExQjE7QjE5RTsxMTAyIDExNkEgMTFCMTsKK0IxOUY7QjE5RjsxMTAyIDExNkEgMTFCMjtCMTlGOzExMDIgMTE2QSAxMUIyOworQjFBMDtCMUEwOzExMDIgMTE2QSAxMUIzO0IxQTA7MTEwMiAxMTZBIDExQjM7CitCMUExO0IxQTE7MTEwMiAxMTZBIDExQjQ7QjFBMTsxMTAyIDExNkEgMTFCNDsKK0IxQTI7QjFBMjsxMTAyIDExNkEgMTFCNTtCMUEyOzExMDIgMTE2QSAxMUI1OworQjFBMztCMUEzOzExMDIgMTE2QSAxMUI2O0IxQTM7MTEwMiAxMTZBIDExQjY7CitCMUE0O0IxQTQ7MTEwMiAxMTZBIDExQjc7QjFBNDsxMTAyIDExNkEgMTFCNzsKK0IxQTU7QjFBNTsxMTAyIDExNkEgMTFCODtCMUE1OzExMDIgMTE2QSAxMUI4OworQjFBNjtCMUE2OzExMDIgMTE2QSAxMUI5O0IxQTY7MTEwMiAxMTZBIDExQjk7CitCMUE3O0IxQTc7MTEwMiAxMTZBIDExQkE7QjFBNzsxMTAyIDExNkEgMTFCQTsKK0IxQTg7QjFBODsxMTAyIDExNkEgMTFCQjtCMUE4OzExMDIgMTE2QSAxMUJCOworQjFBOTtCMUE5OzExMDIgMTE2QSAxMUJDO0IxQTk7MTEwMiAxMTZBIDExQkM7CitCMUFBO0IxQUE7MTEwMiAxMTZBIDExQkQ7QjFBQTsxMTAyIDExNkEgMTFCRDsKK0IxQUI7QjFBQjsxMTAyIDExNkEgMTFCRTtCMUFCOzExMDIgMTE2QSAxMUJFOworQjFBQztCMUFDOzExMDIgMTE2QSAxMUJGO0IxQUM7MTEwMiAxMTZBIDExQkY7CitCMUFEO0IxQUQ7MTEwMiAxMTZBIDExQzA7QjFBRDsxMTAyIDExNkEgMTFDMDsKK0IxQUU7QjFBRTsxMTAyIDExNkEgMTFDMTtCMUFFOzExMDIgMTE2QSAxMUMxOworQjFBRjtCMUFGOzExMDIgMTE2QSAxMUMyO0IxQUY7MTEwMiAxMTZBIDExQzI7CitCMUIwO0IxQjA7MTEwMiAxMTZCO0IxQjA7MTEwMiAxMTZCOworQjFCMTtCMUIxOzExMDIgMTE2QiAxMUE4O0IxQjE7MTEwMiAxMTZCIDExQTg7CitCMUIyO0IxQjI7MTEwMiAxMTZCIDExQTk7QjFCMjsxMTAyIDExNkIgMTFBOTsKK0IxQjM7QjFCMzsxMTAyIDExNkIgMTFBQTtCMUIzOzExMDIgMTE2QiAxMUFBOworQjFCNDtCMUI0OzExMDIgMTE2QiAxMUFCO0IxQjQ7MTEwMiAxMTZCIDExQUI7CitCMUI1O0IxQjU7MTEwMiAxMTZCIDExQUM7QjFCNTsxMTAyIDExNkIgMTFBQzsKK0IxQjY7QjFCNjsxMTAyIDExNkIgMTFBRDtCMUI2OzExMDIgMTE2QiAxMUFEOworQjFCNztCMUI3OzExMDIgMTE2QiAxMUFFO0IxQjc7MTEwMiAxMTZCIDExQUU7CitCMUI4O0IxQjg7MTEwMiAxMTZCIDExQUY7QjFCODsxMTAyIDExNkIgMTFBRjsKK0IxQjk7QjFCOTsxMTAyIDExNkIgMTFCMDtCMUI5OzExMDIgMTE2QiAxMUIwOworQjFCQTtCMUJBOzExMDIgMTE2QiAxMUIxO0IxQkE7MTEwMiAxMTZCIDExQjE7CitCMUJCO0IxQkI7MTEwMiAxMTZCIDExQjI7QjFCQjsxMTAyIDExNkIgMTFCMjsKK0IxQkM7QjFCQzsxMTAyIDExNkIgMTFCMztCMUJDOzExMDIgMTE2QiAxMUIzOworQjFCRDtCMUJEOzExMDIgMTE2QiAxMUI0O0IxQkQ7MTEwMiAxMTZCIDExQjQ7CitCMUJFO0IxQkU7MTEwMiAxMTZCIDExQjU7QjFCRTsxMTAyIDExNkIgMTFCNTsKK0IxQkY7QjFCRjsxMTAyIDExNkIgMTFCNjtCMUJGOzExMDIgMTE2QiAxMUI2OworQjFDMDtCMUMwOzExMDIgMTE2QiAxMUI3O0IxQzA7MTEwMiAxMTZCIDExQjc7CitCMUMxO0IxQzE7MTEwMiAxMTZCIDExQjg7QjFDMTsxMTAyIDExNkIgMTFCODsKK0IxQzI7QjFDMjsxMTAyIDExNkIgMTFCOTtCMUMyOzExMDIgMTE2QiAxMUI5OworQjFDMztCMUMzOzExMDIgMTE2QiAxMUJBO0IxQzM7MTEwMiAxMTZCIDExQkE7CitCMUM0O0IxQzQ7MTEwMiAxMTZCIDExQkI7QjFDNDsxMTAyIDExNkIgMTFCQjsKK0IxQzU7QjFDNTsxMTAyIDExNkIgMTFCQztCMUM1OzExMDIgMTE2QiAxMUJDOworQjFDNjtCMUM2OzExMDIgMTE2QiAxMUJEO0IxQzY7MTEwMiAxMTZCIDExQkQ7CitCMUM3O0IxQzc7MTEwMiAxMTZCIDExQkU7QjFDNzsxMTAyIDExNkIgMTFCRTsKK0IxQzg7QjFDODsxMTAyIDExNkIgMTFCRjtCMUM4OzExMDIgMTE2QiAxMUJGOworQjFDOTtCMUM5OzExMDIgMTE2QiAxMUMwO0IxQzk7MTEwMiAxMTZCIDExQzA7CitCMUNBO0IxQ0E7MTEwMiAxMTZCIDExQzE7QjFDQTsxMTAyIDExNkIgMTFDMTsKK0IxQ0I7QjFDQjsxMTAyIDExNkIgMTFDMjtCMUNCOzExMDIgMTE2QiAxMUMyOworQjFDQztCMUNDOzExMDIgMTE2QztCMUNDOzExMDIgMTE2QzsKK0IxQ0Q7QjFDRDsxMTAyIDExNkMgMTFBODtCMUNEOzExMDIgMTE2QyAxMUE4OworQjFDRTtCMUNFOzExMDIgMTE2QyAxMUE5O0IxQ0U7MTEwMiAxMTZDIDExQTk7CitCMUNGO0IxQ0Y7MTEwMiAxMTZDIDExQUE7QjFDRjsxMTAyIDExNkMgMTFBQTsKK0IxRDA7QjFEMDsxMTAyIDExNkMgMTFBQjtCMUQwOzExMDIgMTE2QyAxMUFCOworQjFEMTtCMUQxOzExMDIgMTE2QyAxMUFDO0IxRDE7MTEwMiAxMTZDIDExQUM7CitCMUQyO0IxRDI7MTEwMiAxMTZDIDExQUQ7QjFEMjsxMTAyIDExNkMgMTFBRDsKK0IxRDM7QjFEMzsxMTAyIDExNkMgMTFBRTtCMUQzOzExMDIgMTE2QyAxMUFFOworQjFENDtCMUQ0OzExMDIgMTE2QyAxMUFGO0IxRDQ7MTEwMiAxMTZDIDExQUY7CitCMUQ1O0IxRDU7MTEwMiAxMTZDIDExQjA7QjFENTsxMTAyIDExNkMgMTFCMDsKK0IxRDY7QjFENjsxMTAyIDExNkMgMTFCMTtCMUQ2OzExMDIgMTE2QyAxMUIxOworQjFENztCMUQ3OzExMDIgMTE2QyAxMUIyO0IxRDc7MTEwMiAxMTZDIDExQjI7CitCMUQ4O0IxRDg7MTEwMiAxMTZDIDExQjM7QjFEODsxMTAyIDExNkMgMTFCMzsKK0IxRDk7QjFEOTsxMTAyIDExNkMgMTFCNDtCMUQ5OzExMDIgMTE2QyAxMUI0OworQjFEQTtCMURBOzExMDIgMTE2QyAxMUI1O0IxREE7MTEwMiAxMTZDIDExQjU7CitCMURCO0IxREI7MTEwMiAxMTZDIDExQjY7QjFEQjsxMTAyIDExNkMgMTFCNjsKK0IxREM7QjFEQzsxMTAyIDExNkMgMTFCNztCMURDOzExMDIgMTE2QyAxMUI3OworQjFERDtCMUREOzExMDIgMTE2QyAxMUI4O0IxREQ7MTEwMiAxMTZDIDExQjg7CitCMURFO0IxREU7MTEwMiAxMTZDIDExQjk7QjFERTsxMTAyIDExNkMgMTFCOTsKK0IxREY7QjFERjsxMTAyIDExNkMgMTFCQTtCMURGOzExMDIgMTE2QyAxMUJBOworQjFFMDtCMUUwOzExMDIgMTE2QyAxMUJCO0IxRTA7MTEwMiAxMTZDIDExQkI7CitCMUUxO0IxRTE7MTEwMiAxMTZDIDExQkM7QjFFMTsxMTAyIDExNkMgMTFCQzsKK0IxRTI7QjFFMjsxMTAyIDExNkMgMTFCRDtCMUUyOzExMDIgMTE2QyAxMUJEOworQjFFMztCMUUzOzExMDIgMTE2QyAxMUJFO0IxRTM7MTEwMiAxMTZDIDExQkU7CitCMUU0O0IxRTQ7MTEwMiAxMTZDIDExQkY7QjFFNDsxMTAyIDExNkMgMTFCRjsKK0IxRTU7QjFFNTsxMTAyIDExNkMgMTFDMDtCMUU1OzExMDIgMTE2QyAxMUMwOworQjFFNjtCMUU2OzExMDIgMTE2QyAxMUMxO0IxRTY7MTEwMiAxMTZDIDExQzE7CitCMUU3O0IxRTc7MTEwMiAxMTZDIDExQzI7QjFFNzsxMTAyIDExNkMgMTFDMjsKK0IxRTg7QjFFODsxMTAyIDExNkQ7QjFFODsxMTAyIDExNkQ7CitCMUU5O0IxRTk7MTEwMiAxMTZEIDExQTg7QjFFOTsxMTAyIDExNkQgMTFBODsKK0IxRUE7QjFFQTsxMTAyIDExNkQgMTFBOTtCMUVBOzExMDIgMTE2RCAxMUE5OworQjFFQjtCMUVCOzExMDIgMTE2RCAxMUFBO0IxRUI7MTEwMiAxMTZEIDExQUE7CitCMUVDO0IxRUM7MTEwMiAxMTZEIDExQUI7QjFFQzsxMTAyIDExNkQgMTFBQjsKK0IxRUQ7QjFFRDsxMTAyIDExNkQgMTFBQztCMUVEOzExMDIgMTE2RCAxMUFDOworQjFFRTtCMUVFOzExMDIgMTE2RCAxMUFEO0IxRUU7MTEwMiAxMTZEIDExQUQ7CitCMUVGO0IxRUY7MTEwMiAxMTZEIDExQUU7QjFFRjsxMTAyIDExNkQgMTFBRTsKK0IxRjA7QjFGMDsxMTAyIDExNkQgMTFBRjtCMUYwOzExMDIgMTE2RCAxMUFGOworQjFGMTtCMUYxOzExMDIgMTE2RCAxMUIwO0IxRjE7MTEwMiAxMTZEIDExQjA7CitCMUYyO0IxRjI7MTEwMiAxMTZEIDExQjE7QjFGMjsxMTAyIDExNkQgMTFCMTsKK0IxRjM7QjFGMzsxMTAyIDExNkQgMTFCMjtCMUYzOzExMDIgMTE2RCAxMUIyOworQjFGNDtCMUY0OzExMDIgMTE2RCAxMUIzO0IxRjQ7MTEwMiAxMTZEIDExQjM7CitCMUY1O0IxRjU7MTEwMiAxMTZEIDExQjQ7QjFGNTsxMTAyIDExNkQgMTFCNDsKK0IxRjY7QjFGNjsxMTAyIDExNkQgMTFCNTtCMUY2OzExMDIgMTE2RCAxMUI1OworQjFGNztCMUY3OzExMDIgMTE2RCAxMUI2O0IxRjc7MTEwMiAxMTZEIDExQjY7CitCMUY4O0IxRjg7MTEwMiAxMTZEIDExQjc7QjFGODsxMTAyIDExNkQgMTFCNzsKK0IxRjk7QjFGOTsxMTAyIDExNkQgMTFCODtCMUY5OzExMDIgMTE2RCAxMUI4OworQjFGQTtCMUZBOzExMDIgMTE2RCAxMUI5O0IxRkE7MTEwMiAxMTZEIDExQjk7CitCMUZCO0IxRkI7MTEwMiAxMTZEIDExQkE7QjFGQjsxMTAyIDExNkQgMTFCQTsKK0IxRkM7QjFGQzsxMTAyIDExNkQgMTFCQjtCMUZDOzExMDIgMTE2RCAxMUJCOworQjFGRDtCMUZEOzExMDIgMTE2RCAxMUJDO0IxRkQ7MTEwMiAxMTZEIDExQkM7CitCMUZFO0IxRkU7MTEwMiAxMTZEIDExQkQ7QjFGRTsxMTAyIDExNkQgMTFCRDsKK0IxRkY7QjFGRjsxMTAyIDExNkQgMTFCRTtCMUZGOzExMDIgMTE2RCAxMUJFOworQjIwMDtCMjAwOzExMDIgMTE2RCAxMUJGO0IyMDA7MTEwMiAxMTZEIDExQkY7CitCMjAxO0IyMDE7MTEwMiAxMTZEIDExQzA7QjIwMTsxMTAyIDExNkQgMTFDMDsKK0IyMDI7QjIwMjsxMTAyIDExNkQgMTFDMTtCMjAyOzExMDIgMTE2RCAxMUMxOworQjIwMztCMjAzOzExMDIgMTE2RCAxMUMyO0IyMDM7MTEwMiAxMTZEIDExQzI7CitCMjA0O0IyMDQ7MTEwMiAxMTZFO0IyMDQ7MTEwMiAxMTZFOworQjIwNTtCMjA1OzExMDIgMTE2RSAxMUE4O0IyMDU7MTEwMiAxMTZFIDExQTg7CitCMjA2O0IyMDY7MTEwMiAxMTZFIDExQTk7QjIwNjsxMTAyIDExNkUgMTFBOTsKK0IyMDc7QjIwNzsxMTAyIDExNkUgMTFBQTtCMjA3OzExMDIgMTE2RSAxMUFBOworQjIwODtCMjA4OzExMDIgMTE2RSAxMUFCO0IyMDg7MTEwMiAxMTZFIDExQUI7CitCMjA5O0IyMDk7MTEwMiAxMTZFIDExQUM7QjIwOTsxMTAyIDExNkUgMTFBQzsKK0IyMEE7QjIwQTsxMTAyIDExNkUgMTFBRDtCMjBBOzExMDIgMTE2RSAxMUFEOworQjIwQjtCMjBCOzExMDIgMTE2RSAxMUFFO0IyMEI7MTEwMiAxMTZFIDExQUU7CitCMjBDO0IyMEM7MTEwMiAxMTZFIDExQUY7QjIwQzsxMTAyIDExNkUgMTFBRjsKK0IyMEQ7QjIwRDsxMTAyIDExNkUgMTFCMDtCMjBEOzExMDIgMTE2RSAxMUIwOworQjIwRTtCMjBFOzExMDIgMTE2RSAxMUIxO0IyMEU7MTEwMiAxMTZFIDExQjE7CitCMjBGO0IyMEY7MTEwMiAxMTZFIDExQjI7QjIwRjsxMTAyIDExNkUgMTFCMjsKK0IyMTA7QjIxMDsxMTAyIDExNkUgMTFCMztCMjEwOzExMDIgMTE2RSAxMUIzOworQjIxMTtCMjExOzExMDIgMTE2RSAxMUI0O0IyMTE7MTEwMiAxMTZFIDExQjQ7CitCMjEyO0IyMTI7MTEwMiAxMTZFIDExQjU7QjIxMjsxMTAyIDExNkUgMTFCNTsKK0IyMTM7QjIxMzsxMTAyIDExNkUgMTFCNjtCMjEzOzExMDIgMTE2RSAxMUI2OworQjIxNDtCMjE0OzExMDIgMTE2RSAxMUI3O0IyMTQ7MTEwMiAxMTZFIDExQjc7CitCMjE1O0IyMTU7MTEwMiAxMTZFIDExQjg7QjIxNTsxMTAyIDExNkUgMTFCODsKK0IyMTY7QjIxNjsxMTAyIDExNkUgMTFCOTtCMjE2OzExMDIgMTE2RSAxMUI5OworQjIxNztCMjE3OzExMDIgMTE2RSAxMUJBO0IyMTc7MTEwMiAxMTZFIDExQkE7CitCMjE4O0IyMTg7MTEwMiAxMTZFIDExQkI7QjIxODsxMTAyIDExNkUgMTFCQjsKK0IyMTk7QjIxOTsxMTAyIDExNkUgMTFCQztCMjE5OzExMDIgMTE2RSAxMUJDOworQjIxQTtCMjFBOzExMDIgMTE2RSAxMUJEO0IyMUE7MTEwMiAxMTZFIDExQkQ7CitCMjFCO0IyMUI7MTEwMiAxMTZFIDExQkU7QjIxQjsxMTAyIDExNkUgMTFCRTsKK0IyMUM7QjIxQzsxMTAyIDExNkUgMTFCRjtCMjFDOzExMDIgMTE2RSAxMUJGOworQjIxRDtCMjFEOzExMDIgMTE2RSAxMUMwO0IyMUQ7MTEwMiAxMTZFIDExQzA7CitCMjFFO0IyMUU7MTEwMiAxMTZFIDExQzE7QjIxRTsxMTAyIDExNkUgMTFDMTsKK0IyMUY7QjIxRjsxMTAyIDExNkUgMTFDMjtCMjFGOzExMDIgMTE2RSAxMUMyOworQjIyMDtCMjIwOzExMDIgMTE2RjtCMjIwOzExMDIgMTE2RjsKK0IyMjE7QjIyMTsxMTAyIDExNkYgMTFBODtCMjIxOzExMDIgMTE2RiAxMUE4OworQjIyMjtCMjIyOzExMDIgMTE2RiAxMUE5O0IyMjI7MTEwMiAxMTZGIDExQTk7CitCMjIzO0IyMjM7MTEwMiAxMTZGIDExQUE7QjIyMzsxMTAyIDExNkYgMTFBQTsKK0IyMjQ7QjIyNDsxMTAyIDExNkYgMTFBQjtCMjI0OzExMDIgMTE2RiAxMUFCOworQjIyNTtCMjI1OzExMDIgMTE2RiAxMUFDO0IyMjU7MTEwMiAxMTZGIDExQUM7CitCMjI2O0IyMjY7MTEwMiAxMTZGIDExQUQ7QjIyNjsxMTAyIDExNkYgMTFBRDsKK0IyMjc7QjIyNzsxMTAyIDExNkYgMTFBRTtCMjI3OzExMDIgMTE2RiAxMUFFOworQjIyODtCMjI4OzExMDIgMTE2RiAxMUFGO0IyMjg7MTEwMiAxMTZGIDExQUY7CitCMjI5O0IyMjk7MTEwMiAxMTZGIDExQjA7QjIyOTsxMTAyIDExNkYgMTFCMDsKK0IyMkE7QjIyQTsxMTAyIDExNkYgMTFCMTtCMjJBOzExMDIgMTE2RiAxMUIxOworQjIyQjtCMjJCOzExMDIgMTE2RiAxMUIyO0IyMkI7MTEwMiAxMTZGIDExQjI7CitCMjJDO0IyMkM7MTEwMiAxMTZGIDExQjM7QjIyQzsxMTAyIDExNkYgMTFCMzsKK0IyMkQ7QjIyRDsxMTAyIDExNkYgMTFCNDtCMjJEOzExMDIgMTE2RiAxMUI0OworQjIyRTtCMjJFOzExMDIgMTE2RiAxMUI1O0IyMkU7MTEwMiAxMTZGIDExQjU7CitCMjJGO0IyMkY7MTEwMiAxMTZGIDExQjY7QjIyRjsxMTAyIDExNkYgMTFCNjsKK0IyMzA7QjIzMDsxMTAyIDExNkYgMTFCNztCMjMwOzExMDIgMTE2RiAxMUI3OworQjIzMTtCMjMxOzExMDIgMTE2RiAxMUI4O0IyMzE7MTEwMiAxMTZGIDExQjg7CitCMjMyO0IyMzI7MTEwMiAxMTZGIDExQjk7QjIzMjsxMTAyIDExNkYgMTFCOTsKK0IyMzM7QjIzMzsxMTAyIDExNkYgMTFCQTtCMjMzOzExMDIgMTE2RiAxMUJBOworQjIzNDtCMjM0OzExMDIgMTE2RiAxMUJCO0IyMzQ7MTEwMiAxMTZGIDExQkI7CitCMjM1O0IyMzU7MTEwMiAxMTZGIDExQkM7QjIzNTsxMTAyIDExNkYgMTFCQzsKK0IyMzY7QjIzNjsxMTAyIDExNkYgMTFCRDtCMjM2OzExMDIgMTE2RiAxMUJEOworQjIzNztCMjM3OzExMDIgMTE2RiAxMUJFO0IyMzc7MTEwMiAxMTZGIDExQkU7CitCMjM4O0IyMzg7MTEwMiAxMTZGIDExQkY7QjIzODsxMTAyIDExNkYgMTFCRjsKK0IyMzk7QjIzOTsxMTAyIDExNkYgMTFDMDtCMjM5OzExMDIgMTE2RiAxMUMwOworQjIzQTtCMjNBOzExMDIgMTE2RiAxMUMxO0IyM0E7MTEwMiAxMTZGIDExQzE7CitCMjNCO0IyM0I7MTEwMiAxMTZGIDExQzI7QjIzQjsxMTAyIDExNkYgMTFDMjsKK0IyM0M7QjIzQzsxMTAyIDExNzA7QjIzQzsxMTAyIDExNzA7CitCMjNEO0IyM0Q7MTEwMiAxMTcwIDExQTg7QjIzRDsxMTAyIDExNzAgMTFBODsKK0IyM0U7QjIzRTsxMTAyIDExNzAgMTFBOTtCMjNFOzExMDIgMTE3MCAxMUE5OworQjIzRjtCMjNGOzExMDIgMTE3MCAxMUFBO0IyM0Y7MTEwMiAxMTcwIDExQUE7CitCMjQwO0IyNDA7MTEwMiAxMTcwIDExQUI7QjI0MDsxMTAyIDExNzAgMTFBQjsKK0IyNDE7QjI0MTsxMTAyIDExNzAgMTFBQztCMjQxOzExMDIgMTE3MCAxMUFDOworQjI0MjtCMjQyOzExMDIgMTE3MCAxMUFEO0IyNDI7MTEwMiAxMTcwIDExQUQ7CitCMjQzO0IyNDM7MTEwMiAxMTcwIDExQUU7QjI0MzsxMTAyIDExNzAgMTFBRTsKK0IyNDQ7QjI0NDsxMTAyIDExNzAgMTFBRjtCMjQ0OzExMDIgMTE3MCAxMUFGOworQjI0NTtCMjQ1OzExMDIgMTE3MCAxMUIwO0IyNDU7MTEwMiAxMTcwIDExQjA7CitCMjQ2O0IyNDY7MTEwMiAxMTcwIDExQjE7QjI0NjsxMTAyIDExNzAgMTFCMTsKK0IyNDc7QjI0NzsxMTAyIDExNzAgMTFCMjtCMjQ3OzExMDIgMTE3MCAxMUIyOworQjI0ODtCMjQ4OzExMDIgMTE3MCAxMUIzO0IyNDg7MTEwMiAxMTcwIDExQjM7CitCMjQ5O0IyNDk7MTEwMiAxMTcwIDExQjQ7QjI0OTsxMTAyIDExNzAgMTFCNDsKK0IyNEE7QjI0QTsxMTAyIDExNzAgMTFCNTtCMjRBOzExMDIgMTE3MCAxMUI1OworQjI0QjtCMjRCOzExMDIgMTE3MCAxMUI2O0IyNEI7MTEwMiAxMTcwIDExQjY7CitCMjRDO0IyNEM7MTEwMiAxMTcwIDExQjc7QjI0QzsxMTAyIDExNzAgMTFCNzsKK0IyNEQ7QjI0RDsxMTAyIDExNzAgMTFCODtCMjREOzExMDIgMTE3MCAxMUI4OworQjI0RTtCMjRFOzExMDIgMTE3MCAxMUI5O0IyNEU7MTEwMiAxMTcwIDExQjk7CitCMjRGO0IyNEY7MTEwMiAxMTcwIDExQkE7QjI0RjsxMTAyIDExNzAgMTFCQTsKK0IyNTA7QjI1MDsxMTAyIDExNzAgMTFCQjtCMjUwOzExMDIgMTE3MCAxMUJCOworQjI1MTtCMjUxOzExMDIgMTE3MCAxMUJDO0IyNTE7MTEwMiAxMTcwIDExQkM7CitCMjUyO0IyNTI7MTEwMiAxMTcwIDExQkQ7QjI1MjsxMTAyIDExNzAgMTFCRDsKK0IyNTM7QjI1MzsxMTAyIDExNzAgMTFCRTtCMjUzOzExMDIgMTE3MCAxMUJFOworQjI1NDtCMjU0OzExMDIgMTE3MCAxMUJGO0IyNTQ7MTEwMiAxMTcwIDExQkY7CitCMjU1O0IyNTU7MTEwMiAxMTcwIDExQzA7QjI1NTsxMTAyIDExNzAgMTFDMDsKK0IyNTY7QjI1NjsxMTAyIDExNzAgMTFDMTtCMjU2OzExMDIgMTE3MCAxMUMxOworQjI1NztCMjU3OzExMDIgMTE3MCAxMUMyO0IyNTc7MTEwMiAxMTcwIDExQzI7CitCMjU4O0IyNTg7MTEwMiAxMTcxO0IyNTg7MTEwMiAxMTcxOworQjI1OTtCMjU5OzExMDIgMTE3MSAxMUE4O0IyNTk7MTEwMiAxMTcxIDExQTg7CitCMjVBO0IyNUE7MTEwMiAxMTcxIDExQTk7QjI1QTsxMTAyIDExNzEgMTFBOTsKK0IyNUI7QjI1QjsxMTAyIDExNzEgMTFBQTtCMjVCOzExMDIgMTE3MSAxMUFBOworQjI1QztCMjVDOzExMDIgMTE3MSAxMUFCO0IyNUM7MTEwMiAxMTcxIDExQUI7CitCMjVEO0IyNUQ7MTEwMiAxMTcxIDExQUM7QjI1RDsxMTAyIDExNzEgMTFBQzsKK0IyNUU7QjI1RTsxMTAyIDExNzEgMTFBRDtCMjVFOzExMDIgMTE3MSAxMUFEOworQjI1RjtCMjVGOzExMDIgMTE3MSAxMUFFO0IyNUY7MTEwMiAxMTcxIDExQUU7CitCMjYwO0IyNjA7MTEwMiAxMTcxIDExQUY7QjI2MDsxMTAyIDExNzEgMTFBRjsKK0IyNjE7QjI2MTsxMTAyIDExNzEgMTFCMDtCMjYxOzExMDIgMTE3MSAxMUIwOworQjI2MjtCMjYyOzExMDIgMTE3MSAxMUIxO0IyNjI7MTEwMiAxMTcxIDExQjE7CitCMjYzO0IyNjM7MTEwMiAxMTcxIDExQjI7QjI2MzsxMTAyIDExNzEgMTFCMjsKK0IyNjQ7QjI2NDsxMTAyIDExNzEgMTFCMztCMjY0OzExMDIgMTE3MSAxMUIzOworQjI2NTtCMjY1OzExMDIgMTE3MSAxMUI0O0IyNjU7MTEwMiAxMTcxIDExQjQ7CitCMjY2O0IyNjY7MTEwMiAxMTcxIDExQjU7QjI2NjsxMTAyIDExNzEgMTFCNTsKK0IyNjc7QjI2NzsxMTAyIDExNzEgMTFCNjtCMjY3OzExMDIgMTE3MSAxMUI2OworQjI2ODtCMjY4OzExMDIgMTE3MSAxMUI3O0IyNjg7MTEwMiAxMTcxIDExQjc7CitCMjY5O0IyNjk7MTEwMiAxMTcxIDExQjg7QjI2OTsxMTAyIDExNzEgMTFCODsKK0IyNkE7QjI2QTsxMTAyIDExNzEgMTFCOTtCMjZBOzExMDIgMTE3MSAxMUI5OworQjI2QjtCMjZCOzExMDIgMTE3MSAxMUJBO0IyNkI7MTEwMiAxMTcxIDExQkE7CitCMjZDO0IyNkM7MTEwMiAxMTcxIDExQkI7QjI2QzsxMTAyIDExNzEgMTFCQjsKK0IyNkQ7QjI2RDsxMTAyIDExNzEgMTFCQztCMjZEOzExMDIgMTE3MSAxMUJDOworQjI2RTtCMjZFOzExMDIgMTE3MSAxMUJEO0IyNkU7MTEwMiAxMTcxIDExQkQ7CitCMjZGO0IyNkY7MTEwMiAxMTcxIDExQkU7QjI2RjsxMTAyIDExNzEgMTFCRTsKK0IyNzA7QjI3MDsxMTAyIDExNzEgMTFCRjtCMjcwOzExMDIgMTE3MSAxMUJGOworQjI3MTtCMjcxOzExMDIgMTE3MSAxMUMwO0IyNzE7MTEwMiAxMTcxIDExQzA7CitCMjcyO0IyNzI7MTEwMiAxMTcxIDExQzE7QjI3MjsxMTAyIDExNzEgMTFDMTsKK0IyNzM7QjI3MzsxMTAyIDExNzEgMTFDMjtCMjczOzExMDIgMTE3MSAxMUMyOworQjI3NDtCMjc0OzExMDIgMTE3MjtCMjc0OzExMDIgMTE3MjsKK0IyNzU7QjI3NTsxMTAyIDExNzIgMTFBODtCMjc1OzExMDIgMTE3MiAxMUE4OworQjI3NjtCMjc2OzExMDIgMTE3MiAxMUE5O0IyNzY7MTEwMiAxMTcyIDExQTk7CitCMjc3O0IyNzc7MTEwMiAxMTcyIDExQUE7QjI3NzsxMTAyIDExNzIgMTFBQTsKK0IyNzg7QjI3ODsxMTAyIDExNzIgMTFBQjtCMjc4OzExMDIgMTE3MiAxMUFCOworQjI3OTtCMjc5OzExMDIgMTE3MiAxMUFDO0IyNzk7MTEwMiAxMTcyIDExQUM7CitCMjdBO0IyN0E7MTEwMiAxMTcyIDExQUQ7QjI3QTsxMTAyIDExNzIgMTFBRDsKK0IyN0I7QjI3QjsxMTAyIDExNzIgMTFBRTtCMjdCOzExMDIgMTE3MiAxMUFFOworQjI3QztCMjdDOzExMDIgMTE3MiAxMUFGO0IyN0M7MTEwMiAxMTcyIDExQUY7CitCMjdEO0IyN0Q7MTEwMiAxMTcyIDExQjA7QjI3RDsxMTAyIDExNzIgMTFCMDsKK0IyN0U7QjI3RTsxMTAyIDExNzIgMTFCMTtCMjdFOzExMDIgMTE3MiAxMUIxOworQjI3RjtCMjdGOzExMDIgMTE3MiAxMUIyO0IyN0Y7MTEwMiAxMTcyIDExQjI7CitCMjgwO0IyODA7MTEwMiAxMTcyIDExQjM7QjI4MDsxMTAyIDExNzIgMTFCMzsKK0IyODE7QjI4MTsxMTAyIDExNzIgMTFCNDtCMjgxOzExMDIgMTE3MiAxMUI0OworQjI4MjtCMjgyOzExMDIgMTE3MiAxMUI1O0IyODI7MTEwMiAxMTcyIDExQjU7CitCMjgzO0IyODM7MTEwMiAxMTcyIDExQjY7QjI4MzsxMTAyIDExNzIgMTFCNjsKK0IyODQ7QjI4NDsxMTAyIDExNzIgMTFCNztCMjg0OzExMDIgMTE3MiAxMUI3OworQjI4NTtCMjg1OzExMDIgMTE3MiAxMUI4O0IyODU7MTEwMiAxMTcyIDExQjg7CitCMjg2O0IyODY7MTEwMiAxMTcyIDExQjk7QjI4NjsxMTAyIDExNzIgMTFCOTsKK0IyODc7QjI4NzsxMTAyIDExNzIgMTFCQTtCMjg3OzExMDIgMTE3MiAxMUJBOworQjI4ODtCMjg4OzExMDIgMTE3MiAxMUJCO0IyODg7MTEwMiAxMTcyIDExQkI7CitCMjg5O0IyODk7MTEwMiAxMTcyIDExQkM7QjI4OTsxMTAyIDExNzIgMTFCQzsKK0IyOEE7QjI4QTsxMTAyIDExNzIgMTFCRDtCMjhBOzExMDIgMTE3MiAxMUJEOworQjI4QjtCMjhCOzExMDIgMTE3MiAxMUJFO0IyOEI7MTEwMiAxMTcyIDExQkU7CitCMjhDO0IyOEM7MTEwMiAxMTcyIDExQkY7QjI4QzsxMTAyIDExNzIgMTFCRjsKK0IyOEQ7QjI4RDsxMTAyIDExNzIgMTFDMDtCMjhEOzExMDIgMTE3MiAxMUMwOworQjI4RTtCMjhFOzExMDIgMTE3MiAxMUMxO0IyOEU7MTEwMiAxMTcyIDExQzE7CitCMjhGO0IyOEY7MTEwMiAxMTcyIDExQzI7QjI4RjsxMTAyIDExNzIgMTFDMjsKK0IyOTA7QjI5MDsxMTAyIDExNzM7QjI5MDsxMTAyIDExNzM7CitCMjkxO0IyOTE7MTEwMiAxMTczIDExQTg7QjI5MTsxMTAyIDExNzMgMTFBODsKK0IyOTI7QjI5MjsxMTAyIDExNzMgMTFBOTtCMjkyOzExMDIgMTE3MyAxMUE5OworQjI5MztCMjkzOzExMDIgMTE3MyAxMUFBO0IyOTM7MTEwMiAxMTczIDExQUE7CitCMjk0O0IyOTQ7MTEwMiAxMTczIDExQUI7QjI5NDsxMTAyIDExNzMgMTFBQjsKK0IyOTU7QjI5NTsxMTAyIDExNzMgMTFBQztCMjk1OzExMDIgMTE3MyAxMUFDOworQjI5NjtCMjk2OzExMDIgMTE3MyAxMUFEO0IyOTY7MTEwMiAxMTczIDExQUQ7CitCMjk3O0IyOTc7MTEwMiAxMTczIDExQUU7QjI5NzsxMTAyIDExNzMgMTFBRTsKK0IyOTg7QjI5ODsxMTAyIDExNzMgMTFBRjtCMjk4OzExMDIgMTE3MyAxMUFGOworQjI5OTtCMjk5OzExMDIgMTE3MyAxMUIwO0IyOTk7MTEwMiAxMTczIDExQjA7CitCMjlBO0IyOUE7MTEwMiAxMTczIDExQjE7QjI5QTsxMTAyIDExNzMgMTFCMTsKK0IyOUI7QjI5QjsxMTAyIDExNzMgMTFCMjtCMjlCOzExMDIgMTE3MyAxMUIyOworQjI5QztCMjlDOzExMDIgMTE3MyAxMUIzO0IyOUM7MTEwMiAxMTczIDExQjM7CitCMjlEO0IyOUQ7MTEwMiAxMTczIDExQjQ7QjI5RDsxMTAyIDExNzMgMTFCNDsKK0IyOUU7QjI5RTsxMTAyIDExNzMgMTFCNTtCMjlFOzExMDIgMTE3MyAxMUI1OworQjI5RjtCMjlGOzExMDIgMTE3MyAxMUI2O0IyOUY7MTEwMiAxMTczIDExQjY7CitCMkEwO0IyQTA7MTEwMiAxMTczIDExQjc7QjJBMDsxMTAyIDExNzMgMTFCNzsKK0IyQTE7QjJBMTsxMTAyIDExNzMgMTFCODtCMkExOzExMDIgMTE3MyAxMUI4OworQjJBMjtCMkEyOzExMDIgMTE3MyAxMUI5O0IyQTI7MTEwMiAxMTczIDExQjk7CitCMkEzO0IyQTM7MTEwMiAxMTczIDExQkE7QjJBMzsxMTAyIDExNzMgMTFCQTsKK0IyQTQ7QjJBNDsxMTAyIDExNzMgMTFCQjtCMkE0OzExMDIgMTE3MyAxMUJCOworQjJBNTtCMkE1OzExMDIgMTE3MyAxMUJDO0IyQTU7MTEwMiAxMTczIDExQkM7CitCMkE2O0IyQTY7MTEwMiAxMTczIDExQkQ7QjJBNjsxMTAyIDExNzMgMTFCRDsKK0IyQTc7QjJBNzsxMTAyIDExNzMgMTFCRTtCMkE3OzExMDIgMTE3MyAxMUJFOworQjJBODtCMkE4OzExMDIgMTE3MyAxMUJGO0IyQTg7MTEwMiAxMTczIDExQkY7CitCMkE5O0IyQTk7MTEwMiAxMTczIDExQzA7QjJBOTsxMTAyIDExNzMgMTFDMDsKK0IyQUE7QjJBQTsxMTAyIDExNzMgMTFDMTtCMkFBOzExMDIgMTE3MyAxMUMxOworQjJBQjtCMkFCOzExMDIgMTE3MyAxMUMyO0IyQUI7MTEwMiAxMTczIDExQzI7CitCMkFDO0IyQUM7MTEwMiAxMTc0O0IyQUM7MTEwMiAxMTc0OworQjJBRDtCMkFEOzExMDIgMTE3NCAxMUE4O0IyQUQ7MTEwMiAxMTc0IDExQTg7CitCMkFFO0IyQUU7MTEwMiAxMTc0IDExQTk7QjJBRTsxMTAyIDExNzQgMTFBOTsKK0IyQUY7QjJBRjsxMTAyIDExNzQgMTFBQTtCMkFGOzExMDIgMTE3NCAxMUFBOworQjJCMDtCMkIwOzExMDIgMTE3NCAxMUFCO0IyQjA7MTEwMiAxMTc0IDExQUI7CitCMkIxO0IyQjE7MTEwMiAxMTc0IDExQUM7QjJCMTsxMTAyIDExNzQgMTFBQzsKK0IyQjI7QjJCMjsxMTAyIDExNzQgMTFBRDtCMkIyOzExMDIgMTE3NCAxMUFEOworQjJCMztCMkIzOzExMDIgMTE3NCAxMUFFO0IyQjM7MTEwMiAxMTc0IDExQUU7CitCMkI0O0IyQjQ7MTEwMiAxMTc0IDExQUY7QjJCNDsxMTAyIDExNzQgMTFBRjsKK0IyQjU7QjJCNTsxMTAyIDExNzQgMTFCMDtCMkI1OzExMDIgMTE3NCAxMUIwOworQjJCNjtCMkI2OzExMDIgMTE3NCAxMUIxO0IyQjY7MTEwMiAxMTc0IDExQjE7CitCMkI3O0IyQjc7MTEwMiAxMTc0IDExQjI7QjJCNzsxMTAyIDExNzQgMTFCMjsKK0IyQjg7QjJCODsxMTAyIDExNzQgMTFCMztCMkI4OzExMDIgMTE3NCAxMUIzOworQjJCOTtCMkI5OzExMDIgMTE3NCAxMUI0O0IyQjk7MTEwMiAxMTc0IDExQjQ7CitCMkJBO0IyQkE7MTEwMiAxMTc0IDExQjU7QjJCQTsxMTAyIDExNzQgMTFCNTsKK0IyQkI7QjJCQjsxMTAyIDExNzQgMTFCNjtCMkJCOzExMDIgMTE3NCAxMUI2OworQjJCQztCMkJDOzExMDIgMTE3NCAxMUI3O0IyQkM7MTEwMiAxMTc0IDExQjc7CitCMkJEO0IyQkQ7MTEwMiAxMTc0IDExQjg7QjJCRDsxMTAyIDExNzQgMTFCODsKK0IyQkU7QjJCRTsxMTAyIDExNzQgMTFCOTtCMkJFOzExMDIgMTE3NCAxMUI5OworQjJCRjtCMkJGOzExMDIgMTE3NCAxMUJBO0IyQkY7MTEwMiAxMTc0IDExQkE7CitCMkMwO0IyQzA7MTEwMiAxMTc0IDExQkI7QjJDMDsxMTAyIDExNzQgMTFCQjsKK0IyQzE7QjJDMTsxMTAyIDExNzQgMTFCQztCMkMxOzExMDIgMTE3NCAxMUJDOworQjJDMjtCMkMyOzExMDIgMTE3NCAxMUJEO0IyQzI7MTEwMiAxMTc0IDExQkQ7CitCMkMzO0IyQzM7MTEwMiAxMTc0IDExQkU7QjJDMzsxMTAyIDExNzQgMTFCRTsKK0IyQzQ7QjJDNDsxMTAyIDExNzQgMTFCRjtCMkM0OzExMDIgMTE3NCAxMUJGOworQjJDNTtCMkM1OzExMDIgMTE3NCAxMUMwO0IyQzU7MTEwMiAxMTc0IDExQzA7CitCMkM2O0IyQzY7MTEwMiAxMTc0IDExQzE7QjJDNjsxMTAyIDExNzQgMTFDMTsKK0IyQzc7QjJDNzsxMTAyIDExNzQgMTFDMjtCMkM3OzExMDIgMTE3NCAxMUMyOworQjJDODtCMkM4OzExMDIgMTE3NTtCMkM4OzExMDIgMTE3NTsKK0IyQzk7QjJDOTsxMTAyIDExNzUgMTFBODtCMkM5OzExMDIgMTE3NSAxMUE4OworQjJDQTtCMkNBOzExMDIgMTE3NSAxMUE5O0IyQ0E7MTEwMiAxMTc1IDExQTk7CitCMkNCO0IyQ0I7MTEwMiAxMTc1IDExQUE7QjJDQjsxMTAyIDExNzUgMTFBQTsKK0IyQ0M7QjJDQzsxMTAyIDExNzUgMTFBQjtCMkNDOzExMDIgMTE3NSAxMUFCOworQjJDRDtCMkNEOzExMDIgMTE3NSAxMUFDO0IyQ0Q7MTEwMiAxMTc1IDExQUM7CitCMkNFO0IyQ0U7MTEwMiAxMTc1IDExQUQ7QjJDRTsxMTAyIDExNzUgMTFBRDsKK0IyQ0Y7QjJDRjsxMTAyIDExNzUgMTFBRTtCMkNGOzExMDIgMTE3NSAxMUFFOworQjJEMDtCMkQwOzExMDIgMTE3NSAxMUFGO0IyRDA7MTEwMiAxMTc1IDExQUY7CitCMkQxO0IyRDE7MTEwMiAxMTc1IDExQjA7QjJEMTsxMTAyIDExNzUgMTFCMDsKK0IyRDI7QjJEMjsxMTAyIDExNzUgMTFCMTtCMkQyOzExMDIgMTE3NSAxMUIxOworQjJEMztCMkQzOzExMDIgMTE3NSAxMUIyO0IyRDM7MTEwMiAxMTc1IDExQjI7CitCMkQ0O0IyRDQ7MTEwMiAxMTc1IDExQjM7QjJENDsxMTAyIDExNzUgMTFCMzsKK0IyRDU7QjJENTsxMTAyIDExNzUgMTFCNDtCMkQ1OzExMDIgMTE3NSAxMUI0OworQjJENjtCMkQ2OzExMDIgMTE3NSAxMUI1O0IyRDY7MTEwMiAxMTc1IDExQjU7CitCMkQ3O0IyRDc7MTEwMiAxMTc1IDExQjY7QjJENzsxMTAyIDExNzUgMTFCNjsKK0IyRDg7QjJEODsxMTAyIDExNzUgMTFCNztCMkQ4OzExMDIgMTE3NSAxMUI3OworQjJEOTtCMkQ5OzExMDIgMTE3NSAxMUI4O0IyRDk7MTEwMiAxMTc1IDExQjg7CitCMkRBO0IyREE7MTEwMiAxMTc1IDExQjk7QjJEQTsxMTAyIDExNzUgMTFCOTsKK0IyREI7QjJEQjsxMTAyIDExNzUgMTFCQTtCMkRCOzExMDIgMTE3NSAxMUJBOworQjJEQztCMkRDOzExMDIgMTE3NSAxMUJCO0IyREM7MTEwMiAxMTc1IDExQkI7CitCMkREO0IyREQ7MTEwMiAxMTc1IDExQkM7QjJERDsxMTAyIDExNzUgMTFCQzsKK0IyREU7QjJERTsxMTAyIDExNzUgMTFCRDtCMkRFOzExMDIgMTE3NSAxMUJEOworQjJERjtCMkRGOzExMDIgMTE3NSAxMUJFO0IyREY7MTEwMiAxMTc1IDExQkU7CitCMkUwO0IyRTA7MTEwMiAxMTc1IDExQkY7QjJFMDsxMTAyIDExNzUgMTFCRjsKK0IyRTE7QjJFMTsxMTAyIDExNzUgMTFDMDtCMkUxOzExMDIgMTE3NSAxMUMwOworQjJFMjtCMkUyOzExMDIgMTE3NSAxMUMxO0IyRTI7MTEwMiAxMTc1IDExQzE7CitCMkUzO0IyRTM7MTEwMiAxMTc1IDExQzI7QjJFMzsxMTAyIDExNzUgMTFDMjsKK0IyRTQ7QjJFNDsxMTAzIDExNjE7QjJFNDsxMTAzIDExNjE7CitCMkU1O0IyRTU7MTEwMyAxMTYxIDExQTg7QjJFNTsxMTAzIDExNjEgMTFBODsKK0IyRTY7QjJFNjsxMTAzIDExNjEgMTFBOTtCMkU2OzExMDMgMTE2MSAxMUE5OworQjJFNztCMkU3OzExMDMgMTE2MSAxMUFBO0IyRTc7MTEwMyAxMTYxIDExQUE7CitCMkU4O0IyRTg7MTEwMyAxMTYxIDExQUI7QjJFODsxMTAzIDExNjEgMTFBQjsKK0IyRTk7QjJFOTsxMTAzIDExNjEgMTFBQztCMkU5OzExMDMgMTE2MSAxMUFDOworQjJFQTtCMkVBOzExMDMgMTE2MSAxMUFEO0IyRUE7MTEwMyAxMTYxIDExQUQ7CitCMkVCO0IyRUI7MTEwMyAxMTYxIDExQUU7QjJFQjsxMTAzIDExNjEgMTFBRTsKK0IyRUM7QjJFQzsxMTAzIDExNjEgMTFBRjtCMkVDOzExMDMgMTE2MSAxMUFGOworQjJFRDtCMkVEOzExMDMgMTE2MSAxMUIwO0IyRUQ7MTEwMyAxMTYxIDExQjA7CitCMkVFO0IyRUU7MTEwMyAxMTYxIDExQjE7QjJFRTsxMTAzIDExNjEgMTFCMTsKK0IyRUY7QjJFRjsxMTAzIDExNjEgMTFCMjtCMkVGOzExMDMgMTE2MSAxMUIyOworQjJGMDtCMkYwOzExMDMgMTE2MSAxMUIzO0IyRjA7MTEwMyAxMTYxIDExQjM7CitCMkYxO0IyRjE7MTEwMyAxMTYxIDExQjQ7QjJGMTsxMTAzIDExNjEgMTFCNDsKK0IyRjI7QjJGMjsxMTAzIDExNjEgMTFCNTtCMkYyOzExMDMgMTE2MSAxMUI1OworQjJGMztCMkYzOzExMDMgMTE2MSAxMUI2O0IyRjM7MTEwMyAxMTYxIDExQjY7CitCMkY0O0IyRjQ7MTEwMyAxMTYxIDExQjc7QjJGNDsxMTAzIDExNjEgMTFCNzsKK0IyRjU7QjJGNTsxMTAzIDExNjEgMTFCODtCMkY1OzExMDMgMTE2MSAxMUI4OworQjJGNjtCMkY2OzExMDMgMTE2MSAxMUI5O0IyRjY7MTEwMyAxMTYxIDExQjk7CitCMkY3O0IyRjc7MTEwMyAxMTYxIDExQkE7QjJGNzsxMTAzIDExNjEgMTFCQTsKK0IyRjg7QjJGODsxMTAzIDExNjEgMTFCQjtCMkY4OzExMDMgMTE2MSAxMUJCOworQjJGOTtCMkY5OzExMDMgMTE2MSAxMUJDO0IyRjk7MTEwMyAxMTYxIDExQkM7CitCMkZBO0IyRkE7MTEwMyAxMTYxIDExQkQ7QjJGQTsxMTAzIDExNjEgMTFCRDsKK0IyRkI7QjJGQjsxMTAzIDExNjEgMTFCRTtCMkZCOzExMDMgMTE2MSAxMUJFOworQjJGQztCMkZDOzExMDMgMTE2MSAxMUJGO0IyRkM7MTEwMyAxMTYxIDExQkY7CitCMkZEO0IyRkQ7MTEwMyAxMTYxIDExQzA7QjJGRDsxMTAzIDExNjEgMTFDMDsKK0IyRkU7QjJGRTsxMTAzIDExNjEgMTFDMTtCMkZFOzExMDMgMTE2MSAxMUMxOworQjJGRjtCMkZGOzExMDMgMTE2MSAxMUMyO0IyRkY7MTEwMyAxMTYxIDExQzI7CitCMzAwO0IzMDA7MTEwMyAxMTYyO0IzMDA7MTEwMyAxMTYyOworQjMwMTtCMzAxOzExMDMgMTE2MiAxMUE4O0IzMDE7MTEwMyAxMTYyIDExQTg7CitCMzAyO0IzMDI7MTEwMyAxMTYyIDExQTk7QjMwMjsxMTAzIDExNjIgMTFBOTsKK0IzMDM7QjMwMzsxMTAzIDExNjIgMTFBQTtCMzAzOzExMDMgMTE2MiAxMUFBOworQjMwNDtCMzA0OzExMDMgMTE2MiAxMUFCO0IzMDQ7MTEwMyAxMTYyIDExQUI7CitCMzA1O0IzMDU7MTEwMyAxMTYyIDExQUM7QjMwNTsxMTAzIDExNjIgMTFBQzsKK0IzMDY7QjMwNjsxMTAzIDExNjIgMTFBRDtCMzA2OzExMDMgMTE2MiAxMUFEOworQjMwNztCMzA3OzExMDMgMTE2MiAxMUFFO0IzMDc7MTEwMyAxMTYyIDExQUU7CitCMzA4O0IzMDg7MTEwMyAxMTYyIDExQUY7QjMwODsxMTAzIDExNjIgMTFBRjsKK0IzMDk7QjMwOTsxMTAzIDExNjIgMTFCMDtCMzA5OzExMDMgMTE2MiAxMUIwOworQjMwQTtCMzBBOzExMDMgMTE2MiAxMUIxO0IzMEE7MTEwMyAxMTYyIDExQjE7CitCMzBCO0IzMEI7MTEwMyAxMTYyIDExQjI7QjMwQjsxMTAzIDExNjIgMTFCMjsKK0IzMEM7QjMwQzsxMTAzIDExNjIgMTFCMztCMzBDOzExMDMgMTE2MiAxMUIzOworQjMwRDtCMzBEOzExMDMgMTE2MiAxMUI0O0IzMEQ7MTEwMyAxMTYyIDExQjQ7CitCMzBFO0IzMEU7MTEwMyAxMTYyIDExQjU7QjMwRTsxMTAzIDExNjIgMTFCNTsKK0IzMEY7QjMwRjsxMTAzIDExNjIgMTFCNjtCMzBGOzExMDMgMTE2MiAxMUI2OworQjMxMDtCMzEwOzExMDMgMTE2MiAxMUI3O0IzMTA7MTEwMyAxMTYyIDExQjc7CitCMzExO0IzMTE7MTEwMyAxMTYyIDExQjg7QjMxMTsxMTAzIDExNjIgMTFCODsKK0IzMTI7QjMxMjsxMTAzIDExNjIgMTFCOTtCMzEyOzExMDMgMTE2MiAxMUI5OworQjMxMztCMzEzOzExMDMgMTE2MiAxMUJBO0IzMTM7MTEwMyAxMTYyIDExQkE7CitCMzE0O0IzMTQ7MTEwMyAxMTYyIDExQkI7QjMxNDsxMTAzIDExNjIgMTFCQjsKK0IzMTU7QjMxNTsxMTAzIDExNjIgMTFCQztCMzE1OzExMDMgMTE2MiAxMUJDOworQjMxNjtCMzE2OzExMDMgMTE2MiAxMUJEO0IzMTY7MTEwMyAxMTYyIDExQkQ7CitCMzE3O0IzMTc7MTEwMyAxMTYyIDExQkU7QjMxNzsxMTAzIDExNjIgMTFCRTsKK0IzMTg7QjMxODsxMTAzIDExNjIgMTFCRjtCMzE4OzExMDMgMTE2MiAxMUJGOworQjMxOTtCMzE5OzExMDMgMTE2MiAxMUMwO0IzMTk7MTEwMyAxMTYyIDExQzA7CitCMzFBO0IzMUE7MTEwMyAxMTYyIDExQzE7QjMxQTsxMTAzIDExNjIgMTFDMTsKK0IzMUI7QjMxQjsxMTAzIDExNjIgMTFDMjtCMzFCOzExMDMgMTE2MiAxMUMyOworQjMxQztCMzFDOzExMDMgMTE2MztCMzFDOzExMDMgMTE2MzsKK0IzMUQ7QjMxRDsxMTAzIDExNjMgMTFBODtCMzFEOzExMDMgMTE2MyAxMUE4OworQjMxRTtCMzFFOzExMDMgMTE2MyAxMUE5O0IzMUU7MTEwMyAxMTYzIDExQTk7CitCMzFGO0IzMUY7MTEwMyAxMTYzIDExQUE7QjMxRjsxMTAzIDExNjMgMTFBQTsKK0IzMjA7QjMyMDsxMTAzIDExNjMgMTFBQjtCMzIwOzExMDMgMTE2MyAxMUFCOworQjMyMTtCMzIxOzExMDMgMTE2MyAxMUFDO0IzMjE7MTEwMyAxMTYzIDExQUM7CitCMzIyO0IzMjI7MTEwMyAxMTYzIDExQUQ7QjMyMjsxMTAzIDExNjMgMTFBRDsKK0IzMjM7QjMyMzsxMTAzIDExNjMgMTFBRTtCMzIzOzExMDMgMTE2MyAxMUFFOworQjMyNDtCMzI0OzExMDMgMTE2MyAxMUFGO0IzMjQ7MTEwMyAxMTYzIDExQUY7CitCMzI1O0IzMjU7MTEwMyAxMTYzIDExQjA7QjMyNTsxMTAzIDExNjMgMTFCMDsKK0IzMjY7QjMyNjsxMTAzIDExNjMgMTFCMTtCMzI2OzExMDMgMTE2MyAxMUIxOworQjMyNztCMzI3OzExMDMgMTE2MyAxMUIyO0IzMjc7MTEwMyAxMTYzIDExQjI7CitCMzI4O0IzMjg7MTEwMyAxMTYzIDExQjM7QjMyODsxMTAzIDExNjMgMTFCMzsKK0IzMjk7QjMyOTsxMTAzIDExNjMgMTFCNDtCMzI5OzExMDMgMTE2MyAxMUI0OworQjMyQTtCMzJBOzExMDMgMTE2MyAxMUI1O0IzMkE7MTEwMyAxMTYzIDExQjU7CitCMzJCO0IzMkI7MTEwMyAxMTYzIDExQjY7QjMyQjsxMTAzIDExNjMgMTFCNjsKK0IzMkM7QjMyQzsxMTAzIDExNjMgMTFCNztCMzJDOzExMDMgMTE2MyAxMUI3OworQjMyRDtCMzJEOzExMDMgMTE2MyAxMUI4O0IzMkQ7MTEwMyAxMTYzIDExQjg7CitCMzJFO0IzMkU7MTEwMyAxMTYzIDExQjk7QjMyRTsxMTAzIDExNjMgMTFCOTsKK0IzMkY7QjMyRjsxMTAzIDExNjMgMTFCQTtCMzJGOzExMDMgMTE2MyAxMUJBOworQjMzMDtCMzMwOzExMDMgMTE2MyAxMUJCO0IzMzA7MTEwMyAxMTYzIDExQkI7CitCMzMxO0IzMzE7MTEwMyAxMTYzIDExQkM7QjMzMTsxMTAzIDExNjMgMTFCQzsKK0IzMzI7QjMzMjsxMTAzIDExNjMgMTFCRDtCMzMyOzExMDMgMTE2MyAxMUJEOworQjMzMztCMzMzOzExMDMgMTE2MyAxMUJFO0IzMzM7MTEwMyAxMTYzIDExQkU7CitCMzM0O0IzMzQ7MTEwMyAxMTYzIDExQkY7QjMzNDsxMTAzIDExNjMgMTFCRjsKK0IzMzU7QjMzNTsxMTAzIDExNjMgMTFDMDtCMzM1OzExMDMgMTE2MyAxMUMwOworQjMzNjtCMzM2OzExMDMgMTE2MyAxMUMxO0IzMzY7MTEwMyAxMTYzIDExQzE7CitCMzM3O0IzMzc7MTEwMyAxMTYzIDExQzI7QjMzNzsxMTAzIDExNjMgMTFDMjsKK0IzMzg7QjMzODsxMTAzIDExNjQ7QjMzODsxMTAzIDExNjQ7CitCMzM5O0IzMzk7MTEwMyAxMTY0IDExQTg7QjMzOTsxMTAzIDExNjQgMTFBODsKK0IzM0E7QjMzQTsxMTAzIDExNjQgMTFBOTtCMzNBOzExMDMgMTE2NCAxMUE5OworQjMzQjtCMzNCOzExMDMgMTE2NCAxMUFBO0IzM0I7MTEwMyAxMTY0IDExQUE7CitCMzNDO0IzM0M7MTEwMyAxMTY0IDExQUI7QjMzQzsxMTAzIDExNjQgMTFBQjsKK0IzM0Q7QjMzRDsxMTAzIDExNjQgMTFBQztCMzNEOzExMDMgMTE2NCAxMUFDOworQjMzRTtCMzNFOzExMDMgMTE2NCAxMUFEO0IzM0U7MTEwMyAxMTY0IDExQUQ7CitCMzNGO0IzM0Y7MTEwMyAxMTY0IDExQUU7QjMzRjsxMTAzIDExNjQgMTFBRTsKK0IzNDA7QjM0MDsxMTAzIDExNjQgMTFBRjtCMzQwOzExMDMgMTE2NCAxMUFGOworQjM0MTtCMzQxOzExMDMgMTE2NCAxMUIwO0IzNDE7MTEwMyAxMTY0IDExQjA7CitCMzQyO0IzNDI7MTEwMyAxMTY0IDExQjE7QjM0MjsxMTAzIDExNjQgMTFCMTsKK0IzNDM7QjM0MzsxMTAzIDExNjQgMTFCMjtCMzQzOzExMDMgMTE2NCAxMUIyOworQjM0NDtCMzQ0OzExMDMgMTE2NCAxMUIzO0IzNDQ7MTEwMyAxMTY0IDExQjM7CitCMzQ1O0IzNDU7MTEwMyAxMTY0IDExQjQ7QjM0NTsxMTAzIDExNjQgMTFCNDsKK0IzNDY7QjM0NjsxMTAzIDExNjQgMTFCNTtCMzQ2OzExMDMgMTE2NCAxMUI1OworQjM0NztCMzQ3OzExMDMgMTE2NCAxMUI2O0IzNDc7MTEwMyAxMTY0IDExQjY7CitCMzQ4O0IzNDg7MTEwMyAxMTY0IDExQjc7QjM0ODsxMTAzIDExNjQgMTFCNzsKK0IzNDk7QjM0OTsxMTAzIDExNjQgMTFCODtCMzQ5OzExMDMgMTE2NCAxMUI4OworQjM0QTtCMzRBOzExMDMgMTE2NCAxMUI5O0IzNEE7MTEwMyAxMTY0IDExQjk7CitCMzRCO0IzNEI7MTEwMyAxMTY0IDExQkE7QjM0QjsxMTAzIDExNjQgMTFCQTsKK0IzNEM7QjM0QzsxMTAzIDExNjQgMTFCQjtCMzRDOzExMDMgMTE2NCAxMUJCOworQjM0RDtCMzREOzExMDMgMTE2NCAxMUJDO0IzNEQ7MTEwMyAxMTY0IDExQkM7CitCMzRFO0IzNEU7MTEwMyAxMTY0IDExQkQ7QjM0RTsxMTAzIDExNjQgMTFCRDsKK0IzNEY7QjM0RjsxMTAzIDExNjQgMTFCRTtCMzRGOzExMDMgMTE2NCAxMUJFOworQjM1MDtCMzUwOzExMDMgMTE2NCAxMUJGO0IzNTA7MTEwMyAxMTY0IDExQkY7CitCMzUxO0IzNTE7MTEwMyAxMTY0IDExQzA7QjM1MTsxMTAzIDExNjQgMTFDMDsKK0IzNTI7QjM1MjsxMTAzIDExNjQgMTFDMTtCMzUyOzExMDMgMTE2NCAxMUMxOworQjM1MztCMzUzOzExMDMgMTE2NCAxMUMyO0IzNTM7MTEwMyAxMTY0IDExQzI7CitCMzU0O0IzNTQ7MTEwMyAxMTY1O0IzNTQ7MTEwMyAxMTY1OworQjM1NTtCMzU1OzExMDMgMTE2NSAxMUE4O0IzNTU7MTEwMyAxMTY1IDExQTg7CitCMzU2O0IzNTY7MTEwMyAxMTY1IDExQTk7QjM1NjsxMTAzIDExNjUgMTFBOTsKK0IzNTc7QjM1NzsxMTAzIDExNjUgMTFBQTtCMzU3OzExMDMgMTE2NSAxMUFBOworQjM1ODtCMzU4OzExMDMgMTE2NSAxMUFCO0IzNTg7MTEwMyAxMTY1IDExQUI7CitCMzU5O0IzNTk7MTEwMyAxMTY1IDExQUM7QjM1OTsxMTAzIDExNjUgMTFBQzsKK0IzNUE7QjM1QTsxMTAzIDExNjUgMTFBRDtCMzVBOzExMDMgMTE2NSAxMUFEOworQjM1QjtCMzVCOzExMDMgMTE2NSAxMUFFO0IzNUI7MTEwMyAxMTY1IDExQUU7CitCMzVDO0IzNUM7MTEwMyAxMTY1IDExQUY7QjM1QzsxMTAzIDExNjUgMTFBRjsKK0IzNUQ7QjM1RDsxMTAzIDExNjUgMTFCMDtCMzVEOzExMDMgMTE2NSAxMUIwOworQjM1RTtCMzVFOzExMDMgMTE2NSAxMUIxO0IzNUU7MTEwMyAxMTY1IDExQjE7CitCMzVGO0IzNUY7MTEwMyAxMTY1IDExQjI7QjM1RjsxMTAzIDExNjUgMTFCMjsKK0IzNjA7QjM2MDsxMTAzIDExNjUgMTFCMztCMzYwOzExMDMgMTE2NSAxMUIzOworQjM2MTtCMzYxOzExMDMgMTE2NSAxMUI0O0IzNjE7MTEwMyAxMTY1IDExQjQ7CitCMzYyO0IzNjI7MTEwMyAxMTY1IDExQjU7QjM2MjsxMTAzIDExNjUgMTFCNTsKK0IzNjM7QjM2MzsxMTAzIDExNjUgMTFCNjtCMzYzOzExMDMgMTE2NSAxMUI2OworQjM2NDtCMzY0OzExMDMgMTE2NSAxMUI3O0IzNjQ7MTEwMyAxMTY1IDExQjc7CitCMzY1O0IzNjU7MTEwMyAxMTY1IDExQjg7QjM2NTsxMTAzIDExNjUgMTFCODsKK0IzNjY7QjM2NjsxMTAzIDExNjUgMTFCOTtCMzY2OzExMDMgMTE2NSAxMUI5OworQjM2NztCMzY3OzExMDMgMTE2NSAxMUJBO0IzNjc7MTEwMyAxMTY1IDExQkE7CitCMzY4O0IzNjg7MTEwMyAxMTY1IDExQkI7QjM2ODsxMTAzIDExNjUgMTFCQjsKK0IzNjk7QjM2OTsxMTAzIDExNjUgMTFCQztCMzY5OzExMDMgMTE2NSAxMUJDOworQjM2QTtCMzZBOzExMDMgMTE2NSAxMUJEO0IzNkE7MTEwMyAxMTY1IDExQkQ7CitCMzZCO0IzNkI7MTEwMyAxMTY1IDExQkU7QjM2QjsxMTAzIDExNjUgMTFCRTsKK0IzNkM7QjM2QzsxMTAzIDExNjUgMTFCRjtCMzZDOzExMDMgMTE2NSAxMUJGOworQjM2RDtCMzZEOzExMDMgMTE2NSAxMUMwO0IzNkQ7MTEwMyAxMTY1IDExQzA7CitCMzZFO0IzNkU7MTEwMyAxMTY1IDExQzE7QjM2RTsxMTAzIDExNjUgMTFDMTsKK0IzNkY7QjM2RjsxMTAzIDExNjUgMTFDMjtCMzZGOzExMDMgMTE2NSAxMUMyOworQjM3MDtCMzcwOzExMDMgMTE2NjtCMzcwOzExMDMgMTE2NjsKK0IzNzE7QjM3MTsxMTAzIDExNjYgMTFBODtCMzcxOzExMDMgMTE2NiAxMUE4OworQjM3MjtCMzcyOzExMDMgMTE2NiAxMUE5O0IzNzI7MTEwMyAxMTY2IDExQTk7CitCMzczO0IzNzM7MTEwMyAxMTY2IDExQUE7QjM3MzsxMTAzIDExNjYgMTFBQTsKK0IzNzQ7QjM3NDsxMTAzIDExNjYgMTFBQjtCMzc0OzExMDMgMTE2NiAxMUFCOworQjM3NTtCMzc1OzExMDMgMTE2NiAxMUFDO0IzNzU7MTEwMyAxMTY2IDExQUM7CitCMzc2O0IzNzY7MTEwMyAxMTY2IDExQUQ7QjM3NjsxMTAzIDExNjYgMTFBRDsKK0IzNzc7QjM3NzsxMTAzIDExNjYgMTFBRTtCMzc3OzExMDMgMTE2NiAxMUFFOworQjM3ODtCMzc4OzExMDMgMTE2NiAxMUFGO0IzNzg7MTEwMyAxMTY2IDExQUY7CitCMzc5O0IzNzk7MTEwMyAxMTY2IDExQjA7QjM3OTsxMTAzIDExNjYgMTFCMDsKK0IzN0E7QjM3QTsxMTAzIDExNjYgMTFCMTtCMzdBOzExMDMgMTE2NiAxMUIxOworQjM3QjtCMzdCOzExMDMgMTE2NiAxMUIyO0IzN0I7MTEwMyAxMTY2IDExQjI7CitCMzdDO0IzN0M7MTEwMyAxMTY2IDExQjM7QjM3QzsxMTAzIDExNjYgMTFCMzsKK0IzN0Q7QjM3RDsxMTAzIDExNjYgMTFCNDtCMzdEOzExMDMgMTE2NiAxMUI0OworQjM3RTtCMzdFOzExMDMgMTE2NiAxMUI1O0IzN0U7MTEwMyAxMTY2IDExQjU7CitCMzdGO0IzN0Y7MTEwMyAxMTY2IDExQjY7QjM3RjsxMTAzIDExNjYgMTFCNjsKK0IzODA7QjM4MDsxMTAzIDExNjYgMTFCNztCMzgwOzExMDMgMTE2NiAxMUI3OworQjM4MTtCMzgxOzExMDMgMTE2NiAxMUI4O0IzODE7MTEwMyAxMTY2IDExQjg7CitCMzgyO0IzODI7MTEwMyAxMTY2IDExQjk7QjM4MjsxMTAzIDExNjYgMTFCOTsKK0IzODM7QjM4MzsxMTAzIDExNjYgMTFCQTtCMzgzOzExMDMgMTE2NiAxMUJBOworQjM4NDtCMzg0OzExMDMgMTE2NiAxMUJCO0IzODQ7MTEwMyAxMTY2IDExQkI7CitCMzg1O0IzODU7MTEwMyAxMTY2IDExQkM7QjM4NTsxMTAzIDExNjYgMTFCQzsKK0IzODY7QjM4NjsxMTAzIDExNjYgMTFCRDtCMzg2OzExMDMgMTE2NiAxMUJEOworQjM4NztCMzg3OzExMDMgMTE2NiAxMUJFO0IzODc7MTEwMyAxMTY2IDExQkU7CitCMzg4O0IzODg7MTEwMyAxMTY2IDExQkY7QjM4ODsxMTAzIDExNjYgMTFCRjsKK0IzODk7QjM4OTsxMTAzIDExNjYgMTFDMDtCMzg5OzExMDMgMTE2NiAxMUMwOworQjM4QTtCMzhBOzExMDMgMTE2NiAxMUMxO0IzOEE7MTEwMyAxMTY2IDExQzE7CitCMzhCO0IzOEI7MTEwMyAxMTY2IDExQzI7QjM4QjsxMTAzIDExNjYgMTFDMjsKK0IzOEM7QjM4QzsxMTAzIDExNjc7QjM4QzsxMTAzIDExNjc7CitCMzhEO0IzOEQ7MTEwMyAxMTY3IDExQTg7QjM4RDsxMTAzIDExNjcgMTFBODsKK0IzOEU7QjM4RTsxMTAzIDExNjcgMTFBOTtCMzhFOzExMDMgMTE2NyAxMUE5OworQjM4RjtCMzhGOzExMDMgMTE2NyAxMUFBO0IzOEY7MTEwMyAxMTY3IDExQUE7CitCMzkwO0IzOTA7MTEwMyAxMTY3IDExQUI7QjM5MDsxMTAzIDExNjcgMTFBQjsKK0IzOTE7QjM5MTsxMTAzIDExNjcgMTFBQztCMzkxOzExMDMgMTE2NyAxMUFDOworQjM5MjtCMzkyOzExMDMgMTE2NyAxMUFEO0IzOTI7MTEwMyAxMTY3IDExQUQ7CitCMzkzO0IzOTM7MTEwMyAxMTY3IDExQUU7QjM5MzsxMTAzIDExNjcgMTFBRTsKK0IzOTQ7QjM5NDsxMTAzIDExNjcgMTFBRjtCMzk0OzExMDMgMTE2NyAxMUFGOworQjM5NTtCMzk1OzExMDMgMTE2NyAxMUIwO0IzOTU7MTEwMyAxMTY3IDExQjA7CitCMzk2O0IzOTY7MTEwMyAxMTY3IDExQjE7QjM5NjsxMTAzIDExNjcgMTFCMTsKK0IzOTc7QjM5NzsxMTAzIDExNjcgMTFCMjtCMzk3OzExMDMgMTE2NyAxMUIyOworQjM5ODtCMzk4OzExMDMgMTE2NyAxMUIzO0IzOTg7MTEwMyAxMTY3IDExQjM7CitCMzk5O0IzOTk7MTEwMyAxMTY3IDExQjQ7QjM5OTsxMTAzIDExNjcgMTFCNDsKK0IzOUE7QjM5QTsxMTAzIDExNjcgMTFCNTtCMzlBOzExMDMgMTE2NyAxMUI1OworQjM5QjtCMzlCOzExMDMgMTE2NyAxMUI2O0IzOUI7MTEwMyAxMTY3IDExQjY7CitCMzlDO0IzOUM7MTEwMyAxMTY3IDExQjc7QjM5QzsxMTAzIDExNjcgMTFCNzsKK0IzOUQ7QjM5RDsxMTAzIDExNjcgMTFCODtCMzlEOzExMDMgMTE2NyAxMUI4OworQjM5RTtCMzlFOzExMDMgMTE2NyAxMUI5O0IzOUU7MTEwMyAxMTY3IDExQjk7CitCMzlGO0IzOUY7MTEwMyAxMTY3IDExQkE7QjM5RjsxMTAzIDExNjcgMTFCQTsKK0IzQTA7QjNBMDsxMTAzIDExNjcgMTFCQjtCM0EwOzExMDMgMTE2NyAxMUJCOworQjNBMTtCM0ExOzExMDMgMTE2NyAxMUJDO0IzQTE7MTEwMyAxMTY3IDExQkM7CitCM0EyO0IzQTI7MTEwMyAxMTY3IDExQkQ7QjNBMjsxMTAzIDExNjcgMTFCRDsKK0IzQTM7QjNBMzsxMTAzIDExNjcgMTFCRTtCM0EzOzExMDMgMTE2NyAxMUJFOworQjNBNDtCM0E0OzExMDMgMTE2NyAxMUJGO0IzQTQ7MTEwMyAxMTY3IDExQkY7CitCM0E1O0IzQTU7MTEwMyAxMTY3IDExQzA7QjNBNTsxMTAzIDExNjcgMTFDMDsKK0IzQTY7QjNBNjsxMTAzIDExNjcgMTFDMTtCM0E2OzExMDMgMTE2NyAxMUMxOworQjNBNztCM0E3OzExMDMgMTE2NyAxMUMyO0IzQTc7MTEwMyAxMTY3IDExQzI7CitCM0E4O0IzQTg7MTEwMyAxMTY4O0IzQTg7MTEwMyAxMTY4OworQjNBOTtCM0E5OzExMDMgMTE2OCAxMUE4O0IzQTk7MTEwMyAxMTY4IDExQTg7CitCM0FBO0IzQUE7MTEwMyAxMTY4IDExQTk7QjNBQTsxMTAzIDExNjggMTFBOTsKK0IzQUI7QjNBQjsxMTAzIDExNjggMTFBQTtCM0FCOzExMDMgMTE2OCAxMUFBOworQjNBQztCM0FDOzExMDMgMTE2OCAxMUFCO0IzQUM7MTEwMyAxMTY4IDExQUI7CitCM0FEO0IzQUQ7MTEwMyAxMTY4IDExQUM7QjNBRDsxMTAzIDExNjggMTFBQzsKK0IzQUU7QjNBRTsxMTAzIDExNjggMTFBRDtCM0FFOzExMDMgMTE2OCAxMUFEOworQjNBRjtCM0FGOzExMDMgMTE2OCAxMUFFO0IzQUY7MTEwMyAxMTY4IDExQUU7CitCM0IwO0IzQjA7MTEwMyAxMTY4IDExQUY7QjNCMDsxMTAzIDExNjggMTFBRjsKK0IzQjE7QjNCMTsxMTAzIDExNjggMTFCMDtCM0IxOzExMDMgMTE2OCAxMUIwOworQjNCMjtCM0IyOzExMDMgMTE2OCAxMUIxO0IzQjI7MTEwMyAxMTY4IDExQjE7CitCM0IzO0IzQjM7MTEwMyAxMTY4IDExQjI7QjNCMzsxMTAzIDExNjggMTFCMjsKK0IzQjQ7QjNCNDsxMTAzIDExNjggMTFCMztCM0I0OzExMDMgMTE2OCAxMUIzOworQjNCNTtCM0I1OzExMDMgMTE2OCAxMUI0O0IzQjU7MTEwMyAxMTY4IDExQjQ7CitCM0I2O0IzQjY7MTEwMyAxMTY4IDExQjU7QjNCNjsxMTAzIDExNjggMTFCNTsKK0IzQjc7QjNCNzsxMTAzIDExNjggMTFCNjtCM0I3OzExMDMgMTE2OCAxMUI2OworQjNCODtCM0I4OzExMDMgMTE2OCAxMUI3O0IzQjg7MTEwMyAxMTY4IDExQjc7CitCM0I5O0IzQjk7MTEwMyAxMTY4IDExQjg7QjNCOTsxMTAzIDExNjggMTFCODsKK0IzQkE7QjNCQTsxMTAzIDExNjggMTFCOTtCM0JBOzExMDMgMTE2OCAxMUI5OworQjNCQjtCM0JCOzExMDMgMTE2OCAxMUJBO0IzQkI7MTEwMyAxMTY4IDExQkE7CitCM0JDO0IzQkM7MTEwMyAxMTY4IDExQkI7QjNCQzsxMTAzIDExNjggMTFCQjsKK0IzQkQ7QjNCRDsxMTAzIDExNjggMTFCQztCM0JEOzExMDMgMTE2OCAxMUJDOworQjNCRTtCM0JFOzExMDMgMTE2OCAxMUJEO0IzQkU7MTEwMyAxMTY4IDExQkQ7CitCM0JGO0IzQkY7MTEwMyAxMTY4IDExQkU7QjNCRjsxMTAzIDExNjggMTFCRTsKK0IzQzA7QjNDMDsxMTAzIDExNjggMTFCRjtCM0MwOzExMDMgMTE2OCAxMUJGOworQjNDMTtCM0MxOzExMDMgMTE2OCAxMUMwO0IzQzE7MTEwMyAxMTY4IDExQzA7CitCM0MyO0IzQzI7MTEwMyAxMTY4IDExQzE7QjNDMjsxMTAzIDExNjggMTFDMTsKK0IzQzM7QjNDMzsxMTAzIDExNjggMTFDMjtCM0MzOzExMDMgMTE2OCAxMUMyOworQjNDNDtCM0M0OzExMDMgMTE2OTtCM0M0OzExMDMgMTE2OTsKK0IzQzU7QjNDNTsxMTAzIDExNjkgMTFBODtCM0M1OzExMDMgMTE2OSAxMUE4OworQjNDNjtCM0M2OzExMDMgMTE2OSAxMUE5O0IzQzY7MTEwMyAxMTY5IDExQTk7CitCM0M3O0IzQzc7MTEwMyAxMTY5IDExQUE7QjNDNzsxMTAzIDExNjkgMTFBQTsKK0IzQzg7QjNDODsxMTAzIDExNjkgMTFBQjtCM0M4OzExMDMgMTE2OSAxMUFCOworQjNDOTtCM0M5OzExMDMgMTE2OSAxMUFDO0IzQzk7MTEwMyAxMTY5IDExQUM7CitCM0NBO0IzQ0E7MTEwMyAxMTY5IDExQUQ7QjNDQTsxMTAzIDExNjkgMTFBRDsKK0IzQ0I7QjNDQjsxMTAzIDExNjkgMTFBRTtCM0NCOzExMDMgMTE2OSAxMUFFOworQjNDQztCM0NDOzExMDMgMTE2OSAxMUFGO0IzQ0M7MTEwMyAxMTY5IDExQUY7CitCM0NEO0IzQ0Q7MTEwMyAxMTY5IDExQjA7QjNDRDsxMTAzIDExNjkgMTFCMDsKK0IzQ0U7QjNDRTsxMTAzIDExNjkgMTFCMTtCM0NFOzExMDMgMTE2OSAxMUIxOworQjNDRjtCM0NGOzExMDMgMTE2OSAxMUIyO0IzQ0Y7MTEwMyAxMTY5IDExQjI7CitCM0QwO0IzRDA7MTEwMyAxMTY5IDExQjM7QjNEMDsxMTAzIDExNjkgMTFCMzsKK0IzRDE7QjNEMTsxMTAzIDExNjkgMTFCNDtCM0QxOzExMDMgMTE2OSAxMUI0OworQjNEMjtCM0QyOzExMDMgMTE2OSAxMUI1O0IzRDI7MTEwMyAxMTY5IDExQjU7CitCM0QzO0IzRDM7MTEwMyAxMTY5IDExQjY7QjNEMzsxMTAzIDExNjkgMTFCNjsKK0IzRDQ7QjNENDsxMTAzIDExNjkgMTFCNztCM0Q0OzExMDMgMTE2OSAxMUI3OworQjNENTtCM0Q1OzExMDMgMTE2OSAxMUI4O0IzRDU7MTEwMyAxMTY5IDExQjg7CitCM0Q2O0IzRDY7MTEwMyAxMTY5IDExQjk7QjNENjsxMTAzIDExNjkgMTFCOTsKK0IzRDc7QjNENzsxMTAzIDExNjkgMTFCQTtCM0Q3OzExMDMgMTE2OSAxMUJBOworQjNEODtCM0Q4OzExMDMgMTE2OSAxMUJCO0IzRDg7MTEwMyAxMTY5IDExQkI7CitCM0Q5O0IzRDk7MTEwMyAxMTY5IDExQkM7QjNEOTsxMTAzIDExNjkgMTFCQzsKK0IzREE7QjNEQTsxMTAzIDExNjkgMTFCRDtCM0RBOzExMDMgMTE2OSAxMUJEOworQjNEQjtCM0RCOzExMDMgMTE2OSAxMUJFO0IzREI7MTEwMyAxMTY5IDExQkU7CitCM0RDO0IzREM7MTEwMyAxMTY5IDExQkY7QjNEQzsxMTAzIDExNjkgMTFCRjsKK0IzREQ7QjNERDsxMTAzIDExNjkgMTFDMDtCM0REOzExMDMgMTE2OSAxMUMwOworQjNERTtCM0RFOzExMDMgMTE2OSAxMUMxO0IzREU7MTEwMyAxMTY5IDExQzE7CitCM0RGO0IzREY7MTEwMyAxMTY5IDExQzI7QjNERjsxMTAzIDExNjkgMTFDMjsKK0IzRTA7QjNFMDsxMTAzIDExNkE7QjNFMDsxMTAzIDExNkE7CitCM0UxO0IzRTE7MTEwMyAxMTZBIDExQTg7QjNFMTsxMTAzIDExNkEgMTFBODsKK0IzRTI7QjNFMjsxMTAzIDExNkEgMTFBOTtCM0UyOzExMDMgMTE2QSAxMUE5OworQjNFMztCM0UzOzExMDMgMTE2QSAxMUFBO0IzRTM7MTEwMyAxMTZBIDExQUE7CitCM0U0O0IzRTQ7MTEwMyAxMTZBIDExQUI7QjNFNDsxMTAzIDExNkEgMTFBQjsKK0IzRTU7QjNFNTsxMTAzIDExNkEgMTFBQztCM0U1OzExMDMgMTE2QSAxMUFDOworQjNFNjtCM0U2OzExMDMgMTE2QSAxMUFEO0IzRTY7MTEwMyAxMTZBIDExQUQ7CitCM0U3O0IzRTc7MTEwMyAxMTZBIDExQUU7QjNFNzsxMTAzIDExNkEgMTFBRTsKK0IzRTg7QjNFODsxMTAzIDExNkEgMTFBRjtCM0U4OzExMDMgMTE2QSAxMUFGOworQjNFOTtCM0U5OzExMDMgMTE2QSAxMUIwO0IzRTk7MTEwMyAxMTZBIDExQjA7CitCM0VBO0IzRUE7MTEwMyAxMTZBIDExQjE7QjNFQTsxMTAzIDExNkEgMTFCMTsKK0IzRUI7QjNFQjsxMTAzIDExNkEgMTFCMjtCM0VCOzExMDMgMTE2QSAxMUIyOworQjNFQztCM0VDOzExMDMgMTE2QSAxMUIzO0IzRUM7MTEwMyAxMTZBIDExQjM7CitCM0VEO0IzRUQ7MTEwMyAxMTZBIDExQjQ7QjNFRDsxMTAzIDExNkEgMTFCNDsKK0IzRUU7QjNFRTsxMTAzIDExNkEgMTFCNTtCM0VFOzExMDMgMTE2QSAxMUI1OworQjNFRjtCM0VGOzExMDMgMTE2QSAxMUI2O0IzRUY7MTEwMyAxMTZBIDExQjY7CitCM0YwO0IzRjA7MTEwMyAxMTZBIDExQjc7QjNGMDsxMTAzIDExNkEgMTFCNzsKK0IzRjE7QjNGMTsxMTAzIDExNkEgMTFCODtCM0YxOzExMDMgMTE2QSAxMUI4OworQjNGMjtCM0YyOzExMDMgMTE2QSAxMUI5O0IzRjI7MTEwMyAxMTZBIDExQjk7CitCM0YzO0IzRjM7MTEwMyAxMTZBIDExQkE7QjNGMzsxMTAzIDExNkEgMTFCQTsKK0IzRjQ7QjNGNDsxMTAzIDExNkEgMTFCQjtCM0Y0OzExMDMgMTE2QSAxMUJCOworQjNGNTtCM0Y1OzExMDMgMTE2QSAxMUJDO0IzRjU7MTEwMyAxMTZBIDExQkM7CitCM0Y2O0IzRjY7MTEwMyAxMTZBIDExQkQ7QjNGNjsxMTAzIDExNkEgMTFCRDsKK0IzRjc7QjNGNzsxMTAzIDExNkEgMTFCRTtCM0Y3OzExMDMgMTE2QSAxMUJFOworQjNGODtCM0Y4OzExMDMgMTE2QSAxMUJGO0IzRjg7MTEwMyAxMTZBIDExQkY7CitCM0Y5O0IzRjk7MTEwMyAxMTZBIDExQzA7QjNGOTsxMTAzIDExNkEgMTFDMDsKK0IzRkE7QjNGQTsxMTAzIDExNkEgMTFDMTtCM0ZBOzExMDMgMTE2QSAxMUMxOworQjNGQjtCM0ZCOzExMDMgMTE2QSAxMUMyO0IzRkI7MTEwMyAxMTZBIDExQzI7CitCM0ZDO0IzRkM7MTEwMyAxMTZCO0IzRkM7MTEwMyAxMTZCOworQjNGRDtCM0ZEOzExMDMgMTE2QiAxMUE4O0IzRkQ7MTEwMyAxMTZCIDExQTg7CitCM0ZFO0IzRkU7MTEwMyAxMTZCIDExQTk7QjNGRTsxMTAzIDExNkIgMTFBOTsKK0IzRkY7QjNGRjsxMTAzIDExNkIgMTFBQTtCM0ZGOzExMDMgMTE2QiAxMUFBOworQjQwMDtCNDAwOzExMDMgMTE2QiAxMUFCO0I0MDA7MTEwMyAxMTZCIDExQUI7CitCNDAxO0I0MDE7MTEwMyAxMTZCIDExQUM7QjQwMTsxMTAzIDExNkIgMTFBQzsKK0I0MDI7QjQwMjsxMTAzIDExNkIgMTFBRDtCNDAyOzExMDMgMTE2QiAxMUFEOworQjQwMztCNDAzOzExMDMgMTE2QiAxMUFFO0I0MDM7MTEwMyAxMTZCIDExQUU7CitCNDA0O0I0MDQ7MTEwMyAxMTZCIDExQUY7QjQwNDsxMTAzIDExNkIgMTFBRjsKK0I0MDU7QjQwNTsxMTAzIDExNkIgMTFCMDtCNDA1OzExMDMgMTE2QiAxMUIwOworQjQwNjtCNDA2OzExMDMgMTE2QiAxMUIxO0I0MDY7MTEwMyAxMTZCIDExQjE7CitCNDA3O0I0MDc7MTEwMyAxMTZCIDExQjI7QjQwNzsxMTAzIDExNkIgMTFCMjsKK0I0MDg7QjQwODsxMTAzIDExNkIgMTFCMztCNDA4OzExMDMgMTE2QiAxMUIzOworQjQwOTtCNDA5OzExMDMgMTE2QiAxMUI0O0I0MDk7MTEwMyAxMTZCIDExQjQ7CitCNDBBO0I0MEE7MTEwMyAxMTZCIDExQjU7QjQwQTsxMTAzIDExNkIgMTFCNTsKK0I0MEI7QjQwQjsxMTAzIDExNkIgMTFCNjtCNDBCOzExMDMgMTE2QiAxMUI2OworQjQwQztCNDBDOzExMDMgMTE2QiAxMUI3O0I0MEM7MTEwMyAxMTZCIDExQjc7CitCNDBEO0I0MEQ7MTEwMyAxMTZCIDExQjg7QjQwRDsxMTAzIDExNkIgMTFCODsKK0I0MEU7QjQwRTsxMTAzIDExNkIgMTFCOTtCNDBFOzExMDMgMTE2QiAxMUI5OworQjQwRjtCNDBGOzExMDMgMTE2QiAxMUJBO0I0MEY7MTEwMyAxMTZCIDExQkE7CitCNDEwO0I0MTA7MTEwMyAxMTZCIDExQkI7QjQxMDsxMTAzIDExNkIgMTFCQjsKK0I0MTE7QjQxMTsxMTAzIDExNkIgMTFCQztCNDExOzExMDMgMTE2QiAxMUJDOworQjQxMjtCNDEyOzExMDMgMTE2QiAxMUJEO0I0MTI7MTEwMyAxMTZCIDExQkQ7CitCNDEzO0I0MTM7MTEwMyAxMTZCIDExQkU7QjQxMzsxMTAzIDExNkIgMTFCRTsKK0I0MTQ7QjQxNDsxMTAzIDExNkIgMTFCRjtCNDE0OzExMDMgMTE2QiAxMUJGOworQjQxNTtCNDE1OzExMDMgMTE2QiAxMUMwO0I0MTU7MTEwMyAxMTZCIDExQzA7CitCNDE2O0I0MTY7MTEwMyAxMTZCIDExQzE7QjQxNjsxMTAzIDExNkIgMTFDMTsKK0I0MTc7QjQxNzsxMTAzIDExNkIgMTFDMjtCNDE3OzExMDMgMTE2QiAxMUMyOworQjQxODtCNDE4OzExMDMgMTE2QztCNDE4OzExMDMgMTE2QzsKK0I0MTk7QjQxOTsxMTAzIDExNkMgMTFBODtCNDE5OzExMDMgMTE2QyAxMUE4OworQjQxQTtCNDFBOzExMDMgMTE2QyAxMUE5O0I0MUE7MTEwMyAxMTZDIDExQTk7CitCNDFCO0I0MUI7MTEwMyAxMTZDIDExQUE7QjQxQjsxMTAzIDExNkMgMTFBQTsKK0I0MUM7QjQxQzsxMTAzIDExNkMgMTFBQjtCNDFDOzExMDMgMTE2QyAxMUFCOworQjQxRDtCNDFEOzExMDMgMTE2QyAxMUFDO0I0MUQ7MTEwMyAxMTZDIDExQUM7CitCNDFFO0I0MUU7MTEwMyAxMTZDIDExQUQ7QjQxRTsxMTAzIDExNkMgMTFBRDsKK0I0MUY7QjQxRjsxMTAzIDExNkMgMTFBRTtCNDFGOzExMDMgMTE2QyAxMUFFOworQjQyMDtCNDIwOzExMDMgMTE2QyAxMUFGO0I0MjA7MTEwMyAxMTZDIDExQUY7CitCNDIxO0I0MjE7MTEwMyAxMTZDIDExQjA7QjQyMTsxMTAzIDExNkMgMTFCMDsKK0I0MjI7QjQyMjsxMTAzIDExNkMgMTFCMTtCNDIyOzExMDMgMTE2QyAxMUIxOworQjQyMztCNDIzOzExMDMgMTE2QyAxMUIyO0I0MjM7MTEwMyAxMTZDIDExQjI7CitCNDI0O0I0MjQ7MTEwMyAxMTZDIDExQjM7QjQyNDsxMTAzIDExNkMgMTFCMzsKK0I0MjU7QjQyNTsxMTAzIDExNkMgMTFCNDtCNDI1OzExMDMgMTE2QyAxMUI0OworQjQyNjtCNDI2OzExMDMgMTE2QyAxMUI1O0I0MjY7MTEwMyAxMTZDIDExQjU7CitCNDI3O0I0Mjc7MTEwMyAxMTZDIDExQjY7QjQyNzsxMTAzIDExNkMgMTFCNjsKK0I0Mjg7QjQyODsxMTAzIDExNkMgMTFCNztCNDI4OzExMDMgMTE2QyAxMUI3OworQjQyOTtCNDI5OzExMDMgMTE2QyAxMUI4O0I0Mjk7MTEwMyAxMTZDIDExQjg7CitCNDJBO0I0MkE7MTEwMyAxMTZDIDExQjk7QjQyQTsxMTAzIDExNkMgMTFCOTsKK0I0MkI7QjQyQjsxMTAzIDExNkMgMTFCQTtCNDJCOzExMDMgMTE2QyAxMUJBOworQjQyQztCNDJDOzExMDMgMTE2QyAxMUJCO0I0MkM7MTEwMyAxMTZDIDExQkI7CitCNDJEO0I0MkQ7MTEwMyAxMTZDIDExQkM7QjQyRDsxMTAzIDExNkMgMTFCQzsKK0I0MkU7QjQyRTsxMTAzIDExNkMgMTFCRDtCNDJFOzExMDMgMTE2QyAxMUJEOworQjQyRjtCNDJGOzExMDMgMTE2QyAxMUJFO0I0MkY7MTEwMyAxMTZDIDExQkU7CitCNDMwO0I0MzA7MTEwMyAxMTZDIDExQkY7QjQzMDsxMTAzIDExNkMgMTFCRjsKK0I0MzE7QjQzMTsxMTAzIDExNkMgMTFDMDtCNDMxOzExMDMgMTE2QyAxMUMwOworQjQzMjtCNDMyOzExMDMgMTE2QyAxMUMxO0I0MzI7MTEwMyAxMTZDIDExQzE7CitCNDMzO0I0MzM7MTEwMyAxMTZDIDExQzI7QjQzMzsxMTAzIDExNkMgMTFDMjsKK0I0MzQ7QjQzNDsxMTAzIDExNkQ7QjQzNDsxMTAzIDExNkQ7CitCNDM1O0I0MzU7MTEwMyAxMTZEIDExQTg7QjQzNTsxMTAzIDExNkQgMTFBODsKK0I0MzY7QjQzNjsxMTAzIDExNkQgMTFBOTtCNDM2OzExMDMgMTE2RCAxMUE5OworQjQzNztCNDM3OzExMDMgMTE2RCAxMUFBO0I0Mzc7MTEwMyAxMTZEIDExQUE7CitCNDM4O0I0Mzg7MTEwMyAxMTZEIDExQUI7QjQzODsxMTAzIDExNkQgMTFBQjsKK0I0Mzk7QjQzOTsxMTAzIDExNkQgMTFBQztCNDM5OzExMDMgMTE2RCAxMUFDOworQjQzQTtCNDNBOzExMDMgMTE2RCAxMUFEO0I0M0E7MTEwMyAxMTZEIDExQUQ7CitCNDNCO0I0M0I7MTEwMyAxMTZEIDExQUU7QjQzQjsxMTAzIDExNkQgMTFBRTsKK0I0M0M7QjQzQzsxMTAzIDExNkQgMTFBRjtCNDNDOzExMDMgMTE2RCAxMUFGOworQjQzRDtCNDNEOzExMDMgMTE2RCAxMUIwO0I0M0Q7MTEwMyAxMTZEIDExQjA7CitCNDNFO0I0M0U7MTEwMyAxMTZEIDExQjE7QjQzRTsxMTAzIDExNkQgMTFCMTsKK0I0M0Y7QjQzRjsxMTAzIDExNkQgMTFCMjtCNDNGOzExMDMgMTE2RCAxMUIyOworQjQ0MDtCNDQwOzExMDMgMTE2RCAxMUIzO0I0NDA7MTEwMyAxMTZEIDExQjM7CitCNDQxO0I0NDE7MTEwMyAxMTZEIDExQjQ7QjQ0MTsxMTAzIDExNkQgMTFCNDsKK0I0NDI7QjQ0MjsxMTAzIDExNkQgMTFCNTtCNDQyOzExMDMgMTE2RCAxMUI1OworQjQ0MztCNDQzOzExMDMgMTE2RCAxMUI2O0I0NDM7MTEwMyAxMTZEIDExQjY7CitCNDQ0O0I0NDQ7MTEwMyAxMTZEIDExQjc7QjQ0NDsxMTAzIDExNkQgMTFCNzsKK0I0NDU7QjQ0NTsxMTAzIDExNkQgMTFCODtCNDQ1OzExMDMgMTE2RCAxMUI4OworQjQ0NjtCNDQ2OzExMDMgMTE2RCAxMUI5O0I0NDY7MTEwMyAxMTZEIDExQjk7CitCNDQ3O0I0NDc7MTEwMyAxMTZEIDExQkE7QjQ0NzsxMTAzIDExNkQgMTFCQTsKK0I0NDg7QjQ0ODsxMTAzIDExNkQgMTFCQjtCNDQ4OzExMDMgMTE2RCAxMUJCOworQjQ0OTtCNDQ5OzExMDMgMTE2RCAxMUJDO0I0NDk7MTEwMyAxMTZEIDExQkM7CitCNDRBO0I0NEE7MTEwMyAxMTZEIDExQkQ7QjQ0QTsxMTAzIDExNkQgMTFCRDsKK0I0NEI7QjQ0QjsxMTAzIDExNkQgMTFCRTtCNDRCOzExMDMgMTE2RCAxMUJFOworQjQ0QztCNDRDOzExMDMgMTE2RCAxMUJGO0I0NEM7MTEwMyAxMTZEIDExQkY7CitCNDREO0I0NEQ7MTEwMyAxMTZEIDExQzA7QjQ0RDsxMTAzIDExNkQgMTFDMDsKK0I0NEU7QjQ0RTsxMTAzIDExNkQgMTFDMTtCNDRFOzExMDMgMTE2RCAxMUMxOworQjQ0RjtCNDRGOzExMDMgMTE2RCAxMUMyO0I0NEY7MTEwMyAxMTZEIDExQzI7CitCNDUwO0I0NTA7MTEwMyAxMTZFO0I0NTA7MTEwMyAxMTZFOworQjQ1MTtCNDUxOzExMDMgMTE2RSAxMUE4O0I0NTE7MTEwMyAxMTZFIDExQTg7CitCNDUyO0I0NTI7MTEwMyAxMTZFIDExQTk7QjQ1MjsxMTAzIDExNkUgMTFBOTsKK0I0NTM7QjQ1MzsxMTAzIDExNkUgMTFBQTtCNDUzOzExMDMgMTE2RSAxMUFBOworQjQ1NDtCNDU0OzExMDMgMTE2RSAxMUFCO0I0NTQ7MTEwMyAxMTZFIDExQUI7CitCNDU1O0I0NTU7MTEwMyAxMTZFIDExQUM7QjQ1NTsxMTAzIDExNkUgMTFBQzsKK0I0NTY7QjQ1NjsxMTAzIDExNkUgMTFBRDtCNDU2OzExMDMgMTE2RSAxMUFEOworQjQ1NztCNDU3OzExMDMgMTE2RSAxMUFFO0I0NTc7MTEwMyAxMTZFIDExQUU7CitCNDU4O0I0NTg7MTEwMyAxMTZFIDExQUY7QjQ1ODsxMTAzIDExNkUgMTFBRjsKK0I0NTk7QjQ1OTsxMTAzIDExNkUgMTFCMDtCNDU5OzExMDMgMTE2RSAxMUIwOworQjQ1QTtCNDVBOzExMDMgMTE2RSAxMUIxO0I0NUE7MTEwMyAxMTZFIDExQjE7CitCNDVCO0I0NUI7MTEwMyAxMTZFIDExQjI7QjQ1QjsxMTAzIDExNkUgMTFCMjsKK0I0NUM7QjQ1QzsxMTAzIDExNkUgMTFCMztCNDVDOzExMDMgMTE2RSAxMUIzOworQjQ1RDtCNDVEOzExMDMgMTE2RSAxMUI0O0I0NUQ7MTEwMyAxMTZFIDExQjQ7CitCNDVFO0I0NUU7MTEwMyAxMTZFIDExQjU7QjQ1RTsxMTAzIDExNkUgMTFCNTsKK0I0NUY7QjQ1RjsxMTAzIDExNkUgMTFCNjtCNDVGOzExMDMgMTE2RSAxMUI2OworQjQ2MDtCNDYwOzExMDMgMTE2RSAxMUI3O0I0NjA7MTEwMyAxMTZFIDExQjc7CitCNDYxO0I0NjE7MTEwMyAxMTZFIDExQjg7QjQ2MTsxMTAzIDExNkUgMTFCODsKK0I0NjI7QjQ2MjsxMTAzIDExNkUgMTFCOTtCNDYyOzExMDMgMTE2RSAxMUI5OworQjQ2MztCNDYzOzExMDMgMTE2RSAxMUJBO0I0NjM7MTEwMyAxMTZFIDExQkE7CitCNDY0O0I0NjQ7MTEwMyAxMTZFIDExQkI7QjQ2NDsxMTAzIDExNkUgMTFCQjsKK0I0NjU7QjQ2NTsxMTAzIDExNkUgMTFCQztCNDY1OzExMDMgMTE2RSAxMUJDOworQjQ2NjtCNDY2OzExMDMgMTE2RSAxMUJEO0I0NjY7MTEwMyAxMTZFIDExQkQ7CitCNDY3O0I0Njc7MTEwMyAxMTZFIDExQkU7QjQ2NzsxMTAzIDExNkUgMTFCRTsKK0I0Njg7QjQ2ODsxMTAzIDExNkUgMTFCRjtCNDY4OzExMDMgMTE2RSAxMUJGOworQjQ2OTtCNDY5OzExMDMgMTE2RSAxMUMwO0I0Njk7MTEwMyAxMTZFIDExQzA7CitCNDZBO0I0NkE7MTEwMyAxMTZFIDExQzE7QjQ2QTsxMTAzIDExNkUgMTFDMTsKK0I0NkI7QjQ2QjsxMTAzIDExNkUgMTFDMjtCNDZCOzExMDMgMTE2RSAxMUMyOworQjQ2QztCNDZDOzExMDMgMTE2RjtCNDZDOzExMDMgMTE2RjsKK0I0NkQ7QjQ2RDsxMTAzIDExNkYgMTFBODtCNDZEOzExMDMgMTE2RiAxMUE4OworQjQ2RTtCNDZFOzExMDMgMTE2RiAxMUE5O0I0NkU7MTEwMyAxMTZGIDExQTk7CitCNDZGO0I0NkY7MTEwMyAxMTZGIDExQUE7QjQ2RjsxMTAzIDExNkYgMTFBQTsKK0I0NzA7QjQ3MDsxMTAzIDExNkYgMTFBQjtCNDcwOzExMDMgMTE2RiAxMUFCOworQjQ3MTtCNDcxOzExMDMgMTE2RiAxMUFDO0I0NzE7MTEwMyAxMTZGIDExQUM7CitCNDcyO0I0NzI7MTEwMyAxMTZGIDExQUQ7QjQ3MjsxMTAzIDExNkYgMTFBRDsKK0I0NzM7QjQ3MzsxMTAzIDExNkYgMTFBRTtCNDczOzExMDMgMTE2RiAxMUFFOworQjQ3NDtCNDc0OzExMDMgMTE2RiAxMUFGO0I0NzQ7MTEwMyAxMTZGIDExQUY7CitCNDc1O0I0NzU7MTEwMyAxMTZGIDExQjA7QjQ3NTsxMTAzIDExNkYgMTFCMDsKK0I0NzY7QjQ3NjsxMTAzIDExNkYgMTFCMTtCNDc2OzExMDMgMTE2RiAxMUIxOworQjQ3NztCNDc3OzExMDMgMTE2RiAxMUIyO0I0Nzc7MTEwMyAxMTZGIDExQjI7CitCNDc4O0I0Nzg7MTEwMyAxMTZGIDExQjM7QjQ3ODsxMTAzIDExNkYgMTFCMzsKK0I0Nzk7QjQ3OTsxMTAzIDExNkYgMTFCNDtCNDc5OzExMDMgMTE2RiAxMUI0OworQjQ3QTtCNDdBOzExMDMgMTE2RiAxMUI1O0I0N0E7MTEwMyAxMTZGIDExQjU7CitCNDdCO0I0N0I7MTEwMyAxMTZGIDExQjY7QjQ3QjsxMTAzIDExNkYgMTFCNjsKK0I0N0M7QjQ3QzsxMTAzIDExNkYgMTFCNztCNDdDOzExMDMgMTE2RiAxMUI3OworQjQ3RDtCNDdEOzExMDMgMTE2RiAxMUI4O0I0N0Q7MTEwMyAxMTZGIDExQjg7CitCNDdFO0I0N0U7MTEwMyAxMTZGIDExQjk7QjQ3RTsxMTAzIDExNkYgMTFCOTsKK0I0N0Y7QjQ3RjsxMTAzIDExNkYgMTFCQTtCNDdGOzExMDMgMTE2RiAxMUJBOworQjQ4MDtCNDgwOzExMDMgMTE2RiAxMUJCO0I0ODA7MTEwMyAxMTZGIDExQkI7CitCNDgxO0I0ODE7MTEwMyAxMTZGIDExQkM7QjQ4MTsxMTAzIDExNkYgMTFCQzsKK0I0ODI7QjQ4MjsxMTAzIDExNkYgMTFCRDtCNDgyOzExMDMgMTE2RiAxMUJEOworQjQ4MztCNDgzOzExMDMgMTE2RiAxMUJFO0I0ODM7MTEwMyAxMTZGIDExQkU7CitCNDg0O0I0ODQ7MTEwMyAxMTZGIDExQkY7QjQ4NDsxMTAzIDExNkYgMTFCRjsKK0I0ODU7QjQ4NTsxMTAzIDExNkYgMTFDMDtCNDg1OzExMDMgMTE2RiAxMUMwOworQjQ4NjtCNDg2OzExMDMgMTE2RiAxMUMxO0I0ODY7MTEwMyAxMTZGIDExQzE7CitCNDg3O0I0ODc7MTEwMyAxMTZGIDExQzI7QjQ4NzsxMTAzIDExNkYgMTFDMjsKK0I0ODg7QjQ4ODsxMTAzIDExNzA7QjQ4ODsxMTAzIDExNzA7CitCNDg5O0I0ODk7MTEwMyAxMTcwIDExQTg7QjQ4OTsxMTAzIDExNzAgMTFBODsKK0I0OEE7QjQ4QTsxMTAzIDExNzAgMTFBOTtCNDhBOzExMDMgMTE3MCAxMUE5OworQjQ4QjtCNDhCOzExMDMgMTE3MCAxMUFBO0I0OEI7MTEwMyAxMTcwIDExQUE7CitCNDhDO0I0OEM7MTEwMyAxMTcwIDExQUI7QjQ4QzsxMTAzIDExNzAgMTFBQjsKK0I0OEQ7QjQ4RDsxMTAzIDExNzAgMTFBQztCNDhEOzExMDMgMTE3MCAxMUFDOworQjQ4RTtCNDhFOzExMDMgMTE3MCAxMUFEO0I0OEU7MTEwMyAxMTcwIDExQUQ7CitCNDhGO0I0OEY7MTEwMyAxMTcwIDExQUU7QjQ4RjsxMTAzIDExNzAgMTFBRTsKK0I0OTA7QjQ5MDsxMTAzIDExNzAgMTFBRjtCNDkwOzExMDMgMTE3MCAxMUFGOworQjQ5MTtCNDkxOzExMDMgMTE3MCAxMUIwO0I0OTE7MTEwMyAxMTcwIDExQjA7CitCNDkyO0I0OTI7MTEwMyAxMTcwIDExQjE7QjQ5MjsxMTAzIDExNzAgMTFCMTsKK0I0OTM7QjQ5MzsxMTAzIDExNzAgMTFCMjtCNDkzOzExMDMgMTE3MCAxMUIyOworQjQ5NDtCNDk0OzExMDMgMTE3MCAxMUIzO0I0OTQ7MTEwMyAxMTcwIDExQjM7CitCNDk1O0I0OTU7MTEwMyAxMTcwIDExQjQ7QjQ5NTsxMTAzIDExNzAgMTFCNDsKK0I0OTY7QjQ5NjsxMTAzIDExNzAgMTFCNTtCNDk2OzExMDMgMTE3MCAxMUI1OworQjQ5NztCNDk3OzExMDMgMTE3MCAxMUI2O0I0OTc7MTEwMyAxMTcwIDExQjY7CitCNDk4O0I0OTg7MTEwMyAxMTcwIDExQjc7QjQ5ODsxMTAzIDExNzAgMTFCNzsKK0I0OTk7QjQ5OTsxMTAzIDExNzAgMTFCODtCNDk5OzExMDMgMTE3MCAxMUI4OworQjQ5QTtCNDlBOzExMDMgMTE3MCAxMUI5O0I0OUE7MTEwMyAxMTcwIDExQjk7CitCNDlCO0I0OUI7MTEwMyAxMTcwIDExQkE7QjQ5QjsxMTAzIDExNzAgMTFCQTsKK0I0OUM7QjQ5QzsxMTAzIDExNzAgMTFCQjtCNDlDOzExMDMgMTE3MCAxMUJCOworQjQ5RDtCNDlEOzExMDMgMTE3MCAxMUJDO0I0OUQ7MTEwMyAxMTcwIDExQkM7CitCNDlFO0I0OUU7MTEwMyAxMTcwIDExQkQ7QjQ5RTsxMTAzIDExNzAgMTFCRDsKK0I0OUY7QjQ5RjsxMTAzIDExNzAgMTFCRTtCNDlGOzExMDMgMTE3MCAxMUJFOworQjRBMDtCNEEwOzExMDMgMTE3MCAxMUJGO0I0QTA7MTEwMyAxMTcwIDExQkY7CitCNEExO0I0QTE7MTEwMyAxMTcwIDExQzA7QjRBMTsxMTAzIDExNzAgMTFDMDsKK0I0QTI7QjRBMjsxMTAzIDExNzAgMTFDMTtCNEEyOzExMDMgMTE3MCAxMUMxOworQjRBMztCNEEzOzExMDMgMTE3MCAxMUMyO0I0QTM7MTEwMyAxMTcwIDExQzI7CitCNEE0O0I0QTQ7MTEwMyAxMTcxO0I0QTQ7MTEwMyAxMTcxOworQjRBNTtCNEE1OzExMDMgMTE3MSAxMUE4O0I0QTU7MTEwMyAxMTcxIDExQTg7CitCNEE2O0I0QTY7MTEwMyAxMTcxIDExQTk7QjRBNjsxMTAzIDExNzEgMTFBOTsKK0I0QTc7QjRBNzsxMTAzIDExNzEgMTFBQTtCNEE3OzExMDMgMTE3MSAxMUFBOworQjRBODtCNEE4OzExMDMgMTE3MSAxMUFCO0I0QTg7MTEwMyAxMTcxIDExQUI7CitCNEE5O0I0QTk7MTEwMyAxMTcxIDExQUM7QjRBOTsxMTAzIDExNzEgMTFBQzsKK0I0QUE7QjRBQTsxMTAzIDExNzEgMTFBRDtCNEFBOzExMDMgMTE3MSAxMUFEOworQjRBQjtCNEFCOzExMDMgMTE3MSAxMUFFO0I0QUI7MTEwMyAxMTcxIDExQUU7CitCNEFDO0I0QUM7MTEwMyAxMTcxIDExQUY7QjRBQzsxMTAzIDExNzEgMTFBRjsKK0I0QUQ7QjRBRDsxMTAzIDExNzEgMTFCMDtCNEFEOzExMDMgMTE3MSAxMUIwOworQjRBRTtCNEFFOzExMDMgMTE3MSAxMUIxO0I0QUU7MTEwMyAxMTcxIDExQjE7CitCNEFGO0I0QUY7MTEwMyAxMTcxIDExQjI7QjRBRjsxMTAzIDExNzEgMTFCMjsKK0I0QjA7QjRCMDsxMTAzIDExNzEgMTFCMztCNEIwOzExMDMgMTE3MSAxMUIzOworQjRCMTtCNEIxOzExMDMgMTE3MSAxMUI0O0I0QjE7MTEwMyAxMTcxIDExQjQ7CitCNEIyO0I0QjI7MTEwMyAxMTcxIDExQjU7QjRCMjsxMTAzIDExNzEgMTFCNTsKK0I0QjM7QjRCMzsxMTAzIDExNzEgMTFCNjtCNEIzOzExMDMgMTE3MSAxMUI2OworQjRCNDtCNEI0OzExMDMgMTE3MSAxMUI3O0I0QjQ7MTEwMyAxMTcxIDExQjc7CitCNEI1O0I0QjU7MTEwMyAxMTcxIDExQjg7QjRCNTsxMTAzIDExNzEgMTFCODsKK0I0QjY7QjRCNjsxMTAzIDExNzEgMTFCOTtCNEI2OzExMDMgMTE3MSAxMUI5OworQjRCNztCNEI3OzExMDMgMTE3MSAxMUJBO0I0Qjc7MTEwMyAxMTcxIDExQkE7CitCNEI4O0I0Qjg7MTEwMyAxMTcxIDExQkI7QjRCODsxMTAzIDExNzEgMTFCQjsKK0I0Qjk7QjRCOTsxMTAzIDExNzEgMTFCQztCNEI5OzExMDMgMTE3MSAxMUJDOworQjRCQTtCNEJBOzExMDMgMTE3MSAxMUJEO0I0QkE7MTEwMyAxMTcxIDExQkQ7CitCNEJCO0I0QkI7MTEwMyAxMTcxIDExQkU7QjRCQjsxMTAzIDExNzEgMTFCRTsKK0I0QkM7QjRCQzsxMTAzIDExNzEgMTFCRjtCNEJDOzExMDMgMTE3MSAxMUJGOworQjRCRDtCNEJEOzExMDMgMTE3MSAxMUMwO0I0QkQ7MTEwMyAxMTcxIDExQzA7CitCNEJFO0I0QkU7MTEwMyAxMTcxIDExQzE7QjRCRTsxMTAzIDExNzEgMTFDMTsKK0I0QkY7QjRCRjsxMTAzIDExNzEgMTFDMjtCNEJGOzExMDMgMTE3MSAxMUMyOworQjRDMDtCNEMwOzExMDMgMTE3MjtCNEMwOzExMDMgMTE3MjsKK0I0QzE7QjRDMTsxMTAzIDExNzIgMTFBODtCNEMxOzExMDMgMTE3MiAxMUE4OworQjRDMjtCNEMyOzExMDMgMTE3MiAxMUE5O0I0QzI7MTEwMyAxMTcyIDExQTk7CitCNEMzO0I0QzM7MTEwMyAxMTcyIDExQUE7QjRDMzsxMTAzIDExNzIgMTFBQTsKK0I0QzQ7QjRDNDsxMTAzIDExNzIgMTFBQjtCNEM0OzExMDMgMTE3MiAxMUFCOworQjRDNTtCNEM1OzExMDMgMTE3MiAxMUFDO0I0QzU7MTEwMyAxMTcyIDExQUM7CitCNEM2O0I0QzY7MTEwMyAxMTcyIDExQUQ7QjRDNjsxMTAzIDExNzIgMTFBRDsKK0I0Qzc7QjRDNzsxMTAzIDExNzIgMTFBRTtCNEM3OzExMDMgMTE3MiAxMUFFOworQjRDODtCNEM4OzExMDMgMTE3MiAxMUFGO0I0Qzg7MTEwMyAxMTcyIDExQUY7CitCNEM5O0I0Qzk7MTEwMyAxMTcyIDExQjA7QjRDOTsxMTAzIDExNzIgMTFCMDsKK0I0Q0E7QjRDQTsxMTAzIDExNzIgMTFCMTtCNENBOzExMDMgMTE3MiAxMUIxOworQjRDQjtCNENCOzExMDMgMTE3MiAxMUIyO0I0Q0I7MTEwMyAxMTcyIDExQjI7CitCNENDO0I0Q0M7MTEwMyAxMTcyIDExQjM7QjRDQzsxMTAzIDExNzIgMTFCMzsKK0I0Q0Q7QjRDRDsxMTAzIDExNzIgMTFCNDtCNENEOzExMDMgMTE3MiAxMUI0OworQjRDRTtCNENFOzExMDMgMTE3MiAxMUI1O0I0Q0U7MTEwMyAxMTcyIDExQjU7CitCNENGO0I0Q0Y7MTEwMyAxMTcyIDExQjY7QjRDRjsxMTAzIDExNzIgMTFCNjsKK0I0RDA7QjREMDsxMTAzIDExNzIgMTFCNztCNEQwOzExMDMgMTE3MiAxMUI3OworQjREMTtCNEQxOzExMDMgMTE3MiAxMUI4O0I0RDE7MTEwMyAxMTcyIDExQjg7CitCNEQyO0I0RDI7MTEwMyAxMTcyIDExQjk7QjREMjsxMTAzIDExNzIgMTFCOTsKK0I0RDM7QjREMzsxMTAzIDExNzIgMTFCQTtCNEQzOzExMDMgMTE3MiAxMUJBOworQjRENDtCNEQ0OzExMDMgMTE3MiAxMUJCO0I0RDQ7MTEwMyAxMTcyIDExQkI7CitCNEQ1O0I0RDU7MTEwMyAxMTcyIDExQkM7QjRENTsxMTAzIDExNzIgMTFCQzsKK0I0RDY7QjRENjsxMTAzIDExNzIgMTFCRDtCNEQ2OzExMDMgMTE3MiAxMUJEOworQjRENztCNEQ3OzExMDMgMTE3MiAxMUJFO0I0RDc7MTEwMyAxMTcyIDExQkU7CitCNEQ4O0I0RDg7MTEwMyAxMTcyIDExQkY7QjREODsxMTAzIDExNzIgMTFCRjsKK0I0RDk7QjREOTsxMTAzIDExNzIgMTFDMDtCNEQ5OzExMDMgMTE3MiAxMUMwOworQjREQTtCNERBOzExMDMgMTE3MiAxMUMxO0I0REE7MTEwMyAxMTcyIDExQzE7CitCNERCO0I0REI7MTEwMyAxMTcyIDExQzI7QjREQjsxMTAzIDExNzIgMTFDMjsKK0I0REM7QjREQzsxMTAzIDExNzM7QjREQzsxMTAzIDExNzM7CitCNEREO0I0REQ7MTEwMyAxMTczIDExQTg7QjRERDsxMTAzIDExNzMgMTFBODsKK0I0REU7QjRERTsxMTAzIDExNzMgMTFBOTtCNERFOzExMDMgMTE3MyAxMUE5OworQjRERjtCNERGOzExMDMgMTE3MyAxMUFBO0I0REY7MTEwMyAxMTczIDExQUE7CitCNEUwO0I0RTA7MTEwMyAxMTczIDExQUI7QjRFMDsxMTAzIDExNzMgMTFBQjsKK0I0RTE7QjRFMTsxMTAzIDExNzMgMTFBQztCNEUxOzExMDMgMTE3MyAxMUFDOworQjRFMjtCNEUyOzExMDMgMTE3MyAxMUFEO0I0RTI7MTEwMyAxMTczIDExQUQ7CitCNEUzO0I0RTM7MTEwMyAxMTczIDExQUU7QjRFMzsxMTAzIDExNzMgMTFBRTsKK0I0RTQ7QjRFNDsxMTAzIDExNzMgMTFBRjtCNEU0OzExMDMgMTE3MyAxMUFGOworQjRFNTtCNEU1OzExMDMgMTE3MyAxMUIwO0I0RTU7MTEwMyAxMTczIDExQjA7CitCNEU2O0I0RTY7MTEwMyAxMTczIDExQjE7QjRFNjsxMTAzIDExNzMgMTFCMTsKK0I0RTc7QjRFNzsxMTAzIDExNzMgMTFCMjtCNEU3OzExMDMgMTE3MyAxMUIyOworQjRFODtCNEU4OzExMDMgMTE3MyAxMUIzO0I0RTg7MTEwMyAxMTczIDExQjM7CitCNEU5O0I0RTk7MTEwMyAxMTczIDExQjQ7QjRFOTsxMTAzIDExNzMgMTFCNDsKK0I0RUE7QjRFQTsxMTAzIDExNzMgMTFCNTtCNEVBOzExMDMgMTE3MyAxMUI1OworQjRFQjtCNEVCOzExMDMgMTE3MyAxMUI2O0I0RUI7MTEwMyAxMTczIDExQjY7CitCNEVDO0I0RUM7MTEwMyAxMTczIDExQjc7QjRFQzsxMTAzIDExNzMgMTFCNzsKK0I0RUQ7QjRFRDsxMTAzIDExNzMgMTFCODtCNEVEOzExMDMgMTE3MyAxMUI4OworQjRFRTtCNEVFOzExMDMgMTE3MyAxMUI5O0I0RUU7MTEwMyAxMTczIDExQjk7CitCNEVGO0I0RUY7MTEwMyAxMTczIDExQkE7QjRFRjsxMTAzIDExNzMgMTFCQTsKK0I0RjA7QjRGMDsxMTAzIDExNzMgMTFCQjtCNEYwOzExMDMgMTE3MyAxMUJCOworQjRGMTtCNEYxOzExMDMgMTE3MyAxMUJDO0I0RjE7MTEwMyAxMTczIDExQkM7CitCNEYyO0I0RjI7MTEwMyAxMTczIDExQkQ7QjRGMjsxMTAzIDExNzMgMTFCRDsKK0I0RjM7QjRGMzsxMTAzIDExNzMgMTFCRTtCNEYzOzExMDMgMTE3MyAxMUJFOworQjRGNDtCNEY0OzExMDMgMTE3MyAxMUJGO0I0RjQ7MTEwMyAxMTczIDExQkY7CitCNEY1O0I0RjU7MTEwMyAxMTczIDExQzA7QjRGNTsxMTAzIDExNzMgMTFDMDsKK0I0RjY7QjRGNjsxMTAzIDExNzMgMTFDMTtCNEY2OzExMDMgMTE3MyAxMUMxOworQjRGNztCNEY3OzExMDMgMTE3MyAxMUMyO0I0Rjc7MTEwMyAxMTczIDExQzI7CitCNEY4O0I0Rjg7MTEwMyAxMTc0O0I0Rjg7MTEwMyAxMTc0OworQjRGOTtCNEY5OzExMDMgMTE3NCAxMUE4O0I0Rjk7MTEwMyAxMTc0IDExQTg7CitCNEZBO0I0RkE7MTEwMyAxMTc0IDExQTk7QjRGQTsxMTAzIDExNzQgMTFBOTsKK0I0RkI7QjRGQjsxMTAzIDExNzQgMTFBQTtCNEZCOzExMDMgMTE3NCAxMUFBOworQjRGQztCNEZDOzExMDMgMTE3NCAxMUFCO0I0RkM7MTEwMyAxMTc0IDExQUI7CitCNEZEO0I0RkQ7MTEwMyAxMTc0IDExQUM7QjRGRDsxMTAzIDExNzQgMTFBQzsKK0I0RkU7QjRGRTsxMTAzIDExNzQgMTFBRDtCNEZFOzExMDMgMTE3NCAxMUFEOworQjRGRjtCNEZGOzExMDMgMTE3NCAxMUFFO0I0RkY7MTEwMyAxMTc0IDExQUU7CitCNTAwO0I1MDA7MTEwMyAxMTc0IDExQUY7QjUwMDsxMTAzIDExNzQgMTFBRjsKK0I1MDE7QjUwMTsxMTAzIDExNzQgMTFCMDtCNTAxOzExMDMgMTE3NCAxMUIwOworQjUwMjtCNTAyOzExMDMgMTE3NCAxMUIxO0I1MDI7MTEwMyAxMTc0IDExQjE7CitCNTAzO0I1MDM7MTEwMyAxMTc0IDExQjI7QjUwMzsxMTAzIDExNzQgMTFCMjsKK0I1MDQ7QjUwNDsxMTAzIDExNzQgMTFCMztCNTA0OzExMDMgMTE3NCAxMUIzOworQjUwNTtCNTA1OzExMDMgMTE3NCAxMUI0O0I1MDU7MTEwMyAxMTc0IDExQjQ7CitCNTA2O0I1MDY7MTEwMyAxMTc0IDExQjU7QjUwNjsxMTAzIDExNzQgMTFCNTsKK0I1MDc7QjUwNzsxMTAzIDExNzQgMTFCNjtCNTA3OzExMDMgMTE3NCAxMUI2OworQjUwODtCNTA4OzExMDMgMTE3NCAxMUI3O0I1MDg7MTEwMyAxMTc0IDExQjc7CitCNTA5O0I1MDk7MTEwMyAxMTc0IDExQjg7QjUwOTsxMTAzIDExNzQgMTFCODsKK0I1MEE7QjUwQTsxMTAzIDExNzQgMTFCOTtCNTBBOzExMDMgMTE3NCAxMUI5OworQjUwQjtCNTBCOzExMDMgMTE3NCAxMUJBO0I1MEI7MTEwMyAxMTc0IDExQkE7CitCNTBDO0I1MEM7MTEwMyAxMTc0IDExQkI7QjUwQzsxMTAzIDExNzQgMTFCQjsKK0I1MEQ7QjUwRDsxMTAzIDExNzQgMTFCQztCNTBEOzExMDMgMTE3NCAxMUJDOworQjUwRTtCNTBFOzExMDMgMTE3NCAxMUJEO0I1MEU7MTEwMyAxMTc0IDExQkQ7CitCNTBGO0I1MEY7MTEwMyAxMTc0IDExQkU7QjUwRjsxMTAzIDExNzQgMTFCRTsKK0I1MTA7QjUxMDsxMTAzIDExNzQgMTFCRjtCNTEwOzExMDMgMTE3NCAxMUJGOworQjUxMTtCNTExOzExMDMgMTE3NCAxMUMwO0I1MTE7MTEwMyAxMTc0IDExQzA7CitCNTEyO0I1MTI7MTEwMyAxMTc0IDExQzE7QjUxMjsxMTAzIDExNzQgMTFDMTsKK0I1MTM7QjUxMzsxMTAzIDExNzQgMTFDMjtCNTEzOzExMDMgMTE3NCAxMUMyOworQjUxNDtCNTE0OzExMDMgMTE3NTtCNTE0OzExMDMgMTE3NTsKK0I1MTU7QjUxNTsxMTAzIDExNzUgMTFBODtCNTE1OzExMDMgMTE3NSAxMUE4OworQjUxNjtCNTE2OzExMDMgMTE3NSAxMUE5O0I1MTY7MTEwMyAxMTc1IDExQTk7CitCNTE3O0I1MTc7MTEwMyAxMTc1IDExQUE7QjUxNzsxMTAzIDExNzUgMTFBQTsKK0I1MTg7QjUxODsxMTAzIDExNzUgMTFBQjtCNTE4OzExMDMgMTE3NSAxMUFCOworQjUxOTtCNTE5OzExMDMgMTE3NSAxMUFDO0I1MTk7MTEwMyAxMTc1IDExQUM7CitCNTFBO0I1MUE7MTEwMyAxMTc1IDExQUQ7QjUxQTsxMTAzIDExNzUgMTFBRDsKK0I1MUI7QjUxQjsxMTAzIDExNzUgMTFBRTtCNTFCOzExMDMgMTE3NSAxMUFFOworQjUxQztCNTFDOzExMDMgMTE3NSAxMUFGO0I1MUM7MTEwMyAxMTc1IDExQUY7CitCNTFEO0I1MUQ7MTEwMyAxMTc1IDExQjA7QjUxRDsxMTAzIDExNzUgMTFCMDsKK0I1MUU7QjUxRTsxMTAzIDExNzUgMTFCMTtCNTFFOzExMDMgMTE3NSAxMUIxOworQjUxRjtCNTFGOzExMDMgMTE3NSAxMUIyO0I1MUY7MTEwMyAxMTc1IDExQjI7CitCNTIwO0I1MjA7MTEwMyAxMTc1IDExQjM7QjUyMDsxMTAzIDExNzUgMTFCMzsKK0I1MjE7QjUyMTsxMTAzIDExNzUgMTFCNDtCNTIxOzExMDMgMTE3NSAxMUI0OworQjUyMjtCNTIyOzExMDMgMTE3NSAxMUI1O0I1MjI7MTEwMyAxMTc1IDExQjU7CitCNTIzO0I1MjM7MTEwMyAxMTc1IDExQjY7QjUyMzsxMTAzIDExNzUgMTFCNjsKK0I1MjQ7QjUyNDsxMTAzIDExNzUgMTFCNztCNTI0OzExMDMgMTE3NSAxMUI3OworQjUyNTtCNTI1OzExMDMgMTE3NSAxMUI4O0I1MjU7MTEwMyAxMTc1IDExQjg7CitCNTI2O0I1MjY7MTEwMyAxMTc1IDExQjk7QjUyNjsxMTAzIDExNzUgMTFCOTsKK0I1Mjc7QjUyNzsxMTAzIDExNzUgMTFCQTtCNTI3OzExMDMgMTE3NSAxMUJBOworQjUyODtCNTI4OzExMDMgMTE3NSAxMUJCO0I1Mjg7MTEwMyAxMTc1IDExQkI7CitCNTI5O0I1Mjk7MTEwMyAxMTc1IDExQkM7QjUyOTsxMTAzIDExNzUgMTFCQzsKK0I1MkE7QjUyQTsxMTAzIDExNzUgMTFCRDtCNTJBOzExMDMgMTE3NSAxMUJEOworQjUyQjtCNTJCOzExMDMgMTE3NSAxMUJFO0I1MkI7MTEwMyAxMTc1IDExQkU7CitCNTJDO0I1MkM7MTEwMyAxMTc1IDExQkY7QjUyQzsxMTAzIDExNzUgMTFCRjsKK0I1MkQ7QjUyRDsxMTAzIDExNzUgMTFDMDtCNTJEOzExMDMgMTE3NSAxMUMwOworQjUyRTtCNTJFOzExMDMgMTE3NSAxMUMxO0I1MkU7MTEwMyAxMTc1IDExQzE7CitCNTJGO0I1MkY7MTEwMyAxMTc1IDExQzI7QjUyRjsxMTAzIDExNzUgMTFDMjsKK0I1MzA7QjUzMDsxMTA0IDExNjE7QjUzMDsxMTA0IDExNjE7CitCNTMxO0I1MzE7MTEwNCAxMTYxIDExQTg7QjUzMTsxMTA0IDExNjEgMTFBODsKK0I1MzI7QjUzMjsxMTA0IDExNjEgMTFBOTtCNTMyOzExMDQgMTE2MSAxMUE5OworQjUzMztCNTMzOzExMDQgMTE2MSAxMUFBO0I1MzM7MTEwNCAxMTYxIDExQUE7CitCNTM0O0I1MzQ7MTEwNCAxMTYxIDExQUI7QjUzNDsxMTA0IDExNjEgMTFBQjsKK0I1MzU7QjUzNTsxMTA0IDExNjEgMTFBQztCNTM1OzExMDQgMTE2MSAxMUFDOworQjUzNjtCNTM2OzExMDQgMTE2MSAxMUFEO0I1MzY7MTEwNCAxMTYxIDExQUQ7CitCNTM3O0I1Mzc7MTEwNCAxMTYxIDExQUU7QjUzNzsxMTA0IDExNjEgMTFBRTsKK0I1Mzg7QjUzODsxMTA0IDExNjEgMTFBRjtCNTM4OzExMDQgMTE2MSAxMUFGOworQjUzOTtCNTM5OzExMDQgMTE2MSAxMUIwO0I1Mzk7MTEwNCAxMTYxIDExQjA7CitCNTNBO0I1M0E7MTEwNCAxMTYxIDExQjE7QjUzQTsxMTA0IDExNjEgMTFCMTsKK0I1M0I7QjUzQjsxMTA0IDExNjEgMTFCMjtCNTNCOzExMDQgMTE2MSAxMUIyOworQjUzQztCNTNDOzExMDQgMTE2MSAxMUIzO0I1M0M7MTEwNCAxMTYxIDExQjM7CitCNTNEO0I1M0Q7MTEwNCAxMTYxIDExQjQ7QjUzRDsxMTA0IDExNjEgMTFCNDsKK0I1M0U7QjUzRTsxMTA0IDExNjEgMTFCNTtCNTNFOzExMDQgMTE2MSAxMUI1OworQjUzRjtCNTNGOzExMDQgMTE2MSAxMUI2O0I1M0Y7MTEwNCAxMTYxIDExQjY7CitCNTQwO0I1NDA7MTEwNCAxMTYxIDExQjc7QjU0MDsxMTA0IDExNjEgMTFCNzsKK0I1NDE7QjU0MTsxMTA0IDExNjEgMTFCODtCNTQxOzExMDQgMTE2MSAxMUI4OworQjU0MjtCNTQyOzExMDQgMTE2MSAxMUI5O0I1NDI7MTEwNCAxMTYxIDExQjk7CitCNTQzO0I1NDM7MTEwNCAxMTYxIDExQkE7QjU0MzsxMTA0IDExNjEgMTFCQTsKK0I1NDQ7QjU0NDsxMTA0IDExNjEgMTFCQjtCNTQ0OzExMDQgMTE2MSAxMUJCOworQjU0NTtCNTQ1OzExMDQgMTE2MSAxMUJDO0I1NDU7MTEwNCAxMTYxIDExQkM7CitCNTQ2O0I1NDY7MTEwNCAxMTYxIDExQkQ7QjU0NjsxMTA0IDExNjEgMTFCRDsKK0I1NDc7QjU0NzsxMTA0IDExNjEgMTFCRTtCNTQ3OzExMDQgMTE2MSAxMUJFOworQjU0ODtCNTQ4OzExMDQgMTE2MSAxMUJGO0I1NDg7MTEwNCAxMTYxIDExQkY7CitCNTQ5O0I1NDk7MTEwNCAxMTYxIDExQzA7QjU0OTsxMTA0IDExNjEgMTFDMDsKK0I1NEE7QjU0QTsxMTA0IDExNjEgMTFDMTtCNTRBOzExMDQgMTE2MSAxMUMxOworQjU0QjtCNTRCOzExMDQgMTE2MSAxMUMyO0I1NEI7MTEwNCAxMTYxIDExQzI7CitCNTRDO0I1NEM7MTEwNCAxMTYyO0I1NEM7MTEwNCAxMTYyOworQjU0RDtCNTREOzExMDQgMTE2MiAxMUE4O0I1NEQ7MTEwNCAxMTYyIDExQTg7CitCNTRFO0I1NEU7MTEwNCAxMTYyIDExQTk7QjU0RTsxMTA0IDExNjIgMTFBOTsKK0I1NEY7QjU0RjsxMTA0IDExNjIgMTFBQTtCNTRGOzExMDQgMTE2MiAxMUFBOworQjU1MDtCNTUwOzExMDQgMTE2MiAxMUFCO0I1NTA7MTEwNCAxMTYyIDExQUI7CitCNTUxO0I1NTE7MTEwNCAxMTYyIDExQUM7QjU1MTsxMTA0IDExNjIgMTFBQzsKK0I1NTI7QjU1MjsxMTA0IDExNjIgMTFBRDtCNTUyOzExMDQgMTE2MiAxMUFEOworQjU1MztCNTUzOzExMDQgMTE2MiAxMUFFO0I1NTM7MTEwNCAxMTYyIDExQUU7CitCNTU0O0I1NTQ7MTEwNCAxMTYyIDExQUY7QjU1NDsxMTA0IDExNjIgMTFBRjsKK0I1NTU7QjU1NTsxMTA0IDExNjIgMTFCMDtCNTU1OzExMDQgMTE2MiAxMUIwOworQjU1NjtCNTU2OzExMDQgMTE2MiAxMUIxO0I1NTY7MTEwNCAxMTYyIDExQjE7CitCNTU3O0I1NTc7MTEwNCAxMTYyIDExQjI7QjU1NzsxMTA0IDExNjIgMTFCMjsKK0I1NTg7QjU1ODsxMTA0IDExNjIgMTFCMztCNTU4OzExMDQgMTE2MiAxMUIzOworQjU1OTtCNTU5OzExMDQgMTE2MiAxMUI0O0I1NTk7MTEwNCAxMTYyIDExQjQ7CitCNTVBO0I1NUE7MTEwNCAxMTYyIDExQjU7QjU1QTsxMTA0IDExNjIgMTFCNTsKK0I1NUI7QjU1QjsxMTA0IDExNjIgMTFCNjtCNTVCOzExMDQgMTE2MiAxMUI2OworQjU1QztCNTVDOzExMDQgMTE2MiAxMUI3O0I1NUM7MTEwNCAxMTYyIDExQjc7CitCNTVEO0I1NUQ7MTEwNCAxMTYyIDExQjg7QjU1RDsxMTA0IDExNjIgMTFCODsKK0I1NUU7QjU1RTsxMTA0IDExNjIgMTFCOTtCNTVFOzExMDQgMTE2MiAxMUI5OworQjU1RjtCNTVGOzExMDQgMTE2MiAxMUJBO0I1NUY7MTEwNCAxMTYyIDExQkE7CitCNTYwO0I1NjA7MTEwNCAxMTYyIDExQkI7QjU2MDsxMTA0IDExNjIgMTFCQjsKK0I1NjE7QjU2MTsxMTA0IDExNjIgMTFCQztCNTYxOzExMDQgMTE2MiAxMUJDOworQjU2MjtCNTYyOzExMDQgMTE2MiAxMUJEO0I1NjI7MTEwNCAxMTYyIDExQkQ7CitCNTYzO0I1NjM7MTEwNCAxMTYyIDExQkU7QjU2MzsxMTA0IDExNjIgMTFCRTsKK0I1NjQ7QjU2NDsxMTA0IDExNjIgMTFCRjtCNTY0OzExMDQgMTE2MiAxMUJGOworQjU2NTtCNTY1OzExMDQgMTE2MiAxMUMwO0I1NjU7MTEwNCAxMTYyIDExQzA7CitCNTY2O0I1NjY7MTEwNCAxMTYyIDExQzE7QjU2NjsxMTA0IDExNjIgMTFDMTsKK0I1Njc7QjU2NzsxMTA0IDExNjIgMTFDMjtCNTY3OzExMDQgMTE2MiAxMUMyOworQjU2ODtCNTY4OzExMDQgMTE2MztCNTY4OzExMDQgMTE2MzsKK0I1Njk7QjU2OTsxMTA0IDExNjMgMTFBODtCNTY5OzExMDQgMTE2MyAxMUE4OworQjU2QTtCNTZBOzExMDQgMTE2MyAxMUE5O0I1NkE7MTEwNCAxMTYzIDExQTk7CitCNTZCO0I1NkI7MTEwNCAxMTYzIDExQUE7QjU2QjsxMTA0IDExNjMgMTFBQTsKK0I1NkM7QjU2QzsxMTA0IDExNjMgMTFBQjtCNTZDOzExMDQgMTE2MyAxMUFCOworQjU2RDtCNTZEOzExMDQgMTE2MyAxMUFDO0I1NkQ7MTEwNCAxMTYzIDExQUM7CitCNTZFO0I1NkU7MTEwNCAxMTYzIDExQUQ7QjU2RTsxMTA0IDExNjMgMTFBRDsKK0I1NkY7QjU2RjsxMTA0IDExNjMgMTFBRTtCNTZGOzExMDQgMTE2MyAxMUFFOworQjU3MDtCNTcwOzExMDQgMTE2MyAxMUFGO0I1NzA7MTEwNCAxMTYzIDExQUY7CitCNTcxO0I1NzE7MTEwNCAxMTYzIDExQjA7QjU3MTsxMTA0IDExNjMgMTFCMDsKK0I1NzI7QjU3MjsxMTA0IDExNjMgMTFCMTtCNTcyOzExMDQgMTE2MyAxMUIxOworQjU3MztCNTczOzExMDQgMTE2MyAxMUIyO0I1NzM7MTEwNCAxMTYzIDExQjI7CitCNTc0O0I1NzQ7MTEwNCAxMTYzIDExQjM7QjU3NDsxMTA0IDExNjMgMTFCMzsKK0I1NzU7QjU3NTsxMTA0IDExNjMgMTFCNDtCNTc1OzExMDQgMTE2MyAxMUI0OworQjU3NjtCNTc2OzExMDQgMTE2MyAxMUI1O0I1NzY7MTEwNCAxMTYzIDExQjU7CitCNTc3O0I1Nzc7MTEwNCAxMTYzIDExQjY7QjU3NzsxMTA0IDExNjMgMTFCNjsKK0I1Nzg7QjU3ODsxMTA0IDExNjMgMTFCNztCNTc4OzExMDQgMTE2MyAxMUI3OworQjU3OTtCNTc5OzExMDQgMTE2MyAxMUI4O0I1Nzk7MTEwNCAxMTYzIDExQjg7CitCNTdBO0I1N0E7MTEwNCAxMTYzIDExQjk7QjU3QTsxMTA0IDExNjMgMTFCOTsKK0I1N0I7QjU3QjsxMTA0IDExNjMgMTFCQTtCNTdCOzExMDQgMTE2MyAxMUJBOworQjU3QztCNTdDOzExMDQgMTE2MyAxMUJCO0I1N0M7MTEwNCAxMTYzIDExQkI7CitCNTdEO0I1N0Q7MTEwNCAxMTYzIDExQkM7QjU3RDsxMTA0IDExNjMgMTFCQzsKK0I1N0U7QjU3RTsxMTA0IDExNjMgMTFCRDtCNTdFOzExMDQgMTE2MyAxMUJEOworQjU3RjtCNTdGOzExMDQgMTE2MyAxMUJFO0I1N0Y7MTEwNCAxMTYzIDExQkU7CitCNTgwO0I1ODA7MTEwNCAxMTYzIDExQkY7QjU4MDsxMTA0IDExNjMgMTFCRjsKK0I1ODE7QjU4MTsxMTA0IDExNjMgMTFDMDtCNTgxOzExMDQgMTE2MyAxMUMwOworQjU4MjtCNTgyOzExMDQgMTE2MyAxMUMxO0I1ODI7MTEwNCAxMTYzIDExQzE7CitCNTgzO0I1ODM7MTEwNCAxMTYzIDExQzI7QjU4MzsxMTA0IDExNjMgMTFDMjsKK0I1ODQ7QjU4NDsxMTA0IDExNjQ7QjU4NDsxMTA0IDExNjQ7CitCNTg1O0I1ODU7MTEwNCAxMTY0IDExQTg7QjU4NTsxMTA0IDExNjQgMTFBODsKK0I1ODY7QjU4NjsxMTA0IDExNjQgMTFBOTtCNTg2OzExMDQgMTE2NCAxMUE5OworQjU4NztCNTg3OzExMDQgMTE2NCAxMUFBO0I1ODc7MTEwNCAxMTY0IDExQUE7CitCNTg4O0I1ODg7MTEwNCAxMTY0IDExQUI7QjU4ODsxMTA0IDExNjQgMTFBQjsKK0I1ODk7QjU4OTsxMTA0IDExNjQgMTFBQztCNTg5OzExMDQgMTE2NCAxMUFDOworQjU4QTtCNThBOzExMDQgMTE2NCAxMUFEO0I1OEE7MTEwNCAxMTY0IDExQUQ7CitCNThCO0I1OEI7MTEwNCAxMTY0IDExQUU7QjU4QjsxMTA0IDExNjQgMTFBRTsKK0I1OEM7QjU4QzsxMTA0IDExNjQgMTFBRjtCNThDOzExMDQgMTE2NCAxMUFGOworQjU4RDtCNThEOzExMDQgMTE2NCAxMUIwO0I1OEQ7MTEwNCAxMTY0IDExQjA7CitCNThFO0I1OEU7MTEwNCAxMTY0IDExQjE7QjU4RTsxMTA0IDExNjQgMTFCMTsKK0I1OEY7QjU4RjsxMTA0IDExNjQgMTFCMjtCNThGOzExMDQgMTE2NCAxMUIyOworQjU5MDtCNTkwOzExMDQgMTE2NCAxMUIzO0I1OTA7MTEwNCAxMTY0IDExQjM7CitCNTkxO0I1OTE7MTEwNCAxMTY0IDExQjQ7QjU5MTsxMTA0IDExNjQgMTFCNDsKK0I1OTI7QjU5MjsxMTA0IDExNjQgMTFCNTtCNTkyOzExMDQgMTE2NCAxMUI1OworQjU5MztCNTkzOzExMDQgMTE2NCAxMUI2O0I1OTM7MTEwNCAxMTY0IDExQjY7CitCNTk0O0I1OTQ7MTEwNCAxMTY0IDExQjc7QjU5NDsxMTA0IDExNjQgMTFCNzsKK0I1OTU7QjU5NTsxMTA0IDExNjQgMTFCODtCNTk1OzExMDQgMTE2NCAxMUI4OworQjU5NjtCNTk2OzExMDQgMTE2NCAxMUI5O0I1OTY7MTEwNCAxMTY0IDExQjk7CitCNTk3O0I1OTc7MTEwNCAxMTY0IDExQkE7QjU5NzsxMTA0IDExNjQgMTFCQTsKK0I1OTg7QjU5ODsxMTA0IDExNjQgMTFCQjtCNTk4OzExMDQgMTE2NCAxMUJCOworQjU5OTtCNTk5OzExMDQgMTE2NCAxMUJDO0I1OTk7MTEwNCAxMTY0IDExQkM7CitCNTlBO0I1OUE7MTEwNCAxMTY0IDExQkQ7QjU5QTsxMTA0IDExNjQgMTFCRDsKK0I1OUI7QjU5QjsxMTA0IDExNjQgMTFCRTtCNTlCOzExMDQgMTE2NCAxMUJFOworQjU5QztCNTlDOzExMDQgMTE2NCAxMUJGO0I1OUM7MTEwNCAxMTY0IDExQkY7CitCNTlEO0I1OUQ7MTEwNCAxMTY0IDExQzA7QjU5RDsxMTA0IDExNjQgMTFDMDsKK0I1OUU7QjU5RTsxMTA0IDExNjQgMTFDMTtCNTlFOzExMDQgMTE2NCAxMUMxOworQjU5RjtCNTlGOzExMDQgMTE2NCAxMUMyO0I1OUY7MTEwNCAxMTY0IDExQzI7CitCNUEwO0I1QTA7MTEwNCAxMTY1O0I1QTA7MTEwNCAxMTY1OworQjVBMTtCNUExOzExMDQgMTE2NSAxMUE4O0I1QTE7MTEwNCAxMTY1IDExQTg7CitCNUEyO0I1QTI7MTEwNCAxMTY1IDExQTk7QjVBMjsxMTA0IDExNjUgMTFBOTsKK0I1QTM7QjVBMzsxMTA0IDExNjUgMTFBQTtCNUEzOzExMDQgMTE2NSAxMUFBOworQjVBNDtCNUE0OzExMDQgMTE2NSAxMUFCO0I1QTQ7MTEwNCAxMTY1IDExQUI7CitCNUE1O0I1QTU7MTEwNCAxMTY1IDExQUM7QjVBNTsxMTA0IDExNjUgMTFBQzsKK0I1QTY7QjVBNjsxMTA0IDExNjUgMTFBRDtCNUE2OzExMDQgMTE2NSAxMUFEOworQjVBNztCNUE3OzExMDQgMTE2NSAxMUFFO0I1QTc7MTEwNCAxMTY1IDExQUU7CitCNUE4O0I1QTg7MTEwNCAxMTY1IDExQUY7QjVBODsxMTA0IDExNjUgMTFBRjsKK0I1QTk7QjVBOTsxMTA0IDExNjUgMTFCMDtCNUE5OzExMDQgMTE2NSAxMUIwOworQjVBQTtCNUFBOzExMDQgMTE2NSAxMUIxO0I1QUE7MTEwNCAxMTY1IDExQjE7CitCNUFCO0I1QUI7MTEwNCAxMTY1IDExQjI7QjVBQjsxMTA0IDExNjUgMTFCMjsKK0I1QUM7QjVBQzsxMTA0IDExNjUgMTFCMztCNUFDOzExMDQgMTE2NSAxMUIzOworQjVBRDtCNUFEOzExMDQgMTE2NSAxMUI0O0I1QUQ7MTEwNCAxMTY1IDExQjQ7CitCNUFFO0I1QUU7MTEwNCAxMTY1IDExQjU7QjVBRTsxMTA0IDExNjUgMTFCNTsKK0I1QUY7QjVBRjsxMTA0IDExNjUgMTFCNjtCNUFGOzExMDQgMTE2NSAxMUI2OworQjVCMDtCNUIwOzExMDQgMTE2NSAxMUI3O0I1QjA7MTEwNCAxMTY1IDExQjc7CitCNUIxO0I1QjE7MTEwNCAxMTY1IDExQjg7QjVCMTsxMTA0IDExNjUgMTFCODsKK0I1QjI7QjVCMjsxMTA0IDExNjUgMTFCOTtCNUIyOzExMDQgMTE2NSAxMUI5OworQjVCMztCNUIzOzExMDQgMTE2NSAxMUJBO0I1QjM7MTEwNCAxMTY1IDExQkE7CitCNUI0O0I1QjQ7MTEwNCAxMTY1IDExQkI7QjVCNDsxMTA0IDExNjUgMTFCQjsKK0I1QjU7QjVCNTsxMTA0IDExNjUgMTFCQztCNUI1OzExMDQgMTE2NSAxMUJDOworQjVCNjtCNUI2OzExMDQgMTE2NSAxMUJEO0I1QjY7MTEwNCAxMTY1IDExQkQ7CitCNUI3O0I1Qjc7MTEwNCAxMTY1IDExQkU7QjVCNzsxMTA0IDExNjUgMTFCRTsKK0I1Qjg7QjVCODsxMTA0IDExNjUgMTFCRjtCNUI4OzExMDQgMTE2NSAxMUJGOworQjVCOTtCNUI5OzExMDQgMTE2NSAxMUMwO0I1Qjk7MTEwNCAxMTY1IDExQzA7CitCNUJBO0I1QkE7MTEwNCAxMTY1IDExQzE7QjVCQTsxMTA0IDExNjUgMTFDMTsKK0I1QkI7QjVCQjsxMTA0IDExNjUgMTFDMjtCNUJCOzExMDQgMTE2NSAxMUMyOworQjVCQztCNUJDOzExMDQgMTE2NjtCNUJDOzExMDQgMTE2NjsKK0I1QkQ7QjVCRDsxMTA0IDExNjYgMTFBODtCNUJEOzExMDQgMTE2NiAxMUE4OworQjVCRTtCNUJFOzExMDQgMTE2NiAxMUE5O0I1QkU7MTEwNCAxMTY2IDExQTk7CitCNUJGO0I1QkY7MTEwNCAxMTY2IDExQUE7QjVCRjsxMTA0IDExNjYgMTFBQTsKK0I1QzA7QjVDMDsxMTA0IDExNjYgMTFBQjtCNUMwOzExMDQgMTE2NiAxMUFCOworQjVDMTtCNUMxOzExMDQgMTE2NiAxMUFDO0I1QzE7MTEwNCAxMTY2IDExQUM7CitCNUMyO0I1QzI7MTEwNCAxMTY2IDExQUQ7QjVDMjsxMTA0IDExNjYgMTFBRDsKK0I1QzM7QjVDMzsxMTA0IDExNjYgMTFBRTtCNUMzOzExMDQgMTE2NiAxMUFFOworQjVDNDtCNUM0OzExMDQgMTE2NiAxMUFGO0I1QzQ7MTEwNCAxMTY2IDExQUY7CitCNUM1O0I1QzU7MTEwNCAxMTY2IDExQjA7QjVDNTsxMTA0IDExNjYgMTFCMDsKK0I1QzY7QjVDNjsxMTA0IDExNjYgMTFCMTtCNUM2OzExMDQgMTE2NiAxMUIxOworQjVDNztCNUM3OzExMDQgMTE2NiAxMUIyO0I1Qzc7MTEwNCAxMTY2IDExQjI7CitCNUM4O0I1Qzg7MTEwNCAxMTY2IDExQjM7QjVDODsxMTA0IDExNjYgMTFCMzsKK0I1Qzk7QjVDOTsxMTA0IDExNjYgMTFCNDtCNUM5OzExMDQgMTE2NiAxMUI0OworQjVDQTtCNUNBOzExMDQgMTE2NiAxMUI1O0I1Q0E7MTEwNCAxMTY2IDExQjU7CitCNUNCO0I1Q0I7MTEwNCAxMTY2IDExQjY7QjVDQjsxMTA0IDExNjYgMTFCNjsKK0I1Q0M7QjVDQzsxMTA0IDExNjYgMTFCNztCNUNDOzExMDQgMTE2NiAxMUI3OworQjVDRDtCNUNEOzExMDQgMTE2NiAxMUI4O0I1Q0Q7MTEwNCAxMTY2IDExQjg7CitCNUNFO0I1Q0U7MTEwNCAxMTY2IDExQjk7QjVDRTsxMTA0IDExNjYgMTFCOTsKK0I1Q0Y7QjVDRjsxMTA0IDExNjYgMTFCQTtCNUNGOzExMDQgMTE2NiAxMUJBOworQjVEMDtCNUQwOzExMDQgMTE2NiAxMUJCO0I1RDA7MTEwNCAxMTY2IDExQkI7CitCNUQxO0I1RDE7MTEwNCAxMTY2IDExQkM7QjVEMTsxMTA0IDExNjYgMTFCQzsKK0I1RDI7QjVEMjsxMTA0IDExNjYgMTFCRDtCNUQyOzExMDQgMTE2NiAxMUJEOworQjVEMztCNUQzOzExMDQgMTE2NiAxMUJFO0I1RDM7MTEwNCAxMTY2IDExQkU7CitCNUQ0O0I1RDQ7MTEwNCAxMTY2IDExQkY7QjVENDsxMTA0IDExNjYgMTFCRjsKK0I1RDU7QjVENTsxMTA0IDExNjYgMTFDMDtCNUQ1OzExMDQgMTE2NiAxMUMwOworQjVENjtCNUQ2OzExMDQgMTE2NiAxMUMxO0I1RDY7MTEwNCAxMTY2IDExQzE7CitCNUQ3O0I1RDc7MTEwNCAxMTY2IDExQzI7QjVENzsxMTA0IDExNjYgMTFDMjsKK0I1RDg7QjVEODsxMTA0IDExNjc7QjVEODsxMTA0IDExNjc7CitCNUQ5O0I1RDk7MTEwNCAxMTY3IDExQTg7QjVEOTsxMTA0IDExNjcgMTFBODsKK0I1REE7QjVEQTsxMTA0IDExNjcgMTFBOTtCNURBOzExMDQgMTE2NyAxMUE5OworQjVEQjtCNURCOzExMDQgMTE2NyAxMUFBO0I1REI7MTEwNCAxMTY3IDExQUE7CitCNURDO0I1REM7MTEwNCAxMTY3IDExQUI7QjVEQzsxMTA0IDExNjcgMTFBQjsKK0I1REQ7QjVERDsxMTA0IDExNjcgMTFBQztCNUREOzExMDQgMTE2NyAxMUFDOworQjVERTtCNURFOzExMDQgMTE2NyAxMUFEO0I1REU7MTEwNCAxMTY3IDExQUQ7CitCNURGO0I1REY7MTEwNCAxMTY3IDExQUU7QjVERjsxMTA0IDExNjcgMTFBRTsKK0I1RTA7QjVFMDsxMTA0IDExNjcgMTFBRjtCNUUwOzExMDQgMTE2NyAxMUFGOworQjVFMTtCNUUxOzExMDQgMTE2NyAxMUIwO0I1RTE7MTEwNCAxMTY3IDExQjA7CitCNUUyO0I1RTI7MTEwNCAxMTY3IDExQjE7QjVFMjsxMTA0IDExNjcgMTFCMTsKK0I1RTM7QjVFMzsxMTA0IDExNjcgMTFCMjtCNUUzOzExMDQgMTE2NyAxMUIyOworQjVFNDtCNUU0OzExMDQgMTE2NyAxMUIzO0I1RTQ7MTEwNCAxMTY3IDExQjM7CitCNUU1O0I1RTU7MTEwNCAxMTY3IDExQjQ7QjVFNTsxMTA0IDExNjcgMTFCNDsKK0I1RTY7QjVFNjsxMTA0IDExNjcgMTFCNTtCNUU2OzExMDQgMTE2NyAxMUI1OworQjVFNztCNUU3OzExMDQgMTE2NyAxMUI2O0I1RTc7MTEwNCAxMTY3IDExQjY7CitCNUU4O0I1RTg7MTEwNCAxMTY3IDExQjc7QjVFODsxMTA0IDExNjcgMTFCNzsKK0I1RTk7QjVFOTsxMTA0IDExNjcgMTFCODtCNUU5OzExMDQgMTE2NyAxMUI4OworQjVFQTtCNUVBOzExMDQgMTE2NyAxMUI5O0I1RUE7MTEwNCAxMTY3IDExQjk7CitCNUVCO0I1RUI7MTEwNCAxMTY3IDExQkE7QjVFQjsxMTA0IDExNjcgMTFCQTsKK0I1RUM7QjVFQzsxMTA0IDExNjcgMTFCQjtCNUVDOzExMDQgMTE2NyAxMUJCOworQjVFRDtCNUVEOzExMDQgMTE2NyAxMUJDO0I1RUQ7MTEwNCAxMTY3IDExQkM7CitCNUVFO0I1RUU7MTEwNCAxMTY3IDExQkQ7QjVFRTsxMTA0IDExNjcgMTFCRDsKK0I1RUY7QjVFRjsxMTA0IDExNjcgMTFCRTtCNUVGOzExMDQgMTE2NyAxMUJFOworQjVGMDtCNUYwOzExMDQgMTE2NyAxMUJGO0I1RjA7MTEwNCAxMTY3IDExQkY7CitCNUYxO0I1RjE7MTEwNCAxMTY3IDExQzA7QjVGMTsxMTA0IDExNjcgMTFDMDsKK0I1RjI7QjVGMjsxMTA0IDExNjcgMTFDMTtCNUYyOzExMDQgMTE2NyAxMUMxOworQjVGMztCNUYzOzExMDQgMTE2NyAxMUMyO0I1RjM7MTEwNCAxMTY3IDExQzI7CitCNUY0O0I1RjQ7MTEwNCAxMTY4O0I1RjQ7MTEwNCAxMTY4OworQjVGNTtCNUY1OzExMDQgMTE2OCAxMUE4O0I1RjU7MTEwNCAxMTY4IDExQTg7CitCNUY2O0I1RjY7MTEwNCAxMTY4IDExQTk7QjVGNjsxMTA0IDExNjggMTFBOTsKK0I1Rjc7QjVGNzsxMTA0IDExNjggMTFBQTtCNUY3OzExMDQgMTE2OCAxMUFBOworQjVGODtCNUY4OzExMDQgMTE2OCAxMUFCO0I1Rjg7MTEwNCAxMTY4IDExQUI7CitCNUY5O0I1Rjk7MTEwNCAxMTY4IDExQUM7QjVGOTsxMTA0IDExNjggMTFBQzsKK0I1RkE7QjVGQTsxMTA0IDExNjggMTFBRDtCNUZBOzExMDQgMTE2OCAxMUFEOworQjVGQjtCNUZCOzExMDQgMTE2OCAxMUFFO0I1RkI7MTEwNCAxMTY4IDExQUU7CitCNUZDO0I1RkM7MTEwNCAxMTY4IDExQUY7QjVGQzsxMTA0IDExNjggMTFBRjsKK0I1RkQ7QjVGRDsxMTA0IDExNjggMTFCMDtCNUZEOzExMDQgMTE2OCAxMUIwOworQjVGRTtCNUZFOzExMDQgMTE2OCAxMUIxO0I1RkU7MTEwNCAxMTY4IDExQjE7CitCNUZGO0I1RkY7MTEwNCAxMTY4IDExQjI7QjVGRjsxMTA0IDExNjggMTFCMjsKK0I2MDA7QjYwMDsxMTA0IDExNjggMTFCMztCNjAwOzExMDQgMTE2OCAxMUIzOworQjYwMTtCNjAxOzExMDQgMTE2OCAxMUI0O0I2MDE7MTEwNCAxMTY4IDExQjQ7CitCNjAyO0I2MDI7MTEwNCAxMTY4IDExQjU7QjYwMjsxMTA0IDExNjggMTFCNTsKK0I2MDM7QjYwMzsxMTA0IDExNjggMTFCNjtCNjAzOzExMDQgMTE2OCAxMUI2OworQjYwNDtCNjA0OzExMDQgMTE2OCAxMUI3O0I2MDQ7MTEwNCAxMTY4IDExQjc7CitCNjA1O0I2MDU7MTEwNCAxMTY4IDExQjg7QjYwNTsxMTA0IDExNjggMTFCODsKK0I2MDY7QjYwNjsxMTA0IDExNjggMTFCOTtCNjA2OzExMDQgMTE2OCAxMUI5OworQjYwNztCNjA3OzExMDQgMTE2OCAxMUJBO0I2MDc7MTEwNCAxMTY4IDExQkE7CitCNjA4O0I2MDg7MTEwNCAxMTY4IDExQkI7QjYwODsxMTA0IDExNjggMTFCQjsKK0I2MDk7QjYwOTsxMTA0IDExNjggMTFCQztCNjA5OzExMDQgMTE2OCAxMUJDOworQjYwQTtCNjBBOzExMDQgMTE2OCAxMUJEO0I2MEE7MTEwNCAxMTY4IDExQkQ7CitCNjBCO0I2MEI7MTEwNCAxMTY4IDExQkU7QjYwQjsxMTA0IDExNjggMTFCRTsKK0I2MEM7QjYwQzsxMTA0IDExNjggMTFCRjtCNjBDOzExMDQgMTE2OCAxMUJGOworQjYwRDtCNjBEOzExMDQgMTE2OCAxMUMwO0I2MEQ7MTEwNCAxMTY4IDExQzA7CitCNjBFO0I2MEU7MTEwNCAxMTY4IDExQzE7QjYwRTsxMTA0IDExNjggMTFDMTsKK0I2MEY7QjYwRjsxMTA0IDExNjggMTFDMjtCNjBGOzExMDQgMTE2OCAxMUMyOworQjYxMDtCNjEwOzExMDQgMTE2OTtCNjEwOzExMDQgMTE2OTsKK0I2MTE7QjYxMTsxMTA0IDExNjkgMTFBODtCNjExOzExMDQgMTE2OSAxMUE4OworQjYxMjtCNjEyOzExMDQgMTE2OSAxMUE5O0I2MTI7MTEwNCAxMTY5IDExQTk7CitCNjEzO0I2MTM7MTEwNCAxMTY5IDExQUE7QjYxMzsxMTA0IDExNjkgMTFBQTsKK0I2MTQ7QjYxNDsxMTA0IDExNjkgMTFBQjtCNjE0OzExMDQgMTE2OSAxMUFCOworQjYxNTtCNjE1OzExMDQgMTE2OSAxMUFDO0I2MTU7MTEwNCAxMTY5IDExQUM7CitCNjE2O0I2MTY7MTEwNCAxMTY5IDExQUQ7QjYxNjsxMTA0IDExNjkgMTFBRDsKK0I2MTc7QjYxNzsxMTA0IDExNjkgMTFBRTtCNjE3OzExMDQgMTE2OSAxMUFFOworQjYxODtCNjE4OzExMDQgMTE2OSAxMUFGO0I2MTg7MTEwNCAxMTY5IDExQUY7CitCNjE5O0I2MTk7MTEwNCAxMTY5IDExQjA7QjYxOTsxMTA0IDExNjkgMTFCMDsKK0I2MUE7QjYxQTsxMTA0IDExNjkgMTFCMTtCNjFBOzExMDQgMTE2OSAxMUIxOworQjYxQjtCNjFCOzExMDQgMTE2OSAxMUIyO0I2MUI7MTEwNCAxMTY5IDExQjI7CitCNjFDO0I2MUM7MTEwNCAxMTY5IDExQjM7QjYxQzsxMTA0IDExNjkgMTFCMzsKK0I2MUQ7QjYxRDsxMTA0IDExNjkgMTFCNDtCNjFEOzExMDQgMTE2OSAxMUI0OworQjYxRTtCNjFFOzExMDQgMTE2OSAxMUI1O0I2MUU7MTEwNCAxMTY5IDExQjU7CitCNjFGO0I2MUY7MTEwNCAxMTY5IDExQjY7QjYxRjsxMTA0IDExNjkgMTFCNjsKK0I2MjA7QjYyMDsxMTA0IDExNjkgMTFCNztCNjIwOzExMDQgMTE2OSAxMUI3OworQjYyMTtCNjIxOzExMDQgMTE2OSAxMUI4O0I2MjE7MTEwNCAxMTY5IDExQjg7CitCNjIyO0I2MjI7MTEwNCAxMTY5IDExQjk7QjYyMjsxMTA0IDExNjkgMTFCOTsKK0I2MjM7QjYyMzsxMTA0IDExNjkgMTFCQTtCNjIzOzExMDQgMTE2OSAxMUJBOworQjYyNDtCNjI0OzExMDQgMTE2OSAxMUJCO0I2MjQ7MTEwNCAxMTY5IDExQkI7CitCNjI1O0I2MjU7MTEwNCAxMTY5IDExQkM7QjYyNTsxMTA0IDExNjkgMTFCQzsKK0I2MjY7QjYyNjsxMTA0IDExNjkgMTFCRDtCNjI2OzExMDQgMTE2OSAxMUJEOworQjYyNztCNjI3OzExMDQgMTE2OSAxMUJFO0I2Mjc7MTEwNCAxMTY5IDExQkU7CitCNjI4O0I2Mjg7MTEwNCAxMTY5IDExQkY7QjYyODsxMTA0IDExNjkgMTFCRjsKK0I2Mjk7QjYyOTsxMTA0IDExNjkgMTFDMDtCNjI5OzExMDQgMTE2OSAxMUMwOworQjYyQTtCNjJBOzExMDQgMTE2OSAxMUMxO0I2MkE7MTEwNCAxMTY5IDExQzE7CitCNjJCO0I2MkI7MTEwNCAxMTY5IDExQzI7QjYyQjsxMTA0IDExNjkgMTFDMjsKK0I2MkM7QjYyQzsxMTA0IDExNkE7QjYyQzsxMTA0IDExNkE7CitCNjJEO0I2MkQ7MTEwNCAxMTZBIDExQTg7QjYyRDsxMTA0IDExNkEgMTFBODsKK0I2MkU7QjYyRTsxMTA0IDExNkEgMTFBOTtCNjJFOzExMDQgMTE2QSAxMUE5OworQjYyRjtCNjJGOzExMDQgMTE2QSAxMUFBO0I2MkY7MTEwNCAxMTZBIDExQUE7CitCNjMwO0I2MzA7MTEwNCAxMTZBIDExQUI7QjYzMDsxMTA0IDExNkEgMTFBQjsKK0I2MzE7QjYzMTsxMTA0IDExNkEgMTFBQztCNjMxOzExMDQgMTE2QSAxMUFDOworQjYzMjtCNjMyOzExMDQgMTE2QSAxMUFEO0I2MzI7MTEwNCAxMTZBIDExQUQ7CitCNjMzO0I2MzM7MTEwNCAxMTZBIDExQUU7QjYzMzsxMTA0IDExNkEgMTFBRTsKK0I2MzQ7QjYzNDsxMTA0IDExNkEgMTFBRjtCNjM0OzExMDQgMTE2QSAxMUFGOworQjYzNTtCNjM1OzExMDQgMTE2QSAxMUIwO0I2MzU7MTEwNCAxMTZBIDExQjA7CitCNjM2O0I2MzY7MTEwNCAxMTZBIDExQjE7QjYzNjsxMTA0IDExNkEgMTFCMTsKK0I2Mzc7QjYzNzsxMTA0IDExNkEgMTFCMjtCNjM3OzExMDQgMTE2QSAxMUIyOworQjYzODtCNjM4OzExMDQgMTE2QSAxMUIzO0I2Mzg7MTEwNCAxMTZBIDExQjM7CitCNjM5O0I2Mzk7MTEwNCAxMTZBIDExQjQ7QjYzOTsxMTA0IDExNkEgMTFCNDsKK0I2M0E7QjYzQTsxMTA0IDExNkEgMTFCNTtCNjNBOzExMDQgMTE2QSAxMUI1OworQjYzQjtCNjNCOzExMDQgMTE2QSAxMUI2O0I2M0I7MTEwNCAxMTZBIDExQjY7CitCNjNDO0I2M0M7MTEwNCAxMTZBIDExQjc7QjYzQzsxMTA0IDExNkEgMTFCNzsKK0I2M0Q7QjYzRDsxMTA0IDExNkEgMTFCODtCNjNEOzExMDQgMTE2QSAxMUI4OworQjYzRTtCNjNFOzExMDQgMTE2QSAxMUI5O0I2M0U7MTEwNCAxMTZBIDExQjk7CitCNjNGO0I2M0Y7MTEwNCAxMTZBIDExQkE7QjYzRjsxMTA0IDExNkEgMTFCQTsKK0I2NDA7QjY0MDsxMTA0IDExNkEgMTFCQjtCNjQwOzExMDQgMTE2QSAxMUJCOworQjY0MTtCNjQxOzExMDQgMTE2QSAxMUJDO0I2NDE7MTEwNCAxMTZBIDExQkM7CitCNjQyO0I2NDI7MTEwNCAxMTZBIDExQkQ7QjY0MjsxMTA0IDExNkEgMTFCRDsKK0I2NDM7QjY0MzsxMTA0IDExNkEgMTFCRTtCNjQzOzExMDQgMTE2QSAxMUJFOworQjY0NDtCNjQ0OzExMDQgMTE2QSAxMUJGO0I2NDQ7MTEwNCAxMTZBIDExQkY7CitCNjQ1O0I2NDU7MTEwNCAxMTZBIDExQzA7QjY0NTsxMTA0IDExNkEgMTFDMDsKK0I2NDY7QjY0NjsxMTA0IDExNkEgMTFDMTtCNjQ2OzExMDQgMTE2QSAxMUMxOworQjY0NztCNjQ3OzExMDQgMTE2QSAxMUMyO0I2NDc7MTEwNCAxMTZBIDExQzI7CitCNjQ4O0I2NDg7MTEwNCAxMTZCO0I2NDg7MTEwNCAxMTZCOworQjY0OTtCNjQ5OzExMDQgMTE2QiAxMUE4O0I2NDk7MTEwNCAxMTZCIDExQTg7CitCNjRBO0I2NEE7MTEwNCAxMTZCIDExQTk7QjY0QTsxMTA0IDExNkIgMTFBOTsKK0I2NEI7QjY0QjsxMTA0IDExNkIgMTFBQTtCNjRCOzExMDQgMTE2QiAxMUFBOworQjY0QztCNjRDOzExMDQgMTE2QiAxMUFCO0I2NEM7MTEwNCAxMTZCIDExQUI7CitCNjREO0I2NEQ7MTEwNCAxMTZCIDExQUM7QjY0RDsxMTA0IDExNkIgMTFBQzsKK0I2NEU7QjY0RTsxMTA0IDExNkIgMTFBRDtCNjRFOzExMDQgMTE2QiAxMUFEOworQjY0RjtCNjRGOzExMDQgMTE2QiAxMUFFO0I2NEY7MTEwNCAxMTZCIDExQUU7CitCNjUwO0I2NTA7MTEwNCAxMTZCIDExQUY7QjY1MDsxMTA0IDExNkIgMTFBRjsKK0I2NTE7QjY1MTsxMTA0IDExNkIgMTFCMDtCNjUxOzExMDQgMTE2QiAxMUIwOworQjY1MjtCNjUyOzExMDQgMTE2QiAxMUIxO0I2NTI7MTEwNCAxMTZCIDExQjE7CitCNjUzO0I2NTM7MTEwNCAxMTZCIDExQjI7QjY1MzsxMTA0IDExNkIgMTFCMjsKK0I2NTQ7QjY1NDsxMTA0IDExNkIgMTFCMztCNjU0OzExMDQgMTE2QiAxMUIzOworQjY1NTtCNjU1OzExMDQgMTE2QiAxMUI0O0I2NTU7MTEwNCAxMTZCIDExQjQ7CitCNjU2O0I2NTY7MTEwNCAxMTZCIDExQjU7QjY1NjsxMTA0IDExNkIgMTFCNTsKK0I2NTc7QjY1NzsxMTA0IDExNkIgMTFCNjtCNjU3OzExMDQgMTE2QiAxMUI2OworQjY1ODtCNjU4OzExMDQgMTE2QiAxMUI3O0I2NTg7MTEwNCAxMTZCIDExQjc7CitCNjU5O0I2NTk7MTEwNCAxMTZCIDExQjg7QjY1OTsxMTA0IDExNkIgMTFCODsKK0I2NUE7QjY1QTsxMTA0IDExNkIgMTFCOTtCNjVBOzExMDQgMTE2QiAxMUI5OworQjY1QjtCNjVCOzExMDQgMTE2QiAxMUJBO0I2NUI7MTEwNCAxMTZCIDExQkE7CitCNjVDO0I2NUM7MTEwNCAxMTZCIDExQkI7QjY1QzsxMTA0IDExNkIgMTFCQjsKK0I2NUQ7QjY1RDsxMTA0IDExNkIgMTFCQztCNjVEOzExMDQgMTE2QiAxMUJDOworQjY1RTtCNjVFOzExMDQgMTE2QiAxMUJEO0I2NUU7MTEwNCAxMTZCIDExQkQ7CitCNjVGO0I2NUY7MTEwNCAxMTZCIDExQkU7QjY1RjsxMTA0IDExNkIgMTFCRTsKK0I2NjA7QjY2MDsxMTA0IDExNkIgMTFCRjtCNjYwOzExMDQgMTE2QiAxMUJGOworQjY2MTtCNjYxOzExMDQgMTE2QiAxMUMwO0I2NjE7MTEwNCAxMTZCIDExQzA7CitCNjYyO0I2NjI7MTEwNCAxMTZCIDExQzE7QjY2MjsxMTA0IDExNkIgMTFDMTsKK0I2NjM7QjY2MzsxMTA0IDExNkIgMTFDMjtCNjYzOzExMDQgMTE2QiAxMUMyOworQjY2NDtCNjY0OzExMDQgMTE2QztCNjY0OzExMDQgMTE2QzsKK0I2NjU7QjY2NTsxMTA0IDExNkMgMTFBODtCNjY1OzExMDQgMTE2QyAxMUE4OworQjY2NjtCNjY2OzExMDQgMTE2QyAxMUE5O0I2NjY7MTEwNCAxMTZDIDExQTk7CitCNjY3O0I2Njc7MTEwNCAxMTZDIDExQUE7QjY2NzsxMTA0IDExNkMgMTFBQTsKK0I2Njg7QjY2ODsxMTA0IDExNkMgMTFBQjtCNjY4OzExMDQgMTE2QyAxMUFCOworQjY2OTtCNjY5OzExMDQgMTE2QyAxMUFDO0I2Njk7MTEwNCAxMTZDIDExQUM7CitCNjZBO0I2NkE7MTEwNCAxMTZDIDExQUQ7QjY2QTsxMTA0IDExNkMgMTFBRDsKK0I2NkI7QjY2QjsxMTA0IDExNkMgMTFBRTtCNjZCOzExMDQgMTE2QyAxMUFFOworQjY2QztCNjZDOzExMDQgMTE2QyAxMUFGO0I2NkM7MTEwNCAxMTZDIDExQUY7CitCNjZEO0I2NkQ7MTEwNCAxMTZDIDExQjA7QjY2RDsxMTA0IDExNkMgMTFCMDsKK0I2NkU7QjY2RTsxMTA0IDExNkMgMTFCMTtCNjZFOzExMDQgMTE2QyAxMUIxOworQjY2RjtCNjZGOzExMDQgMTE2QyAxMUIyO0I2NkY7MTEwNCAxMTZDIDExQjI7CitCNjcwO0I2NzA7MTEwNCAxMTZDIDExQjM7QjY3MDsxMTA0IDExNkMgMTFCMzsKK0I2NzE7QjY3MTsxMTA0IDExNkMgMTFCNDtCNjcxOzExMDQgMTE2QyAxMUI0OworQjY3MjtCNjcyOzExMDQgMTE2QyAxMUI1O0I2NzI7MTEwNCAxMTZDIDExQjU7CitCNjczO0I2NzM7MTEwNCAxMTZDIDExQjY7QjY3MzsxMTA0IDExNkMgMTFCNjsKK0I2NzQ7QjY3NDsxMTA0IDExNkMgMTFCNztCNjc0OzExMDQgMTE2QyAxMUI3OworQjY3NTtCNjc1OzExMDQgMTE2QyAxMUI4O0I2NzU7MTEwNCAxMTZDIDExQjg7CitCNjc2O0I2NzY7MTEwNCAxMTZDIDExQjk7QjY3NjsxMTA0IDExNkMgMTFCOTsKK0I2Nzc7QjY3NzsxMTA0IDExNkMgMTFCQTtCNjc3OzExMDQgMTE2QyAxMUJBOworQjY3ODtCNjc4OzExMDQgMTE2QyAxMUJCO0I2Nzg7MTEwNCAxMTZDIDExQkI7CitCNjc5O0I2Nzk7MTEwNCAxMTZDIDExQkM7QjY3OTsxMTA0IDExNkMgMTFCQzsKK0I2N0E7QjY3QTsxMTA0IDExNkMgMTFCRDtCNjdBOzExMDQgMTE2QyAxMUJEOworQjY3QjtCNjdCOzExMDQgMTE2QyAxMUJFO0I2N0I7MTEwNCAxMTZDIDExQkU7CitCNjdDO0I2N0M7MTEwNCAxMTZDIDExQkY7QjY3QzsxMTA0IDExNkMgMTFCRjsKK0I2N0Q7QjY3RDsxMTA0IDExNkMgMTFDMDtCNjdEOzExMDQgMTE2QyAxMUMwOworQjY3RTtCNjdFOzExMDQgMTE2QyAxMUMxO0I2N0U7MTEwNCAxMTZDIDExQzE7CitCNjdGO0I2N0Y7MTEwNCAxMTZDIDExQzI7QjY3RjsxMTA0IDExNkMgMTFDMjsKK0I2ODA7QjY4MDsxMTA0IDExNkQ7QjY4MDsxMTA0IDExNkQ7CitCNjgxO0I2ODE7MTEwNCAxMTZEIDExQTg7QjY4MTsxMTA0IDExNkQgMTFBODsKK0I2ODI7QjY4MjsxMTA0IDExNkQgMTFBOTtCNjgyOzExMDQgMTE2RCAxMUE5OworQjY4MztCNjgzOzExMDQgMTE2RCAxMUFBO0I2ODM7MTEwNCAxMTZEIDExQUE7CitCNjg0O0I2ODQ7MTEwNCAxMTZEIDExQUI7QjY4NDsxMTA0IDExNkQgMTFBQjsKK0I2ODU7QjY4NTsxMTA0IDExNkQgMTFBQztCNjg1OzExMDQgMTE2RCAxMUFDOworQjY4NjtCNjg2OzExMDQgMTE2RCAxMUFEO0I2ODY7MTEwNCAxMTZEIDExQUQ7CitCNjg3O0I2ODc7MTEwNCAxMTZEIDExQUU7QjY4NzsxMTA0IDExNkQgMTFBRTsKK0I2ODg7QjY4ODsxMTA0IDExNkQgMTFBRjtCNjg4OzExMDQgMTE2RCAxMUFGOworQjY4OTtCNjg5OzExMDQgMTE2RCAxMUIwO0I2ODk7MTEwNCAxMTZEIDExQjA7CitCNjhBO0I2OEE7MTEwNCAxMTZEIDExQjE7QjY4QTsxMTA0IDExNkQgMTFCMTsKK0I2OEI7QjY4QjsxMTA0IDExNkQgMTFCMjtCNjhCOzExMDQgMTE2RCAxMUIyOworQjY4QztCNjhDOzExMDQgMTE2RCAxMUIzO0I2OEM7MTEwNCAxMTZEIDExQjM7CitCNjhEO0I2OEQ7MTEwNCAxMTZEIDExQjQ7QjY4RDsxMTA0IDExNkQgMTFCNDsKK0I2OEU7QjY4RTsxMTA0IDExNkQgMTFCNTtCNjhFOzExMDQgMTE2RCAxMUI1OworQjY4RjtCNjhGOzExMDQgMTE2RCAxMUI2O0I2OEY7MTEwNCAxMTZEIDExQjY7CitCNjkwO0I2OTA7MTEwNCAxMTZEIDExQjc7QjY5MDsxMTA0IDExNkQgMTFCNzsKK0I2OTE7QjY5MTsxMTA0IDExNkQgMTFCODtCNjkxOzExMDQgMTE2RCAxMUI4OworQjY5MjtCNjkyOzExMDQgMTE2RCAxMUI5O0I2OTI7MTEwNCAxMTZEIDExQjk7CitCNjkzO0I2OTM7MTEwNCAxMTZEIDExQkE7QjY5MzsxMTA0IDExNkQgMTFCQTsKK0I2OTQ7QjY5NDsxMTA0IDExNkQgMTFCQjtCNjk0OzExMDQgMTE2RCAxMUJCOworQjY5NTtCNjk1OzExMDQgMTE2RCAxMUJDO0I2OTU7MTEwNCAxMTZEIDExQkM7CitCNjk2O0I2OTY7MTEwNCAxMTZEIDExQkQ7QjY5NjsxMTA0IDExNkQgMTFCRDsKK0I2OTc7QjY5NzsxMTA0IDExNkQgMTFCRTtCNjk3OzExMDQgMTE2RCAxMUJFOworQjY5ODtCNjk4OzExMDQgMTE2RCAxMUJGO0I2OTg7MTEwNCAxMTZEIDExQkY7CitCNjk5O0I2OTk7MTEwNCAxMTZEIDExQzA7QjY5OTsxMTA0IDExNkQgMTFDMDsKK0I2OUE7QjY5QTsxMTA0IDExNkQgMTFDMTtCNjlBOzExMDQgMTE2RCAxMUMxOworQjY5QjtCNjlCOzExMDQgMTE2RCAxMUMyO0I2OUI7MTEwNCAxMTZEIDExQzI7CitCNjlDO0I2OUM7MTEwNCAxMTZFO0I2OUM7MTEwNCAxMTZFOworQjY5RDtCNjlEOzExMDQgMTE2RSAxMUE4O0I2OUQ7MTEwNCAxMTZFIDExQTg7CitCNjlFO0I2OUU7MTEwNCAxMTZFIDExQTk7QjY5RTsxMTA0IDExNkUgMTFBOTsKK0I2OUY7QjY5RjsxMTA0IDExNkUgMTFBQTtCNjlGOzExMDQgMTE2RSAxMUFBOworQjZBMDtCNkEwOzExMDQgMTE2RSAxMUFCO0I2QTA7MTEwNCAxMTZFIDExQUI7CitCNkExO0I2QTE7MTEwNCAxMTZFIDExQUM7QjZBMTsxMTA0IDExNkUgMTFBQzsKK0I2QTI7QjZBMjsxMTA0IDExNkUgMTFBRDtCNkEyOzExMDQgMTE2RSAxMUFEOworQjZBMztCNkEzOzExMDQgMTE2RSAxMUFFO0I2QTM7MTEwNCAxMTZFIDExQUU7CitCNkE0O0I2QTQ7MTEwNCAxMTZFIDExQUY7QjZBNDsxMTA0IDExNkUgMTFBRjsKK0I2QTU7QjZBNTsxMTA0IDExNkUgMTFCMDtCNkE1OzExMDQgMTE2RSAxMUIwOworQjZBNjtCNkE2OzExMDQgMTE2RSAxMUIxO0I2QTY7MTEwNCAxMTZFIDExQjE7CitCNkE3O0I2QTc7MTEwNCAxMTZFIDExQjI7QjZBNzsxMTA0IDExNkUgMTFCMjsKK0I2QTg7QjZBODsxMTA0IDExNkUgMTFCMztCNkE4OzExMDQgMTE2RSAxMUIzOworQjZBOTtCNkE5OzExMDQgMTE2RSAxMUI0O0I2QTk7MTEwNCAxMTZFIDExQjQ7CitCNkFBO0I2QUE7MTEwNCAxMTZFIDExQjU7QjZBQTsxMTA0IDExNkUgMTFCNTsKK0I2QUI7QjZBQjsxMTA0IDExNkUgMTFCNjtCNkFCOzExMDQgMTE2RSAxMUI2OworQjZBQztCNkFDOzExMDQgMTE2RSAxMUI3O0I2QUM7MTEwNCAxMTZFIDExQjc7CitCNkFEO0I2QUQ7MTEwNCAxMTZFIDExQjg7QjZBRDsxMTA0IDExNkUgMTFCODsKK0I2QUU7QjZBRTsxMTA0IDExNkUgMTFCOTtCNkFFOzExMDQgMTE2RSAxMUI5OworQjZBRjtCNkFGOzExMDQgMTE2RSAxMUJBO0I2QUY7MTEwNCAxMTZFIDExQkE7CitCNkIwO0I2QjA7MTEwNCAxMTZFIDExQkI7QjZCMDsxMTA0IDExNkUgMTFCQjsKK0I2QjE7QjZCMTsxMTA0IDExNkUgMTFCQztCNkIxOzExMDQgMTE2RSAxMUJDOworQjZCMjtCNkIyOzExMDQgMTE2RSAxMUJEO0I2QjI7MTEwNCAxMTZFIDExQkQ7CitCNkIzO0I2QjM7MTEwNCAxMTZFIDExQkU7QjZCMzsxMTA0IDExNkUgMTFCRTsKK0I2QjQ7QjZCNDsxMTA0IDExNkUgMTFCRjtCNkI0OzExMDQgMTE2RSAxMUJGOworQjZCNTtCNkI1OzExMDQgMTE2RSAxMUMwO0I2QjU7MTEwNCAxMTZFIDExQzA7CitCNkI2O0I2QjY7MTEwNCAxMTZFIDExQzE7QjZCNjsxMTA0IDExNkUgMTFDMTsKK0I2Qjc7QjZCNzsxMTA0IDExNkUgMTFDMjtCNkI3OzExMDQgMTE2RSAxMUMyOworQjZCODtCNkI4OzExMDQgMTE2RjtCNkI4OzExMDQgMTE2RjsKK0I2Qjk7QjZCOTsxMTA0IDExNkYgMTFBODtCNkI5OzExMDQgMTE2RiAxMUE4OworQjZCQTtCNkJBOzExMDQgMTE2RiAxMUE5O0I2QkE7MTEwNCAxMTZGIDExQTk7CitCNkJCO0I2QkI7MTEwNCAxMTZGIDExQUE7QjZCQjsxMTA0IDExNkYgMTFBQTsKK0I2QkM7QjZCQzsxMTA0IDExNkYgMTFBQjtCNkJDOzExMDQgMTE2RiAxMUFCOworQjZCRDtCNkJEOzExMDQgMTE2RiAxMUFDO0I2QkQ7MTEwNCAxMTZGIDExQUM7CitCNkJFO0I2QkU7MTEwNCAxMTZGIDExQUQ7QjZCRTsxMTA0IDExNkYgMTFBRDsKK0I2QkY7QjZCRjsxMTA0IDExNkYgMTFBRTtCNkJGOzExMDQgMTE2RiAxMUFFOworQjZDMDtCNkMwOzExMDQgMTE2RiAxMUFGO0I2QzA7MTEwNCAxMTZGIDExQUY7CitCNkMxO0I2QzE7MTEwNCAxMTZGIDExQjA7QjZDMTsxMTA0IDExNkYgMTFCMDsKK0I2QzI7QjZDMjsxMTA0IDExNkYgMTFCMTtCNkMyOzExMDQgMTE2RiAxMUIxOworQjZDMztCNkMzOzExMDQgMTE2RiAxMUIyO0I2QzM7MTEwNCAxMTZGIDExQjI7CitCNkM0O0I2QzQ7MTEwNCAxMTZGIDExQjM7QjZDNDsxMTA0IDExNkYgMTFCMzsKK0I2QzU7QjZDNTsxMTA0IDExNkYgMTFCNDtCNkM1OzExMDQgMTE2RiAxMUI0OworQjZDNjtCNkM2OzExMDQgMTE2RiAxMUI1O0I2QzY7MTEwNCAxMTZGIDExQjU7CitCNkM3O0I2Qzc7MTEwNCAxMTZGIDExQjY7QjZDNzsxMTA0IDExNkYgMTFCNjsKK0I2Qzg7QjZDODsxMTA0IDExNkYgMTFCNztCNkM4OzExMDQgMTE2RiAxMUI3OworQjZDOTtCNkM5OzExMDQgMTE2RiAxMUI4O0I2Qzk7MTEwNCAxMTZGIDExQjg7CitCNkNBO0I2Q0E7MTEwNCAxMTZGIDExQjk7QjZDQTsxMTA0IDExNkYgMTFCOTsKK0I2Q0I7QjZDQjsxMTA0IDExNkYgMTFCQTtCNkNCOzExMDQgMTE2RiAxMUJBOworQjZDQztCNkNDOzExMDQgMTE2RiAxMUJCO0I2Q0M7MTEwNCAxMTZGIDExQkI7CitCNkNEO0I2Q0Q7MTEwNCAxMTZGIDExQkM7QjZDRDsxMTA0IDExNkYgMTFCQzsKK0I2Q0U7QjZDRTsxMTA0IDExNkYgMTFCRDtCNkNFOzExMDQgMTE2RiAxMUJEOworQjZDRjtCNkNGOzExMDQgMTE2RiAxMUJFO0I2Q0Y7MTEwNCAxMTZGIDExQkU7CitCNkQwO0I2RDA7MTEwNCAxMTZGIDExQkY7QjZEMDsxMTA0IDExNkYgMTFCRjsKK0I2RDE7QjZEMTsxMTA0IDExNkYgMTFDMDtCNkQxOzExMDQgMTE2RiAxMUMwOworQjZEMjtCNkQyOzExMDQgMTE2RiAxMUMxO0I2RDI7MTEwNCAxMTZGIDExQzE7CitCNkQzO0I2RDM7MTEwNCAxMTZGIDExQzI7QjZEMzsxMTA0IDExNkYgMTFDMjsKK0I2RDQ7QjZENDsxMTA0IDExNzA7QjZENDsxMTA0IDExNzA7CitCNkQ1O0I2RDU7MTEwNCAxMTcwIDExQTg7QjZENTsxMTA0IDExNzAgMTFBODsKK0I2RDY7QjZENjsxMTA0IDExNzAgMTFBOTtCNkQ2OzExMDQgMTE3MCAxMUE5OworQjZENztCNkQ3OzExMDQgMTE3MCAxMUFBO0I2RDc7MTEwNCAxMTcwIDExQUE7CitCNkQ4O0I2RDg7MTEwNCAxMTcwIDExQUI7QjZEODsxMTA0IDExNzAgMTFBQjsKK0I2RDk7QjZEOTsxMTA0IDExNzAgMTFBQztCNkQ5OzExMDQgMTE3MCAxMUFDOworQjZEQTtCNkRBOzExMDQgMTE3MCAxMUFEO0I2REE7MTEwNCAxMTcwIDExQUQ7CitCNkRCO0I2REI7MTEwNCAxMTcwIDExQUU7QjZEQjsxMTA0IDExNzAgMTFBRTsKK0I2REM7QjZEQzsxMTA0IDExNzAgMTFBRjtCNkRDOzExMDQgMTE3MCAxMUFGOworQjZERDtCNkREOzExMDQgMTE3MCAxMUIwO0I2REQ7MTEwNCAxMTcwIDExQjA7CitCNkRFO0I2REU7MTEwNCAxMTcwIDExQjE7QjZERTsxMTA0IDExNzAgMTFCMTsKK0I2REY7QjZERjsxMTA0IDExNzAgMTFCMjtCNkRGOzExMDQgMTE3MCAxMUIyOworQjZFMDtCNkUwOzExMDQgMTE3MCAxMUIzO0I2RTA7MTEwNCAxMTcwIDExQjM7CitCNkUxO0I2RTE7MTEwNCAxMTcwIDExQjQ7QjZFMTsxMTA0IDExNzAgMTFCNDsKK0I2RTI7QjZFMjsxMTA0IDExNzAgMTFCNTtCNkUyOzExMDQgMTE3MCAxMUI1OworQjZFMztCNkUzOzExMDQgMTE3MCAxMUI2O0I2RTM7MTEwNCAxMTcwIDExQjY7CitCNkU0O0I2RTQ7MTEwNCAxMTcwIDExQjc7QjZFNDsxMTA0IDExNzAgMTFCNzsKK0I2RTU7QjZFNTsxMTA0IDExNzAgMTFCODtCNkU1OzExMDQgMTE3MCAxMUI4OworQjZFNjtCNkU2OzExMDQgMTE3MCAxMUI5O0I2RTY7MTEwNCAxMTcwIDExQjk7CitCNkU3O0I2RTc7MTEwNCAxMTcwIDExQkE7QjZFNzsxMTA0IDExNzAgMTFCQTsKK0I2RTg7QjZFODsxMTA0IDExNzAgMTFCQjtCNkU4OzExMDQgMTE3MCAxMUJCOworQjZFOTtCNkU5OzExMDQgMTE3MCAxMUJDO0I2RTk7MTEwNCAxMTcwIDExQkM7CitCNkVBO0I2RUE7MTEwNCAxMTcwIDExQkQ7QjZFQTsxMTA0IDExNzAgMTFCRDsKK0I2RUI7QjZFQjsxMTA0IDExNzAgMTFCRTtCNkVCOzExMDQgMTE3MCAxMUJFOworQjZFQztCNkVDOzExMDQgMTE3MCAxMUJGO0I2RUM7MTEwNCAxMTcwIDExQkY7CitCNkVEO0I2RUQ7MTEwNCAxMTcwIDExQzA7QjZFRDsxMTA0IDExNzAgMTFDMDsKK0I2RUU7QjZFRTsxMTA0IDExNzAgMTFDMTtCNkVFOzExMDQgMTE3MCAxMUMxOworQjZFRjtCNkVGOzExMDQgMTE3MCAxMUMyO0I2RUY7MTEwNCAxMTcwIDExQzI7CitCNkYwO0I2RjA7MTEwNCAxMTcxO0I2RjA7MTEwNCAxMTcxOworQjZGMTtCNkYxOzExMDQgMTE3MSAxMUE4O0I2RjE7MTEwNCAxMTcxIDExQTg7CitCNkYyO0I2RjI7MTEwNCAxMTcxIDExQTk7QjZGMjsxMTA0IDExNzEgMTFBOTsKK0I2RjM7QjZGMzsxMTA0IDExNzEgMTFBQTtCNkYzOzExMDQgMTE3MSAxMUFBOworQjZGNDtCNkY0OzExMDQgMTE3MSAxMUFCO0I2RjQ7MTEwNCAxMTcxIDExQUI7CitCNkY1O0I2RjU7MTEwNCAxMTcxIDExQUM7QjZGNTsxMTA0IDExNzEgMTFBQzsKK0I2RjY7QjZGNjsxMTA0IDExNzEgMTFBRDtCNkY2OzExMDQgMTE3MSAxMUFEOworQjZGNztCNkY3OzExMDQgMTE3MSAxMUFFO0I2Rjc7MTEwNCAxMTcxIDExQUU7CitCNkY4O0I2Rjg7MTEwNCAxMTcxIDExQUY7QjZGODsxMTA0IDExNzEgMTFBRjsKK0I2Rjk7QjZGOTsxMTA0IDExNzEgMTFCMDtCNkY5OzExMDQgMTE3MSAxMUIwOworQjZGQTtCNkZBOzExMDQgMTE3MSAxMUIxO0I2RkE7MTEwNCAxMTcxIDExQjE7CitCNkZCO0I2RkI7MTEwNCAxMTcxIDExQjI7QjZGQjsxMTA0IDExNzEgMTFCMjsKK0I2RkM7QjZGQzsxMTA0IDExNzEgMTFCMztCNkZDOzExMDQgMTE3MSAxMUIzOworQjZGRDtCNkZEOzExMDQgMTE3MSAxMUI0O0I2RkQ7MTEwNCAxMTcxIDExQjQ7CitCNkZFO0I2RkU7MTEwNCAxMTcxIDExQjU7QjZGRTsxMTA0IDExNzEgMTFCNTsKK0I2RkY7QjZGRjsxMTA0IDExNzEgMTFCNjtCNkZGOzExMDQgMTE3MSAxMUI2OworQjcwMDtCNzAwOzExMDQgMTE3MSAxMUI3O0I3MDA7MTEwNCAxMTcxIDExQjc7CitCNzAxO0I3MDE7MTEwNCAxMTcxIDExQjg7QjcwMTsxMTA0IDExNzEgMTFCODsKK0I3MDI7QjcwMjsxMTA0IDExNzEgMTFCOTtCNzAyOzExMDQgMTE3MSAxMUI5OworQjcwMztCNzAzOzExMDQgMTE3MSAxMUJBO0I3MDM7MTEwNCAxMTcxIDExQkE7CitCNzA0O0I3MDQ7MTEwNCAxMTcxIDExQkI7QjcwNDsxMTA0IDExNzEgMTFCQjsKK0I3MDU7QjcwNTsxMTA0IDExNzEgMTFCQztCNzA1OzExMDQgMTE3MSAxMUJDOworQjcwNjtCNzA2OzExMDQgMTE3MSAxMUJEO0I3MDY7MTEwNCAxMTcxIDExQkQ7CitCNzA3O0I3MDc7MTEwNCAxMTcxIDExQkU7QjcwNzsxMTA0IDExNzEgMTFCRTsKK0I3MDg7QjcwODsxMTA0IDExNzEgMTFCRjtCNzA4OzExMDQgMTE3MSAxMUJGOworQjcwOTtCNzA5OzExMDQgMTE3MSAxMUMwO0I3MDk7MTEwNCAxMTcxIDExQzA7CitCNzBBO0I3MEE7MTEwNCAxMTcxIDExQzE7QjcwQTsxMTA0IDExNzEgMTFDMTsKK0I3MEI7QjcwQjsxMTA0IDExNzEgMTFDMjtCNzBCOzExMDQgMTE3MSAxMUMyOworQjcwQztCNzBDOzExMDQgMTE3MjtCNzBDOzExMDQgMTE3MjsKK0I3MEQ7QjcwRDsxMTA0IDExNzIgMTFBODtCNzBEOzExMDQgMTE3MiAxMUE4OworQjcwRTtCNzBFOzExMDQgMTE3MiAxMUE5O0I3MEU7MTEwNCAxMTcyIDExQTk7CitCNzBGO0I3MEY7MTEwNCAxMTcyIDExQUE7QjcwRjsxMTA0IDExNzIgMTFBQTsKK0I3MTA7QjcxMDsxMTA0IDExNzIgMTFBQjtCNzEwOzExMDQgMTE3MiAxMUFCOworQjcxMTtCNzExOzExMDQgMTE3MiAxMUFDO0I3MTE7MTEwNCAxMTcyIDExQUM7CitCNzEyO0I3MTI7MTEwNCAxMTcyIDExQUQ7QjcxMjsxMTA0IDExNzIgMTFBRDsKK0I3MTM7QjcxMzsxMTA0IDExNzIgMTFBRTtCNzEzOzExMDQgMTE3MiAxMUFFOworQjcxNDtCNzE0OzExMDQgMTE3MiAxMUFGO0I3MTQ7MTEwNCAxMTcyIDExQUY7CitCNzE1O0I3MTU7MTEwNCAxMTcyIDExQjA7QjcxNTsxMTA0IDExNzIgMTFCMDsKK0I3MTY7QjcxNjsxMTA0IDExNzIgMTFCMTtCNzE2OzExMDQgMTE3MiAxMUIxOworQjcxNztCNzE3OzExMDQgMTE3MiAxMUIyO0I3MTc7MTEwNCAxMTcyIDExQjI7CitCNzE4O0I3MTg7MTEwNCAxMTcyIDExQjM7QjcxODsxMTA0IDExNzIgMTFCMzsKK0I3MTk7QjcxOTsxMTA0IDExNzIgMTFCNDtCNzE5OzExMDQgMTE3MiAxMUI0OworQjcxQTtCNzFBOzExMDQgMTE3MiAxMUI1O0I3MUE7MTEwNCAxMTcyIDExQjU7CitCNzFCO0I3MUI7MTEwNCAxMTcyIDExQjY7QjcxQjsxMTA0IDExNzIgMTFCNjsKK0I3MUM7QjcxQzsxMTA0IDExNzIgMTFCNztCNzFDOzExMDQgMTE3MiAxMUI3OworQjcxRDtCNzFEOzExMDQgMTE3MiAxMUI4O0I3MUQ7MTEwNCAxMTcyIDExQjg7CitCNzFFO0I3MUU7MTEwNCAxMTcyIDExQjk7QjcxRTsxMTA0IDExNzIgMTFCOTsKK0I3MUY7QjcxRjsxMTA0IDExNzIgMTFCQTtCNzFGOzExMDQgMTE3MiAxMUJBOworQjcyMDtCNzIwOzExMDQgMTE3MiAxMUJCO0I3MjA7MTEwNCAxMTcyIDExQkI7CitCNzIxO0I3MjE7MTEwNCAxMTcyIDExQkM7QjcyMTsxMTA0IDExNzIgMTFCQzsKK0I3MjI7QjcyMjsxMTA0IDExNzIgMTFCRDtCNzIyOzExMDQgMTE3MiAxMUJEOworQjcyMztCNzIzOzExMDQgMTE3MiAxMUJFO0I3MjM7MTEwNCAxMTcyIDExQkU7CitCNzI0O0I3MjQ7MTEwNCAxMTcyIDExQkY7QjcyNDsxMTA0IDExNzIgMTFCRjsKK0I3MjU7QjcyNTsxMTA0IDExNzIgMTFDMDtCNzI1OzExMDQgMTE3MiAxMUMwOworQjcyNjtCNzI2OzExMDQgMTE3MiAxMUMxO0I3MjY7MTEwNCAxMTcyIDExQzE7CitCNzI3O0I3Mjc7MTEwNCAxMTcyIDExQzI7QjcyNzsxMTA0IDExNzIgMTFDMjsKK0I3Mjg7QjcyODsxMTA0IDExNzM7QjcyODsxMTA0IDExNzM7CitCNzI5O0I3Mjk7MTEwNCAxMTczIDExQTg7QjcyOTsxMTA0IDExNzMgMTFBODsKK0I3MkE7QjcyQTsxMTA0IDExNzMgMTFBOTtCNzJBOzExMDQgMTE3MyAxMUE5OworQjcyQjtCNzJCOzExMDQgMTE3MyAxMUFBO0I3MkI7MTEwNCAxMTczIDExQUE7CitCNzJDO0I3MkM7MTEwNCAxMTczIDExQUI7QjcyQzsxMTA0IDExNzMgMTFBQjsKK0I3MkQ7QjcyRDsxMTA0IDExNzMgMTFBQztCNzJEOzExMDQgMTE3MyAxMUFDOworQjcyRTtCNzJFOzExMDQgMTE3MyAxMUFEO0I3MkU7MTEwNCAxMTczIDExQUQ7CitCNzJGO0I3MkY7MTEwNCAxMTczIDExQUU7QjcyRjsxMTA0IDExNzMgMTFBRTsKK0I3MzA7QjczMDsxMTA0IDExNzMgMTFBRjtCNzMwOzExMDQgMTE3MyAxMUFGOworQjczMTtCNzMxOzExMDQgMTE3MyAxMUIwO0I3MzE7MTEwNCAxMTczIDExQjA7CitCNzMyO0I3MzI7MTEwNCAxMTczIDExQjE7QjczMjsxMTA0IDExNzMgMTFCMTsKK0I3MzM7QjczMzsxMTA0IDExNzMgMTFCMjtCNzMzOzExMDQgMTE3MyAxMUIyOworQjczNDtCNzM0OzExMDQgMTE3MyAxMUIzO0I3MzQ7MTEwNCAxMTczIDExQjM7CitCNzM1O0I3MzU7MTEwNCAxMTczIDExQjQ7QjczNTsxMTA0IDExNzMgMTFCNDsKK0I3MzY7QjczNjsxMTA0IDExNzMgMTFCNTtCNzM2OzExMDQgMTE3MyAxMUI1OworQjczNztCNzM3OzExMDQgMTE3MyAxMUI2O0I3Mzc7MTEwNCAxMTczIDExQjY7CitCNzM4O0I3Mzg7MTEwNCAxMTczIDExQjc7QjczODsxMTA0IDExNzMgMTFCNzsKK0I3Mzk7QjczOTsxMTA0IDExNzMgMTFCODtCNzM5OzExMDQgMTE3MyAxMUI4OworQjczQTtCNzNBOzExMDQgMTE3MyAxMUI5O0I3M0E7MTEwNCAxMTczIDExQjk7CitCNzNCO0I3M0I7MTEwNCAxMTczIDExQkE7QjczQjsxMTA0IDExNzMgMTFCQTsKK0I3M0M7QjczQzsxMTA0IDExNzMgMTFCQjtCNzNDOzExMDQgMTE3MyAxMUJCOworQjczRDtCNzNEOzExMDQgMTE3MyAxMUJDO0I3M0Q7MTEwNCAxMTczIDExQkM7CitCNzNFO0I3M0U7MTEwNCAxMTczIDExQkQ7QjczRTsxMTA0IDExNzMgMTFCRDsKK0I3M0Y7QjczRjsxMTA0IDExNzMgMTFCRTtCNzNGOzExMDQgMTE3MyAxMUJFOworQjc0MDtCNzQwOzExMDQgMTE3MyAxMUJGO0I3NDA7MTEwNCAxMTczIDExQkY7CitCNzQxO0I3NDE7MTEwNCAxMTczIDExQzA7Qjc0MTsxMTA0IDExNzMgMTFDMDsKK0I3NDI7Qjc0MjsxMTA0IDExNzMgMTFDMTtCNzQyOzExMDQgMTE3MyAxMUMxOworQjc0MztCNzQzOzExMDQgMTE3MyAxMUMyO0I3NDM7MTEwNCAxMTczIDExQzI7CitCNzQ0O0I3NDQ7MTEwNCAxMTc0O0I3NDQ7MTEwNCAxMTc0OworQjc0NTtCNzQ1OzExMDQgMTE3NCAxMUE4O0I3NDU7MTEwNCAxMTc0IDExQTg7CitCNzQ2O0I3NDY7MTEwNCAxMTc0IDExQTk7Qjc0NjsxMTA0IDExNzQgMTFBOTsKK0I3NDc7Qjc0NzsxMTA0IDExNzQgMTFBQTtCNzQ3OzExMDQgMTE3NCAxMUFBOworQjc0ODtCNzQ4OzExMDQgMTE3NCAxMUFCO0I3NDg7MTEwNCAxMTc0IDExQUI7CitCNzQ5O0I3NDk7MTEwNCAxMTc0IDExQUM7Qjc0OTsxMTA0IDExNzQgMTFBQzsKK0I3NEE7Qjc0QTsxMTA0IDExNzQgMTFBRDtCNzRBOzExMDQgMTE3NCAxMUFEOworQjc0QjtCNzRCOzExMDQgMTE3NCAxMUFFO0I3NEI7MTEwNCAxMTc0IDExQUU7CitCNzRDO0I3NEM7MTEwNCAxMTc0IDExQUY7Qjc0QzsxMTA0IDExNzQgMTFBRjsKK0I3NEQ7Qjc0RDsxMTA0IDExNzQgMTFCMDtCNzREOzExMDQgMTE3NCAxMUIwOworQjc0RTtCNzRFOzExMDQgMTE3NCAxMUIxO0I3NEU7MTEwNCAxMTc0IDExQjE7CitCNzRGO0I3NEY7MTEwNCAxMTc0IDExQjI7Qjc0RjsxMTA0IDExNzQgMTFCMjsKK0I3NTA7Qjc1MDsxMTA0IDExNzQgMTFCMztCNzUwOzExMDQgMTE3NCAxMUIzOworQjc1MTtCNzUxOzExMDQgMTE3NCAxMUI0O0I3NTE7MTEwNCAxMTc0IDExQjQ7CitCNzUyO0I3NTI7MTEwNCAxMTc0IDExQjU7Qjc1MjsxMTA0IDExNzQgMTFCNTsKK0I3NTM7Qjc1MzsxMTA0IDExNzQgMTFCNjtCNzUzOzExMDQgMTE3NCAxMUI2OworQjc1NDtCNzU0OzExMDQgMTE3NCAxMUI3O0I3NTQ7MTEwNCAxMTc0IDExQjc7CitCNzU1O0I3NTU7MTEwNCAxMTc0IDExQjg7Qjc1NTsxMTA0IDExNzQgMTFCODsKK0I3NTY7Qjc1NjsxMTA0IDExNzQgMTFCOTtCNzU2OzExMDQgMTE3NCAxMUI5OworQjc1NztCNzU3OzExMDQgMTE3NCAxMUJBO0I3NTc7MTEwNCAxMTc0IDExQkE7CitCNzU4O0I3NTg7MTEwNCAxMTc0IDExQkI7Qjc1ODsxMTA0IDExNzQgMTFCQjsKK0I3NTk7Qjc1OTsxMTA0IDExNzQgMTFCQztCNzU5OzExMDQgMTE3NCAxMUJDOworQjc1QTtCNzVBOzExMDQgMTE3NCAxMUJEO0I3NUE7MTEwNCAxMTc0IDExQkQ7CitCNzVCO0I3NUI7MTEwNCAxMTc0IDExQkU7Qjc1QjsxMTA0IDExNzQgMTFCRTsKK0I3NUM7Qjc1QzsxMTA0IDExNzQgMTFCRjtCNzVDOzExMDQgMTE3NCAxMUJGOworQjc1RDtCNzVEOzExMDQgMTE3NCAxMUMwO0I3NUQ7MTEwNCAxMTc0IDExQzA7CitCNzVFO0I3NUU7MTEwNCAxMTc0IDExQzE7Qjc1RTsxMTA0IDExNzQgMTFDMTsKK0I3NUY7Qjc1RjsxMTA0IDExNzQgMTFDMjtCNzVGOzExMDQgMTE3NCAxMUMyOworQjc2MDtCNzYwOzExMDQgMTE3NTtCNzYwOzExMDQgMTE3NTsKK0I3NjE7Qjc2MTsxMTA0IDExNzUgMTFBODtCNzYxOzExMDQgMTE3NSAxMUE4OworQjc2MjtCNzYyOzExMDQgMTE3NSAxMUE5O0I3NjI7MTEwNCAxMTc1IDExQTk7CitCNzYzO0I3NjM7MTEwNCAxMTc1IDExQUE7Qjc2MzsxMTA0IDExNzUgMTFBQTsKK0I3NjQ7Qjc2NDsxMTA0IDExNzUgMTFBQjtCNzY0OzExMDQgMTE3NSAxMUFCOworQjc2NTtCNzY1OzExMDQgMTE3NSAxMUFDO0I3NjU7MTEwNCAxMTc1IDExQUM7CitCNzY2O0I3NjY7MTEwNCAxMTc1IDExQUQ7Qjc2NjsxMTA0IDExNzUgMTFBRDsKK0I3Njc7Qjc2NzsxMTA0IDExNzUgMTFBRTtCNzY3OzExMDQgMTE3NSAxMUFFOworQjc2ODtCNzY4OzExMDQgMTE3NSAxMUFGO0I3Njg7MTEwNCAxMTc1IDExQUY7CitCNzY5O0I3Njk7MTEwNCAxMTc1IDExQjA7Qjc2OTsxMTA0IDExNzUgMTFCMDsKK0I3NkE7Qjc2QTsxMTA0IDExNzUgMTFCMTtCNzZBOzExMDQgMTE3NSAxMUIxOworQjc2QjtCNzZCOzExMDQgMTE3NSAxMUIyO0I3NkI7MTEwNCAxMTc1IDExQjI7CitCNzZDO0I3NkM7MTEwNCAxMTc1IDExQjM7Qjc2QzsxMTA0IDExNzUgMTFCMzsKK0I3NkQ7Qjc2RDsxMTA0IDExNzUgMTFCNDtCNzZEOzExMDQgMTE3NSAxMUI0OworQjc2RTtCNzZFOzExMDQgMTE3NSAxMUI1O0I3NkU7MTEwNCAxMTc1IDExQjU7CitCNzZGO0I3NkY7MTEwNCAxMTc1IDExQjY7Qjc2RjsxMTA0IDExNzUgMTFCNjsKK0I3NzA7Qjc3MDsxMTA0IDExNzUgMTFCNztCNzcwOzExMDQgMTE3NSAxMUI3OworQjc3MTtCNzcxOzExMDQgMTE3NSAxMUI4O0I3NzE7MTEwNCAxMTc1IDExQjg7CitCNzcyO0I3NzI7MTEwNCAxMTc1IDExQjk7Qjc3MjsxMTA0IDExNzUgMTFCOTsKK0I3NzM7Qjc3MzsxMTA0IDExNzUgMTFCQTtCNzczOzExMDQgMTE3NSAxMUJBOworQjc3NDtCNzc0OzExMDQgMTE3NSAxMUJCO0I3NzQ7MTEwNCAxMTc1IDExQkI7CitCNzc1O0I3NzU7MTEwNCAxMTc1IDExQkM7Qjc3NTsxMTA0IDExNzUgMTFCQzsKK0I3NzY7Qjc3NjsxMTA0IDExNzUgMTFCRDtCNzc2OzExMDQgMTE3NSAxMUJEOworQjc3NztCNzc3OzExMDQgMTE3NSAxMUJFO0I3Nzc7MTEwNCAxMTc1IDExQkU7CitCNzc4O0I3Nzg7MTEwNCAxMTc1IDExQkY7Qjc3ODsxMTA0IDExNzUgMTFCRjsKK0I3Nzk7Qjc3OTsxMTA0IDExNzUgMTFDMDtCNzc5OzExMDQgMTE3NSAxMUMwOworQjc3QTtCNzdBOzExMDQgMTE3NSAxMUMxO0I3N0E7MTEwNCAxMTc1IDExQzE7CitCNzdCO0I3N0I7MTEwNCAxMTc1IDExQzI7Qjc3QjsxMTA0IDExNzUgMTFDMjsKK0I3N0M7Qjc3QzsxMTA1IDExNjE7Qjc3QzsxMTA1IDExNjE7CitCNzdEO0I3N0Q7MTEwNSAxMTYxIDExQTg7Qjc3RDsxMTA1IDExNjEgMTFBODsKK0I3N0U7Qjc3RTsxMTA1IDExNjEgMTFBOTtCNzdFOzExMDUgMTE2MSAxMUE5OworQjc3RjtCNzdGOzExMDUgMTE2MSAxMUFBO0I3N0Y7MTEwNSAxMTYxIDExQUE7CitCNzgwO0I3ODA7MTEwNSAxMTYxIDExQUI7Qjc4MDsxMTA1IDExNjEgMTFBQjsKK0I3ODE7Qjc4MTsxMTA1IDExNjEgMTFBQztCNzgxOzExMDUgMTE2MSAxMUFDOworQjc4MjtCNzgyOzExMDUgMTE2MSAxMUFEO0I3ODI7MTEwNSAxMTYxIDExQUQ7CitCNzgzO0I3ODM7MTEwNSAxMTYxIDExQUU7Qjc4MzsxMTA1IDExNjEgMTFBRTsKK0I3ODQ7Qjc4NDsxMTA1IDExNjEgMTFBRjtCNzg0OzExMDUgMTE2MSAxMUFGOworQjc4NTtCNzg1OzExMDUgMTE2MSAxMUIwO0I3ODU7MTEwNSAxMTYxIDExQjA7CitCNzg2O0I3ODY7MTEwNSAxMTYxIDExQjE7Qjc4NjsxMTA1IDExNjEgMTFCMTsKK0I3ODc7Qjc4NzsxMTA1IDExNjEgMTFCMjtCNzg3OzExMDUgMTE2MSAxMUIyOworQjc4ODtCNzg4OzExMDUgMTE2MSAxMUIzO0I3ODg7MTEwNSAxMTYxIDExQjM7CitCNzg5O0I3ODk7MTEwNSAxMTYxIDExQjQ7Qjc4OTsxMTA1IDExNjEgMTFCNDsKK0I3OEE7Qjc4QTsxMTA1IDExNjEgMTFCNTtCNzhBOzExMDUgMTE2MSAxMUI1OworQjc4QjtCNzhCOzExMDUgMTE2MSAxMUI2O0I3OEI7MTEwNSAxMTYxIDExQjY7CitCNzhDO0I3OEM7MTEwNSAxMTYxIDExQjc7Qjc4QzsxMTA1IDExNjEgMTFCNzsKK0I3OEQ7Qjc4RDsxMTA1IDExNjEgMTFCODtCNzhEOzExMDUgMTE2MSAxMUI4OworQjc4RTtCNzhFOzExMDUgMTE2MSAxMUI5O0I3OEU7MTEwNSAxMTYxIDExQjk7CitCNzhGO0I3OEY7MTEwNSAxMTYxIDExQkE7Qjc4RjsxMTA1IDExNjEgMTFCQTsKK0I3OTA7Qjc5MDsxMTA1IDExNjEgMTFCQjtCNzkwOzExMDUgMTE2MSAxMUJCOworQjc5MTtCNzkxOzExMDUgMTE2MSAxMUJDO0I3OTE7MTEwNSAxMTYxIDExQkM7CitCNzkyO0I3OTI7MTEwNSAxMTYxIDExQkQ7Qjc5MjsxMTA1IDExNjEgMTFCRDsKK0I3OTM7Qjc5MzsxMTA1IDExNjEgMTFCRTtCNzkzOzExMDUgMTE2MSAxMUJFOworQjc5NDtCNzk0OzExMDUgMTE2MSAxMUJGO0I3OTQ7MTEwNSAxMTYxIDExQkY7CitCNzk1O0I3OTU7MTEwNSAxMTYxIDExQzA7Qjc5NTsxMTA1IDExNjEgMTFDMDsKK0I3OTY7Qjc5NjsxMTA1IDExNjEgMTFDMTtCNzk2OzExMDUgMTE2MSAxMUMxOworQjc5NztCNzk3OzExMDUgMTE2MSAxMUMyO0I3OTc7MTEwNSAxMTYxIDExQzI7CitCNzk4O0I3OTg7MTEwNSAxMTYyO0I3OTg7MTEwNSAxMTYyOworQjc5OTtCNzk5OzExMDUgMTE2MiAxMUE4O0I3OTk7MTEwNSAxMTYyIDExQTg7CitCNzlBO0I3OUE7MTEwNSAxMTYyIDExQTk7Qjc5QTsxMTA1IDExNjIgMTFBOTsKK0I3OUI7Qjc5QjsxMTA1IDExNjIgMTFBQTtCNzlCOzExMDUgMTE2MiAxMUFBOworQjc5QztCNzlDOzExMDUgMTE2MiAxMUFCO0I3OUM7MTEwNSAxMTYyIDExQUI7CitCNzlEO0I3OUQ7MTEwNSAxMTYyIDExQUM7Qjc5RDsxMTA1IDExNjIgMTFBQzsKK0I3OUU7Qjc5RTsxMTA1IDExNjIgMTFBRDtCNzlFOzExMDUgMTE2MiAxMUFEOworQjc5RjtCNzlGOzExMDUgMTE2MiAxMUFFO0I3OUY7MTEwNSAxMTYyIDExQUU7CitCN0EwO0I3QTA7MTEwNSAxMTYyIDExQUY7QjdBMDsxMTA1IDExNjIgMTFBRjsKK0I3QTE7QjdBMTsxMTA1IDExNjIgMTFCMDtCN0ExOzExMDUgMTE2MiAxMUIwOworQjdBMjtCN0EyOzExMDUgMTE2MiAxMUIxO0I3QTI7MTEwNSAxMTYyIDExQjE7CitCN0EzO0I3QTM7MTEwNSAxMTYyIDExQjI7QjdBMzsxMTA1IDExNjIgMTFCMjsKK0I3QTQ7QjdBNDsxMTA1IDExNjIgMTFCMztCN0E0OzExMDUgMTE2MiAxMUIzOworQjdBNTtCN0E1OzExMDUgMTE2MiAxMUI0O0I3QTU7MTEwNSAxMTYyIDExQjQ7CitCN0E2O0I3QTY7MTEwNSAxMTYyIDExQjU7QjdBNjsxMTA1IDExNjIgMTFCNTsKK0I3QTc7QjdBNzsxMTA1IDExNjIgMTFCNjtCN0E3OzExMDUgMTE2MiAxMUI2OworQjdBODtCN0E4OzExMDUgMTE2MiAxMUI3O0I3QTg7MTEwNSAxMTYyIDExQjc7CitCN0E5O0I3QTk7MTEwNSAxMTYyIDExQjg7QjdBOTsxMTA1IDExNjIgMTFCODsKK0I3QUE7QjdBQTsxMTA1IDExNjIgMTFCOTtCN0FBOzExMDUgMTE2MiAxMUI5OworQjdBQjtCN0FCOzExMDUgMTE2MiAxMUJBO0I3QUI7MTEwNSAxMTYyIDExQkE7CitCN0FDO0I3QUM7MTEwNSAxMTYyIDExQkI7QjdBQzsxMTA1IDExNjIgMTFCQjsKK0I3QUQ7QjdBRDsxMTA1IDExNjIgMTFCQztCN0FEOzExMDUgMTE2MiAxMUJDOworQjdBRTtCN0FFOzExMDUgMTE2MiAxMUJEO0I3QUU7MTEwNSAxMTYyIDExQkQ7CitCN0FGO0I3QUY7MTEwNSAxMTYyIDExQkU7QjdBRjsxMTA1IDExNjIgMTFCRTsKK0I3QjA7QjdCMDsxMTA1IDExNjIgMTFCRjtCN0IwOzExMDUgMTE2MiAxMUJGOworQjdCMTtCN0IxOzExMDUgMTE2MiAxMUMwO0I3QjE7MTEwNSAxMTYyIDExQzA7CitCN0IyO0I3QjI7MTEwNSAxMTYyIDExQzE7QjdCMjsxMTA1IDExNjIgMTFDMTsKK0I3QjM7QjdCMzsxMTA1IDExNjIgMTFDMjtCN0IzOzExMDUgMTE2MiAxMUMyOworQjdCNDtCN0I0OzExMDUgMTE2MztCN0I0OzExMDUgMTE2MzsKK0I3QjU7QjdCNTsxMTA1IDExNjMgMTFBODtCN0I1OzExMDUgMTE2MyAxMUE4OworQjdCNjtCN0I2OzExMDUgMTE2MyAxMUE5O0I3QjY7MTEwNSAxMTYzIDExQTk7CitCN0I3O0I3Qjc7MTEwNSAxMTYzIDExQUE7QjdCNzsxMTA1IDExNjMgMTFBQTsKK0I3Qjg7QjdCODsxMTA1IDExNjMgMTFBQjtCN0I4OzExMDUgMTE2MyAxMUFCOworQjdCOTtCN0I5OzExMDUgMTE2MyAxMUFDO0I3Qjk7MTEwNSAxMTYzIDExQUM7CitCN0JBO0I3QkE7MTEwNSAxMTYzIDExQUQ7QjdCQTsxMTA1IDExNjMgMTFBRDsKK0I3QkI7QjdCQjsxMTA1IDExNjMgMTFBRTtCN0JCOzExMDUgMTE2MyAxMUFFOworQjdCQztCN0JDOzExMDUgMTE2MyAxMUFGO0I3QkM7MTEwNSAxMTYzIDExQUY7CitCN0JEO0I3QkQ7MTEwNSAxMTYzIDExQjA7QjdCRDsxMTA1IDExNjMgMTFCMDsKK0I3QkU7QjdCRTsxMTA1IDExNjMgMTFCMTtCN0JFOzExMDUgMTE2MyAxMUIxOworQjdCRjtCN0JGOzExMDUgMTE2MyAxMUIyO0I3QkY7MTEwNSAxMTYzIDExQjI7CitCN0MwO0I3QzA7MTEwNSAxMTYzIDExQjM7QjdDMDsxMTA1IDExNjMgMTFCMzsKK0I3QzE7QjdDMTsxMTA1IDExNjMgMTFCNDtCN0MxOzExMDUgMTE2MyAxMUI0OworQjdDMjtCN0MyOzExMDUgMTE2MyAxMUI1O0I3QzI7MTEwNSAxMTYzIDExQjU7CitCN0MzO0I3QzM7MTEwNSAxMTYzIDExQjY7QjdDMzsxMTA1IDExNjMgMTFCNjsKK0I3QzQ7QjdDNDsxMTA1IDExNjMgMTFCNztCN0M0OzExMDUgMTE2MyAxMUI3OworQjdDNTtCN0M1OzExMDUgMTE2MyAxMUI4O0I3QzU7MTEwNSAxMTYzIDExQjg7CitCN0M2O0I3QzY7MTEwNSAxMTYzIDExQjk7QjdDNjsxMTA1IDExNjMgMTFCOTsKK0I3Qzc7QjdDNzsxMTA1IDExNjMgMTFCQTtCN0M3OzExMDUgMTE2MyAxMUJBOworQjdDODtCN0M4OzExMDUgMTE2MyAxMUJCO0I3Qzg7MTEwNSAxMTYzIDExQkI7CitCN0M5O0I3Qzk7MTEwNSAxMTYzIDExQkM7QjdDOTsxMTA1IDExNjMgMTFCQzsKK0I3Q0E7QjdDQTsxMTA1IDExNjMgMTFCRDtCN0NBOzExMDUgMTE2MyAxMUJEOworQjdDQjtCN0NCOzExMDUgMTE2MyAxMUJFO0I3Q0I7MTEwNSAxMTYzIDExQkU7CitCN0NDO0I3Q0M7MTEwNSAxMTYzIDExQkY7QjdDQzsxMTA1IDExNjMgMTFCRjsKK0I3Q0Q7QjdDRDsxMTA1IDExNjMgMTFDMDtCN0NEOzExMDUgMTE2MyAxMUMwOworQjdDRTtCN0NFOzExMDUgMTE2MyAxMUMxO0I3Q0U7MTEwNSAxMTYzIDExQzE7CitCN0NGO0I3Q0Y7MTEwNSAxMTYzIDExQzI7QjdDRjsxMTA1IDExNjMgMTFDMjsKK0I3RDA7QjdEMDsxMTA1IDExNjQ7QjdEMDsxMTA1IDExNjQ7CitCN0QxO0I3RDE7MTEwNSAxMTY0IDExQTg7QjdEMTsxMTA1IDExNjQgMTFBODsKK0I3RDI7QjdEMjsxMTA1IDExNjQgMTFBOTtCN0QyOzExMDUgMTE2NCAxMUE5OworQjdEMztCN0QzOzExMDUgMTE2NCAxMUFBO0I3RDM7MTEwNSAxMTY0IDExQUE7CitCN0Q0O0I3RDQ7MTEwNSAxMTY0IDExQUI7QjdENDsxMTA1IDExNjQgMTFBQjsKK0I3RDU7QjdENTsxMTA1IDExNjQgMTFBQztCN0Q1OzExMDUgMTE2NCAxMUFDOworQjdENjtCN0Q2OzExMDUgMTE2NCAxMUFEO0I3RDY7MTEwNSAxMTY0IDExQUQ7CitCN0Q3O0I3RDc7MTEwNSAxMTY0IDExQUU7QjdENzsxMTA1IDExNjQgMTFBRTsKK0I3RDg7QjdEODsxMTA1IDExNjQgMTFBRjtCN0Q4OzExMDUgMTE2NCAxMUFGOworQjdEOTtCN0Q5OzExMDUgMTE2NCAxMUIwO0I3RDk7MTEwNSAxMTY0IDExQjA7CitCN0RBO0I3REE7MTEwNSAxMTY0IDExQjE7QjdEQTsxMTA1IDExNjQgMTFCMTsKK0I3REI7QjdEQjsxMTA1IDExNjQgMTFCMjtCN0RCOzExMDUgMTE2NCAxMUIyOworQjdEQztCN0RDOzExMDUgMTE2NCAxMUIzO0I3REM7MTEwNSAxMTY0IDExQjM7CitCN0REO0I3REQ7MTEwNSAxMTY0IDExQjQ7QjdERDsxMTA1IDExNjQgMTFCNDsKK0I3REU7QjdERTsxMTA1IDExNjQgMTFCNTtCN0RFOzExMDUgMTE2NCAxMUI1OworQjdERjtCN0RGOzExMDUgMTE2NCAxMUI2O0I3REY7MTEwNSAxMTY0IDExQjY7CitCN0UwO0I3RTA7MTEwNSAxMTY0IDExQjc7QjdFMDsxMTA1IDExNjQgMTFCNzsKK0I3RTE7QjdFMTsxMTA1IDExNjQgMTFCODtCN0UxOzExMDUgMTE2NCAxMUI4OworQjdFMjtCN0UyOzExMDUgMTE2NCAxMUI5O0I3RTI7MTEwNSAxMTY0IDExQjk7CitCN0UzO0I3RTM7MTEwNSAxMTY0IDExQkE7QjdFMzsxMTA1IDExNjQgMTFCQTsKK0I3RTQ7QjdFNDsxMTA1IDExNjQgMTFCQjtCN0U0OzExMDUgMTE2NCAxMUJCOworQjdFNTtCN0U1OzExMDUgMTE2NCAxMUJDO0I3RTU7MTEwNSAxMTY0IDExQkM7CitCN0U2O0I3RTY7MTEwNSAxMTY0IDExQkQ7QjdFNjsxMTA1IDExNjQgMTFCRDsKK0I3RTc7QjdFNzsxMTA1IDExNjQgMTFCRTtCN0U3OzExMDUgMTE2NCAxMUJFOworQjdFODtCN0U4OzExMDUgMTE2NCAxMUJGO0I3RTg7MTEwNSAxMTY0IDExQkY7CitCN0U5O0I3RTk7MTEwNSAxMTY0IDExQzA7QjdFOTsxMTA1IDExNjQgMTFDMDsKK0I3RUE7QjdFQTsxMTA1IDExNjQgMTFDMTtCN0VBOzExMDUgMTE2NCAxMUMxOworQjdFQjtCN0VCOzExMDUgMTE2NCAxMUMyO0I3RUI7MTEwNSAxMTY0IDExQzI7CitCN0VDO0I3RUM7MTEwNSAxMTY1O0I3RUM7MTEwNSAxMTY1OworQjdFRDtCN0VEOzExMDUgMTE2NSAxMUE4O0I3RUQ7MTEwNSAxMTY1IDExQTg7CitCN0VFO0I3RUU7MTEwNSAxMTY1IDExQTk7QjdFRTsxMTA1IDExNjUgMTFBOTsKK0I3RUY7QjdFRjsxMTA1IDExNjUgMTFBQTtCN0VGOzExMDUgMTE2NSAxMUFBOworQjdGMDtCN0YwOzExMDUgMTE2NSAxMUFCO0I3RjA7MTEwNSAxMTY1IDExQUI7CitCN0YxO0I3RjE7MTEwNSAxMTY1IDExQUM7QjdGMTsxMTA1IDExNjUgMTFBQzsKK0I3RjI7QjdGMjsxMTA1IDExNjUgMTFBRDtCN0YyOzExMDUgMTE2NSAxMUFEOworQjdGMztCN0YzOzExMDUgMTE2NSAxMUFFO0I3RjM7MTEwNSAxMTY1IDExQUU7CitCN0Y0O0I3RjQ7MTEwNSAxMTY1IDExQUY7QjdGNDsxMTA1IDExNjUgMTFBRjsKK0I3RjU7QjdGNTsxMTA1IDExNjUgMTFCMDtCN0Y1OzExMDUgMTE2NSAxMUIwOworQjdGNjtCN0Y2OzExMDUgMTE2NSAxMUIxO0I3RjY7MTEwNSAxMTY1IDExQjE7CitCN0Y3O0I3Rjc7MTEwNSAxMTY1IDExQjI7QjdGNzsxMTA1IDExNjUgMTFCMjsKK0I3Rjg7QjdGODsxMTA1IDExNjUgMTFCMztCN0Y4OzExMDUgMTE2NSAxMUIzOworQjdGOTtCN0Y5OzExMDUgMTE2NSAxMUI0O0I3Rjk7MTEwNSAxMTY1IDExQjQ7CitCN0ZBO0I3RkE7MTEwNSAxMTY1IDExQjU7QjdGQTsxMTA1IDExNjUgMTFCNTsKK0I3RkI7QjdGQjsxMTA1IDExNjUgMTFCNjtCN0ZCOzExMDUgMTE2NSAxMUI2OworQjdGQztCN0ZDOzExMDUgMTE2NSAxMUI3O0I3RkM7MTEwNSAxMTY1IDExQjc7CitCN0ZEO0I3RkQ7MTEwNSAxMTY1IDExQjg7QjdGRDsxMTA1IDExNjUgMTFCODsKK0I3RkU7QjdGRTsxMTA1IDExNjUgMTFCOTtCN0ZFOzExMDUgMTE2NSAxMUI5OworQjdGRjtCN0ZGOzExMDUgMTE2NSAxMUJBO0I3RkY7MTEwNSAxMTY1IDExQkE7CitCODAwO0I4MDA7MTEwNSAxMTY1IDExQkI7QjgwMDsxMTA1IDExNjUgMTFCQjsKK0I4MDE7QjgwMTsxMTA1IDExNjUgMTFCQztCODAxOzExMDUgMTE2NSAxMUJDOworQjgwMjtCODAyOzExMDUgMTE2NSAxMUJEO0I4MDI7MTEwNSAxMTY1IDExQkQ7CitCODAzO0I4MDM7MTEwNSAxMTY1IDExQkU7QjgwMzsxMTA1IDExNjUgMTFCRTsKK0I4MDQ7QjgwNDsxMTA1IDExNjUgMTFCRjtCODA0OzExMDUgMTE2NSAxMUJGOworQjgwNTtCODA1OzExMDUgMTE2NSAxMUMwO0I4MDU7MTEwNSAxMTY1IDExQzA7CitCODA2O0I4MDY7MTEwNSAxMTY1IDExQzE7QjgwNjsxMTA1IDExNjUgMTFDMTsKK0I4MDc7QjgwNzsxMTA1IDExNjUgMTFDMjtCODA3OzExMDUgMTE2NSAxMUMyOworQjgwODtCODA4OzExMDUgMTE2NjtCODA4OzExMDUgMTE2NjsKK0I4MDk7QjgwOTsxMTA1IDExNjYgMTFBODtCODA5OzExMDUgMTE2NiAxMUE4OworQjgwQTtCODBBOzExMDUgMTE2NiAxMUE5O0I4MEE7MTEwNSAxMTY2IDExQTk7CitCODBCO0I4MEI7MTEwNSAxMTY2IDExQUE7QjgwQjsxMTA1IDExNjYgMTFBQTsKK0I4MEM7QjgwQzsxMTA1IDExNjYgMTFBQjtCODBDOzExMDUgMTE2NiAxMUFCOworQjgwRDtCODBEOzExMDUgMTE2NiAxMUFDO0I4MEQ7MTEwNSAxMTY2IDExQUM7CitCODBFO0I4MEU7MTEwNSAxMTY2IDExQUQ7QjgwRTsxMTA1IDExNjYgMTFBRDsKK0I4MEY7QjgwRjsxMTA1IDExNjYgMTFBRTtCODBGOzExMDUgMTE2NiAxMUFFOworQjgxMDtCODEwOzExMDUgMTE2NiAxMUFGO0I4MTA7MTEwNSAxMTY2IDExQUY7CitCODExO0I4MTE7MTEwNSAxMTY2IDExQjA7QjgxMTsxMTA1IDExNjYgMTFCMDsKK0I4MTI7QjgxMjsxMTA1IDExNjYgMTFCMTtCODEyOzExMDUgMTE2NiAxMUIxOworQjgxMztCODEzOzExMDUgMTE2NiAxMUIyO0I4MTM7MTEwNSAxMTY2IDExQjI7CitCODE0O0I4MTQ7MTEwNSAxMTY2IDExQjM7QjgxNDsxMTA1IDExNjYgMTFCMzsKK0I4MTU7QjgxNTsxMTA1IDExNjYgMTFCNDtCODE1OzExMDUgMTE2NiAxMUI0OworQjgxNjtCODE2OzExMDUgMTE2NiAxMUI1O0I4MTY7MTEwNSAxMTY2IDExQjU7CitCODE3O0I4MTc7MTEwNSAxMTY2IDExQjY7QjgxNzsxMTA1IDExNjYgMTFCNjsKK0I4MTg7QjgxODsxMTA1IDExNjYgMTFCNztCODE4OzExMDUgMTE2NiAxMUI3OworQjgxOTtCODE5OzExMDUgMTE2NiAxMUI4O0I4MTk7MTEwNSAxMTY2IDExQjg7CitCODFBO0I4MUE7MTEwNSAxMTY2IDExQjk7QjgxQTsxMTA1IDExNjYgMTFCOTsKK0I4MUI7QjgxQjsxMTA1IDExNjYgMTFCQTtCODFCOzExMDUgMTE2NiAxMUJBOworQjgxQztCODFDOzExMDUgMTE2NiAxMUJCO0I4MUM7MTEwNSAxMTY2IDExQkI7CitCODFEO0I4MUQ7MTEwNSAxMTY2IDExQkM7QjgxRDsxMTA1IDExNjYgMTFCQzsKK0I4MUU7QjgxRTsxMTA1IDExNjYgMTFCRDtCODFFOzExMDUgMTE2NiAxMUJEOworQjgxRjtCODFGOzExMDUgMTE2NiAxMUJFO0I4MUY7MTEwNSAxMTY2IDExQkU7CitCODIwO0I4MjA7MTEwNSAxMTY2IDExQkY7QjgyMDsxMTA1IDExNjYgMTFCRjsKK0I4MjE7QjgyMTsxMTA1IDExNjYgMTFDMDtCODIxOzExMDUgMTE2NiAxMUMwOworQjgyMjtCODIyOzExMDUgMTE2NiAxMUMxO0I4MjI7MTEwNSAxMTY2IDExQzE7CitCODIzO0I4MjM7MTEwNSAxMTY2IDExQzI7QjgyMzsxMTA1IDExNjYgMTFDMjsKK0I4MjQ7QjgyNDsxMTA1IDExNjc7QjgyNDsxMTA1IDExNjc7CitCODI1O0I4MjU7MTEwNSAxMTY3IDExQTg7QjgyNTsxMTA1IDExNjcgMTFBODsKK0I4MjY7QjgyNjsxMTA1IDExNjcgMTFBOTtCODI2OzExMDUgMTE2NyAxMUE5OworQjgyNztCODI3OzExMDUgMTE2NyAxMUFBO0I4Mjc7MTEwNSAxMTY3IDExQUE7CitCODI4O0I4Mjg7MTEwNSAxMTY3IDExQUI7QjgyODsxMTA1IDExNjcgMTFBQjsKK0I4Mjk7QjgyOTsxMTA1IDExNjcgMTFBQztCODI5OzExMDUgMTE2NyAxMUFDOworQjgyQTtCODJBOzExMDUgMTE2NyAxMUFEO0I4MkE7MTEwNSAxMTY3IDExQUQ7CitCODJCO0I4MkI7MTEwNSAxMTY3IDExQUU7QjgyQjsxMTA1IDExNjcgMTFBRTsKK0I4MkM7QjgyQzsxMTA1IDExNjcgMTFBRjtCODJDOzExMDUgMTE2NyAxMUFGOworQjgyRDtCODJEOzExMDUgMTE2NyAxMUIwO0I4MkQ7MTEwNSAxMTY3IDExQjA7CitCODJFO0I4MkU7MTEwNSAxMTY3IDExQjE7QjgyRTsxMTA1IDExNjcgMTFCMTsKK0I4MkY7QjgyRjsxMTA1IDExNjcgMTFCMjtCODJGOzExMDUgMTE2NyAxMUIyOworQjgzMDtCODMwOzExMDUgMTE2NyAxMUIzO0I4MzA7MTEwNSAxMTY3IDExQjM7CitCODMxO0I4MzE7MTEwNSAxMTY3IDExQjQ7QjgzMTsxMTA1IDExNjcgMTFCNDsKK0I4MzI7QjgzMjsxMTA1IDExNjcgMTFCNTtCODMyOzExMDUgMTE2NyAxMUI1OworQjgzMztCODMzOzExMDUgMTE2NyAxMUI2O0I4MzM7MTEwNSAxMTY3IDExQjY7CitCODM0O0I4MzQ7MTEwNSAxMTY3IDExQjc7QjgzNDsxMTA1IDExNjcgMTFCNzsKK0I4MzU7QjgzNTsxMTA1IDExNjcgMTFCODtCODM1OzExMDUgMTE2NyAxMUI4OworQjgzNjtCODM2OzExMDUgMTE2NyAxMUI5O0I4MzY7MTEwNSAxMTY3IDExQjk7CitCODM3O0I4Mzc7MTEwNSAxMTY3IDExQkE7QjgzNzsxMTA1IDExNjcgMTFCQTsKK0I4Mzg7QjgzODsxMTA1IDExNjcgMTFCQjtCODM4OzExMDUgMTE2NyAxMUJCOworQjgzOTtCODM5OzExMDUgMTE2NyAxMUJDO0I4Mzk7MTEwNSAxMTY3IDExQkM7CitCODNBO0I4M0E7MTEwNSAxMTY3IDExQkQ7QjgzQTsxMTA1IDExNjcgMTFCRDsKK0I4M0I7QjgzQjsxMTA1IDExNjcgMTFCRTtCODNCOzExMDUgMTE2NyAxMUJFOworQjgzQztCODNDOzExMDUgMTE2NyAxMUJGO0I4M0M7MTEwNSAxMTY3IDExQkY7CitCODNEO0I4M0Q7MTEwNSAxMTY3IDExQzA7QjgzRDsxMTA1IDExNjcgMTFDMDsKK0I4M0U7QjgzRTsxMTA1IDExNjcgMTFDMTtCODNFOzExMDUgMTE2NyAxMUMxOworQjgzRjtCODNGOzExMDUgMTE2NyAxMUMyO0I4M0Y7MTEwNSAxMTY3IDExQzI7CitCODQwO0I4NDA7MTEwNSAxMTY4O0I4NDA7MTEwNSAxMTY4OworQjg0MTtCODQxOzExMDUgMTE2OCAxMUE4O0I4NDE7MTEwNSAxMTY4IDExQTg7CitCODQyO0I4NDI7MTEwNSAxMTY4IDExQTk7Qjg0MjsxMTA1IDExNjggMTFBOTsKK0I4NDM7Qjg0MzsxMTA1IDExNjggMTFBQTtCODQzOzExMDUgMTE2OCAxMUFBOworQjg0NDtCODQ0OzExMDUgMTE2OCAxMUFCO0I4NDQ7MTEwNSAxMTY4IDExQUI7CitCODQ1O0I4NDU7MTEwNSAxMTY4IDExQUM7Qjg0NTsxMTA1IDExNjggMTFBQzsKK0I4NDY7Qjg0NjsxMTA1IDExNjggMTFBRDtCODQ2OzExMDUgMTE2OCAxMUFEOworQjg0NztCODQ3OzExMDUgMTE2OCAxMUFFO0I4NDc7MTEwNSAxMTY4IDExQUU7CitCODQ4O0I4NDg7MTEwNSAxMTY4IDExQUY7Qjg0ODsxMTA1IDExNjggMTFBRjsKK0I4NDk7Qjg0OTsxMTA1IDExNjggMTFCMDtCODQ5OzExMDUgMTE2OCAxMUIwOworQjg0QTtCODRBOzExMDUgMTE2OCAxMUIxO0I4NEE7MTEwNSAxMTY4IDExQjE7CitCODRCO0I4NEI7MTEwNSAxMTY4IDExQjI7Qjg0QjsxMTA1IDExNjggMTFCMjsKK0I4NEM7Qjg0QzsxMTA1IDExNjggMTFCMztCODRDOzExMDUgMTE2OCAxMUIzOworQjg0RDtCODREOzExMDUgMTE2OCAxMUI0O0I4NEQ7MTEwNSAxMTY4IDExQjQ7CitCODRFO0I4NEU7MTEwNSAxMTY4IDExQjU7Qjg0RTsxMTA1IDExNjggMTFCNTsKK0I4NEY7Qjg0RjsxMTA1IDExNjggMTFCNjtCODRGOzExMDUgMTE2OCAxMUI2OworQjg1MDtCODUwOzExMDUgMTE2OCAxMUI3O0I4NTA7MTEwNSAxMTY4IDExQjc7CitCODUxO0I4NTE7MTEwNSAxMTY4IDExQjg7Qjg1MTsxMTA1IDExNjggMTFCODsKK0I4NTI7Qjg1MjsxMTA1IDExNjggMTFCOTtCODUyOzExMDUgMTE2OCAxMUI5OworQjg1MztCODUzOzExMDUgMTE2OCAxMUJBO0I4NTM7MTEwNSAxMTY4IDExQkE7CitCODU0O0I4NTQ7MTEwNSAxMTY4IDExQkI7Qjg1NDsxMTA1IDExNjggMTFCQjsKK0I4NTU7Qjg1NTsxMTA1IDExNjggMTFCQztCODU1OzExMDUgMTE2OCAxMUJDOworQjg1NjtCODU2OzExMDUgMTE2OCAxMUJEO0I4NTY7MTEwNSAxMTY4IDExQkQ7CitCODU3O0I4NTc7MTEwNSAxMTY4IDExQkU7Qjg1NzsxMTA1IDExNjggMTFCRTsKK0I4NTg7Qjg1ODsxMTA1IDExNjggMTFCRjtCODU4OzExMDUgMTE2OCAxMUJGOworQjg1OTtCODU5OzExMDUgMTE2OCAxMUMwO0I4NTk7MTEwNSAxMTY4IDExQzA7CitCODVBO0I4NUE7MTEwNSAxMTY4IDExQzE7Qjg1QTsxMTA1IDExNjggMTFDMTsKK0I4NUI7Qjg1QjsxMTA1IDExNjggMTFDMjtCODVCOzExMDUgMTE2OCAxMUMyOworQjg1QztCODVDOzExMDUgMTE2OTtCODVDOzExMDUgMTE2OTsKK0I4NUQ7Qjg1RDsxMTA1IDExNjkgMTFBODtCODVEOzExMDUgMTE2OSAxMUE4OworQjg1RTtCODVFOzExMDUgMTE2OSAxMUE5O0I4NUU7MTEwNSAxMTY5IDExQTk7CitCODVGO0I4NUY7MTEwNSAxMTY5IDExQUE7Qjg1RjsxMTA1IDExNjkgMTFBQTsKK0I4NjA7Qjg2MDsxMTA1IDExNjkgMTFBQjtCODYwOzExMDUgMTE2OSAxMUFCOworQjg2MTtCODYxOzExMDUgMTE2OSAxMUFDO0I4NjE7MTEwNSAxMTY5IDExQUM7CitCODYyO0I4NjI7MTEwNSAxMTY5IDExQUQ7Qjg2MjsxMTA1IDExNjkgMTFBRDsKK0I4NjM7Qjg2MzsxMTA1IDExNjkgMTFBRTtCODYzOzExMDUgMTE2OSAxMUFFOworQjg2NDtCODY0OzExMDUgMTE2OSAxMUFGO0I4NjQ7MTEwNSAxMTY5IDExQUY7CitCODY1O0I4NjU7MTEwNSAxMTY5IDExQjA7Qjg2NTsxMTA1IDExNjkgMTFCMDsKK0I4NjY7Qjg2NjsxMTA1IDExNjkgMTFCMTtCODY2OzExMDUgMTE2OSAxMUIxOworQjg2NztCODY3OzExMDUgMTE2OSAxMUIyO0I4Njc7MTEwNSAxMTY5IDExQjI7CitCODY4O0I4Njg7MTEwNSAxMTY5IDExQjM7Qjg2ODsxMTA1IDExNjkgMTFCMzsKK0I4Njk7Qjg2OTsxMTA1IDExNjkgMTFCNDtCODY5OzExMDUgMTE2OSAxMUI0OworQjg2QTtCODZBOzExMDUgMTE2OSAxMUI1O0I4NkE7MTEwNSAxMTY5IDExQjU7CitCODZCO0I4NkI7MTEwNSAxMTY5IDExQjY7Qjg2QjsxMTA1IDExNjkgMTFCNjsKK0I4NkM7Qjg2QzsxMTA1IDExNjkgMTFCNztCODZDOzExMDUgMTE2OSAxMUI3OworQjg2RDtCODZEOzExMDUgMTE2OSAxMUI4O0I4NkQ7MTEwNSAxMTY5IDExQjg7CitCODZFO0I4NkU7MTEwNSAxMTY5IDExQjk7Qjg2RTsxMTA1IDExNjkgMTFCOTsKK0I4NkY7Qjg2RjsxMTA1IDExNjkgMTFCQTtCODZGOzExMDUgMTE2OSAxMUJBOworQjg3MDtCODcwOzExMDUgMTE2OSAxMUJCO0I4NzA7MTEwNSAxMTY5IDExQkI7CitCODcxO0I4NzE7MTEwNSAxMTY5IDExQkM7Qjg3MTsxMTA1IDExNjkgMTFCQzsKK0I4NzI7Qjg3MjsxMTA1IDExNjkgMTFCRDtCODcyOzExMDUgMTE2OSAxMUJEOworQjg3MztCODczOzExMDUgMTE2OSAxMUJFO0I4NzM7MTEwNSAxMTY5IDExQkU7CitCODc0O0I4NzQ7MTEwNSAxMTY5IDExQkY7Qjg3NDsxMTA1IDExNjkgMTFCRjsKK0I4NzU7Qjg3NTsxMTA1IDExNjkgMTFDMDtCODc1OzExMDUgMTE2OSAxMUMwOworQjg3NjtCODc2OzExMDUgMTE2OSAxMUMxO0I4NzY7MTEwNSAxMTY5IDExQzE7CitCODc3O0I4Nzc7MTEwNSAxMTY5IDExQzI7Qjg3NzsxMTA1IDExNjkgMTFDMjsKK0I4Nzg7Qjg3ODsxMTA1IDExNkE7Qjg3ODsxMTA1IDExNkE7CitCODc5O0I4Nzk7MTEwNSAxMTZBIDExQTg7Qjg3OTsxMTA1IDExNkEgMTFBODsKK0I4N0E7Qjg3QTsxMTA1IDExNkEgMTFBOTtCODdBOzExMDUgMTE2QSAxMUE5OworQjg3QjtCODdCOzExMDUgMTE2QSAxMUFBO0I4N0I7MTEwNSAxMTZBIDExQUE7CitCODdDO0I4N0M7MTEwNSAxMTZBIDExQUI7Qjg3QzsxMTA1IDExNkEgMTFBQjsKK0I4N0Q7Qjg3RDsxMTA1IDExNkEgMTFBQztCODdEOzExMDUgMTE2QSAxMUFDOworQjg3RTtCODdFOzExMDUgMTE2QSAxMUFEO0I4N0U7MTEwNSAxMTZBIDExQUQ7CitCODdGO0I4N0Y7MTEwNSAxMTZBIDExQUU7Qjg3RjsxMTA1IDExNkEgMTFBRTsKK0I4ODA7Qjg4MDsxMTA1IDExNkEgMTFBRjtCODgwOzExMDUgMTE2QSAxMUFGOworQjg4MTtCODgxOzExMDUgMTE2QSAxMUIwO0I4ODE7MTEwNSAxMTZBIDExQjA7CitCODgyO0I4ODI7MTEwNSAxMTZBIDExQjE7Qjg4MjsxMTA1IDExNkEgMTFCMTsKK0I4ODM7Qjg4MzsxMTA1IDExNkEgMTFCMjtCODgzOzExMDUgMTE2QSAxMUIyOworQjg4NDtCODg0OzExMDUgMTE2QSAxMUIzO0I4ODQ7MTEwNSAxMTZBIDExQjM7CitCODg1O0I4ODU7MTEwNSAxMTZBIDExQjQ7Qjg4NTsxMTA1IDExNkEgMTFCNDsKK0I4ODY7Qjg4NjsxMTA1IDExNkEgMTFCNTtCODg2OzExMDUgMTE2QSAxMUI1OworQjg4NztCODg3OzExMDUgMTE2QSAxMUI2O0I4ODc7MTEwNSAxMTZBIDExQjY7CitCODg4O0I4ODg7MTEwNSAxMTZBIDExQjc7Qjg4ODsxMTA1IDExNkEgMTFCNzsKK0I4ODk7Qjg4OTsxMTA1IDExNkEgMTFCODtCODg5OzExMDUgMTE2QSAxMUI4OworQjg4QTtCODhBOzExMDUgMTE2QSAxMUI5O0I4OEE7MTEwNSAxMTZBIDExQjk7CitCODhCO0I4OEI7MTEwNSAxMTZBIDExQkE7Qjg4QjsxMTA1IDExNkEgMTFCQTsKK0I4OEM7Qjg4QzsxMTA1IDExNkEgMTFCQjtCODhDOzExMDUgMTE2QSAxMUJCOworQjg4RDtCODhEOzExMDUgMTE2QSAxMUJDO0I4OEQ7MTEwNSAxMTZBIDExQkM7CitCODhFO0I4OEU7MTEwNSAxMTZBIDExQkQ7Qjg4RTsxMTA1IDExNkEgMTFCRDsKK0I4OEY7Qjg4RjsxMTA1IDExNkEgMTFCRTtCODhGOzExMDUgMTE2QSAxMUJFOworQjg5MDtCODkwOzExMDUgMTE2QSAxMUJGO0I4OTA7MTEwNSAxMTZBIDExQkY7CitCODkxO0I4OTE7MTEwNSAxMTZBIDExQzA7Qjg5MTsxMTA1IDExNkEgMTFDMDsKK0I4OTI7Qjg5MjsxMTA1IDExNkEgMTFDMTtCODkyOzExMDUgMTE2QSAxMUMxOworQjg5MztCODkzOzExMDUgMTE2QSAxMUMyO0I4OTM7MTEwNSAxMTZBIDExQzI7CitCODk0O0I4OTQ7MTEwNSAxMTZCO0I4OTQ7MTEwNSAxMTZCOworQjg5NTtCODk1OzExMDUgMTE2QiAxMUE4O0I4OTU7MTEwNSAxMTZCIDExQTg7CitCODk2O0I4OTY7MTEwNSAxMTZCIDExQTk7Qjg5NjsxMTA1IDExNkIgMTFBOTsKK0I4OTc7Qjg5NzsxMTA1IDExNkIgMTFBQTtCODk3OzExMDUgMTE2QiAxMUFBOworQjg5ODtCODk4OzExMDUgMTE2QiAxMUFCO0I4OTg7MTEwNSAxMTZCIDExQUI7CitCODk5O0I4OTk7MTEwNSAxMTZCIDExQUM7Qjg5OTsxMTA1IDExNkIgMTFBQzsKK0I4OUE7Qjg5QTsxMTA1IDExNkIgMTFBRDtCODlBOzExMDUgMTE2QiAxMUFEOworQjg5QjtCODlCOzExMDUgMTE2QiAxMUFFO0I4OUI7MTEwNSAxMTZCIDExQUU7CitCODlDO0I4OUM7MTEwNSAxMTZCIDExQUY7Qjg5QzsxMTA1IDExNkIgMTFBRjsKK0I4OUQ7Qjg5RDsxMTA1IDExNkIgMTFCMDtCODlEOzExMDUgMTE2QiAxMUIwOworQjg5RTtCODlFOzExMDUgMTE2QiAxMUIxO0I4OUU7MTEwNSAxMTZCIDExQjE7CitCODlGO0I4OUY7MTEwNSAxMTZCIDExQjI7Qjg5RjsxMTA1IDExNkIgMTFCMjsKK0I4QTA7QjhBMDsxMTA1IDExNkIgMTFCMztCOEEwOzExMDUgMTE2QiAxMUIzOworQjhBMTtCOEExOzExMDUgMTE2QiAxMUI0O0I4QTE7MTEwNSAxMTZCIDExQjQ7CitCOEEyO0I4QTI7MTEwNSAxMTZCIDExQjU7QjhBMjsxMTA1IDExNkIgMTFCNTsKK0I4QTM7QjhBMzsxMTA1IDExNkIgMTFCNjtCOEEzOzExMDUgMTE2QiAxMUI2OworQjhBNDtCOEE0OzExMDUgMTE2QiAxMUI3O0I4QTQ7MTEwNSAxMTZCIDExQjc7CitCOEE1O0I4QTU7MTEwNSAxMTZCIDExQjg7QjhBNTsxMTA1IDExNkIgMTFCODsKK0I4QTY7QjhBNjsxMTA1IDExNkIgMTFCOTtCOEE2OzExMDUgMTE2QiAxMUI5OworQjhBNztCOEE3OzExMDUgMTE2QiAxMUJBO0I4QTc7MTEwNSAxMTZCIDExQkE7CitCOEE4O0I4QTg7MTEwNSAxMTZCIDExQkI7QjhBODsxMTA1IDExNkIgMTFCQjsKK0I4QTk7QjhBOTsxMTA1IDExNkIgMTFCQztCOEE5OzExMDUgMTE2QiAxMUJDOworQjhBQTtCOEFBOzExMDUgMTE2QiAxMUJEO0I4QUE7MTEwNSAxMTZCIDExQkQ7CitCOEFCO0I4QUI7MTEwNSAxMTZCIDExQkU7QjhBQjsxMTA1IDExNkIgMTFCRTsKK0I4QUM7QjhBQzsxMTA1IDExNkIgMTFCRjtCOEFDOzExMDUgMTE2QiAxMUJGOworQjhBRDtCOEFEOzExMDUgMTE2QiAxMUMwO0I4QUQ7MTEwNSAxMTZCIDExQzA7CitCOEFFO0I4QUU7MTEwNSAxMTZCIDExQzE7QjhBRTsxMTA1IDExNkIgMTFDMTsKK0I4QUY7QjhBRjsxMTA1IDExNkIgMTFDMjtCOEFGOzExMDUgMTE2QiAxMUMyOworQjhCMDtCOEIwOzExMDUgMTE2QztCOEIwOzExMDUgMTE2QzsKK0I4QjE7QjhCMTsxMTA1IDExNkMgMTFBODtCOEIxOzExMDUgMTE2QyAxMUE4OworQjhCMjtCOEIyOzExMDUgMTE2QyAxMUE5O0I4QjI7MTEwNSAxMTZDIDExQTk7CitCOEIzO0I4QjM7MTEwNSAxMTZDIDExQUE7QjhCMzsxMTA1IDExNkMgMTFBQTsKK0I4QjQ7QjhCNDsxMTA1IDExNkMgMTFBQjtCOEI0OzExMDUgMTE2QyAxMUFCOworQjhCNTtCOEI1OzExMDUgMTE2QyAxMUFDO0I4QjU7MTEwNSAxMTZDIDExQUM7CitCOEI2O0I4QjY7MTEwNSAxMTZDIDExQUQ7QjhCNjsxMTA1IDExNkMgMTFBRDsKK0I4Qjc7QjhCNzsxMTA1IDExNkMgMTFBRTtCOEI3OzExMDUgMTE2QyAxMUFFOworQjhCODtCOEI4OzExMDUgMTE2QyAxMUFGO0I4Qjg7MTEwNSAxMTZDIDExQUY7CitCOEI5O0I4Qjk7MTEwNSAxMTZDIDExQjA7QjhCOTsxMTA1IDExNkMgMTFCMDsKK0I4QkE7QjhCQTsxMTA1IDExNkMgMTFCMTtCOEJBOzExMDUgMTE2QyAxMUIxOworQjhCQjtCOEJCOzExMDUgMTE2QyAxMUIyO0I4QkI7MTEwNSAxMTZDIDExQjI7CitCOEJDO0I4QkM7MTEwNSAxMTZDIDExQjM7QjhCQzsxMTA1IDExNkMgMTFCMzsKK0I4QkQ7QjhCRDsxMTA1IDExNkMgMTFCNDtCOEJEOzExMDUgMTE2QyAxMUI0OworQjhCRTtCOEJFOzExMDUgMTE2QyAxMUI1O0I4QkU7MTEwNSAxMTZDIDExQjU7CitCOEJGO0I4QkY7MTEwNSAxMTZDIDExQjY7QjhCRjsxMTA1IDExNkMgMTFCNjsKK0I4QzA7QjhDMDsxMTA1IDExNkMgMTFCNztCOEMwOzExMDUgMTE2QyAxMUI3OworQjhDMTtCOEMxOzExMDUgMTE2QyAxMUI4O0I4QzE7MTEwNSAxMTZDIDExQjg7CitCOEMyO0I4QzI7MTEwNSAxMTZDIDExQjk7QjhDMjsxMTA1IDExNkMgMTFCOTsKK0I4QzM7QjhDMzsxMTA1IDExNkMgMTFCQTtCOEMzOzExMDUgMTE2QyAxMUJBOworQjhDNDtCOEM0OzExMDUgMTE2QyAxMUJCO0I4QzQ7MTEwNSAxMTZDIDExQkI7CitCOEM1O0I4QzU7MTEwNSAxMTZDIDExQkM7QjhDNTsxMTA1IDExNkMgMTFCQzsKK0I4QzY7QjhDNjsxMTA1IDExNkMgMTFCRDtCOEM2OzExMDUgMTE2QyAxMUJEOworQjhDNztCOEM3OzExMDUgMTE2QyAxMUJFO0I4Qzc7MTEwNSAxMTZDIDExQkU7CitCOEM4O0I4Qzg7MTEwNSAxMTZDIDExQkY7QjhDODsxMTA1IDExNkMgMTFCRjsKK0I4Qzk7QjhDOTsxMTA1IDExNkMgMTFDMDtCOEM5OzExMDUgMTE2QyAxMUMwOworQjhDQTtCOENBOzExMDUgMTE2QyAxMUMxO0I4Q0E7MTEwNSAxMTZDIDExQzE7CitCOENCO0I4Q0I7MTEwNSAxMTZDIDExQzI7QjhDQjsxMTA1IDExNkMgMTFDMjsKK0I4Q0M7QjhDQzsxMTA1IDExNkQ7QjhDQzsxMTA1IDExNkQ7CitCOENEO0I4Q0Q7MTEwNSAxMTZEIDExQTg7QjhDRDsxMTA1IDExNkQgMTFBODsKK0I4Q0U7QjhDRTsxMTA1IDExNkQgMTFBOTtCOENFOzExMDUgMTE2RCAxMUE5OworQjhDRjtCOENGOzExMDUgMTE2RCAxMUFBO0I4Q0Y7MTEwNSAxMTZEIDExQUE7CitCOEQwO0I4RDA7MTEwNSAxMTZEIDExQUI7QjhEMDsxMTA1IDExNkQgMTFBQjsKK0I4RDE7QjhEMTsxMTA1IDExNkQgMTFBQztCOEQxOzExMDUgMTE2RCAxMUFDOworQjhEMjtCOEQyOzExMDUgMTE2RCAxMUFEO0I4RDI7MTEwNSAxMTZEIDExQUQ7CitCOEQzO0I4RDM7MTEwNSAxMTZEIDExQUU7QjhEMzsxMTA1IDExNkQgMTFBRTsKK0I4RDQ7QjhENDsxMTA1IDExNkQgMTFBRjtCOEQ0OzExMDUgMTE2RCAxMUFGOworQjhENTtCOEQ1OzExMDUgMTE2RCAxMUIwO0I4RDU7MTEwNSAxMTZEIDExQjA7CitCOEQ2O0I4RDY7MTEwNSAxMTZEIDExQjE7QjhENjsxMTA1IDExNkQgMTFCMTsKK0I4RDc7QjhENzsxMTA1IDExNkQgMTFCMjtCOEQ3OzExMDUgMTE2RCAxMUIyOworQjhEODtCOEQ4OzExMDUgMTE2RCAxMUIzO0I4RDg7MTEwNSAxMTZEIDExQjM7CitCOEQ5O0I4RDk7MTEwNSAxMTZEIDExQjQ7QjhEOTsxMTA1IDExNkQgMTFCNDsKK0I4REE7QjhEQTsxMTA1IDExNkQgMTFCNTtCOERBOzExMDUgMTE2RCAxMUI1OworQjhEQjtCOERCOzExMDUgMTE2RCAxMUI2O0I4REI7MTEwNSAxMTZEIDExQjY7CitCOERDO0I4REM7MTEwNSAxMTZEIDExQjc7QjhEQzsxMTA1IDExNkQgMTFCNzsKK0I4REQ7QjhERDsxMTA1IDExNkQgMTFCODtCOEREOzExMDUgMTE2RCAxMUI4OworQjhERTtCOERFOzExMDUgMTE2RCAxMUI5O0I4REU7MTEwNSAxMTZEIDExQjk7CitCOERGO0I4REY7MTEwNSAxMTZEIDExQkE7QjhERjsxMTA1IDExNkQgMTFCQTsKK0I4RTA7QjhFMDsxMTA1IDExNkQgMTFCQjtCOEUwOzExMDUgMTE2RCAxMUJCOworQjhFMTtCOEUxOzExMDUgMTE2RCAxMUJDO0I4RTE7MTEwNSAxMTZEIDExQkM7CitCOEUyO0I4RTI7MTEwNSAxMTZEIDExQkQ7QjhFMjsxMTA1IDExNkQgMTFCRDsKK0I4RTM7QjhFMzsxMTA1IDExNkQgMTFCRTtCOEUzOzExMDUgMTE2RCAxMUJFOworQjhFNDtCOEU0OzExMDUgMTE2RCAxMUJGO0I4RTQ7MTEwNSAxMTZEIDExQkY7CitCOEU1O0I4RTU7MTEwNSAxMTZEIDExQzA7QjhFNTsxMTA1IDExNkQgMTFDMDsKK0I4RTY7QjhFNjsxMTA1IDExNkQgMTFDMTtCOEU2OzExMDUgMTE2RCAxMUMxOworQjhFNztCOEU3OzExMDUgMTE2RCAxMUMyO0I4RTc7MTEwNSAxMTZEIDExQzI7CitCOEU4O0I4RTg7MTEwNSAxMTZFO0I4RTg7MTEwNSAxMTZFOworQjhFOTtCOEU5OzExMDUgMTE2RSAxMUE4O0I4RTk7MTEwNSAxMTZFIDExQTg7CitCOEVBO0I4RUE7MTEwNSAxMTZFIDExQTk7QjhFQTsxMTA1IDExNkUgMTFBOTsKK0I4RUI7QjhFQjsxMTA1IDExNkUgMTFBQTtCOEVCOzExMDUgMTE2RSAxMUFBOworQjhFQztCOEVDOzExMDUgMTE2RSAxMUFCO0I4RUM7MTEwNSAxMTZFIDExQUI7CitCOEVEO0I4RUQ7MTEwNSAxMTZFIDExQUM7QjhFRDsxMTA1IDExNkUgMTFBQzsKK0I4RUU7QjhFRTsxMTA1IDExNkUgMTFBRDtCOEVFOzExMDUgMTE2RSAxMUFEOworQjhFRjtCOEVGOzExMDUgMTE2RSAxMUFFO0I4RUY7MTEwNSAxMTZFIDExQUU7CitCOEYwO0I4RjA7MTEwNSAxMTZFIDExQUY7QjhGMDsxMTA1IDExNkUgMTFBRjsKK0I4RjE7QjhGMTsxMTA1IDExNkUgMTFCMDtCOEYxOzExMDUgMTE2RSAxMUIwOworQjhGMjtCOEYyOzExMDUgMTE2RSAxMUIxO0I4RjI7MTEwNSAxMTZFIDExQjE7CitCOEYzO0I4RjM7MTEwNSAxMTZFIDExQjI7QjhGMzsxMTA1IDExNkUgMTFCMjsKK0I4RjQ7QjhGNDsxMTA1IDExNkUgMTFCMztCOEY0OzExMDUgMTE2RSAxMUIzOworQjhGNTtCOEY1OzExMDUgMTE2RSAxMUI0O0I4RjU7MTEwNSAxMTZFIDExQjQ7CitCOEY2O0I4RjY7MTEwNSAxMTZFIDExQjU7QjhGNjsxMTA1IDExNkUgMTFCNTsKK0I4Rjc7QjhGNzsxMTA1IDExNkUgMTFCNjtCOEY3OzExMDUgMTE2RSAxMUI2OworQjhGODtCOEY4OzExMDUgMTE2RSAxMUI3O0I4Rjg7MTEwNSAxMTZFIDExQjc7CitCOEY5O0I4Rjk7MTEwNSAxMTZFIDExQjg7QjhGOTsxMTA1IDExNkUgMTFCODsKK0I4RkE7QjhGQTsxMTA1IDExNkUgMTFCOTtCOEZBOzExMDUgMTE2RSAxMUI5OworQjhGQjtCOEZCOzExMDUgMTE2RSAxMUJBO0I4RkI7MTEwNSAxMTZFIDExQkE7CitCOEZDO0I4RkM7MTEwNSAxMTZFIDExQkI7QjhGQzsxMTA1IDExNkUgMTFCQjsKK0I4RkQ7QjhGRDsxMTA1IDExNkUgMTFCQztCOEZEOzExMDUgMTE2RSAxMUJDOworQjhGRTtCOEZFOzExMDUgMTE2RSAxMUJEO0I4RkU7MTEwNSAxMTZFIDExQkQ7CitCOEZGO0I4RkY7MTEwNSAxMTZFIDExQkU7QjhGRjsxMTA1IDExNkUgMTFCRTsKK0I5MDA7QjkwMDsxMTA1IDExNkUgMTFCRjtCOTAwOzExMDUgMTE2RSAxMUJGOworQjkwMTtCOTAxOzExMDUgMTE2RSAxMUMwO0I5MDE7MTEwNSAxMTZFIDExQzA7CitCOTAyO0I5MDI7MTEwNSAxMTZFIDExQzE7QjkwMjsxMTA1IDExNkUgMTFDMTsKK0I5MDM7QjkwMzsxMTA1IDExNkUgMTFDMjtCOTAzOzExMDUgMTE2RSAxMUMyOworQjkwNDtCOTA0OzExMDUgMTE2RjtCOTA0OzExMDUgMTE2RjsKK0I5MDU7QjkwNTsxMTA1IDExNkYgMTFBODtCOTA1OzExMDUgMTE2RiAxMUE4OworQjkwNjtCOTA2OzExMDUgMTE2RiAxMUE5O0I5MDY7MTEwNSAxMTZGIDExQTk7CitCOTA3O0I5MDc7MTEwNSAxMTZGIDExQUE7QjkwNzsxMTA1IDExNkYgMTFBQTsKK0I5MDg7QjkwODsxMTA1IDExNkYgMTFBQjtCOTA4OzExMDUgMTE2RiAxMUFCOworQjkwOTtCOTA5OzExMDUgMTE2RiAxMUFDO0I5MDk7MTEwNSAxMTZGIDExQUM7CitCOTBBO0I5MEE7MTEwNSAxMTZGIDExQUQ7QjkwQTsxMTA1IDExNkYgMTFBRDsKK0I5MEI7QjkwQjsxMTA1IDExNkYgMTFBRTtCOTBCOzExMDUgMTE2RiAxMUFFOworQjkwQztCOTBDOzExMDUgMTE2RiAxMUFGO0I5MEM7MTEwNSAxMTZGIDExQUY7CitCOTBEO0I5MEQ7MTEwNSAxMTZGIDExQjA7QjkwRDsxMTA1IDExNkYgMTFCMDsKK0I5MEU7QjkwRTsxMTA1IDExNkYgMTFCMTtCOTBFOzExMDUgMTE2RiAxMUIxOworQjkwRjtCOTBGOzExMDUgMTE2RiAxMUIyO0I5MEY7MTEwNSAxMTZGIDExQjI7CitCOTEwO0I5MTA7MTEwNSAxMTZGIDExQjM7QjkxMDsxMTA1IDExNkYgMTFCMzsKK0I5MTE7QjkxMTsxMTA1IDExNkYgMTFCNDtCOTExOzExMDUgMTE2RiAxMUI0OworQjkxMjtCOTEyOzExMDUgMTE2RiAxMUI1O0I5MTI7MTEwNSAxMTZGIDExQjU7CitCOTEzO0I5MTM7MTEwNSAxMTZGIDExQjY7QjkxMzsxMTA1IDExNkYgMTFCNjsKK0I5MTQ7QjkxNDsxMTA1IDExNkYgMTFCNztCOTE0OzExMDUgMTE2RiAxMUI3OworQjkxNTtCOTE1OzExMDUgMTE2RiAxMUI4O0I5MTU7MTEwNSAxMTZGIDExQjg7CitCOTE2O0I5MTY7MTEwNSAxMTZGIDExQjk7QjkxNjsxMTA1IDExNkYgMTFCOTsKK0I5MTc7QjkxNzsxMTA1IDExNkYgMTFCQTtCOTE3OzExMDUgMTE2RiAxMUJBOworQjkxODtCOTE4OzExMDUgMTE2RiAxMUJCO0I5MTg7MTEwNSAxMTZGIDExQkI7CitCOTE5O0I5MTk7MTEwNSAxMTZGIDExQkM7QjkxOTsxMTA1IDExNkYgMTFCQzsKK0I5MUE7QjkxQTsxMTA1IDExNkYgMTFCRDtCOTFBOzExMDUgMTE2RiAxMUJEOworQjkxQjtCOTFCOzExMDUgMTE2RiAxMUJFO0I5MUI7MTEwNSAxMTZGIDExQkU7CitCOTFDO0I5MUM7MTEwNSAxMTZGIDExQkY7QjkxQzsxMTA1IDExNkYgMTFCRjsKK0I5MUQ7QjkxRDsxMTA1IDExNkYgMTFDMDtCOTFEOzExMDUgMTE2RiAxMUMwOworQjkxRTtCOTFFOzExMDUgMTE2RiAxMUMxO0I5MUU7MTEwNSAxMTZGIDExQzE7CitCOTFGO0I5MUY7MTEwNSAxMTZGIDExQzI7QjkxRjsxMTA1IDExNkYgMTFDMjsKK0I5MjA7QjkyMDsxMTA1IDExNzA7QjkyMDsxMTA1IDExNzA7CitCOTIxO0I5MjE7MTEwNSAxMTcwIDExQTg7QjkyMTsxMTA1IDExNzAgMTFBODsKK0I5MjI7QjkyMjsxMTA1IDExNzAgMTFBOTtCOTIyOzExMDUgMTE3MCAxMUE5OworQjkyMztCOTIzOzExMDUgMTE3MCAxMUFBO0I5MjM7MTEwNSAxMTcwIDExQUE7CitCOTI0O0I5MjQ7MTEwNSAxMTcwIDExQUI7QjkyNDsxMTA1IDExNzAgMTFBQjsKK0I5MjU7QjkyNTsxMTA1IDExNzAgMTFBQztCOTI1OzExMDUgMTE3MCAxMUFDOworQjkyNjtCOTI2OzExMDUgMTE3MCAxMUFEO0I5MjY7MTEwNSAxMTcwIDExQUQ7CitCOTI3O0I5Mjc7MTEwNSAxMTcwIDExQUU7QjkyNzsxMTA1IDExNzAgMTFBRTsKK0I5Mjg7QjkyODsxMTA1IDExNzAgMTFBRjtCOTI4OzExMDUgMTE3MCAxMUFGOworQjkyOTtCOTI5OzExMDUgMTE3MCAxMUIwO0I5Mjk7MTEwNSAxMTcwIDExQjA7CitCOTJBO0I5MkE7MTEwNSAxMTcwIDExQjE7QjkyQTsxMTA1IDExNzAgMTFCMTsKK0I5MkI7QjkyQjsxMTA1IDExNzAgMTFCMjtCOTJCOzExMDUgMTE3MCAxMUIyOworQjkyQztCOTJDOzExMDUgMTE3MCAxMUIzO0I5MkM7MTEwNSAxMTcwIDExQjM7CitCOTJEO0I5MkQ7MTEwNSAxMTcwIDExQjQ7QjkyRDsxMTA1IDExNzAgMTFCNDsKK0I5MkU7QjkyRTsxMTA1IDExNzAgMTFCNTtCOTJFOzExMDUgMTE3MCAxMUI1OworQjkyRjtCOTJGOzExMDUgMTE3MCAxMUI2O0I5MkY7MTEwNSAxMTcwIDExQjY7CitCOTMwO0I5MzA7MTEwNSAxMTcwIDExQjc7QjkzMDsxMTA1IDExNzAgMTFCNzsKK0I5MzE7QjkzMTsxMTA1IDExNzAgMTFCODtCOTMxOzExMDUgMTE3MCAxMUI4OworQjkzMjtCOTMyOzExMDUgMTE3MCAxMUI5O0I5MzI7MTEwNSAxMTcwIDExQjk7CitCOTMzO0I5MzM7MTEwNSAxMTcwIDExQkE7QjkzMzsxMTA1IDExNzAgMTFCQTsKK0I5MzQ7QjkzNDsxMTA1IDExNzAgMTFCQjtCOTM0OzExMDUgMTE3MCAxMUJCOworQjkzNTtCOTM1OzExMDUgMTE3MCAxMUJDO0I5MzU7MTEwNSAxMTcwIDExQkM7CitCOTM2O0I5MzY7MTEwNSAxMTcwIDExQkQ7QjkzNjsxMTA1IDExNzAgMTFCRDsKK0I5Mzc7QjkzNzsxMTA1IDExNzAgMTFCRTtCOTM3OzExMDUgMTE3MCAxMUJFOworQjkzODtCOTM4OzExMDUgMTE3MCAxMUJGO0I5Mzg7MTEwNSAxMTcwIDExQkY7CitCOTM5O0I5Mzk7MTEwNSAxMTcwIDExQzA7QjkzOTsxMTA1IDExNzAgMTFDMDsKK0I5M0E7QjkzQTsxMTA1IDExNzAgMTFDMTtCOTNBOzExMDUgMTE3MCAxMUMxOworQjkzQjtCOTNCOzExMDUgMTE3MCAxMUMyO0I5M0I7MTEwNSAxMTcwIDExQzI7CitCOTNDO0I5M0M7MTEwNSAxMTcxO0I5M0M7MTEwNSAxMTcxOworQjkzRDtCOTNEOzExMDUgMTE3MSAxMUE4O0I5M0Q7MTEwNSAxMTcxIDExQTg7CitCOTNFO0I5M0U7MTEwNSAxMTcxIDExQTk7QjkzRTsxMTA1IDExNzEgMTFBOTsKK0I5M0Y7QjkzRjsxMTA1IDExNzEgMTFBQTtCOTNGOzExMDUgMTE3MSAxMUFBOworQjk0MDtCOTQwOzExMDUgMTE3MSAxMUFCO0I5NDA7MTEwNSAxMTcxIDExQUI7CitCOTQxO0I5NDE7MTEwNSAxMTcxIDExQUM7Qjk0MTsxMTA1IDExNzEgMTFBQzsKK0I5NDI7Qjk0MjsxMTA1IDExNzEgMTFBRDtCOTQyOzExMDUgMTE3MSAxMUFEOworQjk0MztCOTQzOzExMDUgMTE3MSAxMUFFO0I5NDM7MTEwNSAxMTcxIDExQUU7CitCOTQ0O0I5NDQ7MTEwNSAxMTcxIDExQUY7Qjk0NDsxMTA1IDExNzEgMTFBRjsKK0I5NDU7Qjk0NTsxMTA1IDExNzEgMTFCMDtCOTQ1OzExMDUgMTE3MSAxMUIwOworQjk0NjtCOTQ2OzExMDUgMTE3MSAxMUIxO0I5NDY7MTEwNSAxMTcxIDExQjE7CitCOTQ3O0I5NDc7MTEwNSAxMTcxIDExQjI7Qjk0NzsxMTA1IDExNzEgMTFCMjsKK0I5NDg7Qjk0ODsxMTA1IDExNzEgMTFCMztCOTQ4OzExMDUgMTE3MSAxMUIzOworQjk0OTtCOTQ5OzExMDUgMTE3MSAxMUI0O0I5NDk7MTEwNSAxMTcxIDExQjQ7CitCOTRBO0I5NEE7MTEwNSAxMTcxIDExQjU7Qjk0QTsxMTA1IDExNzEgMTFCNTsKK0I5NEI7Qjk0QjsxMTA1IDExNzEgMTFCNjtCOTRCOzExMDUgMTE3MSAxMUI2OworQjk0QztCOTRDOzExMDUgMTE3MSAxMUI3O0I5NEM7MTEwNSAxMTcxIDExQjc7CitCOTREO0I5NEQ7MTEwNSAxMTcxIDExQjg7Qjk0RDsxMTA1IDExNzEgMTFCODsKK0I5NEU7Qjk0RTsxMTA1IDExNzEgMTFCOTtCOTRFOzExMDUgMTE3MSAxMUI5OworQjk0RjtCOTRGOzExMDUgMTE3MSAxMUJBO0I5NEY7MTEwNSAxMTcxIDExQkE7CitCOTUwO0I5NTA7MTEwNSAxMTcxIDExQkI7Qjk1MDsxMTA1IDExNzEgMTFCQjsKK0I5NTE7Qjk1MTsxMTA1IDExNzEgMTFCQztCOTUxOzExMDUgMTE3MSAxMUJDOworQjk1MjtCOTUyOzExMDUgMTE3MSAxMUJEO0I5NTI7MTEwNSAxMTcxIDExQkQ7CitCOTUzO0I5NTM7MTEwNSAxMTcxIDExQkU7Qjk1MzsxMTA1IDExNzEgMTFCRTsKK0I5NTQ7Qjk1NDsxMTA1IDExNzEgMTFCRjtCOTU0OzExMDUgMTE3MSAxMUJGOworQjk1NTtCOTU1OzExMDUgMTE3MSAxMUMwO0I5NTU7MTEwNSAxMTcxIDExQzA7CitCOTU2O0I5NTY7MTEwNSAxMTcxIDExQzE7Qjk1NjsxMTA1IDExNzEgMTFDMTsKK0I5NTc7Qjk1NzsxMTA1IDExNzEgMTFDMjtCOTU3OzExMDUgMTE3MSAxMUMyOworQjk1ODtCOTU4OzExMDUgMTE3MjtCOTU4OzExMDUgMTE3MjsKK0I5NTk7Qjk1OTsxMTA1IDExNzIgMTFBODtCOTU5OzExMDUgMTE3MiAxMUE4OworQjk1QTtCOTVBOzExMDUgMTE3MiAxMUE5O0I5NUE7MTEwNSAxMTcyIDExQTk7CitCOTVCO0I5NUI7MTEwNSAxMTcyIDExQUE7Qjk1QjsxMTA1IDExNzIgMTFBQTsKK0I5NUM7Qjk1QzsxMTA1IDExNzIgMTFBQjtCOTVDOzExMDUgMTE3MiAxMUFCOworQjk1RDtCOTVEOzExMDUgMTE3MiAxMUFDO0I5NUQ7MTEwNSAxMTcyIDExQUM7CitCOTVFO0I5NUU7MTEwNSAxMTcyIDExQUQ7Qjk1RTsxMTA1IDExNzIgMTFBRDsKK0I5NUY7Qjk1RjsxMTA1IDExNzIgMTFBRTtCOTVGOzExMDUgMTE3MiAxMUFFOworQjk2MDtCOTYwOzExMDUgMTE3MiAxMUFGO0I5NjA7MTEwNSAxMTcyIDExQUY7CitCOTYxO0I5NjE7MTEwNSAxMTcyIDExQjA7Qjk2MTsxMTA1IDExNzIgMTFCMDsKK0I5NjI7Qjk2MjsxMTA1IDExNzIgMTFCMTtCOTYyOzExMDUgMTE3MiAxMUIxOworQjk2MztCOTYzOzExMDUgMTE3MiAxMUIyO0I5NjM7MTEwNSAxMTcyIDExQjI7CitCOTY0O0I5NjQ7MTEwNSAxMTcyIDExQjM7Qjk2NDsxMTA1IDExNzIgMTFCMzsKK0I5NjU7Qjk2NTsxMTA1IDExNzIgMTFCNDtCOTY1OzExMDUgMTE3MiAxMUI0OworQjk2NjtCOTY2OzExMDUgMTE3MiAxMUI1O0I5NjY7MTEwNSAxMTcyIDExQjU7CitCOTY3O0I5Njc7MTEwNSAxMTcyIDExQjY7Qjk2NzsxMTA1IDExNzIgMTFCNjsKK0I5Njg7Qjk2ODsxMTA1IDExNzIgMTFCNztCOTY4OzExMDUgMTE3MiAxMUI3OworQjk2OTtCOTY5OzExMDUgMTE3MiAxMUI4O0I5Njk7MTEwNSAxMTcyIDExQjg7CitCOTZBO0I5NkE7MTEwNSAxMTcyIDExQjk7Qjk2QTsxMTA1IDExNzIgMTFCOTsKK0I5NkI7Qjk2QjsxMTA1IDExNzIgMTFCQTtCOTZCOzExMDUgMTE3MiAxMUJBOworQjk2QztCOTZDOzExMDUgMTE3MiAxMUJCO0I5NkM7MTEwNSAxMTcyIDExQkI7CitCOTZEO0I5NkQ7MTEwNSAxMTcyIDExQkM7Qjk2RDsxMTA1IDExNzIgMTFCQzsKK0I5NkU7Qjk2RTsxMTA1IDExNzIgMTFCRDtCOTZFOzExMDUgMTE3MiAxMUJEOworQjk2RjtCOTZGOzExMDUgMTE3MiAxMUJFO0I5NkY7MTEwNSAxMTcyIDExQkU7CitCOTcwO0I5NzA7MTEwNSAxMTcyIDExQkY7Qjk3MDsxMTA1IDExNzIgMTFCRjsKK0I5NzE7Qjk3MTsxMTA1IDExNzIgMTFDMDtCOTcxOzExMDUgMTE3MiAxMUMwOworQjk3MjtCOTcyOzExMDUgMTE3MiAxMUMxO0I5NzI7MTEwNSAxMTcyIDExQzE7CitCOTczO0I5NzM7MTEwNSAxMTcyIDExQzI7Qjk3MzsxMTA1IDExNzIgMTFDMjsKK0I5NzQ7Qjk3NDsxMTA1IDExNzM7Qjk3NDsxMTA1IDExNzM7CitCOTc1O0I5NzU7MTEwNSAxMTczIDExQTg7Qjk3NTsxMTA1IDExNzMgMTFBODsKK0I5NzY7Qjk3NjsxMTA1IDExNzMgMTFBOTtCOTc2OzExMDUgMTE3MyAxMUE5OworQjk3NztCOTc3OzExMDUgMTE3MyAxMUFBO0I5Nzc7MTEwNSAxMTczIDExQUE7CitCOTc4O0I5Nzg7MTEwNSAxMTczIDExQUI7Qjk3ODsxMTA1IDExNzMgMTFBQjsKK0I5Nzk7Qjk3OTsxMTA1IDExNzMgMTFBQztCOTc5OzExMDUgMTE3MyAxMUFDOworQjk3QTtCOTdBOzExMDUgMTE3MyAxMUFEO0I5N0E7MTEwNSAxMTczIDExQUQ7CitCOTdCO0I5N0I7MTEwNSAxMTczIDExQUU7Qjk3QjsxMTA1IDExNzMgMTFBRTsKK0I5N0M7Qjk3QzsxMTA1IDExNzMgMTFBRjtCOTdDOzExMDUgMTE3MyAxMUFGOworQjk3RDtCOTdEOzExMDUgMTE3MyAxMUIwO0I5N0Q7MTEwNSAxMTczIDExQjA7CitCOTdFO0I5N0U7MTEwNSAxMTczIDExQjE7Qjk3RTsxMTA1IDExNzMgMTFCMTsKK0I5N0Y7Qjk3RjsxMTA1IDExNzMgMTFCMjtCOTdGOzExMDUgMTE3MyAxMUIyOworQjk4MDtCOTgwOzExMDUgMTE3MyAxMUIzO0I5ODA7MTEwNSAxMTczIDExQjM7CitCOTgxO0I5ODE7MTEwNSAxMTczIDExQjQ7Qjk4MTsxMTA1IDExNzMgMTFCNDsKK0I5ODI7Qjk4MjsxMTA1IDExNzMgMTFCNTtCOTgyOzExMDUgMTE3MyAxMUI1OworQjk4MztCOTgzOzExMDUgMTE3MyAxMUI2O0I5ODM7MTEwNSAxMTczIDExQjY7CitCOTg0O0I5ODQ7MTEwNSAxMTczIDExQjc7Qjk4NDsxMTA1IDExNzMgMTFCNzsKK0I5ODU7Qjk4NTsxMTA1IDExNzMgMTFCODtCOTg1OzExMDUgMTE3MyAxMUI4OworQjk4NjtCOTg2OzExMDUgMTE3MyAxMUI5O0I5ODY7MTEwNSAxMTczIDExQjk7CitCOTg3O0I5ODc7MTEwNSAxMTczIDExQkE7Qjk4NzsxMTA1IDExNzMgMTFCQTsKK0I5ODg7Qjk4ODsxMTA1IDExNzMgMTFCQjtCOTg4OzExMDUgMTE3MyAxMUJCOworQjk4OTtCOTg5OzExMDUgMTE3MyAxMUJDO0I5ODk7MTEwNSAxMTczIDExQkM7CitCOThBO0I5OEE7MTEwNSAxMTczIDExQkQ7Qjk4QTsxMTA1IDExNzMgMTFCRDsKK0I5OEI7Qjk4QjsxMTA1IDExNzMgMTFCRTtCOThCOzExMDUgMTE3MyAxMUJFOworQjk4QztCOThDOzExMDUgMTE3MyAxMUJGO0I5OEM7MTEwNSAxMTczIDExQkY7CitCOThEO0I5OEQ7MTEwNSAxMTczIDExQzA7Qjk4RDsxMTA1IDExNzMgMTFDMDsKK0I5OEU7Qjk4RTsxMTA1IDExNzMgMTFDMTtCOThFOzExMDUgMTE3MyAxMUMxOworQjk4RjtCOThGOzExMDUgMTE3MyAxMUMyO0I5OEY7MTEwNSAxMTczIDExQzI7CitCOTkwO0I5OTA7MTEwNSAxMTc0O0I5OTA7MTEwNSAxMTc0OworQjk5MTtCOTkxOzExMDUgMTE3NCAxMUE4O0I5OTE7MTEwNSAxMTc0IDExQTg7CitCOTkyO0I5OTI7MTEwNSAxMTc0IDExQTk7Qjk5MjsxMTA1IDExNzQgMTFBOTsKK0I5OTM7Qjk5MzsxMTA1IDExNzQgMTFBQTtCOTkzOzExMDUgMTE3NCAxMUFBOworQjk5NDtCOTk0OzExMDUgMTE3NCAxMUFCO0I5OTQ7MTEwNSAxMTc0IDExQUI7CitCOTk1O0I5OTU7MTEwNSAxMTc0IDExQUM7Qjk5NTsxMTA1IDExNzQgMTFBQzsKK0I5OTY7Qjk5NjsxMTA1IDExNzQgMTFBRDtCOTk2OzExMDUgMTE3NCAxMUFEOworQjk5NztCOTk3OzExMDUgMTE3NCAxMUFFO0I5OTc7MTEwNSAxMTc0IDExQUU7CitCOTk4O0I5OTg7MTEwNSAxMTc0IDExQUY7Qjk5ODsxMTA1IDExNzQgMTFBRjsKK0I5OTk7Qjk5OTsxMTA1IDExNzQgMTFCMDtCOTk5OzExMDUgMTE3NCAxMUIwOworQjk5QTtCOTlBOzExMDUgMTE3NCAxMUIxO0I5OUE7MTEwNSAxMTc0IDExQjE7CitCOTlCO0I5OUI7MTEwNSAxMTc0IDExQjI7Qjk5QjsxMTA1IDExNzQgMTFCMjsKK0I5OUM7Qjk5QzsxMTA1IDExNzQgMTFCMztCOTlDOzExMDUgMTE3NCAxMUIzOworQjk5RDtCOTlEOzExMDUgMTE3NCAxMUI0O0I5OUQ7MTEwNSAxMTc0IDExQjQ7CitCOTlFO0I5OUU7MTEwNSAxMTc0IDExQjU7Qjk5RTsxMTA1IDExNzQgMTFCNTsKK0I5OUY7Qjk5RjsxMTA1IDExNzQgMTFCNjtCOTlGOzExMDUgMTE3NCAxMUI2OworQjlBMDtCOUEwOzExMDUgMTE3NCAxMUI3O0I5QTA7MTEwNSAxMTc0IDExQjc7CitCOUExO0I5QTE7MTEwNSAxMTc0IDExQjg7QjlBMTsxMTA1IDExNzQgMTFCODsKK0I5QTI7QjlBMjsxMTA1IDExNzQgMTFCOTtCOUEyOzExMDUgMTE3NCAxMUI5OworQjlBMztCOUEzOzExMDUgMTE3NCAxMUJBO0I5QTM7MTEwNSAxMTc0IDExQkE7CitCOUE0O0I5QTQ7MTEwNSAxMTc0IDExQkI7QjlBNDsxMTA1IDExNzQgMTFCQjsKK0I5QTU7QjlBNTsxMTA1IDExNzQgMTFCQztCOUE1OzExMDUgMTE3NCAxMUJDOworQjlBNjtCOUE2OzExMDUgMTE3NCAxMUJEO0I5QTY7MTEwNSAxMTc0IDExQkQ7CitCOUE3O0I5QTc7MTEwNSAxMTc0IDExQkU7QjlBNzsxMTA1IDExNzQgMTFCRTsKK0I5QTg7QjlBODsxMTA1IDExNzQgMTFCRjtCOUE4OzExMDUgMTE3NCAxMUJGOworQjlBOTtCOUE5OzExMDUgMTE3NCAxMUMwO0I5QTk7MTEwNSAxMTc0IDExQzA7CitCOUFBO0I5QUE7MTEwNSAxMTc0IDExQzE7QjlBQTsxMTA1IDExNzQgMTFDMTsKK0I5QUI7QjlBQjsxMTA1IDExNzQgMTFDMjtCOUFCOzExMDUgMTE3NCAxMUMyOworQjlBQztCOUFDOzExMDUgMTE3NTtCOUFDOzExMDUgMTE3NTsKK0I5QUQ7QjlBRDsxMTA1IDExNzUgMTFBODtCOUFEOzExMDUgMTE3NSAxMUE4OworQjlBRTtCOUFFOzExMDUgMTE3NSAxMUE5O0I5QUU7MTEwNSAxMTc1IDExQTk7CitCOUFGO0I5QUY7MTEwNSAxMTc1IDExQUE7QjlBRjsxMTA1IDExNzUgMTFBQTsKK0I5QjA7QjlCMDsxMTA1IDExNzUgMTFBQjtCOUIwOzExMDUgMTE3NSAxMUFCOworQjlCMTtCOUIxOzExMDUgMTE3NSAxMUFDO0I5QjE7MTEwNSAxMTc1IDExQUM7CitCOUIyO0I5QjI7MTEwNSAxMTc1IDExQUQ7QjlCMjsxMTA1IDExNzUgMTFBRDsKK0I5QjM7QjlCMzsxMTA1IDExNzUgMTFBRTtCOUIzOzExMDUgMTE3NSAxMUFFOworQjlCNDtCOUI0OzExMDUgMTE3NSAxMUFGO0I5QjQ7MTEwNSAxMTc1IDExQUY7CitCOUI1O0I5QjU7MTEwNSAxMTc1IDExQjA7QjlCNTsxMTA1IDExNzUgMTFCMDsKK0I5QjY7QjlCNjsxMTA1IDExNzUgMTFCMTtCOUI2OzExMDUgMTE3NSAxMUIxOworQjlCNztCOUI3OzExMDUgMTE3NSAxMUIyO0I5Qjc7MTEwNSAxMTc1IDExQjI7CitCOUI4O0I5Qjg7MTEwNSAxMTc1IDExQjM7QjlCODsxMTA1IDExNzUgMTFCMzsKK0I5Qjk7QjlCOTsxMTA1IDExNzUgMTFCNDtCOUI5OzExMDUgMTE3NSAxMUI0OworQjlCQTtCOUJBOzExMDUgMTE3NSAxMUI1O0I5QkE7MTEwNSAxMTc1IDExQjU7CitCOUJCO0I5QkI7MTEwNSAxMTc1IDExQjY7QjlCQjsxMTA1IDExNzUgMTFCNjsKK0I5QkM7QjlCQzsxMTA1IDExNzUgMTFCNztCOUJDOzExMDUgMTE3NSAxMUI3OworQjlCRDtCOUJEOzExMDUgMTE3NSAxMUI4O0I5QkQ7MTEwNSAxMTc1IDExQjg7CitCOUJFO0I5QkU7MTEwNSAxMTc1IDExQjk7QjlCRTsxMTA1IDExNzUgMTFCOTsKK0I5QkY7QjlCRjsxMTA1IDExNzUgMTFCQTtCOUJGOzExMDUgMTE3NSAxMUJBOworQjlDMDtCOUMwOzExMDUgMTE3NSAxMUJCO0I5QzA7MTEwNSAxMTc1IDExQkI7CitCOUMxO0I5QzE7MTEwNSAxMTc1IDExQkM7QjlDMTsxMTA1IDExNzUgMTFCQzsKK0I5QzI7QjlDMjsxMTA1IDExNzUgMTFCRDtCOUMyOzExMDUgMTE3NSAxMUJEOworQjlDMztCOUMzOzExMDUgMTE3NSAxMUJFO0I5QzM7MTEwNSAxMTc1IDExQkU7CitCOUM0O0I5QzQ7MTEwNSAxMTc1IDExQkY7QjlDNDsxMTA1IDExNzUgMTFCRjsKK0I5QzU7QjlDNTsxMTA1IDExNzUgMTFDMDtCOUM1OzExMDUgMTE3NSAxMUMwOworQjlDNjtCOUM2OzExMDUgMTE3NSAxMUMxO0I5QzY7MTEwNSAxMTc1IDExQzE7CitCOUM3O0I5Qzc7MTEwNSAxMTc1IDExQzI7QjlDNzsxMTA1IDExNzUgMTFDMjsKK0I5Qzg7QjlDODsxMTA2IDExNjE7QjlDODsxMTA2IDExNjE7CitCOUM5O0I5Qzk7MTEwNiAxMTYxIDExQTg7QjlDOTsxMTA2IDExNjEgMTFBODsKK0I5Q0E7QjlDQTsxMTA2IDExNjEgMTFBOTtCOUNBOzExMDYgMTE2MSAxMUE5OworQjlDQjtCOUNCOzExMDYgMTE2MSAxMUFBO0I5Q0I7MTEwNiAxMTYxIDExQUE7CitCOUNDO0I5Q0M7MTEwNiAxMTYxIDExQUI7QjlDQzsxMTA2IDExNjEgMTFBQjsKK0I5Q0Q7QjlDRDsxMTA2IDExNjEgMTFBQztCOUNEOzExMDYgMTE2MSAxMUFDOworQjlDRTtCOUNFOzExMDYgMTE2MSAxMUFEO0I5Q0U7MTEwNiAxMTYxIDExQUQ7CitCOUNGO0I5Q0Y7MTEwNiAxMTYxIDExQUU7QjlDRjsxMTA2IDExNjEgMTFBRTsKK0I5RDA7QjlEMDsxMTA2IDExNjEgMTFBRjtCOUQwOzExMDYgMTE2MSAxMUFGOworQjlEMTtCOUQxOzExMDYgMTE2MSAxMUIwO0I5RDE7MTEwNiAxMTYxIDExQjA7CitCOUQyO0I5RDI7MTEwNiAxMTYxIDExQjE7QjlEMjsxMTA2IDExNjEgMTFCMTsKK0I5RDM7QjlEMzsxMTA2IDExNjEgMTFCMjtCOUQzOzExMDYgMTE2MSAxMUIyOworQjlENDtCOUQ0OzExMDYgMTE2MSAxMUIzO0I5RDQ7MTEwNiAxMTYxIDExQjM7CitCOUQ1O0I5RDU7MTEwNiAxMTYxIDExQjQ7QjlENTsxMTA2IDExNjEgMTFCNDsKK0I5RDY7QjlENjsxMTA2IDExNjEgMTFCNTtCOUQ2OzExMDYgMTE2MSAxMUI1OworQjlENztCOUQ3OzExMDYgMTE2MSAxMUI2O0I5RDc7MTEwNiAxMTYxIDExQjY7CitCOUQ4O0I5RDg7MTEwNiAxMTYxIDExQjc7QjlEODsxMTA2IDExNjEgMTFCNzsKK0I5RDk7QjlEOTsxMTA2IDExNjEgMTFCODtCOUQ5OzExMDYgMTE2MSAxMUI4OworQjlEQTtCOURBOzExMDYgMTE2MSAxMUI5O0I5REE7MTEwNiAxMTYxIDExQjk7CitCOURCO0I5REI7MTEwNiAxMTYxIDExQkE7QjlEQjsxMTA2IDExNjEgMTFCQTsKK0I5REM7QjlEQzsxMTA2IDExNjEgMTFCQjtCOURDOzExMDYgMTE2MSAxMUJCOworQjlERDtCOUREOzExMDYgMTE2MSAxMUJDO0I5REQ7MTEwNiAxMTYxIDExQkM7CitCOURFO0I5REU7MTEwNiAxMTYxIDExQkQ7QjlERTsxMTA2IDExNjEgMTFCRDsKK0I5REY7QjlERjsxMTA2IDExNjEgMTFCRTtCOURGOzExMDYgMTE2MSAxMUJFOworQjlFMDtCOUUwOzExMDYgMTE2MSAxMUJGO0I5RTA7MTEwNiAxMTYxIDExQkY7CitCOUUxO0I5RTE7MTEwNiAxMTYxIDExQzA7QjlFMTsxMTA2IDExNjEgMTFDMDsKK0I5RTI7QjlFMjsxMTA2IDExNjEgMTFDMTtCOUUyOzExMDYgMTE2MSAxMUMxOworQjlFMztCOUUzOzExMDYgMTE2MSAxMUMyO0I5RTM7MTEwNiAxMTYxIDExQzI7CitCOUU0O0I5RTQ7MTEwNiAxMTYyO0I5RTQ7MTEwNiAxMTYyOworQjlFNTtCOUU1OzExMDYgMTE2MiAxMUE4O0I5RTU7MTEwNiAxMTYyIDExQTg7CitCOUU2O0I5RTY7MTEwNiAxMTYyIDExQTk7QjlFNjsxMTA2IDExNjIgMTFBOTsKK0I5RTc7QjlFNzsxMTA2IDExNjIgMTFBQTtCOUU3OzExMDYgMTE2MiAxMUFBOworQjlFODtCOUU4OzExMDYgMTE2MiAxMUFCO0I5RTg7MTEwNiAxMTYyIDExQUI7CitCOUU5O0I5RTk7MTEwNiAxMTYyIDExQUM7QjlFOTsxMTA2IDExNjIgMTFBQzsKK0I5RUE7QjlFQTsxMTA2IDExNjIgMTFBRDtCOUVBOzExMDYgMTE2MiAxMUFEOworQjlFQjtCOUVCOzExMDYgMTE2MiAxMUFFO0I5RUI7MTEwNiAxMTYyIDExQUU7CitCOUVDO0I5RUM7MTEwNiAxMTYyIDExQUY7QjlFQzsxMTA2IDExNjIgMTFBRjsKK0I5RUQ7QjlFRDsxMTA2IDExNjIgMTFCMDtCOUVEOzExMDYgMTE2MiAxMUIwOworQjlFRTtCOUVFOzExMDYgMTE2MiAxMUIxO0I5RUU7MTEwNiAxMTYyIDExQjE7CitCOUVGO0I5RUY7MTEwNiAxMTYyIDExQjI7QjlFRjsxMTA2IDExNjIgMTFCMjsKK0I5RjA7QjlGMDsxMTA2IDExNjIgMTFCMztCOUYwOzExMDYgMTE2MiAxMUIzOworQjlGMTtCOUYxOzExMDYgMTE2MiAxMUI0O0I5RjE7MTEwNiAxMTYyIDExQjQ7CitCOUYyO0I5RjI7MTEwNiAxMTYyIDExQjU7QjlGMjsxMTA2IDExNjIgMTFCNTsKK0I5RjM7QjlGMzsxMTA2IDExNjIgMTFCNjtCOUYzOzExMDYgMTE2MiAxMUI2OworQjlGNDtCOUY0OzExMDYgMTE2MiAxMUI3O0I5RjQ7MTEwNiAxMTYyIDExQjc7CitCOUY1O0I5RjU7MTEwNiAxMTYyIDExQjg7QjlGNTsxMTA2IDExNjIgMTFCODsKK0I5RjY7QjlGNjsxMTA2IDExNjIgMTFCOTtCOUY2OzExMDYgMTE2MiAxMUI5OworQjlGNztCOUY3OzExMDYgMTE2MiAxMUJBO0I5Rjc7MTEwNiAxMTYyIDExQkE7CitCOUY4O0I5Rjg7MTEwNiAxMTYyIDExQkI7QjlGODsxMTA2IDExNjIgMTFCQjsKK0I5Rjk7QjlGOTsxMTA2IDExNjIgMTFCQztCOUY5OzExMDYgMTE2MiAxMUJDOworQjlGQTtCOUZBOzExMDYgMTE2MiAxMUJEO0I5RkE7MTEwNiAxMTYyIDExQkQ7CitCOUZCO0I5RkI7MTEwNiAxMTYyIDExQkU7QjlGQjsxMTA2IDExNjIgMTFCRTsKK0I5RkM7QjlGQzsxMTA2IDExNjIgMTFCRjtCOUZDOzExMDYgMTE2MiAxMUJGOworQjlGRDtCOUZEOzExMDYgMTE2MiAxMUMwO0I5RkQ7MTEwNiAxMTYyIDExQzA7CitCOUZFO0I5RkU7MTEwNiAxMTYyIDExQzE7QjlGRTsxMTA2IDExNjIgMTFDMTsKK0I5RkY7QjlGRjsxMTA2IDExNjIgMTFDMjtCOUZGOzExMDYgMTE2MiAxMUMyOworQkEwMDtCQTAwOzExMDYgMTE2MztCQTAwOzExMDYgMTE2MzsKK0JBMDE7QkEwMTsxMTA2IDExNjMgMTFBODtCQTAxOzExMDYgMTE2MyAxMUE4OworQkEwMjtCQTAyOzExMDYgMTE2MyAxMUE5O0JBMDI7MTEwNiAxMTYzIDExQTk7CitCQTAzO0JBMDM7MTEwNiAxMTYzIDExQUE7QkEwMzsxMTA2IDExNjMgMTFBQTsKK0JBMDQ7QkEwNDsxMTA2IDExNjMgMTFBQjtCQTA0OzExMDYgMTE2MyAxMUFCOworQkEwNTtCQTA1OzExMDYgMTE2MyAxMUFDO0JBMDU7MTEwNiAxMTYzIDExQUM7CitCQTA2O0JBMDY7MTEwNiAxMTYzIDExQUQ7QkEwNjsxMTA2IDExNjMgMTFBRDsKK0JBMDc7QkEwNzsxMTA2IDExNjMgMTFBRTtCQTA3OzExMDYgMTE2MyAxMUFFOworQkEwODtCQTA4OzExMDYgMTE2MyAxMUFGO0JBMDg7MTEwNiAxMTYzIDExQUY7CitCQTA5O0JBMDk7MTEwNiAxMTYzIDExQjA7QkEwOTsxMTA2IDExNjMgMTFCMDsKK0JBMEE7QkEwQTsxMTA2IDExNjMgMTFCMTtCQTBBOzExMDYgMTE2MyAxMUIxOworQkEwQjtCQTBCOzExMDYgMTE2MyAxMUIyO0JBMEI7MTEwNiAxMTYzIDExQjI7CitCQTBDO0JBMEM7MTEwNiAxMTYzIDExQjM7QkEwQzsxMTA2IDExNjMgMTFCMzsKK0JBMEQ7QkEwRDsxMTA2IDExNjMgMTFCNDtCQTBEOzExMDYgMTE2MyAxMUI0OworQkEwRTtCQTBFOzExMDYgMTE2MyAxMUI1O0JBMEU7MTEwNiAxMTYzIDExQjU7CitCQTBGO0JBMEY7MTEwNiAxMTYzIDExQjY7QkEwRjsxMTA2IDExNjMgMTFCNjsKK0JBMTA7QkExMDsxMTA2IDExNjMgMTFCNztCQTEwOzExMDYgMTE2MyAxMUI3OworQkExMTtCQTExOzExMDYgMTE2MyAxMUI4O0JBMTE7MTEwNiAxMTYzIDExQjg7CitCQTEyO0JBMTI7MTEwNiAxMTYzIDExQjk7QkExMjsxMTA2IDExNjMgMTFCOTsKK0JBMTM7QkExMzsxMTA2IDExNjMgMTFCQTtCQTEzOzExMDYgMTE2MyAxMUJBOworQkExNDtCQTE0OzExMDYgMTE2MyAxMUJCO0JBMTQ7MTEwNiAxMTYzIDExQkI7CitCQTE1O0JBMTU7MTEwNiAxMTYzIDExQkM7QkExNTsxMTA2IDExNjMgMTFCQzsKK0JBMTY7QkExNjsxMTA2IDExNjMgMTFCRDtCQTE2OzExMDYgMTE2MyAxMUJEOworQkExNztCQTE3OzExMDYgMTE2MyAxMUJFO0JBMTc7MTEwNiAxMTYzIDExQkU7CitCQTE4O0JBMTg7MTEwNiAxMTYzIDExQkY7QkExODsxMTA2IDExNjMgMTFCRjsKK0JBMTk7QkExOTsxMTA2IDExNjMgMTFDMDtCQTE5OzExMDYgMTE2MyAxMUMwOworQkExQTtCQTFBOzExMDYgMTE2MyAxMUMxO0JBMUE7MTEwNiAxMTYzIDExQzE7CitCQTFCO0JBMUI7MTEwNiAxMTYzIDExQzI7QkExQjsxMTA2IDExNjMgMTFDMjsKK0JBMUM7QkExQzsxMTA2IDExNjQ7QkExQzsxMTA2IDExNjQ7CitCQTFEO0JBMUQ7MTEwNiAxMTY0IDExQTg7QkExRDsxMTA2IDExNjQgMTFBODsKK0JBMUU7QkExRTsxMTA2IDExNjQgMTFBOTtCQTFFOzExMDYgMTE2NCAxMUE5OworQkExRjtCQTFGOzExMDYgMTE2NCAxMUFBO0JBMUY7MTEwNiAxMTY0IDExQUE7CitCQTIwO0JBMjA7MTEwNiAxMTY0IDExQUI7QkEyMDsxMTA2IDExNjQgMTFBQjsKK0JBMjE7QkEyMTsxMTA2IDExNjQgMTFBQztCQTIxOzExMDYgMTE2NCAxMUFDOworQkEyMjtCQTIyOzExMDYgMTE2NCAxMUFEO0JBMjI7MTEwNiAxMTY0IDExQUQ7CitCQTIzO0JBMjM7MTEwNiAxMTY0IDExQUU7QkEyMzsxMTA2IDExNjQgMTFBRTsKK0JBMjQ7QkEyNDsxMTA2IDExNjQgMTFBRjtCQTI0OzExMDYgMTE2NCAxMUFGOworQkEyNTtCQTI1OzExMDYgMTE2NCAxMUIwO0JBMjU7MTEwNiAxMTY0IDExQjA7CitCQTI2O0JBMjY7MTEwNiAxMTY0IDExQjE7QkEyNjsxMTA2IDExNjQgMTFCMTsKK0JBMjc7QkEyNzsxMTA2IDExNjQgMTFCMjtCQTI3OzExMDYgMTE2NCAxMUIyOworQkEyODtCQTI4OzExMDYgMTE2NCAxMUIzO0JBMjg7MTEwNiAxMTY0IDExQjM7CitCQTI5O0JBMjk7MTEwNiAxMTY0IDExQjQ7QkEyOTsxMTA2IDExNjQgMTFCNDsKK0JBMkE7QkEyQTsxMTA2IDExNjQgMTFCNTtCQTJBOzExMDYgMTE2NCAxMUI1OworQkEyQjtCQTJCOzExMDYgMTE2NCAxMUI2O0JBMkI7MTEwNiAxMTY0IDExQjY7CitCQTJDO0JBMkM7MTEwNiAxMTY0IDExQjc7QkEyQzsxMTA2IDExNjQgMTFCNzsKK0JBMkQ7QkEyRDsxMTA2IDExNjQgMTFCODtCQTJEOzExMDYgMTE2NCAxMUI4OworQkEyRTtCQTJFOzExMDYgMTE2NCAxMUI5O0JBMkU7MTEwNiAxMTY0IDExQjk7CitCQTJGO0JBMkY7MTEwNiAxMTY0IDExQkE7QkEyRjsxMTA2IDExNjQgMTFCQTsKK0JBMzA7QkEzMDsxMTA2IDExNjQgMTFCQjtCQTMwOzExMDYgMTE2NCAxMUJCOworQkEzMTtCQTMxOzExMDYgMTE2NCAxMUJDO0JBMzE7MTEwNiAxMTY0IDExQkM7CitCQTMyO0JBMzI7MTEwNiAxMTY0IDExQkQ7QkEzMjsxMTA2IDExNjQgMTFCRDsKK0JBMzM7QkEzMzsxMTA2IDExNjQgMTFCRTtCQTMzOzExMDYgMTE2NCAxMUJFOworQkEzNDtCQTM0OzExMDYgMTE2NCAxMUJGO0JBMzQ7MTEwNiAxMTY0IDExQkY7CitCQTM1O0JBMzU7MTEwNiAxMTY0IDExQzA7QkEzNTsxMTA2IDExNjQgMTFDMDsKK0JBMzY7QkEzNjsxMTA2IDExNjQgMTFDMTtCQTM2OzExMDYgMTE2NCAxMUMxOworQkEzNztCQTM3OzExMDYgMTE2NCAxMUMyO0JBMzc7MTEwNiAxMTY0IDExQzI7CitCQTM4O0JBMzg7MTEwNiAxMTY1O0JBMzg7MTEwNiAxMTY1OworQkEzOTtCQTM5OzExMDYgMTE2NSAxMUE4O0JBMzk7MTEwNiAxMTY1IDExQTg7CitCQTNBO0JBM0E7MTEwNiAxMTY1IDExQTk7QkEzQTsxMTA2IDExNjUgMTFBOTsKK0JBM0I7QkEzQjsxMTA2IDExNjUgMTFBQTtCQTNCOzExMDYgMTE2NSAxMUFBOworQkEzQztCQTNDOzExMDYgMTE2NSAxMUFCO0JBM0M7MTEwNiAxMTY1IDExQUI7CitCQTNEO0JBM0Q7MTEwNiAxMTY1IDExQUM7QkEzRDsxMTA2IDExNjUgMTFBQzsKK0JBM0U7QkEzRTsxMTA2IDExNjUgMTFBRDtCQTNFOzExMDYgMTE2NSAxMUFEOworQkEzRjtCQTNGOzExMDYgMTE2NSAxMUFFO0JBM0Y7MTEwNiAxMTY1IDExQUU7CitCQTQwO0JBNDA7MTEwNiAxMTY1IDExQUY7QkE0MDsxMTA2IDExNjUgMTFBRjsKK0JBNDE7QkE0MTsxMTA2IDExNjUgMTFCMDtCQTQxOzExMDYgMTE2NSAxMUIwOworQkE0MjtCQTQyOzExMDYgMTE2NSAxMUIxO0JBNDI7MTEwNiAxMTY1IDExQjE7CitCQTQzO0JBNDM7MTEwNiAxMTY1IDExQjI7QkE0MzsxMTA2IDExNjUgMTFCMjsKK0JBNDQ7QkE0NDsxMTA2IDExNjUgMTFCMztCQTQ0OzExMDYgMTE2NSAxMUIzOworQkE0NTtCQTQ1OzExMDYgMTE2NSAxMUI0O0JBNDU7MTEwNiAxMTY1IDExQjQ7CitCQTQ2O0JBNDY7MTEwNiAxMTY1IDExQjU7QkE0NjsxMTA2IDExNjUgMTFCNTsKK0JBNDc7QkE0NzsxMTA2IDExNjUgMTFCNjtCQTQ3OzExMDYgMTE2NSAxMUI2OworQkE0ODtCQTQ4OzExMDYgMTE2NSAxMUI3O0JBNDg7MTEwNiAxMTY1IDExQjc7CitCQTQ5O0JBNDk7MTEwNiAxMTY1IDExQjg7QkE0OTsxMTA2IDExNjUgMTFCODsKK0JBNEE7QkE0QTsxMTA2IDExNjUgMTFCOTtCQTRBOzExMDYgMTE2NSAxMUI5OworQkE0QjtCQTRCOzExMDYgMTE2NSAxMUJBO0JBNEI7MTEwNiAxMTY1IDExQkE7CitCQTRDO0JBNEM7MTEwNiAxMTY1IDExQkI7QkE0QzsxMTA2IDExNjUgMTFCQjsKK0JBNEQ7QkE0RDsxMTA2IDExNjUgMTFCQztCQTREOzExMDYgMTE2NSAxMUJDOworQkE0RTtCQTRFOzExMDYgMTE2NSAxMUJEO0JBNEU7MTEwNiAxMTY1IDExQkQ7CitCQTRGO0JBNEY7MTEwNiAxMTY1IDExQkU7QkE0RjsxMTA2IDExNjUgMTFCRTsKK0JBNTA7QkE1MDsxMTA2IDExNjUgMTFCRjtCQTUwOzExMDYgMTE2NSAxMUJGOworQkE1MTtCQTUxOzExMDYgMTE2NSAxMUMwO0JBNTE7MTEwNiAxMTY1IDExQzA7CitCQTUyO0JBNTI7MTEwNiAxMTY1IDExQzE7QkE1MjsxMTA2IDExNjUgMTFDMTsKK0JBNTM7QkE1MzsxMTA2IDExNjUgMTFDMjtCQTUzOzExMDYgMTE2NSAxMUMyOworQkE1NDtCQTU0OzExMDYgMTE2NjtCQTU0OzExMDYgMTE2NjsKK0JBNTU7QkE1NTsxMTA2IDExNjYgMTFBODtCQTU1OzExMDYgMTE2NiAxMUE4OworQkE1NjtCQTU2OzExMDYgMTE2NiAxMUE5O0JBNTY7MTEwNiAxMTY2IDExQTk7CitCQTU3O0JBNTc7MTEwNiAxMTY2IDExQUE7QkE1NzsxMTA2IDExNjYgMTFBQTsKK0JBNTg7QkE1ODsxMTA2IDExNjYgMTFBQjtCQTU4OzExMDYgMTE2NiAxMUFCOworQkE1OTtCQTU5OzExMDYgMTE2NiAxMUFDO0JBNTk7MTEwNiAxMTY2IDExQUM7CitCQTVBO0JBNUE7MTEwNiAxMTY2IDExQUQ7QkE1QTsxMTA2IDExNjYgMTFBRDsKK0JBNUI7QkE1QjsxMTA2IDExNjYgMTFBRTtCQTVCOzExMDYgMTE2NiAxMUFFOworQkE1QztCQTVDOzExMDYgMTE2NiAxMUFGO0JBNUM7MTEwNiAxMTY2IDExQUY7CitCQTVEO0JBNUQ7MTEwNiAxMTY2IDExQjA7QkE1RDsxMTA2IDExNjYgMTFCMDsKK0JBNUU7QkE1RTsxMTA2IDExNjYgMTFCMTtCQTVFOzExMDYgMTE2NiAxMUIxOworQkE1RjtCQTVGOzExMDYgMTE2NiAxMUIyO0JBNUY7MTEwNiAxMTY2IDExQjI7CitCQTYwO0JBNjA7MTEwNiAxMTY2IDExQjM7QkE2MDsxMTA2IDExNjYgMTFCMzsKK0JBNjE7QkE2MTsxMTA2IDExNjYgMTFCNDtCQTYxOzExMDYgMTE2NiAxMUI0OworQkE2MjtCQTYyOzExMDYgMTE2NiAxMUI1O0JBNjI7MTEwNiAxMTY2IDExQjU7CitCQTYzO0JBNjM7MTEwNiAxMTY2IDExQjY7QkE2MzsxMTA2IDExNjYgMTFCNjsKK0JBNjQ7QkE2NDsxMTA2IDExNjYgMTFCNztCQTY0OzExMDYgMTE2NiAxMUI3OworQkE2NTtCQTY1OzExMDYgMTE2NiAxMUI4O0JBNjU7MTEwNiAxMTY2IDExQjg7CitCQTY2O0JBNjY7MTEwNiAxMTY2IDExQjk7QkE2NjsxMTA2IDExNjYgMTFCOTsKK0JBNjc7QkE2NzsxMTA2IDExNjYgMTFCQTtCQTY3OzExMDYgMTE2NiAxMUJBOworQkE2ODtCQTY4OzExMDYgMTE2NiAxMUJCO0JBNjg7MTEwNiAxMTY2IDExQkI7CitCQTY5O0JBNjk7MTEwNiAxMTY2IDExQkM7QkE2OTsxMTA2IDExNjYgMTFCQzsKK0JBNkE7QkE2QTsxMTA2IDExNjYgMTFCRDtCQTZBOzExMDYgMTE2NiAxMUJEOworQkE2QjtCQTZCOzExMDYgMTE2NiAxMUJFO0JBNkI7MTEwNiAxMTY2IDExQkU7CitCQTZDO0JBNkM7MTEwNiAxMTY2IDExQkY7QkE2QzsxMTA2IDExNjYgMTFCRjsKK0JBNkQ7QkE2RDsxMTA2IDExNjYgMTFDMDtCQTZEOzExMDYgMTE2NiAxMUMwOworQkE2RTtCQTZFOzExMDYgMTE2NiAxMUMxO0JBNkU7MTEwNiAxMTY2IDExQzE7CitCQTZGO0JBNkY7MTEwNiAxMTY2IDExQzI7QkE2RjsxMTA2IDExNjYgMTFDMjsKK0JBNzA7QkE3MDsxMTA2IDExNjc7QkE3MDsxMTA2IDExNjc7CitCQTcxO0JBNzE7MTEwNiAxMTY3IDExQTg7QkE3MTsxMTA2IDExNjcgMTFBODsKK0JBNzI7QkE3MjsxMTA2IDExNjcgMTFBOTtCQTcyOzExMDYgMTE2NyAxMUE5OworQkE3MztCQTczOzExMDYgMTE2NyAxMUFBO0JBNzM7MTEwNiAxMTY3IDExQUE7CitCQTc0O0JBNzQ7MTEwNiAxMTY3IDExQUI7QkE3NDsxMTA2IDExNjcgMTFBQjsKK0JBNzU7QkE3NTsxMTA2IDExNjcgMTFBQztCQTc1OzExMDYgMTE2NyAxMUFDOworQkE3NjtCQTc2OzExMDYgMTE2NyAxMUFEO0JBNzY7MTEwNiAxMTY3IDExQUQ7CitCQTc3O0JBNzc7MTEwNiAxMTY3IDExQUU7QkE3NzsxMTA2IDExNjcgMTFBRTsKK0JBNzg7QkE3ODsxMTA2IDExNjcgMTFBRjtCQTc4OzExMDYgMTE2NyAxMUFGOworQkE3OTtCQTc5OzExMDYgMTE2NyAxMUIwO0JBNzk7MTEwNiAxMTY3IDExQjA7CitCQTdBO0JBN0E7MTEwNiAxMTY3IDExQjE7QkE3QTsxMTA2IDExNjcgMTFCMTsKK0JBN0I7QkE3QjsxMTA2IDExNjcgMTFCMjtCQTdCOzExMDYgMTE2NyAxMUIyOworQkE3QztCQTdDOzExMDYgMTE2NyAxMUIzO0JBN0M7MTEwNiAxMTY3IDExQjM7CitCQTdEO0JBN0Q7MTEwNiAxMTY3IDExQjQ7QkE3RDsxMTA2IDExNjcgMTFCNDsKK0JBN0U7QkE3RTsxMTA2IDExNjcgMTFCNTtCQTdFOzExMDYgMTE2NyAxMUI1OworQkE3RjtCQTdGOzExMDYgMTE2NyAxMUI2O0JBN0Y7MTEwNiAxMTY3IDExQjY7CitCQTgwO0JBODA7MTEwNiAxMTY3IDExQjc7QkE4MDsxMTA2IDExNjcgMTFCNzsKK0JBODE7QkE4MTsxMTA2IDExNjcgMTFCODtCQTgxOzExMDYgMTE2NyAxMUI4OworQkE4MjtCQTgyOzExMDYgMTE2NyAxMUI5O0JBODI7MTEwNiAxMTY3IDExQjk7CitCQTgzO0JBODM7MTEwNiAxMTY3IDExQkE7QkE4MzsxMTA2IDExNjcgMTFCQTsKK0JBODQ7QkE4NDsxMTA2IDExNjcgMTFCQjtCQTg0OzExMDYgMTE2NyAxMUJCOworQkE4NTtCQTg1OzExMDYgMTE2NyAxMUJDO0JBODU7MTEwNiAxMTY3IDExQkM7CitCQTg2O0JBODY7MTEwNiAxMTY3IDExQkQ7QkE4NjsxMTA2IDExNjcgMTFCRDsKK0JBODc7QkE4NzsxMTA2IDExNjcgMTFCRTtCQTg3OzExMDYgMTE2NyAxMUJFOworQkE4ODtCQTg4OzExMDYgMTE2NyAxMUJGO0JBODg7MTEwNiAxMTY3IDExQkY7CitCQTg5O0JBODk7MTEwNiAxMTY3IDExQzA7QkE4OTsxMTA2IDExNjcgMTFDMDsKK0JBOEE7QkE4QTsxMTA2IDExNjcgMTFDMTtCQThBOzExMDYgMTE2NyAxMUMxOworQkE4QjtCQThCOzExMDYgMTE2NyAxMUMyO0JBOEI7MTEwNiAxMTY3IDExQzI7CitCQThDO0JBOEM7MTEwNiAxMTY4O0JBOEM7MTEwNiAxMTY4OworQkE4RDtCQThEOzExMDYgMTE2OCAxMUE4O0JBOEQ7MTEwNiAxMTY4IDExQTg7CitCQThFO0JBOEU7MTEwNiAxMTY4IDExQTk7QkE4RTsxMTA2IDExNjggMTFBOTsKK0JBOEY7QkE4RjsxMTA2IDExNjggMTFBQTtCQThGOzExMDYgMTE2OCAxMUFBOworQkE5MDtCQTkwOzExMDYgMTE2OCAxMUFCO0JBOTA7MTEwNiAxMTY4IDExQUI7CitCQTkxO0JBOTE7MTEwNiAxMTY4IDExQUM7QkE5MTsxMTA2IDExNjggMTFBQzsKK0JBOTI7QkE5MjsxMTA2IDExNjggMTFBRDtCQTkyOzExMDYgMTE2OCAxMUFEOworQkE5MztCQTkzOzExMDYgMTE2OCAxMUFFO0JBOTM7MTEwNiAxMTY4IDExQUU7CitCQTk0O0JBOTQ7MTEwNiAxMTY4IDExQUY7QkE5NDsxMTA2IDExNjggMTFBRjsKK0JBOTU7QkE5NTsxMTA2IDExNjggMTFCMDtCQTk1OzExMDYgMTE2OCAxMUIwOworQkE5NjtCQTk2OzExMDYgMTE2OCAxMUIxO0JBOTY7MTEwNiAxMTY4IDExQjE7CitCQTk3O0JBOTc7MTEwNiAxMTY4IDExQjI7QkE5NzsxMTA2IDExNjggMTFCMjsKK0JBOTg7QkE5ODsxMTA2IDExNjggMTFCMztCQTk4OzExMDYgMTE2OCAxMUIzOworQkE5OTtCQTk5OzExMDYgMTE2OCAxMUI0O0JBOTk7MTEwNiAxMTY4IDExQjQ7CitCQTlBO0JBOUE7MTEwNiAxMTY4IDExQjU7QkE5QTsxMTA2IDExNjggMTFCNTsKK0JBOUI7QkE5QjsxMTA2IDExNjggMTFCNjtCQTlCOzExMDYgMTE2OCAxMUI2OworQkE5QztCQTlDOzExMDYgMTE2OCAxMUI3O0JBOUM7MTEwNiAxMTY4IDExQjc7CitCQTlEO0JBOUQ7MTEwNiAxMTY4IDExQjg7QkE5RDsxMTA2IDExNjggMTFCODsKK0JBOUU7QkE5RTsxMTA2IDExNjggMTFCOTtCQTlFOzExMDYgMTE2OCAxMUI5OworQkE5RjtCQTlGOzExMDYgMTE2OCAxMUJBO0JBOUY7MTEwNiAxMTY4IDExQkE7CitCQUEwO0JBQTA7MTEwNiAxMTY4IDExQkI7QkFBMDsxMTA2IDExNjggMTFCQjsKK0JBQTE7QkFBMTsxMTA2IDExNjggMTFCQztCQUExOzExMDYgMTE2OCAxMUJDOworQkFBMjtCQUEyOzExMDYgMTE2OCAxMUJEO0JBQTI7MTEwNiAxMTY4IDExQkQ7CitCQUEzO0JBQTM7MTEwNiAxMTY4IDExQkU7QkFBMzsxMTA2IDExNjggMTFCRTsKK0JBQTQ7QkFBNDsxMTA2IDExNjggMTFCRjtCQUE0OzExMDYgMTE2OCAxMUJGOworQkFBNTtCQUE1OzExMDYgMTE2OCAxMUMwO0JBQTU7MTEwNiAxMTY4IDExQzA7CitCQUE2O0JBQTY7MTEwNiAxMTY4IDExQzE7QkFBNjsxMTA2IDExNjggMTFDMTsKK0JBQTc7QkFBNzsxMTA2IDExNjggMTFDMjtCQUE3OzExMDYgMTE2OCAxMUMyOworQkFBODtCQUE4OzExMDYgMTE2OTtCQUE4OzExMDYgMTE2OTsKK0JBQTk7QkFBOTsxMTA2IDExNjkgMTFBODtCQUE5OzExMDYgMTE2OSAxMUE4OworQkFBQTtCQUFBOzExMDYgMTE2OSAxMUE5O0JBQUE7MTEwNiAxMTY5IDExQTk7CitCQUFCO0JBQUI7MTEwNiAxMTY5IDExQUE7QkFBQjsxMTA2IDExNjkgMTFBQTsKK0JBQUM7QkFBQzsxMTA2IDExNjkgMTFBQjtCQUFDOzExMDYgMTE2OSAxMUFCOworQkFBRDtCQUFEOzExMDYgMTE2OSAxMUFDO0JBQUQ7MTEwNiAxMTY5IDExQUM7CitCQUFFO0JBQUU7MTEwNiAxMTY5IDExQUQ7QkFBRTsxMTA2IDExNjkgMTFBRDsKK0JBQUY7QkFBRjsxMTA2IDExNjkgMTFBRTtCQUFGOzExMDYgMTE2OSAxMUFFOworQkFCMDtCQUIwOzExMDYgMTE2OSAxMUFGO0JBQjA7MTEwNiAxMTY5IDExQUY7CitCQUIxO0JBQjE7MTEwNiAxMTY5IDExQjA7QkFCMTsxMTA2IDExNjkgMTFCMDsKK0JBQjI7QkFCMjsxMTA2IDExNjkgMTFCMTtCQUIyOzExMDYgMTE2OSAxMUIxOworQkFCMztCQUIzOzExMDYgMTE2OSAxMUIyO0JBQjM7MTEwNiAxMTY5IDExQjI7CitCQUI0O0JBQjQ7MTEwNiAxMTY5IDExQjM7QkFCNDsxMTA2IDExNjkgMTFCMzsKK0JBQjU7QkFCNTsxMTA2IDExNjkgMTFCNDtCQUI1OzExMDYgMTE2OSAxMUI0OworQkFCNjtCQUI2OzExMDYgMTE2OSAxMUI1O0JBQjY7MTEwNiAxMTY5IDExQjU7CitCQUI3O0JBQjc7MTEwNiAxMTY5IDExQjY7QkFCNzsxMTA2IDExNjkgMTFCNjsKK0JBQjg7QkFCODsxMTA2IDExNjkgMTFCNztCQUI4OzExMDYgMTE2OSAxMUI3OworQkFCOTtCQUI5OzExMDYgMTE2OSAxMUI4O0JBQjk7MTEwNiAxMTY5IDExQjg7CitCQUJBO0JBQkE7MTEwNiAxMTY5IDExQjk7QkFCQTsxMTA2IDExNjkgMTFCOTsKK0JBQkI7QkFCQjsxMTA2IDExNjkgMTFCQTtCQUJCOzExMDYgMTE2OSAxMUJBOworQkFCQztCQUJDOzExMDYgMTE2OSAxMUJCO0JBQkM7MTEwNiAxMTY5IDExQkI7CitCQUJEO0JBQkQ7MTEwNiAxMTY5IDExQkM7QkFCRDsxMTA2IDExNjkgMTFCQzsKK0JBQkU7QkFCRTsxMTA2IDExNjkgMTFCRDtCQUJFOzExMDYgMTE2OSAxMUJEOworQkFCRjtCQUJGOzExMDYgMTE2OSAxMUJFO0JBQkY7MTEwNiAxMTY5IDExQkU7CitCQUMwO0JBQzA7MTEwNiAxMTY5IDExQkY7QkFDMDsxMTA2IDExNjkgMTFCRjsKK0JBQzE7QkFDMTsxMTA2IDExNjkgMTFDMDtCQUMxOzExMDYgMTE2OSAxMUMwOworQkFDMjtCQUMyOzExMDYgMTE2OSAxMUMxO0JBQzI7MTEwNiAxMTY5IDExQzE7CitCQUMzO0JBQzM7MTEwNiAxMTY5IDExQzI7QkFDMzsxMTA2IDExNjkgMTFDMjsKK0JBQzQ7QkFDNDsxMTA2IDExNkE7QkFDNDsxMTA2IDExNkE7CitCQUM1O0JBQzU7MTEwNiAxMTZBIDExQTg7QkFDNTsxMTA2IDExNkEgMTFBODsKK0JBQzY7QkFDNjsxMTA2IDExNkEgMTFBOTtCQUM2OzExMDYgMTE2QSAxMUE5OworQkFDNztCQUM3OzExMDYgMTE2QSAxMUFBO0JBQzc7MTEwNiAxMTZBIDExQUE7CitCQUM4O0JBQzg7MTEwNiAxMTZBIDExQUI7QkFDODsxMTA2IDExNkEgMTFBQjsKK0JBQzk7QkFDOTsxMTA2IDExNkEgMTFBQztCQUM5OzExMDYgMTE2QSAxMUFDOworQkFDQTtCQUNBOzExMDYgMTE2QSAxMUFEO0JBQ0E7MTEwNiAxMTZBIDExQUQ7CitCQUNCO0JBQ0I7MTEwNiAxMTZBIDExQUU7QkFDQjsxMTA2IDExNkEgMTFBRTsKK0JBQ0M7QkFDQzsxMTA2IDExNkEgMTFBRjtCQUNDOzExMDYgMTE2QSAxMUFGOworQkFDRDtCQUNEOzExMDYgMTE2QSAxMUIwO0JBQ0Q7MTEwNiAxMTZBIDExQjA7CitCQUNFO0JBQ0U7MTEwNiAxMTZBIDExQjE7QkFDRTsxMTA2IDExNkEgMTFCMTsKK0JBQ0Y7QkFDRjsxMTA2IDExNkEgMTFCMjtCQUNGOzExMDYgMTE2QSAxMUIyOworQkFEMDtCQUQwOzExMDYgMTE2QSAxMUIzO0JBRDA7MTEwNiAxMTZBIDExQjM7CitCQUQxO0JBRDE7MTEwNiAxMTZBIDExQjQ7QkFEMTsxMTA2IDExNkEgMTFCNDsKK0JBRDI7QkFEMjsxMTA2IDExNkEgMTFCNTtCQUQyOzExMDYgMTE2QSAxMUI1OworQkFEMztCQUQzOzExMDYgMTE2QSAxMUI2O0JBRDM7MTEwNiAxMTZBIDExQjY7CitCQUQ0O0JBRDQ7MTEwNiAxMTZBIDExQjc7QkFENDsxMTA2IDExNkEgMTFCNzsKK0JBRDU7QkFENTsxMTA2IDExNkEgMTFCODtCQUQ1OzExMDYgMTE2QSAxMUI4OworQkFENjtCQUQ2OzExMDYgMTE2QSAxMUI5O0JBRDY7MTEwNiAxMTZBIDExQjk7CitCQUQ3O0JBRDc7MTEwNiAxMTZBIDExQkE7QkFENzsxMTA2IDExNkEgMTFCQTsKK0JBRDg7QkFEODsxMTA2IDExNkEgMTFCQjtCQUQ4OzExMDYgMTE2QSAxMUJCOworQkFEOTtCQUQ5OzExMDYgMTE2QSAxMUJDO0JBRDk7MTEwNiAxMTZBIDExQkM7CitCQURBO0JBREE7MTEwNiAxMTZBIDExQkQ7QkFEQTsxMTA2IDExNkEgMTFCRDsKK0JBREI7QkFEQjsxMTA2IDExNkEgMTFCRTtCQURCOzExMDYgMTE2QSAxMUJFOworQkFEQztCQURDOzExMDYgMTE2QSAxMUJGO0JBREM7MTEwNiAxMTZBIDExQkY7CitCQUREO0JBREQ7MTEwNiAxMTZBIDExQzA7QkFERDsxMTA2IDExNkEgMTFDMDsKK0JBREU7QkFERTsxMTA2IDExNkEgMTFDMTtCQURFOzExMDYgMTE2QSAxMUMxOworQkFERjtCQURGOzExMDYgMTE2QSAxMUMyO0JBREY7MTEwNiAxMTZBIDExQzI7CitCQUUwO0JBRTA7MTEwNiAxMTZCO0JBRTA7MTEwNiAxMTZCOworQkFFMTtCQUUxOzExMDYgMTE2QiAxMUE4O0JBRTE7MTEwNiAxMTZCIDExQTg7CitCQUUyO0JBRTI7MTEwNiAxMTZCIDExQTk7QkFFMjsxMTA2IDExNkIgMTFBOTsKK0JBRTM7QkFFMzsxMTA2IDExNkIgMTFBQTtCQUUzOzExMDYgMTE2QiAxMUFBOworQkFFNDtCQUU0OzExMDYgMTE2QiAxMUFCO0JBRTQ7MTEwNiAxMTZCIDExQUI7CitCQUU1O0JBRTU7MTEwNiAxMTZCIDExQUM7QkFFNTsxMTA2IDExNkIgMTFBQzsKK0JBRTY7QkFFNjsxMTA2IDExNkIgMTFBRDtCQUU2OzExMDYgMTE2QiAxMUFEOworQkFFNztCQUU3OzExMDYgMTE2QiAxMUFFO0JBRTc7MTEwNiAxMTZCIDExQUU7CitCQUU4O0JBRTg7MTEwNiAxMTZCIDExQUY7QkFFODsxMTA2IDExNkIgMTFBRjsKK0JBRTk7QkFFOTsxMTA2IDExNkIgMTFCMDtCQUU5OzExMDYgMTE2QiAxMUIwOworQkFFQTtCQUVBOzExMDYgMTE2QiAxMUIxO0JBRUE7MTEwNiAxMTZCIDExQjE7CitCQUVCO0JBRUI7MTEwNiAxMTZCIDExQjI7QkFFQjsxMTA2IDExNkIgMTFCMjsKK0JBRUM7QkFFQzsxMTA2IDExNkIgMTFCMztCQUVDOzExMDYgMTE2QiAxMUIzOworQkFFRDtCQUVEOzExMDYgMTE2QiAxMUI0O0JBRUQ7MTEwNiAxMTZCIDExQjQ7CitCQUVFO0JBRUU7MTEwNiAxMTZCIDExQjU7QkFFRTsxMTA2IDExNkIgMTFCNTsKK0JBRUY7QkFFRjsxMTA2IDExNkIgMTFCNjtCQUVGOzExMDYgMTE2QiAxMUI2OworQkFGMDtCQUYwOzExMDYgMTE2QiAxMUI3O0JBRjA7MTEwNiAxMTZCIDExQjc7CitCQUYxO0JBRjE7MTEwNiAxMTZCIDExQjg7QkFGMTsxMTA2IDExNkIgMTFCODsKK0JBRjI7QkFGMjsxMTA2IDExNkIgMTFCOTtCQUYyOzExMDYgMTE2QiAxMUI5OworQkFGMztCQUYzOzExMDYgMTE2QiAxMUJBO0JBRjM7MTEwNiAxMTZCIDExQkE7CitCQUY0O0JBRjQ7MTEwNiAxMTZCIDExQkI7QkFGNDsxMTA2IDExNkIgMTFCQjsKK0JBRjU7QkFGNTsxMTA2IDExNkIgMTFCQztCQUY1OzExMDYgMTE2QiAxMUJDOworQkFGNjtCQUY2OzExMDYgMTE2QiAxMUJEO0JBRjY7MTEwNiAxMTZCIDExQkQ7CitCQUY3O0JBRjc7MTEwNiAxMTZCIDExQkU7QkFGNzsxMTA2IDExNkIgMTFCRTsKK0JBRjg7QkFGODsxMTA2IDExNkIgMTFCRjtCQUY4OzExMDYgMTE2QiAxMUJGOworQkFGOTtCQUY5OzExMDYgMTE2QiAxMUMwO0JBRjk7MTEwNiAxMTZCIDExQzA7CitCQUZBO0JBRkE7MTEwNiAxMTZCIDExQzE7QkFGQTsxMTA2IDExNkIgMTFDMTsKK0JBRkI7QkFGQjsxMTA2IDExNkIgMTFDMjtCQUZCOzExMDYgMTE2QiAxMUMyOworQkFGQztCQUZDOzExMDYgMTE2QztCQUZDOzExMDYgMTE2QzsKK0JBRkQ7QkFGRDsxMTA2IDExNkMgMTFBODtCQUZEOzExMDYgMTE2QyAxMUE4OworQkFGRTtCQUZFOzExMDYgMTE2QyAxMUE5O0JBRkU7MTEwNiAxMTZDIDExQTk7CitCQUZGO0JBRkY7MTEwNiAxMTZDIDExQUE7QkFGRjsxMTA2IDExNkMgMTFBQTsKK0JCMDA7QkIwMDsxMTA2IDExNkMgMTFBQjtCQjAwOzExMDYgMTE2QyAxMUFCOworQkIwMTtCQjAxOzExMDYgMTE2QyAxMUFDO0JCMDE7MTEwNiAxMTZDIDExQUM7CitCQjAyO0JCMDI7MTEwNiAxMTZDIDExQUQ7QkIwMjsxMTA2IDExNkMgMTFBRDsKK0JCMDM7QkIwMzsxMTA2IDExNkMgMTFBRTtCQjAzOzExMDYgMTE2QyAxMUFFOworQkIwNDtCQjA0OzExMDYgMTE2QyAxMUFGO0JCMDQ7MTEwNiAxMTZDIDExQUY7CitCQjA1O0JCMDU7MTEwNiAxMTZDIDExQjA7QkIwNTsxMTA2IDExNkMgMTFCMDsKK0JCMDY7QkIwNjsxMTA2IDExNkMgMTFCMTtCQjA2OzExMDYgMTE2QyAxMUIxOworQkIwNztCQjA3OzExMDYgMTE2QyAxMUIyO0JCMDc7MTEwNiAxMTZDIDExQjI7CitCQjA4O0JCMDg7MTEwNiAxMTZDIDExQjM7QkIwODsxMTA2IDExNkMgMTFCMzsKK0JCMDk7QkIwOTsxMTA2IDExNkMgMTFCNDtCQjA5OzExMDYgMTE2QyAxMUI0OworQkIwQTtCQjBBOzExMDYgMTE2QyAxMUI1O0JCMEE7MTEwNiAxMTZDIDExQjU7CitCQjBCO0JCMEI7MTEwNiAxMTZDIDExQjY7QkIwQjsxMTA2IDExNkMgMTFCNjsKK0JCMEM7QkIwQzsxMTA2IDExNkMgMTFCNztCQjBDOzExMDYgMTE2QyAxMUI3OworQkIwRDtCQjBEOzExMDYgMTE2QyAxMUI4O0JCMEQ7MTEwNiAxMTZDIDExQjg7CitCQjBFO0JCMEU7MTEwNiAxMTZDIDExQjk7QkIwRTsxMTA2IDExNkMgMTFCOTsKK0JCMEY7QkIwRjsxMTA2IDExNkMgMTFCQTtCQjBGOzExMDYgMTE2QyAxMUJBOworQkIxMDtCQjEwOzExMDYgMTE2QyAxMUJCO0JCMTA7MTEwNiAxMTZDIDExQkI7CitCQjExO0JCMTE7MTEwNiAxMTZDIDExQkM7QkIxMTsxMTA2IDExNkMgMTFCQzsKK0JCMTI7QkIxMjsxMTA2IDExNkMgMTFCRDtCQjEyOzExMDYgMTE2QyAxMUJEOworQkIxMztCQjEzOzExMDYgMTE2QyAxMUJFO0JCMTM7MTEwNiAxMTZDIDExQkU7CitCQjE0O0JCMTQ7MTEwNiAxMTZDIDExQkY7QkIxNDsxMTA2IDExNkMgMTFCRjsKK0JCMTU7QkIxNTsxMTA2IDExNkMgMTFDMDtCQjE1OzExMDYgMTE2QyAxMUMwOworQkIxNjtCQjE2OzExMDYgMTE2QyAxMUMxO0JCMTY7MTEwNiAxMTZDIDExQzE7CitCQjE3O0JCMTc7MTEwNiAxMTZDIDExQzI7QkIxNzsxMTA2IDExNkMgMTFDMjsKK0JCMTg7QkIxODsxMTA2IDExNkQ7QkIxODsxMTA2IDExNkQ7CitCQjE5O0JCMTk7MTEwNiAxMTZEIDExQTg7QkIxOTsxMTA2IDExNkQgMTFBODsKK0JCMUE7QkIxQTsxMTA2IDExNkQgMTFBOTtCQjFBOzExMDYgMTE2RCAxMUE5OworQkIxQjtCQjFCOzExMDYgMTE2RCAxMUFBO0JCMUI7MTEwNiAxMTZEIDExQUE7CitCQjFDO0JCMUM7MTEwNiAxMTZEIDExQUI7QkIxQzsxMTA2IDExNkQgMTFBQjsKK0JCMUQ7QkIxRDsxMTA2IDExNkQgMTFBQztCQjFEOzExMDYgMTE2RCAxMUFDOworQkIxRTtCQjFFOzExMDYgMTE2RCAxMUFEO0JCMUU7MTEwNiAxMTZEIDExQUQ7CitCQjFGO0JCMUY7MTEwNiAxMTZEIDExQUU7QkIxRjsxMTA2IDExNkQgMTFBRTsKK0JCMjA7QkIyMDsxMTA2IDExNkQgMTFBRjtCQjIwOzExMDYgMTE2RCAxMUFGOworQkIyMTtCQjIxOzExMDYgMTE2RCAxMUIwO0JCMjE7MTEwNiAxMTZEIDExQjA7CitCQjIyO0JCMjI7MTEwNiAxMTZEIDExQjE7QkIyMjsxMTA2IDExNkQgMTFCMTsKK0JCMjM7QkIyMzsxMTA2IDExNkQgMTFCMjtCQjIzOzExMDYgMTE2RCAxMUIyOworQkIyNDtCQjI0OzExMDYgMTE2RCAxMUIzO0JCMjQ7MTEwNiAxMTZEIDExQjM7CitCQjI1O0JCMjU7MTEwNiAxMTZEIDExQjQ7QkIyNTsxMTA2IDExNkQgMTFCNDsKK0JCMjY7QkIyNjsxMTA2IDExNkQgMTFCNTtCQjI2OzExMDYgMTE2RCAxMUI1OworQkIyNztCQjI3OzExMDYgMTE2RCAxMUI2O0JCMjc7MTEwNiAxMTZEIDExQjY7CitCQjI4O0JCMjg7MTEwNiAxMTZEIDExQjc7QkIyODsxMTA2IDExNkQgMTFCNzsKK0JCMjk7QkIyOTsxMTA2IDExNkQgMTFCODtCQjI5OzExMDYgMTE2RCAxMUI4OworQkIyQTtCQjJBOzExMDYgMTE2RCAxMUI5O0JCMkE7MTEwNiAxMTZEIDExQjk7CitCQjJCO0JCMkI7MTEwNiAxMTZEIDExQkE7QkIyQjsxMTA2IDExNkQgMTFCQTsKK0JCMkM7QkIyQzsxMTA2IDExNkQgMTFCQjtCQjJDOzExMDYgMTE2RCAxMUJCOworQkIyRDtCQjJEOzExMDYgMTE2RCAxMUJDO0JCMkQ7MTEwNiAxMTZEIDExQkM7CitCQjJFO0JCMkU7MTEwNiAxMTZEIDExQkQ7QkIyRTsxMTA2IDExNkQgMTFCRDsKK0JCMkY7QkIyRjsxMTA2IDExNkQgMTFCRTtCQjJGOzExMDYgMTE2RCAxMUJFOworQkIzMDtCQjMwOzExMDYgMTE2RCAxMUJGO0JCMzA7MTEwNiAxMTZEIDExQkY7CitCQjMxO0JCMzE7MTEwNiAxMTZEIDExQzA7QkIzMTsxMTA2IDExNkQgMTFDMDsKK0JCMzI7QkIzMjsxMTA2IDExNkQgMTFDMTtCQjMyOzExMDYgMTE2RCAxMUMxOworQkIzMztCQjMzOzExMDYgMTE2RCAxMUMyO0JCMzM7MTEwNiAxMTZEIDExQzI7CitCQjM0O0JCMzQ7MTEwNiAxMTZFO0JCMzQ7MTEwNiAxMTZFOworQkIzNTtCQjM1OzExMDYgMTE2RSAxMUE4O0JCMzU7MTEwNiAxMTZFIDExQTg7CitCQjM2O0JCMzY7MTEwNiAxMTZFIDExQTk7QkIzNjsxMTA2IDExNkUgMTFBOTsKK0JCMzc7QkIzNzsxMTA2IDExNkUgMTFBQTtCQjM3OzExMDYgMTE2RSAxMUFBOworQkIzODtCQjM4OzExMDYgMTE2RSAxMUFCO0JCMzg7MTEwNiAxMTZFIDExQUI7CitCQjM5O0JCMzk7MTEwNiAxMTZFIDExQUM7QkIzOTsxMTA2IDExNkUgMTFBQzsKK0JCM0E7QkIzQTsxMTA2IDExNkUgMTFBRDtCQjNBOzExMDYgMTE2RSAxMUFEOworQkIzQjtCQjNCOzExMDYgMTE2RSAxMUFFO0JCM0I7MTEwNiAxMTZFIDExQUU7CitCQjNDO0JCM0M7MTEwNiAxMTZFIDExQUY7QkIzQzsxMTA2IDExNkUgMTFBRjsKK0JCM0Q7QkIzRDsxMTA2IDExNkUgMTFCMDtCQjNEOzExMDYgMTE2RSAxMUIwOworQkIzRTtCQjNFOzExMDYgMTE2RSAxMUIxO0JCM0U7MTEwNiAxMTZFIDExQjE7CitCQjNGO0JCM0Y7MTEwNiAxMTZFIDExQjI7QkIzRjsxMTA2IDExNkUgMTFCMjsKK0JCNDA7QkI0MDsxMTA2IDExNkUgMTFCMztCQjQwOzExMDYgMTE2RSAxMUIzOworQkI0MTtCQjQxOzExMDYgMTE2RSAxMUI0O0JCNDE7MTEwNiAxMTZFIDExQjQ7CitCQjQyO0JCNDI7MTEwNiAxMTZFIDExQjU7QkI0MjsxMTA2IDExNkUgMTFCNTsKK0JCNDM7QkI0MzsxMTA2IDExNkUgMTFCNjtCQjQzOzExMDYgMTE2RSAxMUI2OworQkI0NDtCQjQ0OzExMDYgMTE2RSAxMUI3O0JCNDQ7MTEwNiAxMTZFIDExQjc7CitCQjQ1O0JCNDU7MTEwNiAxMTZFIDExQjg7QkI0NTsxMTA2IDExNkUgMTFCODsKK0JCNDY7QkI0NjsxMTA2IDExNkUgMTFCOTtCQjQ2OzExMDYgMTE2RSAxMUI5OworQkI0NztCQjQ3OzExMDYgMTE2RSAxMUJBO0JCNDc7MTEwNiAxMTZFIDExQkE7CitCQjQ4O0JCNDg7MTEwNiAxMTZFIDExQkI7QkI0ODsxMTA2IDExNkUgMTFCQjsKK0JCNDk7QkI0OTsxMTA2IDExNkUgMTFCQztCQjQ5OzExMDYgMTE2RSAxMUJDOworQkI0QTtCQjRBOzExMDYgMTE2RSAxMUJEO0JCNEE7MTEwNiAxMTZFIDExQkQ7CitCQjRCO0JCNEI7MTEwNiAxMTZFIDExQkU7QkI0QjsxMTA2IDExNkUgMTFCRTsKK0JCNEM7QkI0QzsxMTA2IDExNkUgMTFCRjtCQjRDOzExMDYgMTE2RSAxMUJGOworQkI0RDtCQjREOzExMDYgMTE2RSAxMUMwO0JCNEQ7MTEwNiAxMTZFIDExQzA7CitCQjRFO0JCNEU7MTEwNiAxMTZFIDExQzE7QkI0RTsxMTA2IDExNkUgMTFDMTsKK0JCNEY7QkI0RjsxMTA2IDExNkUgMTFDMjtCQjRGOzExMDYgMTE2RSAxMUMyOworQkI1MDtCQjUwOzExMDYgMTE2RjtCQjUwOzExMDYgMTE2RjsKK0JCNTE7QkI1MTsxMTA2IDExNkYgMTFBODtCQjUxOzExMDYgMTE2RiAxMUE4OworQkI1MjtCQjUyOzExMDYgMTE2RiAxMUE5O0JCNTI7MTEwNiAxMTZGIDExQTk7CitCQjUzO0JCNTM7MTEwNiAxMTZGIDExQUE7QkI1MzsxMTA2IDExNkYgMTFBQTsKK0JCNTQ7QkI1NDsxMTA2IDExNkYgMTFBQjtCQjU0OzExMDYgMTE2RiAxMUFCOworQkI1NTtCQjU1OzExMDYgMTE2RiAxMUFDO0JCNTU7MTEwNiAxMTZGIDExQUM7CitCQjU2O0JCNTY7MTEwNiAxMTZGIDExQUQ7QkI1NjsxMTA2IDExNkYgMTFBRDsKK0JCNTc7QkI1NzsxMTA2IDExNkYgMTFBRTtCQjU3OzExMDYgMTE2RiAxMUFFOworQkI1ODtCQjU4OzExMDYgMTE2RiAxMUFGO0JCNTg7MTEwNiAxMTZGIDExQUY7CitCQjU5O0JCNTk7MTEwNiAxMTZGIDExQjA7QkI1OTsxMTA2IDExNkYgMTFCMDsKK0JCNUE7QkI1QTsxMTA2IDExNkYgMTFCMTtCQjVBOzExMDYgMTE2RiAxMUIxOworQkI1QjtCQjVCOzExMDYgMTE2RiAxMUIyO0JCNUI7MTEwNiAxMTZGIDExQjI7CitCQjVDO0JCNUM7MTEwNiAxMTZGIDExQjM7QkI1QzsxMTA2IDExNkYgMTFCMzsKK0JCNUQ7QkI1RDsxMTA2IDExNkYgMTFCNDtCQjVEOzExMDYgMTE2RiAxMUI0OworQkI1RTtCQjVFOzExMDYgMTE2RiAxMUI1O0JCNUU7MTEwNiAxMTZGIDExQjU7CitCQjVGO0JCNUY7MTEwNiAxMTZGIDExQjY7QkI1RjsxMTA2IDExNkYgMTFCNjsKK0JCNjA7QkI2MDsxMTA2IDExNkYgMTFCNztCQjYwOzExMDYgMTE2RiAxMUI3OworQkI2MTtCQjYxOzExMDYgMTE2RiAxMUI4O0JCNjE7MTEwNiAxMTZGIDExQjg7CitCQjYyO0JCNjI7MTEwNiAxMTZGIDExQjk7QkI2MjsxMTA2IDExNkYgMTFCOTsKK0JCNjM7QkI2MzsxMTA2IDExNkYgMTFCQTtCQjYzOzExMDYgMTE2RiAxMUJBOworQkI2NDtCQjY0OzExMDYgMTE2RiAxMUJCO0JCNjQ7MTEwNiAxMTZGIDExQkI7CitCQjY1O0JCNjU7MTEwNiAxMTZGIDExQkM7QkI2NTsxMTA2IDExNkYgMTFCQzsKK0JCNjY7QkI2NjsxMTA2IDExNkYgMTFCRDtCQjY2OzExMDYgMTE2RiAxMUJEOworQkI2NztCQjY3OzExMDYgMTE2RiAxMUJFO0JCNjc7MTEwNiAxMTZGIDExQkU7CitCQjY4O0JCNjg7MTEwNiAxMTZGIDExQkY7QkI2ODsxMTA2IDExNkYgMTFCRjsKK0JCNjk7QkI2OTsxMTA2IDExNkYgMTFDMDtCQjY5OzExMDYgMTE2RiAxMUMwOworQkI2QTtCQjZBOzExMDYgMTE2RiAxMUMxO0JCNkE7MTEwNiAxMTZGIDExQzE7CitCQjZCO0JCNkI7MTEwNiAxMTZGIDExQzI7QkI2QjsxMTA2IDExNkYgMTFDMjsKK0JCNkM7QkI2QzsxMTA2IDExNzA7QkI2QzsxMTA2IDExNzA7CitCQjZEO0JCNkQ7MTEwNiAxMTcwIDExQTg7QkI2RDsxMTA2IDExNzAgMTFBODsKK0JCNkU7QkI2RTsxMTA2IDExNzAgMTFBOTtCQjZFOzExMDYgMTE3MCAxMUE5OworQkI2RjtCQjZGOzExMDYgMTE3MCAxMUFBO0JCNkY7MTEwNiAxMTcwIDExQUE7CitCQjcwO0JCNzA7MTEwNiAxMTcwIDExQUI7QkI3MDsxMTA2IDExNzAgMTFBQjsKK0JCNzE7QkI3MTsxMTA2IDExNzAgMTFBQztCQjcxOzExMDYgMTE3MCAxMUFDOworQkI3MjtCQjcyOzExMDYgMTE3MCAxMUFEO0JCNzI7MTEwNiAxMTcwIDExQUQ7CitCQjczO0JCNzM7MTEwNiAxMTcwIDExQUU7QkI3MzsxMTA2IDExNzAgMTFBRTsKK0JCNzQ7QkI3NDsxMTA2IDExNzAgMTFBRjtCQjc0OzExMDYgMTE3MCAxMUFGOworQkI3NTtCQjc1OzExMDYgMTE3MCAxMUIwO0JCNzU7MTEwNiAxMTcwIDExQjA7CitCQjc2O0JCNzY7MTEwNiAxMTcwIDExQjE7QkI3NjsxMTA2IDExNzAgMTFCMTsKK0JCNzc7QkI3NzsxMTA2IDExNzAgMTFCMjtCQjc3OzExMDYgMTE3MCAxMUIyOworQkI3ODtCQjc4OzExMDYgMTE3MCAxMUIzO0JCNzg7MTEwNiAxMTcwIDExQjM7CitCQjc5O0JCNzk7MTEwNiAxMTcwIDExQjQ7QkI3OTsxMTA2IDExNzAgMTFCNDsKK0JCN0E7QkI3QTsxMTA2IDExNzAgMTFCNTtCQjdBOzExMDYgMTE3MCAxMUI1OworQkI3QjtCQjdCOzExMDYgMTE3MCAxMUI2O0JCN0I7MTEwNiAxMTcwIDExQjY7CitCQjdDO0JCN0M7MTEwNiAxMTcwIDExQjc7QkI3QzsxMTA2IDExNzAgMTFCNzsKK0JCN0Q7QkI3RDsxMTA2IDExNzAgMTFCODtCQjdEOzExMDYgMTE3MCAxMUI4OworQkI3RTtCQjdFOzExMDYgMTE3MCAxMUI5O0JCN0U7MTEwNiAxMTcwIDExQjk7CitCQjdGO0JCN0Y7MTEwNiAxMTcwIDExQkE7QkI3RjsxMTA2IDExNzAgMTFCQTsKK0JCODA7QkI4MDsxMTA2IDExNzAgMTFCQjtCQjgwOzExMDYgMTE3MCAxMUJCOworQkI4MTtCQjgxOzExMDYgMTE3MCAxMUJDO0JCODE7MTEwNiAxMTcwIDExQkM7CitCQjgyO0JCODI7MTEwNiAxMTcwIDExQkQ7QkI4MjsxMTA2IDExNzAgMTFCRDsKK0JCODM7QkI4MzsxMTA2IDExNzAgMTFCRTtCQjgzOzExMDYgMTE3MCAxMUJFOworQkI4NDtCQjg0OzExMDYgMTE3MCAxMUJGO0JCODQ7MTEwNiAxMTcwIDExQkY7CitCQjg1O0JCODU7MTEwNiAxMTcwIDExQzA7QkI4NTsxMTA2IDExNzAgMTFDMDsKK0JCODY7QkI4NjsxMTA2IDExNzAgMTFDMTtCQjg2OzExMDYgMTE3MCAxMUMxOworQkI4NztCQjg3OzExMDYgMTE3MCAxMUMyO0JCODc7MTEwNiAxMTcwIDExQzI7CitCQjg4O0JCODg7MTEwNiAxMTcxO0JCODg7MTEwNiAxMTcxOworQkI4OTtCQjg5OzExMDYgMTE3MSAxMUE4O0JCODk7MTEwNiAxMTcxIDExQTg7CitCQjhBO0JCOEE7MTEwNiAxMTcxIDExQTk7QkI4QTsxMTA2IDExNzEgMTFBOTsKK0JCOEI7QkI4QjsxMTA2IDExNzEgMTFBQTtCQjhCOzExMDYgMTE3MSAxMUFBOworQkI4QztCQjhDOzExMDYgMTE3MSAxMUFCO0JCOEM7MTEwNiAxMTcxIDExQUI7CitCQjhEO0JCOEQ7MTEwNiAxMTcxIDExQUM7QkI4RDsxMTA2IDExNzEgMTFBQzsKK0JCOEU7QkI4RTsxMTA2IDExNzEgMTFBRDtCQjhFOzExMDYgMTE3MSAxMUFEOworQkI4RjtCQjhGOzExMDYgMTE3MSAxMUFFO0JCOEY7MTEwNiAxMTcxIDExQUU7CitCQjkwO0JCOTA7MTEwNiAxMTcxIDExQUY7QkI5MDsxMTA2IDExNzEgMTFBRjsKK0JCOTE7QkI5MTsxMTA2IDExNzEgMTFCMDtCQjkxOzExMDYgMTE3MSAxMUIwOworQkI5MjtCQjkyOzExMDYgMTE3MSAxMUIxO0JCOTI7MTEwNiAxMTcxIDExQjE7CitCQjkzO0JCOTM7MTEwNiAxMTcxIDExQjI7QkI5MzsxMTA2IDExNzEgMTFCMjsKK0JCOTQ7QkI5NDsxMTA2IDExNzEgMTFCMztCQjk0OzExMDYgMTE3MSAxMUIzOworQkI5NTtCQjk1OzExMDYgMTE3MSAxMUI0O0JCOTU7MTEwNiAxMTcxIDExQjQ7CitCQjk2O0JCOTY7MTEwNiAxMTcxIDExQjU7QkI5NjsxMTA2IDExNzEgMTFCNTsKK0JCOTc7QkI5NzsxMTA2IDExNzEgMTFCNjtCQjk3OzExMDYgMTE3MSAxMUI2OworQkI5ODtCQjk4OzExMDYgMTE3MSAxMUI3O0JCOTg7MTEwNiAxMTcxIDExQjc7CitCQjk5O0JCOTk7MTEwNiAxMTcxIDExQjg7QkI5OTsxMTA2IDExNzEgMTFCODsKK0JCOUE7QkI5QTsxMTA2IDExNzEgMTFCOTtCQjlBOzExMDYgMTE3MSAxMUI5OworQkI5QjtCQjlCOzExMDYgMTE3MSAxMUJBO0JCOUI7MTEwNiAxMTcxIDExQkE7CitCQjlDO0JCOUM7MTEwNiAxMTcxIDExQkI7QkI5QzsxMTA2IDExNzEgMTFCQjsKK0JCOUQ7QkI5RDsxMTA2IDExNzEgMTFCQztCQjlEOzExMDYgMTE3MSAxMUJDOworQkI5RTtCQjlFOzExMDYgMTE3MSAxMUJEO0JCOUU7MTEwNiAxMTcxIDExQkQ7CitCQjlGO0JCOUY7MTEwNiAxMTcxIDExQkU7QkI5RjsxMTA2IDExNzEgMTFCRTsKK0JCQTA7QkJBMDsxMTA2IDExNzEgMTFCRjtCQkEwOzExMDYgMTE3MSAxMUJGOworQkJBMTtCQkExOzExMDYgMTE3MSAxMUMwO0JCQTE7MTEwNiAxMTcxIDExQzA7CitCQkEyO0JCQTI7MTEwNiAxMTcxIDExQzE7QkJBMjsxMTA2IDExNzEgMTFDMTsKK0JCQTM7QkJBMzsxMTA2IDExNzEgMTFDMjtCQkEzOzExMDYgMTE3MSAxMUMyOworQkJBNDtCQkE0OzExMDYgMTE3MjtCQkE0OzExMDYgMTE3MjsKK0JCQTU7QkJBNTsxMTA2IDExNzIgMTFBODtCQkE1OzExMDYgMTE3MiAxMUE4OworQkJBNjtCQkE2OzExMDYgMTE3MiAxMUE5O0JCQTY7MTEwNiAxMTcyIDExQTk7CitCQkE3O0JCQTc7MTEwNiAxMTcyIDExQUE7QkJBNzsxMTA2IDExNzIgMTFBQTsKK0JCQTg7QkJBODsxMTA2IDExNzIgMTFBQjtCQkE4OzExMDYgMTE3MiAxMUFCOworQkJBOTtCQkE5OzExMDYgMTE3MiAxMUFDO0JCQTk7MTEwNiAxMTcyIDExQUM7CitCQkFBO0JCQUE7MTEwNiAxMTcyIDExQUQ7QkJBQTsxMTA2IDExNzIgMTFBRDsKK0JCQUI7QkJBQjsxMTA2IDExNzIgMTFBRTtCQkFCOzExMDYgMTE3MiAxMUFFOworQkJBQztCQkFDOzExMDYgMTE3MiAxMUFGO0JCQUM7MTEwNiAxMTcyIDExQUY7CitCQkFEO0JCQUQ7MTEwNiAxMTcyIDExQjA7QkJBRDsxMTA2IDExNzIgMTFCMDsKK0JCQUU7QkJBRTsxMTA2IDExNzIgMTFCMTtCQkFFOzExMDYgMTE3MiAxMUIxOworQkJBRjtCQkFGOzExMDYgMTE3MiAxMUIyO0JCQUY7MTEwNiAxMTcyIDExQjI7CitCQkIwO0JCQjA7MTEwNiAxMTcyIDExQjM7QkJCMDsxMTA2IDExNzIgMTFCMzsKK0JCQjE7QkJCMTsxMTA2IDExNzIgMTFCNDtCQkIxOzExMDYgMTE3MiAxMUI0OworQkJCMjtCQkIyOzExMDYgMTE3MiAxMUI1O0JCQjI7MTEwNiAxMTcyIDExQjU7CitCQkIzO0JCQjM7MTEwNiAxMTcyIDExQjY7QkJCMzsxMTA2IDExNzIgMTFCNjsKK0JCQjQ7QkJCNDsxMTA2IDExNzIgMTFCNztCQkI0OzExMDYgMTE3MiAxMUI3OworQkJCNTtCQkI1OzExMDYgMTE3MiAxMUI4O0JCQjU7MTEwNiAxMTcyIDExQjg7CitCQkI2O0JCQjY7MTEwNiAxMTcyIDExQjk7QkJCNjsxMTA2IDExNzIgMTFCOTsKK0JCQjc7QkJCNzsxMTA2IDExNzIgMTFCQTtCQkI3OzExMDYgMTE3MiAxMUJBOworQkJCODtCQkI4OzExMDYgMTE3MiAxMUJCO0JCQjg7MTEwNiAxMTcyIDExQkI7CitCQkI5O0JCQjk7MTEwNiAxMTcyIDExQkM7QkJCOTsxMTA2IDExNzIgMTFCQzsKK0JCQkE7QkJCQTsxMTA2IDExNzIgMTFCRDtCQkJBOzExMDYgMTE3MiAxMUJEOworQkJCQjtCQkJCOzExMDYgMTE3MiAxMUJFO0JCQkI7MTEwNiAxMTcyIDExQkU7CitCQkJDO0JCQkM7MTEwNiAxMTcyIDExQkY7QkJCQzsxMTA2IDExNzIgMTFCRjsKK0JCQkQ7QkJCRDsxMTA2IDExNzIgMTFDMDtCQkJEOzExMDYgMTE3MiAxMUMwOworQkJCRTtCQkJFOzExMDYgMTE3MiAxMUMxO0JCQkU7MTEwNiAxMTcyIDExQzE7CitCQkJGO0JCQkY7MTEwNiAxMTcyIDExQzI7QkJCRjsxMTA2IDExNzIgMTFDMjsKK0JCQzA7QkJDMDsxMTA2IDExNzM7QkJDMDsxMTA2IDExNzM7CitCQkMxO0JCQzE7MTEwNiAxMTczIDExQTg7QkJDMTsxMTA2IDExNzMgMTFBODsKK0JCQzI7QkJDMjsxMTA2IDExNzMgMTFBOTtCQkMyOzExMDYgMTE3MyAxMUE5OworQkJDMztCQkMzOzExMDYgMTE3MyAxMUFBO0JCQzM7MTEwNiAxMTczIDExQUE7CitCQkM0O0JCQzQ7MTEwNiAxMTczIDExQUI7QkJDNDsxMTA2IDExNzMgMTFBQjsKK0JCQzU7QkJDNTsxMTA2IDExNzMgMTFBQztCQkM1OzExMDYgMTE3MyAxMUFDOworQkJDNjtCQkM2OzExMDYgMTE3MyAxMUFEO0JCQzY7MTEwNiAxMTczIDExQUQ7CitCQkM3O0JCQzc7MTEwNiAxMTczIDExQUU7QkJDNzsxMTA2IDExNzMgMTFBRTsKK0JCQzg7QkJDODsxMTA2IDExNzMgMTFBRjtCQkM4OzExMDYgMTE3MyAxMUFGOworQkJDOTtCQkM5OzExMDYgMTE3MyAxMUIwO0JCQzk7MTEwNiAxMTczIDExQjA7CitCQkNBO0JCQ0E7MTEwNiAxMTczIDExQjE7QkJDQTsxMTA2IDExNzMgMTFCMTsKK0JCQ0I7QkJDQjsxMTA2IDExNzMgMTFCMjtCQkNCOzExMDYgMTE3MyAxMUIyOworQkJDQztCQkNDOzExMDYgMTE3MyAxMUIzO0JCQ0M7MTEwNiAxMTczIDExQjM7CitCQkNEO0JCQ0Q7MTEwNiAxMTczIDExQjQ7QkJDRDsxMTA2IDExNzMgMTFCNDsKK0JCQ0U7QkJDRTsxMTA2IDExNzMgMTFCNTtCQkNFOzExMDYgMTE3MyAxMUI1OworQkJDRjtCQkNGOzExMDYgMTE3MyAxMUI2O0JCQ0Y7MTEwNiAxMTczIDExQjY7CitCQkQwO0JCRDA7MTEwNiAxMTczIDExQjc7QkJEMDsxMTA2IDExNzMgMTFCNzsKK0JCRDE7QkJEMTsxMTA2IDExNzMgMTFCODtCQkQxOzExMDYgMTE3MyAxMUI4OworQkJEMjtCQkQyOzExMDYgMTE3MyAxMUI5O0JCRDI7MTEwNiAxMTczIDExQjk7CitCQkQzO0JCRDM7MTEwNiAxMTczIDExQkE7QkJEMzsxMTA2IDExNzMgMTFCQTsKK0JCRDQ7QkJENDsxMTA2IDExNzMgMTFCQjtCQkQ0OzExMDYgMTE3MyAxMUJCOworQkJENTtCQkQ1OzExMDYgMTE3MyAxMUJDO0JCRDU7MTEwNiAxMTczIDExQkM7CitCQkQ2O0JCRDY7MTEwNiAxMTczIDExQkQ7QkJENjsxMTA2IDExNzMgMTFCRDsKK0JCRDc7QkJENzsxMTA2IDExNzMgMTFCRTtCQkQ3OzExMDYgMTE3MyAxMUJFOworQkJEODtCQkQ4OzExMDYgMTE3MyAxMUJGO0JCRDg7MTEwNiAxMTczIDExQkY7CitCQkQ5O0JCRDk7MTEwNiAxMTczIDExQzA7QkJEOTsxMTA2IDExNzMgMTFDMDsKK0JCREE7QkJEQTsxMTA2IDExNzMgMTFDMTtCQkRBOzExMDYgMTE3MyAxMUMxOworQkJEQjtCQkRCOzExMDYgMTE3MyAxMUMyO0JCREI7MTEwNiAxMTczIDExQzI7CitCQkRDO0JCREM7MTEwNiAxMTc0O0JCREM7MTEwNiAxMTc0OworQkJERDtCQkREOzExMDYgMTE3NCAxMUE4O0JCREQ7MTEwNiAxMTc0IDExQTg7CitCQkRFO0JCREU7MTEwNiAxMTc0IDExQTk7QkJERTsxMTA2IDExNzQgMTFBOTsKK0JCREY7QkJERjsxMTA2IDExNzQgMTFBQTtCQkRGOzExMDYgMTE3NCAxMUFBOworQkJFMDtCQkUwOzExMDYgMTE3NCAxMUFCO0JCRTA7MTEwNiAxMTc0IDExQUI7CitCQkUxO0JCRTE7MTEwNiAxMTc0IDExQUM7QkJFMTsxMTA2IDExNzQgMTFBQzsKK0JCRTI7QkJFMjsxMTA2IDExNzQgMTFBRDtCQkUyOzExMDYgMTE3NCAxMUFEOworQkJFMztCQkUzOzExMDYgMTE3NCAxMUFFO0JCRTM7MTEwNiAxMTc0IDExQUU7CitCQkU0O0JCRTQ7MTEwNiAxMTc0IDExQUY7QkJFNDsxMTA2IDExNzQgMTFBRjsKK0JCRTU7QkJFNTsxMTA2IDExNzQgMTFCMDtCQkU1OzExMDYgMTE3NCAxMUIwOworQkJFNjtCQkU2OzExMDYgMTE3NCAxMUIxO0JCRTY7MTEwNiAxMTc0IDExQjE7CitCQkU3O0JCRTc7MTEwNiAxMTc0IDExQjI7QkJFNzsxMTA2IDExNzQgMTFCMjsKK0JCRTg7QkJFODsxMTA2IDExNzQgMTFCMztCQkU4OzExMDYgMTE3NCAxMUIzOworQkJFOTtCQkU5OzExMDYgMTE3NCAxMUI0O0JCRTk7MTEwNiAxMTc0IDExQjQ7CitCQkVBO0JCRUE7MTEwNiAxMTc0IDExQjU7QkJFQTsxMTA2IDExNzQgMTFCNTsKK0JCRUI7QkJFQjsxMTA2IDExNzQgMTFCNjtCQkVCOzExMDYgMTE3NCAxMUI2OworQkJFQztCQkVDOzExMDYgMTE3NCAxMUI3O0JCRUM7MTEwNiAxMTc0IDExQjc7CitCQkVEO0JCRUQ7MTEwNiAxMTc0IDExQjg7QkJFRDsxMTA2IDExNzQgMTFCODsKK0JCRUU7QkJFRTsxMTA2IDExNzQgMTFCOTtCQkVFOzExMDYgMTE3NCAxMUI5OworQkJFRjtCQkVGOzExMDYgMTE3NCAxMUJBO0JCRUY7MTEwNiAxMTc0IDExQkE7CitCQkYwO0JCRjA7MTEwNiAxMTc0IDExQkI7QkJGMDsxMTA2IDExNzQgMTFCQjsKK0JCRjE7QkJGMTsxMTA2IDExNzQgMTFCQztCQkYxOzExMDYgMTE3NCAxMUJDOworQkJGMjtCQkYyOzExMDYgMTE3NCAxMUJEO0JCRjI7MTEwNiAxMTc0IDExQkQ7CitCQkYzO0JCRjM7MTEwNiAxMTc0IDExQkU7QkJGMzsxMTA2IDExNzQgMTFCRTsKK0JCRjQ7QkJGNDsxMTA2IDExNzQgMTFCRjtCQkY0OzExMDYgMTE3NCAxMUJGOworQkJGNTtCQkY1OzExMDYgMTE3NCAxMUMwO0JCRjU7MTEwNiAxMTc0IDExQzA7CitCQkY2O0JCRjY7MTEwNiAxMTc0IDExQzE7QkJGNjsxMTA2IDExNzQgMTFDMTsKK0JCRjc7QkJGNzsxMTA2IDExNzQgMTFDMjtCQkY3OzExMDYgMTE3NCAxMUMyOworQkJGODtCQkY4OzExMDYgMTE3NTtCQkY4OzExMDYgMTE3NTsKK0JCRjk7QkJGOTsxMTA2IDExNzUgMTFBODtCQkY5OzExMDYgMTE3NSAxMUE4OworQkJGQTtCQkZBOzExMDYgMTE3NSAxMUE5O0JCRkE7MTEwNiAxMTc1IDExQTk7CitCQkZCO0JCRkI7MTEwNiAxMTc1IDExQUE7QkJGQjsxMTA2IDExNzUgMTFBQTsKK0JCRkM7QkJGQzsxMTA2IDExNzUgMTFBQjtCQkZDOzExMDYgMTE3NSAxMUFCOworQkJGRDtCQkZEOzExMDYgMTE3NSAxMUFDO0JCRkQ7MTEwNiAxMTc1IDExQUM7CitCQkZFO0JCRkU7MTEwNiAxMTc1IDExQUQ7QkJGRTsxMTA2IDExNzUgMTFBRDsKK0JCRkY7QkJGRjsxMTA2IDExNzUgMTFBRTtCQkZGOzExMDYgMTE3NSAxMUFFOworQkMwMDtCQzAwOzExMDYgMTE3NSAxMUFGO0JDMDA7MTEwNiAxMTc1IDExQUY7CitCQzAxO0JDMDE7MTEwNiAxMTc1IDExQjA7QkMwMTsxMTA2IDExNzUgMTFCMDsKK0JDMDI7QkMwMjsxMTA2IDExNzUgMTFCMTtCQzAyOzExMDYgMTE3NSAxMUIxOworQkMwMztCQzAzOzExMDYgMTE3NSAxMUIyO0JDMDM7MTEwNiAxMTc1IDExQjI7CitCQzA0O0JDMDQ7MTEwNiAxMTc1IDExQjM7QkMwNDsxMTA2IDExNzUgMTFCMzsKK0JDMDU7QkMwNTsxMTA2IDExNzUgMTFCNDtCQzA1OzExMDYgMTE3NSAxMUI0OworQkMwNjtCQzA2OzExMDYgMTE3NSAxMUI1O0JDMDY7MTEwNiAxMTc1IDExQjU7CitCQzA3O0JDMDc7MTEwNiAxMTc1IDExQjY7QkMwNzsxMTA2IDExNzUgMTFCNjsKK0JDMDg7QkMwODsxMTA2IDExNzUgMTFCNztCQzA4OzExMDYgMTE3NSAxMUI3OworQkMwOTtCQzA5OzExMDYgMTE3NSAxMUI4O0JDMDk7MTEwNiAxMTc1IDExQjg7CitCQzBBO0JDMEE7MTEwNiAxMTc1IDExQjk7QkMwQTsxMTA2IDExNzUgMTFCOTsKK0JDMEI7QkMwQjsxMTA2IDExNzUgMTFCQTtCQzBCOzExMDYgMTE3NSAxMUJBOworQkMwQztCQzBDOzExMDYgMTE3NSAxMUJCO0JDMEM7MTEwNiAxMTc1IDExQkI7CitCQzBEO0JDMEQ7MTEwNiAxMTc1IDExQkM7QkMwRDsxMTA2IDExNzUgMTFCQzsKK0JDMEU7QkMwRTsxMTA2IDExNzUgMTFCRDtCQzBFOzExMDYgMTE3NSAxMUJEOworQkMwRjtCQzBGOzExMDYgMTE3NSAxMUJFO0JDMEY7MTEwNiAxMTc1IDExQkU7CitCQzEwO0JDMTA7MTEwNiAxMTc1IDExQkY7QkMxMDsxMTA2IDExNzUgMTFCRjsKK0JDMTE7QkMxMTsxMTA2IDExNzUgMTFDMDtCQzExOzExMDYgMTE3NSAxMUMwOworQkMxMjtCQzEyOzExMDYgMTE3NSAxMUMxO0JDMTI7MTEwNiAxMTc1IDExQzE7CitCQzEzO0JDMTM7MTEwNiAxMTc1IDExQzI7QkMxMzsxMTA2IDExNzUgMTFDMjsKK0JDMTQ7QkMxNDsxMTA3IDExNjE7QkMxNDsxMTA3IDExNjE7CitCQzE1O0JDMTU7MTEwNyAxMTYxIDExQTg7QkMxNTsxMTA3IDExNjEgMTFBODsKK0JDMTY7QkMxNjsxMTA3IDExNjEgMTFBOTtCQzE2OzExMDcgMTE2MSAxMUE5OworQkMxNztCQzE3OzExMDcgMTE2MSAxMUFBO0JDMTc7MTEwNyAxMTYxIDExQUE7CitCQzE4O0JDMTg7MTEwNyAxMTYxIDExQUI7QkMxODsxMTA3IDExNjEgMTFBQjsKK0JDMTk7QkMxOTsxMTA3IDExNjEgMTFBQztCQzE5OzExMDcgMTE2MSAxMUFDOworQkMxQTtCQzFBOzExMDcgMTE2MSAxMUFEO0JDMUE7MTEwNyAxMTYxIDExQUQ7CitCQzFCO0JDMUI7MTEwNyAxMTYxIDExQUU7QkMxQjsxMTA3IDExNjEgMTFBRTsKK0JDMUM7QkMxQzsxMTA3IDExNjEgMTFBRjtCQzFDOzExMDcgMTE2MSAxMUFGOworQkMxRDtCQzFEOzExMDcgMTE2MSAxMUIwO0JDMUQ7MTEwNyAxMTYxIDExQjA7CitCQzFFO0JDMUU7MTEwNyAxMTYxIDExQjE7QkMxRTsxMTA3IDExNjEgMTFCMTsKK0JDMUY7QkMxRjsxMTA3IDExNjEgMTFCMjtCQzFGOzExMDcgMTE2MSAxMUIyOworQkMyMDtCQzIwOzExMDcgMTE2MSAxMUIzO0JDMjA7MTEwNyAxMTYxIDExQjM7CitCQzIxO0JDMjE7MTEwNyAxMTYxIDExQjQ7QkMyMTsxMTA3IDExNjEgMTFCNDsKK0JDMjI7QkMyMjsxMTA3IDExNjEgMTFCNTtCQzIyOzExMDcgMTE2MSAxMUI1OworQkMyMztCQzIzOzExMDcgMTE2MSAxMUI2O0JDMjM7MTEwNyAxMTYxIDExQjY7CitCQzI0O0JDMjQ7MTEwNyAxMTYxIDExQjc7QkMyNDsxMTA3IDExNjEgMTFCNzsKK0JDMjU7QkMyNTsxMTA3IDExNjEgMTFCODtCQzI1OzExMDcgMTE2MSAxMUI4OworQkMyNjtCQzI2OzExMDcgMTE2MSAxMUI5O0JDMjY7MTEwNyAxMTYxIDExQjk7CitCQzI3O0JDMjc7MTEwNyAxMTYxIDExQkE7QkMyNzsxMTA3IDExNjEgMTFCQTsKK0JDMjg7QkMyODsxMTA3IDExNjEgMTFCQjtCQzI4OzExMDcgMTE2MSAxMUJCOworQkMyOTtCQzI5OzExMDcgMTE2MSAxMUJDO0JDMjk7MTEwNyAxMTYxIDExQkM7CitCQzJBO0JDMkE7MTEwNyAxMTYxIDExQkQ7QkMyQTsxMTA3IDExNjEgMTFCRDsKK0JDMkI7QkMyQjsxMTA3IDExNjEgMTFCRTtCQzJCOzExMDcgMTE2MSAxMUJFOworQkMyQztCQzJDOzExMDcgMTE2MSAxMUJGO0JDMkM7MTEwNyAxMTYxIDExQkY7CitCQzJEO0JDMkQ7MTEwNyAxMTYxIDExQzA7QkMyRDsxMTA3IDExNjEgMTFDMDsKK0JDMkU7QkMyRTsxMTA3IDExNjEgMTFDMTtCQzJFOzExMDcgMTE2MSAxMUMxOworQkMyRjtCQzJGOzExMDcgMTE2MSAxMUMyO0JDMkY7MTEwNyAxMTYxIDExQzI7CitCQzMwO0JDMzA7MTEwNyAxMTYyO0JDMzA7MTEwNyAxMTYyOworQkMzMTtCQzMxOzExMDcgMTE2MiAxMUE4O0JDMzE7MTEwNyAxMTYyIDExQTg7CitCQzMyO0JDMzI7MTEwNyAxMTYyIDExQTk7QkMzMjsxMTA3IDExNjIgMTFBOTsKK0JDMzM7QkMzMzsxMTA3IDExNjIgMTFBQTtCQzMzOzExMDcgMTE2MiAxMUFBOworQkMzNDtCQzM0OzExMDcgMTE2MiAxMUFCO0JDMzQ7MTEwNyAxMTYyIDExQUI7CitCQzM1O0JDMzU7MTEwNyAxMTYyIDExQUM7QkMzNTsxMTA3IDExNjIgMTFBQzsKK0JDMzY7QkMzNjsxMTA3IDExNjIgMTFBRDtCQzM2OzExMDcgMTE2MiAxMUFEOworQkMzNztCQzM3OzExMDcgMTE2MiAxMUFFO0JDMzc7MTEwNyAxMTYyIDExQUU7CitCQzM4O0JDMzg7MTEwNyAxMTYyIDExQUY7QkMzODsxMTA3IDExNjIgMTFBRjsKK0JDMzk7QkMzOTsxMTA3IDExNjIgMTFCMDtCQzM5OzExMDcgMTE2MiAxMUIwOworQkMzQTtCQzNBOzExMDcgMTE2MiAxMUIxO0JDM0E7MTEwNyAxMTYyIDExQjE7CitCQzNCO0JDM0I7MTEwNyAxMTYyIDExQjI7QkMzQjsxMTA3IDExNjIgMTFCMjsKK0JDM0M7QkMzQzsxMTA3IDExNjIgMTFCMztCQzNDOzExMDcgMTE2MiAxMUIzOworQkMzRDtCQzNEOzExMDcgMTE2MiAxMUI0O0JDM0Q7MTEwNyAxMTYyIDExQjQ7CitCQzNFO0JDM0U7MTEwNyAxMTYyIDExQjU7QkMzRTsxMTA3IDExNjIgMTFCNTsKK0JDM0Y7QkMzRjsxMTA3IDExNjIgMTFCNjtCQzNGOzExMDcgMTE2MiAxMUI2OworQkM0MDtCQzQwOzExMDcgMTE2MiAxMUI3O0JDNDA7MTEwNyAxMTYyIDExQjc7CitCQzQxO0JDNDE7MTEwNyAxMTYyIDExQjg7QkM0MTsxMTA3IDExNjIgMTFCODsKK0JDNDI7QkM0MjsxMTA3IDExNjIgMTFCOTtCQzQyOzExMDcgMTE2MiAxMUI5OworQkM0MztCQzQzOzExMDcgMTE2MiAxMUJBO0JDNDM7MTEwNyAxMTYyIDExQkE7CitCQzQ0O0JDNDQ7MTEwNyAxMTYyIDExQkI7QkM0NDsxMTA3IDExNjIgMTFCQjsKK0JDNDU7QkM0NTsxMTA3IDExNjIgMTFCQztCQzQ1OzExMDcgMTE2MiAxMUJDOworQkM0NjtCQzQ2OzExMDcgMTE2MiAxMUJEO0JDNDY7MTEwNyAxMTYyIDExQkQ7CitCQzQ3O0JDNDc7MTEwNyAxMTYyIDExQkU7QkM0NzsxMTA3IDExNjIgMTFCRTsKK0JDNDg7QkM0ODsxMTA3IDExNjIgMTFCRjtCQzQ4OzExMDcgMTE2MiAxMUJGOworQkM0OTtCQzQ5OzExMDcgMTE2MiAxMUMwO0JDNDk7MTEwNyAxMTYyIDExQzA7CitCQzRBO0JDNEE7MTEwNyAxMTYyIDExQzE7QkM0QTsxMTA3IDExNjIgMTFDMTsKK0JDNEI7QkM0QjsxMTA3IDExNjIgMTFDMjtCQzRCOzExMDcgMTE2MiAxMUMyOworQkM0QztCQzRDOzExMDcgMTE2MztCQzRDOzExMDcgMTE2MzsKK0JDNEQ7QkM0RDsxMTA3IDExNjMgMTFBODtCQzREOzExMDcgMTE2MyAxMUE4OworQkM0RTtCQzRFOzExMDcgMTE2MyAxMUE5O0JDNEU7MTEwNyAxMTYzIDExQTk7CitCQzRGO0JDNEY7MTEwNyAxMTYzIDExQUE7QkM0RjsxMTA3IDExNjMgMTFBQTsKK0JDNTA7QkM1MDsxMTA3IDExNjMgMTFBQjtCQzUwOzExMDcgMTE2MyAxMUFCOworQkM1MTtCQzUxOzExMDcgMTE2MyAxMUFDO0JDNTE7MTEwNyAxMTYzIDExQUM7CitCQzUyO0JDNTI7MTEwNyAxMTYzIDExQUQ7QkM1MjsxMTA3IDExNjMgMTFBRDsKK0JDNTM7QkM1MzsxMTA3IDExNjMgMTFBRTtCQzUzOzExMDcgMTE2MyAxMUFFOworQkM1NDtCQzU0OzExMDcgMTE2MyAxMUFGO0JDNTQ7MTEwNyAxMTYzIDExQUY7CitCQzU1O0JDNTU7MTEwNyAxMTYzIDExQjA7QkM1NTsxMTA3IDExNjMgMTFCMDsKK0JDNTY7QkM1NjsxMTA3IDExNjMgMTFCMTtCQzU2OzExMDcgMTE2MyAxMUIxOworQkM1NztCQzU3OzExMDcgMTE2MyAxMUIyO0JDNTc7MTEwNyAxMTYzIDExQjI7CitCQzU4O0JDNTg7MTEwNyAxMTYzIDExQjM7QkM1ODsxMTA3IDExNjMgMTFCMzsKK0JDNTk7QkM1OTsxMTA3IDExNjMgMTFCNDtCQzU5OzExMDcgMTE2MyAxMUI0OworQkM1QTtCQzVBOzExMDcgMTE2MyAxMUI1O0JDNUE7MTEwNyAxMTYzIDExQjU7CitCQzVCO0JDNUI7MTEwNyAxMTYzIDExQjY7QkM1QjsxMTA3IDExNjMgMTFCNjsKK0JDNUM7QkM1QzsxMTA3IDExNjMgMTFCNztCQzVDOzExMDcgMTE2MyAxMUI3OworQkM1RDtCQzVEOzExMDcgMTE2MyAxMUI4O0JDNUQ7MTEwNyAxMTYzIDExQjg7CitCQzVFO0JDNUU7MTEwNyAxMTYzIDExQjk7QkM1RTsxMTA3IDExNjMgMTFCOTsKK0JDNUY7QkM1RjsxMTA3IDExNjMgMTFCQTtCQzVGOzExMDcgMTE2MyAxMUJBOworQkM2MDtCQzYwOzExMDcgMTE2MyAxMUJCO0JDNjA7MTEwNyAxMTYzIDExQkI7CitCQzYxO0JDNjE7MTEwNyAxMTYzIDExQkM7QkM2MTsxMTA3IDExNjMgMTFCQzsKK0JDNjI7QkM2MjsxMTA3IDExNjMgMTFCRDtCQzYyOzExMDcgMTE2MyAxMUJEOworQkM2MztCQzYzOzExMDcgMTE2MyAxMUJFO0JDNjM7MTEwNyAxMTYzIDExQkU7CitCQzY0O0JDNjQ7MTEwNyAxMTYzIDExQkY7QkM2NDsxMTA3IDExNjMgMTFCRjsKK0JDNjU7QkM2NTsxMTA3IDExNjMgMTFDMDtCQzY1OzExMDcgMTE2MyAxMUMwOworQkM2NjtCQzY2OzExMDcgMTE2MyAxMUMxO0JDNjY7MTEwNyAxMTYzIDExQzE7CitCQzY3O0JDNjc7MTEwNyAxMTYzIDExQzI7QkM2NzsxMTA3IDExNjMgMTFDMjsKK0JDNjg7QkM2ODsxMTA3IDExNjQ7QkM2ODsxMTA3IDExNjQ7CitCQzY5O0JDNjk7MTEwNyAxMTY0IDExQTg7QkM2OTsxMTA3IDExNjQgMTFBODsKK0JDNkE7QkM2QTsxMTA3IDExNjQgMTFBOTtCQzZBOzExMDcgMTE2NCAxMUE5OworQkM2QjtCQzZCOzExMDcgMTE2NCAxMUFBO0JDNkI7MTEwNyAxMTY0IDExQUE7CitCQzZDO0JDNkM7MTEwNyAxMTY0IDExQUI7QkM2QzsxMTA3IDExNjQgMTFBQjsKK0JDNkQ7QkM2RDsxMTA3IDExNjQgMTFBQztCQzZEOzExMDcgMTE2NCAxMUFDOworQkM2RTtCQzZFOzExMDcgMTE2NCAxMUFEO0JDNkU7MTEwNyAxMTY0IDExQUQ7CitCQzZGO0JDNkY7MTEwNyAxMTY0IDExQUU7QkM2RjsxMTA3IDExNjQgMTFBRTsKK0JDNzA7QkM3MDsxMTA3IDExNjQgMTFBRjtCQzcwOzExMDcgMTE2NCAxMUFGOworQkM3MTtCQzcxOzExMDcgMTE2NCAxMUIwO0JDNzE7MTEwNyAxMTY0IDExQjA7CitCQzcyO0JDNzI7MTEwNyAxMTY0IDExQjE7QkM3MjsxMTA3IDExNjQgMTFCMTsKK0JDNzM7QkM3MzsxMTA3IDExNjQgMTFCMjtCQzczOzExMDcgMTE2NCAxMUIyOworQkM3NDtCQzc0OzExMDcgMTE2NCAxMUIzO0JDNzQ7MTEwNyAxMTY0IDExQjM7CitCQzc1O0JDNzU7MTEwNyAxMTY0IDExQjQ7QkM3NTsxMTA3IDExNjQgMTFCNDsKK0JDNzY7QkM3NjsxMTA3IDExNjQgMTFCNTtCQzc2OzExMDcgMTE2NCAxMUI1OworQkM3NztCQzc3OzExMDcgMTE2NCAxMUI2O0JDNzc7MTEwNyAxMTY0IDExQjY7CitCQzc4O0JDNzg7MTEwNyAxMTY0IDExQjc7QkM3ODsxMTA3IDExNjQgMTFCNzsKK0JDNzk7QkM3OTsxMTA3IDExNjQgMTFCODtCQzc5OzExMDcgMTE2NCAxMUI4OworQkM3QTtCQzdBOzExMDcgMTE2NCAxMUI5O0JDN0E7MTEwNyAxMTY0IDExQjk7CitCQzdCO0JDN0I7MTEwNyAxMTY0IDExQkE7QkM3QjsxMTA3IDExNjQgMTFCQTsKK0JDN0M7QkM3QzsxMTA3IDExNjQgMTFCQjtCQzdDOzExMDcgMTE2NCAxMUJCOworQkM3RDtCQzdEOzExMDcgMTE2NCAxMUJDO0JDN0Q7MTEwNyAxMTY0IDExQkM7CitCQzdFO0JDN0U7MTEwNyAxMTY0IDExQkQ7QkM3RTsxMTA3IDExNjQgMTFCRDsKK0JDN0Y7QkM3RjsxMTA3IDExNjQgMTFCRTtCQzdGOzExMDcgMTE2NCAxMUJFOworQkM4MDtCQzgwOzExMDcgMTE2NCAxMUJGO0JDODA7MTEwNyAxMTY0IDExQkY7CitCQzgxO0JDODE7MTEwNyAxMTY0IDExQzA7QkM4MTsxMTA3IDExNjQgMTFDMDsKK0JDODI7QkM4MjsxMTA3IDExNjQgMTFDMTtCQzgyOzExMDcgMTE2NCAxMUMxOworQkM4MztCQzgzOzExMDcgMTE2NCAxMUMyO0JDODM7MTEwNyAxMTY0IDExQzI7CitCQzg0O0JDODQ7MTEwNyAxMTY1O0JDODQ7MTEwNyAxMTY1OworQkM4NTtCQzg1OzExMDcgMTE2NSAxMUE4O0JDODU7MTEwNyAxMTY1IDExQTg7CitCQzg2O0JDODY7MTEwNyAxMTY1IDExQTk7QkM4NjsxMTA3IDExNjUgMTFBOTsKK0JDODc7QkM4NzsxMTA3IDExNjUgMTFBQTtCQzg3OzExMDcgMTE2NSAxMUFBOworQkM4ODtCQzg4OzExMDcgMTE2NSAxMUFCO0JDODg7MTEwNyAxMTY1IDExQUI7CitCQzg5O0JDODk7MTEwNyAxMTY1IDExQUM7QkM4OTsxMTA3IDExNjUgMTFBQzsKK0JDOEE7QkM4QTsxMTA3IDExNjUgMTFBRDtCQzhBOzExMDcgMTE2NSAxMUFEOworQkM4QjtCQzhCOzExMDcgMTE2NSAxMUFFO0JDOEI7MTEwNyAxMTY1IDExQUU7CitCQzhDO0JDOEM7MTEwNyAxMTY1IDExQUY7QkM4QzsxMTA3IDExNjUgMTFBRjsKK0JDOEQ7QkM4RDsxMTA3IDExNjUgMTFCMDtCQzhEOzExMDcgMTE2NSAxMUIwOworQkM4RTtCQzhFOzExMDcgMTE2NSAxMUIxO0JDOEU7MTEwNyAxMTY1IDExQjE7CitCQzhGO0JDOEY7MTEwNyAxMTY1IDExQjI7QkM4RjsxMTA3IDExNjUgMTFCMjsKK0JDOTA7QkM5MDsxMTA3IDExNjUgMTFCMztCQzkwOzExMDcgMTE2NSAxMUIzOworQkM5MTtCQzkxOzExMDcgMTE2NSAxMUI0O0JDOTE7MTEwNyAxMTY1IDExQjQ7CitCQzkyO0JDOTI7MTEwNyAxMTY1IDExQjU7QkM5MjsxMTA3IDExNjUgMTFCNTsKK0JDOTM7QkM5MzsxMTA3IDExNjUgMTFCNjtCQzkzOzExMDcgMTE2NSAxMUI2OworQkM5NDtCQzk0OzExMDcgMTE2NSAxMUI3O0JDOTQ7MTEwNyAxMTY1IDExQjc7CitCQzk1O0JDOTU7MTEwNyAxMTY1IDExQjg7QkM5NTsxMTA3IDExNjUgMTFCODsKK0JDOTY7QkM5NjsxMTA3IDExNjUgMTFCOTtCQzk2OzExMDcgMTE2NSAxMUI5OworQkM5NztCQzk3OzExMDcgMTE2NSAxMUJBO0JDOTc7MTEwNyAxMTY1IDExQkE7CitCQzk4O0JDOTg7MTEwNyAxMTY1IDExQkI7QkM5ODsxMTA3IDExNjUgMTFCQjsKK0JDOTk7QkM5OTsxMTA3IDExNjUgMTFCQztCQzk5OzExMDcgMTE2NSAxMUJDOworQkM5QTtCQzlBOzExMDcgMTE2NSAxMUJEO0JDOUE7MTEwNyAxMTY1IDExQkQ7CitCQzlCO0JDOUI7MTEwNyAxMTY1IDExQkU7QkM5QjsxMTA3IDExNjUgMTFCRTsKK0JDOUM7QkM5QzsxMTA3IDExNjUgMTFCRjtCQzlDOzExMDcgMTE2NSAxMUJGOworQkM5RDtCQzlEOzExMDcgMTE2NSAxMUMwO0JDOUQ7MTEwNyAxMTY1IDExQzA7CitCQzlFO0JDOUU7MTEwNyAxMTY1IDExQzE7QkM5RTsxMTA3IDExNjUgMTFDMTsKK0JDOUY7QkM5RjsxMTA3IDExNjUgMTFDMjtCQzlGOzExMDcgMTE2NSAxMUMyOworQkNBMDtCQ0EwOzExMDcgMTE2NjtCQ0EwOzExMDcgMTE2NjsKK0JDQTE7QkNBMTsxMTA3IDExNjYgMTFBODtCQ0ExOzExMDcgMTE2NiAxMUE4OworQkNBMjtCQ0EyOzExMDcgMTE2NiAxMUE5O0JDQTI7MTEwNyAxMTY2IDExQTk7CitCQ0EzO0JDQTM7MTEwNyAxMTY2IDExQUE7QkNBMzsxMTA3IDExNjYgMTFBQTsKK0JDQTQ7QkNBNDsxMTA3IDExNjYgMTFBQjtCQ0E0OzExMDcgMTE2NiAxMUFCOworQkNBNTtCQ0E1OzExMDcgMTE2NiAxMUFDO0JDQTU7MTEwNyAxMTY2IDExQUM7CitCQ0E2O0JDQTY7MTEwNyAxMTY2IDExQUQ7QkNBNjsxMTA3IDExNjYgMTFBRDsKK0JDQTc7QkNBNzsxMTA3IDExNjYgMTFBRTtCQ0E3OzExMDcgMTE2NiAxMUFFOworQkNBODtCQ0E4OzExMDcgMTE2NiAxMUFGO0JDQTg7MTEwNyAxMTY2IDExQUY7CitCQ0E5O0JDQTk7MTEwNyAxMTY2IDExQjA7QkNBOTsxMTA3IDExNjYgMTFCMDsKK0JDQUE7QkNBQTsxMTA3IDExNjYgMTFCMTtCQ0FBOzExMDcgMTE2NiAxMUIxOworQkNBQjtCQ0FCOzExMDcgMTE2NiAxMUIyO0JDQUI7MTEwNyAxMTY2IDExQjI7CitCQ0FDO0JDQUM7MTEwNyAxMTY2IDExQjM7QkNBQzsxMTA3IDExNjYgMTFCMzsKK0JDQUQ7QkNBRDsxMTA3IDExNjYgMTFCNDtCQ0FEOzExMDcgMTE2NiAxMUI0OworQkNBRTtCQ0FFOzExMDcgMTE2NiAxMUI1O0JDQUU7MTEwNyAxMTY2IDExQjU7CitCQ0FGO0JDQUY7MTEwNyAxMTY2IDExQjY7QkNBRjsxMTA3IDExNjYgMTFCNjsKK0JDQjA7QkNCMDsxMTA3IDExNjYgMTFCNztCQ0IwOzExMDcgMTE2NiAxMUI3OworQkNCMTtCQ0IxOzExMDcgMTE2NiAxMUI4O0JDQjE7MTEwNyAxMTY2IDExQjg7CitCQ0IyO0JDQjI7MTEwNyAxMTY2IDExQjk7QkNCMjsxMTA3IDExNjYgMTFCOTsKK0JDQjM7QkNCMzsxMTA3IDExNjYgMTFCQTtCQ0IzOzExMDcgMTE2NiAxMUJBOworQkNCNDtCQ0I0OzExMDcgMTE2NiAxMUJCO0JDQjQ7MTEwNyAxMTY2IDExQkI7CitCQ0I1O0JDQjU7MTEwNyAxMTY2IDExQkM7QkNCNTsxMTA3IDExNjYgMTFCQzsKK0JDQjY7QkNCNjsxMTA3IDExNjYgMTFCRDtCQ0I2OzExMDcgMTE2NiAxMUJEOworQkNCNztCQ0I3OzExMDcgMTE2NiAxMUJFO0JDQjc7MTEwNyAxMTY2IDExQkU7CitCQ0I4O0JDQjg7MTEwNyAxMTY2IDExQkY7QkNCODsxMTA3IDExNjYgMTFCRjsKK0JDQjk7QkNCOTsxMTA3IDExNjYgMTFDMDtCQ0I5OzExMDcgMTE2NiAxMUMwOworQkNCQTtCQ0JBOzExMDcgMTE2NiAxMUMxO0JDQkE7MTEwNyAxMTY2IDExQzE7CitCQ0JCO0JDQkI7MTEwNyAxMTY2IDExQzI7QkNCQjsxMTA3IDExNjYgMTFDMjsKK0JDQkM7QkNCQzsxMTA3IDExNjc7QkNCQzsxMTA3IDExNjc7CitCQ0JEO0JDQkQ7MTEwNyAxMTY3IDExQTg7QkNCRDsxMTA3IDExNjcgMTFBODsKK0JDQkU7QkNCRTsxMTA3IDExNjcgMTFBOTtCQ0JFOzExMDcgMTE2NyAxMUE5OworQkNCRjtCQ0JGOzExMDcgMTE2NyAxMUFBO0JDQkY7MTEwNyAxMTY3IDExQUE7CitCQ0MwO0JDQzA7MTEwNyAxMTY3IDExQUI7QkNDMDsxMTA3IDExNjcgMTFBQjsKK0JDQzE7QkNDMTsxMTA3IDExNjcgMTFBQztCQ0MxOzExMDcgMTE2NyAxMUFDOworQkNDMjtCQ0MyOzExMDcgMTE2NyAxMUFEO0JDQzI7MTEwNyAxMTY3IDExQUQ7CitCQ0MzO0JDQzM7MTEwNyAxMTY3IDExQUU7QkNDMzsxMTA3IDExNjcgMTFBRTsKK0JDQzQ7QkNDNDsxMTA3IDExNjcgMTFBRjtCQ0M0OzExMDcgMTE2NyAxMUFGOworQkNDNTtCQ0M1OzExMDcgMTE2NyAxMUIwO0JDQzU7MTEwNyAxMTY3IDExQjA7CitCQ0M2O0JDQzY7MTEwNyAxMTY3IDExQjE7QkNDNjsxMTA3IDExNjcgMTFCMTsKK0JDQzc7QkNDNzsxMTA3IDExNjcgMTFCMjtCQ0M3OzExMDcgMTE2NyAxMUIyOworQkNDODtCQ0M4OzExMDcgMTE2NyAxMUIzO0JDQzg7MTEwNyAxMTY3IDExQjM7CitCQ0M5O0JDQzk7MTEwNyAxMTY3IDExQjQ7QkNDOTsxMTA3IDExNjcgMTFCNDsKK0JDQ0E7QkNDQTsxMTA3IDExNjcgMTFCNTtCQ0NBOzExMDcgMTE2NyAxMUI1OworQkNDQjtCQ0NCOzExMDcgMTE2NyAxMUI2O0JDQ0I7MTEwNyAxMTY3IDExQjY7CitCQ0NDO0JDQ0M7MTEwNyAxMTY3IDExQjc7QkNDQzsxMTA3IDExNjcgMTFCNzsKK0JDQ0Q7QkNDRDsxMTA3IDExNjcgMTFCODtCQ0NEOzExMDcgMTE2NyAxMUI4OworQkNDRTtCQ0NFOzExMDcgMTE2NyAxMUI5O0JDQ0U7MTEwNyAxMTY3IDExQjk7CitCQ0NGO0JDQ0Y7MTEwNyAxMTY3IDExQkE7QkNDRjsxMTA3IDExNjcgMTFCQTsKK0JDRDA7QkNEMDsxMTA3IDExNjcgMTFCQjtCQ0QwOzExMDcgMTE2NyAxMUJCOworQkNEMTtCQ0QxOzExMDcgMTE2NyAxMUJDO0JDRDE7MTEwNyAxMTY3IDExQkM7CitCQ0QyO0JDRDI7MTEwNyAxMTY3IDExQkQ7QkNEMjsxMTA3IDExNjcgMTFCRDsKK0JDRDM7QkNEMzsxMTA3IDExNjcgMTFCRTtCQ0QzOzExMDcgMTE2NyAxMUJFOworQkNENDtCQ0Q0OzExMDcgMTE2NyAxMUJGO0JDRDQ7MTEwNyAxMTY3IDExQkY7CitCQ0Q1O0JDRDU7MTEwNyAxMTY3IDExQzA7QkNENTsxMTA3IDExNjcgMTFDMDsKK0JDRDY7QkNENjsxMTA3IDExNjcgMTFDMTtCQ0Q2OzExMDcgMTE2NyAxMUMxOworQkNENztCQ0Q3OzExMDcgMTE2NyAxMUMyO0JDRDc7MTEwNyAxMTY3IDExQzI7CitCQ0Q4O0JDRDg7MTEwNyAxMTY4O0JDRDg7MTEwNyAxMTY4OworQkNEOTtCQ0Q5OzExMDcgMTE2OCAxMUE4O0JDRDk7MTEwNyAxMTY4IDExQTg7CitCQ0RBO0JDREE7MTEwNyAxMTY4IDExQTk7QkNEQTsxMTA3IDExNjggMTFBOTsKK0JDREI7QkNEQjsxMTA3IDExNjggMTFBQTtCQ0RCOzExMDcgMTE2OCAxMUFBOworQkNEQztCQ0RDOzExMDcgMTE2OCAxMUFCO0JDREM7MTEwNyAxMTY4IDExQUI7CitCQ0REO0JDREQ7MTEwNyAxMTY4IDExQUM7QkNERDsxMTA3IDExNjggMTFBQzsKK0JDREU7QkNERTsxMTA3IDExNjggMTFBRDtCQ0RFOzExMDcgMTE2OCAxMUFEOworQkNERjtCQ0RGOzExMDcgMTE2OCAxMUFFO0JDREY7MTEwNyAxMTY4IDExQUU7CitCQ0UwO0JDRTA7MTEwNyAxMTY4IDExQUY7QkNFMDsxMTA3IDExNjggMTFBRjsKK0JDRTE7QkNFMTsxMTA3IDExNjggMTFCMDtCQ0UxOzExMDcgMTE2OCAxMUIwOworQkNFMjtCQ0UyOzExMDcgMTE2OCAxMUIxO0JDRTI7MTEwNyAxMTY4IDExQjE7CitCQ0UzO0JDRTM7MTEwNyAxMTY4IDExQjI7QkNFMzsxMTA3IDExNjggMTFCMjsKK0JDRTQ7QkNFNDsxMTA3IDExNjggMTFCMztCQ0U0OzExMDcgMTE2OCAxMUIzOworQkNFNTtCQ0U1OzExMDcgMTE2OCAxMUI0O0JDRTU7MTEwNyAxMTY4IDExQjQ7CitCQ0U2O0JDRTY7MTEwNyAxMTY4IDExQjU7QkNFNjsxMTA3IDExNjggMTFCNTsKK0JDRTc7QkNFNzsxMTA3IDExNjggMTFCNjtCQ0U3OzExMDcgMTE2OCAxMUI2OworQkNFODtCQ0U4OzExMDcgMTE2OCAxMUI3O0JDRTg7MTEwNyAxMTY4IDExQjc7CitCQ0U5O0JDRTk7MTEwNyAxMTY4IDExQjg7QkNFOTsxMTA3IDExNjggMTFCODsKK0JDRUE7QkNFQTsxMTA3IDExNjggMTFCOTtCQ0VBOzExMDcgMTE2OCAxMUI5OworQkNFQjtCQ0VCOzExMDcgMTE2OCAxMUJBO0JDRUI7MTEwNyAxMTY4IDExQkE7CitCQ0VDO0JDRUM7MTEwNyAxMTY4IDExQkI7QkNFQzsxMTA3IDExNjggMTFCQjsKK0JDRUQ7QkNFRDsxMTA3IDExNjggMTFCQztCQ0VEOzExMDcgMTE2OCAxMUJDOworQkNFRTtCQ0VFOzExMDcgMTE2OCAxMUJEO0JDRUU7MTEwNyAxMTY4IDExQkQ7CitCQ0VGO0JDRUY7MTEwNyAxMTY4IDExQkU7QkNFRjsxMTA3IDExNjggMTFCRTsKK0JDRjA7QkNGMDsxMTA3IDExNjggMTFCRjtCQ0YwOzExMDcgMTE2OCAxMUJGOworQkNGMTtCQ0YxOzExMDcgMTE2OCAxMUMwO0JDRjE7MTEwNyAxMTY4IDExQzA7CitCQ0YyO0JDRjI7MTEwNyAxMTY4IDExQzE7QkNGMjsxMTA3IDExNjggMTFDMTsKK0JDRjM7QkNGMzsxMTA3IDExNjggMTFDMjtCQ0YzOzExMDcgMTE2OCAxMUMyOworQkNGNDtCQ0Y0OzExMDcgMTE2OTtCQ0Y0OzExMDcgMTE2OTsKK0JDRjU7QkNGNTsxMTA3IDExNjkgMTFBODtCQ0Y1OzExMDcgMTE2OSAxMUE4OworQkNGNjtCQ0Y2OzExMDcgMTE2OSAxMUE5O0JDRjY7MTEwNyAxMTY5IDExQTk7CitCQ0Y3O0JDRjc7MTEwNyAxMTY5IDExQUE7QkNGNzsxMTA3IDExNjkgMTFBQTsKK0JDRjg7QkNGODsxMTA3IDExNjkgMTFBQjtCQ0Y4OzExMDcgMTE2OSAxMUFCOworQkNGOTtCQ0Y5OzExMDcgMTE2OSAxMUFDO0JDRjk7MTEwNyAxMTY5IDExQUM7CitCQ0ZBO0JDRkE7MTEwNyAxMTY5IDExQUQ7QkNGQTsxMTA3IDExNjkgMTFBRDsKK0JDRkI7QkNGQjsxMTA3IDExNjkgMTFBRTtCQ0ZCOzExMDcgMTE2OSAxMUFFOworQkNGQztCQ0ZDOzExMDcgMTE2OSAxMUFGO0JDRkM7MTEwNyAxMTY5IDExQUY7CitCQ0ZEO0JDRkQ7MTEwNyAxMTY5IDExQjA7QkNGRDsxMTA3IDExNjkgMTFCMDsKK0JDRkU7QkNGRTsxMTA3IDExNjkgMTFCMTtCQ0ZFOzExMDcgMTE2OSAxMUIxOworQkNGRjtCQ0ZGOzExMDcgMTE2OSAxMUIyO0JDRkY7MTEwNyAxMTY5IDExQjI7CitCRDAwO0JEMDA7MTEwNyAxMTY5IDExQjM7QkQwMDsxMTA3IDExNjkgMTFCMzsKK0JEMDE7QkQwMTsxMTA3IDExNjkgMTFCNDtCRDAxOzExMDcgMTE2OSAxMUI0OworQkQwMjtCRDAyOzExMDcgMTE2OSAxMUI1O0JEMDI7MTEwNyAxMTY5IDExQjU7CitCRDAzO0JEMDM7MTEwNyAxMTY5IDExQjY7QkQwMzsxMTA3IDExNjkgMTFCNjsKK0JEMDQ7QkQwNDsxMTA3IDExNjkgMTFCNztCRDA0OzExMDcgMTE2OSAxMUI3OworQkQwNTtCRDA1OzExMDcgMTE2OSAxMUI4O0JEMDU7MTEwNyAxMTY5IDExQjg7CitCRDA2O0JEMDY7MTEwNyAxMTY5IDExQjk7QkQwNjsxMTA3IDExNjkgMTFCOTsKK0JEMDc7QkQwNzsxMTA3IDExNjkgMTFCQTtCRDA3OzExMDcgMTE2OSAxMUJBOworQkQwODtCRDA4OzExMDcgMTE2OSAxMUJCO0JEMDg7MTEwNyAxMTY5IDExQkI7CitCRDA5O0JEMDk7MTEwNyAxMTY5IDExQkM7QkQwOTsxMTA3IDExNjkgMTFCQzsKK0JEMEE7QkQwQTsxMTA3IDExNjkgMTFCRDtCRDBBOzExMDcgMTE2OSAxMUJEOworQkQwQjtCRDBCOzExMDcgMTE2OSAxMUJFO0JEMEI7MTEwNyAxMTY5IDExQkU7CitCRDBDO0JEMEM7MTEwNyAxMTY5IDExQkY7QkQwQzsxMTA3IDExNjkgMTFCRjsKK0JEMEQ7QkQwRDsxMTA3IDExNjkgMTFDMDtCRDBEOzExMDcgMTE2OSAxMUMwOworQkQwRTtCRDBFOzExMDcgMTE2OSAxMUMxO0JEMEU7MTEwNyAxMTY5IDExQzE7CitCRDBGO0JEMEY7MTEwNyAxMTY5IDExQzI7QkQwRjsxMTA3IDExNjkgMTFDMjsKK0JEMTA7QkQxMDsxMTA3IDExNkE7QkQxMDsxMTA3IDExNkE7CitCRDExO0JEMTE7MTEwNyAxMTZBIDExQTg7QkQxMTsxMTA3IDExNkEgMTFBODsKK0JEMTI7QkQxMjsxMTA3IDExNkEgMTFBOTtCRDEyOzExMDcgMTE2QSAxMUE5OworQkQxMztCRDEzOzExMDcgMTE2QSAxMUFBO0JEMTM7MTEwNyAxMTZBIDExQUE7CitCRDE0O0JEMTQ7MTEwNyAxMTZBIDExQUI7QkQxNDsxMTA3IDExNkEgMTFBQjsKK0JEMTU7QkQxNTsxMTA3IDExNkEgMTFBQztCRDE1OzExMDcgMTE2QSAxMUFDOworQkQxNjtCRDE2OzExMDcgMTE2QSAxMUFEO0JEMTY7MTEwNyAxMTZBIDExQUQ7CitCRDE3O0JEMTc7MTEwNyAxMTZBIDExQUU7QkQxNzsxMTA3IDExNkEgMTFBRTsKK0JEMTg7QkQxODsxMTA3IDExNkEgMTFBRjtCRDE4OzExMDcgMTE2QSAxMUFGOworQkQxOTtCRDE5OzExMDcgMTE2QSAxMUIwO0JEMTk7MTEwNyAxMTZBIDExQjA7CitCRDFBO0JEMUE7MTEwNyAxMTZBIDExQjE7QkQxQTsxMTA3IDExNkEgMTFCMTsKK0JEMUI7QkQxQjsxMTA3IDExNkEgMTFCMjtCRDFCOzExMDcgMTE2QSAxMUIyOworQkQxQztCRDFDOzExMDcgMTE2QSAxMUIzO0JEMUM7MTEwNyAxMTZBIDExQjM7CitCRDFEO0JEMUQ7MTEwNyAxMTZBIDExQjQ7QkQxRDsxMTA3IDExNkEgMTFCNDsKK0JEMUU7QkQxRTsxMTA3IDExNkEgMTFCNTtCRDFFOzExMDcgMTE2QSAxMUI1OworQkQxRjtCRDFGOzExMDcgMTE2QSAxMUI2O0JEMUY7MTEwNyAxMTZBIDExQjY7CitCRDIwO0JEMjA7MTEwNyAxMTZBIDExQjc7QkQyMDsxMTA3IDExNkEgMTFCNzsKK0JEMjE7QkQyMTsxMTA3IDExNkEgMTFCODtCRDIxOzExMDcgMTE2QSAxMUI4OworQkQyMjtCRDIyOzExMDcgMTE2QSAxMUI5O0JEMjI7MTEwNyAxMTZBIDExQjk7CitCRDIzO0JEMjM7MTEwNyAxMTZBIDExQkE7QkQyMzsxMTA3IDExNkEgMTFCQTsKK0JEMjQ7QkQyNDsxMTA3IDExNkEgMTFCQjtCRDI0OzExMDcgMTE2QSAxMUJCOworQkQyNTtCRDI1OzExMDcgMTE2QSAxMUJDO0JEMjU7MTEwNyAxMTZBIDExQkM7CitCRDI2O0JEMjY7MTEwNyAxMTZBIDExQkQ7QkQyNjsxMTA3IDExNkEgMTFCRDsKK0JEMjc7QkQyNzsxMTA3IDExNkEgMTFCRTtCRDI3OzExMDcgMTE2QSAxMUJFOworQkQyODtCRDI4OzExMDcgMTE2QSAxMUJGO0JEMjg7MTEwNyAxMTZBIDExQkY7CitCRDI5O0JEMjk7MTEwNyAxMTZBIDExQzA7QkQyOTsxMTA3IDExNkEgMTFDMDsKK0JEMkE7QkQyQTsxMTA3IDExNkEgMTFDMTtCRDJBOzExMDcgMTE2QSAxMUMxOworQkQyQjtCRDJCOzExMDcgMTE2QSAxMUMyO0JEMkI7MTEwNyAxMTZBIDExQzI7CitCRDJDO0JEMkM7MTEwNyAxMTZCO0JEMkM7MTEwNyAxMTZCOworQkQyRDtCRDJEOzExMDcgMTE2QiAxMUE4O0JEMkQ7MTEwNyAxMTZCIDExQTg7CitCRDJFO0JEMkU7MTEwNyAxMTZCIDExQTk7QkQyRTsxMTA3IDExNkIgMTFBOTsKK0JEMkY7QkQyRjsxMTA3IDExNkIgMTFBQTtCRDJGOzExMDcgMTE2QiAxMUFBOworQkQzMDtCRDMwOzExMDcgMTE2QiAxMUFCO0JEMzA7MTEwNyAxMTZCIDExQUI7CitCRDMxO0JEMzE7MTEwNyAxMTZCIDExQUM7QkQzMTsxMTA3IDExNkIgMTFBQzsKK0JEMzI7QkQzMjsxMTA3IDExNkIgMTFBRDtCRDMyOzExMDcgMTE2QiAxMUFEOworQkQzMztCRDMzOzExMDcgMTE2QiAxMUFFO0JEMzM7MTEwNyAxMTZCIDExQUU7CitCRDM0O0JEMzQ7MTEwNyAxMTZCIDExQUY7QkQzNDsxMTA3IDExNkIgMTFBRjsKK0JEMzU7QkQzNTsxMTA3IDExNkIgMTFCMDtCRDM1OzExMDcgMTE2QiAxMUIwOworQkQzNjtCRDM2OzExMDcgMTE2QiAxMUIxO0JEMzY7MTEwNyAxMTZCIDExQjE7CitCRDM3O0JEMzc7MTEwNyAxMTZCIDExQjI7QkQzNzsxMTA3IDExNkIgMTFCMjsKK0JEMzg7QkQzODsxMTA3IDExNkIgMTFCMztCRDM4OzExMDcgMTE2QiAxMUIzOworQkQzOTtCRDM5OzExMDcgMTE2QiAxMUI0O0JEMzk7MTEwNyAxMTZCIDExQjQ7CitCRDNBO0JEM0E7MTEwNyAxMTZCIDExQjU7QkQzQTsxMTA3IDExNkIgMTFCNTsKK0JEM0I7QkQzQjsxMTA3IDExNkIgMTFCNjtCRDNCOzExMDcgMTE2QiAxMUI2OworQkQzQztCRDNDOzExMDcgMTE2QiAxMUI3O0JEM0M7MTEwNyAxMTZCIDExQjc7CitCRDNEO0JEM0Q7MTEwNyAxMTZCIDExQjg7QkQzRDsxMTA3IDExNkIgMTFCODsKK0JEM0U7QkQzRTsxMTA3IDExNkIgMTFCOTtCRDNFOzExMDcgMTE2QiAxMUI5OworQkQzRjtCRDNGOzExMDcgMTE2QiAxMUJBO0JEM0Y7MTEwNyAxMTZCIDExQkE7CitCRDQwO0JENDA7MTEwNyAxMTZCIDExQkI7QkQ0MDsxMTA3IDExNkIgMTFCQjsKK0JENDE7QkQ0MTsxMTA3IDExNkIgMTFCQztCRDQxOzExMDcgMTE2QiAxMUJDOworQkQ0MjtCRDQyOzExMDcgMTE2QiAxMUJEO0JENDI7MTEwNyAxMTZCIDExQkQ7CitCRDQzO0JENDM7MTEwNyAxMTZCIDExQkU7QkQ0MzsxMTA3IDExNkIgMTFCRTsKK0JENDQ7QkQ0NDsxMTA3IDExNkIgMTFCRjtCRDQ0OzExMDcgMTE2QiAxMUJGOworQkQ0NTtCRDQ1OzExMDcgMTE2QiAxMUMwO0JENDU7MTEwNyAxMTZCIDExQzA7CitCRDQ2O0JENDY7MTEwNyAxMTZCIDExQzE7QkQ0NjsxMTA3IDExNkIgMTFDMTsKK0JENDc7QkQ0NzsxMTA3IDExNkIgMTFDMjtCRDQ3OzExMDcgMTE2QiAxMUMyOworQkQ0ODtCRDQ4OzExMDcgMTE2QztCRDQ4OzExMDcgMTE2QzsKK0JENDk7QkQ0OTsxMTA3IDExNkMgMTFBODtCRDQ5OzExMDcgMTE2QyAxMUE4OworQkQ0QTtCRDRBOzExMDcgMTE2QyAxMUE5O0JENEE7MTEwNyAxMTZDIDExQTk7CitCRDRCO0JENEI7MTEwNyAxMTZDIDExQUE7QkQ0QjsxMTA3IDExNkMgMTFBQTsKK0JENEM7QkQ0QzsxMTA3IDExNkMgMTFBQjtCRDRDOzExMDcgMTE2QyAxMUFCOworQkQ0RDtCRDREOzExMDcgMTE2QyAxMUFDO0JENEQ7MTEwNyAxMTZDIDExQUM7CitCRDRFO0JENEU7MTEwNyAxMTZDIDExQUQ7QkQ0RTsxMTA3IDExNkMgMTFBRDsKK0JENEY7QkQ0RjsxMTA3IDExNkMgMTFBRTtCRDRGOzExMDcgMTE2QyAxMUFFOworQkQ1MDtCRDUwOzExMDcgMTE2QyAxMUFGO0JENTA7MTEwNyAxMTZDIDExQUY7CitCRDUxO0JENTE7MTEwNyAxMTZDIDExQjA7QkQ1MTsxMTA3IDExNkMgMTFCMDsKK0JENTI7QkQ1MjsxMTA3IDExNkMgMTFCMTtCRDUyOzExMDcgMTE2QyAxMUIxOworQkQ1MztCRDUzOzExMDcgMTE2QyAxMUIyO0JENTM7MTEwNyAxMTZDIDExQjI7CitCRDU0O0JENTQ7MTEwNyAxMTZDIDExQjM7QkQ1NDsxMTA3IDExNkMgMTFCMzsKK0JENTU7QkQ1NTsxMTA3IDExNkMgMTFCNDtCRDU1OzExMDcgMTE2QyAxMUI0OworQkQ1NjtCRDU2OzExMDcgMTE2QyAxMUI1O0JENTY7MTEwNyAxMTZDIDExQjU7CitCRDU3O0JENTc7MTEwNyAxMTZDIDExQjY7QkQ1NzsxMTA3IDExNkMgMTFCNjsKK0JENTg7QkQ1ODsxMTA3IDExNkMgMTFCNztCRDU4OzExMDcgMTE2QyAxMUI3OworQkQ1OTtCRDU5OzExMDcgMTE2QyAxMUI4O0JENTk7MTEwNyAxMTZDIDExQjg7CitCRDVBO0JENUE7MTEwNyAxMTZDIDExQjk7QkQ1QTsxMTA3IDExNkMgMTFCOTsKK0JENUI7QkQ1QjsxMTA3IDExNkMgMTFCQTtCRDVCOzExMDcgMTE2QyAxMUJBOworQkQ1QztCRDVDOzExMDcgMTE2QyAxMUJCO0JENUM7MTEwNyAxMTZDIDExQkI7CitCRDVEO0JENUQ7MTEwNyAxMTZDIDExQkM7QkQ1RDsxMTA3IDExNkMgMTFCQzsKK0JENUU7QkQ1RTsxMTA3IDExNkMgMTFCRDtCRDVFOzExMDcgMTE2QyAxMUJEOworQkQ1RjtCRDVGOzExMDcgMTE2QyAxMUJFO0JENUY7MTEwNyAxMTZDIDExQkU7CitCRDYwO0JENjA7MTEwNyAxMTZDIDExQkY7QkQ2MDsxMTA3IDExNkMgMTFCRjsKK0JENjE7QkQ2MTsxMTA3IDExNkMgMTFDMDtCRDYxOzExMDcgMTE2QyAxMUMwOworQkQ2MjtCRDYyOzExMDcgMTE2QyAxMUMxO0JENjI7MTEwNyAxMTZDIDExQzE7CitCRDYzO0JENjM7MTEwNyAxMTZDIDExQzI7QkQ2MzsxMTA3IDExNkMgMTFDMjsKK0JENjQ7QkQ2NDsxMTA3IDExNkQ7QkQ2NDsxMTA3IDExNkQ7CitCRDY1O0JENjU7MTEwNyAxMTZEIDExQTg7QkQ2NTsxMTA3IDExNkQgMTFBODsKK0JENjY7QkQ2NjsxMTA3IDExNkQgMTFBOTtCRDY2OzExMDcgMTE2RCAxMUE5OworQkQ2NztCRDY3OzExMDcgMTE2RCAxMUFBO0JENjc7MTEwNyAxMTZEIDExQUE7CitCRDY4O0JENjg7MTEwNyAxMTZEIDExQUI7QkQ2ODsxMTA3IDExNkQgMTFBQjsKK0JENjk7QkQ2OTsxMTA3IDExNkQgMTFBQztCRDY5OzExMDcgMTE2RCAxMUFDOworQkQ2QTtCRDZBOzExMDcgMTE2RCAxMUFEO0JENkE7MTEwNyAxMTZEIDExQUQ7CitCRDZCO0JENkI7MTEwNyAxMTZEIDExQUU7QkQ2QjsxMTA3IDExNkQgMTFBRTsKK0JENkM7QkQ2QzsxMTA3IDExNkQgMTFBRjtCRDZDOzExMDcgMTE2RCAxMUFGOworQkQ2RDtCRDZEOzExMDcgMTE2RCAxMUIwO0JENkQ7MTEwNyAxMTZEIDExQjA7CitCRDZFO0JENkU7MTEwNyAxMTZEIDExQjE7QkQ2RTsxMTA3IDExNkQgMTFCMTsKK0JENkY7QkQ2RjsxMTA3IDExNkQgMTFCMjtCRDZGOzExMDcgMTE2RCAxMUIyOworQkQ3MDtCRDcwOzExMDcgMTE2RCAxMUIzO0JENzA7MTEwNyAxMTZEIDExQjM7CitCRDcxO0JENzE7MTEwNyAxMTZEIDExQjQ7QkQ3MTsxMTA3IDExNkQgMTFCNDsKK0JENzI7QkQ3MjsxMTA3IDExNkQgMTFCNTtCRDcyOzExMDcgMTE2RCAxMUI1OworQkQ3MztCRDczOzExMDcgMTE2RCAxMUI2O0JENzM7MTEwNyAxMTZEIDExQjY7CitCRDc0O0JENzQ7MTEwNyAxMTZEIDExQjc7QkQ3NDsxMTA3IDExNkQgMTFCNzsKK0JENzU7QkQ3NTsxMTA3IDExNkQgMTFCODtCRDc1OzExMDcgMTE2RCAxMUI4OworQkQ3NjtCRDc2OzExMDcgMTE2RCAxMUI5O0JENzY7MTEwNyAxMTZEIDExQjk7CitCRDc3O0JENzc7MTEwNyAxMTZEIDExQkE7QkQ3NzsxMTA3IDExNkQgMTFCQTsKK0JENzg7QkQ3ODsxMTA3IDExNkQgMTFCQjtCRDc4OzExMDcgMTE2RCAxMUJCOworQkQ3OTtCRDc5OzExMDcgMTE2RCAxMUJDO0JENzk7MTEwNyAxMTZEIDExQkM7CitCRDdBO0JEN0E7MTEwNyAxMTZEIDExQkQ7QkQ3QTsxMTA3IDExNkQgMTFCRDsKK0JEN0I7QkQ3QjsxMTA3IDExNkQgMTFCRTtCRDdCOzExMDcgMTE2RCAxMUJFOworQkQ3QztCRDdDOzExMDcgMTE2RCAxMUJGO0JEN0M7MTEwNyAxMTZEIDExQkY7CitCRDdEO0JEN0Q7MTEwNyAxMTZEIDExQzA7QkQ3RDsxMTA3IDExNkQgMTFDMDsKK0JEN0U7QkQ3RTsxMTA3IDExNkQgMTFDMTtCRDdFOzExMDcgMTE2RCAxMUMxOworQkQ3RjtCRDdGOzExMDcgMTE2RCAxMUMyO0JEN0Y7MTEwNyAxMTZEIDExQzI7CitCRDgwO0JEODA7MTEwNyAxMTZFO0JEODA7MTEwNyAxMTZFOworQkQ4MTtCRDgxOzExMDcgMTE2RSAxMUE4O0JEODE7MTEwNyAxMTZFIDExQTg7CitCRDgyO0JEODI7MTEwNyAxMTZFIDExQTk7QkQ4MjsxMTA3IDExNkUgMTFBOTsKK0JEODM7QkQ4MzsxMTA3IDExNkUgMTFBQTtCRDgzOzExMDcgMTE2RSAxMUFBOworQkQ4NDtCRDg0OzExMDcgMTE2RSAxMUFCO0JEODQ7MTEwNyAxMTZFIDExQUI7CitCRDg1O0JEODU7MTEwNyAxMTZFIDExQUM7QkQ4NTsxMTA3IDExNkUgMTFBQzsKK0JEODY7QkQ4NjsxMTA3IDExNkUgMTFBRDtCRDg2OzExMDcgMTE2RSAxMUFEOworQkQ4NztCRDg3OzExMDcgMTE2RSAxMUFFO0JEODc7MTEwNyAxMTZFIDExQUU7CitCRDg4O0JEODg7MTEwNyAxMTZFIDExQUY7QkQ4ODsxMTA3IDExNkUgMTFBRjsKK0JEODk7QkQ4OTsxMTA3IDExNkUgMTFCMDtCRDg5OzExMDcgMTE2RSAxMUIwOworQkQ4QTtCRDhBOzExMDcgMTE2RSAxMUIxO0JEOEE7MTEwNyAxMTZFIDExQjE7CitCRDhCO0JEOEI7MTEwNyAxMTZFIDExQjI7QkQ4QjsxMTA3IDExNkUgMTFCMjsKK0JEOEM7QkQ4QzsxMTA3IDExNkUgMTFCMztCRDhDOzExMDcgMTE2RSAxMUIzOworQkQ4RDtCRDhEOzExMDcgMTE2RSAxMUI0O0JEOEQ7MTEwNyAxMTZFIDExQjQ7CitCRDhFO0JEOEU7MTEwNyAxMTZFIDExQjU7QkQ4RTsxMTA3IDExNkUgMTFCNTsKK0JEOEY7QkQ4RjsxMTA3IDExNkUgMTFCNjtCRDhGOzExMDcgMTE2RSAxMUI2OworQkQ5MDtCRDkwOzExMDcgMTE2RSAxMUI3O0JEOTA7MTEwNyAxMTZFIDExQjc7CitCRDkxO0JEOTE7MTEwNyAxMTZFIDExQjg7QkQ5MTsxMTA3IDExNkUgMTFCODsKK0JEOTI7QkQ5MjsxMTA3IDExNkUgMTFCOTtCRDkyOzExMDcgMTE2RSAxMUI5OworQkQ5MztCRDkzOzExMDcgMTE2RSAxMUJBO0JEOTM7MTEwNyAxMTZFIDExQkE7CitCRDk0O0JEOTQ7MTEwNyAxMTZFIDExQkI7QkQ5NDsxMTA3IDExNkUgMTFCQjsKK0JEOTU7QkQ5NTsxMTA3IDExNkUgMTFCQztCRDk1OzExMDcgMTE2RSAxMUJDOworQkQ5NjtCRDk2OzExMDcgMTE2RSAxMUJEO0JEOTY7MTEwNyAxMTZFIDExQkQ7CitCRDk3O0JEOTc7MTEwNyAxMTZFIDExQkU7QkQ5NzsxMTA3IDExNkUgMTFCRTsKK0JEOTg7QkQ5ODsxMTA3IDExNkUgMTFCRjtCRDk4OzExMDcgMTE2RSAxMUJGOworQkQ5OTtCRDk5OzExMDcgMTE2RSAxMUMwO0JEOTk7MTEwNyAxMTZFIDExQzA7CitCRDlBO0JEOUE7MTEwNyAxMTZFIDExQzE7QkQ5QTsxMTA3IDExNkUgMTFDMTsKK0JEOUI7QkQ5QjsxMTA3IDExNkUgMTFDMjtCRDlCOzExMDcgMTE2RSAxMUMyOworQkQ5QztCRDlDOzExMDcgMTE2RjtCRDlDOzExMDcgMTE2RjsKK0JEOUQ7QkQ5RDsxMTA3IDExNkYgMTFBODtCRDlEOzExMDcgMTE2RiAxMUE4OworQkQ5RTtCRDlFOzExMDcgMTE2RiAxMUE5O0JEOUU7MTEwNyAxMTZGIDExQTk7CitCRDlGO0JEOUY7MTEwNyAxMTZGIDExQUE7QkQ5RjsxMTA3IDExNkYgMTFBQTsKK0JEQTA7QkRBMDsxMTA3IDExNkYgMTFBQjtCREEwOzExMDcgMTE2RiAxMUFCOworQkRBMTtCREExOzExMDcgMTE2RiAxMUFDO0JEQTE7MTEwNyAxMTZGIDExQUM7CitCREEyO0JEQTI7MTEwNyAxMTZGIDExQUQ7QkRBMjsxMTA3IDExNkYgMTFBRDsKK0JEQTM7QkRBMzsxMTA3IDExNkYgMTFBRTtCREEzOzExMDcgMTE2RiAxMUFFOworQkRBNDtCREE0OzExMDcgMTE2RiAxMUFGO0JEQTQ7MTEwNyAxMTZGIDExQUY7CitCREE1O0JEQTU7MTEwNyAxMTZGIDExQjA7QkRBNTsxMTA3IDExNkYgMTFCMDsKK0JEQTY7QkRBNjsxMTA3IDExNkYgMTFCMTtCREE2OzExMDcgMTE2RiAxMUIxOworQkRBNztCREE3OzExMDcgMTE2RiAxMUIyO0JEQTc7MTEwNyAxMTZGIDExQjI7CitCREE4O0JEQTg7MTEwNyAxMTZGIDExQjM7QkRBODsxMTA3IDExNkYgMTFCMzsKK0JEQTk7QkRBOTsxMTA3IDExNkYgMTFCNDtCREE5OzExMDcgMTE2RiAxMUI0OworQkRBQTtCREFBOzExMDcgMTE2RiAxMUI1O0JEQUE7MTEwNyAxMTZGIDExQjU7CitCREFCO0JEQUI7MTEwNyAxMTZGIDExQjY7QkRBQjsxMTA3IDExNkYgMTFCNjsKK0JEQUM7QkRBQzsxMTA3IDExNkYgMTFCNztCREFDOzExMDcgMTE2RiAxMUI3OworQkRBRDtCREFEOzExMDcgMTE2RiAxMUI4O0JEQUQ7MTEwNyAxMTZGIDExQjg7CitCREFFO0JEQUU7MTEwNyAxMTZGIDExQjk7QkRBRTsxMTA3IDExNkYgMTFCOTsKK0JEQUY7QkRBRjsxMTA3IDExNkYgMTFCQTtCREFGOzExMDcgMTE2RiAxMUJBOworQkRCMDtCREIwOzExMDcgMTE2RiAxMUJCO0JEQjA7MTEwNyAxMTZGIDExQkI7CitCREIxO0JEQjE7MTEwNyAxMTZGIDExQkM7QkRCMTsxMTA3IDExNkYgMTFCQzsKK0JEQjI7QkRCMjsxMTA3IDExNkYgMTFCRDtCREIyOzExMDcgMTE2RiAxMUJEOworQkRCMztCREIzOzExMDcgMTE2RiAxMUJFO0JEQjM7MTEwNyAxMTZGIDExQkU7CitCREI0O0JEQjQ7MTEwNyAxMTZGIDExQkY7QkRCNDsxMTA3IDExNkYgMTFCRjsKK0JEQjU7QkRCNTsxMTA3IDExNkYgMTFDMDtCREI1OzExMDcgMTE2RiAxMUMwOworQkRCNjtCREI2OzExMDcgMTE2RiAxMUMxO0JEQjY7MTEwNyAxMTZGIDExQzE7CitCREI3O0JEQjc7MTEwNyAxMTZGIDExQzI7QkRCNzsxMTA3IDExNkYgMTFDMjsKK0JEQjg7QkRCODsxMTA3IDExNzA7QkRCODsxMTA3IDExNzA7CitCREI5O0JEQjk7MTEwNyAxMTcwIDExQTg7QkRCOTsxMTA3IDExNzAgMTFBODsKK0JEQkE7QkRCQTsxMTA3IDExNzAgMTFBOTtCREJBOzExMDcgMTE3MCAxMUE5OworQkRCQjtCREJCOzExMDcgMTE3MCAxMUFBO0JEQkI7MTEwNyAxMTcwIDExQUE7CitCREJDO0JEQkM7MTEwNyAxMTcwIDExQUI7QkRCQzsxMTA3IDExNzAgMTFBQjsKK0JEQkQ7QkRCRDsxMTA3IDExNzAgMTFBQztCREJEOzExMDcgMTE3MCAxMUFDOworQkRCRTtCREJFOzExMDcgMTE3MCAxMUFEO0JEQkU7MTEwNyAxMTcwIDExQUQ7CitCREJGO0JEQkY7MTEwNyAxMTcwIDExQUU7QkRCRjsxMTA3IDExNzAgMTFBRTsKK0JEQzA7QkRDMDsxMTA3IDExNzAgMTFBRjtCREMwOzExMDcgMTE3MCAxMUFGOworQkRDMTtCREMxOzExMDcgMTE3MCAxMUIwO0JEQzE7MTEwNyAxMTcwIDExQjA7CitCREMyO0JEQzI7MTEwNyAxMTcwIDExQjE7QkRDMjsxMTA3IDExNzAgMTFCMTsKK0JEQzM7QkRDMzsxMTA3IDExNzAgMTFCMjtCREMzOzExMDcgMTE3MCAxMUIyOworQkRDNDtCREM0OzExMDcgMTE3MCAxMUIzO0JEQzQ7MTEwNyAxMTcwIDExQjM7CitCREM1O0JEQzU7MTEwNyAxMTcwIDExQjQ7QkRDNTsxMTA3IDExNzAgMTFCNDsKK0JEQzY7QkRDNjsxMTA3IDExNzAgMTFCNTtCREM2OzExMDcgMTE3MCAxMUI1OworQkRDNztCREM3OzExMDcgMTE3MCAxMUI2O0JEQzc7MTEwNyAxMTcwIDExQjY7CitCREM4O0JEQzg7MTEwNyAxMTcwIDExQjc7QkRDODsxMTA3IDExNzAgMTFCNzsKK0JEQzk7QkRDOTsxMTA3IDExNzAgMTFCODtCREM5OzExMDcgMTE3MCAxMUI4OworQkRDQTtCRENBOzExMDcgMTE3MCAxMUI5O0JEQ0E7MTEwNyAxMTcwIDExQjk7CitCRENCO0JEQ0I7MTEwNyAxMTcwIDExQkE7QkRDQjsxMTA3IDExNzAgMTFCQTsKK0JEQ0M7QkRDQzsxMTA3IDExNzAgMTFCQjtCRENDOzExMDcgMTE3MCAxMUJCOworQkRDRDtCRENEOzExMDcgMTE3MCAxMUJDO0JEQ0Q7MTEwNyAxMTcwIDExQkM7CitCRENFO0JEQ0U7MTEwNyAxMTcwIDExQkQ7QkRDRTsxMTA3IDExNzAgMTFCRDsKK0JEQ0Y7QkRDRjsxMTA3IDExNzAgMTFCRTtCRENGOzExMDcgMTE3MCAxMUJFOworQkREMDtCREQwOzExMDcgMTE3MCAxMUJGO0JERDA7MTEwNyAxMTcwIDExQkY7CitCREQxO0JERDE7MTEwNyAxMTcwIDExQzA7QkREMTsxMTA3IDExNzAgMTFDMDsKK0JERDI7QkREMjsxMTA3IDExNzAgMTFDMTtCREQyOzExMDcgMTE3MCAxMUMxOworQkREMztCREQzOzExMDcgMTE3MCAxMUMyO0JERDM7MTEwNyAxMTcwIDExQzI7CitCREQ0O0JERDQ7MTEwNyAxMTcxO0JERDQ7MTEwNyAxMTcxOworQkRENTtCREQ1OzExMDcgMTE3MSAxMUE4O0JERDU7MTEwNyAxMTcxIDExQTg7CitCREQ2O0JERDY7MTEwNyAxMTcxIDExQTk7QkRENjsxMTA3IDExNzEgMTFBOTsKK0JERDc7QkRENzsxMTA3IDExNzEgMTFBQTtCREQ3OzExMDcgMTE3MSAxMUFBOworQkREODtCREQ4OzExMDcgMTE3MSAxMUFCO0JERDg7MTEwNyAxMTcxIDExQUI7CitCREQ5O0JERDk7MTEwNyAxMTcxIDExQUM7QkREOTsxMTA3IDExNzEgMTFBQzsKK0JEREE7QkREQTsxMTA3IDExNzEgMTFBRDtCRERBOzExMDcgMTE3MSAxMUFEOworQkREQjtCRERCOzExMDcgMTE3MSAxMUFFO0JEREI7MTEwNyAxMTcxIDExQUU7CitCRERDO0JEREM7MTEwNyAxMTcxIDExQUY7QkREQzsxMTA3IDExNzEgMTFBRjsKK0JEREQ7QkRERDsxMTA3IDExNzEgMTFCMDtCREREOzExMDcgMTE3MSAxMUIwOworQkRERTtCRERFOzExMDcgMTE3MSAxMUIxO0JEREU7MTEwNyAxMTcxIDExQjE7CitCRERGO0JEREY7MTEwNyAxMTcxIDExQjI7QkRERjsxMTA3IDExNzEgMTFCMjsKK0JERTA7QkRFMDsxMTA3IDExNzEgMTFCMztCREUwOzExMDcgMTE3MSAxMUIzOworQkRFMTtCREUxOzExMDcgMTE3MSAxMUI0O0JERTE7MTEwNyAxMTcxIDExQjQ7CitCREUyO0JERTI7MTEwNyAxMTcxIDExQjU7QkRFMjsxMTA3IDExNzEgMTFCNTsKK0JERTM7QkRFMzsxMTA3IDExNzEgMTFCNjtCREUzOzExMDcgMTE3MSAxMUI2OworQkRFNDtCREU0OzExMDcgMTE3MSAxMUI3O0JERTQ7MTEwNyAxMTcxIDExQjc7CitCREU1O0JERTU7MTEwNyAxMTcxIDExQjg7QkRFNTsxMTA3IDExNzEgMTFCODsKK0JERTY7QkRFNjsxMTA3IDExNzEgMTFCOTtCREU2OzExMDcgMTE3MSAxMUI5OworQkRFNztCREU3OzExMDcgMTE3MSAxMUJBO0JERTc7MTEwNyAxMTcxIDExQkE7CitCREU4O0JERTg7MTEwNyAxMTcxIDExQkI7QkRFODsxMTA3IDExNzEgMTFCQjsKK0JERTk7QkRFOTsxMTA3IDExNzEgMTFCQztCREU5OzExMDcgMTE3MSAxMUJDOworQkRFQTtCREVBOzExMDcgMTE3MSAxMUJEO0JERUE7MTEwNyAxMTcxIDExQkQ7CitCREVCO0JERUI7MTEwNyAxMTcxIDExQkU7QkRFQjsxMTA3IDExNzEgMTFCRTsKK0JERUM7QkRFQzsxMTA3IDExNzEgMTFCRjtCREVDOzExMDcgMTE3MSAxMUJGOworQkRFRDtCREVEOzExMDcgMTE3MSAxMUMwO0JERUQ7MTEwNyAxMTcxIDExQzA7CitCREVFO0JERUU7MTEwNyAxMTcxIDExQzE7QkRFRTsxMTA3IDExNzEgMTFDMTsKK0JERUY7QkRFRjsxMTA3IDExNzEgMTFDMjtCREVGOzExMDcgMTE3MSAxMUMyOworQkRGMDtCREYwOzExMDcgMTE3MjtCREYwOzExMDcgMTE3MjsKK0JERjE7QkRGMTsxMTA3IDExNzIgMTFBODtCREYxOzExMDcgMTE3MiAxMUE4OworQkRGMjtCREYyOzExMDcgMTE3MiAxMUE5O0JERjI7MTEwNyAxMTcyIDExQTk7CitCREYzO0JERjM7MTEwNyAxMTcyIDExQUE7QkRGMzsxMTA3IDExNzIgMTFBQTsKK0JERjQ7QkRGNDsxMTA3IDExNzIgMTFBQjtCREY0OzExMDcgMTE3MiAxMUFCOworQkRGNTtCREY1OzExMDcgMTE3MiAxMUFDO0JERjU7MTEwNyAxMTcyIDExQUM7CitCREY2O0JERjY7MTEwNyAxMTcyIDExQUQ7QkRGNjsxMTA3IDExNzIgMTFBRDsKK0JERjc7QkRGNzsxMTA3IDExNzIgMTFBRTtCREY3OzExMDcgMTE3MiAxMUFFOworQkRGODtCREY4OzExMDcgMTE3MiAxMUFGO0JERjg7MTEwNyAxMTcyIDExQUY7CitCREY5O0JERjk7MTEwNyAxMTcyIDExQjA7QkRGOTsxMTA3IDExNzIgMTFCMDsKK0JERkE7QkRGQTsxMTA3IDExNzIgMTFCMTtCREZBOzExMDcgMTE3MiAxMUIxOworQkRGQjtCREZCOzExMDcgMTE3MiAxMUIyO0JERkI7MTEwNyAxMTcyIDExQjI7CitCREZDO0JERkM7MTEwNyAxMTcyIDExQjM7QkRGQzsxMTA3IDExNzIgMTFCMzsKK0JERkQ7QkRGRDsxMTA3IDExNzIgMTFCNDtCREZEOzExMDcgMTE3MiAxMUI0OworQkRGRTtCREZFOzExMDcgMTE3MiAxMUI1O0JERkU7MTEwNyAxMTcyIDExQjU7CitCREZGO0JERkY7MTEwNyAxMTcyIDExQjY7QkRGRjsxMTA3IDExNzIgMTFCNjsKK0JFMDA7QkUwMDsxMTA3IDExNzIgMTFCNztCRTAwOzExMDcgMTE3MiAxMUI3OworQkUwMTtCRTAxOzExMDcgMTE3MiAxMUI4O0JFMDE7MTEwNyAxMTcyIDExQjg7CitCRTAyO0JFMDI7MTEwNyAxMTcyIDExQjk7QkUwMjsxMTA3IDExNzIgMTFCOTsKK0JFMDM7QkUwMzsxMTA3IDExNzIgMTFCQTtCRTAzOzExMDcgMTE3MiAxMUJBOworQkUwNDtCRTA0OzExMDcgMTE3MiAxMUJCO0JFMDQ7MTEwNyAxMTcyIDExQkI7CitCRTA1O0JFMDU7MTEwNyAxMTcyIDExQkM7QkUwNTsxMTA3IDExNzIgMTFCQzsKK0JFMDY7QkUwNjsxMTA3IDExNzIgMTFCRDtCRTA2OzExMDcgMTE3MiAxMUJEOworQkUwNztCRTA3OzExMDcgMTE3MiAxMUJFO0JFMDc7MTEwNyAxMTcyIDExQkU7CitCRTA4O0JFMDg7MTEwNyAxMTcyIDExQkY7QkUwODsxMTA3IDExNzIgMTFCRjsKK0JFMDk7QkUwOTsxMTA3IDExNzIgMTFDMDtCRTA5OzExMDcgMTE3MiAxMUMwOworQkUwQTtCRTBBOzExMDcgMTE3MiAxMUMxO0JFMEE7MTEwNyAxMTcyIDExQzE7CitCRTBCO0JFMEI7MTEwNyAxMTcyIDExQzI7QkUwQjsxMTA3IDExNzIgMTFDMjsKK0JFMEM7QkUwQzsxMTA3IDExNzM7QkUwQzsxMTA3IDExNzM7CitCRTBEO0JFMEQ7MTEwNyAxMTczIDExQTg7QkUwRDsxMTA3IDExNzMgMTFBODsKK0JFMEU7QkUwRTsxMTA3IDExNzMgMTFBOTtCRTBFOzExMDcgMTE3MyAxMUE5OworQkUwRjtCRTBGOzExMDcgMTE3MyAxMUFBO0JFMEY7MTEwNyAxMTczIDExQUE7CitCRTEwO0JFMTA7MTEwNyAxMTczIDExQUI7QkUxMDsxMTA3IDExNzMgMTFBQjsKK0JFMTE7QkUxMTsxMTA3IDExNzMgMTFBQztCRTExOzExMDcgMTE3MyAxMUFDOworQkUxMjtCRTEyOzExMDcgMTE3MyAxMUFEO0JFMTI7MTEwNyAxMTczIDExQUQ7CitCRTEzO0JFMTM7MTEwNyAxMTczIDExQUU7QkUxMzsxMTA3IDExNzMgMTFBRTsKK0JFMTQ7QkUxNDsxMTA3IDExNzMgMTFBRjtCRTE0OzExMDcgMTE3MyAxMUFGOworQkUxNTtCRTE1OzExMDcgMTE3MyAxMUIwO0JFMTU7MTEwNyAxMTczIDExQjA7CitCRTE2O0JFMTY7MTEwNyAxMTczIDExQjE7QkUxNjsxMTA3IDExNzMgMTFCMTsKK0JFMTc7QkUxNzsxMTA3IDExNzMgMTFCMjtCRTE3OzExMDcgMTE3MyAxMUIyOworQkUxODtCRTE4OzExMDcgMTE3MyAxMUIzO0JFMTg7MTEwNyAxMTczIDExQjM7CitCRTE5O0JFMTk7MTEwNyAxMTczIDExQjQ7QkUxOTsxMTA3IDExNzMgMTFCNDsKK0JFMUE7QkUxQTsxMTA3IDExNzMgMTFCNTtCRTFBOzExMDcgMTE3MyAxMUI1OworQkUxQjtCRTFCOzExMDcgMTE3MyAxMUI2O0JFMUI7MTEwNyAxMTczIDExQjY7CitCRTFDO0JFMUM7MTEwNyAxMTczIDExQjc7QkUxQzsxMTA3IDExNzMgMTFCNzsKK0JFMUQ7QkUxRDsxMTA3IDExNzMgMTFCODtCRTFEOzExMDcgMTE3MyAxMUI4OworQkUxRTtCRTFFOzExMDcgMTE3MyAxMUI5O0JFMUU7MTEwNyAxMTczIDExQjk7CitCRTFGO0JFMUY7MTEwNyAxMTczIDExQkE7QkUxRjsxMTA3IDExNzMgMTFCQTsKK0JFMjA7QkUyMDsxMTA3IDExNzMgMTFCQjtCRTIwOzExMDcgMTE3MyAxMUJCOworQkUyMTtCRTIxOzExMDcgMTE3MyAxMUJDO0JFMjE7MTEwNyAxMTczIDExQkM7CitCRTIyO0JFMjI7MTEwNyAxMTczIDExQkQ7QkUyMjsxMTA3IDExNzMgMTFCRDsKK0JFMjM7QkUyMzsxMTA3IDExNzMgMTFCRTtCRTIzOzExMDcgMTE3MyAxMUJFOworQkUyNDtCRTI0OzExMDcgMTE3MyAxMUJGO0JFMjQ7MTEwNyAxMTczIDExQkY7CitCRTI1O0JFMjU7MTEwNyAxMTczIDExQzA7QkUyNTsxMTA3IDExNzMgMTFDMDsKK0JFMjY7QkUyNjsxMTA3IDExNzMgMTFDMTtCRTI2OzExMDcgMTE3MyAxMUMxOworQkUyNztCRTI3OzExMDcgMTE3MyAxMUMyO0JFMjc7MTEwNyAxMTczIDExQzI7CitCRTI4O0JFMjg7MTEwNyAxMTc0O0JFMjg7MTEwNyAxMTc0OworQkUyOTtCRTI5OzExMDcgMTE3NCAxMUE4O0JFMjk7MTEwNyAxMTc0IDExQTg7CitCRTJBO0JFMkE7MTEwNyAxMTc0IDExQTk7QkUyQTsxMTA3IDExNzQgMTFBOTsKK0JFMkI7QkUyQjsxMTA3IDExNzQgMTFBQTtCRTJCOzExMDcgMTE3NCAxMUFBOworQkUyQztCRTJDOzExMDcgMTE3NCAxMUFCO0JFMkM7MTEwNyAxMTc0IDExQUI7CitCRTJEO0JFMkQ7MTEwNyAxMTc0IDExQUM7QkUyRDsxMTA3IDExNzQgMTFBQzsKK0JFMkU7QkUyRTsxMTA3IDExNzQgMTFBRDtCRTJFOzExMDcgMTE3NCAxMUFEOworQkUyRjtCRTJGOzExMDcgMTE3NCAxMUFFO0JFMkY7MTEwNyAxMTc0IDExQUU7CitCRTMwO0JFMzA7MTEwNyAxMTc0IDExQUY7QkUzMDsxMTA3IDExNzQgMTFBRjsKK0JFMzE7QkUzMTsxMTA3IDExNzQgMTFCMDtCRTMxOzExMDcgMTE3NCAxMUIwOworQkUzMjtCRTMyOzExMDcgMTE3NCAxMUIxO0JFMzI7MTEwNyAxMTc0IDExQjE7CitCRTMzO0JFMzM7MTEwNyAxMTc0IDExQjI7QkUzMzsxMTA3IDExNzQgMTFCMjsKK0JFMzQ7QkUzNDsxMTA3IDExNzQgMTFCMztCRTM0OzExMDcgMTE3NCAxMUIzOworQkUzNTtCRTM1OzExMDcgMTE3NCAxMUI0O0JFMzU7MTEwNyAxMTc0IDExQjQ7CitCRTM2O0JFMzY7MTEwNyAxMTc0IDExQjU7QkUzNjsxMTA3IDExNzQgMTFCNTsKK0JFMzc7QkUzNzsxMTA3IDExNzQgMTFCNjtCRTM3OzExMDcgMTE3NCAxMUI2OworQkUzODtCRTM4OzExMDcgMTE3NCAxMUI3O0JFMzg7MTEwNyAxMTc0IDExQjc7CitCRTM5O0JFMzk7MTEwNyAxMTc0IDExQjg7QkUzOTsxMTA3IDExNzQgMTFCODsKK0JFM0E7QkUzQTsxMTA3IDExNzQgMTFCOTtCRTNBOzExMDcgMTE3NCAxMUI5OworQkUzQjtCRTNCOzExMDcgMTE3NCAxMUJBO0JFM0I7MTEwNyAxMTc0IDExQkE7CitCRTNDO0JFM0M7MTEwNyAxMTc0IDExQkI7QkUzQzsxMTA3IDExNzQgMTFCQjsKK0JFM0Q7QkUzRDsxMTA3IDExNzQgMTFCQztCRTNEOzExMDcgMTE3NCAxMUJDOworQkUzRTtCRTNFOzExMDcgMTE3NCAxMUJEO0JFM0U7MTEwNyAxMTc0IDExQkQ7CitCRTNGO0JFM0Y7MTEwNyAxMTc0IDExQkU7QkUzRjsxMTA3IDExNzQgMTFCRTsKK0JFNDA7QkU0MDsxMTA3IDExNzQgMTFCRjtCRTQwOzExMDcgMTE3NCAxMUJGOworQkU0MTtCRTQxOzExMDcgMTE3NCAxMUMwO0JFNDE7MTEwNyAxMTc0IDExQzA7CitCRTQyO0JFNDI7MTEwNyAxMTc0IDExQzE7QkU0MjsxMTA3IDExNzQgMTFDMTsKK0JFNDM7QkU0MzsxMTA3IDExNzQgMTFDMjtCRTQzOzExMDcgMTE3NCAxMUMyOworQkU0NDtCRTQ0OzExMDcgMTE3NTtCRTQ0OzExMDcgMTE3NTsKK0JFNDU7QkU0NTsxMTA3IDExNzUgMTFBODtCRTQ1OzExMDcgMTE3NSAxMUE4OworQkU0NjtCRTQ2OzExMDcgMTE3NSAxMUE5O0JFNDY7MTEwNyAxMTc1IDExQTk7CitCRTQ3O0JFNDc7MTEwNyAxMTc1IDExQUE7QkU0NzsxMTA3IDExNzUgMTFBQTsKK0JFNDg7QkU0ODsxMTA3IDExNzUgMTFBQjtCRTQ4OzExMDcgMTE3NSAxMUFCOworQkU0OTtCRTQ5OzExMDcgMTE3NSAxMUFDO0JFNDk7MTEwNyAxMTc1IDExQUM7CitCRTRBO0JFNEE7MTEwNyAxMTc1IDExQUQ7QkU0QTsxMTA3IDExNzUgMTFBRDsKK0JFNEI7QkU0QjsxMTA3IDExNzUgMTFBRTtCRTRCOzExMDcgMTE3NSAxMUFFOworQkU0QztCRTRDOzExMDcgMTE3NSAxMUFGO0JFNEM7MTEwNyAxMTc1IDExQUY7CitCRTREO0JFNEQ7MTEwNyAxMTc1IDExQjA7QkU0RDsxMTA3IDExNzUgMTFCMDsKK0JFNEU7QkU0RTsxMTA3IDExNzUgMTFCMTtCRTRFOzExMDcgMTE3NSAxMUIxOworQkU0RjtCRTRGOzExMDcgMTE3NSAxMUIyO0JFNEY7MTEwNyAxMTc1IDExQjI7CitCRTUwO0JFNTA7MTEwNyAxMTc1IDExQjM7QkU1MDsxMTA3IDExNzUgMTFCMzsKK0JFNTE7QkU1MTsxMTA3IDExNzUgMTFCNDtCRTUxOzExMDcgMTE3NSAxMUI0OworQkU1MjtCRTUyOzExMDcgMTE3NSAxMUI1O0JFNTI7MTEwNyAxMTc1IDExQjU7CitCRTUzO0JFNTM7MTEwNyAxMTc1IDExQjY7QkU1MzsxMTA3IDExNzUgMTFCNjsKK0JFNTQ7QkU1NDsxMTA3IDExNzUgMTFCNztCRTU0OzExMDcgMTE3NSAxMUI3OworQkU1NTtCRTU1OzExMDcgMTE3NSAxMUI4O0JFNTU7MTEwNyAxMTc1IDExQjg7CitCRTU2O0JFNTY7MTEwNyAxMTc1IDExQjk7QkU1NjsxMTA3IDExNzUgMTFCOTsKK0JFNTc7QkU1NzsxMTA3IDExNzUgMTFCQTtCRTU3OzExMDcgMTE3NSAxMUJBOworQkU1ODtCRTU4OzExMDcgMTE3NSAxMUJCO0JFNTg7MTEwNyAxMTc1IDExQkI7CitCRTU5O0JFNTk7MTEwNyAxMTc1IDExQkM7QkU1OTsxMTA3IDExNzUgMTFCQzsKK0JFNUE7QkU1QTsxMTA3IDExNzUgMTFCRDtCRTVBOzExMDcgMTE3NSAxMUJEOworQkU1QjtCRTVCOzExMDcgMTE3NSAxMUJFO0JFNUI7MTEwNyAxMTc1IDExQkU7CitCRTVDO0JFNUM7MTEwNyAxMTc1IDExQkY7QkU1QzsxMTA3IDExNzUgMTFCRjsKK0JFNUQ7QkU1RDsxMTA3IDExNzUgMTFDMDtCRTVEOzExMDcgMTE3NSAxMUMwOworQkU1RTtCRTVFOzExMDcgMTE3NSAxMUMxO0JFNUU7MTEwNyAxMTc1IDExQzE7CitCRTVGO0JFNUY7MTEwNyAxMTc1IDExQzI7QkU1RjsxMTA3IDExNzUgMTFDMjsKK0JFNjA7QkU2MDsxMTA4IDExNjE7QkU2MDsxMTA4IDExNjE7CitCRTYxO0JFNjE7MTEwOCAxMTYxIDExQTg7QkU2MTsxMTA4IDExNjEgMTFBODsKK0JFNjI7QkU2MjsxMTA4IDExNjEgMTFBOTtCRTYyOzExMDggMTE2MSAxMUE5OworQkU2MztCRTYzOzExMDggMTE2MSAxMUFBO0JFNjM7MTEwOCAxMTYxIDExQUE7CitCRTY0O0JFNjQ7MTEwOCAxMTYxIDExQUI7QkU2NDsxMTA4IDExNjEgMTFBQjsKK0JFNjU7QkU2NTsxMTA4IDExNjEgMTFBQztCRTY1OzExMDggMTE2MSAxMUFDOworQkU2NjtCRTY2OzExMDggMTE2MSAxMUFEO0JFNjY7MTEwOCAxMTYxIDExQUQ7CitCRTY3O0JFNjc7MTEwOCAxMTYxIDExQUU7QkU2NzsxMTA4IDExNjEgMTFBRTsKK0JFNjg7QkU2ODsxMTA4IDExNjEgMTFBRjtCRTY4OzExMDggMTE2MSAxMUFGOworQkU2OTtCRTY5OzExMDggMTE2MSAxMUIwO0JFNjk7MTEwOCAxMTYxIDExQjA7CitCRTZBO0JFNkE7MTEwOCAxMTYxIDExQjE7QkU2QTsxMTA4IDExNjEgMTFCMTsKK0JFNkI7QkU2QjsxMTA4IDExNjEgMTFCMjtCRTZCOzExMDggMTE2MSAxMUIyOworQkU2QztCRTZDOzExMDggMTE2MSAxMUIzO0JFNkM7MTEwOCAxMTYxIDExQjM7CitCRTZEO0JFNkQ7MTEwOCAxMTYxIDExQjQ7QkU2RDsxMTA4IDExNjEgMTFCNDsKK0JFNkU7QkU2RTsxMTA4IDExNjEgMTFCNTtCRTZFOzExMDggMTE2MSAxMUI1OworQkU2RjtCRTZGOzExMDggMTE2MSAxMUI2O0JFNkY7MTEwOCAxMTYxIDExQjY7CitCRTcwO0JFNzA7MTEwOCAxMTYxIDExQjc7QkU3MDsxMTA4IDExNjEgMTFCNzsKK0JFNzE7QkU3MTsxMTA4IDExNjEgMTFCODtCRTcxOzExMDggMTE2MSAxMUI4OworQkU3MjtCRTcyOzExMDggMTE2MSAxMUI5O0JFNzI7MTEwOCAxMTYxIDExQjk7CitCRTczO0JFNzM7MTEwOCAxMTYxIDExQkE7QkU3MzsxMTA4IDExNjEgMTFCQTsKK0JFNzQ7QkU3NDsxMTA4IDExNjEgMTFCQjtCRTc0OzExMDggMTE2MSAxMUJCOworQkU3NTtCRTc1OzExMDggMTE2MSAxMUJDO0JFNzU7MTEwOCAxMTYxIDExQkM7CitCRTc2O0JFNzY7MTEwOCAxMTYxIDExQkQ7QkU3NjsxMTA4IDExNjEgMTFCRDsKK0JFNzc7QkU3NzsxMTA4IDExNjEgMTFCRTtCRTc3OzExMDggMTE2MSAxMUJFOworQkU3ODtCRTc4OzExMDggMTE2MSAxMUJGO0JFNzg7MTEwOCAxMTYxIDExQkY7CitCRTc5O0JFNzk7MTEwOCAxMTYxIDExQzA7QkU3OTsxMTA4IDExNjEgMTFDMDsKK0JFN0E7QkU3QTsxMTA4IDExNjEgMTFDMTtCRTdBOzExMDggMTE2MSAxMUMxOworQkU3QjtCRTdCOzExMDggMTE2MSAxMUMyO0JFN0I7MTEwOCAxMTYxIDExQzI7CitCRTdDO0JFN0M7MTEwOCAxMTYyO0JFN0M7MTEwOCAxMTYyOworQkU3RDtCRTdEOzExMDggMTE2MiAxMUE4O0JFN0Q7MTEwOCAxMTYyIDExQTg7CitCRTdFO0JFN0U7MTEwOCAxMTYyIDExQTk7QkU3RTsxMTA4IDExNjIgMTFBOTsKK0JFN0Y7QkU3RjsxMTA4IDExNjIgMTFBQTtCRTdGOzExMDggMTE2MiAxMUFBOworQkU4MDtCRTgwOzExMDggMTE2MiAxMUFCO0JFODA7MTEwOCAxMTYyIDExQUI7CitCRTgxO0JFODE7MTEwOCAxMTYyIDExQUM7QkU4MTsxMTA4IDExNjIgMTFBQzsKK0JFODI7QkU4MjsxMTA4IDExNjIgMTFBRDtCRTgyOzExMDggMTE2MiAxMUFEOworQkU4MztCRTgzOzExMDggMTE2MiAxMUFFO0JFODM7MTEwOCAxMTYyIDExQUU7CitCRTg0O0JFODQ7MTEwOCAxMTYyIDExQUY7QkU4NDsxMTA4IDExNjIgMTFBRjsKK0JFODU7QkU4NTsxMTA4IDExNjIgMTFCMDtCRTg1OzExMDggMTE2MiAxMUIwOworQkU4NjtCRTg2OzExMDggMTE2MiAxMUIxO0JFODY7MTEwOCAxMTYyIDExQjE7CitCRTg3O0JFODc7MTEwOCAxMTYyIDExQjI7QkU4NzsxMTA4IDExNjIgMTFCMjsKK0JFODg7QkU4ODsxMTA4IDExNjIgMTFCMztCRTg4OzExMDggMTE2MiAxMUIzOworQkU4OTtCRTg5OzExMDggMTE2MiAxMUI0O0JFODk7MTEwOCAxMTYyIDExQjQ7CitCRThBO0JFOEE7MTEwOCAxMTYyIDExQjU7QkU4QTsxMTA4IDExNjIgMTFCNTsKK0JFOEI7QkU4QjsxMTA4IDExNjIgMTFCNjtCRThCOzExMDggMTE2MiAxMUI2OworQkU4QztCRThDOzExMDggMTE2MiAxMUI3O0JFOEM7MTEwOCAxMTYyIDExQjc7CitCRThEO0JFOEQ7MTEwOCAxMTYyIDExQjg7QkU4RDsxMTA4IDExNjIgMTFCODsKK0JFOEU7QkU4RTsxMTA4IDExNjIgMTFCOTtCRThFOzExMDggMTE2MiAxMUI5OworQkU4RjtCRThGOzExMDggMTE2MiAxMUJBO0JFOEY7MTEwOCAxMTYyIDExQkE7CitCRTkwO0JFOTA7MTEwOCAxMTYyIDExQkI7QkU5MDsxMTA4IDExNjIgMTFCQjsKK0JFOTE7QkU5MTsxMTA4IDExNjIgMTFCQztCRTkxOzExMDggMTE2MiAxMUJDOworQkU5MjtCRTkyOzExMDggMTE2MiAxMUJEO0JFOTI7MTEwOCAxMTYyIDExQkQ7CitCRTkzO0JFOTM7MTEwOCAxMTYyIDExQkU7QkU5MzsxMTA4IDExNjIgMTFCRTsKK0JFOTQ7QkU5NDsxMTA4IDExNjIgMTFCRjtCRTk0OzExMDggMTE2MiAxMUJGOworQkU5NTtCRTk1OzExMDggMTE2MiAxMUMwO0JFOTU7MTEwOCAxMTYyIDExQzA7CitCRTk2O0JFOTY7MTEwOCAxMTYyIDExQzE7QkU5NjsxMTA4IDExNjIgMTFDMTsKK0JFOTc7QkU5NzsxMTA4IDExNjIgMTFDMjtCRTk3OzExMDggMTE2MiAxMUMyOworQkU5ODtCRTk4OzExMDggMTE2MztCRTk4OzExMDggMTE2MzsKK0JFOTk7QkU5OTsxMTA4IDExNjMgMTFBODtCRTk5OzExMDggMTE2MyAxMUE4OworQkU5QTtCRTlBOzExMDggMTE2MyAxMUE5O0JFOUE7MTEwOCAxMTYzIDExQTk7CitCRTlCO0JFOUI7MTEwOCAxMTYzIDExQUE7QkU5QjsxMTA4IDExNjMgMTFBQTsKK0JFOUM7QkU5QzsxMTA4IDExNjMgMTFBQjtCRTlDOzExMDggMTE2MyAxMUFCOworQkU5RDtCRTlEOzExMDggMTE2MyAxMUFDO0JFOUQ7MTEwOCAxMTYzIDExQUM7CitCRTlFO0JFOUU7MTEwOCAxMTYzIDExQUQ7QkU5RTsxMTA4IDExNjMgMTFBRDsKK0JFOUY7QkU5RjsxMTA4IDExNjMgMTFBRTtCRTlGOzExMDggMTE2MyAxMUFFOworQkVBMDtCRUEwOzExMDggMTE2MyAxMUFGO0JFQTA7MTEwOCAxMTYzIDExQUY7CitCRUExO0JFQTE7MTEwOCAxMTYzIDExQjA7QkVBMTsxMTA4IDExNjMgMTFCMDsKK0JFQTI7QkVBMjsxMTA4IDExNjMgMTFCMTtCRUEyOzExMDggMTE2MyAxMUIxOworQkVBMztCRUEzOzExMDggMTE2MyAxMUIyO0JFQTM7MTEwOCAxMTYzIDExQjI7CitCRUE0O0JFQTQ7MTEwOCAxMTYzIDExQjM7QkVBNDsxMTA4IDExNjMgMTFCMzsKK0JFQTU7QkVBNTsxMTA4IDExNjMgMTFCNDtCRUE1OzExMDggMTE2MyAxMUI0OworQkVBNjtCRUE2OzExMDggMTE2MyAxMUI1O0JFQTY7MTEwOCAxMTYzIDExQjU7CitCRUE3O0JFQTc7MTEwOCAxMTYzIDExQjY7QkVBNzsxMTA4IDExNjMgMTFCNjsKK0JFQTg7QkVBODsxMTA4IDExNjMgMTFCNztCRUE4OzExMDggMTE2MyAxMUI3OworQkVBOTtCRUE5OzExMDggMTE2MyAxMUI4O0JFQTk7MTEwOCAxMTYzIDExQjg7CitCRUFBO0JFQUE7MTEwOCAxMTYzIDExQjk7QkVBQTsxMTA4IDExNjMgMTFCOTsKK0JFQUI7QkVBQjsxMTA4IDExNjMgMTFCQTtCRUFCOzExMDggMTE2MyAxMUJBOworQkVBQztCRUFDOzExMDggMTE2MyAxMUJCO0JFQUM7MTEwOCAxMTYzIDExQkI7CitCRUFEO0JFQUQ7MTEwOCAxMTYzIDExQkM7QkVBRDsxMTA4IDExNjMgMTFCQzsKK0JFQUU7QkVBRTsxMTA4IDExNjMgMTFCRDtCRUFFOzExMDggMTE2MyAxMUJEOworQkVBRjtCRUFGOzExMDggMTE2MyAxMUJFO0JFQUY7MTEwOCAxMTYzIDExQkU7CitCRUIwO0JFQjA7MTEwOCAxMTYzIDExQkY7QkVCMDsxMTA4IDExNjMgMTFCRjsKK0JFQjE7QkVCMTsxMTA4IDExNjMgMTFDMDtCRUIxOzExMDggMTE2MyAxMUMwOworQkVCMjtCRUIyOzExMDggMTE2MyAxMUMxO0JFQjI7MTEwOCAxMTYzIDExQzE7CitCRUIzO0JFQjM7MTEwOCAxMTYzIDExQzI7QkVCMzsxMTA4IDExNjMgMTFDMjsKK0JFQjQ7QkVCNDsxMTA4IDExNjQ7QkVCNDsxMTA4IDExNjQ7CitCRUI1O0JFQjU7MTEwOCAxMTY0IDExQTg7QkVCNTsxMTA4IDExNjQgMTFBODsKK0JFQjY7QkVCNjsxMTA4IDExNjQgMTFBOTtCRUI2OzExMDggMTE2NCAxMUE5OworQkVCNztCRUI3OzExMDggMTE2NCAxMUFBO0JFQjc7MTEwOCAxMTY0IDExQUE7CitCRUI4O0JFQjg7MTEwOCAxMTY0IDExQUI7QkVCODsxMTA4IDExNjQgMTFBQjsKK0JFQjk7QkVCOTsxMTA4IDExNjQgMTFBQztCRUI5OzExMDggMTE2NCAxMUFDOworQkVCQTtCRUJBOzExMDggMTE2NCAxMUFEO0JFQkE7MTEwOCAxMTY0IDExQUQ7CitCRUJCO0JFQkI7MTEwOCAxMTY0IDExQUU7QkVCQjsxMTA4IDExNjQgMTFBRTsKK0JFQkM7QkVCQzsxMTA4IDExNjQgMTFBRjtCRUJDOzExMDggMTE2NCAxMUFGOworQkVCRDtCRUJEOzExMDggMTE2NCAxMUIwO0JFQkQ7MTEwOCAxMTY0IDExQjA7CitCRUJFO0JFQkU7MTEwOCAxMTY0IDExQjE7QkVCRTsxMTA4IDExNjQgMTFCMTsKK0JFQkY7QkVCRjsxMTA4IDExNjQgMTFCMjtCRUJGOzExMDggMTE2NCAxMUIyOworQkVDMDtCRUMwOzExMDggMTE2NCAxMUIzO0JFQzA7MTEwOCAxMTY0IDExQjM7CitCRUMxO0JFQzE7MTEwOCAxMTY0IDExQjQ7QkVDMTsxMTA4IDExNjQgMTFCNDsKK0JFQzI7QkVDMjsxMTA4IDExNjQgMTFCNTtCRUMyOzExMDggMTE2NCAxMUI1OworQkVDMztCRUMzOzExMDggMTE2NCAxMUI2O0JFQzM7MTEwOCAxMTY0IDExQjY7CitCRUM0O0JFQzQ7MTEwOCAxMTY0IDExQjc7QkVDNDsxMTA4IDExNjQgMTFCNzsKK0JFQzU7QkVDNTsxMTA4IDExNjQgMTFCODtCRUM1OzExMDggMTE2NCAxMUI4OworQkVDNjtCRUM2OzExMDggMTE2NCAxMUI5O0JFQzY7MTEwOCAxMTY0IDExQjk7CitCRUM3O0JFQzc7MTEwOCAxMTY0IDExQkE7QkVDNzsxMTA4IDExNjQgMTFCQTsKK0JFQzg7QkVDODsxMTA4IDExNjQgMTFCQjtCRUM4OzExMDggMTE2NCAxMUJCOworQkVDOTtCRUM5OzExMDggMTE2NCAxMUJDO0JFQzk7MTEwOCAxMTY0IDExQkM7CitCRUNBO0JFQ0E7MTEwOCAxMTY0IDExQkQ7QkVDQTsxMTA4IDExNjQgMTFCRDsKK0JFQ0I7QkVDQjsxMTA4IDExNjQgMTFCRTtCRUNCOzExMDggMTE2NCAxMUJFOworQkVDQztCRUNDOzExMDggMTE2NCAxMUJGO0JFQ0M7MTEwOCAxMTY0IDExQkY7CitCRUNEO0JFQ0Q7MTEwOCAxMTY0IDExQzA7QkVDRDsxMTA4IDExNjQgMTFDMDsKK0JFQ0U7QkVDRTsxMTA4IDExNjQgMTFDMTtCRUNFOzExMDggMTE2NCAxMUMxOworQkVDRjtCRUNGOzExMDggMTE2NCAxMUMyO0JFQ0Y7MTEwOCAxMTY0IDExQzI7CitCRUQwO0JFRDA7MTEwOCAxMTY1O0JFRDA7MTEwOCAxMTY1OworQkVEMTtCRUQxOzExMDggMTE2NSAxMUE4O0JFRDE7MTEwOCAxMTY1IDExQTg7CitCRUQyO0JFRDI7MTEwOCAxMTY1IDExQTk7QkVEMjsxMTA4IDExNjUgMTFBOTsKK0JFRDM7QkVEMzsxMTA4IDExNjUgMTFBQTtCRUQzOzExMDggMTE2NSAxMUFBOworQkVENDtCRUQ0OzExMDggMTE2NSAxMUFCO0JFRDQ7MTEwOCAxMTY1IDExQUI7CitCRUQ1O0JFRDU7MTEwOCAxMTY1IDExQUM7QkVENTsxMTA4IDExNjUgMTFBQzsKK0JFRDY7QkVENjsxMTA4IDExNjUgMTFBRDtCRUQ2OzExMDggMTE2NSAxMUFEOworQkVENztCRUQ3OzExMDggMTE2NSAxMUFFO0JFRDc7MTEwOCAxMTY1IDExQUU7CitCRUQ4O0JFRDg7MTEwOCAxMTY1IDExQUY7QkVEODsxMTA4IDExNjUgMTFBRjsKK0JFRDk7QkVEOTsxMTA4IDExNjUgMTFCMDtCRUQ5OzExMDggMTE2NSAxMUIwOworQkVEQTtCRURBOzExMDggMTE2NSAxMUIxO0JFREE7MTEwOCAxMTY1IDExQjE7CitCRURCO0JFREI7MTEwOCAxMTY1IDExQjI7QkVEQjsxMTA4IDExNjUgMTFCMjsKK0JFREM7QkVEQzsxMTA4IDExNjUgMTFCMztCRURDOzExMDggMTE2NSAxMUIzOworQkVERDtCRUREOzExMDggMTE2NSAxMUI0O0JFREQ7MTEwOCAxMTY1IDExQjQ7CitCRURFO0JFREU7MTEwOCAxMTY1IDExQjU7QkVERTsxMTA4IDExNjUgMTFCNTsKK0JFREY7QkVERjsxMTA4IDExNjUgMTFCNjtCRURGOzExMDggMTE2NSAxMUI2OworQkVFMDtCRUUwOzExMDggMTE2NSAxMUI3O0JFRTA7MTEwOCAxMTY1IDExQjc7CitCRUUxO0JFRTE7MTEwOCAxMTY1IDExQjg7QkVFMTsxMTA4IDExNjUgMTFCODsKK0JFRTI7QkVFMjsxMTA4IDExNjUgMTFCOTtCRUUyOzExMDggMTE2NSAxMUI5OworQkVFMztCRUUzOzExMDggMTE2NSAxMUJBO0JFRTM7MTEwOCAxMTY1IDExQkE7CitCRUU0O0JFRTQ7MTEwOCAxMTY1IDExQkI7QkVFNDsxMTA4IDExNjUgMTFCQjsKK0JFRTU7QkVFNTsxMTA4IDExNjUgMTFCQztCRUU1OzExMDggMTE2NSAxMUJDOworQkVFNjtCRUU2OzExMDggMTE2NSAxMUJEO0JFRTY7MTEwOCAxMTY1IDExQkQ7CitCRUU3O0JFRTc7MTEwOCAxMTY1IDExQkU7QkVFNzsxMTA4IDExNjUgMTFCRTsKK0JFRTg7QkVFODsxMTA4IDExNjUgMTFCRjtCRUU4OzExMDggMTE2NSAxMUJGOworQkVFOTtCRUU5OzExMDggMTE2NSAxMUMwO0JFRTk7MTEwOCAxMTY1IDExQzA7CitCRUVBO0JFRUE7MTEwOCAxMTY1IDExQzE7QkVFQTsxMTA4IDExNjUgMTFDMTsKK0JFRUI7QkVFQjsxMTA4IDExNjUgMTFDMjtCRUVCOzExMDggMTE2NSAxMUMyOworQkVFQztCRUVDOzExMDggMTE2NjtCRUVDOzExMDggMTE2NjsKK0JFRUQ7QkVFRDsxMTA4IDExNjYgMTFBODtCRUVEOzExMDggMTE2NiAxMUE4OworQkVFRTtCRUVFOzExMDggMTE2NiAxMUE5O0JFRUU7MTEwOCAxMTY2IDExQTk7CitCRUVGO0JFRUY7MTEwOCAxMTY2IDExQUE7QkVFRjsxMTA4IDExNjYgMTFBQTsKK0JFRjA7QkVGMDsxMTA4IDExNjYgMTFBQjtCRUYwOzExMDggMTE2NiAxMUFCOworQkVGMTtCRUYxOzExMDggMTE2NiAxMUFDO0JFRjE7MTEwOCAxMTY2IDExQUM7CitCRUYyO0JFRjI7MTEwOCAxMTY2IDExQUQ7QkVGMjsxMTA4IDExNjYgMTFBRDsKK0JFRjM7QkVGMzsxMTA4IDExNjYgMTFBRTtCRUYzOzExMDggMTE2NiAxMUFFOworQkVGNDtCRUY0OzExMDggMTE2NiAxMUFGO0JFRjQ7MTEwOCAxMTY2IDExQUY7CitCRUY1O0JFRjU7MTEwOCAxMTY2IDExQjA7QkVGNTsxMTA4IDExNjYgMTFCMDsKK0JFRjY7QkVGNjsxMTA4IDExNjYgMTFCMTtCRUY2OzExMDggMTE2NiAxMUIxOworQkVGNztCRUY3OzExMDggMTE2NiAxMUIyO0JFRjc7MTEwOCAxMTY2IDExQjI7CitCRUY4O0JFRjg7MTEwOCAxMTY2IDExQjM7QkVGODsxMTA4IDExNjYgMTFCMzsKK0JFRjk7QkVGOTsxMTA4IDExNjYgMTFCNDtCRUY5OzExMDggMTE2NiAxMUI0OworQkVGQTtCRUZBOzExMDggMTE2NiAxMUI1O0JFRkE7MTEwOCAxMTY2IDExQjU7CitCRUZCO0JFRkI7MTEwOCAxMTY2IDExQjY7QkVGQjsxMTA4IDExNjYgMTFCNjsKK0JFRkM7QkVGQzsxMTA4IDExNjYgMTFCNztCRUZDOzExMDggMTE2NiAxMUI3OworQkVGRDtCRUZEOzExMDggMTE2NiAxMUI4O0JFRkQ7MTEwOCAxMTY2IDExQjg7CitCRUZFO0JFRkU7MTEwOCAxMTY2IDExQjk7QkVGRTsxMTA4IDExNjYgMTFCOTsKK0JFRkY7QkVGRjsxMTA4IDExNjYgMTFCQTtCRUZGOzExMDggMTE2NiAxMUJBOworQkYwMDtCRjAwOzExMDggMTE2NiAxMUJCO0JGMDA7MTEwOCAxMTY2IDExQkI7CitCRjAxO0JGMDE7MTEwOCAxMTY2IDExQkM7QkYwMTsxMTA4IDExNjYgMTFCQzsKK0JGMDI7QkYwMjsxMTA4IDExNjYgMTFCRDtCRjAyOzExMDggMTE2NiAxMUJEOworQkYwMztCRjAzOzExMDggMTE2NiAxMUJFO0JGMDM7MTEwOCAxMTY2IDExQkU7CitCRjA0O0JGMDQ7MTEwOCAxMTY2IDExQkY7QkYwNDsxMTA4IDExNjYgMTFCRjsKK0JGMDU7QkYwNTsxMTA4IDExNjYgMTFDMDtCRjA1OzExMDggMTE2NiAxMUMwOworQkYwNjtCRjA2OzExMDggMTE2NiAxMUMxO0JGMDY7MTEwOCAxMTY2IDExQzE7CitCRjA3O0JGMDc7MTEwOCAxMTY2IDExQzI7QkYwNzsxMTA4IDExNjYgMTFDMjsKK0JGMDg7QkYwODsxMTA4IDExNjc7QkYwODsxMTA4IDExNjc7CitCRjA5O0JGMDk7MTEwOCAxMTY3IDExQTg7QkYwOTsxMTA4IDExNjcgMTFBODsKK0JGMEE7QkYwQTsxMTA4IDExNjcgMTFBOTtCRjBBOzExMDggMTE2NyAxMUE5OworQkYwQjtCRjBCOzExMDggMTE2NyAxMUFBO0JGMEI7MTEwOCAxMTY3IDExQUE7CitCRjBDO0JGMEM7MTEwOCAxMTY3IDExQUI7QkYwQzsxMTA4IDExNjcgMTFBQjsKK0JGMEQ7QkYwRDsxMTA4IDExNjcgMTFBQztCRjBEOzExMDggMTE2NyAxMUFDOworQkYwRTtCRjBFOzExMDggMTE2NyAxMUFEO0JGMEU7MTEwOCAxMTY3IDExQUQ7CitCRjBGO0JGMEY7MTEwOCAxMTY3IDExQUU7QkYwRjsxMTA4IDExNjcgMTFBRTsKK0JGMTA7QkYxMDsxMTA4IDExNjcgMTFBRjtCRjEwOzExMDggMTE2NyAxMUFGOworQkYxMTtCRjExOzExMDggMTE2NyAxMUIwO0JGMTE7MTEwOCAxMTY3IDExQjA7CitCRjEyO0JGMTI7MTEwOCAxMTY3IDExQjE7QkYxMjsxMTA4IDExNjcgMTFCMTsKK0JGMTM7QkYxMzsxMTA4IDExNjcgMTFCMjtCRjEzOzExMDggMTE2NyAxMUIyOworQkYxNDtCRjE0OzExMDggMTE2NyAxMUIzO0JGMTQ7MTEwOCAxMTY3IDExQjM7CitCRjE1O0JGMTU7MTEwOCAxMTY3IDExQjQ7QkYxNTsxMTA4IDExNjcgMTFCNDsKK0JGMTY7QkYxNjsxMTA4IDExNjcgMTFCNTtCRjE2OzExMDggMTE2NyAxMUI1OworQkYxNztCRjE3OzExMDggMTE2NyAxMUI2O0JGMTc7MTEwOCAxMTY3IDExQjY7CitCRjE4O0JGMTg7MTEwOCAxMTY3IDExQjc7QkYxODsxMTA4IDExNjcgMTFCNzsKK0JGMTk7QkYxOTsxMTA4IDExNjcgMTFCODtCRjE5OzExMDggMTE2NyAxMUI4OworQkYxQTtCRjFBOzExMDggMTE2NyAxMUI5O0JGMUE7MTEwOCAxMTY3IDExQjk7CitCRjFCO0JGMUI7MTEwOCAxMTY3IDExQkE7QkYxQjsxMTA4IDExNjcgMTFCQTsKK0JGMUM7QkYxQzsxMTA4IDExNjcgMTFCQjtCRjFDOzExMDggMTE2NyAxMUJCOworQkYxRDtCRjFEOzExMDggMTE2NyAxMUJDO0JGMUQ7MTEwOCAxMTY3IDExQkM7CitCRjFFO0JGMUU7MTEwOCAxMTY3IDExQkQ7QkYxRTsxMTA4IDExNjcgMTFCRDsKK0JGMUY7QkYxRjsxMTA4IDExNjcgMTFCRTtCRjFGOzExMDggMTE2NyAxMUJFOworQkYyMDtCRjIwOzExMDggMTE2NyAxMUJGO0JGMjA7MTEwOCAxMTY3IDExQkY7CitCRjIxO0JGMjE7MTEwOCAxMTY3IDExQzA7QkYyMTsxMTA4IDExNjcgMTFDMDsKK0JGMjI7QkYyMjsxMTA4IDExNjcgMTFDMTtCRjIyOzExMDggMTE2NyAxMUMxOworQkYyMztCRjIzOzExMDggMTE2NyAxMUMyO0JGMjM7MTEwOCAxMTY3IDExQzI7CitCRjI0O0JGMjQ7MTEwOCAxMTY4O0JGMjQ7MTEwOCAxMTY4OworQkYyNTtCRjI1OzExMDggMTE2OCAxMUE4O0JGMjU7MTEwOCAxMTY4IDExQTg7CitCRjI2O0JGMjY7MTEwOCAxMTY4IDExQTk7QkYyNjsxMTA4IDExNjggMTFBOTsKK0JGMjc7QkYyNzsxMTA4IDExNjggMTFBQTtCRjI3OzExMDggMTE2OCAxMUFBOworQkYyODtCRjI4OzExMDggMTE2OCAxMUFCO0JGMjg7MTEwOCAxMTY4IDExQUI7CitCRjI5O0JGMjk7MTEwOCAxMTY4IDExQUM7QkYyOTsxMTA4IDExNjggMTFBQzsKK0JGMkE7QkYyQTsxMTA4IDExNjggMTFBRDtCRjJBOzExMDggMTE2OCAxMUFEOworQkYyQjtCRjJCOzExMDggMTE2OCAxMUFFO0JGMkI7MTEwOCAxMTY4IDExQUU7CitCRjJDO0JGMkM7MTEwOCAxMTY4IDExQUY7QkYyQzsxMTA4IDExNjggMTFBRjsKK0JGMkQ7QkYyRDsxMTA4IDExNjggMTFCMDtCRjJEOzExMDggMTE2OCAxMUIwOworQkYyRTtCRjJFOzExMDggMTE2OCAxMUIxO0JGMkU7MTEwOCAxMTY4IDExQjE7CitCRjJGO0JGMkY7MTEwOCAxMTY4IDExQjI7QkYyRjsxMTA4IDExNjggMTFCMjsKK0JGMzA7QkYzMDsxMTA4IDExNjggMTFCMztCRjMwOzExMDggMTE2OCAxMUIzOworQkYzMTtCRjMxOzExMDggMTE2OCAxMUI0O0JGMzE7MTEwOCAxMTY4IDExQjQ7CitCRjMyO0JGMzI7MTEwOCAxMTY4IDExQjU7QkYzMjsxMTA4IDExNjggMTFCNTsKK0JGMzM7QkYzMzsxMTA4IDExNjggMTFCNjtCRjMzOzExMDggMTE2OCAxMUI2OworQkYzNDtCRjM0OzExMDggMTE2OCAxMUI3O0JGMzQ7MTEwOCAxMTY4IDExQjc7CitCRjM1O0JGMzU7MTEwOCAxMTY4IDExQjg7QkYzNTsxMTA4IDExNjggMTFCODsKK0JGMzY7QkYzNjsxMTA4IDExNjggMTFCOTtCRjM2OzExMDggMTE2OCAxMUI5OworQkYzNztCRjM3OzExMDggMTE2OCAxMUJBO0JGMzc7MTEwOCAxMTY4IDExQkE7CitCRjM4O0JGMzg7MTEwOCAxMTY4IDExQkI7QkYzODsxMTA4IDExNjggMTFCQjsKK0JGMzk7QkYzOTsxMTA4IDExNjggMTFCQztCRjM5OzExMDggMTE2OCAxMUJDOworQkYzQTtCRjNBOzExMDggMTE2OCAxMUJEO0JGM0E7MTEwOCAxMTY4IDExQkQ7CitCRjNCO0JGM0I7MTEwOCAxMTY4IDExQkU7QkYzQjsxMTA4IDExNjggMTFCRTsKK0JGM0M7QkYzQzsxMTA4IDExNjggMTFCRjtCRjNDOzExMDggMTE2OCAxMUJGOworQkYzRDtCRjNEOzExMDggMTE2OCAxMUMwO0JGM0Q7MTEwOCAxMTY4IDExQzA7CitCRjNFO0JGM0U7MTEwOCAxMTY4IDExQzE7QkYzRTsxMTA4IDExNjggMTFDMTsKK0JGM0Y7QkYzRjsxMTA4IDExNjggMTFDMjtCRjNGOzExMDggMTE2OCAxMUMyOworQkY0MDtCRjQwOzExMDggMTE2OTtCRjQwOzExMDggMTE2OTsKK0JGNDE7QkY0MTsxMTA4IDExNjkgMTFBODtCRjQxOzExMDggMTE2OSAxMUE4OworQkY0MjtCRjQyOzExMDggMTE2OSAxMUE5O0JGNDI7MTEwOCAxMTY5IDExQTk7CitCRjQzO0JGNDM7MTEwOCAxMTY5IDExQUE7QkY0MzsxMTA4IDExNjkgMTFBQTsKK0JGNDQ7QkY0NDsxMTA4IDExNjkgMTFBQjtCRjQ0OzExMDggMTE2OSAxMUFCOworQkY0NTtCRjQ1OzExMDggMTE2OSAxMUFDO0JGNDU7MTEwOCAxMTY5IDExQUM7CitCRjQ2O0JGNDY7MTEwOCAxMTY5IDExQUQ7QkY0NjsxMTA4IDExNjkgMTFBRDsKK0JGNDc7QkY0NzsxMTA4IDExNjkgMTFBRTtCRjQ3OzExMDggMTE2OSAxMUFFOworQkY0ODtCRjQ4OzExMDggMTE2OSAxMUFGO0JGNDg7MTEwOCAxMTY5IDExQUY7CitCRjQ5O0JGNDk7MTEwOCAxMTY5IDExQjA7QkY0OTsxMTA4IDExNjkgMTFCMDsKK0JGNEE7QkY0QTsxMTA4IDExNjkgMTFCMTtCRjRBOzExMDggMTE2OSAxMUIxOworQkY0QjtCRjRCOzExMDggMTE2OSAxMUIyO0JGNEI7MTEwOCAxMTY5IDExQjI7CitCRjRDO0JGNEM7MTEwOCAxMTY5IDExQjM7QkY0QzsxMTA4IDExNjkgMTFCMzsKK0JGNEQ7QkY0RDsxMTA4IDExNjkgMTFCNDtCRjREOzExMDggMTE2OSAxMUI0OworQkY0RTtCRjRFOzExMDggMTE2OSAxMUI1O0JGNEU7MTEwOCAxMTY5IDExQjU7CitCRjRGO0JGNEY7MTEwOCAxMTY5IDExQjY7QkY0RjsxMTA4IDExNjkgMTFCNjsKK0JGNTA7QkY1MDsxMTA4IDExNjkgMTFCNztCRjUwOzExMDggMTE2OSAxMUI3OworQkY1MTtCRjUxOzExMDggMTE2OSAxMUI4O0JGNTE7MTEwOCAxMTY5IDExQjg7CitCRjUyO0JGNTI7MTEwOCAxMTY5IDExQjk7QkY1MjsxMTA4IDExNjkgMTFCOTsKK0JGNTM7QkY1MzsxMTA4IDExNjkgMTFCQTtCRjUzOzExMDggMTE2OSAxMUJBOworQkY1NDtCRjU0OzExMDggMTE2OSAxMUJCO0JGNTQ7MTEwOCAxMTY5IDExQkI7CitCRjU1O0JGNTU7MTEwOCAxMTY5IDExQkM7QkY1NTsxMTA4IDExNjkgMTFCQzsKK0JGNTY7QkY1NjsxMTA4IDExNjkgMTFCRDtCRjU2OzExMDggMTE2OSAxMUJEOworQkY1NztCRjU3OzExMDggMTE2OSAxMUJFO0JGNTc7MTEwOCAxMTY5IDExQkU7CitCRjU4O0JGNTg7MTEwOCAxMTY5IDExQkY7QkY1ODsxMTA4IDExNjkgMTFCRjsKK0JGNTk7QkY1OTsxMTA4IDExNjkgMTFDMDtCRjU5OzExMDggMTE2OSAxMUMwOworQkY1QTtCRjVBOzExMDggMTE2OSAxMUMxO0JGNUE7MTEwOCAxMTY5IDExQzE7CitCRjVCO0JGNUI7MTEwOCAxMTY5IDExQzI7QkY1QjsxMTA4IDExNjkgMTFDMjsKK0JGNUM7QkY1QzsxMTA4IDExNkE7QkY1QzsxMTA4IDExNkE7CitCRjVEO0JGNUQ7MTEwOCAxMTZBIDExQTg7QkY1RDsxMTA4IDExNkEgMTFBODsKK0JGNUU7QkY1RTsxMTA4IDExNkEgMTFBOTtCRjVFOzExMDggMTE2QSAxMUE5OworQkY1RjtCRjVGOzExMDggMTE2QSAxMUFBO0JGNUY7MTEwOCAxMTZBIDExQUE7CitCRjYwO0JGNjA7MTEwOCAxMTZBIDExQUI7QkY2MDsxMTA4IDExNkEgMTFBQjsKK0JGNjE7QkY2MTsxMTA4IDExNkEgMTFBQztCRjYxOzExMDggMTE2QSAxMUFDOworQkY2MjtCRjYyOzExMDggMTE2QSAxMUFEO0JGNjI7MTEwOCAxMTZBIDExQUQ7CitCRjYzO0JGNjM7MTEwOCAxMTZBIDExQUU7QkY2MzsxMTA4IDExNkEgMTFBRTsKK0JGNjQ7QkY2NDsxMTA4IDExNkEgMTFBRjtCRjY0OzExMDggMTE2QSAxMUFGOworQkY2NTtCRjY1OzExMDggMTE2QSAxMUIwO0JGNjU7MTEwOCAxMTZBIDExQjA7CitCRjY2O0JGNjY7MTEwOCAxMTZBIDExQjE7QkY2NjsxMTA4IDExNkEgMTFCMTsKK0JGNjc7QkY2NzsxMTA4IDExNkEgMTFCMjtCRjY3OzExMDggMTE2QSAxMUIyOworQkY2ODtCRjY4OzExMDggMTE2QSAxMUIzO0JGNjg7MTEwOCAxMTZBIDExQjM7CitCRjY5O0JGNjk7MTEwOCAxMTZBIDExQjQ7QkY2OTsxMTA4IDExNkEgMTFCNDsKK0JGNkE7QkY2QTsxMTA4IDExNkEgMTFCNTtCRjZBOzExMDggMTE2QSAxMUI1OworQkY2QjtCRjZCOzExMDggMTE2QSAxMUI2O0JGNkI7MTEwOCAxMTZBIDExQjY7CitCRjZDO0JGNkM7MTEwOCAxMTZBIDExQjc7QkY2QzsxMTA4IDExNkEgMTFCNzsKK0JGNkQ7QkY2RDsxMTA4IDExNkEgMTFCODtCRjZEOzExMDggMTE2QSAxMUI4OworQkY2RTtCRjZFOzExMDggMTE2QSAxMUI5O0JGNkU7MTEwOCAxMTZBIDExQjk7CitCRjZGO0JGNkY7MTEwOCAxMTZBIDExQkE7QkY2RjsxMTA4IDExNkEgMTFCQTsKK0JGNzA7QkY3MDsxMTA4IDExNkEgMTFCQjtCRjcwOzExMDggMTE2QSAxMUJCOworQkY3MTtCRjcxOzExMDggMTE2QSAxMUJDO0JGNzE7MTEwOCAxMTZBIDExQkM7CitCRjcyO0JGNzI7MTEwOCAxMTZBIDExQkQ7QkY3MjsxMTA4IDExNkEgMTFCRDsKK0JGNzM7QkY3MzsxMTA4IDExNkEgMTFCRTtCRjczOzExMDggMTE2QSAxMUJFOworQkY3NDtCRjc0OzExMDggMTE2QSAxMUJGO0JGNzQ7MTEwOCAxMTZBIDExQkY7CitCRjc1O0JGNzU7MTEwOCAxMTZBIDExQzA7QkY3NTsxMTA4IDExNkEgMTFDMDsKK0JGNzY7QkY3NjsxMTA4IDExNkEgMTFDMTtCRjc2OzExMDggMTE2QSAxMUMxOworQkY3NztCRjc3OzExMDggMTE2QSAxMUMyO0JGNzc7MTEwOCAxMTZBIDExQzI7CitCRjc4O0JGNzg7MTEwOCAxMTZCO0JGNzg7MTEwOCAxMTZCOworQkY3OTtCRjc5OzExMDggMTE2QiAxMUE4O0JGNzk7MTEwOCAxMTZCIDExQTg7CitCRjdBO0JGN0E7MTEwOCAxMTZCIDExQTk7QkY3QTsxMTA4IDExNkIgMTFBOTsKK0JGN0I7QkY3QjsxMTA4IDExNkIgMTFBQTtCRjdCOzExMDggMTE2QiAxMUFBOworQkY3QztCRjdDOzExMDggMTE2QiAxMUFCO0JGN0M7MTEwOCAxMTZCIDExQUI7CitCRjdEO0JGN0Q7MTEwOCAxMTZCIDExQUM7QkY3RDsxMTA4IDExNkIgMTFBQzsKK0JGN0U7QkY3RTsxMTA4IDExNkIgMTFBRDtCRjdFOzExMDggMTE2QiAxMUFEOworQkY3RjtCRjdGOzExMDggMTE2QiAxMUFFO0JGN0Y7MTEwOCAxMTZCIDExQUU7CitCRjgwO0JGODA7MTEwOCAxMTZCIDExQUY7QkY4MDsxMTA4IDExNkIgMTFBRjsKK0JGODE7QkY4MTsxMTA4IDExNkIgMTFCMDtCRjgxOzExMDggMTE2QiAxMUIwOworQkY4MjtCRjgyOzExMDggMTE2QiAxMUIxO0JGODI7MTEwOCAxMTZCIDExQjE7CitCRjgzO0JGODM7MTEwOCAxMTZCIDExQjI7QkY4MzsxMTA4IDExNkIgMTFCMjsKK0JGODQ7QkY4NDsxMTA4IDExNkIgMTFCMztCRjg0OzExMDggMTE2QiAxMUIzOworQkY4NTtCRjg1OzExMDggMTE2QiAxMUI0O0JGODU7MTEwOCAxMTZCIDExQjQ7CitCRjg2O0JGODY7MTEwOCAxMTZCIDExQjU7QkY4NjsxMTA4IDExNkIgMTFCNTsKK0JGODc7QkY4NzsxMTA4IDExNkIgMTFCNjtCRjg3OzExMDggMTE2QiAxMUI2OworQkY4ODtCRjg4OzExMDggMTE2QiAxMUI3O0JGODg7MTEwOCAxMTZCIDExQjc7CitCRjg5O0JGODk7MTEwOCAxMTZCIDExQjg7QkY4OTsxMTA4IDExNkIgMTFCODsKK0JGOEE7QkY4QTsxMTA4IDExNkIgMTFCOTtCRjhBOzExMDggMTE2QiAxMUI5OworQkY4QjtCRjhCOzExMDggMTE2QiAxMUJBO0JGOEI7MTEwOCAxMTZCIDExQkE7CitCRjhDO0JGOEM7MTEwOCAxMTZCIDExQkI7QkY4QzsxMTA4IDExNkIgMTFCQjsKK0JGOEQ7QkY4RDsxMTA4IDExNkIgMTFCQztCRjhEOzExMDggMTE2QiAxMUJDOworQkY4RTtCRjhFOzExMDggMTE2QiAxMUJEO0JGOEU7MTEwOCAxMTZCIDExQkQ7CitCRjhGO0JGOEY7MTEwOCAxMTZCIDExQkU7QkY4RjsxMTA4IDExNkIgMTFCRTsKK0JGOTA7QkY5MDsxMTA4IDExNkIgMTFCRjtCRjkwOzExMDggMTE2QiAxMUJGOworQkY5MTtCRjkxOzExMDggMTE2QiAxMUMwO0JGOTE7MTEwOCAxMTZCIDExQzA7CitCRjkyO0JGOTI7MTEwOCAxMTZCIDExQzE7QkY5MjsxMTA4IDExNkIgMTFDMTsKK0JGOTM7QkY5MzsxMTA4IDExNkIgMTFDMjtCRjkzOzExMDggMTE2QiAxMUMyOworQkY5NDtCRjk0OzExMDggMTE2QztCRjk0OzExMDggMTE2QzsKK0JGOTU7QkY5NTsxMTA4IDExNkMgMTFBODtCRjk1OzExMDggMTE2QyAxMUE4OworQkY5NjtCRjk2OzExMDggMTE2QyAxMUE5O0JGOTY7MTEwOCAxMTZDIDExQTk7CitCRjk3O0JGOTc7MTEwOCAxMTZDIDExQUE7QkY5NzsxMTA4IDExNkMgMTFBQTsKK0JGOTg7QkY5ODsxMTA4IDExNkMgMTFBQjtCRjk4OzExMDggMTE2QyAxMUFCOworQkY5OTtCRjk5OzExMDggMTE2QyAxMUFDO0JGOTk7MTEwOCAxMTZDIDExQUM7CitCRjlBO0JGOUE7MTEwOCAxMTZDIDExQUQ7QkY5QTsxMTA4IDExNkMgMTFBRDsKK0JGOUI7QkY5QjsxMTA4IDExNkMgMTFBRTtCRjlCOzExMDggMTE2QyAxMUFFOworQkY5QztCRjlDOzExMDggMTE2QyAxMUFGO0JGOUM7MTEwOCAxMTZDIDExQUY7CitCRjlEO0JGOUQ7MTEwOCAxMTZDIDExQjA7QkY5RDsxMTA4IDExNkMgMTFCMDsKK0JGOUU7QkY5RTsxMTA4IDExNkMgMTFCMTtCRjlFOzExMDggMTE2QyAxMUIxOworQkY5RjtCRjlGOzExMDggMTE2QyAxMUIyO0JGOUY7MTEwOCAxMTZDIDExQjI7CitCRkEwO0JGQTA7MTEwOCAxMTZDIDExQjM7QkZBMDsxMTA4IDExNkMgMTFCMzsKK0JGQTE7QkZBMTsxMTA4IDExNkMgMTFCNDtCRkExOzExMDggMTE2QyAxMUI0OworQkZBMjtCRkEyOzExMDggMTE2QyAxMUI1O0JGQTI7MTEwOCAxMTZDIDExQjU7CitCRkEzO0JGQTM7MTEwOCAxMTZDIDExQjY7QkZBMzsxMTA4IDExNkMgMTFCNjsKK0JGQTQ7QkZBNDsxMTA4IDExNkMgMTFCNztCRkE0OzExMDggMTE2QyAxMUI3OworQkZBNTtCRkE1OzExMDggMTE2QyAxMUI4O0JGQTU7MTEwOCAxMTZDIDExQjg7CitCRkE2O0JGQTY7MTEwOCAxMTZDIDExQjk7QkZBNjsxMTA4IDExNkMgMTFCOTsKK0JGQTc7QkZBNzsxMTA4IDExNkMgMTFCQTtCRkE3OzExMDggMTE2QyAxMUJBOworQkZBODtCRkE4OzExMDggMTE2QyAxMUJCO0JGQTg7MTEwOCAxMTZDIDExQkI7CitCRkE5O0JGQTk7MTEwOCAxMTZDIDExQkM7QkZBOTsxMTA4IDExNkMgMTFCQzsKK0JGQUE7QkZBQTsxMTA4IDExNkMgMTFCRDtCRkFBOzExMDggMTE2QyAxMUJEOworQkZBQjtCRkFCOzExMDggMTE2QyAxMUJFO0JGQUI7MTEwOCAxMTZDIDExQkU7CitCRkFDO0JGQUM7MTEwOCAxMTZDIDExQkY7QkZBQzsxMTA4IDExNkMgMTFCRjsKK0JGQUQ7QkZBRDsxMTA4IDExNkMgMTFDMDtCRkFEOzExMDggMTE2QyAxMUMwOworQkZBRTtCRkFFOzExMDggMTE2QyAxMUMxO0JGQUU7MTEwOCAxMTZDIDExQzE7CitCRkFGO0JGQUY7MTEwOCAxMTZDIDExQzI7QkZBRjsxMTA4IDExNkMgMTFDMjsKK0JGQjA7QkZCMDsxMTA4IDExNkQ7QkZCMDsxMTA4IDExNkQ7CitCRkIxO0JGQjE7MTEwOCAxMTZEIDExQTg7QkZCMTsxMTA4IDExNkQgMTFBODsKK0JGQjI7QkZCMjsxMTA4IDExNkQgMTFBOTtCRkIyOzExMDggMTE2RCAxMUE5OworQkZCMztCRkIzOzExMDggMTE2RCAxMUFBO0JGQjM7MTEwOCAxMTZEIDExQUE7CitCRkI0O0JGQjQ7MTEwOCAxMTZEIDExQUI7QkZCNDsxMTA4IDExNkQgMTFBQjsKK0JGQjU7QkZCNTsxMTA4IDExNkQgMTFBQztCRkI1OzExMDggMTE2RCAxMUFDOworQkZCNjtCRkI2OzExMDggMTE2RCAxMUFEO0JGQjY7MTEwOCAxMTZEIDExQUQ7CitCRkI3O0JGQjc7MTEwOCAxMTZEIDExQUU7QkZCNzsxMTA4IDExNkQgMTFBRTsKK0JGQjg7QkZCODsxMTA4IDExNkQgMTFBRjtCRkI4OzExMDggMTE2RCAxMUFGOworQkZCOTtCRkI5OzExMDggMTE2RCAxMUIwO0JGQjk7MTEwOCAxMTZEIDExQjA7CitCRkJBO0JGQkE7MTEwOCAxMTZEIDExQjE7QkZCQTsxMTA4IDExNkQgMTFCMTsKK0JGQkI7QkZCQjsxMTA4IDExNkQgMTFCMjtCRkJCOzExMDggMTE2RCAxMUIyOworQkZCQztCRkJDOzExMDggMTE2RCAxMUIzO0JGQkM7MTEwOCAxMTZEIDExQjM7CitCRkJEO0JGQkQ7MTEwOCAxMTZEIDExQjQ7QkZCRDsxMTA4IDExNkQgMTFCNDsKK0JGQkU7QkZCRTsxMTA4IDExNkQgMTFCNTtCRkJFOzExMDggMTE2RCAxMUI1OworQkZCRjtCRkJGOzExMDggMTE2RCAxMUI2O0JGQkY7MTEwOCAxMTZEIDExQjY7CitCRkMwO0JGQzA7MTEwOCAxMTZEIDExQjc7QkZDMDsxMTA4IDExNkQgMTFCNzsKK0JGQzE7QkZDMTsxMTA4IDExNkQgMTFCODtCRkMxOzExMDggMTE2RCAxMUI4OworQkZDMjtCRkMyOzExMDggMTE2RCAxMUI5O0JGQzI7MTEwOCAxMTZEIDExQjk7CitCRkMzO0JGQzM7MTEwOCAxMTZEIDExQkE7QkZDMzsxMTA4IDExNkQgMTFCQTsKK0JGQzQ7QkZDNDsxMTA4IDExNkQgMTFCQjtCRkM0OzExMDggMTE2RCAxMUJCOworQkZDNTtCRkM1OzExMDggMTE2RCAxMUJDO0JGQzU7MTEwOCAxMTZEIDExQkM7CitCRkM2O0JGQzY7MTEwOCAxMTZEIDExQkQ7QkZDNjsxMTA4IDExNkQgMTFCRDsKK0JGQzc7QkZDNzsxMTA4IDExNkQgMTFCRTtCRkM3OzExMDggMTE2RCAxMUJFOworQkZDODtCRkM4OzExMDggMTE2RCAxMUJGO0JGQzg7MTEwOCAxMTZEIDExQkY7CitCRkM5O0JGQzk7MTEwOCAxMTZEIDExQzA7QkZDOTsxMTA4IDExNkQgMTFDMDsKK0JGQ0E7QkZDQTsxMTA4IDExNkQgMTFDMTtCRkNBOzExMDggMTE2RCAxMUMxOworQkZDQjtCRkNCOzExMDggMTE2RCAxMUMyO0JGQ0I7MTEwOCAxMTZEIDExQzI7CitCRkNDO0JGQ0M7MTEwOCAxMTZFO0JGQ0M7MTEwOCAxMTZFOworQkZDRDtCRkNEOzExMDggMTE2RSAxMUE4O0JGQ0Q7MTEwOCAxMTZFIDExQTg7CitCRkNFO0JGQ0U7MTEwOCAxMTZFIDExQTk7QkZDRTsxMTA4IDExNkUgMTFBOTsKK0JGQ0Y7QkZDRjsxMTA4IDExNkUgMTFBQTtCRkNGOzExMDggMTE2RSAxMUFBOworQkZEMDtCRkQwOzExMDggMTE2RSAxMUFCO0JGRDA7MTEwOCAxMTZFIDExQUI7CitCRkQxO0JGRDE7MTEwOCAxMTZFIDExQUM7QkZEMTsxMTA4IDExNkUgMTFBQzsKK0JGRDI7QkZEMjsxMTA4IDExNkUgMTFBRDtCRkQyOzExMDggMTE2RSAxMUFEOworQkZEMztCRkQzOzExMDggMTE2RSAxMUFFO0JGRDM7MTEwOCAxMTZFIDExQUU7CitCRkQ0O0JGRDQ7MTEwOCAxMTZFIDExQUY7QkZENDsxMTA4IDExNkUgMTFBRjsKK0JGRDU7QkZENTsxMTA4IDExNkUgMTFCMDtCRkQ1OzExMDggMTE2RSAxMUIwOworQkZENjtCRkQ2OzExMDggMTE2RSAxMUIxO0JGRDY7MTEwOCAxMTZFIDExQjE7CitCRkQ3O0JGRDc7MTEwOCAxMTZFIDExQjI7QkZENzsxMTA4IDExNkUgMTFCMjsKK0JGRDg7QkZEODsxMTA4IDExNkUgMTFCMztCRkQ4OzExMDggMTE2RSAxMUIzOworQkZEOTtCRkQ5OzExMDggMTE2RSAxMUI0O0JGRDk7MTEwOCAxMTZFIDExQjQ7CitCRkRBO0JGREE7MTEwOCAxMTZFIDExQjU7QkZEQTsxMTA4IDExNkUgMTFCNTsKK0JGREI7QkZEQjsxMTA4IDExNkUgMTFCNjtCRkRCOzExMDggMTE2RSAxMUI2OworQkZEQztCRkRDOzExMDggMTE2RSAxMUI3O0JGREM7MTEwOCAxMTZFIDExQjc7CitCRkREO0JGREQ7MTEwOCAxMTZFIDExQjg7QkZERDsxMTA4IDExNkUgMTFCODsKK0JGREU7QkZERTsxMTA4IDExNkUgMTFCOTtCRkRFOzExMDggMTE2RSAxMUI5OworQkZERjtCRkRGOzExMDggMTE2RSAxMUJBO0JGREY7MTEwOCAxMTZFIDExQkE7CitCRkUwO0JGRTA7MTEwOCAxMTZFIDExQkI7QkZFMDsxMTA4IDExNkUgMTFCQjsKK0JGRTE7QkZFMTsxMTA4IDExNkUgMTFCQztCRkUxOzExMDggMTE2RSAxMUJDOworQkZFMjtCRkUyOzExMDggMTE2RSAxMUJEO0JGRTI7MTEwOCAxMTZFIDExQkQ7CitCRkUzO0JGRTM7MTEwOCAxMTZFIDExQkU7QkZFMzsxMTA4IDExNkUgMTFCRTsKK0JGRTQ7QkZFNDsxMTA4IDExNkUgMTFCRjtCRkU0OzExMDggMTE2RSAxMUJGOworQkZFNTtCRkU1OzExMDggMTE2RSAxMUMwO0JGRTU7MTEwOCAxMTZFIDExQzA7CitCRkU2O0JGRTY7MTEwOCAxMTZFIDExQzE7QkZFNjsxMTA4IDExNkUgMTFDMTsKK0JGRTc7QkZFNzsxMTA4IDExNkUgMTFDMjtCRkU3OzExMDggMTE2RSAxMUMyOworQkZFODtCRkU4OzExMDggMTE2RjtCRkU4OzExMDggMTE2RjsKK0JGRTk7QkZFOTsxMTA4IDExNkYgMTFBODtCRkU5OzExMDggMTE2RiAxMUE4OworQkZFQTtCRkVBOzExMDggMTE2RiAxMUE5O0JGRUE7MTEwOCAxMTZGIDExQTk7CitCRkVCO0JGRUI7MTEwOCAxMTZGIDExQUE7QkZFQjsxMTA4IDExNkYgMTFBQTsKK0JGRUM7QkZFQzsxMTA4IDExNkYgMTFBQjtCRkVDOzExMDggMTE2RiAxMUFCOworQkZFRDtCRkVEOzExMDggMTE2RiAxMUFDO0JGRUQ7MTEwOCAxMTZGIDExQUM7CitCRkVFO0JGRUU7MTEwOCAxMTZGIDExQUQ7QkZFRTsxMTA4IDExNkYgMTFBRDsKK0JGRUY7QkZFRjsxMTA4IDExNkYgMTFBRTtCRkVGOzExMDggMTE2RiAxMUFFOworQkZGMDtCRkYwOzExMDggMTE2RiAxMUFGO0JGRjA7MTEwOCAxMTZGIDExQUY7CitCRkYxO0JGRjE7MTEwOCAxMTZGIDExQjA7QkZGMTsxMTA4IDExNkYgMTFCMDsKK0JGRjI7QkZGMjsxMTA4IDExNkYgMTFCMTtCRkYyOzExMDggMTE2RiAxMUIxOworQkZGMztCRkYzOzExMDggMTE2RiAxMUIyO0JGRjM7MTEwOCAxMTZGIDExQjI7CitCRkY0O0JGRjQ7MTEwOCAxMTZGIDExQjM7QkZGNDsxMTA4IDExNkYgMTFCMzsKK0JGRjU7QkZGNTsxMTA4IDExNkYgMTFCNDtCRkY1OzExMDggMTE2RiAxMUI0OworQkZGNjtCRkY2OzExMDggMTE2RiAxMUI1O0JGRjY7MTEwOCAxMTZGIDExQjU7CitCRkY3O0JGRjc7MTEwOCAxMTZGIDExQjY7QkZGNzsxMTA4IDExNkYgMTFCNjsKK0JGRjg7QkZGODsxMTA4IDExNkYgMTFCNztCRkY4OzExMDggMTE2RiAxMUI3OworQkZGOTtCRkY5OzExMDggMTE2RiAxMUI4O0JGRjk7MTEwOCAxMTZGIDExQjg7CitCRkZBO0JGRkE7MTEwOCAxMTZGIDExQjk7QkZGQTsxMTA4IDExNkYgMTFCOTsKK0JGRkI7QkZGQjsxMTA4IDExNkYgMTFCQTtCRkZCOzExMDggMTE2RiAxMUJBOworQkZGQztCRkZDOzExMDggMTE2RiAxMUJCO0JGRkM7MTEwOCAxMTZGIDExQkI7CitCRkZEO0JGRkQ7MTEwOCAxMTZGIDExQkM7QkZGRDsxMTA4IDExNkYgMTFCQzsKK0JGRkU7QkZGRTsxMTA4IDExNkYgMTFCRDtCRkZFOzExMDggMTE2RiAxMUJEOworQkZGRjtCRkZGOzExMDggMTE2RiAxMUJFO0JGRkY7MTEwOCAxMTZGIDExQkU7CitDMDAwO0MwMDA7MTEwOCAxMTZGIDExQkY7QzAwMDsxMTA4IDExNkYgMTFCRjsKK0MwMDE7QzAwMTsxMTA4IDExNkYgMTFDMDtDMDAxOzExMDggMTE2RiAxMUMwOworQzAwMjtDMDAyOzExMDggMTE2RiAxMUMxO0MwMDI7MTEwOCAxMTZGIDExQzE7CitDMDAzO0MwMDM7MTEwOCAxMTZGIDExQzI7QzAwMzsxMTA4IDExNkYgMTFDMjsKK0MwMDQ7QzAwNDsxMTA4IDExNzA7QzAwNDsxMTA4IDExNzA7CitDMDA1O0MwMDU7MTEwOCAxMTcwIDExQTg7QzAwNTsxMTA4IDExNzAgMTFBODsKK0MwMDY7QzAwNjsxMTA4IDExNzAgMTFBOTtDMDA2OzExMDggMTE3MCAxMUE5OworQzAwNztDMDA3OzExMDggMTE3MCAxMUFBO0MwMDc7MTEwOCAxMTcwIDExQUE7CitDMDA4O0MwMDg7MTEwOCAxMTcwIDExQUI7QzAwODsxMTA4IDExNzAgMTFBQjsKK0MwMDk7QzAwOTsxMTA4IDExNzAgMTFBQztDMDA5OzExMDggMTE3MCAxMUFDOworQzAwQTtDMDBBOzExMDggMTE3MCAxMUFEO0MwMEE7MTEwOCAxMTcwIDExQUQ7CitDMDBCO0MwMEI7MTEwOCAxMTcwIDExQUU7QzAwQjsxMTA4IDExNzAgMTFBRTsKK0MwMEM7QzAwQzsxMTA4IDExNzAgMTFBRjtDMDBDOzExMDggMTE3MCAxMUFGOworQzAwRDtDMDBEOzExMDggMTE3MCAxMUIwO0MwMEQ7MTEwOCAxMTcwIDExQjA7CitDMDBFO0MwMEU7MTEwOCAxMTcwIDExQjE7QzAwRTsxMTA4IDExNzAgMTFCMTsKK0MwMEY7QzAwRjsxMTA4IDExNzAgMTFCMjtDMDBGOzExMDggMTE3MCAxMUIyOworQzAxMDtDMDEwOzExMDggMTE3MCAxMUIzO0MwMTA7MTEwOCAxMTcwIDExQjM7CitDMDExO0MwMTE7MTEwOCAxMTcwIDExQjQ7QzAxMTsxMTA4IDExNzAgMTFCNDsKK0MwMTI7QzAxMjsxMTA4IDExNzAgMTFCNTtDMDEyOzExMDggMTE3MCAxMUI1OworQzAxMztDMDEzOzExMDggMTE3MCAxMUI2O0MwMTM7MTEwOCAxMTcwIDExQjY7CitDMDE0O0MwMTQ7MTEwOCAxMTcwIDExQjc7QzAxNDsxMTA4IDExNzAgMTFCNzsKK0MwMTU7QzAxNTsxMTA4IDExNzAgMTFCODtDMDE1OzExMDggMTE3MCAxMUI4OworQzAxNjtDMDE2OzExMDggMTE3MCAxMUI5O0MwMTY7MTEwOCAxMTcwIDExQjk7CitDMDE3O0MwMTc7MTEwOCAxMTcwIDExQkE7QzAxNzsxMTA4IDExNzAgMTFCQTsKK0MwMTg7QzAxODsxMTA4IDExNzAgMTFCQjtDMDE4OzExMDggMTE3MCAxMUJCOworQzAxOTtDMDE5OzExMDggMTE3MCAxMUJDO0MwMTk7MTEwOCAxMTcwIDExQkM7CitDMDFBO0MwMUE7MTEwOCAxMTcwIDExQkQ7QzAxQTsxMTA4IDExNzAgMTFCRDsKK0MwMUI7QzAxQjsxMTA4IDExNzAgMTFCRTtDMDFCOzExMDggMTE3MCAxMUJFOworQzAxQztDMDFDOzExMDggMTE3MCAxMUJGO0MwMUM7MTEwOCAxMTcwIDExQkY7CitDMDFEO0MwMUQ7MTEwOCAxMTcwIDExQzA7QzAxRDsxMTA4IDExNzAgMTFDMDsKK0MwMUU7QzAxRTsxMTA4IDExNzAgMTFDMTtDMDFFOzExMDggMTE3MCAxMUMxOworQzAxRjtDMDFGOzExMDggMTE3MCAxMUMyO0MwMUY7MTEwOCAxMTcwIDExQzI7CitDMDIwO0MwMjA7MTEwOCAxMTcxO0MwMjA7MTEwOCAxMTcxOworQzAyMTtDMDIxOzExMDggMTE3MSAxMUE4O0MwMjE7MTEwOCAxMTcxIDExQTg7CitDMDIyO0MwMjI7MTEwOCAxMTcxIDExQTk7QzAyMjsxMTA4IDExNzEgMTFBOTsKK0MwMjM7QzAyMzsxMTA4IDExNzEgMTFBQTtDMDIzOzExMDggMTE3MSAxMUFBOworQzAyNDtDMDI0OzExMDggMTE3MSAxMUFCO0MwMjQ7MTEwOCAxMTcxIDExQUI7CitDMDI1O0MwMjU7MTEwOCAxMTcxIDExQUM7QzAyNTsxMTA4IDExNzEgMTFBQzsKK0MwMjY7QzAyNjsxMTA4IDExNzEgMTFBRDtDMDI2OzExMDggMTE3MSAxMUFEOworQzAyNztDMDI3OzExMDggMTE3MSAxMUFFO0MwMjc7MTEwOCAxMTcxIDExQUU7CitDMDI4O0MwMjg7MTEwOCAxMTcxIDExQUY7QzAyODsxMTA4IDExNzEgMTFBRjsKK0MwMjk7QzAyOTsxMTA4IDExNzEgMTFCMDtDMDI5OzExMDggMTE3MSAxMUIwOworQzAyQTtDMDJBOzExMDggMTE3MSAxMUIxO0MwMkE7MTEwOCAxMTcxIDExQjE7CitDMDJCO0MwMkI7MTEwOCAxMTcxIDExQjI7QzAyQjsxMTA4IDExNzEgMTFCMjsKK0MwMkM7QzAyQzsxMTA4IDExNzEgMTFCMztDMDJDOzExMDggMTE3MSAxMUIzOworQzAyRDtDMDJEOzExMDggMTE3MSAxMUI0O0MwMkQ7MTEwOCAxMTcxIDExQjQ7CitDMDJFO0MwMkU7MTEwOCAxMTcxIDExQjU7QzAyRTsxMTA4IDExNzEgMTFCNTsKK0MwMkY7QzAyRjsxMTA4IDExNzEgMTFCNjtDMDJGOzExMDggMTE3MSAxMUI2OworQzAzMDtDMDMwOzExMDggMTE3MSAxMUI3O0MwMzA7MTEwOCAxMTcxIDExQjc7CitDMDMxO0MwMzE7MTEwOCAxMTcxIDExQjg7QzAzMTsxMTA4IDExNzEgMTFCODsKK0MwMzI7QzAzMjsxMTA4IDExNzEgMTFCOTtDMDMyOzExMDggMTE3MSAxMUI5OworQzAzMztDMDMzOzExMDggMTE3MSAxMUJBO0MwMzM7MTEwOCAxMTcxIDExQkE7CitDMDM0O0MwMzQ7MTEwOCAxMTcxIDExQkI7QzAzNDsxMTA4IDExNzEgMTFCQjsKK0MwMzU7QzAzNTsxMTA4IDExNzEgMTFCQztDMDM1OzExMDggMTE3MSAxMUJDOworQzAzNjtDMDM2OzExMDggMTE3MSAxMUJEO0MwMzY7MTEwOCAxMTcxIDExQkQ7CitDMDM3O0MwMzc7MTEwOCAxMTcxIDExQkU7QzAzNzsxMTA4IDExNzEgMTFCRTsKK0MwMzg7QzAzODsxMTA4IDExNzEgMTFCRjtDMDM4OzExMDggMTE3MSAxMUJGOworQzAzOTtDMDM5OzExMDggMTE3MSAxMUMwO0MwMzk7MTEwOCAxMTcxIDExQzA7CitDMDNBO0MwM0E7MTEwOCAxMTcxIDExQzE7QzAzQTsxMTA4IDExNzEgMTFDMTsKK0MwM0I7QzAzQjsxMTA4IDExNzEgMTFDMjtDMDNCOzExMDggMTE3MSAxMUMyOworQzAzQztDMDNDOzExMDggMTE3MjtDMDNDOzExMDggMTE3MjsKK0MwM0Q7QzAzRDsxMTA4IDExNzIgMTFBODtDMDNEOzExMDggMTE3MiAxMUE4OworQzAzRTtDMDNFOzExMDggMTE3MiAxMUE5O0MwM0U7MTEwOCAxMTcyIDExQTk7CitDMDNGO0MwM0Y7MTEwOCAxMTcyIDExQUE7QzAzRjsxMTA4IDExNzIgMTFBQTsKK0MwNDA7QzA0MDsxMTA4IDExNzIgMTFBQjtDMDQwOzExMDggMTE3MiAxMUFCOworQzA0MTtDMDQxOzExMDggMTE3MiAxMUFDO0MwNDE7MTEwOCAxMTcyIDExQUM7CitDMDQyO0MwNDI7MTEwOCAxMTcyIDExQUQ7QzA0MjsxMTA4IDExNzIgMTFBRDsKK0MwNDM7QzA0MzsxMTA4IDExNzIgMTFBRTtDMDQzOzExMDggMTE3MiAxMUFFOworQzA0NDtDMDQ0OzExMDggMTE3MiAxMUFGO0MwNDQ7MTEwOCAxMTcyIDExQUY7CitDMDQ1O0MwNDU7MTEwOCAxMTcyIDExQjA7QzA0NTsxMTA4IDExNzIgMTFCMDsKK0MwNDY7QzA0NjsxMTA4IDExNzIgMTFCMTtDMDQ2OzExMDggMTE3MiAxMUIxOworQzA0NztDMDQ3OzExMDggMTE3MiAxMUIyO0MwNDc7MTEwOCAxMTcyIDExQjI7CitDMDQ4O0MwNDg7MTEwOCAxMTcyIDExQjM7QzA0ODsxMTA4IDExNzIgMTFCMzsKK0MwNDk7QzA0OTsxMTA4IDExNzIgMTFCNDtDMDQ5OzExMDggMTE3MiAxMUI0OworQzA0QTtDMDRBOzExMDggMTE3MiAxMUI1O0MwNEE7MTEwOCAxMTcyIDExQjU7CitDMDRCO0MwNEI7MTEwOCAxMTcyIDExQjY7QzA0QjsxMTA4IDExNzIgMTFCNjsKK0MwNEM7QzA0QzsxMTA4IDExNzIgMTFCNztDMDRDOzExMDggMTE3MiAxMUI3OworQzA0RDtDMDREOzExMDggMTE3MiAxMUI4O0MwNEQ7MTEwOCAxMTcyIDExQjg7CitDMDRFO0MwNEU7MTEwOCAxMTcyIDExQjk7QzA0RTsxMTA4IDExNzIgMTFCOTsKK0MwNEY7QzA0RjsxMTA4IDExNzIgMTFCQTtDMDRGOzExMDggMTE3MiAxMUJBOworQzA1MDtDMDUwOzExMDggMTE3MiAxMUJCO0MwNTA7MTEwOCAxMTcyIDExQkI7CitDMDUxO0MwNTE7MTEwOCAxMTcyIDExQkM7QzA1MTsxMTA4IDExNzIgMTFCQzsKK0MwNTI7QzA1MjsxMTA4IDExNzIgMTFCRDtDMDUyOzExMDggMTE3MiAxMUJEOworQzA1MztDMDUzOzExMDggMTE3MiAxMUJFO0MwNTM7MTEwOCAxMTcyIDExQkU7CitDMDU0O0MwNTQ7MTEwOCAxMTcyIDExQkY7QzA1NDsxMTA4IDExNzIgMTFCRjsKK0MwNTU7QzA1NTsxMTA4IDExNzIgMTFDMDtDMDU1OzExMDggMTE3MiAxMUMwOworQzA1NjtDMDU2OzExMDggMTE3MiAxMUMxO0MwNTY7MTEwOCAxMTcyIDExQzE7CitDMDU3O0MwNTc7MTEwOCAxMTcyIDExQzI7QzA1NzsxMTA4IDExNzIgMTFDMjsKK0MwNTg7QzA1ODsxMTA4IDExNzM7QzA1ODsxMTA4IDExNzM7CitDMDU5O0MwNTk7MTEwOCAxMTczIDExQTg7QzA1OTsxMTA4IDExNzMgMTFBODsKK0MwNUE7QzA1QTsxMTA4IDExNzMgMTFBOTtDMDVBOzExMDggMTE3MyAxMUE5OworQzA1QjtDMDVCOzExMDggMTE3MyAxMUFBO0MwNUI7MTEwOCAxMTczIDExQUE7CitDMDVDO0MwNUM7MTEwOCAxMTczIDExQUI7QzA1QzsxMTA4IDExNzMgMTFBQjsKK0MwNUQ7QzA1RDsxMTA4IDExNzMgMTFBQztDMDVEOzExMDggMTE3MyAxMUFDOworQzA1RTtDMDVFOzExMDggMTE3MyAxMUFEO0MwNUU7MTEwOCAxMTczIDExQUQ7CitDMDVGO0MwNUY7MTEwOCAxMTczIDExQUU7QzA1RjsxMTA4IDExNzMgMTFBRTsKK0MwNjA7QzA2MDsxMTA4IDExNzMgMTFBRjtDMDYwOzExMDggMTE3MyAxMUFGOworQzA2MTtDMDYxOzExMDggMTE3MyAxMUIwO0MwNjE7MTEwOCAxMTczIDExQjA7CitDMDYyO0MwNjI7MTEwOCAxMTczIDExQjE7QzA2MjsxMTA4IDExNzMgMTFCMTsKK0MwNjM7QzA2MzsxMTA4IDExNzMgMTFCMjtDMDYzOzExMDggMTE3MyAxMUIyOworQzA2NDtDMDY0OzExMDggMTE3MyAxMUIzO0MwNjQ7MTEwOCAxMTczIDExQjM7CitDMDY1O0MwNjU7MTEwOCAxMTczIDExQjQ7QzA2NTsxMTA4IDExNzMgMTFCNDsKK0MwNjY7QzA2NjsxMTA4IDExNzMgMTFCNTtDMDY2OzExMDggMTE3MyAxMUI1OworQzA2NztDMDY3OzExMDggMTE3MyAxMUI2O0MwNjc7MTEwOCAxMTczIDExQjY7CitDMDY4O0MwNjg7MTEwOCAxMTczIDExQjc7QzA2ODsxMTA4IDExNzMgMTFCNzsKK0MwNjk7QzA2OTsxMTA4IDExNzMgMTFCODtDMDY5OzExMDggMTE3MyAxMUI4OworQzA2QTtDMDZBOzExMDggMTE3MyAxMUI5O0MwNkE7MTEwOCAxMTczIDExQjk7CitDMDZCO0MwNkI7MTEwOCAxMTczIDExQkE7QzA2QjsxMTA4IDExNzMgMTFCQTsKK0MwNkM7QzA2QzsxMTA4IDExNzMgMTFCQjtDMDZDOzExMDggMTE3MyAxMUJCOworQzA2RDtDMDZEOzExMDggMTE3MyAxMUJDO0MwNkQ7MTEwOCAxMTczIDExQkM7CitDMDZFO0MwNkU7MTEwOCAxMTczIDExQkQ7QzA2RTsxMTA4IDExNzMgMTFCRDsKK0MwNkY7QzA2RjsxMTA4IDExNzMgMTFCRTtDMDZGOzExMDggMTE3MyAxMUJFOworQzA3MDtDMDcwOzExMDggMTE3MyAxMUJGO0MwNzA7MTEwOCAxMTczIDExQkY7CitDMDcxO0MwNzE7MTEwOCAxMTczIDExQzA7QzA3MTsxMTA4IDExNzMgMTFDMDsKK0MwNzI7QzA3MjsxMTA4IDExNzMgMTFDMTtDMDcyOzExMDggMTE3MyAxMUMxOworQzA3MztDMDczOzExMDggMTE3MyAxMUMyO0MwNzM7MTEwOCAxMTczIDExQzI7CitDMDc0O0MwNzQ7MTEwOCAxMTc0O0MwNzQ7MTEwOCAxMTc0OworQzA3NTtDMDc1OzExMDggMTE3NCAxMUE4O0MwNzU7MTEwOCAxMTc0IDExQTg7CitDMDc2O0MwNzY7MTEwOCAxMTc0IDExQTk7QzA3NjsxMTA4IDExNzQgMTFBOTsKK0MwNzc7QzA3NzsxMTA4IDExNzQgMTFBQTtDMDc3OzExMDggMTE3NCAxMUFBOworQzA3ODtDMDc4OzExMDggMTE3NCAxMUFCO0MwNzg7MTEwOCAxMTc0IDExQUI7CitDMDc5O0MwNzk7MTEwOCAxMTc0IDExQUM7QzA3OTsxMTA4IDExNzQgMTFBQzsKK0MwN0E7QzA3QTsxMTA4IDExNzQgMTFBRDtDMDdBOzExMDggMTE3NCAxMUFEOworQzA3QjtDMDdCOzExMDggMTE3NCAxMUFFO0MwN0I7MTEwOCAxMTc0IDExQUU7CitDMDdDO0MwN0M7MTEwOCAxMTc0IDExQUY7QzA3QzsxMTA4IDExNzQgMTFBRjsKK0MwN0Q7QzA3RDsxMTA4IDExNzQgMTFCMDtDMDdEOzExMDggMTE3NCAxMUIwOworQzA3RTtDMDdFOzExMDggMTE3NCAxMUIxO0MwN0U7MTEwOCAxMTc0IDExQjE7CitDMDdGO0MwN0Y7MTEwOCAxMTc0IDExQjI7QzA3RjsxMTA4IDExNzQgMTFCMjsKK0MwODA7QzA4MDsxMTA4IDExNzQgMTFCMztDMDgwOzExMDggMTE3NCAxMUIzOworQzA4MTtDMDgxOzExMDggMTE3NCAxMUI0O0MwODE7MTEwOCAxMTc0IDExQjQ7CitDMDgyO0MwODI7MTEwOCAxMTc0IDExQjU7QzA4MjsxMTA4IDExNzQgMTFCNTsKK0MwODM7QzA4MzsxMTA4IDExNzQgMTFCNjtDMDgzOzExMDggMTE3NCAxMUI2OworQzA4NDtDMDg0OzExMDggMTE3NCAxMUI3O0MwODQ7MTEwOCAxMTc0IDExQjc7CitDMDg1O0MwODU7MTEwOCAxMTc0IDExQjg7QzA4NTsxMTA4IDExNzQgMTFCODsKK0MwODY7QzA4NjsxMTA4IDExNzQgMTFCOTtDMDg2OzExMDggMTE3NCAxMUI5OworQzA4NztDMDg3OzExMDggMTE3NCAxMUJBO0MwODc7MTEwOCAxMTc0IDExQkE7CitDMDg4O0MwODg7MTEwOCAxMTc0IDExQkI7QzA4ODsxMTA4IDExNzQgMTFCQjsKK0MwODk7QzA4OTsxMTA4IDExNzQgMTFCQztDMDg5OzExMDggMTE3NCAxMUJDOworQzA4QTtDMDhBOzExMDggMTE3NCAxMUJEO0MwOEE7MTEwOCAxMTc0IDExQkQ7CitDMDhCO0MwOEI7MTEwOCAxMTc0IDExQkU7QzA4QjsxMTA4IDExNzQgMTFCRTsKK0MwOEM7QzA4QzsxMTA4IDExNzQgMTFCRjtDMDhDOzExMDggMTE3NCAxMUJGOworQzA4RDtDMDhEOzExMDggMTE3NCAxMUMwO0MwOEQ7MTEwOCAxMTc0IDExQzA7CitDMDhFO0MwOEU7MTEwOCAxMTc0IDExQzE7QzA4RTsxMTA4IDExNzQgMTFDMTsKK0MwOEY7QzA4RjsxMTA4IDExNzQgMTFDMjtDMDhGOzExMDggMTE3NCAxMUMyOworQzA5MDtDMDkwOzExMDggMTE3NTtDMDkwOzExMDggMTE3NTsKK0MwOTE7QzA5MTsxMTA4IDExNzUgMTFBODtDMDkxOzExMDggMTE3NSAxMUE4OworQzA5MjtDMDkyOzExMDggMTE3NSAxMUE5O0MwOTI7MTEwOCAxMTc1IDExQTk7CitDMDkzO0MwOTM7MTEwOCAxMTc1IDExQUE7QzA5MzsxMTA4IDExNzUgMTFBQTsKK0MwOTQ7QzA5NDsxMTA4IDExNzUgMTFBQjtDMDk0OzExMDggMTE3NSAxMUFCOworQzA5NTtDMDk1OzExMDggMTE3NSAxMUFDO0MwOTU7MTEwOCAxMTc1IDExQUM7CitDMDk2O0MwOTY7MTEwOCAxMTc1IDExQUQ7QzA5NjsxMTA4IDExNzUgMTFBRDsKK0MwOTc7QzA5NzsxMTA4IDExNzUgMTFBRTtDMDk3OzExMDggMTE3NSAxMUFFOworQzA5ODtDMDk4OzExMDggMTE3NSAxMUFGO0MwOTg7MTEwOCAxMTc1IDExQUY7CitDMDk5O0MwOTk7MTEwOCAxMTc1IDExQjA7QzA5OTsxMTA4IDExNzUgMTFCMDsKK0MwOUE7QzA5QTsxMTA4IDExNzUgMTFCMTtDMDlBOzExMDggMTE3NSAxMUIxOworQzA5QjtDMDlCOzExMDggMTE3NSAxMUIyO0MwOUI7MTEwOCAxMTc1IDExQjI7CitDMDlDO0MwOUM7MTEwOCAxMTc1IDExQjM7QzA5QzsxMTA4IDExNzUgMTFCMzsKK0MwOUQ7QzA5RDsxMTA4IDExNzUgMTFCNDtDMDlEOzExMDggMTE3NSAxMUI0OworQzA5RTtDMDlFOzExMDggMTE3NSAxMUI1O0MwOUU7MTEwOCAxMTc1IDExQjU7CitDMDlGO0MwOUY7MTEwOCAxMTc1IDExQjY7QzA5RjsxMTA4IDExNzUgMTFCNjsKK0MwQTA7QzBBMDsxMTA4IDExNzUgMTFCNztDMEEwOzExMDggMTE3NSAxMUI3OworQzBBMTtDMEExOzExMDggMTE3NSAxMUI4O0MwQTE7MTEwOCAxMTc1IDExQjg7CitDMEEyO0MwQTI7MTEwOCAxMTc1IDExQjk7QzBBMjsxMTA4IDExNzUgMTFCOTsKK0MwQTM7QzBBMzsxMTA4IDExNzUgMTFCQTtDMEEzOzExMDggMTE3NSAxMUJBOworQzBBNDtDMEE0OzExMDggMTE3NSAxMUJCO0MwQTQ7MTEwOCAxMTc1IDExQkI7CitDMEE1O0MwQTU7MTEwOCAxMTc1IDExQkM7QzBBNTsxMTA4IDExNzUgMTFCQzsKK0MwQTY7QzBBNjsxMTA4IDExNzUgMTFCRDtDMEE2OzExMDggMTE3NSAxMUJEOworQzBBNztDMEE3OzExMDggMTE3NSAxMUJFO0MwQTc7MTEwOCAxMTc1IDExQkU7CitDMEE4O0MwQTg7MTEwOCAxMTc1IDExQkY7QzBBODsxMTA4IDExNzUgMTFCRjsKK0MwQTk7QzBBOTsxMTA4IDExNzUgMTFDMDtDMEE5OzExMDggMTE3NSAxMUMwOworQzBBQTtDMEFBOzExMDggMTE3NSAxMUMxO0MwQUE7MTEwOCAxMTc1IDExQzE7CitDMEFCO0MwQUI7MTEwOCAxMTc1IDExQzI7QzBBQjsxMTA4IDExNzUgMTFDMjsKK0MwQUM7QzBBQzsxMTA5IDExNjE7QzBBQzsxMTA5IDExNjE7CitDMEFEO0MwQUQ7MTEwOSAxMTYxIDExQTg7QzBBRDsxMTA5IDExNjEgMTFBODsKK0MwQUU7QzBBRTsxMTA5IDExNjEgMTFBOTtDMEFFOzExMDkgMTE2MSAxMUE5OworQzBBRjtDMEFGOzExMDkgMTE2MSAxMUFBO0MwQUY7MTEwOSAxMTYxIDExQUE7CitDMEIwO0MwQjA7MTEwOSAxMTYxIDExQUI7QzBCMDsxMTA5IDExNjEgMTFBQjsKK0MwQjE7QzBCMTsxMTA5IDExNjEgMTFBQztDMEIxOzExMDkgMTE2MSAxMUFDOworQzBCMjtDMEIyOzExMDkgMTE2MSAxMUFEO0MwQjI7MTEwOSAxMTYxIDExQUQ7CitDMEIzO0MwQjM7MTEwOSAxMTYxIDExQUU7QzBCMzsxMTA5IDExNjEgMTFBRTsKK0MwQjQ7QzBCNDsxMTA5IDExNjEgMTFBRjtDMEI0OzExMDkgMTE2MSAxMUFGOworQzBCNTtDMEI1OzExMDkgMTE2MSAxMUIwO0MwQjU7MTEwOSAxMTYxIDExQjA7CitDMEI2O0MwQjY7MTEwOSAxMTYxIDExQjE7QzBCNjsxMTA5IDExNjEgMTFCMTsKK0MwQjc7QzBCNzsxMTA5IDExNjEgMTFCMjtDMEI3OzExMDkgMTE2MSAxMUIyOworQzBCODtDMEI4OzExMDkgMTE2MSAxMUIzO0MwQjg7MTEwOSAxMTYxIDExQjM7CitDMEI5O0MwQjk7MTEwOSAxMTYxIDExQjQ7QzBCOTsxMTA5IDExNjEgMTFCNDsKK0MwQkE7QzBCQTsxMTA5IDExNjEgMTFCNTtDMEJBOzExMDkgMTE2MSAxMUI1OworQzBCQjtDMEJCOzExMDkgMTE2MSAxMUI2O0MwQkI7MTEwOSAxMTYxIDExQjY7CitDMEJDO0MwQkM7MTEwOSAxMTYxIDExQjc7QzBCQzsxMTA5IDExNjEgMTFCNzsKK0MwQkQ7QzBCRDsxMTA5IDExNjEgMTFCODtDMEJEOzExMDkgMTE2MSAxMUI4OworQzBCRTtDMEJFOzExMDkgMTE2MSAxMUI5O0MwQkU7MTEwOSAxMTYxIDExQjk7CitDMEJGO0MwQkY7MTEwOSAxMTYxIDExQkE7QzBCRjsxMTA5IDExNjEgMTFCQTsKK0MwQzA7QzBDMDsxMTA5IDExNjEgMTFCQjtDMEMwOzExMDkgMTE2MSAxMUJCOworQzBDMTtDMEMxOzExMDkgMTE2MSAxMUJDO0MwQzE7MTEwOSAxMTYxIDExQkM7CitDMEMyO0MwQzI7MTEwOSAxMTYxIDExQkQ7QzBDMjsxMTA5IDExNjEgMTFCRDsKK0MwQzM7QzBDMzsxMTA5IDExNjEgMTFCRTtDMEMzOzExMDkgMTE2MSAxMUJFOworQzBDNDtDMEM0OzExMDkgMTE2MSAxMUJGO0MwQzQ7MTEwOSAxMTYxIDExQkY7CitDMEM1O0MwQzU7MTEwOSAxMTYxIDExQzA7QzBDNTsxMTA5IDExNjEgMTFDMDsKK0MwQzY7QzBDNjsxMTA5IDExNjEgMTFDMTtDMEM2OzExMDkgMTE2MSAxMUMxOworQzBDNztDMEM3OzExMDkgMTE2MSAxMUMyO0MwQzc7MTEwOSAxMTYxIDExQzI7CitDMEM4O0MwQzg7MTEwOSAxMTYyO0MwQzg7MTEwOSAxMTYyOworQzBDOTtDMEM5OzExMDkgMTE2MiAxMUE4O0MwQzk7MTEwOSAxMTYyIDExQTg7CitDMENBO0MwQ0E7MTEwOSAxMTYyIDExQTk7QzBDQTsxMTA5IDExNjIgMTFBOTsKK0MwQ0I7QzBDQjsxMTA5IDExNjIgMTFBQTtDMENCOzExMDkgMTE2MiAxMUFBOworQzBDQztDMENDOzExMDkgMTE2MiAxMUFCO0MwQ0M7MTEwOSAxMTYyIDExQUI7CitDMENEO0MwQ0Q7MTEwOSAxMTYyIDExQUM7QzBDRDsxMTA5IDExNjIgMTFBQzsKK0MwQ0U7QzBDRTsxMTA5IDExNjIgMTFBRDtDMENFOzExMDkgMTE2MiAxMUFEOworQzBDRjtDMENGOzExMDkgMTE2MiAxMUFFO0MwQ0Y7MTEwOSAxMTYyIDExQUU7CitDMEQwO0MwRDA7MTEwOSAxMTYyIDExQUY7QzBEMDsxMTA5IDExNjIgMTFBRjsKK0MwRDE7QzBEMTsxMTA5IDExNjIgMTFCMDtDMEQxOzExMDkgMTE2MiAxMUIwOworQzBEMjtDMEQyOzExMDkgMTE2MiAxMUIxO0MwRDI7MTEwOSAxMTYyIDExQjE7CitDMEQzO0MwRDM7MTEwOSAxMTYyIDExQjI7QzBEMzsxMTA5IDExNjIgMTFCMjsKK0MwRDQ7QzBENDsxMTA5IDExNjIgMTFCMztDMEQ0OzExMDkgMTE2MiAxMUIzOworQzBENTtDMEQ1OzExMDkgMTE2MiAxMUI0O0MwRDU7MTEwOSAxMTYyIDExQjQ7CitDMEQ2O0MwRDY7MTEwOSAxMTYyIDExQjU7QzBENjsxMTA5IDExNjIgMTFCNTsKK0MwRDc7QzBENzsxMTA5IDExNjIgMTFCNjtDMEQ3OzExMDkgMTE2MiAxMUI2OworQzBEODtDMEQ4OzExMDkgMTE2MiAxMUI3O0MwRDg7MTEwOSAxMTYyIDExQjc7CitDMEQ5O0MwRDk7MTEwOSAxMTYyIDExQjg7QzBEOTsxMTA5IDExNjIgMTFCODsKK0MwREE7QzBEQTsxMTA5IDExNjIgMTFCOTtDMERBOzExMDkgMTE2MiAxMUI5OworQzBEQjtDMERCOzExMDkgMTE2MiAxMUJBO0MwREI7MTEwOSAxMTYyIDExQkE7CitDMERDO0MwREM7MTEwOSAxMTYyIDExQkI7QzBEQzsxMTA5IDExNjIgMTFCQjsKK0MwREQ7QzBERDsxMTA5IDExNjIgMTFCQztDMEREOzExMDkgMTE2MiAxMUJDOworQzBERTtDMERFOzExMDkgMTE2MiAxMUJEO0MwREU7MTEwOSAxMTYyIDExQkQ7CitDMERGO0MwREY7MTEwOSAxMTYyIDExQkU7QzBERjsxMTA5IDExNjIgMTFCRTsKK0MwRTA7QzBFMDsxMTA5IDExNjIgMTFCRjtDMEUwOzExMDkgMTE2MiAxMUJGOworQzBFMTtDMEUxOzExMDkgMTE2MiAxMUMwO0MwRTE7MTEwOSAxMTYyIDExQzA7CitDMEUyO0MwRTI7MTEwOSAxMTYyIDExQzE7QzBFMjsxMTA5IDExNjIgMTFDMTsKK0MwRTM7QzBFMzsxMTA5IDExNjIgMTFDMjtDMEUzOzExMDkgMTE2MiAxMUMyOworQzBFNDtDMEU0OzExMDkgMTE2MztDMEU0OzExMDkgMTE2MzsKK0MwRTU7QzBFNTsxMTA5IDExNjMgMTFBODtDMEU1OzExMDkgMTE2MyAxMUE4OworQzBFNjtDMEU2OzExMDkgMTE2MyAxMUE5O0MwRTY7MTEwOSAxMTYzIDExQTk7CitDMEU3O0MwRTc7MTEwOSAxMTYzIDExQUE7QzBFNzsxMTA5IDExNjMgMTFBQTsKK0MwRTg7QzBFODsxMTA5IDExNjMgMTFBQjtDMEU4OzExMDkgMTE2MyAxMUFCOworQzBFOTtDMEU5OzExMDkgMTE2MyAxMUFDO0MwRTk7MTEwOSAxMTYzIDExQUM7CitDMEVBO0MwRUE7MTEwOSAxMTYzIDExQUQ7QzBFQTsxMTA5IDExNjMgMTFBRDsKK0MwRUI7QzBFQjsxMTA5IDExNjMgMTFBRTtDMEVCOzExMDkgMTE2MyAxMUFFOworQzBFQztDMEVDOzExMDkgMTE2MyAxMUFGO0MwRUM7MTEwOSAxMTYzIDExQUY7CitDMEVEO0MwRUQ7MTEwOSAxMTYzIDExQjA7QzBFRDsxMTA5IDExNjMgMTFCMDsKK0MwRUU7QzBFRTsxMTA5IDExNjMgMTFCMTtDMEVFOzExMDkgMTE2MyAxMUIxOworQzBFRjtDMEVGOzExMDkgMTE2MyAxMUIyO0MwRUY7MTEwOSAxMTYzIDExQjI7CitDMEYwO0MwRjA7MTEwOSAxMTYzIDExQjM7QzBGMDsxMTA5IDExNjMgMTFCMzsKK0MwRjE7QzBGMTsxMTA5IDExNjMgMTFCNDtDMEYxOzExMDkgMTE2MyAxMUI0OworQzBGMjtDMEYyOzExMDkgMTE2MyAxMUI1O0MwRjI7MTEwOSAxMTYzIDExQjU7CitDMEYzO0MwRjM7MTEwOSAxMTYzIDExQjY7QzBGMzsxMTA5IDExNjMgMTFCNjsKK0MwRjQ7QzBGNDsxMTA5IDExNjMgMTFCNztDMEY0OzExMDkgMTE2MyAxMUI3OworQzBGNTtDMEY1OzExMDkgMTE2MyAxMUI4O0MwRjU7MTEwOSAxMTYzIDExQjg7CitDMEY2O0MwRjY7MTEwOSAxMTYzIDExQjk7QzBGNjsxMTA5IDExNjMgMTFCOTsKK0MwRjc7QzBGNzsxMTA5IDExNjMgMTFCQTtDMEY3OzExMDkgMTE2MyAxMUJBOworQzBGODtDMEY4OzExMDkgMTE2MyAxMUJCO0MwRjg7MTEwOSAxMTYzIDExQkI7CitDMEY5O0MwRjk7MTEwOSAxMTYzIDExQkM7QzBGOTsxMTA5IDExNjMgMTFCQzsKK0MwRkE7QzBGQTsxMTA5IDExNjMgMTFCRDtDMEZBOzExMDkgMTE2MyAxMUJEOworQzBGQjtDMEZCOzExMDkgMTE2MyAxMUJFO0MwRkI7MTEwOSAxMTYzIDExQkU7CitDMEZDO0MwRkM7MTEwOSAxMTYzIDExQkY7QzBGQzsxMTA5IDExNjMgMTFCRjsKK0MwRkQ7QzBGRDsxMTA5IDExNjMgMTFDMDtDMEZEOzExMDkgMTE2MyAxMUMwOworQzBGRTtDMEZFOzExMDkgMTE2MyAxMUMxO0MwRkU7MTEwOSAxMTYzIDExQzE7CitDMEZGO0MwRkY7MTEwOSAxMTYzIDExQzI7QzBGRjsxMTA5IDExNjMgMTFDMjsKK0MxMDA7QzEwMDsxMTA5IDExNjQ7QzEwMDsxMTA5IDExNjQ7CitDMTAxO0MxMDE7MTEwOSAxMTY0IDExQTg7QzEwMTsxMTA5IDExNjQgMTFBODsKK0MxMDI7QzEwMjsxMTA5IDExNjQgMTFBOTtDMTAyOzExMDkgMTE2NCAxMUE5OworQzEwMztDMTAzOzExMDkgMTE2NCAxMUFBO0MxMDM7MTEwOSAxMTY0IDExQUE7CitDMTA0O0MxMDQ7MTEwOSAxMTY0IDExQUI7QzEwNDsxMTA5IDExNjQgMTFBQjsKK0MxMDU7QzEwNTsxMTA5IDExNjQgMTFBQztDMTA1OzExMDkgMTE2NCAxMUFDOworQzEwNjtDMTA2OzExMDkgMTE2NCAxMUFEO0MxMDY7MTEwOSAxMTY0IDExQUQ7CitDMTA3O0MxMDc7MTEwOSAxMTY0IDExQUU7QzEwNzsxMTA5IDExNjQgMTFBRTsKK0MxMDg7QzEwODsxMTA5IDExNjQgMTFBRjtDMTA4OzExMDkgMTE2NCAxMUFGOworQzEwOTtDMTA5OzExMDkgMTE2NCAxMUIwO0MxMDk7MTEwOSAxMTY0IDExQjA7CitDMTBBO0MxMEE7MTEwOSAxMTY0IDExQjE7QzEwQTsxMTA5IDExNjQgMTFCMTsKK0MxMEI7QzEwQjsxMTA5IDExNjQgMTFCMjtDMTBCOzExMDkgMTE2NCAxMUIyOworQzEwQztDMTBDOzExMDkgMTE2NCAxMUIzO0MxMEM7MTEwOSAxMTY0IDExQjM7CitDMTBEO0MxMEQ7MTEwOSAxMTY0IDExQjQ7QzEwRDsxMTA5IDExNjQgMTFCNDsKK0MxMEU7QzEwRTsxMTA5IDExNjQgMTFCNTtDMTBFOzExMDkgMTE2NCAxMUI1OworQzEwRjtDMTBGOzExMDkgMTE2NCAxMUI2O0MxMEY7MTEwOSAxMTY0IDExQjY7CitDMTEwO0MxMTA7MTEwOSAxMTY0IDExQjc7QzExMDsxMTA5IDExNjQgMTFCNzsKK0MxMTE7QzExMTsxMTA5IDExNjQgMTFCODtDMTExOzExMDkgMTE2NCAxMUI4OworQzExMjtDMTEyOzExMDkgMTE2NCAxMUI5O0MxMTI7MTEwOSAxMTY0IDExQjk7CitDMTEzO0MxMTM7MTEwOSAxMTY0IDExQkE7QzExMzsxMTA5IDExNjQgMTFCQTsKK0MxMTQ7QzExNDsxMTA5IDExNjQgMTFCQjtDMTE0OzExMDkgMTE2NCAxMUJCOworQzExNTtDMTE1OzExMDkgMTE2NCAxMUJDO0MxMTU7MTEwOSAxMTY0IDExQkM7CitDMTE2O0MxMTY7MTEwOSAxMTY0IDExQkQ7QzExNjsxMTA5IDExNjQgMTFCRDsKK0MxMTc7QzExNzsxMTA5IDExNjQgMTFCRTtDMTE3OzExMDkgMTE2NCAxMUJFOworQzExODtDMTE4OzExMDkgMTE2NCAxMUJGO0MxMTg7MTEwOSAxMTY0IDExQkY7CitDMTE5O0MxMTk7MTEwOSAxMTY0IDExQzA7QzExOTsxMTA5IDExNjQgMTFDMDsKK0MxMUE7QzExQTsxMTA5IDExNjQgMTFDMTtDMTFBOzExMDkgMTE2NCAxMUMxOworQzExQjtDMTFCOzExMDkgMTE2NCAxMUMyO0MxMUI7MTEwOSAxMTY0IDExQzI7CitDMTFDO0MxMUM7MTEwOSAxMTY1O0MxMUM7MTEwOSAxMTY1OworQzExRDtDMTFEOzExMDkgMTE2NSAxMUE4O0MxMUQ7MTEwOSAxMTY1IDExQTg7CitDMTFFO0MxMUU7MTEwOSAxMTY1IDExQTk7QzExRTsxMTA5IDExNjUgMTFBOTsKK0MxMUY7QzExRjsxMTA5IDExNjUgMTFBQTtDMTFGOzExMDkgMTE2NSAxMUFBOworQzEyMDtDMTIwOzExMDkgMTE2NSAxMUFCO0MxMjA7MTEwOSAxMTY1IDExQUI7CitDMTIxO0MxMjE7MTEwOSAxMTY1IDExQUM7QzEyMTsxMTA5IDExNjUgMTFBQzsKK0MxMjI7QzEyMjsxMTA5IDExNjUgMTFBRDtDMTIyOzExMDkgMTE2NSAxMUFEOworQzEyMztDMTIzOzExMDkgMTE2NSAxMUFFO0MxMjM7MTEwOSAxMTY1IDExQUU7CitDMTI0O0MxMjQ7MTEwOSAxMTY1IDExQUY7QzEyNDsxMTA5IDExNjUgMTFBRjsKK0MxMjU7QzEyNTsxMTA5IDExNjUgMTFCMDtDMTI1OzExMDkgMTE2NSAxMUIwOworQzEyNjtDMTI2OzExMDkgMTE2NSAxMUIxO0MxMjY7MTEwOSAxMTY1IDExQjE7CitDMTI3O0MxMjc7MTEwOSAxMTY1IDExQjI7QzEyNzsxMTA5IDExNjUgMTFCMjsKK0MxMjg7QzEyODsxMTA5IDExNjUgMTFCMztDMTI4OzExMDkgMTE2NSAxMUIzOworQzEyOTtDMTI5OzExMDkgMTE2NSAxMUI0O0MxMjk7MTEwOSAxMTY1IDExQjQ7CitDMTJBO0MxMkE7MTEwOSAxMTY1IDExQjU7QzEyQTsxMTA5IDExNjUgMTFCNTsKK0MxMkI7QzEyQjsxMTA5IDExNjUgMTFCNjtDMTJCOzExMDkgMTE2NSAxMUI2OworQzEyQztDMTJDOzExMDkgMTE2NSAxMUI3O0MxMkM7MTEwOSAxMTY1IDExQjc7CitDMTJEO0MxMkQ7MTEwOSAxMTY1IDExQjg7QzEyRDsxMTA5IDExNjUgMTFCODsKK0MxMkU7QzEyRTsxMTA5IDExNjUgMTFCOTtDMTJFOzExMDkgMTE2NSAxMUI5OworQzEyRjtDMTJGOzExMDkgMTE2NSAxMUJBO0MxMkY7MTEwOSAxMTY1IDExQkE7CitDMTMwO0MxMzA7MTEwOSAxMTY1IDExQkI7QzEzMDsxMTA5IDExNjUgMTFCQjsKK0MxMzE7QzEzMTsxMTA5IDExNjUgMTFCQztDMTMxOzExMDkgMTE2NSAxMUJDOworQzEzMjtDMTMyOzExMDkgMTE2NSAxMUJEO0MxMzI7MTEwOSAxMTY1IDExQkQ7CitDMTMzO0MxMzM7MTEwOSAxMTY1IDExQkU7QzEzMzsxMTA5IDExNjUgMTFCRTsKK0MxMzQ7QzEzNDsxMTA5IDExNjUgMTFCRjtDMTM0OzExMDkgMTE2NSAxMUJGOworQzEzNTtDMTM1OzExMDkgMTE2NSAxMUMwO0MxMzU7MTEwOSAxMTY1IDExQzA7CitDMTM2O0MxMzY7MTEwOSAxMTY1IDExQzE7QzEzNjsxMTA5IDExNjUgMTFDMTsKK0MxMzc7QzEzNzsxMTA5IDExNjUgMTFDMjtDMTM3OzExMDkgMTE2NSAxMUMyOworQzEzODtDMTM4OzExMDkgMTE2NjtDMTM4OzExMDkgMTE2NjsKK0MxMzk7QzEzOTsxMTA5IDExNjYgMTFBODtDMTM5OzExMDkgMTE2NiAxMUE4OworQzEzQTtDMTNBOzExMDkgMTE2NiAxMUE5O0MxM0E7MTEwOSAxMTY2IDExQTk7CitDMTNCO0MxM0I7MTEwOSAxMTY2IDExQUE7QzEzQjsxMTA5IDExNjYgMTFBQTsKK0MxM0M7QzEzQzsxMTA5IDExNjYgMTFBQjtDMTNDOzExMDkgMTE2NiAxMUFCOworQzEzRDtDMTNEOzExMDkgMTE2NiAxMUFDO0MxM0Q7MTEwOSAxMTY2IDExQUM7CitDMTNFO0MxM0U7MTEwOSAxMTY2IDExQUQ7QzEzRTsxMTA5IDExNjYgMTFBRDsKK0MxM0Y7QzEzRjsxMTA5IDExNjYgMTFBRTtDMTNGOzExMDkgMTE2NiAxMUFFOworQzE0MDtDMTQwOzExMDkgMTE2NiAxMUFGO0MxNDA7MTEwOSAxMTY2IDExQUY7CitDMTQxO0MxNDE7MTEwOSAxMTY2IDExQjA7QzE0MTsxMTA5IDExNjYgMTFCMDsKK0MxNDI7QzE0MjsxMTA5IDExNjYgMTFCMTtDMTQyOzExMDkgMTE2NiAxMUIxOworQzE0MztDMTQzOzExMDkgMTE2NiAxMUIyO0MxNDM7MTEwOSAxMTY2IDExQjI7CitDMTQ0O0MxNDQ7MTEwOSAxMTY2IDExQjM7QzE0NDsxMTA5IDExNjYgMTFCMzsKK0MxNDU7QzE0NTsxMTA5IDExNjYgMTFCNDtDMTQ1OzExMDkgMTE2NiAxMUI0OworQzE0NjtDMTQ2OzExMDkgMTE2NiAxMUI1O0MxNDY7MTEwOSAxMTY2IDExQjU7CitDMTQ3O0MxNDc7MTEwOSAxMTY2IDExQjY7QzE0NzsxMTA5IDExNjYgMTFCNjsKK0MxNDg7QzE0ODsxMTA5IDExNjYgMTFCNztDMTQ4OzExMDkgMTE2NiAxMUI3OworQzE0OTtDMTQ5OzExMDkgMTE2NiAxMUI4O0MxNDk7MTEwOSAxMTY2IDExQjg7CitDMTRBO0MxNEE7MTEwOSAxMTY2IDExQjk7QzE0QTsxMTA5IDExNjYgMTFCOTsKK0MxNEI7QzE0QjsxMTA5IDExNjYgMTFCQTtDMTRCOzExMDkgMTE2NiAxMUJBOworQzE0QztDMTRDOzExMDkgMTE2NiAxMUJCO0MxNEM7MTEwOSAxMTY2IDExQkI7CitDMTREO0MxNEQ7MTEwOSAxMTY2IDExQkM7QzE0RDsxMTA5IDExNjYgMTFCQzsKK0MxNEU7QzE0RTsxMTA5IDExNjYgMTFCRDtDMTRFOzExMDkgMTE2NiAxMUJEOworQzE0RjtDMTRGOzExMDkgMTE2NiAxMUJFO0MxNEY7MTEwOSAxMTY2IDExQkU7CitDMTUwO0MxNTA7MTEwOSAxMTY2IDExQkY7QzE1MDsxMTA5IDExNjYgMTFCRjsKK0MxNTE7QzE1MTsxMTA5IDExNjYgMTFDMDtDMTUxOzExMDkgMTE2NiAxMUMwOworQzE1MjtDMTUyOzExMDkgMTE2NiAxMUMxO0MxNTI7MTEwOSAxMTY2IDExQzE7CitDMTUzO0MxNTM7MTEwOSAxMTY2IDExQzI7QzE1MzsxMTA5IDExNjYgMTFDMjsKK0MxNTQ7QzE1NDsxMTA5IDExNjc7QzE1NDsxMTA5IDExNjc7CitDMTU1O0MxNTU7MTEwOSAxMTY3IDExQTg7QzE1NTsxMTA5IDExNjcgMTFBODsKK0MxNTY7QzE1NjsxMTA5IDExNjcgMTFBOTtDMTU2OzExMDkgMTE2NyAxMUE5OworQzE1NztDMTU3OzExMDkgMTE2NyAxMUFBO0MxNTc7MTEwOSAxMTY3IDExQUE7CitDMTU4O0MxNTg7MTEwOSAxMTY3IDExQUI7QzE1ODsxMTA5IDExNjcgMTFBQjsKK0MxNTk7QzE1OTsxMTA5IDExNjcgMTFBQztDMTU5OzExMDkgMTE2NyAxMUFDOworQzE1QTtDMTVBOzExMDkgMTE2NyAxMUFEO0MxNUE7MTEwOSAxMTY3IDExQUQ7CitDMTVCO0MxNUI7MTEwOSAxMTY3IDExQUU7QzE1QjsxMTA5IDExNjcgMTFBRTsKK0MxNUM7QzE1QzsxMTA5IDExNjcgMTFBRjtDMTVDOzExMDkgMTE2NyAxMUFGOworQzE1RDtDMTVEOzExMDkgMTE2NyAxMUIwO0MxNUQ7MTEwOSAxMTY3IDExQjA7CitDMTVFO0MxNUU7MTEwOSAxMTY3IDExQjE7QzE1RTsxMTA5IDExNjcgMTFCMTsKK0MxNUY7QzE1RjsxMTA5IDExNjcgMTFCMjtDMTVGOzExMDkgMTE2NyAxMUIyOworQzE2MDtDMTYwOzExMDkgMTE2NyAxMUIzO0MxNjA7MTEwOSAxMTY3IDExQjM7CitDMTYxO0MxNjE7MTEwOSAxMTY3IDExQjQ7QzE2MTsxMTA5IDExNjcgMTFCNDsKK0MxNjI7QzE2MjsxMTA5IDExNjcgMTFCNTtDMTYyOzExMDkgMTE2NyAxMUI1OworQzE2MztDMTYzOzExMDkgMTE2NyAxMUI2O0MxNjM7MTEwOSAxMTY3IDExQjY7CitDMTY0O0MxNjQ7MTEwOSAxMTY3IDExQjc7QzE2NDsxMTA5IDExNjcgMTFCNzsKK0MxNjU7QzE2NTsxMTA5IDExNjcgMTFCODtDMTY1OzExMDkgMTE2NyAxMUI4OworQzE2NjtDMTY2OzExMDkgMTE2NyAxMUI5O0MxNjY7MTEwOSAxMTY3IDExQjk7CitDMTY3O0MxNjc7MTEwOSAxMTY3IDExQkE7QzE2NzsxMTA5IDExNjcgMTFCQTsKK0MxNjg7QzE2ODsxMTA5IDExNjcgMTFCQjtDMTY4OzExMDkgMTE2NyAxMUJCOworQzE2OTtDMTY5OzExMDkgMTE2NyAxMUJDO0MxNjk7MTEwOSAxMTY3IDExQkM7CitDMTZBO0MxNkE7MTEwOSAxMTY3IDExQkQ7QzE2QTsxMTA5IDExNjcgMTFCRDsKK0MxNkI7QzE2QjsxMTA5IDExNjcgMTFCRTtDMTZCOzExMDkgMTE2NyAxMUJFOworQzE2QztDMTZDOzExMDkgMTE2NyAxMUJGO0MxNkM7MTEwOSAxMTY3IDExQkY7CitDMTZEO0MxNkQ7MTEwOSAxMTY3IDExQzA7QzE2RDsxMTA5IDExNjcgMTFDMDsKK0MxNkU7QzE2RTsxMTA5IDExNjcgMTFDMTtDMTZFOzExMDkgMTE2NyAxMUMxOworQzE2RjtDMTZGOzExMDkgMTE2NyAxMUMyO0MxNkY7MTEwOSAxMTY3IDExQzI7CitDMTcwO0MxNzA7MTEwOSAxMTY4O0MxNzA7MTEwOSAxMTY4OworQzE3MTtDMTcxOzExMDkgMTE2OCAxMUE4O0MxNzE7MTEwOSAxMTY4IDExQTg7CitDMTcyO0MxNzI7MTEwOSAxMTY4IDExQTk7QzE3MjsxMTA5IDExNjggMTFBOTsKK0MxNzM7QzE3MzsxMTA5IDExNjggMTFBQTtDMTczOzExMDkgMTE2OCAxMUFBOworQzE3NDtDMTc0OzExMDkgMTE2OCAxMUFCO0MxNzQ7MTEwOSAxMTY4IDExQUI7CitDMTc1O0MxNzU7MTEwOSAxMTY4IDExQUM7QzE3NTsxMTA5IDExNjggMTFBQzsKK0MxNzY7QzE3NjsxMTA5IDExNjggMTFBRDtDMTc2OzExMDkgMTE2OCAxMUFEOworQzE3NztDMTc3OzExMDkgMTE2OCAxMUFFO0MxNzc7MTEwOSAxMTY4IDExQUU7CitDMTc4O0MxNzg7MTEwOSAxMTY4IDExQUY7QzE3ODsxMTA5IDExNjggMTFBRjsKK0MxNzk7QzE3OTsxMTA5IDExNjggMTFCMDtDMTc5OzExMDkgMTE2OCAxMUIwOworQzE3QTtDMTdBOzExMDkgMTE2OCAxMUIxO0MxN0E7MTEwOSAxMTY4IDExQjE7CitDMTdCO0MxN0I7MTEwOSAxMTY4IDExQjI7QzE3QjsxMTA5IDExNjggMTFCMjsKK0MxN0M7QzE3QzsxMTA5IDExNjggMTFCMztDMTdDOzExMDkgMTE2OCAxMUIzOworQzE3RDtDMTdEOzExMDkgMTE2OCAxMUI0O0MxN0Q7MTEwOSAxMTY4IDExQjQ7CitDMTdFO0MxN0U7MTEwOSAxMTY4IDExQjU7QzE3RTsxMTA5IDExNjggMTFCNTsKK0MxN0Y7QzE3RjsxMTA5IDExNjggMTFCNjtDMTdGOzExMDkgMTE2OCAxMUI2OworQzE4MDtDMTgwOzExMDkgMTE2OCAxMUI3O0MxODA7MTEwOSAxMTY4IDExQjc7CitDMTgxO0MxODE7MTEwOSAxMTY4IDExQjg7QzE4MTsxMTA5IDExNjggMTFCODsKK0MxODI7QzE4MjsxMTA5IDExNjggMTFCOTtDMTgyOzExMDkgMTE2OCAxMUI5OworQzE4MztDMTgzOzExMDkgMTE2OCAxMUJBO0MxODM7MTEwOSAxMTY4IDExQkE7CitDMTg0O0MxODQ7MTEwOSAxMTY4IDExQkI7QzE4NDsxMTA5IDExNjggMTFCQjsKK0MxODU7QzE4NTsxMTA5IDExNjggMTFCQztDMTg1OzExMDkgMTE2OCAxMUJDOworQzE4NjtDMTg2OzExMDkgMTE2OCAxMUJEO0MxODY7MTEwOSAxMTY4IDExQkQ7CitDMTg3O0MxODc7MTEwOSAxMTY4IDExQkU7QzE4NzsxMTA5IDExNjggMTFCRTsKK0MxODg7QzE4ODsxMTA5IDExNjggMTFCRjtDMTg4OzExMDkgMTE2OCAxMUJGOworQzE4OTtDMTg5OzExMDkgMTE2OCAxMUMwO0MxODk7MTEwOSAxMTY4IDExQzA7CitDMThBO0MxOEE7MTEwOSAxMTY4IDExQzE7QzE4QTsxMTA5IDExNjggMTFDMTsKK0MxOEI7QzE4QjsxMTA5IDExNjggMTFDMjtDMThCOzExMDkgMTE2OCAxMUMyOworQzE4QztDMThDOzExMDkgMTE2OTtDMThDOzExMDkgMTE2OTsKK0MxOEQ7QzE4RDsxMTA5IDExNjkgMTFBODtDMThEOzExMDkgMTE2OSAxMUE4OworQzE4RTtDMThFOzExMDkgMTE2OSAxMUE5O0MxOEU7MTEwOSAxMTY5IDExQTk7CitDMThGO0MxOEY7MTEwOSAxMTY5IDExQUE7QzE4RjsxMTA5IDExNjkgMTFBQTsKK0MxOTA7QzE5MDsxMTA5IDExNjkgMTFBQjtDMTkwOzExMDkgMTE2OSAxMUFCOworQzE5MTtDMTkxOzExMDkgMTE2OSAxMUFDO0MxOTE7MTEwOSAxMTY5IDExQUM7CitDMTkyO0MxOTI7MTEwOSAxMTY5IDExQUQ7QzE5MjsxMTA5IDExNjkgMTFBRDsKK0MxOTM7QzE5MzsxMTA5IDExNjkgMTFBRTtDMTkzOzExMDkgMTE2OSAxMUFFOworQzE5NDtDMTk0OzExMDkgMTE2OSAxMUFGO0MxOTQ7MTEwOSAxMTY5IDExQUY7CitDMTk1O0MxOTU7MTEwOSAxMTY5IDExQjA7QzE5NTsxMTA5IDExNjkgMTFCMDsKK0MxOTY7QzE5NjsxMTA5IDExNjkgMTFCMTtDMTk2OzExMDkgMTE2OSAxMUIxOworQzE5NztDMTk3OzExMDkgMTE2OSAxMUIyO0MxOTc7MTEwOSAxMTY5IDExQjI7CitDMTk4O0MxOTg7MTEwOSAxMTY5IDExQjM7QzE5ODsxMTA5IDExNjkgMTFCMzsKK0MxOTk7QzE5OTsxMTA5IDExNjkgMTFCNDtDMTk5OzExMDkgMTE2OSAxMUI0OworQzE5QTtDMTlBOzExMDkgMTE2OSAxMUI1O0MxOUE7MTEwOSAxMTY5IDExQjU7CitDMTlCO0MxOUI7MTEwOSAxMTY5IDExQjY7QzE5QjsxMTA5IDExNjkgMTFCNjsKK0MxOUM7QzE5QzsxMTA5IDExNjkgMTFCNztDMTlDOzExMDkgMTE2OSAxMUI3OworQzE5RDtDMTlEOzExMDkgMTE2OSAxMUI4O0MxOUQ7MTEwOSAxMTY5IDExQjg7CitDMTlFO0MxOUU7MTEwOSAxMTY5IDExQjk7QzE5RTsxMTA5IDExNjkgMTFCOTsKK0MxOUY7QzE5RjsxMTA5IDExNjkgMTFCQTtDMTlGOzExMDkgMTE2OSAxMUJBOworQzFBMDtDMUEwOzExMDkgMTE2OSAxMUJCO0MxQTA7MTEwOSAxMTY5IDExQkI7CitDMUExO0MxQTE7MTEwOSAxMTY5IDExQkM7QzFBMTsxMTA5IDExNjkgMTFCQzsKK0MxQTI7QzFBMjsxMTA5IDExNjkgMTFCRDtDMUEyOzExMDkgMTE2OSAxMUJEOworQzFBMztDMUEzOzExMDkgMTE2OSAxMUJFO0MxQTM7MTEwOSAxMTY5IDExQkU7CitDMUE0O0MxQTQ7MTEwOSAxMTY5IDExQkY7QzFBNDsxMTA5IDExNjkgMTFCRjsKK0MxQTU7QzFBNTsxMTA5IDExNjkgMTFDMDtDMUE1OzExMDkgMTE2OSAxMUMwOworQzFBNjtDMUE2OzExMDkgMTE2OSAxMUMxO0MxQTY7MTEwOSAxMTY5IDExQzE7CitDMUE3O0MxQTc7MTEwOSAxMTY5IDExQzI7QzFBNzsxMTA5IDExNjkgMTFDMjsKK0MxQTg7QzFBODsxMTA5IDExNkE7QzFBODsxMTA5IDExNkE7CitDMUE5O0MxQTk7MTEwOSAxMTZBIDExQTg7QzFBOTsxMTA5IDExNkEgMTFBODsKK0MxQUE7QzFBQTsxMTA5IDExNkEgMTFBOTtDMUFBOzExMDkgMTE2QSAxMUE5OworQzFBQjtDMUFCOzExMDkgMTE2QSAxMUFBO0MxQUI7MTEwOSAxMTZBIDExQUE7CitDMUFDO0MxQUM7MTEwOSAxMTZBIDExQUI7QzFBQzsxMTA5IDExNkEgMTFBQjsKK0MxQUQ7QzFBRDsxMTA5IDExNkEgMTFBQztDMUFEOzExMDkgMTE2QSAxMUFDOworQzFBRTtDMUFFOzExMDkgMTE2QSAxMUFEO0MxQUU7MTEwOSAxMTZBIDExQUQ7CitDMUFGO0MxQUY7MTEwOSAxMTZBIDExQUU7QzFBRjsxMTA5IDExNkEgMTFBRTsKK0MxQjA7QzFCMDsxMTA5IDExNkEgMTFBRjtDMUIwOzExMDkgMTE2QSAxMUFGOworQzFCMTtDMUIxOzExMDkgMTE2QSAxMUIwO0MxQjE7MTEwOSAxMTZBIDExQjA7CitDMUIyO0MxQjI7MTEwOSAxMTZBIDExQjE7QzFCMjsxMTA5IDExNkEgMTFCMTsKK0MxQjM7QzFCMzsxMTA5IDExNkEgMTFCMjtDMUIzOzExMDkgMTE2QSAxMUIyOworQzFCNDtDMUI0OzExMDkgMTE2QSAxMUIzO0MxQjQ7MTEwOSAxMTZBIDExQjM7CitDMUI1O0MxQjU7MTEwOSAxMTZBIDExQjQ7QzFCNTsxMTA5IDExNkEgMTFCNDsKK0MxQjY7QzFCNjsxMTA5IDExNkEgMTFCNTtDMUI2OzExMDkgMTE2QSAxMUI1OworQzFCNztDMUI3OzExMDkgMTE2QSAxMUI2O0MxQjc7MTEwOSAxMTZBIDExQjY7CitDMUI4O0MxQjg7MTEwOSAxMTZBIDExQjc7QzFCODsxMTA5IDExNkEgMTFCNzsKK0MxQjk7QzFCOTsxMTA5IDExNkEgMTFCODtDMUI5OzExMDkgMTE2QSAxMUI4OworQzFCQTtDMUJBOzExMDkgMTE2QSAxMUI5O0MxQkE7MTEwOSAxMTZBIDExQjk7CitDMUJCO0MxQkI7MTEwOSAxMTZBIDExQkE7QzFCQjsxMTA5IDExNkEgMTFCQTsKK0MxQkM7QzFCQzsxMTA5IDExNkEgMTFCQjtDMUJDOzExMDkgMTE2QSAxMUJCOworQzFCRDtDMUJEOzExMDkgMTE2QSAxMUJDO0MxQkQ7MTEwOSAxMTZBIDExQkM7CitDMUJFO0MxQkU7MTEwOSAxMTZBIDExQkQ7QzFCRTsxMTA5IDExNkEgMTFCRDsKK0MxQkY7QzFCRjsxMTA5IDExNkEgMTFCRTtDMUJGOzExMDkgMTE2QSAxMUJFOworQzFDMDtDMUMwOzExMDkgMTE2QSAxMUJGO0MxQzA7MTEwOSAxMTZBIDExQkY7CitDMUMxO0MxQzE7MTEwOSAxMTZBIDExQzA7QzFDMTsxMTA5IDExNkEgMTFDMDsKK0MxQzI7QzFDMjsxMTA5IDExNkEgMTFDMTtDMUMyOzExMDkgMTE2QSAxMUMxOworQzFDMztDMUMzOzExMDkgMTE2QSAxMUMyO0MxQzM7MTEwOSAxMTZBIDExQzI7CitDMUM0O0MxQzQ7MTEwOSAxMTZCO0MxQzQ7MTEwOSAxMTZCOworQzFDNTtDMUM1OzExMDkgMTE2QiAxMUE4O0MxQzU7MTEwOSAxMTZCIDExQTg7CitDMUM2O0MxQzY7MTEwOSAxMTZCIDExQTk7QzFDNjsxMTA5IDExNkIgMTFBOTsKK0MxQzc7QzFDNzsxMTA5IDExNkIgMTFBQTtDMUM3OzExMDkgMTE2QiAxMUFBOworQzFDODtDMUM4OzExMDkgMTE2QiAxMUFCO0MxQzg7MTEwOSAxMTZCIDExQUI7CitDMUM5O0MxQzk7MTEwOSAxMTZCIDExQUM7QzFDOTsxMTA5IDExNkIgMTFBQzsKK0MxQ0E7QzFDQTsxMTA5IDExNkIgMTFBRDtDMUNBOzExMDkgMTE2QiAxMUFEOworQzFDQjtDMUNCOzExMDkgMTE2QiAxMUFFO0MxQ0I7MTEwOSAxMTZCIDExQUU7CitDMUNDO0MxQ0M7MTEwOSAxMTZCIDExQUY7QzFDQzsxMTA5IDExNkIgMTFBRjsKK0MxQ0Q7QzFDRDsxMTA5IDExNkIgMTFCMDtDMUNEOzExMDkgMTE2QiAxMUIwOworQzFDRTtDMUNFOzExMDkgMTE2QiAxMUIxO0MxQ0U7MTEwOSAxMTZCIDExQjE7CitDMUNGO0MxQ0Y7MTEwOSAxMTZCIDExQjI7QzFDRjsxMTA5IDExNkIgMTFCMjsKK0MxRDA7QzFEMDsxMTA5IDExNkIgMTFCMztDMUQwOzExMDkgMTE2QiAxMUIzOworQzFEMTtDMUQxOzExMDkgMTE2QiAxMUI0O0MxRDE7MTEwOSAxMTZCIDExQjQ7CitDMUQyO0MxRDI7MTEwOSAxMTZCIDExQjU7QzFEMjsxMTA5IDExNkIgMTFCNTsKK0MxRDM7QzFEMzsxMTA5IDExNkIgMTFCNjtDMUQzOzExMDkgMTE2QiAxMUI2OworQzFENDtDMUQ0OzExMDkgMTE2QiAxMUI3O0MxRDQ7MTEwOSAxMTZCIDExQjc7CitDMUQ1O0MxRDU7MTEwOSAxMTZCIDExQjg7QzFENTsxMTA5IDExNkIgMTFCODsKK0MxRDY7QzFENjsxMTA5IDExNkIgMTFCOTtDMUQ2OzExMDkgMTE2QiAxMUI5OworQzFENztDMUQ3OzExMDkgMTE2QiAxMUJBO0MxRDc7MTEwOSAxMTZCIDExQkE7CitDMUQ4O0MxRDg7MTEwOSAxMTZCIDExQkI7QzFEODsxMTA5IDExNkIgMTFCQjsKK0MxRDk7QzFEOTsxMTA5IDExNkIgMTFCQztDMUQ5OzExMDkgMTE2QiAxMUJDOworQzFEQTtDMURBOzExMDkgMTE2QiAxMUJEO0MxREE7MTEwOSAxMTZCIDExQkQ7CitDMURCO0MxREI7MTEwOSAxMTZCIDExQkU7QzFEQjsxMTA5IDExNkIgMTFCRTsKK0MxREM7QzFEQzsxMTA5IDExNkIgMTFCRjtDMURDOzExMDkgMTE2QiAxMUJGOworQzFERDtDMUREOzExMDkgMTE2QiAxMUMwO0MxREQ7MTEwOSAxMTZCIDExQzA7CitDMURFO0MxREU7MTEwOSAxMTZCIDExQzE7QzFERTsxMTA5IDExNkIgMTFDMTsKK0MxREY7QzFERjsxMTA5IDExNkIgMTFDMjtDMURGOzExMDkgMTE2QiAxMUMyOworQzFFMDtDMUUwOzExMDkgMTE2QztDMUUwOzExMDkgMTE2QzsKK0MxRTE7QzFFMTsxMTA5IDExNkMgMTFBODtDMUUxOzExMDkgMTE2QyAxMUE4OworQzFFMjtDMUUyOzExMDkgMTE2QyAxMUE5O0MxRTI7MTEwOSAxMTZDIDExQTk7CitDMUUzO0MxRTM7MTEwOSAxMTZDIDExQUE7QzFFMzsxMTA5IDExNkMgMTFBQTsKK0MxRTQ7QzFFNDsxMTA5IDExNkMgMTFBQjtDMUU0OzExMDkgMTE2QyAxMUFCOworQzFFNTtDMUU1OzExMDkgMTE2QyAxMUFDO0MxRTU7MTEwOSAxMTZDIDExQUM7CitDMUU2O0MxRTY7MTEwOSAxMTZDIDExQUQ7QzFFNjsxMTA5IDExNkMgMTFBRDsKK0MxRTc7QzFFNzsxMTA5IDExNkMgMTFBRTtDMUU3OzExMDkgMTE2QyAxMUFFOworQzFFODtDMUU4OzExMDkgMTE2QyAxMUFGO0MxRTg7MTEwOSAxMTZDIDExQUY7CitDMUU5O0MxRTk7MTEwOSAxMTZDIDExQjA7QzFFOTsxMTA5IDExNkMgMTFCMDsKK0MxRUE7QzFFQTsxMTA5IDExNkMgMTFCMTtDMUVBOzExMDkgMTE2QyAxMUIxOworQzFFQjtDMUVCOzExMDkgMTE2QyAxMUIyO0MxRUI7MTEwOSAxMTZDIDExQjI7CitDMUVDO0MxRUM7MTEwOSAxMTZDIDExQjM7QzFFQzsxMTA5IDExNkMgMTFCMzsKK0MxRUQ7QzFFRDsxMTA5IDExNkMgMTFCNDtDMUVEOzExMDkgMTE2QyAxMUI0OworQzFFRTtDMUVFOzExMDkgMTE2QyAxMUI1O0MxRUU7MTEwOSAxMTZDIDExQjU7CitDMUVGO0MxRUY7MTEwOSAxMTZDIDExQjY7QzFFRjsxMTA5IDExNkMgMTFCNjsKK0MxRjA7QzFGMDsxMTA5IDExNkMgMTFCNztDMUYwOzExMDkgMTE2QyAxMUI3OworQzFGMTtDMUYxOzExMDkgMTE2QyAxMUI4O0MxRjE7MTEwOSAxMTZDIDExQjg7CitDMUYyO0MxRjI7MTEwOSAxMTZDIDExQjk7QzFGMjsxMTA5IDExNkMgMTFCOTsKK0MxRjM7QzFGMzsxMTA5IDExNkMgMTFCQTtDMUYzOzExMDkgMTE2QyAxMUJBOworQzFGNDtDMUY0OzExMDkgMTE2QyAxMUJCO0MxRjQ7MTEwOSAxMTZDIDExQkI7CitDMUY1O0MxRjU7MTEwOSAxMTZDIDExQkM7QzFGNTsxMTA5IDExNkMgMTFCQzsKK0MxRjY7QzFGNjsxMTA5IDExNkMgMTFCRDtDMUY2OzExMDkgMTE2QyAxMUJEOworQzFGNztDMUY3OzExMDkgMTE2QyAxMUJFO0MxRjc7MTEwOSAxMTZDIDExQkU7CitDMUY4O0MxRjg7MTEwOSAxMTZDIDExQkY7QzFGODsxMTA5IDExNkMgMTFCRjsKK0MxRjk7QzFGOTsxMTA5IDExNkMgMTFDMDtDMUY5OzExMDkgMTE2QyAxMUMwOworQzFGQTtDMUZBOzExMDkgMTE2QyAxMUMxO0MxRkE7MTEwOSAxMTZDIDExQzE7CitDMUZCO0MxRkI7MTEwOSAxMTZDIDExQzI7QzFGQjsxMTA5IDExNkMgMTFDMjsKK0MxRkM7QzFGQzsxMTA5IDExNkQ7QzFGQzsxMTA5IDExNkQ7CitDMUZEO0MxRkQ7MTEwOSAxMTZEIDExQTg7QzFGRDsxMTA5IDExNkQgMTFBODsKK0MxRkU7QzFGRTsxMTA5IDExNkQgMTFBOTtDMUZFOzExMDkgMTE2RCAxMUE5OworQzFGRjtDMUZGOzExMDkgMTE2RCAxMUFBO0MxRkY7MTEwOSAxMTZEIDExQUE7CitDMjAwO0MyMDA7MTEwOSAxMTZEIDExQUI7QzIwMDsxMTA5IDExNkQgMTFBQjsKK0MyMDE7QzIwMTsxMTA5IDExNkQgMTFBQztDMjAxOzExMDkgMTE2RCAxMUFDOworQzIwMjtDMjAyOzExMDkgMTE2RCAxMUFEO0MyMDI7MTEwOSAxMTZEIDExQUQ7CitDMjAzO0MyMDM7MTEwOSAxMTZEIDExQUU7QzIwMzsxMTA5IDExNkQgMTFBRTsKK0MyMDQ7QzIwNDsxMTA5IDExNkQgMTFBRjtDMjA0OzExMDkgMTE2RCAxMUFGOworQzIwNTtDMjA1OzExMDkgMTE2RCAxMUIwO0MyMDU7MTEwOSAxMTZEIDExQjA7CitDMjA2O0MyMDY7MTEwOSAxMTZEIDExQjE7QzIwNjsxMTA5IDExNkQgMTFCMTsKK0MyMDc7QzIwNzsxMTA5IDExNkQgMTFCMjtDMjA3OzExMDkgMTE2RCAxMUIyOworQzIwODtDMjA4OzExMDkgMTE2RCAxMUIzO0MyMDg7MTEwOSAxMTZEIDExQjM7CitDMjA5O0MyMDk7MTEwOSAxMTZEIDExQjQ7QzIwOTsxMTA5IDExNkQgMTFCNDsKK0MyMEE7QzIwQTsxMTA5IDExNkQgMTFCNTtDMjBBOzExMDkgMTE2RCAxMUI1OworQzIwQjtDMjBCOzExMDkgMTE2RCAxMUI2O0MyMEI7MTEwOSAxMTZEIDExQjY7CitDMjBDO0MyMEM7MTEwOSAxMTZEIDExQjc7QzIwQzsxMTA5IDExNkQgMTFCNzsKK0MyMEQ7QzIwRDsxMTA5IDExNkQgMTFCODtDMjBEOzExMDkgMTE2RCAxMUI4OworQzIwRTtDMjBFOzExMDkgMTE2RCAxMUI5O0MyMEU7MTEwOSAxMTZEIDExQjk7CitDMjBGO0MyMEY7MTEwOSAxMTZEIDExQkE7QzIwRjsxMTA5IDExNkQgMTFCQTsKK0MyMTA7QzIxMDsxMTA5IDExNkQgMTFCQjtDMjEwOzExMDkgMTE2RCAxMUJCOworQzIxMTtDMjExOzExMDkgMTE2RCAxMUJDO0MyMTE7MTEwOSAxMTZEIDExQkM7CitDMjEyO0MyMTI7MTEwOSAxMTZEIDExQkQ7QzIxMjsxMTA5IDExNkQgMTFCRDsKK0MyMTM7QzIxMzsxMTA5IDExNkQgMTFCRTtDMjEzOzExMDkgMTE2RCAxMUJFOworQzIxNDtDMjE0OzExMDkgMTE2RCAxMUJGO0MyMTQ7MTEwOSAxMTZEIDExQkY7CitDMjE1O0MyMTU7MTEwOSAxMTZEIDExQzA7QzIxNTsxMTA5IDExNkQgMTFDMDsKK0MyMTY7QzIxNjsxMTA5IDExNkQgMTFDMTtDMjE2OzExMDkgMTE2RCAxMUMxOworQzIxNztDMjE3OzExMDkgMTE2RCAxMUMyO0MyMTc7MTEwOSAxMTZEIDExQzI7CitDMjE4O0MyMTg7MTEwOSAxMTZFO0MyMTg7MTEwOSAxMTZFOworQzIxOTtDMjE5OzExMDkgMTE2RSAxMUE4O0MyMTk7MTEwOSAxMTZFIDExQTg7CitDMjFBO0MyMUE7MTEwOSAxMTZFIDExQTk7QzIxQTsxMTA5IDExNkUgMTFBOTsKK0MyMUI7QzIxQjsxMTA5IDExNkUgMTFBQTtDMjFCOzExMDkgMTE2RSAxMUFBOworQzIxQztDMjFDOzExMDkgMTE2RSAxMUFCO0MyMUM7MTEwOSAxMTZFIDExQUI7CitDMjFEO0MyMUQ7MTEwOSAxMTZFIDExQUM7QzIxRDsxMTA5IDExNkUgMTFBQzsKK0MyMUU7QzIxRTsxMTA5IDExNkUgMTFBRDtDMjFFOzExMDkgMTE2RSAxMUFEOworQzIxRjtDMjFGOzExMDkgMTE2RSAxMUFFO0MyMUY7MTEwOSAxMTZFIDExQUU7CitDMjIwO0MyMjA7MTEwOSAxMTZFIDExQUY7QzIyMDsxMTA5IDExNkUgMTFBRjsKK0MyMjE7QzIyMTsxMTA5IDExNkUgMTFCMDtDMjIxOzExMDkgMTE2RSAxMUIwOworQzIyMjtDMjIyOzExMDkgMTE2RSAxMUIxO0MyMjI7MTEwOSAxMTZFIDExQjE7CitDMjIzO0MyMjM7MTEwOSAxMTZFIDExQjI7QzIyMzsxMTA5IDExNkUgMTFCMjsKK0MyMjQ7QzIyNDsxMTA5IDExNkUgMTFCMztDMjI0OzExMDkgMTE2RSAxMUIzOworQzIyNTtDMjI1OzExMDkgMTE2RSAxMUI0O0MyMjU7MTEwOSAxMTZFIDExQjQ7CitDMjI2O0MyMjY7MTEwOSAxMTZFIDExQjU7QzIyNjsxMTA5IDExNkUgMTFCNTsKK0MyMjc7QzIyNzsxMTA5IDExNkUgMTFCNjtDMjI3OzExMDkgMTE2RSAxMUI2OworQzIyODtDMjI4OzExMDkgMTE2RSAxMUI3O0MyMjg7MTEwOSAxMTZFIDExQjc7CitDMjI5O0MyMjk7MTEwOSAxMTZFIDExQjg7QzIyOTsxMTA5IDExNkUgMTFCODsKK0MyMkE7QzIyQTsxMTA5IDExNkUgMTFCOTtDMjJBOzExMDkgMTE2RSAxMUI5OworQzIyQjtDMjJCOzExMDkgMTE2RSAxMUJBO0MyMkI7MTEwOSAxMTZFIDExQkE7CitDMjJDO0MyMkM7MTEwOSAxMTZFIDExQkI7QzIyQzsxMTA5IDExNkUgMTFCQjsKK0MyMkQ7QzIyRDsxMTA5IDExNkUgMTFCQztDMjJEOzExMDkgMTE2RSAxMUJDOworQzIyRTtDMjJFOzExMDkgMTE2RSAxMUJEO0MyMkU7MTEwOSAxMTZFIDExQkQ7CitDMjJGO0MyMkY7MTEwOSAxMTZFIDExQkU7QzIyRjsxMTA5IDExNkUgMTFCRTsKK0MyMzA7QzIzMDsxMTA5IDExNkUgMTFCRjtDMjMwOzExMDkgMTE2RSAxMUJGOworQzIzMTtDMjMxOzExMDkgMTE2RSAxMUMwO0MyMzE7MTEwOSAxMTZFIDExQzA7CitDMjMyO0MyMzI7MTEwOSAxMTZFIDExQzE7QzIzMjsxMTA5IDExNkUgMTFDMTsKK0MyMzM7QzIzMzsxMTA5IDExNkUgMTFDMjtDMjMzOzExMDkgMTE2RSAxMUMyOworQzIzNDtDMjM0OzExMDkgMTE2RjtDMjM0OzExMDkgMTE2RjsKK0MyMzU7QzIzNTsxMTA5IDExNkYgMTFBODtDMjM1OzExMDkgMTE2RiAxMUE4OworQzIzNjtDMjM2OzExMDkgMTE2RiAxMUE5O0MyMzY7MTEwOSAxMTZGIDExQTk7CitDMjM3O0MyMzc7MTEwOSAxMTZGIDExQUE7QzIzNzsxMTA5IDExNkYgMTFBQTsKK0MyMzg7QzIzODsxMTA5IDExNkYgMTFBQjtDMjM4OzExMDkgMTE2RiAxMUFCOworQzIzOTtDMjM5OzExMDkgMTE2RiAxMUFDO0MyMzk7MTEwOSAxMTZGIDExQUM7CitDMjNBO0MyM0E7MTEwOSAxMTZGIDExQUQ7QzIzQTsxMTA5IDExNkYgMTFBRDsKK0MyM0I7QzIzQjsxMTA5IDExNkYgMTFBRTtDMjNCOzExMDkgMTE2RiAxMUFFOworQzIzQztDMjNDOzExMDkgMTE2RiAxMUFGO0MyM0M7MTEwOSAxMTZGIDExQUY7CitDMjNEO0MyM0Q7MTEwOSAxMTZGIDExQjA7QzIzRDsxMTA5IDExNkYgMTFCMDsKK0MyM0U7QzIzRTsxMTA5IDExNkYgMTFCMTtDMjNFOzExMDkgMTE2RiAxMUIxOworQzIzRjtDMjNGOzExMDkgMTE2RiAxMUIyO0MyM0Y7MTEwOSAxMTZGIDExQjI7CitDMjQwO0MyNDA7MTEwOSAxMTZGIDExQjM7QzI0MDsxMTA5IDExNkYgMTFCMzsKK0MyNDE7QzI0MTsxMTA5IDExNkYgMTFCNDtDMjQxOzExMDkgMTE2RiAxMUI0OworQzI0MjtDMjQyOzExMDkgMTE2RiAxMUI1O0MyNDI7MTEwOSAxMTZGIDExQjU7CitDMjQzO0MyNDM7MTEwOSAxMTZGIDExQjY7QzI0MzsxMTA5IDExNkYgMTFCNjsKK0MyNDQ7QzI0NDsxMTA5IDExNkYgMTFCNztDMjQ0OzExMDkgMTE2RiAxMUI3OworQzI0NTtDMjQ1OzExMDkgMTE2RiAxMUI4O0MyNDU7MTEwOSAxMTZGIDExQjg7CitDMjQ2O0MyNDY7MTEwOSAxMTZGIDExQjk7QzI0NjsxMTA5IDExNkYgMTFCOTsKK0MyNDc7QzI0NzsxMTA5IDExNkYgMTFCQTtDMjQ3OzExMDkgMTE2RiAxMUJBOworQzI0ODtDMjQ4OzExMDkgMTE2RiAxMUJCO0MyNDg7MTEwOSAxMTZGIDExQkI7CitDMjQ5O0MyNDk7MTEwOSAxMTZGIDExQkM7QzI0OTsxMTA5IDExNkYgMTFCQzsKK0MyNEE7QzI0QTsxMTA5IDExNkYgMTFCRDtDMjRBOzExMDkgMTE2RiAxMUJEOworQzI0QjtDMjRCOzExMDkgMTE2RiAxMUJFO0MyNEI7MTEwOSAxMTZGIDExQkU7CitDMjRDO0MyNEM7MTEwOSAxMTZGIDExQkY7QzI0QzsxMTA5IDExNkYgMTFCRjsKK0MyNEQ7QzI0RDsxMTA5IDExNkYgMTFDMDtDMjREOzExMDkgMTE2RiAxMUMwOworQzI0RTtDMjRFOzExMDkgMTE2RiAxMUMxO0MyNEU7MTEwOSAxMTZGIDExQzE7CitDMjRGO0MyNEY7MTEwOSAxMTZGIDExQzI7QzI0RjsxMTA5IDExNkYgMTFDMjsKK0MyNTA7QzI1MDsxMTA5IDExNzA7QzI1MDsxMTA5IDExNzA7CitDMjUxO0MyNTE7MTEwOSAxMTcwIDExQTg7QzI1MTsxMTA5IDExNzAgMTFBODsKK0MyNTI7QzI1MjsxMTA5IDExNzAgMTFBOTtDMjUyOzExMDkgMTE3MCAxMUE5OworQzI1MztDMjUzOzExMDkgMTE3MCAxMUFBO0MyNTM7MTEwOSAxMTcwIDExQUE7CitDMjU0O0MyNTQ7MTEwOSAxMTcwIDExQUI7QzI1NDsxMTA5IDExNzAgMTFBQjsKK0MyNTU7QzI1NTsxMTA5IDExNzAgMTFBQztDMjU1OzExMDkgMTE3MCAxMUFDOworQzI1NjtDMjU2OzExMDkgMTE3MCAxMUFEO0MyNTY7MTEwOSAxMTcwIDExQUQ7CitDMjU3O0MyNTc7MTEwOSAxMTcwIDExQUU7QzI1NzsxMTA5IDExNzAgMTFBRTsKK0MyNTg7QzI1ODsxMTA5IDExNzAgMTFBRjtDMjU4OzExMDkgMTE3MCAxMUFGOworQzI1OTtDMjU5OzExMDkgMTE3MCAxMUIwO0MyNTk7MTEwOSAxMTcwIDExQjA7CitDMjVBO0MyNUE7MTEwOSAxMTcwIDExQjE7QzI1QTsxMTA5IDExNzAgMTFCMTsKK0MyNUI7QzI1QjsxMTA5IDExNzAgMTFCMjtDMjVCOzExMDkgMTE3MCAxMUIyOworQzI1QztDMjVDOzExMDkgMTE3MCAxMUIzO0MyNUM7MTEwOSAxMTcwIDExQjM7CitDMjVEO0MyNUQ7MTEwOSAxMTcwIDExQjQ7QzI1RDsxMTA5IDExNzAgMTFCNDsKK0MyNUU7QzI1RTsxMTA5IDExNzAgMTFCNTtDMjVFOzExMDkgMTE3MCAxMUI1OworQzI1RjtDMjVGOzExMDkgMTE3MCAxMUI2O0MyNUY7MTEwOSAxMTcwIDExQjY7CitDMjYwO0MyNjA7MTEwOSAxMTcwIDExQjc7QzI2MDsxMTA5IDExNzAgMTFCNzsKK0MyNjE7QzI2MTsxMTA5IDExNzAgMTFCODtDMjYxOzExMDkgMTE3MCAxMUI4OworQzI2MjtDMjYyOzExMDkgMTE3MCAxMUI5O0MyNjI7MTEwOSAxMTcwIDExQjk7CitDMjYzO0MyNjM7MTEwOSAxMTcwIDExQkE7QzI2MzsxMTA5IDExNzAgMTFCQTsKK0MyNjQ7QzI2NDsxMTA5IDExNzAgMTFCQjtDMjY0OzExMDkgMTE3MCAxMUJCOworQzI2NTtDMjY1OzExMDkgMTE3MCAxMUJDO0MyNjU7MTEwOSAxMTcwIDExQkM7CitDMjY2O0MyNjY7MTEwOSAxMTcwIDExQkQ7QzI2NjsxMTA5IDExNzAgMTFCRDsKK0MyNjc7QzI2NzsxMTA5IDExNzAgMTFCRTtDMjY3OzExMDkgMTE3MCAxMUJFOworQzI2ODtDMjY4OzExMDkgMTE3MCAxMUJGO0MyNjg7MTEwOSAxMTcwIDExQkY7CitDMjY5O0MyNjk7MTEwOSAxMTcwIDExQzA7QzI2OTsxMTA5IDExNzAgMTFDMDsKK0MyNkE7QzI2QTsxMTA5IDExNzAgMTFDMTtDMjZBOzExMDkgMTE3MCAxMUMxOworQzI2QjtDMjZCOzExMDkgMTE3MCAxMUMyO0MyNkI7MTEwOSAxMTcwIDExQzI7CitDMjZDO0MyNkM7MTEwOSAxMTcxO0MyNkM7MTEwOSAxMTcxOworQzI2RDtDMjZEOzExMDkgMTE3MSAxMUE4O0MyNkQ7MTEwOSAxMTcxIDExQTg7CitDMjZFO0MyNkU7MTEwOSAxMTcxIDExQTk7QzI2RTsxMTA5IDExNzEgMTFBOTsKK0MyNkY7QzI2RjsxMTA5IDExNzEgMTFBQTtDMjZGOzExMDkgMTE3MSAxMUFBOworQzI3MDtDMjcwOzExMDkgMTE3MSAxMUFCO0MyNzA7MTEwOSAxMTcxIDExQUI7CitDMjcxO0MyNzE7MTEwOSAxMTcxIDExQUM7QzI3MTsxMTA5IDExNzEgMTFBQzsKK0MyNzI7QzI3MjsxMTA5IDExNzEgMTFBRDtDMjcyOzExMDkgMTE3MSAxMUFEOworQzI3MztDMjczOzExMDkgMTE3MSAxMUFFO0MyNzM7MTEwOSAxMTcxIDExQUU7CitDMjc0O0MyNzQ7MTEwOSAxMTcxIDExQUY7QzI3NDsxMTA5IDExNzEgMTFBRjsKK0MyNzU7QzI3NTsxMTA5IDExNzEgMTFCMDtDMjc1OzExMDkgMTE3MSAxMUIwOworQzI3NjtDMjc2OzExMDkgMTE3MSAxMUIxO0MyNzY7MTEwOSAxMTcxIDExQjE7CitDMjc3O0MyNzc7MTEwOSAxMTcxIDExQjI7QzI3NzsxMTA5IDExNzEgMTFCMjsKK0MyNzg7QzI3ODsxMTA5IDExNzEgMTFCMztDMjc4OzExMDkgMTE3MSAxMUIzOworQzI3OTtDMjc5OzExMDkgMTE3MSAxMUI0O0MyNzk7MTEwOSAxMTcxIDExQjQ7CitDMjdBO0MyN0E7MTEwOSAxMTcxIDExQjU7QzI3QTsxMTA5IDExNzEgMTFCNTsKK0MyN0I7QzI3QjsxMTA5IDExNzEgMTFCNjtDMjdCOzExMDkgMTE3MSAxMUI2OworQzI3QztDMjdDOzExMDkgMTE3MSAxMUI3O0MyN0M7MTEwOSAxMTcxIDExQjc7CitDMjdEO0MyN0Q7MTEwOSAxMTcxIDExQjg7QzI3RDsxMTA5IDExNzEgMTFCODsKK0MyN0U7QzI3RTsxMTA5IDExNzEgMTFCOTtDMjdFOzExMDkgMTE3MSAxMUI5OworQzI3RjtDMjdGOzExMDkgMTE3MSAxMUJBO0MyN0Y7MTEwOSAxMTcxIDExQkE7CitDMjgwO0MyODA7MTEwOSAxMTcxIDExQkI7QzI4MDsxMTA5IDExNzEgMTFCQjsKK0MyODE7QzI4MTsxMTA5IDExNzEgMTFCQztDMjgxOzExMDkgMTE3MSAxMUJDOworQzI4MjtDMjgyOzExMDkgMTE3MSAxMUJEO0MyODI7MTEwOSAxMTcxIDExQkQ7CitDMjgzO0MyODM7MTEwOSAxMTcxIDExQkU7QzI4MzsxMTA5IDExNzEgMTFCRTsKK0MyODQ7QzI4NDsxMTA5IDExNzEgMTFCRjtDMjg0OzExMDkgMTE3MSAxMUJGOworQzI4NTtDMjg1OzExMDkgMTE3MSAxMUMwO0MyODU7MTEwOSAxMTcxIDExQzA7CitDMjg2O0MyODY7MTEwOSAxMTcxIDExQzE7QzI4NjsxMTA5IDExNzEgMTFDMTsKK0MyODc7QzI4NzsxMTA5IDExNzEgMTFDMjtDMjg3OzExMDkgMTE3MSAxMUMyOworQzI4ODtDMjg4OzExMDkgMTE3MjtDMjg4OzExMDkgMTE3MjsKK0MyODk7QzI4OTsxMTA5IDExNzIgMTFBODtDMjg5OzExMDkgMTE3MiAxMUE4OworQzI4QTtDMjhBOzExMDkgMTE3MiAxMUE5O0MyOEE7MTEwOSAxMTcyIDExQTk7CitDMjhCO0MyOEI7MTEwOSAxMTcyIDExQUE7QzI4QjsxMTA5IDExNzIgMTFBQTsKK0MyOEM7QzI4QzsxMTA5IDExNzIgMTFBQjtDMjhDOzExMDkgMTE3MiAxMUFCOworQzI4RDtDMjhEOzExMDkgMTE3MiAxMUFDO0MyOEQ7MTEwOSAxMTcyIDExQUM7CitDMjhFO0MyOEU7MTEwOSAxMTcyIDExQUQ7QzI4RTsxMTA5IDExNzIgMTFBRDsKK0MyOEY7QzI4RjsxMTA5IDExNzIgMTFBRTtDMjhGOzExMDkgMTE3MiAxMUFFOworQzI5MDtDMjkwOzExMDkgMTE3MiAxMUFGO0MyOTA7MTEwOSAxMTcyIDExQUY7CitDMjkxO0MyOTE7MTEwOSAxMTcyIDExQjA7QzI5MTsxMTA5IDExNzIgMTFCMDsKK0MyOTI7QzI5MjsxMTA5IDExNzIgMTFCMTtDMjkyOzExMDkgMTE3MiAxMUIxOworQzI5MztDMjkzOzExMDkgMTE3MiAxMUIyO0MyOTM7MTEwOSAxMTcyIDExQjI7CitDMjk0O0MyOTQ7MTEwOSAxMTcyIDExQjM7QzI5NDsxMTA5IDExNzIgMTFCMzsKK0MyOTU7QzI5NTsxMTA5IDExNzIgMTFCNDtDMjk1OzExMDkgMTE3MiAxMUI0OworQzI5NjtDMjk2OzExMDkgMTE3MiAxMUI1O0MyOTY7MTEwOSAxMTcyIDExQjU7CitDMjk3O0MyOTc7MTEwOSAxMTcyIDExQjY7QzI5NzsxMTA5IDExNzIgMTFCNjsKK0MyOTg7QzI5ODsxMTA5IDExNzIgMTFCNztDMjk4OzExMDkgMTE3MiAxMUI3OworQzI5OTtDMjk5OzExMDkgMTE3MiAxMUI4O0MyOTk7MTEwOSAxMTcyIDExQjg7CitDMjlBO0MyOUE7MTEwOSAxMTcyIDExQjk7QzI5QTsxMTA5IDExNzIgMTFCOTsKK0MyOUI7QzI5QjsxMTA5IDExNzIgMTFCQTtDMjlCOzExMDkgMTE3MiAxMUJBOworQzI5QztDMjlDOzExMDkgMTE3MiAxMUJCO0MyOUM7MTEwOSAxMTcyIDExQkI7CitDMjlEO0MyOUQ7MTEwOSAxMTcyIDExQkM7QzI5RDsxMTA5IDExNzIgMTFCQzsKK0MyOUU7QzI5RTsxMTA5IDExNzIgMTFCRDtDMjlFOzExMDkgMTE3MiAxMUJEOworQzI5RjtDMjlGOzExMDkgMTE3MiAxMUJFO0MyOUY7MTEwOSAxMTcyIDExQkU7CitDMkEwO0MyQTA7MTEwOSAxMTcyIDExQkY7QzJBMDsxMTA5IDExNzIgMTFCRjsKK0MyQTE7QzJBMTsxMTA5IDExNzIgMTFDMDtDMkExOzExMDkgMTE3MiAxMUMwOworQzJBMjtDMkEyOzExMDkgMTE3MiAxMUMxO0MyQTI7MTEwOSAxMTcyIDExQzE7CitDMkEzO0MyQTM7MTEwOSAxMTcyIDExQzI7QzJBMzsxMTA5IDExNzIgMTFDMjsKK0MyQTQ7QzJBNDsxMTA5IDExNzM7QzJBNDsxMTA5IDExNzM7CitDMkE1O0MyQTU7MTEwOSAxMTczIDExQTg7QzJBNTsxMTA5IDExNzMgMTFBODsKK0MyQTY7QzJBNjsxMTA5IDExNzMgMTFBOTtDMkE2OzExMDkgMTE3MyAxMUE5OworQzJBNztDMkE3OzExMDkgMTE3MyAxMUFBO0MyQTc7MTEwOSAxMTczIDExQUE7CitDMkE4O0MyQTg7MTEwOSAxMTczIDExQUI7QzJBODsxMTA5IDExNzMgMTFBQjsKK0MyQTk7QzJBOTsxMTA5IDExNzMgMTFBQztDMkE5OzExMDkgMTE3MyAxMUFDOworQzJBQTtDMkFBOzExMDkgMTE3MyAxMUFEO0MyQUE7MTEwOSAxMTczIDExQUQ7CitDMkFCO0MyQUI7MTEwOSAxMTczIDExQUU7QzJBQjsxMTA5IDExNzMgMTFBRTsKK0MyQUM7QzJBQzsxMTA5IDExNzMgMTFBRjtDMkFDOzExMDkgMTE3MyAxMUFGOworQzJBRDtDMkFEOzExMDkgMTE3MyAxMUIwO0MyQUQ7MTEwOSAxMTczIDExQjA7CitDMkFFO0MyQUU7MTEwOSAxMTczIDExQjE7QzJBRTsxMTA5IDExNzMgMTFCMTsKK0MyQUY7QzJBRjsxMTA5IDExNzMgMTFCMjtDMkFGOzExMDkgMTE3MyAxMUIyOworQzJCMDtDMkIwOzExMDkgMTE3MyAxMUIzO0MyQjA7MTEwOSAxMTczIDExQjM7CitDMkIxO0MyQjE7MTEwOSAxMTczIDExQjQ7QzJCMTsxMTA5IDExNzMgMTFCNDsKK0MyQjI7QzJCMjsxMTA5IDExNzMgMTFCNTtDMkIyOzExMDkgMTE3MyAxMUI1OworQzJCMztDMkIzOzExMDkgMTE3MyAxMUI2O0MyQjM7MTEwOSAxMTczIDExQjY7CitDMkI0O0MyQjQ7MTEwOSAxMTczIDExQjc7QzJCNDsxMTA5IDExNzMgMTFCNzsKK0MyQjU7QzJCNTsxMTA5IDExNzMgMTFCODtDMkI1OzExMDkgMTE3MyAxMUI4OworQzJCNjtDMkI2OzExMDkgMTE3MyAxMUI5O0MyQjY7MTEwOSAxMTczIDExQjk7CitDMkI3O0MyQjc7MTEwOSAxMTczIDExQkE7QzJCNzsxMTA5IDExNzMgMTFCQTsKK0MyQjg7QzJCODsxMTA5IDExNzMgMTFCQjtDMkI4OzExMDkgMTE3MyAxMUJCOworQzJCOTtDMkI5OzExMDkgMTE3MyAxMUJDO0MyQjk7MTEwOSAxMTczIDExQkM7CitDMkJBO0MyQkE7MTEwOSAxMTczIDExQkQ7QzJCQTsxMTA5IDExNzMgMTFCRDsKK0MyQkI7QzJCQjsxMTA5IDExNzMgMTFCRTtDMkJCOzExMDkgMTE3MyAxMUJFOworQzJCQztDMkJDOzExMDkgMTE3MyAxMUJGO0MyQkM7MTEwOSAxMTczIDExQkY7CitDMkJEO0MyQkQ7MTEwOSAxMTczIDExQzA7QzJCRDsxMTA5IDExNzMgMTFDMDsKK0MyQkU7QzJCRTsxMTA5IDExNzMgMTFDMTtDMkJFOzExMDkgMTE3MyAxMUMxOworQzJCRjtDMkJGOzExMDkgMTE3MyAxMUMyO0MyQkY7MTEwOSAxMTczIDExQzI7CitDMkMwO0MyQzA7MTEwOSAxMTc0O0MyQzA7MTEwOSAxMTc0OworQzJDMTtDMkMxOzExMDkgMTE3NCAxMUE4O0MyQzE7MTEwOSAxMTc0IDExQTg7CitDMkMyO0MyQzI7MTEwOSAxMTc0IDExQTk7QzJDMjsxMTA5IDExNzQgMTFBOTsKK0MyQzM7QzJDMzsxMTA5IDExNzQgMTFBQTtDMkMzOzExMDkgMTE3NCAxMUFBOworQzJDNDtDMkM0OzExMDkgMTE3NCAxMUFCO0MyQzQ7MTEwOSAxMTc0IDExQUI7CitDMkM1O0MyQzU7MTEwOSAxMTc0IDExQUM7QzJDNTsxMTA5IDExNzQgMTFBQzsKK0MyQzY7QzJDNjsxMTA5IDExNzQgMTFBRDtDMkM2OzExMDkgMTE3NCAxMUFEOworQzJDNztDMkM3OzExMDkgMTE3NCAxMUFFO0MyQzc7MTEwOSAxMTc0IDExQUU7CitDMkM4O0MyQzg7MTEwOSAxMTc0IDExQUY7QzJDODsxMTA5IDExNzQgMTFBRjsKK0MyQzk7QzJDOTsxMTA5IDExNzQgMTFCMDtDMkM5OzExMDkgMTE3NCAxMUIwOworQzJDQTtDMkNBOzExMDkgMTE3NCAxMUIxO0MyQ0E7MTEwOSAxMTc0IDExQjE7CitDMkNCO0MyQ0I7MTEwOSAxMTc0IDExQjI7QzJDQjsxMTA5IDExNzQgMTFCMjsKK0MyQ0M7QzJDQzsxMTA5IDExNzQgMTFCMztDMkNDOzExMDkgMTE3NCAxMUIzOworQzJDRDtDMkNEOzExMDkgMTE3NCAxMUI0O0MyQ0Q7MTEwOSAxMTc0IDExQjQ7CitDMkNFO0MyQ0U7MTEwOSAxMTc0IDExQjU7QzJDRTsxMTA5IDExNzQgMTFCNTsKK0MyQ0Y7QzJDRjsxMTA5IDExNzQgMTFCNjtDMkNGOzExMDkgMTE3NCAxMUI2OworQzJEMDtDMkQwOzExMDkgMTE3NCAxMUI3O0MyRDA7MTEwOSAxMTc0IDExQjc7CitDMkQxO0MyRDE7MTEwOSAxMTc0IDExQjg7QzJEMTsxMTA5IDExNzQgMTFCODsKK0MyRDI7QzJEMjsxMTA5IDExNzQgMTFCOTtDMkQyOzExMDkgMTE3NCAxMUI5OworQzJEMztDMkQzOzExMDkgMTE3NCAxMUJBO0MyRDM7MTEwOSAxMTc0IDExQkE7CitDMkQ0O0MyRDQ7MTEwOSAxMTc0IDExQkI7QzJENDsxMTA5IDExNzQgMTFCQjsKK0MyRDU7QzJENTsxMTA5IDExNzQgMTFCQztDMkQ1OzExMDkgMTE3NCAxMUJDOworQzJENjtDMkQ2OzExMDkgMTE3NCAxMUJEO0MyRDY7MTEwOSAxMTc0IDExQkQ7CitDMkQ3O0MyRDc7MTEwOSAxMTc0IDExQkU7QzJENzsxMTA5IDExNzQgMTFCRTsKK0MyRDg7QzJEODsxMTA5IDExNzQgMTFCRjtDMkQ4OzExMDkgMTE3NCAxMUJGOworQzJEOTtDMkQ5OzExMDkgMTE3NCAxMUMwO0MyRDk7MTEwOSAxMTc0IDExQzA7CitDMkRBO0MyREE7MTEwOSAxMTc0IDExQzE7QzJEQTsxMTA5IDExNzQgMTFDMTsKK0MyREI7QzJEQjsxMTA5IDExNzQgMTFDMjtDMkRCOzExMDkgMTE3NCAxMUMyOworQzJEQztDMkRDOzExMDkgMTE3NTtDMkRDOzExMDkgMTE3NTsKK0MyREQ7QzJERDsxMTA5IDExNzUgMTFBODtDMkREOzExMDkgMTE3NSAxMUE4OworQzJERTtDMkRFOzExMDkgMTE3NSAxMUE5O0MyREU7MTEwOSAxMTc1IDExQTk7CitDMkRGO0MyREY7MTEwOSAxMTc1IDExQUE7QzJERjsxMTA5IDExNzUgMTFBQTsKK0MyRTA7QzJFMDsxMTA5IDExNzUgMTFBQjtDMkUwOzExMDkgMTE3NSAxMUFCOworQzJFMTtDMkUxOzExMDkgMTE3NSAxMUFDO0MyRTE7MTEwOSAxMTc1IDExQUM7CitDMkUyO0MyRTI7MTEwOSAxMTc1IDExQUQ7QzJFMjsxMTA5IDExNzUgMTFBRDsKK0MyRTM7QzJFMzsxMTA5IDExNzUgMTFBRTtDMkUzOzExMDkgMTE3NSAxMUFFOworQzJFNDtDMkU0OzExMDkgMTE3NSAxMUFGO0MyRTQ7MTEwOSAxMTc1IDExQUY7CitDMkU1O0MyRTU7MTEwOSAxMTc1IDExQjA7QzJFNTsxMTA5IDExNzUgMTFCMDsKK0MyRTY7QzJFNjsxMTA5IDExNzUgMTFCMTtDMkU2OzExMDkgMTE3NSAxMUIxOworQzJFNztDMkU3OzExMDkgMTE3NSAxMUIyO0MyRTc7MTEwOSAxMTc1IDExQjI7CitDMkU4O0MyRTg7MTEwOSAxMTc1IDExQjM7QzJFODsxMTA5IDExNzUgMTFCMzsKK0MyRTk7QzJFOTsxMTA5IDExNzUgMTFCNDtDMkU5OzExMDkgMTE3NSAxMUI0OworQzJFQTtDMkVBOzExMDkgMTE3NSAxMUI1O0MyRUE7MTEwOSAxMTc1IDExQjU7CitDMkVCO0MyRUI7MTEwOSAxMTc1IDExQjY7QzJFQjsxMTA5IDExNzUgMTFCNjsKK0MyRUM7QzJFQzsxMTA5IDExNzUgMTFCNztDMkVDOzExMDkgMTE3NSAxMUI3OworQzJFRDtDMkVEOzExMDkgMTE3NSAxMUI4O0MyRUQ7MTEwOSAxMTc1IDExQjg7CitDMkVFO0MyRUU7MTEwOSAxMTc1IDExQjk7QzJFRTsxMTA5IDExNzUgMTFCOTsKK0MyRUY7QzJFRjsxMTA5IDExNzUgMTFCQTtDMkVGOzExMDkgMTE3NSAxMUJBOworQzJGMDtDMkYwOzExMDkgMTE3NSAxMUJCO0MyRjA7MTEwOSAxMTc1IDExQkI7CitDMkYxO0MyRjE7MTEwOSAxMTc1IDExQkM7QzJGMTsxMTA5IDExNzUgMTFCQzsKK0MyRjI7QzJGMjsxMTA5IDExNzUgMTFCRDtDMkYyOzExMDkgMTE3NSAxMUJEOworQzJGMztDMkYzOzExMDkgMTE3NSAxMUJFO0MyRjM7MTEwOSAxMTc1IDExQkU7CitDMkY0O0MyRjQ7MTEwOSAxMTc1IDExQkY7QzJGNDsxMTA5IDExNzUgMTFCRjsKK0MyRjU7QzJGNTsxMTA5IDExNzUgMTFDMDtDMkY1OzExMDkgMTE3NSAxMUMwOworQzJGNjtDMkY2OzExMDkgMTE3NSAxMUMxO0MyRjY7MTEwOSAxMTc1IDExQzE7CitDMkY3O0MyRjc7MTEwOSAxMTc1IDExQzI7QzJGNzsxMTA5IDExNzUgMTFDMjsKK0MyRjg7QzJGODsxMTBBIDExNjE7QzJGODsxMTBBIDExNjE7CitDMkY5O0MyRjk7MTEwQSAxMTYxIDExQTg7QzJGOTsxMTBBIDExNjEgMTFBODsKK0MyRkE7QzJGQTsxMTBBIDExNjEgMTFBOTtDMkZBOzExMEEgMTE2MSAxMUE5OworQzJGQjtDMkZCOzExMEEgMTE2MSAxMUFBO0MyRkI7MTEwQSAxMTYxIDExQUE7CitDMkZDO0MyRkM7MTEwQSAxMTYxIDExQUI7QzJGQzsxMTBBIDExNjEgMTFBQjsKK0MyRkQ7QzJGRDsxMTBBIDExNjEgMTFBQztDMkZEOzExMEEgMTE2MSAxMUFDOworQzJGRTtDMkZFOzExMEEgMTE2MSAxMUFEO0MyRkU7MTEwQSAxMTYxIDExQUQ7CitDMkZGO0MyRkY7MTEwQSAxMTYxIDExQUU7QzJGRjsxMTBBIDExNjEgMTFBRTsKK0MzMDA7QzMwMDsxMTBBIDExNjEgMTFBRjtDMzAwOzExMEEgMTE2MSAxMUFGOworQzMwMTtDMzAxOzExMEEgMTE2MSAxMUIwO0MzMDE7MTEwQSAxMTYxIDExQjA7CitDMzAyO0MzMDI7MTEwQSAxMTYxIDExQjE7QzMwMjsxMTBBIDExNjEgMTFCMTsKK0MzMDM7QzMwMzsxMTBBIDExNjEgMTFCMjtDMzAzOzExMEEgMTE2MSAxMUIyOworQzMwNDtDMzA0OzExMEEgMTE2MSAxMUIzO0MzMDQ7MTEwQSAxMTYxIDExQjM7CitDMzA1O0MzMDU7MTEwQSAxMTYxIDExQjQ7QzMwNTsxMTBBIDExNjEgMTFCNDsKK0MzMDY7QzMwNjsxMTBBIDExNjEgMTFCNTtDMzA2OzExMEEgMTE2MSAxMUI1OworQzMwNztDMzA3OzExMEEgMTE2MSAxMUI2O0MzMDc7MTEwQSAxMTYxIDExQjY7CitDMzA4O0MzMDg7MTEwQSAxMTYxIDExQjc7QzMwODsxMTBBIDExNjEgMTFCNzsKK0MzMDk7QzMwOTsxMTBBIDExNjEgMTFCODtDMzA5OzExMEEgMTE2MSAxMUI4OworQzMwQTtDMzBBOzExMEEgMTE2MSAxMUI5O0MzMEE7MTEwQSAxMTYxIDExQjk7CitDMzBCO0MzMEI7MTEwQSAxMTYxIDExQkE7QzMwQjsxMTBBIDExNjEgMTFCQTsKK0MzMEM7QzMwQzsxMTBBIDExNjEgMTFCQjtDMzBDOzExMEEgMTE2MSAxMUJCOworQzMwRDtDMzBEOzExMEEgMTE2MSAxMUJDO0MzMEQ7MTEwQSAxMTYxIDExQkM7CitDMzBFO0MzMEU7MTEwQSAxMTYxIDExQkQ7QzMwRTsxMTBBIDExNjEgMTFCRDsKK0MzMEY7QzMwRjsxMTBBIDExNjEgMTFCRTtDMzBGOzExMEEgMTE2MSAxMUJFOworQzMxMDtDMzEwOzExMEEgMTE2MSAxMUJGO0MzMTA7MTEwQSAxMTYxIDExQkY7CitDMzExO0MzMTE7MTEwQSAxMTYxIDExQzA7QzMxMTsxMTBBIDExNjEgMTFDMDsKK0MzMTI7QzMxMjsxMTBBIDExNjEgMTFDMTtDMzEyOzExMEEgMTE2MSAxMUMxOworQzMxMztDMzEzOzExMEEgMTE2MSAxMUMyO0MzMTM7MTEwQSAxMTYxIDExQzI7CitDMzE0O0MzMTQ7MTEwQSAxMTYyO0MzMTQ7MTEwQSAxMTYyOworQzMxNTtDMzE1OzExMEEgMTE2MiAxMUE4O0MzMTU7MTEwQSAxMTYyIDExQTg7CitDMzE2O0MzMTY7MTEwQSAxMTYyIDExQTk7QzMxNjsxMTBBIDExNjIgMTFBOTsKK0MzMTc7QzMxNzsxMTBBIDExNjIgMTFBQTtDMzE3OzExMEEgMTE2MiAxMUFBOworQzMxODtDMzE4OzExMEEgMTE2MiAxMUFCO0MzMTg7MTEwQSAxMTYyIDExQUI7CitDMzE5O0MzMTk7MTEwQSAxMTYyIDExQUM7QzMxOTsxMTBBIDExNjIgMTFBQzsKK0MzMUE7QzMxQTsxMTBBIDExNjIgMTFBRDtDMzFBOzExMEEgMTE2MiAxMUFEOworQzMxQjtDMzFCOzExMEEgMTE2MiAxMUFFO0MzMUI7MTEwQSAxMTYyIDExQUU7CitDMzFDO0MzMUM7MTEwQSAxMTYyIDExQUY7QzMxQzsxMTBBIDExNjIgMTFBRjsKK0MzMUQ7QzMxRDsxMTBBIDExNjIgMTFCMDtDMzFEOzExMEEgMTE2MiAxMUIwOworQzMxRTtDMzFFOzExMEEgMTE2MiAxMUIxO0MzMUU7MTEwQSAxMTYyIDExQjE7CitDMzFGO0MzMUY7MTEwQSAxMTYyIDExQjI7QzMxRjsxMTBBIDExNjIgMTFCMjsKK0MzMjA7QzMyMDsxMTBBIDExNjIgMTFCMztDMzIwOzExMEEgMTE2MiAxMUIzOworQzMyMTtDMzIxOzExMEEgMTE2MiAxMUI0O0MzMjE7MTEwQSAxMTYyIDExQjQ7CitDMzIyO0MzMjI7MTEwQSAxMTYyIDExQjU7QzMyMjsxMTBBIDExNjIgMTFCNTsKK0MzMjM7QzMyMzsxMTBBIDExNjIgMTFCNjtDMzIzOzExMEEgMTE2MiAxMUI2OworQzMyNDtDMzI0OzExMEEgMTE2MiAxMUI3O0MzMjQ7MTEwQSAxMTYyIDExQjc7CitDMzI1O0MzMjU7MTEwQSAxMTYyIDExQjg7QzMyNTsxMTBBIDExNjIgMTFCODsKK0MzMjY7QzMyNjsxMTBBIDExNjIgMTFCOTtDMzI2OzExMEEgMTE2MiAxMUI5OworQzMyNztDMzI3OzExMEEgMTE2MiAxMUJBO0MzMjc7MTEwQSAxMTYyIDExQkE7CitDMzI4O0MzMjg7MTEwQSAxMTYyIDExQkI7QzMyODsxMTBBIDExNjIgMTFCQjsKK0MzMjk7QzMyOTsxMTBBIDExNjIgMTFCQztDMzI5OzExMEEgMTE2MiAxMUJDOworQzMyQTtDMzJBOzExMEEgMTE2MiAxMUJEO0MzMkE7MTEwQSAxMTYyIDExQkQ7CitDMzJCO0MzMkI7MTEwQSAxMTYyIDExQkU7QzMyQjsxMTBBIDExNjIgMTFCRTsKK0MzMkM7QzMyQzsxMTBBIDExNjIgMTFCRjtDMzJDOzExMEEgMTE2MiAxMUJGOworQzMyRDtDMzJEOzExMEEgMTE2MiAxMUMwO0MzMkQ7MTEwQSAxMTYyIDExQzA7CitDMzJFO0MzMkU7MTEwQSAxMTYyIDExQzE7QzMyRTsxMTBBIDExNjIgMTFDMTsKK0MzMkY7QzMyRjsxMTBBIDExNjIgMTFDMjtDMzJGOzExMEEgMTE2MiAxMUMyOworQzMzMDtDMzMwOzExMEEgMTE2MztDMzMwOzExMEEgMTE2MzsKK0MzMzE7QzMzMTsxMTBBIDExNjMgMTFBODtDMzMxOzExMEEgMTE2MyAxMUE4OworQzMzMjtDMzMyOzExMEEgMTE2MyAxMUE5O0MzMzI7MTEwQSAxMTYzIDExQTk7CitDMzMzO0MzMzM7MTEwQSAxMTYzIDExQUE7QzMzMzsxMTBBIDExNjMgMTFBQTsKK0MzMzQ7QzMzNDsxMTBBIDExNjMgMTFBQjtDMzM0OzExMEEgMTE2MyAxMUFCOworQzMzNTtDMzM1OzExMEEgMTE2MyAxMUFDO0MzMzU7MTEwQSAxMTYzIDExQUM7CitDMzM2O0MzMzY7MTEwQSAxMTYzIDExQUQ7QzMzNjsxMTBBIDExNjMgMTFBRDsKK0MzMzc7QzMzNzsxMTBBIDExNjMgMTFBRTtDMzM3OzExMEEgMTE2MyAxMUFFOworQzMzODtDMzM4OzExMEEgMTE2MyAxMUFGO0MzMzg7MTEwQSAxMTYzIDExQUY7CitDMzM5O0MzMzk7MTEwQSAxMTYzIDExQjA7QzMzOTsxMTBBIDExNjMgMTFCMDsKK0MzM0E7QzMzQTsxMTBBIDExNjMgMTFCMTtDMzNBOzExMEEgMTE2MyAxMUIxOworQzMzQjtDMzNCOzExMEEgMTE2MyAxMUIyO0MzM0I7MTEwQSAxMTYzIDExQjI7CitDMzNDO0MzM0M7MTEwQSAxMTYzIDExQjM7QzMzQzsxMTBBIDExNjMgMTFCMzsKK0MzM0Q7QzMzRDsxMTBBIDExNjMgMTFCNDtDMzNEOzExMEEgMTE2MyAxMUI0OworQzMzRTtDMzNFOzExMEEgMTE2MyAxMUI1O0MzM0U7MTEwQSAxMTYzIDExQjU7CitDMzNGO0MzM0Y7MTEwQSAxMTYzIDExQjY7QzMzRjsxMTBBIDExNjMgMTFCNjsKK0MzNDA7QzM0MDsxMTBBIDExNjMgMTFCNztDMzQwOzExMEEgMTE2MyAxMUI3OworQzM0MTtDMzQxOzExMEEgMTE2MyAxMUI4O0MzNDE7MTEwQSAxMTYzIDExQjg7CitDMzQyO0MzNDI7MTEwQSAxMTYzIDExQjk7QzM0MjsxMTBBIDExNjMgMTFCOTsKK0MzNDM7QzM0MzsxMTBBIDExNjMgMTFCQTtDMzQzOzExMEEgMTE2MyAxMUJBOworQzM0NDtDMzQ0OzExMEEgMTE2MyAxMUJCO0MzNDQ7MTEwQSAxMTYzIDExQkI7CitDMzQ1O0MzNDU7MTEwQSAxMTYzIDExQkM7QzM0NTsxMTBBIDExNjMgMTFCQzsKK0MzNDY7QzM0NjsxMTBBIDExNjMgMTFCRDtDMzQ2OzExMEEgMTE2MyAxMUJEOworQzM0NztDMzQ3OzExMEEgMTE2MyAxMUJFO0MzNDc7MTEwQSAxMTYzIDExQkU7CitDMzQ4O0MzNDg7MTEwQSAxMTYzIDExQkY7QzM0ODsxMTBBIDExNjMgMTFCRjsKK0MzNDk7QzM0OTsxMTBBIDExNjMgMTFDMDtDMzQ5OzExMEEgMTE2MyAxMUMwOworQzM0QTtDMzRBOzExMEEgMTE2MyAxMUMxO0MzNEE7MTEwQSAxMTYzIDExQzE7CitDMzRCO0MzNEI7MTEwQSAxMTYzIDExQzI7QzM0QjsxMTBBIDExNjMgMTFDMjsKK0MzNEM7QzM0QzsxMTBBIDExNjQ7QzM0QzsxMTBBIDExNjQ7CitDMzREO0MzNEQ7MTEwQSAxMTY0IDExQTg7QzM0RDsxMTBBIDExNjQgMTFBODsKK0MzNEU7QzM0RTsxMTBBIDExNjQgMTFBOTtDMzRFOzExMEEgMTE2NCAxMUE5OworQzM0RjtDMzRGOzExMEEgMTE2NCAxMUFBO0MzNEY7MTEwQSAxMTY0IDExQUE7CitDMzUwO0MzNTA7MTEwQSAxMTY0IDExQUI7QzM1MDsxMTBBIDExNjQgMTFBQjsKK0MzNTE7QzM1MTsxMTBBIDExNjQgMTFBQztDMzUxOzExMEEgMTE2NCAxMUFDOworQzM1MjtDMzUyOzExMEEgMTE2NCAxMUFEO0MzNTI7MTEwQSAxMTY0IDExQUQ7CitDMzUzO0MzNTM7MTEwQSAxMTY0IDExQUU7QzM1MzsxMTBBIDExNjQgMTFBRTsKK0MzNTQ7QzM1NDsxMTBBIDExNjQgMTFBRjtDMzU0OzExMEEgMTE2NCAxMUFGOworQzM1NTtDMzU1OzExMEEgMTE2NCAxMUIwO0MzNTU7MTEwQSAxMTY0IDExQjA7CitDMzU2O0MzNTY7MTEwQSAxMTY0IDExQjE7QzM1NjsxMTBBIDExNjQgMTFCMTsKK0MzNTc7QzM1NzsxMTBBIDExNjQgMTFCMjtDMzU3OzExMEEgMTE2NCAxMUIyOworQzM1ODtDMzU4OzExMEEgMTE2NCAxMUIzO0MzNTg7MTEwQSAxMTY0IDExQjM7CitDMzU5O0MzNTk7MTEwQSAxMTY0IDExQjQ7QzM1OTsxMTBBIDExNjQgMTFCNDsKK0MzNUE7QzM1QTsxMTBBIDExNjQgMTFCNTtDMzVBOzExMEEgMTE2NCAxMUI1OworQzM1QjtDMzVCOzExMEEgMTE2NCAxMUI2O0MzNUI7MTEwQSAxMTY0IDExQjY7CitDMzVDO0MzNUM7MTEwQSAxMTY0IDExQjc7QzM1QzsxMTBBIDExNjQgMTFCNzsKK0MzNUQ7QzM1RDsxMTBBIDExNjQgMTFCODtDMzVEOzExMEEgMTE2NCAxMUI4OworQzM1RTtDMzVFOzExMEEgMTE2NCAxMUI5O0MzNUU7MTEwQSAxMTY0IDExQjk7CitDMzVGO0MzNUY7MTEwQSAxMTY0IDExQkE7QzM1RjsxMTBBIDExNjQgMTFCQTsKK0MzNjA7QzM2MDsxMTBBIDExNjQgMTFCQjtDMzYwOzExMEEgMTE2NCAxMUJCOworQzM2MTtDMzYxOzExMEEgMTE2NCAxMUJDO0MzNjE7MTEwQSAxMTY0IDExQkM7CitDMzYyO0MzNjI7MTEwQSAxMTY0IDExQkQ7QzM2MjsxMTBBIDExNjQgMTFCRDsKK0MzNjM7QzM2MzsxMTBBIDExNjQgMTFCRTtDMzYzOzExMEEgMTE2NCAxMUJFOworQzM2NDtDMzY0OzExMEEgMTE2NCAxMUJGO0MzNjQ7MTEwQSAxMTY0IDExQkY7CitDMzY1O0MzNjU7MTEwQSAxMTY0IDExQzA7QzM2NTsxMTBBIDExNjQgMTFDMDsKK0MzNjY7QzM2NjsxMTBBIDExNjQgMTFDMTtDMzY2OzExMEEgMTE2NCAxMUMxOworQzM2NztDMzY3OzExMEEgMTE2NCAxMUMyO0MzNjc7MTEwQSAxMTY0IDExQzI7CitDMzY4O0MzNjg7MTEwQSAxMTY1O0MzNjg7MTEwQSAxMTY1OworQzM2OTtDMzY5OzExMEEgMTE2NSAxMUE4O0MzNjk7MTEwQSAxMTY1IDExQTg7CitDMzZBO0MzNkE7MTEwQSAxMTY1IDExQTk7QzM2QTsxMTBBIDExNjUgMTFBOTsKK0MzNkI7QzM2QjsxMTBBIDExNjUgMTFBQTtDMzZCOzExMEEgMTE2NSAxMUFBOworQzM2QztDMzZDOzExMEEgMTE2NSAxMUFCO0MzNkM7MTEwQSAxMTY1IDExQUI7CitDMzZEO0MzNkQ7MTEwQSAxMTY1IDExQUM7QzM2RDsxMTBBIDExNjUgMTFBQzsKK0MzNkU7QzM2RTsxMTBBIDExNjUgMTFBRDtDMzZFOzExMEEgMTE2NSAxMUFEOworQzM2RjtDMzZGOzExMEEgMTE2NSAxMUFFO0MzNkY7MTEwQSAxMTY1IDExQUU7CitDMzcwO0MzNzA7MTEwQSAxMTY1IDExQUY7QzM3MDsxMTBBIDExNjUgMTFBRjsKK0MzNzE7QzM3MTsxMTBBIDExNjUgMTFCMDtDMzcxOzExMEEgMTE2NSAxMUIwOworQzM3MjtDMzcyOzExMEEgMTE2NSAxMUIxO0MzNzI7MTEwQSAxMTY1IDExQjE7CitDMzczO0MzNzM7MTEwQSAxMTY1IDExQjI7QzM3MzsxMTBBIDExNjUgMTFCMjsKK0MzNzQ7QzM3NDsxMTBBIDExNjUgMTFCMztDMzc0OzExMEEgMTE2NSAxMUIzOworQzM3NTtDMzc1OzExMEEgMTE2NSAxMUI0O0MzNzU7MTEwQSAxMTY1IDExQjQ7CitDMzc2O0MzNzY7MTEwQSAxMTY1IDExQjU7QzM3NjsxMTBBIDExNjUgMTFCNTsKK0MzNzc7QzM3NzsxMTBBIDExNjUgMTFCNjtDMzc3OzExMEEgMTE2NSAxMUI2OworQzM3ODtDMzc4OzExMEEgMTE2NSAxMUI3O0MzNzg7MTEwQSAxMTY1IDExQjc7CitDMzc5O0MzNzk7MTEwQSAxMTY1IDExQjg7QzM3OTsxMTBBIDExNjUgMTFCODsKK0MzN0E7QzM3QTsxMTBBIDExNjUgMTFCOTtDMzdBOzExMEEgMTE2NSAxMUI5OworQzM3QjtDMzdCOzExMEEgMTE2NSAxMUJBO0MzN0I7MTEwQSAxMTY1IDExQkE7CitDMzdDO0MzN0M7MTEwQSAxMTY1IDExQkI7QzM3QzsxMTBBIDExNjUgMTFCQjsKK0MzN0Q7QzM3RDsxMTBBIDExNjUgMTFCQztDMzdEOzExMEEgMTE2NSAxMUJDOworQzM3RTtDMzdFOzExMEEgMTE2NSAxMUJEO0MzN0U7MTEwQSAxMTY1IDExQkQ7CitDMzdGO0MzN0Y7MTEwQSAxMTY1IDExQkU7QzM3RjsxMTBBIDExNjUgMTFCRTsKK0MzODA7QzM4MDsxMTBBIDExNjUgMTFCRjtDMzgwOzExMEEgMTE2NSAxMUJGOworQzM4MTtDMzgxOzExMEEgMTE2NSAxMUMwO0MzODE7MTEwQSAxMTY1IDExQzA7CitDMzgyO0MzODI7MTEwQSAxMTY1IDExQzE7QzM4MjsxMTBBIDExNjUgMTFDMTsKK0MzODM7QzM4MzsxMTBBIDExNjUgMTFDMjtDMzgzOzExMEEgMTE2NSAxMUMyOworQzM4NDtDMzg0OzExMEEgMTE2NjtDMzg0OzExMEEgMTE2NjsKK0MzODU7QzM4NTsxMTBBIDExNjYgMTFBODtDMzg1OzExMEEgMTE2NiAxMUE4OworQzM4NjtDMzg2OzExMEEgMTE2NiAxMUE5O0MzODY7MTEwQSAxMTY2IDExQTk7CitDMzg3O0MzODc7MTEwQSAxMTY2IDExQUE7QzM4NzsxMTBBIDExNjYgMTFBQTsKK0MzODg7QzM4ODsxMTBBIDExNjYgMTFBQjtDMzg4OzExMEEgMTE2NiAxMUFCOworQzM4OTtDMzg5OzExMEEgMTE2NiAxMUFDO0MzODk7MTEwQSAxMTY2IDExQUM7CitDMzhBO0MzOEE7MTEwQSAxMTY2IDExQUQ7QzM4QTsxMTBBIDExNjYgMTFBRDsKK0MzOEI7QzM4QjsxMTBBIDExNjYgMTFBRTtDMzhCOzExMEEgMTE2NiAxMUFFOworQzM4QztDMzhDOzExMEEgMTE2NiAxMUFGO0MzOEM7MTEwQSAxMTY2IDExQUY7CitDMzhEO0MzOEQ7MTEwQSAxMTY2IDExQjA7QzM4RDsxMTBBIDExNjYgMTFCMDsKK0MzOEU7QzM4RTsxMTBBIDExNjYgMTFCMTtDMzhFOzExMEEgMTE2NiAxMUIxOworQzM4RjtDMzhGOzExMEEgMTE2NiAxMUIyO0MzOEY7MTEwQSAxMTY2IDExQjI7CitDMzkwO0MzOTA7MTEwQSAxMTY2IDExQjM7QzM5MDsxMTBBIDExNjYgMTFCMzsKK0MzOTE7QzM5MTsxMTBBIDExNjYgMTFCNDtDMzkxOzExMEEgMTE2NiAxMUI0OworQzM5MjtDMzkyOzExMEEgMTE2NiAxMUI1O0MzOTI7MTEwQSAxMTY2IDExQjU7CitDMzkzO0MzOTM7MTEwQSAxMTY2IDExQjY7QzM5MzsxMTBBIDExNjYgMTFCNjsKK0MzOTQ7QzM5NDsxMTBBIDExNjYgMTFCNztDMzk0OzExMEEgMTE2NiAxMUI3OworQzM5NTtDMzk1OzExMEEgMTE2NiAxMUI4O0MzOTU7MTEwQSAxMTY2IDExQjg7CitDMzk2O0MzOTY7MTEwQSAxMTY2IDExQjk7QzM5NjsxMTBBIDExNjYgMTFCOTsKK0MzOTc7QzM5NzsxMTBBIDExNjYgMTFCQTtDMzk3OzExMEEgMTE2NiAxMUJBOworQzM5ODtDMzk4OzExMEEgMTE2NiAxMUJCO0MzOTg7MTEwQSAxMTY2IDExQkI7CitDMzk5O0MzOTk7MTEwQSAxMTY2IDExQkM7QzM5OTsxMTBBIDExNjYgMTFCQzsKK0MzOUE7QzM5QTsxMTBBIDExNjYgMTFCRDtDMzlBOzExMEEgMTE2NiAxMUJEOworQzM5QjtDMzlCOzExMEEgMTE2NiAxMUJFO0MzOUI7MTEwQSAxMTY2IDExQkU7CitDMzlDO0MzOUM7MTEwQSAxMTY2IDExQkY7QzM5QzsxMTBBIDExNjYgMTFCRjsKK0MzOUQ7QzM5RDsxMTBBIDExNjYgMTFDMDtDMzlEOzExMEEgMTE2NiAxMUMwOworQzM5RTtDMzlFOzExMEEgMTE2NiAxMUMxO0MzOUU7MTEwQSAxMTY2IDExQzE7CitDMzlGO0MzOUY7MTEwQSAxMTY2IDExQzI7QzM5RjsxMTBBIDExNjYgMTFDMjsKK0MzQTA7QzNBMDsxMTBBIDExNjc7QzNBMDsxMTBBIDExNjc7CitDM0ExO0MzQTE7MTEwQSAxMTY3IDExQTg7QzNBMTsxMTBBIDExNjcgMTFBODsKK0MzQTI7QzNBMjsxMTBBIDExNjcgMTFBOTtDM0EyOzExMEEgMTE2NyAxMUE5OworQzNBMztDM0EzOzExMEEgMTE2NyAxMUFBO0MzQTM7MTEwQSAxMTY3IDExQUE7CitDM0E0O0MzQTQ7MTEwQSAxMTY3IDExQUI7QzNBNDsxMTBBIDExNjcgMTFBQjsKK0MzQTU7QzNBNTsxMTBBIDExNjcgMTFBQztDM0E1OzExMEEgMTE2NyAxMUFDOworQzNBNjtDM0E2OzExMEEgMTE2NyAxMUFEO0MzQTY7MTEwQSAxMTY3IDExQUQ7CitDM0E3O0MzQTc7MTEwQSAxMTY3IDExQUU7QzNBNzsxMTBBIDExNjcgMTFBRTsKK0MzQTg7QzNBODsxMTBBIDExNjcgMTFBRjtDM0E4OzExMEEgMTE2NyAxMUFGOworQzNBOTtDM0E5OzExMEEgMTE2NyAxMUIwO0MzQTk7MTEwQSAxMTY3IDExQjA7CitDM0FBO0MzQUE7MTEwQSAxMTY3IDExQjE7QzNBQTsxMTBBIDExNjcgMTFCMTsKK0MzQUI7QzNBQjsxMTBBIDExNjcgMTFCMjtDM0FCOzExMEEgMTE2NyAxMUIyOworQzNBQztDM0FDOzExMEEgMTE2NyAxMUIzO0MzQUM7MTEwQSAxMTY3IDExQjM7CitDM0FEO0MzQUQ7MTEwQSAxMTY3IDExQjQ7QzNBRDsxMTBBIDExNjcgMTFCNDsKK0MzQUU7QzNBRTsxMTBBIDExNjcgMTFCNTtDM0FFOzExMEEgMTE2NyAxMUI1OworQzNBRjtDM0FGOzExMEEgMTE2NyAxMUI2O0MzQUY7MTEwQSAxMTY3IDExQjY7CitDM0IwO0MzQjA7MTEwQSAxMTY3IDExQjc7QzNCMDsxMTBBIDExNjcgMTFCNzsKK0MzQjE7QzNCMTsxMTBBIDExNjcgMTFCODtDM0IxOzExMEEgMTE2NyAxMUI4OworQzNCMjtDM0IyOzExMEEgMTE2NyAxMUI5O0MzQjI7MTEwQSAxMTY3IDExQjk7CitDM0IzO0MzQjM7MTEwQSAxMTY3IDExQkE7QzNCMzsxMTBBIDExNjcgMTFCQTsKK0MzQjQ7QzNCNDsxMTBBIDExNjcgMTFCQjtDM0I0OzExMEEgMTE2NyAxMUJCOworQzNCNTtDM0I1OzExMEEgMTE2NyAxMUJDO0MzQjU7MTEwQSAxMTY3IDExQkM7CitDM0I2O0MzQjY7MTEwQSAxMTY3IDExQkQ7QzNCNjsxMTBBIDExNjcgMTFCRDsKK0MzQjc7QzNCNzsxMTBBIDExNjcgMTFCRTtDM0I3OzExMEEgMTE2NyAxMUJFOworQzNCODtDM0I4OzExMEEgMTE2NyAxMUJGO0MzQjg7MTEwQSAxMTY3IDExQkY7CitDM0I5O0MzQjk7MTEwQSAxMTY3IDExQzA7QzNCOTsxMTBBIDExNjcgMTFDMDsKK0MzQkE7QzNCQTsxMTBBIDExNjcgMTFDMTtDM0JBOzExMEEgMTE2NyAxMUMxOworQzNCQjtDM0JCOzExMEEgMTE2NyAxMUMyO0MzQkI7MTEwQSAxMTY3IDExQzI7CitDM0JDO0MzQkM7MTEwQSAxMTY4O0MzQkM7MTEwQSAxMTY4OworQzNCRDtDM0JEOzExMEEgMTE2OCAxMUE4O0MzQkQ7MTEwQSAxMTY4IDExQTg7CitDM0JFO0MzQkU7MTEwQSAxMTY4IDExQTk7QzNCRTsxMTBBIDExNjggMTFBOTsKK0MzQkY7QzNCRjsxMTBBIDExNjggMTFBQTtDM0JGOzExMEEgMTE2OCAxMUFBOworQzNDMDtDM0MwOzExMEEgMTE2OCAxMUFCO0MzQzA7MTEwQSAxMTY4IDExQUI7CitDM0MxO0MzQzE7MTEwQSAxMTY4IDExQUM7QzNDMTsxMTBBIDExNjggMTFBQzsKK0MzQzI7QzNDMjsxMTBBIDExNjggMTFBRDtDM0MyOzExMEEgMTE2OCAxMUFEOworQzNDMztDM0MzOzExMEEgMTE2OCAxMUFFO0MzQzM7MTEwQSAxMTY4IDExQUU7CitDM0M0O0MzQzQ7MTEwQSAxMTY4IDExQUY7QzNDNDsxMTBBIDExNjggMTFBRjsKK0MzQzU7QzNDNTsxMTBBIDExNjggMTFCMDtDM0M1OzExMEEgMTE2OCAxMUIwOworQzNDNjtDM0M2OzExMEEgMTE2OCAxMUIxO0MzQzY7MTEwQSAxMTY4IDExQjE7CitDM0M3O0MzQzc7MTEwQSAxMTY4IDExQjI7QzNDNzsxMTBBIDExNjggMTFCMjsKK0MzQzg7QzNDODsxMTBBIDExNjggMTFCMztDM0M4OzExMEEgMTE2OCAxMUIzOworQzNDOTtDM0M5OzExMEEgMTE2OCAxMUI0O0MzQzk7MTEwQSAxMTY4IDExQjQ7CitDM0NBO0MzQ0E7MTEwQSAxMTY4IDExQjU7QzNDQTsxMTBBIDExNjggMTFCNTsKK0MzQ0I7QzNDQjsxMTBBIDExNjggMTFCNjtDM0NCOzExMEEgMTE2OCAxMUI2OworQzNDQztDM0NDOzExMEEgMTE2OCAxMUI3O0MzQ0M7MTEwQSAxMTY4IDExQjc7CitDM0NEO0MzQ0Q7MTEwQSAxMTY4IDExQjg7QzNDRDsxMTBBIDExNjggMTFCODsKK0MzQ0U7QzNDRTsxMTBBIDExNjggMTFCOTtDM0NFOzExMEEgMTE2OCAxMUI5OworQzNDRjtDM0NGOzExMEEgMTE2OCAxMUJBO0MzQ0Y7MTEwQSAxMTY4IDExQkE7CitDM0QwO0MzRDA7MTEwQSAxMTY4IDExQkI7QzNEMDsxMTBBIDExNjggMTFCQjsKK0MzRDE7QzNEMTsxMTBBIDExNjggMTFCQztDM0QxOzExMEEgMTE2OCAxMUJDOworQzNEMjtDM0QyOzExMEEgMTE2OCAxMUJEO0MzRDI7MTEwQSAxMTY4IDExQkQ7CitDM0QzO0MzRDM7MTEwQSAxMTY4IDExQkU7QzNEMzsxMTBBIDExNjggMTFCRTsKK0MzRDQ7QzNENDsxMTBBIDExNjggMTFCRjtDM0Q0OzExMEEgMTE2OCAxMUJGOworQzNENTtDM0Q1OzExMEEgMTE2OCAxMUMwO0MzRDU7MTEwQSAxMTY4IDExQzA7CitDM0Q2O0MzRDY7MTEwQSAxMTY4IDExQzE7QzNENjsxMTBBIDExNjggMTFDMTsKK0MzRDc7QzNENzsxMTBBIDExNjggMTFDMjtDM0Q3OzExMEEgMTE2OCAxMUMyOworQzNEODtDM0Q4OzExMEEgMTE2OTtDM0Q4OzExMEEgMTE2OTsKK0MzRDk7QzNEOTsxMTBBIDExNjkgMTFBODtDM0Q5OzExMEEgMTE2OSAxMUE4OworQzNEQTtDM0RBOzExMEEgMTE2OSAxMUE5O0MzREE7MTEwQSAxMTY5IDExQTk7CitDM0RCO0MzREI7MTEwQSAxMTY5IDExQUE7QzNEQjsxMTBBIDExNjkgMTFBQTsKK0MzREM7QzNEQzsxMTBBIDExNjkgMTFBQjtDM0RDOzExMEEgMTE2OSAxMUFCOworQzNERDtDM0REOzExMEEgMTE2OSAxMUFDO0MzREQ7MTEwQSAxMTY5IDExQUM7CitDM0RFO0MzREU7MTEwQSAxMTY5IDExQUQ7QzNERTsxMTBBIDExNjkgMTFBRDsKK0MzREY7QzNERjsxMTBBIDExNjkgMTFBRTtDM0RGOzExMEEgMTE2OSAxMUFFOworQzNFMDtDM0UwOzExMEEgMTE2OSAxMUFGO0MzRTA7MTEwQSAxMTY5IDExQUY7CitDM0UxO0MzRTE7MTEwQSAxMTY5IDExQjA7QzNFMTsxMTBBIDExNjkgMTFCMDsKK0MzRTI7QzNFMjsxMTBBIDExNjkgMTFCMTtDM0UyOzExMEEgMTE2OSAxMUIxOworQzNFMztDM0UzOzExMEEgMTE2OSAxMUIyO0MzRTM7MTEwQSAxMTY5IDExQjI7CitDM0U0O0MzRTQ7MTEwQSAxMTY5IDExQjM7QzNFNDsxMTBBIDExNjkgMTFCMzsKK0MzRTU7QzNFNTsxMTBBIDExNjkgMTFCNDtDM0U1OzExMEEgMTE2OSAxMUI0OworQzNFNjtDM0U2OzExMEEgMTE2OSAxMUI1O0MzRTY7MTEwQSAxMTY5IDExQjU7CitDM0U3O0MzRTc7MTEwQSAxMTY5IDExQjY7QzNFNzsxMTBBIDExNjkgMTFCNjsKK0MzRTg7QzNFODsxMTBBIDExNjkgMTFCNztDM0U4OzExMEEgMTE2OSAxMUI3OworQzNFOTtDM0U5OzExMEEgMTE2OSAxMUI4O0MzRTk7MTEwQSAxMTY5IDExQjg7CitDM0VBO0MzRUE7MTEwQSAxMTY5IDExQjk7QzNFQTsxMTBBIDExNjkgMTFCOTsKK0MzRUI7QzNFQjsxMTBBIDExNjkgMTFCQTtDM0VCOzExMEEgMTE2OSAxMUJBOworQzNFQztDM0VDOzExMEEgMTE2OSAxMUJCO0MzRUM7MTEwQSAxMTY5IDExQkI7CitDM0VEO0MzRUQ7MTEwQSAxMTY5IDExQkM7QzNFRDsxMTBBIDExNjkgMTFCQzsKK0MzRUU7QzNFRTsxMTBBIDExNjkgMTFCRDtDM0VFOzExMEEgMTE2OSAxMUJEOworQzNFRjtDM0VGOzExMEEgMTE2OSAxMUJFO0MzRUY7MTEwQSAxMTY5IDExQkU7CitDM0YwO0MzRjA7MTEwQSAxMTY5IDExQkY7QzNGMDsxMTBBIDExNjkgMTFCRjsKK0MzRjE7QzNGMTsxMTBBIDExNjkgMTFDMDtDM0YxOzExMEEgMTE2OSAxMUMwOworQzNGMjtDM0YyOzExMEEgMTE2OSAxMUMxO0MzRjI7MTEwQSAxMTY5IDExQzE7CitDM0YzO0MzRjM7MTEwQSAxMTY5IDExQzI7QzNGMzsxMTBBIDExNjkgMTFDMjsKK0MzRjQ7QzNGNDsxMTBBIDExNkE7QzNGNDsxMTBBIDExNkE7CitDM0Y1O0MzRjU7MTEwQSAxMTZBIDExQTg7QzNGNTsxMTBBIDExNkEgMTFBODsKK0MzRjY7QzNGNjsxMTBBIDExNkEgMTFBOTtDM0Y2OzExMEEgMTE2QSAxMUE5OworQzNGNztDM0Y3OzExMEEgMTE2QSAxMUFBO0MzRjc7MTEwQSAxMTZBIDExQUE7CitDM0Y4O0MzRjg7MTEwQSAxMTZBIDExQUI7QzNGODsxMTBBIDExNkEgMTFBQjsKK0MzRjk7QzNGOTsxMTBBIDExNkEgMTFBQztDM0Y5OzExMEEgMTE2QSAxMUFDOworQzNGQTtDM0ZBOzExMEEgMTE2QSAxMUFEO0MzRkE7MTEwQSAxMTZBIDExQUQ7CitDM0ZCO0MzRkI7MTEwQSAxMTZBIDExQUU7QzNGQjsxMTBBIDExNkEgMTFBRTsKK0MzRkM7QzNGQzsxMTBBIDExNkEgMTFBRjtDM0ZDOzExMEEgMTE2QSAxMUFGOworQzNGRDtDM0ZEOzExMEEgMTE2QSAxMUIwO0MzRkQ7MTEwQSAxMTZBIDExQjA7CitDM0ZFO0MzRkU7MTEwQSAxMTZBIDExQjE7QzNGRTsxMTBBIDExNkEgMTFCMTsKK0MzRkY7QzNGRjsxMTBBIDExNkEgMTFCMjtDM0ZGOzExMEEgMTE2QSAxMUIyOworQzQwMDtDNDAwOzExMEEgMTE2QSAxMUIzO0M0MDA7MTEwQSAxMTZBIDExQjM7CitDNDAxO0M0MDE7MTEwQSAxMTZBIDExQjQ7QzQwMTsxMTBBIDExNkEgMTFCNDsKK0M0MDI7QzQwMjsxMTBBIDExNkEgMTFCNTtDNDAyOzExMEEgMTE2QSAxMUI1OworQzQwMztDNDAzOzExMEEgMTE2QSAxMUI2O0M0MDM7MTEwQSAxMTZBIDExQjY7CitDNDA0O0M0MDQ7MTEwQSAxMTZBIDExQjc7QzQwNDsxMTBBIDExNkEgMTFCNzsKK0M0MDU7QzQwNTsxMTBBIDExNkEgMTFCODtDNDA1OzExMEEgMTE2QSAxMUI4OworQzQwNjtDNDA2OzExMEEgMTE2QSAxMUI5O0M0MDY7MTEwQSAxMTZBIDExQjk7CitDNDA3O0M0MDc7MTEwQSAxMTZBIDExQkE7QzQwNzsxMTBBIDExNkEgMTFCQTsKK0M0MDg7QzQwODsxMTBBIDExNkEgMTFCQjtDNDA4OzExMEEgMTE2QSAxMUJCOworQzQwOTtDNDA5OzExMEEgMTE2QSAxMUJDO0M0MDk7MTEwQSAxMTZBIDExQkM7CitDNDBBO0M0MEE7MTEwQSAxMTZBIDExQkQ7QzQwQTsxMTBBIDExNkEgMTFCRDsKK0M0MEI7QzQwQjsxMTBBIDExNkEgMTFCRTtDNDBCOzExMEEgMTE2QSAxMUJFOworQzQwQztDNDBDOzExMEEgMTE2QSAxMUJGO0M0MEM7MTEwQSAxMTZBIDExQkY7CitDNDBEO0M0MEQ7MTEwQSAxMTZBIDExQzA7QzQwRDsxMTBBIDExNkEgMTFDMDsKK0M0MEU7QzQwRTsxMTBBIDExNkEgMTFDMTtDNDBFOzExMEEgMTE2QSAxMUMxOworQzQwRjtDNDBGOzExMEEgMTE2QSAxMUMyO0M0MEY7MTEwQSAxMTZBIDExQzI7CitDNDEwO0M0MTA7MTEwQSAxMTZCO0M0MTA7MTEwQSAxMTZCOworQzQxMTtDNDExOzExMEEgMTE2QiAxMUE4O0M0MTE7MTEwQSAxMTZCIDExQTg7CitDNDEyO0M0MTI7MTEwQSAxMTZCIDExQTk7QzQxMjsxMTBBIDExNkIgMTFBOTsKK0M0MTM7QzQxMzsxMTBBIDExNkIgMTFBQTtDNDEzOzExMEEgMTE2QiAxMUFBOworQzQxNDtDNDE0OzExMEEgMTE2QiAxMUFCO0M0MTQ7MTEwQSAxMTZCIDExQUI7CitDNDE1O0M0MTU7MTEwQSAxMTZCIDExQUM7QzQxNTsxMTBBIDExNkIgMTFBQzsKK0M0MTY7QzQxNjsxMTBBIDExNkIgMTFBRDtDNDE2OzExMEEgMTE2QiAxMUFEOworQzQxNztDNDE3OzExMEEgMTE2QiAxMUFFO0M0MTc7MTEwQSAxMTZCIDExQUU7CitDNDE4O0M0MTg7MTEwQSAxMTZCIDExQUY7QzQxODsxMTBBIDExNkIgMTFBRjsKK0M0MTk7QzQxOTsxMTBBIDExNkIgMTFCMDtDNDE5OzExMEEgMTE2QiAxMUIwOworQzQxQTtDNDFBOzExMEEgMTE2QiAxMUIxO0M0MUE7MTEwQSAxMTZCIDExQjE7CitDNDFCO0M0MUI7MTEwQSAxMTZCIDExQjI7QzQxQjsxMTBBIDExNkIgMTFCMjsKK0M0MUM7QzQxQzsxMTBBIDExNkIgMTFCMztDNDFDOzExMEEgMTE2QiAxMUIzOworQzQxRDtDNDFEOzExMEEgMTE2QiAxMUI0O0M0MUQ7MTEwQSAxMTZCIDExQjQ7CitDNDFFO0M0MUU7MTEwQSAxMTZCIDExQjU7QzQxRTsxMTBBIDExNkIgMTFCNTsKK0M0MUY7QzQxRjsxMTBBIDExNkIgMTFCNjtDNDFGOzExMEEgMTE2QiAxMUI2OworQzQyMDtDNDIwOzExMEEgMTE2QiAxMUI3O0M0MjA7MTEwQSAxMTZCIDExQjc7CitDNDIxO0M0MjE7MTEwQSAxMTZCIDExQjg7QzQyMTsxMTBBIDExNkIgMTFCODsKK0M0MjI7QzQyMjsxMTBBIDExNkIgMTFCOTtDNDIyOzExMEEgMTE2QiAxMUI5OworQzQyMztDNDIzOzExMEEgMTE2QiAxMUJBO0M0MjM7MTEwQSAxMTZCIDExQkE7CitDNDI0O0M0MjQ7MTEwQSAxMTZCIDExQkI7QzQyNDsxMTBBIDExNkIgMTFCQjsKK0M0MjU7QzQyNTsxMTBBIDExNkIgMTFCQztDNDI1OzExMEEgMTE2QiAxMUJDOworQzQyNjtDNDI2OzExMEEgMTE2QiAxMUJEO0M0MjY7MTEwQSAxMTZCIDExQkQ7CitDNDI3O0M0Mjc7MTEwQSAxMTZCIDExQkU7QzQyNzsxMTBBIDExNkIgMTFCRTsKK0M0Mjg7QzQyODsxMTBBIDExNkIgMTFCRjtDNDI4OzExMEEgMTE2QiAxMUJGOworQzQyOTtDNDI5OzExMEEgMTE2QiAxMUMwO0M0Mjk7MTEwQSAxMTZCIDExQzA7CitDNDJBO0M0MkE7MTEwQSAxMTZCIDExQzE7QzQyQTsxMTBBIDExNkIgMTFDMTsKK0M0MkI7QzQyQjsxMTBBIDExNkIgMTFDMjtDNDJCOzExMEEgMTE2QiAxMUMyOworQzQyQztDNDJDOzExMEEgMTE2QztDNDJDOzExMEEgMTE2QzsKK0M0MkQ7QzQyRDsxMTBBIDExNkMgMTFBODtDNDJEOzExMEEgMTE2QyAxMUE4OworQzQyRTtDNDJFOzExMEEgMTE2QyAxMUE5O0M0MkU7MTEwQSAxMTZDIDExQTk7CitDNDJGO0M0MkY7MTEwQSAxMTZDIDExQUE7QzQyRjsxMTBBIDExNkMgMTFBQTsKK0M0MzA7QzQzMDsxMTBBIDExNkMgMTFBQjtDNDMwOzExMEEgMTE2QyAxMUFCOworQzQzMTtDNDMxOzExMEEgMTE2QyAxMUFDO0M0MzE7MTEwQSAxMTZDIDExQUM7CitDNDMyO0M0MzI7MTEwQSAxMTZDIDExQUQ7QzQzMjsxMTBBIDExNkMgMTFBRDsKK0M0MzM7QzQzMzsxMTBBIDExNkMgMTFBRTtDNDMzOzExMEEgMTE2QyAxMUFFOworQzQzNDtDNDM0OzExMEEgMTE2QyAxMUFGO0M0MzQ7MTEwQSAxMTZDIDExQUY7CitDNDM1O0M0MzU7MTEwQSAxMTZDIDExQjA7QzQzNTsxMTBBIDExNkMgMTFCMDsKK0M0MzY7QzQzNjsxMTBBIDExNkMgMTFCMTtDNDM2OzExMEEgMTE2QyAxMUIxOworQzQzNztDNDM3OzExMEEgMTE2QyAxMUIyO0M0Mzc7MTEwQSAxMTZDIDExQjI7CitDNDM4O0M0Mzg7MTEwQSAxMTZDIDExQjM7QzQzODsxMTBBIDExNkMgMTFCMzsKK0M0Mzk7QzQzOTsxMTBBIDExNkMgMTFCNDtDNDM5OzExMEEgMTE2QyAxMUI0OworQzQzQTtDNDNBOzExMEEgMTE2QyAxMUI1O0M0M0E7MTEwQSAxMTZDIDExQjU7CitDNDNCO0M0M0I7MTEwQSAxMTZDIDExQjY7QzQzQjsxMTBBIDExNkMgMTFCNjsKK0M0M0M7QzQzQzsxMTBBIDExNkMgMTFCNztDNDNDOzExMEEgMTE2QyAxMUI3OworQzQzRDtDNDNEOzExMEEgMTE2QyAxMUI4O0M0M0Q7MTEwQSAxMTZDIDExQjg7CitDNDNFO0M0M0U7MTEwQSAxMTZDIDExQjk7QzQzRTsxMTBBIDExNkMgMTFCOTsKK0M0M0Y7QzQzRjsxMTBBIDExNkMgMTFCQTtDNDNGOzExMEEgMTE2QyAxMUJBOworQzQ0MDtDNDQwOzExMEEgMTE2QyAxMUJCO0M0NDA7MTEwQSAxMTZDIDExQkI7CitDNDQxO0M0NDE7MTEwQSAxMTZDIDExQkM7QzQ0MTsxMTBBIDExNkMgMTFCQzsKK0M0NDI7QzQ0MjsxMTBBIDExNkMgMTFCRDtDNDQyOzExMEEgMTE2QyAxMUJEOworQzQ0MztDNDQzOzExMEEgMTE2QyAxMUJFO0M0NDM7MTEwQSAxMTZDIDExQkU7CitDNDQ0O0M0NDQ7MTEwQSAxMTZDIDExQkY7QzQ0NDsxMTBBIDExNkMgMTFCRjsKK0M0NDU7QzQ0NTsxMTBBIDExNkMgMTFDMDtDNDQ1OzExMEEgMTE2QyAxMUMwOworQzQ0NjtDNDQ2OzExMEEgMTE2QyAxMUMxO0M0NDY7MTEwQSAxMTZDIDExQzE7CitDNDQ3O0M0NDc7MTEwQSAxMTZDIDExQzI7QzQ0NzsxMTBBIDExNkMgMTFDMjsKK0M0NDg7QzQ0ODsxMTBBIDExNkQ7QzQ0ODsxMTBBIDExNkQ7CitDNDQ5O0M0NDk7MTEwQSAxMTZEIDExQTg7QzQ0OTsxMTBBIDExNkQgMTFBODsKK0M0NEE7QzQ0QTsxMTBBIDExNkQgMTFBOTtDNDRBOzExMEEgMTE2RCAxMUE5OworQzQ0QjtDNDRCOzExMEEgMTE2RCAxMUFBO0M0NEI7MTEwQSAxMTZEIDExQUE7CitDNDRDO0M0NEM7MTEwQSAxMTZEIDExQUI7QzQ0QzsxMTBBIDExNkQgMTFBQjsKK0M0NEQ7QzQ0RDsxMTBBIDExNkQgMTFBQztDNDREOzExMEEgMTE2RCAxMUFDOworQzQ0RTtDNDRFOzExMEEgMTE2RCAxMUFEO0M0NEU7MTEwQSAxMTZEIDExQUQ7CitDNDRGO0M0NEY7MTEwQSAxMTZEIDExQUU7QzQ0RjsxMTBBIDExNkQgMTFBRTsKK0M0NTA7QzQ1MDsxMTBBIDExNkQgMTFBRjtDNDUwOzExMEEgMTE2RCAxMUFGOworQzQ1MTtDNDUxOzExMEEgMTE2RCAxMUIwO0M0NTE7MTEwQSAxMTZEIDExQjA7CitDNDUyO0M0NTI7MTEwQSAxMTZEIDExQjE7QzQ1MjsxMTBBIDExNkQgMTFCMTsKK0M0NTM7QzQ1MzsxMTBBIDExNkQgMTFCMjtDNDUzOzExMEEgMTE2RCAxMUIyOworQzQ1NDtDNDU0OzExMEEgMTE2RCAxMUIzO0M0NTQ7MTEwQSAxMTZEIDExQjM7CitDNDU1O0M0NTU7MTEwQSAxMTZEIDExQjQ7QzQ1NTsxMTBBIDExNkQgMTFCNDsKK0M0NTY7QzQ1NjsxMTBBIDExNkQgMTFCNTtDNDU2OzExMEEgMTE2RCAxMUI1OworQzQ1NztDNDU3OzExMEEgMTE2RCAxMUI2O0M0NTc7MTEwQSAxMTZEIDExQjY7CitDNDU4O0M0NTg7MTEwQSAxMTZEIDExQjc7QzQ1ODsxMTBBIDExNkQgMTFCNzsKK0M0NTk7QzQ1OTsxMTBBIDExNkQgMTFCODtDNDU5OzExMEEgMTE2RCAxMUI4OworQzQ1QTtDNDVBOzExMEEgMTE2RCAxMUI5O0M0NUE7MTEwQSAxMTZEIDExQjk7CitDNDVCO0M0NUI7MTEwQSAxMTZEIDExQkE7QzQ1QjsxMTBBIDExNkQgMTFCQTsKK0M0NUM7QzQ1QzsxMTBBIDExNkQgMTFCQjtDNDVDOzExMEEgMTE2RCAxMUJCOworQzQ1RDtDNDVEOzExMEEgMTE2RCAxMUJDO0M0NUQ7MTEwQSAxMTZEIDExQkM7CitDNDVFO0M0NUU7MTEwQSAxMTZEIDExQkQ7QzQ1RTsxMTBBIDExNkQgMTFCRDsKK0M0NUY7QzQ1RjsxMTBBIDExNkQgMTFCRTtDNDVGOzExMEEgMTE2RCAxMUJFOworQzQ2MDtDNDYwOzExMEEgMTE2RCAxMUJGO0M0NjA7MTEwQSAxMTZEIDExQkY7CitDNDYxO0M0NjE7MTEwQSAxMTZEIDExQzA7QzQ2MTsxMTBBIDExNkQgMTFDMDsKK0M0NjI7QzQ2MjsxMTBBIDExNkQgMTFDMTtDNDYyOzExMEEgMTE2RCAxMUMxOworQzQ2MztDNDYzOzExMEEgMTE2RCAxMUMyO0M0NjM7MTEwQSAxMTZEIDExQzI7CitDNDY0O0M0NjQ7MTEwQSAxMTZFO0M0NjQ7MTEwQSAxMTZFOworQzQ2NTtDNDY1OzExMEEgMTE2RSAxMUE4O0M0NjU7MTEwQSAxMTZFIDExQTg7CitDNDY2O0M0NjY7MTEwQSAxMTZFIDExQTk7QzQ2NjsxMTBBIDExNkUgMTFBOTsKK0M0Njc7QzQ2NzsxMTBBIDExNkUgMTFBQTtDNDY3OzExMEEgMTE2RSAxMUFBOworQzQ2ODtDNDY4OzExMEEgMTE2RSAxMUFCO0M0Njg7MTEwQSAxMTZFIDExQUI7CitDNDY5O0M0Njk7MTEwQSAxMTZFIDExQUM7QzQ2OTsxMTBBIDExNkUgMTFBQzsKK0M0NkE7QzQ2QTsxMTBBIDExNkUgMTFBRDtDNDZBOzExMEEgMTE2RSAxMUFEOworQzQ2QjtDNDZCOzExMEEgMTE2RSAxMUFFO0M0NkI7MTEwQSAxMTZFIDExQUU7CitDNDZDO0M0NkM7MTEwQSAxMTZFIDExQUY7QzQ2QzsxMTBBIDExNkUgMTFBRjsKK0M0NkQ7QzQ2RDsxMTBBIDExNkUgMTFCMDtDNDZEOzExMEEgMTE2RSAxMUIwOworQzQ2RTtDNDZFOzExMEEgMTE2RSAxMUIxO0M0NkU7MTEwQSAxMTZFIDExQjE7CitDNDZGO0M0NkY7MTEwQSAxMTZFIDExQjI7QzQ2RjsxMTBBIDExNkUgMTFCMjsKK0M0NzA7QzQ3MDsxMTBBIDExNkUgMTFCMztDNDcwOzExMEEgMTE2RSAxMUIzOworQzQ3MTtDNDcxOzExMEEgMTE2RSAxMUI0O0M0NzE7MTEwQSAxMTZFIDExQjQ7CitDNDcyO0M0NzI7MTEwQSAxMTZFIDExQjU7QzQ3MjsxMTBBIDExNkUgMTFCNTsKK0M0NzM7QzQ3MzsxMTBBIDExNkUgMTFCNjtDNDczOzExMEEgMTE2RSAxMUI2OworQzQ3NDtDNDc0OzExMEEgMTE2RSAxMUI3O0M0NzQ7MTEwQSAxMTZFIDExQjc7CitDNDc1O0M0NzU7MTEwQSAxMTZFIDExQjg7QzQ3NTsxMTBBIDExNkUgMTFCODsKK0M0NzY7QzQ3NjsxMTBBIDExNkUgMTFCOTtDNDc2OzExMEEgMTE2RSAxMUI5OworQzQ3NztDNDc3OzExMEEgMTE2RSAxMUJBO0M0Nzc7MTEwQSAxMTZFIDExQkE7CitDNDc4O0M0Nzg7MTEwQSAxMTZFIDExQkI7QzQ3ODsxMTBBIDExNkUgMTFCQjsKK0M0Nzk7QzQ3OTsxMTBBIDExNkUgMTFCQztDNDc5OzExMEEgMTE2RSAxMUJDOworQzQ3QTtDNDdBOzExMEEgMTE2RSAxMUJEO0M0N0E7MTEwQSAxMTZFIDExQkQ7CitDNDdCO0M0N0I7MTEwQSAxMTZFIDExQkU7QzQ3QjsxMTBBIDExNkUgMTFCRTsKK0M0N0M7QzQ3QzsxMTBBIDExNkUgMTFCRjtDNDdDOzExMEEgMTE2RSAxMUJGOworQzQ3RDtDNDdEOzExMEEgMTE2RSAxMUMwO0M0N0Q7MTEwQSAxMTZFIDExQzA7CitDNDdFO0M0N0U7MTEwQSAxMTZFIDExQzE7QzQ3RTsxMTBBIDExNkUgMTFDMTsKK0M0N0Y7QzQ3RjsxMTBBIDExNkUgMTFDMjtDNDdGOzExMEEgMTE2RSAxMUMyOworQzQ4MDtDNDgwOzExMEEgMTE2RjtDNDgwOzExMEEgMTE2RjsKK0M0ODE7QzQ4MTsxMTBBIDExNkYgMTFBODtDNDgxOzExMEEgMTE2RiAxMUE4OworQzQ4MjtDNDgyOzExMEEgMTE2RiAxMUE5O0M0ODI7MTEwQSAxMTZGIDExQTk7CitDNDgzO0M0ODM7MTEwQSAxMTZGIDExQUE7QzQ4MzsxMTBBIDExNkYgMTFBQTsKK0M0ODQ7QzQ4NDsxMTBBIDExNkYgMTFBQjtDNDg0OzExMEEgMTE2RiAxMUFCOworQzQ4NTtDNDg1OzExMEEgMTE2RiAxMUFDO0M0ODU7MTEwQSAxMTZGIDExQUM7CitDNDg2O0M0ODY7MTEwQSAxMTZGIDExQUQ7QzQ4NjsxMTBBIDExNkYgMTFBRDsKK0M0ODc7QzQ4NzsxMTBBIDExNkYgMTFBRTtDNDg3OzExMEEgMTE2RiAxMUFFOworQzQ4ODtDNDg4OzExMEEgMTE2RiAxMUFGO0M0ODg7MTEwQSAxMTZGIDExQUY7CitDNDg5O0M0ODk7MTEwQSAxMTZGIDExQjA7QzQ4OTsxMTBBIDExNkYgMTFCMDsKK0M0OEE7QzQ4QTsxMTBBIDExNkYgMTFCMTtDNDhBOzExMEEgMTE2RiAxMUIxOworQzQ4QjtDNDhCOzExMEEgMTE2RiAxMUIyO0M0OEI7MTEwQSAxMTZGIDExQjI7CitDNDhDO0M0OEM7MTEwQSAxMTZGIDExQjM7QzQ4QzsxMTBBIDExNkYgMTFCMzsKK0M0OEQ7QzQ4RDsxMTBBIDExNkYgMTFCNDtDNDhEOzExMEEgMTE2RiAxMUI0OworQzQ4RTtDNDhFOzExMEEgMTE2RiAxMUI1O0M0OEU7MTEwQSAxMTZGIDExQjU7CitDNDhGO0M0OEY7MTEwQSAxMTZGIDExQjY7QzQ4RjsxMTBBIDExNkYgMTFCNjsKK0M0OTA7QzQ5MDsxMTBBIDExNkYgMTFCNztDNDkwOzExMEEgMTE2RiAxMUI3OworQzQ5MTtDNDkxOzExMEEgMTE2RiAxMUI4O0M0OTE7MTEwQSAxMTZGIDExQjg7CitDNDkyO0M0OTI7MTEwQSAxMTZGIDExQjk7QzQ5MjsxMTBBIDExNkYgMTFCOTsKK0M0OTM7QzQ5MzsxMTBBIDExNkYgMTFCQTtDNDkzOzExMEEgMTE2RiAxMUJBOworQzQ5NDtDNDk0OzExMEEgMTE2RiAxMUJCO0M0OTQ7MTEwQSAxMTZGIDExQkI7CitDNDk1O0M0OTU7MTEwQSAxMTZGIDExQkM7QzQ5NTsxMTBBIDExNkYgMTFCQzsKK0M0OTY7QzQ5NjsxMTBBIDExNkYgMTFCRDtDNDk2OzExMEEgMTE2RiAxMUJEOworQzQ5NztDNDk3OzExMEEgMTE2RiAxMUJFO0M0OTc7MTEwQSAxMTZGIDExQkU7CitDNDk4O0M0OTg7MTEwQSAxMTZGIDExQkY7QzQ5ODsxMTBBIDExNkYgMTFCRjsKK0M0OTk7QzQ5OTsxMTBBIDExNkYgMTFDMDtDNDk5OzExMEEgMTE2RiAxMUMwOworQzQ5QTtDNDlBOzExMEEgMTE2RiAxMUMxO0M0OUE7MTEwQSAxMTZGIDExQzE7CitDNDlCO0M0OUI7MTEwQSAxMTZGIDExQzI7QzQ5QjsxMTBBIDExNkYgMTFDMjsKK0M0OUM7QzQ5QzsxMTBBIDExNzA7QzQ5QzsxMTBBIDExNzA7CitDNDlEO0M0OUQ7MTEwQSAxMTcwIDExQTg7QzQ5RDsxMTBBIDExNzAgMTFBODsKK0M0OUU7QzQ5RTsxMTBBIDExNzAgMTFBOTtDNDlFOzExMEEgMTE3MCAxMUE5OworQzQ5RjtDNDlGOzExMEEgMTE3MCAxMUFBO0M0OUY7MTEwQSAxMTcwIDExQUE7CitDNEEwO0M0QTA7MTEwQSAxMTcwIDExQUI7QzRBMDsxMTBBIDExNzAgMTFBQjsKK0M0QTE7QzRBMTsxMTBBIDExNzAgMTFBQztDNEExOzExMEEgMTE3MCAxMUFDOworQzRBMjtDNEEyOzExMEEgMTE3MCAxMUFEO0M0QTI7MTEwQSAxMTcwIDExQUQ7CitDNEEzO0M0QTM7MTEwQSAxMTcwIDExQUU7QzRBMzsxMTBBIDExNzAgMTFBRTsKK0M0QTQ7QzRBNDsxMTBBIDExNzAgMTFBRjtDNEE0OzExMEEgMTE3MCAxMUFGOworQzRBNTtDNEE1OzExMEEgMTE3MCAxMUIwO0M0QTU7MTEwQSAxMTcwIDExQjA7CitDNEE2O0M0QTY7MTEwQSAxMTcwIDExQjE7QzRBNjsxMTBBIDExNzAgMTFCMTsKK0M0QTc7QzRBNzsxMTBBIDExNzAgMTFCMjtDNEE3OzExMEEgMTE3MCAxMUIyOworQzRBODtDNEE4OzExMEEgMTE3MCAxMUIzO0M0QTg7MTEwQSAxMTcwIDExQjM7CitDNEE5O0M0QTk7MTEwQSAxMTcwIDExQjQ7QzRBOTsxMTBBIDExNzAgMTFCNDsKK0M0QUE7QzRBQTsxMTBBIDExNzAgMTFCNTtDNEFBOzExMEEgMTE3MCAxMUI1OworQzRBQjtDNEFCOzExMEEgMTE3MCAxMUI2O0M0QUI7MTEwQSAxMTcwIDExQjY7CitDNEFDO0M0QUM7MTEwQSAxMTcwIDExQjc7QzRBQzsxMTBBIDExNzAgMTFCNzsKK0M0QUQ7QzRBRDsxMTBBIDExNzAgMTFCODtDNEFEOzExMEEgMTE3MCAxMUI4OworQzRBRTtDNEFFOzExMEEgMTE3MCAxMUI5O0M0QUU7MTEwQSAxMTcwIDExQjk7CitDNEFGO0M0QUY7MTEwQSAxMTcwIDExQkE7QzRBRjsxMTBBIDExNzAgMTFCQTsKK0M0QjA7QzRCMDsxMTBBIDExNzAgMTFCQjtDNEIwOzExMEEgMTE3MCAxMUJCOworQzRCMTtDNEIxOzExMEEgMTE3MCAxMUJDO0M0QjE7MTEwQSAxMTcwIDExQkM7CitDNEIyO0M0QjI7MTEwQSAxMTcwIDExQkQ7QzRCMjsxMTBBIDExNzAgMTFCRDsKK0M0QjM7QzRCMzsxMTBBIDExNzAgMTFCRTtDNEIzOzExMEEgMTE3MCAxMUJFOworQzRCNDtDNEI0OzExMEEgMTE3MCAxMUJGO0M0QjQ7MTEwQSAxMTcwIDExQkY7CitDNEI1O0M0QjU7MTEwQSAxMTcwIDExQzA7QzRCNTsxMTBBIDExNzAgMTFDMDsKK0M0QjY7QzRCNjsxMTBBIDExNzAgMTFDMTtDNEI2OzExMEEgMTE3MCAxMUMxOworQzRCNztDNEI3OzExMEEgMTE3MCAxMUMyO0M0Qjc7MTEwQSAxMTcwIDExQzI7CitDNEI4O0M0Qjg7MTEwQSAxMTcxO0M0Qjg7MTEwQSAxMTcxOworQzRCOTtDNEI5OzExMEEgMTE3MSAxMUE4O0M0Qjk7MTEwQSAxMTcxIDExQTg7CitDNEJBO0M0QkE7MTEwQSAxMTcxIDExQTk7QzRCQTsxMTBBIDExNzEgMTFBOTsKK0M0QkI7QzRCQjsxMTBBIDExNzEgMTFBQTtDNEJCOzExMEEgMTE3MSAxMUFBOworQzRCQztDNEJDOzExMEEgMTE3MSAxMUFCO0M0QkM7MTEwQSAxMTcxIDExQUI7CitDNEJEO0M0QkQ7MTEwQSAxMTcxIDExQUM7QzRCRDsxMTBBIDExNzEgMTFBQzsKK0M0QkU7QzRCRTsxMTBBIDExNzEgMTFBRDtDNEJFOzExMEEgMTE3MSAxMUFEOworQzRCRjtDNEJGOzExMEEgMTE3MSAxMUFFO0M0QkY7MTEwQSAxMTcxIDExQUU7CitDNEMwO0M0QzA7MTEwQSAxMTcxIDExQUY7QzRDMDsxMTBBIDExNzEgMTFBRjsKK0M0QzE7QzRDMTsxMTBBIDExNzEgMTFCMDtDNEMxOzExMEEgMTE3MSAxMUIwOworQzRDMjtDNEMyOzExMEEgMTE3MSAxMUIxO0M0QzI7MTEwQSAxMTcxIDExQjE7CitDNEMzO0M0QzM7MTEwQSAxMTcxIDExQjI7QzRDMzsxMTBBIDExNzEgMTFCMjsKK0M0QzQ7QzRDNDsxMTBBIDExNzEgMTFCMztDNEM0OzExMEEgMTE3MSAxMUIzOworQzRDNTtDNEM1OzExMEEgMTE3MSAxMUI0O0M0QzU7MTEwQSAxMTcxIDExQjQ7CitDNEM2O0M0QzY7MTEwQSAxMTcxIDExQjU7QzRDNjsxMTBBIDExNzEgMTFCNTsKK0M0Qzc7QzRDNzsxMTBBIDExNzEgMTFCNjtDNEM3OzExMEEgMTE3MSAxMUI2OworQzRDODtDNEM4OzExMEEgMTE3MSAxMUI3O0M0Qzg7MTEwQSAxMTcxIDExQjc7CitDNEM5O0M0Qzk7MTEwQSAxMTcxIDExQjg7QzRDOTsxMTBBIDExNzEgMTFCODsKK0M0Q0E7QzRDQTsxMTBBIDExNzEgMTFCOTtDNENBOzExMEEgMTE3MSAxMUI5OworQzRDQjtDNENCOzExMEEgMTE3MSAxMUJBO0M0Q0I7MTEwQSAxMTcxIDExQkE7CitDNENDO0M0Q0M7MTEwQSAxMTcxIDExQkI7QzRDQzsxMTBBIDExNzEgMTFCQjsKK0M0Q0Q7QzRDRDsxMTBBIDExNzEgMTFCQztDNENEOzExMEEgMTE3MSAxMUJDOworQzRDRTtDNENFOzExMEEgMTE3MSAxMUJEO0M0Q0U7MTEwQSAxMTcxIDExQkQ7CitDNENGO0M0Q0Y7MTEwQSAxMTcxIDExQkU7QzRDRjsxMTBBIDExNzEgMTFCRTsKK0M0RDA7QzREMDsxMTBBIDExNzEgMTFCRjtDNEQwOzExMEEgMTE3MSAxMUJGOworQzREMTtDNEQxOzExMEEgMTE3MSAxMUMwO0M0RDE7MTEwQSAxMTcxIDExQzA7CitDNEQyO0M0RDI7MTEwQSAxMTcxIDExQzE7QzREMjsxMTBBIDExNzEgMTFDMTsKK0M0RDM7QzREMzsxMTBBIDExNzEgMTFDMjtDNEQzOzExMEEgMTE3MSAxMUMyOworQzRENDtDNEQ0OzExMEEgMTE3MjtDNEQ0OzExMEEgMTE3MjsKK0M0RDU7QzRENTsxMTBBIDExNzIgMTFBODtDNEQ1OzExMEEgMTE3MiAxMUE4OworQzRENjtDNEQ2OzExMEEgMTE3MiAxMUE5O0M0RDY7MTEwQSAxMTcyIDExQTk7CitDNEQ3O0M0RDc7MTEwQSAxMTcyIDExQUE7QzRENzsxMTBBIDExNzIgMTFBQTsKK0M0RDg7QzREODsxMTBBIDExNzIgMTFBQjtDNEQ4OzExMEEgMTE3MiAxMUFCOworQzREOTtDNEQ5OzExMEEgMTE3MiAxMUFDO0M0RDk7MTEwQSAxMTcyIDExQUM7CitDNERBO0M0REE7MTEwQSAxMTcyIDExQUQ7QzREQTsxMTBBIDExNzIgMTFBRDsKK0M0REI7QzREQjsxMTBBIDExNzIgMTFBRTtDNERCOzExMEEgMTE3MiAxMUFFOworQzREQztDNERDOzExMEEgMTE3MiAxMUFGO0M0REM7MTEwQSAxMTcyIDExQUY7CitDNEREO0M0REQ7MTEwQSAxMTcyIDExQjA7QzRERDsxMTBBIDExNzIgMTFCMDsKK0M0REU7QzRERTsxMTBBIDExNzIgMTFCMTtDNERFOzExMEEgMTE3MiAxMUIxOworQzRERjtDNERGOzExMEEgMTE3MiAxMUIyO0M0REY7MTEwQSAxMTcyIDExQjI7CitDNEUwO0M0RTA7MTEwQSAxMTcyIDExQjM7QzRFMDsxMTBBIDExNzIgMTFCMzsKK0M0RTE7QzRFMTsxMTBBIDExNzIgMTFCNDtDNEUxOzExMEEgMTE3MiAxMUI0OworQzRFMjtDNEUyOzExMEEgMTE3MiAxMUI1O0M0RTI7MTEwQSAxMTcyIDExQjU7CitDNEUzO0M0RTM7MTEwQSAxMTcyIDExQjY7QzRFMzsxMTBBIDExNzIgMTFCNjsKK0M0RTQ7QzRFNDsxMTBBIDExNzIgMTFCNztDNEU0OzExMEEgMTE3MiAxMUI3OworQzRFNTtDNEU1OzExMEEgMTE3MiAxMUI4O0M0RTU7MTEwQSAxMTcyIDExQjg7CitDNEU2O0M0RTY7MTEwQSAxMTcyIDExQjk7QzRFNjsxMTBBIDExNzIgMTFCOTsKK0M0RTc7QzRFNzsxMTBBIDExNzIgMTFCQTtDNEU3OzExMEEgMTE3MiAxMUJBOworQzRFODtDNEU4OzExMEEgMTE3MiAxMUJCO0M0RTg7MTEwQSAxMTcyIDExQkI7CitDNEU5O0M0RTk7MTEwQSAxMTcyIDExQkM7QzRFOTsxMTBBIDExNzIgMTFCQzsKK0M0RUE7QzRFQTsxMTBBIDExNzIgMTFCRDtDNEVBOzExMEEgMTE3MiAxMUJEOworQzRFQjtDNEVCOzExMEEgMTE3MiAxMUJFO0M0RUI7MTEwQSAxMTcyIDExQkU7CitDNEVDO0M0RUM7MTEwQSAxMTcyIDExQkY7QzRFQzsxMTBBIDExNzIgMTFCRjsKK0M0RUQ7QzRFRDsxMTBBIDExNzIgMTFDMDtDNEVEOzExMEEgMTE3MiAxMUMwOworQzRFRTtDNEVFOzExMEEgMTE3MiAxMUMxO0M0RUU7MTEwQSAxMTcyIDExQzE7CitDNEVGO0M0RUY7MTEwQSAxMTcyIDExQzI7QzRFRjsxMTBBIDExNzIgMTFDMjsKK0M0RjA7QzRGMDsxMTBBIDExNzM7QzRGMDsxMTBBIDExNzM7CitDNEYxO0M0RjE7MTEwQSAxMTczIDExQTg7QzRGMTsxMTBBIDExNzMgMTFBODsKK0M0RjI7QzRGMjsxMTBBIDExNzMgMTFBOTtDNEYyOzExMEEgMTE3MyAxMUE5OworQzRGMztDNEYzOzExMEEgMTE3MyAxMUFBO0M0RjM7MTEwQSAxMTczIDExQUE7CitDNEY0O0M0RjQ7MTEwQSAxMTczIDExQUI7QzRGNDsxMTBBIDExNzMgMTFBQjsKK0M0RjU7QzRGNTsxMTBBIDExNzMgMTFBQztDNEY1OzExMEEgMTE3MyAxMUFDOworQzRGNjtDNEY2OzExMEEgMTE3MyAxMUFEO0M0RjY7MTEwQSAxMTczIDExQUQ7CitDNEY3O0M0Rjc7MTEwQSAxMTczIDExQUU7QzRGNzsxMTBBIDExNzMgMTFBRTsKK0M0Rjg7QzRGODsxMTBBIDExNzMgMTFBRjtDNEY4OzExMEEgMTE3MyAxMUFGOworQzRGOTtDNEY5OzExMEEgMTE3MyAxMUIwO0M0Rjk7MTEwQSAxMTczIDExQjA7CitDNEZBO0M0RkE7MTEwQSAxMTczIDExQjE7QzRGQTsxMTBBIDExNzMgMTFCMTsKK0M0RkI7QzRGQjsxMTBBIDExNzMgMTFCMjtDNEZCOzExMEEgMTE3MyAxMUIyOworQzRGQztDNEZDOzExMEEgMTE3MyAxMUIzO0M0RkM7MTEwQSAxMTczIDExQjM7CitDNEZEO0M0RkQ7MTEwQSAxMTczIDExQjQ7QzRGRDsxMTBBIDExNzMgMTFCNDsKK0M0RkU7QzRGRTsxMTBBIDExNzMgMTFCNTtDNEZFOzExMEEgMTE3MyAxMUI1OworQzRGRjtDNEZGOzExMEEgMTE3MyAxMUI2O0M0RkY7MTEwQSAxMTczIDExQjY7CitDNTAwO0M1MDA7MTEwQSAxMTczIDExQjc7QzUwMDsxMTBBIDExNzMgMTFCNzsKK0M1MDE7QzUwMTsxMTBBIDExNzMgMTFCODtDNTAxOzExMEEgMTE3MyAxMUI4OworQzUwMjtDNTAyOzExMEEgMTE3MyAxMUI5O0M1MDI7MTEwQSAxMTczIDExQjk7CitDNTAzO0M1MDM7MTEwQSAxMTczIDExQkE7QzUwMzsxMTBBIDExNzMgMTFCQTsKK0M1MDQ7QzUwNDsxMTBBIDExNzMgMTFCQjtDNTA0OzExMEEgMTE3MyAxMUJCOworQzUwNTtDNTA1OzExMEEgMTE3MyAxMUJDO0M1MDU7MTEwQSAxMTczIDExQkM7CitDNTA2O0M1MDY7MTEwQSAxMTczIDExQkQ7QzUwNjsxMTBBIDExNzMgMTFCRDsKK0M1MDc7QzUwNzsxMTBBIDExNzMgMTFCRTtDNTA3OzExMEEgMTE3MyAxMUJFOworQzUwODtDNTA4OzExMEEgMTE3MyAxMUJGO0M1MDg7MTEwQSAxMTczIDExQkY7CitDNTA5O0M1MDk7MTEwQSAxMTczIDExQzA7QzUwOTsxMTBBIDExNzMgMTFDMDsKK0M1MEE7QzUwQTsxMTBBIDExNzMgMTFDMTtDNTBBOzExMEEgMTE3MyAxMUMxOworQzUwQjtDNTBCOzExMEEgMTE3MyAxMUMyO0M1MEI7MTEwQSAxMTczIDExQzI7CitDNTBDO0M1MEM7MTEwQSAxMTc0O0M1MEM7MTEwQSAxMTc0OworQzUwRDtDNTBEOzExMEEgMTE3NCAxMUE4O0M1MEQ7MTEwQSAxMTc0IDExQTg7CitDNTBFO0M1MEU7MTEwQSAxMTc0IDExQTk7QzUwRTsxMTBBIDExNzQgMTFBOTsKK0M1MEY7QzUwRjsxMTBBIDExNzQgMTFBQTtDNTBGOzExMEEgMTE3NCAxMUFBOworQzUxMDtDNTEwOzExMEEgMTE3NCAxMUFCO0M1MTA7MTEwQSAxMTc0IDExQUI7CitDNTExO0M1MTE7MTEwQSAxMTc0IDExQUM7QzUxMTsxMTBBIDExNzQgMTFBQzsKK0M1MTI7QzUxMjsxMTBBIDExNzQgMTFBRDtDNTEyOzExMEEgMTE3NCAxMUFEOworQzUxMztDNTEzOzExMEEgMTE3NCAxMUFFO0M1MTM7MTEwQSAxMTc0IDExQUU7CitDNTE0O0M1MTQ7MTEwQSAxMTc0IDExQUY7QzUxNDsxMTBBIDExNzQgMTFBRjsKK0M1MTU7QzUxNTsxMTBBIDExNzQgMTFCMDtDNTE1OzExMEEgMTE3NCAxMUIwOworQzUxNjtDNTE2OzExMEEgMTE3NCAxMUIxO0M1MTY7MTEwQSAxMTc0IDExQjE7CitDNTE3O0M1MTc7MTEwQSAxMTc0IDExQjI7QzUxNzsxMTBBIDExNzQgMTFCMjsKK0M1MTg7QzUxODsxMTBBIDExNzQgMTFCMztDNTE4OzExMEEgMTE3NCAxMUIzOworQzUxOTtDNTE5OzExMEEgMTE3NCAxMUI0O0M1MTk7MTEwQSAxMTc0IDExQjQ7CitDNTFBO0M1MUE7MTEwQSAxMTc0IDExQjU7QzUxQTsxMTBBIDExNzQgMTFCNTsKK0M1MUI7QzUxQjsxMTBBIDExNzQgMTFCNjtDNTFCOzExMEEgMTE3NCAxMUI2OworQzUxQztDNTFDOzExMEEgMTE3NCAxMUI3O0M1MUM7MTEwQSAxMTc0IDExQjc7CitDNTFEO0M1MUQ7MTEwQSAxMTc0IDExQjg7QzUxRDsxMTBBIDExNzQgMTFCODsKK0M1MUU7QzUxRTsxMTBBIDExNzQgMTFCOTtDNTFFOzExMEEgMTE3NCAxMUI5OworQzUxRjtDNTFGOzExMEEgMTE3NCAxMUJBO0M1MUY7MTEwQSAxMTc0IDExQkE7CitDNTIwO0M1MjA7MTEwQSAxMTc0IDExQkI7QzUyMDsxMTBBIDExNzQgMTFCQjsKK0M1MjE7QzUyMTsxMTBBIDExNzQgMTFCQztDNTIxOzExMEEgMTE3NCAxMUJDOworQzUyMjtDNTIyOzExMEEgMTE3NCAxMUJEO0M1MjI7MTEwQSAxMTc0IDExQkQ7CitDNTIzO0M1MjM7MTEwQSAxMTc0IDExQkU7QzUyMzsxMTBBIDExNzQgMTFCRTsKK0M1MjQ7QzUyNDsxMTBBIDExNzQgMTFCRjtDNTI0OzExMEEgMTE3NCAxMUJGOworQzUyNTtDNTI1OzExMEEgMTE3NCAxMUMwO0M1MjU7MTEwQSAxMTc0IDExQzA7CitDNTI2O0M1MjY7MTEwQSAxMTc0IDExQzE7QzUyNjsxMTBBIDExNzQgMTFDMTsKK0M1Mjc7QzUyNzsxMTBBIDExNzQgMTFDMjtDNTI3OzExMEEgMTE3NCAxMUMyOworQzUyODtDNTI4OzExMEEgMTE3NTtDNTI4OzExMEEgMTE3NTsKK0M1Mjk7QzUyOTsxMTBBIDExNzUgMTFBODtDNTI5OzExMEEgMTE3NSAxMUE4OworQzUyQTtDNTJBOzExMEEgMTE3NSAxMUE5O0M1MkE7MTEwQSAxMTc1IDExQTk7CitDNTJCO0M1MkI7MTEwQSAxMTc1IDExQUE7QzUyQjsxMTBBIDExNzUgMTFBQTsKK0M1MkM7QzUyQzsxMTBBIDExNzUgMTFBQjtDNTJDOzExMEEgMTE3NSAxMUFCOworQzUyRDtDNTJEOzExMEEgMTE3NSAxMUFDO0M1MkQ7MTEwQSAxMTc1IDExQUM7CitDNTJFO0M1MkU7MTEwQSAxMTc1IDExQUQ7QzUyRTsxMTBBIDExNzUgMTFBRDsKK0M1MkY7QzUyRjsxMTBBIDExNzUgMTFBRTtDNTJGOzExMEEgMTE3NSAxMUFFOworQzUzMDtDNTMwOzExMEEgMTE3NSAxMUFGO0M1MzA7MTEwQSAxMTc1IDExQUY7CitDNTMxO0M1MzE7MTEwQSAxMTc1IDExQjA7QzUzMTsxMTBBIDExNzUgMTFCMDsKK0M1MzI7QzUzMjsxMTBBIDExNzUgMTFCMTtDNTMyOzExMEEgMTE3NSAxMUIxOworQzUzMztDNTMzOzExMEEgMTE3NSAxMUIyO0M1MzM7MTEwQSAxMTc1IDExQjI7CitDNTM0O0M1MzQ7MTEwQSAxMTc1IDExQjM7QzUzNDsxMTBBIDExNzUgMTFCMzsKK0M1MzU7QzUzNTsxMTBBIDExNzUgMTFCNDtDNTM1OzExMEEgMTE3NSAxMUI0OworQzUzNjtDNTM2OzExMEEgMTE3NSAxMUI1O0M1MzY7MTEwQSAxMTc1IDExQjU7CitDNTM3O0M1Mzc7MTEwQSAxMTc1IDExQjY7QzUzNzsxMTBBIDExNzUgMTFCNjsKK0M1Mzg7QzUzODsxMTBBIDExNzUgMTFCNztDNTM4OzExMEEgMTE3NSAxMUI3OworQzUzOTtDNTM5OzExMEEgMTE3NSAxMUI4O0M1Mzk7MTEwQSAxMTc1IDExQjg7CitDNTNBO0M1M0E7MTEwQSAxMTc1IDExQjk7QzUzQTsxMTBBIDExNzUgMTFCOTsKK0M1M0I7QzUzQjsxMTBBIDExNzUgMTFCQTtDNTNCOzExMEEgMTE3NSAxMUJBOworQzUzQztDNTNDOzExMEEgMTE3NSAxMUJCO0M1M0M7MTEwQSAxMTc1IDExQkI7CitDNTNEO0M1M0Q7MTEwQSAxMTc1IDExQkM7QzUzRDsxMTBBIDExNzUgMTFCQzsKK0M1M0U7QzUzRTsxMTBBIDExNzUgMTFCRDtDNTNFOzExMEEgMTE3NSAxMUJEOworQzUzRjtDNTNGOzExMEEgMTE3NSAxMUJFO0M1M0Y7MTEwQSAxMTc1IDExQkU7CitDNTQwO0M1NDA7MTEwQSAxMTc1IDExQkY7QzU0MDsxMTBBIDExNzUgMTFCRjsKK0M1NDE7QzU0MTsxMTBBIDExNzUgMTFDMDtDNTQxOzExMEEgMTE3NSAxMUMwOworQzU0MjtDNTQyOzExMEEgMTE3NSAxMUMxO0M1NDI7MTEwQSAxMTc1IDExQzE7CitDNTQzO0M1NDM7MTEwQSAxMTc1IDExQzI7QzU0MzsxMTBBIDExNzUgMTFDMjsKK0M1NDQ7QzU0NDsxMTBCIDExNjE7QzU0NDsxMTBCIDExNjE7CitDNTQ1O0M1NDU7MTEwQiAxMTYxIDExQTg7QzU0NTsxMTBCIDExNjEgMTFBODsKK0M1NDY7QzU0NjsxMTBCIDExNjEgMTFBOTtDNTQ2OzExMEIgMTE2MSAxMUE5OworQzU0NztDNTQ3OzExMEIgMTE2MSAxMUFBO0M1NDc7MTEwQiAxMTYxIDExQUE7CitDNTQ4O0M1NDg7MTEwQiAxMTYxIDExQUI7QzU0ODsxMTBCIDExNjEgMTFBQjsKK0M1NDk7QzU0OTsxMTBCIDExNjEgMTFBQztDNTQ5OzExMEIgMTE2MSAxMUFDOworQzU0QTtDNTRBOzExMEIgMTE2MSAxMUFEO0M1NEE7MTEwQiAxMTYxIDExQUQ7CitDNTRCO0M1NEI7MTEwQiAxMTYxIDExQUU7QzU0QjsxMTBCIDExNjEgMTFBRTsKK0M1NEM7QzU0QzsxMTBCIDExNjEgMTFBRjtDNTRDOzExMEIgMTE2MSAxMUFGOworQzU0RDtDNTREOzExMEIgMTE2MSAxMUIwO0M1NEQ7MTEwQiAxMTYxIDExQjA7CitDNTRFO0M1NEU7MTEwQiAxMTYxIDExQjE7QzU0RTsxMTBCIDExNjEgMTFCMTsKK0M1NEY7QzU0RjsxMTBCIDExNjEgMTFCMjtDNTRGOzExMEIgMTE2MSAxMUIyOworQzU1MDtDNTUwOzExMEIgMTE2MSAxMUIzO0M1NTA7MTEwQiAxMTYxIDExQjM7CitDNTUxO0M1NTE7MTEwQiAxMTYxIDExQjQ7QzU1MTsxMTBCIDExNjEgMTFCNDsKK0M1NTI7QzU1MjsxMTBCIDExNjEgMTFCNTtDNTUyOzExMEIgMTE2MSAxMUI1OworQzU1MztDNTUzOzExMEIgMTE2MSAxMUI2O0M1NTM7MTEwQiAxMTYxIDExQjY7CitDNTU0O0M1NTQ7MTEwQiAxMTYxIDExQjc7QzU1NDsxMTBCIDExNjEgMTFCNzsKK0M1NTU7QzU1NTsxMTBCIDExNjEgMTFCODtDNTU1OzExMEIgMTE2MSAxMUI4OworQzU1NjtDNTU2OzExMEIgMTE2MSAxMUI5O0M1NTY7MTEwQiAxMTYxIDExQjk7CitDNTU3O0M1NTc7MTEwQiAxMTYxIDExQkE7QzU1NzsxMTBCIDExNjEgMTFCQTsKK0M1NTg7QzU1ODsxMTBCIDExNjEgMTFCQjtDNTU4OzExMEIgMTE2MSAxMUJCOworQzU1OTtDNTU5OzExMEIgMTE2MSAxMUJDO0M1NTk7MTEwQiAxMTYxIDExQkM7CitDNTVBO0M1NUE7MTEwQiAxMTYxIDExQkQ7QzU1QTsxMTBCIDExNjEgMTFCRDsKK0M1NUI7QzU1QjsxMTBCIDExNjEgMTFCRTtDNTVCOzExMEIgMTE2MSAxMUJFOworQzU1QztDNTVDOzExMEIgMTE2MSAxMUJGO0M1NUM7MTEwQiAxMTYxIDExQkY7CitDNTVEO0M1NUQ7MTEwQiAxMTYxIDExQzA7QzU1RDsxMTBCIDExNjEgMTFDMDsKK0M1NUU7QzU1RTsxMTBCIDExNjEgMTFDMTtDNTVFOzExMEIgMTE2MSAxMUMxOworQzU1RjtDNTVGOzExMEIgMTE2MSAxMUMyO0M1NUY7MTEwQiAxMTYxIDExQzI7CitDNTYwO0M1NjA7MTEwQiAxMTYyO0M1NjA7MTEwQiAxMTYyOworQzU2MTtDNTYxOzExMEIgMTE2MiAxMUE4O0M1NjE7MTEwQiAxMTYyIDExQTg7CitDNTYyO0M1NjI7MTEwQiAxMTYyIDExQTk7QzU2MjsxMTBCIDExNjIgMTFBOTsKK0M1NjM7QzU2MzsxMTBCIDExNjIgMTFBQTtDNTYzOzExMEIgMTE2MiAxMUFBOworQzU2NDtDNTY0OzExMEIgMTE2MiAxMUFCO0M1NjQ7MTEwQiAxMTYyIDExQUI7CitDNTY1O0M1NjU7MTEwQiAxMTYyIDExQUM7QzU2NTsxMTBCIDExNjIgMTFBQzsKK0M1NjY7QzU2NjsxMTBCIDExNjIgMTFBRDtDNTY2OzExMEIgMTE2MiAxMUFEOworQzU2NztDNTY3OzExMEIgMTE2MiAxMUFFO0M1Njc7MTEwQiAxMTYyIDExQUU7CitDNTY4O0M1Njg7MTEwQiAxMTYyIDExQUY7QzU2ODsxMTBCIDExNjIgMTFBRjsKK0M1Njk7QzU2OTsxMTBCIDExNjIgMTFCMDtDNTY5OzExMEIgMTE2MiAxMUIwOworQzU2QTtDNTZBOzExMEIgMTE2MiAxMUIxO0M1NkE7MTEwQiAxMTYyIDExQjE7CitDNTZCO0M1NkI7MTEwQiAxMTYyIDExQjI7QzU2QjsxMTBCIDExNjIgMTFCMjsKK0M1NkM7QzU2QzsxMTBCIDExNjIgMTFCMztDNTZDOzExMEIgMTE2MiAxMUIzOworQzU2RDtDNTZEOzExMEIgMTE2MiAxMUI0O0M1NkQ7MTEwQiAxMTYyIDExQjQ7CitDNTZFO0M1NkU7MTEwQiAxMTYyIDExQjU7QzU2RTsxMTBCIDExNjIgMTFCNTsKK0M1NkY7QzU2RjsxMTBCIDExNjIgMTFCNjtDNTZGOzExMEIgMTE2MiAxMUI2OworQzU3MDtDNTcwOzExMEIgMTE2MiAxMUI3O0M1NzA7MTEwQiAxMTYyIDExQjc7CitDNTcxO0M1NzE7MTEwQiAxMTYyIDExQjg7QzU3MTsxMTBCIDExNjIgMTFCODsKK0M1NzI7QzU3MjsxMTBCIDExNjIgMTFCOTtDNTcyOzExMEIgMTE2MiAxMUI5OworQzU3MztDNTczOzExMEIgMTE2MiAxMUJBO0M1NzM7MTEwQiAxMTYyIDExQkE7CitDNTc0O0M1NzQ7MTEwQiAxMTYyIDExQkI7QzU3NDsxMTBCIDExNjIgMTFCQjsKK0M1NzU7QzU3NTsxMTBCIDExNjIgMTFCQztDNTc1OzExMEIgMTE2MiAxMUJDOworQzU3NjtDNTc2OzExMEIgMTE2MiAxMUJEO0M1NzY7MTEwQiAxMTYyIDExQkQ7CitDNTc3O0M1Nzc7MTEwQiAxMTYyIDExQkU7QzU3NzsxMTBCIDExNjIgMTFCRTsKK0M1Nzg7QzU3ODsxMTBCIDExNjIgMTFCRjtDNTc4OzExMEIgMTE2MiAxMUJGOworQzU3OTtDNTc5OzExMEIgMTE2MiAxMUMwO0M1Nzk7MTEwQiAxMTYyIDExQzA7CitDNTdBO0M1N0E7MTEwQiAxMTYyIDExQzE7QzU3QTsxMTBCIDExNjIgMTFDMTsKK0M1N0I7QzU3QjsxMTBCIDExNjIgMTFDMjtDNTdCOzExMEIgMTE2MiAxMUMyOworQzU3QztDNTdDOzExMEIgMTE2MztDNTdDOzExMEIgMTE2MzsKK0M1N0Q7QzU3RDsxMTBCIDExNjMgMTFBODtDNTdEOzExMEIgMTE2MyAxMUE4OworQzU3RTtDNTdFOzExMEIgMTE2MyAxMUE5O0M1N0U7MTEwQiAxMTYzIDExQTk7CitDNTdGO0M1N0Y7MTEwQiAxMTYzIDExQUE7QzU3RjsxMTBCIDExNjMgMTFBQTsKK0M1ODA7QzU4MDsxMTBCIDExNjMgMTFBQjtDNTgwOzExMEIgMTE2MyAxMUFCOworQzU4MTtDNTgxOzExMEIgMTE2MyAxMUFDO0M1ODE7MTEwQiAxMTYzIDExQUM7CitDNTgyO0M1ODI7MTEwQiAxMTYzIDExQUQ7QzU4MjsxMTBCIDExNjMgMTFBRDsKK0M1ODM7QzU4MzsxMTBCIDExNjMgMTFBRTtDNTgzOzExMEIgMTE2MyAxMUFFOworQzU4NDtDNTg0OzExMEIgMTE2MyAxMUFGO0M1ODQ7MTEwQiAxMTYzIDExQUY7CitDNTg1O0M1ODU7MTEwQiAxMTYzIDExQjA7QzU4NTsxMTBCIDExNjMgMTFCMDsKK0M1ODY7QzU4NjsxMTBCIDExNjMgMTFCMTtDNTg2OzExMEIgMTE2MyAxMUIxOworQzU4NztDNTg3OzExMEIgMTE2MyAxMUIyO0M1ODc7MTEwQiAxMTYzIDExQjI7CitDNTg4O0M1ODg7MTEwQiAxMTYzIDExQjM7QzU4ODsxMTBCIDExNjMgMTFCMzsKK0M1ODk7QzU4OTsxMTBCIDExNjMgMTFCNDtDNTg5OzExMEIgMTE2MyAxMUI0OworQzU4QTtDNThBOzExMEIgMTE2MyAxMUI1O0M1OEE7MTEwQiAxMTYzIDExQjU7CitDNThCO0M1OEI7MTEwQiAxMTYzIDExQjY7QzU4QjsxMTBCIDExNjMgMTFCNjsKK0M1OEM7QzU4QzsxMTBCIDExNjMgMTFCNztDNThDOzExMEIgMTE2MyAxMUI3OworQzU4RDtDNThEOzExMEIgMTE2MyAxMUI4O0M1OEQ7MTEwQiAxMTYzIDExQjg7CitDNThFO0M1OEU7MTEwQiAxMTYzIDExQjk7QzU4RTsxMTBCIDExNjMgMTFCOTsKK0M1OEY7QzU4RjsxMTBCIDExNjMgMTFCQTtDNThGOzExMEIgMTE2MyAxMUJBOworQzU5MDtDNTkwOzExMEIgMTE2MyAxMUJCO0M1OTA7MTEwQiAxMTYzIDExQkI7CitDNTkxO0M1OTE7MTEwQiAxMTYzIDExQkM7QzU5MTsxMTBCIDExNjMgMTFCQzsKK0M1OTI7QzU5MjsxMTBCIDExNjMgMTFCRDtDNTkyOzExMEIgMTE2MyAxMUJEOworQzU5MztDNTkzOzExMEIgMTE2MyAxMUJFO0M1OTM7MTEwQiAxMTYzIDExQkU7CitDNTk0O0M1OTQ7MTEwQiAxMTYzIDExQkY7QzU5NDsxMTBCIDExNjMgMTFCRjsKK0M1OTU7QzU5NTsxMTBCIDExNjMgMTFDMDtDNTk1OzExMEIgMTE2MyAxMUMwOworQzU5NjtDNTk2OzExMEIgMTE2MyAxMUMxO0M1OTY7MTEwQiAxMTYzIDExQzE7CitDNTk3O0M1OTc7MTEwQiAxMTYzIDExQzI7QzU5NzsxMTBCIDExNjMgMTFDMjsKK0M1OTg7QzU5ODsxMTBCIDExNjQ7QzU5ODsxMTBCIDExNjQ7CitDNTk5O0M1OTk7MTEwQiAxMTY0IDExQTg7QzU5OTsxMTBCIDExNjQgMTFBODsKK0M1OUE7QzU5QTsxMTBCIDExNjQgMTFBOTtDNTlBOzExMEIgMTE2NCAxMUE5OworQzU5QjtDNTlCOzExMEIgMTE2NCAxMUFBO0M1OUI7MTEwQiAxMTY0IDExQUE7CitDNTlDO0M1OUM7MTEwQiAxMTY0IDExQUI7QzU5QzsxMTBCIDExNjQgMTFBQjsKK0M1OUQ7QzU5RDsxMTBCIDExNjQgMTFBQztDNTlEOzExMEIgMTE2NCAxMUFDOworQzU5RTtDNTlFOzExMEIgMTE2NCAxMUFEO0M1OUU7MTEwQiAxMTY0IDExQUQ7CitDNTlGO0M1OUY7MTEwQiAxMTY0IDExQUU7QzU5RjsxMTBCIDExNjQgMTFBRTsKK0M1QTA7QzVBMDsxMTBCIDExNjQgMTFBRjtDNUEwOzExMEIgMTE2NCAxMUFGOworQzVBMTtDNUExOzExMEIgMTE2NCAxMUIwO0M1QTE7MTEwQiAxMTY0IDExQjA7CitDNUEyO0M1QTI7MTEwQiAxMTY0IDExQjE7QzVBMjsxMTBCIDExNjQgMTFCMTsKK0M1QTM7QzVBMzsxMTBCIDExNjQgMTFCMjtDNUEzOzExMEIgMTE2NCAxMUIyOworQzVBNDtDNUE0OzExMEIgMTE2NCAxMUIzO0M1QTQ7MTEwQiAxMTY0IDExQjM7CitDNUE1O0M1QTU7MTEwQiAxMTY0IDExQjQ7QzVBNTsxMTBCIDExNjQgMTFCNDsKK0M1QTY7QzVBNjsxMTBCIDExNjQgMTFCNTtDNUE2OzExMEIgMTE2NCAxMUI1OworQzVBNztDNUE3OzExMEIgMTE2NCAxMUI2O0M1QTc7MTEwQiAxMTY0IDExQjY7CitDNUE4O0M1QTg7MTEwQiAxMTY0IDExQjc7QzVBODsxMTBCIDExNjQgMTFCNzsKK0M1QTk7QzVBOTsxMTBCIDExNjQgMTFCODtDNUE5OzExMEIgMTE2NCAxMUI4OworQzVBQTtDNUFBOzExMEIgMTE2NCAxMUI5O0M1QUE7MTEwQiAxMTY0IDExQjk7CitDNUFCO0M1QUI7MTEwQiAxMTY0IDExQkE7QzVBQjsxMTBCIDExNjQgMTFCQTsKK0M1QUM7QzVBQzsxMTBCIDExNjQgMTFCQjtDNUFDOzExMEIgMTE2NCAxMUJCOworQzVBRDtDNUFEOzExMEIgMTE2NCAxMUJDO0M1QUQ7MTEwQiAxMTY0IDExQkM7CitDNUFFO0M1QUU7MTEwQiAxMTY0IDExQkQ7QzVBRTsxMTBCIDExNjQgMTFCRDsKK0M1QUY7QzVBRjsxMTBCIDExNjQgMTFCRTtDNUFGOzExMEIgMTE2NCAxMUJFOworQzVCMDtDNUIwOzExMEIgMTE2NCAxMUJGO0M1QjA7MTEwQiAxMTY0IDExQkY7CitDNUIxO0M1QjE7MTEwQiAxMTY0IDExQzA7QzVCMTsxMTBCIDExNjQgMTFDMDsKK0M1QjI7QzVCMjsxMTBCIDExNjQgMTFDMTtDNUIyOzExMEIgMTE2NCAxMUMxOworQzVCMztDNUIzOzExMEIgMTE2NCAxMUMyO0M1QjM7MTEwQiAxMTY0IDExQzI7CitDNUI0O0M1QjQ7MTEwQiAxMTY1O0M1QjQ7MTEwQiAxMTY1OworQzVCNTtDNUI1OzExMEIgMTE2NSAxMUE4O0M1QjU7MTEwQiAxMTY1IDExQTg7CitDNUI2O0M1QjY7MTEwQiAxMTY1IDExQTk7QzVCNjsxMTBCIDExNjUgMTFBOTsKK0M1Qjc7QzVCNzsxMTBCIDExNjUgMTFBQTtDNUI3OzExMEIgMTE2NSAxMUFBOworQzVCODtDNUI4OzExMEIgMTE2NSAxMUFCO0M1Qjg7MTEwQiAxMTY1IDExQUI7CitDNUI5O0M1Qjk7MTEwQiAxMTY1IDExQUM7QzVCOTsxMTBCIDExNjUgMTFBQzsKK0M1QkE7QzVCQTsxMTBCIDExNjUgMTFBRDtDNUJBOzExMEIgMTE2NSAxMUFEOworQzVCQjtDNUJCOzExMEIgMTE2NSAxMUFFO0M1QkI7MTEwQiAxMTY1IDExQUU7CitDNUJDO0M1QkM7MTEwQiAxMTY1IDExQUY7QzVCQzsxMTBCIDExNjUgMTFBRjsKK0M1QkQ7QzVCRDsxMTBCIDExNjUgMTFCMDtDNUJEOzExMEIgMTE2NSAxMUIwOworQzVCRTtDNUJFOzExMEIgMTE2NSAxMUIxO0M1QkU7MTEwQiAxMTY1IDExQjE7CitDNUJGO0M1QkY7MTEwQiAxMTY1IDExQjI7QzVCRjsxMTBCIDExNjUgMTFCMjsKK0M1QzA7QzVDMDsxMTBCIDExNjUgMTFCMztDNUMwOzExMEIgMTE2NSAxMUIzOworQzVDMTtDNUMxOzExMEIgMTE2NSAxMUI0O0M1QzE7MTEwQiAxMTY1IDExQjQ7CitDNUMyO0M1QzI7MTEwQiAxMTY1IDExQjU7QzVDMjsxMTBCIDExNjUgMTFCNTsKK0M1QzM7QzVDMzsxMTBCIDExNjUgMTFCNjtDNUMzOzExMEIgMTE2NSAxMUI2OworQzVDNDtDNUM0OzExMEIgMTE2NSAxMUI3O0M1QzQ7MTEwQiAxMTY1IDExQjc7CitDNUM1O0M1QzU7MTEwQiAxMTY1IDExQjg7QzVDNTsxMTBCIDExNjUgMTFCODsKK0M1QzY7QzVDNjsxMTBCIDExNjUgMTFCOTtDNUM2OzExMEIgMTE2NSAxMUI5OworQzVDNztDNUM3OzExMEIgMTE2NSAxMUJBO0M1Qzc7MTEwQiAxMTY1IDExQkE7CitDNUM4O0M1Qzg7MTEwQiAxMTY1IDExQkI7QzVDODsxMTBCIDExNjUgMTFCQjsKK0M1Qzk7QzVDOTsxMTBCIDExNjUgMTFCQztDNUM5OzExMEIgMTE2NSAxMUJDOworQzVDQTtDNUNBOzExMEIgMTE2NSAxMUJEO0M1Q0E7MTEwQiAxMTY1IDExQkQ7CitDNUNCO0M1Q0I7MTEwQiAxMTY1IDExQkU7QzVDQjsxMTBCIDExNjUgMTFCRTsKK0M1Q0M7QzVDQzsxMTBCIDExNjUgMTFCRjtDNUNDOzExMEIgMTE2NSAxMUJGOworQzVDRDtDNUNEOzExMEIgMTE2NSAxMUMwO0M1Q0Q7MTEwQiAxMTY1IDExQzA7CitDNUNFO0M1Q0U7MTEwQiAxMTY1IDExQzE7QzVDRTsxMTBCIDExNjUgMTFDMTsKK0M1Q0Y7QzVDRjsxMTBCIDExNjUgMTFDMjtDNUNGOzExMEIgMTE2NSAxMUMyOworQzVEMDtDNUQwOzExMEIgMTE2NjtDNUQwOzExMEIgMTE2NjsKK0M1RDE7QzVEMTsxMTBCIDExNjYgMTFBODtDNUQxOzExMEIgMTE2NiAxMUE4OworQzVEMjtDNUQyOzExMEIgMTE2NiAxMUE5O0M1RDI7MTEwQiAxMTY2IDExQTk7CitDNUQzO0M1RDM7MTEwQiAxMTY2IDExQUE7QzVEMzsxMTBCIDExNjYgMTFBQTsKK0M1RDQ7QzVENDsxMTBCIDExNjYgMTFBQjtDNUQ0OzExMEIgMTE2NiAxMUFCOworQzVENTtDNUQ1OzExMEIgMTE2NiAxMUFDO0M1RDU7MTEwQiAxMTY2IDExQUM7CitDNUQ2O0M1RDY7MTEwQiAxMTY2IDExQUQ7QzVENjsxMTBCIDExNjYgMTFBRDsKK0M1RDc7QzVENzsxMTBCIDExNjYgMTFBRTtDNUQ3OzExMEIgMTE2NiAxMUFFOworQzVEODtDNUQ4OzExMEIgMTE2NiAxMUFGO0M1RDg7MTEwQiAxMTY2IDExQUY7CitDNUQ5O0M1RDk7MTEwQiAxMTY2IDExQjA7QzVEOTsxMTBCIDExNjYgMTFCMDsKK0M1REE7QzVEQTsxMTBCIDExNjYgMTFCMTtDNURBOzExMEIgMTE2NiAxMUIxOworQzVEQjtDNURCOzExMEIgMTE2NiAxMUIyO0M1REI7MTEwQiAxMTY2IDExQjI7CitDNURDO0M1REM7MTEwQiAxMTY2IDExQjM7QzVEQzsxMTBCIDExNjYgMTFCMzsKK0M1REQ7QzVERDsxMTBCIDExNjYgMTFCNDtDNUREOzExMEIgMTE2NiAxMUI0OworQzVERTtDNURFOzExMEIgMTE2NiAxMUI1O0M1REU7MTEwQiAxMTY2IDExQjU7CitDNURGO0M1REY7MTEwQiAxMTY2IDExQjY7QzVERjsxMTBCIDExNjYgMTFCNjsKK0M1RTA7QzVFMDsxMTBCIDExNjYgMTFCNztDNUUwOzExMEIgMTE2NiAxMUI3OworQzVFMTtDNUUxOzExMEIgMTE2NiAxMUI4O0M1RTE7MTEwQiAxMTY2IDExQjg7CitDNUUyO0M1RTI7MTEwQiAxMTY2IDExQjk7QzVFMjsxMTBCIDExNjYgMTFCOTsKK0M1RTM7QzVFMzsxMTBCIDExNjYgMTFCQTtDNUUzOzExMEIgMTE2NiAxMUJBOworQzVFNDtDNUU0OzExMEIgMTE2NiAxMUJCO0M1RTQ7MTEwQiAxMTY2IDExQkI7CitDNUU1O0M1RTU7MTEwQiAxMTY2IDExQkM7QzVFNTsxMTBCIDExNjYgMTFCQzsKK0M1RTY7QzVFNjsxMTBCIDExNjYgMTFCRDtDNUU2OzExMEIgMTE2NiAxMUJEOworQzVFNztDNUU3OzExMEIgMTE2NiAxMUJFO0M1RTc7MTEwQiAxMTY2IDExQkU7CitDNUU4O0M1RTg7MTEwQiAxMTY2IDExQkY7QzVFODsxMTBCIDExNjYgMTFCRjsKK0M1RTk7QzVFOTsxMTBCIDExNjYgMTFDMDtDNUU5OzExMEIgMTE2NiAxMUMwOworQzVFQTtDNUVBOzExMEIgMTE2NiAxMUMxO0M1RUE7MTEwQiAxMTY2IDExQzE7CitDNUVCO0M1RUI7MTEwQiAxMTY2IDExQzI7QzVFQjsxMTBCIDExNjYgMTFDMjsKK0M1RUM7QzVFQzsxMTBCIDExNjc7QzVFQzsxMTBCIDExNjc7CitDNUVEO0M1RUQ7MTEwQiAxMTY3IDExQTg7QzVFRDsxMTBCIDExNjcgMTFBODsKK0M1RUU7QzVFRTsxMTBCIDExNjcgMTFBOTtDNUVFOzExMEIgMTE2NyAxMUE5OworQzVFRjtDNUVGOzExMEIgMTE2NyAxMUFBO0M1RUY7MTEwQiAxMTY3IDExQUE7CitDNUYwO0M1RjA7MTEwQiAxMTY3IDExQUI7QzVGMDsxMTBCIDExNjcgMTFBQjsKK0M1RjE7QzVGMTsxMTBCIDExNjcgMTFBQztDNUYxOzExMEIgMTE2NyAxMUFDOworQzVGMjtDNUYyOzExMEIgMTE2NyAxMUFEO0M1RjI7MTEwQiAxMTY3IDExQUQ7CitDNUYzO0M1RjM7MTEwQiAxMTY3IDExQUU7QzVGMzsxMTBCIDExNjcgMTFBRTsKK0M1RjQ7QzVGNDsxMTBCIDExNjcgMTFBRjtDNUY0OzExMEIgMTE2NyAxMUFGOworQzVGNTtDNUY1OzExMEIgMTE2NyAxMUIwO0M1RjU7MTEwQiAxMTY3IDExQjA7CitDNUY2O0M1RjY7MTEwQiAxMTY3IDExQjE7QzVGNjsxMTBCIDExNjcgMTFCMTsKK0M1Rjc7QzVGNzsxMTBCIDExNjcgMTFCMjtDNUY3OzExMEIgMTE2NyAxMUIyOworQzVGODtDNUY4OzExMEIgMTE2NyAxMUIzO0M1Rjg7MTEwQiAxMTY3IDExQjM7CitDNUY5O0M1Rjk7MTEwQiAxMTY3IDExQjQ7QzVGOTsxMTBCIDExNjcgMTFCNDsKK0M1RkE7QzVGQTsxMTBCIDExNjcgMTFCNTtDNUZBOzExMEIgMTE2NyAxMUI1OworQzVGQjtDNUZCOzExMEIgMTE2NyAxMUI2O0M1RkI7MTEwQiAxMTY3IDExQjY7CitDNUZDO0M1RkM7MTEwQiAxMTY3IDExQjc7QzVGQzsxMTBCIDExNjcgMTFCNzsKK0M1RkQ7QzVGRDsxMTBCIDExNjcgMTFCODtDNUZEOzExMEIgMTE2NyAxMUI4OworQzVGRTtDNUZFOzExMEIgMTE2NyAxMUI5O0M1RkU7MTEwQiAxMTY3IDExQjk7CitDNUZGO0M1RkY7MTEwQiAxMTY3IDExQkE7QzVGRjsxMTBCIDExNjcgMTFCQTsKK0M2MDA7QzYwMDsxMTBCIDExNjcgMTFCQjtDNjAwOzExMEIgMTE2NyAxMUJCOworQzYwMTtDNjAxOzExMEIgMTE2NyAxMUJDO0M2MDE7MTEwQiAxMTY3IDExQkM7CitDNjAyO0M2MDI7MTEwQiAxMTY3IDExQkQ7QzYwMjsxMTBCIDExNjcgMTFCRDsKK0M2MDM7QzYwMzsxMTBCIDExNjcgMTFCRTtDNjAzOzExMEIgMTE2NyAxMUJFOworQzYwNDtDNjA0OzExMEIgMTE2NyAxMUJGO0M2MDQ7MTEwQiAxMTY3IDExQkY7CitDNjA1O0M2MDU7MTEwQiAxMTY3IDExQzA7QzYwNTsxMTBCIDExNjcgMTFDMDsKK0M2MDY7QzYwNjsxMTBCIDExNjcgMTFDMTtDNjA2OzExMEIgMTE2NyAxMUMxOworQzYwNztDNjA3OzExMEIgMTE2NyAxMUMyO0M2MDc7MTEwQiAxMTY3IDExQzI7CitDNjA4O0M2MDg7MTEwQiAxMTY4O0M2MDg7MTEwQiAxMTY4OworQzYwOTtDNjA5OzExMEIgMTE2OCAxMUE4O0M2MDk7MTEwQiAxMTY4IDExQTg7CitDNjBBO0M2MEE7MTEwQiAxMTY4IDExQTk7QzYwQTsxMTBCIDExNjggMTFBOTsKK0M2MEI7QzYwQjsxMTBCIDExNjggMTFBQTtDNjBCOzExMEIgMTE2OCAxMUFBOworQzYwQztDNjBDOzExMEIgMTE2OCAxMUFCO0M2MEM7MTEwQiAxMTY4IDExQUI7CitDNjBEO0M2MEQ7MTEwQiAxMTY4IDExQUM7QzYwRDsxMTBCIDExNjggMTFBQzsKK0M2MEU7QzYwRTsxMTBCIDExNjggMTFBRDtDNjBFOzExMEIgMTE2OCAxMUFEOworQzYwRjtDNjBGOzExMEIgMTE2OCAxMUFFO0M2MEY7MTEwQiAxMTY4IDExQUU7CitDNjEwO0M2MTA7MTEwQiAxMTY4IDExQUY7QzYxMDsxMTBCIDExNjggMTFBRjsKK0M2MTE7QzYxMTsxMTBCIDExNjggMTFCMDtDNjExOzExMEIgMTE2OCAxMUIwOworQzYxMjtDNjEyOzExMEIgMTE2OCAxMUIxO0M2MTI7MTEwQiAxMTY4IDExQjE7CitDNjEzO0M2MTM7MTEwQiAxMTY4IDExQjI7QzYxMzsxMTBCIDExNjggMTFCMjsKK0M2MTQ7QzYxNDsxMTBCIDExNjggMTFCMztDNjE0OzExMEIgMTE2OCAxMUIzOworQzYxNTtDNjE1OzExMEIgMTE2OCAxMUI0O0M2MTU7MTEwQiAxMTY4IDExQjQ7CitDNjE2O0M2MTY7MTEwQiAxMTY4IDExQjU7QzYxNjsxMTBCIDExNjggMTFCNTsKK0M2MTc7QzYxNzsxMTBCIDExNjggMTFCNjtDNjE3OzExMEIgMTE2OCAxMUI2OworQzYxODtDNjE4OzExMEIgMTE2OCAxMUI3O0M2MTg7MTEwQiAxMTY4IDExQjc7CitDNjE5O0M2MTk7MTEwQiAxMTY4IDExQjg7QzYxOTsxMTBCIDExNjggMTFCODsKK0M2MUE7QzYxQTsxMTBCIDExNjggMTFCOTtDNjFBOzExMEIgMTE2OCAxMUI5OworQzYxQjtDNjFCOzExMEIgMTE2OCAxMUJBO0M2MUI7MTEwQiAxMTY4IDExQkE7CitDNjFDO0M2MUM7MTEwQiAxMTY4IDExQkI7QzYxQzsxMTBCIDExNjggMTFCQjsKK0M2MUQ7QzYxRDsxMTBCIDExNjggMTFCQztDNjFEOzExMEIgMTE2OCAxMUJDOworQzYxRTtDNjFFOzExMEIgMTE2OCAxMUJEO0M2MUU7MTEwQiAxMTY4IDExQkQ7CitDNjFGO0M2MUY7MTEwQiAxMTY4IDExQkU7QzYxRjsxMTBCIDExNjggMTFCRTsKK0M2MjA7QzYyMDsxMTBCIDExNjggMTFCRjtDNjIwOzExMEIgMTE2OCAxMUJGOworQzYyMTtDNjIxOzExMEIgMTE2OCAxMUMwO0M2MjE7MTEwQiAxMTY4IDExQzA7CitDNjIyO0M2MjI7MTEwQiAxMTY4IDExQzE7QzYyMjsxMTBCIDExNjggMTFDMTsKK0M2MjM7QzYyMzsxMTBCIDExNjggMTFDMjtDNjIzOzExMEIgMTE2OCAxMUMyOworQzYyNDtDNjI0OzExMEIgMTE2OTtDNjI0OzExMEIgMTE2OTsKK0M2MjU7QzYyNTsxMTBCIDExNjkgMTFBODtDNjI1OzExMEIgMTE2OSAxMUE4OworQzYyNjtDNjI2OzExMEIgMTE2OSAxMUE5O0M2MjY7MTEwQiAxMTY5IDExQTk7CitDNjI3O0M2Mjc7MTEwQiAxMTY5IDExQUE7QzYyNzsxMTBCIDExNjkgMTFBQTsKK0M2Mjg7QzYyODsxMTBCIDExNjkgMTFBQjtDNjI4OzExMEIgMTE2OSAxMUFCOworQzYyOTtDNjI5OzExMEIgMTE2OSAxMUFDO0M2Mjk7MTEwQiAxMTY5IDExQUM7CitDNjJBO0M2MkE7MTEwQiAxMTY5IDExQUQ7QzYyQTsxMTBCIDExNjkgMTFBRDsKK0M2MkI7QzYyQjsxMTBCIDExNjkgMTFBRTtDNjJCOzExMEIgMTE2OSAxMUFFOworQzYyQztDNjJDOzExMEIgMTE2OSAxMUFGO0M2MkM7MTEwQiAxMTY5IDExQUY7CitDNjJEO0M2MkQ7MTEwQiAxMTY5IDExQjA7QzYyRDsxMTBCIDExNjkgMTFCMDsKK0M2MkU7QzYyRTsxMTBCIDExNjkgMTFCMTtDNjJFOzExMEIgMTE2OSAxMUIxOworQzYyRjtDNjJGOzExMEIgMTE2OSAxMUIyO0M2MkY7MTEwQiAxMTY5IDExQjI7CitDNjMwO0M2MzA7MTEwQiAxMTY5IDExQjM7QzYzMDsxMTBCIDExNjkgMTFCMzsKK0M2MzE7QzYzMTsxMTBCIDExNjkgMTFCNDtDNjMxOzExMEIgMTE2OSAxMUI0OworQzYzMjtDNjMyOzExMEIgMTE2OSAxMUI1O0M2MzI7MTEwQiAxMTY5IDExQjU7CitDNjMzO0M2MzM7MTEwQiAxMTY5IDExQjY7QzYzMzsxMTBCIDExNjkgMTFCNjsKK0M2MzQ7QzYzNDsxMTBCIDExNjkgMTFCNztDNjM0OzExMEIgMTE2OSAxMUI3OworQzYzNTtDNjM1OzExMEIgMTE2OSAxMUI4O0M2MzU7MTEwQiAxMTY5IDExQjg7CitDNjM2O0M2MzY7MTEwQiAxMTY5IDExQjk7QzYzNjsxMTBCIDExNjkgMTFCOTsKK0M2Mzc7QzYzNzsxMTBCIDExNjkgMTFCQTtDNjM3OzExMEIgMTE2OSAxMUJBOworQzYzODtDNjM4OzExMEIgMTE2OSAxMUJCO0M2Mzg7MTEwQiAxMTY5IDExQkI7CitDNjM5O0M2Mzk7MTEwQiAxMTY5IDExQkM7QzYzOTsxMTBCIDExNjkgMTFCQzsKK0M2M0E7QzYzQTsxMTBCIDExNjkgMTFCRDtDNjNBOzExMEIgMTE2OSAxMUJEOworQzYzQjtDNjNCOzExMEIgMTE2OSAxMUJFO0M2M0I7MTEwQiAxMTY5IDExQkU7CitDNjNDO0M2M0M7MTEwQiAxMTY5IDExQkY7QzYzQzsxMTBCIDExNjkgMTFCRjsKK0M2M0Q7QzYzRDsxMTBCIDExNjkgMTFDMDtDNjNEOzExMEIgMTE2OSAxMUMwOworQzYzRTtDNjNFOzExMEIgMTE2OSAxMUMxO0M2M0U7MTEwQiAxMTY5IDExQzE7CitDNjNGO0M2M0Y7MTEwQiAxMTY5IDExQzI7QzYzRjsxMTBCIDExNjkgMTFDMjsKK0M2NDA7QzY0MDsxMTBCIDExNkE7QzY0MDsxMTBCIDExNkE7CitDNjQxO0M2NDE7MTEwQiAxMTZBIDExQTg7QzY0MTsxMTBCIDExNkEgMTFBODsKK0M2NDI7QzY0MjsxMTBCIDExNkEgMTFBOTtDNjQyOzExMEIgMTE2QSAxMUE5OworQzY0MztDNjQzOzExMEIgMTE2QSAxMUFBO0M2NDM7MTEwQiAxMTZBIDExQUE7CitDNjQ0O0M2NDQ7MTEwQiAxMTZBIDExQUI7QzY0NDsxMTBCIDExNkEgMTFBQjsKK0M2NDU7QzY0NTsxMTBCIDExNkEgMTFBQztDNjQ1OzExMEIgMTE2QSAxMUFDOworQzY0NjtDNjQ2OzExMEIgMTE2QSAxMUFEO0M2NDY7MTEwQiAxMTZBIDExQUQ7CitDNjQ3O0M2NDc7MTEwQiAxMTZBIDExQUU7QzY0NzsxMTBCIDExNkEgMTFBRTsKK0M2NDg7QzY0ODsxMTBCIDExNkEgMTFBRjtDNjQ4OzExMEIgMTE2QSAxMUFGOworQzY0OTtDNjQ5OzExMEIgMTE2QSAxMUIwO0M2NDk7MTEwQiAxMTZBIDExQjA7CitDNjRBO0M2NEE7MTEwQiAxMTZBIDExQjE7QzY0QTsxMTBCIDExNkEgMTFCMTsKK0M2NEI7QzY0QjsxMTBCIDExNkEgMTFCMjtDNjRCOzExMEIgMTE2QSAxMUIyOworQzY0QztDNjRDOzExMEIgMTE2QSAxMUIzO0M2NEM7MTEwQiAxMTZBIDExQjM7CitDNjREO0M2NEQ7MTEwQiAxMTZBIDExQjQ7QzY0RDsxMTBCIDExNkEgMTFCNDsKK0M2NEU7QzY0RTsxMTBCIDExNkEgMTFCNTtDNjRFOzExMEIgMTE2QSAxMUI1OworQzY0RjtDNjRGOzExMEIgMTE2QSAxMUI2O0M2NEY7MTEwQiAxMTZBIDExQjY7CitDNjUwO0M2NTA7MTEwQiAxMTZBIDExQjc7QzY1MDsxMTBCIDExNkEgMTFCNzsKK0M2NTE7QzY1MTsxMTBCIDExNkEgMTFCODtDNjUxOzExMEIgMTE2QSAxMUI4OworQzY1MjtDNjUyOzExMEIgMTE2QSAxMUI5O0M2NTI7MTEwQiAxMTZBIDExQjk7CitDNjUzO0M2NTM7MTEwQiAxMTZBIDExQkE7QzY1MzsxMTBCIDExNkEgMTFCQTsKK0M2NTQ7QzY1NDsxMTBCIDExNkEgMTFCQjtDNjU0OzExMEIgMTE2QSAxMUJCOworQzY1NTtDNjU1OzExMEIgMTE2QSAxMUJDO0M2NTU7MTEwQiAxMTZBIDExQkM7CitDNjU2O0M2NTY7MTEwQiAxMTZBIDExQkQ7QzY1NjsxMTBCIDExNkEgMTFCRDsKK0M2NTc7QzY1NzsxMTBCIDExNkEgMTFCRTtDNjU3OzExMEIgMTE2QSAxMUJFOworQzY1ODtDNjU4OzExMEIgMTE2QSAxMUJGO0M2NTg7MTEwQiAxMTZBIDExQkY7CitDNjU5O0M2NTk7MTEwQiAxMTZBIDExQzA7QzY1OTsxMTBCIDExNkEgMTFDMDsKK0M2NUE7QzY1QTsxMTBCIDExNkEgMTFDMTtDNjVBOzExMEIgMTE2QSAxMUMxOworQzY1QjtDNjVCOzExMEIgMTE2QSAxMUMyO0M2NUI7MTEwQiAxMTZBIDExQzI7CitDNjVDO0M2NUM7MTEwQiAxMTZCO0M2NUM7MTEwQiAxMTZCOworQzY1RDtDNjVEOzExMEIgMTE2QiAxMUE4O0M2NUQ7MTEwQiAxMTZCIDExQTg7CitDNjVFO0M2NUU7MTEwQiAxMTZCIDExQTk7QzY1RTsxMTBCIDExNkIgMTFBOTsKK0M2NUY7QzY1RjsxMTBCIDExNkIgMTFBQTtDNjVGOzExMEIgMTE2QiAxMUFBOworQzY2MDtDNjYwOzExMEIgMTE2QiAxMUFCO0M2NjA7MTEwQiAxMTZCIDExQUI7CitDNjYxO0M2NjE7MTEwQiAxMTZCIDExQUM7QzY2MTsxMTBCIDExNkIgMTFBQzsKK0M2NjI7QzY2MjsxMTBCIDExNkIgMTFBRDtDNjYyOzExMEIgMTE2QiAxMUFEOworQzY2MztDNjYzOzExMEIgMTE2QiAxMUFFO0M2NjM7MTEwQiAxMTZCIDExQUU7CitDNjY0O0M2NjQ7MTEwQiAxMTZCIDExQUY7QzY2NDsxMTBCIDExNkIgMTFBRjsKK0M2NjU7QzY2NTsxMTBCIDExNkIgMTFCMDtDNjY1OzExMEIgMTE2QiAxMUIwOworQzY2NjtDNjY2OzExMEIgMTE2QiAxMUIxO0M2NjY7MTEwQiAxMTZCIDExQjE7CitDNjY3O0M2Njc7MTEwQiAxMTZCIDExQjI7QzY2NzsxMTBCIDExNkIgMTFCMjsKK0M2Njg7QzY2ODsxMTBCIDExNkIgMTFCMztDNjY4OzExMEIgMTE2QiAxMUIzOworQzY2OTtDNjY5OzExMEIgMTE2QiAxMUI0O0M2Njk7MTEwQiAxMTZCIDExQjQ7CitDNjZBO0M2NkE7MTEwQiAxMTZCIDExQjU7QzY2QTsxMTBCIDExNkIgMTFCNTsKK0M2NkI7QzY2QjsxMTBCIDExNkIgMTFCNjtDNjZCOzExMEIgMTE2QiAxMUI2OworQzY2QztDNjZDOzExMEIgMTE2QiAxMUI3O0M2NkM7MTEwQiAxMTZCIDExQjc7CitDNjZEO0M2NkQ7MTEwQiAxMTZCIDExQjg7QzY2RDsxMTBCIDExNkIgMTFCODsKK0M2NkU7QzY2RTsxMTBCIDExNkIgMTFCOTtDNjZFOzExMEIgMTE2QiAxMUI5OworQzY2RjtDNjZGOzExMEIgMTE2QiAxMUJBO0M2NkY7MTEwQiAxMTZCIDExQkE7CitDNjcwO0M2NzA7MTEwQiAxMTZCIDExQkI7QzY3MDsxMTBCIDExNkIgMTFCQjsKK0M2NzE7QzY3MTsxMTBCIDExNkIgMTFCQztDNjcxOzExMEIgMTE2QiAxMUJDOworQzY3MjtDNjcyOzExMEIgMTE2QiAxMUJEO0M2NzI7MTEwQiAxMTZCIDExQkQ7CitDNjczO0M2NzM7MTEwQiAxMTZCIDExQkU7QzY3MzsxMTBCIDExNkIgMTFCRTsKK0M2NzQ7QzY3NDsxMTBCIDExNkIgMTFCRjtDNjc0OzExMEIgMTE2QiAxMUJGOworQzY3NTtDNjc1OzExMEIgMTE2QiAxMUMwO0M2NzU7MTEwQiAxMTZCIDExQzA7CitDNjc2O0M2NzY7MTEwQiAxMTZCIDExQzE7QzY3NjsxMTBCIDExNkIgMTFDMTsKK0M2Nzc7QzY3NzsxMTBCIDExNkIgMTFDMjtDNjc3OzExMEIgMTE2QiAxMUMyOworQzY3ODtDNjc4OzExMEIgMTE2QztDNjc4OzExMEIgMTE2QzsKK0M2Nzk7QzY3OTsxMTBCIDExNkMgMTFBODtDNjc5OzExMEIgMTE2QyAxMUE4OworQzY3QTtDNjdBOzExMEIgMTE2QyAxMUE5O0M2N0E7MTEwQiAxMTZDIDExQTk7CitDNjdCO0M2N0I7MTEwQiAxMTZDIDExQUE7QzY3QjsxMTBCIDExNkMgMTFBQTsKK0M2N0M7QzY3QzsxMTBCIDExNkMgMTFBQjtDNjdDOzExMEIgMTE2QyAxMUFCOworQzY3RDtDNjdEOzExMEIgMTE2QyAxMUFDO0M2N0Q7MTEwQiAxMTZDIDExQUM7CitDNjdFO0M2N0U7MTEwQiAxMTZDIDExQUQ7QzY3RTsxMTBCIDExNkMgMTFBRDsKK0M2N0Y7QzY3RjsxMTBCIDExNkMgMTFBRTtDNjdGOzExMEIgMTE2QyAxMUFFOworQzY4MDtDNjgwOzExMEIgMTE2QyAxMUFGO0M2ODA7MTEwQiAxMTZDIDExQUY7CitDNjgxO0M2ODE7MTEwQiAxMTZDIDExQjA7QzY4MTsxMTBCIDExNkMgMTFCMDsKK0M2ODI7QzY4MjsxMTBCIDExNkMgMTFCMTtDNjgyOzExMEIgMTE2QyAxMUIxOworQzY4MztDNjgzOzExMEIgMTE2QyAxMUIyO0M2ODM7MTEwQiAxMTZDIDExQjI7CitDNjg0O0M2ODQ7MTEwQiAxMTZDIDExQjM7QzY4NDsxMTBCIDExNkMgMTFCMzsKK0M2ODU7QzY4NTsxMTBCIDExNkMgMTFCNDtDNjg1OzExMEIgMTE2QyAxMUI0OworQzY4NjtDNjg2OzExMEIgMTE2QyAxMUI1O0M2ODY7MTEwQiAxMTZDIDExQjU7CitDNjg3O0M2ODc7MTEwQiAxMTZDIDExQjY7QzY4NzsxMTBCIDExNkMgMTFCNjsKK0M2ODg7QzY4ODsxMTBCIDExNkMgMTFCNztDNjg4OzExMEIgMTE2QyAxMUI3OworQzY4OTtDNjg5OzExMEIgMTE2QyAxMUI4O0M2ODk7MTEwQiAxMTZDIDExQjg7CitDNjhBO0M2OEE7MTEwQiAxMTZDIDExQjk7QzY4QTsxMTBCIDExNkMgMTFCOTsKK0M2OEI7QzY4QjsxMTBCIDExNkMgMTFCQTtDNjhCOzExMEIgMTE2QyAxMUJBOworQzY4QztDNjhDOzExMEIgMTE2QyAxMUJCO0M2OEM7MTEwQiAxMTZDIDExQkI7CitDNjhEO0M2OEQ7MTEwQiAxMTZDIDExQkM7QzY4RDsxMTBCIDExNkMgMTFCQzsKK0M2OEU7QzY4RTsxMTBCIDExNkMgMTFCRDtDNjhFOzExMEIgMTE2QyAxMUJEOworQzY4RjtDNjhGOzExMEIgMTE2QyAxMUJFO0M2OEY7MTEwQiAxMTZDIDExQkU7CitDNjkwO0M2OTA7MTEwQiAxMTZDIDExQkY7QzY5MDsxMTBCIDExNkMgMTFCRjsKK0M2OTE7QzY5MTsxMTBCIDExNkMgMTFDMDtDNjkxOzExMEIgMTE2QyAxMUMwOworQzY5MjtDNjkyOzExMEIgMTE2QyAxMUMxO0M2OTI7MTEwQiAxMTZDIDExQzE7CitDNjkzO0M2OTM7MTEwQiAxMTZDIDExQzI7QzY5MzsxMTBCIDExNkMgMTFDMjsKK0M2OTQ7QzY5NDsxMTBCIDExNkQ7QzY5NDsxMTBCIDExNkQ7CitDNjk1O0M2OTU7MTEwQiAxMTZEIDExQTg7QzY5NTsxMTBCIDExNkQgMTFBODsKK0M2OTY7QzY5NjsxMTBCIDExNkQgMTFBOTtDNjk2OzExMEIgMTE2RCAxMUE5OworQzY5NztDNjk3OzExMEIgMTE2RCAxMUFBO0M2OTc7MTEwQiAxMTZEIDExQUE7CitDNjk4O0M2OTg7MTEwQiAxMTZEIDExQUI7QzY5ODsxMTBCIDExNkQgMTFBQjsKK0M2OTk7QzY5OTsxMTBCIDExNkQgMTFBQztDNjk5OzExMEIgMTE2RCAxMUFDOworQzY5QTtDNjlBOzExMEIgMTE2RCAxMUFEO0M2OUE7MTEwQiAxMTZEIDExQUQ7CitDNjlCO0M2OUI7MTEwQiAxMTZEIDExQUU7QzY5QjsxMTBCIDExNkQgMTFBRTsKK0M2OUM7QzY5QzsxMTBCIDExNkQgMTFBRjtDNjlDOzExMEIgMTE2RCAxMUFGOworQzY5RDtDNjlEOzExMEIgMTE2RCAxMUIwO0M2OUQ7MTEwQiAxMTZEIDExQjA7CitDNjlFO0M2OUU7MTEwQiAxMTZEIDExQjE7QzY5RTsxMTBCIDExNkQgMTFCMTsKK0M2OUY7QzY5RjsxMTBCIDExNkQgMTFCMjtDNjlGOzExMEIgMTE2RCAxMUIyOworQzZBMDtDNkEwOzExMEIgMTE2RCAxMUIzO0M2QTA7MTEwQiAxMTZEIDExQjM7CitDNkExO0M2QTE7MTEwQiAxMTZEIDExQjQ7QzZBMTsxMTBCIDExNkQgMTFCNDsKK0M2QTI7QzZBMjsxMTBCIDExNkQgMTFCNTtDNkEyOzExMEIgMTE2RCAxMUI1OworQzZBMztDNkEzOzExMEIgMTE2RCAxMUI2O0M2QTM7MTEwQiAxMTZEIDExQjY7CitDNkE0O0M2QTQ7MTEwQiAxMTZEIDExQjc7QzZBNDsxMTBCIDExNkQgMTFCNzsKK0M2QTU7QzZBNTsxMTBCIDExNkQgMTFCODtDNkE1OzExMEIgMTE2RCAxMUI4OworQzZBNjtDNkE2OzExMEIgMTE2RCAxMUI5O0M2QTY7MTEwQiAxMTZEIDExQjk7CitDNkE3O0M2QTc7MTEwQiAxMTZEIDExQkE7QzZBNzsxMTBCIDExNkQgMTFCQTsKK0M2QTg7QzZBODsxMTBCIDExNkQgMTFCQjtDNkE4OzExMEIgMTE2RCAxMUJCOworQzZBOTtDNkE5OzExMEIgMTE2RCAxMUJDO0M2QTk7MTEwQiAxMTZEIDExQkM7CitDNkFBO0M2QUE7MTEwQiAxMTZEIDExQkQ7QzZBQTsxMTBCIDExNkQgMTFCRDsKK0M2QUI7QzZBQjsxMTBCIDExNkQgMTFCRTtDNkFCOzExMEIgMTE2RCAxMUJFOworQzZBQztDNkFDOzExMEIgMTE2RCAxMUJGO0M2QUM7MTEwQiAxMTZEIDExQkY7CitDNkFEO0M2QUQ7MTEwQiAxMTZEIDExQzA7QzZBRDsxMTBCIDExNkQgMTFDMDsKK0M2QUU7QzZBRTsxMTBCIDExNkQgMTFDMTtDNkFFOzExMEIgMTE2RCAxMUMxOworQzZBRjtDNkFGOzExMEIgMTE2RCAxMUMyO0M2QUY7MTEwQiAxMTZEIDExQzI7CitDNkIwO0M2QjA7MTEwQiAxMTZFO0M2QjA7MTEwQiAxMTZFOworQzZCMTtDNkIxOzExMEIgMTE2RSAxMUE4O0M2QjE7MTEwQiAxMTZFIDExQTg7CitDNkIyO0M2QjI7MTEwQiAxMTZFIDExQTk7QzZCMjsxMTBCIDExNkUgMTFBOTsKK0M2QjM7QzZCMzsxMTBCIDExNkUgMTFBQTtDNkIzOzExMEIgMTE2RSAxMUFBOworQzZCNDtDNkI0OzExMEIgMTE2RSAxMUFCO0M2QjQ7MTEwQiAxMTZFIDExQUI7CitDNkI1O0M2QjU7MTEwQiAxMTZFIDExQUM7QzZCNTsxMTBCIDExNkUgMTFBQzsKK0M2QjY7QzZCNjsxMTBCIDExNkUgMTFBRDtDNkI2OzExMEIgMTE2RSAxMUFEOworQzZCNztDNkI3OzExMEIgMTE2RSAxMUFFO0M2Qjc7MTEwQiAxMTZFIDExQUU7CitDNkI4O0M2Qjg7MTEwQiAxMTZFIDExQUY7QzZCODsxMTBCIDExNkUgMTFBRjsKK0M2Qjk7QzZCOTsxMTBCIDExNkUgMTFCMDtDNkI5OzExMEIgMTE2RSAxMUIwOworQzZCQTtDNkJBOzExMEIgMTE2RSAxMUIxO0M2QkE7MTEwQiAxMTZFIDExQjE7CitDNkJCO0M2QkI7MTEwQiAxMTZFIDExQjI7QzZCQjsxMTBCIDExNkUgMTFCMjsKK0M2QkM7QzZCQzsxMTBCIDExNkUgMTFCMztDNkJDOzExMEIgMTE2RSAxMUIzOworQzZCRDtDNkJEOzExMEIgMTE2RSAxMUI0O0M2QkQ7MTEwQiAxMTZFIDExQjQ7CitDNkJFO0M2QkU7MTEwQiAxMTZFIDExQjU7QzZCRTsxMTBCIDExNkUgMTFCNTsKK0M2QkY7QzZCRjsxMTBCIDExNkUgMTFCNjtDNkJGOzExMEIgMTE2RSAxMUI2OworQzZDMDtDNkMwOzExMEIgMTE2RSAxMUI3O0M2QzA7MTEwQiAxMTZFIDExQjc7CitDNkMxO0M2QzE7MTEwQiAxMTZFIDExQjg7QzZDMTsxMTBCIDExNkUgMTFCODsKK0M2QzI7QzZDMjsxMTBCIDExNkUgMTFCOTtDNkMyOzExMEIgMTE2RSAxMUI5OworQzZDMztDNkMzOzExMEIgMTE2RSAxMUJBO0M2QzM7MTEwQiAxMTZFIDExQkE7CitDNkM0O0M2QzQ7MTEwQiAxMTZFIDExQkI7QzZDNDsxMTBCIDExNkUgMTFCQjsKK0M2QzU7QzZDNTsxMTBCIDExNkUgMTFCQztDNkM1OzExMEIgMTE2RSAxMUJDOworQzZDNjtDNkM2OzExMEIgMTE2RSAxMUJEO0M2QzY7MTEwQiAxMTZFIDExQkQ7CitDNkM3O0M2Qzc7MTEwQiAxMTZFIDExQkU7QzZDNzsxMTBCIDExNkUgMTFCRTsKK0M2Qzg7QzZDODsxMTBCIDExNkUgMTFCRjtDNkM4OzExMEIgMTE2RSAxMUJGOworQzZDOTtDNkM5OzExMEIgMTE2RSAxMUMwO0M2Qzk7MTEwQiAxMTZFIDExQzA7CitDNkNBO0M2Q0E7MTEwQiAxMTZFIDExQzE7QzZDQTsxMTBCIDExNkUgMTFDMTsKK0M2Q0I7QzZDQjsxMTBCIDExNkUgMTFDMjtDNkNCOzExMEIgMTE2RSAxMUMyOworQzZDQztDNkNDOzExMEIgMTE2RjtDNkNDOzExMEIgMTE2RjsKK0M2Q0Q7QzZDRDsxMTBCIDExNkYgMTFBODtDNkNEOzExMEIgMTE2RiAxMUE4OworQzZDRTtDNkNFOzExMEIgMTE2RiAxMUE5O0M2Q0U7MTEwQiAxMTZGIDExQTk7CitDNkNGO0M2Q0Y7MTEwQiAxMTZGIDExQUE7QzZDRjsxMTBCIDExNkYgMTFBQTsKK0M2RDA7QzZEMDsxMTBCIDExNkYgMTFBQjtDNkQwOzExMEIgMTE2RiAxMUFCOworQzZEMTtDNkQxOzExMEIgMTE2RiAxMUFDO0M2RDE7MTEwQiAxMTZGIDExQUM7CitDNkQyO0M2RDI7MTEwQiAxMTZGIDExQUQ7QzZEMjsxMTBCIDExNkYgMTFBRDsKK0M2RDM7QzZEMzsxMTBCIDExNkYgMTFBRTtDNkQzOzExMEIgMTE2RiAxMUFFOworQzZENDtDNkQ0OzExMEIgMTE2RiAxMUFGO0M2RDQ7MTEwQiAxMTZGIDExQUY7CitDNkQ1O0M2RDU7MTEwQiAxMTZGIDExQjA7QzZENTsxMTBCIDExNkYgMTFCMDsKK0M2RDY7QzZENjsxMTBCIDExNkYgMTFCMTtDNkQ2OzExMEIgMTE2RiAxMUIxOworQzZENztDNkQ3OzExMEIgMTE2RiAxMUIyO0M2RDc7MTEwQiAxMTZGIDExQjI7CitDNkQ4O0M2RDg7MTEwQiAxMTZGIDExQjM7QzZEODsxMTBCIDExNkYgMTFCMzsKK0M2RDk7QzZEOTsxMTBCIDExNkYgMTFCNDtDNkQ5OzExMEIgMTE2RiAxMUI0OworQzZEQTtDNkRBOzExMEIgMTE2RiAxMUI1O0M2REE7MTEwQiAxMTZGIDExQjU7CitDNkRCO0M2REI7MTEwQiAxMTZGIDExQjY7QzZEQjsxMTBCIDExNkYgMTFCNjsKK0M2REM7QzZEQzsxMTBCIDExNkYgMTFCNztDNkRDOzExMEIgMTE2RiAxMUI3OworQzZERDtDNkREOzExMEIgMTE2RiAxMUI4O0M2REQ7MTEwQiAxMTZGIDExQjg7CitDNkRFO0M2REU7MTEwQiAxMTZGIDExQjk7QzZERTsxMTBCIDExNkYgMTFCOTsKK0M2REY7QzZERjsxMTBCIDExNkYgMTFCQTtDNkRGOzExMEIgMTE2RiAxMUJBOworQzZFMDtDNkUwOzExMEIgMTE2RiAxMUJCO0M2RTA7MTEwQiAxMTZGIDExQkI7CitDNkUxO0M2RTE7MTEwQiAxMTZGIDExQkM7QzZFMTsxMTBCIDExNkYgMTFCQzsKK0M2RTI7QzZFMjsxMTBCIDExNkYgMTFCRDtDNkUyOzExMEIgMTE2RiAxMUJEOworQzZFMztDNkUzOzExMEIgMTE2RiAxMUJFO0M2RTM7MTEwQiAxMTZGIDExQkU7CitDNkU0O0M2RTQ7MTEwQiAxMTZGIDExQkY7QzZFNDsxMTBCIDExNkYgMTFCRjsKK0M2RTU7QzZFNTsxMTBCIDExNkYgMTFDMDtDNkU1OzExMEIgMTE2RiAxMUMwOworQzZFNjtDNkU2OzExMEIgMTE2RiAxMUMxO0M2RTY7MTEwQiAxMTZGIDExQzE7CitDNkU3O0M2RTc7MTEwQiAxMTZGIDExQzI7QzZFNzsxMTBCIDExNkYgMTFDMjsKK0M2RTg7QzZFODsxMTBCIDExNzA7QzZFODsxMTBCIDExNzA7CitDNkU5O0M2RTk7MTEwQiAxMTcwIDExQTg7QzZFOTsxMTBCIDExNzAgMTFBODsKK0M2RUE7QzZFQTsxMTBCIDExNzAgMTFBOTtDNkVBOzExMEIgMTE3MCAxMUE5OworQzZFQjtDNkVCOzExMEIgMTE3MCAxMUFBO0M2RUI7MTEwQiAxMTcwIDExQUE7CitDNkVDO0M2RUM7MTEwQiAxMTcwIDExQUI7QzZFQzsxMTBCIDExNzAgMTFBQjsKK0M2RUQ7QzZFRDsxMTBCIDExNzAgMTFBQztDNkVEOzExMEIgMTE3MCAxMUFDOworQzZFRTtDNkVFOzExMEIgMTE3MCAxMUFEO0M2RUU7MTEwQiAxMTcwIDExQUQ7CitDNkVGO0M2RUY7MTEwQiAxMTcwIDExQUU7QzZFRjsxMTBCIDExNzAgMTFBRTsKK0M2RjA7QzZGMDsxMTBCIDExNzAgMTFBRjtDNkYwOzExMEIgMTE3MCAxMUFGOworQzZGMTtDNkYxOzExMEIgMTE3MCAxMUIwO0M2RjE7MTEwQiAxMTcwIDExQjA7CitDNkYyO0M2RjI7MTEwQiAxMTcwIDExQjE7QzZGMjsxMTBCIDExNzAgMTFCMTsKK0M2RjM7QzZGMzsxMTBCIDExNzAgMTFCMjtDNkYzOzExMEIgMTE3MCAxMUIyOworQzZGNDtDNkY0OzExMEIgMTE3MCAxMUIzO0M2RjQ7MTEwQiAxMTcwIDExQjM7CitDNkY1O0M2RjU7MTEwQiAxMTcwIDExQjQ7QzZGNTsxMTBCIDExNzAgMTFCNDsKK0M2RjY7QzZGNjsxMTBCIDExNzAgMTFCNTtDNkY2OzExMEIgMTE3MCAxMUI1OworQzZGNztDNkY3OzExMEIgMTE3MCAxMUI2O0M2Rjc7MTEwQiAxMTcwIDExQjY7CitDNkY4O0M2Rjg7MTEwQiAxMTcwIDExQjc7QzZGODsxMTBCIDExNzAgMTFCNzsKK0M2Rjk7QzZGOTsxMTBCIDExNzAgMTFCODtDNkY5OzExMEIgMTE3MCAxMUI4OworQzZGQTtDNkZBOzExMEIgMTE3MCAxMUI5O0M2RkE7MTEwQiAxMTcwIDExQjk7CitDNkZCO0M2RkI7MTEwQiAxMTcwIDExQkE7QzZGQjsxMTBCIDExNzAgMTFCQTsKK0M2RkM7QzZGQzsxMTBCIDExNzAgMTFCQjtDNkZDOzExMEIgMTE3MCAxMUJCOworQzZGRDtDNkZEOzExMEIgMTE3MCAxMUJDO0M2RkQ7MTEwQiAxMTcwIDExQkM7CitDNkZFO0M2RkU7MTEwQiAxMTcwIDExQkQ7QzZGRTsxMTBCIDExNzAgMTFCRDsKK0M2RkY7QzZGRjsxMTBCIDExNzAgMTFCRTtDNkZGOzExMEIgMTE3MCAxMUJFOworQzcwMDtDNzAwOzExMEIgMTE3MCAxMUJGO0M3MDA7MTEwQiAxMTcwIDExQkY7CitDNzAxO0M3MDE7MTEwQiAxMTcwIDExQzA7QzcwMTsxMTBCIDExNzAgMTFDMDsKK0M3MDI7QzcwMjsxMTBCIDExNzAgMTFDMTtDNzAyOzExMEIgMTE3MCAxMUMxOworQzcwMztDNzAzOzExMEIgMTE3MCAxMUMyO0M3MDM7MTEwQiAxMTcwIDExQzI7CitDNzA0O0M3MDQ7MTEwQiAxMTcxO0M3MDQ7MTEwQiAxMTcxOworQzcwNTtDNzA1OzExMEIgMTE3MSAxMUE4O0M3MDU7MTEwQiAxMTcxIDExQTg7CitDNzA2O0M3MDY7MTEwQiAxMTcxIDExQTk7QzcwNjsxMTBCIDExNzEgMTFBOTsKK0M3MDc7QzcwNzsxMTBCIDExNzEgMTFBQTtDNzA3OzExMEIgMTE3MSAxMUFBOworQzcwODtDNzA4OzExMEIgMTE3MSAxMUFCO0M3MDg7MTEwQiAxMTcxIDExQUI7CitDNzA5O0M3MDk7MTEwQiAxMTcxIDExQUM7QzcwOTsxMTBCIDExNzEgMTFBQzsKK0M3MEE7QzcwQTsxMTBCIDExNzEgMTFBRDtDNzBBOzExMEIgMTE3MSAxMUFEOworQzcwQjtDNzBCOzExMEIgMTE3MSAxMUFFO0M3MEI7MTEwQiAxMTcxIDExQUU7CitDNzBDO0M3MEM7MTEwQiAxMTcxIDExQUY7QzcwQzsxMTBCIDExNzEgMTFBRjsKK0M3MEQ7QzcwRDsxMTBCIDExNzEgMTFCMDtDNzBEOzExMEIgMTE3MSAxMUIwOworQzcwRTtDNzBFOzExMEIgMTE3MSAxMUIxO0M3MEU7MTEwQiAxMTcxIDExQjE7CitDNzBGO0M3MEY7MTEwQiAxMTcxIDExQjI7QzcwRjsxMTBCIDExNzEgMTFCMjsKK0M3MTA7QzcxMDsxMTBCIDExNzEgMTFCMztDNzEwOzExMEIgMTE3MSAxMUIzOworQzcxMTtDNzExOzExMEIgMTE3MSAxMUI0O0M3MTE7MTEwQiAxMTcxIDExQjQ7CitDNzEyO0M3MTI7MTEwQiAxMTcxIDExQjU7QzcxMjsxMTBCIDExNzEgMTFCNTsKK0M3MTM7QzcxMzsxMTBCIDExNzEgMTFCNjtDNzEzOzExMEIgMTE3MSAxMUI2OworQzcxNDtDNzE0OzExMEIgMTE3MSAxMUI3O0M3MTQ7MTEwQiAxMTcxIDExQjc7CitDNzE1O0M3MTU7MTEwQiAxMTcxIDExQjg7QzcxNTsxMTBCIDExNzEgMTFCODsKK0M3MTY7QzcxNjsxMTBCIDExNzEgMTFCOTtDNzE2OzExMEIgMTE3MSAxMUI5OworQzcxNztDNzE3OzExMEIgMTE3MSAxMUJBO0M3MTc7MTEwQiAxMTcxIDExQkE7CitDNzE4O0M3MTg7MTEwQiAxMTcxIDExQkI7QzcxODsxMTBCIDExNzEgMTFCQjsKK0M3MTk7QzcxOTsxMTBCIDExNzEgMTFCQztDNzE5OzExMEIgMTE3MSAxMUJDOworQzcxQTtDNzFBOzExMEIgMTE3MSAxMUJEO0M3MUE7MTEwQiAxMTcxIDExQkQ7CitDNzFCO0M3MUI7MTEwQiAxMTcxIDExQkU7QzcxQjsxMTBCIDExNzEgMTFCRTsKK0M3MUM7QzcxQzsxMTBCIDExNzEgMTFCRjtDNzFDOzExMEIgMTE3MSAxMUJGOworQzcxRDtDNzFEOzExMEIgMTE3MSAxMUMwO0M3MUQ7MTEwQiAxMTcxIDExQzA7CitDNzFFO0M3MUU7MTEwQiAxMTcxIDExQzE7QzcxRTsxMTBCIDExNzEgMTFDMTsKK0M3MUY7QzcxRjsxMTBCIDExNzEgMTFDMjtDNzFGOzExMEIgMTE3MSAxMUMyOworQzcyMDtDNzIwOzExMEIgMTE3MjtDNzIwOzExMEIgMTE3MjsKK0M3MjE7QzcyMTsxMTBCIDExNzIgMTFBODtDNzIxOzExMEIgMTE3MiAxMUE4OworQzcyMjtDNzIyOzExMEIgMTE3MiAxMUE5O0M3MjI7MTEwQiAxMTcyIDExQTk7CitDNzIzO0M3MjM7MTEwQiAxMTcyIDExQUE7QzcyMzsxMTBCIDExNzIgMTFBQTsKK0M3MjQ7QzcyNDsxMTBCIDExNzIgMTFBQjtDNzI0OzExMEIgMTE3MiAxMUFCOworQzcyNTtDNzI1OzExMEIgMTE3MiAxMUFDO0M3MjU7MTEwQiAxMTcyIDExQUM7CitDNzI2O0M3MjY7MTEwQiAxMTcyIDExQUQ7QzcyNjsxMTBCIDExNzIgMTFBRDsKK0M3Mjc7QzcyNzsxMTBCIDExNzIgMTFBRTtDNzI3OzExMEIgMTE3MiAxMUFFOworQzcyODtDNzI4OzExMEIgMTE3MiAxMUFGO0M3Mjg7MTEwQiAxMTcyIDExQUY7CitDNzI5O0M3Mjk7MTEwQiAxMTcyIDExQjA7QzcyOTsxMTBCIDExNzIgMTFCMDsKK0M3MkE7QzcyQTsxMTBCIDExNzIgMTFCMTtDNzJBOzExMEIgMTE3MiAxMUIxOworQzcyQjtDNzJCOzExMEIgMTE3MiAxMUIyO0M3MkI7MTEwQiAxMTcyIDExQjI7CitDNzJDO0M3MkM7MTEwQiAxMTcyIDExQjM7QzcyQzsxMTBCIDExNzIgMTFCMzsKK0M3MkQ7QzcyRDsxMTBCIDExNzIgMTFCNDtDNzJEOzExMEIgMTE3MiAxMUI0OworQzcyRTtDNzJFOzExMEIgMTE3MiAxMUI1O0M3MkU7MTEwQiAxMTcyIDExQjU7CitDNzJGO0M3MkY7MTEwQiAxMTcyIDExQjY7QzcyRjsxMTBCIDExNzIgMTFCNjsKK0M3MzA7QzczMDsxMTBCIDExNzIgMTFCNztDNzMwOzExMEIgMTE3MiAxMUI3OworQzczMTtDNzMxOzExMEIgMTE3MiAxMUI4O0M3MzE7MTEwQiAxMTcyIDExQjg7CitDNzMyO0M3MzI7MTEwQiAxMTcyIDExQjk7QzczMjsxMTBCIDExNzIgMTFCOTsKK0M3MzM7QzczMzsxMTBCIDExNzIgMTFCQTtDNzMzOzExMEIgMTE3MiAxMUJBOworQzczNDtDNzM0OzExMEIgMTE3MiAxMUJCO0M3MzQ7MTEwQiAxMTcyIDExQkI7CitDNzM1O0M3MzU7MTEwQiAxMTcyIDExQkM7QzczNTsxMTBCIDExNzIgMTFCQzsKK0M3MzY7QzczNjsxMTBCIDExNzIgMTFCRDtDNzM2OzExMEIgMTE3MiAxMUJEOworQzczNztDNzM3OzExMEIgMTE3MiAxMUJFO0M3Mzc7MTEwQiAxMTcyIDExQkU7CitDNzM4O0M3Mzg7MTEwQiAxMTcyIDExQkY7QzczODsxMTBCIDExNzIgMTFCRjsKK0M3Mzk7QzczOTsxMTBCIDExNzIgMTFDMDtDNzM5OzExMEIgMTE3MiAxMUMwOworQzczQTtDNzNBOzExMEIgMTE3MiAxMUMxO0M3M0E7MTEwQiAxMTcyIDExQzE7CitDNzNCO0M3M0I7MTEwQiAxMTcyIDExQzI7QzczQjsxMTBCIDExNzIgMTFDMjsKK0M3M0M7QzczQzsxMTBCIDExNzM7QzczQzsxMTBCIDExNzM7CitDNzNEO0M3M0Q7MTEwQiAxMTczIDExQTg7QzczRDsxMTBCIDExNzMgMTFBODsKK0M3M0U7QzczRTsxMTBCIDExNzMgMTFBOTtDNzNFOzExMEIgMTE3MyAxMUE5OworQzczRjtDNzNGOzExMEIgMTE3MyAxMUFBO0M3M0Y7MTEwQiAxMTczIDExQUE7CitDNzQwO0M3NDA7MTEwQiAxMTczIDExQUI7Qzc0MDsxMTBCIDExNzMgMTFBQjsKK0M3NDE7Qzc0MTsxMTBCIDExNzMgMTFBQztDNzQxOzExMEIgMTE3MyAxMUFDOworQzc0MjtDNzQyOzExMEIgMTE3MyAxMUFEO0M3NDI7MTEwQiAxMTczIDExQUQ7CitDNzQzO0M3NDM7MTEwQiAxMTczIDExQUU7Qzc0MzsxMTBCIDExNzMgMTFBRTsKK0M3NDQ7Qzc0NDsxMTBCIDExNzMgMTFBRjtDNzQ0OzExMEIgMTE3MyAxMUFGOworQzc0NTtDNzQ1OzExMEIgMTE3MyAxMUIwO0M3NDU7MTEwQiAxMTczIDExQjA7CitDNzQ2O0M3NDY7MTEwQiAxMTczIDExQjE7Qzc0NjsxMTBCIDExNzMgMTFCMTsKK0M3NDc7Qzc0NzsxMTBCIDExNzMgMTFCMjtDNzQ3OzExMEIgMTE3MyAxMUIyOworQzc0ODtDNzQ4OzExMEIgMTE3MyAxMUIzO0M3NDg7MTEwQiAxMTczIDExQjM7CitDNzQ5O0M3NDk7MTEwQiAxMTczIDExQjQ7Qzc0OTsxMTBCIDExNzMgMTFCNDsKK0M3NEE7Qzc0QTsxMTBCIDExNzMgMTFCNTtDNzRBOzExMEIgMTE3MyAxMUI1OworQzc0QjtDNzRCOzExMEIgMTE3MyAxMUI2O0M3NEI7MTEwQiAxMTczIDExQjY7CitDNzRDO0M3NEM7MTEwQiAxMTczIDExQjc7Qzc0QzsxMTBCIDExNzMgMTFCNzsKK0M3NEQ7Qzc0RDsxMTBCIDExNzMgMTFCODtDNzREOzExMEIgMTE3MyAxMUI4OworQzc0RTtDNzRFOzExMEIgMTE3MyAxMUI5O0M3NEU7MTEwQiAxMTczIDExQjk7CitDNzRGO0M3NEY7MTEwQiAxMTczIDExQkE7Qzc0RjsxMTBCIDExNzMgMTFCQTsKK0M3NTA7Qzc1MDsxMTBCIDExNzMgMTFCQjtDNzUwOzExMEIgMTE3MyAxMUJCOworQzc1MTtDNzUxOzExMEIgMTE3MyAxMUJDO0M3NTE7MTEwQiAxMTczIDExQkM7CitDNzUyO0M3NTI7MTEwQiAxMTczIDExQkQ7Qzc1MjsxMTBCIDExNzMgMTFCRDsKK0M3NTM7Qzc1MzsxMTBCIDExNzMgMTFCRTtDNzUzOzExMEIgMTE3MyAxMUJFOworQzc1NDtDNzU0OzExMEIgMTE3MyAxMUJGO0M3NTQ7MTEwQiAxMTczIDExQkY7CitDNzU1O0M3NTU7MTEwQiAxMTczIDExQzA7Qzc1NTsxMTBCIDExNzMgMTFDMDsKK0M3NTY7Qzc1NjsxMTBCIDExNzMgMTFDMTtDNzU2OzExMEIgMTE3MyAxMUMxOworQzc1NztDNzU3OzExMEIgMTE3MyAxMUMyO0M3NTc7MTEwQiAxMTczIDExQzI7CitDNzU4O0M3NTg7MTEwQiAxMTc0O0M3NTg7MTEwQiAxMTc0OworQzc1OTtDNzU5OzExMEIgMTE3NCAxMUE4O0M3NTk7MTEwQiAxMTc0IDExQTg7CitDNzVBO0M3NUE7MTEwQiAxMTc0IDExQTk7Qzc1QTsxMTBCIDExNzQgMTFBOTsKK0M3NUI7Qzc1QjsxMTBCIDExNzQgMTFBQTtDNzVCOzExMEIgMTE3NCAxMUFBOworQzc1QztDNzVDOzExMEIgMTE3NCAxMUFCO0M3NUM7MTEwQiAxMTc0IDExQUI7CitDNzVEO0M3NUQ7MTEwQiAxMTc0IDExQUM7Qzc1RDsxMTBCIDExNzQgMTFBQzsKK0M3NUU7Qzc1RTsxMTBCIDExNzQgMTFBRDtDNzVFOzExMEIgMTE3NCAxMUFEOworQzc1RjtDNzVGOzExMEIgMTE3NCAxMUFFO0M3NUY7MTEwQiAxMTc0IDExQUU7CitDNzYwO0M3NjA7MTEwQiAxMTc0IDExQUY7Qzc2MDsxMTBCIDExNzQgMTFBRjsKK0M3NjE7Qzc2MTsxMTBCIDExNzQgMTFCMDtDNzYxOzExMEIgMTE3NCAxMUIwOworQzc2MjtDNzYyOzExMEIgMTE3NCAxMUIxO0M3NjI7MTEwQiAxMTc0IDExQjE7CitDNzYzO0M3NjM7MTEwQiAxMTc0IDExQjI7Qzc2MzsxMTBCIDExNzQgMTFCMjsKK0M3NjQ7Qzc2NDsxMTBCIDExNzQgMTFCMztDNzY0OzExMEIgMTE3NCAxMUIzOworQzc2NTtDNzY1OzExMEIgMTE3NCAxMUI0O0M3NjU7MTEwQiAxMTc0IDExQjQ7CitDNzY2O0M3NjY7MTEwQiAxMTc0IDExQjU7Qzc2NjsxMTBCIDExNzQgMTFCNTsKK0M3Njc7Qzc2NzsxMTBCIDExNzQgMTFCNjtDNzY3OzExMEIgMTE3NCAxMUI2OworQzc2ODtDNzY4OzExMEIgMTE3NCAxMUI3O0M3Njg7MTEwQiAxMTc0IDExQjc7CitDNzY5O0M3Njk7MTEwQiAxMTc0IDExQjg7Qzc2OTsxMTBCIDExNzQgMTFCODsKK0M3NkE7Qzc2QTsxMTBCIDExNzQgMTFCOTtDNzZBOzExMEIgMTE3NCAxMUI5OworQzc2QjtDNzZCOzExMEIgMTE3NCAxMUJBO0M3NkI7MTEwQiAxMTc0IDExQkE7CitDNzZDO0M3NkM7MTEwQiAxMTc0IDExQkI7Qzc2QzsxMTBCIDExNzQgMTFCQjsKK0M3NkQ7Qzc2RDsxMTBCIDExNzQgMTFCQztDNzZEOzExMEIgMTE3NCAxMUJDOworQzc2RTtDNzZFOzExMEIgMTE3NCAxMUJEO0M3NkU7MTEwQiAxMTc0IDExQkQ7CitDNzZGO0M3NkY7MTEwQiAxMTc0IDExQkU7Qzc2RjsxMTBCIDExNzQgMTFCRTsKK0M3NzA7Qzc3MDsxMTBCIDExNzQgMTFCRjtDNzcwOzExMEIgMTE3NCAxMUJGOworQzc3MTtDNzcxOzExMEIgMTE3NCAxMUMwO0M3NzE7MTEwQiAxMTc0IDExQzA7CitDNzcyO0M3NzI7MTEwQiAxMTc0IDExQzE7Qzc3MjsxMTBCIDExNzQgMTFDMTsKK0M3NzM7Qzc3MzsxMTBCIDExNzQgMTFDMjtDNzczOzExMEIgMTE3NCAxMUMyOworQzc3NDtDNzc0OzExMEIgMTE3NTtDNzc0OzExMEIgMTE3NTsKK0M3NzU7Qzc3NTsxMTBCIDExNzUgMTFBODtDNzc1OzExMEIgMTE3NSAxMUE4OworQzc3NjtDNzc2OzExMEIgMTE3NSAxMUE5O0M3NzY7MTEwQiAxMTc1IDExQTk7CitDNzc3O0M3Nzc7MTEwQiAxMTc1IDExQUE7Qzc3NzsxMTBCIDExNzUgMTFBQTsKK0M3Nzg7Qzc3ODsxMTBCIDExNzUgMTFBQjtDNzc4OzExMEIgMTE3NSAxMUFCOworQzc3OTtDNzc5OzExMEIgMTE3NSAxMUFDO0M3Nzk7MTEwQiAxMTc1IDExQUM7CitDNzdBO0M3N0E7MTEwQiAxMTc1IDExQUQ7Qzc3QTsxMTBCIDExNzUgMTFBRDsKK0M3N0I7Qzc3QjsxMTBCIDExNzUgMTFBRTtDNzdCOzExMEIgMTE3NSAxMUFFOworQzc3QztDNzdDOzExMEIgMTE3NSAxMUFGO0M3N0M7MTEwQiAxMTc1IDExQUY7CitDNzdEO0M3N0Q7MTEwQiAxMTc1IDExQjA7Qzc3RDsxMTBCIDExNzUgMTFCMDsKK0M3N0U7Qzc3RTsxMTBCIDExNzUgMTFCMTtDNzdFOzExMEIgMTE3NSAxMUIxOworQzc3RjtDNzdGOzExMEIgMTE3NSAxMUIyO0M3N0Y7MTEwQiAxMTc1IDExQjI7CitDNzgwO0M3ODA7MTEwQiAxMTc1IDExQjM7Qzc4MDsxMTBCIDExNzUgMTFCMzsKK0M3ODE7Qzc4MTsxMTBCIDExNzUgMTFCNDtDNzgxOzExMEIgMTE3NSAxMUI0OworQzc4MjtDNzgyOzExMEIgMTE3NSAxMUI1O0M3ODI7MTEwQiAxMTc1IDExQjU7CitDNzgzO0M3ODM7MTEwQiAxMTc1IDExQjY7Qzc4MzsxMTBCIDExNzUgMTFCNjsKK0M3ODQ7Qzc4NDsxMTBCIDExNzUgMTFCNztDNzg0OzExMEIgMTE3NSAxMUI3OworQzc4NTtDNzg1OzExMEIgMTE3NSAxMUI4O0M3ODU7MTEwQiAxMTc1IDExQjg7CitDNzg2O0M3ODY7MTEwQiAxMTc1IDExQjk7Qzc4NjsxMTBCIDExNzUgMTFCOTsKK0M3ODc7Qzc4NzsxMTBCIDExNzUgMTFCQTtDNzg3OzExMEIgMTE3NSAxMUJBOworQzc4ODtDNzg4OzExMEIgMTE3NSAxMUJCO0M3ODg7MTEwQiAxMTc1IDExQkI7CitDNzg5O0M3ODk7MTEwQiAxMTc1IDExQkM7Qzc4OTsxMTBCIDExNzUgMTFCQzsKK0M3OEE7Qzc4QTsxMTBCIDExNzUgMTFCRDtDNzhBOzExMEIgMTE3NSAxMUJEOworQzc4QjtDNzhCOzExMEIgMTE3NSAxMUJFO0M3OEI7MTEwQiAxMTc1IDExQkU7CitDNzhDO0M3OEM7MTEwQiAxMTc1IDExQkY7Qzc4QzsxMTBCIDExNzUgMTFCRjsKK0M3OEQ7Qzc4RDsxMTBCIDExNzUgMTFDMDtDNzhEOzExMEIgMTE3NSAxMUMwOworQzc4RTtDNzhFOzExMEIgMTE3NSAxMUMxO0M3OEU7MTEwQiAxMTc1IDExQzE7CitDNzhGO0M3OEY7MTEwQiAxMTc1IDExQzI7Qzc4RjsxMTBCIDExNzUgMTFDMjsKK0M3OTA7Qzc5MDsxMTBDIDExNjE7Qzc5MDsxMTBDIDExNjE7CitDNzkxO0M3OTE7MTEwQyAxMTYxIDExQTg7Qzc5MTsxMTBDIDExNjEgMTFBODsKK0M3OTI7Qzc5MjsxMTBDIDExNjEgMTFBOTtDNzkyOzExMEMgMTE2MSAxMUE5OworQzc5MztDNzkzOzExMEMgMTE2MSAxMUFBO0M3OTM7MTEwQyAxMTYxIDExQUE7CitDNzk0O0M3OTQ7MTEwQyAxMTYxIDExQUI7Qzc5NDsxMTBDIDExNjEgMTFBQjsKK0M3OTU7Qzc5NTsxMTBDIDExNjEgMTFBQztDNzk1OzExMEMgMTE2MSAxMUFDOworQzc5NjtDNzk2OzExMEMgMTE2MSAxMUFEO0M3OTY7MTEwQyAxMTYxIDExQUQ7CitDNzk3O0M3OTc7MTEwQyAxMTYxIDExQUU7Qzc5NzsxMTBDIDExNjEgMTFBRTsKK0M3OTg7Qzc5ODsxMTBDIDExNjEgMTFBRjtDNzk4OzExMEMgMTE2MSAxMUFGOworQzc5OTtDNzk5OzExMEMgMTE2MSAxMUIwO0M3OTk7MTEwQyAxMTYxIDExQjA7CitDNzlBO0M3OUE7MTEwQyAxMTYxIDExQjE7Qzc5QTsxMTBDIDExNjEgMTFCMTsKK0M3OUI7Qzc5QjsxMTBDIDExNjEgMTFCMjtDNzlCOzExMEMgMTE2MSAxMUIyOworQzc5QztDNzlDOzExMEMgMTE2MSAxMUIzO0M3OUM7MTEwQyAxMTYxIDExQjM7CitDNzlEO0M3OUQ7MTEwQyAxMTYxIDExQjQ7Qzc5RDsxMTBDIDExNjEgMTFCNDsKK0M3OUU7Qzc5RTsxMTBDIDExNjEgMTFCNTtDNzlFOzExMEMgMTE2MSAxMUI1OworQzc5RjtDNzlGOzExMEMgMTE2MSAxMUI2O0M3OUY7MTEwQyAxMTYxIDExQjY7CitDN0EwO0M3QTA7MTEwQyAxMTYxIDExQjc7QzdBMDsxMTBDIDExNjEgMTFCNzsKK0M3QTE7QzdBMTsxMTBDIDExNjEgMTFCODtDN0ExOzExMEMgMTE2MSAxMUI4OworQzdBMjtDN0EyOzExMEMgMTE2MSAxMUI5O0M3QTI7MTEwQyAxMTYxIDExQjk7CitDN0EzO0M3QTM7MTEwQyAxMTYxIDExQkE7QzdBMzsxMTBDIDExNjEgMTFCQTsKK0M3QTQ7QzdBNDsxMTBDIDExNjEgMTFCQjtDN0E0OzExMEMgMTE2MSAxMUJCOworQzdBNTtDN0E1OzExMEMgMTE2MSAxMUJDO0M3QTU7MTEwQyAxMTYxIDExQkM7CitDN0E2O0M3QTY7MTEwQyAxMTYxIDExQkQ7QzdBNjsxMTBDIDExNjEgMTFCRDsKK0M3QTc7QzdBNzsxMTBDIDExNjEgMTFCRTtDN0E3OzExMEMgMTE2MSAxMUJFOworQzdBODtDN0E4OzExMEMgMTE2MSAxMUJGO0M3QTg7MTEwQyAxMTYxIDExQkY7CitDN0E5O0M3QTk7MTEwQyAxMTYxIDExQzA7QzdBOTsxMTBDIDExNjEgMTFDMDsKK0M3QUE7QzdBQTsxMTBDIDExNjEgMTFDMTtDN0FBOzExMEMgMTE2MSAxMUMxOworQzdBQjtDN0FCOzExMEMgMTE2MSAxMUMyO0M3QUI7MTEwQyAxMTYxIDExQzI7CitDN0FDO0M3QUM7MTEwQyAxMTYyO0M3QUM7MTEwQyAxMTYyOworQzdBRDtDN0FEOzExMEMgMTE2MiAxMUE4O0M3QUQ7MTEwQyAxMTYyIDExQTg7CitDN0FFO0M3QUU7MTEwQyAxMTYyIDExQTk7QzdBRTsxMTBDIDExNjIgMTFBOTsKK0M3QUY7QzdBRjsxMTBDIDExNjIgMTFBQTtDN0FGOzExMEMgMTE2MiAxMUFBOworQzdCMDtDN0IwOzExMEMgMTE2MiAxMUFCO0M3QjA7MTEwQyAxMTYyIDExQUI7CitDN0IxO0M3QjE7MTEwQyAxMTYyIDExQUM7QzdCMTsxMTBDIDExNjIgMTFBQzsKK0M3QjI7QzdCMjsxMTBDIDExNjIgMTFBRDtDN0IyOzExMEMgMTE2MiAxMUFEOworQzdCMztDN0IzOzExMEMgMTE2MiAxMUFFO0M3QjM7MTEwQyAxMTYyIDExQUU7CitDN0I0O0M3QjQ7MTEwQyAxMTYyIDExQUY7QzdCNDsxMTBDIDExNjIgMTFBRjsKK0M3QjU7QzdCNTsxMTBDIDExNjIgMTFCMDtDN0I1OzExMEMgMTE2MiAxMUIwOworQzdCNjtDN0I2OzExMEMgMTE2MiAxMUIxO0M3QjY7MTEwQyAxMTYyIDExQjE7CitDN0I3O0M3Qjc7MTEwQyAxMTYyIDExQjI7QzdCNzsxMTBDIDExNjIgMTFCMjsKK0M3Qjg7QzdCODsxMTBDIDExNjIgMTFCMztDN0I4OzExMEMgMTE2MiAxMUIzOworQzdCOTtDN0I5OzExMEMgMTE2MiAxMUI0O0M3Qjk7MTEwQyAxMTYyIDExQjQ7CitDN0JBO0M3QkE7MTEwQyAxMTYyIDExQjU7QzdCQTsxMTBDIDExNjIgMTFCNTsKK0M3QkI7QzdCQjsxMTBDIDExNjIgMTFCNjtDN0JCOzExMEMgMTE2MiAxMUI2OworQzdCQztDN0JDOzExMEMgMTE2MiAxMUI3O0M3QkM7MTEwQyAxMTYyIDExQjc7CitDN0JEO0M3QkQ7MTEwQyAxMTYyIDExQjg7QzdCRDsxMTBDIDExNjIgMTFCODsKK0M3QkU7QzdCRTsxMTBDIDExNjIgMTFCOTtDN0JFOzExMEMgMTE2MiAxMUI5OworQzdCRjtDN0JGOzExMEMgMTE2MiAxMUJBO0M3QkY7MTEwQyAxMTYyIDExQkE7CitDN0MwO0M3QzA7MTEwQyAxMTYyIDExQkI7QzdDMDsxMTBDIDExNjIgMTFCQjsKK0M3QzE7QzdDMTsxMTBDIDExNjIgMTFCQztDN0MxOzExMEMgMTE2MiAxMUJDOworQzdDMjtDN0MyOzExMEMgMTE2MiAxMUJEO0M3QzI7MTEwQyAxMTYyIDExQkQ7CitDN0MzO0M3QzM7MTEwQyAxMTYyIDExQkU7QzdDMzsxMTBDIDExNjIgMTFCRTsKK0M3QzQ7QzdDNDsxMTBDIDExNjIgMTFCRjtDN0M0OzExMEMgMTE2MiAxMUJGOworQzdDNTtDN0M1OzExMEMgMTE2MiAxMUMwO0M3QzU7MTEwQyAxMTYyIDExQzA7CitDN0M2O0M3QzY7MTEwQyAxMTYyIDExQzE7QzdDNjsxMTBDIDExNjIgMTFDMTsKK0M3Qzc7QzdDNzsxMTBDIDExNjIgMTFDMjtDN0M3OzExMEMgMTE2MiAxMUMyOworQzdDODtDN0M4OzExMEMgMTE2MztDN0M4OzExMEMgMTE2MzsKK0M3Qzk7QzdDOTsxMTBDIDExNjMgMTFBODtDN0M5OzExMEMgMTE2MyAxMUE4OworQzdDQTtDN0NBOzExMEMgMTE2MyAxMUE5O0M3Q0E7MTEwQyAxMTYzIDExQTk7CitDN0NCO0M3Q0I7MTEwQyAxMTYzIDExQUE7QzdDQjsxMTBDIDExNjMgMTFBQTsKK0M3Q0M7QzdDQzsxMTBDIDExNjMgMTFBQjtDN0NDOzExMEMgMTE2MyAxMUFCOworQzdDRDtDN0NEOzExMEMgMTE2MyAxMUFDO0M3Q0Q7MTEwQyAxMTYzIDExQUM7CitDN0NFO0M3Q0U7MTEwQyAxMTYzIDExQUQ7QzdDRTsxMTBDIDExNjMgMTFBRDsKK0M3Q0Y7QzdDRjsxMTBDIDExNjMgMTFBRTtDN0NGOzExMEMgMTE2MyAxMUFFOworQzdEMDtDN0QwOzExMEMgMTE2MyAxMUFGO0M3RDA7MTEwQyAxMTYzIDExQUY7CitDN0QxO0M3RDE7MTEwQyAxMTYzIDExQjA7QzdEMTsxMTBDIDExNjMgMTFCMDsKK0M3RDI7QzdEMjsxMTBDIDExNjMgMTFCMTtDN0QyOzExMEMgMTE2MyAxMUIxOworQzdEMztDN0QzOzExMEMgMTE2MyAxMUIyO0M3RDM7MTEwQyAxMTYzIDExQjI7CitDN0Q0O0M3RDQ7MTEwQyAxMTYzIDExQjM7QzdENDsxMTBDIDExNjMgMTFCMzsKK0M3RDU7QzdENTsxMTBDIDExNjMgMTFCNDtDN0Q1OzExMEMgMTE2MyAxMUI0OworQzdENjtDN0Q2OzExMEMgMTE2MyAxMUI1O0M3RDY7MTEwQyAxMTYzIDExQjU7CitDN0Q3O0M3RDc7MTEwQyAxMTYzIDExQjY7QzdENzsxMTBDIDExNjMgMTFCNjsKK0M3RDg7QzdEODsxMTBDIDExNjMgMTFCNztDN0Q4OzExMEMgMTE2MyAxMUI3OworQzdEOTtDN0Q5OzExMEMgMTE2MyAxMUI4O0M3RDk7MTEwQyAxMTYzIDExQjg7CitDN0RBO0M3REE7MTEwQyAxMTYzIDExQjk7QzdEQTsxMTBDIDExNjMgMTFCOTsKK0M3REI7QzdEQjsxMTBDIDExNjMgMTFCQTtDN0RCOzExMEMgMTE2MyAxMUJBOworQzdEQztDN0RDOzExMEMgMTE2MyAxMUJCO0M3REM7MTEwQyAxMTYzIDExQkI7CitDN0REO0M3REQ7MTEwQyAxMTYzIDExQkM7QzdERDsxMTBDIDExNjMgMTFCQzsKK0M3REU7QzdERTsxMTBDIDExNjMgMTFCRDtDN0RFOzExMEMgMTE2MyAxMUJEOworQzdERjtDN0RGOzExMEMgMTE2MyAxMUJFO0M3REY7MTEwQyAxMTYzIDExQkU7CitDN0UwO0M3RTA7MTEwQyAxMTYzIDExQkY7QzdFMDsxMTBDIDExNjMgMTFCRjsKK0M3RTE7QzdFMTsxMTBDIDExNjMgMTFDMDtDN0UxOzExMEMgMTE2MyAxMUMwOworQzdFMjtDN0UyOzExMEMgMTE2MyAxMUMxO0M3RTI7MTEwQyAxMTYzIDExQzE7CitDN0UzO0M3RTM7MTEwQyAxMTYzIDExQzI7QzdFMzsxMTBDIDExNjMgMTFDMjsKK0M3RTQ7QzdFNDsxMTBDIDExNjQ7QzdFNDsxMTBDIDExNjQ7CitDN0U1O0M3RTU7MTEwQyAxMTY0IDExQTg7QzdFNTsxMTBDIDExNjQgMTFBODsKK0M3RTY7QzdFNjsxMTBDIDExNjQgMTFBOTtDN0U2OzExMEMgMTE2NCAxMUE5OworQzdFNztDN0U3OzExMEMgMTE2NCAxMUFBO0M3RTc7MTEwQyAxMTY0IDExQUE7CitDN0U4O0M3RTg7MTEwQyAxMTY0IDExQUI7QzdFODsxMTBDIDExNjQgMTFBQjsKK0M3RTk7QzdFOTsxMTBDIDExNjQgMTFBQztDN0U5OzExMEMgMTE2NCAxMUFDOworQzdFQTtDN0VBOzExMEMgMTE2NCAxMUFEO0M3RUE7MTEwQyAxMTY0IDExQUQ7CitDN0VCO0M3RUI7MTEwQyAxMTY0IDExQUU7QzdFQjsxMTBDIDExNjQgMTFBRTsKK0M3RUM7QzdFQzsxMTBDIDExNjQgMTFBRjtDN0VDOzExMEMgMTE2NCAxMUFGOworQzdFRDtDN0VEOzExMEMgMTE2NCAxMUIwO0M3RUQ7MTEwQyAxMTY0IDExQjA7CitDN0VFO0M3RUU7MTEwQyAxMTY0IDExQjE7QzdFRTsxMTBDIDExNjQgMTFCMTsKK0M3RUY7QzdFRjsxMTBDIDExNjQgMTFCMjtDN0VGOzExMEMgMTE2NCAxMUIyOworQzdGMDtDN0YwOzExMEMgMTE2NCAxMUIzO0M3RjA7MTEwQyAxMTY0IDExQjM7CitDN0YxO0M3RjE7MTEwQyAxMTY0IDExQjQ7QzdGMTsxMTBDIDExNjQgMTFCNDsKK0M3RjI7QzdGMjsxMTBDIDExNjQgMTFCNTtDN0YyOzExMEMgMTE2NCAxMUI1OworQzdGMztDN0YzOzExMEMgMTE2NCAxMUI2O0M3RjM7MTEwQyAxMTY0IDExQjY7CitDN0Y0O0M3RjQ7MTEwQyAxMTY0IDExQjc7QzdGNDsxMTBDIDExNjQgMTFCNzsKK0M3RjU7QzdGNTsxMTBDIDExNjQgMTFCODtDN0Y1OzExMEMgMTE2NCAxMUI4OworQzdGNjtDN0Y2OzExMEMgMTE2NCAxMUI5O0M3RjY7MTEwQyAxMTY0IDExQjk7CitDN0Y3O0M3Rjc7MTEwQyAxMTY0IDExQkE7QzdGNzsxMTBDIDExNjQgMTFCQTsKK0M3Rjg7QzdGODsxMTBDIDExNjQgMTFCQjtDN0Y4OzExMEMgMTE2NCAxMUJCOworQzdGOTtDN0Y5OzExMEMgMTE2NCAxMUJDO0M3Rjk7MTEwQyAxMTY0IDExQkM7CitDN0ZBO0M3RkE7MTEwQyAxMTY0IDExQkQ7QzdGQTsxMTBDIDExNjQgMTFCRDsKK0M3RkI7QzdGQjsxMTBDIDExNjQgMTFCRTtDN0ZCOzExMEMgMTE2NCAxMUJFOworQzdGQztDN0ZDOzExMEMgMTE2NCAxMUJGO0M3RkM7MTEwQyAxMTY0IDExQkY7CitDN0ZEO0M3RkQ7MTEwQyAxMTY0IDExQzA7QzdGRDsxMTBDIDExNjQgMTFDMDsKK0M3RkU7QzdGRTsxMTBDIDExNjQgMTFDMTtDN0ZFOzExMEMgMTE2NCAxMUMxOworQzdGRjtDN0ZGOzExMEMgMTE2NCAxMUMyO0M3RkY7MTEwQyAxMTY0IDExQzI7CitDODAwO0M4MDA7MTEwQyAxMTY1O0M4MDA7MTEwQyAxMTY1OworQzgwMTtDODAxOzExMEMgMTE2NSAxMUE4O0M4MDE7MTEwQyAxMTY1IDExQTg7CitDODAyO0M4MDI7MTEwQyAxMTY1IDExQTk7QzgwMjsxMTBDIDExNjUgMTFBOTsKK0M4MDM7QzgwMzsxMTBDIDExNjUgMTFBQTtDODAzOzExMEMgMTE2NSAxMUFBOworQzgwNDtDODA0OzExMEMgMTE2NSAxMUFCO0M4MDQ7MTEwQyAxMTY1IDExQUI7CitDODA1O0M4MDU7MTEwQyAxMTY1IDExQUM7QzgwNTsxMTBDIDExNjUgMTFBQzsKK0M4MDY7QzgwNjsxMTBDIDExNjUgMTFBRDtDODA2OzExMEMgMTE2NSAxMUFEOworQzgwNztDODA3OzExMEMgMTE2NSAxMUFFO0M4MDc7MTEwQyAxMTY1IDExQUU7CitDODA4O0M4MDg7MTEwQyAxMTY1IDExQUY7QzgwODsxMTBDIDExNjUgMTFBRjsKK0M4MDk7QzgwOTsxMTBDIDExNjUgMTFCMDtDODA5OzExMEMgMTE2NSAxMUIwOworQzgwQTtDODBBOzExMEMgMTE2NSAxMUIxO0M4MEE7MTEwQyAxMTY1IDExQjE7CitDODBCO0M4MEI7MTEwQyAxMTY1IDExQjI7QzgwQjsxMTBDIDExNjUgMTFCMjsKK0M4MEM7QzgwQzsxMTBDIDExNjUgMTFCMztDODBDOzExMEMgMTE2NSAxMUIzOworQzgwRDtDODBEOzExMEMgMTE2NSAxMUI0O0M4MEQ7MTEwQyAxMTY1IDExQjQ7CitDODBFO0M4MEU7MTEwQyAxMTY1IDExQjU7QzgwRTsxMTBDIDExNjUgMTFCNTsKK0M4MEY7QzgwRjsxMTBDIDExNjUgMTFCNjtDODBGOzExMEMgMTE2NSAxMUI2OworQzgxMDtDODEwOzExMEMgMTE2NSAxMUI3O0M4MTA7MTEwQyAxMTY1IDExQjc7CitDODExO0M4MTE7MTEwQyAxMTY1IDExQjg7QzgxMTsxMTBDIDExNjUgMTFCODsKK0M4MTI7QzgxMjsxMTBDIDExNjUgMTFCOTtDODEyOzExMEMgMTE2NSAxMUI5OworQzgxMztDODEzOzExMEMgMTE2NSAxMUJBO0M4MTM7MTEwQyAxMTY1IDExQkE7CitDODE0O0M4MTQ7MTEwQyAxMTY1IDExQkI7QzgxNDsxMTBDIDExNjUgMTFCQjsKK0M4MTU7QzgxNTsxMTBDIDExNjUgMTFCQztDODE1OzExMEMgMTE2NSAxMUJDOworQzgxNjtDODE2OzExMEMgMTE2NSAxMUJEO0M4MTY7MTEwQyAxMTY1IDExQkQ7CitDODE3O0M4MTc7MTEwQyAxMTY1IDExQkU7QzgxNzsxMTBDIDExNjUgMTFCRTsKK0M4MTg7QzgxODsxMTBDIDExNjUgMTFCRjtDODE4OzExMEMgMTE2NSAxMUJGOworQzgxOTtDODE5OzExMEMgMTE2NSAxMUMwO0M4MTk7MTEwQyAxMTY1IDExQzA7CitDODFBO0M4MUE7MTEwQyAxMTY1IDExQzE7QzgxQTsxMTBDIDExNjUgMTFDMTsKK0M4MUI7QzgxQjsxMTBDIDExNjUgMTFDMjtDODFCOzExMEMgMTE2NSAxMUMyOworQzgxQztDODFDOzExMEMgMTE2NjtDODFDOzExMEMgMTE2NjsKK0M4MUQ7QzgxRDsxMTBDIDExNjYgMTFBODtDODFEOzExMEMgMTE2NiAxMUE4OworQzgxRTtDODFFOzExMEMgMTE2NiAxMUE5O0M4MUU7MTEwQyAxMTY2IDExQTk7CitDODFGO0M4MUY7MTEwQyAxMTY2IDExQUE7QzgxRjsxMTBDIDExNjYgMTFBQTsKK0M4MjA7QzgyMDsxMTBDIDExNjYgMTFBQjtDODIwOzExMEMgMTE2NiAxMUFCOworQzgyMTtDODIxOzExMEMgMTE2NiAxMUFDO0M4MjE7MTEwQyAxMTY2IDExQUM7CitDODIyO0M4MjI7MTEwQyAxMTY2IDExQUQ7QzgyMjsxMTBDIDExNjYgMTFBRDsKK0M4MjM7QzgyMzsxMTBDIDExNjYgMTFBRTtDODIzOzExMEMgMTE2NiAxMUFFOworQzgyNDtDODI0OzExMEMgMTE2NiAxMUFGO0M4MjQ7MTEwQyAxMTY2IDExQUY7CitDODI1O0M4MjU7MTEwQyAxMTY2IDExQjA7QzgyNTsxMTBDIDExNjYgMTFCMDsKK0M4MjY7QzgyNjsxMTBDIDExNjYgMTFCMTtDODI2OzExMEMgMTE2NiAxMUIxOworQzgyNztDODI3OzExMEMgMTE2NiAxMUIyO0M4Mjc7MTEwQyAxMTY2IDExQjI7CitDODI4O0M4Mjg7MTEwQyAxMTY2IDExQjM7QzgyODsxMTBDIDExNjYgMTFCMzsKK0M4Mjk7QzgyOTsxMTBDIDExNjYgMTFCNDtDODI5OzExMEMgMTE2NiAxMUI0OworQzgyQTtDODJBOzExMEMgMTE2NiAxMUI1O0M4MkE7MTEwQyAxMTY2IDExQjU7CitDODJCO0M4MkI7MTEwQyAxMTY2IDExQjY7QzgyQjsxMTBDIDExNjYgMTFCNjsKK0M4MkM7QzgyQzsxMTBDIDExNjYgMTFCNztDODJDOzExMEMgMTE2NiAxMUI3OworQzgyRDtDODJEOzExMEMgMTE2NiAxMUI4O0M4MkQ7MTEwQyAxMTY2IDExQjg7CitDODJFO0M4MkU7MTEwQyAxMTY2IDExQjk7QzgyRTsxMTBDIDExNjYgMTFCOTsKK0M4MkY7QzgyRjsxMTBDIDExNjYgMTFCQTtDODJGOzExMEMgMTE2NiAxMUJBOworQzgzMDtDODMwOzExMEMgMTE2NiAxMUJCO0M4MzA7MTEwQyAxMTY2IDExQkI7CitDODMxO0M4MzE7MTEwQyAxMTY2IDExQkM7QzgzMTsxMTBDIDExNjYgMTFCQzsKK0M4MzI7QzgzMjsxMTBDIDExNjYgMTFCRDtDODMyOzExMEMgMTE2NiAxMUJEOworQzgzMztDODMzOzExMEMgMTE2NiAxMUJFO0M4MzM7MTEwQyAxMTY2IDExQkU7CitDODM0O0M4MzQ7MTEwQyAxMTY2IDExQkY7QzgzNDsxMTBDIDExNjYgMTFCRjsKK0M4MzU7QzgzNTsxMTBDIDExNjYgMTFDMDtDODM1OzExMEMgMTE2NiAxMUMwOworQzgzNjtDODM2OzExMEMgMTE2NiAxMUMxO0M4MzY7MTEwQyAxMTY2IDExQzE7CitDODM3O0M4Mzc7MTEwQyAxMTY2IDExQzI7QzgzNzsxMTBDIDExNjYgMTFDMjsKK0M4Mzg7QzgzODsxMTBDIDExNjc7QzgzODsxMTBDIDExNjc7CitDODM5O0M4Mzk7MTEwQyAxMTY3IDExQTg7QzgzOTsxMTBDIDExNjcgMTFBODsKK0M4M0E7QzgzQTsxMTBDIDExNjcgMTFBOTtDODNBOzExMEMgMTE2NyAxMUE5OworQzgzQjtDODNCOzExMEMgMTE2NyAxMUFBO0M4M0I7MTEwQyAxMTY3IDExQUE7CitDODNDO0M4M0M7MTEwQyAxMTY3IDExQUI7QzgzQzsxMTBDIDExNjcgMTFBQjsKK0M4M0Q7QzgzRDsxMTBDIDExNjcgMTFBQztDODNEOzExMEMgMTE2NyAxMUFDOworQzgzRTtDODNFOzExMEMgMTE2NyAxMUFEO0M4M0U7MTEwQyAxMTY3IDExQUQ7CitDODNGO0M4M0Y7MTEwQyAxMTY3IDExQUU7QzgzRjsxMTBDIDExNjcgMTFBRTsKK0M4NDA7Qzg0MDsxMTBDIDExNjcgMTFBRjtDODQwOzExMEMgMTE2NyAxMUFGOworQzg0MTtDODQxOzExMEMgMTE2NyAxMUIwO0M4NDE7MTEwQyAxMTY3IDExQjA7CitDODQyO0M4NDI7MTEwQyAxMTY3IDExQjE7Qzg0MjsxMTBDIDExNjcgMTFCMTsKK0M4NDM7Qzg0MzsxMTBDIDExNjcgMTFCMjtDODQzOzExMEMgMTE2NyAxMUIyOworQzg0NDtDODQ0OzExMEMgMTE2NyAxMUIzO0M4NDQ7MTEwQyAxMTY3IDExQjM7CitDODQ1O0M4NDU7MTEwQyAxMTY3IDExQjQ7Qzg0NTsxMTBDIDExNjcgMTFCNDsKK0M4NDY7Qzg0NjsxMTBDIDExNjcgMTFCNTtDODQ2OzExMEMgMTE2NyAxMUI1OworQzg0NztDODQ3OzExMEMgMTE2NyAxMUI2O0M4NDc7MTEwQyAxMTY3IDExQjY7CitDODQ4O0M4NDg7MTEwQyAxMTY3IDExQjc7Qzg0ODsxMTBDIDExNjcgMTFCNzsKK0M4NDk7Qzg0OTsxMTBDIDExNjcgMTFCODtDODQ5OzExMEMgMTE2NyAxMUI4OworQzg0QTtDODRBOzExMEMgMTE2NyAxMUI5O0M4NEE7MTEwQyAxMTY3IDExQjk7CitDODRCO0M4NEI7MTEwQyAxMTY3IDExQkE7Qzg0QjsxMTBDIDExNjcgMTFCQTsKK0M4NEM7Qzg0QzsxMTBDIDExNjcgMTFCQjtDODRDOzExMEMgMTE2NyAxMUJCOworQzg0RDtDODREOzExMEMgMTE2NyAxMUJDO0M4NEQ7MTEwQyAxMTY3IDExQkM7CitDODRFO0M4NEU7MTEwQyAxMTY3IDExQkQ7Qzg0RTsxMTBDIDExNjcgMTFCRDsKK0M4NEY7Qzg0RjsxMTBDIDExNjcgMTFCRTtDODRGOzExMEMgMTE2NyAxMUJFOworQzg1MDtDODUwOzExMEMgMTE2NyAxMUJGO0M4NTA7MTEwQyAxMTY3IDExQkY7CitDODUxO0M4NTE7MTEwQyAxMTY3IDExQzA7Qzg1MTsxMTBDIDExNjcgMTFDMDsKK0M4NTI7Qzg1MjsxMTBDIDExNjcgMTFDMTtDODUyOzExMEMgMTE2NyAxMUMxOworQzg1MztDODUzOzExMEMgMTE2NyAxMUMyO0M4NTM7MTEwQyAxMTY3IDExQzI7CitDODU0O0M4NTQ7MTEwQyAxMTY4O0M4NTQ7MTEwQyAxMTY4OworQzg1NTtDODU1OzExMEMgMTE2OCAxMUE4O0M4NTU7MTEwQyAxMTY4IDExQTg7CitDODU2O0M4NTY7MTEwQyAxMTY4IDExQTk7Qzg1NjsxMTBDIDExNjggMTFBOTsKK0M4NTc7Qzg1NzsxMTBDIDExNjggMTFBQTtDODU3OzExMEMgMTE2OCAxMUFBOworQzg1ODtDODU4OzExMEMgMTE2OCAxMUFCO0M4NTg7MTEwQyAxMTY4IDExQUI7CitDODU5O0M4NTk7MTEwQyAxMTY4IDExQUM7Qzg1OTsxMTBDIDExNjggMTFBQzsKK0M4NUE7Qzg1QTsxMTBDIDExNjggMTFBRDtDODVBOzExMEMgMTE2OCAxMUFEOworQzg1QjtDODVCOzExMEMgMTE2OCAxMUFFO0M4NUI7MTEwQyAxMTY4IDExQUU7CitDODVDO0M4NUM7MTEwQyAxMTY4IDExQUY7Qzg1QzsxMTBDIDExNjggMTFBRjsKK0M4NUQ7Qzg1RDsxMTBDIDExNjggMTFCMDtDODVEOzExMEMgMTE2OCAxMUIwOworQzg1RTtDODVFOzExMEMgMTE2OCAxMUIxO0M4NUU7MTEwQyAxMTY4IDExQjE7CitDODVGO0M4NUY7MTEwQyAxMTY4IDExQjI7Qzg1RjsxMTBDIDExNjggMTFCMjsKK0M4NjA7Qzg2MDsxMTBDIDExNjggMTFCMztDODYwOzExMEMgMTE2OCAxMUIzOworQzg2MTtDODYxOzExMEMgMTE2OCAxMUI0O0M4NjE7MTEwQyAxMTY4IDExQjQ7CitDODYyO0M4NjI7MTEwQyAxMTY4IDExQjU7Qzg2MjsxMTBDIDExNjggMTFCNTsKK0M4NjM7Qzg2MzsxMTBDIDExNjggMTFCNjtDODYzOzExMEMgMTE2OCAxMUI2OworQzg2NDtDODY0OzExMEMgMTE2OCAxMUI3O0M4NjQ7MTEwQyAxMTY4IDExQjc7CitDODY1O0M4NjU7MTEwQyAxMTY4IDExQjg7Qzg2NTsxMTBDIDExNjggMTFCODsKK0M4NjY7Qzg2NjsxMTBDIDExNjggMTFCOTtDODY2OzExMEMgMTE2OCAxMUI5OworQzg2NztDODY3OzExMEMgMTE2OCAxMUJBO0M4Njc7MTEwQyAxMTY4IDExQkE7CitDODY4O0M4Njg7MTEwQyAxMTY4IDExQkI7Qzg2ODsxMTBDIDExNjggMTFCQjsKK0M4Njk7Qzg2OTsxMTBDIDExNjggMTFCQztDODY5OzExMEMgMTE2OCAxMUJDOworQzg2QTtDODZBOzExMEMgMTE2OCAxMUJEO0M4NkE7MTEwQyAxMTY4IDExQkQ7CitDODZCO0M4NkI7MTEwQyAxMTY4IDExQkU7Qzg2QjsxMTBDIDExNjggMTFCRTsKK0M4NkM7Qzg2QzsxMTBDIDExNjggMTFCRjtDODZDOzExMEMgMTE2OCAxMUJGOworQzg2RDtDODZEOzExMEMgMTE2OCAxMUMwO0M4NkQ7MTEwQyAxMTY4IDExQzA7CitDODZFO0M4NkU7MTEwQyAxMTY4IDExQzE7Qzg2RTsxMTBDIDExNjggMTFDMTsKK0M4NkY7Qzg2RjsxMTBDIDExNjggMTFDMjtDODZGOzExMEMgMTE2OCAxMUMyOworQzg3MDtDODcwOzExMEMgMTE2OTtDODcwOzExMEMgMTE2OTsKK0M4NzE7Qzg3MTsxMTBDIDExNjkgMTFBODtDODcxOzExMEMgMTE2OSAxMUE4OworQzg3MjtDODcyOzExMEMgMTE2OSAxMUE5O0M4NzI7MTEwQyAxMTY5IDExQTk7CitDODczO0M4NzM7MTEwQyAxMTY5IDExQUE7Qzg3MzsxMTBDIDExNjkgMTFBQTsKK0M4NzQ7Qzg3NDsxMTBDIDExNjkgMTFBQjtDODc0OzExMEMgMTE2OSAxMUFCOworQzg3NTtDODc1OzExMEMgMTE2OSAxMUFDO0M4NzU7MTEwQyAxMTY5IDExQUM7CitDODc2O0M4NzY7MTEwQyAxMTY5IDExQUQ7Qzg3NjsxMTBDIDExNjkgMTFBRDsKK0M4Nzc7Qzg3NzsxMTBDIDExNjkgMTFBRTtDODc3OzExMEMgMTE2OSAxMUFFOworQzg3ODtDODc4OzExMEMgMTE2OSAxMUFGO0M4Nzg7MTEwQyAxMTY5IDExQUY7CitDODc5O0M4Nzk7MTEwQyAxMTY5IDExQjA7Qzg3OTsxMTBDIDExNjkgMTFCMDsKK0M4N0E7Qzg3QTsxMTBDIDExNjkgMTFCMTtDODdBOzExMEMgMTE2OSAxMUIxOworQzg3QjtDODdCOzExMEMgMTE2OSAxMUIyO0M4N0I7MTEwQyAxMTY5IDExQjI7CitDODdDO0M4N0M7MTEwQyAxMTY5IDExQjM7Qzg3QzsxMTBDIDExNjkgMTFCMzsKK0M4N0Q7Qzg3RDsxMTBDIDExNjkgMTFCNDtDODdEOzExMEMgMTE2OSAxMUI0OworQzg3RTtDODdFOzExMEMgMTE2OSAxMUI1O0M4N0U7MTEwQyAxMTY5IDExQjU7CitDODdGO0M4N0Y7MTEwQyAxMTY5IDExQjY7Qzg3RjsxMTBDIDExNjkgMTFCNjsKK0M4ODA7Qzg4MDsxMTBDIDExNjkgMTFCNztDODgwOzExMEMgMTE2OSAxMUI3OworQzg4MTtDODgxOzExMEMgMTE2OSAxMUI4O0M4ODE7MTEwQyAxMTY5IDExQjg7CitDODgyO0M4ODI7MTEwQyAxMTY5IDExQjk7Qzg4MjsxMTBDIDExNjkgMTFCOTsKK0M4ODM7Qzg4MzsxMTBDIDExNjkgMTFCQTtDODgzOzExMEMgMTE2OSAxMUJBOworQzg4NDtDODg0OzExMEMgMTE2OSAxMUJCO0M4ODQ7MTEwQyAxMTY5IDExQkI7CitDODg1O0M4ODU7MTEwQyAxMTY5IDExQkM7Qzg4NTsxMTBDIDExNjkgMTFCQzsKK0M4ODY7Qzg4NjsxMTBDIDExNjkgMTFCRDtDODg2OzExMEMgMTE2OSAxMUJEOworQzg4NztDODg3OzExMEMgMTE2OSAxMUJFO0M4ODc7MTEwQyAxMTY5IDExQkU7CitDODg4O0M4ODg7MTEwQyAxMTY5IDExQkY7Qzg4ODsxMTBDIDExNjkgMTFCRjsKK0M4ODk7Qzg4OTsxMTBDIDExNjkgMTFDMDtDODg5OzExMEMgMTE2OSAxMUMwOworQzg4QTtDODhBOzExMEMgMTE2OSAxMUMxO0M4OEE7MTEwQyAxMTY5IDExQzE7CitDODhCO0M4OEI7MTEwQyAxMTY5IDExQzI7Qzg4QjsxMTBDIDExNjkgMTFDMjsKK0M4OEM7Qzg4QzsxMTBDIDExNkE7Qzg4QzsxMTBDIDExNkE7CitDODhEO0M4OEQ7MTEwQyAxMTZBIDExQTg7Qzg4RDsxMTBDIDExNkEgMTFBODsKK0M4OEU7Qzg4RTsxMTBDIDExNkEgMTFBOTtDODhFOzExMEMgMTE2QSAxMUE5OworQzg4RjtDODhGOzExMEMgMTE2QSAxMUFBO0M4OEY7MTEwQyAxMTZBIDExQUE7CitDODkwO0M4OTA7MTEwQyAxMTZBIDExQUI7Qzg5MDsxMTBDIDExNkEgMTFBQjsKK0M4OTE7Qzg5MTsxMTBDIDExNkEgMTFBQztDODkxOzExMEMgMTE2QSAxMUFDOworQzg5MjtDODkyOzExMEMgMTE2QSAxMUFEO0M4OTI7MTEwQyAxMTZBIDExQUQ7CitDODkzO0M4OTM7MTEwQyAxMTZBIDExQUU7Qzg5MzsxMTBDIDExNkEgMTFBRTsKK0M4OTQ7Qzg5NDsxMTBDIDExNkEgMTFBRjtDODk0OzExMEMgMTE2QSAxMUFGOworQzg5NTtDODk1OzExMEMgMTE2QSAxMUIwO0M4OTU7MTEwQyAxMTZBIDExQjA7CitDODk2O0M4OTY7MTEwQyAxMTZBIDExQjE7Qzg5NjsxMTBDIDExNkEgMTFCMTsKK0M4OTc7Qzg5NzsxMTBDIDExNkEgMTFCMjtDODk3OzExMEMgMTE2QSAxMUIyOworQzg5ODtDODk4OzExMEMgMTE2QSAxMUIzO0M4OTg7MTEwQyAxMTZBIDExQjM7CitDODk5O0M4OTk7MTEwQyAxMTZBIDExQjQ7Qzg5OTsxMTBDIDExNkEgMTFCNDsKK0M4OUE7Qzg5QTsxMTBDIDExNkEgMTFCNTtDODlBOzExMEMgMTE2QSAxMUI1OworQzg5QjtDODlCOzExMEMgMTE2QSAxMUI2O0M4OUI7MTEwQyAxMTZBIDExQjY7CitDODlDO0M4OUM7MTEwQyAxMTZBIDExQjc7Qzg5QzsxMTBDIDExNkEgMTFCNzsKK0M4OUQ7Qzg5RDsxMTBDIDExNkEgMTFCODtDODlEOzExMEMgMTE2QSAxMUI4OworQzg5RTtDODlFOzExMEMgMTE2QSAxMUI5O0M4OUU7MTEwQyAxMTZBIDExQjk7CitDODlGO0M4OUY7MTEwQyAxMTZBIDExQkE7Qzg5RjsxMTBDIDExNkEgMTFCQTsKK0M4QTA7QzhBMDsxMTBDIDExNkEgMTFCQjtDOEEwOzExMEMgMTE2QSAxMUJCOworQzhBMTtDOEExOzExMEMgMTE2QSAxMUJDO0M4QTE7MTEwQyAxMTZBIDExQkM7CitDOEEyO0M4QTI7MTEwQyAxMTZBIDExQkQ7QzhBMjsxMTBDIDExNkEgMTFCRDsKK0M4QTM7QzhBMzsxMTBDIDExNkEgMTFCRTtDOEEzOzExMEMgMTE2QSAxMUJFOworQzhBNDtDOEE0OzExMEMgMTE2QSAxMUJGO0M4QTQ7MTEwQyAxMTZBIDExQkY7CitDOEE1O0M4QTU7MTEwQyAxMTZBIDExQzA7QzhBNTsxMTBDIDExNkEgMTFDMDsKK0M4QTY7QzhBNjsxMTBDIDExNkEgMTFDMTtDOEE2OzExMEMgMTE2QSAxMUMxOworQzhBNztDOEE3OzExMEMgMTE2QSAxMUMyO0M4QTc7MTEwQyAxMTZBIDExQzI7CitDOEE4O0M4QTg7MTEwQyAxMTZCO0M4QTg7MTEwQyAxMTZCOworQzhBOTtDOEE5OzExMEMgMTE2QiAxMUE4O0M4QTk7MTEwQyAxMTZCIDExQTg7CitDOEFBO0M4QUE7MTEwQyAxMTZCIDExQTk7QzhBQTsxMTBDIDExNkIgMTFBOTsKK0M4QUI7QzhBQjsxMTBDIDExNkIgMTFBQTtDOEFCOzExMEMgMTE2QiAxMUFBOworQzhBQztDOEFDOzExMEMgMTE2QiAxMUFCO0M4QUM7MTEwQyAxMTZCIDExQUI7CitDOEFEO0M4QUQ7MTEwQyAxMTZCIDExQUM7QzhBRDsxMTBDIDExNkIgMTFBQzsKK0M4QUU7QzhBRTsxMTBDIDExNkIgMTFBRDtDOEFFOzExMEMgMTE2QiAxMUFEOworQzhBRjtDOEFGOzExMEMgMTE2QiAxMUFFO0M4QUY7MTEwQyAxMTZCIDExQUU7CitDOEIwO0M4QjA7MTEwQyAxMTZCIDExQUY7QzhCMDsxMTBDIDExNkIgMTFBRjsKK0M4QjE7QzhCMTsxMTBDIDExNkIgMTFCMDtDOEIxOzExMEMgMTE2QiAxMUIwOworQzhCMjtDOEIyOzExMEMgMTE2QiAxMUIxO0M4QjI7MTEwQyAxMTZCIDExQjE7CitDOEIzO0M4QjM7MTEwQyAxMTZCIDExQjI7QzhCMzsxMTBDIDExNkIgMTFCMjsKK0M4QjQ7QzhCNDsxMTBDIDExNkIgMTFCMztDOEI0OzExMEMgMTE2QiAxMUIzOworQzhCNTtDOEI1OzExMEMgMTE2QiAxMUI0O0M4QjU7MTEwQyAxMTZCIDExQjQ7CitDOEI2O0M4QjY7MTEwQyAxMTZCIDExQjU7QzhCNjsxMTBDIDExNkIgMTFCNTsKK0M4Qjc7QzhCNzsxMTBDIDExNkIgMTFCNjtDOEI3OzExMEMgMTE2QiAxMUI2OworQzhCODtDOEI4OzExMEMgMTE2QiAxMUI3O0M4Qjg7MTEwQyAxMTZCIDExQjc7CitDOEI5O0M4Qjk7MTEwQyAxMTZCIDExQjg7QzhCOTsxMTBDIDExNkIgMTFCODsKK0M4QkE7QzhCQTsxMTBDIDExNkIgMTFCOTtDOEJBOzExMEMgMTE2QiAxMUI5OworQzhCQjtDOEJCOzExMEMgMTE2QiAxMUJBO0M4QkI7MTEwQyAxMTZCIDExQkE7CitDOEJDO0M4QkM7MTEwQyAxMTZCIDExQkI7QzhCQzsxMTBDIDExNkIgMTFCQjsKK0M4QkQ7QzhCRDsxMTBDIDExNkIgMTFCQztDOEJEOzExMEMgMTE2QiAxMUJDOworQzhCRTtDOEJFOzExMEMgMTE2QiAxMUJEO0M4QkU7MTEwQyAxMTZCIDExQkQ7CitDOEJGO0M4QkY7MTEwQyAxMTZCIDExQkU7QzhCRjsxMTBDIDExNkIgMTFCRTsKK0M4QzA7QzhDMDsxMTBDIDExNkIgMTFCRjtDOEMwOzExMEMgMTE2QiAxMUJGOworQzhDMTtDOEMxOzExMEMgMTE2QiAxMUMwO0M4QzE7MTEwQyAxMTZCIDExQzA7CitDOEMyO0M4QzI7MTEwQyAxMTZCIDExQzE7QzhDMjsxMTBDIDExNkIgMTFDMTsKK0M4QzM7QzhDMzsxMTBDIDExNkIgMTFDMjtDOEMzOzExMEMgMTE2QiAxMUMyOworQzhDNDtDOEM0OzExMEMgMTE2QztDOEM0OzExMEMgMTE2QzsKK0M4QzU7QzhDNTsxMTBDIDExNkMgMTFBODtDOEM1OzExMEMgMTE2QyAxMUE4OworQzhDNjtDOEM2OzExMEMgMTE2QyAxMUE5O0M4QzY7MTEwQyAxMTZDIDExQTk7CitDOEM3O0M4Qzc7MTEwQyAxMTZDIDExQUE7QzhDNzsxMTBDIDExNkMgMTFBQTsKK0M4Qzg7QzhDODsxMTBDIDExNkMgMTFBQjtDOEM4OzExMEMgMTE2QyAxMUFCOworQzhDOTtDOEM5OzExMEMgMTE2QyAxMUFDO0M4Qzk7MTEwQyAxMTZDIDExQUM7CitDOENBO0M4Q0E7MTEwQyAxMTZDIDExQUQ7QzhDQTsxMTBDIDExNkMgMTFBRDsKK0M4Q0I7QzhDQjsxMTBDIDExNkMgMTFBRTtDOENCOzExMEMgMTE2QyAxMUFFOworQzhDQztDOENDOzExMEMgMTE2QyAxMUFGO0M4Q0M7MTEwQyAxMTZDIDExQUY7CitDOENEO0M4Q0Q7MTEwQyAxMTZDIDExQjA7QzhDRDsxMTBDIDExNkMgMTFCMDsKK0M4Q0U7QzhDRTsxMTBDIDExNkMgMTFCMTtDOENFOzExMEMgMTE2QyAxMUIxOworQzhDRjtDOENGOzExMEMgMTE2QyAxMUIyO0M4Q0Y7MTEwQyAxMTZDIDExQjI7CitDOEQwO0M4RDA7MTEwQyAxMTZDIDExQjM7QzhEMDsxMTBDIDExNkMgMTFCMzsKK0M4RDE7QzhEMTsxMTBDIDExNkMgMTFCNDtDOEQxOzExMEMgMTE2QyAxMUI0OworQzhEMjtDOEQyOzExMEMgMTE2QyAxMUI1O0M4RDI7MTEwQyAxMTZDIDExQjU7CitDOEQzO0M4RDM7MTEwQyAxMTZDIDExQjY7QzhEMzsxMTBDIDExNkMgMTFCNjsKK0M4RDQ7QzhENDsxMTBDIDExNkMgMTFCNztDOEQ0OzExMEMgMTE2QyAxMUI3OworQzhENTtDOEQ1OzExMEMgMTE2QyAxMUI4O0M4RDU7MTEwQyAxMTZDIDExQjg7CitDOEQ2O0M4RDY7MTEwQyAxMTZDIDExQjk7QzhENjsxMTBDIDExNkMgMTFCOTsKK0M4RDc7QzhENzsxMTBDIDExNkMgMTFCQTtDOEQ3OzExMEMgMTE2QyAxMUJBOworQzhEODtDOEQ4OzExMEMgMTE2QyAxMUJCO0M4RDg7MTEwQyAxMTZDIDExQkI7CitDOEQ5O0M4RDk7MTEwQyAxMTZDIDExQkM7QzhEOTsxMTBDIDExNkMgMTFCQzsKK0M4REE7QzhEQTsxMTBDIDExNkMgMTFCRDtDOERBOzExMEMgMTE2QyAxMUJEOworQzhEQjtDOERCOzExMEMgMTE2QyAxMUJFO0M4REI7MTEwQyAxMTZDIDExQkU7CitDOERDO0M4REM7MTEwQyAxMTZDIDExQkY7QzhEQzsxMTBDIDExNkMgMTFCRjsKK0M4REQ7QzhERDsxMTBDIDExNkMgMTFDMDtDOEREOzExMEMgMTE2QyAxMUMwOworQzhERTtDOERFOzExMEMgMTE2QyAxMUMxO0M4REU7MTEwQyAxMTZDIDExQzE7CitDOERGO0M4REY7MTEwQyAxMTZDIDExQzI7QzhERjsxMTBDIDExNkMgMTFDMjsKK0M4RTA7QzhFMDsxMTBDIDExNkQ7QzhFMDsxMTBDIDExNkQ7CitDOEUxO0M4RTE7MTEwQyAxMTZEIDExQTg7QzhFMTsxMTBDIDExNkQgMTFBODsKK0M4RTI7QzhFMjsxMTBDIDExNkQgMTFBOTtDOEUyOzExMEMgMTE2RCAxMUE5OworQzhFMztDOEUzOzExMEMgMTE2RCAxMUFBO0M4RTM7MTEwQyAxMTZEIDExQUE7CitDOEU0O0M4RTQ7MTEwQyAxMTZEIDExQUI7QzhFNDsxMTBDIDExNkQgMTFBQjsKK0M4RTU7QzhFNTsxMTBDIDExNkQgMTFBQztDOEU1OzExMEMgMTE2RCAxMUFDOworQzhFNjtDOEU2OzExMEMgMTE2RCAxMUFEO0M4RTY7MTEwQyAxMTZEIDExQUQ7CitDOEU3O0M4RTc7MTEwQyAxMTZEIDExQUU7QzhFNzsxMTBDIDExNkQgMTFBRTsKK0M4RTg7QzhFODsxMTBDIDExNkQgMTFBRjtDOEU4OzExMEMgMTE2RCAxMUFGOworQzhFOTtDOEU5OzExMEMgMTE2RCAxMUIwO0M4RTk7MTEwQyAxMTZEIDExQjA7CitDOEVBO0M4RUE7MTEwQyAxMTZEIDExQjE7QzhFQTsxMTBDIDExNkQgMTFCMTsKK0M4RUI7QzhFQjsxMTBDIDExNkQgMTFCMjtDOEVCOzExMEMgMTE2RCAxMUIyOworQzhFQztDOEVDOzExMEMgMTE2RCAxMUIzO0M4RUM7MTEwQyAxMTZEIDExQjM7CitDOEVEO0M4RUQ7MTEwQyAxMTZEIDExQjQ7QzhFRDsxMTBDIDExNkQgMTFCNDsKK0M4RUU7QzhFRTsxMTBDIDExNkQgMTFCNTtDOEVFOzExMEMgMTE2RCAxMUI1OworQzhFRjtDOEVGOzExMEMgMTE2RCAxMUI2O0M4RUY7MTEwQyAxMTZEIDExQjY7CitDOEYwO0M4RjA7MTEwQyAxMTZEIDExQjc7QzhGMDsxMTBDIDExNkQgMTFCNzsKK0M4RjE7QzhGMTsxMTBDIDExNkQgMTFCODtDOEYxOzExMEMgMTE2RCAxMUI4OworQzhGMjtDOEYyOzExMEMgMTE2RCAxMUI5O0M4RjI7MTEwQyAxMTZEIDExQjk7CitDOEYzO0M4RjM7MTEwQyAxMTZEIDExQkE7QzhGMzsxMTBDIDExNkQgMTFCQTsKK0M4RjQ7QzhGNDsxMTBDIDExNkQgMTFCQjtDOEY0OzExMEMgMTE2RCAxMUJCOworQzhGNTtDOEY1OzExMEMgMTE2RCAxMUJDO0M4RjU7MTEwQyAxMTZEIDExQkM7CitDOEY2O0M4RjY7MTEwQyAxMTZEIDExQkQ7QzhGNjsxMTBDIDExNkQgMTFCRDsKK0M4Rjc7QzhGNzsxMTBDIDExNkQgMTFCRTtDOEY3OzExMEMgMTE2RCAxMUJFOworQzhGODtDOEY4OzExMEMgMTE2RCAxMUJGO0M4Rjg7MTEwQyAxMTZEIDExQkY7CitDOEY5O0M4Rjk7MTEwQyAxMTZEIDExQzA7QzhGOTsxMTBDIDExNkQgMTFDMDsKK0M4RkE7QzhGQTsxMTBDIDExNkQgMTFDMTtDOEZBOzExMEMgMTE2RCAxMUMxOworQzhGQjtDOEZCOzExMEMgMTE2RCAxMUMyO0M4RkI7MTEwQyAxMTZEIDExQzI7CitDOEZDO0M4RkM7MTEwQyAxMTZFO0M4RkM7MTEwQyAxMTZFOworQzhGRDtDOEZEOzExMEMgMTE2RSAxMUE4O0M4RkQ7MTEwQyAxMTZFIDExQTg7CitDOEZFO0M4RkU7MTEwQyAxMTZFIDExQTk7QzhGRTsxMTBDIDExNkUgMTFBOTsKK0M4RkY7QzhGRjsxMTBDIDExNkUgMTFBQTtDOEZGOzExMEMgMTE2RSAxMUFBOworQzkwMDtDOTAwOzExMEMgMTE2RSAxMUFCO0M5MDA7MTEwQyAxMTZFIDExQUI7CitDOTAxO0M5MDE7MTEwQyAxMTZFIDExQUM7QzkwMTsxMTBDIDExNkUgMTFBQzsKK0M5MDI7QzkwMjsxMTBDIDExNkUgMTFBRDtDOTAyOzExMEMgMTE2RSAxMUFEOworQzkwMztDOTAzOzExMEMgMTE2RSAxMUFFO0M5MDM7MTEwQyAxMTZFIDExQUU7CitDOTA0O0M5MDQ7MTEwQyAxMTZFIDExQUY7QzkwNDsxMTBDIDExNkUgMTFBRjsKK0M5MDU7QzkwNTsxMTBDIDExNkUgMTFCMDtDOTA1OzExMEMgMTE2RSAxMUIwOworQzkwNjtDOTA2OzExMEMgMTE2RSAxMUIxO0M5MDY7MTEwQyAxMTZFIDExQjE7CitDOTA3O0M5MDc7MTEwQyAxMTZFIDExQjI7QzkwNzsxMTBDIDExNkUgMTFCMjsKK0M5MDg7QzkwODsxMTBDIDExNkUgMTFCMztDOTA4OzExMEMgMTE2RSAxMUIzOworQzkwOTtDOTA5OzExMEMgMTE2RSAxMUI0O0M5MDk7MTEwQyAxMTZFIDExQjQ7CitDOTBBO0M5MEE7MTEwQyAxMTZFIDExQjU7QzkwQTsxMTBDIDExNkUgMTFCNTsKK0M5MEI7QzkwQjsxMTBDIDExNkUgMTFCNjtDOTBCOzExMEMgMTE2RSAxMUI2OworQzkwQztDOTBDOzExMEMgMTE2RSAxMUI3O0M5MEM7MTEwQyAxMTZFIDExQjc7CitDOTBEO0M5MEQ7MTEwQyAxMTZFIDExQjg7QzkwRDsxMTBDIDExNkUgMTFCODsKK0M5MEU7QzkwRTsxMTBDIDExNkUgMTFCOTtDOTBFOzExMEMgMTE2RSAxMUI5OworQzkwRjtDOTBGOzExMEMgMTE2RSAxMUJBO0M5MEY7MTEwQyAxMTZFIDExQkE7CitDOTEwO0M5MTA7MTEwQyAxMTZFIDExQkI7QzkxMDsxMTBDIDExNkUgMTFCQjsKK0M5MTE7QzkxMTsxMTBDIDExNkUgMTFCQztDOTExOzExMEMgMTE2RSAxMUJDOworQzkxMjtDOTEyOzExMEMgMTE2RSAxMUJEO0M5MTI7MTEwQyAxMTZFIDExQkQ7CitDOTEzO0M5MTM7MTEwQyAxMTZFIDExQkU7QzkxMzsxMTBDIDExNkUgMTFCRTsKK0M5MTQ7QzkxNDsxMTBDIDExNkUgMTFCRjtDOTE0OzExMEMgMTE2RSAxMUJGOworQzkxNTtDOTE1OzExMEMgMTE2RSAxMUMwO0M5MTU7MTEwQyAxMTZFIDExQzA7CitDOTE2O0M5MTY7MTEwQyAxMTZFIDExQzE7QzkxNjsxMTBDIDExNkUgMTFDMTsKK0M5MTc7QzkxNzsxMTBDIDExNkUgMTFDMjtDOTE3OzExMEMgMTE2RSAxMUMyOworQzkxODtDOTE4OzExMEMgMTE2RjtDOTE4OzExMEMgMTE2RjsKK0M5MTk7QzkxOTsxMTBDIDExNkYgMTFBODtDOTE5OzExMEMgMTE2RiAxMUE4OworQzkxQTtDOTFBOzExMEMgMTE2RiAxMUE5O0M5MUE7MTEwQyAxMTZGIDExQTk7CitDOTFCO0M5MUI7MTEwQyAxMTZGIDExQUE7QzkxQjsxMTBDIDExNkYgMTFBQTsKK0M5MUM7QzkxQzsxMTBDIDExNkYgMTFBQjtDOTFDOzExMEMgMTE2RiAxMUFCOworQzkxRDtDOTFEOzExMEMgMTE2RiAxMUFDO0M5MUQ7MTEwQyAxMTZGIDExQUM7CitDOTFFO0M5MUU7MTEwQyAxMTZGIDExQUQ7QzkxRTsxMTBDIDExNkYgMTFBRDsKK0M5MUY7QzkxRjsxMTBDIDExNkYgMTFBRTtDOTFGOzExMEMgMTE2RiAxMUFFOworQzkyMDtDOTIwOzExMEMgMTE2RiAxMUFGO0M5MjA7MTEwQyAxMTZGIDExQUY7CitDOTIxO0M5MjE7MTEwQyAxMTZGIDExQjA7QzkyMTsxMTBDIDExNkYgMTFCMDsKK0M5MjI7QzkyMjsxMTBDIDExNkYgMTFCMTtDOTIyOzExMEMgMTE2RiAxMUIxOworQzkyMztDOTIzOzExMEMgMTE2RiAxMUIyO0M5MjM7MTEwQyAxMTZGIDExQjI7CitDOTI0O0M5MjQ7MTEwQyAxMTZGIDExQjM7QzkyNDsxMTBDIDExNkYgMTFCMzsKK0M5MjU7QzkyNTsxMTBDIDExNkYgMTFCNDtDOTI1OzExMEMgMTE2RiAxMUI0OworQzkyNjtDOTI2OzExMEMgMTE2RiAxMUI1O0M5MjY7MTEwQyAxMTZGIDExQjU7CitDOTI3O0M5Mjc7MTEwQyAxMTZGIDExQjY7QzkyNzsxMTBDIDExNkYgMTFCNjsKK0M5Mjg7QzkyODsxMTBDIDExNkYgMTFCNztDOTI4OzExMEMgMTE2RiAxMUI3OworQzkyOTtDOTI5OzExMEMgMTE2RiAxMUI4O0M5Mjk7MTEwQyAxMTZGIDExQjg7CitDOTJBO0M5MkE7MTEwQyAxMTZGIDExQjk7QzkyQTsxMTBDIDExNkYgMTFCOTsKK0M5MkI7QzkyQjsxMTBDIDExNkYgMTFCQTtDOTJCOzExMEMgMTE2RiAxMUJBOworQzkyQztDOTJDOzExMEMgMTE2RiAxMUJCO0M5MkM7MTEwQyAxMTZGIDExQkI7CitDOTJEO0M5MkQ7MTEwQyAxMTZGIDExQkM7QzkyRDsxMTBDIDExNkYgMTFCQzsKK0M5MkU7QzkyRTsxMTBDIDExNkYgMTFCRDtDOTJFOzExMEMgMTE2RiAxMUJEOworQzkyRjtDOTJGOzExMEMgMTE2RiAxMUJFO0M5MkY7MTEwQyAxMTZGIDExQkU7CitDOTMwO0M5MzA7MTEwQyAxMTZGIDExQkY7QzkzMDsxMTBDIDExNkYgMTFCRjsKK0M5MzE7QzkzMTsxMTBDIDExNkYgMTFDMDtDOTMxOzExMEMgMTE2RiAxMUMwOworQzkzMjtDOTMyOzExMEMgMTE2RiAxMUMxO0M5MzI7MTEwQyAxMTZGIDExQzE7CitDOTMzO0M5MzM7MTEwQyAxMTZGIDExQzI7QzkzMzsxMTBDIDExNkYgMTFDMjsKK0M5MzQ7QzkzNDsxMTBDIDExNzA7QzkzNDsxMTBDIDExNzA7CitDOTM1O0M5MzU7MTEwQyAxMTcwIDExQTg7QzkzNTsxMTBDIDExNzAgMTFBODsKK0M5MzY7QzkzNjsxMTBDIDExNzAgMTFBOTtDOTM2OzExMEMgMTE3MCAxMUE5OworQzkzNztDOTM3OzExMEMgMTE3MCAxMUFBO0M5Mzc7MTEwQyAxMTcwIDExQUE7CitDOTM4O0M5Mzg7MTEwQyAxMTcwIDExQUI7QzkzODsxMTBDIDExNzAgMTFBQjsKK0M5Mzk7QzkzOTsxMTBDIDExNzAgMTFBQztDOTM5OzExMEMgMTE3MCAxMUFDOworQzkzQTtDOTNBOzExMEMgMTE3MCAxMUFEO0M5M0E7MTEwQyAxMTcwIDExQUQ7CitDOTNCO0M5M0I7MTEwQyAxMTcwIDExQUU7QzkzQjsxMTBDIDExNzAgMTFBRTsKK0M5M0M7QzkzQzsxMTBDIDExNzAgMTFBRjtDOTNDOzExMEMgMTE3MCAxMUFGOworQzkzRDtDOTNEOzExMEMgMTE3MCAxMUIwO0M5M0Q7MTEwQyAxMTcwIDExQjA7CitDOTNFO0M5M0U7MTEwQyAxMTcwIDExQjE7QzkzRTsxMTBDIDExNzAgMTFCMTsKK0M5M0Y7QzkzRjsxMTBDIDExNzAgMTFCMjtDOTNGOzExMEMgMTE3MCAxMUIyOworQzk0MDtDOTQwOzExMEMgMTE3MCAxMUIzO0M5NDA7MTEwQyAxMTcwIDExQjM7CitDOTQxO0M5NDE7MTEwQyAxMTcwIDExQjQ7Qzk0MTsxMTBDIDExNzAgMTFCNDsKK0M5NDI7Qzk0MjsxMTBDIDExNzAgMTFCNTtDOTQyOzExMEMgMTE3MCAxMUI1OworQzk0MztDOTQzOzExMEMgMTE3MCAxMUI2O0M5NDM7MTEwQyAxMTcwIDExQjY7CitDOTQ0O0M5NDQ7MTEwQyAxMTcwIDExQjc7Qzk0NDsxMTBDIDExNzAgMTFCNzsKK0M5NDU7Qzk0NTsxMTBDIDExNzAgMTFCODtDOTQ1OzExMEMgMTE3MCAxMUI4OworQzk0NjtDOTQ2OzExMEMgMTE3MCAxMUI5O0M5NDY7MTEwQyAxMTcwIDExQjk7CitDOTQ3O0M5NDc7MTEwQyAxMTcwIDExQkE7Qzk0NzsxMTBDIDExNzAgMTFCQTsKK0M5NDg7Qzk0ODsxMTBDIDExNzAgMTFCQjtDOTQ4OzExMEMgMTE3MCAxMUJCOworQzk0OTtDOTQ5OzExMEMgMTE3MCAxMUJDO0M5NDk7MTEwQyAxMTcwIDExQkM7CitDOTRBO0M5NEE7MTEwQyAxMTcwIDExQkQ7Qzk0QTsxMTBDIDExNzAgMTFCRDsKK0M5NEI7Qzk0QjsxMTBDIDExNzAgMTFCRTtDOTRCOzExMEMgMTE3MCAxMUJFOworQzk0QztDOTRDOzExMEMgMTE3MCAxMUJGO0M5NEM7MTEwQyAxMTcwIDExQkY7CitDOTREO0M5NEQ7MTEwQyAxMTcwIDExQzA7Qzk0RDsxMTBDIDExNzAgMTFDMDsKK0M5NEU7Qzk0RTsxMTBDIDExNzAgMTFDMTtDOTRFOzExMEMgMTE3MCAxMUMxOworQzk0RjtDOTRGOzExMEMgMTE3MCAxMUMyO0M5NEY7MTEwQyAxMTcwIDExQzI7CitDOTUwO0M5NTA7MTEwQyAxMTcxO0M5NTA7MTEwQyAxMTcxOworQzk1MTtDOTUxOzExMEMgMTE3MSAxMUE4O0M5NTE7MTEwQyAxMTcxIDExQTg7CitDOTUyO0M5NTI7MTEwQyAxMTcxIDExQTk7Qzk1MjsxMTBDIDExNzEgMTFBOTsKK0M5NTM7Qzk1MzsxMTBDIDExNzEgMTFBQTtDOTUzOzExMEMgMTE3MSAxMUFBOworQzk1NDtDOTU0OzExMEMgMTE3MSAxMUFCO0M5NTQ7MTEwQyAxMTcxIDExQUI7CitDOTU1O0M5NTU7MTEwQyAxMTcxIDExQUM7Qzk1NTsxMTBDIDExNzEgMTFBQzsKK0M5NTY7Qzk1NjsxMTBDIDExNzEgMTFBRDtDOTU2OzExMEMgMTE3MSAxMUFEOworQzk1NztDOTU3OzExMEMgMTE3MSAxMUFFO0M5NTc7MTEwQyAxMTcxIDExQUU7CitDOTU4O0M5NTg7MTEwQyAxMTcxIDExQUY7Qzk1ODsxMTBDIDExNzEgMTFBRjsKK0M5NTk7Qzk1OTsxMTBDIDExNzEgMTFCMDtDOTU5OzExMEMgMTE3MSAxMUIwOworQzk1QTtDOTVBOzExMEMgMTE3MSAxMUIxO0M5NUE7MTEwQyAxMTcxIDExQjE7CitDOTVCO0M5NUI7MTEwQyAxMTcxIDExQjI7Qzk1QjsxMTBDIDExNzEgMTFCMjsKK0M5NUM7Qzk1QzsxMTBDIDExNzEgMTFCMztDOTVDOzExMEMgMTE3MSAxMUIzOworQzk1RDtDOTVEOzExMEMgMTE3MSAxMUI0O0M5NUQ7MTEwQyAxMTcxIDExQjQ7CitDOTVFO0M5NUU7MTEwQyAxMTcxIDExQjU7Qzk1RTsxMTBDIDExNzEgMTFCNTsKK0M5NUY7Qzk1RjsxMTBDIDExNzEgMTFCNjtDOTVGOzExMEMgMTE3MSAxMUI2OworQzk2MDtDOTYwOzExMEMgMTE3MSAxMUI3O0M5NjA7MTEwQyAxMTcxIDExQjc7CitDOTYxO0M5NjE7MTEwQyAxMTcxIDExQjg7Qzk2MTsxMTBDIDExNzEgMTFCODsKK0M5NjI7Qzk2MjsxMTBDIDExNzEgMTFCOTtDOTYyOzExMEMgMTE3MSAxMUI5OworQzk2MztDOTYzOzExMEMgMTE3MSAxMUJBO0M5NjM7MTEwQyAxMTcxIDExQkE7CitDOTY0O0M5NjQ7MTEwQyAxMTcxIDExQkI7Qzk2NDsxMTBDIDExNzEgMTFCQjsKK0M5NjU7Qzk2NTsxMTBDIDExNzEgMTFCQztDOTY1OzExMEMgMTE3MSAxMUJDOworQzk2NjtDOTY2OzExMEMgMTE3MSAxMUJEO0M5NjY7MTEwQyAxMTcxIDExQkQ7CitDOTY3O0M5Njc7MTEwQyAxMTcxIDExQkU7Qzk2NzsxMTBDIDExNzEgMTFCRTsKK0M5Njg7Qzk2ODsxMTBDIDExNzEgMTFCRjtDOTY4OzExMEMgMTE3MSAxMUJGOworQzk2OTtDOTY5OzExMEMgMTE3MSAxMUMwO0M5Njk7MTEwQyAxMTcxIDExQzA7CitDOTZBO0M5NkE7MTEwQyAxMTcxIDExQzE7Qzk2QTsxMTBDIDExNzEgMTFDMTsKK0M5NkI7Qzk2QjsxMTBDIDExNzEgMTFDMjtDOTZCOzExMEMgMTE3MSAxMUMyOworQzk2QztDOTZDOzExMEMgMTE3MjtDOTZDOzExMEMgMTE3MjsKK0M5NkQ7Qzk2RDsxMTBDIDExNzIgMTFBODtDOTZEOzExMEMgMTE3MiAxMUE4OworQzk2RTtDOTZFOzExMEMgMTE3MiAxMUE5O0M5NkU7MTEwQyAxMTcyIDExQTk7CitDOTZGO0M5NkY7MTEwQyAxMTcyIDExQUE7Qzk2RjsxMTBDIDExNzIgMTFBQTsKK0M5NzA7Qzk3MDsxMTBDIDExNzIgMTFBQjtDOTcwOzExMEMgMTE3MiAxMUFCOworQzk3MTtDOTcxOzExMEMgMTE3MiAxMUFDO0M5NzE7MTEwQyAxMTcyIDExQUM7CitDOTcyO0M5NzI7MTEwQyAxMTcyIDExQUQ7Qzk3MjsxMTBDIDExNzIgMTFBRDsKK0M5NzM7Qzk3MzsxMTBDIDExNzIgMTFBRTtDOTczOzExMEMgMTE3MiAxMUFFOworQzk3NDtDOTc0OzExMEMgMTE3MiAxMUFGO0M5NzQ7MTEwQyAxMTcyIDExQUY7CitDOTc1O0M5NzU7MTEwQyAxMTcyIDExQjA7Qzk3NTsxMTBDIDExNzIgMTFCMDsKK0M5NzY7Qzk3NjsxMTBDIDExNzIgMTFCMTtDOTc2OzExMEMgMTE3MiAxMUIxOworQzk3NztDOTc3OzExMEMgMTE3MiAxMUIyO0M5Nzc7MTEwQyAxMTcyIDExQjI7CitDOTc4O0M5Nzg7MTEwQyAxMTcyIDExQjM7Qzk3ODsxMTBDIDExNzIgMTFCMzsKK0M5Nzk7Qzk3OTsxMTBDIDExNzIgMTFCNDtDOTc5OzExMEMgMTE3MiAxMUI0OworQzk3QTtDOTdBOzExMEMgMTE3MiAxMUI1O0M5N0E7MTEwQyAxMTcyIDExQjU7CitDOTdCO0M5N0I7MTEwQyAxMTcyIDExQjY7Qzk3QjsxMTBDIDExNzIgMTFCNjsKK0M5N0M7Qzk3QzsxMTBDIDExNzIgMTFCNztDOTdDOzExMEMgMTE3MiAxMUI3OworQzk3RDtDOTdEOzExMEMgMTE3MiAxMUI4O0M5N0Q7MTEwQyAxMTcyIDExQjg7CitDOTdFO0M5N0U7MTEwQyAxMTcyIDExQjk7Qzk3RTsxMTBDIDExNzIgMTFCOTsKK0M5N0Y7Qzk3RjsxMTBDIDExNzIgMTFCQTtDOTdGOzExMEMgMTE3MiAxMUJBOworQzk4MDtDOTgwOzExMEMgMTE3MiAxMUJCO0M5ODA7MTEwQyAxMTcyIDExQkI7CitDOTgxO0M5ODE7MTEwQyAxMTcyIDExQkM7Qzk4MTsxMTBDIDExNzIgMTFCQzsKK0M5ODI7Qzk4MjsxMTBDIDExNzIgMTFCRDtDOTgyOzExMEMgMTE3MiAxMUJEOworQzk4MztDOTgzOzExMEMgMTE3MiAxMUJFO0M5ODM7MTEwQyAxMTcyIDExQkU7CitDOTg0O0M5ODQ7MTEwQyAxMTcyIDExQkY7Qzk4NDsxMTBDIDExNzIgMTFCRjsKK0M5ODU7Qzk4NTsxMTBDIDExNzIgMTFDMDtDOTg1OzExMEMgMTE3MiAxMUMwOworQzk4NjtDOTg2OzExMEMgMTE3MiAxMUMxO0M5ODY7MTEwQyAxMTcyIDExQzE7CitDOTg3O0M5ODc7MTEwQyAxMTcyIDExQzI7Qzk4NzsxMTBDIDExNzIgMTFDMjsKK0M5ODg7Qzk4ODsxMTBDIDExNzM7Qzk4ODsxMTBDIDExNzM7CitDOTg5O0M5ODk7MTEwQyAxMTczIDExQTg7Qzk4OTsxMTBDIDExNzMgMTFBODsKK0M5OEE7Qzk4QTsxMTBDIDExNzMgMTFBOTtDOThBOzExMEMgMTE3MyAxMUE5OworQzk4QjtDOThCOzExMEMgMTE3MyAxMUFBO0M5OEI7MTEwQyAxMTczIDExQUE7CitDOThDO0M5OEM7MTEwQyAxMTczIDExQUI7Qzk4QzsxMTBDIDExNzMgMTFBQjsKK0M5OEQ7Qzk4RDsxMTBDIDExNzMgMTFBQztDOThEOzExMEMgMTE3MyAxMUFDOworQzk4RTtDOThFOzExMEMgMTE3MyAxMUFEO0M5OEU7MTEwQyAxMTczIDExQUQ7CitDOThGO0M5OEY7MTEwQyAxMTczIDExQUU7Qzk4RjsxMTBDIDExNzMgMTFBRTsKK0M5OTA7Qzk5MDsxMTBDIDExNzMgMTFBRjtDOTkwOzExMEMgMTE3MyAxMUFGOworQzk5MTtDOTkxOzExMEMgMTE3MyAxMUIwO0M5OTE7MTEwQyAxMTczIDExQjA7CitDOTkyO0M5OTI7MTEwQyAxMTczIDExQjE7Qzk5MjsxMTBDIDExNzMgMTFCMTsKK0M5OTM7Qzk5MzsxMTBDIDExNzMgMTFCMjtDOTkzOzExMEMgMTE3MyAxMUIyOworQzk5NDtDOTk0OzExMEMgMTE3MyAxMUIzO0M5OTQ7MTEwQyAxMTczIDExQjM7CitDOTk1O0M5OTU7MTEwQyAxMTczIDExQjQ7Qzk5NTsxMTBDIDExNzMgMTFCNDsKK0M5OTY7Qzk5NjsxMTBDIDExNzMgMTFCNTtDOTk2OzExMEMgMTE3MyAxMUI1OworQzk5NztDOTk3OzExMEMgMTE3MyAxMUI2O0M5OTc7MTEwQyAxMTczIDExQjY7CitDOTk4O0M5OTg7MTEwQyAxMTczIDExQjc7Qzk5ODsxMTBDIDExNzMgMTFCNzsKK0M5OTk7Qzk5OTsxMTBDIDExNzMgMTFCODtDOTk5OzExMEMgMTE3MyAxMUI4OworQzk5QTtDOTlBOzExMEMgMTE3MyAxMUI5O0M5OUE7MTEwQyAxMTczIDExQjk7CitDOTlCO0M5OUI7MTEwQyAxMTczIDExQkE7Qzk5QjsxMTBDIDExNzMgMTFCQTsKK0M5OUM7Qzk5QzsxMTBDIDExNzMgMTFCQjtDOTlDOzExMEMgMTE3MyAxMUJCOworQzk5RDtDOTlEOzExMEMgMTE3MyAxMUJDO0M5OUQ7MTEwQyAxMTczIDExQkM7CitDOTlFO0M5OUU7MTEwQyAxMTczIDExQkQ7Qzk5RTsxMTBDIDExNzMgMTFCRDsKK0M5OUY7Qzk5RjsxMTBDIDExNzMgMTFCRTtDOTlGOzExMEMgMTE3MyAxMUJFOworQzlBMDtDOUEwOzExMEMgMTE3MyAxMUJGO0M5QTA7MTEwQyAxMTczIDExQkY7CitDOUExO0M5QTE7MTEwQyAxMTczIDExQzA7QzlBMTsxMTBDIDExNzMgMTFDMDsKK0M5QTI7QzlBMjsxMTBDIDExNzMgMTFDMTtDOUEyOzExMEMgMTE3MyAxMUMxOworQzlBMztDOUEzOzExMEMgMTE3MyAxMUMyO0M5QTM7MTEwQyAxMTczIDExQzI7CitDOUE0O0M5QTQ7MTEwQyAxMTc0O0M5QTQ7MTEwQyAxMTc0OworQzlBNTtDOUE1OzExMEMgMTE3NCAxMUE4O0M5QTU7MTEwQyAxMTc0IDExQTg7CitDOUE2O0M5QTY7MTEwQyAxMTc0IDExQTk7QzlBNjsxMTBDIDExNzQgMTFBOTsKK0M5QTc7QzlBNzsxMTBDIDExNzQgMTFBQTtDOUE3OzExMEMgMTE3NCAxMUFBOworQzlBODtDOUE4OzExMEMgMTE3NCAxMUFCO0M5QTg7MTEwQyAxMTc0IDExQUI7CitDOUE5O0M5QTk7MTEwQyAxMTc0IDExQUM7QzlBOTsxMTBDIDExNzQgMTFBQzsKK0M5QUE7QzlBQTsxMTBDIDExNzQgMTFBRDtDOUFBOzExMEMgMTE3NCAxMUFEOworQzlBQjtDOUFCOzExMEMgMTE3NCAxMUFFO0M5QUI7MTEwQyAxMTc0IDExQUU7CitDOUFDO0M5QUM7MTEwQyAxMTc0IDExQUY7QzlBQzsxMTBDIDExNzQgMTFBRjsKK0M5QUQ7QzlBRDsxMTBDIDExNzQgMTFCMDtDOUFEOzExMEMgMTE3NCAxMUIwOworQzlBRTtDOUFFOzExMEMgMTE3NCAxMUIxO0M5QUU7MTEwQyAxMTc0IDExQjE7CitDOUFGO0M5QUY7MTEwQyAxMTc0IDExQjI7QzlBRjsxMTBDIDExNzQgMTFCMjsKK0M5QjA7QzlCMDsxMTBDIDExNzQgMTFCMztDOUIwOzExMEMgMTE3NCAxMUIzOworQzlCMTtDOUIxOzExMEMgMTE3NCAxMUI0O0M5QjE7MTEwQyAxMTc0IDExQjQ7CitDOUIyO0M5QjI7MTEwQyAxMTc0IDExQjU7QzlCMjsxMTBDIDExNzQgMTFCNTsKK0M5QjM7QzlCMzsxMTBDIDExNzQgMTFCNjtDOUIzOzExMEMgMTE3NCAxMUI2OworQzlCNDtDOUI0OzExMEMgMTE3NCAxMUI3O0M5QjQ7MTEwQyAxMTc0IDExQjc7CitDOUI1O0M5QjU7MTEwQyAxMTc0IDExQjg7QzlCNTsxMTBDIDExNzQgMTFCODsKK0M5QjY7QzlCNjsxMTBDIDExNzQgMTFCOTtDOUI2OzExMEMgMTE3NCAxMUI5OworQzlCNztDOUI3OzExMEMgMTE3NCAxMUJBO0M5Qjc7MTEwQyAxMTc0IDExQkE7CitDOUI4O0M5Qjg7MTEwQyAxMTc0IDExQkI7QzlCODsxMTBDIDExNzQgMTFCQjsKK0M5Qjk7QzlCOTsxMTBDIDExNzQgMTFCQztDOUI5OzExMEMgMTE3NCAxMUJDOworQzlCQTtDOUJBOzExMEMgMTE3NCAxMUJEO0M5QkE7MTEwQyAxMTc0IDExQkQ7CitDOUJCO0M5QkI7MTEwQyAxMTc0IDExQkU7QzlCQjsxMTBDIDExNzQgMTFCRTsKK0M5QkM7QzlCQzsxMTBDIDExNzQgMTFCRjtDOUJDOzExMEMgMTE3NCAxMUJGOworQzlCRDtDOUJEOzExMEMgMTE3NCAxMUMwO0M5QkQ7MTEwQyAxMTc0IDExQzA7CitDOUJFO0M5QkU7MTEwQyAxMTc0IDExQzE7QzlCRTsxMTBDIDExNzQgMTFDMTsKK0M5QkY7QzlCRjsxMTBDIDExNzQgMTFDMjtDOUJGOzExMEMgMTE3NCAxMUMyOworQzlDMDtDOUMwOzExMEMgMTE3NTtDOUMwOzExMEMgMTE3NTsKK0M5QzE7QzlDMTsxMTBDIDExNzUgMTFBODtDOUMxOzExMEMgMTE3NSAxMUE4OworQzlDMjtDOUMyOzExMEMgMTE3NSAxMUE5O0M5QzI7MTEwQyAxMTc1IDExQTk7CitDOUMzO0M5QzM7MTEwQyAxMTc1IDExQUE7QzlDMzsxMTBDIDExNzUgMTFBQTsKK0M5QzQ7QzlDNDsxMTBDIDExNzUgMTFBQjtDOUM0OzExMEMgMTE3NSAxMUFCOworQzlDNTtDOUM1OzExMEMgMTE3NSAxMUFDO0M5QzU7MTEwQyAxMTc1IDExQUM7CitDOUM2O0M5QzY7MTEwQyAxMTc1IDExQUQ7QzlDNjsxMTBDIDExNzUgMTFBRDsKK0M5Qzc7QzlDNzsxMTBDIDExNzUgMTFBRTtDOUM3OzExMEMgMTE3NSAxMUFFOworQzlDODtDOUM4OzExMEMgMTE3NSAxMUFGO0M5Qzg7MTEwQyAxMTc1IDExQUY7CitDOUM5O0M5Qzk7MTEwQyAxMTc1IDExQjA7QzlDOTsxMTBDIDExNzUgMTFCMDsKK0M5Q0E7QzlDQTsxMTBDIDExNzUgMTFCMTtDOUNBOzExMEMgMTE3NSAxMUIxOworQzlDQjtDOUNCOzExMEMgMTE3NSAxMUIyO0M5Q0I7MTEwQyAxMTc1IDExQjI7CitDOUNDO0M5Q0M7MTEwQyAxMTc1IDExQjM7QzlDQzsxMTBDIDExNzUgMTFCMzsKK0M5Q0Q7QzlDRDsxMTBDIDExNzUgMTFCNDtDOUNEOzExMEMgMTE3NSAxMUI0OworQzlDRTtDOUNFOzExMEMgMTE3NSAxMUI1O0M5Q0U7MTEwQyAxMTc1IDExQjU7CitDOUNGO0M5Q0Y7MTEwQyAxMTc1IDExQjY7QzlDRjsxMTBDIDExNzUgMTFCNjsKK0M5RDA7QzlEMDsxMTBDIDExNzUgMTFCNztDOUQwOzExMEMgMTE3NSAxMUI3OworQzlEMTtDOUQxOzExMEMgMTE3NSAxMUI4O0M5RDE7MTEwQyAxMTc1IDExQjg7CitDOUQyO0M5RDI7MTEwQyAxMTc1IDExQjk7QzlEMjsxMTBDIDExNzUgMTFCOTsKK0M5RDM7QzlEMzsxMTBDIDExNzUgMTFCQTtDOUQzOzExMEMgMTE3NSAxMUJBOworQzlENDtDOUQ0OzExMEMgMTE3NSAxMUJCO0M5RDQ7MTEwQyAxMTc1IDExQkI7CitDOUQ1O0M5RDU7MTEwQyAxMTc1IDExQkM7QzlENTsxMTBDIDExNzUgMTFCQzsKK0M5RDY7QzlENjsxMTBDIDExNzUgMTFCRDtDOUQ2OzExMEMgMTE3NSAxMUJEOworQzlENztDOUQ3OzExMEMgMTE3NSAxMUJFO0M5RDc7MTEwQyAxMTc1IDExQkU7CitDOUQ4O0M5RDg7MTEwQyAxMTc1IDExQkY7QzlEODsxMTBDIDExNzUgMTFCRjsKK0M5RDk7QzlEOTsxMTBDIDExNzUgMTFDMDtDOUQ5OzExMEMgMTE3NSAxMUMwOworQzlEQTtDOURBOzExMEMgMTE3NSAxMUMxO0M5REE7MTEwQyAxMTc1IDExQzE7CitDOURCO0M5REI7MTEwQyAxMTc1IDExQzI7QzlEQjsxMTBDIDExNzUgMTFDMjsKK0M5REM7QzlEQzsxMTBEIDExNjE7QzlEQzsxMTBEIDExNjE7CitDOUREO0M5REQ7MTEwRCAxMTYxIDExQTg7QzlERDsxMTBEIDExNjEgMTFBODsKK0M5REU7QzlERTsxMTBEIDExNjEgMTFBOTtDOURFOzExMEQgMTE2MSAxMUE5OworQzlERjtDOURGOzExMEQgMTE2MSAxMUFBO0M5REY7MTEwRCAxMTYxIDExQUE7CitDOUUwO0M5RTA7MTEwRCAxMTYxIDExQUI7QzlFMDsxMTBEIDExNjEgMTFBQjsKK0M5RTE7QzlFMTsxMTBEIDExNjEgMTFBQztDOUUxOzExMEQgMTE2MSAxMUFDOworQzlFMjtDOUUyOzExMEQgMTE2MSAxMUFEO0M5RTI7MTEwRCAxMTYxIDExQUQ7CitDOUUzO0M5RTM7MTEwRCAxMTYxIDExQUU7QzlFMzsxMTBEIDExNjEgMTFBRTsKK0M5RTQ7QzlFNDsxMTBEIDExNjEgMTFBRjtDOUU0OzExMEQgMTE2MSAxMUFGOworQzlFNTtDOUU1OzExMEQgMTE2MSAxMUIwO0M5RTU7MTEwRCAxMTYxIDExQjA7CitDOUU2O0M5RTY7MTEwRCAxMTYxIDExQjE7QzlFNjsxMTBEIDExNjEgMTFCMTsKK0M5RTc7QzlFNzsxMTBEIDExNjEgMTFCMjtDOUU3OzExMEQgMTE2MSAxMUIyOworQzlFODtDOUU4OzExMEQgMTE2MSAxMUIzO0M5RTg7MTEwRCAxMTYxIDExQjM7CitDOUU5O0M5RTk7MTEwRCAxMTYxIDExQjQ7QzlFOTsxMTBEIDExNjEgMTFCNDsKK0M5RUE7QzlFQTsxMTBEIDExNjEgMTFCNTtDOUVBOzExMEQgMTE2MSAxMUI1OworQzlFQjtDOUVCOzExMEQgMTE2MSAxMUI2O0M5RUI7MTEwRCAxMTYxIDExQjY7CitDOUVDO0M5RUM7MTEwRCAxMTYxIDExQjc7QzlFQzsxMTBEIDExNjEgMTFCNzsKK0M5RUQ7QzlFRDsxMTBEIDExNjEgMTFCODtDOUVEOzExMEQgMTE2MSAxMUI4OworQzlFRTtDOUVFOzExMEQgMTE2MSAxMUI5O0M5RUU7MTEwRCAxMTYxIDExQjk7CitDOUVGO0M5RUY7MTEwRCAxMTYxIDExQkE7QzlFRjsxMTBEIDExNjEgMTFCQTsKK0M5RjA7QzlGMDsxMTBEIDExNjEgMTFCQjtDOUYwOzExMEQgMTE2MSAxMUJCOworQzlGMTtDOUYxOzExMEQgMTE2MSAxMUJDO0M5RjE7MTEwRCAxMTYxIDExQkM7CitDOUYyO0M5RjI7MTEwRCAxMTYxIDExQkQ7QzlGMjsxMTBEIDExNjEgMTFCRDsKK0M5RjM7QzlGMzsxMTBEIDExNjEgMTFCRTtDOUYzOzExMEQgMTE2MSAxMUJFOworQzlGNDtDOUY0OzExMEQgMTE2MSAxMUJGO0M5RjQ7MTEwRCAxMTYxIDExQkY7CitDOUY1O0M5RjU7MTEwRCAxMTYxIDExQzA7QzlGNTsxMTBEIDExNjEgMTFDMDsKK0M5RjY7QzlGNjsxMTBEIDExNjEgMTFDMTtDOUY2OzExMEQgMTE2MSAxMUMxOworQzlGNztDOUY3OzExMEQgMTE2MSAxMUMyO0M5Rjc7MTEwRCAxMTYxIDExQzI7CitDOUY4O0M5Rjg7MTEwRCAxMTYyO0M5Rjg7MTEwRCAxMTYyOworQzlGOTtDOUY5OzExMEQgMTE2MiAxMUE4O0M5Rjk7MTEwRCAxMTYyIDExQTg7CitDOUZBO0M5RkE7MTEwRCAxMTYyIDExQTk7QzlGQTsxMTBEIDExNjIgMTFBOTsKK0M5RkI7QzlGQjsxMTBEIDExNjIgMTFBQTtDOUZCOzExMEQgMTE2MiAxMUFBOworQzlGQztDOUZDOzExMEQgMTE2MiAxMUFCO0M5RkM7MTEwRCAxMTYyIDExQUI7CitDOUZEO0M5RkQ7MTEwRCAxMTYyIDExQUM7QzlGRDsxMTBEIDExNjIgMTFBQzsKK0M5RkU7QzlGRTsxMTBEIDExNjIgMTFBRDtDOUZFOzExMEQgMTE2MiAxMUFEOworQzlGRjtDOUZGOzExMEQgMTE2MiAxMUFFO0M5RkY7MTEwRCAxMTYyIDExQUU7CitDQTAwO0NBMDA7MTEwRCAxMTYyIDExQUY7Q0EwMDsxMTBEIDExNjIgMTFBRjsKK0NBMDE7Q0EwMTsxMTBEIDExNjIgMTFCMDtDQTAxOzExMEQgMTE2MiAxMUIwOworQ0EwMjtDQTAyOzExMEQgMTE2MiAxMUIxO0NBMDI7MTEwRCAxMTYyIDExQjE7CitDQTAzO0NBMDM7MTEwRCAxMTYyIDExQjI7Q0EwMzsxMTBEIDExNjIgMTFCMjsKK0NBMDQ7Q0EwNDsxMTBEIDExNjIgMTFCMztDQTA0OzExMEQgMTE2MiAxMUIzOworQ0EwNTtDQTA1OzExMEQgMTE2MiAxMUI0O0NBMDU7MTEwRCAxMTYyIDExQjQ7CitDQTA2O0NBMDY7MTEwRCAxMTYyIDExQjU7Q0EwNjsxMTBEIDExNjIgMTFCNTsKK0NBMDc7Q0EwNzsxMTBEIDExNjIgMTFCNjtDQTA3OzExMEQgMTE2MiAxMUI2OworQ0EwODtDQTA4OzExMEQgMTE2MiAxMUI3O0NBMDg7MTEwRCAxMTYyIDExQjc7CitDQTA5O0NBMDk7MTEwRCAxMTYyIDExQjg7Q0EwOTsxMTBEIDExNjIgMTFCODsKK0NBMEE7Q0EwQTsxMTBEIDExNjIgMTFCOTtDQTBBOzExMEQgMTE2MiAxMUI5OworQ0EwQjtDQTBCOzExMEQgMTE2MiAxMUJBO0NBMEI7MTEwRCAxMTYyIDExQkE7CitDQTBDO0NBMEM7MTEwRCAxMTYyIDExQkI7Q0EwQzsxMTBEIDExNjIgMTFCQjsKK0NBMEQ7Q0EwRDsxMTBEIDExNjIgMTFCQztDQTBEOzExMEQgMTE2MiAxMUJDOworQ0EwRTtDQTBFOzExMEQgMTE2MiAxMUJEO0NBMEU7MTEwRCAxMTYyIDExQkQ7CitDQTBGO0NBMEY7MTEwRCAxMTYyIDExQkU7Q0EwRjsxMTBEIDExNjIgMTFCRTsKK0NBMTA7Q0ExMDsxMTBEIDExNjIgMTFCRjtDQTEwOzExMEQgMTE2MiAxMUJGOworQ0ExMTtDQTExOzExMEQgMTE2MiAxMUMwO0NBMTE7MTEwRCAxMTYyIDExQzA7CitDQTEyO0NBMTI7MTEwRCAxMTYyIDExQzE7Q0ExMjsxMTBEIDExNjIgMTFDMTsKK0NBMTM7Q0ExMzsxMTBEIDExNjIgMTFDMjtDQTEzOzExMEQgMTE2MiAxMUMyOworQ0ExNDtDQTE0OzExMEQgMTE2MztDQTE0OzExMEQgMTE2MzsKK0NBMTU7Q0ExNTsxMTBEIDExNjMgMTFBODtDQTE1OzExMEQgMTE2MyAxMUE4OworQ0ExNjtDQTE2OzExMEQgMTE2MyAxMUE5O0NBMTY7MTEwRCAxMTYzIDExQTk7CitDQTE3O0NBMTc7MTEwRCAxMTYzIDExQUE7Q0ExNzsxMTBEIDExNjMgMTFBQTsKK0NBMTg7Q0ExODsxMTBEIDExNjMgMTFBQjtDQTE4OzExMEQgMTE2MyAxMUFCOworQ0ExOTtDQTE5OzExMEQgMTE2MyAxMUFDO0NBMTk7MTEwRCAxMTYzIDExQUM7CitDQTFBO0NBMUE7MTEwRCAxMTYzIDExQUQ7Q0ExQTsxMTBEIDExNjMgMTFBRDsKK0NBMUI7Q0ExQjsxMTBEIDExNjMgMTFBRTtDQTFCOzExMEQgMTE2MyAxMUFFOworQ0ExQztDQTFDOzExMEQgMTE2MyAxMUFGO0NBMUM7MTEwRCAxMTYzIDExQUY7CitDQTFEO0NBMUQ7MTEwRCAxMTYzIDExQjA7Q0ExRDsxMTBEIDExNjMgMTFCMDsKK0NBMUU7Q0ExRTsxMTBEIDExNjMgMTFCMTtDQTFFOzExMEQgMTE2MyAxMUIxOworQ0ExRjtDQTFGOzExMEQgMTE2MyAxMUIyO0NBMUY7MTEwRCAxMTYzIDExQjI7CitDQTIwO0NBMjA7MTEwRCAxMTYzIDExQjM7Q0EyMDsxMTBEIDExNjMgMTFCMzsKK0NBMjE7Q0EyMTsxMTBEIDExNjMgMTFCNDtDQTIxOzExMEQgMTE2MyAxMUI0OworQ0EyMjtDQTIyOzExMEQgMTE2MyAxMUI1O0NBMjI7MTEwRCAxMTYzIDExQjU7CitDQTIzO0NBMjM7MTEwRCAxMTYzIDExQjY7Q0EyMzsxMTBEIDExNjMgMTFCNjsKK0NBMjQ7Q0EyNDsxMTBEIDExNjMgMTFCNztDQTI0OzExMEQgMTE2MyAxMUI3OworQ0EyNTtDQTI1OzExMEQgMTE2MyAxMUI4O0NBMjU7MTEwRCAxMTYzIDExQjg7CitDQTI2O0NBMjY7MTEwRCAxMTYzIDExQjk7Q0EyNjsxMTBEIDExNjMgMTFCOTsKK0NBMjc7Q0EyNzsxMTBEIDExNjMgMTFCQTtDQTI3OzExMEQgMTE2MyAxMUJBOworQ0EyODtDQTI4OzExMEQgMTE2MyAxMUJCO0NBMjg7MTEwRCAxMTYzIDExQkI7CitDQTI5O0NBMjk7MTEwRCAxMTYzIDExQkM7Q0EyOTsxMTBEIDExNjMgMTFCQzsKK0NBMkE7Q0EyQTsxMTBEIDExNjMgMTFCRDtDQTJBOzExMEQgMTE2MyAxMUJEOworQ0EyQjtDQTJCOzExMEQgMTE2MyAxMUJFO0NBMkI7MTEwRCAxMTYzIDExQkU7CitDQTJDO0NBMkM7MTEwRCAxMTYzIDExQkY7Q0EyQzsxMTBEIDExNjMgMTFCRjsKK0NBMkQ7Q0EyRDsxMTBEIDExNjMgMTFDMDtDQTJEOzExMEQgMTE2MyAxMUMwOworQ0EyRTtDQTJFOzExMEQgMTE2MyAxMUMxO0NBMkU7MTEwRCAxMTYzIDExQzE7CitDQTJGO0NBMkY7MTEwRCAxMTYzIDExQzI7Q0EyRjsxMTBEIDExNjMgMTFDMjsKK0NBMzA7Q0EzMDsxMTBEIDExNjQ7Q0EzMDsxMTBEIDExNjQ7CitDQTMxO0NBMzE7MTEwRCAxMTY0IDExQTg7Q0EzMTsxMTBEIDExNjQgMTFBODsKK0NBMzI7Q0EzMjsxMTBEIDExNjQgMTFBOTtDQTMyOzExMEQgMTE2NCAxMUE5OworQ0EzMztDQTMzOzExMEQgMTE2NCAxMUFBO0NBMzM7MTEwRCAxMTY0IDExQUE7CitDQTM0O0NBMzQ7MTEwRCAxMTY0IDExQUI7Q0EzNDsxMTBEIDExNjQgMTFBQjsKK0NBMzU7Q0EzNTsxMTBEIDExNjQgMTFBQztDQTM1OzExMEQgMTE2NCAxMUFDOworQ0EzNjtDQTM2OzExMEQgMTE2NCAxMUFEO0NBMzY7MTEwRCAxMTY0IDExQUQ7CitDQTM3O0NBMzc7MTEwRCAxMTY0IDExQUU7Q0EzNzsxMTBEIDExNjQgMTFBRTsKK0NBMzg7Q0EzODsxMTBEIDExNjQgMTFBRjtDQTM4OzExMEQgMTE2NCAxMUFGOworQ0EzOTtDQTM5OzExMEQgMTE2NCAxMUIwO0NBMzk7MTEwRCAxMTY0IDExQjA7CitDQTNBO0NBM0E7MTEwRCAxMTY0IDExQjE7Q0EzQTsxMTBEIDExNjQgMTFCMTsKK0NBM0I7Q0EzQjsxMTBEIDExNjQgMTFCMjtDQTNCOzExMEQgMTE2NCAxMUIyOworQ0EzQztDQTNDOzExMEQgMTE2NCAxMUIzO0NBM0M7MTEwRCAxMTY0IDExQjM7CitDQTNEO0NBM0Q7MTEwRCAxMTY0IDExQjQ7Q0EzRDsxMTBEIDExNjQgMTFCNDsKK0NBM0U7Q0EzRTsxMTBEIDExNjQgMTFCNTtDQTNFOzExMEQgMTE2NCAxMUI1OworQ0EzRjtDQTNGOzExMEQgMTE2NCAxMUI2O0NBM0Y7MTEwRCAxMTY0IDExQjY7CitDQTQwO0NBNDA7MTEwRCAxMTY0IDExQjc7Q0E0MDsxMTBEIDExNjQgMTFCNzsKK0NBNDE7Q0E0MTsxMTBEIDExNjQgMTFCODtDQTQxOzExMEQgMTE2NCAxMUI4OworQ0E0MjtDQTQyOzExMEQgMTE2NCAxMUI5O0NBNDI7MTEwRCAxMTY0IDExQjk7CitDQTQzO0NBNDM7MTEwRCAxMTY0IDExQkE7Q0E0MzsxMTBEIDExNjQgMTFCQTsKK0NBNDQ7Q0E0NDsxMTBEIDExNjQgMTFCQjtDQTQ0OzExMEQgMTE2NCAxMUJCOworQ0E0NTtDQTQ1OzExMEQgMTE2NCAxMUJDO0NBNDU7MTEwRCAxMTY0IDExQkM7CitDQTQ2O0NBNDY7MTEwRCAxMTY0IDExQkQ7Q0E0NjsxMTBEIDExNjQgMTFCRDsKK0NBNDc7Q0E0NzsxMTBEIDExNjQgMTFCRTtDQTQ3OzExMEQgMTE2NCAxMUJFOworQ0E0ODtDQTQ4OzExMEQgMTE2NCAxMUJGO0NBNDg7MTEwRCAxMTY0IDExQkY7CitDQTQ5O0NBNDk7MTEwRCAxMTY0IDExQzA7Q0E0OTsxMTBEIDExNjQgMTFDMDsKK0NBNEE7Q0E0QTsxMTBEIDExNjQgMTFDMTtDQTRBOzExMEQgMTE2NCAxMUMxOworQ0E0QjtDQTRCOzExMEQgMTE2NCAxMUMyO0NBNEI7MTEwRCAxMTY0IDExQzI7CitDQTRDO0NBNEM7MTEwRCAxMTY1O0NBNEM7MTEwRCAxMTY1OworQ0E0RDtDQTREOzExMEQgMTE2NSAxMUE4O0NBNEQ7MTEwRCAxMTY1IDExQTg7CitDQTRFO0NBNEU7MTEwRCAxMTY1IDExQTk7Q0E0RTsxMTBEIDExNjUgMTFBOTsKK0NBNEY7Q0E0RjsxMTBEIDExNjUgMTFBQTtDQTRGOzExMEQgMTE2NSAxMUFBOworQ0E1MDtDQTUwOzExMEQgMTE2NSAxMUFCO0NBNTA7MTEwRCAxMTY1IDExQUI7CitDQTUxO0NBNTE7MTEwRCAxMTY1IDExQUM7Q0E1MTsxMTBEIDExNjUgMTFBQzsKK0NBNTI7Q0E1MjsxMTBEIDExNjUgMTFBRDtDQTUyOzExMEQgMTE2NSAxMUFEOworQ0E1MztDQTUzOzExMEQgMTE2NSAxMUFFO0NBNTM7MTEwRCAxMTY1IDExQUU7CitDQTU0O0NBNTQ7MTEwRCAxMTY1IDExQUY7Q0E1NDsxMTBEIDExNjUgMTFBRjsKK0NBNTU7Q0E1NTsxMTBEIDExNjUgMTFCMDtDQTU1OzExMEQgMTE2NSAxMUIwOworQ0E1NjtDQTU2OzExMEQgMTE2NSAxMUIxO0NBNTY7MTEwRCAxMTY1IDExQjE7CitDQTU3O0NBNTc7MTEwRCAxMTY1IDExQjI7Q0E1NzsxMTBEIDExNjUgMTFCMjsKK0NBNTg7Q0E1ODsxMTBEIDExNjUgMTFCMztDQTU4OzExMEQgMTE2NSAxMUIzOworQ0E1OTtDQTU5OzExMEQgMTE2NSAxMUI0O0NBNTk7MTEwRCAxMTY1IDExQjQ7CitDQTVBO0NBNUE7MTEwRCAxMTY1IDExQjU7Q0E1QTsxMTBEIDExNjUgMTFCNTsKK0NBNUI7Q0E1QjsxMTBEIDExNjUgMTFCNjtDQTVCOzExMEQgMTE2NSAxMUI2OworQ0E1QztDQTVDOzExMEQgMTE2NSAxMUI3O0NBNUM7MTEwRCAxMTY1IDExQjc7CitDQTVEO0NBNUQ7MTEwRCAxMTY1IDExQjg7Q0E1RDsxMTBEIDExNjUgMTFCODsKK0NBNUU7Q0E1RTsxMTBEIDExNjUgMTFCOTtDQTVFOzExMEQgMTE2NSAxMUI5OworQ0E1RjtDQTVGOzExMEQgMTE2NSAxMUJBO0NBNUY7MTEwRCAxMTY1IDExQkE7CitDQTYwO0NBNjA7MTEwRCAxMTY1IDExQkI7Q0E2MDsxMTBEIDExNjUgMTFCQjsKK0NBNjE7Q0E2MTsxMTBEIDExNjUgMTFCQztDQTYxOzExMEQgMTE2NSAxMUJDOworQ0E2MjtDQTYyOzExMEQgMTE2NSAxMUJEO0NBNjI7MTEwRCAxMTY1IDExQkQ7CitDQTYzO0NBNjM7MTEwRCAxMTY1IDExQkU7Q0E2MzsxMTBEIDExNjUgMTFCRTsKK0NBNjQ7Q0E2NDsxMTBEIDExNjUgMTFCRjtDQTY0OzExMEQgMTE2NSAxMUJGOworQ0E2NTtDQTY1OzExMEQgMTE2NSAxMUMwO0NBNjU7MTEwRCAxMTY1IDExQzA7CitDQTY2O0NBNjY7MTEwRCAxMTY1IDExQzE7Q0E2NjsxMTBEIDExNjUgMTFDMTsKK0NBNjc7Q0E2NzsxMTBEIDExNjUgMTFDMjtDQTY3OzExMEQgMTE2NSAxMUMyOworQ0E2ODtDQTY4OzExMEQgMTE2NjtDQTY4OzExMEQgMTE2NjsKK0NBNjk7Q0E2OTsxMTBEIDExNjYgMTFBODtDQTY5OzExMEQgMTE2NiAxMUE4OworQ0E2QTtDQTZBOzExMEQgMTE2NiAxMUE5O0NBNkE7MTEwRCAxMTY2IDExQTk7CitDQTZCO0NBNkI7MTEwRCAxMTY2IDExQUE7Q0E2QjsxMTBEIDExNjYgMTFBQTsKK0NBNkM7Q0E2QzsxMTBEIDExNjYgMTFBQjtDQTZDOzExMEQgMTE2NiAxMUFCOworQ0E2RDtDQTZEOzExMEQgMTE2NiAxMUFDO0NBNkQ7MTEwRCAxMTY2IDExQUM7CitDQTZFO0NBNkU7MTEwRCAxMTY2IDExQUQ7Q0E2RTsxMTBEIDExNjYgMTFBRDsKK0NBNkY7Q0E2RjsxMTBEIDExNjYgMTFBRTtDQTZGOzExMEQgMTE2NiAxMUFFOworQ0E3MDtDQTcwOzExMEQgMTE2NiAxMUFGO0NBNzA7MTEwRCAxMTY2IDExQUY7CitDQTcxO0NBNzE7MTEwRCAxMTY2IDExQjA7Q0E3MTsxMTBEIDExNjYgMTFCMDsKK0NBNzI7Q0E3MjsxMTBEIDExNjYgMTFCMTtDQTcyOzExMEQgMTE2NiAxMUIxOworQ0E3MztDQTczOzExMEQgMTE2NiAxMUIyO0NBNzM7MTEwRCAxMTY2IDExQjI7CitDQTc0O0NBNzQ7MTEwRCAxMTY2IDExQjM7Q0E3NDsxMTBEIDExNjYgMTFCMzsKK0NBNzU7Q0E3NTsxMTBEIDExNjYgMTFCNDtDQTc1OzExMEQgMTE2NiAxMUI0OworQ0E3NjtDQTc2OzExMEQgMTE2NiAxMUI1O0NBNzY7MTEwRCAxMTY2IDExQjU7CitDQTc3O0NBNzc7MTEwRCAxMTY2IDExQjY7Q0E3NzsxMTBEIDExNjYgMTFCNjsKK0NBNzg7Q0E3ODsxMTBEIDExNjYgMTFCNztDQTc4OzExMEQgMTE2NiAxMUI3OworQ0E3OTtDQTc5OzExMEQgMTE2NiAxMUI4O0NBNzk7MTEwRCAxMTY2IDExQjg7CitDQTdBO0NBN0E7MTEwRCAxMTY2IDExQjk7Q0E3QTsxMTBEIDExNjYgMTFCOTsKK0NBN0I7Q0E3QjsxMTBEIDExNjYgMTFCQTtDQTdCOzExMEQgMTE2NiAxMUJBOworQ0E3QztDQTdDOzExMEQgMTE2NiAxMUJCO0NBN0M7MTEwRCAxMTY2IDExQkI7CitDQTdEO0NBN0Q7MTEwRCAxMTY2IDExQkM7Q0E3RDsxMTBEIDExNjYgMTFCQzsKK0NBN0U7Q0E3RTsxMTBEIDExNjYgMTFCRDtDQTdFOzExMEQgMTE2NiAxMUJEOworQ0E3RjtDQTdGOzExMEQgMTE2NiAxMUJFO0NBN0Y7MTEwRCAxMTY2IDExQkU7CitDQTgwO0NBODA7MTEwRCAxMTY2IDExQkY7Q0E4MDsxMTBEIDExNjYgMTFCRjsKK0NBODE7Q0E4MTsxMTBEIDExNjYgMTFDMDtDQTgxOzExMEQgMTE2NiAxMUMwOworQ0E4MjtDQTgyOzExMEQgMTE2NiAxMUMxO0NBODI7MTEwRCAxMTY2IDExQzE7CitDQTgzO0NBODM7MTEwRCAxMTY2IDExQzI7Q0E4MzsxMTBEIDExNjYgMTFDMjsKK0NBODQ7Q0E4NDsxMTBEIDExNjc7Q0E4NDsxMTBEIDExNjc7CitDQTg1O0NBODU7MTEwRCAxMTY3IDExQTg7Q0E4NTsxMTBEIDExNjcgMTFBODsKK0NBODY7Q0E4NjsxMTBEIDExNjcgMTFBOTtDQTg2OzExMEQgMTE2NyAxMUE5OworQ0E4NztDQTg3OzExMEQgMTE2NyAxMUFBO0NBODc7MTEwRCAxMTY3IDExQUE7CitDQTg4O0NBODg7MTEwRCAxMTY3IDExQUI7Q0E4ODsxMTBEIDExNjcgMTFBQjsKK0NBODk7Q0E4OTsxMTBEIDExNjcgMTFBQztDQTg5OzExMEQgMTE2NyAxMUFDOworQ0E4QTtDQThBOzExMEQgMTE2NyAxMUFEO0NBOEE7MTEwRCAxMTY3IDExQUQ7CitDQThCO0NBOEI7MTEwRCAxMTY3IDExQUU7Q0E4QjsxMTBEIDExNjcgMTFBRTsKK0NBOEM7Q0E4QzsxMTBEIDExNjcgMTFBRjtDQThDOzExMEQgMTE2NyAxMUFGOworQ0E4RDtDQThEOzExMEQgMTE2NyAxMUIwO0NBOEQ7MTEwRCAxMTY3IDExQjA7CitDQThFO0NBOEU7MTEwRCAxMTY3IDExQjE7Q0E4RTsxMTBEIDExNjcgMTFCMTsKK0NBOEY7Q0E4RjsxMTBEIDExNjcgMTFCMjtDQThGOzExMEQgMTE2NyAxMUIyOworQ0E5MDtDQTkwOzExMEQgMTE2NyAxMUIzO0NBOTA7MTEwRCAxMTY3IDExQjM7CitDQTkxO0NBOTE7MTEwRCAxMTY3IDExQjQ7Q0E5MTsxMTBEIDExNjcgMTFCNDsKK0NBOTI7Q0E5MjsxMTBEIDExNjcgMTFCNTtDQTkyOzExMEQgMTE2NyAxMUI1OworQ0E5MztDQTkzOzExMEQgMTE2NyAxMUI2O0NBOTM7MTEwRCAxMTY3IDExQjY7CitDQTk0O0NBOTQ7MTEwRCAxMTY3IDExQjc7Q0E5NDsxMTBEIDExNjcgMTFCNzsKK0NBOTU7Q0E5NTsxMTBEIDExNjcgMTFCODtDQTk1OzExMEQgMTE2NyAxMUI4OworQ0E5NjtDQTk2OzExMEQgMTE2NyAxMUI5O0NBOTY7MTEwRCAxMTY3IDExQjk7CitDQTk3O0NBOTc7MTEwRCAxMTY3IDExQkE7Q0E5NzsxMTBEIDExNjcgMTFCQTsKK0NBOTg7Q0E5ODsxMTBEIDExNjcgMTFCQjtDQTk4OzExMEQgMTE2NyAxMUJCOworQ0E5OTtDQTk5OzExMEQgMTE2NyAxMUJDO0NBOTk7MTEwRCAxMTY3IDExQkM7CitDQTlBO0NBOUE7MTEwRCAxMTY3IDExQkQ7Q0E5QTsxMTBEIDExNjcgMTFCRDsKK0NBOUI7Q0E5QjsxMTBEIDExNjcgMTFCRTtDQTlCOzExMEQgMTE2NyAxMUJFOworQ0E5QztDQTlDOzExMEQgMTE2NyAxMUJGO0NBOUM7MTEwRCAxMTY3IDExQkY7CitDQTlEO0NBOUQ7MTEwRCAxMTY3IDExQzA7Q0E5RDsxMTBEIDExNjcgMTFDMDsKK0NBOUU7Q0E5RTsxMTBEIDExNjcgMTFDMTtDQTlFOzExMEQgMTE2NyAxMUMxOworQ0E5RjtDQTlGOzExMEQgMTE2NyAxMUMyO0NBOUY7MTEwRCAxMTY3IDExQzI7CitDQUEwO0NBQTA7MTEwRCAxMTY4O0NBQTA7MTEwRCAxMTY4OworQ0FBMTtDQUExOzExMEQgMTE2OCAxMUE4O0NBQTE7MTEwRCAxMTY4IDExQTg7CitDQUEyO0NBQTI7MTEwRCAxMTY4IDExQTk7Q0FBMjsxMTBEIDExNjggMTFBOTsKK0NBQTM7Q0FBMzsxMTBEIDExNjggMTFBQTtDQUEzOzExMEQgMTE2OCAxMUFBOworQ0FBNDtDQUE0OzExMEQgMTE2OCAxMUFCO0NBQTQ7MTEwRCAxMTY4IDExQUI7CitDQUE1O0NBQTU7MTEwRCAxMTY4IDExQUM7Q0FBNTsxMTBEIDExNjggMTFBQzsKK0NBQTY7Q0FBNjsxMTBEIDExNjggMTFBRDtDQUE2OzExMEQgMTE2OCAxMUFEOworQ0FBNztDQUE3OzExMEQgMTE2OCAxMUFFO0NBQTc7MTEwRCAxMTY4IDExQUU7CitDQUE4O0NBQTg7MTEwRCAxMTY4IDExQUY7Q0FBODsxMTBEIDExNjggMTFBRjsKK0NBQTk7Q0FBOTsxMTBEIDExNjggMTFCMDtDQUE5OzExMEQgMTE2OCAxMUIwOworQ0FBQTtDQUFBOzExMEQgMTE2OCAxMUIxO0NBQUE7MTEwRCAxMTY4IDExQjE7CitDQUFCO0NBQUI7MTEwRCAxMTY4IDExQjI7Q0FBQjsxMTBEIDExNjggMTFCMjsKK0NBQUM7Q0FBQzsxMTBEIDExNjggMTFCMztDQUFDOzExMEQgMTE2OCAxMUIzOworQ0FBRDtDQUFEOzExMEQgMTE2OCAxMUI0O0NBQUQ7MTEwRCAxMTY4IDExQjQ7CitDQUFFO0NBQUU7MTEwRCAxMTY4IDExQjU7Q0FBRTsxMTBEIDExNjggMTFCNTsKK0NBQUY7Q0FBRjsxMTBEIDExNjggMTFCNjtDQUFGOzExMEQgMTE2OCAxMUI2OworQ0FCMDtDQUIwOzExMEQgMTE2OCAxMUI3O0NBQjA7MTEwRCAxMTY4IDExQjc7CitDQUIxO0NBQjE7MTEwRCAxMTY4IDExQjg7Q0FCMTsxMTBEIDExNjggMTFCODsKK0NBQjI7Q0FCMjsxMTBEIDExNjggMTFCOTtDQUIyOzExMEQgMTE2OCAxMUI5OworQ0FCMztDQUIzOzExMEQgMTE2OCAxMUJBO0NBQjM7MTEwRCAxMTY4IDExQkE7CitDQUI0O0NBQjQ7MTEwRCAxMTY4IDExQkI7Q0FCNDsxMTBEIDExNjggMTFCQjsKK0NBQjU7Q0FCNTsxMTBEIDExNjggMTFCQztDQUI1OzExMEQgMTE2OCAxMUJDOworQ0FCNjtDQUI2OzExMEQgMTE2OCAxMUJEO0NBQjY7MTEwRCAxMTY4IDExQkQ7CitDQUI3O0NBQjc7MTEwRCAxMTY4IDExQkU7Q0FCNzsxMTBEIDExNjggMTFCRTsKK0NBQjg7Q0FCODsxMTBEIDExNjggMTFCRjtDQUI4OzExMEQgMTE2OCAxMUJGOworQ0FCOTtDQUI5OzExMEQgMTE2OCAxMUMwO0NBQjk7MTEwRCAxMTY4IDExQzA7CitDQUJBO0NBQkE7MTEwRCAxMTY4IDExQzE7Q0FCQTsxMTBEIDExNjggMTFDMTsKK0NBQkI7Q0FCQjsxMTBEIDExNjggMTFDMjtDQUJCOzExMEQgMTE2OCAxMUMyOworQ0FCQztDQUJDOzExMEQgMTE2OTtDQUJDOzExMEQgMTE2OTsKK0NBQkQ7Q0FCRDsxMTBEIDExNjkgMTFBODtDQUJEOzExMEQgMTE2OSAxMUE4OworQ0FCRTtDQUJFOzExMEQgMTE2OSAxMUE5O0NBQkU7MTEwRCAxMTY5IDExQTk7CitDQUJGO0NBQkY7MTEwRCAxMTY5IDExQUE7Q0FCRjsxMTBEIDExNjkgMTFBQTsKK0NBQzA7Q0FDMDsxMTBEIDExNjkgMTFBQjtDQUMwOzExMEQgMTE2OSAxMUFCOworQ0FDMTtDQUMxOzExMEQgMTE2OSAxMUFDO0NBQzE7MTEwRCAxMTY5IDExQUM7CitDQUMyO0NBQzI7MTEwRCAxMTY5IDExQUQ7Q0FDMjsxMTBEIDExNjkgMTFBRDsKK0NBQzM7Q0FDMzsxMTBEIDExNjkgMTFBRTtDQUMzOzExMEQgMTE2OSAxMUFFOworQ0FDNDtDQUM0OzExMEQgMTE2OSAxMUFGO0NBQzQ7MTEwRCAxMTY5IDExQUY7CitDQUM1O0NBQzU7MTEwRCAxMTY5IDExQjA7Q0FDNTsxMTBEIDExNjkgMTFCMDsKK0NBQzY7Q0FDNjsxMTBEIDExNjkgMTFCMTtDQUM2OzExMEQgMTE2OSAxMUIxOworQ0FDNztDQUM3OzExMEQgMTE2OSAxMUIyO0NBQzc7MTEwRCAxMTY5IDExQjI7CitDQUM4O0NBQzg7MTEwRCAxMTY5IDExQjM7Q0FDODsxMTBEIDExNjkgMTFCMzsKK0NBQzk7Q0FDOTsxMTBEIDExNjkgMTFCNDtDQUM5OzExMEQgMTE2OSAxMUI0OworQ0FDQTtDQUNBOzExMEQgMTE2OSAxMUI1O0NBQ0E7MTEwRCAxMTY5IDExQjU7CitDQUNCO0NBQ0I7MTEwRCAxMTY5IDExQjY7Q0FDQjsxMTBEIDExNjkgMTFCNjsKK0NBQ0M7Q0FDQzsxMTBEIDExNjkgMTFCNztDQUNDOzExMEQgMTE2OSAxMUI3OworQ0FDRDtDQUNEOzExMEQgMTE2OSAxMUI4O0NBQ0Q7MTEwRCAxMTY5IDExQjg7CitDQUNFO0NBQ0U7MTEwRCAxMTY5IDExQjk7Q0FDRTsxMTBEIDExNjkgMTFCOTsKK0NBQ0Y7Q0FDRjsxMTBEIDExNjkgMTFCQTtDQUNGOzExMEQgMTE2OSAxMUJBOworQ0FEMDtDQUQwOzExMEQgMTE2OSAxMUJCO0NBRDA7MTEwRCAxMTY5IDExQkI7CitDQUQxO0NBRDE7MTEwRCAxMTY5IDExQkM7Q0FEMTsxMTBEIDExNjkgMTFCQzsKK0NBRDI7Q0FEMjsxMTBEIDExNjkgMTFCRDtDQUQyOzExMEQgMTE2OSAxMUJEOworQ0FEMztDQUQzOzExMEQgMTE2OSAxMUJFO0NBRDM7MTEwRCAxMTY5IDExQkU7CitDQUQ0O0NBRDQ7MTEwRCAxMTY5IDExQkY7Q0FENDsxMTBEIDExNjkgMTFCRjsKK0NBRDU7Q0FENTsxMTBEIDExNjkgMTFDMDtDQUQ1OzExMEQgMTE2OSAxMUMwOworQ0FENjtDQUQ2OzExMEQgMTE2OSAxMUMxO0NBRDY7MTEwRCAxMTY5IDExQzE7CitDQUQ3O0NBRDc7MTEwRCAxMTY5IDExQzI7Q0FENzsxMTBEIDExNjkgMTFDMjsKK0NBRDg7Q0FEODsxMTBEIDExNkE7Q0FEODsxMTBEIDExNkE7CitDQUQ5O0NBRDk7MTEwRCAxMTZBIDExQTg7Q0FEOTsxMTBEIDExNkEgMTFBODsKK0NBREE7Q0FEQTsxMTBEIDExNkEgMTFBOTtDQURBOzExMEQgMTE2QSAxMUE5OworQ0FEQjtDQURCOzExMEQgMTE2QSAxMUFBO0NBREI7MTEwRCAxMTZBIDExQUE7CitDQURDO0NBREM7MTEwRCAxMTZBIDExQUI7Q0FEQzsxMTBEIDExNkEgMTFBQjsKK0NBREQ7Q0FERDsxMTBEIDExNkEgMTFBQztDQUREOzExMEQgMTE2QSAxMUFDOworQ0FERTtDQURFOzExMEQgMTE2QSAxMUFEO0NBREU7MTEwRCAxMTZBIDExQUQ7CitDQURGO0NBREY7MTEwRCAxMTZBIDExQUU7Q0FERjsxMTBEIDExNkEgMTFBRTsKK0NBRTA7Q0FFMDsxMTBEIDExNkEgMTFBRjtDQUUwOzExMEQgMTE2QSAxMUFGOworQ0FFMTtDQUUxOzExMEQgMTE2QSAxMUIwO0NBRTE7MTEwRCAxMTZBIDExQjA7CitDQUUyO0NBRTI7MTEwRCAxMTZBIDExQjE7Q0FFMjsxMTBEIDExNkEgMTFCMTsKK0NBRTM7Q0FFMzsxMTBEIDExNkEgMTFCMjtDQUUzOzExMEQgMTE2QSAxMUIyOworQ0FFNDtDQUU0OzExMEQgMTE2QSAxMUIzO0NBRTQ7MTEwRCAxMTZBIDExQjM7CitDQUU1O0NBRTU7MTEwRCAxMTZBIDExQjQ7Q0FFNTsxMTBEIDExNkEgMTFCNDsKK0NBRTY7Q0FFNjsxMTBEIDExNkEgMTFCNTtDQUU2OzExMEQgMTE2QSAxMUI1OworQ0FFNztDQUU3OzExMEQgMTE2QSAxMUI2O0NBRTc7MTEwRCAxMTZBIDExQjY7CitDQUU4O0NBRTg7MTEwRCAxMTZBIDExQjc7Q0FFODsxMTBEIDExNkEgMTFCNzsKK0NBRTk7Q0FFOTsxMTBEIDExNkEgMTFCODtDQUU5OzExMEQgMTE2QSAxMUI4OworQ0FFQTtDQUVBOzExMEQgMTE2QSAxMUI5O0NBRUE7MTEwRCAxMTZBIDExQjk7CitDQUVCO0NBRUI7MTEwRCAxMTZBIDExQkE7Q0FFQjsxMTBEIDExNkEgMTFCQTsKK0NBRUM7Q0FFQzsxMTBEIDExNkEgMTFCQjtDQUVDOzExMEQgMTE2QSAxMUJCOworQ0FFRDtDQUVEOzExMEQgMTE2QSAxMUJDO0NBRUQ7MTEwRCAxMTZBIDExQkM7CitDQUVFO0NBRUU7MTEwRCAxMTZBIDExQkQ7Q0FFRTsxMTBEIDExNkEgMTFCRDsKK0NBRUY7Q0FFRjsxMTBEIDExNkEgMTFCRTtDQUVGOzExMEQgMTE2QSAxMUJFOworQ0FGMDtDQUYwOzExMEQgMTE2QSAxMUJGO0NBRjA7MTEwRCAxMTZBIDExQkY7CitDQUYxO0NBRjE7MTEwRCAxMTZBIDExQzA7Q0FGMTsxMTBEIDExNkEgMTFDMDsKK0NBRjI7Q0FGMjsxMTBEIDExNkEgMTFDMTtDQUYyOzExMEQgMTE2QSAxMUMxOworQ0FGMztDQUYzOzExMEQgMTE2QSAxMUMyO0NBRjM7MTEwRCAxMTZBIDExQzI7CitDQUY0O0NBRjQ7MTEwRCAxMTZCO0NBRjQ7MTEwRCAxMTZCOworQ0FGNTtDQUY1OzExMEQgMTE2QiAxMUE4O0NBRjU7MTEwRCAxMTZCIDExQTg7CitDQUY2O0NBRjY7MTEwRCAxMTZCIDExQTk7Q0FGNjsxMTBEIDExNkIgMTFBOTsKK0NBRjc7Q0FGNzsxMTBEIDExNkIgMTFBQTtDQUY3OzExMEQgMTE2QiAxMUFBOworQ0FGODtDQUY4OzExMEQgMTE2QiAxMUFCO0NBRjg7MTEwRCAxMTZCIDExQUI7CitDQUY5O0NBRjk7MTEwRCAxMTZCIDExQUM7Q0FGOTsxMTBEIDExNkIgMTFBQzsKK0NBRkE7Q0FGQTsxMTBEIDExNkIgMTFBRDtDQUZBOzExMEQgMTE2QiAxMUFEOworQ0FGQjtDQUZCOzExMEQgMTE2QiAxMUFFO0NBRkI7MTEwRCAxMTZCIDExQUU7CitDQUZDO0NBRkM7MTEwRCAxMTZCIDExQUY7Q0FGQzsxMTBEIDExNkIgMTFBRjsKK0NBRkQ7Q0FGRDsxMTBEIDExNkIgMTFCMDtDQUZEOzExMEQgMTE2QiAxMUIwOworQ0FGRTtDQUZFOzExMEQgMTE2QiAxMUIxO0NBRkU7MTEwRCAxMTZCIDExQjE7CitDQUZGO0NBRkY7MTEwRCAxMTZCIDExQjI7Q0FGRjsxMTBEIDExNkIgMTFCMjsKK0NCMDA7Q0IwMDsxMTBEIDExNkIgMTFCMztDQjAwOzExMEQgMTE2QiAxMUIzOworQ0IwMTtDQjAxOzExMEQgMTE2QiAxMUI0O0NCMDE7MTEwRCAxMTZCIDExQjQ7CitDQjAyO0NCMDI7MTEwRCAxMTZCIDExQjU7Q0IwMjsxMTBEIDExNkIgMTFCNTsKK0NCMDM7Q0IwMzsxMTBEIDExNkIgMTFCNjtDQjAzOzExMEQgMTE2QiAxMUI2OworQ0IwNDtDQjA0OzExMEQgMTE2QiAxMUI3O0NCMDQ7MTEwRCAxMTZCIDExQjc7CitDQjA1O0NCMDU7MTEwRCAxMTZCIDExQjg7Q0IwNTsxMTBEIDExNkIgMTFCODsKK0NCMDY7Q0IwNjsxMTBEIDExNkIgMTFCOTtDQjA2OzExMEQgMTE2QiAxMUI5OworQ0IwNztDQjA3OzExMEQgMTE2QiAxMUJBO0NCMDc7MTEwRCAxMTZCIDExQkE7CitDQjA4O0NCMDg7MTEwRCAxMTZCIDExQkI7Q0IwODsxMTBEIDExNkIgMTFCQjsKK0NCMDk7Q0IwOTsxMTBEIDExNkIgMTFCQztDQjA5OzExMEQgMTE2QiAxMUJDOworQ0IwQTtDQjBBOzExMEQgMTE2QiAxMUJEO0NCMEE7MTEwRCAxMTZCIDExQkQ7CitDQjBCO0NCMEI7MTEwRCAxMTZCIDExQkU7Q0IwQjsxMTBEIDExNkIgMTFCRTsKK0NCMEM7Q0IwQzsxMTBEIDExNkIgMTFCRjtDQjBDOzExMEQgMTE2QiAxMUJGOworQ0IwRDtDQjBEOzExMEQgMTE2QiAxMUMwO0NCMEQ7MTEwRCAxMTZCIDExQzA7CitDQjBFO0NCMEU7MTEwRCAxMTZCIDExQzE7Q0IwRTsxMTBEIDExNkIgMTFDMTsKK0NCMEY7Q0IwRjsxMTBEIDExNkIgMTFDMjtDQjBGOzExMEQgMTE2QiAxMUMyOworQ0IxMDtDQjEwOzExMEQgMTE2QztDQjEwOzExMEQgMTE2QzsKK0NCMTE7Q0IxMTsxMTBEIDExNkMgMTFBODtDQjExOzExMEQgMTE2QyAxMUE4OworQ0IxMjtDQjEyOzExMEQgMTE2QyAxMUE5O0NCMTI7MTEwRCAxMTZDIDExQTk7CitDQjEzO0NCMTM7MTEwRCAxMTZDIDExQUE7Q0IxMzsxMTBEIDExNkMgMTFBQTsKK0NCMTQ7Q0IxNDsxMTBEIDExNkMgMTFBQjtDQjE0OzExMEQgMTE2QyAxMUFCOworQ0IxNTtDQjE1OzExMEQgMTE2QyAxMUFDO0NCMTU7MTEwRCAxMTZDIDExQUM7CitDQjE2O0NCMTY7MTEwRCAxMTZDIDExQUQ7Q0IxNjsxMTBEIDExNkMgMTFBRDsKK0NCMTc7Q0IxNzsxMTBEIDExNkMgMTFBRTtDQjE3OzExMEQgMTE2QyAxMUFFOworQ0IxODtDQjE4OzExMEQgMTE2QyAxMUFGO0NCMTg7MTEwRCAxMTZDIDExQUY7CitDQjE5O0NCMTk7MTEwRCAxMTZDIDExQjA7Q0IxOTsxMTBEIDExNkMgMTFCMDsKK0NCMUE7Q0IxQTsxMTBEIDExNkMgMTFCMTtDQjFBOzExMEQgMTE2QyAxMUIxOworQ0IxQjtDQjFCOzExMEQgMTE2QyAxMUIyO0NCMUI7MTEwRCAxMTZDIDExQjI7CitDQjFDO0NCMUM7MTEwRCAxMTZDIDExQjM7Q0IxQzsxMTBEIDExNkMgMTFCMzsKK0NCMUQ7Q0IxRDsxMTBEIDExNkMgMTFCNDtDQjFEOzExMEQgMTE2QyAxMUI0OworQ0IxRTtDQjFFOzExMEQgMTE2QyAxMUI1O0NCMUU7MTEwRCAxMTZDIDExQjU7CitDQjFGO0NCMUY7MTEwRCAxMTZDIDExQjY7Q0IxRjsxMTBEIDExNkMgMTFCNjsKK0NCMjA7Q0IyMDsxMTBEIDExNkMgMTFCNztDQjIwOzExMEQgMTE2QyAxMUI3OworQ0IyMTtDQjIxOzExMEQgMTE2QyAxMUI4O0NCMjE7MTEwRCAxMTZDIDExQjg7CitDQjIyO0NCMjI7MTEwRCAxMTZDIDExQjk7Q0IyMjsxMTBEIDExNkMgMTFCOTsKK0NCMjM7Q0IyMzsxMTBEIDExNkMgMTFCQTtDQjIzOzExMEQgMTE2QyAxMUJBOworQ0IyNDtDQjI0OzExMEQgMTE2QyAxMUJCO0NCMjQ7MTEwRCAxMTZDIDExQkI7CitDQjI1O0NCMjU7MTEwRCAxMTZDIDExQkM7Q0IyNTsxMTBEIDExNkMgMTFCQzsKK0NCMjY7Q0IyNjsxMTBEIDExNkMgMTFCRDtDQjI2OzExMEQgMTE2QyAxMUJEOworQ0IyNztDQjI3OzExMEQgMTE2QyAxMUJFO0NCMjc7MTEwRCAxMTZDIDExQkU7CitDQjI4O0NCMjg7MTEwRCAxMTZDIDExQkY7Q0IyODsxMTBEIDExNkMgMTFCRjsKK0NCMjk7Q0IyOTsxMTBEIDExNkMgMTFDMDtDQjI5OzExMEQgMTE2QyAxMUMwOworQ0IyQTtDQjJBOzExMEQgMTE2QyAxMUMxO0NCMkE7MTEwRCAxMTZDIDExQzE7CitDQjJCO0NCMkI7MTEwRCAxMTZDIDExQzI7Q0IyQjsxMTBEIDExNkMgMTFDMjsKK0NCMkM7Q0IyQzsxMTBEIDExNkQ7Q0IyQzsxMTBEIDExNkQ7CitDQjJEO0NCMkQ7MTEwRCAxMTZEIDExQTg7Q0IyRDsxMTBEIDExNkQgMTFBODsKK0NCMkU7Q0IyRTsxMTBEIDExNkQgMTFBOTtDQjJFOzExMEQgMTE2RCAxMUE5OworQ0IyRjtDQjJGOzExMEQgMTE2RCAxMUFBO0NCMkY7MTEwRCAxMTZEIDExQUE7CitDQjMwO0NCMzA7MTEwRCAxMTZEIDExQUI7Q0IzMDsxMTBEIDExNkQgMTFBQjsKK0NCMzE7Q0IzMTsxMTBEIDExNkQgMTFBQztDQjMxOzExMEQgMTE2RCAxMUFDOworQ0IzMjtDQjMyOzExMEQgMTE2RCAxMUFEO0NCMzI7MTEwRCAxMTZEIDExQUQ7CitDQjMzO0NCMzM7MTEwRCAxMTZEIDExQUU7Q0IzMzsxMTBEIDExNkQgMTFBRTsKK0NCMzQ7Q0IzNDsxMTBEIDExNkQgMTFBRjtDQjM0OzExMEQgMTE2RCAxMUFGOworQ0IzNTtDQjM1OzExMEQgMTE2RCAxMUIwO0NCMzU7MTEwRCAxMTZEIDExQjA7CitDQjM2O0NCMzY7MTEwRCAxMTZEIDExQjE7Q0IzNjsxMTBEIDExNkQgMTFCMTsKK0NCMzc7Q0IzNzsxMTBEIDExNkQgMTFCMjtDQjM3OzExMEQgMTE2RCAxMUIyOworQ0IzODtDQjM4OzExMEQgMTE2RCAxMUIzO0NCMzg7MTEwRCAxMTZEIDExQjM7CitDQjM5O0NCMzk7MTEwRCAxMTZEIDExQjQ7Q0IzOTsxMTBEIDExNkQgMTFCNDsKK0NCM0E7Q0IzQTsxMTBEIDExNkQgMTFCNTtDQjNBOzExMEQgMTE2RCAxMUI1OworQ0IzQjtDQjNCOzExMEQgMTE2RCAxMUI2O0NCM0I7MTEwRCAxMTZEIDExQjY7CitDQjNDO0NCM0M7MTEwRCAxMTZEIDExQjc7Q0IzQzsxMTBEIDExNkQgMTFCNzsKK0NCM0Q7Q0IzRDsxMTBEIDExNkQgMTFCODtDQjNEOzExMEQgMTE2RCAxMUI4OworQ0IzRTtDQjNFOzExMEQgMTE2RCAxMUI5O0NCM0U7MTEwRCAxMTZEIDExQjk7CitDQjNGO0NCM0Y7MTEwRCAxMTZEIDExQkE7Q0IzRjsxMTBEIDExNkQgMTFCQTsKK0NCNDA7Q0I0MDsxMTBEIDExNkQgMTFCQjtDQjQwOzExMEQgMTE2RCAxMUJCOworQ0I0MTtDQjQxOzExMEQgMTE2RCAxMUJDO0NCNDE7MTEwRCAxMTZEIDExQkM7CitDQjQyO0NCNDI7MTEwRCAxMTZEIDExQkQ7Q0I0MjsxMTBEIDExNkQgMTFCRDsKK0NCNDM7Q0I0MzsxMTBEIDExNkQgMTFCRTtDQjQzOzExMEQgMTE2RCAxMUJFOworQ0I0NDtDQjQ0OzExMEQgMTE2RCAxMUJGO0NCNDQ7MTEwRCAxMTZEIDExQkY7CitDQjQ1O0NCNDU7MTEwRCAxMTZEIDExQzA7Q0I0NTsxMTBEIDExNkQgMTFDMDsKK0NCNDY7Q0I0NjsxMTBEIDExNkQgMTFDMTtDQjQ2OzExMEQgMTE2RCAxMUMxOworQ0I0NztDQjQ3OzExMEQgMTE2RCAxMUMyO0NCNDc7MTEwRCAxMTZEIDExQzI7CitDQjQ4O0NCNDg7MTEwRCAxMTZFO0NCNDg7MTEwRCAxMTZFOworQ0I0OTtDQjQ5OzExMEQgMTE2RSAxMUE4O0NCNDk7MTEwRCAxMTZFIDExQTg7CitDQjRBO0NCNEE7MTEwRCAxMTZFIDExQTk7Q0I0QTsxMTBEIDExNkUgMTFBOTsKK0NCNEI7Q0I0QjsxMTBEIDExNkUgMTFBQTtDQjRCOzExMEQgMTE2RSAxMUFBOworQ0I0QztDQjRDOzExMEQgMTE2RSAxMUFCO0NCNEM7MTEwRCAxMTZFIDExQUI7CitDQjREO0NCNEQ7MTEwRCAxMTZFIDExQUM7Q0I0RDsxMTBEIDExNkUgMTFBQzsKK0NCNEU7Q0I0RTsxMTBEIDExNkUgMTFBRDtDQjRFOzExMEQgMTE2RSAxMUFEOworQ0I0RjtDQjRGOzExMEQgMTE2RSAxMUFFO0NCNEY7MTEwRCAxMTZFIDExQUU7CitDQjUwO0NCNTA7MTEwRCAxMTZFIDExQUY7Q0I1MDsxMTBEIDExNkUgMTFBRjsKK0NCNTE7Q0I1MTsxMTBEIDExNkUgMTFCMDtDQjUxOzExMEQgMTE2RSAxMUIwOworQ0I1MjtDQjUyOzExMEQgMTE2RSAxMUIxO0NCNTI7MTEwRCAxMTZFIDExQjE7CitDQjUzO0NCNTM7MTEwRCAxMTZFIDExQjI7Q0I1MzsxMTBEIDExNkUgMTFCMjsKK0NCNTQ7Q0I1NDsxMTBEIDExNkUgMTFCMztDQjU0OzExMEQgMTE2RSAxMUIzOworQ0I1NTtDQjU1OzExMEQgMTE2RSAxMUI0O0NCNTU7MTEwRCAxMTZFIDExQjQ7CitDQjU2O0NCNTY7MTEwRCAxMTZFIDExQjU7Q0I1NjsxMTBEIDExNkUgMTFCNTsKK0NCNTc7Q0I1NzsxMTBEIDExNkUgMTFCNjtDQjU3OzExMEQgMTE2RSAxMUI2OworQ0I1ODtDQjU4OzExMEQgMTE2RSAxMUI3O0NCNTg7MTEwRCAxMTZFIDExQjc7CitDQjU5O0NCNTk7MTEwRCAxMTZFIDExQjg7Q0I1OTsxMTBEIDExNkUgMTFCODsKK0NCNUE7Q0I1QTsxMTBEIDExNkUgMTFCOTtDQjVBOzExMEQgMTE2RSAxMUI5OworQ0I1QjtDQjVCOzExMEQgMTE2RSAxMUJBO0NCNUI7MTEwRCAxMTZFIDExQkE7CitDQjVDO0NCNUM7MTEwRCAxMTZFIDExQkI7Q0I1QzsxMTBEIDExNkUgMTFCQjsKK0NCNUQ7Q0I1RDsxMTBEIDExNkUgMTFCQztDQjVEOzExMEQgMTE2RSAxMUJDOworQ0I1RTtDQjVFOzExMEQgMTE2RSAxMUJEO0NCNUU7MTEwRCAxMTZFIDExQkQ7CitDQjVGO0NCNUY7MTEwRCAxMTZFIDExQkU7Q0I1RjsxMTBEIDExNkUgMTFCRTsKK0NCNjA7Q0I2MDsxMTBEIDExNkUgMTFCRjtDQjYwOzExMEQgMTE2RSAxMUJGOworQ0I2MTtDQjYxOzExMEQgMTE2RSAxMUMwO0NCNjE7MTEwRCAxMTZFIDExQzA7CitDQjYyO0NCNjI7MTEwRCAxMTZFIDExQzE7Q0I2MjsxMTBEIDExNkUgMTFDMTsKK0NCNjM7Q0I2MzsxMTBEIDExNkUgMTFDMjtDQjYzOzExMEQgMTE2RSAxMUMyOworQ0I2NDtDQjY0OzExMEQgMTE2RjtDQjY0OzExMEQgMTE2RjsKK0NCNjU7Q0I2NTsxMTBEIDExNkYgMTFBODtDQjY1OzExMEQgMTE2RiAxMUE4OworQ0I2NjtDQjY2OzExMEQgMTE2RiAxMUE5O0NCNjY7MTEwRCAxMTZGIDExQTk7CitDQjY3O0NCNjc7MTEwRCAxMTZGIDExQUE7Q0I2NzsxMTBEIDExNkYgMTFBQTsKK0NCNjg7Q0I2ODsxMTBEIDExNkYgMTFBQjtDQjY4OzExMEQgMTE2RiAxMUFCOworQ0I2OTtDQjY5OzExMEQgMTE2RiAxMUFDO0NCNjk7MTEwRCAxMTZGIDExQUM7CitDQjZBO0NCNkE7MTEwRCAxMTZGIDExQUQ7Q0I2QTsxMTBEIDExNkYgMTFBRDsKK0NCNkI7Q0I2QjsxMTBEIDExNkYgMTFBRTtDQjZCOzExMEQgMTE2RiAxMUFFOworQ0I2QztDQjZDOzExMEQgMTE2RiAxMUFGO0NCNkM7MTEwRCAxMTZGIDExQUY7CitDQjZEO0NCNkQ7MTEwRCAxMTZGIDExQjA7Q0I2RDsxMTBEIDExNkYgMTFCMDsKK0NCNkU7Q0I2RTsxMTBEIDExNkYgMTFCMTtDQjZFOzExMEQgMTE2RiAxMUIxOworQ0I2RjtDQjZGOzExMEQgMTE2RiAxMUIyO0NCNkY7MTEwRCAxMTZGIDExQjI7CitDQjcwO0NCNzA7MTEwRCAxMTZGIDExQjM7Q0I3MDsxMTBEIDExNkYgMTFCMzsKK0NCNzE7Q0I3MTsxMTBEIDExNkYgMTFCNDtDQjcxOzExMEQgMTE2RiAxMUI0OworQ0I3MjtDQjcyOzExMEQgMTE2RiAxMUI1O0NCNzI7MTEwRCAxMTZGIDExQjU7CitDQjczO0NCNzM7MTEwRCAxMTZGIDExQjY7Q0I3MzsxMTBEIDExNkYgMTFCNjsKK0NCNzQ7Q0I3NDsxMTBEIDExNkYgMTFCNztDQjc0OzExMEQgMTE2RiAxMUI3OworQ0I3NTtDQjc1OzExMEQgMTE2RiAxMUI4O0NCNzU7MTEwRCAxMTZGIDExQjg7CitDQjc2O0NCNzY7MTEwRCAxMTZGIDExQjk7Q0I3NjsxMTBEIDExNkYgMTFCOTsKK0NCNzc7Q0I3NzsxMTBEIDExNkYgMTFCQTtDQjc3OzExMEQgMTE2RiAxMUJBOworQ0I3ODtDQjc4OzExMEQgMTE2RiAxMUJCO0NCNzg7MTEwRCAxMTZGIDExQkI7CitDQjc5O0NCNzk7MTEwRCAxMTZGIDExQkM7Q0I3OTsxMTBEIDExNkYgMTFCQzsKK0NCN0E7Q0I3QTsxMTBEIDExNkYgMTFCRDtDQjdBOzExMEQgMTE2RiAxMUJEOworQ0I3QjtDQjdCOzExMEQgMTE2RiAxMUJFO0NCN0I7MTEwRCAxMTZGIDExQkU7CitDQjdDO0NCN0M7MTEwRCAxMTZGIDExQkY7Q0I3QzsxMTBEIDExNkYgMTFCRjsKK0NCN0Q7Q0I3RDsxMTBEIDExNkYgMTFDMDtDQjdEOzExMEQgMTE2RiAxMUMwOworQ0I3RTtDQjdFOzExMEQgMTE2RiAxMUMxO0NCN0U7MTEwRCAxMTZGIDExQzE7CitDQjdGO0NCN0Y7MTEwRCAxMTZGIDExQzI7Q0I3RjsxMTBEIDExNkYgMTFDMjsKK0NCODA7Q0I4MDsxMTBEIDExNzA7Q0I4MDsxMTBEIDExNzA7CitDQjgxO0NCODE7MTEwRCAxMTcwIDExQTg7Q0I4MTsxMTBEIDExNzAgMTFBODsKK0NCODI7Q0I4MjsxMTBEIDExNzAgMTFBOTtDQjgyOzExMEQgMTE3MCAxMUE5OworQ0I4MztDQjgzOzExMEQgMTE3MCAxMUFBO0NCODM7MTEwRCAxMTcwIDExQUE7CitDQjg0O0NCODQ7MTEwRCAxMTcwIDExQUI7Q0I4NDsxMTBEIDExNzAgMTFBQjsKK0NCODU7Q0I4NTsxMTBEIDExNzAgMTFBQztDQjg1OzExMEQgMTE3MCAxMUFDOworQ0I4NjtDQjg2OzExMEQgMTE3MCAxMUFEO0NCODY7MTEwRCAxMTcwIDExQUQ7CitDQjg3O0NCODc7MTEwRCAxMTcwIDExQUU7Q0I4NzsxMTBEIDExNzAgMTFBRTsKK0NCODg7Q0I4ODsxMTBEIDExNzAgMTFBRjtDQjg4OzExMEQgMTE3MCAxMUFGOworQ0I4OTtDQjg5OzExMEQgMTE3MCAxMUIwO0NCODk7MTEwRCAxMTcwIDExQjA7CitDQjhBO0NCOEE7MTEwRCAxMTcwIDExQjE7Q0I4QTsxMTBEIDExNzAgMTFCMTsKK0NCOEI7Q0I4QjsxMTBEIDExNzAgMTFCMjtDQjhCOzExMEQgMTE3MCAxMUIyOworQ0I4QztDQjhDOzExMEQgMTE3MCAxMUIzO0NCOEM7MTEwRCAxMTcwIDExQjM7CitDQjhEO0NCOEQ7MTEwRCAxMTcwIDExQjQ7Q0I4RDsxMTBEIDExNzAgMTFCNDsKK0NCOEU7Q0I4RTsxMTBEIDExNzAgMTFCNTtDQjhFOzExMEQgMTE3MCAxMUI1OworQ0I4RjtDQjhGOzExMEQgMTE3MCAxMUI2O0NCOEY7MTEwRCAxMTcwIDExQjY7CitDQjkwO0NCOTA7MTEwRCAxMTcwIDExQjc7Q0I5MDsxMTBEIDExNzAgMTFCNzsKK0NCOTE7Q0I5MTsxMTBEIDExNzAgMTFCODtDQjkxOzExMEQgMTE3MCAxMUI4OworQ0I5MjtDQjkyOzExMEQgMTE3MCAxMUI5O0NCOTI7MTEwRCAxMTcwIDExQjk7CitDQjkzO0NCOTM7MTEwRCAxMTcwIDExQkE7Q0I5MzsxMTBEIDExNzAgMTFCQTsKK0NCOTQ7Q0I5NDsxMTBEIDExNzAgMTFCQjtDQjk0OzExMEQgMTE3MCAxMUJCOworQ0I5NTtDQjk1OzExMEQgMTE3MCAxMUJDO0NCOTU7MTEwRCAxMTcwIDExQkM7CitDQjk2O0NCOTY7MTEwRCAxMTcwIDExQkQ7Q0I5NjsxMTBEIDExNzAgMTFCRDsKK0NCOTc7Q0I5NzsxMTBEIDExNzAgMTFCRTtDQjk3OzExMEQgMTE3MCAxMUJFOworQ0I5ODtDQjk4OzExMEQgMTE3MCAxMUJGO0NCOTg7MTEwRCAxMTcwIDExQkY7CitDQjk5O0NCOTk7MTEwRCAxMTcwIDExQzA7Q0I5OTsxMTBEIDExNzAgMTFDMDsKK0NCOUE7Q0I5QTsxMTBEIDExNzAgMTFDMTtDQjlBOzExMEQgMTE3MCAxMUMxOworQ0I5QjtDQjlCOzExMEQgMTE3MCAxMUMyO0NCOUI7MTEwRCAxMTcwIDExQzI7CitDQjlDO0NCOUM7MTEwRCAxMTcxO0NCOUM7MTEwRCAxMTcxOworQ0I5RDtDQjlEOzExMEQgMTE3MSAxMUE4O0NCOUQ7MTEwRCAxMTcxIDExQTg7CitDQjlFO0NCOUU7MTEwRCAxMTcxIDExQTk7Q0I5RTsxMTBEIDExNzEgMTFBOTsKK0NCOUY7Q0I5RjsxMTBEIDExNzEgMTFBQTtDQjlGOzExMEQgMTE3MSAxMUFBOworQ0JBMDtDQkEwOzExMEQgMTE3MSAxMUFCO0NCQTA7MTEwRCAxMTcxIDExQUI7CitDQkExO0NCQTE7MTEwRCAxMTcxIDExQUM7Q0JBMTsxMTBEIDExNzEgMTFBQzsKK0NCQTI7Q0JBMjsxMTBEIDExNzEgMTFBRDtDQkEyOzExMEQgMTE3MSAxMUFEOworQ0JBMztDQkEzOzExMEQgMTE3MSAxMUFFO0NCQTM7MTEwRCAxMTcxIDExQUU7CitDQkE0O0NCQTQ7MTEwRCAxMTcxIDExQUY7Q0JBNDsxMTBEIDExNzEgMTFBRjsKK0NCQTU7Q0JBNTsxMTBEIDExNzEgMTFCMDtDQkE1OzExMEQgMTE3MSAxMUIwOworQ0JBNjtDQkE2OzExMEQgMTE3MSAxMUIxO0NCQTY7MTEwRCAxMTcxIDExQjE7CitDQkE3O0NCQTc7MTEwRCAxMTcxIDExQjI7Q0JBNzsxMTBEIDExNzEgMTFCMjsKK0NCQTg7Q0JBODsxMTBEIDExNzEgMTFCMztDQkE4OzExMEQgMTE3MSAxMUIzOworQ0JBOTtDQkE5OzExMEQgMTE3MSAxMUI0O0NCQTk7MTEwRCAxMTcxIDExQjQ7CitDQkFBO0NCQUE7MTEwRCAxMTcxIDExQjU7Q0JBQTsxMTBEIDExNzEgMTFCNTsKK0NCQUI7Q0JBQjsxMTBEIDExNzEgMTFCNjtDQkFCOzExMEQgMTE3MSAxMUI2OworQ0JBQztDQkFDOzExMEQgMTE3MSAxMUI3O0NCQUM7MTEwRCAxMTcxIDExQjc7CitDQkFEO0NCQUQ7MTEwRCAxMTcxIDExQjg7Q0JBRDsxMTBEIDExNzEgMTFCODsKK0NCQUU7Q0JBRTsxMTBEIDExNzEgMTFCOTtDQkFFOzExMEQgMTE3MSAxMUI5OworQ0JBRjtDQkFGOzExMEQgMTE3MSAxMUJBO0NCQUY7MTEwRCAxMTcxIDExQkE7CitDQkIwO0NCQjA7MTEwRCAxMTcxIDExQkI7Q0JCMDsxMTBEIDExNzEgMTFCQjsKK0NCQjE7Q0JCMTsxMTBEIDExNzEgMTFCQztDQkIxOzExMEQgMTE3MSAxMUJDOworQ0JCMjtDQkIyOzExMEQgMTE3MSAxMUJEO0NCQjI7MTEwRCAxMTcxIDExQkQ7CitDQkIzO0NCQjM7MTEwRCAxMTcxIDExQkU7Q0JCMzsxMTBEIDExNzEgMTFCRTsKK0NCQjQ7Q0JCNDsxMTBEIDExNzEgMTFCRjtDQkI0OzExMEQgMTE3MSAxMUJGOworQ0JCNTtDQkI1OzExMEQgMTE3MSAxMUMwO0NCQjU7MTEwRCAxMTcxIDExQzA7CitDQkI2O0NCQjY7MTEwRCAxMTcxIDExQzE7Q0JCNjsxMTBEIDExNzEgMTFDMTsKK0NCQjc7Q0JCNzsxMTBEIDExNzEgMTFDMjtDQkI3OzExMEQgMTE3MSAxMUMyOworQ0JCODtDQkI4OzExMEQgMTE3MjtDQkI4OzExMEQgMTE3MjsKK0NCQjk7Q0JCOTsxMTBEIDExNzIgMTFBODtDQkI5OzExMEQgMTE3MiAxMUE4OworQ0JCQTtDQkJBOzExMEQgMTE3MiAxMUE5O0NCQkE7MTEwRCAxMTcyIDExQTk7CitDQkJCO0NCQkI7MTEwRCAxMTcyIDExQUE7Q0JCQjsxMTBEIDExNzIgMTFBQTsKK0NCQkM7Q0JCQzsxMTBEIDExNzIgMTFBQjtDQkJDOzExMEQgMTE3MiAxMUFCOworQ0JCRDtDQkJEOzExMEQgMTE3MiAxMUFDO0NCQkQ7MTEwRCAxMTcyIDExQUM7CitDQkJFO0NCQkU7MTEwRCAxMTcyIDExQUQ7Q0JCRTsxMTBEIDExNzIgMTFBRDsKK0NCQkY7Q0JCRjsxMTBEIDExNzIgMTFBRTtDQkJGOzExMEQgMTE3MiAxMUFFOworQ0JDMDtDQkMwOzExMEQgMTE3MiAxMUFGO0NCQzA7MTEwRCAxMTcyIDExQUY7CitDQkMxO0NCQzE7MTEwRCAxMTcyIDExQjA7Q0JDMTsxMTBEIDExNzIgMTFCMDsKK0NCQzI7Q0JDMjsxMTBEIDExNzIgMTFCMTtDQkMyOzExMEQgMTE3MiAxMUIxOworQ0JDMztDQkMzOzExMEQgMTE3MiAxMUIyO0NCQzM7MTEwRCAxMTcyIDExQjI7CitDQkM0O0NCQzQ7MTEwRCAxMTcyIDExQjM7Q0JDNDsxMTBEIDExNzIgMTFCMzsKK0NCQzU7Q0JDNTsxMTBEIDExNzIgMTFCNDtDQkM1OzExMEQgMTE3MiAxMUI0OworQ0JDNjtDQkM2OzExMEQgMTE3MiAxMUI1O0NCQzY7MTEwRCAxMTcyIDExQjU7CitDQkM3O0NCQzc7MTEwRCAxMTcyIDExQjY7Q0JDNzsxMTBEIDExNzIgMTFCNjsKK0NCQzg7Q0JDODsxMTBEIDExNzIgMTFCNztDQkM4OzExMEQgMTE3MiAxMUI3OworQ0JDOTtDQkM5OzExMEQgMTE3MiAxMUI4O0NCQzk7MTEwRCAxMTcyIDExQjg7CitDQkNBO0NCQ0E7MTEwRCAxMTcyIDExQjk7Q0JDQTsxMTBEIDExNzIgMTFCOTsKK0NCQ0I7Q0JDQjsxMTBEIDExNzIgMTFCQTtDQkNCOzExMEQgMTE3MiAxMUJBOworQ0JDQztDQkNDOzExMEQgMTE3MiAxMUJCO0NCQ0M7MTEwRCAxMTcyIDExQkI7CitDQkNEO0NCQ0Q7MTEwRCAxMTcyIDExQkM7Q0JDRDsxMTBEIDExNzIgMTFCQzsKK0NCQ0U7Q0JDRTsxMTBEIDExNzIgMTFCRDtDQkNFOzExMEQgMTE3MiAxMUJEOworQ0JDRjtDQkNGOzExMEQgMTE3MiAxMUJFO0NCQ0Y7MTEwRCAxMTcyIDExQkU7CitDQkQwO0NCRDA7MTEwRCAxMTcyIDExQkY7Q0JEMDsxMTBEIDExNzIgMTFCRjsKK0NCRDE7Q0JEMTsxMTBEIDExNzIgMTFDMDtDQkQxOzExMEQgMTE3MiAxMUMwOworQ0JEMjtDQkQyOzExMEQgMTE3MiAxMUMxO0NCRDI7MTEwRCAxMTcyIDExQzE7CitDQkQzO0NCRDM7MTEwRCAxMTcyIDExQzI7Q0JEMzsxMTBEIDExNzIgMTFDMjsKK0NCRDQ7Q0JENDsxMTBEIDExNzM7Q0JENDsxMTBEIDExNzM7CitDQkQ1O0NCRDU7MTEwRCAxMTczIDExQTg7Q0JENTsxMTBEIDExNzMgMTFBODsKK0NCRDY7Q0JENjsxMTBEIDExNzMgMTFBOTtDQkQ2OzExMEQgMTE3MyAxMUE5OworQ0JENztDQkQ3OzExMEQgMTE3MyAxMUFBO0NCRDc7MTEwRCAxMTczIDExQUE7CitDQkQ4O0NCRDg7MTEwRCAxMTczIDExQUI7Q0JEODsxMTBEIDExNzMgMTFBQjsKK0NCRDk7Q0JEOTsxMTBEIDExNzMgMTFBQztDQkQ5OzExMEQgMTE3MyAxMUFDOworQ0JEQTtDQkRBOzExMEQgMTE3MyAxMUFEO0NCREE7MTEwRCAxMTczIDExQUQ7CitDQkRCO0NCREI7MTEwRCAxMTczIDExQUU7Q0JEQjsxMTBEIDExNzMgMTFBRTsKK0NCREM7Q0JEQzsxMTBEIDExNzMgMTFBRjtDQkRDOzExMEQgMTE3MyAxMUFGOworQ0JERDtDQkREOzExMEQgMTE3MyAxMUIwO0NCREQ7MTEwRCAxMTczIDExQjA7CitDQkRFO0NCREU7MTEwRCAxMTczIDExQjE7Q0JERTsxMTBEIDExNzMgMTFCMTsKK0NCREY7Q0JERjsxMTBEIDExNzMgMTFCMjtDQkRGOzExMEQgMTE3MyAxMUIyOworQ0JFMDtDQkUwOzExMEQgMTE3MyAxMUIzO0NCRTA7MTEwRCAxMTczIDExQjM7CitDQkUxO0NCRTE7MTEwRCAxMTczIDExQjQ7Q0JFMTsxMTBEIDExNzMgMTFCNDsKK0NCRTI7Q0JFMjsxMTBEIDExNzMgMTFCNTtDQkUyOzExMEQgMTE3MyAxMUI1OworQ0JFMztDQkUzOzExMEQgMTE3MyAxMUI2O0NCRTM7MTEwRCAxMTczIDExQjY7CitDQkU0O0NCRTQ7MTEwRCAxMTczIDExQjc7Q0JFNDsxMTBEIDExNzMgMTFCNzsKK0NCRTU7Q0JFNTsxMTBEIDExNzMgMTFCODtDQkU1OzExMEQgMTE3MyAxMUI4OworQ0JFNjtDQkU2OzExMEQgMTE3MyAxMUI5O0NCRTY7MTEwRCAxMTczIDExQjk7CitDQkU3O0NCRTc7MTEwRCAxMTczIDExQkE7Q0JFNzsxMTBEIDExNzMgMTFCQTsKK0NCRTg7Q0JFODsxMTBEIDExNzMgMTFCQjtDQkU4OzExMEQgMTE3MyAxMUJCOworQ0JFOTtDQkU5OzExMEQgMTE3MyAxMUJDO0NCRTk7MTEwRCAxMTczIDExQkM7CitDQkVBO0NCRUE7MTEwRCAxMTczIDExQkQ7Q0JFQTsxMTBEIDExNzMgMTFCRDsKK0NCRUI7Q0JFQjsxMTBEIDExNzMgMTFCRTtDQkVCOzExMEQgMTE3MyAxMUJFOworQ0JFQztDQkVDOzExMEQgMTE3MyAxMUJGO0NCRUM7MTEwRCAxMTczIDExQkY7CitDQkVEO0NCRUQ7MTEwRCAxMTczIDExQzA7Q0JFRDsxMTBEIDExNzMgMTFDMDsKK0NCRUU7Q0JFRTsxMTBEIDExNzMgMTFDMTtDQkVFOzExMEQgMTE3MyAxMUMxOworQ0JFRjtDQkVGOzExMEQgMTE3MyAxMUMyO0NCRUY7MTEwRCAxMTczIDExQzI7CitDQkYwO0NCRjA7MTEwRCAxMTc0O0NCRjA7MTEwRCAxMTc0OworQ0JGMTtDQkYxOzExMEQgMTE3NCAxMUE4O0NCRjE7MTEwRCAxMTc0IDExQTg7CitDQkYyO0NCRjI7MTEwRCAxMTc0IDExQTk7Q0JGMjsxMTBEIDExNzQgMTFBOTsKK0NCRjM7Q0JGMzsxMTBEIDExNzQgMTFBQTtDQkYzOzExMEQgMTE3NCAxMUFBOworQ0JGNDtDQkY0OzExMEQgMTE3NCAxMUFCO0NCRjQ7MTEwRCAxMTc0IDExQUI7CitDQkY1O0NCRjU7MTEwRCAxMTc0IDExQUM7Q0JGNTsxMTBEIDExNzQgMTFBQzsKK0NCRjY7Q0JGNjsxMTBEIDExNzQgMTFBRDtDQkY2OzExMEQgMTE3NCAxMUFEOworQ0JGNztDQkY3OzExMEQgMTE3NCAxMUFFO0NCRjc7MTEwRCAxMTc0IDExQUU7CitDQkY4O0NCRjg7MTEwRCAxMTc0IDExQUY7Q0JGODsxMTBEIDExNzQgMTFBRjsKK0NCRjk7Q0JGOTsxMTBEIDExNzQgMTFCMDtDQkY5OzExMEQgMTE3NCAxMUIwOworQ0JGQTtDQkZBOzExMEQgMTE3NCAxMUIxO0NCRkE7MTEwRCAxMTc0IDExQjE7CitDQkZCO0NCRkI7MTEwRCAxMTc0IDExQjI7Q0JGQjsxMTBEIDExNzQgMTFCMjsKK0NCRkM7Q0JGQzsxMTBEIDExNzQgMTFCMztDQkZDOzExMEQgMTE3NCAxMUIzOworQ0JGRDtDQkZEOzExMEQgMTE3NCAxMUI0O0NCRkQ7MTEwRCAxMTc0IDExQjQ7CitDQkZFO0NCRkU7MTEwRCAxMTc0IDExQjU7Q0JGRTsxMTBEIDExNzQgMTFCNTsKK0NCRkY7Q0JGRjsxMTBEIDExNzQgMTFCNjtDQkZGOzExMEQgMTE3NCAxMUI2OworQ0MwMDtDQzAwOzExMEQgMTE3NCAxMUI3O0NDMDA7MTEwRCAxMTc0IDExQjc7CitDQzAxO0NDMDE7MTEwRCAxMTc0IDExQjg7Q0MwMTsxMTBEIDExNzQgMTFCODsKK0NDMDI7Q0MwMjsxMTBEIDExNzQgMTFCOTtDQzAyOzExMEQgMTE3NCAxMUI5OworQ0MwMztDQzAzOzExMEQgMTE3NCAxMUJBO0NDMDM7MTEwRCAxMTc0IDExQkE7CitDQzA0O0NDMDQ7MTEwRCAxMTc0IDExQkI7Q0MwNDsxMTBEIDExNzQgMTFCQjsKK0NDMDU7Q0MwNTsxMTBEIDExNzQgMTFCQztDQzA1OzExMEQgMTE3NCAxMUJDOworQ0MwNjtDQzA2OzExMEQgMTE3NCAxMUJEO0NDMDY7MTEwRCAxMTc0IDExQkQ7CitDQzA3O0NDMDc7MTEwRCAxMTc0IDExQkU7Q0MwNzsxMTBEIDExNzQgMTFCRTsKK0NDMDg7Q0MwODsxMTBEIDExNzQgMTFCRjtDQzA4OzExMEQgMTE3NCAxMUJGOworQ0MwOTtDQzA5OzExMEQgMTE3NCAxMUMwO0NDMDk7MTEwRCAxMTc0IDExQzA7CitDQzBBO0NDMEE7MTEwRCAxMTc0IDExQzE7Q0MwQTsxMTBEIDExNzQgMTFDMTsKK0NDMEI7Q0MwQjsxMTBEIDExNzQgMTFDMjtDQzBCOzExMEQgMTE3NCAxMUMyOworQ0MwQztDQzBDOzExMEQgMTE3NTtDQzBDOzExMEQgMTE3NTsKK0NDMEQ7Q0MwRDsxMTBEIDExNzUgMTFBODtDQzBEOzExMEQgMTE3NSAxMUE4OworQ0MwRTtDQzBFOzExMEQgMTE3NSAxMUE5O0NDMEU7MTEwRCAxMTc1IDExQTk7CitDQzBGO0NDMEY7MTEwRCAxMTc1IDExQUE7Q0MwRjsxMTBEIDExNzUgMTFBQTsKK0NDMTA7Q0MxMDsxMTBEIDExNzUgMTFBQjtDQzEwOzExMEQgMTE3NSAxMUFCOworQ0MxMTtDQzExOzExMEQgMTE3NSAxMUFDO0NDMTE7MTEwRCAxMTc1IDExQUM7CitDQzEyO0NDMTI7MTEwRCAxMTc1IDExQUQ7Q0MxMjsxMTBEIDExNzUgMTFBRDsKK0NDMTM7Q0MxMzsxMTBEIDExNzUgMTFBRTtDQzEzOzExMEQgMTE3NSAxMUFFOworQ0MxNDtDQzE0OzExMEQgMTE3NSAxMUFGO0NDMTQ7MTEwRCAxMTc1IDExQUY7CitDQzE1O0NDMTU7MTEwRCAxMTc1IDExQjA7Q0MxNTsxMTBEIDExNzUgMTFCMDsKK0NDMTY7Q0MxNjsxMTBEIDExNzUgMTFCMTtDQzE2OzExMEQgMTE3NSAxMUIxOworQ0MxNztDQzE3OzExMEQgMTE3NSAxMUIyO0NDMTc7MTEwRCAxMTc1IDExQjI7CitDQzE4O0NDMTg7MTEwRCAxMTc1IDExQjM7Q0MxODsxMTBEIDExNzUgMTFCMzsKK0NDMTk7Q0MxOTsxMTBEIDExNzUgMTFCNDtDQzE5OzExMEQgMTE3NSAxMUI0OworQ0MxQTtDQzFBOzExMEQgMTE3NSAxMUI1O0NDMUE7MTEwRCAxMTc1IDExQjU7CitDQzFCO0NDMUI7MTEwRCAxMTc1IDExQjY7Q0MxQjsxMTBEIDExNzUgMTFCNjsKK0NDMUM7Q0MxQzsxMTBEIDExNzUgMTFCNztDQzFDOzExMEQgMTE3NSAxMUI3OworQ0MxRDtDQzFEOzExMEQgMTE3NSAxMUI4O0NDMUQ7MTEwRCAxMTc1IDExQjg7CitDQzFFO0NDMUU7MTEwRCAxMTc1IDExQjk7Q0MxRTsxMTBEIDExNzUgMTFCOTsKK0NDMUY7Q0MxRjsxMTBEIDExNzUgMTFCQTtDQzFGOzExMEQgMTE3NSAxMUJBOworQ0MyMDtDQzIwOzExMEQgMTE3NSAxMUJCO0NDMjA7MTEwRCAxMTc1IDExQkI7CitDQzIxO0NDMjE7MTEwRCAxMTc1IDExQkM7Q0MyMTsxMTBEIDExNzUgMTFCQzsKK0NDMjI7Q0MyMjsxMTBEIDExNzUgMTFCRDtDQzIyOzExMEQgMTE3NSAxMUJEOworQ0MyMztDQzIzOzExMEQgMTE3NSAxMUJFO0NDMjM7MTEwRCAxMTc1IDExQkU7CitDQzI0O0NDMjQ7MTEwRCAxMTc1IDExQkY7Q0MyNDsxMTBEIDExNzUgMTFCRjsKK0NDMjU7Q0MyNTsxMTBEIDExNzUgMTFDMDtDQzI1OzExMEQgMTE3NSAxMUMwOworQ0MyNjtDQzI2OzExMEQgMTE3NSAxMUMxO0NDMjY7MTEwRCAxMTc1IDExQzE7CitDQzI3O0NDMjc7MTEwRCAxMTc1IDExQzI7Q0MyNzsxMTBEIDExNzUgMTFDMjsKK0NDMjg7Q0MyODsxMTBFIDExNjE7Q0MyODsxMTBFIDExNjE7CitDQzI5O0NDMjk7MTEwRSAxMTYxIDExQTg7Q0MyOTsxMTBFIDExNjEgMTFBODsKK0NDMkE7Q0MyQTsxMTBFIDExNjEgMTFBOTtDQzJBOzExMEUgMTE2MSAxMUE5OworQ0MyQjtDQzJCOzExMEUgMTE2MSAxMUFBO0NDMkI7MTEwRSAxMTYxIDExQUE7CitDQzJDO0NDMkM7MTEwRSAxMTYxIDExQUI7Q0MyQzsxMTBFIDExNjEgMTFBQjsKK0NDMkQ7Q0MyRDsxMTBFIDExNjEgMTFBQztDQzJEOzExMEUgMTE2MSAxMUFDOworQ0MyRTtDQzJFOzExMEUgMTE2MSAxMUFEO0NDMkU7MTEwRSAxMTYxIDExQUQ7CitDQzJGO0NDMkY7MTEwRSAxMTYxIDExQUU7Q0MyRjsxMTBFIDExNjEgMTFBRTsKK0NDMzA7Q0MzMDsxMTBFIDExNjEgMTFBRjtDQzMwOzExMEUgMTE2MSAxMUFGOworQ0MzMTtDQzMxOzExMEUgMTE2MSAxMUIwO0NDMzE7MTEwRSAxMTYxIDExQjA7CitDQzMyO0NDMzI7MTEwRSAxMTYxIDExQjE7Q0MzMjsxMTBFIDExNjEgMTFCMTsKK0NDMzM7Q0MzMzsxMTBFIDExNjEgMTFCMjtDQzMzOzExMEUgMTE2MSAxMUIyOworQ0MzNDtDQzM0OzExMEUgMTE2MSAxMUIzO0NDMzQ7MTEwRSAxMTYxIDExQjM7CitDQzM1O0NDMzU7MTEwRSAxMTYxIDExQjQ7Q0MzNTsxMTBFIDExNjEgMTFCNDsKK0NDMzY7Q0MzNjsxMTBFIDExNjEgMTFCNTtDQzM2OzExMEUgMTE2MSAxMUI1OworQ0MzNztDQzM3OzExMEUgMTE2MSAxMUI2O0NDMzc7MTEwRSAxMTYxIDExQjY7CitDQzM4O0NDMzg7MTEwRSAxMTYxIDExQjc7Q0MzODsxMTBFIDExNjEgMTFCNzsKK0NDMzk7Q0MzOTsxMTBFIDExNjEgMTFCODtDQzM5OzExMEUgMTE2MSAxMUI4OworQ0MzQTtDQzNBOzExMEUgMTE2MSAxMUI5O0NDM0E7MTEwRSAxMTYxIDExQjk7CitDQzNCO0NDM0I7MTEwRSAxMTYxIDExQkE7Q0MzQjsxMTBFIDExNjEgMTFCQTsKK0NDM0M7Q0MzQzsxMTBFIDExNjEgMTFCQjtDQzNDOzExMEUgMTE2MSAxMUJCOworQ0MzRDtDQzNEOzExMEUgMTE2MSAxMUJDO0NDM0Q7MTEwRSAxMTYxIDExQkM7CitDQzNFO0NDM0U7MTEwRSAxMTYxIDExQkQ7Q0MzRTsxMTBFIDExNjEgMTFCRDsKK0NDM0Y7Q0MzRjsxMTBFIDExNjEgMTFCRTtDQzNGOzExMEUgMTE2MSAxMUJFOworQ0M0MDtDQzQwOzExMEUgMTE2MSAxMUJGO0NDNDA7MTEwRSAxMTYxIDExQkY7CitDQzQxO0NDNDE7MTEwRSAxMTYxIDExQzA7Q0M0MTsxMTBFIDExNjEgMTFDMDsKK0NDNDI7Q0M0MjsxMTBFIDExNjEgMTFDMTtDQzQyOzExMEUgMTE2MSAxMUMxOworQ0M0MztDQzQzOzExMEUgMTE2MSAxMUMyO0NDNDM7MTEwRSAxMTYxIDExQzI7CitDQzQ0O0NDNDQ7MTEwRSAxMTYyO0NDNDQ7MTEwRSAxMTYyOworQ0M0NTtDQzQ1OzExMEUgMTE2MiAxMUE4O0NDNDU7MTEwRSAxMTYyIDExQTg7CitDQzQ2O0NDNDY7MTEwRSAxMTYyIDExQTk7Q0M0NjsxMTBFIDExNjIgMTFBOTsKK0NDNDc7Q0M0NzsxMTBFIDExNjIgMTFBQTtDQzQ3OzExMEUgMTE2MiAxMUFBOworQ0M0ODtDQzQ4OzExMEUgMTE2MiAxMUFCO0NDNDg7MTEwRSAxMTYyIDExQUI7CitDQzQ5O0NDNDk7MTEwRSAxMTYyIDExQUM7Q0M0OTsxMTBFIDExNjIgMTFBQzsKK0NDNEE7Q0M0QTsxMTBFIDExNjIgMTFBRDtDQzRBOzExMEUgMTE2MiAxMUFEOworQ0M0QjtDQzRCOzExMEUgMTE2MiAxMUFFO0NDNEI7MTEwRSAxMTYyIDExQUU7CitDQzRDO0NDNEM7MTEwRSAxMTYyIDExQUY7Q0M0QzsxMTBFIDExNjIgMTFBRjsKK0NDNEQ7Q0M0RDsxMTBFIDExNjIgMTFCMDtDQzREOzExMEUgMTE2MiAxMUIwOworQ0M0RTtDQzRFOzExMEUgMTE2MiAxMUIxO0NDNEU7MTEwRSAxMTYyIDExQjE7CitDQzRGO0NDNEY7MTEwRSAxMTYyIDExQjI7Q0M0RjsxMTBFIDExNjIgMTFCMjsKK0NDNTA7Q0M1MDsxMTBFIDExNjIgMTFCMztDQzUwOzExMEUgMTE2MiAxMUIzOworQ0M1MTtDQzUxOzExMEUgMTE2MiAxMUI0O0NDNTE7MTEwRSAxMTYyIDExQjQ7CitDQzUyO0NDNTI7MTEwRSAxMTYyIDExQjU7Q0M1MjsxMTBFIDExNjIgMTFCNTsKK0NDNTM7Q0M1MzsxMTBFIDExNjIgMTFCNjtDQzUzOzExMEUgMTE2MiAxMUI2OworQ0M1NDtDQzU0OzExMEUgMTE2MiAxMUI3O0NDNTQ7MTEwRSAxMTYyIDExQjc7CitDQzU1O0NDNTU7MTEwRSAxMTYyIDExQjg7Q0M1NTsxMTBFIDExNjIgMTFCODsKK0NDNTY7Q0M1NjsxMTBFIDExNjIgMTFCOTtDQzU2OzExMEUgMTE2MiAxMUI5OworQ0M1NztDQzU3OzExMEUgMTE2MiAxMUJBO0NDNTc7MTEwRSAxMTYyIDExQkE7CitDQzU4O0NDNTg7MTEwRSAxMTYyIDExQkI7Q0M1ODsxMTBFIDExNjIgMTFCQjsKK0NDNTk7Q0M1OTsxMTBFIDExNjIgMTFCQztDQzU5OzExMEUgMTE2MiAxMUJDOworQ0M1QTtDQzVBOzExMEUgMTE2MiAxMUJEO0NDNUE7MTEwRSAxMTYyIDExQkQ7CitDQzVCO0NDNUI7MTEwRSAxMTYyIDExQkU7Q0M1QjsxMTBFIDExNjIgMTFCRTsKK0NDNUM7Q0M1QzsxMTBFIDExNjIgMTFCRjtDQzVDOzExMEUgMTE2MiAxMUJGOworQ0M1RDtDQzVEOzExMEUgMTE2MiAxMUMwO0NDNUQ7MTEwRSAxMTYyIDExQzA7CitDQzVFO0NDNUU7MTEwRSAxMTYyIDExQzE7Q0M1RTsxMTBFIDExNjIgMTFDMTsKK0NDNUY7Q0M1RjsxMTBFIDExNjIgMTFDMjtDQzVGOzExMEUgMTE2MiAxMUMyOworQ0M2MDtDQzYwOzExMEUgMTE2MztDQzYwOzExMEUgMTE2MzsKK0NDNjE7Q0M2MTsxMTBFIDExNjMgMTFBODtDQzYxOzExMEUgMTE2MyAxMUE4OworQ0M2MjtDQzYyOzExMEUgMTE2MyAxMUE5O0NDNjI7MTEwRSAxMTYzIDExQTk7CitDQzYzO0NDNjM7MTEwRSAxMTYzIDExQUE7Q0M2MzsxMTBFIDExNjMgMTFBQTsKK0NDNjQ7Q0M2NDsxMTBFIDExNjMgMTFBQjtDQzY0OzExMEUgMTE2MyAxMUFCOworQ0M2NTtDQzY1OzExMEUgMTE2MyAxMUFDO0NDNjU7MTEwRSAxMTYzIDExQUM7CitDQzY2O0NDNjY7MTEwRSAxMTYzIDExQUQ7Q0M2NjsxMTBFIDExNjMgMTFBRDsKK0NDNjc7Q0M2NzsxMTBFIDExNjMgMTFBRTtDQzY3OzExMEUgMTE2MyAxMUFFOworQ0M2ODtDQzY4OzExMEUgMTE2MyAxMUFGO0NDNjg7MTEwRSAxMTYzIDExQUY7CitDQzY5O0NDNjk7MTEwRSAxMTYzIDExQjA7Q0M2OTsxMTBFIDExNjMgMTFCMDsKK0NDNkE7Q0M2QTsxMTBFIDExNjMgMTFCMTtDQzZBOzExMEUgMTE2MyAxMUIxOworQ0M2QjtDQzZCOzExMEUgMTE2MyAxMUIyO0NDNkI7MTEwRSAxMTYzIDExQjI7CitDQzZDO0NDNkM7MTEwRSAxMTYzIDExQjM7Q0M2QzsxMTBFIDExNjMgMTFCMzsKK0NDNkQ7Q0M2RDsxMTBFIDExNjMgMTFCNDtDQzZEOzExMEUgMTE2MyAxMUI0OworQ0M2RTtDQzZFOzExMEUgMTE2MyAxMUI1O0NDNkU7MTEwRSAxMTYzIDExQjU7CitDQzZGO0NDNkY7MTEwRSAxMTYzIDExQjY7Q0M2RjsxMTBFIDExNjMgMTFCNjsKK0NDNzA7Q0M3MDsxMTBFIDExNjMgMTFCNztDQzcwOzExMEUgMTE2MyAxMUI3OworQ0M3MTtDQzcxOzExMEUgMTE2MyAxMUI4O0NDNzE7MTEwRSAxMTYzIDExQjg7CitDQzcyO0NDNzI7MTEwRSAxMTYzIDExQjk7Q0M3MjsxMTBFIDExNjMgMTFCOTsKK0NDNzM7Q0M3MzsxMTBFIDExNjMgMTFCQTtDQzczOzExMEUgMTE2MyAxMUJBOworQ0M3NDtDQzc0OzExMEUgMTE2MyAxMUJCO0NDNzQ7MTEwRSAxMTYzIDExQkI7CitDQzc1O0NDNzU7MTEwRSAxMTYzIDExQkM7Q0M3NTsxMTBFIDExNjMgMTFCQzsKK0NDNzY7Q0M3NjsxMTBFIDExNjMgMTFCRDtDQzc2OzExMEUgMTE2MyAxMUJEOworQ0M3NztDQzc3OzExMEUgMTE2MyAxMUJFO0NDNzc7MTEwRSAxMTYzIDExQkU7CitDQzc4O0NDNzg7MTEwRSAxMTYzIDExQkY7Q0M3ODsxMTBFIDExNjMgMTFCRjsKK0NDNzk7Q0M3OTsxMTBFIDExNjMgMTFDMDtDQzc5OzExMEUgMTE2MyAxMUMwOworQ0M3QTtDQzdBOzExMEUgMTE2MyAxMUMxO0NDN0E7MTEwRSAxMTYzIDExQzE7CitDQzdCO0NDN0I7MTEwRSAxMTYzIDExQzI7Q0M3QjsxMTBFIDExNjMgMTFDMjsKK0NDN0M7Q0M3QzsxMTBFIDExNjQ7Q0M3QzsxMTBFIDExNjQ7CitDQzdEO0NDN0Q7MTEwRSAxMTY0IDExQTg7Q0M3RDsxMTBFIDExNjQgMTFBODsKK0NDN0U7Q0M3RTsxMTBFIDExNjQgMTFBOTtDQzdFOzExMEUgMTE2NCAxMUE5OworQ0M3RjtDQzdGOzExMEUgMTE2NCAxMUFBO0NDN0Y7MTEwRSAxMTY0IDExQUE7CitDQzgwO0NDODA7MTEwRSAxMTY0IDExQUI7Q0M4MDsxMTBFIDExNjQgMTFBQjsKK0NDODE7Q0M4MTsxMTBFIDExNjQgMTFBQztDQzgxOzExMEUgMTE2NCAxMUFDOworQ0M4MjtDQzgyOzExMEUgMTE2NCAxMUFEO0NDODI7MTEwRSAxMTY0IDExQUQ7CitDQzgzO0NDODM7MTEwRSAxMTY0IDExQUU7Q0M4MzsxMTBFIDExNjQgMTFBRTsKK0NDODQ7Q0M4NDsxMTBFIDExNjQgMTFBRjtDQzg0OzExMEUgMTE2NCAxMUFGOworQ0M4NTtDQzg1OzExMEUgMTE2NCAxMUIwO0NDODU7MTEwRSAxMTY0IDExQjA7CitDQzg2O0NDODY7MTEwRSAxMTY0IDExQjE7Q0M4NjsxMTBFIDExNjQgMTFCMTsKK0NDODc7Q0M4NzsxMTBFIDExNjQgMTFCMjtDQzg3OzExMEUgMTE2NCAxMUIyOworQ0M4ODtDQzg4OzExMEUgMTE2NCAxMUIzO0NDODg7MTEwRSAxMTY0IDExQjM7CitDQzg5O0NDODk7MTEwRSAxMTY0IDExQjQ7Q0M4OTsxMTBFIDExNjQgMTFCNDsKK0NDOEE7Q0M4QTsxMTBFIDExNjQgMTFCNTtDQzhBOzExMEUgMTE2NCAxMUI1OworQ0M4QjtDQzhCOzExMEUgMTE2NCAxMUI2O0NDOEI7MTEwRSAxMTY0IDExQjY7CitDQzhDO0NDOEM7MTEwRSAxMTY0IDExQjc7Q0M4QzsxMTBFIDExNjQgMTFCNzsKK0NDOEQ7Q0M4RDsxMTBFIDExNjQgMTFCODtDQzhEOzExMEUgMTE2NCAxMUI4OworQ0M4RTtDQzhFOzExMEUgMTE2NCAxMUI5O0NDOEU7MTEwRSAxMTY0IDExQjk7CitDQzhGO0NDOEY7MTEwRSAxMTY0IDExQkE7Q0M4RjsxMTBFIDExNjQgMTFCQTsKK0NDOTA7Q0M5MDsxMTBFIDExNjQgMTFCQjtDQzkwOzExMEUgMTE2NCAxMUJCOworQ0M5MTtDQzkxOzExMEUgMTE2NCAxMUJDO0NDOTE7MTEwRSAxMTY0IDExQkM7CitDQzkyO0NDOTI7MTEwRSAxMTY0IDExQkQ7Q0M5MjsxMTBFIDExNjQgMTFCRDsKK0NDOTM7Q0M5MzsxMTBFIDExNjQgMTFCRTtDQzkzOzExMEUgMTE2NCAxMUJFOworQ0M5NDtDQzk0OzExMEUgMTE2NCAxMUJGO0NDOTQ7MTEwRSAxMTY0IDExQkY7CitDQzk1O0NDOTU7MTEwRSAxMTY0IDExQzA7Q0M5NTsxMTBFIDExNjQgMTFDMDsKK0NDOTY7Q0M5NjsxMTBFIDExNjQgMTFDMTtDQzk2OzExMEUgMTE2NCAxMUMxOworQ0M5NztDQzk3OzExMEUgMTE2NCAxMUMyO0NDOTc7MTEwRSAxMTY0IDExQzI7CitDQzk4O0NDOTg7MTEwRSAxMTY1O0NDOTg7MTEwRSAxMTY1OworQ0M5OTtDQzk5OzExMEUgMTE2NSAxMUE4O0NDOTk7MTEwRSAxMTY1IDExQTg7CitDQzlBO0NDOUE7MTEwRSAxMTY1IDExQTk7Q0M5QTsxMTBFIDExNjUgMTFBOTsKK0NDOUI7Q0M5QjsxMTBFIDExNjUgMTFBQTtDQzlCOzExMEUgMTE2NSAxMUFBOworQ0M5QztDQzlDOzExMEUgMTE2NSAxMUFCO0NDOUM7MTEwRSAxMTY1IDExQUI7CitDQzlEO0NDOUQ7MTEwRSAxMTY1IDExQUM7Q0M5RDsxMTBFIDExNjUgMTFBQzsKK0NDOUU7Q0M5RTsxMTBFIDExNjUgMTFBRDtDQzlFOzExMEUgMTE2NSAxMUFEOworQ0M5RjtDQzlGOzExMEUgMTE2NSAxMUFFO0NDOUY7MTEwRSAxMTY1IDExQUU7CitDQ0EwO0NDQTA7MTEwRSAxMTY1IDExQUY7Q0NBMDsxMTBFIDExNjUgMTFBRjsKK0NDQTE7Q0NBMTsxMTBFIDExNjUgMTFCMDtDQ0ExOzExMEUgMTE2NSAxMUIwOworQ0NBMjtDQ0EyOzExMEUgMTE2NSAxMUIxO0NDQTI7MTEwRSAxMTY1IDExQjE7CitDQ0EzO0NDQTM7MTEwRSAxMTY1IDExQjI7Q0NBMzsxMTBFIDExNjUgMTFCMjsKK0NDQTQ7Q0NBNDsxMTBFIDExNjUgMTFCMztDQ0E0OzExMEUgMTE2NSAxMUIzOworQ0NBNTtDQ0E1OzExMEUgMTE2NSAxMUI0O0NDQTU7MTEwRSAxMTY1IDExQjQ7CitDQ0E2O0NDQTY7MTEwRSAxMTY1IDExQjU7Q0NBNjsxMTBFIDExNjUgMTFCNTsKK0NDQTc7Q0NBNzsxMTBFIDExNjUgMTFCNjtDQ0E3OzExMEUgMTE2NSAxMUI2OworQ0NBODtDQ0E4OzExMEUgMTE2NSAxMUI3O0NDQTg7MTEwRSAxMTY1IDExQjc7CitDQ0E5O0NDQTk7MTEwRSAxMTY1IDExQjg7Q0NBOTsxMTBFIDExNjUgMTFCODsKK0NDQUE7Q0NBQTsxMTBFIDExNjUgMTFCOTtDQ0FBOzExMEUgMTE2NSAxMUI5OworQ0NBQjtDQ0FCOzExMEUgMTE2NSAxMUJBO0NDQUI7MTEwRSAxMTY1IDExQkE7CitDQ0FDO0NDQUM7MTEwRSAxMTY1IDExQkI7Q0NBQzsxMTBFIDExNjUgMTFCQjsKK0NDQUQ7Q0NBRDsxMTBFIDExNjUgMTFCQztDQ0FEOzExMEUgMTE2NSAxMUJDOworQ0NBRTtDQ0FFOzExMEUgMTE2NSAxMUJEO0NDQUU7MTEwRSAxMTY1IDExQkQ7CitDQ0FGO0NDQUY7MTEwRSAxMTY1IDExQkU7Q0NBRjsxMTBFIDExNjUgMTFCRTsKK0NDQjA7Q0NCMDsxMTBFIDExNjUgMTFCRjtDQ0IwOzExMEUgMTE2NSAxMUJGOworQ0NCMTtDQ0IxOzExMEUgMTE2NSAxMUMwO0NDQjE7MTEwRSAxMTY1IDExQzA7CitDQ0IyO0NDQjI7MTEwRSAxMTY1IDExQzE7Q0NCMjsxMTBFIDExNjUgMTFDMTsKK0NDQjM7Q0NCMzsxMTBFIDExNjUgMTFDMjtDQ0IzOzExMEUgMTE2NSAxMUMyOworQ0NCNDtDQ0I0OzExMEUgMTE2NjtDQ0I0OzExMEUgMTE2NjsKK0NDQjU7Q0NCNTsxMTBFIDExNjYgMTFBODtDQ0I1OzExMEUgMTE2NiAxMUE4OworQ0NCNjtDQ0I2OzExMEUgMTE2NiAxMUE5O0NDQjY7MTEwRSAxMTY2IDExQTk7CitDQ0I3O0NDQjc7MTEwRSAxMTY2IDExQUE7Q0NCNzsxMTBFIDExNjYgMTFBQTsKK0NDQjg7Q0NCODsxMTBFIDExNjYgMTFBQjtDQ0I4OzExMEUgMTE2NiAxMUFCOworQ0NCOTtDQ0I5OzExMEUgMTE2NiAxMUFDO0NDQjk7MTEwRSAxMTY2IDExQUM7CitDQ0JBO0NDQkE7MTEwRSAxMTY2IDExQUQ7Q0NCQTsxMTBFIDExNjYgMTFBRDsKK0NDQkI7Q0NCQjsxMTBFIDExNjYgMTFBRTtDQ0JCOzExMEUgMTE2NiAxMUFFOworQ0NCQztDQ0JDOzExMEUgMTE2NiAxMUFGO0NDQkM7MTEwRSAxMTY2IDExQUY7CitDQ0JEO0NDQkQ7MTEwRSAxMTY2IDExQjA7Q0NCRDsxMTBFIDExNjYgMTFCMDsKK0NDQkU7Q0NCRTsxMTBFIDExNjYgMTFCMTtDQ0JFOzExMEUgMTE2NiAxMUIxOworQ0NCRjtDQ0JGOzExMEUgMTE2NiAxMUIyO0NDQkY7MTEwRSAxMTY2IDExQjI7CitDQ0MwO0NDQzA7MTEwRSAxMTY2IDExQjM7Q0NDMDsxMTBFIDExNjYgMTFCMzsKK0NDQzE7Q0NDMTsxMTBFIDExNjYgMTFCNDtDQ0MxOzExMEUgMTE2NiAxMUI0OworQ0NDMjtDQ0MyOzExMEUgMTE2NiAxMUI1O0NDQzI7MTEwRSAxMTY2IDExQjU7CitDQ0MzO0NDQzM7MTEwRSAxMTY2IDExQjY7Q0NDMzsxMTBFIDExNjYgMTFCNjsKK0NDQzQ7Q0NDNDsxMTBFIDExNjYgMTFCNztDQ0M0OzExMEUgMTE2NiAxMUI3OworQ0NDNTtDQ0M1OzExMEUgMTE2NiAxMUI4O0NDQzU7MTEwRSAxMTY2IDExQjg7CitDQ0M2O0NDQzY7MTEwRSAxMTY2IDExQjk7Q0NDNjsxMTBFIDExNjYgMTFCOTsKK0NDQzc7Q0NDNzsxMTBFIDExNjYgMTFCQTtDQ0M3OzExMEUgMTE2NiAxMUJBOworQ0NDODtDQ0M4OzExMEUgMTE2NiAxMUJCO0NDQzg7MTEwRSAxMTY2IDExQkI7CitDQ0M5O0NDQzk7MTEwRSAxMTY2IDExQkM7Q0NDOTsxMTBFIDExNjYgMTFCQzsKK0NDQ0E7Q0NDQTsxMTBFIDExNjYgMTFCRDtDQ0NBOzExMEUgMTE2NiAxMUJEOworQ0NDQjtDQ0NCOzExMEUgMTE2NiAxMUJFO0NDQ0I7MTEwRSAxMTY2IDExQkU7CitDQ0NDO0NDQ0M7MTEwRSAxMTY2IDExQkY7Q0NDQzsxMTBFIDExNjYgMTFCRjsKK0NDQ0Q7Q0NDRDsxMTBFIDExNjYgMTFDMDtDQ0NEOzExMEUgMTE2NiAxMUMwOworQ0NDRTtDQ0NFOzExMEUgMTE2NiAxMUMxO0NDQ0U7MTEwRSAxMTY2IDExQzE7CitDQ0NGO0NDQ0Y7MTEwRSAxMTY2IDExQzI7Q0NDRjsxMTBFIDExNjYgMTFDMjsKK0NDRDA7Q0NEMDsxMTBFIDExNjc7Q0NEMDsxMTBFIDExNjc7CitDQ0QxO0NDRDE7MTEwRSAxMTY3IDExQTg7Q0NEMTsxMTBFIDExNjcgMTFBODsKK0NDRDI7Q0NEMjsxMTBFIDExNjcgMTFBOTtDQ0QyOzExMEUgMTE2NyAxMUE5OworQ0NEMztDQ0QzOzExMEUgMTE2NyAxMUFBO0NDRDM7MTEwRSAxMTY3IDExQUE7CitDQ0Q0O0NDRDQ7MTEwRSAxMTY3IDExQUI7Q0NENDsxMTBFIDExNjcgMTFBQjsKK0NDRDU7Q0NENTsxMTBFIDExNjcgMTFBQztDQ0Q1OzExMEUgMTE2NyAxMUFDOworQ0NENjtDQ0Q2OzExMEUgMTE2NyAxMUFEO0NDRDY7MTEwRSAxMTY3IDExQUQ7CitDQ0Q3O0NDRDc7MTEwRSAxMTY3IDExQUU7Q0NENzsxMTBFIDExNjcgMTFBRTsKK0NDRDg7Q0NEODsxMTBFIDExNjcgMTFBRjtDQ0Q4OzExMEUgMTE2NyAxMUFGOworQ0NEOTtDQ0Q5OzExMEUgMTE2NyAxMUIwO0NDRDk7MTEwRSAxMTY3IDExQjA7CitDQ0RBO0NDREE7MTEwRSAxMTY3IDExQjE7Q0NEQTsxMTBFIDExNjcgMTFCMTsKK0NDREI7Q0NEQjsxMTBFIDExNjcgMTFCMjtDQ0RCOzExMEUgMTE2NyAxMUIyOworQ0NEQztDQ0RDOzExMEUgMTE2NyAxMUIzO0NDREM7MTEwRSAxMTY3IDExQjM7CitDQ0REO0NDREQ7MTEwRSAxMTY3IDExQjQ7Q0NERDsxMTBFIDExNjcgMTFCNDsKK0NDREU7Q0NERTsxMTBFIDExNjcgMTFCNTtDQ0RFOzExMEUgMTE2NyAxMUI1OworQ0NERjtDQ0RGOzExMEUgMTE2NyAxMUI2O0NDREY7MTEwRSAxMTY3IDExQjY7CitDQ0UwO0NDRTA7MTEwRSAxMTY3IDExQjc7Q0NFMDsxMTBFIDExNjcgMTFCNzsKK0NDRTE7Q0NFMTsxMTBFIDExNjcgMTFCODtDQ0UxOzExMEUgMTE2NyAxMUI4OworQ0NFMjtDQ0UyOzExMEUgMTE2NyAxMUI5O0NDRTI7MTEwRSAxMTY3IDExQjk7CitDQ0UzO0NDRTM7MTEwRSAxMTY3IDExQkE7Q0NFMzsxMTBFIDExNjcgMTFCQTsKK0NDRTQ7Q0NFNDsxMTBFIDExNjcgMTFCQjtDQ0U0OzExMEUgMTE2NyAxMUJCOworQ0NFNTtDQ0U1OzExMEUgMTE2NyAxMUJDO0NDRTU7MTEwRSAxMTY3IDExQkM7CitDQ0U2O0NDRTY7MTEwRSAxMTY3IDExQkQ7Q0NFNjsxMTBFIDExNjcgMTFCRDsKK0NDRTc7Q0NFNzsxMTBFIDExNjcgMTFCRTtDQ0U3OzExMEUgMTE2NyAxMUJFOworQ0NFODtDQ0U4OzExMEUgMTE2NyAxMUJGO0NDRTg7MTEwRSAxMTY3IDExQkY7CitDQ0U5O0NDRTk7MTEwRSAxMTY3IDExQzA7Q0NFOTsxMTBFIDExNjcgMTFDMDsKK0NDRUE7Q0NFQTsxMTBFIDExNjcgMTFDMTtDQ0VBOzExMEUgMTE2NyAxMUMxOworQ0NFQjtDQ0VCOzExMEUgMTE2NyAxMUMyO0NDRUI7MTEwRSAxMTY3IDExQzI7CitDQ0VDO0NDRUM7MTEwRSAxMTY4O0NDRUM7MTEwRSAxMTY4OworQ0NFRDtDQ0VEOzExMEUgMTE2OCAxMUE4O0NDRUQ7MTEwRSAxMTY4IDExQTg7CitDQ0VFO0NDRUU7MTEwRSAxMTY4IDExQTk7Q0NFRTsxMTBFIDExNjggMTFBOTsKK0NDRUY7Q0NFRjsxMTBFIDExNjggMTFBQTtDQ0VGOzExMEUgMTE2OCAxMUFBOworQ0NGMDtDQ0YwOzExMEUgMTE2OCAxMUFCO0NDRjA7MTEwRSAxMTY4IDExQUI7CitDQ0YxO0NDRjE7MTEwRSAxMTY4IDExQUM7Q0NGMTsxMTBFIDExNjggMTFBQzsKK0NDRjI7Q0NGMjsxMTBFIDExNjggMTFBRDtDQ0YyOzExMEUgMTE2OCAxMUFEOworQ0NGMztDQ0YzOzExMEUgMTE2OCAxMUFFO0NDRjM7MTEwRSAxMTY4IDExQUU7CitDQ0Y0O0NDRjQ7MTEwRSAxMTY4IDExQUY7Q0NGNDsxMTBFIDExNjggMTFBRjsKK0NDRjU7Q0NGNTsxMTBFIDExNjggMTFCMDtDQ0Y1OzExMEUgMTE2OCAxMUIwOworQ0NGNjtDQ0Y2OzExMEUgMTE2OCAxMUIxO0NDRjY7MTEwRSAxMTY4IDExQjE7CitDQ0Y3O0NDRjc7MTEwRSAxMTY4IDExQjI7Q0NGNzsxMTBFIDExNjggMTFCMjsKK0NDRjg7Q0NGODsxMTBFIDExNjggMTFCMztDQ0Y4OzExMEUgMTE2OCAxMUIzOworQ0NGOTtDQ0Y5OzExMEUgMTE2OCAxMUI0O0NDRjk7MTEwRSAxMTY4IDExQjQ7CitDQ0ZBO0NDRkE7MTEwRSAxMTY4IDExQjU7Q0NGQTsxMTBFIDExNjggMTFCNTsKK0NDRkI7Q0NGQjsxMTBFIDExNjggMTFCNjtDQ0ZCOzExMEUgMTE2OCAxMUI2OworQ0NGQztDQ0ZDOzExMEUgMTE2OCAxMUI3O0NDRkM7MTEwRSAxMTY4IDExQjc7CitDQ0ZEO0NDRkQ7MTEwRSAxMTY4IDExQjg7Q0NGRDsxMTBFIDExNjggMTFCODsKK0NDRkU7Q0NGRTsxMTBFIDExNjggMTFCOTtDQ0ZFOzExMEUgMTE2OCAxMUI5OworQ0NGRjtDQ0ZGOzExMEUgMTE2OCAxMUJBO0NDRkY7MTEwRSAxMTY4IDExQkE7CitDRDAwO0NEMDA7MTEwRSAxMTY4IDExQkI7Q0QwMDsxMTBFIDExNjggMTFCQjsKK0NEMDE7Q0QwMTsxMTBFIDExNjggMTFCQztDRDAxOzExMEUgMTE2OCAxMUJDOworQ0QwMjtDRDAyOzExMEUgMTE2OCAxMUJEO0NEMDI7MTEwRSAxMTY4IDExQkQ7CitDRDAzO0NEMDM7MTEwRSAxMTY4IDExQkU7Q0QwMzsxMTBFIDExNjggMTFCRTsKK0NEMDQ7Q0QwNDsxMTBFIDExNjggMTFCRjtDRDA0OzExMEUgMTE2OCAxMUJGOworQ0QwNTtDRDA1OzExMEUgMTE2OCAxMUMwO0NEMDU7MTEwRSAxMTY4IDExQzA7CitDRDA2O0NEMDY7MTEwRSAxMTY4IDExQzE7Q0QwNjsxMTBFIDExNjggMTFDMTsKK0NEMDc7Q0QwNzsxMTBFIDExNjggMTFDMjtDRDA3OzExMEUgMTE2OCAxMUMyOworQ0QwODtDRDA4OzExMEUgMTE2OTtDRDA4OzExMEUgMTE2OTsKK0NEMDk7Q0QwOTsxMTBFIDExNjkgMTFBODtDRDA5OzExMEUgMTE2OSAxMUE4OworQ0QwQTtDRDBBOzExMEUgMTE2OSAxMUE5O0NEMEE7MTEwRSAxMTY5IDExQTk7CitDRDBCO0NEMEI7MTEwRSAxMTY5IDExQUE7Q0QwQjsxMTBFIDExNjkgMTFBQTsKK0NEMEM7Q0QwQzsxMTBFIDExNjkgMTFBQjtDRDBDOzExMEUgMTE2OSAxMUFCOworQ0QwRDtDRDBEOzExMEUgMTE2OSAxMUFDO0NEMEQ7MTEwRSAxMTY5IDExQUM7CitDRDBFO0NEMEU7MTEwRSAxMTY5IDExQUQ7Q0QwRTsxMTBFIDExNjkgMTFBRDsKK0NEMEY7Q0QwRjsxMTBFIDExNjkgMTFBRTtDRDBGOzExMEUgMTE2OSAxMUFFOworQ0QxMDtDRDEwOzExMEUgMTE2OSAxMUFGO0NEMTA7MTEwRSAxMTY5IDExQUY7CitDRDExO0NEMTE7MTEwRSAxMTY5IDExQjA7Q0QxMTsxMTBFIDExNjkgMTFCMDsKK0NEMTI7Q0QxMjsxMTBFIDExNjkgMTFCMTtDRDEyOzExMEUgMTE2OSAxMUIxOworQ0QxMztDRDEzOzExMEUgMTE2OSAxMUIyO0NEMTM7MTEwRSAxMTY5IDExQjI7CitDRDE0O0NEMTQ7MTEwRSAxMTY5IDExQjM7Q0QxNDsxMTBFIDExNjkgMTFCMzsKK0NEMTU7Q0QxNTsxMTBFIDExNjkgMTFCNDtDRDE1OzExMEUgMTE2OSAxMUI0OworQ0QxNjtDRDE2OzExMEUgMTE2OSAxMUI1O0NEMTY7MTEwRSAxMTY5IDExQjU7CitDRDE3O0NEMTc7MTEwRSAxMTY5IDExQjY7Q0QxNzsxMTBFIDExNjkgMTFCNjsKK0NEMTg7Q0QxODsxMTBFIDExNjkgMTFCNztDRDE4OzExMEUgMTE2OSAxMUI3OworQ0QxOTtDRDE5OzExMEUgMTE2OSAxMUI4O0NEMTk7MTEwRSAxMTY5IDExQjg7CitDRDFBO0NEMUE7MTEwRSAxMTY5IDExQjk7Q0QxQTsxMTBFIDExNjkgMTFCOTsKK0NEMUI7Q0QxQjsxMTBFIDExNjkgMTFCQTtDRDFCOzExMEUgMTE2OSAxMUJBOworQ0QxQztDRDFDOzExMEUgMTE2OSAxMUJCO0NEMUM7MTEwRSAxMTY5IDExQkI7CitDRDFEO0NEMUQ7MTEwRSAxMTY5IDExQkM7Q0QxRDsxMTBFIDExNjkgMTFCQzsKK0NEMUU7Q0QxRTsxMTBFIDExNjkgMTFCRDtDRDFFOzExMEUgMTE2OSAxMUJEOworQ0QxRjtDRDFGOzExMEUgMTE2OSAxMUJFO0NEMUY7MTEwRSAxMTY5IDExQkU7CitDRDIwO0NEMjA7MTEwRSAxMTY5IDExQkY7Q0QyMDsxMTBFIDExNjkgMTFCRjsKK0NEMjE7Q0QyMTsxMTBFIDExNjkgMTFDMDtDRDIxOzExMEUgMTE2OSAxMUMwOworQ0QyMjtDRDIyOzExMEUgMTE2OSAxMUMxO0NEMjI7MTEwRSAxMTY5IDExQzE7CitDRDIzO0NEMjM7MTEwRSAxMTY5IDExQzI7Q0QyMzsxMTBFIDExNjkgMTFDMjsKK0NEMjQ7Q0QyNDsxMTBFIDExNkE7Q0QyNDsxMTBFIDExNkE7CitDRDI1O0NEMjU7MTEwRSAxMTZBIDExQTg7Q0QyNTsxMTBFIDExNkEgMTFBODsKK0NEMjY7Q0QyNjsxMTBFIDExNkEgMTFBOTtDRDI2OzExMEUgMTE2QSAxMUE5OworQ0QyNztDRDI3OzExMEUgMTE2QSAxMUFBO0NEMjc7MTEwRSAxMTZBIDExQUE7CitDRDI4O0NEMjg7MTEwRSAxMTZBIDExQUI7Q0QyODsxMTBFIDExNkEgMTFBQjsKK0NEMjk7Q0QyOTsxMTBFIDExNkEgMTFBQztDRDI5OzExMEUgMTE2QSAxMUFDOworQ0QyQTtDRDJBOzExMEUgMTE2QSAxMUFEO0NEMkE7MTEwRSAxMTZBIDExQUQ7CitDRDJCO0NEMkI7MTEwRSAxMTZBIDExQUU7Q0QyQjsxMTBFIDExNkEgMTFBRTsKK0NEMkM7Q0QyQzsxMTBFIDExNkEgMTFBRjtDRDJDOzExMEUgMTE2QSAxMUFGOworQ0QyRDtDRDJEOzExMEUgMTE2QSAxMUIwO0NEMkQ7MTEwRSAxMTZBIDExQjA7CitDRDJFO0NEMkU7MTEwRSAxMTZBIDExQjE7Q0QyRTsxMTBFIDExNkEgMTFCMTsKK0NEMkY7Q0QyRjsxMTBFIDExNkEgMTFCMjtDRDJGOzExMEUgMTE2QSAxMUIyOworQ0QzMDtDRDMwOzExMEUgMTE2QSAxMUIzO0NEMzA7MTEwRSAxMTZBIDExQjM7CitDRDMxO0NEMzE7MTEwRSAxMTZBIDExQjQ7Q0QzMTsxMTBFIDExNkEgMTFCNDsKK0NEMzI7Q0QzMjsxMTBFIDExNkEgMTFCNTtDRDMyOzExMEUgMTE2QSAxMUI1OworQ0QzMztDRDMzOzExMEUgMTE2QSAxMUI2O0NEMzM7MTEwRSAxMTZBIDExQjY7CitDRDM0O0NEMzQ7MTEwRSAxMTZBIDExQjc7Q0QzNDsxMTBFIDExNkEgMTFCNzsKK0NEMzU7Q0QzNTsxMTBFIDExNkEgMTFCODtDRDM1OzExMEUgMTE2QSAxMUI4OworQ0QzNjtDRDM2OzExMEUgMTE2QSAxMUI5O0NEMzY7MTEwRSAxMTZBIDExQjk7CitDRDM3O0NEMzc7MTEwRSAxMTZBIDExQkE7Q0QzNzsxMTBFIDExNkEgMTFCQTsKK0NEMzg7Q0QzODsxMTBFIDExNkEgMTFCQjtDRDM4OzExMEUgMTE2QSAxMUJCOworQ0QzOTtDRDM5OzExMEUgMTE2QSAxMUJDO0NEMzk7MTEwRSAxMTZBIDExQkM7CitDRDNBO0NEM0E7MTEwRSAxMTZBIDExQkQ7Q0QzQTsxMTBFIDExNkEgMTFCRDsKK0NEM0I7Q0QzQjsxMTBFIDExNkEgMTFCRTtDRDNCOzExMEUgMTE2QSAxMUJFOworQ0QzQztDRDNDOzExMEUgMTE2QSAxMUJGO0NEM0M7MTEwRSAxMTZBIDExQkY7CitDRDNEO0NEM0Q7MTEwRSAxMTZBIDExQzA7Q0QzRDsxMTBFIDExNkEgMTFDMDsKK0NEM0U7Q0QzRTsxMTBFIDExNkEgMTFDMTtDRDNFOzExMEUgMTE2QSAxMUMxOworQ0QzRjtDRDNGOzExMEUgMTE2QSAxMUMyO0NEM0Y7MTEwRSAxMTZBIDExQzI7CitDRDQwO0NENDA7MTEwRSAxMTZCO0NENDA7MTEwRSAxMTZCOworQ0Q0MTtDRDQxOzExMEUgMTE2QiAxMUE4O0NENDE7MTEwRSAxMTZCIDExQTg7CitDRDQyO0NENDI7MTEwRSAxMTZCIDExQTk7Q0Q0MjsxMTBFIDExNkIgMTFBOTsKK0NENDM7Q0Q0MzsxMTBFIDExNkIgMTFBQTtDRDQzOzExMEUgMTE2QiAxMUFBOworQ0Q0NDtDRDQ0OzExMEUgMTE2QiAxMUFCO0NENDQ7MTEwRSAxMTZCIDExQUI7CitDRDQ1O0NENDU7MTEwRSAxMTZCIDExQUM7Q0Q0NTsxMTBFIDExNkIgMTFBQzsKK0NENDY7Q0Q0NjsxMTBFIDExNkIgMTFBRDtDRDQ2OzExMEUgMTE2QiAxMUFEOworQ0Q0NztDRDQ3OzExMEUgMTE2QiAxMUFFO0NENDc7MTEwRSAxMTZCIDExQUU7CitDRDQ4O0NENDg7MTEwRSAxMTZCIDExQUY7Q0Q0ODsxMTBFIDExNkIgMTFBRjsKK0NENDk7Q0Q0OTsxMTBFIDExNkIgMTFCMDtDRDQ5OzExMEUgMTE2QiAxMUIwOworQ0Q0QTtDRDRBOzExMEUgMTE2QiAxMUIxO0NENEE7MTEwRSAxMTZCIDExQjE7CitDRDRCO0NENEI7MTEwRSAxMTZCIDExQjI7Q0Q0QjsxMTBFIDExNkIgMTFCMjsKK0NENEM7Q0Q0QzsxMTBFIDExNkIgMTFCMztDRDRDOzExMEUgMTE2QiAxMUIzOworQ0Q0RDtDRDREOzExMEUgMTE2QiAxMUI0O0NENEQ7MTEwRSAxMTZCIDExQjQ7CitDRDRFO0NENEU7MTEwRSAxMTZCIDExQjU7Q0Q0RTsxMTBFIDExNkIgMTFCNTsKK0NENEY7Q0Q0RjsxMTBFIDExNkIgMTFCNjtDRDRGOzExMEUgMTE2QiAxMUI2OworQ0Q1MDtDRDUwOzExMEUgMTE2QiAxMUI3O0NENTA7MTEwRSAxMTZCIDExQjc7CitDRDUxO0NENTE7MTEwRSAxMTZCIDExQjg7Q0Q1MTsxMTBFIDExNkIgMTFCODsKK0NENTI7Q0Q1MjsxMTBFIDExNkIgMTFCOTtDRDUyOzExMEUgMTE2QiAxMUI5OworQ0Q1MztDRDUzOzExMEUgMTE2QiAxMUJBO0NENTM7MTEwRSAxMTZCIDExQkE7CitDRDU0O0NENTQ7MTEwRSAxMTZCIDExQkI7Q0Q1NDsxMTBFIDExNkIgMTFCQjsKK0NENTU7Q0Q1NTsxMTBFIDExNkIgMTFCQztDRDU1OzExMEUgMTE2QiAxMUJDOworQ0Q1NjtDRDU2OzExMEUgMTE2QiAxMUJEO0NENTY7MTEwRSAxMTZCIDExQkQ7CitDRDU3O0NENTc7MTEwRSAxMTZCIDExQkU7Q0Q1NzsxMTBFIDExNkIgMTFCRTsKK0NENTg7Q0Q1ODsxMTBFIDExNkIgMTFCRjtDRDU4OzExMEUgMTE2QiAxMUJGOworQ0Q1OTtDRDU5OzExMEUgMTE2QiAxMUMwO0NENTk7MTEwRSAxMTZCIDExQzA7CitDRDVBO0NENUE7MTEwRSAxMTZCIDExQzE7Q0Q1QTsxMTBFIDExNkIgMTFDMTsKK0NENUI7Q0Q1QjsxMTBFIDExNkIgMTFDMjtDRDVCOzExMEUgMTE2QiAxMUMyOworQ0Q1QztDRDVDOzExMEUgMTE2QztDRDVDOzExMEUgMTE2QzsKK0NENUQ7Q0Q1RDsxMTBFIDExNkMgMTFBODtDRDVEOzExMEUgMTE2QyAxMUE4OworQ0Q1RTtDRDVFOzExMEUgMTE2QyAxMUE5O0NENUU7MTEwRSAxMTZDIDExQTk7CitDRDVGO0NENUY7MTEwRSAxMTZDIDExQUE7Q0Q1RjsxMTBFIDExNkMgMTFBQTsKK0NENjA7Q0Q2MDsxMTBFIDExNkMgMTFBQjtDRDYwOzExMEUgMTE2QyAxMUFCOworQ0Q2MTtDRDYxOzExMEUgMTE2QyAxMUFDO0NENjE7MTEwRSAxMTZDIDExQUM7CitDRDYyO0NENjI7MTEwRSAxMTZDIDExQUQ7Q0Q2MjsxMTBFIDExNkMgMTFBRDsKK0NENjM7Q0Q2MzsxMTBFIDExNkMgMTFBRTtDRDYzOzExMEUgMTE2QyAxMUFFOworQ0Q2NDtDRDY0OzExMEUgMTE2QyAxMUFGO0NENjQ7MTEwRSAxMTZDIDExQUY7CitDRDY1O0NENjU7MTEwRSAxMTZDIDExQjA7Q0Q2NTsxMTBFIDExNkMgMTFCMDsKK0NENjY7Q0Q2NjsxMTBFIDExNkMgMTFCMTtDRDY2OzExMEUgMTE2QyAxMUIxOworQ0Q2NztDRDY3OzExMEUgMTE2QyAxMUIyO0NENjc7MTEwRSAxMTZDIDExQjI7CitDRDY4O0NENjg7MTEwRSAxMTZDIDExQjM7Q0Q2ODsxMTBFIDExNkMgMTFCMzsKK0NENjk7Q0Q2OTsxMTBFIDExNkMgMTFCNDtDRDY5OzExMEUgMTE2QyAxMUI0OworQ0Q2QTtDRDZBOzExMEUgMTE2QyAxMUI1O0NENkE7MTEwRSAxMTZDIDExQjU7CitDRDZCO0NENkI7MTEwRSAxMTZDIDExQjY7Q0Q2QjsxMTBFIDExNkMgMTFCNjsKK0NENkM7Q0Q2QzsxMTBFIDExNkMgMTFCNztDRDZDOzExMEUgMTE2QyAxMUI3OworQ0Q2RDtDRDZEOzExMEUgMTE2QyAxMUI4O0NENkQ7MTEwRSAxMTZDIDExQjg7CitDRDZFO0NENkU7MTEwRSAxMTZDIDExQjk7Q0Q2RTsxMTBFIDExNkMgMTFCOTsKK0NENkY7Q0Q2RjsxMTBFIDExNkMgMTFCQTtDRDZGOzExMEUgMTE2QyAxMUJBOworQ0Q3MDtDRDcwOzExMEUgMTE2QyAxMUJCO0NENzA7MTEwRSAxMTZDIDExQkI7CitDRDcxO0NENzE7MTEwRSAxMTZDIDExQkM7Q0Q3MTsxMTBFIDExNkMgMTFCQzsKK0NENzI7Q0Q3MjsxMTBFIDExNkMgMTFCRDtDRDcyOzExMEUgMTE2QyAxMUJEOworQ0Q3MztDRDczOzExMEUgMTE2QyAxMUJFO0NENzM7MTEwRSAxMTZDIDExQkU7CitDRDc0O0NENzQ7MTEwRSAxMTZDIDExQkY7Q0Q3NDsxMTBFIDExNkMgMTFCRjsKK0NENzU7Q0Q3NTsxMTBFIDExNkMgMTFDMDtDRDc1OzExMEUgMTE2QyAxMUMwOworQ0Q3NjtDRDc2OzExMEUgMTE2QyAxMUMxO0NENzY7MTEwRSAxMTZDIDExQzE7CitDRDc3O0NENzc7MTEwRSAxMTZDIDExQzI7Q0Q3NzsxMTBFIDExNkMgMTFDMjsKK0NENzg7Q0Q3ODsxMTBFIDExNkQ7Q0Q3ODsxMTBFIDExNkQ7CitDRDc5O0NENzk7MTEwRSAxMTZEIDExQTg7Q0Q3OTsxMTBFIDExNkQgMTFBODsKK0NEN0E7Q0Q3QTsxMTBFIDExNkQgMTFBOTtDRDdBOzExMEUgMTE2RCAxMUE5OworQ0Q3QjtDRDdCOzExMEUgMTE2RCAxMUFBO0NEN0I7MTEwRSAxMTZEIDExQUE7CitDRDdDO0NEN0M7MTEwRSAxMTZEIDExQUI7Q0Q3QzsxMTBFIDExNkQgMTFBQjsKK0NEN0Q7Q0Q3RDsxMTBFIDExNkQgMTFBQztDRDdEOzExMEUgMTE2RCAxMUFDOworQ0Q3RTtDRDdFOzExMEUgMTE2RCAxMUFEO0NEN0U7MTEwRSAxMTZEIDExQUQ7CitDRDdGO0NEN0Y7MTEwRSAxMTZEIDExQUU7Q0Q3RjsxMTBFIDExNkQgMTFBRTsKK0NEODA7Q0Q4MDsxMTBFIDExNkQgMTFBRjtDRDgwOzExMEUgMTE2RCAxMUFGOworQ0Q4MTtDRDgxOzExMEUgMTE2RCAxMUIwO0NEODE7MTEwRSAxMTZEIDExQjA7CitDRDgyO0NEODI7MTEwRSAxMTZEIDExQjE7Q0Q4MjsxMTBFIDExNkQgMTFCMTsKK0NEODM7Q0Q4MzsxMTBFIDExNkQgMTFCMjtDRDgzOzExMEUgMTE2RCAxMUIyOworQ0Q4NDtDRDg0OzExMEUgMTE2RCAxMUIzO0NEODQ7MTEwRSAxMTZEIDExQjM7CitDRDg1O0NEODU7MTEwRSAxMTZEIDExQjQ7Q0Q4NTsxMTBFIDExNkQgMTFCNDsKK0NEODY7Q0Q4NjsxMTBFIDExNkQgMTFCNTtDRDg2OzExMEUgMTE2RCAxMUI1OworQ0Q4NztDRDg3OzExMEUgMTE2RCAxMUI2O0NEODc7MTEwRSAxMTZEIDExQjY7CitDRDg4O0NEODg7MTEwRSAxMTZEIDExQjc7Q0Q4ODsxMTBFIDExNkQgMTFCNzsKK0NEODk7Q0Q4OTsxMTBFIDExNkQgMTFCODtDRDg5OzExMEUgMTE2RCAxMUI4OworQ0Q4QTtDRDhBOzExMEUgMTE2RCAxMUI5O0NEOEE7MTEwRSAxMTZEIDExQjk7CitDRDhCO0NEOEI7MTEwRSAxMTZEIDExQkE7Q0Q4QjsxMTBFIDExNkQgMTFCQTsKK0NEOEM7Q0Q4QzsxMTBFIDExNkQgMTFCQjtDRDhDOzExMEUgMTE2RCAxMUJCOworQ0Q4RDtDRDhEOzExMEUgMTE2RCAxMUJDO0NEOEQ7MTEwRSAxMTZEIDExQkM7CitDRDhFO0NEOEU7MTEwRSAxMTZEIDExQkQ7Q0Q4RTsxMTBFIDExNkQgMTFCRDsKK0NEOEY7Q0Q4RjsxMTBFIDExNkQgMTFCRTtDRDhGOzExMEUgMTE2RCAxMUJFOworQ0Q5MDtDRDkwOzExMEUgMTE2RCAxMUJGO0NEOTA7MTEwRSAxMTZEIDExQkY7CitDRDkxO0NEOTE7MTEwRSAxMTZEIDExQzA7Q0Q5MTsxMTBFIDExNkQgMTFDMDsKK0NEOTI7Q0Q5MjsxMTBFIDExNkQgMTFDMTtDRDkyOzExMEUgMTE2RCAxMUMxOworQ0Q5MztDRDkzOzExMEUgMTE2RCAxMUMyO0NEOTM7MTEwRSAxMTZEIDExQzI7CitDRDk0O0NEOTQ7MTEwRSAxMTZFO0NEOTQ7MTEwRSAxMTZFOworQ0Q5NTtDRDk1OzExMEUgMTE2RSAxMUE4O0NEOTU7MTEwRSAxMTZFIDExQTg7CitDRDk2O0NEOTY7MTEwRSAxMTZFIDExQTk7Q0Q5NjsxMTBFIDExNkUgMTFBOTsKK0NEOTc7Q0Q5NzsxMTBFIDExNkUgMTFBQTtDRDk3OzExMEUgMTE2RSAxMUFBOworQ0Q5ODtDRDk4OzExMEUgMTE2RSAxMUFCO0NEOTg7MTEwRSAxMTZFIDExQUI7CitDRDk5O0NEOTk7MTEwRSAxMTZFIDExQUM7Q0Q5OTsxMTBFIDExNkUgMTFBQzsKK0NEOUE7Q0Q5QTsxMTBFIDExNkUgMTFBRDtDRDlBOzExMEUgMTE2RSAxMUFEOworQ0Q5QjtDRDlCOzExMEUgMTE2RSAxMUFFO0NEOUI7MTEwRSAxMTZFIDExQUU7CitDRDlDO0NEOUM7MTEwRSAxMTZFIDExQUY7Q0Q5QzsxMTBFIDExNkUgMTFBRjsKK0NEOUQ7Q0Q5RDsxMTBFIDExNkUgMTFCMDtDRDlEOzExMEUgMTE2RSAxMUIwOworQ0Q5RTtDRDlFOzExMEUgMTE2RSAxMUIxO0NEOUU7MTEwRSAxMTZFIDExQjE7CitDRDlGO0NEOUY7MTEwRSAxMTZFIDExQjI7Q0Q5RjsxMTBFIDExNkUgMTFCMjsKK0NEQTA7Q0RBMDsxMTBFIDExNkUgMTFCMztDREEwOzExMEUgMTE2RSAxMUIzOworQ0RBMTtDREExOzExMEUgMTE2RSAxMUI0O0NEQTE7MTEwRSAxMTZFIDExQjQ7CitDREEyO0NEQTI7MTEwRSAxMTZFIDExQjU7Q0RBMjsxMTBFIDExNkUgMTFCNTsKK0NEQTM7Q0RBMzsxMTBFIDExNkUgMTFCNjtDREEzOzExMEUgMTE2RSAxMUI2OworQ0RBNDtDREE0OzExMEUgMTE2RSAxMUI3O0NEQTQ7MTEwRSAxMTZFIDExQjc7CitDREE1O0NEQTU7MTEwRSAxMTZFIDExQjg7Q0RBNTsxMTBFIDExNkUgMTFCODsKK0NEQTY7Q0RBNjsxMTBFIDExNkUgMTFCOTtDREE2OzExMEUgMTE2RSAxMUI5OworQ0RBNztDREE3OzExMEUgMTE2RSAxMUJBO0NEQTc7MTEwRSAxMTZFIDExQkE7CitDREE4O0NEQTg7MTEwRSAxMTZFIDExQkI7Q0RBODsxMTBFIDExNkUgMTFCQjsKK0NEQTk7Q0RBOTsxMTBFIDExNkUgMTFCQztDREE5OzExMEUgMTE2RSAxMUJDOworQ0RBQTtDREFBOzExMEUgMTE2RSAxMUJEO0NEQUE7MTEwRSAxMTZFIDExQkQ7CitDREFCO0NEQUI7MTEwRSAxMTZFIDExQkU7Q0RBQjsxMTBFIDExNkUgMTFCRTsKK0NEQUM7Q0RBQzsxMTBFIDExNkUgMTFCRjtDREFDOzExMEUgMTE2RSAxMUJGOworQ0RBRDtDREFEOzExMEUgMTE2RSAxMUMwO0NEQUQ7MTEwRSAxMTZFIDExQzA7CitDREFFO0NEQUU7MTEwRSAxMTZFIDExQzE7Q0RBRTsxMTBFIDExNkUgMTFDMTsKK0NEQUY7Q0RBRjsxMTBFIDExNkUgMTFDMjtDREFGOzExMEUgMTE2RSAxMUMyOworQ0RCMDtDREIwOzExMEUgMTE2RjtDREIwOzExMEUgMTE2RjsKK0NEQjE7Q0RCMTsxMTBFIDExNkYgMTFBODtDREIxOzExMEUgMTE2RiAxMUE4OworQ0RCMjtDREIyOzExMEUgMTE2RiAxMUE5O0NEQjI7MTEwRSAxMTZGIDExQTk7CitDREIzO0NEQjM7MTEwRSAxMTZGIDExQUE7Q0RCMzsxMTBFIDExNkYgMTFBQTsKK0NEQjQ7Q0RCNDsxMTBFIDExNkYgMTFBQjtDREI0OzExMEUgMTE2RiAxMUFCOworQ0RCNTtDREI1OzExMEUgMTE2RiAxMUFDO0NEQjU7MTEwRSAxMTZGIDExQUM7CitDREI2O0NEQjY7MTEwRSAxMTZGIDExQUQ7Q0RCNjsxMTBFIDExNkYgMTFBRDsKK0NEQjc7Q0RCNzsxMTBFIDExNkYgMTFBRTtDREI3OzExMEUgMTE2RiAxMUFFOworQ0RCODtDREI4OzExMEUgMTE2RiAxMUFGO0NEQjg7MTEwRSAxMTZGIDExQUY7CitDREI5O0NEQjk7MTEwRSAxMTZGIDExQjA7Q0RCOTsxMTBFIDExNkYgMTFCMDsKK0NEQkE7Q0RCQTsxMTBFIDExNkYgMTFCMTtDREJBOzExMEUgMTE2RiAxMUIxOworQ0RCQjtDREJCOzExMEUgMTE2RiAxMUIyO0NEQkI7MTEwRSAxMTZGIDExQjI7CitDREJDO0NEQkM7MTEwRSAxMTZGIDExQjM7Q0RCQzsxMTBFIDExNkYgMTFCMzsKK0NEQkQ7Q0RCRDsxMTBFIDExNkYgMTFCNDtDREJEOzExMEUgMTE2RiAxMUI0OworQ0RCRTtDREJFOzExMEUgMTE2RiAxMUI1O0NEQkU7MTEwRSAxMTZGIDExQjU7CitDREJGO0NEQkY7MTEwRSAxMTZGIDExQjY7Q0RCRjsxMTBFIDExNkYgMTFCNjsKK0NEQzA7Q0RDMDsxMTBFIDExNkYgMTFCNztDREMwOzExMEUgMTE2RiAxMUI3OworQ0RDMTtDREMxOzExMEUgMTE2RiAxMUI4O0NEQzE7MTEwRSAxMTZGIDExQjg7CitDREMyO0NEQzI7MTEwRSAxMTZGIDExQjk7Q0RDMjsxMTBFIDExNkYgMTFCOTsKK0NEQzM7Q0RDMzsxMTBFIDExNkYgMTFCQTtDREMzOzExMEUgMTE2RiAxMUJBOworQ0RDNDtDREM0OzExMEUgMTE2RiAxMUJCO0NEQzQ7MTEwRSAxMTZGIDExQkI7CitDREM1O0NEQzU7MTEwRSAxMTZGIDExQkM7Q0RDNTsxMTBFIDExNkYgMTFCQzsKK0NEQzY7Q0RDNjsxMTBFIDExNkYgMTFCRDtDREM2OzExMEUgMTE2RiAxMUJEOworQ0RDNztDREM3OzExMEUgMTE2RiAxMUJFO0NEQzc7MTEwRSAxMTZGIDExQkU7CitDREM4O0NEQzg7MTEwRSAxMTZGIDExQkY7Q0RDODsxMTBFIDExNkYgMTFCRjsKK0NEQzk7Q0RDOTsxMTBFIDExNkYgMTFDMDtDREM5OzExMEUgMTE2RiAxMUMwOworQ0RDQTtDRENBOzExMEUgMTE2RiAxMUMxO0NEQ0E7MTEwRSAxMTZGIDExQzE7CitDRENCO0NEQ0I7MTEwRSAxMTZGIDExQzI7Q0RDQjsxMTBFIDExNkYgMTFDMjsKK0NEQ0M7Q0RDQzsxMTBFIDExNzA7Q0RDQzsxMTBFIDExNzA7CitDRENEO0NEQ0Q7MTEwRSAxMTcwIDExQTg7Q0RDRDsxMTBFIDExNzAgMTFBODsKK0NEQ0U7Q0RDRTsxMTBFIDExNzAgMTFBOTtDRENFOzExMEUgMTE3MCAxMUE5OworQ0RDRjtDRENGOzExMEUgMTE3MCAxMUFBO0NEQ0Y7MTEwRSAxMTcwIDExQUE7CitDREQwO0NERDA7MTEwRSAxMTcwIDExQUI7Q0REMDsxMTBFIDExNzAgMTFBQjsKK0NERDE7Q0REMTsxMTBFIDExNzAgMTFBQztDREQxOzExMEUgMTE3MCAxMUFDOworQ0REMjtDREQyOzExMEUgMTE3MCAxMUFEO0NERDI7MTEwRSAxMTcwIDExQUQ7CitDREQzO0NERDM7MTEwRSAxMTcwIDExQUU7Q0REMzsxMTBFIDExNzAgMTFBRTsKK0NERDQ7Q0RENDsxMTBFIDExNzAgMTFBRjtDREQ0OzExMEUgMTE3MCAxMUFGOworQ0RENTtDREQ1OzExMEUgMTE3MCAxMUIwO0NERDU7MTEwRSAxMTcwIDExQjA7CitDREQ2O0NERDY7MTEwRSAxMTcwIDExQjE7Q0RENjsxMTBFIDExNzAgMTFCMTsKK0NERDc7Q0RENzsxMTBFIDExNzAgMTFCMjtDREQ3OzExMEUgMTE3MCAxMUIyOworQ0REODtDREQ4OzExMEUgMTE3MCAxMUIzO0NERDg7MTEwRSAxMTcwIDExQjM7CitDREQ5O0NERDk7MTEwRSAxMTcwIDExQjQ7Q0REOTsxMTBFIDExNzAgMTFCNDsKK0NEREE7Q0REQTsxMTBFIDExNzAgMTFCNTtDRERBOzExMEUgMTE3MCAxMUI1OworQ0REQjtDRERCOzExMEUgMTE3MCAxMUI2O0NEREI7MTEwRSAxMTcwIDExQjY7CitDRERDO0NEREM7MTEwRSAxMTcwIDExQjc7Q0REQzsxMTBFIDExNzAgMTFCNzsKK0NEREQ7Q0RERDsxMTBFIDExNzAgMTFCODtDREREOzExMEUgMTE3MCAxMUI4OworQ0RERTtDRERFOzExMEUgMTE3MCAxMUI5O0NEREU7MTEwRSAxMTcwIDExQjk7CitDRERGO0NEREY7MTEwRSAxMTcwIDExQkE7Q0RERjsxMTBFIDExNzAgMTFCQTsKK0NERTA7Q0RFMDsxMTBFIDExNzAgMTFCQjtDREUwOzExMEUgMTE3MCAxMUJCOworQ0RFMTtDREUxOzExMEUgMTE3MCAxMUJDO0NERTE7MTEwRSAxMTcwIDExQkM7CitDREUyO0NERTI7MTEwRSAxMTcwIDExQkQ7Q0RFMjsxMTBFIDExNzAgMTFCRDsKK0NERTM7Q0RFMzsxMTBFIDExNzAgMTFCRTtDREUzOzExMEUgMTE3MCAxMUJFOworQ0RFNDtDREU0OzExMEUgMTE3MCAxMUJGO0NERTQ7MTEwRSAxMTcwIDExQkY7CitDREU1O0NERTU7MTEwRSAxMTcwIDExQzA7Q0RFNTsxMTBFIDExNzAgMTFDMDsKK0NERTY7Q0RFNjsxMTBFIDExNzAgMTFDMTtDREU2OzExMEUgMTE3MCAxMUMxOworQ0RFNztDREU3OzExMEUgMTE3MCAxMUMyO0NERTc7MTEwRSAxMTcwIDExQzI7CitDREU4O0NERTg7MTEwRSAxMTcxO0NERTg7MTEwRSAxMTcxOworQ0RFOTtDREU5OzExMEUgMTE3MSAxMUE4O0NERTk7MTEwRSAxMTcxIDExQTg7CitDREVBO0NERUE7MTEwRSAxMTcxIDExQTk7Q0RFQTsxMTBFIDExNzEgMTFBOTsKK0NERUI7Q0RFQjsxMTBFIDExNzEgMTFBQTtDREVCOzExMEUgMTE3MSAxMUFBOworQ0RFQztDREVDOzExMEUgMTE3MSAxMUFCO0NERUM7MTEwRSAxMTcxIDExQUI7CitDREVEO0NERUQ7MTEwRSAxMTcxIDExQUM7Q0RFRDsxMTBFIDExNzEgMTFBQzsKK0NERUU7Q0RFRTsxMTBFIDExNzEgMTFBRDtDREVFOzExMEUgMTE3MSAxMUFEOworQ0RFRjtDREVGOzExMEUgMTE3MSAxMUFFO0NERUY7MTEwRSAxMTcxIDExQUU7CitDREYwO0NERjA7MTEwRSAxMTcxIDExQUY7Q0RGMDsxMTBFIDExNzEgMTFBRjsKK0NERjE7Q0RGMTsxMTBFIDExNzEgMTFCMDtDREYxOzExMEUgMTE3MSAxMUIwOworQ0RGMjtDREYyOzExMEUgMTE3MSAxMUIxO0NERjI7MTEwRSAxMTcxIDExQjE7CitDREYzO0NERjM7MTEwRSAxMTcxIDExQjI7Q0RGMzsxMTBFIDExNzEgMTFCMjsKK0NERjQ7Q0RGNDsxMTBFIDExNzEgMTFCMztDREY0OzExMEUgMTE3MSAxMUIzOworQ0RGNTtDREY1OzExMEUgMTE3MSAxMUI0O0NERjU7MTEwRSAxMTcxIDExQjQ7CitDREY2O0NERjY7MTEwRSAxMTcxIDExQjU7Q0RGNjsxMTBFIDExNzEgMTFCNTsKK0NERjc7Q0RGNzsxMTBFIDExNzEgMTFCNjtDREY3OzExMEUgMTE3MSAxMUI2OworQ0RGODtDREY4OzExMEUgMTE3MSAxMUI3O0NERjg7MTEwRSAxMTcxIDExQjc7CitDREY5O0NERjk7MTEwRSAxMTcxIDExQjg7Q0RGOTsxMTBFIDExNzEgMTFCODsKK0NERkE7Q0RGQTsxMTBFIDExNzEgMTFCOTtDREZBOzExMEUgMTE3MSAxMUI5OworQ0RGQjtDREZCOzExMEUgMTE3MSAxMUJBO0NERkI7MTEwRSAxMTcxIDExQkE7CitDREZDO0NERkM7MTEwRSAxMTcxIDExQkI7Q0RGQzsxMTBFIDExNzEgMTFCQjsKK0NERkQ7Q0RGRDsxMTBFIDExNzEgMTFCQztDREZEOzExMEUgMTE3MSAxMUJDOworQ0RGRTtDREZFOzExMEUgMTE3MSAxMUJEO0NERkU7MTEwRSAxMTcxIDExQkQ7CitDREZGO0NERkY7MTEwRSAxMTcxIDExQkU7Q0RGRjsxMTBFIDExNzEgMTFCRTsKK0NFMDA7Q0UwMDsxMTBFIDExNzEgMTFCRjtDRTAwOzExMEUgMTE3MSAxMUJGOworQ0UwMTtDRTAxOzExMEUgMTE3MSAxMUMwO0NFMDE7MTEwRSAxMTcxIDExQzA7CitDRTAyO0NFMDI7MTEwRSAxMTcxIDExQzE7Q0UwMjsxMTBFIDExNzEgMTFDMTsKK0NFMDM7Q0UwMzsxMTBFIDExNzEgMTFDMjtDRTAzOzExMEUgMTE3MSAxMUMyOworQ0UwNDtDRTA0OzExMEUgMTE3MjtDRTA0OzExMEUgMTE3MjsKK0NFMDU7Q0UwNTsxMTBFIDExNzIgMTFBODtDRTA1OzExMEUgMTE3MiAxMUE4OworQ0UwNjtDRTA2OzExMEUgMTE3MiAxMUE5O0NFMDY7MTEwRSAxMTcyIDExQTk7CitDRTA3O0NFMDc7MTEwRSAxMTcyIDExQUE7Q0UwNzsxMTBFIDExNzIgMTFBQTsKK0NFMDg7Q0UwODsxMTBFIDExNzIgMTFBQjtDRTA4OzExMEUgMTE3MiAxMUFCOworQ0UwOTtDRTA5OzExMEUgMTE3MiAxMUFDO0NFMDk7MTEwRSAxMTcyIDExQUM7CitDRTBBO0NFMEE7MTEwRSAxMTcyIDExQUQ7Q0UwQTsxMTBFIDExNzIgMTFBRDsKK0NFMEI7Q0UwQjsxMTBFIDExNzIgMTFBRTtDRTBCOzExMEUgMTE3MiAxMUFFOworQ0UwQztDRTBDOzExMEUgMTE3MiAxMUFGO0NFMEM7MTEwRSAxMTcyIDExQUY7CitDRTBEO0NFMEQ7MTEwRSAxMTcyIDExQjA7Q0UwRDsxMTBFIDExNzIgMTFCMDsKK0NFMEU7Q0UwRTsxMTBFIDExNzIgMTFCMTtDRTBFOzExMEUgMTE3MiAxMUIxOworQ0UwRjtDRTBGOzExMEUgMTE3MiAxMUIyO0NFMEY7MTEwRSAxMTcyIDExQjI7CitDRTEwO0NFMTA7MTEwRSAxMTcyIDExQjM7Q0UxMDsxMTBFIDExNzIgMTFCMzsKK0NFMTE7Q0UxMTsxMTBFIDExNzIgMTFCNDtDRTExOzExMEUgMTE3MiAxMUI0OworQ0UxMjtDRTEyOzExMEUgMTE3MiAxMUI1O0NFMTI7MTEwRSAxMTcyIDExQjU7CitDRTEzO0NFMTM7MTEwRSAxMTcyIDExQjY7Q0UxMzsxMTBFIDExNzIgMTFCNjsKK0NFMTQ7Q0UxNDsxMTBFIDExNzIgMTFCNztDRTE0OzExMEUgMTE3MiAxMUI3OworQ0UxNTtDRTE1OzExMEUgMTE3MiAxMUI4O0NFMTU7MTEwRSAxMTcyIDExQjg7CitDRTE2O0NFMTY7MTEwRSAxMTcyIDExQjk7Q0UxNjsxMTBFIDExNzIgMTFCOTsKK0NFMTc7Q0UxNzsxMTBFIDExNzIgMTFCQTtDRTE3OzExMEUgMTE3MiAxMUJBOworQ0UxODtDRTE4OzExMEUgMTE3MiAxMUJCO0NFMTg7MTEwRSAxMTcyIDExQkI7CitDRTE5O0NFMTk7MTEwRSAxMTcyIDExQkM7Q0UxOTsxMTBFIDExNzIgMTFCQzsKK0NFMUE7Q0UxQTsxMTBFIDExNzIgMTFCRDtDRTFBOzExMEUgMTE3MiAxMUJEOworQ0UxQjtDRTFCOzExMEUgMTE3MiAxMUJFO0NFMUI7MTEwRSAxMTcyIDExQkU7CitDRTFDO0NFMUM7MTEwRSAxMTcyIDExQkY7Q0UxQzsxMTBFIDExNzIgMTFCRjsKK0NFMUQ7Q0UxRDsxMTBFIDExNzIgMTFDMDtDRTFEOzExMEUgMTE3MiAxMUMwOworQ0UxRTtDRTFFOzExMEUgMTE3MiAxMUMxO0NFMUU7MTEwRSAxMTcyIDExQzE7CitDRTFGO0NFMUY7MTEwRSAxMTcyIDExQzI7Q0UxRjsxMTBFIDExNzIgMTFDMjsKK0NFMjA7Q0UyMDsxMTBFIDExNzM7Q0UyMDsxMTBFIDExNzM7CitDRTIxO0NFMjE7MTEwRSAxMTczIDExQTg7Q0UyMTsxMTBFIDExNzMgMTFBODsKK0NFMjI7Q0UyMjsxMTBFIDExNzMgMTFBOTtDRTIyOzExMEUgMTE3MyAxMUE5OworQ0UyMztDRTIzOzExMEUgMTE3MyAxMUFBO0NFMjM7MTEwRSAxMTczIDExQUE7CitDRTI0O0NFMjQ7MTEwRSAxMTczIDExQUI7Q0UyNDsxMTBFIDExNzMgMTFBQjsKK0NFMjU7Q0UyNTsxMTBFIDExNzMgMTFBQztDRTI1OzExMEUgMTE3MyAxMUFDOworQ0UyNjtDRTI2OzExMEUgMTE3MyAxMUFEO0NFMjY7MTEwRSAxMTczIDExQUQ7CitDRTI3O0NFMjc7MTEwRSAxMTczIDExQUU7Q0UyNzsxMTBFIDExNzMgMTFBRTsKK0NFMjg7Q0UyODsxMTBFIDExNzMgMTFBRjtDRTI4OzExMEUgMTE3MyAxMUFGOworQ0UyOTtDRTI5OzExMEUgMTE3MyAxMUIwO0NFMjk7MTEwRSAxMTczIDExQjA7CitDRTJBO0NFMkE7MTEwRSAxMTczIDExQjE7Q0UyQTsxMTBFIDExNzMgMTFCMTsKK0NFMkI7Q0UyQjsxMTBFIDExNzMgMTFCMjtDRTJCOzExMEUgMTE3MyAxMUIyOworQ0UyQztDRTJDOzExMEUgMTE3MyAxMUIzO0NFMkM7MTEwRSAxMTczIDExQjM7CitDRTJEO0NFMkQ7MTEwRSAxMTczIDExQjQ7Q0UyRDsxMTBFIDExNzMgMTFCNDsKK0NFMkU7Q0UyRTsxMTBFIDExNzMgMTFCNTtDRTJFOzExMEUgMTE3MyAxMUI1OworQ0UyRjtDRTJGOzExMEUgMTE3MyAxMUI2O0NFMkY7MTEwRSAxMTczIDExQjY7CitDRTMwO0NFMzA7MTEwRSAxMTczIDExQjc7Q0UzMDsxMTBFIDExNzMgMTFCNzsKK0NFMzE7Q0UzMTsxMTBFIDExNzMgMTFCODtDRTMxOzExMEUgMTE3MyAxMUI4OworQ0UzMjtDRTMyOzExMEUgMTE3MyAxMUI5O0NFMzI7MTEwRSAxMTczIDExQjk7CitDRTMzO0NFMzM7MTEwRSAxMTczIDExQkE7Q0UzMzsxMTBFIDExNzMgMTFCQTsKK0NFMzQ7Q0UzNDsxMTBFIDExNzMgMTFCQjtDRTM0OzExMEUgMTE3MyAxMUJCOworQ0UzNTtDRTM1OzExMEUgMTE3MyAxMUJDO0NFMzU7MTEwRSAxMTczIDExQkM7CitDRTM2O0NFMzY7MTEwRSAxMTczIDExQkQ7Q0UzNjsxMTBFIDExNzMgMTFCRDsKK0NFMzc7Q0UzNzsxMTBFIDExNzMgMTFCRTtDRTM3OzExMEUgMTE3MyAxMUJFOworQ0UzODtDRTM4OzExMEUgMTE3MyAxMUJGO0NFMzg7MTEwRSAxMTczIDExQkY7CitDRTM5O0NFMzk7MTEwRSAxMTczIDExQzA7Q0UzOTsxMTBFIDExNzMgMTFDMDsKK0NFM0E7Q0UzQTsxMTBFIDExNzMgMTFDMTtDRTNBOzExMEUgMTE3MyAxMUMxOworQ0UzQjtDRTNCOzExMEUgMTE3MyAxMUMyO0NFM0I7MTEwRSAxMTczIDExQzI7CitDRTNDO0NFM0M7MTEwRSAxMTc0O0NFM0M7MTEwRSAxMTc0OworQ0UzRDtDRTNEOzExMEUgMTE3NCAxMUE4O0NFM0Q7MTEwRSAxMTc0IDExQTg7CitDRTNFO0NFM0U7MTEwRSAxMTc0IDExQTk7Q0UzRTsxMTBFIDExNzQgMTFBOTsKK0NFM0Y7Q0UzRjsxMTBFIDExNzQgMTFBQTtDRTNGOzExMEUgMTE3NCAxMUFBOworQ0U0MDtDRTQwOzExMEUgMTE3NCAxMUFCO0NFNDA7MTEwRSAxMTc0IDExQUI7CitDRTQxO0NFNDE7MTEwRSAxMTc0IDExQUM7Q0U0MTsxMTBFIDExNzQgMTFBQzsKK0NFNDI7Q0U0MjsxMTBFIDExNzQgMTFBRDtDRTQyOzExMEUgMTE3NCAxMUFEOworQ0U0MztDRTQzOzExMEUgMTE3NCAxMUFFO0NFNDM7MTEwRSAxMTc0IDExQUU7CitDRTQ0O0NFNDQ7MTEwRSAxMTc0IDExQUY7Q0U0NDsxMTBFIDExNzQgMTFBRjsKK0NFNDU7Q0U0NTsxMTBFIDExNzQgMTFCMDtDRTQ1OzExMEUgMTE3NCAxMUIwOworQ0U0NjtDRTQ2OzExMEUgMTE3NCAxMUIxO0NFNDY7MTEwRSAxMTc0IDExQjE7CitDRTQ3O0NFNDc7MTEwRSAxMTc0IDExQjI7Q0U0NzsxMTBFIDExNzQgMTFCMjsKK0NFNDg7Q0U0ODsxMTBFIDExNzQgMTFCMztDRTQ4OzExMEUgMTE3NCAxMUIzOworQ0U0OTtDRTQ5OzExMEUgMTE3NCAxMUI0O0NFNDk7MTEwRSAxMTc0IDExQjQ7CitDRTRBO0NFNEE7MTEwRSAxMTc0IDExQjU7Q0U0QTsxMTBFIDExNzQgMTFCNTsKK0NFNEI7Q0U0QjsxMTBFIDExNzQgMTFCNjtDRTRCOzExMEUgMTE3NCAxMUI2OworQ0U0QztDRTRDOzExMEUgMTE3NCAxMUI3O0NFNEM7MTEwRSAxMTc0IDExQjc7CitDRTREO0NFNEQ7MTEwRSAxMTc0IDExQjg7Q0U0RDsxMTBFIDExNzQgMTFCODsKK0NFNEU7Q0U0RTsxMTBFIDExNzQgMTFCOTtDRTRFOzExMEUgMTE3NCAxMUI5OworQ0U0RjtDRTRGOzExMEUgMTE3NCAxMUJBO0NFNEY7MTEwRSAxMTc0IDExQkE7CitDRTUwO0NFNTA7MTEwRSAxMTc0IDExQkI7Q0U1MDsxMTBFIDExNzQgMTFCQjsKK0NFNTE7Q0U1MTsxMTBFIDExNzQgMTFCQztDRTUxOzExMEUgMTE3NCAxMUJDOworQ0U1MjtDRTUyOzExMEUgMTE3NCAxMUJEO0NFNTI7MTEwRSAxMTc0IDExQkQ7CitDRTUzO0NFNTM7MTEwRSAxMTc0IDExQkU7Q0U1MzsxMTBFIDExNzQgMTFCRTsKK0NFNTQ7Q0U1NDsxMTBFIDExNzQgMTFCRjtDRTU0OzExMEUgMTE3NCAxMUJGOworQ0U1NTtDRTU1OzExMEUgMTE3NCAxMUMwO0NFNTU7MTEwRSAxMTc0IDExQzA7CitDRTU2O0NFNTY7MTEwRSAxMTc0IDExQzE7Q0U1NjsxMTBFIDExNzQgMTFDMTsKK0NFNTc7Q0U1NzsxMTBFIDExNzQgMTFDMjtDRTU3OzExMEUgMTE3NCAxMUMyOworQ0U1ODtDRTU4OzExMEUgMTE3NTtDRTU4OzExMEUgMTE3NTsKK0NFNTk7Q0U1OTsxMTBFIDExNzUgMTFBODtDRTU5OzExMEUgMTE3NSAxMUE4OworQ0U1QTtDRTVBOzExMEUgMTE3NSAxMUE5O0NFNUE7MTEwRSAxMTc1IDExQTk7CitDRTVCO0NFNUI7MTEwRSAxMTc1IDExQUE7Q0U1QjsxMTBFIDExNzUgMTFBQTsKK0NFNUM7Q0U1QzsxMTBFIDExNzUgMTFBQjtDRTVDOzExMEUgMTE3NSAxMUFCOworQ0U1RDtDRTVEOzExMEUgMTE3NSAxMUFDO0NFNUQ7MTEwRSAxMTc1IDExQUM7CitDRTVFO0NFNUU7MTEwRSAxMTc1IDExQUQ7Q0U1RTsxMTBFIDExNzUgMTFBRDsKK0NFNUY7Q0U1RjsxMTBFIDExNzUgMTFBRTtDRTVGOzExMEUgMTE3NSAxMUFFOworQ0U2MDtDRTYwOzExMEUgMTE3NSAxMUFGO0NFNjA7MTEwRSAxMTc1IDExQUY7CitDRTYxO0NFNjE7MTEwRSAxMTc1IDExQjA7Q0U2MTsxMTBFIDExNzUgMTFCMDsKK0NFNjI7Q0U2MjsxMTBFIDExNzUgMTFCMTtDRTYyOzExMEUgMTE3NSAxMUIxOworQ0U2MztDRTYzOzExMEUgMTE3NSAxMUIyO0NFNjM7MTEwRSAxMTc1IDExQjI7CitDRTY0O0NFNjQ7MTEwRSAxMTc1IDExQjM7Q0U2NDsxMTBFIDExNzUgMTFCMzsKK0NFNjU7Q0U2NTsxMTBFIDExNzUgMTFCNDtDRTY1OzExMEUgMTE3NSAxMUI0OworQ0U2NjtDRTY2OzExMEUgMTE3NSAxMUI1O0NFNjY7MTEwRSAxMTc1IDExQjU7CitDRTY3O0NFNjc7MTEwRSAxMTc1IDExQjY7Q0U2NzsxMTBFIDExNzUgMTFCNjsKK0NFNjg7Q0U2ODsxMTBFIDExNzUgMTFCNztDRTY4OzExMEUgMTE3NSAxMUI3OworQ0U2OTtDRTY5OzExMEUgMTE3NSAxMUI4O0NFNjk7MTEwRSAxMTc1IDExQjg7CitDRTZBO0NFNkE7MTEwRSAxMTc1IDExQjk7Q0U2QTsxMTBFIDExNzUgMTFCOTsKK0NFNkI7Q0U2QjsxMTBFIDExNzUgMTFCQTtDRTZCOzExMEUgMTE3NSAxMUJBOworQ0U2QztDRTZDOzExMEUgMTE3NSAxMUJCO0NFNkM7MTEwRSAxMTc1IDExQkI7CitDRTZEO0NFNkQ7MTEwRSAxMTc1IDExQkM7Q0U2RDsxMTBFIDExNzUgMTFCQzsKK0NFNkU7Q0U2RTsxMTBFIDExNzUgMTFCRDtDRTZFOzExMEUgMTE3NSAxMUJEOworQ0U2RjtDRTZGOzExMEUgMTE3NSAxMUJFO0NFNkY7MTEwRSAxMTc1IDExQkU7CitDRTcwO0NFNzA7MTEwRSAxMTc1IDExQkY7Q0U3MDsxMTBFIDExNzUgMTFCRjsKK0NFNzE7Q0U3MTsxMTBFIDExNzUgMTFDMDtDRTcxOzExMEUgMTE3NSAxMUMwOworQ0U3MjtDRTcyOzExMEUgMTE3NSAxMUMxO0NFNzI7MTEwRSAxMTc1IDExQzE7CitDRTczO0NFNzM7MTEwRSAxMTc1IDExQzI7Q0U3MzsxMTBFIDExNzUgMTFDMjsKK0NFNzQ7Q0U3NDsxMTBGIDExNjE7Q0U3NDsxMTBGIDExNjE7CitDRTc1O0NFNzU7MTEwRiAxMTYxIDExQTg7Q0U3NTsxMTBGIDExNjEgMTFBODsKK0NFNzY7Q0U3NjsxMTBGIDExNjEgMTFBOTtDRTc2OzExMEYgMTE2MSAxMUE5OworQ0U3NztDRTc3OzExMEYgMTE2MSAxMUFBO0NFNzc7MTEwRiAxMTYxIDExQUE7CitDRTc4O0NFNzg7MTEwRiAxMTYxIDExQUI7Q0U3ODsxMTBGIDExNjEgMTFBQjsKK0NFNzk7Q0U3OTsxMTBGIDExNjEgMTFBQztDRTc5OzExMEYgMTE2MSAxMUFDOworQ0U3QTtDRTdBOzExMEYgMTE2MSAxMUFEO0NFN0E7MTEwRiAxMTYxIDExQUQ7CitDRTdCO0NFN0I7MTEwRiAxMTYxIDExQUU7Q0U3QjsxMTBGIDExNjEgMTFBRTsKK0NFN0M7Q0U3QzsxMTBGIDExNjEgMTFBRjtDRTdDOzExMEYgMTE2MSAxMUFGOworQ0U3RDtDRTdEOzExMEYgMTE2MSAxMUIwO0NFN0Q7MTEwRiAxMTYxIDExQjA7CitDRTdFO0NFN0U7MTEwRiAxMTYxIDExQjE7Q0U3RTsxMTBGIDExNjEgMTFCMTsKK0NFN0Y7Q0U3RjsxMTBGIDExNjEgMTFCMjtDRTdGOzExMEYgMTE2MSAxMUIyOworQ0U4MDtDRTgwOzExMEYgMTE2MSAxMUIzO0NFODA7MTEwRiAxMTYxIDExQjM7CitDRTgxO0NFODE7MTEwRiAxMTYxIDExQjQ7Q0U4MTsxMTBGIDExNjEgMTFCNDsKK0NFODI7Q0U4MjsxMTBGIDExNjEgMTFCNTtDRTgyOzExMEYgMTE2MSAxMUI1OworQ0U4MztDRTgzOzExMEYgMTE2MSAxMUI2O0NFODM7MTEwRiAxMTYxIDExQjY7CitDRTg0O0NFODQ7MTEwRiAxMTYxIDExQjc7Q0U4NDsxMTBGIDExNjEgMTFCNzsKK0NFODU7Q0U4NTsxMTBGIDExNjEgMTFCODtDRTg1OzExMEYgMTE2MSAxMUI4OworQ0U4NjtDRTg2OzExMEYgMTE2MSAxMUI5O0NFODY7MTEwRiAxMTYxIDExQjk7CitDRTg3O0NFODc7MTEwRiAxMTYxIDExQkE7Q0U4NzsxMTBGIDExNjEgMTFCQTsKK0NFODg7Q0U4ODsxMTBGIDExNjEgMTFCQjtDRTg4OzExMEYgMTE2MSAxMUJCOworQ0U4OTtDRTg5OzExMEYgMTE2MSAxMUJDO0NFODk7MTEwRiAxMTYxIDExQkM7CitDRThBO0NFOEE7MTEwRiAxMTYxIDExQkQ7Q0U4QTsxMTBGIDExNjEgMTFCRDsKK0NFOEI7Q0U4QjsxMTBGIDExNjEgMTFCRTtDRThCOzExMEYgMTE2MSAxMUJFOworQ0U4QztDRThDOzExMEYgMTE2MSAxMUJGO0NFOEM7MTEwRiAxMTYxIDExQkY7CitDRThEO0NFOEQ7MTEwRiAxMTYxIDExQzA7Q0U4RDsxMTBGIDExNjEgMTFDMDsKK0NFOEU7Q0U4RTsxMTBGIDExNjEgMTFDMTtDRThFOzExMEYgMTE2MSAxMUMxOworQ0U4RjtDRThGOzExMEYgMTE2MSAxMUMyO0NFOEY7MTEwRiAxMTYxIDExQzI7CitDRTkwO0NFOTA7MTEwRiAxMTYyO0NFOTA7MTEwRiAxMTYyOworQ0U5MTtDRTkxOzExMEYgMTE2MiAxMUE4O0NFOTE7MTEwRiAxMTYyIDExQTg7CitDRTkyO0NFOTI7MTEwRiAxMTYyIDExQTk7Q0U5MjsxMTBGIDExNjIgMTFBOTsKK0NFOTM7Q0U5MzsxMTBGIDExNjIgMTFBQTtDRTkzOzExMEYgMTE2MiAxMUFBOworQ0U5NDtDRTk0OzExMEYgMTE2MiAxMUFCO0NFOTQ7MTEwRiAxMTYyIDExQUI7CitDRTk1O0NFOTU7MTEwRiAxMTYyIDExQUM7Q0U5NTsxMTBGIDExNjIgMTFBQzsKK0NFOTY7Q0U5NjsxMTBGIDExNjIgMTFBRDtDRTk2OzExMEYgMTE2MiAxMUFEOworQ0U5NztDRTk3OzExMEYgMTE2MiAxMUFFO0NFOTc7MTEwRiAxMTYyIDExQUU7CitDRTk4O0NFOTg7MTEwRiAxMTYyIDExQUY7Q0U5ODsxMTBGIDExNjIgMTFBRjsKK0NFOTk7Q0U5OTsxMTBGIDExNjIgMTFCMDtDRTk5OzExMEYgMTE2MiAxMUIwOworQ0U5QTtDRTlBOzExMEYgMTE2MiAxMUIxO0NFOUE7MTEwRiAxMTYyIDExQjE7CitDRTlCO0NFOUI7MTEwRiAxMTYyIDExQjI7Q0U5QjsxMTBGIDExNjIgMTFCMjsKK0NFOUM7Q0U5QzsxMTBGIDExNjIgMTFCMztDRTlDOzExMEYgMTE2MiAxMUIzOworQ0U5RDtDRTlEOzExMEYgMTE2MiAxMUI0O0NFOUQ7MTEwRiAxMTYyIDExQjQ7CitDRTlFO0NFOUU7MTEwRiAxMTYyIDExQjU7Q0U5RTsxMTBGIDExNjIgMTFCNTsKK0NFOUY7Q0U5RjsxMTBGIDExNjIgMTFCNjtDRTlGOzExMEYgMTE2MiAxMUI2OworQ0VBMDtDRUEwOzExMEYgMTE2MiAxMUI3O0NFQTA7MTEwRiAxMTYyIDExQjc7CitDRUExO0NFQTE7MTEwRiAxMTYyIDExQjg7Q0VBMTsxMTBGIDExNjIgMTFCODsKK0NFQTI7Q0VBMjsxMTBGIDExNjIgMTFCOTtDRUEyOzExMEYgMTE2MiAxMUI5OworQ0VBMztDRUEzOzExMEYgMTE2MiAxMUJBO0NFQTM7MTEwRiAxMTYyIDExQkE7CitDRUE0O0NFQTQ7MTEwRiAxMTYyIDExQkI7Q0VBNDsxMTBGIDExNjIgMTFCQjsKK0NFQTU7Q0VBNTsxMTBGIDExNjIgMTFCQztDRUE1OzExMEYgMTE2MiAxMUJDOworQ0VBNjtDRUE2OzExMEYgMTE2MiAxMUJEO0NFQTY7MTEwRiAxMTYyIDExQkQ7CitDRUE3O0NFQTc7MTEwRiAxMTYyIDExQkU7Q0VBNzsxMTBGIDExNjIgMTFCRTsKK0NFQTg7Q0VBODsxMTBGIDExNjIgMTFCRjtDRUE4OzExMEYgMTE2MiAxMUJGOworQ0VBOTtDRUE5OzExMEYgMTE2MiAxMUMwO0NFQTk7MTEwRiAxMTYyIDExQzA7CitDRUFBO0NFQUE7MTEwRiAxMTYyIDExQzE7Q0VBQTsxMTBGIDExNjIgMTFDMTsKK0NFQUI7Q0VBQjsxMTBGIDExNjIgMTFDMjtDRUFCOzExMEYgMTE2MiAxMUMyOworQ0VBQztDRUFDOzExMEYgMTE2MztDRUFDOzExMEYgMTE2MzsKK0NFQUQ7Q0VBRDsxMTBGIDExNjMgMTFBODtDRUFEOzExMEYgMTE2MyAxMUE4OworQ0VBRTtDRUFFOzExMEYgMTE2MyAxMUE5O0NFQUU7MTEwRiAxMTYzIDExQTk7CitDRUFGO0NFQUY7MTEwRiAxMTYzIDExQUE7Q0VBRjsxMTBGIDExNjMgMTFBQTsKK0NFQjA7Q0VCMDsxMTBGIDExNjMgMTFBQjtDRUIwOzExMEYgMTE2MyAxMUFCOworQ0VCMTtDRUIxOzExMEYgMTE2MyAxMUFDO0NFQjE7MTEwRiAxMTYzIDExQUM7CitDRUIyO0NFQjI7MTEwRiAxMTYzIDExQUQ7Q0VCMjsxMTBGIDExNjMgMTFBRDsKK0NFQjM7Q0VCMzsxMTBGIDExNjMgMTFBRTtDRUIzOzExMEYgMTE2MyAxMUFFOworQ0VCNDtDRUI0OzExMEYgMTE2MyAxMUFGO0NFQjQ7MTEwRiAxMTYzIDExQUY7CitDRUI1O0NFQjU7MTEwRiAxMTYzIDExQjA7Q0VCNTsxMTBGIDExNjMgMTFCMDsKK0NFQjY7Q0VCNjsxMTBGIDExNjMgMTFCMTtDRUI2OzExMEYgMTE2MyAxMUIxOworQ0VCNztDRUI3OzExMEYgMTE2MyAxMUIyO0NFQjc7MTEwRiAxMTYzIDExQjI7CitDRUI4O0NFQjg7MTEwRiAxMTYzIDExQjM7Q0VCODsxMTBGIDExNjMgMTFCMzsKK0NFQjk7Q0VCOTsxMTBGIDExNjMgMTFCNDtDRUI5OzExMEYgMTE2MyAxMUI0OworQ0VCQTtDRUJBOzExMEYgMTE2MyAxMUI1O0NFQkE7MTEwRiAxMTYzIDExQjU7CitDRUJCO0NFQkI7MTEwRiAxMTYzIDExQjY7Q0VCQjsxMTBGIDExNjMgMTFCNjsKK0NFQkM7Q0VCQzsxMTBGIDExNjMgMTFCNztDRUJDOzExMEYgMTE2MyAxMUI3OworQ0VCRDtDRUJEOzExMEYgMTE2MyAxMUI4O0NFQkQ7MTEwRiAxMTYzIDExQjg7CitDRUJFO0NFQkU7MTEwRiAxMTYzIDExQjk7Q0VCRTsxMTBGIDExNjMgMTFCOTsKK0NFQkY7Q0VCRjsxMTBGIDExNjMgMTFCQTtDRUJGOzExMEYgMTE2MyAxMUJBOworQ0VDMDtDRUMwOzExMEYgMTE2MyAxMUJCO0NFQzA7MTEwRiAxMTYzIDExQkI7CitDRUMxO0NFQzE7MTEwRiAxMTYzIDExQkM7Q0VDMTsxMTBGIDExNjMgMTFCQzsKK0NFQzI7Q0VDMjsxMTBGIDExNjMgMTFCRDtDRUMyOzExMEYgMTE2MyAxMUJEOworQ0VDMztDRUMzOzExMEYgMTE2MyAxMUJFO0NFQzM7MTEwRiAxMTYzIDExQkU7CitDRUM0O0NFQzQ7MTEwRiAxMTYzIDExQkY7Q0VDNDsxMTBGIDExNjMgMTFCRjsKK0NFQzU7Q0VDNTsxMTBGIDExNjMgMTFDMDtDRUM1OzExMEYgMTE2MyAxMUMwOworQ0VDNjtDRUM2OzExMEYgMTE2MyAxMUMxO0NFQzY7MTEwRiAxMTYzIDExQzE7CitDRUM3O0NFQzc7MTEwRiAxMTYzIDExQzI7Q0VDNzsxMTBGIDExNjMgMTFDMjsKK0NFQzg7Q0VDODsxMTBGIDExNjQ7Q0VDODsxMTBGIDExNjQ7CitDRUM5O0NFQzk7MTEwRiAxMTY0IDExQTg7Q0VDOTsxMTBGIDExNjQgMTFBODsKK0NFQ0E7Q0VDQTsxMTBGIDExNjQgMTFBOTtDRUNBOzExMEYgMTE2NCAxMUE5OworQ0VDQjtDRUNCOzExMEYgMTE2NCAxMUFBO0NFQ0I7MTEwRiAxMTY0IDExQUE7CitDRUNDO0NFQ0M7MTEwRiAxMTY0IDExQUI7Q0VDQzsxMTBGIDExNjQgMTFBQjsKK0NFQ0Q7Q0VDRDsxMTBGIDExNjQgMTFBQztDRUNEOzExMEYgMTE2NCAxMUFDOworQ0VDRTtDRUNFOzExMEYgMTE2NCAxMUFEO0NFQ0U7MTEwRiAxMTY0IDExQUQ7CitDRUNGO0NFQ0Y7MTEwRiAxMTY0IDExQUU7Q0VDRjsxMTBGIDExNjQgMTFBRTsKK0NFRDA7Q0VEMDsxMTBGIDExNjQgMTFBRjtDRUQwOzExMEYgMTE2NCAxMUFGOworQ0VEMTtDRUQxOzExMEYgMTE2NCAxMUIwO0NFRDE7MTEwRiAxMTY0IDExQjA7CitDRUQyO0NFRDI7MTEwRiAxMTY0IDExQjE7Q0VEMjsxMTBGIDExNjQgMTFCMTsKK0NFRDM7Q0VEMzsxMTBGIDExNjQgMTFCMjtDRUQzOzExMEYgMTE2NCAxMUIyOworQ0VENDtDRUQ0OzExMEYgMTE2NCAxMUIzO0NFRDQ7MTEwRiAxMTY0IDExQjM7CitDRUQ1O0NFRDU7MTEwRiAxMTY0IDExQjQ7Q0VENTsxMTBGIDExNjQgMTFCNDsKK0NFRDY7Q0VENjsxMTBGIDExNjQgMTFCNTtDRUQ2OzExMEYgMTE2NCAxMUI1OworQ0VENztDRUQ3OzExMEYgMTE2NCAxMUI2O0NFRDc7MTEwRiAxMTY0IDExQjY7CitDRUQ4O0NFRDg7MTEwRiAxMTY0IDExQjc7Q0VEODsxMTBGIDExNjQgMTFCNzsKK0NFRDk7Q0VEOTsxMTBGIDExNjQgMTFCODtDRUQ5OzExMEYgMTE2NCAxMUI4OworQ0VEQTtDRURBOzExMEYgMTE2NCAxMUI5O0NFREE7MTEwRiAxMTY0IDExQjk7CitDRURCO0NFREI7MTEwRiAxMTY0IDExQkE7Q0VEQjsxMTBGIDExNjQgMTFCQTsKK0NFREM7Q0VEQzsxMTBGIDExNjQgMTFCQjtDRURDOzExMEYgMTE2NCAxMUJCOworQ0VERDtDRUREOzExMEYgMTE2NCAxMUJDO0NFREQ7MTEwRiAxMTY0IDExQkM7CitDRURFO0NFREU7MTEwRiAxMTY0IDExQkQ7Q0VERTsxMTBGIDExNjQgMTFCRDsKK0NFREY7Q0VERjsxMTBGIDExNjQgMTFCRTtDRURGOzExMEYgMTE2NCAxMUJFOworQ0VFMDtDRUUwOzExMEYgMTE2NCAxMUJGO0NFRTA7MTEwRiAxMTY0IDExQkY7CitDRUUxO0NFRTE7MTEwRiAxMTY0IDExQzA7Q0VFMTsxMTBGIDExNjQgMTFDMDsKK0NFRTI7Q0VFMjsxMTBGIDExNjQgMTFDMTtDRUUyOzExMEYgMTE2NCAxMUMxOworQ0VFMztDRUUzOzExMEYgMTE2NCAxMUMyO0NFRTM7MTEwRiAxMTY0IDExQzI7CitDRUU0O0NFRTQ7MTEwRiAxMTY1O0NFRTQ7MTEwRiAxMTY1OworQ0VFNTtDRUU1OzExMEYgMTE2NSAxMUE4O0NFRTU7MTEwRiAxMTY1IDExQTg7CitDRUU2O0NFRTY7MTEwRiAxMTY1IDExQTk7Q0VFNjsxMTBGIDExNjUgMTFBOTsKK0NFRTc7Q0VFNzsxMTBGIDExNjUgMTFBQTtDRUU3OzExMEYgMTE2NSAxMUFBOworQ0VFODtDRUU4OzExMEYgMTE2NSAxMUFCO0NFRTg7MTEwRiAxMTY1IDExQUI7CitDRUU5O0NFRTk7MTEwRiAxMTY1IDExQUM7Q0VFOTsxMTBGIDExNjUgMTFBQzsKK0NFRUE7Q0VFQTsxMTBGIDExNjUgMTFBRDtDRUVBOzExMEYgMTE2NSAxMUFEOworQ0VFQjtDRUVCOzExMEYgMTE2NSAxMUFFO0NFRUI7MTEwRiAxMTY1IDExQUU7CitDRUVDO0NFRUM7MTEwRiAxMTY1IDExQUY7Q0VFQzsxMTBGIDExNjUgMTFBRjsKK0NFRUQ7Q0VFRDsxMTBGIDExNjUgMTFCMDtDRUVEOzExMEYgMTE2NSAxMUIwOworQ0VFRTtDRUVFOzExMEYgMTE2NSAxMUIxO0NFRUU7MTEwRiAxMTY1IDExQjE7CitDRUVGO0NFRUY7MTEwRiAxMTY1IDExQjI7Q0VFRjsxMTBGIDExNjUgMTFCMjsKK0NFRjA7Q0VGMDsxMTBGIDExNjUgMTFCMztDRUYwOzExMEYgMTE2NSAxMUIzOworQ0VGMTtDRUYxOzExMEYgMTE2NSAxMUI0O0NFRjE7MTEwRiAxMTY1IDExQjQ7CitDRUYyO0NFRjI7MTEwRiAxMTY1IDExQjU7Q0VGMjsxMTBGIDExNjUgMTFCNTsKK0NFRjM7Q0VGMzsxMTBGIDExNjUgMTFCNjtDRUYzOzExMEYgMTE2NSAxMUI2OworQ0VGNDtDRUY0OzExMEYgMTE2NSAxMUI3O0NFRjQ7MTEwRiAxMTY1IDExQjc7CitDRUY1O0NFRjU7MTEwRiAxMTY1IDExQjg7Q0VGNTsxMTBGIDExNjUgMTFCODsKK0NFRjY7Q0VGNjsxMTBGIDExNjUgMTFCOTtDRUY2OzExMEYgMTE2NSAxMUI5OworQ0VGNztDRUY3OzExMEYgMTE2NSAxMUJBO0NFRjc7MTEwRiAxMTY1IDExQkE7CitDRUY4O0NFRjg7MTEwRiAxMTY1IDExQkI7Q0VGODsxMTBGIDExNjUgMTFCQjsKK0NFRjk7Q0VGOTsxMTBGIDExNjUgMTFCQztDRUY5OzExMEYgMTE2NSAxMUJDOworQ0VGQTtDRUZBOzExMEYgMTE2NSAxMUJEO0NFRkE7MTEwRiAxMTY1IDExQkQ7CitDRUZCO0NFRkI7MTEwRiAxMTY1IDExQkU7Q0VGQjsxMTBGIDExNjUgMTFCRTsKK0NFRkM7Q0VGQzsxMTBGIDExNjUgMTFCRjtDRUZDOzExMEYgMTE2NSAxMUJGOworQ0VGRDtDRUZEOzExMEYgMTE2NSAxMUMwO0NFRkQ7MTEwRiAxMTY1IDExQzA7CitDRUZFO0NFRkU7MTEwRiAxMTY1IDExQzE7Q0VGRTsxMTBGIDExNjUgMTFDMTsKK0NFRkY7Q0VGRjsxMTBGIDExNjUgMTFDMjtDRUZGOzExMEYgMTE2NSAxMUMyOworQ0YwMDtDRjAwOzExMEYgMTE2NjtDRjAwOzExMEYgMTE2NjsKK0NGMDE7Q0YwMTsxMTBGIDExNjYgMTFBODtDRjAxOzExMEYgMTE2NiAxMUE4OworQ0YwMjtDRjAyOzExMEYgMTE2NiAxMUE5O0NGMDI7MTEwRiAxMTY2IDExQTk7CitDRjAzO0NGMDM7MTEwRiAxMTY2IDExQUE7Q0YwMzsxMTBGIDExNjYgMTFBQTsKK0NGMDQ7Q0YwNDsxMTBGIDExNjYgMTFBQjtDRjA0OzExMEYgMTE2NiAxMUFCOworQ0YwNTtDRjA1OzExMEYgMTE2NiAxMUFDO0NGMDU7MTEwRiAxMTY2IDExQUM7CitDRjA2O0NGMDY7MTEwRiAxMTY2IDExQUQ7Q0YwNjsxMTBGIDExNjYgMTFBRDsKK0NGMDc7Q0YwNzsxMTBGIDExNjYgMTFBRTtDRjA3OzExMEYgMTE2NiAxMUFFOworQ0YwODtDRjA4OzExMEYgMTE2NiAxMUFGO0NGMDg7MTEwRiAxMTY2IDExQUY7CitDRjA5O0NGMDk7MTEwRiAxMTY2IDExQjA7Q0YwOTsxMTBGIDExNjYgMTFCMDsKK0NGMEE7Q0YwQTsxMTBGIDExNjYgMTFCMTtDRjBBOzExMEYgMTE2NiAxMUIxOworQ0YwQjtDRjBCOzExMEYgMTE2NiAxMUIyO0NGMEI7MTEwRiAxMTY2IDExQjI7CitDRjBDO0NGMEM7MTEwRiAxMTY2IDExQjM7Q0YwQzsxMTBGIDExNjYgMTFCMzsKK0NGMEQ7Q0YwRDsxMTBGIDExNjYgMTFCNDtDRjBEOzExMEYgMTE2NiAxMUI0OworQ0YwRTtDRjBFOzExMEYgMTE2NiAxMUI1O0NGMEU7MTEwRiAxMTY2IDExQjU7CitDRjBGO0NGMEY7MTEwRiAxMTY2IDExQjY7Q0YwRjsxMTBGIDExNjYgMTFCNjsKK0NGMTA7Q0YxMDsxMTBGIDExNjYgMTFCNztDRjEwOzExMEYgMTE2NiAxMUI3OworQ0YxMTtDRjExOzExMEYgMTE2NiAxMUI4O0NGMTE7MTEwRiAxMTY2IDExQjg7CitDRjEyO0NGMTI7MTEwRiAxMTY2IDExQjk7Q0YxMjsxMTBGIDExNjYgMTFCOTsKK0NGMTM7Q0YxMzsxMTBGIDExNjYgMTFCQTtDRjEzOzExMEYgMTE2NiAxMUJBOworQ0YxNDtDRjE0OzExMEYgMTE2NiAxMUJCO0NGMTQ7MTEwRiAxMTY2IDExQkI7CitDRjE1O0NGMTU7MTEwRiAxMTY2IDExQkM7Q0YxNTsxMTBGIDExNjYgMTFCQzsKK0NGMTY7Q0YxNjsxMTBGIDExNjYgMTFCRDtDRjE2OzExMEYgMTE2NiAxMUJEOworQ0YxNztDRjE3OzExMEYgMTE2NiAxMUJFO0NGMTc7MTEwRiAxMTY2IDExQkU7CitDRjE4O0NGMTg7MTEwRiAxMTY2IDExQkY7Q0YxODsxMTBGIDExNjYgMTFCRjsKK0NGMTk7Q0YxOTsxMTBGIDExNjYgMTFDMDtDRjE5OzExMEYgMTE2NiAxMUMwOworQ0YxQTtDRjFBOzExMEYgMTE2NiAxMUMxO0NGMUE7MTEwRiAxMTY2IDExQzE7CitDRjFCO0NGMUI7MTEwRiAxMTY2IDExQzI7Q0YxQjsxMTBGIDExNjYgMTFDMjsKK0NGMUM7Q0YxQzsxMTBGIDExNjc7Q0YxQzsxMTBGIDExNjc7CitDRjFEO0NGMUQ7MTEwRiAxMTY3IDExQTg7Q0YxRDsxMTBGIDExNjcgMTFBODsKK0NGMUU7Q0YxRTsxMTBGIDExNjcgMTFBOTtDRjFFOzExMEYgMTE2NyAxMUE5OworQ0YxRjtDRjFGOzExMEYgMTE2NyAxMUFBO0NGMUY7MTEwRiAxMTY3IDExQUE7CitDRjIwO0NGMjA7MTEwRiAxMTY3IDExQUI7Q0YyMDsxMTBGIDExNjcgMTFBQjsKK0NGMjE7Q0YyMTsxMTBGIDExNjcgMTFBQztDRjIxOzExMEYgMTE2NyAxMUFDOworQ0YyMjtDRjIyOzExMEYgMTE2NyAxMUFEO0NGMjI7MTEwRiAxMTY3IDExQUQ7CitDRjIzO0NGMjM7MTEwRiAxMTY3IDExQUU7Q0YyMzsxMTBGIDExNjcgMTFBRTsKK0NGMjQ7Q0YyNDsxMTBGIDExNjcgMTFBRjtDRjI0OzExMEYgMTE2NyAxMUFGOworQ0YyNTtDRjI1OzExMEYgMTE2NyAxMUIwO0NGMjU7MTEwRiAxMTY3IDExQjA7CitDRjI2O0NGMjY7MTEwRiAxMTY3IDExQjE7Q0YyNjsxMTBGIDExNjcgMTFCMTsKK0NGMjc7Q0YyNzsxMTBGIDExNjcgMTFCMjtDRjI3OzExMEYgMTE2NyAxMUIyOworQ0YyODtDRjI4OzExMEYgMTE2NyAxMUIzO0NGMjg7MTEwRiAxMTY3IDExQjM7CitDRjI5O0NGMjk7MTEwRiAxMTY3IDExQjQ7Q0YyOTsxMTBGIDExNjcgMTFCNDsKK0NGMkE7Q0YyQTsxMTBGIDExNjcgMTFCNTtDRjJBOzExMEYgMTE2NyAxMUI1OworQ0YyQjtDRjJCOzExMEYgMTE2NyAxMUI2O0NGMkI7MTEwRiAxMTY3IDExQjY7CitDRjJDO0NGMkM7MTEwRiAxMTY3IDExQjc7Q0YyQzsxMTBGIDExNjcgMTFCNzsKK0NGMkQ7Q0YyRDsxMTBGIDExNjcgMTFCODtDRjJEOzExMEYgMTE2NyAxMUI4OworQ0YyRTtDRjJFOzExMEYgMTE2NyAxMUI5O0NGMkU7MTEwRiAxMTY3IDExQjk7CitDRjJGO0NGMkY7MTEwRiAxMTY3IDExQkE7Q0YyRjsxMTBGIDExNjcgMTFCQTsKK0NGMzA7Q0YzMDsxMTBGIDExNjcgMTFCQjtDRjMwOzExMEYgMTE2NyAxMUJCOworQ0YzMTtDRjMxOzExMEYgMTE2NyAxMUJDO0NGMzE7MTEwRiAxMTY3IDExQkM7CitDRjMyO0NGMzI7MTEwRiAxMTY3IDExQkQ7Q0YzMjsxMTBGIDExNjcgMTFCRDsKK0NGMzM7Q0YzMzsxMTBGIDExNjcgMTFCRTtDRjMzOzExMEYgMTE2NyAxMUJFOworQ0YzNDtDRjM0OzExMEYgMTE2NyAxMUJGO0NGMzQ7MTEwRiAxMTY3IDExQkY7CitDRjM1O0NGMzU7MTEwRiAxMTY3IDExQzA7Q0YzNTsxMTBGIDExNjcgMTFDMDsKK0NGMzY7Q0YzNjsxMTBGIDExNjcgMTFDMTtDRjM2OzExMEYgMTE2NyAxMUMxOworQ0YzNztDRjM3OzExMEYgMTE2NyAxMUMyO0NGMzc7MTEwRiAxMTY3IDExQzI7CitDRjM4O0NGMzg7MTEwRiAxMTY4O0NGMzg7MTEwRiAxMTY4OworQ0YzOTtDRjM5OzExMEYgMTE2OCAxMUE4O0NGMzk7MTEwRiAxMTY4IDExQTg7CitDRjNBO0NGM0E7MTEwRiAxMTY4IDExQTk7Q0YzQTsxMTBGIDExNjggMTFBOTsKK0NGM0I7Q0YzQjsxMTBGIDExNjggMTFBQTtDRjNCOzExMEYgMTE2OCAxMUFBOworQ0YzQztDRjNDOzExMEYgMTE2OCAxMUFCO0NGM0M7MTEwRiAxMTY4IDExQUI7CitDRjNEO0NGM0Q7MTEwRiAxMTY4IDExQUM7Q0YzRDsxMTBGIDExNjggMTFBQzsKK0NGM0U7Q0YzRTsxMTBGIDExNjggMTFBRDtDRjNFOzExMEYgMTE2OCAxMUFEOworQ0YzRjtDRjNGOzExMEYgMTE2OCAxMUFFO0NGM0Y7MTEwRiAxMTY4IDExQUU7CitDRjQwO0NGNDA7MTEwRiAxMTY4IDExQUY7Q0Y0MDsxMTBGIDExNjggMTFBRjsKK0NGNDE7Q0Y0MTsxMTBGIDExNjggMTFCMDtDRjQxOzExMEYgMTE2OCAxMUIwOworQ0Y0MjtDRjQyOzExMEYgMTE2OCAxMUIxO0NGNDI7MTEwRiAxMTY4IDExQjE7CitDRjQzO0NGNDM7MTEwRiAxMTY4IDExQjI7Q0Y0MzsxMTBGIDExNjggMTFCMjsKK0NGNDQ7Q0Y0NDsxMTBGIDExNjggMTFCMztDRjQ0OzExMEYgMTE2OCAxMUIzOworQ0Y0NTtDRjQ1OzExMEYgMTE2OCAxMUI0O0NGNDU7MTEwRiAxMTY4IDExQjQ7CitDRjQ2O0NGNDY7MTEwRiAxMTY4IDExQjU7Q0Y0NjsxMTBGIDExNjggMTFCNTsKK0NGNDc7Q0Y0NzsxMTBGIDExNjggMTFCNjtDRjQ3OzExMEYgMTE2OCAxMUI2OworQ0Y0ODtDRjQ4OzExMEYgMTE2OCAxMUI3O0NGNDg7MTEwRiAxMTY4IDExQjc7CitDRjQ5O0NGNDk7MTEwRiAxMTY4IDExQjg7Q0Y0OTsxMTBGIDExNjggMTFCODsKK0NGNEE7Q0Y0QTsxMTBGIDExNjggMTFCOTtDRjRBOzExMEYgMTE2OCAxMUI5OworQ0Y0QjtDRjRCOzExMEYgMTE2OCAxMUJBO0NGNEI7MTEwRiAxMTY4IDExQkE7CitDRjRDO0NGNEM7MTEwRiAxMTY4IDExQkI7Q0Y0QzsxMTBGIDExNjggMTFCQjsKK0NGNEQ7Q0Y0RDsxMTBGIDExNjggMTFCQztDRjREOzExMEYgMTE2OCAxMUJDOworQ0Y0RTtDRjRFOzExMEYgMTE2OCAxMUJEO0NGNEU7MTEwRiAxMTY4IDExQkQ7CitDRjRGO0NGNEY7MTEwRiAxMTY4IDExQkU7Q0Y0RjsxMTBGIDExNjggMTFCRTsKK0NGNTA7Q0Y1MDsxMTBGIDExNjggMTFCRjtDRjUwOzExMEYgMTE2OCAxMUJGOworQ0Y1MTtDRjUxOzExMEYgMTE2OCAxMUMwO0NGNTE7MTEwRiAxMTY4IDExQzA7CitDRjUyO0NGNTI7MTEwRiAxMTY4IDExQzE7Q0Y1MjsxMTBGIDExNjggMTFDMTsKK0NGNTM7Q0Y1MzsxMTBGIDExNjggMTFDMjtDRjUzOzExMEYgMTE2OCAxMUMyOworQ0Y1NDtDRjU0OzExMEYgMTE2OTtDRjU0OzExMEYgMTE2OTsKK0NGNTU7Q0Y1NTsxMTBGIDExNjkgMTFBODtDRjU1OzExMEYgMTE2OSAxMUE4OworQ0Y1NjtDRjU2OzExMEYgMTE2OSAxMUE5O0NGNTY7MTEwRiAxMTY5IDExQTk7CitDRjU3O0NGNTc7MTEwRiAxMTY5IDExQUE7Q0Y1NzsxMTBGIDExNjkgMTFBQTsKK0NGNTg7Q0Y1ODsxMTBGIDExNjkgMTFBQjtDRjU4OzExMEYgMTE2OSAxMUFCOworQ0Y1OTtDRjU5OzExMEYgMTE2OSAxMUFDO0NGNTk7MTEwRiAxMTY5IDExQUM7CitDRjVBO0NGNUE7MTEwRiAxMTY5IDExQUQ7Q0Y1QTsxMTBGIDExNjkgMTFBRDsKK0NGNUI7Q0Y1QjsxMTBGIDExNjkgMTFBRTtDRjVCOzExMEYgMTE2OSAxMUFFOworQ0Y1QztDRjVDOzExMEYgMTE2OSAxMUFGO0NGNUM7MTEwRiAxMTY5IDExQUY7CitDRjVEO0NGNUQ7MTEwRiAxMTY5IDExQjA7Q0Y1RDsxMTBGIDExNjkgMTFCMDsKK0NGNUU7Q0Y1RTsxMTBGIDExNjkgMTFCMTtDRjVFOzExMEYgMTE2OSAxMUIxOworQ0Y1RjtDRjVGOzExMEYgMTE2OSAxMUIyO0NGNUY7MTEwRiAxMTY5IDExQjI7CitDRjYwO0NGNjA7MTEwRiAxMTY5IDExQjM7Q0Y2MDsxMTBGIDExNjkgMTFCMzsKK0NGNjE7Q0Y2MTsxMTBGIDExNjkgMTFCNDtDRjYxOzExMEYgMTE2OSAxMUI0OworQ0Y2MjtDRjYyOzExMEYgMTE2OSAxMUI1O0NGNjI7MTEwRiAxMTY5IDExQjU7CitDRjYzO0NGNjM7MTEwRiAxMTY5IDExQjY7Q0Y2MzsxMTBGIDExNjkgMTFCNjsKK0NGNjQ7Q0Y2NDsxMTBGIDExNjkgMTFCNztDRjY0OzExMEYgMTE2OSAxMUI3OworQ0Y2NTtDRjY1OzExMEYgMTE2OSAxMUI4O0NGNjU7MTEwRiAxMTY5IDExQjg7CitDRjY2O0NGNjY7MTEwRiAxMTY5IDExQjk7Q0Y2NjsxMTBGIDExNjkgMTFCOTsKK0NGNjc7Q0Y2NzsxMTBGIDExNjkgMTFCQTtDRjY3OzExMEYgMTE2OSAxMUJBOworQ0Y2ODtDRjY4OzExMEYgMTE2OSAxMUJCO0NGNjg7MTEwRiAxMTY5IDExQkI7CitDRjY5O0NGNjk7MTEwRiAxMTY5IDExQkM7Q0Y2OTsxMTBGIDExNjkgMTFCQzsKK0NGNkE7Q0Y2QTsxMTBGIDExNjkgMTFCRDtDRjZBOzExMEYgMTE2OSAxMUJEOworQ0Y2QjtDRjZCOzExMEYgMTE2OSAxMUJFO0NGNkI7MTEwRiAxMTY5IDExQkU7CitDRjZDO0NGNkM7MTEwRiAxMTY5IDExQkY7Q0Y2QzsxMTBGIDExNjkgMTFCRjsKK0NGNkQ7Q0Y2RDsxMTBGIDExNjkgMTFDMDtDRjZEOzExMEYgMTE2OSAxMUMwOworQ0Y2RTtDRjZFOzExMEYgMTE2OSAxMUMxO0NGNkU7MTEwRiAxMTY5IDExQzE7CitDRjZGO0NGNkY7MTEwRiAxMTY5IDExQzI7Q0Y2RjsxMTBGIDExNjkgMTFDMjsKK0NGNzA7Q0Y3MDsxMTBGIDExNkE7Q0Y3MDsxMTBGIDExNkE7CitDRjcxO0NGNzE7MTEwRiAxMTZBIDExQTg7Q0Y3MTsxMTBGIDExNkEgMTFBODsKK0NGNzI7Q0Y3MjsxMTBGIDExNkEgMTFBOTtDRjcyOzExMEYgMTE2QSAxMUE5OworQ0Y3MztDRjczOzExMEYgMTE2QSAxMUFBO0NGNzM7MTEwRiAxMTZBIDExQUE7CitDRjc0O0NGNzQ7MTEwRiAxMTZBIDExQUI7Q0Y3NDsxMTBGIDExNkEgMTFBQjsKK0NGNzU7Q0Y3NTsxMTBGIDExNkEgMTFBQztDRjc1OzExMEYgMTE2QSAxMUFDOworQ0Y3NjtDRjc2OzExMEYgMTE2QSAxMUFEO0NGNzY7MTEwRiAxMTZBIDExQUQ7CitDRjc3O0NGNzc7MTEwRiAxMTZBIDExQUU7Q0Y3NzsxMTBGIDExNkEgMTFBRTsKK0NGNzg7Q0Y3ODsxMTBGIDExNkEgMTFBRjtDRjc4OzExMEYgMTE2QSAxMUFGOworQ0Y3OTtDRjc5OzExMEYgMTE2QSAxMUIwO0NGNzk7MTEwRiAxMTZBIDExQjA7CitDRjdBO0NGN0E7MTEwRiAxMTZBIDExQjE7Q0Y3QTsxMTBGIDExNkEgMTFCMTsKK0NGN0I7Q0Y3QjsxMTBGIDExNkEgMTFCMjtDRjdCOzExMEYgMTE2QSAxMUIyOworQ0Y3QztDRjdDOzExMEYgMTE2QSAxMUIzO0NGN0M7MTEwRiAxMTZBIDExQjM7CitDRjdEO0NGN0Q7MTEwRiAxMTZBIDExQjQ7Q0Y3RDsxMTBGIDExNkEgMTFCNDsKK0NGN0U7Q0Y3RTsxMTBGIDExNkEgMTFCNTtDRjdFOzExMEYgMTE2QSAxMUI1OworQ0Y3RjtDRjdGOzExMEYgMTE2QSAxMUI2O0NGN0Y7MTEwRiAxMTZBIDExQjY7CitDRjgwO0NGODA7MTEwRiAxMTZBIDExQjc7Q0Y4MDsxMTBGIDExNkEgMTFCNzsKK0NGODE7Q0Y4MTsxMTBGIDExNkEgMTFCODtDRjgxOzExMEYgMTE2QSAxMUI4OworQ0Y4MjtDRjgyOzExMEYgMTE2QSAxMUI5O0NGODI7MTEwRiAxMTZBIDExQjk7CitDRjgzO0NGODM7MTEwRiAxMTZBIDExQkE7Q0Y4MzsxMTBGIDExNkEgMTFCQTsKK0NGODQ7Q0Y4NDsxMTBGIDExNkEgMTFCQjtDRjg0OzExMEYgMTE2QSAxMUJCOworQ0Y4NTtDRjg1OzExMEYgMTE2QSAxMUJDO0NGODU7MTEwRiAxMTZBIDExQkM7CitDRjg2O0NGODY7MTEwRiAxMTZBIDExQkQ7Q0Y4NjsxMTBGIDExNkEgMTFCRDsKK0NGODc7Q0Y4NzsxMTBGIDExNkEgMTFCRTtDRjg3OzExMEYgMTE2QSAxMUJFOworQ0Y4ODtDRjg4OzExMEYgMTE2QSAxMUJGO0NGODg7MTEwRiAxMTZBIDExQkY7CitDRjg5O0NGODk7MTEwRiAxMTZBIDExQzA7Q0Y4OTsxMTBGIDExNkEgMTFDMDsKK0NGOEE7Q0Y4QTsxMTBGIDExNkEgMTFDMTtDRjhBOzExMEYgMTE2QSAxMUMxOworQ0Y4QjtDRjhCOzExMEYgMTE2QSAxMUMyO0NGOEI7MTEwRiAxMTZBIDExQzI7CitDRjhDO0NGOEM7MTEwRiAxMTZCO0NGOEM7MTEwRiAxMTZCOworQ0Y4RDtDRjhEOzExMEYgMTE2QiAxMUE4O0NGOEQ7MTEwRiAxMTZCIDExQTg7CitDRjhFO0NGOEU7MTEwRiAxMTZCIDExQTk7Q0Y4RTsxMTBGIDExNkIgMTFBOTsKK0NGOEY7Q0Y4RjsxMTBGIDExNkIgMTFBQTtDRjhGOzExMEYgMTE2QiAxMUFBOworQ0Y5MDtDRjkwOzExMEYgMTE2QiAxMUFCO0NGOTA7MTEwRiAxMTZCIDExQUI7CitDRjkxO0NGOTE7MTEwRiAxMTZCIDExQUM7Q0Y5MTsxMTBGIDExNkIgMTFBQzsKK0NGOTI7Q0Y5MjsxMTBGIDExNkIgMTFBRDtDRjkyOzExMEYgMTE2QiAxMUFEOworQ0Y5MztDRjkzOzExMEYgMTE2QiAxMUFFO0NGOTM7MTEwRiAxMTZCIDExQUU7CitDRjk0O0NGOTQ7MTEwRiAxMTZCIDExQUY7Q0Y5NDsxMTBGIDExNkIgMTFBRjsKK0NGOTU7Q0Y5NTsxMTBGIDExNkIgMTFCMDtDRjk1OzExMEYgMTE2QiAxMUIwOworQ0Y5NjtDRjk2OzExMEYgMTE2QiAxMUIxO0NGOTY7MTEwRiAxMTZCIDExQjE7CitDRjk3O0NGOTc7MTEwRiAxMTZCIDExQjI7Q0Y5NzsxMTBGIDExNkIgMTFCMjsKK0NGOTg7Q0Y5ODsxMTBGIDExNkIgMTFCMztDRjk4OzExMEYgMTE2QiAxMUIzOworQ0Y5OTtDRjk5OzExMEYgMTE2QiAxMUI0O0NGOTk7MTEwRiAxMTZCIDExQjQ7CitDRjlBO0NGOUE7MTEwRiAxMTZCIDExQjU7Q0Y5QTsxMTBGIDExNkIgMTFCNTsKK0NGOUI7Q0Y5QjsxMTBGIDExNkIgMTFCNjtDRjlCOzExMEYgMTE2QiAxMUI2OworQ0Y5QztDRjlDOzExMEYgMTE2QiAxMUI3O0NGOUM7MTEwRiAxMTZCIDExQjc7CitDRjlEO0NGOUQ7MTEwRiAxMTZCIDExQjg7Q0Y5RDsxMTBGIDExNkIgMTFCODsKK0NGOUU7Q0Y5RTsxMTBGIDExNkIgMTFCOTtDRjlFOzExMEYgMTE2QiAxMUI5OworQ0Y5RjtDRjlGOzExMEYgMTE2QiAxMUJBO0NGOUY7MTEwRiAxMTZCIDExQkE7CitDRkEwO0NGQTA7MTEwRiAxMTZCIDExQkI7Q0ZBMDsxMTBGIDExNkIgMTFCQjsKK0NGQTE7Q0ZBMTsxMTBGIDExNkIgMTFCQztDRkExOzExMEYgMTE2QiAxMUJDOworQ0ZBMjtDRkEyOzExMEYgMTE2QiAxMUJEO0NGQTI7MTEwRiAxMTZCIDExQkQ7CitDRkEzO0NGQTM7MTEwRiAxMTZCIDExQkU7Q0ZBMzsxMTBGIDExNkIgMTFCRTsKK0NGQTQ7Q0ZBNDsxMTBGIDExNkIgMTFCRjtDRkE0OzExMEYgMTE2QiAxMUJGOworQ0ZBNTtDRkE1OzExMEYgMTE2QiAxMUMwO0NGQTU7MTEwRiAxMTZCIDExQzA7CitDRkE2O0NGQTY7MTEwRiAxMTZCIDExQzE7Q0ZBNjsxMTBGIDExNkIgMTFDMTsKK0NGQTc7Q0ZBNzsxMTBGIDExNkIgMTFDMjtDRkE3OzExMEYgMTE2QiAxMUMyOworQ0ZBODtDRkE4OzExMEYgMTE2QztDRkE4OzExMEYgMTE2QzsKK0NGQTk7Q0ZBOTsxMTBGIDExNkMgMTFBODtDRkE5OzExMEYgMTE2QyAxMUE4OworQ0ZBQTtDRkFBOzExMEYgMTE2QyAxMUE5O0NGQUE7MTEwRiAxMTZDIDExQTk7CitDRkFCO0NGQUI7MTEwRiAxMTZDIDExQUE7Q0ZBQjsxMTBGIDExNkMgMTFBQTsKK0NGQUM7Q0ZBQzsxMTBGIDExNkMgMTFBQjtDRkFDOzExMEYgMTE2QyAxMUFCOworQ0ZBRDtDRkFEOzExMEYgMTE2QyAxMUFDO0NGQUQ7MTEwRiAxMTZDIDExQUM7CitDRkFFO0NGQUU7MTEwRiAxMTZDIDExQUQ7Q0ZBRTsxMTBGIDExNkMgMTFBRDsKK0NGQUY7Q0ZBRjsxMTBGIDExNkMgMTFBRTtDRkFGOzExMEYgMTE2QyAxMUFFOworQ0ZCMDtDRkIwOzExMEYgMTE2QyAxMUFGO0NGQjA7MTEwRiAxMTZDIDExQUY7CitDRkIxO0NGQjE7MTEwRiAxMTZDIDExQjA7Q0ZCMTsxMTBGIDExNkMgMTFCMDsKK0NGQjI7Q0ZCMjsxMTBGIDExNkMgMTFCMTtDRkIyOzExMEYgMTE2QyAxMUIxOworQ0ZCMztDRkIzOzExMEYgMTE2QyAxMUIyO0NGQjM7MTEwRiAxMTZDIDExQjI7CitDRkI0O0NGQjQ7MTEwRiAxMTZDIDExQjM7Q0ZCNDsxMTBGIDExNkMgMTFCMzsKK0NGQjU7Q0ZCNTsxMTBGIDExNkMgMTFCNDtDRkI1OzExMEYgMTE2QyAxMUI0OworQ0ZCNjtDRkI2OzExMEYgMTE2QyAxMUI1O0NGQjY7MTEwRiAxMTZDIDExQjU7CitDRkI3O0NGQjc7MTEwRiAxMTZDIDExQjY7Q0ZCNzsxMTBGIDExNkMgMTFCNjsKK0NGQjg7Q0ZCODsxMTBGIDExNkMgMTFCNztDRkI4OzExMEYgMTE2QyAxMUI3OworQ0ZCOTtDRkI5OzExMEYgMTE2QyAxMUI4O0NGQjk7MTEwRiAxMTZDIDExQjg7CitDRkJBO0NGQkE7MTEwRiAxMTZDIDExQjk7Q0ZCQTsxMTBGIDExNkMgMTFCOTsKK0NGQkI7Q0ZCQjsxMTBGIDExNkMgMTFCQTtDRkJCOzExMEYgMTE2QyAxMUJBOworQ0ZCQztDRkJDOzExMEYgMTE2QyAxMUJCO0NGQkM7MTEwRiAxMTZDIDExQkI7CitDRkJEO0NGQkQ7MTEwRiAxMTZDIDExQkM7Q0ZCRDsxMTBGIDExNkMgMTFCQzsKK0NGQkU7Q0ZCRTsxMTBGIDExNkMgMTFCRDtDRkJFOzExMEYgMTE2QyAxMUJEOworQ0ZCRjtDRkJGOzExMEYgMTE2QyAxMUJFO0NGQkY7MTEwRiAxMTZDIDExQkU7CitDRkMwO0NGQzA7MTEwRiAxMTZDIDExQkY7Q0ZDMDsxMTBGIDExNkMgMTFCRjsKK0NGQzE7Q0ZDMTsxMTBGIDExNkMgMTFDMDtDRkMxOzExMEYgMTE2QyAxMUMwOworQ0ZDMjtDRkMyOzExMEYgMTE2QyAxMUMxO0NGQzI7MTEwRiAxMTZDIDExQzE7CitDRkMzO0NGQzM7MTEwRiAxMTZDIDExQzI7Q0ZDMzsxMTBGIDExNkMgMTFDMjsKK0NGQzQ7Q0ZDNDsxMTBGIDExNkQ7Q0ZDNDsxMTBGIDExNkQ7CitDRkM1O0NGQzU7MTEwRiAxMTZEIDExQTg7Q0ZDNTsxMTBGIDExNkQgMTFBODsKK0NGQzY7Q0ZDNjsxMTBGIDExNkQgMTFBOTtDRkM2OzExMEYgMTE2RCAxMUE5OworQ0ZDNztDRkM3OzExMEYgMTE2RCAxMUFBO0NGQzc7MTEwRiAxMTZEIDExQUE7CitDRkM4O0NGQzg7MTEwRiAxMTZEIDExQUI7Q0ZDODsxMTBGIDExNkQgMTFBQjsKK0NGQzk7Q0ZDOTsxMTBGIDExNkQgMTFBQztDRkM5OzExMEYgMTE2RCAxMUFDOworQ0ZDQTtDRkNBOzExMEYgMTE2RCAxMUFEO0NGQ0E7MTEwRiAxMTZEIDExQUQ7CitDRkNCO0NGQ0I7MTEwRiAxMTZEIDExQUU7Q0ZDQjsxMTBGIDExNkQgMTFBRTsKK0NGQ0M7Q0ZDQzsxMTBGIDExNkQgMTFBRjtDRkNDOzExMEYgMTE2RCAxMUFGOworQ0ZDRDtDRkNEOzExMEYgMTE2RCAxMUIwO0NGQ0Q7MTEwRiAxMTZEIDExQjA7CitDRkNFO0NGQ0U7MTEwRiAxMTZEIDExQjE7Q0ZDRTsxMTBGIDExNkQgMTFCMTsKK0NGQ0Y7Q0ZDRjsxMTBGIDExNkQgMTFCMjtDRkNGOzExMEYgMTE2RCAxMUIyOworQ0ZEMDtDRkQwOzExMEYgMTE2RCAxMUIzO0NGRDA7MTEwRiAxMTZEIDExQjM7CitDRkQxO0NGRDE7MTEwRiAxMTZEIDExQjQ7Q0ZEMTsxMTBGIDExNkQgMTFCNDsKK0NGRDI7Q0ZEMjsxMTBGIDExNkQgMTFCNTtDRkQyOzExMEYgMTE2RCAxMUI1OworQ0ZEMztDRkQzOzExMEYgMTE2RCAxMUI2O0NGRDM7MTEwRiAxMTZEIDExQjY7CitDRkQ0O0NGRDQ7MTEwRiAxMTZEIDExQjc7Q0ZENDsxMTBGIDExNkQgMTFCNzsKK0NGRDU7Q0ZENTsxMTBGIDExNkQgMTFCODtDRkQ1OzExMEYgMTE2RCAxMUI4OworQ0ZENjtDRkQ2OzExMEYgMTE2RCAxMUI5O0NGRDY7MTEwRiAxMTZEIDExQjk7CitDRkQ3O0NGRDc7MTEwRiAxMTZEIDExQkE7Q0ZENzsxMTBGIDExNkQgMTFCQTsKK0NGRDg7Q0ZEODsxMTBGIDExNkQgMTFCQjtDRkQ4OzExMEYgMTE2RCAxMUJCOworQ0ZEOTtDRkQ5OzExMEYgMTE2RCAxMUJDO0NGRDk7MTEwRiAxMTZEIDExQkM7CitDRkRBO0NGREE7MTEwRiAxMTZEIDExQkQ7Q0ZEQTsxMTBGIDExNkQgMTFCRDsKK0NGREI7Q0ZEQjsxMTBGIDExNkQgMTFCRTtDRkRCOzExMEYgMTE2RCAxMUJFOworQ0ZEQztDRkRDOzExMEYgMTE2RCAxMUJGO0NGREM7MTEwRiAxMTZEIDExQkY7CitDRkREO0NGREQ7MTEwRiAxMTZEIDExQzA7Q0ZERDsxMTBGIDExNkQgMTFDMDsKK0NGREU7Q0ZERTsxMTBGIDExNkQgMTFDMTtDRkRFOzExMEYgMTE2RCAxMUMxOworQ0ZERjtDRkRGOzExMEYgMTE2RCAxMUMyO0NGREY7MTEwRiAxMTZEIDExQzI7CitDRkUwO0NGRTA7MTEwRiAxMTZFO0NGRTA7MTEwRiAxMTZFOworQ0ZFMTtDRkUxOzExMEYgMTE2RSAxMUE4O0NGRTE7MTEwRiAxMTZFIDExQTg7CitDRkUyO0NGRTI7MTEwRiAxMTZFIDExQTk7Q0ZFMjsxMTBGIDExNkUgMTFBOTsKK0NGRTM7Q0ZFMzsxMTBGIDExNkUgMTFBQTtDRkUzOzExMEYgMTE2RSAxMUFBOworQ0ZFNDtDRkU0OzExMEYgMTE2RSAxMUFCO0NGRTQ7MTEwRiAxMTZFIDExQUI7CitDRkU1O0NGRTU7MTEwRiAxMTZFIDExQUM7Q0ZFNTsxMTBGIDExNkUgMTFBQzsKK0NGRTY7Q0ZFNjsxMTBGIDExNkUgMTFBRDtDRkU2OzExMEYgMTE2RSAxMUFEOworQ0ZFNztDRkU3OzExMEYgMTE2RSAxMUFFO0NGRTc7MTEwRiAxMTZFIDExQUU7CitDRkU4O0NGRTg7MTEwRiAxMTZFIDExQUY7Q0ZFODsxMTBGIDExNkUgMTFBRjsKK0NGRTk7Q0ZFOTsxMTBGIDExNkUgMTFCMDtDRkU5OzExMEYgMTE2RSAxMUIwOworQ0ZFQTtDRkVBOzExMEYgMTE2RSAxMUIxO0NGRUE7MTEwRiAxMTZFIDExQjE7CitDRkVCO0NGRUI7MTEwRiAxMTZFIDExQjI7Q0ZFQjsxMTBGIDExNkUgMTFCMjsKK0NGRUM7Q0ZFQzsxMTBGIDExNkUgMTFCMztDRkVDOzExMEYgMTE2RSAxMUIzOworQ0ZFRDtDRkVEOzExMEYgMTE2RSAxMUI0O0NGRUQ7MTEwRiAxMTZFIDExQjQ7CitDRkVFO0NGRUU7MTEwRiAxMTZFIDExQjU7Q0ZFRTsxMTBGIDExNkUgMTFCNTsKK0NGRUY7Q0ZFRjsxMTBGIDExNkUgMTFCNjtDRkVGOzExMEYgMTE2RSAxMUI2OworQ0ZGMDtDRkYwOzExMEYgMTE2RSAxMUI3O0NGRjA7MTEwRiAxMTZFIDExQjc7CitDRkYxO0NGRjE7MTEwRiAxMTZFIDExQjg7Q0ZGMTsxMTBGIDExNkUgMTFCODsKK0NGRjI7Q0ZGMjsxMTBGIDExNkUgMTFCOTtDRkYyOzExMEYgMTE2RSAxMUI5OworQ0ZGMztDRkYzOzExMEYgMTE2RSAxMUJBO0NGRjM7MTEwRiAxMTZFIDExQkE7CitDRkY0O0NGRjQ7MTEwRiAxMTZFIDExQkI7Q0ZGNDsxMTBGIDExNkUgMTFCQjsKK0NGRjU7Q0ZGNTsxMTBGIDExNkUgMTFCQztDRkY1OzExMEYgMTE2RSAxMUJDOworQ0ZGNjtDRkY2OzExMEYgMTE2RSAxMUJEO0NGRjY7MTEwRiAxMTZFIDExQkQ7CitDRkY3O0NGRjc7MTEwRiAxMTZFIDExQkU7Q0ZGNzsxMTBGIDExNkUgMTFCRTsKK0NGRjg7Q0ZGODsxMTBGIDExNkUgMTFCRjtDRkY4OzExMEYgMTE2RSAxMUJGOworQ0ZGOTtDRkY5OzExMEYgMTE2RSAxMUMwO0NGRjk7MTEwRiAxMTZFIDExQzA7CitDRkZBO0NGRkE7MTEwRiAxMTZFIDExQzE7Q0ZGQTsxMTBGIDExNkUgMTFDMTsKK0NGRkI7Q0ZGQjsxMTBGIDExNkUgMTFDMjtDRkZCOzExMEYgMTE2RSAxMUMyOworQ0ZGQztDRkZDOzExMEYgMTE2RjtDRkZDOzExMEYgMTE2RjsKK0NGRkQ7Q0ZGRDsxMTBGIDExNkYgMTFBODtDRkZEOzExMEYgMTE2RiAxMUE4OworQ0ZGRTtDRkZFOzExMEYgMTE2RiAxMUE5O0NGRkU7MTEwRiAxMTZGIDExQTk7CitDRkZGO0NGRkY7MTEwRiAxMTZGIDExQUE7Q0ZGRjsxMTBGIDExNkYgMTFBQTsKK0QwMDA7RDAwMDsxMTBGIDExNkYgMTFBQjtEMDAwOzExMEYgMTE2RiAxMUFCOworRDAwMTtEMDAxOzExMEYgMTE2RiAxMUFDO0QwMDE7MTEwRiAxMTZGIDExQUM7CitEMDAyO0QwMDI7MTEwRiAxMTZGIDExQUQ7RDAwMjsxMTBGIDExNkYgMTFBRDsKK0QwMDM7RDAwMzsxMTBGIDExNkYgMTFBRTtEMDAzOzExMEYgMTE2RiAxMUFFOworRDAwNDtEMDA0OzExMEYgMTE2RiAxMUFGO0QwMDQ7MTEwRiAxMTZGIDExQUY7CitEMDA1O0QwMDU7MTEwRiAxMTZGIDExQjA7RDAwNTsxMTBGIDExNkYgMTFCMDsKK0QwMDY7RDAwNjsxMTBGIDExNkYgMTFCMTtEMDA2OzExMEYgMTE2RiAxMUIxOworRDAwNztEMDA3OzExMEYgMTE2RiAxMUIyO0QwMDc7MTEwRiAxMTZGIDExQjI7CitEMDA4O0QwMDg7MTEwRiAxMTZGIDExQjM7RDAwODsxMTBGIDExNkYgMTFCMzsKK0QwMDk7RDAwOTsxMTBGIDExNkYgMTFCNDtEMDA5OzExMEYgMTE2RiAxMUI0OworRDAwQTtEMDBBOzExMEYgMTE2RiAxMUI1O0QwMEE7MTEwRiAxMTZGIDExQjU7CitEMDBCO0QwMEI7MTEwRiAxMTZGIDExQjY7RDAwQjsxMTBGIDExNkYgMTFCNjsKK0QwMEM7RDAwQzsxMTBGIDExNkYgMTFCNztEMDBDOzExMEYgMTE2RiAxMUI3OworRDAwRDtEMDBEOzExMEYgMTE2RiAxMUI4O0QwMEQ7MTEwRiAxMTZGIDExQjg7CitEMDBFO0QwMEU7MTEwRiAxMTZGIDExQjk7RDAwRTsxMTBGIDExNkYgMTFCOTsKK0QwMEY7RDAwRjsxMTBGIDExNkYgMTFCQTtEMDBGOzExMEYgMTE2RiAxMUJBOworRDAxMDtEMDEwOzExMEYgMTE2RiAxMUJCO0QwMTA7MTEwRiAxMTZGIDExQkI7CitEMDExO0QwMTE7MTEwRiAxMTZGIDExQkM7RDAxMTsxMTBGIDExNkYgMTFCQzsKK0QwMTI7RDAxMjsxMTBGIDExNkYgMTFCRDtEMDEyOzExMEYgMTE2RiAxMUJEOworRDAxMztEMDEzOzExMEYgMTE2RiAxMUJFO0QwMTM7MTEwRiAxMTZGIDExQkU7CitEMDE0O0QwMTQ7MTEwRiAxMTZGIDExQkY7RDAxNDsxMTBGIDExNkYgMTFCRjsKK0QwMTU7RDAxNTsxMTBGIDExNkYgMTFDMDtEMDE1OzExMEYgMTE2RiAxMUMwOworRDAxNjtEMDE2OzExMEYgMTE2RiAxMUMxO0QwMTY7MTEwRiAxMTZGIDExQzE7CitEMDE3O0QwMTc7MTEwRiAxMTZGIDExQzI7RDAxNzsxMTBGIDExNkYgMTFDMjsKK0QwMTg7RDAxODsxMTBGIDExNzA7RDAxODsxMTBGIDExNzA7CitEMDE5O0QwMTk7MTEwRiAxMTcwIDExQTg7RDAxOTsxMTBGIDExNzAgMTFBODsKK0QwMUE7RDAxQTsxMTBGIDExNzAgMTFBOTtEMDFBOzExMEYgMTE3MCAxMUE5OworRDAxQjtEMDFCOzExMEYgMTE3MCAxMUFBO0QwMUI7MTEwRiAxMTcwIDExQUE7CitEMDFDO0QwMUM7MTEwRiAxMTcwIDExQUI7RDAxQzsxMTBGIDExNzAgMTFBQjsKK0QwMUQ7RDAxRDsxMTBGIDExNzAgMTFBQztEMDFEOzExMEYgMTE3MCAxMUFDOworRDAxRTtEMDFFOzExMEYgMTE3MCAxMUFEO0QwMUU7MTEwRiAxMTcwIDExQUQ7CitEMDFGO0QwMUY7MTEwRiAxMTcwIDExQUU7RDAxRjsxMTBGIDExNzAgMTFBRTsKK0QwMjA7RDAyMDsxMTBGIDExNzAgMTFBRjtEMDIwOzExMEYgMTE3MCAxMUFGOworRDAyMTtEMDIxOzExMEYgMTE3MCAxMUIwO0QwMjE7MTEwRiAxMTcwIDExQjA7CitEMDIyO0QwMjI7MTEwRiAxMTcwIDExQjE7RDAyMjsxMTBGIDExNzAgMTFCMTsKK0QwMjM7RDAyMzsxMTBGIDExNzAgMTFCMjtEMDIzOzExMEYgMTE3MCAxMUIyOworRDAyNDtEMDI0OzExMEYgMTE3MCAxMUIzO0QwMjQ7MTEwRiAxMTcwIDExQjM7CitEMDI1O0QwMjU7MTEwRiAxMTcwIDExQjQ7RDAyNTsxMTBGIDExNzAgMTFCNDsKK0QwMjY7RDAyNjsxMTBGIDExNzAgMTFCNTtEMDI2OzExMEYgMTE3MCAxMUI1OworRDAyNztEMDI3OzExMEYgMTE3MCAxMUI2O0QwMjc7MTEwRiAxMTcwIDExQjY7CitEMDI4O0QwMjg7MTEwRiAxMTcwIDExQjc7RDAyODsxMTBGIDExNzAgMTFCNzsKK0QwMjk7RDAyOTsxMTBGIDExNzAgMTFCODtEMDI5OzExMEYgMTE3MCAxMUI4OworRDAyQTtEMDJBOzExMEYgMTE3MCAxMUI5O0QwMkE7MTEwRiAxMTcwIDExQjk7CitEMDJCO0QwMkI7MTEwRiAxMTcwIDExQkE7RDAyQjsxMTBGIDExNzAgMTFCQTsKK0QwMkM7RDAyQzsxMTBGIDExNzAgMTFCQjtEMDJDOzExMEYgMTE3MCAxMUJCOworRDAyRDtEMDJEOzExMEYgMTE3MCAxMUJDO0QwMkQ7MTEwRiAxMTcwIDExQkM7CitEMDJFO0QwMkU7MTEwRiAxMTcwIDExQkQ7RDAyRTsxMTBGIDExNzAgMTFCRDsKK0QwMkY7RDAyRjsxMTBGIDExNzAgMTFCRTtEMDJGOzExMEYgMTE3MCAxMUJFOworRDAzMDtEMDMwOzExMEYgMTE3MCAxMUJGO0QwMzA7MTEwRiAxMTcwIDExQkY7CitEMDMxO0QwMzE7MTEwRiAxMTcwIDExQzA7RDAzMTsxMTBGIDExNzAgMTFDMDsKK0QwMzI7RDAzMjsxMTBGIDExNzAgMTFDMTtEMDMyOzExMEYgMTE3MCAxMUMxOworRDAzMztEMDMzOzExMEYgMTE3MCAxMUMyO0QwMzM7MTEwRiAxMTcwIDExQzI7CitEMDM0O0QwMzQ7MTEwRiAxMTcxO0QwMzQ7MTEwRiAxMTcxOworRDAzNTtEMDM1OzExMEYgMTE3MSAxMUE4O0QwMzU7MTEwRiAxMTcxIDExQTg7CitEMDM2O0QwMzY7MTEwRiAxMTcxIDExQTk7RDAzNjsxMTBGIDExNzEgMTFBOTsKK0QwMzc7RDAzNzsxMTBGIDExNzEgMTFBQTtEMDM3OzExMEYgMTE3MSAxMUFBOworRDAzODtEMDM4OzExMEYgMTE3MSAxMUFCO0QwMzg7MTEwRiAxMTcxIDExQUI7CitEMDM5O0QwMzk7MTEwRiAxMTcxIDExQUM7RDAzOTsxMTBGIDExNzEgMTFBQzsKK0QwM0E7RDAzQTsxMTBGIDExNzEgMTFBRDtEMDNBOzExMEYgMTE3MSAxMUFEOworRDAzQjtEMDNCOzExMEYgMTE3MSAxMUFFO0QwM0I7MTEwRiAxMTcxIDExQUU7CitEMDNDO0QwM0M7MTEwRiAxMTcxIDExQUY7RDAzQzsxMTBGIDExNzEgMTFBRjsKK0QwM0Q7RDAzRDsxMTBGIDExNzEgMTFCMDtEMDNEOzExMEYgMTE3MSAxMUIwOworRDAzRTtEMDNFOzExMEYgMTE3MSAxMUIxO0QwM0U7MTEwRiAxMTcxIDExQjE7CitEMDNGO0QwM0Y7MTEwRiAxMTcxIDExQjI7RDAzRjsxMTBGIDExNzEgMTFCMjsKK0QwNDA7RDA0MDsxMTBGIDExNzEgMTFCMztEMDQwOzExMEYgMTE3MSAxMUIzOworRDA0MTtEMDQxOzExMEYgMTE3MSAxMUI0O0QwNDE7MTEwRiAxMTcxIDExQjQ7CitEMDQyO0QwNDI7MTEwRiAxMTcxIDExQjU7RDA0MjsxMTBGIDExNzEgMTFCNTsKK0QwNDM7RDA0MzsxMTBGIDExNzEgMTFCNjtEMDQzOzExMEYgMTE3MSAxMUI2OworRDA0NDtEMDQ0OzExMEYgMTE3MSAxMUI3O0QwNDQ7MTEwRiAxMTcxIDExQjc7CitEMDQ1O0QwNDU7MTEwRiAxMTcxIDExQjg7RDA0NTsxMTBGIDExNzEgMTFCODsKK0QwNDY7RDA0NjsxMTBGIDExNzEgMTFCOTtEMDQ2OzExMEYgMTE3MSAxMUI5OworRDA0NztEMDQ3OzExMEYgMTE3MSAxMUJBO0QwNDc7MTEwRiAxMTcxIDExQkE7CitEMDQ4O0QwNDg7MTEwRiAxMTcxIDExQkI7RDA0ODsxMTBGIDExNzEgMTFCQjsKK0QwNDk7RDA0OTsxMTBGIDExNzEgMTFCQztEMDQ5OzExMEYgMTE3MSAxMUJDOworRDA0QTtEMDRBOzExMEYgMTE3MSAxMUJEO0QwNEE7MTEwRiAxMTcxIDExQkQ7CitEMDRCO0QwNEI7MTEwRiAxMTcxIDExQkU7RDA0QjsxMTBGIDExNzEgMTFCRTsKK0QwNEM7RDA0QzsxMTBGIDExNzEgMTFCRjtEMDRDOzExMEYgMTE3MSAxMUJGOworRDA0RDtEMDREOzExMEYgMTE3MSAxMUMwO0QwNEQ7MTEwRiAxMTcxIDExQzA7CitEMDRFO0QwNEU7MTEwRiAxMTcxIDExQzE7RDA0RTsxMTBGIDExNzEgMTFDMTsKK0QwNEY7RDA0RjsxMTBGIDExNzEgMTFDMjtEMDRGOzExMEYgMTE3MSAxMUMyOworRDA1MDtEMDUwOzExMEYgMTE3MjtEMDUwOzExMEYgMTE3MjsKK0QwNTE7RDA1MTsxMTBGIDExNzIgMTFBODtEMDUxOzExMEYgMTE3MiAxMUE4OworRDA1MjtEMDUyOzExMEYgMTE3MiAxMUE5O0QwNTI7MTEwRiAxMTcyIDExQTk7CitEMDUzO0QwNTM7MTEwRiAxMTcyIDExQUE7RDA1MzsxMTBGIDExNzIgMTFBQTsKK0QwNTQ7RDA1NDsxMTBGIDExNzIgMTFBQjtEMDU0OzExMEYgMTE3MiAxMUFCOworRDA1NTtEMDU1OzExMEYgMTE3MiAxMUFDO0QwNTU7MTEwRiAxMTcyIDExQUM7CitEMDU2O0QwNTY7MTEwRiAxMTcyIDExQUQ7RDA1NjsxMTBGIDExNzIgMTFBRDsKK0QwNTc7RDA1NzsxMTBGIDExNzIgMTFBRTtEMDU3OzExMEYgMTE3MiAxMUFFOworRDA1ODtEMDU4OzExMEYgMTE3MiAxMUFGO0QwNTg7MTEwRiAxMTcyIDExQUY7CitEMDU5O0QwNTk7MTEwRiAxMTcyIDExQjA7RDA1OTsxMTBGIDExNzIgMTFCMDsKK0QwNUE7RDA1QTsxMTBGIDExNzIgMTFCMTtEMDVBOzExMEYgMTE3MiAxMUIxOworRDA1QjtEMDVCOzExMEYgMTE3MiAxMUIyO0QwNUI7MTEwRiAxMTcyIDExQjI7CitEMDVDO0QwNUM7MTEwRiAxMTcyIDExQjM7RDA1QzsxMTBGIDExNzIgMTFCMzsKK0QwNUQ7RDA1RDsxMTBGIDExNzIgMTFCNDtEMDVEOzExMEYgMTE3MiAxMUI0OworRDA1RTtEMDVFOzExMEYgMTE3MiAxMUI1O0QwNUU7MTEwRiAxMTcyIDExQjU7CitEMDVGO0QwNUY7MTEwRiAxMTcyIDExQjY7RDA1RjsxMTBGIDExNzIgMTFCNjsKK0QwNjA7RDA2MDsxMTBGIDExNzIgMTFCNztEMDYwOzExMEYgMTE3MiAxMUI3OworRDA2MTtEMDYxOzExMEYgMTE3MiAxMUI4O0QwNjE7MTEwRiAxMTcyIDExQjg7CitEMDYyO0QwNjI7MTEwRiAxMTcyIDExQjk7RDA2MjsxMTBGIDExNzIgMTFCOTsKK0QwNjM7RDA2MzsxMTBGIDExNzIgMTFCQTtEMDYzOzExMEYgMTE3MiAxMUJBOworRDA2NDtEMDY0OzExMEYgMTE3MiAxMUJCO0QwNjQ7MTEwRiAxMTcyIDExQkI7CitEMDY1O0QwNjU7MTEwRiAxMTcyIDExQkM7RDA2NTsxMTBGIDExNzIgMTFCQzsKK0QwNjY7RDA2NjsxMTBGIDExNzIgMTFCRDtEMDY2OzExMEYgMTE3MiAxMUJEOworRDA2NztEMDY3OzExMEYgMTE3MiAxMUJFO0QwNjc7MTEwRiAxMTcyIDExQkU7CitEMDY4O0QwNjg7MTEwRiAxMTcyIDExQkY7RDA2ODsxMTBGIDExNzIgMTFCRjsKK0QwNjk7RDA2OTsxMTBGIDExNzIgMTFDMDtEMDY5OzExMEYgMTE3MiAxMUMwOworRDA2QTtEMDZBOzExMEYgMTE3MiAxMUMxO0QwNkE7MTEwRiAxMTcyIDExQzE7CitEMDZCO0QwNkI7MTEwRiAxMTcyIDExQzI7RDA2QjsxMTBGIDExNzIgMTFDMjsKK0QwNkM7RDA2QzsxMTBGIDExNzM7RDA2QzsxMTBGIDExNzM7CitEMDZEO0QwNkQ7MTEwRiAxMTczIDExQTg7RDA2RDsxMTBGIDExNzMgMTFBODsKK0QwNkU7RDA2RTsxMTBGIDExNzMgMTFBOTtEMDZFOzExMEYgMTE3MyAxMUE5OworRDA2RjtEMDZGOzExMEYgMTE3MyAxMUFBO0QwNkY7MTEwRiAxMTczIDExQUE7CitEMDcwO0QwNzA7MTEwRiAxMTczIDExQUI7RDA3MDsxMTBGIDExNzMgMTFBQjsKK0QwNzE7RDA3MTsxMTBGIDExNzMgMTFBQztEMDcxOzExMEYgMTE3MyAxMUFDOworRDA3MjtEMDcyOzExMEYgMTE3MyAxMUFEO0QwNzI7MTEwRiAxMTczIDExQUQ7CitEMDczO0QwNzM7MTEwRiAxMTczIDExQUU7RDA3MzsxMTBGIDExNzMgMTFBRTsKK0QwNzQ7RDA3NDsxMTBGIDExNzMgMTFBRjtEMDc0OzExMEYgMTE3MyAxMUFGOworRDA3NTtEMDc1OzExMEYgMTE3MyAxMUIwO0QwNzU7MTEwRiAxMTczIDExQjA7CitEMDc2O0QwNzY7MTEwRiAxMTczIDExQjE7RDA3NjsxMTBGIDExNzMgMTFCMTsKK0QwNzc7RDA3NzsxMTBGIDExNzMgMTFCMjtEMDc3OzExMEYgMTE3MyAxMUIyOworRDA3ODtEMDc4OzExMEYgMTE3MyAxMUIzO0QwNzg7MTEwRiAxMTczIDExQjM7CitEMDc5O0QwNzk7MTEwRiAxMTczIDExQjQ7RDA3OTsxMTBGIDExNzMgMTFCNDsKK0QwN0E7RDA3QTsxMTBGIDExNzMgMTFCNTtEMDdBOzExMEYgMTE3MyAxMUI1OworRDA3QjtEMDdCOzExMEYgMTE3MyAxMUI2O0QwN0I7MTEwRiAxMTczIDExQjY7CitEMDdDO0QwN0M7MTEwRiAxMTczIDExQjc7RDA3QzsxMTBGIDExNzMgMTFCNzsKK0QwN0Q7RDA3RDsxMTBGIDExNzMgMTFCODtEMDdEOzExMEYgMTE3MyAxMUI4OworRDA3RTtEMDdFOzExMEYgMTE3MyAxMUI5O0QwN0U7MTEwRiAxMTczIDExQjk7CitEMDdGO0QwN0Y7MTEwRiAxMTczIDExQkE7RDA3RjsxMTBGIDExNzMgMTFCQTsKK0QwODA7RDA4MDsxMTBGIDExNzMgMTFCQjtEMDgwOzExMEYgMTE3MyAxMUJCOworRDA4MTtEMDgxOzExMEYgMTE3MyAxMUJDO0QwODE7MTEwRiAxMTczIDExQkM7CitEMDgyO0QwODI7MTEwRiAxMTczIDExQkQ7RDA4MjsxMTBGIDExNzMgMTFCRDsKK0QwODM7RDA4MzsxMTBGIDExNzMgMTFCRTtEMDgzOzExMEYgMTE3MyAxMUJFOworRDA4NDtEMDg0OzExMEYgMTE3MyAxMUJGO0QwODQ7MTEwRiAxMTczIDExQkY7CitEMDg1O0QwODU7MTEwRiAxMTczIDExQzA7RDA4NTsxMTBGIDExNzMgMTFDMDsKK0QwODY7RDA4NjsxMTBGIDExNzMgMTFDMTtEMDg2OzExMEYgMTE3MyAxMUMxOworRDA4NztEMDg3OzExMEYgMTE3MyAxMUMyO0QwODc7MTEwRiAxMTczIDExQzI7CitEMDg4O0QwODg7MTEwRiAxMTc0O0QwODg7MTEwRiAxMTc0OworRDA4OTtEMDg5OzExMEYgMTE3NCAxMUE4O0QwODk7MTEwRiAxMTc0IDExQTg7CitEMDhBO0QwOEE7MTEwRiAxMTc0IDExQTk7RDA4QTsxMTBGIDExNzQgMTFBOTsKK0QwOEI7RDA4QjsxMTBGIDExNzQgMTFBQTtEMDhCOzExMEYgMTE3NCAxMUFBOworRDA4QztEMDhDOzExMEYgMTE3NCAxMUFCO0QwOEM7MTEwRiAxMTc0IDExQUI7CitEMDhEO0QwOEQ7MTEwRiAxMTc0IDExQUM7RDA4RDsxMTBGIDExNzQgMTFBQzsKK0QwOEU7RDA4RTsxMTBGIDExNzQgMTFBRDtEMDhFOzExMEYgMTE3NCAxMUFEOworRDA4RjtEMDhGOzExMEYgMTE3NCAxMUFFO0QwOEY7MTEwRiAxMTc0IDExQUU7CitEMDkwO0QwOTA7MTEwRiAxMTc0IDExQUY7RDA5MDsxMTBGIDExNzQgMTFBRjsKK0QwOTE7RDA5MTsxMTBGIDExNzQgMTFCMDtEMDkxOzExMEYgMTE3NCAxMUIwOworRDA5MjtEMDkyOzExMEYgMTE3NCAxMUIxO0QwOTI7MTEwRiAxMTc0IDExQjE7CitEMDkzO0QwOTM7MTEwRiAxMTc0IDExQjI7RDA5MzsxMTBGIDExNzQgMTFCMjsKK0QwOTQ7RDA5NDsxMTBGIDExNzQgMTFCMztEMDk0OzExMEYgMTE3NCAxMUIzOworRDA5NTtEMDk1OzExMEYgMTE3NCAxMUI0O0QwOTU7MTEwRiAxMTc0IDExQjQ7CitEMDk2O0QwOTY7MTEwRiAxMTc0IDExQjU7RDA5NjsxMTBGIDExNzQgMTFCNTsKK0QwOTc7RDA5NzsxMTBGIDExNzQgMTFCNjtEMDk3OzExMEYgMTE3NCAxMUI2OworRDA5ODtEMDk4OzExMEYgMTE3NCAxMUI3O0QwOTg7MTEwRiAxMTc0IDExQjc7CitEMDk5O0QwOTk7MTEwRiAxMTc0IDExQjg7RDA5OTsxMTBGIDExNzQgMTFCODsKK0QwOUE7RDA5QTsxMTBGIDExNzQgMTFCOTtEMDlBOzExMEYgMTE3NCAxMUI5OworRDA5QjtEMDlCOzExMEYgMTE3NCAxMUJBO0QwOUI7MTEwRiAxMTc0IDExQkE7CitEMDlDO0QwOUM7MTEwRiAxMTc0IDExQkI7RDA5QzsxMTBGIDExNzQgMTFCQjsKK0QwOUQ7RDA5RDsxMTBGIDExNzQgMTFCQztEMDlEOzExMEYgMTE3NCAxMUJDOworRDA5RTtEMDlFOzExMEYgMTE3NCAxMUJEO0QwOUU7MTEwRiAxMTc0IDExQkQ7CitEMDlGO0QwOUY7MTEwRiAxMTc0IDExQkU7RDA5RjsxMTBGIDExNzQgMTFCRTsKK0QwQTA7RDBBMDsxMTBGIDExNzQgMTFCRjtEMEEwOzExMEYgMTE3NCAxMUJGOworRDBBMTtEMEExOzExMEYgMTE3NCAxMUMwO0QwQTE7MTEwRiAxMTc0IDExQzA7CitEMEEyO0QwQTI7MTEwRiAxMTc0IDExQzE7RDBBMjsxMTBGIDExNzQgMTFDMTsKK0QwQTM7RDBBMzsxMTBGIDExNzQgMTFDMjtEMEEzOzExMEYgMTE3NCAxMUMyOworRDBBNDtEMEE0OzExMEYgMTE3NTtEMEE0OzExMEYgMTE3NTsKK0QwQTU7RDBBNTsxMTBGIDExNzUgMTFBODtEMEE1OzExMEYgMTE3NSAxMUE4OworRDBBNjtEMEE2OzExMEYgMTE3NSAxMUE5O0QwQTY7MTEwRiAxMTc1IDExQTk7CitEMEE3O0QwQTc7MTEwRiAxMTc1IDExQUE7RDBBNzsxMTBGIDExNzUgMTFBQTsKK0QwQTg7RDBBODsxMTBGIDExNzUgMTFBQjtEMEE4OzExMEYgMTE3NSAxMUFCOworRDBBOTtEMEE5OzExMEYgMTE3NSAxMUFDO0QwQTk7MTEwRiAxMTc1IDExQUM7CitEMEFBO0QwQUE7MTEwRiAxMTc1IDExQUQ7RDBBQTsxMTBGIDExNzUgMTFBRDsKK0QwQUI7RDBBQjsxMTBGIDExNzUgMTFBRTtEMEFCOzExMEYgMTE3NSAxMUFFOworRDBBQztEMEFDOzExMEYgMTE3NSAxMUFGO0QwQUM7MTEwRiAxMTc1IDExQUY7CitEMEFEO0QwQUQ7MTEwRiAxMTc1IDExQjA7RDBBRDsxMTBGIDExNzUgMTFCMDsKK0QwQUU7RDBBRTsxMTBGIDExNzUgMTFCMTtEMEFFOzExMEYgMTE3NSAxMUIxOworRDBBRjtEMEFGOzExMEYgMTE3NSAxMUIyO0QwQUY7MTEwRiAxMTc1IDExQjI7CitEMEIwO0QwQjA7MTEwRiAxMTc1IDExQjM7RDBCMDsxMTBGIDExNzUgMTFCMzsKK0QwQjE7RDBCMTsxMTBGIDExNzUgMTFCNDtEMEIxOzExMEYgMTE3NSAxMUI0OworRDBCMjtEMEIyOzExMEYgMTE3NSAxMUI1O0QwQjI7MTEwRiAxMTc1IDExQjU7CitEMEIzO0QwQjM7MTEwRiAxMTc1IDExQjY7RDBCMzsxMTBGIDExNzUgMTFCNjsKK0QwQjQ7RDBCNDsxMTBGIDExNzUgMTFCNztEMEI0OzExMEYgMTE3NSAxMUI3OworRDBCNTtEMEI1OzExMEYgMTE3NSAxMUI4O0QwQjU7MTEwRiAxMTc1IDExQjg7CitEMEI2O0QwQjY7MTEwRiAxMTc1IDExQjk7RDBCNjsxMTBGIDExNzUgMTFCOTsKK0QwQjc7RDBCNzsxMTBGIDExNzUgMTFCQTtEMEI3OzExMEYgMTE3NSAxMUJBOworRDBCODtEMEI4OzExMEYgMTE3NSAxMUJCO0QwQjg7MTEwRiAxMTc1IDExQkI7CitEMEI5O0QwQjk7MTEwRiAxMTc1IDExQkM7RDBCOTsxMTBGIDExNzUgMTFCQzsKK0QwQkE7RDBCQTsxMTBGIDExNzUgMTFCRDtEMEJBOzExMEYgMTE3NSAxMUJEOworRDBCQjtEMEJCOzExMEYgMTE3NSAxMUJFO0QwQkI7MTEwRiAxMTc1IDExQkU7CitEMEJDO0QwQkM7MTEwRiAxMTc1IDExQkY7RDBCQzsxMTBGIDExNzUgMTFCRjsKK0QwQkQ7RDBCRDsxMTBGIDExNzUgMTFDMDtEMEJEOzExMEYgMTE3NSAxMUMwOworRDBCRTtEMEJFOzExMEYgMTE3NSAxMUMxO0QwQkU7MTEwRiAxMTc1IDExQzE7CitEMEJGO0QwQkY7MTEwRiAxMTc1IDExQzI7RDBCRjsxMTBGIDExNzUgMTFDMjsKK0QwQzA7RDBDMDsxMTEwIDExNjE7RDBDMDsxMTEwIDExNjE7CitEMEMxO0QwQzE7MTExMCAxMTYxIDExQTg7RDBDMTsxMTEwIDExNjEgMTFBODsKK0QwQzI7RDBDMjsxMTEwIDExNjEgMTFBOTtEMEMyOzExMTAgMTE2MSAxMUE5OworRDBDMztEMEMzOzExMTAgMTE2MSAxMUFBO0QwQzM7MTExMCAxMTYxIDExQUE7CitEMEM0O0QwQzQ7MTExMCAxMTYxIDExQUI7RDBDNDsxMTEwIDExNjEgMTFBQjsKK0QwQzU7RDBDNTsxMTEwIDExNjEgMTFBQztEMEM1OzExMTAgMTE2MSAxMUFDOworRDBDNjtEMEM2OzExMTAgMTE2MSAxMUFEO0QwQzY7MTExMCAxMTYxIDExQUQ7CitEMEM3O0QwQzc7MTExMCAxMTYxIDExQUU7RDBDNzsxMTEwIDExNjEgMTFBRTsKK0QwQzg7RDBDODsxMTEwIDExNjEgMTFBRjtEMEM4OzExMTAgMTE2MSAxMUFGOworRDBDOTtEMEM5OzExMTAgMTE2MSAxMUIwO0QwQzk7MTExMCAxMTYxIDExQjA7CitEMENBO0QwQ0E7MTExMCAxMTYxIDExQjE7RDBDQTsxMTEwIDExNjEgMTFCMTsKK0QwQ0I7RDBDQjsxMTEwIDExNjEgMTFCMjtEMENCOzExMTAgMTE2MSAxMUIyOworRDBDQztEMENDOzExMTAgMTE2MSAxMUIzO0QwQ0M7MTExMCAxMTYxIDExQjM7CitEMENEO0QwQ0Q7MTExMCAxMTYxIDExQjQ7RDBDRDsxMTEwIDExNjEgMTFCNDsKK0QwQ0U7RDBDRTsxMTEwIDExNjEgMTFCNTtEMENFOzExMTAgMTE2MSAxMUI1OworRDBDRjtEMENGOzExMTAgMTE2MSAxMUI2O0QwQ0Y7MTExMCAxMTYxIDExQjY7CitEMEQwO0QwRDA7MTExMCAxMTYxIDExQjc7RDBEMDsxMTEwIDExNjEgMTFCNzsKK0QwRDE7RDBEMTsxMTEwIDExNjEgMTFCODtEMEQxOzExMTAgMTE2MSAxMUI4OworRDBEMjtEMEQyOzExMTAgMTE2MSAxMUI5O0QwRDI7MTExMCAxMTYxIDExQjk7CitEMEQzO0QwRDM7MTExMCAxMTYxIDExQkE7RDBEMzsxMTEwIDExNjEgMTFCQTsKK0QwRDQ7RDBENDsxMTEwIDExNjEgMTFCQjtEMEQ0OzExMTAgMTE2MSAxMUJCOworRDBENTtEMEQ1OzExMTAgMTE2MSAxMUJDO0QwRDU7MTExMCAxMTYxIDExQkM7CitEMEQ2O0QwRDY7MTExMCAxMTYxIDExQkQ7RDBENjsxMTEwIDExNjEgMTFCRDsKK0QwRDc7RDBENzsxMTEwIDExNjEgMTFCRTtEMEQ3OzExMTAgMTE2MSAxMUJFOworRDBEODtEMEQ4OzExMTAgMTE2MSAxMUJGO0QwRDg7MTExMCAxMTYxIDExQkY7CitEMEQ5O0QwRDk7MTExMCAxMTYxIDExQzA7RDBEOTsxMTEwIDExNjEgMTFDMDsKK0QwREE7RDBEQTsxMTEwIDExNjEgMTFDMTtEMERBOzExMTAgMTE2MSAxMUMxOworRDBEQjtEMERCOzExMTAgMTE2MSAxMUMyO0QwREI7MTExMCAxMTYxIDExQzI7CitEMERDO0QwREM7MTExMCAxMTYyO0QwREM7MTExMCAxMTYyOworRDBERDtEMEREOzExMTAgMTE2MiAxMUE4O0QwREQ7MTExMCAxMTYyIDExQTg7CitEMERFO0QwREU7MTExMCAxMTYyIDExQTk7RDBERTsxMTEwIDExNjIgMTFBOTsKK0QwREY7RDBERjsxMTEwIDExNjIgMTFBQTtEMERGOzExMTAgMTE2MiAxMUFBOworRDBFMDtEMEUwOzExMTAgMTE2MiAxMUFCO0QwRTA7MTExMCAxMTYyIDExQUI7CitEMEUxO0QwRTE7MTExMCAxMTYyIDExQUM7RDBFMTsxMTEwIDExNjIgMTFBQzsKK0QwRTI7RDBFMjsxMTEwIDExNjIgMTFBRDtEMEUyOzExMTAgMTE2MiAxMUFEOworRDBFMztEMEUzOzExMTAgMTE2MiAxMUFFO0QwRTM7MTExMCAxMTYyIDExQUU7CitEMEU0O0QwRTQ7MTExMCAxMTYyIDExQUY7RDBFNDsxMTEwIDExNjIgMTFBRjsKK0QwRTU7RDBFNTsxMTEwIDExNjIgMTFCMDtEMEU1OzExMTAgMTE2MiAxMUIwOworRDBFNjtEMEU2OzExMTAgMTE2MiAxMUIxO0QwRTY7MTExMCAxMTYyIDExQjE7CitEMEU3O0QwRTc7MTExMCAxMTYyIDExQjI7RDBFNzsxMTEwIDExNjIgMTFCMjsKK0QwRTg7RDBFODsxMTEwIDExNjIgMTFCMztEMEU4OzExMTAgMTE2MiAxMUIzOworRDBFOTtEMEU5OzExMTAgMTE2MiAxMUI0O0QwRTk7MTExMCAxMTYyIDExQjQ7CitEMEVBO0QwRUE7MTExMCAxMTYyIDExQjU7RDBFQTsxMTEwIDExNjIgMTFCNTsKK0QwRUI7RDBFQjsxMTEwIDExNjIgMTFCNjtEMEVCOzExMTAgMTE2MiAxMUI2OworRDBFQztEMEVDOzExMTAgMTE2MiAxMUI3O0QwRUM7MTExMCAxMTYyIDExQjc7CitEMEVEO0QwRUQ7MTExMCAxMTYyIDExQjg7RDBFRDsxMTEwIDExNjIgMTFCODsKK0QwRUU7RDBFRTsxMTEwIDExNjIgMTFCOTtEMEVFOzExMTAgMTE2MiAxMUI5OworRDBFRjtEMEVGOzExMTAgMTE2MiAxMUJBO0QwRUY7MTExMCAxMTYyIDExQkE7CitEMEYwO0QwRjA7MTExMCAxMTYyIDExQkI7RDBGMDsxMTEwIDExNjIgMTFCQjsKK0QwRjE7RDBGMTsxMTEwIDExNjIgMTFCQztEMEYxOzExMTAgMTE2MiAxMUJDOworRDBGMjtEMEYyOzExMTAgMTE2MiAxMUJEO0QwRjI7MTExMCAxMTYyIDExQkQ7CitEMEYzO0QwRjM7MTExMCAxMTYyIDExQkU7RDBGMzsxMTEwIDExNjIgMTFCRTsKK0QwRjQ7RDBGNDsxMTEwIDExNjIgMTFCRjtEMEY0OzExMTAgMTE2MiAxMUJGOworRDBGNTtEMEY1OzExMTAgMTE2MiAxMUMwO0QwRjU7MTExMCAxMTYyIDExQzA7CitEMEY2O0QwRjY7MTExMCAxMTYyIDExQzE7RDBGNjsxMTEwIDExNjIgMTFDMTsKK0QwRjc7RDBGNzsxMTEwIDExNjIgMTFDMjtEMEY3OzExMTAgMTE2MiAxMUMyOworRDBGODtEMEY4OzExMTAgMTE2MztEMEY4OzExMTAgMTE2MzsKK0QwRjk7RDBGOTsxMTEwIDExNjMgMTFBODtEMEY5OzExMTAgMTE2MyAxMUE4OworRDBGQTtEMEZBOzExMTAgMTE2MyAxMUE5O0QwRkE7MTExMCAxMTYzIDExQTk7CitEMEZCO0QwRkI7MTExMCAxMTYzIDExQUE7RDBGQjsxMTEwIDExNjMgMTFBQTsKK0QwRkM7RDBGQzsxMTEwIDExNjMgMTFBQjtEMEZDOzExMTAgMTE2MyAxMUFCOworRDBGRDtEMEZEOzExMTAgMTE2MyAxMUFDO0QwRkQ7MTExMCAxMTYzIDExQUM7CitEMEZFO0QwRkU7MTExMCAxMTYzIDExQUQ7RDBGRTsxMTEwIDExNjMgMTFBRDsKK0QwRkY7RDBGRjsxMTEwIDExNjMgMTFBRTtEMEZGOzExMTAgMTE2MyAxMUFFOworRDEwMDtEMTAwOzExMTAgMTE2MyAxMUFGO0QxMDA7MTExMCAxMTYzIDExQUY7CitEMTAxO0QxMDE7MTExMCAxMTYzIDExQjA7RDEwMTsxMTEwIDExNjMgMTFCMDsKK0QxMDI7RDEwMjsxMTEwIDExNjMgMTFCMTtEMTAyOzExMTAgMTE2MyAxMUIxOworRDEwMztEMTAzOzExMTAgMTE2MyAxMUIyO0QxMDM7MTExMCAxMTYzIDExQjI7CitEMTA0O0QxMDQ7MTExMCAxMTYzIDExQjM7RDEwNDsxMTEwIDExNjMgMTFCMzsKK0QxMDU7RDEwNTsxMTEwIDExNjMgMTFCNDtEMTA1OzExMTAgMTE2MyAxMUI0OworRDEwNjtEMTA2OzExMTAgMTE2MyAxMUI1O0QxMDY7MTExMCAxMTYzIDExQjU7CitEMTA3O0QxMDc7MTExMCAxMTYzIDExQjY7RDEwNzsxMTEwIDExNjMgMTFCNjsKK0QxMDg7RDEwODsxMTEwIDExNjMgMTFCNztEMTA4OzExMTAgMTE2MyAxMUI3OworRDEwOTtEMTA5OzExMTAgMTE2MyAxMUI4O0QxMDk7MTExMCAxMTYzIDExQjg7CitEMTBBO0QxMEE7MTExMCAxMTYzIDExQjk7RDEwQTsxMTEwIDExNjMgMTFCOTsKK0QxMEI7RDEwQjsxMTEwIDExNjMgMTFCQTtEMTBCOzExMTAgMTE2MyAxMUJBOworRDEwQztEMTBDOzExMTAgMTE2MyAxMUJCO0QxMEM7MTExMCAxMTYzIDExQkI7CitEMTBEO0QxMEQ7MTExMCAxMTYzIDExQkM7RDEwRDsxMTEwIDExNjMgMTFCQzsKK0QxMEU7RDEwRTsxMTEwIDExNjMgMTFCRDtEMTBFOzExMTAgMTE2MyAxMUJEOworRDEwRjtEMTBGOzExMTAgMTE2MyAxMUJFO0QxMEY7MTExMCAxMTYzIDExQkU7CitEMTEwO0QxMTA7MTExMCAxMTYzIDExQkY7RDExMDsxMTEwIDExNjMgMTFCRjsKK0QxMTE7RDExMTsxMTEwIDExNjMgMTFDMDtEMTExOzExMTAgMTE2MyAxMUMwOworRDExMjtEMTEyOzExMTAgMTE2MyAxMUMxO0QxMTI7MTExMCAxMTYzIDExQzE7CitEMTEzO0QxMTM7MTExMCAxMTYzIDExQzI7RDExMzsxMTEwIDExNjMgMTFDMjsKK0QxMTQ7RDExNDsxMTEwIDExNjQ7RDExNDsxMTEwIDExNjQ7CitEMTE1O0QxMTU7MTExMCAxMTY0IDExQTg7RDExNTsxMTEwIDExNjQgMTFBODsKK0QxMTY7RDExNjsxMTEwIDExNjQgMTFBOTtEMTE2OzExMTAgMTE2NCAxMUE5OworRDExNztEMTE3OzExMTAgMTE2NCAxMUFBO0QxMTc7MTExMCAxMTY0IDExQUE7CitEMTE4O0QxMTg7MTExMCAxMTY0IDExQUI7RDExODsxMTEwIDExNjQgMTFBQjsKK0QxMTk7RDExOTsxMTEwIDExNjQgMTFBQztEMTE5OzExMTAgMTE2NCAxMUFDOworRDExQTtEMTFBOzExMTAgMTE2NCAxMUFEO0QxMUE7MTExMCAxMTY0IDExQUQ7CitEMTFCO0QxMUI7MTExMCAxMTY0IDExQUU7RDExQjsxMTEwIDExNjQgMTFBRTsKK0QxMUM7RDExQzsxMTEwIDExNjQgMTFBRjtEMTFDOzExMTAgMTE2NCAxMUFGOworRDExRDtEMTFEOzExMTAgMTE2NCAxMUIwO0QxMUQ7MTExMCAxMTY0IDExQjA7CitEMTFFO0QxMUU7MTExMCAxMTY0IDExQjE7RDExRTsxMTEwIDExNjQgMTFCMTsKK0QxMUY7RDExRjsxMTEwIDExNjQgMTFCMjtEMTFGOzExMTAgMTE2NCAxMUIyOworRDEyMDtEMTIwOzExMTAgMTE2NCAxMUIzO0QxMjA7MTExMCAxMTY0IDExQjM7CitEMTIxO0QxMjE7MTExMCAxMTY0IDExQjQ7RDEyMTsxMTEwIDExNjQgMTFCNDsKK0QxMjI7RDEyMjsxMTEwIDExNjQgMTFCNTtEMTIyOzExMTAgMTE2NCAxMUI1OworRDEyMztEMTIzOzExMTAgMTE2NCAxMUI2O0QxMjM7MTExMCAxMTY0IDExQjY7CitEMTI0O0QxMjQ7MTExMCAxMTY0IDExQjc7RDEyNDsxMTEwIDExNjQgMTFCNzsKK0QxMjU7RDEyNTsxMTEwIDExNjQgMTFCODtEMTI1OzExMTAgMTE2NCAxMUI4OworRDEyNjtEMTI2OzExMTAgMTE2NCAxMUI5O0QxMjY7MTExMCAxMTY0IDExQjk7CitEMTI3O0QxMjc7MTExMCAxMTY0IDExQkE7RDEyNzsxMTEwIDExNjQgMTFCQTsKK0QxMjg7RDEyODsxMTEwIDExNjQgMTFCQjtEMTI4OzExMTAgMTE2NCAxMUJCOworRDEyOTtEMTI5OzExMTAgMTE2NCAxMUJDO0QxMjk7MTExMCAxMTY0IDExQkM7CitEMTJBO0QxMkE7MTExMCAxMTY0IDExQkQ7RDEyQTsxMTEwIDExNjQgMTFCRDsKK0QxMkI7RDEyQjsxMTEwIDExNjQgMTFCRTtEMTJCOzExMTAgMTE2NCAxMUJFOworRDEyQztEMTJDOzExMTAgMTE2NCAxMUJGO0QxMkM7MTExMCAxMTY0IDExQkY7CitEMTJEO0QxMkQ7MTExMCAxMTY0IDExQzA7RDEyRDsxMTEwIDExNjQgMTFDMDsKK0QxMkU7RDEyRTsxMTEwIDExNjQgMTFDMTtEMTJFOzExMTAgMTE2NCAxMUMxOworRDEyRjtEMTJGOzExMTAgMTE2NCAxMUMyO0QxMkY7MTExMCAxMTY0IDExQzI7CitEMTMwO0QxMzA7MTExMCAxMTY1O0QxMzA7MTExMCAxMTY1OworRDEzMTtEMTMxOzExMTAgMTE2NSAxMUE4O0QxMzE7MTExMCAxMTY1IDExQTg7CitEMTMyO0QxMzI7MTExMCAxMTY1IDExQTk7RDEzMjsxMTEwIDExNjUgMTFBOTsKK0QxMzM7RDEzMzsxMTEwIDExNjUgMTFBQTtEMTMzOzExMTAgMTE2NSAxMUFBOworRDEzNDtEMTM0OzExMTAgMTE2NSAxMUFCO0QxMzQ7MTExMCAxMTY1IDExQUI7CitEMTM1O0QxMzU7MTExMCAxMTY1IDExQUM7RDEzNTsxMTEwIDExNjUgMTFBQzsKK0QxMzY7RDEzNjsxMTEwIDExNjUgMTFBRDtEMTM2OzExMTAgMTE2NSAxMUFEOworRDEzNztEMTM3OzExMTAgMTE2NSAxMUFFO0QxMzc7MTExMCAxMTY1IDExQUU7CitEMTM4O0QxMzg7MTExMCAxMTY1IDExQUY7RDEzODsxMTEwIDExNjUgMTFBRjsKK0QxMzk7RDEzOTsxMTEwIDExNjUgMTFCMDtEMTM5OzExMTAgMTE2NSAxMUIwOworRDEzQTtEMTNBOzExMTAgMTE2NSAxMUIxO0QxM0E7MTExMCAxMTY1IDExQjE7CitEMTNCO0QxM0I7MTExMCAxMTY1IDExQjI7RDEzQjsxMTEwIDExNjUgMTFCMjsKK0QxM0M7RDEzQzsxMTEwIDExNjUgMTFCMztEMTNDOzExMTAgMTE2NSAxMUIzOworRDEzRDtEMTNEOzExMTAgMTE2NSAxMUI0O0QxM0Q7MTExMCAxMTY1IDExQjQ7CitEMTNFO0QxM0U7MTExMCAxMTY1IDExQjU7RDEzRTsxMTEwIDExNjUgMTFCNTsKK0QxM0Y7RDEzRjsxMTEwIDExNjUgMTFCNjtEMTNGOzExMTAgMTE2NSAxMUI2OworRDE0MDtEMTQwOzExMTAgMTE2NSAxMUI3O0QxNDA7MTExMCAxMTY1IDExQjc7CitEMTQxO0QxNDE7MTExMCAxMTY1IDExQjg7RDE0MTsxMTEwIDExNjUgMTFCODsKK0QxNDI7RDE0MjsxMTEwIDExNjUgMTFCOTtEMTQyOzExMTAgMTE2NSAxMUI5OworRDE0MztEMTQzOzExMTAgMTE2NSAxMUJBO0QxNDM7MTExMCAxMTY1IDExQkE7CitEMTQ0O0QxNDQ7MTExMCAxMTY1IDExQkI7RDE0NDsxMTEwIDExNjUgMTFCQjsKK0QxNDU7RDE0NTsxMTEwIDExNjUgMTFCQztEMTQ1OzExMTAgMTE2NSAxMUJDOworRDE0NjtEMTQ2OzExMTAgMTE2NSAxMUJEO0QxNDY7MTExMCAxMTY1IDExQkQ7CitEMTQ3O0QxNDc7MTExMCAxMTY1IDExQkU7RDE0NzsxMTEwIDExNjUgMTFCRTsKK0QxNDg7RDE0ODsxMTEwIDExNjUgMTFCRjtEMTQ4OzExMTAgMTE2NSAxMUJGOworRDE0OTtEMTQ5OzExMTAgMTE2NSAxMUMwO0QxNDk7MTExMCAxMTY1IDExQzA7CitEMTRBO0QxNEE7MTExMCAxMTY1IDExQzE7RDE0QTsxMTEwIDExNjUgMTFDMTsKK0QxNEI7RDE0QjsxMTEwIDExNjUgMTFDMjtEMTRCOzExMTAgMTE2NSAxMUMyOworRDE0QztEMTRDOzExMTAgMTE2NjtEMTRDOzExMTAgMTE2NjsKK0QxNEQ7RDE0RDsxMTEwIDExNjYgMTFBODtEMTREOzExMTAgMTE2NiAxMUE4OworRDE0RTtEMTRFOzExMTAgMTE2NiAxMUE5O0QxNEU7MTExMCAxMTY2IDExQTk7CitEMTRGO0QxNEY7MTExMCAxMTY2IDExQUE7RDE0RjsxMTEwIDExNjYgMTFBQTsKK0QxNTA7RDE1MDsxMTEwIDExNjYgMTFBQjtEMTUwOzExMTAgMTE2NiAxMUFCOworRDE1MTtEMTUxOzExMTAgMTE2NiAxMUFDO0QxNTE7MTExMCAxMTY2IDExQUM7CitEMTUyO0QxNTI7MTExMCAxMTY2IDExQUQ7RDE1MjsxMTEwIDExNjYgMTFBRDsKK0QxNTM7RDE1MzsxMTEwIDExNjYgMTFBRTtEMTUzOzExMTAgMTE2NiAxMUFFOworRDE1NDtEMTU0OzExMTAgMTE2NiAxMUFGO0QxNTQ7MTExMCAxMTY2IDExQUY7CitEMTU1O0QxNTU7MTExMCAxMTY2IDExQjA7RDE1NTsxMTEwIDExNjYgMTFCMDsKK0QxNTY7RDE1NjsxMTEwIDExNjYgMTFCMTtEMTU2OzExMTAgMTE2NiAxMUIxOworRDE1NztEMTU3OzExMTAgMTE2NiAxMUIyO0QxNTc7MTExMCAxMTY2IDExQjI7CitEMTU4O0QxNTg7MTExMCAxMTY2IDExQjM7RDE1ODsxMTEwIDExNjYgMTFCMzsKK0QxNTk7RDE1OTsxMTEwIDExNjYgMTFCNDtEMTU5OzExMTAgMTE2NiAxMUI0OworRDE1QTtEMTVBOzExMTAgMTE2NiAxMUI1O0QxNUE7MTExMCAxMTY2IDExQjU7CitEMTVCO0QxNUI7MTExMCAxMTY2IDExQjY7RDE1QjsxMTEwIDExNjYgMTFCNjsKK0QxNUM7RDE1QzsxMTEwIDExNjYgMTFCNztEMTVDOzExMTAgMTE2NiAxMUI3OworRDE1RDtEMTVEOzExMTAgMTE2NiAxMUI4O0QxNUQ7MTExMCAxMTY2IDExQjg7CitEMTVFO0QxNUU7MTExMCAxMTY2IDExQjk7RDE1RTsxMTEwIDExNjYgMTFCOTsKK0QxNUY7RDE1RjsxMTEwIDExNjYgMTFCQTtEMTVGOzExMTAgMTE2NiAxMUJBOworRDE2MDtEMTYwOzExMTAgMTE2NiAxMUJCO0QxNjA7MTExMCAxMTY2IDExQkI7CitEMTYxO0QxNjE7MTExMCAxMTY2IDExQkM7RDE2MTsxMTEwIDExNjYgMTFCQzsKK0QxNjI7RDE2MjsxMTEwIDExNjYgMTFCRDtEMTYyOzExMTAgMTE2NiAxMUJEOworRDE2MztEMTYzOzExMTAgMTE2NiAxMUJFO0QxNjM7MTExMCAxMTY2IDExQkU7CitEMTY0O0QxNjQ7MTExMCAxMTY2IDExQkY7RDE2NDsxMTEwIDExNjYgMTFCRjsKK0QxNjU7RDE2NTsxMTEwIDExNjYgMTFDMDtEMTY1OzExMTAgMTE2NiAxMUMwOworRDE2NjtEMTY2OzExMTAgMTE2NiAxMUMxO0QxNjY7MTExMCAxMTY2IDExQzE7CitEMTY3O0QxNjc7MTExMCAxMTY2IDExQzI7RDE2NzsxMTEwIDExNjYgMTFDMjsKK0QxNjg7RDE2ODsxMTEwIDExNjc7RDE2ODsxMTEwIDExNjc7CitEMTY5O0QxNjk7MTExMCAxMTY3IDExQTg7RDE2OTsxMTEwIDExNjcgMTFBODsKK0QxNkE7RDE2QTsxMTEwIDExNjcgMTFBOTtEMTZBOzExMTAgMTE2NyAxMUE5OworRDE2QjtEMTZCOzExMTAgMTE2NyAxMUFBO0QxNkI7MTExMCAxMTY3IDExQUE7CitEMTZDO0QxNkM7MTExMCAxMTY3IDExQUI7RDE2QzsxMTEwIDExNjcgMTFBQjsKK0QxNkQ7RDE2RDsxMTEwIDExNjcgMTFBQztEMTZEOzExMTAgMTE2NyAxMUFDOworRDE2RTtEMTZFOzExMTAgMTE2NyAxMUFEO0QxNkU7MTExMCAxMTY3IDExQUQ7CitEMTZGO0QxNkY7MTExMCAxMTY3IDExQUU7RDE2RjsxMTEwIDExNjcgMTFBRTsKK0QxNzA7RDE3MDsxMTEwIDExNjcgMTFBRjtEMTcwOzExMTAgMTE2NyAxMUFGOworRDE3MTtEMTcxOzExMTAgMTE2NyAxMUIwO0QxNzE7MTExMCAxMTY3IDExQjA7CitEMTcyO0QxNzI7MTExMCAxMTY3IDExQjE7RDE3MjsxMTEwIDExNjcgMTFCMTsKK0QxNzM7RDE3MzsxMTEwIDExNjcgMTFCMjtEMTczOzExMTAgMTE2NyAxMUIyOworRDE3NDtEMTc0OzExMTAgMTE2NyAxMUIzO0QxNzQ7MTExMCAxMTY3IDExQjM7CitEMTc1O0QxNzU7MTExMCAxMTY3IDExQjQ7RDE3NTsxMTEwIDExNjcgMTFCNDsKK0QxNzY7RDE3NjsxMTEwIDExNjcgMTFCNTtEMTc2OzExMTAgMTE2NyAxMUI1OworRDE3NztEMTc3OzExMTAgMTE2NyAxMUI2O0QxNzc7MTExMCAxMTY3IDExQjY7CitEMTc4O0QxNzg7MTExMCAxMTY3IDExQjc7RDE3ODsxMTEwIDExNjcgMTFCNzsKK0QxNzk7RDE3OTsxMTEwIDExNjcgMTFCODtEMTc5OzExMTAgMTE2NyAxMUI4OworRDE3QTtEMTdBOzExMTAgMTE2NyAxMUI5O0QxN0E7MTExMCAxMTY3IDExQjk7CitEMTdCO0QxN0I7MTExMCAxMTY3IDExQkE7RDE3QjsxMTEwIDExNjcgMTFCQTsKK0QxN0M7RDE3QzsxMTEwIDExNjcgMTFCQjtEMTdDOzExMTAgMTE2NyAxMUJCOworRDE3RDtEMTdEOzExMTAgMTE2NyAxMUJDO0QxN0Q7MTExMCAxMTY3IDExQkM7CitEMTdFO0QxN0U7MTExMCAxMTY3IDExQkQ7RDE3RTsxMTEwIDExNjcgMTFCRDsKK0QxN0Y7RDE3RjsxMTEwIDExNjcgMTFCRTtEMTdGOzExMTAgMTE2NyAxMUJFOworRDE4MDtEMTgwOzExMTAgMTE2NyAxMUJGO0QxODA7MTExMCAxMTY3IDExQkY7CitEMTgxO0QxODE7MTExMCAxMTY3IDExQzA7RDE4MTsxMTEwIDExNjcgMTFDMDsKK0QxODI7RDE4MjsxMTEwIDExNjcgMTFDMTtEMTgyOzExMTAgMTE2NyAxMUMxOworRDE4MztEMTgzOzExMTAgMTE2NyAxMUMyO0QxODM7MTExMCAxMTY3IDExQzI7CitEMTg0O0QxODQ7MTExMCAxMTY4O0QxODQ7MTExMCAxMTY4OworRDE4NTtEMTg1OzExMTAgMTE2OCAxMUE4O0QxODU7MTExMCAxMTY4IDExQTg7CitEMTg2O0QxODY7MTExMCAxMTY4IDExQTk7RDE4NjsxMTEwIDExNjggMTFBOTsKK0QxODc7RDE4NzsxMTEwIDExNjggMTFBQTtEMTg3OzExMTAgMTE2OCAxMUFBOworRDE4ODtEMTg4OzExMTAgMTE2OCAxMUFCO0QxODg7MTExMCAxMTY4IDExQUI7CitEMTg5O0QxODk7MTExMCAxMTY4IDExQUM7RDE4OTsxMTEwIDExNjggMTFBQzsKK0QxOEE7RDE4QTsxMTEwIDExNjggMTFBRDtEMThBOzExMTAgMTE2OCAxMUFEOworRDE4QjtEMThCOzExMTAgMTE2OCAxMUFFO0QxOEI7MTExMCAxMTY4IDExQUU7CitEMThDO0QxOEM7MTExMCAxMTY4IDExQUY7RDE4QzsxMTEwIDExNjggMTFBRjsKK0QxOEQ7RDE4RDsxMTEwIDExNjggMTFCMDtEMThEOzExMTAgMTE2OCAxMUIwOworRDE4RTtEMThFOzExMTAgMTE2OCAxMUIxO0QxOEU7MTExMCAxMTY4IDExQjE7CitEMThGO0QxOEY7MTExMCAxMTY4IDExQjI7RDE4RjsxMTEwIDExNjggMTFCMjsKK0QxOTA7RDE5MDsxMTEwIDExNjggMTFCMztEMTkwOzExMTAgMTE2OCAxMUIzOworRDE5MTtEMTkxOzExMTAgMTE2OCAxMUI0O0QxOTE7MTExMCAxMTY4IDExQjQ7CitEMTkyO0QxOTI7MTExMCAxMTY4IDExQjU7RDE5MjsxMTEwIDExNjggMTFCNTsKK0QxOTM7RDE5MzsxMTEwIDExNjggMTFCNjtEMTkzOzExMTAgMTE2OCAxMUI2OworRDE5NDtEMTk0OzExMTAgMTE2OCAxMUI3O0QxOTQ7MTExMCAxMTY4IDExQjc7CitEMTk1O0QxOTU7MTExMCAxMTY4IDExQjg7RDE5NTsxMTEwIDExNjggMTFCODsKK0QxOTY7RDE5NjsxMTEwIDExNjggMTFCOTtEMTk2OzExMTAgMTE2OCAxMUI5OworRDE5NztEMTk3OzExMTAgMTE2OCAxMUJBO0QxOTc7MTExMCAxMTY4IDExQkE7CitEMTk4O0QxOTg7MTExMCAxMTY4IDExQkI7RDE5ODsxMTEwIDExNjggMTFCQjsKK0QxOTk7RDE5OTsxMTEwIDExNjggMTFCQztEMTk5OzExMTAgMTE2OCAxMUJDOworRDE5QTtEMTlBOzExMTAgMTE2OCAxMUJEO0QxOUE7MTExMCAxMTY4IDExQkQ7CitEMTlCO0QxOUI7MTExMCAxMTY4IDExQkU7RDE5QjsxMTEwIDExNjggMTFCRTsKK0QxOUM7RDE5QzsxMTEwIDExNjggMTFCRjtEMTlDOzExMTAgMTE2OCAxMUJGOworRDE5RDtEMTlEOzExMTAgMTE2OCAxMUMwO0QxOUQ7MTExMCAxMTY4IDExQzA7CitEMTlFO0QxOUU7MTExMCAxMTY4IDExQzE7RDE5RTsxMTEwIDExNjggMTFDMTsKK0QxOUY7RDE5RjsxMTEwIDExNjggMTFDMjtEMTlGOzExMTAgMTE2OCAxMUMyOworRDFBMDtEMUEwOzExMTAgMTE2OTtEMUEwOzExMTAgMTE2OTsKK0QxQTE7RDFBMTsxMTEwIDExNjkgMTFBODtEMUExOzExMTAgMTE2OSAxMUE4OworRDFBMjtEMUEyOzExMTAgMTE2OSAxMUE5O0QxQTI7MTExMCAxMTY5IDExQTk7CitEMUEzO0QxQTM7MTExMCAxMTY5IDExQUE7RDFBMzsxMTEwIDExNjkgMTFBQTsKK0QxQTQ7RDFBNDsxMTEwIDExNjkgMTFBQjtEMUE0OzExMTAgMTE2OSAxMUFCOworRDFBNTtEMUE1OzExMTAgMTE2OSAxMUFDO0QxQTU7MTExMCAxMTY5IDExQUM7CitEMUE2O0QxQTY7MTExMCAxMTY5IDExQUQ7RDFBNjsxMTEwIDExNjkgMTFBRDsKK0QxQTc7RDFBNzsxMTEwIDExNjkgMTFBRTtEMUE3OzExMTAgMTE2OSAxMUFFOworRDFBODtEMUE4OzExMTAgMTE2OSAxMUFGO0QxQTg7MTExMCAxMTY5IDExQUY7CitEMUE5O0QxQTk7MTExMCAxMTY5IDExQjA7RDFBOTsxMTEwIDExNjkgMTFCMDsKK0QxQUE7RDFBQTsxMTEwIDExNjkgMTFCMTtEMUFBOzExMTAgMTE2OSAxMUIxOworRDFBQjtEMUFCOzExMTAgMTE2OSAxMUIyO0QxQUI7MTExMCAxMTY5IDExQjI7CitEMUFDO0QxQUM7MTExMCAxMTY5IDExQjM7RDFBQzsxMTEwIDExNjkgMTFCMzsKK0QxQUQ7RDFBRDsxMTEwIDExNjkgMTFCNDtEMUFEOzExMTAgMTE2OSAxMUI0OworRDFBRTtEMUFFOzExMTAgMTE2OSAxMUI1O0QxQUU7MTExMCAxMTY5IDExQjU7CitEMUFGO0QxQUY7MTExMCAxMTY5IDExQjY7RDFBRjsxMTEwIDExNjkgMTFCNjsKK0QxQjA7RDFCMDsxMTEwIDExNjkgMTFCNztEMUIwOzExMTAgMTE2OSAxMUI3OworRDFCMTtEMUIxOzExMTAgMTE2OSAxMUI4O0QxQjE7MTExMCAxMTY5IDExQjg7CitEMUIyO0QxQjI7MTExMCAxMTY5IDExQjk7RDFCMjsxMTEwIDExNjkgMTFCOTsKK0QxQjM7RDFCMzsxMTEwIDExNjkgMTFCQTtEMUIzOzExMTAgMTE2OSAxMUJBOworRDFCNDtEMUI0OzExMTAgMTE2OSAxMUJCO0QxQjQ7MTExMCAxMTY5IDExQkI7CitEMUI1O0QxQjU7MTExMCAxMTY5IDExQkM7RDFCNTsxMTEwIDExNjkgMTFCQzsKK0QxQjY7RDFCNjsxMTEwIDExNjkgMTFCRDtEMUI2OzExMTAgMTE2OSAxMUJEOworRDFCNztEMUI3OzExMTAgMTE2OSAxMUJFO0QxQjc7MTExMCAxMTY5IDExQkU7CitEMUI4O0QxQjg7MTExMCAxMTY5IDExQkY7RDFCODsxMTEwIDExNjkgMTFCRjsKK0QxQjk7RDFCOTsxMTEwIDExNjkgMTFDMDtEMUI5OzExMTAgMTE2OSAxMUMwOworRDFCQTtEMUJBOzExMTAgMTE2OSAxMUMxO0QxQkE7MTExMCAxMTY5IDExQzE7CitEMUJCO0QxQkI7MTExMCAxMTY5IDExQzI7RDFCQjsxMTEwIDExNjkgMTFDMjsKK0QxQkM7RDFCQzsxMTEwIDExNkE7RDFCQzsxMTEwIDExNkE7CitEMUJEO0QxQkQ7MTExMCAxMTZBIDExQTg7RDFCRDsxMTEwIDExNkEgMTFBODsKK0QxQkU7RDFCRTsxMTEwIDExNkEgMTFBOTtEMUJFOzExMTAgMTE2QSAxMUE5OworRDFCRjtEMUJGOzExMTAgMTE2QSAxMUFBO0QxQkY7MTExMCAxMTZBIDExQUE7CitEMUMwO0QxQzA7MTExMCAxMTZBIDExQUI7RDFDMDsxMTEwIDExNkEgMTFBQjsKK0QxQzE7RDFDMTsxMTEwIDExNkEgMTFBQztEMUMxOzExMTAgMTE2QSAxMUFDOworRDFDMjtEMUMyOzExMTAgMTE2QSAxMUFEO0QxQzI7MTExMCAxMTZBIDExQUQ7CitEMUMzO0QxQzM7MTExMCAxMTZBIDExQUU7RDFDMzsxMTEwIDExNkEgMTFBRTsKK0QxQzQ7RDFDNDsxMTEwIDExNkEgMTFBRjtEMUM0OzExMTAgMTE2QSAxMUFGOworRDFDNTtEMUM1OzExMTAgMTE2QSAxMUIwO0QxQzU7MTExMCAxMTZBIDExQjA7CitEMUM2O0QxQzY7MTExMCAxMTZBIDExQjE7RDFDNjsxMTEwIDExNkEgMTFCMTsKK0QxQzc7RDFDNzsxMTEwIDExNkEgMTFCMjtEMUM3OzExMTAgMTE2QSAxMUIyOworRDFDODtEMUM4OzExMTAgMTE2QSAxMUIzO0QxQzg7MTExMCAxMTZBIDExQjM7CitEMUM5O0QxQzk7MTExMCAxMTZBIDExQjQ7RDFDOTsxMTEwIDExNkEgMTFCNDsKK0QxQ0E7RDFDQTsxMTEwIDExNkEgMTFCNTtEMUNBOzExMTAgMTE2QSAxMUI1OworRDFDQjtEMUNCOzExMTAgMTE2QSAxMUI2O0QxQ0I7MTExMCAxMTZBIDExQjY7CitEMUNDO0QxQ0M7MTExMCAxMTZBIDExQjc7RDFDQzsxMTEwIDExNkEgMTFCNzsKK0QxQ0Q7RDFDRDsxMTEwIDExNkEgMTFCODtEMUNEOzExMTAgMTE2QSAxMUI4OworRDFDRTtEMUNFOzExMTAgMTE2QSAxMUI5O0QxQ0U7MTExMCAxMTZBIDExQjk7CitEMUNGO0QxQ0Y7MTExMCAxMTZBIDExQkE7RDFDRjsxMTEwIDExNkEgMTFCQTsKK0QxRDA7RDFEMDsxMTEwIDExNkEgMTFCQjtEMUQwOzExMTAgMTE2QSAxMUJCOworRDFEMTtEMUQxOzExMTAgMTE2QSAxMUJDO0QxRDE7MTExMCAxMTZBIDExQkM7CitEMUQyO0QxRDI7MTExMCAxMTZBIDExQkQ7RDFEMjsxMTEwIDExNkEgMTFCRDsKK0QxRDM7RDFEMzsxMTEwIDExNkEgMTFCRTtEMUQzOzExMTAgMTE2QSAxMUJFOworRDFENDtEMUQ0OzExMTAgMTE2QSAxMUJGO0QxRDQ7MTExMCAxMTZBIDExQkY7CitEMUQ1O0QxRDU7MTExMCAxMTZBIDExQzA7RDFENTsxMTEwIDExNkEgMTFDMDsKK0QxRDY7RDFENjsxMTEwIDExNkEgMTFDMTtEMUQ2OzExMTAgMTE2QSAxMUMxOworRDFENztEMUQ3OzExMTAgMTE2QSAxMUMyO0QxRDc7MTExMCAxMTZBIDExQzI7CitEMUQ4O0QxRDg7MTExMCAxMTZCO0QxRDg7MTExMCAxMTZCOworRDFEOTtEMUQ5OzExMTAgMTE2QiAxMUE4O0QxRDk7MTExMCAxMTZCIDExQTg7CitEMURBO0QxREE7MTExMCAxMTZCIDExQTk7RDFEQTsxMTEwIDExNkIgMTFBOTsKK0QxREI7RDFEQjsxMTEwIDExNkIgMTFBQTtEMURCOzExMTAgMTE2QiAxMUFBOworRDFEQztEMURDOzExMTAgMTE2QiAxMUFCO0QxREM7MTExMCAxMTZCIDExQUI7CitEMUREO0QxREQ7MTExMCAxMTZCIDExQUM7RDFERDsxMTEwIDExNkIgMTFBQzsKK0QxREU7RDFERTsxMTEwIDExNkIgMTFBRDtEMURFOzExMTAgMTE2QiAxMUFEOworRDFERjtEMURGOzExMTAgMTE2QiAxMUFFO0QxREY7MTExMCAxMTZCIDExQUU7CitEMUUwO0QxRTA7MTExMCAxMTZCIDExQUY7RDFFMDsxMTEwIDExNkIgMTFBRjsKK0QxRTE7RDFFMTsxMTEwIDExNkIgMTFCMDtEMUUxOzExMTAgMTE2QiAxMUIwOworRDFFMjtEMUUyOzExMTAgMTE2QiAxMUIxO0QxRTI7MTExMCAxMTZCIDExQjE7CitEMUUzO0QxRTM7MTExMCAxMTZCIDExQjI7RDFFMzsxMTEwIDExNkIgMTFCMjsKK0QxRTQ7RDFFNDsxMTEwIDExNkIgMTFCMztEMUU0OzExMTAgMTE2QiAxMUIzOworRDFFNTtEMUU1OzExMTAgMTE2QiAxMUI0O0QxRTU7MTExMCAxMTZCIDExQjQ7CitEMUU2O0QxRTY7MTExMCAxMTZCIDExQjU7RDFFNjsxMTEwIDExNkIgMTFCNTsKK0QxRTc7RDFFNzsxMTEwIDExNkIgMTFCNjtEMUU3OzExMTAgMTE2QiAxMUI2OworRDFFODtEMUU4OzExMTAgMTE2QiAxMUI3O0QxRTg7MTExMCAxMTZCIDExQjc7CitEMUU5O0QxRTk7MTExMCAxMTZCIDExQjg7RDFFOTsxMTEwIDExNkIgMTFCODsKK0QxRUE7RDFFQTsxMTEwIDExNkIgMTFCOTtEMUVBOzExMTAgMTE2QiAxMUI5OworRDFFQjtEMUVCOzExMTAgMTE2QiAxMUJBO0QxRUI7MTExMCAxMTZCIDExQkE7CitEMUVDO0QxRUM7MTExMCAxMTZCIDExQkI7RDFFQzsxMTEwIDExNkIgMTFCQjsKK0QxRUQ7RDFFRDsxMTEwIDExNkIgMTFCQztEMUVEOzExMTAgMTE2QiAxMUJDOworRDFFRTtEMUVFOzExMTAgMTE2QiAxMUJEO0QxRUU7MTExMCAxMTZCIDExQkQ7CitEMUVGO0QxRUY7MTExMCAxMTZCIDExQkU7RDFFRjsxMTEwIDExNkIgMTFCRTsKK0QxRjA7RDFGMDsxMTEwIDExNkIgMTFCRjtEMUYwOzExMTAgMTE2QiAxMUJGOworRDFGMTtEMUYxOzExMTAgMTE2QiAxMUMwO0QxRjE7MTExMCAxMTZCIDExQzA7CitEMUYyO0QxRjI7MTExMCAxMTZCIDExQzE7RDFGMjsxMTEwIDExNkIgMTFDMTsKK0QxRjM7RDFGMzsxMTEwIDExNkIgMTFDMjtEMUYzOzExMTAgMTE2QiAxMUMyOworRDFGNDtEMUY0OzExMTAgMTE2QztEMUY0OzExMTAgMTE2QzsKK0QxRjU7RDFGNTsxMTEwIDExNkMgMTFBODtEMUY1OzExMTAgMTE2QyAxMUE4OworRDFGNjtEMUY2OzExMTAgMTE2QyAxMUE5O0QxRjY7MTExMCAxMTZDIDExQTk7CitEMUY3O0QxRjc7MTExMCAxMTZDIDExQUE7RDFGNzsxMTEwIDExNkMgMTFBQTsKK0QxRjg7RDFGODsxMTEwIDExNkMgMTFBQjtEMUY4OzExMTAgMTE2QyAxMUFCOworRDFGOTtEMUY5OzExMTAgMTE2QyAxMUFDO0QxRjk7MTExMCAxMTZDIDExQUM7CitEMUZBO0QxRkE7MTExMCAxMTZDIDExQUQ7RDFGQTsxMTEwIDExNkMgMTFBRDsKK0QxRkI7RDFGQjsxMTEwIDExNkMgMTFBRTtEMUZCOzExMTAgMTE2QyAxMUFFOworRDFGQztEMUZDOzExMTAgMTE2QyAxMUFGO0QxRkM7MTExMCAxMTZDIDExQUY7CitEMUZEO0QxRkQ7MTExMCAxMTZDIDExQjA7RDFGRDsxMTEwIDExNkMgMTFCMDsKK0QxRkU7RDFGRTsxMTEwIDExNkMgMTFCMTtEMUZFOzExMTAgMTE2QyAxMUIxOworRDFGRjtEMUZGOzExMTAgMTE2QyAxMUIyO0QxRkY7MTExMCAxMTZDIDExQjI7CitEMjAwO0QyMDA7MTExMCAxMTZDIDExQjM7RDIwMDsxMTEwIDExNkMgMTFCMzsKK0QyMDE7RDIwMTsxMTEwIDExNkMgMTFCNDtEMjAxOzExMTAgMTE2QyAxMUI0OworRDIwMjtEMjAyOzExMTAgMTE2QyAxMUI1O0QyMDI7MTExMCAxMTZDIDExQjU7CitEMjAzO0QyMDM7MTExMCAxMTZDIDExQjY7RDIwMzsxMTEwIDExNkMgMTFCNjsKK0QyMDQ7RDIwNDsxMTEwIDExNkMgMTFCNztEMjA0OzExMTAgMTE2QyAxMUI3OworRDIwNTtEMjA1OzExMTAgMTE2QyAxMUI4O0QyMDU7MTExMCAxMTZDIDExQjg7CitEMjA2O0QyMDY7MTExMCAxMTZDIDExQjk7RDIwNjsxMTEwIDExNkMgMTFCOTsKK0QyMDc7RDIwNzsxMTEwIDExNkMgMTFCQTtEMjA3OzExMTAgMTE2QyAxMUJBOworRDIwODtEMjA4OzExMTAgMTE2QyAxMUJCO0QyMDg7MTExMCAxMTZDIDExQkI7CitEMjA5O0QyMDk7MTExMCAxMTZDIDExQkM7RDIwOTsxMTEwIDExNkMgMTFCQzsKK0QyMEE7RDIwQTsxMTEwIDExNkMgMTFCRDtEMjBBOzExMTAgMTE2QyAxMUJEOworRDIwQjtEMjBCOzExMTAgMTE2QyAxMUJFO0QyMEI7MTExMCAxMTZDIDExQkU7CitEMjBDO0QyMEM7MTExMCAxMTZDIDExQkY7RDIwQzsxMTEwIDExNkMgMTFCRjsKK0QyMEQ7RDIwRDsxMTEwIDExNkMgMTFDMDtEMjBEOzExMTAgMTE2QyAxMUMwOworRDIwRTtEMjBFOzExMTAgMTE2QyAxMUMxO0QyMEU7MTExMCAxMTZDIDExQzE7CitEMjBGO0QyMEY7MTExMCAxMTZDIDExQzI7RDIwRjsxMTEwIDExNkMgMTFDMjsKK0QyMTA7RDIxMDsxMTEwIDExNkQ7RDIxMDsxMTEwIDExNkQ7CitEMjExO0QyMTE7MTExMCAxMTZEIDExQTg7RDIxMTsxMTEwIDExNkQgMTFBODsKK0QyMTI7RDIxMjsxMTEwIDExNkQgMTFBOTtEMjEyOzExMTAgMTE2RCAxMUE5OworRDIxMztEMjEzOzExMTAgMTE2RCAxMUFBO0QyMTM7MTExMCAxMTZEIDExQUE7CitEMjE0O0QyMTQ7MTExMCAxMTZEIDExQUI7RDIxNDsxMTEwIDExNkQgMTFBQjsKK0QyMTU7RDIxNTsxMTEwIDExNkQgMTFBQztEMjE1OzExMTAgMTE2RCAxMUFDOworRDIxNjtEMjE2OzExMTAgMTE2RCAxMUFEO0QyMTY7MTExMCAxMTZEIDExQUQ7CitEMjE3O0QyMTc7MTExMCAxMTZEIDExQUU7RDIxNzsxMTEwIDExNkQgMTFBRTsKK0QyMTg7RDIxODsxMTEwIDExNkQgMTFBRjtEMjE4OzExMTAgMTE2RCAxMUFGOworRDIxOTtEMjE5OzExMTAgMTE2RCAxMUIwO0QyMTk7MTExMCAxMTZEIDExQjA7CitEMjFBO0QyMUE7MTExMCAxMTZEIDExQjE7RDIxQTsxMTEwIDExNkQgMTFCMTsKK0QyMUI7RDIxQjsxMTEwIDExNkQgMTFCMjtEMjFCOzExMTAgMTE2RCAxMUIyOworRDIxQztEMjFDOzExMTAgMTE2RCAxMUIzO0QyMUM7MTExMCAxMTZEIDExQjM7CitEMjFEO0QyMUQ7MTExMCAxMTZEIDExQjQ7RDIxRDsxMTEwIDExNkQgMTFCNDsKK0QyMUU7RDIxRTsxMTEwIDExNkQgMTFCNTtEMjFFOzExMTAgMTE2RCAxMUI1OworRDIxRjtEMjFGOzExMTAgMTE2RCAxMUI2O0QyMUY7MTExMCAxMTZEIDExQjY7CitEMjIwO0QyMjA7MTExMCAxMTZEIDExQjc7RDIyMDsxMTEwIDExNkQgMTFCNzsKK0QyMjE7RDIyMTsxMTEwIDExNkQgMTFCODtEMjIxOzExMTAgMTE2RCAxMUI4OworRDIyMjtEMjIyOzExMTAgMTE2RCAxMUI5O0QyMjI7MTExMCAxMTZEIDExQjk7CitEMjIzO0QyMjM7MTExMCAxMTZEIDExQkE7RDIyMzsxMTEwIDExNkQgMTFCQTsKK0QyMjQ7RDIyNDsxMTEwIDExNkQgMTFCQjtEMjI0OzExMTAgMTE2RCAxMUJCOworRDIyNTtEMjI1OzExMTAgMTE2RCAxMUJDO0QyMjU7MTExMCAxMTZEIDExQkM7CitEMjI2O0QyMjY7MTExMCAxMTZEIDExQkQ7RDIyNjsxMTEwIDExNkQgMTFCRDsKK0QyMjc7RDIyNzsxMTEwIDExNkQgMTFCRTtEMjI3OzExMTAgMTE2RCAxMUJFOworRDIyODtEMjI4OzExMTAgMTE2RCAxMUJGO0QyMjg7MTExMCAxMTZEIDExQkY7CitEMjI5O0QyMjk7MTExMCAxMTZEIDExQzA7RDIyOTsxMTEwIDExNkQgMTFDMDsKK0QyMkE7RDIyQTsxMTEwIDExNkQgMTFDMTtEMjJBOzExMTAgMTE2RCAxMUMxOworRDIyQjtEMjJCOzExMTAgMTE2RCAxMUMyO0QyMkI7MTExMCAxMTZEIDExQzI7CitEMjJDO0QyMkM7MTExMCAxMTZFO0QyMkM7MTExMCAxMTZFOworRDIyRDtEMjJEOzExMTAgMTE2RSAxMUE4O0QyMkQ7MTExMCAxMTZFIDExQTg7CitEMjJFO0QyMkU7MTExMCAxMTZFIDExQTk7RDIyRTsxMTEwIDExNkUgMTFBOTsKK0QyMkY7RDIyRjsxMTEwIDExNkUgMTFBQTtEMjJGOzExMTAgMTE2RSAxMUFBOworRDIzMDtEMjMwOzExMTAgMTE2RSAxMUFCO0QyMzA7MTExMCAxMTZFIDExQUI7CitEMjMxO0QyMzE7MTExMCAxMTZFIDExQUM7RDIzMTsxMTEwIDExNkUgMTFBQzsKK0QyMzI7RDIzMjsxMTEwIDExNkUgMTFBRDtEMjMyOzExMTAgMTE2RSAxMUFEOworRDIzMztEMjMzOzExMTAgMTE2RSAxMUFFO0QyMzM7MTExMCAxMTZFIDExQUU7CitEMjM0O0QyMzQ7MTExMCAxMTZFIDExQUY7RDIzNDsxMTEwIDExNkUgMTFBRjsKK0QyMzU7RDIzNTsxMTEwIDExNkUgMTFCMDtEMjM1OzExMTAgMTE2RSAxMUIwOworRDIzNjtEMjM2OzExMTAgMTE2RSAxMUIxO0QyMzY7MTExMCAxMTZFIDExQjE7CitEMjM3O0QyMzc7MTExMCAxMTZFIDExQjI7RDIzNzsxMTEwIDExNkUgMTFCMjsKK0QyMzg7RDIzODsxMTEwIDExNkUgMTFCMztEMjM4OzExMTAgMTE2RSAxMUIzOworRDIzOTtEMjM5OzExMTAgMTE2RSAxMUI0O0QyMzk7MTExMCAxMTZFIDExQjQ7CitEMjNBO0QyM0E7MTExMCAxMTZFIDExQjU7RDIzQTsxMTEwIDExNkUgMTFCNTsKK0QyM0I7RDIzQjsxMTEwIDExNkUgMTFCNjtEMjNCOzExMTAgMTE2RSAxMUI2OworRDIzQztEMjNDOzExMTAgMTE2RSAxMUI3O0QyM0M7MTExMCAxMTZFIDExQjc7CitEMjNEO0QyM0Q7MTExMCAxMTZFIDExQjg7RDIzRDsxMTEwIDExNkUgMTFCODsKK0QyM0U7RDIzRTsxMTEwIDExNkUgMTFCOTtEMjNFOzExMTAgMTE2RSAxMUI5OworRDIzRjtEMjNGOzExMTAgMTE2RSAxMUJBO0QyM0Y7MTExMCAxMTZFIDExQkE7CitEMjQwO0QyNDA7MTExMCAxMTZFIDExQkI7RDI0MDsxMTEwIDExNkUgMTFCQjsKK0QyNDE7RDI0MTsxMTEwIDExNkUgMTFCQztEMjQxOzExMTAgMTE2RSAxMUJDOworRDI0MjtEMjQyOzExMTAgMTE2RSAxMUJEO0QyNDI7MTExMCAxMTZFIDExQkQ7CitEMjQzO0QyNDM7MTExMCAxMTZFIDExQkU7RDI0MzsxMTEwIDExNkUgMTFCRTsKK0QyNDQ7RDI0NDsxMTEwIDExNkUgMTFCRjtEMjQ0OzExMTAgMTE2RSAxMUJGOworRDI0NTtEMjQ1OzExMTAgMTE2RSAxMUMwO0QyNDU7MTExMCAxMTZFIDExQzA7CitEMjQ2O0QyNDY7MTExMCAxMTZFIDExQzE7RDI0NjsxMTEwIDExNkUgMTFDMTsKK0QyNDc7RDI0NzsxMTEwIDExNkUgMTFDMjtEMjQ3OzExMTAgMTE2RSAxMUMyOworRDI0ODtEMjQ4OzExMTAgMTE2RjtEMjQ4OzExMTAgMTE2RjsKK0QyNDk7RDI0OTsxMTEwIDExNkYgMTFBODtEMjQ5OzExMTAgMTE2RiAxMUE4OworRDI0QTtEMjRBOzExMTAgMTE2RiAxMUE5O0QyNEE7MTExMCAxMTZGIDExQTk7CitEMjRCO0QyNEI7MTExMCAxMTZGIDExQUE7RDI0QjsxMTEwIDExNkYgMTFBQTsKK0QyNEM7RDI0QzsxMTEwIDExNkYgMTFBQjtEMjRDOzExMTAgMTE2RiAxMUFCOworRDI0RDtEMjREOzExMTAgMTE2RiAxMUFDO0QyNEQ7MTExMCAxMTZGIDExQUM7CitEMjRFO0QyNEU7MTExMCAxMTZGIDExQUQ7RDI0RTsxMTEwIDExNkYgMTFBRDsKK0QyNEY7RDI0RjsxMTEwIDExNkYgMTFBRTtEMjRGOzExMTAgMTE2RiAxMUFFOworRDI1MDtEMjUwOzExMTAgMTE2RiAxMUFGO0QyNTA7MTExMCAxMTZGIDExQUY7CitEMjUxO0QyNTE7MTExMCAxMTZGIDExQjA7RDI1MTsxMTEwIDExNkYgMTFCMDsKK0QyNTI7RDI1MjsxMTEwIDExNkYgMTFCMTtEMjUyOzExMTAgMTE2RiAxMUIxOworRDI1MztEMjUzOzExMTAgMTE2RiAxMUIyO0QyNTM7MTExMCAxMTZGIDExQjI7CitEMjU0O0QyNTQ7MTExMCAxMTZGIDExQjM7RDI1NDsxMTEwIDExNkYgMTFCMzsKK0QyNTU7RDI1NTsxMTEwIDExNkYgMTFCNDtEMjU1OzExMTAgMTE2RiAxMUI0OworRDI1NjtEMjU2OzExMTAgMTE2RiAxMUI1O0QyNTY7MTExMCAxMTZGIDExQjU7CitEMjU3O0QyNTc7MTExMCAxMTZGIDExQjY7RDI1NzsxMTEwIDExNkYgMTFCNjsKK0QyNTg7RDI1ODsxMTEwIDExNkYgMTFCNztEMjU4OzExMTAgMTE2RiAxMUI3OworRDI1OTtEMjU5OzExMTAgMTE2RiAxMUI4O0QyNTk7MTExMCAxMTZGIDExQjg7CitEMjVBO0QyNUE7MTExMCAxMTZGIDExQjk7RDI1QTsxMTEwIDExNkYgMTFCOTsKK0QyNUI7RDI1QjsxMTEwIDExNkYgMTFCQTtEMjVCOzExMTAgMTE2RiAxMUJBOworRDI1QztEMjVDOzExMTAgMTE2RiAxMUJCO0QyNUM7MTExMCAxMTZGIDExQkI7CitEMjVEO0QyNUQ7MTExMCAxMTZGIDExQkM7RDI1RDsxMTEwIDExNkYgMTFCQzsKK0QyNUU7RDI1RTsxMTEwIDExNkYgMTFCRDtEMjVFOzExMTAgMTE2RiAxMUJEOworRDI1RjtEMjVGOzExMTAgMTE2RiAxMUJFO0QyNUY7MTExMCAxMTZGIDExQkU7CitEMjYwO0QyNjA7MTExMCAxMTZGIDExQkY7RDI2MDsxMTEwIDExNkYgMTFCRjsKK0QyNjE7RDI2MTsxMTEwIDExNkYgMTFDMDtEMjYxOzExMTAgMTE2RiAxMUMwOworRDI2MjtEMjYyOzExMTAgMTE2RiAxMUMxO0QyNjI7MTExMCAxMTZGIDExQzE7CitEMjYzO0QyNjM7MTExMCAxMTZGIDExQzI7RDI2MzsxMTEwIDExNkYgMTFDMjsKK0QyNjQ7RDI2NDsxMTEwIDExNzA7RDI2NDsxMTEwIDExNzA7CitEMjY1O0QyNjU7MTExMCAxMTcwIDExQTg7RDI2NTsxMTEwIDExNzAgMTFBODsKK0QyNjY7RDI2NjsxMTEwIDExNzAgMTFBOTtEMjY2OzExMTAgMTE3MCAxMUE5OworRDI2NztEMjY3OzExMTAgMTE3MCAxMUFBO0QyNjc7MTExMCAxMTcwIDExQUE7CitEMjY4O0QyNjg7MTExMCAxMTcwIDExQUI7RDI2ODsxMTEwIDExNzAgMTFBQjsKK0QyNjk7RDI2OTsxMTEwIDExNzAgMTFBQztEMjY5OzExMTAgMTE3MCAxMUFDOworRDI2QTtEMjZBOzExMTAgMTE3MCAxMUFEO0QyNkE7MTExMCAxMTcwIDExQUQ7CitEMjZCO0QyNkI7MTExMCAxMTcwIDExQUU7RDI2QjsxMTEwIDExNzAgMTFBRTsKK0QyNkM7RDI2QzsxMTEwIDExNzAgMTFBRjtEMjZDOzExMTAgMTE3MCAxMUFGOworRDI2RDtEMjZEOzExMTAgMTE3MCAxMUIwO0QyNkQ7MTExMCAxMTcwIDExQjA7CitEMjZFO0QyNkU7MTExMCAxMTcwIDExQjE7RDI2RTsxMTEwIDExNzAgMTFCMTsKK0QyNkY7RDI2RjsxMTEwIDExNzAgMTFCMjtEMjZGOzExMTAgMTE3MCAxMUIyOworRDI3MDtEMjcwOzExMTAgMTE3MCAxMUIzO0QyNzA7MTExMCAxMTcwIDExQjM7CitEMjcxO0QyNzE7MTExMCAxMTcwIDExQjQ7RDI3MTsxMTEwIDExNzAgMTFCNDsKK0QyNzI7RDI3MjsxMTEwIDExNzAgMTFCNTtEMjcyOzExMTAgMTE3MCAxMUI1OworRDI3MztEMjczOzExMTAgMTE3MCAxMUI2O0QyNzM7MTExMCAxMTcwIDExQjY7CitEMjc0O0QyNzQ7MTExMCAxMTcwIDExQjc7RDI3NDsxMTEwIDExNzAgMTFCNzsKK0QyNzU7RDI3NTsxMTEwIDExNzAgMTFCODtEMjc1OzExMTAgMTE3MCAxMUI4OworRDI3NjtEMjc2OzExMTAgMTE3MCAxMUI5O0QyNzY7MTExMCAxMTcwIDExQjk7CitEMjc3O0QyNzc7MTExMCAxMTcwIDExQkE7RDI3NzsxMTEwIDExNzAgMTFCQTsKK0QyNzg7RDI3ODsxMTEwIDExNzAgMTFCQjtEMjc4OzExMTAgMTE3MCAxMUJCOworRDI3OTtEMjc5OzExMTAgMTE3MCAxMUJDO0QyNzk7MTExMCAxMTcwIDExQkM7CitEMjdBO0QyN0E7MTExMCAxMTcwIDExQkQ7RDI3QTsxMTEwIDExNzAgMTFCRDsKK0QyN0I7RDI3QjsxMTEwIDExNzAgMTFCRTtEMjdCOzExMTAgMTE3MCAxMUJFOworRDI3QztEMjdDOzExMTAgMTE3MCAxMUJGO0QyN0M7MTExMCAxMTcwIDExQkY7CitEMjdEO0QyN0Q7MTExMCAxMTcwIDExQzA7RDI3RDsxMTEwIDExNzAgMTFDMDsKK0QyN0U7RDI3RTsxMTEwIDExNzAgMTFDMTtEMjdFOzExMTAgMTE3MCAxMUMxOworRDI3RjtEMjdGOzExMTAgMTE3MCAxMUMyO0QyN0Y7MTExMCAxMTcwIDExQzI7CitEMjgwO0QyODA7MTExMCAxMTcxO0QyODA7MTExMCAxMTcxOworRDI4MTtEMjgxOzExMTAgMTE3MSAxMUE4O0QyODE7MTExMCAxMTcxIDExQTg7CitEMjgyO0QyODI7MTExMCAxMTcxIDExQTk7RDI4MjsxMTEwIDExNzEgMTFBOTsKK0QyODM7RDI4MzsxMTEwIDExNzEgMTFBQTtEMjgzOzExMTAgMTE3MSAxMUFBOworRDI4NDtEMjg0OzExMTAgMTE3MSAxMUFCO0QyODQ7MTExMCAxMTcxIDExQUI7CitEMjg1O0QyODU7MTExMCAxMTcxIDExQUM7RDI4NTsxMTEwIDExNzEgMTFBQzsKK0QyODY7RDI4NjsxMTEwIDExNzEgMTFBRDtEMjg2OzExMTAgMTE3MSAxMUFEOworRDI4NztEMjg3OzExMTAgMTE3MSAxMUFFO0QyODc7MTExMCAxMTcxIDExQUU7CitEMjg4O0QyODg7MTExMCAxMTcxIDExQUY7RDI4ODsxMTEwIDExNzEgMTFBRjsKK0QyODk7RDI4OTsxMTEwIDExNzEgMTFCMDtEMjg5OzExMTAgMTE3MSAxMUIwOworRDI4QTtEMjhBOzExMTAgMTE3MSAxMUIxO0QyOEE7MTExMCAxMTcxIDExQjE7CitEMjhCO0QyOEI7MTExMCAxMTcxIDExQjI7RDI4QjsxMTEwIDExNzEgMTFCMjsKK0QyOEM7RDI4QzsxMTEwIDExNzEgMTFCMztEMjhDOzExMTAgMTE3MSAxMUIzOworRDI4RDtEMjhEOzExMTAgMTE3MSAxMUI0O0QyOEQ7MTExMCAxMTcxIDExQjQ7CitEMjhFO0QyOEU7MTExMCAxMTcxIDExQjU7RDI4RTsxMTEwIDExNzEgMTFCNTsKK0QyOEY7RDI4RjsxMTEwIDExNzEgMTFCNjtEMjhGOzExMTAgMTE3MSAxMUI2OworRDI5MDtEMjkwOzExMTAgMTE3MSAxMUI3O0QyOTA7MTExMCAxMTcxIDExQjc7CitEMjkxO0QyOTE7MTExMCAxMTcxIDExQjg7RDI5MTsxMTEwIDExNzEgMTFCODsKK0QyOTI7RDI5MjsxMTEwIDExNzEgMTFCOTtEMjkyOzExMTAgMTE3MSAxMUI5OworRDI5MztEMjkzOzExMTAgMTE3MSAxMUJBO0QyOTM7MTExMCAxMTcxIDExQkE7CitEMjk0O0QyOTQ7MTExMCAxMTcxIDExQkI7RDI5NDsxMTEwIDExNzEgMTFCQjsKK0QyOTU7RDI5NTsxMTEwIDExNzEgMTFCQztEMjk1OzExMTAgMTE3MSAxMUJDOworRDI5NjtEMjk2OzExMTAgMTE3MSAxMUJEO0QyOTY7MTExMCAxMTcxIDExQkQ7CitEMjk3O0QyOTc7MTExMCAxMTcxIDExQkU7RDI5NzsxMTEwIDExNzEgMTFCRTsKK0QyOTg7RDI5ODsxMTEwIDExNzEgMTFCRjtEMjk4OzExMTAgMTE3MSAxMUJGOworRDI5OTtEMjk5OzExMTAgMTE3MSAxMUMwO0QyOTk7MTExMCAxMTcxIDExQzA7CitEMjlBO0QyOUE7MTExMCAxMTcxIDExQzE7RDI5QTsxMTEwIDExNzEgMTFDMTsKK0QyOUI7RDI5QjsxMTEwIDExNzEgMTFDMjtEMjlCOzExMTAgMTE3MSAxMUMyOworRDI5QztEMjlDOzExMTAgMTE3MjtEMjlDOzExMTAgMTE3MjsKK0QyOUQ7RDI5RDsxMTEwIDExNzIgMTFBODtEMjlEOzExMTAgMTE3MiAxMUE4OworRDI5RTtEMjlFOzExMTAgMTE3MiAxMUE5O0QyOUU7MTExMCAxMTcyIDExQTk7CitEMjlGO0QyOUY7MTExMCAxMTcyIDExQUE7RDI5RjsxMTEwIDExNzIgMTFBQTsKK0QyQTA7RDJBMDsxMTEwIDExNzIgMTFBQjtEMkEwOzExMTAgMTE3MiAxMUFCOworRDJBMTtEMkExOzExMTAgMTE3MiAxMUFDO0QyQTE7MTExMCAxMTcyIDExQUM7CitEMkEyO0QyQTI7MTExMCAxMTcyIDExQUQ7RDJBMjsxMTEwIDExNzIgMTFBRDsKK0QyQTM7RDJBMzsxMTEwIDExNzIgMTFBRTtEMkEzOzExMTAgMTE3MiAxMUFFOworRDJBNDtEMkE0OzExMTAgMTE3MiAxMUFGO0QyQTQ7MTExMCAxMTcyIDExQUY7CitEMkE1O0QyQTU7MTExMCAxMTcyIDExQjA7RDJBNTsxMTEwIDExNzIgMTFCMDsKK0QyQTY7RDJBNjsxMTEwIDExNzIgMTFCMTtEMkE2OzExMTAgMTE3MiAxMUIxOworRDJBNztEMkE3OzExMTAgMTE3MiAxMUIyO0QyQTc7MTExMCAxMTcyIDExQjI7CitEMkE4O0QyQTg7MTExMCAxMTcyIDExQjM7RDJBODsxMTEwIDExNzIgMTFCMzsKK0QyQTk7RDJBOTsxMTEwIDExNzIgMTFCNDtEMkE5OzExMTAgMTE3MiAxMUI0OworRDJBQTtEMkFBOzExMTAgMTE3MiAxMUI1O0QyQUE7MTExMCAxMTcyIDExQjU7CitEMkFCO0QyQUI7MTExMCAxMTcyIDExQjY7RDJBQjsxMTEwIDExNzIgMTFCNjsKK0QyQUM7RDJBQzsxMTEwIDExNzIgMTFCNztEMkFDOzExMTAgMTE3MiAxMUI3OworRDJBRDtEMkFEOzExMTAgMTE3MiAxMUI4O0QyQUQ7MTExMCAxMTcyIDExQjg7CitEMkFFO0QyQUU7MTExMCAxMTcyIDExQjk7RDJBRTsxMTEwIDExNzIgMTFCOTsKK0QyQUY7RDJBRjsxMTEwIDExNzIgMTFCQTtEMkFGOzExMTAgMTE3MiAxMUJBOworRDJCMDtEMkIwOzExMTAgMTE3MiAxMUJCO0QyQjA7MTExMCAxMTcyIDExQkI7CitEMkIxO0QyQjE7MTExMCAxMTcyIDExQkM7RDJCMTsxMTEwIDExNzIgMTFCQzsKK0QyQjI7RDJCMjsxMTEwIDExNzIgMTFCRDtEMkIyOzExMTAgMTE3MiAxMUJEOworRDJCMztEMkIzOzExMTAgMTE3MiAxMUJFO0QyQjM7MTExMCAxMTcyIDExQkU7CitEMkI0O0QyQjQ7MTExMCAxMTcyIDExQkY7RDJCNDsxMTEwIDExNzIgMTFCRjsKK0QyQjU7RDJCNTsxMTEwIDExNzIgMTFDMDtEMkI1OzExMTAgMTE3MiAxMUMwOworRDJCNjtEMkI2OzExMTAgMTE3MiAxMUMxO0QyQjY7MTExMCAxMTcyIDExQzE7CitEMkI3O0QyQjc7MTExMCAxMTcyIDExQzI7RDJCNzsxMTEwIDExNzIgMTFDMjsKK0QyQjg7RDJCODsxMTEwIDExNzM7RDJCODsxMTEwIDExNzM7CitEMkI5O0QyQjk7MTExMCAxMTczIDExQTg7RDJCOTsxMTEwIDExNzMgMTFBODsKK0QyQkE7RDJCQTsxMTEwIDExNzMgMTFBOTtEMkJBOzExMTAgMTE3MyAxMUE5OworRDJCQjtEMkJCOzExMTAgMTE3MyAxMUFBO0QyQkI7MTExMCAxMTczIDExQUE7CitEMkJDO0QyQkM7MTExMCAxMTczIDExQUI7RDJCQzsxMTEwIDExNzMgMTFBQjsKK0QyQkQ7RDJCRDsxMTEwIDExNzMgMTFBQztEMkJEOzExMTAgMTE3MyAxMUFDOworRDJCRTtEMkJFOzExMTAgMTE3MyAxMUFEO0QyQkU7MTExMCAxMTczIDExQUQ7CitEMkJGO0QyQkY7MTExMCAxMTczIDExQUU7RDJCRjsxMTEwIDExNzMgMTFBRTsKK0QyQzA7RDJDMDsxMTEwIDExNzMgMTFBRjtEMkMwOzExMTAgMTE3MyAxMUFGOworRDJDMTtEMkMxOzExMTAgMTE3MyAxMUIwO0QyQzE7MTExMCAxMTczIDExQjA7CitEMkMyO0QyQzI7MTExMCAxMTczIDExQjE7RDJDMjsxMTEwIDExNzMgMTFCMTsKK0QyQzM7RDJDMzsxMTEwIDExNzMgMTFCMjtEMkMzOzExMTAgMTE3MyAxMUIyOworRDJDNDtEMkM0OzExMTAgMTE3MyAxMUIzO0QyQzQ7MTExMCAxMTczIDExQjM7CitEMkM1O0QyQzU7MTExMCAxMTczIDExQjQ7RDJDNTsxMTEwIDExNzMgMTFCNDsKK0QyQzY7RDJDNjsxMTEwIDExNzMgMTFCNTtEMkM2OzExMTAgMTE3MyAxMUI1OworRDJDNztEMkM3OzExMTAgMTE3MyAxMUI2O0QyQzc7MTExMCAxMTczIDExQjY7CitEMkM4O0QyQzg7MTExMCAxMTczIDExQjc7RDJDODsxMTEwIDExNzMgMTFCNzsKK0QyQzk7RDJDOTsxMTEwIDExNzMgMTFCODtEMkM5OzExMTAgMTE3MyAxMUI4OworRDJDQTtEMkNBOzExMTAgMTE3MyAxMUI5O0QyQ0E7MTExMCAxMTczIDExQjk7CitEMkNCO0QyQ0I7MTExMCAxMTczIDExQkE7RDJDQjsxMTEwIDExNzMgMTFCQTsKK0QyQ0M7RDJDQzsxMTEwIDExNzMgMTFCQjtEMkNDOzExMTAgMTE3MyAxMUJCOworRDJDRDtEMkNEOzExMTAgMTE3MyAxMUJDO0QyQ0Q7MTExMCAxMTczIDExQkM7CitEMkNFO0QyQ0U7MTExMCAxMTczIDExQkQ7RDJDRTsxMTEwIDExNzMgMTFCRDsKK0QyQ0Y7RDJDRjsxMTEwIDExNzMgMTFCRTtEMkNGOzExMTAgMTE3MyAxMUJFOworRDJEMDtEMkQwOzExMTAgMTE3MyAxMUJGO0QyRDA7MTExMCAxMTczIDExQkY7CitEMkQxO0QyRDE7MTExMCAxMTczIDExQzA7RDJEMTsxMTEwIDExNzMgMTFDMDsKK0QyRDI7RDJEMjsxMTEwIDExNzMgMTFDMTtEMkQyOzExMTAgMTE3MyAxMUMxOworRDJEMztEMkQzOzExMTAgMTE3MyAxMUMyO0QyRDM7MTExMCAxMTczIDExQzI7CitEMkQ0O0QyRDQ7MTExMCAxMTc0O0QyRDQ7MTExMCAxMTc0OworRDJENTtEMkQ1OzExMTAgMTE3NCAxMUE4O0QyRDU7MTExMCAxMTc0IDExQTg7CitEMkQ2O0QyRDY7MTExMCAxMTc0IDExQTk7RDJENjsxMTEwIDExNzQgMTFBOTsKK0QyRDc7RDJENzsxMTEwIDExNzQgMTFBQTtEMkQ3OzExMTAgMTE3NCAxMUFBOworRDJEODtEMkQ4OzExMTAgMTE3NCAxMUFCO0QyRDg7MTExMCAxMTc0IDExQUI7CitEMkQ5O0QyRDk7MTExMCAxMTc0IDExQUM7RDJEOTsxMTEwIDExNzQgMTFBQzsKK0QyREE7RDJEQTsxMTEwIDExNzQgMTFBRDtEMkRBOzExMTAgMTE3NCAxMUFEOworRDJEQjtEMkRCOzExMTAgMTE3NCAxMUFFO0QyREI7MTExMCAxMTc0IDExQUU7CitEMkRDO0QyREM7MTExMCAxMTc0IDExQUY7RDJEQzsxMTEwIDExNzQgMTFBRjsKK0QyREQ7RDJERDsxMTEwIDExNzQgMTFCMDtEMkREOzExMTAgMTE3NCAxMUIwOworRDJERTtEMkRFOzExMTAgMTE3NCAxMUIxO0QyREU7MTExMCAxMTc0IDExQjE7CitEMkRGO0QyREY7MTExMCAxMTc0IDExQjI7RDJERjsxMTEwIDExNzQgMTFCMjsKK0QyRTA7RDJFMDsxMTEwIDExNzQgMTFCMztEMkUwOzExMTAgMTE3NCAxMUIzOworRDJFMTtEMkUxOzExMTAgMTE3NCAxMUI0O0QyRTE7MTExMCAxMTc0IDExQjQ7CitEMkUyO0QyRTI7MTExMCAxMTc0IDExQjU7RDJFMjsxMTEwIDExNzQgMTFCNTsKK0QyRTM7RDJFMzsxMTEwIDExNzQgMTFCNjtEMkUzOzExMTAgMTE3NCAxMUI2OworRDJFNDtEMkU0OzExMTAgMTE3NCAxMUI3O0QyRTQ7MTExMCAxMTc0IDExQjc7CitEMkU1O0QyRTU7MTExMCAxMTc0IDExQjg7RDJFNTsxMTEwIDExNzQgMTFCODsKK0QyRTY7RDJFNjsxMTEwIDExNzQgMTFCOTtEMkU2OzExMTAgMTE3NCAxMUI5OworRDJFNztEMkU3OzExMTAgMTE3NCAxMUJBO0QyRTc7MTExMCAxMTc0IDExQkE7CitEMkU4O0QyRTg7MTExMCAxMTc0IDExQkI7RDJFODsxMTEwIDExNzQgMTFCQjsKK0QyRTk7RDJFOTsxMTEwIDExNzQgMTFCQztEMkU5OzExMTAgMTE3NCAxMUJDOworRDJFQTtEMkVBOzExMTAgMTE3NCAxMUJEO0QyRUE7MTExMCAxMTc0IDExQkQ7CitEMkVCO0QyRUI7MTExMCAxMTc0IDExQkU7RDJFQjsxMTEwIDExNzQgMTFCRTsKK0QyRUM7RDJFQzsxMTEwIDExNzQgMTFCRjtEMkVDOzExMTAgMTE3NCAxMUJGOworRDJFRDtEMkVEOzExMTAgMTE3NCAxMUMwO0QyRUQ7MTExMCAxMTc0IDExQzA7CitEMkVFO0QyRUU7MTExMCAxMTc0IDExQzE7RDJFRTsxMTEwIDExNzQgMTFDMTsKK0QyRUY7RDJFRjsxMTEwIDExNzQgMTFDMjtEMkVGOzExMTAgMTE3NCAxMUMyOworRDJGMDtEMkYwOzExMTAgMTE3NTtEMkYwOzExMTAgMTE3NTsKK0QyRjE7RDJGMTsxMTEwIDExNzUgMTFBODtEMkYxOzExMTAgMTE3NSAxMUE4OworRDJGMjtEMkYyOzExMTAgMTE3NSAxMUE5O0QyRjI7MTExMCAxMTc1IDExQTk7CitEMkYzO0QyRjM7MTExMCAxMTc1IDExQUE7RDJGMzsxMTEwIDExNzUgMTFBQTsKK0QyRjQ7RDJGNDsxMTEwIDExNzUgMTFBQjtEMkY0OzExMTAgMTE3NSAxMUFCOworRDJGNTtEMkY1OzExMTAgMTE3NSAxMUFDO0QyRjU7MTExMCAxMTc1IDExQUM7CitEMkY2O0QyRjY7MTExMCAxMTc1IDExQUQ7RDJGNjsxMTEwIDExNzUgMTFBRDsKK0QyRjc7RDJGNzsxMTEwIDExNzUgMTFBRTtEMkY3OzExMTAgMTE3NSAxMUFFOworRDJGODtEMkY4OzExMTAgMTE3NSAxMUFGO0QyRjg7MTExMCAxMTc1IDExQUY7CitEMkY5O0QyRjk7MTExMCAxMTc1IDExQjA7RDJGOTsxMTEwIDExNzUgMTFCMDsKK0QyRkE7RDJGQTsxMTEwIDExNzUgMTFCMTtEMkZBOzExMTAgMTE3NSAxMUIxOworRDJGQjtEMkZCOzExMTAgMTE3NSAxMUIyO0QyRkI7MTExMCAxMTc1IDExQjI7CitEMkZDO0QyRkM7MTExMCAxMTc1IDExQjM7RDJGQzsxMTEwIDExNzUgMTFCMzsKK0QyRkQ7RDJGRDsxMTEwIDExNzUgMTFCNDtEMkZEOzExMTAgMTE3NSAxMUI0OworRDJGRTtEMkZFOzExMTAgMTE3NSAxMUI1O0QyRkU7MTExMCAxMTc1IDExQjU7CitEMkZGO0QyRkY7MTExMCAxMTc1IDExQjY7RDJGRjsxMTEwIDExNzUgMTFCNjsKK0QzMDA7RDMwMDsxMTEwIDExNzUgMTFCNztEMzAwOzExMTAgMTE3NSAxMUI3OworRDMwMTtEMzAxOzExMTAgMTE3NSAxMUI4O0QzMDE7MTExMCAxMTc1IDExQjg7CitEMzAyO0QzMDI7MTExMCAxMTc1IDExQjk7RDMwMjsxMTEwIDExNzUgMTFCOTsKK0QzMDM7RDMwMzsxMTEwIDExNzUgMTFCQTtEMzAzOzExMTAgMTE3NSAxMUJBOworRDMwNDtEMzA0OzExMTAgMTE3NSAxMUJCO0QzMDQ7MTExMCAxMTc1IDExQkI7CitEMzA1O0QzMDU7MTExMCAxMTc1IDExQkM7RDMwNTsxMTEwIDExNzUgMTFCQzsKK0QzMDY7RDMwNjsxMTEwIDExNzUgMTFCRDtEMzA2OzExMTAgMTE3NSAxMUJEOworRDMwNztEMzA3OzExMTAgMTE3NSAxMUJFO0QzMDc7MTExMCAxMTc1IDExQkU7CitEMzA4O0QzMDg7MTExMCAxMTc1IDExQkY7RDMwODsxMTEwIDExNzUgMTFCRjsKK0QzMDk7RDMwOTsxMTEwIDExNzUgMTFDMDtEMzA5OzExMTAgMTE3NSAxMUMwOworRDMwQTtEMzBBOzExMTAgMTE3NSAxMUMxO0QzMEE7MTExMCAxMTc1IDExQzE7CitEMzBCO0QzMEI7MTExMCAxMTc1IDExQzI7RDMwQjsxMTEwIDExNzUgMTFDMjsKK0QzMEM7RDMwQzsxMTExIDExNjE7RDMwQzsxMTExIDExNjE7CitEMzBEO0QzMEQ7MTExMSAxMTYxIDExQTg7RDMwRDsxMTExIDExNjEgMTFBODsKK0QzMEU7RDMwRTsxMTExIDExNjEgMTFBOTtEMzBFOzExMTEgMTE2MSAxMUE5OworRDMwRjtEMzBGOzExMTEgMTE2MSAxMUFBO0QzMEY7MTExMSAxMTYxIDExQUE7CitEMzEwO0QzMTA7MTExMSAxMTYxIDExQUI7RDMxMDsxMTExIDExNjEgMTFBQjsKK0QzMTE7RDMxMTsxMTExIDExNjEgMTFBQztEMzExOzExMTEgMTE2MSAxMUFDOworRDMxMjtEMzEyOzExMTEgMTE2MSAxMUFEO0QzMTI7MTExMSAxMTYxIDExQUQ7CitEMzEzO0QzMTM7MTExMSAxMTYxIDExQUU7RDMxMzsxMTExIDExNjEgMTFBRTsKK0QzMTQ7RDMxNDsxMTExIDExNjEgMTFBRjtEMzE0OzExMTEgMTE2MSAxMUFGOworRDMxNTtEMzE1OzExMTEgMTE2MSAxMUIwO0QzMTU7MTExMSAxMTYxIDExQjA7CitEMzE2O0QzMTY7MTExMSAxMTYxIDExQjE7RDMxNjsxMTExIDExNjEgMTFCMTsKK0QzMTc7RDMxNzsxMTExIDExNjEgMTFCMjtEMzE3OzExMTEgMTE2MSAxMUIyOworRDMxODtEMzE4OzExMTEgMTE2MSAxMUIzO0QzMTg7MTExMSAxMTYxIDExQjM7CitEMzE5O0QzMTk7MTExMSAxMTYxIDExQjQ7RDMxOTsxMTExIDExNjEgMTFCNDsKK0QzMUE7RDMxQTsxMTExIDExNjEgMTFCNTtEMzFBOzExMTEgMTE2MSAxMUI1OworRDMxQjtEMzFCOzExMTEgMTE2MSAxMUI2O0QzMUI7MTExMSAxMTYxIDExQjY7CitEMzFDO0QzMUM7MTExMSAxMTYxIDExQjc7RDMxQzsxMTExIDExNjEgMTFCNzsKK0QzMUQ7RDMxRDsxMTExIDExNjEgMTFCODtEMzFEOzExMTEgMTE2MSAxMUI4OworRDMxRTtEMzFFOzExMTEgMTE2MSAxMUI5O0QzMUU7MTExMSAxMTYxIDExQjk7CitEMzFGO0QzMUY7MTExMSAxMTYxIDExQkE7RDMxRjsxMTExIDExNjEgMTFCQTsKK0QzMjA7RDMyMDsxMTExIDExNjEgMTFCQjtEMzIwOzExMTEgMTE2MSAxMUJCOworRDMyMTtEMzIxOzExMTEgMTE2MSAxMUJDO0QzMjE7MTExMSAxMTYxIDExQkM7CitEMzIyO0QzMjI7MTExMSAxMTYxIDExQkQ7RDMyMjsxMTExIDExNjEgMTFCRDsKK0QzMjM7RDMyMzsxMTExIDExNjEgMTFCRTtEMzIzOzExMTEgMTE2MSAxMUJFOworRDMyNDtEMzI0OzExMTEgMTE2MSAxMUJGO0QzMjQ7MTExMSAxMTYxIDExQkY7CitEMzI1O0QzMjU7MTExMSAxMTYxIDExQzA7RDMyNTsxMTExIDExNjEgMTFDMDsKK0QzMjY7RDMyNjsxMTExIDExNjEgMTFDMTtEMzI2OzExMTEgMTE2MSAxMUMxOworRDMyNztEMzI3OzExMTEgMTE2MSAxMUMyO0QzMjc7MTExMSAxMTYxIDExQzI7CitEMzI4O0QzMjg7MTExMSAxMTYyO0QzMjg7MTExMSAxMTYyOworRDMyOTtEMzI5OzExMTEgMTE2MiAxMUE4O0QzMjk7MTExMSAxMTYyIDExQTg7CitEMzJBO0QzMkE7MTExMSAxMTYyIDExQTk7RDMyQTsxMTExIDExNjIgMTFBOTsKK0QzMkI7RDMyQjsxMTExIDExNjIgMTFBQTtEMzJCOzExMTEgMTE2MiAxMUFBOworRDMyQztEMzJDOzExMTEgMTE2MiAxMUFCO0QzMkM7MTExMSAxMTYyIDExQUI7CitEMzJEO0QzMkQ7MTExMSAxMTYyIDExQUM7RDMyRDsxMTExIDExNjIgMTFBQzsKK0QzMkU7RDMyRTsxMTExIDExNjIgMTFBRDtEMzJFOzExMTEgMTE2MiAxMUFEOworRDMyRjtEMzJGOzExMTEgMTE2MiAxMUFFO0QzMkY7MTExMSAxMTYyIDExQUU7CitEMzMwO0QzMzA7MTExMSAxMTYyIDExQUY7RDMzMDsxMTExIDExNjIgMTFBRjsKK0QzMzE7RDMzMTsxMTExIDExNjIgMTFCMDtEMzMxOzExMTEgMTE2MiAxMUIwOworRDMzMjtEMzMyOzExMTEgMTE2MiAxMUIxO0QzMzI7MTExMSAxMTYyIDExQjE7CitEMzMzO0QzMzM7MTExMSAxMTYyIDExQjI7RDMzMzsxMTExIDExNjIgMTFCMjsKK0QzMzQ7RDMzNDsxMTExIDExNjIgMTFCMztEMzM0OzExMTEgMTE2MiAxMUIzOworRDMzNTtEMzM1OzExMTEgMTE2MiAxMUI0O0QzMzU7MTExMSAxMTYyIDExQjQ7CitEMzM2O0QzMzY7MTExMSAxMTYyIDExQjU7RDMzNjsxMTExIDExNjIgMTFCNTsKK0QzMzc7RDMzNzsxMTExIDExNjIgMTFCNjtEMzM3OzExMTEgMTE2MiAxMUI2OworRDMzODtEMzM4OzExMTEgMTE2MiAxMUI3O0QzMzg7MTExMSAxMTYyIDExQjc7CitEMzM5O0QzMzk7MTExMSAxMTYyIDExQjg7RDMzOTsxMTExIDExNjIgMTFCODsKK0QzM0E7RDMzQTsxMTExIDExNjIgMTFCOTtEMzNBOzExMTEgMTE2MiAxMUI5OworRDMzQjtEMzNCOzExMTEgMTE2MiAxMUJBO0QzM0I7MTExMSAxMTYyIDExQkE7CitEMzNDO0QzM0M7MTExMSAxMTYyIDExQkI7RDMzQzsxMTExIDExNjIgMTFCQjsKK0QzM0Q7RDMzRDsxMTExIDExNjIgMTFCQztEMzNEOzExMTEgMTE2MiAxMUJDOworRDMzRTtEMzNFOzExMTEgMTE2MiAxMUJEO0QzM0U7MTExMSAxMTYyIDExQkQ7CitEMzNGO0QzM0Y7MTExMSAxMTYyIDExQkU7RDMzRjsxMTExIDExNjIgMTFCRTsKK0QzNDA7RDM0MDsxMTExIDExNjIgMTFCRjtEMzQwOzExMTEgMTE2MiAxMUJGOworRDM0MTtEMzQxOzExMTEgMTE2MiAxMUMwO0QzNDE7MTExMSAxMTYyIDExQzA7CitEMzQyO0QzNDI7MTExMSAxMTYyIDExQzE7RDM0MjsxMTExIDExNjIgMTFDMTsKK0QzNDM7RDM0MzsxMTExIDExNjIgMTFDMjtEMzQzOzExMTEgMTE2MiAxMUMyOworRDM0NDtEMzQ0OzExMTEgMTE2MztEMzQ0OzExMTEgMTE2MzsKK0QzNDU7RDM0NTsxMTExIDExNjMgMTFBODtEMzQ1OzExMTEgMTE2MyAxMUE4OworRDM0NjtEMzQ2OzExMTEgMTE2MyAxMUE5O0QzNDY7MTExMSAxMTYzIDExQTk7CitEMzQ3O0QzNDc7MTExMSAxMTYzIDExQUE7RDM0NzsxMTExIDExNjMgMTFBQTsKK0QzNDg7RDM0ODsxMTExIDExNjMgMTFBQjtEMzQ4OzExMTEgMTE2MyAxMUFCOworRDM0OTtEMzQ5OzExMTEgMTE2MyAxMUFDO0QzNDk7MTExMSAxMTYzIDExQUM7CitEMzRBO0QzNEE7MTExMSAxMTYzIDExQUQ7RDM0QTsxMTExIDExNjMgMTFBRDsKK0QzNEI7RDM0QjsxMTExIDExNjMgMTFBRTtEMzRCOzExMTEgMTE2MyAxMUFFOworRDM0QztEMzRDOzExMTEgMTE2MyAxMUFGO0QzNEM7MTExMSAxMTYzIDExQUY7CitEMzREO0QzNEQ7MTExMSAxMTYzIDExQjA7RDM0RDsxMTExIDExNjMgMTFCMDsKK0QzNEU7RDM0RTsxMTExIDExNjMgMTFCMTtEMzRFOzExMTEgMTE2MyAxMUIxOworRDM0RjtEMzRGOzExMTEgMTE2MyAxMUIyO0QzNEY7MTExMSAxMTYzIDExQjI7CitEMzUwO0QzNTA7MTExMSAxMTYzIDExQjM7RDM1MDsxMTExIDExNjMgMTFCMzsKK0QzNTE7RDM1MTsxMTExIDExNjMgMTFCNDtEMzUxOzExMTEgMTE2MyAxMUI0OworRDM1MjtEMzUyOzExMTEgMTE2MyAxMUI1O0QzNTI7MTExMSAxMTYzIDExQjU7CitEMzUzO0QzNTM7MTExMSAxMTYzIDExQjY7RDM1MzsxMTExIDExNjMgMTFCNjsKK0QzNTQ7RDM1NDsxMTExIDExNjMgMTFCNztEMzU0OzExMTEgMTE2MyAxMUI3OworRDM1NTtEMzU1OzExMTEgMTE2MyAxMUI4O0QzNTU7MTExMSAxMTYzIDExQjg7CitEMzU2O0QzNTY7MTExMSAxMTYzIDExQjk7RDM1NjsxMTExIDExNjMgMTFCOTsKK0QzNTc7RDM1NzsxMTExIDExNjMgMTFCQTtEMzU3OzExMTEgMTE2MyAxMUJBOworRDM1ODtEMzU4OzExMTEgMTE2MyAxMUJCO0QzNTg7MTExMSAxMTYzIDExQkI7CitEMzU5O0QzNTk7MTExMSAxMTYzIDExQkM7RDM1OTsxMTExIDExNjMgMTFCQzsKK0QzNUE7RDM1QTsxMTExIDExNjMgMTFCRDtEMzVBOzExMTEgMTE2MyAxMUJEOworRDM1QjtEMzVCOzExMTEgMTE2MyAxMUJFO0QzNUI7MTExMSAxMTYzIDExQkU7CitEMzVDO0QzNUM7MTExMSAxMTYzIDExQkY7RDM1QzsxMTExIDExNjMgMTFCRjsKK0QzNUQ7RDM1RDsxMTExIDExNjMgMTFDMDtEMzVEOzExMTEgMTE2MyAxMUMwOworRDM1RTtEMzVFOzExMTEgMTE2MyAxMUMxO0QzNUU7MTExMSAxMTYzIDExQzE7CitEMzVGO0QzNUY7MTExMSAxMTYzIDExQzI7RDM1RjsxMTExIDExNjMgMTFDMjsKK0QzNjA7RDM2MDsxMTExIDExNjQ7RDM2MDsxMTExIDExNjQ7CitEMzYxO0QzNjE7MTExMSAxMTY0IDExQTg7RDM2MTsxMTExIDExNjQgMTFBODsKK0QzNjI7RDM2MjsxMTExIDExNjQgMTFBOTtEMzYyOzExMTEgMTE2NCAxMUE5OworRDM2MztEMzYzOzExMTEgMTE2NCAxMUFBO0QzNjM7MTExMSAxMTY0IDExQUE7CitEMzY0O0QzNjQ7MTExMSAxMTY0IDExQUI7RDM2NDsxMTExIDExNjQgMTFBQjsKK0QzNjU7RDM2NTsxMTExIDExNjQgMTFBQztEMzY1OzExMTEgMTE2NCAxMUFDOworRDM2NjtEMzY2OzExMTEgMTE2NCAxMUFEO0QzNjY7MTExMSAxMTY0IDExQUQ7CitEMzY3O0QzNjc7MTExMSAxMTY0IDExQUU7RDM2NzsxMTExIDExNjQgMTFBRTsKK0QzNjg7RDM2ODsxMTExIDExNjQgMTFBRjtEMzY4OzExMTEgMTE2NCAxMUFGOworRDM2OTtEMzY5OzExMTEgMTE2NCAxMUIwO0QzNjk7MTExMSAxMTY0IDExQjA7CitEMzZBO0QzNkE7MTExMSAxMTY0IDExQjE7RDM2QTsxMTExIDExNjQgMTFCMTsKK0QzNkI7RDM2QjsxMTExIDExNjQgMTFCMjtEMzZCOzExMTEgMTE2NCAxMUIyOworRDM2QztEMzZDOzExMTEgMTE2NCAxMUIzO0QzNkM7MTExMSAxMTY0IDExQjM7CitEMzZEO0QzNkQ7MTExMSAxMTY0IDExQjQ7RDM2RDsxMTExIDExNjQgMTFCNDsKK0QzNkU7RDM2RTsxMTExIDExNjQgMTFCNTtEMzZFOzExMTEgMTE2NCAxMUI1OworRDM2RjtEMzZGOzExMTEgMTE2NCAxMUI2O0QzNkY7MTExMSAxMTY0IDExQjY7CitEMzcwO0QzNzA7MTExMSAxMTY0IDExQjc7RDM3MDsxMTExIDExNjQgMTFCNzsKK0QzNzE7RDM3MTsxMTExIDExNjQgMTFCODtEMzcxOzExMTEgMTE2NCAxMUI4OworRDM3MjtEMzcyOzExMTEgMTE2NCAxMUI5O0QzNzI7MTExMSAxMTY0IDExQjk7CitEMzczO0QzNzM7MTExMSAxMTY0IDExQkE7RDM3MzsxMTExIDExNjQgMTFCQTsKK0QzNzQ7RDM3NDsxMTExIDExNjQgMTFCQjtEMzc0OzExMTEgMTE2NCAxMUJCOworRDM3NTtEMzc1OzExMTEgMTE2NCAxMUJDO0QzNzU7MTExMSAxMTY0IDExQkM7CitEMzc2O0QzNzY7MTExMSAxMTY0IDExQkQ7RDM3NjsxMTExIDExNjQgMTFCRDsKK0QzNzc7RDM3NzsxMTExIDExNjQgMTFCRTtEMzc3OzExMTEgMTE2NCAxMUJFOworRDM3ODtEMzc4OzExMTEgMTE2NCAxMUJGO0QzNzg7MTExMSAxMTY0IDExQkY7CitEMzc5O0QzNzk7MTExMSAxMTY0IDExQzA7RDM3OTsxMTExIDExNjQgMTFDMDsKK0QzN0E7RDM3QTsxMTExIDExNjQgMTFDMTtEMzdBOzExMTEgMTE2NCAxMUMxOworRDM3QjtEMzdCOzExMTEgMTE2NCAxMUMyO0QzN0I7MTExMSAxMTY0IDExQzI7CitEMzdDO0QzN0M7MTExMSAxMTY1O0QzN0M7MTExMSAxMTY1OworRDM3RDtEMzdEOzExMTEgMTE2NSAxMUE4O0QzN0Q7MTExMSAxMTY1IDExQTg7CitEMzdFO0QzN0U7MTExMSAxMTY1IDExQTk7RDM3RTsxMTExIDExNjUgMTFBOTsKK0QzN0Y7RDM3RjsxMTExIDExNjUgMTFBQTtEMzdGOzExMTEgMTE2NSAxMUFBOworRDM4MDtEMzgwOzExMTEgMTE2NSAxMUFCO0QzODA7MTExMSAxMTY1IDExQUI7CitEMzgxO0QzODE7MTExMSAxMTY1IDExQUM7RDM4MTsxMTExIDExNjUgMTFBQzsKK0QzODI7RDM4MjsxMTExIDExNjUgMTFBRDtEMzgyOzExMTEgMTE2NSAxMUFEOworRDM4MztEMzgzOzExMTEgMTE2NSAxMUFFO0QzODM7MTExMSAxMTY1IDExQUU7CitEMzg0O0QzODQ7MTExMSAxMTY1IDExQUY7RDM4NDsxMTExIDExNjUgMTFBRjsKK0QzODU7RDM4NTsxMTExIDExNjUgMTFCMDtEMzg1OzExMTEgMTE2NSAxMUIwOworRDM4NjtEMzg2OzExMTEgMTE2NSAxMUIxO0QzODY7MTExMSAxMTY1IDExQjE7CitEMzg3O0QzODc7MTExMSAxMTY1IDExQjI7RDM4NzsxMTExIDExNjUgMTFCMjsKK0QzODg7RDM4ODsxMTExIDExNjUgMTFCMztEMzg4OzExMTEgMTE2NSAxMUIzOworRDM4OTtEMzg5OzExMTEgMTE2NSAxMUI0O0QzODk7MTExMSAxMTY1IDExQjQ7CitEMzhBO0QzOEE7MTExMSAxMTY1IDExQjU7RDM4QTsxMTExIDExNjUgMTFCNTsKK0QzOEI7RDM4QjsxMTExIDExNjUgMTFCNjtEMzhCOzExMTEgMTE2NSAxMUI2OworRDM4QztEMzhDOzExMTEgMTE2NSAxMUI3O0QzOEM7MTExMSAxMTY1IDExQjc7CitEMzhEO0QzOEQ7MTExMSAxMTY1IDExQjg7RDM4RDsxMTExIDExNjUgMTFCODsKK0QzOEU7RDM4RTsxMTExIDExNjUgMTFCOTtEMzhFOzExMTEgMTE2NSAxMUI5OworRDM4RjtEMzhGOzExMTEgMTE2NSAxMUJBO0QzOEY7MTExMSAxMTY1IDExQkE7CitEMzkwO0QzOTA7MTExMSAxMTY1IDExQkI7RDM5MDsxMTExIDExNjUgMTFCQjsKK0QzOTE7RDM5MTsxMTExIDExNjUgMTFCQztEMzkxOzExMTEgMTE2NSAxMUJDOworRDM5MjtEMzkyOzExMTEgMTE2NSAxMUJEO0QzOTI7MTExMSAxMTY1IDExQkQ7CitEMzkzO0QzOTM7MTExMSAxMTY1IDExQkU7RDM5MzsxMTExIDExNjUgMTFCRTsKK0QzOTQ7RDM5NDsxMTExIDExNjUgMTFCRjtEMzk0OzExMTEgMTE2NSAxMUJGOworRDM5NTtEMzk1OzExMTEgMTE2NSAxMUMwO0QzOTU7MTExMSAxMTY1IDExQzA7CitEMzk2O0QzOTY7MTExMSAxMTY1IDExQzE7RDM5NjsxMTExIDExNjUgMTFDMTsKK0QzOTc7RDM5NzsxMTExIDExNjUgMTFDMjtEMzk3OzExMTEgMTE2NSAxMUMyOworRDM5ODtEMzk4OzExMTEgMTE2NjtEMzk4OzExMTEgMTE2NjsKK0QzOTk7RDM5OTsxMTExIDExNjYgMTFBODtEMzk5OzExMTEgMTE2NiAxMUE4OworRDM5QTtEMzlBOzExMTEgMTE2NiAxMUE5O0QzOUE7MTExMSAxMTY2IDExQTk7CitEMzlCO0QzOUI7MTExMSAxMTY2IDExQUE7RDM5QjsxMTExIDExNjYgMTFBQTsKK0QzOUM7RDM5QzsxMTExIDExNjYgMTFBQjtEMzlDOzExMTEgMTE2NiAxMUFCOworRDM5RDtEMzlEOzExMTEgMTE2NiAxMUFDO0QzOUQ7MTExMSAxMTY2IDExQUM7CitEMzlFO0QzOUU7MTExMSAxMTY2IDExQUQ7RDM5RTsxMTExIDExNjYgMTFBRDsKK0QzOUY7RDM5RjsxMTExIDExNjYgMTFBRTtEMzlGOzExMTEgMTE2NiAxMUFFOworRDNBMDtEM0EwOzExMTEgMTE2NiAxMUFGO0QzQTA7MTExMSAxMTY2IDExQUY7CitEM0ExO0QzQTE7MTExMSAxMTY2IDExQjA7RDNBMTsxMTExIDExNjYgMTFCMDsKK0QzQTI7RDNBMjsxMTExIDExNjYgMTFCMTtEM0EyOzExMTEgMTE2NiAxMUIxOworRDNBMztEM0EzOzExMTEgMTE2NiAxMUIyO0QzQTM7MTExMSAxMTY2IDExQjI7CitEM0E0O0QzQTQ7MTExMSAxMTY2IDExQjM7RDNBNDsxMTExIDExNjYgMTFCMzsKK0QzQTU7RDNBNTsxMTExIDExNjYgMTFCNDtEM0E1OzExMTEgMTE2NiAxMUI0OworRDNBNjtEM0E2OzExMTEgMTE2NiAxMUI1O0QzQTY7MTExMSAxMTY2IDExQjU7CitEM0E3O0QzQTc7MTExMSAxMTY2IDExQjY7RDNBNzsxMTExIDExNjYgMTFCNjsKK0QzQTg7RDNBODsxMTExIDExNjYgMTFCNztEM0E4OzExMTEgMTE2NiAxMUI3OworRDNBOTtEM0E5OzExMTEgMTE2NiAxMUI4O0QzQTk7MTExMSAxMTY2IDExQjg7CitEM0FBO0QzQUE7MTExMSAxMTY2IDExQjk7RDNBQTsxMTExIDExNjYgMTFCOTsKK0QzQUI7RDNBQjsxMTExIDExNjYgMTFCQTtEM0FCOzExMTEgMTE2NiAxMUJBOworRDNBQztEM0FDOzExMTEgMTE2NiAxMUJCO0QzQUM7MTExMSAxMTY2IDExQkI7CitEM0FEO0QzQUQ7MTExMSAxMTY2IDExQkM7RDNBRDsxMTExIDExNjYgMTFCQzsKK0QzQUU7RDNBRTsxMTExIDExNjYgMTFCRDtEM0FFOzExMTEgMTE2NiAxMUJEOworRDNBRjtEM0FGOzExMTEgMTE2NiAxMUJFO0QzQUY7MTExMSAxMTY2IDExQkU7CitEM0IwO0QzQjA7MTExMSAxMTY2IDExQkY7RDNCMDsxMTExIDExNjYgMTFCRjsKK0QzQjE7RDNCMTsxMTExIDExNjYgMTFDMDtEM0IxOzExMTEgMTE2NiAxMUMwOworRDNCMjtEM0IyOzExMTEgMTE2NiAxMUMxO0QzQjI7MTExMSAxMTY2IDExQzE7CitEM0IzO0QzQjM7MTExMSAxMTY2IDExQzI7RDNCMzsxMTExIDExNjYgMTFDMjsKK0QzQjQ7RDNCNDsxMTExIDExNjc7RDNCNDsxMTExIDExNjc7CitEM0I1O0QzQjU7MTExMSAxMTY3IDExQTg7RDNCNTsxMTExIDExNjcgMTFBODsKK0QzQjY7RDNCNjsxMTExIDExNjcgMTFBOTtEM0I2OzExMTEgMTE2NyAxMUE5OworRDNCNztEM0I3OzExMTEgMTE2NyAxMUFBO0QzQjc7MTExMSAxMTY3IDExQUE7CitEM0I4O0QzQjg7MTExMSAxMTY3IDExQUI7RDNCODsxMTExIDExNjcgMTFBQjsKK0QzQjk7RDNCOTsxMTExIDExNjcgMTFBQztEM0I5OzExMTEgMTE2NyAxMUFDOworRDNCQTtEM0JBOzExMTEgMTE2NyAxMUFEO0QzQkE7MTExMSAxMTY3IDExQUQ7CitEM0JCO0QzQkI7MTExMSAxMTY3IDExQUU7RDNCQjsxMTExIDExNjcgMTFBRTsKK0QzQkM7RDNCQzsxMTExIDExNjcgMTFBRjtEM0JDOzExMTEgMTE2NyAxMUFGOworRDNCRDtEM0JEOzExMTEgMTE2NyAxMUIwO0QzQkQ7MTExMSAxMTY3IDExQjA7CitEM0JFO0QzQkU7MTExMSAxMTY3IDExQjE7RDNCRTsxMTExIDExNjcgMTFCMTsKK0QzQkY7RDNCRjsxMTExIDExNjcgMTFCMjtEM0JGOzExMTEgMTE2NyAxMUIyOworRDNDMDtEM0MwOzExMTEgMTE2NyAxMUIzO0QzQzA7MTExMSAxMTY3IDExQjM7CitEM0MxO0QzQzE7MTExMSAxMTY3IDExQjQ7RDNDMTsxMTExIDExNjcgMTFCNDsKK0QzQzI7RDNDMjsxMTExIDExNjcgMTFCNTtEM0MyOzExMTEgMTE2NyAxMUI1OworRDNDMztEM0MzOzExMTEgMTE2NyAxMUI2O0QzQzM7MTExMSAxMTY3IDExQjY7CitEM0M0O0QzQzQ7MTExMSAxMTY3IDExQjc7RDNDNDsxMTExIDExNjcgMTFCNzsKK0QzQzU7RDNDNTsxMTExIDExNjcgMTFCODtEM0M1OzExMTEgMTE2NyAxMUI4OworRDNDNjtEM0M2OzExMTEgMTE2NyAxMUI5O0QzQzY7MTExMSAxMTY3IDExQjk7CitEM0M3O0QzQzc7MTExMSAxMTY3IDExQkE7RDNDNzsxMTExIDExNjcgMTFCQTsKK0QzQzg7RDNDODsxMTExIDExNjcgMTFCQjtEM0M4OzExMTEgMTE2NyAxMUJCOworRDNDOTtEM0M5OzExMTEgMTE2NyAxMUJDO0QzQzk7MTExMSAxMTY3IDExQkM7CitEM0NBO0QzQ0E7MTExMSAxMTY3IDExQkQ7RDNDQTsxMTExIDExNjcgMTFCRDsKK0QzQ0I7RDNDQjsxMTExIDExNjcgMTFCRTtEM0NCOzExMTEgMTE2NyAxMUJFOworRDNDQztEM0NDOzExMTEgMTE2NyAxMUJGO0QzQ0M7MTExMSAxMTY3IDExQkY7CitEM0NEO0QzQ0Q7MTExMSAxMTY3IDExQzA7RDNDRDsxMTExIDExNjcgMTFDMDsKK0QzQ0U7RDNDRTsxMTExIDExNjcgMTFDMTtEM0NFOzExMTEgMTE2NyAxMUMxOworRDNDRjtEM0NGOzExMTEgMTE2NyAxMUMyO0QzQ0Y7MTExMSAxMTY3IDExQzI7CitEM0QwO0QzRDA7MTExMSAxMTY4O0QzRDA7MTExMSAxMTY4OworRDNEMTtEM0QxOzExMTEgMTE2OCAxMUE4O0QzRDE7MTExMSAxMTY4IDExQTg7CitEM0QyO0QzRDI7MTExMSAxMTY4IDExQTk7RDNEMjsxMTExIDExNjggMTFBOTsKK0QzRDM7RDNEMzsxMTExIDExNjggMTFBQTtEM0QzOzExMTEgMTE2OCAxMUFBOworRDNENDtEM0Q0OzExMTEgMTE2OCAxMUFCO0QzRDQ7MTExMSAxMTY4IDExQUI7CitEM0Q1O0QzRDU7MTExMSAxMTY4IDExQUM7RDNENTsxMTExIDExNjggMTFBQzsKK0QzRDY7RDNENjsxMTExIDExNjggMTFBRDtEM0Q2OzExMTEgMTE2OCAxMUFEOworRDNENztEM0Q3OzExMTEgMTE2OCAxMUFFO0QzRDc7MTExMSAxMTY4IDExQUU7CitEM0Q4O0QzRDg7MTExMSAxMTY4IDExQUY7RDNEODsxMTExIDExNjggMTFBRjsKK0QzRDk7RDNEOTsxMTExIDExNjggMTFCMDtEM0Q5OzExMTEgMTE2OCAxMUIwOworRDNEQTtEM0RBOzExMTEgMTE2OCAxMUIxO0QzREE7MTExMSAxMTY4IDExQjE7CitEM0RCO0QzREI7MTExMSAxMTY4IDExQjI7RDNEQjsxMTExIDExNjggMTFCMjsKK0QzREM7RDNEQzsxMTExIDExNjggMTFCMztEM0RDOzExMTEgMTE2OCAxMUIzOworRDNERDtEM0REOzExMTEgMTE2OCAxMUI0O0QzREQ7MTExMSAxMTY4IDExQjQ7CitEM0RFO0QzREU7MTExMSAxMTY4IDExQjU7RDNERTsxMTExIDExNjggMTFCNTsKK0QzREY7RDNERjsxMTExIDExNjggMTFCNjtEM0RGOzExMTEgMTE2OCAxMUI2OworRDNFMDtEM0UwOzExMTEgMTE2OCAxMUI3O0QzRTA7MTExMSAxMTY4IDExQjc7CitEM0UxO0QzRTE7MTExMSAxMTY4IDExQjg7RDNFMTsxMTExIDExNjggMTFCODsKK0QzRTI7RDNFMjsxMTExIDExNjggMTFCOTtEM0UyOzExMTEgMTE2OCAxMUI5OworRDNFMztEM0UzOzExMTEgMTE2OCAxMUJBO0QzRTM7MTExMSAxMTY4IDExQkE7CitEM0U0O0QzRTQ7MTExMSAxMTY4IDExQkI7RDNFNDsxMTExIDExNjggMTFCQjsKK0QzRTU7RDNFNTsxMTExIDExNjggMTFCQztEM0U1OzExMTEgMTE2OCAxMUJDOworRDNFNjtEM0U2OzExMTEgMTE2OCAxMUJEO0QzRTY7MTExMSAxMTY4IDExQkQ7CitEM0U3O0QzRTc7MTExMSAxMTY4IDExQkU7RDNFNzsxMTExIDExNjggMTFCRTsKK0QzRTg7RDNFODsxMTExIDExNjggMTFCRjtEM0U4OzExMTEgMTE2OCAxMUJGOworRDNFOTtEM0U5OzExMTEgMTE2OCAxMUMwO0QzRTk7MTExMSAxMTY4IDExQzA7CitEM0VBO0QzRUE7MTExMSAxMTY4IDExQzE7RDNFQTsxMTExIDExNjggMTFDMTsKK0QzRUI7RDNFQjsxMTExIDExNjggMTFDMjtEM0VCOzExMTEgMTE2OCAxMUMyOworRDNFQztEM0VDOzExMTEgMTE2OTtEM0VDOzExMTEgMTE2OTsKK0QzRUQ7RDNFRDsxMTExIDExNjkgMTFBODtEM0VEOzExMTEgMTE2OSAxMUE4OworRDNFRTtEM0VFOzExMTEgMTE2OSAxMUE5O0QzRUU7MTExMSAxMTY5IDExQTk7CitEM0VGO0QzRUY7MTExMSAxMTY5IDExQUE7RDNFRjsxMTExIDExNjkgMTFBQTsKK0QzRjA7RDNGMDsxMTExIDExNjkgMTFBQjtEM0YwOzExMTEgMTE2OSAxMUFCOworRDNGMTtEM0YxOzExMTEgMTE2OSAxMUFDO0QzRjE7MTExMSAxMTY5IDExQUM7CitEM0YyO0QzRjI7MTExMSAxMTY5IDExQUQ7RDNGMjsxMTExIDExNjkgMTFBRDsKK0QzRjM7RDNGMzsxMTExIDExNjkgMTFBRTtEM0YzOzExMTEgMTE2OSAxMUFFOworRDNGNDtEM0Y0OzExMTEgMTE2OSAxMUFGO0QzRjQ7MTExMSAxMTY5IDExQUY7CitEM0Y1O0QzRjU7MTExMSAxMTY5IDExQjA7RDNGNTsxMTExIDExNjkgMTFCMDsKK0QzRjY7RDNGNjsxMTExIDExNjkgMTFCMTtEM0Y2OzExMTEgMTE2OSAxMUIxOworRDNGNztEM0Y3OzExMTEgMTE2OSAxMUIyO0QzRjc7MTExMSAxMTY5IDExQjI7CitEM0Y4O0QzRjg7MTExMSAxMTY5IDExQjM7RDNGODsxMTExIDExNjkgMTFCMzsKK0QzRjk7RDNGOTsxMTExIDExNjkgMTFCNDtEM0Y5OzExMTEgMTE2OSAxMUI0OworRDNGQTtEM0ZBOzExMTEgMTE2OSAxMUI1O0QzRkE7MTExMSAxMTY5IDExQjU7CitEM0ZCO0QzRkI7MTExMSAxMTY5IDExQjY7RDNGQjsxMTExIDExNjkgMTFCNjsKK0QzRkM7RDNGQzsxMTExIDExNjkgMTFCNztEM0ZDOzExMTEgMTE2OSAxMUI3OworRDNGRDtEM0ZEOzExMTEgMTE2OSAxMUI4O0QzRkQ7MTExMSAxMTY5IDExQjg7CitEM0ZFO0QzRkU7MTExMSAxMTY5IDExQjk7RDNGRTsxMTExIDExNjkgMTFCOTsKK0QzRkY7RDNGRjsxMTExIDExNjkgMTFCQTtEM0ZGOzExMTEgMTE2OSAxMUJBOworRDQwMDtENDAwOzExMTEgMTE2OSAxMUJCO0Q0MDA7MTExMSAxMTY5IDExQkI7CitENDAxO0Q0MDE7MTExMSAxMTY5IDExQkM7RDQwMTsxMTExIDExNjkgMTFCQzsKK0Q0MDI7RDQwMjsxMTExIDExNjkgMTFCRDtENDAyOzExMTEgMTE2OSAxMUJEOworRDQwMztENDAzOzExMTEgMTE2OSAxMUJFO0Q0MDM7MTExMSAxMTY5IDExQkU7CitENDA0O0Q0MDQ7MTExMSAxMTY5IDExQkY7RDQwNDsxMTExIDExNjkgMTFCRjsKK0Q0MDU7RDQwNTsxMTExIDExNjkgMTFDMDtENDA1OzExMTEgMTE2OSAxMUMwOworRDQwNjtENDA2OzExMTEgMTE2OSAxMUMxO0Q0MDY7MTExMSAxMTY5IDExQzE7CitENDA3O0Q0MDc7MTExMSAxMTY5IDExQzI7RDQwNzsxMTExIDExNjkgMTFDMjsKK0Q0MDg7RDQwODsxMTExIDExNkE7RDQwODsxMTExIDExNkE7CitENDA5O0Q0MDk7MTExMSAxMTZBIDExQTg7RDQwOTsxMTExIDExNkEgMTFBODsKK0Q0MEE7RDQwQTsxMTExIDExNkEgMTFBOTtENDBBOzExMTEgMTE2QSAxMUE5OworRDQwQjtENDBCOzExMTEgMTE2QSAxMUFBO0Q0MEI7MTExMSAxMTZBIDExQUE7CitENDBDO0Q0MEM7MTExMSAxMTZBIDExQUI7RDQwQzsxMTExIDExNkEgMTFBQjsKK0Q0MEQ7RDQwRDsxMTExIDExNkEgMTFBQztENDBEOzExMTEgMTE2QSAxMUFDOworRDQwRTtENDBFOzExMTEgMTE2QSAxMUFEO0Q0MEU7MTExMSAxMTZBIDExQUQ7CitENDBGO0Q0MEY7MTExMSAxMTZBIDExQUU7RDQwRjsxMTExIDExNkEgMTFBRTsKK0Q0MTA7RDQxMDsxMTExIDExNkEgMTFBRjtENDEwOzExMTEgMTE2QSAxMUFGOworRDQxMTtENDExOzExMTEgMTE2QSAxMUIwO0Q0MTE7MTExMSAxMTZBIDExQjA7CitENDEyO0Q0MTI7MTExMSAxMTZBIDExQjE7RDQxMjsxMTExIDExNkEgMTFCMTsKK0Q0MTM7RDQxMzsxMTExIDExNkEgMTFCMjtENDEzOzExMTEgMTE2QSAxMUIyOworRDQxNDtENDE0OzExMTEgMTE2QSAxMUIzO0Q0MTQ7MTExMSAxMTZBIDExQjM7CitENDE1O0Q0MTU7MTExMSAxMTZBIDExQjQ7RDQxNTsxMTExIDExNkEgMTFCNDsKK0Q0MTY7RDQxNjsxMTExIDExNkEgMTFCNTtENDE2OzExMTEgMTE2QSAxMUI1OworRDQxNztENDE3OzExMTEgMTE2QSAxMUI2O0Q0MTc7MTExMSAxMTZBIDExQjY7CitENDE4O0Q0MTg7MTExMSAxMTZBIDExQjc7RDQxODsxMTExIDExNkEgMTFCNzsKK0Q0MTk7RDQxOTsxMTExIDExNkEgMTFCODtENDE5OzExMTEgMTE2QSAxMUI4OworRDQxQTtENDFBOzExMTEgMTE2QSAxMUI5O0Q0MUE7MTExMSAxMTZBIDExQjk7CitENDFCO0Q0MUI7MTExMSAxMTZBIDExQkE7RDQxQjsxMTExIDExNkEgMTFCQTsKK0Q0MUM7RDQxQzsxMTExIDExNkEgMTFCQjtENDFDOzExMTEgMTE2QSAxMUJCOworRDQxRDtENDFEOzExMTEgMTE2QSAxMUJDO0Q0MUQ7MTExMSAxMTZBIDExQkM7CitENDFFO0Q0MUU7MTExMSAxMTZBIDExQkQ7RDQxRTsxMTExIDExNkEgMTFCRDsKK0Q0MUY7RDQxRjsxMTExIDExNkEgMTFCRTtENDFGOzExMTEgMTE2QSAxMUJFOworRDQyMDtENDIwOzExMTEgMTE2QSAxMUJGO0Q0MjA7MTExMSAxMTZBIDExQkY7CitENDIxO0Q0MjE7MTExMSAxMTZBIDExQzA7RDQyMTsxMTExIDExNkEgMTFDMDsKK0Q0MjI7RDQyMjsxMTExIDExNkEgMTFDMTtENDIyOzExMTEgMTE2QSAxMUMxOworRDQyMztENDIzOzExMTEgMTE2QSAxMUMyO0Q0MjM7MTExMSAxMTZBIDExQzI7CitENDI0O0Q0MjQ7MTExMSAxMTZCO0Q0MjQ7MTExMSAxMTZCOworRDQyNTtENDI1OzExMTEgMTE2QiAxMUE4O0Q0MjU7MTExMSAxMTZCIDExQTg7CitENDI2O0Q0MjY7MTExMSAxMTZCIDExQTk7RDQyNjsxMTExIDExNkIgMTFBOTsKK0Q0Mjc7RDQyNzsxMTExIDExNkIgMTFBQTtENDI3OzExMTEgMTE2QiAxMUFBOworRDQyODtENDI4OzExMTEgMTE2QiAxMUFCO0Q0Mjg7MTExMSAxMTZCIDExQUI7CitENDI5O0Q0Mjk7MTExMSAxMTZCIDExQUM7RDQyOTsxMTExIDExNkIgMTFBQzsKK0Q0MkE7RDQyQTsxMTExIDExNkIgMTFBRDtENDJBOzExMTEgMTE2QiAxMUFEOworRDQyQjtENDJCOzExMTEgMTE2QiAxMUFFO0Q0MkI7MTExMSAxMTZCIDExQUU7CitENDJDO0Q0MkM7MTExMSAxMTZCIDExQUY7RDQyQzsxMTExIDExNkIgMTFBRjsKK0Q0MkQ7RDQyRDsxMTExIDExNkIgMTFCMDtENDJEOzExMTEgMTE2QiAxMUIwOworRDQyRTtENDJFOzExMTEgMTE2QiAxMUIxO0Q0MkU7MTExMSAxMTZCIDExQjE7CitENDJGO0Q0MkY7MTExMSAxMTZCIDExQjI7RDQyRjsxMTExIDExNkIgMTFCMjsKK0Q0MzA7RDQzMDsxMTExIDExNkIgMTFCMztENDMwOzExMTEgMTE2QiAxMUIzOworRDQzMTtENDMxOzExMTEgMTE2QiAxMUI0O0Q0MzE7MTExMSAxMTZCIDExQjQ7CitENDMyO0Q0MzI7MTExMSAxMTZCIDExQjU7RDQzMjsxMTExIDExNkIgMTFCNTsKK0Q0MzM7RDQzMzsxMTExIDExNkIgMTFCNjtENDMzOzExMTEgMTE2QiAxMUI2OworRDQzNDtENDM0OzExMTEgMTE2QiAxMUI3O0Q0MzQ7MTExMSAxMTZCIDExQjc7CitENDM1O0Q0MzU7MTExMSAxMTZCIDExQjg7RDQzNTsxMTExIDExNkIgMTFCODsKK0Q0MzY7RDQzNjsxMTExIDExNkIgMTFCOTtENDM2OzExMTEgMTE2QiAxMUI5OworRDQzNztENDM3OzExMTEgMTE2QiAxMUJBO0Q0Mzc7MTExMSAxMTZCIDExQkE7CitENDM4O0Q0Mzg7MTExMSAxMTZCIDExQkI7RDQzODsxMTExIDExNkIgMTFCQjsKK0Q0Mzk7RDQzOTsxMTExIDExNkIgMTFCQztENDM5OzExMTEgMTE2QiAxMUJDOworRDQzQTtENDNBOzExMTEgMTE2QiAxMUJEO0Q0M0E7MTExMSAxMTZCIDExQkQ7CitENDNCO0Q0M0I7MTExMSAxMTZCIDExQkU7RDQzQjsxMTExIDExNkIgMTFCRTsKK0Q0M0M7RDQzQzsxMTExIDExNkIgMTFCRjtENDNDOzExMTEgMTE2QiAxMUJGOworRDQzRDtENDNEOzExMTEgMTE2QiAxMUMwO0Q0M0Q7MTExMSAxMTZCIDExQzA7CitENDNFO0Q0M0U7MTExMSAxMTZCIDExQzE7RDQzRTsxMTExIDExNkIgMTFDMTsKK0Q0M0Y7RDQzRjsxMTExIDExNkIgMTFDMjtENDNGOzExMTEgMTE2QiAxMUMyOworRDQ0MDtENDQwOzExMTEgMTE2QztENDQwOzExMTEgMTE2QzsKK0Q0NDE7RDQ0MTsxMTExIDExNkMgMTFBODtENDQxOzExMTEgMTE2QyAxMUE4OworRDQ0MjtENDQyOzExMTEgMTE2QyAxMUE5O0Q0NDI7MTExMSAxMTZDIDExQTk7CitENDQzO0Q0NDM7MTExMSAxMTZDIDExQUE7RDQ0MzsxMTExIDExNkMgMTFBQTsKK0Q0NDQ7RDQ0NDsxMTExIDExNkMgMTFBQjtENDQ0OzExMTEgMTE2QyAxMUFCOworRDQ0NTtENDQ1OzExMTEgMTE2QyAxMUFDO0Q0NDU7MTExMSAxMTZDIDExQUM7CitENDQ2O0Q0NDY7MTExMSAxMTZDIDExQUQ7RDQ0NjsxMTExIDExNkMgMTFBRDsKK0Q0NDc7RDQ0NzsxMTExIDExNkMgMTFBRTtENDQ3OzExMTEgMTE2QyAxMUFFOworRDQ0ODtENDQ4OzExMTEgMTE2QyAxMUFGO0Q0NDg7MTExMSAxMTZDIDExQUY7CitENDQ5O0Q0NDk7MTExMSAxMTZDIDExQjA7RDQ0OTsxMTExIDExNkMgMTFCMDsKK0Q0NEE7RDQ0QTsxMTExIDExNkMgMTFCMTtENDRBOzExMTEgMTE2QyAxMUIxOworRDQ0QjtENDRCOzExMTEgMTE2QyAxMUIyO0Q0NEI7MTExMSAxMTZDIDExQjI7CitENDRDO0Q0NEM7MTExMSAxMTZDIDExQjM7RDQ0QzsxMTExIDExNkMgMTFCMzsKK0Q0NEQ7RDQ0RDsxMTExIDExNkMgMTFCNDtENDREOzExMTEgMTE2QyAxMUI0OworRDQ0RTtENDRFOzExMTEgMTE2QyAxMUI1O0Q0NEU7MTExMSAxMTZDIDExQjU7CitENDRGO0Q0NEY7MTExMSAxMTZDIDExQjY7RDQ0RjsxMTExIDExNkMgMTFCNjsKK0Q0NTA7RDQ1MDsxMTExIDExNkMgMTFCNztENDUwOzExMTEgMTE2QyAxMUI3OworRDQ1MTtENDUxOzExMTEgMTE2QyAxMUI4O0Q0NTE7MTExMSAxMTZDIDExQjg7CitENDUyO0Q0NTI7MTExMSAxMTZDIDExQjk7RDQ1MjsxMTExIDExNkMgMTFCOTsKK0Q0NTM7RDQ1MzsxMTExIDExNkMgMTFCQTtENDUzOzExMTEgMTE2QyAxMUJBOworRDQ1NDtENDU0OzExMTEgMTE2QyAxMUJCO0Q0NTQ7MTExMSAxMTZDIDExQkI7CitENDU1O0Q0NTU7MTExMSAxMTZDIDExQkM7RDQ1NTsxMTExIDExNkMgMTFCQzsKK0Q0NTY7RDQ1NjsxMTExIDExNkMgMTFCRDtENDU2OzExMTEgMTE2QyAxMUJEOworRDQ1NztENDU3OzExMTEgMTE2QyAxMUJFO0Q0NTc7MTExMSAxMTZDIDExQkU7CitENDU4O0Q0NTg7MTExMSAxMTZDIDExQkY7RDQ1ODsxMTExIDExNkMgMTFCRjsKK0Q0NTk7RDQ1OTsxMTExIDExNkMgMTFDMDtENDU5OzExMTEgMTE2QyAxMUMwOworRDQ1QTtENDVBOzExMTEgMTE2QyAxMUMxO0Q0NUE7MTExMSAxMTZDIDExQzE7CitENDVCO0Q0NUI7MTExMSAxMTZDIDExQzI7RDQ1QjsxMTExIDExNkMgMTFDMjsKK0Q0NUM7RDQ1QzsxMTExIDExNkQ7RDQ1QzsxMTExIDExNkQ7CitENDVEO0Q0NUQ7MTExMSAxMTZEIDExQTg7RDQ1RDsxMTExIDExNkQgMTFBODsKK0Q0NUU7RDQ1RTsxMTExIDExNkQgMTFBOTtENDVFOzExMTEgMTE2RCAxMUE5OworRDQ1RjtENDVGOzExMTEgMTE2RCAxMUFBO0Q0NUY7MTExMSAxMTZEIDExQUE7CitENDYwO0Q0NjA7MTExMSAxMTZEIDExQUI7RDQ2MDsxMTExIDExNkQgMTFBQjsKK0Q0NjE7RDQ2MTsxMTExIDExNkQgMTFBQztENDYxOzExMTEgMTE2RCAxMUFDOworRDQ2MjtENDYyOzExMTEgMTE2RCAxMUFEO0Q0NjI7MTExMSAxMTZEIDExQUQ7CitENDYzO0Q0NjM7MTExMSAxMTZEIDExQUU7RDQ2MzsxMTExIDExNkQgMTFBRTsKK0Q0NjQ7RDQ2NDsxMTExIDExNkQgMTFBRjtENDY0OzExMTEgMTE2RCAxMUFGOworRDQ2NTtENDY1OzExMTEgMTE2RCAxMUIwO0Q0NjU7MTExMSAxMTZEIDExQjA7CitENDY2O0Q0NjY7MTExMSAxMTZEIDExQjE7RDQ2NjsxMTExIDExNkQgMTFCMTsKK0Q0Njc7RDQ2NzsxMTExIDExNkQgMTFCMjtENDY3OzExMTEgMTE2RCAxMUIyOworRDQ2ODtENDY4OzExMTEgMTE2RCAxMUIzO0Q0Njg7MTExMSAxMTZEIDExQjM7CitENDY5O0Q0Njk7MTExMSAxMTZEIDExQjQ7RDQ2OTsxMTExIDExNkQgMTFCNDsKK0Q0NkE7RDQ2QTsxMTExIDExNkQgMTFCNTtENDZBOzExMTEgMTE2RCAxMUI1OworRDQ2QjtENDZCOzExMTEgMTE2RCAxMUI2O0Q0NkI7MTExMSAxMTZEIDExQjY7CitENDZDO0Q0NkM7MTExMSAxMTZEIDExQjc7RDQ2QzsxMTExIDExNkQgMTFCNzsKK0Q0NkQ7RDQ2RDsxMTExIDExNkQgMTFCODtENDZEOzExMTEgMTE2RCAxMUI4OworRDQ2RTtENDZFOzExMTEgMTE2RCAxMUI5O0Q0NkU7MTExMSAxMTZEIDExQjk7CitENDZGO0Q0NkY7MTExMSAxMTZEIDExQkE7RDQ2RjsxMTExIDExNkQgMTFCQTsKK0Q0NzA7RDQ3MDsxMTExIDExNkQgMTFCQjtENDcwOzExMTEgMTE2RCAxMUJCOworRDQ3MTtENDcxOzExMTEgMTE2RCAxMUJDO0Q0NzE7MTExMSAxMTZEIDExQkM7CitENDcyO0Q0NzI7MTExMSAxMTZEIDExQkQ7RDQ3MjsxMTExIDExNkQgMTFCRDsKK0Q0NzM7RDQ3MzsxMTExIDExNkQgMTFCRTtENDczOzExMTEgMTE2RCAxMUJFOworRDQ3NDtENDc0OzExMTEgMTE2RCAxMUJGO0Q0NzQ7MTExMSAxMTZEIDExQkY7CitENDc1O0Q0NzU7MTExMSAxMTZEIDExQzA7RDQ3NTsxMTExIDExNkQgMTFDMDsKK0Q0NzY7RDQ3NjsxMTExIDExNkQgMTFDMTtENDc2OzExMTEgMTE2RCAxMUMxOworRDQ3NztENDc3OzExMTEgMTE2RCAxMUMyO0Q0Nzc7MTExMSAxMTZEIDExQzI7CitENDc4O0Q0Nzg7MTExMSAxMTZFO0Q0Nzg7MTExMSAxMTZFOworRDQ3OTtENDc5OzExMTEgMTE2RSAxMUE4O0Q0Nzk7MTExMSAxMTZFIDExQTg7CitENDdBO0Q0N0E7MTExMSAxMTZFIDExQTk7RDQ3QTsxMTExIDExNkUgMTFBOTsKK0Q0N0I7RDQ3QjsxMTExIDExNkUgMTFBQTtENDdCOzExMTEgMTE2RSAxMUFBOworRDQ3QztENDdDOzExMTEgMTE2RSAxMUFCO0Q0N0M7MTExMSAxMTZFIDExQUI7CitENDdEO0Q0N0Q7MTExMSAxMTZFIDExQUM7RDQ3RDsxMTExIDExNkUgMTFBQzsKK0Q0N0U7RDQ3RTsxMTExIDExNkUgMTFBRDtENDdFOzExMTEgMTE2RSAxMUFEOworRDQ3RjtENDdGOzExMTEgMTE2RSAxMUFFO0Q0N0Y7MTExMSAxMTZFIDExQUU7CitENDgwO0Q0ODA7MTExMSAxMTZFIDExQUY7RDQ4MDsxMTExIDExNkUgMTFBRjsKK0Q0ODE7RDQ4MTsxMTExIDExNkUgMTFCMDtENDgxOzExMTEgMTE2RSAxMUIwOworRDQ4MjtENDgyOzExMTEgMTE2RSAxMUIxO0Q0ODI7MTExMSAxMTZFIDExQjE7CitENDgzO0Q0ODM7MTExMSAxMTZFIDExQjI7RDQ4MzsxMTExIDExNkUgMTFCMjsKK0Q0ODQ7RDQ4NDsxMTExIDExNkUgMTFCMztENDg0OzExMTEgMTE2RSAxMUIzOworRDQ4NTtENDg1OzExMTEgMTE2RSAxMUI0O0Q0ODU7MTExMSAxMTZFIDExQjQ7CitENDg2O0Q0ODY7MTExMSAxMTZFIDExQjU7RDQ4NjsxMTExIDExNkUgMTFCNTsKK0Q0ODc7RDQ4NzsxMTExIDExNkUgMTFCNjtENDg3OzExMTEgMTE2RSAxMUI2OworRDQ4ODtENDg4OzExMTEgMTE2RSAxMUI3O0Q0ODg7MTExMSAxMTZFIDExQjc7CitENDg5O0Q0ODk7MTExMSAxMTZFIDExQjg7RDQ4OTsxMTExIDExNkUgMTFCODsKK0Q0OEE7RDQ4QTsxMTExIDExNkUgMTFCOTtENDhBOzExMTEgMTE2RSAxMUI5OworRDQ4QjtENDhCOzExMTEgMTE2RSAxMUJBO0Q0OEI7MTExMSAxMTZFIDExQkE7CitENDhDO0Q0OEM7MTExMSAxMTZFIDExQkI7RDQ4QzsxMTExIDExNkUgMTFCQjsKK0Q0OEQ7RDQ4RDsxMTExIDExNkUgMTFCQztENDhEOzExMTEgMTE2RSAxMUJDOworRDQ4RTtENDhFOzExMTEgMTE2RSAxMUJEO0Q0OEU7MTExMSAxMTZFIDExQkQ7CitENDhGO0Q0OEY7MTExMSAxMTZFIDExQkU7RDQ4RjsxMTExIDExNkUgMTFCRTsKK0Q0OTA7RDQ5MDsxMTExIDExNkUgMTFCRjtENDkwOzExMTEgMTE2RSAxMUJGOworRDQ5MTtENDkxOzExMTEgMTE2RSAxMUMwO0Q0OTE7MTExMSAxMTZFIDExQzA7CitENDkyO0Q0OTI7MTExMSAxMTZFIDExQzE7RDQ5MjsxMTExIDExNkUgMTFDMTsKK0Q0OTM7RDQ5MzsxMTExIDExNkUgMTFDMjtENDkzOzExMTEgMTE2RSAxMUMyOworRDQ5NDtENDk0OzExMTEgMTE2RjtENDk0OzExMTEgMTE2RjsKK0Q0OTU7RDQ5NTsxMTExIDExNkYgMTFBODtENDk1OzExMTEgMTE2RiAxMUE4OworRDQ5NjtENDk2OzExMTEgMTE2RiAxMUE5O0Q0OTY7MTExMSAxMTZGIDExQTk7CitENDk3O0Q0OTc7MTExMSAxMTZGIDExQUE7RDQ5NzsxMTExIDExNkYgMTFBQTsKK0Q0OTg7RDQ5ODsxMTExIDExNkYgMTFBQjtENDk4OzExMTEgMTE2RiAxMUFCOworRDQ5OTtENDk5OzExMTEgMTE2RiAxMUFDO0Q0OTk7MTExMSAxMTZGIDExQUM7CitENDlBO0Q0OUE7MTExMSAxMTZGIDExQUQ7RDQ5QTsxMTExIDExNkYgMTFBRDsKK0Q0OUI7RDQ5QjsxMTExIDExNkYgMTFBRTtENDlCOzExMTEgMTE2RiAxMUFFOworRDQ5QztENDlDOzExMTEgMTE2RiAxMUFGO0Q0OUM7MTExMSAxMTZGIDExQUY7CitENDlEO0Q0OUQ7MTExMSAxMTZGIDExQjA7RDQ5RDsxMTExIDExNkYgMTFCMDsKK0Q0OUU7RDQ5RTsxMTExIDExNkYgMTFCMTtENDlFOzExMTEgMTE2RiAxMUIxOworRDQ5RjtENDlGOzExMTEgMTE2RiAxMUIyO0Q0OUY7MTExMSAxMTZGIDExQjI7CitENEEwO0Q0QTA7MTExMSAxMTZGIDExQjM7RDRBMDsxMTExIDExNkYgMTFCMzsKK0Q0QTE7RDRBMTsxMTExIDExNkYgMTFCNDtENEExOzExMTEgMTE2RiAxMUI0OworRDRBMjtENEEyOzExMTEgMTE2RiAxMUI1O0Q0QTI7MTExMSAxMTZGIDExQjU7CitENEEzO0Q0QTM7MTExMSAxMTZGIDExQjY7RDRBMzsxMTExIDExNkYgMTFCNjsKK0Q0QTQ7RDRBNDsxMTExIDExNkYgMTFCNztENEE0OzExMTEgMTE2RiAxMUI3OworRDRBNTtENEE1OzExMTEgMTE2RiAxMUI4O0Q0QTU7MTExMSAxMTZGIDExQjg7CitENEE2O0Q0QTY7MTExMSAxMTZGIDExQjk7RDRBNjsxMTExIDExNkYgMTFCOTsKK0Q0QTc7RDRBNzsxMTExIDExNkYgMTFCQTtENEE3OzExMTEgMTE2RiAxMUJBOworRDRBODtENEE4OzExMTEgMTE2RiAxMUJCO0Q0QTg7MTExMSAxMTZGIDExQkI7CitENEE5O0Q0QTk7MTExMSAxMTZGIDExQkM7RDRBOTsxMTExIDExNkYgMTFCQzsKK0Q0QUE7RDRBQTsxMTExIDExNkYgMTFCRDtENEFBOzExMTEgMTE2RiAxMUJEOworRDRBQjtENEFCOzExMTEgMTE2RiAxMUJFO0Q0QUI7MTExMSAxMTZGIDExQkU7CitENEFDO0Q0QUM7MTExMSAxMTZGIDExQkY7RDRBQzsxMTExIDExNkYgMTFCRjsKK0Q0QUQ7RDRBRDsxMTExIDExNkYgMTFDMDtENEFEOzExMTEgMTE2RiAxMUMwOworRDRBRTtENEFFOzExMTEgMTE2RiAxMUMxO0Q0QUU7MTExMSAxMTZGIDExQzE7CitENEFGO0Q0QUY7MTExMSAxMTZGIDExQzI7RDRBRjsxMTExIDExNkYgMTFDMjsKK0Q0QjA7RDRCMDsxMTExIDExNzA7RDRCMDsxMTExIDExNzA7CitENEIxO0Q0QjE7MTExMSAxMTcwIDExQTg7RDRCMTsxMTExIDExNzAgMTFBODsKK0Q0QjI7RDRCMjsxMTExIDExNzAgMTFBOTtENEIyOzExMTEgMTE3MCAxMUE5OworRDRCMztENEIzOzExMTEgMTE3MCAxMUFBO0Q0QjM7MTExMSAxMTcwIDExQUE7CitENEI0O0Q0QjQ7MTExMSAxMTcwIDExQUI7RDRCNDsxMTExIDExNzAgMTFBQjsKK0Q0QjU7RDRCNTsxMTExIDExNzAgMTFBQztENEI1OzExMTEgMTE3MCAxMUFDOworRDRCNjtENEI2OzExMTEgMTE3MCAxMUFEO0Q0QjY7MTExMSAxMTcwIDExQUQ7CitENEI3O0Q0Qjc7MTExMSAxMTcwIDExQUU7RDRCNzsxMTExIDExNzAgMTFBRTsKK0Q0Qjg7RDRCODsxMTExIDExNzAgMTFBRjtENEI4OzExMTEgMTE3MCAxMUFGOworRDRCOTtENEI5OzExMTEgMTE3MCAxMUIwO0Q0Qjk7MTExMSAxMTcwIDExQjA7CitENEJBO0Q0QkE7MTExMSAxMTcwIDExQjE7RDRCQTsxMTExIDExNzAgMTFCMTsKK0Q0QkI7RDRCQjsxMTExIDExNzAgMTFCMjtENEJCOzExMTEgMTE3MCAxMUIyOworRDRCQztENEJDOzExMTEgMTE3MCAxMUIzO0Q0QkM7MTExMSAxMTcwIDExQjM7CitENEJEO0Q0QkQ7MTExMSAxMTcwIDExQjQ7RDRCRDsxMTExIDExNzAgMTFCNDsKK0Q0QkU7RDRCRTsxMTExIDExNzAgMTFCNTtENEJFOzExMTEgMTE3MCAxMUI1OworRDRCRjtENEJGOzExMTEgMTE3MCAxMUI2O0Q0QkY7MTExMSAxMTcwIDExQjY7CitENEMwO0Q0QzA7MTExMSAxMTcwIDExQjc7RDRDMDsxMTExIDExNzAgMTFCNzsKK0Q0QzE7RDRDMTsxMTExIDExNzAgMTFCODtENEMxOzExMTEgMTE3MCAxMUI4OworRDRDMjtENEMyOzExMTEgMTE3MCAxMUI5O0Q0QzI7MTExMSAxMTcwIDExQjk7CitENEMzO0Q0QzM7MTExMSAxMTcwIDExQkE7RDRDMzsxMTExIDExNzAgMTFCQTsKK0Q0QzQ7RDRDNDsxMTExIDExNzAgMTFCQjtENEM0OzExMTEgMTE3MCAxMUJCOworRDRDNTtENEM1OzExMTEgMTE3MCAxMUJDO0Q0QzU7MTExMSAxMTcwIDExQkM7CitENEM2O0Q0QzY7MTExMSAxMTcwIDExQkQ7RDRDNjsxMTExIDExNzAgMTFCRDsKK0Q0Qzc7RDRDNzsxMTExIDExNzAgMTFCRTtENEM3OzExMTEgMTE3MCAxMUJFOworRDRDODtENEM4OzExMTEgMTE3MCAxMUJGO0Q0Qzg7MTExMSAxMTcwIDExQkY7CitENEM5O0Q0Qzk7MTExMSAxMTcwIDExQzA7RDRDOTsxMTExIDExNzAgMTFDMDsKK0Q0Q0E7RDRDQTsxMTExIDExNzAgMTFDMTtENENBOzExMTEgMTE3MCAxMUMxOworRDRDQjtENENCOzExMTEgMTE3MCAxMUMyO0Q0Q0I7MTExMSAxMTcwIDExQzI7CitENENDO0Q0Q0M7MTExMSAxMTcxO0Q0Q0M7MTExMSAxMTcxOworRDRDRDtENENEOzExMTEgMTE3MSAxMUE4O0Q0Q0Q7MTExMSAxMTcxIDExQTg7CitENENFO0Q0Q0U7MTExMSAxMTcxIDExQTk7RDRDRTsxMTExIDExNzEgMTFBOTsKK0Q0Q0Y7RDRDRjsxMTExIDExNzEgMTFBQTtENENGOzExMTEgMTE3MSAxMUFBOworRDREMDtENEQwOzExMTEgMTE3MSAxMUFCO0Q0RDA7MTExMSAxMTcxIDExQUI7CitENEQxO0Q0RDE7MTExMSAxMTcxIDExQUM7RDREMTsxMTExIDExNzEgMTFBQzsKK0Q0RDI7RDREMjsxMTExIDExNzEgMTFBRDtENEQyOzExMTEgMTE3MSAxMUFEOworRDREMztENEQzOzExMTEgMTE3MSAxMUFFO0Q0RDM7MTExMSAxMTcxIDExQUU7CitENEQ0O0Q0RDQ7MTExMSAxMTcxIDExQUY7RDRENDsxMTExIDExNzEgMTFBRjsKK0Q0RDU7RDRENTsxMTExIDExNzEgMTFCMDtENEQ1OzExMTEgMTE3MSAxMUIwOworRDRENjtENEQ2OzExMTEgMTE3MSAxMUIxO0Q0RDY7MTExMSAxMTcxIDExQjE7CitENEQ3O0Q0RDc7MTExMSAxMTcxIDExQjI7RDRENzsxMTExIDExNzEgMTFCMjsKK0Q0RDg7RDREODsxMTExIDExNzEgMTFCMztENEQ4OzExMTEgMTE3MSAxMUIzOworRDREOTtENEQ5OzExMTEgMTE3MSAxMUI0O0Q0RDk7MTExMSAxMTcxIDExQjQ7CitENERBO0Q0REE7MTExMSAxMTcxIDExQjU7RDREQTsxMTExIDExNzEgMTFCNTsKK0Q0REI7RDREQjsxMTExIDExNzEgMTFCNjtENERCOzExMTEgMTE3MSAxMUI2OworRDREQztENERDOzExMTEgMTE3MSAxMUI3O0Q0REM7MTExMSAxMTcxIDExQjc7CitENEREO0Q0REQ7MTExMSAxMTcxIDExQjg7RDRERDsxMTExIDExNzEgMTFCODsKK0Q0REU7RDRERTsxMTExIDExNzEgMTFCOTtENERFOzExMTEgMTE3MSAxMUI5OworRDRERjtENERGOzExMTEgMTE3MSAxMUJBO0Q0REY7MTExMSAxMTcxIDExQkE7CitENEUwO0Q0RTA7MTExMSAxMTcxIDExQkI7RDRFMDsxMTExIDExNzEgMTFCQjsKK0Q0RTE7RDRFMTsxMTExIDExNzEgMTFCQztENEUxOzExMTEgMTE3MSAxMUJDOworRDRFMjtENEUyOzExMTEgMTE3MSAxMUJEO0Q0RTI7MTExMSAxMTcxIDExQkQ7CitENEUzO0Q0RTM7MTExMSAxMTcxIDExQkU7RDRFMzsxMTExIDExNzEgMTFCRTsKK0Q0RTQ7RDRFNDsxMTExIDExNzEgMTFCRjtENEU0OzExMTEgMTE3MSAxMUJGOworRDRFNTtENEU1OzExMTEgMTE3MSAxMUMwO0Q0RTU7MTExMSAxMTcxIDExQzA7CitENEU2O0Q0RTY7MTExMSAxMTcxIDExQzE7RDRFNjsxMTExIDExNzEgMTFDMTsKK0Q0RTc7RDRFNzsxMTExIDExNzEgMTFDMjtENEU3OzExMTEgMTE3MSAxMUMyOworRDRFODtENEU4OzExMTEgMTE3MjtENEU4OzExMTEgMTE3MjsKK0Q0RTk7RDRFOTsxMTExIDExNzIgMTFBODtENEU5OzExMTEgMTE3MiAxMUE4OworRDRFQTtENEVBOzExMTEgMTE3MiAxMUE5O0Q0RUE7MTExMSAxMTcyIDExQTk7CitENEVCO0Q0RUI7MTExMSAxMTcyIDExQUE7RDRFQjsxMTExIDExNzIgMTFBQTsKK0Q0RUM7RDRFQzsxMTExIDExNzIgMTFBQjtENEVDOzExMTEgMTE3MiAxMUFCOworRDRFRDtENEVEOzExMTEgMTE3MiAxMUFDO0Q0RUQ7MTExMSAxMTcyIDExQUM7CitENEVFO0Q0RUU7MTExMSAxMTcyIDExQUQ7RDRFRTsxMTExIDExNzIgMTFBRDsKK0Q0RUY7RDRFRjsxMTExIDExNzIgMTFBRTtENEVGOzExMTEgMTE3MiAxMUFFOworRDRGMDtENEYwOzExMTEgMTE3MiAxMUFGO0Q0RjA7MTExMSAxMTcyIDExQUY7CitENEYxO0Q0RjE7MTExMSAxMTcyIDExQjA7RDRGMTsxMTExIDExNzIgMTFCMDsKK0Q0RjI7RDRGMjsxMTExIDExNzIgMTFCMTtENEYyOzExMTEgMTE3MiAxMUIxOworRDRGMztENEYzOzExMTEgMTE3MiAxMUIyO0Q0RjM7MTExMSAxMTcyIDExQjI7CitENEY0O0Q0RjQ7MTExMSAxMTcyIDExQjM7RDRGNDsxMTExIDExNzIgMTFCMzsKK0Q0RjU7RDRGNTsxMTExIDExNzIgMTFCNDtENEY1OzExMTEgMTE3MiAxMUI0OworRDRGNjtENEY2OzExMTEgMTE3MiAxMUI1O0Q0RjY7MTExMSAxMTcyIDExQjU7CitENEY3O0Q0Rjc7MTExMSAxMTcyIDExQjY7RDRGNzsxMTExIDExNzIgMTFCNjsKK0Q0Rjg7RDRGODsxMTExIDExNzIgMTFCNztENEY4OzExMTEgMTE3MiAxMUI3OworRDRGOTtENEY5OzExMTEgMTE3MiAxMUI4O0Q0Rjk7MTExMSAxMTcyIDExQjg7CitENEZBO0Q0RkE7MTExMSAxMTcyIDExQjk7RDRGQTsxMTExIDExNzIgMTFCOTsKK0Q0RkI7RDRGQjsxMTExIDExNzIgMTFCQTtENEZCOzExMTEgMTE3MiAxMUJBOworRDRGQztENEZDOzExMTEgMTE3MiAxMUJCO0Q0RkM7MTExMSAxMTcyIDExQkI7CitENEZEO0Q0RkQ7MTExMSAxMTcyIDExQkM7RDRGRDsxMTExIDExNzIgMTFCQzsKK0Q0RkU7RDRGRTsxMTExIDExNzIgMTFCRDtENEZFOzExMTEgMTE3MiAxMUJEOworRDRGRjtENEZGOzExMTEgMTE3MiAxMUJFO0Q0RkY7MTExMSAxMTcyIDExQkU7CitENTAwO0Q1MDA7MTExMSAxMTcyIDExQkY7RDUwMDsxMTExIDExNzIgMTFCRjsKK0Q1MDE7RDUwMTsxMTExIDExNzIgMTFDMDtENTAxOzExMTEgMTE3MiAxMUMwOworRDUwMjtENTAyOzExMTEgMTE3MiAxMUMxO0Q1MDI7MTExMSAxMTcyIDExQzE7CitENTAzO0Q1MDM7MTExMSAxMTcyIDExQzI7RDUwMzsxMTExIDExNzIgMTFDMjsKK0Q1MDQ7RDUwNDsxMTExIDExNzM7RDUwNDsxMTExIDExNzM7CitENTA1O0Q1MDU7MTExMSAxMTczIDExQTg7RDUwNTsxMTExIDExNzMgMTFBODsKK0Q1MDY7RDUwNjsxMTExIDExNzMgMTFBOTtENTA2OzExMTEgMTE3MyAxMUE5OworRDUwNztENTA3OzExMTEgMTE3MyAxMUFBO0Q1MDc7MTExMSAxMTczIDExQUE7CitENTA4O0Q1MDg7MTExMSAxMTczIDExQUI7RDUwODsxMTExIDExNzMgMTFBQjsKK0Q1MDk7RDUwOTsxMTExIDExNzMgMTFBQztENTA5OzExMTEgMTE3MyAxMUFDOworRDUwQTtENTBBOzExMTEgMTE3MyAxMUFEO0Q1MEE7MTExMSAxMTczIDExQUQ7CitENTBCO0Q1MEI7MTExMSAxMTczIDExQUU7RDUwQjsxMTExIDExNzMgMTFBRTsKK0Q1MEM7RDUwQzsxMTExIDExNzMgMTFBRjtENTBDOzExMTEgMTE3MyAxMUFGOworRDUwRDtENTBEOzExMTEgMTE3MyAxMUIwO0Q1MEQ7MTExMSAxMTczIDExQjA7CitENTBFO0Q1MEU7MTExMSAxMTczIDExQjE7RDUwRTsxMTExIDExNzMgMTFCMTsKK0Q1MEY7RDUwRjsxMTExIDExNzMgMTFCMjtENTBGOzExMTEgMTE3MyAxMUIyOworRDUxMDtENTEwOzExMTEgMTE3MyAxMUIzO0Q1MTA7MTExMSAxMTczIDExQjM7CitENTExO0Q1MTE7MTExMSAxMTczIDExQjQ7RDUxMTsxMTExIDExNzMgMTFCNDsKK0Q1MTI7RDUxMjsxMTExIDExNzMgMTFCNTtENTEyOzExMTEgMTE3MyAxMUI1OworRDUxMztENTEzOzExMTEgMTE3MyAxMUI2O0Q1MTM7MTExMSAxMTczIDExQjY7CitENTE0O0Q1MTQ7MTExMSAxMTczIDExQjc7RDUxNDsxMTExIDExNzMgMTFCNzsKK0Q1MTU7RDUxNTsxMTExIDExNzMgMTFCODtENTE1OzExMTEgMTE3MyAxMUI4OworRDUxNjtENTE2OzExMTEgMTE3MyAxMUI5O0Q1MTY7MTExMSAxMTczIDExQjk7CitENTE3O0Q1MTc7MTExMSAxMTczIDExQkE7RDUxNzsxMTExIDExNzMgMTFCQTsKK0Q1MTg7RDUxODsxMTExIDExNzMgMTFCQjtENTE4OzExMTEgMTE3MyAxMUJCOworRDUxOTtENTE5OzExMTEgMTE3MyAxMUJDO0Q1MTk7MTExMSAxMTczIDExQkM7CitENTFBO0Q1MUE7MTExMSAxMTczIDExQkQ7RDUxQTsxMTExIDExNzMgMTFCRDsKK0Q1MUI7RDUxQjsxMTExIDExNzMgMTFCRTtENTFCOzExMTEgMTE3MyAxMUJFOworRDUxQztENTFDOzExMTEgMTE3MyAxMUJGO0Q1MUM7MTExMSAxMTczIDExQkY7CitENTFEO0Q1MUQ7MTExMSAxMTczIDExQzA7RDUxRDsxMTExIDExNzMgMTFDMDsKK0Q1MUU7RDUxRTsxMTExIDExNzMgMTFDMTtENTFFOzExMTEgMTE3MyAxMUMxOworRDUxRjtENTFGOzExMTEgMTE3MyAxMUMyO0Q1MUY7MTExMSAxMTczIDExQzI7CitENTIwO0Q1MjA7MTExMSAxMTc0O0Q1MjA7MTExMSAxMTc0OworRDUyMTtENTIxOzExMTEgMTE3NCAxMUE4O0Q1MjE7MTExMSAxMTc0IDExQTg7CitENTIyO0Q1MjI7MTExMSAxMTc0IDExQTk7RDUyMjsxMTExIDExNzQgMTFBOTsKK0Q1MjM7RDUyMzsxMTExIDExNzQgMTFBQTtENTIzOzExMTEgMTE3NCAxMUFBOworRDUyNDtENTI0OzExMTEgMTE3NCAxMUFCO0Q1MjQ7MTExMSAxMTc0IDExQUI7CitENTI1O0Q1MjU7MTExMSAxMTc0IDExQUM7RDUyNTsxMTExIDExNzQgMTFBQzsKK0Q1MjY7RDUyNjsxMTExIDExNzQgMTFBRDtENTI2OzExMTEgMTE3NCAxMUFEOworRDUyNztENTI3OzExMTEgMTE3NCAxMUFFO0Q1Mjc7MTExMSAxMTc0IDExQUU7CitENTI4O0Q1Mjg7MTExMSAxMTc0IDExQUY7RDUyODsxMTExIDExNzQgMTFBRjsKK0Q1Mjk7RDUyOTsxMTExIDExNzQgMTFCMDtENTI5OzExMTEgMTE3NCAxMUIwOworRDUyQTtENTJBOzExMTEgMTE3NCAxMUIxO0Q1MkE7MTExMSAxMTc0IDExQjE7CitENTJCO0Q1MkI7MTExMSAxMTc0IDExQjI7RDUyQjsxMTExIDExNzQgMTFCMjsKK0Q1MkM7RDUyQzsxMTExIDExNzQgMTFCMztENTJDOzExMTEgMTE3NCAxMUIzOworRDUyRDtENTJEOzExMTEgMTE3NCAxMUI0O0Q1MkQ7MTExMSAxMTc0IDExQjQ7CitENTJFO0Q1MkU7MTExMSAxMTc0IDExQjU7RDUyRTsxMTExIDExNzQgMTFCNTsKK0Q1MkY7RDUyRjsxMTExIDExNzQgMTFCNjtENTJGOzExMTEgMTE3NCAxMUI2OworRDUzMDtENTMwOzExMTEgMTE3NCAxMUI3O0Q1MzA7MTExMSAxMTc0IDExQjc7CitENTMxO0Q1MzE7MTExMSAxMTc0IDExQjg7RDUzMTsxMTExIDExNzQgMTFCODsKK0Q1MzI7RDUzMjsxMTExIDExNzQgMTFCOTtENTMyOzExMTEgMTE3NCAxMUI5OworRDUzMztENTMzOzExMTEgMTE3NCAxMUJBO0Q1MzM7MTExMSAxMTc0IDExQkE7CitENTM0O0Q1MzQ7MTExMSAxMTc0IDExQkI7RDUzNDsxMTExIDExNzQgMTFCQjsKK0Q1MzU7RDUzNTsxMTExIDExNzQgMTFCQztENTM1OzExMTEgMTE3NCAxMUJDOworRDUzNjtENTM2OzExMTEgMTE3NCAxMUJEO0Q1MzY7MTExMSAxMTc0IDExQkQ7CitENTM3O0Q1Mzc7MTExMSAxMTc0IDExQkU7RDUzNzsxMTExIDExNzQgMTFCRTsKK0Q1Mzg7RDUzODsxMTExIDExNzQgMTFCRjtENTM4OzExMTEgMTE3NCAxMUJGOworRDUzOTtENTM5OzExMTEgMTE3NCAxMUMwO0Q1Mzk7MTExMSAxMTc0IDExQzA7CitENTNBO0Q1M0E7MTExMSAxMTc0IDExQzE7RDUzQTsxMTExIDExNzQgMTFDMTsKK0Q1M0I7RDUzQjsxMTExIDExNzQgMTFDMjtENTNCOzExMTEgMTE3NCAxMUMyOworRDUzQztENTNDOzExMTEgMTE3NTtENTNDOzExMTEgMTE3NTsKK0Q1M0Q7RDUzRDsxMTExIDExNzUgMTFBODtENTNEOzExMTEgMTE3NSAxMUE4OworRDUzRTtENTNFOzExMTEgMTE3NSAxMUE5O0Q1M0U7MTExMSAxMTc1IDExQTk7CitENTNGO0Q1M0Y7MTExMSAxMTc1IDExQUE7RDUzRjsxMTExIDExNzUgMTFBQTsKK0Q1NDA7RDU0MDsxMTExIDExNzUgMTFBQjtENTQwOzExMTEgMTE3NSAxMUFCOworRDU0MTtENTQxOzExMTEgMTE3NSAxMUFDO0Q1NDE7MTExMSAxMTc1IDExQUM7CitENTQyO0Q1NDI7MTExMSAxMTc1IDExQUQ7RDU0MjsxMTExIDExNzUgMTFBRDsKK0Q1NDM7RDU0MzsxMTExIDExNzUgMTFBRTtENTQzOzExMTEgMTE3NSAxMUFFOworRDU0NDtENTQ0OzExMTEgMTE3NSAxMUFGO0Q1NDQ7MTExMSAxMTc1IDExQUY7CitENTQ1O0Q1NDU7MTExMSAxMTc1IDExQjA7RDU0NTsxMTExIDExNzUgMTFCMDsKK0Q1NDY7RDU0NjsxMTExIDExNzUgMTFCMTtENTQ2OzExMTEgMTE3NSAxMUIxOworRDU0NztENTQ3OzExMTEgMTE3NSAxMUIyO0Q1NDc7MTExMSAxMTc1IDExQjI7CitENTQ4O0Q1NDg7MTExMSAxMTc1IDExQjM7RDU0ODsxMTExIDExNzUgMTFCMzsKK0Q1NDk7RDU0OTsxMTExIDExNzUgMTFCNDtENTQ5OzExMTEgMTE3NSAxMUI0OworRDU0QTtENTRBOzExMTEgMTE3NSAxMUI1O0Q1NEE7MTExMSAxMTc1IDExQjU7CitENTRCO0Q1NEI7MTExMSAxMTc1IDExQjY7RDU0QjsxMTExIDExNzUgMTFCNjsKK0Q1NEM7RDU0QzsxMTExIDExNzUgMTFCNztENTRDOzExMTEgMTE3NSAxMUI3OworRDU0RDtENTREOzExMTEgMTE3NSAxMUI4O0Q1NEQ7MTExMSAxMTc1IDExQjg7CitENTRFO0Q1NEU7MTExMSAxMTc1IDExQjk7RDU0RTsxMTExIDExNzUgMTFCOTsKK0Q1NEY7RDU0RjsxMTExIDExNzUgMTFCQTtENTRGOzExMTEgMTE3NSAxMUJBOworRDU1MDtENTUwOzExMTEgMTE3NSAxMUJCO0Q1NTA7MTExMSAxMTc1IDExQkI7CitENTUxO0Q1NTE7MTExMSAxMTc1IDExQkM7RDU1MTsxMTExIDExNzUgMTFCQzsKK0Q1NTI7RDU1MjsxMTExIDExNzUgMTFCRDtENTUyOzExMTEgMTE3NSAxMUJEOworRDU1MztENTUzOzExMTEgMTE3NSAxMUJFO0Q1NTM7MTExMSAxMTc1IDExQkU7CitENTU0O0Q1NTQ7MTExMSAxMTc1IDExQkY7RDU1NDsxMTExIDExNzUgMTFCRjsKK0Q1NTU7RDU1NTsxMTExIDExNzUgMTFDMDtENTU1OzExMTEgMTE3NSAxMUMwOworRDU1NjtENTU2OzExMTEgMTE3NSAxMUMxO0Q1NTY7MTExMSAxMTc1IDExQzE7CitENTU3O0Q1NTc7MTExMSAxMTc1IDExQzI7RDU1NzsxMTExIDExNzUgMTFDMjsKK0Q1NTg7RDU1ODsxMTEyIDExNjE7RDU1ODsxMTEyIDExNjE7CitENTU5O0Q1NTk7MTExMiAxMTYxIDExQTg7RDU1OTsxMTEyIDExNjEgMTFBODsKK0Q1NUE7RDU1QTsxMTEyIDExNjEgMTFBOTtENTVBOzExMTIgMTE2MSAxMUE5OworRDU1QjtENTVCOzExMTIgMTE2MSAxMUFBO0Q1NUI7MTExMiAxMTYxIDExQUE7CitENTVDO0Q1NUM7MTExMiAxMTYxIDExQUI7RDU1QzsxMTEyIDExNjEgMTFBQjsKK0Q1NUQ7RDU1RDsxMTEyIDExNjEgMTFBQztENTVEOzExMTIgMTE2MSAxMUFDOworRDU1RTtENTVFOzExMTIgMTE2MSAxMUFEO0Q1NUU7MTExMiAxMTYxIDExQUQ7CitENTVGO0Q1NUY7MTExMiAxMTYxIDExQUU7RDU1RjsxMTEyIDExNjEgMTFBRTsKK0Q1NjA7RDU2MDsxMTEyIDExNjEgMTFBRjtENTYwOzExMTIgMTE2MSAxMUFGOworRDU2MTtENTYxOzExMTIgMTE2MSAxMUIwO0Q1NjE7MTExMiAxMTYxIDExQjA7CitENTYyO0Q1NjI7MTExMiAxMTYxIDExQjE7RDU2MjsxMTEyIDExNjEgMTFCMTsKK0Q1NjM7RDU2MzsxMTEyIDExNjEgMTFCMjtENTYzOzExMTIgMTE2MSAxMUIyOworRDU2NDtENTY0OzExMTIgMTE2MSAxMUIzO0Q1NjQ7MTExMiAxMTYxIDExQjM7CitENTY1O0Q1NjU7MTExMiAxMTYxIDExQjQ7RDU2NTsxMTEyIDExNjEgMTFCNDsKK0Q1NjY7RDU2NjsxMTEyIDExNjEgMTFCNTtENTY2OzExMTIgMTE2MSAxMUI1OworRDU2NztENTY3OzExMTIgMTE2MSAxMUI2O0Q1Njc7MTExMiAxMTYxIDExQjY7CitENTY4O0Q1Njg7MTExMiAxMTYxIDExQjc7RDU2ODsxMTEyIDExNjEgMTFCNzsKK0Q1Njk7RDU2OTsxMTEyIDExNjEgMTFCODtENTY5OzExMTIgMTE2MSAxMUI4OworRDU2QTtENTZBOzExMTIgMTE2MSAxMUI5O0Q1NkE7MTExMiAxMTYxIDExQjk7CitENTZCO0Q1NkI7MTExMiAxMTYxIDExQkE7RDU2QjsxMTEyIDExNjEgMTFCQTsKK0Q1NkM7RDU2QzsxMTEyIDExNjEgMTFCQjtENTZDOzExMTIgMTE2MSAxMUJCOworRDU2RDtENTZEOzExMTIgMTE2MSAxMUJDO0Q1NkQ7MTExMiAxMTYxIDExQkM7CitENTZFO0Q1NkU7MTExMiAxMTYxIDExQkQ7RDU2RTsxMTEyIDExNjEgMTFCRDsKK0Q1NkY7RDU2RjsxMTEyIDExNjEgMTFCRTtENTZGOzExMTIgMTE2MSAxMUJFOworRDU3MDtENTcwOzExMTIgMTE2MSAxMUJGO0Q1NzA7MTExMiAxMTYxIDExQkY7CitENTcxO0Q1NzE7MTExMiAxMTYxIDExQzA7RDU3MTsxMTEyIDExNjEgMTFDMDsKK0Q1NzI7RDU3MjsxMTEyIDExNjEgMTFDMTtENTcyOzExMTIgMTE2MSAxMUMxOworRDU3MztENTczOzExMTIgMTE2MSAxMUMyO0Q1NzM7MTExMiAxMTYxIDExQzI7CitENTc0O0Q1NzQ7MTExMiAxMTYyO0Q1NzQ7MTExMiAxMTYyOworRDU3NTtENTc1OzExMTIgMTE2MiAxMUE4O0Q1NzU7MTExMiAxMTYyIDExQTg7CitENTc2O0Q1NzY7MTExMiAxMTYyIDExQTk7RDU3NjsxMTEyIDExNjIgMTFBOTsKK0Q1Nzc7RDU3NzsxMTEyIDExNjIgMTFBQTtENTc3OzExMTIgMTE2MiAxMUFBOworRDU3ODtENTc4OzExMTIgMTE2MiAxMUFCO0Q1Nzg7MTExMiAxMTYyIDExQUI7CitENTc5O0Q1Nzk7MTExMiAxMTYyIDExQUM7RDU3OTsxMTEyIDExNjIgMTFBQzsKK0Q1N0E7RDU3QTsxMTEyIDExNjIgMTFBRDtENTdBOzExMTIgMTE2MiAxMUFEOworRDU3QjtENTdCOzExMTIgMTE2MiAxMUFFO0Q1N0I7MTExMiAxMTYyIDExQUU7CitENTdDO0Q1N0M7MTExMiAxMTYyIDExQUY7RDU3QzsxMTEyIDExNjIgMTFBRjsKK0Q1N0Q7RDU3RDsxMTEyIDExNjIgMTFCMDtENTdEOzExMTIgMTE2MiAxMUIwOworRDU3RTtENTdFOzExMTIgMTE2MiAxMUIxO0Q1N0U7MTExMiAxMTYyIDExQjE7CitENTdGO0Q1N0Y7MTExMiAxMTYyIDExQjI7RDU3RjsxMTEyIDExNjIgMTFCMjsKK0Q1ODA7RDU4MDsxMTEyIDExNjIgMTFCMztENTgwOzExMTIgMTE2MiAxMUIzOworRDU4MTtENTgxOzExMTIgMTE2MiAxMUI0O0Q1ODE7MTExMiAxMTYyIDExQjQ7CitENTgyO0Q1ODI7MTExMiAxMTYyIDExQjU7RDU4MjsxMTEyIDExNjIgMTFCNTsKK0Q1ODM7RDU4MzsxMTEyIDExNjIgMTFCNjtENTgzOzExMTIgMTE2MiAxMUI2OworRDU4NDtENTg0OzExMTIgMTE2MiAxMUI3O0Q1ODQ7MTExMiAxMTYyIDExQjc7CitENTg1O0Q1ODU7MTExMiAxMTYyIDExQjg7RDU4NTsxMTEyIDExNjIgMTFCODsKK0Q1ODY7RDU4NjsxMTEyIDExNjIgMTFCOTtENTg2OzExMTIgMTE2MiAxMUI5OworRDU4NztENTg3OzExMTIgMTE2MiAxMUJBO0Q1ODc7MTExMiAxMTYyIDExQkE7CitENTg4O0Q1ODg7MTExMiAxMTYyIDExQkI7RDU4ODsxMTEyIDExNjIgMTFCQjsKK0Q1ODk7RDU4OTsxMTEyIDExNjIgMTFCQztENTg5OzExMTIgMTE2MiAxMUJDOworRDU4QTtENThBOzExMTIgMTE2MiAxMUJEO0Q1OEE7MTExMiAxMTYyIDExQkQ7CitENThCO0Q1OEI7MTExMiAxMTYyIDExQkU7RDU4QjsxMTEyIDExNjIgMTFCRTsKK0Q1OEM7RDU4QzsxMTEyIDExNjIgMTFCRjtENThDOzExMTIgMTE2MiAxMUJGOworRDU4RDtENThEOzExMTIgMTE2MiAxMUMwO0Q1OEQ7MTExMiAxMTYyIDExQzA7CitENThFO0Q1OEU7MTExMiAxMTYyIDExQzE7RDU4RTsxMTEyIDExNjIgMTFDMTsKK0Q1OEY7RDU4RjsxMTEyIDExNjIgMTFDMjtENThGOzExMTIgMTE2MiAxMUMyOworRDU5MDtENTkwOzExMTIgMTE2MztENTkwOzExMTIgMTE2MzsKK0Q1OTE7RDU5MTsxMTEyIDExNjMgMTFBODtENTkxOzExMTIgMTE2MyAxMUE4OworRDU5MjtENTkyOzExMTIgMTE2MyAxMUE5O0Q1OTI7MTExMiAxMTYzIDExQTk7CitENTkzO0Q1OTM7MTExMiAxMTYzIDExQUE7RDU5MzsxMTEyIDExNjMgMTFBQTsKK0Q1OTQ7RDU5NDsxMTEyIDExNjMgMTFBQjtENTk0OzExMTIgMTE2MyAxMUFCOworRDU5NTtENTk1OzExMTIgMTE2MyAxMUFDO0Q1OTU7MTExMiAxMTYzIDExQUM7CitENTk2O0Q1OTY7MTExMiAxMTYzIDExQUQ7RDU5NjsxMTEyIDExNjMgMTFBRDsKK0Q1OTc7RDU5NzsxMTEyIDExNjMgMTFBRTtENTk3OzExMTIgMTE2MyAxMUFFOworRDU5ODtENTk4OzExMTIgMTE2MyAxMUFGO0Q1OTg7MTExMiAxMTYzIDExQUY7CitENTk5O0Q1OTk7MTExMiAxMTYzIDExQjA7RDU5OTsxMTEyIDExNjMgMTFCMDsKK0Q1OUE7RDU5QTsxMTEyIDExNjMgMTFCMTtENTlBOzExMTIgMTE2MyAxMUIxOworRDU5QjtENTlCOzExMTIgMTE2MyAxMUIyO0Q1OUI7MTExMiAxMTYzIDExQjI7CitENTlDO0Q1OUM7MTExMiAxMTYzIDExQjM7RDU5QzsxMTEyIDExNjMgMTFCMzsKK0Q1OUQ7RDU5RDsxMTEyIDExNjMgMTFCNDtENTlEOzExMTIgMTE2MyAxMUI0OworRDU5RTtENTlFOzExMTIgMTE2MyAxMUI1O0Q1OUU7MTExMiAxMTYzIDExQjU7CitENTlGO0Q1OUY7MTExMiAxMTYzIDExQjY7RDU5RjsxMTEyIDExNjMgMTFCNjsKK0Q1QTA7RDVBMDsxMTEyIDExNjMgMTFCNztENUEwOzExMTIgMTE2MyAxMUI3OworRDVBMTtENUExOzExMTIgMTE2MyAxMUI4O0Q1QTE7MTExMiAxMTYzIDExQjg7CitENUEyO0Q1QTI7MTExMiAxMTYzIDExQjk7RDVBMjsxMTEyIDExNjMgMTFCOTsKK0Q1QTM7RDVBMzsxMTEyIDExNjMgMTFCQTtENUEzOzExMTIgMTE2MyAxMUJBOworRDVBNDtENUE0OzExMTIgMTE2MyAxMUJCO0Q1QTQ7MTExMiAxMTYzIDExQkI7CitENUE1O0Q1QTU7MTExMiAxMTYzIDExQkM7RDVBNTsxMTEyIDExNjMgMTFCQzsKK0Q1QTY7RDVBNjsxMTEyIDExNjMgMTFCRDtENUE2OzExMTIgMTE2MyAxMUJEOworRDVBNztENUE3OzExMTIgMTE2MyAxMUJFO0Q1QTc7MTExMiAxMTYzIDExQkU7CitENUE4O0Q1QTg7MTExMiAxMTYzIDExQkY7RDVBODsxMTEyIDExNjMgMTFCRjsKK0Q1QTk7RDVBOTsxMTEyIDExNjMgMTFDMDtENUE5OzExMTIgMTE2MyAxMUMwOworRDVBQTtENUFBOzExMTIgMTE2MyAxMUMxO0Q1QUE7MTExMiAxMTYzIDExQzE7CitENUFCO0Q1QUI7MTExMiAxMTYzIDExQzI7RDVBQjsxMTEyIDExNjMgMTFDMjsKK0Q1QUM7RDVBQzsxMTEyIDExNjQ7RDVBQzsxMTEyIDExNjQ7CitENUFEO0Q1QUQ7MTExMiAxMTY0IDExQTg7RDVBRDsxMTEyIDExNjQgMTFBODsKK0Q1QUU7RDVBRTsxMTEyIDExNjQgMTFBOTtENUFFOzExMTIgMTE2NCAxMUE5OworRDVBRjtENUFGOzExMTIgMTE2NCAxMUFBO0Q1QUY7MTExMiAxMTY0IDExQUE7CitENUIwO0Q1QjA7MTExMiAxMTY0IDExQUI7RDVCMDsxMTEyIDExNjQgMTFBQjsKK0Q1QjE7RDVCMTsxMTEyIDExNjQgMTFBQztENUIxOzExMTIgMTE2NCAxMUFDOworRDVCMjtENUIyOzExMTIgMTE2NCAxMUFEO0Q1QjI7MTExMiAxMTY0IDExQUQ7CitENUIzO0Q1QjM7MTExMiAxMTY0IDExQUU7RDVCMzsxMTEyIDExNjQgMTFBRTsKK0Q1QjQ7RDVCNDsxMTEyIDExNjQgMTFBRjtENUI0OzExMTIgMTE2NCAxMUFGOworRDVCNTtENUI1OzExMTIgMTE2NCAxMUIwO0Q1QjU7MTExMiAxMTY0IDExQjA7CitENUI2O0Q1QjY7MTExMiAxMTY0IDExQjE7RDVCNjsxMTEyIDExNjQgMTFCMTsKK0Q1Qjc7RDVCNzsxMTEyIDExNjQgMTFCMjtENUI3OzExMTIgMTE2NCAxMUIyOworRDVCODtENUI4OzExMTIgMTE2NCAxMUIzO0Q1Qjg7MTExMiAxMTY0IDExQjM7CitENUI5O0Q1Qjk7MTExMiAxMTY0IDExQjQ7RDVCOTsxMTEyIDExNjQgMTFCNDsKK0Q1QkE7RDVCQTsxMTEyIDExNjQgMTFCNTtENUJBOzExMTIgMTE2NCAxMUI1OworRDVCQjtENUJCOzExMTIgMTE2NCAxMUI2O0Q1QkI7MTExMiAxMTY0IDExQjY7CitENUJDO0Q1QkM7MTExMiAxMTY0IDExQjc7RDVCQzsxMTEyIDExNjQgMTFCNzsKK0Q1QkQ7RDVCRDsxMTEyIDExNjQgMTFCODtENUJEOzExMTIgMTE2NCAxMUI4OworRDVCRTtENUJFOzExMTIgMTE2NCAxMUI5O0Q1QkU7MTExMiAxMTY0IDExQjk7CitENUJGO0Q1QkY7MTExMiAxMTY0IDExQkE7RDVCRjsxMTEyIDExNjQgMTFCQTsKK0Q1QzA7RDVDMDsxMTEyIDExNjQgMTFCQjtENUMwOzExMTIgMTE2NCAxMUJCOworRDVDMTtENUMxOzExMTIgMTE2NCAxMUJDO0Q1QzE7MTExMiAxMTY0IDExQkM7CitENUMyO0Q1QzI7MTExMiAxMTY0IDExQkQ7RDVDMjsxMTEyIDExNjQgMTFCRDsKK0Q1QzM7RDVDMzsxMTEyIDExNjQgMTFCRTtENUMzOzExMTIgMTE2NCAxMUJFOworRDVDNDtENUM0OzExMTIgMTE2NCAxMUJGO0Q1QzQ7MTExMiAxMTY0IDExQkY7CitENUM1O0Q1QzU7MTExMiAxMTY0IDExQzA7RDVDNTsxMTEyIDExNjQgMTFDMDsKK0Q1QzY7RDVDNjsxMTEyIDExNjQgMTFDMTtENUM2OzExMTIgMTE2NCAxMUMxOworRDVDNztENUM3OzExMTIgMTE2NCAxMUMyO0Q1Qzc7MTExMiAxMTY0IDExQzI7CitENUM4O0Q1Qzg7MTExMiAxMTY1O0Q1Qzg7MTExMiAxMTY1OworRDVDOTtENUM5OzExMTIgMTE2NSAxMUE4O0Q1Qzk7MTExMiAxMTY1IDExQTg7CitENUNBO0Q1Q0E7MTExMiAxMTY1IDExQTk7RDVDQTsxMTEyIDExNjUgMTFBOTsKK0Q1Q0I7RDVDQjsxMTEyIDExNjUgMTFBQTtENUNCOzExMTIgMTE2NSAxMUFBOworRDVDQztENUNDOzExMTIgMTE2NSAxMUFCO0Q1Q0M7MTExMiAxMTY1IDExQUI7CitENUNEO0Q1Q0Q7MTExMiAxMTY1IDExQUM7RDVDRDsxMTEyIDExNjUgMTFBQzsKK0Q1Q0U7RDVDRTsxMTEyIDExNjUgMTFBRDtENUNFOzExMTIgMTE2NSAxMUFEOworRDVDRjtENUNGOzExMTIgMTE2NSAxMUFFO0Q1Q0Y7MTExMiAxMTY1IDExQUU7CitENUQwO0Q1RDA7MTExMiAxMTY1IDExQUY7RDVEMDsxMTEyIDExNjUgMTFBRjsKK0Q1RDE7RDVEMTsxMTEyIDExNjUgMTFCMDtENUQxOzExMTIgMTE2NSAxMUIwOworRDVEMjtENUQyOzExMTIgMTE2NSAxMUIxO0Q1RDI7MTExMiAxMTY1IDExQjE7CitENUQzO0Q1RDM7MTExMiAxMTY1IDExQjI7RDVEMzsxMTEyIDExNjUgMTFCMjsKK0Q1RDQ7RDVENDsxMTEyIDExNjUgMTFCMztENUQ0OzExMTIgMTE2NSAxMUIzOworRDVENTtENUQ1OzExMTIgMTE2NSAxMUI0O0Q1RDU7MTExMiAxMTY1IDExQjQ7CitENUQ2O0Q1RDY7MTExMiAxMTY1IDExQjU7RDVENjsxMTEyIDExNjUgMTFCNTsKK0Q1RDc7RDVENzsxMTEyIDExNjUgMTFCNjtENUQ3OzExMTIgMTE2NSAxMUI2OworRDVEODtENUQ4OzExMTIgMTE2NSAxMUI3O0Q1RDg7MTExMiAxMTY1IDExQjc7CitENUQ5O0Q1RDk7MTExMiAxMTY1IDExQjg7RDVEOTsxMTEyIDExNjUgMTFCODsKK0Q1REE7RDVEQTsxMTEyIDExNjUgMTFCOTtENURBOzExMTIgMTE2NSAxMUI5OworRDVEQjtENURCOzExMTIgMTE2NSAxMUJBO0Q1REI7MTExMiAxMTY1IDExQkE7CitENURDO0Q1REM7MTExMiAxMTY1IDExQkI7RDVEQzsxMTEyIDExNjUgMTFCQjsKK0Q1REQ7RDVERDsxMTEyIDExNjUgMTFCQztENUREOzExMTIgMTE2NSAxMUJDOworRDVERTtENURFOzExMTIgMTE2NSAxMUJEO0Q1REU7MTExMiAxMTY1IDExQkQ7CitENURGO0Q1REY7MTExMiAxMTY1IDExQkU7RDVERjsxMTEyIDExNjUgMTFCRTsKK0Q1RTA7RDVFMDsxMTEyIDExNjUgMTFCRjtENUUwOzExMTIgMTE2NSAxMUJGOworRDVFMTtENUUxOzExMTIgMTE2NSAxMUMwO0Q1RTE7MTExMiAxMTY1IDExQzA7CitENUUyO0Q1RTI7MTExMiAxMTY1IDExQzE7RDVFMjsxMTEyIDExNjUgMTFDMTsKK0Q1RTM7RDVFMzsxMTEyIDExNjUgMTFDMjtENUUzOzExMTIgMTE2NSAxMUMyOworRDVFNDtENUU0OzExMTIgMTE2NjtENUU0OzExMTIgMTE2NjsKK0Q1RTU7RDVFNTsxMTEyIDExNjYgMTFBODtENUU1OzExMTIgMTE2NiAxMUE4OworRDVFNjtENUU2OzExMTIgMTE2NiAxMUE5O0Q1RTY7MTExMiAxMTY2IDExQTk7CitENUU3O0Q1RTc7MTExMiAxMTY2IDExQUE7RDVFNzsxMTEyIDExNjYgMTFBQTsKK0Q1RTg7RDVFODsxMTEyIDExNjYgMTFBQjtENUU4OzExMTIgMTE2NiAxMUFCOworRDVFOTtENUU5OzExMTIgMTE2NiAxMUFDO0Q1RTk7MTExMiAxMTY2IDExQUM7CitENUVBO0Q1RUE7MTExMiAxMTY2IDExQUQ7RDVFQTsxMTEyIDExNjYgMTFBRDsKK0Q1RUI7RDVFQjsxMTEyIDExNjYgMTFBRTtENUVCOzExMTIgMTE2NiAxMUFFOworRDVFQztENUVDOzExMTIgMTE2NiAxMUFGO0Q1RUM7MTExMiAxMTY2IDExQUY7CitENUVEO0Q1RUQ7MTExMiAxMTY2IDExQjA7RDVFRDsxMTEyIDExNjYgMTFCMDsKK0Q1RUU7RDVFRTsxMTEyIDExNjYgMTFCMTtENUVFOzExMTIgMTE2NiAxMUIxOworRDVFRjtENUVGOzExMTIgMTE2NiAxMUIyO0Q1RUY7MTExMiAxMTY2IDExQjI7CitENUYwO0Q1RjA7MTExMiAxMTY2IDExQjM7RDVGMDsxMTEyIDExNjYgMTFCMzsKK0Q1RjE7RDVGMTsxMTEyIDExNjYgMTFCNDtENUYxOzExMTIgMTE2NiAxMUI0OworRDVGMjtENUYyOzExMTIgMTE2NiAxMUI1O0Q1RjI7MTExMiAxMTY2IDExQjU7CitENUYzO0Q1RjM7MTExMiAxMTY2IDExQjY7RDVGMzsxMTEyIDExNjYgMTFCNjsKK0Q1RjQ7RDVGNDsxMTEyIDExNjYgMTFCNztENUY0OzExMTIgMTE2NiAxMUI3OworRDVGNTtENUY1OzExMTIgMTE2NiAxMUI4O0Q1RjU7MTExMiAxMTY2IDExQjg7CitENUY2O0Q1RjY7MTExMiAxMTY2IDExQjk7RDVGNjsxMTEyIDExNjYgMTFCOTsKK0Q1Rjc7RDVGNzsxMTEyIDExNjYgMTFCQTtENUY3OzExMTIgMTE2NiAxMUJBOworRDVGODtENUY4OzExMTIgMTE2NiAxMUJCO0Q1Rjg7MTExMiAxMTY2IDExQkI7CitENUY5O0Q1Rjk7MTExMiAxMTY2IDExQkM7RDVGOTsxMTEyIDExNjYgMTFCQzsKK0Q1RkE7RDVGQTsxMTEyIDExNjYgMTFCRDtENUZBOzExMTIgMTE2NiAxMUJEOworRDVGQjtENUZCOzExMTIgMTE2NiAxMUJFO0Q1RkI7MTExMiAxMTY2IDExQkU7CitENUZDO0Q1RkM7MTExMiAxMTY2IDExQkY7RDVGQzsxMTEyIDExNjYgMTFCRjsKK0Q1RkQ7RDVGRDsxMTEyIDExNjYgMTFDMDtENUZEOzExMTIgMTE2NiAxMUMwOworRDVGRTtENUZFOzExMTIgMTE2NiAxMUMxO0Q1RkU7MTExMiAxMTY2IDExQzE7CitENUZGO0Q1RkY7MTExMiAxMTY2IDExQzI7RDVGRjsxMTEyIDExNjYgMTFDMjsKK0Q2MDA7RDYwMDsxMTEyIDExNjc7RDYwMDsxMTEyIDExNjc7CitENjAxO0Q2MDE7MTExMiAxMTY3IDExQTg7RDYwMTsxMTEyIDExNjcgMTFBODsKK0Q2MDI7RDYwMjsxMTEyIDExNjcgMTFBOTtENjAyOzExMTIgMTE2NyAxMUE5OworRDYwMztENjAzOzExMTIgMTE2NyAxMUFBO0Q2MDM7MTExMiAxMTY3IDExQUE7CitENjA0O0Q2MDQ7MTExMiAxMTY3IDExQUI7RDYwNDsxMTEyIDExNjcgMTFBQjsKK0Q2MDU7RDYwNTsxMTEyIDExNjcgMTFBQztENjA1OzExMTIgMTE2NyAxMUFDOworRDYwNjtENjA2OzExMTIgMTE2NyAxMUFEO0Q2MDY7MTExMiAxMTY3IDExQUQ7CitENjA3O0Q2MDc7MTExMiAxMTY3IDExQUU7RDYwNzsxMTEyIDExNjcgMTFBRTsKK0Q2MDg7RDYwODsxMTEyIDExNjcgMTFBRjtENjA4OzExMTIgMTE2NyAxMUFGOworRDYwOTtENjA5OzExMTIgMTE2NyAxMUIwO0Q2MDk7MTExMiAxMTY3IDExQjA7CitENjBBO0Q2MEE7MTExMiAxMTY3IDExQjE7RDYwQTsxMTEyIDExNjcgMTFCMTsKK0Q2MEI7RDYwQjsxMTEyIDExNjcgMTFCMjtENjBCOzExMTIgMTE2NyAxMUIyOworRDYwQztENjBDOzExMTIgMTE2NyAxMUIzO0Q2MEM7MTExMiAxMTY3IDExQjM7CitENjBEO0Q2MEQ7MTExMiAxMTY3IDExQjQ7RDYwRDsxMTEyIDExNjcgMTFCNDsKK0Q2MEU7RDYwRTsxMTEyIDExNjcgMTFCNTtENjBFOzExMTIgMTE2NyAxMUI1OworRDYwRjtENjBGOzExMTIgMTE2NyAxMUI2O0Q2MEY7MTExMiAxMTY3IDExQjY7CitENjEwO0Q2MTA7MTExMiAxMTY3IDExQjc7RDYxMDsxMTEyIDExNjcgMTFCNzsKK0Q2MTE7RDYxMTsxMTEyIDExNjcgMTFCODtENjExOzExMTIgMTE2NyAxMUI4OworRDYxMjtENjEyOzExMTIgMTE2NyAxMUI5O0Q2MTI7MTExMiAxMTY3IDExQjk7CitENjEzO0Q2MTM7MTExMiAxMTY3IDExQkE7RDYxMzsxMTEyIDExNjcgMTFCQTsKK0Q2MTQ7RDYxNDsxMTEyIDExNjcgMTFCQjtENjE0OzExMTIgMTE2NyAxMUJCOworRDYxNTtENjE1OzExMTIgMTE2NyAxMUJDO0Q2MTU7MTExMiAxMTY3IDExQkM7CitENjE2O0Q2MTY7MTExMiAxMTY3IDExQkQ7RDYxNjsxMTEyIDExNjcgMTFCRDsKK0Q2MTc7RDYxNzsxMTEyIDExNjcgMTFCRTtENjE3OzExMTIgMTE2NyAxMUJFOworRDYxODtENjE4OzExMTIgMTE2NyAxMUJGO0Q2MTg7MTExMiAxMTY3IDExQkY7CitENjE5O0Q2MTk7MTExMiAxMTY3IDExQzA7RDYxOTsxMTEyIDExNjcgMTFDMDsKK0Q2MUE7RDYxQTsxMTEyIDExNjcgMTFDMTtENjFBOzExMTIgMTE2NyAxMUMxOworRDYxQjtENjFCOzExMTIgMTE2NyAxMUMyO0Q2MUI7MTExMiAxMTY3IDExQzI7CitENjFDO0Q2MUM7MTExMiAxMTY4O0Q2MUM7MTExMiAxMTY4OworRDYxRDtENjFEOzExMTIgMTE2OCAxMUE4O0Q2MUQ7MTExMiAxMTY4IDExQTg7CitENjFFO0Q2MUU7MTExMiAxMTY4IDExQTk7RDYxRTsxMTEyIDExNjggMTFBOTsKK0Q2MUY7RDYxRjsxMTEyIDExNjggMTFBQTtENjFGOzExMTIgMTE2OCAxMUFBOworRDYyMDtENjIwOzExMTIgMTE2OCAxMUFCO0Q2MjA7MTExMiAxMTY4IDExQUI7CitENjIxO0Q2MjE7MTExMiAxMTY4IDExQUM7RDYyMTsxMTEyIDExNjggMTFBQzsKK0Q2MjI7RDYyMjsxMTEyIDExNjggMTFBRDtENjIyOzExMTIgMTE2OCAxMUFEOworRDYyMztENjIzOzExMTIgMTE2OCAxMUFFO0Q2MjM7MTExMiAxMTY4IDExQUU7CitENjI0O0Q2MjQ7MTExMiAxMTY4IDExQUY7RDYyNDsxMTEyIDExNjggMTFBRjsKK0Q2MjU7RDYyNTsxMTEyIDExNjggMTFCMDtENjI1OzExMTIgMTE2OCAxMUIwOworRDYyNjtENjI2OzExMTIgMTE2OCAxMUIxO0Q2MjY7MTExMiAxMTY4IDExQjE7CitENjI3O0Q2Mjc7MTExMiAxMTY4IDExQjI7RDYyNzsxMTEyIDExNjggMTFCMjsKK0Q2Mjg7RDYyODsxMTEyIDExNjggMTFCMztENjI4OzExMTIgMTE2OCAxMUIzOworRDYyOTtENjI5OzExMTIgMTE2OCAxMUI0O0Q2Mjk7MTExMiAxMTY4IDExQjQ7CitENjJBO0Q2MkE7MTExMiAxMTY4IDExQjU7RDYyQTsxMTEyIDExNjggMTFCNTsKK0Q2MkI7RDYyQjsxMTEyIDExNjggMTFCNjtENjJCOzExMTIgMTE2OCAxMUI2OworRDYyQztENjJDOzExMTIgMTE2OCAxMUI3O0Q2MkM7MTExMiAxMTY4IDExQjc7CitENjJEO0Q2MkQ7MTExMiAxMTY4IDExQjg7RDYyRDsxMTEyIDExNjggMTFCODsKK0Q2MkU7RDYyRTsxMTEyIDExNjggMTFCOTtENjJFOzExMTIgMTE2OCAxMUI5OworRDYyRjtENjJGOzExMTIgMTE2OCAxMUJBO0Q2MkY7MTExMiAxMTY4IDExQkE7CitENjMwO0Q2MzA7MTExMiAxMTY4IDExQkI7RDYzMDsxMTEyIDExNjggMTFCQjsKK0Q2MzE7RDYzMTsxMTEyIDExNjggMTFCQztENjMxOzExMTIgMTE2OCAxMUJDOworRDYzMjtENjMyOzExMTIgMTE2OCAxMUJEO0Q2MzI7MTExMiAxMTY4IDExQkQ7CitENjMzO0Q2MzM7MTExMiAxMTY4IDExQkU7RDYzMzsxMTEyIDExNjggMTFCRTsKK0Q2MzQ7RDYzNDsxMTEyIDExNjggMTFCRjtENjM0OzExMTIgMTE2OCAxMUJGOworRDYzNTtENjM1OzExMTIgMTE2OCAxMUMwO0Q2MzU7MTExMiAxMTY4IDExQzA7CitENjM2O0Q2MzY7MTExMiAxMTY4IDExQzE7RDYzNjsxMTEyIDExNjggMTFDMTsKK0Q2Mzc7RDYzNzsxMTEyIDExNjggMTFDMjtENjM3OzExMTIgMTE2OCAxMUMyOworRDYzODtENjM4OzExMTIgMTE2OTtENjM4OzExMTIgMTE2OTsKK0Q2Mzk7RDYzOTsxMTEyIDExNjkgMTFBODtENjM5OzExMTIgMTE2OSAxMUE4OworRDYzQTtENjNBOzExMTIgMTE2OSAxMUE5O0Q2M0E7MTExMiAxMTY5IDExQTk7CitENjNCO0Q2M0I7MTExMiAxMTY5IDExQUE7RDYzQjsxMTEyIDExNjkgMTFBQTsKK0Q2M0M7RDYzQzsxMTEyIDExNjkgMTFBQjtENjNDOzExMTIgMTE2OSAxMUFCOworRDYzRDtENjNEOzExMTIgMTE2OSAxMUFDO0Q2M0Q7MTExMiAxMTY5IDExQUM7CitENjNFO0Q2M0U7MTExMiAxMTY5IDExQUQ7RDYzRTsxMTEyIDExNjkgMTFBRDsKK0Q2M0Y7RDYzRjsxMTEyIDExNjkgMTFBRTtENjNGOzExMTIgMTE2OSAxMUFFOworRDY0MDtENjQwOzExMTIgMTE2OSAxMUFGO0Q2NDA7MTExMiAxMTY5IDExQUY7CitENjQxO0Q2NDE7MTExMiAxMTY5IDExQjA7RDY0MTsxMTEyIDExNjkgMTFCMDsKK0Q2NDI7RDY0MjsxMTEyIDExNjkgMTFCMTtENjQyOzExMTIgMTE2OSAxMUIxOworRDY0MztENjQzOzExMTIgMTE2OSAxMUIyO0Q2NDM7MTExMiAxMTY5IDExQjI7CitENjQ0O0Q2NDQ7MTExMiAxMTY5IDExQjM7RDY0NDsxMTEyIDExNjkgMTFCMzsKK0Q2NDU7RDY0NTsxMTEyIDExNjkgMTFCNDtENjQ1OzExMTIgMTE2OSAxMUI0OworRDY0NjtENjQ2OzExMTIgMTE2OSAxMUI1O0Q2NDY7MTExMiAxMTY5IDExQjU7CitENjQ3O0Q2NDc7MTExMiAxMTY5IDExQjY7RDY0NzsxMTEyIDExNjkgMTFCNjsKK0Q2NDg7RDY0ODsxMTEyIDExNjkgMTFCNztENjQ4OzExMTIgMTE2OSAxMUI3OworRDY0OTtENjQ5OzExMTIgMTE2OSAxMUI4O0Q2NDk7MTExMiAxMTY5IDExQjg7CitENjRBO0Q2NEE7MTExMiAxMTY5IDExQjk7RDY0QTsxMTEyIDExNjkgMTFCOTsKK0Q2NEI7RDY0QjsxMTEyIDExNjkgMTFCQTtENjRCOzExMTIgMTE2OSAxMUJBOworRDY0QztENjRDOzExMTIgMTE2OSAxMUJCO0Q2NEM7MTExMiAxMTY5IDExQkI7CitENjREO0Q2NEQ7MTExMiAxMTY5IDExQkM7RDY0RDsxMTEyIDExNjkgMTFCQzsKK0Q2NEU7RDY0RTsxMTEyIDExNjkgMTFCRDtENjRFOzExMTIgMTE2OSAxMUJEOworRDY0RjtENjRGOzExMTIgMTE2OSAxMUJFO0Q2NEY7MTExMiAxMTY5IDExQkU7CitENjUwO0Q2NTA7MTExMiAxMTY5IDExQkY7RDY1MDsxMTEyIDExNjkgMTFCRjsKK0Q2NTE7RDY1MTsxMTEyIDExNjkgMTFDMDtENjUxOzExMTIgMTE2OSAxMUMwOworRDY1MjtENjUyOzExMTIgMTE2OSAxMUMxO0Q2NTI7MTExMiAxMTY5IDExQzE7CitENjUzO0Q2NTM7MTExMiAxMTY5IDExQzI7RDY1MzsxMTEyIDExNjkgMTFDMjsKK0Q2NTQ7RDY1NDsxMTEyIDExNkE7RDY1NDsxMTEyIDExNkE7CitENjU1O0Q2NTU7MTExMiAxMTZBIDExQTg7RDY1NTsxMTEyIDExNkEgMTFBODsKK0Q2NTY7RDY1NjsxMTEyIDExNkEgMTFBOTtENjU2OzExMTIgMTE2QSAxMUE5OworRDY1NztENjU3OzExMTIgMTE2QSAxMUFBO0Q2NTc7MTExMiAxMTZBIDExQUE7CitENjU4O0Q2NTg7MTExMiAxMTZBIDExQUI7RDY1ODsxMTEyIDExNkEgMTFBQjsKK0Q2NTk7RDY1OTsxMTEyIDExNkEgMTFBQztENjU5OzExMTIgMTE2QSAxMUFDOworRDY1QTtENjVBOzExMTIgMTE2QSAxMUFEO0Q2NUE7MTExMiAxMTZBIDExQUQ7CitENjVCO0Q2NUI7MTExMiAxMTZBIDExQUU7RDY1QjsxMTEyIDExNkEgMTFBRTsKK0Q2NUM7RDY1QzsxMTEyIDExNkEgMTFBRjtENjVDOzExMTIgMTE2QSAxMUFGOworRDY1RDtENjVEOzExMTIgMTE2QSAxMUIwO0Q2NUQ7MTExMiAxMTZBIDExQjA7CitENjVFO0Q2NUU7MTExMiAxMTZBIDExQjE7RDY1RTsxMTEyIDExNkEgMTFCMTsKK0Q2NUY7RDY1RjsxMTEyIDExNkEgMTFCMjtENjVGOzExMTIgMTE2QSAxMUIyOworRDY2MDtENjYwOzExMTIgMTE2QSAxMUIzO0Q2NjA7MTExMiAxMTZBIDExQjM7CitENjYxO0Q2NjE7MTExMiAxMTZBIDExQjQ7RDY2MTsxMTEyIDExNkEgMTFCNDsKK0Q2NjI7RDY2MjsxMTEyIDExNkEgMTFCNTtENjYyOzExMTIgMTE2QSAxMUI1OworRDY2MztENjYzOzExMTIgMTE2QSAxMUI2O0Q2NjM7MTExMiAxMTZBIDExQjY7CitENjY0O0Q2NjQ7MTExMiAxMTZBIDExQjc7RDY2NDsxMTEyIDExNkEgMTFCNzsKK0Q2NjU7RDY2NTsxMTEyIDExNkEgMTFCODtENjY1OzExMTIgMTE2QSAxMUI4OworRDY2NjtENjY2OzExMTIgMTE2QSAxMUI5O0Q2NjY7MTExMiAxMTZBIDExQjk7CitENjY3O0Q2Njc7MTExMiAxMTZBIDExQkE7RDY2NzsxMTEyIDExNkEgMTFCQTsKK0Q2Njg7RDY2ODsxMTEyIDExNkEgMTFCQjtENjY4OzExMTIgMTE2QSAxMUJCOworRDY2OTtENjY5OzExMTIgMTE2QSAxMUJDO0Q2Njk7MTExMiAxMTZBIDExQkM7CitENjZBO0Q2NkE7MTExMiAxMTZBIDExQkQ7RDY2QTsxMTEyIDExNkEgMTFCRDsKK0Q2NkI7RDY2QjsxMTEyIDExNkEgMTFCRTtENjZCOzExMTIgMTE2QSAxMUJFOworRDY2QztENjZDOzExMTIgMTE2QSAxMUJGO0Q2NkM7MTExMiAxMTZBIDExQkY7CitENjZEO0Q2NkQ7MTExMiAxMTZBIDExQzA7RDY2RDsxMTEyIDExNkEgMTFDMDsKK0Q2NkU7RDY2RTsxMTEyIDExNkEgMTFDMTtENjZFOzExMTIgMTE2QSAxMUMxOworRDY2RjtENjZGOzExMTIgMTE2QSAxMUMyO0Q2NkY7MTExMiAxMTZBIDExQzI7CitENjcwO0Q2NzA7MTExMiAxMTZCO0Q2NzA7MTExMiAxMTZCOworRDY3MTtENjcxOzExMTIgMTE2QiAxMUE4O0Q2NzE7MTExMiAxMTZCIDExQTg7CitENjcyO0Q2NzI7MTExMiAxMTZCIDExQTk7RDY3MjsxMTEyIDExNkIgMTFBOTsKK0Q2NzM7RDY3MzsxMTEyIDExNkIgMTFBQTtENjczOzExMTIgMTE2QiAxMUFBOworRDY3NDtENjc0OzExMTIgMTE2QiAxMUFCO0Q2NzQ7MTExMiAxMTZCIDExQUI7CitENjc1O0Q2NzU7MTExMiAxMTZCIDExQUM7RDY3NTsxMTEyIDExNkIgMTFBQzsKK0Q2NzY7RDY3NjsxMTEyIDExNkIgMTFBRDtENjc2OzExMTIgMTE2QiAxMUFEOworRDY3NztENjc3OzExMTIgMTE2QiAxMUFFO0Q2Nzc7MTExMiAxMTZCIDExQUU7CitENjc4O0Q2Nzg7MTExMiAxMTZCIDExQUY7RDY3ODsxMTEyIDExNkIgMTFBRjsKK0Q2Nzk7RDY3OTsxMTEyIDExNkIgMTFCMDtENjc5OzExMTIgMTE2QiAxMUIwOworRDY3QTtENjdBOzExMTIgMTE2QiAxMUIxO0Q2N0E7MTExMiAxMTZCIDExQjE7CitENjdCO0Q2N0I7MTExMiAxMTZCIDExQjI7RDY3QjsxMTEyIDExNkIgMTFCMjsKK0Q2N0M7RDY3QzsxMTEyIDExNkIgMTFCMztENjdDOzExMTIgMTE2QiAxMUIzOworRDY3RDtENjdEOzExMTIgMTE2QiAxMUI0O0Q2N0Q7MTExMiAxMTZCIDExQjQ7CitENjdFO0Q2N0U7MTExMiAxMTZCIDExQjU7RDY3RTsxMTEyIDExNkIgMTFCNTsKK0Q2N0Y7RDY3RjsxMTEyIDExNkIgMTFCNjtENjdGOzExMTIgMTE2QiAxMUI2OworRDY4MDtENjgwOzExMTIgMTE2QiAxMUI3O0Q2ODA7MTExMiAxMTZCIDExQjc7CitENjgxO0Q2ODE7MTExMiAxMTZCIDExQjg7RDY4MTsxMTEyIDExNkIgMTFCODsKK0Q2ODI7RDY4MjsxMTEyIDExNkIgMTFCOTtENjgyOzExMTIgMTE2QiAxMUI5OworRDY4MztENjgzOzExMTIgMTE2QiAxMUJBO0Q2ODM7MTExMiAxMTZCIDExQkE7CitENjg0O0Q2ODQ7MTExMiAxMTZCIDExQkI7RDY4NDsxMTEyIDExNkIgMTFCQjsKK0Q2ODU7RDY4NTsxMTEyIDExNkIgMTFCQztENjg1OzExMTIgMTE2QiAxMUJDOworRDY4NjtENjg2OzExMTIgMTE2QiAxMUJEO0Q2ODY7MTExMiAxMTZCIDExQkQ7CitENjg3O0Q2ODc7MTExMiAxMTZCIDExQkU7RDY4NzsxMTEyIDExNkIgMTFCRTsKK0Q2ODg7RDY4ODsxMTEyIDExNkIgMTFCRjtENjg4OzExMTIgMTE2QiAxMUJGOworRDY4OTtENjg5OzExMTIgMTE2QiAxMUMwO0Q2ODk7MTExMiAxMTZCIDExQzA7CitENjhBO0Q2OEE7MTExMiAxMTZCIDExQzE7RDY4QTsxMTEyIDExNkIgMTFDMTsKK0Q2OEI7RDY4QjsxMTEyIDExNkIgMTFDMjtENjhCOzExMTIgMTE2QiAxMUMyOworRDY4QztENjhDOzExMTIgMTE2QztENjhDOzExMTIgMTE2QzsKK0Q2OEQ7RDY4RDsxMTEyIDExNkMgMTFBODtENjhEOzExMTIgMTE2QyAxMUE4OworRDY4RTtENjhFOzExMTIgMTE2QyAxMUE5O0Q2OEU7MTExMiAxMTZDIDExQTk7CitENjhGO0Q2OEY7MTExMiAxMTZDIDExQUE7RDY4RjsxMTEyIDExNkMgMTFBQTsKK0Q2OTA7RDY5MDsxMTEyIDExNkMgMTFBQjtENjkwOzExMTIgMTE2QyAxMUFCOworRDY5MTtENjkxOzExMTIgMTE2QyAxMUFDO0Q2OTE7MTExMiAxMTZDIDExQUM7CitENjkyO0Q2OTI7MTExMiAxMTZDIDExQUQ7RDY5MjsxMTEyIDExNkMgMTFBRDsKK0Q2OTM7RDY5MzsxMTEyIDExNkMgMTFBRTtENjkzOzExMTIgMTE2QyAxMUFFOworRDY5NDtENjk0OzExMTIgMTE2QyAxMUFGO0Q2OTQ7MTExMiAxMTZDIDExQUY7CitENjk1O0Q2OTU7MTExMiAxMTZDIDExQjA7RDY5NTsxMTEyIDExNkMgMTFCMDsKK0Q2OTY7RDY5NjsxMTEyIDExNkMgMTFCMTtENjk2OzExMTIgMTE2QyAxMUIxOworRDY5NztENjk3OzExMTIgMTE2QyAxMUIyO0Q2OTc7MTExMiAxMTZDIDExQjI7CitENjk4O0Q2OTg7MTExMiAxMTZDIDExQjM7RDY5ODsxMTEyIDExNkMgMTFCMzsKK0Q2OTk7RDY5OTsxMTEyIDExNkMgMTFCNDtENjk5OzExMTIgMTE2QyAxMUI0OworRDY5QTtENjlBOzExMTIgMTE2QyAxMUI1O0Q2OUE7MTExMiAxMTZDIDExQjU7CitENjlCO0Q2OUI7MTExMiAxMTZDIDExQjY7RDY5QjsxMTEyIDExNkMgMTFCNjsKK0Q2OUM7RDY5QzsxMTEyIDExNkMgMTFCNztENjlDOzExMTIgMTE2QyAxMUI3OworRDY5RDtENjlEOzExMTIgMTE2QyAxMUI4O0Q2OUQ7MTExMiAxMTZDIDExQjg7CitENjlFO0Q2OUU7MTExMiAxMTZDIDExQjk7RDY5RTsxMTEyIDExNkMgMTFCOTsKK0Q2OUY7RDY5RjsxMTEyIDExNkMgMTFCQTtENjlGOzExMTIgMTE2QyAxMUJBOworRDZBMDtENkEwOzExMTIgMTE2QyAxMUJCO0Q2QTA7MTExMiAxMTZDIDExQkI7CitENkExO0Q2QTE7MTExMiAxMTZDIDExQkM7RDZBMTsxMTEyIDExNkMgMTFCQzsKK0Q2QTI7RDZBMjsxMTEyIDExNkMgMTFCRDtENkEyOzExMTIgMTE2QyAxMUJEOworRDZBMztENkEzOzExMTIgMTE2QyAxMUJFO0Q2QTM7MTExMiAxMTZDIDExQkU7CitENkE0O0Q2QTQ7MTExMiAxMTZDIDExQkY7RDZBNDsxMTEyIDExNkMgMTFCRjsKK0Q2QTU7RDZBNTsxMTEyIDExNkMgMTFDMDtENkE1OzExMTIgMTE2QyAxMUMwOworRDZBNjtENkE2OzExMTIgMTE2QyAxMUMxO0Q2QTY7MTExMiAxMTZDIDExQzE7CitENkE3O0Q2QTc7MTExMiAxMTZDIDExQzI7RDZBNzsxMTEyIDExNkMgMTFDMjsKK0Q2QTg7RDZBODsxMTEyIDExNkQ7RDZBODsxMTEyIDExNkQ7CitENkE5O0Q2QTk7MTExMiAxMTZEIDExQTg7RDZBOTsxMTEyIDExNkQgMTFBODsKK0Q2QUE7RDZBQTsxMTEyIDExNkQgMTFBOTtENkFBOzExMTIgMTE2RCAxMUE5OworRDZBQjtENkFCOzExMTIgMTE2RCAxMUFBO0Q2QUI7MTExMiAxMTZEIDExQUE7CitENkFDO0Q2QUM7MTExMiAxMTZEIDExQUI7RDZBQzsxMTEyIDExNkQgMTFBQjsKK0Q2QUQ7RDZBRDsxMTEyIDExNkQgMTFBQztENkFEOzExMTIgMTE2RCAxMUFDOworRDZBRTtENkFFOzExMTIgMTE2RCAxMUFEO0Q2QUU7MTExMiAxMTZEIDExQUQ7CitENkFGO0Q2QUY7MTExMiAxMTZEIDExQUU7RDZBRjsxMTEyIDExNkQgMTFBRTsKK0Q2QjA7RDZCMDsxMTEyIDExNkQgMTFBRjtENkIwOzExMTIgMTE2RCAxMUFGOworRDZCMTtENkIxOzExMTIgMTE2RCAxMUIwO0Q2QjE7MTExMiAxMTZEIDExQjA7CitENkIyO0Q2QjI7MTExMiAxMTZEIDExQjE7RDZCMjsxMTEyIDExNkQgMTFCMTsKK0Q2QjM7RDZCMzsxMTEyIDExNkQgMTFCMjtENkIzOzExMTIgMTE2RCAxMUIyOworRDZCNDtENkI0OzExMTIgMTE2RCAxMUIzO0Q2QjQ7MTExMiAxMTZEIDExQjM7CitENkI1O0Q2QjU7MTExMiAxMTZEIDExQjQ7RDZCNTsxMTEyIDExNkQgMTFCNDsKK0Q2QjY7RDZCNjsxMTEyIDExNkQgMTFCNTtENkI2OzExMTIgMTE2RCAxMUI1OworRDZCNztENkI3OzExMTIgMTE2RCAxMUI2O0Q2Qjc7MTExMiAxMTZEIDExQjY7CitENkI4O0Q2Qjg7MTExMiAxMTZEIDExQjc7RDZCODsxMTEyIDExNkQgMTFCNzsKK0Q2Qjk7RDZCOTsxMTEyIDExNkQgMTFCODtENkI5OzExMTIgMTE2RCAxMUI4OworRDZCQTtENkJBOzExMTIgMTE2RCAxMUI5O0Q2QkE7MTExMiAxMTZEIDExQjk7CitENkJCO0Q2QkI7MTExMiAxMTZEIDExQkE7RDZCQjsxMTEyIDExNkQgMTFCQTsKK0Q2QkM7RDZCQzsxMTEyIDExNkQgMTFCQjtENkJDOzExMTIgMTE2RCAxMUJCOworRDZCRDtENkJEOzExMTIgMTE2RCAxMUJDO0Q2QkQ7MTExMiAxMTZEIDExQkM7CitENkJFO0Q2QkU7MTExMiAxMTZEIDExQkQ7RDZCRTsxMTEyIDExNkQgMTFCRDsKK0Q2QkY7RDZCRjsxMTEyIDExNkQgMTFCRTtENkJGOzExMTIgMTE2RCAxMUJFOworRDZDMDtENkMwOzExMTIgMTE2RCAxMUJGO0Q2QzA7MTExMiAxMTZEIDExQkY7CitENkMxO0Q2QzE7MTExMiAxMTZEIDExQzA7RDZDMTsxMTEyIDExNkQgMTFDMDsKK0Q2QzI7RDZDMjsxMTEyIDExNkQgMTFDMTtENkMyOzExMTIgMTE2RCAxMUMxOworRDZDMztENkMzOzExMTIgMTE2RCAxMUMyO0Q2QzM7MTExMiAxMTZEIDExQzI7CitENkM0O0Q2QzQ7MTExMiAxMTZFO0Q2QzQ7MTExMiAxMTZFOworRDZDNTtENkM1OzExMTIgMTE2RSAxMUE4O0Q2QzU7MTExMiAxMTZFIDExQTg7CitENkM2O0Q2QzY7MTExMiAxMTZFIDExQTk7RDZDNjsxMTEyIDExNkUgMTFBOTsKK0Q2Qzc7RDZDNzsxMTEyIDExNkUgMTFBQTtENkM3OzExMTIgMTE2RSAxMUFBOworRDZDODtENkM4OzExMTIgMTE2RSAxMUFCO0Q2Qzg7MTExMiAxMTZFIDExQUI7CitENkM5O0Q2Qzk7MTExMiAxMTZFIDExQUM7RDZDOTsxMTEyIDExNkUgMTFBQzsKK0Q2Q0E7RDZDQTsxMTEyIDExNkUgMTFBRDtENkNBOzExMTIgMTE2RSAxMUFEOworRDZDQjtENkNCOzExMTIgMTE2RSAxMUFFO0Q2Q0I7MTExMiAxMTZFIDExQUU7CitENkNDO0Q2Q0M7MTExMiAxMTZFIDExQUY7RDZDQzsxMTEyIDExNkUgMTFBRjsKK0Q2Q0Q7RDZDRDsxMTEyIDExNkUgMTFCMDtENkNEOzExMTIgMTE2RSAxMUIwOworRDZDRTtENkNFOzExMTIgMTE2RSAxMUIxO0Q2Q0U7MTExMiAxMTZFIDExQjE7CitENkNGO0Q2Q0Y7MTExMiAxMTZFIDExQjI7RDZDRjsxMTEyIDExNkUgMTFCMjsKK0Q2RDA7RDZEMDsxMTEyIDExNkUgMTFCMztENkQwOzExMTIgMTE2RSAxMUIzOworRDZEMTtENkQxOzExMTIgMTE2RSAxMUI0O0Q2RDE7MTExMiAxMTZFIDExQjQ7CitENkQyO0Q2RDI7MTExMiAxMTZFIDExQjU7RDZEMjsxMTEyIDExNkUgMTFCNTsKK0Q2RDM7RDZEMzsxMTEyIDExNkUgMTFCNjtENkQzOzExMTIgMTE2RSAxMUI2OworRDZENDtENkQ0OzExMTIgMTE2RSAxMUI3O0Q2RDQ7MTExMiAxMTZFIDExQjc7CitENkQ1O0Q2RDU7MTExMiAxMTZFIDExQjg7RDZENTsxMTEyIDExNkUgMTFCODsKK0Q2RDY7RDZENjsxMTEyIDExNkUgMTFCOTtENkQ2OzExMTIgMTE2RSAxMUI5OworRDZENztENkQ3OzExMTIgMTE2RSAxMUJBO0Q2RDc7MTExMiAxMTZFIDExQkE7CitENkQ4O0Q2RDg7MTExMiAxMTZFIDExQkI7RDZEODsxMTEyIDExNkUgMTFCQjsKK0Q2RDk7RDZEOTsxMTEyIDExNkUgMTFCQztENkQ5OzExMTIgMTE2RSAxMUJDOworRDZEQTtENkRBOzExMTIgMTE2RSAxMUJEO0Q2REE7MTExMiAxMTZFIDExQkQ7CitENkRCO0Q2REI7MTExMiAxMTZFIDExQkU7RDZEQjsxMTEyIDExNkUgMTFCRTsKK0Q2REM7RDZEQzsxMTEyIDExNkUgMTFCRjtENkRDOzExMTIgMTE2RSAxMUJGOworRDZERDtENkREOzExMTIgMTE2RSAxMUMwO0Q2REQ7MTExMiAxMTZFIDExQzA7CitENkRFO0Q2REU7MTExMiAxMTZFIDExQzE7RDZERTsxMTEyIDExNkUgMTFDMTsKK0Q2REY7RDZERjsxMTEyIDExNkUgMTFDMjtENkRGOzExMTIgMTE2RSAxMUMyOworRDZFMDtENkUwOzExMTIgMTE2RjtENkUwOzExMTIgMTE2RjsKK0Q2RTE7RDZFMTsxMTEyIDExNkYgMTFBODtENkUxOzExMTIgMTE2RiAxMUE4OworRDZFMjtENkUyOzExMTIgMTE2RiAxMUE5O0Q2RTI7MTExMiAxMTZGIDExQTk7CitENkUzO0Q2RTM7MTExMiAxMTZGIDExQUE7RDZFMzsxMTEyIDExNkYgMTFBQTsKK0Q2RTQ7RDZFNDsxMTEyIDExNkYgMTFBQjtENkU0OzExMTIgMTE2RiAxMUFCOworRDZFNTtENkU1OzExMTIgMTE2RiAxMUFDO0Q2RTU7MTExMiAxMTZGIDExQUM7CitENkU2O0Q2RTY7MTExMiAxMTZGIDExQUQ7RDZFNjsxMTEyIDExNkYgMTFBRDsKK0Q2RTc7RDZFNzsxMTEyIDExNkYgMTFBRTtENkU3OzExMTIgMTE2RiAxMUFFOworRDZFODtENkU4OzExMTIgMTE2RiAxMUFGO0Q2RTg7MTExMiAxMTZGIDExQUY7CitENkU5O0Q2RTk7MTExMiAxMTZGIDExQjA7RDZFOTsxMTEyIDExNkYgMTFCMDsKK0Q2RUE7RDZFQTsxMTEyIDExNkYgMTFCMTtENkVBOzExMTIgMTE2RiAxMUIxOworRDZFQjtENkVCOzExMTIgMTE2RiAxMUIyO0Q2RUI7MTExMiAxMTZGIDExQjI7CitENkVDO0Q2RUM7MTExMiAxMTZGIDExQjM7RDZFQzsxMTEyIDExNkYgMTFCMzsKK0Q2RUQ7RDZFRDsxMTEyIDExNkYgMTFCNDtENkVEOzExMTIgMTE2RiAxMUI0OworRDZFRTtENkVFOzExMTIgMTE2RiAxMUI1O0Q2RUU7MTExMiAxMTZGIDExQjU7CitENkVGO0Q2RUY7MTExMiAxMTZGIDExQjY7RDZFRjsxMTEyIDExNkYgMTFCNjsKK0Q2RjA7RDZGMDsxMTEyIDExNkYgMTFCNztENkYwOzExMTIgMTE2RiAxMUI3OworRDZGMTtENkYxOzExMTIgMTE2RiAxMUI4O0Q2RjE7MTExMiAxMTZGIDExQjg7CitENkYyO0Q2RjI7MTExMiAxMTZGIDExQjk7RDZGMjsxMTEyIDExNkYgMTFCOTsKK0Q2RjM7RDZGMzsxMTEyIDExNkYgMTFCQTtENkYzOzExMTIgMTE2RiAxMUJBOworRDZGNDtENkY0OzExMTIgMTE2RiAxMUJCO0Q2RjQ7MTExMiAxMTZGIDExQkI7CitENkY1O0Q2RjU7MTExMiAxMTZGIDExQkM7RDZGNTsxMTEyIDExNkYgMTFCQzsKK0Q2RjY7RDZGNjsxMTEyIDExNkYgMTFCRDtENkY2OzExMTIgMTE2RiAxMUJEOworRDZGNztENkY3OzExMTIgMTE2RiAxMUJFO0Q2Rjc7MTExMiAxMTZGIDExQkU7CitENkY4O0Q2Rjg7MTExMiAxMTZGIDExQkY7RDZGODsxMTEyIDExNkYgMTFCRjsKK0Q2Rjk7RDZGOTsxMTEyIDExNkYgMTFDMDtENkY5OzExMTIgMTE2RiAxMUMwOworRDZGQTtENkZBOzExMTIgMTE2RiAxMUMxO0Q2RkE7MTExMiAxMTZGIDExQzE7CitENkZCO0Q2RkI7MTExMiAxMTZGIDExQzI7RDZGQjsxMTEyIDExNkYgMTFDMjsKK0Q2RkM7RDZGQzsxMTEyIDExNzA7RDZGQzsxMTEyIDExNzA7CitENkZEO0Q2RkQ7MTExMiAxMTcwIDExQTg7RDZGRDsxMTEyIDExNzAgMTFBODsKK0Q2RkU7RDZGRTsxMTEyIDExNzAgMTFBOTtENkZFOzExMTIgMTE3MCAxMUE5OworRDZGRjtENkZGOzExMTIgMTE3MCAxMUFBO0Q2RkY7MTExMiAxMTcwIDExQUE7CitENzAwO0Q3MDA7MTExMiAxMTcwIDExQUI7RDcwMDsxMTEyIDExNzAgMTFBQjsKK0Q3MDE7RDcwMTsxMTEyIDExNzAgMTFBQztENzAxOzExMTIgMTE3MCAxMUFDOworRDcwMjtENzAyOzExMTIgMTE3MCAxMUFEO0Q3MDI7MTExMiAxMTcwIDExQUQ7CitENzAzO0Q3MDM7MTExMiAxMTcwIDExQUU7RDcwMzsxMTEyIDExNzAgMTFBRTsKK0Q3MDQ7RDcwNDsxMTEyIDExNzAgMTFBRjtENzA0OzExMTIgMTE3MCAxMUFGOworRDcwNTtENzA1OzExMTIgMTE3MCAxMUIwO0Q3MDU7MTExMiAxMTcwIDExQjA7CitENzA2O0Q3MDY7MTExMiAxMTcwIDExQjE7RDcwNjsxMTEyIDExNzAgMTFCMTsKK0Q3MDc7RDcwNzsxMTEyIDExNzAgMTFCMjtENzA3OzExMTIgMTE3MCAxMUIyOworRDcwODtENzA4OzExMTIgMTE3MCAxMUIzO0Q3MDg7MTExMiAxMTcwIDExQjM7CitENzA5O0Q3MDk7MTExMiAxMTcwIDExQjQ7RDcwOTsxMTEyIDExNzAgMTFCNDsKK0Q3MEE7RDcwQTsxMTEyIDExNzAgMTFCNTtENzBBOzExMTIgMTE3MCAxMUI1OworRDcwQjtENzBCOzExMTIgMTE3MCAxMUI2O0Q3MEI7MTExMiAxMTcwIDExQjY7CitENzBDO0Q3MEM7MTExMiAxMTcwIDExQjc7RDcwQzsxMTEyIDExNzAgMTFCNzsKK0Q3MEQ7RDcwRDsxMTEyIDExNzAgMTFCODtENzBEOzExMTIgMTE3MCAxMUI4OworRDcwRTtENzBFOzExMTIgMTE3MCAxMUI5O0Q3MEU7MTExMiAxMTcwIDExQjk7CitENzBGO0Q3MEY7MTExMiAxMTcwIDExQkE7RDcwRjsxMTEyIDExNzAgMTFCQTsKK0Q3MTA7RDcxMDsxMTEyIDExNzAgMTFCQjtENzEwOzExMTIgMTE3MCAxMUJCOworRDcxMTtENzExOzExMTIgMTE3MCAxMUJDO0Q3MTE7MTExMiAxMTcwIDExQkM7CitENzEyO0Q3MTI7MTExMiAxMTcwIDExQkQ7RDcxMjsxMTEyIDExNzAgMTFCRDsKK0Q3MTM7RDcxMzsxMTEyIDExNzAgMTFCRTtENzEzOzExMTIgMTE3MCAxMUJFOworRDcxNDtENzE0OzExMTIgMTE3MCAxMUJGO0Q3MTQ7MTExMiAxMTcwIDExQkY7CitENzE1O0Q3MTU7MTExMiAxMTcwIDExQzA7RDcxNTsxMTEyIDExNzAgMTFDMDsKK0Q3MTY7RDcxNjsxMTEyIDExNzAgMTFDMTtENzE2OzExMTIgMTE3MCAxMUMxOworRDcxNztENzE3OzExMTIgMTE3MCAxMUMyO0Q3MTc7MTExMiAxMTcwIDExQzI7CitENzE4O0Q3MTg7MTExMiAxMTcxO0Q3MTg7MTExMiAxMTcxOworRDcxOTtENzE5OzExMTIgMTE3MSAxMUE4O0Q3MTk7MTExMiAxMTcxIDExQTg7CitENzFBO0Q3MUE7MTExMiAxMTcxIDExQTk7RDcxQTsxMTEyIDExNzEgMTFBOTsKK0Q3MUI7RDcxQjsxMTEyIDExNzEgMTFBQTtENzFCOzExMTIgMTE3MSAxMUFBOworRDcxQztENzFDOzExMTIgMTE3MSAxMUFCO0Q3MUM7MTExMiAxMTcxIDExQUI7CitENzFEO0Q3MUQ7MTExMiAxMTcxIDExQUM7RDcxRDsxMTEyIDExNzEgMTFBQzsKK0Q3MUU7RDcxRTsxMTEyIDExNzEgMTFBRDtENzFFOzExMTIgMTE3MSAxMUFEOworRDcxRjtENzFGOzExMTIgMTE3MSAxMUFFO0Q3MUY7MTExMiAxMTcxIDExQUU7CitENzIwO0Q3MjA7MTExMiAxMTcxIDExQUY7RDcyMDsxMTEyIDExNzEgMTFBRjsKK0Q3MjE7RDcyMTsxMTEyIDExNzEgMTFCMDtENzIxOzExMTIgMTE3MSAxMUIwOworRDcyMjtENzIyOzExMTIgMTE3MSAxMUIxO0Q3MjI7MTExMiAxMTcxIDExQjE7CitENzIzO0Q3MjM7MTExMiAxMTcxIDExQjI7RDcyMzsxMTEyIDExNzEgMTFCMjsKK0Q3MjQ7RDcyNDsxMTEyIDExNzEgMTFCMztENzI0OzExMTIgMTE3MSAxMUIzOworRDcyNTtENzI1OzExMTIgMTE3MSAxMUI0O0Q3MjU7MTExMiAxMTcxIDExQjQ7CitENzI2O0Q3MjY7MTExMiAxMTcxIDExQjU7RDcyNjsxMTEyIDExNzEgMTFCNTsKK0Q3Mjc7RDcyNzsxMTEyIDExNzEgMTFCNjtENzI3OzExMTIgMTE3MSAxMUI2OworRDcyODtENzI4OzExMTIgMTE3MSAxMUI3O0Q3Mjg7MTExMiAxMTcxIDExQjc7CitENzI5O0Q3Mjk7MTExMiAxMTcxIDExQjg7RDcyOTsxMTEyIDExNzEgMTFCODsKK0Q3MkE7RDcyQTsxMTEyIDExNzEgMTFCOTtENzJBOzExMTIgMTE3MSAxMUI5OworRDcyQjtENzJCOzExMTIgMTE3MSAxMUJBO0Q3MkI7MTExMiAxMTcxIDExQkE7CitENzJDO0Q3MkM7MTExMiAxMTcxIDExQkI7RDcyQzsxMTEyIDExNzEgMTFCQjsKK0Q3MkQ7RDcyRDsxMTEyIDExNzEgMTFCQztENzJEOzExMTIgMTE3MSAxMUJDOworRDcyRTtENzJFOzExMTIgMTE3MSAxMUJEO0Q3MkU7MTExMiAxMTcxIDExQkQ7CitENzJGO0Q3MkY7MTExMiAxMTcxIDExQkU7RDcyRjsxMTEyIDExNzEgMTFCRTsKK0Q3MzA7RDczMDsxMTEyIDExNzEgMTFCRjtENzMwOzExMTIgMTE3MSAxMUJGOworRDczMTtENzMxOzExMTIgMTE3MSAxMUMwO0Q3MzE7MTExMiAxMTcxIDExQzA7CitENzMyO0Q3MzI7MTExMiAxMTcxIDExQzE7RDczMjsxMTEyIDExNzEgMTFDMTsKK0Q3MzM7RDczMzsxMTEyIDExNzEgMTFDMjtENzMzOzExMTIgMTE3MSAxMUMyOworRDczNDtENzM0OzExMTIgMTE3MjtENzM0OzExMTIgMTE3MjsKK0Q3MzU7RDczNTsxMTEyIDExNzIgMTFBODtENzM1OzExMTIgMTE3MiAxMUE4OworRDczNjtENzM2OzExMTIgMTE3MiAxMUE5O0Q3MzY7MTExMiAxMTcyIDExQTk7CitENzM3O0Q3Mzc7MTExMiAxMTcyIDExQUE7RDczNzsxMTEyIDExNzIgMTFBQTsKK0Q3Mzg7RDczODsxMTEyIDExNzIgMTFBQjtENzM4OzExMTIgMTE3MiAxMUFCOworRDczOTtENzM5OzExMTIgMTE3MiAxMUFDO0Q3Mzk7MTExMiAxMTcyIDExQUM7CitENzNBO0Q3M0E7MTExMiAxMTcyIDExQUQ7RDczQTsxMTEyIDExNzIgMTFBRDsKK0Q3M0I7RDczQjsxMTEyIDExNzIgMTFBRTtENzNCOzExMTIgMTE3MiAxMUFFOworRDczQztENzNDOzExMTIgMTE3MiAxMUFGO0Q3M0M7MTExMiAxMTcyIDExQUY7CitENzNEO0Q3M0Q7MTExMiAxMTcyIDExQjA7RDczRDsxMTEyIDExNzIgMTFCMDsKK0Q3M0U7RDczRTsxMTEyIDExNzIgMTFCMTtENzNFOzExMTIgMTE3MiAxMUIxOworRDczRjtENzNGOzExMTIgMTE3MiAxMUIyO0Q3M0Y7MTExMiAxMTcyIDExQjI7CitENzQwO0Q3NDA7MTExMiAxMTcyIDExQjM7RDc0MDsxMTEyIDExNzIgMTFCMzsKK0Q3NDE7RDc0MTsxMTEyIDExNzIgMTFCNDtENzQxOzExMTIgMTE3MiAxMUI0OworRDc0MjtENzQyOzExMTIgMTE3MiAxMUI1O0Q3NDI7MTExMiAxMTcyIDExQjU7CitENzQzO0Q3NDM7MTExMiAxMTcyIDExQjY7RDc0MzsxMTEyIDExNzIgMTFCNjsKK0Q3NDQ7RDc0NDsxMTEyIDExNzIgMTFCNztENzQ0OzExMTIgMTE3MiAxMUI3OworRDc0NTtENzQ1OzExMTIgMTE3MiAxMUI4O0Q3NDU7MTExMiAxMTcyIDExQjg7CitENzQ2O0Q3NDY7MTExMiAxMTcyIDExQjk7RDc0NjsxMTEyIDExNzIgMTFCOTsKK0Q3NDc7RDc0NzsxMTEyIDExNzIgMTFCQTtENzQ3OzExMTIgMTE3MiAxMUJBOworRDc0ODtENzQ4OzExMTIgMTE3MiAxMUJCO0Q3NDg7MTExMiAxMTcyIDExQkI7CitENzQ5O0Q3NDk7MTExMiAxMTcyIDExQkM7RDc0OTsxMTEyIDExNzIgMTFCQzsKK0Q3NEE7RDc0QTsxMTEyIDExNzIgMTFCRDtENzRBOzExMTIgMTE3MiAxMUJEOworRDc0QjtENzRCOzExMTIgMTE3MiAxMUJFO0Q3NEI7MTExMiAxMTcyIDExQkU7CitENzRDO0Q3NEM7MTExMiAxMTcyIDExQkY7RDc0QzsxMTEyIDExNzIgMTFCRjsKK0Q3NEQ7RDc0RDsxMTEyIDExNzIgMTFDMDtENzREOzExMTIgMTE3MiAxMUMwOworRDc0RTtENzRFOzExMTIgMTE3MiAxMUMxO0Q3NEU7MTExMiAxMTcyIDExQzE7CitENzRGO0Q3NEY7MTExMiAxMTcyIDExQzI7RDc0RjsxMTEyIDExNzIgMTFDMjsKK0Q3NTA7RDc1MDsxMTEyIDExNzM7RDc1MDsxMTEyIDExNzM7CitENzUxO0Q3NTE7MTExMiAxMTczIDExQTg7RDc1MTsxMTEyIDExNzMgMTFBODsKK0Q3NTI7RDc1MjsxMTEyIDExNzMgMTFBOTtENzUyOzExMTIgMTE3MyAxMUE5OworRDc1MztENzUzOzExMTIgMTE3MyAxMUFBO0Q3NTM7MTExMiAxMTczIDExQUE7CitENzU0O0Q3NTQ7MTExMiAxMTczIDExQUI7RDc1NDsxMTEyIDExNzMgMTFBQjsKK0Q3NTU7RDc1NTsxMTEyIDExNzMgMTFBQztENzU1OzExMTIgMTE3MyAxMUFDOworRDc1NjtENzU2OzExMTIgMTE3MyAxMUFEO0Q3NTY7MTExMiAxMTczIDExQUQ7CitENzU3O0Q3NTc7MTExMiAxMTczIDExQUU7RDc1NzsxMTEyIDExNzMgMTFBRTsKK0Q3NTg7RDc1ODsxMTEyIDExNzMgMTFBRjtENzU4OzExMTIgMTE3MyAxMUFGOworRDc1OTtENzU5OzExMTIgMTE3MyAxMUIwO0Q3NTk7MTExMiAxMTczIDExQjA7CitENzVBO0Q3NUE7MTExMiAxMTczIDExQjE7RDc1QTsxMTEyIDExNzMgMTFCMTsKK0Q3NUI7RDc1QjsxMTEyIDExNzMgMTFCMjtENzVCOzExMTIgMTE3MyAxMUIyOworRDc1QztENzVDOzExMTIgMTE3MyAxMUIzO0Q3NUM7MTExMiAxMTczIDExQjM7CitENzVEO0Q3NUQ7MTExMiAxMTczIDExQjQ7RDc1RDsxMTEyIDExNzMgMTFCNDsKK0Q3NUU7RDc1RTsxMTEyIDExNzMgMTFCNTtENzVFOzExMTIgMTE3MyAxMUI1OworRDc1RjtENzVGOzExMTIgMTE3MyAxMUI2O0Q3NUY7MTExMiAxMTczIDExQjY7CitENzYwO0Q3NjA7MTExMiAxMTczIDExQjc7RDc2MDsxMTEyIDExNzMgMTFCNzsKK0Q3NjE7RDc2MTsxMTEyIDExNzMgMTFCODtENzYxOzExMTIgMTE3MyAxMUI4OworRDc2MjtENzYyOzExMTIgMTE3MyAxMUI5O0Q3NjI7MTExMiAxMTczIDExQjk7CitENzYzO0Q3NjM7MTExMiAxMTczIDExQkE7RDc2MzsxMTEyIDExNzMgMTFCQTsKK0Q3NjQ7RDc2NDsxMTEyIDExNzMgMTFCQjtENzY0OzExMTIgMTE3MyAxMUJCOworRDc2NTtENzY1OzExMTIgMTE3MyAxMUJDO0Q3NjU7MTExMiAxMTczIDExQkM7CitENzY2O0Q3NjY7MTExMiAxMTczIDExQkQ7RDc2NjsxMTEyIDExNzMgMTFCRDsKK0Q3Njc7RDc2NzsxMTEyIDExNzMgMTFCRTtENzY3OzExMTIgMTE3MyAxMUJFOworRDc2ODtENzY4OzExMTIgMTE3MyAxMUJGO0Q3Njg7MTExMiAxMTczIDExQkY7CitENzY5O0Q3Njk7MTExMiAxMTczIDExQzA7RDc2OTsxMTEyIDExNzMgMTFDMDsKK0Q3NkE7RDc2QTsxMTEyIDExNzMgMTFDMTtENzZBOzExMTIgMTE3MyAxMUMxOworRDc2QjtENzZCOzExMTIgMTE3MyAxMUMyO0Q3NkI7MTExMiAxMTczIDExQzI7CitENzZDO0Q3NkM7MTExMiAxMTc0O0Q3NkM7MTExMiAxMTc0OworRDc2RDtENzZEOzExMTIgMTE3NCAxMUE4O0Q3NkQ7MTExMiAxMTc0IDExQTg7CitENzZFO0Q3NkU7MTExMiAxMTc0IDExQTk7RDc2RTsxMTEyIDExNzQgMTFBOTsKK0Q3NkY7RDc2RjsxMTEyIDExNzQgMTFBQTtENzZGOzExMTIgMTE3NCAxMUFBOworRDc3MDtENzcwOzExMTIgMTE3NCAxMUFCO0Q3NzA7MTExMiAxMTc0IDExQUI7CitENzcxO0Q3NzE7MTExMiAxMTc0IDExQUM7RDc3MTsxMTEyIDExNzQgMTFBQzsKK0Q3NzI7RDc3MjsxMTEyIDExNzQgMTFBRDtENzcyOzExMTIgMTE3NCAxMUFEOworRDc3MztENzczOzExMTIgMTE3NCAxMUFFO0Q3NzM7MTExMiAxMTc0IDExQUU7CitENzc0O0Q3NzQ7MTExMiAxMTc0IDExQUY7RDc3NDsxMTEyIDExNzQgMTFBRjsKK0Q3NzU7RDc3NTsxMTEyIDExNzQgMTFCMDtENzc1OzExMTIgMTE3NCAxMUIwOworRDc3NjtENzc2OzExMTIgMTE3NCAxMUIxO0Q3NzY7MTExMiAxMTc0IDExQjE7CitENzc3O0Q3Nzc7MTExMiAxMTc0IDExQjI7RDc3NzsxMTEyIDExNzQgMTFCMjsKK0Q3Nzg7RDc3ODsxMTEyIDExNzQgMTFCMztENzc4OzExMTIgMTE3NCAxMUIzOworRDc3OTtENzc5OzExMTIgMTE3NCAxMUI0O0Q3Nzk7MTExMiAxMTc0IDExQjQ7CitENzdBO0Q3N0E7MTExMiAxMTc0IDExQjU7RDc3QTsxMTEyIDExNzQgMTFCNTsKK0Q3N0I7RDc3QjsxMTEyIDExNzQgMTFCNjtENzdCOzExMTIgMTE3NCAxMUI2OworRDc3QztENzdDOzExMTIgMTE3NCAxMUI3O0Q3N0M7MTExMiAxMTc0IDExQjc7CitENzdEO0Q3N0Q7MTExMiAxMTc0IDExQjg7RDc3RDsxMTEyIDExNzQgMTFCODsKK0Q3N0U7RDc3RTsxMTEyIDExNzQgMTFCOTtENzdFOzExMTIgMTE3NCAxMUI5OworRDc3RjtENzdGOzExMTIgMTE3NCAxMUJBO0Q3N0Y7MTExMiAxMTc0IDExQkE7CitENzgwO0Q3ODA7MTExMiAxMTc0IDExQkI7RDc4MDsxMTEyIDExNzQgMTFCQjsKK0Q3ODE7RDc4MTsxMTEyIDExNzQgMTFCQztENzgxOzExMTIgMTE3NCAxMUJDOworRDc4MjtENzgyOzExMTIgMTE3NCAxMUJEO0Q3ODI7MTExMiAxMTc0IDExQkQ7CitENzgzO0Q3ODM7MTExMiAxMTc0IDExQkU7RDc4MzsxMTEyIDExNzQgMTFCRTsKK0Q3ODQ7RDc4NDsxMTEyIDExNzQgMTFCRjtENzg0OzExMTIgMTE3NCAxMUJGOworRDc4NTtENzg1OzExMTIgMTE3NCAxMUMwO0Q3ODU7MTExMiAxMTc0IDExQzA7CitENzg2O0Q3ODY7MTExMiAxMTc0IDExQzE7RDc4NjsxMTEyIDExNzQgMTFDMTsKK0Q3ODc7RDc4NzsxMTEyIDExNzQgMTFDMjtENzg3OzExMTIgMTE3NCAxMUMyOworRDc4ODtENzg4OzExMTIgMTE3NTtENzg4OzExMTIgMTE3NTsKK0Q3ODk7RDc4OTsxMTEyIDExNzUgMTFBODtENzg5OzExMTIgMTE3NSAxMUE4OworRDc4QTtENzhBOzExMTIgMTE3NSAxMUE5O0Q3OEE7MTExMiAxMTc1IDExQTk7CitENzhCO0Q3OEI7MTExMiAxMTc1IDExQUE7RDc4QjsxMTEyIDExNzUgMTFBQTsKK0Q3OEM7RDc4QzsxMTEyIDExNzUgMTFBQjtENzhDOzExMTIgMTE3NSAxMUFCOworRDc4RDtENzhEOzExMTIgMTE3NSAxMUFDO0Q3OEQ7MTExMiAxMTc1IDExQUM7CitENzhFO0Q3OEU7MTExMiAxMTc1IDExQUQ7RDc4RTsxMTEyIDExNzUgMTFBRDsKK0Q3OEY7RDc4RjsxMTEyIDExNzUgMTFBRTtENzhGOzExMTIgMTE3NSAxMUFFOworRDc5MDtENzkwOzExMTIgMTE3NSAxMUFGO0Q3OTA7MTExMiAxMTc1IDExQUY7CitENzkxO0Q3OTE7MTExMiAxMTc1IDExQjA7RDc5MTsxMTEyIDExNzUgMTFCMDsKK0Q3OTI7RDc5MjsxMTEyIDExNzUgMTFCMTtENzkyOzExMTIgMTE3NSAxMUIxOworRDc5MztENzkzOzExMTIgMTE3NSAxMUIyO0Q3OTM7MTExMiAxMTc1IDExQjI7CitENzk0O0Q3OTQ7MTExMiAxMTc1IDExQjM7RDc5NDsxMTEyIDExNzUgMTFCMzsKK0Q3OTU7RDc5NTsxMTEyIDExNzUgMTFCNDtENzk1OzExMTIgMTE3NSAxMUI0OworRDc5NjtENzk2OzExMTIgMTE3NSAxMUI1O0Q3OTY7MTExMiAxMTc1IDExQjU7CitENzk3O0Q3OTc7MTExMiAxMTc1IDExQjY7RDc5NzsxMTEyIDExNzUgMTFCNjsKK0Q3OTg7RDc5ODsxMTEyIDExNzUgMTFCNztENzk4OzExMTIgMTE3NSAxMUI3OworRDc5OTtENzk5OzExMTIgMTE3NSAxMUI4O0Q3OTk7MTExMiAxMTc1IDExQjg7CitENzlBO0Q3OUE7MTExMiAxMTc1IDExQjk7RDc5QTsxMTEyIDExNzUgMTFCOTsKK0Q3OUI7RDc5QjsxMTEyIDExNzUgMTFCQTtENzlCOzExMTIgMTE3NSAxMUJBOworRDc5QztENzlDOzExMTIgMTE3NSAxMUJCO0Q3OUM7MTExMiAxMTc1IDExQkI7CitENzlEO0Q3OUQ7MTExMiAxMTc1IDExQkM7RDc5RDsxMTEyIDExNzUgMTFCQzsKK0Q3OUU7RDc5RTsxMTEyIDExNzUgMTFCRDtENzlFOzExMTIgMTE3NSAxMUJEOworRDc5RjtENzlGOzExMTIgMTE3NSAxMUJFO0Q3OUY7MTExMiAxMTc1IDExQkU7CitEN0EwO0Q3QTA7MTExMiAxMTc1IDExQkY7RDdBMDsxMTEyIDExNzUgMTFCRjsKK0Q3QTE7RDdBMTsxMTEyIDExNzUgMTFDMDtEN0ExOzExMTIgMTE3NSAxMUMwOworRDdBMjtEN0EyOzExMTIgMTE3NSAxMUMxO0Q3QTI7MTExMiAxMTc1IDExQzE7CitEN0EzO0Q3QTM7MTExMiAxMTc1IDExQzI7RDdBMzsxMTEyIDExNzUgMTFDMjsKK0Y5MDA7OEM0ODs4QzQ4OzhDNDg7OEM0ODsKK0Y5MDE7NjZGNDs2NkY0OzY2RjQ7NjZGNDsKK0Y5MDI7OEVDQTs4RUNBOzhFQ0E7OEVDQTsKK0Y5MDM7OENDODs4Q0M4OzhDQzg7OENDODsKK0Y5MDQ7NkVEMTs2RUQxOzZFRDE7NkVEMTsKK0Y5MDU7NEUzMjs0RTMyOzRFMzI7NEUzMjsKK0Y5MDY7NTNFNTs1M0U1OzUzRTU7NTNFNTsKK0Y5MDc7OUY5Qzs5RjlDOzlGOUM7OUY5QzsKK0Y5MDg7OUY5Qzs5RjlDOzlGOUM7OUY5QzsKK0Y5MDk7NTk1MTs1OTUxOzU5NTE7NTk1MTsKK0Y5MEE7OTFEMTs5MUQxOzkxRDE7OTFEMTsKK0Y5MEI7NTU4Nzs1NTg3OzU1ODc7NTU4NzsKK0Y5MEM7NTk0ODs1OTQ4OzU5NDg7NTk0ODsKK0Y5MEQ7NjFGNjs2MUY2OzYxRjY7NjFGNjsKK0Y5MEU7NzY2OTs3NjY5Ozc2Njk7NzY2OTsKK0Y5MEY7N0Y4NTs3Rjg1OzdGODU7N0Y4NTsKK0Y5MTA7ODYzRjs4NjNGOzg2M0Y7ODYzRjsKK0Y5MTE7ODdCQTs4N0JBOzg3QkE7ODdCQTsKK0Y5MTI7ODhGODs4OEY4Ozg4Rjg7ODhGODsKK0Y5MTM7OTA4Rjs5MDhGOzkwOEY7OTA4RjsKK0Y5MTQ7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5MTU7NkQxQjs2RDFCOzZEMUI7NkQxQjsKK0Y5MTY7NzBEOTs3MEQ5OzcwRDk7NzBEOTsKK0Y5MTc7NzNERTs3M0RFOzczREU7NzNERTsKK0Y5MTg7ODQzRDs4NDNEOzg0M0Q7ODQzRDsKK0Y5MTk7OTE2QTs5MTZBOzkxNkE7OTE2QTsKK0Y5MUE7OTlGMTs5OUYxOzk5RjE7OTlGMTsKK0Y5MUI7NEU4Mjs0RTgyOzRFODI7NEU4MjsKK0Y5MUM7NTM3NTs1Mzc1OzUzNzU7NTM3NTsKK0Y5MUQ7NkIwNDs2QjA0OzZCMDQ7NkIwNDsKK0Y5MUU7NzIxQjs3MjFCOzcyMUI7NzIxQjsKK0Y5MUY7ODYyRDs4NjJEOzg2MkQ7ODYyRDsKK0Y5MjA7OUUxRTs5RTFFOzlFMUU7OUUxRTsKK0Y5MjE7NUQ1MDs1RDUwOzVENTA7NUQ1MDsKK0Y5MjI7NkZFQjs2RkVCOzZGRUI7NkZFQjsKK0Y5MjM7ODVDRDs4NUNEOzg1Q0Q7ODVDRDsKK0Y5MjQ7ODk2NDs4OTY0Ozg5NjQ7ODk2NDsKK0Y5MjU7NjJDOTs2MkM5OzYyQzk7NjJDOTsKK0Y5MjY7ODFEODs4MUQ4OzgxRDg7ODFEODsKK0Y5Mjc7ODgxRjs4ODFGOzg4MUY7ODgxRjsKK0Y5Mjg7NUVDQTs1RUNBOzVFQ0E7NUVDQTsKK0Y5Mjk7NjcxNzs2NzE3OzY3MTc7NjcxNzsKK0Y5MkE7NkQ2QTs2RDZBOzZENkE7NkQ2QTsKK0Y5MkI7NzJGQzs3MkZDOzcyRkM7NzJGQzsKK0Y5MkM7OTBDRTs5MENFOzkwQ0U7OTBDRTsKK0Y5MkQ7NEY4Njs0Rjg2OzRGODY7NEY4NjsKK0Y5MkU7NTFCNzs1MUI3OzUxQjc7NTFCNzsKK0Y5MkY7NTJERTs1MkRFOzUyREU7NTJERTsKK0Y5MzA7NjRDNDs2NEM0OzY0QzQ7NjRDNDsKK0Y5MzE7NkFEMzs2QUQzOzZBRDM7NkFEMzsKK0Y5MzI7NzIxMDs3MjEwOzcyMTA7NzIxMDsKK0Y5MzM7NzZFNzs3NkU3Ozc2RTc7NzZFNzsKK0Y5MzQ7ODAwMTs4MDAxOzgwMDE7ODAwMTsKK0Y5MzU7ODYwNjs4NjA2Ozg2MDY7ODYwNjsKK0Y5MzY7ODY1Qzs4NjVDOzg2NUM7ODY1QzsKK0Y5Mzc7OERFRjs4REVGOzhERUY7OERFRjsKK0Y5Mzg7OTczMjs5NzMyOzk3MzI7OTczMjsKK0Y5Mzk7OUI2Rjs5QjZGOzlCNkY7OUI2RjsKK0Y5M0E7OURGQTs5REZBOzlERkE7OURGQTsKK0Y5M0I7Nzg4Qzs3ODhDOzc4OEM7Nzg4QzsKK0Y5M0M7Nzk3Rjs3OTdGOzc5N0Y7Nzk3RjsKK0Y5M0Q7N0RBMDs3REEwOzdEQTA7N0RBMDsKK0Y5M0U7ODNDOTs4M0M5OzgzQzk7ODNDOTsKK0Y5M0Y7OTMwNDs5MzA0OzkzMDQ7OTMwNDsKK0Y5NDA7OUU3Rjs5RTdGOzlFN0Y7OUU3RjsKK0Y5NDE7OEFENjs4QUQ2OzhBRDY7OEFENjsKK0Y5NDI7NThERjs1OERGOzU4REY7NThERjsKK0Y5NDM7NUYwNDs1RjA0OzVGMDQ7NUYwNDsKK0Y5NDQ7N0M2MDs3QzYwOzdDNjA7N0M2MDsKK0Y5NDU7ODA3RTs4MDdFOzgwN0U7ODA3RTsKK0Y5NDY7NzI2Mjs3MjYyOzcyNjI7NzI2MjsKK0Y5NDc7NzhDQTs3OENBOzc4Q0E7NzhDQTsKK0Y5NDg7OENDMjs4Q0MyOzhDQzI7OENDMjsKK0Y5NDk7OTZGNzs5NkY3Ozk2Rjc7OTZGNzsKK0Y5NEE7NThEODs1OEQ4OzU4RDg7NThEODsKK0Y5NEI7NUM2Mjs1QzYyOzVDNjI7NUM2MjsKK0Y5NEM7NkExMzs2QTEzOzZBMTM7NkExMzsKK0Y5NEQ7NkREQTs2RERBOzZEREE7NkREQTsKK0Y5NEU7NkYwRjs2RjBGOzZGMEY7NkYwRjsKK0Y5NEY7N0QyRjs3RDJGOzdEMkY7N0QyRjsKK0Y5NTA7N0UzNzs3RTM3OzdFMzc7N0UzNzsKK0Y5NTE7OTY0Qjs5NjRCOzk2NEI7OTY0QjsKK0Y5NTI7NTJEMjs1MkQyOzUyRDI7NTJEMjsKK0Y5NTM7ODA4Qjs4MDhCOzgwOEI7ODA4QjsKK0Y5NTQ7NTFEQzs1MURDOzUxREM7NTFEQzsKK0Y5NTU7NTFDQzs1MUNDOzUxQ0M7NTFDQzsKK0Y5NTY7N0ExQzs3QTFDOzdBMUM7N0ExQzsKK0Y5NTc7N0RCRTs3REJFOzdEQkU7N0RCRTsKK0Y5NTg7ODNGMTs4M0YxOzgzRjE7ODNGMTsKK0Y5NTk7OTY3NTs5Njc1Ozk2NzU7OTY3NTsKK0Y5NUE7OEI4MDs4QjgwOzhCODA7OEI4MDsKK0Y5NUI7NjJDRjs2MkNGOzYyQ0Y7NjJDRjsKK0Y5NUM7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5NUQ7OEFGRTs4QUZFOzhBRkU7OEFGRTsKK0Y5NUU7NEUzOTs0RTM5OzRFMzk7NEUzOTsKK0Y5NUY7NUJFNzs1QkU3OzVCRTc7NUJFNzsKK0Y5NjA7NjAxMjs2MDEyOzYwMTI7NjAxMjsKK0Y5NjE7NzM4Nzs3Mzg3OzczODc7NzM4NzsKK0Y5NjI7NzU3MDs3NTcwOzc1NzA7NzU3MDsKK0Y5NjM7NTMxNzs1MzE3OzUzMTc7NTMxNzsKK0Y5NjQ7NzhGQjs3OEZCOzc4RkI7NzhGQjsKK0Y5NjU7NEZCRjs0RkJGOzRGQkY7NEZCRjsKK0Y5NjY7NUZBOTs1RkE5OzVGQTk7NUZBOTsKK0Y5Njc7NEUwRDs0RTBEOzRFMEQ7NEUwRDsKK0Y5Njg7NkNDQzs2Q0NDOzZDQ0M7NkNDQzsKK0Y5Njk7NjU3ODs2NTc4OzY1Nzg7NjU3ODsKK0Y5NkE7N0QyMjs3RDIyOzdEMjI7N0QyMjsKK0Y5NkI7NTNDMzs1M0MzOzUzQzM7NTNDMzsKK0Y5NkM7NTg1RTs1ODVFOzU4NUU7NTg1RTsKK0Y5NkQ7NzcwMTs3NzAxOzc3MDE7NzcwMTsKK0Y5NkU7ODQ0OTs4NDQ5Ozg0NDk7ODQ0OTsKK0Y5NkY7OEFBQTs4QUFBOzhBQUE7OEFBQTsKK0Y5NzA7NkJCQTs2QkJBOzZCQkE7NkJCQTsKK0Y5NzE7OEZCMDs4RkIwOzhGQjA7OEZCMDsKK0Y5NzI7NkM4ODs2Qzg4OzZDODg7NkM4ODsKK0Y5NzM7NjJGRTs2MkZFOzYyRkU7NjJGRTsKK0Y5NzQ7ODJFNTs4MkU1OzgyRTU7ODJFNTsKK0Y5NzU7NjNBMDs2M0EwOzYzQTA7NjNBMDsKK0Y5NzY7NzU2NTs3NTY1Ozc1NjU7NzU2NTsKK0Y5Nzc7NEVBRTs0RUFFOzRFQUU7NEVBRTsKK0Y5Nzg7NTE2OTs1MTY5OzUxNjk7NTE2OTsKK0Y5Nzk7NTFDOTs1MUM5OzUxQzk7NTFDOTsKK0Y5N0E7Njg4MTs2ODgxOzY4ODE7Njg4MTsKK0Y5N0I7N0NFNzs3Q0U3OzdDRTc7N0NFNzsKK0Y5N0M7ODI2Rjs4MjZGOzgyNkY7ODI2RjsKK0Y5N0Q7OEFEMjs4QUQyOzhBRDI7OEFEMjsKK0Y5N0U7OTFDRjs5MUNGOzkxQ0Y7OTFDRjsKK0Y5N0Y7NTJGNTs1MkY1OzUyRjU7NTJGNTsKK0Y5ODA7NTQ0Mjs1NDQyOzU0NDI7NTQ0MjsKK0Y5ODE7NTk3Mzs1OTczOzU5NzM7NTk3MzsKK0Y5ODI7NUVFQzs1RUVDOzVFRUM7NUVFQzsKK0Y5ODM7NjVDNTs2NUM1OzY1QzU7NjVDNTsKK0Y5ODQ7NkZGRTs2RkZFOzZGRkU7NkZGRTsKK0Y5ODU7NzkyQTs3OTJBOzc5MkE7NzkyQTsKK0Y5ODY7OTVBRDs5NUFEOzk1QUQ7OTVBRDsKK0Y5ODc7OUE2QTs5QTZBOzlBNkE7OUE2QTsKK0Y5ODg7OUU5Nzs5RTk3OzlFOTc7OUU5NzsKK0Y5ODk7OUVDRTs5RUNFOzlFQ0U7OUVDRTsKK0Y5OEE7NTI5Qjs1MjlCOzUyOUI7NTI5QjsKK0Y5OEI7NjZDNjs2NkM2OzY2QzY7NjZDNjsKK0Y5OEM7NkI3Nzs2Qjc3OzZCNzc7NkI3NzsKK0Y5OEQ7OEY2Mjs4RjYyOzhGNjI7OEY2MjsKK0Y5OEU7NUU3NDs1RTc0OzVFNzQ7NUU3NDsKK0Y5OEY7NjE5MDs2MTkwOzYxOTA7NjE5MDsKK0Y5OTA7NjIwMDs2MjAwOzYyMDA7NjIwMDsKK0Y5OTE7NjQ5QTs2NDlBOzY0OUE7NjQ5QTsKK0Y5OTI7NkYyMzs2RjIzOzZGMjM7NkYyMzsKK0Y5OTM7NzE0OTs3MTQ5OzcxNDk7NzE0OTsKK0Y5OTQ7NzQ4OTs3NDg5Ozc0ODk7NzQ4OTsKK0Y5OTU7NzlDQTs3OUNBOzc5Q0E7NzlDQTsKK0Y5OTY7N0RGNDs3REY0OzdERjQ7N0RGNDsKK0Y5OTc7ODA2Rjs4MDZGOzgwNkY7ODA2RjsKK0Y5OTg7OEYyNjs4RjI2OzhGMjY7OEYyNjsKK0Y5OTk7ODRFRTs4NEVFOzg0RUU7ODRFRTsKK0Y5OUE7OTAyMzs5MDIzOzkwMjM7OTAyMzsKK0Y5OUI7OTM0QTs5MzRBOzkzNEE7OTM0QTsKK0Y5OUM7NTIxNzs1MjE3OzUyMTc7NTIxNzsKK0Y5OUQ7NTJBMzs1MkEzOzUyQTM7NTJBMzsKK0Y5OUU7NTRCRDs1NEJEOzU0QkQ7NTRCRDsKK0Y5OUY7NzBDODs3MEM4OzcwQzg7NzBDODsKK0Y5QTA7ODhDMjs4OEMyOzg4QzI7ODhDMjsKK0Y5QTE7OEFBQTs4QUFBOzhBQUE7OEFBQTsKK0Y5QTI7NUVDOTs1RUM5OzVFQzk7NUVDOTsKK0Y5QTM7NUZGNTs1RkY1OzVGRjU7NUZGNTsKK0Y5QTQ7NjM3Qjs2MzdCOzYzN0I7NjM3QjsKK0Y5QTU7NkJBRTs2QkFFOzZCQUU7NkJBRTsKK0Y5QTY7N0MzRTs3QzNFOzdDM0U7N0MzRTsKK0Y5QTc7NzM3NTs3Mzc1OzczNzU7NzM3NTsKK0Y5QTg7NEVFNDs0RUU0OzRFRTQ7NEVFNDsKK0Y5QTk7NTZGOTs1NkY5OzU2Rjk7NTZGOTsKK0Y5QUE7NUJFNzs1QkU3OzVCRTc7NUJFNzsKK0Y5QUI7NURCQTs1REJBOzVEQkE7NURCQTsKK0Y5QUM7NjAxQzs2MDFDOzYwMUM7NjAxQzsKK0Y5QUQ7NzNCMjs3M0IyOzczQjI7NzNCMjsKK0Y5QUU7NzQ2OTs3NDY5Ozc0Njk7NzQ2OTsKK0Y5QUY7N0Y5QTs3RjlBOzdGOUE7N0Y5QTsKK0Y5QjA7ODA0Njs4MDQ2OzgwNDY7ODA0NjsKK0Y5QjE7OTIzNDs5MjM0OzkyMzQ7OTIzNDsKK0Y5QjI7OTZGNjs5NkY2Ozk2RjY7OTZGNjsKK0Y5QjM7OTc0ODs5NzQ4Ozk3NDg7OTc0ODsKK0Y5QjQ7OTgxODs5ODE4Ozk4MTg7OTgxODsKK0Y5QjU7NEY4Qjs0RjhCOzRGOEI7NEY4QjsKK0Y5QjY7NzlBRTs3OUFFOzc5QUU7NzlBRTsKK0Y5Qjc7OTFCNDs5MUI0OzkxQjQ7OTFCNDsKK0Y5Qjg7OTZCODs5NkI4Ozk2Qjg7OTZCODsKK0Y5Qjk7NjBFMTs2MEUxOzYwRTE7NjBFMTsKK0Y5QkE7NEU4Njs0RTg2OzRFODY7NEU4NjsKK0Y5QkI7NTBEQTs1MERBOzUwREE7NTBEQTsKK0Y5QkM7NUJFRTs1QkVFOzVCRUU7NUJFRTsKK0Y5QkQ7NUMzRjs1QzNGOzVDM0Y7NUMzRjsKK0Y5QkU7NjU5OTs2NTk5OzY1OTk7NjU5OTsKK0Y5QkY7NkEwMjs2QTAyOzZBMDI7NkEwMjsKK0Y5QzA7NzFDRTs3MUNFOzcxQ0U7NzFDRTsKK0Y5QzE7NzY0Mjs3NjQyOzc2NDI7NzY0MjsKK0Y5QzI7ODRGQzs4NEZDOzg0RkM7ODRGQzsKK0Y5QzM7OTA3Qzs5MDdDOzkwN0M7OTA3QzsKK0Y5QzQ7OUY4RDs5RjhEOzlGOEQ7OUY4RDsKK0Y5QzU7NjY4ODs2Njg4OzY2ODg7NjY4ODsKK0Y5QzY7OTYyRTs5NjJFOzk2MkU7OTYyRTsKK0Y5Qzc7NTI4OTs1Mjg5OzUyODk7NTI4OTsKK0Y5Qzg7Njc3Qjs2NzdCOzY3N0I7Njc3QjsKK0Y5Qzk7NjdGMzs2N0YzOzY3RjM7NjdGMzsKK0Y5Q0E7NkQ0MTs2RDQxOzZENDE7NkQ0MTsKK0Y5Q0I7NkU5Qzs2RTlDOzZFOUM7NkU5QzsKK0Y5Q0M7NzQwOTs3NDA5Ozc0MDk7NzQwOTsKK0Y5Q0Q7NzU1OTs3NTU5Ozc1NTk7NzU1OTsKK0Y5Q0U7Nzg2Qjs3ODZCOzc4NkI7Nzg2QjsKK0Y5Q0Y7N0QxMDs3RDEwOzdEMTA7N0QxMDsKK0Y5RDA7OTg1RTs5ODVFOzk4NUU7OTg1RTsKK0Y5RDE7NTE2RDs1MTZEOzUxNkQ7NTE2RDsKK0Y5RDI7NjIyRTs2MjJFOzYyMkU7NjIyRTsKK0Y5RDM7OTY3ODs5Njc4Ozk2Nzg7OTY3ODsKK0Y5RDQ7NTAyQjs1MDJCOzUwMkI7NTAyQjsKK0Y5RDU7NUQxOTs1RDE5OzVEMTk7NUQxOTsKK0Y5RDY7NkRFQTs2REVBOzZERUE7NkRFQTsKK0Y5RDc7OEYyQTs4RjJBOzhGMkE7OEYyQTsKK0Y5RDg7NUY4Qjs1RjhCOzVGOEI7NUY4QjsKK0Y5RDk7NjE0NDs2MTQ0OzYxNDQ7NjE0NDsKK0Y5REE7NjgxNzs2ODE3OzY4MTc7NjgxNzsKK0Y5REI7NzM4Nzs3Mzg3OzczODc7NzM4NzsKK0Y5REM7OTY4Njs5Njg2Ozk2ODY7OTY4NjsKK0Y5REQ7NTIyOTs1MjI5OzUyMjk7NTIyOTsKK0Y5REU7NTQwRjs1NDBGOzU0MEY7NTQwRjsKK0Y5REY7NUM2NTs1QzY1OzVDNjU7NUM2NTsKK0Y5RTA7NjYxMzs2NjEzOzY2MTM7NjYxMzsKK0Y5RTE7Njc0RTs2NzRFOzY3NEU7Njc0RTsKK0Y5RTI7NjhBODs2OEE4OzY4QTg7NjhBODsKK0Y5RTM7NkNFNTs2Q0U1OzZDRTU7NkNFNTsKK0Y5RTQ7NzQwNjs3NDA2Ozc0MDY7NzQwNjsKK0Y5RTU7NzVFMjs3NUUyOzc1RTI7NzVFMjsKK0Y5RTY7N0Y3OTs3Rjc5OzdGNzk7N0Y3OTsKK0Y5RTc7ODhDRjs4OENGOzg4Q0Y7ODhDRjsKK0Y5RTg7ODhFMTs4OEUxOzg4RTE7ODhFMTsKK0Y5RTk7OTFDQzs5MUNDOzkxQ0M7OTFDQzsKK0Y5RUE7OTZFMjs5NkUyOzk2RTI7OTZFMjsKK0Y5RUI7NTMzRjs1MzNGOzUzM0Y7NTMzRjsKK0Y5RUM7NkVCQTs2RUJBOzZFQkE7NkVCQTsKK0Y5RUQ7NTQxRDs1NDFEOzU0MUQ7NTQxRDsKK0Y5RUU7NzFEMDs3MUQwOzcxRDA7NzFEMDsKK0Y5RUY7NzQ5ODs3NDk4Ozc0OTg7NzQ5ODsKK0Y5RjA7ODVGQTs4NUZBOzg1RkE7ODVGQTsKK0Y5RjE7OTZBMzs5NkEzOzk2QTM7OTZBMzsKK0Y5RjI7OUM1Nzs5QzU3OzlDNTc7OUM1NzsKK0Y5RjM7OUU5Rjs5RTlGOzlFOUY7OUU5RjsKK0Y5RjQ7Njc5Nzs2Nzk3OzY3OTc7Njc5NzsKK0Y5RjU7NkRDQjs2RENCOzZEQ0I7NkRDQjsKK0Y5RjY7ODFFODs4MUU4OzgxRTg7ODFFODsKK0Y5Rjc7N0FDQjs3QUNCOzdBQ0I7N0FDQjsKK0Y5Rjg7N0IyMDs3QjIwOzdCMjA7N0IyMDsKK0Y5Rjk7N0M5Mjs3QzkyOzdDOTI7N0M5MjsKK0Y5RkE7NzJDMDs3MkMwOzcyQzA7NzJDMDsKK0Y5RkI7NzA5OTs3MDk5OzcwOTk7NzA5OTsKK0Y5RkM7OEI1ODs4QjU4OzhCNTg7OEI1ODsKK0Y5RkQ7NEVDMDs0RUMwOzRFQzA7NEVDMDsKK0Y5RkU7ODMzNjs4MzM2OzgzMzY7ODMzNjsKK0Y5RkY7NTIzQTs1MjNBOzUyM0E7NTIzQTsKK0ZBMDA7NTIwNzs1MjA3OzUyMDc7NTIwNzsKK0ZBMDE7NUVBNjs1RUE2OzVFQTY7NUVBNjsKK0ZBMDI7NjJEMzs2MkQzOzYyRDM7NjJEMzsKK0ZBMDM7N0NENjs3Q0Q2OzdDRDY7N0NENjsKK0ZBMDQ7NUI4NTs1Qjg1OzVCODU7NUI4NTsKK0ZBMDU7NkQxRTs2RDFFOzZEMUU7NkQxRTsKK0ZBMDY7NjZCNDs2NkI0OzY2QjQ7NjZCNDsKK0ZBMDc7OEYzQjs4RjNCOzhGM0I7OEYzQjsKK0ZBMDg7ODg0Qzs4ODRDOzg4NEM7ODg0QzsKK0ZBMDk7OTY0RDs5NjREOzk2NEQ7OTY0RDsKK0ZBMEE7ODk4Qjs4OThCOzg5OEI7ODk4QjsKK0ZBMEI7NUVEMzs1RUQzOzVFRDM7NUVEMzsKK0ZBMEM7NTE0MDs1MTQwOzUxNDA7NTE0MDsKK0ZBMEQ7NTVDMDs1NUMwOzU1QzA7NTVDMDsKK0ZBMTA7NTg1QTs1ODVBOzU4NUE7NTg1QTsKK0ZBMTI7NjY3NDs2Njc0OzY2NzQ7NjY3NDsKK0ZBMTU7NTFERTs1MURFOzUxREU7NTFERTsKK0ZBMTY7NzMyQTs3MzJBOzczMkE7NzMyQTsKK0ZBMTc7NzZDQTs3NkNBOzc2Q0E7NzZDQTsKK0ZBMTg7NzkzQzs3OTNDOzc5M0M7NzkzQzsKK0ZBMTk7Nzk1RTs3OTVFOzc5NUU7Nzk1RTsKK0ZBMUE7Nzk2NTs3OTY1Ozc5NjU7Nzk2NTsKK0ZBMUI7Nzk4Rjs3OThGOzc5OEY7Nzk4RjsKK0ZBMUM7OTc1Njs5NzU2Ozk3NTY7OTc1NjsKK0ZBMUQ7N0NCRTs3Q0JFOzdDQkU7N0NCRTsKK0ZBMUU7N0ZCRDs3RkJEOzdGQkQ7N0ZCRDsKK0ZBMjA7ODYxMjs4NjEyOzg2MTI7ODYxMjsKK0ZBMjI7OEFGODs4QUY4OzhBRjg7OEFGODsKK0ZBMjU7OTAzODs5MDM4OzkwMzg7OTAzODsKK0ZBMjY7OTBGRDs5MEZEOzkwRkQ7OTBGRDsKK0ZBMkE7OThFRjs5OEVGOzk4RUY7OThFRjsKK0ZBMkI7OThGQzs5OEZDOzk4RkM7OThGQzsKK0ZBMkM7OTkyODs5OTI4Ozk5Mjg7OTkyODsKK0ZBMkQ7OURCNDs5REI0OzlEQjQ7OURCNDsKK0ZBMzA7NEZBRTs0RkFFOzRGQUU7NEZBRTsKK0ZBMzE7NTBFNzs1MEU3OzUwRTc7NTBFNzsKK0ZBMzI7NTE0RDs1MTREOzUxNEQ7NTE0RDsKK0ZBMzM7NTJDOTs1MkM5OzUyQzk7NTJDOTsKK0ZBMzQ7NTJFNDs1MkU0OzUyRTQ7NTJFNDsKK0ZBMzU7NTM1MTs1MzUxOzUzNTE7NTM1MTsKK0ZBMzY7NTU5RDs1NTlEOzU1OUQ7NTU5RDsKK0ZBMzc7NTYwNjs1NjA2OzU2MDY7NTYwNjsKK0ZBMzg7NTY2ODs1NjY4OzU2Njg7NTY2ODsKK0ZBMzk7NTg0MDs1ODQwOzU4NDA7NTg0MDsKK0ZBM0E7NThBODs1OEE4OzU4QTg7NThBODsKK0ZBM0I7NUM2NDs1QzY0OzVDNjQ7NUM2NDsKK0ZBM0M7NUM2RTs1QzZFOzVDNkU7NUM2RTsKK0ZBM0Q7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKK0ZBM0U7NjE2ODs2MTY4OzYxNjg7NjE2ODsKK0ZBM0Y7NjE4RTs2MThFOzYxOEU7NjE4RTsKK0ZBNDA7NjFGMjs2MUYyOzYxRjI7NjFGMjsKK0ZBNDE7NjU0Rjs2NTRGOzY1NEY7NjU0RjsKK0ZBNDI7NjVFMjs2NUUyOzY1RTI7NjVFMjsKK0ZBNDM7NjY5MTs2NjkxOzY2OTE7NjY5MTsKK0ZBNDQ7Njg4NTs2ODg1OzY4ODU7Njg4NTsKK0ZBNDU7NkQ3Nzs2RDc3OzZENzc7NkQ3NzsKK0ZBNDY7NkUxQTs2RTFBOzZFMUE7NkUxQTsKK0ZBNDc7NkYyMjs2RjIyOzZGMjI7NkYyMjsKK0ZBNDg7NzE2RTs3MTZFOzcxNkU7NzE2RTsKK0ZBNDk7NzIyQjs3MjJCOzcyMkI7NzIyQjsKK0ZBNEE7NzQyMjs3NDIyOzc0MjI7NzQyMjsKK0ZBNEI7Nzg5MTs3ODkxOzc4OTE7Nzg5MTsKK0ZBNEM7NzkzRTs3OTNFOzc5M0U7NzkzRTsKK0ZBNEQ7Nzk0OTs3OTQ5Ozc5NDk7Nzk0OTsKK0ZBNEU7Nzk0ODs3OTQ4Ozc5NDg7Nzk0ODsKK0ZBNEY7Nzk1MDs3OTUwOzc5NTA7Nzk1MDsKK0ZBNTA7Nzk1Njs3OTU2Ozc5NTY7Nzk1NjsKK0ZBNTE7Nzk1RDs3OTVEOzc5NUQ7Nzk1RDsKK0ZBNTI7Nzk4RDs3OThEOzc5OEQ7Nzk4RDsKK0ZBNTM7Nzk4RTs3OThFOzc5OEU7Nzk4RTsKK0ZBNTQ7N0E0MDs3QTQwOzdBNDA7N0E0MDsKK0ZBNTU7N0E4MTs3QTgxOzdBODE7N0E4MTsKK0ZBNTY7N0JDMDs3QkMwOzdCQzA7N0JDMDsKK0ZBNTc7N0RGNDs3REY0OzdERjQ7N0RGNDsKK0ZBNTg7N0UwOTs3RTA5OzdFMDk7N0UwOTsKK0ZBNTk7N0U0MTs3RTQxOzdFNDE7N0U0MTsKK0ZBNUE7N0Y3Mjs3RjcyOzdGNzI7N0Y3MjsKK0ZBNUI7ODAwNTs4MDA1OzgwMDU7ODAwNTsKK0ZBNUM7ODFFRDs4MUVEOzgxRUQ7ODFFRDsKK0ZBNUQ7ODI3OTs4Mjc5OzgyNzk7ODI3OTsKK0ZBNUU7ODI3OTs4Mjc5OzgyNzk7ODI3OTsKK0ZBNUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKK0ZBNjA7ODkxMDs4OTEwOzg5MTA7ODkxMDsKK0ZBNjE7ODk5Njs4OTk2Ozg5OTY7ODk5NjsKK0ZBNjI7OEIwMTs4QjAxOzhCMDE7OEIwMTsKK0ZBNjM7OEIzOTs4QjM5OzhCMzk7OEIzOTsKK0ZBNjQ7OENEMzs4Q0QzOzhDRDM7OENEMzsKK0ZBNjU7OEQwODs4RDA4OzhEMDg7OEQwODsKK0ZBNjY7OEZCNjs4RkI2OzhGQjY7OEZCNjsKK0ZBNjc7OTAzODs5MDM4OzkwMzg7OTAzODsKK0ZBNjg7OTZFMzs5NkUzOzk2RTM7OTZFMzsKK0ZBNjk7OTdGRjs5N0ZGOzk3RkY7OTdGRjsKK0ZBNkE7OTgzQjs5ODNCOzk4M0I7OTgzQjsKK0ZBNzA7NEUyNjs0RTI2OzRFMjY7NEUyNjsKK0ZBNzE7NTFCNTs1MUI1OzUxQjU7NTFCNTsKK0ZBNzI7NTE2ODs1MTY4OzUxNjg7NTE2ODsKK0ZBNzM7NEY4MDs0RjgwOzRGODA7NEY4MDsKK0ZBNzQ7NTE0NTs1MTQ1OzUxNDU7NTE0NTsKK0ZBNzU7NTE4MDs1MTgwOzUxODA7NTE4MDsKK0ZBNzY7NTJDNzs1MkM3OzUyQzc7NTJDNzsKK0ZBNzc7NTJGQTs1MkZBOzUyRkE7NTJGQTsKK0ZBNzg7NTU5RDs1NTlEOzU1OUQ7NTU5RDsKK0ZBNzk7NTU1NTs1NTU1OzU1NTU7NTU1NTsKK0ZBN0E7NTU5OTs1NTk5OzU1OTk7NTU5OTsKK0ZBN0I7NTVFMjs1NUUyOzU1RTI7NTVFMjsKK0ZBN0M7NTg1QTs1ODVBOzU4NUE7NTg1QTsKK0ZBN0Q7NThCMzs1OEIzOzU4QjM7NThCMzsKK0ZBN0U7NTk0NDs1OTQ0OzU5NDQ7NTk0NDsKK0ZBN0Y7NTk1NDs1OTU0OzU5NTQ7NTk1NDsKK0ZBODA7NUE2Mjs1QTYyOzVBNjI7NUE2MjsKK0ZBODE7NUIyODs1QjI4OzVCMjg7NUIyODsKK0ZBODI7NUVEMjs1RUQyOzVFRDI7NUVEMjsKK0ZBODM7NUVEOTs1RUQ5OzVFRDk7NUVEOTsKK0ZBODQ7NUY2OTs1RjY5OzVGNjk7NUY2OTsKK0ZBODU7NUZBRDs1RkFEOzVGQUQ7NUZBRDsKK0ZBODY7NjBEODs2MEQ4OzYwRDg7NjBEODsKK0ZBODc7NjE0RTs2MTRFOzYxNEU7NjE0RTsKK0ZBODg7NjEwODs2MTA4OzYxMDg7NjEwODsKK0ZBODk7NjE4RTs2MThFOzYxOEU7NjE4RTsKK0ZBOEE7NjE2MDs2MTYwOzYxNjA7NjE2MDsKK0ZBOEI7NjFGMjs2MUYyOzYxRjI7NjFGMjsKK0ZBOEM7NjIzNDs2MjM0OzYyMzQ7NjIzNDsKK0ZBOEQ7NjNDNDs2M0M0OzYzQzQ7NjNDNDsKK0ZBOEU7NjQxQzs2NDFDOzY0MUM7NjQxQzsKK0ZBOEY7NjQ1Mjs2NDUyOzY0NTI7NjQ1MjsKK0ZBOTA7NjU1Njs2NTU2OzY1NTY7NjU1NjsKK0ZBOTE7NjY3NDs2Njc0OzY2NzQ7NjY3NDsKK0ZBOTI7NjcxNzs2NzE3OzY3MTc7NjcxNzsKK0ZBOTM7NjcxQjs2NzFCOzY3MUI7NjcxQjsKK0ZBOTQ7Njc1Njs2NzU2OzY3NTY7Njc1NjsKK0ZBOTU7NkI3OTs2Qjc5OzZCNzk7NkI3OTsKK0ZBOTY7NkJCQTs2QkJBOzZCQkE7NkJCQTsKK0ZBOTc7NkQ0MTs2RDQxOzZENDE7NkQ0MTsKK0ZBOTg7NkVEQjs2RURCOzZFREI7NkVEQjsKK0ZBOTk7NkVDQjs2RUNCOzZFQ0I7NkVDQjsKK0ZBOUE7NkYyMjs2RjIyOzZGMjI7NkYyMjsKK0ZBOUI7NzAxRTs3MDFFOzcwMUU7NzAxRTsKK0ZBOUM7NzE2RTs3MTZFOzcxNkU7NzE2RTsKK0ZBOUQ7NzdBNzs3N0E3Ozc3QTc7NzdBNzsKK0ZBOUU7NzIzNTs3MjM1OzcyMzU7NzIzNTsKK0ZBOUY7NzJBRjs3MkFGOzcyQUY7NzJBRjsKK0ZBQTA7NzMyQTs3MzJBOzczMkE7NzMyQTsKK0ZBQTE7NzQ3MTs3NDcxOzc0NzE7NzQ3MTsKK0ZBQTI7NzUwNjs3NTA2Ozc1MDY7NzUwNjsKK0ZBQTM7NzUzQjs3NTNCOzc1M0I7NzUzQjsKK0ZBQTQ7NzYxRDs3NjFEOzc2MUQ7NzYxRDsKK0ZBQTU7NzYxRjs3NjFGOzc2MUY7NzYxRjsKK0ZBQTY7NzZDQTs3NkNBOzc2Q0E7NzZDQTsKK0ZBQTc7NzZEQjs3NkRCOzc2REI7NzZEQjsKK0ZBQTg7NzZGNDs3NkY0Ozc2RjQ7NzZGNDsKK0ZBQTk7Nzc0QTs3NzRBOzc3NEE7Nzc0QTsKK0ZBQUE7Nzc0MDs3NzQwOzc3NDA7Nzc0MDsKK0ZBQUI7NzhDQzs3OENDOzc4Q0M7NzhDQzsKK0ZBQUM7N0FCMTs3QUIxOzdBQjE7N0FCMTsKK0ZBQUQ7N0JDMDs3QkMwOzdCQzA7N0JDMDsKK0ZBQUU7N0M3Qjs3QzdCOzdDN0I7N0M3QjsKK0ZBQUY7N0Q1Qjs3RDVCOzdENUI7N0Q1QjsKK0ZBQjA7N0RGNDs3REY0OzdERjQ7N0RGNDsKK0ZBQjE7N0YzRTs3RjNFOzdGM0U7N0YzRTsKK0ZBQjI7ODAwNTs4MDA1OzgwMDU7ODAwNTsKK0ZBQjM7ODM1Mjs4MzUyOzgzNTI7ODM1MjsKK0ZBQjQ7ODNFRjs4M0VGOzgzRUY7ODNFRjsKK0ZBQjU7ODc3OTs4Nzc5Ozg3Nzk7ODc3OTsKK0ZBQjY7ODk0MTs4OTQxOzg5NDE7ODk0MTsKK0ZBQjc7ODk4Njs4OTg2Ozg5ODY7ODk4NjsKK0ZBQjg7ODk5Njs4OTk2Ozg5OTY7ODk5NjsKK0ZBQjk7OEFCRjs4QUJGOzhBQkY7OEFCRjsKK0ZBQkE7OEFGODs4QUY4OzhBRjg7OEFGODsKK0ZBQkI7OEFDQjs4QUNCOzhBQ0I7OEFDQjsKK0ZBQkM7OEIwMTs4QjAxOzhCMDE7OEIwMTsKK0ZBQkQ7OEFGRTs4QUZFOzhBRkU7OEFGRTsKK0ZBQkU7OEFFRDs4QUVEOzhBRUQ7OEFFRDsKK0ZBQkY7OEIzOTs4QjM5OzhCMzk7OEIzOTsKK0ZBQzA7OEI4QTs4QjhBOzhCOEE7OEI4QTsKK0ZBQzE7OEQwODs4RDA4OzhEMDg7OEQwODsKK0ZBQzI7OEYzODs4RjM4OzhGMzg7OEYzODsKK0ZBQzM7OTA3Mjs5MDcyOzkwNzI7OTA3MjsKK0ZBQzQ7OTE5OTs5MTk5OzkxOTk7OTE5OTsKK0ZBQzU7OTI3Njs5Mjc2OzkyNzY7OTI3NjsKK0ZBQzY7OTY3Qzs5NjdDOzk2N0M7OTY3QzsKK0ZBQzc7OTZFMzs5NkUzOzk2RTM7OTZFMzsKK0ZBQzg7OTc1Njs5NzU2Ozk3NTY7OTc1NjsKK0ZBQzk7OTdEQjs5N0RCOzk3REI7OTdEQjsKK0ZBQ0E7OTdGRjs5N0ZGOzk3RkY7OTdGRjsKK0ZBQ0I7OTgwQjs5ODBCOzk4MEI7OTgwQjsKK0ZBQ0M7OTgzQjs5ODNCOzk4M0I7OTgzQjsKK0ZBQ0Q7OUIxMjs5QjEyOzlCMTI7OUIxMjsKK0ZBQ0U7OUY5Qzs5RjlDOzlGOUM7OUY5QzsKK0ZBQ0Y7MjI4NEE7MjI4NEE7MjI4NEE7MjI4NEE7CitGQUQwOzIyODQ0OzIyODQ0OzIyODQ0OzIyODQ0OworRkFEMTsyMzNENTsyMzNENTsyMzNENTsyMzNENTsKK0ZBRDI7M0I5RDszQjlEOzNCOUQ7M0I5RDsKK0ZBRDM7NDAxODs0MDE4OzQwMTg7NDAxODsKK0ZBRDQ7NDAzOTs0MDM5OzQwMzk7NDAzOTsKK0ZBRDU7MjUyNDk7MjUyNDk7MjUyNDk7MjUyNDk7CitGQUQ2OzI1Q0QwOzI1Q0QwOzI1Q0QwOzI1Q0QwOworRkFENzsyN0VEMzsyN0VEMzsyN0VEMzsyN0VEMzsKK0ZBRDg7OUY0Mzs5RjQzOzlGNDM7OUY0MzsKK0ZBRDk7OUY4RTs5RjhFOzlGOEU7OUY4RTsKK0ZCMDA7RkIwMDtGQjAwOzAwNjYgMDA2NjswMDY2IDAwNjY7CitGQjAxO0ZCMDE7RkIwMTswMDY2IDAwNjk7MDA2NiAwMDY5OworRkIwMjtGQjAyO0ZCMDI7MDA2NiAwMDZDOzAwNjYgMDA2QzsKK0ZCMDM7RkIwMztGQjAzOzAwNjYgMDA2NiAwMDY5OzAwNjYgMDA2NiAwMDY5OworRkIwNDtGQjA0O0ZCMDQ7MDA2NiAwMDY2IDAwNkM7MDA2NiAwMDY2IDAwNkM7CitGQjA1O0ZCMDU7RkIwNTswMDczIDAwNzQ7MDA3MyAwMDc0OworRkIwNjtGQjA2O0ZCMDY7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMTM7RkIxMztGQjEzOzA1NzQgMDU3NjswNTc0IDA1NzY7CitGQjE0O0ZCMTQ7RkIxNDswNTc0IDA1NjU7MDU3NCAwNTY1OworRkIxNTtGQjE1O0ZCMTU7MDU3NCAwNTZCOzA1NzQgMDU2QjsKK0ZCMTY7RkIxNjtGQjE2OzA1N0UgMDU3NjswNTdFIDA1NzY7CitGQjE3O0ZCMTc7RkIxNzswNTc0IDA1NkQ7MDU3NCAwNTZEOworRkIxRDswNUQ5IDA1QjQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7CitGQjFGOzA1RjIgMDVCNzswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzsKK0ZCMjA7RkIyMDtGQjIwOzA1RTI7MDVFMjsKK0ZCMjE7RkIyMTtGQjIxOzA1RDA7MDVEMDsKK0ZCMjI7RkIyMjtGQjIyOzA1RDM7MDVEMzsKK0ZCMjM7RkIyMztGQjIzOzA1RDQ7MDVENDsKK0ZCMjQ7RkIyNDtGQjI0OzA1REI7MDVEQjsKK0ZCMjU7RkIyNTtGQjI1OzA1REM7MDVEQzsKK0ZCMjY7RkIyNjtGQjI2OzA1REQ7MDVERDsKK0ZCMjc7RkIyNztGQjI3OzA1RTg7MDVFODsKK0ZCMjg7RkIyODtGQjI4OzA1RUE7MDVFQTsKK0ZCMjk7RkIyOTtGQjI5OzAwMkI7MDAyQjsKK0ZCMkE7MDVFOSAwNUMxOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOworRkIyQjswNUU5IDA1QzI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7CitGQjJDOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOzA1RTkgMDVCQyAwNUMxOworRkIyRDswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjswNUU5IDA1QkMgMDVDMjsKK0ZCMkU7MDVEMCAwNUI3OzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OworRkIyRjswNUQwIDA1Qjg7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7CitGQjMwOzA1RDAgMDVCQzswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzsKK0ZCMzE7MDVEMSAwNUJDOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOworRkIzMjswNUQyIDA1QkM7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7CitGQjMzOzA1RDMgMDVCQzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzsKK0ZCMzQ7MDVENCAwNUJDOzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOworRkIzNTswNUQ1IDA1QkM7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7CitGQjM2OzA1RDYgMDVCQzswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzsKK0ZCMzg7MDVEOCAwNUJDOzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOworRkIzOTswNUQ5IDA1QkM7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7CitGQjNBOzA1REEgMDVCQzswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzsKK0ZCM0I7MDVEQiAwNUJDOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOworRkIzQzswNURDIDA1QkM7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7CitGQjNFOzA1REUgMDVCQzswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzsKK0ZCNDA7MDVFMCAwNUJDOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOworRkI0MTswNUUxIDA1QkM7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7CitGQjQzOzA1RTMgMDVCQzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzsKK0ZCNDQ7MDVFNCAwNUJDOzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOworRkI0NjswNUU2IDA1QkM7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7CitGQjQ3OzA1RTcgMDVCQzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzsKK0ZCNDg7MDVFOCAwNUJDOzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOworRkI0OTswNUU5IDA1QkM7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7CitGQjRBOzA1RUEgMDVCQzswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzsKK0ZCNEI7MDVENSAwNUI5OzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OworRkI0QzswNUQxIDA1QkY7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7CitGQjREOzA1REIgMDVCRjswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjsKK0ZCNEU7MDVFNCAwNUJGOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOworRkI0RjtGQjRGO0ZCNEY7MDVEMCAwNURDOzA1RDAgMDVEQzsKK0ZCNTA7RkI1MDtGQjUwOzA2NzE7MDY3MTsKK0ZCNTE7RkI1MTtGQjUxOzA2NzE7MDY3MTsKK0ZCNTI7RkI1MjtGQjUyOzA2N0I7MDY3QjsKK0ZCNTM7RkI1MztGQjUzOzA2N0I7MDY3QjsKK0ZCNTQ7RkI1NDtGQjU0OzA2N0I7MDY3QjsKK0ZCNTU7RkI1NTtGQjU1OzA2N0I7MDY3QjsKK0ZCNTY7RkI1NjtGQjU2OzA2N0U7MDY3RTsKK0ZCNTc7RkI1NztGQjU3OzA2N0U7MDY3RTsKK0ZCNTg7RkI1ODtGQjU4OzA2N0U7MDY3RTsKK0ZCNTk7RkI1OTtGQjU5OzA2N0U7MDY3RTsKK0ZCNUE7RkI1QTtGQjVBOzA2ODA7MDY4MDsKK0ZCNUI7RkI1QjtGQjVCOzA2ODA7MDY4MDsKK0ZCNUM7RkI1QztGQjVDOzA2ODA7MDY4MDsKK0ZCNUQ7RkI1RDtGQjVEOzA2ODA7MDY4MDsKK0ZCNUU7RkI1RTtGQjVFOzA2N0E7MDY3QTsKK0ZCNUY7RkI1RjtGQjVGOzA2N0E7MDY3QTsKK0ZCNjA7RkI2MDtGQjYwOzA2N0E7MDY3QTsKK0ZCNjE7RkI2MTtGQjYxOzA2N0E7MDY3QTsKK0ZCNjI7RkI2MjtGQjYyOzA2N0Y7MDY3RjsKK0ZCNjM7RkI2MztGQjYzOzA2N0Y7MDY3RjsKK0ZCNjQ7RkI2NDtGQjY0OzA2N0Y7MDY3RjsKK0ZCNjU7RkI2NTtGQjY1OzA2N0Y7MDY3RjsKK0ZCNjY7RkI2NjtGQjY2OzA2Nzk7MDY3OTsKK0ZCNjc7RkI2NztGQjY3OzA2Nzk7MDY3OTsKK0ZCNjg7RkI2ODtGQjY4OzA2Nzk7MDY3OTsKK0ZCNjk7RkI2OTtGQjY5OzA2Nzk7MDY3OTsKK0ZCNkE7RkI2QTtGQjZBOzA2QTQ7MDZBNDsKK0ZCNkI7RkI2QjtGQjZCOzA2QTQ7MDZBNDsKK0ZCNkM7RkI2QztGQjZDOzA2QTQ7MDZBNDsKK0ZCNkQ7RkI2RDtGQjZEOzA2QTQ7MDZBNDsKK0ZCNkU7RkI2RTtGQjZFOzA2QTY7MDZBNjsKK0ZCNkY7RkI2RjtGQjZGOzA2QTY7MDZBNjsKK0ZCNzA7RkI3MDtGQjcwOzA2QTY7MDZBNjsKK0ZCNzE7RkI3MTtGQjcxOzA2QTY7MDZBNjsKK0ZCNzI7RkI3MjtGQjcyOzA2ODQ7MDY4NDsKK0ZCNzM7RkI3MztGQjczOzA2ODQ7MDY4NDsKK0ZCNzQ7RkI3NDtGQjc0OzA2ODQ7MDY4NDsKK0ZCNzU7RkI3NTtGQjc1OzA2ODQ7MDY4NDsKK0ZCNzY7RkI3NjtGQjc2OzA2ODM7MDY4MzsKK0ZCNzc7RkI3NztGQjc3OzA2ODM7MDY4MzsKK0ZCNzg7RkI3ODtGQjc4OzA2ODM7MDY4MzsKK0ZCNzk7RkI3OTtGQjc5OzA2ODM7MDY4MzsKK0ZCN0E7RkI3QTtGQjdBOzA2ODY7MDY4NjsKK0ZCN0I7RkI3QjtGQjdCOzA2ODY7MDY4NjsKK0ZCN0M7RkI3QztGQjdDOzA2ODY7MDY4NjsKK0ZCN0Q7RkI3RDtGQjdEOzA2ODY7MDY4NjsKK0ZCN0U7RkI3RTtGQjdFOzA2ODc7MDY4NzsKK0ZCN0Y7RkI3RjtGQjdGOzA2ODc7MDY4NzsKK0ZCODA7RkI4MDtGQjgwOzA2ODc7MDY4NzsKK0ZCODE7RkI4MTtGQjgxOzA2ODc7MDY4NzsKK0ZCODI7RkI4MjtGQjgyOzA2OEQ7MDY4RDsKK0ZCODM7RkI4MztGQjgzOzA2OEQ7MDY4RDsKK0ZCODQ7RkI4NDtGQjg0OzA2OEM7MDY4QzsKK0ZCODU7RkI4NTtGQjg1OzA2OEM7MDY4QzsKK0ZCODY7RkI4NjtGQjg2OzA2OEU7MDY4RTsKK0ZCODc7RkI4NztGQjg3OzA2OEU7MDY4RTsKK0ZCODg7RkI4ODtGQjg4OzA2ODg7MDY4ODsKK0ZCODk7RkI4OTtGQjg5OzA2ODg7MDY4ODsKK0ZCOEE7RkI4QTtGQjhBOzA2OTg7MDY5ODsKK0ZCOEI7RkI4QjtGQjhCOzA2OTg7MDY5ODsKK0ZCOEM7RkI4QztGQjhDOzA2OTE7MDY5MTsKK0ZCOEQ7RkI4RDtGQjhEOzA2OTE7MDY5MTsKK0ZCOEU7RkI4RTtGQjhFOzA2QTk7MDZBOTsKK0ZCOEY7RkI4RjtGQjhGOzA2QTk7MDZBOTsKK0ZCOTA7RkI5MDtGQjkwOzA2QTk7MDZBOTsKK0ZCOTE7RkI5MTtGQjkxOzA2QTk7MDZBOTsKK0ZCOTI7RkI5MjtGQjkyOzA2QUY7MDZBRjsKK0ZCOTM7RkI5MztGQjkzOzA2QUY7MDZBRjsKK0ZCOTQ7RkI5NDtGQjk0OzA2QUY7MDZBRjsKK0ZCOTU7RkI5NTtGQjk1OzA2QUY7MDZBRjsKK0ZCOTY7RkI5NjtGQjk2OzA2QjM7MDZCMzsKK0ZCOTc7RkI5NztGQjk3OzA2QjM7MDZCMzsKK0ZCOTg7RkI5ODtGQjk4OzA2QjM7MDZCMzsKK0ZCOTk7RkI5OTtGQjk5OzA2QjM7MDZCMzsKK0ZCOUE7RkI5QTtGQjlBOzA2QjE7MDZCMTsKK0ZCOUI7RkI5QjtGQjlCOzA2QjE7MDZCMTsKK0ZCOUM7RkI5QztGQjlDOzA2QjE7MDZCMTsKK0ZCOUQ7RkI5RDtGQjlEOzA2QjE7MDZCMTsKK0ZCOUU7RkI5RTtGQjlFOzA2QkE7MDZCQTsKK0ZCOUY7RkI5RjtGQjlGOzA2QkE7MDZCQTsKK0ZCQTA7RkJBMDtGQkEwOzA2QkI7MDZCQjsKK0ZCQTE7RkJBMTtGQkExOzA2QkI7MDZCQjsKK0ZCQTI7RkJBMjtGQkEyOzA2QkI7MDZCQjsKK0ZCQTM7RkJBMztGQkEzOzA2QkI7MDZCQjsKK0ZCQTQ7RkJBNDtGQkE0OzA2QzA7MDZENSAwNjU0OworRkJBNTtGQkE1O0ZCQTU7MDZDMDswNkQ1IDA2NTQ7CitGQkE2O0ZCQTY7RkJBNjswNkMxOzA2QzE7CitGQkE3O0ZCQTc7RkJBNzswNkMxOzA2QzE7CitGQkE4O0ZCQTg7RkJBODswNkMxOzA2QzE7CitGQkE5O0ZCQTk7RkJBOTswNkMxOzA2QzE7CitGQkFBO0ZCQUE7RkJBQTswNkJFOzA2QkU7CitGQkFCO0ZCQUI7RkJBQjswNkJFOzA2QkU7CitGQkFDO0ZCQUM7RkJBQzswNkJFOzA2QkU7CitGQkFEO0ZCQUQ7RkJBRDswNkJFOzA2QkU7CitGQkFFO0ZCQUU7RkJBRTswNkQyOzA2RDI7CitGQkFGO0ZCQUY7RkJBRjswNkQyOzA2RDI7CitGQkIwO0ZCQjA7RkJCMDswNkQzOzA2RDIgMDY1NDsKK0ZCQjE7RkJCMTtGQkIxOzA2RDM7MDZEMiAwNjU0OworRkJEMztGQkQzO0ZCRDM7MDZBRDswNkFEOworRkJENDtGQkQ0O0ZCRDQ7MDZBRDswNkFEOworRkJENTtGQkQ1O0ZCRDU7MDZBRDswNkFEOworRkJENjtGQkQ2O0ZCRDY7MDZBRDswNkFEOworRkJENztGQkQ3O0ZCRDc7MDZDNzswNkM3OworRkJEODtGQkQ4O0ZCRDg7MDZDNzswNkM3OworRkJEOTtGQkQ5O0ZCRDk7MDZDNjswNkM2OworRkJEQTtGQkRBO0ZCREE7MDZDNjswNkM2OworRkJEQjtGQkRCO0ZCREI7MDZDODswNkM4OworRkJEQztGQkRDO0ZCREM7MDZDODswNkM4OworRkJERDtGQkREO0ZCREQ7MDZDNyAwNjc0OzA2QzcgMDY3NDsKK0ZCREU7RkJERTtGQkRFOzA2Q0I7MDZDQjsKK0ZCREY7RkJERjtGQkRGOzA2Q0I7MDZDQjsKK0ZCRTA7RkJFMDtGQkUwOzA2QzU7MDZDNTsKK0ZCRTE7RkJFMTtGQkUxOzA2QzU7MDZDNTsKK0ZCRTI7RkJFMjtGQkUyOzA2Qzk7MDZDOTsKK0ZCRTM7RkJFMztGQkUzOzA2Qzk7MDZDOTsKK0ZCRTQ7RkJFNDtGQkU0OzA2RDA7MDZEMDsKK0ZCRTU7RkJFNTtGQkU1OzA2RDA7MDZEMDsKK0ZCRTY7RkJFNjtGQkU2OzA2RDA7MDZEMDsKK0ZCRTc7RkJFNztGQkU3OzA2RDA7MDZEMDsKK0ZCRTg7RkJFODtGQkU4OzA2NDk7MDY0OTsKK0ZCRTk7RkJFOTtGQkU5OzA2NDk7MDY0OTsKK0ZCRUE7RkJFQTtGQkVBOzA2MjYgMDYyNzswNjRBIDA2NTQgMDYyNzsKK0ZCRUI7RkJFQjtGQkVCOzA2MjYgMDYyNzswNjRBIDA2NTQgMDYyNzsKK0ZCRUM7RkJFQztGQkVDOzA2MjYgMDZENTswNjRBIDA2NTQgMDZENTsKK0ZCRUQ7RkJFRDtGQkVEOzA2MjYgMDZENTswNjRBIDA2NTQgMDZENTsKK0ZCRUU7RkJFRTtGQkVFOzA2MjYgMDY0ODswNjRBIDA2NTQgMDY0ODsKK0ZCRUY7RkJFRjtGQkVGOzA2MjYgMDY0ODswNjRBIDA2NTQgMDY0ODsKK0ZCRjA7RkJGMDtGQkYwOzA2MjYgMDZDNzswNjRBIDA2NTQgMDZDNzsKK0ZCRjE7RkJGMTtGQkYxOzA2MjYgMDZDNzswNjRBIDA2NTQgMDZDNzsKK0ZCRjI7RkJGMjtGQkYyOzA2MjYgMDZDNjswNjRBIDA2NTQgMDZDNjsKK0ZCRjM7RkJGMztGQkYzOzA2MjYgMDZDNjswNjRBIDA2NTQgMDZDNjsKK0ZCRjQ7RkJGNDtGQkY0OzA2MjYgMDZDODswNjRBIDA2NTQgMDZDODsKK0ZCRjU7RkJGNTtGQkY1OzA2MjYgMDZDODswNjRBIDA2NTQgMDZDODsKK0ZCRjY7RkJGNjtGQkY2OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjc7RkJGNztGQkY3OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjg7RkJGODtGQkY4OzA2MjYgMDZEMDswNjRBIDA2NTQgMDZEMDsKK0ZCRjk7RkJGOTtGQkY5OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkE7RkJGQTtGQkZBOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkI7RkJGQjtGQkZCOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZCRkM7RkJGQztGQkZDOzA2Q0M7MDZDQzsKK0ZCRkQ7RkJGRDtGQkZEOzA2Q0M7MDZDQzsKK0ZCRkU7RkJGRTtGQkZFOzA2Q0M7MDZDQzsKK0ZCRkY7RkJGRjtGQkZGOzA2Q0M7MDZDQzsKK0ZDMDA7RkMwMDtGQzAwOzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDMDE7RkMwMTtGQzAxOzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDMDI7RkMwMjtGQzAyOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDMDM7RkMwMztGQzAzOzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDMDQ7RkMwNDtGQzA0OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDMDU7RkMwNTtGQzA1OzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzA2O0ZDMDY7RkMwNjswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkMwNztGQzA3O0ZDMDc7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDMDg7RkMwODtGQzA4OzA2MjggMDY0NTswNjI4IDA2NDU7CitGQzA5O0ZDMDk7RkMwOTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkMwQTtGQzBBO0ZDMEE7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDMEI7RkMwQjtGQzBCOzA2MkEgMDYyQzswNjJBIDA2MkM7CitGQzBDO0ZDMEM7RkMwQzswNjJBIDA2MkQ7MDYyQSAwNjJEOworRkMwRDtGQzBEO0ZDMEQ7MDYyQSAwNjJFOzA2MkEgMDYyRTsKK0ZDMEU7RkMwRTtGQzBFOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQzBGO0ZDMEY7RkMwRjswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkMxMDtGQzEwO0ZDMTA7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDMTE7RkMxMTtGQzExOzA2MkIgMDYyQzswNjJCIDA2MkM7CitGQzEyO0ZDMTI7RkMxMjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkMxMztGQzEzO0ZDMTM7MDYyQiAwNjQ5OzA2MkIgMDY0OTsKK0ZDMTQ7RkMxNDtGQzE0OzA2MkIgMDY0QTswNjJCIDA2NEE7CitGQzE1O0ZDMTU7RkMxNTswNjJDIDA2MkQ7MDYyQyAwNjJEOworRkMxNjtGQzE2O0ZDMTY7MDYyQyAwNjQ1OzA2MkMgMDY0NTsKK0ZDMTc7RkMxNztGQzE3OzA2MkQgMDYyQzswNjJEIDA2MkM7CitGQzE4O0ZDMTg7RkMxODswNjJEIDA2NDU7MDYyRCAwNjQ1OworRkMxOTtGQzE5O0ZDMTk7MDYyRSAwNjJDOzA2MkUgMDYyQzsKK0ZDMUE7RkMxQTtGQzFBOzA2MkUgMDYyRDswNjJFIDA2MkQ7CitGQzFCO0ZDMUI7RkMxQjswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkMxQztGQzFDO0ZDMUM7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDMUQ7RkMxRDtGQzFEOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQzFFO0ZDMUU7RkMxRTswNjMzIDA2MkU7MDYzMyAwNjJFOworRkMxRjtGQzFGO0ZDMUY7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDMjA7RkMyMDtGQzIwOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQzIxO0ZDMjE7RkMyMTswNjM1IDA2NDU7MDYzNSAwNjQ1OworRkMyMjtGQzIyO0ZDMjI7MDYzNiAwNjJDOzA2MzYgMDYyQzsKK0ZDMjM7RkMyMztGQzIzOzA2MzYgMDYyRDswNjM2IDA2MkQ7CitGQzI0O0ZDMjQ7RkMyNDswNjM2IDA2MkU7MDYzNiAwNjJFOworRkMyNTtGQzI1O0ZDMjU7MDYzNiAwNjQ1OzA2MzYgMDY0NTsKK0ZDMjY7RkMyNjtGQzI2OzA2MzcgMDYyRDswNjM3IDA2MkQ7CitGQzI3O0ZDMjc7RkMyNzswNjM3IDA2NDU7MDYzNyAwNjQ1OworRkMyODtGQzI4O0ZDMjg7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDMjk7RkMyOTtGQzI5OzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQzJBO0ZDMkE7RkMyQTswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkMyQjtGQzJCO0ZDMkI7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDMkM7RkMyQztGQzJDOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQzJEO0ZDMkQ7RkMyRDswNjQxIDA2MkM7MDY0MSAwNjJDOworRkMyRTtGQzJFO0ZDMkU7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDMkY7RkMyRjtGQzJGOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQzMwO0ZDMzA7RkMzMDswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkMzMTtGQzMxO0ZDMzE7MDY0MSAwNjQ5OzA2NDEgMDY0OTsKK0ZDMzI7RkMzMjtGQzMyOzA2NDEgMDY0QTswNjQxIDA2NEE7CitGQzMzO0ZDMzM7RkMzMzswNjQyIDA2MkQ7MDY0MiAwNjJEOworRkMzNDtGQzM0O0ZDMzQ7MDY0MiAwNjQ1OzA2NDIgMDY0NTsKK0ZDMzU7RkMzNTtGQzM1OzA2NDIgMDY0OTswNjQyIDA2NDk7CitGQzM2O0ZDMzY7RkMzNjswNjQyIDA2NEE7MDY0MiAwNjRBOworRkMzNztGQzM3O0ZDMzc7MDY0MyAwNjI3OzA2NDMgMDYyNzsKK0ZDMzg7RkMzODtGQzM4OzA2NDMgMDYyQzswNjQzIDA2MkM7CitGQzM5O0ZDMzk7RkMzOTswNjQzIDA2MkQ7MDY0MyAwNjJEOworRkMzQTtGQzNBO0ZDM0E7MDY0MyAwNjJFOzA2NDMgMDYyRTsKK0ZDM0I7RkMzQjtGQzNCOzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQzNDO0ZDM0M7RkMzQzswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkMzRDtGQzNEO0ZDM0Q7MDY0MyAwNjQ5OzA2NDMgMDY0OTsKK0ZDM0U7RkMzRTtGQzNFOzA2NDMgMDY0QTswNjQzIDA2NEE7CitGQzNGO0ZDM0Y7RkMzRjswNjQ0IDA2MkM7MDY0NCAwNjJDOworRkM0MDtGQzQwO0ZDNDA7MDY0NCAwNjJEOzA2NDQgMDYyRDsKK0ZDNDE7RkM0MTtGQzQxOzA2NDQgMDYyRTswNjQ0IDA2MkU7CitGQzQyO0ZDNDI7RkM0MjswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkM0MztGQzQzO0ZDNDM7MDY0NCAwNjQ5OzA2NDQgMDY0OTsKK0ZDNDQ7RkM0NDtGQzQ0OzA2NDQgMDY0QTswNjQ0IDA2NEE7CitGQzQ1O0ZDNDU7RkM0NTswNjQ1IDA2MkM7MDY0NSAwNjJDOworRkM0NjtGQzQ2O0ZDNDY7MDY0NSAwNjJEOzA2NDUgMDYyRDsKK0ZDNDc7RkM0NztGQzQ3OzA2NDUgMDYyRTswNjQ1IDA2MkU7CitGQzQ4O0ZDNDg7RkM0ODswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM0OTtGQzQ5O0ZDNDk7MDY0NSAwNjQ5OzA2NDUgMDY0OTsKK0ZDNEE7RkM0QTtGQzRBOzA2NDUgMDY0QTswNjQ1IDA2NEE7CitGQzRCO0ZDNEI7RkM0QjswNjQ2IDA2MkM7MDY0NiAwNjJDOworRkM0QztGQzRDO0ZDNEM7MDY0NiAwNjJEOzA2NDYgMDYyRDsKK0ZDNEQ7RkM0RDtGQzREOzA2NDYgMDYyRTswNjQ2IDA2MkU7CitGQzRFO0ZDNEU7RkM0RTswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM0RjtGQzRGO0ZDNEY7MDY0NiAwNjQ5OzA2NDYgMDY0OTsKK0ZDNTA7RkM1MDtGQzUwOzA2NDYgMDY0QTswNjQ2IDA2NEE7CitGQzUxO0ZDNTE7RkM1MTswNjQ3IDA2MkM7MDY0NyAwNjJDOworRkM1MjtGQzUyO0ZDNTI7MDY0NyAwNjQ1OzA2NDcgMDY0NTsKK0ZDNTM7RkM1MztGQzUzOzA2NDcgMDY0OTswNjQ3IDA2NDk7CitGQzU0O0ZDNTQ7RkM1NDswNjQ3IDA2NEE7MDY0NyAwNjRBOworRkM1NTtGQzU1O0ZDNTU7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDNTY7RkM1NjtGQzU2OzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQzU3O0ZDNTc7RkM1NzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkM1ODtGQzU4O0ZDNTg7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDNTk7RkM1OTtGQzU5OzA2NEEgMDY0OTswNjRBIDA2NDk7CitGQzVBO0ZDNUE7RkM1QTswNjRBIDA2NEE7MDY0QSAwNjRBOworRkM1QjtGQzVCO0ZDNUI7MDYzMCAwNjcwOzA2MzAgMDY3MDsKK0ZDNUM7RkM1QztGQzVDOzA2MzEgMDY3MDswNjMxIDA2NzA7CitGQzVEO0ZDNUQ7RkM1RDswNjQ5IDA2NzA7MDY0OSAwNjcwOworRkM1RTtGQzVFO0ZDNUU7MDAyMCAwNjRDIDA2NTE7MDAyMCAwNjRDIDA2NTE7CitGQzVGO0ZDNUY7RkM1RjswMDIwIDA2NEQgMDY1MTswMDIwIDA2NEQgMDY1MTsKK0ZDNjA7RkM2MDtGQzYwOzAwMjAgMDY0RSAwNjUxOzAwMjAgMDY0RSAwNjUxOworRkM2MTtGQzYxO0ZDNjE7MDAyMCAwNjRGIDA2NTE7MDAyMCAwNjRGIDA2NTE7CitGQzYyO0ZDNjI7RkM2MjswMDIwIDA2NTAgMDY1MTswMDIwIDA2NTAgMDY1MTsKK0ZDNjM7RkM2MztGQzYzOzAwMjAgMDY1MSAwNjcwOzAwMjAgMDY1MSAwNjcwOworRkM2NDtGQzY0O0ZDNjQ7MDYyNiAwNjMxOzA2NEEgMDY1NCAwNjMxOworRkM2NTtGQzY1O0ZDNjU7MDYyNiAwNjMyOzA2NEEgMDY1NCAwNjMyOworRkM2NjtGQzY2O0ZDNjY7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkM2NztGQzY3O0ZDNjc7MDYyNiAwNjQ2OzA2NEEgMDY1NCAwNjQ2OworRkM2ODtGQzY4O0ZDNjg7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkM2OTtGQzY5O0ZDNjk7MDYyNiAwNjRBOzA2NEEgMDY1NCAwNjRBOworRkM2QTtGQzZBO0ZDNkE7MDYyOCAwNjMxOzA2MjggMDYzMTsKK0ZDNkI7RkM2QjtGQzZCOzA2MjggMDYzMjswNjI4IDA2MzI7CitGQzZDO0ZDNkM7RkM2QzswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkM2RDtGQzZEO0ZDNkQ7MDYyOCAwNjQ2OzA2MjggMDY0NjsKK0ZDNkU7RkM2RTtGQzZFOzA2MjggMDY0OTswNjI4IDA2NDk7CitGQzZGO0ZDNkY7RkM2RjswNjI4IDA2NEE7MDYyOCAwNjRBOworRkM3MDtGQzcwO0ZDNzA7MDYyQSAwNjMxOzA2MkEgMDYzMTsKK0ZDNzE7RkM3MTtGQzcxOzA2MkEgMDYzMjswNjJBIDA2MzI7CitGQzcyO0ZDNzI7RkM3MjswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkM3MztGQzczO0ZDNzM7MDYyQSAwNjQ2OzA2MkEgMDY0NjsKK0ZDNzQ7RkM3NDtGQzc0OzA2MkEgMDY0OTswNjJBIDA2NDk7CitGQzc1O0ZDNzU7RkM3NTswNjJBIDA2NEE7MDYyQSAwNjRBOworRkM3NjtGQzc2O0ZDNzY7MDYyQiAwNjMxOzA2MkIgMDYzMTsKK0ZDNzc7RkM3NztGQzc3OzA2MkIgMDYzMjswNjJCIDA2MzI7CitGQzc4O0ZDNzg7RkM3ODswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkM3OTtGQzc5O0ZDNzk7MDYyQiAwNjQ2OzA2MkIgMDY0NjsKK0ZDN0E7RkM3QTtGQzdBOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzdCO0ZDN0I7RkM3QjswNjJCIDA2NEE7MDYyQiAwNjRBOworRkM3QztGQzdDO0ZDN0M7MDY0MSAwNjQ5OzA2NDEgMDY0OTsKK0ZDN0Q7RkM3RDtGQzdEOzA2NDEgMDY0QTswNjQxIDA2NEE7CitGQzdFO0ZDN0U7RkM3RTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkM3RjtGQzdGO0ZDN0Y7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDODA7RkM4MDtGQzgwOzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzgxO0ZDODE7RkM4MTswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkM4MjtGQzgyO0ZDODI7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDODM7RkM4MztGQzgzOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzg0O0ZDODQ7RkM4NDswNjQzIDA2NEE7MDY0MyAwNjRBOworRkM4NTtGQzg1O0ZDODU7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDODY7RkM4NjtGQzg2OzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzg3O0ZDODc7RkM4NzswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM4ODtGQzg4O0ZDODg7MDY0NSAwNjI3OzA2NDUgMDYyNzsKK0ZDODk7RkM4OTtGQzg5OzA2NDUgMDY0NTswNjQ1IDA2NDU7CitGQzhBO0ZDOEE7RkM4QTswNjQ2IDA2MzE7MDY0NiAwNjMxOworRkM4QjtGQzhCO0ZDOEI7MDY0NiAwNjMyOzA2NDYgMDYzMjsKK0ZDOEM7RkM4QztGQzhDOzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQzhEO0ZDOEQ7RkM4RDswNjQ2IDA2NDY7MDY0NiAwNjQ2OworRkM4RTtGQzhFO0ZDOEU7MDY0NiAwNjQ5OzA2NDYgMDY0OTsKK0ZDOEY7RkM4RjtGQzhGOzA2NDYgMDY0QTswNjQ2IDA2NEE7CitGQzkwO0ZDOTA7RkM5MDswNjQ5IDA2NzA7MDY0OSAwNjcwOworRkM5MTtGQzkxO0ZDOTE7MDY0QSAwNjMxOzA2NEEgMDYzMTsKK0ZDOTI7RkM5MjtGQzkyOzA2NEEgMDYzMjswNjRBIDA2MzI7CitGQzkzO0ZDOTM7RkM5MzswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkM5NDtGQzk0O0ZDOTQ7MDY0QSAwNjQ2OzA2NEEgMDY0NjsKK0ZDOTU7RkM5NTtGQzk1OzA2NEEgMDY0OTswNjRBIDA2NDk7CitGQzk2O0ZDOTY7RkM5NjswNjRBIDA2NEE7MDY0QSAwNjRBOworRkM5NztGQzk3O0ZDOTc7MDYyNiAwNjJDOzA2NEEgMDY1NCAwNjJDOworRkM5ODtGQzk4O0ZDOTg7MDYyNiAwNjJEOzA2NEEgMDY1NCAwNjJEOworRkM5OTtGQzk5O0ZDOTk7MDYyNiAwNjJFOzA2NEEgMDY1NCAwNjJFOworRkM5QTtGQzlBO0ZDOUE7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkM5QjtGQzlCO0ZDOUI7MDYyNiAwNjQ3OzA2NEEgMDY1NCAwNjQ3OworRkM5QztGQzlDO0ZDOUM7MDYyOCAwNjJDOzA2MjggMDYyQzsKK0ZDOUQ7RkM5RDtGQzlEOzA2MjggMDYyRDswNjI4IDA2MkQ7CitGQzlFO0ZDOUU7RkM5RTswNjI4IDA2MkU7MDYyOCAwNjJFOworRkM5RjtGQzlGO0ZDOUY7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDQTA7RkNBMDtGQ0EwOzA2MjggMDY0NzswNjI4IDA2NDc7CitGQ0ExO0ZDQTE7RkNBMTswNjJBIDA2MkM7MDYyQSAwNjJDOworRkNBMjtGQ0EyO0ZDQTI7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDQTM7RkNBMztGQ0EzOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQ0E0O0ZDQTQ7RkNBNDswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkNBNTtGQ0E1O0ZDQTU7MDYyQSAwNjQ3OzA2MkEgMDY0NzsKK0ZDQTY7RkNBNjtGQ0E2OzA2MkIgMDY0NTswNjJCIDA2NDU7CitGQ0E3O0ZDQTc7RkNBNzswNjJDIDA2MkQ7MDYyQyAwNjJEOworRkNBODtGQ0E4O0ZDQTg7MDYyQyAwNjQ1OzA2MkMgMDY0NTsKK0ZDQTk7RkNBOTtGQ0E5OzA2MkQgMDYyQzswNjJEIDA2MkM7CitGQ0FBO0ZDQUE7RkNBQTswNjJEIDA2NDU7MDYyRCAwNjQ1OworRkNBQjtGQ0FCO0ZDQUI7MDYyRSAwNjJDOzA2MkUgMDYyQzsKK0ZDQUM7RkNBQztGQ0FDOzA2MkUgMDY0NTswNjJFIDA2NDU7CitGQ0FEO0ZDQUQ7RkNBRDswNjMzIDA2MkM7MDYzMyAwNjJDOworRkNBRTtGQ0FFO0ZDQUU7MDYzMyAwNjJEOzA2MzMgMDYyRDsKK0ZDQUY7RkNBRjtGQ0FGOzA2MzMgMDYyRTswNjMzIDA2MkU7CitGQ0IwO0ZDQjA7RkNCMDswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNCMTtGQ0IxO0ZDQjE7MDYzNSAwNjJEOzA2MzUgMDYyRDsKK0ZDQjI7RkNCMjtGQ0IyOzA2MzUgMDYyRTswNjM1IDA2MkU7CitGQ0IzO0ZDQjM7RkNCMzswNjM1IDA2NDU7MDYzNSAwNjQ1OworRkNCNDtGQ0I0O0ZDQjQ7MDYzNiAwNjJDOzA2MzYgMDYyQzsKK0ZDQjU7RkNCNTtGQ0I1OzA2MzYgMDYyRDswNjM2IDA2MkQ7CitGQ0I2O0ZDQjY7RkNCNjswNjM2IDA2MkU7MDYzNiAwNjJFOworRkNCNztGQ0I3O0ZDQjc7MDYzNiAwNjQ1OzA2MzYgMDY0NTsKK0ZDQjg7RkNCODtGQ0I4OzA2MzcgMDYyRDswNjM3IDA2MkQ7CitGQ0I5O0ZDQjk7RkNCOTswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkNCQTtGQ0JBO0ZDQkE7MDYzOSAwNjJDOzA2MzkgMDYyQzsKK0ZDQkI7RkNCQjtGQ0JCOzA2MzkgMDY0NTswNjM5IDA2NDU7CitGQ0JDO0ZDQkM7RkNCQzswNjNBIDA2MkM7MDYzQSAwNjJDOworRkNCRDtGQ0JEO0ZDQkQ7MDYzQSAwNjQ1OzA2M0EgMDY0NTsKK0ZDQkU7RkNCRTtGQ0JFOzA2NDEgMDYyQzswNjQxIDA2MkM7CitGQ0JGO0ZDQkY7RkNCRjswNjQxIDA2MkQ7MDY0MSAwNjJEOworRkNDMDtGQ0MwO0ZDQzA7MDY0MSAwNjJFOzA2NDEgMDYyRTsKK0ZDQzE7RkNDMTtGQ0MxOzA2NDEgMDY0NTswNjQxIDA2NDU7CitGQ0MyO0ZDQzI7RkNDMjswNjQyIDA2MkQ7MDY0MiAwNjJEOworRkNDMztGQ0MzO0ZDQzM7MDY0MiAwNjQ1OzA2NDIgMDY0NTsKK0ZDQzQ7RkNDNDtGQ0M0OzA2NDMgMDYyQzswNjQzIDA2MkM7CitGQ0M1O0ZDQzU7RkNDNTswNjQzIDA2MkQ7MDY0MyAwNjJEOworRkNDNjtGQ0M2O0ZDQzY7MDY0MyAwNjJFOzA2NDMgMDYyRTsKK0ZDQzc7RkNDNztGQ0M3OzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQ0M4O0ZDQzg7RkNDODswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkNDOTtGQ0M5O0ZDQzk7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDQ0E7RkNDQTtGQ0NBOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQ0NCO0ZDQ0I7RkNDQjswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkNDQztGQ0NDO0ZDQ0M7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDQ0Q7RkNDRDtGQ0NEOzA2NDQgMDY0NzswNjQ0IDA2NDc7CitGQ0NFO0ZDQ0U7RkNDRTswNjQ1IDA2MkM7MDY0NSAwNjJDOworRkNDRjtGQ0NGO0ZDQ0Y7MDY0NSAwNjJEOzA2NDUgMDYyRDsKK0ZDRDA7RkNEMDtGQ0QwOzA2NDUgMDYyRTswNjQ1IDA2MkU7CitGQ0QxO0ZDRDE7RkNEMTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkNEMjtGQ0QyO0ZDRDI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDRDM7RkNEMztGQ0QzOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQ0Q0O0ZDRDQ7RkNENDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkNENTtGQ0Q1O0ZDRDU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRDY7RkNENjtGQ0Q2OzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0Q3O0ZDRDc7RkNENzswNjQ3IDA2MkM7MDY0NyAwNjJDOworRkNEODtGQ0Q4O0ZDRDg7MDY0NyAwNjQ1OzA2NDcgMDY0NTsKK0ZDRDk7RkNEOTtGQ0Q5OzA2NDcgMDY3MDswNjQ3IDA2NzA7CitGQ0RBO0ZDREE7RkNEQTswNjRBIDA2MkM7MDY0QSAwNjJDOworRkNEQjtGQ0RCO0ZDREI7MDY0QSAwNjJEOzA2NEEgMDYyRDsKK0ZDREM7RkNEQztGQ0RDOzA2NEEgMDYyRTswNjRBIDA2MkU7CitGQ0REO0ZDREQ7RkNERDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNERTtGQ0RFO0ZDREU7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDREY7RkNERjtGQ0RGOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDRTA7RkNFMDtGQ0UwOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDRTE7RkNFMTtGQ0UxOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0UyO0ZDRTI7RkNFMjswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNFMztGQ0UzO0ZDRTM7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDRTQ7RkNFNDtGQ0U0OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0U1O0ZDRTU7RkNFNTswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNFNjtGQ0U2O0ZDRTY7MDYyQiAwNjQ3OzA2MkIgMDY0NzsKK0ZDRTc7RkNFNztGQ0U3OzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQ0U4O0ZDRTg7RkNFODswNjMzIDA2NDc7MDYzMyAwNjQ3OworRkNFOTtGQ0U5O0ZDRTk7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZDRUE7RkNFQTtGQ0VBOzA2MzQgMDY0NzswNjM0IDA2NDc7CitGQ0VCO0ZDRUI7RkNFQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNFQztGQ0VDO0ZDRUM7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDRUQ7RkNFRDtGQ0VEOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0VFO0ZDRUU7RkNFRTswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkNFRjtGQ0VGO0ZDRUY7MDY0NiAwNjQ3OzA2NDYgMDY0NzsKK0ZDRjA7RkNGMDtGQ0YwOzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQ0YxO0ZDRjE7RkNGMTswNjRBIDA2NDc7MDY0QSAwNjQ3OworRkNGMjtGQ0YyO0ZDRjI7MDY0MCAwNjRFIDA2NTE7MDY0MCAwNjRFIDA2NTE7CitGQ0YzO0ZDRjM7RkNGMzswNjQwIDA2NEYgMDY1MTswNjQwIDA2NEYgMDY1MTsKK0ZDRjQ7RkNGNDtGQ0Y0OzA2NDAgMDY1MCAwNjUxOzA2NDAgMDY1MCAwNjUxOworRkNGNTtGQ0Y1O0ZDRjU7MDYzNyAwNjQ5OzA2MzcgMDY0OTsKK0ZDRjY7RkNGNjtGQ0Y2OzA2MzcgMDY0QTswNjM3IDA2NEE7CitGQ0Y3O0ZDRjc7RkNGNzswNjM5IDA2NDk7MDYzOSAwNjQ5OworRkNGODtGQ0Y4O0ZDRjg7MDYzOSAwNjRBOzA2MzkgMDY0QTsKK0ZDRjk7RkNGOTtGQ0Y5OzA2M0EgMDY0OTswNjNBIDA2NDk7CitGQ0ZBO0ZDRkE7RkNGQTswNjNBIDA2NEE7MDYzQSAwNjRBOworRkNGQjtGQ0ZCO0ZDRkI7MDYzMyAwNjQ5OzA2MzMgMDY0OTsKK0ZDRkM7RkNGQztGQ0ZDOzA2MzMgMDY0QTswNjMzIDA2NEE7CitGQ0ZEO0ZDRkQ7RkNGRDswNjM0IDA2NDk7MDYzNCAwNjQ5OworRkNGRTtGQ0ZFO0ZDRkU7MDYzNCAwNjRBOzA2MzQgMDY0QTsKK0ZDRkY7RkNGRjtGQ0ZGOzA2MkQgMDY0OTswNjJEIDA2NDk7CitGRDAwO0ZEMDA7RkQwMDswNjJEIDA2NEE7MDYyRCAwNjRBOworRkQwMTtGRDAxO0ZEMDE7MDYyQyAwNjQ5OzA2MkMgMDY0OTsKK0ZEMDI7RkQwMjtGRDAyOzA2MkMgMDY0QTswNjJDIDA2NEE7CitGRDAzO0ZEMDM7RkQwMzswNjJFIDA2NDk7MDYyRSAwNjQ5OworRkQwNDtGRDA0O0ZEMDQ7MDYyRSAwNjRBOzA2MkUgMDY0QTsKK0ZEMDU7RkQwNTtGRDA1OzA2MzUgMDY0OTswNjM1IDA2NDk7CitGRDA2O0ZEMDY7RkQwNjswNjM1IDA2NEE7MDYzNSAwNjRBOworRkQwNztGRDA3O0ZEMDc7MDYzNiAwNjQ5OzA2MzYgMDY0OTsKK0ZEMDg7RkQwODtGRDA4OzA2MzYgMDY0QTswNjM2IDA2NEE7CitGRDA5O0ZEMDk7RkQwOTswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQwQTtGRDBBO0ZEMEE7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMEI7RkQwQjtGRDBCOzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDBDO0ZEMEM7RkQwQzswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkQwRDtGRDBEO0ZEMEQ7MDYzNCAwNjMxOzA2MzQgMDYzMTsKK0ZEMEU7RkQwRTtGRDBFOzA2MzMgMDYzMTswNjMzIDA2MzE7CitGRDBGO0ZEMEY7RkQwRjswNjM1IDA2MzE7MDYzNSAwNjMxOworRkQxMDtGRDEwO0ZEMTA7MDYzNiAwNjMxOzA2MzYgMDYzMTsKK0ZEMTE7RkQxMTtGRDExOzA2MzcgMDY0OTswNjM3IDA2NDk7CitGRDEyO0ZEMTI7RkQxMjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkQxMztGRDEzO0ZEMTM7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZEMTQ7RkQxNDtGRDE0OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGRDE1O0ZEMTU7RkQxNTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkQxNjtGRDE2O0ZEMTY7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZEMTc7RkQxNztGRDE3OzA2MzMgMDY0OTswNjMzIDA2NDk7CitGRDE4O0ZEMTg7RkQxODswNjMzIDA2NEE7MDYzMyAwNjRBOworRkQxOTtGRDE5O0ZEMTk7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZEMUE7RkQxQTtGRDFBOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGRDFCO0ZEMUI7RkQxQjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQxQztGRDFDO0ZEMUM7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMUQ7RkQxRDtGRDFEOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDFFO0ZEMUU7RkQxRTswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQxRjtGRDFGO0ZEMUY7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMjA7RkQyMDtGRDIwOzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDIxO0ZEMjE7RkQyMTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQyMjtGRDIyO0ZEMjI7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMjM7RkQyMztGRDIzOzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDI0O0ZEMjQ7RkQyNDswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQyNTtGRDI1O0ZEMjU7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMjY7RkQyNjtGRDI2OzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDI3O0ZEMjc7RkQyNzswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQyODtGRDI4O0ZEMjg7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMjk7RkQyOTtGRDI5OzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDJBO0ZEMkE7RkQyQTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQyQjtGRDJCO0ZEMkI7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMkM7RkQyQztGRDJDOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDJEO0ZEMkQ7RkQyRDswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQyRTtGRDJFO0ZEMkU7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMkY7RkQyRjtGRDJGOzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDMwO0ZEMzA7RkQzMDswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkQzMTtGRDMxO0ZEMzE7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZEMzI7RkQzMjtGRDMyOzA2MzQgMDY0NzswNjM0IDA2NDc7CitGRDMzO0ZEMzM7RkQzMzswNjM3IDA2NDU7MDYzNyAwNjQ1OworRkQzNDtGRDM0O0ZEMzQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZEMzU7RkQzNTtGRDM1OzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGRDM2O0ZEMzY7RkQzNjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkQzNztGRDM3O0ZEMzc7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMzg7RkQzODtGRDM4OzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDM5O0ZEMzk7RkQzOTswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzQTtGRDNBO0ZEM0E7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEM0I7RkQzQjtGRDNCOzA2MzggMDY0NTswNjM4IDA2NDU7CitGRDNDO0ZEM0M7RkQzQzswNjI3IDA2NEI7MDYyNyAwNjRCOworRkQzRDtGRDNEO0ZEM0Q7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZENTA7RkQ1MDtGRDUwOzA2MkEgMDYyQyAwNjQ1OzA2MkEgMDYyQyAwNjQ1OworRkQ1MTtGRDUxO0ZENTE7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUyO0ZENTI7RkQ1MjswNjJBIDA2MkQgMDYyQzswNjJBIDA2MkQgMDYyQzsKK0ZENTM7RkQ1MztGRDUzOzA2MkEgMDYyRCAwNjQ1OzA2MkEgMDYyRCAwNjQ1OworRkQ1NDtGRDU0O0ZENTQ7MDYyQSAwNjJFIDA2NDU7MDYyQSAwNjJFIDA2NDU7CitGRDU1O0ZENTU7RkQ1NTswNjJBIDA2NDUgMDYyQzswNjJBIDA2NDUgMDYyQzsKK0ZENTY7RkQ1NjtGRDU2OzA2MkEgMDY0NSAwNjJEOzA2MkEgMDY0NSAwNjJEOworRkQ1NztGRDU3O0ZENTc7MDYyQSAwNjQ1IDA2MkU7MDYyQSAwNjQ1IDA2MkU7CitGRDU4O0ZENTg7RkQ1ODswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENTk7RkQ1OTtGRDU5OzA2MkMgMDY0NSAwNjJEOzA2MkMgMDY0NSAwNjJEOworRkQ1QTtGRDVBO0ZENUE7MDYyRCAwNjQ1IDA2NEE7MDYyRCAwNjQ1IDA2NEE7CitGRDVCO0ZENUI7RkQ1QjswNjJEIDA2NDUgMDY0OTswNjJEIDA2NDUgMDY0OTsKK0ZENUM7RkQ1QztGRDVDOzA2MzMgMDYyRCAwNjJDOzA2MzMgMDYyRCAwNjJDOworRkQ1RDtGRDVEO0ZENUQ7MDYzMyAwNjJDIDA2MkQ7MDYzMyAwNjJDIDA2MkQ7CitGRDVFO0ZENUU7RkQ1RTswNjMzIDA2MkMgMDY0OTswNjMzIDA2MkMgMDY0OTsKK0ZENUY7RkQ1RjtGRDVGOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MDtGRDYwO0ZENjA7MDYzMyAwNjQ1IDA2MkQ7MDYzMyAwNjQ1IDA2MkQ7CitGRDYxO0ZENjE7RkQ2MTswNjMzIDA2NDUgMDYyQzswNjMzIDA2NDUgMDYyQzsKK0ZENjI7RkQ2MjtGRDYyOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2MztGRDYzO0ZENjM7MDYzMyAwNjQ1IDA2NDU7MDYzMyAwNjQ1IDA2NDU7CitGRDY0O0ZENjQ7RkQ2NDswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjU7RkQ2NTtGRDY1OzA2MzUgMDYyRCAwNjJEOzA2MzUgMDYyRCAwNjJEOworRkQ2NjtGRDY2O0ZENjY7MDYzNSAwNjQ1IDA2NDU7MDYzNSAwNjQ1IDA2NDU7CitGRDY3O0ZENjc7RkQ2NzswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjg7RkQ2ODtGRDY4OzA2MzQgMDYyRCAwNjQ1OzA2MzQgMDYyRCAwNjQ1OworRkQ2OTtGRDY5O0ZENjk7MDYzNCAwNjJDIDA2NEE7MDYzNCAwNjJDIDA2NEE7CitGRDZBO0ZENkE7RkQ2QTswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkI7RkQ2QjtGRDZCOzA2MzQgMDY0NSAwNjJFOzA2MzQgMDY0NSAwNjJFOworRkQ2QztGRDZDO0ZENkM7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZEO0ZENkQ7RkQ2RDswNjM0IDA2NDUgMDY0NTswNjM0IDA2NDUgMDY0NTsKK0ZENkU7RkQ2RTtGRDZFOzA2MzYgMDYyRCAwNjQ5OzA2MzYgMDYyRCAwNjQ5OworRkQ2RjtGRDZGO0ZENkY7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcwO0ZENzA7RkQ3MDswNjM2IDA2MkUgMDY0NTswNjM2IDA2MkUgMDY0NTsKK0ZENzE7RkQ3MTtGRDcxOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MjtGRDcyO0ZENzI7MDYzNyAwNjQ1IDA2MkQ7MDYzNyAwNjQ1IDA2MkQ7CitGRDczO0ZENzM7RkQ3MzswNjM3IDA2NDUgMDY0NTswNjM3IDA2NDUgMDY0NTsKK0ZENzQ7RkQ3NDtGRDc0OzA2MzcgMDY0NSAwNjRBOzA2MzcgMDY0NSAwNjRBOworRkQ3NTtGRDc1O0ZENzU7MDYzOSAwNjJDIDA2NDU7MDYzOSAwNjJDIDA2NDU7CitGRDc2O0ZENzY7RkQ3NjswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzc7RkQ3NztGRDc3OzA2MzkgMDY0NSAwNjQ1OzA2MzkgMDY0NSAwNjQ1OworRkQ3ODtGRDc4O0ZENzg7MDYzOSAwNjQ1IDA2NDk7MDYzOSAwNjQ1IDA2NDk7CitGRDc5O0ZENzk7RkQ3OTswNjNBIDA2NDUgMDY0NTswNjNBIDA2NDUgMDY0NTsKK0ZEN0E7RkQ3QTtGRDdBOzA2M0EgMDY0NSAwNjRBOzA2M0EgMDY0NSAwNjRBOworRkQ3QjtGRDdCO0ZEN0I7MDYzQSAwNjQ1IDA2NDk7MDYzQSAwNjQ1IDA2NDk7CitGRDdDO0ZEN0M7RkQ3QzswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0Q7RkQ3RDtGRDdEOzA2NDEgMDYyRSAwNjQ1OzA2NDEgMDYyRSAwNjQ1OworRkQ3RTtGRDdFO0ZEN0U7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGRDdGO0ZEN0Y7RkQ3RjswNjQyIDA2NDUgMDY0NTswNjQyIDA2NDUgMDY0NTsKK0ZEODA7RkQ4MDtGRDgwOzA2NDQgMDYyRCAwNjQ1OzA2NDQgMDYyRCAwNjQ1OworRkQ4MTtGRDgxO0ZEODE7MDY0NCAwNjJEIDA2NEE7MDY0NCAwNjJEIDA2NEE7CitGRDgyO0ZEODI7RkQ4MjswNjQ0IDA2MkQgMDY0OTswNjQ0IDA2MkQgMDY0OTsKK0ZEODM7RkQ4MztGRDgzOzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NDtGRDg0O0ZEODQ7MDY0NCAwNjJDIDA2MkM7MDY0NCAwNjJDIDA2MkM7CitGRDg1O0ZEODU7RkQ4NTswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODY7RkQ4NjtGRDg2OzA2NDQgMDYyRSAwNjQ1OzA2NDQgMDYyRSAwNjQ1OworRkQ4NztGRDg3O0ZEODc7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg4O0ZEODg7RkQ4ODswNjQ0IDA2NDUgMDYyRDswNjQ0IDA2NDUgMDYyRDsKK0ZEODk7RkQ4OTtGRDg5OzA2NDUgMDYyRCAwNjJDOzA2NDUgMDYyRCAwNjJDOworRkQ4QTtGRDhBO0ZEOEE7MDY0NSAwNjJEIDA2NDU7MDY0NSAwNjJEIDA2NDU7CitGRDhCO0ZEOEI7RkQ4QjswNjQ1IDA2MkQgMDY0QTswNjQ1IDA2MkQgMDY0QTsKK0ZEOEM7RkQ4QztGRDhDOzA2NDUgMDYyQyAwNjJEOzA2NDUgMDYyQyAwNjJEOworRkQ4RDtGRDhEO0ZEOEQ7MDY0NSAwNjJDIDA2NDU7MDY0NSAwNjJDIDA2NDU7CitGRDhFO0ZEOEU7RkQ4RTswNjQ1IDA2MkUgMDYyQzswNjQ1IDA2MkUgMDYyQzsKK0ZEOEY7RkQ4RjtGRDhGOzA2NDUgMDYyRSAwNjQ1OzA2NDUgMDYyRSAwNjQ1OworRkQ5MjtGRDkyO0ZEOTI7MDY0NSAwNjJDIDA2MkU7MDY0NSAwNjJDIDA2MkU7CitGRDkzO0ZEOTM7RkQ5MzswNjQ3IDA2NDUgMDYyQzswNjQ3IDA2NDUgMDYyQzsKK0ZEOTQ7RkQ5NDtGRDk0OzA2NDcgMDY0NSAwNjQ1OzA2NDcgMDY0NSAwNjQ1OworRkQ5NTtGRDk1O0ZEOTU7MDY0NiAwNjJEIDA2NDU7MDY0NiAwNjJEIDA2NDU7CitGRDk2O0ZEOTY7RkQ5NjswNjQ2IDA2MkQgMDY0OTswNjQ2IDA2MkQgMDY0OTsKK0ZEOTc7RkQ5NztGRDk3OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5ODtGRDk4O0ZEOTg7MDY0NiAwNjJDIDA2NDU7MDY0NiAwNjJDIDA2NDU7CitGRDk5O0ZEOTk7RkQ5OTswNjQ2IDA2MkMgMDY0OTswNjQ2IDA2MkMgMDY0OTsKK0ZEOUE7RkQ5QTtGRDlBOzA2NDYgMDY0NSAwNjRBOzA2NDYgMDY0NSAwNjRBOworRkQ5QjtGRDlCO0ZEOUI7MDY0NiAwNjQ1IDA2NDk7MDY0NiAwNjQ1IDA2NDk7CitGRDlDO0ZEOUM7RkQ5QzswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUQ7RkQ5RDtGRDlEOzA2NEEgMDY0NSAwNjQ1OzA2NEEgMDY0NSAwNjQ1OworRkQ5RTtGRDlFO0ZEOUU7MDYyOCAwNjJFIDA2NEE7MDYyOCAwNjJFIDA2NEE7CitGRDlGO0ZEOUY7RkQ5RjswNjJBIDA2MkMgMDY0QTswNjJBIDA2MkMgMDY0QTsKK0ZEQTA7RkRBMDtGREEwOzA2MkEgMDYyQyAwNjQ5OzA2MkEgMDYyQyAwNjQ5OworRkRBMTtGREExO0ZEQTE7MDYyQSAwNjJFIDA2NEE7MDYyQSAwNjJFIDA2NEE7CitGREEyO0ZEQTI7RkRBMjswNjJBIDA2MkUgMDY0OTswNjJBIDA2MkUgMDY0OTsKK0ZEQTM7RkRBMztGREEzOzA2MkEgMDY0NSAwNjRBOzA2MkEgMDY0NSAwNjRBOworRkRBNDtGREE0O0ZEQTQ7MDYyQSAwNjQ1IDA2NDk7MDYyQSAwNjQ1IDA2NDk7CitGREE1O0ZEQTU7RkRBNTswNjJDIDA2NDUgMDY0QTswNjJDIDA2NDUgMDY0QTsKK0ZEQTY7RkRBNjtGREE2OzA2MkMgMDYyRCAwNjQ5OzA2MkMgMDYyRCAwNjQ5OworRkRBNztGREE3O0ZEQTc7MDYyQyAwNjQ1IDA2NDk7MDYyQyAwNjQ1IDA2NDk7CitGREE4O0ZEQTg7RkRBODswNjMzIDA2MkUgMDY0OTswNjMzIDA2MkUgMDY0OTsKK0ZEQTk7RkRBOTtGREE5OzA2MzUgMDYyRCAwNjRBOzA2MzUgMDYyRCAwNjRBOworRkRBQTtGREFBO0ZEQUE7MDYzNCAwNjJEIDA2NEE7MDYzNCAwNjJEIDA2NEE7CitGREFCO0ZEQUI7RkRBQjswNjM2IDA2MkQgMDY0QTswNjM2IDA2MkQgMDY0QTsKK0ZEQUM7RkRBQztGREFDOzA2NDQgMDYyQyAwNjRBOzA2NDQgMDYyQyAwNjRBOworRkRBRDtGREFEO0ZEQUQ7MDY0NCAwNjQ1IDA2NEE7MDY0NCAwNjQ1IDA2NEE7CitGREFFO0ZEQUU7RkRBRTswNjRBIDA2MkQgMDY0QTswNjRBIDA2MkQgMDY0QTsKK0ZEQUY7RkRBRjtGREFGOzA2NEEgMDYyQyAwNjRBOzA2NEEgMDYyQyAwNjRBOworRkRCMDtGREIwO0ZEQjA7MDY0QSAwNjQ1IDA2NEE7MDY0QSAwNjQ1IDA2NEE7CitGREIxO0ZEQjE7RkRCMTswNjQ1IDA2NDUgMDY0QTswNjQ1IDA2NDUgMDY0QTsKK0ZEQjI7RkRCMjtGREIyOzA2NDIgMDY0NSAwNjRBOzA2NDIgMDY0NSAwNjRBOworRkRCMztGREIzO0ZEQjM7MDY0NiAwNjJEIDA2NEE7MDY0NiAwNjJEIDA2NEE7CitGREI0O0ZEQjQ7RkRCNDswNjQyIDA2NDUgMDYyRDswNjQyIDA2NDUgMDYyRDsKK0ZEQjU7RkRCNTtGREI1OzA2NDQgMDYyRCAwNjQ1OzA2NDQgMDYyRCAwNjQ1OworRkRCNjtGREI2O0ZEQjY7MDYzOSAwNjQ1IDA2NEE7MDYzOSAwNjQ1IDA2NEE7CitGREI3O0ZEQjc7RkRCNzswNjQzIDA2NDUgMDY0QTswNjQzIDA2NDUgMDY0QTsKK0ZEQjg7RkRCODtGREI4OzA2NDYgMDYyQyAwNjJEOzA2NDYgMDYyQyAwNjJEOworRkRCOTtGREI5O0ZEQjk7MDY0NSAwNjJFIDA2NEE7MDY0NSAwNjJFIDA2NEE7CitGREJBO0ZEQkE7RkRCQTswNjQ0IDA2MkMgMDY0NTswNjQ0IDA2MkMgMDY0NTsKK0ZEQkI7RkRCQjtGREJCOzA2NDMgMDY0NSAwNjQ1OzA2NDMgMDY0NSAwNjQ1OworRkRCQztGREJDO0ZEQkM7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJEO0ZEQkQ7RkRCRDswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQkU7RkRCRTtGREJFOzA2MkMgMDYyRCAwNjRBOzA2MkMgMDYyRCAwNjRBOworRkRCRjtGREJGO0ZEQkY7MDYyRCAwNjJDIDA2NEE7MDYyRCAwNjJDIDA2NEE7CitGREMwO0ZEQzA7RkRDMDswNjQ1IDA2MkMgMDY0QTswNjQ1IDA2MkMgMDY0QTsKK0ZEQzE7RkRDMTtGREMxOzA2NDEgMDY0NSAwNjRBOzA2NDEgMDY0NSAwNjRBOworRkRDMjtGREMyO0ZEQzI7MDYyOCAwNjJEIDA2NEE7MDYyOCAwNjJEIDA2NEE7CitGREMzO0ZEQzM7RkRDMzswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQzQ7RkRDNDtGREM0OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkRDNTtGREM1O0ZEQzU7MDYzNSAwNjQ1IDA2NDU7MDYzNSAwNjQ1IDA2NDU7CitGREM2O0ZEQzY7RkRDNjswNjMzIDA2MkUgMDY0QTswNjMzIDA2MkUgMDY0QTsKK0ZEQzc7RkRDNztGREM3OzA2NDYgMDYyQyAwNjRBOzA2NDYgMDYyQyAwNjRBOworRkRGMDtGREYwO0ZERjA7MDYzNSAwNjQ0IDA2RDI7MDYzNSAwNjQ0IDA2RDI7CitGREYxO0ZERjE7RkRGMTswNjQyIDA2NDQgMDZEMjswNjQyIDA2NDQgMDZEMjsKK0ZERjI7RkRGMjtGREYyOzA2MjcgMDY0NCAwNjQ0IDA2NDc7MDYyNyAwNjQ0IDA2NDQgMDY0NzsKK0ZERjM7RkRGMztGREYzOzA2MjcgMDY0MyAwNjI4IDA2MzE7MDYyNyAwNjQzIDA2MjggMDYzMTsKK0ZERjQ7RkRGNDtGREY0OzA2NDUgMDYyRCAwNjQ1IDA2MkY7MDY0NSAwNjJEIDA2NDUgMDYyRjsKK0ZERjU7RkRGNTtGREY1OzA2MzUgMDY0NCAwNjM5IDA2NDU7MDYzNSAwNjQ0IDA2MzkgMDY0NTsKK0ZERjY7RkRGNjtGREY2OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7MDYzMSAwNjMzIDA2NDggMDY0NDsKK0ZERjc7RkRGNztGREY3OzA2MzkgMDY0NCAwNjRBIDA2NDc7MDYzOSAwNjQ0IDA2NEEgMDY0NzsKK0ZERjg7RkRGODtGREY4OzA2NDggMDYzMyAwNjQ0IDA2NDU7MDY0OCAwNjMzIDA2NDQgMDY0NTsKK0ZERjk7RkRGOTtGREY5OzA2MzUgMDY0NCAwNjQ5OzA2MzUgMDY0NCAwNjQ5OworRkRGQTtGREZBO0ZERkE7MDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7MDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREZCO0ZERkI7RkRGQjswNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OworRkRGQztGREZDO0ZERkM7MDYzMSAwNkNDIDA2MjcgMDY0NDswNjMxIDA2Q0MgMDYyNyAwNjQ0OworRkUxMDtGRTEwO0ZFMTA7MDAyQzswMDJDOworRkUxMTtGRTExO0ZFMTE7MzAwMTszMDAxOworRkUxMjtGRTEyO0ZFMTI7MzAwMjszMDAyOworRkUxMztGRTEzO0ZFMTM7MDAzQTswMDNBOworRkUxNDtGRTE0O0ZFMTQ7MDAzQjswMDNCOworRkUxNTtGRTE1O0ZFMTU7MDAyMTswMDIxOworRkUxNjtGRTE2O0ZFMTY7MDAzRjswMDNGOworRkUxNztGRTE3O0ZFMTc7MzAxNjszMDE2OworRkUxODtGRTE4O0ZFMTg7MzAxNzszMDE3OworRkUxOTtGRTE5O0ZFMTk7MDAyRSAwMDJFIDAwMkU7MDAyRSAwMDJFIDAwMkU7CitGRTMwO0ZFMzA7RkUzMDswMDJFIDAwMkU7MDAyRSAwMDJFOworRkUzMTtGRTMxO0ZFMzE7MjAxNDsyMDE0OworRkUzMjtGRTMyO0ZFMzI7MjAxMzsyMDEzOworRkUzMztGRTMzO0ZFMzM7MDA1RjswMDVGOworRkUzNDtGRTM0O0ZFMzQ7MDA1RjswMDVGOworRkUzNTtGRTM1O0ZFMzU7MDAyODswMDI4OworRkUzNjtGRTM2O0ZFMzY7MDAyOTswMDI5OworRkUzNztGRTM3O0ZFMzc7MDA3QjswMDdCOworRkUzODtGRTM4O0ZFMzg7MDA3RDswMDdEOworRkUzOTtGRTM5O0ZFMzk7MzAxNDszMDE0OworRkUzQTtGRTNBO0ZFM0E7MzAxNTszMDE1OworRkUzQjtGRTNCO0ZFM0I7MzAxMDszMDEwOworRkUzQztGRTNDO0ZFM0M7MzAxMTszMDExOworRkUzRDtGRTNEO0ZFM0Q7MzAwQTszMDBBOworRkUzRTtGRTNFO0ZFM0U7MzAwQjszMDBCOworRkUzRjtGRTNGO0ZFM0Y7MzAwODszMDA4OworRkU0MDtGRTQwO0ZFNDA7MzAwOTszMDA5OworRkU0MTtGRTQxO0ZFNDE7MzAwQzszMDBDOworRkU0MjtGRTQyO0ZFNDI7MzAwRDszMDBEOworRkU0MztGRTQzO0ZFNDM7MzAwRTszMDBFOworRkU0NDtGRTQ0O0ZFNDQ7MzAwRjszMDBGOworRkU0NztGRTQ3O0ZFNDc7MDA1QjswMDVCOworRkU0ODtGRTQ4O0ZFNDg7MDA1RDswMDVEOworRkU0OTtGRTQ5O0ZFNDk7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEE7RkU0QTtGRTRBOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRCO0ZFNEI7RkU0QjswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QztGRTRDO0ZFNEM7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEQ7RkU0RDtGRTREOzAwNUY7MDA1RjsKK0ZFNEU7RkU0RTtGRTRFOzAwNUY7MDA1RjsKK0ZFNEY7RkU0RjtGRTRGOzAwNUY7MDA1RjsKK0ZFNTA7RkU1MDtGRTUwOzAwMkM7MDAyQzsKK0ZFNTE7RkU1MTtGRTUxOzMwMDE7MzAwMTsKK0ZFNTI7RkU1MjtGRTUyOzAwMkU7MDAyRTsKK0ZFNTQ7RkU1NDtGRTU0OzAwM0I7MDAzQjsKK0ZFNTU7RkU1NTtGRTU1OzAwM0E7MDAzQTsKK0ZFNTY7RkU1NjtGRTU2OzAwM0Y7MDAzRjsKK0ZFNTc7RkU1NztGRTU3OzAwMjE7MDAyMTsKK0ZFNTg7RkU1ODtGRTU4OzIwMTQ7MjAxNDsKK0ZFNTk7RkU1OTtGRTU5OzAwMjg7MDAyODsKK0ZFNUE7RkU1QTtGRTVBOzAwMjk7MDAyOTsKK0ZFNUI7RkU1QjtGRTVCOzAwN0I7MDA3QjsKK0ZFNUM7RkU1QztGRTVDOzAwN0Q7MDA3RDsKK0ZFNUQ7RkU1RDtGRTVEOzMwMTQ7MzAxNDsKK0ZFNUU7RkU1RTtGRTVFOzMwMTU7MzAxNTsKK0ZFNUY7RkU1RjtGRTVGOzAwMjM7MDAyMzsKK0ZFNjA7RkU2MDtGRTYwOzAwMjY7MDAyNjsKK0ZFNjE7RkU2MTtGRTYxOzAwMkE7MDAyQTsKK0ZFNjI7RkU2MjtGRTYyOzAwMkI7MDAyQjsKK0ZFNjM7RkU2MztGRTYzOzAwMkQ7MDAyRDsKK0ZFNjQ7RkU2NDtGRTY0OzAwM0M7MDAzQzsKK0ZFNjU7RkU2NTtGRTY1OzAwM0U7MDAzRTsKK0ZFNjY7RkU2NjtGRTY2OzAwM0Q7MDAzRDsKK0ZFNjg7RkU2ODtGRTY4OzAwNUM7MDA1QzsKK0ZFNjk7RkU2OTtGRTY5OzAwMjQ7MDAyNDsKK0ZFNkE7RkU2QTtGRTZBOzAwMjU7MDAyNTsKK0ZFNkI7RkU2QjtGRTZCOzAwNDA7MDA0MDsKK0ZFNzA7RkU3MDtGRTcwOzAwMjAgMDY0QjswMDIwIDA2NEI7CitGRTcxO0ZFNzE7RkU3MTswNjQwIDA2NEI7MDY0MCAwNjRCOworRkU3MjtGRTcyO0ZFNzI7MDAyMCAwNjRDOzAwMjAgMDY0QzsKK0ZFNzQ7RkU3NDtGRTc0OzAwMjAgMDY0RDswMDIwIDA2NEQ7CitGRTc2O0ZFNzY7RkU3NjswMDIwIDA2NEU7MDAyMCAwNjRFOworRkU3NztGRTc3O0ZFNzc7MDY0MCAwNjRFOzA2NDAgMDY0RTsKK0ZFNzg7RkU3ODtGRTc4OzAwMjAgMDY0RjswMDIwIDA2NEY7CitGRTc5O0ZFNzk7RkU3OTswNjQwIDA2NEY7MDY0MCAwNjRGOworRkU3QTtGRTdBO0ZFN0E7MDAyMCAwNjUwOzAwMjAgMDY1MDsKK0ZFN0I7RkU3QjtGRTdCOzA2NDAgMDY1MDswNjQwIDA2NTA7CitGRTdDO0ZFN0M7RkU3QzswMDIwIDA2NTE7MDAyMCAwNjUxOworRkU3RDtGRTdEO0ZFN0Q7MDY0MCAwNjUxOzA2NDAgMDY1MTsKK0ZFN0U7RkU3RTtGRTdFOzAwMjAgMDY1MjswMDIwIDA2NTI7CitGRTdGO0ZFN0Y7RkU3RjswNjQwIDA2NTI7MDY0MCAwNjUyOworRkU4MDtGRTgwO0ZFODA7MDYyMTswNjIxOworRkU4MTtGRTgxO0ZFODE7MDYyMjswNjI3IDA2NTM7CitGRTgyO0ZFODI7RkU4MjswNjIyOzA2MjcgMDY1MzsKK0ZFODM7RkU4MztGRTgzOzA2MjM7MDYyNyAwNjU0OworRkU4NDtGRTg0O0ZFODQ7MDYyMzswNjI3IDA2NTQ7CitGRTg1O0ZFODU7RkU4NTswNjI0OzA2NDggMDY1NDsKK0ZFODY7RkU4NjtGRTg2OzA2MjQ7MDY0OCAwNjU0OworRkU4NztGRTg3O0ZFODc7MDYyNTswNjI3IDA2NTU7CitGRTg4O0ZFODg7RkU4ODswNjI1OzA2MjcgMDY1NTsKK0ZFODk7RkU4OTtGRTg5OzA2MjY7MDY0QSAwNjU0OworRkU4QTtGRThBO0ZFOEE7MDYyNjswNjRBIDA2NTQ7CitGRThCO0ZFOEI7RkU4QjswNjI2OzA2NEEgMDY1NDsKK0ZFOEM7RkU4QztGRThDOzA2MjY7MDY0QSAwNjU0OworRkU4RDtGRThEO0ZFOEQ7MDYyNzswNjI3OworRkU4RTtGRThFO0ZFOEU7MDYyNzswNjI3OworRkU4RjtGRThGO0ZFOEY7MDYyODswNjI4OworRkU5MDtGRTkwO0ZFOTA7MDYyODswNjI4OworRkU5MTtGRTkxO0ZFOTE7MDYyODswNjI4OworRkU5MjtGRTkyO0ZFOTI7MDYyODswNjI4OworRkU5MztGRTkzO0ZFOTM7MDYyOTswNjI5OworRkU5NDtGRTk0O0ZFOTQ7MDYyOTswNjI5OworRkU5NTtGRTk1O0ZFOTU7MDYyQTswNjJBOworRkU5NjtGRTk2O0ZFOTY7MDYyQTswNjJBOworRkU5NztGRTk3O0ZFOTc7MDYyQTswNjJBOworRkU5ODtGRTk4O0ZFOTg7MDYyQTswNjJBOworRkU5OTtGRTk5O0ZFOTk7MDYyQjswNjJCOworRkU5QTtGRTlBO0ZFOUE7MDYyQjswNjJCOworRkU5QjtGRTlCO0ZFOUI7MDYyQjswNjJCOworRkU5QztGRTlDO0ZFOUM7MDYyQjswNjJCOworRkU5RDtGRTlEO0ZFOUQ7MDYyQzswNjJDOworRkU5RTtGRTlFO0ZFOUU7MDYyQzswNjJDOworRkU5RjtGRTlGO0ZFOUY7MDYyQzswNjJDOworRkVBMDtGRUEwO0ZFQTA7MDYyQzswNjJDOworRkVBMTtGRUExO0ZFQTE7MDYyRDswNjJEOworRkVBMjtGRUEyO0ZFQTI7MDYyRDswNjJEOworRkVBMztGRUEzO0ZFQTM7MDYyRDswNjJEOworRkVBNDtGRUE0O0ZFQTQ7MDYyRDswNjJEOworRkVBNTtGRUE1O0ZFQTU7MDYyRTswNjJFOworRkVBNjtGRUE2O0ZFQTY7MDYyRTswNjJFOworRkVBNztGRUE3O0ZFQTc7MDYyRTswNjJFOworRkVBODtGRUE4O0ZFQTg7MDYyRTswNjJFOworRkVBOTtGRUE5O0ZFQTk7MDYyRjswNjJGOworRkVBQTtGRUFBO0ZFQUE7MDYyRjswNjJGOworRkVBQjtGRUFCO0ZFQUI7MDYzMDswNjMwOworRkVBQztGRUFDO0ZFQUM7MDYzMDswNjMwOworRkVBRDtGRUFEO0ZFQUQ7MDYzMTswNjMxOworRkVBRTtGRUFFO0ZFQUU7MDYzMTswNjMxOworRkVBRjtGRUFGO0ZFQUY7MDYzMjswNjMyOworRkVCMDtGRUIwO0ZFQjA7MDYzMjswNjMyOworRkVCMTtGRUIxO0ZFQjE7MDYzMzswNjMzOworRkVCMjtGRUIyO0ZFQjI7MDYzMzswNjMzOworRkVCMztGRUIzO0ZFQjM7MDYzMzswNjMzOworRkVCNDtGRUI0O0ZFQjQ7MDYzMzswNjMzOworRkVCNTtGRUI1O0ZFQjU7MDYzNDswNjM0OworRkVCNjtGRUI2O0ZFQjY7MDYzNDswNjM0OworRkVCNztGRUI3O0ZFQjc7MDYzNDswNjM0OworRkVCODtGRUI4O0ZFQjg7MDYzNDswNjM0OworRkVCOTtGRUI5O0ZFQjk7MDYzNTswNjM1OworRkVCQTtGRUJBO0ZFQkE7MDYzNTswNjM1OworRkVCQjtGRUJCO0ZFQkI7MDYzNTswNjM1OworRkVCQztGRUJDO0ZFQkM7MDYzNTswNjM1OworRkVCRDtGRUJEO0ZFQkQ7MDYzNjswNjM2OworRkVCRTtGRUJFO0ZFQkU7MDYzNjswNjM2OworRkVCRjtGRUJGO0ZFQkY7MDYzNjswNjM2OworRkVDMDtGRUMwO0ZFQzA7MDYzNjswNjM2OworRkVDMTtGRUMxO0ZFQzE7MDYzNzswNjM3OworRkVDMjtGRUMyO0ZFQzI7MDYzNzswNjM3OworRkVDMztGRUMzO0ZFQzM7MDYzNzswNjM3OworRkVDNDtGRUM0O0ZFQzQ7MDYzNzswNjM3OworRkVDNTtGRUM1O0ZFQzU7MDYzODswNjM4OworRkVDNjtGRUM2O0ZFQzY7MDYzODswNjM4OworRkVDNztGRUM3O0ZFQzc7MDYzODswNjM4OworRkVDODtGRUM4O0ZFQzg7MDYzODswNjM4OworRkVDOTtGRUM5O0ZFQzk7MDYzOTswNjM5OworRkVDQTtGRUNBO0ZFQ0E7MDYzOTswNjM5OworRkVDQjtGRUNCO0ZFQ0I7MDYzOTswNjM5OworRkVDQztGRUNDO0ZFQ0M7MDYzOTswNjM5OworRkVDRDtGRUNEO0ZFQ0Q7MDYzQTswNjNBOworRkVDRTtGRUNFO0ZFQ0U7MDYzQTswNjNBOworRkVDRjtGRUNGO0ZFQ0Y7MDYzQTswNjNBOworRkVEMDtGRUQwO0ZFRDA7MDYzQTswNjNBOworRkVEMTtGRUQxO0ZFRDE7MDY0MTswNjQxOworRkVEMjtGRUQyO0ZFRDI7MDY0MTswNjQxOworRkVEMztGRUQzO0ZFRDM7MDY0MTswNjQxOworRkVENDtGRUQ0O0ZFRDQ7MDY0MTswNjQxOworRkVENTtGRUQ1O0ZFRDU7MDY0MjswNjQyOworRkVENjtGRUQ2O0ZFRDY7MDY0MjswNjQyOworRkVENztGRUQ3O0ZFRDc7MDY0MjswNjQyOworRkVEODtGRUQ4O0ZFRDg7MDY0MjswNjQyOworRkVEOTtGRUQ5O0ZFRDk7MDY0MzswNjQzOworRkVEQTtGRURBO0ZFREE7MDY0MzswNjQzOworRkVEQjtGRURCO0ZFREI7MDY0MzswNjQzOworRkVEQztGRURDO0ZFREM7MDY0MzswNjQzOworRkVERDtGRUREO0ZFREQ7MDY0NDswNjQ0OworRkVERTtGRURFO0ZFREU7MDY0NDswNjQ0OworRkVERjtGRURGO0ZFREY7MDY0NDswNjQ0OworRkVFMDtGRUUwO0ZFRTA7MDY0NDswNjQ0OworRkVFMTtGRUUxO0ZFRTE7MDY0NTswNjQ1OworRkVFMjtGRUUyO0ZFRTI7MDY0NTswNjQ1OworRkVFMztGRUUzO0ZFRTM7MDY0NTswNjQ1OworRkVFNDtGRUU0O0ZFRTQ7MDY0NTswNjQ1OworRkVFNTtGRUU1O0ZFRTU7MDY0NjswNjQ2OworRkVFNjtGRUU2O0ZFRTY7MDY0NjswNjQ2OworRkVFNztGRUU3O0ZFRTc7MDY0NjswNjQ2OworRkVFODtGRUU4O0ZFRTg7MDY0NjswNjQ2OworRkVFOTtGRUU5O0ZFRTk7MDY0NzswNjQ3OworRkVFQTtGRUVBO0ZFRUE7MDY0NzswNjQ3OworRkVFQjtGRUVCO0ZFRUI7MDY0NzswNjQ3OworRkVFQztGRUVDO0ZFRUM7MDY0NzswNjQ3OworRkVFRDtGRUVEO0ZFRUQ7MDY0ODswNjQ4OworRkVFRTtGRUVFO0ZFRUU7MDY0ODswNjQ4OworRkVFRjtGRUVGO0ZFRUY7MDY0OTswNjQ5OworRkVGMDtGRUYwO0ZFRjA7MDY0OTswNjQ5OworRkVGMTtGRUYxO0ZFRjE7MDY0QTswNjRBOworRkVGMjtGRUYyO0ZFRjI7MDY0QTswNjRBOworRkVGMztGRUYzO0ZFRjM7MDY0QTswNjRBOworRkVGNDtGRUY0O0ZFRjQ7MDY0QTswNjRBOworRkVGNTtGRUY1O0ZFRjU7MDY0NCAwNjIyOzA2NDQgMDYyNyAwNjUzOworRkVGNjtGRUY2O0ZFRjY7MDY0NCAwNjIyOzA2NDQgMDYyNyAwNjUzOworRkVGNztGRUY3O0ZFRjc7MDY0NCAwNjIzOzA2NDQgMDYyNyAwNjU0OworRkVGODtGRUY4O0ZFRjg7MDY0NCAwNjIzOzA2NDQgMDYyNyAwNjU0OworRkVGOTtGRUY5O0ZFRjk7MDY0NCAwNjI1OzA2NDQgMDYyNyAwNjU1OworRkVGQTtGRUZBO0ZFRkE7MDY0NCAwNjI1OzA2NDQgMDYyNyAwNjU1OworRkVGQjtGRUZCO0ZFRkI7MDY0NCAwNjI3OzA2NDQgMDYyNzsKK0ZFRkM7RkVGQztGRUZDOzA2NDQgMDYyNzswNjQ0IDA2Mjc7CitGRjAxO0ZGMDE7RkYwMTswMDIxOzAwMjE7CitGRjAyO0ZGMDI7RkYwMjswMDIyOzAwMjI7CitGRjAzO0ZGMDM7RkYwMzswMDIzOzAwMjM7CitGRjA0O0ZGMDQ7RkYwNDswMDI0OzAwMjQ7CitGRjA1O0ZGMDU7RkYwNTswMDI1OzAwMjU7CitGRjA2O0ZGMDY7RkYwNjswMDI2OzAwMjY7CitGRjA3O0ZGMDc7RkYwNzswMDI3OzAwMjc7CitGRjA4O0ZGMDg7RkYwODswMDI4OzAwMjg7CitGRjA5O0ZGMDk7RkYwOTswMDI5OzAwMjk7CitGRjBBO0ZGMEE7RkYwQTswMDJBOzAwMkE7CitGRjBCO0ZGMEI7RkYwQjswMDJCOzAwMkI7CitGRjBDO0ZGMEM7RkYwQzswMDJDOzAwMkM7CitGRjBEO0ZGMEQ7RkYwRDswMDJEOzAwMkQ7CitGRjBFO0ZGMEU7RkYwRTswMDJFOzAwMkU7CitGRjBGO0ZGMEY7RkYwRjswMDJGOzAwMkY7CitGRjEwO0ZGMTA7RkYxMDswMDMwOzAwMzA7CitGRjExO0ZGMTE7RkYxMTswMDMxOzAwMzE7CitGRjEyO0ZGMTI7RkYxMjswMDMyOzAwMzI7CitGRjEzO0ZGMTM7RkYxMzswMDMzOzAwMzM7CitGRjE0O0ZGMTQ7RkYxNDswMDM0OzAwMzQ7CitGRjE1O0ZGMTU7RkYxNTswMDM1OzAwMzU7CitGRjE2O0ZGMTY7RkYxNjswMDM2OzAwMzY7CitGRjE3O0ZGMTc7RkYxNzswMDM3OzAwMzc7CitGRjE4O0ZGMTg7RkYxODswMDM4OzAwMzg7CitGRjE5O0ZGMTk7RkYxOTswMDM5OzAwMzk7CitGRjFBO0ZGMUE7RkYxQTswMDNBOzAwM0E7CitGRjFCO0ZGMUI7RkYxQjswMDNCOzAwM0I7CitGRjFDO0ZGMUM7RkYxQzswMDNDOzAwM0M7CitGRjFEO0ZGMUQ7RkYxRDswMDNEOzAwM0Q7CitGRjFFO0ZGMUU7RkYxRTswMDNFOzAwM0U7CitGRjFGO0ZGMUY7RkYxRjswMDNGOzAwM0Y7CitGRjIwO0ZGMjA7RkYyMDswMDQwOzAwNDA7CitGRjIxO0ZGMjE7RkYyMTswMDQxOzAwNDE7CitGRjIyO0ZGMjI7RkYyMjswMDQyOzAwNDI7CitGRjIzO0ZGMjM7RkYyMzswMDQzOzAwNDM7CitGRjI0O0ZGMjQ7RkYyNDswMDQ0OzAwNDQ7CitGRjI1O0ZGMjU7RkYyNTswMDQ1OzAwNDU7CitGRjI2O0ZGMjY7RkYyNjswMDQ2OzAwNDY7CitGRjI3O0ZGMjc7RkYyNzswMDQ3OzAwNDc7CitGRjI4O0ZGMjg7RkYyODswMDQ4OzAwNDg7CitGRjI5O0ZGMjk7RkYyOTswMDQ5OzAwNDk7CitGRjJBO0ZGMkE7RkYyQTswMDRBOzAwNEE7CitGRjJCO0ZGMkI7RkYyQjswMDRCOzAwNEI7CitGRjJDO0ZGMkM7RkYyQzswMDRDOzAwNEM7CitGRjJEO0ZGMkQ7RkYyRDswMDREOzAwNEQ7CitGRjJFO0ZGMkU7RkYyRTswMDRFOzAwNEU7CitGRjJGO0ZGMkY7RkYyRjswMDRGOzAwNEY7CitGRjMwO0ZGMzA7RkYzMDswMDUwOzAwNTA7CitGRjMxO0ZGMzE7RkYzMTswMDUxOzAwNTE7CitGRjMyO0ZGMzI7RkYzMjswMDUyOzAwNTI7CitGRjMzO0ZGMzM7RkYzMzswMDUzOzAwNTM7CitGRjM0O0ZGMzQ7RkYzNDswMDU0OzAwNTQ7CitGRjM1O0ZGMzU7RkYzNTswMDU1OzAwNTU7CitGRjM2O0ZGMzY7RkYzNjswMDU2OzAwNTY7CitGRjM3O0ZGMzc7RkYzNzswMDU3OzAwNTc7CitGRjM4O0ZGMzg7RkYzODswMDU4OzAwNTg7CitGRjM5O0ZGMzk7RkYzOTswMDU5OzAwNTk7CitGRjNBO0ZGM0E7RkYzQTswMDVBOzAwNUE7CitGRjNCO0ZGM0I7RkYzQjswMDVCOzAwNUI7CitGRjNDO0ZGM0M7RkYzQzswMDVDOzAwNUM7CitGRjNEO0ZGM0Q7RkYzRDswMDVEOzAwNUQ7CitGRjNFO0ZGM0U7RkYzRTswMDVFOzAwNUU7CitGRjNGO0ZGM0Y7RkYzRjswMDVGOzAwNUY7CitGRjQwO0ZGNDA7RkY0MDswMDYwOzAwNjA7CitGRjQxO0ZGNDE7RkY0MTswMDYxOzAwNjE7CitGRjQyO0ZGNDI7RkY0MjswMDYyOzAwNjI7CitGRjQzO0ZGNDM7RkY0MzswMDYzOzAwNjM7CitGRjQ0O0ZGNDQ7RkY0NDswMDY0OzAwNjQ7CitGRjQ1O0ZGNDU7RkY0NTswMDY1OzAwNjU7CitGRjQ2O0ZGNDY7RkY0NjswMDY2OzAwNjY7CitGRjQ3O0ZGNDc7RkY0NzswMDY3OzAwNjc7CitGRjQ4O0ZGNDg7RkY0ODswMDY4OzAwNjg7CitGRjQ5O0ZGNDk7RkY0OTswMDY5OzAwNjk7CitGRjRBO0ZGNEE7RkY0QTswMDZBOzAwNkE7CitGRjRCO0ZGNEI7RkY0QjswMDZCOzAwNkI7CitGRjRDO0ZGNEM7RkY0QzswMDZDOzAwNkM7CitGRjREO0ZGNEQ7RkY0RDswMDZEOzAwNkQ7CitGRjRFO0ZGNEU7RkY0RTswMDZFOzAwNkU7CitGRjRGO0ZGNEY7RkY0RjswMDZGOzAwNkY7CitGRjUwO0ZGNTA7RkY1MDswMDcwOzAwNzA7CitGRjUxO0ZGNTE7RkY1MTswMDcxOzAwNzE7CitGRjUyO0ZGNTI7RkY1MjswMDcyOzAwNzI7CitGRjUzO0ZGNTM7RkY1MzswMDczOzAwNzM7CitGRjU0O0ZGNTQ7RkY1NDswMDc0OzAwNzQ7CitGRjU1O0ZGNTU7RkY1NTswMDc1OzAwNzU7CitGRjU2O0ZGNTY7RkY1NjswMDc2OzAwNzY7CitGRjU3O0ZGNTc7RkY1NzswMDc3OzAwNzc7CitGRjU4O0ZGNTg7RkY1ODswMDc4OzAwNzg7CitGRjU5O0ZGNTk7RkY1OTswMDc5OzAwNzk7CitGRjVBO0ZGNUE7RkY1QTswMDdBOzAwN0E7CitGRjVCO0ZGNUI7RkY1QjswMDdCOzAwN0I7CitGRjVDO0ZGNUM7RkY1QzswMDdDOzAwN0M7CitGRjVEO0ZGNUQ7RkY1RDswMDdEOzAwN0Q7CitGRjVFO0ZGNUU7RkY1RTswMDdFOzAwN0U7CitGRjVGO0ZGNUY7RkY1RjsyOTg1OzI5ODU7CitGRjYwO0ZGNjA7RkY2MDsyOTg2OzI5ODY7CitGRjYxO0ZGNjE7RkY2MTszMDAyOzMwMDI7CitGRjYyO0ZGNjI7RkY2MjszMDBDOzMwMEM7CitGRjYzO0ZGNjM7RkY2MzszMDBEOzMwMEQ7CitGRjY0O0ZGNjQ7RkY2NDszMDAxOzMwMDE7CitGRjY1O0ZGNjU7RkY2NTszMEZCOzMwRkI7CitGRjY2O0ZGNjY7RkY2NjszMEYyOzMwRjI7CitGRjY3O0ZGNjc7RkY2NzszMEExOzMwQTE7CitGRjY4O0ZGNjg7RkY2ODszMEEzOzMwQTM7CitGRjY5O0ZGNjk7RkY2OTszMEE1OzMwQTU7CitGRjZBO0ZGNkE7RkY2QTszMEE3OzMwQTc7CitGRjZCO0ZGNkI7RkY2QjszMEE5OzMwQTk7CitGRjZDO0ZGNkM7RkY2QzszMEUzOzMwRTM7CitGRjZEO0ZGNkQ7RkY2RDszMEU1OzMwRTU7CitGRjZFO0ZGNkU7RkY2RTszMEU3OzMwRTc7CitGRjZGO0ZGNkY7RkY2RjszMEMzOzMwQzM7CitGRjcwO0ZGNzA7RkY3MDszMEZDOzMwRkM7CitGRjcxO0ZGNzE7RkY3MTszMEEyOzMwQTI7CitGRjcyO0ZGNzI7RkY3MjszMEE0OzMwQTQ7CitGRjczO0ZGNzM7RkY3MzszMEE2OzMwQTY7CitGRjc0O0ZGNzQ7RkY3NDszMEE4OzMwQTg7CitGRjc1O0ZGNzU7RkY3NTszMEFBOzMwQUE7CitGRjc2O0ZGNzY7RkY3NjszMEFCOzMwQUI7CitGRjc3O0ZGNzc7RkY3NzszMEFEOzMwQUQ7CitGRjc4O0ZGNzg7RkY3ODszMEFGOzMwQUY7CitGRjc5O0ZGNzk7RkY3OTszMEIxOzMwQjE7CitGRjdBO0ZGN0E7RkY3QTszMEIzOzMwQjM7CitGRjdCO0ZGN0I7RkY3QjszMEI1OzMwQjU7CitGRjdDO0ZGN0M7RkY3QzszMEI3OzMwQjc7CitGRjdEO0ZGN0Q7RkY3RDszMEI5OzMwQjk7CitGRjdFO0ZGN0U7RkY3RTszMEJCOzMwQkI7CitGRjdGO0ZGN0Y7RkY3RjszMEJEOzMwQkQ7CitGRjgwO0ZGODA7RkY4MDszMEJGOzMwQkY7CitGRjgxO0ZGODE7RkY4MTszMEMxOzMwQzE7CitGRjgyO0ZGODI7RkY4MjszMEM0OzMwQzQ7CitGRjgzO0ZGODM7RkY4MzszMEM2OzMwQzY7CitGRjg0O0ZGODQ7RkY4NDszMEM4OzMwQzg7CitGRjg1O0ZGODU7RkY4NTszMENBOzMwQ0E7CitGRjg2O0ZGODY7RkY4NjszMENCOzMwQ0I7CitGRjg3O0ZGODc7RkY4NzszMENDOzMwQ0M7CitGRjg4O0ZGODg7RkY4ODszMENEOzMwQ0Q7CitGRjg5O0ZGODk7RkY4OTszMENFOzMwQ0U7CitGRjhBO0ZGOEE7RkY4QTszMENGOzMwQ0Y7CitGRjhCO0ZGOEI7RkY4QjszMEQyOzMwRDI7CitGRjhDO0ZGOEM7RkY4QzszMEQ1OzMwRDU7CitGRjhEO0ZGOEQ7RkY4RDszMEQ4OzMwRDg7CitGRjhFO0ZGOEU7RkY4RTszMERCOzMwREI7CitGRjhGO0ZGOEY7RkY4RjszMERFOzMwREU7CitGRjkwO0ZGOTA7RkY5MDszMERGOzMwREY7CitGRjkxO0ZGOTE7RkY5MTszMEUwOzMwRTA7CitGRjkyO0ZGOTI7RkY5MjszMEUxOzMwRTE7CitGRjkzO0ZGOTM7RkY5MzszMEUyOzMwRTI7CitGRjk0O0ZGOTQ7RkY5NDszMEU0OzMwRTQ7CitGRjk1O0ZGOTU7RkY5NTszMEU2OzMwRTY7CitGRjk2O0ZGOTY7RkY5NjszMEU4OzMwRTg7CitGRjk3O0ZGOTc7RkY5NzszMEU5OzMwRTk7CitGRjk4O0ZGOTg7RkY5ODszMEVBOzMwRUE7CitGRjk5O0ZGOTk7RkY5OTszMEVCOzMwRUI7CitGRjlBO0ZGOUE7RkY5QTszMEVDOzMwRUM7CitGRjlCO0ZGOUI7RkY5QjszMEVEOzMwRUQ7CitGRjlDO0ZGOUM7RkY5QzszMEVGOzMwRUY7CitGRjlEO0ZGOUQ7RkY5RDszMEYzOzMwRjM7CitGRjlFO0ZGOUU7RkY5RTszMDk5OzMwOTk7CitGRjlGO0ZGOUY7RkY5RjszMDlBOzMwOUE7CitGRkEwO0ZGQTA7RkZBMDsxMTYwOzExNjA7CitGRkExO0ZGQTE7RkZBMTsxMTAwOzExMDA7CitGRkEyO0ZGQTI7RkZBMjsxMTAxOzExMDE7CitGRkEzO0ZGQTM7RkZBMzsxMUFBOzExQUE7CitGRkE0O0ZGQTQ7RkZBNDsxMTAyOzExMDI7CitGRkE1O0ZGQTU7RkZBNTsxMUFDOzExQUM7CitGRkE2O0ZGQTY7RkZBNjsxMUFEOzExQUQ7CitGRkE3O0ZGQTc7RkZBNzsxMTAzOzExMDM7CitGRkE4O0ZGQTg7RkZBODsxMTA0OzExMDQ7CitGRkE5O0ZGQTk7RkZBOTsxMTA1OzExMDU7CitGRkFBO0ZGQUE7RkZBQTsxMUIwOzExQjA7CitGRkFCO0ZGQUI7RkZBQjsxMUIxOzExQjE7CitGRkFDO0ZGQUM7RkZBQzsxMUIyOzExQjI7CitGRkFEO0ZGQUQ7RkZBRDsxMUIzOzExQjM7CitGRkFFO0ZGQUU7RkZBRTsxMUI0OzExQjQ7CitGRkFGO0ZGQUY7RkZBRjsxMUI1OzExQjU7CitGRkIwO0ZGQjA7RkZCMDsxMTFBOzExMUE7CitGRkIxO0ZGQjE7RkZCMTsxMTA2OzExMDY7CitGRkIyO0ZGQjI7RkZCMjsxMTA3OzExMDc7CitGRkIzO0ZGQjM7RkZCMzsxMTA4OzExMDg7CitGRkI0O0ZGQjQ7RkZCNDsxMTIxOzExMjE7CitGRkI1O0ZGQjU7RkZCNTsxMTA5OzExMDk7CitGRkI2O0ZGQjY7RkZCNjsxMTBBOzExMEE7CitGRkI3O0ZGQjc7RkZCNzsxMTBCOzExMEI7CitGRkI4O0ZGQjg7RkZCODsxMTBDOzExMEM7CitGRkI5O0ZGQjk7RkZCOTsxMTBEOzExMEQ7CitGRkJBO0ZGQkE7RkZCQTsxMTBFOzExMEU7CitGRkJCO0ZGQkI7RkZCQjsxMTBGOzExMEY7CitGRkJDO0ZGQkM7RkZCQzsxMTEwOzExMTA7CitGRkJEO0ZGQkQ7RkZCRDsxMTExOzExMTE7CitGRkJFO0ZGQkU7RkZCRTsxMTEyOzExMTI7CitGRkMyO0ZGQzI7RkZDMjsxMTYxOzExNjE7CitGRkMzO0ZGQzM7RkZDMzsxMTYyOzExNjI7CitGRkM0O0ZGQzQ7RkZDNDsxMTYzOzExNjM7CitGRkM1O0ZGQzU7RkZDNTsxMTY0OzExNjQ7CitGRkM2O0ZGQzY7RkZDNjsxMTY1OzExNjU7CitGRkM3O0ZGQzc7RkZDNzsxMTY2OzExNjY7CitGRkNBO0ZGQ0E7RkZDQTsxMTY3OzExNjc7CitGRkNCO0ZGQ0I7RkZDQjsxMTY4OzExNjg7CitGRkNDO0ZGQ0M7RkZDQzsxMTY5OzExNjk7CitGRkNEO0ZGQ0Q7RkZDRDsxMTZBOzExNkE7CitGRkNFO0ZGQ0U7RkZDRTsxMTZCOzExNkI7CitGRkNGO0ZGQ0Y7RkZDRjsxMTZDOzExNkM7CitGRkQyO0ZGRDI7RkZEMjsxMTZEOzExNkQ7CitGRkQzO0ZGRDM7RkZEMzsxMTZFOzExNkU7CitGRkQ0O0ZGRDQ7RkZENDsxMTZGOzExNkY7CitGRkQ1O0ZGRDU7RkZENTsxMTcwOzExNzA7CitGRkQ2O0ZGRDY7RkZENjsxMTcxOzExNzE7CitGRkQ3O0ZGRDc7RkZENzsxMTcyOzExNzI7CitGRkRBO0ZGREE7RkZEQTsxMTczOzExNzM7CitGRkRCO0ZGREI7RkZEQjsxMTc0OzExNzQ7CitGRkRDO0ZGREM7RkZEQzsxMTc1OzExNzU7CitGRkUwO0ZGRTA7RkZFMDswMEEyOzAwQTI7CitGRkUxO0ZGRTE7RkZFMTswMEEzOzAwQTM7CitGRkUyO0ZGRTI7RkZFMjswMEFDOzAwQUM7CitGRkUzO0ZGRTM7RkZFMzswMDIwIDAzMDQ7MDAyMCAwMzA0OworRkZFNDtGRkU0O0ZGRTQ7MDBBNjswMEE2OworRkZFNTtGRkU1O0ZGRTU7MDBBNTswMEE1OworRkZFNjtGRkU2O0ZGRTY7MjBBOTsyMEE5OworRkZFODtGRkU4O0ZGRTg7MjUwMjsyNTAyOworRkZFOTtGRkU5O0ZGRTk7MjE5MDsyMTkwOworRkZFQTtGRkVBO0ZGRUE7MjE5MTsyMTkxOworRkZFQjtGRkVCO0ZGRUI7MjE5MjsyMTkyOworRkZFQztGRkVDO0ZGRUM7MjE5MzsyMTkzOworRkZFRDtGRkVEO0ZGRUQ7MjVBMDsyNUEwOworRkZFRTtGRkVFO0ZGRUU7MjVDQjsyNUNCOworMUQxNUU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7CisxRDE1RjsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsKKzFEMTYwOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOworMUQxNjE7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7CisxRDE2MjsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsKKzFEMTYzOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOworMUQxNjQ7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7CisxRDFCQjsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsKKzFEMUJDOzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OworMUQxQkQ7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7CisxRDFCRTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsKKzFEMUJGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOworMUQxQzA7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7CisxRDQwMDsxRDQwMDsxRDQwMDswMDQxOzAwNDE7CisxRDQwMTsxRDQwMTsxRDQwMTswMDQyOzAwNDI7CisxRDQwMjsxRDQwMjsxRDQwMjswMDQzOzAwNDM7CisxRDQwMzsxRDQwMzsxRDQwMzswMDQ0OzAwNDQ7CisxRDQwNDsxRDQwNDsxRDQwNDswMDQ1OzAwNDU7CisxRDQwNTsxRDQwNTsxRDQwNTswMDQ2OzAwNDY7CisxRDQwNjsxRDQwNjsxRDQwNjswMDQ3OzAwNDc7CisxRDQwNzsxRDQwNzsxRDQwNzswMDQ4OzAwNDg7CisxRDQwODsxRDQwODsxRDQwODswMDQ5OzAwNDk7CisxRDQwOTsxRDQwOTsxRDQwOTswMDRBOzAwNEE7CisxRDQwQTsxRDQwQTsxRDQwQTswMDRCOzAwNEI7CisxRDQwQjsxRDQwQjsxRDQwQjswMDRDOzAwNEM7CisxRDQwQzsxRDQwQzsxRDQwQzswMDREOzAwNEQ7CisxRDQwRDsxRDQwRDsxRDQwRDswMDRFOzAwNEU7CisxRDQwRTsxRDQwRTsxRDQwRTswMDRGOzAwNEY7CisxRDQwRjsxRDQwRjsxRDQwRjswMDUwOzAwNTA7CisxRDQxMDsxRDQxMDsxRDQxMDswMDUxOzAwNTE7CisxRDQxMTsxRDQxMTsxRDQxMTswMDUyOzAwNTI7CisxRDQxMjsxRDQxMjsxRDQxMjswMDUzOzAwNTM7CisxRDQxMzsxRDQxMzsxRDQxMzswMDU0OzAwNTQ7CisxRDQxNDsxRDQxNDsxRDQxNDswMDU1OzAwNTU7CisxRDQxNTsxRDQxNTsxRDQxNTswMDU2OzAwNTY7CisxRDQxNjsxRDQxNjsxRDQxNjswMDU3OzAwNTc7CisxRDQxNzsxRDQxNzsxRDQxNzswMDU4OzAwNTg7CisxRDQxODsxRDQxODsxRDQxODswMDU5OzAwNTk7CisxRDQxOTsxRDQxOTsxRDQxOTswMDVBOzAwNUE7CisxRDQxQTsxRDQxQTsxRDQxQTswMDYxOzAwNjE7CisxRDQxQjsxRDQxQjsxRDQxQjswMDYyOzAwNjI7CisxRDQxQzsxRDQxQzsxRDQxQzswMDYzOzAwNjM7CisxRDQxRDsxRDQxRDsxRDQxRDswMDY0OzAwNjQ7CisxRDQxRTsxRDQxRTsxRDQxRTswMDY1OzAwNjU7CisxRDQxRjsxRDQxRjsxRDQxRjswMDY2OzAwNjY7CisxRDQyMDsxRDQyMDsxRDQyMDswMDY3OzAwNjc7CisxRDQyMTsxRDQyMTsxRDQyMTswMDY4OzAwNjg7CisxRDQyMjsxRDQyMjsxRDQyMjswMDY5OzAwNjk7CisxRDQyMzsxRDQyMzsxRDQyMzswMDZBOzAwNkE7CisxRDQyNDsxRDQyNDsxRDQyNDswMDZCOzAwNkI7CisxRDQyNTsxRDQyNTsxRDQyNTswMDZDOzAwNkM7CisxRDQyNjsxRDQyNjsxRDQyNjswMDZEOzAwNkQ7CisxRDQyNzsxRDQyNzsxRDQyNzswMDZFOzAwNkU7CisxRDQyODsxRDQyODsxRDQyODswMDZGOzAwNkY7CisxRDQyOTsxRDQyOTsxRDQyOTswMDcwOzAwNzA7CisxRDQyQTsxRDQyQTsxRDQyQTswMDcxOzAwNzE7CisxRDQyQjsxRDQyQjsxRDQyQjswMDcyOzAwNzI7CisxRDQyQzsxRDQyQzsxRDQyQzswMDczOzAwNzM7CisxRDQyRDsxRDQyRDsxRDQyRDswMDc0OzAwNzQ7CisxRDQyRTsxRDQyRTsxRDQyRTswMDc1OzAwNzU7CisxRDQyRjsxRDQyRjsxRDQyRjswMDc2OzAwNzY7CisxRDQzMDsxRDQzMDsxRDQzMDswMDc3OzAwNzc7CisxRDQzMTsxRDQzMTsxRDQzMTswMDc4OzAwNzg7CisxRDQzMjsxRDQzMjsxRDQzMjswMDc5OzAwNzk7CisxRDQzMzsxRDQzMzsxRDQzMzswMDdBOzAwN0E7CisxRDQzNDsxRDQzNDsxRDQzNDswMDQxOzAwNDE7CisxRDQzNTsxRDQzNTsxRDQzNTswMDQyOzAwNDI7CisxRDQzNjsxRDQzNjsxRDQzNjswMDQzOzAwNDM7CisxRDQzNzsxRDQzNzsxRDQzNzswMDQ0OzAwNDQ7CisxRDQzODsxRDQzODsxRDQzODswMDQ1OzAwNDU7CisxRDQzOTsxRDQzOTsxRDQzOTswMDQ2OzAwNDY7CisxRDQzQTsxRDQzQTsxRDQzQTswMDQ3OzAwNDc7CisxRDQzQjsxRDQzQjsxRDQzQjswMDQ4OzAwNDg7CisxRDQzQzsxRDQzQzsxRDQzQzswMDQ5OzAwNDk7CisxRDQzRDsxRDQzRDsxRDQzRDswMDRBOzAwNEE7CisxRDQzRTsxRDQzRTsxRDQzRTswMDRCOzAwNEI7CisxRDQzRjsxRDQzRjsxRDQzRjswMDRDOzAwNEM7CisxRDQ0MDsxRDQ0MDsxRDQ0MDswMDREOzAwNEQ7CisxRDQ0MTsxRDQ0MTsxRDQ0MTswMDRFOzAwNEU7CisxRDQ0MjsxRDQ0MjsxRDQ0MjswMDRGOzAwNEY7CisxRDQ0MzsxRDQ0MzsxRDQ0MzswMDUwOzAwNTA7CisxRDQ0NDsxRDQ0NDsxRDQ0NDswMDUxOzAwNTE7CisxRDQ0NTsxRDQ0NTsxRDQ0NTswMDUyOzAwNTI7CisxRDQ0NjsxRDQ0NjsxRDQ0NjswMDUzOzAwNTM7CisxRDQ0NzsxRDQ0NzsxRDQ0NzswMDU0OzAwNTQ7CisxRDQ0ODsxRDQ0ODsxRDQ0ODswMDU1OzAwNTU7CisxRDQ0OTsxRDQ0OTsxRDQ0OTswMDU2OzAwNTY7CisxRDQ0QTsxRDQ0QTsxRDQ0QTswMDU3OzAwNTc7CisxRDQ0QjsxRDQ0QjsxRDQ0QjswMDU4OzAwNTg7CisxRDQ0QzsxRDQ0QzsxRDQ0QzswMDU5OzAwNTk7CisxRDQ0RDsxRDQ0RDsxRDQ0RDswMDVBOzAwNUE7CisxRDQ0RTsxRDQ0RTsxRDQ0RTswMDYxOzAwNjE7CisxRDQ0RjsxRDQ0RjsxRDQ0RjswMDYyOzAwNjI7CisxRDQ1MDsxRDQ1MDsxRDQ1MDswMDYzOzAwNjM7CisxRDQ1MTsxRDQ1MTsxRDQ1MTswMDY0OzAwNjQ7CisxRDQ1MjsxRDQ1MjsxRDQ1MjswMDY1OzAwNjU7CisxRDQ1MzsxRDQ1MzsxRDQ1MzswMDY2OzAwNjY7CisxRDQ1NDsxRDQ1NDsxRDQ1NDswMDY3OzAwNjc7CisxRDQ1NjsxRDQ1NjsxRDQ1NjswMDY5OzAwNjk7CisxRDQ1NzsxRDQ1NzsxRDQ1NzswMDZBOzAwNkE7CisxRDQ1ODsxRDQ1ODsxRDQ1ODswMDZCOzAwNkI7CisxRDQ1OTsxRDQ1OTsxRDQ1OTswMDZDOzAwNkM7CisxRDQ1QTsxRDQ1QTsxRDQ1QTswMDZEOzAwNkQ7CisxRDQ1QjsxRDQ1QjsxRDQ1QjswMDZFOzAwNkU7CisxRDQ1QzsxRDQ1QzsxRDQ1QzswMDZGOzAwNkY7CisxRDQ1RDsxRDQ1RDsxRDQ1RDswMDcwOzAwNzA7CisxRDQ1RTsxRDQ1RTsxRDQ1RTswMDcxOzAwNzE7CisxRDQ1RjsxRDQ1RjsxRDQ1RjswMDcyOzAwNzI7CisxRDQ2MDsxRDQ2MDsxRDQ2MDswMDczOzAwNzM7CisxRDQ2MTsxRDQ2MTsxRDQ2MTswMDc0OzAwNzQ7CisxRDQ2MjsxRDQ2MjsxRDQ2MjswMDc1OzAwNzU7CisxRDQ2MzsxRDQ2MzsxRDQ2MzswMDc2OzAwNzY7CisxRDQ2NDsxRDQ2NDsxRDQ2NDswMDc3OzAwNzc7CisxRDQ2NTsxRDQ2NTsxRDQ2NTswMDc4OzAwNzg7CisxRDQ2NjsxRDQ2NjsxRDQ2NjswMDc5OzAwNzk7CisxRDQ2NzsxRDQ2NzsxRDQ2NzswMDdBOzAwN0E7CisxRDQ2ODsxRDQ2ODsxRDQ2ODswMDQxOzAwNDE7CisxRDQ2OTsxRDQ2OTsxRDQ2OTswMDQyOzAwNDI7CisxRDQ2QTsxRDQ2QTsxRDQ2QTswMDQzOzAwNDM7CisxRDQ2QjsxRDQ2QjsxRDQ2QjswMDQ0OzAwNDQ7CisxRDQ2QzsxRDQ2QzsxRDQ2QzswMDQ1OzAwNDU7CisxRDQ2RDsxRDQ2RDsxRDQ2RDswMDQ2OzAwNDY7CisxRDQ2RTsxRDQ2RTsxRDQ2RTswMDQ3OzAwNDc7CisxRDQ2RjsxRDQ2RjsxRDQ2RjswMDQ4OzAwNDg7CisxRDQ3MDsxRDQ3MDsxRDQ3MDswMDQ5OzAwNDk7CisxRDQ3MTsxRDQ3MTsxRDQ3MTswMDRBOzAwNEE7CisxRDQ3MjsxRDQ3MjsxRDQ3MjswMDRCOzAwNEI7CisxRDQ3MzsxRDQ3MzsxRDQ3MzswMDRDOzAwNEM7CisxRDQ3NDsxRDQ3NDsxRDQ3NDswMDREOzAwNEQ7CisxRDQ3NTsxRDQ3NTsxRDQ3NTswMDRFOzAwNEU7CisxRDQ3NjsxRDQ3NjsxRDQ3NjswMDRGOzAwNEY7CisxRDQ3NzsxRDQ3NzsxRDQ3NzswMDUwOzAwNTA7CisxRDQ3ODsxRDQ3ODsxRDQ3ODswMDUxOzAwNTE7CisxRDQ3OTsxRDQ3OTsxRDQ3OTswMDUyOzAwNTI7CisxRDQ3QTsxRDQ3QTsxRDQ3QTswMDUzOzAwNTM7CisxRDQ3QjsxRDQ3QjsxRDQ3QjswMDU0OzAwNTQ7CisxRDQ3QzsxRDQ3QzsxRDQ3QzswMDU1OzAwNTU7CisxRDQ3RDsxRDQ3RDsxRDQ3RDswMDU2OzAwNTY7CisxRDQ3RTsxRDQ3RTsxRDQ3RTswMDU3OzAwNTc7CisxRDQ3RjsxRDQ3RjsxRDQ3RjswMDU4OzAwNTg7CisxRDQ4MDsxRDQ4MDsxRDQ4MDswMDU5OzAwNTk7CisxRDQ4MTsxRDQ4MTsxRDQ4MTswMDVBOzAwNUE7CisxRDQ4MjsxRDQ4MjsxRDQ4MjswMDYxOzAwNjE7CisxRDQ4MzsxRDQ4MzsxRDQ4MzswMDYyOzAwNjI7CisxRDQ4NDsxRDQ4NDsxRDQ4NDswMDYzOzAwNjM7CisxRDQ4NTsxRDQ4NTsxRDQ4NTswMDY0OzAwNjQ7CisxRDQ4NjsxRDQ4NjsxRDQ4NjswMDY1OzAwNjU7CisxRDQ4NzsxRDQ4NzsxRDQ4NzswMDY2OzAwNjY7CisxRDQ4ODsxRDQ4ODsxRDQ4ODswMDY3OzAwNjc7CisxRDQ4OTsxRDQ4OTsxRDQ4OTswMDY4OzAwNjg7CisxRDQ4QTsxRDQ4QTsxRDQ4QTswMDY5OzAwNjk7CisxRDQ4QjsxRDQ4QjsxRDQ4QjswMDZBOzAwNkE7CisxRDQ4QzsxRDQ4QzsxRDQ4QzswMDZCOzAwNkI7CisxRDQ4RDsxRDQ4RDsxRDQ4RDswMDZDOzAwNkM7CisxRDQ4RTsxRDQ4RTsxRDQ4RTswMDZEOzAwNkQ7CisxRDQ4RjsxRDQ4RjsxRDQ4RjswMDZFOzAwNkU7CisxRDQ5MDsxRDQ5MDsxRDQ5MDswMDZGOzAwNkY7CisxRDQ5MTsxRDQ5MTsxRDQ5MTswMDcwOzAwNzA7CisxRDQ5MjsxRDQ5MjsxRDQ5MjswMDcxOzAwNzE7CisxRDQ5MzsxRDQ5MzsxRDQ5MzswMDcyOzAwNzI7CisxRDQ5NDsxRDQ5NDsxRDQ5NDswMDczOzAwNzM7CisxRDQ5NTsxRDQ5NTsxRDQ5NTswMDc0OzAwNzQ7CisxRDQ5NjsxRDQ5NjsxRDQ5NjswMDc1OzAwNzU7CisxRDQ5NzsxRDQ5NzsxRDQ5NzswMDc2OzAwNzY7CisxRDQ5ODsxRDQ5ODsxRDQ5ODswMDc3OzAwNzc7CisxRDQ5OTsxRDQ5OTsxRDQ5OTswMDc4OzAwNzg7CisxRDQ5QTsxRDQ5QTsxRDQ5QTswMDc5OzAwNzk7CisxRDQ5QjsxRDQ5QjsxRDQ5QjswMDdBOzAwN0E7CisxRDQ5QzsxRDQ5QzsxRDQ5QzswMDQxOzAwNDE7CisxRDQ5RTsxRDQ5RTsxRDQ5RTswMDQzOzAwNDM7CisxRDQ5RjsxRDQ5RjsxRDQ5RjswMDQ0OzAwNDQ7CisxRDRBMjsxRDRBMjsxRDRBMjswMDQ3OzAwNDc7CisxRDRBNTsxRDRBNTsxRDRBNTswMDRBOzAwNEE7CisxRDRBNjsxRDRBNjsxRDRBNjswMDRCOzAwNEI7CisxRDRBOTsxRDRBOTsxRDRBOTswMDRFOzAwNEU7CisxRDRBQTsxRDRBQTsxRDRBQTswMDRGOzAwNEY7CisxRDRBQjsxRDRBQjsxRDRBQjswMDUwOzAwNTA7CisxRDRBQzsxRDRBQzsxRDRBQzswMDUxOzAwNTE7CisxRDRBRTsxRDRBRTsxRDRBRTswMDUzOzAwNTM7CisxRDRBRjsxRDRBRjsxRDRBRjswMDU0OzAwNTQ7CisxRDRCMDsxRDRCMDsxRDRCMDswMDU1OzAwNTU7CisxRDRCMTsxRDRCMTsxRDRCMTswMDU2OzAwNTY7CisxRDRCMjsxRDRCMjsxRDRCMjswMDU3OzAwNTc7CisxRDRCMzsxRDRCMzsxRDRCMzswMDU4OzAwNTg7CisxRDRCNDsxRDRCNDsxRDRCNDswMDU5OzAwNTk7CisxRDRCNTsxRDRCNTsxRDRCNTswMDVBOzAwNUE7CisxRDRCNjsxRDRCNjsxRDRCNjswMDYxOzAwNjE7CisxRDRCNzsxRDRCNzsxRDRCNzswMDYyOzAwNjI7CisxRDRCODsxRDRCODsxRDRCODswMDYzOzAwNjM7CisxRDRCOTsxRDRCOTsxRDRCOTswMDY0OzAwNjQ7CisxRDRCQjsxRDRCQjsxRDRCQjswMDY2OzAwNjY7CisxRDRCRDsxRDRCRDsxRDRCRDswMDY4OzAwNjg7CisxRDRCRTsxRDRCRTsxRDRCRTswMDY5OzAwNjk7CisxRDRCRjsxRDRCRjsxRDRCRjswMDZBOzAwNkE7CisxRDRDMDsxRDRDMDsxRDRDMDswMDZCOzAwNkI7CisxRDRDMTsxRDRDMTsxRDRDMTswMDZDOzAwNkM7CisxRDRDMjsxRDRDMjsxRDRDMjswMDZEOzAwNkQ7CisxRDRDMzsxRDRDMzsxRDRDMzswMDZFOzAwNkU7CisxRDRDNTsxRDRDNTsxRDRDNTswMDcwOzAwNzA7CisxRDRDNjsxRDRDNjsxRDRDNjswMDcxOzAwNzE7CisxRDRDNzsxRDRDNzsxRDRDNzswMDcyOzAwNzI7CisxRDRDODsxRDRDODsxRDRDODswMDczOzAwNzM7CisxRDRDOTsxRDRDOTsxRDRDOTswMDc0OzAwNzQ7CisxRDRDQTsxRDRDQTsxRDRDQTswMDc1OzAwNzU7CisxRDRDQjsxRDRDQjsxRDRDQjswMDc2OzAwNzY7CisxRDRDQzsxRDRDQzsxRDRDQzswMDc3OzAwNzc7CisxRDRDRDsxRDRDRDsxRDRDRDswMDc4OzAwNzg7CisxRDRDRTsxRDRDRTsxRDRDRTswMDc5OzAwNzk7CisxRDRDRjsxRDRDRjsxRDRDRjswMDdBOzAwN0E7CisxRDREMDsxRDREMDsxRDREMDswMDQxOzAwNDE7CisxRDREMTsxRDREMTsxRDREMTswMDQyOzAwNDI7CisxRDREMjsxRDREMjsxRDREMjswMDQzOzAwNDM7CisxRDREMzsxRDREMzsxRDREMzswMDQ0OzAwNDQ7CisxRDRENDsxRDRENDsxRDRENDswMDQ1OzAwNDU7CisxRDRENTsxRDRENTsxRDRENTswMDQ2OzAwNDY7CisxRDRENjsxRDRENjsxRDRENjswMDQ3OzAwNDc7CisxRDRENzsxRDRENzsxRDRENzswMDQ4OzAwNDg7CisxRDREODsxRDREODsxRDREODswMDQ5OzAwNDk7CisxRDREOTsxRDREOTsxRDREOTswMDRBOzAwNEE7CisxRDREQTsxRDREQTsxRDREQTswMDRCOzAwNEI7CisxRDREQjsxRDREQjsxRDREQjswMDRDOzAwNEM7CisxRDREQzsxRDREQzsxRDREQzswMDREOzAwNEQ7CisxRDRERDsxRDRERDsxRDRERDswMDRFOzAwNEU7CisxRDRERTsxRDRERTsxRDRERTswMDRGOzAwNEY7CisxRDRERjsxRDRERjsxRDRERjswMDUwOzAwNTA7CisxRDRFMDsxRDRFMDsxRDRFMDswMDUxOzAwNTE7CisxRDRFMTsxRDRFMTsxRDRFMTswMDUyOzAwNTI7CisxRDRFMjsxRDRFMjsxRDRFMjswMDUzOzAwNTM7CisxRDRFMzsxRDRFMzsxRDRFMzswMDU0OzAwNTQ7CisxRDRFNDsxRDRFNDsxRDRFNDswMDU1OzAwNTU7CisxRDRFNTsxRDRFNTsxRDRFNTswMDU2OzAwNTY7CisxRDRFNjsxRDRFNjsxRDRFNjswMDU3OzAwNTc7CisxRDRFNzsxRDRFNzsxRDRFNzswMDU4OzAwNTg7CisxRDRFODsxRDRFODsxRDRFODswMDU5OzAwNTk7CisxRDRFOTsxRDRFOTsxRDRFOTswMDVBOzAwNUE7CisxRDRFQTsxRDRFQTsxRDRFQTswMDYxOzAwNjE7CisxRDRFQjsxRDRFQjsxRDRFQjswMDYyOzAwNjI7CisxRDRFQzsxRDRFQzsxRDRFQzswMDYzOzAwNjM7CisxRDRFRDsxRDRFRDsxRDRFRDswMDY0OzAwNjQ7CisxRDRFRTsxRDRFRTsxRDRFRTswMDY1OzAwNjU7CisxRDRFRjsxRDRFRjsxRDRFRjswMDY2OzAwNjY7CisxRDRGMDsxRDRGMDsxRDRGMDswMDY3OzAwNjc7CisxRDRGMTsxRDRGMTsxRDRGMTswMDY4OzAwNjg7CisxRDRGMjsxRDRGMjsxRDRGMjswMDY5OzAwNjk7CisxRDRGMzsxRDRGMzsxRDRGMzswMDZBOzAwNkE7CisxRDRGNDsxRDRGNDsxRDRGNDswMDZCOzAwNkI7CisxRDRGNTsxRDRGNTsxRDRGNTswMDZDOzAwNkM7CisxRDRGNjsxRDRGNjsxRDRGNjswMDZEOzAwNkQ7CisxRDRGNzsxRDRGNzsxRDRGNzswMDZFOzAwNkU7CisxRDRGODsxRDRGODsxRDRGODswMDZGOzAwNkY7CisxRDRGOTsxRDRGOTsxRDRGOTswMDcwOzAwNzA7CisxRDRGQTsxRDRGQTsxRDRGQTswMDcxOzAwNzE7CisxRDRGQjsxRDRGQjsxRDRGQjswMDcyOzAwNzI7CisxRDRGQzsxRDRGQzsxRDRGQzswMDczOzAwNzM7CisxRDRGRDsxRDRGRDsxRDRGRDswMDc0OzAwNzQ7CisxRDRGRTsxRDRGRTsxRDRGRTswMDc1OzAwNzU7CisxRDRGRjsxRDRGRjsxRDRGRjswMDc2OzAwNzY7CisxRDUwMDsxRDUwMDsxRDUwMDswMDc3OzAwNzc7CisxRDUwMTsxRDUwMTsxRDUwMTswMDc4OzAwNzg7CisxRDUwMjsxRDUwMjsxRDUwMjswMDc5OzAwNzk7CisxRDUwMzsxRDUwMzsxRDUwMzswMDdBOzAwN0E7CisxRDUwNDsxRDUwNDsxRDUwNDswMDQxOzAwNDE7CisxRDUwNTsxRDUwNTsxRDUwNTswMDQyOzAwNDI7CisxRDUwNzsxRDUwNzsxRDUwNzswMDQ0OzAwNDQ7CisxRDUwODsxRDUwODsxRDUwODswMDQ1OzAwNDU7CisxRDUwOTsxRDUwOTsxRDUwOTswMDQ2OzAwNDY7CisxRDUwQTsxRDUwQTsxRDUwQTswMDQ3OzAwNDc7CisxRDUwRDsxRDUwRDsxRDUwRDswMDRBOzAwNEE7CisxRDUwRTsxRDUwRTsxRDUwRTswMDRCOzAwNEI7CisxRDUwRjsxRDUwRjsxRDUwRjswMDRDOzAwNEM7CisxRDUxMDsxRDUxMDsxRDUxMDswMDREOzAwNEQ7CisxRDUxMTsxRDUxMTsxRDUxMTswMDRFOzAwNEU7CisxRDUxMjsxRDUxMjsxRDUxMjswMDRGOzAwNEY7CisxRDUxMzsxRDUxMzsxRDUxMzswMDUwOzAwNTA7CisxRDUxNDsxRDUxNDsxRDUxNDswMDUxOzAwNTE7CisxRDUxNjsxRDUxNjsxRDUxNjswMDUzOzAwNTM7CisxRDUxNzsxRDUxNzsxRDUxNzswMDU0OzAwNTQ7CisxRDUxODsxRDUxODsxRDUxODswMDU1OzAwNTU7CisxRDUxOTsxRDUxOTsxRDUxOTswMDU2OzAwNTY7CisxRDUxQTsxRDUxQTsxRDUxQTswMDU3OzAwNTc7CisxRDUxQjsxRDUxQjsxRDUxQjswMDU4OzAwNTg7CisxRDUxQzsxRDUxQzsxRDUxQzswMDU5OzAwNTk7CisxRDUxRTsxRDUxRTsxRDUxRTswMDYxOzAwNjE7CisxRDUxRjsxRDUxRjsxRDUxRjswMDYyOzAwNjI7CisxRDUyMDsxRDUyMDsxRDUyMDswMDYzOzAwNjM7CisxRDUyMTsxRDUyMTsxRDUyMTswMDY0OzAwNjQ7CisxRDUyMjsxRDUyMjsxRDUyMjswMDY1OzAwNjU7CisxRDUyMzsxRDUyMzsxRDUyMzswMDY2OzAwNjY7CisxRDUyNDsxRDUyNDsxRDUyNDswMDY3OzAwNjc7CisxRDUyNTsxRDUyNTsxRDUyNTswMDY4OzAwNjg7CisxRDUyNjsxRDUyNjsxRDUyNjswMDY5OzAwNjk7CisxRDUyNzsxRDUyNzsxRDUyNzswMDZBOzAwNkE7CisxRDUyODsxRDUyODsxRDUyODswMDZCOzAwNkI7CisxRDUyOTsxRDUyOTsxRDUyOTswMDZDOzAwNkM7CisxRDUyQTsxRDUyQTsxRDUyQTswMDZEOzAwNkQ7CisxRDUyQjsxRDUyQjsxRDUyQjswMDZFOzAwNkU7CisxRDUyQzsxRDUyQzsxRDUyQzswMDZGOzAwNkY7CisxRDUyRDsxRDUyRDsxRDUyRDswMDcwOzAwNzA7CisxRDUyRTsxRDUyRTsxRDUyRTswMDcxOzAwNzE7CisxRDUyRjsxRDUyRjsxRDUyRjswMDcyOzAwNzI7CisxRDUzMDsxRDUzMDsxRDUzMDswMDczOzAwNzM7CisxRDUzMTsxRDUzMTsxRDUzMTswMDc0OzAwNzQ7CisxRDUzMjsxRDUzMjsxRDUzMjswMDc1OzAwNzU7CisxRDUzMzsxRDUzMzsxRDUzMzswMDc2OzAwNzY7CisxRDUzNDsxRDUzNDsxRDUzNDswMDc3OzAwNzc7CisxRDUzNTsxRDUzNTsxRDUzNTswMDc4OzAwNzg7CisxRDUzNjsxRDUzNjsxRDUzNjswMDc5OzAwNzk7CisxRDUzNzsxRDUzNzsxRDUzNzswMDdBOzAwN0E7CisxRDUzODsxRDUzODsxRDUzODswMDQxOzAwNDE7CisxRDUzOTsxRDUzOTsxRDUzOTswMDQyOzAwNDI7CisxRDUzQjsxRDUzQjsxRDUzQjswMDQ0OzAwNDQ7CisxRDUzQzsxRDUzQzsxRDUzQzswMDQ1OzAwNDU7CisxRDUzRDsxRDUzRDsxRDUzRDswMDQ2OzAwNDY7CisxRDUzRTsxRDUzRTsxRDUzRTswMDQ3OzAwNDc7CisxRDU0MDsxRDU0MDsxRDU0MDswMDQ5OzAwNDk7CisxRDU0MTsxRDU0MTsxRDU0MTswMDRBOzAwNEE7CisxRDU0MjsxRDU0MjsxRDU0MjswMDRCOzAwNEI7CisxRDU0MzsxRDU0MzsxRDU0MzswMDRDOzAwNEM7CisxRDU0NDsxRDU0NDsxRDU0NDswMDREOzAwNEQ7CisxRDU0NjsxRDU0NjsxRDU0NjswMDRGOzAwNEY7CisxRDU0QTsxRDU0QTsxRDU0QTswMDUzOzAwNTM7CisxRDU0QjsxRDU0QjsxRDU0QjswMDU0OzAwNTQ7CisxRDU0QzsxRDU0QzsxRDU0QzswMDU1OzAwNTU7CisxRDU0RDsxRDU0RDsxRDU0RDswMDU2OzAwNTY7CisxRDU0RTsxRDU0RTsxRDU0RTswMDU3OzAwNTc7CisxRDU0RjsxRDU0RjsxRDU0RjswMDU4OzAwNTg7CisxRDU1MDsxRDU1MDsxRDU1MDswMDU5OzAwNTk7CisxRDU1MjsxRDU1MjsxRDU1MjswMDYxOzAwNjE7CisxRDU1MzsxRDU1MzsxRDU1MzswMDYyOzAwNjI7CisxRDU1NDsxRDU1NDsxRDU1NDswMDYzOzAwNjM7CisxRDU1NTsxRDU1NTsxRDU1NTswMDY0OzAwNjQ7CisxRDU1NjsxRDU1NjsxRDU1NjswMDY1OzAwNjU7CisxRDU1NzsxRDU1NzsxRDU1NzswMDY2OzAwNjY7CisxRDU1ODsxRDU1ODsxRDU1ODswMDY3OzAwNjc7CisxRDU1OTsxRDU1OTsxRDU1OTswMDY4OzAwNjg7CisxRDU1QTsxRDU1QTsxRDU1QTswMDY5OzAwNjk7CisxRDU1QjsxRDU1QjsxRDU1QjswMDZBOzAwNkE7CisxRDU1QzsxRDU1QzsxRDU1QzswMDZCOzAwNkI7CisxRDU1RDsxRDU1RDsxRDU1RDswMDZDOzAwNkM7CisxRDU1RTsxRDU1RTsxRDU1RTswMDZEOzAwNkQ7CisxRDU1RjsxRDU1RjsxRDU1RjswMDZFOzAwNkU7CisxRDU2MDsxRDU2MDsxRDU2MDswMDZGOzAwNkY7CisxRDU2MTsxRDU2MTsxRDU2MTswMDcwOzAwNzA7CisxRDU2MjsxRDU2MjsxRDU2MjswMDcxOzAwNzE7CisxRDU2MzsxRDU2MzsxRDU2MzswMDcyOzAwNzI7CisxRDU2NDsxRDU2NDsxRDU2NDswMDczOzAwNzM7CisxRDU2NTsxRDU2NTsxRDU2NTswMDc0OzAwNzQ7CisxRDU2NjsxRDU2NjsxRDU2NjswMDc1OzAwNzU7CisxRDU2NzsxRDU2NzsxRDU2NzswMDc2OzAwNzY7CisxRDU2ODsxRDU2ODsxRDU2ODswMDc3OzAwNzc7CisxRDU2OTsxRDU2OTsxRDU2OTswMDc4OzAwNzg7CisxRDU2QTsxRDU2QTsxRDU2QTswMDc5OzAwNzk7CisxRDU2QjsxRDU2QjsxRDU2QjswMDdBOzAwN0E7CisxRDU2QzsxRDU2QzsxRDU2QzswMDQxOzAwNDE7CisxRDU2RDsxRDU2RDsxRDU2RDswMDQyOzAwNDI7CisxRDU2RTsxRDU2RTsxRDU2RTswMDQzOzAwNDM7CisxRDU2RjsxRDU2RjsxRDU2RjswMDQ0OzAwNDQ7CisxRDU3MDsxRDU3MDsxRDU3MDswMDQ1OzAwNDU7CisxRDU3MTsxRDU3MTsxRDU3MTswMDQ2OzAwNDY7CisxRDU3MjsxRDU3MjsxRDU3MjswMDQ3OzAwNDc7CisxRDU3MzsxRDU3MzsxRDU3MzswMDQ4OzAwNDg7CisxRDU3NDsxRDU3NDsxRDU3NDswMDQ5OzAwNDk7CisxRDU3NTsxRDU3NTsxRDU3NTswMDRBOzAwNEE7CisxRDU3NjsxRDU3NjsxRDU3NjswMDRCOzAwNEI7CisxRDU3NzsxRDU3NzsxRDU3NzswMDRDOzAwNEM7CisxRDU3ODsxRDU3ODsxRDU3ODswMDREOzAwNEQ7CisxRDU3OTsxRDU3OTsxRDU3OTswMDRFOzAwNEU7CisxRDU3QTsxRDU3QTsxRDU3QTswMDRGOzAwNEY7CisxRDU3QjsxRDU3QjsxRDU3QjswMDUwOzAwNTA7CisxRDU3QzsxRDU3QzsxRDU3QzswMDUxOzAwNTE7CisxRDU3RDsxRDU3RDsxRDU3RDswMDUyOzAwNTI7CisxRDU3RTsxRDU3RTsxRDU3RTswMDUzOzAwNTM7CisxRDU3RjsxRDU3RjsxRDU3RjswMDU0OzAwNTQ7CisxRDU4MDsxRDU4MDsxRDU4MDswMDU1OzAwNTU7CisxRDU4MTsxRDU4MTsxRDU4MTswMDU2OzAwNTY7CisxRDU4MjsxRDU4MjsxRDU4MjswMDU3OzAwNTc7CisxRDU4MzsxRDU4MzsxRDU4MzswMDU4OzAwNTg7CisxRDU4NDsxRDU4NDsxRDU4NDswMDU5OzAwNTk7CisxRDU4NTsxRDU4NTsxRDU4NTswMDVBOzAwNUE7CisxRDU4NjsxRDU4NjsxRDU4NjswMDYxOzAwNjE7CisxRDU4NzsxRDU4NzsxRDU4NzswMDYyOzAwNjI7CisxRDU4ODsxRDU4ODsxRDU4ODswMDYzOzAwNjM7CisxRDU4OTsxRDU4OTsxRDU4OTswMDY0OzAwNjQ7CisxRDU4QTsxRDU4QTsxRDU4QTswMDY1OzAwNjU7CisxRDU4QjsxRDU4QjsxRDU4QjswMDY2OzAwNjY7CisxRDU4QzsxRDU4QzsxRDU4QzswMDY3OzAwNjc7CisxRDU4RDsxRDU4RDsxRDU4RDswMDY4OzAwNjg7CisxRDU4RTsxRDU4RTsxRDU4RTswMDY5OzAwNjk7CisxRDU4RjsxRDU4RjsxRDU4RjswMDZBOzAwNkE7CisxRDU5MDsxRDU5MDsxRDU5MDswMDZCOzAwNkI7CisxRDU5MTsxRDU5MTsxRDU5MTswMDZDOzAwNkM7CisxRDU5MjsxRDU5MjsxRDU5MjswMDZEOzAwNkQ7CisxRDU5MzsxRDU5MzsxRDU5MzswMDZFOzAwNkU7CisxRDU5NDsxRDU5NDsxRDU5NDswMDZGOzAwNkY7CisxRDU5NTsxRDU5NTsxRDU5NTswMDcwOzAwNzA7CisxRDU5NjsxRDU5NjsxRDU5NjswMDcxOzAwNzE7CisxRDU5NzsxRDU5NzsxRDU5NzswMDcyOzAwNzI7CisxRDU5ODsxRDU5ODsxRDU5ODswMDczOzAwNzM7CisxRDU5OTsxRDU5OTsxRDU5OTswMDc0OzAwNzQ7CisxRDU5QTsxRDU5QTsxRDU5QTswMDc1OzAwNzU7CisxRDU5QjsxRDU5QjsxRDU5QjswMDc2OzAwNzY7CisxRDU5QzsxRDU5QzsxRDU5QzswMDc3OzAwNzc7CisxRDU5RDsxRDU5RDsxRDU5RDswMDc4OzAwNzg7CisxRDU5RTsxRDU5RTsxRDU5RTswMDc5OzAwNzk7CisxRDU5RjsxRDU5RjsxRDU5RjswMDdBOzAwN0E7CisxRDVBMDsxRDVBMDsxRDVBMDswMDQxOzAwNDE7CisxRDVBMTsxRDVBMTsxRDVBMTswMDQyOzAwNDI7CisxRDVBMjsxRDVBMjsxRDVBMjswMDQzOzAwNDM7CisxRDVBMzsxRDVBMzsxRDVBMzswMDQ0OzAwNDQ7CisxRDVBNDsxRDVBNDsxRDVBNDswMDQ1OzAwNDU7CisxRDVBNTsxRDVBNTsxRDVBNTswMDQ2OzAwNDY7CisxRDVBNjsxRDVBNjsxRDVBNjswMDQ3OzAwNDc7CisxRDVBNzsxRDVBNzsxRDVBNzswMDQ4OzAwNDg7CisxRDVBODsxRDVBODsxRDVBODswMDQ5OzAwNDk7CisxRDVBOTsxRDVBOTsxRDVBOTswMDRBOzAwNEE7CisxRDVBQTsxRDVBQTsxRDVBQTswMDRCOzAwNEI7CisxRDVBQjsxRDVBQjsxRDVBQjswMDRDOzAwNEM7CisxRDVBQzsxRDVBQzsxRDVBQzswMDREOzAwNEQ7CisxRDVBRDsxRDVBRDsxRDVBRDswMDRFOzAwNEU7CisxRDVBRTsxRDVBRTsxRDVBRTswMDRGOzAwNEY7CisxRDVBRjsxRDVBRjsxRDVBRjswMDUwOzAwNTA7CisxRDVCMDsxRDVCMDsxRDVCMDswMDUxOzAwNTE7CisxRDVCMTsxRDVCMTsxRDVCMTswMDUyOzAwNTI7CisxRDVCMjsxRDVCMjsxRDVCMjswMDUzOzAwNTM7CisxRDVCMzsxRDVCMzsxRDVCMzswMDU0OzAwNTQ7CisxRDVCNDsxRDVCNDsxRDVCNDswMDU1OzAwNTU7CisxRDVCNTsxRDVCNTsxRDVCNTswMDU2OzAwNTY7CisxRDVCNjsxRDVCNjsxRDVCNjswMDU3OzAwNTc7CisxRDVCNzsxRDVCNzsxRDVCNzswMDU4OzAwNTg7CisxRDVCODsxRDVCODsxRDVCODswMDU5OzAwNTk7CisxRDVCOTsxRDVCOTsxRDVCOTswMDVBOzAwNUE7CisxRDVCQTsxRDVCQTsxRDVCQTswMDYxOzAwNjE7CisxRDVCQjsxRDVCQjsxRDVCQjswMDYyOzAwNjI7CisxRDVCQzsxRDVCQzsxRDVCQzswMDYzOzAwNjM7CisxRDVCRDsxRDVCRDsxRDVCRDswMDY0OzAwNjQ7CisxRDVCRTsxRDVCRTsxRDVCRTswMDY1OzAwNjU7CisxRDVCRjsxRDVCRjsxRDVCRjswMDY2OzAwNjY7CisxRDVDMDsxRDVDMDsxRDVDMDswMDY3OzAwNjc7CisxRDVDMTsxRDVDMTsxRDVDMTswMDY4OzAwNjg7CisxRDVDMjsxRDVDMjsxRDVDMjswMDY5OzAwNjk7CisxRDVDMzsxRDVDMzsxRDVDMzswMDZBOzAwNkE7CisxRDVDNDsxRDVDNDsxRDVDNDswMDZCOzAwNkI7CisxRDVDNTsxRDVDNTsxRDVDNTswMDZDOzAwNkM7CisxRDVDNjsxRDVDNjsxRDVDNjswMDZEOzAwNkQ7CisxRDVDNzsxRDVDNzsxRDVDNzswMDZFOzAwNkU7CisxRDVDODsxRDVDODsxRDVDODswMDZGOzAwNkY7CisxRDVDOTsxRDVDOTsxRDVDOTswMDcwOzAwNzA7CisxRDVDQTsxRDVDQTsxRDVDQTswMDcxOzAwNzE7CisxRDVDQjsxRDVDQjsxRDVDQjswMDcyOzAwNzI7CisxRDVDQzsxRDVDQzsxRDVDQzswMDczOzAwNzM7CisxRDVDRDsxRDVDRDsxRDVDRDswMDc0OzAwNzQ7CisxRDVDRTsxRDVDRTsxRDVDRTswMDc1OzAwNzU7CisxRDVDRjsxRDVDRjsxRDVDRjswMDc2OzAwNzY7CisxRDVEMDsxRDVEMDsxRDVEMDswMDc3OzAwNzc7CisxRDVEMTsxRDVEMTsxRDVEMTswMDc4OzAwNzg7CisxRDVEMjsxRDVEMjsxRDVEMjswMDc5OzAwNzk7CisxRDVEMzsxRDVEMzsxRDVEMzswMDdBOzAwN0E7CisxRDVENDsxRDVENDsxRDVENDswMDQxOzAwNDE7CisxRDVENTsxRDVENTsxRDVENTswMDQyOzAwNDI7CisxRDVENjsxRDVENjsxRDVENjswMDQzOzAwNDM7CisxRDVENzsxRDVENzsxRDVENzswMDQ0OzAwNDQ7CisxRDVEODsxRDVEODsxRDVEODswMDQ1OzAwNDU7CisxRDVEOTsxRDVEOTsxRDVEOTswMDQ2OzAwNDY7CisxRDVEQTsxRDVEQTsxRDVEQTswMDQ3OzAwNDc7CisxRDVEQjsxRDVEQjsxRDVEQjswMDQ4OzAwNDg7CisxRDVEQzsxRDVEQzsxRDVEQzswMDQ5OzAwNDk7CisxRDVERDsxRDVERDsxRDVERDswMDRBOzAwNEE7CisxRDVERTsxRDVERTsxRDVERTswMDRCOzAwNEI7CisxRDVERjsxRDVERjsxRDVERjswMDRDOzAwNEM7CisxRDVFMDsxRDVFMDsxRDVFMDswMDREOzAwNEQ7CisxRDVFMTsxRDVFMTsxRDVFMTswMDRFOzAwNEU7CisxRDVFMjsxRDVFMjsxRDVFMjswMDRGOzAwNEY7CisxRDVFMzsxRDVFMzsxRDVFMzswMDUwOzAwNTA7CisxRDVFNDsxRDVFNDsxRDVFNDswMDUxOzAwNTE7CisxRDVFNTsxRDVFNTsxRDVFNTswMDUyOzAwNTI7CisxRDVFNjsxRDVFNjsxRDVFNjswMDUzOzAwNTM7CisxRDVFNzsxRDVFNzsxRDVFNzswMDU0OzAwNTQ7CisxRDVFODsxRDVFODsxRDVFODswMDU1OzAwNTU7CisxRDVFOTsxRDVFOTsxRDVFOTswMDU2OzAwNTY7CisxRDVFQTsxRDVFQTsxRDVFQTswMDU3OzAwNTc7CisxRDVFQjsxRDVFQjsxRDVFQjswMDU4OzAwNTg7CisxRDVFQzsxRDVFQzsxRDVFQzswMDU5OzAwNTk7CisxRDVFRDsxRDVFRDsxRDVFRDswMDVBOzAwNUE7CisxRDVFRTsxRDVFRTsxRDVFRTswMDYxOzAwNjE7CisxRDVFRjsxRDVFRjsxRDVFRjswMDYyOzAwNjI7CisxRDVGMDsxRDVGMDsxRDVGMDswMDYzOzAwNjM7CisxRDVGMTsxRDVGMTsxRDVGMTswMDY0OzAwNjQ7CisxRDVGMjsxRDVGMjsxRDVGMjswMDY1OzAwNjU7CisxRDVGMzsxRDVGMzsxRDVGMzswMDY2OzAwNjY7CisxRDVGNDsxRDVGNDsxRDVGNDswMDY3OzAwNjc7CisxRDVGNTsxRDVGNTsxRDVGNTswMDY4OzAwNjg7CisxRDVGNjsxRDVGNjsxRDVGNjswMDY5OzAwNjk7CisxRDVGNzsxRDVGNzsxRDVGNzswMDZBOzAwNkE7CisxRDVGODsxRDVGODsxRDVGODswMDZCOzAwNkI7CisxRDVGOTsxRDVGOTsxRDVGOTswMDZDOzAwNkM7CisxRDVGQTsxRDVGQTsxRDVGQTswMDZEOzAwNkQ7CisxRDVGQjsxRDVGQjsxRDVGQjswMDZFOzAwNkU7CisxRDVGQzsxRDVGQzsxRDVGQzswMDZGOzAwNkY7CisxRDVGRDsxRDVGRDsxRDVGRDswMDcwOzAwNzA7CisxRDVGRTsxRDVGRTsxRDVGRTswMDcxOzAwNzE7CisxRDVGRjsxRDVGRjsxRDVGRjswMDcyOzAwNzI7CisxRDYwMDsxRDYwMDsxRDYwMDswMDczOzAwNzM7CisxRDYwMTsxRDYwMTsxRDYwMTswMDc0OzAwNzQ7CisxRDYwMjsxRDYwMjsxRDYwMjswMDc1OzAwNzU7CisxRDYwMzsxRDYwMzsxRDYwMzswMDc2OzAwNzY7CisxRDYwNDsxRDYwNDsxRDYwNDswMDc3OzAwNzc7CisxRDYwNTsxRDYwNTsxRDYwNTswMDc4OzAwNzg7CisxRDYwNjsxRDYwNjsxRDYwNjswMDc5OzAwNzk7CisxRDYwNzsxRDYwNzsxRDYwNzswMDdBOzAwN0E7CisxRDYwODsxRDYwODsxRDYwODswMDQxOzAwNDE7CisxRDYwOTsxRDYwOTsxRDYwOTswMDQyOzAwNDI7CisxRDYwQTsxRDYwQTsxRDYwQTswMDQzOzAwNDM7CisxRDYwQjsxRDYwQjsxRDYwQjswMDQ0OzAwNDQ7CisxRDYwQzsxRDYwQzsxRDYwQzswMDQ1OzAwNDU7CisxRDYwRDsxRDYwRDsxRDYwRDswMDQ2OzAwNDY7CisxRDYwRTsxRDYwRTsxRDYwRTswMDQ3OzAwNDc7CisxRDYwRjsxRDYwRjsxRDYwRjswMDQ4OzAwNDg7CisxRDYxMDsxRDYxMDsxRDYxMDswMDQ5OzAwNDk7CisxRDYxMTsxRDYxMTsxRDYxMTswMDRBOzAwNEE7CisxRDYxMjsxRDYxMjsxRDYxMjswMDRCOzAwNEI7CisxRDYxMzsxRDYxMzsxRDYxMzswMDRDOzAwNEM7CisxRDYxNDsxRDYxNDsxRDYxNDswMDREOzAwNEQ7CisxRDYxNTsxRDYxNTsxRDYxNTswMDRFOzAwNEU7CisxRDYxNjsxRDYxNjsxRDYxNjswMDRGOzAwNEY7CisxRDYxNzsxRDYxNzsxRDYxNzswMDUwOzAwNTA7CisxRDYxODsxRDYxODsxRDYxODswMDUxOzAwNTE7CisxRDYxOTsxRDYxOTsxRDYxOTswMDUyOzAwNTI7CisxRDYxQTsxRDYxQTsxRDYxQTswMDUzOzAwNTM7CisxRDYxQjsxRDYxQjsxRDYxQjswMDU0OzAwNTQ7CisxRDYxQzsxRDYxQzsxRDYxQzswMDU1OzAwNTU7CisxRDYxRDsxRDYxRDsxRDYxRDswMDU2OzAwNTY7CisxRDYxRTsxRDYxRTsxRDYxRTswMDU3OzAwNTc7CisxRDYxRjsxRDYxRjsxRDYxRjswMDU4OzAwNTg7CisxRDYyMDsxRDYyMDsxRDYyMDswMDU5OzAwNTk7CisxRDYyMTsxRDYyMTsxRDYyMTswMDVBOzAwNUE7CisxRDYyMjsxRDYyMjsxRDYyMjswMDYxOzAwNjE7CisxRDYyMzsxRDYyMzsxRDYyMzswMDYyOzAwNjI7CisxRDYyNDsxRDYyNDsxRDYyNDswMDYzOzAwNjM7CisxRDYyNTsxRDYyNTsxRDYyNTswMDY0OzAwNjQ7CisxRDYyNjsxRDYyNjsxRDYyNjswMDY1OzAwNjU7CisxRDYyNzsxRDYyNzsxRDYyNzswMDY2OzAwNjY7CisxRDYyODsxRDYyODsxRDYyODswMDY3OzAwNjc7CisxRDYyOTsxRDYyOTsxRDYyOTswMDY4OzAwNjg7CisxRDYyQTsxRDYyQTsxRDYyQTswMDY5OzAwNjk7CisxRDYyQjsxRDYyQjsxRDYyQjswMDZBOzAwNkE7CisxRDYyQzsxRDYyQzsxRDYyQzswMDZCOzAwNkI7CisxRDYyRDsxRDYyRDsxRDYyRDswMDZDOzAwNkM7CisxRDYyRTsxRDYyRTsxRDYyRTswMDZEOzAwNkQ7CisxRDYyRjsxRDYyRjsxRDYyRjswMDZFOzAwNkU7CisxRDYzMDsxRDYzMDsxRDYzMDswMDZGOzAwNkY7CisxRDYzMTsxRDYzMTsxRDYzMTswMDcwOzAwNzA7CisxRDYzMjsxRDYzMjsxRDYzMjswMDcxOzAwNzE7CisxRDYzMzsxRDYzMzsxRDYzMzswMDcyOzAwNzI7CisxRDYzNDsxRDYzNDsxRDYzNDswMDczOzAwNzM7CisxRDYzNTsxRDYzNTsxRDYzNTswMDc0OzAwNzQ7CisxRDYzNjsxRDYzNjsxRDYzNjswMDc1OzAwNzU7CisxRDYzNzsxRDYzNzsxRDYzNzswMDc2OzAwNzY7CisxRDYzODsxRDYzODsxRDYzODswMDc3OzAwNzc7CisxRDYzOTsxRDYzOTsxRDYzOTswMDc4OzAwNzg7CisxRDYzQTsxRDYzQTsxRDYzQTswMDc5OzAwNzk7CisxRDYzQjsxRDYzQjsxRDYzQjswMDdBOzAwN0E7CisxRDYzQzsxRDYzQzsxRDYzQzswMDQxOzAwNDE7CisxRDYzRDsxRDYzRDsxRDYzRDswMDQyOzAwNDI7CisxRDYzRTsxRDYzRTsxRDYzRTswMDQzOzAwNDM7CisxRDYzRjsxRDYzRjsxRDYzRjswMDQ0OzAwNDQ7CisxRDY0MDsxRDY0MDsxRDY0MDswMDQ1OzAwNDU7CisxRDY0MTsxRDY0MTsxRDY0MTswMDQ2OzAwNDY7CisxRDY0MjsxRDY0MjsxRDY0MjswMDQ3OzAwNDc7CisxRDY0MzsxRDY0MzsxRDY0MzswMDQ4OzAwNDg7CisxRDY0NDsxRDY0NDsxRDY0NDswMDQ5OzAwNDk7CisxRDY0NTsxRDY0NTsxRDY0NTswMDRBOzAwNEE7CisxRDY0NjsxRDY0NjsxRDY0NjswMDRCOzAwNEI7CisxRDY0NzsxRDY0NzsxRDY0NzswMDRDOzAwNEM7CisxRDY0ODsxRDY0ODsxRDY0ODswMDREOzAwNEQ7CisxRDY0OTsxRDY0OTsxRDY0OTswMDRFOzAwNEU7CisxRDY0QTsxRDY0QTsxRDY0QTswMDRGOzAwNEY7CisxRDY0QjsxRDY0QjsxRDY0QjswMDUwOzAwNTA7CisxRDY0QzsxRDY0QzsxRDY0QzswMDUxOzAwNTE7CisxRDY0RDsxRDY0RDsxRDY0RDswMDUyOzAwNTI7CisxRDY0RTsxRDY0RTsxRDY0RTswMDUzOzAwNTM7CisxRDY0RjsxRDY0RjsxRDY0RjswMDU0OzAwNTQ7CisxRDY1MDsxRDY1MDsxRDY1MDswMDU1OzAwNTU7CisxRDY1MTsxRDY1MTsxRDY1MTswMDU2OzAwNTY7CisxRDY1MjsxRDY1MjsxRDY1MjswMDU3OzAwNTc7CisxRDY1MzsxRDY1MzsxRDY1MzswMDU4OzAwNTg7CisxRDY1NDsxRDY1NDsxRDY1NDswMDU5OzAwNTk7CisxRDY1NTsxRDY1NTsxRDY1NTswMDVBOzAwNUE7CisxRDY1NjsxRDY1NjsxRDY1NjswMDYxOzAwNjE7CisxRDY1NzsxRDY1NzsxRDY1NzswMDYyOzAwNjI7CisxRDY1ODsxRDY1ODsxRDY1ODswMDYzOzAwNjM7CisxRDY1OTsxRDY1OTsxRDY1OTswMDY0OzAwNjQ7CisxRDY1QTsxRDY1QTsxRDY1QTswMDY1OzAwNjU7CisxRDY1QjsxRDY1QjsxRDY1QjswMDY2OzAwNjY7CisxRDY1QzsxRDY1QzsxRDY1QzswMDY3OzAwNjc7CisxRDY1RDsxRDY1RDsxRDY1RDswMDY4OzAwNjg7CisxRDY1RTsxRDY1RTsxRDY1RTswMDY5OzAwNjk7CisxRDY1RjsxRDY1RjsxRDY1RjswMDZBOzAwNkE7CisxRDY2MDsxRDY2MDsxRDY2MDswMDZCOzAwNkI7CisxRDY2MTsxRDY2MTsxRDY2MTswMDZDOzAwNkM7CisxRDY2MjsxRDY2MjsxRDY2MjswMDZEOzAwNkQ7CisxRDY2MzsxRDY2MzsxRDY2MzswMDZFOzAwNkU7CisxRDY2NDsxRDY2NDsxRDY2NDswMDZGOzAwNkY7CisxRDY2NTsxRDY2NTsxRDY2NTswMDcwOzAwNzA7CisxRDY2NjsxRDY2NjsxRDY2NjswMDcxOzAwNzE7CisxRDY2NzsxRDY2NzsxRDY2NzswMDcyOzAwNzI7CisxRDY2ODsxRDY2ODsxRDY2ODswMDczOzAwNzM7CisxRDY2OTsxRDY2OTsxRDY2OTswMDc0OzAwNzQ7CisxRDY2QTsxRDY2QTsxRDY2QTswMDc1OzAwNzU7CisxRDY2QjsxRDY2QjsxRDY2QjswMDc2OzAwNzY7CisxRDY2QzsxRDY2QzsxRDY2QzswMDc3OzAwNzc7CisxRDY2RDsxRDY2RDsxRDY2RDswMDc4OzAwNzg7CisxRDY2RTsxRDY2RTsxRDY2RTswMDc5OzAwNzk7CisxRDY2RjsxRDY2RjsxRDY2RjswMDdBOzAwN0E7CisxRDY3MDsxRDY3MDsxRDY3MDswMDQxOzAwNDE7CisxRDY3MTsxRDY3MTsxRDY3MTswMDQyOzAwNDI7CisxRDY3MjsxRDY3MjsxRDY3MjswMDQzOzAwNDM7CisxRDY3MzsxRDY3MzsxRDY3MzswMDQ0OzAwNDQ7CisxRDY3NDsxRDY3NDsxRDY3NDswMDQ1OzAwNDU7CisxRDY3NTsxRDY3NTsxRDY3NTswMDQ2OzAwNDY7CisxRDY3NjsxRDY3NjsxRDY3NjswMDQ3OzAwNDc7CisxRDY3NzsxRDY3NzsxRDY3NzswMDQ4OzAwNDg7CisxRDY3ODsxRDY3ODsxRDY3ODswMDQ5OzAwNDk7CisxRDY3OTsxRDY3OTsxRDY3OTswMDRBOzAwNEE7CisxRDY3QTsxRDY3QTsxRDY3QTswMDRCOzAwNEI7CisxRDY3QjsxRDY3QjsxRDY3QjswMDRDOzAwNEM7CisxRDY3QzsxRDY3QzsxRDY3QzswMDREOzAwNEQ7CisxRDY3RDsxRDY3RDsxRDY3RDswMDRFOzAwNEU7CisxRDY3RTsxRDY3RTsxRDY3RTswMDRGOzAwNEY7CisxRDY3RjsxRDY3RjsxRDY3RjswMDUwOzAwNTA7CisxRDY4MDsxRDY4MDsxRDY4MDswMDUxOzAwNTE7CisxRDY4MTsxRDY4MTsxRDY4MTswMDUyOzAwNTI7CisxRDY4MjsxRDY4MjsxRDY4MjswMDUzOzAwNTM7CisxRDY4MzsxRDY4MzsxRDY4MzswMDU0OzAwNTQ7CisxRDY4NDsxRDY4NDsxRDY4NDswMDU1OzAwNTU7CisxRDY4NTsxRDY4NTsxRDY4NTswMDU2OzAwNTY7CisxRDY4NjsxRDY4NjsxRDY4NjswMDU3OzAwNTc7CisxRDY4NzsxRDY4NzsxRDY4NzswMDU4OzAwNTg7CisxRDY4ODsxRDY4ODsxRDY4ODswMDU5OzAwNTk7CisxRDY4OTsxRDY4OTsxRDY4OTswMDVBOzAwNUE7CisxRDY4QTsxRDY4QTsxRDY4QTswMDYxOzAwNjE7CisxRDY4QjsxRDY4QjsxRDY4QjswMDYyOzAwNjI7CisxRDY4QzsxRDY4QzsxRDY4QzswMDYzOzAwNjM7CisxRDY4RDsxRDY4RDsxRDY4RDswMDY0OzAwNjQ7CisxRDY4RTsxRDY4RTsxRDY4RTswMDY1OzAwNjU7CisxRDY4RjsxRDY4RjsxRDY4RjswMDY2OzAwNjY7CisxRDY5MDsxRDY5MDsxRDY5MDswMDY3OzAwNjc7CisxRDY5MTsxRDY5MTsxRDY5MTswMDY4OzAwNjg7CisxRDY5MjsxRDY5MjsxRDY5MjswMDY5OzAwNjk7CisxRDY5MzsxRDY5MzsxRDY5MzswMDZBOzAwNkE7CisxRDY5NDsxRDY5NDsxRDY5NDswMDZCOzAwNkI7CisxRDY5NTsxRDY5NTsxRDY5NTswMDZDOzAwNkM7CisxRDY5NjsxRDY5NjsxRDY5NjswMDZEOzAwNkQ7CisxRDY5NzsxRDY5NzsxRDY5NzswMDZFOzAwNkU7CisxRDY5ODsxRDY5ODsxRDY5ODswMDZGOzAwNkY7CisxRDY5OTsxRDY5OTsxRDY5OTswMDcwOzAwNzA7CisxRDY5QTsxRDY5QTsxRDY5QTswMDcxOzAwNzE7CisxRDY5QjsxRDY5QjsxRDY5QjswMDcyOzAwNzI7CisxRDY5QzsxRDY5QzsxRDY5QzswMDczOzAwNzM7CisxRDY5RDsxRDY5RDsxRDY5RDswMDc0OzAwNzQ7CisxRDY5RTsxRDY5RTsxRDY5RTswMDc1OzAwNzU7CisxRDY5RjsxRDY5RjsxRDY5RjswMDc2OzAwNzY7CisxRDZBMDsxRDZBMDsxRDZBMDswMDc3OzAwNzc7CisxRDZBMTsxRDZBMTsxRDZBMTswMDc4OzAwNzg7CisxRDZBMjsxRDZBMjsxRDZBMjswMDc5OzAwNzk7CisxRDZBMzsxRDZBMzsxRDZBMzswMDdBOzAwN0E7CisxRDZBNDsxRDZBNDsxRDZBNDswMTMxOzAxMzE7CisxRDZBNTsxRDZBNTsxRDZBNTswMjM3OzAyMzc7CisxRDZBODsxRDZBODsxRDZBODswMzkxOzAzOTE7CisxRDZBOTsxRDZBOTsxRDZBOTswMzkyOzAzOTI7CisxRDZBQTsxRDZBQTsxRDZBQTswMzkzOzAzOTM7CisxRDZBQjsxRDZBQjsxRDZBQjswMzk0OzAzOTQ7CisxRDZBQzsxRDZBQzsxRDZBQzswMzk1OzAzOTU7CisxRDZBRDsxRDZBRDsxRDZBRDswMzk2OzAzOTY7CisxRDZBRTsxRDZBRTsxRDZBRTswMzk3OzAzOTc7CisxRDZBRjsxRDZBRjsxRDZBRjswMzk4OzAzOTg7CisxRDZCMDsxRDZCMDsxRDZCMDswMzk5OzAzOTk7CisxRDZCMTsxRDZCMTsxRDZCMTswMzlBOzAzOUE7CisxRDZCMjsxRDZCMjsxRDZCMjswMzlCOzAzOUI7CisxRDZCMzsxRDZCMzsxRDZCMzswMzlDOzAzOUM7CisxRDZCNDsxRDZCNDsxRDZCNDswMzlEOzAzOUQ7CisxRDZCNTsxRDZCNTsxRDZCNTswMzlFOzAzOUU7CisxRDZCNjsxRDZCNjsxRDZCNjswMzlGOzAzOUY7CisxRDZCNzsxRDZCNzsxRDZCNzswM0EwOzAzQTA7CisxRDZCODsxRDZCODsxRDZCODswM0ExOzAzQTE7CisxRDZCOTsxRDZCOTsxRDZCOTswMzk4OzAzOTg7CisxRDZCQTsxRDZCQTsxRDZCQTswM0EzOzAzQTM7CisxRDZCQjsxRDZCQjsxRDZCQjswM0E0OzAzQTQ7CisxRDZCQzsxRDZCQzsxRDZCQzswM0E1OzAzQTU7CisxRDZCRDsxRDZCRDsxRDZCRDswM0E2OzAzQTY7CisxRDZCRTsxRDZCRTsxRDZCRTswM0E3OzAzQTc7CisxRDZCRjsxRDZCRjsxRDZCRjswM0E4OzAzQTg7CisxRDZDMDsxRDZDMDsxRDZDMDswM0E5OzAzQTk7CisxRDZDMTsxRDZDMTsxRDZDMTsyMjA3OzIyMDc7CisxRDZDMjsxRDZDMjsxRDZDMjswM0IxOzAzQjE7CisxRDZDMzsxRDZDMzsxRDZDMzswM0IyOzAzQjI7CisxRDZDNDsxRDZDNDsxRDZDNDswM0IzOzAzQjM7CisxRDZDNTsxRDZDNTsxRDZDNTswM0I0OzAzQjQ7CisxRDZDNjsxRDZDNjsxRDZDNjswM0I1OzAzQjU7CisxRDZDNzsxRDZDNzsxRDZDNzswM0I2OzAzQjY7CisxRDZDODsxRDZDODsxRDZDODswM0I3OzAzQjc7CisxRDZDOTsxRDZDOTsxRDZDOTswM0I4OzAzQjg7CisxRDZDQTsxRDZDQTsxRDZDQTswM0I5OzAzQjk7CisxRDZDQjsxRDZDQjsxRDZDQjswM0JBOzAzQkE7CisxRDZDQzsxRDZDQzsxRDZDQzswM0JCOzAzQkI7CisxRDZDRDsxRDZDRDsxRDZDRDswM0JDOzAzQkM7CisxRDZDRTsxRDZDRTsxRDZDRTswM0JEOzAzQkQ7CisxRDZDRjsxRDZDRjsxRDZDRjswM0JFOzAzQkU7CisxRDZEMDsxRDZEMDsxRDZEMDswM0JGOzAzQkY7CisxRDZEMTsxRDZEMTsxRDZEMTswM0MwOzAzQzA7CisxRDZEMjsxRDZEMjsxRDZEMjswM0MxOzAzQzE7CisxRDZEMzsxRDZEMzsxRDZEMzswM0MyOzAzQzI7CisxRDZENDsxRDZENDsxRDZENDswM0MzOzAzQzM7CisxRDZENTsxRDZENTsxRDZENTswM0M0OzAzQzQ7CisxRDZENjsxRDZENjsxRDZENjswM0M1OzAzQzU7CisxRDZENzsxRDZENzsxRDZENzswM0M2OzAzQzY7CisxRDZEODsxRDZEODsxRDZEODswM0M3OzAzQzc7CisxRDZEOTsxRDZEOTsxRDZEOTswM0M4OzAzQzg7CisxRDZEQTsxRDZEQTsxRDZEQTswM0M5OzAzQzk7CisxRDZEQjsxRDZEQjsxRDZEQjsyMjAyOzIyMDI7CisxRDZEQzsxRDZEQzsxRDZEQzswM0I1OzAzQjU7CisxRDZERDsxRDZERDsxRDZERDswM0I4OzAzQjg7CisxRDZERTsxRDZERTsxRDZERTswM0JBOzAzQkE7CisxRDZERjsxRDZERjsxRDZERjswM0M2OzAzQzY7CisxRDZFMDsxRDZFMDsxRDZFMDswM0MxOzAzQzE7CisxRDZFMTsxRDZFMTsxRDZFMTswM0MwOzAzQzA7CisxRDZFMjsxRDZFMjsxRDZFMjswMzkxOzAzOTE7CisxRDZFMzsxRDZFMzsxRDZFMzswMzkyOzAzOTI7CisxRDZFNDsxRDZFNDsxRDZFNDswMzkzOzAzOTM7CisxRDZFNTsxRDZFNTsxRDZFNTswMzk0OzAzOTQ7CisxRDZFNjsxRDZFNjsxRDZFNjswMzk1OzAzOTU7CisxRDZFNzsxRDZFNzsxRDZFNzswMzk2OzAzOTY7CisxRDZFODsxRDZFODsxRDZFODswMzk3OzAzOTc7CisxRDZFOTsxRDZFOTsxRDZFOTswMzk4OzAzOTg7CisxRDZFQTsxRDZFQTsxRDZFQTswMzk5OzAzOTk7CisxRDZFQjsxRDZFQjsxRDZFQjswMzlBOzAzOUE7CisxRDZFQzsxRDZFQzsxRDZFQzswMzlCOzAzOUI7CisxRDZFRDsxRDZFRDsxRDZFRDswMzlDOzAzOUM7CisxRDZFRTsxRDZFRTsxRDZFRTswMzlEOzAzOUQ7CisxRDZFRjsxRDZFRjsxRDZFRjswMzlFOzAzOUU7CisxRDZGMDsxRDZGMDsxRDZGMDswMzlGOzAzOUY7CisxRDZGMTsxRDZGMTsxRDZGMTswM0EwOzAzQTA7CisxRDZGMjsxRDZGMjsxRDZGMjswM0ExOzAzQTE7CisxRDZGMzsxRDZGMzsxRDZGMzswMzk4OzAzOTg7CisxRDZGNDsxRDZGNDsxRDZGNDswM0EzOzAzQTM7CisxRDZGNTsxRDZGNTsxRDZGNTswM0E0OzAzQTQ7CisxRDZGNjsxRDZGNjsxRDZGNjswM0E1OzAzQTU7CisxRDZGNzsxRDZGNzsxRDZGNzswM0E2OzAzQTY7CisxRDZGODsxRDZGODsxRDZGODswM0E3OzAzQTc7CisxRDZGOTsxRDZGOTsxRDZGOTswM0E4OzAzQTg7CisxRDZGQTsxRDZGQTsxRDZGQTswM0E5OzAzQTk7CisxRDZGQjsxRDZGQjsxRDZGQjsyMjA3OzIyMDc7CisxRDZGQzsxRDZGQzsxRDZGQzswM0IxOzAzQjE7CisxRDZGRDsxRDZGRDsxRDZGRDswM0IyOzAzQjI7CisxRDZGRTsxRDZGRTsxRDZGRTswM0IzOzAzQjM7CisxRDZGRjsxRDZGRjsxRDZGRjswM0I0OzAzQjQ7CisxRDcwMDsxRDcwMDsxRDcwMDswM0I1OzAzQjU7CisxRDcwMTsxRDcwMTsxRDcwMTswM0I2OzAzQjY7CisxRDcwMjsxRDcwMjsxRDcwMjswM0I3OzAzQjc7CisxRDcwMzsxRDcwMzsxRDcwMzswM0I4OzAzQjg7CisxRDcwNDsxRDcwNDsxRDcwNDswM0I5OzAzQjk7CisxRDcwNTsxRDcwNTsxRDcwNTswM0JBOzAzQkE7CisxRDcwNjsxRDcwNjsxRDcwNjswM0JCOzAzQkI7CisxRDcwNzsxRDcwNzsxRDcwNzswM0JDOzAzQkM7CisxRDcwODsxRDcwODsxRDcwODswM0JEOzAzQkQ7CisxRDcwOTsxRDcwOTsxRDcwOTswM0JFOzAzQkU7CisxRDcwQTsxRDcwQTsxRDcwQTswM0JGOzAzQkY7CisxRDcwQjsxRDcwQjsxRDcwQjswM0MwOzAzQzA7CisxRDcwQzsxRDcwQzsxRDcwQzswM0MxOzAzQzE7CisxRDcwRDsxRDcwRDsxRDcwRDswM0MyOzAzQzI7CisxRDcwRTsxRDcwRTsxRDcwRTswM0MzOzAzQzM7CisxRDcwRjsxRDcwRjsxRDcwRjswM0M0OzAzQzQ7CisxRDcxMDsxRDcxMDsxRDcxMDswM0M1OzAzQzU7CisxRDcxMTsxRDcxMTsxRDcxMTswM0M2OzAzQzY7CisxRDcxMjsxRDcxMjsxRDcxMjswM0M3OzAzQzc7CisxRDcxMzsxRDcxMzsxRDcxMzswM0M4OzAzQzg7CisxRDcxNDsxRDcxNDsxRDcxNDswM0M5OzAzQzk7CisxRDcxNTsxRDcxNTsxRDcxNTsyMjAyOzIyMDI7CisxRDcxNjsxRDcxNjsxRDcxNjswM0I1OzAzQjU7CisxRDcxNzsxRDcxNzsxRDcxNzswM0I4OzAzQjg7CisxRDcxODsxRDcxODsxRDcxODswM0JBOzAzQkE7CisxRDcxOTsxRDcxOTsxRDcxOTswM0M2OzAzQzY7CisxRDcxQTsxRDcxQTsxRDcxQTswM0MxOzAzQzE7CisxRDcxQjsxRDcxQjsxRDcxQjswM0MwOzAzQzA7CisxRDcxQzsxRDcxQzsxRDcxQzswMzkxOzAzOTE7CisxRDcxRDsxRDcxRDsxRDcxRDswMzkyOzAzOTI7CisxRDcxRTsxRDcxRTsxRDcxRTswMzkzOzAzOTM7CisxRDcxRjsxRDcxRjsxRDcxRjswMzk0OzAzOTQ7CisxRDcyMDsxRDcyMDsxRDcyMDswMzk1OzAzOTU7CisxRDcyMTsxRDcyMTsxRDcyMTswMzk2OzAzOTY7CisxRDcyMjsxRDcyMjsxRDcyMjswMzk3OzAzOTc7CisxRDcyMzsxRDcyMzsxRDcyMzswMzk4OzAzOTg7CisxRDcyNDsxRDcyNDsxRDcyNDswMzk5OzAzOTk7CisxRDcyNTsxRDcyNTsxRDcyNTswMzlBOzAzOUE7CisxRDcyNjsxRDcyNjsxRDcyNjswMzlCOzAzOUI7CisxRDcyNzsxRDcyNzsxRDcyNzswMzlDOzAzOUM7CisxRDcyODsxRDcyODsxRDcyODswMzlEOzAzOUQ7CisxRDcyOTsxRDcyOTsxRDcyOTswMzlFOzAzOUU7CisxRDcyQTsxRDcyQTsxRDcyQTswMzlGOzAzOUY7CisxRDcyQjsxRDcyQjsxRDcyQjswM0EwOzAzQTA7CisxRDcyQzsxRDcyQzsxRDcyQzswM0ExOzAzQTE7CisxRDcyRDsxRDcyRDsxRDcyRDswMzk4OzAzOTg7CisxRDcyRTsxRDcyRTsxRDcyRTswM0EzOzAzQTM7CisxRDcyRjsxRDcyRjsxRDcyRjswM0E0OzAzQTQ7CisxRDczMDsxRDczMDsxRDczMDswM0E1OzAzQTU7CisxRDczMTsxRDczMTsxRDczMTswM0E2OzAzQTY7CisxRDczMjsxRDczMjsxRDczMjswM0E3OzAzQTc7CisxRDczMzsxRDczMzsxRDczMzswM0E4OzAzQTg7CisxRDczNDsxRDczNDsxRDczNDswM0E5OzAzQTk7CisxRDczNTsxRDczNTsxRDczNTsyMjA3OzIyMDc7CisxRDczNjsxRDczNjsxRDczNjswM0IxOzAzQjE7CisxRDczNzsxRDczNzsxRDczNzswM0IyOzAzQjI7CisxRDczODsxRDczODsxRDczODswM0IzOzAzQjM7CisxRDczOTsxRDczOTsxRDczOTswM0I0OzAzQjQ7CisxRDczQTsxRDczQTsxRDczQTswM0I1OzAzQjU7CisxRDczQjsxRDczQjsxRDczQjswM0I2OzAzQjY7CisxRDczQzsxRDczQzsxRDczQzswM0I3OzAzQjc7CisxRDczRDsxRDczRDsxRDczRDswM0I4OzAzQjg7CisxRDczRTsxRDczRTsxRDczRTswM0I5OzAzQjk7CisxRDczRjsxRDczRjsxRDczRjswM0JBOzAzQkE7CisxRDc0MDsxRDc0MDsxRDc0MDswM0JCOzAzQkI7CisxRDc0MTsxRDc0MTsxRDc0MTswM0JDOzAzQkM7CisxRDc0MjsxRDc0MjsxRDc0MjswM0JEOzAzQkQ7CisxRDc0MzsxRDc0MzsxRDc0MzswM0JFOzAzQkU7CisxRDc0NDsxRDc0NDsxRDc0NDswM0JGOzAzQkY7CisxRDc0NTsxRDc0NTsxRDc0NTswM0MwOzAzQzA7CisxRDc0NjsxRDc0NjsxRDc0NjswM0MxOzAzQzE7CisxRDc0NzsxRDc0NzsxRDc0NzswM0MyOzAzQzI7CisxRDc0ODsxRDc0ODsxRDc0ODswM0MzOzAzQzM7CisxRDc0OTsxRDc0OTsxRDc0OTswM0M0OzAzQzQ7CisxRDc0QTsxRDc0QTsxRDc0QTswM0M1OzAzQzU7CisxRDc0QjsxRDc0QjsxRDc0QjswM0M2OzAzQzY7CisxRDc0QzsxRDc0QzsxRDc0QzswM0M3OzAzQzc7CisxRDc0RDsxRDc0RDsxRDc0RDswM0M4OzAzQzg7CisxRDc0RTsxRDc0RTsxRDc0RTswM0M5OzAzQzk7CisxRDc0RjsxRDc0RjsxRDc0RjsyMjAyOzIyMDI7CisxRDc1MDsxRDc1MDsxRDc1MDswM0I1OzAzQjU7CisxRDc1MTsxRDc1MTsxRDc1MTswM0I4OzAzQjg7CisxRDc1MjsxRDc1MjsxRDc1MjswM0JBOzAzQkE7CisxRDc1MzsxRDc1MzsxRDc1MzswM0M2OzAzQzY7CisxRDc1NDsxRDc1NDsxRDc1NDswM0MxOzAzQzE7CisxRDc1NTsxRDc1NTsxRDc1NTswM0MwOzAzQzA7CisxRDc1NjsxRDc1NjsxRDc1NjswMzkxOzAzOTE7CisxRDc1NzsxRDc1NzsxRDc1NzswMzkyOzAzOTI7CisxRDc1ODsxRDc1ODsxRDc1ODswMzkzOzAzOTM7CisxRDc1OTsxRDc1OTsxRDc1OTswMzk0OzAzOTQ7CisxRDc1QTsxRDc1QTsxRDc1QTswMzk1OzAzOTU7CisxRDc1QjsxRDc1QjsxRDc1QjswMzk2OzAzOTY7CisxRDc1QzsxRDc1QzsxRDc1QzswMzk3OzAzOTc7CisxRDc1RDsxRDc1RDsxRDc1RDswMzk4OzAzOTg7CisxRDc1RTsxRDc1RTsxRDc1RTswMzk5OzAzOTk7CisxRDc1RjsxRDc1RjsxRDc1RjswMzlBOzAzOUE7CisxRDc2MDsxRDc2MDsxRDc2MDswMzlCOzAzOUI7CisxRDc2MTsxRDc2MTsxRDc2MTswMzlDOzAzOUM7CisxRDc2MjsxRDc2MjsxRDc2MjswMzlEOzAzOUQ7CisxRDc2MzsxRDc2MzsxRDc2MzswMzlFOzAzOUU7CisxRDc2NDsxRDc2NDsxRDc2NDswMzlGOzAzOUY7CisxRDc2NTsxRDc2NTsxRDc2NTswM0EwOzAzQTA7CisxRDc2NjsxRDc2NjsxRDc2NjswM0ExOzAzQTE7CisxRDc2NzsxRDc2NzsxRDc2NzswMzk4OzAzOTg7CisxRDc2ODsxRDc2ODsxRDc2ODswM0EzOzAzQTM7CisxRDc2OTsxRDc2OTsxRDc2OTswM0E0OzAzQTQ7CisxRDc2QTsxRDc2QTsxRDc2QTswM0E1OzAzQTU7CisxRDc2QjsxRDc2QjsxRDc2QjswM0E2OzAzQTY7CisxRDc2QzsxRDc2QzsxRDc2QzswM0E3OzAzQTc7CisxRDc2RDsxRDc2RDsxRDc2RDswM0E4OzAzQTg7CisxRDc2RTsxRDc2RTsxRDc2RTswM0E5OzAzQTk7CisxRDc2RjsxRDc2RjsxRDc2RjsyMjA3OzIyMDc7CisxRDc3MDsxRDc3MDsxRDc3MDswM0IxOzAzQjE7CisxRDc3MTsxRDc3MTsxRDc3MTswM0IyOzAzQjI7CisxRDc3MjsxRDc3MjsxRDc3MjswM0IzOzAzQjM7CisxRDc3MzsxRDc3MzsxRDc3MzswM0I0OzAzQjQ7CisxRDc3NDsxRDc3NDsxRDc3NDswM0I1OzAzQjU7CisxRDc3NTsxRDc3NTsxRDc3NTswM0I2OzAzQjY7CisxRDc3NjsxRDc3NjsxRDc3NjswM0I3OzAzQjc7CisxRDc3NzsxRDc3NzsxRDc3NzswM0I4OzAzQjg7CisxRDc3ODsxRDc3ODsxRDc3ODswM0I5OzAzQjk7CisxRDc3OTsxRDc3OTsxRDc3OTswM0JBOzAzQkE7CisxRDc3QTsxRDc3QTsxRDc3QTswM0JCOzAzQkI7CisxRDc3QjsxRDc3QjsxRDc3QjswM0JDOzAzQkM7CisxRDc3QzsxRDc3QzsxRDc3QzswM0JEOzAzQkQ7CisxRDc3RDsxRDc3RDsxRDc3RDswM0JFOzAzQkU7CisxRDc3RTsxRDc3RTsxRDc3RTswM0JGOzAzQkY7CisxRDc3RjsxRDc3RjsxRDc3RjswM0MwOzAzQzA7CisxRDc4MDsxRDc4MDsxRDc4MDswM0MxOzAzQzE7CisxRDc4MTsxRDc4MTsxRDc4MTswM0MyOzAzQzI7CisxRDc4MjsxRDc4MjsxRDc4MjswM0MzOzAzQzM7CisxRDc4MzsxRDc4MzsxRDc4MzswM0M0OzAzQzQ7CisxRDc4NDsxRDc4NDsxRDc4NDswM0M1OzAzQzU7CisxRDc4NTsxRDc4NTsxRDc4NTswM0M2OzAzQzY7CisxRDc4NjsxRDc4NjsxRDc4NjswM0M3OzAzQzc7CisxRDc4NzsxRDc4NzsxRDc4NzswM0M4OzAzQzg7CisxRDc4ODsxRDc4ODsxRDc4ODswM0M5OzAzQzk7CisxRDc4OTsxRDc4OTsxRDc4OTsyMjAyOzIyMDI7CisxRDc4QTsxRDc4QTsxRDc4QTswM0I1OzAzQjU7CisxRDc4QjsxRDc4QjsxRDc4QjswM0I4OzAzQjg7CisxRDc4QzsxRDc4QzsxRDc4QzswM0JBOzAzQkE7CisxRDc4RDsxRDc4RDsxRDc4RDswM0M2OzAzQzY7CisxRDc4RTsxRDc4RTsxRDc4RTswM0MxOzAzQzE7CisxRDc4RjsxRDc4RjsxRDc4RjswM0MwOzAzQzA7CisxRDc5MDsxRDc5MDsxRDc5MDswMzkxOzAzOTE7CisxRDc5MTsxRDc5MTsxRDc5MTswMzkyOzAzOTI7CisxRDc5MjsxRDc5MjsxRDc5MjswMzkzOzAzOTM7CisxRDc5MzsxRDc5MzsxRDc5MzswMzk0OzAzOTQ7CisxRDc5NDsxRDc5NDsxRDc5NDswMzk1OzAzOTU7CisxRDc5NTsxRDc5NTsxRDc5NTswMzk2OzAzOTY7CisxRDc5NjsxRDc5NjsxRDc5NjswMzk3OzAzOTc7CisxRDc5NzsxRDc5NzsxRDc5NzswMzk4OzAzOTg7CisxRDc5ODsxRDc5ODsxRDc5ODswMzk5OzAzOTk7CisxRDc5OTsxRDc5OTsxRDc5OTswMzlBOzAzOUE7CisxRDc5QTsxRDc5QTsxRDc5QTswMzlCOzAzOUI7CisxRDc5QjsxRDc5QjsxRDc5QjswMzlDOzAzOUM7CisxRDc5QzsxRDc5QzsxRDc5QzswMzlEOzAzOUQ7CisxRDc5RDsxRDc5RDsxRDc5RDswMzlFOzAzOUU7CisxRDc5RTsxRDc5RTsxRDc5RTswMzlGOzAzOUY7CisxRDc5RjsxRDc5RjsxRDc5RjswM0EwOzAzQTA7CisxRDdBMDsxRDdBMDsxRDdBMDswM0ExOzAzQTE7CisxRDdBMTsxRDdBMTsxRDdBMTswMzk4OzAzOTg7CisxRDdBMjsxRDdBMjsxRDdBMjswM0EzOzAzQTM7CisxRDdBMzsxRDdBMzsxRDdBMzswM0E0OzAzQTQ7CisxRDdBNDsxRDdBNDsxRDdBNDswM0E1OzAzQTU7CisxRDdBNTsxRDdBNTsxRDdBNTswM0E2OzAzQTY7CisxRDdBNjsxRDdBNjsxRDdBNjswM0E3OzAzQTc7CisxRDdBNzsxRDdBNzsxRDdBNzswM0E4OzAzQTg7CisxRDdBODsxRDdBODsxRDdBODswM0E5OzAzQTk7CisxRDdBOTsxRDdBOTsxRDdBOTsyMjA3OzIyMDc7CisxRDdBQTsxRDdBQTsxRDdBQTswM0IxOzAzQjE7CisxRDdBQjsxRDdBQjsxRDdBQjswM0IyOzAzQjI7CisxRDdBQzsxRDdBQzsxRDdBQzswM0IzOzAzQjM7CisxRDdBRDsxRDdBRDsxRDdBRDswM0I0OzAzQjQ7CisxRDdBRTsxRDdBRTsxRDdBRTswM0I1OzAzQjU7CisxRDdBRjsxRDdBRjsxRDdBRjswM0I2OzAzQjY7CisxRDdCMDsxRDdCMDsxRDdCMDswM0I3OzAzQjc7CisxRDdCMTsxRDdCMTsxRDdCMTswM0I4OzAzQjg7CisxRDdCMjsxRDdCMjsxRDdCMjswM0I5OzAzQjk7CisxRDdCMzsxRDdCMzsxRDdCMzswM0JBOzAzQkE7CisxRDdCNDsxRDdCNDsxRDdCNDswM0JCOzAzQkI7CisxRDdCNTsxRDdCNTsxRDdCNTswM0JDOzAzQkM7CisxRDdCNjsxRDdCNjsxRDdCNjswM0JEOzAzQkQ7CisxRDdCNzsxRDdCNzsxRDdCNzswM0JFOzAzQkU7CisxRDdCODsxRDdCODsxRDdCODswM0JGOzAzQkY7CisxRDdCOTsxRDdCOTsxRDdCOTswM0MwOzAzQzA7CisxRDdCQTsxRDdCQTsxRDdCQTswM0MxOzAzQzE7CisxRDdCQjsxRDdCQjsxRDdCQjswM0MyOzAzQzI7CisxRDdCQzsxRDdCQzsxRDdCQzswM0MzOzAzQzM7CisxRDdCRDsxRDdCRDsxRDdCRDswM0M0OzAzQzQ7CisxRDdCRTsxRDdCRTsxRDdCRTswM0M1OzAzQzU7CisxRDdCRjsxRDdCRjsxRDdCRjswM0M2OzAzQzY7CisxRDdDMDsxRDdDMDsxRDdDMDswM0M3OzAzQzc7CisxRDdDMTsxRDdDMTsxRDdDMTswM0M4OzAzQzg7CisxRDdDMjsxRDdDMjsxRDdDMjswM0M5OzAzQzk7CisxRDdDMzsxRDdDMzsxRDdDMzsyMjAyOzIyMDI7CisxRDdDNDsxRDdDNDsxRDdDNDswM0I1OzAzQjU7CisxRDdDNTsxRDdDNTsxRDdDNTswM0I4OzAzQjg7CisxRDdDNjsxRDdDNjsxRDdDNjswM0JBOzAzQkE7CisxRDdDNzsxRDdDNzsxRDdDNzswM0M2OzAzQzY7CisxRDdDODsxRDdDODsxRDdDODswM0MxOzAzQzE7CisxRDdDOTsxRDdDOTsxRDdDOTswM0MwOzAzQzA7CisxRDdDRTsxRDdDRTsxRDdDRTswMDMwOzAwMzA7CisxRDdDRjsxRDdDRjsxRDdDRjswMDMxOzAwMzE7CisxRDdEMDsxRDdEMDsxRDdEMDswMDMyOzAwMzI7CisxRDdEMTsxRDdEMTsxRDdEMTswMDMzOzAwMzM7CisxRDdEMjsxRDdEMjsxRDdEMjswMDM0OzAwMzQ7CisxRDdEMzsxRDdEMzsxRDdEMzswMDM1OzAwMzU7CisxRDdENDsxRDdENDsxRDdENDswMDM2OzAwMzY7CisxRDdENTsxRDdENTsxRDdENTswMDM3OzAwMzc7CisxRDdENjsxRDdENjsxRDdENjswMDM4OzAwMzg7CisxRDdENzsxRDdENzsxRDdENzswMDM5OzAwMzk7CisxRDdEODsxRDdEODsxRDdEODswMDMwOzAwMzA7CisxRDdEOTsxRDdEOTsxRDdEOTswMDMxOzAwMzE7CisxRDdEQTsxRDdEQTsxRDdEQTswMDMyOzAwMzI7CisxRDdEQjsxRDdEQjsxRDdEQjswMDMzOzAwMzM7CisxRDdEQzsxRDdEQzsxRDdEQzswMDM0OzAwMzQ7CisxRDdERDsxRDdERDsxRDdERDswMDM1OzAwMzU7CisxRDdERTsxRDdERTsxRDdERTswMDM2OzAwMzY7CisxRDdERjsxRDdERjsxRDdERjswMDM3OzAwMzc7CisxRDdFMDsxRDdFMDsxRDdFMDswMDM4OzAwMzg7CisxRDdFMTsxRDdFMTsxRDdFMTswMDM5OzAwMzk7CisxRDdFMjsxRDdFMjsxRDdFMjswMDMwOzAwMzA7CisxRDdFMzsxRDdFMzsxRDdFMzswMDMxOzAwMzE7CisxRDdFNDsxRDdFNDsxRDdFNDswMDMyOzAwMzI7CisxRDdFNTsxRDdFNTsxRDdFNTswMDMzOzAwMzM7CisxRDdFNjsxRDdFNjsxRDdFNjswMDM0OzAwMzQ7CisxRDdFNzsxRDdFNzsxRDdFNzswMDM1OzAwMzU7CisxRDdFODsxRDdFODsxRDdFODswMDM2OzAwMzY7CisxRDdFOTsxRDdFOTsxRDdFOTswMDM3OzAwMzc7CisxRDdFQTsxRDdFQTsxRDdFQTswMDM4OzAwMzg7CisxRDdFQjsxRDdFQjsxRDdFQjswMDM5OzAwMzk7CisxRDdFQzsxRDdFQzsxRDdFQzswMDMwOzAwMzA7CisxRDdFRDsxRDdFRDsxRDdFRDswMDMxOzAwMzE7CisxRDdFRTsxRDdFRTsxRDdFRTswMDMyOzAwMzI7CisxRDdFRjsxRDdFRjsxRDdFRjswMDMzOzAwMzM7CisxRDdGMDsxRDdGMDsxRDdGMDswMDM0OzAwMzQ7CisxRDdGMTsxRDdGMTsxRDdGMTswMDM1OzAwMzU7CisxRDdGMjsxRDdGMjsxRDdGMjswMDM2OzAwMzY7CisxRDdGMzsxRDdGMzsxRDdGMzswMDM3OzAwMzc7CisxRDdGNDsxRDdGNDsxRDdGNDswMDM4OzAwMzg7CisxRDdGNTsxRDdGNTsxRDdGNTswMDM5OzAwMzk7CisxRDdGNjsxRDdGNjsxRDdGNjswMDMwOzAwMzA7CisxRDdGNzsxRDdGNzsxRDdGNzswMDMxOzAwMzE7CisxRDdGODsxRDdGODsxRDdGODswMDMyOzAwMzI7CisxRDdGOTsxRDdGOTsxRDdGOTswMDMzOzAwMzM7CisxRDdGQTsxRDdGQTsxRDdGQTswMDM0OzAwMzQ7CisxRDdGQjsxRDdGQjsxRDdGQjswMDM1OzAwMzU7CisxRDdGQzsxRDdGQzsxRDdGQzswMDM2OzAwMzY7CisxRDdGRDsxRDdGRDsxRDdGRDswMDM3OzAwMzc7CisxRDdGRTsxRDdGRTsxRDdGRTswMDM4OzAwMzg7CisxRDdGRjsxRDdGRjsxRDdGRjswMDM5OzAwMzk7CisyRjgwMDs0RTNEOzRFM0Q7NEUzRDs0RTNEOworMkY4MDE7NEUzODs0RTM4OzRFMzg7NEUzODsKKzJGODAyOzRFNDE7NEU0MTs0RTQxOzRFNDE7CisyRjgwMzsyMDEyMjsyMDEyMjsyMDEyMjsyMDEyMjsKKzJGODA0OzRGNjA7NEY2MDs0RjYwOzRGNjA7CisyRjgwNTs0RkFFOzRGQUU7NEZBRTs0RkFFOworMkY4MDY7NEZCQjs0RkJCOzRGQkI7NEZCQjsKKzJGODA3OzUwMDI7NTAwMjs1MDAyOzUwMDI7CisyRjgwODs1MDdBOzUwN0E7NTA3QTs1MDdBOworMkY4MDk7NTA5OTs1MDk5OzUwOTk7NTA5OTsKKzJGODBBOzUwRTc7NTBFNzs1MEU3OzUwRTc7CisyRjgwQjs1MENGOzUwQ0Y7NTBDRjs1MENGOworMkY4MEM7MzQ5RTszNDlFOzM0OUU7MzQ5RTsKKzJGODBEOzIwNjNBOzIwNjNBOzIwNjNBOzIwNjNBOworMkY4MEU7NTE0RDs1MTREOzUxNEQ7NTE0RDsKKzJGODBGOzUxNTQ7NTE1NDs1MTU0OzUxNTQ7CisyRjgxMDs1MTY0OzUxNjQ7NTE2NDs1MTY0OworMkY4MTE7NTE3Nzs1MTc3OzUxNzc7NTE3NzsKKzJGODEyOzIwNTFDOzIwNTFDOzIwNTFDOzIwNTFDOworMkY4MTM7MzRCOTszNEI5OzM0Qjk7MzRCOTsKKzJGODE0OzUxNjc7NTE2Nzs1MTY3OzUxNjc7CisyRjgxNTs1MThEOzUxOEQ7NTE4RDs1MThEOworMkY4MTY7MjA1NEI7MjA1NEI7MjA1NEI7MjA1NEI7CisyRjgxNzs1MTk3OzUxOTc7NTE5Nzs1MTk3OworMkY4MTg7NTFBNDs1MUE0OzUxQTQ7NTFBNDsKKzJGODE5OzRFQ0M7NEVDQzs0RUNDOzRFQ0M7CisyRjgxQTs1MUFDOzUxQUM7NTFBQzs1MUFDOworMkY4MUI7NTFCNTs1MUI1OzUxQjU7NTFCNTsKKzJGODFDOzI5MURGOzI5MURGOzI5MURGOzI5MURGOworMkY4MUQ7NTFGNTs1MUY1OzUxRjU7NTFGNTsKKzJGODFFOzUyMDM7NTIwMzs1MjAzOzUyMDM7CisyRjgxRjszNERGOzM0REY7MzRERjszNERGOworMkY4MjA7NTIzQjs1MjNCOzUyM0I7NTIzQjsKKzJGODIxOzUyNDY7NTI0Njs1MjQ2OzUyNDY7CisyRjgyMjs1MjcyOzUyNzI7NTI3Mjs1MjcyOworMkY4MjM7NTI3Nzs1Mjc3OzUyNzc7NTI3NzsKKzJGODI0OzM1MTU7MzUxNTszNTE1OzM1MTU7CisyRjgyNTs1MkM3OzUyQzc7NTJDNzs1MkM3OworMkY4MjY7NTJDOTs1MkM5OzUyQzk7NTJDOTsKKzJGODI3OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CisyRjgyODs1MkZBOzUyRkE7NTJGQTs1MkZBOworMkY4Mjk7NTMwNTs1MzA1OzUzMDU7NTMwNTsKKzJGODJBOzUzMDY7NTMwNjs1MzA2OzUzMDY7CisyRjgyQjs1MzE3OzUzMTc7NTMxNzs1MzE3OworMkY4MkM7NTM0OTs1MzQ5OzUzNDk7NTM0OTsKKzJGODJEOzUzNTE7NTM1MTs1MzUxOzUzNTE7CisyRjgyRTs1MzVBOzUzNUE7NTM1QTs1MzVBOworMkY4MkY7NTM3Mzs1MzczOzUzNzM7NTM3MzsKKzJGODMwOzUzN0Q7NTM3RDs1MzdEOzUzN0Q7CisyRjgzMTs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzI7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODMzOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzNDsyMEEyQzsyMEEyQzsyMEEyQzsyMEEyQzsKKzJGODM1OzcwNzA7NzA3MDs3MDcwOzcwNzA7CisyRjgzNjs1M0NBOzUzQ0E7NTNDQTs1M0NBOworMkY4Mzc7NTNERjs1M0RGOzUzREY7NTNERjsKKzJGODM4OzIwQjYzOzIwQjYzOzIwQjYzOzIwQjYzOworMkY4Mzk7NTNFQjs1M0VCOzUzRUI7NTNFQjsKKzJGODNBOzUzRjE7NTNGMTs1M0YxOzUzRjE7CisyRjgzQjs1NDA2OzU0MDY7NTQwNjs1NDA2OworMkY4M0M7NTQ5RTs1NDlFOzU0OUU7NTQ5RTsKKzJGODNEOzU0Mzg7NTQzODs1NDM4OzU0Mzg7CisyRjgzRTs1NDQ4OzU0NDg7NTQ0ODs1NDQ4OworMkY4M0Y7NTQ2ODs1NDY4OzU0Njg7NTQ2ODsKKzJGODQwOzU0QTI7NTRBMjs1NEEyOzU0QTI7CisyRjg0MTs1NEY2OzU0RjY7NTRGNjs1NEY2OworMkY4NDI7NTUxMDs1NTEwOzU1MTA7NTUxMDsKKzJGODQzOzU1NTM7NTU1Mzs1NTUzOzU1NTM7CisyRjg0NDs1NTYzOzU1NjM7NTU2Mzs1NTYzOworMkY4NDU7NTU4NDs1NTg0OzU1ODQ7NTU4NDsKKzJGODQ2OzU1ODQ7NTU4NDs1NTg0OzU1ODQ7CisyRjg0Nzs1NTk5OzU1OTk7NTU5OTs1NTk5OworMkY4NDg7NTVBQjs1NUFCOzU1QUI7NTVBQjsKKzJGODQ5OzU1QjM7NTVCMzs1NUIzOzU1QjM7CisyRjg0QTs1NUMyOzU1QzI7NTVDMjs1NUMyOworMkY4NEI7NTcxNjs1NzE2OzU3MTY7NTcxNjsKKzJGODRDOzU2MDY7NTYwNjs1NjA2OzU2MDY7CisyRjg0RDs1NzE3OzU3MTc7NTcxNzs1NzE3OworMkY4NEU7NTY1MTs1NjUxOzU2NTE7NTY1MTsKKzJGODRGOzU2NzQ7NTY3NDs1Njc0OzU2NzQ7CisyRjg1MDs1MjA3OzUyMDc7NTIwNzs1MjA3OworMkY4NTE7NThFRTs1OEVFOzU4RUU7NThFRTsKKzJGODUyOzU3Q0U7NTdDRTs1N0NFOzU3Q0U7CisyRjg1Mzs1N0Y0OzU3RjQ7NTdGNDs1N0Y0OworMkY4NTQ7NTgwRDs1ODBEOzU4MEQ7NTgwRDsKKzJGODU1OzU3OEI7NTc4Qjs1NzhCOzU3OEI7CisyRjg1Njs1ODMyOzU4MzI7NTgzMjs1ODMyOworMkY4NTc7NTgzMTs1ODMxOzU4MzE7NTgzMTsKKzJGODU4OzU4QUM7NThBQzs1OEFDOzU4QUM7CisyRjg1OTsyMTRFNDsyMTRFNDsyMTRFNDsyMTRFNDsKKzJGODVBOzU4RjI7NThGMjs1OEYyOzU4RjI7CisyRjg1Qjs1OEY3OzU4Rjc7NThGNzs1OEY3OworMkY4NUM7NTkwNjs1OTA2OzU5MDY7NTkwNjsKKzJGODVEOzU5MUE7NTkxQTs1OTFBOzU5MUE7CisyRjg1RTs1OTIyOzU5MjI7NTkyMjs1OTIyOworMkY4NUY7NTk2Mjs1OTYyOzU5NjI7NTk2MjsKKzJGODYwOzIxNkE4OzIxNkE4OzIxNkE4OzIxNkE4OworMkY4NjE7MjE2RUE7MjE2RUE7MjE2RUE7MjE2RUE7CisyRjg2Mjs1OUVDOzU5RUM7NTlFQzs1OUVDOworMkY4NjM7NUExQjs1QTFCOzVBMUI7NUExQjsKKzJGODY0OzVBMjc7NUEyNzs1QTI3OzVBMjc7CisyRjg2NTs1OUQ4OzU5RDg7NTlEODs1OUQ4OworMkY4NjY7NUE2Njs1QTY2OzVBNjY7NUE2NjsKKzJGODY3OzM2RUU7MzZFRTszNkVFOzM2RUU7CisyRjg2ODszNkZDOzM2RkM7MzZGQzszNkZDOworMkY4Njk7NUIwODs1QjA4OzVCMDg7NUIwODsKKzJGODZBOzVCM0U7NUIzRTs1QjNFOzVCM0U7CisyRjg2Qjs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkM7MjE5Qzg7MjE5Qzg7MjE5Qzg7MjE5Qzg7CisyRjg2RDs1QkMzOzVCQzM7NUJDMzs1QkMzOworMkY4NkU7NUJEODs1QkQ4OzVCRDg7NUJEODsKKzJGODZGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CisyRjg3MDs1QkYzOzVCRjM7NUJGMzs1QkYzOworMkY4NzE7MjFCMTg7MjFCMTg7MjFCMTg7MjFCMTg7CisyRjg3Mjs1QkZGOzVCRkY7NUJGRjs1QkZGOworMkY4NzM7NUMwNjs1QzA2OzVDMDY7NUMwNjsKKzJGODc0OzVGNTM7NUY1Mzs1RjUzOzVGNTM7CisyRjg3NTs1QzIyOzVDMjI7NUMyMjs1QzIyOworMkY4NzY7Mzc4MTszNzgxOzM3ODE7Mzc4MTsKKzJGODc3OzVDNjA7NUM2MDs1QzYwOzVDNjA7CisyRjg3ODs1QzZFOzVDNkU7NUM2RTs1QzZFOworMkY4Nzk7NUNDMDs1Q0MwOzVDQzA7NUNDMDsKKzJGODdBOzVDOEQ7NUM4RDs1QzhEOzVDOEQ7CisyRjg3QjsyMURFNDsyMURFNDsyMURFNDsyMURFNDsKKzJGODdDOzVENDM7NUQ0Mzs1RDQzOzVENDM7CisyRjg3RDsyMURFNjsyMURFNjsyMURFNjsyMURFNjsKKzJGODdFOzVENkU7NUQ2RTs1RDZFOzVENkU7CisyRjg3Rjs1RDZCOzVENkI7NUQ2Qjs1RDZCOworMkY4ODA7NUQ3Qzs1RDdDOzVEN0M7NUQ3QzsKKzJGODgxOzVERTE7NURFMTs1REUxOzVERTE7CisyRjg4Mjs1REUyOzVERTI7NURFMjs1REUyOworMkY4ODM7MzgyRjszODJGOzM4MkY7MzgyRjsKKzJGODg0OzVERkQ7NURGRDs1REZEOzVERkQ7CisyRjg4NTs1RTI4OzVFMjg7NUUyODs1RTI4OworMkY4ODY7NUUzRDs1RTNEOzVFM0Q7NUUzRDsKKzJGODg3OzVFNjk7NUU2OTs1RTY5OzVFNjk7CisyRjg4ODszODYyOzM4NjI7Mzg2MjszODYyOworMkY4ODk7MjIxODM7MjIxODM7MjIxODM7MjIxODM7CisyRjg4QTszODdDOzM4N0M7Mzg3QzszODdDOworMkY4OEI7NUVCMDs1RUIwOzVFQjA7NUVCMDsKKzJGODhDOzVFQjM7NUVCMzs1RUIzOzVFQjM7CisyRjg4RDs1RUI2OzVFQjY7NUVCNjs1RUI2OworMkY4OEU7NUVDQTs1RUNBOzVFQ0E7NUVDQTsKKzJGODhGOzJBMzkyOzJBMzkyOzJBMzkyOzJBMzkyOworMkY4OTA7NUVGRTs1RUZFOzVFRkU7NUVGRTsKKzJGODkxOzIyMzMxOzIyMzMxOzIyMzMxOzIyMzMxOworMkY4OTI7MjIzMzE7MjIzMzE7MjIzMzE7MjIzMzE7CisyRjg5Mzs4MjAxOzgyMDE7ODIwMTs4MjAxOworMkY4OTQ7NUYyMjs1RjIyOzVGMjI7NUYyMjsKKzJGODk1OzVGMjI7NUYyMjs1RjIyOzVGMjI7CisyRjg5NjszOEM3OzM4Qzc7MzhDNzszOEM3OworMkY4OTc7MjMyQjg7MjMyQjg7MjMyQjg7MjMyQjg7CisyRjg5ODsyNjFEQTsyNjFEQTsyNjFEQTsyNjFEQTsKKzJGODk5OzVGNjI7NUY2Mjs1RjYyOzVGNjI7CisyRjg5QTs1RjZCOzVGNkI7NUY2Qjs1RjZCOworMkY4OUI7MzhFMzszOEUzOzM4RTM7MzhFMzsKKzJGODlDOzVGOUE7NUY5QTs1RjlBOzVGOUE7CisyRjg5RDs1RkNEOzVGQ0Q7NUZDRDs1RkNEOworMkY4OUU7NUZENzs1RkQ3OzVGRDc7NUZENzsKKzJGODlGOzVGRjk7NUZGOTs1RkY5OzVGRjk7CisyRjhBMDs2MDgxOzYwODE7NjA4MTs2MDgxOworMkY4QTE7MzkzQTszOTNBOzM5M0E7MzkzQTsKKzJGOEEyOzM5MUM7MzkxQzszOTFDOzM5MUM7CisyRjhBMzs2MDk0OzYwOTQ7NjA5NDs2MDk0OworMkY4QTQ7MjI2RDQ7MjI2RDQ7MjI2RDQ7MjI2RDQ7CisyRjhBNTs2MEM3OzYwQzc7NjBDNzs2MEM3OworMkY4QTY7NjE0ODs2MTQ4OzYxNDg7NjE0ODsKKzJGOEE3OzYxNEM7NjE0Qzs2MTRDOzYxNEM7CisyRjhBODs2MTRFOzYxNEU7NjE0RTs2MTRFOworMkY4QTk7NjE0Qzs2MTRDOzYxNEM7NjE0QzsKKzJGOEFBOzYxN0E7NjE3QTs2MTdBOzYxN0E7CisyRjhBQjs2MThFOzYxOEU7NjE4RTs2MThFOworMkY4QUM7NjFCMjs2MUIyOzYxQjI7NjFCMjsKKzJGOEFEOzYxQTQ7NjFBNDs2MUE0OzYxQTQ7CisyRjhBRTs2MUFGOzYxQUY7NjFBRjs2MUFGOworMkY4QUY7NjFERTs2MURFOzYxREU7NjFERTsKKzJGOEIwOzYxRjI7NjFGMjs2MUYyOzYxRjI7CisyRjhCMTs2MUY2OzYxRjY7NjFGNjs2MUY2OworMkY4QjI7NjIxMDs2MjEwOzYyMTA7NjIxMDsKKzJGOEIzOzYyMUI7NjIxQjs2MjFCOzYyMUI7CisyRjhCNDs2MjVEOzYyNUQ7NjI1RDs2MjVEOworMkY4QjU7NjJCMTs2MkIxOzYyQjE7NjJCMTsKKzJGOEI2OzYyRDQ7NjJENDs2MkQ0OzYyRDQ7CisyRjhCNzs2MzUwOzYzNTA7NjM1MDs2MzUwOworMkY4Qjg7MjJCMEM7MjJCMEM7MjJCMEM7MjJCMEM7CisyRjhCOTs2MzNEOzYzM0Q7NjMzRDs2MzNEOworMkY4QkE7NjJGQzs2MkZDOzYyRkM7NjJGQzsKKzJGOEJCOzYzNjg7NjM2ODs2MzY4OzYzNjg7CisyRjhCQzs2MzgzOzYzODM7NjM4Mzs2MzgzOworMkY4QkQ7NjNFNDs2M0U0OzYzRTQ7NjNFNDsKKzJGOEJFOzIyQkYxOzIyQkYxOzIyQkYxOzIyQkYxOworMkY4QkY7NjQyMjs2NDIyOzY0MjI7NjQyMjsKKzJGOEMwOzYzQzU7NjNDNTs2M0M1OzYzQzU7CisyRjhDMTs2M0E5OzYzQTk7NjNBOTs2M0E5OworMkY4QzI7M0EyRTszQTJFOzNBMkU7M0EyRTsKKzJGOEMzOzY0Njk7NjQ2OTs2NDY5OzY0Njk7CisyRjhDNDs2NDdFOzY0N0U7NjQ3RTs2NDdFOworMkY4QzU7NjQ5RDs2NDlEOzY0OUQ7NjQ5RDsKKzJGOEM2OzY0Nzc7NjQ3Nzs2NDc3OzY0Nzc7CisyRjhDNzszQTZDOzNBNkM7M0E2QzszQTZDOworMkY4Qzg7NjU0Rjs2NTRGOzY1NEY7NjU0RjsKKzJGOEM5OzY1NkM7NjU2Qzs2NTZDOzY1NkM7CisyRjhDQTsyMzAwQTsyMzAwQTsyMzAwQTsyMzAwQTsKKzJGOENCOzY1RTM7NjVFMzs2NUUzOzY1RTM7CisyRjhDQzs2NkY4OzY2Rjg7NjZGODs2NkY4OworMkY4Q0Q7NjY0OTs2NjQ5OzY2NDk7NjY0OTsKKzJGOENFOzNCMTk7M0IxOTszQjE5OzNCMTk7CisyRjhDRjs2NjkxOzY2OTE7NjY5MTs2NjkxOworMkY4RDA7M0IwODszQjA4OzNCMDg7M0IwODsKKzJGOEQxOzNBRTQ7M0FFNDszQUU0OzNBRTQ7CisyRjhEMjs1MTkyOzUxOTI7NTE5Mjs1MTkyOworMkY4RDM7NTE5NTs1MTk1OzUxOTU7NTE5NTsKKzJGOEQ0OzY3MDA7NjcwMDs2NzAwOzY3MDA7CisyRjhENTs2NjlDOzY2OUM7NjY5Qzs2NjlDOworMkY4RDY7ODBBRDs4MEFEOzgwQUQ7ODBBRDsKKzJGOEQ3OzQzRDk7NDNEOTs0M0Q5OzQzRDk7CisyRjhEODs2NzE3OzY3MTc7NjcxNzs2NzE3OworMkY4RDk7NjcxQjs2NzFCOzY3MUI7NjcxQjsKKzJGOERBOzY3MjE7NjcyMTs2NzIxOzY3MjE7CisyRjhEQjs2NzVFOzY3NUU7Njc1RTs2NzVFOworMkY4REM7Njc1Mzs2NzUzOzY3NTM7Njc1MzsKKzJGOEREOzIzM0MzOzIzM0MzOzIzM0MzOzIzM0MzOworMkY4REU7M0I0OTszQjQ5OzNCNDk7M0I0OTsKKzJGOERGOzY3RkE7NjdGQTs2N0ZBOzY3RkE7CisyRjhFMDs2Nzg1OzY3ODU7Njc4NTs2Nzg1OworMkY4RTE7Njg1Mjs2ODUyOzY4NTI7Njg1MjsKKzJGOEUyOzY4ODU7Njg4NTs2ODg1OzY4ODU7CisyRjhFMzsyMzQ2RDsyMzQ2RDsyMzQ2RDsyMzQ2RDsKKzJGOEU0OzY4OEU7Njg4RTs2ODhFOzY4OEU7CisyRjhFNTs2ODFGOzY4MUY7NjgxRjs2ODFGOworMkY4RTY7NjkxNDs2OTE0OzY5MTQ7NjkxNDsKKzJGOEU3OzNCOUQ7M0I5RDszQjlEOzNCOUQ7CisyRjhFODs2OTQyOzY5NDI7Njk0Mjs2OTQyOworMkY4RTk7NjlBMzs2OUEzOzY5QTM7NjlBMzsKKzJGOEVBOzY5RUE7NjlFQTs2OUVBOzY5RUE7CisyRjhFQjs2QUE4OzZBQTg7NkFBODs2QUE4OworMkY4RUM7MjM2QTM7MjM2QTM7MjM2QTM7MjM2QTM7CisyRjhFRDs2QURCOzZBREI7NkFEQjs2QURCOworMkY4RUU7M0MxODszQzE4OzNDMTg7M0MxODsKKzJGOEVGOzZCMjE7NkIyMTs2QjIxOzZCMjE7CisyRjhGMDsyMzhBNzsyMzhBNzsyMzhBNzsyMzhBNzsKKzJGOEYxOzZCNTQ7NkI1NDs2QjU0OzZCNTQ7CisyRjhGMjszQzRFOzNDNEU7M0M0RTszQzRFOworMkY4RjM7NkI3Mjs2QjcyOzZCNzI7NkI3MjsKKzJGOEY0OzZCOUY7NkI5Rjs2QjlGOzZCOUY7CisyRjhGNTs2QkJBOzZCQkE7NkJCQTs2QkJBOworMkY4RjY7NkJCQjs2QkJCOzZCQkI7NkJCQjsKKzJGOEY3OzIzQThEOzIzQThEOzIzQThEOzIzQThEOworMkY4Rjg7MjFEMEI7MjFEMEI7MjFEMEI7MjFEMEI7CisyRjhGOTsyM0FGQTsyM0FGQTsyM0FGQTsyM0FGQTsKKzJGOEZBOzZDNEU7NkM0RTs2QzRFOzZDNEU7CisyRjhGQjsyM0NCQzsyM0NCQzsyM0NCQzsyM0NCQzsKKzJGOEZDOzZDQkY7NkNCRjs2Q0JGOzZDQkY7CisyRjhGRDs2Q0NEOzZDQ0Q7NkNDRDs2Q0NEOworMkY4RkU7NkM2Nzs2QzY3OzZDNjc7NkM2NzsKKzJGOEZGOzZEMTY7NkQxNjs2RDE2OzZEMTY7CisyRjkwMDs2RDNFOzZEM0U7NkQzRTs2RDNFOworMkY5MDE7NkQ3Nzs2RDc3OzZENzc7NkQ3NzsKKzJGOTAyOzZENDE7NkQ0MTs2RDQxOzZENDE7CisyRjkwMzs2RDY5OzZENjk7NkQ2OTs2RDY5OworMkY5MDQ7NkQ3ODs2RDc4OzZENzg7NkQ3ODsKKzJGOTA1OzZEODU7NkQ4NTs2RDg1OzZEODU7CisyRjkwNjsyM0QxRTsyM0QxRTsyM0QxRTsyM0QxRTsKKzJGOTA3OzZEMzQ7NkQzNDs2RDM0OzZEMzQ7CisyRjkwODs2RTJGOzZFMkY7NkUyRjs2RTJGOworMkY5MDk7NkU2RTs2RTZFOzZFNkU7NkU2RTsKKzJGOTBBOzNEMzM7M0QzMzszRDMzOzNEMzM7CisyRjkwQjs2RUNCOzZFQ0I7NkVDQjs2RUNCOworMkY5MEM7NkVDNzs2RUM3OzZFQzc7NkVDNzsKKzJGOTBEOzIzRUQxOzIzRUQxOzIzRUQxOzIzRUQxOworMkY5MEU7NkRGOTs2REY5OzZERjk7NkRGOTsKKzJGOTBGOzZGNkU7NkY2RTs2RjZFOzZGNkU7CisyRjkxMDsyM0Y1RTsyM0Y1RTsyM0Y1RTsyM0Y1RTsKKzJGOTExOzIzRjhFOzIzRjhFOzIzRjhFOzIzRjhFOworMkY5MTI7NkZDNjs2RkM2OzZGQzY7NkZDNjsKKzJGOTEzOzcwMzk7NzAzOTs3MDM5OzcwMzk7CisyRjkxNDs3MDFFOzcwMUU7NzAxRTs3MDFFOworMkY5MTU7NzAxQjs3MDFCOzcwMUI7NzAxQjsKKzJGOTE2OzNEOTY7M0Q5NjszRDk2OzNEOTY7CisyRjkxNzs3MDRBOzcwNEE7NzA0QTs3MDRBOworMkY5MTg7NzA3RDs3MDdEOzcwN0Q7NzA3RDsKKzJGOTE5OzcwNzc7NzA3Nzs3MDc3OzcwNzc7CisyRjkxQTs3MEFEOzcwQUQ7NzBBRDs3MEFEOworMkY5MUI7MjA1MjU7MjA1MjU7MjA1MjU7MjA1MjU7CisyRjkxQzs3MTQ1OzcxNDU7NzE0NTs3MTQ1OworMkY5MUQ7MjQyNjM7MjQyNjM7MjQyNjM7MjQyNjM7CisyRjkxRTs3MTlDOzcxOUM7NzE5Qzs3MTlDOworMkY5MUY7MjQzQUI7MjQzQUI7MjQzQUI7MjQzQUI7CisyRjkyMDs3MjI4OzcyMjg7NzIyODs3MjI4OworMkY5MjE7NzIzNTs3MjM1OzcyMzU7NzIzNTsKKzJGOTIyOzcyNTA7NzI1MDs3MjUwOzcyNTA7CisyRjkyMzsyNDYwODsyNDYwODsyNDYwODsyNDYwODsKKzJGOTI0OzcyODA7NzI4MDs3MjgwOzcyODA7CisyRjkyNTs3Mjk1OzcyOTU7NzI5NTs3Mjk1OworMkY5MjY7MjQ3MzU7MjQ3MzU7MjQ3MzU7MjQ3MzU7CisyRjkyNzsyNDgxNDsyNDgxNDsyNDgxNDsyNDgxNDsKKzJGOTI4OzczN0E7NzM3QTs3MzdBOzczN0E7CisyRjkyOTs3MzhCOzczOEI7NzM4Qjs3MzhCOworMkY5MkE7M0VBQzszRUFDOzNFQUM7M0VBQzsKKzJGOTJCOzczQTU7NzNBNTs3M0E1OzczQTU7CisyRjkyQzszRUI4OzNFQjg7M0VCODszRUI4OworMkY5MkQ7M0VCODszRUI4OzNFQjg7M0VCODsKKzJGOTJFOzc0NDc7NzQ0Nzs3NDQ3Ozc0NDc7CisyRjkyRjs3NDVDOzc0NUM7NzQ1Qzs3NDVDOworMkY5MzA7NzQ3MTs3NDcxOzc0NzE7NzQ3MTsKKzJGOTMxOzc0ODU7NzQ4NTs3NDg1Ozc0ODU7CisyRjkzMjs3NENBOzc0Q0E7NzRDQTs3NENBOworMkY5MzM7M0YxQjszRjFCOzNGMUI7M0YxQjsKKzJGOTM0Ozc1MjQ7NzUyNDs3NTI0Ozc1MjQ7CisyRjkzNTsyNEMzNjsyNEMzNjsyNEMzNjsyNEMzNjsKKzJGOTM2Ozc1M0U7NzUzRTs3NTNFOzc1M0U7CisyRjkzNzsyNEM5MjsyNEM5MjsyNEM5MjsyNEM5MjsKKzJGOTM4Ozc1NzA7NzU3MDs3NTcwOzc1NzA7CisyRjkzOTsyMjE5RjsyMjE5RjsyMjE5RjsyMjE5RjsKKzJGOTNBOzc2MTA7NzYxMDs3NjEwOzc2MTA7CisyRjkzQjsyNEZBMTsyNEZBMTsyNEZBMTsyNEZBMTsKKzJGOTNDOzI0RkI4OzI0RkI4OzI0RkI4OzI0RkI4OworMkY5M0Q7MjUwNDQ7MjUwNDQ7MjUwNDQ7MjUwNDQ7CisyRjkzRTszRkZDOzNGRkM7M0ZGQzszRkZDOworMkY5M0Y7NDAwODs0MDA4OzQwMDg7NDAwODsKKzJGOTQwOzc2RjQ7NzZGNDs3NkY0Ozc2RjQ7CisyRjk0MTsyNTBGMzsyNTBGMzsyNTBGMzsyNTBGMzsKKzJGOTQyOzI1MEYyOzI1MEYyOzI1MEYyOzI1MEYyOworMkY5NDM7MjUxMTk7MjUxMTk7MjUxMTk7MjUxMTk7CisyRjk0NDsyNTEzMzsyNTEzMzsyNTEzMzsyNTEzMzsKKzJGOTQ1Ozc3MUU7NzcxRTs3NzFFOzc3MUU7CisyRjk0Njs3NzFGOzc3MUY7NzcxRjs3NzFGOworMkY5NDc7NzcxRjs3NzFGOzc3MUY7NzcxRjsKKzJGOTQ4Ozc3NEE7Nzc0QTs3NzRBOzc3NEE7CisyRjk0OTs0MDM5OzQwMzk7NDAzOTs0MDM5OworMkY5NEE7Nzc4Qjs3NzhCOzc3OEI7Nzc4QjsKKzJGOTRCOzQwNDY7NDA0Njs0MDQ2OzQwNDY7CisyRjk0Qzs0MDk2OzQwOTY7NDA5Njs0MDk2OworMkY5NEQ7MjU0MUQ7MjU0MUQ7MjU0MUQ7MjU0MUQ7CisyRjk0RTs3ODRFOzc4NEU7Nzg0RTs3ODRFOworMkY5NEY7Nzg4Qzs3ODhDOzc4OEM7Nzg4QzsKKzJGOTUwOzc4Q0M7NzhDQzs3OENDOzc4Q0M7CisyRjk1MTs0MEUzOzQwRTM7NDBFMzs0MEUzOworMkY5NTI7MjU2MjY7MjU2MjY7MjU2MjY7MjU2MjY7CisyRjk1Mzs3OTU2Ozc5NTY7Nzk1Njs3OTU2OworMkY5NTQ7MjU2OUE7MjU2OUE7MjU2OUE7MjU2OUE7CisyRjk1NTsyNTZDNTsyNTZDNTsyNTZDNTsyNTZDNTsKKzJGOTU2Ozc5OEY7Nzk4Rjs3OThGOzc5OEY7CisyRjk1Nzs3OUVCOzc5RUI7NzlFQjs3OUVCOworMkY5NTg7NDEyRjs0MTJGOzQxMkY7NDEyRjsKKzJGOTU5OzdBNDA7N0E0MDs3QTQwOzdBNDA7CisyRjk1QTs3QTRBOzdBNEE7N0E0QTs3QTRBOworMkY5NUI7N0E0Rjs3QTRGOzdBNEY7N0E0RjsKKzJGOTVDOzI1OTdDOzI1OTdDOzI1OTdDOzI1OTdDOworMkY5NUQ7MjVBQTc7MjVBQTc7MjVBQTc7MjVBQTc7CisyRjk1RTsyNUFBNzsyNUFBNzsyNUFBNzsyNUFBNzsKKzJGOTVGOzdBRUU7N0FFRTs3QUVFOzdBRUU7CisyRjk2MDs0MjAyOzQyMDI7NDIwMjs0MjAyOworMkY5NjE7MjVCQUI7MjVCQUI7MjVCQUI7MjVCQUI7CisyRjk2Mjs3QkM2OzdCQzY7N0JDNjs3QkM2OworMkY5NjM7N0JDOTs3QkM5OzdCQzk7N0JDOTsKKzJGOTY0OzQyMjc7NDIyNzs0MjI3OzQyMjc7CisyRjk2NTsyNUM4MDsyNUM4MDsyNUM4MDsyNUM4MDsKKzJGOTY2OzdDRDI7N0NEMjs3Q0QyOzdDRDI7CisyRjk2Nzs0MkEwOzQyQTA7NDJBMDs0MkEwOworMkY5Njg7N0NFODs3Q0U4OzdDRTg7N0NFODsKKzJGOTY5OzdDRTM7N0NFMzs3Q0UzOzdDRTM7CisyRjk2QTs3RDAwOzdEMDA7N0QwMDs3RDAwOworMkY5NkI7MjVGODY7MjVGODY7MjVGODY7MjVGODY7CisyRjk2Qzs3RDYzOzdENjM7N0Q2Mzs3RDYzOworMkY5NkQ7NDMwMTs0MzAxOzQzMDE7NDMwMTsKKzJGOTZFOzdEQzc7N0RDNzs3REM3OzdEQzc7CisyRjk2Rjs3RTAyOzdFMDI7N0UwMjs3RTAyOworMkY5NzA7N0U0NTs3RTQ1OzdFNDU7N0U0NTsKKzJGOTcxOzQzMzQ7NDMzNDs0MzM0OzQzMzQ7CisyRjk3MjsyNjIyODsyNjIyODsyNjIyODsyNjIyODsKKzJGOTczOzI2MjQ3OzI2MjQ3OzI2MjQ3OzI2MjQ3OworMkY5NzQ7NDM1OTs0MzU5OzQzNTk7NDM1OTsKKzJGOTc1OzI2MkQ5OzI2MkQ5OzI2MkQ5OzI2MkQ5OworMkY5NzY7N0Y3QTs3RjdBOzdGN0E7N0Y3QTsKKzJGOTc3OzI2MzNFOzI2MzNFOzI2MzNFOzI2MzNFOworMkY5Nzg7N0Y5NTs3Rjk1OzdGOTU7N0Y5NTsKKzJGOTc5OzdGRkE7N0ZGQTs3RkZBOzdGRkE7CisyRjk3QTs4MDA1OzgwMDU7ODAwNTs4MDA1OworMkY5N0I7MjY0REE7MjY0REE7MjY0REE7MjY0REE7CisyRjk3QzsyNjUyMzsyNjUyMzsyNjUyMzsyNjUyMzsKKzJGOTdEOzgwNjA7ODA2MDs4MDYwOzgwNjA7CisyRjk3RTsyNjVBODsyNjVBODsyNjVBODsyNjVBODsKKzJGOTdGOzgwNzA7ODA3MDs4MDcwOzgwNzA7CisyRjk4MDsyMzM1RjsyMzM1RjsyMzM1RjsyMzM1RjsKKzJGOTgxOzQzRDU7NDNENTs0M0Q1OzQzRDU7CisyRjk4Mjs4MEIyOzgwQjI7ODBCMjs4MEIyOworMkY5ODM7ODEwMzs4MTAzOzgxMDM7ODEwMzsKKzJGOTg0OzQ0MEI7NDQwQjs0NDBCOzQ0MEI7CisyRjk4NTs4MTNFOzgxM0U7ODEzRTs4MTNFOworMkY5ODY7NUFCNTs1QUI1OzVBQjU7NUFCNTsKKzJGOTg3OzI2N0E3OzI2N0E3OzI2N0E3OzI2N0E3OworMkY5ODg7MjY3QjU7MjY3QjU7MjY3QjU7MjY3QjU7CisyRjk4OTsyMzM5MzsyMzM5MzsyMzM5MzsyMzM5MzsKKzJGOThBOzIzMzlDOzIzMzlDOzIzMzlDOzIzMzlDOworMkY5OEI7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGOThDOzgyMDQ7ODIwNDs4MjA0OzgyMDQ7CisyRjk4RDs4RjlFOzhGOUU7OEY5RTs4RjlFOworMkY5OEU7NDQ2Qjs0NDZCOzQ0NkI7NDQ2QjsKKzJGOThGOzgyOTE7ODI5MTs4MjkxOzgyOTE7CisyRjk5MDs4MjhCOzgyOEI7ODI4Qjs4MjhCOworMkY5OTE7ODI5RDs4MjlEOzgyOUQ7ODI5RDsKKzJGOTkyOzUyQjM7NTJCMzs1MkIzOzUyQjM7CisyRjk5Mzs4MkIxOzgyQjE7ODJCMTs4MkIxOworMkY5OTQ7ODJCMzs4MkIzOzgyQjM7ODJCMzsKKzJGOTk1OzgyQkQ7ODJCRDs4MkJEOzgyQkQ7CisyRjk5Njs4MkU2OzgyRTY7ODJFNjs4MkU2OworMkY5OTc7MjZCM0M7MjZCM0M7MjZCM0M7MjZCM0M7CisyRjk5ODs4MkU1OzgyRTU7ODJFNTs4MkU1OworMkY5OTk7ODMxRDs4MzFEOzgzMUQ7ODMxRDsKKzJGOTlBOzgzNjM7ODM2Mzs4MzYzOzgzNjM7CisyRjk5Qjs4M0FEOzgzQUQ7ODNBRDs4M0FEOworMkY5OUM7ODMyMzs4MzIzOzgzMjM7ODMyMzsKKzJGOTlEOzgzQkQ7ODNCRDs4M0JEOzgzQkQ7CisyRjk5RTs4M0U3OzgzRTc7ODNFNzs4M0U3OworMkY5OUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKKzJGOUEwOzgzNTM7ODM1Mzs4MzUzOzgzNTM7CisyRjlBMTs4M0NBOzgzQ0E7ODNDQTs4M0NBOworMkY5QTI7ODNDQzs4M0NDOzgzQ0M7ODNDQzsKKzJGOUEzOzgzREM7ODNEQzs4M0RDOzgzREM7CisyRjlBNDsyNkMzNjsyNkMzNjsyNkMzNjsyNkMzNjsKKzJGOUE1OzI2RDZCOzI2RDZCOzI2RDZCOzI2RDZCOworMkY5QTY7MjZDRDU7MjZDRDU7MjZDRDU7MjZDRDU7CisyRjlBNzs0NTJCOzQ1MkI7NDUyQjs0NTJCOworMkY5QTg7ODRGMTs4NEYxOzg0RjE7ODRGMTsKKzJGOUE5Ozg0RjM7ODRGMzs4NEYzOzg0RjM7CisyRjlBQTs4NTE2Ozg1MTY7ODUxNjs4NTE2OworMkY5QUI7MjczQ0E7MjczQ0E7MjczQ0E7MjczQ0E7CisyRjlBQzs4NTY0Ozg1NjQ7ODU2NDs4NTY0OworMkY5QUQ7MjZGMkM7MjZGMkM7MjZGMkM7MjZGMkM7CisyRjlBRTs0NTVEOzQ1NUQ7NDU1RDs0NTVEOworMkY5QUY7NDU2MTs0NTYxOzQ1NjE7NDU2MTsKKzJGOUIwOzI2RkIxOzI2RkIxOzI2RkIxOzI2RkIxOworMkY5QjE7MjcwRDI7MjcwRDI7MjcwRDI7MjcwRDI7CisyRjlCMjs0NTZCOzQ1NkI7NDU2Qjs0NTZCOworMkY5QjM7ODY1MDs4NjUwOzg2NTA7ODY1MDsKKzJGOUI0Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CisyRjlCNTs4NjY3Ozg2Njc7ODY2Nzs4NjY3OworMkY5QjY7ODY2OTs4NjY5Ozg2Njk7ODY2OTsKKzJGOUI3Ozg2QTk7ODZBOTs4NkE5Ozg2QTk7CisyRjlCODs4Njg4Ozg2ODg7ODY4ODs4Njg4OworMkY5Qjk7ODcwRTs4NzBFOzg3MEU7ODcwRTsKKzJGOUJBOzg2RTI7ODZFMjs4NkUyOzg2RTI7CisyRjlCQjs4Nzc5Ozg3Nzk7ODc3OTs4Nzc5OworMkY5QkM7ODcyODs4NzI4Ozg3Mjg7ODcyODsKKzJGOUJEOzg3NkI7ODc2Qjs4NzZCOzg3NkI7CisyRjlCRTs4Nzg2Ozg3ODY7ODc4Njs4Nzg2OworMkY5QkY7NDVENzs0NUQ3OzQ1RDc7NDVENzsKKzJGOUMwOzg3RTE7ODdFMTs4N0UxOzg3RTE7CisyRjlDMTs4ODAxOzg4MDE7ODgwMTs4ODAxOworMkY5QzI7NDVGOTs0NUY5OzQ1Rjk7NDVGOTsKKzJGOUMzOzg4NjA7ODg2MDs4ODYwOzg4NjA7CisyRjlDNDs4ODYzOzg4NjM7ODg2Mzs4ODYzOworMkY5QzU7Mjc2Njc7Mjc2Njc7Mjc2Njc7Mjc2Njc7CisyRjlDNjs4OEQ3Ozg4RDc7ODhENzs4OEQ3OworMkY5Qzc7ODhERTs4OERFOzg4REU7ODhERTsKKzJGOUM4OzQ2MzU7NDYzNTs0NjM1OzQ2MzU7CisyRjlDOTs4OEZBOzg4RkE7ODhGQTs4OEZBOworMkY5Q0E7MzRCQjszNEJCOzM0QkI7MzRCQjsKKzJGOUNCOzI3OEFFOzI3OEFFOzI3OEFFOzI3OEFFOworMkY5Q0M7Mjc5NjY7Mjc5NjY7Mjc5NjY7Mjc5NjY7CisyRjlDRDs0NkJFOzQ2QkU7NDZCRTs0NkJFOworMkY5Q0U7NDZDNzs0NkM3OzQ2Qzc7NDZDNzsKKzJGOUNGOzhBQTA7OEFBMDs4QUEwOzhBQTA7CisyRjlEMDs4QUVEOzhBRUQ7OEFFRDs4QUVEOworMkY5RDE7OEI4QTs4QjhBOzhCOEE7OEI4QTsKKzJGOUQyOzhDNTU7OEM1NTs4QzU1OzhDNTU7CisyRjlEMzsyN0NBODsyN0NBODsyN0NBODsyN0NBODsKKzJGOUQ0OzhDQUI7OENBQjs4Q0FCOzhDQUI7CisyRjlENTs4Q0MxOzhDQzE7OENDMTs4Q0MxOworMkY5RDY7OEQxQjs4RDFCOzhEMUI7OEQxQjsKKzJGOUQ3OzhENzc7OEQ3Nzs4RDc3OzhENzc7CisyRjlEODsyN0YyRjsyN0YyRjsyN0YyRjsyN0YyRjsKKzJGOUQ5OzIwODA0OzIwODA0OzIwODA0OzIwODA0OworMkY5REE7OERDQjs4RENCOzhEQ0I7OERDQjsKKzJGOURCOzhEQkM7OERCQzs4REJDOzhEQkM7CisyRjlEQzs4REYwOzhERjA7OERGMDs4REYwOworMkY5REQ7MjA4REU7MjA4REU7MjA4REU7MjA4REU7CisyRjlERTs4RUQ0OzhFRDQ7OEVENDs4RUQ0OworMkY5REY7OEYzODs4RjM4OzhGMzg7OEYzODsKKzJGOUUwOzI4NUQyOzI4NUQyOzI4NUQyOzI4NUQyOworMkY5RTE7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7CisyRjlFMjs5MDk0OzkwOTQ7OTA5NDs5MDk0OworMkY5RTM7OTBGMTs5MEYxOzkwRjE7OTBGMTsKKzJGOUU0OzkxMTE7OTExMTs5MTExOzkxMTE7CisyRjlFNTsyODcyRTsyODcyRTsyODcyRTsyODcyRTsKKzJGOUU2OzkxMUI7OTExQjs5MTFCOzkxMUI7CisyRjlFNzs5MjM4OzkyMzg7OTIzODs5MjM4OworMkY5RTg7OTJENzs5MkQ3OzkyRDc7OTJENzsKKzJGOUU5OzkyRDg7OTJEODs5MkQ4OzkyRDg7CisyRjlFQTs5MjdDOzkyN0M7OTI3Qzs5MjdDOworMkY5RUI7OTNGOTs5M0Y5OzkzRjk7OTNGOTsKKzJGOUVDOzk0MTU7OTQxNTs5NDE1Ozk0MTU7CisyRjlFRDsyOEJGQTsyOEJGQTsyOEJGQTsyOEJGQTsKKzJGOUVFOzk1OEI7OTU4Qjs5NThCOzk1OEI7CisyRjlFRjs0OTk1OzQ5OTU7NDk5NTs0OTk1OworMkY5RjA7OTVCNzs5NUI3Ozk1Qjc7OTVCNzsKKzJGOUYxOzI4RDc3OzI4RDc3OzI4RDc3OzI4RDc3OworMkY5RjI7NDlFNjs0OUU2OzQ5RTY7NDlFNjsKKzJGOUYzOzk2QzM7OTZDMzs5NkMzOzk2QzM7CisyRjlGNDs1REIyOzVEQjI7NURCMjs1REIyOworMkY5RjU7OTcyMzs5NzIzOzk3MjM7OTcyMzsKKzJGOUY2OzI5MTQ1OzI5MTQ1OzI5MTQ1OzI5MTQ1OworMkY5Rjc7MjkyMUE7MjkyMUE7MjkyMUE7MjkyMUE7CisyRjlGODs0QTZFOzRBNkU7NEE2RTs0QTZFOworMkY5Rjk7NEE3Njs0QTc2OzRBNzY7NEE3NjsKKzJGOUZBOzk3RTA7OTdFMDs5N0UwOzk3RTA7CisyRjlGQjsyOTQwQTsyOTQwQTsyOTQwQTsyOTQwQTsKKzJGOUZDOzRBQjI7NEFCMjs0QUIyOzRBQjI7CisyRjlGRDsyOTQ5NjsyOTQ5NjsyOTQ5NjsyOTQ5NjsKKzJGOUZFOzk4MEI7OTgwQjs5ODBCOzk4MEI7CisyRjlGRjs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkZBMDA7OTgyOTs5ODI5Ozk4Mjk7OTgyOTsKKzJGQTAxOzI5NUI2OzI5NUI2OzI5NUI2OzI5NUI2OworMkZBMDI7OThFMjs5OEUyOzk4RTI7OThFMjsKKzJGQTAzOzRCMzM7NEIzMzs0QjMzOzRCMzM7CisyRkEwNDs5OTI5Ozk5Mjk7OTkyOTs5OTI5OworMkZBMDU7OTlBNzs5OUE3Ozk5QTc7OTlBNzsKKzJGQTA2Ozk5QzI7OTlDMjs5OUMyOzk5QzI7CisyRkEwNzs5OUZFOzk5RkU7OTlGRTs5OUZFOworMkZBMDg7NEJDRTs0QkNFOzRCQ0U7NEJDRTsKKzJGQTA5OzI5QjMwOzI5QjMwOzI5QjMwOzI5QjMwOworMkZBMEE7OUIxMjs5QjEyOzlCMTI7OUIxMjsKKzJGQTBCOzlDNDA7OUM0MDs5QzQwOzlDNDA7CisyRkEwQzs5Q0ZEOzlDRkQ7OUNGRDs5Q0ZEOworMkZBMEQ7NENDRTs0Q0NFOzRDQ0U7NENDRTsKKzJGQTBFOzRDRUQ7NENFRDs0Q0VEOzRDRUQ7CisyRkEwRjs5RDY3OzlENjc7OUQ2Nzs5RDY3OworMkZBMTA7MkEwQ0U7MkEwQ0U7MkEwQ0U7MkEwQ0U7CisyRkExMTs0Q0Y4OzRDRjg7NENGODs0Q0Y4OworMkZBMTI7MkExMDU7MkExMDU7MkExMDU7MkExMDU7CisyRkExMzsyQTIwRTsyQTIwRTsyQTIwRTsyQTIwRTsKKzJGQTE0OzJBMjkxOzJBMjkxOzJBMjkxOzJBMjkxOworMkZBMTU7OUVCQjs5RUJCOzlFQkI7OUVCQjsKKzJGQTE2OzRENTY7NEQ1Njs0RDU2OzRENTY7CisyRkExNzs5RUY5OzlFRjk7OUVGOTs5RUY5OworMkZBMTg7OUVGRTs5RUZFOzlFRkU7OUVGRTsKKzJGQTE5OzlGMDU7OUYwNTs5RjA1OzlGMDU7CisyRkExQTs5RjBGOzlGMEY7OUYwRjs5RjBGOworMkZBMUI7OUYxNjs5RjE2OzlGMTY7OUYxNjsKKzJGQTFDOzlGM0I7OUYzQjs5RjNCOzlGM0I7CisyRkExRDsyQTYwMDsyQTYwMDsyQTYwMDsyQTYwMDsKKyMKK0BQYXJ0MiAjIENhbm9uaWNhbCBPcmRlciBUZXN0CisjCiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzAwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzMDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAyIDAwNjI7MDBFMCAwNUFFIDAzMDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjsKKzAwNjEgMDMwMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7MUVBNyAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMyAwMDYyOzAwRTAgMDVBRSAwMzAzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7CiswMDYxIDAzMDMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDMgMDMwMCAwMzE1IDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA0IDAwNjI7MDBFMCAwNUFFIDAzMDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjsKKzAwNjEgMDMwNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNCAwMzAwIDAzMTUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDUgMDA2MjswMEUwIDA1QUUgMDMwNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOworMDA2MSAwMzA1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDYgMDA2MjswMEUwIDA1QUUgMDMwNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOworMDA2MSAwMzA2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsxRUIxIDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA3IDAwNjI7MDBFMCAwNUFFIDAzMDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjsKKzAwNjEgMDMwNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMjcgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNyAwMzAwIDAzMTUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDggMDA2MjswMEUwIDA1QUUgMDMwOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOworMDA2MSAwMzA4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwOSAwMDYyOzAwRTAgMDVBRSAwMzA5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7CiswMDYxIDAzMDkgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUEzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDkgMDMwMCAwMzE1IDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBBIDAwNjI7MDBFMCAwNUFFIDAzMEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjsKKzAwNjEgMDMwQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTUgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQSAwMzAwIDAzMTUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEIgMDA2MjswMEUwIDA1QUUgMDMwQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOworMDA2MSAwMzBCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEMgMDA2MjswMEUwIDA1QUUgMDMwQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOworMDA2MSAwMzBDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDFDRSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBDIDAzMDAgMDMxNSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRCAwMDYyOzAwRTAgMDVBRSAwMzBEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7CiswMDYxIDAzMEQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRSAwMDYyOzAwRTAgMDVBRSAwMzBFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7CiswMDYxIDAzMEUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRiAwMDYyOzAwRTAgMDVBRSAwMzBGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7CiswMDYxIDAzMEYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEYgMDMwMCAwMzE1IDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEwIDAwNjI7MDBFMCAwNUFFIDAzMTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjsKKzAwNjEgMDMxMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzExIDAwNjI7MDBFMCAwNUFFIDAzMTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjsKKzAwNjEgMDMxMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMDMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMSAwMzAwIDAzMTUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTIgMDA2MjswMEUwIDA1QUUgMDMxMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOworMDA2MSAwMzEyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzEzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTQgMDA2MjswMEUwIDA1QUUgMDMxNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOworMDA2MSAwMzE0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNUMgMDMxNSAwMzAwIDAzMTUgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzVDIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM1QyAwMDYyOworMDA2MSAwMzE1IDAzNUMgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjsKKzAwNjEgMDMxNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7CiswMDYxIDAzMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOworMDA2MSAwMzE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzNUMgMDMxNSAwMzAwIDAzMUEgMDA2MjswMEUwIDAzMTUgMDMxQSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxQSAwMzVDIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM1QyAwMDYyOworMDA2MSAwMzFBIDAzNUMgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzFBIDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzFBIDAzMTUgMDM1QyAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMDMxQiAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwMzFCIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjsKKzAwNjEgMDMxQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7CiswMDYxIDAzMUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOworMDA2MSAwMzFFIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjsKKzAwNjEgMDMxRiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIwIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7CiswMDYxIDAzMjAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzIxIDAzMUIgMDMyMSAwRjc0IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjsKKzAwNjEgMDMyMiAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7CiswMDYxIDAzMjMgMDU5QSAwMzE2IDMwMkEgMDA2MjsxRUExIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjMgMDMxNiAwNTlBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7CiswMDYxIDAzMjQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOworMDA2MSAwMzI1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MUUwMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI1IDAzMTYgMDU5QSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOworMDA2MSAwMzI2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjcgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjsKKzAwNjEgMDMyNyAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI4IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7CiswMDYxIDAzMjggMDMxQiAwMzIxIDBGNzQgMDA2MjswMTA1IDBGNzQgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjggMDMyMSAwMzFCIDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7CiswMDYxIDAzMjkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOworMDA2MSAwMzJBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkIgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjsKKzAwNjEgMDMyQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7CiswMDYxIDAzMkMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOworMDA2MSAwMzJEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjsKKzAwNjEgMDMyRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7CiswMDYxIDAzMkYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOworMDA2MSAwMzMwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjsKKzAwNjEgMDMzMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7CiswMDYxIDAzMzIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOworMDA2MSAwMzMzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM0IDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzM0IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzUgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7CiswMDYxIDAzMzUgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNiAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjsKKzAwNjEgMDMzNiAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM3IDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOworMDA2MSAwMzM3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzggMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7CiswMDYxIDAzMzggMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7CiswMDYxIDAzMzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOworMDA2MSAwMzNBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0IgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjsKKzAwNjEgMDMzQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7CiswMDYxIDAzM0MgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRCAwMDYyOzAwRTAgMDVBRSAwMzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7CiswMDYxIDAzM0QgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRSAwMDYyOzAwRTAgMDVBRSAwMzNFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7CiswMDYxIDAzM0UgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRiAwMDYyOzAwRTAgMDVBRSAwMzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7CiswMDYxIDAzM0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MCAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQxIDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjsKKzAwNjEgMDM0MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDIgMDA2MjswMEUwIDA1QUUgMDM0MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOworMDA2MSAwMzQyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDQgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDUgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOworMDA2MSAwMzQ1IDAzNDUgMDM1RCAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0NiAwMDYyOzAwRTAgMDVBRSAwMzQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7CiswMDYxIDAzNDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0NyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOworMDA2MSAwMzQ3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDggMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjsKKzAwNjEgMDM0OCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7CiswMDYxIDAzNDkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QSAwMDYyOzAwRTAgMDVBRSAwMzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7CiswMDYxIDAzNEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QiAwMDYyOzAwRTAgMDVBRSAwMzRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7CiswMDYxIDAzNEIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QyAwMDYyOzAwRTAgMDVBRSAwMzRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7CiswMDYxIDAzNEMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOworMDA2MSAwMzREIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjsKKzAwNjEgMDM0RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzUwIDAwNjI7MDBFMCAwNUFFIDAzNTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUwIDAzMTUgMDA2MjsKKzAwNjEgMDM1MCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzUxIDAwNjI7MDBFMCAwNUFFIDAzNTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUxIDAzMTUgMDA2MjsKKzAwNjEgMDM1MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzUyIDAwNjI7MDBFMCAwNUFFIDAzNTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUyIDAzMTUgMDA2MjsKKzAwNjEgMDM1MiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzUyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzUzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1MyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1MyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1MyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1MyAwNTlBIDAwNjI7CiswMDYxIDAzNTMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM1MyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1MyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1MyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1MyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1NCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTQgMDU5QSAwMDYyOworMDA2MSAwMzU0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU1IDA1OUEgMDA2MjsKKzAwNjEgMDM1NSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzU2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NiAwNTlBIDAwNjI7CiswMDYxIDAzNTYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1NyAwMDYyOzAwRTAgMDVBRSAwMzU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzU3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1NyAwMzE1IDAwNjI7CiswMDYxIDAzNTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDM1QyAwMzE1IDAzMDAgMDM1OCAwMDYyOzAwRTAgMDMxNSAwMzU4IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzU4IDAzNUMgMDA2MjswMEUwIDAzMTUgMDM1OCAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDM1OCAwMzVDIDAwNjI7CiswMDYxIDAzNTggMDM1QyAwMzE1IDAzMDAgMDA2MjswMEUwIDAzNTggMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzNTggMDMxNSAwMzVDIDAwNjI7MDBFMCAwMzU4IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzU4IDAzMTUgMDM1QyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzU5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1OSAwNTlBIDAwNjI7CiswMDYxIDAzNTkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM1OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1OSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNUEgMDU5QSAwMDYyOworMDA2MSAwMzVBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNUEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNUIgMDA2MjswMEUwIDA1QUUgMDM1QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNUIgMDMxNSAwMDYyOworMDA2MSAwMzVCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNUQgMDM1QyAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDM1QyAwMzVEIDAzNUMgMDMxNSAwMDYyOzAwNjEgMDMxNSAwMzVDIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVDIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVDIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVDIDAzNUMgMDM1RCAwMDYyOworMDA2MSAwMzQ1IDAzNUQgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNUQgMDM0NSAwMzVEIDAzNUMgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVEIDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM1RSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUUgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUUgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUUgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUUgMDM0NSAwMDYyOworMDA2MSAwMzVFIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNUUgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUUgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUUgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUUgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNUQgMDM1QyAwMzE1IDAzNUYgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVGIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVGIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVGIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVGIDAzNUQgMDA2MjsKKzAwNjEgMDM1RiAwMzVEIDAzNUMgMDMxNSAwMDYyOzAwNjEgMDMxNSAwMzVGIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVGIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVGIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzVGIDAzNUMgMDM1RCAwMDYyOworMDA2MSAwMzQ1IDAzNUQgMDM1QyAwMzYwIDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNjAgMDM0NSAwMzVEIDAzNUMgMDA2MjswMDYxIDAzNUMgMDM2MCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM2MCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM2MCAwMzVEIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM2MCAwMzVEIDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM2MSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjEgMDM0NSAwMDYyOworMDA2MSAwMzYxIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNjEgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjEgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjEgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjEgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNUQgMDM1QyAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzYyIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzYyIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzYyIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzYyIDAzNUQgMDA2MjsKKzAwNjEgMDM2MiAwMzVEIDAzNUMgMDMxNSAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNUMgMDM1RCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzYzIDAwNjI7MDBFMCAwNUFFIDAzNjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjsKKzAwNjEgMDM2MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY0IDAwNjI7MDBFMCAwNUFFIDAzNjQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjsKKzAwNjEgMDM2NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY1IDAwNjI7MDBFMCAwNUFFIDAzNjUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjsKKzAwNjEgMDM2NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY2IDAwNjI7MDBFMCAwNUFFIDAzNjYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjsKKzAwNjEgMDM2NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY3IDAwNjI7MDBFMCAwNUFFIDAzNjcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjsKKzAwNjEgMDM2NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY4IDAwNjI7MDBFMCAwNUFFIDAzNjggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjsKKzAwNjEgMDM2OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY5IDAwNjI7MDBFMCAwNUFFIDAzNjkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjsKKzAwNjEgMDM2OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZBIDAwNjI7MDBFMCAwNUFFIDAzNkEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjsKKzAwNjEgMDM2QSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZCIDAwNjI7MDBFMCAwNUFFIDAzNkIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjsKKzAwNjEgMDM2QiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZDIDAwNjI7MDBFMCAwNUFFIDAzNkMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjsKKzAwNjEgMDM2QyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZEIDAwNjI7MDBFMCAwNUFFIDAzNkQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjsKKzAwNjEgMDM2RCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZFIDAwNjI7MDBFMCAwNUFFIDAzNkUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjsKKzAwNjEgMDM2RSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZGIDAwNjI7MDBFMCAwNUFFIDAzNkYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjsKKzAwNjEgMDM2RiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDgzIDAwNjI7MDBFMCAwNUFFIDA0ODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjsKKzAwNjEgMDQ4MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg0IDAwNjI7MDBFMCAwNUFFIDA0ODQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg1IDAwNjI7MDBFMCAwNUFFIDA0ODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg2IDAwNjI7MDBFMCAwNUFFIDA0ODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTkxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7CiswMDYxIDA1OTEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MiAwMDYyOzAwRTAgMDVBRSAwNTkyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7CiswMDYxIDA1OTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MyAwMDYyOzAwRTAgMDVBRSAwNTkzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7CiswMDYxIDA1OTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NCAwMDYyOzAwRTAgMDVBRSAwNTk0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7CiswMDYxIDA1OTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NSAwMDYyOzAwRTAgMDVBRSAwNTk1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7CiswMDYxIDA1OTUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOworMDA2MSAwNTk2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTcgMDA2MjswMEUwIDA1QUUgMDU5NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOworMDA2MSAwNTk3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTggMDA2MjswMEUwIDA1QUUgMDU5OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOworMDA2MSAwNTk4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTkgMDA2MjswMEUwIDA1QUUgMDU5OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOworMDA2MSAwNTk5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1OUEgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTlCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7CiswMDYxIDA1OUIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5QyAwMDYyOzAwRTAgMDVBRSAwNTlDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7CiswMDYxIDA1OUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RCAwMDYyOzAwRTAgMDVBRSAwNTlEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7CiswMDYxIDA1OUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RSAwMDYyOzAwRTAgMDVBRSAwNTlFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7CiswMDYxIDA1OUUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RiAwMDYyOzAwRTAgMDVBRSAwNTlGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7CiswMDYxIDA1OUYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMCAwMDYyOzAwRTAgMDVBRSAwNUEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7CiswMDYxIDA1QTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMSAwMDYyOzAwRTAgMDVBRSAwNUExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7CiswMDYxIDA1QTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBMiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTIgMDU5QSAwMDYyOworMDA2MSAwNUEyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjsKKzAwNjEgMDVBMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7CiswMDYxIDA1QTQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOworMDA2MSAwNUE1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjsKKzAwNjEgMDVBNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7CiswMDYxIDA1QTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOCAwMDYyOzAwRTAgMDVBRSAwNUE4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOCAwMzE1IDAwNjI7CiswMDYxIDA1QTggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOSAwMDYyOzAwRTAgMDVBRSAwNUE5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOSAwMzE1IDAwNjI7CiswMDYxIDA1QTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOworMDA2MSAwNUFBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUIgMDA2MjswMEUwIDA1QUUgMDVBQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUIgMDMxNSAwMDYyOworMDA2MSAwNUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUMgMDA2MjswMEUwIDA1QUUgMDVBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUMgMDMxNSAwMDYyOworMDA2MSAwNUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1QUQgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjsKKzAwNjEgMDVBRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMDVBRSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwNUFFIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFGIDAwNjI7MDBFMCAwNUFFIDA1QUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFGIDAzMTUgMDA2MjsKKzAwNjEgMDVBRiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNUIxIDA1QjAgMDk0RCAwNUIwIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7CiswMDYxIDA1QjAgMDVCMSAwNUIwIDA5NEQgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjsKKzAwNjEgMDVCMiAwNUIxIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOworMDA2MSAwNUIxIDA1QjIgMDVCMSAwNUIwIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7CiswMDYxIDA1QjMgMDVCMiAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjsKKzAwNjEgMDVCMiAwNUIzIDA1QjIgMDVCMSAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOworMDA2MSAwNUI0IDA1QjMgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7CiswMDYxIDA1QjMgMDVCNCAwNUIzIDA1QjIgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjsKKzAwNjEgMDVCNSAwNUI0IDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOworMDA2MSAwNUI0IDA1QjUgMDVCNCAwNUIzIDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7CiswMDYxIDA1QjYgMDVCNSAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjsKKzAwNjEgMDVCNSAwNUI2IDA1QjUgMDVCNCAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOworMDA2MSAwNUI3IDA1QjYgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7CiswMDYxIDA1QjYgMDVCNyAwNUI2IDA1QjUgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjsKKzAwNjEgMDVCOCAwNUI3IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOworMDA2MSAwNUI3IDA1QjggMDVCNyAwNUI2IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7CiswMDYxIDA1QjkgMDVCOCAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDVCOCAwNUI5IDA1QjggMDVCNyAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOworMDA2MSAwNUJCIDA1QjkgMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7CiswMDYxIDA1QjkgMDVCQiAwNUI5IDA1QjggMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjsKKzAwNjEgMDVCQyAwNUJCIDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOworMDA2MSAwNUJCIDA1QkMgMDVCQiAwNUI5IDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7CiswMDYxIDA1QkQgMDVCQyAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjsKKzAwNjEgMDVCQyAwNUJEIDA1QkMgMDVCQiAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOworMDA2MSAwNUJGIDA1QkQgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7CiswMDYxIDA1QkQgMDVCRiAwNUJEIDA1QkMgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjsKKzAwNjEgMDVDMSAwNUJGIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOworMDA2MSAwNUJGIDA1QzEgMDVCRiAwNUJEIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7CiswMDYxIDA1QzIgMDVDMSAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjsKKzAwNjEgMDVDMSAwNUMyIDA1QzEgMDVCRiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOworMDA2MSBGQjFFIDA1QzIgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7CiswMDYxIDA1QzIgRkIxRSAwNUMyIDA1QzEgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVDNCAwMDYyOzAwRTAgMDVBRSAwNUM0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUM0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVDNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVDNCAwMzE1IDAwNjI7CiswMDYxIDA1QzQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVDNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QzUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QzUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QzUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QzUgMDU5QSAwMDYyOworMDA2MSAwNUM1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QzUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QzUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QzUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QzUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1QjkgMDVCOCAwNUI3IDA1QzcgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUM3IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUM3IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUM3IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUM3IDA1QjkgMDA2MjsKKzAwNjEgMDVDNyAwNUI5IDA1QjggMDVCNyAwMDYyOzAwNjEgMDVCNyAwNUM3IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUM3IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUM3IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUM3IDA1QjggMDVCOSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjEwIDAwNjI7MDBFMCAwNUFFIDA2MTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEwIDAzMTUgMDA2MjsKKzAwNjEgMDYxMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjExIDAwNjI7MDBFMCAwNUFFIDA2MTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjExIDAzMTUgMDA2MjsKKzAwNjEgMDYxMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjExIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjExIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjExIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjExIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjEyIDAwNjI7MDBFMCAwNUFFIDA2MTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEyIDAzMTUgMDA2MjsKKzAwNjEgMDYxMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjEzIDAwNjI7MDBFMCAwNUFFIDA2MTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEzIDAzMTUgMDA2MjsKKzAwNjEgMDYxMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjE0IDAwNjI7MDBFMCAwNUFFIDA2MTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE0IDAzMTUgMDA2MjsKKzAwNjEgMDYxNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjE1IDAwNjI7MDBFMCAwNUFFIDA2MTUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2MTUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjE1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE1IDAzMTUgMDA2MjsKKzAwNjEgMDYxNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjE1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjE1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNjRDIDA2NEIgRkIxRSAwNjRCIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEIgMDY0QyAwNjRCIEZCMUUgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjsKKzAwNjEgMDY0RCAwNjRDIDA2NEIgMDY0QyAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRDIDA2NEQgMDY0QyAwNjRCIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7CiswMDYxIDA2NEUgMDY0RCAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RCAwNjRFIDA2NEQgMDY0QyAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOworMDA2MSAwNjRGIDA2NEUgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NEUgMDY0RiAwNjRFIDA2NEQgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjsKKzAwNjEgMDY1MCAwNjRGIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjRGIDA2NTAgMDY0RiAwNjRFIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7CiswMDYxIDA2NTEgMDY1MCAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MCAwNjUxIDA2NTAgMDY0RiAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOworMDA2MSAwNjUyIDA2NTEgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NTEgMDY1MiAwNjUxIDA2NTAgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjsKKzAwNjEgMDY3MCAwNjUyIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwNjUyIDA2NzAgMDY1MiAwNjUxIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTMgMDA2MjswMEUwIDA1QUUgMDY1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOworMDA2MSAwNjUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTQgMDA2MjswMEUwIDA1QUUgMDY1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOworMDA2MSAwNjU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2NTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjsKKzAwNjEgMDY1NSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNjU2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NiAwNTlBIDAwNjI7CiswMDYxIDA2NTYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDY1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDY1NyAwMDYyOzAwRTAgMDVBRSAwNjU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDY1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NyAwMzE1IDAwNjI7CiswMDYxIDA2NTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDY1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDY1OCAwMDYyOzAwRTAgMDVBRSAwNjU4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDY1OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OCAwMzE1IDAwNjI7CiswMDYxIDA2NTggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDY1OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDY1OSAwMDYyOzAwRTAgMDVBRSAwNjU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDY1OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OSAwMzE1IDAwNjI7CiswMDYxIDA2NTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDY1OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDY1QSAwMDYyOzAwRTAgMDVBRSAwNjVBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDY1QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QSAwMzE1IDAwNjI7CiswMDYxIDA2NUEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDY1QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDY1QiAwMDYyOzAwRTAgMDVBRSAwNjVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDY1QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QiAwMzE1IDAwNjI7CiswMDYxIDA2NUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDY1QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDY1QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDY1QyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NUMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NUMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NUMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NUMgMDU5QSAwMDYyOworMDA2MSAwNjVDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2NUMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NUMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NUMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NUMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUQgMDA2MjswMEUwIDA1QUUgMDY1RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1RCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUQgMDMxNSAwMDYyOworMDA2MSAwNjVEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUUgMDA2MjswMEUwIDA1QUUgMDY1RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1RSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUUgMDMxNSAwMDYyOworMDA2MSAwNjVFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA3MTEgMDY3MCAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjsKKzAwNjEgMDY3MCAwNzExIDA2NzAgMDY1MiAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkQ2IDAwNjI7MDBFMCAwNUFFIDA2RDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ2IDAzMTUgMDA2MjsKKzAwNjEgMDZENiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkQ3IDAwNjI7MDBFMCAwNUFFIDA2RDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ3IDAzMTUgMDA2MjsKKzAwNjEgMDZENyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkQ4IDAwNjI7MDBFMCAwNUFFIDA2RDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkQ4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ4IDAzMTUgMDA2MjsKKzAwNjEgMDZEOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkQ4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkQ5IDAwNjI7MDBFMCAwNUFFIDA2RDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ5IDAzMTUgMDA2MjsKKzAwNjEgMDZEOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkQ5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkRBIDAwNjI7MDBFMCAwNUFFIDA2REEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRBIDAzMTUgMDA2MjsKKzAwNjEgMDZEQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkRCIDAwNjI7MDBFMCAwNUFFIDA2REIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRCIDAzMTUgMDA2MjsKKzAwNjEgMDZEQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkRCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkRDIDAwNjI7MDBFMCAwNUFFIDA2REMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRDIDAzMTUgMDA2MjsKKzAwNjEgMDZEQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkRDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkRGIDAwNjI7MDBFMCAwNUFFIDA2REYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkRGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRGIDAzMTUgMDA2MjsKKzAwNjEgMDZERiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkRGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkRGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkUwIDAwNjI7MDBFMCAwNUFFIDA2RTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUwIDAzMTUgMDA2MjsKKzAwNjEgMDZFMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkUxIDAwNjI7MDBFMCAwNUFFIDA2RTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUxIDAzMTUgMDA2MjsKKzAwNjEgMDZFMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkUyIDAwNjI7MDBFMCAwNUFFIDA2RTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUyIDAzMTUgMDA2MjsKKzAwNjEgMDZFMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkUyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkUzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFMyAwNTlBIDAwNjI7CiswMDYxIDA2RTMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFNCAwMDYyOzAwRTAgMDVBRSAwNkU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNCAwMzE1IDAwNjI7CiswMDYxIDA2RTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFNyAwMDYyOzAwRTAgMDVBRSAwNkU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNyAwMzE1IDAwNjI7CiswMDYxIDA2RTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFNyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFOCAwMDYyOzAwRTAgMDVBRSAwNkU4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFOCAwMzE1IDAwNjI7CiswMDYxIDA2RTggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUEgMDU5QSAwMDYyOworMDA2MSAwNkVBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RUIgMDA2MjswMEUwIDA1QUUgMDZFQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUIgMDMxNSAwMDYyOworMDA2MSAwNkVCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RUMgMDA2MjswMEUwIDA1QUUgMDZFQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUMgMDMxNSAwMDYyOworMDA2MSAwNkVDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RUQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVEIDA1OUEgMDA2MjsKKzAwNjEgMDZFRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkVEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwQzU1IDA3MTEgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7CiswMDYxIDA3MTEgMEM1NSAwNzExIDA2NzAgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczMCAwMDYyOzAwRTAgMDVBRSAwNzMwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMCAwMzE1IDAwNjI7CiswMDYxIDA3MzAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczMSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzEgMDU5QSAwMDYyOworMDA2MSAwNzMxIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzIgMDA2MjswMEUwIDA1QUUgMDczMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzIgMDMxNSAwMDYyOworMDA2MSAwNzMyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzMgMDA2MjswMEUwIDA1QUUgMDczMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzMgMDMxNSAwMDYyOworMDA2MSAwNzMzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM0IDA1OUEgMDA2MjsKKzAwNjEgMDczNCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzM1IDAwNjI7MDBFMCAwNUFFIDA3MzUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzM1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM1IDAzMTUgMDA2MjsKKzAwNjEgMDczNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzM1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzM2IDAwNjI7MDBFMCAwNUFFIDA3MzYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzM2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM2IDAzMTUgMDA2MjsKKzAwNjEgMDczNiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzM2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzM2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNyAwNTlBIDAwNjI7CiswMDYxIDA3MzcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzggMDU5QSAwMDYyOworMDA2MSAwNzM4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzkgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM5IDA1OUEgMDA2MjsKKzAwNjEgMDczOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNBIDAwNjI7MDBFMCAwNUFFIDA3M0EgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0EgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNBIDAzMTUgMDA2MjsKKzAwNjEgMDczQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQiAwNTlBIDAwNjI7CiswMDYxIDA3M0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0MgMDU5QSAwMDYyOworMDA2MSAwNzNDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0MgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3M0QgMDA2MjswMEUwIDA1QUUgMDczRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3M0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0QgMDMxNSAwMDYyOworMDA2MSAwNzNEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3M0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0QgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0UgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNFIDA1OUEgMDA2MjsKKzAwNjEgMDczRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNGIDAwNjI7MDBFMCAwNUFFIDA3M0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0YgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNGIDAzMTUgMDA2MjsKKzAwNjEgMDczRiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQwIDAwNjI7MDBFMCAwNUFFIDA3NDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQwIDAzMTUgMDA2MjsKKzAwNjEgMDc0MCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQxIDAwNjI7MDBFMCAwNUFFIDA3NDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQxIDAzMTUgMDA2MjsKKzAwNjEgMDc0MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0MiAwNTlBIDAwNjI7CiswMDYxIDA3NDIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MyAwMDYyOzAwRTAgMDVBRSAwNzQzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MyAwMzE1IDAwNjI7CiswMDYxIDA3NDMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0NCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDQgMDU5QSAwMDYyOworMDA2MSAwNzQ0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDUgMDA2MjswMEUwIDA1QUUgMDc0NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDUgMDMxNSAwMDYyOworMDA2MSAwNzQ1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ2IDA1OUEgMDA2MjsKKzAwNjEgMDc0NiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ3IDAwNjI7MDBFMCAwNUFFIDA3NDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ3IDAzMTUgMDA2MjsKKzAwNjEgMDc0NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0OCAwNTlBIDAwNjI7CiswMDYxIDA3NDggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0OCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0OSAwMDYyOzAwRTAgMDVBRSAwNzQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0OSAwMzE1IDAwNjI7CiswMDYxIDA3NDkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0QSAwMDYyOzAwRTAgMDVBRSAwNzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0QSAwMzE1IDAwNjI7CiswMDYxIDA3NEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwOTNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDA5NEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDk0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwOTUxIDAwNjI7MDBFMCAwNUFFIDA5NTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwOTUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUxIDAzMTUgMDA2MjsKKzAwNjEgMDk1MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwOTUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwOTUyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDk1MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDk1MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDk1MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDk1MiAwNTlBIDAwNjI7CiswMDYxIDA5NTIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDk1MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDk1MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDk1MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDk1MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1MyAwMDYyOzAwRTAgMDVBRSAwOTUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MyAwMzE1IDAwNjI7CiswMDYxIDA5NTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1NCAwMDYyOzAwRTAgMDVBRSAwOTU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTU0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1NCAwMzE1IDAwNjI7CiswMDYxIDA5NTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMDlCQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5QkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5QkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5QkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5QkMgMzA5OSAwMDYyOworMDA2MSAwOUJDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDA5QkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5QkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5QkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5QkMgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDA5Q0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwOUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOUNEIDA1QjAgMDA2MjsKKzAwNjEgMDlDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwOUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOUNEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQTNDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEEzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEEzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEEzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEEzQyAzMDk5IDAwNjI7CiswMDYxIDBBM0MgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEEzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEEzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEEzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEEzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEE0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBNEQgMDVCMCAwMDYyOworMDA2MSAwQTREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBBNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBNEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBBQkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwQUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQUJDIDMwOTkgMDA2MjsKKzAwNjEgMEFCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQUJDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQUNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEFDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEFDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEFDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEFDRCAwNUIwIDAwNjI7CiswMDYxIDBBQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEFDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEFDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEFDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEFDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEIzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBCM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBCM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBCM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBCM0MgMzA5OSAwMDYyOworMDA2MSAwQjNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBCM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBCM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBCM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBCM0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBCNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQjREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQjREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQjREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQjREIDA1QjAgMDA2MjsKKzAwNjEgMEI0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQjREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQjREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQjREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQjREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQkNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEJDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEJDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEJDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEJDRCAwNUIwIDAwNjI7CiswMDYxIDBCQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEJDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEJDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEJDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEJDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEM0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBDNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBDNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBDNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBDNEQgMDVCMCAwMDYyOworMDA2MSAwQzREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBDNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBDNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBDNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBDNEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBDNTYgMEM1NSAwNzExIDBDNTUgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjsKKzAwNjEgMEM1NSAwQzU2IDBDNTUgMDcxMSAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOworMDA2MSAwRTM4IDBDNTYgMEM1NSAwQzU2IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7CiswMDYxIDBDNTYgMEUzOCAwQzU2IDBDNTUgMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMENCQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBDQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBDQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBDQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBDQkMgMzA5OSAwMDYyOworMDA2MSAwQ0JDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBDQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBDQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBDQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBDQkMgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjsKKzAwNjEgMENDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwRDREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7CiswMDYxIDBENEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMERDQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOworMDA2MSAwRENBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFNDggMEUzOCAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEUzOCAwRTQ4IDBFMzggMEM1NiAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM5IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7CiswMDYxIDBFMzkgMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEUzQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOworMDA2MSAwRTNBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNDggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEU0OCAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ5IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7CiswMDYxIDBFNDkgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0QSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOworMDA2MSAwRTRBIDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEIgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjsKKzAwNjEgMEU0QiAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUM4IDBFQjggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQjggMEVDOCAwRUI4IDBFNDggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOSAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOworMDA2MSAwRUI5IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEVDOCAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM5IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7CiswMDYxIDBFQzkgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDQSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOworMDA2MSAwRUNBIDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0IgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjsKKzAwNjEgMEVDQiAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7CiswMDYxIDBGMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOworMDA2MSAwRjE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMzUgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjsKKzAwNjEgMEYzNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7CiswMDYxIDBGMzcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMEYzOSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOworMDA2MSAwRjM5IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDBGNzIgMEY3MSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3MSAwRjcyIDBGNzEgMEVDOCAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzIgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMyMSAwRjc0IDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDAzMjEgMEY3NCAwRjcyIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0EgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjsKKzAwNjEgMEY3QSAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdCIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7CiswMDYxIDBGN0IgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QyAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOworMDA2MSAwRjdDIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0QgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjsKKzAwNjEgMEY3RCAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjgwIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7CiswMDYxIDBGODAgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MiAwMDYyOzAwRTAgMDVBRSAwRjgyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgyIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7CiswMDYxIDBGODIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MyAwMDYyOzAwRTAgMDVBRSAwRjgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7CiswMDYxIDBGODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEY4NCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOworMDA2MSAwRjg0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODYgMDA2MjswMEUwIDA1QUUgMEY4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOworMDA2MSAwRjg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODcgMDA2MjswMEUwIDA1QUUgMEY4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOworMDA2MSAwRjg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGQzYgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjsKKzAwNjEgMEZDNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAxMDM3IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7CiswMDYxIDEwMzcgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTAzOSAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOworMDA2MSAxMDM5IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDEzNUYgMDA2MjswMEUwIDA1QUUgMTM1RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTM1RiAwMzE1IDAwNjI7MDBFMCAwNUFFIDEzNUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEzNUYgMDMxNSAwMDYyOworMDA2MSAxMzVGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDEzNUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEzNUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEzNUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEzNUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3MTQgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjsKKzAwNjEgMTcxNCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzM0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7CiswMDYxIDE3MzQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTdEMiAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOworMDA2MSAxN0QyIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDE3REQgMDA2MjswMEUwIDA1QUUgMTdERCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTdERCAwMzE1IDAwNjI7MDBFMCAwNUFFIDE3REQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDE3REQgMDMxNSAwMDYyOworMDA2MSAxN0REIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDE3REQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDE3REQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDE3REQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDE3REQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAxOEE5IDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7CiswMDYxIDE4QTkgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDE5MzkgMDA2MjswMDYxIDAzMTYgMDU5QSAxOTM5IDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAxOTM5IDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAxOTM5IDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAxOTM5IDMwMkUgMDA2MjsKKzAwNjEgMTkzOSAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAxOTM5IDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAxOTM5IDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAxOTM5IDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAxOTM5IDA1OUEgMzAyRSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxOTNBIDAwNjI7MDBFMCAwNUFFIDE5M0EgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDE5M0EgMDMxNSAwMDYyOzAwRTAgMDVBRSAxOTNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxOTNBIDAzMTUgMDA2MjsKKzAwNjEgMTkzQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxOTNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxOTNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxOTNBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxOTNBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxOTNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTkzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTkzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTkzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTkzQiAwNTlBIDAwNjI7CiswMDYxIDE5M0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMTkzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTkzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTkzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTkzQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUExNyAwMDYyOzAwRTAgMDVBRSAxQTE3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxQTE3IDAzMTUgMDA2MjswMEUwIDA1QUUgMUExNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUExNyAwMzE1IDAwNjI7CiswMDYxIDFBMTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUExNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUExNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUExNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUExNyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUExOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFBMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFBMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFBMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFBMTggMDU5QSAwMDYyOworMDA2MSAxQTE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFBMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFBMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFBMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFBMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEQzAgMDA2MjswMEUwIDA1QUUgMURDMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMURDMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEQzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzAgMDMxNSAwMDYyOworMDA2MSAxREMwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEQzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEQzEgMDA2MjswMEUwIDA1QUUgMURDMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMURDMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEQzEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzEgMDMxNSAwMDYyOworMDA2MSAxREMxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEQzEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEQzEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEQzIgMDA2MjswMDYxIDMwMkEgMDMxNiAxREMyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxREMyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxREMyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxREMyIDA1OUEgMDA2MjsKKzAwNjEgMURDMiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxREMyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxREMyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxREMyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxREMyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxREMzIDAwNjI7MDBFMCAwNUFFIDFEQzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxREMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMzIDAzMTUgMDA2MjsKKzAwNjEgMURDMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxREMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQwIDAwNjI7MDBFMCAwNUFFIDIwRDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQwIDAzMTUgMDA2MjsKKzAwNjEgMjBEMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQxIDAwNjI7MDBFMCAwNUFFIDIwRDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQxIDAzMTUgMDA2MjsKKzAwNjEgMjBEMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEMiAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjsKKzAwNjEgMjBEMiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQzIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOworMDA2MSAyMEQzIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENCAwMDYyOzAwRTAgMDVBRSAyMEQ0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ0IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENCAwMzE1IDAwNjI7CiswMDYxIDIwRDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENSAwMDYyOzAwRTAgMDVBRSAyMEQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ1IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENSAwMzE1IDAwNjI7CiswMDYxIDIwRDUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENiAwMDYyOzAwRTAgMDVBRSAyMEQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENiAwMzE1IDAwNjI7CiswMDYxIDIwRDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENyAwMDYyOzAwRTAgMDVBRSAyMEQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENyAwMzE1IDAwNjI7CiswMDYxIDIwRDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDggMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7CiswMDYxIDIwRDggMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEOSAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjsKKzAwNjEgMjBEOSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMERBIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOworMDA2MSAyMERBIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQiAwMDYyOzAwRTAgMDVBRSAyMERCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERCIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQiAwMzE1IDAwNjI7CiswMDYxIDIwREIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQyAwMDYyOzAwRTAgMDVBRSAyMERDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERDIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQyAwMzE1IDAwNjI7CiswMDYxIDIwREMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFMSAwMDYyOzAwRTAgMDVBRSAyMEUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFMSAwMzE1IDAwNjI7CiswMDYxIDIwRTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRTUgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7CiswMDYxIDIwRTUgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFNiAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjsKKzAwNjEgMjBFNiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTcgMDA2MjswMEUwIDA1QUUgMjBFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTcgMDMxNSAwMDYyOworMDA2MSAyMEU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDIwRTggMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjsKKzAwNjEgMjBFOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEU5IDAwNjI7MDBFMCAwNUFFIDIwRTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU5IDAzMTUgMDA2MjsKKzAwNjEgMjBFOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFQSAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjsKKzAwNjEgMjBFQSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEVCIDAwNjI7MDA2MSAwMzM0IDIwRUIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVCIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUIgMDkzQyAwMDYyOworMDA2MSAyMEVCIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFQiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVCIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQiAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNiAzMDJBIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAzMDJBIDAzMTYgMzAyQSAwMzFCIDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAzMDJCIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7CiswMDYxIDMwMkIgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzNUMgMDMxNSAwMzAwIDMwMkMgMDA2MjswMEUwIDAzMTUgMzAyQyAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMzAyQyAwMzVDIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM1QyAwMDYyOworMDA2MSAzMDJDIDAzNUMgMDMxNSAwMzAwIDAwNjI7MDBFMCAzMDJDIDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAzMDJDIDAzMTUgMDM1QyAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMzAyRSAwNTlBIDAzMTYgMzAyRCAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOworMDA2MSAzMDJEIDMwMkUgMDU5QSAwMzE2IDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJFIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAzMDJFIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMUQxNkQgMzAyRSAwNTlBIDMwMkYgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7CiswMDYxIDMwMkYgMUQxNkQgMzAyRSAwNTlBIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAwOTREIDMwOTkgMDkzQyAzMDk5IDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDMwOTkgMDk0RCAzMDk5IDA5M0MgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5QSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOworMDA2MSAzMDlBIDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IEE4MDYgMDA2MjswMDYxIDMwOTkgMDk0RCBBODA2IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCBBODA2IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCBBODA2IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCBBODA2IDA1QjAgMDA2MjsKKzAwNjEgQTgwNiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSBBODA2IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSBBODA2IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSBBODA2IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSBBODA2IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNjRCIEZCMUUgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7CiswMDYxIEZCMUUgMDY0QiBGQjFFIDA1QzIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMCAwMDYyOzAwRTAgMDVBRSBGRTIwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIwIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMCAwMzE1IDAwNjI7CiswMDYxIEZFMjAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMSAwMDYyOzAwRTAgMDVBRSBGRTIxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIxIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMSAwMzE1IDAwNjI7CiswMDYxIEZFMjEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMiAwMDYyOzAwRTAgMDVBRSBGRTIyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIyIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMiAwMzE1IDAwNjI7CiswMDYxIEZFMjIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMyAwMDYyOzAwRTAgMDVBRSBGRTIzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIzIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMyAwMzE1IDAwNjI7CiswMDYxIEZFMjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMTBBMEQgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEwRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBMEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTBEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEwRCAwNTlBIDAwNjI7CiswMDYxIDEwQTBEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDEwQTBEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEwRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBMEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTBEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxMEEwRiAwMDYyOzAwRTAgMDVBRSAxMEEwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTBBMEYgMDMxNSAwMDYyOzAwRTAgMDVBRSAxMEEwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTBBMEYgMDMxNSAwMDYyOworMDA2MSAxMEEwRiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxMEEwRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMEYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTBGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEwRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMTBBMzggMDA2MjswMEUwIDA1QUUgMTBBMzggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTM4IDAzMTUgMDA2MjswMEUwIDA1QUUgMTBBMzggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTM4IDAzMTUgMDA2MjsKKzAwNjEgMTBBMzggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMTBBMzggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTM4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEzOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMzggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxMEEzOSAwMDYyOzAwNjEgMDMzNCAxMEEzOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDEwQTM5IDA5M0MgMDA2MjswMDYxIDAzMzQgMTBBMzkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxMEEzOSAwOTNDIDAwNjI7CiswMDYxIDEwQTM5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMTBBMzkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxMEEzOSAwMzM0IDA5M0MgMDA2MjswMDYxIDEwQTM5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMTBBMzkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDEwQTNBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEzQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBM0EgMDU5QSAwMDYyOworMDA2MSAxMEEzQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxMEEzQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEzQSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTBBM0YgMDA2MjswMDYxIDMwOTkgMDk0RCAxMEEzRiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTBBM0YgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwQTNGIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMEEzRiAwNUIwIDAwNjI7CiswMDYxIDEwQTNGIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDEwQTNGIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMEEzRiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTBBM0YgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwQTNGIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjUgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTY2IDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOworMDA2MSAxRDE2NiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY3IDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjcgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY4IDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjggMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY5IDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjkgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDVBRSAxRDE2RCAzMDJFIDFEMTZEIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMUQxNkQgMDVBRSAxRDE2RCAzMDJFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7CiswMDYxIDFEMTZFIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2RiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjsKKzAwNjEgMUQxNkYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcwIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOworMDA2MSAxRDE3MCAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7CiswMDYxIDFEMTcxIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzIgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOworMDA2MSAxRDE3QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0MgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7CiswMDYxIDFEMTdDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0QgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOworMDA2MSAxRDE3RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0YgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7CiswMDYxIDFEMTdGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjsKKzAwNjEgMUQxODAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOworMDA2MSAxRDE4MSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7CiswMDYxIDFEMTgyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOworMDA2MSAxRDE4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODYgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjsKKzAwNjEgMUQxODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg3IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7CiswMDYxIDFEMTg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4OCAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOworMDA2MSAxRDE4OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODkgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjsKKzAwNjEgMUQxODkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOworMDA2MSAxRDE4QSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxOEIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7CiswMDYxIDFEMThCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOworMDA2MSAxRDFBQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUIgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFDIDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7CiswMDYxIDFEMUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBRCAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOworMDA2MSAxRDFBRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQyNDIgMDA2MjswMEUwIDA1QUUgMUQyNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQyIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQyNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQyIDAzMTUgMDA2MjsKKzAwNjEgMUQyNDIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQyNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMjQzIDAwNjI7MDBFMCAwNUFFIDFEMjQzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMjQzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MyAwMzE1IDAwNjI7CiswMDYxIDFEMjQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMjQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDI0NCAwMDYyOzAwRTAgMDVBRSAxRDI0NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDI0NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDQgMDMxNSAwMDYyOworMDA2MSAxRDI0NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDI0NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0NCAwMzAwIDAzMTUgMDA2MjsKKyMKK0BQYXJ0MyAjIFBSSSAjMjkgVGVzdAorIworMDlDNyAwMzM0IDA5QkU7MDlDNyAwMzM0IDA5QkU7MDlDNyAwMzM0IDA5QkU7MDlDNyAwMzM0IDA5QkU7MDlDNyAwMzM0IDA5QkU7CiswOUM3IDAzMzQgMDlENzswOUM3IDAzMzQgMDlENzswOUM3IDAzMzQgMDlENzswOUM3IDAzMzQgMDlENzswOUM3IDAzMzQgMDlENzsKKzBCNDcgMDMzNCAwQjNFOzBCNDcgMDMzNCAwQjNFOzBCNDcgMDMzNCAwQjNFOzBCNDcgMDMzNCAwQjNFOzBCNDcgMDMzNCAwQjNFOworMEI0NyAwMzM0IDBCNTY7MEI0NyAwMzM0IDBCNTY7MEI0NyAwMzM0IDBCNTY7MEI0NyAwMzM0IDBCNTY7MEI0NyAwMzM0IDBCNTY7CiswQjQ3IDAzMzQgMEI1NzswQjQ3IDAzMzQgMEI1NzswQjQ3IDAzMzQgMEI1NzswQjQ3IDAzMzQgMEI1NzswQjQ3IDAzMzQgMEI1NzsKKzBCOTIgMDMzNCAwQkQ3OzBCOTIgMDMzNCAwQkQ3OzBCOTIgMDMzNCAwQkQ3OzBCOTIgMDMzNCAwQkQ3OzBCOTIgMDMzNCAwQkQ3OworMEJDNiAwMzM0IDBCQkU7MEJDNiAwMzM0IDBCQkU7MEJDNiAwMzM0IDBCQkU7MEJDNiAwMzM0IDBCQkU7MEJDNiAwMzM0IDBCQkU7CiswQkM2IDAzMzQgMEJENzswQkM2IDAzMzQgMEJENzswQkM2IDAzMzQgMEJENzswQkM2IDAzMzQgMEJENzswQkM2IDAzMzQgMEJENzsKKzBCQzcgMDMzNCAwQkJFOzBCQzcgMDMzNCAwQkJFOzBCQzcgMDMzNCAwQkJFOzBCQzcgMDMzNCAwQkJFOzBCQzcgMDMzNCAwQkJFOworMENCRiAwMzM0IDBDRDU7MENCRiAwMzM0IDBDRDU7MENCRiAwMzM0IDBDRDU7MENCRiAwMzM0IDBDRDU7MENCRiAwMzM0IDBDRDU7CiswQ0M2IDAzMzQgMENDMjswQ0M2IDAzMzQgMENDMjswQ0M2IDAzMzQgMENDMjswQ0M2IDAzMzQgMENDMjswQ0M2IDAzMzQgMENDMjsKKzBDQzYgMDMzNCAwQ0Q1OzBDQzYgMDMzNCAwQ0Q1OzBDQzYgMDMzNCAwQ0Q1OzBDQzYgMDMzNCAwQ0Q1OzBDQzYgMDMzNCAwQ0Q1OworMENDNiAwMzM0IDBDRDY7MENDNiAwMzM0IDBDRDY7MENDNiAwMzM0IDBDRDY7MENDNiAwMzM0IDBDRDY7MENDNiAwMzM0IDBDRDY7CiswQ0NBIDAzMzQgMENENTswQ0NBIDAzMzQgMENENTswQ0M2IDBDQzIgMDMzNCAwQ0Q1OzBDQ0EgMDMzNCAwQ0Q1OzBDQzYgMENDMiAwMzM0IDBDRDU7CiswRDQ2IDAzMzQgMEQzRTswRDQ2IDAzMzQgMEQzRTswRDQ2IDAzMzQgMEQzRTswRDQ2IDAzMzQgMEQzRTswRDQ2IDAzMzQgMEQzRTsKKzBENDYgMDMzNCAwRDU3OzBENDYgMDMzNCAwRDU3OzBENDYgMDMzNCAwRDU3OzBENDYgMDMzNCAwRDU3OzBENDYgMDMzNCAwRDU3OworMEQ0NyAwMzM0IDBEM0U7MEQ0NyAwMzM0IDBEM0U7MEQ0NyAwMzM0IDBEM0U7MEQ0NyAwMzM0IDBEM0U7MEQ0NyAwMzM0IDBEM0U7CiswREQ5IDAzMzQgMERDRjswREQ5IDAzMzQgMERDRjswREQ5IDAzMzQgMERDRjswREQ5IDAzMzQgMERDRjswREQ5IDAzMzQgMERDRjsKKzBERDkgMDMzNCAwRERGOzBERDkgMDMzNCAwRERGOzBERDkgMDMzNCAwRERGOzBERDkgMDMzNCAwRERGOzBERDkgMDMzNCAwRERGOworMEY0MCAwMzM0IDBGQjU7MEY0MCAwMzM0IDBGQjU7MEY0MCAwMzM0IDBGQjU7MEY0MCAwMzM0IDBGQjU7MEY0MCAwMzM0IDBGQjU7CiswRjQyIDAzMzQgMEZCNzswRjQyIDAzMzQgMEZCNzswRjQyIDAzMzQgMEZCNzswRjQyIDAzMzQgMEZCNzswRjQyIDAzMzQgMEZCNzsKKzBGNEMgMDMzNCAwRkI3OzBGNEMgMDMzNCAwRkI3OzBGNEMgMDMzNCAwRkI3OzBGNEMgMDMzNCAwRkI3OzBGNEMgMDMzNCAwRkI3OworMEY1MSAwMzM0IDBGQjc7MEY1MSAwMzM0IDBGQjc7MEY1MSAwMzM0IDBGQjc7MEY1MSAwMzM0IDBGQjc7MEY1MSAwMzM0IDBGQjc7CiswRjU2IDAzMzQgMEZCNzswRjU2IDAzMzQgMEZCNzswRjU2IDAzMzQgMEZCNzswRjU2IDAzMzQgMEZCNzswRjU2IDAzMzQgMEZCNzsKKzBGNUIgMDMzNCAwRkI3OzBGNUIgMDMzNCAwRkI3OzBGNUIgMDMzNCAwRkI3OzBGNUIgMDMzNCAwRkI3OzBGNUIgMDMzNCAwRkI3OworMEY5MCAwMzM0IDBGQjU7MEY5MCAwMzM0IDBGQjU7MEY5MCAwMzM0IDBGQjU7MEY5MCAwMzM0IDBGQjU7MEY5MCAwMzM0IDBGQjU7CiswRjkyIDAzMzQgMEZCNzswRjkyIDAzMzQgMEZCNzswRjkyIDAzMzQgMEZCNzswRjkyIDAzMzQgMEZCNzswRjkyIDAzMzQgMEZCNzsKKzBGOUMgMDMzNCAwRkI3OzBGOUMgMDMzNCAwRkI3OzBGOUMgMDMzNCAwRkI3OzBGOUMgMDMzNCAwRkI3OzBGOUMgMDMzNCAwRkI3OworMEZBMSAwMzM0IDBGQjc7MEZBMSAwMzM0IDBGQjc7MEZBMSAwMzM0IDBGQjc7MEZBMSAwMzM0IDBGQjc7MEZBMSAwMzM0IDBGQjc7CiswRkE2IDAzMzQgMEZCNzswRkE2IDAzMzQgMEZCNzswRkE2IDAzMzQgMEZCNzswRkE2IDAzMzQgMEZCNzswRkE2IDAzMzQgMEZCNzsKKzBGQUIgMDMzNCAwRkI3OzBGQUIgMDMzNCAwRkI3OzBGQUIgMDMzNCAwRkI3OzBGQUIgMDMzNCAwRkI3OzBGQUIgMDMzNCAwRkI3OworMTAyNSAwMzM0IDEwMkU7MTAyNSAwMzM0IDEwMkU7MTAyNSAwMzM0IDEwMkU7MTAyNSAwMzM0IDEwMkU7MTAyNSAwMzM0IDEwMkU7CisxMTAwIDAzMzQgMTE2MTsxMTAwIDAzMzQgMTE2MTsxMTAwIDAzMzQgMTE2MTsxMTAwIDAzMzQgMTE2MTsxMTAwIDAzMzQgMTE2MTsKKzExMDAgMDMzNCAxMTZFOzExMDAgMDMzNCAxMTZFOzExMDAgMDMzNCAxMTZFOzExMDAgMDMzNCAxMTZFOzExMDAgMDMzNCAxMTZFOworMTEwMSAwMzM0IDExNjY7MTEwMSAwMzM0IDExNjY7MTEwMSAwMzM0IDExNjY7MTEwMSAwMzM0IDExNjY7MTEwMSAwMzM0IDExNjY7CisxMTAxIDAzMzQgMTE3MzsxMTAxIDAzMzQgMTE3MzsxMTAxIDAzMzQgMTE3MzsxMTAxIDAzMzQgMTE3MzsxMTAxIDAzMzQgMTE3MzsKKzExMDIgMDMzNCAxMTZCOzExMDIgMDMzNCAxMTZCOzExMDIgMDMzNCAxMTZCOzExMDIgMDMzNCAxMTZCOzExMDIgMDMzNCAxMTZCOworMTEwMyAwMzM0IDExNjM7MTEwMyAwMzM0IDExNjM7MTEwMyAwMzM0IDExNjM7MTEwMyAwMzM0IDExNjM7MTEwMyAwMzM0IDExNjM7CisxMTAzIDAzMzQgMTE3MDsxMTAzIDAzMzQgMTE3MDsxMTAzIDAzMzQgMTE3MDsxMTAzIDAzMzQgMTE3MDsxMTAzIDAzMzQgMTE3MDsKKzExMDQgMDMzNCAxMTY4OzExMDQgMDMzNCAxMTY4OzExMDQgMDMzNCAxMTY4OzExMDQgMDMzNCAxMTY4OzExMDQgMDMzNCAxMTY4OworMTEwNCAwMzM0IDExNzU7MTEwNCAwMzM0IDExNzU7MTEwNCAwMzM0IDExNzU7MTEwNCAwMzM0IDExNzU7MTEwNCAwMzM0IDExNzU7CisxMTA1IDAzMzQgMTE2RDsxMTA1IDAzMzQgMTE2RDsxMTA1IDAzMzQgMTE2RDsxMTA1IDAzMzQgMTE2RDsxMTA1IDAzMzQgMTE2RDsKKzExMDYgMDMzNCAxMTY1OzExMDYgMDMzNCAxMTY1OzExMDYgMDMzNCAxMTY1OzExMDYgMDMzNCAxMTY1OzExMDYgMDMzNCAxMTY1OworMTEwNiAwMzM0IDExNzI7MTEwNiAwMzM0IDExNzI7MTEwNiAwMzM0IDExNzI7MTEwNiAwMzM0IDExNzI7MTEwNiAwMzM0IDExNzI7CisxMTA3IDAzMzQgMTE2QTsxMTA3IDAzMzQgMTE2QTsxMTA3IDAzMzQgMTE2QTsxMTA3IDAzMzQgMTE2QTsxMTA3IDAzMzQgMTE2QTsKKzExMDggMDMzNCAxMTYyOzExMDggMDMzNCAxMTYyOzExMDggMDMzNCAxMTYyOzExMDggMDMzNCAxMTYyOzExMDggMDMzNCAxMTYyOworMTEwOCAwMzM0IDExNkY7MTEwOCAwMzM0IDExNkY7MTEwOCAwMzM0IDExNkY7MTEwOCAwMzM0IDExNkY7MTEwOCAwMzM0IDExNkY7CisxMTA5IDAzMzQgMTE2NzsxMTA5IDAzMzQgMTE2NzsxMTA5IDAzMzQgMTE2NzsxMTA5IDAzMzQgMTE2NzsxMTA5IDAzMzQgMTE2NzsKKzExMDkgMDMzNCAxMTc0OzExMDkgMDMzNCAxMTc0OzExMDkgMDMzNCAxMTc0OzExMDkgMDMzNCAxMTc0OzExMDkgMDMzNCAxMTc0OworMTEwQSAwMzM0IDExNkM7MTEwQSAwMzM0IDExNkM7MTEwQSAwMzM0IDExNkM7MTEwQSAwMzM0IDExNkM7MTEwQSAwMzM0IDExNkM7CisxMTBCIDAzMzQgMTE2NDsxMTBCIDAzMzQgMTE2NDsxMTBCIDAzMzQgMTE2NDsxMTBCIDAzMzQgMTE2NDsxMTBCIDAzMzQgMTE2NDsKKzExMEIgMDMzNCAxMTcxOzExMEIgMDMzNCAxMTcxOzExMEIgMDMzNCAxMTcxOzExMEIgMDMzNCAxMTcxOzExMEIgMDMzNCAxMTcxOworMTEwQyAwMzM0IDExNjk7MTEwQyAwMzM0IDExNjk7MTEwQyAwMzM0IDExNjk7MTEwQyAwMzM0IDExNjk7MTEwQyAwMzM0IDExNjk7CisxMTBEIDAzMzQgMTE2MTsxMTBEIDAzMzQgMTE2MTsxMTBEIDAzMzQgMTE2MTsxMTBEIDAzMzQgMTE2MTsxMTBEIDAzMzQgMTE2MTsKKzExMEQgMDMzNCAxMTZFOzExMEQgMDMzNCAxMTZFOzExMEQgMDMzNCAxMTZFOzExMEQgMDMzNCAxMTZFOzExMEQgMDMzNCAxMTZFOworMTEwRSAwMzM0IDExNjY7MTEwRSAwMzM0IDExNjY7MTEwRSAwMzM0IDExNjY7MTEwRSAwMzM0IDExNjY7MTEwRSAwMzM0IDExNjY7CisxMTBFIDAzMzQgMTE3MzsxMTBFIDAzMzQgMTE3MzsxMTBFIDAzMzQgMTE3MzsxMTBFIDAzMzQgMTE3MzsxMTBFIDAzMzQgMTE3MzsKKzExMEYgMDMzNCAxMTZCOzExMEYgMDMzNCAxMTZCOzExMEYgMDMzNCAxMTZCOzExMEYgMDMzNCAxMTZCOzExMEYgMDMzNCAxMTZCOworMTExMCAwMzM0IDExNjM7MTExMCAwMzM0IDExNjM7MTExMCAwMzM0IDExNjM7MTExMCAwMzM0IDExNjM7MTExMCAwMzM0IDExNjM7CisxMTEwIDAzMzQgMTE3MDsxMTEwIDAzMzQgMTE3MDsxMTEwIDAzMzQgMTE3MDsxMTEwIDAzMzQgMTE3MDsxMTEwIDAzMzQgMTE3MDsKKzExMTEgMDMzNCAxMTY4OzExMTEgMDMzNCAxMTY4OzExMTEgMDMzNCAxMTY4OzExMTEgMDMzNCAxMTY4OzExMTEgMDMzNCAxMTY4OworMTExMSAwMzM0IDExNzU7MTExMSAwMzM0IDExNzU7MTExMSAwMzM0IDExNzU7MTExMSAwMzM0IDExNzU7MTExMSAwMzM0IDExNzU7CisxMTEyIDAzMzQgMTE2RDsxMTEyIDAzMzQgMTE2RDsxMTEyIDAzMzQgMTE2RDsxMTEyIDAzMzQgMTE2RDsxMTEyIDAzMzQgMTE2RDsKK0FDNTQgMDMzNCAxMUFFO0FDNTQgMDMzNCAxMUFFOzExMDAgMTE2NCAwMzM0IDExQUU7QUM1NCAwMzM0IDExQUU7MTEwMCAxMTY0IDAzMzQgMTFBRTsKK0FDQTggMDMzNCAxMUI1O0FDQTggMDMzNCAxMUI1OzExMDAgMTE2NyAwMzM0IDExQjU7QUNBOCAwMzM0IDExQjU7MTEwMCAxMTY3IDAzMzQgMTFCNTsKK0FDRkMgMDMzNCAxMUJDO0FDRkMgMDMzNCAxMUJDOzExMDAgMTE2QSAwMzM0IDExQkM7QUNGQyAwMzM0IDExQkM7MTEwMCAxMTZBIDAzMzQgMTFCQzsKK0FEQzAgMDMzNCAxMUFFO0FEQzAgMDMzNCAxMUFFOzExMDAgMTE3MSAwMzM0IDExQUU7QURDMCAwMzM0IDExQUU7MTEwMCAxMTcxIDAzMzQgMTFBRTsKK0FFMTQgMDMzNCAxMUI1O0FFMTQgMDMzNCAxMUI1OzExMDAgMTE3NCAwMzM0IDExQjU7QUUxNCAwMzM0IDExQjU7MTEwMCAxMTc0IDAzMzQgMTFCNTsKK0FFNjggMDMzNCAxMUJDO0FFNjggMDMzNCAxMUJDOzExMDEgMTE2MiAwMzM0IDExQkM7QUU2OCAwMzM0IDExQkM7MTEwMSAxMTYyIDAzMzQgMTFCQzsKK0FGMkMgMDMzNCAxMUFFO0FGMkMgMDMzNCAxMUFFOzExMDEgMTE2OSAwMzM0IDExQUU7QUYyQyAwMzM0IDExQUU7MTEwMSAxMTY5IDAzMzQgMTFBRTsKK0FGODAgMDMzNCAxMUI1O0FGODAgMDMzNCAxMUI1OzExMDEgMTE2QyAwMzM0IDExQjU7QUY4MCAwMzM0IDExQjU7MTEwMSAxMTZDIDAzMzQgMTFCNTsKK0FGRDQgMDMzNCAxMUJDO0FGRDQgMDMzNCAxMUJDOzExMDEgMTE2RiAwMzM0IDExQkM7QUZENCAwMzM0IDExQkM7MTEwMSAxMTZGIDAzMzQgMTFCQzsKK0IwOTggMDMzNCAxMUFFO0IwOTggMDMzNCAxMUFFOzExMDIgMTE2MSAwMzM0IDExQUU7QjA5OCAwMzM0IDExQUU7MTEwMiAxMTYxIDAzMzQgMTFBRTsKK0IwRUMgMDMzNCAxMUI1O0IwRUMgMDMzNCAxMUI1OzExMDIgMTE2NCAwMzM0IDExQjU7QjBFQyAwMzM0IDExQjU7MTEwMiAxMTY0IDAzMzQgMTFCNTsKK0IxNDAgMDMzNCAxMUJDO0IxNDAgMDMzNCAxMUJDOzExMDIgMTE2NyAwMzM0IDExQkM7QjE0MCAwMzM0IDExQkM7MTEwMiAxMTY3IDAzMzQgMTFCQzsKK0IyMDQgMDMzNCAxMUFFO0IyMDQgMDMzNCAxMUFFOzExMDIgMTE2RSAwMzM0IDExQUU7QjIwNCAwMzM0IDExQUU7MTEwMiAxMTZFIDAzMzQgMTFBRTsKK0IyNTggMDMzNCAxMUI1O0IyNTggMDMzNCAxMUI1OzExMDIgMTE3MSAwMzM0IDExQjU7QjI1OCAwMzM0IDExQjU7MTEwMiAxMTcxIDAzMzQgMTFCNTsKK0IyQUMgMDMzNCAxMUJDO0IyQUMgMDMzNCAxMUJDOzExMDIgMTE3NCAwMzM0IDExQkM7QjJBQyAwMzM0IDExQkM7MTEwMiAxMTc0IDAzMzQgMTFCQzsKK0IzNzAgMDMzNCAxMUFFO0IzNzAgMDMzNCAxMUFFOzExMDMgMTE2NiAwMzM0IDExQUU7QjM3MCAwMzM0IDExQUU7MTEwMyAxMTY2IDAzMzQgMTFBRTsKK0IzQzQgMDMzNCAxMUI1O0IzQzQgMDMzNCAxMUI1OzExMDMgMTE2OSAwMzM0IDExQjU7QjNDNCAwMzM0IDExQjU7MTEwMyAxMTY5IDAzMzQgMTFCNTsKK0I0MTggMDMzNCAxMUJDO0I0MTggMDMzNCAxMUJDOzExMDMgMTE2QyAwMzM0IDExQkM7QjQxOCAwMzM0IDExQkM7MTEwMyAxMTZDIDAzMzQgMTFCQzsKK0I0REMgMDMzNCAxMUFFO0I0REMgMDMzNCAxMUFFOzExMDMgMTE3MyAwMzM0IDExQUU7QjREQyAwMzM0IDExQUU7MTEwMyAxMTczIDAzMzQgMTFBRTsKK0I1MzAgMDMzNCAxMUI1O0I1MzAgMDMzNCAxMUI1OzExMDQgMTE2MSAwMzM0IDExQjU7QjUzMCAwMzM0IDExQjU7MTEwNCAxMTYxIDAzMzQgMTFCNTsKK0I1ODQgMDMzNCAxMUJDO0I1ODQgMDMzNCAxMUJDOzExMDQgMTE2NCAwMzM0IDExQkM7QjU4NCAwMzM0IDExQkM7MTEwNCAxMTY0IDAzMzQgMTFCQzsKK0I2NDggMDMzNCAxMUFFO0I2NDggMDMzNCAxMUFFOzExMDQgMTE2QiAwMzM0IDExQUU7QjY0OCAwMzM0IDExQUU7MTEwNCAxMTZCIDAzMzQgMTFBRTsKK0I2OUMgMDMzNCAxMUI1O0I2OUMgMDMzNCAxMUI1OzExMDQgMTE2RSAwMzM0IDExQjU7QjY5QyAwMzM0IDExQjU7MTEwNCAxMTZFIDAzMzQgMTFCNTsKK0I2RjAgMDMzNCAxMUJDO0I2RjAgMDMzNCAxMUJDOzExMDQgMTE3MSAwMzM0IDExQkM7QjZGMCAwMzM0IDExQkM7MTEwNCAxMTcxIDAzMzQgMTFCQzsKK0I3QjQgMDMzNCAxMUFFO0I3QjQgMDMzNCAxMUFFOzExMDUgMTE2MyAwMzM0IDExQUU7QjdCNCAwMzM0IDExQUU7MTEwNSAxMTYzIDAzMzQgMTFBRTsKK0I4MDggMDMzNCAxMUI1O0I4MDggMDMzNCAxMUI1OzExMDUgMTE2NiAwMzM0IDExQjU7QjgwOCAwMzM0IDExQjU7MTEwNSAxMTY2IDAzMzQgMTFCNTsKK0I4NUMgMDMzNCAxMUJDO0I4NUMgMDMzNCAxMUJDOzExMDUgMTE2OSAwMzM0IDExQkM7Qjg1QyAwMzM0IDExQkM7MTEwNSAxMTY5IDAzMzQgMTFCQzsKK0I5MjAgMDMzNCAxMUFFO0I5MjAgMDMzNCAxMUFFOzExMDUgMTE3MCAwMzM0IDExQUU7QjkyMCAwMzM0IDExQUU7MTEwNSAxMTcwIDAzMzQgMTFBRTsKK0I5NzQgMDMzNCAxMUI1O0I5NzQgMDMzNCAxMUI1OzExMDUgMTE3MyAwMzM0IDExQjU7Qjk3NCAwMzM0IDExQjU7MTEwNSAxMTczIDAzMzQgMTFCNTsKK0I5QzggMDMzNCAxMUJDO0I5QzggMDMzNCAxMUJDOzExMDYgMTE2MSAwMzM0IDExQkM7QjlDOCAwMzM0IDExQkM7MTEwNiAxMTYxIDAzMzQgMTFCQzsKK0JBOEMgMDMzNCAxMUFFO0JBOEMgMDMzNCAxMUFFOzExMDYgMTE2OCAwMzM0IDExQUU7QkE4QyAwMzM0IDExQUU7MTEwNiAxMTY4IDAzMzQgMTFBRTsKK0JBRTAgMDMzNCAxMUI1O0JBRTAgMDMzNCAxMUI1OzExMDYgMTE2QiAwMzM0IDExQjU7QkFFMCAwMzM0IDExQjU7MTEwNiAxMTZCIDAzMzQgMTFCNTsKK0JCMzQgMDMzNCAxMUJDO0JCMzQgMDMzNCAxMUJDOzExMDYgMTE2RSAwMzM0IDExQkM7QkIzNCAwMzM0IDExQkM7MTEwNiAxMTZFIDAzMzQgMTFCQzsKK0JCRjggMDMzNCAxMUFFO0JCRjggMDMzNCAxMUFFOzExMDYgMTE3NSAwMzM0IDExQUU7QkJGOCAwMzM0IDExQUU7MTEwNiAxMTc1IDAzMzQgMTFBRTsKK0JDNEMgMDMzNCAxMUI1O0JDNEMgMDMzNCAxMUI1OzExMDcgMTE2MyAwMzM0IDExQjU7QkM0QyAwMzM0IDExQjU7MTEwNyAxMTYzIDAzMzQgMTFCNTsKK0JDQTAgMDMzNCAxMUJDO0JDQTAgMDMzNCAxMUJDOzExMDcgMTE2NiAwMzM0IDExQkM7QkNBMCAwMzM0IDExQkM7MTEwNyAxMTY2IDAzMzQgMTFCQzsKK0JENjQgMDMzNCAxMUFFO0JENjQgMDMzNCAxMUFFOzExMDcgMTE2RCAwMzM0IDExQUU7QkQ2NCAwMzM0IDExQUU7MTEwNyAxMTZEIDAzMzQgMTFBRTsKK0JEQjggMDMzNCAxMUI1O0JEQjggMDMzNCAxMUI1OzExMDcgMTE3MCAwMzM0IDExQjU7QkRCOCAwMzM0IDExQjU7MTEwNyAxMTcwIDAzMzQgMTFCNTsKK0JFMEMgMDMzNCAxMUJDO0JFMEMgMDMzNCAxMUJDOzExMDcgMTE3MyAwMzM0IDExQkM7QkUwQyAwMzM0IDExQkM7MTEwNyAxMTczIDAzMzQgMTFCQzsKK0JFRDAgMDMzNCAxMUFFO0JFRDAgMDMzNCAxMUFFOzExMDggMTE2NSAwMzM0IDExQUU7QkVEMCAwMzM0IDExQUU7MTEwOCAxMTY1IDAzMzQgMTFBRTsKK0JGMjQgMDMzNCAxMUI1O0JGMjQgMDMzNCAxMUI1OzExMDggMTE2OCAwMzM0IDExQjU7QkYyNCAwMzM0IDExQjU7MTEwOCAxMTY4IDAzMzQgMTFCNTsKK0JGNzggMDMzNCAxMUJDO0JGNzggMDMzNCAxMUJDOzExMDggMTE2QiAwMzM0IDExQkM7QkY3OCAwMzM0IDExQkM7MTEwOCAxMTZCIDAzMzQgMTFCQzsKK0MwM0MgMDMzNCAxMUFFO0MwM0MgMDMzNCAxMUFFOzExMDggMTE3MiAwMzM0IDExQUU7QzAzQyAwMzM0IDExQUU7MTEwOCAxMTcyIDAzMzQgMTFBRTsKK0MwOTAgMDMzNCAxMUI1O0MwOTAgMDMzNCAxMUI1OzExMDggMTE3NSAwMzM0IDExQjU7QzA5MCAwMzM0IDExQjU7MTEwOCAxMTc1IDAzMzQgMTFCNTsKK0MwRTQgMDMzNCAxMUJDO0MwRTQgMDMzNCAxMUJDOzExMDkgMTE2MyAwMzM0IDExQkM7QzBFNCAwMzM0IDExQkM7MTEwOSAxMTYzIDAzMzQgMTFCQzsKK0MxQTggMDMzNCAxMUFFO0MxQTggMDMzNCAxMUFFOzExMDkgMTE2QSAwMzM0IDExQUU7QzFBOCAwMzM0IDExQUU7MTEwOSAxMTZBIDAzMzQgMTFBRTsKK0MxRkMgMDMzNCAxMUI1O0MxRkMgMDMzNCAxMUI1OzExMDkgMTE2RCAwMzM0IDExQjU7QzFGQyAwMzM0IDExQjU7MTEwOSAxMTZEIDAzMzQgMTFCNTsKK0MyNTAgMDMzNCAxMUJDO0MyNTAgMDMzNCAxMUJDOzExMDkgMTE3MCAwMzM0IDExQkM7QzI1MCAwMzM0IDExQkM7MTEwOSAxMTcwIDAzMzQgMTFCQzsKK0MzMTQgMDMzNCAxMUFFO0MzMTQgMDMzNCAxMUFFOzExMEEgMTE2MiAwMzM0IDExQUU7QzMxNCAwMzM0IDExQUU7MTEwQSAxMTYyIDAzMzQgMTFBRTsKK0MzNjggMDMzNCAxMUI1O0MzNjggMDMzNCAxMUI1OzExMEEgMTE2NSAwMzM0IDExQjU7QzM2OCAwMzM0IDExQjU7MTEwQSAxMTY1IDAzMzQgMTFCNTsKK0MzQkMgMDMzNCAxMUJDO0MzQkMgMDMzNCAxMUJDOzExMEEgMTE2OCAwMzM0IDExQkM7QzNCQyAwMzM0IDExQkM7MTEwQSAxMTY4IDAzMzQgMTFCQzsKK0M0ODAgMDMzNCAxMUFFO0M0ODAgMDMzNCAxMUFFOzExMEEgMTE2RiAwMzM0IDExQUU7QzQ4MCAwMzM0IDExQUU7MTEwQSAxMTZGIDAzMzQgMTFBRTsKK0M0RDQgMDMzNCAxMUI1O0M0RDQgMDMzNCAxMUI1OzExMEEgMTE3MiAwMzM0IDExQjU7QzRENCAwMzM0IDExQjU7MTEwQSAxMTcyIDAzMzQgMTFCNTsKK0M1MjggMDMzNCAxMUJDO0M1MjggMDMzNCAxMUJDOzExMEEgMTE3NSAwMzM0IDExQkM7QzUyOCAwMzM0IDExQkM7MTEwQSAxMTc1IDAzMzQgMTFCQzsKK0M1RUMgMDMzNCAxMUFFO0M1RUMgMDMzNCAxMUFFOzExMEIgMTE2NyAwMzM0IDExQUU7QzVFQyAwMzM0IDExQUU7MTEwQiAxMTY3IDAzMzQgMTFBRTsKK0M2NDAgMDMzNCAxMUI1O0M2NDAgMDMzNCAxMUI1OzExMEIgMTE2QSAwMzM0IDExQjU7QzY0MCAwMzM0IDExQjU7MTEwQiAxMTZBIDAzMzQgMTFCNTsKK0M2OTQgMDMzNCAxMUJDO0M2OTQgMDMzNCAxMUJDOzExMEIgMTE2RCAwMzM0IDExQkM7QzY5NCAwMzM0IDExQkM7MTEwQiAxMTZEIDAzMzQgMTFCQzsKK0M3NTggMDMzNCAxMUFFO0M3NTggMDMzNCAxMUFFOzExMEIgMTE3NCAwMzM0IDExQUU7Qzc1OCAwMzM0IDExQUU7MTEwQiAxMTc0IDAzMzQgMTFBRTsKK0M3QUMgMDMzNCAxMUI1O0M3QUMgMDMzNCAxMUI1OzExMEMgMTE2MiAwMzM0IDExQjU7QzdBQyAwMzM0IDExQjU7MTEwQyAxMTYyIDAzMzQgMTFCNTsKK0M4MDAgMDMzNCAxMUJDO0M4MDAgMDMzNCAxMUJDOzExMEMgMTE2NSAwMzM0IDExQkM7QzgwMCAwMzM0IDExQkM7MTEwQyAxMTY1IDAzMzQgMTFCQzsKK0M4QzQgMDMzNCAxMUFFO0M4QzQgMDMzNCAxMUFFOzExMEMgMTE2QyAwMzM0IDExQUU7QzhDNCAwMzM0IDExQUU7MTEwQyAxMTZDIDAzMzQgMTFBRTsKK0M5MTggMDMzNCAxMUI1O0M5MTggMDMzNCAxMUI1OzExMEMgMTE2RiAwMzM0IDExQjU7QzkxOCAwMzM0IDExQjU7MTEwQyAxMTZGIDAzMzQgMTFCNTsKK0M5NkMgMDMzNCAxMUJDO0M5NkMgMDMzNCAxMUJDOzExMEMgMTE3MiAwMzM0IDExQkM7Qzk2QyAwMzM0IDExQkM7MTEwQyAxMTcyIDAzMzQgMTFCQzsKK0NBMzAgMDMzNCAxMUFFO0NBMzAgMDMzNCAxMUFFOzExMEQgMTE2NCAwMzM0IDExQUU7Q0EzMCAwMzM0IDExQUU7MTEwRCAxMTY0IDAzMzQgMTFBRTsKK0NBODQgMDMzNCAxMUI1O0NBODQgMDMzNCAxMUI1OzExMEQgMTE2NyAwMzM0IDExQjU7Q0E4NCAwMzM0IDExQjU7MTEwRCAxMTY3IDAzMzQgMTFCNTsKK0NBRDggMDMzNCAxMUJDO0NBRDggMDMzNCAxMUJDOzExMEQgMTE2QSAwMzM0IDExQkM7Q0FEOCAwMzM0IDExQkM7MTEwRCAxMTZBIDAzMzQgMTFCQzsKK0NCOUMgMDMzNCAxMUFFO0NCOUMgMDMzNCAxMUFFOzExMEQgMTE3MSAwMzM0IDExQUU7Q0I5QyAwMzM0IDExQUU7MTEwRCAxMTcxIDAzMzQgMTFBRTsKK0NCRjAgMDMzNCAxMUI1O0NCRjAgMDMzNCAxMUI1OzExMEQgMTE3NCAwMzM0IDExQjU7Q0JGMCAwMzM0IDExQjU7MTEwRCAxMTc0IDAzMzQgMTFCNTsKK0NDNDQgMDMzNCAxMUJDO0NDNDQgMDMzNCAxMUJDOzExMEUgMTE2MiAwMzM0IDExQkM7Q0M0NCAwMzM0IDExQkM7MTEwRSAxMTYyIDAzMzQgMTFCQzsKK0NEMDggMDMzNCAxMUFFO0NEMDggMDMzNCAxMUFFOzExMEUgMTE2OSAwMzM0IDExQUU7Q0QwOCAwMzM0IDExQUU7MTEwRSAxMTY5IDAzMzQgMTFBRTsKK0NENUMgMDMzNCAxMUI1O0NENUMgMDMzNCAxMUI1OzExMEUgMTE2QyAwMzM0IDExQjU7Q0Q1QyAwMzM0IDExQjU7MTEwRSAxMTZDIDAzMzQgMTFCNTsKK0NEQjAgMDMzNCAxMUJDO0NEQjAgMDMzNCAxMUJDOzExMEUgMTE2RiAwMzM0IDExQkM7Q0RCMCAwMzM0IDExQkM7MTEwRSAxMTZGIDAzMzQgMTFCQzsKK0NFNzQgMDMzNCAxMUFFO0NFNzQgMDMzNCAxMUFFOzExMEYgMTE2MSAwMzM0IDExQUU7Q0U3NCAwMzM0IDExQUU7MTEwRiAxMTYxIDAzMzQgMTFBRTsKK0NFQzggMDMzNCAxMUI1O0NFQzggMDMzNCAxMUI1OzExMEYgMTE2NCAwMzM0IDExQjU7Q0VDOCAwMzM0IDExQjU7MTEwRiAxMTY0IDAzMzQgMTFCNTsKK0NGMUMgMDMzNCAxMUJDO0NGMUMgMDMzNCAxMUJDOzExMEYgMTE2NyAwMzM0IDExQkM7Q0YxQyAwMzM0IDExQkM7MTEwRiAxMTY3IDAzMzQgMTFCQzsKK0NGRTAgMDMzNCAxMUFFO0NGRTAgMDMzNCAxMUFFOzExMEYgMTE2RSAwMzM0IDExQUU7Q0ZFMCAwMzM0IDExQUU7MTEwRiAxMTZFIDAzMzQgMTFBRTsKK0QwMzQgMDMzNCAxMUI1O0QwMzQgMDMzNCAxMUI1OzExMEYgMTE3MSAwMzM0IDExQjU7RDAzNCAwMzM0IDExQjU7MTEwRiAxMTcxIDAzMzQgMTFCNTsKK0QwODggMDMzNCAxMUJDO0QwODggMDMzNCAxMUJDOzExMEYgMTE3NCAwMzM0IDExQkM7RDA4OCAwMzM0IDExQkM7MTEwRiAxMTc0IDAzMzQgMTFCQzsKK0QxNEMgMDMzNCAxMUFFO0QxNEMgMDMzNCAxMUFFOzExMTAgMTE2NiAwMzM0IDExQUU7RDE0QyAwMzM0IDExQUU7MTExMCAxMTY2IDAzMzQgMTFBRTsKK0QxQTAgMDMzNCAxMUI1O0QxQTAgMDMzNCAxMUI1OzExMTAgMTE2OSAwMzM0IDExQjU7RDFBMCAwMzM0IDExQjU7MTExMCAxMTY5IDAzMzQgMTFCNTsKK0QxRjQgMDMzNCAxMUJDO0QxRjQgMDMzNCAxMUJDOzExMTAgMTE2QyAwMzM0IDExQkM7RDFGNCAwMzM0IDExQkM7MTExMCAxMTZDIDAzMzQgMTFCQzsKK0QyQjggMDMzNCAxMUFFO0QyQjggMDMzNCAxMUFFOzExMTAgMTE3MyAwMzM0IDExQUU7RDJCOCAwMzM0IDExQUU7MTExMCAxMTczIDAzMzQgMTFBRTsKK0QzMEMgMDMzNCAxMUI1O0QzMEMgMDMzNCAxMUI1OzExMTEgMTE2MSAwMzM0IDExQjU7RDMwQyAwMzM0IDExQjU7MTExMSAxMTYxIDAzMzQgMTFCNTsKK0QzNjAgMDMzNCAxMUJDO0QzNjAgMDMzNCAxMUJDOzExMTEgMTE2NCAwMzM0IDExQkM7RDM2MCAwMzM0IDExQkM7MTExMSAxMTY0IDAzMzQgMTFCQzsKK0Q0MjQgMDMzNCAxMUFFO0Q0MjQgMDMzNCAxMUFFOzExMTEgMTE2QiAwMzM0IDExQUU7RDQyNCAwMzM0IDExQUU7MTExMSAxMTZCIDAzMzQgMTFBRTsKK0Q0NzggMDMzNCAxMUI1O0Q0NzggMDMzNCAxMUI1OzExMTEgMTE2RSAwMzM0IDExQjU7RDQ3OCAwMzM0IDExQjU7MTExMSAxMTZFIDAzMzQgMTFCNTsKK0Q0Q0MgMDMzNCAxMUJDO0Q0Q0MgMDMzNCAxMUJDOzExMTEgMTE3MSAwMzM0IDExQkM7RDRDQyAwMzM0IDExQkM7MTExMSAxMTcxIDAzMzQgMTFCQzsKK0Q1OTAgMDMzNCAxMUFFO0Q1OTAgMDMzNCAxMUFFOzExMTIgMTE2MyAwMzM0IDExQUU7RDU5MCAwMzM0IDExQUU7MTExMiAxMTYzIDAzMzQgMTFBRTsKK0Q1RTQgMDMzNCAxMUI1O0Q1RTQgMDMzNCAxMUI1OzExMTIgMTE2NiAwMzM0IDExQjU7RDVFNCAwMzM0IDExQjU7MTExMiAxMTY2IDAzMzQgMTFCNTsKK0Q2MzggMDMzNCAxMUJDO0Q2MzggMDMzNCAxMUJDOzExMTIgMTE2OSAwMzM0IDExQkM7RDYzOCAwMzM0IDExQkM7MTExMiAxMTY5IDAzMzQgMTFCQzsKK0Q2RkMgMDMzNCAxMUFFO0Q2RkMgMDMzNCAxMUFFOzExMTIgMTE3MCAwMzM0IDExQUU7RDZGQyAwMzM0IDExQUU7MTExMiAxMTcwIDAzMzQgMTFBRTsKK0Q3NTAgMDMzNCAxMUI1O0Q3NTAgMDMzNCAxMUI1OzExMTIgMTE3MyAwMzM0IDExQjU7RDc1MCAwMzM0IDExQjU7MTExMiAxMTczIDAzMzQgMTFCNTsKKyMKKyMgRU5EIE9GIEZJTEUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTFhNWIxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0CkBAIC0wLDAgKzEsMjYwIEBACisjIFNwZWNpYWxDYXNpbmctNC4xLjAudHh0CisjIERhdGU6IDIwMDUtMDMtMjYsIDAwOjM1OjQ1IEdNVCBbTURdCisjCisjIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlCisjIENvcHlyaWdodCAoYykgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4KKyMgRm9yIHRlcm1zIG9mIHVzZSwgc2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdGVybXNfb2ZfdXNlLmh0bWwKKyMgRm9yIGRvY3VtZW50YXRpb24sIHNlZSBVQ0QuaHRtbAorIworIyBTcGVjaWFsIENhc2luZyBQcm9wZXJ0aWVzCisjCisjIFRoaXMgZmlsZSBpcyBhIHN1cHBsZW1lbnQgdG8gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisjIEl0IGNvbnRhaW5zIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhc2luZyBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisjIChGb3IgY29tcGF0aWJpbGl0eSwgdGhlIFVuaWNvZGVEYXRhLnR4dCBmaWxlIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IKKyMgY2hhcmFjdGVycyB3aGVyZSB0aGV5IGFyZSAxLTEsIGFuZCBkb2VzIG5vdCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBtYXBwaW5ncy4pCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRpc2N1c3Npb24gb2YgQ2FzZSBNYXBwaW5ncyBpbiB0aGUgVW5pY29kZSBTdGFuZGFyZC4KKyMKKyMgQWxsIGNvZGUgcG9pbnRzIG5vdCBsaXN0ZWQgaW4gdGhpcyBmaWxlIHRoYXQgZG8gbm90IGhhdmUgYSBzaW1wbGUgY2FzZSBtYXBwaW5ncworIyBpbiBVbmljb2RlRGF0YS50eHQgbWFwIHRvIHRoZW1zZWx2ZXMuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEZvcm1hdAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBUaGUgZW50cmllcyBpbiB0aGlzIGZpbGUgYXJlIGluIHRoZSBmb2xsb3dpbmcgbWFjaGluZS1yZWFkYWJsZSBmb3JtYXQ6CisjCisjIDxjb2RlPjsgPGxvd2VyPiA7IDx0aXRsZT4gOyA8dXBwZXI+IDsgKDxjb25kaXRpb25fbGlzdD4gOyk/ICMgPGNvbW1lbnQ+CisjCisjIDxjb2RlPiwgPGxvd2VyPiwgPHRpdGxlPiwgYW5kIDx1cHBlcj4gcHJvdmlkZSBjaGFyYWN0ZXIgdmFsdWVzIGluIGhleC4gSWYgdGhlcmUgaXMgbW9yZQorIyB0aGFuIG9uZSBjaGFyYWN0ZXIsIHRoZXkgYXJlIHNlcGFyYXRlZCBieSBzcGFjZXMuIE90aGVyIHRoYW4gYXMgdXNlZCB0byBzZXBhcmF0ZSAKKyMgZWxlbWVudHMsIHNwYWNlcyBhcmUgdG8gYmUgaWdub3JlZC4KKyMKKyMgVGhlIDxjb25kaXRpb25fbGlzdD4gaXMgb3B0aW9uYWwuIFdoZXJlIHByZXNlbnQsIGl0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIGxvY2FsZSBJRHMKKyMgb3IgY29udGV4dHMsIHNlcGFyYXRlZCBieSBzcGFjZXMuIEluIHRoZXNlIGNvbmRpdGlvbnM6CisjIC0gQSBjb25kaXRpb24gbGlzdCBvdmVycmlkZXMgdGhlIG5vcm1hbCBiZWhhdmlvciBpZiBhbGwgb2YgdGhlIGxpc3RlZCBjb25kaXRpb25zIGFyZSB0cnVlLgorIyAtIFRoZSBjb250ZXh0IGlzIGFsd2F5cyB0aGUgY29udGV4dCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgb3JpZ2luYWwgc3RyaW5nLAorIyAgIE5PVCBpbiB0aGUgcmVzdWx0aW5nIHN0cmluZy4KKyMgLSBDYXNlIGRpc3RpbmN0aW9ucyBpbiB0aGUgY29uZGl0aW9uIGxpc3QgYXJlIG5vdCBzaWduaWZpY2FudC4KKyMgLSBDb25kaXRpb25zIHByZWNlZGVkIGJ5ICJOb3RfIiByZXByZXNlbnQgdGhlIG5lZ2F0aW9uIG9mIHRoZSBjb25kaXRpb24uCisjCisjIEEgbG9jYWxlIElEIGlzIGRlZmluZWQgYnkgdGFraW5nIGFueSBsYW5ndWFnZSB0YWcgYXMgZGVmaW5lZCBieQorIyBSRkMgMzA2NiAob3IgaXRzIHN1Y2Nlc3NvciksIGFuZCByZXBsYWNpbmcgJy0nIGJ5ICdfJy4KKyMKKyMgQSBjb250ZXh0IGZvciBhIGNoYXJhY3RlciBDIGlzIGRlZmluZWQgYnkgU2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25zLAorIyBvbiBwLiA4OS05MCBvZiBUaGUgVW5pY29kZSBTdGFuZGFyZCwgVmVyc2lvbiA0LjAsIGFzIGFtZW5kZWQgYnkgVW5pY29kZSA0LjEuMCwKKyMgYXMgc3BlY2lmaWVkIGluIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdmVyc2lvbnMvVW5pY29kZTQuMS4wLworIworIyBQYXJzZXJzIG9mIHRoaXMgZmlsZSBtdXN0IGJlIHByZXBhcmVkIHRvIGRlYWwgd2l0aCBmdXR1cmUgYWRkaXRpb25zIHRvIHRoaXMgZm9ybWF0OgorIyAgKiBBZGRpdGlvbmFsIGNvbnRleHRzCisjICAqIEFkZGl0aW9uYWwgZmllbGRzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgVW5jb25kaXRpb25hbCBtYXBwaW5ncworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFRoZSBHZXJtYW4gZXMtemVkIGlzIHNwZWNpYWwtLXRoZSBub3JtYWwgbWFwcGluZyBpcyB0byBTUy4KKyMgTm90ZTogdGhlIHRpdGxlY2FzZSBzaG91bGQgbmV2ZXIgb2NjdXIgaW4gcHJhY3RpY2UuIEl0IGlzIGVxdWFsIHRvIHRpdGxlY2FzZSh1cHBlcmNhc2UoPGVzLXplZD4pKQorCiswMERGOyAwMERGOyAwMDUzIDAwNzM7IDAwNTMgMDA1MzsgIyBMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUworCisjIFByZXNlcnZlIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSBmb3IgSSB3aXRoIGRvdC4gVHVya2ljIGlzIGhhbmRsZWQgYmVsb3cuCisKKzAxMzA7IDAwNjkgMDMwNzsgMDEzMDsgMDEzMDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKyMgTGlnYXR1cmVzCisKK0ZCMDA7IEZCMDA7IDAwNDYgMDA2NjsgMDA0NiAwMDQ2OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGCitGQjAxOyBGQjAxOyAwMDQ2IDAwNjk7IDAwNDYgMDA0OTsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSQorRkIwMjsgRkIwMjsgMDA0NiAwMDZDOyAwMDQ2IDAwNEM7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkwKK0ZCMDM7IEZCMDM7IDAwNDYgMDA2NiAwMDY5OyAwMDQ2IDAwNDYgMDA0OTsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkkKK0ZCMDQ7IEZCMDQ7IDAwNDYgMDA2NiAwMDZDOyAwMDQ2IDAwNDYgMDA0QzsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkwKK0ZCMDU7IEZCMDU7IDAwNTMgMDA3NDsgMDA1MyAwMDU0OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUCitGQjA2OyBGQjA2OyAwMDUzIDAwNzQ7IDAwNTMgMDA1NDsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBTVAorCiswNTg3OyAwNTg3OyAwNTM1IDA1ODI7IDA1MzUgMDU1MjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTgorRkIxMzsgRkIxMzsgMDU0NCAwNTc2OyAwNTQ0IDA1NDY7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIE5PVworRkIxNDsgRkIxNDsgMDU0NCAwNTY1OyAwNTQ0IDA1MzU7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSAorRkIxNTsgRkIxNTsgMDU0NCAwNTZCOyAwNTQ0IDA1M0I7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIElOSQorRkIxNjsgRkIxNjsgMDU0RSAwNTc2OyAwNTRFIDA1NDY7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgVkVXIE5PVworRkIxNzsgRkIxNzsgMDU0NCAwNTZEOyAwNTQ0IDA1M0Q7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSAorCisjIE5vIGNvcnJlc3BvbmRpbmcgdXBwZXJjYXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcgorCiswMTQ5OyAwMTQ5OyAwMkJDIDAwNEU7IDAyQkMgMDA0RTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTiBQUkVDRURFRCBCWSBBUE9TVFJPUEhFCiswMzkwOyAwMzkwOyAwMzk5IDAzMDggMDMwMTsgMDM5OSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TCiswM0IwOyAwM0IwOyAwM0E1IDAzMDggMDMwMTsgMDNBNSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TCiswMUYwOyAwMUYwOyAwMDRBIDAzMEM7IDAwNEEgMDMwQzsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENBUk9OCisxRTk2OyAxRTk2OyAwMDQ4IDAzMzE7IDAwNDggMDMzMTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIExJTkUgQkVMT1cKKzFFOTc7IDFFOTc7IDAwNTQgMDMwODsgMDA1NCAwMzA4OyAjIExBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTCisxRTk4OyAxRTk4OyAwMDU3IDAzMEE7IDAwNTcgMDMwQTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIFJJTkcgQUJPVkUKKzFFOTk7IDFFOTk7IDAwNTkgMDMwQTsgMDA1OSAwMzBBOyAjIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggUklORyBBQk9WRQorMUU5QTsgMUU5QTsgMDA0MSAwMkJFOyAwMDQxIDAyQkU7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkcKKzFGNTA7IDFGNTA7IDAzQTUgMDMxMzsgMDNBNSAwMzEzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkKKzFGNTI7IDFGNTI7IDAzQTUgMDMxMyAwMzAwOyAwM0E1IDAzMTMgMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQQorMUY1NDsgMUY1NDsgMDNBNSAwMzEzIDAzMDE7IDAzQTUgMDMxMyAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUEKKzFGNTY7IDFGNTY7IDAzQTUgMDMxMyAwMzQyOyAwM0E1IDAzMTMgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSQorMUZCNjsgMUZCNjsgMDM5MSAwMzQyOyAwMzkxIDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkKKzFGQzY7IDFGQzY7IDAzOTcgMDM0MjsgMDM5NyAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSQorMUZEMjsgMUZEMjsgMDM5OSAwMzA4IDAzMDA7IDAzOTkgMDMwOCAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQQorMUZEMzsgMUZEMzsgMDM5OSAwMzA4IDAzMDE7IDAzOTkgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisxRkQ2OyAxRkQ2OyAwMzk5IDAzNDI7IDAzOTkgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBFUklTUE9NRU5JCisxRkQ3OyAxRkQ3OyAwMzk5IDAzMDggMDM0MjsgMDM5OSAwMzA4IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JCisxRkUyOyAxRkUyOyAwM0E1IDAzMDggMDMwMDsgMDNBNSAwMzA4IDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBCisxRkUzOyAxRkUzOyAwM0E1IDAzMDggMDMwMTsgMDNBNSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKzFGRTQ7IDFGRTQ7IDAzQTEgMDMxMzsgMDNBMSAwMzEzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBQU0lMSQorMUZFNjsgMUZFNjsgMDNBNSAwMzQyOyAwM0E1IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQRVJJU1BPTUVOSQorMUZFNzsgMUZFNzsgMDNBNSAwMzA4IDAzNDI7IDAzQTUgMDMwOCAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSQorMUZGNjsgMUZGNjsgMDNBOSAwMzQyOyAwM0E5IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkKKworIyBJTVBPUlRBTlQtd2hlbiBjYXBpdGFsaXppbmcgaW90YS1zdWJzY3JpcHQgKDAzNDUpCisjICBJdCBNVVNUIGJlIGluIG5vcm1hbGl6ZWQgZm9ybS0tbW92ZWQgdG8gdGhlIGVuZCBvZiBhbnkgc2VxdWVuY2Ugb2YgY29tYmluaW5nIG1hcmtzLgorIyAgVGhpcyBpcyBiZWNhdXNlIGxvZ2ljYWxseSBpdCByZXByZXNlbnRzIGEgZm9sbG93aW5nIGJhc2UgY2hhcmFjdGVyIQorIyAgRS5nLiA8aW90YV9zdWJzY3JpcHQ+ICg8TW4+IHwgPE1jPiB8IDxNZT4pKyA9PiAoPE1uPiB8IDxNYz4gfCA8TWU+KSsgPGlvdGFfc3Vic2NyaXB0PgorIyBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBhIHdvcmQsIHNvIGluIHRpdGxlY2FzaW5nIGl0IGNhbiBiZSBsZWZ0IGFzIGlzLgorCisjIFRoZSBmb2xsb3dpbmcgY2FzZXMgYXJlIGFscmVhZHkgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUsIHNvIGFyZSBvbmx5IGNvbW1lbnRlZCBoZXJlLgorCisjIDAzNDU7IDAzNDU7IDAzNDU7IDAzOTk7ICMgQ09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkkKKworIyBBbGwgbGV0dGVycyB3aXRoIFlQT0dFR1JBTU1FTkkgKGlvdGEtc3Vic2NyaXB0KSBvciBQUk9TR0VHUkFNTUVOSSAoaW90YSBhZHNjcmlwdCkKKyMgaGF2ZSBzcGVjaWFsIHVwcGVyY2FzZXMuCisjIE5vdGU6IGNoYXJhY3RlcnMgd2l0aCBQUk9TR0VHUkFNTUVOSSBhcmUgYWN0dWFsbHkgdGl0bGVjYXNlLCBub3QgdXBwZXJjYXNlIQorCisxRjgwOyAxRjgwOyAxRjg4OyAxRjA4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODE7IDFGODE7IDFGODk7IDFGMDkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MjsgMUY4MjsgMUY4QTsgMUYwQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MzsgMUY4MzsgMUY4QjsgMUYwQiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NDsgMUY4NDsgMUY4QzsgMUYwQyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg1OyAxRjg1OyAxRjhEOyAxRjBEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODY7IDFGODY7IDFGOEU7IDFGMEUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODc7IDFGODc7IDFGOEY7IDFGMEYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODg7IDFGODA7IDFGODg7IDFGMDggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4OTsgMUY4MTsgMUY4OTsgMUYwOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhBOyAxRjgyOyAxRjhBOyAxRjBBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhCOyAxRjgzOyAxRjhCOyAxRjBCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhDOyAxRjg0OyAxRjhDOyAxRjBDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEQ7IDFGODU7IDFGOEQ7IDFGMEQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RTsgMUY4NjsgMUY4RTsgMUYwRSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RjsgMUY4NzsgMUY4RjsgMUYwRiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5MDsgMUY5MDsgMUY5ODsgMUYyOCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MTsgMUY5MTsgMUY5OTsgMUYyOSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MjsgMUY5MjsgMUY5QTsgMUYyQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTM7IDFGOTM7IDFGOUI7IDFGMkIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk0OyAxRjk0OyAxRjlDOyAxRjJDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk1OyAxRjk1OyAxRjlEOyAxRjJEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk2OyAxRjk2OyAxRjlFOyAxRjJFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NzsgMUY5NzsgMUY5RjsgMUYyRiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTg7IDFGOTA7IDFGOTg7IDFGMjggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOTk7IDFGOTE7IDFGOTk7IDFGMjkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUE7IDFGOTI7IDFGOUE7IDFGMkEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlCOyAxRjkzOyAxRjlCOyAxRjJCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QzsgMUY5NDsgMUY5QzsgMUYyQyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RDsgMUY5NTsgMUY5RDsgMUYyRCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RTsgMUY5NjsgMUY5RTsgMUYyRSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUY7IDFGOTc7IDFGOUY7IDFGMkYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkEwOyAxRkEwOyAxRkE4OyAxRjY4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTE7IDFGQTE7IDFGQTk7IDFGNjkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMjsgMUZBMjsgMUZBQTsgMUY2QSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMzsgMUZBMzsgMUZBQjsgMUY2QiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNDsgMUZBNDsgMUZBQzsgMUY2QyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE1OyAxRkE1OyAxRkFEOyAxRjZEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTY7IDFGQTY7IDFGQUU7IDFGNkUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTc7IDFGQTc7IDFGQUY7IDFGNkYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTg7IDFGQTA7IDFGQTg7IDFGNjggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBOTsgMUZBMTsgMUZBOTsgMUY2OSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFBOyAxRkEyOyAxRkFBOyAxRjZBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFCOyAxRkEzOyAxRkFCOyAxRjZCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFDOyAxRkE0OyAxRkFDOyAxRjZDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUQ7IDFGQTU7IDFGQUQ7IDFGNkQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRTsgMUZBNjsgMUZBRTsgMUY2RSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRjsgMUZBNzsgMUZBRjsgMUY2RiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUZCMzsgMUZCMzsgMUZCQzsgMDM5MSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFlQT0dFR1JBTU1FTkkKKzFGQkM7IDFGQjM7IDFGQkM7IDAzOTEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBST1NHRUdSQU1NRU5JCisxRkMzOyAxRkMzOyAxRkNDOyAwMzk3IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFlQT0dFR1JBTU1FTkkKKzFGQ0M7IDFGQzM7IDFGQ0M7IDAzOTcgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQUk9TR0VHUkFNTUVOSQorMUZGMzsgMUZGMzsgMUZGQzsgMDNBOSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFlQT0dFR1JBTU1FTkkKKzFGRkM7IDFGRjM7IDFGRkM7IDAzQTkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBST1NHRUdSQU1NRU5JCisKKyMgU29tZSBjaGFyYWN0ZXJzIHdpdGggWVBPR0VHUkFNTUVOSSBhbHNvIGhhdmUgbm8gY29ycmVzcG9uZGluZyB0aXRsZWNhc2VzCisKKzFGQjI7IDFGQjI7IDFGQkEgMDM0NTsgMUZCQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkI0OyAxRkI0OyAwMzg2IDAzNDU7IDAzODYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkMyOyAxRkMyOyAxRkNBIDAzNDU7IDFGQ0EgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzQ7IDFGQzQ7IDAzODkgMDM0NTsgMDM4OSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkYyOyAxRkYyOyAxRkZBIDAzNDU7IDFGRkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGNDsgMUZGNDsgMDM4RiAwMzQ1OyAwMzhGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorCisxRkI3OyAxRkI3OyAwMzkxIDAzNDIgMDM0NTsgMDM5MSAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzc7IDFGQzc7IDAzOTcgMDM0MiAwMzQ1OyAwMzk3IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjc7IDFGRjc7IDAzQTkgMDM0MiAwMzQ1OyAwM0E5IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIENvbmRpdGlvbmFsIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgU3BlY2lhbCBjYXNlIGZvciBmaW5hbCBmb3JtIG9mIHNpZ21hCisKKzAzQTM7IDAzQzI7IDAzQTM7IDAzQTM7IEZpbmFsX1NpZ21hOyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBmb3Igbm9uLWZpbmFsIGFyZSBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisjIDAzQTM7IDAzQzM7IDAzQTM7IDAzQTM7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKyMgMDNDMzsgMDNDMzsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUEKKyMgMDNDMjsgMDNDMjsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2VzIGFyZSBub3QgaW5jbHVkZWQsIHNpbmNlIHRoZXkgd291bGQgY2FzZS1mb2xkIGluIGxvd2VyY2FzaW5nCisKKyMgMDNDMzsgMDNDMjsgMDNBMzsgMDNBMzsgRmluYWxfU2lnbWE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFNJR01BCisjIDAzQzI7IDAzQzM7IDAzQTM7IDAzQTM7IE5vdF9GaW5hbF9TaWdtYTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBMb2NhbGUtc2Vuc2l0aXZlIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgTGl0aHVhbmlhbgorCisjIExpdGh1YW5pYW4gcmV0YWlucyB0aGUgZG90IGluIGEgbG93ZXJjYXNlIGkgd2hlbiBmb2xsb3dlZCBieSBhY2NlbnRzLgorCisjIFJlbW92ZSBET1QgQUJPVkUgYWZ0ZXIgImkiIHdpdGggdXBwZXIgb3IgdGl0bGVjYXNlCisKKzAzMDc7IDAzMDc7IDsgOyBsdCBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisKKyMgSW50cm9kdWNlIGFuIGV4cGxpY2l0IGRvdCBhYm92ZSB3aGVuIGxvd2VyY2FzaW5nIGNhcGl0YWwgSSdzIGFuZCBKJ3MKKyMgd2hlbmV2ZXIgdGhlcmUgYXJlIG1vcmUgYWNjZW50cyBhYm92ZS4KKyMgKG9mIHRoZSBhY2NlbnRzIHVzZWQgaW4gTGl0aHVhbmlhbjogZ3JhdmUsIGFjdXRlLCB0aWxkZSBhYm92ZSwgYW5kIG9nb25laykKKworMDA0OTsgMDA2OSAwMzA3OyAwMDQ5OyAwMDQ5OyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKzAwNEE7IDAwNkEgMDMwNzsgMDA0QTsgMDA0QTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCiswMTJFOyAwMTJGIDAzMDc7IDAxMkU7IDAxMkU7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworMDBDQzsgMDA2OSAwMzA3IDAzMDA7IDAwQ0M7IDAwQ0M7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorMDBDRDsgMDA2OSAwMzA3IDAzMDE7IDAwQ0Q7IDAwQ0Q7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorMDEyODsgMDA2OSAwMzA3IDAzMDM7IDAxMjg7IDAxMjg7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVHVya2lzaCBhbmQgQXplcmkKKworIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggYW5kIEF6ZXJpCisjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorCiswMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyB0cjsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCiswMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKyMgV2hlbiBsb3dlcmNhc2luZywgcmVtb3ZlIGRvdF9hYm92ZSBpbiB0aGUgc2VxdWVuY2UgSSArIGRvdF9hYm92ZSwgd2hpY2ggd2lsbCB0dXJuIGludG8gaS4KKyMgVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiB0aGUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBJLWRvdF9hYm92ZQorCiswMzA3OyA7IDAzMDc7IDAzMDc7IHRyIEFmdGVyX0k7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorMDMwNzsgOyAwMzA3OyAwMzA3OyBheiBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKworIyBXaGVuIGxvd2VyY2FzaW5nLCB1bmxlc3MgYW4gSSBpcyBiZWZvcmUgYSBkb3RfYWJvdmUsIGl0IHR1cm5zIGludG8gYSBkb3RsZXNzIGkuCisKKzAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IHRyIE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKzAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IGF6IE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKworIyBXaGVuIHVwcGVyY2FzaW5nLCBpIHR1cm5zIGludG8gYSBkb3R0ZWQgY2FwaXRhbCBJCisKKzAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IHRyOyAjIExBVElOIFNNQUxMIExFVFRFUiBJCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZSBpcyBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisjIDAxMzE7IDAxMzE7IDAwNDk7IDAwNDk7IHRyOyAjIExBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOTAzNjRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEudHh0CkBAIC0wLDAgKzEsMTc3MjAgQEAKKzAwMDA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TlVMTDs7OzsKKzAwMDE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgSEVBRElORzs7OzsKKzAwMDI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgVEVYVDs7OzsKKzAwMDM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFRFWFQ7Ozs7CiswMDA0Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT047Ozs7CiswMDA1Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VOUVVJUlk7Ozs7CiswMDA2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0FDS05PV0xFREdFOzs7OworMDAwNzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtCRUxMOzs7OworMDAwODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtCQUNLU1BBQ0U7Ozs7CiswMDA5Ozxjb250cm9sPjtDYzswO1M7Ozs7O047Q0hBUkFDVEVSIFRBQlVMQVRJT047Ozs7CiswMDBBOzxjb250cm9sPjtDYzswO0I7Ozs7O047TElORSBGRUVEIChMRik7Ozs7CiswMDBCOzxjb250cm9sPjtDYzswO1M7Ozs7O047TElORSBUQUJVTEFUSU9OOzs7OworMDAwQzs8Y29udHJvbD47Q2M7MDtXUzs7Ozs7TjtGT1JNIEZFRUQgKEZGKTs7OzsKKzAwMEQ7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtDQVJSSUFHRSBSRVRVUk4gKENSKTs7OzsKKzAwMEU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0hJRlQgT1VUOzs7OworMDAwRjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSElGVCBJTjs7OzsKKzAwMTA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REFUQSBMSU5LIEVTQ0FQRTs7OzsKKzAwMTE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgT05FOzs7OworMDAxMjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUV087Ozs7CiswMDEzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMDAxNDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMDAxNTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtORUdBVElWRSBBQ0tOT1dMRURHRTs7OzsKKzAwMTY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1lOQ0hST05PVVMgSURMRTs7OzsKKzAwMTc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSzs7OzsKKzAwMTg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0FOQ0VMOzs7OworMDAxOTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgTUVESVVNOzs7OworMDAxQTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVUJTVElUVVRFOzs7OworMDAxQjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFU0NBUEU7Ozs7CiswMDFDOzxjb250cm9sPjtDYzswO0I7Ozs7O047SU5GT1JNQVRJT04gU0VQQVJBVE9SIEZPVVI7Ozs7CiswMDFEOzxjb250cm9sPjtDYzswO0I7Ozs7O047SU5GT1JNQVRJT04gU0VQQVJBVE9SIFRIUkVFOzs7OworMDAxRTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBUV087Ozs7CiswMDFGOzxjb250cm9sPjtDYzswO1M7Ozs7O047SU5GT1JNQVRJT04gU0VQQVJBVE9SIE9ORTs7OzsKKzAwMjA7U1BBQ0U7WnM7MDtXUzs7Ozs7Tjs7Ozs7CiswMDIxO0VYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDIyO1FVT1RBVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMztOVU1CRVIgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzAwMjQ7RE9MTEFSIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMDI1O1BFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzAwMjY7QU1QRVJTQU5EO1BvOzA7T047Ozs7O047Ozs7OworMDAyNztBUE9TVFJPUEhFO1BvOzA7T047Ozs7O047QVBPU1RST1BIRS1RVU9URTs7OzsKKzAwMjg7TEVGVCBQQVJFTlRIRVNJUztQczswO09OOzs7OztZO09QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CiswMDI5O1JJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKKzAwMkE7QVNURVJJU0s7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDJCO1BMVVMgU0lHTjtTbTswO0VTOzs7OztOOzs7OzsKKzAwMkM7Q09NTUE7UG87MDtDUzs7Ozs7Tjs7Ozs7CiswMDJEO0hZUEhFTi1NSU5VUztQZDswO0VTOzs7OztOOzs7OzsKKzAwMkU7RlVMTCBTVE9QO1BvOzA7Q1M7Ozs7O047UEVSSU9EOzs7OworMDAyRjtTT0xJRFVTO1BvOzA7Q1M7Ozs7O047U0xBU0g7Ozs7CiswMDMwO0RJR0lUIFpFUk87TmQ7MDtFTjs7MDswOzA7Tjs7Ozs7CiswMDMxO0RJR0lUIE9ORTtOZDswO0VOOzsxOzE7MTtOOzs7OzsKKzAwMzI7RElHSVQgVFdPO05kOzA7RU47OzI7MjsyO047Ozs7OworMDAzMztESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOOzs7OzsKKzAwMzQ7RElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOOzs7OzsKKzAwMzU7RElHSVQgRklWRTtOZDswO0VOOzs1OzU7NTtOOzs7OzsKKzAwMzY7RElHSVQgU0lYO05kOzA7RU47OzY7Njs2O047Ozs7OworMDAzNztESUdJVCBTRVZFTjtOZDswO0VOOzs3Ozc7NztOOzs7OzsKKzAwMzg7RElHSVQgRUlHSFQ7TmQ7MDtFTjs7ODs4Ozg7Tjs7Ozs7CiswMDM5O0RJR0lUIE5JTkU7TmQ7MDtFTjs7OTs5Ozk7Tjs7Ozs7CiswMDNBO0NPTE9OO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAzQjtTRU1JQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDNDO0xFU1MtVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRDtFUVVBTFMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwM0U7R1JFQVRFUi1USEFOIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CiswMDNGO1FVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDQwO0NPTU1FUkNJQUwgQVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDQxO0xBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzs7OztOOzs7OzAwNjE7CiswMDQyO0xBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzs7OztOOzs7OzAwNjI7CiswMDQzO0xBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzs7OztOOzs7OzAwNjM7CiswMDQ0O0xBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzs7OztOOzs7OzAwNjQ7CiswMDQ1O0xBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOOzs7OzAwNjU7CiswMDQ2O0xBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzs7OztOOzs7OzAwNjY7CiswMDQ3O0xBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzs7OztOOzs7OzAwNjc7CiswMDQ4O0xBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzs7OztOOzs7OzAwNjg7CiswMDQ5O0xBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzs7OztOOzs7OzAwNjk7CiswMDRBO0xBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzs7OztOOzs7OzAwNkE7CiswMDRCO0xBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzs7OztOOzs7OzAwNkI7CiswMDRDO0xBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzs7OztOOzs7OzAwNkM7CiswMDREO0xBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzs7OztOOzs7OzAwNkQ7CiswMDRFO0xBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzs7OztOOzs7OzAwNkU7CiswMDRGO0xBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzAwNkY7CiswMDUwO0xBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzs7OztOOzs7OzAwNzA7CiswMDUxO0xBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzs7OztOOzs7OzAwNzE7CiswMDUyO0xBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzs7OztOOzs7OzAwNzI7CiswMDUzO0xBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzs7OztOOzs7OzAwNzM7CiswMDU0O0xBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzs7OztOOzs7OzAwNzQ7CiswMDU1O0xBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzs7OztOOzs7OzAwNzU7CiswMDU2O0xBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzs7OztOOzs7OzAwNzY7CiswMDU3O0xBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzs7OztOOzs7OzAwNzc7CiswMDU4O0xBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzs7OztOOzs7OzAwNzg7CiswMDU5O0xBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzs7OztOOzs7OzAwNzk7CiswMDVBO0xBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzs7OztOOzs7OzAwN0E7CiswMDVCO0xFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworMDA1QztSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs7Ozs7TjtCQUNLU0xBU0g7Ozs7CiswMDVEO1JJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUU7Q0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CiswMDVGO0xPVyBMSU5FO1BjOzA7T047Ozs7O047U1BBQ0lORyBVTkRFUlNDT1JFOzs7OworMDA2MDtHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtTUEFDSU5HIEdSQVZFOzs7OworMDA2MTtMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswMDQxOzswMDQxCiswMDYyO0xBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs7Ozs7Tjs7OzAwNDI7OzAwNDIKKzAwNjM7TEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzs7OztOOzs7MDA0Mzs7MDA0MworMDA2NDtMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7Ozs7O047OzswMDQ0OzswMDQ0CiswMDY1O0xBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs7Ozs7Tjs7OzAwNDU7OzAwNDUKKzAwNjY7TEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzs7OztOOzs7MDA0Njs7MDA0NgorMDA2NztMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7Ozs7O047OzswMDQ3OzswMDQ3CiswMDY4O0xBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs7Ozs7Tjs7OzAwNDg7OzAwNDgKKzAwNjk7TEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOOzs7MDA0OTs7MDA0OQorMDA2QTtMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7Ozs7O047OzswMDRBOzswMDRBCiswMDZCO0xBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs7Ozs7Tjs7OzAwNEI7OzAwNEIKKzAwNkM7TEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzs7OztOOzs7MDA0Qzs7MDA0QworMDA2RDtMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7Ozs7O047OzswMDREOzswMDRECiswMDZFO0xBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs7Ozs7Tjs7OzAwNEU7OzAwNEUKKzAwNkY7TEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzs7OztOOzs7MDA0Rjs7MDA0RgorMDA3MDtMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7Ozs7O047OzswMDUwOzswMDUwCiswMDcxO0xBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs7Ozs7Tjs7OzAwNTE7OzAwNTEKKzAwNzI7TEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzs7OztOOzs7MDA1Mjs7MDA1MgorMDA3MztMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7Ozs7O047OzswMDUzOzswMDUzCiswMDc0O0xBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs7Ozs7Tjs7OzAwNTQ7OzAwNTQKKzAwNzU7TEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDA1NTs7MDA1NQorMDA3NjtMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7Ozs7O047OzswMDU2OzswMDU2CiswMDc3O0xBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs7Ozs7Tjs7OzAwNTc7OzAwNTcKKzAwNzg7TEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzs7OztOOzs7MDA1ODs7MDA1OAorMDA3OTtMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7Ozs7O047OzswMDU5OzswMDU5CiswMDdBO0xBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs7Ozs7Tjs7OzAwNUE7OzAwNUEKKzAwN0I7TEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworMDA3QztWRVJUSUNBTCBMSU5FO1NtOzA7T047Ozs7O047VkVSVElDQUwgQkFSOzs7OworMDA3RDtSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworMDA3RTtUSUxERTtTbTswO09OOzs7OztOOzs7OzsKKzAwN0Y7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVMRVRFOzs7OworMDA4MDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDgxOzxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwODI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QlJFQUsgUEVSTUlUVEVEIEhFUkU7Ozs7CiswMDgzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO05PIEJSRUFLIEhFUkU7Ozs7CiswMDg0Ozxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwODU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtORVhUIExJTkUgKE5FTCk7Ozs7CiswMDg2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFNFTEVDVEVEIEFSRUE7Ozs7CiswMDg3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBTRUxFQ1RFRCBBUkVBOzs7OworMDA4ODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDSEFSQUNURVIgVEFCVUxBVElPTiBTRVQ7Ozs7CiswMDg5Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OIFdJVEggSlVTVElGSUNBVElPTjs7OzsKKzAwOEE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TElORSBUQUJVTEFUSU9OIFNFVDs7OzsKKzAwOEI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UEFSVElBTCBMSU5FIEZPUldBUkQ7Ozs7CiswMDhDOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BBUlRJQUwgTElORSBCQUNLV0FSRDs7OzsKKzAwOEQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UkVWRVJTRSBMSU5FIEZFRUQ7Ozs7CiswMDhFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBTSElGVCBUV087Ozs7CiswMDhGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBTSElGVCBUSFJFRTs7OzsKKzAwOTA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgU1RSSU5HOzs7OworMDA5MTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQVRFIFVTRSBPTkU7Ozs7CiswMDkyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBVEUgVVNFIFRXTzs7OzsKKzAwOTM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0VUIFRSQU5TTUlUIFNUQVRFOzs7OworMDA5NDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDQU5DRUwgQ0hBUkFDVEVSOzs7OworMDA5NTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtNRVNTQUdFIFdBSVRJTkc7Ozs7CiswMDk2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIEdVQVJERUQgQVJFQTs7OzsKKzAwOTc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIEdVQVJERUQgQVJFQTs7OzsKKzAwOTg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgU1RSSU5HOzs7OworMDA5OTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDlBOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBDSEFSQUNURVIgSU5UUk9EVUNFUjs7OzsKKzAwOUI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q09OVFJPTCBTRVFVRU5DRSBJTlRST0RVQ0VSOzs7OworMDA5Qzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVFJJTkcgVEVSTUlOQVRPUjs7OzsKKzAwOUQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047T1BFUkFUSU5HIFNZU1RFTSBDT01NQU5EOzs7OworMDA5RTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQUNZIE1FU1NBR0U7Ozs7CiswMDlGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0FQUExJQ0FUSU9OIFBST0dSQU0gQ09NTUFORDs7OzsKKzAwQTA7Tk8tQlJFQUsgU1BBQ0U7WnM7MDtDUzs8bm9CcmVhaz4gMDAyMDs7OztOO05PTi1CUkVBS0lORyBTUEFDRTs7OzsKKzAwQTE7SU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQTI7Q0VOVCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBMztQT1VORCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNDtDVVJSRU5DWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNTtZRU4gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTY7QlJPS0VOIEJBUjtTbzswO09OOzs7OztOO0JST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CiswMEE3O1NFQ1RJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQTg7RElBRVJFU0lTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA4Ozs7O047U1BBQ0lORyBESUFFUkVTSVM7Ozs7CiswMEE5O0NPUFlSSUdIVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBQTtGRU1JTklORSBPUkRJTkFMIElORElDQVRPUjtMbDswO0w7PHN1cGVyPiAwMDYxOzs7O047Ozs7OworMDBBQjtMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0xFRlQgUE9JTlRJTkcgR1VJTExFTUVUOyo7OzsKKzAwQUM7Tk9UIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEFEO1NPRlQgSFlQSEVOO0NmOzA7Qk47Ozs7O047Ozs7OworMDBBRTtSRUdJU1RFUkVEIFNJR047U287MDtPTjs7Ozs7TjtSRUdJU1RFUkVEIFRSQURFIE1BUksgU0lHTjs7OzsKKzAwQUY7TUFDUk9OO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA0Ozs7O047U1BBQ0lORyBNQUNST047Ozs7CiswMEIwO0RFR1JFRSBTSUdOO1NvOzA7RVQ7Ozs7O047Ozs7OworMDBCMTtQTFVTLU1JTlVTIFNJR047U207MDtFVDs7Ozs7TjtQTFVTLU9SLU1JTlVTIFNJR047Ozs7CiswMEIyO1NVUEVSU0NSSVBUIFRXTztObzswO0VOOzxzdXBlcj4gMDAzMjs7MjsyO047U1VQRVJTQ1JJUFQgRElHSVQgVFdPOzs7OworMDBCMztTVVBFUlNDUklQVCBUSFJFRTtObzswO0VOOzxzdXBlcj4gMDAzMzs7MzszO047U1VQRVJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CiswMEI0O0FDVVRFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMTs7OztOO1NQQUNJTkcgQUNVVEU7Ozs7CiswMEI1O01JQ1JPIFNJR047TGw7MDtMOzxjb21wYXQ+IDAzQkM7Ozs7Tjs7OzAzOUM7OzAzOUMKKzAwQjY7UElMQ1JPVyBTSUdOO1NvOzA7T047Ozs7O047UEFSQUdSQVBIIFNJR047Ozs7CiswMEI3O01JRERMRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEI4O0NFRElMTEE7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMjc7Ozs7TjtTUEFDSU5HIENFRElMTEE7Ozs7CiswMEI5O1NVUEVSU0NSSVBUIE9ORTtObzswO0VOOzxzdXBlcj4gMDAzMTs7MTsxO047U1VQRVJTQ1JJUFQgRElHSVQgT05FOzs7OworMDBCQTtNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1I7TGw7MDtMOzxzdXBlcj4gMDA2Rjs7OztOOzs7OzsKKzAwQkI7UklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7UklHSFQgUE9JTlRJTkcgR1VJTExFTUVUOyo7OzsKKzAwQkM7VlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNDs7OzEvNDtOO0ZSQUNUSU9OIE9ORSBRVUFSVEVSOzs7OworMDBCRDtWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEY7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDMyOzs7MS8yO047RlJBQ1RJT04gT05FIEhBTEY7Ozs7CiswMEJFO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzQ7OzszLzQ7TjtGUkFDVElPTiBUSFJFRSBRVUFSVEVSUzs7OzsKKzAwQkY7SU5WRVJURUQgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFO0x1OzA7TDswMDQxIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEdSQVZFOzs7MDBFMDsKKzAwQzE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFO0x1OzA7TDswMDQxIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEFDVVRFOzs7MDBFMTsKKzAwQzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7OzAwRTI7CiswMEMzO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERTtMdTswO0w7MDA0MSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBUSUxERTs7OzAwRTM7CiswMEM0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDEgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTOzs7MDBFNDsKKzAwQzU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNDEgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgUklORzs7OzAwRTU7CiswMEM2O0xBVElOIENBUElUQUwgTEVUVEVSIEFFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEU7YXNoICo7OzAwRTY7CiswMEM3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0x1OzA7TDswMDQzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENFRElMTEE7OzswMEU3OworMDBDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggR1JBVkU7THU7MDtMOzAwNDUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgR1JBVkU7OzswMEU4OworMDBDOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEU7THU7MDtMOzAwNDUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQUNVVEU7OzswMEU5OworMDBDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBDSVJDVU1GTEVYOzs7MDBFQTsKKzAwQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBESUFFUkVTSVM7OzswMEVCOworMDBDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkU7THU7MDtMOzAwNDkgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgR1JBVkU7OzswMEVDOworMDBDRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEU7THU7MDtMOzAwNDkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQUNVVEU7OzswMEVEOworMDBDRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBDSVJDVU1GTEVYOzs7MDBFRTsKKzAwQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBESUFFUkVTSVM7OzswMEVGOworMDBEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRjA7CiswMEQxO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERTtMdTswO0w7MDA0RSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBUSUxERTs7OzAwRjE7CiswMEQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMdTswO0w7MDA0RiAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBHUkFWRTs7OzAwRjI7CiswMEQzO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMdTswO0w7MDA0RiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBBQ1VURTs7OzAwRjM7CiswMEQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRGIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIENJUkNVTUZMRVg7OzswMEY0OworMDBENTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREU7THU7MDtMOzAwNEYgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gVElMREU7OzswMEY1OworMDBENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDRGIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERJQUVSRVNJUzs7OzAwRjY7CiswMEQ3O01VTFRJUExJQ0FUSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gU0xBU0g7OzswMEY4OworMDBEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggR1JBVkU7THU7MDtMOzAwNTUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgR1JBVkU7OzswMEY5OworMDBEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEU7THU7MDtMOzAwNTUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQUNVVEU7OzswMEZBOworMDBEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBDSVJDVU1GTEVYOzs7MDBGQjsKKzAwREM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVM7OzswMEZDOworMDBERDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEU7THU7MDtMOzAwNTkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQUNVVEU7OzswMEZEOworMDBERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STjtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGRTsKKzAwREY7TEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFM7TGw7MDtMOzs7OztOOztHZXJtYW47OzsKKzAwRTA7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMbDswO0w7MDA2MSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgR1JBVkU7OzAwQzA7OzAwQzAKKzAwRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMbDswO0w7MDA2MSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQUNVVEU7OzAwQzE7OzAwQzEKKzAwRTI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYxIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBDSVJDVU1GTEVYOzswMEMyOzswMEMyCiswMEUzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggVElMREU7TGw7MDtMOzAwNjEgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFRJTERFOzswMEMzOzswMEMzCiswMEU0O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDYxIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBESUFFUkVTSVM7OzAwQzQ7OzAwQzQKKzAwRTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDYxIDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBSSU5HOzswMEM1OzswMEM1CiswMEU2O0xBVElOIFNNQUxMIExFVFRFUiBBRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRTthc2ggKjswMEM2OzswMEM2CiswMEU3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0VESUxMQTs7MDBDNzs7MDBDNworMDBFODtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFO0xsOzA7TDswMDY1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBHUkFWRTs7MDBDODs7MDBDOAorMDBFOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFO0xsOzA7TDswMDY1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBBQ1VURTs7MDBDOTs7MDBDOQorMDBFQTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIENJUkNVTUZMRVg7OzAwQ0E7OzAwQ0EKKzAwRUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERJQUVSRVNJUzs7MDBDQjs7MDBDQgorMDBFQztMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFO0xsOzA7TDswMDY5IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBHUkFWRTs7MDBDQzs7MDBDQworMDBFRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFO0xsOzA7TDswMDY5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBBQ1VURTs7MDBDRDs7MDBDRAorMDBFRTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIENJUkNVTUZMRVg7OzAwQ0U7OzAwQ0UKKzAwRUY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIERJQUVSRVNJUzs7MDBDRjs7MDBDRgorMDBGMDtMQVRJTiBTTUFMTCBMRVRURVIgRVRIO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwRDA7OzAwRDAKKzAwRjE7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBUSUxERTtMbDswO0w7MDA2RSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gVElMREU7OzAwRDE7OzAwRDEKKzAwRjI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMbDswO0w7MDA2RiAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gR1JBVkU7OzAwRDI7OzAwRDIKKzAwRjM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMbDswO0w7MDA2RiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQUNVVEU7OzAwRDM7OzAwRDMKKzAwRjQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZGIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBDSVJDVU1GTEVYOzswMEQ0OzswMEQ0CiswMEY1O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREU7TGw7MDtMOzAwNkYgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFRJTERFOzswMEQ1OzswMEQ1CiswMEY2O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDZGIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBESUFFUkVTSVM7OzAwRDY7OzAwRDYKKzAwRjc7RElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRjg7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFNMQVNIOzswMEQ4OzswMEQ4CiswMEY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggR1JBVkU7TGw7MDtMOzAwNzUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEdSQVZFOzswMEQ5OzswMEQ5CiswMEZBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQUNVVEU7TGw7MDtMOzAwNzUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEFDVVRFOzswMERBOzswMERBCiswMEZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7MDBEQjs7MDBEQgorMDBGQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTOzswMERDOzswMERDCiswMEZEO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEU7TGw7MDtMOzAwNzkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEFDVVRFOzswMEREOzswMERECiswMEZFO0xBVElOIFNNQUxMIExFVFRFUiBUSE9STjtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMERFOzswMERFCiswMEZGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBESUFFUkVTSVM7OzAxNzg7OzAxNzgKKzAxMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0MSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBNQUNST047OzswMTAxOworMDEwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2MSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgTUFDUk9OOzswMTAwOzswMTAwCiswMTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDA0MSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBCUkVWRTs7OzAxMDM7CiswMTAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkU7TGw7MDtMOzAwNjEgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEJSRVZFOzswMTAyOzswMTAyCiswMTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBPR09ORUs7THU7MDtMOzAwNDEgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgT0dPTkVLOzs7MDEwNTsKKzAxMDU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjEgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE9HT05FSzs7MDEwNDs7MDEwNAorMDEwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQUNVVEU7THU7MDtMOzAwNDMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQUNVVEU7OzswMTA3OworMDEwNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEFDVVRFO0xsOzA7TDswMDYzIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBBQ1VURTs7MDEwNjs7MDEwNgorMDEwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDSVJDVU1GTEVYOzs7MDEwOTsKKzAxMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYzIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDSVJDVU1GTEVYOzswMTA4OzswMTA4CiswMTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDMgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgRE9UOzs7MDEwQjsKKzAxMEI7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjMgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIERPVDs7MDEwQTs7MDEwQQorMDEwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0FST047THU7MDtMOzAwNDMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSEFDRUs7OzswMTBEOworMDEwRDtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENBUk9OO0xsOzA7TDswMDYzIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBIQUNFSzs7MDEwQzs7MDEwQworMDEwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0FST047THU7MDtMOzAwNDQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSEFDRUs7OzswMTBGOworMDEwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENBUk9OO0xsOzA7TDswMDY0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIQUNFSzs7MDEwRTs7MDEwRQorMDExMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEJBUjs7OzAxMTE7CiswMTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBCQVI7OzAxMTA7OzAxMTAKKzAxMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBNQUNST047OzswMTEzOworMDExMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgTUFDUk9OOzswMTEyOzswMTEyCiswMTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMdTswO0w7MDA0NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBCUkVWRTs7OzAxMTU7CiswMTE1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQlJFVkU7TGw7MDtMOzAwNjUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEJSRVZFOzswMTE0OzswMTE0CiswMTE2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDUgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRE9UOzs7MDExNzsKKzAxMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjUgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERPVDs7MDExNjs7MDExNgorMDExODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE9HT05FSzs7OzAxMTk7CiswMTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggT0dPTkVLO0xsOzA7TDswMDY1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBPR09ORUs7OzAxMTg7OzAxMTgKKzAxMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENBUk9OO0x1OzA7TDswMDQ1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEhBQ0VLOzs7MDExQjsKKzAxMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMbDswO0w7MDA2NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgSEFDRUs7OzAxMUE7OzAxMUEKKzAxMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7OzAxMUQ7CiswMTFEO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7MDExQzs7MDExQworMDExRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQlJFVkU7THU7MDtMOzAwNDcgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQlJFVkU7OzswMTFGOworMDExRjtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEJSRVZFO0xsOzA7TDswMDY3IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCUkVWRTs7MDExRTs7MDExRQorMDEyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ3IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIERPVDs7OzAxMjE7CiswMTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY3IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBET1Q7OzAxMjA7OzAxMjAKKzAxMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDcgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0VESUxMQTs7OzAxMjM7CiswMTIzO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0VESUxMQTs7MDEyMjs7MDEyMgorMDEyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OCAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBDSVJDVU1GTEVYOzs7MDEyNTsKKzAxMjU7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY4IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBDSVJDVU1GTEVYOzswMTI0OzswMTI0CiswMTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQkFSOzs7MDEyNzsKKzAxMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEJBUjs7MDEyNjs7MDEyNgorMDEyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREU7THU7MDtMOzAwNDkgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgVElMREU7OzswMTI5OworMDEyOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFO0xsOzA7TDswMDY5IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBUSUxERTs7MDEyODs7MDEyOAorMDEyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ5IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE1BQ1JPTjs7OzAxMkI7CiswMTJCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswMDY5IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBNQUNST047OzAxMkE7OzAxMkEKKzAxMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ5IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEJSRVZFOzs7MDEyRDsKKzAxMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMbDswO0w7MDA2OSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQlJFVkU7OzAxMkM7OzAxMkMKKzAxMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSztMdTswO0w7MDA0OSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBPR09ORUs7OzswMTJGOworMDEyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE9HT05FSztMbDswO0w7MDA2OSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgT0dPTkVLOzswMTJFOzswMTJFCiswMTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDkgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRE9UOzs7MDA2OTsKKzAxMzE7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMTMyO0xBVElOIENBUElUQUwgTElHQVRVUkUgSUo7THU7MDtMOzxjb21wYXQ+IDAwNDkgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgSjs7OzAxMzM7CiswMTMzO0xBVElOIFNNQUxMIExJR0FUVVJFIElKO0xsOzA7TDs8Y29tcGF0PiAwMDY5IDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBKOzswMTMyOzswMTMyCiswMTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRBIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIENJUkNVTUZMRVg7OzswMTM1OworMDEzNTtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIENJUkNVTUZMRVg7OzAxMzQ7OzAxMzQKKzAxMzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENFRElMTEE7THU7MDtMOzAwNEIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgQ0VESUxMQTs7OzAxMzc7CiswMTM3O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgQ0VESUxMQTs7MDEzNjs7MDEzNgorMDEzODtMQVRJTiBTTUFMTCBMRVRURVIgS1JBO0xsOzA7TDs7Ozs7Tjs7R3JlZW5sYW5kaWM7OzsKKzAxMzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIEFDVVRFO0x1OzA7TDswMDRDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEFDVVRFOzs7MDEzQTsKKzAxM0E7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMbDswO0w7MDA2QyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQUNVVEU7OzAxMzk7OzAxMzkKKzAxM0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENFRElMTEE7THU7MDtMOzAwNEMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQ0VESUxMQTs7OzAxM0M7CiswMTNDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQ0VESUxMQTs7MDEzQjs7MDEzQgorMDEzRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0FST047THU7MDtMOzAwNEMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSEFDRUs7OzswMTNFOworMDEzRTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENBUk9OO0xsOzA7TDswMDZDIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBIQUNFSzs7MDEzRDs7MDEzRAorMDEzRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMdTswO0w7PGNvbXBhdD4gMDA0QyAwMEI3Ozs7O047Ozs7MDE0MDsKKzAxNDA7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwQjc7Ozs7Tjs7OzAxM0Y7OzAxM0YKKzAxNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBTTEFTSDs7OzAxNDI7CiswMTQyO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBTTEFTSDs7MDE0MTs7MDE0MQorMDE0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQUNVVEU7THU7MDtMOzAwNEUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQUNVVEU7OzswMTQ0OworMDE0NDtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIEFDVVRFO0xsOzA7TDswMDZFIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBBQ1VURTs7MDE0Mzs7MDE0MworMDE0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0RSAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBDRURJTExBOzs7MDE0NjsKKzAxNDY7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0xsOzA7TDswMDZFIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBDRURJTExBOzswMTQ1OzswMTQ1CiswMTQ3O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMdTswO0w7MDA0RSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIQUNFSzs7OzAxNDg7CiswMTQ4O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0FST047TGw7MDtMOzAwNkUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhBQ0VLOzswMTQ3OzswMTQ3CiswMTQ5O0xBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEU7TGw7MDtMOzxjb21wYXQ+IDAyQkMgMDA2RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBUE9TVFJPUEhFIE47Ozs7CiswMTRBO0xBVElOIENBUElUQUwgTEVUVEVSIEVORztMdTswO0w7Ozs7O047O1NhbWk7OzAxNEI7CiswMTRCO0xBVElOIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOztTYW1pOzAxNEE7OzAxNEEKKzAxNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0RiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBNQUNST047OzswMTREOworMDE0RDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2RiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gTUFDUk9OOzswMTRDOzswMTRDCiswMTRFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMdTswO0w7MDA0RiAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBCUkVWRTs7OzAxNEY7CiswMTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQlJFVkU7TGw7MDtMOzAwNkYgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEJSRVZFOzswMTRFOzswMTRFCiswMTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNEYgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzs7MDE1MTsKKzAxNTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNkYgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7MDE1MDs7MDE1MAorMDE1MjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIE9FO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEU7OzswMTUzOworMDE1MztMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRTs7MDE1Mjs7MDE1MgorMDE1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQUNVVEU7THU7MDtMOzAwNTIgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQUNVVEU7OzswMTU1OworMDE1NTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEFDVVRFO0xsOzA7TDswMDcyIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBBQ1VURTs7MDE1NDs7MDE1NAorMDE1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBDRURJTExBOzs7MDE1NzsKKzAxNTc7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0xsOzA7TDswMDcyIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBDRURJTExBOzswMTU2OzswMTU2CiswMTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMdTswO0w7MDA1MiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBIQUNFSzs7OzAxNTk7CiswMTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0FST047TGw7MDtMOzAwNzIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEhBQ0VLOzswMTU4OzswMTU4CiswMTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMdTswO0w7MDA1MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBBQ1VURTs7OzAxNUI7CiswMTVCO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEU7TGw7MDtMOzAwNzMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEFDVVRFOzswMTVBOzswMTVBCiswMTVDO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDUzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENJUkNVTUZMRVg7OzswMTVEOworMDE1RDtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENJUkNVTUZMRVg7OzAxNUM7OzAxNUMKKzAxNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENFRElMTEE7THU7MDtMOzAwNTMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0VESUxMQTsqOzswMTVGOworMDE1RjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENFRElMTEE7KjswMTVFOzswMTVFCiswMTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMdTswO0w7MDA1MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBIQUNFSzs7OzAxNjE7CiswMTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST047TGw7MDtMOzAwNzMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhBQ0VLOzswMTYwOzswMTYwCiswMTYyO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0x1OzA7TDswMDU0IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIENFRElMTEE7Kjs7MDE2MzsKKzAxNjM7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0xsOzA7TDswMDc0IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDRURJTExBOyo7MDE2Mjs7MDE2MgorMDE2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0FST047THU7MDtMOzAwNTQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSEFDRUs7OzswMTY1OworMDE2NTtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENBUk9OO0xsOzA7TDswMDc0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIQUNFSzs7MDE2NDs7MDE2NAorMDE2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEJBUjs7OzAxNjc7CiswMTY3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBCQVI7OzAxNjY7OzAxNjYKKzAxNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFO0x1OzA7TDswMDU1IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFRJTERFOzs7MDE2OTsKKzAxNjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERTtMbDswO0w7MDA3NSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgVElMREU7OzAxNjg7OzAxNjgKKzAxNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA1NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBNQUNST047OzswMTZCOworMDE2QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgTUFDUk9OOzswMTZBOzswMTZBCiswMTZDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMdTswO0w7MDA1NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBCUkVWRTs7OzAxNkQ7CiswMTZEO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQlJFVkU7TGw7MDtMOzAwNzUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEJSRVZFOzswMTZDOzswMTZDCiswMTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDU1IDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFJJTkc7OzswMTZGOworMDE2RjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzUgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFJJTkc7OzAxNkU7OzAxNkUKKzAxNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA1NSAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzswMTcxOworMDE3MTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA3NSAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzswMTcwOzswMTcwCiswMTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBPR09ORUs7THU7MDtMOzAwNTUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgT0dPTkVLOzs7MDE3MzsKKzAxNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNzUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE9HT05FSzs7MDE3Mjs7MDE3MgorMDE3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBDSVJDVU1GTEVYOzs7MDE3NTsKKzAxNzU7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVyBDSVJDVU1GTEVYOzswMTc0OzswMTc0CiswMTc2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIENJUkNVTUZMRVg7OzswMTc3OworMDE3NztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIENJUkNVTUZMRVg7OzAxNzY7OzAxNzYKKzAxNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBESUFFUkVTSVM7OzswMEZGOworMDE3OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQUNVVEU7THU7MDtMOzAwNUEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQUNVVEU7OzswMTdBOworMDE3QTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEFDVVRFO0xsOzA7TDswMDdBIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBBQ1VURTs7MDE3OTs7MDE3OQorMDE3QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDVBIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIERPVDs7OzAxN0M7CiswMTdDO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDdBIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBET1Q7OzAxN0I7OzAxN0IKKzAxN0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OO0x1OzA7TDswMDVBIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEhBQ0VLOzs7MDE3RTsKKzAxN0U7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMbDswO0w7MDA3QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogSEFDRUs7OzAxN0Q7OzAxN0QKKzAxN0Y7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUztMbDswO0w7PGNvbXBhdD4gMDA3Mzs7OztOOzs7MDA1Mzs7MDA1MworMDE4MDtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgQkFSOzswMjQzOzswMjQzCiswMTgxO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIEhPT0s7OzswMjUzOworMDE4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFRPUEJBUjs7OzAxODM7CiswMTgzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBUT1BCQVI7OzAxODI7OzAxODIKKzAxODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBTSVg7THU7MDtMOzs7OztOOzs7OzAxODU7CiswMTg1O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFNJWDtMbDswO0w7Ozs7O047OzswMTg0OzswMTg0CiswMTg2O0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gTztMdTswO0w7Ozs7O047Ozs7MDI1NDsKKzAxODc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSE9PSzs7OzAxODg7CiswMTg4O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSE9PSzs7MDE4Nzs7MDE4NworMDE4OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRlJJQ0FOIEQ7THU7MDtMOzs7OztOOzsqOzswMjU2OworMDE4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIT09LOzs7MDI1NzsKKzAxOEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBUT1BCQVI7OzswMThDOworMDE4QztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgVE9QQkFSOzswMThCOzswMThCCiswMThEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgREVMVEE7TGw7MDtMOzs7OztOOzs7OzsKKzAxOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIEU7OzswMUREOworMDE4RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDI1OTsKKzAxOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFUFNJTE9OOzs7MDI1QjsKKzAxOTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEYgSE9PSzs7OzAxOTI7CiswMTkyO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBGOzswMTkxOzswMTkxCiswMTkzO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhPT0s7OzswMjYwOworMDE5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDI2MzsKKzAxOTU7TEFUSU4gU01BTEwgTEVUVEVSIEhWO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBWO2h3YWlyOzAxRjY7OzAxRjYKKzAxOTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDI2OTsKKzAxOTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIEk7OzswMjY4OworMDE5ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIT09LOzs7MDE5OTsKKzAxOTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBIT09LOzswMTk4OzswMTk4CiswMTlBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEw7OzAyM0Q7OzAyM0QKKzAxOUI7TEFUSU4gU01BTEwgTEVUVEVSIExBTUJEQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBMQU1CREE7Ozs7CiswMTlDO0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBNO0x1OzA7TDs7Ozs7Tjs7OzswMjZGOworMDE5RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEhPT0s7OzswMjcyOworMDE5RTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExPTkcgUklHSFQgTEVHO0xsOzA7TDs7Ozs7Tjs7OzAyMjA7OzAyMjAKKzAxOUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1JRERMRSBUSUxERTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87Kjs7MDI3NTsKKzAxQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk47THU7MDtMOzAwNEYgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSE9STjs7OzAxQTE7CiswMUExO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STjtMbDswO0w7MDA2RiAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSE9STjs7MDFBMDs7MDFBMAorMDFBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPSTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBJO2doYTs7MDFBMzsKKzAxQTM7TEFUSU4gU01BTEwgTEVUVEVSIE9JO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBJO2doYTswMUEyOzswMUEyCiswMUE0O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIEhPT0s7OzswMUE1OworMDFBNTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBQIEhPT0s7OzAxQTQ7OzAxQTQKKzAxQTY7TEFUSU4gTEVUVEVSIFlSO0x1OzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgWSBSOyo7OzAyODA7CiswMUE3O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgVFdPO0x1OzA7TDs7Ozs7Tjs7OzswMUE4OworMDFBODtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBUV087TGw7MDtMOzs7OztOOzs7MDFBNzs7MDFBNworMDFBOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzAyODM7CiswMUFBO0xBVElOIExFVFRFUiBSRVZFUlNFRCBFU0ggTE9PUDtMbDswO0w7Ozs7O047Ozs7OworMDFBQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUEFMQVRBTCBIT09LOzs7OworMDFBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIT09LOzs7MDFBRDsKKzAxQUQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIT09LOzswMUFDOzswMUFDCiswMUFFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7OzAyODg7CiswMUFGO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOO0x1OzA7TDswMDU1IDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhPUk47OzswMUIwOworMDFCMDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk47TGw7MDtMOzAwNzUgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhPUk47OzAxQUY7OzAxQUYKKzAxQjE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDI4QTsKKzAxQjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFNDUklQVCBWOzs7MDI4QjsKKzAxQjM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgSE9PSzs7OzAxQjQ7CiswMUI0O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgSE9PSzs7MDFCMzs7MDFCMworMDFCNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEJBUjs7OzAxQjY7CiswMUI2O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBCQVI7OzAxQjU7OzAxQjUKKzAxQjc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZT0dIOzs7MDI5MjsKKzAxQjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFJFVkVSU0VEO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzs7MDFCOTsKKzAxQjk7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzAxQjg7OzAxQjgKKzAxQkE7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIFdJVEggVEFJTDs7OzsKKzAxQkI7TEFUSU4gTEVUVEVSIFRXTyBXSVRIIFNUUk9LRTtMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFRXTyBCQVI7Ozs7CiswMUJDO0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgRklWRTtMdTswO0w7Ozs7O047Ozs7MDFCRDsKKzAxQkQ7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgRklWRTtMbDswO0w7Ozs7O047OzswMUJDOzswMUJDCiswMUJFO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDFCRjtMQVRJTiBMRVRURVIgV1lOTjtMbDswO0w7Ozs7O047OzswMUY3OzswMUY3CiswMUMwO0xBVElOIExFVFRFUiBERU5UQUwgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBQSVBFOzs7OworMDFDMTtMQVRJTiBMRVRURVIgTEFURVJBTCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIERPVUJMRSBQSVBFOzs7OworMDFDMjtMQVRJTiBMRVRURVIgQUxWRU9MQVIgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBQSVBFIERPVUJMRSBCQVI7Ozs7CiswMUMzO0xBVElOIExFVFRFUiBSRVRST0ZMRVggQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBFWENMQU1BVElPTiBNQVJLOzs7OworMDFDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEWiBXSVRIIENBUk9OO0x1OzA7TDs8Y29tcGF0PiAwMDQ0IDAxN0Q7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFogSEFDRUs7OzswMUM2OzAxQzUKKzAxQzU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST047THQ7MDtMOzxjb21wYXQ+IDAwNDQgMDE3RTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIEQgU01BTEwgWiBIQUNFSzs7MDFDNDswMUM2OzAxQzUKKzAxQzY7TEFUSU4gU01BTEwgTEVUVEVSIERaIFdJVEggQ0FST047TGw7MDtMOzxjb21wYXQ+IDAwNjQgMDE3RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogSEFDRUs7OzAxQzQ7OzAxQzUKKzAxQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTEo7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSjs7OzAxQzk7MDFDOAorMDFDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEMgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIEwgU01BTEwgSjs7MDFDNzswMUM5OzAxQzgKKzAxQzk7TEFUSU4gU01BTEwgTEVUVEVSIExKO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBKOzswMUM3OzswMUM4CiswMUNBO0xBVElOIENBUElUQUwgTEVUVEVSIE5KO0x1OzA7TDs8Y29tcGF0PiAwMDRFIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEo7OzswMUNDOzAxQ0IKKzAxQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRFIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBOIFNNQUxMIEo7OzAxQ0E7MDFDQzswMUNCCiswMUNDO0xBVElOIFNNQUxMIExFVFRFUiBOSjtMbDswO0w7PGNvbXBhdD4gMDA2RSAwMDZBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSjs7MDFDQTs7MDFDQgorMDFDRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0FST047THU7MDtMOzAwNDEgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgSEFDRUs7OzswMUNFOworMDFDRTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENBUk9OO0xsOzA7TDswMDYxIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBIQUNFSzs7MDFDRDs7MDFDRAorMDFDRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0FST047THU7MDtMOzAwNDkgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgSEFDRUs7OzswMUQwOworMDFEMDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENBUk9OO0xsOzA7TDswMDY5IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBIQUNFSzs7MDFDRjs7MDFDRgorMDFEMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0FST047THU7MDtMOzAwNEYgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSEFDRUs7OzswMUQyOworMDFEMjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENBUk9OO0xsOzA7TDswMDZGIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBIQUNFSzs7MDFEMTs7MDFEMQorMDFEMztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0FST047THU7MDtMOzAwNTUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgSEFDRUs7OzswMUQ0OworMDFENDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENBUk9OO0xsOzA7TDswMDc1IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBIQUNFSzs7MDFEMzs7MDFEMworMDFENTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwREMgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTIE1BQ1JPTjs7OzAxRDY7CiswMUQ2O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRkMgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBNQUNST047OzAxRDU7OzAxRDUKKzAxRDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7THU7MDtMOzAwREMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTIEFDVVRFOzs7MDFEODsKKzAxRDg7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0xsOzA7TDswMEZDIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgQUNVVEU7OzAxRDc7OzAxRDcKKzAxRDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQ0FST047THU7MDtMOzAwREMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTIEhBQ0VLOzs7MDFEQTsKKzAxREE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIENBUk9OO0xsOzA7TDswMEZDIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgSEFDRUs7OzAxRDk7OzAxRDkKKzAxREI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgR1JBVkU7THU7MDtMOzAwREMgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTIEdSQVZFOzs7MDFEQzsKKzAxREM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEdSQVZFO0xsOzA7TDswMEZDIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgR1JBVkU7OzAxREI7OzAxREIKKzAxREQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBFO0xsOzA7TDs7Ozs7Tjs7OzAxOEU7OzAxOEUKKzAxREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMEM0IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERJQUVSRVNJUyBNQUNST047OzswMURGOworMDFERjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEU0IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBESUFFUkVTSVMgTUFDUk9OOzswMURFOzswMURFCiswMUUwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMdTswO0w7MDIyNiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBET1QgTUFDUk9OOzs7MDFFMTsKKzAxRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMbDswO0w7MDIyNyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRE9UIE1BQ1JPTjs7MDFFMDs7MDFFMAorMDFFMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRSBXSVRIIE1BQ1JPTjtMdTswO0w7MDBDNiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBFIE1BQ1JPTjthc2ggKjs7MDFFMzsKKzAxRTM7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0xsOzA7TDswMEU2IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFIE1BQ1JPTjthc2ggKjswMUUyOzswMUUyCiswMUU0O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQkFSOzs7MDFFNTsKKzAxRTU7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEJBUjs7MDFFNDs7MDFFNAorMDFFNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0FST047THU7MDtMOzAwNDcgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgSEFDRUs7OzswMUU3OworMDFFNztMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENBUk9OO0xsOzA7TDswMDY3IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBIQUNFSzs7MDFFNjs7MDFFNgorMDFFODtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQ0FST047THU7MDtMOzAwNEIgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgSEFDRUs7OzswMUU5OworMDFFOTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIENBUk9OO0xsOzA7TDswMDZCIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBIQUNFSzs7MDFFODs7MDFFOAorMDFFQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVLO0x1OzA7TDswMDRGIDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIE9HT05FSzs7OzAxRUI7CiswMUVCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggT0dPTkVLO0xsOzA7TDswMDZGIDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBPR09ORUs7OzAxRUE7OzAxRUEKKzAxRUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE9HT05FSyBBTkQgTUFDUk9OO0x1OzA7TDswMUVBIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIE9HT05FSyBNQUNST047OzswMUVEOworMDFFRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9HT05FSyBBTkQgTUFDUk9OO0xsOzA7TDswMUVCIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBPR09ORUsgTUFDUk9OOzswMUVDOzswMUVDCiswMUVFO0xBVElOIENBUElUQUwgTEVUVEVSIEVaSCBXSVRIIENBUk9OO0x1OzA7TDswMUI3IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZT0dIIEhBQ0VLOzs7MDFFRjsKKzAxRUY7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIENBUk9OO0xsOzA7TDswMjkyIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBIQUNFSzs7MDFFRTs7MDFFRQorMDFGMDtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENBUk9OO0xsOzA7TDswMDZBIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSiBIQUNFSzs7OzsKKzAxRjE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRFo7THU7MDtMOzxjb21wYXQ+IDAwNDQgMDA1QTs7OztOOzs7OzAxRjM7MDFGMgorMDFGMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU01BTEwgTEVUVEVSIFo7THQ7MDtMOzxjb21wYXQ+IDAwNDQgMDA3QTs7OztOOzs7MDFGMTswMUYzOzAxRjIKKzAxRjM7TEFUSU4gU01BTEwgTEVUVEVSIERaO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAwN0E7Ozs7Tjs7OzAxRjE7OzAxRjIKKzAxRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEFDVVRFO0x1OzA7TDswMDQ3IDAzMDE7Ozs7Tjs7OzswMUY1OworMDFGNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEFDVVRFO0xsOzA7TDswMDY3IDAzMDE7Ozs7Tjs7OzAxRjQ7OzAxRjQKKzAxRjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSFdBSVI7THU7MDtMOzs7OztOOzs7OzAxOTU7CiswMUY3O0xBVElOIENBUElUQUwgTEVUVEVSIFdZTk47THU7MDtMOzs7OztOOzs7OzAxQkY7CiswMUY4O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBHUkFWRTtMdTswO0w7MDA0RSAwMzAwOzs7O047Ozs7MDFGOTsKKzAxRjk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBHUkFWRTtMbDswO0w7MDA2RSAwMzAwOzs7O047OzswMUY4OzswMUY4CiswMUZBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMdTswO0w7MDBDNSAwMzAxOzs7O047Ozs7MDFGQjsKKzAxRkI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMbDswO0w7MDBFNSAwMzAxOzs7O047OzswMUZBOzswMUZBCiswMUZDO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggQUNVVEU7THU7MDtMOzAwQzYgMDMwMTs7OztOOzthc2ggKjs7MDFGRDsKKzAxRkQ7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggQUNVVEU7TGw7MDtMOzAwRTYgMDMwMTs7OztOOzthc2ggKjswMUZDOzswMUZDCiswMUZFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0x1OzA7TDswMEQ4IDAzMDE7Ozs7Tjs7OzswMUZGOworMDFGRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRSBBTkQgQUNVVEU7TGw7MDtMOzAwRjggMDMwMTs7OztOOzs7MDFGRTs7MDFGRQorMDIwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQxIDAzMEY7Ozs7Tjs7OzswMjAxOworMDIwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2MSAwMzBGOzs7O047OzswMjAwOzswMjAwCiswMjAyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0MSAwMzExOzs7O047Ozs7MDIwMzsKKzAyMDM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2MSAwMzExOzs7O047OzswMjAyOzswMjAyCiswMjA0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDUgMDMwRjs7OztOOzs7OzAyMDU7CiswMjA1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY1IDAzMEY7Ozs7Tjs7OzAyMDQ7OzAyMDQKKzAyMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ1IDAzMTE7Ozs7Tjs7OzswMjA3OworMDIwNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY1IDAzMTE7Ozs7Tjs7OzAyMDY7OzAyMDYKKzAyMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0OSAwMzBGOzs7O047Ozs7MDIwOTsKKzAyMDk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjkgMDMwRjs7OztOOzs7MDIwODs7MDIwOAorMDIwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDkgMDMxMTs7OztOOzs7OzAyMEI7CiswMjBCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjkgMDMxMTs7OztOOzs7MDIwQTs7MDIwQQorMDIwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDRGIDAzMEY7Ozs7Tjs7OzswMjBEOworMDIwRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2RiAwMzBGOzs7O047OzswMjBDOzswMjBDCiswMjBFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0RiAwMzExOzs7O047Ozs7MDIwRjsKKzAyMEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2RiAwMzExOzs7O047OzswMjBFOzswMjBFCiswMjEwO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTIgMDMwRjs7OztOOzs7OzAyMTE7CiswMjExO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDcyIDAzMEY7Ozs7Tjs7OzAyMTA7OzAyMTAKKzAyMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDUyIDAzMTE7Ozs7Tjs7OzswMjEzOworMDIxMztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDcyIDAzMTE7Ozs7Tjs7OzAyMTI7OzAyMTIKKzAyMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA1NSAwMzBGOzs7O047Ozs7MDIxNTsKKzAyMTU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNzUgMDMwRjs7OztOOzs7MDIxNDs7MDIxNAorMDIxNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNTUgMDMxMTs7OztOOzs7OzAyMTc7CiswMjE3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNzUgMDMxMTs7OztOOzs7MDIxNjs7MDIxNgorMDIxODtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ09NTUEgQkVMT1c7THU7MDtMOzAwNTMgMDMyNjs7OztOOzsqOzswMjE5OworMDIxOTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENPTU1BIEJFTE9XO0xsOzA7TDswMDczIDAzMjY7Ozs7Tjs7KjswMjE4OzswMjE4CiswMjFBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDT01NQSBCRUxPVztMdTswO0w7MDA1NCAwMzI2Ozs7O047Oyo7OzAyMUI7CiswMjFCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ09NTUEgQkVMT1c7TGw7MDtMOzAwNzQgMDMyNjs7OztOOzsqOzAyMUE7OzAyMUEKKzAyMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSDtMdTswO0w7Ozs7O047Ozs7MDIxRDsKKzAyMUQ7TEFUSU4gU01BTEwgTEVUVEVSIFlPR0g7TGw7MDtMOzs7OztOOzs7MDIxQzs7MDIxQworMDIxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0FST047THU7MDtMOzAwNDggMDMwQzs7OztOOzs7OzAyMUY7CiswMjFGO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0FST047TGw7MDtMOzAwNjggMDMwQzs7OztOOzs7MDIxRTs7MDIxRQorMDIyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUc7THU7MDtMOzs7OztOOzs7OzAxOUU7CiswMjIxO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047Ozs7OworMDIyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPVTtMdTswO0w7Ozs7O047Ozs7MDIyMzsKKzAyMjM7TEFUSU4gU01BTEwgTEVUVEVSIE9VO0xsOzA7TDs7Ozs7Tjs7OzAyMjI7OzAyMjIKKzAyMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEhPT0s7THU7MDtMOzs7OztOOzs7OzAyMjU7CiswMjI1O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggSE9PSztMbDswO0w7Ozs7O047OzswMjI0OzswMjI0CiswMjI2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDEgMDMwNzs7OztOOzs7OzAyMjc7CiswMjI3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYxIDAzMDc7Ozs7Tjs7OzAyMjY7OzAyMjYKKzAyMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENFRElMTEE7THU7MDtMOzAwNDUgMDMyNzs7OztOOzs7OzAyMjk7CiswMjI5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NSAwMzI3Ozs7O047OzswMjI4OzswMjI4CiswMjJBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBENiAwMzA0Ozs7O047Ozs7MDIyQjsKKzAyMkI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBGNiAwMzA0Ozs7O047OzswMjJBOzswMjJBCiswMjJDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgTUFDUk9OO0x1OzA7TDswMEQ1IDAzMDQ7Ozs7Tjs7OzswMjJEOworMDIyRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBNQUNST047TGw7MDtMOzAwRjUgMDMwNDs7OztOOzs7MDIyQzs7MDIyQworMDIyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDRGIDAzMDc7Ozs7Tjs7OzswMjJGOworMDIyRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RiAwMzA3Ozs7O047OzswMjJFOzswMjJFCiswMjMwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMdTswO0w7MDIyRSAwMzA0Ozs7O047Ozs7MDIzMTsKKzAyMzE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMbDswO0w7MDIyRiAwMzA0Ozs7O047OzswMjMwOzswMjMwCiswMjMyO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBNQUNST047THU7MDtMOzAwNTkgMDMwNDs7OztOOzs7OzAyMzM7CiswMjMzO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggTUFDUk9OO0xsOzA7TDswMDc5IDAzMDQ7Ozs7Tjs7OzAyMzI7OzAyMzIKKzAyMzQ7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjM1O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047Ozs7OworMDIzNjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENVUkw7TGw7MDtMOzs7OztOOzs7OzsKKzAyMzc7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSjtMbDswO0w7Ozs7O047Ozs7OworMDIzODtMQVRJTiBTTUFMTCBMRVRURVIgREIgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDIzOTtMQVRJTiBTTUFMTCBMRVRURVIgUVAgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDIzQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzsyQzY1OworMDIzQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzswMjNDOworMDIzQztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjNCOzswMjNCCiswMjNEO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBCQVI7THU7MDtMOzs7OztOOzs7OzAxOUE7CiswMjNFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBESUFHT05BTCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzJDNjY7CiswMjNGO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggU1dBU0ggVEFJTDtMbDswO0w7Ozs7O047Ozs7OworMDI0MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFNXQVNIIFRBSUw7TGw7MDtMOzs7OztOOzs7OzsKKzAyNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgR0xPVFRBTCBTVE9QO0x1OzA7TDs7Ozs7Tjs7OzswMjQyOworMDI0MjtMQVRJTiBTTUFMTCBMRVRURVIgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7OzAyNDE7OzAyNDEKKzAyNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDE4MDsKKzAyNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBCQVI7THU7MDtMOzs7OztOOzs7OzAyODk7CiswMjQ1O0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBWO0x1OzA7TDs7Ozs7Tjs7OzswMjhDOworMDI0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzswMjQ3OworMDI0NztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjQ2OzswMjQ2CiswMjQ4O0xBVElOIENBUElUQUwgTEVUVEVSIEogV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzAyNDk7CiswMjQ5O0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7Tjs7OzAyNDg7OzAyNDgKKzAyNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgU01BTEwgUSBXSVRIIEhPT0sgVEFJTDtMdTswO0w7Ozs7O047Ozs7MDI0QjsKKzAyNEI7TEFUSU4gU01BTEwgTEVUVEVSIFEgV0lUSCBIT09LIFRBSUw7TGw7MDtMOzs7OztOOzs7MDI0QTs7MDI0QQorMDI0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7Tjs7OzswMjREOworMDI0RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjRDOzswMjRDCiswMjRFO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzAyNEY7CiswMjRGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7Tjs7OzAyNEU7OzAyNEUKKzAyNTA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjUxO0xBVElOIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBBOzs7OworMDI1MjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFMUEhBO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFNDUklQVCBBOzs7OworMDI1MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEhPT0s7OzAxODE7OzAxODEKKzAyNTQ7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gTztMbDswO0w7Ozs7O047OzswMTg2OzswMTg2CiswMjU1O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ1VSTDs7OzsKKzAyNTY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBSRVRST0ZMRVggSE9PSzs7MDE4OTs7MDE4OQorMDI1NztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhPT0s7OzAxOEE7OzAxOEEKKzAyNTg7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNTk7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDs7Ozs7Tjs7OzAxOEY7OzAxOEYKKzAyNUE7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIEhPT0s7Ozs7CiswMjVCO0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFUFNJTE9OOzswMTkwOzswMTkwCiswMjVDO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OOzs7OworMDI1RDtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEVQU0lMT04gSE9PSzs7OzsKKzAyNUU7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUY7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVI7Ozs7CiswMjYwO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSE9PSzs7MDE5Mzs7MDE5MworMDI2MTtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRztMbDswO0w7Ozs7O047Ozs7OworMDI2MztMQVRJTiBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MDE5NDs7MDE5NAorMDI2NDtMQVRJTiBTTUFMTCBMRVRURVIgUkFNUyBIT1JOO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFCWSBHQU1NQTs7OzsKKzAyNjU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjY2O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggSE9PSzs7OzsKKzAyNjc7TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBIT09LOzs7OworMDI2ODtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBJOzswMTk3OzswMTk3CiswMjY5O0xBVElOIFNNQUxMIExFVFRFUiBJT1RBO0xsOzA7TDs7Ozs7Tjs7OzAxOTY7OzAxOTYKKzAyNkE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSTtMbDswO0w7Ozs7O047Ozs7OworMDI2QjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047OzsyQzYyOzsyQzYyCiswMjZDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkVMVDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQkVMVDs7OzsKKzAyNkQ7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjZFO0xBVElOIFNNQUxMIExFVFRFUiBMRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBZT0dIOzs7OworMDI2RjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE07TGw7MDtMOzs7OztOOzs7MDE5Qzs7MDE5QworMDI3MDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE0gV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBNIEhPT0s7Ozs7CiswMjcyO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIT09LOzswMTlEOzswMTlECiswMjczO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFJFVFJPRkxFWCBIT09LOzs7OworMDI3NDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBOO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc1O0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswMTlGOzswMTlGCiswMjc2O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPIEU7Ozs7CiswMjc3O0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT01FR0E7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzg7TEFUSU4gU01BTEwgTEVUVEVSIFBISTtMbDswO0w7Ozs7O047Ozs7OworMDI3OTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0E7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0I7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIEhPT0s7Ozs7CiswMjdDO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIT09LOzsyQzY0OzsyQzY0CiswMjdFO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBGSVNISE9PSyBSOzs7OworMDI3RjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRklTSEhPT0sgUjs7OzsKKzAyODA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgUjtMbDswO0w7Ozs7O047Oyo7MDFBNjs7MDFBNgorMDI4MTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjgyO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgSE9PSzs7OzsKKzAyODM7TEFUSU4gU01BTEwgTEVUVEVSIEVTSDtMbDswO0w7Ozs7O047OzswMUE5OzswMUE5CiswMjg0O0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0UgQU5EIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0s7Ozs7CiswMjg1O0xBVElOIFNNQUxMIExFVFRFUiBTUVVBVCBSRVZFUlNFRCBFU0g7TGw7MDtMOzs7OztOOzs7OzsKKzAyODY7TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFU0ggQ1VSTDs7OzsKKzAyODc7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBUO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg4O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFJFVFJPRkxFWCBIT09LOzswMUFFOzswMUFFCiswMjg5O0xBVElOIFNNQUxMIExFVFRFUiBVIEJBUjtMbDswO0w7Ozs7O047OzswMjQ0OzswMjQ0CiswMjhBO0xBVElOIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAxQjE7OzAxQjEKKzAyOEI7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIFY7OzAxQjI7OzAxQjIKKzAyOEM7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBWO0xsOzA7TDs7Ozs7Tjs7OzAyNDU7OzAyNDUKKzAyOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBXO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgWTtMbDswO0w7Ozs7O047Ozs7OworMDI4RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBZO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjkwO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIFJFVFJPRkxFWCBIT09LOzs7OworMDI5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIENVUkw7Ozs7CiswMjkyO0xBVElOIFNNQUxMIExFVFRFUiBFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIOzswMUI3OzswMUI3CiswMjkzO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBDVVJMOzs7OworMDI5NDtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswMjk1O0xBVElOIExFVFRFUiBQSEFSWU5HRUFMIFZPSUNFRCBGUklDQVRJVkU7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7Ozs7CiswMjk2O0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTc7TEFUSU4gTEVUVEVSIFNUUkVUQ0hFRCBDO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk4O0xBVElOIExFVFRFUiBCSUxBQklBTCBDTElDSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEJVTExTRVlFOzs7OworMDI5OTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBCO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlBO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIEVQU0lMT047Ozs7CiswMjlCO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIEhPT0s7Ozs7CiswMjlDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUQ7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDUk9TU0VELVRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDUk9TU0VELVRBSUwgSjs7OzsKKzAyOUU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBLO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEw7TGw7MDtMOzs7OztOOzs7OzsKKzAyQTA7TEFUSU4gU01BTEwgTEVUVEVSIFEgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUSBIT09LOzs7OworMDJBMTtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAyQTI7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEzO0xBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaOzs7OworMDJBNDtMQVRJTiBTTUFMTCBMRVRURVIgREVaSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBZT0dIOzs7OworMDJBNTtMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogQ1VSTDs7OzsKKzAyQTY7TEFUSU4gU01BTEwgTEVUVEVSIFRTIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFM7Ozs7CiswMkE3O0xBVElOIFNNQUxMIExFVFRFUiBURVNIIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEVTSDs7OzsKKzAyQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRDIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDIENVUkw7Ozs7CiswMkE5O0xBVElOIFNNQUxMIExFVFRFUiBGRU5HIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUE7TEFUSU4gU01BTEwgTEVUVEVSIExTIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUI7TEFUSU4gU01BTEwgTEVUVEVSIExaIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUM7TEFUSU4gTEVUVEVSIEJJTEFCSUFMIFBFUkNVU1NJVkU7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUQ7TEFUSU4gTEVUVEVSIEJJREVOVEFMIFBFUkNVU1NJVkU7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBIIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUY7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBIIFdJVEggRklTSEhPT0sgQU5EIFRBSUw7TGw7MDtMOzs7OztOOzs7OzsKKzAyQjA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEg7TG07MDtMOzxzdXBlcj4gMDA2ODs7OztOOzs7OzsKKzAyQjE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNjY7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBIT09LOzs7OworMDJCMjtNT0RJRklFUiBMRVRURVIgU01BTEwgSjtMbTswO0w7PHN1cGVyPiAwMDZBOzs7O047Ozs7OworMDJCMztNT0RJRklFUiBMRVRURVIgU01BTEwgUjtMbTswO0w7PHN1cGVyPiAwMDcyOzs7O047Ozs7OworMDJCNDtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFI7TG07MDtMOzxzdXBlcj4gMDI3OTs7OztOOzs7OzsKKzAyQjU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjdCOzs7O047TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSIEhPT0s7Ozs7CiswMkI2O01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFI7TG07MDtMOzxzdXBlcj4gMDI4MTs7OztOOzs7OzsKKzAyQjc7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFc7TG07MDtMOzxzdXBlcj4gMDA3Nzs7OztOOzs7OzsKKzAyQjg7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFk7TG07MDtMOzxzdXBlcj4gMDA3OTs7OztOOzs7OzsKKzAyQjk7TU9ESUZJRVIgTEVUVEVSIFBSSU1FO0xtOzA7T047Ozs7O047Ozs7OworMDJCQTtNT0RJRklFUiBMRVRURVIgRE9VQkxFIFBSSU1FO0xtOzA7T047Ozs7O047Ozs7OworMDJCQjtNT0RJRklFUiBMRVRURVIgVFVSTkVEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJDO01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJEO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCRTtNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJGO01PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJDMDtNT0RJRklFUiBMRVRURVIgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMxO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzI7TU9ESUZJRVIgTEVUVEVSIExFRlQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDMztNT0RJRklFUiBMRVRURVIgUklHSFQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNDtNT0RJRklFUiBMRVRURVIgVVAgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNTtNT0RJRklFUiBMRVRURVIgRE9XTiBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM2O01PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYIEFDQ0VOVDtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYOzs7OworMDJDNztDQVJPTjtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBIQUNFSztNYW5kYXJpbiBDaGluZXNlIHRoaXJkIHRvbmU7OzsKKzAyQzg7TU9ESUZJRVIgTEVUVEVSIFZFUlRJQ0FMIExJTkU7TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkM5O01PRElGSUVSIExFVFRFUiBNQUNST047TG07MDtPTjs7Ozs7Tjs7TWFuZGFyaW4gQ2hpbmVzZSBmaXJzdCB0b25lOzs7CiswMkNBO01PRElGSUVSIExFVFRFUiBBQ1VURSBBQ0NFTlQ7TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQUNVVEU7TWFuZGFyaW4gQ2hpbmVzZSBzZWNvbmQgdG9uZTs7OworMDJDQjtNT0RJRklFUiBMRVRURVIgR1JBVkUgQUNDRU5UO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEdSQVZFO01hbmRhcmluIENoaW5lc2UgZm91cnRoIHRvbmU7OzsKKzAyQ0M7TU9ESUZJRVIgTEVUVEVSIExPVyBWRVJUSUNBTCBMSU5FO0xtOzA7T047Ozs7O047Ozs7OworMDJDRDtNT0RJRklFUiBMRVRURVIgTE9XIE1BQ1JPTjtMbTswO09OOzs7OztOOzs7OzsKKzAyQ0U7TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRSBBQ0NFTlQ7TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEdSQVZFOzs7OworMDJDRjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFIEFDQ0VOVDtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEU7Ozs7CiswMkQwO01PRElGSUVSIExFVFRFUiBUUklBTkdVTEFSIENPTE9OO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkQxO01PRElGSUVSIExFVFRFUiBIQUxGIFRSSUFOR1VMQVIgQ09MT047TG07MDtMOzs7OztOOzs7OzsKKzAyRDI7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgUklHSFQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIFJJR0hUIEhBTEYgUklORzs7OzsKKzAyRDM7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgTEVGVCBIQUxGIFJJTkc7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0VOVEVSRUQgTEVGVCBIQUxGIFJJTkc7Ozs7CiswMkQ0O01PRElGSUVSIExFVFRFUiBVUCBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENTtNT0RJRklFUiBMRVRURVIgRE9XTiBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENjtNT0RJRklFUiBMRVRURVIgUExVUyBTSUdOO1NrOzA7T047Ozs7O047Ozs7OworMDJENztNT0RJRklFUiBMRVRURVIgTUlOVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDg7QlJFVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDY7Ozs7TjtTUEFDSU5HIEJSRVZFOzs7OworMDJEOTtET1QgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDc7Ozs7TjtTUEFDSU5HIERPVCBBQk9WRTtNYW5kYXJpbiBDaGluZXNlIGxpZ2h0IHRvbmU7OzsKKzAyREE7UklORyBBQk9WRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQTs7OztOO1NQQUNJTkcgUklORyBBQk9WRTs7OzsKKzAyREI7T0dPTkVLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI4Ozs7O047U1BBQ0lORyBPR09ORUs7Ozs7CiswMkRDO1NNQUxMIFRJTERFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAzOzs7O047U1BBQ0lORyBUSUxERTs7OzsKKzAyREQ7RE9VQkxFIEFDVVRFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQjs7OztOO1NQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDJERTtNT0RJRklFUiBMRVRURVIgUkhPVElDIEhPT0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkRGO01PRElGSUVSIExFVFRFUiBDUk9TUyBBQ0NFTlQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkUwO01PRElGSUVSIExFVFRFUiBTTUFMTCBHQU1NQTtMbTswO0w7PHN1cGVyPiAwMjYzOzs7O047Ozs7OworMDJFMTtNT0RJRklFUiBMRVRURVIgU01BTEwgTDtMbTswO0w7PHN1cGVyPiAwMDZDOzs7O047Ozs7OworMDJFMjtNT0RJRklFUiBMRVRURVIgU01BTEwgUztMbTswO0w7PHN1cGVyPiAwMDczOzs7O047Ozs7OworMDJFMztNT0RJRklFUiBMRVRURVIgU01BTEwgWDtMbTswO0w7PHN1cGVyPiAwMDc4Ozs7O047Ozs7OworMDJFNDtNT0RJRklFUiBMRVRURVIgU01BTEwgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs8c3VwZXI+IDAyOTU7Ozs7Tjs7Ozs7CiswMkU1O01PRElGSUVSIExFVFRFUiBFWFRSQS1ISUdIIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFNjtNT0RJRklFUiBMRVRURVIgSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTc7TU9ESUZJRVIgTEVUVEVSIE1JRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTg7TU9ESUZJRVIgTEVUVEVSIExPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTk7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRUE7TU9ESUZJRVIgTEVUVEVSIFlJTiBERVBBUlRJTkcgVE9ORSBNQVJLO1NrOzA7T047Ozs7O047Ozs7OworMDJFQjtNT0RJRklFUiBMRVRURVIgWUFORyBERVBBUlRJTkcgVE9ORSBNQVJLO1NrOzA7T047Ozs7O047Ozs7OworMDJFQztNT0RJRklFUiBMRVRURVIgVk9JQ0lORztTazswO09OOzs7OztOOzs7OzsKKzAyRUQ7TU9ESUZJRVIgTEVUVEVSIFVOQVNQSVJBVEVEO1NrOzA7T047Ozs7O047Ozs7OworMDJFRTtNT0RJRklFUiBMRVRURVIgRE9VQkxFIEFQT1NUUk9QSEU7TG07MDtMOzs7OztOOzs7OzsKKzAyRUY7TU9ESUZJRVIgTEVUVEVSIExPVyBET1dOIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyRjA7TU9ESUZJRVIgTEVUVEVSIExPVyBVUCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkYxO01PRElGSUVSIExFVFRFUiBMT1cgTEVGVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkYyO01PRElGSUVSIExFVFRFUiBMT1cgUklHSFQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJGMztNT0RJRklFUiBMRVRURVIgTE9XIFJJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY0O01PRElGSUVSIExFVFRFUiBNSURETEUgR1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047Ozs7OworMDJGNTtNT0RJRklFUiBMRVRURVIgTUlERExFIERPVUJMRSBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY2O01PRElGSUVSIExFVFRFUiBNSURETEUgRE9VQkxFIEFDVVRFIEFDQ0VOVDtTazswO09OOzs7OztOOzs7OzsKKzAyRjc7TU9ESUZJRVIgTEVUVEVSIExPVyBUSUxERTtTazswO09OOzs7OztOOzs7OzsKKzAyRjg7TU9ESUZJRVIgTEVUVEVSIFJBSVNFRCBDT0xPTjtTazswO09OOzs7OztOOzs7OzsKKzAyRjk7TU9ESUZJRVIgTEVUVEVSIEJFR0lOIEhJR0ggVE9ORTtTazswO09OOzs7OztOOzs7OzsKKzAyRkE7TU9ESUZJRVIgTEVUVEVSIEVORCBISUdIIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZCO01PRElGSUVSIExFVFRFUiBCRUdJTiBMT1cgVE9ORTtTazswO09OOzs7OztOOzs7OzsKKzAyRkM7TU9ESUZJRVIgTEVUVEVSIEVORCBMT1cgVE9ORTtTazswO09OOzs7OztOOzs7OzsKKzAyRkQ7TU9ESUZJRVIgTEVUVEVSIFNIRUxGO1NrOzA7T047Ozs7O047Ozs7OworMDJGRTtNT0RJRklFUiBMRVRURVIgT1BFTiBTSEVMRjtTazswO09OOzs7OztOOzs7OzsKKzAyRkY7TU9ESUZJRVIgTEVUVEVSIExPVyBMRUZUIEFSUk9XO1NrOzA7T047Ozs7O047Ozs7OworMDMwMDtDT01CSU5JTkcgR1JBVkUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkU7VmFyaWE7OzsKKzAzMDE7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFO094aWEsIFRvbm9zOzs7CiswMzAyO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENJUkNVTUZMRVg7Ozs7CiswMzAzO0NPTUJJTklORyBUSUxERTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFOzs7OworMDMwNDtDT01CSU5JTkcgTUFDUk9OO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OOzs7OworMDMwNTtDT01CSU5JTkcgT1ZFUkxJTkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBPVkVSU0NPUkU7Ozs7CiswMzA2O0NPTUJJTklORyBCUkVWRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSRVZFO1ZyYWNoeTs7OworMDMwNztDT01CSU5JTkcgRE9UIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9UIEFCT1ZFOzs7OworMDMwODtDT01CSU5JTkcgRElBRVJFU0lTO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRElBRVJFU0lTO0RpYWx5dGlrYTs7OworMDMwOTtDT01CSU5JTkcgSE9PSyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhPT0sgQUJPVkU7Ozs7CiswMzBBO0NPTUJJTklORyBSSU5HIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklORyBBQk9WRTs7OzsKKzAzMEI7Q09NQklOSU5HIERPVUJMRSBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgQUNVVEU7Ozs7CiswMzBDO0NPTUJJTklORyBDQVJPTjtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhBQ0VLOzs7OworMDMwRDtDT01CSU5JTkcgVkVSVElDQUwgTElORSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIExJTkUgQUJPVkU7Ozs7CiswMzBFO0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRjtDT01CSU5JTkcgRE9VQkxFIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBHUkFWRTs7OzsKKzAzMTA7Q09NQklOSU5HIENBTkRSQUJJTkRVO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0FORFJBQklORFU7Ozs7CiswMzExO0NPTUJJTklORyBJTlZFUlRFRCBCUkVWRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFOzs7OworMDMxMjtDT01CSU5JTkcgVFVSTkVEIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVFVSTkVEIENPTU1BIEFCT1ZFOzs7OworMDMxMztDT01CSU5JTkcgQ09NTUEgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBBQk9WRTtQc2lsaTs7OworMDMxNDtDT01CSU5JTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtEYXNpYTs7OworMDMxNTtDT01CSU5JTkcgQ09NTUEgQUJPVkUgUklHSFQ7TW47MjMyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBBQk9WRSBSSUdIVDs7OzsKKzAzMTY7Q09NQklOSU5HIEdSQVZFIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFIEJFTE9XOzs7OworMDMxNztDT01CSU5JTkcgQUNVVEUgQUNDRU5UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEUgQkVMT1c7Ozs7CiswMzE4O0NPTUJJTklORyBMRUZUIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIFRBQ0sgQkVMT1c7Ozs7CiswMzE5O0NPTUJJTklORyBSSUdIVCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgVEFDSyBCRUxPVzs7OzsKKzAzMUE7Q09NQklOSU5HIExFRlQgQU5HTEUgQUJPVkU7TW47MjMyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFOR0xFIEFCT1ZFOzs7OworMDMxQjtDT01CSU5JTkcgSE9STjtNbjsyMTY7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhPUk47Ozs7CiswMzFDO0NPTUJJTklORyBMRUZUIEhBTEYgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMxRDtDT01CSU5JTkcgVVAgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFVQIFRBQ0sgQkVMT1c7Ozs7CiswMzFFO0NPTUJJTklORyBET1dOIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1dOIFRBQ0sgQkVMT1c7Ozs7CiswMzFGO0NPTUJJTklORyBQTFVTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBQTFVTIFNJR04gQkVMT1c7Ozs7CiswMzIwO0NPTUJJTklORyBNSU5VUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUlOVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjE7Q09NQklOSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBQQUxBVEFMSVpFRCBIT09LIEJFTE9XOzs7OworMDMyMjtDT01CSU5JTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSRVRST0ZMRVggSE9PSyBCRUxPVzs7OzsKKzAzMjM7Q09NQklOSU5HIERPVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVCBCRUxPVzs7OzsKKzAzMjQ7Q09NQklOSU5HIERJQUVSRVNJUyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBET1QgQkVMT1c7Ozs7CiswMzI1O0NPTUJJTklORyBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklORyBCRUxPVzs7OzsKKzAzMjY7Q09NQklOSU5HIENPTU1BIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQkVMT1c7Ozs7CiswMzI3O0NPTUJJTklORyBDRURJTExBO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0VESUxMQTs7OzsKKzAzMjg7Q09NQklOSU5HIE9HT05FSztNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIE9HT05FSzs7OzsKKzAzMjk7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEJFTE9XOzs7OworMDMyQTtDT01CSU5JTkcgQlJJREdFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQlJJREdFIEJFTE9XOzs7OworMDMyQjtDT01CSU5JTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBET1VCTEUgQVJDSCBCRUxPVzs7OzsKKzAzMkM7Q09NQklOSU5HIENBUk9OIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUsgQkVMT1c7Ozs7CiswMzJEO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENJUkNVTUZMRVggQkVMT1c7Ozs7CiswMzJFO0NPTUJJTklORyBCUkVWRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSRVZFIEJFTE9XOzs7OworMDMyRjtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRSBCRUxPVzs7OzsKKzAzMzA7Q09NQklOSU5HIFRJTERFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREUgQkVMT1c7Ozs7CiswMzMxO0NPTUJJTklORyBNQUNST04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST04gQkVMT1c7Ozs7CiswMzMyO0NPTUJJTklORyBMT1cgTElORTtNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMzMzO0NPTUJJTklORyBET1VCTEUgTE9XIExJTkU7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgVU5ERVJTQ09SRTs7OzsKKzAzMzQ7Q09NQklOSU5HIFRJTERFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREUgT1ZFUkxBWTs7OzsKKzAzMzU7Q09NQklOSU5HIFNIT1JUIFNUUk9LRSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIEJBUiBPVkVSTEFZOzs7OworMDMzNjtDT01CSU5JTkcgTE9ORyBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIEJBUiBPVkVSTEFZOzs7OworMDMzNztDT01CSU5JTkcgU0hPUlQgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM4O0NPTUJJTklORyBMT05HIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM5O0NPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7Ozs7CiswMzNBO0NPTUJJTklORyBJTlZFUlRFRCBCUklER0UgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUklER0UgQkVMT1c7Ozs7CiswMzNCO0NPTUJJTklORyBTUVVBUkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTUVVBUkUgQkVMT1c7Ozs7CiswMzNDO0NPTUJJTklORyBTRUFHVUxMIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgU0VBR1VMTCBCRUxPVzs7OzsKKzAzM0Q7Q09NQklOSU5HIFggQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBYIEFCT1ZFOzs7OworMDMzRTtDT01CSU5JTkcgVkVSVElDQUwgVElMREU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBUSUxERTs7OzsKKzAzM0Y7Q09NQklOSU5HIERPVUJMRSBPVkVSTElORTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBPVkVSU0NPUkU7Ozs7CiswMzQwO0NPTUJJTklORyBHUkFWRSBUT05FIE1BUks7TW47MjMwO05TTTswMzAwOzs7O047Tk9OLVNQQUNJTkcgR1JBVkUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDE7Q09NQklOSU5HIEFDVVRFIFRPTkUgTUFSSztNbjsyMzA7TlNNOzAzMDE7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MjtDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzQzO0NPTUJJTklORyBHUkVFSyBLT1JPTklTO01uOzIzMDtOU007MDMxMzs7OztOOzs7OzsKKzAzNDQ7Q09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUztNbjsyMzA7TlNNOzAzMDggMDMwMTs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzNDU7Q09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkk7TW47MjQwO05TTTs7Ozs7TjtHUkVFSyBOT04tU1BBQ0lORyBJT1RBIEJFTE9XOzswMzk5OzswMzk5CiswMzQ2O0NPTUJJTklORyBCUklER0UgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ3O0NPTUJJTklORyBFUVVBTFMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNDg7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0OTtDT01CSU5JTkcgTEVGVCBBTkdMRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEE7Q09NQklOSU5HIE5PVCBUSUxERSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNEI7Q09NQklOSU5HIEhPTU9USEVUSUMgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzRDO0NPTUJJTklORyBBTE1PU1QgRVFVQUwgVE8gQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzREO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0RTtDT01CSU5JTkcgVVBXQVJEUyBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEY7Q09NQklOSU5HIEdSQVBIRU1FIEpPSU5FUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswMzUwO0NPTUJJTklORyBSSUdIVCBBUlJPV0hFQUQgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzUxO0NPTUJJTklORyBMRUZUIEhBTEYgUklORyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNTI7Q09NQklOSU5HIEZFUk1BVEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzUzO0NPTUJJTklORyBYIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1NDtDT01CSU5JTkcgTEVGVCBBUlJPV0hFQUQgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzU1O0NPTUJJTklORyBSSUdIVCBBUlJPV0hFQUQgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzU2O0NPTUJJTklORyBSSUdIVCBBUlJPV0hFQUQgQU5EIFVQIEFSUk9XSEVBRCBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNTc7Q09NQklOSU5HIFJJR0hUIEhBTEYgUklORyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNTg7Q09NQklOSU5HIERPVCBBQk9WRSBSSUdIVDtNbjsyMzI7TlNNOzs7OztOOzs7OzsKKzAzNTk7Q09NQklOSU5HIEFTVEVSSVNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1QTtDT01CSU5JTkcgRE9VQkxFIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzVCO0NPTUJJTklORyBaSUdaQUcgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzVDO0NPTUJJTklORyBET1VCTEUgQlJFVkUgQkVMT1c7TW47MjMzO05TTTs7Ozs7Tjs7Ozs7CiswMzVEO0NPTUJJTklORyBET1VCTEUgQlJFVkU7TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzVFO0NPTUJJTklORyBET1VCTEUgTUFDUk9OO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM1RjtDT01CSU5JTkcgRE9VQkxFIE1BQ1JPTiBCRUxPVztNbjsyMzM7TlNNOzs7OztOOzs7OzsKKzAzNjA7Q09NQklOSU5HIERPVUJMRSBUSUxERTtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNjE7Q09NQklOSU5HIERPVUJMRSBJTlZFUlRFRCBCUkVWRTtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNjI7Q09NQklOSU5HIERPVUJMRSBSSUdIVFdBUkRTIEFSUk9XIEJFTE9XO01uOzIzMztOU007Ozs7O047Ozs7OworMDM2MztDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY0O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjU7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBJO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2NjtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIE87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY3O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgVTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjg7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBDO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2OTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZBO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkI7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2QztDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFI7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZEO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkU7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBWO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2RjtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFg7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzc0O0dSRUVLIE5VTUVSQUwgU0lHTjtTazswO09OOzAyQjk7Ozs7TjtHUkVFSyBVUFBFUiBOVU1FUkFMIFNJR047RGV4aWEga2VyYWlhOzs7CiswMzc1O0dSRUVLIExPV0VSIE5VTUVSQUwgU0lHTjtTazswO09OOzs7OztOOztBcmlzdGVyaSBrZXJhaWE7OzsKKzAzN0E7R1JFRUsgWVBPR0VHUkFNTUVOSTtMbTswO0w7PGNvbXBhdD4gMDAyMCAwMzQ1Ozs7O047R1JFRUsgU1BBQ0lORyBJT1RBIEJFTE9XOzs7OworMDM3QjtHUkVFSyBTTUFMTCBSRVZFUlNFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7OzAzRkQ7OzAzRkQKKzAzN0M7R1JFRUsgU01BTEwgRE9UVEVEIExVTkFURSBTSUdNQSBTWU1CT0w7TGw7MDtMOzs7OztOOzs7MDNGRTs7MDNGRQorMDM3RDtHUkVFSyBTTUFMTCBSRVZFUlNFRCBET1RURUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7Ozs7O047OzswM0ZGOzswM0ZGCiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtPTjswMDNCOzs7O047O0Vyb3RpbWF0aWtvOzs7CiswMzg0O0dSRUVLIFRPTk9TO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBUT05PUzs7OzsKKzAzODU7R1JFRUsgRElBTFlUSUtBIFRPTk9TO1NrOzA7T047MDBBOCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO09OOzAwQjc7Ozs7Tjs7Ozs7CiswMzg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDM5NSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7OzAzQUQ7CiswMzg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk3IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgVE9OT1M7OzswM0FFOworMDM4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7THU7MDtMOzAzOTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgVE9OT1M7OzswM0FGOworMDM4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7THU7MDtMOzAzOUYgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzswM0NDOworMDM4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzQTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzswM0NEOworMDM4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0x1OzA7TDswM0E5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUT05PUzs7OzAzQ0U7CiswMzkwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTIFRPTk9TOzs7OworMDM5MTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQTtMdTswO0w7Ozs7O047Ozs7MDNCMTsKKzAzOTI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCMjsKKzAzOTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAzQjM7CiswMzk0O0dSRUVLIENBUElUQUwgTEVUVEVSIERFTFRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I0OworMDM5NTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0I1OworMDM5NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBaRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I2OworMDM5NztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEE7THU7MDtMOzs7OztOOzs7OzAzQjc7CiswMzk4O0dSRUVLIENBUElUQUwgTEVUVEVSIFRIRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I4OworMDM5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswM0I5OworMDM5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBLQVBQQTtMdTswO0w7Ozs7O047Ozs7MDNCQTsKKzAzOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNREE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTUJEQTs7OzAzQkI7CiswMzlDO0dSRUVLIENBUElUQUwgTEVUVEVSIE1VO0x1OzA7TDs7Ozs7Tjs7OzswM0JDOworMDM5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBOVTtMdTswO0w7Ozs7O047Ozs7MDNCRDsKKzAzOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWEk7THU7MDtMOzs7OztOOzs7OzAzQkU7CiswMzlGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST047THU7MDtMOzs7OztOOzs7OzAzQkY7CiswM0EwO0dSRUVLIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzswM0MwOworMDNBMTtHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE87THU7MDtMOzs7OztOOzs7OzAzQzE7CiswM0EzO0dSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BO0x1OzA7TDs7Ozs7Tjs7OzswM0MzOworMDNBNDtHUkVFSyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzAzQzQ7CiswM0E1O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQzU7CiswM0E2O0dSRUVLIENBUElUQUwgTEVUVEVSIFBISTtMdTswO0w7Ozs7O047Ozs7MDNDNjsKKzAzQTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQ0hJO0x1OzA7TDs7Ozs7Tjs7OzswM0M3OworMDNBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzAzQzg7CiswM0E5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswM0M5OworMDNBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0x1OzA7TDswMzk5IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7OzAzQ0E7CiswM0FCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzQTUgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzs7MDNDQjsKKzAzQUM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjEgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBUT05PUzs7MDM4Njs7MDM4NgorMDNBRDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0I1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7MDM4ODs7MDM4OAorMDNBRTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjcgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgVE9OT1M7OzAzODk7OzAzODkKKzAzQUY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMbDswO0w7MDNCOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgVE9OT1M7OzAzOEE7OzAzOEEKKzAzQjA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NCIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVMgVE9OT1M7Ozs7CiswM0IxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047OzswMzkxOzswMzkxCiswM0IyO0dSRUVLIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTI7OzAzOTIKKzAzQjM7R1JFRUsgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzOTM7OzAzOTMKKzAzQjQ7R1JFRUsgU01BTEwgTEVUVEVSIERFTFRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTQ7OzAzOTQKKzAzQjU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT047TGw7MDtMOzs7OztOOzs7MDM5NTs7MDM5NQorMDNCNjtHUkVFSyBTTUFMTCBMRVRURVIgWkVUQTtMbDswO0w7Ozs7O047OzswMzk2OzswMzk2CiswM0I3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEE7TGw7MDtMOzs7OztOOzs7MDM5Nzs7MDM5NworMDNCODtHUkVFSyBTTUFMTCBMRVRURVIgVEhFVEE7TGw7MDtMOzs7OztOOzs7MDM5ODs7MDM5OAorMDNCOTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMzk5OzswMzk5CiswM0JBO0dSRUVLIFNNQUxMIExFVFRFUiBLQVBQQTtMbDswO0w7Ozs7O047OzswMzlBOzswMzlBCiswM0JCO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1EQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExBTUJEQTs7MDM5Qjs7MDM5QgorMDNCQztHUkVFSyBTTUFMTCBMRVRURVIgTVU7TGw7MDtMOzs7OztOOzs7MDM5Qzs7MDM5QworMDNCRDtHUkVFSyBTTUFMTCBMRVRURVIgTlU7TGw7MDtMOzs7OztOOzs7MDM5RDs7MDM5RAorMDNCRTtHUkVFSyBTTUFMTCBMRVRURVIgWEk7TGw7MDtMOzs7OztOOzs7MDM5RTs7MDM5RQorMDNCRjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTjtMbDswO0w7Ozs7O047OzswMzlGOzswMzlGCiswM0MwO0dSRUVLIFNNQUxMIExFVFRFUiBQSTtMbDswO0w7Ozs7O047OzswM0EwOzswM0EwCiswM0MxO0dSRUVLIFNNQUxMIExFVFRFUiBSSE87TGw7MDtMOzs7OztOOzs7MDNBMTs7MDNBMQorMDNDMjtHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDMztHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDNDtHUkVFSyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzAzQTQ7OzAzQTQKKzAzQzU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDNBNTs7MDNBNQorMDNDNjtHUkVFSyBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7OzAzQTY7OzAzQTYKKzAzQzc7R1JFRUsgU01BTEwgTEVUVEVSIENISTtMbDswO0w7Ozs7O047OzswM0E3OzswM0E3CiswM0M4O0dSRUVLIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDNBODs7MDNBOAorMDNDOTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDNBOTs7MDNBOQorMDNDQTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNCOSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzswM0FBOzswM0FBCiswM0NCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0M1IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzAzQUI7OzAzQUIKKzAzQ0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMbDswO0w7MDNCRiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzAzOEM7OzAzOEMKKzAzQ0Q7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNDNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzAzOEU7OzAzOEUKKzAzQ0U7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7TGw7MDtMOzAzQzkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBUT05PUzs7MDM4Rjs7MDM4RgorMDNEMDtHUkVFSyBCRVRBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBDVVJMRUQgQkVUQTs7MDM5Mjs7MDM5MgorMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIFRIRVRBOzswMzk4OzswMzk4CiswM0QyO0dSRUVLIFVQU0lMT04gV0lUSCBIT09LIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBNTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDNjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgUEhJOzswM0E2OzswM0E2CiswM0Q2O0dSRUVLIFBJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBQSTs7MDNBMDs7MDNBMAorMDNENztHUkVFSyBLQUkgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswM0Q4O0dSRUVLIExFVFRFUiBBUkNIQUlDIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7Kjs7MDNEOTsKKzAzRDk7R1JFRUsgU01BTEwgTEVUVEVSIEFSQ0hBSUMgS09QUEE7TGw7MDtMOzs7OztOOzsqOzAzRDg7OzAzRDgKKzAzREE7R1JFRUsgTEVUVEVSIFNUSUdNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU1RJR01BOzs7MDNEQjsKKzAzREI7R1JFRUsgU01BTEwgTEVUVEVSIFNUSUdNQTtMbDswO0w7Ozs7O047OzswM0RBOzswM0RBCiswM0RDO0dSRUVLIExFVFRFUiBESUdBTU1BO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBESUdBTU1BOzs7MDNERDsKKzAzREQ7R1JFRUsgU01BTEwgTEVUVEVSIERJR0FNTUE7TGw7MDtMOzs7OztOOzs7MDNEQzs7MDNEQworMDNERTtHUkVFSyBMRVRURVIgS09QUEE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtPUFBBOzs7MDNERjsKKzAzREY7R1JFRUsgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzREU7OzAzREUKKzAzRTA7R1JFRUsgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU1QSTs7OzAzRTE7CiswM0UxO0dSRUVLIFNNQUxMIExFVFRFUiBTQU1QSTtMbDswO0w7Ozs7O047OzswM0UwOzswM0UwCiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0JBOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBLQVBQQTs7MDM5QTs7MDM5QQorMDNGMTtHUkVFSyBSSE8gU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0MxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OzAzQTEKKzAzRjI7R1JFRUsgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMVU5BVEUgU0lHTUE7OzAzRjk7OzAzRjkKKzAzRjM7R1JFRUsgTEVUVEVSIFlPVDtMbDswO0w7Ozs7O047Ozs7OworMDNGNDtHUkVFSyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDM5ODs7OztOOzs7OzAzQjg7CiswM0Y1O0dSRUVLIExVTkFURSBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCNTs7OztOOzs7MDM5NTs7MDM5NQorMDNGNjtHUkVFSyBSRVZFUlNFRCBMVU5BVEUgRVBTSUxPTiBTWU1CT0w7U207MDtPTjs7Ozs7Tjs7Ozs7CiswM0Y3O0dSRUVLIENBUElUQUwgTEVUVEVSIFNITztMdTswO0w7Ozs7O047Ozs7MDNGODsKKzAzRjg7R1JFRUsgU01BTEwgTEVUVEVSIFNITztMbDswO0w7Ozs7O047OzswM0Y3OzswM0Y3CiswM0Y5O0dSRUVLIENBUElUQUwgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBMzs7OztOOzs7OzAzRjI7CiswM0ZBO0dSRUVLIENBUElUQUwgTEVUVEVSIFNBTjtMdTswO0w7Ozs7O047Ozs7MDNGQjsKKzAzRkI7R1JFRUsgU01BTEwgTEVUVEVSIFNBTjtMbDswO0w7Ozs7O047OzswM0ZBOzswM0ZBCiswM0ZDO0dSRUVLIFJITyBXSVRIIFNUUk9LRSBTWU1CT0w7TGw7MDtMOzs7OztOOzs7OzsKKzAzRkQ7R1JFRUsgQ0FQSVRBTCBSRVZFUlNFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0x1OzA7TDs7Ozs7Tjs7OzswMzdCOworMDNGRTtHUkVFSyBDQVBJVEFMIERPVFRFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0x1OzA7TDs7Ozs7Tjs7OzswMzdDOworMDNGRjtHUkVFSyBDQVBJVEFMIFJFVkVSU0VEIERPVFRFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0x1OzA7TDs7Ozs7Tjs7OzswMzdEOworMDQwMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0x1OzA7TDswNDE1IDAzMDA7Ozs7Tjs7OzswNDUwOworMDQwMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJTztMdTswO0w7MDQxNSAwMzA4Ozs7O047Ozs7MDQ1MTsKKzA0MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREpFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1MjsKKzA0MDM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0pFO0x1OzA7TDswNDEzIDAzMDE7Ozs7Tjs7OzswNDUzOworMDQwNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVS1JBSU5JQU4gSUU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7OzswNDU0OworMDQwNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkU7THU7MDtMOzs7OztOOzs7OzA0NTU7CiswNDA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTs7OzA0NTY7CiswNDA3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlJO0x1OzA7TDswNDA2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzswNDU3OworMDQwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBKRTtMdTswO0w7Ozs7O047Ozs7MDQ1ODsKKzA0MDk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU5OworMDQwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBOSkU7THU7MDtMOzs7OztOOzs7OzA0NUE7CiswNDBCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTSEU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDVCOworMDQwQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSkU7THU7MDtMOzA0MUEgMDMwMTs7OztOOzs7OzA0NUM7CiswNDBEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDQxOCAwMzAwOzs7O047Ozs7MDQ1RDsKKzA0MEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgVTtMdTswO0w7MDQyMyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjs7MDQ1RTsKKzA0MEY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRTtMdTswO0w7Ozs7O047Ozs7MDQ1RjsKKzA0MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDQzMDsKKzA0MTE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkU7THU7MDtMOzs7OztOOzs7OzA0MzE7CiswNDEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFZFO0x1OzA7TDs7Ozs7Tjs7OzswNDMyOworMDQxMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFOzs7MDQzMzsKKzA0MTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREU7THU7MDtMOzs7OztOOzs7OzA0MzQ7CiswNDE1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFO0x1OzA7TDs7Ozs7Tjs7OzswNDM1OworMDQxNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA0MzY7CiswNDE3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDM3OworMDQxODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJSTs7OzA0Mzg7CiswNDE5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzA0MTggMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIElJOzs7MDQzOTsKKzA0MUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0E7THU7MDtMOzs7OztOOzs7OzA0M0E7CiswNDFCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzswNDNCOworMDQxQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MDQzQzsKKzA0MUQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzA0M0Q7CiswNDFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzA0M0U7CiswNDFGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzswNDNGOworMDQyMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MDQ0MDsKKzA0MjE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzA0NDE7CiswNDIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFO0x1OzA7TDs7Ozs7Tjs7OzswNDQyOworMDQyMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswNDQzOworMDQyNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MDQ0NDsKKzA0MjU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQTs7OzA0NDU7CiswNDI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRTtMdTswO0w7Ozs7O047Ozs7MDQ0NjsKKzA0Mjc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ3OworMDQyODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA0NDg7CiswNDI5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ5OworMDQyQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEE7CiswNDJCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUkk7OzswNDRCOworMDQyQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEM7CiswNDJEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7OzswNDREOworMDQyRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVU7OzswNDRFOworMDQyRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUE7OzswNDRGOworMDQzMDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswNDEwOzswNDEwCiswNDMxO0NZUklMTElDIFNNQUxMIExFVFRFUiBCRTtMbDswO0w7Ozs7O047OzswNDExOzswNDExCiswNDMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBWRTtMbDswO0w7Ozs7O047OzswNDEyOzswNDEyCiswNDMzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRTs7MDQxMzs7MDQxMworMDQzNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgREU7TGw7MDtMOzs7OztOOzs7MDQxNDs7MDQxNAorMDQzNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUU7TGw7MDtMOzs7OztOOzs7MDQxNTs7MDQxNQorMDQzNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MTY7OzA0MTYKKzA0Mzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MTc7OzA0MTcKKzA0Mzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJSTs7MDQxODs7MDQxOAorMDQzOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7MDQzOCAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIElJOzswNDE5OzswNDE5CiswNDNBO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQTtMbDswO0w7Ozs7O047OzswNDFBOzswNDFBCiswNDNCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzswNDFCOzswNDFCCiswNDNDO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzswNDFDOzswNDFDCiswNDNEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzswNDFEOzswNDFECiswNDNFO0NZUklMTElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzA0MUU7OzA0MUUKKzA0M0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFO0xsOzA7TDs7Ozs7Tjs7OzA0MUY7OzA0MUYKKzA0NDA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzA0MjA7OzA0MjAKKzA0NDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzA0MjE7OzA0MjEKKzA0NDI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFO0xsOzA7TDs7Ozs7Tjs7OzA0MjI7OzA0MjIKKzA0NDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDQyMzs7MDQyMworMDQ0NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MDQyNDs7MDQyNAorMDQ0NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEE7OzA0MjU7OzA0MjUKKzA0NDY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRTtMbDswO0w7Ozs7O047OzswNDI2OzswNDI2CiswNDQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEU7TGw7MDtMOzs7OztOOzs7MDQyNzs7MDQyNworMDQ0ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjg7OzA0MjgKKzA0NDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjk7OzA0MjkKKzA0NEE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJBOzswNDJBCiswNDRCO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSSTs7MDQyQjs7MDQyQgorMDQ0QztDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkM7OzA0MkMKKzA0NEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFOzswNDJEOzswNDJECiswNDRFO0NZUklMTElDIFNNQUxMIExFVFRFUiBZVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElVOzswNDJFOzswNDJFCiswNDRGO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElBOzswNDJGOzswNDJGCiswNDUwO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0xsOzA7TDswNDM1IDAzMDA7Ozs7Tjs7OzA0MDA7OzA0MDAKKzA0NTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPO0xsOzA7TDswNDM1IDAzMDg7Ozs7Tjs7OzA0MDE7OzA0MDEKKzA0NTI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERKRTtMbDswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47MDQwMjs7MDQwMgorMDQ1MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0pFO0xsOzA7TDswNDMzIDAzMDE7Ozs7Tjs7OzA0MDM7OzA0MDMKKzA0NTQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLUkFJTklBTiBJRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7OzA0MDQ7OzA0MDQKKzA0NTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERaRTtMbDswO0w7Ozs7O047OzswNDA1OzswNDA1CiswNDU2O0NZUklMTElDIFNNQUxMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJOzswNDA2OzswNDA2CiswNDU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7MDQ1NiAwMzA4Ozs7O047O1VrcmFpbmlhbjswNDA3OzswNDA3CiswNDU4O0NZUklMTElDIFNNQUxMIExFVFRFUiBKRTtMbDswO0w7Ozs7O047OzswNDA4OzswNDA4CiswNDU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSkU7TGw7MDtMOzs7OztOOzs7MDQwOTs7MDQwOQorMDQ1QTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTkpFO0xsOzA7TDs7Ozs7Tjs7OzA0MEE7OzA0MEEKKzA0NUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTSEU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MEI7OzA0MEIKKzA0NUM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtKRTtMbDswO0w7MDQzQSAwMzAxOzs7O047OzswNDBDOzswNDBDCiswNDVEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzA0MzggMDMwMDs7OztOOzs7MDQwRDs7MDQwRAorMDQ1RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgVTtMbDswO0w7MDQ0MyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjswNDBFOzswNDBFCiswNDVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MEY7OzA0MEYKKzA0NjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0NjE7CiswNDYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswNDYwOzswNDYwCiswNDYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVDtMdTswO0w7Ozs7O047Ozs7MDQ2MzsKKzA0NjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVDtMbDswO0w7Ozs7O047OzswNDYyOzswNDYyCiswNDY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEU7THU7MDtMOzs7OztOOzs7OzA0NjU7CiswNDY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBFO0xsOzA7TDs7Ozs7Tjs7OzA0NjQ7OzA0NjQKKzA0NjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2NzsKKzA0Njc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Njs7MDQ2NgorMDQ2ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY5OworMDQ2OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY4OzswNDY4CiswNDZBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkI7CiswNDZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkE7OzA0NkEKKzA0NkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2RDsKKzA0NkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Qzs7MDQ2QworMDQ2RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLU0k7THU7MDtMOzs7OztOOzs7OzA0NkY7CiswNDZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MDQ2RTs7MDQ2RQorMDQ3MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzA0NzE7CiswNDcxO0NZUklMTElDIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDQ3MDs7MDQ3MAorMDQ3MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzswNDczOworMDQ3MztDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzswNDcyOzswNDcyCiswNDc0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzA0NzU7CiswNDc1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBO0xsOzA7TDs7Ozs7Tjs7OzA0NzQ7OzA0NzQKKzA0NzY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7THU7MDtMOzA0NzQgMDMwRjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzs7MDQ3NzsKKzA0Nzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0xsOzA7TDswNDc1IDAzMEY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzA0NzY7OzA0NzYKKzA0Nzg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUs7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLIERJR1JBUEg7OzswNDc5OworMDQ3OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUs7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBVSyBESUdSQVBIOzswNDc4OzswNDc4CiswNDdBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJPVU5EIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDdCOworMDQ3QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ3QTs7MDQ3QQorMDQ3QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUSVRMTzs7OzA0N0Q7CiswNDdEO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgVElUTE87OzA0N0M7OzA0N0MKKzA0N0U7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1Q7THU7MDtMOzs7OztOOzs7OzA0N0Y7CiswNDdGO0NZUklMTElDIFNNQUxMIExFVFRFUiBPVDtMbDswO0w7Ozs7O047OzswNDdFOzswNDdFCiswNDgwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7OzswNDgxOworMDQ4MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09QUEE7TGw7MDtMOzs7OztOOzs7MDQ4MDs7MDQ4MAorMDQ4MjtDWVJJTExJQyBUSE9VU0FORFMgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMDQ4MztDT01CSU5JTkcgQ1lSSUxMSUMgVElUTE87TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBUSVRMTzs7OzsKKzA0ODQ7Q09NQklOSU5HIENZUklMTElDIFBBTEFUQUxJWkFUSU9OO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUEFMQVRBTElaQVRJT047Ozs7CiswNDg1O0NPTUJJTklORyBDWVJJTExJQyBEQVNJQSBQTkVVTUFUQTtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIERBU0lBIFBORVVNQVRBOzs7OworMDQ4NjtDT01CSU5JTkcgQ1lSSUxMSUMgUFNJTEkgUE5FVU1BVEE7TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQU0lMSSBQTkVVTUFUQTs7OzsKKzA0ODg7Q09NQklOSU5HIENZUklMTElDIEhVTkRSRUQgVEhPVVNBTkRTIFNJR047TWU7MDtOU007Ozs7O047Ozs7OworMDQ4OTtDT01CSU5JTkcgQ1lSSUxMSUMgTUlMTElPTlMgU0lHTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CiswNDhBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEkgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNDhCOworMDQ4QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSSBXSVRIIFRBSUw7TGw7MDtMOzs7OztOOzs7MDQ4QTs7MDQ4QQorMDQ4QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTRU1JU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDhEOworMDQ4RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0VNSVNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDhDOzswNDhDCiswNDhFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVSIFdJVEggVElDSztMdTswO0w7Ozs7O047Ozs7MDQ4RjsKKzA0OEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSIFdJVEggVElDSztMbDswO0w7Ozs7O047OzswNDhFOzswNDhFCiswNDkwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzswNDkxOworMDQ5MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzA0OTA7OzA0OTAKKzA0OTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBCQVI7OzswNDkzOworMDQ5MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgQkFSOzswNDkyOzswNDkyCiswNDk0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBIT09LOzs7MDQ5NTsKKzA0OTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgSE9PSzs7MDQ5NDs7MDQ5NAorMDQ5NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OTc7CiswNDk3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OTY7OzA0OTYKKzA0OTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIENFRElMTEE7OzswNDk5OworMDQ5OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBDRURJTExBOzswNDk4OzswNDk4CiswNDlBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OUI7CiswNDlCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDlBOzswNDlBCiswNDlDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzswNDlEOworMDQ5RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzA0OUM7OzA0OUMKKzA0OUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEJBUjs7OzA0OUY7CiswNDlGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEJBUjs7MDQ5RTs7MDQ5RQorMDRBMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVNIS0lSIEtBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7OzA0QTE7CiswNEExO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVNIS0lSIEtBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzA0QTA7OzA0QTAKKzA0QTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBMzsKKzA0QTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QTI7OzA0QTIKKzA0QTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBFTiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEdFOzs7MDRBNTsKKzA0QTU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgRU4gR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gR0U7OzA0QTQ7OzA0QTQKKzA0QTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47OzA0QTc7CiswNEE3O0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47MDRBNjs7MDRBNgorMDRBODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gSE9PSzs7OzA0QTk7CiswNEE5O0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBPIEhPT0s7OzA0QTg7OzA0QTgKKzA0QUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIENFRElMTEE7OzswNEFCOworMDRBQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBDRURJTExBOzswNEFBOzswNEFBCiswNEFDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QUQ7CiswNEFEO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEFDOzswNEFDCiswNEFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFU7THU7MDtMOzs7OztOOzs7OzA0QUY7CiswNEFGO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVO0xsOzA7TDs7Ozs7Tjs7OzA0QUU7OzA0QUUKKzA0QjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzswNEIxOworMDRCMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzswNEIwOzswNEIwCiswNEIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEIzOworMDRCMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjI7OzA0QjIKKzA0QjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBURSBUU0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47OzA0QjU7CiswNEI1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIFRFIFRTRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47MDRCNDs7MDRCNAorMDRCNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0Qjc7CiswNEI3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjY7OzA0QjYKKzA0Qjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzs7MDRCOTsKKzA0Qjk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzA0Qjg7OzA0QjgKKzA0QkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSDs7OzA0QkI7CiswNEJCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSDs7MDRCQTs7MDRCQQorMDRCQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LOzs7MDRCRDsKKzA0QkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LOzswNEJDOzswNEJDCiswNEJFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzs7MDRCRjsKKzA0QkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7MDRCRTs7MDRCRQorMDRDMDtDWVJJTExJQyBMRVRURVIgUEFMT0NIS0E7THU7MDtMOzs7OztOO0NZUklMTElDIExFVFRFUiBJOzs7MDRDRjsKKzA0QzE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7THU7MDtMOzA0MTYgMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFpIRTs7OzA0QzI7CiswNEMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNiAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFpIRTs7MDRDMTs7MDRDMQorMDRDMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEhPT0s7OzswNEM0OworMDRDNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgSE9PSzs7MDRDMzs7MDRDMworMDRDNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTCBXSVRIIFRBSUw7THU7MDtMOzs7OztOOzs7OzA0QzY7CiswNEM2O0NZUklMTElDIFNNQUxMIExFVFRFUiBFTCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOOzs7MDRDNTs7MDRDNQorMDRDNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEhPT0s7OzswNEM4OworMDRDODtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gSE9PSzs7MDRDNzs7MDRDNworMDRDOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIFRBSUw7THU7MDtMOzs7OztOOzs7OzA0Q0E7CiswNENBO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIFRBSUw7TGw7MDtMOzs7OztOOzs7MDRDOTs7MDRDOQorMDRDQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEFLQVNTSUFOIENIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzswNENDOworMDRDQztDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBMRUZUIERFU0NFTkRFUjs7MDRDQjs7MDRDQgorMDRDRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTSBXSVRIIFRBSUw7THU7MDtMOzs7OztOOzs7OzA0Q0U7CiswNENFO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTSBXSVRIIFRBSUw7TGw7MDtMOzs7OztOOzs7MDRDRDs7MDRDRAorMDRDRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEFMT0NIS0E7TGw7MDtMOzs7OztOOzs7MDRDMDs7MDRDMAorMDREMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkU7THU7MDtMOzA0MTAgMDMwNjs7OztOOzs7OzA0RDE7CiswNEQxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkU7TGw7MDtMOzA0MzAgMDMwNjs7OztOOzs7MDREMDs7MDREMAorMDREMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDEwIDAzMDg7Ozs7Tjs7OzswNEQzOworMDREMztDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzMCAwMzA4Ozs7O047OzswNEQyOzswNEQyCiswNEQ0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgQSBJRTtMdTswO0w7Ozs7O047Ozs7MDRENTsKKzA0RDU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgQSBJRTtMbDswO0w7Ozs7O047OzswNEQ0OzswNEQ0CiswNEQ2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIFdJVEggQlJFVkU7THU7MDtMOzA0MTUgMDMwNjs7OztOOzs7OzA0RDc7CiswNEQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0xsOzA7TDswNDM1IDAzMDY7Ozs7Tjs7OzA0RDY7OzA0RDYKKzA0RDg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0E7THU7MDtMOzs7OztOOzs7OzA0RDk7CiswNEQ5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswNEQ4OzswNEQ4CiswNERBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEQ4IDAzMDg7Ozs7Tjs7OzswNERCOworMDREQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RDkgMDMwODs7OztOOzs7MDREQTs7MDREQQorMDREQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTYgMDMwODs7OztOOzs7OzA0REQ7CiswNEREO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzYgMDMwODs7OztOOzs7MDREQzs7MDREQworMDRERTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxNyAwMzA4Ozs7O047Ozs7MDRERjsKKzA0REY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM3IDAzMDg7Ozs7Tjs7OzA0REU7OzA0REUKKzA0RTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIERaRTtMdTswO0w7Ozs7O047Ozs7MDRFMTsKKzA0RTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7TGw7MDtMOzs7OztOOzs7MDRFMDs7MDRFMAorMDRFMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggTUFDUk9OO0x1OzA7TDswNDE4IDAzMDQ7Ozs7Tjs7OzswNEUzOworMDRFMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQzOCAwMzA0Ozs7O047OzswNEUyOzswNEUyCiswNEU0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTggMDMwODs7OztOOzs7OzA0RTU7CiswNEU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM4IDAzMDg7Ozs7Tjs7OzA0RTQ7OzA0RTQKKzA0RTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxRSAwMzA4Ozs7O047Ozs7MDRFNzsKKzA0RTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0M0UgMDMwODs7OztOOzs7MDRFNjs7MDRFNgorMDRFODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTztMdTswO0w7Ozs7O047Ozs7MDRFOTsKKzA0RTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDs7Ozs7Tjs7OzA0RTg7OzA0RTgKKzA0RUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0RTggMDMwODs7OztOOzs7OzA0RUI7CiswNEVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDRFOSAwMzA4Ozs7O047OzswNEVBOzswNEVBCiswNEVDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MkQgMDMwODs7OztOOzs7OzA0RUQ7CiswNEVEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDREIDAzMDg7Ozs7Tjs7OzA0RUM7OzA0RUMKKzA0RUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMdTswO0w7MDQyMyAwMzA0Ozs7O047Ozs7MDRFRjsKKzA0RUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST047TGw7MDtMOzA0NDMgMDMwNDs7OztOOzs7MDRFRTs7MDRFRQorMDRGMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDIzIDAzMDg7Ozs7Tjs7OzswNEYxOworMDRGMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0MyAwMzA4Ozs7O047OzswNEYwOzswNEYwCiswNEYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzA0MjMgMDMwQjs7OztOOzs7OzA0RjM7CiswNEYzO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswNDQzIDAzMEI7Ozs7Tjs7OzA0RjI7OzA0RjIKKzA0RjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDI3IDAzMDg7Ozs7Tjs7OzswNEY1OworMDRGNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDQ3IDAzMDg7Ozs7Tjs7OzA0RjQ7OzA0RjQKKzA0RjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7Tjs7OzswNEY3OworMDRGNztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7Tjs7OzA0RjY7OzA0RjYKKzA0Rjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUVSVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyQiAwMzA4Ozs7O047Ozs7MDRGOTsKKzA0Rjk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUlUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NEIgMDMwODs7OztOOzs7MDRGODs7MDRGOAorMDRGQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UgQU5EIEhPT0s7THU7MDtMOzs7OztOOzs7OzA0RkI7CiswNEZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UgQU5EIEhPT0s7TGw7MDtMOzs7OztOOzs7MDRGQTs7MDRGQQorMDRGQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIEhPT0s7THU7MDtMOzs7OztOOzs7OzA0RkQ7CiswNEZEO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOOzs7MDRGQzs7MDRGQworMDRGRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDRGRjsKKzA0RkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7Tjs7OzA0RkU7OzA0RkUKKzA1MDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBERTtMdTswO0w7Ozs7O047Ozs7MDUwMTsKKzA1MDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgREU7TGw7MDtMOzs7OztOOzs7MDUwMDs7MDUwMAorMDUwMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIERKRTtMdTswO0w7Ozs7O047Ozs7MDUwMzsKKzA1MDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgREpFO0xsOzA7TDs7Ozs7Tjs7OzA1MDI7OzA1MDIKKzA1MDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBaSkU7THU7MDtMOzs7OztOOzs7OzA1MDU7CiswNTA1O0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIFpKRTtMbDswO0w7Ozs7O047OzswNTA0OzswNTA0CiswNTA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgRFpKRTtMdTswO0w7Ozs7O047Ozs7MDUwNzsKKzA1MDc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgRFpKRTtMbDswO0w7Ozs7O047OzswNTA2OzswNTA2CiswNTA4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNTA5OworMDUwOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBMSkU7TGw7MDtMOzs7OztOOzs7MDUwODs7MDUwOAorMDUwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIE5KRTtMdTswO0w7Ozs7O047Ozs7MDUwQjsKKzA1MEI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgTkpFO0xsOzA7TDs7Ozs7Tjs7OzA1MEE7OzA1MEEKKzA1MEM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBTSkU7THU7MDtMOzs7OztOOzs7OzA1MEQ7CiswNTBEO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIFNKRTtMbDswO0w7Ozs7O047OzswNTBDOzswNTBDCiswNTBFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgVEpFO0x1OzA7TDs7Ozs7Tjs7OzswNTBGOworMDUwRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBUSkU7TGw7MDtMOzs7OztOOzs7MDUwRTs7MDUwRQorMDUxMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBaRTtMdTswO0w7Ozs7O047Ozs7MDUxMTsKKzA1MTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJFVkVSU0VEIFpFO0xsOzA7TDs7Ozs7Tjs7OzA1MTA7OzA1MTAKKzA1MTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUwgV0lUSCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswNTEzOworMDUxMztDWVJJTExJQyBTTUFMTCBMRVRURVIgRUwgV0lUSCBIT09LO0xsOzA7TDs7Ozs7Tjs7OzA1MTI7OzA1MTIKKzA1MzE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQVlCO0x1OzA7TDs7Ozs7Tjs7OzswNTYxOworMDUzMjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBCRU47THU7MDtMOzs7OztOOzs7OzA1NjI7CiswNTMzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdJTTtMdTswO0w7Ozs7O047Ozs7MDU2MzsKKzA1MzQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgREE7THU7MDtMOzs7OztOOzs7OzA1NjQ7CiswNTM1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVDSDtMdTswO0w7Ozs7O047Ozs7MDU2NTsKKzA1MzY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWkE7THU7MDtMOzs7OztOOzs7OzA1NjY7CiswNTM3O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTY3OworMDUzODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFVDtMdTswO0w7Ozs7O047Ozs7MDU2ODsKKzA1Mzk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVE87THU7MDtMOzs7OztOOzs7OzA1Njk7CiswNTNBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpIRTtMdTswO0w7Ozs7O047Ozs7MDU2QTsKKzA1M0I7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSU5JO0x1OzA7TDs7Ozs7Tjs7OzswNTZCOworMDUzQztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBMSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTZDOworMDUzRDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBYRUg7THU7MDtMOzs7OztOOzs7OzA1NkQ7CiswNTNFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENBO0x1OzA7TDs7Ozs7Tjs7OzswNTZFOworMDUzRjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRU47THU7MDtMOzs7OztOOzs7OzA1NkY7CiswNTQwO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEhPO0x1OzA7TDs7Ozs7Tjs7OzswNTcwOworMDU0MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBKQTtMdTswO0w7Ozs7O047Ozs7MDU3MTsKKzA1NDI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgR0hBRDtMdTswO0w7Ozs7O047QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTEFEOzs7MDU3MjsKKzA1NDM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hFSDtMdTswO0w7Ozs7O047Ozs7MDU3MzsKKzA1NDQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTUVOO0x1OzA7TDs7Ozs7Tjs7OzswNTc0OworMDU0NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7Ozs7O047Ozs7MDU3NTsKKzA1NDY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTk9XO0x1OzA7TDs7Ozs7Tjs7OzswNTc2OworMDU0NztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA1Nzc7CiswNTQ4O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZPO0x1OzA7TDs7Ozs7Tjs7OzswNTc4OworMDU0OTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDSEE7THU7MDtMOzs7OztOOzs7OzA1Nzk7CiswNTRBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFBFSDtMdTswO0w7Ozs7O047Ozs7MDU3QTsKKzA1NEI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkhFSDtMdTswO0w7Ozs7O047Ozs7MDU3QjsKKzA1NEM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkE7THU7MDtMOzs7OztOOzs7OzA1N0M7CiswNTREO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFNFSDtMdTswO0w7Ozs7O047Ozs7MDU3RDsKKzA1NEU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVkVXO0x1OzA7TDs7Ozs7Tjs7OzswNTdFOworMDU0RjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBUSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTdGOworMDU1MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBSRUg7THU7MDtMOzs7OztOOzs7OzA1ODA7CiswNTUxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENPO0x1OzA7TDs7Ozs7Tjs7OzswNTgxOworMDU1MjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTgyOworMDU1MztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQSVdSO0x1OzA7TDs7Ozs7Tjs7OzswNTgzOworMDU1NDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRUg7THU7MDtMOzs7OztOOzs7OzA1ODQ7CiswNTU1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE9IO0x1OzA7TDs7Ozs7Tjs7OzswNTg1OworMDU1NjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBGRUg7THU7MDtMOzs7OztOOzs7OzA1ODY7CiswNTU5O0FSTUVOSUFOIE1PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDU1QTtBUk1FTklBTiBBUE9TVFJPUEhFO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HOzs7OworMDU1QjtBUk1FTklBTiBFTVBIQVNJUyBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVDO0FSTUVOSUFOIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUQ7QVJNRU5JQU4gQ09NTUE7UG87MDtMOzs7OztOOzs7OzsKKzA1NUU7QVJNRU5JQU4gUVVFU1RJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1RjtBUk1FTklBTiBBQkJSRVZJQVRJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU2MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQVlCO0xsOzA7TDs7Ozs7Tjs7OzA1MzE7OzA1MzEKKzA1NjI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEJFTjtMbDswO0w7Ozs7O047OzswNTMyOzswNTMyCiswNTYzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSU07TGw7MDtMOzs7OztOOzs7MDUzMzs7MDUzMworMDU2NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgREE7TGw7MDtMOzs7OztOOzs7MDUzNDs7MDUzNAorMDU2NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIO0xsOzA7TDs7Ozs7Tjs7OzA1MzU7OzA1MzUKKzA1NjY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpBO0xsOzA7TDs7Ozs7Tjs7OzA1MzY7OzA1MzYKKzA1Njc7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVIO0xsOzA7TDs7Ozs7Tjs7OzA1Mzc7OzA1MzcKKzA1Njg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVUO0xsOzA7TDs7Ozs7Tjs7OzA1Mzg7OzA1MzgKKzA1Njk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRPO0xsOzA7TDs7Ozs7Tjs7OzA1Mzk7OzA1MzkKKzA1NkE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNTNBOzswNTNBCiswNTZCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBJTkk7TGw7MDtMOzs7OztOOzs7MDUzQjs7MDUzQgorMDU2QztBUk1FTklBTiBTTUFMTCBMRVRURVIgTElXTjtMbDswO0w7Ozs7O047OzswNTNDOzswNTNDCiswNTZEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBYRUg7TGw7MDtMOzs7OztOOzs7MDUzRDs7MDUzRAorMDU2RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0E7TGw7MDtMOzs7OztOOzs7MDUzRTs7MDUzRQorMDU2RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgS0VOO0xsOzA7TDs7Ozs7Tjs7OzA1M0Y7OzA1M0YKKzA1NzA7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEhPO0xsOzA7TDs7Ozs7Tjs7OzA1NDA7OzA1NDAKKzA1NzE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEpBO0xsOzA7TDs7Ozs7Tjs7OzA1NDE7OzA1NDEKKzA1NzI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEdIQUQ7TGw7MDtMOzs7OztOO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBMQUQ7OzA1NDI7OzA1NDIKKzA1NzM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIRUg7TGw7MDtMOzs7OztOOzs7MDU0Mzs7MDU0MworMDU3NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgTUVOO0xsOzA7TDs7Ozs7Tjs7OzA1NDQ7OzA1NDQKKzA1NzU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJO0xsOzA7TDs7Ozs7Tjs7OzA1NDU7OzA1NDUKKzA1NzY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PVztMbDswO0w7Ozs7O047OzswNTQ2OzswNTQ2CiswNTc3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MDU0Nzs7MDU0NworMDU3ODtBUk1FTklBTiBTTUFMTCBMRVRURVIgVk87TGw7MDtMOzs7OztOOzs7MDU0ODs7MDU0OAorMDU3OTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDk7OzA1NDkKKzA1N0E7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFBFSDtMbDswO0w7Ozs7O047OzswNTRBOzswNTRBCiswNTdCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NEI7OzA1NEIKKzA1N0M7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFJBO0xsOzA7TDs7Ozs7Tjs7OzA1NEM7OzA1NEMKKzA1N0Q7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFNFSDtMbDswO0w7Ozs7O047OzswNTREOzswNTRECiswNTdFO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVc7TGw7MDtMOzs7OztOOzs7MDU0RTs7MDU0RQorMDU3RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgVElXTjtMbDswO0w7Ozs7O047OzswNTRGOzswNTRGCiswNTgwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSRUg7TGw7MDtMOzs7OztOOzs7MDU1MDs7MDU1MAorMDU4MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ087TGw7MDtMOzs7OztOOzs7MDU1MTs7MDU1MQorMDU4MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTjtMbDswO0w7Ozs7O047OzswNTUyOzswNTUyCiswNTgzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQSVdSO0xsOzA7TDs7Ozs7Tjs7OzA1NTM7OzA1NTMKKzA1ODQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFSDtMbDswO0w7Ozs7O047OzswNTU0OzswNTU0CiswNTg1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBPSDtMbDswO0w7Ozs7O047OzswNTU1OzswNTU1CiswNTg2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBGRUg7TGw7MDtMOzs7OztOOzs7MDU1Njs7MDU1NgorMDU4NztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTjtMbDswO0w7PGNvbXBhdD4gMDU2NSAwNTgyOzs7O047Ozs7OworMDU4OTtBUk1FTklBTiBGVUxMIFNUT1A7UG87MDtMOzs7OztOO0FSTUVOSUFOIFBFUklPRDs7OzsKKzA1OEE7QVJNRU5JQU4gSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDU5MTtIRUJSRVcgQUNDRU5UIEVUTkFIVEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTkyO0hFQlJFVyBBQ0NFTlQgU0VHT0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTkzO0hFQlJFVyBBQ0NFTlQgU0hBTFNIRUxFVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTQ7SEVCUkVXIEFDQ0VOVCBaQVFFRiBRQVRBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTU7SEVCUkVXIEFDQ0VOVCBaQVFFRiBHQURPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTY7SEVCUkVXIEFDQ0VOVCBUSVBFSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDU5NztIRUJSRVcgQUNDRU5UIFJFVklBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5ODtIRUJSRVcgQUNDRU5UIFpBUlFBO01uOzIzMDtOU007Ozs7O047Oyo7OzsKKzA1OTk7SEVCUkVXIEFDQ0VOVCBQQVNIVEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlBO0hFQlJFVyBBQ0NFTlQgWUVUSVY7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiswNTlCO0hFQlJFVyBBQ0NFTlQgVEVWSVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTlDO0hFQlJFVyBBQ0NFTlQgR0VSRVNIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RDtIRUJSRVcgQUNDRU5UIEdFUkVTSCBNVVFEQU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlFO0hFQlJFVyBBQ0NFTlQgR0VSU0hBWUlNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RjtIRUJSRVcgQUNDRU5UIFFBUk5FWSBQQVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMDtIRUJSRVcgQUNDRU5UIFRFTElTSEEgR0VET0xBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMTtIRUJSRVcgQUNDRU5UIFBBWkVSO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMjtIRUJSRVcgQUNDRU5UIEFUTkFIIEhBRlVLSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTM7SEVCUkVXIEFDQ0VOVCBNVU5BSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTQ7SEVCUkVXIEFDQ0VOVCBNQUhBUEFLSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTU7SEVCUkVXIEFDQ0VOVCBNRVJLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDVBNjtIRUJSRVcgQUNDRU5UIE1FUktIQSBLRUZVTEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE3O0hFQlJFVyBBQ0NFTlQgREFSR0E7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE4O0hFQlJFVyBBQ0NFTlQgUUFETUE7TW47MjMwO05TTTs7Ozs7Tjs7Kjs7OworMDVBOTtIRUJSRVcgQUNDRU5UIFRFTElTSEEgUUVUQU5BO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBQTtIRUJSRVcgQUNDRU5UIFlFUkFIIEJFTiBZT01PO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1QUI7SEVCUkVXIEFDQ0VOVCBPTEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFDO0hFQlJFVyBBQ0NFTlQgSUxVWTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUQ7SEVCUkVXIEFDQ0VOVCBERUhJO01uOzIyMjtOU007Ozs7O047Ozs7OworMDVBRTtIRUJSRVcgQUNDRU5UIFpJTk9SO01uOzIyODtOU007Ozs7O047Ozs7OworMDVBRjtIRUJSRVcgTUFSSyBNQVNPUkEgQ0lSQ0xFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVCMDtIRUJSRVcgUE9JTlQgU0hFVkE7TW47MTA7TlNNOzs7OztOOzs7OzsKKzA1QjE7SEVCUkVXIFBPSU5UIEhBVEFGIFNFR09MO01uOzExO05TTTs7Ozs7Tjs7Ozs7CiswNUIyO0hFQlJFVyBQT0lOVCBIQVRBRiBQQVRBSDtNbjsxMjtOU007Ozs7O047Ozs7OworMDVCMztIRUJSRVcgUE9JTlQgSEFUQUYgUUFNQVRTO01uOzEzO05TTTs7Ozs7Tjs7Ozs7CiswNUI0O0hFQlJFVyBQT0lOVCBISVJJUTtNbjsxNDtOU007Ozs7O047Ozs7OworMDVCNTtIRUJSRVcgUE9JTlQgVFNFUkU7TW47MTU7TlNNOzs7OztOOzs7OzsKKzA1QjY7SEVCUkVXIFBPSU5UIFNFR09MO01uOzE2O05TTTs7Ozs7Tjs7Ozs7CiswNUI3O0hFQlJFVyBQT0lOVCBQQVRBSDtNbjsxNztOU007Ozs7O047Ozs7OworMDVCODtIRUJSRVcgUE9JTlQgUUFNQVRTO01uOzE4O05TTTs7Ozs7Tjs7Ozs7CiswNUI5O0hFQlJFVyBQT0lOVCBIT0xBTTtNbjsxOTtOU007Ozs7O047Ozs7OworMDVCQTtIRUJSRVcgUE9JTlQgSE9MQU0gSEFTRVIgRk9SIFZBVjtNbjsxOTtOU007Ozs7O047Ozs7OworMDVCQjtIRUJSRVcgUE9JTlQgUVVCVVRTO01uOzIwO05TTTs7Ozs7Tjs7Ozs7CiswNUJDO0hFQlJFVyBQT0lOVCBEQUdFU0ggT1IgTUFQSVE7TW47MjE7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBEQUdFU0g7b3Igc2h1cnVxOzs7CiswNUJEO0hFQlJFVyBQT0lOVCBNRVRFRztNbjsyMjtOU007Ozs7O047Oyo7OzsKKzA1QkU7SEVCUkVXIFBVTkNUVUFUSU9OIE1BUUFGO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUJGO0hFQlJFVyBQT0lOVCBSQUZFO01uOzIzO05TTTs7Ozs7Tjs7Ozs7CiswNUMwO0hFQlJFVyBQVU5DVFVBVElPTiBQQVNFUTtQbzswO1I7Ozs7O047SEVCUkVXIFBPSU5UIFBBU0VROyo7OzsKKzA1QzE7SEVCUkVXIFBPSU5UIFNISU4gRE9UO01uOzI0O05TTTs7Ozs7Tjs7Ozs7CiswNUMyO0hFQlJFVyBQT0lOVCBTSU4gRE9UO01uOzI1O05TTTs7Ozs7Tjs7Ozs7CiswNUMzO0hFQlJFVyBQVU5DVFVBVElPTiBTT0YgUEFTVVE7UG87MDtSOzs7OztOOzsqOzs7CiswNUM0O0hFQlJFVyBNQVJLIFVQUEVSIERPVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QzU7SEVCUkVXIE1BUksgTE9XRVIgRE9UO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVDNjtIRUJSRVcgUFVOQ1RVQVRJT04gTlVOIEhBRlVLSEE7UG87MDtSOzs7OztOOzs7OzsKKzA1Qzc7SEVCUkVXIFBPSU5UIFFBTUFUUyBRQVRBTjtNbjsxODtOU007Ozs7O047Ozs7OworMDVEMDtIRUJSRVcgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDE7SEVCUkVXIExFVFRFUiBCRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDI7SEVCUkVXIExFVFRFUiBHSU1FTDtMbzswO1I7Ozs7O047Ozs7OworMDVEMztIRUJSRVcgTEVUVEVSIERBTEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ0O0hFQlJFVyBMRVRURVIgSEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RDU7SEVCUkVXIExFVFRFUiBWQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDY7SEVCUkVXIExFVFRFUiBaQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVENztIRUJSRVcgTEVUVEVSIEhFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEODtIRUJSRVcgTEVUVEVSIFRFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEOTtIRUJSRVcgTEVUVEVSIFlPRDtMbzswO1I7Ozs7O047Ozs7OworMDVEQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQjtIRUJSRVcgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQztIRUJSRVcgTEVUVEVSIExBTUVEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUREO0hFQlJFVyBMRVRURVIgRklOQUwgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURFO0hFQlJFVyBMRVRURVIgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURGO0hFQlJFVyBMRVRURVIgRklOQUwgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUwO0hFQlJFVyBMRVRURVIgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUxO0hFQlJFVyBMRVRURVIgU0FNRUtIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUyO0hFQlJFVyBMRVRURVIgQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU0O0hFQlJFVyBMRVRURVIgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTU7SEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNjtIRUJSRVcgTEVUVEVSIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU3O0hFQlJFVyBMRVRURVIgUU9GO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU4O0hFQlJFVyBMRVRURVIgUkVTSDtMbzswO1I7Ozs7O047Ozs7OworMDVFOTtIRUJSRVcgTEVUVEVSIFNISU47TG87MDtSOzs7OztOOzs7OzsKKzA1RUE7SEVCUkVXIExFVFRFUiBUQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RjA7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFZBVjtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgVkFWOzs7OworMDVGMTtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBWQVYgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIFZBViBZT0Q7Ozs7CiswNUYyO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFlPRDs7OzsKKzA1RjM7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUkVTSDtQbzswO1I7Ozs7O047Ozs7OworMDVGNDtIRUJSRVcgUFVOQ1RVQVRJT04gR0VSU0hBWUlNO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjAwO0FSQUJJQyBOVU1CRVIgU0lHTjtDZjswO0FMOzs7OztOOzs7OzsKKzA2MDE7QVJBQklDIFNJR04gU0FOQUg7Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNjAyO0FSQUJJQyBGT09UTk9URSBNQVJLRVI7Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNjAzO0FSQUJJQyBTSUdOIFNBRkhBO0NmOzA7QUw7Ozs7O047Ozs7OworMDYwQjtBRkdIQU5JIFNJR047U2M7MDtBTDs7Ozs7Tjs7Ozs7CiswNjBDO0FSQUJJQyBDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzA2MEQ7QVJBQklDIERBVEUgU0VQQVJBVE9SO1BvOzA7QUw7Ozs7O047Ozs7OworMDYwRTtBUkFCSUMgUE9FVElDIFZFUlNFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswNjBGO0FSQUJJQyBTSUdOIE1JU1JBO1NvOzA7T047Ozs7O047Ozs7OworMDYxMDtBUkFCSUMgU0lHTiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTU0FMTEFNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxMTtBUkFCSUMgU0lHTiBBTEFZSEUgQVNTQUxMQU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjEyO0FSQUJJQyBTSUdOIFJBSE1BVFVMTEFIIEFMQVlIRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MTM7QVJBQklDIFNJR04gUkFESSBBTExBSE9VIEFOSFU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjE0O0FSQUJJQyBTSUdOIFRBS0hBTExVUztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MTU7QVJBQklDIFNNQUxMIEhJR0ggVEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxQjtBUkFCSUMgU0VNSUNPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDYxRTtBUkFCSUMgVFJJUExFIERPVCBQVU5DVFVBVElPTiBNQVJLO1BvOzA7QUw7Ozs7O047Ozs7OworMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO0FMOzs7OztOOzs7OzsKKzA2MjE7QVJBQklDIExFVFRFUiBIQU1aQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIOzs7OworMDYyMjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRTtMbzswO0FMOzA2MjcgMDY1Mzs7OztOO0FSQUJJQyBMRVRURVIgTUFEREFIIE9OIEFMRUY7Ozs7CiswNjIzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDYyNyAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gQUxFRjs7OzsKKzA2MjQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2NDggMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFdBVzs7OzsKKzA2MjU7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1c7TG87MDtBTDswNjI3IDA2NTU7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDYyNjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDY0QSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUE7Ozs7CiswNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKKzA2Mjk7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIOzs7OworMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBOzs7OworMDYyQjtBUkFCSUMgTEVUVEVSIFRIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CiswNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKKzA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzMTtBUkFCSUMgTEVUVEVSIFJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CiswNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNDtBUkFCSUMgTEVUVEVSIFNIRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzY7QVJBQklDIExFVFRFUiBEQUQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM3O0FSQUJJQyBMRVRURVIgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKzA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7QUw7Ozs7O047Ozs7OworMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7CiswNjQyO0FSQUJJQyBMRVRURVIgUUFGO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQTs7OzsKKzA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ5O0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBBTEVGIE1BUVNVUkFIOzs7OworMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7CiswNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztOU007Ozs7O047Ozs7OworMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7TlNNOzs7OztOOzs7OzsKKzA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O05TTTs7Ozs7Tjs7Ozs7CiswNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtOU007Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKKzA2NEY7QVJBQklDIERBTU1BO01uOzMxO05TTTs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7TlNNOzs7OztOO0FSQUJJQyBLQVNSQUg7Ozs7CiswNjUxO0FSQUJJQyBTSEFEREE7TW47MzM7TlNNOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7TlNNOzs7OztOOzs7OzsKKzA2NTM7QVJBQklDIE1BRERBSCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTQ7QVJBQklDIEhBTVpBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1NTtBUkFCSUMgSEFNWkEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjU2O0FSQUJJQyBTVUJTQ1JJUFQgQUxFRjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2NTc7QVJBQklDIElOVkVSVEVEIERBTU1BO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1ODtBUkFCSUMgTUFSSyBOT09OIEdIVU5OQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTk7QVJBQklDIFpXQVJBS0FZO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QTtBUkFCSUMgVk9XRUwgU0lHTiBTTUFMTCBWIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QjtBUkFCSUMgVk9XRUwgU0lHTiBJTlZFUlRFRCBTTUFMTCBWIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QztBUkFCSUMgVk9XRUwgU0lHTiBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjVEO0FSQUJJQyBSRVZFUlNFRCBEQU1NQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NUU7QVJBQklDIEZBVEhBIFdJVEggVFdPIERPVFM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7CiswNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7CiswNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZDO0FSQUJJQyBUSE9VU0FORFMgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2RDtBUkFCSUMgRklWRSBQT0lOVEVEIFNUQVI7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZFO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBCRUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZGO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBRQUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjcwO0FSQUJJQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxFRjtNbjszNTtOU007Ozs7O047QVJBQklDIEFMRUYgQUJPVkU7Ozs7CiswNjcxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFUIFdBU0wgT04gQUxFRjs7OzsKKzA2NzI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggT04gQUxFRjs7OzsKKzA2NzM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2NzQ7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSDs7OzsKKzA2NzU7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIEFMRUY7TG87MDtBTDs8Y29tcGF0PiAwNjI3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIEFMRUY7Ozs7CiswNjc2O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBXQVc7TG87MDtBTDs8Y29tcGF0PiAwNjQ4IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVzs7OzsKKzA2Nzc7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDs8Y29tcGF0PiAwNkM3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Nzg7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIFlFSDtMbzswO0FMOzxjb21wYXQ+IDA2NEEgMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggWUE7Ozs7CiswNjc5O0FSQUJJQyBMRVRURVIgVFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggU01BTEwgVEFIOzs7OworMDY3QTtBUkFCSUMgTEVUVEVSIFRURUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7Ozs7CiswNjdCO0FSQUJJQyBMRVRURVIgQkVFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNjdDO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggUklORzs7OzsKKzA2N0Q7QVJBQklDIExFVFRFUiBURUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2N0U7QVJBQklDIExFVFRFUiBQRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNjdGO0FSQUJJQyBMRVRURVIgVEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2ODA7QVJBQklDIExFVFRFUiBCRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggRk9VUiBET1RTIEJFTE9XOzs7OworMDY4MTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEFBOzs7OworMDY4MjtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2ODM7QVJBQklDIExFVFRFUiBOWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVFdPIERPVFM7Ozs7CiswNjg0O0FSQUJJQyBMRVRURVIgRFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTIFZFUlRJQ0FMOzs7OworMDY4NTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjg2O0FSQUJJQyBMRVRURVIgVENIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUSFJFRSBET1RTIERPV05XQVJEOzs7OworMDY4NztBUkFCSUMgTEVUVEVSIFRDSEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBGT1VSIERPVFM7Ozs7CiswNjg4O0FSQUJJQyBMRVRURVIgRERBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggU01BTEwgVEFIOzs7OworMDY4OTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjhBO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVyBBTkQgU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QztBUkFCSUMgTEVUVEVSIERBSEFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OEQ7QVJBQklDIExFVFRFUiBEREFIQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEJFTE9XOzs7OworMDY4RTtBUkFCSUMgTEVUVEVSIERVTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OEY7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2OTA7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjkxO0FSQUJJQyBMRVRURVIgUlJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjkyO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWOzs7OworMDY5MztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggUklORzs7OzsKKzA2OTQ7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XOzs7OworMDY5NTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFYgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgViBCRUxPVzs7OzsKKzA2OTY7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTs7OzsKKzA2OTc7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OTg7QVJBQklDIExFVFRFUiBKRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OTk7QVJBQklDIExFVFRFUiBSRUggV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY5QTtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUI7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUM7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVyBBTkQgVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUQ7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUU7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5RjtBUkFCSUMgTEVUVEVSIFRBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkEwO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTE7QVJBQklDIExFVFRFUiBET1RMRVNTIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBGQTs7OzsKKzA2QTI7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgTU9WRUQgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIE1PVkVEIEJFTE9XOzs7OworMDZBMztBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNkE0O0FSQUJJQyBMRVRURVIgVkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkE1O0FSQUJJQyBMRVRURVIgRkVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBNjtBUkFCSUMgTEVUVEVSIFBFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2QTc7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkE4O0FSQUJJQyBMRVRURVIgUUFGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTk7QVJBQklDIExFVFRFUiBLRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgT1BFTiBDQUY7Ozs7CiswNkFBO0FSQUJJQyBMRVRURVIgU1dBU0ggS0FGO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBTV0FTSCBDQUY7Ozs7CiswNkFCO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggUklORzs7OzsKKzA2QUM7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIERPVCBBQk9WRTs7OzsKKzA2QUQ7QVJBQklDIExFVFRFUiBORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QUU7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBRjtBUkFCSUMgTEVUVEVSIEdBRjtMbzswO0FMOzs7OztOOzsqOzs7CiswNkIwO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2QjE7QVJBQklDIExFVFRFUiBOR09FSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNkIyO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkIzO0FSQUJJQyBMRVRURVIgR1VFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNkI0O0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QjU7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCNjtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjc7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCODtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI5O0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2QkE7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OOzs7OworMDZCQjtBUkFCSUMgTEVUVEVSIFJOT09OO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT04gV0lUSCBTTUFMTCBUQUg7Ozs7CiswNkJDO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJEO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJFO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLTk9UVEVEIEhBOzs7OworMDZCRjtBUkFCSUMgTEVUVEVSIFRDSEVIIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDMDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRTtMbzswO0FMOzA2RDUgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBOzs7OworMDZDMTtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQSBHT0FMOzs7OworMDZDMjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNkMxIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQSBHT0FMOzs7OworMDZDMztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEdPQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBNQVJCVVRBSCBHT0FMOzs7OworMDZDNDtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkM1O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQkFSOzs7OworMDZDNjtBUkFCSUMgTEVUVEVSIE9FO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBTTUFMTCBWOzs7OworMDZDNztBUkFCSUMgTEVUVEVSIFU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Qzg7QVJBQklDIExFVFRFUiBZVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQUxFRiBBQk9WRTs7OzsKKzA2Qzk7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBJTlZFUlRFRCBTTUFMTCBWOzs7OworMDZDQTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDQjtBUkFCSUMgTEVUVEVSIFZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZDQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBZQTs7OzsKKzA2Q0Q7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUQUlMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRBSUw7Ozs7CiswNkNFO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBTTUFMTCBWOzs7OworMDZDRjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2RDA7QVJBQklDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOyo7OzsKKzA2RDE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNkQyO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgQkFSUkVFOzs7OworMDZEMztBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2RDIgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBIEJBUlJFRTs7OzsKKzA2RDQ7QVJBQklDIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOO0FSQUJJQyBQRVJJT0Q7Ozs7CiswNkQ1O0FSQUJJQyBMRVRURVIgQUU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkQ2O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFNBRCBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDc7QVJBQklDIFNNQUxMIEhJR0ggTElHQVRVUkUgUUFGIFdJVEggTEFNIFdJVEggQUxFRiBNQUtTVVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEODtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElOSVRJQUwgRk9STTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDk7QVJBQklDIFNNQUxMIEhJR0ggTEFNIEFMRUY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRBO0FSQUJJQyBTTUFMTCBISUdIIEpFRU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRCO0FSQUJJQyBTTUFMTCBISUdIIFRIUkVFIERPVFM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRDO0FSQUJJQyBTTUFMTCBISUdIIFNFRU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkREO0FSQUJJQyBFTkQgT0YgQVlBSDtDZjswO0FMOzs7OztOOzs7OzsKKzA2REU7QVJBQklDIFNUQVJUIE9GIFJVQiBFTCBISVpCO01lOzA7TlNNOzs7OztOOzs7OzsKKzA2REY7QVJBQklDIFNNQUxMIEhJR0ggUk9VTkRFRCBaRVJPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUxO0FSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMjtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElTT0xBVEVEIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RTQ7QVJBQklDIFNNQUxMIEhJR0ggTUFEREE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU1O0FSQUJJQyBTTUFMTCBXQVc7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU2O0FSQUJJQyBTTUFMTCBZRUg7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTg7QVJBQklDIFNNQUxMIEhJR0ggTk9PTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTk7QVJBQklDIFBMQUNFIE9GIFNBSkRBSDtTbzswO09OOzs7OztOOzs7OzsKKzA2RUE7QVJBQklDIEVNUFRZIENFTlRSRSBMT1cgU1RPUDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUI7QVJBQklDIEVNUFRZIENFTlRSRSBISUdIIFNUT1A7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVDO0FSQUJJQyBST1VOREVEIEhJR0ggU1RPUCBXSVRIIEZJTExFRCBDRU5UUkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVEO0FSQUJJQyBTTUFMTCBMT1cgTUVFTTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUU7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBJTlZFUlRFRCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZFRjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIElOVkVSVEVEIFY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkYwO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTzs7OzsKKzA2RjE7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0VOOzsxOzE7MTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE9ORTs7OzsKKzA2RjI7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRXTzs7OzsKKzA2RjM7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7RU47OzM7MzszO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7Ozs7CiswNkY0O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7RU47OzQ7NDs0O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjs7OzsKKzA2RjU7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFOzs7OworMDZGNjtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7RU47OzY7Njs2O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0lYOzs7OworMDZGNztFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjs7OzsKKzA2Rjg7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7Ozs7CiswNkY5O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgTklORTs7OzsKKzA2RkE7QVJBQklDIExFVFRFUiBTSEVFTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkI7QVJBQklDIExFVFRFUiBEQUQgV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZDO0FSQUJJQyBMRVRURVIgR0hBSU4gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZEO0FSQUJJQyBTSUdOIFNJTkRISSBBTVBFUlNBTkQ7U287MDtBTDs7Ozs7Tjs7Ozs7CiswNkZFO0FSQUJJQyBTSUdOIFNJTkRISSBQT1NUUE9TSVRJT04gTUVOO1NvOzA7QUw7Ozs7O047Ozs7OworMDZGRjtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIElOVkVSVEVEIFY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzAwO1NZUklBQyBFTkQgT0YgUEFSQUdSQVBIO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMTtTWVJJQUMgU1VQUkFMSU5FQVIgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMjtTWVJJQUMgU1VCTElORUFSIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDM7U1lSSUFDIFNVUFJBTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNDtTWVJJQUMgU1VCTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNTtTWVJJQUMgSE9SSVpPTlRBTCBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDY7U1lSSUFDIENPTE9OIFNLRVdFRCBMRUZUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNztTWVJJQUMgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwODtTWVJJQUMgU1VQUkFMSU5FQVIgQ09MT04gU0tFV0VEIExFRlQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA5O1NZUklBQyBTVUJMSU5FQVIgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQTtTWVJJQUMgQ09OVFJBQ1RJT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBCO1NZUklBQyBIQVJLTEVBTiBPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBDO1NZUklBQyBIQVJLTEVBTiBNRVRPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBEO1NZUklBQyBIQVJLTEVBTiBBU1RFUklTQ1VTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwRjtTWVJJQUMgQUJCUkVWSUFUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CiswNzEwO1NZUklBQyBMRVRURVIgQUxBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzExO1NZUklBQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxBUEg7TW47MzY7TlNNOzs7OztOOzs7OzsKKzA3MTI7U1lSSUFDIExFVFRFUiBCRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxMztTWVJJQUMgTEVUVEVSIEdBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNDtTWVJJQUMgTEVUVEVSIEdBTUFMIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNTtTWVJJQUMgTEVUVEVSIERBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTY7U1lSSUFDIExFVFRFUiBET1RMRVNTIERBTEFUSCBSSVNIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNztTWVJJQUMgTEVUVEVSIEhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxODtTWVJJQUMgTEVUVEVSIFdBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MTk7U1lSSUFDIExFVFRFUiBaQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQTtTWVJJQUMgTEVUVEVSIEhFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFCO1NZUklBQyBMRVRURVIgVEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUM7U1lSSUFDIExFVFRFUiBURVRIIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRDtTWVJJQUMgTEVUVEVSIFlVREg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFFO1NZUklBQyBMRVRURVIgWVVESCBIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUY7U1lSSUFDIExFVFRFUiBLQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMDtTWVJJQUMgTEVUVEVSIExBTUFESDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjE7U1lSSUFDIExFVFRFUiBNSU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIyO1NZUklBQyBMRVRURVIgTlVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMztTWVJJQUMgTEVUVEVSIFNFTUtBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI0O1NZUklBQyBMRVRURVIgRklOQUwgU0VNS0FUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjU7U1lSSUFDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNjtTWVJJQUMgTEVUVEVSIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNztTWVJJQUMgTEVUVEVSIFJFVkVSU0VEIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyODtTWVJJQUMgTEVUVEVSIFNBREhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyOTtTWVJJQUMgTEVUVEVSIFFBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJBO1NZUklBQyBMRVRURVIgUklTSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkI7U1lSSUFDIExFVFRFUiBTSElOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQztTWVJJQUMgTEVUVEVSIFRBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MkQ7U1lSSUFDIExFVFRFUiBQRVJTSUFOIEJIRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyRTtTWVJJQUMgTEVUVEVSIFBFUlNJQU4gR0hBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyRjtTWVJJQUMgTEVUVEVSIFBFUlNJQU4gREhBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MzA7U1lSSUFDIFBUSEFIQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzE7U1lSSUFDIFBUSEFIQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3MzI7U1lSSUFDIFBUSEFIQSBET1RURUQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzMzO1NZUklBQyBaUUFQSEEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM0O1NZUklBQyBaUUFQSEEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM1O1NZUklBQyBaUUFQSEEgRE9UVEVEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNjtTWVJJQUMgUkJBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM3O1NZUklBQyBSQkFTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3Mzg7U1lSSUFDIERPVFRFRCBaTEFNQSBIT1JJWk9OVEFMO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczOTtTWVJJQUMgRE9UVEVEIFpMQU1BIEFOR1VMQVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNBO1NZUklBQyBIQkFTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3M0I7U1lSSUFDIEhCQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczQztTWVJJQUMgSEJBU0EtRVNBU0EgRE9UVEVEO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczRDtTWVJJQUMgRVNBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzNFO1NZUklBQyBFU0FTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0Y7U1lSSUFDIFJXQUhBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MDtTWVJJQUMgRkVNSU5JTkUgRE9UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MTtTWVJJQUMgUVVTSFNIQVlBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MjtTWVJJQUMgUlVLS0FLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQzO1NZUklBQyBUV08gVkVSVElDQUwgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDQ7U1lSSUFDIFRXTyBWRVJUSUNBTCBET1RTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0NTtTWVJJQUMgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDY7U1lSSUFDIFRIUkVFIERPVFMgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ3O1NZUklBQyBPQkxJUVVFIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ4O1NZUklBQyBPQkxJUVVFIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ5O1NZUklBQyBNVVNJQztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NEE7U1lSSUFDIEJBUlJFS0g7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzREO1NZUklBQyBMRVRURVIgU09HRElBTiBaSEFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NEU7U1lSSUFDIExFVFRFUiBTT0dESUFOIEtIQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDc0RjtTWVJJQUMgTEVUVEVSIFNPR0RJQU4gRkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzUwO0FSQUJJQyBMRVRURVIgQkVIIFdJVEggVEhSRUUgRE9UUyBIT1JJWk9OVEFMTFkgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzUxO0FSQUJJQyBMRVRURVIgQkVIIFdJVEggRE9UIEJFTE9XIEFORCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1MjtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTM7QVJBQklDIExFVFRFUiBCRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1cgQU5EIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1NDtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIFRXTyBET1RTIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzU1O0FSQUJJQyBMRVRURVIgQkVIIFdJVEggSU5WRVJURUQgU01BTEwgViBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTY7QVJBQklDIExFVFRFUiBCRUggV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1NztBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1ODtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTk7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEJFTE9XIEFORCBTTUFMTCBUQUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVBO0FSQUJJQyBMRVRURVIgREFMIFdJVEggSU5WRVJURUQgU01BTEwgViBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NUI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTVFJPS0U7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVDO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUQ7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUU7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIERPV05XQVJEUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUY7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2MDtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRXTyBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2MTtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NjI7QVJBQklDIExFVFRFUiBLRUhFSCBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NjM7QVJBQklDIExFVFRFUiBLRUhFSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY0O0FSQUJJQyBMRVRURVIgS0VIRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY1O0FSQUJJQyBMRVRURVIgTUVFTSBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NjY7QVJBQklDIExFVFRFUiBNRUVNIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2NztBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3Njg7QVJBQklDIExFVFRFUiBOT09OIFdJVEggU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2OTtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2QTtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIEJBUjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NkI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2QztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2RDtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MDtUSEFBTkEgTEVUVEVSIEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODE7VEhBQU5BIExFVFRFUiBTSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgyO1RIQUFOQSBMRVRURVIgTk9PTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgzO1RIQUFOQSBMRVRURVIgUkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NDtUSEFBTkEgTEVUVEVSIEJBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODU7VEhBQU5BIExFVFRFUiBMSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg2O1RIQUFOQSBMRVRURVIgS0FBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg3O1RIQUFOQSBMRVRURVIgQUxJRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg4O1RIQUFOQSBMRVRURVIgVkFBVlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg5O1RIQUFOQSBMRVRURVIgTUVFTVU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhBO1RIQUFOQSBMRVRURVIgRkFBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhCO1RIQUFOQSBMRVRURVIgREhBQUxVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QztUSEFBTkEgTEVUVEVSIFRIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhEO1RIQUFOQSBMRVRURVIgTEFBTVU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhFO1RIQUFOQSBMRVRURVIgR0FBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhGO1RIQUFOQSBMRVRURVIgR05BVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MDtUSEFBTkEgTEVUVEVSIFNFRU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MTtUSEFBTkEgTEVUVEVSIERBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MjtUSEFBTkEgTEVUVEVSIFpBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MztUSEFBTkEgTEVUVEVSIFRBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NDtUSEFBTkEgTEVUVEVSIFlBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTU7VEhBQU5BIExFVFRFUiBQQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTY7VEhBQU5BIExFVFRFUiBKQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTc7VEhBQU5BIExFVFRFUiBDSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk4O1RIQUFOQSBMRVRURVIgVFRBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTk7VEhBQU5BIExFVFRFUiBISEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QTtUSEFBTkEgTEVUVEVSIEtIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlCO1RIQUFOQSBMRVRURVIgVEhBQUxVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QztUSEFBTkEgTEVUVEVSIFpBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUQ7VEhBQU5BIExFVFRFUiBTSEVFTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlFO1RIQUFOQSBMRVRURVIgU0FBREhVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RjtUSEFBTkEgTEVUVEVSIERBQURIVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTA7VEhBQU5BIExFVFRFUiBUTztMbzswO0FMOzs7OztOOzs7OzsKKzA3QTE7VEhBQU5BIExFVFRFUiBaTztMbzswO0FMOzs7OztOOzs7OzsKKzA3QTI7VEhBQU5BIExFVFRFUiBBSU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMztUSEFBTkEgTEVUVEVSIEdIQUlOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTQ7VEhBQU5BIExFVFRFUiBRQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTU7VEhBQU5BIExFVFRFUiBXQUFWVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTY7VEhBQU5BIEFCQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBNztUSEFBTkEgQUFCQUFGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTg7VEhBQU5BIElCSUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBOTtUSEFBTkEgRUVCRUVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUE7VEhBQU5BIFVCVUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQjtUSEFBTkEgT09CT09GSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUM7VEhBQU5BIEVCRUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRDtUSEFBTkEgRVlCRVlGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUU7VEhBQU5BIE9CT0ZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRjtUSEFBTkEgT0FCT0FGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QjA7VEhBQU5BIFNVS1VOO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QjE7VEhBQU5BIExFVFRFUiBOQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0MwO05LTyBESUdJVCBaRVJPO05kOzA7Ujs7MDswOzA7Tjs7Ozs7CiswN0MxO05LTyBESUdJVCBPTkU7TmQ7MDtSOzsxOzE7MTtOOzs7OzsKKzA3QzI7TktPIERJR0lUIFRXTztOZDswO1I7OzI7MjsyO047Ozs7OworMDdDMztOS08gRElHSVQgVEhSRUU7TmQ7MDtSOzszOzM7MztOOzs7OzsKKzA3QzQ7TktPIERJR0lUIEZPVVI7TmQ7MDtSOzs0OzQ7NDtOOzs7OzsKKzA3QzU7TktPIERJR0lUIEZJVkU7TmQ7MDtSOzs1OzU7NTtOOzs7OzsKKzA3QzY7TktPIERJR0lUIFNJWDtOZDswO1I7OzY7Njs2O047Ozs7OworMDdDNztOS08gRElHSVQgU0VWRU47TmQ7MDtSOzs3Ozc7NztOOzs7OzsKKzA3Qzg7TktPIERJR0lUIEVJR0hUO05kOzA7Ujs7ODs4Ozg7Tjs7Ozs7CiswN0M5O05LTyBESUdJVCBOSU5FO05kOzA7Ujs7OTs5Ozk7Tjs7Ozs7CiswN0NBO05LTyBMRVRURVIgQTtMbzswO1I7Ozs7O047Ozs7OworMDdDQjtOS08gTEVUVEVSIEVFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0NDO05LTyBMRVRURVIgSTtMbzswO1I7Ozs7O047Ozs7OworMDdDRDtOS08gTEVUVEVSIEU7TG87MDtSOzs7OztOOzs7OzsKKzA3Q0U7TktPIExFVFRFUiBVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0NGO05LTyBMRVRURVIgT087TG87MDtSOzs7OztOOzs7OzsKKzA3RDA7TktPIExFVFRFUiBPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0QxO05LTyBMRVRURVIgREFHQkFTSU5OQTtMbzswO1I7Ozs7O047Ozs7OworMDdEMjtOS08gTEVUVEVSIE47TG87MDtSOzs7OztOOzs7OzsKKzA3RDM7TktPIExFVFRFUiBCQTtMbzswO1I7Ozs7O047Ozs7OworMDdENDtOS08gTEVUVEVSIFBBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0Q1O05LTyBMRVRURVIgVEE7TG87MDtSOzs7OztOOzs7OzsKKzA3RDY7TktPIExFVFRFUiBKQTtMbzswO1I7Ozs7O047Ozs7OworMDdENztOS08gTEVUVEVSIENIQTtMbzswO1I7Ozs7O047Ozs7OworMDdEODtOS08gTEVUVEVSIERBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0Q5O05LTyBMRVRURVIgUkE7TG87MDtSOzs7OztOOzs7OzsKKzA3REE7TktPIExFVFRFUiBSUkE7TG87MDtSOzs7OztOOzs7OzsKKzA3REI7TktPIExFVFRFUiBTQTtMbzswO1I7Ozs7O047Ozs7OworMDdEQztOS08gTEVUVEVSIEdCQTtMbzswO1I7Ozs7O047Ozs7OworMDdERDtOS08gTEVUVEVSIEZBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0RFO05LTyBMRVRURVIgS0E7TG87MDtSOzs7OztOOzs7OzsKKzA3REY7TktPIExFVFRFUiBMQTtMbzswO1I7Ozs7O047Ozs7OworMDdFMDtOS08gTEVUVEVSIE5BIFdPTE9TTztMbzswO1I7Ozs7O047Ozs7OworMDdFMTtOS08gTEVUVEVSIE1BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0UyO05LTyBMRVRURVIgTllBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0UzO05LTyBMRVRURVIgTkE7TG87MDtSOzs7OztOOzs7OzsKKzA3RTQ7TktPIExFVFRFUiBIQTtMbzswO1I7Ozs7O047Ozs7OworMDdFNTtOS08gTEVUVEVSIFdBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0U2O05LTyBMRVRURVIgWUE7TG87MDtSOzs7OztOOzs7OzsKKzA3RTc7TktPIExFVFRFUiBOWUEgV09MT1NPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0U4O05LTyBMRVRURVIgSk9OQSBKQTtMbzswO1I7Ozs7O047Ozs7OworMDdFOTtOS08gTEVUVEVSIEpPTkEgQ0hBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswN0VBO05LTyBMRVRURVIgSk9OQSBSQTtMbzswO1I7Ozs7O047Ozs7OworMDdFQjtOS08gQ09NQklOSU5HIFNIT1JUIEhJR0ggVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RUM7TktPIENPTUJJTklORyBTSE9SVCBMT1cgVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RUQ7TktPIENPTUJJTklORyBTSE9SVCBSSVNJTkcgVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RUU7TktPIENPTUJJTklORyBMT05HIERFU0NFTkRJTkcgVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RUY7TktPIENPTUJJTklORyBMT05HIEhJR0ggVE9ORTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RjA7TktPIENPTUJJTklORyBMT05HIExPVyBUT05FO01uOzIzMDtOU007Ozs7O047Ozs7OworMDdGMTtOS08gQ09NQklOSU5HIExPTkcgUklTSU5HIFRPTkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswN0YyO05LTyBDT01CSU5JTkcgTkFTQUxJWkFUSU9OIE1BUks7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswN0YzO05LTyBDT01CSU5JTkcgRE9VQkxFIERPVCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3RjQ7TktPIEhJR0ggVE9ORSBBUE9TVFJPUEhFO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswN0Y1O05LTyBMT1cgVE9ORSBBUE9TVFJPUEhFO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswN0Y2O05LTyBTWU1CT0wgT08gREVOTkVOO1NvOzA7T047Ozs7O047Ozs7OworMDdGNztOS08gU1lNQk9MIEdCQUtVUlVORU47UG87MDtPTjs7Ozs7Tjs7Ozs7CiswN0Y4O05LTyBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzA3Rjk7TktPIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswN0ZBO05LTyBMQUpBTllBTEFOO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswOTAxO0RFVkFOQUdBUkkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAyO0RFVkFOQUdBUkkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAzO0RFVkFOQUdBUkkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTA0O0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDU7REVWQU5BR0FSSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNjtERVZBTkFHQVJJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNztERVZBTkFHQVJJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA4O0RFVkFOQUdBUkkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA5O0RFVkFOQUdBUkkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEE7REVWQU5BR0FSSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEI7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBDO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDkwRDtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMDkwRTtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBGO0RFVkFOQUdBUkkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTA7REVWQU5BR0FSSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MTE7REVWQU5BR0FSSSBMRVRURVIgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTI7REVWQU5BR0FSSSBMRVRURVIgU0hPUlQgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMztERVZBTkFHQVJJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE0O0RFVkFOQUdBUkkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE1O0RFVkFOQUdBUkkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE2O0RFVkFOQUdBUkkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxNztERVZBTkFHQVJJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMDkxODtERVZBTkFHQVJJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MTk7REVWQU5BR0FSSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFBO0RFVkFOQUdBUkkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFCO0RFVkFOQUdBUkkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQztERVZBTkFHQVJJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRDtERVZBTkFHQVJJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUU7REVWQU5BR0FSSSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFGO0RFVkFOQUdBUkkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMDtERVZBTkFHQVJJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIxO0RFVkFOQUdBUkkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMjtERVZBTkFHQVJJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIzO0RFVkFOQUdBUkkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNDtERVZBTkFHQVJJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNTtERVZBTkFHQVJJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjY7REVWQU5BR0FSSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjc7REVWQU5BR0FSSSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI4O0RFVkFOQUdBUkkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI5O0RFVkFOQUdBUkkgTEVUVEVSIE5OTkE7TG87MDtMOzA5MjggMDkzQzs7OztOOzs7OzsKKzA5MkE7REVWQU5BR0FSSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkI7REVWQU5BR0FSSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJDO0RFVkFOQUdBUkkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJEO0RFVkFOQUdBUkkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRTtERVZBTkFHQVJJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRjtERVZBTkFHQVJJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMDtERVZBTkFHQVJJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMTtERVZBTkFHQVJJIExFVFRFUiBSUkE7TG87MDtMOzA5MzAgMDkzQzs7OztOOzs7OzsKKzA5MzI7REVWQU5BR0FSSSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzM7REVWQU5BR0FSSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM0O0RFVkFOQUdBUkkgTEVUVEVSIExMTEE7TG87MDtMOzA5MzMgMDkzQzs7OztOOzs7OzsKKzA5MzU7REVWQU5BR0FSSSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzY7REVWQU5BR0FSSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM3O0RFVkFOQUdBUkkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzODtERVZBTkFHQVJJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzOTtERVZBTkFHQVJJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzQztERVZBTkFHQVJJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMDkzRDtERVZBTkFHQVJJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0U7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTNGO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTQwO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MTtERVZBTkFHQVJJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQyO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQzO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMDk0NDtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ1O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ2O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDc7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0ODtERVZBTkFHQVJJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMDk0OTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFNIT1JUIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTREO0RFVkFOQUdBUkkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMDk1MDtERVZBTkFHQVJJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTUxO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gVURBVFRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1MjtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIEFOVURBVFRBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDk1MztERVZBTkFHQVJJIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTQ7REVWQU5BR0FSSSBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTU4O0RFVkFOQUdBUkkgTEVUVEVSIFFBO0xvOzA7TDswOTE1IDA5M0M7Ozs7Tjs7Ozs7CiswOTU5O0RFVkFOQUdBUkkgTEVUVEVSIEtISEE7TG87MDtMOzA5MTYgMDkzQzs7OztOOzs7OzsKKzA5NUE7REVWQU5BR0FSSSBMRVRURVIgR0hIQTtMbzswO0w7MDkxNyAwOTNDOzs7O047Ozs7OworMDk1QjtERVZBTkFHQVJJIExFVFRFUiBaQTtMbzswO0w7MDkxQyAwOTNDOzs7O047Ozs7OworMDk1QztERVZBTkFHQVJJIExFVFRFUiBERERIQTtMbzswO0w7MDkyMSAwOTNDOzs7O047Ozs7OworMDk1RDtERVZBTkFHQVJJIExFVFRFUiBSSEE7TG87MDtMOzA5MjIgMDkzQzs7OztOOzs7OzsKKzA5NUU7REVWQU5BR0FSSSBMRVRURVIgRkE7TG87MDtMOzA5MkIgMDkzQzs7OztOOzs7OzsKKzA5NUY7REVWQU5BR0FSSSBMRVRURVIgWVlBO0xvOzA7TDswOTJGIDA5M0M7Ozs7Tjs7Ozs7CiswOTYwO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5NjE7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDk2MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NjM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMDk2NDtERVZBTkFHQVJJIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY1O0RFVkFOQUdBUkkgRE9VQkxFIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY2O0RFVkFOQUdBUkkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDk2NztERVZBTkFHQVJJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDk2ODtERVZBTkFHQVJJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDk2OTtERVZBTkFHQVJJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOTZBO0RFVkFOQUdBUkkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDk2QjtERVZBTkFHQVJJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5NkM7REVWQU5BR0FSSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5NkQ7REVWQU5BR0FSSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDk2RTtERVZBTkFHQVJJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOTZGO0RFVkFOQUdBUkkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDk3MDtERVZBTkFHQVJJIEFCQlJFVklBVElPTiBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTdCO0RFVkFOQUdBUkkgTEVUVEVSIEdHQTtMbzswO0w7Ozs7O047Ozs7OworMDk3QztERVZBTkFHQVJJIExFVFRFUiBKSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5N0Q7REVWQU5BR0FSSSBMRVRURVIgR0xPVFRBTCBTVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTdFO0RFVkFOQUdBUkkgTEVUVEVSIEREREE7TG87MDtMOzs7OztOOzs7OzsKKzA5N0Y7REVWQU5BR0FSSSBMRVRURVIgQkJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTgxO0JFTkdBTEkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTgyO0JFTkdBTEkgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMDk4MztCRU5HQUxJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDk4NTtCRU5HQUxJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg2O0JFTkdBTEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg3O0JFTkdBTEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODg7QkVOR0FMSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODk7QkVOR0FMSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QTtCRU5HQUxJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QjtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5OEM7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThGO0JFTkdBTEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTA7QkVOR0FMSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5OTM7QkVOR0FMSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDk5NDtCRU5HQUxJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDk5NTtCRU5HQUxJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDk5NjtCRU5HQUxJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OTc7QkVOR0FMSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTg7QkVOR0FMSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk5O0JFTkdBTEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QTtCRU5HQUxJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QjtCRU5HQUxJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUM7QkVOR0FMSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUQ7QkVOR0FMSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlFO0JFTkdBTEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RjtCRU5HQUxJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTA7QkVOR0FMSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMTtCRU5HQUxJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTI7QkVOR0FMSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMztCRU5HQUxJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTQ7QkVOR0FMSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTU7QkVOR0FMSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE2O0JFTkdBTEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE3O0JFTkdBTEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBODtCRU5HQUxJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQTtCRU5HQUxJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQjtCRU5HQUxJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUM7QkVOR0FMSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUQ7QkVOR0FMSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFFO0JFTkdBTEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFGO0JFTkdBTEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIwO0JFTkdBTEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIyO0JFTkdBTEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI2O0JFTkdBTEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNztCRU5HQUxJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjg7QkVOR0FMSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjk7QkVOR0FMSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QkM7QkVOR0FMSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzA5QkQ7QkVOR0FMSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUJFO0JFTkdBTEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDlCRjtCRU5HQUxJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDlDMDtCRU5HQUxJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzE7QkVOR0FMSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMDlDMjtCRU5HQUxJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMDlDMztCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzQ7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007Ozs7O047Ozs7OworMDlDNztCRU5HQUxJIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMDlDODtCRU5HQUxJIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5Q0I7QkVOR0FMSSBWT1dFTCBTSUdOIE87TWM7MDtMOzA5QzcgMDlCRTs7OztOOzs7OzsKKzA5Q0M7QkVOR0FMSSBWT1dFTCBTSUdOIEFVO01jOzA7TDswOUM3IDA5RDc7Ozs7Tjs7Ozs7CiswOUNEO0JFTkdBTEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMDlDRTtCRU5HQUxJIExFVFRFUiBLSEFOREEgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5RDc7QkVOR0FMSSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMDlEQztCRU5HQUxJIExFVFRFUiBSUkE7TG87MDtMOzA5QTEgMDlCQzs7OztOOzs7OzsKKzA5REQ7QkVOR0FMSSBMRVRURVIgUkhBO0xvOzA7TDswOUEyIDA5QkM7Ozs7Tjs7Ozs7CiswOURGO0JFTkdBTEkgTEVUVEVSIFlZQTtMbzswO0w7MDlBRiAwOUJDOzs7O047Ozs7OworMDlFMDtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUxO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5RTI7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUUzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5RTY7QkVOR0FMSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswOUU3O0JFTkdBTEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswOUU4O0JFTkdBTEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswOUU5O0JFTkdBTEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzA5RUE7QkVOR0FMSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswOUVCO0JFTkdBTEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMDlFQztCRU5HQUxJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMDlFRDtCRU5HQUxJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswOUVFO0JFTkdBTEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzA5RUY7QkVOR0FMSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswOUYwO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTUlERExFIERJQUdPTkFMO0xvOzA7TDs7Ozs7Tjs7QXNzYW1lc2U7OzsKKzA5RjE7QkVOR0FMSSBMRVRURVIgUkEgV0lUSCBMT1dFUiBESUFHT05BTDtMbzswO0w7Ozs7O047QkVOR0FMSSBMRVRURVIgVkEgV0lUSCBMT1dFUiBESUFHT05BTDtBc3NhbWVzZTs7OworMDlGMjtCRU5HQUxJIFJVUEVFIE1BUks7U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswOUYzO0JFTkdBTEkgUlVQRUUgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzA5RjQ7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FO05vOzA7TDs7OzsxO047Ozs7OworMDlGNTtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUV087Tm87MDtMOzs7OzI7Tjs7Ozs7CiswOUY2O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRIUkVFO05vOzA7TDs7OzszO047Ozs7OworMDlGNztCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBGT1VSO05vOzA7TDs7Ozs0O047Ozs7OworMDlGODtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkUgTEVTUyBUSEFOIFRIRSBERU5PTUlOQVRPUjtObzswO0w7Ozs7O047Ozs7OworMDlGOTtCRU5HQUxJIENVUlJFTkNZIERFTk9NSU5BVE9SIFNJWFRFRU47Tm87MDtMOzs7OzE2O047Ozs7OworMDlGQTtCRU5HQUxJIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEEwMTtHVVJNVUtISSBTSUdOIEFEQUsgQklOREk7TW47MDtOU007Ozs7O047Ozs7OworMEEwMjtHVVJNVUtISSBTSUdOIEJJTkRJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBMDM7R1VSTVVLSEkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTA1O0dVUk1VS0hJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA2O0dVUk1VS0hJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNztHVVJNVUtISSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEEwODtHVVJNVUtISSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDk7R1VSTVVLSEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBBMEE7R1VSTVVLSEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBGO0dVUk1VS0hJIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEExMDtHVVJNVUtISSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBMTM7R1VSTVVLSEkgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE0O0dVUk1VS0hJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEExNTtHVVJNVUtISSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMTY7R1VSTVVLSEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEExNztHVVJNVUtISSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMTg7R1VSTVVLSEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEExOTtHVVJNVUtISSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFBO0dVUk1VS0hJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEExQjtHVVJNVUtISSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFDO0dVUk1VS0hJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEExRDtHVVJNVUtISSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFFO0dVUk1VS0hJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUY7R1VSTVVLSEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMDtHVVJNVUtISSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMTtHVVJNVUtISSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIyO0dVUk1VS0hJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIzO0dVUk1VS0hJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjQ7R1VSTVVLSEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI1O0dVUk1VS0hJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjY7R1VSTVVLSEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI3O0dVUk1VS0hJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjg7R1VSTVVLSEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJBO0dVUk1VS0hJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQjtHVVJNVUtISSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJDO0dVUk1VS0hJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRDtHVVJNVUtISSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJFO0dVUk1VS0hJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRjtHVVJNVUtISSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzA7R1VSTVVLSEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMyO0dVUk1VS0hJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMztHVVJNVUtISSBMRVRURVIgTExBO0xvOzA7TDswQTMyIDBBM0M7Ozs7Tjs7Ozs7CiswQTM1O0dVUk1VS0hJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEEzNjtHVVJNVUtISSBMRVRURVIgU0hBO0xvOzA7TDswQTM4IDBBM0M7Ozs7Tjs7Ozs7CiswQTM4O0dVUk1VS0hJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEEzOTtHVVJNVUtISSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBM0M7R1VSTVVLSEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQTNFO0dVUk1VS0hJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBM0Y7R1VSTVVLSEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQwO0dVUk1VS0hJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBNDE7R1VSTVVLSEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDI7R1VSTVVLSEkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQ3O0dVUk1VS0hJIFZPV0VMIFNJR04gRUU7TW47MDtOU007Ozs7O047Ozs7OworMEE0ODtHVVJNVUtISSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEI7R1VSTVVLSEkgVk9XRUwgU0lHTiBPTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTRDO0dVUk1VS0hJIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMEE0RDtHVVJNVUtISSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQTU5O0dVUk1VS0hJIExFVFRFUiBLSEhBO0xvOzA7TDswQTE2IDBBM0M7Ozs7Tjs7Ozs7CiswQTVBO0dVUk1VS0hJIExFVFRFUiBHSEhBO0xvOzA7TDswQTE3IDBBM0M7Ozs7Tjs7Ozs7CiswQTVCO0dVUk1VS0hJIExFVFRFUiBaQTtMbzswO0w7MEExQyAwQTNDOzs7O047Ozs7OworMEE1QztHVVJNVUtISSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTVFO0dVUk1VS0hJIExFVFRFUiBGQTtMbzswO0w7MEEyQiAwQTNDOzs7O047Ozs7OworMEE2NjtHVVJNVUtISSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQTY3O0dVUk1VS0hJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEE2ODtHVVJNVUtISSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBNjk7R1VSTVVLSEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBNkE7R1VSTVVLSEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEE2QjtHVVJNVUtISSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQTZDO0dVUk1VS0hJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEE2RDtHVVJNVUtISSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEE2RTtHVVJNVUtISSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEE2RjtHVVJNVUtISSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQTcwO0dVUk1VS0hJIFRJUFBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNzE7R1VSTVVLSEkgQUREQUs7TW47MDtOU007Ozs7O047Ozs7OworMEE3MjtHVVJNVUtISSBJUkk7TG87MDtMOzs7OztOOzs7OzsKKzBBNzM7R1VSTVVLSEkgVVJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTc0O0dVUk1VS0hJIEVLIE9OS0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTgxO0dVSkFSQVRJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMEE4MjtHVUpBUkFUSSBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBODM7R1VKQVJBVEkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTg1O0dVSkFSQVRJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg2O0dVSkFSQVRJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NztHVUpBUkFUSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEE4ODtHVUpBUkFUSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBBODk7R1VKQVJBVEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEE7R1VKQVJBVEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThCO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBBOEM7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEE4RDtHVUpBUkFUSSBWT1dFTCBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMEE4RjtHVUpBUkFUSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEE5MDtHVUpBUkFUSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBOTE7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTM7R1VKQVJBVEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTQ7R1VKQVJBVEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk1O0dVSkFSQVRJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NjtHVUpBUkFUSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk3O0dVSkFSQVRJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEE5ODtHVUpBUkFUSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk5O0dVSkFSQVRJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOUE7R1VKQVJBVEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlCO0dVSkFSQVRJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUM7R1VKQVJBVEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlEO0dVSkFSQVRJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUU7R1VKQVJBVEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RjtHVUpBUkFUSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEwO0dVSkFSQVRJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUExO0dVSkFSQVRJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTI7R1VKQVJBVEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTM7R1VKQVJBVEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNDtHVUpBUkFUSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTU7R1VKQVJBVEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNjtHVUpBUkFUSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTc7R1VKQVJBVEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBODtHVUpBUkFUSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUE7R1VKQVJBVEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFCO0dVSkFSQVRJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUM7R1VKQVJBVEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFEO0dVSkFSQVRJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUU7R1VKQVJBVEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFGO0dVSkFSQVRJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMDtHVUpBUkFUSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjI7R1VKQVJBVEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIzO0dVSkFSQVRJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjU7R1VKQVJBVEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI2O0dVSkFSQVRJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjc7R1VKQVJBVEkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEFCODtHVUpBUkFUSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjk7R1VKQVJBVEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJDO0dVSkFSQVRJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEFCRDtHVUpBUkFUSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJFO0dVSkFSQVRJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBQkY7R1VKQVJBVEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUMwO0dVSkFSQVRJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzE7R1VKQVJBVEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzI7R1VKQVJBVEkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUMzO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzQ7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzU7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM3O0dVSkFSQVRJIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM4O0dVSkFSQVRJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMEFDOTtHVUpBUkFUSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNCO0dVSkFSQVRJIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMEFDQztHVUpBUkFUSSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNEO0dVSkFSQVRJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBBRDA7R1VKQVJBVEkgT007TG87MDtMOzs7OztOOzs7OzsKKzBBRTA7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBBRTE7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBBRTI7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMEFFMztHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMEFFNjtHVUpBUkFUSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQUU3O0dVSkFSQVRJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEFFODtHVUpBUkFUSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBRTk7R1VKQVJBVEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBRUE7R1VKQVJBVEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEFFQjtHVUpBUkFUSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQUVDO0dVSkFSQVRJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEFFRDtHVUpBUkFUSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEFFRTtHVUpBUkFUSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEFFRjtHVUpBUkFUSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQUYxO0dVSkFSQVRJIFJVUEVFIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswQjAxO09SSVlBIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMEIwMjtPUklZQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjAzO09SSVlBIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEIwNTtPUklZQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNjtPUklZQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDc7T1JJWUEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDg7T1JJWUEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA5O09SSVlBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBBO09SSVlBIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQjtPUklZQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBDO09SSVlBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBCMEY7T1JJWUEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTA7T1JJWUEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEzO09SSVlBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE0O09SSVlBIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEIxNTtPUklZQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTY7T1JJWUEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNztPUklZQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTg7T1JJWUEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxOTtPUklZQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFBO09SSVlBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQjtPUklZQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFDO09SSVlBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRDtPUklZQSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFFO09SSVlBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUY7T1JJWUEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMDtPUklZQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMTtPUklZQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIyO09SSVlBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIzO09SSVlBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjQ7T1JJWUEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI1O09SSVlBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjY7T1JJWUEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI3O09SSVlBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjg7T1JJWUEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJBO09SSVlBIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQjtPUklZQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJDO09SSVlBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRDtPUklZQSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJFO09SSVlBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRjtPUklZQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzA7T1JJWUEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMyO09SSVlBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMztPUklZQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM1O09SSVlBIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNjtPUklZQSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM3O09SSVlBIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMzg7T1JJWUEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM5O09SSVlBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzQztPUklZQSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBCM0Q7T1JJWUEgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzRTtPUklZQSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjNGO09SSVlBIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQwO09SSVlBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCNDE7T1JJWUEgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDI7T1JJWUEgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQzO09SSVlBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDc7T1JJWUEgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQ4O09SSVlBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBCNDcgMEI1Njs7OztOOzs7OzsKKzBCNEI7T1JJWUEgVk9XRUwgU0lHTiBPO01jOzA7TDswQjQ3IDBCM0U7Ozs7Tjs7Ozs7CiswQjRDO09SSVlBIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCNDcgMEI1Nzs7OztOOzs7OzsKKzBCNEQ7T1JJWUEgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEI1NjtPUklZQSBBSSBMRU5HVEggTUFSSztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjU3O09SSVlBIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjVDO09SSVlBIExFVFRFUiBSUkE7TG87MDtMOzBCMjEgMEIzQzs7OztOOzs7OzsKKzBCNUQ7T1JJWUEgTEVUVEVSIFJIQTtMbzswO0w7MEIyMiAwQjNDOzs7O047Ozs7OworMEI1RjtPUklZQSBMRVRURVIgWVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjYwO09SSVlBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjYxO09SSVlBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjY2O09SSVlBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBCNjc7T1JJWUEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQjY4O09SSVlBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEI2OTtPUklZQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEI2QTtPUklZQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQjZCO09SSVlBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCNkM7T1JJWUEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQjZEO09SSVlBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQjZFO09SSVlBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQjZGO09SSVlBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCNzA7T1JJWUEgSVNTSEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQjcxO09SSVlBIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEI4MjtUQU1JTCBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCODM7VEFNSUwgU0lHTiBWSVNBUkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg1O1RBTUlMIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg2O1RBTUlMIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NztUQU1JTCBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEI4ODtUQU1JTCBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBCODk7VEFNSUwgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEE7VEFNSUwgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhFO1RBTUlMIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhGO1RBTUlMIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEI5MDtUQU1JTCBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBCOTI7VEFNSUwgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBCOTM7VEFNSUwgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk0O1RBTUlMIExFVFRFUiBBVTtMbzswO0w7MEI5MiAwQkQ3Ozs7O047Ozs7OworMEI5NTtUQU1JTCBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOTk7VEFNSUwgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEI5QTtUQU1JTCBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUM7VEFNSUwgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlFO1RBTUlMIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCOUY7VEFNSUwgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEJBMztUQU1JTCBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE0O1RBTUlMIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEJBODtUQU1JTCBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTk7VEFNSUwgTEVUVEVSIE5OTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUE7VEFNSUwgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFFO1RBTUlMIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRjtUQU1JTCBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjA7VEFNSUwgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIxO1RBTUlMIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjI7VEFNSUwgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIzO1RBTUlMIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjQ7VEFNSUwgTEVUVEVSIExMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjU7VEFNSUwgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI2O1RBTUlMIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjc7VEFNSUwgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCODtUQU1JTCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjk7VEFNSUwgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkJFO1RBTUlMIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCQkY7VEFNSUwgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMwO1RBTUlMIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEJDMTtUQU1JTCBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzI7VEFNSUwgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMEJDNjtUQU1JTCBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzc7VEFNSUwgVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEJDODtUQU1JTCBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkNBO1RBTUlMIFZPV0VMIFNJR04gTztNYzswO0w7MEJDNiAwQkJFOzs7O047Ozs7OworMEJDQjtUQU1JTCBWT1dFTCBTSUdOIE9PO01jOzA7TDswQkM3IDBCQkU7Ozs7Tjs7Ozs7CiswQkNDO1RBTUlMIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCQzYgMEJENzs7OztOOzs7OzsKKzBCQ0Q7VEFNSUwgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEJENztUQU1JTCBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEJFNjtUQU1JTCBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQkU3O1RBTUlMIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEJFODtUQU1JTCBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCRTk7VEFNSUwgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCRUE7VEFNSUwgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEJFQjtUQU1JTCBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQkVDO1RBTUlMIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEJFRDtUQU1JTCBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEJFRTtUQU1JTCBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEJFRjtUQU1JTCBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQkYwO1RBTUlMIE5VTUJFUiBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMEJGMTtUQU1JTCBOVU1CRVIgT05FIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzBCRjI7VEFNSUwgTlVNQkVSIE9ORSBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDtOOzs7OzsKKzBCRjM7VEFNSUwgREFZIFNJR047U287MDtPTjs7Ozs7Tjs7TmFhbDs7OworMEJGNDtUQU1JTCBNT05USCBTSUdOO1NvOzA7T047Ozs7O047O01hYXRoYW07OzsKKzBCRjU7VEFNSUwgWUVBUiBTSUdOO1NvOzA7T047Ozs7O047O1ZhcnVkYW07OzsKKzBCRjY7VEFNSUwgREVCSVQgU0lHTjtTbzswO09OOzs7OztOOztQYXRydTs7OworMEJGNztUQU1JTCBDUkVESVQgU0lHTjtTbzswO09OOzs7OztOOztWYXJhdnU7OzsKKzBCRjg7VEFNSUwgQVMgQUJPVkUgU0lHTjtTbzswO09OOzs7OztOOztNZXJwYWRpOzs7CiswQkY5O1RBTUlMIFJVUEVFIFNJR047U2M7MDtFVDs7Ozs7Tjs7UnVwYWk7OzsKKzBCRkE7VEFNSUwgTlVNQkVSIFNJR047U287MDtPTjs7Ozs7Tjs7RW5uOzs7CiswQzAxO1RFTFVHVSBTSUdOIENBTkRSQUJJTkRVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAyO1RFTFVHVSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAzO1RFTFVHVSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDMDU7VEVMVUdVIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA2O1RFTFVHVSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMDc7VEVMVUdVIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA4O1RFTFVHVSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMDk7VEVMVUdVIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBBO1RFTFVHVSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDMEI7VEVMVUdVIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBDMEM7VEVMVUdVIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDMEU7VEVMVUdVIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBGO1RFTFVHVSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBDMTA7VEVMVUdVIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEMxMjtURUxVR1UgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDMTM7VEVMVUdVIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEMxNDtURUxVR1UgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE1O1RFTFVHVSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTY7VEVMVUdVIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTc7VEVMVUdVIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEMxODtURUxVR1UgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxOTtURUxVR1UgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQTtURUxVR1UgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFCO1RFTFVHVSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFDO1RFTFVHVSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUQ7VEVMVUdVIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUU7VEVMVUdVIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUY7VEVMVUdVIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjA7VEVMVUdVIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIxO1RFTFVHVSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIyO1RFTFVHVSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMztURUxVR1UgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNDtURUxVR1UgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI1O1RFTFVHVSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI2O1RFTFVHVSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjc7VEVMVUdVIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjg7VEVMVUdVIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQTtURUxVR1UgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJCO1RFTFVHVSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJDO1RFTFVHVSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkQ7VEVMVUdVIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkU7VEVMVUdVIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEMyRjtURUxVR1UgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMwO1RFTFVHVSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzE7VEVMVUdVIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzI7VEVMVUdVIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMztURUxVR1UgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNTtURUxVR1UgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM2O1RFTFVHVSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM3O1RFTFVHVSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM4O1RFTFVHVSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMzk7VEVMVUdVIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzRTtURUxVR1UgVk9XRUwgU0lHTiBBQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzNGO1RFTFVHVSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEM0MDtURUxVR1UgVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQxO1RFTFVHVSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDI7VEVMVUdVIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDM7VEVMVUdVIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ0O1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDY7VEVMVUdVIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQ3O1RFTFVHVSBWT1dFTCBTSUdOIEVFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDg7VEVMVUdVIFZPV0VMIFNJR04gQUk7TW47MDtOU007MEM0NiAwQzU2Ozs7O047Ozs7OworMEM0QTtURUxVR1UgVk9XRUwgU0lHTiBPO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEI7VEVMVUdVIFZPV0VMIFNJR04gT087TW47MDtOU007Ozs7O047Ozs7OworMEM0QztURUxVR1UgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzREO1RFTFVHVSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQzU1O1RFTFVHVSBMRU5HVEggTUFSSztNbjs4NDtOU007Ozs7O047Ozs7OworMEM1NjtURUxVR1UgQUkgTEVOR1RIIE1BUks7TW47OTE7TlNNOzs7OztOOzs7OzsKKzBDNjA7VEVMVUdVIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzYxO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEM2NjtURUxVR1UgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEM2NztURUxVR1UgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQzY4O1RFTFVHVSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBDNjk7VEVMVUdVIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQzZBO1RFTFVHVSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQzZCO1RFTFVHVSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQzZDO1RFTFVHVSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDNkQ7VEVMVUdVIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQzZFO1RFTFVHVSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEM2RjtURUxVR1UgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEM4MjtLQU5OQURBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBDODM7S0FOTkFEQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDODU7S0FOTkFEQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NjtLQU5OQURBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NztLQU5OQURBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg4O0tBTk5BREEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg5O0tBTk5BREEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEE7S0FOTkFEQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEI7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhDO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEM4RTtLQU5OQURBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhGO0tBTk5BREEgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkwO0tBTk5BREEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkyO0tBTk5BREEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDOTM7S0FOTkFEQSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDOTQ7S0FOTkFEQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOTU7S0FOTkFEQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOTY7S0FOTkFEQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk3O0tBTk5BREEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk4O0tBTk5BREEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5OTtLQU5OQURBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUE7S0FOTkFEQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUI7S0FOTkFEQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlDO0tBTk5BREEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlEO0tBTk5BREEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RTtLQU5OQURBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUY7S0FOTkFEQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EwO0tBTk5BREEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTE7S0FOTkFEQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EyO0tBTk5BREEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTM7S0FOTkFEQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E0O0tBTk5BREEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E1O0tBTk5BREEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMENBNjtLQU5OQURBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMENBNztLQU5OQURBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTg7S0FOTkFEQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUE7S0FOTkFEQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUI7S0FOTkFEQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FDO0tBTk5BREEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FEO0tBTk5BREEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMENBRTtLQU5OQURBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMENBRjtLQU5OQURBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMENCMDtLQU5OQURBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMENCMTtLQU5OQURBIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjI7S0FOTkFEQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjM7S0FOTkFEQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I1O0tBTk5BREEgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I2O0tBTk5BREEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMENCNztLQU5OQURBIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjg7S0FOTkFEQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjk7S0FOTkFEQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQkM7S0FOTkFEQSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBDQkQ7S0FOTkFEQSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JFO0tBTk5BREEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMENCRjtLQU5OQURBIFZPV0VMIFNJR04gSTtNbjswO0w7Ozs7O047Ozs7OworMENDMDtLQU5OQURBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzBDQkYgMENENTs7OztOOzs7OzsKKzBDQzE7S0FOTkFEQSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzI7S0FOTkFEQSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MzO0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzQ7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzY7S0FOTkFEQSBWT1dFTCBTSUdOIEU7TW47MDtMOzs7OztOOzs7OzsKKzBDQzc7S0FOTkFEQSBWT1dFTCBTSUdOIEVFO01jOzA7TDswQ0M2IDBDRDU7Ozs7Tjs7Ozs7CiswQ0M4O0tBTk5BREEgVk9XRUwgU0lHTiBBSTtNYzswO0w7MENDNiAwQ0Q2Ozs7O047Ozs7OworMENDQTtLQU5OQURBIFZPV0VMIFNJR04gTztNYzswO0w7MENDNiAwQ0MyOzs7O047Ozs7OworMENDQjtLQU5OQURBIFZPV0VMIFNJR04gT087TWM7MDtMOzBDQ0EgMENENTs7OztOOzs7OzsKKzBDQ0M7S0FOTkFEQSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDQ0Q7S0FOTkFEQSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQ0Q1O0tBTk5BREEgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDRDY7S0FOTkFEQSBBSSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMENERTtLQU5OQURBIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMENFMDtLQU5OQURBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UxO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDRTI7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0UzO0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDRTY7S0FOTkFEQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQ0U3O0tBTk5BREEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQ0U4O0tBTk5BREEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQ0U5O0tBTk5BREEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBDRUE7S0FOTkFEQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQ0VCO0tBTk5BREEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMENFQztLQU5OQURBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMENFRDtLQU5OQURBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQ0VFO0tBTk5BREEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDRUY7S0FOTkFEQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQ0YxO0tBTk5BREEgU0lHTiBKSUhWQU1VTElZQTtTbzswO09OOzs7OztOOzs7OzsKKzBDRjI7S0FOTkFEQSBTSUdOIFVQQURITUFOSVlBO1NvOzA7T047Ozs7O047Ozs7OworMEQwMjtNQUxBWUFMQU0gU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEQwMztNQUxBWUFMQU0gU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDA1O01BTEFZQUxBTSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNjtNQUxBWUFMQU0gTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA3O01BTEFZQUxBTSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEQwODtNQUxBWUFMQU0gTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA5O01BTEFZQUxBTSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQTtNQUxBWUFMQU0gTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBCO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBDO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBFO01BTEFZQUxBTSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEQwRjtNQUxBWUFMQU0gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEwO01BTEFZQUxBTSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMTI7TUFMQVlBTEFNIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEzO01BTEFZQUxBTSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBEMTQ7TUFMQVlBTEFNIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEQxNTtNQUxBWUFMQU0gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE2O01BTEFZQUxBTSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE3O01BTEFZQUxBTSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTg7TUFMQVlBTEFNIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTk7TUFMQVlBTEFNIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUE7TUFMQVlBTEFNIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQjtNQUxBWUFMQU0gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQztNQUxBWUFMQU0gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFEO01BTEFZQUxBTSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFFO01BTEFZQUxBTSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFGO01BTEFZQUxBTSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIwO01BTEFZQUxBTSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMTtNQUxBWUFMQU0gTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMjtNQUxBWUFMQU0gTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjM7TUFMQVlBTEFNIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjQ7TUFMQVlBTEFNIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNTtNQUxBWUFMQU0gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNjtNQUxBWUFMQU0gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI3O01BTEFZQUxBTSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI4O01BTEFZQUxBTSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkE7TUFMQVlBTEFNIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQjtNQUxBWUFMQU0gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQztNQUxBWUFMQU0gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJEO01BTEFZQUxBTSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJFO01BTEFZQUxBTSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkY7TUFMQVlBTEFNIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMDtNQUxBWUFMQU0gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMxO01BTEFZQUxBTSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMyO01BTEFZQUxBTSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzM7TUFMQVlBTEFNIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzQ7TUFMQVlBTEFNIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM1O01BTEFZQUxBTSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzY7TUFMQVlBTEFNIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzc7TUFMQVlBTEFNIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzg7TUFMQVlBTEFNIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzOTtNQUxBWUFMQU0gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDNFO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDNGO01BTEFZQUxBTSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDA7TUFMQVlBTEFNIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDE7TUFMQVlBTEFNIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQyO01BTEFZQUxBTSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDM7TUFMQVlBTEFNIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDY7TUFMQVlBTEFNIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0NztNQUxBWUFMQU0gVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0ODtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0QTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPO01jOzA7TDswRDQ2IDBEM0U7Ozs7Tjs7Ozs7CiswRDRCO01BTEFZQUxBTSBWT1dFTCBTSUdOIE9PO01jOzA7TDswRDQ3IDBEM0U7Ozs7Tjs7Ozs7CiswRDRDO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFVO01jOzA7TDswRDQ2IDBENTc7Ozs7Tjs7Ozs7CiswRDREO01BTEFZQUxBTSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswRDU3O01BTEFZQUxBTSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEQ2MDtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBENjE7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDY2O01BTEFZQUxBTSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRDY3O01BTEFZQUxBTSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBENjg7TUFMQVlBTEFNIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEQ2OTtNQUxBWUFMQU0gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBENkE7TUFMQVlBTEFNIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBENkI7TUFMQVlBTEFNIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBENkM7TUFMQVlBTEFNIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEQ2RDtNQUxBWUFMQU0gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBENkU7TUFMQVlBTEFNIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRDZGO01BTEFZQUxBTSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRDgyO1NJTkhBTEEgU0lHTiBBTlVTVkFSQVlBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDgzO1NJTkhBTEEgU0lHTiBWSVNBUkdBWUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEODU7U0lOSEFMQSBMRVRURVIgQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg2O1NJTkhBTEEgTEVUVEVSIEFBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODc7U0lOSEFMQSBMRVRURVIgQUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4ODtTSU5IQUxBIExFVFRFUiBBRUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4OTtTSU5IQUxBIExFVFRFUiBJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEE7U0lOSEFMQSBMRVRURVIgSUlZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4QjtTSU5IQUxBIExFVFRFUiBVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEM7U0lOSEFMQSBMRVRURVIgVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RDtTSU5IQUxBIExFVFRFUiBJUlVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RTtTSU5IQUxBIExFVFRFUiBJUlVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEY7U0lOSEFMQSBMRVRURVIgSUxVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTA7U0lOSEFMQSBMRVRURVIgSUxVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkxO1NJTkhBTEEgTEVUVEVSIEVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MjtTSU5IQUxBIExFVFRFUiBFRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkzO1NJTkhBTEEgTEVUVEVSIEFJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTQ7U0lOSEFMQSBMRVRURVIgT1lBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk1O1NJTkhBTEEgTEVUVEVSIE9PWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTY7U0lOSEFMQSBMRVRURVIgQVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QTtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEtBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUI7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgS0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUQ7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5RTtTSU5IQUxBIExFVFRFUiBLQU5UQUpBIE5BQVNJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUY7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEwO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQ0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBDQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEyO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBKQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE0O1NJTkhBTEEgTEVUVEVSIFRBQUxVSkEgTkFBU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMERBNTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBTllPT0dBIE5BQUtTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE2O1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBNztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE4O1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE5O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUE7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUU7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjA7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCMTtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI0O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgUEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBQQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI2O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI4O1NJTkhBTEEgTEVUVEVSIE1BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjk7U0lOSEFMQSBMRVRURVIgQU1CQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJBO1NJTkhBTEEgTEVUVEVSIFlBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkI7U0lOSEFMQSBMRVRURVIgUkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCRDtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzA7U0lOSEFMQSBMRVRURVIgVkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzM7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM0O1NJTkhBTEEgTEVUVEVSIEhBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzU7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzY7U0lOSEFMQSBMRVRURVIgRkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDQTtTSU5IQUxBIFNJR04gQUwtTEFLVU5BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBEQ0Y7U0lOSEFMQSBWT1dFTCBTSUdOIEFFTEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDA7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIEFFREEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDE7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgQUVEQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREMjtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgSVMtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBJUy1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQ0O1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMERENjtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREODtTSU5IQUxBIFZPV0VMIFNJR04gR0FFVFRBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQ5O1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRERBO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEtPTUJVVkE7TWM7MDtMOzBERDkgMERDQTs7OztOOzs7OzsKKzBEREI7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVIERFS0E7TWM7MDtMOzs7OztOOzs7OzsKKzBEREM7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIEFFTEEtUElMTEE7TWM7MDtMOzBERDkgMERDRjs7OztOOzs7OzsKKzBEREQ7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIERJR0EgQUVMQS1QSUxMQTtNYzswO0w7MEREQyAwRENBOzs7O047Ozs7OworMERERTtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQSBIQUEgR0FZQU5VS0lUVEE7TWM7MDtMOzBERDkgMERERjs7OztOOzs7OzsKKzBEREY7U0lOSEFMQSBWT1dFTCBTSUdOIEdBWUFOVUtJVFRBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREYyO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEdBRVRUQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMERGMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBHQVlBTlVLSVRUQTtNYzswO0w7Ozs7O047Ozs7OworMERGNDtTSU5IQUxBIFBVTkNUVUFUSU9OIEtVTkREQUxJWUE7UG87MDtMOzs7OztOOzs7OzsKKzBFMDE7VEhBSSBDSEFSQUNURVIgS08gS0FJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLTyBLQUk7Ozs7CiswRTAyO1RIQUkgQ0hBUkFDVEVSIEtITyBLSEFJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hBSTs7OzsKKzBFMDM7VEhBSSBDSEFSQUNURVIgS0hPIEtIVUFUO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hVQVQ7Ozs7CiswRTA0O1RIQUkgQ0hBUkFDVEVSIEtITyBLSFdBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIV0FJOzs7OworMEUwNTtUSEFJIENIQVJBQ1RFUiBLSE8gS0hPTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIT047Ozs7CiswRTA2O1RIQUkgQ0hBUkFDVEVSIEtITyBSQUtIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gUkFLSEFORzs7OzsKKzBFMDc7VEhBSSBDSEFSQUNURVIgTkdPIE5HVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTkdPIE5HVTs7OzsKKzBFMDg7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSEFOOzs7OworMEUwOTtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSElORzs7OzsKKzBFMEE7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTkc7Ozs7CiswRTBCO1RIQUkgQ0hBUkFDVEVSIFNPIFNPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTTzs7OzsKKzBFMEM7VEhBSSBDSEFSQUNURVIgQ0hPIENIT0U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSE9FOzs7OworMEUwRDtUSEFJIENIQVJBQ1RFUiBZTyBZSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBZTyBZSU5HOzs7OworMEUwRTtUSEFJIENIQVJBQ1RFUiBETyBDSEFEQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gQ0hBREE7Ozs7CiswRTBGO1RIQUkgQ0hBUkFDVEVSIFRPIFBBVEFLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBQQVRBSzs7OzsKKzBFMTA7VEhBSSBDSEFSQUNURVIgVEhPIFRIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFOOzs7OworMEUxMTtUSEFJIENIQVJBQ1RFUiBUSE8gTkFOR01PTlRITztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIE5BTkdNT05USE87Ozs7CiswRTEyO1RIQUkgQ0hBUkFDVEVSIFRITyBQSFVUSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gUEhVVEhBTzs7OzsKKzBFMTM7VEhBSSBDSEFSQUNURVIgTk8gTkVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOTyBORU47Ozs7CiswRTE0O1RIQUkgQ0hBUkFDVEVSIERPIERFSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gREVLOzs7OworMEUxNTtUSEFJIENIQVJBQ1RFUiBUTyBUQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRPIFRBTzs7OzsKKzBFMTY7VEhBSSBDSEFSQUNURVIgVEhPIFRIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhVTkc7Ozs7CiswRTE3O1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFIQU47Ozs7CiswRTE4O1RIQUkgQ0hBUkFDVEVSIFRITyBUSE9ORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIT05HOzs7OworMEUxOTtUSEFJIENIQVJBQ1RFUiBOTyBOVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTlU7Ozs7CiswRTFBO1RIQUkgQ0hBUkFDVEVSIEJPIEJBSU1BSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQk8gQkFJTUFJOzs7OworMEUxQjtUSEFJIENIQVJBQ1RFUiBQTyBQTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBPIFBMQTs7OzsKKzBFMUM7VEhBSSBDSEFSQUNURVIgUEhPIFBIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhVTkc7Ozs7CiswRTFEO1RIQUkgQ0hBUkFDVEVSIEZPIEZBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQTs7OzsKKzBFMUU7VEhBSSBDSEFSQUNURVIgUEhPIFBIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBQSEFOOzs7OworMEUxRjtUSEFJIENIQVJBQ1RFUiBGTyBGQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEZPIEZBTjs7OzsKKzBFMjA7VEhBSSBDSEFSQUNURVIgUEhPIFNBTVBIQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBTQU1QSEFPOzs7OworMEUyMTtUSEFJIENIQVJBQ1RFUiBNTyBNQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTU8gTUE7Ozs7CiswRTIyO1RIQUkgQ0hBUkFDVEVSIFlPIFlBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUFLOzs7OworMEUyMztUSEFJIENIQVJBQ1RFUiBSTyBSVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJPIFJVQTs7OzsKKzBFMjQ7VEhBSSBDSEFSQUNURVIgUlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJVOzs7OworMEUyNTtUSEFJIENIQVJBQ1RFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBMSU5HOzs7OworMEUyNjtUSEFJIENIQVJBQ1RFUiBMVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTFU7Ozs7CiswRTI3O1RIQUkgQ0hBUkFDVEVSIFdPIFdBRU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFdPIFdBRU47Ozs7CiswRTI4O1RIQUkgQ0hBUkFDVEVSIFNPIFNBTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNBTEE7Ozs7CiswRTI5O1RIQUkgQ0hBUkFDVEVSIFNPIFJVU0k7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFJVU0k7Ozs7CiswRTJBO1RIQUkgQ0hBUkFDVEVSIFNPIFNVQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU1VBOzs7OworMEUyQjtUSEFJIENIQVJBQ1RFUiBITyBISVA7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIEhJUDs7OzsKKzBFMkM7VEhBSSBDSEFSQUNURVIgTE8gQ0hVTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExPIENIVUxBOzs7OworMEUyRDtUSEFJIENIQVJBQ1RFUiBPIEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTyBBTkc7Ozs7CiswRTJFO1RIQUkgQ0hBUkFDVEVSIEhPIE5PS0hVSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgSE8gTk9LIEhVSzs7OzsKKzBFMkY7VEhBSSBDSEFSQUNURVIgUEFJWUFOTk9JO0xvOzA7TDs7Ozs7TjtUSEFJIFBBSSBZQU4gTk9JO3BhaXlhbiBub2k7OzsKKzBFMzA7VEhBSSBDSEFSQUNURVIgU0FSQSBBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBOzs7OworMEUzMTtUSEFJIENIQVJBQ1RFUiBNQUkgSEFOLUFLQVQ7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBIQU4tQUtBVDs7OzsKKzBFMzI7VEhBSSBDSEFSQUNURVIgU0FSQSBBQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQUE7Ozs7CiswRTMzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQU07TG87MDtMOzxjb21wYXQ+IDBFNEQgMEUzMjs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFNOzs7OworMEUzNDtUSEFJIENIQVJBQ1RFUiBTQVJBIEk7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSTs7OzsKKzBFMzU7VEhBSSBDSEFSQUNURVIgU0FSQSBJSTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBJSTs7OzsKKzBFMzY7VEhBSSBDSEFSQUNURVIgU0FSQSBVRTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVRTs7OzsKKzBFMzc7VEhBSSBDSEFSQUNURVIgU0FSQSBVRUU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUVFO3NhcmEgdXVlOzs7CiswRTM4O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVTtNbjsxMDM7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTAzO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVVTs7OzsKKzBFM0E7VEhBSSBDSEFSQUNURVIgUEhJTlRIVTtNbjs5O05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gUEhJTlRIVTs7OzsKKzBFM0Y7VEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVDtTYzswO0VUOzs7OztOO1RIQUkgQkFIVCBTSUdOOzs7OworMEU0MDtUSEFJIENIQVJBQ1RFUiBTQVJBIEU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEU7Ozs7CiswRTQxO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFFOzs7OworMEU0MjtUSEFJIENIQVJBQ1RFUiBTQVJBIE87TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE87Ozs7CiswRTQzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTVVBTjtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1VQU47c2FyYSBhaSBtYWkgbXVhbjs7OworMEU0NDtUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1BTEFJO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBNQUkgTUFMQUk7c2FyYSBhaSBtYWkgbWFsYWk7OzsKKzBFNDU7VEhBSSBDSEFSQUNURVIgTEFLS0hBTkdZQU87TG87MDtMOzs7OztOO1RIQUkgTEFLIEtIQU5HIFlBTztsYWtraGFuZyB5YW87OzsKKzBFNDY7VEhBSSBDSEFSQUNURVIgTUFJWUFNT0s7TG07MDtMOzs7OztOO1RIQUkgTUFJIFlBTU9LO21haSB5YW1vazs7OworMEU0NztUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBUQUkgS0hVO21haSB0YWlraHU7OzsKKzBFNDg7VEhBSSBDSEFSQUNURVIgTUFJIEVLO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBFSzs7OzsKKzBFNDk7VEhBSSBDSEFSQUNURVIgTUFJIFRITztNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgVEhPOzs7OworMEU0QTtUSEFJIENIQVJBQ1RFUiBNQUkgVFJJO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBUUkk7Ozs7CiswRTRCO1RIQUkgQ0hBUkFDVEVSIE1BSSBDSEFUVEFXQTtNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgQ0hBVFRBV0E7Ozs7CiswRTRDO1RIQUkgQ0hBUkFDVEVSIFRIQU5USEFLSEFUO01uOzA7TlNNOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzA7TlNNOzs7OztOO1RIQUkgTklLS0hBSElUO25pa2toYWhpdDs7OworMEU0RTtUSEFJIENIQVJBQ1RFUiBZQU1BS0tBTjtNbjswO05TTTs7Ozs7TjtUSEFJIFlBTUFLS0FOOzs7OworMEU0RjtUSEFJIENIQVJBQ1RFUiBGT05HTUFOO1BvOzA7TDs7Ozs7TjtUSEFJIEZPTkdNQU47Ozs7CiswRTUwO1RIQUkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEU1MTtUSEFJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEU1MjtUSEFJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEU1MztUSEFJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRTU0O1RIQUkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEU1NTtUSEFJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFNTY7VEhBSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFNTc7VEhBSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEU1ODtUSEFJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRTU5O1RIQUkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEU1QTtUSEFJIENIQVJBQ1RFUiBBTkdLSEFOS0hVO1BvOzA7TDs7Ozs7TjtUSEFJIEFOR0tIQU5LSFU7Ozs7CiswRTVCO1RIQUkgQ0hBUkFDVEVSIEtIT01VVDtQbzswO0w7Ozs7O047VEhBSSBLSE9NVVQ7Ozs7CiswRTgxO0xBTyBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzBFODI7TEFPIExFVFRFUiBLSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU4NDtMQU8gTEVUVEVSIEtITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFODc7TEFPIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzBFODg7TEFPIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMEU4QTtMQU8gTEVUVEVSIFNPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4RDtMQU8gTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEU5NDtMQU8gTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk1O0xBTyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTY7TEFPIExFVFRFUiBUSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5NztMQU8gTEVUVEVSIFRITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOTk7TEFPIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMEU5QTtMQU8gTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlCO0xBTyBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzBFOUM7TEFPIExFVFRFUiBQSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5RDtMQU8gTEVUVEVSIEZPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RTtMQU8gTEVUVEVSIFBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUY7TEFPIExFVFRFUiBGTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUExO0xBTyBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTI7TEFPIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMEVBMztMQU8gTEVUVEVSIExPIExJTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTU7TEFPIExFVFRFUiBMTyBMT09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE3O0xBTyBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzBFQUE7TEFPIExFVFRFUiBTTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFCO0xBTyBMRVRURVIgSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBRDtMQU8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQUU7TEFPIExFVFRFUiBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFQUY7TEFPIEVMTElQU0lTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIwO0xBTyBWT1dFTCBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjE7TEFPIFZPV0VMIFNJR04gTUFJIEtBTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUIyO0xBTyBWT1dFTCBTSUdOIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIzO0xBTyBWT1dFTCBTSUdOIEFNO0xvOzA7TDs8Y29tcGF0PiAwRUNEIDBFQjI7Ozs7Tjs7Ozs7CiswRUI0O0xBTyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNTtMQU8gVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI2O0xBTyBWT1dFTCBTSUdOIFk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNztMQU8gVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI4O0xBTyBWT1dFTCBTSUdOIFU7TW47MTE4O05TTTs7Ozs7Tjs7Ozs7CiswRUI5O0xBTyBWT1dFTCBTSUdOIFVVO01uOzExODtOU007Ozs7O047Ozs7OworMEVCQjtMQU8gVk9XRUwgU0lHTiBNQUkgS09OO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkM7TEFPIFNFTUlWT1dFTCBTSUdOIExPO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkQ7TEFPIFNFTUlWT1dFTCBTSUdOIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEVDMDtMQU8gVk9XRUwgU0lHTiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMxO0xBTyBWT1dFTCBTSUdOIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMyO0xBTyBWT1dFTCBTSUdOIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQzM7TEFPIFZPV0VMIFNJR04gQVk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzQ7TEFPIFZPV0VMIFNJR04gQUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzY7TEFPIEtPIExBO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswRUM4O0xBTyBUT05FIE1BSSBFSztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQzk7TEFPIFRPTkUgTUFJIFRITztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0E7TEFPIFRPTkUgTUFJIFRJO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQjtMQU8gVE9ORSBNQUkgQ0FUQVdBO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQztMQU8gQ0FOQ0VMTEFUSU9OIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEVDRDtMQU8gTklHR0FISVRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFRDA7TEFPIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFRDE7TEFPIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEVEMjtMQU8gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRUQzO0xBTyBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEVENDtMQU8gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEVENTtMQU8gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEVENjtMQU8gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRUQ3O0xBTyBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEVEODtMQU8gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFRDk7TEFPIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFREM7TEFPIEhPIE5PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFOTk7Ozs7Tjs7Ozs7CiswRUREO0xBTyBITyBNTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRUExOzs7O047Ozs7OworMEYwMDtUSUJFVEFOIFNZTExBQkxFIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjAxO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gVFJVTkNBVEVEIEE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIGEgdGh1bmc7OzsKKzBGMDI7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gUk5BTSBCQ0FEIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gbmFtIGNoZXkgbWE7OzsKKzBGMDM7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gR1RFUiBUU0hFRyBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIHRlciB0c2VrIG1hOzs7CiswRjA0O1RJQkVUQU4gTUFSSyBJTklUSUFMIFlJRyBNR08gTURVTiBNQTtQbzswO0w7Ozs7O047VElCRVRBTiBTSU5HTEUgT1JOQU1FTlQ7eWlrIGdvIGR1biBtYTs7OworMEYwNTtUSUJFVEFOIE1BUksgQ0xPU0lORyBZSUcgTUdPIFNHQUIgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28ga2FiIG1hOzs7CiswRjA2O1RJQkVUQU4gTUFSSyBDQVJFVCBZSUcgTUdPIFBIVVIgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBwdXIgc2hleSBtYTs7OworMEYwNztUSUJFVEFOIE1BUksgWUlHIE1HTyBUU0hFRyBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHRzZWsgc2hleSBtYTs7OworMEYwODtUSUJFVEFOIE1BUksgU0JSVUwgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBSR1lBTlNIQUQ7ZHJ1bCBzaGV5Ozs7CiswRjA5O1RJQkVUQU4gTUFSSyBCU0tVUiBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a3VyIHlpayBnbzs7OworMEYwQTtUSUJFVEFOIE1BUksgQktBLSBTSE9HIFlJRyBNR087UG87MDtMOzs7OztOOztrYSBzaG8geWlrIGdvOzs7CiswRjBCO1RJQkVUQU4gTUFSSyBJTlRFUlNZTExBQklDIFRTSEVHO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFRTRUc7dHNlazs7OworMEYwQztUSUJFVEFOIE1BUksgREVMSU1JVEVSIFRTSEVHIEJTVEFSO1BvOzA7TDs8bm9CcmVhaz4gMEYwQjs7OztOOzt0c2VrIHRhcjs7OworMEYwRDtUSUJFVEFOIE1BUksgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBTSEFEO3NoZXk7OzsKKzBGMEU7VElCRVRBTiBNQVJLIE5ZSVMgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBET1VCTEUgU0hBRDtueWkgc2hleTs7OworMEYwRjtUSUJFVEFOIE1BUksgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O3RzZWsgc2hleTs7OworMEYxMDtUSUJFVEFOIE1BUksgTllJUyBUU0hFRyBTSEFEO1BvOzA7TDs7Ozs7Tjs7bnlpIHRzZWsgc2hleTs7OworMEYxMTtUSUJFVEFOIE1BUksgUklOIENIRU4gU1BVTkdTIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gUklOQ0hBTlBIVU5HU0hBRDtyaW5jaGVuIHB1bmcgc2hleTs7OworMEYxMjtUSUJFVEFOIE1BUksgUkdZQSBHUkFNIFNIQUQ7UG87MDtMOzs7OztOOztneWEgdHJhbSBzaGV5Ozs7CiswRjEzO1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBNRSBMT05HIENBTjtTbzswO0w7Ozs7O047O2R6dSB0YSBtZSBsb25nIGNoZW47OzsKKzBGMTQ7VElCRVRBTiBNQVJLIEdURVIgVFNIRUc7U287MDtMOzs7OztOO1RJQkVUQU4gQ09NTUE7dGVyIHRzZWs7OzsKKzBGMTU7VElCRVRBTiBMT0dPVFlQRSBTSUdOIENIQUQgUlRBR1M7U287MDtMOzs7OztOOztjaGUgdGE7OzsKKzBGMTY7VElCRVRBTiBMT0dPVFlQRSBTSUdOIExIQUcgUlRBR1M7U287MDtMOzs7OztOOztobGFrIHRhOzs7CiswRjE3O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0dSQSBHQ0FOIC1DSEFSIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7dHJhY2hlbiBjaGFyIHRhOzs7CiswRjE4O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gLUtIWVVEIFBBO01uOzIyMDtOU007Ozs7O047O2t5dSBwYTs7OworMEYxOTtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNET05HIFRTSFVHUztNbjsyMjA7TlNNOzs7OztOOztkb25nIHRzdTs7OworMEYxQTtUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdDSUc7U287MDtMOzs7OztOOztkZWthIGNoaWc7OzsKKzBGMUI7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHTllJUztTbzswO0w7Ozs7O047O2Rla2EgbnlpOzs7CiswRjFDO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR1NVTTtTbzswO0w7Ozs7O047O2Rla2Egc3VtOzs7CiswRjFEO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBjaGlnOzs7CiswRjFFO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHTllJUztTbzswO0w7Ozs7O047O2RlbmEgbnlpOzs7CiswRjFGO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgUkRFTCBOQUc7U287MDtMOzs7OztOOztkZWthIGRlbmE7OzsKKzBGMjA7VElCRVRBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRjIxO1RJQkVUQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRjIyO1RJQkVUQU4gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRjIzO1RJQkVUQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBGMjQ7VElCRVRBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRjI1O1RJQkVUQU4gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEYyNjtUSUJFVEFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEYyNztUSUJFVEFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRjI4O1RJQkVUQU4gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBGMjk7VElCRVRBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRjJBO1RJQkVUQU4gRElHSVQgSEFMRiBPTkU7Tm87MDtMOzs7OzEvMjtOOzs7OzsKKzBGMkI7VElCRVRBTiBESUdJVCBIQUxGIFRXTztObzswO0w7Ozs7My8yO047Ozs7OworMEYyQztUSUJFVEFOIERJR0lUIEhBTEYgVEhSRUU7Tm87MDtMOzs7OzUvMjtOOzs7OzsKKzBGMkQ7VElCRVRBTiBESUdJVCBIQUxGIEZPVVI7Tm87MDtMOzs7OzcvMjtOOzs7OzsKKzBGMkU7VElCRVRBTiBESUdJVCBIQUxGIEZJVkU7Tm87MDtMOzs7OzkvMjtOOzs7OzsKKzBGMkY7VElCRVRBTiBESUdJVCBIQUxGIFNJWDtObzswO0w7Ozs7MTEvMjtOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7OzsxMy8yO047Ozs7OworMEYzMTtUSUJFVEFOIERJR0lUIEhBTEYgRUlHSFQ7Tm87MDtMOzs7OzE1LzI7Tjs7Ozs7CiswRjMyO1RJQkVUQU4gRElHSVQgSEFMRiBOSU5FO05vOzA7TDs7OzsxNy8yO047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7LTEvMjtOOzs7OzsKKzBGMzQ7VElCRVRBTiBNQVJLIEJTRFVTIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7ZHUgdGE7OzsKKzBGMzU7VElCRVRBTiBNQVJLIE5HQVMgQlpVTkcgTllJIFpMQTtNbjsyMjA7TlNNOzs7OztOO1RJQkVUQU4gSE9OT1JJRklDIFVOREVSIFJJTkc7bmdlIHp1bmcgbnlpIGRhOzs7CiswRjM2O1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztkenUgdGEgc2hpIG1pZyBjaGVuOzs7CiswRjM3O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIFNHT1IgUlRBR1M7TW47MjIwO05TTTs7Ozs7TjtUSUJFVEFOIFVOREVSIFJJTkc7bmdlIHp1bmcgZ29yIHRhOzs7CiswRjM4O1RJQkVUQU4gTUFSSyBDSEUgTUdPO1NvOzA7TDs7Ozs7Tjs7Y2hlIGdvOzs7CiswRjM5O1RJQkVUQU4gTUFSSyBUU0EgLVBIUlU7TW47MjE2O05TTTs7Ozs7TjtUSUJFVEFOIExFTklUSU9OIE1BUks7dHNhIHRydTs7OworMEYzQTtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZT047UHM7MDtPTjs7Ozs7WTs7Z3VnIHRhIHl1bjs7OworMEYzQjtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZQVM7UGU7MDtPTjs7Ozs7WTs7Z3VnIHRhIHllOzs7CiswRjNDO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lPTjtQczswO09OOzs7OztZO1RJQkVUQU4gTEVGVCBCUkFDRTthbmcga2FuZyB5dW47OzsKKzBGM0Q7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWUFTO1BlOzA7T047Ozs7O1k7VElCRVRBTiBSSUdIVCBCUkFDRTthbmcga2FuZyB5ZTs7OworMEYzRTtUSUJFVEFOIFNJR04gWUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7eWFyIHRzZTs7OworMEYzRjtUSUJFVEFOIFNJR04gTUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7bWFyIHRzZTs7OworMEY0MDtUSUJFVEFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MTtUSUJFVEFOIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDI7VElCRVRBTiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDM7VElCRVRBTiBMRVRURVIgR0hBO0xvOzA7TDswRjQyIDBGQjc7Ozs7Tjs7Ozs7CiswRjQ0O1RJQkVUQU4gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NTtUSUJFVEFOIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NjtUSUJFVEFOIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDc7VElCRVRBTiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDk7VElCRVRBTiBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRBO1RJQkVUQU4gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgVEE7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFRIQTs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBEQTs7OzsKKzBGNEQ7VElCRVRBTiBMRVRURVIgRERIQTtMbzswO0w7MEY0QyAwRkI3Ozs7O047Ozs7OworMEY0RTtUSUJFVEFOIExFVFRFUiBOTkE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIE5BOzs7OworMEY0RjtUSUJFVEFOIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MDtUSUJFVEFOIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTE7VElCRVRBTiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTI7VElCRVRBTiBMRVRURVIgREhBO0xvOzA7TDswRjUxIDBGQjc7Ozs7Tjs7Ozs7CiswRjUzO1RJQkVUQU4gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU0O1RJQkVUQU4gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU1O1RJQkVUQU4gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NjtUSUJFVEFOIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NztUSUJFVEFOIExFVFRFUiBCSEE7TG87MDtMOzBGNTYgMEZCNzs7OztOOzs7OzsKKzBGNTg7VElCRVRBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTk7VElCRVRBTiBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVBO1RJQkVUQU4gTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUI7VElCRVRBTiBMRVRURVIgRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVDO1RJQkVUQU4gTEVUVEVSIERaSEE7TG87MDtMOzBGNUIgMEZCNzs7OztOOzs7OzsKKzBGNUQ7VElCRVRBTiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUU7VElCRVRBTiBMRVRURVIgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVGO1RJQkVUQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjYwO1RJQkVUQU4gTEVUVEVSIC1BO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBBQTs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjYzO1RJQkVUQU4gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY0O1RJQkVUQU4gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NTtUSUJFVEFOIExFVFRFUiBTU0E7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFNIQTs7OzsKKzBGNjY7VElCRVRBTiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNjc7VElCRVRBTiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjg7VElCRVRBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEY2OTtUSUJFVEFOIExFVFRFUiBLU1NBO0xvOzA7TDswRjQwIDBGQjU7Ozs7Tjs7Ozs7CiswRjZBO1RJQkVUQU4gTEVUVEVSIEZJWEVELUZPUk0gUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjcxO1RJQkVUQU4gVk9XRUwgU0lHTiBBQTtNbjsxMjk7TlNNOzs7OztOOzs7OzsKKzBGNzI7VElCRVRBTiBWT1dFTCBTSUdOIEk7TW47MTMwO05TTTs7Ozs7Tjs7Ozs7CiswRjczO1RJQkVUQU4gVk9XRUwgU0lHTiBJSTtNbjswO05TTTswRjcxIDBGNzI7Ozs7Tjs7Ozs7CiswRjc0O1RJQkVUQU4gVk9XRUwgU0lHTiBVO01uOzEzMjtOU007Ozs7O047Ozs7OworMEY3NTtUSUJFVEFOIFZPV0VMIFNJR04gVVU7TW47MDtOU007MEY3MSAwRjc0Ozs7O047Ozs7OworMEY3NjtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzBGQjIgMEY4MDs7OztOOzs7OzsKKzBGNzc7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007PGNvbXBhdD4gMEZCMiAwRjgxOzs7O047Ozs7OworMEY3ODtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzBGQjMgMEY4MDs7OztOOzs7OzsKKzBGNzk7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007PGNvbXBhdD4gMEZCMyAwRjgxOzs7O047Ozs7OworMEY3QTtUSUJFVEFOIFZPV0VMIFNJR04gRTtNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0I7VElCRVRBTiBWT1dFTCBTSUdOIEVFO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFJOzs7OworMEY3QztUSUJFVEFOIFZPV0VMIFNJR04gTztNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0Q7VElCRVRBTiBWT1dFTCBTSUdOIE9PO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFVOzs7OworMEY3RTtUSUJFVEFOIFNJR04gUkpFUyBTVSBOR0EgUk87TW47MDtOU007Ozs7O047VElCRVRBTiBBTlVTVkFSQTtqZSBzdSBuZ2Egcm87OzsKKzBGN0Y7VElCRVRBTiBTSUdOIFJOQU0gQkNBRDtNYzswO0w7Ozs7O047VElCRVRBTiBWSVNBUkdBO25hbSBjaGV5Ozs7CiswRjgwO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIFNIT1JUIEk7Ozs7CiswRjgxO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSTtNbjswO05TTTswRjcxIDBGODA7Ozs7Tjs7Ozs7CiswRjgyO1RJQkVUQU4gU0lHTiBOWUkgWkxBIE5BQSBEQTtNbjsyMzA7TlNNOzs7OztOO1RJQkVUQU4gQ0FORFJBQklORFUgV0lUSCBPUk5BTUVOVDtueWkgZGEgbmEgZGE7OzsKKzBGODM7VElCRVRBTiBTSUdOIFNOQSBMREFOO01uOzIzMDtOU007Ozs7O047VElCRVRBTiBDQU5EUkFCSU5EVTtuYW4gZGU7OzsKKzBGODQ7VElCRVRBTiBNQVJLIEhBTEFOVEE7TW47OTtOU007Ozs7O047VElCRVRBTiBWSVJBTUE7Ozs7CiswRjg1O1RJQkVUQU4gTUFSSyBQQUxVVEE7UG87MDtMOzs7OztOO1RJQkVUQU4gQ0hVQ0hFTllJR0U7Ozs7CiswRjg2O1RJQkVUQU4gU0lHTiBMQ0kgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7amkgdGE7OzsKKzBGODc7VElCRVRBTiBTSUdOIFlBTkcgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7eWFuZyB0YTs7OworMEY4ODtUSUJFVEFOIFNJR04gTENFIFRTQSBDQU47TG87MDtMOzs7OztOOztjaGUgdHNhIGNoZW47OzsKKzBGODk7VElCRVRBTiBTSUdOIE1DSFUgQ0FOO0xvOzA7TDs7Ozs7Tjs7Y2h1IGNoZW47OzsKKzBGOEE7VElCRVRBTiBTSUdOIEdSVSBDQU4gUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBjaGVuIGdpbmc7OzsKKzBGOEI7VElCRVRBTiBTSUdOIEdSVSBNRUQgUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBtZSBnaW5nOzs7CiswRjkwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5MztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBO01uOzA7TlNNOzBGOTIgMEZCNzs7OztOOzs7OzsKKzBGOTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5HQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5NztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSkE7TW47MDtOU007Ozs7O047Ozs7OworMEY5OTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTllBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUVEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEREQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlEO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBO01uOzA7TlNNOzBGOUMgMEZCNzs7OztOOzs7OzsKKzBGOUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5OQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkEwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBO01uOzA7TlNNOzBGQTEgMEZCNzs7OztOOzs7OzsKKzBGQTM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCSEE7TW47MDtOU007MEZBNiAwRkI3Ozs7O047Ozs7OworMEZBODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTUE7TW47MDtOU007Ozs7O047Ozs7OworMEZBOTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFNBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRTSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaSEE7TW47MDtOU007MEZBQiAwRkI3Ozs7O047Ozs7OworMEZBRDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFpIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBaQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiAtQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBZQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQjM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLU1NBO01uOzA7TlNNOzBGOTAgMEZCNTs7OztOOzs7OzsKKzBGQkE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gWUE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkU7VElCRVRBTiBLVSBSVSBLSEE7U287MDtMOzs7OztOOztrdXJ1a2E7OzsKKzBGQkY7VElCRVRBTiBLVSBSVSBLSEEgQlpISSBNSUcgQ0FOO1NvOzA7TDs7Ozs7Tjs7a3VydWthIHNoaSBtaWsgY2hlbjs7OworMEZDMDtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIEhFQVZZIEJFQVQ7U287MDtMOzs7OztOOzs7OzsKKzBGQzE7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBMSUdIVCBCRUFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswRkMyO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gQ0FORyBURS1VO1NvOzA7TDs7Ozs7Tjs7Y2hhbmcgdHl1Ozs7CiswRkMzO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gU0JVQiAtQ0hBTDtTbzswO0w7Ozs7O047O2J1YiBjaGV5Ozs7CiswRkM0O1RJQkVUQU4gU1lNQk9MIERSSUwgQlU7U287MDtMOzs7OztOOztkcmlsYnU7OzsKKzBGQzU7VElCRVRBTiBTWU1CT0wgUkRPIFJKRTtTbzswO0w7Ozs7O047O2RvcmplOzs7CiswRkM2O1RJQkVUQU4gU1lNQk9MIFBBRE1BIEdEQU47TW47MjIwO05TTTs7Ozs7Tjs7cGVtYSBkZW47OzsKKzBGQzc7VElCRVRBTiBTWU1CT0wgUkRPIFJKRSBSR1lBIEdSQU07U287MDtMOzs7OztOOztkb3JqZSBneWEgZHJhbTs7OworMEZDODtUSUJFVEFOIFNZTUJPTCBQSFVSIFBBO1NvOzA7TDs7Ozs7Tjs7cGh1cmJhOzs7CiswRkM5O1RJQkVUQU4gU1lNQk9MIE5PUiBCVTtTbzswO0w7Ozs7O047O25vcmJ1Ozs7CiswRkNBO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBOWUlTIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IG55aSBraHlpOzs7CiswRkNCO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBHU1VNIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHN1bSBraHlpOzs7CiswRkNDO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBCWkhJIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHNoaSBraHlpOzs7CiswRkNGO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHU1VNO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBzdW07OzsKKzBGRDA7VElCRVRBTiBNQVJLIEJTS0EtIFNIT0cgR0kgTUdPIFJHWUFOO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvZyBnaSBnbyBneWVuOzs7CiswRkQxO1RJQkVUQU4gTUFSSyBNTllBTSBZSUcgR0kgTUdPIFJHWUFOO1BvOzA7TDs7Ozs7Tjs7bnlhbSB5aWcgZ2kgZ28gZ3llbjs7OworMTAwMDtNWUFOTUFSIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTtNWUFOTUFSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI7TVlBTk1BUiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM7TVlBTk1BUiBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0O01ZQU5NQVIgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNTtNWUFOTUFSIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNjtNWUFOTUFSIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDc7TVlBTk1BUiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg7TVlBTk1BUiBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5O01ZQU5NQVIgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQTtNWUFOTUFSIExFVFRFUiBOTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCO01ZQU5NQVIgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQztNWUFOTUFSIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEO01ZQU5NQVIgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTtNWUFOTUFSIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGO01ZQU5NQVIgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMDtNWUFOTUFSIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMTtNWUFOTUFSIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTI7TVlBTk1BUiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTM7TVlBTk1BUiBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE0O01ZQU5NQVIgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE1O01ZQU5NQVIgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE2O01ZQU5NQVIgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNztNWUFOTUFSIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTAxODtNWUFOTUFSIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTk7TVlBTk1BUiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUE7TVlBTk1BUiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUI7TVlBTk1BUiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUM7TVlBTk1BUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUQ7TVlBTk1BUiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUU7TVlBTk1BUiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUY7TVlBTk1BUiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjA7TVlBTk1BUiBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIxO01ZQU5NQVIgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjM7TVlBTk1BUiBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNDtNWUFOTUFSIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNTtNWUFOTUFSIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI2O01ZQU5NQVIgTEVUVEVSIFVVO0xvOzA7TDsxMDI1IDEwMkU7Ozs7Tjs7Ozs7CisxMDI3O01ZQU5NQVIgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMjk7TVlBTk1BUiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTAyQTtNWUFOTUFSIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMTAyQztNWUFOTUFSIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzEwMkQ7TVlBTk1BUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRTtNWUFOTUFSIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRjtNWUFOTUFSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMwO01ZQU5NQVIgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMxO01ZQU5NQVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDMyO01ZQU5NQVIgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM2O01ZQU5NQVIgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM3O01ZQU5NQVIgU0lHTiBET1QgQkVMT1c7TW47NztOU007Ozs7O047Ozs7OworMTAzODtNWUFOTUFSIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMTAzOTtNWUFOTUFSIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzEwNDA7TVlBTk1BUiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxMDQxO01ZQU5NQVIgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxMDQyO01ZQU5NQVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMDQzO01ZQU5NQVIgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzEwNDQ7TVlBTk1BUiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxMDQ1O01ZQU5NQVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTA0NjtNWUFOTUFSIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTA0NztNWUFOTUFSIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxMDQ4O01ZQU5NQVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEwNDk7TVlBTk1BUiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxMDRBO01ZQU5NQVIgU0lHTiBMSVRUTEUgU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QjtNWUFOTUFSIFNJR04gU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QztNWUFOTUFSIFNZTUJPTCBMT0NBVElWRTtQbzswO0w7Ozs7O047Ozs7OworMTA0RDtNWUFOTUFSIFNZTUJPTCBDT01QTEVURUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEU7TVlBTk1BUiBTWU1CT0wgQUZPUkVNRU5USU9ORUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEY7TVlBTk1BUiBTWU1CT0wgR0VOSVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNTA7TVlBTk1BUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUxO01ZQU5NQVIgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MjtNWUFOTUFSIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTM7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMTA1NDtNWUFOTUFSIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTU7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMTA1NjtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU3O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU4O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMTA1OTtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDA7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDAxOworMTBBMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwMjsKKzEwQTM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDM7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDQ7CisxMEE1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFZJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA1OworMTBBNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwNjsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDc7CisxMEE4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDg7CisxMEE5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA5OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwQTsKKzEwQUI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTUFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMEI7CisxMEFDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE5BUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBDOworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBEOworMTBBRTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwRTsKKzEwQUY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBGOworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxMDsKKzEwQjE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTE7CisxMEIyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDEyOworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDEzOworMTBCNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTQ7CisxMEI1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxNTsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE2OworMTBCNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBRQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxNzsKKzEwQjg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE4OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTk7CisxMEJBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDFBOworMTBCQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxQjsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUM7CisxMEJEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxRDsKKzEwQkU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUU7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxRjsKKzEwQzA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjA7CisxMEMxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjE7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIyOworMTBDMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBXRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIzOworMTBDNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQyNDsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjU7CisxMEQwO0dFT1JHSUFOIExFVFRFUiBBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOOzs7OworMTBEMTtHRU9SR0lBTiBMRVRURVIgQkFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOOzs7OworMTBEMjtHRU9SR0lBTiBMRVRURVIgR0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOOzs7OworMTBEMztHRU9SR0lBTiBMRVRURVIgRE9OO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OOzs7OworMTBENDtHRU9SR0lBTiBMRVRURVIgRU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBFTjs7OzsKKzEwRDU7R0VPUkdJQU4gTEVUVEVSIFZJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFZJTjs7OzsKKzEwRDY7R0VPUkdJQU4gTEVUVEVSIFpFTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpFTjs7OzsKKzEwRDc7R0VPUkdJQU4gTEVUVEVSIFRBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBTjs7OzsKKzEwRDg7R0VPUkdJQU4gTEVUVEVSIElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSU47Ozs7CisxMEQ5O0dFT1JHSUFOIExFVFRFUiBLQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLQU47Ozs7CisxMERBO0dFT1JHSUFOIExFVFRFUiBMQVM7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBMQVM7Ozs7CisxMERCO0dFT1JHSUFOIExFVFRFUiBNQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBNQU47Ozs7CisxMERDO0dFT1JHSUFOIExFVFRFUiBOQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBOQVI7Ozs7CisxMEREO0dFT1JHSUFOIExFVFRFUiBPTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OOzs7OworMTBERTtHRU9SR0lBTiBMRVRURVIgUEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSOzs7OworMTBERjtHRU9SR0lBTiBMRVRURVIgWkhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpIQVI7Ozs7CisxMEUwO0dFT1JHSUFOIExFVFRFUiBSQUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBSQUU7Ozs7CisxMEUxO0dFT1JHSUFOIExFVFRFUiBTQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTQU47Ozs7CisxMEUyO0dFT1JHSUFOIExFVFRFUiBUQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQVI7Ozs7CisxMEUzO0dFT1JHSUFOIExFVFRFUiBVTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOOzs7OworMTBFNDtHRU9SR0lBTiBMRVRURVIgUEhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBIQVI7Ozs7CisxMEU1O0dFT1JHSUFOIExFVFRFUiBLSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0hBUjs7OzsKKzEwRTY7R0VPUkdJQU4gTEVUVEVSIEdIQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOOzs7OworMTBFNztHRU9SR0lBTiBMRVRURVIgUUFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSOzs7OworMTBFODtHRU9SR0lBTiBMRVRURVIgU0hJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNISU47Ozs7CisxMEU5O0dFT1JHSUFOIExFVFRFUiBDSElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hJTjs7OzsKKzEwRUE7R0VPUkdJQU4gTEVUVEVSIENBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENBTjs7OzsKKzEwRUI7R0VPUkdJQU4gTEVUVEVSIEpJTDtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpJTDs7OzsKKzEwRUM7R0VPUkdJQU4gTEVUVEVSIENJTDtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENJTDs7OzsKKzEwRUQ7R0VPUkdJQU4gTEVUVEVSIENIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSOzs7OworMTBFRTtHRU9SR0lBTiBMRVRURVIgWEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOOzs7OworMTBFRjtHRU9SR0lBTiBMRVRURVIgSkhBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpIQU47Ozs7CisxMEYwO0dFT1JHSUFOIExFVFRFUiBIQUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQUU7Ozs7CisxMEYxO0dFT1JHSUFOIExFVFRFUiBIRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFOzs7OworMTBGMjtHRU9SR0lBTiBMRVRURVIgSElFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFOzs7OworMTBGMztHRU9SR0lBTiBMRVRURVIgV0U7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBXRTs7OzsKKzEwRjQ7R0VPUkdJQU4gTEVUVEVSIEhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBUjs7OzsKKzEwRjU7R0VPUkdJQU4gTEVUVEVSIEhPRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhPRTs7OzsKKzEwRjY7R0VPUkdJQU4gTEVUVEVSIEZJO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRkk7Ozs7CisxMEY3O0dFT1JHSUFOIExFVFRFUiBZTjtMbzswO0w7Ozs7O047Ozs7OworMTBGODtHRU9SR0lBTiBMRVRURVIgRUxJRkk7TG87MDtMOzs7OztOOzs7OzsKKzEwRjk7R0VPUkdJQU4gTEVUVEVSIFRVUk5FRCBHQU47TG87MDtMOzs7OztOOzs7OzsKKzEwRkE7R0VPUkdJQU4gTEVUVEVSIEFJTjtMbzswO0w7Ozs7O047Ozs7OworMTBGQjtHRU9SR0lBTiBQQVJBR1JBUEggU0VQQVJBVE9SO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMEZDO01PRElGSUVSIExFVFRFUiBHRU9SR0lBTiBOQVI7TG07MDtMOzxzdXBlcj4gMTBEQzs7OztOOzs7OzsKKzExMDA7SEFOR1VMIENIT1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047O2cgKjs7OworMTEwMTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOztnZyAqOzs7CisxMTAyO0hBTkdVTCBDSE9TRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047O24gKjs7OworMTEwMztIQU5HVUwgQ0hPU0VPTkcgVElLRVVUO0xvOzA7TDs7Ozs7Tjs7ZCAqOzs7CisxMTA0O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1RJS0VVVDtMbzswO0w7Ozs7O047O2RkICo7OzsKKzExMDU7SEFOR1VMIENIT1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7ciAqOzs7CisxMTA2O0hBTkdVTCBDSE9TRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047O20gKjs7OworMTEwNztIQU5HVUwgQ0hPU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOztiICo7OzsKKzExMDg7SEFOR1VMIENIT1NFT05HIFNTQU5HUElFVVA7TG87MDtMOzs7OztOOztiYiAqOzs7CisxMTA5O0hBTkdVTCBDSE9TRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7cyAqOzs7CisxMTBBO0hBTkdVTCBDSE9TRU9ORyBTU0FOR1NJT1M7TG87MDtMOzs7OztOOztzcyAqOzs7CisxMTBCO0hBTkdVTCBDSE9TRU9ORyBJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTEwQztIQU5HVUwgQ0hPU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOztqICo7OzsKKzExMEQ7SEFOR1VMIENIT1NFT05HIFNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOztqaiAqOzs7CisxMTBFO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7YyAqOzs7CisxMTBGO0hBTkdVTCBDSE9TRU9ORyBLSElFVUtIO0xvOzA7TDs7Ozs7Tjs7ayAqOzs7CisxMTEwO0hBTkdVTCBDSE9TRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7dCAqOzs7CisxMTExO0hBTkdVTCBDSE9TRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7cCAqOzs7CisxMTEyO0hBTkdVTCBDSE9TRU9ORyBISUVVSDtMbzswO0w7Ozs7O047O2ggKjs7OworMTExMztIQU5HVUwgQ0hPU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE0O0hBTkdVTCBDSE9TRU9ORyBTU0FOR05JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE1O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMTY7SEFOR1VMIENIT1NFT05HIE5JRVVOLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE3O0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE4O0hBTkdVTCBDSE9TRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTExOTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTExQTtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExMUI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMUM7SEFOR1VMIENIT1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFEO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTk1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFFO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMUY7SEFOR1VMIENIT1NFT05HIFBJRVVQLU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIwO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMjE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMjI7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIzO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTEyNDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyNTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI2O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI3O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEyODtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEyOTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTEyQTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTEyQjtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyQztIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5TU0FOR1BJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJEO0hBTkdVTCBDSE9TRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEyRTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTEyRjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMzA7SEFOR1VMIENIT1NFT05HIFNJT1MtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMzE7SEFOR1VMIENIT1NFT05HIFNJT1MtTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExMzI7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMzM7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVAtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM0O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzNTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1JRVVORztMbzswO0w7Ozs7O047Ozs7OworMTEzNjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEzNztIQU5HVUwgQ0hPU0VPTkcgU0lPUy1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM4O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExMzk7SEFOR1VMIENIT1NFT05HIFNJT1MtVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNCO0hBTkdVTCBDSE9TRU9ORyBTSU9TLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNDO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExM0Q7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNFO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExM0Y7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQwO0hBTkdVTCBDSE9TRU9ORyBQQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQxO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExNDI7SEFOR1VMIENIT1NFT05HIElFVU5HLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTE0MztIQU5HVUwgQ0hPU0VPTkcgSUVVTkctTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExNDQ7SEFOR1VMIENIT1NFT05HIElFVU5HLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ1O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ2O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ3O0hBTkdVTCBDSE9TRU9ORyBTU0FOR0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ4O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0OTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QztIQU5HVUwgQ0hPU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExNEQ7SEFOR1VMIENIT1NFT05HIENJRVVDLUlFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRFO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRGO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTA7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTE7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU1NBTkdDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MjtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUzO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNILUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU0O0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTU7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NjtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTE1NztIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR0hJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU5O0hBTkdVTCBDSE9TRU9ORyBZRU9SSU5ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1RjtIQU5HVUwgQ0hPU0VPTkcgRklMTEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYwO0hBTkdVTCBKVU5HU0VPTkcgRklMTEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYxO0hBTkdVTCBKVU5HU0VPTkcgQTtMbzswO0w7Ozs7O047Ozs7OworMTE2MjtIQU5HVUwgSlVOR1NFT05HIEFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYzO0hBTkdVTCBKVU5HU0VPTkcgWUE7TG87MDtMOzs7OztOOzs7OzsKKzExNjQ7SEFOR1VMIEpVTkdTRU9ORyBZQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjU7SEFOR1VMIEpVTkdTRU9ORyBFTztMbzswO0w7Ozs7O047Ozs7OworMTE2NjtIQU5HVUwgSlVOR1NFT05HIEU7TG87MDtMOzs7OztOOzs7OzsKKzExNjc7SEFOR1VMIEpVTkdTRU9ORyBZRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjg7SEFOR1VMIEpVTkdTRU9ORyBZRTtMbzswO0w7Ozs7O047Ozs7OworMTE2OTtIQU5HVUwgSlVOR1NFT05HIE87TG87MDtMOzs7OztOOzs7OzsKKzExNkE7SEFOR1VMIEpVTkdTRU9ORyBXQTtMbzswO0w7Ozs7O047Ozs7OworMTE2QjtIQU5HVUwgSlVOR1NFT05HIFdBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2QztIQU5HVUwgSlVOR1NFT05HIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZEO0hBTkdVTCBKVU5HU0VPTkcgWU87TG87MDtMOzs7OztOOzs7OzsKKzExNkU7SEFOR1VMIEpVTkdTRU9ORyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZGO0hBTkdVTCBKVU5HU0VPTkcgV0VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcwO0hBTkdVTCBKVU5HU0VPTkcgV0U7TG87MDtMOzs7OztOOzs7OzsKKzExNzE7SEFOR1VMIEpVTkdTRU9ORyBXSTtMbzswO0w7Ozs7O047Ozs7OworMTE3MjtIQU5HVUwgSlVOR1NFT05HIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTczO0hBTkdVTCBKVU5HU0VPTkcgRVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzQ7SEFOR1VMIEpVTkdTRU9ORyBZSTtMbzswO0w7Ozs7O047Ozs7OworMTE3NTtIQU5HVUwgSlVOR1NFT05HIEk7TG87MDtMOzs7OztOOzs7OzsKKzExNzY7SEFOR1VMIEpVTkdTRU9ORyBBLU87TG87MDtMOzs7OztOOzs7OzsKKzExNzc7SEFOR1VMIEpVTkdTRU9ORyBBLVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzg7SEFOR1VMIEpVTkdTRU9ORyBZQS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc5O0hBTkdVTCBKVU5HU0VPTkcgWUEtWU87TG87MDtMOzs7OztOOzs7OzsKKzExN0E7SEFOR1VMIEpVTkdTRU9ORyBFTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdCO0hBTkdVTCBKVU5HU0VPTkcgRU8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE3QztIQU5HVUwgSlVOR1NFT05HIEVPLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdEO0hBTkdVTCBKVU5HU0VPTkcgWUVPLU87TG87MDtMOzs7OztOOzs7OzsKKzExN0U7SEFOR1VMIEpVTkdTRU9ORyBZRU8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE3RjtIQU5HVUwgSlVOR1NFT05HIE8tRU87TG87MDtMOzs7OztOOzs7OzsKKzExODA7SEFOR1VMIEpVTkdTRU9ORyBPLUU7TG87MDtMOzs7OztOOzs7OzsKKzExODE7SEFOR1VMIEpVTkdTRU9ORyBPLVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgyO0hBTkdVTCBKVU5HU0VPTkcgTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgzO0hBTkdVTCBKVU5HU0VPTkcgTy1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg0O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUE7TG87MDtMOzs7OztOOzs7OzsKKzExODU7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQUU7TG87MDtMOzs7OztOOzs7OzsKKzExODY7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZRU87TG87MDtMOzs7OztOOzs7OzsKKzExODc7SEFOR1VMIEpVTkdTRU9ORyBZTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg4O0hBTkdVTCBKVU5HU0VPTkcgWU8tSTtMbzswO0w7Ozs7O047Ozs7OworMTE4OTtIQU5HVUwgSlVOR1NFT05HIFUtQTtMbzswO0w7Ozs7O047Ozs7OworMTE4QTtIQU5HVUwgSlVOR1NFT05HIFUtQUU7TG87MDtMOzs7OztOOzs7OzsKKzExOEI7SEFOR1VMIEpVTkdTRU9ORyBVLUVPLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThDO0hBTkdVTCBKVU5HU0VPTkcgVS1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE4RDtIQU5HVUwgSlVOR1NFT05HIFUtVTtMbzswO0w7Ozs7O047Ozs7OworMTE4RTtIQU5HVUwgSlVOR1NFT05HIFlVLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOEY7SEFOR1VMIEpVTkdTRU9ORyBZVS1FTztMbzswO0w7Ozs7O047Ozs7OworMTE5MDtIQU5HVUwgSlVOR1NFT05HIFlVLUU7TG87MDtMOzs7OztOOzs7OzsKKzExOTE7SEFOR1VMIEpVTkdTRU9ORyBZVS1ZRU87TG87MDtMOzs7OztOOzs7OzsKKzExOTI7SEFOR1VMIEpVTkdTRU9ORyBZVS1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE5MztIQU5HVUwgSlVOR1NFT05HIFlVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTQ7SEFOR1VMIEpVTkdTRU9ORyBZVS1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk1O0hBTkdVTCBKVU5HU0VPTkcgRVUtVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NjtIQU5HVUwgSlVOR1NFT05HIEVVLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk3O0hBTkdVTCBKVU5HU0VPTkcgWUktVTtMbzswO0w7Ozs7O047Ozs7OworMTE5ODtIQU5HVUwgSlVOR1NFT05HIEktQTtMbzswO0w7Ozs7O047Ozs7OworMTE5OTtIQU5HVUwgSlVOR1NFT05HIEktWUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUE7SEFOR1VMIEpVTkdTRU9ORyBJLU87TG87MDtMOzs7OztOOzs7OzsKKzExOUI7SEFOR1VMIEpVTkdTRU9ORyBJLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOUM7SEFOR1VMIEpVTkdTRU9ORyBJLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlEO0hBTkdVTCBKVU5HU0VPTkcgSS1BUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlGO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtRU87TG87MDtMOzs7OztOOzs7OzsKKzExQTA7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUExO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtSTtMbzswO0w7Ozs7O047Ozs7OworMTFBMjtIQU5HVUwgSlVOR1NFT05HIFNTQU5HQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExQTg7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0s7TG87MDtMOzs7OztOOztnICo7OzsKKzExQTk7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR0tJWUVPSztMbzswO0w7Ozs7O047O2dnICo7OzsKKzExQUE7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUztMbzswO0w7Ozs7O047O2dzICo7OzsKKzExQUI7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047O24gKjs7OworMTFBQztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7bmogKjs7OworMTFBRDtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7bmggKjs7OworMTFBRTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047O2QgKjs7OworMTFBRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7bCAqOzs7CisxMUIwO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7bGcgKjs7OworMTFCMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7bG0gKjs7OworMTFCMjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7bGIgKjs7OworMTFCMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNJT1M7TG87MDtMOzs7OztOOztscyAqOzs7CisxMUI0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVEhJRVVUSDtMbzswO0w7Ozs7O047O2x0ICo7OzsKKzExQjU7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7bHAgKjs7OworMTFCNjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7bGggKjs7OworMTFCNztIQU5HVUwgSk9OR1NFT05HIE1JRVVNO0xvOzA7TDs7Ozs7Tjs7bSAqOzs7CisxMUI4O0hBTkdVTCBKT05HU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOztiICo7OzsKKzExQjk7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7YnMgKjs7OworMTFCQTtIQU5HVUwgSk9OR1NFT05HIFNJT1M7TG87MDtMOzs7OztOOztzICo7OzsKKzExQkI7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR1NJT1M7TG87MDtMOzs7OztOOztzcyAqOzs7CisxMUJDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOztuZyAqOzs7CisxMUJEO0hBTkdVTCBKT05HU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOztqICo7OzsKKzExQkU7SEFOR1VMIEpPTkdTRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7YyAqOzs7CisxMUJGO0hBTkdVTCBKT05HU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047O2sgKjs7OworMTFDMDtIQU5HVUwgSk9OR1NFT05HIFRISUVVVEg7TG87MDtMOzs7OztOOzt0ICo7OzsKKzExQzE7SEFOR1VMIEpPTkdTRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7cCAqOzs7CisxMUMyO0hBTkdVTCBKT05HU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOztoICo7OzsKKzExQzM7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExQzQ7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExQzU7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExQzY7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQzc7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM4O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDOTtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExQ0E7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNCO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNDO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0lZRU9LLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQ0Q7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFDRTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFDRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFEMDtIQU5HVUwgSk9OR1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRDE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRDI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQzO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVAtU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFENDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFENjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFENztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDg7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ5O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExREE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExREI7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFEQztIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUREO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFERTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFERjtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRTA7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUxO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRTI7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTk1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUzO0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRTQ7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU1O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRTY7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU3O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRTg7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFFOTtIQU5HVUwgSk9OR1NFT05HIFNJT1MtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRUE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVCO0hBTkdVTCBKT05HU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFFQztIQU5HVUwgSk9OR1NFT05HIElFVU5HLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFRDtIQU5HVUwgSk9OR1NFT05HIElFVU5HLVNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVFO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTFFRjtIQU5HVUwgSk9OR1NFT05HIElFVU5HLUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExRjA7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTFGMTtIQU5HVUwgSk9OR1NFT05HIFlFU0lFVU5HLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRjI7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYzO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFGNDtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTFGNTtIQU5HVUwgSk9OR1NFT05HIEhJRVVILU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY2O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRjc7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTFGODtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY5O0hBTkdVTCBKT05HU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzEyMDA7RVRISU9QSUMgU1lMTEFCTEUgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDE7RVRISU9QSUMgU1lMTEFCTEUgSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI7RVRISU9QSUMgU1lMTEFCTEUgSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMDM7RVRISU9QSUMgU1lMTEFCTEUgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0O0VUSElPUElDIFNZTExBQkxFIEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwNTtFVEhJT1BJQyBTWUxMQUJMRSBIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwNjtFVEhJT1BJQyBTWUxMQUJMRSBITztMbzswO0w7Ozs7O047Ozs7OworMTIwNztFVEhJT1BJQyBTWUxMQUJMRSBIT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg7RVRISU9QSUMgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk7RVRISU9QSUMgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE7RVRISU9QSUMgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI7RVRISU9QSUMgU1lMTEFCTEUgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDO0VUSElPUElDIFNZTExBQkxFIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDtFVEhJT1BJQyBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTtFVEhJT1BJQyBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTIwRjtFVEhJT1BJQyBTWUxMQUJMRSBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA7RVRISU9QSUMgU1lMTEFCTEUgSEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExO0VUSElPUElDIFNZTExBQkxFIEhIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMjtFVEhJT1BJQyBTWUxMQUJMRSBISEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM7RVRISU9QSUMgU1lMTEFCTEUgSEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDtFVEhJT1BJQyBTWUxMQUJMRSBISEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1O0VUSElPUElDIFNZTExBQkxFIEhIRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjtFVEhJT1BJQyBTWUxMQUJMRSBISE87TG87MDtMOzs7OztOOzs7OzsKKzEyMTc7RVRISU9QSUMgU1lMTEFCTEUgSEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTIxODtFVEhJT1BJQyBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTtFVEhJT1BJQyBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTtFVEhJT1BJQyBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjtFVEhJT1BJQyBTWUxMQUJMRSBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM7RVRISU9QSUMgU1lMTEFCTEUgTUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEO0VUSElPUElDIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFO0VUSElPUElDIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGO0VUSElPUElDIFNZTExBQkxFIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDtFVEhJT1BJQyBTWUxMQUJMRSBTWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE7RVRISU9QSUMgU1lMTEFCTEUgU1pVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyO0VUSElPUElDIFNZTExBQkxFIFNaSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMztFVEhJT1BJQyBTWUxMQUJMRSBTWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0O0VUSElPUElDIFNZTExBQkxFIFNaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU7RVRISU9QSUMgU1lMTEFCTEUgU1pFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2O0VUSElPUElDIFNZTExBQkxFIFNaTztMbzswO0w7Ozs7O047Ozs7OworMTIyNztFVEhJT1BJQyBTWUxMQUJMRSBTWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4O0VUSElPUElDIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5O0VUSElPUElDIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBO0VUSElPUElDIFNZTExBQkxFIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCO0VUSElPUElDIFNZTExBQkxFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQztFVEhJT1BJQyBTWUxMQUJMRSBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ7RVRISU9QSUMgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU7RVRISU9QSUMgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKKzEyMkY7RVRISU9QSUMgU1lMTEFCTEUgUldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwO0VUSElPUElDIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxO0VUSElPUElDIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyO0VUSElPUElDIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzO0VUSElPUElDIFNZTExBQkxFIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDtFVEhJT1BJQyBTWUxMQUJMRSBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU7RVRISU9QSUMgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY7RVRISU9QSUMgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKKzEyMzc7RVRISU9QSUMgU1lMTEFCTEUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM4O0VUSElPUElDIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzOTtFVEhJT1BJQyBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0E7RVRISU9QSUMgU1lMTEFCTEUgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNCO0VUSElPUElDIFNZTExBQkxFIFNIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyM0M7RVRISU9QSUMgU1lMTEFCTEUgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTIzRDtFVEhJT1BJQyBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0U7RVRISU9QSUMgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNGO0VUSElPUElDIFNZTExBQkxFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDA7RVRISU9QSUMgU1lMTEFCTEUgUUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNDE7RVRISU9QSUMgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDI7RVRISU9QSUMgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKKzEyNDM7RVRISU9QSUMgU1lMTEFCTEUgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ0O0VUSElPUElDIFNZTExBQkxFIFFFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NTtFVEhJT1BJQyBTWUxMQUJMRSBRRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NjtFVEhJT1BJQyBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworMTI0NztFVEhJT1BJQyBTWUxMQUJMRSBRT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDg7RVRISU9QSUMgU1lMTEFCTEUgUVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRBO0VUSElPUElDIFNZTExBQkxFIFFXSTtMbzswO0w7Ozs7O047Ozs7OworMTI0QjtFVEhJT1BJQyBTWUxMQUJMRSBRV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRDO0VUSElPUElDIFNZTExBQkxFIFFXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNEQ7RVRISU9QSUMgU1lMTEFCTEUgUVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUwO0VUSElPUElDIFNZTExBQkxFIFFIQTtMbzswO0w7Ozs7O047Ozs7OworMTI1MTtFVEhJT1BJQyBTWUxMQUJMRSBRSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTI7RVRISU9QSUMgU1lMTEFCTEUgUUhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUzO0VUSElPUElDIFNZTExBQkxFIFFIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNTQ7RVRISU9QSUMgU1lMTEFCTEUgUUhFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1NTtFVEhJT1BJQyBTWUxMQUJMRSBRSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTY7RVRISU9QSUMgU1lMTEFCTEUgUUhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU4O0VUSElPUElDIFNZTExBQkxFIFFIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNUE7RVRISU9QSUMgU1lMTEFCTEUgUUhXSTtMbzswO0w7Ozs7O047Ozs7OworMTI1QjtFVEhJT1BJQyBTWUxMQUJMRSBRSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI1QztFVEhJT1BJQyBTWUxMQUJMRSBRSFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1RDtFVEhJT1BJQyBTWUxMQUJMRSBRSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYwO0VUSElPUElDIFNZTExBQkxFIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYxO0VUSElPUElDIFNZTExBQkxFIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYyO0VUSElPUElDIFNZTExBQkxFIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYzO0VUSElPUElDIFNZTExBQkxFIEJBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2NDtFVEhJT1BJQyBTWUxMQUJMRSBCRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjU7RVRISU9QSUMgU1lMTEFCTEUgQkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjY7RVRISU9QSUMgU1lMTEFCTEUgQk87TG87MDtMOzs7OztOOzs7OzsKKzEyNjc7RVRISU9QSUMgU1lMTEFCTEUgQldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY4O0VUSElPUElDIFNZTExBQkxFIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY5O0VUSElPUElDIFNZTExBQkxFIFZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZBO0VUSElPUElDIFNZTExBQkxFIFZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZCO0VUSElPUElDIFNZTExBQkxFIFZBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2QztFVEhJT1BJQyBTWUxMQUJMRSBWRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkQ7RVRISU9QSUMgU1lMTEFCTEUgVkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkU7RVRISU9QSUMgU1lMTEFCTEUgVk87TG87MDtMOzs7OztOOzs7OzsKKzEyNkY7RVRISU9QSUMgU1lMTEFCTEUgVldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcwO0VUSElPUElDIFNZTExBQkxFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcxO0VUSElPUElDIFNZTExBQkxFIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcyO0VUSElPUElDIFNZTExBQkxFIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjczO0VUSElPUElDIFNZTExBQkxFIFRBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3NDtFVEhJT1BJQyBTWUxMQUJMRSBURUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzU7RVRISU9QSUMgU1lMTEFCTEUgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzY7RVRISU9QSUMgU1lMTEFCTEUgVE87TG87MDtMOzs7OztOOzs7OzsKKzEyNzc7RVRISU9QSUMgU1lMTEFCTEUgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc4O0VUSElPUElDIFNZTExBQkxFIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc5O0VUSElPUElDIFNZTExBQkxFIENVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdBO0VUSElPUElDIFNZTExBQkxFIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdCO0VUSElPUElDIFNZTExBQkxFIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3QztFVEhJT1BJQyBTWUxMQUJMRSBDRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyN0Q7RVRISU9QSUMgU1lMTEFCTEUgQ0U7TG87MDtMOzs7OztOOzs7OzsKKzEyN0U7RVRISU9QSUMgU1lMTEFCTEUgQ087TG87MDtMOzs7OztOOzs7OzsKKzEyN0Y7RVRISU9QSUMgU1lMTEFCTEUgQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgwO0VUSElPUElDIFNZTExBQkxFIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgxO0VUSElPUElDIFNZTExBQkxFIFhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgyO0VUSElPUElDIFNZTExBQkxFIFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgzO0VUSElPUElDIFNZTExBQkxFIFhBQTtMbzswO0w7Ozs7O047Ozs7OworMTI4NDtFVEhJT1BJQyBTWUxMQUJMRSBYRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyODU7RVRISU9QSUMgU1lMTEFCTEUgWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyODY7RVRISU9QSUMgU1lMTEFCTEUgWE87TG87MDtMOzs7OztOOzs7OzsKKzEyODc7RVRISU9QSUMgU1lMTEFCTEUgWE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg4O0VUSElPUElDIFNZTExBQkxFIFhXQTtMbzswO0w7Ozs7O047Ozs7OworMTI4QTtFVEhJT1BJQyBTWUxMQUJMRSBYV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyOEI7RVRISU9QSUMgU1lMTEFCTEUgWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI4QztFVEhJT1BJQyBTWUxMQUJMRSBYV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhEO0VUSElPUElDIFNZTExBQkxFIFhXRTtMbzswO0w7Ozs7O047Ozs7OworMTI5MDtFVEhJT1BJQyBTWUxMQUJMRSBOQTtMbzswO0w7Ozs7O047Ozs7OworMTI5MTtFVEhJT1BJQyBTWUxMQUJMRSBOVTtMbzswO0w7Ozs7O047Ozs7OworMTI5MjtFVEhJT1BJQyBTWUxMQUJMRSBOSTtMbzswO0w7Ozs7O047Ozs7OworMTI5MztFVEhJT1BJQyBTWUxMQUJMRSBOQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTQ7RVRISU9QSUMgU1lMTEFCTEUgTkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk1O0VUSElPUElDIFNZTExBQkxFIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk2O0VUSElPUElDIFNZTExBQkxFIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk3O0VUSElPUElDIFNZTExBQkxFIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTI5ODtFVEhJT1BJQyBTWUxMQUJMRSBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTk7RVRISU9QSUMgU1lMTEFCTEUgTllVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlBO0VUSElPUElDIFNZTExBQkxFIE5ZSTtMbzswO0w7Ozs7O047Ozs7OworMTI5QjtFVEhJT1BJQyBTWUxMQUJMRSBOWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlDO0VUSElPUElDIFNZTExBQkxFIE5ZRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyOUQ7RVRISU9QSUMgU1lMTEFCTEUgTllFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlFO0VUSElPUElDIFNZTExBQkxFIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMTI5RjtFVEhJT1BJQyBTWUxMQUJMRSBOWVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEwO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgQTtMbzswO0w7Ozs7O047Ozs7OworMTJBMTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTI7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEzO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQTQ7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBFRTtMbzswO0w7Ozs7O047Ozs7OworMTJBNTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTY7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE3O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQTg7RVRISU9QSUMgU1lMTEFCTEUgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQTk7RVRISU9QSUMgU1lMTEFCTEUgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEyQUE7RVRISU9QSUMgU1lMTEFCTEUgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQUI7RVRISU9QSUMgU1lMTEFCTEUgS0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFDO0VUSElPUElDIFNZTExBQkxFIEtFRTtMbzswO0w7Ozs7O047Ozs7OworMTJBRDtFVEhJT1BJQyBTWUxMQUJMRSBLRTtMbzswO0w7Ozs7O047Ozs7OworMTJBRTtFVEhJT1BJQyBTWUxMQUJMRSBLTztMbzswO0w7Ozs7O047Ozs7OworMTJBRjtFVEhJT1BJQyBTWUxMQUJMRSBLT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQjA7RVRISU9QSUMgU1lMTEFCTEUgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIyO0VUSElPUElDIFNZTExBQkxFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTJCMztFVEhJT1BJQyBTWUxMQUJMRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI0O0VUSElPUElDIFNZTExBQkxFIEtXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQjU7RVRISU9QSUMgU1lMTEFCTEUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI4O0VUSElPUElDIFNZTExBQkxFIEtYQTtMbzswO0w7Ozs7O047Ozs7OworMTJCOTtFVEhJT1BJQyBTWUxMQUJMRSBLWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkE7RVRISU9QSUMgU1lMTEFCTEUgS1hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJCO0VUSElPUElDIFNZTExBQkxFIEtYQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQkM7RVRISU9QSUMgU1lMTEFCTEUgS1hFRTtMbzswO0w7Ozs7O047Ozs7OworMTJCRDtFVEhJT1BJQyBTWUxMQUJMRSBLWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkU7RVRISU9QSUMgU1lMTEFCTEUgS1hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMwO0VUSElPUElDIFNZTExBQkxFIEtYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQzI7RVRISU9QSUMgU1lMTEFCTEUgS1hXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDMztFVEhJT1BJQyBTWUxMQUJMRSBLWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDNDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTJDNTtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM4O0VUSElPUElDIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM5O0VUSElPUElDIFNZTExBQkxFIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNBO0VUSElPUElDIFNZTExBQkxFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNCO0VUSElPUElDIFNZTExBQkxFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDQztFVEhJT1BJQyBTWUxMQUJMRSBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Q7RVRISU9QSUMgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0U7RVRISU9QSUMgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Y7RVRISU9QSUMgU1lMTEFCTEUgV09BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQwO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQTtMbzswO0w7Ozs7O047Ozs7OworMTJEMTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDI7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQzO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDQ7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBFRTtMbzswO0w7Ozs7O047Ozs7OworMTJENTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDY7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ4O0VUSElPUElDIFNZTExBQkxFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ5O0VUSElPUElDIFNZTExBQkxFIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRBO0VUSElPUElDIFNZTExBQkxFIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRCO0VUSElPUElDIFNZTExBQkxFIFpBQTtMbzswO0w7Ozs7O047Ozs7OworMTJEQztFVEhJT1BJQyBTWUxMQUJMRSBaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyREQ7RVRISU9QSUMgU1lMTEFCTEUgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEyREU7RVRISU9QSUMgU1lMTEFCTEUgWk87TG87MDtMOzs7OztOOzs7OzsKKzEyREY7RVRISU9QSUMgU1lMTEFCTEUgWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUwO0VUSElPUElDIFNZTExBQkxFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTJFMTtFVEhJT1BJQyBTWUxMQUJMRSBaSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTI7RVRISU9QSUMgU1lMTEFCTEUgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUzO0VUSElPUElDIFNZTExBQkxFIFpIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTQ7RVRISU9QSUMgU1lMTEFCTEUgWkhFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFNTtFVEhJT1BJQyBTWUxMQUJMRSBaSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTY7RVRISU9QSUMgU1lMTEFCTEUgWkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU3O0VUSElPUElDIFNZTExBQkxFIFpIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRTg7RVRISU9QSUMgU1lMTEFCTEUgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTk7RVRISU9QSUMgU1lMTEFCTEUgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEyRUE7RVRISU9QSUMgU1lMTEFCTEUgWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyRUI7RVRISU9QSUMgU1lMTEFCTEUgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVDO0VUSElPUElDIFNZTExBQkxFIFlFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRDtFVEhJT1BJQyBTWUxMQUJMRSBZRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRTtFVEhJT1BJQyBTWUxMQUJMRSBZTztMbzswO0w7Ozs7O047Ozs7OworMTJFRjtFVEhJT1BJQyBTWUxMQUJMRSBZT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRjA7RVRISU9QSUMgU1lMTEFCTEUgREE7TG87MDtMOzs7OztOOzs7OzsKKzEyRjE7RVRISU9QSUMgU1lMTEFCTEUgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjI7RVRISU9QSUMgU1lMTEFCTEUgREk7TG87MDtMOzs7OztOOzs7OzsKKzEyRjM7RVRISU9QSUMgU1lMTEFCTEUgREFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY0O0VUSElPUElDIFNZTExBQkxFIERFRTtMbzswO0w7Ozs7O047Ozs7OworMTJGNTtFVEhJT1BJQyBTWUxMQUJMRSBERTtMbzswO0w7Ozs7O047Ozs7OworMTJGNjtFVEhJT1BJQyBTWUxMQUJMRSBETztMbzswO0w7Ozs7O047Ozs7OworMTJGNztFVEhJT1BJQyBTWUxMQUJMRSBEV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRjg7RVRISU9QSUMgU1lMTEFCTEUgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY5O0VUSElPUElDIFNZTExBQkxFIEREVTtMbzswO0w7Ozs7O047Ozs7OworMTJGQTtFVEhJT1BJQyBTWUxMQUJMRSBEREk7TG87MDtMOzs7OztOOzs7OzsKKzEyRkI7RVRISU9QSUMgU1lMTEFCTEUgRERBQTtMbzswO0w7Ozs7O047Ozs7OworMTJGQztFVEhJT1BJQyBTWUxMQUJMRSBEREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZEO0VUSElPUElDIFNZTExBQkxFIERERTtMbzswO0w7Ozs7O047Ozs7OworMTJGRTtFVEhJT1BJQyBTWUxMQUJMRSBERE87TG87MDtMOzs7OztOOzs7OzsKKzEyRkY7RVRISU9QSUMgU1lMTEFCTEUgRERXQTtMbzswO0w7Ozs7O047Ozs7OworMTMwMDtFVEhJT1BJQyBTWUxMQUJMRSBKQTtMbzswO0w7Ozs7O047Ozs7OworMTMwMTtFVEhJT1BJQyBTWUxMQUJMRSBKVTtMbzswO0w7Ozs7O047Ozs7OworMTMwMjtFVEhJT1BJQyBTWUxMQUJMRSBKSTtMbzswO0w7Ozs7O047Ozs7OworMTMwMztFVEhJT1BJQyBTWUxMQUJMRSBKQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMDQ7RVRISU9QSUMgU1lMTEFCTEUgSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA1O0VUSElPUElDIFNZTExBQkxFIEpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA2O0VUSElPUElDIFNZTExBQkxFIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA3O0VUSElPUElDIFNZTExBQkxFIEpXQTtMbzswO0w7Ozs7O047Ozs7OworMTMwODtFVEhJT1BJQyBTWUxMQUJMRSBHQTtMbzswO0w7Ozs7O047Ozs7OworMTMwOTtFVEhJT1BJQyBTWUxMQUJMRSBHVTtMbzswO0w7Ozs7O047Ozs7OworMTMwQTtFVEhJT1BJQyBTWUxMQUJMRSBHSTtMbzswO0w7Ozs7O047Ozs7OworMTMwQjtFVEhJT1BJQyBTWUxMQUJMRSBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMEM7RVRISU9QSUMgU1lMTEFCTEUgR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBEO0VUSElPUElDIFNZTExBQkxFIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBFO0VUSElPUElDIFNZTExBQkxFIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBGO0VUSElPUElDIFNZTExBQkxFIEdPQTtMbzswO0w7Ozs7O047Ozs7OworMTMxMDtFVEhJT1BJQyBTWUxMQUJMRSBHV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMTI7RVRISU9QSUMgU1lMTEFCTEUgR1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEzO0VUSElPUElDIFNZTExBQkxFIEdXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMTQ7RVRISU9QSUMgU1lMTEFCTEUgR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxNTtFVEhJT1BJQyBTWUxMQUJMRSBHV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMTg7RVRISU9QSUMgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE5O0VUSElPUElDIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworMTMxQTtFVEhJT1BJQyBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMUI7RVRISU9QSUMgU1lMTEFCTEUgR0dBQTtMbzswO0w7Ozs7O047Ozs7OworMTMxQztFVEhJT1BJQyBTWUxMQUJMRSBHR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFEO0VUSElPUElDIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRTtFVEhJT1BJQyBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKKzEzMUY7RVRISU9QSUMgU1lMTEFCTEUgR0dXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjA7RVRISU9QSUMgU1lMTEFCTEUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIxO0VUSElPUElDIFNZTExBQkxFIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyMjtFVEhJT1BJQyBTWUxMQUJMRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMjM7RVRISU9QSUMgU1lMTEFCTEUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyNDtFVEhJT1BJQyBTWUxMQUJMRSBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI1O0VUSElPUElDIFNZTExBQkxFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNjtFVEhJT1BJQyBTWUxMQUJMRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMjc7RVRISU9QSUMgU1lMTEFCTEUgVEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTMyODtFVEhJT1BJQyBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjk7RVRISU9QSUMgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJBO0VUSElPUElDIFNZTExBQkxFIENISTtMbzswO0w7Ozs7O047Ozs7OworMTMyQjtFVEhJT1BJQyBTWUxMQUJMRSBDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJDO0VUSElPUElDIFNZTExBQkxFIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMkQ7RVRISU9QSUMgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJFO0VUSElPUElDIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworMTMyRjtFVEhJT1BJQyBTWUxMQUJMRSBDSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMwO0VUSElPUElDIFNZTExBQkxFIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMTtFVEhJT1BJQyBTWUxMQUJMRSBQSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzI7RVRISU9QSUMgU1lMTEFCTEUgUEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMzO0VUSElPUElDIFNZTExBQkxFIFBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzQ7RVRISU9QSUMgU1lMTEFCTEUgUEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzNTtFVEhJT1BJQyBTWUxMQUJMRSBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzY7RVRISU9QSUMgU1lMTEFCTEUgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM3O0VUSElPUElDIFNZTExBQkxFIFBIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMzg7RVRISU9QSUMgU1lMTEFCTEUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM5O0VUSElPUElDIFNZTExBQkxFIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTMzQTtFVEhJT1BJQyBTWUxMQUJMRSBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzM0I7RVRISU9QSUMgU1lMTEFCTEUgVFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTMzQztFVEhJT1BJQyBTWUxMQUJMRSBUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNEO0VUSElPUElDIFNZTExBQkxFIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRTtFVEhJT1BJQyBTWUxMQUJMRSBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzM0Y7RVRISU9QSUMgU1lMTEFCTEUgVFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTM0MDtFVEhJT1BJQyBTWUxMQUJMRSBUWkE7TG87MDtMOzs7OztOOzs7OzsKKzEzNDE7RVRISU9QSUMgU1lMTEFCTEUgVFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQyO0VUSElPUElDIFNZTExBQkxFIFRaSTtMbzswO0w7Ozs7O047Ozs7OworMTM0MztFVEhJT1BJQyBTWUxMQUJMRSBUWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ0O0VUSElPUElDIFNZTExBQkxFIFRaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNDU7RVRISU9QSUMgU1lMTEFCTEUgVFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ2O0VUSElPUElDIFNZTExBQkxFIFRaTztMbzswO0w7Ozs7O047Ozs7OworMTM0NztFVEhJT1BJQyBTWUxMQUJMRSBUWk9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ4O0VUSElPUElDIFNZTExBQkxFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ5O0VUSElPUElDIFNZTExBQkxFIEZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRBO0VUSElPUElDIFNZTExBQkxFIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRCO0VUSElPUElDIFNZTExBQkxFIEZBQTtMbzswO0w7Ozs7O047Ozs7OworMTM0QztFVEhJT1BJQyBTWUxMQUJMRSBGRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNEQ7RVRISU9QSUMgU1lMTEFCTEUgRkU7TG87MDtMOzs7OztOOzs7OzsKKzEzNEU7RVRISU9QSUMgU1lMTEFCTEUgRk87TG87MDtMOzs7OztOOzs7OzsKKzEzNEY7RVRISU9QSUMgU1lMTEFCTEUgRldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUwO0VUSElPUElDIFNZTExBQkxFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUxO0VUSElPUElDIFNZTExBQkxFIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUyO0VUSElPUElDIFNZTExBQkxFIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUzO0VUSElPUElDIFNZTExBQkxFIFBBQTtMbzswO0w7Ozs7O047Ozs7OworMTM1NDtFVEhJT1BJQyBTWUxMQUJMRSBQRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNTU7RVRISU9QSUMgU1lMTEFCTEUgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEzNTY7RVRISU9QSUMgU1lMTEFCTEUgUE87TG87MDtMOzs7OztOOzs7OzsKKzEzNTc7RVRISU9QSUMgU1lMTEFCTEUgUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU4O0VUSElPUElDIFNZTExBQkxFIFJZQTtMbzswO0w7Ozs7O047Ozs7OworMTM1OTtFVEhJT1BJQyBTWUxMQUJMRSBNWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNUE7RVRISU9QSUMgU1lMTEFCTEUgRllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzVGO0VUSElPUElDIENPTUJJTklORyBHRU1JTkFUSU9OIE1BUks7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxMzYwO0VUSElPUElDIFNFQ1RJT04gTUFSSztTbzswO0w7Ozs7O047Ozs7OworMTM2MTtFVEhJT1BJQyBXT1JEU1BBQ0U7UG87MDtMOzs7OztOOzs7OzsKKzEzNjI7RVRISU9QSUMgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYzO0VUSElPUElDIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY0O0VUSElPUElDIFNFTUlDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NTtFVEhJT1BJQyBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NjtFVEhJT1BJQyBQUkVGQUNFIENPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY3O0VUSElPUElDIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzEzNjg7RVRISU9QSUMgUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTM2OTtFVEhJT1BJQyBESUdJVCBPTkU7Tm87MDtMOzs7MTsxO047Ozs7OworMTM2QTtFVEhJT1BJQyBESUdJVCBUV087Tm87MDtMOzs7MjsyO047Ozs7OworMTM2QjtFVEhJT1BJQyBESUdJVCBUSFJFRTtObzswO0w7OzszOzM7Tjs7Ozs7CisxMzZDO0VUSElPUElDIERJR0lUIEZPVVI7Tm87MDtMOzs7NDs0O047Ozs7OworMTM2RDtFVEhJT1BJQyBESUdJVCBGSVZFO05vOzA7TDs7OzU7NTtOOzs7OzsKKzEzNkU7RVRISU9QSUMgRElHSVQgU0lYO05vOzA7TDs7OzY7NjtOOzs7OzsKKzEzNkY7RVRISU9QSUMgRElHSVQgU0VWRU47Tm87MDtMOzs7Nzs3O047Ozs7OworMTM3MDtFVEhJT1BJQyBESUdJVCBFSUdIVDtObzswO0w7Ozs4Ozg7Tjs7Ozs7CisxMzcxO0VUSElPUElDIERJR0lUIE5JTkU7Tm87MDtMOzs7OTs5O047Ozs7OworMTM3MjtFVEhJT1BJQyBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEzNzM7RVRISU9QSUMgTlVNQkVSIFRXRU5UWTtObzswO0w7Ozs7MjA7Tjs7Ozs7CisxMzc0O0VUSElPUElDIE5VTUJFUiBUSElSVFk7Tm87MDtMOzs7OzMwO047Ozs7OworMTM3NTtFVEhJT1BJQyBOVU1CRVIgRk9SVFk7Tm87MDtMOzs7OzQwO047Ozs7OworMTM3NjtFVEhJT1BJQyBOVU1CRVIgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTM3NztFVEhJT1BJQyBOVU1CRVIgU0lYVFk7Tm87MDtMOzs7OzYwO047Ozs7OworMTM3ODtFVEhJT1BJQyBOVU1CRVIgU0VWRU5UWTtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxMzc5O0VUSElPUElDIE5VTUJFUiBFSUdIVFk7Tm87MDtMOzs7OzgwO047Ozs7OworMTM3QTtFVEhJT1BJQyBOVU1CRVIgTklORVRZO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzEzN0I7RVRISU9QSUMgTlVNQkVSIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzEzN0M7RVRISU9QSUMgTlVNQkVSIFRFTiBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisxMzgwO0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODE7RVRISU9QSUMgU1lMTEFCTEUgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzgyO0VUSElPUElDIFNZTExBQkxFIE1XRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzODM7RVRISU9QSUMgU1lMTEFCTEUgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg0O0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBCV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODU7RVRISU9QSUMgU1lMTEFCTEUgQldJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg2O0VUSElPUElDIFNZTExBQkxFIEJXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzODc7RVRISU9QSUMgU1lMTEFCTEUgQldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg4O0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBGV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODk7RVRISU9QSUMgU1lMTEFCTEUgRldJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhBO0VUSElPUElDIFNZTExBQkxFIEZXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzOEI7RVRISU9QSUMgU1lMTEFCTEUgRldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhDO0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzOEQ7RVRISU9QSUMgU1lMTEFCTEUgUFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhFO0VUSElPUElDIFNZTExBQkxFIFBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzOEY7RVRISU9QSUMgU1lMTEFCTEUgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzkwO0VUSElPUElDIFRPTkFMIE1BUksgWUlaRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzkxO0VUSElPUElDIFRPTkFMIE1BUksgREVSRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzkyO0VUSElPUElDIFRPTkFMIE1BUksgUklLUklLO1NvOzA7T047Ozs7O047Ozs7OworMTM5MztFVEhJT1BJQyBUT05BTCBNQVJLIFNIT1JUIFJJS1JJSztTbzswO09OOzs7OztOOzs7OzsKKzEzOTQ7RVRISU9QSUMgVE9OQUwgTUFSSyBESUZBVDtTbzswO09OOzs7OztOOzs7OzsKKzEzOTU7RVRISU9QSUMgVE9OQUwgTUFSSyBLRU5BVDtTbzswO09OOzs7OztOOzs7OzsKKzEzOTY7RVRISU9QSUMgVE9OQUwgTUFSSyBDSElSRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk3O0VUSElPUElDIFRPTkFMIE1BUksgSElERVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk4O0VUSElPUElDIFRPTkFMIE1BUksgREVSRVQtSElERVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk5O0VUSElPUElDIFRPTkFMIE1BUksgS1VSVDtTbzswO09OOzs7OztOOzs7OzsKKzEzQTA7Q0hFUk9LRUUgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQTE7Q0hFUk9LRUUgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQTI7Q0hFUk9LRUUgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEzQTM7Q0hFUk9LRUUgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEzQTQ7Q0hFUk9LRUUgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQTU7Q0hFUk9LRUUgTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzEzQTY7Q0hFUk9LRUUgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E3O0NIRVJPS0VFIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTNBODtDSEVST0tFRSBMRVRURVIgR0U7TG87MDtMOzs7OztOOzs7OzsKKzEzQTk7Q0hFUk9LRUUgTEVUVEVSIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FBO0NIRVJPS0VFIExFVFRFUiBHTztMbzswO0w7Ozs7O047Ozs7OworMTNBQjtDSEVST0tFRSBMRVRURVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzQUM7Q0hFUk9LRUUgTEVUVEVSIEdWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FEO0NIRVJPS0VFIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTNBRTtDSEVST0tFRSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQUY7Q0hFUk9LRUUgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IwO0NIRVJPS0VFIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMTNCMTtDSEVST0tFRSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjI7Q0hFUk9LRUUgTEVUVEVSIEhWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IzO0NIRVJPS0VFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTNCNDtDSEVST0tFRSBMRVRURVIgTEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjU7Q0hFUk9LRUUgTEVUVEVSIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I2O0NIRVJPS0VFIExFVFRFUiBMTztMbzswO0w7Ozs7O047Ozs7OworMTNCNztDSEVST0tFRSBMRVRURVIgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjg7Q0hFUk9LRUUgTEVUVEVSIExWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I5O0NIRVJPS0VFIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTNCQTtDSEVST0tFRSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzEzQkI7Q0hFUk9LRUUgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JDO0NIRVJPS0VFIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTNCRDtDSEVST0tFRSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEzQkU7Q0hFUk9LRUUgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JGO0NIRVJPS0VFIExFVFRFUiBITkE7TG87MDtMOzs7OztOOzs7OzsKKzEzQzA7Q0hFUk9LRUUgTEVUVEVSIE5BSDtMbzswO0w7Ozs7O047Ozs7OworMTNDMTtDSEVST0tFRSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzI7Q0hFUk9LRUUgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MzO0NIRVJPS0VFIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMTNDNDtDSEVST0tFRSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzU7Q0hFUk9LRUUgTEVUVEVSIE5WO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M2O0NIRVJPS0VFIExFVFRFUiBRVUE7TG87MDtMOzs7OztOOzs7OzsKKzEzQzc7Q0hFUk9LRUUgTEVUVEVSIFFVRTtMbzswO0w7Ozs7O047Ozs7OworMTNDODtDSEVST0tFRSBMRVRURVIgUVVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M5O0NIRVJPS0VFIExFVFRFUiBRVU87TG87MDtMOzs7OztOOzs7OzsKKzEzQ0E7Q0hFUk9LRUUgTEVUVEVSIFFVVTtMbzswO0w7Ozs7O047Ozs7OworMTNDQjtDSEVST0tFRSBMRVRURVIgUVVWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NDO0NIRVJPS0VFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTNDRDtDSEVST0tFRSBMRVRURVIgUztMbzswO0w7Ozs7O047Ozs7OworMTNDRTtDSEVST0tFRSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0Y7Q0hFUk9LRUUgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QwO0NIRVJPS0VFIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTNEMTtDSEVST0tFRSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRDI7Q0hFUk9LRUUgTEVUVEVSIFNWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QzO0NIRVJPS0VFIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTNENDtDSEVST0tFRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEzRDU7Q0hFUk9LRUUgTEVUVEVSIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q2O0NIRVJPS0VFIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMTNENztDSEVST0tFRSBMRVRURVIgREk7TG87MDtMOzs7OztOOzs7OzsKKzEzRDg7Q0hFUk9LRUUgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q5O0NIRVJPS0VFIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworMTNEQTtDSEVST0tFRSBMRVRURVIgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEzREI7Q0hFUk9LRUUgTEVUVEVSIERWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RDO0NIRVJPS0VFIExFVFRFUiBETEE7TG87MDtMOzs7OztOOzs7OzsKKzEzREQ7Q0hFUk9LRUUgTEVUVEVSIFRMQTtMbzswO0w7Ozs7O047Ozs7OworMTNERTtDSEVST0tFRSBMRVRURVIgVExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RGO0NIRVJPS0VFIExFVFRFUiBUTEk7TG87MDtMOzs7OztOOzs7OzsKKzEzRTA7Q0hFUk9LRUUgTEVUVEVSIFRMTztMbzswO0w7Ozs7O047Ozs7OworMTNFMTtDSEVST0tFRSBMRVRURVIgVExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UyO0NIRVJPS0VFIExFVFRFUiBUTFY7TG87MDtMOzs7OztOOzs7OzsKKzEzRTM7Q0hFUk9LRUUgTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTNFNDtDSEVST0tFRSBMRVRURVIgVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U1O0NIRVJPS0VFIExFVFRFUiBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzRTY7Q0hFUk9LRUUgTEVUVEVSIFRTTztMbzswO0w7Ozs7O047Ozs7OworMTNFNztDSEVST0tFRSBMRVRURVIgVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U4O0NIRVJPS0VFIExFVFRFUiBUU1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzRTk7Q0hFUk9LRUUgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VBO0NIRVJPS0VFIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMTNFQjtDSEVST0tFRSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzEzRUM7Q0hFUk9LRUUgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VEO0NIRVJPS0VFIExFVFRFUiBXVTtMbzswO0w7Ozs7O047Ozs7OworMTNFRTtDSEVST0tFRSBMRVRURVIgV1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzRUY7Q0hFUk9LRUUgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YwO0NIRVJPS0VFIExFVFRFUiBZRTtMbzswO0w7Ozs7O047Ozs7OworMTNGMTtDSEVST0tFRSBMRVRURVIgWUk7TG87MDtMOzs7OztOOzs7OzsKKzEzRjI7Q0hFUk9LRUUgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YzO0NIRVJPS0VFIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMTNGNDtDSEVST0tFRSBMRVRURVIgWVY7TG87MDtMOzs7OztOOzs7OzsKKzE0MDE7Q0FOQURJQU4gU1lMTEFCSUNTIEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MDI7Q0FOQURJQU4gU1lMTEFCSUNTIEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTQwMztDQU5BRElBTiBTWUxMQUJJQ1MgSTtMbzswO0w7Ozs7O047Ozs7OworMTQwNDtDQU5BRElBTiBTWUxMQUJJQ1MgSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDU7Q0FOQURJQU4gU1lMTEFCSUNTIE87TG87MDtMOzs7OztOOzs7OzsKKzE0MDY7Q0FOQURJQU4gU1lMTEFCSUNTIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA3O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgT087TG87MDtMOzs7OztOOzs7OzsKKzE0MDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE0MDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTQwQTtDQU5BRElBTiBTWUxMQUJJQ1MgQTtMbzswO0w7Ozs7O047Ozs7OworMTQwQjtDQU5BRElBTiBTWUxMQUJJQ1MgQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MEM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0MEU7Q0FOQURJQU4gU1lMTEFCSUNTIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0MTA7Q0FOQURJQU4gU1lMTEFCSUNTIFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQxMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQxMjtDQU5BRElBTiBTWUxMQUJJQ1MgV087TG87MDtMOzs7OztOOzs7OzsKKzE0MTM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXTztMbzswO0w7Ozs7O047Ozs7OworMTQxNDtDQU5BRElBTiBTWUxMQUJJQ1MgV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE2O0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNztDQU5BRElBTiBTWUxMQUJJQ1MgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0MTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQxOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFCO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQztDQU5BRElBTiBTWUxMQUJJQ1MgQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFFO0NBTkFESUFOIFNZTExBQklDUyBHTE9UVEFMIFNUT1A7TG87MDtMOzs7OztOOzs7OzsKKzE0MUY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEFDVVRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDIwO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBHUkFWRTtMbzswO0w7Ozs7O047Ozs7OworMTQyMTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgQk9UVE9NIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyMjtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgVE9QIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyMztDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUklHSFQgSEFMRiBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI0O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI1O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1VCTEUgQUNVVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPVUJMRSBTSE9SVCBWRVJUSUNBTCBTVFJPS0VTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI3O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBNSURETEUgRE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI4O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBTSE9SVCBIT1JJWk9OVEFMIFNUUk9LRTtMbzswO0w7Ozs7O047Ozs7OworMTQyOTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUExVUztMbzswO0w7Ozs7O047Ozs7OworMTQyQTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9XTiBUQUNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJCO0NBTkFESUFOIFNZTExBQklDUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTQyQztDQU5BRElBTiBTWUxMQUJJQ1MgSU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkQ7Q0FOQURJQU4gU1lMTEFCSUNTIE9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJFO0NBTkFESUFOIFNZTExBQklDUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRjtDQU5BRElBTiBTWUxMQUJJQ1MgUEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MzA7Q0FOQURJQU4gU1lMTEFCSUNTIFBBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MzE7Q0FOQURJQU4gU1lMTEFCSUNTIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMyO0NBTkFESUFOIFNZTExBQklDUyBQSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MzM7Q0FOQURJQU4gU1lMTEFCSUNTIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM0O0NBTkFESUFOIFNZTExBQklDUyBQT087TG87MDtMOzs7OztOOzs7OzsKKzE0MzU7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBQT087TG87MDtMOzs7OztOOzs7OzsKKzE0MzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM4O0NBTkFESUFOIFNZTExBQklDUyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTQzOTtDQU5BRElBTiBTWUxMQUJJQ1MgUEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNBO0NBTkFESUFOIFNZTExBQklDUyBQV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0M0I7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0M0M7Q0FOQURJQU4gU1lMTEFCSUNTIFBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRTtDQU5BRElBTiBTWUxMQUJJQ1MgUFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NDA7Q0FOQURJQU4gU1lMTEFCSUNTIFBXTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MjtDQU5BRElBTiBTWUxMQUJJQ1MgUFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NDQ7Q0FOQURJQU4gU1lMTEFCSUNTIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NjtDQU5BRElBTiBTWUxMQUJJQ1MgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDg7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ5O0NBTkFESUFOIFNZTExBQklDUyBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRDO0NBTkFESUFOIFNZTExBQklDUyBURTtMbzswO0w7Ozs7O047Ozs7OworMTQ0RDtDQU5BRElBTiBTWUxMQUJJQ1MgVEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ0RTtDQU5BRElBTiBTWUxMQUJJQ1MgVEk7TG87MDtMOzs7OztOOzs7OzsKKzE0NEY7Q0FOQURJQU4gU1lMTEFCSUNTIFRJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1MDtDQU5BRElBTiBTWUxMQUJJQ1MgVE87TG87MDtMOzs7OztOOzs7OzsKKzE0NTE7Q0FOQURJQU4gU1lMTEFCSUNTIFRPTztMbzswO0w7Ozs7O047Ozs7OworMTQ1MjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFRPTztMbzswO0w7Ozs7O047Ozs7OworMTQ1MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBERUU7TG87MDtMOzs7OztOOzs7OzsKKzE0NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgREk7TG87MDtMOzs7OztOOzs7OzsKKzE0NTU7Q0FOQURJQU4gU1lMTEFCSUNTIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU2O0NBTkFESUFOIFNZTExBQklDUyBUQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NTc7Q0FOQURJQU4gU1lMTEFCSUNTIFRXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ1ODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ1OTtDQU5BRElBTiBTWUxMQUJJQ1MgVFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVCO0NBTkFESUFOIFNZTExBQklDUyBUV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1RDtDQU5BRElBTiBTWUxMQUJJQ1MgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVGO0NBTkFESUFOIFNZTExBQklDUyBUV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ2MTtDQU5BRElBTiBTWUxMQUJJQ1MgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYyO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYzO0NBTkFESUFOIFNZTExBQklDUyBUV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBUV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY2O0NBTkFESUFOIFNZTExBQklDUyBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY3O0NBTkFESUFOIFNZTExBQklDUyBUVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0Njg7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2OTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZBO0NBTkFESUFOIFNZTExBQklDUyBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE0NkI7Q0FOQURJQU4gU1lMTEFCSUNTIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZDO0NBTkFESUFOIFNZTExBQklDUyBLQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZEO0NBTkFESUFOIFNZTExBQklDUyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RTtDQU5BRElBTiBTWUxMQUJJQ1MgS0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZGO0NBTkFESUFOIFNZTExBQklDUyBLTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MDtDQU5BRElBTiBTWUxMQUJJQ1MgS09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDcxO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgS09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDcyO0NBTkFESUFOIFNZTExBQklDUyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3MztDQU5BRElBTiBTWUxMQUJJQ1MgS0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc0O0NBTkFESUFOIFNZTExBQklDUyBLV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NzU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NzY7Q0FOQURJQU4gU1lMTEFCSUNTIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3ODtDQU5BRElBTiBTWUxMQUJJQ1MgS1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0N0E7Q0FOQURJQU4gU1lMTEFCSUNTIEtXTztMbzswO0w7Ozs7O047Ozs7OworMTQ3QjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXTztMbzswO0w7Ozs7O047Ozs7OworMTQ3QztDQU5BRElBTiBTWUxMQUJJQ1MgS1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXT087TG87MDtMOzs7OztOOzs7OzsKKzE0N0U7Q0FOQURJQU4gU1lMTEFCSUNTIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MDtDQU5BRElBTiBTWUxMQUJJQ1MgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MztDQU5BRElBTiBTWUxMQUJJQ1MgSztMbzswO0w7Ozs7O047Ozs7OworMTQ4NDtDQU5BRElBTiBTWUxMQUJJQ1MgS1c7TG87MDtMOzs7OztOOzs7OzsKKzE0ODU7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLRUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODY7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLSUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODc7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLT0g7TG87MDtMOzs7OztOOzs7OzsKKzE0ODg7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLQUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODk7Q0FOQURJQU4gU1lMTEFCSUNTIENFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhBO0NBTkFESUFOIFNZTExBQklDUyBDQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhCO0NBTkFESUFOIFNZTExBQklDUyBDSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhEO0NBTkFESUFOIFNZTExBQklDUyBDTztMbzswO0w7Ozs7O047Ozs7OworMTQ4RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhGO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgQ09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkwO0NBTkFESUFOIFNZTExBQklDUyBDQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkyO0NBTkFESUFOIFNZTExBQklDUyBDV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0OTM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0OTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OTg7Q0FOQURJQU4gU1lMTEFCSUNTIENXTztMbzswO0w7Ozs7O047Ozs7OworMTQ5OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXTztMbzswO0w7Ozs7O047Ozs7OworMTQ5QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5QjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXT087TG87MDtMOzs7OztOOzs7OzsKKzE0OUM7Q0FOQURJQU4gU1lMTEFCSUNTIENXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QTA7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgQ1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTRBMTtDQU5BRElBTiBTWUxMQUJJQ1MgQztMbzswO0w7Ozs7O047Ozs7OworMTRBMjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEzO0NBTkFESUFOIFNZTExBQklDUyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTRBNDtDQU5BRElBTiBTWUxMQUJJQ1MgTUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTRBNTtDQU5BRElBTiBTWUxMQUJJQ1MgTUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTY7Q0FOQURJQU4gU1lMTEFCSUNTIE1JSTtMbzswO0w7Ozs7O047Ozs7OworMTRBNztDQU5BRElBTiBTWUxMQUJJQ1MgTU87TG87MDtMOzs7OztOOzs7OzsKKzE0QTg7Q0FOQURJQU4gU1lMTEFCSUNTIE1PTztMbzswO0w7Ozs7O047Ozs7OworMTRBOTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE1PTztMbzswO0w7Ozs7O047Ozs7OworMTRBQTtDQU5BRElBTiBTWUxMQUJJQ1MgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QUI7Q0FOQURJQU4gU1lMTEFCSUNTIE1BQTtMbzswO0w7Ozs7O047Ozs7OworMTRBQztDQU5BRElBTiBTWUxMQUJJQ1MgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFFO0NBTkFESUFOIFNZTExBQklDUyBNV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0QUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0QjA7Q0FOQURJQU4gU1lMTEFCSUNTIE1XSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QjE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIyO0NBTkFESUFOIFNZTExBQklDUyBNV087TG87MDtMOzs7OztOOzs7OzsKKzE0QjM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV087TG87MDtMOzs7OztOOzs7OzsKKzE0QjQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1XT087TG87MDtMOzs7OztOOzs7OzsKKzE0QjU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI2O0NBTkFESUFOIFNZTExBQklDUyBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjg7Q0FOQURJQU4gU1lMTEFCSUNTIE1XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJBO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIE1XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QkI7Q0FOQURJQU4gU1lMTEFCSUNTIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QkM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJEO0NBTkFESUFOIFNZTExBQklDUyBNSDtMbzswO0w7Ozs7O047Ozs7OworMTRCRTtDQU5BRElBTiBTWUxMQUJJQ1MgQVRIQVBBU0NBTiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJGO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgTTtMbzswO0w7Ozs7O047Ozs7OworMTRDMDtDQU5BRElBTiBTWUxMQUJJQ1MgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE0QzE7Q0FOQURJQU4gU1lMTEFCSUNTIE5BQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QzI7Q0FOQURJQU4gU1lMTEFCSUNTIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMzO0NBTkFESUFOIFNZTExBQklDUyBOSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM1O0NBTkFESUFOIFNZTExBQklDUyBOT087TG87MDtMOzs7OztOOzs7OzsKKzE0QzY7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBOT087TG87MDtMOzs7OztOOzs7OzsKKzE0Qzc7Q0FOQURJQU4gU1lMTEFCSUNTIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM4O0NBTkFESUFOIFNZTExBQklDUyBOQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Qzk7Q0FOQURJQU4gU1lMTEFCSUNTIE5XRTtMbzswO0w7Ozs7O047Ozs7OworMTRDQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XRTtMbzswO0w7Ozs7O047Ozs7OworMTRDQjtDQU5BRElBTiBTWUxMQUJJQ1MgTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENEO0NBTkFESUFOIFNZTExBQklDUyBOV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBOV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQwO0NBTkFESUFOIFNZTExBQklDUyBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQyO0NBTkFESUFOIFNZTExBQklDUyBOSDtMbzswO0w7Ozs7O047Ozs7OworMTREMztDQU5BRElBTiBTWUxMQUJJQ1MgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE0RDQ7Q0FOQURJQU4gU1lMTEFCSUNTIExBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RDU7Q0FOQURJQU4gU1lMTEFCSUNTIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ2O0NBTkFESUFOIFNZTExBQklDUyBMSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RDc7Q0FOQURJQU4gU1lMTEFCSUNTIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ4O0NBTkFESUFOIFNZTExBQklDUyBMT087TG87MDtMOzs7OztOOzs7OzsKKzE0RDk7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBMT087TG87MDtMOzs7OztOOzs7OzsKKzE0REE7Q0FOQURJQU4gU1lMTEFCSUNTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERCO0NBTkFESUFOIFNZTExBQklDUyBMQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0REM7Q0FOQURJQU4gU1lMTEFCSUNTIExXRTtMbzswO0w7Ozs7O047Ozs7OworMTRERDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXRTtMbzswO0w7Ozs7O047Ozs7OworMTRERTtDQU5BRElBTiBTWUxMQUJJQ1MgTFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUwO0NBTkFESUFOIFNZTExBQklDUyBMV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMjtDQU5BRElBTiBTWUxMQUJJQ1MgTFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU0O0NBTkFESUFOIFNZTExBQklDUyBMV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdPTztMbzswO0w7Ozs7O047Ozs7OworMTRFNjtDQU5BRElBTiBTWUxMQUJJQ1MgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU4O0NBTkFESUFOIFNZTExBQklDUyBMV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRFQTtDQU5BRElBTiBTWUxMQUJJQ1MgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFQjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUM7Q0FOQURJQU4gU1lMTEFCSUNTIE1FRElBTCBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVEO0NBTkFESUFOIFNZTExBQklDUyBTRTtMbzswO0w7Ozs7O047Ozs7OworMTRFRTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTRFRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0k7TG87MDtMOzs7OztOOzs7OzsKKzE0RjA7Q0FOQURJQU4gU1lMTEFCSUNTIFNJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGMTtDQU5BRElBTiBTWUxMQUJJQ1MgU087TG87MDtMOzs7OztOOzs7OzsKKzE0RjI7Q0FOQURJQU4gU1lMTEFCSUNTIFNPTztMbzswO0w7Ozs7O047Ozs7OworMTRGMztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFNPTztMbzswO0w7Ozs7O047Ozs7OworMTRGNDtDQU5BRElBTiBTWUxMQUJJQ1MgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE0RjU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTRGNjtDQU5BRElBTiBTWUxMQUJJQ1MgU1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY4O0NBTkFESUFOIFNZTExBQklDUyBTV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Rjk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0RkE7Q0FOQURJQU4gU1lMTEFCSUNTIFNXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RkI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZDO0NBTkFESUFOIFNZTExBQklDUyBTV087TG87MDtMOzs7OztOOzs7OzsKKzE0RkQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV087TG87MDtMOzs7OztOOzs7OzsKKzE0RkU7Q0FOQURJQU4gU1lMTEFCSUNTIFNXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RkY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAwO0NBTkFESUFOIFNZTExBQklDUyBTV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MDE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MDI7Q0FOQURJQU4gU1lMTEFCSUNTIFNXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MDM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA0O0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MDU7Q0FOQURJQU4gU1lMTEFCSUNTIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDY7Q0FOQURJQU4gU1lMTEFCSUNTIEFUSEFQQVNDQU4gUztMbzswO0w7Ozs7O047Ozs7OworMTUwNztDQU5BRElBTiBTWUxMQUJJQ1MgU1c7TG87MDtMOzs7OztOOzs7OzsKKzE1MDg7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA5O0NBTkFESUFOIFNZTExBQklDUyBNT09TRS1DUkVFIFNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBBO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNLVztMbzswO0w7Ozs7O047Ozs7OworMTUwQjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTLVc7TG87MDtMOzs7OztOOzs7OzsKKzE1MEM7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1BXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBFO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEY7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU0NXQTtMbzswO0w7Ozs7O047Ozs7OworMTUxMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTExO0NBTkFESUFOIFNZTExBQklDUyBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1MTI7Q0FOQURJQU4gU1lMTEFCSUNTIFNISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MTM7Q0FOQURJQU4gU1lMTEFCSUNTIFNITztMbzswO0w7Ozs7O047Ozs7OworMTUxNDtDQU5BRElBTiBTWUxMQUJJQ1MgU0hPTztMbzswO0w7Ozs7O047Ozs7OworMTUxNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE2O0NBTkFESUFOIFNZTExBQklDUyBTSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE3O0NBTkFESUFOIFNZTExBQklDUyBTSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXRTtMbzswO0w7Ozs7O047Ozs7OworMTUxOTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MUI7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV087TG87MDtMOzs7OztOOzs7OzsKKzE1MUU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFGO0NBTkFESUFOIFNZTExBQklDUyBTSFdPTztMbzswO0w7Ozs7O047Ozs7OworMTUyMDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIxO0NBTkFESUFOIFNZTExBQklDUyBTSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIyO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTUyMztDQU5BRElBTiBTWUxMQUJJQ1MgU0hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0g7TG87MDtMOzs7OztOOzs7OzsKKzE1MjY7Q0FOQURJQU4gU1lMTEFCSUNTIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI3O0NBTkFESUFOIFNZTExBQklDUyBZQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI4O0NBTkFESUFOIFNZTExBQklDUyBZSTtMbzswO0w7Ozs7O047Ozs7OworMTUyOTtDQU5BRElBTiBTWUxMQUJJQ1MgWUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJBO0NBTkFESUFOIFNZTExBQklDUyBZTztMbzswO0w7Ozs7O047Ozs7OworMTUyQjtDQU5BRElBTiBTWUxMQUJJQ1MgWU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJDO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgWU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJEO0NBTkFESUFOIFNZTExBQklDUyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTUyRTtDQU5BRElBTiBTWUxMQUJJQ1MgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJGO0NBTkFESUFOIFNZTExBQklDUyBZV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MzA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MzE7Q0FOQURJQU4gU1lMTEFCSUNTIFlXSTtMbzswO0w7Ozs7O047Ozs7OworMTUzMjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXSTtMbzswO0w7Ozs7O047Ozs7OworMTUzMztDQU5BRElBTiBTWUxMQUJJQ1MgWVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUzNDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MzU7Q0FOQURJQU4gU1lMTEFCSUNTIFlXTztMbzswO0w7Ozs7O047Ozs7OworMTUzNjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXTztMbzswO0w7Ozs7O047Ozs7OworMTUzNztDQU5BRElBTiBTWUxMQUJJQ1MgWVdPTztMbzswO0w7Ozs7O047Ozs7OworMTUzODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXT087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIFlXQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQjtDQU5BRElBTiBTWUxMQUJJQ1MgWVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgWVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUzRTtDQU5BRElBTiBTWUxMQUJJQ1MgWTtMbzswO0w7Ozs7O047Ozs7OworMTUzRjtDQU5BRElBTiBTWUxMQUJJQ1MgQklCTEUtQ1JFRSBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWTtMbzswO0w7Ozs7O047Ozs7OworMTU0MTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQyO0NBTkFESUFOIFNZTExBQklDUyBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU0MztDQU5BRElBTiBTWUxMQUJJQ1MgUi1DUkVFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDU7Q0FOQURJQU4gU1lMTEFCSUNTIFJBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDY7Q0FOQURJQU4gU1lMTEFCSUNTIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ3O0NBTkFESUFOIFNZTExBQklDUyBSSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDg7Q0FOQURJQU4gU1lMTEFCSUNTIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ5O0NBTkFESUFOIFNZTExBQklDUyBST087TG87MDtMOzs7OztOOzs7OzsKKzE1NEE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTU0QjtDQU5BRElBTiBTWUxMQUJJQ1MgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEM7Q0FOQURJQU4gU1lMTEFCSUNTIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRFO0NBTkFESUFOIFNZTExBQklDUyBSV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1MDtDQU5BRElBTiBTWUxMQUJJQ1MgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTI7Q0FOQURJQU4gU1lMTEFCSUNTIE1FRElBTCBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUzO0NBTkFESUFOIFNZTExBQklDUyBGRTtMbzswO0w7Ozs7O047Ozs7OworMTU1NDtDQU5BRElBTiBTWUxMQUJJQ1MgRkFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU1NTtDQU5BRElBTiBTWUxMQUJJQ1MgRkk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJSTtMbzswO0w7Ozs7O047Ozs7OworMTU1NztDQU5BRElBTiBTWUxMQUJJQ1MgRk87TG87MDtMOzs7OztOOzs7OzsKKzE1NTg7Q0FOQURJQU4gU1lMTEFCSUNTIEZPTztMbzswO0w7Ozs7O047Ozs7OworMTU1OTtDQU5BRElBTiBTWUxMQUJJQ1MgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUE7Q0FOQURJQU4gU1lMTEFCSUNTIEZBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1QjtDQU5BRElBTiBTWUxMQUJJQ1MgRldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEZXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIEY7TG87MDtMOzs7OztOOzs7OzsKKzE1NUU7Q0FOQURJQU4gU1lMTEFCSUNTIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU1RjtDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU2MDtDQU5BRElBTiBTWUxMQUJJQ1MgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYxO0NBTkFESUFOIFNZTExBQklDUyBOLUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYyO0NBTkFESUFOIFNZTExBQklDUyBUSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYzO0NBTkFESUFOIFNZTExBQklDUyBOLUNSRUUgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU2NDtDQU5BRElBTiBTWUxMQUJJQ1MgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY1O0NBTkFESUFOIFNZTExBQklDUyBUSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY2O0NBTkFESUFOIFNZTExBQklDUyBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1Njc7Q0FOQURJQU4gU1lMTEFCSUNTIFRIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1Njg7Q0FOQURJQU4gU1lMTEFCSUNTIFRIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVEhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NkE7Q0FOQURJQU4gU1lMTEFCSUNTIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZCO0NBTkFESUFOIFNZTExBQklDUyBUVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZDO0NBTkFESUFOIFNZTExBQklDUyBUVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZEO0NBTkFESUFOIFNZTExBQklDUyBUVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZFO0NBTkFESUFOIFNZTExBQklDUyBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZGO0NBTkFESUFOIFNZTExBQklDUyBUVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1NzA7Q0FOQURJQU4gU1lMTEFCSUNTIFRZRTtMbzswO0w7Ozs7O047Ozs7OworMTU3MTtDQU5BRElBTiBTWUxMQUJJQ1MgVFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcyO0NBTkFESUFOIFNZTExBQklDUyBUWU87TG87MDtMOzs7OztOOzs7OzsKKzE1NzM7Q0FOQURJQU4gU1lMTEFCSUNTIFRZQTtMbzswO0w7Ozs7O047Ozs7OworMTU3NDtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIRTtMbzswO0w7Ozs7O047Ozs7OworMTU3NTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBISTtMbzswO0w7Ozs7O047Ozs7OworMTU3NjtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Nzc7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSE87TG87MDtMOzs7OztOOzs7OzsKKzE1Nzg7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc5O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdBO0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTU3QjtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdDO0NBTkFESUFOIFNZTExBQklDUyBOVU5BVlVUIEg7TG87MDtMOzs7OztOOzs7OzsKKzE1N0Q7Q0FOQURJQU4gU1lMTEFCSUNTIEhLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdFO0NBTkFESUFOIFNZTExBQklDUyBRQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdGO0NBTkFESUFOIFNZTExBQklDUyBRSTtMbzswO0w7Ozs7O047Ozs7OworMTU4MDtDQU5BRElBTiBTWUxMQUJJQ1MgUUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgxO0NBTkFESUFOIFNZTExBQklDUyBRTztMbzswO0w7Ozs7O047Ozs7OworMTU4MjtDQU5BRElBTiBTWUxMQUJJQ1MgUU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgzO0NBTkFESUFOIFNZTExBQklDUyBRQTtMbzswO0w7Ozs7O047Ozs7OworMTU4NDtDQU5BRElBTiBTWUxMQUJJQ1MgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg1O0NBTkFESUFOIFNZTExBQklDUyBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg2O0NBTkFESUFOIFNZTExBQklDUyBUTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg3O0NBTkFESUFOIFNZTExBQklDUyBUTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg4O0NBTkFESUFOIFNZTExBQklDUyBUTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg5O0NBTkFESUFOIFNZTExBQklDUyBUTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1OEI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSSTtMbzswO0w7Ozs7O047Ozs7OworMTU4QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1OEU7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThGO0NBTkFESUFOIFNZTExBQklDUyBOR0k7TG87MDtMOzs7OztOOzs7OzsKKzE1OTA7Q0FOQURJQU4gU1lMTEFCSUNTIE5HSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1OTE7Q0FOQURJQU4gU1lMTEFCSUNTIE5HTztMbzswO0w7Ozs7O047Ozs7OworMTU5MjtDQU5BRElBTiBTWUxMQUJJQ1MgTkdPTztMbzswO0w7Ozs7O047Ozs7OworMTU5MztDQU5BRElBTiBTWUxMQUJJQ1MgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk0O0NBTkFESUFOIFNZTExBQklDUyBOR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk1O0NBTkFESUFOIFNZTExBQklDUyBORztMbzswO0w7Ozs7O047Ozs7OworMTU5NjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk3O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk4O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk5O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlBO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlCO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU5QztDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1OUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlFO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU5RjtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTVBMDtDQU5BRElBTiBTWUxMQUJJQ1MgTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUExO0NBTkFESUFOIFNZTExBQklDUyBMSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEyO0NBTkFESUFOIFNZTExBQklDUyBMSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QTM7Q0FOQURJQU4gU1lMTEFCSUNTIExIT087TG87MDtMOzs7OztOOzs7OzsKKzE1QTQ7Q0FOQURJQU4gU1lMTEFCSUNTIExIQTtMbzswO0w7Ozs7O047Ozs7OworMTVBNTtDQU5BRElBTiBTWUxMQUJJQ1MgTEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTVBNjtDQU5BRElBTiBTWUxMQUJJQ1MgTEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QTc7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE4O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTVBOTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFBO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRITztMbzswO0w7Ozs7O047Ozs7OworMTVBQjtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFDO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTVBRDtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFFO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFGO0NBTkFESUFOIFNZTExBQklDUyBBSVZJTElLIEI7TG87MDtMOzs7OztOOzs7OzsKKzE1QjA7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIxO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgSTtMbzswO0w7Ozs7O047Ozs7OworMTVCMjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE87TG87MDtMOzs7OztOOzs7OzsKKzE1QjM7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI0O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1QjU7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXSTtMbzswO0w7Ozs7O047Ozs7OworMTVCNjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI3O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1Qjg7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBORTtMbzswO0w7Ozs7O047Ozs7OworMTVCOTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJBO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTk87TG87MDtMOzs7OztOOzs7OzsKKzE1QkI7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOQTtMbzswO0w7Ozs7O047Ozs7OworMTVCQztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJEO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS0k7TG87MDtMOzs7OztOOzs7OzsKKzE1QkU7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLTztMbzswO0w7Ozs7O047Ozs7OworMTVCRjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMwO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1QzE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBISTtMbzswO0w7Ozs7O047Ozs7OworMTVDMjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMzO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QzQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdITztMbzswO0w7Ozs7O047Ozs7OworMTVDNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTVDODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJFRTtMbzswO0w7Ozs7O047Ozs7OworMTVDRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMTVDRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTVEMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXVTtMbzswO0w7Ozs7O047Ozs7OworMTVEMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTVEMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMTVEMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1RDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1RDY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXTztMbzswO0w7Ozs7O047Ozs7OworMTVEODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVEQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1REI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTVERDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1REU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTVFMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRURTtMbzswO0w7Ozs7O047Ozs7OworMTVFNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUSTtMbzswO0w7Ozs7O047Ozs7OworMTVFNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzE1RUE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzE1RUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFA7TG87MDtMOzs7OztOOzs7OzsKKzE1RUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RjA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR087TG87MDtMOzs7OztOOzs7OzsKKzE1RjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIVTtMbzswO0w7Ozs7O047Ozs7OworMTVGNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKKzE1Rjc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Rjk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTVGQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RkM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLRTtMbzswO0w7Ozs7O047Ozs7OworMTVGRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLSTtMbzswO0w7Ozs7O047Ozs7OworMTYwMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0E7TG87MDtMOzs7OztOOzs7OzsKKzE2MDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0s7TG87MDtMOzs7OztOOzs7OzsKKzE2MDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzE2MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1FRTtMbzswO0w7Ozs7O047Ozs7OworMTYwQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTYwRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTYwRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMTYwRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTYxMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZRTtMbzswO0w7Ozs7O047Ozs7OworMTYxMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE2MTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE2MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBKVTtMbzswO0w7Ozs7O047Ozs7OworMTYxNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKTztMbzswO0w7Ozs7O047Ozs7OworMTYxNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKRTtMbzswO0w7Ozs7O047Ozs7OworMTYxODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBKSTtMbzswO0w7Ozs7O047Ozs7OworMTYxQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTYxQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKRTtMbzswO0w7Ozs7O047Ozs7OworMTYxRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKSTtMbzswO0w7Ozs7O047Ozs7OworMTYyMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzE2MjQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMVTtMbzswO0w7Ozs7O047Ozs7OworMTYyOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETE87TG87MDtMOzs7OztOOzs7OzsKKzE2MkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MkM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMQTtMbzswO0w7Ozs7O047Ozs7OworMTYyRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MkY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExIRTtMbzswO0w7Ozs7O047Ozs7OworMTYzMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExISTtMbzswO0w7Ozs7O047Ozs7OworMTYzMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIVTtMbzswO0w7Ozs7O047Ozs7OworMTYzNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExISTtMbzswO0w7Ozs7O047Ozs7OworMTYzOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMVTtMbzswO0w7Ozs7O047Ozs7OworMTYzQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTE87TG87MDtMOzs7OztOOzs7OzsKKzE2M0M7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0U7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMQTtMbzswO0w7Ozs7O047Ozs7OworMTY0MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaVTtMbzswO0w7Ozs7O047Ozs7OworMTY0MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaTztMbzswO0w7Ozs7O047Ozs7OworMTY0MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaRTtMbzswO0w7Ozs7O047Ozs7OworMTY0MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkk7TG87MDtMOzs7OztOOzs7OzsKKzE2NDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE2NDY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWjtMbzswO0w7Ozs7O047Ozs7OworMTY0NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBJTklUSUFMIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2NDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaTztMbzswO0w7Ozs7O047Ozs7OworMTY0QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkU7TG87MDtMOzs7OztOOzs7OzsKKzE2NEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpFRTtMbzswO0w7Ozs7O047Ozs7OworMTY0QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkk7TG87MDtMOzs7OztOOzs7OzsKKzE2NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMTY1MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTY1NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTY1NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTY1OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2NUE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0g7TG87MDtMOzs7OztOOzs7OzsKKzE2NUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTTztMbzswO0w7Ozs7O047Ozs7OworMTY1RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NUU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1RjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NjA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIVTtMbzswO0w7Ozs7O047Ozs7OworMTY2MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSE87TG87MDtMOzs7OztOOzs7OzsKKzE2NjM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTY2NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU087TG87MDtMOzs7OztOOzs7OzsKKzE2Njk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTY2QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY2QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NkQ7Q0FOQURJQU4gU1lMTEFCSUNTIENISSBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZFO0NBTkFESUFOIFNZTExBQklDUyBGVUxMIFNUT1A7UG87MDtMOzs7OztOOzs7OzsKKzE2NkY7Q0FOQURJQU4gU1lMTEFCSUNTIFFBSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MTtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HSUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzM7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR087TG87MDtMOzs7OztOOzs7OzsKKzE2NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc1O0NBTkFESUFOIFNZTExBQklDUyBOTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc2O0NBTkFESUFOIFNZTExBQklDUyBOTkdBQTtMbzswO0w7Ozs7O047Ozs7OworMTY4MDtPR0hBTSBTUEFDRSBNQVJLO1pzOzA7V1M7Ozs7O047Ozs7OworMTY4MTtPR0hBTSBMRVRURVIgQkVJVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2ODI7T0dIQU0gTEVUVEVSIExVSVM7TG87MDtMOzs7OztOOzs7OzsKKzE2ODM7T0dIQU0gTEVUVEVSIEZFQVJOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg0O09HSEFNIExFVFRFUiBTQUlMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg1O09HSEFNIExFVFRFUiBOSU9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg2O09HSEFNIExFVFRFUiBVQVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg3O09HSEFNIExFVFRFUiBEQUlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg4O09HSEFNIExFVFRFUiBUSU5ORTtMbzswO0w7Ozs7O047Ozs7OworMTY4OTtPR0hBTSBMRVRURVIgQ09MTDtMbzswO0w7Ozs7O047Ozs7OworMTY4QTtPR0hBTSBMRVRURVIgQ0VJUlQ7TG87MDtMOzs7OztOOzs7OzsKKzE2OEI7T0dIQU0gTEVUVEVSIE1VSU47TG87MDtMOzs7OztOOzs7OzsKKzE2OEM7T0dIQU0gTEVUVEVSIEdPUlQ7TG87MDtMOzs7OztOOzs7OzsKKzE2OEQ7T0dIQU0gTEVUVEVSIE5HRUFEQUw7TG87MDtMOzs7OztOOzs7OzsKKzE2OEU7T0dIQU0gTEVUVEVSIFNUUkFJRjtMbzswO0w7Ozs7O047Ozs7OworMTY4RjtPR0hBTSBMRVRURVIgUlVJUztMbzswO0w7Ozs7O047Ozs7OworMTY5MDtPR0hBTSBMRVRURVIgQUlMTTtMbzswO0w7Ozs7O047Ozs7OworMTY5MTtPR0hBTSBMRVRURVIgT05OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjkyO09HSEFNIExFVFRFUiBVUjtMbzswO0w7Ozs7O047Ozs7OworMTY5MztPR0hBTSBMRVRURVIgRUFESEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NDtPR0hBTSBMRVRURVIgSU9ESEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NTtPR0hBTSBMRVRURVIgRUFCSEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NjtPR0hBTSBMRVRURVIgT1I7TG87MDtMOzs7OztOOzs7OzsKKzE2OTc7T0dIQU0gTEVUVEVSIFVJTExFQU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk4O09HSEFNIExFVFRFUiBJRklOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk5O09HSEFNIExFVFRFUiBFQU1IQU5DSE9MTDtMbzswO0w7Ozs7O047Ozs7OworMTY5QTtPR0hBTSBMRVRURVIgUEVJVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2OUI7T0dIQU0gRkVBVEhFUiBNQVJLO1BzOzA7T047Ozs7O1k7Ozs7OworMTY5QztPR0hBTSBSRVZFUlNFRCBGRUFUSEVSIE1BUks7UGU7MDtPTjs7Ozs7WTs7Ozs7CisxNkEwO1JVTklDIExFVFRFUiBGRUhVIEZFT0ggRkUgRjtMbzswO0w7Ozs7O047Ozs7OworMTZBMTtSVU5JQyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMTZBMjtSVU5JQyBMRVRURVIgVVJVWiBVUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkEzO1JVTklDIExFVFRFUiBZUjtMbzswO0w7Ozs7O047Ozs7OworMTZBNDtSVU5JQyBMRVRURVIgWTtMbzswO0w7Ozs7O047Ozs7OworMTZBNTtSVU5JQyBMRVRURVIgVztMbzswO0w7Ozs7O047Ozs7OworMTZBNjtSVU5JQyBMRVRURVIgVEhVUklTQVogVEhVUlMgVEhPUk47TG87MDtMOzs7OztOOzs7OzsKKzE2QTc7UlVOSUMgTEVUVEVSIEVUSDtMbzswO0w7Ozs7O047Ozs7OworMTZBODtSVU5JQyBMRVRURVIgQU5TVVogQTtMbzswO0w7Ozs7O047Ozs7OworMTZBOTtSVU5JQyBMRVRURVIgT1MgTztMbzswO0w7Ozs7O047Ozs7OworMTZBQTtSVU5JQyBMRVRURVIgQUMgQTtMbzswO0w7Ozs7O047Ozs7OworMTZBQjtSVU5JQyBMRVRURVIgQUVTQztMbzswO0w7Ozs7O047Ozs7OworMTZBQztSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtT1NTIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUQ7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctT1NTIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUU7UlVOSUMgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUY7UlVOSUMgTEVUVEVSIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIwO1JVTklDIExFVFRFUiBPTjtMbzswO0w7Ozs7O047Ozs7OworMTZCMTtSVU5JQyBMRVRURVIgUkFJRE8gUkFEIFJFSUQgUjtMbzswO0w7Ozs7O047Ozs7OworMTZCMjtSVU5JQyBMRVRURVIgS0FVTkE7TG87MDtMOzs7OztOOzs7OzsKKzE2QjM7UlVOSUMgTEVUVEVSIENFTjtMbzswO0w7Ozs7O047Ozs7OworMTZCNDtSVU5JQyBMRVRURVIgS0FVTiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI1O1JVTklDIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI2O1JVTklDIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzE2Qjc7UlVOSUMgTEVUVEVSIEdFQk8gR1lGVSBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI4O1JVTklDIExFVFRFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzE2Qjk7UlVOSUMgTEVUVEVSIFdVTkpPIFdZTk4gVztMbzswO0w7Ozs7O047Ozs7OworMTZCQTtSVU5JQyBMRVRURVIgSEFHTEFaIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkI7UlVOSUMgTEVUVEVSIEhBRUdMIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkM7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILUhBR0FMTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJEO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUhBR0FMTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJFO1JVTklDIExFVFRFUiBOQVVESVogTllEIE5BVUQgTjtMbzswO0w7Ozs7O047Ozs7OworMTZCRjtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1OQVVEIE47TG87MDtMOzs7OztOOzs7OzsKKzE2QzA7UlVOSUMgTEVUVEVSIERPVFRFRC1OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMxO1JVTklDIExFVFRFUiBJU0FaIElTIElTUyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMyO1JVTklDIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMzO1JVTklDIExFVFRFUiBKRVJBTiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM0O1JVTklDIExFVFRFUiBHRVI7TG87MDtMOzs7OztOOzs7OzsKKzE2QzU7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILUFSIEFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM2O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUFSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Qzc7UlVOSUMgTEVUVEVSIElXQVogRU9IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM4O1JVTklDIExFVFRFUiBQRVJUSE8gUEVPUlRIIFA7TG87MDtMOzs7OztOOzs7OzsKKzE2Qzk7UlVOSUMgTEVUVEVSIEFMR0laIEVPTEhYO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNBO1JVTklDIExFVFRFUiBTT1dJTE8gUztMbzswO0w7Ozs7O047Ozs7OworMTZDQjtSVU5JQyBMRVRURVIgU0lHRUwgTE9ORy1CUkFOQ0gtU09MIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0M7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctU09MIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0Q7UlVOSUMgTEVUVEVSIEM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0U7UlVOSUMgTEVUVEVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0Y7UlVOSUMgTEVUVEVSIFRJV0FaIFRJUiBUWVIgVDtMbzswO0w7Ozs7O047Ozs7OworMTZEMDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1UWVIgVDtMbzswO0w7Ozs7O047Ozs7OworMTZEMTtSVU5JQyBMRVRURVIgRDtMbzswO0w7Ozs7O047Ozs7OworMTZEMjtSVU5JQyBMRVRURVIgQkVSS0FOQU4gQkVPUkMgQkpBUktBTiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQzO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUJKQVJLQU4gQjtMbzswO0w7Ozs7O047Ozs7OworMTZENDtSVU5JQyBMRVRURVIgRE9UVEVELVA7TG87MDtMOzs7OztOOzs7OzsKKzE2RDU7UlVOSUMgTEVUVEVSIE9QRU4tUDtMbzswO0w7Ozs7O047Ozs7OworMTZENjtSVU5JQyBMRVRURVIgRUhXQVogRUggRTtMbzswO0w7Ozs7O047Ozs7OworMTZENztSVU5JQyBMRVRURVIgTUFOTkFaIE1BTiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ4O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1NQURSIE07TG87MDtMOzs7OztOOzs7OzsKKzE2RDk7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctTUFEUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRBO1JVTklDIExFVFRFUiBMQVVLQVogTEFHVSBMT0dSIEw7TG87MDtMOzs7OztOOzs7OzsKKzE2REI7UlVOSUMgTEVUVEVSIERPVFRFRC1MO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRDO1JVTklDIExFVFRFUiBJTkdXQVo7TG87MDtMOzs7OztOOzs7OzsKKzE2REQ7UlVOSUMgTEVUVEVSIElORztMbzswO0w7Ozs7O047Ozs7OworMTZERTtSVU5JQyBMRVRURVIgREFHQVogREFFRyBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRGO1JVTklDIExFVFRFUiBPVEhBTEFOIEVUSEVMIE87TG87MDtMOzs7OztOOzs7OzsKKzE2RTA7UlVOSUMgTEVUVEVSIEVBUjtMbzswO0w7Ozs7O047Ozs7OworMTZFMTtSVU5JQyBMRVRURVIgSU9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUyO1JVTklDIExFVFRFUiBDV0VPUlRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUzO1JVTklDIExFVFRFUiBDQUxDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU0O1JVTklDIExFVFRFUiBDRUFMQztMbzswO0w7Ozs7O047Ozs7OworMTZFNTtSVU5JQyBMRVRURVIgU1RBTjtMbzswO0w7Ozs7O047Ozs7OworMTZFNjtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTc7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTg7UlVOSUMgTEVUVEVSIElDRUxBTkRJQy1ZUjtMbzswO0w7Ozs7O047Ozs7OworMTZFOTtSVU5JQyBMRVRURVIgUTtMbzswO0w7Ozs7O047Ozs7OworMTZFQTtSVU5JQyBMRVRURVIgWDtMbzswO0w7Ozs7O047Ozs7OworMTZFQjtSVU5JQyBTSU5HTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUM7UlVOSUMgTVVMVElQTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUQ7UlVOSUMgQ1JPU1MgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUU7UlVOSUMgQVJMQVVHIFNZTUJPTDtObDswO0w7Ozs7MTc7Tjs7Z29sZGVuIG51bWJlciAxNzs7OworMTZFRjtSVU5JQyBUVklNQURVUiBTWU1CT0w7Tmw7MDtMOzs7OzE4O047O2dvbGRlbiBudW1iZXIgMTg7OzsKKzE2RjA7UlVOSUMgQkVMR1RIT1IgU1lNQk9MO05sOzA7TDs7OzsxOTtOOztnb2xkZW4gbnVtYmVyIDE5Ozs7CisxNzAwO1RBR0FMT0cgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDE7VEFHQUxPRyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTcwMjtUQUdBTE9HIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzAzO1RBR0FMT0cgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzA0O1RBR0FMT0cgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzA1O1RBR0FMT0cgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNjtUQUdBTE9HIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNztUQUdBTE9HIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTcwODtUQUdBTE9HIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTcwOTtUQUdBTE9HIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQTtUQUdBTE9HIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQjtUQUdBTE9HIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQztUQUdBTE9HIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTcwRTtUQUdBTE9HIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTcwRjtUQUdBTE9HIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMDtUQUdBTE9HIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMTtUQUdBTE9HIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMjtUQUdBTE9HIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzEzO1RBR0FMT0cgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3MTQ7VEFHQUxPRyBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxNzIwO0hBTlVOT08gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MjE7SEFOVU5PTyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTcyMjtIQU5VTk9PIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzIzO0hBTlVOT08gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzI0O0hBTlVOT08gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzI1O0hBTlVOT08gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNjtIQU5VTk9PIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNztIQU5VTk9PIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTcyODtIQU5VTk9PIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTcyOTtIQU5VTk9PIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQTtIQU5VTk9PIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQjtIQU5VTk9PIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQztIQU5VTk9PIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRDtIQU5VTk9PIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRTtIQU5VTk9PIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRjtIQU5VTk9PIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTczMDtIQU5VTk9PIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTczMTtIQU5VTk9PIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTczMjtIQU5VTk9PIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzMzO0hBTlVOT08gVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3MzQ7SEFOVU5PTyBTSUdOIFBBTVVEUE9EO01uOzk7TlNNOzs7OztOOzs7OzsKKzE3MzU7UEhJTElQUElORSBTSU5HTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE3MzY7UEhJTElQUElORSBET1VCTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE3NDA7QlVISUQgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDE7QlVISUQgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3NDI7QlVISUQgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE3NDM7QlVISUQgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ0O0JVSElEIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NTtCVUhJRCBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ2O0JVSElEIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NztCVUhJRCBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDg7QlVISUQgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ5O0JVSElEIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTc0QTtCVUhJRCBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEI7QlVISUQgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRDO0JVSElEIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTc0RDtCVUhJRCBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEU7QlVISUQgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRGO0JVSElEIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTc1MDtCVUhJRCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NTE7QlVISUQgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzUyO0JVSElEIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzUzO0JVSElEIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzYwO1RBR0JBTldBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYxO1RBR0JBTldBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYyO1RBR0JBTldBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYzO1RBR0JBTldBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc2NDtUQUdCQU5XQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjU7VEFHQkFOV0EgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTc2NjtUQUdCQU5XQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3Njc7VEFHQkFOV0EgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY4O1RBR0JBTldBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTc2OTtUQUdCQU5XQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkE7VEFHQkFOV0EgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZCO1RBR0JBTldBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTc2QztUQUdCQU5XQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkU7VEFHQkFOV0EgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZGO1RBR0JBTldBIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTc3MDtUQUdCQU5XQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NzI7VEFHQkFOV0EgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3NzM7VEFHQkFOV0EgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3ODA7S0hNRVIgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgxO0tITUVSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3ODI7S0hNRVIgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgzO0tITUVSIExFVFRFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKKzE3ODQ7S0hNRVIgTEVUVEVSIE5HTztMbzswO0w7Ozs7O047Ozs7OworMTc4NTtLSE1FUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE3ODY7S0hNRVIgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4NztLSE1FUiBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKKzE3ODg7S0hNRVIgTEVUVEVSIENITztMbzswO0w7Ozs7O047Ozs7OworMTc4OTtLSE1FUiBMRVRURVIgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhBO0tITUVSIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QjtLSE1FUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QztLSE1FUiBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEQ7S0hNRVIgTEVUVEVSIFRUSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEU7S0hNRVIgTEVUVEVSIE5OTztMbzswO0w7Ozs7O047Ozs7OworMTc4RjtLSE1FUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTA7S0hNRVIgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5MTtLSE1FUiBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTI7S0hNRVIgTEVUVEVSIFRITztMbzswO0w7Ozs7O047Ozs7OworMTc5MztLSE1FUiBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzE3OTQ7S0hNRVIgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk1O0tITUVSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTY7S0hNRVIgTEVUVEVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk3O0tITUVSIExFVFRFUiBQSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTg7S0hNRVIgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk5O0tITUVSIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTc5QTtLSE1FUiBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzE3OUI7S0hNRVIgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlDO0tITUVSIExFVFRFUiBWTztMbzswO0w7Ozs7O047Ozs7OworMTc5RDtLSE1FUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlFO0tITUVSIExFVFRFUiBTU087TG87MDtMOzs7OztOOzs7OzsKKzE3OUY7S0hNRVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EwO0tITUVSIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMTtLSE1FUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTI7S0hNRVIgTEVUVEVSIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EzO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBUTtMbzswO0w7Ozs7O047Oyo7OzsKKzE3QTQ7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFBO0xvOzA7TDs7Ozs7Tjs7Kjs7OworMTdBNTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSTtMbzswO0w7Ozs7O047Ozs7OworMTdBNjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QTc7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QTg7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E5O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVVTtMbzswO0w7Ozs7O047Ozs7OworMTdBQTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVVVWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FCO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FDO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRDtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWVk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUY7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjA7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IxO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFPTyBUWVBFIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTdCMjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRT08gVFlQRSBUV087TG87MDtMOzs7OztOOzs7OzsKKzE3QjM7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0I0O0tITUVSIFZPV0VMIElOSEVSRU5UIEFRO0NmOzA7TDs7Ozs7Tjs7Kjs7OworMTdCNTtLSE1FUiBWT1dFTCBJTkhFUkVOVCBBQTtDZjswO0w7Ozs7O047Oyo7OzsKKzE3QjY7S0hNRVIgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMTdCNztLSE1FUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTdCODtLSE1FUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qjk7S0hNRVIgVk9XRUwgU0lHTiBZO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkE7S0hNRVIgVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JCO0tITUVSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JDO0tITUVSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTdCRDtLSE1FUiBWT1dFTCBTSUdOIFVBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkU7S0hNRVIgVk9XRUwgU0lHTiBPRTtNYzswO0w7Ozs7O047Ozs7OworMTdCRjtLSE1FUiBWT1dFTCBTSUdOIFlBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MwO0tITUVSIFZPV0VMIFNJR04gSUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzE7S0hNRVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MyO0tITUVSIFZPV0VMIFNJR04gQUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzM7S0hNRVIgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMTdDNDtLSE1FUiBWT1dFTCBTSUdOIE9PO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M1O0tITUVSIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzY7S0hNRVIgU0lHTiBOSUtBSElUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qzc7S0hNRVIgU0lHTiBSRUFITVVLO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M4O0tITUVSIFNJR04gWVVVS0FMRUFQSU5UVTtNYzswO0w7Ozs7O047Ozs7OworMTdDOTtLSE1FUiBTSUdOIE1VVVNJS0FUT0FOO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0E7S0hNRVIgU0lHTiBUUklJU0FQO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0I7S0hNRVIgU0lHTiBCQU5UT0M7TW47MDtOU007Ozs7O047Ozs7OworMTdDQztLSE1FUiBTSUdOIFJPQkFUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0Q7S0hNRVIgU0lHTiBUT0FOREFLSElBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NFO0tITUVSIFNJR04gS0FLQUJBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NGO0tITUVSIFNJR04gQUhTREE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMDtLSE1FUiBTSUdOIFNBTVlPSyBTQU5OWUE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMTtLSE1FUiBTSUdOIFZJUklBTTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0QyO0tITUVSIFNJR04gQ09FTkc7TW47OTtOU007Ozs7O047Ozs7OworMTdEMztLSE1FUiBTSUdOIEJBVEhBTUFTQVQ7TW47MDtOU007Ozs7O047Oyo7OzsKKzE3RDQ7S0hNRVIgU0lHTiBLSEFOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q1O0tITUVSIFNJR04gQkFSSVlPT1NBTjtQbzswO0w7Ozs7O047Ozs7OworMTdENjtLSE1FUiBTSUdOIENBTU5VQyBQSUkgS1VVSDtQbzswO0w7Ozs7O047Ozs7OworMTdENztLSE1FUiBTSUdOIExFSyBUT087TG07MDtMOzs7OztOOzs7OzsKKzE3RDg7S0hNRVIgU0lHTiBCRVlZQUw7UG87MDtMOzs7OztOOzsqOzs7CisxN0Q5O0tITUVSIFNJR04gUEhOQUVLIE1VQU47UG87MDtMOzs7OztOOzs7OzsKKzE3REE7S0hNRVIgU0lHTiBLT09NVVVUO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0RCO0tITUVSIENVUlJFTkNZIFNZTUJPTCBSSUVMO1NjOzA7RVQ7Ozs7O047Ozs7OworMTdEQztLSE1FUiBTSUdOIEFWQUtSQUhBU0FOWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3REQ7S0hNRVIgU0lHTiBBVFRIQUNBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzE3RTA7S0hNRVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTdFMTtLSE1FUiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE3RTI7S0hNRVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxN0UzO0tITUVSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxN0U0O0tITUVSIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE3RTU7S0hNRVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTdFNjtLSE1FUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE3RTc7S0hNRVIgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE3RTg7S0hNRVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE3RTk7S0hNRVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTdGMDtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFNPTjtObzswO09OOzs7OzA7Tjs7Ozs7CisxN0YxO0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgTVVPWTtObzswO09OOzs7OzE7Tjs7Ozs7CisxN0YyO0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgUElJO05vOzA7T047Ozs7MjtOOzs7OzsKKzE3RjM7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBCRUk7Tm87MDtPTjs7OzszO047Ozs7OworMTdGNDtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIEJVT047Tm87MDtPTjs7Ozs0O047Ozs7OworMTdGNTtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU07Tm87MDtPTjs7Ozs1O047Ozs7OworMTdGNjtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU0tTVVPWTtObzswO09OOzs7OzY7Tjs7Ozs7CisxN0Y3O0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgUFJBTS1QSUk7Tm87MDtPTjs7Ozs3O047Ozs7OworMTdGODtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU0tQkVJO05vOzA7T047Ozs7ODtOOzs7OzsKKzE3Rjk7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBQUkFNLUJVT047Tm87MDtPTjs7Ozs5O047Ozs7OworMTgwMDtNT05HT0xJQU4gQklSR0E7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAxO01PTkdPTElBTiBFTExJUFNJUztQbzswO09OOzs7OztOOzs7OzsKKzE4MDI7TU9OR09MSUFOIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMTgwMztNT05HT0xJQU4gRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwNDtNT05HT0xJQU4gQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA1O01PTkdPTElBTiBGT1VSIERPVFM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA2O01PTkdPTElBTiBUT0RPIFNPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMTgwNztNT05HT0xJQU4gU0lCRSBTWUxMQUJMRSBCT1VOREFSWSBNQVJLRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA4O01PTkdPTElBTiBNQU5DSFUgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA5O01PTkdPTElBTiBNQU5DSFUgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwQTtNT05HT0xJQU4gTklSVUdVO1BvOzA7T047Ozs7O047Ozs7OworMTgwQjtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgT05FO01uOzA7TlNNOzs7OztOOzs7OzsKKzE4MEM7TU9OR09MSUFOIEZSRUUgVkFSSUFUSU9OIFNFTEVDVE9SIFRXTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBEO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUSFJFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBFO01PTkdPTElBTiBWT1dFTCBTRVBBUkFUT1I7WnM7MDtXUzs7Ozs7Tjs7Ozs7CisxODEwO01PTkdPTElBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxODExO01PTkdPTElBTiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE4MTI7TU9OR09MSUFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTgxMztNT05HT0xJQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE4MTQ7TU9OR09MSUFOIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE4MTU7TU9OR09MSUFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE4MTY7TU9OR09MSUFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTgxNztNT05HT0xJQU4gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE4MTg7TU9OR09MSUFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxODE5O01PTkdPTElBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxODIwO01PTkdPTElBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTgyMTtNT05HT0xJQU4gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjI7TU9OR09MSUFOIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIzO01PTkdPTElBTiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTgyNDtNT05HT0xJQU4gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjU7TU9OR09MSUFOIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTgyNjtNT05HT0xJQU4gTEVUVEVSIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI3O01PTkdPTElBTiBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjg7TU9OR09MSUFOIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTgyOTtNT05HT0xJQU4gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMTgyQTtNT05HT0xJQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJCO01PTkdPTElBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkM7TU9OR09MSUFOIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRDtNT05HT0xJQU4gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJFO01PTkdPTElBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkY7TU9OR09MSUFOIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMDtNT05HT0xJQU4gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMxO01PTkdPTElBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMyO01PTkdPTElBTiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzM7TU9OR09MSUFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNDtNT05HT0xJQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNTtNT05HT0xJQU4gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM2O01PTkdPTElBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzc7TU9OR09MSUFOIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTgzODtNT05HT0xJQU4gTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM5O01PTkdPTElBTiBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0E7TU9OR09MSUFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQjtNT05HT0xJQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQztNT05HT0xJQU4gTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRDtNT05HT0xJQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNFO01PTkdPTElBTiBMRVRURVIgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNGO01PTkdPTElBTiBMRVRURVIgWlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQwO01PTkdPTElBTiBMRVRURVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQxO01PTkdPTElBTiBMRVRURVIgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQyO01PTkdPTElBTiBMRVRURVIgQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQzO01PTkdPTElBTiBMRVRURVIgVE9ETyBMT05HIFZPV0VMIFNJR047TG07MDtMOzs7OztOOzs7OzsKKzE4NDQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDU7TU9OR09MSUFOIExFVFRFUiBUT0RPIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NDY7TU9OR09MSUFOIExFVFRFUiBUT0RPIE87TG87MDtMOzs7OztOOzs7OzsKKzE4NDc7TU9OR09MSUFOIExFVFRFUiBUT0RPIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDg7TU9OR09MSUFOIExFVFRFUiBUT0RPIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ5O01PTkdPTElBTiBMRVRURVIgVE9ETyBVRTtMbzswO0w7Ozs7O047Ozs7OworMTg0QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRCO01PTkdPTElBTiBMRVRURVIgVE9ETyBCQTtMbzswO0w7Ozs7O047Ozs7OworMTg0QztNT05HT0xJQU4gTEVUVEVSIFRPRE8gUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRFO01PTkdPTElBTiBMRVRURVIgVE9ETyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTA7TU9OR09MSUFOIExFVFRFUiBUT0RPIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUxO01PTkdPTElBTiBMRVRURVIgVE9ETyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUzO01PTkdPTElBTiBMRVRURVIgVE9ETyBKQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU1O01PTkdPTElBTiBMRVRURVIgVE9ETyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gV0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NTc7TU9OR09MSUFOIExFVFRFUiBUT0RPIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU4O01PTkdPTElBTiBMRVRURVIgVE9ETyBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gSklBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVCO01PTkdPTElBTiBMRVRURVIgVE9ETyBOSUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUM7TU9OR09MSUFOIExFVFRFUiBUT0RPIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTg1RDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgRTtMbzswO0w7Ozs7O047Ozs7OworMTg1RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSTtMbzswO0w7Ozs7O047Ozs7OworMTg1RjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSVk7TG87MDtMOzs7OztOOzs7OzsKKzE4NjA7TU9OR09MSUFOIExFVFRFUiBTSUJFIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYxO01PTkdPTElBTiBMRVRURVIgU0lCRSBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYyO01PTkdPTElBTiBMRVRURVIgU0lCRSBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4NjM7TU9OR09MSUFOIExFVFRFUiBTSUJFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY0O01PTkdPTElBTiBMRVRURVIgU0lCRSBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NjY7TU9OR09MSUFOIExFVFRFUiBTSUJFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY3O01PTkdPTElBTiBMRVRURVIgU0lCRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4Njg7TU9OR09MSUFOIExFVFRFUiBTSUJFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY5O01PTkdPTElBTiBMRVRURVIgU0lCRSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkI7TU9OR09MSUFOIExFVFRFUiBTSUJFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZDO01PTkdPTElBTiBMRVRURVIgU0lCRSBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZGO01PTkdPTElBTiBMRVRURVIgU0lCRSBaQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgUkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcxO01PTkdPTElBTiBMRVRURVIgU0lCRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzI7TU9OR09MSUFOIExFVFRFUiBTSUJFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc0O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc1O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc2O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc3O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg4MDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEFOVVNWQVJBIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTg4MTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFZJU0FSR0EgT05FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgyO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREFNQVJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVUJBREFNQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIElOVkVSVEVEIFVCQURBTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODU7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUSFJFRSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg4O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSTtMbzswO0w7Ozs7O047Ozs7OworMTg4OTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhBO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhCO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OEM7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OEQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhFO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhGO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkwO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk0O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk1O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBSDtMbzswO0w7Ozs7O047Ozs7OworMTg5ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlDO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlEO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUY7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMThBMDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUQTtMbzswO0w7Ozs7O047Ozs7OworMThBMTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBESEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEzO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENZQTtMbzswO0w7Ozs7O047Ozs7OworMThBNDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4QTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE4O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMThBOTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBR0FMR0E7TW47MjI4O05TTTs7Ozs7Tjs7Ozs7CisxOTAwO0xJTUJVIFZPV0VMLUNBUlJJRVIgTEVUVEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTAxO0xJTUJVIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTkwMjtMSU1CVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTAzO0xJTUJVIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTkwNDtMSU1CVSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA1O0xJTUJVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MDY7TElNQlUgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA3O0xJTUJVIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MDg7TElNQlUgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA5O0xJTUJVIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEE7TElNQlUgTEVUVEVSIFlBTjtMbzswO0w7Ozs7O047Ozs7OworMTkwQjtMSU1CVSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEM7TElNQlUgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwRDtMSU1CVSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEU7TElNQlUgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwRjtMSU1CVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTA7TElNQlUgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTExO0xJTUJVIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTI7TElNQlUgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTEzO0xJTUJVIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTQ7TElNQlUgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE1O0xJTUJVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTkxNjtMSU1CVSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTc7TElNQlUgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE4O0xJTUJVIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTkxOTtMSU1CVSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTFBO0xJTUJVIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MUI7TElNQlUgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTFDO0xJTUJVIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTkyMDtMSU1CVSBWT1dFTCBTSUdOIEE7TW47MDtOU007Ozs7O047Ozs7OworMTkyMTtMSU1CVSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTkyMjtMSU1CVSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTkyMztMSU1CVSBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTI0O0xJTUJVIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzE5MjU7TElNQlUgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworMTkyNjtMSU1CVSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTI3O0xJTUJVIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTI4O0xJTUJVIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTI5O0xJTUJVIFNVQkpPSU5FRCBMRVRURVIgWUE7TWM7MDtOU007Ozs7O047Ozs7OworMTkyQTtMSU1CVSBTVUJKT0lORUQgTEVUVEVSIFJBO01jOzA7TlNNOzs7OztOOzs7OzsKKzE5MkI7TElNQlUgU1VCSk9JTkVEIExFVFRFUiBXQTtNYzswO05TTTs7Ozs7Tjs7Ozs7CisxOTMwO0xJTUJVIFNNQUxMIExFVFRFUiBLQTtNYzswO0w7Ozs7O047Ozs7OworMTkzMTtMSU1CVSBTTUFMTCBMRVRURVIgTkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTMyO0xJTUJVIFNNQUxMIExFVFRFUiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTMzO0xJTUJVIFNNQUxMIExFVFRFUiBUQTtNYzswO0w7Ozs7O047Ozs7OworMTkzNDtMSU1CVSBTTUFMTCBMRVRURVIgTkE7TWM7MDtMOzs7OztOOzs7OzsKKzE5MzU7TElNQlUgU01BTEwgTEVUVEVSIFBBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM2O0xJTUJVIFNNQUxMIExFVFRFUiBNQTtNYzswO0w7Ozs7O047Ozs7OworMTkzNztMSU1CVSBTTUFMTCBMRVRURVIgUkE7TWM7MDtMOzs7OztOOzs7OzsKKzE5Mzg7TElNQlUgU01BTEwgTEVUVEVSIExBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM5O0xJTUJVIFNJR04gTVVLUEhSRU5HO01uOzIyMjtOU007Ozs7O047Ozs7OworMTkzQTtMSU1CVSBTSUdOIEtFTVBIUkVORztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzE5M0I7TElNQlUgU0lHTiBTQS1JO01uOzIyMDtOU007Ozs7O047Ozs7OworMTk0MDtMSU1CVSBTSUdOIExPTztTbzswO09OOzs7OztOOzs7OzsKKzE5NDQ7TElNQlUgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzE5NDU7TElNQlUgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzE5NDY7TElNQlUgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTk0NztMSU1CVSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE5NDg7TElNQlUgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxOTQ5O0xJTUJVIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxOTRBO0xJTUJVIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE5NEI7TElNQlUgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTk0QztMSU1CVSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE5NEQ7TElNQlUgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE5NEU7TElNQlUgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE5NEY7TElNQlUgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTk1MDtUQUkgTEUgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTUxO1RBSSBMRSBMRVRURVIgWEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTI7VEFJIExFIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5NTM7VEFJIExFIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5NTQ7VEFJIExFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTk1NTtUQUkgTEUgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTU2O1RBSSBMRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTc7VEFJIExFIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTg7VEFJIExFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTk1OTtUQUkgTEUgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVBO1RBSSBMRSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVCO1RBSSBMRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE5NUM7VEFJIExFIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTk1RDtUQUkgTEUgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVFO1RBSSBMRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NUY7VEFJIExFIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MDtUQUkgTEUgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MTtUQUkgTEUgTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjI7VEFJIExFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MztUQUkgTEUgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjQ7VEFJIExFIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTY1O1RBSSBMRSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE5NjY7VEFJIExFIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMTk2NztUQUkgTEUgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE5Njg7VEFJIExFIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMTk2OTtUQUkgTEUgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE5NkE7VEFJIExFIExFVFRFUiBVRTtMbzswO0w7Ozs7O047Ozs7OworMTk2QjtUQUkgTEUgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE5NkM7VEFJIExFIExFVFRFUiBBVUU7TG87MDtMOzs7OztOOzs7OzsKKzE5NkQ7VEFJIExFIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMTk3MDtUQUkgTEUgTEVUVEVSIFRPTkUtMjtMbzswO0w7Ozs7O047Ozs7OworMTk3MTtUQUkgTEUgTEVUVEVSIFRPTkUtMztMbzswO0w7Ozs7O047Ozs7OworMTk3MjtUQUkgTEUgTEVUVEVSIFRPTkUtNDtMbzswO0w7Ozs7O047Ozs7OworMTk3MztUQUkgTEUgTEVUVEVSIFRPTkUtNTtMbzswO0w7Ozs7O047Ozs7OworMTk3NDtUQUkgTEUgTEVUVEVSIFRPTkUtNjtMbzswO0w7Ozs7O047Ozs7OworMTk4MDtORVcgVEFJIExVRSBMRVRURVIgSElHSCBRQTtMbzswO0w7Ozs7O047Ozs7OworMTk4MTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTgyO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTgzO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg0O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTk4NTtORVcgVEFJIExVRSBMRVRURVIgTE9XIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg2O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgWEE7TG87MDtMOzs7OztOOzs7OzsKKzE5ODc7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5ODg7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg5O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThBO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThCO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThDO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5OEQ7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTk4RTtORVcgVEFJIExVRSBMRVRURVIgSElHSCBUQTtMbzswO0w7Ozs7O047Ozs7OworMTk4RjtORVcgVEFJIExVRSBMRVRURVIgSElHSCBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTA7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggTkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTE7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTk5MjtORVcgVEFJIExVRSBMRVRURVIgTE9XIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTk5MztORVcgVEFJIExVRSBMRVRURVIgTE9XIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk0O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk1O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NjtORVcgVEFJIExVRSBMRVRURVIgSElHSCBNQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NztORVcgVEFJIExVRSBMRVRURVIgTE9XIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk4O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk5O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUE7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggRkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUI7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUM7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggTEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUQ7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBGQTtMbzswO0w7Ozs7O047Ozs7OworMTk5RTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlGO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTA7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTE7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggREE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTI7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggQkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTM7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTlBNDtORVcgVEFJIExVRSBMRVRURVIgTE9XIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUE1O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTY7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggS1ZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUE3O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFhWQTtMbzswO0w7Ozs7O047Ozs7OworMTlBODtORVcgVEFJIExVRSBMRVRURVIgTE9XIEtWQTtMbzswO0w7Ozs7O047Ozs7OworMTlBOTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFhWQTtMbzswO0w7Ozs7O047Ozs7OworMTlCMDtORVcgVEFJIExVRSBWT1dFTCBTSUdOIFZPV0VMIFNIT1JURU5FUjtNYzswO0w7Ozs7O047Ozs7OworMTlCMTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUIyO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QjM7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI0O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzE5QjU7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI2O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gQUU7TWM7MDtMOzs7OztOOzs7OzsKKzE5Qjc7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI4O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gT0E7TWM7MDtMOzs7OztOOzs7OzsKKzE5Qjk7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBVRTtNYzswO0w7Ozs7O047Ozs7OworMTlCQTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUJCO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gQUFZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUJDO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVVk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QkQ7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBPWTtNYzswO0w7Ozs7O047Ozs7OworMTlCRTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIE9BWTtNYzswO0w7Ozs7O047Ozs7OworMTlCRjtORVcgVEFJIExVRSBWT1dFTCBTSUdOIFVFWTtNYzswO0w7Ozs7O047Ozs7OworMTlDMDtORVcgVEFJIExVRSBWT1dFTCBTSUdOIElZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUMxO05FVyBUQUkgTFVFIExFVFRFUiBGSU5BTCBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUMyO05FVyBUQUkgTFVFIExFVFRFUiBGSU5BTCBORztMbzswO0w7Ozs7O047Ozs7OworMTlDMztORVcgVEFJIExVRSBMRVRURVIgRklOQUwgTjtMbzswO0w7Ozs7O047Ozs7OworMTlDNDtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgTTtMbzswO0w7Ozs7O047Ozs7OworMTlDNTtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgSztMbzswO0w7Ozs7O047Ozs7OworMTlDNjtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgRDtMbzswO0w7Ozs7O047Ozs7OworMTlDNztORVcgVEFJIExVRSBMRVRURVIgRklOQUwgQjtMbzswO0w7Ozs7O047Ozs7OworMTlDODtORVcgVEFJIExVRSBUT05FIE1BUkstMTtNYzswO0w7Ozs7O047Ozs7OworMTlDOTtORVcgVEFJIExVRSBUT05FIE1BUkstMjtNYzswO0w7Ozs7O047Ozs7OworMTlEMDtORVcgVEFJIExVRSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxOUQxO05FVyBUQUkgTFVFIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTlEMjtORVcgVEFJIExVRSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzE5RDM7TkVXIFRBSSBMVUUgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE5RDQ7TkVXIFRBSSBMVUUgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTlENTtORVcgVEFJIExVRSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxOUQ2O05FVyBUQUkgTFVFIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTlENztORVcgVEFJIExVRSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTlEODtORVcgVEFJIExVRSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTlEOTtORVcgVEFJIExVRSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxOURFO05FVyBUQUkgTFVFIFNJR04gTEFFO1BvOzA7T047Ozs7O047Ozs7OworMTlERjtORVcgVEFJIExVRSBTSUdOIExBRVY7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxOUUwO0tITUVSIFNZTUJPTCBQQVRIQU1BU0FUO1NvOzA7T047Ozs7O047Ozs7OworMTlFMTtLSE1FUiBTWU1CT0wgTVVPWSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFMjtLSE1FUiBTWU1CT0wgUElJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUUzO0tITUVSIFNZTUJPTCBCRUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTQ7S0hNRVIgU1lNQk9MIEJVT04gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTU7S0hNRVIgU1lNQk9MIFBSQU0gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTY7S0hNRVIgU1lNQk9MIFBSQU0tTVVPWSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFNztLSE1FUiBTWU1CT0wgUFJBTS1QSUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTg7S0hNRVIgU1lNQk9MIFBSQU0tQkVJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU5O0tITUVSIFNZTUJPTCBQUkFNLUJVT04gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUE7S0hNRVIgU1lNQk9MIERBUCBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFQjtLSE1FUiBTWU1CT0wgREFQLU1VT1kgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUM7S0hNRVIgU1lNQk9MIERBUC1QSUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUQ7S0hNRVIgU1lNQk9MIERBUC1CRUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUU7S0hNRVIgU1lNQk9MIERBUC1CVU9OIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVGO0tITUVSIFNZTUJPTCBEQVAtUFJBTSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlGMDtLSE1FUiBTWU1CT0wgVFVURVlBU0FUO1NvOzA7T047Ozs7O047Ozs7OworMTlGMTtLSE1FUiBTWU1CT0wgTVVPWSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUYyO0tITUVSIFNZTUJPTCBQSUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGMztLSE1FUiBTWU1CT0wgQkVJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RjQ7S0hNRVIgU1lNQk9MIEJVT04gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGNTtLSE1FUiBTWU1CT0wgUFJBTSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUY2O0tITUVSIFNZTUJPTCBQUkFNLU1VT1kgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGNztLSE1FUiBTWU1CT0wgUFJBTS1QSUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGODtLSE1FUiBTWU1CT0wgUFJBTS1CRUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGOTtLSE1FUiBTWU1CT0wgUFJBTS1CVU9OIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkE7S0hNRVIgU1lNQk9MIERBUCBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZCO0tITUVSIFNZTUJPTCBEQVAtTVVPWSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZDO0tITUVSIFNZTUJPTCBEQVAtUElJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkQ7S0hNRVIgU1lNQk9MIERBUC1CRUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGRTtLSE1FUiBTWU1CT0wgREFQLUJVT04gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGRjtLSE1FUiBTWU1CT0wgREFQLVBSQU0gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMUEwMDtCVUdJTkVTRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDE7QlVHSU5FU0UgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTAyO0JVR0lORVNFIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDM7QlVHSU5FU0UgTEVUVEVSIE5HS0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDQ7QlVHSU5FU0UgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTA1O0JVR0lORVNFIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMUEwNjtCVUdJTkVTRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDc7QlVHSU5FU0UgTEVUVEVSIE1QQTtMbzswO0w7Ozs7O047Ozs7OworMUEwODtCVUdJTkVTRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDk7QlVHSU5FU0UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTBBO0JVR0lORVNFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMUEwQjtCVUdJTkVTRSBMRVRURVIgTlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTBDO0JVR0lORVNFIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMUEwRDtCVUdJTkVTRSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMEU7QlVHSU5FU0UgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMUEwRjtCVUdJTkVTRSBMRVRURVIgTllDQTtMbzswO0w7Ozs7O047Ozs7OworMUExMDtCVUdJTkVTRSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTE7QlVHSU5FU0UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTEyO0JVR0lORVNFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMUExMztCVUdJTkVTRSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTQ7QlVHSU5FU0UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTE1O0JVR0lORVNFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTE2O0JVR0lORVNFIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMUExNztCVUdJTkVTRSBWT1dFTCBTSUdOIEk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQTE4O0JVR0lORVNFIFZPV0VMIFNJR04gVTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFBMTk7QlVHSU5FU0UgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxQTFBO0JVR0lORVNFIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMUExQjtCVUdJTkVTRSBWT1dFTCBTSUdOIEFFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxQTFFO0JVR0lORVNFIFBBTExBV0E7UG87MDtMOzs7OztOOzs7OzsKKzFBMUY7QlVHSU5FU0UgRU5EIE9GIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzFCMDA7QkFMSU5FU0UgU0lHTiBVTFUgUklDRU07TW47MDtOU007Ozs7O047O2FyZGhhY2FuZHJhOzs7CisxQjAxO0JBTElORVNFIFNJR04gVUxVIENBTkRSQTtNbjswO05TTTs7Ozs7Tjs7Y2FuZHJhYmluZHU7OzsKKzFCMDI7QkFMSU5FU0UgU0lHTiBDRUNFSztNbjswO05TTTs7Ozs7Tjs7YW51c3ZhcmE7OzsKKzFCMDM7QkFMSU5FU0UgU0lHTiBTVVJBTkc7TW47MDtOU007Ozs7O047O3JlcGhhOzs7CisxQjA0O0JBTElORVNFIFNJR04gQklTQUg7TWM7MDtMOzs7OztOOzt2aXNhcmdhOzs7CisxQjA1O0JBTElORVNFIExFVFRFUiBBS0FSQTtMbzswO0w7Ozs7O047O2E7OzsKKzFCMDY7QkFMSU5FU0UgTEVUVEVSIEFLQVJBIFRFRFVORztMbzswO0w7Ozs7O047O2FhOzs7CisxQjA3O0JBTElORVNFIExFVFRFUiBJS0FSQTtMbzswO0w7Ozs7O047O2k7OzsKKzFCMDg7QkFMSU5FU0UgTEVUVEVSIElLQVJBIFRFRFVORztMbzswO0w7Ozs7O047O2lpOzs7CisxQjA5O0JBTElORVNFIExFVFRFUiBVS0FSQTtMbzswO0w7Ozs7O047O3U7OzsKKzFCMEE7QkFMSU5FU0UgTEVUVEVSIFVLQVJBIFRFRFVORztMbzswO0w7Ozs7O047O3V1Ozs7CisxQjBCO0JBTElORVNFIExFVFRFUiBSQSBSRVBBO0xvOzA7TDs7Ozs7Tjs7dm9jYWxpYyByOzs7CisxQjBDO0JBTElORVNFIExFVFRFUiBSQSBSRVBBIFRFRFVORztMbzswO0w7Ozs7O047O3ZvY2FsaWMgcnI7OzsKKzFCMEQ7QkFMSU5FU0UgTEVUVEVSIExBIExFTkdBO0xvOzA7TDs7Ozs7Tjs7dm9jYWxpYyBsOzs7CisxQjBFO0JBTElORVNFIExFVFRFUiBMQSBMRU5HQSBURURVTkc7TG87MDtMOzs7OztOOzt2b2NhbGljIGxsOzs7CisxQjBGO0JBTElORVNFIExFVFRFUiBFS0FSQTtMbzswO0w7Ozs7O047O2U7OzsKKzFCMTA7QkFMSU5FU0UgTEVUVEVSIEFJS0FSQTtMbzswO0w7Ozs7O047O2FpOzs7CisxQjExO0JBTElORVNFIExFVFRFUiBPS0FSQTtMbzswO0w7Ozs7O047O287OzsKKzFCMTI7QkFMSU5FU0UgTEVUVEVSIE9LQVJBIFRFRFVORztMbzswO0w7Ozs7O047O2F1Ozs7CisxQjEzO0JBTElORVNFIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMUIxNDtCQUxJTkVTRSBMRVRURVIgS0EgTUFIQVBSQU5BO0xvOzA7TDs7Ozs7Tjs7a2hhOzs7CisxQjE1O0JBTElORVNFIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMUIxNjtCQUxJTkVTRSBMRVRURVIgR0EgR09SQTtMbzswO0w7Ozs7O047O2doYTs7OworMUIxNztCQUxJTkVTRSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjE4O0JBTElORVNFIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMUIxOTtCQUxJTkVTRSBMRVRURVIgQ0EgTEFDQTtMbzswO0w7Ozs7O047O2NoYTs7OworMUIxQTtCQUxJTkVTRSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzFCMUI7QkFMSU5FU0UgTEVUVEVSIEpBIEpFUkE7TG87MDtMOzs7OztOOztqaGE7OzsKKzFCMUM7QkFMSU5FU0UgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMUIxRDtCQUxJTkVTRSBMRVRURVIgVEEgTEFUSUs7TG87MDtMOzs7OztOOzt0dGE7OzsKKzFCMUU7QkFMSU5FU0UgTEVUVEVSIFRBIE1VUkRBIE1BSEFQUkFOQTtMbzswO0w7Ozs7O047O3R0aGE7OzsKKzFCMUY7QkFMSU5FU0UgTEVUVEVSIERBIE1VUkRBIEFMUEFQUkFOQTtMbzswO0w7Ozs7O047O2RkYTs7OworMUIyMDtCQUxJTkVTRSBMRVRURVIgREEgTVVSREEgTUFIQVBSQU5BO0xvOzA7TDs7Ozs7Tjs7ZGRoYTs7OworMUIyMTtCQUxJTkVTRSBMRVRURVIgTkEgUkFNQkFUO0xvOzA7TDs7Ozs7Tjs7bm5hOzs7CisxQjIyO0JBTElORVNFIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMUIyMztCQUxJTkVTRSBMRVRURVIgVEEgVEFXQTtMbzswO0w7Ozs7O047O3RoYTs7OworMUIyNDtCQUxJTkVTRSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzFCMjU7QkFMSU5FU0UgTEVUVEVSIERBIE1BRFU7TG87MDtMOzs7OztOOztkaGE7OzsKKzFCMjY7QkFMSU5FU0UgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjI3O0JBTElORVNFIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMUIyODtCQUxJTkVTRSBMRVRURVIgUEEgS0FQQUw7TG87MDtMOzs7OztOOztwaGE7OzsKKzFCMjk7QkFMSU5FU0UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjJBO0JBTElORVNFIExFVFRFUiBCQSBLRU1CQU5HO0xvOzA7TDs7Ozs7Tjs7YmhhOzs7CisxQjJCO0JBTElORVNFIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMUIyQztCQUxJTkVTRSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzFCMkQ7QkFMSU5FU0UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjJFO0JBTElORVNFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMUIyRjtCQUxJTkVTRSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzFCMzA7QkFMSU5FU0UgTEVUVEVSIFNBIFNBR0E7TG87MDtMOzs7OztOOztzaGE7OzsKKzFCMzE7QkFMSU5FU0UgTEVUVEVSIFNBIFNBUEE7TG87MDtMOzs7OztOOztzc2E7OzsKKzFCMzI7QkFMSU5FU0UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjMzO0JBTElORVNFIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMUIzNDtCQUxJTkVTRSBTSUdOIFJFUkVLQU47TW47NztOU007Ozs7O047O251a3RhOzs7CisxQjM1O0JBTElORVNFIFZPV0VMIFNJR04gVEVEVU5HO01jOzA7TDs7Ozs7Tjs7YWE7OzsKKzFCMzY7QkFMSU5FU0UgVk9XRUwgU0lHTiBVTFU7TW47MDtOU007Ozs7O047O2k7OzsKKzFCMzc7QkFMSU5FU0UgVk9XRUwgU0lHTiBVTFUgU0FSSTtNbjswO05TTTs7Ozs7Tjs7aWk7OzsKKzFCMzg7QkFMSU5FU0UgVk9XRUwgU0lHTiBTVUtVO01uOzA7TlNNOzs7OztOOzt1Ozs7CisxQjM5O0JBTElORVNFIFZPV0VMIFNJR04gU1VLVSBJTFVUO01uOzA7TlNNOzs7OztOOzt1dTs7OworMUIzQTtCQUxJTkVTRSBWT1dFTCBTSUdOIFJBIFJFUEE7TW47MDtOU007Ozs7O047O3ZvY2FsaWMgcjs7OworMUIzQjtCQUxJTkVTRSBWT1dFTCBTSUdOIFJBIFJFUEEgVEVEVU5HO01jOzA7TDs7Ozs7Tjs7dm9jYWxpYyBycjs7OworMUIzQztCQUxJTkVTRSBWT1dFTCBTSUdOIExBIExFTkdBO01uOzA7TlNNOzs7OztOOzt2b2NhbGljIGw7OzsKKzFCM0Q7QkFMSU5FU0UgVk9XRUwgU0lHTiBMQSBMRU5HQSBURURVTkc7TWM7MDtMOzs7OztOOzt2b2NhbGljIGxsOzs7CisxQjNFO0JBTElORVNFIFZPV0VMIFNJR04gVEFMSU5HO01jOzA7TDs7Ozs7Tjs7ZTs7OworMUIzRjtCQUxJTkVTRSBWT1dFTCBTSUdOIFRBTElORyBSRVBBO01jOzA7TDs7Ozs7Tjs7YWk7OzsKKzFCNDA7QkFMSU5FU0UgVk9XRUwgU0lHTiBUQUxJTkcgVEVEVU5HO01jOzA7TDs7Ozs7Tjs7bzs7OworMUI0MTtCQUxJTkVTRSBWT1dFTCBTSUdOIFRBTElORyBSRVBBIFRFRFVORztNYzswO0w7Ozs7O047O2F1Ozs7CisxQjQyO0JBTElORVNFIFZPV0VMIFNJR04gUEVQRVQ7TW47MDtOU007Ozs7O047O2FlOzs7CisxQjQzO0JBTElORVNFIFZPV0VMIFNJR04gUEVQRVQgVEVEVU5HO01jOzA7TDs7Ozs7Tjs7b2U7OzsKKzFCNDQ7QkFMSU5FU0UgQURFRyBBREVHO01jOzk7TDs7Ozs7Tjs7dmlyYW1hOzs7CisxQjQ1O0JBTElORVNFIExFVFRFUiBLQUYgU0FTQUs7TG87MDtMOzs7OztOOzs7OzsKKzFCNDY7QkFMSU5FU0UgTEVUVEVSIEtIT1QgU0FTQUs7TG87MDtMOzs7OztOOzs7OzsKKzFCNDc7QkFMSU5FU0UgTEVUVEVSIFRaSVIgU0FTQUs7TG87MDtMOzs7OztOOzs7OzsKKzFCNDg7QkFMSU5FU0UgTEVUVEVSIEVGIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjQ5O0JBTElORVNFIExFVFRFUiBWRSBTQVNBSztMbzswO0w7Ozs7O047Ozs7OworMUI0QTtCQUxJTkVTRSBMRVRURVIgWkFMIFNBU0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQjRCO0JBTElORVNFIExFVFRFUiBBU1lVUkEgU0FTQUs7TG87MDtMOzs7OztOOzs7OzsKKzFCNTA7QkFMSU5FU0UgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMUI1MTtCQUxJTkVTRSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzFCNTI7QkFMSU5FU0UgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxQjUzO0JBTElORVNFIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxQjU0O0JBTElORVNFIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzFCNTU7QkFMSU5FU0UgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMUI1NjtCQUxJTkVTRSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzFCNTc7QkFMSU5FU0UgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzFCNTg7QkFMSU5FU0UgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzFCNTk7QkFMSU5FU0UgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMUI1QTtCQUxJTkVTRSBQQU5USTtQbzswO0w7Ozs7O047O3NlY3Rpb247OzsKKzFCNUI7QkFMSU5FU0UgUEFNQURBO1BvOzA7TDs7Ozs7Tjs7aG9ub3JpZmljIHNlY3Rpb247OzsKKzFCNUM7QkFMSU5FU0UgV0lORFU7UG87MDtMOzs7OztOOztwdW5jdHVhdGlvbiByaW5nOzs7CisxQjVEO0JBTElORVNFIENBUklLIFBBTVVOR0tBSDtQbzswO0w7Ozs7O047O2NvbG9uOzs7CisxQjVFO0JBTElORVNFIENBUklLIFNJS0k7UG87MDtMOzs7OztOOztkYW5kYTs7OworMUI1RjtCQUxJTkVTRSBDQVJJSyBQQVJFUkVOO1BvOzA7TDs7Ozs7Tjs7ZG91YmxlIGRhbmRhOzs7CisxQjYwO0JBTElORVNFIFBBTUVORU5HO1BvOzA7TDs7Ozs7Tjs7bGluZS1icmVha2luZyBoeXBoZW47OzsKKzFCNjE7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgRE9ORztTbzswO0w7Ozs7O047Ozs7OworMUI2MjtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBERU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjYzO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERVTkc7U287MDtMOzs7OztOOzs7OzsKKzFCNjQ7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgREFORztTbzswO0w7Ozs7O047Ozs7OworMUI2NTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBEQU5HIFNVUkFORztTbzswO0w7Ozs7O047Ozs7OworMUI2NjtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBESU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjY3O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERBRU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjY4O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERFVU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjY5O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERBSU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjZBO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIERBTkcgR0VERTtTbzswO0w7Ozs7O047Ozs7OworMUI2QjtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVEVHRUg7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjZDO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBFTkRFUDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFCNkQ7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEtFTVBVTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNkU7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEtFTVBMSTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNkY7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEpFR09HQU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQjcwO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIENPTUJJTklORyBLRU1QVUwgV0lUSCBKRUdPR0FOO01uOzIzMDtOU007Ozs7O047Ozs7OworMUI3MTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgS0VNUExJIFdJVEggSkVHT0dBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNzI7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEJFTkRFO01uOzIzMDtOU007Ozs7O047Ozs7OworMUI3MztCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgR09ORztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFCNzQ7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgUklHSFQtSEFORCBPUEVOIERVRztTbzswO0w7Ozs7O047Ozs7OworMUI3NTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBSSUdIVC1IQU5EIE9QRU4gREFHO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjc2O0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIFJJR0hULUhBTkQgQ0xPU0VEIFRVSztTbzswO0w7Ozs7O047Ozs7OworMUI3NztCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBSSUdIVC1IQU5EIENMT1NFRCBUQUs7U287MDtMOzs7OztOOzs7OzsKKzFCNzg7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgTEVGVC1IQU5EIE9QRU4gUEFORztTbzswO0w7Ozs7O047Ozs7OworMUI3OTtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBMRUZULUhBTkQgT1BFTiBQVU5HO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxQjdBO0JBTElORVNFIE1VU0lDQUwgU1lNQk9MIExFRlQtSEFORCBDTE9TRUQgUExBSztTbzswO0w7Ozs7O047Ozs7OworMUI3QjtCQUxJTkVTRSBNVVNJQ0FMIFNZTUJPTCBMRUZULUhBTkQgQ0xPU0VEIFBMVUs7U287MDtMOzs7OztOOzs7OzsKKzFCN0M7QkFMSU5FU0UgTVVTSUNBTCBTWU1CT0wgTEVGVC1IQU5EIE9QRU4gUElORztTbzswO0w7Ozs7O047Ozs7OworMUQwMDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBBO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEFFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQUU7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDM7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQkFSUkVEIEI7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQztMbDswO0w7Ozs7O047Ozs7OworMUQwNTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBEO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEVUSDtMbDswO0w7Ozs7O047Ozs7OworMUQwNztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgT1BFTiBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSTtMbDswO0w7Ozs7O047Ozs7OworMUQwQTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBKO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEs7TGw7MDtMOzs7OztOOzs7OzsKKzFEMEM7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQwRDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBNO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFJFVkVSU0VEIE47TGw7MDtMOzs7OztOOzs7OzsKKzFEMEY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTztMbDswO0w7Ozs7O047Ozs7OworMUQxMDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPUEVOIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTE7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTI7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIE9QRU4gTztMbDswO0w7Ozs7O047Ozs7OworMUQxMztMQVRJTiBTTUFMTCBMRVRURVIgU0lERVdBWVMgTyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQxNDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE9FO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE9VO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2O0xBVElOIFNNQUxMIExFVFRFUiBUT1AgSEFMRiBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE3O0xBVElOIFNNQUxMIExFVFRFUiBCT1RUT00gSEFMRiBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFA7TGw7MDtMOzs7OztOOzs7OzsKKzFEMTk7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgUkVWRVJTRUQgUjtMbDswO0w7Ozs7O047Ozs7OworMUQxQTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBUVVJORUQgUjtMbDswO0w7Ozs7O047Ozs7OworMUQxQjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBUO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFU7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUQ7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIFU7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUU7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIERJQUVSRVNJWkVEIFU7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUY7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIFRVUk5FRCBNO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDIwO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFY7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgVztMbDswO0w7Ozs7O047Ozs7OworMUQyMjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBaO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDIzO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEVaSDtMbDswO0w7Ozs7O047Ozs7OworMUQyNDtMQVRJTiBMRVRURVIgVk9JQ0VEIExBUllOR0VBTCBTUElSQU5UO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI1O0xBVElOIExFVFRFUiBBSU47TGw7MDtMOzs7OztOOzs7OzsKKzFEMjY7R1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgR0FNTUE7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjc7R1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgTEFNREE7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjg7R1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgUEk7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjk7R1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgUkhPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDJBO0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFBTSTtMbDswO0w7Ozs7O047Ozs7OworMUQyQjtDWVJJTExJQyBMRVRURVIgU01BTEwgQ0FQSVRBTCBFTDtMbDswO0w7Ozs7O047Ozs7OworMUQyQztNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBBO0xtOzA7TDs8c3VwZXI+IDAwNDE7Ozs7Tjs7Ozs7CisxRDJEO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEFFO0xtOzA7TDs8c3VwZXI+IDAwQzY7Ozs7Tjs7Ozs7CisxRDJFO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEI7TG07MDtMOzxzdXBlcj4gMDA0Mjs7OztOOzs7OzsKKzFEMkY7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgQkFSUkVEIEI7TG07MDtMOzs7OztOOzs7OzsKKzFEMzA7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgRDtMbTswO0w7PHN1cGVyPiAwMDQ0Ozs7O047Ozs7OworMUQzMTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBFO0xtOzA7TDs8c3VwZXI+IDAwNDU7Ozs7Tjs7Ozs7CisxRDMyO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFJFVkVSU0VEIEU7TG07MDtMOzxzdXBlcj4gMDE4RTs7OztOOzs7OzsKKzFEMzM7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgRztMbTswO0w7PHN1cGVyPiAwMDQ3Ozs7O047Ozs7OworMUQzNDtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBIO0xtOzA7TDs8c3VwZXI+IDAwNDg7Ozs7Tjs7Ozs7CisxRDM1O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEk7TG07MDtMOzxzdXBlcj4gMDA0OTs7OztOOzs7OzsKKzFEMzY7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgSjtMbTswO0w7PHN1cGVyPiAwMDRBOzs7O047Ozs7OworMUQzNztNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBLO0xtOzA7TDs8c3VwZXI+IDAwNEI7Ozs7Tjs7Ozs7CisxRDM4O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEw7TG07MDtMOzxzdXBlcj4gMDA0Qzs7OztOOzs7OzsKKzFEMzk7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgTTtMbTswO0w7PHN1cGVyPiAwMDREOzs7O047Ozs7OworMUQzQTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBOO0xtOzA7TDs8c3VwZXI+IDAwNEU7Ozs7Tjs7Ozs7CisxRDNCO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFJFVkVSU0VEIE47TG07MDtMOzs7OztOOzs7OzsKKzFEM0M7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgTztMbTswO0w7PHN1cGVyPiAwMDRGOzs7O047Ozs7OworMUQzRDtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBPVTtMbTswO0w7PHN1cGVyPiAwMjIyOzs7O047Ozs7OworMUQzRTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBQO0xtOzA7TDs8c3VwZXI+IDAwNTA7Ozs7Tjs7Ozs7CisxRDNGO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFI7TG07MDtMOzxzdXBlcj4gMDA1Mjs7OztOOzs7OzsKKzFENDA7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgVDtMbTswO0w7PHN1cGVyPiAwMDU0Ozs7O047Ozs7OworMUQ0MTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBVO0xtOzA7TDs8c3VwZXI+IDAwNTU7Ozs7Tjs7Ozs7CisxRDQyO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFc7TG07MDtMOzxzdXBlcj4gMDA1Nzs7OztOOzs7OzsKKzFENDM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEE7TG07MDtMOzxzdXBlcj4gMDA2MTs7OztOOzs7OzsKKzFENDQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBBO0xtOzA7TDs8c3VwZXI+IDAyNTA7Ozs7Tjs7Ozs7CisxRDQ1O01PRElGSUVSIExFVFRFUiBTTUFMTCBBTFBIQTtMbTswO0w7PHN1cGVyPiAwMjUxOzs7O047Ozs7OworMUQ0NjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIEFFO0xtOzA7TDs8c3VwZXI+IDFEMDI7Ozs7Tjs7Ozs7CisxRDQ3O01PRElGSUVSIExFVFRFUiBTTUFMTCBCO0xtOzA7TDs8c3VwZXI+IDAwNjI7Ozs7Tjs7Ozs7CisxRDQ4O01PRElGSUVSIExFVFRFUiBTTUFMTCBEO0xtOzA7TDs8c3VwZXI+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ5O01PRElGSUVSIExFVFRFUiBTTUFMTCBFO0xtOzA7TDs8c3VwZXI+IDAwNjU7Ozs7Tjs7Ozs7CisxRDRBO01PRElGSUVSIExFVFRFUiBTTUFMTCBTQ0hXQTtMbTswO0w7PHN1cGVyPiAwMjU5Ozs7O047Ozs7OworMUQ0QjtNT0RJRklFUiBMRVRURVIgU01BTEwgT1BFTiBFO0xtOzA7TDs8c3VwZXI+IDAyNUI7Ozs7Tjs7Ozs7CisxRDRDO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgT1BFTiBFO0xtOzA7TDs8c3VwZXI+IDAyNUM7Ozs7Tjs7Ozs7CisxRDREO01PRElGSUVSIExFVFRFUiBTTUFMTCBHO0xtOzA7TDs8c3VwZXI+IDAwNjc7Ozs7Tjs7Ozs7CisxRDRFO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgSTtMbTswO0w7Ozs7O047Ozs7OworMUQ0RjtNT0RJRklFUiBMRVRURVIgU01BTEwgSztMbTswO0w7PHN1cGVyPiAwMDZCOzs7O047Ozs7OworMUQ1MDtNT0RJRklFUiBMRVRURVIgU01BTEwgTTtMbTswO0w7PHN1cGVyPiAwMDZEOzs7O047Ozs7OworMUQ1MTtNT0RJRklFUiBMRVRURVIgU01BTEwgRU5HO0xtOzA7TDs8c3VwZXI+IDAxNEI7Ozs7Tjs7Ozs7CisxRDUyO01PRElGSUVSIExFVFRFUiBTTUFMTCBPO0xtOzA7TDs8c3VwZXI+IDAwNkY7Ozs7Tjs7Ozs7CisxRDUzO01PRElGSUVSIExFVFRFUiBTTUFMTCBPUEVOIE87TG07MDtMOzxzdXBlcj4gMDI1NDs7OztOOzs7OzsKKzFENTQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRPUCBIQUxGIE87TG07MDtMOzxzdXBlcj4gMUQxNjs7OztOOzs7OzsKKzFENTU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEJPVFRPTSBIQUxGIE87TG07MDtMOzxzdXBlcj4gMUQxNzs7OztOOzs7OzsKKzFENTY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFA7TG07MDtMOzxzdXBlcj4gMDA3MDs7OztOOzs7OzsKKzFENTc7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFQ7TG07MDtMOzxzdXBlcj4gMDA3NDs7OztOOzs7OzsKKzFENTg7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFU7TG07MDtMOzxzdXBlcj4gMDA3NTs7OztOOzs7OzsKKzFENTk7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFNJREVXQVlTIFU7TG07MDtMOzxzdXBlcj4gMUQxRDs7OztOOzs7OzsKKzFENUE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBNO0xtOzA7TDs8c3VwZXI+IDAyNkY7Ozs7Tjs7Ozs7CisxRDVCO01PRElGSUVSIExFVFRFUiBTTUFMTCBWO0xtOzA7TDs8c3VwZXI+IDAwNzY7Ozs7Tjs7Ozs7CisxRDVDO01PRElGSUVSIExFVFRFUiBTTUFMTCBBSU47TG07MDtMOzxzdXBlcj4gMUQyNTs7OztOOzs7OzsKKzFENUQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEJFVEE7TG07MDtMOzxzdXBlcj4gMDNCMjs7OztOOzs7OzsKKzFENUU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEdSRUVLIEdBTU1BO0xtOzA7TDs8c3VwZXI+IDAzQjM7Ozs7Tjs7Ozs7CisxRDVGO01PRElGSUVSIExFVFRFUiBTTUFMTCBERUxUQTtMbTswO0w7PHN1cGVyPiAwM0I0Ozs7O047Ozs7OworMUQ2MDtNT0RJRklFUiBMRVRURVIgU01BTEwgR1JFRUsgUEhJO0xtOzA7TDs8c3VwZXI+IDAzQzY7Ozs7Tjs7Ozs7CisxRDYxO01PRElGSUVSIExFVFRFUiBTTUFMTCBDSEk7TG07MDtMOzxzdXBlcj4gMDNDNzs7OztOOzs7OzsKKzFENjI7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs8c3ViPiAwMDY5Ozs7O047Ozs7OworMUQ2MztMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFI7TGw7MDtMOzxzdWI+IDAwNzI7Ozs7Tjs7Ozs7CisxRDY0O0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgVTtMbDswO0w7PHN1Yj4gMDA3NTs7OztOOzs7OzsKKzFENjU7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs8c3ViPiAwMDc2Ozs7O047Ozs7OworMUQ2NjtHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEJFVEE7TGw7MDtMOzxzdWI+IDAzQjI7Ozs7Tjs7Ozs7CisxRDY3O0dSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzxzdWI+IDAzQjM7Ozs7Tjs7Ozs7CisxRDY4O0dSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgUkhPO0xsOzA7TDs8c3ViPiAwM0MxOzs7O047Ozs7OworMUQ2OTtHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFBISTtMbDswO0w7PHN1Yj4gMDNDNjs7OztOOzs7OzsKKzFENkE7R1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBDSEk7TGw7MDtMOzxzdWI+IDAzQzc7Ozs7Tjs7Ozs7CisxRDZCO0xBVElOIFNNQUxMIExFVFRFUiBVRTtMbDswO0w7Ozs7O047Ozs7OworMUQ2QztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ2RDtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ2RTtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ2RjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ3MDtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ3MTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ3MjtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMUQ3MztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEZJU0hIT09LIEFORCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzQ7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzU7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzY7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzc7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc4O01PRElGSUVSIExFVFRFUiBDWVJJTExJQyBFTjtMbTswO0w7PHN1cGVyPiAwNDNEOzs7O047Ozs7OworMUQ3OTtMQVRJTiBTTUFMTCBMRVRURVIgSU5TVUxBUiBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDdBO0xBVElOIFNNQUxMIExFVFRFUiBUSCBXSVRIIFNUUklLRVRIUk9VR0g7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0I7TEFUSU4gU01BTEwgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQ3QztMQVRJTiBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQ3RDtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzsyQzYzOzsyQzYzCisxRDdFO0xBVElOIFNNQUxMIENBUElUQUwgTEVUVEVSIFUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEODA7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODI7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODM7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODQ7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODU7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODY7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODc7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODg7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEODk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOEI7TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4QztMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4RDtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4RTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4RjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDkwO0xBVElOIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDkxO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggSE9PSyBBTkQgVEFJTDtMbDswO0w7Ozs7O047Ozs7OworMUQ5MjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDkzO0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIEUgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5NDtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTU7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5NztMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBPIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTg7TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOUE7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDlCO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgQUxQSEE7TG07MDtMOzxzdXBlcj4gMDI1Mjs7OztOOzs7OzsKKzFEOUM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEM7TG07MDtMOzxzdXBlcj4gMDA2Mzs7OztOOzs7OzsKKzFEOUQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEMgV0lUSCBDVVJMO0xtOzA7TDs8c3VwZXI+IDAyNTU7Ozs7Tjs7Ozs7CisxRDlFO01PRElGSUVSIExFVFRFUiBTTUFMTCBFVEg7TG07MDtMOzxzdXBlcj4gMDBGMDs7OztOOzs7OzsKKzFEOUY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFJFVkVSU0VEIE9QRU4gRTtMbTswO0w7PHN1cGVyPiAwMjVDOzs7O047Ozs7OworMURBMDtNT0RJRklFUiBMRVRURVIgU01BTEwgRjtMbTswO0w7PHN1cGVyPiAwMDY2Ozs7O047Ozs7OworMURBMTtNT0RJRklFUiBMRVRURVIgU01BTEwgRE9UTEVTUyBKIFdJVEggU1RST0tFO0xtOzA7TDs8c3VwZXI+IDAyNUY7Ozs7Tjs7Ozs7CisxREEyO01PRElGSUVSIExFVFRFUiBTTUFMTCBTQ1JJUFQgRztMbTswO0w7PHN1cGVyPiAwMjYxOzs7O047Ozs7OworMURBMztNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIEg7TG07MDtMOzxzdXBlcj4gMDI2NTs7OztOOzs7OzsKKzFEQTQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEkgV0lUSCBTVFJPS0U7TG07MDtMOzxzdXBlcj4gMDI2ODs7OztOOzs7OzsKKzFEQTU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIElPVEE7TG07MDtMOzxzdXBlcj4gMDI2OTs7OztOOzs7OzsKKzFEQTY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSTtMbTswO0w7PHN1cGVyPiAwMjZBOzs7O047Ozs7OworMURBNztNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJIFdJVEggU1RST0tFO0xtOzA7TDs8c3VwZXI+IDFEN0I7Ozs7Tjs7Ozs7CisxREE4O01PRElGSUVSIExFVFRFUiBTTUFMTCBKIFdJVEggQ1JPU1NFRC1UQUlMO0xtOzA7TDs8c3VwZXI+IDAyOUQ7Ozs7Tjs7Ozs7CisxREE5O01PRElGSUVSIExFVFRFUiBTTUFMTCBMIFdJVEggUkVUUk9GTEVYIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI2RDs7OztOOzs7OzsKKzFEQUE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEwgV0lUSCBQQUxBVEFMIEhPT0s7TG07MDtMOzxzdXBlcj4gMUQ4NTs7OztOOzs7OzsKKzFEQUI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgTDtMbTswO0w7PHN1cGVyPiAwMjlGOzs7O047Ozs7OworMURBQztNT0RJRklFUiBMRVRURVIgU01BTEwgTSBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3MTs7OztOOzs7OzsKKzFEQUQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBNIFdJVEggTE9ORyBMRUc7TG07MDtMOzxzdXBlcj4gMDI3MDs7OztOOzs7OzsKKzFEQUU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE4gV0lUSCBMRUZUIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3Mjs7OztOOzs7OzsKKzFEQUY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE4gV0lUSCBSRVRST0ZMRVggSE9PSztMbTswO0w7PHN1cGVyPiAwMjczOzs7O047Ozs7OworMURCMDtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBOO0xtOzA7TDs8c3VwZXI+IDAyNzQ7Ozs7Tjs7Ozs7CisxREIxO01PRElGSUVSIExFVFRFUiBTTUFMTCBCQVJSRUQgTztMbTswO0w7PHN1cGVyPiAwMjc1Ozs7O047Ozs7OworMURCMjtNT0RJRklFUiBMRVRURVIgU01BTEwgUEhJO0xtOzA7TDs8c3VwZXI+IDAyNzg7Ozs7Tjs7Ozs7CisxREIzO01PRElGSUVSIExFVFRFUiBTTUFMTCBTIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjgyOzs7O047Ozs7OworMURCNDtNT0RJRklFUiBMRVRURVIgU01BTEwgRVNIO0xtOzA7TDs8c3VwZXI+IDAyODM7Ozs7Tjs7Ozs7CisxREI1O01PRElGSUVSIExFVFRFUiBTTUFMTCBUIFdJVEggUEFMQVRBTCBIT09LO0xtOzA7TDs8c3VwZXI+IDAxQUI7Ozs7Tjs7Ozs7CisxREI2O01PRElGSUVSIExFVFRFUiBTTUFMTCBVIEJBUjtMbTswO0w7PHN1cGVyPiAwMjg5Ozs7O047Ozs7OworMURCNztNT0RJRklFUiBMRVRURVIgU01BTEwgVVBTSUxPTjtMbTswO0w7PHN1cGVyPiAwMjhBOzs7O047Ozs7OworMURCODtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBVO0xtOzA7TDs8c3VwZXI+IDFEMUM7Ozs7Tjs7Ozs7CisxREI5O01PRElGSUVSIExFVFRFUiBTTUFMTCBWIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjhCOzs7O047Ozs7OworMURCQTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFY7TG07MDtMOzxzdXBlcj4gMDI4Qzs7OztOOzs7OzsKKzFEQkI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFo7TG07MDtMOzxzdXBlcj4gMDA3QTs7OztOOzs7OzsKKzFEQkM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFogV0lUSCBSRVRST0ZMRVggSE9PSztMbTswO0w7PHN1cGVyPiAwMjkwOzs7O047Ozs7OworMURCRDtNT0RJRklFUiBMRVRURVIgU01BTEwgWiBXSVRIIENVUkw7TG07MDtMOzxzdXBlcj4gMDI5MTs7OztOOzs7OzsKKzFEQkU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEVaSDtMbTswO0w7PHN1cGVyPiAwMjkyOzs7O047Ozs7OworMURCRjtNT0RJRklFUiBMRVRURVIgU01BTEwgVEhFVEE7TG07MDtMOzxzdXBlcj4gMDNCODs7OztOOzs7OzsKKzFEQzA7Q09NQklOSU5HIERPVFRFRCBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREMxO0NPTUJJTklORyBET1RURUQgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDMjtDT01CSU5JTkcgU05BS0UgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxREMzO0NPTUJJTklORyBTVVNQRU5TSU9OIE1BUks7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM0O0NPTUJJTklORyBNQUNST04tQUNVVEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM1O0NPTUJJTklORyBHUkFWRS1NQUNST047TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM2O0NPTUJJTklORyBNQUNST04tR1JBVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM3O0NPTUJJTklORyBBQ1VURS1NQUNST047TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREM4O0NPTUJJTklORyBHUkFWRS1BQ1VURS1HUkFWRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEQzk7Q09NQklOSU5HIEFDVVRFLUdSQVZFLUFDVVRFO01uOzIzMDtOU007Ozs7O047Ozs7OworMURDQTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFIgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxREZFO0NPTUJJTklORyBMRUZUIEFSUk9XSEVBRCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFERkY7Q09NQklOSU5HIFJJR0hUIEFSUk9XSEVBRCBBTkQgRE9XTiBBUlJPV0hFQUQgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0x1OzA7TDswMDQxIDAzMjU7Ozs7Tjs7OzsxRTAxOworMUUwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7TGw7MDtMOzAwNjEgMDMyNTs7OztOOzs7MUUwMDs7MUUwMAorMUUwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQyIDAzMDc7Ozs7Tjs7OzsxRTAzOworMUUwMztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MiAwMzA3Ozs7O047OzsxRTAyOzsxRTAyCisxRTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDIgMDMyMzs7OztOOzs7OzFFMDU7CisxRTA1O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYyIDAzMjM7Ozs7Tjs7OzFFMDQ7OzFFMDQKKzFFMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDIgMDMzMTs7OztOOzs7OzFFMDc7CisxRTA3O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2MiAwMzMxOzs7O047OzsxRTA2OzsxRTA2CisxRTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMdTswO0w7MDBDNyAwMzAxOzs7O047Ozs7MUUwOTsKKzFFMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMbDswO0w7MDBFNyAwMzAxOzs7O047OzsxRTA4OzsxRTA4CisxRTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDQgMDMwNzs7OztOOzs7OzFFMEI7CisxRTBCO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY0IDAzMDc7Ozs7Tjs7OzFFMEE7OzFFMEEKKzFFMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NCAwMzIzOzs7O047Ozs7MUUwRDsKKzFFMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjQgMDMyMzs7OztOOzs7MUUwQzs7MUUwQworMUUwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0NCAwMzMxOzs7O047Ozs7MUUwRjsKKzFFMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY0IDAzMzE7Ozs7Tjs7OzFFMEU7OzFFMEUKKzFFMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDQgMDMyNzs7OztOOzs7OzFFMTE7CisxRTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NCAwMzI3Ozs7O047OzsxRTEwOzsxRTEwCisxRTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ0IDAzMkQ7Ozs7Tjs7OzsxRTEzOworMUUxMztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjQgMDMyRDs7OztOOzs7MUUxMjs7MUUxMgorMUUxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDExMiAwMzAwOzs7O047Ozs7MUUxNTsKKzFFMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTEzIDAzMDA7Ozs7Tjs7OzFFMTQ7OzFFMTQKKzFFMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxMTIgMDMwMTs7OztOOzs7OzFFMTc7CisxRTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDExMyAwMzAxOzs7O047OzsxRTE2OzsxRTE2CisxRTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ1IDAzMkQ7Ozs7Tjs7OzsxRTE5OworMUUxOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjUgMDMyRDs7OztOOzs7MUUxODs7MUUxOAorMUUxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDUgMDMzMDs7OztOOzs7OzFFMUI7CisxRTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjUgMDMzMDs7OztOOzs7MUUxQTs7MUUxQQorMUUxQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7THU7MDtMOzAyMjggMDMwNjs7OztOOzs7OzFFMUQ7CisxRTFEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7TGw7MDtMOzAyMjkgMDMwNjs7OztOOzs7MUUxQzs7MUUxQworMUUxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ2IDAzMDc7Ozs7Tjs7OzsxRTFGOworMUUxRjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NiAwMzA3Ozs7O047OzsxRTFFOzsxRTFFCisxRTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBNQUNST047THU7MDtMOzAwNDcgMDMwNDs7OztOOzs7OzFFMjE7CisxRTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggTUFDUk9OO0xsOzA7TDswMDY3IDAzMDQ7Ozs7Tjs7OzFFMjA7OzFFMjAKKzFFMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OCAwMzA3Ozs7O047Ozs7MUUyMzsKKzFFMjM7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjggMDMwNzs7OztOOzs7MUUyMjs7MUUyMgorMUUyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ4IDAzMjM7Ozs7Tjs7OzsxRTI1OworMUUyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OCAwMzIzOzs7O047OzsxRTI0OzsxRTI0CisxRTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDggMDMwODs7OztOOzs7OzFFMjc7CisxRTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY4IDAzMDg7Ozs7Tjs7OzFFMjY7OzFFMjYKKzFFMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDggMDMyNzs7OztOOzs7OzFFMjk7CisxRTI5O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2OCAwMzI3Ozs7O047OzsxRTI4OzsxRTI4CisxRTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMdTswO0w7MDA0OCAwMzJFOzs7O047Ozs7MUUyQjsKKzFFMkI7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMbDswO0w7MDA2OCAwMzJFOzs7O047OzsxRTJBOzsxRTJBCisxRTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0OSAwMzMwOzs7O047Ozs7MUUyRDsKKzFFMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2OSAwMzMwOzs7O047OzsxRTJDOzsxRTJDCisxRTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMENGIDAzMDE7Ozs7Tjs7OzsxRTJGOworMUUyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRUYgMDMwMTs7OztOOzs7MUUyRTs7MUUyRQorMUUzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQUNVVEU7THU7MDtMOzAwNEIgMDMwMTs7OztOOzs7OzFFMzE7CisxRTMxO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQUNVVEU7TGw7MDtMOzAwNkIgMDMwMTs7OztOOzs7MUUzMDs7MUUzMAorMUUzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRCIDAzMjM7Ozs7Tjs7OzsxRTMzOworMUUzMztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QiAwMzIzOzs7O047OzsxRTMyOzsxRTMyCisxRTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRCIDAzMzE7Ozs7Tjs7OzsxRTM1OworMUUzNTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkIgMDMzMTs7OztOOzs7MUUzNDs7MUUzNAorMUUzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRDIDAzMjM7Ozs7Tjs7OzsxRTM3OworMUUzNztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QyAwMzIzOzs7O047OzsxRTM2OzsxRTM2CisxRTM4O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUUzNiAwMzA0Ozs7O047Ozs7MUUzOTsKKzFFMzk7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUUzNyAwMzA0Ozs7O047OzsxRTM4OzsxRTM4CisxRTNBO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRDIDAzMzE7Ozs7Tjs7OzsxRTNCOworMUUzQjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkMgMDMzMTs7OztOOzs7MUUzQTs7MUUzQQorMUUzQztMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0QyAwMzJEOzs7O047Ozs7MUUzRDsKKzFFM0Q7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZDIDAzMkQ7Ozs7Tjs7OzFFM0M7OzFFM0MKKzFFM0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIEFDVVRFO0x1OzA7TDswMDREIDAzMDE7Ozs7Tjs7OzsxRTNGOworMUUzRjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEFDVVRFO0xsOzA7TDswMDZEIDAzMDE7Ozs7Tjs7OzFFM0U7OzFFM0UKKzFFNDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RCAwMzA3Ozs7O047Ozs7MUU0MTsKKzFFNDE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkQgMDMwNzs7OztOOzs7MUU0MDs7MUU0MAorMUU0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDREIDAzMjM7Ozs7Tjs7OzsxRTQzOworMUU0MztMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RCAwMzIzOzs7O047OzsxRTQyOzsxRTQyCisxRTQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEUgMDMwNzs7OztOOzs7OzFFNDU7CisxRTQ1O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZFIDAzMDc7Ozs7Tjs7OzFFNDQ7OzFFNDQKKzFFNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RSAwMzIzOzs7O047Ozs7MUU0NzsKKzFFNDc7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkUgMDMyMzs7OztOOzs7MUU0Njs7MUU0NgorMUU0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0RSAwMzMxOzs7O047Ozs7MUU0OTsKKzFFNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZFIDAzMzE7Ozs7Tjs7OzFFNDg7OzFFNDgKKzFFNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEUgMDMyRDs7OztOOzs7OzFFNEI7CisxRTRCO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2RSAwMzJEOzs7O047OzsxRTRBOzsxRTRBCisxRTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAwRDUgMDMwMTs7OztOOzs7OzFFNEQ7CisxRTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMEY1IDAzMDE7Ozs7Tjs7OzFFNEM7OzFFNEMKKzFFNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7THU7MDtMOzAwRDUgMDMwODs7OztOOzs7OzFFNEY7CisxRTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMbDswO0w7MDBGNSAwMzA4Ozs7O047OzsxRTRFOzsxRTRFCisxRTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTRDIDAzMDA7Ozs7Tjs7OzsxRTUxOworMUU1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxNEQgMDMwMDs7OztOOzs7MUU1MDs7MUU1MAorMUU1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDE0QyAwMzAxOzs7O047Ozs7MUU1MzsKKzFFNTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTREIDAzMDE7Ozs7Tjs7OzFFNTI7OzFFNTIKKzFFNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEFDVVRFO0x1OzA7TDswMDUwIDAzMDE7Ozs7Tjs7OzsxRTU1OworMUU1NTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEFDVVRFO0xsOzA7TDswMDcwIDAzMDE7Ozs7Tjs7OzFFNTQ7OzFFNTQKKzFFNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MCAwMzA3Ozs7O047Ozs7MUU1NzsKKzFFNTc7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzAgMDMwNzs7OztOOzs7MUU1Njs7MUU1NgorMUU1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUyIDAzMDc7Ozs7Tjs7OzsxRTU5OworMUU1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MiAwMzA3Ozs7O047OzsxRTU4OzsxRTU4CisxRTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTIgMDMyMzs7OztOOzs7OzFFNUI7CisxRTVCO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDcyIDAzMjM7Ozs7Tjs7OzFFNUE7OzFFNUEKKzFFNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTVBIDAzMDQ7Ozs7Tjs7OzsxRTVEOworMUU1RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTVCIDAzMDQ7Ozs7Tjs7OzFFNUM7OzFFNUMKKzFFNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTIgMDMzMTs7OztOOzs7OzFFNUY7CisxRTVGO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3MiAwMzMxOzs7O047OzsxRTVFOzsxRTVFCisxRTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTMgMDMwNzs7OztOOzs7OzFFNjE7CisxRTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDczIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MyAwMzIzOzs7O047Ozs7MUU2MzsKKzFFNjM7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzMgMDMyMzs7OztOOzs7MUU2Mjs7MUU2MgorMUU2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMdTswO0w7MDE1QSAwMzA3Ozs7O047Ozs7MUU2NTsKKzFFNjU7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTVCIDAzMDc7Ozs7Tjs7OzFFNjQ7OzFFNjQKKzFFNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNjAgMDMwNzs7OztOOzs7OzFFNjc7CisxRTY3O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMbDswO0w7MDE2MSAwMzA3Ozs7O047OzsxRTY2OzsxRTY2CisxRTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMdTswO0w7MUU2MiAwMzA3Ozs7O047Ozs7MUU2OTsKKzFFNjk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbDswO0w7MUU2MyAwMzA3Ozs7O047OzsxRTY4OzsxRTY4CisxRTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTQgMDMwNzs7OztOOzs7OzFFNkI7CisxRTZCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc0IDAzMDc7Ozs7Tjs7OzFFNkE7OzFFNkEKKzFFNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NCAwMzIzOzs7O047Ozs7MUU2RDsKKzFFNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzQgMDMyMzs7OztOOzs7MUU2Qzs7MUU2QworMUU2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1NCAwMzMxOzs7O047Ozs7MUU2RjsKKzFFNkY7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDc0IDAzMzE7Ozs7Tjs7OzFFNkU7OzFFNkUKKzFFNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTQgMDMyRDs7OztOOzs7OzFFNzE7CisxRTcxO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NCAwMzJEOzs7O047OzsxRTcwOzsxRTcwCisxRTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7THU7MDtMOzAwNTUgMDMyNDs7OztOOzs7OzFFNzM7CisxRTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0xsOzA7TDswMDc1IDAzMjQ7Ozs7Tjs7OzFFNzI7OzFFNzIKKzFFNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDU1IDAzMzA7Ozs7Tjs7OzsxRTc1OworMUU3NTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDc1IDAzMzA7Ozs7Tjs7OzFFNzQ7OzFFNzQKKzFFNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTUgMDMyRDs7OztOOzs7OzFFNzc7CisxRTc3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NSAwMzJEOzs7O047OzsxRTc2OzsxRTc2CisxRTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAxNjggMDMwMTs7OztOOzs7OzFFNzk7CisxRTc5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMTY5IDAzMDE7Ozs7Tjs7OzFFNzg7OzFFNzgKKzFFN0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0x1OzA7TDswMTZBIDAzMDg7Ozs7Tjs7OzsxRTdCOworMUU3QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0xsOzA7TDswMTZCIDAzMDg7Ozs7Tjs7OzFFN0E7OzFFN0EKKzFFN0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIFRJTERFO0x1OzA7TDswMDU2IDAzMDM7Ozs7Tjs7OzsxRTdEOworMUU3RDtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIFRJTERFO0xsOzA7TDswMDc2IDAzMDM7Ozs7Tjs7OzFFN0M7OzFFN0MKKzFFN0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NiAwMzIzOzs7O047Ozs7MUU3RjsKKzFFN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzYgMDMyMzs7OztOOzs7MUU3RTs7MUU3RQorMUU4MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggR1JBVkU7THU7MDtMOzAwNTcgMDMwMDs7OztOOzs7OzFFODE7CisxRTgxO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggR1JBVkU7TGw7MDtMOzAwNzcgMDMwMDs7OztOOzs7MUU4MDs7MUU4MAorMUU4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQUNVVEU7THU7MDtMOzAwNTcgMDMwMTs7OztOOzs7OzFFODM7CisxRTgzO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQUNVVEU7TGw7MDtMOzAwNzcgMDMwMTs7OztOOzs7MUU4Mjs7MUU4MgorMUU4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU3IDAzMDg7Ozs7Tjs7OzsxRTg1OworMUU4NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NyAwMzA4Ozs7O047OzsxRTg0OzsxRTg0CisxRTg2O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTcgMDMwNzs7OztOOzs7OzFFODc7CisxRTg3O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc3IDAzMDc7Ozs7Tjs7OzFFODY7OzFFODYKKzFFODg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NyAwMzIzOzs7O047Ozs7MUU4OTsKKzFFODk7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzcgMDMyMzs7OztOOzs7MUU4ODs7MUU4OAorMUU4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU4IDAzMDc7Ozs7Tjs7OzsxRThCOworMUU4QjtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OCAwMzA3Ozs7O047OzsxRThBOzsxRThBCisxRThDO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTggMDMwODs7OztOOzs7OzFFOEQ7CisxRThEO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc4IDAzMDg7Ozs7Tjs7OzFFOEM7OzFFOEMKKzFFOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OSAwMzA3Ozs7O047Ozs7MUU4RjsKKzFFOEY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzkgMDMwNzs7OztOOzs7MUU4RTs7MUU4RQorMUU5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1QSAwMzAyOzs7O047Ozs7MUU5MTsKKzFFOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDdBIDAzMDI7Ozs7Tjs7OzFFOTA7OzFFOTAKKzFFOTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1QSAwMzIzOzs7O047Ozs7MUU5MzsKKzFFOTM7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwN0EgMDMyMzs7OztOOzs7MUU5Mjs7MUU5MgorMUU5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1QSAwMzMxOzs7O047Ozs7MUU5NTsKKzFFOTU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDdBIDAzMzE7Ozs7Tjs7OzFFOTQ7OzFFOTQKKzFFOTY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY4IDAzMzE7Ozs7Tjs7Ozs7CisxRTk3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc0IDAzMDg7Ozs7Tjs7Ozs7CisxRTk4O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NyAwMzBBOzs7O047Ozs7OworMUU5OTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzkgMDMwQTs7OztOOzs7OzsKKzFFOUE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkc7TGw7MDtMOzxjb21wYXQ+IDAwNjEgMDJCRTs7OztOOzs7OzsKKzFFOUI7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDE3RiAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRUEwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDEgMDMyMzs7OztOOzs7OzFFQTE7CisxRUExO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYxIDAzMjM7Ozs7Tjs7OzFFQTA7OzFFQTAKKzFFQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDEgMDMwOTs7OztOOzs7OzFFQTM7CisxRUEzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2MSAwMzA5Ozs7O047OzsxRUEyOzsxRUEyCisxRUE0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDMiAwMzAxOzs7O047Ozs7MUVBNTsKKzFFQTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFMiAwMzAxOzs7O047OzsxRUE0OzsxRUE0CisxRUE2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDMiAwMzAwOzs7O047Ozs7MUVBNzsKKzFFQTc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFMiAwMzAwOzs7O047OzsxRUE2OzsxRUE2CisxRUE4O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEMyIDAzMDk7Ozs7Tjs7OzsxRUE5OworMUVBOTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRTIgMDMwOTs7OztOOzs7MUVBODs7MUVBOAorMUVBQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQzIgMDMwMzs7OztOOzs7OzFFQUI7CisxRUFCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRTIgMDMwMzs7OztOOzs7MUVBQTs7MUVBQQorMUVBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUEwIDAzMDI7Ozs7Tjs7OzsxRUFEOworMUVBRDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVBMSAwMzAyOzs7O047OzsxRUFDOzsxRUFDCisxRUFFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7THU7MDtMOzAxMDIgMDMwMTs7OztOOzs7OzFFQUY7CisxRUFGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0xsOzA7TDswMTAzIDAzMDE7Ozs7Tjs7OzFFQUU7OzFFQUUKKzFFQjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMdTswO0w7MDEwMiAwMzAwOzs7O047Ozs7MUVCMTsKKzFFQjE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7TGw7MDtMOzAxMDMgMDMwMDs7OztOOzs7MUVCMDs7MUVCMAorMUVCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxMDIgMDMwOTs7OztOOzs7OzFFQjM7CisxRUIzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxMDMgMDMwOTs7OztOOzs7MUVCMjs7MUVCMgorMUVCNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0x1OzA7TDswMTAyIDAzMDM7Ozs7Tjs7OzsxRUI1OworMUVCNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMbDswO0w7MDEwMyAwMzAzOzs7O047OzsxRUI0OzsxRUI0CisxRUI2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUEwIDAzMDY7Ozs7Tjs7OzsxRUI3OworMUVCNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQTEgMDMwNjs7OztOOzs7MUVCNjs7MUVCNgorMUVCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ1IDAzMjM7Ozs7Tjs7OzsxRUI5OworMUVCOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NSAwMzIzOzs7O047OzsxRUI4OzsxRUI4CisxRUJBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDk7Ozs7Tjs7OzsxRUJCOworMUVCQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjUgMDMwOTs7OztOOzs7MUVCQTs7MUVCQQorMUVCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREU7THU7MDtMOzAwNDUgMDMwMzs7OztOOzs7OzFFQkQ7CisxRUJEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREU7TGw7MDtMOzAwNjUgMDMwMzs7OztOOzs7MUVCQzs7MUVCQworMUVCRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQ0EgMDMwMTs7OztOOzs7OzFFQkY7CisxRUJGO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRUEgMDMwMTs7OztOOzs7MUVCRTs7MUVCRQorMUVDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQ0EgMDMwMDs7OztOOzs7OzFFQzE7CisxRUMxO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRUEgMDMwMDs7OztOOzs7MUVDMDs7MUVDMAorMUVDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDQSAwMzA5Ozs7O047Ozs7MUVDMzsKKzFFQzM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEVBIDAzMDk7Ozs7Tjs7OzFFQzI7OzFFQzIKKzFFQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMENBIDAzMDM7Ozs7Tjs7OzsxRUM1OworMUVDNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEVBIDAzMDM7Ozs7Tjs7OzFFQzQ7OzFFQzQKKzFFQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVCOCAwMzAyOzs7O047Ozs7MUVDNzsKKzFFQzc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQjkgMDMwMjs7OztOOzs7MUVDNjs7MUVDNgorMUVDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0OSAwMzA5Ozs7O047Ozs7MUVDOTsKKzFFQzk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY5IDAzMDk7Ozs7Tjs7OzFFQzg7OzFFQzgKKzFFQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OSAwMzIzOzs7O047Ozs7MUVDQjsKKzFFQ0I7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjkgMDMyMzs7OztOOzs7MUVDQTs7MUVDQQorMUVDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRGIDAzMjM7Ozs7Tjs7OzsxRUNEOworMUVDRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RiAwMzIzOzs7O047OzsxRUNDOzsxRUNDCisxRUNFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDRGIDAzMDk7Ozs7Tjs7OzsxRUNGOworMUVDRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNkYgMDMwOTs7OztOOzs7MUVDRTs7MUVDRQorMUVEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwRDQgMDMwMTs7OztOOzs7OzFFRDE7CisxRUQxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRjQgMDMwMTs7OztOOzs7MUVEMDs7MUVEMAorMUVEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwRDQgMDMwMDs7OztOOzs7OzFFRDM7CisxRUQzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRjQgMDMwMDs7OztOOzs7MUVEMjs7MUVEMgorMUVENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBENCAwMzA5Ozs7O047Ozs7MUVENTsKKzFFRDU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEY0IDAzMDk7Ozs7Tjs7OzFFRDQ7OzFFRDQKKzFFRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEQ0IDAzMDM7Ozs7Tjs7OzsxRUQ3OworMUVENztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEY0IDAzMDM7Ozs7Tjs7OzFFRDY7OzFFRDYKKzFFRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVDQyAwMzAyOzs7O047Ozs7MUVEOTsKKzFFRDk7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQ0QgMDMwMjs7OztOOzs7MUVEODs7MUVEOAorMUVEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQTAgMDMwMTs7OztOOzs7OzFFREI7CisxRURCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQTEgMDMwMTs7OztOOzs7MUVEQTs7MUVEQQorMUVEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQTAgMDMwMDs7OztOOzs7OzFFREQ7CisxRUREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQTEgMDMwMDs7OztOOzs7MUVEQzs7MUVEQworMUVERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBMCAwMzA5Ozs7O047Ozs7MUVERjsKKzFFREY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUExIDAzMDk7Ozs7Tjs7OzFFREU7OzFFREUKKzFFRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUEwIDAzMDM7Ozs7Tjs7OzsxRUUxOworMUVFMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUExIDAzMDM7Ozs7Tjs7OzFFRTA7OzFFRTAKKzFFRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBMCAwMzIzOzs7O047Ozs7MUVFMzsKKzFFRTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQTEgMDMyMzs7OztOOzs7MUVFMjs7MUVFMgorMUVFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU1IDAzMjM7Ozs7Tjs7OzsxRUU1OworMUVFNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NSAwMzIzOzs7O047OzsxRUU0OzsxRUU0CisxRUU2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU1IDAzMDk7Ozs7Tjs7OzsxRUU3OworMUVFNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzUgMDMwOTs7OztOOzs7MUVFNjs7MUVFNgorMUVFODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQUYgMDMwMTs7OztOOzs7OzFFRTk7CisxRUU5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQjAgMDMwMTs7OztOOzs7MUVFODs7MUVFOAorMUVFQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQUYgMDMwMDs7OztOOzs7OzFFRUI7CisxRUVCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQjAgMDMwMDs7OztOOzs7MUVFQTs7MUVFQQorMUVFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBRiAwMzA5Ozs7O047Ozs7MUVFRDsKKzFFRUQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUIwIDAzMDk7Ozs7Tjs7OzFFRUM7OzFFRUMKKzFFRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUFGIDAzMDM7Ozs7Tjs7OzsxRUVGOworMUVFRjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUIwIDAzMDM7Ozs7Tjs7OzFFRUU7OzFFRUUKKzFFRjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBRiAwMzIzOzs7O047Ozs7MUVGMTsKKzFFRjE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQjAgMDMyMzs7OztOOzs7MUVGMDs7MUVGMAorMUVGMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggR1JBVkU7THU7MDtMOzAwNTkgMDMwMDs7OztOOzs7OzFFRjM7CisxRUYzO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggR1JBVkU7TGw7MDtMOzAwNzkgMDMwMDs7OztOOzs7MUVGMjs7MUVGMgorMUVGNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU5IDAzMjM7Ozs7Tjs7OzsxRUY1OworMUVGNTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3OSAwMzIzOzs7O047OzsxRUY0OzsxRUY0CisxRUY2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDk7Ozs7Tjs7OzsxRUY3OworMUVGNztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzkgMDMwOTs7OztOOzs7MUVGNjs7MUVGNgorMUVGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggVElMREU7THU7MDtMOzAwNTkgMDMwMzs7OztOOzs7OzFFRjk7CisxRUY5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggVElMREU7TGw7MDtMOzAwNzkgMDMwMzs7OztOOzs7MUVGODs7MUVGOAorMUYwMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCMSAwMzEzOzs7O047OzsxRjA4OzsxRjA4CisxRjAxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0xsOzA7TDswM0IxIDAzMTQ7Ozs7Tjs7OzFGMDk7OzFGMDkKKzFGMDI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjAwIDAzMDA7Ozs7Tjs7OzFGMEE7OzFGMEEKKzFGMDM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjAxIDAzMDA7Ozs7Tjs7OzFGMEI7OzFGMEIKKzFGMDQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMDAgMDMwMTs7OztOOzs7MUYwQzs7MUYwQworMUYwNTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYwMSAwMzAxOzs7O047OzsxRjBEOzsxRjBECisxRjA2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMCAwMzQyOzs7O047OzsxRjBFOzsxRjBFCisxRjA3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMSAwMzQyOzs7O047OzsxRjBGOzsxRjBGCisxRjA4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7THU7MDtMOzAzOTEgMDMxMzs7OztOOzs7OzFGMDA7CisxRjA5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7THU7MDtMOzAzOTEgMDMxNDs7OztOOzs7OzFGMDE7CisxRjBBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjA4IDAzMDA7Ozs7Tjs7OzsxRjAyOworMUYwQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYwOSAwMzAwOzs7O047Ozs7MUYwMzsKKzFGMEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYwOCAwMzAxOzs7O047Ozs7MUYwNDsKKzFGMEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYwOSAwMzAxOzs7O047Ozs7MUYwNTsKKzFGMEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDggMDM0Mjs7OztOOzs7OzFGMDY7CisxRjBGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA5IDAzNDI7Ozs7Tjs7OzsxRjA3OworMUYxMDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0I1IDAzMTM7Ozs7Tjs7OzFGMTg7OzFGMTgKKzFGMTE7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNCNSAwMzE0Ozs7O047OzsxRjE5OzsxRjE5CisxRjEyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjEwIDAzMDA7Ozs7Tjs7OzFGMUE7OzFGMUEKKzFGMTM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMTEgMDMwMDs7OztOOzs7MUYxQjs7MUYxQgorMUYxNDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjEwIDAzMDE7Ozs7Tjs7OzFGMUM7OzFGMUMKKzFGMTU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYxMSAwMzAxOzs7O047OzsxRjFEOzsxRjFECisxRjE4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMdTswO0w7MDM5NSAwMzEzOzs7O047Ozs7MUYxMDsKKzFGMTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswMzk1IDAzMTQ7Ozs7Tjs7OzsxRjExOworMUYxQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjE4IDAzMDA7Ozs7Tjs7OzsxRjEyOworMUYxQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjE5IDAzMDA7Ozs7Tjs7OzsxRjEzOworMUYxQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMTggMDMwMTs7OztOOzs7OzFGMTQ7CisxRjFEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYxOSAwMzAxOzs7O047Ozs7MUYxNTsKKzFGMjA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I3IDAzMTM7Ozs7Tjs7OzFGMjg7OzFGMjgKKzFGMjE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0xsOzA7TDswM0I3IDAzMTQ7Ozs7Tjs7OzFGMjk7OzFGMjkKKzFGMjI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYyMCAwMzAwOzs7O047OzsxRjJBOzsxRjJBCisxRjIzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMjEgMDMwMDs7OztOOzs7MUYyQjs7MUYyQgorMUYyNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMjAgMDMwMTs7OztOOzs7MUYyQzs7MUYyQworMUYyNTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMjEgMDMwMTs7OztOOzs7MUYyRDs7MUYyRAorMUYyNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIwIDAzNDI7Ozs7Tjs7OzFGMkU7OzFGMkUKKzFGMjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMSAwMzQyOzs7O047OzsxRjJGOzsxRjJGCisxRjI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk3IDAzMTM7Ozs7Tjs7OzsxRjIwOworMUYyOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5NyAwMzE0Ozs7O047Ozs7MUYyMTsKKzFGMkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjI4IDAzMDA7Ozs7Tjs7OzsxRjIyOworMUYyQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMjkgMDMwMDs7OztOOzs7OzFGMjM7CisxRjJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjI4IDAzMDE7Ozs7Tjs7OzsxRjI0OworMUYyRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYyOSAwMzAxOzs7O047Ozs7MUYyNTsKKzFGMkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI4IDAzNDI7Ozs7Tjs7OzsxRjI2OworMUYyRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjkgMDM0Mjs7OztOOzs7OzFGMjc7CisxRjMwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjkgMDMxMzs7OztOOzs7MUYzODs7MUYzOAorMUYzMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0xsOzA7TDswM0I5IDAzMTQ7Ozs7Tjs7OzFGMzk7OzFGMzkKKzFGMzI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMzAgMDMwMDs7OztOOzs7MUYzQTs7MUYzQQorMUYzMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYzMSAwMzAwOzs7O047OzsxRjNCOzsxRjNCCisxRjM0O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMzAgMDMwMTs7OztOOzs7MUYzQzs7MUYzQworMUYzNTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjMxIDAzMDE7Ozs7Tjs7OzFGM0Q7OzFGM0QKKzFGMzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzAgMDM0Mjs7OztOOzs7MUYzRTs7MUYzRQorMUYzNztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMSAwMzQyOzs7O047OzsxRjNGOzsxRjNGCisxRjM4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5OSAwMzEzOzs7O047Ozs7MUYzMDsKKzFGMzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0x1OzA7TDswMzk5IDAzMTQ7Ozs7Tjs7OzsxRjMxOworMUYzQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjM4IDAzMDA7Ozs7Tjs7OzsxRjMyOworMUYzQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjM5IDAzMDA7Ozs7Tjs7OzsxRjMzOworMUYzQztHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMzggMDMwMTs7OztOOzs7OzFGMzQ7CisxRjNEO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYzOSAwMzAxOzs7O047Ozs7MUYzNTsKKzFGM0U7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOCAwMzQyOzs7O047Ozs7MUYzNjsKKzFGM0Y7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOSAwMzQyOzs7O047Ozs7MUYzNzsKKzFGNDA7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMbDswO0w7MDNCRiAwMzEzOzs7O047OzsxRjQ4OzsxRjQ4CisxRjQxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7TGw7MDtMOzAzQkYgMDMxNDs7OztOOzs7MUY0OTs7MUY0OQorMUY0MjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY0MCAwMzAwOzs7O047OzsxRjRBOzsxRjRBCisxRjQzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjQxIDAzMDA7Ozs7Tjs7OzFGNEI7OzFGNEIKKzFGNDQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY0MCAwMzAxOzs7O047OzsxRjRDOzsxRjRDCisxRjQ1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNDEgMDMwMTs7OztOOzs7MUY0RDs7MUY0RAorMUY0ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7THU7MDtMOzAzOUYgMDMxMzs7OztOOzs7OzFGNDA7CisxRjQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMdTswO0w7MDM5RiAwMzE0Ozs7O047Ozs7MUY0MTsKKzFGNEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY0OCAwMzAwOzs7O047Ozs7MUY0MjsKKzFGNEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY0OSAwMzAwOzs7O047Ozs7MUY0MzsKKzFGNEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjQ4IDAzMDE7Ozs7Tjs7OzsxRjQ0OworMUY0RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNDkgMDMwMTs7OztOOzs7OzFGNDU7CisxRjUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQzUgMDMxMzs7OztOOzs7OzsKKzFGNTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNDNSAwMzE0Ozs7O047OzsxRjU5OzsxRjU5CisxRjUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjUwIDAzMDA7Ozs7Tjs7Ozs7CisxRjUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjUxIDAzMDA7Ozs7Tjs7OzFGNUI7OzFGNUIKKzFGNTQ7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY1MCAwMzAxOzs7O047Ozs7OworMUY1NTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjUxIDAzMDE7Ozs7Tjs7OzFGNUQ7OzFGNUQKKzFGNTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTAgMDM0Mjs7OztOOzs7OzsKKzFGNTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTEgMDM0Mjs7OztOOzs7MUY1Rjs7MUY1RgorMUY1OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzQTUgMDMxNDs7OztOOzs7OzFGNTE7CisxRjVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNTkgMDMwMDs7OztOOzs7OzFGNTM7CisxRjVEO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY1OSAwMzAxOzs7O047Ozs7MUY1NTsKKzFGNUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY1OSAwMzQyOzs7O047Ozs7MUY1NzsKKzFGNjA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7TGw7MDtMOzAzQzkgMDMxMzs7OztOOzs7MUY2ODs7MUY2OAorMUY2MTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMbDswO0w7MDNDOSAwMzE0Ozs7O047OzsxRjY5OzsxRjY5CisxRjYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY2MCAwMzAwOzs7O047OzsxRjZBOzsxRjZBCisxRjYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY2MSAwMzAwOzs7O047OzsxRjZCOzsxRjZCCisxRjY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjYwIDAzMDE7Ozs7Tjs7OzFGNkM7OzFGNkMKKzFGNjU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNjEgMDMwMTs7OztOOzs7MUY2RDs7MUY2RAorMUY2NjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjAgMDM0Mjs7OztOOzs7MUY2RTs7MUY2RQorMUY2NztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjEgMDM0Mjs7OztOOzs7MUY2Rjs7MUY2RgorMUY2ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0x1OzA7TDswM0E5IDAzMTM7Ozs7Tjs7OzsxRjYwOworMUY2OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0x1OzA7TDswM0E5IDAzMTQ7Ozs7Tjs7OzsxRjYxOworMUY2QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY2OCAwMzAwOzs7O047Ozs7MUY2MjsKKzFGNkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNjkgMDMwMDs7OztOOzs7OzFGNjM7CisxRjZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNjggMDMwMTs7OztOOzs7OzFGNjQ7CisxRjZEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNjkgMDMwMTs7OztOOzs7OzFGNjU7CisxRjZFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY4IDAzNDI7Ozs7Tjs7OzsxRjY2OworMUY2RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OSAwMzQyOzs7O047Ozs7MUY2NzsKKzFGNzA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjEgMDMwMDs7OztOOzs7MUZCQTs7MUZCQQorMUY3MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0xsOzA7TDswM0FDOzs7O047OzsxRkJCOzsxRkJCCisxRjcyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQjUgMDMwMDs7OztOOzs7MUZDODs7MUZDOAorMUY3MztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQUQ7Ozs7Tjs7OzFGQzk7OzFGQzkKKzFGNzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0xsOzA7TDswM0I3IDAzMDA7Ozs7Tjs7OzFGQ0E7OzFGQ0EKKzFGNzU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUU7Ozs7Tjs7OzFGQ0I7OzFGQ0IKKzFGNzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCOSAwMzAwOzs7O047OzsxRkRBOzsxRkRBCisxRjc3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMbDswO0w7MDNBRjs7OztOOzs7MUZEQjs7MUZEQgorMUY3ODtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0xsOzA7TDswM0JGIDAzMDA7Ozs7Tjs7OzFGRjg7OzFGRjgKKzFGNzk7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0xsOzA7TDswM0NDOzs7O047OzsxRkY5OzsxRkY5CisxRjdBO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQzUgMDMwMDs7OztOOzs7MUZFQTs7MUZFQQorMUY3QjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQ0Q7Ozs7Tjs7OzFGRUI7OzFGRUIKKzFGN0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7TGw7MDtMOzAzQzkgMDMwMDs7OztOOzs7MUZGQTs7MUZGQQorMUY3RDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0xsOzA7TDswM0NFOzs7O047OzsxRkZCOzsxRkZCCisxRjgwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAwIDAzNDU7Ozs7Tjs7OzFGODg7OzFGODgKKzFGODE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDEgMDM0NTs7OztOOzs7MUY4OTs7MUY4OQorMUY4MjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDIgMDM0NTs7OztOOzs7MUY4QTs7MUY4QQorMUY4MztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDMgMDM0NTs7OztOOzs7MUY4Qjs7MUY4QgorMUY4NDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNCAwMzQ1Ozs7O047OzsxRjhDOzsxRjhDCisxRjg1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA1IDAzNDU7Ozs7Tjs7OzFGOEQ7OzFGOEQKKzFGODY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA2IDAzNDU7Ozs7Tjs7OzFGOEU7OzFGOEUKKzFGODc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA3IDAzNDU7Ozs7Tjs7OzFGOEY7OzFGOEYKKzFGODg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMDggMDM0NTs7OztOOzs7OzFGODA7CisxRjg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjA5IDAzNDU7Ozs7Tjs7OzsxRjgxOworMUY4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEEgMDM0NTs7OztOOzs7OzFGODI7CisxRjhCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQiAwMzQ1Ozs7O047Ozs7MUY4MzsKKzFGOEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEMgMDM0NTs7OztOOzs7OzFGODQ7CisxRjhEO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBEIDAzNDU7Ozs7Tjs7OzsxRjg1OworMUY4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEUgMDM0NTs7OztOOzs7OzFGODY7CisxRjhGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRiAwMzQ1Ozs7O047Ozs7MUY4NzsKKzFGOTA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIwIDAzNDU7Ozs7Tjs7OzFGOTg7OzFGOTgKKzFGOTE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIxIDAzNDU7Ozs7Tjs7OzFGOTk7OzFGOTkKKzFGOTI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMiAwMzQ1Ozs7O047OzsxRjlBOzsxRjlBCisxRjkzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjMgMDM0NTs7OztOOzs7MUY5Qjs7MUY5QgorMUY5NDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjQgMDM0NTs7OztOOzs7MUY5Qzs7MUY5QworMUY5NTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjUgMDM0NTs7OztOOzs7MUY5RDs7MUY5RAorMUY5NjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI2IDAzNDU7Ozs7Tjs7OzFGOUU7OzFGOUUKKzFGOTc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNyAwMzQ1Ozs7O047OzsxRjlGOzsxRjlGCisxRjk4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyOCAwMzQ1Ozs7O047Ozs7MUY5MDsKKzFGOTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjI5IDAzNDU7Ozs7Tjs7OzsxRjkxOworMUY5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJBIDAzNDU7Ozs7Tjs7OzsxRjkyOworMUY5QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJCIDAzNDU7Ozs7Tjs7OzsxRjkzOworMUY5QztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkMgMDM0NTs7OztOOzs7OzFGOTQ7CisxRjlEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRCAwMzQ1Ozs7O047Ozs7MUY5NTsKKzFGOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRSAwMzQ1Ozs7O047Ozs7MUY5NjsKKzFGOUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRiAwMzQ1Ozs7O047Ozs7MUY5NzsKKzFGQTA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjAgMDM0NTs7OztOOzs7MUZBODs7MUZBOAorMUZBMTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MSAwMzQ1Ozs7O047OzsxRkE5OzsxRkE5CisxRkEyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MiAwMzQ1Ozs7O047OzsxRkFBOzsxRkFBCisxRkEzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MyAwMzQ1Ozs7O047OzsxRkFCOzsxRkFCCisxRkE0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY0IDAzNDU7Ozs7Tjs7OzFGQUM7OzFGQUMKKzFGQTU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjUgMDM0NTs7OztOOzs7MUZBRDs7MUZBRAorMUZBNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjYgMDM0NTs7OztOOzs7MUZBRTs7MUZBRQorMUZBNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjcgMDM0NTs7OztOOzs7MUZBRjs7MUZBRgorMUZBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2OCAwMzQ1Ozs7O047Ozs7MUZBMDsKKzFGQTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNjkgMDM0NTs7OztOOzs7OzFGQTE7CisxRkFBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QSAwMzQ1Ozs7O047Ozs7MUZBMjsKKzFGQUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZCIDAzNDU7Ozs7Tjs7OzsxRkEzOworMUZBQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QyAwMzQ1Ozs7O047Ozs7MUZBNDsKKzFGQUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkQgMDM0NTs7OztOOzs7OzFGQTU7CisxRkFFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RSAwMzQ1Ozs7O047Ozs7MUZBNjsKKzFGQUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZGIDAzNDU7Ozs7Tjs7OzsxRkE3OworMUZCMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjEgMDMwNjs7OztOOzs7MUZCODs7MUZCOAorMUZCMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjEgMDMwNDs7OztOOzs7MUZCOTs7MUZCOQorMUZCMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3MCAwMzQ1Ozs7O047Ozs7OworMUZCMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0IxIDAzNDU7Ozs7Tjs7OzFGQkM7OzFGQkMKKzFGQjQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBQyAwMzQ1Ozs7O047Ozs7OworMUZCNjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCMSAwMzQyOzs7O047Ozs7OworMUZCNztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZCNiAwMzQ1Ozs7O047Ozs7OworMUZCODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMdTswO0w7MDM5MSAwMzA2Ozs7O047Ozs7MUZCMDsKKzFGQjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047THU7MDtMOzAzOTEgMDMwNDs7OztOOzs7OzFGQjE7CisxRkJBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7THU7MDtMOzAzOTEgMDMwMDs7OztOOzs7OzFGNzA7CisxRkJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQTtMdTswO0w7MDM4Njs7OztOOzs7OzFGNzE7CisxRkJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzOTEgMDM0NTs7OztOOzs7OzFGQjM7CisxRkJEO0dSRUVLIEtPUk9OSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkJFO0dSRUVLIFBST1NHRUdSQU1NRU5JO0xsOzA7TDswM0I5Ozs7O047OzswMzk5OzswMzk5CisxRkJGO0dSRUVLIFBTSUxJO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzEzOzs7O047Ozs7OworMUZDMDtHUkVFSyBQRVJJU1BPTUVOSTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDM0Mjs7OztOOzs7OzsKKzFGQzE7R1JFRUsgRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzAwQTggMDM0Mjs7OztOOzs7OzsKKzFGQzI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjc0IDAzNDU7Ozs7Tjs7Ozs7CisxRkMzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0I3IDAzNDU7Ozs7Tjs7OzFGQ0M7OzFGQ0MKKzFGQzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQUUgMDM0NTs7OztOOzs7OzsKKzFGQzY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I3IDAzNDI7Ozs7Tjs7Ozs7CisxRkM3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZDNiAwMzQ1Ozs7O047Ozs7OworMUZDODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzOTUgMDMwMDs7OztOOzs7OzFGNzI7CisxRkM5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzg4Ozs7O047Ozs7MUY3MzsKKzFGQ0E7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggVkFSSUE7THU7MDtMOzAzOTcgMDMwMDs7OztOOzs7OzFGNzQ7CisxRkNCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7THU7MDtMOzAzODk7Ozs7Tjs7OzsxRjc1OworMUZDQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDM5NyAwMzQ1Ozs7O047Ozs7MUZDMzsKKzFGQ0Q7R1JFRUsgUFNJTEkgQU5EIFZBUklBO1NrOzA7T047MUZCRiAwMzAwOzs7O047Ozs7OworMUZDRTtHUkVFSyBQU0lMSSBBTkQgT1hJQTtTazswO09OOzFGQkYgMDMwMTs7OztOOzs7OzsKKzFGQ0Y7R1JFRUsgUFNJTEkgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MUZCRiAwMzQyOzs7O047Ozs7OworMUZEMDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCOSAwMzA2Ozs7O047OzsxRkQ4OzsxRkQ4CisxRkQxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0xsOzA7TDswM0I5IDAzMDQ7Ozs7Tjs7OzFGRDk7OzFGRDkKKzFGRDI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBO0xsOzA7TDswM0NBIDAzMDA7Ozs7Tjs7Ozs7CisxRkQzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBO0xsOzA7TDswMzkwOzs7O047Ozs7OworMUZENjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I5IDAzNDI7Ozs7Tjs7Ozs7CisxRkQ3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQSAwMzQyOzs7O047Ozs7OworMUZEODtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzk5IDAzMDY7Ozs7Tjs7OzsxRkQwOworMUZEOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0x1OzA7TDswMzk5IDAzMDQ7Ozs7Tjs7OzsxRkQxOworMUZEQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVkFSSUE7THU7MDtMOzAzOTkgMDMwMDs7OztOOzs7OzFGNzY7CisxRkRCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0x1OzA7TDswMzhBOzs7O047Ozs7MUY3NzsKKzFGREQ7R1JFRUsgREFTSUEgQU5EIFZBUklBO1NrOzA7T047MUZGRSAwMzAwOzs7O047Ozs7OworMUZERTtHUkVFSyBEQVNJQSBBTkQgT1hJQTtTazswO09OOzFGRkUgMDMwMTs7OztOOzs7OzsKKzFGREY7R1JFRUsgREFTSUEgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MUZGRSAwMzQyOzs7O047Ozs7OworMUZFMDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZSQUNIWTtMbDswO0w7MDNDNSAwMzA2Ozs7O047OzsxRkU4OzsxRkU4CisxRkUxO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggTUFDUk9OO0xsOzA7TDswM0M1IDAzMDQ7Ozs7Tjs7OzFGRTk7OzFGRTkKKzFGRTI7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBO0xsOzA7TDswM0NCIDAzMDA7Ozs7Tjs7Ozs7CisxRkUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBO0xsOzA7TDswM0IwOzs7O047Ozs7OworMUZFNDtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggUFNJTEk7TGw7MDtMOzAzQzEgMDMxMzs7OztOOzs7OzsKKzFGRTU7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0xsOzA7TDswM0MxIDAzMTQ7Ozs7Tjs7OzFGRUM7OzFGRUMKKzFGRTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDNSAwMzQyOzs7O047Ozs7OworMUZFNztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzAzQ0IgMDM0Mjs7OztOOzs7OzsKKzFGRTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZSQUNIWTtMdTswO0w7MDNBNSAwMzA2Ozs7O047Ozs7MUZFMDsKKzFGRTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMdTswO0w7MDNBNSAwMzA0Ozs7O047Ozs7MUZFMTsKKzFGRUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0x1OzA7TDswM0E1IDAzMDA7Ozs7Tjs7OzsxRjdBOworMUZFQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQTtMdTswO0w7MDM4RTs7OztOOzs7OzFGN0I7CisxRkVDO0dSRUVLIENBUElUQUwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0x1OzA7TDswM0ExIDAzMTQ7Ozs7Tjs7OzsxRkU1OworMUZFRDtHUkVFSyBESUFMWVRJS0EgQU5EIFZBUklBO1NrOzA7T047MDBBOCAwMzAwOzs7O047Ozs7OworMUZFRTtHUkVFSyBESUFMWVRJS0EgQU5EIE9YSUE7U2s7MDtPTjswMzg1Ozs7O047Ozs7OworMUZFRjtHUkVFSyBWQVJJQTtTazswO09OOzAwNjA7Ozs7Tjs7Ozs7CisxRkYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjdDIDAzNDU7Ozs7Tjs7Ozs7CisxRkYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQzkgMDM0NTs7OztOOzs7MUZGQzs7MUZGQworMUZGNDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0NFIDAzNDU7Ozs7Tjs7Ozs7CisxRkY2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0M5IDAzNDI7Ozs7Tjs7Ozs7CisxRkY3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkY2IDAzNDU7Ozs7Tjs7Ozs7CisxRkY4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBWQVJJQTtMdTswO0w7MDM5RiAwMzAwOzs7O047Ozs7MUY3ODsKKzFGRjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUE7THU7MDtMOzAzOEM7Ozs7Tjs7OzsxRjc5OworMUZGQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBO0x1OzA7TDswM0E5IDAzMDA7Ozs7Tjs7OzsxRjdDOworMUZGQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7THU7MDtMOzAzOEY7Ozs7Tjs7OzsxRjdEOworMUZGQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswM0E5IDAzNDU7Ozs7Tjs7OzsxRkYzOworMUZGRDtHUkVFSyBPWElBO1NrOzA7T047MDBCNDs7OztOOzs7OzsKKzFGRkU7R1JFRUsgREFTSUE7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTQ7Ozs7Tjs7Ozs7CisyMDAwO0VOIFFVQUQ7WnM7MDtXUzsyMDAyOzs7O047Ozs7OworMjAwMTtFTSBRVUFEO1pzOzA7V1M7MjAwMzs7OztOOzs7OzsKKzIwMDI7RU4gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwMztFTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA0O1RIUkVFLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA1O0ZPVVItUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDY7U0lYLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA3O0ZJR1VSRSBTUEFDRTtaczswO1dTOzxub0JyZWFrPiAwMDIwOzs7O047Ozs7OworMjAwODtQVU5DVFVBVElPTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA5O1RISU4gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQTtIQUlSIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMEI7WkVSTyBXSURUSCBTUEFDRTtDZjswO0JOOzs7OztOOzs7OzsKKzIwMEM7WkVSTyBXSURUSCBOT04tSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjAwRDtaRVJPIFdJRFRIIEpPSU5FUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwMEU7TEVGVC1UTy1SSUdIVCBNQVJLO0NmOzA7TDs7Ozs7Tjs7Ozs7CisyMDBGO1JJR0hULVRPLUxFRlQgTUFSSztDZjswO1I7Ozs7O047Ozs7OworMjAxMDtIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDExO05PTi1CUkVBS0lORyBIWVBIRU47UGQ7MDtPTjs8bm9CcmVhaz4gMjAxMDs7OztOOzs7OzsKKzIwMTI7RklHVVJFIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDEzO0VOIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDE0O0VNIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDE1O0hPUklaT05UQUwgQkFSO1BkOzA7T047Ozs7O047UVVPVEFUSU9OIERBU0g7Ozs7CisyMDE2O0RPVUJMRSBWRVJUSUNBTCBMSU5FO1BvOzA7T047Ozs7O047RE9VQkxFIFZFUlRJQ0FMIEJBUjs7OzsKKzIwMTc7RE9VQkxFIExPVyBMSU5FO1BvOzA7T047PGNvbXBhdD4gMDAyMCAwMzMzOzs7O047U1BBQ0lORyBET1VCTEUgVU5ERVJTQ09SRTs7OzsKKzIwMTg7TEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtTSU5HTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxOTtSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtTSU5HTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFBO1NJTkdMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztZO0xPVyBTSU5HTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFCO1NJTkdMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtTSU5HTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFDO0xFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7RE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUQ7UklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7RE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRTtET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7WTtMT1cgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRjtET1VCTEUgSElHSC1SRVZFUlNFRC05IFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7RE9VQkxFIFJFVkVSU0VEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAyMDtEQUdHRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIxO0RPVUJMRSBEQUdHRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIyO0JVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjM7VFJJQU5HVUxBUiBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDI0O09ORSBET1QgTEVBREVSO1BvOzA7T047PGNvbXBhdD4gMDAyRTs7OztOOzs7OzsKKzIwMjU7VFdPIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFIDAwMkU7Ozs7Tjs7Ozs7CisyMDI2O0hPUklaT05UQUwgRUxMSVBTSVM7UG87MDtPTjs8Y29tcGF0PiAwMDJFIDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjc7SFlQSEVOQVRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDI4O0xJTkUgU0VQQVJBVE9SO1psOzA7V1M7Ozs7O047Ozs7OworMjAyOTtQQVJBR1JBUEggU0VQQVJBVE9SO1pwOzA7Qjs7Ozs7Tjs7Ozs7CisyMDJBO0xFRlQtVE8tUklHSFQgRU1CRURESU5HO0NmOzA7TFJFOzs7OztOOzs7OzsKKzIwMkI7UklHSFQtVE8tTEVGVCBFTUJFRERJTkc7Q2Y7MDtSTEU7Ozs7O047Ozs7OworMjAyQztQT1AgRElSRUNUSU9OQUwgRk9STUFUVElORztDZjswO1BERjs7Ozs7Tjs7Ozs7CisyMDJEO0xFRlQtVE8tUklHSFQgT1ZFUlJJREU7Q2Y7MDtMUk87Ozs7O047Ozs7OworMjAyRTtSSUdIVC1UTy1MRUZUIE9WRVJSSURFO0NmOzA7UkxPOzs7OztOOzs7OzsKKzIwMkY7TkFSUk9XIE5PLUJSRUFLIFNQQUNFO1pzOzA7Q1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDMwO1BFUiBNSUxMRSBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMTtQRVIgVEVOIFRIT1VTQU5EIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMyO1BSSU1FO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMztET1VCTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM0O1RSSVBMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNTtSRVZFUlNFRCBQUklNRTtQbzswO09OOzs7OztOOzs7OzsKKzIwMzY7UkVWRVJTRUQgRE9VQkxFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzNztSRVZFUlNFRCBUUklQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzg7Q0FSRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM5O1NJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7TEVGVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQTtTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtSSUdIVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQjtSRUZFUkVOQ0UgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwM0M7RE9VQkxFIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwMjE7Ozs7Tjs7Ozs7CisyMDNEO0lOVEVSUk9CQU5HO1BvOzA7T047Ozs7O047Ozs7OworMjAzRTtPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMwNTs7OztOO1NQQUNJTkcgT1ZFUlNDT1JFOzs7OworMjAzRjtVTkRFUlRJRTtQYzswO09OOzs7OztOOztFbm90aWtvbjs7OworMjA0MDtDSEFSQUNURVIgVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA0MTtDQVJFVCBJTlNFUlRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQyO0FTVEVSSVNNO1BvOzA7T047Ozs7O047Ozs7OworMjA0MztIWVBIRU4gQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0NDtGUkFDVElPTiBTTEFTSDtTbTswO0NTOzs7OztOOzs7OzsKKzIwNDU7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BzOzA7T047Ozs7O1k7Ozs7OworMjA0NjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BlOzA7T047Ozs7O1k7Ozs7OworMjA0NztET1VCTEUgUVVFU1RJT04gTUFSSztQbzswO09OOzxjb21wYXQ+IDAwM0YgMDAzRjs7OztOOzs7OzsKKzIwNDg7UVVFU1RJT04gRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxjb21wYXQ+IDAwM0YgMDAyMTs7OztOOzs7OzsKKzIwNDk7RVhDTEFNQVRJT04gUVVFU1RJT04gTUFSSztQbzswO09OOzxjb21wYXQ+IDAwMjEgMDAzRjs7OztOOzs7OzsKKzIwNEE7VElST05JQU4gU0lHTiBFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNEI7UkVWRVJTRUQgUElMQ1JPVyBTSUdOO1BvOzA7T047Ozs7O047Ozs7OworMjA0QztCTEFDSyBMRUZUV0FSRFMgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0RDtCTEFDSyBSSUdIVFdBUkRTIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNEU7TE9XIEFTVEVSSVNLO1BvOzA7T047Ozs7O047Ozs7OworMjA0RjtSRVZFUlNFRCBTRU1JQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDUwO0NMT1NFIFVQO1BvOzA7T047Ozs7O047Ozs7OworMjA1MTtUV08gQVNURVJJU0tTIEFMSUdORUQgVkVSVElDQUxMWTtQbzswO09OOzs7OztOOzs7OzsKKzIwNTI7Q09NTUVSQ0lBTCBNSU5VUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMjA1MztTV1VORyBEQVNIO1BvOzA7T047Ozs7O047Ozs7OworMjA1NDtJTlZFUlRFRCBVTkRFUlRJRTtQYzswO09OOzs7OztOOzs7OzsKKzIwNTU7RkxPV0VSIFBVTkNUVUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDU2O1RIUkVFIERPVCBQVU5DVFVBVElPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNTc7UVVBRFJVUExFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzMiAyMDMyIDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwNTg7Rk9VUiBET1QgUFVOQ1RVQVRJT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDU5O0ZJVkUgRE9UIFBVTkNUVUFUSU9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1QTtUV08gRE9UIFBVTkNUVUFUSU9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1QjtGT1VSIERPVCBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMjA1QztET1RURUQgQ1JPU1M7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVEO1RSSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1RTtWRVJUSUNBTCBGT1VSIERPVFM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVGO01FRElVTSBNQVRIRU1BVElDQUwgU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjA2MDtXT1JEIEpPSU5FUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwNjE7RlVOQ1RJT04gQVBQTElDQVRJT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDYyO0lOVklTSUJMRSBUSU1FUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNjM7SU5WSVNJQkxFIFNFUEFSQVRPUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwNkE7SU5ISUJJVCBTWU1NRVRSSUMgU1dBUFBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZCO0FDVElWQVRFIFNZTU1FVFJJQyBTV0FQUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkM7SU5ISUJJVCBBUkFCSUMgRk9STSBTSEFQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2RDtBQ1RJVkFURSBBUkFCSUMgRk9STSBTSEFQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2RTtOQVRJT05BTCBESUdJVCBTSEFQRVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZGO05PTUlOQUwgRElHSVQgU0hBUEVTO0NmOzA7Qk47Ozs7O047Ozs7OworMjA3MDtTVVBFUlNDUklQVCBaRVJPO05vOzA7RU47PHN1cGVyPiAwMDMwOzswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3MTtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHN1cGVyPiAwMDY5Ozs7O047Ozs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0Ozs0OzQ7TjtTVVBFUlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA3NTtTVVBFUlNDUklQVCBGSVZFO05vOzA7RU47PHN1cGVyPiAwMDM1Ozs1OzU7TjtTVVBFUlNDUklQVCBESUdJVCBGSVZFOzs7OworMjA3NjtTVVBFUlNDUklQVCBTSVg7Tm87MDtFTjs8c3VwZXI+IDAwMzY7OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Ozc7NztOO1NVUEVSU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA3ODtTVVBFUlNDUklQVCBFSUdIVDtObzswO0VOOzxzdXBlcj4gMDAzODs7ODs4O047U1VQRVJTQ1JJUFQgRElHSVQgRUlHSFQ7Ozs7CisyMDc5O1NVUEVSU0NSSVBUIE5JTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzk7Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VTOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFUzs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHN1cGVyPiAwMDZFOzs7O047Ozs7OworMjA4MDtTVUJTQ1JJUFQgWkVSTztObzswO0VOOzxzdWI+IDAwMzA7OzA7MDtOO1NVQlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA4MTtTVUJTQ1JJUFQgT05FO05vOzA7RU47PHN1Yj4gMDAzMTs7MTsxO047U1VCU0NSSVBUIERJR0lUIE9ORTs7OzsKKzIwODI7U1VCU0NSSVBUIFRXTztObzswO0VOOzxzdWI+IDAwMzI7OzI7MjtOO1NVQlNDUklQVCBESUdJVCBUV087Ozs7CisyMDgzO1NVQlNDUklQVCBUSFJFRTtObzswO0VOOzxzdWI+IDAwMzM7OzM7MztOO1NVQlNDUklQVCBESUdJVCBUSFJFRTs7OzsKKzIwODQ7U1VCU0NSSVBUIEZPVVI7Tm87MDtFTjs8c3ViPiAwMDM0Ozs0OzQ7TjtTVUJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwODU7U1VCU0NSSVBUIEZJVkU7Tm87MDtFTjs8c3ViPiAwMDM1Ozs1OzU7TjtTVUJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwODY7U1VCU0NSSVBUIFNJWDtObzswO0VOOzxzdWI+IDAwMzY7OzY7NjtOO1NVQlNDUklQVCBESUdJVCBTSVg7Ozs7CisyMDg3O1NVQlNDUklQVCBTRVZFTjtObzswO0VOOzxzdWI+IDAwMzc7Ozc7NztOO1NVQlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwODg7U1VCU0NSSVBUIEVJR0hUO05vOzA7RU47PHN1Yj4gMDAzODs7ODs4O047U1VCU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA4OTtTVUJTQ1JJUFQgTklORTtObzswO0VOOzxzdWI+IDAwMzk7Ozk7OTtOO1NVQlNDUklQVCBESUdJVCBOSU5FOzs7OworMjA4QTtTVUJTQ1JJUFQgUExVUyBTSUdOO1NtOzA7RVM7PHN1Yj4gMDAyQjs7OztOOzs7OzsKKzIwOEI7U1VCU0NSSVBUIE1JTlVTO1NtOzA7RVM7PHN1Yj4gMjIxMjs7OztOO1NVQlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDhDO1NVQlNDUklQVCBFUVVBTFMgU0lHTjtTbTswO09OOzxzdWI+IDAwM0Q7Ozs7Tjs7Ozs7CisyMDhEO1NVQlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1Yj4gMDAyODs7OztZO1NVQlNDUklQVCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMjA4RTtTVUJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3ViPiAwMDI5Ozs7O1k7U1VCU0NSSVBUIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CisyMDkwO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQTtMbTswO0w7PHN1Yj4gMDA2MTs7OztOOzs7OzsKKzIwOTE7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBFO0xtOzA7TDs8c3ViPiAwMDY1Ozs7O047Ozs7OworMjA5MjtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIE87TG07MDtMOzxzdWI+IDAwNkY7Ozs7Tjs7Ozs7CisyMDkzO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgWDtMbTswO0w7PHN1Yj4gMDA3ODs7OztOOzs7OzsKKzIwOTQ7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBTQ0hXQTtMbTswO0w7PHN1Yj4gMDI1OTs7OztOOzs7OzsKKzIwQTA7RVVSTy1DVVJSRU5DWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMTtDT0xPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMjtDUlVaRUlSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMztGUkVOQ0ggRlJBTkMgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTQ7TElSQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNTtNSUxMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE2O05BSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE3O1BFU0VUQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBODtSVVBFRSBTSUdOO1NjOzA7RVQ7PGNvbXBhdD4gMDA1MiAwMDczOzs7O047Ozs7OworMjBBOTtXT04gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUE7TkVXIFNIRVFFTCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQjtET05HIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFDO0VVUk8gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUQ7S0lQIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFFO1RVR1JJSyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRjtEUkFDSE1BIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEIwO0dFUk1BTiBQRU5OWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCMTtQRVNPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEIyO0dVQVJBTkkgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjM7QVVTVFJBTCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCNDtIUllWTklBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEI1O0NFREkgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwRDA7Q09NQklOSU5HIExFRlQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFSUE9PTiBBQk9WRTs7OzsKKzIwRDE7Q09NQklOSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMjtDT01CSU5JTkcgTE9ORyBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDM7Q09NQklOSU5HIFNIT1JUIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDQ7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENTtDT01CSU5JTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENjtDT01CSU5JTkcgTEVGVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgQVJST1cgQUJPVkU7Ozs7CisyMEQ3O0NPTUJJTklORyBSSUdIVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBEODtDT01CSU5JTkcgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgT1ZFUkxBWTs7OzsKKzIwRDk7Q09NQklOSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTs7OzsKKzIwREE7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQjtDT01CSU5JTkcgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRIUkVFIERPVFMgQUJPVkU7Ozs7CisyMERDO0NPTUJJTklORyBGT1VSIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBGT1VSIERPVFMgQUJPVkU7Ozs7CisyMEREO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEU7Ozs7CisyMERFO0NPTUJJTklORyBFTkNMT1NJTkcgU1FVQVJFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBTUVVBUkU7Ozs7CisyMERGO0NPTUJJTklORyBFTkNMT1NJTkcgRElBTU9ORDtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgRElBTU9ORDs7OzsKKzIwRTA7Q09NQklOSU5HIEVOQ0xPU0lORyBDSVJDTEUgQkFDS1NMQVNIO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEUgU0xBU0g7Ozs7CisyMEUxO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIwRTI7Q09NQklOSU5HIEVOQ0xPU0lORyBTQ1JFRU47TWU7MDtOU007Ozs7O047Ozs7OworMjBFMztDT01CSU5JTkcgRU5DTE9TSU5HIEtFWUNBUDtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMEU0O0NPTUJJTklORyBFTkNMT1NJTkcgVVBXQVJEIFBPSU5USU5HIFRSSUFOR0xFO01lOzA7TlNNOzs7OztOOzs7OzsKKzIwRTU7Q09NQklOSU5HIFJFVkVSU0UgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOOzs7OzsKKzIwRTY7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisyMEU3O0NPTUJJTklORyBBTk5VSVRZIFNZTUJPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzIwRTg7Q09NQklOSU5HIFRSSVBMRSBVTkRFUkRPVDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzIwRTk7Q09NQklOSU5HIFdJREUgQlJJREdFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMjBFQTtDT01CSU5JTkcgTEVGVFdBUkRTIEFSUk9XIE9WRVJMQVk7TW47MTtOU007Ozs7O047Ozs7OworMjBFQjtDT01CSU5JTkcgTE9ORyBET1VCTEUgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOOzs7OzsKKzIwRUM7Q09NQklOSU5HIFJJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO01uOzIyMDtOU007Ozs7O047Ozs7OworMjBFRDtDT01CSU5JTkcgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV05XQVJEUztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzIwRUU7Q09NQklOSU5HIExFRlQgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisyMEVGO0NPTUJJTklORyBSSUdIVCBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzIxMDA7QUNDT1VOVCBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjEgMDAyRiAwMDYzOzs7O047Ozs7OworMjEwMTtBRERSRVNTRUQgVE8gVEhFIFNVQkpFQ1Q7U287MDtPTjs8Y29tcGF0PiAwMDYxIDAwMkYgMDA3Mzs7OztOOzs7OzsKKzIxMDI7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047RE9VQkxFLVNUUlVDSyBDOzs7OworMjEwMztERUdSRUUgQ0VMU0lVUztTbzswO09OOzxjb21wYXQ+IDAwQjAgMDA0Mzs7OztOO0RFR1JFRVMgQ0VOVElHUkFERTs7OzsKKzIxMDQ7Q0VOVFJFIExJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047QyBMIFNZTUJPTDs7OzsKKzIxMDU7Q0FSRSBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDZGOzs7O047Ozs7OworMjEwNjtDQURBIFVOQTtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDc1Ozs7O047Ozs7OworMjEwNztFVUxFUiBDT05TVEFOVDtMdTswO0w7PGNvbXBhdD4gMDE5MDs7OztOO0VVTEVSUzs7OzsKKzIxMDg7U0NSVVBMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMDk7REVHUkVFIEZBSFJFTkhFSVQ7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDY7Ozs7TjtERUdSRUVTIEZBSFJFTkhFSVQ7Ozs7CisyMTBBO1NDUklQVCBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzIxMEI7U0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtTQ1JJUFQgSDs7OzsKKzIxMEM7QkxBQ0stTEVUVEVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtCTEFDSy1MRVRURVIgSDs7OzsKKzIxMEQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047RE9VQkxFLVNUUlVDSyBIOzs7OworMjEwRTtQTEFOQ0sgQ09OU1RBTlQ7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMjEwRjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiBUV08gUEk7TGw7MDtMOzxmb250PiAwMTI3Ozs7O047UExBTkNLIENPTlNUQU5UIE9WRVIgMiBQSTs7OzsKKzIxMTA7U0NSSVBUIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtTQ1JJUFQgSTs7OzsKKzIxMTE7QkxBQ0stTEVUVEVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtCTEFDSy1MRVRURVIgSTs7OzsKKzIxMTI7U0NSSVBUIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7TjtTQ1JJUFQgTDs7OzsKKzIxMTM7U0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMjExNDtMIEIgQkFSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTU7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047RE9VQkxFLVNUUlVDSyBOOzs7OworMjExNjtOVU1FUk8gU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNEUgMDA2Rjs7OztOO05VTUVSTzs7OzsKKzIxMTc7U09VTkQgUkVDT1JESU5HIENPUFlSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTg7U0NSSVBUIENBUElUQUwgUDtTbzswO09OOzs7OztOO1NDUklQVCBQOzs7OworMjExOTtET1VCTEUtU1RSVUNLIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7TjtET1VCTEUtU1RSVUNLIFA7Ozs7CisyMTFBO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOO0RPVUJMRS1TVFJVQ0sgUTs7OzsKKzIxMUI7U0NSSVBUIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtTQ1JJUFQgUjs7OzsKKzIxMUM7QkxBQ0stTEVUVEVSIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtCTEFDSy1MRVRURVIgUjs7OzsKKzIxMUQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047RE9VQkxFLVNUUlVDSyBSOzs7OworMjExRTtQUkVTQ1JJUFRJT04gVEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMUY7UkVTUE9OU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTIwO1NFUlZJQ0UgTUFSSztTbzswO09OOzxzdXBlcj4gMDA1MyAwMDREOzs7O047Ozs7OworMjEyMTtURUxFUEhPTkUgU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNTQgMDA0NSAwMDRDOzs7O047VCBFIEwgU1lNQk9MOzs7OworMjEyMjtUUkFERSBNQVJLIFNJR047U287MDtPTjs8c3VwZXI+IDAwNTQgMDA0RDs7OztOO1RSQURFTUFSSzs7OzsKKzIxMjM7VkVSU0lDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTI0O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOO0RPVUJMRS1TVFJVQ0sgWjs7OzsKKzIxMjU7T1VOQ0UgU0lHTjtTbzswO09OOzs7OztOO09VTkNFOzs7OworMjEyNjtPSE0gU0lHTjtMdTswO0w7MDNBOTs7OztOO09ITTs7OzAzQzk7CisyMTI3O0lOVkVSVEVEIE9ITSBTSUdOO1NvOzA7T047Ozs7O047TUhPOzs7OworMjEyODtCTEFDSy1MRVRURVIgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOO0JMQUNLLUxFVFRFUiBaOzs7OworMjEyOTtUVVJORUQgR1JFRUsgU01BTEwgTEVUVEVSIElPVEE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTJBO0tFTFZJTiBTSUdOO0x1OzA7TDswMDRCOzs7O047REVHUkVFUyBLRUxWSU47OzswMDZCOworMjEyQjtBTkdTVFJPTSBTSUdOO0x1OzA7TDswMEM1Ozs7O047QU5HU1RST00gVU5JVDs7OzAwRTU7CisyMTJDO1NDUklQVCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047U0NSSVBUIEI7Ozs7CisyMTJEO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047QkxBQ0stTEVUVEVSIEM7Ozs7CisyMTJFO0VTVElNQVRFRCBTWU1CT0w7U287MDtFVDs7Ozs7Tjs7Ozs7CisyMTJGO1NDUklQVCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzIxMzA7U0NSSVBUIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7TjtTQ1JJUFQgRTs7OzsKKzIxMzE7U0NSSVBUIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7TjtTQ1JJUFQgRjs7OzsKKzIxMzI7VFVSTkVEIENBUElUQUwgRjtMdTswO0w7Ozs7O047VFVSTkVEIEY7OzsyMTRFOworMjEzMztTQ1JJUFQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOO1NDUklQVCBNOzs7OworMjEzNDtTQ1JJUFQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisyMTM1O0FMRUYgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQwOzs7O047RklSU1QgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM2O0JFVCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDE7Ozs7TjtTRUNPTkQgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM3O0dJTUVMIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMjs7OztOO1RISVJEIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzODtEQUxFVCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDM7Ozs7TjtGT1VSVEggVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM5O0lORk9STUFUSU9OIFNPVVJDRTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisyMTNBO1JPVEFURUQgQ0FQSVRBTCBRO1NvOzA7T047Ozs7O047Ozs7OworMjEzQjtGQUNTSU1JTEUgU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNDYgMDA0MSAwMDU4Ozs7O047Ozs7OworMjEzQztET1VCTEUtU1RSVUNLIFNNQUxMIFBJO0xsOzA7TDs8Zm9udD4gMDNDMDs7OztOOzs7OzsKKzIxM0Q7RE9VQkxFLVNUUlVDSyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisyMTNFO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisyMTNGO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisyMTQwO0RPVUJMRS1TVFJVQ0sgTi1BUlkgU1VNTUFUSU9OO1NtOzA7T047PGZvbnQ+IDIyMTE7Ozs7WTs7Ozs7CisyMTQxO1RVUk5FRCBTQU5TLVNFUklGIENBUElUQUwgRztTbTswO09OOzs7OztOOzs7OzsKKzIxNDI7VFVSTkVEIFNBTlMtU0VSSUYgQ0FQSVRBTCBMO1NtOzA7T047Ozs7O047Ozs7OworMjE0MztSRVZFUlNFRCBTQU5TLVNFUklGIENBUElUQUwgTDtTbTswO09OOzs7OztOOzs7OzsKKzIxNDQ7VFVSTkVEIFNBTlMtU0VSSUYgQ0FQSVRBTCBZO1NtOzA7T047Ozs7O047Ozs7OworMjE0NTtET1VCTEUtU1RSVUNLIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMjE0NjtET1VCTEUtU1RSVUNLIElUQUxJQyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzIxNDc7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisyMTQ4O0RPVUJMRS1TVFJVQ0sgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMjE0OTtET1VCTEUtU1RSVUNLIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzIxNEE7UFJPUEVSVFkgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIxNEI7VFVSTkVEIEFNUEVSU0FORDtTbTswO09OOzs7OztOOzs7OzsKKzIxNEM7UEVSIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTREO0FLVElFU0VMU0tBQjtTbzswO09OOzs7OztOOzs7OzsKKzIxNEU7VFVSTkVEIFNNQUxMIEY7TGw7MDtMOzs7OztOOzs7MjEzMjs7MjEzMgorMjE1MztWVUxHQVIgRlJBQ1RJT04gT05FIFRISVJEO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMzs7OzEvMztOO0ZSQUNUSU9OIE9ORSBUSElSRDs7OzsKKzIxNTQ7VlVMR0FSIEZSQUNUSU9OIFRXTyBUSElSRFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDMzOzs7Mi8zO047RlJBQ1RJT04gVFdPIFRISVJEUzs7OzsKKzIxNTU7VlVMR0FSIEZSQUNUSU9OIE9ORSBGSUZUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzU7OzsxLzU7TjtGUkFDVElPTiBPTkUgRklGVEg7Ozs7CisyMTU2O1ZVTEdBUiBGUkFDVElPTiBUV08gRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzNTs7OzIvNTtOO0ZSQUNUSU9OIFRXTyBGSUZUSFM7Ozs7CisyMTU3O1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM1Ozs7My81O047RlJBQ1RJT04gVEhSRUUgRklGVEhTOzs7OworMjE1ODtWVUxHQVIgRlJBQ1RJT04gRk9VUiBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzQgMjA0NCAwMDM1Ozs7NC81O047RlJBQ1RJT04gRk9VUiBGSUZUSFM7Ozs7CisyMTU5O1ZVTEdBUiBGUkFDVElPTiBPTkUgU0lYVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM2Ozs7MS82O047RlJBQ1RJT04gT05FIFNJWFRIOzs7OworMjE1QTtWVUxHQVIgRlJBQ1RJT04gRklWRSBTSVhUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM2Ozs7NS82O047RlJBQ1RJT04gRklWRSBTSVhUSFM7Ozs7CisyMTVCO1ZVTEdBUiBGUkFDVElPTiBPTkUgRUlHSFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzODs7OzEvODtOO0ZSQUNUSU9OIE9ORSBFSUdIVEg7Ozs7CisyMTVDO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzODs7OzMvODtOO0ZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Ozs7CisyMTVEO1ZVTEdBUiBGUkFDVElPTiBGSVZFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM4Ozs7NS84O047RlJBQ1RJT04gRklWRSBFSUdIVEhTOzs7OworMjE1RTtWVUxHQVIgRlJBQ1RJT04gU0VWRU4gRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNyAyMDQ0IDAwMzg7Ozs3Lzg7TjtGUkFDVElPTiBTRVZFTiBFSUdIVEhTOzs7OworMjE1RjtGUkFDVElPTiBOVU1FUkFUT1IgT05FO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQ7OzsxO047Ozs7OworMjE2MDtST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA0OTs7OzE7Tjs7OzsyMTcwOworMjE2MTtST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5Ozs7MjtOOzs7OzIxNzE7CisyMTYyO1JPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OSAwMDQ5Ozs7MztOOzs7OzIxNzI7CisyMTYzO1JPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU2Ozs7NDtOOzs7OzIxNzM7CisyMTY0O1JPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA1Njs7OzU7Tjs7OzsyMTc0OworMjE2NTtST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5Ozs7NjtOOzs7OzIxNzU7CisyMTY2O1JPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5Ozs7NztOOzs7OzIxNzY7CisyMTY3O1JPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5IDAwNDk7Ozs4O047Ozs7MjE3NzsKKzIxNjg7Uk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTg7Ozs5O047Ozs7MjE3ODsKKzIxNjk7Uk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNTg7OzsxMDtOOzs7OzIxNzk7CisyMTZBO1JPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDk7OzsxMTtOOzs7OzIxN0E7CisyMTZCO1JPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDkgMDA0OTs7OzEyO047Ozs7MjE3QjsKKzIxNkM7Uk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA0Qzs7OzUwO047Ozs7MjE3QzsKKzIxNkQ7Uk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0Mzs7OzEwMDtOOzs7OzIxN0Q7CisyMTZFO1JPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQ0Ozs7NTAwO047Ozs7MjE3RTsKKzIxNkY7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNEQ7OzsxMDAwO047Ozs7MjE3RjsKKzIxNzA7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjk7OzsxO047OzsyMTYwOzsyMTYwCisyMTcxO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjk7OzsyO047OzsyMTYxOzsyMTYxCisyMTcyO1NNQUxMIFJPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OSAwMDY5Ozs7MztOOzs7MjE2Mjs7MjE2MgorMjE3MztTTUFMTCBST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3Njs7OzQ7Tjs7OzIxNjM7OzIxNjMKKzIxNzQ7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDc2Ozs7NTtOOzs7MjE2NDs7MjE2NAorMjE3NTtTTUFMTCBST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5Ozs7NjtOOzs7MjE2NTs7MjE2NQorMjE3NjtTTUFMTCBST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OTs7Ozc7Tjs7OzIxNjY7OzIxNjYKKzIxNzc7U01BTEwgUk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjkgMDA2OTs7Ozg7Tjs7OzIxNjc7OzIxNjcKKzIxNzg7U01BTEwgUk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzg7Ozs5O047OzsyMTY4OzsyMTY4CisyMTc5O1NNQUxMIFJPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDc4Ozs7MTA7Tjs7OzIxNjk7OzIxNjkKKzIxN0E7U01BTEwgUk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OTs7OzExO047OzsyMTZBOzsyMTZBCisyMTdCO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjkgMDA2OTs7OzEyO047OzsyMTZCOzsyMTZCCisyMTdDO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNkM7Ozs1MDtOOzs7MjE2Qzs7MjE2QworMjE3RDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDYzOzs7MTAwO047OzsyMTZEOzsyMTZECisyMTdFO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDY0Ozs7NTAwO047OzsyMTZFOzsyMTZFCisyMTdGO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDZEOzs7MTAwMDtOOzs7MjE2Rjs7MjE2RgorMjE4MDtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORCBDIEQ7Tmw7MDtMOzs7OzEwMDA7Tjs7Ozs7CisyMTgxO1JPTUFOIE5VTUVSQUwgRklWRSBUSE9VU0FORDtObDswO0w7Ozs7NTAwMDtOOzs7OzsKKzIxODI7Uk9NQU4gTlVNRVJBTCBURU4gVEhPVVNBTkQ7Tmw7MDtMOzs7OzEwMDAwO047Ozs7OworMjE4MztST01BTiBOVU1FUkFMIFJFVkVSU0VEIE9ORSBIVU5EUkVEO0x1OzA7TDs7Ozs7Tjs7OzsyMTg0OworMjE4NDtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgQztMbDswO0w7Ozs7O047OzsyMTgzOzsyMTgzCisyMTkwO0xFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOO0xFRlQgQVJST1c7Ozs7CisyMTkxO1VQV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtVUCBBUlJPVzs7OzsKKzIxOTI7UklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIEFSUk9XOzs7OworMjE5MztET1dOV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtET1dOIEFSUk9XOzs7OworMjE5NDtMRUZUIFJJR0hUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjE5NTtVUCBET1dOIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjE5NjtOT1JUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVzs7OzsKKzIxOTc7Tk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIFJJR0hUIEFSUk9XOzs7OworMjE5ODtTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgQVJST1c7Ozs7CisyMTk5O1NPVVRIIFdFU1QgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBMRUZUIEFSUk9XOzs7OworMjE5QTtMRUZUV0FSRFMgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMTkwIDAzMzg7Ozs7TjtMRUZUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QjtSSUdIVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5MiAwMzM4Ozs7O047UklHSFQgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMTlDO0xFRlRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBXQVZFIEFSUk9XOzs7OworMjE5RDtSSUdIVFdBUkRTIFdBVkUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBXQVZFIEFSUk9XOzs7OworMjE5RTtMRUZUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxOUY7VVBXQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047VVAgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxQTA7UklHSFRXQVJEUyBUV08gSEVBREVEIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxQTE7RE9XTldBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEyO0xFRlRXQVJEUyBBUlJPVyBXSVRIIFRBSUw7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggVEFJTDs7OzsKKzIxQTM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRBSUw7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUE0O0xFRlRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE1O1VQV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTY7UklHSFRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOO1JJR0hUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNztET1dOV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIEZST00gQkFSOzs7OworMjFBODtVUCBET1dOIEFSUk9XIFdJVEggQkFTRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQTk7TEVGVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgV0lUSCBIT09LOzs7OworMjFBQTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUI7TEVGVFdBUkRTIEFSUk9XIFdJVEggTE9PUDtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgV0lUSCBMT09QOzs7OworMjFBQztSSUdIVFdBUkRTIEFSUk9XIFdJVEggTE9PUDtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUQ7TEVGVCBSSUdIVCBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFBRTtMRUZUIFJJR0hUIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5NCAwMzM4Ozs7O047Ozs7OworMjFBRjtET1dOV0FSRFMgWklHWkFHIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBaSUdaQUcgQVJST1c7Ozs7CisyMUIwO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBUSVAgTEVGVDs7OzsKKzIxQjE7VVBXQVJEUyBBUlJPVyBXSVRIIFRJUCBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUIyO0RPV05XQVJEUyBBUlJPVyBXSVRIIFRJUCBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIzO0RPV05XQVJEUyBBUlJPVyBXSVRIIFRJUCBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBSSUdIVDs7OzsKKzIxQjQ7UklHSFRXQVJEUyBBUlJPVyBXSVRIIENPUk5FUiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIENPUk5FUiBET1dOOzs7OworMjFCNTtET1dOV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIENPUk5FUiBMRUZUOzs7OworMjFCNjtBTlRJQ0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCNztDTE9DS1dJU0UgVE9QIFNFTUlDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUI4O05PUlRIIFdFU1QgQVJST1cgVE8gTE9ORyBCQVI7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIEFSUk9XIFRPIExPTkcgQkFSOzs7OworMjFCOTtMRUZUV0FSRFMgQVJST1cgVE8gQkFSIE9WRVIgUklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUIEFSUk9XIFRPIEJBUjs7OzsKKzIxQkE7QU5USUNMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkI7Q0xPQ0tXSVNFIE9QRU4gQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCQztMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVBXQVJEUztTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBXSVRIIEJBUkIgVVA7Ozs7CisyMUJEO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIERPV047Ozs7CisyMUJFO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUOzs7OworMjFCRjtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUMwO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVBXQVJEUztTbzswO09OOzs7OztOO1JJR0hUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFDMTtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV05XQVJEUztTbzswO09OOzs7OztOO1JJR0hUIEhBUlBPT04gV0lUSCBCQVJCIERPV047Ozs7CisyMUMyO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQzM7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgTEVGVDs7OzsKKzIxQzQ7UklHSFRXQVJEUyBBUlJPVyBPVkVSIExFRlRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIE9WRVIgTEVGVCBBUlJPVzs7OzsKKzIxQzU7VVBXQVJEUyBBUlJPVyBMRUZUV0FSRFMgT0YgRE9XTldBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047VVAgQVJST1cgTEVGVCBPRiBET1dOIEFSUk9XOzs7OworMjFDNjtMRUZUV0FSRFMgQVJST1cgT1ZFUiBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBPVkVSIFJJR0hUIEFSUk9XOzs7OworMjFDNztMRUZUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO0xFRlQgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQzg7VVBXQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047VVAgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQzk7UklHSFRXQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047UklHSFQgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQ0E7RE9XTldBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtET1dOIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNCO0xFRlRXQVJEUyBIQVJQT09OIE9WRVIgUklHSFRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIE9WRVIgUklHSFQgSEFSUE9PTjs7OzsKKzIxQ0M7UklHSFRXQVJEUyBIQVJQT09OIE9WRVIgTEVGVFdBUkRTIEhBUlBPT047U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIE9WRVIgTEVGVCBIQVJQT09OOzs7OworMjFDRDtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFO1NvOzA7T047MjFEMCAwMzM4Ozs7O047TEVGVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUNFO0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjFENCAwMzM4Ozs7O047Ozs7OworMjFDRjtSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxRDIgMDMzODs7OztOO1JJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxRDA7TEVGVFdBUkRTIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEMTtVUFdBUkRTIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQIERPVUJMRSBBUlJPVzs7OzsKKzIxRDI7UklHSFRXQVJEUyBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQzO0RPV05XQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIERPVUJMRSBBUlJPVzs7OzsKKzIxRDQ7TEVGVCBSSUdIVCBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUQ1O1VQIERPV04gRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFENjtOT1JUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFENztOT1JUSCBFQVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIFJJR0hUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDg7U09VVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ5O1NPVVRIIFdFU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBET1VCTEUgQVJST1c7Ozs7CisyMURBO0xFRlRXQVJEUyBUUklQTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRSSVBMRSBBUlJPVzs7OzsKKzIxREI7UklHSFRXQVJEUyBUUklQTEUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBUUklQTEUgQVJST1c7Ozs7CisyMURDO0xFRlRXQVJEUyBTUVVJR0dMRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMUREO1JJR0hUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBTUVVJR0dMRSBBUlJPVzs7OzsKKzIxREU7VVBXQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMURGO0RPV05XQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggRE9VQkxFIFNUUk9LRTs7OzsKKzIxRTA7TEVGVFdBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgREFTSEVEIEFSUk9XOzs7OworMjFFMTtVUFdBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIERBU0hFRCBBUlJPVzs7OzsKKzIxRTI7UklHSFRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBEQVNIRUQgQVJST1c7Ozs7CisyMUUzO0RPV05XQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIERBU0hFRCBBUlJPVzs7OzsKKzIxRTQ7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUjtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgVE8gQkFSOzs7OworMjFFNTtSSUdIVFdBUkRTIEFSUk9XIFRPIEJBUjtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTY7TEVGVFdBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBBUlJPVzs7OzsKKzIxRTc7VVBXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFVQIEFSUk9XOzs7OworMjFFODtSSUdIVFdBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgQVJST1c7Ozs7CisyMUU5O0RPV05XQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIERPV04gQVJST1c7Ozs7CisyMUVBO1VQV0FSRFMgV0hJVEUgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxRUI7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRUM7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTCBXSVRIIEhPUklaT05UQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjFFRDtVUFdBUkRTIFdISVRFIEFSUk9XIE9OIFBFREVTVEFMIFdJVEggVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjFFRTtVUFdBUkRTIFdISVRFIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRUY7VVBXQVJEUyBXSElURSBET1VCTEUgQVJST1cgT04gUEVERVNUQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYwO1JJR0hUV0FSRFMgV0hJVEUgQVJST1cgRlJPTSBXQUxMO1NvOzA7T047Ozs7O047Ozs7OworMjFGMTtOT1JUSCBXRVNUIEFSUk9XIFRPIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRjI7U09VVEggRUFTVCBBUlJPVyBUTyBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYzO1VQIERPV04gV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUY0O1JJR0hUIEFSUk9XIFdJVEggU01BTEwgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjFGNTtET1dOV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIFVQV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUY2O1RIUkVFIFJJR0hUV0FSRFMgQVJST1dTO1NtOzA7T047Ozs7O047Ozs7OworMjFGNztMRUZUV0FSRFMgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUY4O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUY5O0xFRlQgUklHSFQgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZBO0xFRlRXQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZCO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGQztMRUZUIFJJR0hUIEFSUk9XIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRkQ7TEVGVFdBUkRTIE9QRU4tSEVBREVEIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFGRTtSSUdIVFdBUkRTIE9QRU4tSEVBREVEIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFGRjtMRUZUIFJJR0hUIE9QRU4tSEVBREVEIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjIwMDtGT1IgQUxMO1NtOzA7T047Ozs7O047Ozs7OworMjIwMTtDT01QTEVNRU5UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMjtQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMDM7VEhFUkUgRVhJU1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwNDtUSEVSRSBET0VTIE5PVCBFWElTVDtTbTswO09OOzIyMDMgMDMzODs7OztZOzs7OzsKKzIyMDU7RU1QVFkgU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjIwNjtJTkNSRU1FTlQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA3O05BQkxBO1NtOzA7T047Ozs7O047Ozs7OworMjIwODtFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwOTtOT1QgQU4gRUxFTUVOVCBPRjtTbTswO09OOzIyMDggMDMzODs7OztZOzs7OzsKKzIyMEE7U01BTEwgRUxFTUVOVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEI7Q09OVEFJTlMgQVMgTUVNQkVSO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQztET0VTIE5PVCBDT05UQUlOIEFTIE1FTUJFUjtTbTswO09OOzIyMEIgMDMzODs7OztZOzs7OzsKKzIyMEQ7U01BTEwgQ09OVEFJTlMgQVMgTUVNQkVSO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwRTtFTkQgT0YgUFJPT0Y7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjBGO04tQVJZIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjEwO04tQVJZIENPUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTE7Ti1BUlkgU1VNTUFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxMjtNSU5VUyBTSUdOO1NtOzA7RVM7Ozs7O047Ozs7OworMjIxMztNSU5VUy1PUi1QTFVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjE0O0RPVCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjIxNTtESVZJU0lPTiBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzIyMTY7U0VUIE1JTlVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNztBU1RFUklTSyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMTg7UklORyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMTk7QlVMTEVUIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxQTtTUVVBUkUgUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUI7Q1VCRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQztGT1VSVEggUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUQ7UFJPUE9SVElPTkFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRTtJTkZJTklUWTtTbTswO09OOzs7OztOOzs7OzsKKzIyMUY7UklHSFQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIwO0FOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMTtNRUFTVVJFRCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjI7U1BIRVJJQ0FMIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMztESVZJREVTO1NtOzA7T047Ozs7O047Ozs7OworMjIyNDtET0VTIE5PVCBESVZJREU7U207MDtPTjsyMjIzIDAzMzg7Ozs7WTs7Ozs7CisyMjI1O1BBUkFMTEVMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjIyNjtOT1QgUEFSQUxMRUwgVE87U207MDtPTjsyMjI1IDAzMzg7Ozs7WTs7Ozs7CisyMjI3O0xPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjIyODtMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIyOTtJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJBO1VOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIyQjtJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMkM7RE9VQkxFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRDtUUklQTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkIgMjIyQjs7OztZOzs7OzsKKzIyMkU7Q09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMkY7U1VSRkFDRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzA7Vk9MVU1FIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFIDIyMkU7Ozs7WTs7Ozs7CisyMjMxO0NMT0NLV0lTRSBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzI7Q0xPQ0tXSVNFIENPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjMzO0FOVElDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzQ7VEhFUkVGT1JFO1NtOzA7T047Ozs7O047Ozs7OworMjIzNTtCRUNBVVNFO1NtOzA7T047Ozs7O047Ozs7OworMjIzNjtSQVRJTztTbTswO09OOzs7OztOOzs7OzsKKzIyMzc7UFJPUE9SVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMzg7RE9UIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjIzOTtFWENFU1M7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNBO0dFT01FVFJJQyBQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzQjtIT01PVEhFVElDO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzQztUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzIyM0Q7UkVWRVJTRUQgVElMREU7U207MDtPTjs7Ozs7WTs7bGF6eSBTOzs7CisyMjNFO0lOVkVSVEVEIExBWlkgUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0Y7U0lORSBXQVZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MDtXUkVBVEggUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyNDE7Tk9UIFRJTERFO1NtOzA7T047MjIzQyAwMzM4Ozs7O1k7Ozs7OworMjI0MjtNSU5VUyBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyNDM7QVNZTVBUT1RJQ0FMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ0O05PVCBBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzIyNDMgMDMzODs7OztZOzs7OzsKKzIyNDU7QVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDY7QVBQUk9YSU1BVEVMWSBCVVQgTk9UIEFDVFVBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NztORUlUSEVSIEFQUFJPWElNQVRFTFkgTk9SIEFDVFVBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0NSAwMzM4Ozs7O1k7Ozs7OworMjI0ODtBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ5O05PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjsyMjQ4IDAzMzg7Ozs7WTs7Ozs7CisyMjRBO0FMTU9TVCBFUVVBTCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEI7VFJJUExFIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QztBTEwgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjREO0VRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjRFO0dFT01FVFJJQ0FMTFkgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEY7RElGRkVSRU5DRSBCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI1MDtBUFBST0FDSEVTIFRIRSBMSU1JVDtTbTswO09OOzs7OztOOzs7OzsKKzIyNTE7R0VPTUVUUklDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTI7QVBQUk9YSU1BVEVMWSBFUVVBTCBUTyBPUiBUSEUgSU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjUzO0lNQUdFIE9GIE9SIEFQUFJPWElNQVRFTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjU0O0NPTE9OIEVRVUFMUztTbTswO09OOzs7OztZO0NPTE9OIEVRVUFMOzs7OworMjI1NTtFUVVBTFMgQ09MT047U207MDtPTjs7Ozs7WTtFUVVBTCBDT0xPTjs7OzsKKzIyNTY7UklORyBJTiBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTc7UklORyBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTg7Q09SUkVTUE9ORFMgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU5O0VTVElNQVRFUztTbTswO09OOzs7OztOOzs7OzsKKzIyNUE7RVFVSUFOR1VMQVIgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVCO1NUQVIgRVFVQUxTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QztERUxUQSBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUQ7RVFVQUwgVE8gQlkgREVGSU5JVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNUU7TUVBU1VSRUQgQlk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVGO1FVRVNUSU9ORUQgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjYwO05PVCBFUVVBTCBUTztTbTswO09OOzAwM0QgMDMzODs7OztZOzs7OzsKKzIyNjE7SURFTlRJQ0FMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI2MjtOT1QgSURFTlRJQ0FMIFRPO1NtOzA7T047MjI2MSAwMzM4Ozs7O1k7Ozs7OworMjI2MztTVFJJQ1RMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI2NDtMRVNTLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVQUwgVE87Ozs7CisyMjY1O0dSRUFURVItVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjY7TEVTUy1USEFOIE9WRVIgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1ZFUiBFUVVBTCBUTzs7OzsKKzIyNjc7R1JFQVRFUi1USEFOIE9WRVIgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1ZFUiBFUVVBTCBUTzs7OzsKKzIyNjg7TEVTUy1USEFOIEJVVCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gQlVUIE5PVCBFUVVBTCBUTzs7OzsKKzIyNjk7R1JFQVRFUi1USEFOIEJVVCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVBTCBUTzs7OzsKKzIyNkE7TVVDSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtNVUNIIExFU1MgVEhBTjs7OzsKKzIyNkI7TVVDSCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtNVUNIIEdSRUFURVIgVEhBTjs7OzsKKzIyNkM7QkVUV0VFTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNkQ7Tk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjREIDAzMzg7Ozs7Tjs7Ozs7CisyMjZFO05PVCBMRVNTLVRIQU47U207MDtPTjswMDNDIDAzMzg7Ozs7WTtOT1QgTEVTUyBUSEFOOzs7OworMjI2RjtOT1QgR1JFQVRFUi1USEFOO1NtOzA7T047MDAzRSAwMzM4Ozs7O1k7Tk9UIEdSRUFURVIgVEhBTjs7OzsKKzIyNzA7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUFMIFRPO1NtOzA7T047MjI2NCAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEVRVUFMIFRPOzs7OworMjI3MTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY1IDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcyO0xFU1MtVEhBTiBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjczO0dSRUFURVItVEhBTiBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc0O05FSVRIRVIgTEVTUy1USEFOIE5PUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI3MiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc1O05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI3MyAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc2O0xFU1MtVEhBTiBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgR1JFQVRFUiBUSEFOOzs7OworMjI3NztHUkVBVEVSLVRIQU4gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIExFU1MgVEhBTjs7OzsKKzIyNzg7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEdSRUFURVItVEhBTjtTbTswO09OOzIyNzYgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc5O05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBMRVNTLVRIQU47U207MDtPTjsyMjc3IDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgTEVTUyBUSEFOOzs7OworMjI3QTtQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0I7U1VDQ0VFRFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdDO1BSRUNFREVTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RDtTVUNDRUVEUyBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0U7UFJFQ0VERVMgT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0Y7U1VDQ0VFRFMgT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODA7RE9FUyBOT1QgUFJFQ0VERTtTbTswO09OOzIyN0EgMDMzODs7OztZOzs7OzsKKzIyODE7RE9FUyBOT1QgU1VDQ0VFRDtTbTswO09OOzIyN0IgMDMzODs7OztZOzs7OzsKKzIyODI7U1VCU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MztTVVBFUlNFVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyODQ7Tk9UIEEgU1VCU0VUIE9GO1NtOzA7T047MjI4MiAwMzM4Ozs7O1k7Ozs7OworMjI4NTtOT1QgQSBTVVBFUlNFVCBPRjtTbTswO09OOzIyODMgMDMzODs7OztZOzs7OzsKKzIyODY7U1VCU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NztTVVBFUlNFVCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODg7TkVJVEhFUiBBIFNVQlNFVCBPRiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjg2IDAzMzg7Ozs7WTs7Ozs7CisyMjg5O05FSVRIRVIgQSBTVVBFUlNFVCBPRiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjg3IDAzMzg7Ozs7WTs7Ozs7CisyMjhBO1NVQlNFVCBPRiBXSVRIIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO1NVQlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhCO1NVUEVSU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VQRVJTRVQgT0YgT1IgTk9UIEVRVUFMIFRPOzs7OworMjI4QztNVUxUSVNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyOEQ7TVVMVElTRVQgTVVMVElQTElDQVRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhFO01VTFRJU0VUIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI4RjtTUVVBUkUgSU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkwO1NRVUFSRSBPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTE7U1FVQVJFIElNQUdFIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MjtTUVVBUkUgT1JJR0lOQUwgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkzO1NRVUFSRSBDQVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk0O1NRVUFSRSBDVVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk1O0NJUkNMRUQgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTY7Q0lSQ0xFRCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTc7Q0lSQ0xFRCBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTg7Q0lSQ0xFRCBESVZJU0lPTiBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzIyOTk7Q0lSQ0xFRCBET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlBO0NJUkNMRUQgUklORyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUI7Q0lSQ0xFRCBBU1RFUklTSyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUM7Q0lSQ0xFRCBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlEO0NJUkNMRUQgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIyOUU7U1FVQVJFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5RjtTUVVBUkVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjJBMDtTUVVBUkVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJBMTtTUVVBUkVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQTI7UklHSFQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzIyQTM7TEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNDtET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkE1O1VQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkE2O0FTU0VSVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQTc7TU9ERUxTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBODtUUlVFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBOTtGT1JDRVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFBO1RSSVBMRSBWRVJUSUNBTCBCQVIgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQjtET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFDO0RPRVMgTk9UIFBST1ZFO1NtOzA7T047MjJBMiAwMzM4Ozs7O1k7Ozs7OworMjJBRDtOT1QgVFJVRTtTbTswO09OOzIyQTggMDMzODs7OztZOzs7OzsKKzIyQUU7RE9FUyBOT1QgRk9SQ0U7U207MDtPTjsyMkE5IDAzMzg7Ozs7WTs7Ozs7CisyMkFGO05FR0FURUQgRE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047MjJBQiAwMzM4Ozs7O1k7Ozs7OworMjJCMDtQUkVDRURFUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjE7U1VDQ0VFRFMgVU5ERVIgUkVMQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIyO05PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjM7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNDtOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI1O0NPTlRBSU5TIEFTIE5PUk1BTCBTVUJHUk9VUCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjY7T1JJR0lOQUwgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI3O0lNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCODtNVUxUSU1BUDtTbTswO09OOzs7OztZOzs7OzsKKzIyQjk7SEVSTUlUSUFOIENPTkpVR0FURSBNQVRSSVg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJBO0lOVEVSQ0FMQVRFO1NtOzA7T047Ozs7O047Ozs7OworMjJCQjtYT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJDO05BTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJEO05PUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkU7UklHSFQgQU5HTEUgV0lUSCBBUkM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkJGO1JJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDMDtOLUFSWSBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQzE7Ti1BUlkgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzI7Ti1BUlkgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDMztOLUFSWSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzQ7RElBTU9ORCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzU7RE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNjtTVEFSIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNztESVZJU0lPTiBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyQzg7Qk9XVElFO1NtOzA7T047Ozs7O047Ozs7OworMjJDOTtMRUZUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQTtSSUdIVCBOT1JNQUwgRkFDVE9SIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0I7TEVGVCBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNDO1JJR0hUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0Q7UkVWRVJTRUQgVElMREUgRVFVQUxTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRTtDVVJMWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDRjtDVVJMWSBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyRDA7RE9VQkxFIFNVQlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyRDE7RE9VQkxFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMjtET1VCTEUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJEMztET1VCTEUgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ0O1BJVENIRk9SSztTbTswO09OOzs7OztOOzs7OzsKKzIyRDU7RVFVQUwgQU5EIFBBUkFMTEVMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjJENjtMRVNTLVRIQU4gV0lUSCBET1Q7U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gV0lUSCBET1Q7Ozs7CisyMkQ3O0dSRUFURVItVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDg7VkVSWSBNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBMRVNTIFRIQU47Ozs7CisyMkQ5O1ZFUlkgTVVDSCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtWRVJZIE1VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjJEQTtMRVNTLVRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEVRVUFMIFRPIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyREI7R1JFQVRFUi1USEFOIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBFUVVBTCBUTyBPUiBMRVNTIFRIQU47Ozs7CisyMkRDO0VRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0VRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREQ7RVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJERTtFUVVBTCBUTyBPUiBQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzIyREY7RVFVQUwgVE8gT1IgU1VDQ0VFRFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkUwO0RPRVMgTk9UIFBSRUNFREUgT1IgRVFVQUw7U207MDtPTjsyMjdDIDAzMzg7Ozs7WTs7Ozs7CisyMkUxO0RPRVMgTk9UIFNVQ0NFRUQgT1IgRVFVQUw7U207MDtPTjsyMjdEIDAzMzg7Ozs7WTs7Ozs7CisyMkUyO05PVCBTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMjkxIDAzMzg7Ozs7WTs7Ozs7CisyMkUzO05PVCBTUVVBUkUgT1JJR0lOQUwgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMjkyIDAzMzg7Ozs7WTs7Ozs7CisyMkU0O1NRVUFSRSBJTUFHRSBPRiBPUiBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU1O1NRVUFSRSBPUklHSU5BTCBPRiBPUiBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU2O0xFU1MtVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFNztHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTzs7OzsKKzIyRTg7UFJFQ0VERVMgQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFOTtTVUNDRUVEUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkVBO05PVCBOT1JNQUwgU1VCR1JPVVAgT0Y7U207MDtPTjsyMkIyIDAzMzg7Ozs7WTs7Ozs7CisyMkVCO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQO1NtOzA7T047MjJCMyAwMzM4Ozs7O1k7Ozs7OworMjJFQztOT1QgTk9STUFMIFNVQkdST1VQIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjJCNCAwMzM4Ozs7O1k7Ozs7OworMjJFRDtET0VTIE5PVCBDT05UQUlOIEFTIE5PUk1BTCBTVUJHUk9VUCBPUiBFUVVBTDtTbTswO09OOzIyQjUgMDMzODs7OztZOzs7OzsKKzIyRUU7VkVSVElDQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkVGO01JRExJTkUgSE9SSVpPTlRBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRjA7VVAgUklHSFQgRElBR09OQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkYxO0RPV04gUklHSFQgRElBR09OQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkYyO0VMRU1FTlQgT0YgV0lUSCBMT05HIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGMztFTEVNRU5UIE9GIFdJVEggVkVSVElDQUwgQkFSIEFUIEVORCBPRiBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRjQ7U01BTEwgRUxFTUVOVCBPRiBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY1O0VMRU1FTlQgT0YgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY2O0VMRU1FTlQgT0YgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNztTTUFMTCBFTEVNRU5UIE9GIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRjg7RUxFTUVOVCBPRiBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGOTtFTEVNRU5UIE9GIFdJVEggVFdPIEhPUklaT05UQUwgU1RST0tFUztTbTswO09OOzs7OztZOzs7OzsKKzIyRkE7Q09OVEFJTlMgV0lUSCBMT05HIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGQjtDT05UQUlOUyBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZDO1NNQUxMIENPTlRBSU5TIFdJVEggVkVSVElDQUwgQkFSIEFUIEVORCBPRiBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRkQ7Q09OVEFJTlMgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGRTtTTUFMTCBDT05UQUlOUyBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZGO1ogTk9UQVRJT04gQkFHIE1FTUJFUlNISVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzAwO0RJQU1FVEVSIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAxO0VMRUNUUklDIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjMwMjtIT1VTRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDM7VVAgQVJST1dIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMjMwNDtET1dOIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDU7UFJPSkVDVElWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDY7UEVSU1BFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA3O1dBVlkgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDg7TEVGVCBDRUlMSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwOTtSSUdIVCBDRUlMSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQTtMRUZUIEZMT09SO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQjtSSUdIVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEM7Qk9UVE9NIFJJR0hUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBEO0JPVFRPTSBMRUZUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBFO1RPUCBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRjtUT1AgTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMxMDtSRVZFUlNFRCBOT1QgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTE7U1FVQVJFIExPWkVOR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEyO0FSQztTbzswO09OOzs7OztOOzs7OzsKKzIzMTM7U0VHTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTQ7U0VDVE9SO1NvOzA7T047Ozs7O047Ozs7OworMjMxNTtURUxFUEhPTkUgUkVDT1JERVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE2O1BPU0lUSU9OIElORElDQVRPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTc7VklFV0RBVEEgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjMxODtQTEFDRSBPRiBJTlRFUkVTVCBTSUdOO1NvOzA7T047Ozs7O047Q09NTUFORCBLRVk7Ozs7CisyMzE5O1RVUk5FRCBOT1QgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUE7V0FUQ0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFCO0hPVVJHTEFTUztTbzswO09OOzs7OztOOzs7OzsKKzIzMUM7VE9QIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRDtUT1AgUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRTtCT1RUT00gTEVGVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFGO0JPVFRPTSBSSUdIVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzIwO1RPUCBIQUxGIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjMyMTtCT1RUT00gSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjI7RlJPV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzIzO1NNSUxFO1NvOzA7T047Ozs7O047Ozs7OworMjMyNDtVUCBBUlJPV0hFQUQgQkVUV0VFTiBUV08gSE9SSVpPTlRBTCBCQVJTO1NvOzA7T047Ozs7O047RU5URVIgS0VZOzs7OworMjMyNTtPUFRJT04gS0VZO1NvOzA7T047Ozs7O047Ozs7OworMjMyNjtFUkFTRSBUTyBUSEUgUklHSFQ7U287MDtPTjs7Ozs7TjtERUxFVEUgVE8gVEhFIFJJR0hUIEtFWTs7OzsKKzIzMjc7WCBJTiBBIFJFQ1RBTkdMRSBCT1g7U287MDtPTjs7Ozs7TjtDTEVBUiBLRVk7Ozs7CisyMzI4O0tFWUJPQVJEO1NvOzA7T047Ozs7O047Ozs7OworMjMyOTtMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjszMDA4Ozs7O1k7QlJBOzs7OworMjMyQTtSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BlOzA7T047MzAwOTs7OztZO0tFVDs7OzsKKzIzMkI7RVJBU0UgVE8gVEhFIExFRlQ7U287MDtPTjs7Ozs7TjtERUxFVEUgVE8gVEhFIExFRlQgS0VZOzs7OworMjMyQztCRU5aRU5FIFJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJEO0NZTElORFJJQ0lUWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkU7QUxMIEFST1VORC1QUk9GSUxFO1NvOzA7T047Ozs7O047Ozs7OworMjMyRjtTWU1NRVRSWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzA7VE9UQUwgUlVOT1VUO1NvOzA7T047Ozs7O047Ozs7OworMjMzMTtESU1FTlNJT04gT1JJR0lOO1NvOzA7T047Ozs7O047Ozs7OworMjMzMjtDT05JQ0FMIFRBUEVSO1NvOzA7T047Ozs7O047Ozs7OworMjMzMztTTE9QRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzQ7Q09VTlRFUkJPUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM1O0NPVU5URVJTSU5LO1NvOzA7T047Ozs7O047Ozs7OworMjMzNjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSS1CRUFNO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTUVVJU0ggUVVBRDtTbzswO0w7Ozs7O047Ozs7OworMjMzODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBFUVVBTDtTbzswO0w7Ozs7O047Ozs7OworMjMzOTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBESVZJREU7U287MDtMOzs7OztOOzs7OzsKKzIzM0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElBTU9ORDtTbzswO0w7Ozs7O047Ozs7OworMjMzQjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzM0M7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQ0lSQ0xFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzM0U7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzM0Y7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNMQVNIIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQkFDS1NMQVNIIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVTUy1USEFOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEdSRUFURVItVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFJJR0hUV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM0NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBMRUZUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUklHSFRXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM0OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIEJBQ0tTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM0QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNEM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTiBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUxUQTtTbzswO0w7Ozs7O047Ozs7OworMjM0RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIEpPVDtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNEY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM1MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBVUFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIE9WRVJCQVI7U287MDtMOzs7OztOOzsqOzs7CisyMzUyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNTM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgVVAgQ0FSRVQ7U287MDtMOzs7OztOOzs7OzsKKzIzNTQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgREVMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIEpPVDtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNTY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV05XQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV05XQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNTk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBESUFNT05EIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgU0hPRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNUU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzNUY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENPTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIERJQUVSRVNJUztTbzswO0w7Ozs7O047Oyo7OzsKKzIzNjI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNUQVIgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFNIT0UgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNjc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlQgU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVElMREUgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBHUkVBVEVSLVRIQU4gRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDT01NQSBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNkI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgWklMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNUSUxFIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTRU1JQ09MT04gVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNkY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTk9UIEVRVUFMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFFVRVNUSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBDQVJFVCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM3MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQTtTbzswO0w7Ozs7O047Ozs7OworMjM3NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUkhPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBPTUVHQTtTbzswO0w7Ozs7O047Ozs7OworMjM3NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQUxQSEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEVQU0lMT04gVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIElPVEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzdBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQTtTbzswO0w7Ozs7O047Ozs7OworMjM3QjtOT1QgQ0hFQ0sgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzIzN0M7UklHSFQgQU5HTEUgV0lUSCBET1dOV0FSRFMgWklHWkFHIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjM3RDtTSE9VTERFUkVEIE9QRU4gQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjM3RTtCRUxMIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzN0Y7VkVSVElDQUwgTElORSBXSVRIIE1JRERMRSBET1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgwO0lOU0VSVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgxO0NPTlRJTlVPVVMgVU5ERVJMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODI7RElTQ09OVElOVU9VUyBVTkRFUkxJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MztFTVBIQVNJUyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg0O0NPTVBPU0lUSU9OIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODU7V0hJVEUgU1FVQVJFIFdJVEggQ0VOVFJFIFZFUlRJQ0FMIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg2O0VOVEVSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODc7QUxURVJOQVRJVkUgS0VZIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODg7SEVMTSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg5O0NJUkNMRUQgSE9SSVpPTlRBTCBCQVIgV0lUSCBOT1RDSDtTbzswO09OOzs7OztOOztwYXVzZTs7OworMjM4QTtDSVJDTEVEIFRSSUFOR0xFIERPV047U287MDtPTjs7Ozs7Tjs7YnJlYWs7OzsKKzIzOEI7QlJPS0VOIENJUkNMRSBXSVRIIE5PUlRIV0VTVCBBUlJPVztTbzswO09OOzs7OztOOztlc2NhcGU7OzsKKzIzOEM7VU5ETyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhEO01PTk9TVEFCTEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RTtIWVNURVJFU0lTIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEY7T1BFTi1DSVJDVUlULU9VVFBVVCBILVRZUEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MDtPUEVOLUNJUkNVSVQtT1VUUFVUIEwtVFlQRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkxO1BBU1NJVkUtUFVMTC1ET1dOLU9VVFBVVCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkyO1BBU1NJVkUtUFVMTC1VUC1PVVRQVVQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MztESVJFQ1QgQ1VSUkVOVCBTWU1CT0wgRk9STSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk0O1NPRlRXQVJFLUZVTkNUSU9OIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzOTY7REVDSU1BTCBTRVBBUkFUT1IgS0VZIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTc7UFJFVklPVVMgUEFHRTtTbzswO09OOzs7OztOOzs7OzsKKzIzOTg7TkVYVCBQQUdFO1NvOzA7T047Ozs7O047Ozs7OworMjM5OTtQUklOVCBTQ1JFRU4gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5QTtDTEVBUiBTQ1JFRU4gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5QjtMRUZUIFBBUkVOVEhFU0lTIFVQUEVSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMzlDO0xFRlQgUEFSRU5USEVTSVMgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjM5RDtMRUZUIFBBUkVOVEhFU0lTIExPV0VSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMzlFO1JJR0hUIFBBUkVOVEhFU0lTIFVQUEVSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMzlGO1JJR0hUIFBBUkVOVEhFU0lTIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTA7UklHSFQgUEFSRU5USEVTSVMgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQTE7TEVGVCBTUVVBUkUgQlJBQ0tFVCBVUFBFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0EyO0xFRlQgU1FVQVJFIEJSQUNLRVQgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBMztMRUZUIFNRVUFSRSBCUkFDS0VUIExPV0VSIENPUk5FUjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTQ7UklHSFQgU1FVQVJFIEJSQUNLRVQgVVBQRVIgQ09STkVSO1NtOzA7T047Ozs7O047Ozs7OworMjNBNTtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E2O1JJR0hUIFNRVUFSRSBCUkFDS0VUIExPV0VSIENPUk5FUjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTc7TEVGVCBDVVJMWSBCUkFDS0VUIFVQUEVSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E4O0xFRlQgQ1VSTFkgQlJBQ0tFVCBNSURETEUgUElFQ0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E5O0xFRlQgQ1VSTFkgQlJBQ0tFVCBMT1dFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBQTtDVVJMWSBCUkFDS0VUIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQUI7UklHSFQgQ1VSTFkgQlJBQ0tFVCBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBQztSSUdIVCBDVVJMWSBCUkFDS0VUIE1JRERMRSBQSUVDRTtTbTswO09OOzs7OztOOzs7OzsKKzIzQUQ7UklHSFQgQ1VSTFkgQlJBQ0tFVCBMT1dFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBRTtJTlRFR1JBTCBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FGO0hPUklaT05UQUwgTElORSBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IwO1VQUEVSIExFRlQgT1IgTE9XRVIgUklHSFQgQ1VSTFkgQlJBQ0tFVCBTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNCMTtVUFBFUiBSSUdIVCBPUiBMT1dFUiBMRUZUIENVUkxZIEJSQUNLRVQgU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQjI7U1VNTUFUSU9OIFRPUDtTbTswO09OOzs7OztOOzs7OzsKKzIzQjM7U1VNTUFUSU9OIEJPVFRPTTtTbTswO09OOzs7OztOOzs7OzsKKzIzQjQ7VE9QIFNRVUFSRSBCUkFDS0VUO1NvOzA7T047Ozs7O047Ozs7OworMjNCNTtCT1RUT00gU1FVQVJFIEJSQUNLRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0I2O0JPVFRPTSBTUVVBUkUgQlJBQ0tFVCBPVkVSIFRPUCBTUVVBUkUgQlJBQ0tFVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQjc7UkFESUNBTCBTWU1CT0wgQk9UVE9NO1NvOzA7T047Ozs7O047Ozs7OworMjNCODtMRUZUIFZFUlRJQ0FMIEJPWCBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjNCOTtSSUdIVCBWRVJUSUNBTCBCT1ggTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzQkE7SE9SSVpPTlRBTCBTQ0FOIExJTkUtMTtTbzswO09OOzs7OztOOzs7OzsKKzIzQkI7SE9SSVpPTlRBTCBTQ0FOIExJTkUtMztTbzswO09OOzs7OztOOzs7OzsKKzIzQkM7SE9SSVpPTlRBTCBTQ0FOIExJTkUtNztTbzswO09OOzs7OztOOzs7OzsKKzIzQkQ7SE9SSVpPTlRBTCBTQ0FOIExJTkUtOTtTbzswO09OOzs7OztOOzs7OzsKKzIzQkU7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgVE9QIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjNCRjtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIEFORCBCT1RUT00gUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MwO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MxO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTCBXSVRIIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzI7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTCBXSVRIIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzM7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBXSVRIIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDNDtERU5USVNUUlkgU1lNQk9MIExJR0hUIERPV04gQU5EIEhPUklaT05UQUwgV0lUSCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzU7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTCBXSVRIIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDNjtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIEFORCBXQVZFO1NvOzA7T047Ozs7O047Ozs7OworMjNDNztERU5USVNUUlkgU1lNQk9MIExJR0hUIERPV04gQU5EIEhPUklaT05UQUwgV0lUSCBXQVZFO1NvOzA7T047Ozs7O047Ozs7OworMjNDODtERU5USVNUUlkgU1lNQk9MIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMIFdJVEggV0FWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzk7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjNDQTtERU5USVNUUlkgU1lNQk9MIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjNDQjtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIEFORCBUT1AgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0M7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgQk9UVE9NIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NEO1NRVUFSRSBGT09UO1NvOzA7T047Ozs7O047Ozs7OworMjNDRTtSRVRVUk4gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjNDRjtFSkVDVCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0QwO1ZFUlRJQ0FMIExJTkUgRVhURU5TSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjNEMTtNRVRSSUNBTCBCUkVWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzRDI7TUVUUklDQUwgTE9ORyBPVkVSIFNIT1JUO1NvOzA7T047Ozs7O047Ozs7OworMjNEMztNRVRSSUNBTCBTSE9SVCBPVkVSIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q0O01FVFJJQ0FMIExPTkcgT1ZFUiBUV08gU0hPUlRTO1NvOzA7T047Ozs7O047Ozs7OworMjNENTtNRVRSSUNBTCBUV08gU0hPUlRTIE9WRVIgTE9ORztTbzswO09OOzs7OztOOzs7OzsKKzIzRDY7TUVUUklDQUwgVFdPIFNIT1JUUyBKT0lORUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q3O01FVFJJQ0FMIFRSSVNFTUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q4O01FVFJJQ0FMIFRFVFJBU0VNRTtTbzswO09OOzs7OztOOzs7OzsKKzIzRDk7TUVUUklDQUwgUEVOVEFTRU1FO1NvOzA7T047Ozs7O047Ozs7OworMjNEQTtFQVJUSCBHUk9VTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0RCO0ZVU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0RDO1RPUCBQQVJFTlRIRVNJUztTbTswO09OOzs7OztOOzttYXRoZW1hdGljYWwgdXNlOzs7CisyM0REO0JPVFRPTSBQQVJFTlRIRVNJUztTbTswO09OOzs7OztOOzttYXRoZW1hdGljYWwgdXNlOzs7CisyM0RFO1RPUCBDVVJMWSBCUkFDS0VUO1NtOzA7T047Ozs7O047O21hdGhlbWF0aWNhbCB1c2U7OzsKKzIzREY7Qk9UVE9NIENVUkxZIEJSQUNLRVQ7U207MDtPTjs7Ozs7Tjs7bWF0aGVtYXRpY2FsIHVzZTs7OworMjNFMDtUT1AgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtTbTswO09OOzs7OztOOzttYXRoZW1hdGljYWwgdXNlOzs7CisyM0UxO0JPVFRPTSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1NtOzA7T047Ozs7O047O21hdGhlbWF0aWNhbCB1c2U7OzsKKzIzRTI7V0hJVEUgVFJBUEVaSVVNO1NvOzA7T047Ozs7O047Ozs7OworMjNFMztCRU5aRU5FIFJJTkcgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0U0O1NUUkFJR0hUTkVTUztTbzswO09OOzs7OztOOzs7OzsKKzIzRTU7RkxBVE5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0U2O0FDIENVUlJFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0U3O0VMRUNUUklDQUwgSU5URVJTRUNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjQwMDtTWU1CT0wgRk9SIE5VTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBOVUxMOzs7OworMjQwMTtTWU1CT0wgRk9SIFNUQVJUIE9GIEhFQURJTkc7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBIRUFESU5HOzs7OworMjQwMjtTWU1CT0wgRk9SIFNUQVJUIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBURVhUOzs7OworMjQwMztTWU1CT0wgRk9SIEVORCBPRiBURVhUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRFWFQ7Ozs7CisyNDA0O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT047Ozs7CisyNDA1O1NZTUJPTCBGT1IgRU5RVUlSWTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVOUVVJUlk7Ozs7CisyNDA2O1NZTUJPTCBGT1IgQUNLTk9XTEVER0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBBQ0tOT1dMRURHRTs7OzsKKzI0MDc7U1lNQk9MIEZPUiBCRUxMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQkVMTDs7OzsKKzI0MDg7U1lNQk9MIEZPUiBCQUNLU1BBQ0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCQUNLU1BBQ0U7Ozs7CisyNDA5O1NZTUJPTCBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OOzs7OworMjQwQTtTWU1CT0wgRk9SIExJTkUgRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIExJTkUgRkVFRDs7OzsKKzI0MEI7U1lNQk9MIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgVkVSVElDQUwgVEFCVUxBVElPTjs7OzsKKzI0MEM7U1lNQk9MIEZPUiBGT1JNIEZFRUQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGT1JNIEZFRUQ7Ozs7CisyNDBEO1NZTUJPTCBGT1IgQ0FSUklBR0UgUkVUVVJOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FSUklBR0UgUkVUVVJOOzs7OworMjQwRTtTWU1CT0wgRk9SIFNISUZUIE9VVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIE9VVDs7OzsKKzI0MEY7U1lNQk9MIEZPUiBTSElGVCBJTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIElOOzs7OworMjQxMDtTWU1CT0wgRk9SIERBVEEgTElOSyBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBEQVRBIExJTksgRVNDQVBFOzs7OworMjQxMTtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIE9ORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIE9ORTs7OzsKKzI0MTI7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087Ozs7CisyNDEzO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgVEhSRUU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzI0MTQ7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzI0MTU7U1lNQk9MIEZPUiBORUdBVElWRSBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFOzs7OworMjQxNjtTWU1CT0wgRk9SIFNZTkNIUk9OT1VTIElETEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTWU5DSFJPTk9VUyBJRExFOzs7OworMjQxNztTWU1CT0wgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLOzs7OworMjQxODtTWU1CT0wgRk9SIENBTkNFTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIENBTkNFTDs7OzsKKzI0MTk7U1lNQk9MIEZPUiBFTkQgT0YgTUVESVVNO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIE1FRElVTTs7OzsKKzI0MUE7U1lNQk9MIEZPUiBTVUJTVElUVVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1VCU1RJVFVURTs7OzsKKzI0MUI7U1lNQk9MIEZPUiBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFU0NBUEU7Ozs7CisyNDFDO1NZTUJPTCBGT1IgRklMRSBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGSUxFIFNFUEFSQVRPUjs7OzsKKzI0MUQ7U1lNQk9MIEZPUiBHUk9VUCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBHUk9VUCBTRVBBUkFUT1I7Ozs7CisyNDFFO1NZTUJPTCBGT1IgUkVDT1JEIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFJFQ09SRCBTRVBBUkFUT1I7Ozs7CisyNDFGO1NZTUJPTCBGT1IgVU5JVCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBVTklUIFNFUEFSQVRPUjs7OzsKKzI0MjA7U1lNQk9MIEZPUiBTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNQQUNFOzs7OworMjQyMTtTWU1CT0wgRk9SIERFTEVURTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFTEVURTs7OzsKKzI0MjI7QkxBTksgU1lNQk9MO1NvOzA7T047Ozs7O047QkxBTks7Ozs7CisyNDIzO09QRU4gQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjQyNDtTWU1CT0wgRk9SIE5FV0xJTkU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBORVdMSU5FOzs7OworMjQyNTtTWU1CT0wgRk9SIERFTEVURSBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzI0MjY7U1lNQk9MIEZPUiBTVUJTVElUVVRFIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MDtPQ1IgSE9PSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDE7T0NSIENIQUlSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MjtPQ1IgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDM7T0NSIElOVkVSVEVEIEZPUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ0O09DUiBCRUxUIEJVQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDU7T0NSIEJPVyBUSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ2O09DUiBCUkFOQ0ggQkFOSyBJREVOVElGSUNBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI0NDc7T0NSIEFNT1VOVCBPRiBDSEVDSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDg7T0NSIERBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ5O09DUiBDVVNUT01FUiBBQ0NPVU5UIE5VTUJFUjtTbzswO09OOzs7OztOOzs7OzsKKzI0NEE7T0NSIERPVUJMRSBCQUNLU0xBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDYwO0NJUkNMRUQgRElHSVQgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMTs7MTsxO047Ozs7OworMjQ2MTtDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzI7OzI7MjtOOzs7OzsKKzI0NjI7Q0lSQ0xFRCBESUdJVCBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzM7OzM7MztOOzs7OzsKKzI0NjM7Q0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzNDs7NDs0O047Ozs7OworMjQ2NDtDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM1Ozs1OzU7Tjs7Ozs7CisyNDY1O0NJUkNMRUQgRElHSVQgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzNjs7Njs2O047Ozs7OworMjQ2NjtDSVJDTEVEIERJR0lUIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzNzs7Nzs3O047Ozs7OworMjQ2NztDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzODs7ODs4O047Ozs7OworMjQ2ODtDSVJDTEVEIERJR0lUIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM5Ozs5Ozk7Tjs7Ozs7CisyNDY5O0NJUkNMRUQgTlVNQkVSIFRFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzMDs7OzEwO047Ozs7OworMjQ2QTtDSVJDTEVEIE5VTUJFUiBFTEVWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzE7OzsxMTtOOzs7OzsKKzI0NkI7Q0lSQ0xFRCBOVU1CRVIgVFdFTFZFO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMyOzs7MTI7Tjs7Ozs7CisyNDZDO0NJUkNMRUQgTlVNQkVSIFRISVJURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMzOzs7MTM7Tjs7Ozs7CisyNDZEO0NJUkNMRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM0Ozs7MTQ7Tjs7Ozs7CisyNDZFO0NJUkNMRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzU7OzsxNTtOOzs7OzsKKzI0NkY7Q0lSQ0xFRCBOVU1CRVIgU0lYVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzNjs7OzE2O047Ozs7OworMjQ3MDtDSVJDTEVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzc7OzsxNztOOzs7OzsKKzI0NzE7Q0lSQ0xFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzg7OzsxODtOOzs7OzsKKzI0NzI7Q0lSQ0xFRCBOVU1CRVIgTklORVRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzk7OzsxOTtOOzs7OzsKKzI0NzM7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMwOzs7MjA7Tjs7Ozs7CisyNDc0O1BBUkVOVEhFU0laRUQgRElHSVQgT05FO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMjk7OzE7MTtOOzs7OzsKKzI0NzU7UEFSRU5USEVTSVpFRCBESUdJVCBUV087Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzIgMDAyOTs7MjsyO047Ozs7OworMjQ3NjtQQVJFTlRIRVNJWkVEIERJR0lUIFRIUkVFO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMzIDAwMjk7OzM7MztOOzs7OzsKKzI0Nzc7UEFSRU5USEVTSVpFRCBESUdJVCBGT1VSO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM0IDAwMjk7OzQ7NDtOOzs7OzsKKzI0Nzg7UEFSRU5USEVTSVpFRCBESUdJVCBGSVZFO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM1IDAwMjk7OzU7NTtOOzs7OzsKKzI0Nzk7UEFSRU5USEVTSVpFRCBESUdJVCBTSVg7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzYgMDAyOTs7Njs2O047Ozs7OworMjQ3QTtQQVJFTlRIRVNJWkVEIERJR0lUIFNFVkVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM3IDAwMjk7Ozc7NztOOzs7OzsKKzI0N0I7UEFSRU5USEVTSVpFRCBESUdJVCBFSUdIVDtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzOCAwMDI5Ozs4Ozg7Tjs7Ozs7CisyNDdDO1BBUkVOVEhFU0laRUQgRElHSVQgTklORTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzOSAwMDI5Ozs5Ozk7Tjs7Ozs7CisyNDdEO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMwIDAwMjk7OzsxMDtOOzs7OzsKKzI0N0U7UEFSRU5USEVTSVpFRCBOVU1CRVIgRUxFVkVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzEgMDAyOTs7OzExO047Ozs7OworMjQ3RjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBUV0VMVkU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMiAwMDI5Ozs7MTI7Tjs7Ozs7CisyNDgwO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRISVJURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzMgMDAyOTs7OzEzO047Ozs7OworMjQ4MTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGT1VSVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM0IDAwMjk7OzsxNDtOOzs7OzsKKzI0ODI7UEFSRU5USEVTSVpFRCBOVU1CRVIgRklGVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM1IDAwMjk7OzsxNTtOOzs7OzsKKzI0ODM7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0lYVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM2IDAwMjk7OzsxNjtOOzs7OzsKKzI0ODQ7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzcgMDAyOTs7OzE3O047Ozs7OworMjQ4NTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFSUdIVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM4IDAwMjk7OzsxODtOOzs7OzsKKzI0ODY7UEFSRU5USEVTSVpFRCBOVU1CRVIgTklORVRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzOSAwMDI5Ozs7MTk7Tjs7Ozs7CisyNDg3O1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRU5UWTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMiAwMDMwIDAwMjk7OzsyMDtOOzs7OzsKKzI0ODg7RElHSVQgT05FIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAyRTs7MTsxO047RElHSVQgT05FIFBFUklPRDs7OzsKKzI0ODk7RElHSVQgVFdPIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAyRTs7MjsyO047RElHSVQgVFdPIFBFUklPRDs7OzsKKzI0OEE7RElHSVQgVEhSRUUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMyAwMDJFOzszOzM7TjtESUdJVCBUSFJFRSBQRVJJT0Q7Ozs7CisyNDhCO0RJR0lUIEZPVVIgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNCAwMDJFOzs0OzQ7TjtESUdJVCBGT1VSIFBFUklPRDs7OzsKKzI0OEM7RElHSVQgRklWRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM1IDAwMkU7OzU7NTtOO0RJR0lUIEZJVkUgUEVSSU9EOzs7OworMjQ4RDtESUdJVCBTSVggRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNiAwMDJFOzs2OzY7TjtESUdJVCBTSVggUEVSSU9EOzs7OworMjQ4RTtESUdJVCBTRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM3IDAwMkU7Ozc7NztOO0RJR0lUIFNFVkVOIFBFUklPRDs7OzsKKzI0OEY7RElHSVQgRUlHSFQgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOCAwMDJFOzs4Ozg7TjtESUdJVCBFSUdIVCBQRVJJT0Q7Ozs7CisyNDkwO0RJR0lUIE5JTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOSAwMDJFOzs5Ozk7TjtESUdJVCBOSU5FIFBFUklPRDs7OzsKKzI0OTE7TlVNQkVSIFRFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzAgMDAyRTs7OzEwO047TlVNQkVSIFRFTiBQRVJJT0Q7Ozs7CisyNDkyO05VTUJFUiBFTEVWRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMxIDAwMkU7OzsxMTtOO05VTUJFUiBFTEVWRU4gUEVSSU9EOzs7OworMjQ5MztOVU1CRVIgVFdFTFZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMiAwMDJFOzs7MTI7TjtOVU1CRVIgVFdFTFZFIFBFUklPRDs7OzsKKzI0OTQ7TlVNQkVSIFRISVJURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMyAwMDJFOzs7MTM7TjtOVU1CRVIgVEhJUlRFRU4gUEVSSU9EOzs7OworMjQ5NTtOVU1CRVIgRk9VUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM0IDAwMkU7OzsxNDtOO05VTUJFUiBGT1VSVEVFTiBQRVJJT0Q7Ozs7CisyNDk2O05VTUJFUiBGSUZURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNSAwMDJFOzs7MTU7TjtOVU1CRVIgRklGVEVFTiBQRVJJT0Q7Ozs7CisyNDk3O05VTUJFUiBTSVhURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNiAwMDJFOzs7MTY7TjtOVU1CRVIgU0lYVEVFTiBQRVJJT0Q7Ozs7CisyNDk4O05VTUJFUiBTRVZFTlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM3IDAwMkU7OzsxNztOO05VTUJFUiBTRVZFTlRFRU4gUEVSSU9EOzs7OworMjQ5OTtOVU1CRVIgRUlHSFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM4IDAwMkU7OzsxODtOO05VTUJFUiBFSUdIVEVFTiBQRVJJT0Q7Ozs7CisyNDlBO05VTUJFUiBOSU5FVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzkgMDAyRTs7OzE5O047TlVNQkVSIE5JTkVURUVOIFBFUklPRDs7OzsKKzI0OUI7TlVNQkVSIFRXRU5UWSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMyIDAwMzAgMDAyRTs7OzIwO047TlVNQkVSIFRXRU5UWSBQRVJJT0Q7Ozs7CisyNDlDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MSAwMDI5Ozs7O047Ozs7OworMjQ5RDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjIgMDAyOTs7OztOOzs7OzsKKzI0OUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYzIDAwMjk7Ozs7Tjs7Ozs7CisyNDlGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NCAwMDI5Ozs7O047Ozs7OworMjRBMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjUgMDAyOTs7OztOOzs7OzsKKzI0QTE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY2IDAwMjk7Ozs7Tjs7Ozs7CisyNEEyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NyAwMDI5Ozs7O047Ozs7OworMjRBMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjggMDAyOTs7OztOOzs7OzsKKzI0QTQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY5IDAwMjk7Ozs7Tjs7Ozs7CisyNEE1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QSAwMDI5Ozs7O047Ozs7OworMjRBNjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkIgMDAyOTs7OztOOzs7OzsKKzI0QTc7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZDIDAwMjk7Ozs7Tjs7Ozs7CisyNEE4O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE07U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RCAwMDI5Ozs7O047Ozs7OworMjRBOTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkUgMDAyOTs7OztOOzs7OzsKKzI0QUE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZGIDAwMjk7Ozs7Tjs7Ozs7CisyNEFCO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFA7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MCAwMDI5Ozs7O047Ozs7OworMjRBQztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzEgMDAyOTs7OztOOzs7OzsKKzI0QUQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcyIDAwMjk7Ozs7Tjs7Ozs7CisyNEFFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFM7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MyAwMDI5Ozs7O047Ozs7OworMjRBRjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzQgMDAyOTs7OztOOzs7OzsKKzI0QjA7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc1IDAwMjk7Ozs7Tjs7Ozs7CisyNEIxO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFY7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NiAwMDI5Ozs7O047Ozs7OworMjRCMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzcgMDAyOTs7OztOOzs7OzsKKzI0QjM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc4IDAwMjk7Ozs7Tjs7Ozs7CisyNEI0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFk7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3OSAwMDI5Ozs7O047Ozs7OworMjRCNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwN0EgMDAyOTs7OztOOzs7OzsKKzI0QjY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDQxOzs7O047Ozs7MjREMDsKKzI0Qjc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDQyOzs7O047Ozs7MjREMTsKKzI0Qjg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO1NvOzA7TDs8Y2lyY2xlPiAwMDQzOzs7O047Ozs7MjREMjsKKzI0Qjk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDQ0Ozs7O047Ozs7MjREMzsKKzI0QkE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDQ1Ozs7O047Ozs7MjRENDsKKzI0QkI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO1NvOzA7TDs8Y2lyY2xlPiAwMDQ2Ozs7O047Ozs7MjRENTsKKzI0QkM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDQ3Ozs7O047Ozs7MjRENjsKKzI0QkQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDQ4Ozs7O047Ozs7MjRENzsKKzI0QkU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO1NvOzA7TDs8Y2lyY2xlPiAwMDQ5Ozs7O047Ozs7MjREODsKKzI0QkY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDRBOzs7O047Ozs7MjREOTsKKzI0QzA7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDRCOzs7O047Ozs7MjREQTsKKzI0QzE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO1NvOzA7TDs8Y2lyY2xlPiAwMDRDOzs7O047Ozs7MjREQjsKKzI0QzI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDREOzs7O047Ozs7MjREQzsKKzI0QzM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDRFOzs7O047Ozs7MjRERDsKKzI0QzQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO1NvOzA7TDs8Y2lyY2xlPiAwMDRGOzs7O047Ozs7MjRERTsKKzI0QzU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDUwOzs7O047Ozs7MjRERjsKKzI0QzY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDUxOzs7O047Ozs7MjRFMDsKKzI0Qzc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO1NvOzA7TDs8Y2lyY2xlPiAwMDUyOzs7O047Ozs7MjRFMTsKKzI0Qzg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDUzOzs7O047Ozs7MjRFMjsKKzI0Qzk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDU0Ozs7O047Ozs7MjRFMzsKKzI0Q0E7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO1NvOzA7TDs8Y2lyY2xlPiAwMDU1Ozs7O047Ozs7MjRFNDsKKzI0Q0I7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDU2Ozs7O047Ozs7MjRFNTsKKzI0Q0M7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDU3Ozs7O047Ozs7MjRFNjsKKzI0Q0Q7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO1NvOzA7TDs8Y2lyY2xlPiAwMDU4Ozs7O047Ozs7MjRFNzsKKzI0Q0U7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDU5Ozs7O047Ozs7MjRFODsKKzI0Q0Y7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDVBOzs7O047Ozs7MjRFOTsKKzI0RDA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNpcmNsZT4gMDA2MTs7OztOOzs7MjRCNjs7MjRCNgorMjREMTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDYyOzs7O047OzsyNEI3OzsyNEI3CisyNEQyO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNjM7Ozs7Tjs7OzI0Qjg7OzI0QjgKKzI0RDM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNpcmNsZT4gMDA2NDs7OztOOzs7MjRCOTs7MjRCOQorMjRENDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDY1Ozs7O047OzsyNEJBOzsyNEJBCisyNEQ1O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNjY7Ozs7Tjs7OzI0QkI7OzI0QkIKKzI0RDY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNpcmNsZT4gMDA2Nzs7OztOOzs7MjRCQzs7MjRCQworMjRENztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDY4Ozs7O047OzsyNEJEOzsyNEJECisyNEQ4O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNjk7Ozs7Tjs7OzI0QkU7OzI0QkUKKzI0RDk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNpcmNsZT4gMDA2QTs7OztOOzs7MjRCRjs7MjRCRgorMjREQTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDZCOzs7O047OzsyNEMwOzsyNEMwCisyNERCO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNkM7Ozs7Tjs7OzI0QzE7OzI0QzEKKzI0REM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNpcmNsZT4gMDA2RDs7OztOOzs7MjRDMjs7MjRDMgorMjRERDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDZFOzs7O047OzsyNEMzOzsyNEMzCisyNERFO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNkY7Ozs7Tjs7OzI0QzQ7OzI0QzQKKzI0REY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNpcmNsZT4gMDA3MDs7OztOOzs7MjRDNTs7MjRDNQorMjRFMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDcxOzs7O047OzsyNEM2OzsyNEM2CisyNEUxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNzI7Ozs7Tjs7OzI0Qzc7OzI0QzcKKzI0RTI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNpcmNsZT4gMDA3Mzs7OztOOzs7MjRDODs7MjRDOAorMjRFMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDc0Ozs7O047OzsyNEM5OzsyNEM5CisyNEU0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNzU7Ozs7Tjs7OzI0Q0E7OzI0Q0EKKzI0RTU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNpcmNsZT4gMDA3Njs7OztOOzs7MjRDQjs7MjRDQgorMjRFNjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDc3Ozs7O047OzsyNENDOzsyNENDCisyNEU3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNzg7Ozs7Tjs7OzI0Q0Q7OzI0Q0QKKzI0RTg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNpcmNsZT4gMDA3OTs7OztOOzs7MjRDRTs7MjRDRQorMjRFOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDdBOzs7O047OzsyNENGOzsyNENGCisyNEVBO0NJUkNMRUQgRElHSVQgWkVSTztObzswO09OOzxjaXJjbGU+IDAwMzA7OzA7MDtOOzs7OzsKKzI0RUI7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgRUxFVkVOO05vOzA7T047Ozs7MTE7Tjs7Ozs7CisyNEVDO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRXRUxWRTtObzswO09OOzs7OzEyO047Ozs7OworMjRFRDtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBUSElSVEVFTjtObzswO09OOzs7OzEzO047Ozs7OworMjRFRTtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBGT1VSVEVFTjtObzswO09OOzs7OzE0O047Ozs7OworMjRFRjtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBGSUZURUVOO05vOzA7T047Ozs7MTU7Tjs7Ozs7CisyNEYwO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtPTjs7OzsxNjtOOzs7OzsKKzI0RjE7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7T047Ozs7MTc7Tjs7Ozs7CisyNEYyO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7T047Ozs7MTg7Tjs7Ozs7CisyNEYzO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7T047Ozs7MTk7Tjs7Ozs7CisyNEY0O05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRXRU5UWTtObzswO09OOzs7OzIwO047Ozs7OworMjRGNTtET1VCTEUgQ0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOOzs7OzsKKzI0RjY7RE9VQkxFIENJUkNMRUQgRElHSVQgVFdPO05vOzA7T047OzsyOzI7Tjs7Ozs7CisyNEY3O0RPVUJMRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7Tjs7Ozs7CisyNEY4O0RPVUJMRSBDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOOzs7OzsKKzI0Rjk7RE9VQkxFIENJUkNMRUQgRElHSVQgRklWRTtObzswO09OOzs7NTs1O047Ozs7OworMjRGQTtET1VCTEUgQ0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOOzs7OzsKKzI0RkI7RE9VQkxFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOOzs7OzsKKzI0RkM7RE9VQkxFIENJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtPTjs7Ozg7ODtOOzs7OzsKKzI0RkQ7RE9VQkxFIENJUkNMRUQgRElHSVQgTklORTtObzswO09OOzs7OTs5O047Ozs7OworMjRGRTtET1VCTEUgQ0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7Tjs7Ozs7CisyNEZGO05FR0FUSVZFIENJUkNMRUQgRElHSVQgWkVSTztObzswO09OOzs7MDswO047Ozs7OworMjUwMDtCT1ggRFJBV0lOR1MgTElHSFQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEhPUklaT05UQUw7Ozs7CisyNTAxO0JPWCBEUkFXSU5HUyBIRUFWWSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgSE9SSVpPTlRBTDs7OzsKKzI1MDI7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUw7Ozs7CisyNTAzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMOzs7OworMjUwNDtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA1O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDY7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA3O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwODtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA5O0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MEE7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBCO0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBSSUdIVDs7OzsKKzI1MEQ7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTBFO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUwRjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBSSUdIVDs7OzsKKzI1MTA7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBMRUZUOzs7OworMjUxMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTEyO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MTM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBMRUZUOzs7OworMjUxNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIFJJR0hUOzs7OworMjUxNTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUxNztCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIFJJR0hUOzs7OworMjUxODtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgTEVGVDs7OzsKKzI1MTk7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTFBO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTEVGVDs7OzsKKzI1MUM7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MUQ7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MUU7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTFGO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUyMDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUyMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1MjI7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTIzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTI0O0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyNTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MjY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyNztCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTI4O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUyOTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTJBO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MkI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTJDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MkQ7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUyRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTJGO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1MzA7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzMTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTMyO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MzM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzU7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTM2O0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUzNztCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1Mzg7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTM5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUzQTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1M0I7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjUzRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0U7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0MDtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQxO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQzO0JPWCBEUkFXSU5HUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1NDQ7Qk9YIERSQVdJTkdTIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjU0NTtCT1ggRFJBV0lOR1MgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTQ2O0JPWCBEUkFXSU5HUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1NDc7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0ODtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTRDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEQ7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RTtCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTUwO0JPWCBEUkFXSU5HUyBET1VCTEUgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBIT1JJWk9OVEFMOzs7OworMjU1MTtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMOzs7OworMjU1MjtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTUzO0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NTQ7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBSSUdIVDs7OzsKKzI1NTU7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NTY7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NTc7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIExFRlQ7Ozs7CisyNTU4O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1OTtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NUE7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIFJJR0hUOzs7OworMjU1QjtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTVDO0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NUQ7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgTEVGVDs7OzsKKzI1NUU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTVGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU2MDtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTYxO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NjI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU2MztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjU2NDtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2NTtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2NjtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1Njc7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2ODtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY5O0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZBO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NkI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2QztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU2RDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUOzs7OworMjU2RTtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NkY7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgTEVGVDs7OzsKKzI1NzA7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUOzs7OworMjU3MTtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7Ozs7CisyNTcyO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDs7OzsKKzI1NzM7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIENST1NTO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgQ1JPU1M7Ozs7CisyNTc0O0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVDs7OzsKKzI1NzU7Qk9YIERSQVdJTkdTIExJR0hUIFVQO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVA7Ozs7CisyNTc2O0JPWCBEUkFXSU5HUyBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFJJR0hUOzs7OworMjU3NztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV047Ozs7CisyNTc4O0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVDs7OzsKKzI1Nzk7Qk9YIERSQVdJTkdTIEhFQVZZIFVQO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVA7Ozs7CisyNTdBO0JPWCBEUkFXSU5HUyBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFJJR0hUOzs7OworMjU3QjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV047Ozs7CisyNTdDO0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUOzs7OworMjU3RDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjs7OzsKKzI1N0U7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7Ozs7CisyNTdGO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOOzs7OworMjU4MDtVUFBFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MTtMT1dFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MjtMT1dFUiBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODM7TE9XRVIgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODQ7TE9XRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODU7TE9XRVIgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NjtMT1dFUiBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xPV0VSIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNTg3O0xPV0VSIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg4O0ZVTEwgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg5O0xFRlQgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEE7TEVGVCBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xFRlQgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1OEI7TEVGVCBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThDO0xFRlQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEQ7TEVGVCBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RTtMRUZUIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RjtMRUZUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkwO1JJR0hUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkxO0xJR0hUIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MjtNRURJVU0gU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkzO0RBUksgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk0O1VQUEVSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk1O1JJR0hUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk2O1FVQURSQU5UIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk3O1FVQURSQU5UIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5ODtRVUFEUkFOVCBVUFBFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5OTtRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBMT1dFUiBMRUZUIEFORCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUE7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlCO1FVQURSQU5UIFVQUEVSIExFRlQgQU5EIFVQUEVSIFJJR0hUIEFORCBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5QztRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlEO1FVQURSQU5UIFVQUEVSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5RTtRVUFEUkFOVCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUY7UVVBRFJBTlQgVVBQRVIgUklHSFQgQU5EIExPV0VSIExFRlQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjVBMDtCTEFDSyBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUExO1dISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTI7V0hJVEUgU1FVQVJFIFdJVEggUk9VTkRFRCBDT1JORVJTO1NvOzA7T047Ozs7O047Ozs7OworMjVBMztXSElURSBTUVVBUkUgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE0O1NRVUFSRSBXSVRIIEhPUklaT05UQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTU7U1FVQVJFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTY7U1FVQVJFIFdJVEggT1JUSE9HT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE3O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTg7U1FVQVJFIFdJVEggVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBOTtTUVVBUkUgV0lUSCBESUFHT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFBO0JMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUI7V0hJVEUgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQztCTEFDSyBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFEO1dISVRFIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUU7QkxBQ0sgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRjtXSElURSBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIwO0JMQUNLIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIxO1dISVRFIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIyO0JMQUNLIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUIzO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI0O0JMQUNLIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI1O1dISVRFIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI2O0JMQUNLIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI3O1dISVRFIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI4O0JMQUNLIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI5O1dISVRFIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJBO0JMQUNLIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQjtXSElURSBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkM7QkxBQ0sgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJEO1dISVRFIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRTtCTEFDSyBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkY7V0hJVEUgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMwO0JMQUNLIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMTtXSElURSBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzI7QkxBQ0sgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMzO1dISVRFIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDNDtCTEFDSyBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM1O1dISVRFIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzY7QkxBQ0sgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzc7V0hJVEUgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzg7V0hJVEUgRElBTU9ORCBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM5O0ZJU0hFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNBO0xPWkVOR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNCO1dISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0M7RE9UVEVEIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Q7Q0lSQ0xFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0U7QlVMTFNFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNGO0JMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDA7Q0lSQ0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMTtDSVJDTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMjtDSVJDTEUgV0lUSCBMT1dFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMztDSVJDTEUgV0lUSCBVUFBFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENDtDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDU7Q0lSQ0xFIFdJVEggQUxMIEJVVCBVUFBFUiBMRUZUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENjtMRUZUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVENztSSUdIVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDg7SU5WRVJTRSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ5O0lOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQTtVUFBFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQjtMT1dFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQztVUFBFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REQ7VVBQRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERTtMT1dFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURGO0xPV0VSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVFMDtVUFBFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTE7TE9XRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUyO0JMQUNLIExPV0VSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMztCTEFDSyBMT1dFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNDtCTEFDSyBVUFBFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNTtCTEFDSyBVUFBFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTY7V0hJVEUgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVFNztTUVVBUkUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU4O1NRVUFSRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU5O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUE7U1FVQVJFIFdJVEggTE9XRVIgUklHSFQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUI7V0hJVEUgU1FVQVJFIFdJVEggVkVSVElDQUwgQklTRUNUSU5HIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVDO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7Ozs7CisyNUVEO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7Ozs7CisyNUVFO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSzs7OzsKKzI1RUY7TEFSR0UgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVGMDtXSElURSBTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMTtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMjtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjM7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY0O1dISVRFIENJUkNMRSBXSVRIIFVQUEVSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY1O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY2O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNztXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1Rjg7VVBQRVIgTEVGVCBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI1Rjk7VVBQRVIgUklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZBO0xPV0VSIExFRlQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZCO1dISVRFIE1FRElVTSBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZDO0JMQUNLIE1FRElVTSBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZEO1dISVRFIE1FRElVTSBTTUFMTCBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZFO0JMQUNLIE1FRElVTSBTTUFMTCBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZGO0xPV0VSIFJJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjYwMDtCTEFDSyBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYwMTtDTE9VRDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDI7VU1CUkVMTEE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAzO1NOT1dNQU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA0O0NPTUVUO1NvOzA7T047Ozs7O047Ozs7OworMjYwNTtCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjYwNjtXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjYwNztMSUdIVE5JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA4O1RIVU5ERVJTVE9STTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDk7U1VOO1NvOzA7T047Ozs7O047Ozs7OworMjYwQTtBU0NFTkRJTkcgTk9ERTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEI7REVTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQztDT05KVU5DVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEQ7T1BQT1NJVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEU7QkxBQ0sgVEVMRVBIT05FO1NvOzA7T047Ozs7O047Ozs7OworMjYwRjtXSElURSBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEwO0JBTExPVCBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjExO0JBTExPVCBCT1ggV0lUSCBDSEVDSztTbzswO09OOzs7OztOOzs7OzsKKzI2MTI7QkFMTE9UIEJPWCBXSVRIIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEzO1NBTFRJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE0O1VNQlJFTExBIFdJVEggUkFJTiBEUk9QUztTbzswO09OOzs7OztOOzs7OzsKKzI2MTU7SE9UIEJFVkVSQUdFO1NvOzA7T047Ozs7O047Ozs7OworMjYxNjtXSElURSBTSE9HSSBQSUVDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTc7QkxBQ0sgU0hPR0kgUElFQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE4O1NIQU1ST0NLO1NvOzA7T047Ozs7O047Ozs7OworMjYxOTtSRVZFUlNFRCBST1RBVEVEIEZMT1JBTCBIRUFSVCBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFBO0JMQUNLIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFCO0JMQUNLIFJJR0hUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxQztXSElURSBMRUZUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRDtXSElURSBVUCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUU7V0hJVEUgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFGO1dISVRFIERPV04gUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIwO1NLVUxMIEFORCBDUk9TU0JPTkVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyMTtDQVVUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIyO1JBRElPQUNUSVZFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIzO0JJT0hBWkFSRCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyNDtDQURVQ0VVUztTbzswO09OOzs7OztOOzs7OzsKKzI2MjU7QU5LSDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjY7T1JUSE9ET1ggQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI3O0NISSBSSE87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI4O0NST1NTIE9GIExPUlJBSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjYyOTtDUk9TUyBPRiBKRVJVU0FMRU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJBO1NUQVIgQU5EIENSRVNDRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjYyQjtGQVJTSSBTWU1CT0w7U287MDtPTjs7Ozs7TjtTWU1CT0wgT0YgSVJBTjs7OzsKKzI2MkM7QURJIFNIQUtUSTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkQ7SEFNTUVSIEFORCBTSUNLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJFO1BFQUNFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2MkY7WUlOIFlBTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMwO1RSSUdSQU0gRk9SIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzE7VFJJR1JBTSBGT1IgTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzI7VFJJR1JBTSBGT1IgRklSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzM7VFJJR1JBTSBGT1IgVEhVTkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzQ7VFJJR1JBTSBGT1IgV0lORDtTbzswO09OOzs7OztOOzs7OzsKKzI2MzU7VFJJR1JBTSBGT1IgV0FURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM2O1RSSUdSQU0gRk9SIE1PVU5UQUlOO1NvOzA7T047Ozs7O047Ozs7OworMjYzNztUUklHUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzg7V0hFRUwgT0YgREhBUk1BO1NvOzA7T047Ozs7O047Ozs7OworMjYzOTtXSElURSBGUk9XTklORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQTtXSElURSBTTUlMSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNCO0JMQUNLIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0M7V0hJVEUgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2M0Q7RklSU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRTtMQVNUIFFVQVJURVIgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzI2M0Y7TUVSQ1VSWTtTbzswO09OOzs7OztOOzs7OzsKKzI2NDA7RkVNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQxO0VBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjY0MjtNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQzO0pVUElURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ0O1NBVFVSTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDU7VVJBTlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0NjtORVBUVU5FO1NvOzA7T047Ozs7O047Ozs7OworMjY0NztQTFVUTztTbzswO09OOzs7OztOOzs7OzsKKzI2NDg7QVJJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ5O1RBVVJVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NEE7R0VNSU5JO1NvOzA7T047Ozs7O047Ozs7OworMjY0QjtDQU5DRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRDO0xFTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEQ7VklSR087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRFO0xJQlJBO1NvOzA7T047Ozs7O047Ozs7OworMjY0RjtTQ09SUElVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTA7U0FHSVRUQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUxO0NBUFJJQ09STjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTI7QVFVQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUzO1BJU0NFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTQ7V0hJVEUgQ0hFU1MgS0lORztTbzswO09OOzs7OztOOzs7OzsKKzI2NTU7V0hJVEUgQ0hFU1MgUVVFRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU2O1dISVRFIENIRVNTIFJPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU3O1dISVRFIENIRVNTIEJJU0hPUDtTbzswO09OOzs7OztOOzs7OzsKKzI2NTg7V0hJVEUgQ0hFU1MgS05JR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjY1OTtXSElURSBDSEVTUyBQQVdOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QTtCTEFDSyBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1QjtCTEFDSyBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NUM7QkxBQ0sgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NUQ7QkxBQ0sgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1RTtCTEFDSyBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVGO0JMQUNLIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYwO0JMQUNLIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYxO1dISVRFIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYyO1dISVRFIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjM7QkxBQ0sgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NDtXSElURSBTUEFERSBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NTtCTEFDSyBIRUFSVCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NjtCTEFDSyBESUFNT05EIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY3O1dISVRFIENMVUIgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njg7SE9UIFNQUklOR1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY5O1FVQVJURVIgTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkE7RUlHSFRIIE5PVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjZCO0JFQU1FRCBFSUdIVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgRUlHSFRIIE5PVEVTOzs7OworMjY2QztCRUFNRUQgU0lYVEVFTlRIIE5PVEVTO1NvOzA7T047Ozs7O047QkFSUkVEIFNJWFRFRU5USCBOT1RFUzs7OzsKKzI2NkQ7TVVTSUMgRkxBVCBTSUdOO1NvOzA7T047Ozs7O047RkxBVDs7OzsKKzI2NkU7TVVTSUMgTkFUVVJBTCBTSUdOO1NvOzA7T047Ozs7O047TkFUVVJBTDs7OzsKKzI2NkY7TVVTSUMgU0hBUlAgU0lHTjtTbTswO09OOzs7OztOO1NIQVJQOzs7OworMjY3MDtXRVNUIFNZUklBQyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2NzE7RUFTVCBTWVJJQUMgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjcyO1VOSVZFUlNBTCBSRUNZQ0xJTkcgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3MztSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTEgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cGV0ZTs7OworMjY3NDtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTIgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7aGRwZTs7OworMjY3NTtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTMgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cHZjOzs7CisyNjc2O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNCBQTEFTVElDUztTbzswO09OOzs7OztOOztsZHBlOzs7CisyNjc3O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNSBQTEFTVElDUztTbzswO09OOzs7OztOOztwcDs7OworMjY3ODtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTYgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cHM7OzsKKzI2Nzk7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS03IFBMQVNUSUNTO1NvOzA7T047Ozs7O047O290aGVyOzs7CisyNjdBO1JFQ1lDTElORyBTWU1CT0wgRk9SIEdFTkVSSUMgTUFURVJJQUxTO1NvOzA7T047Ozs7O047Ozs7OworMjY3QjtCTEFDSyBVTklWRVJTQUwgUkVDWUNMSU5HIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2N0M7UkVDWUNMRUQgUEFQRVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3RDtQQVJUSUFMTFktUkVDWUNMRUQgUEFQRVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3RTtQRVJNQU5FTlQgUEFQRVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2N0Y7V0hFRUxDSEFJUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgwO0RJRSBGQUNFLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgxO0RJRSBGQUNFLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgyO0RJRSBGQUNFLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgzO0RJRSBGQUNFLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg0O0RJRSBGQUNFLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg1O0RJRSBGQUNFLTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg2O1dISVRFIENJUkNMRSBXSVRIIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODc7V0hJVEUgQ0lSQ0xFIFdJVEggVFdPIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg4O0JMQUNLIENJUkNMRSBXSVRIIFdISVRFIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODk7QkxBQ0sgQ0lSQ0xFIFdJVEggVFdPIFdISVRFIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjhBO01PTk9HUkFNIEZPUiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY4QjtNT05PR1JBTSBGT1IgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY4QztESUdSQU0gRk9SIEdSRUFURVIgWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2OEQ7RElHUkFNIEZPUiBMRVNTRVIgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY4RTtESUdSQU0gRk9SIExFU1NFUiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY4RjtESUdSQU0gRk9SIEdSRUFURVIgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY5MDtXSElURSBGTEFHO1NvOzA7T047Ozs7O047Ozs7OworMjY5MTtCTEFDSyBGTEFHO1NvOzA7T047Ozs7O047Ozs7OworMjY5MjtIQU1NRVIgQU5EIFBJQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjkzO0FOQ0hPUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OTQ7Q1JPU1NFRCBTV09SRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk1O1NUQUZGIE9GIEFFU0NVTEFQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY5NjtTQ0FMRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk3O0FMRU1CSUM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk4O0ZMT1dFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OTk7R0VBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OUE7U1RBRkYgT0YgSEVSTUVTO1NvOzA7T047Ozs7O047Ozs7OworMjY5QjtBVE9NIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2OUM7RkxFVVItREUtTElTO1NvOzA7T047Ozs7O047Ozs7OworMjZBMDtXQVJOSU5HIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkExO0hJR0ggVk9MVEFHRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBMjtET1VCTEVEIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBMztET1VCTEVEIE1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTQ7SU5URVJMT0NLRUQgRkVNQUxFIEFORCBNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE1O01BTEUgQU5EIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBNjtNQUxFIFdJVEggU1RST0tFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE3O01BTEUgV0lUSCBTVFJPS0UgQU5EIE1BTEUgQU5EIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBODtWRVJUSUNBTCBNQUxFIFdJVEggU1RST0tFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE5O0hPUklaT05UQUwgTUFMRSBXSVRIIFNUUk9LRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBQTtNRURJVU0gV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjZBQjtNRURJVU0gQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjZBQztNRURJVU0gU01BTEwgV0hJVEUgQ0lSQ0xFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyNkFEO01BUlJJQUdFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2QUU7RElWT1JDRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkFGO1VOTUFSUklFRCBQQVJUTkVSU0hJUCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkIwO0NPRkZJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QjE7RlVORVJBTCBVUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkIyO05FVVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDE7VVBQRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAyO0JMQUNLIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMztMT1dFUiBCTEFERSBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDQ7V0hJVEUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA2O1RFTEVQSE9ORSBMT0NBVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjcwNztUQVBFIERSSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjcwODtBSVJQTEFORTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDk7RU5WRUxPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBDO1ZJQ1RPUlkgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEQ7V1JJVElORyBIQU5EO1NvOzA7T047Ozs7O047Ozs7OworMjcwRTtMT1dFUiBSSUdIVCBQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBGO1BFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTA7VVBQRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcxMTtXSElURSBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEyO0JMQUNLIE5JQjtTbzswO09OOzs7OztOOzs7OzsKKzI3MTM7Q0hFQ0sgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzI3MTQ7SEVBVlkgQ0hFQ0sgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzI3MTU7TVVMVElQTElDQVRJT04gWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTY7SEVBVlkgTVVMVElQTElDQVRJT04gWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTc7QkFMTE9UIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE4O0hFQVZZIEJBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxOTtPVVRMSU5FRCBHUkVFSyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUE7SEVBVlkgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFCO09QRU4gQ0VOVFJFIENST1NTO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQ1JPU1M7Ozs7CisyNzFDO0hFQVZZIE9QRU4gQ0VOVFJFIENST1NTO1NvOzA7T047Ozs7O047SEVBVlkgT1BFTiBDRU5URVIgQ1JPU1M7Ozs7CisyNzFEO0xBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxRTtTSEFET1dFRCBXSElURSBMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUY7T1VUTElORUQgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzIwO01BTFRFU0UgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzIxO1NUQVIgT0YgREFWSUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzIyO0ZPVVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjcyMztGT1VSIEJBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjcyNDtIRUFWWSBGT1VSIEJBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjcyNTtGT1VSIENMVUItU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjcyNjtCTEFDSyBGT1VSIFBPSU5URUQgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mjc7V0hJVEUgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI5O1NUUkVTUyBPVVRMSU5FRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQTtDSVJDTEVEIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzJCO09QRU4gQ0VOVFJFIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7TjtPUEVOIENFTlRFUiBCTEFDSyBTVEFSOzs7OworMjcyQztCTEFDSyBDRU5UUkUgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOO0JMQUNLIENFTlRFUiBXSElURSBTVEFSOzs7OworMjcyRDtPVVRMSU5FRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyRTtIRUFWWSBPVVRMSU5FRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyRjtQSU5XSEVFTCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczMDtTSEFET1dFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczMTtIRUFWWSBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzI7T1BFTiBDRU5UUkUgQVNURVJJU0s7U287MDtPTjs7Ozs7TjtPUEVOIENFTlRFUiBBU1RFUklTSzs7OzsKKzI3MzM7RUlHSFQgU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjczNDtFSUdIVCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM1O0VJR0hUIFBPSU5URUQgUElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzY7U0lYIFBPSU5URUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzc7RUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczODtIRUFWWSBFSUdIVCBQT0lOVEVEIFJFQ1RJTElORUFSIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM5O1RXRUxWRSBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNBO1NJWFRFRU4gUE9JTlRFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0I7VEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjczQztPUEVOIENFTlRSRSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7TjtPUEVOIENFTlRFUiBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7Ozs7CisyNzNEO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0U7U0lYIFBFVEFMTEVEIEJMQUNLIEFORCBXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3M0Y7QkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQwO1dISVRFIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MTtFSUdIVCBQRVRBTExFRCBPVVRMSU5FRCBCTEFDSyBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDI7Q0lSQ0xFRCBPUEVOIENFTlRSRSBFSUdIVCBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7TjtDSVJDTEVEIE9QRU4gQ0VOVEVSIEVJR0hUIFBPSU5URUQgU1RBUjs7OzsKKzI3NDM7SEVBVlkgVEVBUkRST1AtU1BPS0VEIFBJTldIRUVMIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0NDtTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ1O1RJR0hUIFRSSUZPTElBVEUgU05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NjtIRUFWWSBDSEVWUk9OIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDc7U1BBUktMRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDg7SEVBVlkgU1BBUktMRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDk7QkFMTE9PTi1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRBO0VJR0hUIFRFQVJEUk9QLVNQT0tFRCBQUk9QRUxMRVIgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRCO0hFQVZZIEVJR0hUIFRFQVJEUk9QLVNQT0tFRCBQUk9QRUxMRVIgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzREO1NIQURPV0VEIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NEY7TE9XRVIgUklHSFQgRFJPUC1TSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzUwO1VQUEVSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MTtMT1dFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzUyO1VQUEVSIFJJR0hUIFNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTY7QkxBQ0sgRElBTU9ORCBNSU5VUyBXSElURSBYO1NvOzA7T047Ozs7O047Ozs7OworMjc1ODtMSUdIVCBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU5O01FRElVTSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVBO0hFQVZZIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3NUI7SEVBVlkgU0lOR0xFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUM7SEVBVlkgU0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc1RDtIRUFWWSBET1VCTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc1RTtIRUFWWSBET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzYxO0NVUlZFRCBTVEVNIFBBUkFHUkFQSCBTSUdOIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MjtIRUFWWSBFWENMQU1BVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MztIRUFWWSBIRUFSVCBFWENMQU1BVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2NDtIRUFWWSBCTEFDSyBIRUFSVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjU7Uk9UQVRFRCBIRUFWWSBCTEFDSyBIRUFSVCBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY2O0ZMT1JBTCBIRUFSVDtTbzswO09OOzs7OztOOzs7OzsKKzI3Njc7Uk9UQVRFRCBGTE9SQUwgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2ODtNRURJVU0gTEVGVCBQQVJFTlRIRVNJUyBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3Njk7TUVESVVNIFJJR0hUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc2QTtNRURJVU0gRkxBVFRFTkVEIExFRlQgUEFSRU5USEVTSVMgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzZCO01FRElVTSBGTEFUVEVORUQgUklHSFQgUEFSRU5USEVTSVMgT1JOQU1FTlQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyNzZDO01FRElVTSBMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzZEO01FRElVTSBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc2RTtIRUFWWSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2RjtIRUFWWSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzA7SEVBVlkgTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3MTtIRUFWWSBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc3MjtMSUdIVCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzczO0xJR0hUIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQgT1JOQU1FTlQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyNzc0O01FRElVTSBMRUZUIENVUkxZIEJSQUNLRVQgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzc1O01FRElVTSBSSUdIVCBDVVJMWSBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc3NjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgT05FOzs7OworMjc3NztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgVFdPO05vOzA7T047OzsyOzI7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVFdPOzs7OworMjc3ODtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBUSFJFRTs7OzsKKzI3Nzk7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGT1VSOzs7OworMjc3QTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgRklWRTtObzswO09OOzs7NTs1O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIEZJVkU7Ozs7CisyNzdCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTSVg7Ozs7CisyNzdDO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFNFVkVOOzs7OworMjc3RDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtPTjs7Ozg7ODtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBFSUdIVDs7OzsKKzI3N0U7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBOSU5FOzs7OworMjc3RjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIE5VTUJFUiBURU47Ozs7CisyNzgwO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE9ORTs7OzsKKzI3ODE7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPO05vOzA7T047OzsyOzI7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4MjtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRIUkVFOzs7OworMjc4MztESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjs7OzsKKzI3ODQ7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRklWRTtObzswO09OOzs7NTs1O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzg1O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDs7OzsKKzI3ODY7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjs7OzsKKzI3ODc7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Tm87MDtPTjs7Ozg7ODtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3ODg7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Ozs7CisyNzg5O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0NJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOOzs7OworMjc4QTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE9ORTs7OzsKKzI3OEI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPO05vOzA7T047OzsyOzI7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUV087Ozs7CisyNzhDO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3OEQ7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjs7OzsKKzI3OEU7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRklWRTtObzswO09OOzs7NTs1O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRklWRTs7OzsKKzI3OEY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzkwO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjs7OzsKKzI3OTE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Tm87MDtPTjs7Ozg7ODtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUOzs7OworMjc5MjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc5MztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOOzs7OworMjc5NDtIRUFWWSBXSURFLUhFQURFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgV0lERS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzk4O0hFQVZZIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVCBBUlJPVzs7OzsKKzI3OTk7SEVBVlkgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFJJR0hUIEFSUk9XOzs7OworMjc5QTtIRUFWWSBOT1JUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgVVBQRVIgUklHSFQgQVJST1c7Ozs7CisyNzlCO0RSQUZUSU5HIFBPSU5UIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtEUkFGVElORyBQT0lOVCBSSUdIVCBBUlJPVzs7OzsKKzI3OUM7SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBST1VORC1USVBQRUQgUklHSFQgQVJST1c7Ozs7CisyNzlEO1RSSUFOR0xFLUhFQURFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047VFJJQU5HTEUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5RTtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUY7REFTSEVEIFRSSUFOR0xFLUhFQURFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047REFTSEVEIFRSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QTA7SEVBVlkgREFTSEVEIFRSSUFOR0xFLUhFQURFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgREFTSEVEIFRSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QTE7QkxBQ0sgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIEFSUk9XOzs7OworMjdBMjtUSFJFRS1EIFRPUC1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0EzO1RIUkVFLUQgQk9UVE9NLUxJR0hURUQgUklHSFRXQVJEUyBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7TjtUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUIEFSUk9XSEVBRDs7OzsKKzI3QTQ7QkxBQ0sgUklHSFRXQVJEUyBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E1O0hFQVZZIEJMQUNLIENVUlZFRCBET1dOV0FSRFMgQU5EIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTiBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E2O0hFQVZZIEJMQUNLIENVUlZFRCBVUFdBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIFVQIEFORCBSSUdIVCBBUlJPVzs7OzsKKzI3QTc7U1FVQVQgQkxBQ0sgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1NRVUFUIEJMQUNLIFJJR0hUIEFSUk9XOzs7OworMjdBODtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIENPTkNBVkUtUE9JTlRFRCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTk7UklHSFQtU0hBREVEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FBO0xFRlQtU0hBREVEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZULVNIQURFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUI7QkFDSy1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQztGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0ZST05ULVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUQ7SEVBVlkgTE9XRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRTtIRUFWWSBVUFBFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FGO05PVENIRUQgTE9XRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO05PVENIRUQgTE9XRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0IxO05PVENIRUQgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO05PVENIRUQgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0IyO0NJUkNMRUQgSEVBVlkgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0NJUkNMRUQgSEVBVlkgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0IzO1dISVRFLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUtRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNDtCTEFDSy1GRUFUSEVSRUQgU09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBMT1dFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QjU7QkxBQ0stRkVBVEhFUkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgUklHSFQgQVJST1c7Ozs7CisyN0I2O0JMQUNLLUZFQVRIRVJFRCBOT1JUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjdCNztIRUFWWSBCTEFDSy1GRUFUSEVSRUQgU09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBMT1dFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjg7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgUklHSFQgQVJST1c7Ozs7CisyN0I5O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBOT1JUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjdCQTtURUFSRFJPUC1CQVJCRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RFQVJEUk9QLUJBUkJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkI7SEVBVlkgVEVBUkRST1AtU0hBTktFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgVEVBUkRST1AtU0hBTktFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkM7V0VER0UtVEFJTEVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtXRURHRS1UQUlMRUQgUklHSFQgQVJST1c7Ozs7CisyN0JEO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgV0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRTtPUEVOLU9VVExJTkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtPUEVOLU9VVExJTkVEIFJJR0hUIEFSUk9XOzs7OworMjdDMDtUSFJFRSBESU1FTlNJT05BTCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI3QzE7V0hJVEUgVFJJQU5HTEUgQ09OVEFJTklORyBTTUFMTCBXSElURSBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI3QzI7UEVSUEVORElDVUxBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3QzM7T1BFTiBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0M0O09QRU4gU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0M1O0xFRlQgUy1TSEFQRUQgQkFHIERFTElNSVRFUjtQczswO09OOzs7OztZOzs7OzsKKzI3QzY7UklHSFQgUy1TSEFQRUQgQkFHIERFTElNSVRFUjtQZTswO09OOzs7OztZOzs7OzsKKzI3Qzc7T1IgV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O047Ozs7OworMjdDODtSRVZFUlNFIFNPTElEVVMgUFJFQ0VESU5HIFNVQlNFVDtTbTswO09OOzs7OztOOzs7OzsKKzI3Qzk7U1VQRVJTRVQgUFJFQ0VESU5HIFNPTElEVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0NBO1ZFUlRJQ0FMIEJBUiBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjdEMDtXSElURSBESUFNT05EIFdJVEggQ0VOVFJFRCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0QxO0FORCBXSVRIIERPVDtTbTswO09OOzs7OztOOzs7OzsKKzI3RDI7RUxFTUVOVCBPRiBPUEVOSU5HIFVQV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0QzO0xPV0VSIFJJR0hUIENPUk5FUiBXSVRIIERPVDtTbTswO09OOzs7OztZOzs7OzsKKzI3RDQ7VVBQRVIgTEVGVCBDT1JORVIgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q1O0xFRlQgT1VURVIgSk9JTjtTbTswO09OOzs7OztZOzs7OzsKKzI3RDY7UklHSFQgT1VURVIgSk9JTjtTbTswO09OOzs7OztZOzs7OzsKKzI3RDc7RlVMTCBPVVRFUiBKT0lOO1NtOzA7T047Ozs7O047Ozs7OworMjdEODtMQVJHRSBVUCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjdEOTtMQVJHRSBET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0RBO0xFRlQgQU5EIFJJR0hUIERPVUJMRSBUVVJOU1RJTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0RCO0xFRlQgQU5EIFJJR0hUIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0RDO0xFRlQgTVVMVElNQVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0REO0xPTkcgUklHSFQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI3REU7TE9ORyBMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0RGO1VQIFRBQ0sgV0lUSCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0UwO0xPWkVOR0UgRElWSURFRCBCWSBIT1JJWk9OVEFMIFJVTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0UxO1dISVRFIENPTkNBVkUtU0lERUQgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI3RTI7V0hJVEUgQ09OQ0FWRS1TSURFRCBESUFNT05EIFdJVEggTEVGVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0UzO1dISVRFIENPTkNBVkUtU0lERUQgRElBTU9ORCBXSVRIIFJJR0hUV0FSRFMgVElDSztTbTswO09OOzs7OztZOzs7OzsKKzI3RTQ7V0hJVEUgU1FVQVJFIFdJVEggTEVGVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0U1O1dISVRFIFNRVUFSRSBXSVRIIFJJR0hUV0FSRFMgVElDSztTbTswO09OOzs7OztZOzs7OzsKKzI3RTY7TUFUSEVNQVRJQ0FMIExFRlQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0U3O01BVEhFTUFUSUNBTCBSSUdIVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI3RTg7TUFUSEVNQVRJQ0FMIExFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI3RTk7TUFUSEVNQVRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0VBO01BVEhFTUFUSUNBTCBMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjdFQjtNQVRIRU1BVElDQUwgUklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0YwO1VQV0FSRFMgUVVBRFJVUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGMTtET1dOV0FSRFMgUVVBRFJVUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGMjtBTlRJQ0xPQ0tXSVNFIEdBUFBFRCBDSVJDTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0YzO0NMT0NLV0lTRSBHQVBQRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGNDtSSUdIVCBBUlJPVyBXSVRIIENJUkNMRUQgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzI3RjU7TE9ORyBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y2O0xPTkcgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3Rjc7TE9ORyBMRUZUIFJJR0hUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGODtMT05HIExFRlRXQVJEUyBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y5O0xPTkcgUklHSFRXQVJEUyBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZBO0xPTkcgTEVGVCBSSUdIVCBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZCO0xPTkcgTEVGVFdBUkRTIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjdGQztMT05HIFJJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZEO0xPTkcgTEVGVFdBUkRTIERPVUJMRSBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3RkU7TE9ORyBSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3RkY7TE9ORyBSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjgwMDtCUkFJTExFIFBBVFRFUk4gQkxBTks7U287MDtMOzs7OztOOzs7OzsKKzI4MDE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTtTbzswO0w7Ozs7O047Ozs7OworMjgwMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODAzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM7U287MDtMOzs7OztOOzs7OzsKKzI4MDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM7U287MDtMOzs7OztOOzs7OzsKKzI4MDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM7U287MDtMOzs7OztOOzs7OzsKKzI4MDc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODA4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ7U287MDtMOzs7OztOOzs7OzsKKzI4MDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDtTbzswO0w7Ozs7O047Ozs7OworMjgwRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDtTbzswO0w7Ozs7O047Ozs7OworMjgxMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODExO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODEyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODEzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTtTbzswO0w7Ozs7O047Ozs7OworMjgxNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTtTbzswO0w7Ozs7O047Ozs7OworMjgxNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU7U287MDtMOzs7OztOOzs7OzsKKzI4MTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU7U287MDtMOzs7OztOOzs7OzsKKzI4MTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjtTbzswO0w7Ozs7O047Ozs7OworMjgyMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjtTbzswO0w7Ozs7O047Ozs7OworMjgyMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjtTbzswO0w7Ozs7O047Ozs7OworMjgyMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY7U287MDtMOzs7OztOOzs7OzsKKzI4MjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY7U287MDtMOzs7OztOOzs7OzsKKzI4MjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjtTbzswO0w7Ozs7O047Ozs7OworMjgyNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODMwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODMxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0M7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4NDA7QlJBSUxMRSBQQVRURVJOIERPVFMtNztTbzswO0w7Ozs7O047Ozs7OworMjg0MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNztTbzswO0w7Ozs7O047Ozs7OworMjg0MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNztTbzswO0w7Ozs7O047Ozs7OworMjg0MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjc7U287MDtMOzs7OztOOzs7OzsKKzI4NDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzc7U287MDtMOzs7OztOOzs7OzsKKzI4NDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNztTbzswO0w7Ozs7O047Ozs7OworMjg0NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NztTbzswO0w7Ozs7O047Ozs7OworMjg0QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NztTbzswO0w7Ozs7O047Ozs7OworMjg0QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NztTbzswO0w7Ozs7O047Ozs7OworMjg0RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODRGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODUwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODUxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1NztTbzswO0w7Ozs7O047Ozs7OworMjg1MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1NztTbzswO0w7Ozs7O047Ozs7OworMjg1NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1NztTbzswO0w7Ozs7O047Ozs7OworMjg1NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODYyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2NztTbzswO0w7Ozs7O047Ozs7OworMjg2MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2NztTbzswO0w7Ozs7O047Ozs7OworMjg2NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjc7U287MDtMOzs7OztOOzs7OzsKKzI4Njc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjc7U287MDtMOzs7OztOOzs7OzsKKzI4Njg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg3MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODczO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4Nzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODc4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4Nzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg4MDtCUkFJTExFIFBBVFRFUk4gRE9UUy04O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODgxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODgyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODgzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyODtTbzswO0w7Ozs7O047Ozs7OworMjg4NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zODtTbzswO0w7Ozs7O047Ozs7OworMjg4NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzg7U287MDtMOzs7OztOOzs7OzsKKzI4ODY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzg7U287MDtMOzs7OztOOzs7OzsKKzI4ODg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDg7U287MDtMOzs7OztOOzs7OzsKKzI4ODk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODkyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjhBMDtCUkFJTExFIFBBVFRFUk4gRE9UUy02ODtTbzswO0w7Ozs7O047Ozs7OworMjhBMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEEzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEIwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEIyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4Qjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEMwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEMxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0M7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhENDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOERBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOERCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhERDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOERGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEUxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOTAwO1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDE7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDI7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDM7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwNTtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA2O0xFRlRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA3O1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkwODtET1dOV0FSRFMgQVJST1cgV0lUSCBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDk7VVBXQVJEUyBBUlJPVyBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwQTtVUFdBUkRTIFRSSVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEI7RE9XTldBUkRTIFRSSVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEM7TEVGVFdBUkRTIERPVUJMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwRDtSSUdIVFdBUkRTIERPVUJMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwRTtMRUZUV0FSRFMgVFJJUExFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBGO1JJR0hUV0FSRFMgVFJJUExFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTEwO1JJR0hUV0FSRFMgVFdPLUhFQURFRCBUUklQTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MTE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIERPVFRFRCBTVEVNO1NtOzA7T047Ozs7O047Ozs7OworMjkxMjtVUFdBUkRTIEFSUk9XIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MTM7RE9XTldBUkRTIEFSUk9XIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MTQ7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRBSUwgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE1O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTY7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MTc7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggVEFJTCBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTg7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggVEFJTCBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTE5O0xFRlRXQVJEUyBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxQTtSSUdIVFdBUkRTIEFSUk9XLVRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFCO0xFRlRXQVJEUyBET1VCTEUgQVJST1ctVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUM7UklHSFRXQVJEUyBET1VCTEUgQVJST1ctVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUQ7TEVGVFdBUkRTIEFSUk9XIFRPIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFFO1JJR0hUV0FSRFMgQVJST1cgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUY7TEVGVFdBUkRTIEFSUk9XIEZST00gQkFSIFRPIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTIwO1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVIgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MjE7Tk9SVEggV0VTVCBBTkQgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MjI7Tk9SVEggRUFTVCBBTkQgU09VVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MjM7Tk9SVEggV0VTVCBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI0O05PUlRIIEVBU1QgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjkyNTtTT1VUSCBFQVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5MjY7U09VVEggV0VTVCBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI3O05PUlRIIFdFU1QgQVJST1cgQU5EIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI4O05PUlRIIEVBU1QgQVJST1cgQU5EIFNPVVRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI5O1NPVVRIIEVBU1QgQVJST1cgQU5EIFNPVVRIIFdFU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJBO1NPVVRIIFdFU1QgQVJST1cgQU5EIE5PUlRIIFdFU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJCO1JJU0lORyBESUFHT05BTCBDUk9TU0lORyBGQUxMSU5HIERJQUdPTkFMO1NtOzA7T047Ozs7O047Ozs7OworMjkyQztGQUxMSU5HIERJQUdPTkFMIENST1NTSU5HIFJJU0lORyBESUFHT05BTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MkQ7U09VVEggRUFTVCBBUlJPVyBDUk9TU0lORyBOT1JUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyRTtOT1JUSCBFQVNUIEFSUk9XIENST1NTSU5HIFNPVVRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJGO0ZBTExJTkcgRElBR09OQUwgQ1JPU1NJTkcgTk9SVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MzA7UklTSU5HIERJQUdPTkFMIENST1NTSU5HIFNPVVRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTMxO05PUlRIIEVBU1QgQVJST1cgQ1JPU1NJTkcgTk9SVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MzI7Tk9SVEggV0VTVCBBUlJPVyBDUk9TU0lORyBOT1JUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMztXQVZFIEFSUk9XIFBPSU5USU5HIERJUkVDVExZIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjkzNDtBUlJPVyBQT0lOVElORyBSSUdIVFdBUkRTIFRIRU4gQ1VSVklORyBVUFdBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjkzNTtBUlJPVyBQT0lOVElORyBSSUdIVFdBUkRTIFRIRU4gQ1VSVklORyBET1dOV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM2O0FSUk9XIFBPSU5USU5HIERPV05XQVJEUyBUSEVOIENVUlZJTkcgTEVGVFdBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjkzNztBUlJPVyBQT0lOVElORyBET1dOV0FSRFMgVEhFTiBDVVJWSU5HIFJJR0hUV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM4O1JJR0hULVNJREUgQVJDIENMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Mzk7TEVGVC1TSURFIEFSQyBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzQTtUT1AgQVJDIEFOVElDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNCO0JPVFRPTSBBUkMgQU5USUNMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5M0M7VE9QIEFSQyBDTE9DS1dJU0UgQVJST1cgV0lUSCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzI5M0Q7VE9QIEFSQyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIFdJVEggUExVUztTbTswO09OOzs7OztOOzs7OzsKKzI5M0U7TE9XRVIgUklHSFQgU0VNSUNJUkNVTEFSIENMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5M0Y7TE9XRVIgTEVGVCBTRU1JQ0lSQ1VMQVIgQU5USUNMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDA7QU5USUNMT0NLV0lTRSBDTE9TRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MTtDTE9DS1dJU0UgQ0xPU0VEIENJUkNMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDI7UklHSFRXQVJEUyBBUlJPVyBBQk9WRSBTSE9SVCBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQzO0xFRlRXQVJEUyBBUlJPVyBBQk9WRSBTSE9SVCBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0NDtTSE9SVCBSSUdIVFdBUkRTIEFSUk9XIEFCT1ZFIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDU7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFBMVVMgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ2O0xFRlRXQVJEUyBBUlJPVyBXSVRIIFBMVVMgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ3O1JJR0hUV0FSRFMgQVJST1cgVEhST1VHSCBYO1NtOzA7T047Ozs7O047Ozs7OworMjk0ODtMRUZUIFJJR0hUIEFSUk9XIFRIUk9VR0ggU01BTEwgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjk0OTtVUFdBUkRTIFRXTy1IRUFERUQgQVJST1cgRlJPTSBTTUFMTCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRBO0xFRlQgQkFSQiBVUCBSSUdIVCBCQVJCIERPV04gSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEI7TEVGVCBCQVJCIERPV04gUklHSFQgQkFSQiBVUCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0QztVUCBCQVJCIFJJR0hUIERPV04gQkFSQiBMRUZUIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTREO1VQIEJBUkIgTEVGVCBET1dOIEJBUkIgUklHSFQgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEU7TEVGVCBCQVJCIFVQIFJJR0hUIEJBUkIgVVAgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEY7VVAgQkFSQiBSSUdIVCBET1dOIEJBUkIgUklHSFQgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTA7TEVGVCBCQVJCIERPV04gUklHSFQgQkFSQiBET1dOIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUxO1VQIEJBUkIgTEVGVCBET1dOIEJBUkIgTEVGVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk1MjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1MztSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTQ7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU1O0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTU2O0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTc7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTg7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTk7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1QTtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVCO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVDO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVEO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUU7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVGO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NjA7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk2MTtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NjI7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIExFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOO1NtOzA7T047Ozs7O047Ozs7OworMjk2MztVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgQkVTSURFIFVQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY0O1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgUklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOO1NtOzA7T047Ozs7O047Ozs7OworMjk2NTtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgRE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjk2NjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgUklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUDtTbTswO09OOzs7OztOOzs7OzsKKzI5Njc7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gQUJPVkUgUklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOO1NtOzA7T047Ozs7O047Ozs7OworMjk2ODtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQIEFCT1ZFIExFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUDtTbTswO09OOzs7OztOOzs7OzsKKzI5Njk7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEFCT1ZFIExFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOO1NtOzA7T047Ozs7O047Ozs7OworMjk2QTtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTE9ORyBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjk2QjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBCRUxPVyBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZDO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTE9ORyBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjk2RDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gQkVMT1cgTE9ORyBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjk2RTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgQkVTSURFIERPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkY7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgQkVTSURFIFVQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTcwO1JJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFJPVU5ERUQgSEVBRDtTbTswO09OOzs7OztOOzs7OzsKKzI5NzE7RVFVQUxTIFNJR04gQUJPVkUgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NzI7VElMREUgT1BFUkFUT1IgQUJPVkUgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NzM7TEVGVFdBUkRTIEFSUk9XIEFCT1ZFIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjk3NDtSSUdIVFdBUkRTIEFSUk9XIEFCT1ZFIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjk3NTtSSUdIVFdBUkRTIEFSUk9XIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzI5NzY7TEVTUy1USEFOIEFCT1ZFIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Nzc7TEVGVFdBUkRTIEFSUk9XIFRIUk9VR0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O047Ozs7OworMjk3ODtHUkVBVEVSLVRIQU4gQUJPVkUgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Nzk7U1VCU0VUIEFCT1ZFIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdBO0xFRlRXQVJEUyBBUlJPVyBUSFJPVUdIIFNVQlNFVDtTbTswO09OOzs7OztOOzs7OzsKKzI5N0I7U1VQRVJTRVQgQUJPVkUgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3QztMRUZUIEZJU0ggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5N0Q7UklHSFQgRklTSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjk3RTtVUCBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdGO0RPV04gRklTSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjk4MDtUUklQTEUgVkVSVElDQUwgQkFSIERFTElNSVRFUjtTbTswO09OOzs7OztOOzs7OzsKKzI5ODE7WiBOT1RBVElPTiBTUE9UO1NtOzA7T047Ozs7O047Ozs7OworMjk4MjtaIE5PVEFUSU9OIFRZUEUgQ09MT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgzO0xFRlQgV0hJVEUgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5ODQ7UklHSFQgV0hJVEUgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5ODU7TEVGVCBXSElURSBQQVJFTlRIRVNJUztQczswO09OOzs7OztZOzs7OzsKKzI5ODY7UklHSFQgV0hJVEUgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTg3O1ogTk9UQVRJT04gTEVGVCBJTUFHRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4ODtaIE5PVEFUSU9OIFJJR0hUIElNQUdFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTg5O1ogTk9UQVRJT04gTEVGVCBCSU5ESU5HIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOThBO1ogTk9UQVRJT04gUklHSFQgQklORElORyBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4QjtMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggVU5ERVJCQVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOThDO1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggVU5ERVJCQVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOThEO0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIFRPUCBDT1JORVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOThFO1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggVElDSyBJTiBCT1RUT00gQ09STkVSO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4RjtMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggVElDSyBJTiBCT1RUT00gQ09STkVSO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5MDtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFRJQ0sgSU4gVE9QIENPUk5FUjtQZTswO09OOzs7OztZOzs7OzsKKzI5OTE7TEVGVCBBTkdMRSBCUkFDS0VUIFdJVEggRE9UO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5MjtSSUdIVCBBTkdMRSBCUkFDS0VUIFdJVEggRE9UO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5MztMRUZUIEFSQyBMRVNTLVRIQU4gQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OTQ7UklHSFQgQVJDIEdSRUFURVItVEhBTiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5NTtET1VCTEUgTEVGVCBBUkMgR1JFQVRFUi1USEFOIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTk2O0RPVUJMRSBSSUdIVCBBUkMgTEVTUy1USEFOIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTk3O0xFRlQgQkxBQ0sgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OTg7UklHSFQgQkxBQ0sgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OTk7RE9UVEVEIEZFTkNFO1NtOzA7T047Ozs7O047Ozs7OworMjk5QTtWRVJUSUNBTCBaSUdaQUcgTElORTtTbTswO09OOzs7OztOOzs7OzsKKzI5OUI7TUVBU1VSRUQgQU5HTEUgT1BFTklORyBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5QztSSUdIVCBBTkdMRSBWQVJJQU5UIFdJVEggU1FVQVJFO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5RDtNRUFTVVJFRCBSSUdIVCBBTkdMRSBXSVRIIERPVDtTbTswO09OOzs7OztZOzs7OzsKKzI5OUU7QU5HTEUgV0lUSCBTIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzI5OUY7QUNVVEUgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUEwO1NQSEVSSUNBTCBBTkdMRSBPUEVOSU5HIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUExO1NQSEVSSUNBTCBBTkdMRSBPUEVOSU5HIFVQO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBMjtUVVJORUQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUEzO1JFVkVSU0VEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBNDtBTkdMRSBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBNTtSRVZFUlNFRCBBTkdMRSBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBNjtPQkxJUVVFIEFOR0xFIE9QRU5JTkcgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE3O09CTElRVUUgQU5HTEUgT1BFTklORyBET1dOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBODtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBVUCBBTkQgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE5O01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIFVQIEFORCBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBQTtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBET1dOIEFORCBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QUI7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgRE9XTiBBTkQgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QUM7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgUklHSFQgQU5EIFVQO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBRDtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBMRUZUIEFORCBVUDtTbTswO09OOzs7OztZOzs7OzsKKzI5QUU7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgUklHSFQgQU5EIERPV047U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFGO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIExFRlQgQU5EIERPV047U207MDtPTjs7Ozs7WTs7Ozs7CisyOUIwO1JFVkVSU0VEIEVNUFRZIFNFVDtTbTswO09OOzs7OztOOzs7OzsKKzI5QjE7RU1QVFkgU0VUIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QjI7RU1QVFkgU0VUIFdJVEggU01BTEwgQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlCMztFTVBUWSBTRVQgV0lUSCBSSUdIVCBBUlJPVyBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI5QjQ7RU1QVFkgU0VUIFdJVEggTEVGVCBBUlJPVyBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI5QjU7Q0lSQ0xFIFdJVEggSE9SSVpPTlRBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI2O0NJUkNMRUQgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCNztDSVJDTEVEIFBBUkFMTEVMO1NtOzA7T047Ozs7O047Ozs7OworMjlCODtDSVJDTEVEIFJFVkVSU0UgU09MSURVUztTbTswO09OOzs7OztZOzs7OzsKKzI5Qjk7Q0lSQ0xFRCBQRVJQRU5ESUNVTEFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCQTtDSVJDTEUgRElWSURFRCBCWSBIT1JJWk9OVEFMIEJBUiBBTkQgVE9QIEhBTEYgRElWSURFRCBCWSBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJCO0NJUkNMRSBXSVRIIFNVUEVSSU1QT1NFRCBYO1NtOzA7T047Ozs7O047Ozs7OworMjlCQztDSVJDTEVEIEFOVElDTE9DS1dJU0UtUk9UQVRFRCBESVZJU0lPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMjlCRDtVUCBBUlJPVyBUSFJPVUdIIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5QkU7Q0lSQ0xFRCBXSElURSBCVUxMRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJGO0NJUkNMRUQgQlVMTEVUO1NtOzA7T047Ozs7O047Ozs7OworMjlDMDtDSVJDTEVEIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QzE7Q0lSQ0xFRCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyOUMyO0NJUkNMRSBXSVRIIFNNQUxMIENJUkNMRSBUTyBUSEUgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUMzO0NJUkNMRSBXSVRIIFRXTyBIT1JJWk9OVEFMIFNUUk9LRVMgVE8gVEhFIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDNDtTUVVBUkVEIFJJU0lORyBESUFHT05BTCBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzI5QzU7U1FVQVJFRCBGQUxMSU5HIERJQUdPTkFMIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDNjtTUVVBUkVEIEFTVEVSSVNLO1NtOzA7T047Ozs7O047Ozs7OworMjlDNztTUVVBUkVEIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Qzg7U1FVQVJFRCBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUM5O1RXTyBKT0lORUQgU1FVQVJFUztTbTswO09OOzs7OztZOzs7OzsKKzI5Q0E7VFJJQU5HTEUgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUNCO1RSSUFOR0xFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUNDO1MgSU4gVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUNEO1RSSUFOR0xFIFdJVEggU0VSSUZTIEFUIEJPVFRPTTtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0U7UklHSFQgVFJJQU5HTEUgQUJPVkUgTEVGVCBUUklBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5Q0Y7TEVGVCBUUklBTkdMRSBCRVNJREUgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjlEMDtWRVJUSUNBTCBCQVIgQkVTSURFIFJJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlEMTtCT1dUSUUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQyO0JPV1RJRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQzO0JMQUNLIEJPV1RJRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RDQ7VElNRVMgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQ1O1RJTUVTIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDY7V0hJVEUgSE9VUkdMQVNTO1NtOzA7T047Ozs7O047Ozs7OworMjlENztCTEFDSyBIT1VSR0xBU1M7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUQ4O0xFRlQgV0lHR0xZIEZFTkNFO1BzOzA7T047Ozs7O1k7Ozs7OworMjlEOTtSSUdIVCBXSUdHTFkgRkVOQ0U7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOURBO0xFRlQgRE9VQkxFIFdJR0dMWSBGRU5DRTtQczswO09OOzs7OztZOzs7OzsKKzI5REI7UklHSFQgRE9VQkxFIFdJR0dMWSBGRU5DRTtQZTswO09OOzs7OztZOzs7OzsKKzI5REM7SU5DT01QTEVURSBJTkZJTklUWTtTbTswO09OOzs7OztZOzs7OzsKKzI5REQ7VElFIE9WRVIgSU5GSU5JVFk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOURFO0lORklOSVRZIE5FR0FURUQgV0lUSCBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOURGO0RPVUJMRS1FTkRFRCBNVUxUSU1BUDtTbTswO09OOzs7OztOOzs7OzsKKzI5RTA7U1FVQVJFIFdJVEggQ09OVE9VUkVEIE9VVExJTkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUUxO0lOQ1JFQVNFUyBBUztTbTswO09OOzs7OztZOzs7OzsKKzI5RTI7U0hVRkZMRSBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjlFMztFUVVBTFMgU0lHTiBBTkQgU0xBTlRFRCBQQVJBTExFTDtTbTswO09OOzs7OztZOzs7OzsKKzI5RTQ7RVFVQUxTIFNJR04gQU5EIFNMQU5URUQgUEFSQUxMRUwgV0lUSCBUSUxERSBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzI5RTU7SURFTlRJQ0FMIFRPIEFORCBTTEFOVEVEIFBBUkFMTEVMO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFNjtHTEVJQ0ggU1RBUks7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUU3O1RIRVJNT0RZTkFNSUM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUU4O0RPV04tUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUU5O0RPV04tUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFQTtCTEFDSyBESUFNT05EIFdJVEggRE9XTiBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5RUI7QkxBQ0sgTE9aRU5HRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RUM7V0hJVEUgQ0lSQ0xFIFdJVEggRE9XTiBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5RUQ7QkxBQ0sgQ0lSQ0xFIFdJVEggRE9XTiBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5RUU7RVJST1ItQkFSUkVEIFdISVRFIFNRVUFSRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RUY7RVJST1ItQkFSUkVEIEJMQUNLIFNRVUFSRTtTbTswO09OOzs7OztOOzs7OzsKKzI5RjA7RVJST1ItQkFSUkVEIFdISVRFIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYxO0VSUk9SLUJBUlJFRCBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjlGMjtFUlJPUi1CQVJSRUQgV0hJVEUgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlGMztFUlJPUi1CQVJSRUQgQkxBQ0sgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlGNDtSVUxFLURFTEFZRUQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY1O1JFVkVSU0UgU09MSURVUyBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzI5RjY7U09MSURVUyBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY3O1JFVkVSU0UgU09MSURVUyBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGODtCSUcgU09MSURVUztTbTswO09OOzs7OztZOzs7OzsKKzI5Rjk7QklHIFJFVkVSU0UgU09MSURVUztTbTswO09OOzs7OztZOzs7OzsKKzI5RkE7RE9VQkxFIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUZCO1RSSVBMRSBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjlGQztMRUZULVBPSU5USU5HIENVUlZFRCBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjlGRDtSSUdIVC1QT0lOVElORyBDVVJWRUQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5RkU7VElOWTtTbTswO09OOzs7OztOOzs7OzsKKzI5RkY7TUlOWTtTbTswO09OOzs7OztOOzs7OzsKKzJBMDA7Ti1BUlkgQ0lSQ0xFRCBET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTAxO04tQVJZIENJUkNMRUQgUExVUyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDI7Ti1BUlkgQ0lSQ0xFRCBUSU1FUyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDM7Ti1BUlkgVU5JT04gT1BFUkFUT1IgV0lUSCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA0O04tQVJZIFVOSU9OIE9QRVJBVE9SIFdJVEggUExVUztTbTswO09OOzs7OztOOzs7OzsKKzJBMDU7Ti1BUlkgU1FVQVJFIElOVEVSU0VDVElPTiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDY7Ti1BUlkgU1FVQVJFIFVOSU9OIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwNztUV08gTE9HSUNBTCBBTkQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA4O1RXTyBMT0dJQ0FMIE9SIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwOTtOLUFSWSBUSU1FUyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMEE7TU9EVUxPIFRXTyBTVU07U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBCO1NVTU1BVElPTiBXSVRIIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkEwQztRVUFEUlVQTEUgSU5URUdSQUwgT1BFUkFUT1I7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMkEwRDtGSU5JVEUgUEFSVCBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBMEU7SU5URUdSQUwgV0lUSCBET1VCTEUgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEwRjtJTlRFR1JBTCBBVkVSQUdFIFdJVEggU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTEwO0NJUkNVTEFUSU9OIEZVTkNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkExMTtBTlRJQ0xPQ0tXSVNFIElOVEVHUkFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkExMjtMSU5FIElOVEVHUkFUSU9OIFdJVEggUkVDVEFOR1VMQVIgUEFUSCBBUk9VTkQgUE9MRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMTM7TElORSBJTlRFR1JBVElPTiBXSVRIIFNFTUlDSVJDVUxBUiBQQVRIIEFST1VORCBQT0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkExNDtMSU5FIElOVEVHUkFUSU9OIE5PVCBJTkNMVURJTkcgVEhFIFBPTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE1O0lOVEVHUkFMIEFST1VORCBBIFBPSU5UIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkExNjtRVUFURVJOSU9OIElOVEVHUkFMIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkExNztJTlRFR1JBTCBXSVRIIExFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE4O0lOVEVHUkFMIFdJVEggVElNRVMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMTk7SU5URUdSQUwgV0lUSCBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTFBO0lOVEVHUkFMIFdJVEggVU5JT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTFCO0lOVEVHUkFMIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUM7SU5URUdSQUwgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUQ7Sk9JTjtTbTswO09OOzs7OztOOzs7OzsKKzJBMUU7TEFSR0UgTEVGVCBUUklBTkdMRSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUY7WiBOT1RBVElPTiBTQ0hFTUEgQ09NUE9TSVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTIwO1ogTk9UQVRJT04gU0NIRU1BIFBJUElORztTbTswO09OOzs7OztZOzs7OzsKKzJBMjE7WiBOT1RBVElPTiBTQ0hFTUEgUFJPSkVDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMjI7UExVUyBTSUdOIFdJVEggU01BTEwgQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkEyMztQTFVTIFNJR04gV0lUSCBDSVJDVU1GTEVYIEFDQ0VOVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMjQ7UExVUyBTSUdOIFdJVEggVElMREUgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTI1O1BMVVMgU0lHTiBXSVRIIERPVCBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBMjY7UExVUyBTSUdOIFdJVEggVElMREUgQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTI3O1BMVVMgU0lHTiBXSVRIIFNVQlNDUklQVCBUV087U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTI4O1BMVVMgU0lHTiBXSVRIIEJMQUNLIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEyOTtNSU5VUyBTSUdOIFdJVEggQ09NTUEgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTJBO01JTlVTIFNJR04gV0lUSCBET1QgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTJCO01JTlVTIFNJR04gV0lUSCBGQUxMSU5HIERPVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTJDO01JTlVTIFNJR04gV0lUSCBSSVNJTkcgRE9UUztTbTswO09OOzs7OztZOzs7OzsKKzJBMkQ7UExVUyBTSUdOIElOIExFRlQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTJFO1BMVVMgU0lHTiBJTiBSSUdIVCBIQUxGIENJUkNMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMkY7VkVDVE9SIE9SIENST1NTIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTMwO01VTFRJUExJQ0FUSU9OIFNJR04gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTMxO01VTFRJUExJQ0FUSU9OIFNJR04gV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMzI7U0VNSURJUkVDVCBQUk9EVUNUIFdJVEggQk9UVE9NIENMT1NFRDtTbTswO09OOzs7OztOOzs7OzsKKzJBMzM7U01BU0ggUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMzQ7TVVMVElQTElDQVRJT04gU0lHTiBJTiBMRUZUIEhBTEYgQ0lSQ0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzNTtNVUxUSVBMSUNBVElPTiBTSUdOIElOIFJJR0hUIEhBTEYgQ0lSQ0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzNjtDSVJDTEVEIE1VTFRJUExJQ0FUSU9OIFNJR04gV0lUSCBDSVJDVU1GTEVYIEFDQ0VOVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMzc7TVVMVElQTElDQVRJT04gU0lHTiBJTiBET1VCTEUgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzODtDSVJDTEVEIERJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTM5O1BMVVMgU0lHTiBJTiBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzJBM0E7TUlOVVMgU0lHTiBJTiBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzJBM0I7TVVMVElQTElDQVRJT04gU0lHTiBJTiBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzJBM0M7SU5URVJJT1IgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzJBM0Q7UklHSFRIQU5EIElOVEVSSU9SIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTNFO1ogTk9UQVRJT04gUkVMQVRJT05BTCBDT01QT1NJVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBM0Y7QU1BTEdBTUFUSU9OIE9SIENPUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzJBNDA7SU5URVJTRUNUSU9OIFdJVEggRE9UO1NtOzA7T047Ozs7O047Ozs7OworMkE0MTtVTklPTiBXSVRIIE1JTlVTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQyO1VOSU9OIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDM7SU5URVJTRUNUSU9OIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDQ7SU5URVJTRUNUSU9OIFdJVEggTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ1O1VOSU9OIFdJVEggTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDY7VU5JT04gQUJPVkUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0NztJTlRFUlNFQ1RJT04gQUJPVkUgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ4O1VOSU9OIEFCT1ZFIEJBUiBBQk9WRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ5O0lOVEVSU0VDVElPTiBBQk9WRSBCQVIgQUJPVkUgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRBO1VOSU9OIEJFU0lERSBBTkQgSk9JTkVEIFdJVEggVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRCO0lOVEVSU0VDVElPTiBCRVNJREUgQU5EIEpPSU5FRCBXSVRIIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEM7Q0xPU0VEIFVOSU9OIFdJVEggU0VSSUZTO1NtOzA7T047Ozs7O047Ozs7OworMkE0RDtDTE9TRUQgSU5URVJTRUNUSU9OIFdJVEggU0VSSUZTO1NtOzA7T047Ozs7O047Ozs7OworMkE0RTtET1VCTEUgU1FVQVJFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEY7RE9VQkxFIFNRVUFSRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNTA7Q0xPU0VEIFVOSU9OIFdJVEggU0VSSUZTIEFORCBTTUFTSCBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkE1MTtMT0dJQ0FMIEFORCBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNTI7TE9HSUNBTCBPUiBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNTM7RE9VQkxFIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE1NDtET1VCTEUgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNTU7VFdPIElOVEVSU0VDVElORyBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzJBNTY7VFdPIElOVEVSU0VDVElORyBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMkE1NztTTE9QSU5HIExBUkdFIE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkE1ODtTTE9QSU5HIExBUkdFIEFORDtTbTswO09OOzs7OztZOzs7OzsKKzJBNTk7TE9HSUNBTCBPUiBPVkVSTEFQUElORyBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzJBNUE7TE9HSUNBTCBBTkQgV0lUSCBNSURETEUgU1RFTTtTbTswO09OOzs7OztOOzs7OzsKKzJBNUI7TE9HSUNBTCBPUiBXSVRIIE1JRERMRSBTVEVNO1NtOzA7T047Ozs7O047Ozs7OworMkE1QztMT0dJQ0FMIEFORCBXSVRIIEhPUklaT05UQUwgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzJBNUQ7TE9HSUNBTCBPUiBXSVRIIEhPUklaT05UQUwgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzJBNUU7TE9HSUNBTCBBTkQgV0lUSCBET1VCTEUgT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNUY7TE9HSUNBTCBBTkQgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjA7TE9HSUNBTCBBTkQgV0lUSCBET1VCTEUgVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTYxO1NNQUxMIFZFRSBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2MjtMT0dJQ0FMIE9SIFdJVEggRE9VQkxFIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTYzO0xPR0lDQUwgT1IgV0lUSCBET1VCTEUgVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTY0O1ogTk9UQVRJT04gRE9NQUlOIEFOVElSRVNUUklDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBNjU7WiBOT1RBVElPTiBSQU5HRSBBTlRJUkVTVFJJQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTY2O0VRVUFMUyBTSUdOIFdJVEggRE9UIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkE2NztJREVOVElDQUwgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTY4O1RSSVBMRSBIT1JJWk9OVEFMIEJBUiBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTY5O1RSSVBMRSBIT1JJWk9OVEFMIEJBUiBXSVRIIFRSSVBMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTZBO1RJTERFIE9QRVJBVE9SIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2QjtUSUxERSBPUEVSQVRPUiBXSVRIIFJJU0lORyBET1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2QztTSU1JTEFSIE1JTlVTIFNJTUlMQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZEO0NPTkdSVUVOVCBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBNkU7RVFVQUxTIFdJVEggQVNURVJJU0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTZGO0FMTU9TVCBFUVVBTCBUTyBXSVRIIENJUkNVTUZMRVggQUNDRU5UO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3MDtBUFBST1hJTUFURUxZIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3MTtFUVVBTFMgU0lHTiBBQk9WRSBQTFVTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTcyO1BMVVMgU0lHTiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNzM7RVFVQUxTIFNJR04gQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTc0O0RPVUJMRSBDT0xPTiBFUVVBTDtTbTswO09OOzxjb21wYXQ+IDAwM0EgMDAzQSAwMDNEOzs7O1k7Ozs7OworMkE3NTtUV08gQ09OU0VDVVRJVkUgRVFVQUxTIFNJR05TO1NtOzA7T047PGNvbXBhdD4gMDAzRCAwMDNEOzs7O047Ozs7OworMkE3NjtUSFJFRSBDT05TRUNVVElWRSBFUVVBTFMgU0lHTlM7U207MDtPTjs8Y29tcGF0PiAwMDNEIDAwM0QgMDAzRDs7OztOOzs7OzsKKzJBNzc7RVFVQUxTIFNJR04gV0lUSCBUV08gRE9UUyBBQk9WRSBBTkQgVFdPIERPVFMgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTc4O0VRVUlWQUxFTlQgV0lUSCBGT1VSIERPVFMgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTc5O0xFU1MtVEhBTiBXSVRIIENJUkNMRSBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdBO0dSRUFURVItVEhBTiBXSVRIIENJUkNMRSBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdCO0xFU1MtVEhBTiBXSVRIIFFVRVNUSU9OIE1BUksgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdDO0dSRUFURVItVEhBTiBXSVRIIFFVRVNUSU9OIE1BUksgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdEO0xFU1MtVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3RTtHUkVBVEVSLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBN0Y7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4MDtHUkVBVEVSLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgxO0xFU1MtVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4MjtHUkVBVEVSLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBODM7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkUgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg0O0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg1O0xFU1MtVEhBTiBPUiBBUFBST1hJTUFURTtTbTswO09OOzs7OztZOzs7OzsKKzJBODY7R1JFQVRFUi1USEFOIE9SIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4NztMRVNTLVRIQU4gQU5EIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBODg7R1JFQVRFUi1USEFOIEFORCBTSU5HTEUtTElORSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg5O0xFU1MtVEhBTiBBTkQgTk9UIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4QTtHUkVBVEVSLVRIQU4gQU5EIE5PVCBBUFBST1hJTUFURTtTbTswO09OOzs7OztZOzs7OzsKKzJBOEI7TEVTUy1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMIEFCT1ZFIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOEM7R1JFQVRFUi1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMIEFCT1ZFIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOEQ7TEVTUy1USEFOIEFCT1ZFIFNJTUlMQVIgT1IgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThFO0dSRUFURVItVEhBTiBBQk9WRSBTSU1JTEFSIE9SIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4RjtMRVNTLVRIQU4gQUJPVkUgU0lNSUxBUiBBQk9WRSBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTkwO0dSRUFURVItVEhBTiBBQk9WRSBTSU1JTEFSIEFCT1ZFIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTE7TEVTUy1USEFOIEFCT1ZFIEdSRUFURVItVEhBTiBBQk9WRSBET1VCTEUtTElORSBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOTI7R1JFQVRFUi1USEFOIEFCT1ZFIExFU1MtVEhBTiBBQk9WRSBET1VCTEUtTElORSBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOTM7TEVTUy1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUwgQUJPVkUgR1JFQVRFUi1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk0O0dSRUFURVItVEhBTiBBQk9WRSBTTEFOVEVEIEVRVUFMIEFCT1ZFIExFU1MtVEhBTiBBQk9WRSBTTEFOVEVEIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5NTtTTEFOVEVEIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTY7U0xBTlRFRCBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk3O1NMQU5URUQgRVFVQUwgVE8gT1IgTEVTUy1USEFOIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBOTg7U0xBTlRFRCBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU4gV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5OTtET1VCTEUtTElORSBFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlBO0RPVUJMRS1MSU5FIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUI7RE9VQkxFLUxJTkUgU0xBTlRFRCBFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlDO0RPVUJMRS1MSU5FIFNMQU5URUQgRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5RDtTSU1JTEFSIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUU7U0lNSUxBUiBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlGO1NJTUlMQVIgQUJPVkUgTEVTUy1USEFOIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBMDtTSU1JTEFSIEFCT1ZFIEdSRUFURVItVEhBTiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTE7RE9VQkxFIE5FU1RFRCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUEyO0RPVUJMRSBORVNURUQgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBMztET1VCTEUgTkVTVEVEIExFU1MtVEhBTiBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBNDtHUkVBVEVSLVRIQU4gT1ZFUkxBUFBJTkcgTEVTUy1USEFOO1NtOzA7T047Ozs7O047Ozs7OworMkFBNTtHUkVBVEVSLVRIQU4gQkVTSURFIExFU1MtVEhBTjtTbTswO09OOzs7OztOOzs7OzsKKzJBQTY7TEVTUy1USEFOIENMT1NFRCBCWSBDVVJWRTtTbTswO09OOzs7OztZOzs7OzsKKzJBQTc7R1JFQVRFUi1USEFOIENMT1NFRCBCWSBDVVJWRTtTbTswO09OOzs7OztZOzs7OzsKKzJBQTg7TEVTUy1USEFOIENMT1NFRCBCWSBDVVJWRSBBQk9WRSBTTEFOVEVEIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBOTtHUkVBVEVSLVRIQU4gQ0xPU0VEIEJZIENVUlZFIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUFBO1NNQUxMRVIgVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQUI7TEFSR0VSIFRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUFDO1NNQUxMRVIgVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQUQ7TEFSR0VSIFRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUFFO0VRVUFMUyBTSUdOIFdJVEggQlVNUFkgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUFGO1BSRUNFREVTIEFCT1ZFIFNJTkdMRS1MSU5FIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCMDtTVUNDRUVEUyBBQk9WRSBTSU5HTEUtTElORSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQjE7UFJFQ0VERVMgQUJPVkUgU0lOR0xFLUxJTkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCMjtTVUNDRUVEUyBBQk9WRSBTSU5HTEUtTElORSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIzO1BSRUNFREVTIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCNDtTVUNDRUVEUyBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQjU7UFJFQ0VERVMgQUJPVkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCNjtTVUNDRUVEUyBBQk9WRSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI3O1BSRUNFREVTIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjg7U1VDQ0VFRFMgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCOTtQUkVDRURFUyBBQk9WRSBOT1QgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCQTtTVUNDRUVEUyBBQk9WRSBOT1QgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCQjtET1VCTEUgUFJFQ0VERVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJDO0RPVUJMRSBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzJBQkQ7U1VCU0VUIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCRTtTVVBFUlNFVCBXSVRIIERPVDtTbTswO09OOzs7OztZOzs7OzsKKzJBQkY7U1VCU0VUIFdJVEggUExVUyBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMDtTVVBFUlNFVCBXSVRIIFBMVVMgU0lHTiBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBQzE7U1VCU0VUIFdJVEggTVVMVElQTElDQVRJT04gU0lHTiBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBQzI7U1VQRVJTRVQgV0lUSCBNVUxUSVBMSUNBVElPTiBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMztTVUJTRVQgT0YgT1IgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM0O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDNTtTVUJTRVQgT0YgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM2O1NVUEVSU0VUIE9GIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDNztTVUJTRVQgT0YgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM4O1NVUEVSU0VUIE9GIEFCT1ZFIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDOTtTVUJTRVQgT0YgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDQTtTVVBFUlNFVCBPRiBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNCO1NVQlNFVCBPRiBBQk9WRSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNDO1NVUEVSU0VUIE9GIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0Q7U1FVQVJFIExFRlQgT1BFTiBCT1ggT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNFO1NRVUFSRSBSSUdIVCBPUEVOIEJPWCBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQ0Y7Q0xPU0VEIFNVQlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDA7Q0xPU0VEIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFEMTtDTE9TRUQgU1VCU0VUIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFEMjtDTE9TRUQgU1VQRVJTRVQgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQzO1NVQlNFVCBBQk9WRSBTVVBFUlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDQ7U1VQRVJTRVQgQUJPVkUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENTtTVUJTRVQgQUJPVkUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENjtTVVBFUlNFVCBBQk9WRSBTVVBFUlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzJBRDc7U1VQRVJTRVQgQkVTSURFIFNVQlNFVDtTbTswO09OOzs7OztOOzs7OzsKKzJBRDg7U1VQRVJTRVQgQkVTSURFIEFORCBKT0lORUQgQlkgREFTSCBXSVRIIFNVQlNFVDtTbTswO09OOzs7OztOOzs7OzsKKzJBRDk7RUxFTUVOVCBPRiBPUEVOSU5HIERPV05XQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzJBREE7UElUQ0hGT1JLIFdJVEggVEVFIFRPUDtTbTswO09OOzs7OztOOzs7OzsKKzJBREI7VFJBTlNWRVJTQUwgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkFEQztGT1JLSU5HO1NtOzA7T047MkFERCAwMzM4Ozs7O1k7O25vdCBpbmRlcGVuZGVudDs7OworMkFERDtOT05GT1JLSU5HO1NtOzA7T047Ozs7O047O2luZGVwZW5kZW50Ozs7CisyQURFO1NIT1JUIExFRlQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzJBREY7U0hPUlQgRE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMkFFMDtTSE9SVCBVUCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMkFFMTtQRVJQRU5ESUNVTEFSIFdJVEggUztTbTswO09OOzs7OztOOzs7OzsKKzJBRTI7VkVSVElDQUwgQkFSIFRSSVBMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUUzO0RPVUJMRSBWRVJUSUNBTCBCQVIgTEVGVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUU0O1ZFUlRJQ0FMIEJBUiBET1VCTEUgTEVGVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUU1O0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIExFRlQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFNjtMT05HIERBU0ggRlJPTSBMRUZUIE1FTUJFUiBPRiBET1VCTEUgVkVSVElDQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUU3O1NIT1JUIERPV04gVEFDSyBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUU4O1NIT1JUIFVQIFRBQ0sgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRTk7U0hPUlQgVVAgVEFDSyBBQk9WRSBTSE9SVCBET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUVBO0RPVUJMRSBET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUVCO0RPVUJMRSBVUCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMkFFQztET1VCTEUgU1RST0tFIE5PVCBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFRDtSRVZFUlNFRCBET1VCTEUgU1RST0tFIE5PVCBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFRTtET0VTIE5PVCBESVZJREUgV0lUSCBSRVZFUlNFRCBORUdBVElPTiBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzJBRUY7VkVSVElDQUwgTElORSBXSVRIIENJUkNMRSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBRjA7VkVSVElDQUwgTElORSBXSVRIIENJUkNMRSBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBRjE7RE9XTiBUQUNLIFdJVEggQ0lSQ0xFIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkFGMjtQQVJBTExFTCBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMkFGMztQQVJBTExFTCBXSVRIIFRJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGNDtUUklQTEUgVkVSVElDQUwgQkFSIEJJTkFSWSBSRUxBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBRjU7VFJJUExFIFZFUlRJQ0FMIEJBUiBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMkFGNjtUUklQTEUgQ09MT04gT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUY3O1RSSVBMRSBORVNURUQgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGODtUUklQTEUgTkVTVEVEIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRjk7RE9VQkxFLUxJTkUgU0xBTlRFRCBMRVNTLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZBO0RPVUJMRS1MSU5FIFNMQU5URUQgR1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGQjtUUklQTEUgU09MSURVUyBCSU5BUlkgUkVMQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZDO0xBUkdFIFRSSVBMRSBWRVJUSUNBTCBCQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUZEO0RPVUJMRSBTT0xJRFVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGRTtXSElURSBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUZGO04tQVJZIFdISVRFIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJCMDA7Tk9SVEggRUFTVCBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDE7Tk9SVEggV0VTVCBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDI7U09VVEggRUFTVCBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDM7U09VVEggV0VTVCBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDQ7TEVGVCBSSUdIVCBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDU7TEVGVFdBUkRTIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwNjtVUFdBUkRTIEJMQUNLIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwNztET1dOV0FSRFMgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA4O05PUlRIIEVBU1QgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA5O05PUlRIIFdFU1QgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBBO1NPVVRIIEVBU1QgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBCO1NPVVRIIFdFU1QgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBDO0xFRlQgUklHSFQgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBEO1VQIERPV04gQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBFO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUSVAgRE9XTldBUkRTO1NvOzA7T047Ozs7O047Ozs7OworMkIwRjtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVElQIFVQV0FSRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjEwO0xFRlRXQVJEUyBBUlJPVyBXSVRIIFRJUCBET1dOV0FSRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjExO0xFRlRXQVJEUyBBUlJPVyBXSVRIIFRJUCBVUFdBUkRTO1NvOzA7T047Ozs7O047Ozs7OworMkIxMjtTUVVBUkUgV0lUSCBUT1AgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJCMTM7U1FVQVJFIFdJVEggQk9UVE9NIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE0O1NRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE1O1NRVUFSRSBXSVRIIExPV0VSIExFRlQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJCMTY7RElBTU9ORCBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJCMTc7RElBTU9ORCBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjE4O0RJQU1PTkQgV0lUSCBUT1AgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJCMTk7RElBTU9ORCBXSVRIIEJPVFRPTSBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMkIxQTtET1RURUQgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMkIyMDtXSElURSBQRU5UQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJCMjE7V0hJVEUgSEVYQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJCMjI7QkxBQ0sgSEVYQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJCMjM7SE9SSVpPTlRBTCBCTEFDSyBIRVhBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkMwMDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEFaVTtMdTswO0w7Ozs7O047Ozs7MkMzMDsKKzJDMDE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBCVUtZO0x1OzA7TDs7Ozs7Tjs7OzsyQzMxOworMkMwMjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFZFREU7THU7MDtMOzs7OztOOzs7OzJDMzI7CisyQzAzO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgR0xBR09MSTtMdTswO0w7Ozs7O047Ozs7MkMzMzsKKzJDMDQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBET0JSTztMdTswO0w7Ozs7O047Ozs7MkMzNDsKKzJDMDU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZRVNUVTtMdTswO0w7Ozs7O047Ozs7MkMzNTsKKzJDMDY7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBaSElWRVRFO0x1OzA7TDs7Ozs7Tjs7OzsyQzM2OworMkMwNztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIERaRUxPO0x1OzA7TDs7Ozs7Tjs7OzsyQzM3OworMkMwODtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFpFTUxKQTtMdTswO0w7Ozs7O047Ozs7MkMzODsKKzJDMDk7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJWkhFO0x1OzA7TDs7Ozs7Tjs7OzsyQzM5OworMkMwQTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElOSVRJQUwgSVpIRTtMdTswO0w7Ozs7O047Ozs7MkMzQTsKKzJDMEI7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7Tjs7OzsyQzNCOworMkMwQztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIERKRVJWSTtMdTswO0w7Ozs7O047Ozs7MkMzQzsKKzJDMEQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBLQUtPO0x1OzA7TDs7Ozs7Tjs7OzsyQzNEOworMkMwRTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIExKVURJSkU7THU7MDtMOzs7OztOOzs7OzJDM0U7CisyQzBGO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgTVlTTElURTtMdTswO0w7Ozs7O047Ozs7MkMzRjsKKzJDMTA7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBOQVNISTtMdTswO0w7Ozs7O047Ozs7MkM0MDsKKzJDMTE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBPTlU7THU7MDtMOzs7OztOOzs7OzJDNDE7CisyQzEyO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgUE9LT0pJO0x1OzA7TDs7Ozs7Tjs7OzsyQzQyOworMkMxMztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFJJVFNJO0x1OzA7TDs7Ozs7Tjs7OzsyQzQzOworMkMxNDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFNMT1ZPO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ0OworMkMxNTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFRWUklETztMdTswO0w7Ozs7O047Ozs7MkM0NTsKKzJDMTY7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBVS1U7THU7MDtMOzs7OztOOzs7OzJDNDY7CisyQzE3O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgRlJJVFU7THU7MDtMOzs7OztOOzs7OzJDNDc7CisyQzE4O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSEVSVTtMdTswO0w7Ozs7O047Ozs7MkM0ODsKKzJDMTk7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBPVFU7THU7MDtMOzs7OztOOzs7OzJDNDk7CisyQzFBO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgUEU7THU7MDtMOzs7OztOOzs7OzJDNEE7CisyQzFCO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU0hUQTtMdTswO0w7Ozs7O047Ozs7MkM0QjsKKzJDMUM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBUU0k7THU7MDtMOzs7OztOOzs7OzJDNEM7CisyQzFEO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgQ0hSSVZJO0x1OzA7TDs7Ozs7Tjs7OzsyQzREOworMkMxRTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFNIQTtMdTswO0w7Ozs7O047Ozs7MkM0RTsKKzJDMUY7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZRVJVO0x1OzA7TDs7Ozs7Tjs7OzsyQzRGOworMkMyMDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFlFUkk7THU7MDtMOzs7OztOOzs7OzJDNTA7CisyQzIxO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWUFUSTtMdTswO0w7Ozs7O047Ozs7MkM1MTsKKzJDMjI7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTUElERVJZIEhBO0x1OzA7TDs7Ozs7Tjs7OzsyQzUyOworMkMyMztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFlVO0x1OzA7TDs7Ozs7Tjs7OzsyQzUzOworMkMyNDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFNNQUxMIFlVUztMdTswO0w7Ozs7O047Ozs7MkM1NDsKKzJDMjU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTTUFMTCBZVVMgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzsyQzU1OworMkMyNjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFlPO0x1OzA7TDs7Ozs7Tjs7OzsyQzU2OworMkMyNztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElPVEFURUQgU01BTEwgWVVTO0x1OzA7TDs7Ozs7Tjs7OzsyQzU3OworMkMyODtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzJDNTg7CisyQzI5O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSU9UQVRFRCBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzsyQzU5OworMkMyQTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEZJVEE7THU7MDtMOzs7OztOOzs7OzJDNUE7CisyQzJCO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQTtMdTswO0w7Ozs7O047Ozs7MkM1QjsKKzJDMkM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTSFRBUElDO0x1OzA7TDs7Ozs7Tjs7OzsyQzVDOworMkMyRDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFRST0tVVEFTVEkgQTtMdTswO0w7Ozs7O047Ozs7MkM1RDsKKzJDMkU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBMQVRJTkFURSBNWVNMSVRFO0x1OzA7TDs7Ozs7Tjs7OzsyQzVFOworMkMzMDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBBWlU7TGw7MDtMOzs7OztOOzs7MkMwMDs7MkMwMAorMkMzMTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBCVUtZO0xsOzA7TDs7Ozs7Tjs7OzJDMDE7OzJDMDEKKzJDMzI7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVkVERTtMbDswO0w7Ozs7O047OzsyQzAyOzsyQzAyCisyQzMzO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIEdMQUdPTEk7TGw7MDtMOzs7OztOOzs7MkMwMzs7MkMwMworMkMzNDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBET0JSTztMbDswO0w7Ozs7O047OzsyQzA0OzsyQzA0CisyQzM1O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlFU1RVO0xsOzA7TDs7Ozs7Tjs7OzJDMDU7OzJDMDUKKzJDMzY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWkhJVkVURTtMbDswO0w7Ozs7O047OzsyQzA2OzsyQzA2CisyQzM3O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIERaRUxPO0xsOzA7TDs7Ozs7Tjs7OzJDMDc7OzJDMDcKKzJDMzg7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWkVNTEpBO0xsOzA7TDs7Ozs7Tjs7OzJDMDg7OzJDMDgKKzJDMzk7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSVpIRTtMbDswO0w7Ozs7O047OzsyQzA5OzsyQzA5CisyQzNBO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIElOSVRJQUwgSVpIRTtMbDswO0w7Ozs7O047OzsyQzBBOzsyQzBBCisyQzNCO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOOzs7MkMwQjs7MkMwQgorMkMzQztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBESkVSVkk7TGw7MDtMOzs7OztOOzs7MkMwQzs7MkMwQworMkMzRDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBLQUtPO0xsOzA7TDs7Ozs7Tjs7OzJDMEQ7OzJDMEQKKzJDM0U7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgTEpVRElKRTtMbDswO0w7Ozs7O047OzsyQzBFOzsyQzBFCisyQzNGO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIE1ZU0xJVEU7TGw7MDtMOzs7OztOOzs7MkMwRjs7MkMwRgorMkM0MDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBOQVNISTtMbDswO0w7Ozs7O047OzsyQzEwOzsyQzEwCisyQzQxO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIE9OVTtMbDswO0w7Ozs7O047OzsyQzExOzsyQzExCisyQzQyO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFBPS09KSTtMbDswO0w7Ozs7O047OzsyQzEyOzsyQzEyCisyQzQzO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFJJVFNJO0xsOzA7TDs7Ozs7Tjs7OzJDMTM7OzJDMTMKKzJDNDQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU0xPVk87TGw7MDtMOzs7OztOOzs7MkMxNDs7MkMxNAorMkM0NTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBUVlJJRE87TGw7MDtMOzs7OztOOzs7MkMxNTs7MkMxNQorMkM0NjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBVS1U7TGw7MDtMOzs7OztOOzs7MkMxNjs7MkMxNgorMkM0NztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBGUklUVTtMbDswO0w7Ozs7O047OzsyQzE3OzsyQzE3CisyQzQ4O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIEhFUlU7TGw7MDtMOzs7OztOOzs7MkMxODs7MkMxOAorMkM0OTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBPVFU7TGw7MDtMOzs7OztOOzs7MkMxOTs7MkMxOQorMkM0QTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBQRTtMbDswO0w7Ozs7O047OzsyQzFBOzsyQzFBCisyQzRCO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFNIVEE7TGw7MDtMOzs7OztOOzs7MkMxQjs7MkMxQgorMkM0QztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBUU0k7TGw7MDtMOzs7OztOOzs7MkMxQzs7MkMxQworMkM0RDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBDSFJJVkk7TGw7MDtMOzs7OztOOzs7MkMxRDs7MkMxRAorMkM0RTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MkMxRTs7MkMxRQorMkM0RjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7Tjs7OzJDMUY7OzJDMUYKKzJDNTA7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWUVSSTtMbDswO0w7Ozs7O047OzsyQzIwOzsyQzIwCisyQzUxO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlBVEk7TGw7MDtMOzs7OztOOzs7MkMyMTs7MkMyMQorMkM1MjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTUElERVJZIEhBO0xsOzA7TDs7Ozs7Tjs7OzJDMjI7OzJDMjIKKzJDNTM7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWVU7TGw7MDtMOzs7OztOOzs7MkMyMzs7MkMyMworMkM1NDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTTUFMTCBZVVM7TGw7MDtMOzs7OztOOzs7MkMyNDs7MkMyNAorMkM1NTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTTUFMTCBZVVMgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzJDMjU7OzJDMjUKKzJDNTY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWU87TGw7MDtMOzs7OztOOzs7MkMyNjs7MkMyNgorMkM1NztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJT1RBVEVEIFNNQUxMIFlVUztMbDswO0w7Ozs7O047OzsyQzI3OzsyQzI3CisyQzU4O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MkMyODs7MkMyOAorMkM1OTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJT1RBVEVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MkMyOTs7MkMyOQorMkM1QTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBGSVRBO0xsOzA7TDs7Ozs7Tjs7OzJDMkE7OzJDMkEKKzJDNUI7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSVpISVRTQTtMbDswO0w7Ozs7O047OzsyQzJCOzsyQzJCCisyQzVDO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFNIVEFQSUM7TGw7MDtMOzs7OztOOzs7MkMyQzs7MkMyQworMkM1RDtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBUUk9LVVRBU1RJIEE7TGw7MDtMOzs7OztOOzs7MkMyRDs7MkMyRAorMkM1RTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBMQVRJTkFURSBNWVNMSVRFO0xsOzA7TDs7Ozs7Tjs7OzJDMkU7OzJDMkUKKzJDNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVUJMRSBCQVI7THU7MDtMOzs7OztOOzs7OzJDNjE7CisyQzYxO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9VQkxFIEJBUjtMbDswO0w7Ozs7O047OzsyQzYwOzsyQzYwCisyQzYyO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREU7THU7MDtMOzs7OztOOzs7OzAyNkI7CisyQzYzO0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzFEN0Q7CisyQzY0O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswMjdEOworMkM2NTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047OzswMjNBOzswMjNBCisyQzY2O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBR09OQUwgU1RST0tFO0xsOzA7TDs7Ozs7Tjs7OzAyM0U7OzAyM0UKKzJDNjc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Ozs7MkM2ODsKKzJDNjg7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOOzs7MkM2Nzs7MkM2NworMkM2OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7Tjs7OzsyQzZBOworMkM2QTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047OzsyQzY5OzsyQzY5CisyQzZCO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOOzs7OzJDNkM7CisyQzZDO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7Tjs7OzJDNkI7OzJDNkIKKzJDNzQ7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7Tjs7Ozs7CisyQzc1O0xBVElOIENBUElUQUwgTEVUVEVSIEhBTEYgSDtMdTswO0w7Ozs7O047Ozs7MkM3NjsKKzJDNzY7TEFUSU4gU01BTEwgTEVUVEVSIEhBTEYgSDtMbDswO0w7Ozs7O047OzsyQzc1OzsyQzc1CisyQzc3O0xBVElOIFNNQUxMIExFVFRFUiBUQUlMTEVTUyBQSEk7TGw7MDtMOzs7OztOOzs7OzsKKzJDODA7Q09QVElDIENBUElUQUwgTEVUVEVSIEFMRkE7THU7MDtMOzs7OztOOzs7OzJDODE7CisyQzgxO0NPUFRJQyBTTUFMTCBMRVRURVIgQUxGQTtMbDswO0w7Ozs7O047OzsyQzgwOzsyQzgwCisyQzgyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBWSURBO0x1OzA7TDs7Ozs7Tjs7OzsyQzgzOworMkM4MztDT1BUSUMgU01BTEwgTEVUVEVSIFZJREE7TGw7MDtMOzs7OztOOzs7MkM4Mjs7MkM4MgorMkM4NDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzJDODU7CisyQzg1O0NPUFRJQyBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MkM4NDs7MkM4NAorMkM4NjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgREFMREE7THU7MDtMOzs7OztOOzs7OzJDODc7CisyQzg3O0NPUFRJQyBTTUFMTCBMRVRURVIgREFMREE7TGw7MDtMOzs7OztOOzs7MkM4Njs7MkM4NgorMkM4ODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRUlFO0x1OzA7TDs7Ozs7Tjs7OzsyQzg5OworMkM4OTtDT1BUSUMgU01BTEwgTEVUVEVSIEVJRTtMbDswO0w7Ozs7O047OzsyQzg4OzsyQzg4CisyQzhBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTT1U7THU7MDtMOzs7OztOOzs7OzJDOEI7CisyQzhCO0NPUFRJQyBTTUFMTCBMRVRURVIgU09VO0xsOzA7TDs7Ozs7Tjs7OzJDOEE7OzJDOEEKKzJDOEM7Q09QVElDIENBUElUQUwgTEVUVEVSIFpBVEE7THU7MDtMOzs7OztOOzs7OzJDOEQ7CisyQzhEO0NPUFRJQyBTTUFMTCBMRVRURVIgWkFUQTtMbDswO0w7Ozs7O047OzsyQzhDOzsyQzhDCisyQzhFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBIQVRFO0x1OzA7TDs7Ozs7Tjs7OzsyQzhGOworMkM4RjtDT1BUSUMgU01BTEwgTEVUVEVSIEhBVEU7TGw7MDtMOzs7OztOOzs7MkM4RTs7MkM4RQorMkM5MDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgVEhFVEhFO0x1OzA7TDs7Ozs7Tjs7OzsyQzkxOworMkM5MTtDT1BUSUMgU01BTEwgTEVUVEVSIFRIRVRIRTtMbDswO0w7Ozs7O047OzsyQzkwOzsyQzkwCisyQzkyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBJQVVEQTtMdTswO0w7Ozs7O047Ozs7MkM5MzsKKzJDOTM7Q09QVElDIFNNQUxMIExFVFRFUiBJQVVEQTtMbDswO0w7Ozs7O047OzsyQzkyOzsyQzkyCisyQzk0O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBLQVBBO0x1OzA7TDs7Ozs7Tjs7OzsyQzk1OworMkM5NTtDT1BUSUMgU01BTEwgTEVUVEVSIEtBUEE7TGw7MDtMOzs7OztOOzs7MkM5NDs7MkM5NAorMkM5NjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTEFVTEE7THU7MDtMOzs7OztOOzs7OzJDOTc7CisyQzk3O0NPUFRJQyBTTUFMTCBMRVRURVIgTEFVTEE7TGw7MDtMOzs7OztOOzs7MkM5Njs7MkM5NgorMkM5ODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTUk7THU7MDtMOzs7OztOOzs7OzJDOTk7CisyQzk5O0NPUFRJQyBTTUFMTCBMRVRURVIgTUk7TGw7MDtMOzs7OztOOzs7MkM5ODs7MkM5OAorMkM5QTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTkk7THU7MDtMOzs7OztOOzs7OzJDOUI7CisyQzlCO0NPUFRJQyBTTUFMTCBMRVRURVIgTkk7TGw7MDtMOzs7OztOOzs7MkM5QTs7MkM5QQorMkM5QztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS1NJO0x1OzA7TDs7Ozs7Tjs7OzsyQzlEOworMkM5RDtDT1BUSUMgU01BTEwgTEVUVEVSIEtTSTtMbDswO0w7Ozs7O047OzsyQzlDOzsyQzlDCisyQzlFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzsyQzlGOworMkM5RjtDT1BUSUMgU01BTEwgTEVUVEVSIE87TGw7MDtMOzs7OztOOzs7MkM5RTs7MkM5RQorMkNBMDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgUEk7THU7MDtMOzs7OztOOzs7OzJDQTE7CisyQ0ExO0NPUFRJQyBTTUFMTCBMRVRURVIgUEk7TGw7MDtMOzs7OztOOzs7MkNBMDs7MkNBMAorMkNBMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgUk87THU7MDtMOzs7OztOOzs7OzJDQTM7CisyQ0EzO0NPUFRJQyBTTUFMTCBMRVRURVIgUk87TGw7MDtMOzs7OztOOzs7MkNBMjs7MkNBMgorMkNBNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0lNQTtMdTswO0w7Ozs7O047Ozs7MkNBNTsKKzJDQTU7Q09QVElDIFNNQUxMIExFVFRFUiBTSU1BO0xsOzA7TDs7Ozs7Tjs7OzJDQTQ7OzJDQTQKKzJDQTY7Q09QVElDIENBUElUQUwgTEVUVEVSIFRBVTtMdTswO0w7Ozs7O047Ozs7MkNBNzsKKzJDQTc7Q09QVElDIFNNQUxMIExFVFRFUiBUQVU7TGw7MDtMOzs7OztOOzs7MkNBNjs7MkNBNgorMkNBODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgVUE7THU7MDtMOzs7OztOOzs7OzJDQTk7CisyQ0E5O0NPUFRJQyBTTUFMTCBMRVRURVIgVUE7TGw7MDtMOzs7OztOOzs7MkNBODs7MkNBOAorMkNBQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkk7THU7MDtMOzs7OztOOzs7OzJDQUI7CisyQ0FCO0NPUFRJQyBTTUFMTCBMRVRURVIgRkk7TGw7MDtMOzs7OztOOzs7MkNBQTs7MkNBQQorMkNBQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0FEOworMkNBRDtDT1BUSUMgU01BTEwgTEVUVEVSIEtISTtMbDswO0w7Ozs7O047OzsyQ0FDOzsyQ0FDCisyQ0FFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzJDQUY7CisyQ0FGO0NPUFRJQyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzJDQUU7OzJDQUUKKzJDQjA7Q09QVElDIENBUElUQUwgTEVUVEVSIE9PVTtMdTswO0w7Ozs7O047Ozs7MkNCMTsKKzJDQjE7Q09QVElDIFNNQUxMIExFVFRFUiBPT1U7TGw7MDtMOzs7OztOOzs7MkNCMDs7MkNCMAorMkNCMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRElBTEVDVC1QIEFMRUY7THU7MDtMOzs7OztOOzs7OzJDQjM7CisyQ0IzO0NPUFRJQyBTTUFMTCBMRVRURVIgRElBTEVDVC1QIEFMRUY7TGw7MDtMOzs7OztOOzs7MkNCMjs7MkNCMgorMkNCNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBBSU47THU7MDtMOzs7OztOOzs7OzJDQjU7CisyQ0I1O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBBSU47TGw7MDtMOzs7OztOOzs7MkNCNDs7MkNCNAorMkNCNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgQ1JZUFRPR1JBTU1JQyBFSUU7THU7MDtMOzs7OztOOzs7OzJDQjc7CisyQ0I3O0NPUFRJQyBTTUFMTCBMRVRURVIgQ1JZUFRPR1JBTU1JQyBFSUU7TGw7MDtMOzs7OztOOzs7MkNCNjs7MkNCNgorMkNCODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRElBTEVDVC1QIEtBUEE7THU7MDtMOzs7OztOOzs7OzJDQjk7CisyQ0I5O0NPUFRJQyBTTUFMTCBMRVRURVIgRElBTEVDVC1QIEtBUEE7TGw7MDtMOzs7OztOOzs7MkNCODs7MkNCOAorMkNCQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRElBTEVDVC1QIE5JO0x1OzA7TDs7Ozs7Tjs7OzsyQ0JCOworMkNCQjtDT1BUSUMgU01BTEwgTEVUVEVSIERJQUxFQ1QtUCBOSTtMbDswO0w7Ozs7O047OzsyQ0JBOzsyQ0JBCisyQ0JDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBDUllQVE9HUkFNTUlDIE5JO0x1OzA7TDs7Ozs7Tjs7OzsyQ0JEOworMkNCRDtDT1BUSUMgU01BTEwgTEVUVEVSIENSWVBUT0dSQU1NSUMgTkk7TGw7MDtMOzs7OztOOzs7MkNCQzs7MkNCQworMkNCRTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBPT1U7THU7MDtMOzs7OztOOzs7OzJDQkY7CisyQ0JGO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBPT1U7TGw7MDtMOzs7OztOOzs7MkNCRTs7MkNCRQorMkNDMDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0FNUEk7THU7MDtMOzs7OztOOzs7OzJDQzE7CisyQ0MxO0NPUFRJQyBTTUFMTCBMRVRURVIgU0FNUEk7TGw7MDtMOzs7OztOOzs7MkNDMDs7MkNDMAorMkNDMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgQ1JPU1NFRCBTSEVJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0MzOworMkNDMztDT1BUSUMgU01BTEwgTEVUVEVSIENST1NTRUQgU0hFSTtMbDswO0w7Ozs7O047OzsyQ0MyOzsyQ0MyCisyQ0M0O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIFNIRUk7THU7MDtMOzs7OztOOzs7OzJDQzU7CisyQ0M1O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBTSEVJO0xsOzA7TDs7Ozs7Tjs7OzJDQzQ7OzJDQzQKKzJDQzY7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgRVNIO0x1OzA7TDs7Ozs7Tjs7OzsyQ0M3OworMkNDNztDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgRVNIO0xsOzA7TDs7Ozs7Tjs7OzJDQzY7OzJDQzYKKzJDQzg7Q09QVElDIENBUElUQUwgTEVUVEVSIEFLSE1JTUlDIEtIRUk7THU7MDtMOzs7OztOOzs7OzJDQzk7CisyQ0M5O0NPUFRJQyBTTUFMTCBMRVRURVIgQUtITUlNSUMgS0hFSTtMbDswO0w7Ozs7O047OzsyQ0M4OzsyQ0M4CisyQ0NBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBESUFMRUNULVAgSE9SSTtMdTswO0w7Ozs7O047Ozs7MkNDQjsKKzJDQ0I7Q09QVElDIFNNQUxMIExFVFRFUiBESUFMRUNULVAgSE9SSTtMbDswO0w7Ozs7O047OzsyQ0NBOzsyQ0NBCisyQ0NDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEhPUkk7THU7MDtMOzs7OztOOzs7OzJDQ0Q7CisyQ0NEO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIT1JJO0xsOzA7TDs7Ozs7Tjs7OzJDQ0M7OzJDQ0MKKzJDQ0U7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgSEE7THU7MDtMOzs7OztOOzs7OzJDQ0Y7CisyQ0NGO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIQTtMbDswO0w7Ozs7O047OzsyQ0NFOzsyQ0NFCisyQ0QwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBMLVNIQVBFRCBIQTtMdTswO0w7Ozs7O047Ozs7MkNEMTsKKzJDRDE7Q09QVElDIFNNQUxMIExFVFRFUiBMLVNIQVBFRCBIQTtMbDswO0w7Ozs7O047OzsyQ0QwOzsyQ0QwCisyQ0QyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEhFSTtMdTswO0w7Ozs7O047Ozs7MkNEMzsKKzJDRDM7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIEhFSTtMbDswO0w7Ozs7O047OzsyQ0QyOzsyQ0QyCisyQ0Q0O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEhBVDtMdTswO0w7Ozs7O047Ozs7MkNENTsKKzJDRDU7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIEhBVDtMbDswO0w7Ozs7O047OzsyQ0Q0OzsyQ0Q0CisyQ0Q2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEdBTkdJQTtMdTswO0w7Ozs7O047Ozs7MkNENzsKKzJDRDc7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIEdBTkdJQTtMbDswO0w7Ozs7O047OzsyQ0Q2OzsyQ0Q2CisyQ0Q4O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIERKQTtMdTswO0w7Ozs7O047Ozs7MkNEOTsKKzJDRDk7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIERKQTtMbDswO0w7Ozs7O047OzsyQ0Q4OzsyQ0Q4CisyQ0RBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIFNISU1BO0x1OzA7TDs7Ozs7Tjs7OzsyQ0RCOworMkNEQjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgU0hJTUE7TGw7MDtMOzs7OztOOzs7MkNEQTs7MkNEQQorMkNEQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIE5VQklBTiBTSElNQTtMdTswO0w7Ozs7O047Ozs7MkNERDsKKzJDREQ7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIFNISU1BO0xsOzA7TDs7Ozs7Tjs7OzJDREM7OzJDREMKKzJDREU7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBOVUJJQU4gTkdJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0RGOworMkNERjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBOVUJJQU4gTkdJO0xsOzA7TDs7Ozs7Tjs7OzJDREU7OzJDREUKKzJDRTA7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBOVUJJQU4gTllJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0UxOworMkNFMTtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBOVUJJQU4gTllJO0xsOzA7TDs7Ozs7Tjs7OzJDRTA7OzJDRTAKKzJDRTI7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBOVUJJQU4gV0FVO0x1OzA7TDs7Ozs7Tjs7OzsyQ0UzOworMkNFMztDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBOVUJJQU4gV0FVO0xsOzA7TDs7Ozs7Tjs7OzJDRTI7OzJDRTIKKzJDRTQ7Q09QVElDIFNZTUJPTCBLQUk7TGw7MDtMOzs7OztOOzs7OzsKKzJDRTU7Q09QVElDIFNZTUJPTCBNSSBSTztTbzswO09OOzs7OztOOzs7OzsKKzJDRTY7Q09QVElDIFNZTUJPTCBQSSBSTztTbzswO09OOzs7OztOOzs7OzsKKzJDRTc7Q09QVElDIFNZTUJPTCBTVEFVUk9TO1NvOzA7T047Ozs7O047Ozs7OworMkNFODtDT1BUSUMgU1lNQk9MIFRBVSBSTztTbzswO09OOzs7OztOOzs7OzsKKzJDRTk7Q09QVElDIFNZTUJPTCBLSEkgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0VBO0NPUFRJQyBTWU1CT0wgU0hJTUEgU0lNQTtTbzswO09OOzs7OztOOzs7OzsKKzJDRjk7Q09QVElDIE9MRCBOVUJJQU4gRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMkNGQTtDT1BUSUMgT0xEIE5VQklBTiBESVJFQ1QgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzJDRkI7Q09QVElDIE9MRCBOVUJJQU4gSU5ESVJFQ1QgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzJDRkM7Q09QVElDIE9MRCBOVUJJQU4gVkVSU0UgRElWSURFUjtQbzswO09OOzs7OztOOzs7OzsKKzJDRkQ7Q09QVElDIEZSQUNUSU9OIE9ORSBIQUxGO05vOzA7T047Ozs7MS8yO047Ozs7OworMkNGRTtDT1BUSUMgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMkNGRjtDT1BUSUMgTU9SUEhPTE9HSUNBTCBESVZJREVSO1BvOzA7T047Ozs7O047Ozs7OworMkQwMDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEEwOzsxMEEwCisyRDAxO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBCQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEExOzsxMEExCisyRDAyO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEEyOzsxMEEyCisyRDAzO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBET047TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEEzOzsxMEEzCisyRDA0O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTQ7OzEwQTQKKzJEMDU7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFZJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTU7OzEwQTUKKzJEMDY7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpFTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTY7OzEwQTYKKzJEMDc7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTc7OzEwQTcKKzJEMDg7R0VPUkdJQU4gU01BTEwgTEVUVEVSIElOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBODs7MTBBOAorMkQwOTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0FOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBOTs7MTBBOQorMkQwQTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTEFTO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBQTs7MTBBQQorMkQwQjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTUFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBQjs7MTBBQgorMkQwQztHRU9SR0lBTiBTTUFMTCBMRVRURVIgTkFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBQzs7MTBBQworMkQwRDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgT047TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEFEOzsxMEFECisyRDBFO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEFFOzsxMEFFCisyRDBGO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaSEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBRjs7MTBBRgorMkQxMDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUkFFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCMDs7MTBCMAorMkQxMTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0FOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCMTs7MTBCMQorMkQxMjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCMjs7MTBCMgorMkQxMztHRU9SR0lBTiBTTUFMTCBMRVRURVIgVU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEIzOzsxMEIzCisyRDE0O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQSEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCNDs7MTBCNAorMkQxNTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0hBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjU7OzEwQjUKKzJEMTY7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdIQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI2OzsxMEI2CisyRDE3O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBRQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI3OzsxMEI3CisyRDE4O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTSElOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCODs7MTBCOAorMkQxOTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjk7OzEwQjkKKzJEMUE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIENBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQkE7OzEwQkEKKzJEMUI7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpJTDtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQkI7OzEwQkIKKzJEMUM7R0VPUkdJQU4gU01BTEwgTEVUVEVSIENJTDtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQkM7OzEwQkMKKzJEMUQ7R0VPUkdJQU4gU01BTEwgTEVUVEVSIENIQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJEOzsxMEJECisyRDFFO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBYQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJFOzsxMEJFCisyRDFGO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCRjs7MTBCRgorMkQyMDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBDMDs7MTBDMAorMkQyMTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEU7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEMxOzsxMEMxCisyRDIyO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBISUU7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEMyOzsxMEMyCisyRDIzO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBXRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQzM7OzEwQzMKKzJEMjQ7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQzQ7OzEwQzQKKzJEMjU7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhPRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQzU7OzEwQzUKKzJEMzA7VElGSU5BR0ggTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDMxO1RJRklOQUdIIExFVFRFUiBZQUI7TG87MDtMOzs7OztOOzs7OzsKKzJEMzI7VElGSU5BR0ggTEVUVEVSIFlBQkg7TG87MDtMOzs7OztOOzs7OzsKKzJEMzM7VElGSU5BR0ggTEVUVEVSIFlBRztMbzswO0w7Ozs7O047Ozs7OworMkQzNDtUSUZJTkFHSCBMRVRURVIgWUFHSEg7TG87MDtMOzs7OztOOzs7OzsKKzJEMzU7VElGSU5BR0ggTEVUVEVSIEJFUkJFUiBBQ0FERU1ZIFlBSjtMbzswO0w7Ozs7O047Ozs7OworMkQzNjtUSUZJTkFHSCBMRVRURVIgWUFKO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM3O1RJRklOQUdIIExFVFRFUiBZQUQ7TG87MDtMOzs7OztOOzs7OzsKKzJEMzg7VElGSU5BR0ggTEVUVEVSIFlBREg7TG87MDtMOzs7OztOOzs7OzsKKzJEMzk7VElGSU5BR0ggTEVUVEVSIFlBREQ7TG87MDtMOzs7OztOOzs7OzsKKzJEM0E7VElGSU5BR0ggTEVUVEVSIFlBRERIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNCO1RJRklOQUdIIExFVFRFUiBZRVk7TG87MDtMOzs7OztOOzs7OzsKKzJEM0M7VElGSU5BR0ggTEVUVEVSIFlBRjtMbzswO0w7Ozs7O047Ozs7OworMkQzRDtUSUZJTkFHSCBMRVRURVIgWUFLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNFO1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNGO1RJRklOQUdIIExFVFRFUiBZQUtISDtMbzswO0w7Ozs7O047Ozs7OworMkQ0MDtUSUZJTkFHSCBMRVRURVIgWUFIO0xvOzA7TDs7Ozs7Tjs7VHVhcmVnIHlhYjs7OworMkQ0MTtUSUZJTkFHSCBMRVRURVIgQkVSQkVSIEFDQURFTVkgWUFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQyO1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQzO1RJRklOQUdIIExFVFRFUiBZQUhIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ0O1RJRklOQUdIIExFVFRFUiBZQUE7TG87MDtMOzs7OztOOzs7OzsKKzJENDU7VElGSU5BR0ggTEVUVEVSIFlBS0g7TG87MDtMOzs7OztOOzs7OzsKKzJENDY7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ3O1RJRklOQUdIIExFVFRFUiBZQVE7TG87MDtMOzs7OztOOzs7OzsKKzJENDg7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQVE7TG87MDtMOzs7OztOOzs7OzsKKzJENDk7VElGSU5BR0ggTEVUVEVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRBO1RJRklOQUdIIExFVFRFUiBZQVpIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRCO1RJRklOQUdIIExFVFRFUiBBSEFHR0FSIFlBWkg7TG87MDtMOzs7OztOOzs7OzsKKzJENEM7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQVpIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDREO1RJRklOQUdIIExFVFRFUiBZQUw7TG87MDtMOzs7OztOOzs7OzsKKzJENEU7VElGSU5BR0ggTEVUVEVSIFlBTTtMbzswO0w7Ozs7O047Ozs7OworMkQ0RjtUSUZJTkFHSCBMRVRURVIgWUFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDUwO1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFHTjtMbzswO0w7Ozs7O047Ozs7OworMkQ1MTtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBTkc7TG87MDtMOzs7OztOOzs7OzsKKzJENTI7VElGSU5BR0ggTEVUVEVSIFlBUDtMbzswO0w7Ozs7O047Ozs7OworMkQ1MztUSUZJTkFHSCBMRVRURVIgWVU7TG87MDtMOzs7OztOOztUdWFyZWcgeWF3Ozs7CisyRDU0O1RJRklOQUdIIExFVFRFUiBZQVI7TG87MDtMOzs7OztOOzs7OzsKKzJENTU7VElGSU5BR0ggTEVUVEVSIFlBUlI7TG87MDtMOzs7OztOOzs7OzsKKzJENTY7VElGSU5BR0ggTEVUVEVSIFlBR0g7TG87MDtMOzs7OztOOzs7OzsKKzJENTc7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQUdIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU4O1RJRklOQUdIIExFVFRFUiBBWUVSIFlBR0g7TG87MDtMOzs7OztOOztBZHJhciB5YWo7OzsKKzJENTk7VElGSU5BR0ggTEVUVEVSIFlBUztMbzswO0w7Ozs7O047Ozs7OworMkQ1QTtUSUZJTkFHSCBMRVRURVIgWUFTUztMbzswO0w7Ozs7O047Ozs7OworMkQ1QjtUSUZJTkFHSCBMRVRURVIgWUFTSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1QztUSUZJTkFHSCBMRVRURVIgWUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDVEO1RJRklOQUdIIExFVFRFUiBZQVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDVFO1RJRklOQUdIIExFVFRFUiBZQUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDVGO1RJRklOQUdIIExFVFRFUiBZQVRUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDYwO1RJRklOQUdIIExFVFRFUiBZQVY7TG87MDtMOzs7OztOOzs7OzsKKzJENjE7VElGSU5BR0ggTEVUVEVSIFlBVztMbzswO0w7Ozs7O047Ozs7OworMkQ2MjtUSUZJTkFHSCBMRVRURVIgWUFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDYzO1RJRklOQUdIIExFVFRFUiBZQVo7TG87MDtMOzs7OztOOzs7OzsKKzJENjQ7VElGSU5BR0ggTEVUVEVSIFRBV0VMTEVNRVQgWUFaO0xvOzA7TDs7Ozs7Tjs7aGFycG9vbiB5YXo7OzsKKzJENjU7VElGSU5BR0ggTEVUVEVSIFlBWlo7TG87MDtMOzs7OztOOzs7OzsKKzJENkY7VElGSU5BR0ggTU9ESUZJRVIgTEVUVEVSIExBQklBTElaQVRJT04gTUFSSztMbTswO0w7PHN1cGVyPiAyRDYxOzs7O047O3RhbWF0YXJ0Ozs7CisyRDgwO0VUSElPUElDIFNZTExBQkxFIExPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4MTtFVEhJT1BJQyBTWUxMQUJMRSBNT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODI7RVRISU9QSUMgU1lMTEFCTEUgUk9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDgzO0VUSElPUElDIFNZTExBQkxFIFNPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4NDtFVEhJT1BJQyBTWUxMQUJMRSBTSE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDg1O0VUSElPUElDIFNZTExBQkxFIEJPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4NjtFVEhJT1BJQyBTWUxMQUJMRSBUT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODc7RVRISU9QSUMgU1lMTEFCTEUgQ09BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDg4O0VUSElPUElDIFNZTExBQkxFIE5PQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4OTtFVEhJT1BJQyBTWUxMQUJMRSBOWU9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDhBO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOEI7RVRISU9QSUMgU1lMTEFCTEUgWk9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDhDO0VUSElPUElDIFNZTExBQkxFIERPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4RDtFVEhJT1BJQyBTWUxMQUJMRSBERE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDhFO0VUSElPUElDIFNZTExBQkxFIEpPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4RjtFVEhJT1BJQyBTWUxMQUJMRSBUSE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDkwO0VUSElPUElDIFNZTExBQkxFIENIT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTE7RVRISU9QSUMgU1lMTEFCTEUgUEhPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ5MjtFVEhJT1BJQyBTWUxMQUJMRSBQT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTM7RVRISU9QSUMgU1lMTEFCTEUgR0dXQTtMbzswO0w7Ozs7O047Ozs7OworMkQ5NDtFVEhJT1BJQyBTWUxMQUJMRSBHR1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDk1O0VUSElPUElDIFNZTExBQkxFIEdHV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDk2O0VUSElPUElDIFNZTExBQkxFIEdHV0U7TG87MDtMOzs7OztOOzs7OzsKKzJEQTA7RVRISU9QSUMgU1lMTEFCTEUgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREExO0VUSElPUElDIFNZTExBQkxFIFNTVTtMbzswO0w7Ozs7O047Ozs7OworMkRBMjtFVEhJT1BJQyBTWUxMQUJMRSBTU0k7TG87MDtMOzs7OztOOzs7OzsKKzJEQTM7RVRISU9QSUMgU1lMTEFCTEUgU1NBQTtMbzswO0w7Ozs7O047Ozs7OworMkRBNDtFVEhJT1BJQyBTWUxMQUJMRSBTU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREE1O0VUSElPUElDIFNZTExBQkxFIFNTRTtMbzswO0w7Ozs7O047Ozs7OworMkRBNjtFVEhJT1BJQyBTWUxMQUJMRSBTU087TG87MDtMOzs7OztOOzs7OzsKKzJEQTg7RVRISU9QSUMgU1lMTEFCTEUgQ0NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREE5O0VUSElPUElDIFNZTExBQkxFIENDVTtMbzswO0w7Ozs7O047Ozs7OworMkRBQTtFVEhJT1BJQyBTWUxMQUJMRSBDQ0k7TG87MDtMOzs7OztOOzs7OzsKKzJEQUI7RVRISU9QSUMgU1lMTEFCTEUgQ0NBQTtMbzswO0w7Ozs7O047Ozs7OworMkRBQztFVEhJT1BJQyBTWUxMQUJMRSBDQ0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREFEO0VUSElPUElDIFNZTExBQkxFIENDRTtMbzswO0w7Ozs7O047Ozs7OworMkRBRTtFVEhJT1BJQyBTWUxMQUJMRSBDQ087TG87MDtMOzs7OztOOzs7OzsKKzJEQjA7RVRISU9QSUMgU1lMTEFCTEUgWlpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREIxO0VUSElPUElDIFNZTExBQkxFIFpaVTtMbzswO0w7Ozs7O047Ozs7OworMkRCMjtFVEhJT1BJQyBTWUxMQUJMRSBaWkk7TG87MDtMOzs7OztOOzs7OzsKKzJEQjM7RVRISU9QSUMgU1lMTEFCTEUgWlpBQTtMbzswO0w7Ozs7O047Ozs7OworMkRCNDtFVEhJT1BJQyBTWUxMQUJMRSBaWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREI1O0VUSElPUElDIFNZTExBQkxFIFpaRTtMbzswO0w7Ozs7O047Ozs7OworMkRCNjtFVEhJT1BJQyBTWUxMQUJMRSBaWk87TG87MDtMOzs7OztOOzs7OzsKKzJEQjg7RVRISU9QSUMgU1lMTEFCTEUgQ0NIQTtMbzswO0w7Ozs7O047Ozs7OworMkRCOTtFVEhJT1BJQyBTWUxMQUJMRSBDQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJBO0VUSElPUElDIFNZTExBQkxFIENDSEk7TG87MDtMOzs7OztOOzs7OzsKKzJEQkI7RVRISU9QSUMgU1lMTEFCTEUgQ0NIQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQkM7RVRISU9QSUMgU1lMTEFCTEUgQ0NIRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQkQ7RVRISU9QSUMgU1lMTEFCTEUgQ0NIRTtMbzswO0w7Ozs7O047Ozs7OworMkRCRTtFVEhJT1BJQyBTWUxMQUJMRSBDQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREMwO0VUSElPUElDIFNZTExBQkxFIFFZQTtMbzswO0w7Ozs7O047Ozs7OworMkRDMTtFVEhJT1BJQyBTWUxMQUJMRSBRWVU7TG87MDtMOzs7OztOOzs7OzsKKzJEQzI7RVRISU9QSUMgU1lMTEFCTEUgUVlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREMzO0VUSElPUElDIFNZTExBQkxFIFFZQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQzQ7RVRISU9QSUMgU1lMTEFCTEUgUVlFRTtMbzswO0w7Ozs7O047Ozs7OworMkRDNTtFVEhJT1BJQyBTWUxMQUJMRSBRWUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQzY7RVRISU9QSUMgU1lMTEFCTEUgUVlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREM4O0VUSElPUElDIFNZTExBQkxFIEtZQTtMbzswO0w7Ozs7O047Ozs7OworMkRDOTtFVEhJT1BJQyBTWUxMQUJMRSBLWVU7TG87MDtMOzs7OztOOzs7OzsKKzJEQ0E7RVRISU9QSUMgU1lMTEFCTEUgS1lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENCO0VUSElPUElDIFNZTExBQkxFIEtZQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQ0M7RVRISU9QSUMgU1lMTEFCTEUgS1lFRTtMbzswO0w7Ozs7O047Ozs7OworMkRDRDtFVEhJT1BJQyBTWUxMQUJMRSBLWUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQ0U7RVRISU9QSUMgU1lMTEFCTEUgS1lPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQwO0VUSElPUElDIFNZTExBQkxFIFhZQTtMbzswO0w7Ozs7O047Ozs7OworMkREMTtFVEhJT1BJQyBTWUxMQUJMRSBYWVU7TG87MDtMOzs7OztOOzs7OzsKKzJERDI7RVRISU9QSUMgU1lMTEFCTEUgWFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQzO0VUSElPUElDIFNZTExBQkxFIFhZQUE7TG87MDtMOzs7OztOOzs7OzsKKzJERDQ7RVRISU9QSUMgU1lMTEFCTEUgWFlFRTtMbzswO0w7Ozs7O047Ozs7OworMkRENTtFVEhJT1BJQyBTWUxMQUJMRSBYWUU7TG87MDtMOzs7OztOOzs7OzsKKzJERDY7RVRISU9QSUMgU1lMTEFCTEUgWFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQ4O0VUSElPUElDIFNZTExBQkxFIEdZQTtMbzswO0w7Ozs7O047Ozs7OworMkREOTtFVEhJT1BJQyBTWUxMQUJMRSBHWVU7TG87MDtMOzs7OztOOzs7OzsKKzJEREE7RVRISU9QSUMgU1lMTEFCTEUgR1lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERCO0VUSElPUElDIFNZTExBQkxFIEdZQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEREM7RVRISU9QSUMgU1lMTEFCTEUgR1lFRTtMbzswO0w7Ozs7O047Ozs7OworMkRERDtFVEhJT1BJQyBTWUxMQUJMRSBHWUU7TG87MDtMOzs7OztOOzs7OzsKKzJEREU7RVRISU9QSUMgU1lMTEFCTEUgR1lPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRTAwO1JJR0hUIEFOR0xFIFNVQlNUSVRVVElPTiBNQVJLRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTAxO1JJR0hUIEFOR0xFIERPVFRFRCBTVUJTVElUVVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwMjtMRUZUIFNVQlNUSVRVVElPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwMztSSUdIVCBTVUJTVElUVVRJT04gQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFMDQ7TEVGVCBET1RURUQgU1VCU1RJVFVUSU9OIEJSQUNLRVQ7UGk7MDtPTjs7Ozs7WTs7Ozs7CisyRTA1O1JJR0hUIERPVFRFRCBTVUJTVElUVVRJT04gQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFMDY7UkFJU0VEIElOVEVSUE9MQVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwNztSQUlTRUQgRE9UVEVEIElOVEVSUE9MQVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwODtET1RURUQgVFJBTlNQT1NJVElPTiBNQVJLRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTA5O0xFRlQgVFJBTlNQT1NJVElPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwQTtSSUdIVCBUUkFOU1BPU0lUSU9OIEJSQUNLRVQ7UGY7MDtPTjs7Ozs7WTs7Ozs7CisyRTBCO1JBSVNFRCBTUVVBUkU7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTBDO0xFRlQgUkFJU0VEIE9NSVNTSU9OIEJSQUNLRVQ7UGk7MDtPTjs7Ozs7WTs7Ozs7CisyRTBEO1JJR0hUIFJBSVNFRCBPTUlTU0lPTiBCUkFDS0VUO1BmOzA7T047Ozs7O1k7Ozs7OworMkUwRTtFRElUT1JJQUwgQ09ST05JUztQbzswO09OOzs7OztOOzs7OzsKKzJFMEY7UEFSQUdSQVBIT1M7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTEwO0ZPUktFRCBQQVJBR1JBUEhPUztQbzswO09OOzs7OztOOzs7OzsKKzJFMTE7UkVWRVJTRUQgRk9SS0VEIFBBUkFHUkFQSE9TO1BvOzA7T047Ozs7O047Ozs7OworMkUxMjtIWVBPRElBU1RPTEU7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTEzO0RPVFRFRCBPQkVMT1M7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTE0O0RPV05XQVJEUyBBTkNPUkE7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTE1O1VQV0FSRFMgQU5DT1JBO1BvOzA7T047Ozs7O047Ozs7OworMkUxNjtET1RURUQgUklHSFQtUE9JTlRJTkcgQU5HTEU7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTE3O0RPVUJMRSBPQkxJUVVFIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzJFMUM7TEVGVCBMT1cgUEFSQVBIUkFTRSBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUxRDtSSUdIVCBMT1cgUEFSQVBIUkFTRSBCUkFDS0VUO1BmOzA7T047Ozs7O1k7Ozs7OworMkU4MDtDSksgUkFESUNBTCBSRVBFQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTgxO0NKSyBSQURJQ0FMIENMSUZGO1NvOzA7T047Ozs7O047Ozs7OworMkU4MjtDSksgUkFESUNBTCBTRUNPTkQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4MztDSksgUkFESUNBTCBTRUNPTkQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4NDtDSksgUkFESUNBTCBTRUNPTkQgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg1O0NKSyBSQURJQ0FMIFBFUlNPTjtTbzswO09OOzs7OztOOzs7OzsKKzJFODY7Q0pLIFJBRElDQUwgQk9YO1NvOzA7T047Ozs7O047Ozs7OworMkU4NztDSksgUkFESUNBTCBUQUJMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFODg7Q0pLIFJBRElDQUwgS05JRkUgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4OTtDSksgUkFESUNBTCBLTklGRSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThBO0NKSyBSQURJQ0FMIERJVklOQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThCO0NKSyBSQURJQ0FMIFNFQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThDO0NKSyBSQURJQ0FMIFNNQUxMIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOEQ7Q0pLIFJBRElDQUwgU01BTEwgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4RTtDSksgUkFESUNBTCBMQU1FIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOEY7Q0pLIFJBRElDQUwgTEFNRSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkwO0NKSyBSQURJQ0FMIExBTUUgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkxO0NKSyBSQURJQ0FMIExBTUUgRk9VUjtTbzswO09OOzs7OztOOzs7OzsKKzJFOTI7Q0pLIFJBRElDQUwgU05BS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkzO0NKSyBSQURJQ0FMIFRIUkVBRDtTbzswO09OOzs7OztOOzs7OzsKKzJFOTQ7Q0pLIFJBRElDQUwgU05PVVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU5NTtDSksgUkFESUNBTCBTTk9VVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk2O0NKSyBSQURJQ0FMIEhFQVJUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTc7Q0pLIFJBRElDQUwgSEVBUlQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5ODtDSksgUkFESUNBTCBIQU5EO1NvOzA7T047Ozs7O047Ozs7OworMkU5OTtDSksgUkFESUNBTCBSQVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlCO0NKSyBSQURJQ0FMIENIT0tFO1NvOzA7T047Ozs7O047Ozs7OworMkU5QztDSksgUkFESUNBTCBTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlEO0NKSyBSQURJQ0FMIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlFO0NKSyBSQURJQ0FMIERFQVRIO1NvOzA7T047Ozs7O047Ozs7OworMkU5RjtDSksgUkFESUNBTCBNT1RIRVI7U287MDtPTjs8Y29tcGF0PiA2QkNEOzs7O047Ozs7OworMkVBMDtDSksgUkFESUNBTCBDSVZJTElBTjtTbzswO09OOzs7OztOOzs7OzsKKzJFQTE7Q0pLIFJBRElDQUwgV0FURVIgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBMjtDSksgUkFESUNBTCBXQVRFUiBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUEzO0NKSyBSQURJQ0FMIEZJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE0O0NKSyBSQURJQ0FMIFBBVyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE1O0NKSyBSQURJQ0FMIFBBVyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE2O0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgSEFMRiBUUkVFIFRSVU5LO1NvOzA7T047Ozs7O047Ozs7OworMkVBNztDSksgUkFESUNBTCBDT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE4O0NKSyBSQURJQ0FMIERPRztTbzswO09OOzs7OztOOzs7OzsKKzJFQTk7Q0pLIFJBRElDQUwgSkFERTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUE7Q0pLIFJBRElDQUwgQk9MVCBPRiBDTE9USDtTbzswO09OOzs7OztOOzs7OzsKKzJFQUI7Q0pLIFJBRElDQUwgRVlFO1NvOzA7T047Ozs7O047Ozs7OworMkVBQztDSksgUkFESUNBTCBTUElSSVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBRDtDSksgUkFESUNBTCBTUElSSVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBRTtDSksgUkFESUNBTCBCQU1CT087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFGO0NKSyBSQURJQ0FMIFNJTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUIwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTSUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVCMTtDSksgUkFESUNBTCBORVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCMjtDSksgUkFESUNBTCBORVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVCMztDSksgUkFESUNBTCBORVQgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI0O0NKSyBSQURJQ0FMIE5FVCBGT1VSO1NvOzA7T047Ozs7O047Ozs7OworMkVCNTtDSksgUkFESUNBTCBNRVNIO1NvOzA7T047Ozs7O047Ozs7OworMkVCNjtDSksgUkFESUNBTCBTSEVFUDtTbzswO09OOzs7OztOOzs7OzsKKzJFQjc7Q0pLIFJBRElDQUwgUkFNO1NvOzA7T047Ozs7O047Ozs7OworMkVCODtDSksgUkFESUNBTCBFV0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI5O0NKSyBSQURJQ0FMIE9MRDtTbzswO09OOzs7OztOOzs7OzsKKzJFQkE7Q0pLIFJBRElDQUwgQlJVU0ggT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCQjtDSksgUkFESUNBTCBCUlVTSCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJDO0NKSyBSQURJQ0FMIE1FQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJEO0NKSyBSQURJQ0FMIE1PUlRBUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQkU7Q0pLIFJBRElDQUwgR1JBU1MgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCRjtDSksgUkFESUNBTCBHUkFTUyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMwO0NKSyBSQURJQ0FMIEdSQVNTIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVDMTtDSksgUkFESUNBTCBUSUdFUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQzI7Q0pLIFJBRElDQUwgQ0xPVEhFUztTbzswO09OOzs7OztOOzs7OzsKKzJFQzM7Q0pLIFJBRElDQUwgV0VTVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM0O0NKSyBSQURJQ0FMIFdFU1QgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDNTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0VFO1NvOzA7T047Ozs7O047Ozs7OworMkVDNjtDSksgUkFESUNBTCBTSU1QTElGSUVEIEhPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM3O0NKSyBSQURJQ0FMIEhPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM4O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTUEVFQ0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM5O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTSEVMTDtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0E7Q0pLIFJBRElDQUwgRk9PVDtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0I7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIENBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNDO0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgV0FMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQ0Q7Q0pLIFJBRElDQUwgV0FMSyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNFO0NKSyBSQURJQ0FMIFdBTEsgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDRjtDSksgUkFESUNBTCBDSVRZO1NvOzA7T047Ozs7O047Ozs7OworMkVEMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgR09MRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRDE7Q0pLIFJBRElDQUwgTE9ORyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQyO0NKSyBSQURJQ0FMIExPTkcgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVEMztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgTE9ORztTbzswO09OOzs7OztOOzs7OzsKKzJFRDQ7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEdBVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ1O0NKSyBSQURJQ0FMIE1PVU5EIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDY7Q0pLIFJBRElDQUwgTU9VTkQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVENztDSksgUkFESUNBTCBSQUlOO1NvOzA7T047Ozs7O047Ozs7OworMkVEODtDSksgUkFESUNBTCBCTFVFO1NvOzA7T047Ozs7O047Ozs7OworMkVEOTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgVEFOTkVEIExFQVRIRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURBO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBMRUFGO1NvOzA7T047Ozs7O047Ozs7OworMkVEQjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgV0lORDtTbzswO09OOzs7OztOOzs7OzsKKzJFREM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZMWTtTbzswO09OOzs7OztOOzs7OzsKKzJFREQ7Q0pLIFJBRElDQUwgRUFUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFREU7Q0pLIFJBRElDQUwgRUFUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFREY7Q0pLIFJBRElDQUwgRUFUIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVFMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVFMTtDSksgUkFESUNBTCBIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMkVFMjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgSE9SU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUUzO0NKSyBSQURJQ0FMIEJPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU0O0NKSyBSQURJQ0FMIEdIT1NUO1NvOzA7T047Ozs7O047Ozs7OworMkVFNTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRklTSDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTY7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEJJUkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU3O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTQUxUO1NvOzA7T047Ozs7O047Ozs7OworMkVFODtDSksgUkFESUNBTCBTSU1QTElGSUVEIFdIRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVFOTtDSksgUkFESUNBTCBTSU1QTElGSUVEIFlFTExPVztTbzswO09OOzs7OztOOzs7OzsKKzJFRUE7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZST0c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVCO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBFVkVOO1NvOzA7T047Ozs7O047Ozs7OworMkVFQztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRUQ7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIFRPT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVFRTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgVE9PVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVGO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBEUkFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBEUkFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYxO0NKSyBSQURJQ0FMIFRVUlRMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRjI7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIFRVUlRMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRjM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRVUlRMRTtTbzswO09OOzxjb21wYXQ+IDlGOUY7Ozs7Tjs7Ozs7CisyRjAwO0tBTkdYSSBSQURJQ0FMIE9ORTtTbzswO09OOzxjb21wYXQ+IDRFMDA7Ozs7Tjs7Ozs7CisyRjAxO0tBTkdYSSBSQURJQ0FMIExJTkU7U287MDtPTjs8Y29tcGF0PiA0RTI4Ozs7O047Ozs7OworMkYwMjtLQU5HWEkgUkFESUNBTCBET1Q7U287MDtPTjs8Y29tcGF0PiA0RTM2Ozs7O047Ozs7OworMkYwMztLQU5HWEkgUkFESUNBTCBTTEFTSDtTbzswO09OOzxjb21wYXQ+IDRFM0Y7Ozs7Tjs7Ozs7CisyRjA0O0tBTkdYSSBSQURJQ0FMIFNFQ09ORDtTbzswO09OOzxjb21wYXQ+IDRFNTk7Ozs7Tjs7Ozs7CisyRjA1O0tBTkdYSSBSQURJQ0FMIEhPT0s7U287MDtPTjs8Y29tcGF0PiA0RTg1Ozs7O047Ozs7OworMkYwNjtLQU5HWEkgUkFESUNBTCBUV087U287MDtPTjs8Y29tcGF0PiA0RThDOzs7O047Ozs7OworMkYwNztLQU5HWEkgUkFESUNBTCBMSUQ7U287MDtPTjs8Y29tcGF0PiA0RUEwOzs7O047Ozs7OworMkYwODtLQU5HWEkgUkFESUNBTCBNQU47U287MDtPTjs8Y29tcGF0PiA0RUJBOzs7O047Ozs7OworMkYwOTtLQU5HWEkgUkFESUNBTCBMRUdTO1NvOzA7T047PGNvbXBhdD4gNTEzRjs7OztOOzs7OzsKKzJGMEE7S0FOR1hJIFJBRElDQUwgRU5URVI7U287MDtPTjs8Y29tcGF0PiA1MTY1Ozs7O047Ozs7OworMkYwQjtLQU5HWEkgUkFESUNBTCBFSUdIVDtTbzswO09OOzxjb21wYXQ+IDUxNkI7Ozs7Tjs7Ozs7CisyRjBDO0tBTkdYSSBSQURJQ0FMIERPV04gQk9YO1NvOzA7T047PGNvbXBhdD4gNTE4Mjs7OztOOzs7OzsKKzJGMEQ7S0FOR1hJIFJBRElDQUwgQ09WRVI7U287MDtPTjs8Y29tcGF0PiA1MTk2Ozs7O047Ozs7OworMkYwRTtLQU5HWEkgUkFESUNBTCBJQ0U7U287MDtPTjs8Y29tcGF0PiA1MUFCOzs7O047Ozs7OworMkYwRjtLQU5HWEkgUkFESUNBTCBUQUJMRTtTbzswO09OOzxjb21wYXQ+IDUxRTA7Ozs7Tjs7Ozs7CisyRjEwO0tBTkdYSSBSQURJQ0FMIE9QRU4gQk9YO1NvOzA7T047PGNvbXBhdD4gNTFGNTs7OztOOzs7OzsKKzJGMTE7S0FOR1hJIFJBRElDQUwgS05JRkU7U287MDtPTjs8Y29tcGF0PiA1MjAwOzs7O047Ozs7OworMkYxMjtLQU5HWEkgUkFESUNBTCBQT1dFUjtTbzswO09OOzxjb21wYXQ+IDUyOUI7Ozs7Tjs7Ozs7CisyRjEzO0tBTkdYSSBSQURJQ0FMIFdSQVA7U287MDtPTjs8Y29tcGF0PiA1MkY5Ozs7O047Ozs7OworMkYxNDtLQU5HWEkgUkFESUNBTCBTUE9PTjtTbzswO09OOzxjb21wYXQ+IDUzMTU7Ozs7Tjs7Ozs7CisyRjE1O0tBTkdYSSBSQURJQ0FMIFJJR0hUIE9QRU4gQk9YO1NvOzA7T047PGNvbXBhdD4gNTMxQTs7OztOOzs7OzsKKzJGMTY7S0FOR1hJIFJBRElDQUwgSElESU5HIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDUzMzg7Ozs7Tjs7Ozs7CisyRjE3O0tBTkdYSSBSQURJQ0FMIFRFTjtTbzswO09OOzxjb21wYXQ+IDUzNDE7Ozs7Tjs7Ozs7CisyRjE4O0tBTkdYSSBSQURJQ0FMIERJVklOQVRJT047U287MDtPTjs8Y29tcGF0PiA1MzVDOzs7O047Ozs7OworMkYxOTtLQU5HWEkgUkFESUNBTCBTRUFMO1NvOzA7T047PGNvbXBhdD4gNTM2OTs7OztOOzs7OzsKKzJGMUE7S0FOR1hJIFJBRElDQUwgQ0xJRkY7U287MDtPTjs8Y29tcGF0PiA1MzgyOzs7O047Ozs7OworMkYxQjtLQU5HWEkgUkFESUNBTCBQUklWQVRFO1NvOzA7T047PGNvbXBhdD4gNTNCNjs7OztOOzs7OzsKKzJGMUM7S0FOR1hJIFJBRElDQUwgQUdBSU47U287MDtPTjs8Y29tcGF0PiA1M0M4Ozs7O047Ozs7OworMkYxRDtLQU5HWEkgUkFESUNBTCBNT1VUSDtTbzswO09OOzxjb21wYXQ+IDUzRTM7Ozs7Tjs7Ozs7CisyRjFFO0tBTkdYSSBSQURJQ0FMIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDU2RDc7Ozs7Tjs7Ozs7CisyRjFGO0tBTkdYSSBSQURJQ0FMIEVBUlRIO1NvOzA7T047PGNvbXBhdD4gNTcxRjs7OztOOzs7OzsKKzJGMjA7S0FOR1hJIFJBRElDQUwgU0NIT0xBUjtTbzswO09OOzxjb21wYXQ+IDU4RUI7Ozs7Tjs7Ozs7CisyRjIxO0tBTkdYSSBSQURJQ0FMIEdPO1NvOzA7T047PGNvbXBhdD4gNTkwMjs7OztOOzs7OzsKKzJGMjI7S0FOR1hJIFJBRElDQUwgR08gU0xPV0xZO1NvOzA7T047PGNvbXBhdD4gNTkwQTs7OztOOzs7OzsKKzJGMjM7S0FOR1hJIFJBRElDQUwgRVZFTklORztTbzswO09OOzxjb21wYXQ+IDU5MTU7Ozs7Tjs7Ozs7CisyRjI0O0tBTkdYSSBSQURJQ0FMIEJJRztTbzswO09OOzxjb21wYXQ+IDU5Mjc7Ozs7Tjs7Ozs7CisyRjI1O0tBTkdYSSBSQURJQ0FMIFdPTUFOO1NvOzA7T047PGNvbXBhdD4gNTk3Mzs7OztOOzs7OzsKKzJGMjY7S0FOR1hJIFJBRElDQUwgQ0hJTEQ7U287MDtPTjs8Y29tcGF0PiA1QjUwOzs7O047Ozs7OworMkYyNztLQU5HWEkgUkFESUNBTCBST09GO1NvOzA7T047PGNvbXBhdD4gNUI4MDs7OztOOzs7OzsKKzJGMjg7S0FOR1hJIFJBRElDQUwgSU5DSDtTbzswO09OOzxjb21wYXQ+IDVCRjg7Ozs7Tjs7Ozs7CisyRjI5O0tBTkdYSSBSQURJQ0FMIFNNQUxMO1NvOzA7T047PGNvbXBhdD4gNUMwRjs7OztOOzs7OzsKKzJGMkE7S0FOR1hJIFJBRElDQUwgTEFNRTtTbzswO09OOzxjb21wYXQ+IDVDMjI7Ozs7Tjs7Ozs7CisyRjJCO0tBTkdYSSBSQURJQ0FMIENPUlBTRTtTbzswO09OOzxjb21wYXQ+IDVDMzg7Ozs7Tjs7Ozs7CisyRjJDO0tBTkdYSSBSQURJQ0FMIFNQUk9VVDtTbzswO09OOzxjb21wYXQ+IDVDNkU7Ozs7Tjs7Ozs7CisyRjJEO0tBTkdYSSBSQURJQ0FMIE1PVU5UQUlOO1NvOzA7T047PGNvbXBhdD4gNUM3MTs7OztOOzs7OzsKKzJGMkU7S0FOR1hJIFJBRElDQUwgUklWRVI7U287MDtPTjs8Y29tcGF0PiA1RERCOzs7O047Ozs7OworMkYyRjtLQU5HWEkgUkFESUNBTCBXT1JLO1NvOzA7T047PGNvbXBhdD4gNURFNTs7OztOOzs7OzsKKzJGMzA7S0FOR1hJIFJBRElDQUwgT05FU0VMRjtTbzswO09OOzxjb21wYXQ+IDVERjE7Ozs7Tjs7Ozs7CisyRjMxO0tBTkdYSSBSQURJQ0FMIFRVUkJBTjtTbzswO09OOzxjb21wYXQ+IDVERkU7Ozs7Tjs7Ozs7CisyRjMyO0tBTkdYSSBSQURJQ0FMIERSWTtTbzswO09OOzxjb21wYXQ+IDVFNzI7Ozs7Tjs7Ozs7CisyRjMzO0tBTkdYSSBSQURJQ0FMIFNIT1JUIFRIUkVBRDtTbzswO09OOzxjb21wYXQ+IDVFN0E7Ozs7Tjs7Ozs7CisyRjM0O0tBTkdYSSBSQURJQ0FMIERPVFRFRCBDTElGRjtTbzswO09OOzxjb21wYXQ+IDVFN0Y7Ozs7Tjs7Ozs7CisyRjM1O0tBTkdYSSBSQURJQ0FMIExPTkcgU1RSSURFO1NvOzA7T047PGNvbXBhdD4gNUVGNDs7OztOOzs7OzsKKzJGMzY7S0FOR1hJIFJBRElDQUwgVFdPIEhBTkRTO1NvOzA7T047PGNvbXBhdD4gNUVGRTs7OztOOzs7OzsKKzJGMzc7S0FOR1hJIFJBRElDQUwgU0hPT1Q7U287MDtPTjs8Y29tcGF0PiA1RjBCOzs7O047Ozs7OworMkYzODtLQU5HWEkgUkFESUNBTCBCT1c7U287MDtPTjs8Y29tcGF0PiA1RjEzOzs7O047Ozs7OworMkYzOTtLQU5HWEkgUkFESUNBTCBTTk9VVDtTbzswO09OOzxjb21wYXQ+IDVGNTA7Ozs7Tjs7Ozs7CisyRjNBO0tBTkdYSSBSQURJQ0FMIEJSSVNUTEU7U287MDtPTjs8Y29tcGF0PiA1RjYxOzs7O047Ozs7OworMkYzQjtLQU5HWEkgUkFESUNBTCBTVEVQO1NvOzA7T047PGNvbXBhdD4gNUY3Mzs7OztOOzs7OzsKKzJGM0M7S0FOR1hJIFJBRElDQUwgSEVBUlQ7U287MDtPTjs8Y29tcGF0PiA1RkMzOzs7O047Ozs7OworMkYzRDtLQU5HWEkgUkFESUNBTCBIQUxCRVJEO1NvOzA7T047PGNvbXBhdD4gNjIwODs7OztOOzs7OzsKKzJGM0U7S0FOR1hJIFJBRElDQUwgRE9PUjtTbzswO09OOzxjb21wYXQ+IDYyMzY7Ozs7Tjs7Ozs7CisyRjNGO0tBTkdYSSBSQURJQ0FMIEhBTkQ7U287MDtPTjs8Y29tcGF0PiA2MjRCOzs7O047Ozs7OworMkY0MDtLQU5HWEkgUkFESUNBTCBCUkFOQ0g7U287MDtPTjs8Y29tcGF0PiA2NTJGOzs7O047Ozs7OworMkY0MTtLQU5HWEkgUkFESUNBTCBSQVA7U287MDtPTjs8Y29tcGF0PiA2NTM0Ozs7O047Ozs7OworMkY0MjtLQU5HWEkgUkFESUNBTCBTQ1JJUFQ7U287MDtPTjs8Y29tcGF0PiA2NTg3Ozs7O047Ozs7OworMkY0MztLQU5HWEkgUkFESUNBTCBESVBQRVI7U287MDtPTjs8Y29tcGF0PiA2NTk3Ozs7O047Ozs7OworMkY0NDtLQU5HWEkgUkFESUNBTCBBWEU7U287MDtPTjs8Y29tcGF0PiA2NUE0Ozs7O047Ozs7OworMkY0NTtLQU5HWEkgUkFESUNBTCBTUVVBUkU7U287MDtPTjs8Y29tcGF0PiA2NUI5Ozs7O047Ozs7OworMkY0NjtLQU5HWEkgUkFESUNBTCBOT1Q7U287MDtPTjs8Y29tcGF0PiA2NUUwOzs7O047Ozs7OworMkY0NztLQU5HWEkgUkFESUNBTCBTVU47U287MDtPTjs8Y29tcGF0PiA2NUU1Ozs7O047Ozs7OworMkY0ODtLQU5HWEkgUkFESUNBTCBTQVk7U287MDtPTjs8Y29tcGF0PiA2NkYwOzs7O047Ozs7OworMkY0OTtLQU5HWEkgUkFESUNBTCBNT09OO1NvOzA7T047PGNvbXBhdD4gNjcwODs7OztOOzs7OzsKKzJGNEE7S0FOR1hJIFJBRElDQUwgVFJFRTtTbzswO09OOzxjb21wYXQ+IDY3Mjg7Ozs7Tjs7Ozs7CisyRjRCO0tBTkdYSSBSQURJQ0FMIExBQ0s7U287MDtPTjs8Y29tcGF0PiA2QjIwOzs7O047Ozs7OworMkY0QztLQU5HWEkgUkFESUNBTCBTVE9QO1NvOzA7T047PGNvbXBhdD4gNkI2Mjs7OztOOzs7OzsKKzJGNEQ7S0FOR1hJIFJBRElDQUwgREVBVEg7U287MDtPTjs8Y29tcGF0PiA2Qjc5Ozs7O047Ozs7OworMkY0RTtLQU5HWEkgUkFESUNBTCBXRUFQT047U287MDtPTjs8Y29tcGF0PiA2QkIzOzs7O047Ozs7OworMkY0RjtLQU5HWEkgUkFESUNBTCBETyBOT1Q7U287MDtPTjs8Y29tcGF0PiA2QkNCOzs7O047Ozs7OworMkY1MDtLQU5HWEkgUkFESUNBTCBDT01QQVJFO1NvOzA7T047PGNvbXBhdD4gNkJENDs7OztOOzs7OzsKKzJGNTE7S0FOR1hJIFJBRElDQUwgRlVSO1NvOzA7T047PGNvbXBhdD4gNkJEQjs7OztOOzs7OzsKKzJGNTI7S0FOR1hJIFJBRElDQUwgQ0xBTjtTbzswO09OOzxjb21wYXQ+IDZDMEY7Ozs7Tjs7Ozs7CisyRjUzO0tBTkdYSSBSQURJQ0FMIFNURUFNO1NvOzA7T047PGNvbXBhdD4gNkMxNDs7OztOOzs7OzsKKzJGNTQ7S0FOR1hJIFJBRElDQUwgV0FURVI7U287MDtPTjs8Y29tcGF0PiA2QzM0Ozs7O047Ozs7OworMkY1NTtLQU5HWEkgUkFESUNBTCBGSVJFO1NvOzA7T047PGNvbXBhdD4gNzA2Qjs7OztOOzs7OzsKKzJGNTY7S0FOR1hJIFJBRElDQUwgQ0xBVztTbzswO09OOzxjb21wYXQ+IDcyMkE7Ozs7Tjs7Ozs7CisyRjU3O0tBTkdYSSBSQURJQ0FMIEZBVEhFUjtTbzswO09OOzxjb21wYXQ+IDcyMzY7Ozs7Tjs7Ozs7CisyRjU4O0tBTkdYSSBSQURJQ0FMIERPVUJMRSBYO1NvOzA7T047PGNvbXBhdD4gNzIzQjs7OztOOzs7OzsKKzJGNTk7S0FOR1hJIFJBRElDQUwgSEFMRiBUUkVFIFRSVU5LO1NvOzA7T047PGNvbXBhdD4gNzIzRjs7OztOOzs7OzsKKzJGNUE7S0FOR1hJIFJBRElDQUwgU0xJQ0U7U287MDtPTjs8Y29tcGF0PiA3MjQ3Ozs7O047Ozs7OworMkY1QjtLQU5HWEkgUkFESUNBTCBGQU5HO1NvOzA7T047PGNvbXBhdD4gNzI1OTs7OztOOzs7OzsKKzJGNUM7S0FOR1hJIFJBRElDQUwgQ09XO1NvOzA7T047PGNvbXBhdD4gNzI1Qjs7OztOOzs7OzsKKzJGNUQ7S0FOR1hJIFJBRElDQUwgRE9HO1NvOzA7T047PGNvbXBhdD4gNzJBQzs7OztOOzs7OzsKKzJGNUU7S0FOR1hJIFJBRElDQUwgUFJPRk9VTkQ7U287MDtPTjs8Y29tcGF0PiA3Mzg0Ozs7O047Ozs7OworMkY1RjtLQU5HWEkgUkFESUNBTCBKQURFO1NvOzA7T047PGNvbXBhdD4gNzM4OTs7OztOOzs7OzsKKzJGNjA7S0FOR1hJIFJBRElDQUwgTUVMT047U287MDtPTjs8Y29tcGF0PiA3NERDOzs7O047Ozs7OworMkY2MTtLQU5HWEkgUkFESUNBTCBUSUxFO1NvOzA7T047PGNvbXBhdD4gNzRFNjs7OztOOzs7OzsKKzJGNjI7S0FOR1hJIFJBRElDQUwgU1dFRVQ7U287MDtPTjs8Y29tcGF0PiA3NTE4Ozs7O047Ozs7OworMkY2MztLQU5HWEkgUkFESUNBTCBMSUZFO1NvOzA7T047PGNvbXBhdD4gNzUxRjs7OztOOzs7OzsKKzJGNjQ7S0FOR1hJIFJBRElDQUwgVVNFO1NvOzA7T047PGNvbXBhdD4gNzUyODs7OztOOzs7OzsKKzJGNjU7S0FOR1hJIFJBRElDQUwgRklFTEQ7U287MDtPTjs8Y29tcGF0PiA3NTMwOzs7O047Ozs7OworMkY2NjtLQU5HWEkgUkFESUNBTCBCT0xUIE9GIENMT1RIO1NvOzA7T047PGNvbXBhdD4gNzU4Qjs7OztOOzs7OzsKKzJGNjc7S0FOR1hJIFJBRElDQUwgU0lDS05FU1M7U287MDtPTjs8Y29tcGF0PiA3NTkyOzs7O047Ozs7OworMkY2ODtLQU5HWEkgUkFESUNBTCBET1RURUQgVEVOVDtTbzswO09OOzxjb21wYXQ+IDc2NzY7Ozs7Tjs7Ozs7CisyRjY5O0tBTkdYSSBSQURJQ0FMIFdISVRFO1NvOzA7T047PGNvbXBhdD4gNzY3RDs7OztOOzs7OzsKKzJGNkE7S0FOR1hJIFJBRElDQUwgU0tJTjtTbzswO09OOzxjb21wYXQ+IDc2QUU7Ozs7Tjs7Ozs7CisyRjZCO0tBTkdYSSBSQURJQ0FMIERJU0g7U287MDtPTjs8Y29tcGF0PiA3NkJGOzs7O047Ozs7OworMkY2QztLQU5HWEkgUkFESUNBTCBFWUU7U287MDtPTjs8Y29tcGF0PiA3NkVFOzs7O047Ozs7OworMkY2RDtLQU5HWEkgUkFESUNBTCBTUEVBUjtTbzswO09OOzxjb21wYXQ+IDc3REI7Ozs7Tjs7Ozs7CisyRjZFO0tBTkdYSSBSQURJQ0FMIEFSUk9XO1NvOzA7T047PGNvbXBhdD4gNzdFMjs7OztOOzs7OzsKKzJGNkY7S0FOR1hJIFJBRElDQUwgU1RPTkU7U287MDtPTjs8Y29tcGF0PiA3N0YzOzs7O047Ozs7OworMkY3MDtLQU5HWEkgUkFESUNBTCBTUElSSVQ7U287MDtPTjs8Y29tcGF0PiA3OTNBOzs7O047Ozs7OworMkY3MTtLQU5HWEkgUkFESUNBTCBUUkFDSztTbzswO09OOzxjb21wYXQ+IDc5Qjg7Ozs7Tjs7Ozs7CisyRjcyO0tBTkdYSSBSQURJQ0FMIEdSQUlOO1NvOzA7T047PGNvbXBhdD4gNzlCRTs7OztOOzs7OzsKKzJGNzM7S0FOR1hJIFJBRElDQUwgQ0FWRTtTbzswO09OOzxjb21wYXQ+IDdBNzQ7Ozs7Tjs7Ozs7CisyRjc0O0tBTkdYSSBSQURJQ0FMIFNUQU5EO1NvOzA7T047PGNvbXBhdD4gN0FDQjs7OztOOzs7OzsKKzJGNzU7S0FOR1hJIFJBRElDQUwgQkFNQk9PO1NvOzA7T047PGNvbXBhdD4gN0FGOTs7OztOOzs7OzsKKzJGNzY7S0FOR1hJIFJBRElDQUwgUklDRTtTbzswO09OOzxjb21wYXQ+IDdDNzM7Ozs7Tjs7Ozs7CisyRjc3O0tBTkdYSSBSQURJQ0FMIFNJTEs7U287MDtPTjs8Y29tcGF0PiA3Q0Y4Ozs7O047Ozs7OworMkY3ODtLQU5HWEkgUkFESUNBTCBKQVI7U287MDtPTjs8Y29tcGF0PiA3RjM2Ozs7O047Ozs7OworMkY3OTtLQU5HWEkgUkFESUNBTCBORVQ7U287MDtPTjs8Y29tcGF0PiA3RjUxOzs7O047Ozs7OworMkY3QTtLQU5HWEkgUkFESUNBTCBTSEVFUDtTbzswO09OOzxjb21wYXQ+IDdGOEE7Ozs7Tjs7Ozs7CisyRjdCO0tBTkdYSSBSQURJQ0FMIEZFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA3RkJEOzs7O047Ozs7OworMkY3QztLQU5HWEkgUkFESUNBTCBPTEQ7U287MDtPTjs8Y29tcGF0PiA4MDAxOzs7O047Ozs7OworMkY3RDtLQU5HWEkgUkFESUNBTCBBTkQ7U287MDtPTjs8Y29tcGF0PiA4MDBDOzs7O047Ozs7OworMkY3RTtLQU5HWEkgUkFESUNBTCBQTE9XO1NvOzA7T047PGNvbXBhdD4gODAxMjs7OztOOzs7OzsKKzJGN0Y7S0FOR1hJIFJBRElDQUwgRUFSO1NvOzA7T047PGNvbXBhdD4gODAzMzs7OztOOzs7OzsKKzJGODA7S0FOR1hJIFJBRElDQUwgQlJVU0g7U287MDtPTjs8Y29tcGF0PiA4MDdGOzs7O047Ozs7OworMkY4MTtLQU5HWEkgUkFESUNBTCBNRUFUO1NvOzA7T047PGNvbXBhdD4gODA4OTs7OztOOzs7OzsKKzJGODI7S0FOR1hJIFJBRElDQUwgTUlOSVNURVI7U287MDtPTjs8Y29tcGF0PiA4MUUzOzs7O047Ozs7OworMkY4MztLQU5HWEkgUkFESUNBTCBTRUxGO1NvOzA7T047PGNvbXBhdD4gODFFQTs7OztOOzs7OzsKKzJGODQ7S0FOR1hJIFJBRElDQUwgQVJSSVZFO1NvOzA7T047PGNvbXBhdD4gODFGMzs7OztOOzs7OzsKKzJGODU7S0FOR1hJIFJBRElDQUwgTU9SVEFSO1NvOzA7T047PGNvbXBhdD4gODFGQzs7OztOOzs7OzsKKzJGODY7S0FOR1hJIFJBRElDQUwgVE9OR1VFO1NvOzA7T047PGNvbXBhdD4gODIwQzs7OztOOzs7OzsKKzJGODc7S0FOR1hJIFJBRElDQUwgT1BQT1NFO1NvOzA7T047PGNvbXBhdD4gODIxQjs7OztOOzs7OzsKKzJGODg7S0FOR1hJIFJBRElDQUwgQk9BVDtTbzswO09OOzxjb21wYXQ+IDgyMUY7Ozs7Tjs7Ozs7CisyRjg5O0tBTkdYSSBSQURJQ0FMIFNUT1BQSU5HO1NvOzA7T047PGNvbXBhdD4gODI2RTs7OztOOzs7OzsKKzJGOEE7S0FOR1hJIFJBRElDQUwgQ09MT1I7U287MDtPTjs8Y29tcGF0PiA4MjcyOzs7O047Ozs7OworMkY4QjtLQU5HWEkgUkFESUNBTCBHUkFTUztTbzswO09OOzxjb21wYXQ+IDgyNzg7Ozs7Tjs7Ozs7CisyRjhDO0tBTkdYSSBSQURJQ0FMIFRJR0VSO1NvOzA7T047PGNvbXBhdD4gODY0RDs7OztOOzs7OzsKKzJGOEQ7S0FOR1hJIFJBRElDQUwgSU5TRUNUO1NvOzA7T047PGNvbXBhdD4gODY2Qjs7OztOOzs7OzsKKzJGOEU7S0FOR1hJIFJBRElDQUwgQkxPT0Q7U287MDtPTjs8Y29tcGF0PiA4ODQwOzs7O047Ozs7OworMkY4RjtLQU5HWEkgUkFESUNBTCBXQUxLIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDg4NEM7Ozs7Tjs7Ozs7CisyRjkwO0tBTkdYSSBSQURJQ0FMIENMT1RIRVM7U287MDtPTjs8Y29tcGF0PiA4ODYzOzs7O047Ozs7OworMkY5MTtLQU5HWEkgUkFESUNBTCBXRVNUO1NvOzA7T047PGNvbXBhdD4gODk3RTs7OztOOzs7OzsKKzJGOTI7S0FOR1hJIFJBRElDQUwgU0VFO1NvOzA7T047PGNvbXBhdD4gODk4Qjs7OztOOzs7OzsKKzJGOTM7S0FOR1hJIFJBRElDQUwgSE9STjtTbzswO09OOzxjb21wYXQ+IDg5RDI7Ozs7Tjs7Ozs7CisyRjk0O0tBTkdYSSBSQURJQ0FMIFNQRUVDSDtTbzswO09OOzxjb21wYXQ+IDhBMDA7Ozs7Tjs7Ozs7CisyRjk1O0tBTkdYSSBSQURJQ0FMIFZBTExFWTtTbzswO09OOzxjb21wYXQ+IDhDMzc7Ozs7Tjs7Ozs7CisyRjk2O0tBTkdYSSBSQURJQ0FMIEJFQU47U287MDtPTjs8Y29tcGF0PiA4QzQ2Ozs7O047Ozs7OworMkY5NztLQU5HWEkgUkFESUNBTCBQSUc7U287MDtPTjs8Y29tcGF0PiA4QzU1Ozs7O047Ozs7OworMkY5ODtLQU5HWEkgUkFESUNBTCBCQURHRVI7U287MDtPTjs8Y29tcGF0PiA4Qzc4Ozs7O047Ozs7OworMkY5OTtLQU5HWEkgUkFESUNBTCBTSEVMTDtTbzswO09OOzxjb21wYXQ+IDhDOUQ7Ozs7Tjs7Ozs7CisyRjlBO0tBTkdYSSBSQURJQ0FMIFJFRDtTbzswO09OOzxjb21wYXQ+IDhENjQ7Ozs7Tjs7Ozs7CisyRjlCO0tBTkdYSSBSQURJQ0FMIFJVTjtTbzswO09OOzxjb21wYXQ+IDhENzA7Ozs7Tjs7Ozs7CisyRjlDO0tBTkdYSSBSQURJQ0FMIEZPT1Q7U287MDtPTjs8Y29tcGF0PiA4REIzOzs7O047Ozs7OworMkY5RDtLQU5HWEkgUkFESUNBTCBCT0RZO1NvOzA7T047PGNvbXBhdD4gOEVBQjs7OztOOzs7OzsKKzJGOUU7S0FOR1hJIFJBRElDQUwgQ0FSVDtTbzswO09OOzxjb21wYXQ+IDhFQ0E7Ozs7Tjs7Ozs7CisyRjlGO0tBTkdYSSBSQURJQ0FMIEJJVFRFUjtTbzswO09OOzxjb21wYXQ+IDhGOUI7Ozs7Tjs7Ozs7CisyRkEwO0tBTkdYSSBSQURJQ0FMIE1PUk5JTkc7U287MDtPTjs8Y29tcGF0PiA4RkIwOzs7O047Ozs7OworMkZBMTtLQU5HWEkgUkFESUNBTCBXQUxLO1NvOzA7T047PGNvbXBhdD4gOEZCNTs7OztOOzs7OzsKKzJGQTI7S0FOR1hJIFJBRElDQUwgQ0lUWTtTbzswO09OOzxjb21wYXQ+IDkwOTE7Ozs7Tjs7Ozs7CisyRkEzO0tBTkdYSSBSQURJQ0FMIFdJTkU7U287MDtPTjs8Y29tcGF0PiA5MTQ5Ozs7O047Ozs7OworMkZBNDtLQU5HWEkgUkFESUNBTCBESVNUSU5HVUlTSDtTbzswO09OOzxjb21wYXQ+IDkxQzY7Ozs7Tjs7Ozs7CisyRkE1O0tBTkdYSSBSQURJQ0FMIFZJTExBR0U7U287MDtPTjs8Y29tcGF0PiA5MUNDOzs7O047Ozs7OworMkZBNjtLQU5HWEkgUkFESUNBTCBHT0xEO1NvOzA7T047PGNvbXBhdD4gOTFEMTs7OztOOzs7OzsKKzJGQTc7S0FOR1hJIFJBRElDQUwgTE9ORztTbzswO09OOzxjb21wYXQ+IDk1Nzc7Ozs7Tjs7Ozs7CisyRkE4O0tBTkdYSSBSQURJQ0FMIEdBVEU7U287MDtPTjs8Y29tcGF0PiA5NTgwOzs7O047Ozs7OworMkZBOTtLQU5HWEkgUkFESUNBTCBNT1VORDtTbzswO09OOzxjb21wYXQ+IDk2MUM7Ozs7Tjs7Ozs7CisyRkFBO0tBTkdYSSBSQURJQ0FMIFNMQVZFO1NvOzA7T047PGNvbXBhdD4gOTZCNjs7OztOOzs7OzsKKzJGQUI7S0FOR1hJIFJBRElDQUwgU0hPUlQgVEFJTEVEIEJJUkQ7U287MDtPTjs8Y29tcGF0PiA5NkI5Ozs7O047Ozs7OworMkZBQztLQU5HWEkgUkFESUNBTCBSQUlOO1NvOzA7T047PGNvbXBhdD4gOTZFODs7OztOOzs7OzsKKzJGQUQ7S0FOR1hJIFJBRElDQUwgQkxVRTtTbzswO09OOzxjb21wYXQ+IDk3NTE7Ozs7Tjs7Ozs7CisyRkFFO0tBTkdYSSBSQURJQ0FMIFdST05HO1NvOzA7T047PGNvbXBhdD4gOTc1RTs7OztOOzs7OzsKKzJGQUY7S0FOR1hJIFJBRElDQUwgRkFDRTtTbzswO09OOzxjb21wYXQ+IDk3NjI7Ozs7Tjs7Ozs7CisyRkIwO0tBTkdYSSBSQURJQ0FMIExFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA5NzY5Ozs7O047Ozs7OworMkZCMTtLQU5HWEkgUkFESUNBTCBUQU5ORUQgTEVBVEhFUjtTbzswO09OOzxjb21wYXQ+IDk3Q0I7Ozs7Tjs7Ozs7CisyRkIyO0tBTkdYSSBSQURJQ0FMIExFRUs7U287MDtPTjs8Y29tcGF0PiA5N0VEOzs7O047Ozs7OworMkZCMztLQU5HWEkgUkFESUNBTCBTT1VORDtTbzswO09OOzxjb21wYXQ+IDk3RjM7Ozs7Tjs7Ozs7CisyRkI0O0tBTkdYSSBSQURJQ0FMIExFQUY7U287MDtPTjs8Y29tcGF0PiA5ODAxOzs7O047Ozs7OworMkZCNTtLQU5HWEkgUkFESUNBTCBXSU5EO1NvOzA7T047PGNvbXBhdD4gOThBODs7OztOOzs7OzsKKzJGQjY7S0FOR1hJIFJBRElDQUwgRkxZO1NvOzA7T047PGNvbXBhdD4gOThEQjs7OztOOzs7OzsKKzJGQjc7S0FOR1hJIFJBRElDQUwgRUFUO1NvOzA7T047PGNvbXBhdD4gOThERjs7OztOOzs7OzsKKzJGQjg7S0FOR1hJIFJBRElDQUwgSEVBRDtTbzswO09OOzxjb21wYXQ+IDk5OTY7Ozs7Tjs7Ozs7CisyRkI5O0tBTkdYSSBSQURJQ0FMIEZSQUdSQU5UO1NvOzA7T047PGNvbXBhdD4gOTk5OTs7OztOOzs7OzsKKzJGQkE7S0FOR1hJIFJBRElDQUwgSE9SU0U7U287MDtPTjs8Y29tcGF0PiA5OUFDOzs7O047Ozs7OworMkZCQjtLQU5HWEkgUkFESUNBTCBCT05FO1NvOzA7T047PGNvbXBhdD4gOUFBODs7OztOOzs7OzsKKzJGQkM7S0FOR1hJIFJBRElDQUwgVEFMTDtTbzswO09OOzxjb21wYXQ+IDlBRDg7Ozs7Tjs7Ozs7CisyRkJEO0tBTkdYSSBSQURJQ0FMIEhBSVI7U287MDtPTjs8Y29tcGF0PiA5QURGOzs7O047Ozs7OworMkZCRTtLQU5HWEkgUkFESUNBTCBGSUdIVDtTbzswO09OOzxjb21wYXQ+IDlCMjU7Ozs7Tjs7Ozs7CisyRkJGO0tBTkdYSSBSQURJQ0FMIFNBQ1JJRklDSUFMIFdJTkU7U287MDtPTjs8Y29tcGF0PiA5QjJGOzs7O047Ozs7OworMkZDMDtLQU5HWEkgUkFESUNBTCBDQVVMRFJPTjtTbzswO09OOzxjb21wYXQ+IDlCMzI7Ozs7Tjs7Ozs7CisyRkMxO0tBTkdYSSBSQURJQ0FMIEdIT1NUO1NvOzA7T047PGNvbXBhdD4gOUIzQzs7OztOOzs7OzsKKzJGQzI7S0FOR1hJIFJBRElDQUwgRklTSDtTbzswO09OOzxjb21wYXQ+IDlCNUE7Ozs7Tjs7Ozs7CisyRkMzO0tBTkdYSSBSQURJQ0FMIEJJUkQ7U287MDtPTjs8Y29tcGF0PiA5Q0U1Ozs7O047Ozs7OworMkZDNDtLQU5HWEkgUkFESUNBTCBTQUxUO1NvOzA7T047PGNvbXBhdD4gOUU3NTs7OztOOzs7OzsKKzJGQzU7S0FOR1hJIFJBRElDQUwgREVFUjtTbzswO09OOzxjb21wYXQ+IDlFN0Y7Ozs7Tjs7Ozs7CisyRkM2O0tBTkdYSSBSQURJQ0FMIFdIRUFUO1NvOzA7T047PGNvbXBhdD4gOUVBNTs7OztOOzs7OzsKKzJGQzc7S0FOR1hJIFJBRElDQUwgSEVNUDtTbzswO09OOzxjb21wYXQ+IDlFQkI7Ozs7Tjs7Ozs7CisyRkM4O0tBTkdYSSBSQURJQ0FMIFlFTExPVztTbzswO09OOzxjb21wYXQ+IDlFQzM7Ozs7Tjs7Ozs7CisyRkM5O0tBTkdYSSBSQURJQ0FMIE1JTExFVDtTbzswO09OOzxjb21wYXQ+IDlFQ0Q7Ozs7Tjs7Ozs7CisyRkNBO0tBTkdYSSBSQURJQ0FMIEJMQUNLO1NvOzA7T047PGNvbXBhdD4gOUVEMTs7OztOOzs7OzsKKzJGQ0I7S0FOR1hJIFJBRElDQUwgRU1CUk9JREVSWTtTbzswO09OOzxjb21wYXQ+IDlFRjk7Ozs7Tjs7Ozs7CisyRkNDO0tBTkdYSSBSQURJQ0FMIEZST0c7U287MDtPTjs8Y29tcGF0PiA5RUZEOzs7O047Ozs7OworMkZDRDtLQU5HWEkgUkFESUNBTCBUUklQT0Q7U287MDtPTjs8Y29tcGF0PiA5RjBFOzs7O047Ozs7OworMkZDRTtLQU5HWEkgUkFESUNBTCBEUlVNO1NvOzA7T047PGNvbXBhdD4gOUYxMzs7OztOOzs7OzsKKzJGQ0Y7S0FOR1hJIFJBRElDQUwgUkFUO1NvOzA7T047PGNvbXBhdD4gOUYyMDs7OztOOzs7OzsKKzJGRDA7S0FOR1hJIFJBRElDQUwgTk9TRTtTbzswO09OOzxjb21wYXQ+IDlGM0I7Ozs7Tjs7Ozs7CisyRkQxO0tBTkdYSSBSQURJQ0FMIEVWRU47U287MDtPTjs8Y29tcGF0PiA5RjRBOzs7O047Ozs7OworMkZEMjtLQU5HWEkgUkFESUNBTCBUT09USDtTbzswO09OOzxjb21wYXQ+IDlGNTI7Ozs7Tjs7Ozs7CisyRkQzO0tBTkdYSSBSQURJQ0FMIERSQUdPTjtTbzswO09OOzxjb21wYXQ+IDlGOEQ7Ozs7Tjs7Ozs7CisyRkQ0O0tBTkdYSSBSQURJQ0FMIFRVUlRMRTtTbzswO09OOzxjb21wYXQ+IDlGOUM7Ozs7Tjs7Ozs7CisyRkQ1O0tBTkdYSSBSQURJQ0FMIEZMVVRFO1NvOzA7T047PGNvbXBhdD4gOUZBMDs7OztOOzs7OzsKKzJGRjA7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIExFRlQgVE8gUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYxO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBBQk9WRSBUTyBCRUxPVztTbzswO09OOzs7OztOOzs7OzsKKzJGRjI7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIExFRlQgVE8gTUlERExFIEFORCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjM7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIEFCT1ZFIFRPIE1JRERMRSBBTkQgQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY0O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBGVUxMIFNVUlJPVU5EO1NvOzA7T047Ozs7O047Ozs7OworMkZGNTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBBQk9WRTtTbzswO09OOzs7OztOOzs7OzsKKzJGRjY7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY3O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY4O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIFVQUEVSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY5O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIFVQUEVSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGQTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGQjtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgT1ZFUkxBSUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDAwO0lERU9HUkFQSElDIFNQQUNFO1pzOzA7V1M7PHdpZGU+IDAwMjA7Ozs7Tjs7Ozs7CiszMDAxO0lERU9HUkFQSElDIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMzAwMjtJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs7Ozs7TjtJREVPR1JBUEhJQyBQRVJJT0Q7Ozs7CiszMDAzO0RJVFRPIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDA0O0pBUEFORVNFIElORFVTVFJJQUwgU1RBTkRBUkQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMzAwNTtJREVPR1JBUEhJQyBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAwNjtJREVPR1JBUEhJQyBDTE9TSU5HIE1BUks7TG87MDtMOzs7OztOOzs7OzsKKzMwMDc7SURFT0dSQVBISUMgTlVNQkVSIFpFUk87Tmw7MDtMOzs7OzA7Tjs7Ozs7CiszMDA4O0xFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMDk7UklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEE7TEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBCO1JJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEM7TEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBEO1JJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEU7TEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBGO1JJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMTA7TEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTE7UklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDEyO1BPU1RBTCBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxMztHRVRBIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDE0O0xFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTU7UklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTY7TEVGVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTc7UklHSFQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE4O0xFRlQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTk7UklHSFQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMUE7TEVGVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFCO1JJR0hUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUM7V0FWRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAxRDtSRVZFUlNFRCBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7WTs7Ozs7CiszMDFFO0RPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztZOzs7OzsKKzMwMUY7TE9XIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztZOzs7OzsKKzMwMjA7UE9TVEFMIE1BUksgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzMwMjE7SEFOR1pIT1UgTlVNRVJBTCBPTkU7Tmw7MDtMOzs7OzE7Tjs7Ozs7CiszMDIyO0hBTkdaSE9VIE5VTUVSQUwgVFdPO05sOzA7TDs7OzsyO047Ozs7OworMzAyMztIQU5HWkhPVSBOVU1FUkFMIFRIUkVFO05sOzA7TDs7OzszO047Ozs7OworMzAyNDtIQU5HWkhPVSBOVU1FUkFMIEZPVVI7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CiszMDI1O0hBTkdaSE9VIE5VTUVSQUwgRklWRTtObDswO0w7Ozs7NTtOOzs7OzsKKzMwMjY7SEFOR1pIT1UgTlVNRVJBTCBTSVg7Tmw7MDtMOzs7OzY7Tjs7Ozs7CiszMDI3O0hBTkdaSE9VIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzs7Ozc7Tjs7Ozs7CiszMDI4O0hBTkdaSE9VIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CiszMDI5O0hBTkdaSE9VIE5VTUVSQUwgTklORTtObDswO0w7Ozs7OTtOOzs7OzsKKzMwMkE7SURFT0dSQVBISUMgTEVWRUwgVE9ORSBNQVJLO01uOzIxODtOU007Ozs7O047Ozs7OworMzAyQjtJREVPR1JBUEhJQyBSSVNJTkcgVE9ORSBNQVJLO01uOzIyODtOU007Ozs7O047Ozs7OworMzAyQztJREVPR1JBUEhJQyBERVBBUlRJTkcgVE9ORSBNQVJLO01uOzIzMjtOU007Ozs7O047Ozs7OworMzAyRDtJREVPR1JBUEhJQyBFTlRFUklORyBUT05FIE1BUks7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiszMDJFO0hBTkdVTCBTSU5HTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TlNNOzs7OztOOzs7OzsKKzMwMkY7SEFOR1VMIERPVUJMRSBET1QgVE9ORSBNQVJLO01uOzIyNDtOU007Ozs7O047Ozs7OworMzAzMDtXQVZZIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDMxO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMzI7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAzMztWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIFVQUEVSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzQ7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM1O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgTE9XRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNjtDSVJDTEVEIFBPU1RBTCBNQVJLO1NvOzA7T047PGNvbXBhdD4gMzAxMjs7OztOOzs7OzsKKzMwMzc7SURFT0dSQVBISUMgVEVMRUdSQVBIIExJTkUgRkVFRCBTRVBBUkFUT1IgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMzAzODtIQU5HWkhPVSBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gNTM0MTs7OzEwO047Ozs7OworMzAzOTtIQU5HWkhPVSBOVU1FUkFMIFRXRU5UWTtObDswO0w7PGNvbXBhdD4gNTM0NDs7OzIwO047Ozs7OworMzAzQTtIQU5HWkhPVSBOVU1FUkFMIFRISVJUWTtObDswO0w7PGNvbXBhdD4gNTM0NTs7OzMwO047Ozs7OworMzAzQjtWRVJUSUNBTCBJREVPR1JBUEhJQyBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAzQztNQVNVIE1BUks7TG87MDtMOzs7OztOOzs7OzsKKzMwM0Q7UEFSVCBBTFRFUk5BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMzAzRTtJREVPR1JBUEhJQyBWQVJJQVRJT04gSU5ESUNBVE9SO1NvOzA7T047Ozs7O047Ozs7OworMzAzRjtJREVPR1JBUEhJQyBIQUxGIEZJTEwgU1BBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDQxO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQyO0hJUkFHQU5BIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ0O0hJUkFHQU5BIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ1O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ2O0hJUkFHQU5BIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ3O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ4O0hJUkFHQU5BIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ5O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRBO0hJUkFHQU5BIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRCO0hJUkFHQU5BIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMzA0QztISVJBR0FOQSBMRVRURVIgR0E7TG87MDtMOzMwNEIgMzA5OTs7OztOOzs7OzsKKzMwNEQ7SElSQUdBTkEgTEVUVEVSIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRFO0hJUkFHQU5BIExFVFRFUiBHSTtMbzswO0w7MzA0RCAzMDk5Ozs7O047Ozs7OworMzA0RjtISVJBR0FOQSBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTA7SElSQUdBTkEgTEVUVEVSIEdVO0xvOzA7TDszMDRGIDMwOTk7Ozs7Tjs7Ozs7CiszMDUxO0hJUkFHQU5BIExFVFRFUiBLRTtMbzswO0w7Ozs7O047Ozs7OworMzA1MjtISVJBR0FOQSBMRVRURVIgR0U7TG87MDtMOzMwNTEgMzA5OTs7OztOOzs7OzsKKzMwNTM7SElSQUdBTkEgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU0O0hJUkFHQU5BIExFVFRFUiBHTztMbzswO0w7MzA1MyAzMDk5Ozs7O047Ozs7OworMzA1NTtISVJBR0FOQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNTY7SElSQUdBTkEgTEVUVEVSIFpBO0xvOzA7TDszMDU1IDMwOTk7Ozs7Tjs7Ozs7CiszMDU3O0hJUkFHQU5BIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMzA1ODtISVJBR0FOQSBMRVRURVIgWkk7TG87MDtMOzMwNTcgMzA5OTs7OztOOzs7OzsKKzMwNTk7SElSQUdBTkEgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVBO0hJUkFHQU5BIExFVFRFUiBaVTtMbzswO0w7MzA1OSAzMDk5Ozs7O047Ozs7OworMzA1QjtISVJBR0FOQSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNUM7SElSQUdBTkEgTEVUVEVSIFpFO0xvOzA7TDszMDVCIDMwOTk7Ozs7Tjs7Ozs7CiszMDVEO0hJUkFHQU5BIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMzA1RTtISVJBR0FOQSBMRVRURVIgWk87TG87MDtMOzMwNUQgMzA5OTs7OztOOzs7OzsKKzMwNUY7SElSQUdBTkEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYwO0hJUkFHQU5BIExFVFRFUiBEQTtMbzswO0w7MzA1RiAzMDk5Ozs7O047Ozs7OworMzA2MTtISVJBR0FOQSBMRVRURVIgVEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNjI7SElSQUdBTkEgTEVUVEVSIERJO0xvOzA7TDszMDYxIDMwOTk7Ozs7Tjs7Ozs7CiszMDYzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7Ozs7O047Ozs7OworMzA2NDtISVJBR0FOQSBMRVRURVIgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjU7SElSQUdBTkEgTEVUVEVSIERVO0xvOzA7TDszMDY0IDMwOTk7Ozs7Tjs7Ozs7CiszMDY2O0hJUkFHQU5BIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMzA2NztISVJBR0FOQSBMRVRURVIgREU7TG87MDtMOzMwNjYgMzA5OTs7OztOOzs7OzsKKzMwNjg7SElSQUdBTkEgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY5O0hJUkFHQU5BIExFVFRFUiBETztMbzswO0w7MzA2OCAzMDk5Ozs7O047Ozs7OworMzA2QTtISVJBR0FOQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzMwNkI7SElSQUdBTkEgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZDO0hJUkFHQU5BIExFVFRFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMzA2RDtISVJBR0FOQSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkU7SElSQUdBTkEgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZGO0hJUkFHQU5BIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMzA3MDtISVJBR0FOQSBMRVRURVIgQkE7TG87MDtMOzMwNkYgMzA5OTs7OztOOzs7OzsKKzMwNzE7SElSQUdBTkEgTEVUVEVSIFBBO0xvOzA7TDszMDZGIDMwOUE7Ozs7Tjs7Ozs7CiszMDcyO0hJUkFHQU5BIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMzA3MztISVJBR0FOQSBMRVRURVIgQkk7TG87MDtMOzMwNzIgMzA5OTs7OztOOzs7OzsKKzMwNzQ7SElSQUdBTkEgTEVUVEVSIFBJO0xvOzA7TDszMDcyIDMwOUE7Ozs7Tjs7Ozs7CiszMDc1O0hJUkFHQU5BIExFVFRFUiBIVTtMbzswO0w7Ozs7O047Ozs7OworMzA3NjtISVJBR0FOQSBMRVRURVIgQlU7TG87MDtMOzMwNzUgMzA5OTs7OztOOzs7OzsKKzMwNzc7SElSQUdBTkEgTEVUVEVSIFBVO0xvOzA7TDszMDc1IDMwOUE7Ozs7Tjs7Ozs7CiszMDc4O0hJUkFHQU5BIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMzA3OTtISVJBR0FOQSBMRVRURVIgQkU7TG87MDtMOzMwNzggMzA5OTs7OztOOzs7OzsKKzMwN0E7SElSQUdBTkEgTEVUVEVSIFBFO0xvOzA7TDszMDc4IDMwOUE7Ozs7Tjs7Ozs7CiszMDdCO0hJUkFHQU5BIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMzA3QztISVJBR0FOQSBMRVRURVIgQk87TG87MDtMOzMwN0IgMzA5OTs7OztOOzs7OzsKKzMwN0Q7SElSQUdBTkEgTEVUVEVSIFBPO0xvOzA7TDszMDdCIDMwOUE7Ozs7Tjs7Ozs7CiszMDdFO0hJUkFHQU5BIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMzA3RjtISVJBR0FOQSBMRVRURVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzMwODA7SElSQUdBTkEgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgxO0hJUkFHQU5BIExFVFRFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMzA4MjtISVJBR0FOQSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzMwODM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg0O0hJUkFHQU5BIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NTtISVJBR0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODY7SElSQUdBTkEgTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg3O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7Ozs7O047Ozs7OworMzA4ODtISVJBR0FOQSBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODk7SElSQUdBTkEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhBO0hJUkFHQU5BIExFVFRFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMzA4QjtISVJBR0FOQSBMRVRURVIgUlU7TG87MDtMOzs7OztOOzs7OzsKKzMwOEM7SElSQUdBTkEgTEVUVEVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhEO0hJUkFHQU5BIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMzA4RTtISVJBR0FOQSBMRVRURVIgU01BTEwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOEY7SElSQUdBTkEgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkwO0hJUkFHQU5BIExFVFRFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMzA5MTtISVJBR0FOQSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzMwOTI7SElSQUdBTkEgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkzO0hJUkFHQU5BIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk0O0hJUkFHQU5BIExFVFRFUiBWVTtMbzswO0w7MzA0NiAzMDk5Ozs7O047Ozs7OworMzA5NTtISVJBR0FOQSBMRVRURVIgU01BTEwgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOTY7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk5O0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSztNbjs4O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUE7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtOU007Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUI7S0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOTk7Ozs7Tjs7Ozs7CiszMDlDO0tBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOUE7Ozs7Tjs7Ozs7CiszMDlEO0hJUkFHQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDlFO0hJUkFHQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzA5RCAzMDk5Ozs7O047Ozs7OworMzA5RjtISVJBR0FOQSBESUdSQVBIIFlPUkk7TG87MDtMOzx2ZXJ0aWNhbD4gMzA4OCAzMDhBOzs7O047Ozs7OworMzBBMDtLQVRBS0FOQS1ISVJBR0FOQSBET1VCTEUgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMzBBMTtLQVRBS0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMjtLQVRBS0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMztLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNDtLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNjtLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNztLQVRBS0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBODtLQVRBS0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBOTtLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQTtLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQjtLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwQUM7S0FUQUtBTkEgTEVUVEVSIEdBO0xvOzA7TDszMEFCIDMwOTk7Ozs7Tjs7Ozs7CiszMEFEO0tBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzBBRTtLQVRBS0FOQSBMRVRURVIgR0k7TG87MDtMOzMwQUQgMzA5OTs7OztOOzs7OzsKKzMwQUY7S0FUQUtBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIwO0tBVEFLQU5BIExFVFRFUiBHVTtMbzswO0w7MzBBRiAzMDk5Ozs7O047Ozs7OworMzBCMTtLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwQjI7S0FUQUtBTkEgTEVUVEVSIEdFO0xvOzA7TDszMEIxIDMwOTk7Ozs7Tjs7Ozs7CiszMEIzO0tBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzBCNDtLQVRBS0FOQSBMRVRURVIgR087TG87MDtMOzMwQjMgMzA5OTs7OztOOzs7OzsKKzMwQjU7S0FUQUtBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI2O0tBVEFLQU5BIExFVFRFUiBaQTtMbzswO0w7MzBCNSAzMDk5Ozs7O047Ozs7OworMzBCNztLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQjg7S0FUQUtBTkEgTEVUVEVSIFpJO0xvOzA7TDszMEI3IDMwOTk7Ozs7Tjs7Ozs7CiszMEI5O0tBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzBCQTtLQVRBS0FOQSBMRVRURVIgWlU7TG87MDtMOzMwQjkgMzA5OTs7OztOOzs7OzsKKzMwQkI7S0FUQUtBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJDO0tBVEFLQU5BIExFVFRFUiBaRTtMbzswO0w7MzBCQiAzMDk5Ozs7O047Ozs7OworMzBCRDtLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwQkU7S0FUQUtBTkEgTEVUVEVSIFpPO0xvOzA7TDszMEJEIDMwOTk7Ozs7Tjs7Ozs7CiszMEJGO0tBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzBDMDtLQVRBS0FOQSBMRVRURVIgREE7TG87MDtMOzMwQkYgMzA5OTs7OztOOzs7OzsKKzMwQzE7S0FUQUtBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEMyO0tBVEFLQU5BIExFVFRFUiBESTtMbzswO0w7MzBDMSAzMDk5Ozs7O047Ozs7OworMzBDMztLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzQ7S0FUQUtBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM1O0tBVEFLQU5BIExFVFRFUiBEVTtMbzswO0w7MzBDNCAzMDk5Ozs7O047Ozs7OworMzBDNjtLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzc7S0FUQUtBTkEgTEVUVEVSIERFO0xvOzA7TDszMEM2IDMwOTk7Ozs7Tjs7Ozs7CiszMEM4O0tBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzBDOTtLQVRBS0FOQSBMRVRURVIgRE87TG87MDtMOzMwQzggMzA5OTs7OztOOzs7OzsKKzMwQ0E7S0FUQUtBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENCO0tBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzBDQztLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Q7S0FUQUtBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENFO0tBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzBDRjtLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwRDA7S0FUQUtBTkEgTEVUVEVSIEJBO0xvOzA7TDszMENGIDMwOTk7Ozs7Tjs7Ozs7CiszMEQxO0tBVEFLQU5BIExFVFRFUiBQQTtMbzswO0w7MzBDRiAzMDlBOzs7O047Ozs7OworMzBEMjtLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwRDM7S0FUQUtBTkEgTEVUVEVSIEJJO0xvOzA7TDszMEQyIDMwOTk7Ozs7Tjs7Ozs7CiszMEQ0O0tBVEFLQU5BIExFVFRFUiBQSTtMbzswO0w7MzBEMiAzMDlBOzs7O047Ozs7OworMzBENTtLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDY7S0FUQUtBTkEgTEVUVEVSIEJVO0xvOzA7TDszMEQ1IDMwOTk7Ozs7Tjs7Ozs7CiszMEQ3O0tBVEFLQU5BIExFVFRFUiBQVTtMbzswO0w7MzBENSAzMDlBOzs7O047Ozs7OworMzBEODtLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDk7S0FUQUtBTkEgTEVUVEVSIEJFO0xvOzA7TDszMEQ4IDMwOTk7Ozs7Tjs7Ozs7CiszMERBO0tBVEFLQU5BIExFVFRFUiBQRTtMbzswO0w7MzBEOCAzMDlBOzs7O047Ozs7OworMzBEQjtLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwREM7S0FUQUtBTkEgTEVUVEVSIEJPO0xvOzA7TDszMERCIDMwOTk7Ozs7Tjs7Ozs7CiszMEREO0tBVEFLQU5BIExFVFRFUiBQTztMbzswO0w7MzBEQiAzMDlBOzs7O047Ozs7OworMzBERTtLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwREY7S0FUQUtBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUwO0tBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzBFMTtLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTI7S0FUQUtBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzBFNDtLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU2O0tBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNztLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTg7S0FUQUtBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU5O0tBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzBFQTtLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwRUI7S0FUQUtBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVDO0tBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzBFRDtLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwRUU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVGO0tBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBGMDtLQVRBS0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwRjE7S0FUQUtBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYyO0tBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzBGMztLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzBGNDtLQVRBS0FOQSBMRVRURVIgVlU7TG87MDtMOzMwQTYgMzA5OTs7OztOOzs7OzsKKzMwRjU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY2O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLRTtMbzswO0w7Ozs7O047Ozs7OworMzBGNztLQVRBS0FOQSBMRVRURVIgVkE7TG87MDtMOzMwRUYgMzA5OTs7OztOOzs7OzsKKzMwRjg7S0FUQUtBTkEgTEVUVEVSIFZJO0xvOzA7TDszMEYwIDMwOTk7Ozs7Tjs7Ozs7CiszMEY5O0tBVEFLQU5BIExFVFRFUiBWRTtMbzswO0w7MzBGMSAzMDk5Ozs7O047Ozs7OworMzBGQTtLQVRBS0FOQSBMRVRURVIgVk87TG87MDtMOzMwRjIgMzA5OTs7OztOOzs7OzsKKzMwRkI7S0FUQUtBTkEgTUlERExFIERPVDtQbzswO09OOzs7OztOOzs7OzsKKzMwRkM7S0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkQ7S0FUQUtBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkU7S0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMEZEIDMwOTk7Ozs7Tjs7Ozs7CiszMEZGO0tBVEFLQU5BIERJR1JBUEggS09UTztMbzswO0w7PHZlcnRpY2FsPiAzMEIzIDMwQzg7Ozs7Tjs7Ozs7CiszMTA1O0JPUE9NT0ZPIExFVFRFUiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA2O0JPUE9NT0ZPIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA3O0JPUE9NT0ZPIExFVFRFUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA4O0JPUE9NT0ZPIExFVFRFUiBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA5O0JPUE9NT0ZPIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBBO0JPUE9NT0ZPIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBCO0JPUE9NT0ZPIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBDO0JPUE9NT0ZPIExFVFRFUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBEO0JPUE9NT0ZPIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBFO0JPUE9NT0ZPIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBGO0JPUE9NT0ZPIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEwO0JPUE9NT0ZPIExFVFRFUiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTExO0JPUE9NT0ZPIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEyO0JPUE9NT0ZPIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEzO0JPUE9NT0ZPIExFVFRFUiBaSDtMbzswO0w7Ozs7O047Ozs7OworMzExNDtCT1BPTU9GTyBMRVRURVIgQ0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTU7Qk9QT01PRk8gTEVUVEVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE2O0JPUE9NT0ZPIExFVFRFUiBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE3O0JPUE9NT0ZPIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE4O0JPUE9NT0ZPIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE5O0JPUE9NT0ZPIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFBO0JPUE9NT0ZPIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFCO0JPUE9NT0ZPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFDO0JPUE9NT0ZPIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFEO0JPUE9NT0ZPIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMzExRTtCT1BPTU9GTyBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMUY7Qk9QT01PRk8gTEVUVEVSIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIwO0JPUE9NT0ZPIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMTtCT1BPTU9GTyBMRVRURVIgT1U7TG87MDtMOzs7OztOOzs7OzsKKzMxMjI7Qk9QT01PRk8gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIzO0JPUE9NT0ZPIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMzEyNDtCT1BPTU9GTyBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI1O0JPUE9NT0ZPIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjY7Qk9QT01PRk8gTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI3O0JPUE9NT0ZPIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI4O0JPUE9NT0ZPIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI5O0JPUE9NT0ZPIExFVFRFUiBJVTtMbzswO0w7Ozs7O047Ozs7OworMzEyQTtCT1BPTU9GTyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMzEyQjtCT1BPTU9GTyBMRVRURVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMkM7Qk9QT01PRk8gTEVUVEVSIEdOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTMxO0hBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAwOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CiszMTMyO0hBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKKzMxMzM7SEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQTs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CiszMTM0O0hBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDI7Ozs7Tjs7Ozs7CiszMTM1O0hBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworMzEzNjtIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFEOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKKzMxMzc7SEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDM7Ozs7TjtIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKKzMxMzg7SEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworMzEzOTtIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKKzMxM0E7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjA7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKKzMxM0I7SEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCMTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CiszMTNDO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjI7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworMzEzRDtIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CiszMTNFO0hBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFCNDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CiszMTNGO0hBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CiszMTQwO0hBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMUE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworMzE0MTtIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2Ozs7O047Ozs7OworMzE0MjtIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKKzMxNDM7SEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKKzMxNDQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTIxOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworMzE0NTtIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDk7Ozs7Tjs7Ozs7CiszMTQ2O0hBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTBBOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworMzE0NztIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTBCOzs7O047Ozs7OworMzE0ODtIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDOzs7O047SEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKKzMxNDk7SEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBEOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKKzMxNEE7SEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBFOzs7O047SEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKKzMxNEI7SEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTBGOzs7O047SEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CiszMTRDO0hBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTExMDs7OztOO0hBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CiszMTREO0hBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMTs7OztOO0hBTkdVTCBMRVRURVIgUElFVVA7Ozs7CiszMTRFO0hBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTI7Ozs7Tjs7Ozs7CiszMTRGO0hBTkdVTCBMRVRURVIgQTtMbzswO0w7PGNvbXBhdD4gMTE2MTs7OztOOzs7OzsKKzMxNTA7SEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PGNvbXBhdD4gMTE2Mjs7OztOOzs7OzsKKzMxNTE7SEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PGNvbXBhdD4gMTE2Mzs7OztOOzs7OzsKKzMxNTI7SEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxjb21wYXQ+IDExNjQ7Ozs7Tjs7Ozs7CiszMTUzO0hBTkdVTCBMRVRURVIgRU87TG87MDtMOzxjb21wYXQ+IDExNjU7Ozs7Tjs7Ozs7CiszMTU0O0hBTkdVTCBMRVRURVIgRTtMbzswO0w7PGNvbXBhdD4gMTE2Njs7OztOOzs7OzsKKzMxNTU7SEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxjb21wYXQ+IDExNjc7Ozs7Tjs7Ozs7CiszMTU2O0hBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxjb21wYXQ+IDExNjg7Ozs7Tjs7Ozs7CiszMTU3O0hBTkdVTCBMRVRURVIgTztMbzswO0w7PGNvbXBhdD4gMTE2OTs7OztOOzs7OzsKKzMxNTg7SEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PGNvbXBhdD4gMTE2QTs7OztOOzs7OzsKKzMxNTk7SEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxjb21wYXQ+IDExNkI7Ozs7Tjs7Ozs7CiszMTVBO0hBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxjb21wYXQ+IDExNkM7Ozs7Tjs7Ozs7CiszMTVCO0hBTkdVTCBMRVRURVIgWU87TG87MDtMOzxjb21wYXQ+IDExNkQ7Ozs7Tjs7Ozs7CiszMTVDO0hBTkdVTCBMRVRURVIgVTtMbzswO0w7PGNvbXBhdD4gMTE2RTs7OztOOzs7OzsKKzMxNUQ7SEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxjb21wYXQ+IDExNkY7Ozs7Tjs7Ozs7CiszMTVFO0hBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxjb21wYXQ+IDExNzA7Ozs7Tjs7Ozs7CiszMTVGO0hBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxjb21wYXQ+IDExNzE7Ozs7Tjs7Ozs7CiszMTYwO0hBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxjb21wYXQ+IDExNzI7Ozs7Tjs7Ozs7CiszMTYxO0hBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxjb21wYXQ+IDExNzM7Ozs7Tjs7Ozs7CiszMTYyO0hBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxjb21wYXQ+IDExNzQ7Ozs7Tjs7Ozs7CiszMTYzO0hBTkdVTCBMRVRURVIgSTtMbzswO0w7PGNvbXBhdD4gMTE3NTs7OztOOzs7OzsKKzMxNjQ7SEFOR1VMIEZJTExFUjtMbzswO0w7PGNvbXBhdD4gMTE2MDs7OztOO0hBTkdVTCBDQUUgT007Ozs7CiszMTY1O0hBTkdVTCBMRVRURVIgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTExNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgTklFVU47Ozs7CiszMTY2O0hBTkdVTCBMRVRURVIgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTE1Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBESUdFVUQ7Ozs7CiszMTY3O0hBTkdVTCBMRVRURVIgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDNzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gU0lPUzs7OzsKKzMxNjg7SEFOR1VMIExFVFRFUiBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM4Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBCQU4gQ0hJIEVVTTs7OzsKKzMxNjk7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDQzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HIFNJT1M7Ozs7CiszMTZBO0hBTkdVTCBMRVRURVIgUklFVUwtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUNFOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBESUdFVUQ7Ozs7CiszMTZCO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFEMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUIgU0lPUzs7OzsKKzMxNkM7SEFOR1VMIExFVFRFUiBSSUVVTC1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQ3Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCQU4gQ0hJIEVVTTs7OzsKKzMxNkQ7SEFOR1VMIExFVFRFUiBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFEOTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgWUVPTElOIEhJRVVIOzs7OworMzE2RTtIQU5HVUwgTEVUVEVSIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTFDOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBCSUVVQjs7OzsKKzMxNkY7SEFOR1VMIExFVFRFUiBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUREOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTSU9TOzs7OworMzE3MDtIQU5HVUwgTEVUVEVSIE1JRVVNLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExREY7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEJBTiBDSEkgRVVNOzs7OworMzE3MTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3MjtIQU5HVUwgTEVUVEVSIFBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTExRTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgR0lZRU9HOzs7OworMzE3MztIQU5HVUwgTEVUVEVSIFBJRVVQLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMDs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgRElHRVVEOzs7OworMzE3NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTIyOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIEdJWUVPRzs7OzsKKzMxNzU7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBESUdFVUQ7Ozs7CiszMTc2O0hBTkdVTCBMRVRURVIgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMjc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEpJRVVKOzs7OworMzE3NztIQU5HVUwgTEVUVEVSIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMjk7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFRJRVVUOzs7OworMzE3ODtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3OTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTdBO0hBTkdVTCBMRVRURVIgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMkQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgR0lZRU9HOzs7OworMzE3QjtIQU5HVUwgTEVUVEVSIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMkU7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgTklFVU47Ozs7CiszMTdDO0hBTkdVTCBMRVRURVIgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMkY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgRElHRVVEOzs7OworMzE3RDtIQU5HVUwgTEVUVEVSIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMzI7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgQklFVUI7Ozs7CiszMTdFO0hBTkdVTCBMRVRURVIgU0lPUy1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEzNjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBKSUVVSjs7OzsKKzMxN0Y7SEFOR1VMIExFVFRFUiBQQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTQwOzs7O047SEFOR1VMIExFVFRFUiBCQU4gQ0hJIEVVTTs7OzsKKzMxODA7SEFOR1VMIExFVFRFUiBTU0FOR0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTQ3Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBJRVVORzs7OzsKKzMxODE7SEFOR1VMIExFVFRFUiBZRVNJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Qzs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORzs7OzsKKzMxODI7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYxOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIFNJT1M7Ozs7CiszMTgzO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMjs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBCQU4gQ0hJIEVVTTs7OzsKKzMxODQ7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExNTc7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQIFNVTiBHWUVPTkcgRVVNOzs7OworMzE4NTtIQU5HVUwgTEVUVEVSIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEhJRVVIOzs7OworMzE4NjtIQU5HVUwgTEVUVEVSIFlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU5Ozs7O047SEFOR1VMIExFVFRFUiBZRU9MSU4gSElFVUg7Ozs7CiszMTg3O0hBTkdVTCBMRVRURVIgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExODQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUE7Ozs7CiszMTg4O0hBTkdVTCBMRVRURVIgWU8tWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTg1Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBRTs7OzsKKzMxODk7SEFOR1VMIExFVFRFUiBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTg4Ozs7O047SEFOR1VMIExFVFRFUiBZT0k7Ozs7CiszMThBO0hBTkdVTCBMRVRURVIgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTkxOzs7O047SEFOR1VMIExFVFRFUiBZVVlFTzs7OzsKKzMxOEI7SEFOR1VMIExFVFRFUiBZVS1ZRTtMbzswO0w7PGNvbXBhdD4gMTE5Mjs7OztOO0hBTkdVTCBMRVRURVIgWVVZRTs7OzsKKzMxOEM7SEFOR1VMIExFVFRFUiBZVS1JO0xvOzA7TDs8Y29tcGF0PiAxMTk0Ozs7O047SEFOR1VMIExFVFRFUiBZVUk7Ozs7CiszMThEO0hBTkdVTCBMRVRURVIgQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExOUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQTs7OzsKKzMxOEU7SEFOR1VMIExFVFRFUiBBUkFFQUU7TG87MDtMOzxjb21wYXQ+IDExQTE7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQUU7Ozs7CiszMTkwO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTElOS0lORyBNQVJLO1NvOzA7TDs7Ozs7TjtLQU5CVU4gVEFURVRFTjtLYW5idW4gVGF0ZXRlbjs7OworMzE5MTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFJFVkVSU0UgTUFSSztTbzswO0w7Ozs7O047S0FFUklURU4gUkU7S2Flcml0ZW47OzsKKzMxOTI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBPTkUgTUFSSztObzswO0w7PHN1cGVyPiA0RTAwOzs7MTtOO0tBRVJJVEVOIElUSTtLYWVyaXRlbjs7OworMzE5MztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRXTyBNQVJLO05vOzA7TDs8c3VwZXI+IDRFOEM7OzsyO047S0FFUklURU4gTkk7S2Flcml0ZW47OzsKKzMxOTQ7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUSFJFRSBNQVJLO05vOzA7TDs8c3VwZXI+IDRFMDk7OzszO047S0FFUklURU4gU0FOO0thZXJpdGVuOzs7CiszMTk1O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUiBNQVJLO05vOzA7TDs8c3VwZXI+IDU2REI7Ozs0O047S0FFUklURU4gU0k7S2Flcml0ZW47OzsKKzMxOTY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUT1AgTUFSSztTbzswO0w7PHN1cGVyPiA0RTBBOzs7O047S0FFUklURU4gWllPVTtLYWVyaXRlbjs7OworMzE5NztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1JRERMRSBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMkQ7Ozs7TjtLQUVSSVRFTiBUWVVVO0thZXJpdGVuOzs7CiszMTk4O0lERU9HUkFQSElDIEFOTk9UQVRJT04gQk9UVE9NIE1BUks7U287MDtMOzxzdXBlcj4gNEUwQjs7OztOO0tBRVJJVEVOIEdFO0thZXJpdGVuOzs7CiszMTk5O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRklSU1QgTUFSSztTbzswO0w7PHN1cGVyPiA3NTMyOzs7O047S0FFUklURU4gS09VO0thZXJpdGVuOzs7CiszMTlBO0lERU9HUkFQSElDIEFOTk9UQVRJT04gU0VDT05EIE1BUks7U287MDtMOzxzdXBlcj4gNEU1OTs7OztOO0tBRVJJVEVOIE9UVTtLYWVyaXRlbjs7OworMzE5QjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRISVJEIE1BUks7U287MDtMOzxzdXBlcj4gNEUxOTs7OztOO0tBRVJJVEVOIEhFSTtLYWVyaXRlbjs7OworMzE5QztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMDE7Ozs7TjtLQUVSSVRFTiBURUk7S2Flcml0ZW47OzsKKzMxOUQ7SURFT0dSQVBISUMgQU5OT1RBVElPTiBIRUFWRU4gTUFSSztTbzswO0w7PHN1cGVyPiA1OTI5Ozs7O047S0FFUklURU4gVEVOO0thZXJpdGVuOzs7CiszMTlFO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRUFSVEggTUFSSztTbzswO0w7PHN1cGVyPiA1NzMwOzs7O047S0FFUklURU4gVEk7S2Flcml0ZW47OzsKKzMxOUY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBNQU4gTUFSSztTbzswO0w7PHN1cGVyPiA0RUJBOzs7O047S0FFUklURU4gWklOO0thZXJpdGVuOzs7CiszMUEwO0JPUE9NT0ZPIExFVFRFUiBCVTtMbzswO0w7Ozs7O047Ozs7OworMzFBMTtCT1BPTU9GTyBMRVRURVIgWkk7TG87MDtMOzs7OztOOzs7OzsKKzMxQTI7Qk9QT01PRk8gTEVUVEVSIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUEzO0JPUE9NT0ZPIExFVFRFUiBHVTtMbzswO0w7Ozs7O047Ozs7OworMzFBNDtCT1BPTU9GTyBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzMxQTU7Qk9QT01PRk8gTEVUVEVSIEVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBNjtCT1BPTU9GTyBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzMxQTc7Qk9QT01PRk8gTEVUVEVSIE9OTjtMbzswO0w7Ozs7O047Ozs7OworMzFBODtCT1BPTU9GTyBMRVRURVIgSVI7TG87MDtMOzs7OztOOzs7OzsKKzMxQTk7Qk9QT01PRk8gTEVUVEVSIEFOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQTtCT1BPTU9GTyBMRVRURVIgSU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFCO0JPUE9NT0ZPIExFVFRFUiBVTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUM7Qk9QT01PRk8gTEVUVEVSIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFEO0JPUE9NT0ZPIExFVFRFUiBOR0c7TG87MDtMOzs7OztOOzs7OzsKKzMxQUU7Qk9QT01PRk8gTEVUVEVSIEFJTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUY7Qk9QT01PRk8gTEVUVEVSIEFVTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQjA7Qk9QT01PRk8gTEVUVEVSIEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIxO0JPUE9NT0ZPIExFVFRFUiBPTTtMbzswO0w7Ozs7O047Ozs7OworMzFCMjtCT1BPTU9GTyBMRVRURVIgT05HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIzO0JPUE9NT0ZPIExFVFRFUiBJTk5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI0O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI1O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI2O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI3O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUMwO0NKSyBTVFJPS0UgVDtTbzswO09OOzs7OztOOzs7OzsKKzMxQzE7Q0pLIFNUUk9LRSBXRztTbzswO09OOzs7OztOOzs7OzsKKzMxQzI7Q0pLIFNUUk9LRSBYRztTbzswO09OOzs7OztOOzs7OzsKKzMxQzM7Q0pLIFNUUk9LRSBCWEc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM0O0NKSyBTVFJPS0UgU1c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM1O0NKSyBTVFJPS0UgSFpaO1NvOzA7T047Ozs7O047Ozs7OworMzFDNjtDSksgU1RST0tFIEhaRztTbzswO09OOzs7OztOOzs7OzsKKzMxQzc7Q0pLIFNUUk9LRSBIUDtTbzswO09OOzs7OztOOzs7OzsKKzMxQzg7Q0pLIFNUUk9LRSBIWldHO1NvOzA7T047Ozs7O047Ozs7OworMzFDOTtDSksgU1RST0tFIFNaV0c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNBO0NKSyBTVFJPS0UgSFpUO1NvOzA7T047Ozs7O047Ozs7OworMzFDQjtDSksgU1RST0tFIEhaWlA7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNDO0NKSyBTVFJPS0UgSFBXRztTbzswO09OOzs7OztOOzs7OzsKKzMxQ0Q7Q0pLIFNUUk9LRSBIWlc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNFO0NKSyBTVFJPS0UgSFpaWjtTbzswO09OOzs7OztOOzs7OzsKKzMxQ0Y7Q0pLIFNUUk9LRSBOO1NvOzA7T047Ozs7O047Ozs7OworMzFGMDtLQVRBS0FOQSBMRVRURVIgU01BTEwgS1U7TG87MDtMOzs7OztOOzs7OzsKKzMxRjE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUYyO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBTVTtMbzswO0w7Ozs7O047Ozs7OworMzFGMztLQVRBS0FOQSBMRVRURVIgU01BTEwgVE87TG87MDtMOzs7OztOOzs7OzsKKzMxRjQ7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBIQTtMbzswO0w7Ozs7O047Ozs7OworMzFGNjtLQVRBS0FOQSBMRVRURVIgU01BTEwgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMxRjc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY4O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBIRTtMbzswO0w7Ozs7O047Ozs7OworMzFGOTtLQVRBS0FOQSBMRVRURVIgU01BTEwgSE87TG87MDtMOzs7OztOOzs7OzsKKzMxRkE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZCO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSQTtMbzswO0w7Ozs7O047Ozs7OworMzFGQztLQVRBS0FOQSBMRVRURVIgU01BTEwgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMxRkQ7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZFO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSRTtMbzswO0w7Ozs7O047Ozs7OworMzFGRjtLQVRBS0FOQSBMRVRURVIgU01BTEwgUk87TG87MDtMOzs7OztOOzs7OzsKKzMyMDA7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyMDE7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU47U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAwMDI5Ozs7O047Ozs7OworMzIwMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgRElHRVVEOzs7OworMzIwMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyMDQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAwMDI5Ozs7O047Ozs7OworMzIwNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyMDY7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjA3O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMDAyOTs7OztOOzs7OzsKKzMyMDg7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjA5O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjBBO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LOzs7OworMzIwQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJRVVUOzs7OworMzIwQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQOzs7OworMzIwRDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDAwMjk7Ozs7Tjs7Ozs7CiszMjBFO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0E7Ozs7CiszMjBGO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOQTs7OzsKKzMyMTA7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBEQTs7OzsKKzMyMTE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExBOzs7OworMzIxMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTUE7Ozs7CiszMjEzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCQTs7OzsKKzMyMTQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgU0E7Ozs7CiszMjE1O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBBOzs7OworMzIxNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSkE7Ozs7CiszMjE3O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENBOzs7OworMzIxODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLQTs7OzsKKzMyMTk7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVEE7Ozs7CiszMjFBO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBBOzs7OworMzIxQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSEE7Ozs7CiszMjFDO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTZFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKVTs7OzsKKzMyMUQ7UEFSRU5USEVTSVpFRCBLT1JFQU4gQ0hBUkFDVEVSIE9KRU9OO1NvOzA7T047PGNvbXBhdD4gMDAyOCAxMTBCIDExNjkgMTEwQyAxMTY1IDExQUIgMDAyOTs7OztOOzs7OzsKKzMyMUU7UEFSRU5USEVTSVpFRCBLT1JFQU4gQ0hBUkFDVEVSIE8gSFU7U287MDtPTjs8Y29tcGF0PiAwMDI4IDExMEIgMTE2OSAxMTEyIDExNkUgMDAyOTs7OztOOzs7OzsKKzMyMjA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDAgMDAyOTs7OzE7Tjs7Ozs7CiszMjIxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNvbXBhdD4gMDAyOCA0RThDIDAwMjk7OzsyO047Ozs7OworMzIyMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBUSFJFRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTA5IDAwMjk7OzszO047Ozs7OworMzIyMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y29tcGF0PiAwMDI4IDU2REIgMDAyOTs7OzQ7Tjs7Ozs7CiszMjI0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU5NCAwMDI5Ozs7NTtOOzs7OzsKKzMyMjU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0lYO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUxNkQgMDAyOTs7OzY7Tjs7Ozs7CiszMjI2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDMgMDAyOTs7Ozc7Tjs7Ozs7CiszMjI3O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUxNkIgMDAyOTs7Ozg7Tjs7Ozs7CiszMjI4O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5JTkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU1RCAwMDI5Ozs7OTtOOzs7OzsKKzMyMjk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUzNDEgMDAyOTs7OzEwO047Ozs7OworMzIyQTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNT09OO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDggMDAyOTs7OztOOzs7OzsKKzMyMkI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklSRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3MDZCIDAwMjk7Ozs7Tjs7Ozs7CiszMjJDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdBVEVSO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDZDMzQgMDAyOTs7OztOOzs7OzsKKzMyMkQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggV09PRDtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzI4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJFO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE1FVEFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDkxRDEgMDAyOTs7OztOOzs7OzsKKzMyMkY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUFSVEg7U287MDtMOzxjb21wYXQ+IDAwMjggNTcxRiAwMDI5Ozs7O047Ozs7OworMzIzMDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVU47U287MDtMOzxjb21wYXQ+IDAwMjggNjVFNSAwMDI5Ozs7O047Ozs7OworMzIzMTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVE9DSztTbzswO0w7PGNvbXBhdD4gMDAyOCA2ODJBIDAwMjk7Ozs7Tjs7Ozs7CiszMjMyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEhBVkU7U287MDtMOzxjb21wYXQ+IDAwMjggNjcwOSAwMDI5Ozs7O047Ozs7OworMzIzMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTT0NJRVRZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5M0UgMDAyOTs7OztOOzs7OzsKKzMyMzQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTkFNRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NDBEIDAwMjk7Ozs7Tjs7Ozs7CiszMjM1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNQRUNJQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzI3OSAwMDI5Ozs7O047Ozs7OworMzIzNjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSU5BTkNJQUw7U287MDtMOzxjb21wYXQ+IDAwMjggOENBMSAwMDI5Ozs7O047Ozs7OworMzIzNztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBDT05HUkFUVUxBVElPTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTVEIDAwMjk7Ozs7Tjs7Ozs7CiszMjM4O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIExBQk9SO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUyQjQgMDAyOTs7OztOOzs7OzsKKzMyMzk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVQUkVTRU5UO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRFRTMgMDAyOTs7OztOOzs7OzsKKzMyM0E7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ0FMTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NDdDIDAwMjk7Ozs7Tjs7Ozs7CiszMjNCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNUVURZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDVCNjYgMDAyOTs7OztOOzs7OzsKKzMyM0M7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VQRVJWSVNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc2RTMgMDAyOTs7OztOOzs7OzsKKzMyM0Q7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRU5URVJQUklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RjAxIDAwMjk7Ozs7Tjs7Ozs7CiszMjNFO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFU09VUkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQzcgMDAyOTs7OztOOzs7OzsKKzMyM0Y7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQUxMSUFOQ0U7U287MDtMOzxjb21wYXQ+IDAwMjggNTM1NCAwMDI5Ozs7O047Ozs7OworMzI0MDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGRVNUSVZBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTZEIDAwMjk7Ozs7Tjs7Ozs7CiszMjQxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFU1Q7U287MDtMOzxjb21wYXQ+IDAwMjggNEYxMSAwMDI5Ozs7O047Ozs7OworMzI0MjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTRUxGO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRUEgMDAyOTs7OztOOzs7OzsKKzMyNDM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVBQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggODFGMyAwMDI5Ozs7O047Ozs7OworMzI1MDtQQVJUTkVSU0hJUCBTSUdOO1NvOzA7T047PHNxdWFyZT4gMDA1MCAwMDU0IDAwNDU7Ozs7Tjs7Ozs7CiszMjUxO0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBPTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzE7OzsyMTtOOzs7OzsKKzMyNTI7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzMjs7OzIyO047Ozs7OworMzI1MztDSVJDTEVEIE5VTUJFUiBUV0VOVFkgVEhSRUU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzM7OzsyMztOOzs7OzsKKzMyNTQ7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEZPVVI7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzQ7OzsyNDtOOzs7OzsKKzMyNTU7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzU7OzsyNTtOOzs7OzsKKzMyNTY7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFNJWDtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzNjs7OzI2O047Ozs7OworMzI1NztDSVJDTEVEIE5VTUJFUiBUV0VOVFkgU0VWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzc7OzsyNztOOzs7OzsKKzMyNTg7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM4Ozs7Mjg7Tjs7Ozs7CiszMjU5O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBOSU5FO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM5Ozs7Mjk7Tjs7Ozs7CiszMjVBO0NJUkNMRUQgTlVNQkVSIFRISVJUWTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMDs7OzMwO047Ozs7OworMzI1QjtDSVJDTEVEIE5VTUJFUiBUSElSVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMxOzs7MzE7Tjs7Ozs7CiszMjVDO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBUV087Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzI7OzszMjtOOzs7OzsKKzMyNUQ7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMzOzs7MzM7Tjs7Ozs7CiszMjVFO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM0Ozs7MzQ7Tjs7Ozs7CiszMjVGO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBGSVZFO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM1Ozs7MzU7Tjs7Ozs7CiszMjYwO0NJUkNMRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNpcmNsZT4gMTEwMDs7OztOO0NJUkNMRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyNjE7Q0lSQ0xFRCBIQU5HVUwgTklFVU47U287MDtMOzxjaXJjbGU+IDExMDI7Ozs7Tjs7Ozs7CiszMjYyO0NJUkNMRUQgSEFOR1VMIFRJS0VVVDtTbzswO0w7PGNpcmNsZT4gMTEwMzs7OztOO0NJUkNMRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyNjM7Q0lSQ0xFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjaXJjbGU+IDExMDU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyNjQ7Q0lSQ0xFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjaXJjbGU+IDExMDY7Ozs7Tjs7Ozs7CiszMjY1O0NJUkNMRUQgSEFOR1VMIFBJRVVQO1NvOzA7TDs8Y2lyY2xlPiAxMTA3Ozs7O047Q0lSQ0xFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjY2O0NJUkNMRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjaXJjbGU+IDExMDk7Ozs7Tjs7Ozs7CiszMjY3O0NJUkNMRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y2lyY2xlPiAxMTBCOzs7O047Ozs7OworMzI2ODtDSVJDTEVEIEhBTkdVTCBDSUVVQztTbzswO0w7PGNpcmNsZT4gMTEwQzs7OztOO0NJUkNMRUQgSEFOR1VMIEpJRVVKOzs7OworMzI2OTtDSVJDTEVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y2lyY2xlPiAxMTBFOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjZBO0NJUkNMRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjaXJjbGU+IDExMEY7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7Ozs7CiszMjZCO0NJUkNMRUQgSEFOR1VMIFRISUVVVEg7U287MDtMOzxjaXJjbGU+IDExMTA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyNkM7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNpcmNsZT4gMTExMTs7OztOO0NJUkNMRUQgSEFOR1VMIFBJRVVQOzs7OworMzI2RDtDSVJDTEVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNpcmNsZT4gMTExMjs7OztOOzs7OzsKKzMyNkU7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LIEE7U287MDtMOzxjaXJjbGU+IDExMDAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEdBOzs7OworMzI2RjtDSVJDTEVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBOQTs7OzsKKzMyNzA7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjaXJjbGU+IDExMDMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIERBOzs7OworMzI3MTtDSVJDTEVEIEhBTkdVTCBSSUVVTCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA1IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMQTs7OzsKKzMyNzI7Q0lSQ0xFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNpcmNsZT4gMTEwNiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTUE7Ozs7CiszMjczO0NJUkNMRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjaXJjbGU+IDExMDcgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEJBOzs7OworMzI3NDtDSVJDTEVEIEhBTkdVTCBTSU9TIEE7U287MDtMOzxjaXJjbGU+IDExMDkgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFNBOzs7OworMzI3NTtDSVJDTEVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBCIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBBOzs7OworMzI3NjtDSVJDTEVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBDIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKQTs7OzsKKzMyNzc7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBFIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDQTs7OzsKKzMyNzg7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBGIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLQTs7OzsKKzMyNzk7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUQTs7OzsKKzMyN0E7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTExIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQQTs7OzsKKzMyN0I7Q0lSQ0xFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNpcmNsZT4gMTExMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSEE7Ozs7CiszMjdDO0NJUkNMRUQgS09SRUFOIENIQVJBQ1RFUiBDSEFNS087U287MDtPTjs8Y2lyY2xlPiAxMTBFIDExNjEgMTFCNyAxMTAwIDExNjk7Ozs7Tjs7Ozs7CiszMjdEO0NJUkNMRUQgS09SRUFOIENIQVJBQ1RFUiBKVUVVSTtTbzswO09OOzxjaXJjbGU+IDExMEMgMTE2RSAxMTBCIDExNzQ7Ozs7Tjs7Ozs7CiszMjdFO0NJUkNMRUQgSEFOR1VMIElFVU5HIFU7U287MDtPTjs8Y2lyY2xlPiAxMTBCIDExNkU7Ozs7Tjs7Ozs7CiszMjdGO0tPUkVBTiBTVEFOREFSRCBTWU1CT0w7U287MDtMOzs7OztOOzs7OzsKKzMyODA7Q0lSQ0xFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y2lyY2xlPiA0RTAwOzs7MTtOOzs7OzsKKzMyODE7Q0lSQ0xFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y2lyY2xlPiA0RThDOzs7MjtOOzs7OzsKKzMyODI7Q0lSQ0xFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjaXJjbGU+IDRFMDk7OzszO047Ozs7OworMzI4MztDSVJDTEVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y2lyY2xlPiA1NkRCOzs7NDtOOzs7OzsKKzMyODQ7Q0lSQ0xFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNpcmNsZT4gNEU5NDs7OzU7Tjs7Ozs7CiszMjg1O0NJUkNMRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNpcmNsZT4gNTE2RDs7OzY7Tjs7Ozs7CiszMjg2O0NJUkNMRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y2lyY2xlPiA0RTAzOzs7NztOOzs7OzsKKzMyODc7Q0lSQ0xFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjaXJjbGU+IDUxNkI7Ozs4O047Ozs7OworMzI4ODtDSVJDTEVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y2lyY2xlPiA0RTVEOzs7OTtOOzs7OzsKKzMyODk7Q0lSQ0xFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y2lyY2xlPiA1MzQxOzs7MTA7Tjs7Ozs7CiszMjhBO0NJUkNMRUQgSURFT0dSQVBIIE1PT047U287MDtMOzxjaXJjbGU+IDY3MDg7Ozs7Tjs7Ozs7CiszMjhCO0NJUkNMRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjaXJjbGU+IDcwNkI7Ozs7Tjs7Ozs7CiszMjhDO0NJUkNMRUQgSURFT0dSQVBIIFdBVEVSO1NvOzA7TDs8Y2lyY2xlPiA2QzM0Ozs7O047Ozs7OworMzI4RDtDSVJDTEVEIElERU9HUkFQSCBXT09EO1NvOzA7TDs8Y2lyY2xlPiA2NzI4Ozs7O047Ozs7OworMzI4RTtDSVJDTEVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNpcmNsZT4gOTFEMTs7OztOOzs7OzsKKzMyOEY7Q0lSQ0xFRCBJREVPR1JBUEggRUFSVEg7U287MDtMOzxjaXJjbGU+IDU3MUY7Ozs7Tjs7Ozs7CiszMjkwO0NJUkNMRUQgSURFT0dSQVBIIFNVTjtTbzswO0w7PGNpcmNsZT4gNjVFNTs7OztOOzs7OzsKKzMyOTE7Q0lSQ0xFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjaXJjbGU+IDY4MkE7Ozs7Tjs7Ozs7CiszMjkyO0NJUkNMRUQgSURFT0dSQVBIIEhBVkU7U287MDtMOzxjaXJjbGU+IDY3MDk7Ozs7Tjs7Ozs7CiszMjkzO0NJUkNMRUQgSURFT0dSQVBIIFNPQ0lFVFk7U287MDtMOzxjaXJjbGU+IDc5M0U7Ozs7Tjs7Ozs7CiszMjk0O0NJUkNMRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjaXJjbGU+IDU0MEQ7Ozs7Tjs7Ozs7CiszMjk1O0NJUkNMRUQgSURFT0dSQVBIIFNQRUNJQUw7U287MDtMOzxjaXJjbGU+IDcyNzk7Ozs7Tjs7Ozs7CiszMjk2O0NJUkNMRUQgSURFT0dSQVBIIEZJTkFOQ0lBTDtTbzswO0w7PGNpcmNsZT4gOENBMTs7OztOOzs7OzsKKzMyOTc7Q0lSQ0xFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjaXJjbGU+IDc5NUQ7Ozs7Tjs7Ozs7CiszMjk4O0NJUkNMRUQgSURFT0dSQVBIIExBQk9SO1NvOzA7TDs8Y2lyY2xlPiA1MkI0Ozs7O047Ozs7OworMzI5OTtDSVJDTEVEIElERU9HUkFQSCBTRUNSRVQ7U287MDtMOzxjaXJjbGU+IDc5RDg7Ozs7Tjs7Ozs7CiszMjlBO0NJUkNMRUQgSURFT0dSQVBIIE1BTEU7U287MDtMOzxjaXJjbGU+IDc1Mzc7Ozs7Tjs7Ozs7CiszMjlCO0NJUkNMRUQgSURFT0dSQVBIIEZFTUFMRTtTbzswO0w7PGNpcmNsZT4gNTk3Mzs7OztOOzs7OzsKKzMyOUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VJVEFCTEU7U287MDtMOzxjaXJjbGU+IDkwNjk7Ozs7Tjs7Ozs7CiszMjlEO0NJUkNMRUQgSURFT0dSQVBIIEVYQ0VMTEVOVDtTbzswO0w7PGNpcmNsZT4gNTEyQTs7OztOOzs7OzsKKzMyOUU7Q0lSQ0xFRCBJREVPR1JBUEggUFJJTlQ7U287MDtMOzxjaXJjbGU+IDUzNzA7Ozs7Tjs7Ozs7CiszMjlGO0NJUkNMRUQgSURFT0dSQVBIIEFUVEVOVElPTjtTbzswO0w7PGNpcmNsZT4gNkNFODs7OztOOzs7OzsKKzMyQTA7Q0lSQ0xFRCBJREVPR1JBUEggSVRFTTtTbzswO0w7PGNpcmNsZT4gOTgwNTs7OztOOzs7OzsKKzMyQTE7Q0lSQ0xFRCBJREVPR1JBUEggUkVTVDtTbzswO0w7PGNpcmNsZT4gNEYxMTs7OztOOzs7OzsKKzMyQTI7Q0lSQ0xFRCBJREVPR1JBUEggQ09QWTtTbzswO0w7PGNpcmNsZT4gNTE5OTs7OztOOzs7OzsKKzMyQTM7Q0lSQ0xFRCBJREVPR1JBUEggQ09SUkVDVDtTbzswO0w7PGNpcmNsZT4gNkI2Mzs7OztOOzs7OzsKKzMyQTQ7Q0lSQ0xFRCBJREVPR1JBUEggSElHSDtTbzswO0w7PGNpcmNsZT4gNEUwQTs7OztOOzs7OzsKKzMyQTU7Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVFJFO1NvOzA7TDs8Y2lyY2xlPiA0RTJEOzs7O047Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVEVSOzs7OworMzJBNjtDSVJDTEVEIElERU9HUkFQSCBMT1c7U287MDtMOzxjaXJjbGU+IDRFMEI7Ozs7Tjs7Ozs7CiszMkE3O0NJUkNMRUQgSURFT0dSQVBIIExFRlQ7U287MDtMOzxjaXJjbGU+IDVERTY7Ozs7Tjs7Ozs7CiszMkE4O0NJUkNMRUQgSURFT0dSQVBIIFJJR0hUO1NvOzA7TDs8Y2lyY2xlPiA1M0YzOzs7O047Ozs7OworMzJBOTtDSVJDTEVEIElERU9HUkFQSCBNRURJQ0lORTtTbzswO0w7PGNpcmNsZT4gNTMzQjs7OztOOzs7OzsKKzMyQUE7Q0lSQ0xFRCBJREVPR1JBUEggUkVMSUdJT047U287MDtMOzxjaXJjbGU+IDVCOTc7Ozs7Tjs7Ozs7CiszMkFCO0NJUkNMRUQgSURFT0dSQVBIIFNUVURZO1NvOzA7TDs8Y2lyY2xlPiA1QjY2Ozs7O047Ozs7OworMzJBQztDSVJDTEVEIElERU9HUkFQSCBTVVBFUlZJU0U7U287MDtMOzxjaXJjbGU+IDc2RTM7Ozs7Tjs7Ozs7CiszMkFEO0NJUkNMRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjaXJjbGU+IDRGMDE7Ozs7Tjs7Ozs7CiszMkFFO0NJUkNMRUQgSURFT0dSQVBIIFJFU09VUkNFO1NvOzA7TDs8Y2lyY2xlPiA4Q0M3Ozs7O047Ozs7OworMzJBRjtDSVJDTEVEIElERU9HUkFQSCBBTExJQU5DRTtTbzswO0w7PGNpcmNsZT4gNTM1NDs7OztOOzs7OzsKKzMyQjA7Q0lSQ0xFRCBJREVPR1JBUEggTklHSFQ7U287MDtMOzxjaXJjbGU+IDU5MUM7Ozs7Tjs7Ozs7CiszMkIxO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzY7OzszNjtOOzs7OzsKKzMyQjI7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM3Ozs7Mzc7Tjs7Ozs7CiszMkIzO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBFSUdIVDtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzODs7OzM4O047Ozs7OworMzJCNDtDSVJDTEVEIE5VTUJFUiBUSElSVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzOTs7OzM5O047Ozs7OworMzJCNTtDSVJDTEVEIE5VTUJFUiBGT1JUWTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMDs7OzQwO047Ozs7OworMzJCNjtDSVJDTEVEIE5VTUJFUiBGT1JUWSBPTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzE7Ozs0MTtOOzs7OzsKKzMyQjc7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgVFdPO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMyOzs7NDI7Tjs7Ozs7CiszMkI4O0NJUkNMRUQgTlVNQkVSIEZPUlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMzOzs7NDM7Tjs7Ozs7CiszMkI5O0NJUkNMRUQgTlVNQkVSIEZPUlRZIEZPVVI7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzQ7Ozs0NDtOOzs7OzsKKzMyQkE7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgRklWRTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzNTs7OzQ1O047Ozs7OworMzJCQjtDSVJDTEVEIE5VTUJFUiBGT1JUWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzY7Ozs0NjtOOzs7OzsKKzMyQkM7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgU0VWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzc7Ozs0NztOOzs7OzsKKzMyQkQ7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgRUlHSFQ7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzg7Ozs0ODtOOzs7OzsKKzMyQkU7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzOTs7OzQ5O047Ozs7OworMzJCRjtDSVJDTEVEIE5VTUJFUiBGSUZUWTtObzswO09OOzxjaXJjbGU+IDAwMzUgMDAzMDs7OzUwO047Ozs7OworMzJDMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKQU5VQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY3MDg7Ozs7Tjs7Ozs7CiszMkMxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEZFQlJVQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkMyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BUkNIO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY3MDg7Ozs7Tjs7Ozs7CiszMkMzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFQUklMO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY3MDg7Ozs7Tjs7Ozs7CiszMkM0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BWTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NzA4Ozs7O047Ozs7OworMzJDNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY3MDg7Ozs7Tjs7Ozs7CiszMkM2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEpVTFk7U287MDtMOzxjb21wYXQ+IDAwMzcgNjcwODs7OztOOzs7OzsKKzMyQzc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgQVVHVVNUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDY3MDg7Ozs7Tjs7Ozs7CiszMkM4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIFNFUFRFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NzA4Ozs7O047Ozs7OworMzJDOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBPQ1RPQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjcwODs7OztOOzs7OzsKKzMyQ0E7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgTk9WRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBERUNFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkNDO1NRVUFSRSBIRztTbzswO09OOzxzcXVhcmU+IDAwNDggMDA2Nzs7OztOOzs7OzsKKzMyQ0Q7U1FVQVJFIEVSRztTbzswO09OOzxzcXVhcmU+IDAwNjUgMDA3MiAwMDY3Ozs7O047Ozs7OworMzJDRTtTUVVBUkUgRVY7U287MDtPTjs8c3F1YXJlPiAwMDY1IDAwNTY7Ozs7Tjs7Ozs7CiszMkNGO0xJTUlURUQgTElBQklMSVRZIFNJR047U287MDtPTjs8c3F1YXJlPiAwMDRDIDAwNTQgMDA0NDs7OztOOzs7OzsKKzMyRDA7Q0lSQ0xFRCBLQVRBS0FOQSBBO1NvOzA7TDs8Y2lyY2xlPiAzMEEyOzs7O047Ozs7OworMzJEMTtDSVJDTEVEIEtBVEFLQU5BIEk7U287MDtMOzxjaXJjbGU+IDMwQTQ7Ozs7Tjs7Ozs7CiszMkQyO0NJUkNMRUQgS0FUQUtBTkEgVTtTbzswO0w7PGNpcmNsZT4gMzBBNjs7OztOOzs7OzsKKzMyRDM7Q0lSQ0xFRCBLQVRBS0FOQSBFO1NvOzA7TDs8Y2lyY2xlPiAzMEE4Ozs7O047Ozs7OworMzJENDtDSVJDTEVEIEtBVEFLQU5BIE87U287MDtMOzxjaXJjbGU+IDMwQUE7Ozs7Tjs7Ozs7CiszMkQ1O0NJUkNMRUQgS0FUQUtBTkEgS0E7U287MDtMOzxjaXJjbGU+IDMwQUI7Ozs7Tjs7Ozs7CiszMkQ2O0NJUkNMRUQgS0FUQUtBTkEgS0k7U287MDtMOzxjaXJjbGU+IDMwQUQ7Ozs7Tjs7Ozs7CiszMkQ3O0NJUkNMRUQgS0FUQUtBTkEgS1U7U287MDtMOzxjaXJjbGU+IDMwQUY7Ozs7Tjs7Ozs7CiszMkQ4O0NJUkNMRUQgS0FUQUtBTkEgS0U7U287MDtMOzxjaXJjbGU+IDMwQjE7Ozs7Tjs7Ozs7CiszMkQ5O0NJUkNMRUQgS0FUQUtBTkEgS087U287MDtMOzxjaXJjbGU+IDMwQjM7Ozs7Tjs7Ozs7CiszMkRBO0NJUkNMRUQgS0FUQUtBTkEgU0E7U287MDtMOzxjaXJjbGU+IDMwQjU7Ozs7Tjs7Ozs7CiszMkRCO0NJUkNMRUQgS0FUQUtBTkEgU0k7U287MDtMOzxjaXJjbGU+IDMwQjc7Ozs7Tjs7Ozs7CiszMkRDO0NJUkNMRUQgS0FUQUtBTkEgU1U7U287MDtMOzxjaXJjbGU+IDMwQjk7Ozs7Tjs7Ozs7CiszMkREO0NJUkNMRUQgS0FUQUtBTkEgU0U7U287MDtMOzxjaXJjbGU+IDMwQkI7Ozs7Tjs7Ozs7CiszMkRFO0NJUkNMRUQgS0FUQUtBTkEgU087U287MDtMOzxjaXJjbGU+IDMwQkQ7Ozs7Tjs7Ozs7CiszMkRGO0NJUkNMRUQgS0FUQUtBTkEgVEE7U287MDtMOzxjaXJjbGU+IDMwQkY7Ozs7Tjs7Ozs7CiszMkUwO0NJUkNMRUQgS0FUQUtBTkEgVEk7U287MDtMOzxjaXJjbGU+IDMwQzE7Ozs7Tjs7Ozs7CiszMkUxO0NJUkNMRUQgS0FUQUtBTkEgVFU7U287MDtMOzxjaXJjbGU+IDMwQzQ7Ozs7Tjs7Ozs7CiszMkUyO0NJUkNMRUQgS0FUQUtBTkEgVEU7U287MDtMOzxjaXJjbGU+IDMwQzY7Ozs7Tjs7Ozs7CiszMkUzO0NJUkNMRUQgS0FUQUtBTkEgVE87U287MDtMOzxjaXJjbGU+IDMwQzg7Ozs7Tjs7Ozs7CiszMkU0O0NJUkNMRUQgS0FUQUtBTkEgTkE7U287MDtMOzxjaXJjbGU+IDMwQ0E7Ozs7Tjs7Ozs7CiszMkU1O0NJUkNMRUQgS0FUQUtBTkEgTkk7U287MDtMOzxjaXJjbGU+IDMwQ0I7Ozs7Tjs7Ozs7CiszMkU2O0NJUkNMRUQgS0FUQUtBTkEgTlU7U287MDtMOzxjaXJjbGU+IDMwQ0M7Ozs7Tjs7Ozs7CiszMkU3O0NJUkNMRUQgS0FUQUtBTkEgTkU7U287MDtMOzxjaXJjbGU+IDMwQ0Q7Ozs7Tjs7Ozs7CiszMkU4O0NJUkNMRUQgS0FUQUtBTkEgTk87U287MDtMOzxjaXJjbGU+IDMwQ0U7Ozs7Tjs7Ozs7CiszMkU5O0NJUkNMRUQgS0FUQUtBTkEgSEE7U287MDtMOzxjaXJjbGU+IDMwQ0Y7Ozs7Tjs7Ozs7CiszMkVBO0NJUkNMRUQgS0FUQUtBTkEgSEk7U287MDtMOzxjaXJjbGU+IDMwRDI7Ozs7Tjs7Ozs7CiszMkVCO0NJUkNMRUQgS0FUQUtBTkEgSFU7U287MDtMOzxjaXJjbGU+IDMwRDU7Ozs7Tjs7Ozs7CiszMkVDO0NJUkNMRUQgS0FUQUtBTkEgSEU7U287MDtMOzxjaXJjbGU+IDMwRDg7Ozs7Tjs7Ozs7CiszMkVEO0NJUkNMRUQgS0FUQUtBTkEgSE87U287MDtMOzxjaXJjbGU+IDMwREI7Ozs7Tjs7Ozs7CiszMkVFO0NJUkNMRUQgS0FUQUtBTkEgTUE7U287MDtMOzxjaXJjbGU+IDMwREU7Ozs7Tjs7Ozs7CiszMkVGO0NJUkNMRUQgS0FUQUtBTkEgTUk7U287MDtMOzxjaXJjbGU+IDMwREY7Ozs7Tjs7Ozs7CiszMkYwO0NJUkNMRUQgS0FUQUtBTkEgTVU7U287MDtMOzxjaXJjbGU+IDMwRTA7Ozs7Tjs7Ozs7CiszMkYxO0NJUkNMRUQgS0FUQUtBTkEgTUU7U287MDtMOzxjaXJjbGU+IDMwRTE7Ozs7Tjs7Ozs7CiszMkYyO0NJUkNMRUQgS0FUQUtBTkEgTU87U287MDtMOzxjaXJjbGU+IDMwRTI7Ozs7Tjs7Ozs7CiszMkYzO0NJUkNMRUQgS0FUQUtBTkEgWUE7U287MDtMOzxjaXJjbGU+IDMwRTQ7Ozs7Tjs7Ozs7CiszMkY0O0NJUkNMRUQgS0FUQUtBTkEgWVU7U287MDtMOzxjaXJjbGU+IDMwRTY7Ozs7Tjs7Ozs7CiszMkY1O0NJUkNMRUQgS0FUQUtBTkEgWU87U287MDtMOzxjaXJjbGU+IDMwRTg7Ozs7Tjs7Ozs7CiszMkY2O0NJUkNMRUQgS0FUQUtBTkEgUkE7U287MDtMOzxjaXJjbGU+IDMwRTk7Ozs7Tjs7Ozs7CiszMkY3O0NJUkNMRUQgS0FUQUtBTkEgUkk7U287MDtMOzxjaXJjbGU+IDMwRUE7Ozs7Tjs7Ozs7CiszMkY4O0NJUkNMRUQgS0FUQUtBTkEgUlU7U287MDtMOzxjaXJjbGU+IDMwRUI7Ozs7Tjs7Ozs7CiszMkY5O0NJUkNMRUQgS0FUQUtBTkEgUkU7U287MDtMOzxjaXJjbGU+IDMwRUM7Ozs7Tjs7Ozs7CiszMkZBO0NJUkNMRUQgS0FUQUtBTkEgUk87U287MDtMOzxjaXJjbGU+IDMwRUQ7Ozs7Tjs7Ozs7CiszMkZCO0NJUkNMRUQgS0FUQUtBTkEgV0E7U287MDtMOzxjaXJjbGU+IDMwRUY7Ozs7Tjs7Ozs7CiszMkZDO0NJUkNMRUQgS0FUQUtBTkEgV0k7U287MDtMOzxjaXJjbGU+IDMwRjA7Ozs7Tjs7Ozs7CiszMkZEO0NJUkNMRUQgS0FUQUtBTkEgV0U7U287MDtMOzxjaXJjbGU+IDMwRjE7Ozs7Tjs7Ozs7CiszMkZFO0NJUkNMRUQgS0FUQUtBTkEgV087U287MDtMOzxjaXJjbGU+IDMwRjI7Ozs7Tjs7Ozs7CiszMzAwO1NRVUFSRSBBUEFBVE87U287MDtMOzxzcXVhcmU+IDMwQTIgMzBEMSAzMEZDIDMwQzg7Ozs7TjtTUVVBUkVEIEFQQUFUTzs7OzsKKzMzMDE7U1FVQVJFIEFSVUhVQTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEVCIDMwRDUgMzBBMTs7OztOO1NRVUFSRUQgQVJVSFVBOzs7OworMzMwMjtTUVVBUkUgQU5QRUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGMyAzMERBIDMwQTI7Ozs7TjtTUVVBUkVEIEFOUEVBOzs7OworMzMwMztTUVVBUkUgQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEFBUlU7Ozs7CiszMzA0O1NRVUFSRSBJTklOR1U7U287MDtMOzxzcXVhcmU+IDMwQTQgMzBDQiAzMEYzIDMwQjA7Ozs7TjtTUVVBUkVEIElOSU5HVTs7OzsKKzMzMDU7U1FVQVJFIElOVEk7U287MDtMOzxzcXVhcmU+IDMwQTQgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBJTlRJOzs7OworMzMwNjtTUVVBUkUgVU9OO1NvOzA7TDs8c3F1YXJlPiAzMEE2IDMwQTkgMzBGMzs7OztOO1NRVUFSRUQgVU9OOzs7OworMzMwNztTUVVBUkUgRVNVS1VVRE87U287MDtMOzxzcXVhcmU+IDMwQTggMzBCOSAzMEFGIDMwRkMgMzBDOTs7OztOO1NRVUFSRUQgRVNVS1VVRE87Ozs7CiszMzA4O1NRVUFSRSBFRUtBQTtTbzswO0w7PHNxdWFyZT4gMzBBOCAzMEZDIDMwQUIgMzBGQzs7OztOO1NRVUFSRUQgRUVLQUE7Ozs7CiszMzA5O1NRVUFSRSBPTlNVO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgT05TVTs7OzsKKzMzMEE7U1FVQVJFIE9PTVU7U287MDtMOzxzcXVhcmU+IDMwQUEgMzBGQyAzMEUwOzs7O047U1FVQVJFRCBPT01VOzs7OworMzMwQjtTUVVBUkUgS0FJUkk7U287MDtMOzxzcXVhcmU+IDMwQUIgMzBBNCAzMEVBOzs7O047U1FVQVJFRCBLQUlSSTs7OzsKKzMzMEM7U1FVQVJFIEtBUkFUVE87U287MDtMOzxzcXVhcmU+IDMwQUIgMzBFOSAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIEtBUkFUVE87Ozs7CiszMzBEO1NRVUFSRSBLQVJPUklJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRUQgMzBFQSAzMEZDOzs7O047U1FVQVJFRCBLQVJPUklJOzs7OworMzMwRTtTUVVBUkUgR0FST047U287MDtMOzxzcXVhcmU+IDMwQUMgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBHQVJPTjs7OzsKKzMzMEY7U1FVQVJFIEdBTk1BO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRjMgMzBERTs7OztOO1NRVUFSRUQgR0FOTUE7Ozs7CiszMzEwO1NRVUFSRSBHSUdBO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwQUM7Ozs7TjtTUVVBUkVEIEdJR0E7Ozs7CiszMzExO1NRVUFSRSBHSU5JSTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMENCIDMwRkM7Ozs7TjtTUVVBUkVEIEdJTklJOzs7OworMzMxMjtTUVVBUkUgS1lVUklJO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRTUgMzBFQSAzMEZDOzs7O047U1FVQVJFRCBLWVVSSUk7Ozs7CiszMzEzO1NRVUFSRSBHSVJVREFBO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwRUIgMzBDMCAzMEZDOzs7O047U1FVQVJFRCBHSVJVREFBOzs7OworMzMxNDtTUVVBUkUgS0lSTztTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEOzs7O047U1FVQVJFRCBLSVJPOzs7OworMzMxNTtTUVVBUkUgS0lST0dVUkFNVTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzs7O047U1FVQVJFRCBLSVJPR1VSQU1VOzs7OworMzMxNjtTUVVBUkUgS0lST01FRVRPUlU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBLSVJPTUVFVE9SVTs7OzsKKzMzMTc7U1FVQVJFIEtJUk9XQVRUTztTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLSVJPV0FUVE87Ozs7CiszMzE4O1NRVUFSRSBHVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQjAgMzBFOSAzMEUwOzs7O047U1FVQVJFRCBHVVJBTVU7Ozs7CiszMzE5O1NRVUFSRSBHVVJBTVVUT047U287MDtMOzxzcXVhcmU+IDMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzs7OztOO1NRVUFSRUQgR1VSQU1VVE9OOzs7OworMzMxQTtTUVVBUkUgS1VSVVpFSVJPO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUIgMzBCQyAzMEE0IDMwRUQ7Ozs7TjtTUVVBUkVEIEtVUlVaRUlSTzs7OzsKKzMzMUI7U1FVQVJFIEtVUk9PTkU7U287MDtMOzxzcXVhcmU+IDMwQUYgMzBFRCAzMEZDIDMwQ0Q7Ozs7TjtTUVVBUkVEIEtVUk9PTkU7Ozs7CiszMzFDO1NRVUFSRSBLRUVTVTtTbzswO0w7PHNxdWFyZT4gMzBCMSAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIEtFRVNVOzs7OworMzMxRDtTUVVBUkUgS09SVU5BO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRUIgMzBDQTs7OztOO1NRVUFSRUQgS09SVU5BOzs7OworMzMxRTtTUVVBUkUgS09PUE87U287MDtMOzxzcXVhcmU+IDMwQjMgMzBGQyAzMEREOzs7O047U1FVQVJFRCBLT09QTzs7OzsKKzMzMUY7U1FVQVJFIFNBSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBBNCAzMEFGIDMwRUI7Ozs7TjtTUVVBUkVEIFNBSUtVUlU7Ozs7CiszMzIwO1NRVUFSRSBTQU5USUlNVTtTbzswO0w7PHNxdWFyZT4gMzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzs7O047U1FVQVJFRCBTQU5USUlNVTs7OzsKKzMzMjE7U1FVQVJFIFNJUklOR1U7U287MDtMOzxzcXVhcmU+IDMwQjcgMzBFQSAzMEYzIDMwQjA7Ozs7TjtTUVVBUkVEIFNJUklOR1U7Ozs7CiszMzIyO1NRVUFSRSBTRU5USTtTbzswO0w7PHNxdWFyZT4gMzBCQiAzMEYzIDMwQzE7Ozs7TjtTUVVBUkVEIFNFTlRJOzs7OworMzMyMztTUVVBUkUgU0VOVE87U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBTRU5UTzs7OzsKKzMzMjQ7U1FVQVJFIERBQVNVO1NvOzA7TDs8c3F1YXJlPiAzMEMwIDMwRkMgMzBCOTs7OztOO1NRVUFSRUQgREFBU1U7Ozs7CiszMzI1O1NRVUFSRSBERVNJO1NvOzA7TDs8c3F1YXJlPiAzMEM3IDMwQjc7Ozs7TjtTUVVBUkVEIERFU0k7Ozs7CiszMzI2O1NRVUFSRSBET1JVO1NvOzA7TDs8c3F1YXJlPiAzMEM5IDMwRUI7Ozs7TjtTUVVBUkVEIERPUlU7Ozs7CiszMzI3O1NRVUFSRSBUT047U287MDtMOzxzcXVhcmU+IDMwQzggMzBGMzs7OztOO1NRVUFSRUQgVE9OOzs7OworMzMyODtTUVVBUkUgTkFOTztTbzswO0w7PHNxdWFyZT4gMzBDQSAzMENFOzs7O047U1FVQVJFRCBOQU5POzs7OworMzMyOTtTUVVBUkUgTk9UVE87U287MDtMOzxzcXVhcmU+IDMwQ0UgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBOT1RUTzs7OzsKKzMzMkE7U1FVQVJFIEhBSVRVO1NvOzA7TDs8c3F1YXJlPiAzMENGIDMwQTQgMzBDNDs7OztOO1NRVUFSRUQgSEFJVFU7Ozs7CiszMzJCO1NRVUFSRSBQQUFTRU5UTztTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQkIgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBQQUFTRU5UTzs7OzsKKzMzMkM7U1FVQVJFIFBBQVRVO1NvOzA7TDs8c3F1YXJlPiAzMEQxIDMwRkMgMzBDNDs7OztOO1NRVUFSRUQgUEFBVFU7Ozs7CiszMzJEO1NRVUFSRSBCQUFSRVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQwIDMwRkMgMzBFQyAzMEVCOzs7O047U1FVQVJFRCBCQUFSRVJVOzs7OworMzMyRTtTUVVBUkUgUElBU1VUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFBJQVNVVE9SVTs7OzsKKzMzMkY7U1FVQVJFIFBJS1VSVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEFGIDMwRUI7Ozs7TjtTUVVBUkVEIFBJS1VSVTs7OzsKKzMzMzA7U1FVQVJFIFBJS087U287MDtMOzxzcXVhcmU+IDMwRDQgMzBCMzs7OztOO1NRVUFSRUQgUElLTzs7OzsKKzMzMzE7U1FVQVJFIEJJUlU7U287MDtMOzxzcXVhcmU+IDMwRDMgMzBFQjs7OztOO1NRVUFSRUQgQklSVTs7OzsKKzMzMzI7U1FVQVJFIEhVQVJBRERPO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwQTEgMzBFOSAzMEMzIDMwQzk7Ozs7TjtTUVVBUkVEIEhVQVJBRERPOzs7OworMzMzMztTUVVBUkUgSFVJSVRPO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwQTMgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBIVUlJVE87Ozs7CiszMzM0O1NRVUFSRSBCVVNTWUVSVTtTbzswO0w7PHNxdWFyZT4gMzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzs7O047U1FVQVJFRCBCVVNTWUVSVTs7OzsKKzMzMzU7U1FVQVJFIEhVUkFOO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwRTkgMzBGMzs7OztOO1NRVUFSRUQgSFVSQU47Ozs7CiszMzM2O1NRVUFSRSBIRUtVVEFBUlU7U287MDtMOzxzcXVhcmU+IDMwRDggMzBBRiAzMEJGIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgSEVLVVRBQVJVOzs7OworMzMzNztTUVVBUkUgUEVTTztTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEJEOzs7O047U1FVQVJFRCBQRVNPOzs7OworMzMzODtTUVVBUkUgUEVOSUhJO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwQ0IgMzBEMjs7OztOO1NRVUFSRUQgUEVOSUhJOzs7OworMzMzOTtTUVVBUkUgSEVSVVRVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwRUIgMzBDNDs7OztOO1NRVUFSRUQgSEVSVVRVOzs7OworMzMzQTtTUVVBUkUgUEVOU1U7U287MDtMOzxzcXVhcmU+IDMwREEgMzBGMyAzMEI5Ozs7O047U1FVQVJFRCBQRU5TVTs7OzsKKzMzM0I7U1FVQVJFIFBFRVpJO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRkMgMzBCODs7OztOO1NRVUFSRUQgUEVFWkk7Ozs7CiszMzNDO1NRVUFSRSBCRUVUQTtTbzswO0w7PHNxdWFyZT4gMzBEOSAzMEZDIDMwQkY7Ozs7TjtTUVVBUkVEIEJFRVRBOzs7OworMzMzRDtTUVVBUkUgUE9JTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwQTQgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBQT0lOVE87Ozs7CiszMzNFO1NRVUFSRSBCT1JVVE87U287MDtMOzxzcXVhcmU+IDMwREMgMzBFQiAzMEM4Ozs7O047U1FVQVJFRCBCT1JVVE87Ozs7CiszMzNGO1NRVUFSRSBIT047U287MDtMOzxzcXVhcmU+IDMwREIgMzBGMzs7OztOO1NRVUFSRUQgSE9OOzs7OworMzM0MDtTUVVBUkUgUE9ORE87U287MDtMOzxzcXVhcmU+IDMwREQgMzBGMyAzMEM5Ozs7O047U1FVQVJFRCBQT05ETzs7OzsKKzMzNDE7U1FVQVJFIEhPT1JVO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgSE9PUlU7Ozs7CiszMzQyO1NRVUFSRSBIT09OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRkMgMzBGMzs7OztOO1NRVUFSRUQgSE9PTjs7OzsKKzMzNDM7U1FVQVJFIE1BSUtVUk87U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEFGIDMwRUQ7Ozs7TjtTUVVBUkVEIE1BSUtVUk87Ozs7CiszMzQ0O1NRVUFSRSBNQUlSVTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEE0IDMwRUI7Ozs7TjtTUVVBUkVEIE1BSVJVOzs7OworMzM0NTtTUVVBUkUgTUFISEE7U287MDtMOzxzcXVhcmU+IDMwREUgMzBDMyAzMENGOzs7O047U1FVQVJFRCBNQUhIQTs7OzsKKzMzNDY7U1FVQVJFIE1BUlVLVTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEVCIDMwQUY7Ozs7TjtTUVVBUkVEIE1BUlVLVTs7OzsKKzMzNDc7U1FVQVJFIE1BTlNZT047U287MDtMOzxzcXVhcmU+IDMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzs7OztOO1NRVUFSRUQgTUFOU1lPTjs7OzsKKzMzNDg7U1FVQVJFIE1JS1VST047U287MDtMOzxzcXVhcmU+IDMwREYgMzBBRiAzMEVEIDMwRjM7Ozs7TjtTUVVBUkVEIE1JS1VST047Ozs7CiszMzQ5O1NRVUFSRSBNSVJJO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUE7Ozs7TjtTUVVBUkVEIE1JUkk7Ozs7CiszMzRBO1NRVUFSRSBNSVJJQkFBUlU7U287MDtMOzxzcXVhcmU+IDMwREYgMzBFQSAzMEQwIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgTUlSSUJBQVJVOzs7OworMzM0QjtTUVVBUkUgTUVHQTtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEFDOzs7O047U1FVQVJFRCBNRUdBOzs7OworMzM0QztTUVVBUkUgTUVHQVRPTjtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEFDIDMwQzggMzBGMzs7OztOO1NRVUFSRUQgTUVHQVRPTjs7OzsKKzMzNEQ7U1FVQVJFIE1FRVRPUlU7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBGQyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIE1FRVRPUlU7Ozs7CiszMzRFO1NRVUFSRSBZQUFETztTbzswO0w7PHNxdWFyZT4gMzBFNCAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIFlBQURPOzs7OworMzM0RjtTUVVBUkUgWUFBUlU7U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBZQUFSVTs7OzsKKzMzNTA7U1FVQVJFIFlVQU47U287MDtMOzxzcXVhcmU+IDMwRTYgMzBBMiAzMEYzOzs7O047U1FVQVJFRCBZVUFOOzs7OworMzM1MTtTUVVBUkUgUklUVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBFQSAzMEMzIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgUklUVE9SVTs7OzsKKzMzNTI7U1FVQVJFIFJJUkE7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBFOTs7OztOO1NRVUFSRUQgUklSQTs7OzsKKzMzNTM7U1FVQVJFIFJVUElJO1NvOzA7TDs8c3F1YXJlPiAzMEVCIDMwRDQgMzBGQzs7OztOO1NRVUFSRUQgUlVQSUk7Ozs7CiszMzU0O1NRVUFSRSBSVVVCVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEVCIDMwRkMgMzBENiAzMEVCOzs7O047U1FVQVJFRCBSVVVCVVJVOzs7OworMzM1NTtTUVVBUkUgUkVNVTtTbzswO0w7PHNxdWFyZT4gMzBFQyAzMEUwOzs7O047U1FVQVJFRCBSRU1VOzs7OworMzM1NjtTUVVBUkUgUkVOVE9HRU47U287MDtMOzxzcXVhcmU+IDMwRUMgMzBGMyAzMEM4IDMwQjIgMzBGMzs7OztOO1NRVUFSRUQgUkVOVE9HRU47Ozs7CiszMzU3O1NRVUFSRSBXQVRUTztTbzswO0w7PHNxdWFyZT4gMzBFRiAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIFdBVFRPOzs7OworMzM1ODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFpFUk87U287MDtMOzxjb21wYXQ+IDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBPTkU7U287MDtMOzxjb21wYXQ+IDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNUE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV087U287MDtMOzxjb21wYXQ+IDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNUI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA3MEI5Ozs7O047Ozs7OworMzM1QztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDcwQjk7Ozs7Tjs7Ozs7CiszMzVFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDcwQjk7Ozs7Tjs7Ozs7CiszMzVGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzcgNzBCOTs7OztOOzs7OzsKKzMzNjA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA3MEI5Ozs7O047Ozs7OworMzM2MTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNzBCOTs7OztOOzs7OzsKKzMzNjI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBURU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMCA3MEI5Ozs7O047Ozs7OworMzM2MztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVMRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzY0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNjU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUSElSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzY2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRk9VUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNCA3MEI5Ozs7O047Ozs7OworMzM2NztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA3MEI5Ozs7O047Ozs7OworMzM2ODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNiA3MEI5Ozs7O047Ozs7OworMzM2OTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA3MEI5Ozs7O047Ozs7OworMzM2QjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE5JTkVURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzkgNzBCOTs7OztOOzs7OzsKKzMzNkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFk7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMCA3MEI5Ozs7O047Ozs7OworMzM2RDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1UV087U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMiA3MEI5Ozs7O047Ozs7OworMzM2RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1USFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzcwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA3MEI5Ozs7O047Ozs7OworMzM3MTtTUVVBUkUgSFBBO1NvOzA7TDs8c3F1YXJlPiAwMDY4IDAwNTAgMDA2MTs7OztOOzs7OzsKKzMzNzI7U1FVQVJFIERBO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDAwNjE7Ozs7Tjs7Ozs7CiszMzczO1NRVUFSRSBBVTtTbzswO0w7PHNxdWFyZT4gMDA0MSAwMDU1Ozs7O047Ozs7OworMzM3NDtTUVVBUkUgQkFSO1NvOzA7TDs8c3F1YXJlPiAwMDYyIDAwNjEgMDA3Mjs7OztOOzs7OzsKKzMzNzU7U1FVQVJFIE9WO1NvOzA7TDs8c3F1YXJlPiAwMDZGIDAwNTY7Ozs7Tjs7Ozs7CiszMzc2O1NRVUFSRSBQQztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDYzOzs7O047Ozs7OworMzM3NztTUVVBUkUgRE07U287MDtPTjs8c3F1YXJlPiAwMDY0IDAwNkQ7Ozs7Tjs7Ozs7CiszMzc4O1NRVUFSRSBETSBTUVVBUkVEO1NvOzA7T047PHNxdWFyZT4gMDA2NCAwMDZEIDAwQjI7Ozs7Tjs7Ozs7CiszMzc5O1NRVUFSRSBETSBDVUJFRDtTbzswO09OOzxzcXVhcmU+IDAwNjQgMDA2RCAwMEIzOzs7O047Ozs7OworMzM3QTtTUVVBUkUgSVU7U287MDtPTjs8c3F1YXJlPiAwMDQ5IDAwNTU7Ozs7Tjs7Ozs7CiszMzdCO1NRVUFSRSBFUkEgTkFNRSBIRUlTRUk7U287MDtMOzxzcXVhcmU+IDVFNzMgNjIxMDs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgSEVJU0VJOzs7OworMzM3QztTUVVBUkUgRVJBIE5BTUUgU1lPVVdBO1NvOzA7TDs8c3F1YXJlPiA2NjJEIDU0OEM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFNZT1VXQTs7OzsKKzMzN0Q7U1FVQVJFIEVSQSBOQU1FIFRBSVNZT1U7U287MDtMOzxzcXVhcmU+IDU5MjcgNkI2Mzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgVEFJU1lPVTs7OzsKKzMzN0U7U1FVQVJFIEVSQSBOQU1FIE1FSVpJO1NvOzA7TDs8c3F1YXJlPiA2NjBFIDZDQkI7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIE1FSVpJOzs7OworMzM3RjtTUVVBUkUgQ09SUE9SQVRJT047U287MDtMOzxzcXVhcmU+IDY4MkEgNUYwRiA0RjFBIDc5M0U7Ozs7TjtTUVVBUkVEIEZPVVIgSURFT0dSQVBIUyBDT1JQT1JBVElPTjs7OzsKKzMzODA7U1FVQVJFIFBBIEFNUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0MTs7OztOO1NRVUFSRUQgUEEgQU1QUzs7OzsKKzMzODE7U1FVQVJFIE5BO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDE7Ozs7TjtTUVVBUkVEIE5BOzs7OworMzM4MjtTUVVBUkUgTVUgQTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQxOzs7O047U1FVQVJFRCBNVSBBOzs7OworMzM4MztTUVVBUkUgTUE7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA0MTs7OztOO1NRVUFSRUQgTUE7Ozs7CiszMzg0O1NRVUFSRSBLQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQxOzs7O047U1FVQVJFRCBLQTs7OzsKKzMzODU7U1FVQVJFIEtCO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNDI7Ozs7TjtTUVVBUkVEIEtCOzs7OworMzM4NjtTUVVBUkUgTUI7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0Mjs7OztOO1NRVUFSRUQgTUI7Ozs7CiszMzg3O1NRVUFSRSBHQjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQyOzs7O047U1FVQVJFRCBHQjs7OzsKKzMzODg7U1FVQVJFIENBTDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIENBTDs7OzsKKzMzODk7U1FVQVJFIEtDQUw7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIEtDQUw7Ozs7CiszMzhBO1NRVUFSRSBQRjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQ2Ozs7O047U1FVQVJFRCBQRjs7OzsKKzMzOEI7U1FVQVJFIE5GO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDY7Ozs7TjtTUVVBUkVEIE5GOzs7OworMzM4QztTUVVBUkUgTVUgRjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQ2Ozs7O047U1FVQVJFRCBNVSBGOzs7OworMzM4RDtTUVVBUkUgTVUgRztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDY3Ozs7O047U1FVQVJFRCBNVSBHOzs7OworMzM4RTtTUVVBUkUgTUc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Nzs7OztOO1NRVUFSRUQgTUc7Ozs7CiszMzhGO1NRVUFSRSBLRztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBLRzs7OzsKKzMzOTA7U1FVQVJFIEhaO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEhaOzs7OworMzM5MTtTUVVBUkUgS0haO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgS0haOzs7OworMzM5MjtTUVVBUkUgTUhaO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgTUhaOzs7OworMzM5MztTUVVBUkUgR0haO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgR0haOzs7OworMzM5NDtTUVVBUkUgVEhaO1NvOzA7TDs8c3F1YXJlPiAwMDU0IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgVEhaOzs7OworMzM5NTtTUVVBUkUgTVUgTDtTbzswO0w7PHNxdWFyZT4gMDNCQyAyMTEzOzs7O047U1FVQVJFRCBNVSBMOzs7OworMzM5NjtTUVVBUkUgTUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMjExMzs7OztOO1NRVUFSRUQgTUw7Ozs7CiszMzk3O1NRVUFSRSBETDtTbzswO0w7PHNxdWFyZT4gMDA2NCAyMTEzOzs7O047U1FVQVJFRCBETDs7OzsKKzMzOTg7U1FVQVJFIEtMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDIxMTM7Ozs7TjtTUVVBUkVEIEtMOzs7OworMzM5OTtTUVVBUkUgRk07U287MDtMOzxzcXVhcmU+IDAwNjYgMDA2RDs7OztOO1NRVUFSRUQgRk07Ozs7CiszMzlBO1NRVUFSRSBOTTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDZEOzs7O047U1FVQVJFRCBOTTs7OzsKKzMzOUI7U1FVQVJFIE1VIE07U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2RDs7OztOO1NRVUFSRUQgTVUgTTs7OzsKKzMzOUM7U1FVQVJFIE1NO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQ7Ozs7TjtTUVVBUkVEIE1NOzs7OworMzM5RDtTUVVBUkUgQ007U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RDs7OztOO1NRVUFSRUQgQ007Ozs7CiszMzlFO1NRVUFSRSBLTTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEOzs7O047U1FVQVJFRCBLTTs7OzsKKzMzOUY7U1FVQVJFIE1NIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNTSBTUVVBUkVEOzs7OworMzNBMDtTUVVBUkUgQ00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIENNIFNRVUFSRUQ7Ozs7CiszM0ExO1NRVUFSRSBNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTSBTUVVBUkVEOzs7OworMzNBMjtTUVVBUkUgS00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIEtNIFNRVUFSRUQ7Ozs7CiszM0EzO1NRVUFSRSBNTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE1NIENVQkVEOzs7OworMzNBNDtTUVVBUkUgQ00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBDTSBDVUJFRDs7OzsKKzMzQTU7U1FVQVJFIE0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTSBDVUJFRDs7OzsKKzMzQTY7U1FVQVJFIEtNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgS00gQ1VCRUQ7Ozs7CiszM0E3O1NRVUFSRSBNIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTOzs7OworMzNBODtTUVVBUkUgTSBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgTSBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQTk7U1FVQVJFIFBBO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIFBBOzs7OworMzNBQTtTUVVBUkUgS1BBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgS1BBOzs7OworMzNBQjtTUVVBUkUgTVBBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgTVBBOzs7OworMzNBQztTUVVBUkUgR1BBO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgR1BBOzs7OworMzNBRDtTUVVBUkUgUkFEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NDs7OztOO1NRVUFSRUQgUkFEOzs7OworMzNBRTtTUVVBUkUgUkFEIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTOzs7OworMzNBRjtTUVVBUkUgUkFEIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUyBTUVVBUkVEOzs7OworMzNCMDtTUVVBUkUgUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA3Mzs7OztOO1NRVUFSRUQgUFM7Ozs7CiszM0IxO1NRVUFSRSBOUztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDczOzs7O047U1FVQVJFRCBOUzs7OzsKKzMzQjI7U1FVQVJFIE1VIFM7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA3Mzs7OztOO1NRVUFSRUQgTVUgUzs7OzsKKzMzQjM7U1FVQVJFIE1TO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNzM7Ozs7TjtTUVVBUkVEIE1TOzs7OworMzNCNDtTUVVBUkUgUFY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Njs7OztOO1NRVUFSRUQgUFY7Ozs7CiszM0I1O1NRVUFSRSBOVjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU2Ozs7O047U1FVQVJFRCBOVjs7OzsKKzMzQjY7U1FVQVJFIE1VIFY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Njs7OztOO1NRVUFSRUQgTVUgVjs7OzsKKzMzQjc7U1FVQVJFIE1WO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTY7Ozs7TjtTUVVBUkVEIE1WOzs7OworMzNCODtTUVVBUkUgS1Y7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Njs7OztOO1NRVUFSRUQgS1Y7Ozs7CiszM0I5O1NRVUFSRSBNViBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTY7Ozs7TjtTUVVBUkVEIE1WIE1FR0E7Ozs7CiszM0JBO1NRVUFSRSBQVztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU3Ozs7O047U1FVQVJFRCBQVzs7OzsKKzMzQkI7U1FVQVJFIE5XO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTc7Ozs7TjtTUVVBUkVEIE5XOzs7OworMzNCQztTUVVBUkUgTVUgVztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU3Ozs7O047U1FVQVJFRCBNVSBXOzs7OworMzNCRDtTUVVBUkUgTVc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Nzs7OztOO1NRVUFSRUQgTVc7Ozs7CiszM0JFO1NRVUFSRSBLVztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU3Ozs7O047U1FVQVJFRCBLVzs7OzsKKzMzQkY7U1FVQVJFIE1XIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Nzs7OztOO1NRVUFSRUQgTVcgTUVHQTs7OzsKKzMzQzA7U1FVQVJFIEsgT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAzQTk7Ozs7TjtTUVVBUkVEIEsgT0hNOzs7OworMzNDMTtTUVVBUkUgTSBPSE07U287MDtMOzxzcXVhcmU+IDAwNEQgMDNBOTs7OztOO1NRVUFSRUQgTSBPSE07Ozs7CiszM0MyO1NRVUFSRSBBTTtTbzswO0w7PHNxdWFyZT4gMDA2MSAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgQU07Ozs7CiszM0MzO1NRVUFSRSBCUTtTbzswO0w7PHNxdWFyZT4gMDA0MiAwMDcxOzs7O047U1FVQVJFRCBCUTs7OzsKKzMzQzQ7U1FVQVJFIENDO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjM7Ozs7TjtTUVVBUkVEIENDOzs7OworMzNDNTtTUVVBUkUgQ0Q7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2NDs7OztOO1NRVUFSRUQgQ0Q7Ozs7CiszM0M2O1NRVUFSRSBDIE9WRVIgS0c7U287MDtMOzxzcXVhcmU+IDAwNDMgMjIxNSAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEMgT1ZFUiBLRzs7OzsKKzMzQzc7U1FVQVJFIENPO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDAwNkYgMDAyRTs7OztOO1NRVUFSRUQgQ087Ozs7CiszM0M4O1NRVUFSRSBEQjtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDQyOzs7O047U1FVQVJFRCBEQjs7OzsKKzMzQzk7U1FVQVJFIEdZO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNzk7Ozs7TjtTUVVBUkVEIEdZOzs7OworMzNDQTtTUVVBUkUgSEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA2MTs7OztOO1NRVUFSRUQgSEE7Ozs7CiszM0NCO1NRVUFSRSBIUDtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDUwOzs7O047U1FVQVJFRCBIUDs7OzsKKzMzQ0M7U1FVQVJFIElOO1NvOzA7TDs8c3F1YXJlPiAwMDY5IDAwNkU7Ozs7TjtTUVVBUkVEIElOOzs7OworMzNDRDtTUVVBUkUgS0s7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Qjs7OztOO1NRVUFSRUQgS0s7Ozs7CiszM0NFO1NRVUFSRSBLTSBDQVBJVEFMO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEQ7Ozs7TjtTUVVBUkVEIEtNIENBUElUQUw7Ozs7CiszM0NGO1NRVUFSRSBLVDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDc0Ozs7O047U1FVQVJFRCBLVDs7OzsKKzMzRDA7U1FVQVJFIExNO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkQ7Ozs7TjtTUVVBUkVEIExNOzs7OworMzNEMTtTUVVBUkUgTE47U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RTs7OztOO1NRVUFSRUQgTE47Ozs7CiszM0QyO1NRVUFSRSBMT0c7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RiAwMDY3Ozs7O047U1FVQVJFRCBMT0c7Ozs7CiszM0QzO1NRVUFSRSBMWDtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDc4Ozs7O047U1FVQVJFRCBMWDs7OzsKKzMzRDQ7U1FVQVJFIE1CIFNNQUxMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjI7Ozs7TjtTUVVBUkVEIE1CIFNNQUxMOzs7OworMzNENTtTUVVBUkUgTUlMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjkgMDA2Qzs7OztOO1NRVUFSRUQgTUlMOzs7OworMzNENjtTUVVBUkUgTU9MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkYgMDA2Qzs7OztOO1NRVUFSRUQgTU9MOzs7OworMzNENztTUVVBUkUgUEg7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA0ODs7OztOO1NRVUFSRUQgUEg7Ozs7CiszM0Q4O1NRVUFSRSBQTTtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgUE07Ozs7CiszM0Q5O1NRVUFSRSBQUE07U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1MCAwMDREOzs7O047U1FVQVJFRCBQUE07Ozs7CiszM0RBO1NRVUFSRSBQUjtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUyOzs7O047U1FVQVJFRCBQUjs7OzsKKzMzREI7U1FVQVJFIFNSO1NvOzA7TDs8c3F1YXJlPiAwMDczIDAwNzI7Ozs7TjtTUVVBUkVEIFNSOzs7OworMzNEQztTUVVBUkUgU1Y7U287MDtMOzxzcXVhcmU+IDAwNTMgMDA3Njs7OztOO1NRVUFSRUQgU1Y7Ozs7CiszM0REO1NRVUFSRSBXQjtTbzswO0w7PHNxdWFyZT4gMDA1NyAwMDYyOzs7O047U1FVQVJFRCBXQjs7OzsKKzMzREU7U1FVQVJFIFYgT1ZFUiBNO1NvOzA7T047PHNxdWFyZT4gMDA1NiAyMjE1IDAwNkQ7Ozs7Tjs7Ozs7CiszM0RGO1NRVUFSRSBBIE9WRVIgTTtTbzswO09OOzxzcXVhcmU+IDAwNDEgMjIxNSAwMDZEOzs7O047Ozs7OworMzNFMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0UxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV087U287MDtMOzxjb21wYXQ+IDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRTI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0UzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0U0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0U1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRTY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0U3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NUU1Ozs7O047Ozs7OworMzNFODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NUU1Ozs7O047Ozs7OworMzNFOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRUE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEVMRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0VCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NUU1Ozs7O047Ozs7OworMzNFQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFRTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0VGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRjA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0YxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDY1RTU7Ozs7Tjs7Ozs7CiszM0YyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDY1RTU7Ozs7Tjs7Ozs7CiszM0YzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFk7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMCA2NUU1Ozs7O047Ozs7OworMzNGNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1USFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1TRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzMgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGRjtTUVVBUkUgR0FMO1NvOzA7T047PHNxdWFyZT4gMDA2NyAwMDYxIDAwNkM7Ozs7Tjs7Ozs7CiszNDAwOzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBBLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKKzREQjU7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEEsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis0REMwO0hFWEFHUkFNIEZPUiBUSEUgQ1JFQVRJVkUgSEVBVkVOO1NvOzA7T047Ozs7O047Ozs7OworNERDMTtIRVhBR1JBTSBGT1IgVEhFIFJFQ0VQVElWRSBFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzREQzI7SEVYQUdSQU0gRk9SIERJRkZJQ1VMVFkgQVQgVEhFIEJFR0lOTklORztTbzswO09OOzs7OztOOzs7OzsKKzREQzM7SEVYQUdSQU0gRk9SIFlPVVRIRlVMIEZPTExZO1NvOzA7T047Ozs7O047Ozs7OworNERDNDtIRVhBR1JBTSBGT1IgV0FJVElORztTbzswO09OOzs7OztOOzs7OzsKKzREQzU7SEVYQUdSQU0gRk9SIENPTkZMSUNUO1NvOzA7T047Ozs7O047Ozs7OworNERDNjtIRVhBR1JBTSBGT1IgVEhFIEFSTVk7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REM3O0hFWEFHUkFNIEZPUiBIT0xESU5HIFRPR0VUSEVSO1NvOzA7T047Ozs7O047Ozs7OworNERDODtIRVhBR1JBTSBGT1IgU01BTEwgVEFNSU5HO1NvOzA7T047Ozs7O047Ozs7OworNERDOTtIRVhBR1JBTSBGT1IgVFJFQURJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENBO0hFWEFHUkFNIEZPUiBQRUFDRTtTbzswO09OOzs7OztOOzs7OzsKKzREQ0I7SEVYQUdSQU0gRk9SIFNUQU5EU1RJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENDO0hFWEFHUkFNIEZPUiBGRUxMT1dTSElQO1NvOzA7T047Ozs7O047Ozs7OworNERDRDtIRVhBR1JBTSBGT1IgR1JFQVQgUE9TU0VTU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzREQ0U7SEVYQUdSQU0gRk9SIE1PREVTVFk7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENGO0hFWEFHUkFNIEZPUiBFTlRIVVNJQVNNO1NvOzA7T047Ozs7O047Ozs7OworNEREMDtIRVhBR1JBTSBGT1IgRk9MTE9XSU5HO1NvOzA7T047Ozs7O047Ozs7OworNEREMTtIRVhBR1JBTSBGT1IgV09SSyBPTiBUSEUgREVDQVlFRDtTbzswO09OOzs7OztOOzs7OzsKKzRERDI7SEVYQUdSQU0gRk9SIEFQUFJPQUNIO1NvOzA7T047Ozs7O047Ozs7OworNEREMztIRVhBR1JBTSBGT1IgQ09OVEVNUExBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERDQ7SEVYQUdSQU0gRk9SIEJJVElORyBUSFJPVUdIO1NvOzA7T047Ozs7O047Ozs7OworNERENTtIRVhBR1JBTSBGT1IgR1JBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ2O0hFWEFHUkFNIEZPUiBTUExJVFRJTkcgQVBBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ3O0hFWEFHUkFNIEZPUiBSRVRVUk47U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ4O0hFWEFHUkFNIEZPUiBJTk5PQ0VOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ5O0hFWEFHUkFNIEZPUiBHUkVBVCBUQU1JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RERBO0hFWEFHUkFNIEZPUiBNT1VUSCBDT1JORVJTO1NvOzA7T047Ozs7O047Ozs7OworNEREQjtIRVhBR1JBTSBGT1IgR1JFQVQgUFJFUE9OREVSQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzREREM7SEVYQUdSQU0gRk9SIFRIRSBBQllTTUFMIFdBVEVSO1NvOzA7T047Ozs7O047Ozs7OworNERERDtIRVhBR1JBTSBGT1IgVEhFIENMSU5HSU5HIEZJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RERFO0hFWEFHUkFNIEZPUiBJTkZMVUVOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RERGO0hFWEFHUkFNIEZPUiBEVVJBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERTA7SEVYQUdSQU0gRk9SIFJFVFJFQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REUxO0hFWEFHUkFNIEZPUiBHUkVBVCBQT1dFUjtTbzswO09OOzs7OztOOzs7OzsKKzRERTI7SEVYQUdSQU0gRk9SIFBST0dSRVNTO1NvOzA7T047Ozs7O047Ozs7OworNERFMztIRVhBR1JBTSBGT1IgREFSS0VOSU5HIE9GIFRIRSBMSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzRERTQ7SEVYQUdSQU0gRk9SIFRIRSBGQU1JTFk7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU1O0hFWEFHUkFNIEZPUiBPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERFNjtIRVhBR1JBTSBGT1IgT0JTVFJVQ1RJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU3O0hFWEFHUkFNIEZPUiBERUxJVkVSQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzRERTg7SEVYQUdSQU0gRk9SIERFQ1JFQVNFO1NvOzA7T047Ozs7O047Ozs7OworNERFOTtIRVhBR1JBTSBGT1IgSU5DUkVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVBO0hFWEFHUkFNIEZPUiBCUkVBS1RIUk9VR0g7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVCO0hFWEFHUkFNIEZPUiBDT01JTkcgVE8gTUVFVDtTbzswO09OOzs7OztOOzs7OzsKKzRERUM7SEVYQUdSQU0gRk9SIEdBVEhFUklORyBUT0dFVEhFUjtTbzswO09OOzs7OztOOzs7OzsKKzRERUQ7SEVYQUdSQU0gRk9SIFBVU0hJTkcgVVBXQVJEO1NvOzA7T047Ozs7O047Ozs7OworNERFRTtIRVhBR1JBTSBGT1IgT1BQUkVTU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERUY7SEVYQUdSQU0gRk9SIFRIRSBXRUxMO1NvOzA7T047Ozs7O047Ozs7OworNERGMDtIRVhBR1JBTSBGT1IgUkVWT0xVVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERjE7SEVYQUdSQU0gRk9SIFRIRSBDQVVMRFJPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERjI7SEVYQUdSQU0gRk9SIFRIRSBBUk9VU0lORyBUSFVOREVSO1NvOzA7T047Ozs7O047Ozs7OworNERGMztIRVhBR1JBTSBGT1IgVEhFIEtFRVBJTkcgU1RJTEwgTU9VTlRBSU47U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY0O0hFWEFHUkFNIEZPUiBERVZFTE9QTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzRERjU7SEVYQUdSQU0gRk9SIFRIRSBNQVJSWUlORyBNQUlERU47U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY2O0hFWEFHUkFNIEZPUiBBQlVOREFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY3O0hFWEFHUkFNIEZPUiBUSEUgV0FOREVSRVI7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY4O0hFWEFHUkFNIEZPUiBUSEUgR0VOVExFIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY5O0hFWEFHUkFNIEZPUiBUSEUgSk9ZT1VTIExBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZBO0hFWEFHUkFNIEZPUiBESVNQRVJTSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERGQjtIRVhBR1JBTSBGT1IgTElNSVRBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERkM7SEVYQUdSQU0gRk9SIElOTkVSIFRSVVRIO1NvOzA7T047Ozs7O047Ozs7OworNERGRDtIRVhBR1JBTSBGT1IgU01BTEwgUFJFUE9OREVSQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzRERkU7SEVYQUdSQU0gRk9SIEFGVEVSIENPTVBMRVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZGO0hFWEFHUkFNIEZPUiBCRUZPUkUgQ09NUExFVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRFMDA7PENKSyBJZGVvZ3JhcGgsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworOUZCQjs8Q0pLIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0EwMDA7WUkgU1lMTEFCTEUgSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDE7WUkgU1lMTEFCTEUgSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMDI7WUkgU1lMTEFCTEUgSTtMbzswO0w7Ozs7O047Ozs7OworQTAwMztZSSBTWUxMQUJMRSBJUDtMbzswO0w7Ozs7O047Ozs7OworQTAwNDtZSSBTWUxMQUJMRSBJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDU7WUkgU1lMTEFCTEUgSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA2O1lJIFNZTExBQkxFIElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA3O1lJIFNZTExBQkxFIElFUDtMbzswO0w7Ozs7O047Ozs7OworQTAwODtZSSBTWUxMQUJMRSBBVDtMbzswO0w7Ozs7O047Ozs7OworQTAwOTtZSSBTWUxMQUJMRSBBWDtMbzswO0w7Ozs7O047Ozs7OworQTAwQTtZSSBTWUxMQUJMRSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBCO1lJIFNZTExBQkxFIEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBDO1lJIFNZTExBQkxFIFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTAwRDtZSSBTWUxMQUJMRSBVTztMbzswO0w7Ozs7O047Ozs7OworQTAwRTtZSSBTWUxMQUJMRSBVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMEY7WUkgU1lMTEFCTEUgT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwMTA7WUkgU1lMTEFCTEUgT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMTE7WUkgU1lMTEFCTEUgTztMbzswO0w7Ozs7O047Ozs7OworQTAxMjtZSSBTWUxMQUJMRSBPUDtMbzswO0w7Ozs7O047Ozs7OworQTAxMztZSSBTWUxMQUJMRSBFWDtMbzswO0w7Ozs7O047Ozs7OworQTAxNDtZSSBTWUxMQUJMRSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE1O1lJIFNZTExBQkxFIFdVO0xtOzA7TDs7Ozs7Tjs7Ozs7CitBMDE2O1lJIFNZTExBQkxFIEJJVDtMbzswO0w7Ozs7O047Ozs7OworQTAxNztZSSBTWUxMQUJMRSBCSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMTg7WUkgU1lMTEFCTEUgQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwMTk7WUkgU1lMTEFCTEUgQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFBO1lJIFNZTExBQkxFIEJJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMUI7WUkgU1lMTEFCTEUgQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTAxQztZSSBTWUxMQUJMRSBCSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwMUQ7WUkgU1lMTEFCTEUgQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTAxRTtZSSBTWUxMQUJMRSBCQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMUY7WUkgU1lMTEFCTEUgQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIwO1lJIFNZTExBQkxFIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIxO1lJIFNZTExBQkxFIEJBUDtMbzswO0w7Ozs7O047Ozs7OworQTAyMjtZSSBTWUxMQUJMRSBCVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIzO1lJIFNZTExBQkxFIEJVTztMbzswO0w7Ozs7O047Ozs7OworQTAyNDtZSSBTWUxMQUJMRSBCVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI1O1lJIFNZTExBQkxFIEJPVDtMbzswO0w7Ozs7O047Ozs7OworQTAyNjtZSSBTWUxMQUJMRSBCT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMjc7WUkgU1lMTEFCTEUgQk87TG87MDtMOzs7OztOOzs7OzsKK0EwMjg7WUkgU1lMTEFCTEUgQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI5O1lJIFNZTExBQkxFIEJFWDtMbzswO0w7Ozs7O047Ozs7OworQTAyQTtZSSBTWUxMQUJMRSBCRTtMbzswO0w7Ozs7O047Ozs7OworQTAyQjtZSSBTWUxMQUJMRSBCRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMkM7WUkgU1lMTEFCTEUgQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJEO1lJIFNZTExBQkxFIEJVWDtMbzswO0w7Ozs7O047Ozs7OworQTAyRTtZSSBTWUxMQUJMRSBCVTtMbzswO0w7Ozs7O047Ozs7OworQTAyRjtZSSBTWUxMQUJMRSBCVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMzA7WUkgU1lMTEFCTEUgQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTAzMTtZSSBTWUxMQUJMRSBCVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwMzI7WUkgU1lMTEFCTEUgQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMzO1lJIFNZTExBQkxFIEJZWDtMbzswO0w7Ozs7O047Ozs7OworQTAzNDtZSSBTWUxMQUJMRSBCWTtMbzswO0w7Ozs7O047Ozs7OworQTAzNTtZSSBTWUxMQUJMRSBCWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMzY7WUkgU1lMTEFCTEUgQllSWDtMbzswO0w7Ozs7O047Ozs7OworQTAzNztZSSBTWUxMQUJMRSBCWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwMzg7WUkgU1lMTEFCTEUgUElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM5O1lJIFNZTExBQkxFIFBJWDtMbzswO0w7Ozs7O047Ozs7OworQTAzQTtZSSBTWUxMQUJMRSBQSTtMbzswO0w7Ozs7O047Ozs7OworQTAzQjtZSSBTWUxMQUJMRSBQSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwM0M7WUkgU1lMTEFCTEUgUElFWDtMbzswO0w7Ozs7O047Ozs7OworQTAzRDtZSSBTWUxMQUJMRSBQSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwM0U7WUkgU1lMTEFCTEUgUElFUDtMbzswO0w7Ozs7O047Ozs7OworQTAzRjtZSSBTWUxMQUJMRSBQQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNDA7WUkgU1lMTEFCTEUgUEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQxO1lJIFNZTExBQkxFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQyO1lJIFNZTExBQkxFIFBBUDtMbzswO0w7Ozs7O047Ozs7OworQTA0MztZSSBTWUxMQUJMRSBQVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ0O1lJIFNZTExBQkxFIFBVTztMbzswO0w7Ozs7O047Ozs7OworQTA0NTtZSSBTWUxMQUJMRSBQVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ2O1lJIFNZTExBQkxFIFBPVDtMbzswO0w7Ozs7O047Ozs7OworQTA0NztZSSBTWUxMQUJMRSBQT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNDg7WUkgU1lMTEFCTEUgUE87TG87MDtMOzs7OztOOzs7OzsKK0EwNDk7WUkgU1lMTEFCTEUgUE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRBO1lJIFNZTExBQkxFIFBVVDtMbzswO0w7Ozs7O047Ozs7OworQTA0QjtZSSBTWUxMQUJMRSBQVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNEM7WUkgU1lMTEFCTEUgUFU7TG87MDtMOzs7OztOOzs7OzsKK0EwNEQ7WUkgU1lMTEFCTEUgUFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRFO1lJIFNZTExBQkxFIFBVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNEY7WUkgU1lMTEFCTEUgUFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUwO1lJIFNZTExBQkxFIFBZVDtMbzswO0w7Ozs7O047Ozs7OworQTA1MTtZSSBTWUxMQUJMRSBQWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTI7WUkgU1lMTEFCTEUgUFk7TG87MDtMOzs7OztOOzs7OzsKK0EwNTM7WUkgU1lMTEFCTEUgUFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU0O1lJIFNZTExBQkxFIFBZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTU7WUkgU1lMTEFCTEUgUFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU2O1lJIFNZTExBQkxFIEJCSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNTc7WUkgU1lMTEFCTEUgQkJJWDtMbzswO0w7Ozs7O047Ozs7OworQTA1ODtZSSBTWUxMQUJMRSBCQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwNTk7WUkgU1lMTEFCTEUgQkJJUDtMbzswO0w7Ozs7O047Ozs7OworQTA1QTtZSSBTWUxMQUJMRSBCQklFVDtMbzswO0w7Ozs7O047Ozs7OworQTA1QjtZSSBTWUxMQUJMRSBCQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTA1QztZSSBTWUxMQUJMRSBCQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVEO1lJIFNZTExBQkxFIEJCSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVFO1lJIFNZTExBQkxFIEJCQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNUY7WUkgU1lMTEFCTEUgQkJBWDtMbzswO0w7Ozs7O047Ozs7OworQTA2MDtZSSBTWUxMQUJMRSBCQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwNjE7WUkgU1lMTEFCTEUgQkJBUDtMbzswO0w7Ozs7O047Ozs7OworQTA2MjtZSSBTWUxMQUJMRSBCQlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA2MztZSSBTWUxMQUJMRSBCQlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY0O1lJIFNZTExBQkxFIEJCVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY1O1lJIFNZTExBQkxFIEJCT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwNjY7WUkgU1lMTEFCTEUgQkJPWDtMbzswO0w7Ozs7O047Ozs7OworQTA2NztZSSBTWUxMQUJMRSBCQk87TG87MDtMOzs7OztOOzs7OzsKK0EwNjg7WUkgU1lMTEFCTEUgQkJPUDtMbzswO0w7Ozs7O047Ozs7OworQTA2OTtZSSBTWUxMQUJMRSBCQkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZBO1lJIFNZTExBQkxFIEJCRTtMbzswO0w7Ozs7O047Ozs7OworQTA2QjtZSSBTWUxMQUJMRSBCQkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZDO1lJIFNZTExBQkxFIEJCVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNkQ7WUkgU1lMTEFCTEUgQkJVWDtMbzswO0w7Ozs7O047Ozs7OworQTA2RTtZSSBTWUxMQUJMRSBCQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwNkY7WUkgU1lMTEFCTEUgQkJVUDtMbzswO0w7Ozs7O047Ozs7OworQTA3MDtZSSBTWUxMQUJMRSBCQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA3MTtZSSBTWUxMQUJMRSBCQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcyO1lJIFNZTExBQkxFIEJCWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNzM7WUkgU1lMTEFCTEUgQkJZWDtMbzswO0w7Ozs7O047Ozs7OworQTA3NDtZSSBTWUxMQUJMRSBCQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwNzU7WUkgU1lMTEFCTEUgQkJZUDtMbzswO0w7Ozs7O047Ozs7OworQTA3NjtZSSBTWUxMQUJMRSBOQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc3O1lJIFNZTExBQkxFIE5CSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzg7WUkgU1lMTEFCTEUgTkJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc5O1lJIFNZTExBQkxFIE5CSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwN0E7WUkgU1lMTEFCTEUgTkJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwN0I7WUkgU1lMTEFCTEUgTkJJRTtMbzswO0w7Ozs7O047Ozs7OworQTA3QztZSSBTWUxMQUJMRSBOQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTA3RDtZSSBTWUxMQUJMRSBOQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdFO1lJIFNZTExBQkxFIE5CQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwN0Y7WUkgU1lMTEFCTEUgTkJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgwO1lJIFNZTExBQkxFIE5CQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwODE7WUkgU1lMTEFCTEUgTkJPVDtMbzswO0w7Ozs7O047Ozs7OworQTA4MjtZSSBTWUxMQUJMRSBOQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgzO1lJIFNZTExBQkxFIE5CTztMbzswO0w7Ozs7O047Ozs7OworQTA4NDtZSSBTWUxMQUJMRSBOQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg1O1lJIFNZTExBQkxFIE5CVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwODY7WUkgU1lMTEFCTEUgTkJVWDtMbzswO0w7Ozs7O047Ozs7OworQTA4NztZSSBTWUxMQUJMRSBOQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwODg7WUkgU1lMTEFCTEUgTkJVUDtMbzswO0w7Ozs7O047Ozs7OworQTA4OTtZSSBTWUxMQUJMRSBOQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA4QTtZSSBTWUxMQUJMRSBOQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhCO1lJIFNZTExBQkxFIE5CWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOEM7WUkgU1lMTEFCTEUgTkJZWDtMbzswO0w7Ozs7O047Ozs7OworQTA4RDtZSSBTWUxMQUJMRSBOQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwOEU7WUkgU1lMTEFCTEUgTkJZUDtMbzswO0w7Ozs7O047Ozs7OworQTA4RjtZSSBTWUxMQUJMRSBOQllSWDtMbzswO0w7Ozs7O047Ozs7OworQTA5MDtZSSBTWUxMQUJMRSBOQllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkxO1lJIFNZTExBQkxFIEhNSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOTI7WUkgU1lMTEFCTEUgSE1JWDtMbzswO0w7Ozs7O047Ozs7OworQTA5MztZSSBTWUxMQUJMRSBITUk7TG87MDtMOzs7OztOOzs7OzsKK0EwOTQ7WUkgU1lMTEFCTEUgSE1JUDtMbzswO0w7Ozs7O047Ozs7OworQTA5NTtZSSBTWUxMQUJMRSBITUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTA5NjtZSSBTWUxMQUJMRSBITUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk3O1lJIFNZTExBQkxFIEhNSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk4O1lJIFNZTExBQkxFIEhNQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOTk7WUkgU1lMTEFCTEUgSE1BWDtMbzswO0w7Ozs7O047Ozs7OworQTA5QTtZSSBTWUxMQUJMRSBITUE7TG87MDtMOzs7OztOOzs7OzsKK0EwOUI7WUkgU1lMTEFCTEUgSE1BUDtMbzswO0w7Ozs7O047Ozs7OworQTA5QztZSSBTWUxMQUJMRSBITVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA5RDtZSSBTWUxMQUJMRSBITVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlFO1lJIFNZTExBQkxFIEhNVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlGO1lJIFNZTExBQkxFIEhNT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQTA7WUkgU1lMTEFCTEUgSE1PWDtMbzswO0w7Ozs7O047Ozs7OworQTBBMTtZSSBTWUxMQUJMRSBITU87TG87MDtMOzs7OztOOzs7OzsKK0EwQTI7WUkgU1lMTEFCTEUgSE1PUDtMbzswO0w7Ozs7O047Ozs7OworQTBBMztZSSBTWUxMQUJMRSBITVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE0O1lJIFNZTExBQkxFIEhNVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQTU7WUkgU1lMTEFCTEUgSE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE2O1lJIFNZTExBQkxFIEhNVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQTc7WUkgU1lMTEFCTEUgSE1VUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQTg7WUkgU1lMTEFCTEUgSE1VUjtMbzswO0w7Ozs7O047Ozs7OworQTBBOTtZSSBTWUxMQUJMRSBITVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFBO1lJIFNZTExBQkxFIEhNWTtMbzswO0w7Ozs7O047Ozs7OworQTBBQjtZSSBTWUxMQUJMRSBITVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFDO1lJIFNZTExBQkxFIEhNWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFEO1lJIFNZTExBQkxFIEhNWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQUU7WUkgU1lMTEFCTEUgTUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFGO1lJIFNZTExBQkxFIE1JWDtMbzswO0w7Ozs7O047Ozs7OworQTBCMDtZSSBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworQTBCMTtZSSBTWUxMQUJMRSBNSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjI7WUkgU1lMTEFCTEUgTUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTBCMztZSSBTWUxMQUJMRSBNSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwQjQ7WUkgU1lMTEFCTEUgTUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTBCNTtZSSBTWUxMQUJMRSBNQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQjY7WUkgU1lMTEFCTEUgTUFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI3O1lJIFNZTExBQkxFIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI4O1lJIFNZTExBQkxFIE1BUDtMbzswO0w7Ozs7O047Ozs7OworQTBCOTtZSSBTWUxMQUJMRSBNVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJBO1lJIFNZTExBQkxFIE1VT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQkI7WUkgU1lMTEFCTEUgTVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJDO1lJIFNZTExBQkxFIE1VT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQkQ7WUkgU1lMTEFCTEUgTU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJFO1lJIFNZTExBQkxFIE1PWDtMbzswO0w7Ozs7O047Ozs7OworQTBCRjtZSSBTWUxMQUJMRSBNTztMbzswO0w7Ozs7O047Ozs7OworQTBDMDtZSSBTWUxMQUJMRSBNT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQzE7WUkgU1lMTEFCTEUgTUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMyO1lJIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMzO1lJIFNZTExBQkxFIE1VVDtMbzswO0w7Ozs7O047Ozs7OworQTBDNDtZSSBTWUxMQUJMRSBNVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzU7WUkgU1lMTEFCTEUgTVU7TG87MDtMOzs7OztOOzs7OzsKK0EwQzY7WUkgU1lMTEFCTEUgTVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM3O1lJIFNZTExBQkxFIE1VUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzg7WUkgU1lMTEFCTEUgTVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM5O1lJIFNZTExBQkxFIE1ZVDtMbzswO0w7Ozs7O047Ozs7OworQTBDQTtZSSBTWUxMQUJMRSBNWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0I7WUkgU1lMTEFCTEUgTVk7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0M7WUkgU1lMTEFCTEUgTVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENEO1lJIFNZTExBQkxFIEZJVDtMbzswO0w7Ozs7O047Ozs7OworQTBDRTtZSSBTWUxMQUJMRSBGSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0Y7WUkgU1lMTEFCTEUgRkk7TG87MDtMOzs7OztOOzs7OzsKK0EwRDA7WUkgU1lMTEFCTEUgRklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQxO1lJIFNZTExBQkxFIEZBVDtMbzswO0w7Ozs7O047Ozs7OworQTBEMjtZSSBTWUxMQUJMRSBGQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRDM7WUkgU1lMTEFCTEUgRkE7TG87MDtMOzs7OztOOzs7OzsKK0EwRDQ7WUkgU1lMTEFCTEUgRkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ1O1lJIFNZTExBQkxFIEZPWDtMbzswO0w7Ozs7O047Ozs7OworQTBENjtZSSBTWUxMQUJMRSBGTztMbzswO0w7Ozs7O047Ozs7OworQTBENztZSSBTWUxMQUJMRSBGT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwRDg7WUkgU1lMTEFCTEUgRlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ5O1lJIFNZTExBQkxFIEZVWDtMbzswO0w7Ozs7O047Ozs7OworQTBEQTtZSSBTWUxMQUJMRSBGVTtMbzswO0w7Ozs7O047Ozs7OworQTBEQjtZSSBTWUxMQUJMRSBGVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwREM7WUkgU1lMTEFCTEUgRlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBERDtZSSBTWUxMQUJMRSBGVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwREU7WUkgU1lMTEFCTEUgRllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERGO1lJIFNZTExBQkxFIEZZWDtMbzswO0w7Ozs7O047Ozs7OworQTBFMDtZSSBTWUxMQUJMRSBGWTtMbzswO0w7Ozs7O047Ozs7OworQTBFMTtZSSBTWUxMQUJMRSBGWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRTI7WUkgU1lMTEFCTEUgVklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUzO1lJIFNZTExBQkxFIFZJWDtMbzswO0w7Ozs7O047Ozs7OworQTBFNDtZSSBTWUxMQUJMRSBWSTtMbzswO0w7Ozs7O047Ozs7OworQTBFNTtZSSBTWUxMQUJMRSBWSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRTY7WUkgU1lMTEFCTEUgVklFVDtMbzswO0w7Ozs7O047Ozs7OworQTBFNztZSSBTWUxMQUJMRSBWSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU4O1lJIFNZTExBQkxFIFZJRTtMbzswO0w7Ozs7O047Ozs7OworQTBFOTtZSSBTWUxMQUJMRSBWSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVBO1lJIFNZTExBQkxFIFZBVDtMbzswO0w7Ozs7O047Ozs7OworQTBFQjtZSSBTWUxMQUJMRSBWQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRUM7WUkgU1lMTEFCTEUgVkE7TG87MDtMOzs7OztOOzs7OzsKK0EwRUQ7WUkgU1lMTEFCTEUgVkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVFO1lJIFNZTExBQkxFIFZPVDtMbzswO0w7Ozs7O047Ozs7OworQTBFRjtZSSBTWUxMQUJMRSBWT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwRjA7WUkgU1lMTEFCTEUgVk87TG87MDtMOzs7OztOOzs7OzsKK0EwRjE7WUkgU1lMTEFCTEUgVk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYyO1lJIFNZTExBQkxFIFZFWDtMbzswO0w7Ozs7O047Ozs7OworQTBGMztZSSBTWUxMQUJMRSBWRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRjQ7WUkgU1lMTEFCTEUgVlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY1O1lJIFNZTExBQkxFIFZVWDtMbzswO0w7Ozs7O047Ozs7OworQTBGNjtZSSBTWUxMQUJMRSBWVTtMbzswO0w7Ozs7O047Ozs7OworQTBGNztZSSBTWUxMQUJMRSBWVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRjg7WUkgU1lMTEFCTEUgVlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBGOTtZSSBTWUxMQUJMRSBWVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwRkE7WUkgU1lMTEFCTEUgVllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZCO1lJIFNZTExBQkxFIFZZWDtMbzswO0w7Ozs7O047Ozs7OworQTBGQztZSSBTWUxMQUJMRSBWWTtMbzswO0w7Ozs7O047Ozs7OworQTBGRDtZSSBTWUxMQUJMRSBWWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRkU7WUkgU1lMTEFCTEUgVllSWDtMbzswO0w7Ozs7O047Ozs7OworQTBGRjtZSSBTWUxMQUJMRSBWWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMDA7WUkgU1lMTEFCTEUgRElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAxO1lJIFNZTExBQkxFIERJWDtMbzswO0w7Ozs7O047Ozs7OworQTEwMjtZSSBTWUxMQUJMRSBESTtMbzswO0w7Ozs7O047Ozs7OworQTEwMztZSSBTWUxMQUJMRSBESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMDQ7WUkgU1lMTEFCTEUgRElFWDtMbzswO0w7Ozs7O047Ozs7OworQTEwNTtZSSBTWUxMQUJMRSBESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExMDY7WUkgU1lMTEFCTEUgRElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEwNztZSSBTWUxMQUJMRSBEQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMDg7WUkgU1lMTEFCTEUgREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA5O1lJIFNZTExBQkxFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBBO1lJIFNZTExBQkxFIERBUDtMbzswO0w7Ozs7O047Ozs7OworQTEwQjtZSSBTWUxMQUJMRSBEVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBDO1lJIFNZTExBQkxFIERVTztMbzswO0w7Ozs7O047Ozs7OworQTEwRDtZSSBTWUxMQUJMRSBET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMEU7WUkgU1lMTEFCTEUgRE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBGO1lJIFNZTExBQkxFIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEwO1lJIFNZTExBQkxFIERPUDtMbzswO0w7Ozs7O047Ozs7OworQTExMTtZSSBTWUxMQUJMRSBERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTI7WUkgU1lMTEFCTEUgREU7TG87MDtMOzs7OztOOzs7OzsKK0ExMTM7WUkgU1lMTEFCTEUgREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE0O1lJIFNZTExBQkxFIERVVDtMbzswO0w7Ozs7O047Ozs7OworQTExNTtZSSBTWUxMQUJMRSBEVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTY7WUkgU1lMTEFCTEUgRFU7TG87MDtMOzs7OztOOzs7OzsKK0ExMTc7WUkgU1lMTEFCTEUgRFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE4O1lJIFNZTExBQkxFIERVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTk7WUkgU1lMTEFCTEUgRFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFBO1lJIFNZTExBQkxFIFRJVDtMbzswO0w7Ozs7O047Ozs7OworQTExQjtZSSBTWUxMQUJMRSBUSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMUM7WUkgU1lMTEFCTEUgVEk7TG87MDtMOzs7OztOOzs7OzsKK0ExMUQ7WUkgU1lMTEFCTEUgVElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFFO1lJIFNZTExBQkxFIFRJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMUY7WUkgU1lMTEFCTEUgVElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIwO1lJIFNZTExBQkxFIFRJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMjE7WUkgU1lMTEFCTEUgVEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIyO1lJIFNZTExBQkxFIFRBWDtMbzswO0w7Ozs7O047Ozs7OworQTEyMztZSSBTWUxMQUJMRSBUQTtMbzswO0w7Ozs7O047Ozs7OworQTEyNDtZSSBTWUxMQUJMRSBUQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMjU7WUkgU1lMTEFCTEUgVFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTEyNjtZSSBTWUxMQUJMRSBUVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI3O1lJIFNZTExBQkxFIFRVTztMbzswO0w7Ozs7O047Ozs7OworQTEyODtZSSBTWUxMQUJMRSBUVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI5O1lJIFNZTExBQkxFIFRPVDtMbzswO0w7Ozs7O047Ozs7OworQTEyQTtZSSBTWUxMQUJMRSBUT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMkI7WUkgU1lMTEFCTEUgVE87TG87MDtMOzs7OztOOzs7OzsKK0ExMkM7WUkgU1lMTEFCTEUgVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJEO1lJIFNZTExBQkxFIFRFWDtMbzswO0w7Ozs7O047Ozs7OworQTEyRTtZSSBTWUxMQUJMRSBURTtMbzswO0w7Ozs7O047Ozs7OworQTEyRjtZSSBTWUxMQUJMRSBURVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMzA7WUkgU1lMTEFCTEUgVFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMxO1lJIFNZTExBQkxFIFRVWDtMbzswO0w7Ozs7O047Ozs7OworQTEzMjtZSSBTWUxMQUJMRSBUVTtMbzswO0w7Ozs7O047Ozs7OworQTEzMztZSSBTWUxMQUJMRSBUVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMzQ7WUkgU1lMTEFCTEUgVFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTEzNTtZSSBTWUxMQUJMRSBUVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMzY7WUkgU1lMTEFCTEUgRERJVDtMbzswO0w7Ozs7O047Ozs7OworQTEzNztZSSBTWUxMQUJMRSBERElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM4O1lJIFNZTExBQkxFIERESTtMbzswO0w7Ozs7O047Ozs7OworQTEzOTtZSSBTWUxMQUJMRSBERElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNBO1lJIFNZTExBQkxFIERESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNCO1lJIFNZTExBQkxFIERESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExM0M7WUkgU1lMTEFCTEUgRERJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExM0Q7WUkgU1lMTEFCTEUgRERBVDtMbzswO0w7Ozs7O047Ozs7OworQTEzRTtZSSBTWUxMQUJMRSBEREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNGO1lJIFNZTExBQkxFIEREQTtMbzswO0w7Ozs7O047Ozs7OworQTE0MDtZSSBTWUxMQUJMRSBEREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQxO1lJIFNZTExBQkxFIEREVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQyO1lJIFNZTExBQkxFIEREVU87TG87MDtMOzs7OztOOzs7OzsKK0ExNDM7WUkgU1lMTEFCTEUgRERVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNDQ7WUkgU1lMTEFCTEUgRERPVDtMbzswO0w7Ozs7O047Ozs7OworQTE0NTtZSSBTWUxMQUJMRSBERE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ2O1lJIFNZTExBQkxFIERETztMbzswO0w7Ozs7O047Ozs7OworQTE0NztZSSBTWUxMQUJMRSBERE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ4O1lJIFNZTExBQkxFIERERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNDk7WUkgU1lMTEFCTEUgRERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRBO1lJIFNZTExBQkxFIERERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNEI7WUkgU1lMTEFCTEUgRERVVDtMbzswO0w7Ozs7O047Ozs7OworQTE0QztZSSBTWUxMQUJMRSBERFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTREO1lJIFNZTExBQkxFIEREVTtMbzswO0w7Ozs7O047Ozs7OworQTE0RTtZSSBTWUxMQUJMRSBERFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRGO1lJIFNZTExBQkxFIEREVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUwO1lJIFNZTExBQkxFIEREVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExNTE7WUkgU1lMTEFCTEUgTkRJVDtMbzswO0w7Ozs7O047Ozs7OworQTE1MjtZSSBTWUxMQUJMRSBORElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUzO1lJIFNZTExBQkxFIE5ESTtMbzswO0w7Ozs7O047Ozs7OworQTE1NDtZSSBTWUxMQUJMRSBORElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU1O1lJIFNZTExBQkxFIE5ESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU2O1lJIFNZTExBQkxFIE5ESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExNTc7WUkgU1lMTEFCTEUgTkRBVDtMbzswO0w7Ozs7O047Ozs7OworQTE1ODtZSSBTWUxMQUJMRSBOREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU5O1lJIFNZTExBQkxFIE5EQTtMbzswO0w7Ozs7O047Ozs7OworQTE1QTtZSSBTWUxMQUJMRSBOREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVCO1lJIFNZTExBQkxFIE5ET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNUM7WUkgU1lMTEFCTEUgTkRPWDtMbzswO0w7Ozs7O047Ozs7OworQTE1RDtZSSBTWUxMQUJMRSBORE87TG87MDtMOzs7OztOOzs7OzsKK0ExNUU7WUkgU1lMTEFCTEUgTkRPUDtMbzswO0w7Ozs7O047Ozs7OworQTE1RjtZSSBTWUxMQUJMRSBOREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYwO1lJIFNZTExBQkxFIE5ERTtMbzswO0w7Ozs7O047Ozs7OworQTE2MTtZSSBTWUxMQUJMRSBOREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYyO1lJIFNZTExBQkxFIE5EVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNjM7WUkgU1lMTEFCTEUgTkRVWDtMbzswO0w7Ozs7O047Ozs7OworQTE2NDtZSSBTWUxMQUJMRSBORFU7TG87MDtMOzs7OztOOzs7OzsKK0ExNjU7WUkgU1lMTEFCTEUgTkRVUDtMbzswO0w7Ozs7O047Ozs7OworQTE2NjtZSSBTWUxMQUJMRSBORFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE2NztZSSBTWUxMQUJMRSBORFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY4O1lJIFNZTExBQkxFIEhOSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNjk7WUkgU1lMTEFCTEUgSE5JWDtMbzswO0w7Ozs7O047Ozs7OworQTE2QTtZSSBTWUxMQUJMRSBITkk7TG87MDtMOzs7OztOOzs7OzsKK0ExNkI7WUkgU1lMTEFCTEUgSE5JUDtMbzswO0w7Ozs7O047Ozs7OworQTE2QztZSSBTWUxMQUJMRSBITklFVDtMbzswO0w7Ozs7O047Ozs7OworQTE2RDtZSSBTWUxMQUJMRSBITklFWDtMbzswO0w7Ozs7O047Ozs7OworQTE2RTtZSSBTWUxMQUJMRSBITklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZGO1lJIFNZTExBQkxFIEhOSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcwO1lJIFNZTExBQkxFIEhOQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNzE7WUkgU1lMTEFCTEUgSE5BWDtMbzswO0w7Ozs7O047Ozs7OworQTE3MjtZSSBTWUxMQUJMRSBITkE7TG87MDtMOzs7OztOOzs7OzsKK0ExNzM7WUkgU1lMTEFCTEUgSE5BUDtMbzswO0w7Ozs7O047Ozs7OworQTE3NDtZSSBTWUxMQUJMRSBITlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE3NTtZSSBTWUxMQUJMRSBITlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc2O1lJIFNZTExBQkxFIEhOT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNzc7WUkgU1lMTEFCTEUgSE5PWDtMbzswO0w7Ozs7O047Ozs7OworQTE3ODtZSSBTWUxMQUJMRSBITk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc5O1lJIFNZTExBQkxFIEhORVg7TG87MDtMOzs7OztOOzs7OzsKK0ExN0E7WUkgU1lMTEFCTEUgSE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdCO1lJIFNZTExBQkxFIEhORVA7TG87MDtMOzs7OztOOzs7OzsKK0ExN0M7WUkgU1lMTEFCTEUgSE5VVDtMbzswO0w7Ozs7O047Ozs7OworQTE3RDtZSSBTWUxMQUJMRSBOSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExN0U7WUkgU1lMTEFCTEUgTklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdGO1lJIFNZTExBQkxFIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgwO1lJIFNZTExBQkxFIE5JUDtMbzswO0w7Ozs7O047Ozs7OworQTE4MTtZSSBTWUxMQUJMRSBOSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgyO1lJIFNZTExBQkxFIE5JRTtMbzswO0w7Ozs7O047Ozs7OworQTE4MztZSSBTWUxMQUJMRSBOSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg0O1lJIFNZTExBQkxFIE5BWDtMbzswO0w7Ozs7O047Ozs7OworQTE4NTtZSSBTWUxMQUJMRSBOQTtMbzswO0w7Ozs7O047Ozs7OworQTE4NjtZSSBTWUxMQUJMRSBOQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODc7WUkgU1lMTEFCTEUgTlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE4ODtZSSBTWUxMQUJMRSBOVU87TG87MDtMOzs7OztOOzs7OzsKK0ExODk7WUkgU1lMTEFCTEUgTlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTE4QTtZSSBTWUxMQUJMRSBOT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExOEI7WUkgU1lMTEFCTEUgTk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThDO1lJIFNZTExBQkxFIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThEO1lJIFNZTExBQkxFIE5PUDtMbzswO0w7Ozs7O047Ozs7OworQTE4RTtZSSBTWUxMQUJMRSBORVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOEY7WUkgU1lMTEFCTEUgTkU7TG87MDtMOzs7OztOOzs7OzsKK0ExOTA7WUkgU1lMTEFCTEUgTkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkxO1lJIFNZTExBQkxFIE5VVDtMbzswO0w7Ozs7O047Ozs7OworQTE5MjtZSSBTWUxMQUJMRSBOVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTM7WUkgU1lMTEFCTEUgTlU7TG87MDtMOzs7OztOOzs7OzsKK0ExOTQ7WUkgU1lMTEFCTEUgTlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk1O1lJIFNZTExBQkxFIE5VUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTY7WUkgU1lMTEFCTEUgTlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk3O1lJIFNZTExBQkxFIEhMSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOTg7WUkgU1lMTEFCTEUgSExJWDtMbzswO0w7Ozs7O047Ozs7OworQTE5OTtZSSBTWUxMQUJMRSBITEk7TG87MDtMOzs7OztOOzs7OzsKK0ExOUE7WUkgU1lMTEFCTEUgSExJUDtMbzswO0w7Ozs7O047Ozs7OworQTE5QjtZSSBTWUxMQUJMRSBITElFWDtMbzswO0w7Ozs7O047Ozs7OworQTE5QztZSSBTWUxMQUJMRSBITElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlEO1lJIFNZTExBQkxFIEhMSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlFO1lJIFNZTExBQkxFIEhMQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOUY7WUkgU1lMTEFCTEUgSExBWDtMbzswO0w7Ozs7O047Ozs7OworQTFBMDtZSSBTWUxMQUJMRSBITEE7TG87MDtMOzs7OztOOzs7OzsKK0ExQTE7WUkgU1lMTEFCTEUgSExBUDtMbzswO0w7Ozs7O047Ozs7OworQTFBMjtZSSBTWUxMQUJMRSBITFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTFBMztZSSBTWUxMQUJMRSBITFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE0O1lJIFNZTExBQkxFIEhMVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE1O1lJIFNZTExBQkxFIEhMT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQTY7WUkgU1lMTEFCTEUgSExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE3O1lJIFNZTExBQkxFIEhMT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQTg7WUkgU1lMTEFCTEUgSExFWDtMbzswO0w7Ozs7O047Ozs7OworQTFBOTtZSSBTWUxMQUJMRSBITEU7TG87MDtMOzs7OztOOzs7OzsKK0ExQUE7WUkgU1lMTEFCTEUgSExFUDtMbzswO0w7Ozs7O047Ozs7OworQTFBQjtZSSBTWUxMQUJMRSBITFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFDO1lJIFNZTExBQkxFIEhMVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQUQ7WUkgU1lMTEFCTEUgSExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFFO1lJIFNZTExBQkxFIEhMVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQUY7WUkgU1lMTEFCTEUgSExVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjA7WUkgU1lMTEFCTEUgSExVUjtMbzswO0w7Ozs7O047Ozs7OworQTFCMTtZSSBTWUxMQUJMRSBITFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIyO1lJIFNZTExBQkxFIEhMWVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjM7WUkgU1lMTEFCTEUgSExZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI0O1lJIFNZTExBQkxFIEhMWVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQjU7WUkgU1lMTEFCTEUgSExZUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjY7WUkgU1lMTEFCTEUgSExZUjtMbzswO0w7Ozs7O047Ozs7OworQTFCNztZSSBTWUxMQUJMRSBMSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQjg7WUkgU1lMTEFCTEUgTElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI5O1lJIFNZTExBQkxFIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJBO1lJIFNZTExBQkxFIExJUDtMbzswO0w7Ozs7O047Ozs7OworQTFCQjtZSSBTWUxMQUJMRSBMSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJDO1lJIFNZTExBQkxFIExJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQkQ7WUkgU1lMTEFCTEUgTElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJFO1lJIFNZTExBQkxFIExJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQkY7WUkgU1lMTEFCTEUgTEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMwO1lJIFNZTExBQkxFIExBWDtMbzswO0w7Ozs7O047Ozs7OworQTFDMTtZSSBTWUxMQUJMRSBMQTtMbzswO0w7Ozs7O047Ozs7OworQTFDMjtZSSBTWUxMQUJMRSBMQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQzM7WUkgU1lMTEFCTEUgTFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTFDNDtZSSBTWUxMQUJMRSBMVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM1O1lJIFNZTExBQkxFIExVTztMbzswO0w7Ozs7O047Ozs7OworQTFDNjtZSSBTWUxMQUJMRSBMVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM3O1lJIFNZTExBQkxFIExPVDtMbzswO0w7Ozs7O047Ozs7OworQTFDODtZSSBTWUxMQUJMRSBMT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQzk7WUkgU1lMTEFCTEUgTE87TG87MDtMOzs7OztOOzs7OzsKK0ExQ0E7WUkgU1lMTEFCTEUgTE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNCO1lJIFNZTExBQkxFIExFWDtMbzswO0w7Ozs7O047Ozs7OworQTFDQztZSSBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworQTFDRDtZSSBTWUxMQUJMRSBMRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0U7WUkgU1lMTEFCTEUgTFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNGO1lJIFNZTExBQkxFIExVWDtMbzswO0w7Ozs7O047Ozs7OworQTFEMDtZSSBTWUxMQUJMRSBMVTtMbzswO0w7Ozs7O047Ozs7OworQTFEMTtZSSBTWUxMQUJMRSBMVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRDI7WUkgU1lMTEFCTEUgTFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTFEMztZSSBTWUxMQUJMRSBMVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExRDQ7WUkgU1lMTEFCTEUgTFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ1O1lJIFNZTExBQkxFIExZWDtMbzswO0w7Ozs7O047Ozs7OworQTFENjtZSSBTWUxMQUJMRSBMWTtMbzswO0w7Ozs7O047Ozs7OworQTFENztZSSBTWUxMQUJMRSBMWVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRDg7WUkgU1lMTEFCTEUgTFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTFEOTtZSSBTWUxMQUJMRSBMWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExREE7WUkgU1lMTEFCTEUgR0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURCO1lJIFNZTExBQkxFIEdJWDtMbzswO0w7Ozs7O047Ozs7OworQTFEQztZSSBTWUxMQUJMRSBHSTtMbzswO0w7Ozs7O047Ozs7OworQTFERDtZSSBTWUxMQUJMRSBHSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExREU7WUkgU1lMTEFCTEUgR0lFVDtMbzswO0w7Ozs7O047Ozs7OworQTFERjtZSSBTWUxMQUJMRSBHSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUwO1lJIFNZTExBQkxFIEdJRTtMbzswO0w7Ozs7O047Ozs7OworQTFFMTtZSSBTWUxMQUJMRSBHSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUyO1lJIFNZTExBQkxFIEdBVDtMbzswO0w7Ozs7O047Ozs7OworQTFFMztZSSBTWUxMQUJMRSBHQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRTQ7WUkgU1lMTEFCTEUgR0E7TG87MDtMOzs7OztOOzs7OzsKK0ExRTU7WUkgU1lMTEFCTEUgR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU2O1lJIFNZTExBQkxFIEdVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExRTc7WUkgU1lMTEFCTEUgR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTFFODtZSSBTWUxMQUJMRSBHVU87TG87MDtMOzs7OztOOzs7OzsKK0ExRTk7WUkgU1lMTEFCTEUgR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTFFQTtZSSBTWUxMQUJMRSBHT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExRUI7WUkgU1lMTEFCTEUgR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVDO1lJIFNZTExBQkxFIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVEO1lJIFNZTExBQkxFIEdPUDtMbzswO0w7Ozs7O047Ozs7OworQTFFRTtZSSBTWUxMQUJMRSBHRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRUY7WUkgU1lMTEFCTEUgR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYwO1lJIFNZTExBQkxFIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYxO1lJIFNZTExBQkxFIEdFUDtMbzswO0w7Ozs7O047Ozs7OworQTFGMjtZSSBTWUxMQUJMRSBHVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRjM7WUkgU1lMTEFCTEUgR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY0O1lJIFNZTExBQkxFIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY1O1lJIFNZTExBQkxFIEdVUDtMbzswO0w7Ozs7O047Ozs7OworQTFGNjtZSSBTWUxMQUJMRSBHVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY3O1lJIFNZTExBQkxFIEdVUjtMbzswO0w7Ozs7O047Ozs7OworQTFGODtZSSBTWUxMQUJMRSBLSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRjk7WUkgU1lMTEFCTEUgS0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZBO1lJIFNZTExBQkxFIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZCO1lJIFNZTExBQkxFIEtJUDtMbzswO0w7Ozs7O047Ozs7OworQTFGQztZSSBTWUxMQUJMRSBLSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZEO1lJIFNZTExBQkxFIEtJRTtMbzswO0w7Ozs7O047Ozs7OworQTFGRTtZSSBTWUxMQUJMRSBLSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZGO1lJIFNZTExBQkxFIEtBVDtMbzswO0w7Ozs7O047Ozs7OworQTIwMDtZSSBTWUxMQUJMRSBLQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMDE7WUkgU1lMTEFCTEUgS0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMDI7WUkgU1lMTEFCTEUgS0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAzO1lJIFNZTExBQkxFIEtVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMDQ7WUkgU1lMTEFCTEUgS1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA1O1lJIFNZTExBQkxFIEtVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMDY7WUkgU1lMTEFCTEUgS09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA3O1lJIFNZTExBQkxFIEtPWDtMbzswO0w7Ozs7O047Ozs7OworQTIwODtZSSBTWUxMQUJMRSBLTztMbzswO0w7Ozs7O047Ozs7OworQTIwOTtZSSBTWUxMQUJMRSBLT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMEE7WUkgU1lMTEFCTEUgS0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBCO1lJIFNZTExBQkxFIEtFWDtMbzswO0w7Ozs7O047Ozs7OworQTIwQztZSSBTWUxMQUJMRSBLRTtMbzswO0w7Ozs7O047Ozs7OworQTIwRDtZSSBTWUxMQUJMRSBLRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMEU7WUkgU1lMTEFCTEUgS1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBGO1lJIFNZTExBQkxFIEtVWDtMbzswO0w7Ozs7O047Ozs7OworQTIxMDtZSSBTWUxMQUJMRSBLVTtMbzswO0w7Ozs7O047Ozs7OworQTIxMTtZSSBTWUxMQUJMRSBLVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMTI7WUkgU1lMTEFCTEUgS1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTIxMztZSSBTWUxMQUJMRSBLVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyMTQ7WUkgU1lMTEFCTEUgR0dJVDtMbzswO0w7Ozs7O047Ozs7OworQTIxNTtZSSBTWUxMQUJMRSBHR0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE2O1lJIFNZTExBQkxFIEdHSTtMbzswO0w7Ozs7O047Ozs7OworQTIxNztZSSBTWUxMQUJMRSBHR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTIxODtZSSBTWUxMQUJMRSBHR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE5O1lJIFNZTExBQkxFIEdHSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFBO1lJIFNZTExBQkxFIEdHQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMUI7WUkgU1lMTEFCTEUgR0dBWDtMbzswO0w7Ozs7O047Ozs7OworQTIxQztZSSBTWUxMQUJMRSBHR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMUQ7WUkgU1lMTEFCTEUgR0dBUDtMbzswO0w7Ozs7O047Ozs7OworQTIxRTtZSSBTWUxMQUJMRSBHR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTIxRjtZSSBTWUxMQUJMRSBHR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIyMDtZSSBTWUxMQUJMRSBHR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIxO1lJIFNZTExBQkxFIEdHVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIyO1lJIFNZTExBQkxFIEdHT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMjM7WUkgU1lMTEFCTEUgR0dPWDtMbzswO0w7Ozs7O047Ozs7OworQTIyNDtZSSBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKK0EyMjU7WUkgU1lMTEFCTEUgR0dPUDtMbzswO0w7Ozs7O047Ozs7OworQTIyNjtZSSBTWUxMQUJMRSBHR0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI3O1lJIFNZTExBQkxFIEdHRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMjg7WUkgU1lMTEFCTEUgR0dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI5O1lJIFNZTExBQkxFIEdHRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMkE7WUkgU1lMTEFCTEUgR0dVVDtMbzswO0w7Ozs7O047Ozs7OworQTIyQjtZSSBTWUxMQUJMRSBHR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJDO1lJIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworQTIyRDtZSSBTWUxMQUJMRSBHR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJFO1lJIFNZTExBQkxFIEdHVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJGO1lJIFNZTExBQkxFIEdHVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyMzA7WUkgU1lMTEFCTEUgTUdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMzE7WUkgU1lMTEFCTEUgTUdJRTtMbzswO0w7Ozs7O047Ozs7OworQTIzMjtZSSBTWUxMQUJMRSBNR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMzO1lJIFNZTExBQkxFIE1HQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMzQ7WUkgU1lMTEFCTEUgTUdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM1O1lJIFNZTExBQkxFIE1HQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMzY7WUkgU1lMTEFCTEUgTUdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMzc7WUkgU1lMTEFCTEUgTUdVTztMbzswO0w7Ozs7O047Ozs7OworQTIzODtZSSBTWUxMQUJMRSBNR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIzOTtZSSBTWUxMQUJMRSBNR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNBO1lJIFNZTExBQkxFIE1HT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyM0I7WUkgU1lMTEFCTEUgTUdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNDO1lJIFNZTExBQkxFIE1HT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyM0Q7WUkgU1lMTEFCTEUgTUdFWDtMbzswO0w7Ozs7O047Ozs7OworQTIzRTtZSSBTWUxMQUJMRSBNR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyM0Y7WUkgU1lMTEFCTEUgTUdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI0MDtZSSBTWUxMQUJMRSBNR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQxO1lJIFNZTExBQkxFIE1HVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDI7WUkgU1lMTEFCTEUgTUdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQzO1lJIFNZTExBQkxFIE1HVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNDQ7WUkgU1lMTEFCTEUgTUdVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDU7WUkgU1lMTEFCTEUgTUdVUjtMbzswO0w7Ozs7O047Ozs7OworQTI0NjtZSSBTWUxMQUJMRSBIWElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ3O1lJIFNZTExBQkxFIEhYSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDg7WUkgU1lMTEFCTEUgSFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ5O1lJIFNZTExBQkxFIEhYSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNEE7WUkgU1lMTEFCTEUgSFhJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNEI7WUkgU1lMTEFCTEUgSFhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNEM7WUkgU1lMTEFCTEUgSFhJRTtMbzswO0w7Ozs7O047Ozs7OworQTI0RDtZSSBTWUxMQUJMRSBIWElFUDtMbzswO0w7Ozs7O047Ozs7OworQTI0RTtZSSBTWUxMQUJMRSBIWEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRGO1lJIFNZTExBQkxFIEhYQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNTA7WUkgU1lMTEFCTEUgSFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUxO1lJIFNZTExBQkxFIEhYQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNTI7WUkgU1lMTEFCTEUgSFhVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNTM7WUkgU1lMTEFCTEUgSFhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNTQ7WUkgU1lMTEFCTEUgSFhVTztMbzswO0w7Ozs7O047Ozs7OworQTI1NTtZSSBTWUxMQUJMRSBIWFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI1NjtZSSBTWUxMQUJMRSBIWE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU3O1lJIFNZTExBQkxFIEhYT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNTg7WUkgU1lMTEFCTEUgSFhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU5O1lJIFNZTExBQkxFIEhYT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNUE7WUkgU1lMTEFCTEUgSFhFWDtMbzswO0w7Ozs7O047Ozs7OworQTI1QjtZSSBTWUxMQUJMRSBIWEU7TG87MDtMOzs7OztOOzs7OzsKK0EyNUM7WUkgU1lMTEFCTEUgSFhFUDtMbzswO0w7Ozs7O047Ozs7OworQTI1RDtZSSBTWUxMQUJMRSBOR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTI1RTtZSSBTWUxMQUJMRSBOR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVGO1lJIFNZTExBQkxFIE5HSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYwO1lJIFNZTExBQkxFIE5HQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNjE7WUkgU1lMTEFCTEUgTkdBWDtMbzswO0w7Ozs7O047Ozs7OworQTI2MjtZSSBTWUxMQUJMRSBOR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyNjM7WUkgU1lMTEFCTEUgTkdBUDtMbzswO0w7Ozs7O047Ozs7OworQTI2NDtZSSBTWUxMQUJMRSBOR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTI2NTtZSSBTWUxMQUJMRSBOR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTI2NjtZSSBTWUxMQUJMRSBOR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY3O1lJIFNZTExBQkxFIE5HT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNjg7WUkgU1lMTEFCTEUgTkdPWDtMbzswO0w7Ozs7O047Ozs7OworQTI2OTtZSSBTWUxMQUJMRSBOR087TG87MDtMOzs7OztOOzs7OzsKK0EyNkE7WUkgU1lMTEFCTEUgTkdPUDtMbzswO0w7Ozs7O047Ozs7OworQTI2QjtZSSBTWUxMQUJMRSBOR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZDO1lJIFNZTExBQkxFIE5HRTtMbzswO0w7Ozs7O047Ozs7OworQTI2RDtZSSBTWUxMQUJMRSBOR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZFO1lJIFNZTExBQkxFIEhJVDtMbzswO0w7Ozs7O047Ozs7OworQTI2RjtZSSBTWUxMQUJMRSBISUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcwO1lJIFNZTExBQkxFIEhJRTtMbzswO0w7Ozs7O047Ozs7OworQTI3MTtZSSBTWUxMQUJMRSBIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNzI7WUkgU1lMTEFCTEUgSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjczO1lJIFNZTExBQkxFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc0O1lJIFNZTExBQkxFIEhBUDtMbzswO0w7Ozs7O047Ozs7OworQTI3NTtZSSBTWUxMQUJMRSBIVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc2O1lJIFNZTExBQkxFIEhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNzc7WUkgU1lMTEFCTEUgSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc4O1lJIFNZTExBQkxFIEhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNzk7WUkgU1lMTEFCTEUgSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdBO1lJIFNZTExBQkxFIEhPWDtMbzswO0w7Ozs7O047Ozs7OworQTI3QjtZSSBTWUxMQUJMRSBITztMbzswO0w7Ozs7O047Ozs7OworQTI3QztZSSBTWUxMQUJMRSBIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyN0Q7WUkgU1lMTEFCTEUgSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdFO1lJIFNZTExBQkxFIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdGO1lJIFNZTExBQkxFIEhFUDtMbzswO0w7Ozs7O047Ozs7OworQTI4MDtZSSBTWUxMQUJMRSBXQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyODE7WUkgU1lMTEFCTEUgV0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgyO1lJIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgzO1lJIFNZTExBQkxFIFdBUDtMbzswO0w7Ozs7O047Ozs7OworQTI4NDtZSSBTWUxMQUJMRSBXVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg1O1lJIFNZTExBQkxFIFdVTztMbzswO0w7Ozs7O047Ozs7OworQTI4NjtZSSBTWUxMQUJMRSBXVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg3O1lJIFNZTExBQkxFIFdPWDtMbzswO0w7Ozs7O047Ozs7OworQTI4ODtZSSBTWUxMQUJMRSBXTztMbzswO0w7Ozs7O047Ozs7OworQTI4OTtZSSBTWUxMQUJMRSBXT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOEE7WUkgU1lMTEFCTEUgV0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhCO1lJIFNZTExBQkxFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhDO1lJIFNZTExBQkxFIFdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI4RDtZSSBTWUxMQUJMRSBaSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyOEU7WUkgU1lMTEFCTEUgWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhGO1lJIFNZTExBQkxFIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkwO1lJIFNZTExBQkxFIFpJUDtMbzswO0w7Ozs7O047Ozs7OworQTI5MTtZSSBTWUxMQUJMRSBaSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkyO1lJIFNZTExBQkxFIFpJRTtMbzswO0w7Ozs7O047Ozs7OworQTI5MztZSSBTWUxMQUJMRSBaSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk0O1lJIFNZTExBQkxFIFpBVDtMbzswO0w7Ozs7O047Ozs7OworQTI5NTtZSSBTWUxMQUJMRSBaQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOTY7WUkgU1lMTEFCTEUgWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyOTc7WUkgU1lMTEFCTEUgWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk4O1lJIFNZTExBQkxFIFpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyOTk7WUkgU1lMTEFCTEUgWlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlBO1lJIFNZTExBQkxFIFpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOUI7WUkgU1lMTEFCTEUgWk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlDO1lJIFNZTExBQkxFIFpPWDtMbzswO0w7Ozs7O047Ozs7OworQTI5RDtZSSBTWUxMQUJMRSBaTztMbzswO0w7Ozs7O047Ozs7OworQTI5RTtZSSBTWUxMQUJMRSBaT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOUY7WUkgU1lMTEFCTEUgWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEwO1lJIFNZTExBQkxFIFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkExO1lJIFNZTExBQkxFIFpFUDtMbzswO0w7Ozs7O047Ozs7OworQTJBMjtZSSBTWUxMQUJMRSBaVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQTM7WUkgU1lMTEFCTEUgWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE0O1lJIFNZTExBQkxFIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE1O1lJIFNZTExBQkxFIFpVUDtMbzswO0w7Ozs7O047Ozs7OworQTJBNjtZSSBTWUxMQUJMRSBaVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE3O1lJIFNZTExBQkxFIFpVUjtMbzswO0w7Ozs7O047Ozs7OworQTJBODtZSSBTWUxMQUJMRSBaWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQTk7WUkgU1lMTEFCTEUgWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFBO1lJIFNZTExBQkxFIFpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFCO1lJIFNZTExBQkxFIFpZUDtMbzswO0w7Ozs7O047Ozs7OworQTJBQztZSSBTWUxMQUJMRSBaWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFEO1lJIFNZTExBQkxFIFpZUjtMbzswO0w7Ozs7O047Ozs7OworQTJBRTtZSSBTWUxMQUJMRSBDSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQUY7WUkgU1lMTEFCTEUgQ0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIwO1lJIFNZTExBQkxFIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIxO1lJIFNZTExBQkxFIENJUDtMbzswO0w7Ozs7O047Ozs7OworQTJCMjtZSSBTWUxMQUJMRSBDSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIzO1lJIFNZTExBQkxFIENJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjQ7WUkgU1lMTEFCTEUgQ0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI1O1lJIFNZTExBQkxFIENJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQjY7WUkgU1lMTEFCTEUgQ0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI3O1lJIFNZTExBQkxFIENBWDtMbzswO0w7Ozs7O047Ozs7OworQTJCODtZSSBTWUxMQUJMRSBDQTtMbzswO0w7Ozs7O047Ozs7OworQTJCOTtZSSBTWUxMQUJMRSBDQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQkE7WUkgU1lMTEFCTEUgQ1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTJCQjtZSSBTWUxMQUJMRSBDVU87TG87MDtMOzs7OztOOzs7OzsKK0EyQkM7WUkgU1lMTEFCTEUgQ1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTJCRDtZSSBTWUxMQUJMRSBDT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyQkU7WUkgU1lMTEFCTEUgQ09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJGO1lJIFNZTExBQkxFIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMwO1lJIFNZTExBQkxFIENPUDtMbzswO0w7Ozs7O047Ozs7OworQTJDMTtZSSBTWUxMQUJMRSBDRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzI7WUkgU1lMTEFCTEUgQ0U7TG87MDtMOzs7OztOOzs7OzsKK0EyQzM7WUkgU1lMTEFCTEUgQ0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM0O1lJIFNZTExBQkxFIENVVDtMbzswO0w7Ozs7O047Ozs7OworQTJDNTtZSSBTWUxMQUJMRSBDVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzY7WUkgU1lMTEFCTEUgQ1U7TG87MDtMOzs7OztOOzs7OzsKK0EyQzc7WUkgU1lMTEFCTEUgQ1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM4O1lJIFNZTExBQkxFIENVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzk7WUkgU1lMTEFCTEUgQ1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNBO1lJIFNZTExBQkxFIENZVDtMbzswO0w7Ozs7O047Ozs7OworQTJDQjtZSSBTWUxMQUJMRSBDWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0M7WUkgU1lMTEFCTEUgQ1k7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0Q7WUkgU1lMTEFCTEUgQ1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNFO1lJIFNZTExBQkxFIENZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0Y7WUkgU1lMTEFCTEUgQ1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQwO1lJIFNZTExBQkxFIFpaSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDE7WUkgU1lMTEFCTEUgWlpJWDtMbzswO0w7Ozs7O047Ozs7OworQTJEMjtZSSBTWUxMQUJMRSBaWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyRDM7WUkgU1lMTEFCTEUgWlpJUDtMbzswO0w7Ozs7O047Ozs7OworQTJENDtZSSBTWUxMQUJMRSBaWklFVDtMbzswO0w7Ozs7O047Ozs7OworQTJENTtZSSBTWUxMQUJMRSBaWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTJENjtZSSBTWUxMQUJMRSBaWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ3O1lJIFNZTExBQkxFIFpaSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ4O1lJIFNZTExBQkxFIFpaQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDk7WUkgU1lMTEFCTEUgWlpBWDtMbzswO0w7Ozs7O047Ozs7OworQTJEQTtZSSBTWUxMQUJMRSBaWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyREI7WUkgU1lMTEFCTEUgWlpBUDtMbzswO0w7Ozs7O047Ozs7OworQTJEQztZSSBTWUxMQUJMRSBaWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkREO1lJIFNZTExBQkxFIFpaTztMbzswO0w7Ozs7O047Ozs7OworQTJERTtZSSBTWUxMQUJMRSBaWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRGO1lJIFNZTExBQkxFIFpaRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTA7WUkgU1lMTEFCTEUgWlpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUxO1lJIFNZTExBQkxFIFpaRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRTI7WUkgU1lMTEFCTEUgWlpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJFMztZSSBTWUxMQUJMRSBaWlU7TG87MDtMOzs7OztOOzs7OzsKK0EyRTQ7WUkgU1lMTEFCTEUgWlpVUDtMbzswO0w7Ozs7O047Ozs7OworQTJFNTtZSSBTWUxMQUJMRSBaWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTJFNjtZSSBTWUxMQUJMRSBaWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU3O1lJIFNZTExBQkxFIFpaWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRTg7WUkgU1lMTEFCTEUgWlpZWDtMbzswO0w7Ozs7O047Ozs7OworQTJFOTtZSSBTWUxMQUJMRSBaWlk7TG87MDtMOzs7OztOOzs7OzsKK0EyRUE7WUkgU1lMTEFCTEUgWlpZUDtMbzswO0w7Ozs7O047Ozs7OworQTJFQjtZSSBTWUxMQUJMRSBaWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTJFQztZSSBTWUxMQUJMRSBaWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVEO1lJIFNZTExBQkxFIE5aSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRUU7WUkgU1lMTEFCTEUgTlpJWDtMbzswO0w7Ozs7O047Ozs7OworQTJFRjtZSSBTWUxMQUJMRSBOWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyRjA7WUkgU1lMTEFCTEUgTlpJUDtMbzswO0w7Ozs7O047Ozs7OworQTJGMTtZSSBTWUxMQUJMRSBOWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTJGMjtZSSBTWUxMQUJMRSBOWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYzO1lJIFNZTExBQkxFIE5aSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY0O1lJIFNZTExBQkxFIE5aQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRjU7WUkgU1lMTEFCTEUgTlpBWDtMbzswO0w7Ozs7O047Ozs7OworQTJGNjtZSSBTWUxMQUJMRSBOWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyRjc7WUkgU1lMTEFCTEUgTlpBUDtMbzswO0w7Ozs7O047Ozs7OworQTJGODtZSSBTWUxMQUJMRSBOWlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTJGOTtZSSBTWUxMQUJMRSBOWlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZBO1lJIFNZTExBQkxFIE5aT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyRkI7WUkgU1lMTEFCTEUgTlpPUDtMbzswO0w7Ozs7O047Ozs7OworQTJGQztZSSBTWUxMQUJMRSBOWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZEO1lJIFNZTExBQkxFIE5aRTtMbzswO0w7Ozs7O047Ozs7OworQTJGRTtZSSBTWUxMQUJMRSBOWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZGO1lJIFNZTExBQkxFIE5aVTtMbzswO0w7Ozs7O047Ozs7OworQTMwMDtZSSBTWUxMQUJMRSBOWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAxO1lJIFNZTExBQkxFIE5aVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAyO1lJIFNZTExBQkxFIE5aVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMDM7WUkgU1lMTEFCTEUgTlpZVDtMbzswO0w7Ozs7O047Ozs7OworQTMwNDtZSSBTWUxMQUJMRSBOWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA1O1lJIFNZTExBQkxFIE5aWTtMbzswO0w7Ozs7O047Ozs7OworQTMwNjtZSSBTWUxMQUJMRSBOWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA3O1lJIFNZTExBQkxFIE5aWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA4O1lJIFNZTExBQkxFIE5aWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMDk7WUkgU1lMTEFCTEUgU0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBBO1lJIFNZTExBQkxFIFNJWDtMbzswO0w7Ozs7O047Ozs7OworQTMwQjtZSSBTWUxMQUJMRSBTSTtMbzswO0w7Ozs7O047Ozs7OworQTMwQztZSSBTWUxMQUJMRSBTSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMEQ7WUkgU1lMTEFCTEUgU0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTMwRTtZSSBTWUxMQUJMRSBTSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzMEY7WUkgU1lMTEFCTEUgU0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTMxMDtZSSBTWUxMQUJMRSBTQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMTE7WUkgU1lMTEFCTEUgU0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEyO1lJIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEzO1lJIFNZTExBQkxFIFNBUDtMbzswO0w7Ozs7O047Ozs7OworQTMxNDtZSSBTWUxMQUJMRSBTVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE1O1lJIFNZTExBQkxFIFNVTztMbzswO0w7Ozs7O047Ozs7OworQTMxNjtZSSBTWUxMQUJMRSBTVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE3O1lJIFNZTExBQkxFIFNPVDtMbzswO0w7Ozs7O047Ozs7OworQTMxODtZSSBTWUxMQUJMRSBTT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMTk7WUkgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKK0EzMUE7WUkgU1lMTEFCTEUgU09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFCO1lJIFNZTExBQkxFIFNFWDtMbzswO0w7Ozs7O047Ozs7OworQTMxQztZSSBTWUxMQUJMRSBTRTtMbzswO0w7Ozs7O047Ozs7OworQTMxRDtZSSBTWUxMQUJMRSBTRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMUU7WUkgU1lMTEFCTEUgU1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFGO1lJIFNZTExBQkxFIFNVWDtMbzswO0w7Ozs7O047Ozs7OworQTMyMDtZSSBTWUxMQUJMRSBTVTtMbzswO0w7Ozs7O047Ozs7OworQTMyMTtZSSBTWUxMQUJMRSBTVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMjI7WUkgU1lMTEFCTEUgU1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTMyMztZSSBTWUxMQUJMRSBTVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMjQ7WUkgU1lMTEFCTEUgU1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI1O1lJIFNZTExBQkxFIFNZWDtMbzswO0w7Ozs7O047Ozs7OworQTMyNjtZSSBTWUxMQUJMRSBTWTtMbzswO0w7Ozs7O047Ozs7OworQTMyNztZSSBTWUxMQUJMRSBTWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMjg7WUkgU1lMTEFCTEUgU1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTMyOTtZSSBTWUxMQUJMRSBTWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMkE7WUkgU1lMTEFCTEUgU1NJVDtMbzswO0w7Ozs7O047Ozs7OworQTMyQjtZSSBTWUxMQUJMRSBTU0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJDO1lJIFNZTExBQkxFIFNTSTtMbzswO0w7Ozs7O047Ozs7OworQTMyRDtZSSBTWUxMQUJMRSBTU0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJFO1lJIFNZTExBQkxFIFNTSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJGO1lJIFNZTExBQkxFIFNTSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzMzA7WUkgU1lMTEFCTEUgU1NJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMzE7WUkgU1lMTEFCTEUgU1NBVDtMbzswO0w7Ozs7O047Ozs7OworQTMzMjtZSSBTWUxMQUJMRSBTU0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMzO1lJIFNZTExBQkxFIFNTQTtMbzswO0w7Ozs7O047Ozs7OworQTMzNDtZSSBTWUxMQUJMRSBTU0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM1O1lJIFNZTExBQkxFIFNTT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzMzY7WUkgU1lMTEFCTEUgU1NPWDtMbzswO0w7Ozs7O047Ozs7OworQTMzNztZSSBTWUxMQUJMRSBTU087TG87MDtMOzs7OztOOzs7OzsKK0EzMzg7WUkgU1lMTEFCTEUgU1NPUDtMbzswO0w7Ozs7O047Ozs7OworQTMzOTtZSSBTWUxMQUJMRSBTU0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNBO1lJIFNZTExBQkxFIFNTRTtMbzswO0w7Ozs7O047Ozs7OworQTMzQjtZSSBTWUxMQUJMRSBTU0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNDO1lJIFNZTExBQkxFIFNTVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzM0Q7WUkgU1lMTEFCTEUgU1NVWDtMbzswO0w7Ozs7O047Ozs7OworQTMzRTtZSSBTWUxMQUJMRSBTU1U7TG87MDtMOzs7OztOOzs7OzsKK0EzM0Y7WUkgU1lMTEFCTEUgU1NVUDtMbzswO0w7Ozs7O047Ozs7OworQTM0MDtZSSBTWUxMQUJMRSBTU1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQxO1lJIFNZTExBQkxFIFNTWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDI7WUkgU1lMTEFCTEUgU1NZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQzO1lJIFNZTExBQkxFIFNTWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNDQ7WUkgU1lMTEFCTEUgU1NZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDU7WUkgU1lMTEFCTEUgU1NZUjtMbzswO0w7Ozs7O047Ozs7OworQTM0NjtZSSBTWUxMQUJMRSBaSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ3O1lJIFNZTExBQkxFIFpIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDg7WUkgU1lMTEFCTEUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ5O1lJIFNZTExBQkxFIFpIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNEE7WUkgU1lMTEFCTEUgWkhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNEI7WUkgU1lMTEFCTEUgWkhVTztMbzswO0w7Ozs7O047Ozs7OworQTM0QztZSSBTWUxMQUJMRSBaSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTM0RDtZSSBTWUxMQUJMRSBaSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRFO1lJIFNZTExBQkxFIFpIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNEY7WUkgU1lMTEFCTEUgWkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUwO1lJIFNZTExBQkxFIFpIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNTE7WUkgU1lMTEFCTEUgWkhFVDtMbzswO0w7Ozs7O047Ozs7OworQTM1MjtZSSBTWUxMQUJMRSBaSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUzO1lJIFNZTExBQkxFIFpIRTtMbzswO0w7Ozs7O047Ozs7OworQTM1NDtZSSBTWUxMQUJMRSBaSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU1O1lJIFNZTExBQkxFIFpIVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNTY7WUkgU1lMTEFCTEUgWkhVWDtMbzswO0w7Ozs7O047Ozs7OworQTM1NztZSSBTWUxMQUJMRSBaSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzNTg7WUkgU1lMTEFCTEUgWkhVUDtMbzswO0w7Ozs7O047Ozs7OworQTM1OTtZSSBTWUxMQUJMRSBaSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM1QTtZSSBTWUxMQUJMRSBaSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVCO1lJIFNZTExBQkxFIFpIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNUM7WUkgU1lMTEFCTEUgWkhZWDtMbzswO0w7Ozs7O047Ozs7OworQTM1RDtZSSBTWUxMQUJMRSBaSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzNUU7WUkgU1lMTEFCTEUgWkhZUDtMbzswO0w7Ozs7O047Ozs7OworQTM1RjtZSSBTWUxMQUJMRSBaSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTM2MDtZSSBTWUxMQUJMRSBaSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYxO1lJIFNZTExBQkxFIENIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNjI7WUkgU1lMTEFCTEUgQ0hBWDtMbzswO0w7Ozs7O047Ozs7OworQTM2MztZSSBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzNjQ7WUkgU1lMTEFCTEUgQ0hBUDtMbzswO0w7Ozs7O047Ozs7OworQTM2NTtZSSBTWUxMQUJMRSBDSFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTM2NjtZSSBTWUxMQUJMRSBDSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM2NztZSSBTWUxMQUJMRSBDSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY4O1lJIFNZTExBQkxFIENIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY5O1lJIFNZTExBQkxFIENIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNkE7WUkgU1lMTEFCTEUgQ0hPWDtMbzswO0w7Ozs7O047Ozs7OworQTM2QjtZSSBTWUxMQUJMRSBDSE87TG87MDtMOzs7OztOOzs7OzsKK0EzNkM7WUkgU1lMTEFCTEUgQ0hPUDtMbzswO0w7Ozs7O047Ozs7OworQTM2RDtZSSBTWUxMQUJMRSBDSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZFO1lJIFNZTExBQkxFIENIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNkY7WUkgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcwO1lJIFNZTExBQkxFIENIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNzE7WUkgU1lMTEFCTEUgQ0hVWDtMbzswO0w7Ozs7O047Ozs7OworQTM3MjtZSSBTWUxMQUJMRSBDSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzNzM7WUkgU1lMTEFCTEUgQ0hVUDtMbzswO0w7Ozs7O047Ozs7OworQTM3NDtZSSBTWUxMQUJMRSBDSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM3NTtZSSBTWUxMQUJMRSBDSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc2O1lJIFNZTExBQkxFIENIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNzc7WUkgU1lMTEFCTEUgQ0hZWDtMbzswO0w7Ozs7O047Ozs7OworQTM3ODtZSSBTWUxMQUJMRSBDSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzNzk7WUkgU1lMTEFCTEUgQ0hZUDtMbzswO0w7Ozs7O047Ozs7OworQTM3QTtZSSBTWUxMQUJMRSBDSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTM3QjtZSSBTWUxMQUJMRSBDSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdDO1lJIFNZTExBQkxFIFJSQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzN0Q7WUkgU1lMTEFCTEUgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdFO1lJIFNZTExBQkxFIFJSVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdGO1lJIFNZTExBQkxFIFJSVU87TG87MDtMOzs7OztOOzs7OzsKK0EzODA7WUkgU1lMTEFCTEUgUlJPVDtMbzswO0w7Ozs7O047Ozs7OworQTM4MTtZSSBTWUxMQUJMRSBSUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgyO1lJIFNZTExBQkxFIFJSTztMbzswO0w7Ozs7O047Ozs7OworQTM4MztZSSBTWUxMQUJMRSBSUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg0O1lJIFNZTExBQkxFIFJSRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzODU7WUkgU1lMTEFCTEUgUlJFWDtMbzswO0w7Ozs7O047Ozs7OworQTM4NjtZSSBTWUxMQUJMRSBSUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzODc7WUkgU1lMTEFCTEUgUlJFUDtMbzswO0w7Ozs7O047Ozs7OworQTM4ODtZSSBTWUxMQUJMRSBSUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg5O1lJIFNZTExBQkxFIFJSVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOEE7WUkgU1lMTEFCTEUgUlJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhCO1lJIFNZTExBQkxFIFJSVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOEM7WUkgU1lMTEFCTEUgUlJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzOEQ7WUkgU1lMTEFCTEUgUlJVUjtMbzswO0w7Ozs7O047Ozs7OworQTM4RTtZSSBTWUxMQUJMRSBSUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhGO1lJIFNZTExBQkxFIFJSWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTA7WUkgU1lMTEFCTEUgUlJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkxO1lJIFNZTExBQkxFIFJSWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOTI7WUkgU1lMTEFCTEUgUlJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTM7WUkgU1lMTEFCTEUgUlJZUjtMbzswO0w7Ozs7O047Ozs7OworQTM5NDtZSSBTWUxMQUJMRSBOUkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk1O1lJIFNZTExBQkxFIE5SQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTY7WUkgU1lMTEFCTEUgTlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk3O1lJIFNZTExBQkxFIE5SQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOTg7WUkgU1lMTEFCTEUgTlJPWDtMbzswO0w7Ozs7O047Ozs7OworQTM5OTtZSSBTWUxMQUJMRSBOUk87TG87MDtMOzs7OztOOzs7OzsKK0EzOUE7WUkgU1lMTEFCTEUgTlJPUDtMbzswO0w7Ozs7O047Ozs7OworQTM5QjtZSSBTWUxMQUJMRSBOUkVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlDO1lJIFNZTExBQkxFIE5SRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOUQ7WUkgU1lMTEFCTEUgTlJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlFO1lJIFNZTExBQkxFIE5SRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOUY7WUkgU1lMTEFCTEUgTlJVVDtMbzswO0w7Ozs7O047Ozs7OworQTNBMDtZSSBTWUxMQUJMRSBOUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ExO1lJIFNZTExBQkxFIE5SVTtMbzswO0w7Ozs7O047Ozs7OworQTNBMjtZSSBTWUxMQUJMRSBOUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EzO1lJIFNZTExBQkxFIE5SVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E0O1lJIFNZTExBQkxFIE5SVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQTU7WUkgU1lMTEFCTEUgTlJZVDtMbzswO0w7Ozs7O047Ozs7OworQTNBNjtZSSBTWUxMQUJMRSBOUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E3O1lJIFNZTExBQkxFIE5SWTtMbzswO0w7Ozs7O047Ozs7OworQTNBODtZSSBTWUxMQUJMRSBOUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E5O1lJIFNZTExBQkxFIE5SWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FBO1lJIFNZTExBQkxFIE5SWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQUI7WUkgU1lMTEFCTEUgU0hBVDtMbzswO0w7Ozs7O047Ozs7OworQTNBQztZSSBTWUxMQUJMRSBTSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FEO1lJIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworQTNBRTtZSSBTWUxMQUJMRSBTSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FGO1lJIFNZTExBQkxFIFNIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IwO1lJIFNZTExBQkxFIFNIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzQjE7WUkgU1lMTEFCTEUgU0hVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQjI7WUkgU1lMTEFCTEUgU0hPVDtMbzswO0w7Ozs7O047Ozs7OworQTNCMztZSSBTWUxMQUJMRSBTSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I0O1lJIFNZTExBQkxFIFNITztMbzswO0w7Ozs7O047Ozs7OworQTNCNTtZSSBTWUxMQUJMRSBTSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I2O1lJIFNZTExBQkxFIFNIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQjc7WUkgU1lMTEFCTEUgU0hFWDtMbzswO0w7Ozs7O047Ozs7OworQTNCODtZSSBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzQjk7WUkgU1lMTEFCTEUgU0hFUDtMbzswO0w7Ozs7O047Ozs7OworQTNCQTtZSSBTWUxMQUJMRSBTSFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JCO1lJIFNZTExBQkxFIFNIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQkM7WUkgU1lMTEFCTEUgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JEO1lJIFNZTExBQkxFIFNIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQkU7WUkgU1lMTEFCTEUgU0hVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQkY7WUkgU1lMTEFCTEUgU0hVUjtMbzswO0w7Ozs7O047Ozs7OworQTNDMDtZSSBTWUxMQUJMRSBTSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MxO1lJIFNZTExBQkxFIFNIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzI7WUkgU1lMTEFCTEUgU0hZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MzO1lJIFNZTExBQkxFIFNIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQzQ7WUkgU1lMTEFCTEUgU0hZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzU7WUkgU1lMTEFCTEUgU0hZUjtMbzswO0w7Ozs7O047Ozs7OworQTNDNjtZSSBTWUxMQUJMRSBSQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQzc7WUkgU1lMTEFCTEUgUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M4O1lJIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M5O1lJIFNZTExBQkxFIFJBUDtMbzswO0w7Ozs7O047Ozs7OworQTNDQTtZSSBTWUxMQUJMRSBSVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NCO1lJIFNZTExBQkxFIFJVTztMbzswO0w7Ozs7O047Ozs7OworQTNDQztZSSBTWUxMQUJMRSBSVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NEO1lJIFNZTExBQkxFIFJPVDtMbzswO0w7Ozs7O047Ozs7OworQTNDRTtZSSBTWUxMQUJMRSBST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0Y7WUkgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKK0EzRDA7WUkgU1lMTEFCTEUgUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QxO1lJIFNZTExBQkxFIFJFWDtMbzswO0w7Ozs7O047Ozs7OworQTNEMjtZSSBTWUxMQUJMRSBSRTtMbzswO0w7Ozs7O047Ozs7OworQTNEMztZSSBTWUxMQUJMRSBSRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRDQ7WUkgU1lMTEFCTEUgUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q1O1lJIFNZTExBQkxFIFJVWDtMbzswO0w7Ozs7O047Ozs7OworQTNENjtZSSBTWUxMQUJMRSBSVTtMbzswO0w7Ozs7O047Ozs7OworQTNENztZSSBTWUxMQUJMRSBSVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRDg7WUkgU1lMTEFCTEUgUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNEOTtZSSBTWUxMQUJMRSBSVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzREE7WUkgU1lMTEFCTEUgUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RCO1lJIFNZTExBQkxFIFJZWDtMbzswO0w7Ozs7O047Ozs7OworQTNEQztZSSBTWUxMQUJMRSBSWTtMbzswO0w7Ozs7O047Ozs7OworQTNERDtZSSBTWUxMQUJMRSBSWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzREU7WUkgU1lMTEFCTEUgUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNERjtZSSBTWUxMQUJMRSBSWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRTA7WUkgU1lMTEFCTEUgSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UxO1lJIFNZTExBQkxFIEpJWDtMbzswO0w7Ozs7O047Ozs7OworQTNFMjtZSSBTWUxMQUJMRSBKSTtMbzswO0w7Ozs7O047Ozs7OworQTNFMztZSSBTWUxMQUJMRSBKSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRTQ7WUkgU1lMTEFCTEUgSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTNFNTtZSSBTWUxMQUJMRSBKSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U2O1lJIFNZTExBQkxFIEpJRTtMbzswO0w7Ozs7O047Ozs7OworQTNFNztZSSBTWUxMQUJMRSBKSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U4O1lJIFNZTExBQkxFIEpVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzRTk7WUkgU1lMTEFCTEUgSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNFQTtZSSBTWUxMQUJMRSBKVU87TG87MDtMOzs7OztOOzs7OzsKK0EzRUI7WUkgU1lMTEFCTEUgSlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNFQztZSSBTWUxMQUJMRSBKT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzRUQ7WUkgU1lMTEFCTEUgSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VFO1lJIFNZTExBQkxFIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VGO1lJIFNZTExBQkxFIEpPUDtMbzswO0w7Ozs7O047Ozs7OworQTNGMDtZSSBTWUxMQUJMRSBKVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRjE7WUkgU1lMTEFCTEUgSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YyO1lJIFNZTExBQkxFIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YzO1lJIFNZTExBQkxFIEpVUDtMbzswO0w7Ozs7O047Ozs7OworQTNGNDtZSSBTWUxMQUJMRSBKVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y1O1lJIFNZTExBQkxFIEpVUjtMbzswO0w7Ozs7O047Ozs7OworQTNGNjtZSSBTWUxMQUJMRSBKWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRjc7WUkgU1lMTEFCTEUgSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y4O1lJIFNZTExBQkxFIEpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y5O1lJIFNZTExBQkxFIEpZUDtMbzswO0w7Ozs7O047Ozs7OworQTNGQTtZSSBTWUxMQUJMRSBKWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZCO1lJIFNZTExBQkxFIEpZUjtMbzswO0w7Ozs7O047Ozs7OworQTNGQztZSSBTWUxMQUJMRSBRSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRkQ7WUkgU1lMTEFCTEUgUUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZFO1lJIFNZTExBQkxFIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZGO1lJIFNZTExBQkxFIFFJUDtMbzswO0w7Ozs7O047Ozs7OworQTQwMDtZSSBTWUxMQUJMRSBRSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAxO1lJIFNZTExBQkxFIFFJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MDI7WUkgU1lMTEFCTEUgUUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAzO1lJIFNZTExBQkxFIFFJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MDQ7WUkgU1lMTEFCTEUgUVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTQwNTtZSSBTWUxMQUJMRSBRVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA2O1lJIFNZTExBQkxFIFFVTztMbzswO0w7Ozs7O047Ozs7OworQTQwNztZSSBTWUxMQUJMRSBRVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA4O1lJIFNZTExBQkxFIFFPVDtMbzswO0w7Ozs7O047Ozs7OworQTQwOTtZSSBTWUxMQUJMRSBRT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MEE7WUkgU1lMTEFCTEUgUU87TG87MDtMOzs7OztOOzs7OzsKK0E0MEI7WUkgU1lMTEFCTEUgUU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBDO1lJIFNZTExBQkxFIFFVVDtMbzswO0w7Ozs7O047Ozs7OworQTQwRDtZSSBTWUxMQUJMRSBRVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MEU7WUkgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKK0E0MEY7WUkgU1lMTEFCTEUgUVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEwO1lJIFNZTExBQkxFIFFVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTE7WUkgU1lMTEFCTEUgUVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEyO1lJIFNZTExBQkxFIFFZVDtMbzswO0w7Ozs7O047Ozs7OworQTQxMztZSSBTWUxMQUJMRSBRWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTQ7WUkgU1lMTEFCTEUgUVk7TG87MDtMOzs7OztOOzs7OzsKK0E0MTU7WUkgU1lMTEFCTEUgUVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE2O1lJIFNZTExBQkxFIFFZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTc7WUkgU1lMTEFCTEUgUVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE4O1lJIFNZTExBQkxFIEpKSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MTk7WUkgU1lMTEFCTEUgSkpJWDtMbzswO0w7Ozs7O047Ozs7OworQTQxQTtZSSBTWUxMQUJMRSBKSkk7TG87MDtMOzs7OztOOzs7OzsKK0E0MUI7WUkgU1lMTEFCTEUgSkpJUDtMbzswO0w7Ozs7O047Ozs7OworQTQxQztZSSBTWUxMQUJMRSBKSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTQxRDtZSSBTWUxMQUJMRSBKSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTQxRTtZSSBTWUxMQUJMRSBKSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFGO1lJIFNZTExBQkxFIEpKSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIwO1lJIFNZTExBQkxFIEpKVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIxO1lJIFNZTExBQkxFIEpKVU87TG87MDtMOzs7OztOOzs7OzsKK0E0MjI7WUkgU1lMTEFCTEUgSkpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MjM7WUkgU1lMTEFCTEUgSkpPVDtMbzswO0w7Ozs7O047Ozs7OworQTQyNDtZSSBTWUxMQUJMRSBKSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI1O1lJIFNZTExBQkxFIEpKTztMbzswO0w7Ozs7O047Ozs7OworQTQyNjtZSSBTWUxMQUJMRSBKSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI3O1lJIFNZTExBQkxFIEpKVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjg7WUkgU1lMTEFCTEUgSkpVWDtMbzswO0w7Ozs7O047Ozs7OworQTQyOTtZSSBTWUxMQUJMRSBKSlU7TG87MDtMOzs7OztOOzs7OzsKK0E0MkE7WUkgU1lMTEFCTEUgSkpVUDtMbzswO0w7Ozs7O047Ozs7OworQTQyQjtZSSBTWUxMQUJMRSBKSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQyQztZSSBTWUxMQUJMRSBKSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJEO1lJIFNZTExBQkxFIEpKWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MkU7WUkgU1lMTEFCTEUgSkpZWDtMbzswO0w7Ozs7O047Ozs7OworQTQyRjtZSSBTWUxMQUJMRSBKSlk7TG87MDtMOzs7OztOOzs7OzsKK0E0MzA7WUkgU1lMTEFCTEUgSkpZUDtMbzswO0w7Ozs7O047Ozs7OworQTQzMTtZSSBTWUxMQUJMRSBOSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMyO1lJIFNZTExBQkxFIE5KSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MzM7WUkgU1lMTEFCTEUgTkpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM0O1lJIFNZTExBQkxFIE5KSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MzU7WUkgU1lMTEFCTEUgTkpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MzY7WUkgU1lMTEFCTEUgTkpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzc7WUkgU1lMTEFCTEUgTkpJRTtMbzswO0w7Ozs7O047Ozs7OworQTQzODtZSSBTWUxMQUJMRSBOSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTQzOTtZSSBTWUxMQUJMRSBOSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQzQTtZSSBTWUxMQUJMRSBOSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNCO1lJIFNZTExBQkxFIE5KT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0M0M7WUkgU1lMTEFCTEUgTkpPWDtMbzswO0w7Ozs7O047Ozs7OworQTQzRDtZSSBTWUxMQUJMRSBOSk87TG87MDtMOzs7OztOOzs7OzsKK0E0M0U7WUkgU1lMTEFCTEUgTkpPUDtMbzswO0w7Ozs7O047Ozs7OworQTQzRjtZSSBTWUxMQUJMRSBOSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQwO1lJIFNZTExBQkxFIE5KVTtMbzswO0w7Ozs7O047Ozs7OworQTQ0MTtZSSBTWUxMQUJMRSBOSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQyO1lJIFNZTExBQkxFIE5KVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQzO1lJIFNZTExBQkxFIE5KVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NDQ7WUkgU1lMTEFCTEUgTkpZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0NTtZSSBTWUxMQUJMRSBOSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ2O1lJIFNZTExBQkxFIE5KWTtMbzswO0w7Ozs7O047Ozs7OworQTQ0NztZSSBTWUxMQUJMRSBOSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ4O1lJIFNZTExBQkxFIE5KWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ5O1lJIFNZTExBQkxFIE5KWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NEE7WUkgU1lMTEFCTEUgTllJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0QjtZSSBTWUxMQUJMRSBOWUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRDO1lJIFNZTExBQkxFIE5ZSTtMbzswO0w7Ozs7O047Ozs7OworQTQ0RDtZSSBTWUxMQUJMRSBOWUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRFO1lJIFNZTExBQkxFIE5ZSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRGO1lJIFNZTExBQkxFIE5ZSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUwO1lJIFNZTExBQkxFIE5ZSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0NTE7WUkgU1lMTEFCTEUgTllJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NTI7WUkgU1lMTEFCTEUgTllVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NTM7WUkgU1lMTEFCTEUgTllVTztMbzswO0w7Ozs7O047Ozs7OworQTQ1NDtZSSBTWUxMQUJMRSBOWVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NTtZSSBTWUxMQUJMRSBOWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU2O1lJIFNZTExBQkxFIE5ZT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NTc7WUkgU1lMTEFCTEUgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU4O1lJIFNZTExBQkxFIE5ZT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NTk7WUkgU1lMTEFCTEUgTllVVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1QTtZSSBTWUxMQUJMRSBOWVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVCO1lJIFNZTExBQkxFIE5ZVTtMbzswO0w7Ozs7O047Ozs7OworQTQ1QztZSSBTWUxMQUJMRSBOWVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVEO1lJIFNZTExBQkxFIFhJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RTtZSSBTWUxMQUJMRSBYSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NUY7WUkgU1lMTEFCTEUgWEk7TG87MDtMOzs7OztOOzs7OzsKK0E0NjA7WUkgU1lMTEFCTEUgWElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYxO1lJIFNZTExBQkxFIFhJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NjI7WUkgU1lMTEFCTEUgWElFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MztZSSBTWUxMQUJMRSBYSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0NjQ7WUkgU1lMTEFCTEUgWElFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2NTtZSSBTWUxMQUJMRSBYVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY2O1lJIFNZTExBQkxFIFhVTztMbzswO0w7Ozs7O047Ozs7OworQTQ2NztZSSBTWUxMQUJMRSBYT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0Njg7WUkgU1lMTEFCTEUgWE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY5O1lJIFNZTExBQkxFIFhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZBO1lJIFNZTExBQkxFIFhPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2QjtZSSBTWUxMQUJMRSBYWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NkM7WUkgU1lMTEFCTEUgWFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZEO1lJIFNZTExBQkxFIFhZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZFO1lJIFNZTExBQkxFIFhZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2RjtZSSBTWUxMQUJMRSBYWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcwO1lJIFNZTExBQkxFIFhZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ3MTtZSSBTWUxMQUJMRSBZSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NzI7WUkgU1lMTEFCTEUgWUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDczO1lJIFNZTExBQkxFIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc0O1lJIFNZTExBQkxFIFlJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NTtZSSBTWUxMQUJMRSBZSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc2O1lJIFNZTExBQkxFIFlJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzc7WUkgU1lMTEFCTEUgWUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc4O1lJIFNZTExBQkxFIFlJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzk7WUkgU1lMTEFCTEUgWVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3QTtZSSBTWUxMQUJMRSBZVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdCO1lJIFNZTExBQkxFIFlVTztMbzswO0w7Ozs7O047Ozs7OworQTQ3QztZSSBTWUxMQUJMRSBZVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdEO1lJIFNZTExBQkxFIFlPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RTtZSSBTWUxMQUJMRSBZT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0N0Y7WUkgU1lMTEFCTEUgWU87TG87MDtMOzs7OztOOzs7OzsKK0E0ODA7WUkgU1lMTEFCTEUgWU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgxO1lJIFNZTExBQkxFIFlVVDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MjtZSSBTWUxMQUJMRSBZVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODM7WUkgU1lMTEFCTEUgWVU7TG87MDtMOzs7OztOOzs7OzsKK0E0ODQ7WUkgU1lMTEFCTEUgWVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg1O1lJIFNZTExBQkxFIFlVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODY7WUkgU1lMTEFCTEUgWVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg3O1lJIFNZTExBQkxFIFlZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ4ODtZSSBTWUxMQUJMRSBZWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODk7WUkgU1lMTEFCTEUgWVk7TG87MDtMOzs7OztOOzs7OzsKK0E0OEE7WUkgU1lMTEFCTEUgWVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhCO1lJIFNZTExBQkxFIFlZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0OEM7WUkgU1lMTEFCTEUgWVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDkwO1lJIFJBRElDQUwgUU9UO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MTtZSSBSQURJQ0FMIExJO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MjtZSSBSQURJQ0FMIEtJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTM7WUkgUkFESUNBTCBOWUlQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NDtZSSBSQURJQ0FMIENZUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTU7WUkgUkFESUNBTCBTU0k7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk2O1lJIFJBRElDQUwgR0dPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTc7WUkgUkFESUNBTCBHRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk4O1lJIFJBRElDQUwgTUk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk5O1lJIFJBRElDQUwgSFhJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUE7WUkgUkFESUNBTCBMWVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlCO1lJIFJBRElDQUwgQkJVVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUM7WUkgUkFESUNBTCBNT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlEO1lJIFJBRElDQUwgWU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlFO1lJIFJBRElDQUwgUFVUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RjtZSSBSQURJQ0FMIEhYVU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEEwO1lJIFJBRElDQUwgVEFUO1NvOzA7T047Ozs7O047Ozs7OworQTRBMTtZSSBSQURJQ0FMIEdBO1NvOzA7T047Ozs7O047Ozs7OworQTRBMjtZSSBSQURJQ0FMIFpVUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTM7WUkgUkFESUNBTCBDWVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE0O1lJIFJBRElDQUwgRERVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QTU7WUkgUkFESUNBTCBCVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE2O1lJIFJBRElDQUwgR0dVTztTbzswO09OOzs7OztOOzs7OzsKK0E0QTc7WUkgUkFESUNBTCBOWU9QO1NvOzA7T047Ozs7O047Ozs7OworQTRBODtZSSBSQURJQ0FMIFRVO1NvOzA7T047Ozs7O047Ozs7OworQTRBOTtZSSBSQURJQ0FMIE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRBQTtZSSBSQURJQ0FMIEpKVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFCO1lJIFJBRElDQUwgWk9UO1NvOzA7T047Ozs7O047Ozs7OworQTRBQztZSSBSQURJQ0FMIFBZVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUQ7WUkgUkFESUNBTCBITU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFFO1lJIFJBRElDQUwgWUlUO1NvOzA7T047Ozs7O047Ozs7OworQTRBRjtZSSBSQURJQ0FMIFZVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QjA7WUkgUkFESUNBTCBTSFk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIxO1lJIFJBRElDQUwgVkVQO1NvOzA7T047Ozs7O047Ozs7OworQTRCMjtZSSBSQURJQ0FMIFpBO1NvOzA7T047Ozs7O047Ozs7OworQTRCMztZSSBSQURJQ0FMIEpPO1NvOzA7T047Ozs7O047Ozs7OworQTRCNDtZSSBSQURJQ0FMIE5aVVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI1O1lJIFJBRElDQUwgSkpZO1NvOzA7T047Ozs7O047Ozs7OworQTRCNjtZSSBSQURJQ0FMIEdPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0Qjc7WUkgUkFESUNBTCBKSklFO1NvOzA7T047Ozs7O047Ozs7OworQTRCODtZSSBSQURJQ0FMIFdPO1NvOzA7T047Ozs7O047Ozs7OworQTRCOTtZSSBSQURJQ0FMIERVO1NvOzA7T047Ozs7O047Ozs7OworQTRCQTtZSSBSQURJQ0FMIFNIVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJCO1lJIFJBRElDQUwgTElFO1NvOzA7T047Ozs7O047Ozs7OworQTRCQztZSSBSQURJQ0FMIENZO1NvOzA7T047Ozs7O047Ozs7OworQTRCRDtZSSBSQURJQ0FMIENVT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJFO1lJIFJBRElDQUwgQ0lQO1NvOzA7T047Ozs7O047Ozs7OworQTRCRjtZSSBSQURJQ0FMIEhYT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMwO1lJIFJBRElDQUwgU0hBVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzE7WUkgUkFESUNBTCBaVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMyO1lJIFJBRElDQUwgU0hPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzM7WUkgUkFESUNBTCBDSEU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM0O1lJIFJBRElDQUwgWlpJRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM1O1lJIFJBRElDQUwgTkJJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0QzY7WUkgUkFESUNBTCBLRTtTbzswO09OOzs7OztOOzs7OzsKK0E3MDA7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZSU4gUElORztTazswO09OOzs7OztOOzs7OzsKK0E3MDE7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFBJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzAyO01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUlOIFNIQU5HO1NrOzA7T047Ozs7O047Ozs7OworQTcwMztNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlBTkcgU0hBTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzA0O01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUlOIFFVO1NrOzA7T047Ozs7O047Ozs7OworQTcwNTtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlBTkcgUVU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzA2O01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUlOIFJVO1NrOzA7T047Ozs7O047Ozs7OworQTcwNztNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlBTkcgUlU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzA4O01PRElGSUVSIExFVFRFUiBFWFRSQS1ISUdIIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MDk7TU9ESUZJRVIgTEVUVEVSIEhJR0ggRE9UVEVEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwQTtNT0RJRklFUiBMRVRURVIgTUlEIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEI7TU9ESUZJRVIgTEVUVEVSIExPVyBET1RURUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzBDO01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgRE9UVEVEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwRDtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBET1RURUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwRTtNT0RJRklFUiBMRVRURVIgSElHSCBET1RURUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwRjtNT0RJRklFUiBMRVRURVIgTUlEIERPVFRFRCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzEwO01PRElGSUVSIExFVFRFUiBMT1cgRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTE7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBET1RURUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxMjtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzEzO01PRElGSUVSIExFVFRFUiBISUdIIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTQ7TU9ESUZJRVIgTEVUVEVSIE1JRCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzE1O01PRElGSUVSIExFVFRFUiBMT1cgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxNjtNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTc7TU9ESUZJRVIgTEVUVEVSIERPVCBWRVJUSUNBTCBCQVI7TG07MDtPTjs7Ozs7Tjs7Ozs7CitBNzE4O01PRElGSUVSIExFVFRFUiBET1QgU0xBU0g7TG07MDtPTjs7Ozs7Tjs7Ozs7CitBNzE5O01PRElGSUVSIExFVFRFUiBET1QgSE9SSVpPTlRBTCBCQVI7TG07MDtPTjs7Ozs7Tjs7Ozs7CitBNzFBO01PRElGSUVSIExFVFRFUiBMT1dFUiBSSUdIVCBDT1JORVIgQU5HTEU7TG07MDtPTjs7Ozs7Tjs7Ozs7CitBNzIwO01PRElGSUVSIExFVFRFUiBTVFJFU1MgQU5EIEhJR0ggVE9ORTtTazswO09OOzs7OztOOzs7OzsKK0E3MjE7TU9ESUZJRVIgTEVUVEVSIFNUUkVTUyBBTkQgTE9XIFRPTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBODAwO1NZTE9USSBOQUdSSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworQTgwMTtTWUxPVEkgTkFHUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKK0E4MDI7U1lMT1RJIE5BR1JJIFNJR04gRFZJU1ZBUkE7TWM7MDtOU007Ozs7O047Ozs7OworQTgwMztTWUxPVEkgTkFHUkkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKK0E4MDQ7U1lMT1RJIE5BR1JJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODA1O1NZTE9USSBOQUdSSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworQTgwNjtTWUxPVEkgTkFHUkkgU0lHTiBIQVNBTlRBO01uOzk7TlNNOzs7OztOOzs7OzsKK0E4MDc7U1lMT1RJIE5BR1JJIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworQTgwODtTWUxPVEkgTkFHUkkgTEVUVEVSIEtITztMbzswO0w7Ozs7O047Ozs7OworQTgwOTtTWUxPVEkgTkFHUkkgTEVUVEVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBBO1NZTE9USSBOQUdSSSBMRVRURVIgR0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBCO1NZTE9USSBOQUdSSSBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKK0E4MEM7U1lMT1RJIE5BR1JJIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworQTgwRDtTWUxPVEkgTkFHUkkgTEVUVEVSIENITztMbzswO0w7Ozs7O047Ozs7OworQTgwRTtTWUxPVEkgTkFHUkkgTEVUVEVSIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBGO1NZTE9USSBOQUdSSSBMRVRURVIgSkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODEwO1NZTE9USSBOQUdSSSBMRVRURVIgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODExO1NZTE9USSBOQUdSSSBMRVRURVIgVFRITztMbzswO0w7Ozs7O047Ozs7OworQTgxMjtTWUxPVEkgTkFHUkkgTEVUVEVSIERETztMbzswO0w7Ozs7O047Ozs7OworQTgxMztTWUxPVEkgTkFHUkkgTEVUVEVSIERESE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTQ7U1lMT1RJIE5BR1JJIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworQTgxNTtTWUxPVEkgTkFHUkkgTEVUVEVSIFRITztMbzswO0w7Ozs7O047Ozs7OworQTgxNjtTWUxPVEkgTkFHUkkgTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE3O1NZTE9USSBOQUdSSSBMRVRURVIgREhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE4O1NZTE9USSBOQUdSSSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKK0E4MTk7U1lMT1RJIE5BR1JJIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworQTgxQTtTWUxPVEkgTkFHUkkgTEVUVEVSIFBITztMbzswO0w7Ozs7O047Ozs7OworQTgxQjtTWUxPVEkgTkFHUkkgTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODFDO1NZTE9USSBOQUdSSSBMRVRURVIgQkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODFEO1NZTE9USSBOQUdSSSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKK0E4MUU7U1lMT1RJIE5BR1JJIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworQTgxRjtTWUxPVEkgTkFHUkkgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODIwO1NZTE9USSBOQUdSSSBMRVRURVIgUlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODIxO1NZTE9USSBOQUdSSSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKK0E4MjI7U1lMT1RJIE5BR1JJIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworQTgyMztTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBBO01jOzA7TDs7Ozs7Tjs7Ozs7CitBODI0O1NZTE9USSBOQUdSSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKK0E4MjU7U1lMT1RJIE5BR1JJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitBODI2O1NZTE9USSBOQUdSSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworQTgyNztTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworQTgyODtTWUxPVEkgTkFHUkkgUE9FVFJZIE1BUkstMTtTbzswO09OOzs7OztOOzs7OzsKK0E4Mjk7U1lMT1RJIE5BR1JJIFBPRVRSWSBNQVJLLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBODJBO1NZTE9USSBOQUdSSSBQT0VUUlkgTUFSSy0zO1NvOzA7T047Ozs7O047Ozs7OworQTgyQjtTWUxPVEkgTkFHUkkgUE9FVFJZIE1BUkstNDtTbzswO09OOzs7OztOOzs7OzsKK0E4NDA7UEhBR1MtUEEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQxO1BIQUdTLVBBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NDI7UEhBR1MtUEEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQzO1BIQUdTLVBBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKK0E4NDQ7UEhBR1MtUEEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ1O1BIQUdTLVBBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NDY7UEhBR1MtUEEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ3O1BIQUdTLVBBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKK0E4NDg7UEhBR1MtUEEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODQ5O1BIQUdTLVBBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NEE7UEhBR1MtUEEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODRCO1BIQUdTLVBBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworQTg0QztQSEFHUy1QQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NEQ7UEhBR1MtUEEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworQTg0RTtQSEFHUy1QQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NEY7UEhBR1MtUEEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODUwO1BIQUdTLVBBIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKK0E4NTE7UEhBR1MtUEEgTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTI7UEhBR1MtUEEgTEVUVEVSIERaQTtMbzswO0w7Ozs7O047Ozs7OworQTg1MztQSEFHUy1QQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKK0E4NTQ7UEhBR1MtUEEgTEVUVEVSIFpIQTtMbzswO0w7Ozs7O047Ozs7OworQTg1NTtQSEFHUy1QQSBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTY7UEhBR1MtUEEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NTc7UEhBR1MtUEEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODU4O1BIQUdTLVBBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworQTg1OTtQSEFHUy1QQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NUE7UEhBR1MtUEEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworQTg1QjtQSEFHUy1QQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKK0E4NUM7UEhBR1MtUEEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODVEO1BIQUdTLVBBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODVFO1BIQUdTLVBBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODVGO1BIQUdTLVBBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODYwO1BIQUdTLVBBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODYxO1BIQUdTLVBBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODYyO1BIQUdTLVBBIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworQTg2MztQSEFHUy1QQSBMRVRURVIgWEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NjQ7UEhBR1MtUEEgTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODY1O1BIQUdTLVBBIExFVFRFUiBHR0E7TG87MDtMOzs7OztOOzs7OzsKK0E4NjY7UEhBR1MtUEEgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODY3O1BIQUdTLVBBIFNVQkpPSU5FRCBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKK0E4Njg7UEhBR1MtUEEgU1VCSk9JTkVEIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworQTg2OTtQSEFHUy1QQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODZBO1BIQUdTLVBBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODZCO1BIQUdTLVBBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKK0E4NkM7UEhBR1MtUEEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworQTg2RDtQSEFHUy1QQSBMRVRURVIgQUxURVJOQVRFIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODZFO1BIQUdTLVBBIExFVFRFUiBWT0lDRUxFU1MgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODZGO1BIQUdTLVBBIExFVFRFUiBWT0lDRUQgSEE7TG87MDtMOzs7OztOOzs7OzsKK0E4NzA7UEhBR1MtUEEgTEVUVEVSIEFTUElSQVRFRCBGQTtMbzswO0w7Ozs7O047Ozs7OworQTg3MTtQSEFHUy1QQSBTVUJKT0lORUQgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODcyO1BIQUdTLVBBIFNVUEVSRklYRUQgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODczO1BIQUdTLVBBIExFVFRFUiBDQU5EUkFCSU5EVTtMbzswO0w7Ozs7O047Ozs7OworQTg3NDtQSEFHUy1QQSBTSU5HTEUgSEVBRCBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworQTg3NTtQSEFHUy1QQSBET1VCTEUgSEVBRCBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworQTg3NjtQSEFHUy1QQSBNQVJLIFNIQUQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CitBODc3O1BIQUdTLVBBIE1BUksgRE9VQkxFIFNIQUQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CitBQzAwOzxIYW5ndWwgU3lsbGFibGUsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworRDdBMzs8SGFuZ3VsIFN5bGxhYmxlLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworRDgwMDs8Tm9uIFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCN0Y7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCODA7PFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCRkY7PFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworREMwMDs8TG93IFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitERkZGOzxMb3cgU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworRTAwMDs8UHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworRjhGRjs8UHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAwO0xvOzA7TDs4QzQ4Ozs7O047Ozs7OworRjkwMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMTtMbzswO0w7NjZGNDs7OztOOzs7OzsKK0Y5MDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDI7TG87MDtMOzhFQ0E7Ozs7Tjs7Ozs7CitGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAzO0xvOzA7TDs4Q0M4Ozs7O047Ozs7OworRjkwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNDtMbzswO0w7NkVEMTs7OztOOzs7OzsKK0Y5MDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDU7TG87MDtMOzRFMzI7Ozs7Tjs7Ozs7CitGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA2O0xvOzA7TDs1M0U1Ozs7O047Ozs7OworRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNztMbzswO0w7OUY5Qzs7OztOOzs7OzsKK0Y5MDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDg7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA5O0xvOzA7TDs1OTUxOzs7O047Ozs7OworRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQTtMbzswO0w7OTFEMTs7OztOOzs7OzsKK0Y5MEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEI7TG87MDtMOzU1ODc7Ozs7Tjs7Ozs7CitGOTBDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBDO0xvOzA7TDs1OTQ4Ozs7O047Ozs7OworRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRDtMbzswO0w7NjFGNjs7OztOOzs7OzsKK0Y5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEU7TG87MDtMOzc2Njk7Ozs7Tjs7Ozs7CitGOTBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBGO0xvOzA7TDs3Rjg1Ozs7O047Ozs7OworRjkxMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMDtMbzswO0w7ODYzRjs7OztOOzs7OzsKK0Y5MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTE7TG87MDtMOzg3QkE7Ozs7Tjs7Ozs7CitGOTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTEyO0xvOzA7TDs4OEY4Ozs7O047Ozs7OworRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMztMbzswO0w7OTA4Rjs7OztOOzs7OzsKK0Y5MTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTQ7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE1O0xvOzA7TDs2RDFCOzs7O047Ozs7OworRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNjtMbzswO0w7NzBEOTs7OztOOzs7OzsKK0Y5MTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTc7TG87MDtMOzczREU7Ozs7Tjs7Ozs7CitGOTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE4O0xvOzA7TDs4NDNEOzs7O047Ozs7OworRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxOTtMbzswO0w7OTE2QTs7OztOOzs7OzsKK0Y5MUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUE7TG87MDtMOzk5RjE7Ozs7Tjs7Ozs7CitGOTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFCO0xvOzA7TDs0RTgyOzs7O047Ozs7OworRjkxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQztMbzswO0w7NTM3NTs7OztOOzs7OzsKK0Y5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUQ7TG87MDtMOzZCMDQ7Ozs7Tjs7Ozs7CitGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFFO0xvOzA7TDs3MjFCOzs7O047Ozs7OworRjkxRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRjtMbzswO0w7ODYyRDs7OztOOzs7OzsKK0Y5MjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjA7TG87MDtMOzlFMUU7Ozs7Tjs7Ozs7CitGOTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIxO0xvOzA7TDs1RDUwOzs7O047Ozs7OworRjkyMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMjtMbzswO0w7NkZFQjs7OztOOzs7OzsKK0Y5MjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjM7TG87MDtMOzg1Q0Q7Ozs7Tjs7Ozs7CitGOTI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI0O0xvOzA7TDs4OTY0Ozs7O047Ozs7OworRjkyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNTtMbzswO0w7NjJDOTs7OztOOzs7OzsKK0Y5MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjY7TG87MDtMOzgxRDg7Ozs7Tjs7Ozs7CitGOTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI3O0xvOzA7TDs4ODFGOzs7O047Ozs7OworRjkyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyODtMbzswO0w7NUVDQTs7OztOOzs7OzsKK0Y5Mjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjk7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CitGOTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJBO0xvOzA7TDs2RDZBOzs7O047Ozs7OworRjkyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQjtMbzswO0w7NzJGQzs7OztOOzs7OzsKK0Y5MkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkM7TG87MDtMOzkwQ0U7Ozs7Tjs7Ozs7CitGOTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJEO0xvOzA7TDs0Rjg2Ozs7O047Ozs7OworRjkyRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRTtMbzswO0w7NTFCNzs7OztOOzs7OzsKK0Y5MkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkY7TG87MDtMOzUyREU7Ozs7Tjs7Ozs7CitGOTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMwO0xvOzA7TDs2NEM0Ozs7O047Ozs7OworRjkzMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMTtMbzswO0w7NkFEMzs7OztOOzs7OzsKK0Y5MzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzI7TG87MDtMOzcyMTA7Ozs7Tjs7Ozs7CitGOTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMzO0xvOzA7TDs3NkU3Ozs7O047Ozs7OworRjkzNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNDtMbzswO0w7ODAwMTs7OztOOzs7OzsKK0Y5MzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzU7TG87MDtMOzg2MDY7Ozs7Tjs7Ozs7CitGOTM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM2O0xvOzA7TDs4NjVDOzs7O047Ozs7OworRjkzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNztMbzswO0w7OERFRjs7OztOOzs7OzsKK0Y5Mzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzg7TG87MDtMOzk3MzI7Ozs7Tjs7Ozs7CitGOTM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM5O0xvOzA7TDs5QjZGOzs7O047Ozs7OworRjkzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQTtMbzswO0w7OURGQTs7OztOOzs7OzsKK0Y5M0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0I7TG87MDtMOzc4OEM7Ozs7Tjs7Ozs7CitGOTNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNDO0xvOzA7TDs3OTdGOzs7O047Ozs7OworRjkzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRDtMbzswO0w7N0RBMDs7OztOOzs7OzsKK0Y5M0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0U7TG87MDtMOzgzQzk7Ozs7Tjs7Ozs7CitGOTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNGO0xvOzA7TDs5MzA0Ozs7O047Ozs7OworRjk0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MDtMbzswO0w7OUU3Rjs7OztOOzs7OzsKK0Y5NDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDE7TG87MDtMOzhBRDY7Ozs7Tjs7Ozs7CitGOTQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQyO0xvOzA7TDs1OERGOzs7O047Ozs7OworRjk0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MztMbzswO0w7NUYwNDs7OztOOzs7OzsKK0Y5NDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDQ7TG87MDtMOzdDNjA7Ozs7Tjs7Ozs7CitGOTQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ1O0xvOzA7TDs4MDdFOzs7O047Ozs7OworRjk0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NjtMbzswO0w7NzI2Mjs7OztOOzs7OzsKK0Y5NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDc7TG87MDtMOzc4Q0E7Ozs7Tjs7Ozs7CitGOTQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ4O0xvOzA7TDs4Q0MyOzs7O047Ozs7OworRjk0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0OTtMbzswO0w7OTZGNzs7OztOOzs7OzsKK0Y5NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEE7TG87MDtMOzU4RDg7Ozs7Tjs7Ozs7CitGOTRCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRCO0xvOzA7TDs1QzYyOzs7O047Ozs7OworRjk0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QztMbzswO0w7NkExMzs7OztOOzs7OzsKK0Y5NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEQ7TG87MDtMOzZEREE7Ozs7Tjs7Ozs7CitGOTRFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRFO0xvOzA7TDs2RjBGOzs7O047Ozs7OworRjk0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RjtMbzswO0w7N0QyRjs7OztOOzs7OzsKK0Y5NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTA7TG87MDtMOzdFMzc7Ozs7Tjs7Ozs7CitGOTUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUxO0xvOzA7TDs5NjRCOzs7O047Ozs7OworRjk1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MjtMbzswO0w7NTJEMjs7OztOOzs7OzsKK0Y5NTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTM7TG87MDtMOzgwOEI7Ozs7Tjs7Ozs7CitGOTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU0O0xvOzA7TDs1MURDOzs7O047Ozs7OworRjk1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NTtMbzswO0w7NTFDQzs7OztOOzs7OzsKK0Y5NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTY7TG87MDtMOzdBMUM7Ozs7Tjs7Ozs7CitGOTU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU3O0xvOzA7TDs3REJFOzs7O047Ozs7OworRjk1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1ODtMbzswO0w7ODNGMTs7OztOOzs7OzsKK0Y5NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTk7TG87MDtMOzk2NzU7Ozs7Tjs7Ozs7CitGOTVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVBO0xvOzA7TDs4QjgwOzs7O047Ozs7OworRjk1QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QjtMbzswO0w7NjJDRjs7OztOOzs7OzsKK0Y5NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUM7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVEO0xvOzA7TDs4QUZFOzs7O047Ozs7OworRjk1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RTtMbzswO0w7NEUzOTs7OztOOzs7OzsKK0Y5NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUY7TG87MDtMOzVCRTc7Ozs7Tjs7Ozs7CitGOTYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYwO0xvOzA7TDs2MDEyOzs7O047Ozs7OworRjk2MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MTtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5NjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjI7TG87MDtMOzc1NzA7Ozs7Tjs7Ozs7CitGOTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYzO0xvOzA7TDs1MzE3Ozs7O047Ozs7OworRjk2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NDtMbzswO0w7NzhGQjs7OztOOzs7OzsKK0Y5NjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjU7TG87MDtMOzRGQkY7Ozs7Tjs7Ozs7CitGOTY2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY2O0xvOzA7TDs1RkE5Ozs7O047Ozs7OworRjk2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NztMbzswO0w7NEUwRDs7OztOOzs7OzsKK0Y5Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njg7TG87MDtMOzZDQ0M7Ozs7Tjs7Ozs7CitGOTY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY5O0xvOzA7TDs2NTc4Ozs7O047Ozs7OworRjk2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QTtMbzswO0w7N0QyMjs7OztOOzs7OzsKK0Y5NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkI7TG87MDtMOzUzQzM7Ozs7Tjs7Ozs7CitGOTZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZDO0xvOzA7TDs1ODVFOzs7O047Ozs7OworRjk2RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RDtMbzswO0w7NzcwMTs7OztOOzs7OzsKK0Y5NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkU7TG87MDtMOzg0NDk7Ozs7Tjs7Ozs7CitGOTZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZGO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjk3MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MDtMbzswO0w7NkJCQTs7OztOOzs7OzsKK0Y5NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzE7TG87MDtMOzhGQjA7Ozs7Tjs7Ozs7CitGOTcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcyO0xvOzA7TDs2Qzg4Ozs7O047Ozs7OworRjk3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MztMbzswO0w7NjJGRTs7OztOOzs7OzsKK0Y5NzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzQ7TG87MDtMOzgyRTU7Ozs7Tjs7Ozs7CitGOTc1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc1O0xvOzA7TDs2M0EwOzs7O047Ozs7OworRjk3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NjtMbzswO0w7NzU2NTs7OztOOzs7OzsKK0Y5Nzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzc7TG87MDtMOzRFQUU7Ozs7Tjs7Ozs7CitGOTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc4O0xvOzA7TDs1MTY5Ozs7O047Ozs7OworRjk3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3OTtMbzswO0w7NTFDOTs7OztOOzs7OzsKK0Y5N0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0E7TG87MDtMOzY4ODE7Ozs7Tjs7Ozs7CitGOTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdCO0xvOzA7TDs3Q0U3Ozs7O047Ozs7OworRjk3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QztMbzswO0w7ODI2Rjs7OztOOzs7OzsKK0Y5N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Q7TG87MDtMOzhBRDI7Ozs7Tjs7Ozs7CitGOTdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdFO0xvOzA7TDs5MUNGOzs7O047Ozs7OworRjk3RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RjtMbzswO0w7NTJGNTs7OztOOzs7OzsKK0Y5ODA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODA7TG87MDtMOzU0NDI7Ozs7Tjs7Ozs7CitGOTgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgxO0xvOzA7TDs1OTczOzs7O047Ozs7OworRjk4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MjtMbzswO0w7NUVFQzs7OztOOzs7OzsKK0Y5ODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODM7TG87MDtMOzY1QzU7Ozs7Tjs7Ozs7CitGOTg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg0O0xvOzA7TDs2RkZFOzs7O047Ozs7OworRjk4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NTtMbzswO0w7NzkyQTs7OztOOzs7OzsKK0Y5ODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODY7TG87MDtMOzk1QUQ7Ozs7Tjs7Ozs7CitGOTg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg3O0xvOzA7TDs5QTZBOzs7O047Ozs7OworRjk4ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4ODtMbzswO0w7OUU5Nzs7OztOOzs7OzsKK0Y5ODk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODk7TG87MDtMOzlFQ0U7Ozs7Tjs7Ozs7CitGOThBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThBO0xvOzA7TDs1MjlCOzs7O047Ozs7OworRjk4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QjtMbzswO0w7NjZDNjs7OztOOzs7OzsKK0Y5OEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEM7TG87MDtMOzZCNzc7Ozs7Tjs7Ozs7CitGOThEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThEO0xvOzA7TDs4RjYyOzs7O047Ozs7OworRjk4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RTtMbzswO0w7NUU3NDs7OztOOzs7OzsKK0Y5OEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEY7TG87MDtMOzYxOTA7Ozs7Tjs7Ozs7CitGOTkwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkwO0xvOzA7TDs2MjAwOzs7O047Ozs7OworRjk5MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MTtMbzswO0w7NjQ5QTs7OztOOzs7OzsKK0Y5OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTI7TG87MDtMOzZGMjM7Ozs7Tjs7Ozs7CitGOTkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkzO0xvOzA7TDs3MTQ5Ozs7O047Ozs7OworRjk5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NDtMbzswO0w7NzQ4OTs7OztOOzs7OzsKK0Y5OTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTU7TG87MDtMOzc5Q0E7Ozs7Tjs7Ozs7CitGOTk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk2O0xvOzA7TDs3REY0Ozs7O047Ozs7OworRjk5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NztMbzswO0w7ODA2Rjs7OztOOzs7OzsKK0Y5OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTg7TG87MDtMOzhGMjY7Ozs7Tjs7Ozs7CitGOTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk5O0xvOzA7TDs4NEVFOzs7O047Ozs7OworRjk5QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QTtMbzswO0w7OTAyMzs7OztOOzs7OzsKK0Y5OUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUI7TG87MDtMOzkzNEE7Ozs7Tjs7Ozs7CitGOTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlDO0xvOzA7TDs1MjE3Ozs7O047Ozs7OworRjk5RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RDtMbzswO0w7NTJBMzs7OztOOzs7OzsKK0Y5OUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUU7TG87MDtMOzU0QkQ7Ozs7Tjs7Ozs7CitGOTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlGO0xvOzA7TDs3MEM4Ozs7O047Ozs7OworRjlBMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMDtMbzswO0w7ODhDMjs7OztOOzs7OzsKK0Y5QTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTE7TG87MDtMOzhBQUE7Ozs7Tjs7Ozs7CitGOUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUEyO0xvOzA7TDs1RUM5Ozs7O047Ozs7OworRjlBMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMztMbzswO0w7NUZGNTs7OztOOzs7OzsKK0Y5QTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTQ7TG87MDtMOzYzN0I7Ozs7Tjs7Ozs7CitGOUE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE1O0xvOzA7TDs2QkFFOzs7O047Ozs7OworRjlBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNjtMbzswO0w7N0MzRTs7OztOOzs7OzsKK0Y5QTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTc7TG87MDtMOzczNzU7Ozs7Tjs7Ozs7CitGOUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE4O0xvOzA7TDs0RUU0Ozs7O047Ozs7OworRjlBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBOTtMbzswO0w7NTZGOTs7OztOOzs7OzsKK0Y5QUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUE7TG87MDtMOzVCRTc7Ozs7Tjs7Ozs7CitGOUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFCO0xvOzA7TDs1REJBOzs7O047Ozs7OworRjlBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQztMbzswO0w7NjAxQzs7OztOOzs7OzsKK0Y5QUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUQ7TG87MDtMOzczQjI7Ozs7Tjs7Ozs7CitGOUFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFFO0xvOzA7TDs3NDY5Ozs7O047Ozs7OworRjlBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRjtMbzswO0w7N0Y5QTs7OztOOzs7OzsKK0Y5QjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjA7TG87MDtMOzgwNDY7Ozs7Tjs7Ozs7CitGOUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIxO0xvOzA7TDs5MjM0Ozs7O047Ozs7OworRjlCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMjtMbzswO0w7OTZGNjs7OztOOzs7OzsKK0Y5QjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjM7TG87MDtMOzk3NDg7Ozs7Tjs7Ozs7CitGOUI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI0O0xvOzA7TDs5ODE4Ozs7O047Ozs7OworRjlCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNTtMbzswO0w7NEY4Qjs7OztOOzs7OzsKK0Y5QjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjY7TG87MDtMOzc5QUU7Ozs7Tjs7Ozs7CitGOUI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI3O0xvOzA7TDs5MUI0Ozs7O047Ozs7OworRjlCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCODtMbzswO0w7OTZCODs7OztOOzs7OzsKK0Y5Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjk7TG87MDtMOzYwRTE7Ozs7Tjs7Ozs7CitGOUJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJBO0xvOzA7TDs0RTg2Ozs7O047Ozs7OworRjlCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQjtMbzswO0w7NTBEQTs7OztOOzs7OzsKK0Y5QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkM7TG87MDtMOzVCRUU7Ozs7Tjs7Ozs7CitGOUJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJEO0xvOzA7TDs1QzNGOzs7O047Ozs7OworRjlCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRTtMbzswO0w7NjU5OTs7OztOOzs7OzsKK0Y5QkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkY7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOUMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMwO0xvOzA7TDs3MUNFOzs7O047Ozs7OworRjlDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMTtMbzswO0w7NzY0Mjs7OztOOzs7OzsKK0Y5QzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzI7TG87MDtMOzg0RkM7Ozs7Tjs7Ozs7CitGOUMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMzO0xvOzA7TDs5MDdDOzs7O047Ozs7OworRjlDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNDtMbzswO0w7OUY4RDs7OztOOzs7OzsKK0Y5QzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzU7TG87MDtMOzY2ODg7Ozs7Tjs7Ozs7CitGOUM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM2O0xvOzA7TDs5NjJFOzs7O047Ozs7OworRjlDNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNztMbzswO0w7NTI4OTs7OztOOzs7OzsKK0Y5Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzg7TG87MDtMOzY3N0I7Ozs7Tjs7Ozs7CitGOUM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM5O0xvOzA7TDs2N0YzOzs7O047Ozs7OworRjlDQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQTtMbzswO0w7NkQ0MTs7OztOOzs7OzsKK0Y5Q0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0I7TG87MDtMOzZFOUM7Ozs7Tjs7Ozs7CitGOUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNDO0xvOzA7TDs3NDA5Ozs7O047Ozs7OworRjlDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRDtMbzswO0w7NzU1OTs7OztOOzs7OzsKK0Y5Q0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0U7TG87MDtMOzc4NkI7Ozs7Tjs7Ozs7CitGOUNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNGO0xvOzA7TDs3RDEwOzs7O047Ozs7OworRjlEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMDtMbzswO0w7OTg1RTs7OztOOzs7OzsKK0Y5RDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDE7TG87MDtMOzUxNkQ7Ozs7Tjs7Ozs7CitGOUQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQyO0xvOzA7TDs2MjJFOzs7O047Ozs7OworRjlEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMztMbzswO0w7OTY3ODs7OztOOzs7OzsKK0Y5RDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDQ7TG87MDtMOzUwMkI7Ozs7Tjs7Ozs7CitGOUQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ1O0xvOzA7TDs1RDE5Ozs7O047Ozs7OworRjlENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENjtMbzswO0w7NkRFQTs7OztOOzs7OzsKK0Y5RDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDc7TG87MDtMOzhGMkE7Ozs7Tjs7Ozs7CitGOUQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ4O0xvOzA7TDs1RjhCOzs7O047Ozs7OworRjlEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEOTtMbzswO0w7NjE0NDs7OztOOzs7OzsKK0Y5REE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REE7TG87MDtMOzY4MTc7Ozs7Tjs7Ozs7CitGOURCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURCO0xvOzA7TDs3Mzg3Ozs7O047Ozs7OworRjlEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQztMbzswO0w7OTY4Njs7OztOOzs7OzsKK0Y5REQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REQ7TG87MDtMOzUyMjk7Ozs7Tjs7Ozs7CitGOURFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURFO0xvOzA7TDs1NDBGOzs7O047Ozs7OworRjlERjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERjtMbzswO0w7NUM2NTs7OztOOzs7OzsKK0Y5RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTA7TG87MDtMOzY2MTM7Ozs7Tjs7Ozs7CitGOUUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUxO0xvOzA7TDs2NzRFOzs7O047Ozs7OworRjlFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMjtMbzswO0w7NjhBODs7OztOOzs7OzsKK0Y5RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTM7TG87MDtMOzZDRTU7Ozs7Tjs7Ozs7CitGOUU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU0O0xvOzA7TDs3NDA2Ozs7O047Ozs7OworRjlFNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNTtMbzswO0w7NzVFMjs7OztOOzs7OzsKK0Y5RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTY7TG87MDtMOzdGNzk7Ozs7Tjs7Ozs7CitGOUU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU3O0xvOzA7TDs4OENGOzs7O047Ozs7OworRjlFODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFODtMbzswO0w7ODhFMTs7OztOOzs7OzsKK0Y5RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTk7TG87MDtMOzkxQ0M7Ozs7Tjs7Ozs7CitGOUVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVBO0xvOzA7TDs5NkUyOzs7O047Ozs7OworRjlFQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQjtMbzswO0w7NTMzRjs7OztOOzs7OzsKK0Y5RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUM7TG87MDtMOzZFQkE7Ozs7Tjs7Ozs7CitGOUVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVEO0xvOzA7TDs1NDFEOzs7O047Ozs7OworRjlFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRTtMbzswO0w7NzFEMDs7OztOOzs7OzsKK0Y5RUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUY7TG87MDtMOzc0OTg7Ozs7Tjs7Ozs7CitGOUYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYwO0xvOzA7TDs4NUZBOzs7O047Ozs7OworRjlGMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMTtMbzswO0w7OTZBMzs7OztOOzs7OzsKK0Y5RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjI7TG87MDtMOzlDNTc7Ozs7Tjs7Ozs7CitGOUYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYzO0xvOzA7TDs5RTlGOzs7O047Ozs7OworRjlGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNDtMbzswO0w7Njc5Nzs7OztOOzs7OzsKK0Y5RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjU7TG87MDtMOzZEQ0I7Ozs7Tjs7Ozs7CitGOUY2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY2O0xvOzA7TDs4MUU4Ozs7O047Ozs7OworRjlGNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNztMbzswO0w7N0FDQjs7OztOOzs7OzsKK0Y5Rjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjg7TG87MDtMOzdCMjA7Ozs7Tjs7Ozs7CitGOUY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY5O0xvOzA7TDs3QzkyOzs7O047Ozs7OworRjlGQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQTtMbzswO0w7NzJDMDs7OztOOzs7OzsKK0Y5RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkI7TG87MDtMOzcwOTk7Ozs7Tjs7Ozs7CitGOUZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZDO0xvOzA7TDs4QjU4Ozs7O047Ozs7OworRjlGRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRDtMbzswO0w7NEVDMDs7OztOOzs7OzsKK0Y5RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkU7TG87MDtMOzgzMzY7Ozs7Tjs7Ozs7CitGOUZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZGO0xvOzA7TDs1MjNBOzs7O047Ozs7OworRkEwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMDtMbzswO0w7NTIwNzs7OztOOzs7OzsKK0ZBMDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDE7TG87MDtMOzVFQTY7Ozs7Tjs7Ozs7CitGQTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAyO0xvOzA7TDs2MkQzOzs7O047Ozs7OworRkEwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMztMbzswO0w7N0NENjs7OztOOzs7OzsKK0ZBMDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDQ7TG87MDtMOzVCODU7Ozs7Tjs7Ozs7CitGQTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA1O0xvOzA7TDs2RDFFOzs7O047Ozs7OworRkEwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNjtMbzswO0w7NjZCNDs7OztOOzs7OzsKK0ZBMDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDc7TG87MDtMOzhGM0I7Ozs7Tjs7Ozs7CitGQTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA4O0xvOzA7TDs4ODRDOzs7O047Ozs7OworRkEwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwOTtMbzswO0w7OTY0RDs7OztOOzs7OzsKK0ZBMEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEE7TG87MDtMOzg5OEI7Ozs7Tjs7Ozs7CitGQTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBCO0xvOzA7TDs1RUQzOzs7O047Ozs7OworRkEwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQztMbzswO0w7NTE0MDs7OztOOzs7OzsKK0ZBMEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEQ7TG87MDtMOzU1QzA7Ozs7Tjs7Ozs7CitGQTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEwO0xvOzA7TDs1ODVBOzs7O047Ozs7OworRkExMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMTtMbzswO0w7Ozs7O047Ozs7OworRkExMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMjtMbzswO0w7NjY3NDs7OztOOzs7OzsKK0ZBMTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTM7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTQ7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTU7TG87MDtMOzUxREU7Ozs7Tjs7Ozs7CitGQTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE2O0xvOzA7TDs3MzJBOzs7O047Ozs7OworRkExNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNztMbzswO0w7NzZDQTs7OztOOzs7OzsKK0ZBMTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTg7TG87MDtMOzc5M0M7Ozs7Tjs7Ozs7CitGQTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE5O0xvOzA7TDs3OTVFOzs7O047Ozs7OworRkExQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQTtMbzswO0w7Nzk2NTs7OztOOzs7OzsKK0ZBMUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUI7TG87MDtMOzc5OEY7Ozs7Tjs7Ozs7CitGQTFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFDO0xvOzA7TDs5NzU2Ozs7O047Ozs7OworRkExRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRDtMbzswO0w7N0NCRTs7OztOOzs7OzsKK0ZBMUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUU7TG87MDtMOzdGQkQ7Ozs7Tjs7Ozs7CitGQTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFGO0xvOzA7TDs7Ozs7Tjs7Kjs7OworRkEyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMDtMbzswO0w7ODYxMjs7OztOOzs7OzsKK0ZBMjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjI7TG87MDtMOzhBRjg7Ozs7Tjs7Ozs7CitGQTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIzO0xvOzA7TDs7Ozs7Tjs7Kjs7OworRkEyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNDtMbzswO0w7Ozs7O047Ozs7OworRkEyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNTtMbzswO0w7OTAzODs7OztOOzs7OzsKK0ZBMjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjY7TG87MDtMOzkwRkQ7Ozs7Tjs7Ozs7CitGQTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI3O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI4O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI5O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJBO0xvOzA7TDs5OEVGOzs7O047Ozs7OworRkEyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQjtMbzswO0w7OThGQzs7OztOOzs7OzsKK0ZBMkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkM7TG87MDtMOzk5Mjg7Ozs7Tjs7Ozs7CitGQTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJEO0xvOzA7TDs5REI0Ozs7O047Ozs7OworRkEzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMDtMbzswO0w7NEZBRTs7OztOOzs7OzsKK0ZBMzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzE7TG87MDtMOzUwRTc7Ozs7Tjs7Ozs7CitGQTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTMyO0xvOzA7TDs1MTREOzs7O047Ozs7OworRkEzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMztMbzswO0w7NTJDOTs7OztOOzs7OzsKK0ZBMzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzQ7TG87MDtMOzUyRTQ7Ozs7Tjs7Ozs7CitGQTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM1O0xvOzA7TDs1MzUxOzs7O047Ozs7OworRkEzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzNjtMbzswO0w7NTU5RDs7OztOOzs7OzsKK0ZBMzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzc7TG87MDtMOzU2MDY7Ozs7Tjs7Ozs7CitGQTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM4O0xvOzA7TDs1NjY4Ozs7O047Ozs7OworRkEzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzOTtMbzswO0w7NTg0MDs7OztOOzs7OzsKK0ZBM0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0E7TG87MDtMOzU4QTg7Ozs7Tjs7Ozs7CitGQTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNCO0xvOzA7TDs1QzY0Ozs7O047Ozs7OworRkEzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzQztMbzswO0w7NUM2RTs7OztOOzs7OzsKK0ZBM0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0Q7TG87MDtMOzYwOTQ7Ozs7Tjs7Ozs7CitGQTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNFO0xvOzA7TDs2MTY4Ozs7O047Ozs7OworRkEzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzRjtMbzswO0w7NjE4RTs7OztOOzs7OzsKK0ZBNDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDA7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CitGQTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQxO0xvOzA7TDs2NTRGOzs7O047Ozs7OworRkE0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0MjtMbzswO0w7NjVFMjs7OztOOzs7OzsKK0ZBNDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDM7TG87MDtMOzY2OTE7Ozs7Tjs7Ozs7CitGQTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ0O0xvOzA7TDs2ODg1Ozs7O047Ozs7OworRkE0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NTtMbzswO0w7NkQ3Nzs7OztOOzs7OzsKK0ZBNDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDY7TG87MDtMOzZFMUE7Ozs7Tjs7Ozs7CitGQTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ3O0xvOzA7TDs2RjIyOzs7O047Ozs7OworRkE0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0ODtMbzswO0w7NzE2RTs7OztOOzs7OzsKK0ZBNDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDk7TG87MDtMOzcyMkI7Ozs7Tjs7Ozs7CitGQTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRBO0xvOzA7TDs3NDIyOzs7O047Ozs7OworRkE0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0QjtMbzswO0w7Nzg5MTs7OztOOzs7OzsKK0ZBNEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEM7TG87MDtMOzc5M0U7Ozs7Tjs7Ozs7CitGQTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTREO0xvOzA7TDs3OTQ5Ozs7O047Ozs7OworRkE0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0RTtMbzswO0w7Nzk0ODs7OztOOzs7OzsKK0ZBNEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEY7TG87MDtMOzc5NTA7Ozs7Tjs7Ozs7CitGQTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTUwO0xvOzA7TDs3OTU2Ozs7O047Ozs7OworRkE1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MTtMbzswO0w7Nzk1RDs7OztOOzs7OzsKK0ZBNTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTI7TG87MDtMOzc5OEQ7Ozs7Tjs7Ozs7CitGQTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTUzO0xvOzA7TDs3OThFOzs7O047Ozs7OworRkE1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1NDtMbzswO0w7N0E0MDs7OztOOzs7OzsKK0ZBNTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTU7TG87MDtMOzdBODE7Ozs7Tjs7Ozs7CitGQTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU2O0xvOzA7TDs3QkMwOzs7O047Ozs7OworRkE1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1NztMbzswO0w7N0RGNDs7OztOOzs7OzsKK0ZBNTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTg7TG87MDtMOzdFMDk7Ozs7Tjs7Ozs7CitGQTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU5O0xvOzA7TDs3RTQxOzs7O047Ozs7OworRkE1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1QTtMbzswO0w7N0Y3Mjs7OztOOzs7OzsKK0ZBNUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUI7TG87MDtMOzgwMDU7Ozs7Tjs7Ozs7CitGQTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVDO0xvOzA7TDs4MUVEOzs7O047Ozs7OworRkE1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1RDtMbzswO0w7ODI3OTs7OztOOzs7OzsKK0ZBNUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUU7TG87MDtMOzgyNzk7Ozs7Tjs7Ozs7CitGQTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVGO0xvOzA7TDs4NDU3Ozs7O047Ozs7OworRkE2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2MDtMbzswO0w7ODkxMDs7OztOOzs7OzsKK0ZBNjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjE7TG87MDtMOzg5OTY7Ozs7Tjs7Ozs7CitGQTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTYyO0xvOzA7TDs4QjAxOzs7O047Ozs7OworRkE2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2MztMbzswO0w7OEIzOTs7OztOOzs7OzsKK0ZBNjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjQ7TG87MDtMOzhDRDM7Ozs7Tjs7Ozs7CitGQTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY1O0xvOzA7TDs4RDA4Ozs7O047Ozs7OworRkE2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2NjtMbzswO0w7OEZCNjs7OztOOzs7OzsKK0ZBNjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjc7TG87MDtMOzkwMzg7Ozs7Tjs7Ozs7CitGQTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY4O0xvOzA7TDs5NkUzOzs7O047Ozs7OworRkE2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2OTtMbzswO0w7OTdGRjs7OztOOzs7OzsKK0ZBNkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNkE7TG87MDtMOzk4M0I7Ozs7Tjs7Ozs7CitGQTcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTcwO0xvOzA7TDs0RTI2Ozs7O047Ozs7OworRkE3MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3MTtMbzswO0w7NTFCNTs7OztOOzs7OzsKK0ZBNzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzI7TG87MDtMOzUxNjg7Ozs7Tjs7Ozs7CitGQTczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTczO0xvOzA7TDs0RjgwOzs7O047Ozs7OworRkE3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3NDtMbzswO0w7NTE0NTs7OztOOzs7OzsKK0ZBNzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzU7TG87MDtMOzUxODA7Ozs7Tjs7Ozs7CitGQTc2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc2O0xvOzA7TDs1MkM3Ozs7O047Ozs7OworRkE3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3NztMbzswO0w7NTJGQTs7OztOOzs7OzsKK0ZBNzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzg7TG87MDtMOzU1OUQ7Ozs7Tjs7Ozs7CitGQTc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc5O0xvOzA7TDs1NTU1Ozs7O047Ozs7OworRkE3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3QTtMbzswO0w7NTU5OTs7OztOOzs7OzsKK0ZBN0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0I7TG87MDtMOzU1RTI7Ozs7Tjs7Ozs7CitGQTdDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdDO0xvOzA7TDs1ODVBOzs7O047Ozs7OworRkE3RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3RDtMbzswO0w7NThCMzs7OztOOzs7OzsKK0ZBN0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0U7TG87MDtMOzU5NDQ7Ozs7Tjs7Ozs7CitGQTdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdGO0xvOzA7TDs1OTU0Ozs7O047Ozs7OworRkE4MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4MDtMbzswO0w7NUE2Mjs7OztOOzs7OzsKK0ZBODE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODE7TG87MDtMOzVCMjg7Ozs7Tjs7Ozs7CitGQTgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTgyO0xvOzA7TDs1RUQyOzs7O047Ozs7OworRkE4MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4MztMbzswO0w7NUVEOTs7OztOOzs7OzsKK0ZBODQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODQ7TG87MDtMOzVGNjk7Ozs7Tjs7Ozs7CitGQTg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg1O0xvOzA7TDs1RkFEOzs7O047Ozs7OworRkE4NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4NjtMbzswO0w7NjBEODs7OztOOzs7OzsKK0ZBODc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODc7TG87MDtMOzYxNEU7Ozs7Tjs7Ozs7CitGQTg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg4O0xvOzA7TDs2MTA4Ozs7O047Ozs7OworRkE4OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4OTtMbzswO0w7NjE4RTs7OztOOzs7OzsKK0ZBOEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEE7TG87MDtMOzYxNjA7Ozs7Tjs7Ozs7CitGQThCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThCO0xvOzA7TDs2MUYyOzs7O047Ozs7OworRkE4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4QztMbzswO0w7NjIzNDs7OztOOzs7OzsKK0ZBOEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEQ7TG87MDtMOzYzQzQ7Ozs7Tjs7Ozs7CitGQThFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThFO0xvOzA7TDs2NDFDOzs7O047Ozs7OworRkE4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4RjtMbzswO0w7NjQ1Mjs7OztOOzs7OzsKK0ZBOTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTA7TG87MDtMOzY1NTY7Ozs7Tjs7Ozs7CitGQTkxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTkxO0xvOzA7TDs2Njc0Ozs7O047Ozs7OworRkE5MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5MjtMbzswO0w7NjcxNzs7OztOOzs7OzsKK0ZBOTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTM7TG87MDtMOzY3MUI7Ozs7Tjs7Ozs7CitGQTk0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk0O0xvOzA7TDs2NzU2Ozs7O047Ozs7OworRkE5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5NTtMbzswO0w7NkI3OTs7OztOOzs7OzsKK0ZBOTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTY7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGQTk3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk3O0xvOzA7TDs2RDQxOzs7O047Ozs7OworRkE5ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5ODtMbzswO0w7NkVEQjs7OztOOzs7OzsKK0ZBOTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTk7TG87MDtMOzZFQ0I7Ozs7Tjs7Ozs7CitGQTlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlBO0xvOzA7TDs2RjIyOzs7O047Ozs7OworRkE5QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5QjtMbzswO0w7NzAxRTs7OztOOzs7OzsKK0ZBOUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUM7TG87MDtMOzcxNkU7Ozs7Tjs7Ozs7CitGQTlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlEO0xvOzA7TDs3N0E3Ozs7O047Ozs7OworRkE5RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5RTtMbzswO0w7NzIzNTs7OztOOzs7OzsKK0ZBOUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUY7TG87MDtMOzcyQUY7Ozs7Tjs7Ozs7CitGQUEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUEwO0xvOzA7TDs3MzJBOzs7O047Ozs7OworRkFBMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBMTtMbzswO0w7NzQ3MTs7OztOOzs7OzsKK0ZBQTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTI7TG87MDtMOzc1MDY7Ozs7Tjs7Ozs7CitGQUEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUEzO0xvOzA7TDs3NTNCOzs7O047Ozs7OworRkFBNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBNDtMbzswO0w7NzYxRDs7OztOOzs7OzsKK0ZBQTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTU7TG87MDtMOzc2MUY7Ozs7Tjs7Ozs7CitGQUE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE2O0xvOzA7TDs3NkNBOzs7O047Ozs7OworRkFBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBNztMbzswO0w7NzZEQjs7OztOOzs7OzsKK0ZBQTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTg7TG87MDtMOzc2RjQ7Ozs7Tjs7Ozs7CitGQUE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE5O0xvOzA7TDs3NzRBOzs7O047Ozs7OworRkFBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBQTtMbzswO0w7Nzc0MDs7OztOOzs7OzsKK0ZBQUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUI7TG87MDtMOzc4Q0M7Ozs7Tjs7Ozs7CitGQUFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFDO0xvOzA7TDs3QUIxOzs7O047Ozs7OworRkFBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBRDtMbzswO0w7N0JDMDs7OztOOzs7OzsKK0ZBQUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUU7TG87MDtMOzdDN0I7Ozs7Tjs7Ozs7CitGQUFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFGO0xvOzA7TDs3RDVCOzs7O047Ozs7OworRkFCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCMDtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0ZBQjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjE7TG87MDtMOzdGM0U7Ozs7Tjs7Ozs7CitGQUIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUIyO0xvOzA7TDs4MDA1Ozs7O047Ozs7OworRkFCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCMztMbzswO0w7ODM1Mjs7OztOOzs7OzsKK0ZBQjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjQ7TG87MDtMOzgzRUY7Ozs7Tjs7Ozs7CitGQUI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI1O0xvOzA7TDs4Nzc5Ozs7O047Ozs7OworRkFCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCNjtMbzswO0w7ODk0MTs7OztOOzs7OzsKK0ZBQjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjc7TG87MDtMOzg5ODY7Ozs7Tjs7Ozs7CitGQUI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI4O0xvOzA7TDs4OTk2Ozs7O047Ozs7OworRkFCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCOTtMbzswO0w7OEFCRjs7OztOOzs7OzsKK0ZBQkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkE7TG87MDtMOzhBRjg7Ozs7Tjs7Ozs7CitGQUJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJCO0xvOzA7TDs4QUNCOzs7O047Ozs7OworRkFCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCQztMbzswO0w7OEIwMTs7OztOOzs7OzsKK0ZBQkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkQ7TG87MDtMOzhBRkU7Ozs7Tjs7Ozs7CitGQUJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJFO0xvOzA7TDs4QUVEOzs7O047Ozs7OworRkFCRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCRjtMbzswO0w7OEIzOTs7OztOOzs7OzsKK0ZBQzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzA7TG87MDtMOzhCOEE7Ozs7Tjs7Ozs7CitGQUMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUMxO0xvOzA7TDs4RDA4Ozs7O047Ozs7OworRkFDMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDMjtMbzswO0w7OEYzODs7OztOOzs7OzsKK0ZBQzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzM7TG87MDtMOzkwNzI7Ozs7Tjs7Ozs7CitGQUM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM0O0xvOzA7TDs5MTk5Ozs7O047Ozs7OworRkFDNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDNTtMbzswO0w7OTI3Njs7OztOOzs7OzsKK0ZBQzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzY7TG87MDtMOzk2N0M7Ozs7Tjs7Ozs7CitGQUM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM3O0xvOzA7TDs5NkUzOzs7O047Ozs7OworRkFDODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDODtMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBQzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzk7TG87MDtMOzk3REI7Ozs7Tjs7Ozs7CitGQUNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNBO0xvOzA7TDs5N0ZGOzs7O047Ozs7OworRkFDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDQjtMbzswO0w7OTgwQjs7OztOOzs7OzsKK0ZBQ0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0M7TG87MDtMOzk4M0I7Ozs7Tjs7Ozs7CitGQUNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNEO0xvOzA7TDs5QjEyOzs7O047Ozs7OworRkFDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDRTtMbzswO0w7OUY5Qzs7OztOOzs7OzsKK0ZBQ0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0Y7TG87MDtMOzIyODRBOzs7O047Ozs7OworRkFEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEMDtMbzswO0w7MjI4NDQ7Ozs7Tjs7Ozs7CitGQUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQxO0xvOzA7TDsyMzNENTs7OztOOzs7OzsKK0ZBRDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDI7TG87MDtMOzNCOUQ7Ozs7Tjs7Ozs7CitGQUQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQzO0xvOzA7TDs0MDE4Ozs7O047Ozs7OworRkFENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFENDtMbzswO0w7NDAzOTs7OztOOzs7OzsKK0ZBRDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDU7TG87MDtMOzI1MjQ5Ozs7O047Ozs7OworRkFENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFENjtMbzswO0w7MjVDRDA7Ozs7Tjs7Ozs7CitGQUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ3O0xvOzA7TDsyN0VEMzs7OztOOzs7OzsKK0ZBRDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDg7TG87MDtMOzlGNDM7Ozs7Tjs7Ozs7CitGQUQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ5O0xvOzA7TDs5RjhFOzs7O047Ozs7OworRkIwMDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRjtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2Ozs7O047Ozs7OworRkIwMTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwMjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDZDOzs7O047Ozs7OworRkIwMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkk7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwNDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkw7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDZDOzs7O047Ozs7OworRkIwNTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBMT05HIFMgVDtMbDswO0w7PGNvbXBhdD4gMDE3RiAwMDc0Ozs7O047Ozs7OworRkIwNjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBTVDtMbDswO0w7PGNvbXBhdD4gMDA3MyAwMDc0Ozs7O047Ozs7OworRkIxMztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NzY7Ozs7Tjs7Ozs7CitGQjE0O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBFQ0g7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2NTs7OztOOzs7OzsKK0ZCMTU7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIElOSTtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZCOzs7O047Ozs7OworRkIxNjtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBWRVcgTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTdFIDA1NzY7Ozs7Tjs7Ozs7CitGQjE3O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBYRUg7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2RDs7OztOOzs7OzsKK0ZCMUQ7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBISVJJUTtMbzswO1I7MDVEOSAwNUI0Ozs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBWQVJJS0E7Ozs7CitGQjFGO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIFlPRCBZT0QgUEFUQUg7TG87MDtSOzA1RjIgMDVCNzs7OztOOzs7OzsKK0ZCMjA7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBBWUlOO0xvOzA7Ujs8Zm9udD4gMDVFMjs7OztOOzs7OzsKK0ZCMjE7SEVCUkVXIExFVFRFUiBXSURFIEFMRUY7TG87MDtSOzxmb250PiAwNUQwOzs7O047Ozs7OworRkIyMjtIRUJSRVcgTEVUVEVSIFdJREUgREFMRVQ7TG87MDtSOzxmb250PiAwNUQzOzs7O047Ozs7OworRkIyMztIRUJSRVcgTEVUVEVSIFdJREUgSEU7TG87MDtSOzxmb250PiAwNUQ0Ozs7O047Ozs7OworRkIyNDtIRUJSRVcgTEVUVEVSIFdJREUgS0FGO0xvOzA7Ujs8Zm9udD4gMDVEQjs7OztOOzs7OzsKK0ZCMjU7SEVCUkVXIExFVFRFUiBXSURFIExBTUVEO0xvOzA7Ujs8Zm9udD4gMDVEQzs7OztOOzs7OzsKK0ZCMjY7SEVCUkVXIExFVFRFUiBXSURFIEZJTkFMIE1FTTtMbzswO1I7PGZvbnQ+IDA1REQ7Ozs7Tjs7Ozs7CitGQjI3O0hFQlJFVyBMRVRURVIgV0lERSBSRVNIO0xvOzA7Ujs8Zm9udD4gMDVFODs7OztOOzs7OzsKK0ZCMjg7SEVCUkVXIExFVFRFUiBXSURFIFRBVjtMbzswO1I7PGZvbnQ+IDA1RUE7Ozs7Tjs7Ozs7CitGQjI5O0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgUExVUyBTSUdOO1NtOzA7RVM7PGZvbnQ+IDAwMkI7Ozs7Tjs7Ozs7CitGQjJBO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UO0xvOzA7UjswNUU5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJCO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNJTiBET1Q7TG87MDtSOzA1RTkgMDVDMjs7OztOOzs7OzsKK0ZCMkM7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSElOIERPVDtMbzswO1I7RkI0OSAwNUMxOzs7O047Ozs7OworRkIyRDtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNJTiBET1Q7TG87MDtSO0ZCNDkgMDVDMjs7OztOOzs7OzsKK0ZCMkU7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUEFUQUg7TG87MDtSOzA1RDAgMDVCNzs7OztOOzs7OzsKK0ZCMkY7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUUFNQVRTO0xvOzA7UjswNUQwIDA1Qjg7Ozs7Tjs7Ozs7CitGQjMwO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRO0xvOzA7UjswNUQwIDA1QkM7Ozs7Tjs7Ozs7CitGQjMxO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQxIDA1QkM7Ozs7Tjs7Ozs7CitGQjMyO0hFQlJFVyBMRVRURVIgR0lNRUwgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDIgMDVCQzs7OztOOzs7OzsKK0ZCMzM7SEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMyAwNUJDOzs7O047Ozs7OworRkIzNDtIRUJSRVcgTEVUVEVSIEhFIFdJVEggTUFQSVE7TG87MDtSOzA1RDQgMDVCQzs7OztOOzs7OzsKK0ZCMzU7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDUgMDVCQzs7OztOOzs7OzsKK0ZCMzY7SEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVENiAwNUJDOzs7O047Ozs7OworRkIzODtIRUJSRVcgTEVUVEVSIFRFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOCAwNUJDOzs7O047Ozs7OworRkIzOTtIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOSAwNUJDOzs7O047Ozs7OworRkIzQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQSAwNUJDOzs7O047Ozs7OworRkIzQjtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQiAwNUJDOzs7O047Ozs7OworRkIzQztIRUJSRVcgTEVUVEVSIExBTUVEIFdJVEggREFHRVNIO0xvOzA7UjswNURDIDA1QkM7Ozs7Tjs7Ozs7CitGQjNFO0hFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNIO0xvOzA7UjswNURFIDA1QkM7Ozs7Tjs7Ozs7CitGQjQwO0hFQlJFVyBMRVRURVIgTlVOIFdJVEggREFHRVNIO0xvOzA7UjswNUUwIDA1QkM7Ozs7Tjs7Ozs7CitGQjQxO0hFQlJFVyBMRVRURVIgU0FNRUtIIFdJVEggREFHRVNIO0xvOzA7UjswNUUxIDA1QkM7Ozs7Tjs7Ozs7CitGQjQzO0hFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTMgMDVCQzs7OztOOzs7OzsKK0ZCNDQ7SEVCUkVXIExFVFRFUiBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNCAwNUJDOzs7O047Ozs7OworRkI0NjtIRUJSRVcgTEVUVEVSIFRTQURJIFdJVEggREFHRVNIO0xvOzA7UjswNUU2IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ3O0hFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNIO0xvOzA7UjswNUU3IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ4O0hFQlJFVyBMRVRURVIgUkVTSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFOCAwNUJDOzs7O047Ozs7OworRkI0OTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTkgMDVCQzs7OztOOzs7OzsKK0ZCNEE7SEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RUEgMDVCQzs7OztOOzs7OzsKK0ZCNEI7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBIT0xBTTtMbzswO1I7MDVENSAwNUI5Ozs7O047Ozs7OworRkI0QztIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIFJBRkU7TG87MDtSOzA1RDEgMDVCRjs7OztOOzs7OzsKK0ZCNEQ7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFO0xvOzA7UjswNURCIDA1QkY7Ozs7Tjs7Ozs7CitGQjRFO0hFQlJFVyBMRVRURVIgUEUgV0lUSCBSQUZFO0xvOzA7UjswNUU0IDA1QkY7Ozs7Tjs7Ozs7CitGQjRGO0hFQlJFVyBMSUdBVFVSRSBBTEVGIExBTUVEO0xvOzA7Ujs8Y29tcGF0PiAwNUQwIDA1REM7Ozs7Tjs7Ozs7CitGQjUwO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjcxOzs7O047Ozs7OworRkI1MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3MTs7OztOOzs7OzsKK0ZCNTI7QVJBQklDIExFVFRFUiBCRUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0I7Ozs7Tjs7Ozs7CitGQjUzO0FSQUJJQyBMRVRURVIgQkVFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdCOzs7O047Ozs7OworRkI1NDtBUkFCSUMgTEVUVEVSIEJFRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU1O0FSQUJJQyBMRVRURVIgQkVFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU2O0FSQUJJQyBMRVRURVIgUEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU3O0FSQUJJQyBMRVRURVIgUEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU4O0FSQUJJQyBMRVRURVIgUEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdFOzs7O047Ozs7OworRkI1OTtBUkFCSUMgTEVUVEVSIFBFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjVBO0FSQUJJQyBMRVRURVIgQkVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4MDs7OztOOzs7OzsKK0ZCNUI7QVJBQklDIExFVFRFUiBCRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgwOzs7O047Ozs7OworRkI1QztBUkFCSUMgTEVUVEVSIEJFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjgwOzs7O047Ozs7OworRkI1RDtBUkFCSUMgTEVUVEVSIEJFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUU7QVJBQklDIExFVFRFUiBUVEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3QTs7OztOOzs7OzsKK0ZCNUY7QVJBQklDIExFVFRFUiBUVEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjA7QVJBQklDIExFVFRFUiBUVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYxO0FSQUJJQyBMRVRURVIgVFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjI7QVJBQklDIExFVFRFUiBURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdGOzs7O047Ozs7OworRkI2MztBUkFCSUMgTEVUVEVSIFRFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY0O0FSQUJJQyBMRVRURVIgVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY1O0FSQUJJQyBMRVRURVIgVEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdGOzs7O047Ozs7OworRkI2NjtBUkFCSUMgTEVUVEVSIFRURUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3OTs7OztOOzs7OzsKK0ZCNjc7QVJBQklDIExFVFRFUiBUVEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY4O0FSQUJJQyBMRVRURVIgVFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjk7QVJBQklDIExFVFRFUiBUVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNkE7QVJBQklDIExFVFRFUiBWRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBNDs7OztOOzs7OzsKK0ZCNkI7QVJBQklDIExFVFRFUiBWRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkM7QVJBQklDIExFVFRFUiBWRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZEO0FSQUJJQyBMRVRURVIgVkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkU7QVJBQklDIExFVFRFUiBQRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE2Ozs7O047Ozs7OworRkI2RjtBUkFCSUMgTEVUVEVSIFBFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcwO0FSQUJJQyBMRVRURVIgUEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcxO0FSQUJJQyBMRVRURVIgUEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MjtBUkFCSUMgTEVUVEVSIERZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4NDs7OztOOzs7OzsKK0ZCNzM7QVJBQklDIExFVFRFUiBEWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc0O0FSQUJJQyBMRVRURVIgRFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzU7QVJBQklDIExFVFRFUiBEWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzY7QVJBQklDIExFVFRFUiBOWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc3O0FSQUJJQyBMRVRURVIgTllFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgzOzs7O047Ozs7OworRkI3ODtBUkFCSUMgTEVUVEVSIE5ZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc5O0FSQUJJQyBMRVRURVIgTllFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjdBO0FSQUJJQyBMRVRURVIgVENIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Njs7OztOOzs7OzsKK0ZCN0I7QVJBQklDIExFVFRFUiBUQ0hFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg2Ozs7O047Ozs7OworRkI3QztBUkFCSUMgTEVUVEVSIFRDSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RDtBUkFCSUMgTEVUVEVSIFRDSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0U7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODc7Ozs7Tjs7Ozs7CitGQjdGO0FSQUJJQyBMRVRURVIgVENIRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg3Ozs7O047Ozs7OworRkI4MDtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgxO0FSQUJJQyBMRVRURVIgVENIRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgyO0FSQUJJQyBMRVRURVIgRERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjgzO0FSQUJJQyBMRVRURVIgRERBSEFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjg0O0FSQUJJQyBMRVRURVIgREFIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Qzs7OztOOzs7OzsKK0ZCODU7QVJBQklDIExFVFRFUiBEQUhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhDOzs7O047Ozs7OworRkI4NjtBUkFCSUMgTEVUVEVSIERVTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhFOzs7O047Ozs7OworRkI4NztBUkFCSUMgTEVUVEVSIERVTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhFOzs7O047Ozs7OworRkI4ODtBUkFCSUMgTEVUVEVSIEREQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4ODs7OztOOzs7OzsKK0ZCODk7QVJBQklDIExFVFRFUiBEREFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODg7Ozs7Tjs7Ozs7CitGQjhBO0FSQUJJQyBMRVRURVIgSkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhCO0FSQUJJQyBMRVRURVIgSkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhDO0FSQUJJQyBMRVRURVIgUlJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjkxOzs7O047Ozs7OworRkI4RDtBUkFCSUMgTEVUVEVSIFJSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY5MTs7OztOOzs7OzsKK0ZCOEU7QVJBQklDIExFVFRFUiBLRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE5Ozs7O047Ozs7OworRkI4RjtBUkFCSUMgTEVUVEVSIEtFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkwO0FSQUJJQyBMRVRURVIgS0VIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkxO0FSQUJJQyBMRVRURVIgS0VIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MjtBUkFCSUMgTEVUVEVSIEdBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFGOzs7O047Ozs7OworRkI5MztBUkFCSUMgTEVUVEVSIEdBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkFGOzs7O047Ozs7OworRkI5NDtBUkFCSUMgTEVUVEVSIEdBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTU7QVJBQklDIExFVFRFUiBHQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFGOzs7O047Ozs7OworRkI5NjtBUkFCSUMgTEVUVEVSIEdVRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCMzs7OztOOzs7OzsKK0ZCOTc7QVJBQklDIExFVFRFUiBHVUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk4O0FSQUJJQyBMRVRURVIgR1VFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTk7QVJBQklDIExFVFRFUiBHVUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOUE7QVJBQklDIExFVFRFUiBOR09FSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkIxOzs7O047Ozs7OworRkI5QjtBUkFCSUMgTEVUVEVSIE5HT0VIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlDO0FSQUJJQyBMRVRURVIgTkdPRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlEO0FSQUJJQyBMRVRURVIgTkdPRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkIxOzs7O047Ozs7OworRkI5RTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkE7Ozs7Tjs7Ozs7CitGQjlGO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCQTs7OztOOzs7OzsKK0ZCQTA7QVJBQklDIExFVFRFUiBSTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJCOzs7O047Ozs7OworRkJBMTtBUkFCSUMgTEVUVEVSIFJOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEyO0FSQUJJQyBMRVRURVIgUk5PT04gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEzO0FSQUJJQyBMRVRURVIgUk5PT04gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkJCOzs7O047Ozs7OworRkJBNDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkMwOzs7O047Ozs7OworRkJBNTtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkMwOzs7O047Ozs7OworRkJBNjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE3O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTg7QVJBQklDIExFVFRFUiBIRUggR09BTCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTk7QVJBQklDIExFVFRFUiBIRUggR09BTCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkFBO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFCO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFDO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkJFOzs7O047Ozs7OworRkJBRDtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFFO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkQyOzs7O047Ozs7OworRkJBRjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMjs7OztOOzs7OzsKK0ZCQjA7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMzs7OztOOzs7OzsKK0ZCQjE7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMzs7OztOOzs7OzsKK0ZCRDM7QVJBQklDIExFVFRFUiBORyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFEOzs7O047Ozs7OworRkJENDtBUkFCSUMgTEVUVEVSIE5HIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ1O0FSQUJJQyBMRVRURVIgTkcgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ2O0FSQUJJQyBMRVRURVIgTkcgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFEOzs7O047Ozs7OworRkJENztBUkFCSUMgTEVUVEVSIFUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNzs7OztOOzs7OzsKK0ZCRDg7QVJBQklDIExFVFRFUiBVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ5O0FSQUJJQyBMRVRURVIgT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNjs7OztOOzs7OzsKK0ZCREE7QVJBQklDIExFVFRFUiBPRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM2Ozs7O047Ozs7OworRkJEQjtBUkFCSUMgTEVUVEVSIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkRDO0FSQUJJQyBMRVRURVIgWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDODs7OztOOzs7OzsKK0ZCREQ7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Nzs7OztOOzs7OzsKK0ZCREU7QVJBQklDIExFVFRFUiBWRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNCOzs7O047Ozs7OworRkJERjtBUkFCSUMgTEVUVEVSIFZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkUwO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM1Ozs7O047Ozs7OworRkJFMTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNTs7OztOOzs7OzsKK0ZCRTI7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkUzO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM5Ozs7O047Ozs7OworRkJFNDtBUkFCSUMgTEVUVEVSIEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMDs7OztOOzs7OzsKK0ZCRTU7QVJBQklDIExFVFRFUiBFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU2O0FSQUJJQyBMRVRURVIgRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTc7QVJBQklDIExFVFRFUiBFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTg7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFOTtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJFRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY5O0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZBO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZCO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNDOzs7O047Ozs7OworRkJGRDtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkNDOzs7O047Ozs7OworRkJGRTtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkY7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkNDOzs7O047Ozs7OworRkMwMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDMDE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDMDI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzAzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzA0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzA1O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDMDY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzA3O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDMDg7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkMwOTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDMEE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzBCO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDMEM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzBEO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDMEU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkMwRjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDMTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzExO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2MkM7Ozs7Tjs7Ozs7CitGQzEyO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzEzO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDMTQ7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkMxNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQzE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQzE3O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDMTg7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkMxOTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkMxQTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQzFDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQzFEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDMUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDMUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDMjA7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDMjI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkMyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkMyNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQzI2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkMyNztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGQzI4O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDMjk7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkMyQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQzJCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkMyQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDMkQ7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkMyRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDMkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkMzMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQzMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkMzMjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDMzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQzM0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDMzU7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzM2O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkMzNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzM4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDMzk7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzNBO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDM0I7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzNDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDM0Q7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzNFO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkMzRjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQzQwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkM0MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQzQyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDNDM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzQ0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM0NTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkM0NjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQ3O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQzQ4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzQ5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZDNEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjRBOzs7O047Ozs7OworRkM0QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkM0QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzREO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQzRFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzRGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDNTA7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM1MTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQzUyO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDNTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NDk7Ozs7Tjs7Ozs7CitGQzU0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjRBOzs7O047Ozs7OworRkM1NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQzU2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkM1NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQzU4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDNTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM1QjtBUkFCSUMgTElHQVRVUkUgVEhBTCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMCAwNjcwOzs7O047Ozs7OworRkM1QztBUkFCSUMgTElHQVRVUkUgUkVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2NzA7Ozs7Tjs7Ozs7CitGQzVEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDNUU7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0QyAwNjUxOzs7O047Ozs7OworRkM1RjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjREIDA2NTE7Ozs7Tjs7Ozs7CitGQzYwO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDNjE7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RiAwNjUxOzs7O047Ozs7OworRkM2MjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUwIDA2NTE7Ozs7Tjs7Ozs7CitGQzYzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjcwOzs7O047Ozs7OworRkM2NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjMxOzs7O047Ozs7OworRkM2NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYzMjs7OztOOzs7OzsKK0ZDNjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ2Ozs7O047Ozs7OworRkM2ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkM2OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkM2QTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYzMTs7OztOOzs7OzsKK0ZDNkI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjMyOzs7O047Ozs7OworRkM2QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzZEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0Njs7OztOOzs7OzsKK0ZDNkU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzZGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkM3MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYzMTs7OztOOzs7OzsKK0ZDNzE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjMyOzs7O047Ozs7OworRkM3MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzczO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0Njs7OztOOzs7OzsKK0ZDNzQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzc1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkM3NjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzE7Ozs7Tjs7Ozs7CitGQzc3O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzI7Ozs7Tjs7Ozs7CitGQzc4O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzc5O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDY7Ozs7Tjs7Ozs7CitGQzdBO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDN0I7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkM3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkM3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDODA7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkM4MTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDODI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkM4MztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDODQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM4ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjI3Ozs7O047Ozs7OworRkM4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM4QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzE7Ozs7Tjs7Ozs7CitGQzhCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzI7Ozs7Tjs7Ozs7CitGQzhDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzhEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDY7Ozs7Tjs7Ozs7CitGQzhFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDOEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM5MDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzkxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjMxOzs7O047Ozs7OworRkM5MjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MzI7Ozs7Tjs7Ozs7CitGQzkzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDOTQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ2Ozs7O047Ozs7OworRkM5NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDOTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzk3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDOTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzk5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyRTs7OztOOzs7OzsKK0ZDOUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM5QjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDOUM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDOUQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkM5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkM5RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNBMDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0ExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0EyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDQTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNBNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDQTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E5O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkNBQztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDQUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0FGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkNCMDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDQjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkNCMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJFOzs7O047Ozs7OworRkNCMztBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkNCNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkNCNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I2O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0I3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I4O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDQjk7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDQkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDQkI7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDQkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkNCRDtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0JFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDQzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDQzI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkNDMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkNDNDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkNDNTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0M2O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0M3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDQzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDQzk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDQ0E7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkNDQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkNDQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNDRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0NFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkNDRjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkNEMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDRDE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0QyO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkNEMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkNENDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDRDU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0Q3O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQ0Q4O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q5O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NzA7Ozs7Tjs7Ozs7CitGQ0RBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0RCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDREM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDREQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDREU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNERjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkNFMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UxO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNFMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNFMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDRTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDRTU7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNFNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkIgMDY0Nzs7OztOOzs7OzsKK0ZDRTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNFODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZDRTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZDRUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkNFQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNFQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDRUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRUY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0YwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNGMjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDRjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRGIDA2NTE7Ozs7Tjs7Ozs7CitGQ0Y0O0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MCAwNjUxOzs7O047Ozs7OworRkNGNTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZDRjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkNGODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZDRjk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZDRkE7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZDRkI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkNGQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQwMDtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMDE7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQwMjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDAzO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMDQ7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQwNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMDY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDA3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQwODtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMDk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDBBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDBCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQwQztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMEQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMEU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQwRjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMTA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDExO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkQxMjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZEMTM7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGRDE0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkQxNTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkQxNjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkQxNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGRDE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZEMTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZEMUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZEMUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDFDO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQxRDtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDFFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMUY7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQyMDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQyMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQyNTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMjY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDI4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQyOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQyQTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDJCO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQyQztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMkY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzMDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDMxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGRDMyO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkQzMztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzNDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGRDM1O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkQzNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGRDM3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDM4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMzk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEM0E7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDNCO0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkQzQztBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0Q7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNFO09STkFURSBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O047Ozs7OworRkQzRjtPUk5BVEUgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7Tjs7Ozs7CitGRDUwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDUxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENTY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1NztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ1ODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU5O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDVBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ1QjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZENUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ1RjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ2MjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2MztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjQ7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDZBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZFO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDZGO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDcyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzQ7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDc1O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENzY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3ODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENzk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDdBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDdCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEODA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDgxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDgyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDgzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ4QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4QjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEOEM7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEOEQ7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDhFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjJDOzs7O047Ozs7OworRkQ4RjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEOTI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkU7Ozs7Tjs7Ozs7CitGRDkzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDk0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDk1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDk2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ5NztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5ODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTk7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ5QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDlCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEOUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEOUY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkRBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREEzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREE5O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREFEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGREI1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEQjY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCOTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREJBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCRDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREJFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQzI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQzM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQzU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyRSAwNjRBOzs7O047Ozs7OworRkRDNztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREYwO0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMTtBUkFCSUMgTElHQVRVUkUgUUFMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMjtBUkFCSUMgTElHQVRVUkUgQUxMQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjQ0IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZERjM7QVJBQklDIExJR0FUVVJFIEFLQkFSIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0MyAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGREY0O0FSQUJJQyBMSUdBVFVSRSBNT0hBTU1BRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQgMDY0NSAwNjJGOzs7O047Ozs7OworRkRGNTtBUkFCSUMgTElHQVRVUkUgU0FMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZERjY7QVJBQklDIExJR0FUVVJFIFJBU09VTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2MzMgMDY0OCAwNjQ0Ozs7O047Ozs7OworRkRGNztBUkFCSUMgTElHQVRVUkUgQUxBWUhFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0NCAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGREY4O0FSQUJJQyBMSUdBVFVSRSBXQVNBTExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047Ozs7OworRkRGOTtBUkFCSUMgTElHQVRVUkUgU0FMTEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGREZBO0FSQUJJQyBMSUdBVFVSRSBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047QVJBQklDIExFVFRFUiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07Ozs7CitGREZCO0FSQUJJQyBMSUdBVFVSRSBKQUxMQUpBTEFMT1VIT1U7TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0Nzs7OztOO0FSQUJJQyBMRVRURVIgSkFMTEFKQUxBTE9VSE9VOzs7OworRkRGQztSSUFMIFNJR047U2M7MDtBTDs8aXNvbGF0ZWQ+IDA2MzEgMDZDQyAwNjI3IDA2NDQ7Ozs7Tjs7Ozs7CitGREZEO0FSQUJJQyBMSUdBVFVSRSBCSVNNSUxMQUggQVItUkFITUFOIEFSLVJBSEVFTTtTbzswO09OOzs7OztOOzs7OzsKK0ZFMDA7VkFSSUFUSU9OIFNFTEVDVE9SLTE7TW47MDtOU007Ozs7O047Ozs7OworRkUwMTtWQVJJQVRJT04gU0VMRUNUT1ItMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTAyO1ZBUklBVElPTiBTRUxFQ1RPUi0zO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDM7VkFSSUFUSU9OIFNFTEVDVE9SLTQ7TW47MDtOU007Ozs7O047Ozs7OworRkUwNDtWQVJJQVRJT04gU0VMRUNUT1ItNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA1O1ZBUklBVElPTiBTRUxFQ1RPUi02O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDY7VkFSSUFUSU9OIFNFTEVDVE9SLTc7TW47MDtOU007Ozs7O047Ozs7OworRkUwNztWQVJJQVRJT04gU0VMRUNUT1ItODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA4O1ZBUklBVElPTiBTRUxFQ1RPUi05O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDk7VkFSSUFUSU9OIFNFTEVDVE9SLTEwO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEE7VkFSSUFUSU9OIFNFTEVDVE9SLTExO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEI7VkFSSUFUSU9OIFNFTEVDVE9SLTEyO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEM7VkFSSUFUSU9OIFNFTEVDVE9SLTEzO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE0O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEU7VkFSSUFUSU9OIFNFTEVDVE9SLTE1O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMEY7VkFSSUFUSU9OIFNFTEVDVE9SLTE2O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMTA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIENPTU1BO1BvOzA7T047PHZlcnRpY2FsPiAwMDJDOzs7O047Ozs7OworRkUxMTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8dmVydGljYWw+IDMwMDE7Ozs7Tjs7Ozs7CitGRTEyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs8dmVydGljYWw+IDMwMDI7Ozs7Tjs7Ozs7CitGRTEzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBDT0xPTjtQbzswO09OOzx2ZXJ0aWNhbD4gMDAzQTs7OztOOzs7OzsKK0ZFMTQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFNFTUlDT0xPTjtQbzswO09OOzx2ZXJ0aWNhbD4gMDAzQjs7OztOOzs7OzsKK0ZFMTU7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8dmVydGljYWw+IDAwMjE7Ozs7Tjs7Ozs7CitGRTE2O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHZlcnRpY2FsPiAwMDNGOzs7O047Ozs7OworRkUxNztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTY7Ozs7Tjs7Ozs7CitGRTE4O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBXSElURSBMRU5USUNVTEFSIEJSQUtDRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTc7Ozs7Tjs7Ozs7CitGRTE5O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBIT1JJWk9OVEFMIEVMTElQU0lTO1BvOzA7T047PHZlcnRpY2FsPiAyMDI2Ozs7O047Ozs7OworRkUyMDtDT01CSU5JTkcgTElHQVRVUkUgTEVGVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMTtDT01CSU5JTkcgTElHQVRVUkUgUklHSFQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjI7Q09NQklOSU5HIERPVUJMRSBUSUxERSBMRUZUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIzO0NPTUJJTklORyBET1VCTEUgVElMREUgUklHSFQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMzA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSO1BvOzA7T047PHZlcnRpY2FsPiAyMDI1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSOzs7OworRkUzMTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU0gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTSBEQVNIOzs7OworRkUzMjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU4gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxMzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTiBEQVNIOzs7OworRkUzMztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworRkUzNDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgV0FWWSBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFMzU7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8dmVydGljYWw+IDAwMjg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzY7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHZlcnRpY2FsPiAwMDI5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM3O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDAwN0I7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzODtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMDA3RDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM5O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNCO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxMDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0M7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxMTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0Q7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0U7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNGO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMDg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBDOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwRTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0NDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDU7U0VTQU1FIERPVDtQbzswO09OOzs7OztOOzs7OzsKK0ZFNDY7V0hJVEUgU0VTQU1FIERPVDtQbzswO09OOzs7OztOOzs7OzsKK0ZFNDc7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDAwNUI7Ozs7Tjs7Ozs7CitGRTQ4O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMDA1RDs7OztOOzs7OzsKK0ZFNDk7REFTSEVEIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgREFTSEVEIE9WRVJTQ09SRTs7OzsKK0ZFNEE7Q0VOVFJFTElORSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgT1ZFUlNDT1JFOzs7OworRkU0QjtXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTRDO0RPVUJMRSBXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgRE9VQkxFIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0RDtEQVNIRUQgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBEQVNIRUQgVU5ERVJTQ09SRTs7OzsKK0ZFNEU7Q0VOVFJFTElORSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgVU5ERVJTQ09SRTs7OzsKK0ZFNEY7V0FWWSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFNTA7U01BTEwgQ09NTUE7UG87MDtDUzs8c21hbGw+IDAwMkM7Ozs7Tjs7Ozs7CitGRTUxO1NNQUxMIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PHNtYWxsPiAzMDAxOzs7O047Ozs7OworRkU1MjtTTUFMTCBGVUxMIFNUT1A7UG87MDtDUzs8c21hbGw+IDAwMkU7Ozs7TjtTTUFMTCBQRVJJT0Q7Ozs7CitGRTU0O1NNQUxMIFNFTUlDT0xPTjtQbzswO09OOzxzbWFsbD4gMDAzQjs7OztOOzs7OzsKK0ZFNTU7U01BTEwgQ09MT047UG87MDtDUzs8c21hbGw+IDAwM0E7Ozs7Tjs7Ozs7CitGRTU2O1NNQUxMIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwM0Y7Ozs7Tjs7Ozs7CitGRTU3O1NNQUxMIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwMjE7Ozs7Tjs7Ozs7CitGRTU4O1NNQUxMIEVNIERBU0g7UGQ7MDtPTjs8c21hbGw+IDIwMTQ7Ozs7Tjs7Ozs7CitGRTU5O1NNQUxMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c21hbGw+IDAwMjg7Ozs7WTtTTUFMTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QTtTTUFMTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzbWFsbD4gMDAyOTs7OztZO1NNQUxMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVCO1NNQUxMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMDA3Qjs7OztZO1NNQUxMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUM7U01BTEwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMDA3RDs7OztZO1NNQUxMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUQ7U01BTEwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAzMDE0Ozs7O1k7U01BTEwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RTtTTUFMTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAzMDE1Ozs7O1k7U01BTEwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RjtTTUFMTCBOVU1CRVIgU0lHTjtQbzswO0VUOzxzbWFsbD4gMDAyMzs7OztOOzs7OzsKK0ZFNjA7U01BTEwgQU1QRVJTQU5EO1BvOzA7T047PHNtYWxsPiAwMDI2Ozs7O047Ozs7OworRkU2MTtTTUFMTCBBU1RFUklTSztQbzswO09OOzxzbWFsbD4gMDAyQTs7OztOOzs7OzsKK0ZFNjI7U01BTEwgUExVUyBTSUdOO1NtOzA7RVM7PHNtYWxsPiAwMDJCOzs7O047Ozs7OworRkU2MztTTUFMTCBIWVBIRU4tTUlOVVM7UGQ7MDtFUzs8c21hbGw+IDAwMkQ7Ozs7Tjs7Ozs7CitGRTY0O1NNQUxMIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNDOzs7O1k7Ozs7OworRkU2NTtTTUFMTCBHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRTs7OztZOzs7OzsKK0ZFNjY7U01BTEwgRVFVQUxTIFNJR047U207MDtPTjs8c21hbGw+IDAwM0Q7Ozs7Tjs7Ozs7CitGRTY4O1NNQUxMIFJFVkVSU0UgU09MSURVUztQbzswO09OOzxzbWFsbD4gMDA1Qzs7OztOO1NNQUxMIEJBQ0tTTEFTSDs7OzsKK0ZFNjk7U01BTEwgRE9MTEFSIFNJR047U2M7MDtFVDs8c21hbGw+IDAwMjQ7Ozs7Tjs7Ozs7CitGRTZBO1NNQUxMIFBFUkNFTlQgU0lHTjtQbzswO0VUOzxzbWFsbD4gMDAyNTs7OztOOzs7OzsKK0ZFNkI7U01BTEwgQ09NTUVSQ0lBTCBBVDtQbzswO09OOzxzbWFsbD4gMDA0MDs7OztOOzs7OzsKK0ZFNzA7QVJBQklDIEZBVEhBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qjs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBVEFOOzs7OworRkU3MTtBUkFCSUMgVEFUV0VFTCBXSVRIIEZBVEhBVEFOIEFCT1ZFO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRCOzs7O047QVJBQklDIEZBVEhBVEFOIE9OIFRBVFdFRUw7Ozs7CitGRTcyO0FSQUJJQyBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEM7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQVRBTjs7OzsKK0ZFNzM7QVJBQklDIFRBSUwgRlJBR01FTlQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CitGRTc0O0FSQUJJQyBLQVNSQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEQ7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQVRBTjs7OzsKK0ZFNzY7QVJBQklDIEZBVEhBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RTs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBSDs7OzsKK0ZFNzc7QVJBQklDIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRFOzs7O047QVJBQklDIEZBVEhBSCBPTiBUQVRXRUVMOzs7OworRkU3ODtBUkFCSUMgREFNTUEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRGOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFIOzs7OworRkU3OTtBUkFCSUMgREFNTUEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEY7Ozs7TjtBUkFCSUMgREFNTUFIIE9OIFRBVFdFRUw7Ozs7CitGRTdBO0FSQUJJQyBLQVNSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTA7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQUg7Ozs7CitGRTdCO0FSQUJJQyBLQVNSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MDs7OztOO0FSQUJJQyBLQVNSQUggT04gVEFUV0VFTDs7OzsKK0ZFN0M7QVJBQklDIFNIQUREQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTE7Ozs7TjtBUkFCSUMgU1BBQ0lORyBTSEFEREFIOzs7OworRkU3RDtBUkFCSUMgU0hBRERBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUxOzs7O047QVJBQklDIFNIQUREQUggT04gVEFUV0VFTDs7OzsKK0ZFN0U7QVJBQklDIFNVS1VOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1Mjs7OztOO0FSQUJJQyBTUEFDSU5HIFNVS1VOOzs7OworRkU3RjtBUkFCSUMgU1VLVU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTI7Ozs7TjtBUkFCSUMgU1VLVU4gT04gVEFUV0VFTDs7OzsKK0ZFODA7QVJBQklDIExFVFRFUiBIQU1aQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSDs7OzsKK0ZFODE7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUFEREFIIE9OIEFMRUY7Ozs7CitGRTgzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg0O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBBTEVGOzs7OworRkU4NTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFdBVzs7OzsKK0ZFODY7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4ODtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgQUxFRjs7OzsKK0ZFODk7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThCO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QztBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEQ7QVJBQklDIExFVFRFUiBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUxFRjs7OzsKK0ZFOEU7QVJBQklDIExFVFRFUiBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUY7Ozs7CitGRThGO0FSQUJJQyBMRVRURVIgQkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQkFBOzs7OworRkU5MDtBUkFCSUMgTEVUVEVSIEJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBCQUE7Ozs7CitGRTkxO0FSQUJJQyBMRVRURVIgQkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTI7QVJBQklDIExFVFRFUiBCRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQkFBOzs7OworRkU5MztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NDtBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQSBNQVJCVVRBSDs7OzsKK0ZFOTU7QVJBQklDIExFVFRFUiBURUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUE7Ozs7CitGRTk2O0FSQUJJQyBMRVRURVIgVEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTc7QVJBQklDIExFVFRFUiBURUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFBOzs7OworRkU5ODtBUkFCSUMgTEVUVEVSIFRFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk5O0FSQUJJQyBMRVRURVIgVEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUE7Ozs7CitGRTlBO0FSQUJJQyBMRVRURVIgVEhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFBOzs7OworRkU5QjtBUkFCSUMgTEVUVEVSIFRIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUM7QVJBQklDIExFVFRFUiBUSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlEO0FSQUJJQyBMRVRURVIgSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEpFRU07Ozs7CitGRTlFO0FSQUJJQyBMRVRURVIgSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBKRUVNOzs7OworRkU5RjtBUkFCSUMgTEVUVEVSIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTA7QVJBQklDIExFVFRFUiBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEpFRU07Ozs7CitGRUExO0FSQUJJQyBMRVRURVIgSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFBOzs7OworRkVBMjtBUkFCSUMgTEVUVEVSIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQUE7Ozs7CitGRUEzO0FSQUJJQyBMRVRURVIgSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTQ7QVJBQklDIExFVFRFUiBIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJEOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFBOzs7OworRkVBNTtBUkFCSUMgTEVUVEVSIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBLSEFBOzs7OworRkVBNjtBUkFCSUMgTEVUVEVSIEtIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTc7QVJBQklDIExFVFRFUiBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJFOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE4O0FSQUJJQyBMRVRURVIgS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBLSEFBOzs7OworRkVBOTtBUkFCSUMgTEVUVEVSIERBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJGOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBTDs7OzsKK0ZFQUE7QVJBQklDIExFVFRFUiBEQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFMOzs7OworRkVBQjtBUkFCSUMgTEVUVEVSIFRIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUSEFMOzs7OworRkVBQztBUkFCSUMgTEVUVEVSIFRIQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEhBTDs7OzsKK0ZFQUQ7QVJBQklDIExFVFRFUiBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBSQTs7OzsKK0ZFQUU7QVJBQklDIExFVFRFUiBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUkE7Ozs7CitGRUFGO0FSQUJJQyBMRVRURVIgWkFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFpBSU47Ozs7CitGRUIwO0FSQUJJQyBMRVRURVIgWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBaQUlOOzs7OworRkVCMTtBUkFCSUMgTEVUVEVSIFNFRU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTRUVOOzs7OworRkVCMjtBUkFCSUMgTEVUVEVSIFNFRU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjM7QVJBQklDIExFVFRFUiBTRUVOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI0O0FSQUJJQyBMRVRURVIgU0VFTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTRUVOOzs7OworRkVCNTtBUkFCSUMgTEVUVEVSIFNIRUVOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0hFRU47Ozs7CitGRUI2O0FSQUJJQyBMRVRURVIgU0hFRU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI3O0FSQUJJQyBMRVRURVIgU0hFRU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI4O0FSQUJJQyBMRVRURVIgU0hFRU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI5O0FSQUJJQyBMRVRURVIgU0FEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0FEOzs7OworRkVCQTtBUkFCSUMgTEVUVEVSIFNBRCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJCO0FSQUJJQyBMRVRURVIgU0FEIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkM7QVJBQklDIExFVFRFUiBTQUQgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0FEOzs7OworRkVCRDtBUkFCSUMgTEVUVEVSIERBRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBRDs7OzsKK0ZFQkU7QVJBQklDIExFVFRFUiBEQUQgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFEOzs7OworRkVCRjtBUkFCSUMgTEVUVEVSIERBRCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBEQUQ7Ozs7CitGRUMwO0FSQUJJQyBMRVRURVIgREFEIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzE7QVJBQklDIExFVFRFUiBUQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUg7Ozs7CitGRUMyO0FSQUJJQyBMRVRURVIgVEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzM7QVJBQklDIExFVFRFUiBUQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFIOzs7OworRkVDNDtBUkFCSUMgTEVUVEVSIFRBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM1O0FSQUJJQyBMRVRURVIgWkFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREhBSDs7OzsKK0ZFQzY7QVJBQklDIExFVFRFUiBaQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzc7QVJBQklDIExFVFRFUiBaQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzg7QVJBQklDIExFVFRFUiBaQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzk7QVJBQklDIExFVFRFUiBBSU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBSU47Ozs7CitGRUNBO0FSQUJJQyBMRVRURVIgQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0I7QVJBQklDIExFVFRFUiBBSU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQUlOOzs7OworRkVDQztBUkFCSUMgTEVUVEVSIEFJTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBBSU47Ozs7CitGRUNEO0FSQUJJQyBMRVRURVIgR0hBSU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0U7QVJBQklDIExFVFRFUiBHSEFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0Y7QVJBQklDIExFVFRFUiBHSEFJTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDA7QVJBQklDIExFVFRFUiBHSEFJTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDE7QVJBQklDIExFVFRFUiBGRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBGQTs7OzsKK0ZFRDI7QVJBQklDIExFVFRFUiBGRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgRkE7Ozs7CitGRUQzO0FSQUJJQyBMRVRURVIgRkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEZBOzs7OworRkVENDtBUkFCSUMgTEVUVEVSIEZFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBGQTs7OzsKK0ZFRDU7QVJBQklDIExFVFRFUiBRQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBRQUY7Ozs7CitGRUQ2O0FSQUJJQyBMRVRURVIgUUFGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDc7QVJBQklDIExFVFRFUiBRQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgUUFGOzs7OworRkVEODtBUkFCSUMgTEVUVEVSIFFBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ5O0FSQUJJQyBMRVRURVIgS0FGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQ0FGOzs7OworRkVEQTtBUkFCSUMgTEVUVEVSIEtBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBDQUY7Ozs7CitGRURCO0FSQUJJQyBMRVRURVIgS0FGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIENBRjs7OzsKK0ZFREM7QVJBQklDIExFVFRFUiBLQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQzOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQ0FGOzs7OworRkVERDtBUkFCSUMgTEVUVEVSIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIExBTTs7OzsKK0ZFREU7QVJBQklDIExFVFRFUiBMQU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTEFNOzs7OworRkVERjtBUkFCSUMgTEVUVEVSIExBTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBMQU07Ozs7CitGRUUwO0FSQUJJQyBMRVRURVIgTEFNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTE7QVJBQklDIExFVFRFUiBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUVFTTs7OzsKK0ZFRTI7QVJBQklDIExFVFRFUiBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1FRU07Ozs7CitGRUUzO0FSQUJJQyBMRVRURVIgTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNDtBUkFCSUMgTEVUVEVSIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTU7QVJBQklDIExFVFRFUiBOT09OIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTk9PTjs7OzsKK0ZFRTY7QVJBQklDIExFVFRFUiBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE5PT047Ozs7CitGRUU3O0FSQUJJQyBMRVRURVIgTk9PTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBOT09OOzs7OworRkVFODtBUkFCSUMgTEVUVEVSIE5PT04gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTk7QVJBQklDIExFVFRFUiBIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQTs7OzsKK0ZFRUE7QVJBQklDIExFVFRFUiBIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEE7Ozs7CitGRUVCO0FSQUJJQyBMRVRURVIgSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBOzs7OworRkVFQztBUkFCSUMgTEVUVEVSIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQTs7OzsKK0ZFRUQ7QVJBQklDIExFVFRFUiBXQVcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0ODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBXQVc7Ozs7CitGRUVFO0FSQUJJQyBMRVRURVIgV0FXIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFdBVzs7OzsKK0ZFRUY7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0OTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMDtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMTtBUkFCSUMgTEVUVEVSIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFlBOzs7OworRkVGMjtBUkFCSUMgTEVUVEVSIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBZQTs7OzsKK0ZFRjM7QVJBQklDIExFVFRFUiBZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgWUE7Ozs7CitGRUY0O0FSQUJJQyBMRVRURVIgWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFlBOzs7OworRkVGNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIE1BRERBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjIzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZGO1pFUk8gV0lEVEggTk8tQlJFQUsgU1BBQ0U7Q2Y7MDtCTjs7Ozs7TjtCWVRFIE9SREVSIE1BUks7Ozs7CitGRjAxO0ZVTExXSURUSCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjE7Ozs7Tjs7Ozs7CitGRjAyO0ZVTExXSURUSCBRVU9UQVRJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDIyOzs7O047Ozs7OworRkYwMztGVUxMV0lEVEggTlVNQkVSIFNJR047UG87MDtFVDs8d2lkZT4gMDAyMzs7OztOOzs7OzsKK0ZGMDQ7RlVMTFdJRFRIIERPTExBUiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwMjQ7Ozs7Tjs7Ozs7CitGRjA1O0ZVTExXSURUSCBQRVJDRU5UIFNJR047UG87MDtFVDs8d2lkZT4gMDAyNTs7OztOOzs7OzsKK0ZGMDY7RlVMTFdJRFRIIEFNUEVSU0FORDtQbzswO09OOzx3aWRlPiAwMDI2Ozs7O047Ozs7OworRkYwNztGVUxMV0lEVEggQVBPU1RST1BIRTtQbzswO09OOzx3aWRlPiAwMDI3Ozs7O047Ozs7OworRkYwODtGVUxMV0lEVEggTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx3aWRlPiAwMDI4Ozs7O1k7RlVMTFdJRFRIIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRjA5O0ZVTExXSURUSCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx3aWRlPiAwMDI5Ozs7O1k7RlVMTFdJRFRIIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRjBBO0ZVTExXSURUSCBBU1RFUklTSztQbzswO09OOzx3aWRlPiAwMDJBOzs7O047Ozs7OworRkYwQjtGVUxMV0lEVEggUExVUyBTSUdOO1NtOzA7RVM7PHdpZGU+IDAwMkI7Ozs7Tjs7Ozs7CitGRjBDO0ZVTExXSURUSCBDT01NQTtQbzswO0NTOzx3aWRlPiAwMDJDOzs7O047Ozs7OworRkYwRDtGVUxMV0lEVEggSFlQSEVOLU1JTlVTO1BkOzA7RVM7PHdpZGU+IDAwMkQ7Ozs7Tjs7Ozs7CitGRjBFO0ZVTExXSURUSCBGVUxMIFNUT1A7UG87MDtDUzs8d2lkZT4gMDAyRTs7OztOO0ZVTExXSURUSCBQRVJJT0Q7Ozs7CitGRjBGO0ZVTExXSURUSCBTT0xJRFVTO1BvOzA7Q1M7PHdpZGU+IDAwMkY7Ozs7TjtGVUxMV0lEVEggU0xBU0g7Ozs7CitGRjEwO0ZVTExXSURUSCBESUdJVCBaRVJPO05kOzA7RU47PHdpZGU+IDAwMzA7MDswOzA7Tjs7Ozs7CitGRjExO0ZVTExXSURUSCBESUdJVCBPTkU7TmQ7MDtFTjs8d2lkZT4gMDAzMTsxOzE7MTtOOzs7OzsKK0ZGMTI7RlVMTFdJRFRIIERJR0lUIFRXTztOZDswO0VOOzx3aWRlPiAwMDMyOzI7MjsyO047Ozs7OworRkYxMztGVUxMV0lEVEggRElHSVQgVEhSRUU7TmQ7MDtFTjs8d2lkZT4gMDAzMzszOzM7MztOOzs7OzsKK0ZGMTQ7RlVMTFdJRFRIIERJR0lUIEZPVVI7TmQ7MDtFTjs8d2lkZT4gMDAzNDs0OzQ7NDtOOzs7OzsKK0ZGMTU7RlVMTFdJRFRIIERJR0lUIEZJVkU7TmQ7MDtFTjs8d2lkZT4gMDAzNTs1OzU7NTtOOzs7OzsKK0ZGMTY7RlVMTFdJRFRIIERJR0lUIFNJWDtOZDswO0VOOzx3aWRlPiAwMDM2OzY7Njs2O047Ozs7OworRkYxNztGVUxMV0lEVEggRElHSVQgU0VWRU47TmQ7MDtFTjs8d2lkZT4gMDAzNzs3Ozc7NztOOzs7OzsKK0ZGMTg7RlVMTFdJRFRIIERJR0lUIEVJR0hUO05kOzA7RU47PHdpZGU+IDAwMzg7ODs4Ozg7Tjs7Ozs7CitGRjE5O0ZVTExXSURUSCBESUdJVCBOSU5FO05kOzA7RU47PHdpZGU+IDAwMzk7OTs5Ozk7Tjs7Ozs7CitGRjFBO0ZVTExXSURUSCBDT0xPTjtQbzswO0NTOzx3aWRlPiAwMDNBOzs7O047Ozs7OworRkYxQjtGVUxMV0lEVEggU0VNSUNPTE9OO1BvOzA7T047PHdpZGU+IDAwM0I7Ozs7Tjs7Ozs7CitGRjFDO0ZVTExXSURUSCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzx3aWRlPiAwMDNDOzs7O1k7Ozs7OworRkYxRDtGVUxMV0lEVEggRVFVQUxTIFNJR047U207MDtPTjs8d2lkZT4gMDAzRDs7OztOOzs7OzsKK0ZGMUU7RlVMTFdJRFRIIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0U7Ozs7WTs7Ozs7CitGRjFGO0ZVTExXSURUSCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwM0Y7Ozs7Tjs7Ozs7CitGRjIwO0ZVTExXSURUSCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHdpZGU+IDAwNDA7Ozs7Tjs7Ozs7CitGRjIxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs8d2lkZT4gMDA0MTs7OztOOzs7O0ZGNDE7CitGRjIyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs8d2lkZT4gMDA0Mjs7OztOOzs7O0ZGNDI7CitGRjIzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs8d2lkZT4gMDA0Mzs7OztOOzs7O0ZGNDM7CitGRjI0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs8d2lkZT4gMDA0NDs7OztOOzs7O0ZGNDQ7CitGRjI1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs8d2lkZT4gMDA0NTs7OztOOzs7O0ZGNDU7CitGRjI2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs8d2lkZT4gMDA0Njs7OztOOzs7O0ZGNDY7CitGRjI3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs8d2lkZT4gMDA0Nzs7OztOOzs7O0ZGNDc7CitGRjI4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs8d2lkZT4gMDA0ODs7OztOOzs7O0ZGNDg7CitGRjI5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs8d2lkZT4gMDA0OTs7OztOOzs7O0ZGNDk7CitGRjJBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs8d2lkZT4gMDA0QTs7OztOOzs7O0ZGNEE7CitGRjJCO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs8d2lkZT4gMDA0Qjs7OztOOzs7O0ZGNEI7CitGRjJDO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs8d2lkZT4gMDA0Qzs7OztOOzs7O0ZGNEM7CitGRjJEO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs8d2lkZT4gMDA0RDs7OztOOzs7O0ZGNEQ7CitGRjJFO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs8d2lkZT4gMDA0RTs7OztOOzs7O0ZGNEU7CitGRjJGO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs8d2lkZT4gMDA0Rjs7OztOOzs7O0ZGNEY7CitGRjMwO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs8d2lkZT4gMDA1MDs7OztOOzs7O0ZGNTA7CitGRjMxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs8d2lkZT4gMDA1MTs7OztOOzs7O0ZGNTE7CitGRjMyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs8d2lkZT4gMDA1Mjs7OztOOzs7O0ZGNTI7CitGRjMzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs8d2lkZT4gMDA1Mzs7OztOOzs7O0ZGNTM7CitGRjM0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs8d2lkZT4gMDA1NDs7OztOOzs7O0ZGNTQ7CitGRjM1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs8d2lkZT4gMDA1NTs7OztOOzs7O0ZGNTU7CitGRjM2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs8d2lkZT4gMDA1Njs7OztOOzs7O0ZGNTY7CitGRjM3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs8d2lkZT4gMDA1Nzs7OztOOzs7O0ZGNTc7CitGRjM4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs8d2lkZT4gMDA1ODs7OztOOzs7O0ZGNTg7CitGRjM5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs8d2lkZT4gMDA1OTs7OztOOzs7O0ZGNTk7CitGRjNBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs8d2lkZT4gMDA1QTs7OztOOzs7O0ZGNUE7CitGRjNCO0ZVTExXSURUSCBMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwNUI7Ozs7WTtGVUxMV0lEVEggT1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0M7RlVMTFdJRFRIIFJFVkVSU0UgU09MSURVUztQbzswO09OOzx3aWRlPiAwMDVDOzs7O047RlVMTFdJRFRIIEJBQ0tTTEFTSDs7OzsKK0ZGM0Q7RlVMTFdJRFRIIFJJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwNUQ7Ozs7WTtGVUxMV0lEVEggQ0xPU0lORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0U7RlVMTFdJRFRIIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047PHdpZGU+IDAwNUU7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworRkYzRjtGVUxMV0lEVEggTE9XIExJTkU7UGM7MDtPTjs8d2lkZT4gMDA1Rjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRjQwO0ZVTExXSURUSCBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA2MDs7OztOO0ZVTExXSURUSCBTUEFDSU5HIEdSQVZFOzs7OworRkY0MTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzx3aWRlPiAwMDYxOzs7O047OztGRjIxOztGRjIxCitGRjQyO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7PHdpZGU+IDAwNjI7Ozs7Tjs7O0ZGMjI7O0ZGMjIKK0ZGNDM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs8d2lkZT4gMDA2Mzs7OztOOzs7RkYyMzs7RkYyMworRkY0NDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzx3aWRlPiAwMDY0Ozs7O047OztGRjI0OztGRjI0CitGRjQ1O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7PHdpZGU+IDAwNjU7Ozs7Tjs7O0ZGMjU7O0ZGMjUKK0ZGNDY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs8d2lkZT4gMDA2Njs7OztOOzs7RkYyNjs7RkYyNgorRkY0NztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzx3aWRlPiAwMDY3Ozs7O047OztGRjI3OztGRjI3CitGRjQ4O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7PHdpZGU+IDAwNjg7Ozs7Tjs7O0ZGMjg7O0ZGMjgKK0ZGNDk7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs8d2lkZT4gMDA2OTs7OztOOzs7RkYyOTs7RkYyOQorRkY0QTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzx3aWRlPiAwMDZBOzs7O047OztGRjJBOztGRjJBCitGRjRCO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7PHdpZGU+IDAwNkI7Ozs7Tjs7O0ZGMkI7O0ZGMkIKK0ZGNEM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs8d2lkZT4gMDA2Qzs7OztOOzs7RkYyQzs7RkYyQworRkY0RDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzx3aWRlPiAwMDZEOzs7O047OztGRjJEOztGRjJECitGRjRFO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHdpZGU+IDAwNkU7Ozs7Tjs7O0ZGMkU7O0ZGMkUKK0ZGNEY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs8d2lkZT4gMDA2Rjs7OztOOzs7RkYyRjs7RkYyRgorRkY1MDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzx3aWRlPiAwMDcwOzs7O047OztGRjMwOztGRjMwCitGRjUxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7PHdpZGU+IDAwNzE7Ozs7Tjs7O0ZGMzE7O0ZGMzEKK0ZGNTI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs8d2lkZT4gMDA3Mjs7OztOOzs7RkYzMjs7RkYzMgorRkY1MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzx3aWRlPiAwMDczOzs7O047OztGRjMzOztGRjMzCitGRjU0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7PHdpZGU+IDAwNzQ7Ozs7Tjs7O0ZGMzQ7O0ZGMzQKK0ZGNTU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs8d2lkZT4gMDA3NTs7OztOOzs7RkYzNTs7RkYzNQorRkY1NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzx3aWRlPiAwMDc2Ozs7O047OztGRjM2OztGRjM2CitGRjU3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7PHdpZGU+IDAwNzc7Ozs7Tjs7O0ZGMzc7O0ZGMzcKK0ZGNTg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs8d2lkZT4gMDA3ODs7OztOOzs7RkYzODs7RkYzOAorRkY1OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzx3aWRlPiAwMDc5Ozs7O047OztGRjM5OztGRjM5CitGRjVBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7PHdpZGU+IDAwN0E7Ozs7Tjs7O0ZGM0E7O0ZGM0EKK0ZGNUI7RlVMTFdJRFRIIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx3aWRlPiAwMDdCOzs7O1k7RlVMTFdJRFRIIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZGNUM7RlVMTFdJRFRIIFZFUlRJQ0FMIExJTkU7U207MDtPTjs8d2lkZT4gMDA3Qzs7OztOO0ZVTExXSURUSCBWRVJUSUNBTCBCQVI7Ozs7CitGRjVEO0ZVTExXSURUSCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwN0Q7Ozs7WTtGVUxMV0lEVEggQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1RTtGVUxMV0lEVEggVElMREU7U207MDtPTjs8d2lkZT4gMDA3RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFRJTERFOzs7OworRkY1RjtGVUxMV0lEVEggTEVGVCBXSElURSBQQVJFTlRIRVNJUztQczswO09OOzx3aWRlPiAyOTg1Ozs7O1k7Oyo7OzsKK0ZGNjA7RlVMTFdJRFRIIFJJR0hUIFdISVRFIFBBUkVOVEhFU0lTO1BlOzA7T047PHdpZGU+IDI5ODY7Ozs7WTs7Kjs7OworRkY2MTtIQUxGV0lEVEggSURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047PG5hcnJvdz4gMzAwMjs7OztOO0hBTEZXSURUSCBJREVPR1JBUEhJQyBQRVJJT0Q7Ozs7CitGRjYyO0hBTEZXSURUSCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PG5hcnJvdz4gMzAwQzs7OztZO0hBTEZXSURUSCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkY2MztIQUxGV0lEVEggUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8bmFycm93PiAzMDBEOzs7O1k7SEFMRldJRFRIIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjY0O0hBTEZXSURUSCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxuYXJyb3c+IDMwMDE7Ozs7Tjs7Ozs7CitGRjY1O0hBTEZXSURUSCBLQVRBS0FOQSBNSURETEUgRE9UO1BvOzA7T047PG5hcnJvdz4gMzBGQjs7OztOOzs7OzsKK0ZGNjY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7PG5hcnJvdz4gMzBGMjs7OztOOzs7OzsKK0ZGNjc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs8bmFycm93PiAzMEExOzs7O047Ozs7OworRkY2ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzxuYXJyb3c+IDMwQTM7Ozs7Tjs7Ozs7CitGRjY5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7PG5hcnJvdz4gMzBBNTs7OztOOzs7OzsKK0ZGNkE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs8bmFycm93PiAzMEE3Ozs7O047Ozs7OworRkY2QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzxuYXJyb3c+IDMwQTk7Ozs7Tjs7Ozs7CitGRjZDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTM7Ozs7Tjs7Ozs7CitGRjZEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTU7Ozs7Tjs7Ozs7CitGRjZFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzxuYXJyb3c+IDMwRTc7Ozs7Tjs7Ozs7CitGRjZGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzM7Ozs7Tjs7Ozs7CitGRjcwO0hBTEZXSURUSCBLQVRBS0FOQS1ISVJBR0FOQSBQUk9MT05HRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzBGQzs7OztOOzs7OzsKK0ZGNzE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMEEyOzs7O047Ozs7OworRkY3MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMwQTQ7Ozs7Tjs7Ozs7CitGRjczO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzBBNjs7OztOOzs7OzsKK0ZGNzQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMEE4Ozs7O047Ozs7OworRkY3NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMwQUE7Ozs7Tjs7Ozs7CitGRjc2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzxuYXJyb3c+IDMwQUI7Ozs7Tjs7Ozs7CitGRjc3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzxuYXJyb3c+IDMwQUQ7Ozs7Tjs7Ozs7CitGRjc4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS1U7TG87MDtMOzxuYXJyb3c+IDMwQUY7Ozs7Tjs7Ozs7CitGRjc5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzxuYXJyb3c+IDMwQjE7Ozs7Tjs7Ozs7CitGRjdBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzxuYXJyb3c+IDMwQjM7Ozs7Tjs7Ozs7CitGRjdCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0E7TG87MDtMOzxuYXJyb3c+IDMwQjU7Ozs7Tjs7Ozs7CitGRjdDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzxuYXJyb3c+IDMwQjc7Ozs7Tjs7Ozs7CitGRjdEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzxuYXJyb3c+IDMwQjk7Ozs7Tjs7Ozs7CitGRjdFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0U7TG87MDtMOzxuYXJyb3c+IDMwQkI7Ozs7Tjs7Ozs7CitGRjdGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzxuYXJyb3c+IDMwQkQ7Ozs7Tjs7Ozs7CitGRjgwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzxuYXJyb3c+IDMwQkY7Ozs7Tjs7Ozs7CitGRjgxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEk7TG87MDtMOzxuYXJyb3c+IDMwQzE7Ozs7Tjs7Ozs7CitGRjgyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzQ7Ozs7Tjs7Ozs7CitGRjgzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzxuYXJyb3c+IDMwQzY7Ozs7Tjs7Ozs7CitGRjg0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzxuYXJyb3c+IDMwQzg7Ozs7Tjs7Ozs7CitGRjg1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkE7TG87MDtMOzxuYXJyb3c+IDMwQ0E7Ozs7Tjs7Ozs7CitGRjg2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzxuYXJyb3c+IDMwQ0I7Ozs7Tjs7Ozs7CitGRjg3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzxuYXJyb3c+IDMwQ0M7Ozs7Tjs7Ozs7CitGRjg4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkU7TG87MDtMOzxuYXJyb3c+IDMwQ0Q7Ozs7Tjs7Ozs7CitGRjg5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzxuYXJyb3c+IDMwQ0U7Ozs7Tjs7Ozs7CitGRjhBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzxuYXJyb3c+IDMwQ0Y7Ozs7Tjs7Ozs7CitGRjhCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzxuYXJyb3c+IDMwRDI7Ozs7Tjs7Ozs7CitGRjhDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzxuYXJyb3c+IDMwRDU7Ozs7Tjs7Ozs7CitGRjhEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzxuYXJyb3c+IDMwRDg7Ozs7Tjs7Ozs7CitGRjhFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzxuYXJyb3c+IDMwREI7Ozs7Tjs7Ozs7CitGRjhGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzxuYXJyb3c+IDMwREU7Ozs7Tjs7Ozs7CitGRjkwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUk7TG87MDtMOzxuYXJyb3c+IDMwREY7Ozs7Tjs7Ozs7CitGRjkxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzxuYXJyb3c+IDMwRTA7Ozs7Tjs7Ozs7CitGRjkyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzxuYXJyb3c+IDMwRTE7Ozs7Tjs7Ozs7CitGRjkzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTU87TG87MDtMOzxuYXJyb3c+IDMwRTI7Ozs7Tjs7Ozs7CitGRjk0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTQ7Ozs7Tjs7Ozs7CitGRjk1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTY7Ozs7Tjs7Ozs7CitGRjk2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMwRTg7Ozs7Tjs7Ozs7CitGRjk3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzxuYXJyb3c+IDMwRTk7Ozs7Tjs7Ozs7CitGRjk4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzxuYXJyb3c+IDMwRUE7Ozs7Tjs7Ozs7CitGRjk5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUlU7TG87MDtMOzxuYXJyb3c+IDMwRUI7Ozs7Tjs7Ozs7CitGRjlBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzxuYXJyb3c+IDMwRUM7Ozs7Tjs7Ozs7CitGRjlCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzxuYXJyb3c+IDMwRUQ7Ozs7Tjs7Ozs7CitGRjlDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMwRUY7Ozs7Tjs7Ozs7CitGRjlEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7PG5hcnJvdz4gMzBGMzs7OztOOzs7OzsKK0ZGOUU7SEFMRldJRFRIIEtBVEFLQU5BIFZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDk5Ozs7O047O2hhbGZ3aWR0aCBrYXRha2FuYS1oaXJhZ2FuYSB2b2ljZWQgc291bmQgbWFyazs7OworRkY5RjtIQUxGV0lEVEggS0FUQUtBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzA5QTs7OztOOztoYWxmd2lkdGgga2F0YWthbmEtaGlyYWdhbmEgc2VtaS12b2ljZWQgc291bmQgbWFyazs7OworRkZBMDtIQUxGV0lEVEggSEFOR1VMIEZJTExFUjtMbzswO0w7PG5hcnJvdz4gMzE2NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgQ0FFIE9NOzs7OworRkZBMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CitGRkEyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgR0lZRU9HOzs7OworRkZBMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzMzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworRkZBNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTjtMbzswO0w7PG5hcnJvdz4gMzEzNDs7OztOOzs7OzsKK0ZGQTU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxMzU7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKK0ZGQTY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxMzY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKK0ZGQTc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM3Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRElHRVVEOzs7OworRkZBODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKK0ZGQTk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUw7TG87MDtMOzxuYXJyb3c+IDMxMzk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKK0ZGQUE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTNBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HOzs7OworRkZBQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PG5hcnJvdz4gMzEzQjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworRkZBQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUDtMbzswO0w7PG5hcnJvdz4gMzEzQzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworRkZBRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTNEOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgU0lPUzs7OzsKK0ZGQUU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzEzRTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworRkZBRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTNGOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CitGRkIwO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTQwOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgSElFVUg7Ozs7CitGRkIxO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTQxOzs7O047Ozs7OworRkZCMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCOzs7OworRkZCMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CitGRkI0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworRkZCNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ1Ozs7O047Ozs7OworRkZCNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1NJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworRkZCNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PG5hcnJvdz4gMzE0Nzs7OztOOzs7OzsKK0ZGQjg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKK0ZGQjk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0OTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEpJRVVKOzs7OworRkZCQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8bmFycm93PiAzMTRBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CitGRkJCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtISUVVS0g7TG87MDtMOzxuYXJyb3c+IDMxNEI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CitGRkJDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxNEM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUVVVDs7OzsKK0ZGQkQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzE0RDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworRkZCRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0RTs7OztOOzs7OzsKK0ZGQzI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQTtMbzswO0w7PG5hcnJvdz4gMzE0Rjs7OztOOzs7OzsKK0ZGQzM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxuYXJyb3c+IDMxNTA7Ozs7Tjs7Ozs7CitGRkM0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBO0xvOzA7TDs8bmFycm93PiAzMTUxOzs7O047Ozs7OworRkZDNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxuYXJyb3c+IDMxNTI7Ozs7Tjs7Ozs7CitGRkM2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8bmFycm93PiAzMTUzOzs7O047Ozs7OworRkZDNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMTU0Ozs7O047Ozs7OworRkZDQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxuYXJyb3c+IDMxNTU7Ozs7Tjs7Ozs7CitGRkNCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8bmFycm93PiAzMTU2Ozs7O047Ozs7OworRkZDQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPO0xvOzA7TDs8bmFycm93PiAzMTU3Ozs7O047Ozs7OworRkZDRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzE1ODs7OztOOzs7OzsKK0ZGQ0U7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8bmFycm93PiAzMTU5Ozs7O047Ozs7OworRkZDRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPRTtMbzswO0w7PG5hcnJvdz4gMzE1QTs7OztOOzs7OzsKK0ZGRDI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMxNUI7Ozs7Tjs7Ozs7CitGRkQzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxuYXJyb3c+IDMxNUM7Ozs7Tjs7Ozs7CitGRkQ0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFTztMbzswO0w7PG5hcnJvdz4gMzE1RDs7OztOOzs7OzsKK0ZGRDU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxuYXJyb3c+IDMxNUU7Ozs7Tjs7Ozs7CitGRkQ2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8bmFycm93PiAzMTVGOzs7O047Ozs7OworRkZENztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzE2MDs7OztOOzs7OzsKK0ZGREE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxuYXJyb3c+IDMxNjE7Ozs7Tjs7Ozs7CitGRkRCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8bmFycm93PiAzMTYyOzs7O047Ozs7OworRkZEQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJO0xvOzA7TDs8bmFycm93PiAzMTYzOzs7O047Ozs7OworRkZFMDtGVUxMV0lEVEggQ0VOVCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTI7Ozs7Tjs7Ozs7CitGRkUxO0ZVTExXSURUSCBQT1VORCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTM7Ozs7Tjs7Ozs7CitGRkUyO0ZVTExXSURUSCBOT1QgU0lHTjtTbTswO09OOzx3aWRlPiAwMEFDOzs7O047Ozs7OworRkZFMztGVUxMV0lEVEggTUFDUk9OO1NrOzA7T047PHdpZGU+IDAwQUY7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBNQUNST047Kjs7OworRkZFNDtGVUxMV0lEVEggQlJPS0VOIEJBUjtTbzswO09OOzx3aWRlPiAwMEE2Ozs7O047RlVMTFdJRFRIIEJST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CitGRkU1O0ZVTExXSURUSCBZRU4gU0lHTjtTYzswO0VUOzx3aWRlPiAwMEE1Ozs7O047Ozs7OworRkZFNjtGVUxMV0lEVEggV09OIFNJR047U2M7MDtFVDs8d2lkZT4gMjBBOTs7OztOOzs7OzsKK0ZGRTg7SEFMRldJRFRIIEZPUk1TIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047PG5hcnJvdz4gMjUwMjs7OztOOzs7OzsKK0ZGRTk7SEFMRldJRFRIIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTA7Ozs7Tjs7Ozs7CitGRkVBO0hBTEZXSURUSCBVUFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MTs7OztOOzs7OzsKK0ZGRUI7SEFMRldJRFRIIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkyOzs7O047Ozs7OworRkZFQztIQUxGV0lEVEggRE9XTldBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5Mzs7OztOOzs7OzsKK0ZGRUQ7SEFMRldJRFRIIEJMQUNLIFNRVUFSRTtTbzswO09OOzxuYXJyb3c+IDI1QTA7Ozs7Tjs7Ozs7CitGRkVFO0hBTEZXSURUSCBXSElURSBDSVJDTEU7U287MDtPTjs8bmFycm93PiAyNUNCOzs7O047Ozs7OworRkZGOTtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIEFOQ0hPUjtDZjswO09OOzs7OztOOzs7OzsKK0ZGRkE7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBTRVBBUkFUT1I7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CitGRkZCO0lOVEVSTElORUFSIEFOTk9UQVRJT04gVEVSTUlOQVRPUjtDZjswO09OOzs7OztOOzs7OzsKK0ZGRkM7T0JKRUNUIFJFUExBQ0VNRU5UIENIQVJBQ1RFUjtTbzswO09OOzs7OztOOzs7OzsKK0ZGRkQ7UkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworMTAwMDA7TElORUFSIEIgU1lMTEFCTEUgQjAwOCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwMTtMSU5FQVIgQiBTWUxMQUJMRSBCMDM4IEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDAyO0xJTkVBUiBCIFNZTExBQkxFIEIwMjggSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDM7TElORUFSIEIgU1lMTEFCTEUgQjA2MSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwNDtMSU5FQVIgQiBTWUxMQUJMRSBCMDEwIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDA1O0xJTkVBUiBCIFNZTExBQkxFIEIwMDEgREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDA2O0xJTkVBUiBCIFNZTExBQkxFIEIwNDUgREU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDA3O0xJTkVBUiBCIFNZTExBQkxFIEIwMDcgREk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDA4O0xJTkVBUiBCIFNZTExBQkxFIEIwMTQgRE87TG87MDtMOzs7OztOOzs7OzsKKzEwMDA5O0xJTkVBUiBCIFNZTExBQkxFIEIwNTEgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDBBO0xJTkVBUiBCIFNZTExBQkxFIEIwNTcgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDBCO0xJTkVBUiBCIFNZTExBQkxFIEIwNDYgSkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDBEO0xJTkVBUiBCIFNZTExBQkxFIEIwMzYgSk87TG87MDtMOzs7OztOOzs7OzsKKzEwMDBFO0xJTkVBUiBCIFNZTExBQkxFIEIwNjUgSlU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDBGO0xJTkVBUiBCIFNZTExBQkxFIEIwNzcgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDEwO0xJTkVBUiBCIFNZTExBQkxFIEIwNDQgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDExO0xJTkVBUiBCIFNZTExBQkxFIEIwNjcgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEwMDEyO0xJTkVBUiBCIFNZTExBQkxFIEIwNzAgS087TG87MDtMOzs7OztOOzs7OzsKKzEwMDEzO0xJTkVBUiBCIFNZTExBQkxFIEIwODEgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE0O0xJTkVBUiBCIFNZTExBQkxFIEIwODAgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE1O0xJTkVBUiBCIFNZTExBQkxFIEIwMTMgTUU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE2O0xJTkVBUiBCIFNZTExBQkxFIEIwNzMgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE3O0xJTkVBUiBCIFNZTExBQkxFIEIwMTUgTU87TG87MDtMOzs7OztOOzs7OzsKKzEwMDE4O0xJTkVBUiBCIFNZTExBQkxFIEIwMjMgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE5O0xJTkVBUiBCIFNZTExBQkxFIEIwMDYgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDFBO0xJTkVBUiBCIFNZTExBQkxFIEIwMjQgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDFCO0xJTkVBUiBCIFNZTExBQkxFIEIwMzAgTkk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDFDO0xJTkVBUiBCIFNZTExBQkxFIEIwNTIgTk87TG87MDtMOzs7OztOOzs7OzsKKzEwMDFEO0xJTkVBUiBCIFNZTExBQkxFIEIwNTUgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDFFO0xJTkVBUiBCIFNZTExBQkxFIEIwMDMgUEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDFGO0xJTkVBUiBCIFNZTExBQkxFIEIwNzIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDIwO0xJTkVBUiBCIFNZTExBQkxFIEIwMzkgUEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDIxO0xJTkVBUiBCIFNZTExBQkxFIEIwMTEgUE87TG87MDtMOzs7OztOOzs7OzsKKzEwMDIyO0xJTkVBUiBCIFNZTExBQkxFIEIwNTAgUFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDIzO0xJTkVBUiBCIFNZTExBQkxFIEIwMTYgUUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI0O0xJTkVBUiBCIFNZTExBQkxFIEIwNzggUUU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI1O0xJTkVBUiBCIFNZTExBQkxFIEIwMjEgUUk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI2O0xJTkVBUiBCIFNZTExBQkxFIEIwMzIgUU87TG87MDtMOzs7OztOOzs7OzsKKzEwMDI4O0xJTkVBUiBCIFNZTExBQkxFIEIwNjAgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI5O0xJTkVBUiBCIFNZTExBQkxFIEIwMjcgUkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDJBO0xJTkVBUiBCIFNZTExBQkxFIEIwNTMgUkk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDJCO0xJTkVBUiBCIFNZTExBQkxFIEIwMDIgUk87TG87MDtMOzs7OztOOzs7OzsKKzEwMDJDO0xJTkVBUiBCIFNZTExBQkxFIEIwMjYgUlU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDJEO0xJTkVBUiBCIFNZTExBQkxFIEIwMzEgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDJFO0xJTkVBUiBCIFNZTExBQkxFIEIwMDkgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDJGO0xJTkVBUiBCIFNZTExBQkxFIEIwNDEgU0k7TG87MDtMOzs7OztOOzs7OzsKKzEwMDMwO0xJTkVBUiBCIFNZTExBQkxFIEIwMTIgU087TG87MDtMOzs7OztOOzs7OzsKKzEwMDMxO0xJTkVBUiBCIFNZTExBQkxFIEIwNTggU1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDMyO0xJTkVBUiBCIFNZTExBQkxFIEIwNTkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDMzO0xJTkVBUiBCIFNZTExBQkxFIEIwMDQgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM0O0xJTkVBUiBCIFNZTExBQkxFIEIwMzcgVEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM1O0xJTkVBUiBCIFNZTExBQkxFIEIwMDUgVE87TG87MDtMOzs7OztOOzs7OzsKKzEwMDM2O0xJTkVBUiBCIFNZTExBQkxFIEIwNjkgVFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM3O0xJTkVBUiBCIFNZTExBQkxFIEIwNTQgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM4O0xJTkVBUiBCIFNZTExBQkxFIEIwNzUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM5O0xJTkVBUiBCIFNZTExBQkxFIEIwNDAgV0k7TG87MDtMOzs7OztOOzs7OzsKKzEwMDNBO0xJTkVBUiBCIFNZTExBQkxFIEIwNDIgV087TG87MDtMOzs7OztOOzs7OzsKKzEwMDNDO0xJTkVBUiBCIFNZTExBQkxFIEIwMTcgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDNEO0xJTkVBUiBCIFNZTExBQkxFIEIwNzQgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDNGO0xJTkVBUiBCIFNZTExBQkxFIEIwMjAgWk87TG87MDtMOzs7OztOOzs7OzsKKzEwMDQwO0xJTkVBUiBCIFNZTExBQkxFIEIwMjUgQTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQxO0xJTkVBUiBCIFNZTExBQkxFIEIwNDMgQTM7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQyO0xJTkVBUiBCIFNZTExBQkxFIEIwODUgQVU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQzO0xJTkVBUiBCIFNZTExBQkxFIEIwNzEgRFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0NDtMSU5FQVIgQiBTWUxMQUJMRSBCMDkwIERXTztMbzswO0w7Ozs7O047Ozs7OworMTAwNDU7TElORUFSIEIgU1lMTEFCTEUgQjA0OCBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ2O0xJTkVBUiBCIFNZTExBQkxFIEIwMjkgUFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0NztMSU5FQVIgQiBTWUxMQUJMRSBCMDYyIFBURTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDg7TElORUFSIEIgU1lMTEFCTEUgQjA3NiBSQTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ5O0xJTkVBUiBCIFNZTExBQkxFIEIwMzMgUkEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0QTtMSU5FQVIgQiBTWUxMQUJMRSBCMDY4IFJPMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNEI7TElORUFSIEIgU1lMTEFCTEUgQjA2NiBUQTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDRDO0xJTkVBUiBCIFNZTExBQkxFIEIwODcgVFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0RDtMSU5FQVIgQiBTWUxMQUJMRSBCMDkxIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTAwNTA7TElORUFSIEIgU1lNQk9MIEIwMTg7TG87MDtMOzs7OztOOzs7OzsKKzEwMDUxO0xJTkVBUiBCIFNZTUJPTCBCMDE5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1MjtMSU5FQVIgQiBTWU1CT0wgQjAyMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNTM7TElORUFSIEIgU1lNQk9MIEIwMzQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU0O0xJTkVBUiBCIFNZTUJPTCBCMDQ3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1NTtMSU5FQVIgQiBTWU1CT0wgQjA0OTtMbzswO0w7Ozs7O047Ozs7OworMTAwNTY7TElORUFSIEIgU1lNQk9MIEIwNTY7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU3O0xJTkVBUiBCIFNZTUJPTCBCMDYzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1ODtMSU5FQVIgQiBTWU1CT0wgQjA2NDtMbzswO0w7Ozs7O047Ozs7OworMTAwNTk7TElORUFSIEIgU1lNQk9MIEIwNzk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDVBO0xJTkVBUiBCIFNZTUJPTCBCMDgyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1QjtMSU5FQVIgQiBTWU1CT0wgQjA4MztMbzswO0w7Ozs7O047Ozs7OworMTAwNUM7TElORUFSIEIgU1lNQk9MIEIwODY7TG87MDtMOzs7OztOOzs7OzsKKzEwMDVEO0xJTkVBUiBCIFNZTUJPTCBCMDg5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4MDtMSU5FQVIgQiBJREVPR1JBTSBCMTAwIE1BTjtMbzswO0w7Ozs7O047Ozs7OworMTAwODE7TElORUFSIEIgSURFT0dSQU0gQjEwMiBXT01BTjtMbzswO0w7Ozs7O047Ozs7OworMTAwODI7TElORUFSIEIgSURFT0dSQU0gQjEwNCBERUVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4MztMSU5FQVIgQiBJREVPR1JBTSBCMTA1IEVRVUlEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4NDtMSU5FQVIgQiBJREVPR1JBTSBCMTA1RiBNQVJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4NTtMSU5FQVIgQiBJREVPR1JBTSBCMTA1TSBTVEFMTElPTjtMbzswO0w7Ozs7O047Ozs7OworMTAwODY7TElORUFSIEIgSURFT0dSQU0gQjEwNkYgRVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4NztMSU5FQVIgQiBJREVPR1JBTSBCMTA2TSBSQU07TG87MDtMOzs7OztOOzs7OzsKKzEwMDg4O0xJTkVBUiBCIElERU9HUkFNIEIxMDdGIFNIRS1HT0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4OTtMSU5FQVIgQiBJREVPR1JBTSBCMTA3TSBIRS1HT0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4QTtMSU5FQVIgQiBJREVPR1JBTSBCMTA4RiBTT1c7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhCO0xJTkVBUiBCIElERU9HUkFNIEIxMDhNIEJPQVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhDO0xJTkVBUiBCIElERU9HUkFNIEIxMDlGIENPVztMbzswO0w7Ozs7O047Ozs7OworMTAwOEQ7TElORUFSIEIgSURFT0dSQU0gQjEwOU0gQlVMTDtMbzswO0w7Ozs7O047Ozs7OworMTAwOEU7TElORUFSIEIgSURFT0dSQU0gQjEyMCBXSEVBVDtMbzswO0w7Ozs7O047Ozs7OworMTAwOEY7TElORUFSIEIgSURFT0dSQU0gQjEyMSBCQVJMRVk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDkwO0xJTkVBUiBCIElERU9HUkFNIEIxMjIgT0xJVkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDkxO0xJTkVBUiBCIElERU9HUkFNIEIxMjMgU1BJQ0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDkyO0xJTkVBUiBCIElERU9HUkFNIEIxMjUgQ1lQRVJVUztMbzswO0w7Ozs7O047Ozs7OworMTAwOTM7TElORUFSIEIgTU9OT0dSQU0gQjEyNyBLQVBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5NDtMSU5FQVIgQiBNT05PR1JBTSBCMTI4IEtBTkFLTztMbzswO0w7Ozs7O047Ozs7OworMTAwOTU7TElORUFSIEIgSURFT0dSQU0gQjEzMCBPSUw7TG87MDtMOzs7OztOOzs7OzsKKzEwMDk2O0xJTkVBUiBCIElERU9HUkFNIEIxMzEgV0lORTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTc7TElORUFSIEIgSURFT0dSQU0gQjEzMjtMbzswO0w7Ozs7O047Ozs7OworMTAwOTg7TElORUFSIEIgTU9OT0dSQU0gQjEzMyBBUkVQQTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTk7TElORUFSIEIgTU9OT0dSQU0gQjEzNSBNRVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5QTtMSU5FQVIgQiBJREVPR1JBTSBCMTQwIEJST05aRTtMbzswO0w7Ozs7O047Ozs7OworMTAwOUI7TElORUFSIEIgSURFT0dSQU0gQjE0MSBHT0xEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5QztMSU5FQVIgQiBJREVPR1JBTSBCMTQyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5RDtMSU5FQVIgQiBJREVPR1JBTSBCMTQ1IFdPT0w7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlFO0xJTkVBUiBCIElERU9HUkFNIEIxNDY7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlGO0xJTkVBUiBCIElERU9HUkFNIEIxNTA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEEwO0xJTkVBUiBCIElERU9HUkFNIEIxNTEgSE9STjtMbzswO0w7Ozs7O047Ozs7OworMTAwQTE7TElORUFSIEIgSURFT0dSQU0gQjE1MjtMbzswO0w7Ozs7O047Ozs7OworMTAwQTI7TElORUFSIEIgSURFT0dSQU0gQjE1MztMbzswO0w7Ozs7O047Ozs7OworMTAwQTM7TElORUFSIEIgSURFT0dSQU0gQjE1NDtMbzswO0w7Ozs7O047Ozs7OworMTAwQTQ7TElORUFSIEIgTU9OT0dSQU0gQjE1NiBUVVJPMjtMbzswO0w7Ozs7O047Ozs7OworMTAwQTU7TElORUFSIEIgSURFT0dSQU0gQjE1NztMbzswO0w7Ozs7O047Ozs7OworMTAwQTY7TElORUFSIEIgSURFT0dSQU0gQjE1ODtMbzswO0w7Ozs7O047Ozs7OworMTAwQTc7TElORUFSIEIgSURFT0dSQU0gQjE1OSBDTE9USDtMbzswO0w7Ozs7O047Ozs7OworMTAwQTg7TElORUFSIEIgSURFT0dSQU0gQjE2MDtMbzswO0w7Ozs7O047Ozs7OworMTAwQTk7TElORUFSIEIgSURFT0dSQU0gQjE2MTtMbzswO0w7Ozs7O047Ozs7OworMTAwQUE7TElORUFSIEIgSURFT0dSQU0gQjE2MiBHQVJNRU5UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBQjtMSU5FQVIgQiBJREVPR1JBTSBCMTYzIEFSTU9VUjtMbzswO0w7Ozs7O047Ozs7OworMTAwQUM7TElORUFSIEIgSURFT0dSQU0gQjE2NDtMbzswO0w7Ozs7O047Ozs7OworMTAwQUQ7TElORUFSIEIgSURFT0dSQU0gQjE2NTtMbzswO0w7Ozs7O047Ozs7OworMTAwQUU7TElORUFSIEIgSURFT0dSQU0gQjE2NjtMbzswO0w7Ozs7O047Ozs7OworMTAwQUY7TElORUFSIEIgSURFT0dSQU0gQjE2NztMbzswO0w7Ozs7O047Ozs7OworMTAwQjA7TElORUFSIEIgSURFT0dSQU0gQjE2ODtMbzswO0w7Ozs7O047Ozs7OworMTAwQjE7TElORUFSIEIgSURFT0dSQU0gQjE2OTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjI7TElORUFSIEIgSURFT0dSQU0gQjE3MDtMbzswO0w7Ozs7O047Ozs7OworMTAwQjM7TElORUFSIEIgSURFT0dSQU0gQjE3MTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjQ7TElORUFSIEIgSURFT0dSQU0gQjE3MjtMbzswO0w7Ozs7O047Ozs7OworMTAwQjU7TElORUFSIEIgSURFT0dSQU0gQjE3MyBNT05USDtMbzswO0w7Ozs7O047Ozs7OworMTAwQjY7TElORUFSIEIgSURFT0dSQU0gQjE3NDtMbzswO0w7Ozs7O047Ozs7OworMTAwQjc7TElORUFSIEIgSURFT0dSQU0gQjE3NiBUUkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCODtMSU5FQVIgQiBJREVPR1JBTSBCMTc3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCOTtMSU5FQVIgQiBJREVPR1JBTSBCMTc4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCQTtMSU5FQVIgQiBJREVPR1JBTSBCMTc5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCQjtMSU5FQVIgQiBJREVPR1JBTSBCMTgwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCQztMSU5FQVIgQiBJREVPR1JBTSBCMTgxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCRDtMSU5FQVIgQiBJREVPR1JBTSBCMTgyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCRTtMSU5FQVIgQiBJREVPR1JBTSBCMTgzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCRjtMSU5FQVIgQiBJREVPR1JBTSBCMTg0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDMDtMSU5FQVIgQiBJREVPR1JBTSBCMTg1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDMTtMSU5FQVIgQiBJREVPR1JBTSBCMTg5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDMjtMSU5FQVIgQiBJREVPR1JBTSBCMTkwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDMztMSU5FQVIgQiBJREVPR1JBTSBCMTkxIEhFTE1FVDtMbzswO0w7Ozs7O047Ozs7OworMTAwQzQ7TElORUFSIEIgSURFT0dSQU0gQjIyMCBGT09UU1RPT0w7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM1O0xJTkVBUiBCIElERU9HUkFNIEIyMjUgQkFUSFRVQjtMbzswO0w7Ozs7O047Ozs7OworMTAwQzY7TElORUFSIEIgSURFT0dSQU0gQjIzMCBTUEVBUjtMbzswO0w7Ozs7O047Ozs7OworMTAwQzc7TElORUFSIEIgSURFT0dSQU0gQjIzMSBBUlJPVztMbzswO0w7Ozs7O047Ozs7OworMTAwQzg7TElORUFSIEIgSURFT0dSQU0gQjIzMjtMbzswO0w7Ozs7O047Ozs7OworMTAwQzk7TElORUFSIEIgSURFT0dSQU0gQjIzMyBTV09SRDtMbzswO0w7Ozs7O047O3B1Zzs7OworMTAwQ0E7TElORUFSIEIgSURFT0dSQU0gQjIzNDtMbzswO0w7Ozs7O047Ozs7OworMTAwQ0I7TElORUFSIEIgSURFT0dSQU0gQjIzNjtMbzswO0w7Ozs7O047O2d1cDs7OworMTAwQ0M7TElORUFSIEIgSURFT0dSQU0gQjI0MCBXSEVFTEVEIENIQVJJT1Q7TG87MDtMOzs7OztOOzs7OzsKKzEwMENEO0xJTkVBUiBCIElERU9HUkFNIEIyNDEgQ0hBUklPVDtMbzswO0w7Ozs7O047Ozs7OworMTAwQ0U7TElORUFSIEIgSURFT0dSQU0gQjI0MiBDSEFSSU9UIEZSQU1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDRjtMSU5FQVIgQiBJREVPR1JBTSBCMjQzIFdIRUVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEMDtMSU5FQVIgQiBJREVPR1JBTSBCMjQ1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEMTtMSU5FQVIgQiBJREVPR1JBTSBCMjQ2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEMjtMSU5FQVIgQiBNT05PR1JBTSBCMjQ3IERJUFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEMztMSU5FQVIgQiBJREVPR1JBTSBCMjQ4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBENDtMSU5FQVIgQiBJREVPR1JBTSBCMjQ5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBENTtMSU5FQVIgQiBJREVPR1JBTSBCMjUxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBENjtMSU5FQVIgQiBJREVPR1JBTSBCMjUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBENztMSU5FQVIgQiBJREVPR1JBTSBCMjUzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEODtMSU5FQVIgQiBJREVPR1JBTSBCMjU0IERBUlQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ5O0xJTkVBUiBCIElERU9HUkFNIEIyNTU7TG87MDtMOzs7OztOOzs7OzsKKzEwMERBO0xJTkVBUiBCIElERU9HUkFNIEIyNTY7TG87MDtMOzs7OztOOzs7OzsKKzEwMERCO0xJTkVBUiBCIElERU9HUkFNIEIyNTc7TG87MDtMOzs7OztOOzs7OzsKKzEwMERDO0xJTkVBUiBCIElERU9HUkFNIEIyNTg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEREO0xJTkVBUiBCIElERU9HUkFNIEIyNTk7TG87MDtMOzs7OztOOzs7OzsKKzEwMERFO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMTU1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBERjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwMDtMbzswO0w7Ozs7O047Ozs7OworMTAwRTA7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEUxO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjAyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFMjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwMztMbzswO0w7Ozs7O047Ozs7OworMTAwRTM7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU0O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFNTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwNjtMbzswO0w7Ozs7O047Ozs7OworMTAwRTY7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU3O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFODtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwOTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTk7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVBO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjExO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFQjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxMjtMbzswO0w7Ozs7O047Ozs7OworMTAwRUM7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTM7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVEO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFRTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxNTtMbzswO0w7Ozs7O047Ozs7OworMTAwRUY7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTY7TG87MDtMOzs7OztOOzs7OzsKKzEwMEYwO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGMTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxODtMbzswO0w7Ozs7O047Ozs7OworMTAwRjI7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEYzO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjIxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGNDtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyMjtMbzswO0w7Ozs7O047Ozs7OworMTAwRjU7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjY7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY2O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjI3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGNztMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyODtMbzswO0w7Ozs7O047Ozs7OworMTAwRjg7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY5O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjUwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGQTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjMwNTtMbzswO0w7Ozs7O047Ozs7OworMTAxMDA7QUVHRUFOIFdPUkQgU0VQQVJBVE9SIExJTkU7UG87MDtMOzs7OztOOzs7OzsKKzEwMTAxO0FFR0VBTiBXT1JEIFNFUEFSQVRPUiBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxMDEwMjtBRUdFQU4gQ0hFQ0sgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMTAxMDc7QUVHRUFOIE5VTUJFUiBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CisxMDEwODtBRUdFQU4gTlVNQkVSIFRXTztObzswO0w7Ozs7MjtOOzs7OzsKKzEwMTA5O0FFR0VBTiBOVU1CRVIgVEhSRUU7Tm87MDtMOzs7OzM7Tjs7Ozs7CisxMDEwQTtBRUdFQU4gTlVNQkVSIEZPVVI7Tm87MDtMOzs7OzQ7Tjs7Ozs7CisxMDEwQjtBRUdFQU4gTlVNQkVSIEZJVkU7Tm87MDtMOzs7OzU7Tjs7Ozs7CisxMDEwQztBRUdFQU4gTlVNQkVSIFNJWDtObzswO0w7Ozs7NjtOOzs7OzsKKzEwMTBEO0FFR0VBTiBOVU1CRVIgU0VWRU47Tm87MDtMOzs7Ozc7Tjs7Ozs7CisxMDEwRTtBRUdFQU4gTlVNQkVSIEVJR0hUO05vOzA7TDs7Ozs4O047Ozs7OworMTAxMEY7QUVHRUFOIE5VTUJFUiBOSU5FO05vOzA7TDs7Ozs5O047Ozs7OworMTAxMTA7QUVHRUFOIE5VTUJFUiBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMTAxMTE7QUVHRUFOIE5VTUJFUiBUV0VOVFk7Tm87MDtMOzs7OzIwO047Ozs7OworMTAxMTI7QUVHRUFOIE5VTUJFUiBUSElSVFk7Tm87MDtMOzs7OzMwO047Ozs7OworMTAxMTM7QUVHRUFOIE5VTUJFUiBGT1JUWTtObzswO0w7Ozs7NDA7Tjs7Ozs7CisxMDExNDtBRUdFQU4gTlVNQkVSIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEwMTE1O0FFR0VBTiBOVU1CRVIgU0lYVFk7Tm87MDtMOzs7OzYwO047Ozs7OworMTAxMTY7QUVHRUFOIE5VTUJFUiBTRVZFTlRZO05vOzA7TDs7Ozs3MDtOOzs7OzsKKzEwMTE3O0FFR0VBTiBOVU1CRVIgRUlHSFRZO05vOzA7TDs7Ozs4MDtOOzs7OzsKKzEwMTE4O0FFR0VBTiBOVU1CRVIgTklORVRZO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzEwMTE5O0FFR0VBTiBOVU1CRVIgT05FIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzEwMTFBO0FFR0VBTiBOVU1CRVIgVFdPIEhVTkRSRUQ7Tm87MDtMOzs7OzIwMDtOOzs7OzsKKzEwMTFCO0FFR0VBTiBOVU1CRVIgVEhSRUUgSFVORFJFRDtObzswO0w7Ozs7MzAwO047Ozs7OworMTAxMUM7QUVHRUFOIE5VTUJFUiBGT1VSIEhVTkRSRUQ7Tm87MDtMOzs7OzQwMDtOOzs7OzsKKzEwMTFEO0FFR0VBTiBOVU1CRVIgRklWRSBIVU5EUkVEO05vOzA7TDs7Ozs1MDA7Tjs7Ozs7CisxMDExRTtBRUdFQU4gTlVNQkVSIFNJWCBIVU5EUkVEO05vOzA7TDs7Ozs2MDA7Tjs7Ozs7CisxMDExRjtBRUdFQU4gTlVNQkVSIFNFVkVOIEhVTkRSRUQ7Tm87MDtMOzs7OzcwMDtOOzs7OzsKKzEwMTIwO0FFR0VBTiBOVU1CRVIgRUlHSFQgSFVORFJFRDtObzswO0w7Ozs7ODAwO047Ozs7OworMTAxMjE7QUVHRUFOIE5VTUJFUiBOSU5FIEhVTkRSRUQ7Tm87MDtMOzs7OzkwMDtOOzs7OzsKKzEwMTIyO0FFR0VBTiBOVU1CRVIgT05FIFRIT1VTQU5EO05vOzA7TDs7OzsxMDAwO047Ozs7OworMTAxMjM7QUVHRUFOIE5VTUJFUiBUV08gVEhPVVNBTkQ7Tm87MDtMOzs7OzIwMDA7Tjs7Ozs7CisxMDEyNDtBRUdFQU4gTlVNQkVSIFRIUkVFIFRIT1VTQU5EO05vOzA7TDs7OzszMDAwO047Ozs7OworMTAxMjU7QUVHRUFOIE5VTUJFUiBGT1VSIFRIT1VTQU5EO05vOzA7TDs7Ozs0MDAwO047Ozs7OworMTAxMjY7QUVHRUFOIE5VTUJFUiBGSVZFIFRIT1VTQU5EO05vOzA7TDs7Ozs1MDAwO047Ozs7OworMTAxMjc7QUVHRUFOIE5VTUJFUiBTSVggVEhPVVNBTkQ7Tm87MDtMOzs7OzYwMDA7Tjs7Ozs7CisxMDEyODtBRUdFQU4gTlVNQkVSIFNFVkVOIFRIT1VTQU5EO05vOzA7TDs7Ozs3MDAwO047Ozs7OworMTAxMjk7QUVHRUFOIE5VTUJFUiBFSUdIVCBUSE9VU0FORDtObzswO0w7Ozs7ODAwMDtOOzs7OzsKKzEwMTJBO0FFR0VBTiBOVU1CRVIgTklORSBUSE9VU0FORDtObzswO0w7Ozs7OTAwMDtOOzs7OzsKKzEwMTJCO0FFR0VBTiBOVU1CRVIgVEVOIFRIT1VTQU5EO05vOzA7TDs7OzsxMDAwMDtOOzs7OzsKKzEwMTJDO0FFR0VBTiBOVU1CRVIgVFdFTlRZIFRIT1VTQU5EO05vOzA7TDs7OzsyMDAwMDtOOzs7OzsKKzEwMTJEO0FFR0VBTiBOVU1CRVIgVEhJUlRZIFRIT1VTQU5EO05vOzA7TDs7OzszMDAwMDtOOzs7OzsKKzEwMTJFO0FFR0VBTiBOVU1CRVIgRk9SVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzQwMDAwO047Ozs7OworMTAxMkY7QUVHRUFOIE5VTUJFUiBGSUZUWSBUSE9VU0FORDtObzswO0w7Ozs7NTAwMDA7Tjs7Ozs7CisxMDEzMDtBRUdFQU4gTlVNQkVSIFNJWFRZIFRIT1VTQU5EO05vOzA7TDs7Ozs2MDAwMDtOOzs7OzsKKzEwMTMxO0FFR0VBTiBOVU1CRVIgU0VWRU5UWSBUSE9VU0FORDtObzswO0w7Ozs7NzAwMDA7Tjs7Ozs7CisxMDEzMjtBRUdFQU4gTlVNQkVSIEVJR0hUWSBUSE9VU0FORDtObzswO0w7Ozs7ODAwMDA7Tjs7Ozs7CisxMDEzMztBRUdFQU4gTlVNQkVSIE5JTkVUWSBUSE9VU0FORDtObzswO0w7Ozs7OTAwMDA7Tjs7Ozs7CisxMDEzNztBRUdFQU4gV0VJR0hUIEJBU0UgVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxMzg7QUVHRUFOIFdFSUdIVCBGSVJTVCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzOTtBRUdFQU4gV0VJR0hUIFNFQ09ORCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzQTtBRUdFQU4gV0VJR0hUIFRISVJEIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNCO0FFR0VBTiBXRUlHSFQgRk9VUlRIIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNDO0FFR0VBTiBEUlkgTUVBU1VSRSBGSVJTVCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzRDtBRUdFQU4gTElRVUlEIE1FQVNVUkUgRklSU1QgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0U7QUVHRUFOIE1FQVNVUkUgU0VDT05EIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNGO0FFR0VBTiBNRUFTVVJFIFRISVJEIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTQwO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIFFVQVJURVI7Tmw7MDtPTjs7OzsxLzQ7Tjs7Ozs7CisxMDE0MTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBIQUxGO05sOzA7T047Ozs7MS8yO047Ozs7OworMTAxNDI7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgRFJBQ0hNQTtObDswO09OOzs7OzE7Tjs7Ozs7CisxMDE0MztHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkU7Tmw7MDtPTjs7Ozs1O047Ozs7OworMTAxNDQ7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSUZUWTtObDswO09OOzs7OzUwO047Ozs7OworMTAxNDU7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE0NjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgVEhPVVNBTkQ7Tmw7MDtPTjs7Ozs1MDAwO047Ozs7OworMTAxNDc7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSUZUWSBUSE9VU0FORDtObDswO09OOzs7OzUwMDAwO047Ozs7OworMTAxNDg7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIFRBTEVOVFM7Tmw7MDtPTjs7Ozs1O047Ozs7OworMTAxNDk7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBURU4gVEFMRU5UUztObDswO09OOzs7OzEwO047Ozs7OworMTAxNEE7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSUZUWSBUQUxFTlRTO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE0QjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBIVU5EUkVEIFRBTEVOVFM7Tmw7MDtPTjs7OzsxMDA7Tjs7Ozs7CisxMDE0QztHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgSFVORFJFRCBUQUxFTlRTO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNEQ7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgVEhPVVNBTkQgVEFMRU5UUztObDswO09OOzs7OzEwMDA7Tjs7Ozs7CisxMDE0RTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgVEhPVVNBTkQgVEFMRU5UUztObDswO09OOzs7OzUwMDA7Tjs7Ozs7CisxMDE0RjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgU1RBVEVSUztObDswO09OOzs7OzU7Tjs7Ozs7CisxMDE1MDtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIFRFTiBTVEFURVJTO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE1MTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJRlRZIFNUQVRFUlM7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTUyO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIEhVTkRSRUQgU1RBVEVSUztObDswO09OOzs7OzEwMDtOOzs7OzsKKzEwMTUzO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBIVU5EUkVEIFNUQVRFUlM7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE1NDtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBUSE9VU0FORCBTVEFURVJTO05sOzA7T047Ozs7MTAwMDtOOzs7OzsKKzEwMTU1O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgVEVOIFRIT1VTQU5EIFNUQVRFUlM7Tmw7MDtPTjs7OzsxMDAwMDtOOzs7OzsKKzEwMTU2O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklGVFkgVEhPVVNBTkQgU1RBVEVSUztObDswO09OOzs7OzUwMDAwO047Ozs7OworMTAxNTc7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBURU4gTU5BUztObDswO09OOzs7OzEwO047Ozs7OworMTAxNTg7R1JFRUsgQUNST1BIT05JQyBIRVJBRVVNIE9ORSBQTEVUSFJPTjtObDswO09OOzs7OzE7Tjs7Ozs7CisxMDE1OTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIE9ORTtObDswO09OOzs7OzE7Tjs7Ozs7CisxMDE1QTtHUkVFSyBBQ1JPUEhPTklDIEhFUk1JT05JQU4gT05FO05sOzA7T047Ozs7MTtOOzs7OzsKKzEwMTVCO0dSRUVLIEFDUk9QSE9OSUMgRVBJREFVUkVBTiBUV087Tmw7MDtPTjs7OzsyO047Ozs7OworMTAxNUM7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBUV087Tmw7MDtPTjs7OzsyO047Ozs7OworMTAxNUQ7R1JFRUsgQUNST1BIT05JQyBDWVJFTkFJQyBUV08gRFJBQ0hNQVM7Tmw7MDtPTjs7OzsyO047Ozs7OworMTAxNUU7R1JFRUsgQUNST1BIT05JQyBFUElEQVVSRUFOIFRXTyBEUkFDSE1BUztObDswO09OOzs7OzI7Tjs7Ozs7CisxMDE1RjtHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gRklWRTtObDswO09OOzs7OzU7Tjs7Ozs7CisxMDE2MDtHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gVEVOO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE2MTtHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gVEVOIEFMVEVSTkFURSBGT1JNO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE2MjtHUkVFSyBBQ1JPUEhPTklDIEhFUk1JT05JQU4gVEVOO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE2MztHUkVFSyBBQ1JPUEhPTklDIE1FU1NFTklBTiBURU47Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTY0O0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gVEVOO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE2NTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIFRISVJUWTtObDswO09OOzs7OzMwO047Ozs7OworMTAxNjY7R1JFRUsgQUNST1BIT05JQyBUUk9FWkVOSUFOIEZJRlRZO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE2NztHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gRklGVFkgQUxURVJOQVRFIEZPUk07Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTY4O0dSRUVLIEFDUk9QSE9OSUMgSEVSTUlPTklBTiBGSUZUWTtObDswO09OOzs7OzUwO047Ozs7OworMTAxNjk7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBGSUZUWTtObDswO09OOzs7OzUwO047Ozs7OworMTAxNkE7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBPTkUgSFVORFJFRDtObDswO09OOzs7OzEwMDtOOzs7OzsKKzEwMTZCO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gVEhSRUUgSFVORFJFRDtObDswO09OOzs7OzMwMDtOOzs7OzsKKzEwMTZDO0dSRUVLIEFDUk9QSE9OSUMgRVBJREFVUkVBTiBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE2RDtHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gRklWRSBIVU5EUkVEO05sOzA7T047Ozs7NTAwO047Ozs7OworMTAxNkU7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE2RjtHUkVFSyBBQ1JPUEhPTklDIENBUllTVElBTiBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE3MDtHUkVFSyBBQ1JPUEhPTklDIE5BWElBTiBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE3MTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIE9ORSBUSE9VU0FORDtObDswO09OOzs7OzEwMDA7Tjs7Ozs7CisxMDE3MjtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIEZJVkUgVEhPVVNBTkQ7Tmw7MDtPTjs7Ozs1MDAwO047Ozs7OworMTAxNzM7R1JFRUsgQUNST1BIT05JQyBERUxQSElDIEZJVkUgTU5BUztObDswO09OOzs7OzU7Tjs7Ozs7CisxMDE3NDtHUkVFSyBBQ1JPUEhPTklDIFNUUkFUSUFOIEZJRlRZIE1OQVM7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTc1O0dSRUVLIE9ORSBIQUxGIFNJR047Tm87MDtPTjs7OzsxLzI7Tjs7Ozs7CisxMDE3NjtHUkVFSyBPTkUgSEFMRiBTSUdOIEFMVEVSTkFURSBGT1JNO05vOzA7T047Ozs7MS8yO047Ozs7OworMTAxNzc7R1JFRUsgVFdPIFRISVJEUyBTSUdOO05vOzA7T047Ozs7Mi8zO047Ozs7OworMTAxNzg7R1JFRUsgVEhSRUUgUVVBUlRFUlMgU0lHTjtObzswO09OOzs7OzMvNDtOOzs7OzsKKzEwMTc5O0dSRUVLIFlFQVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdBO0dSRUVLIFRBTEVOVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0I7R1JFRUsgRFJBQ0hNQSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0M7R1JFRUsgT0JPTCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0Q7R1JFRUsgVFdPIE9CT0xTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3RTtHUkVFSyBUSFJFRSBPQk9MUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0Y7R1JFRUsgRk9VUiBPQk9MUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODA7R1JFRUsgRklWRSBPQk9MUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODE7R1JFRUsgTUVUUkVURVMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTgyO0dSRUVLIEtZQVRIT1MgQkFTRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODM7R1JFRUsgTElUUkEgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg0O0dSRUVLIE9VTktJQSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODU7R1JFRUsgWEVTVEVTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4NjtHUkVFSyBBUlRBQkUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg3O0dSRUVLIEFST1VSQSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODg7R1JFRUsgR1JBTU1BIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4OTtHUkVFSyBUUllCTElPTiBCQVNFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4QTtHUkVFSyBaRVJPIFNJR047Tm87MDtPTjs7OzswO047Ozs7OworMTAzMDA7T0xEIElUQUxJQyBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDE7T0xEIElUQUxJQyBMRVRURVIgQkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzAyO09MRCBJVEFMSUMgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwMztPTEQgSVRBTElDIExFVFRFUiBERTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDQ7T0xEIElUQUxJQyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDU7T0xEIElUQUxJQyBMRVRURVIgVkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA2O09MRCBJVEFMSUMgTEVUVEVSIFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNztPTEQgSVRBTElDIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDg7T0xEIElUQUxJQyBMRVRURVIgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwOTtPTEQgSVRBTElDIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwQTtPTEQgSVRBTElDIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMEI7T0xEIElUQUxJQyBMRVRURVIgRUw7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBDO09MRCBJVEFMSUMgTEVUVEVSIEVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwRDtPTEQgSVRBTElDIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMTAzMEU7T0xEIElUQUxJQyBMRVRURVIgRVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwRjtPTEQgSVRBTElDIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7RmFsaXNjYW47OzsKKzEwMzEwO09MRCBJVEFMSUMgTEVUVEVSIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxMTtPTEQgSVRBTElDIExFVFRFUiBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzEyO09MRCBJVEFMSUMgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxMztPTEQgSVRBTElDIExFVFRFUiBFUjtMbzswO0w7Ozs7O047Ozs7OworMTAzMTQ7T0xEIElUQUxJQyBMRVRURVIgRVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE1O09MRCBJVEFMSUMgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNjtPTEQgSVRBTElDIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNztPTEQgSVRBTElDIExFVFRFUiBFS1M7TG87MDtMOzs7OztOOztGYWxpc2Nhbjs7OworMTAzMTg7T0xEIElUQUxJQyBMRVRURVIgUEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxOTtPTEQgSVRBTElDIExFVFRFUiBLSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzFBO09MRCBJVEFMSUMgTEVUVEVSIEVGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxQjtPTEQgSVRBTElDIExFVFRFUiBFUlM7TG87MDtMOzs7OztOOztVbWJyaWFuOzs7CisxMDMxQztPTEQgSVRBTElDIExFVFRFUiBDSEU7TG87MDtMOzs7OztOOztVbWJyaWFuOzs7CisxMDMxRDtPTEQgSVRBTElDIExFVFRFUiBJSTtMbzswO0w7Ozs7O047O09zY2FuOzs7CisxMDMxRTtPTEQgSVRBTElDIExFVFRFUiBVVTtMbzswO0w7Ozs7O047O09zY2FuOzs7CisxMDMyMDtPTEQgSVRBTElDIE5VTUVSQUwgT05FO05vOzA7TDs7OzsxO047Ozs7OworMTAzMjE7T0xEIElUQUxJQyBOVU1FUkFMIEZJVkU7Tm87MDtMOzs7OzU7Tjs7Ozs7CisxMDMyMjtPTEQgSVRBTElDIE5VTUVSQUwgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEwMzIzO09MRCBJVEFMSUMgTlVNRVJBTCBGSUZUWTtObzswO0w7Ozs7NTA7Tjs7Ozs7CisxMDMzMDtHT1RISUMgTEVUVEVSIEFIU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMzMxO0dPVEhJQyBMRVRURVIgQkFJUktBTjtMbzswO0w7Ozs7O047Ozs7OworMTAzMzI7R09USElDIExFVFRFUiBHSUJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzMztHT1RISUMgTEVUVEVSIERBR1M7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM0O0dPVEhJQyBMRVRURVIgQUlIVlVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzNTtHT1RISUMgTEVUVEVSIFFBSVJUSFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzNjtHT1RISUMgTEVUVEVSIElVSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM3O0dPVEhJQyBMRVRURVIgSEFHTDtMbzswO0w7Ozs7O047Ozs7OworMTAzMzg7R09USElDIExFVFRFUiBUSElVVEg7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM5O0dPVEhJQyBMRVRURVIgRUlTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzQTtHT1RISUMgTEVUVEVSIEtVU01BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzQjtHT1RISUMgTEVUVEVSIExBR1VTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzQztHT1RISUMgTEVUVEVSIE1BTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzRDtHT1RISUMgTEVUVEVSIE5BVVRIUztMbzswO0w7Ozs7O047Ozs7OworMTAzM0U7R09USElDIExFVFRFUiBKRVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNGO0dPVEhJQyBMRVRURVIgVVJVUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDA7R09USElDIExFVFRFUiBQQUlSVEhSQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDE7R09USElDIExFVFRFUiBOSU5FVFk7Tmw7MDtMOzs7OzkwO047Ozs7OworMTAzNDI7R09USElDIExFVFRFUiBSQUlEQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDM7R09USElDIExFVFRFUiBTQVVJTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNDQ7R09USElDIExFVFRFUiBURUlXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDU7R09USElDIExFVFRFUiBXSU5KQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDY7R09USElDIExFVFRFUiBGQUlIVTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDc7R09USElDIExFVFRFUiBJR0dXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDg7R09USElDIExFVFRFUiBIV0FJUjtMbzswO0w7Ozs7O047Ozs7OworMTAzNDk7R09USElDIExFVFRFUiBPVEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNEE7R09USElDIExFVFRFUiBOSU5FIEhVTkRSRUQ7Tmw7MDtMOzs7OzkwMDtOOzs7OzsKKzEwMzgwO1VHQVJJVElDIExFVFRFUiBBTFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4MTtVR0FSSVRJQyBMRVRURVIgQkVUQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODI7VUdBUklUSUMgTEVUVEVSIEdBTUxBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4MztVR0FSSVRJQyBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4NDtVR0FSSVRJQyBMRVRURVIgREVMVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzg1O1VHQVJJVElDIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMTAzODY7VUdBUklUSUMgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4NztVR0FSSVRJQyBMRVRURVIgWkVUQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODg7VUdBUklUSUMgTEVUVEVSIEhPVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzg5O1VHQVJJVElDIExFVFRFUiBURVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhBO1VHQVJJVElDIExFVFRFUiBZT0Q7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhCO1VHQVJJVElDIExFVFRFUiBLQUY7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhDO1VHQVJJVElDIExFVFRFUiBTSElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4RDtVR0FSSVRJQyBMRVRURVIgTEFNREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhFO1VHQVJJVElDIExFVFRFUiBNRU07TG87MDtMOzs7OztOOzs7OzsKKzEwMzhGO1VHQVJJVElDIExFVFRFUiBESEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5MDtVR0FSSVRJQyBMRVRURVIgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5MTtVR0FSSVRJQyBMRVRURVIgWlU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzkyO1VHQVJJVElDIExFVFRFUiBTQU1LQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTM7VUdBUklUSUMgTEVUVEVSIEFJTjtMbzswO0w7Ozs7O047Ozs7OworMTAzOTQ7VUdBUklUSUMgTEVUVEVSIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5NTtVR0FSSVRJQyBMRVRURVIgU0FERTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTY7VUdBUklUSUMgTEVUVEVSIFFPUEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzk3O1VHQVJJVElDIExFVFRFUiBSQVNIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTg7VUdBUklUSUMgTEVUVEVSIFRIQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTk7VUdBUklUSUMgTEVUVEVSIEdIQUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5QTtVR0FSSVRJQyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzEwMzlCO1VHQVJJVElDIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5QztVR0FSSVRJQyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAzOUQ7VUdBUklUSUMgTEVUVEVSIFNTVTtMbzswO0w7Ozs7O047Ozs7OworMTAzOUY7VUdBUklUSUMgV09SRCBESVZJREVSO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBMDtPTEQgUEVSU0lBTiBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0ExO09MRCBQRVJTSUFOIFNJR04gSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTI7T0xEIFBFUlNJQU4gU0lHTiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBMztPTEQgUEVSU0lBTiBTSUdOIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNDtPTEQgUEVSU0lBTiBTSUdOIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNTtPTEQgUEVSU0lBTiBTSUdOIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNjtPTEQgUEVSU0lBTiBTSUdOIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNztPTEQgUEVSU0lBTiBTSUdOIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBODtPTEQgUEVSU0lBTiBTSUdOIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBOTtPTEQgUEVSU0lBTiBTSUdOIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQTtPTEQgUEVSU0lBTiBTSUdOIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQjtPTEQgUEVSU0lBTiBTSUdOIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQztPTEQgUEVSU0lBTiBTSUdOIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRDtPTEQgUEVSU0lBTiBTSUdOIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRTtPTEQgUEVSU0lBTiBTSUdOIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRjtPTEQgUEVSU0lBTiBTSUdOIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNCMDtPTEQgUEVSU0lBTiBTSUdOIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjE7T0xEIFBFUlNJQU4gU0lHTiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjI7T0xEIFBFUlNJQU4gU0lHTiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjM7T0xEIFBFUlNJQU4gU0lHTiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjQ7T0xEIFBFUlNJQU4gU0lHTiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjU7T0xEIFBFUlNJQU4gU0lHTiBOVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjY7T0xEIFBFUlNJQU4gU0lHTiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjc7T0xEIFBFUlNJQU4gU0lHTiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjg7T0xEIFBFUlNJQU4gU0lHTiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjk7T0xEIFBFUlNJQU4gU0lHTiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkE7T0xEIFBFUlNJQU4gU0lHTiBWQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkI7T0xEIFBFUlNJQU4gU0lHTiBWSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkM7T0xEIFBFUlNJQU4gU0lHTiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkQ7T0xEIFBFUlNJQU4gU0lHTiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkU7T0xEIFBFUlNJQU4gU0lHTiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkY7T0xEIFBFUlNJQU4gU0lHTiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzA7T0xEIFBFUlNJQU4gU0lHTiBaQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzE7T0xEIFBFUlNJQU4gU0lHTiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0MyO09MRCBQRVJTSUFOIFNJR04gU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDMztPTEQgUEVSU0lBTiBTSUdOIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDODtPTEQgUEVSU0lBTiBTSUdOIEFVUkFNQVpEQUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0M5O09MRCBQRVJTSUFOIFNJR04gQVVSQU1BWkRBQS0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDQTtPTEQgUEVSU0lBTiBTSUdOIEFVUkFNQVpEQUFIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQ0I7T0xEIFBFUlNJQU4gU0lHTiBYU0hBQVlBVEhJWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0NDO09MRCBQRVJTSUFOIFNJR04gREFIWUFBVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDRDtPTEQgUEVSU0lBTiBTSUdOIERBSFlBQVVTSC0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDRTtPTEQgUEVSU0lBTiBTSUdOIEJBR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwM0NGO09MRCBQRVJTSUFOIFNJR04gQlVVTUlTSDtMbzswO0w7Ozs7O047Ozs7OworMTAzRDA7T0xEIFBFUlNJQU4gV09SRCBESVZJREVSO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNEMTtPTEQgUEVSU0lBTiBOVU1CRVIgT05FO05sOzA7TDs7OzsxO047Ozs7OworMTAzRDI7T0xEIFBFUlNJQU4gTlVNQkVSIFRXTztObDswO0w7Ozs7MjtOOzs7OzsKKzEwM0QzO09MRCBQRVJTSUFOIE5VTUJFUiBURU47Tmw7MDtMOzs7OzEwO047Ozs7OworMTAzRDQ7T0xEIFBFUlNJQU4gTlVNQkVSIFRXRU5UWTtObDswO0w7Ozs7MjA7Tjs7Ozs7CisxMDNENTtPTEQgUEVSU0lBTiBOVU1CRVIgSFVORFJFRDtObDswO0w7Ozs7MTAwO047Ozs7OworMTA0MDA7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIEk7THU7MDtMOzs7OztOOzs7OzEwNDI4OworMTA0MDE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIEU7THU7MDtMOzs7OztOOzs7OzEwNDI5OworMTA0MDI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIEE7THU7MDtMOzs7OztOOzs7OzEwNDJBOworMTA0MDM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIEFIO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyQjsKKzEwNDA0O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBPO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyQzsKKzEwNDA1O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBPTztMdTswO0w7Ozs7O047Ozs7MTA0MkQ7CisxMDQwNjtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzs7OztOOzs7OzEwNDJFOworMTA0MDc7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyRjsKKzEwNDA4O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgQTtMdTswO0w7Ozs7O047Ozs7MTA0MzA7CisxMDQwOTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEFIO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzMTsKKzEwNDBBO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgTztMdTswO0w7Ozs7O047Ozs7MTA0MzI7CisxMDQwQjtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIE9PO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzMzsKKzEwNDBDO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgQVk7THU7MDtMOzs7OztOOzs7OzEwNDM0OworMTA0MEQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBPVztMdTswO0w7Ozs7O047Ozs7MTA0MzU7CisxMDQwRTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFdVO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNjsKKzEwNDBGO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgWUVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNzsKKzEwNDEwO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7Ozs7O047Ozs7MTA0Mzg7CisxMDQxMTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFBFRTtMdTswO0w7Ozs7O047Ozs7MTA0Mzk7CisxMDQxMjtERVNFUkVUIENBUElUQUwgTEVUVEVSIEJFRTtMdTswO0w7Ozs7O047Ozs7MTA0M0E7CisxMDQxMztERVNFUkVUIENBUElUQUwgTEVUVEVSIFRFRTtMdTswO0w7Ozs7O047Ozs7MTA0M0I7CisxMDQxNDtERVNFUkVUIENBUElUQUwgTEVUVEVSIERFRTtMdTswO0w7Ozs7O047Ozs7MTA0M0M7CisxMDQxNTtERVNFUkVUIENBUElUQUwgTEVUVEVSIENIRUU7THU7MDtMOzs7OztOOzs7OzEwNDNEOworMTA0MTY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBKRUU7THU7MDtMOzs7OztOOzs7OzEwNDNFOworMTA0MTc7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBLQVk7THU7MDtMOzs7OztOOzs7OzEwNDNGOworMTA0MTg7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBHQVk7THU7MDtMOzs7OztOOzs7OzEwNDQwOworMTA0MTk7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MTA0NDE7CisxMDQxQTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFZFRTtMdTswO0w7Ozs7O047Ozs7MTA0NDI7CisxMDQxQjtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVUSDtMdTswO0w7Ozs7O047Ozs7MTA0NDM7CisxMDQxQztERVNFUkVUIENBUElUQUwgTEVUVEVSIFRIRUU7THU7MDtMOzs7OztOOzs7OzEwNDQ0OworMTA0MUQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFUztMdTswO0w7Ozs7O047Ozs7MTA0NDU7CisxMDQxRTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFpFRTtMdTswO0w7Ozs7O047Ozs7MTA0NDY7CisxMDQxRjtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVTSDtMdTswO0w7Ozs7O047Ozs7MTA0NDc7CisxMDQyMDtERVNFUkVUIENBUElUQUwgTEVUVEVSIFpIRUU7THU7MDtMOzs7OztOOzs7OzEwNDQ4OworMTA0MjE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MTA0NDk7CisxMDQyMjtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0QTsKKzEwNDIzO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRU07THU7MDtMOzs7OztOOzs7OzEwNDRCOworMTA0MjQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTjtMdTswO0w7Ozs7O047Ozs7MTA0NEM7CisxMDQyNTtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVORztMdTswO0w7Ozs7O047Ozs7MTA0NEQ7CisxMDQyNjtERVNFUkVUIENBUElUQUwgTEVUVEVSIE9JO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0RTsKKzEwNDI3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVc7THU7MDtMOzs7OztOOzs7OzEwNDRGOworMTA0Mjg7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDAwOzsxMDQwMAorMTA0Mjk7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBFO0xsOzA7TDs7Ozs7Tjs7OzEwNDAxOzsxMDQwMQorMTA0MkE7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBO0xsOzA7TDs7Ozs7Tjs7OzEwNDAyOzsxMDQwMgorMTA0MkI7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBSDtMbDswO0w7Ozs7O047OzsxMDQwMzs7MTA0MDMKKzEwNDJDO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgTztMbDswO0w7Ozs7O047OzsxMDQwNDs7MTA0MDQKKzEwNDJEO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgT087TGw7MDtMOzs7OztOOzs7MTA0MDU7OzEwNDA1CisxMDQyRTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDA2OzsxMDQwNgorMTA0MkY7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgRTtMbDswO0w7Ozs7O047OzsxMDQwNzs7MTA0MDcKKzEwNDMwO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEE7TGw7MDtMOzs7OztOOzs7MTA0MDg7OzEwNDA4CisxMDQzMTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBBSDtMbDswO0w7Ozs7O047OzsxMDQwOTs7MTA0MDkKKzEwNDMyO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIE87TGw7MDtMOzs7OztOOzs7MTA0MEE7OzEwNDBBCisxMDQzMztERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBPTztMbDswO0w7Ozs7O047OzsxMDQwQjs7MTA0MEIKKzEwNDM0O0RFU0VSRVQgU01BTEwgTEVUVEVSIEFZO0xsOzA7TDs7Ozs7Tjs7OzEwNDBDOzsxMDQwQworMTA0MzU7REVTRVJFVCBTTUFMTCBMRVRURVIgT1c7TGw7MDtMOzs7OztOOzs7MTA0MEQ7OzEwNDBECisxMDQzNjtERVNFUkVUIFNNQUxMIExFVFRFUiBXVTtMbDswO0w7Ozs7O047OzsxMDQwRTs7MTA0MEUKKzEwNDM3O0RFU0VSRVQgU01BTEwgTEVUVEVSIFlFRTtMbDswO0w7Ozs7O047OzsxMDQwRjs7MTA0MEYKKzEwNDM4O0RFU0VSRVQgU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MTA0MTA7OzEwNDEwCisxMDQzOTtERVNFUkVUIFNNQUxMIExFVFRFUiBQRUU7TGw7MDtMOzs7OztOOzs7MTA0MTE7OzEwNDExCisxMDQzQTtERVNFUkVUIFNNQUxMIExFVFRFUiBCRUU7TGw7MDtMOzs7OztOOzs7MTA0MTI7OzEwNDEyCisxMDQzQjtERVNFUkVUIFNNQUxMIExFVFRFUiBURUU7TGw7MDtMOzs7OztOOzs7MTA0MTM7OzEwNDEzCisxMDQzQztERVNFUkVUIFNNQUxMIExFVFRFUiBERUU7TGw7MDtMOzs7OztOOzs7MTA0MTQ7OzEwNDE0CisxMDQzRDtERVNFUkVUIFNNQUxMIExFVFRFUiBDSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE1OzsxMDQxNQorMTA0M0U7REVTRVJFVCBTTUFMTCBMRVRURVIgSkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE2OzsxMDQxNgorMTA0M0Y7REVTRVJFVCBTTUFMTCBMRVRURVIgS0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE3OzsxMDQxNworMTA0NDA7REVTRVJFVCBTTUFMTCBMRVRURVIgR0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE4OzsxMDQxOAorMTA0NDE7REVTRVJFVCBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MTA0MTk7OzEwNDE5CisxMDQ0MjtERVNFUkVUIFNNQUxMIExFVFRFUiBWRUU7TGw7MDtMOzs7OztOOzs7MTA0MUE7OzEwNDFBCisxMDQ0MztERVNFUkVUIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOzs7MTA0MUI7OzEwNDFCCisxMDQ0NDtERVNFUkVUIFNNQUxMIExFVFRFUiBUSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDFDOzsxMDQxQworMTA0NDU7REVTRVJFVCBTTUFMTCBMRVRURVIgRVM7TGw7MDtMOzs7OztOOzs7MTA0MUQ7OzEwNDFECisxMDQ0NjtERVNFUkVUIFNNQUxMIExFVFRFUiBaRUU7TGw7MDtMOzs7OztOOzs7MTA0MUU7OzEwNDFFCisxMDQ0NztERVNFUkVUIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MTA0MUY7OzEwNDFGCisxMDQ0ODtERVNFUkVUIFNNQUxMIExFVFRFUiBaSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDIwOzsxMDQyMAorMTA0NDk7REVTRVJFVCBTTUFMTCBMRVRURVIgRVI7TGw7MDtMOzs7OztOOzs7MTA0MjE7OzEwNDIxCisxMDQ0QTtERVNFUkVUIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzsxMDQyMjs7MTA0MjIKKzEwNDRCO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVNO0xsOzA7TDs7Ozs7Tjs7OzEwNDIzOzsxMDQyMworMTA0NEM7REVTRVJFVCBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MTA0MjQ7OzEwNDI0CisxMDQ0RDtERVNFUkVUIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOzs7MTA0MjU7OzEwNDI1CisxMDQ0RTtERVNFUkVUIFNNQUxMIExFVFRFUiBPSTtMbDswO0w7Ozs7O047OzsxMDQyNjs7MTA0MjYKKzEwNDRGO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVXO0xsOzA7TDs7Ozs7Tjs7OzEwNDI3OzsxMDQyNworMTA0NTA7U0hBVklBTiBMRVRURVIgUEVFUDtMbzswO0w7Ozs7O047Ozs7OworMTA0NTE7U0hBVklBTiBMRVRURVIgVE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1MjtTSEFWSUFOIExFVFRFUiBLSUNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1MztTSEFWSUFOIExFVFRFUiBGRUU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDU0O1NIQVZJQU4gTEVUVEVSIFRISUdIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1NTtTSEFWSUFOIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTA0NTY7U0hBVklBTiBMRVRURVIgU1VSRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NTc7U0hBVklBTiBMRVRURVIgQ0hVUkNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1ODtTSEFWSUFOIExFVFRFUiBZRUE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDU5O1NIQVZJQU4gTEVUVEVSIEhVTkc7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVBO1NIQVZJQU4gTEVUVEVSIEJJQjtMbzswO0w7Ozs7O047Ozs7OworMTA0NUI7U0hBVklBTiBMRVRURVIgREVBRDtMbzswO0w7Ozs7O047Ozs7OworMTA0NUM7U0hBVklBTiBMRVRURVIgR0FHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1RDtTSEFWSUFOIExFVFRFUiBWT1c7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVFO1NIQVZJQU4gTEVUVEVSIFRIRVk7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVGO1NIQVZJQU4gTEVUVEVSIFpPTztMbzswO0w7Ozs7O047Ozs7OworMTA0NjA7U0hBVklBTiBMRVRURVIgTUVBU1VSRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NjE7U0hBVklBTiBMRVRURVIgSlVER0U7TG87MDtMOzs7OztOOzs7OzsKKzEwNDYyO1NIQVZJQU4gTEVUVEVSIFdPRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NjM7U0hBVklBTiBMRVRURVIgSEEtSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY0O1NIQVZJQU4gTEVUVEVSIExPTEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY1O1NIQVZJQU4gTEVUVEVSIE1JTUU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY2O1NIQVZJQU4gTEVUVEVSIElGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2NztTSEFWSUFOIExFVFRFUiBFR0c7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY4O1NIQVZJQU4gTEVUVEVSIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTA0Njk7U0hBVklBTiBMRVRURVIgQURPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2QTtTSEFWSUFOIExFVFRFUiBPTjtMbzswO0w7Ozs7O047Ozs7OworMTA0NkI7U0hBVklBTiBMRVRURVIgV09PTDtMbzswO0w7Ozs7O047Ozs7OworMTA0NkM7U0hBVklBTiBMRVRURVIgT1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2RDtTSEFWSUFOIExFVFRFUiBBSDtMbzswO0w7Ozs7O047Ozs7OworMTA0NkU7U0hBVklBTiBMRVRURVIgUk9BUjtMbzswO0w7Ozs7O047Ozs7OworMTA0NkY7U0hBVklBTiBMRVRURVIgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3MDtTSEFWSUFOIExFVFRFUiBFQVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwNDcxO1NIQVZJQU4gTEVUVEVSIEFHRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NzI7U0hBVklBTiBMRVRURVIgSUNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3MztTSEFWSUFOIExFVFRFUiBVUDtMbzswO0w7Ozs7O047Ozs7OworMTA0NzQ7U0hBVklBTiBMRVRURVIgT0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3NTtTSEFWSUFOIExFVFRFUiBPT1pFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3NjtTSEFWSUFOIExFVFRFUiBPSUw7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc3O1NIQVZJQU4gTEVUVEVSIEFXRTtMbzswO0w7Ozs7O047Ozs7OworMTA0Nzg7U0hBVklBTiBMRVRURVIgQVJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3OTtTSEFWSUFOIExFVFRFUiBPUjtMbzswO0w7Ozs7O047Ozs7OworMTA0N0E7U0hBVklBTiBMRVRURVIgQUlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3QjtTSEFWSUFOIExFVFRFUiBFUlI7TG87MDtMOzs7OztOOzs7OzsKKzEwNDdDO1NIQVZJQU4gTEVUVEVSIEFSUkFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3RDtTSEFWSUFOIExFVFRFUiBFQVI7TG87MDtMOzs7OztOOzs7OzsKKzEwNDdFO1NIQVZJQU4gTEVUVEVSIElBTjtMbzswO0w7Ozs7O047Ozs7OworMTA0N0Y7U0hBVklBTiBMRVRURVIgWUVXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4MDtPU01BTllBIExFVFRFUiBBTEVGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4MTtPU01BTllBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODI7T1NNQU5ZQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDgzO09TTUFOWUEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4NDtPU01BTllBIExFVFRFUiBYQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODU7T1NNQU5ZQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4NjtPU01BTllBIExFVFRFUiBERUVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4NztPU01BTllBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODg7T1NNQU5ZQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg5O09TTUFOWUEgTEVUVEVSIFNISUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4QTtPU01BTllBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDhCO09TTUFOWUEgTEVUVEVSIENBWU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDhDO09TTUFOWUEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4RDtPU01BTllBIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OEU7T1NNQU5ZQSBMRVRURVIgUUFBRjtMbzswO0w7Ozs7O047Ozs7OworMTA0OEY7T1NNQU5ZQSBMRVRURVIgS0FBRjtMbzswO0w7Ozs7O047Ozs7OworMTA0OTA7T1NNQU5ZQSBMRVRURVIgTEFBTjtMbzswO0w7Ozs7O047Ozs7OworMTA0OTE7T1NNQU5ZQSBMRVRURVIgTUlJTjtMbzswO0w7Ozs7O047Ozs7OworMTA0OTI7T1NNQU5ZQSBMRVRURVIgTlVVTjtMbzswO0w7Ozs7O047Ozs7OworMTA0OTM7T1NNQU5ZQSBMRVRURVIgV0FXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5NDtPU01BTllBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OTU7T1NNQU5ZQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk2O09TTUFOWUEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk3O09TTUFOWUEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk4O09TTUFOWUEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk5O09TTUFOWUEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEwNDlBO09TTUFOWUEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDlCO09TTUFOWUEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5QztPU01BTllBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMTA0OUQ7T1NNQU5ZQSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzEwNEEwO09TTUFOWUEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTA0QTE7T1NNQU5ZQSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzEwNEEyO09TTUFOWUEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMDRBMztPU01BTllBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMDRBNDtPU01BTllBIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzEwNEE1O09TTUFOWUEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTA0QTY7T1NNQU5ZQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEwNEE3O09TTUFOWUEgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzEwNEE4O09TTUFOWUEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEwNEE5O09TTUFOWUEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTA4MDA7Q1lQUklPVCBTWUxMQUJMRSBBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwMTtDWVBSSU9UIFNZTExBQkxFIEU7TG87MDtSOzs7OztOOzs7OzsKKzEwODAyO0NZUFJJT1QgU1lMTEFCTEUgSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MDM7Q1lQUklPVCBTWUxMQUJMRSBPO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwNDtDWVBSSU9UIFNZTExBQkxFIFU7TG87MDtSOzs7OztOOzs7OzsKKzEwODA1O0NZUFJJT1QgU1lMTEFCTEUgSkE7TG87MDtSOzs7OztOOzs7OzsKKzEwODA4O0NZUFJJT1QgU1lMTEFCTEUgSk87TG87MDtSOzs7OztOOzs7OzsKKzEwODBBO0NZUFJJT1QgU1lMTEFCTEUgS0E7TG87MDtSOzs7OztOOzs7OzsKKzEwODBCO0NZUFJJT1QgU1lMTEFCTEUgS0U7TG87MDtSOzs7OztOOzs7OzsKKzEwODBDO0NZUFJJT1QgU1lMTEFCTEUgS0k7TG87MDtSOzs7OztOOzs7OzsKKzEwODBEO0NZUFJJT1QgU1lMTEFCTEUgS087TG87MDtSOzs7OztOOzs7OzsKKzEwODBFO0NZUFJJT1QgU1lMTEFCTEUgS1U7TG87MDtSOzs7OztOOzs7OzsKKzEwODBGO0NZUFJJT1QgU1lMTEFCTEUgTEE7TG87MDtSOzs7OztOOzs7OzsKKzEwODEwO0NZUFJJT1QgU1lMTEFCTEUgTEU7TG87MDtSOzs7OztOOzs7OzsKKzEwODExO0NZUFJJT1QgU1lMTEFCTEUgTEk7TG87MDtSOzs7OztOOzs7OzsKKzEwODEyO0NZUFJJT1QgU1lMTEFCTEUgTE87TG87MDtSOzs7OztOOzs7OzsKKzEwODEzO0NZUFJJT1QgU1lMTEFCTEUgTFU7TG87MDtSOzs7OztOOzs7OzsKKzEwODE0O0NZUFJJT1QgU1lMTEFCTEUgTUE7TG87MDtSOzs7OztOOzs7OzsKKzEwODE1O0NZUFJJT1QgU1lMTEFCTEUgTUU7TG87MDtSOzs7OztOOzs7OzsKKzEwODE2O0NZUFJJT1QgU1lMTEFCTEUgTUk7TG87MDtSOzs7OztOOzs7OzsKKzEwODE3O0NZUFJJT1QgU1lMTEFCTEUgTU87TG87MDtSOzs7OztOOzs7OzsKKzEwODE4O0NZUFJJT1QgU1lMTEFCTEUgTVU7TG87MDtSOzs7OztOOzs7OzsKKzEwODE5O0NZUFJJT1QgU1lMTEFCTEUgTkE7TG87MDtSOzs7OztOOzs7OzsKKzEwODFBO0NZUFJJT1QgU1lMTEFCTEUgTkU7TG87MDtSOzs7OztOOzs7OzsKKzEwODFCO0NZUFJJT1QgU1lMTEFCTEUgTkk7TG87MDtSOzs7OztOOzs7OzsKKzEwODFDO0NZUFJJT1QgU1lMTEFCTEUgTk87TG87MDtSOzs7OztOOzs7OzsKKzEwODFEO0NZUFJJT1QgU1lMTEFCTEUgTlU7TG87MDtSOzs7OztOOzs7OzsKKzEwODFFO0NZUFJJT1QgU1lMTEFCTEUgUEE7TG87MDtSOzs7OztOOzs7OzsKKzEwODFGO0NZUFJJT1QgU1lMTEFCTEUgUEU7TG87MDtSOzs7OztOOzs7OzsKKzEwODIwO0NZUFJJT1QgU1lMTEFCTEUgUEk7TG87MDtSOzs7OztOOzs7OzsKKzEwODIxO0NZUFJJT1QgU1lMTEFCTEUgUE87TG87MDtSOzs7OztOOzs7OzsKKzEwODIyO0NZUFJJT1QgU1lMTEFCTEUgUFU7TG87MDtSOzs7OztOOzs7OzsKKzEwODIzO0NZUFJJT1QgU1lMTEFCTEUgUkE7TG87MDtSOzs7OztOOzs7OzsKKzEwODI0O0NZUFJJT1QgU1lMTEFCTEUgUkU7TG87MDtSOzs7OztOOzs7OzsKKzEwODI1O0NZUFJJT1QgU1lMTEFCTEUgUkk7TG87MDtSOzs7OztOOzs7OzsKKzEwODI2O0NZUFJJT1QgU1lMTEFCTEUgUk87TG87MDtSOzs7OztOOzs7OzsKKzEwODI3O0NZUFJJT1QgU1lMTEFCTEUgUlU7TG87MDtSOzs7OztOOzs7OzsKKzEwODI4O0NZUFJJT1QgU1lMTEFCTEUgU0E7TG87MDtSOzs7OztOOzs7OzsKKzEwODI5O0NZUFJJT1QgU1lMTEFCTEUgU0U7TG87MDtSOzs7OztOOzs7OzsKKzEwODJBO0NZUFJJT1QgU1lMTEFCTEUgU0k7TG87MDtSOzs7OztOOzs7OzsKKzEwODJCO0NZUFJJT1QgU1lMTEFCTEUgU087TG87MDtSOzs7OztOOzs7OzsKKzEwODJDO0NZUFJJT1QgU1lMTEFCTEUgU1U7TG87MDtSOzs7OztOOzs7OzsKKzEwODJEO0NZUFJJT1QgU1lMTEFCTEUgVEE7TG87MDtSOzs7OztOOzs7OzsKKzEwODJFO0NZUFJJT1QgU1lMTEFCTEUgVEU7TG87MDtSOzs7OztOOzs7OzsKKzEwODJGO0NZUFJJT1QgU1lMTEFCTEUgVEk7TG87MDtSOzs7OztOOzs7OzsKKzEwODMwO0NZUFJJT1QgU1lMTEFCTEUgVE87TG87MDtSOzs7OztOOzs7OzsKKzEwODMxO0NZUFJJT1QgU1lMTEFCTEUgVFU7TG87MDtSOzs7OztOOzs7OzsKKzEwODMyO0NZUFJJT1QgU1lMTEFCTEUgV0E7TG87MDtSOzs7OztOOzs7OzsKKzEwODMzO0NZUFJJT1QgU1lMTEFCTEUgV0U7TG87MDtSOzs7OztOOzs7OzsKKzEwODM0O0NZUFJJT1QgU1lMTEFCTEUgV0k7TG87MDtSOzs7OztOOzs7OzsKKzEwODM1O0NZUFJJT1QgU1lMTEFCTEUgV087TG87MDtSOzs7OztOOzs7OzsKKzEwODM3O0NZUFJJT1QgU1lMTEFCTEUgWEE7TG87MDtSOzs7OztOOzs7OzsKKzEwODM4O0NZUFJJT1QgU1lMTEFCTEUgWEU7TG87MDtSOzs7OztOOzs7OzsKKzEwODNDO0NZUFJJT1QgU1lMTEFCTEUgWkE7TG87MDtSOzs7OztOOzs7OzsKKzEwODNGO0NZUFJJT1QgU1lMTEFCTEUgWk87TG87MDtSOzs7OztOOzs7OzsKKzEwOTAwO1BIT0VOSUNJQU4gTEVUVEVSIEFMRjtMbzswO1I7Ozs7O047Ozs7OworMTA5MDE7UEhPRU5JQ0lBTiBMRVRURVIgQkVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwMjtQSE9FTklDSUFOIExFVFRFUiBHQU1MO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwMztQSE9FTklDSUFOIExFVFRFUiBERUxUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwNDtQSE9FTklDSUFOIExFVFRFUiBIRTtMbzswO1I7Ozs7O047Ozs7OworMTA5MDU7UEhPRU5JQ0lBTiBMRVRURVIgV0FVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwNjtQSE9FTklDSUFOIExFVFRFUiBaQUk7TG87MDtSOzs7OztOOzs7OzsKKzEwOTA3O1BIT0VOSUNJQU4gTEVUVEVSIEhFVDtMbzswO1I7Ozs7O047Ozs7OworMTA5MDg7UEhPRU5JQ0lBTiBMRVRURVIgVEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwOTtQSE9FTklDSUFOIExFVFRFUiBZT0Q7TG87MDtSOzs7OztOOzs7OzsKKzEwOTBBO1BIT0VOSUNJQU4gTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMTA5MEI7UEhPRU5JQ0lBTiBMRVRURVIgTEFNRDtMbzswO1I7Ozs7O047Ozs7OworMTA5MEM7UEhPRU5JQ0lBTiBMRVRURVIgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkwRDtQSE9FTklDSUFOIExFVFRFUiBOVU47TG87MDtSOzs7OztOOzs7OzsKKzEwOTBFO1BIT0VOSUNJQU4gTEVUVEVSIFNFTUs7TG87MDtSOzs7OztOOzs7OzsKKzEwOTBGO1BIT0VOSUNJQU4gTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworMTA5MTA7UEhPRU5JQ0lBTiBMRVRURVIgUEU7TG87MDtSOzs7OztOOzs7OzsKKzEwOTExO1BIT0VOSUNJQU4gTEVUVEVSIFNBREU7TG87MDtSOzs7OztOOzs7OzsKKzEwOTEyO1BIT0VOSUNJQU4gTEVUVEVSIFFPRjtMbzswO1I7Ozs7O047Ozs7OworMTA5MTM7UEhPRU5JQ0lBTiBMRVRURVIgUk9TSDtMbzswO1I7Ozs7O047Ozs7OworMTA5MTQ7UEhPRU5JQ0lBTiBMRVRURVIgU0hJTjtMbzswO1I7Ozs7O047Ozs7OworMTA5MTU7UEhPRU5JQ0lBTiBMRVRURVIgVEFVO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDkxNjtQSE9FTklDSUFOIE5VTUJFUiBPTkU7Tm87MDtSOzs7OzE7Tjs7Ozs7CisxMDkxNztQSE9FTklDSUFOIE5VTUJFUiBURU47Tm87MDtSOzs7OzEwO047Ozs7OworMTA5MTg7UEhPRU5JQ0lBTiBOVU1CRVIgVFdFTlRZO05vOzA7Ujs7OzsyMDtOOzs7OzsKKzEwOTE5O1BIT0VOSUNJQU4gTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7Ujs7OzsxMDA7Tjs7Ozs7CisxMDkxRjtQSE9FTklDSUFOIFdPUkQgU0VQQVJBVE9SO1BvOzA7T047Ozs7O047Ozs7OworMTBBMDA7S0hBUk9TSFRISSBMRVRURVIgQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMDE7S0hBUk9TSFRISSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDI7S0hBUk9TSFRISSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDM7S0hBUk9TSFRISSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwNTtLSEFST1NIVEhJIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwNjtLSEFST1NIVEhJIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwQztLSEFST1NIVEhJIFZPV0VMIExFTkdUSCBNQVJLO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwQTBEO0tIQVJPU0hUSEkgU0lHTiBET1VCTEUgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzEwQTBFO0tIQVJPU0hUSEkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwRjtLSEFST1NIVEhJIFNJR04gVklTQVJHQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzEwQTEwO0tIQVJPU0hUSEkgTEVUVEVSIEtBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExMTtLSEFST1NIVEhJIExFVFRFUiBLSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTEyO0tIQVJPU0hUSEkgTEVUVEVSIEdBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExMztLSEFST1NIVEhJIExFVFRFUiBHSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTE1O0tIQVJPU0hUSEkgTEVUVEVSIENBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExNjtLSEFST1NIVEhJIExFVFRFUiBDSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTE3O0tIQVJPU0hUSEkgTEVUVEVSIEpBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExOTtLSEFST1NIVEhJIExFVFRFUiBOWUE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFBO0tIQVJPU0hUSEkgTEVUVEVSIFRUQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUI7S0hBUk9TSFRISSBMRVRURVIgVFRIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUM7S0hBUk9TSFRISSBMRVRURVIgRERBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExRDtLSEFST1NIVEhJIExFVFRFUiBEREhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExRTtLSEFST1NIVEhJIExFVFRFUiBOTkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFGO0tIQVJPU0hUSEkgTEVUVEVSIFRBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMDtLSEFST1NIVEhJIExFVFRFUiBUSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTIxO0tIQVJPU0hUSEkgTEVUVEVSIERBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMjtLSEFST1NIVEhJIExFVFRFUiBESEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTIzO0tIQVJPU0hUSEkgTEVUVEVSIE5BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyNDtLSEFST1NIVEhJIExFVFRFUiBQQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjU7S0hBUk9TSFRISSBMRVRURVIgUEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyNjtLSEFST1NIVEhJIExFVFRFUiBCQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjc7S0hBUk9TSFRISSBMRVRURVIgQkhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyODtLSEFST1NIVEhJIExFVFRFUiBNQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjk7S0hBUk9TSFRISSBMRVRURVIgWUE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJBO0tIQVJPU0hUSEkgTEVUVEVSIFJBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyQjtLSEFST1NIVEhJIExFVFRFUiBMQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkM7S0hBUk9TSFRISSBMRVRURVIgVkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJEO0tIQVJPU0hUSEkgTEVUVEVSIFNIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkU7S0hBUk9TSFRISSBMRVRURVIgU1NBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyRjtLSEFST1NIVEhJIExFVFRFUiBTQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMzA7S0hBUk9TSFRISSBMRVRURVIgWkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTMxO0tIQVJPU0hUSEkgTEVUVEVSIEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzMjtLSEFST1NIVEhJIExFVFRFUiBLS0E7TG87MDtSOzs7OztOOzs7OzsKKzEwQTMzO0tIQVJPU0hUSEkgTEVUVEVSIFRUVEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzODtLSEFST1NIVEhJIFNJR04gQkFSIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMTBBMzk7S0hBUk9TSFRISSBTSUdOIENBVURBO01uOzE7TlNNOzs7OztOOzs7OzsKKzEwQTNBO0tIQVJPU0hUSEkgU0lHTiBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxMEEzRjtLSEFST1NIVEhJIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxMEE0MDtLSEFST1NIVEhJIERJR0lUIE9ORTtObzswO1I7OzsxOzE7Tjs7Ozs7CisxMEE0MTtLSEFST1NIVEhJIERJR0lUIFRXTztObzswO1I7OzsyOzI7Tjs7Ozs7CisxMEE0MjtLSEFST1NIVEhJIERJR0lUIFRIUkVFO05vOzA7Ujs7OzM7MztOOzs7OzsKKzEwQTQzO0tIQVJPU0hUSEkgRElHSVQgRk9VUjtObzswO1I7Ozs0OzQ7Tjs7Ozs7CisxMEE0NDtLSEFST1NIVEhJIE5VTUJFUiBURU47Tm87MDtSOzs7OzEwO047Ozs7OworMTBBNDU7S0hBUk9TSFRISSBOVU1CRVIgVFdFTlRZO05vOzA7Ujs7OzsyMDtOOzs7OzsKKzEwQTQ2O0tIQVJPU0hUSEkgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7Ujs7OzsxMDA7Tjs7Ozs7CisxMEE0NztLSEFST1NIVEhJIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtSOzs7OzEwMDA7Tjs7Ozs7CisxMEE1MDtLSEFST1NIVEhJIFBVTkNUVUFUSU9OIERPVDtQbzswO1I7Ozs7O047Ozs7OworMTBBNTE7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBTTUFMTCBDSVJDTEU7UG87MDtSOzs7OztOOzs7OzsKKzEwQTUyO0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gQ0lSQ0xFO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEE1MztLSEFST1NIVEhJIFBVTkNUVUFUSU9OIENSRVNDRU5UIEJBUjtQbzswO1I7Ozs7O047Ozs7OworMTBBNTQ7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBNQU5HQUxBTTtQbzswO1I7Ozs7O047Ozs7OworMTBBNTU7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBMT1RVUztQbzswO1I7Ozs7O047Ozs7OworMTBBNTY7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBEQU5EQTtQbzswO1I7Ozs7O047Ozs7OworMTBBNTc7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBET1VCTEUgREFOREE7UG87MDtSOzs7OztOOzs7OzsKKzEwQTU4O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gTElORVM7UG87MDtSOzs7OztOOzs7OzsKKzEyMDAwO0NVTkVJRk9STSBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDAxO0NVTkVJRk9STSBTSUdOIEEgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIwMDI7Q1VORUlGT1JNIFNJR04gQSBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDAzO0NVTkVJRk9STSBTSUdOIEEgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwNDtDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwNTtDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIwMDY7Q1VORUlGT1JNIFNJR04gQSBUSU1FUyBMQUdBUiBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwNztDVU5FSUZPUk0gU0lHTiBBIFRJTUVTIE1VU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDA4O0NVTkVJRk9STSBTSUdOIEEgVElNRVMgU0FHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwOTtDVU5FSUZPUk0gU0lHTiBBMjtMbzswO0w7Ozs7O047Ozs7OworMTIwMEE7Q1VORUlGT1JNIFNJR04gQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDBCO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDBDO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIERVTjMgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMEQ7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgR0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwRTtDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDBGO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxMDtDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMTE7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgSU1JTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMTI7Q1VORUlGT1JNIFNJR04gQUIgVElNRVMgTEFHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDEzO0NVTkVJRk9STSBTSUdOIEFCIFRJTUVTIFNIRVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxNDtDVU5FSUZPUk0gU0lHTiBBQiBUSU1FUyBVIFBMVVMgVSBQTFVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDE1O0NVTkVJRk9STSBTSUdOIEFCIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDE2O0NVTkVJRk9STSBTSUdOIEFCMjtMbzswO0w7Ozs7O047Ozs7OworMTIwMTc7Q1VORUlGT1JNIFNJR04gQUIyIFRJTUVTIEJBTEFHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxODtDVU5FSUZPUk0gU0lHTiBBQjIgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxOTtDVU5FSUZPUk0gU0lHTiBBQjIgVElNRVMgTUUgUExVUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMUE7Q1VORUlGT1JNIFNJR04gQUIyIFRJTUVTIFNIQTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMDFCO0NVTkVJRk9STSBTSUdOIEFCMiBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxQztDVU5FSUZPUk0gU0lHTiBBRDtMbzswO0w7Ozs7O047Ozs7OworMTIwMUQ7Q1VORUlGT1JNIFNJR04gQUs7TG87MDtMOzs7OztOOzs7OzsKKzEyMDFFO0NVTkVJRk9STSBTSUdOIEFLIFRJTUVTIEVSSU4yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxRjtDVU5FSUZPUk0gU0lHTiBBSyBUSU1FUyBTSElUQSBQTFVTIEdJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDIwO0NVTkVJRk9STSBTSUdOIEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyMTtDVU5FSUZPUk0gU0lHTiBBTCBUSU1FUyBBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwMjI7Q1VORUlGT1JNIFNJR04gQUwgVElNRVMgRElNMjtMbzswO0w7Ozs7O047Ozs7OworMTIwMjM7Q1VORUlGT1JNIFNJR04gQUwgVElNRVMgR0lTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwMjQ7Q1VORUlGT1JNIFNJR04gQUwgVElNRVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI1O0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIEtBRDM7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI2O0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyNztDVU5FSUZPUk0gU0lHTiBBTCBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI4O0NVTkVJRk9STSBTSUdOIEFMIFRJTUVTIFVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwMjk7Q1VORUlGT1JNIFNJR04gQUxBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMkE7Q1VORUlGT1JNIFNJR04gQUxFUEg7TG87MDtMOzs7OztOOzs7OzsKKzEyMDJCO0NVTkVJRk9STSBTSUdOIEFNQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDJDO0NVTkVJRk9STSBTSUdOIEFNQVIgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyRDtDVU5FSUZPUk0gU0lHTiBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMkU7Q1VORUlGT1JNIFNJR04gQU4gT1ZFUiBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMkY7Q1VORUlGT1JNIFNJR04gQU4gVEhSRUUgVElNRVM7TG87MDtMOzs7OztOOzs7OzsKKzEyMDMwO0NVTkVJRk9STSBTSUdOIEFOIFBMVVMgTkFHQSBPUFBPU0lORyBBTiBQTFVTIE5BR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMDMxO0NVTkVJRk9STSBTSUdOIEFOIFBMVVMgTkFHQSBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzMjtDVU5FSUZPUk0gU0lHTiBBTlNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwMzM7Q1VORUlGT1JNIFNJR04gQVBJTjtMbzswO0w7Ozs7O047Ozs7OworMTIwMzQ7Q1VORUlGT1JNIFNJR04gQVJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIwMzU7Q1VORUlGT1JNIFNJR04gQVJBRCBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDM2O0NVTkVJRk9STSBTSUdOIEFSS0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzNztDVU5FSUZPUk0gU0lHTiBBU0FMMjtMbzswO0w7Ozs7O047Ozs7OworMTIwMzg7Q1VORUlGT1JNIFNJR04gQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzOTtDVU5FSUZPUk0gU0lHTiBBU0ggWklEQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzQTtDVU5FSUZPUk0gU0lHTiBBU0ggS0FCQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzQjtDVU5FSUZPUk0gU0lHTiBBU0ggT1ZFUiBBU0ggVFVHMiBPVkVSIFRVRzIgVFVHMiBPVkVSIFRVRzIgUEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzQztDVU5FSUZPUk0gU0lHTiBBU0ggT1ZFUiBBU0ggT1ZFUiBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDNEO0NVTkVJRk9STSBTSUdOIEFTSCBPVkVSIEFTSCBPVkVSIEFTSCBDUk9TU0lORyBBU0ggT1ZFUiBBU0ggT1ZFUiBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDNFO0NVTkVJRk9STSBTSUdOIEFTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDNGO0NVTkVJRk9STSBTSUdOIEFTSEdBQjtMbzswO0w7Ozs7O047Ozs7OworMTIwNDA7Q1VORUlGT1JNIFNJR04gQkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQxO0NVTkVJRk9STSBTSUdOIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIwNDI7Q1VORUlGT1JNIFNJR04gQkFHMztMbzswO0w7Ozs7O047Ozs7OworMTIwNDM7Q1VORUlGT1JNIFNJR04gQkFIQVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0NDtDVU5FSUZPUk0gU0lHTiBCQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ1O0NVTkVJRk9STSBTSUdOIEJBTCBPVkVSIEJBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwNDY7Q1VORUlGT1JNIFNJR04gQkFMQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ3O0NVTkVJRk9STSBTSUdOIEJBUjtMbzswO0w7Ozs7O047Ozs7OworMTIwNDg7Q1VORUlGT1JNIFNJR04gQkFSQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ5O0NVTkVJRk9STSBTSUdOIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0QTtDVU5FSUZPUk0gU0lHTiBCSSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0QjtDVU5FSUZPUk0gU0lHTiBCSSBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDRDO0NVTkVJRk9STSBTSUdOIEJJIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0RDtDVU5FSUZPUk0gU0lHTiBCVTtMbzswO0w7Ozs7O047Ozs7OworMTIwNEU7Q1VORUlGT1JNIFNJR04gQlUgT1ZFUiBCVSBBQjtMbzswO0w7Ozs7O047Ozs7OworMTIwNEY7Q1VORUlGT1JNIFNJR04gQlUgT1ZFUiBCVSBVTjtMbzswO0w7Ozs7O047Ozs7OworMTIwNTA7Q1VORUlGT1JNIFNJR04gQlUgQ1JPU1NJTkcgQlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDUxO0NVTkVJRk9STSBTSUdOIEJVTFVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1MjtDVU5FSUZPUk0gU0lHTiBCVUxVRyBPVkVSIEJVTFVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1MztDVU5FSUZPUk0gU0lHTiBCVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU0O0NVTkVJRk9STSBTSUdOIEJVUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU1O0NVTkVJRk9STSBTSUdOIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1NjtDVU5FSUZPUk0gU0lHTiBEQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU3O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgQSBQTFVTIE1BU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU4O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgQU1BUjtMbzswO0w7Ozs7O047Ozs7OworMTIwNTk7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBCQUxBRztMbzswO0w7Ozs7O047Ozs7OworMTIwNUE7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBCSTtMbzswO0w7Ozs7O047Ozs7OworMTIwNUI7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNUM7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBHQSBQTFVTIE1BU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVEO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMDVFO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgR0lSMjtMbzswO0w7Ozs7O047Ozs7OworMTIwNUY7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBHVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDYwO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDYxO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgSVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDYyO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgSVIgUExVUyBMVTtMbzswO0w7Ozs7O047Ozs7OworMTIwNjM7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBLQUs7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY0O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY1O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY2O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgTFUgUExVUyBNQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIwNjc7Q1VORUlGT1JNIFNJR04gREFHIEtJU0lNNSBUSU1FUyBMVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMDY4O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY5O0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgUEFQIFBMVVMgUEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2QTtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2QjtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIFRBSzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDZDO0NVTkVJRk9STSBTSUdOIERBRyBLSVNJTTUgVElNRVMgVTIgUExVUyBHSVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2RDtDVU5FSUZPUk0gU0lHTiBEQUcgS0lTSU01IFRJTUVTIFVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwNkU7Q1VORUlGT1JNIFNJR04gREFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2RjtDVU5FSUZPUk0gU0lHTiBEQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDcwO0NVTkVJRk9STSBTSUdOIERBUkEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3MTtDVU5FSUZPUk0gU0lHTiBEQVJBNDtMbzswO0w7Ozs7O047Ozs7OworMTIwNzI7Q1VORUlGT1JNIFNJR04gREk7TG87MDtMOzs7OztOOzs7OzsKKzEyMDczO0NVTkVJRk9STSBTSUdOIERJQjtMbzswO0w7Ozs7O047Ozs7OworMTIwNzQ7Q1VORUlGT1JNIFNJR04gRElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3NTtDVU5FSUZPUk0gU0lHTiBESU0gVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3NjtDVU5FSUZPUk0gU0lHTiBESU0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3NztDVU5FSUZPUk0gU0lHTiBESU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDc4O0NVTkVJRk9STSBTSUdOIERJTiBLQVNLQUwgVSBHVU5VIERJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDc5O0NVTkVJRk9STSBTSUdOIERJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMDdBO0NVTkVJRk9STSBTSUdOIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3QjtDVU5FSUZPUk0gU0lHTiBEVSBPVkVSIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3QztDVU5FSUZPUk0gU0lHTiBEVSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3RDtDVU5FSUZPUk0gU0lHTiBEVSBTSEVTSElHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA3RTtDVU5FSUZPUk0gU0lHTiBEVUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDdGO0NVTkVJRk9STSBTSUdOIERVQiBUSU1FUyBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4MDtDVU5FSUZPUk0gU0lHTiBEVUIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4MTtDVU5FSUZPUk0gU0lHTiBEVUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMDgyO0NVTkVJRk9STSBTSUdOIERVR1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4MztDVU5FSUZPUk0gU0lHTiBEVUg7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg0O0NVTkVJRk9STSBTSUdOIERVTjtMbzswO0w7Ozs7O047Ozs7OworMTIwODU7Q1VORUlGT1JNIFNJR04gRFVOMztMbzswO0w7Ozs7O047Ozs7OworMTIwODY7Q1VORUlGT1JNIFNJR04gRFVOMyBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4NztDVU5FSUZPUk0gU0lHTiBEVU4zIEdVTlUgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwODg7Q1VORUlGT1JNIFNJR04gRFVONDtMbzswO0w7Ozs7O047Ozs7OworMTIwODk7Q1VORUlGT1JNIFNJR04gRFVSMjtMbzswO0w7Ozs7O047Ozs7OworMTIwOEE7Q1VORUlGT1JNIFNJR04gRTtMbzswO0w7Ozs7O047Ozs7OworMTIwOEI7Q1VORUlGT1JNIFNJR04gRSBUSU1FUyBQQVA7TG87MDtMOzs7OztOOzs7OzsKKzEyMDhDO0NVTkVJRk9STSBTSUdOIEUgT1ZFUiBFIE5VTiBPVkVSIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIwOEQ7Q1VORUlGT1JNIFNJR04gRTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDhFO0NVTkVJRk9STSBTSUdOIEUyIFRJTUVTIEEgUExVUyBIQSBQTFVTIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4RjtDVU5FSUZPUk0gU0lHTiBFMiBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMDkwO0NVTkVJRk9STSBTSUdOIEUyIFRJTUVTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5MTtDVU5FSUZPUk0gU0lHTiBFMiBUSU1FUyBTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMDkyO0NVTkVJRk9STSBTSUdOIEUyIFRJTUVTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwOTM7Q1VORUlGT1JNIFNJR04gRTIgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIwOTQ7Q1VORUlGT1JNIFNJR04gRURJTjtMbzswO0w7Ozs7O047Ozs7OworMTIwOTU7Q1VORUlGT1JNIFNJR04gRUdJUjtMbzswO0w7Ozs7O047Ozs7OworMTIwOTY7Q1VORUlGT1JNIFNJR04gRUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk3O0NVTkVJRk9STSBTSUdOIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5ODtDVU5FSUZPUk0gU0lHTiBFTiBUSU1FUyBHQU4yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5OTtDVU5FSUZPUk0gU0lHTiBFTiBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDlBO0NVTkVJRk9STSBTSUdOIEVOIFRJTUVTIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5QjtDVU5FSUZPUk0gU0lHTiBFTiBDUk9TU0lORyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwOUM7Q1VORUlGT1JNIFNJR04gRU4gT1BQT1NJTkcgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDlEO0NVTkVJRk9STSBTSUdOIEVOIFNRVUFSRUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMDlFO0NVTkVJRk9STSBTSUdOIEVSRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMDlGO0NVTkVJRk9STSBTSUdOIEVSSU4yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBMDtDVU5FSUZPUk0gU0lHTiBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBMTtDVU5FSUZPUk0gU0lHTiBFWkVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBMjtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEEzO0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgQSBQTFVTIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwQTQ7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBBIFBMVVMgTEFMIFRJTUVTIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwQTU7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwQTY7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE3O0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgRFVOMyBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBODtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIERVTjMgR1VOVSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBOTtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBQTtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEhBIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEFCO0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgSUdJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEFDO0NVTkVJRk9STSBTSUdOIEVaRU4gVElNRVMgS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBRDtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEtBU0tBTCBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBRTtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIEtVMztMbzswO0w7Ozs7O047Ozs7OworMTIwQUY7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQjA7Q1VORUlGT1JNIFNJR04gRVpFTiBUSU1FUyBMQUwgVElNRVMgTEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCMTtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCMjtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCMztDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCNDtDVU5FSUZPUk0gU0lHTiBFWkVOIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCNTtDVU5FSUZPUk0gU0lHTiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQjY7Q1VORUlGT1JNIFNJR04gR0EgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQjc7Q1VORUlGT1JNIFNJR04gR0EyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCODtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQSBQTFVTIERBIFBMVVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI5O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBBIFBMVVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEJBO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBBIFBMVVMgSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCQjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgQUIyIFRFTlUgUExVUyBUQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEJDO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwQkQ7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIwQkU7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEFTSDIgUExVUyBHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEJGO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMEMwO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBCQVIgUExVUyBSQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQzE7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEJVUjtMbzswO0w7Ozs7O047Ozs7OworMTIwQzI7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEJVUiBQTFVTIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDMztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgREE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM0O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBESTtMbzswO0w7Ozs7O047Ozs7OworMTIwQzU7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIERJTSBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM2O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBEVUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM3O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBFTDtMbzswO0w7Ozs7O047Ozs7OworMTIwQzg7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEVMIFBMVVMgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEM5O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0E7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEVOIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0I7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0M7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIwQ0Q7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDRTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgR0k0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDRjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgR0k0IFBMVVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDA7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEdJUjIgUExVUyBTVTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDE7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIEhBIFBMVVMgTFUgUExVUyBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEMjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgSEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBEMztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgSEFMIFBMVVMgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ0O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBISSBQTFVTIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBENTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgSFVCMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRDY7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBENztDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgSVNIIFBMVVMgSFUgUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ4O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBLQUs7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ5O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBLQVNLQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMERBO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBLSUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMERCO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBLSUQgUExVUyBMQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMERDO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBLVTMgUExVUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwREQ7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBERTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgTUUgUExVUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTIwREY7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFMDtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFMTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgTlVOIE9WRVIgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFMjtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgUEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMEUzO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU0O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBTQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU1O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU2O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBTSEUgUExVUyBUVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU3O0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBTSElEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFODtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgU1VNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBFOTtDVU5FSUZPUk0gU0lHTiBHQTIgVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIwRUE7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVCO0NVTkVJRk9STSBTSUdOIEdBMiBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIwRUM7Q1VORUlGT1JNIFNJR04gR0EyIFRJTUVTIFVEIFBMVVMgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEVEO0NVTkVJRk9STSBTSUdOIEdBMiBPVkVSIEdBMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRUU7Q1VORUlGT1JNIFNJR04gR0FCQTtMbzswO0w7Ozs7O047Ozs7OworMTIwRUY7Q1VORUlGT1JNIFNJR04gR0FCQSBDUk9TU0lORyBHQUJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGMDtDVU5FSUZPUk0gU0lHTiBHQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMEYxO0NVTkVJRk9STSBTSUdOIEdBRCBPVkVSIEdBRCBHQVIgT1ZFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEYyO0NVTkVJRk9STSBTSUdOIEdBTDtMbzswO0w7Ozs7O047Ozs7OworMTIwRjM7Q1VORUlGT1JNIFNJR04gR0FMIEdBRCBPVkVSIEdBRCBHQVIgT1ZFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEY0O0NVTkVJRk9STSBTSUdOIEdBTEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGNTtDVU5FSUZPUk0gU0lHTiBHQU07TG87MDtMOzs7OztOOzs7OzsKKzEyMEY2O0NVTkVJRk9STSBTSUdOIEdBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwRjc7Q1VORUlGT1JNIFNJR04gR0FOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRjg7Q1VORUlGT1JNIFNJR04gR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGOTtDVU5FSUZPUk0gU0lHTiBHQU4yIE9WRVIgR0FOMjtMbzswO0w7Ozs7O047Ozs7OworMTIwRkE7Q1VORUlGT1JNIFNJR04gR0FOMiBDUk9TU0lORyBHQU4yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBGQjtDVU5FSUZPUk0gU0lHTiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMEZDO0NVTkVJRk9STSBTSUdOIEdBUjM7TG87MDtMOzs7OztOOzs7OzsKKzEyMEZEO0NVTkVJRk9STSBTSUdOIEdBU0hBTjtMbzswO0w7Ozs7O047Ozs7OworMTIwRkU7Q1VORUlGT1JNIFNJR04gR0VTSFRJTjtMbzswO0w7Ozs7O047Ozs7OworMTIwRkY7Q1VORUlGT1JNIFNJR04gR0VTSFRJTiBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTAwO0NVTkVJRk9STSBTSUdOIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwMTtDVU5FSUZPUk0gU0lHTiBHSSBUSU1FUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwMjtDVU5FSUZPUk0gU0lHTiBHSSBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwMztDVU5FSUZPUk0gU0lHTiBHSSBDUk9TU0lORyBHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxMDQ7Q1VORUlGT1JNIFNJR04gR0k0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwNTtDVU5FSUZPUk0gU0lHTiBHSTQgT1ZFUiBHSTQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA2O0NVTkVJRk9STSBTSUdOIEdJNCBDUk9TU0lORyBHSTQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA3O0NVTkVJRk9STSBTSUdOIEdJRElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwODtDVU5FSUZPUk0gU0lHTiBHSVIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwOTtDVU5FSUZPUk0gU0lHTiBHSVIyIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTBBO0NVTkVJRk9STSBTSUdOIEdJUjM7TG87MDtMOzs7OztOOzs7OzsKKzEyMTBCO0NVTkVJRk9STSBTSUdOIEdJUjMgVElNRVMgQSBQTFVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxMEM7Q1VORUlGT1JNIFNJR04gR0lSMyBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTBEO0NVTkVJRk9STSBTSUdOIEdJUjMgVElNRVMgSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwRTtDVU5FSUZPUk0gU0lHTiBHSVIzIFRJTUVTIExVIFBMVVMgSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwRjtDVU5FSUZPUk0gU0lHTiBHSVIzIFRJTUVTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExMDtDVU5FSUZPUk0gU0lHTiBHSVNBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxMTE7Q1VORUlGT1JNIFNJR04gR0lTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxMTI7Q1VORUlGT1JNIFNJR04gR0lTSCBDUk9TU0lORyBHSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExMztDVU5FSUZPUk0gU0lHTiBHSVNIIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxMTQ7Q1VORUlGT1JNIFNJR04gR0lTSCBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExNTtDVU5FSUZPUk0gU0lHTiBHSVNIIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTE2O0NVTkVJRk9STSBTSUdOIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExNztDVU5FSUZPUk0gU0lHTiBHVSBDUk9TU0lORyBHVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMTg7Q1VORUlGT1JNIFNJR04gR1UyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExOTtDVU5FSUZPUk0gU0lHTiBHVTIgVElNRVMgS0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExQTtDVU5FSUZPUk0gU0lHTiBHVTIgVElNRVMgS0FLIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExQjtDVU5FSUZPUk0gU0lHTiBHVTIgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExQztDVU5FSUZPUk0gU0lHTiBHVTIgVElNRVMgU0FMIFBMVVMgVFVHMjtMbzswO0w7Ozs7O047Ozs7OworMTIxMUQ7Q1VORUlGT1JNIFNJR04gR1UyIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTFFO0NVTkVJRk9STSBTSUdOIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxMUY7Q1VORUlGT1JNIFNJR04gR1VEIFRJTUVTIEEgUExVUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTIwO0NVTkVJRk9STSBTSUdOIEdVRCBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTIxO0NVTkVJRk9STSBTSUdOIEdVRCBPVkVSIEdVRCBMVUdBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxMjI7Q1VORUlGT1JNIFNJR04gR1VMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEyMztDVU5FSUZPUk0gU0lHTiBHVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMTI0O0NVTkVJRk9STSBTSUdOIEdVTSBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI1O0NVTkVJRk9STSBTSUdOIEdVUjtMbzswO0w7Ozs7O047Ozs7OworMTIxMjY7Q1VORUlGT1JNIFNJR04gR1VSNztMbzswO0w7Ozs7O047Ozs7OworMTIxMjc7Q1VORUlGT1JNIFNJR04gR1VSVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMTI4O0NVTkVJRk9STSBTSUdOIEdVUlVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxMjk7Q1VORUlGT1JNIFNJR04gSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJBO0NVTkVJRk9STSBTSUdOIEhBIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJCO0NVTkVJRk9STSBTSUdOIEhBIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJDO0NVTkVJRk9STSBTSUdOIEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxMkQ7Q1VORUlGT1JNIFNJR04gSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTJFO0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxMkY7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIxMzA7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzMTtDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBESVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzMjtDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBHQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTMzO0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIEtJTjtMbzswO0w7Ozs7O047Ozs7OworMTIxMzQ7Q1VORUlGT1JNIFNJR04gSEkgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzNTtDVU5FSUZPUk0gU0lHTiBISSBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM2O0NVTkVJRk9STSBTSUdOIEhJIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM3O0NVTkVJRk9STSBTSUdOIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzODtDVU5FSUZPUk0gU0lHTiBIVUIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzOTtDVU5FSUZPUk0gU0lHTiBIVUIyIFRJTUVTIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzQTtDVU5FSUZPUk0gU0lHTiBIVUIyIFRJTUVTIEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxM0I7Q1VORUlGT1JNIFNJR04gSFVCMiBUSU1FUyBLQVNLQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTNDO0NVTkVJRk9STSBTSUdOIEhVQjIgVElNRVMgTElTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxM0Q7Q1VORUlGT1JNIFNJR04gSFVCMiBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxM0U7Q1VORUlGT1JNIFNJR04gSFVMMjtMbzswO0w7Ozs7O047Ozs7OworMTIxM0Y7Q1VORUlGT1JNIFNJR04gSTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDA7Q1VORUlGT1JNIFNJR04gSSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0MTtDVU5FSUZPUk0gU0lHTiBJQjtMbzswO0w7Ozs7O047Ozs7OworMTIxNDI7Q1VORUlGT1JNIFNJR04gSURJTTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDM7Q1VORUlGT1JNIFNJR04gSURJTSBPVkVSIElESU0gQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0NDtDVU5FSUZPUk0gU0lHTiBJRElNIE9WRVIgSURJTSBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0NTtDVU5FSUZPUk0gU0lHTiBJRztMbzswO0w7Ozs7O047Ozs7OworMTIxNDY7Q1VORUlGT1JNIFNJR04gSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0NztDVU5FSUZPUk0gU0lHTiBJR0kgRElCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0ODtDVU5FSUZPUk0gU0lHTiBJR0kgUkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQ5O0NVTkVJRk9STSBTSUdOIElHSSBPVkVSIElHSSBTSElSIE9WRVIgU0hJUiBVRCBPVkVSIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0QTtDVU5FSUZPUk0gU0lHTiBJR0kgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxNEI7Q1VORUlGT1JNIFNJR04gSUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTRDO0NVTkVJRk9STSBTSUdOIElMIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxNEQ7Q1VORUlGT1JNIFNJR04gSUwyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE0RTtDVU5FSUZPUk0gU0lHTiBJTTtMbzswO0w7Ozs7O047Ozs7OworMTIxNEY7Q1VORUlGT1JNIFNJR04gSU0gVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIxNTA7Q1VORUlGT1JNIFNJR04gSU0gQ1JPU1NJTkcgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMTUxO0NVTkVJRk9STSBTSUdOIElNIE9QUE9TSU5HIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1MjtDVU5FSUZPUk0gU0lHTiBJTSBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1MztDVU5FSUZPUk0gU0lHTiBJTUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1NDtDVU5FSUZPUk0gU0lHTiBJTjtMbzswO0w7Ozs7O047Ozs7OworMTIxNTU7Q1VORUlGT1JNIFNJR04gSVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTU2O0NVTkVJRk9STSBTSUdOIElTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxNTc7Q1VORUlGT1JNIFNJR04gS0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTU4O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTU5O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1QTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBBRCBQTFVTIEtVMztMbzswO0w7Ozs7O047Ozs7OworMTIxNUI7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIxNUM7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1RDtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBCQUxBRztMbzswO0w7Ozs7O047Ozs7OworMTIxNUU7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgQkFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1RjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBCSTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjA7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgRVJJTjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTYxO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEVTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTYyO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2MztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY0O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdBTjIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjU7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE2NjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBHQVIgUExVUyBTSEEzIFBMVVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjc7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY4O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdJUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY5O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdJU0ggUExVUyBTQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMTZBO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdJU0ggQ1JPU1NJTkcgR0lTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxNkI7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMTZDO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEdVUjc7TG87MDtMOzs7OztOOzs7OzsKKzEyMTZEO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIElHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxNkU7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMTZGO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEtBSztMbzswO0w7Ozs7O047Ozs7OworMTIxNzA7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMTcxO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIEtJRDtMbzswO0w7Ozs7O047Ozs7OworMTIxNzI7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTczO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3NDtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNzU7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTUUgUExVUyBEVTtMbzswO0w7Ozs7O047Ozs7OworMTIxNzY7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTUUgUExVUyBHSTtMbzswO0w7Ozs7O047Ozs7OworMTIxNzc7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTUUgUExVUyBURTtMbzswO0w7Ozs7O047Ozs7OworMTIxNzg7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTc5O0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE1JIFBMVVMgTlVOVVo7TG87MDtMOzs7OztOOzs7OzsKKzEyMTdBO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3QjtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMTdDO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3RDtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBSVTtMbzswO0w7Ozs7O047Ozs7OworMTIxN0U7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTdGO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxODA7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4MTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTgyO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNISUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMTgzO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFNIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxODQ7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgU0lHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4NTtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBTVUhVUjtMbzswO0w7Ozs7O047Ozs7OworMTIxODY7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgVEFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4NztDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE4ODtDVU5FSUZPUk0gU0lHTiBLQSBUSU1FUyBVMjtMbzswO0w7Ozs7O047Ozs7OworMTIxODk7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMThBO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFVNVU0gVElNRVMgUEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMThCO0NVTkVJRk9STSBTSUdOIEtBIFRJTUVTIFVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxOEM7Q1VORUlGT1JNIFNJR04gS0EgVElNRVMgWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMThEO0NVTkVJRk9STSBTSUdOIEtBMjtMbzswO0w7Ozs7O047Ozs7OworMTIxOEU7Q1VORUlGT1JNIFNJR04gS0EyIENST1NTSU5HIEtBMjtMbzswO0w7Ozs7O047Ozs7OworMTIxOEY7Q1VORUlGT1JNIFNJR04gS0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5MDtDVU5FSUZPUk0gU0lHTiBLQUQyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5MTtDVU5FSUZPUk0gU0lHTiBLQUQzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5MjtDVU5FSUZPUk0gU0lHTiBLQUQ0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5MztDVU5FSUZPUk0gU0lHTiBLQUQ1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5NDtDVU5FSUZPUk0gU0lHTiBLQUQ1IE9WRVIgS0FENTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTU7Q1VORUlGT1JNIFNJR04gS0FLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5NjtDVU5FSUZPUk0gU0lHTiBLQUsgVElNRVMgSUdJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk3O0NVTkVJRk9STSBTSUdOIEtBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxOTg7Q1VORUlGT1JNIFNJR04gS0FMIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxOTk7Q1VORUlGT1JNIFNJR04gS0FMIENST1NTSU5HIEtBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxOUE7Q1VORUlGT1JNIFNJR04gS0FNMjtMbzswO0w7Ozs7O047Ozs7OworMTIxOUI7Q1VORUlGT1JNIFNJR04gS0FNNDtMbzswO0w7Ozs7O047Ozs7OworMTIxOUM7Q1VORUlGT1JNIFNJR04gS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE5RDtDVU5FSUZPUk0gU0lHTiBLQVNLQUwgTEFHQUIgVElNRVMgVSBPVkVSIExBR0FCIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTlFO0NVTkVJRk9STSBTSUdOIEtBU0tBTCBPVkVSIEtBU0tBTCBMQUdBQiBUSU1FUyBVIE9WRVIgTEFHQUIgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIxOUY7Q1VORUlGT1JNIFNJR04gS0VTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUEwO0NVTkVJRk9STSBTSUdOIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBMTtDVU5FSUZPUk0gU0lHTiBLSSBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUEyO0NVTkVJRk9STSBTSUdOIEtJIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUEzO0NVTkVJRk9STSBTSUdOIEtJIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBNDtDVU5FSUZPUk0gU0lHTiBLSUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE1O0NVTkVJRk9STSBTSUdOIEtJTjtMbzswO0w7Ozs7O047Ozs7OworMTIxQTY7Q1VORUlGT1JNIFNJR04gS0lTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE3O0NVTkVJRk9STSBTSUdOIEtJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE4O0NVTkVJRk9STSBTSUdOIEtJU0lNNTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTk7Q1VORUlGT1JNIFNJR04gS0lTSU01IE9WRVIgS0lTSU01O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBQTtDVU5FSUZPUk0gU0lHTiBLVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQUI7Q1VORUlGT1JNIFNJR04gS1UgT1ZFUiBISSBUSU1FUyBBU0gyIEtVIE9WRVIgSEkgVElNRVMgQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIxQUM7Q1VORUlGT1JNIFNJR04gS1UzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFBRDtDVU5FSUZPUk0gU0lHTiBLVTQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUFFO0NVTkVJRk9STSBTSUdOIEtVNCBWQVJJQU5UIEZPUk07TG87MDtMOzs7OztOOzs7OzsKKzEyMUFGO0NVTkVJRk9STSBTSUdOIEtVNztMbzswO0w7Ozs7O047Ozs7OworMTIxQjA7Q1VORUlGT1JNIFNJR04gS1VMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCMTtDVU5FSUZPUk0gU0lHTiBLVUwgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjI7Q1VORUlGT1JNIFNJR04gS1VOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCMztDVU5FSUZPUk0gU0lHTiBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI0O0NVTkVJRk9STSBTSUdOIEtVUiBPUFBPU0lORyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI1O0NVTkVJRk9STSBTSUdOIEtVU0hVMjtMbzswO0w7Ozs7O047Ozs7OworMTIxQjY7Q1VORUlGT1JNIFNJR04gS1dVMzE4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCNztDVU5FSUZPUk0gU0lHTiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjg7Q1VORUlGT1JNIFNJR04gTEFHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI5O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUJBO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEEgUExVUyBEQSBQTFVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCQjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBIFBMVVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCQztDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBIFBMVVMgTEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFCRDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxQkU7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMUJGO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEFTSCBaSURBIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUMwO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxQzE7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMUMyO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIERBUjtMbzswO0w7Ozs7O047Ozs7OworMTIxQzM7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMUM0O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDNTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM2O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIxQzc7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgR1VEIFBMVVMgR1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDODtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxQzk7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDQTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBISSBUSU1FUyBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMUNCO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDQztDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBJTTtMbzswO0w7Ozs7O047Ozs7OworMTIxQ0Q7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSU0gUExVUyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxQ0U7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgSU0gUExVUyBMVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQ0Y7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQwO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEtJTjtMbzswO0w7Ozs7O047Ozs7OworMTIxRDE7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgS1UzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEMjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBLVUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQzO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIEtVTCBQTFVTIEhJIFBMVVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIxRDQ7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgTEFHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQ1O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIExJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQ2O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFENztDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBMVUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUQ4O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEOTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBNRSBQTFVTIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEQTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBNVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEQjtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBORTtMbzswO0w7Ozs7O047Ozs7OworMTIxREM7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgU0hFIFBMVVMgU1VNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFERDtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBTSElUQSBQTFVTIEdJU0ggUExVUyBFUklOMjtMbzswO0w7Ozs7O047Ozs7OworMTIxREU7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgU0hJVEEgUExVUyBHSVNIIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMURGO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMUUwO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFNIVTIgUExVUyBTSFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFMTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBTVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMUUyO0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFRBRztMbzswO0w7Ozs7O047Ozs7OworMTIxRTM7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVEFLNDtMbzswO0w7Ozs7O047Ozs7OworMTIxRTQ7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVEUgUExVUyBBIFBMVVMgU1UgUExVUyBOQTtMbzswO0w7Ozs7O047Ozs7OworMTIxRTU7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIxRTY7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVSBQTFVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU3O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFUgUExVUyBVIFBMVVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIxRTg7Q1VORUlGT1JNIFNJR04gTEFHQUIgVElNRVMgVTIgUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMUU5O0NVTkVJRk9STSBTSUdOIExBR0FCIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFQTtDVU5FSUZPUk0gU0lHTiBMQUdBQiBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMUVCO0NVTkVJRk9STSBTSUdOIExBR0FCIFNRVUFSRUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMUVDO0NVTkVJRk9STSBTSUdOIExBR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFRDtDVU5FSUZPUk0gU0lHTiBMQUdBUiBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUVFO0NVTkVJRk9STSBTSUdOIExBR0FSIFRJTUVTIFNIRSBQTFVTIFNVTTtMbzswO0w7Ozs7O047Ozs7OworMTIxRUY7Q1VORUlGT1JNIFNJR04gTEFHQVIgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIxRjA7Q1VORUlGT1JNIFNJR04gTEFHQVIgR1VOVSBPVkVSIExBR0FSIEdVTlUgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGMTtDVU5FSUZPUk0gU0lHTiBMQUhTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUYyO0NVTkVJRk9STSBTSUdOIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxRjM7Q1VORUlGT1JNIFNJR04gTEFMIFRJTUVTIExBTDtMbzswO0w7Ozs7O047Ozs7OworMTIxRjQ7Q1VORUlGT1JNIFNJR04gTEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGNTtDVU5FSUZPUk0gU0lHTiBMQU0gVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGNjtDVU5FSUZPUk0gU0lHTiBMQU0gVElNRVMgS1VSIFBMVVMgUlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUY3O0NVTkVJRk9STSBTSUdOIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGODtDVU5FSUZPUk0gU0lHTiBMSUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUY5O0NVTkVJRk9STSBTSUdOIExJTU1VMjtMbzswO0w7Ozs7O047Ozs7OworMTIxRkE7Q1VORUlGT1JNIFNJR04gTElTSDtMbzswO0w7Ozs7O047Ozs7OworMTIxRkI7Q1VORUlGT1JNIFNJR04gTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUZDO0NVTkVJRk9STSBTSUdOIExVIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIxRkQ7Q1VORUlGT1JNIFNJR04gTFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGRTtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMUZGO0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjAwO0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBFU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwMTtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgRVNIMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwMjtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwMztDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgSEkgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwNDtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMjA1O0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBLQUQyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwNjtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgS0FEMztMbzswO0w7Ozs7O047Ozs7OworMTIyMDc7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIEtBRDMgUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjA4O0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDk7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIExBIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwQTtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgTEFHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjBCO0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBNRSBQTFVTIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwQztDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjBEO0NVTkVJRk9STSBTSUdOIExVMiBUSU1FUyBOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMEU7Q1VORUlGT1JNIFNJR04gTFUyIFRJTUVTIFNJIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIwRjtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgU0lLMiBQTFVTIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxMDtDVU5FSUZPUk0gU0lHTiBMVTIgVElNRVMgVFVHMjtMbzswO0w7Ozs7O047Ozs7OworMTIyMTE7Q1VORUlGT1JNIFNJR04gTFUyIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjEyO0NVTkVJRk9STSBTSUdOIExVMiBDUk9TU0lORyBMVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjEzO0NVTkVJRk9STSBTSUdOIExVMiBPUFBPU0lORyBMVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE0O0NVTkVJRk9STSBTSUdOIExVMiBTUVVBUkVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxNTtDVU5FSUZPUk0gU0lHTiBMVTIgU0hFU0hJRztMbzswO0w7Ozs7O047Ozs7OworMTIyMTY7Q1VORUlGT1JNIFNJR04gTFUzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxNztDVU5FSUZPUk0gU0lHTiBMVUdBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyMTg7Q1VORUlGT1JNIFNJR04gTFVHQUwgT1ZFUiBMVUdBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyMTk7Q1VORUlGT1JNIFNJR04gTFVHQUwgT1BQT1NJTkcgTFVHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMjFBO0NVTkVJRk9STSBTSUdOIExVR0FMIFNIRVNISUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMjFCO0NVTkVJRk9STSBTSUdOIExVSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMUM7Q1VORUlGT1JNIFNJR04gTFVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxRDtDVU5FSUZPUk0gU0lHTiBMVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMjFFO0NVTkVJRk9STSBTSUdOIExVTSBPVkVSIExVTTtMbzswO0w7Ozs7O047Ozs7OworMTIyMUY7Q1VORUlGT1JNIFNJR04gTFVNIE9WRVIgTFVNIEdBUiBPVkVSIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyMjA7Q1VORUlGT1JNIFNJR04gTUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjIxO0NVTkVJRk9STSBTSUdOIE1BIFRJTUVTIFRBSzQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjIyO0NVTkVJRk9STSBTSUdOIE1BIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjIzO0NVTkVJRk9STSBTSUdOIE1BMjtMbzswO0w7Ozs7O047Ozs7OworMTIyMjQ7Q1VORUlGT1JNIFNJR04gTUFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyNTtDVU5FSUZPUk0gU0lHTiBNQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjI2O0NVTkVJRk9STSBTSUdOIE1BU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjI3O0NVTkVJRk9STSBTSUdOIE1BU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyODtDVU5FSUZPUk0gU0lHTiBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIyMjk7Q1VORUlGT1JNIFNJR04gTUVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyQTtDVU5FSUZPUk0gU0lHTiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMkI7Q1VORUlGT1JNIFNJR04gTUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyQztDVU5FSUZPUk0gU0lHTiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMkQ7Q1VORUlGT1JNIFNJR04gTVUgT1ZFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMkU7Q1VORUlGT1JNIFNJR04gTVVHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyRjtDVU5FSUZPUk0gU0lHTiBNVUcgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMzA7Q1VORUlGT1JNIFNJR04gTVVOU1VCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzMTtDVU5FSUZPUk0gU0lHTiBNVVJHVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjMyO0NVTkVJRk9STSBTSUdOIE1VU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjMzO0NVTkVJRk9STSBTSUdOIE1VU0ggVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyMzQ7Q1VORUlGT1JNIFNJR04gTVVTSCBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM1O0NVTkVJRk9STSBTSUdOIE1VU0ggVElNRVMgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM2O0NVTkVJRk9STSBTSUdOIE1VU0ggT1ZFUiBNVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzNztDVU5FSUZPUk0gU0lHTiBNVVNIIE9WRVIgTVVTSCBUSU1FUyBBIFBMVVMgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM4O0NVTkVJRk9STSBTSUdOIE1VU0ggQ1JPU1NJTkcgTVVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyMzk7Q1VORUlGT1JNIFNJR04gTVVTSDM7TG87MDtMOzs7OztOOzs7OzsKKzEyMjNBO0NVTkVJRk9STSBTSUdOIE1VU0gzIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjNCO0NVTkVJRk9STSBTSUdOIE1VU0gzIFRJTUVTIEEgUExVUyBESTtMbzswO0w7Ozs7O047Ozs7OworMTIyM0M7Q1VORUlGT1JNIFNJR04gTVVTSDMgVElNRVMgREk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjNEO0NVTkVJRk9STSBTSUdOIE1VU0gzIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjNFO0NVTkVJRk9STSBTSUdOIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIzRjtDVU5FSUZPUk0gU0lHTiBOQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQwO0NVTkVJRk9STSBTSUdOIE5BR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQxO0NVTkVJRk9STSBTSUdOIE5BR0EgSU5WRVJURUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQyO0NVTkVJRk9STSBTSUdOIE5BR0EgVElNRVMgU0hVIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQzO0NVTkVJRk9STSBTSUdOIE5BR0EgT1BQT1NJTkcgTkFHQTtMbzswO0w7Ozs7O047Ozs7OworMTIyNDQ7Q1VORUlGT1JNIFNJR04gTkFHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQ1O0NVTkVJRk9STSBTSUdOIE5BTSBOVVRJTExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0NjtDVU5FSUZPUk0gU0lHTiBOQU07TG87MDtMOzs7OztOOzs7OzsKKzEyMjQ3O0NVTkVJRk9STSBTSUdOIE5BTTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjQ4O0NVTkVJRk9STSBTSUdOIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0OTtDVU5FSUZPUk0gU0lHTiBORSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0QTtDVU5FSUZPUk0gU0lHTiBORSBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyNEI7Q1VORUlGT1JNIFNJR04gTkUgU0hFU0hJRztMbzswO0w7Ozs7O047Ozs7OworMTIyNEM7Q1VORUlGT1JNIFNJR04gTkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjREO0NVTkVJRk9STSBTSUdOIE5JIFRJTUVTIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjRFO0NVTkVJRk9STSBTSUdOIE5JMjtMbzswO0w7Ozs7O047Ozs7OworMTIyNEY7Q1VORUlGT1JNIFNJR04gTklNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1MDtDVU5FSUZPUk0gU0lHTiBOSU0gVElNRVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1MTtDVU5FSUZPUk0gU0lHTiBOSU0gVElNRVMgR0FSIFBMVVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1MjtDVU5FSUZPUk0gU0lHTiBOSU5EQTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjUzO0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTIyNTQ7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyNTU7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIEFTSCBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyNTY7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyNTc7Q1VORUlGT1JNIFNJR04gTklOREEyIFRJTUVTIE1FIFBMVVMgR0FOMiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1ODtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU5O0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjVBO0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjVCO0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBTSEUgUExVUyBBIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1QztDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgU0hFIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1RDtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgU0hFIFBMVVMgQVNIIFBMVVMgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1RTtDVU5FSUZPUk0gU0lHTiBOSU5EQTIgVElNRVMgVTIgUExVUyBBU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjVGO0NVTkVJRk9STSBTSUdOIE5JTkRBMiBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjYwO0NVTkVJRk9STSBTSUdOIE5JU0FHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2MTtDVU5FSUZPUk0gU0lHTiBOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyNjI7Q1VORUlGT1JNIFNJR04gTlUxMTtMbzswO0w7Ozs7O047Ozs7OworMTIyNjM7Q1VORUlGT1JNIFNJR04gTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2NDtDVU5FSUZPUk0gU0lHTiBOVU4gTEFHQVIgVElNRVMgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2NTtDVU5FSUZPUk0gU0lHTiBOVU4gTEFHQVIgVElNRVMgTUFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyNjY7Q1VORUlGT1JNIFNJR04gTlVOIExBR0FSIFRJTUVTIFNBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyNjc7Q1VORUlGT1JNIFNJR04gTlVOIExBR0FSIFRJTUVTIFNBTCBPVkVSIE5VTiBMQUdBUiBUSU1FUyBTQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMjY4O0NVTkVJRk9STSBTSUdOIE5VTiBMQUdBUiBUSU1FUyBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMjY5O0NVTkVJRk9STSBTSUdOIE5VTiBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2QTtDVU5FSUZPUk0gU0lHTiBOVU4gT1ZFUiBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjZCO0NVTkVJRk9STSBTSUdOIE5VTiBDUk9TU0lORyBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjZDO0NVTkVJRk9STSBTSUdOIE5VTiBDUk9TU0lORyBOVU4gTEFHQVIgT1ZFUiBMQUdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyNkQ7Q1VORUlGT1JNIFNJR04gTlVOVVo7TG87MDtMOzs7OztOOzs7OzsKKzEyMjZFO0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBBU0hHQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjZGO0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBCSTtMbzswO0w7Ozs7O047Ozs7OworMTIyNzA7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIERVRztMbzswO0w7Ozs7O047Ozs7OworMTIyNzE7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyNzI7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIElHSSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3MztDVU5FSUZPUk0gU0lHTiBOVU5VWiBBQjIgVElNRVMgS0FEMztMbzswO0w7Ozs7O047Ozs7OworMTIyNzQ7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3NTtDVU5FSUZPUk0gU0lHTiBOVU5VWiBBQjIgVElNRVMgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjc2O0NVTkVJRk9STSBTSUdOIE5VTlVaIEFCMiBUSU1FUyBTSUxBMztMbzswO0w7Ozs7O047Ozs7OworMTIyNzc7Q1VORUlGT1JNIFNJR04gTlVOVVogQUIyIFRJTUVTIFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3ODtDVU5FSUZPUk0gU0lHTiBOVU5VWiBLSVNJTTUgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjc5O0NVTkVJRk9STSBTSUdOIE5VTlVaIEtJU0lNNSBUSU1FUyBCSSBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3QTtDVU5FSUZPUk0gU0lHTiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTIyN0I7Q1VORUlGT1JNIFNJR04gUEFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI3QztDVU5FSUZPUk0gU0lHTiBQQU47TG87MDtMOzs7OztOOzs7OzsKKzEyMjdEO0NVTkVJRk9STSBTSUdOIFBBUDtMbzswO0w7Ozs7O047Ozs7OworMTIyN0U7Q1VORUlGT1JNIFNJR04gUEVTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjdGO0NVTkVJRk9STSBTSUdOIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4MDtDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4MTtDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBBQjtMbzswO0w7Ozs7O047Ozs7OworMTIyODI7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjgzO0NVTkVJRk9STSBTSUdOIFBJIFRJTUVTIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4NDtDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4NTtDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4NjtDVU5FSUZPUk0gU0lHTiBQSSBUSU1FUyBJQjtMbzswO0w7Ozs7O047Ozs7OworMTIyODc7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIyODg7Q1VORUlGT1JNIFNJR04gUEkgVElNRVMgVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjg5O0NVTkVJRk9STSBTSUdOIFBJIENST1NTSU5HIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4QTtDVU5FSUZPUk0gU0lHTiBQSVJJRztMbzswO0w7Ozs7O047Ozs7OworMTIyOEI7Q1VORUlGT1JNIFNJR04gUElSSUcgVElNRVMgS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4QztDVU5FSUZPUk0gU0lHTiBQSVJJRyBUSU1FUyBVRDtMbzswO0w7Ozs7O047Ozs7OworMTIyOEQ7Q1VORUlGT1JNIFNJR04gUElSSUcgVElNRVMgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjhFO0NVTkVJRk9STSBTSUdOIFBJUklHIE9QUE9TSU5HIFBJUklHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4RjtDVU5FSUZPUk0gU0lHTiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTA7Q1VORUlGT1JNIFNJR04gUkFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5MTtDVU5FSUZPUk0gU0lHTiBSSTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTI7Q1VORUlGT1JNIFNJR04gUlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjkzO0NVTkVJRk9STSBTSUdOIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5NDtDVU5FSUZPUk0gU0lHTiBTQUcgTlVUSUxMVTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTU7Q1VORUlGT1JNIFNJR04gU0FHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5NjtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTc7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5ODtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgRFVCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5OTtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjlBO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBLQUs7TG87MDtMOzs7OztOOzs7OzsKKzEyMjlCO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMjlDO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBMVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMjlEO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIyOUU7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIE5VTjtMbzswO0w7Ozs7O047Ozs7OworMTIyOUY7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIFNBTDtMbzswO0w7Ozs7O047Ozs7OworMTIyQTA7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIFNISUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMkExO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBUQUI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkEyO0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBVMjtMbzswO0w7Ozs7O047Ozs7OworMTIyQTM7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIFVCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBNDtDVU5FSUZPUk0gU0lHTiBTQUcgVElNRVMgVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMkE1O0NVTkVJRk9STSBTSUdOIFNBRyBUSU1FUyBVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyQTY7Q1VORUlGT1JNIFNJR04gU0FHIFRJTUVTIFVTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyQTc7Q1VORUlGT1JNIFNJR04gU0FHIE9WRVIgU0FHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBODtDVU5FSUZPUk0gU0lHTiBTQUcgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyQTk7Q1VORUlGT1JNIFNJR04gU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBQTtDVU5FSUZPUk0gU0lHTiBTQUwgTEFHQUIgVElNRVMgQVNIMjtMbzswO0w7Ozs7O047Ozs7OworMTIyQUI7Q1VORUlGT1JNIFNJR04gU0FOR0EyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBQztDVU5FSUZPUk0gU0lHTiBTQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkFEO0NVTkVJRk9STSBTSUdOIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQUU7Q1VORUlGT1JNIFNJR04gU0hBMztMbzswO0w7Ozs7O047Ozs7OworMTIyQUY7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCMDtDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIEJBRDtMbzswO0w7Ozs7O047Ozs7OworMTIyQjE7Q1VORUlGT1JNIFNJR04gU0hBMyBUSU1FUyBHSVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCMjtDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCMztDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIFNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkI0O0NVTkVJRk9STSBTSUdOIFNIQTMgVElNRVMgVFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCNTtDVU5FSUZPUk0gU0lHTiBTSEEzIFRJTUVTIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkI2O0NVTkVJRk9STSBTSUdOIFNIQTMgVElNRVMgVSBQTFVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkI3O0NVTkVJRk9STSBTSUdOIFNIQTY7TG87MDtMOzs7OztOOzs7OzsKKzEyMkI4O0NVTkVJRk9STSBTSUdOIFNIQUI2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCOTtDVU5FSUZPUk0gU0lHTiBTSEFSMjtMbzswO0w7Ozs7O047Ozs7OworMTIyQkE7Q1VORUlGT1JNIFNJR04gU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCQjtDVU5FSUZPUk0gU0lHTiBTSEUgSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkJDO0NVTkVJRk9STSBTSUdOIFNIRSBPVkVSIFNIRSBHQUQgT1ZFUiBHQUQgR0FSIE9WRVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCRDtDVU5FSUZPUk0gU0lHTiBTSEUgT1ZFUiBTSEUgVEFCIE9WRVIgVEFCIEdBUiBPVkVSIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyQkU7Q1VORUlGT1JNIFNJR04gU0hFRzk7TG87MDtMOzs7OztOOzs7OzsKKzEyMkJGO0NVTkVJRk9STSBTSUdOIFNIRU47TG87MDtMOzs7OztOOzs7OzsKKzEyMkMwO0NVTkVJRk9STSBTSUdOIFNIRVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDMTtDVU5FSUZPUk0gU0lHTiBTSEVTSDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkMyO0NVTkVJRk9STSBTSUdOIFNIRVNITEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDMztDVU5FSUZPUk0gU0lHTiBTSElEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDNDtDVU5FSUZPUk0gU0lHTiBTSElEIFRJTUVTIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkM1O0NVTkVJRk9STSBTSUdOIFNISUQgVElNRVMgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMkM2O0NVTkVJRk9STSBTSUdOIFNISU07TG87MDtMOzs7OztOOzs7OzsKKzEyMkM3O0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQzg7Q1VORUlGT1JNIFNJR04gU0hJTSBUSU1FUyBCQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMkM5O0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgQlVMVUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMkNBO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgRElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDQjtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTIyQ0M7Q1VORUlGT1JNIFNJR04gU0hJTSBUSU1FUyBJR0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMkNEO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgSUdJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkNFO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgS1VTSFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJDRjtDVU5FSUZPUk0gU0lHTiBTSElNIFRJTUVTIExVTDtMbzswO0w7Ozs7O047Ozs7OworMTIyRDA7Q1VORUlGT1JNIFNJR04gU0hJTSBUSU1FUyBNVUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQxO0NVTkVJRk9STSBTSUdOIFNISU0gVElNRVMgU0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEMjtDVU5FSUZPUk0gU0lHTiBTSElOSUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQzO0NVTkVJRk9STSBTSUdOIFNISVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ0O0NVTkVJRk9STSBTSUdOIFNISVIgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRDU7Q1VORUlGT1JNIFNJR04gU0hJUiBPVkVSIFNISVIgQlVSIE9WRVIgQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJENjtDVU5FSUZPUk0gU0lHTiBTSElUQTtMbzswO0w7Ozs7O047Ozs7OworMTIyRDc7Q1VORUlGT1JNIFNJR04gU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEODtDVU5FSUZPUk0gU0lHTiBTSFUgT1ZFUiBJTlZFUlRFRCBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ5O0NVTkVJRk9STSBTSUdOIFNIVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkRBO0NVTkVJRk9STSBTSUdOIFNIVUJVUjtMbzswO0w7Ozs7O047Ozs7OworMTIyREI7Q1VORUlGT1JNIFNJR04gU0k7TG87MDtMOzs7OztOOzs7OzsKKzEyMkRDO0NVTkVJRk9STSBTSUdOIFNJIEdVTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkREO0NVTkVJRk9STSBTSUdOIFNJRztMbzswO0w7Ozs7O047Ozs7OworMTIyREU7Q1VORUlGT1JNIFNJR04gU0lHNDtMbzswO0w7Ozs7O047Ozs7OworMTIyREY7Q1VORUlGT1JNIFNJR04gU0lHNCBPVkVSIFNJRzQgU0hVMjtMbzswO0w7Ozs7O047Ozs7OworMTIyRTA7Q1VORUlGT1JNIFNJR04gU0lLMjtMbzswO0w7Ozs7O047Ozs7OworMTIyRTE7Q1VORUlGT1JNIFNJR04gU0lMQTM7TG87MDtMOzs7OztOOzs7OzsKKzEyMkUyO0NVTkVJRk9STSBTSUdOIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFMztDVU5FSUZPUk0gU0lHTiBTVSBPVkVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFNDtDVU5FSUZPUk0gU0lHTiBTVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU1O0NVTkVJRk9STSBTSUdOIFNVRDI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU2O0NVTkVJRk9STSBTSUdOIFNVSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFNztDVU5FSUZPUk0gU0lHTiBTVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMkU4O0NVTkVJRk9STSBTSUdOIFNVTUFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyRTk7Q1VORUlGT1JNIFNJR04gU1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFQTtDVU5FSUZPUk0gU0lHTiBTVVI5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFQjtDVU5FSUZPUk0gU0lHTiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTIyRUM7Q1VORUlGT1JNIFNJR04gVEEgQVNURVJJU0s7TG87MDtMOzs7OztOOzs7OzsKKzEyMkVEO0NVTkVJRk9STSBTSUdOIFRBIFRJTUVTIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFRTtDVU5FSUZPUk0gU0lHTiBUQSBUSU1FUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIyRUY7Q1VORUlGT1JNIFNJR04gVEEgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIyRjA7Q1VORUlGT1JNIFNJR04gVEFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGMTtDVU5FSUZPUk0gU0lHTiBUQUIgT1ZFUiBUQUIgTkkgT1ZFUiBOSSBESVNIIE9WRVIgRElTSDtMbzswO0w7Ozs7O047Ozs7OworMTIyRjI7Q1VORUlGT1JNIFNJR04gVEFCIFNRVUFSRUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMkYzO0NVTkVJRk9STSBTSUdOIFRBRztMbzswO0w7Ozs7O047Ozs7OworMTIyRjQ7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGNTtDVU5FSUZPUk0gU0lHTiBUQUcgVElNRVMgR1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGNjtDVU5FSUZPUk0gU0lHTiBUQUcgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGNztDVU5FSUZPUk0gU0lHTiBUQUcgVElNRVMgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGODtDVU5FSUZPUk0gU0lHTiBUQUcgVElNRVMgVFVHMjtMbzswO0w7Ozs7O047Ozs7OworMTIyRjk7Q1VORUlGT1JNIFNJR04gVEFHIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGQTtDVU5FSUZPUk0gU0lHTiBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGQjtDVU5FSUZPUk0gU0lHTiBUQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMkZDO0NVTkVJRk9STSBTSUdOIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGRDtDVU5FSUZPUk0gU0lHTiBURSBHVU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGRTtDVU5FSUZPUk0gU0lHTiBUSTtMbzswO0w7Ozs7O047Ozs7OworMTIyRkY7Q1VORUlGT1JNIFNJR04gVEkgVEVOVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMDA7Q1VORUlGT1JNIFNJR04gVElMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwMTtDVU5FSUZPUk0gU0lHTiBUSVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzAyO0NVTkVJRk9STSBTSUdOIFRJUiBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwMztDVU5FSUZPUk0gU0lHTiBUSVIgT1ZFUiBUSVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzA0O0NVTkVJRk9STSBTSUdOIFRJUiBPVkVSIFRJUiBHQUQgT1ZFUiBHQUQgR0FSIE9WRVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwNTtDVU5FSUZPUk0gU0lHTiBUVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMDY7Q1VORUlGT1JNIFNJR04gVFVHMjtMbzswO0w7Ozs7O047Ozs7OworMTIzMDc7Q1VORUlGT1JNIFNJR04gVFVLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwODtDVU5FSUZPUk0gU0lHTiBUVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMzA5O0NVTkVJRk9STSBTSUdOIFRVUjtMbzswO0w7Ozs7O047Ozs7OworMTIzMEE7Q1VORUlGT1JNIFNJR04gVFVSIE9WRVIgVFVSIFpBIE9WRVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzBCO0NVTkVJRk9STSBTSUdOIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzBDO0NVTkVJRk9STSBTSUdOIFUgR1VEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwRDtDVU5FSUZPUk0gU0lHTiBVIFUgVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMEU7Q1VORUlGT1JNIFNJR04gVSBPVkVSIFUgUEEgT1ZFUiBQQSBHQVIgT1ZFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzBGO0NVTkVJRk9STSBTSUdOIFUgT1ZFUiBVIFNVUiBPVkVSIFNVUjtMbzswO0w7Ozs7O047Ozs7OworMTIzMTA7Q1VORUlGT1JNIFNJR04gVSBPVkVSIFUgVSBSRVZFUlNFRCBPVkVSIFUgUkVWRVJTRUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzExO0NVTkVJRk9STSBTSUdOIFUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxMjtDVU5FSUZPUk0gU0lHTiBVQjtMbzswO0w7Ozs7O047Ozs7OworMTIzMTM7Q1VORUlGT1JNIFNJR04gVUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzE0O0NVTkVJRk9STSBTSUdOIFVEIEtVU0hVMjtMbzswO0w7Ozs7O047Ozs7OworMTIzMTU7Q1VORUlGT1JNIFNJR04gVUQgVElNRVMgQkFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxNjtDVU5FSUZPUk0gU0lHTiBVRCBUSU1FUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIzMTc7Q1VORUlGT1JNIFNJR04gVUQgVElNRVMgVSBQTFVTIFUgUExVUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxODtDVU5FSUZPUk0gU0lHTiBVRCBUSU1FUyBVIFBMVVMgVSBQTFVTIFUgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMTk7Q1VORUlGT1JNIFNJR04gVUQgR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMUE7Q1VORUlGT1JNIFNJR04gVUQgU0hFU0hJRztMbzswO0w7Ozs7O047Ozs7OworMTIzMUI7Q1VORUlGT1JNIFNJR04gVUQgU0hFU0hJRyBUSU1FUyBCQUQ7TG87MDtMOzs7OztOOzs7OzsKKzEyMzFDO0NVTkVJRk9STSBTSUdOIFVEVUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMzFEO0NVTkVJRk9STSBTSUdOIFVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxRTtDVU5FSUZPUk0gU0lHTiBVTSBUSU1FUyBMQUdBQjtMbzswO0w7Ozs7O047Ozs7OworMTIzMUY7Q1VORUlGT1JNIFNJR04gVU0gVElNRVMgTUUgUExVUyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjA7Q1VORUlGT1JNIFNJR04gVU0gVElNRVMgU0hBMztMbzswO0w7Ozs7O047Ozs7OworMTIzMjE7Q1VORUlGT1JNIFNJR04gVU0gVElNRVMgVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjI7Q1VORUlGT1JNIFNJR04gVU1CSU47TG87MDtMOzs7OztOOzs7OzsKKzEyMzIzO0NVTkVJRk9STSBTSUdOIFVNVU07TG87MDtMOzs7OztOOzs7OzsKKzEyMzI0O0NVTkVJRk9STSBTSUdOIFVNVU0gVElNRVMgS0FTS0FMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyNTtDVU5FSUZPUk0gU0lHTiBVTVVNIFRJTUVTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyNjtDVU5FSUZPUk0gU0lHTiBVTjtMbzswO0w7Ozs7O047Ozs7OworMTIzMjc7Q1VORUlGT1JNIFNJR04gVU4gR1VOVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjg7Q1VORUlGT1JNIFNJR04gVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzI5O0NVTkVJRk9STSBTSUdOIFVSIENST1NTSU5HIFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyQTtDVU5FSUZPUk0gU0lHTiBVUiBTSEVTSElHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyQjtDVU5FSUZPUk0gU0lHTiBVUjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzJDO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBBIFBMVVMgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzJEO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBBIFBMVVMgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzJFO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBBTDtMbzswO0w7Ozs7O047Ozs7OworMTIzMkY7Q1VORUlGT1JNIFNJR04gVVIyIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzMDtDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzMTtDVU5FSUZPUk0gU0lHTiBVUjIgVElNRVMgVTI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzMyO0NVTkVJRk9STSBTSUdOIFVSMiBUSU1FUyBVMiBQTFVTIEFTSDtMbzswO0w7Ozs7O047Ozs7OworMTIzMzM7Q1VORUlGT1JNIFNJR04gVVIyIFRJTUVTIFUyIFBMVVMgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMzM0O0NVTkVJRk9STSBTSUdOIFVSNDtMbzswO0w7Ozs7O047Ozs7OworMTIzMzU7Q1VORUlGT1JNIFNJR04gVVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzNjtDVU5FSUZPUk0gU0lHTiBVUkkzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzNztDVU5FSUZPUk0gU0lHTiBVUlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzM4O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzOTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgQVNIR0FCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzQTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgQkFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzQjtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgRFVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzQztDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMzNEO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBHQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMzNFO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBHQU4yIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzNGO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQwO0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBHVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDE7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0MjtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgSUdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0MztDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgSU07TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ0O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBJU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ1O0NVTkVJRk9STSBTSUdOIFVSVSBUSU1FUyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDY7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIExVTTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDc7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIE1JTjtMbzswO0w7Ozs7O047Ozs7OworMTIzNDg7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0OTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0QTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgU0lHNDtMbzswO0w7Ozs7O047Ozs7OworMTIzNEI7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0QztDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgVSBQTFVTIEdVRDtMbzswO0w7Ozs7O047Ozs7OworMTIzNEQ7Q1VORUlGT1JNIFNJR04gVVJVIFRJTUVTIFVEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM0RTtDVU5FSUZPUk0gU0lHTiBVUlUgVElNRVMgVVJVREE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzRGO0NVTkVJRk9STSBTSUdOIFVSVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1MDtDVU5FSUZPUk0gU0lHTiBVUlVEQSBUSU1FUyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1MTtDVU5FSUZPUk0gU0lHTiBVU0g7TG87MDtMOzs7OztOOzs7OzsKKzEyMzUyO0NVTkVJRk9STSBTSUdOIFVTSCBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1MztDVU5FSUZPUk0gU0lHTiBVU0ggVElNRVMgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU0O0NVTkVJRk9STSBTSUdOIFVTSCBUSU1FUyBLVVI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU1O0NVTkVJRk9STSBTSUdOIFVTSCBUSU1FUyBUQUs0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1NjtDVU5FSUZPUk0gU0lHTiBVU0hYO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1NztDVU5FSUZPUk0gU0lHTiBVU0gyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1ODtDVU5FSUZPUk0gU0lHTiBVU0hVTVg7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU5O0NVTkVJRk9STSBTSUdOIFVUVUtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1QTtDVU5FSUZPUk0gU0lHTiBVWjM7TG87MDtMOzs7OztOOzs7OzsKKzEyMzVCO0NVTkVJRk9STSBTSUdOIFVaMyBUSU1FUyBLQVNLQUw7TG87MDtMOzs7OztOOzs7OzsKKzEyMzVDO0NVTkVJRk9STSBTSUdOIFVaVTtMbzswO0w7Ozs7O047Ozs7OworMTIzNUQ7Q1VORUlGT1JNIFNJR04gWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzVFO0NVTkVJRk9STSBTSUdOIFpBIFRFTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzVGO0NVTkVJRk9STSBTSUdOIFpBIFNRVUFSRUQgVElNRVMgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2MDtDVU5FSUZPUk0gU0lHTiBaQUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMzYxO0NVTkVJRk9STSBTSUdOIFpBTVg7TG87MDtMOzs7OztOOzs7OzsKKzEyMzYyO0NVTkVJRk9STSBTSUdOIFpFMjtMbzswO0w7Ozs7O047Ozs7OworMTIzNjM7Q1VORUlGT1JNIFNJR04gWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY0O0NVTkVJRk9STSBTSUdOIFpJIE9WRVIgWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY1O0NVTkVJRk9STSBTSUdOIFpJMztMbzswO0w7Ozs7O047Ozs7OworMTIzNjY7Q1VORUlGT1JNIFNJR04gWklCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2NztDVU5FSUZPUk0gU0lHTiBaSUIgS0FCQSBURU5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2ODtDVU5FSUZPUk0gU0lHTiBaSUc7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY5O0NVTkVJRk9STSBTSUdOIFpJWjI7TG87MDtMOzs7OztOOzs7OzsKKzEyMzZBO0NVTkVJRk9STSBTSUdOIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2QjtDVU5FSUZPUk0gU0lHTiBaVTU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzZDO0NVTkVJRk9STSBTSUdOIFpVNSBUSU1FUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2RDtDVU5FSUZPUk0gU0lHTiBaVUJVUjtMbzswO0w7Ozs7O047Ozs7OworMTIzNkU7Q1VORUlGT1JNIFNJR04gWlVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQwMDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBBU0g7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQwMTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIEFTSDtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDAyO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBBU0g7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQwMztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgQVNIO05sOzA7TDs7Ozs1O047Ozs7OworMTI0MDQ7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSVggQVNIO05sOzA7TDs7Ozs2O047Ozs7OworMTI0MDU7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTRVZFTiBBU0g7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQwNjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIEFTSDtObDswO0w7Ozs7ODtOOzs7OzsKKzEyNDA3O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBBU0g7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CisxMjQwODtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIERJU0g7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQwOTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgRElTSDtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDBBO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBESVNIO05sOzA7TDs7Ozs1O047Ozs7OworMTI0MEI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSVggRElTSDtObDswO0w7Ozs7NjtOOzs7OzsKKzEyNDBDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0VWRU4gRElTSDtObDswO0w7Ozs7NztOOzs7OzsKKzEyNDBEO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRUlHSFQgRElTSDtObDswO0w7Ozs7ODtOOzs7OzsKKzEyNDBFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBESVNIO05sOzA7TDs7Ozs5O047Ozs7OworMTI0MEY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIFU7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQxMDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgVTtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDExO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIFU7Tmw7MDtMOzs7OzY7Tjs7Ozs7CisxMjQxMjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIFU7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQxMztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIFU7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQxNDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE5JTkUgVTtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDE1O0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIEdFU0gyO05sOzA7TDs7OzsxO047Ozs7OworMTI0MTY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gR0VTSDI7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQxNztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIEdFU0gyO05sOzA7TDs7OzszO047Ozs7OworMTI0MTg7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIEdFU0gyO05sOzA7TDs7Ozs0O047Ozs7OworMTI0MTk7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIEdFU0gyO05sOzA7TDs7Ozs1O047Ozs7OworMTI0MUE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSVggR0VTSDI7Tmw7MDtMOzs7OzY7Tjs7Ozs7CisxMjQxQjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIEdFU0gyO05sOzA7TDs7Ozs3O047Ozs7OworMTI0MUM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBFSUdIVCBHRVNIMjtObDswO0w7Ozs7ODtOOzs7OzsKKzEyNDFEO0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBHRVNIMjtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDFFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIEdFU0hVO05sOzA7TDs7OzsxO047Ozs7OworMTI0MUY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gR0VTSFU7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQyMDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIEdFU0hVO05sOzA7TDs7OzszO047Ozs7OworMTI0MjE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIEdFU0hVO05sOzA7TDs7Ozs0O047Ozs7OworMTI0MjI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIEdFU0hVO05sOzA7TDs7Ozs1O047Ozs7OworMTI0MjM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gU0hBUjI7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQyNDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIFNIQVIyO05sOzA7TDs7OzszO047Ozs7OworMTI0MjU7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBTSEFSMiBWQVJJQU5UIEZPUk07Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQyNjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgU0hBUjI7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CisxMjQyNztDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZJVkUgU0hBUjI7Tmw7MDtMOzs7OzU7Tjs7Ozs7CisxMjQyODtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNJWCBTSEFSMjtObDswO0w7Ozs7NjtOOzs7OzsKKzEyNDI5O0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0VWRU4gU0hBUjI7Tmw7MDtMOzs7Ozc7Tjs7Ozs7CisxMjQyQTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIFNIQVIyO05sOzA7TDs7Ozs4O047Ozs7OworMTI0MkI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSU5FIFNIQVIyO05sOzA7TDs7Ozs5O047Ozs7OworMTI0MkM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgU0hBUlU7Tmw7MDtMOzs7OzE7Tjs7Ozs7CisxMjQyRDtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBTSEFSVTtObDswO0w7Ozs7MjtOOzs7OzsKKzEyNDJFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgU0hBUlU7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQyRjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIFNIQVJVIFZBUklBTlQgRk9STTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDMwO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBTSEFSVTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDMxO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBTSEFSVTtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDMyO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0hBUjIgVElNRVMgR0FMIFBMVVMgRElTSDtObDswO0w7Ozs7O047Ozs7OworMTI0MzM7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSEFSMiBUSU1FUyBHQUwgUExVUyBNSU47Tmw7MDtMOzs7OztOOzs7OzsKKzEyNDM0O0NVTkVJRk9STSBOVU1FUklDIFNJR04gT05FIEJVUlU7Tmw7MDtMOzs7OzE7Tjs7Ozs7CisxMjQzNTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRXTyBCVVJVO05sOzA7TDs7OzsyO047Ozs7OworMTI0MzY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBCVVJVO05sOzA7TDs7OzszO047Ozs7OworMTI0Mzc7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBCVVJVIFZBUklBTlQgRk9STTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDM4O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBCVVJVO05sOzA7TDs7Ozs0O047Ozs7OworMTI0Mzk7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIEJVUlU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CisxMjQzQTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIFZBUklBTlQgRk9STSBFU0gxNjtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDNCO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVEhSRUUgVkFSSUFOVCBGT1JNIEVTSDIxO05sOzA7TDs7OzszO047Ozs7OworMTI0M0M7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIFZBUklBTlQgRk9STSBMSU1NVTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDNEO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBWQVJJQU5UIEZPUk0gTElNTVU0O05sOzA7TDs7Ozs0O047Ozs7OworMTI0M0U7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIFZBUklBTlQgRk9STSBMSU1NVSBBO05sOzA7TDs7Ozs0O047Ozs7OworMTI0M0Y7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGT1VSIFZBUklBTlQgRk9STSBMSU1NVSBCO05sOzA7TDs7Ozs0O047Ozs7OworMTI0NDA7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBTSVggVkFSSUFOVCBGT1JNIEFTSDk7Tmw7MDtMOzs7OzY7Tjs7Ozs7CisxMjQ0MTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFNFVkVOIFZBUklBTlQgRk9STSBJTUlOMztObDswO0w7Ozs7NztOOzs7OzsKKzEyNDQyO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0VWRU4gVkFSSUFOVCBGT1JNIElNSU4gQTtObDswO0w7Ozs7NztOOzs7OzsKKzEyNDQzO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0VWRU4gVkFSSUFOVCBGT1JNIElNSU4gQjtObDswO0w7Ozs7NztOOzs7OzsKKzEyNDQ0O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRUlHSFQgVkFSSUFOVCBGT1JNIFVTU1U7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CisxMjQ0NTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEVJR0hUIFZBUklBTlQgRk9STSBVU1NVMztObDswO0w7Ozs7ODtOOzs7OzsKKzEyNDQ2O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklORSBWQVJJQU5UIEZPUk0gSUxJTU1VO05sOzA7TDs7Ozs5O047Ozs7OworMTI0NDc7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSU5FIFZBUklBTlQgRk9STSBJTElNTVUzO05sOzA7TDs7Ozs5O047Ozs7OworMTI0NDg7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSU5FIFZBUklBTlQgRk9STSBJTElNTVU0O05sOzA7TDs7Ozs5O047Ozs7OworMTI0NDk7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSU5FIFZBUklBTlQgRk9STSBJTElNTVUgQTtObDswO0w7Ozs7OTtOOzs7OzsKKzEyNDRBO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIEFTSCBURU5VO05sOzA7TDs7OzsyO047Ozs7OworMTI0NEI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUSFJFRSBBU0ggVEVOVTtObDswO0w7Ozs7MztOOzs7OzsKKzEyNDRDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBBU0ggVEVOVTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDREO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBBU0ggVEVOVTtObDswO0w7Ozs7NTtOOzs7OzsKKzEyNDRFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gU0lYIEFTSCBURU5VO05sOzA7TDs7Ozs2O047Ozs7OworMTI0NEY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgQkFOMjtObDswO0w7Ozs7MTtOOzs7OzsKKzEyNDUwO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIEJBTjI7Tmw7MDtMOzs7OzI7Tjs7Ozs7CisxMjQ1MTtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIFRIUkVFIEJBTjI7Tmw7MDtMOzs7OzM7Tjs7Ozs7CisxMjQ1MjtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIEZPVVIgQkFOMjtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDUzO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRk9VUiBCQU4yIFZBUklBTlQgRk9STTtObDswO0w7Ozs7NDtOOzs7OzsKKzEyNDU0O0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBCQU4yO05sOzA7TDs7Ozs1O047Ozs7OworMTI0NTU7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBGSVZFIEJBTjIgVkFSSUFOVCBGT1JNO05sOzA7TDs7Ozs1O047Ozs7OworMTI0NTY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBOSUdJREFNSU47Tmw7MDtMOzs7OztOOzs7OzsKKzEyNDU3O0NVTkVJRk9STSBOVU1FUklDIFNJR04gTklHSURBRVNIO05sOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ1ODtDVU5FSUZPUk0gTlVNRVJJQyBTSUdOIE9ORSBFU0hFMztObDswO0w7Ozs7MTtOOzs7OzsKKzEyNDU5O0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIEVTSEUzO05sOzA7TDs7OzsyO047Ozs7OworMTI0NUE7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgVEhJUkQgRElTSDtObDswO0w7Ozs7MS8zO047Ozs7OworMTI0NUI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBUV08gVEhJUkRTIERJU0g7Tmw7MDtMOzs7OzIvMztOOzs7OzsKKzEyNDVDO0NVTkVJRk9STSBOVU1FUklDIFNJR04gRklWRSBTSVhUSFMgRElTSDtObDswO0w7Ozs7NS82O047Ozs7OworMTI0NUQ7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgVEhJUkQgVkFSSUFOVCBGT1JNIEE7Tmw7MDtMOzs7OzEvMztOOzs7OzsKKzEyNDVFO0NVTkVJRk9STSBOVU1FUklDIFNJR04gVFdPIFRISVJEUyBWQVJJQU5UIEZPUk0gQTtObDswO0w7Ozs7Mi8zO047Ozs7OworMTI0NUY7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgRUlHSFRIIEFTSDtObDswO0w7Ozs7MS84O047Ozs7OworMTI0NjA7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTkUgUVVBUlRFUiBBU0g7Tmw7MDtMOzs7OzEvNDtOOzs7OzsKKzEyNDYxO0NVTkVJRk9STSBOVU1FUklDIFNJR04gT0xEIEFTU1lSSUFOIE9ORSBTSVhUSDtObDswO0w7Ozs7MS82O047Ozs7OworMTI0NjI7Q1VORUlGT1JNIE5VTUVSSUMgU0lHTiBPTEQgQVNTWVJJQU4gT05FIFFVQVJURVI7Tmw7MDtMOzs7OzEvNDtOOzs7OzsKKzEyNDcwO0NVTkVJRk9STSBQVU5DVFVBVElPTiBTSUdOIE9MRCBBU1NZUklBTiBXT1JEIERJVklERVI7UG87MDtMOzs7OztOOzs7OzsKKzEyNDcxO0NVTkVJRk9STSBQVU5DVFVBVElPTiBTSUdOIFZFUlRJQ0FMIENPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ3MjtDVU5FSUZPUk0gUFVOQ1RVQVRJT04gU0lHTiBESUFHT05BTCBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTI0NzM7Q1VORUlGT1JNIFBVTkNUVUFUSU9OIFNJR04gRElBR09OQUwgVFJJQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzFEMDAwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERBU0VJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFUklTUE9NRU5JO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1hFSUEgRUtGT05JVElLT047U287MDtMOzs7OztOOzs7OzsKKzFEMDA0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQSBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMDY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEhJU1RJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lSTUFUSUtJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDBBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9LUklTSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDBCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9LUklTSVMgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDBDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkVNQVNUSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQRVNPIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVhPIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEVMRUlBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPUztTbzswO0w7Ozs7O047Ozs7OworMUQwMTI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1MgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDEzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5FVk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhJVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDE1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPTElHT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSEFNSUxPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBVEhZO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSVNPTiBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTQVhJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUklDSE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RBVlJPUyBBUE9ERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBSSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQUkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9ERVJNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1RIRU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0xBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUkVWTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDI2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQSUFTTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDI3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUSU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQU5BVFJJQ0hJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0VJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lOQUdNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZTkFHTUEgTUVUQSBTVEFWUk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1lSQU5JU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDJFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRU1PSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERZTztTbzswO0w7Ozs7O047Ozs7OworMUQwMzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDMxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBURVNTRVJBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBFU08gRVhPIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwMzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElNSUZUSE9SQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0FUQVZBIFRST01JS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEVMQVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDM5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lGSVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDNBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT05URVZNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwM0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIT1JFVk1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUkFQSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwM0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLQUxFU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0kgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDNGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJQ0hBRElOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTkFOQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT05URVZNQSBBTExPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT04gQUxMTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUUkFHR0lTTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdST05USElTTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTT04gTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT0xJR09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTVEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDRBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTVE9LT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTU9LT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFTEFTVE9OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQSBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQSBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBTSUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPUyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDUyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9JIFNZTkRFU01PUyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDUzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9SUk9JO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNT1lQT1JST09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRUxBRlJPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIQU1JTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDU3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNSUtST04gSVNPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDU5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQSUFTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9NQUxPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOVElLRU5PTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDVEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMWUdJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0kgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtBTEVTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVRFUk9OIFBBUkFLQUxFU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1lMSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOVElLRU5PS1lMSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVLU1RSRVBUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDY1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5BR01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZUk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hPUkVWTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVBFR0VSTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDY5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTRUlTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWElST04gS0xBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2QjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT1BTSUZJU1RPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09MWUdJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT1BBUkFLQUxFU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9QQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09TWU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9TWU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09TWU5USEVUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDczO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVRFUk9OIEFSR09TWU5USEVUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDc1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWVJBTklTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUFUSVNNT1MgRVNPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUFUSVNNT1MgRVhPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUEgQVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFUyBLQUkgQVBPVEhFUztTbzswO0w7Ozs7O047Ozs7OworMUQwN0E7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEFWQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwN0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVORE9GT05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwN0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRU4gS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwN0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRU4gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RBVlJPUztTbzswO0w7Ozs7O047Ozs7OworMUQwN0Y7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMDgwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESVBMSSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwODE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDgyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIEFMTE87U287MDtMOzs7OztOOzs7OzsKKzFEMDgzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwODQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT0RFUk1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwODU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRFVFJBUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09ST05JUztTbzswO0w7Ozs7O047Ozs7OworMUQwOEE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBFTk9TIENIUk9OT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMDhCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgRFlPIENIUk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDhDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgVFJJT04gQ0hST05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBURVNTQVJPTiBDSFJPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIElNSVNFT1MgQ0hST05PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwOEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPTiBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDkxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gUEFSRVNUSUdNRU5PTiBERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOTI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBBUklTVEVSQSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBBUklTVEVSQSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMDk1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUdPUkdPTiBQQVJFU1RJR01FTk9OIERFWElBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJJR09SR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJHT047U287MDtMOzs7OztOOzs7OzsKKzFEMDk4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlESUFSR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIFBPTEkgQVJHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEFSR09URVJJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5QztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQUdPR0kgQVJHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIE1FVFJJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIE1FU0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBHT1JHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEdPUkdPVEVSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIFBPTEkgR09SR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMEEyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQUk9UT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEEzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBBTExJIFBST1RPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIERFWVRFUk9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgQUxMSSBERVlURVJPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRSSVRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRSSUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRFVEFSVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgVEVUQVJUT1MgTEVHRVRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIExFR0VUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQTEFHSU9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSVNBS0lBIFRFTE9VUyBJQ0hJTUFUT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9JIFRFTE9VUyBJQ0hJTUFUT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgVEVUUkFGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEFGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgTU9OT0ZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZBTkVST1NJUyBESUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFZBUllTIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUFJPVE9WQVJZUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFBMQUdJT1MgVEVUQVJUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEI0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JUSE1JS09OIE4gQVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SVEhNSUtPTiBOIERJUExPVU47U287MDtMOzs7OztOOzs7OzsKKzFEMEI2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFTkFSWElTIEtBSSBGVEhPUkEgVk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMEI4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlGVEhPUk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIEFSQ0hBSU9OIERFWVRFUk9VIElDSE9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBQQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgTkFOQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBOQU9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIERJQVRPTk9OIERJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBLRTtTbzswO0w7Ozs7O047Ozs7OworMUQwQzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgWk87U287MDtMOzs7OztOOzs7OzsKKzFEMEMxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5JIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEMyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5JIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwQzM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBNQUxBS09OIENIUk9NQSBESUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBNQUxBS09OIENIUk9NQSBNT05PRk9OSUFTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkhUT1JBIFNLTElST04gQ0hST01BIFZBU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIFNLTElST04gQ0hST01BIFNZTkFGSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBORU5BTk87U287MDtMOzs7OztOOzs7OzsKKzFEMEM4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBaWUdPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIUk9BIEtMSVRPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0E7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIUk9BIFNQQVRISTtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBJIFlGRVNJUyBURVRBUlRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIEVOQVJNT05JT1MgQU5USUZPTklBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIFRSSVRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRSSVRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRFVEFSVElNT1JJT047U287MDtMOzs7OztOOzs7OzsKKzFEMEQwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgQVBMSSBEWU8gRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgTU9OT0dSQU1NT1MgVEVTU0VSQSBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBESUdSQU1NT1MgRVggRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgVFJJR1JBTU1PUyBPS1RPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIEFQTEkgRFlPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIE1PTk9HUkFNTU9TIFRFU1NFUkEgRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVTSVMgRElHUkFNTU9TIEVYIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIFRSSUdSQU1NT1MgT0tUTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdFTklLSSBESUVTSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHRU5JS0kgWUZFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgQVBMSSBNSUtSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwREI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIEFQTEkgTUVHQUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMEREO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUFTVE9MSSBUSEVTRU9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBERTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgVEhFU0VPUztTbzswO0w7Ozs7O047Ozs7OworMUQwREY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1MgRElTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1MgVFJJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIFRFVFJBU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEUzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgRElTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIEFSU0VPUyBUUklTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIEFSU0VPUyBURVRSQVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHUkFNTUEgR0c7U287MDtMOzs7OztOOzs7OzsKKzFEMEU3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUZUT0dHT1MgT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTVElHTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMEU5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIFBBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBWT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEVCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIEdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gS0U7U287MDtMOzs7OztOOzs7OzsKKzFEMEVFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIFpPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBOSTtTbzswO0w7Ozs7O047Ozs7OworMUQwRjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQSBORU8gTUVTTztTbzswO0w7Ozs7O047Ozs7OworMUQwRjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgTkVPIE1FU087U287MDtMOzs7OztOOzs7OzsKKzFEMEYyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEYzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0xBU01BIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEY1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gTkVPIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMTAwO01VU0lDQUwgU1lNQk9MIFNJTkdMRSBCQVJMSU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwMTtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDI7TVVTSUNBTCBTWU1CT0wgRklOQUwgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDM7TVVTSUNBTCBTWU1CT0wgUkVWRVJTRSBGSU5BTCBCQVJMSU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwNDtNVVNJQ0FMIFNZTUJPTCBEQVNIRUQgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDU7TVVTSUNBTCBTWU1CT0wgU0hPUlQgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDY7TVVTSUNBTCBTWU1CT0wgTEVGVCBSRVBFQVQgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMUQxMDc7TVVTSUNBTCBTWU1CT0wgUklHSFQgUkVQRUFUIFNJR047U287MDtMOzs7OztOOzs7OzsKKzFEMTA4O01VU0lDQUwgU1lNQk9MIFJFUEVBVCBET1RTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwOTtNVVNJQ0FMIFNZTUJPTCBEQUwgU0VHTk87U287MDtMOzs7OztOOzs7OzsKKzFEMTBBO01VU0lDQUwgU1lNQk9MIERBIENBUE87U287MDtMOzs7OztOOzs7OzsKKzFEMTBCO01VU0lDQUwgU1lNQk9MIFNFR05PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQztNVVNJQ0FMIFNZTUJPTCBDT0RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwRDtNVVNJQ0FMIFNZTUJPTCBSRVBFQVRFRCBGSUdVUkUtMTtTbzswO0w7Ozs7O047Ozs7OworMUQxMEU7TVVTSUNBTCBTWU1CT0wgUkVQRUFURUQgRklHVVJFLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTBGO01VU0lDQUwgU1lNQk9MIFJFUEVBVEVEIEZJR1VSRS0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMDtNVVNJQ0FMIFNZTUJPTCBGRVJNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMTtNVVNJQ0FMIFNZTUJPTCBGRVJNQVRBIEJFTE9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMjtNVVNJQ0FMIFNZTUJPTCBCUkVBVEggTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxMTM7TVVTSUNBTCBTWU1CT0wgQ0FFU1VSQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMTQ7TVVTSUNBTCBTWU1CT0wgQlJBQ0U7U287MDtMOzs7OztOOzs7OzsKKzFEMTE1O01VU0lDQUwgU1lNQk9MIEJSQUNLRVQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTE2O01VU0lDQUwgU1lNQk9MIE9ORS1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNztNVVNJQ0FMIFNZTUJPTCBUV08tTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTg7TVVTSUNBTCBTWU1CT0wgVEhSRUUtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTk7TVVTSUNBTCBTWU1CT0wgRk9VUi1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQTtNVVNJQ0FMIFNZTUJPTCBGSVZFLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTFCO01VU0lDQUwgU1lNQk9MIFNJWC1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQztNVVNJQ0FMIFNZTUJPTCBTSVgtU1RSSU5HIEZSRVRCT0FSRDtTbzswO0w7Ozs7O047Ozs7OworMUQxMUQ7TVVTSUNBTCBTWU1CT0wgRk9VUi1TVFJJTkcgRlJFVEJPQVJEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExRTtNVVNJQ0FMIFNZTUJPTCBHIENMRUY7U287MDtMOzs7OztOOzs7OzsKKzFEMTFGO01VU0lDQUwgU1lNQk9MIEcgQ0xFRiBPVFRBVkEgQUxUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjA7TVVTSUNBTCBTWU1CT0wgRyBDTEVGIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjE7TVVTSUNBTCBTWU1CT0wgQyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyMjtNVVNJQ0FMIFNZTUJPTCBGIENMRUY7U287MDtMOzs7OztOOzs7OzsKKzFEMTIzO01VU0lDQUwgU1lNQk9MIEYgQ0xFRiBPVFRBVkEgQUxUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjQ7TVVTSUNBTCBTWU1CT0wgRiBDTEVGIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjU7TVVTSUNBTCBTWU1CT0wgRFJVTSBDTEVGLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTI2O01VU0lDQUwgU1lNQk9MIERSVU0gQ0xFRi0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQTtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgU0hBUlA7U287MDtMOzs7OztOOzs7OzsKKzFEMTJCO01VU0lDQUwgU1lNQk9MIERPVUJMRSBGTEFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQztNVVNJQ0FMIFNZTUJPTCBGTEFUIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRDtNVVNJQ0FMIFNZTUJPTCBGTEFUIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTJFO01VU0lDQUwgU1lNQk9MIE5BVFVSQUwgVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTJGO01VU0lDQUwgU1lNQk9MIE5BVFVSQUwgRE9XTjtTbzswO0w7Ozs7O047Ozs7OworMUQxMzA7TVVTSUNBTCBTWU1CT0wgU0hBUlAgVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTMxO01VU0lDQUwgU1lNQk9MIFNIQVJQIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTMyO01VU0lDQUwgU1lNQk9MIFFVQVJURVIgVE9ORSBTSEFSUDtTbzswO0w7Ozs7O047Ozs7OworMUQxMzM7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBUT05FIEZMQVQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTM0O01VU0lDQUwgU1lNQk9MIENPTU1PTiBUSU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNTtNVVNJQ0FMIFNZTUJPTCBDVVQgVElNRTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzY7TVVTSUNBTCBTWU1CT0wgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTM3O01VU0lDQUwgU1lNQk9MIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzg7TVVTSUNBTCBTWU1CT0wgUVVJTkRJQ0VTSU1BIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTM5O01VU0lDQUwgU1lNQk9MIFFVSU5ESUNFU0lNQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxM0E7TVVTSUNBTCBTWU1CT0wgTVVMVEkgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0I7TVVTSUNBTCBTWU1CT0wgV0hPTEUgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0M7TVVTSUNBTCBTWU1CT0wgSEFMRiBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRDtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNFO01VU0lDQUwgU1lNQk9MIEVJR0hUSCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRjtNVVNJQ0FMIFNZTUJPTCBTSVhURUVOVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDA7TVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0MTtNVVNJQ0FMIFNZTUJPTCBTSVhUWS1GT1VSVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDI7TVVTSUNBTCBTWU1CT0wgT05FIEhVTkRSRUQgVFdFTlRZLUVJR0hUSCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0MztNVVNJQ0FMIFNZTUJPTCBYIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NDtNVVNJQ0FMIFNZTUJPTCBQTFVTIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NTtNVVNJQ0FMIFNZTUJPTCBDSVJDTEUgWCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDY7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIE5PVEVIRUFEIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NztNVVNJQ0FMIFNZTUJPTCBTUVVBUkUgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTQ4O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFVQIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0OTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEE7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgTEVGVCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNEI7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgTEVGVCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEM7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgUklHSFQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTREO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFJJR0hUIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBET1dOIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RjtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBET1dOIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBSSUdIVCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNTE7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgUklHSFQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTUyO01VU0lDQUwgU1lNQk9MIE1PT04gTk9URUhFQUQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTUzO01VU0lDQUwgU1lNQk9MIE1PT04gTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU0O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFLVJPVU5EIE5PVEVIRUFEIERPV04gV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTU1O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFLVJPVU5EIE5PVEVIRUFEIERPV04gQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU2O01VU0lDQUwgU1lNQk9MIFBBUkVOVEhFU0lTIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NztNVVNJQ0FMIFNZTUJPTCBWT0lEIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1ODtNVVNJQ0FMIFNZTUJPTCBOT1RFSEVBRCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNTk7TVVTSUNBTCBTWU1CT0wgTlVMTCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNUE7TVVTSUNBTCBTWU1CT0wgQ0xVU1RFUiBOT1RFSEVBRCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNUI7TVVTSUNBTCBTWU1CT0wgQ0xVU1RFUiBOT1RFSEVBRCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNUM7TVVTSUNBTCBTWU1CT0wgQlJFVkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVEO01VU0lDQUwgU1lNQk9MIFdIT0xFIE5PVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVFO01VU0lDQUwgU1lNQk9MIEhBTEYgTk9URTtTbzswO0w7MUQxNTcgMUQxNjU7Ozs7Tjs7Ozs7CisxRDE1RjtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIE5PVEU7U287MDtMOzFEMTU4IDFEMTY1Ozs7O047Ozs7OworMUQxNjA7TVVTSUNBTCBTWU1CT0wgRUlHSFRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTZFOzs7O047Ozs7OworMUQxNjE7TVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTZGOzs7O047Ozs7OworMUQxNjI7TVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE3MDs7OztOOzs7OzsKKzFEMTYzO01VU0lDQUwgU1lNQk9MIFNJWFRZLUZPVVJUSCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE3MTs7OztOOzs7OzsKKzFEMTY0O01VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggTk9URTtTbzswO0w7MUQxNUYgMUQxNzI7Ozs7Tjs7Ozs7CisxRDE2NTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RFTTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE2NjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1BSRUNIR0VTQU5HIFNURU07TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNjc7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSRU1PTE8tMTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxRDE2ODtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJFTU9MTy0yO01uOzE7TlNNOzs7OztOOzs7OzsKKzFEMTY5O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBUUkVNT0xPLTM7TW47MTtOU007Ozs7O047Ozs7OworMUQxNkE7TVVTSUNBTCBTWU1CT0wgRklOR0VSRUQgVFJFTU9MTy0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2QjtNVVNJQ0FMIFNZTUJPTCBGSU5HRVJFRCBUUkVNT0xPLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTZDO01VU0lDQUwgU1lNQk9MIEZJTkdFUkVEIFRSRU1PTE8tMztTbzswO0w7Ozs7O047Ozs7OworMUQxNkQ7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFVR01FTlRBVElPTiBET1Q7TWM7MjI2O0w7Ozs7O047Ozs7OworMUQxNkU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctMTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE2RjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy0yO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTcwO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTM7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNzE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctNDtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy01O01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTczO01VU0lDQUwgU1lNQk9MIEJFR0lOIEJFQU07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NDtNVVNJQ0FMIFNZTUJPTCBFTkQgQkVBTTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc1O01VU0lDQUwgU1lNQk9MIEJFR0lOIFRJRTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc2O01VU0lDQUwgU1lNQk9MIEVORCBUSUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NztNVVNJQ0FMIFNZTUJPTCBCRUdJTiBTTFVSO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzg7TVVTSUNBTCBTWU1CT0wgRU5EIFNMVVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3OTtNVVNJQ0FMIFNZTUJPTCBCRUdJTiBQSFJBU0U7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3QTtNVVNJQ0FMIFNZTUJPTCBFTkQgUEhSQVNFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxN0I7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFDQ0VOVDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdDO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBTVEFDQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdEO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBURU5VVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RBQ0NBVElTU0lNTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdGO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBNQVJDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODA7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIE1BUkNBVE8tU1RBQ0NBVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4MTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgQUNDRU5ULVNUQUNDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIExPVVJFO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODM7TVVTSUNBTCBTWU1CT0wgQVJQRUdHSUFUTyBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxODQ7TVVTSUNBTCBTWU1CT0wgQVJQRUdHSUFUTyBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4NTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRE9JVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg2O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBSSVA7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4NztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxJUDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg4O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBTTUVBUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg5O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBCRU5EO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxOEE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIERPVUJMRSBUT05HVUU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4QjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJJUExFIFRPTkdVRTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMThDO01VU0lDQUwgU1lNQk9MIFJJTkZPUlpBTkRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RDtNVVNJQ0FMIFNZTUJPTCBTVUJJVE87U287MDtMOzs7OztOOzs7OzsKKzFEMThFO01VU0lDQUwgU1lNQk9MIFo7U287MDtMOzs7OztOOzs7OzsKKzFEMThGO01VU0lDQUwgU1lNQk9MIFBJQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5MDtNVVNJQ0FMIFNZTUJPTCBNRVpaTztTbzswO0w7Ozs7O047Ozs7OworMUQxOTE7TVVTSUNBTCBTWU1CT0wgRk9SVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTkyO01VU0lDQUwgU1lNQk9MIENSRVNDRU5ETztTbzswO0w7Ozs7O047Ozs7OworMUQxOTM7TVVTSUNBTCBTWU1CT0wgREVDUkVTQ0VORE87U287MDtMOzs7OztOOzs7OzsKKzFEMTk0O01VU0lDQUwgU1lNQk9MIEdSQUNFIE5PVEUgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMTk1O01VU0lDQUwgU1lNQk9MIEdSQUNFIE5PVEUgTk8gU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMTk2O01VU0lDQUwgU1lNQk9MIFRSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NztNVVNJQ0FMIFNZTUJPTCBUVVJOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5ODtNVVNJQ0FMIFNZTUJPTCBJTlZFUlRFRCBUVVJOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5OTtNVVNJQ0FMIFNZTUJPTCBUVVJOIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5QTtNVVNJQ0FMIFNZTUJPTCBUVVJOIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5QjtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTtTbzswO0w7Ozs7O047Ozs7OworMUQxOUM7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTlEO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5RTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUY7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTU7U287MDtMOzs7OztOOzs7OzsKKzFEMUEwO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS02O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNztTbzswO0w7Ozs7O047Ozs7OworMUQxQTI7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTg7U287MDtMOzs7OztOOzs7OzsKKzFEMUEzO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS05O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTA7U287MDtMOzs7OztOOzs7OzsKKzFEMUE1O01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0xMTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTY7TVVTSUNBTCBTWU1CT0wgSEFVUFRTVElNTUU7U287MDtMOzs7OztOOzs7OzsKKzFEMUE3O01VU0lDQUwgU1lNQk9MIE5FQkVOU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBODtNVVNJQ0FMIFNZTUJPTCBFTkQgT0YgU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBOTtNVVNJQ0FMIFNZTUJPTCBERUdSRUUgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMUFBO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBET1dOIEJPVztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMUFCO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBVUCBCT1c7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBQztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgSEFSTU9OSUM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBRDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU05BUCBQSVpaSUNBVE87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBRTtNVVNJQ0FMIFNZTUJPTCBQRURBTCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBRjtNVVNJQ0FMIFNZTUJPTCBQRURBTCBVUCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMDtNVVNJQ0FMIFNZTUJPTCBIQUxGIFBFREFMIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzFEMUIxO01VU0lDQUwgU1lNQk9MIEdMSVNTQU5ETyBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxQjI7TVVTSUNBTCBTWU1CT0wgR0xJU1NBTkRPIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMUIzO01VU0lDQUwgU1lNQk9MIFdJVEggRklOR0VSTkFJTFM7U287MDtMOzs7OztOOzs7OzsKKzFEMUI0O01VU0lDQUwgU1lNQk9MIERBTVA7U287MDtMOzs7OztOOzs7OzsKKzFEMUI1O01VU0lDQUwgU1lNQk9MIERBTVAgQUxMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNjtNVVNJQ0FMIFNZTUJPTCBNQVhJTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMUI3O01VU0lDQUwgU1lNQk9MIExPTkdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCODtNVVNJQ0FMIFNZTUJPTCBCUkVWSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUI5O01VU0lDQUwgU1lNQk9MIFNFTUlCUkVWSVMgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMUJBO01VU0lDQUwgU1lNQk9MIFNFTUlCUkVWSVMgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMUJCO01VU0lDQUwgU1lNQk9MIE1JTklNQTtTbzswO0w7MUQxQjkgMUQxNjU7Ozs7Tjs7Ozs7CisxRDFCQztNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgQkxBQ0s7U287MDtMOzFEMUJBIDFEMTY1Ozs7O047Ozs7OworMUQxQkQ7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBXSElURTtTbzswO0w7MUQxQkIgMUQxNkU7Ozs7Tjs7Ozs7CisxRDFCRTtNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIEJMQUNLO1NvOzA7TDsxRDFCQyAxRDE2RTs7OztOOzs7OzsKKzFEMUJGO01VU0lDQUwgU1lNQk9MIEZVU0EgV0hJVEU7U287MDtMOzFEMUJCIDFEMTZGOzs7O047Ozs7OworMUQxQzA7TVVTSUNBTCBTWU1CT0wgRlVTQSBCTEFDSztTbzswO0w7MUQxQkMgMUQxNkY7Ozs7Tjs7Ozs7CisxRDFDMTtNVVNJQ0FMIFNZTUJPTCBMT05HQSBQRVJGRUNUQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDMjtNVVNJQ0FMIFNZTUJPTCBMT05HQSBJTVBFUkZFQ1RBIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUMzO01VU0lDQUwgU1lNQk9MIEJSRVZJUyBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNDtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUM1O01VU0lDQUwgU1lNQk9MIE1JTklNQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNjtNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUM3O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUM4O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQzk7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIFBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBQRVJGRUNUQSBESU1JTlVUSU9OLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNBO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBQRVJGRUNUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0I7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNDO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBIERJTUlOVVRJT04tMTtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0Q7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEEgRElNSU5VVElPTi0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDRTtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQSBESU1JTlVUSU9OLTM7U287MDtMOzs7OztOOzs7OzsKKzFEMUNGO01VU0lDQUwgU1lNQk9MIENST0lYO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMDtNVVNJQ0FMIFNZTUJPTCBHUkVHT1JJQU4gQyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMTtNVVNJQ0FMIFNZTUJPTCBHUkVHT1JJQU4gRiBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMjtNVVNJQ0FMIFNZTUJPTCBTUVVBUkUgQjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDM7TVVTSUNBTCBTWU1CT0wgVklSR0E7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ0O01VU0lDQUwgU1lNQk9MIFBPREFUVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ1O01VU0lDQUwgU1lNQk9MIENMSVZJUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDY7TVVTSUNBTCBTWU1CT0wgU0NBTkRJQ1VTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENztNVVNJQ0FMIFNZTUJPTCBDTElNQUNVUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDg7TVVTSUNBTCBTWU1CT0wgVE9SQ1VMVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ5O01VU0lDQUwgU1lNQk9MIFBPUlJFQ1RVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREE7TVVTSUNBTCBTWU1CT0wgUE9SUkVDVFVTIEZMRVhVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREI7TVVTSUNBTCBTWU1CT0wgU0NBTkRJQ1VTIEZMRVhVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREM7TVVTSUNBTCBTWU1CT0wgVE9SQ1VMVVMgUkVTVVBJTlVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFERDtNVVNJQ0FMIFNZTUJPTCBQRVMgU1VCUFVOQ1RJUztTbzswO0w7Ozs7O047Ozs7OworMUQyMDA7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwMTtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjAyO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0zO1NvOzA7T047Ozs7O047Ozs7OworMUQyMDM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwNDtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA1O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC02O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwNztHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA4O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC05O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDk7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTExO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEQ7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMEU7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE1O1NvOzA7T047Ozs7O047Ozs7OworMUQyMEY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE2O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTA7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE5O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTQ7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIxO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTU7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTc7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTI0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTg7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTk7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUxO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTU0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMUQ7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjA7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjE7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC03O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjI7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC04O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjM7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xMTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjI0O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyNTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTEzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMjY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjI3O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyODtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTE4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjk7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjJBO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyQjtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTI0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMkM7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjJEO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjY7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyRTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTI3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMkY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjMwO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzA7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzMTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTMyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzI7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zNjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjMzO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzNDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTM4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMzU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjM2O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDA7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzNztHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzg7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00MztTbzswO09OOzs7OztOOzs7OzsKKzFEMjM5O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzQTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQ3O1NvOzA7T047Ozs7O047Ozs7OworMUQyM0I7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00ODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjNDO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzRDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTUwO1NvOzA7T047Ozs7O047Ozs7OworMUQyM0U7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01MTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjNGO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDI0MDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTUzO1NvOzA7T047Ozs7O047Ozs7OworMUQyNDE7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01NDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjQyO0NPTUJJTklORyBHUkVFSyBNVVNJQ0FMIFRSSVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0MztDT01CSU5JTkcgR1JFRUsgTVVTSUNBTCBURVRSQVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0NDtDT01CSU5JTkcgR1JFRUsgTVVTSUNBTCBQRU5UQVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0NTtHUkVFSyBNVVNJQ0FMIExFSU1NQTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzAwO01PTk9HUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOztyZW4gKjs7OworMUQzMDE7RElHUkFNIEZPUiBIRUFWRU5MWSBFQVJUSDtTbzswO09OOzs7OztOOzt0aWFuIHJlbiAqOzs7CisxRDMwMjtESUdSQU0gRk9SIEhVTUFOIEVBUlRIO1NvOzA7T047Ozs7O047O2RpIHJlbiAqOzs7CisxRDMwMztESUdSQU0gRk9SIEVBUlRITFkgSEVBVkVOO1NvOzA7T047Ozs7O047O3JlbiB0aWFuICo7OzsKKzFEMzA0O0RJR1JBTSBGT1IgRUFSVEhMWSBIVU1BTjtTbzswO09OOzs7OztOOztyZW4gZGkgKjs7OworMUQzMDU7RElHUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOztyZW4gcmVuICo7OzsKKzFEMzA2O1RFVFJBR1JBTSBGT1IgQ0VOVFJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzMDc7VEVUUkFHUkFNIEZPUiBGVUxMIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzA4O1RFVFJBR1JBTSBGT1IgTUlSRUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwOTtURVRSQUdSQU0gRk9SIEJBUlJJRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwQTtURVRSQUdSQU0gRk9SIEtFRVBJTkcgU01BTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwQjtURVRSQUdSQU0gRk9SIENPTlRSQVJJRVRZO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEM7VEVUUkFHUkFNIEZPUiBBU0NFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwRDtURVRSQUdSQU0gRk9SIE9QUE9TSVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwRTtURVRSQUdSQU0gRk9SIEJSQU5DSElORyBPVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwRjtURVRSQUdSQU0gRk9SIERFRkVDVElWRU5FU1MgT1IgRElTVE9SVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzEwO1RFVFJBR1JBTSBGT1IgRElWRVJHRU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzExO1RFVFJBR1JBTSBGT1IgWU9VVEhGVUxORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTI7VEVUUkFHUkFNIEZPUiBJTkNSRUFTRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzEzO1RFVFJBR1JBTSBGT1IgUEVORVRSQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxNDtURVRSQUdSQU0gRk9SIFJFQUNIO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTU7VEVUUkFHUkFNIEZPUiBDT05UQUNUO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTY7VEVUUkFHUkFNIEZPUiBIT0xESU5HIEJBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxNztURVRSQUdSQU0gRk9SIFdBSVRJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxODtURVRSQUdSQU0gRk9SIEZPTExPV0lORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzE5O1RFVFJBR1JBTSBGT1IgQURWQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFBO1RFVFJBR1JBTSBGT1IgUkVMRUFTRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFCO1RFVFJBR1JBTSBGT1IgUkVTSVNUQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFDO1RFVFJBR1JBTSBGT1IgRUFTRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFEO1RFVFJBR1JBTSBGT1IgSk9ZO1NvOzA7T047Ozs7O047Ozs7OworMUQzMUU7VEVUUkFHUkFNIEZPUiBDT05URU5USU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMUY7VEVUUkFHUkFNIEZPUiBFTkRFQVZPVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyMDtURVRSQUdSQU0gRk9SIERVVElFUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzIxO1RFVFJBR1JBTSBGT1IgQ0hBTkdFO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjI7VEVUUkFHUkFNIEZPUiBERUNJU0lWRU5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyMztURVRSQUdSQU0gRk9SIEJPTEQgUkVTT0xVVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzI0O1RFVFJBR1JBTSBGT1IgUEFDS0lORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzI1O1RFVFJBR1JBTSBGT1IgTEVHSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjY7VEVUUkFHUkFNIEZPUiBDTE9TRU5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyNztURVRSQUdSQU0gRk9SIEtJTlNISVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyODtURVRSQUdSQU0gRk9SIEdBVEhFUklORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzI5O1RFVFJBR1JBTSBGT1IgU1RSRU5HVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyQTtURVRSQUdSQU0gRk9SIFBVUklUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzJCO1RFVFJBR1JBTSBGT1IgRlVMTE5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyQztURVRSQUdSQU0gRk9SIFJFU0lERU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzJEO1RFVFJBR1JBTSBGT1IgTEFXIE9SIE1PREVMO1NvOzA7T047Ozs7O047Ozs7OworMUQzMkU7VEVUUkFHUkFNIEZPUiBSRVNQT05TRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzJGO1RFVFJBR1JBTSBGT1IgR09JTkcgVE8gTUVFVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzMwO1RFVFJBR1JBTSBGT1IgRU5DT1VOVEVSUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzMxO1RFVFJBR1JBTSBGT1IgU1RPVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMjtURVRSQUdSQU0gRk9SIEdSRUFUTkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzMzO1RFVFJBR1JBTSBGT1IgRU5MQVJHRU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzNDtURVRSQUdSQU0gRk9SIFBBVFRFUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzNTtURVRSQUdSQU0gRk9SIFJJVFVBTDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzM2O1RFVFJBR1JBTSBGT1IgRkxJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzc7VEVUUkFHUkFNIEZPUiBWQVNUTkVTUyBPUiBXQVNUSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzg7VEVUUkFHUkFNIEZPUiBDT05TVEFOQ1k7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzOTtURVRSQUdSQU0gRk9SIE1FQVNVUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzQTtURVRSQUdSQU0gRk9SIEVURVJOSVRZO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0I7VEVUUkFHUkFNIEZPUiBVTklUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzNDO1RFVFJBR1JBTSBGT1IgRElNSU5JU0hNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0Q7VEVUUkFHUkFNIEZPUiBDTE9TRUQgTU9VVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzRTtURVRSQUdSQU0gRk9SIEdVQVJERURORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0Y7VEVUUkFHUkFNIEZPUiBHQVRIRVJJTkcgSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MDtURVRSQUdSQU0gRk9SIE1BU1NJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MTtURVRSQUdSQU0gRk9SIEFDQ1VNVUxBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQyO1RFVFJBR1JBTSBGT1IgRU1CRUxMSVNITUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQzO1RFVFJBR1JBTSBGT1IgRE9VQlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0NDtURVRSQUdSQU0gRk9SIFdBVENIO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDU7VEVUUkFHUkFNIEZPUiBTSU5LSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDY7VEVUUkFHUkFNIEZPUiBJTk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ3O1RFVFJBR1JBTSBGT1IgREVQQVJUVVJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDg7VEVUUkFHUkFNIEZPUiBEQVJLRU5JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0OTtURVRSQUdSQU0gRk9SIERJTU1JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0QTtURVRSQUdSQU0gRk9SIEVYSEFVU1RJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0QjtURVRSQUdSQU0gRk9SIFNFVkVSQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzRDO1RFVFJBR1JBTSBGT1IgU1RPUFBBR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0RDtURVRSQUdSQU0gRk9SIEhBUkRORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEU7VEVUUkFHUkFNIEZPUiBDT01QTEVUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEY7VEVUUkFHUkFNIEZPUiBDTE9TVVJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNTA7VEVUUkFHUkFNIEZPUiBGQUlMVVJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNTE7VEVUUkFHUkFNIEZPUiBBR0dSQVZBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUyO1RFVFJBR1JBTSBGT1IgQ09NUExJQU5DRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUzO1RFVFJBR1JBTSBGT1IgT04gVEhFIFZFUkdFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNTQ7VEVUUkFHUkFNIEZPUiBESUZGSUNVTFRJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1NTtURVRSQUdSQU0gRk9SIExBQk9VUklORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzU2O1RFVFJBR1JBTSBGT1IgRk9TVEVSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNjA7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgT05FO05vOzA7TDs7OzsxO047Ozs7OworMUQzNjE7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgVFdPO05vOzA7TDs7OzsyO047Ozs7OworMUQzNjI7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgVEhSRUU7Tm87MDtMOzs7OzM7Tjs7Ozs7CisxRDM2MztDT1VOVElORyBST0QgVU5JVCBESUdJVCBGT1VSO05vOzA7TDs7Ozs0O047Ozs7OworMUQzNjQ7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgRklWRTtObzswO0w7Ozs7NTtOOzs7OzsKKzFEMzY1O0NPVU5USU5HIFJPRCBVTklUIERJR0lUIFNJWDtObzswO0w7Ozs7NjtOOzs7OzsKKzFEMzY2O0NPVU5USU5HIFJPRCBVTklUIERJR0lUIFNFVkVOO05vOzA7TDs7Ozs3O047Ozs7OworMUQzNjc7Q09VTlRJTkcgUk9EIFVOSVQgRElHSVQgRUlHSFQ7Tm87MDtMOzs7Ozg7Tjs7Ozs7CisxRDM2ODtDT1VOVElORyBST0QgVU5JVCBESUdJVCBOSU5FO05vOzA7TDs7Ozs5O047Ozs7OworMUQzNjk7Q09VTlRJTkcgUk9EIFRFTlMgRElHSVQgT05FO05vOzA7TDs7OzsxMDtOOzs7OzsKKzFEMzZBO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIFRXTztObzswO0w7Ozs7MjA7Tjs7Ozs7CisxRDM2QjtDT1VOVElORyBST0QgVEVOUyBESUdJVCBUSFJFRTtObzswO0w7Ozs7MzA7Tjs7Ozs7CisxRDM2QztDT1VOVElORyBST0QgVEVOUyBESUdJVCBGT1VSO05vOzA7TDs7Ozs0MDtOOzs7OzsKKzFEMzZEO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIEZJVkU7Tm87MDtMOzs7OzUwO047Ozs7OworMUQzNkU7Q09VTlRJTkcgUk9EIFRFTlMgRElHSVQgU0lYO05vOzA7TDs7Ozs2MDtOOzs7OzsKKzFEMzZGO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIFNFVkVOO05vOzA7TDs7Ozs3MDtOOzs7OzsKKzFEMzcwO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIEVJR0hUO05vOzA7TDs7Ozs4MDtOOzs7OzsKKzFEMzcxO0NPVU5USU5HIFJPRCBURU5TIERJR0lUIE5JTkU7Tm87MDtMOzs7OzkwO047Ozs7OworMUQ0MDA7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDAxO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDQwMjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0MDM7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDA0O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDQwNTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ0MDY7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDA3O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDQwODtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ0MDk7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDBBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDQwQjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ0MEM7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDBEO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDQwRTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0MEY7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDEwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDQxMTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ0MTI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDEzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDQxNDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0MTU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDE2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDQxNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0MTg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDE5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDQxQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENDFCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0MUM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDQxRDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENDFFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0MUY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDQyMDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENDIxO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0MjI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDQyMztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENDI0O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0MjU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDQyNjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENDI3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0Mjg7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDQyOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENDJBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0MkI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDQyQztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENDJEO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0MkU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDQyRjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENDMwO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ0MzE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDQzMjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENDMzO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ0MzQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0MzU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0MzY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0Mzc7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0Mzg7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0Mzk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ0M0E7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0M0I7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0M0M7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ0M0Q7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0M0U7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0M0Y7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ0NDA7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ0NDE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0NDI7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0NDM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0NDQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0NDU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ0NDY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0NDc7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0NDg7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0NDk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0NEE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0NEI7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0NEM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0NEQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0NEU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENDRGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDQ1MDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0NTE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENDUyO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDQ1MztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0NTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENDU2O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDQ1NztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0NTg7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENDU5O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDQ1QTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0NUI7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENDVDO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDQ1RDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0NUU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENDVGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDQ2MDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0NjE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENDYyO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDQ2MztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0NjQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENDY1O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDQ2NjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0Njc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENDY4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0Njk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDQ2QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDZCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0NkM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDQ2RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDZFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0NkY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDQ3MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDcxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0NzI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDQ3MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDc0O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ0NzU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDQ3NjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDc3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0Nzg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDQ3OTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDdBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0N0I7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDQ3QztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDdEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0N0U7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDQ3RjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDgwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0ODE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDQ4MjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ4MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDQ4NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDQ4NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ4NjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDQ4NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDQ4ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQ4OTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDQ4QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDQ4QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDQ4QztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDQ4RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDQ4RTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDQ4RjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDQ5MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDQ5MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDQ5MjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDQ5MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDQ5NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDQ5NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDQ5NjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDQ5NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDQ5ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDQ5OTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDQ5QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDQ5QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDQ5QztNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDQ5RTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDQ5RjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDRBMjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDRBNTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDRBNjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDRBOTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDRBQTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDRBQjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDRBQztNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDRBRTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDRBRjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDRCMDtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDRCMTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDRCMjtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDRCMztNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDRCNDtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDRCNTtNQVRIRU1BVElDQUwgU0NSSVBUIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDRCNjtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0Qjc7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENEI4O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDRCOTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0QkI7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENEJEO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDRCRTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0QkY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENEMwO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDRDMTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0QzI7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENEMzO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRDNTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0QzY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENEM3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRDODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0Qzk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENENBO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRDQjtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0Q0M7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENENEO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDRDRTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0Q0Y7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENEQwO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0RDE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDREMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENEQzO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDRENTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENEQ2O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDREODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENEQ5O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0REE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDREQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENERDO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ0REQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDRERTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENERGO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0RTA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDRFMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENEUyO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0RTM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDRFNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENEU1O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0RTY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDRFNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENEU4O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0RTk7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDRFQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDRFQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRFQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDRFRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDRFRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDRFRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRGMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDRGMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDRGMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDRGMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRGNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDRGNTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDRGNjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDRGNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRGODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDRGOTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDRGQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDRGQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRGQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDRGRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDRGRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRGRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDUwMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDUwMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUwMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDUwMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDUwNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1MDU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENTA3O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDUwODtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1MDk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENTBBO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDUwRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1MEU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENTBGO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDUxMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1MTE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENTEyO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDUxMztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1MTQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENTE2O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDUxNztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1MTg7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENTE5O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDUxQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1MUI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENTFDO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDUxRTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTFGO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1MjA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDUyMTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENTIyO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1MjM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDUyNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENTI1O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1MjY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDUyNztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTI4O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Mjk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDUyQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTJCO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1MkM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDUyRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTJFO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1MkY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDUzMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTMxO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ1MzI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDUzMztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTM0O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1MzU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUzNjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTM3O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1Mzg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENTM5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDUzQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1M0M7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENTNEO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDUzRTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1NDA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENTQxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU0MjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1NDM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENTQ0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU0NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1NEE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENTRCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU0QztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ1NEQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENTRFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU0RjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ1NTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENTUyO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1NTM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDU1NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENTU1O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1NTY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDU1NztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENTU4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1NTk7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDU1QTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENTVCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1NUM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDU1RDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENTVFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1NUY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDU2MDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENTYxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1NjI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDU2MztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENTY0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1NjU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU2NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENTY3O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1Njg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDU2OTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENTZBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1NkI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDU2QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDU2RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDU2RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDU2RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDU3MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDU3MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDU3MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDU3MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDU3NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDU3NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU3NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDU3NztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDU3ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU3OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDU3QTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDU3QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDU3QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDU3RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDU3RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDU3RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU4MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDU4MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDU4MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU4MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDU4NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDU4NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDU4NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1ODc7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENTg4O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDU4OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1OEE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENThCO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDU4QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENThFO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDU4RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1OTA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENTkxO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDU5MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1OTM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENTk0O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDU5NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1OTY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENTk3O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDU5ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1OTk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENTlBO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU5QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1OUM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENTlEO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDU5RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1OUY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDVBMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1QTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDVBNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1QTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENUE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDVBNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ1QTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDVBQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDVBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ1QUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDVCMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ1QjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDVCMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDVCNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDVCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ1QkE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVCQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENUJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVCRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENUJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1QzA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENUMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVDNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENUM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1QzY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENUM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVDQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENUNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1Q0M7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDVDRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENUNFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1Q0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDVEMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENUQxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1RDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDVEMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUQ0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENUQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENUQ2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUQ3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENUQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENUQ5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENURBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENURCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENURDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUREO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENURFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENURGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUUwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENUUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENUUyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUUzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENUU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENUU1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENUU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENUU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUU5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENUVBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENUVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENUVEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENUVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1RjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENUYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVGMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1RjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENUY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVGNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1RjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENUY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVGODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Rjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENUZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVGQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1RkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENUZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVGRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1RkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjAwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDYwMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2MDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjAzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDYwNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2MDU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjA2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDYwNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2MDg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYwOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjBBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ2MEI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDYwQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjBEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ2MEU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDYwRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ2MTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDYxMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ2MTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDYxNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ2MTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDYxODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ2MUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDYxQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ2MUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDYxRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ2MjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDYyMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENjIzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjI0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENjI2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjI3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENjI5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjJBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjJCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENjJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjJEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjJFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENjJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjMwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjMxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENjMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjMzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjM0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENjM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjM2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjM3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENjM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjM5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjNBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENjNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjNDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYzRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ2M0U7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjNGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDY0MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ2NDE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjQyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDY0MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ2NDQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDY0NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ2NDc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDY0OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ2NEE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjRCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDY0QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ2NEQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjRFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDY0RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ2NTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDY1MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ2NTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDY1NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ2NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY1NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ2NTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY1QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ2NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ2NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY2MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ2NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY2MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ2NjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY2NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ2Njg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ2NkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDY2QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ2NkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDY2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjcwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENjcxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjcyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjczO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENjc0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjc1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjc2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENjc3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjc4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjc5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENjdBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjdCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjdDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENjdEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjdFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjdGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENjgwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjgxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjgyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENjgzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjg0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjg1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENjg2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjg3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjg4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENjg5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjhBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY4QjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ2OEM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjhEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY4RTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ2OEY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjkwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY5MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ2OTI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjkzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY5NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ2OTU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjk2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY5NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ2OTg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjk5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY5QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ2OUI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjlDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY5RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2OUU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjlGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDZBMDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2QTE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENkEyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDZBMztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2QTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBET1RMRVNTIEk7TGw7MDtMOzxmb250PiAwMTMxOzs7O047Ozs7OworMUQ2QTU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBET1RMRVNTIEo7TGw7MDtMOzxmb250PiAwMjM3Ozs7O047Ozs7OworMUQ2QTg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZBOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ2QUE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDZBQjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkFDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDZBRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ2QUU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2QUY7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDZCMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ2QjE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZCMjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENkIzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ2QjQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZCNTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENkI2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDZCNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkI4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENkI5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENkJBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2QkI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ2QkM7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENkJEO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkJFO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENkJGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENkMwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2QzE7TUFUSEVNQVRJQ0FMIEJPTEQgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ2QzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ2QzM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZDNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDZDNTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDZDNjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENkM3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ2Qzg7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENkM5O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENkNBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ2Q0I7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ2Q0M7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ2Q0Q7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ2Q0U7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ2Q0Y7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ2RDA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDZEMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDZEMjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ2RDM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ2RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ2RDU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENkQ2O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ2RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENkQ4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDZEOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ2REE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ2REI7TUFUSEVNQVRJQ0FMIEJPTEQgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O1k7Ozs7OworMUQ2REM7TUFUSEVNQVRJQ0FMIEJPTEQgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ2REQ7TUFUSEVNQVRJQ0FMIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENkRFO01BVEhFTUFUSUNBTCBCT0xEIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDZERjtNQVRIRU1BVElDQUwgQk9MRCBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENkUwO01BVEhFTUFUSUNBTCBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ2RTE7TUFUSEVNQVRJQ0FMIEJPTEQgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENkUyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZFMztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQkVUQTtMdTswO0w7PGZvbnQ+IDAzOTI7Ozs7Tjs7Ozs7CisxRDZFNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ2RTU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkU2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDM5NTs7OztOOzs7OzsKKzFENkU3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENkU4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2RTk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBO0x1OzA7TDs8Zm9udD4gMDM5ODs7OztOOzs7OzsKKzFENkVBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENkVCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZFQztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgTEFNREE7THU7MDtMOzxmb250PiAwMzlCOzs7O047Ozs7OworMUQ2RUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENkVFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZFRjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgWEk7THU7MDtMOzxmb250PiAwMzlFOzs7O047Ozs7OworMUQ2RjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ2RjE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkYyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSSE87THU7MDtMOzxmb250PiAwM0ExOzs7O047Ozs7OworMUQ2RjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDZGNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2RjU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRBVTtMdTswO0w7PGZvbnQ+IDAzQTQ7Ozs7Tjs7Ozs7CisxRDZGNjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDZGNztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkY4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDSEk7THU7MDtMOzxmb250PiAwM0E3Ozs7O047Ozs7OworMUQ2Rjk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDZGQTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2RkI7TUFUSEVNQVRJQ0FMIElUQUxJQyBOQUJMQTtTbTswO0w7PGZvbnQ+IDIyMDc7Ozs7Tjs7Ozs7CisxRDZGQztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENkZEO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZGRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzFENkZGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3MDA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzAxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWkVUQTtMbDswO0w7PGZvbnQ+IDAzQjY7Ozs7Tjs7Ozs7CisxRDcwMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDcwMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzA0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSU9UQTtMbDswO0w7PGZvbnQ+IDAzQjk7Ozs7Tjs7Ozs7CisxRDcwNTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzA2O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3MDc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNVTtMbDswO0w7PGZvbnQ+IDAzQkM7Ozs7Tjs7Ozs7CisxRDcwODtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzA5O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3MEE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBPTUlDUk9OO0xsOzA7TDs8Zm9udD4gMDNCRjs7OztOOzs7OzsKKzFENzBCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3MEM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3MEQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGSU5BTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzI7Ozs7Tjs7Ozs7CisxRDcwRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzBGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzEwO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQzU7Ozs7Tjs7Ozs7CisxRDcxMTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDcxMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDcxMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBTSTtMbDswO0w7PGZvbnQ+IDAzQzg7Ozs7Tjs7Ozs7CisxRDcxNDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzE1O01BVEhFTUFUSUNBTCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O1k7Ozs7OworMUQ3MTY7TUFUSEVNQVRJQ0FMIElUQUxJQyBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjU7Ozs7Tjs7Ozs7CisxRDcxNztNQVRIRU1BVElDQUwgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDcxODtNQVRIRU1BVElDQUwgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDcxOTtNQVRIRU1BVElDQUwgSVRBTElDIFBISSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q1Ozs7O047Ozs7OworMUQ3MUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzFCO01BVEhFTUFUSUNBTCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzFDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzFEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3MUU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3MUY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3MjA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDcyMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzIyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDcyMztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDcyNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzI1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzI2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzI3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzI4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzI5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzJBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3MkI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3MkM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENzJEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDcyRTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDcyRjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3MzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDczMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3MzI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENzMzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDczNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDczNTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3MzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENzM3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzM4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDczOTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3M0E7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3M0I7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3M0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDczRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3M0U7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3M0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzQwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc0MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3NDI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzQzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc0NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDc0NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3NDY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc0NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3NDg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzQ5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3NEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3NEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDc0QztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzREO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3NEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzRGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7WTs7Ozs7CisxRDc1MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3NTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDc1MjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzUzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENzU0O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzU1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc1OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3NUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3NUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDc1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3NUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzYwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDc2MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzYzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDc2NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc2NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3NjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDc2NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENzY4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDc2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENzZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENzZCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3NkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDc2RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENzZFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDc2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENzcwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3NzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzcyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3NzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDc3NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3NzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENzc2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENzc3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3Nzg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENzc5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3N0E7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc3QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENzdDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3N0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc3RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3N0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDc4MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc4MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENzgyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3ODM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3ODQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENzg1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENzg2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzg3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENzg4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3ODk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7WTs7Ozs7CisxRDc4QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENzhCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENzhDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzhEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDc4RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3OEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3OTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDc5MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3OTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc5MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzk0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDc5NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3OTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3OTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDc5ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3OTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDc5QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzlCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3OUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDc5RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzlFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc5RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFEN0EwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFEN0ExO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFEN0EyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3QTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3QTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFEN0E1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFEN0E2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFEN0E3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFEN0E4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3QTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3QUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDdBQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDdBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDdBRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFEN0FGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3QjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFEN0IxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFEN0IyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3QjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3QjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3QjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3Qjg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDdCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDdCQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3QkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3QkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFEN0JFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3QkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFEN0MwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDdDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3QzI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O1k7Ozs7OworMUQ3QzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3QzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFEN0M2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDdDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFEN0M4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFEN0NBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRElHQU1NQTtMdTswO0w7PGZvbnQ+IDAzREM7Ozs7Tjs7Ozs7CisxRDdDQjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBESUdBTU1BO0xsOzA7TDs8Zm9udD4gMDNERDs7OztOOzs7OzsKKzFEN0NFO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0NGO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RDA7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEMTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RDI7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RDM7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdENTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RDY7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Q3O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0Q4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0Q5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3REE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3REM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3REQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3REU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdERjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0UxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0UyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0UzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdFOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0VCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0VDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgWkVSTztOZDswO0VOOzxmb250PiAwMDMwOzA7MDswO047Ozs7OworMUQ3RUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0VFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFRIUkVFO05kOzA7RU47PGZvbnQ+IDAwMzM7MzszOzM7Tjs7Ozs7CisxRDdGMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0YxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBTSVg7TmQ7MDtFTjs8Zm9udD4gMDAzNjs2OzY7NjtOOzs7OzsKKzFEN0YzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0Y0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Y1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgTklORTtOZDswO0VOOzxmb250PiAwMDM5Ozk7OTs5O047Ozs7OworMUQ3RjY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdGNztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3Rjg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBUV087TmQ7MDtFTjs8Zm9udD4gMDAzMjsyOzI7MjtOOzs7OzsKKzFEN0Y5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0ZBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RkI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBGSVZFO05kOzA7RU47PGZvbnQ+IDAwMzU7NTs1OzU7Tjs7Ozs7CisxRDdGQztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RkQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RkU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBFSUdIVDtOZDswO0VOOzxmb250PiAwMDM4Ozg7ODs4O047Ozs7OworMUQ3RkY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisyMDAwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisyQTZENjs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKzJGODAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMDtMbzswO0w7NEUzRDs7OztOOzs7OzsKKzJGODAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMTtMbzswO0w7NEUzODs7OztOOzs7OzsKKzJGODAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMjtMbzswO0w7NEU0MTs7OztOOzs7OzsKKzJGODAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMztMbzswO0w7MjAxMjI7Ozs7Tjs7Ozs7CisyRjgwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDQ7TG87MDtMOzRGNjA7Ozs7Tjs7Ozs7CisyRjgwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDU7TG87MDtMOzRGQUU7Ozs7Tjs7Ozs7CisyRjgwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDY7TG87MDtMOzRGQkI7Ozs7Tjs7Ozs7CisyRjgwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDc7TG87MDtMOzUwMDI7Ozs7Tjs7Ozs7CisyRjgwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDg7TG87MDtMOzUwN0E7Ozs7Tjs7Ozs7CisyRjgwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDk7TG87MDtMOzUwOTk7Ozs7Tjs7Ozs7CisyRjgwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEE7TG87MDtMOzUwRTc7Ozs7Tjs7Ozs7CisyRjgwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEI7TG87MDtMOzUwQ0Y7Ozs7Tjs7Ozs7CisyRjgwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEM7TG87MDtMOzM0OUU7Ozs7Tjs7Ozs7CisyRjgwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEQ7TG87MDtMOzIwNjNBOzs7O047Ozs7OworMkY4MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBFO0xvOzA7TDs1MTREOzs7O047Ozs7OworMkY4MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBGO0xvOzA7TDs1MTU0Ozs7O047Ozs7OworMkY4MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEwO0xvOzA7TDs1MTY0Ozs7O047Ozs7OworMkY4MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODExO0xvOzA7TDs1MTc3Ozs7O047Ozs7OworMkY4MTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEyO0xvOzA7TDsyMDUxQzs7OztOOzs7OzsKKzJGODEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMztMbzswO0w7MzRCOTs7OztOOzs7OzsKKzJGODE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNDtMbzswO0w7NTE2Nzs7OztOOzs7OzsKKzJGODE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNTtMbzswO0w7NTE4RDs7OztOOzs7OzsKKzJGODE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNjtMbzswO0w7MjA1NEI7Ozs7Tjs7Ozs7CisyRjgxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTc7TG87MDtMOzUxOTc7Ozs7Tjs7Ozs7CisyRjgxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTg7TG87MDtMOzUxQTQ7Ozs7Tjs7Ozs7CisyRjgxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTk7TG87MDtMOzRFQ0M7Ozs7Tjs7Ozs7CisyRjgxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUE7TG87MDtMOzUxQUM7Ozs7Tjs7Ozs7CisyRjgxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUI7TG87MDtMOzUxQjU7Ozs7Tjs7Ozs7CisyRjgxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUM7TG87MDtMOzI5MURGOzs7O047Ozs7OworMkY4MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFEO0xvOzA7TDs1MUY1Ozs7O047Ozs7OworMkY4MUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFFO0xvOzA7TDs1MjAzOzs7O047Ozs7OworMkY4MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFGO0xvOzA7TDszNERGOzs7O047Ozs7OworMkY4MjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIwO0xvOzA7TDs1MjNCOzs7O047Ozs7OworMkY4MjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIxO0xvOzA7TDs1MjQ2Ozs7O047Ozs7OworMkY4MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIyO0xvOzA7TDs1MjcyOzs7O047Ozs7OworMkY4MjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIzO0xvOzA7TDs1Mjc3Ozs7O047Ozs7OworMkY4MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI0O0xvOzA7TDszNTE1Ozs7O047Ozs7OworMkY4MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI1O0xvOzA7TDs1MkM3Ozs7O047Ozs7OworMkY4MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI2O0xvOzA7TDs1MkM5Ozs7O047Ozs7OworMkY4Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI3O0xvOzA7TDs1MkU0Ozs7O047Ozs7OworMkY4Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI4O0xvOzA7TDs1MkZBOzs7O047Ozs7OworMkY4Mjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI5O0xvOzA7TDs1MzA1Ozs7O047Ozs7OworMkY4MkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJBO0xvOzA7TDs1MzA2Ozs7O047Ozs7OworMkY4MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJCO0xvOzA7TDs1MzE3Ozs7O047Ozs7OworMkY4MkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJDO0xvOzA7TDs1MzQ5Ozs7O047Ozs7OworMkY4MkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJEO0xvOzA7TDs1MzUxOzs7O047Ozs7OworMkY4MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJFO0xvOzA7TDs1MzVBOzs7O047Ozs7OworMkY4MkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJGO0xvOzA7TDs1MzczOzs7O047Ozs7OworMkY4MzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMwO0xvOzA7TDs1MzdEOzs7O047Ozs7OworMkY4MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMxO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMyO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMzO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODM0O0xvOzA7TDsyMEEyQzs7OztOOzs7OzsKKzJGODM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNTtMbzswO0w7NzA3MDs7OztOOzs7OzsKKzJGODM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNjtMbzswO0w7NTNDQTs7OztOOzs7OzsKKzJGODM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNztMbzswO0w7NTNERjs7OztOOzs7OzsKKzJGODM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzODtMbzswO0w7MjBCNjM7Ozs7Tjs7Ozs7CisyRjgzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzk7TG87MDtMOzUzRUI7Ozs7Tjs7Ozs7CisyRjgzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0E7TG87MDtMOzUzRjE7Ozs7Tjs7Ozs7CisyRjgzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0I7TG87MDtMOzU0MDY7Ozs7Tjs7Ozs7CisyRjgzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0M7TG87MDtMOzU0OUU7Ozs7Tjs7Ozs7CisyRjgzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Q7TG87MDtMOzU0Mzg7Ozs7Tjs7Ozs7CisyRjgzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0U7TG87MDtMOzU0NDg7Ozs7Tjs7Ozs7CisyRjgzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Y7TG87MDtMOzU0Njg7Ozs7Tjs7Ozs7CisyRjg0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDA7TG87MDtMOzU0QTI7Ozs7Tjs7Ozs7CisyRjg0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDE7TG87MDtMOzU0RjY7Ozs7Tjs7Ozs7CisyRjg0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDI7TG87MDtMOzU1MTA7Ozs7Tjs7Ozs7CisyRjg0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDM7TG87MDtMOzU1NTM7Ozs7Tjs7Ozs7CisyRjg0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDQ7TG87MDtMOzU1NjM7Ozs7Tjs7Ozs7CisyRjg0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDU7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDY7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDc7TG87MDtMOzU1OTk7Ozs7Tjs7Ozs7CisyRjg0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDg7TG87MDtMOzU1QUI7Ozs7Tjs7Ozs7CisyRjg0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDk7TG87MDtMOzU1QjM7Ozs7Tjs7Ozs7CisyRjg0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEE7TG87MDtMOzU1QzI7Ozs7Tjs7Ozs7CisyRjg0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEI7TG87MDtMOzU3MTY7Ozs7Tjs7Ozs7CisyRjg0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEM7TG87MDtMOzU2MDY7Ozs7Tjs7Ozs7CisyRjg0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEQ7TG87MDtMOzU3MTc7Ozs7Tjs7Ozs7CisyRjg0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEU7TG87MDtMOzU2NTE7Ozs7Tjs7Ozs7CisyRjg0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEY7TG87MDtMOzU2NzQ7Ozs7Tjs7Ozs7CisyRjg1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CisyRjg1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTE7TG87MDtMOzU4RUU7Ozs7Tjs7Ozs7CisyRjg1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTI7TG87MDtMOzU3Q0U7Ozs7Tjs7Ozs7CisyRjg1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTM7TG87MDtMOzU3RjQ7Ozs7Tjs7Ozs7CisyRjg1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTQ7TG87MDtMOzU4MEQ7Ozs7Tjs7Ozs7CisyRjg1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTU7TG87MDtMOzU3OEI7Ozs7Tjs7Ozs7CisyRjg1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTY7TG87MDtMOzU4MzI7Ozs7Tjs7Ozs7CisyRjg1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTc7TG87MDtMOzU4MzE7Ozs7Tjs7Ozs7CisyRjg1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTg7TG87MDtMOzU4QUM7Ozs7Tjs7Ozs7CisyRjg1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTk7TG87MDtMOzIxNEU0Ozs7O047Ozs7OworMkY4NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVBO0xvOzA7TDs1OEYyOzs7O047Ozs7OworMkY4NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVCO0xvOzA7TDs1OEY3Ozs7O047Ozs7OworMkY4NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVDO0xvOzA7TDs1OTA2Ozs7O047Ozs7OworMkY4NUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVEO0xvOzA7TDs1OTFBOzs7O047Ozs7OworMkY4NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVFO0xvOzA7TDs1OTIyOzs7O047Ozs7OworMkY4NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVGO0xvOzA7TDs1OTYyOzs7O047Ozs7OworMkY4NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYwO0xvOzA7TDsyMTZBODs7OztOOzs7OzsKKzJGODYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2MTtMbzswO0w7MjE2RUE7Ozs7Tjs7Ozs7CisyRjg2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjI7TG87MDtMOzU5RUM7Ozs7Tjs7Ozs7CisyRjg2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjM7TG87MDtMOzVBMUI7Ozs7Tjs7Ozs7CisyRjg2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjQ7TG87MDtMOzVBMjc7Ozs7Tjs7Ozs7CisyRjg2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjU7TG87MDtMOzU5RDg7Ozs7Tjs7Ozs7CisyRjg2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjY7TG87MDtMOzVBNjY7Ozs7Tjs7Ozs7CisyRjg2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njc7TG87MDtMOzM2RUU7Ozs7Tjs7Ozs7CisyRjg2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njg7TG87MDtMOzM2RkM7Ozs7Tjs7Ozs7CisyRjg2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njk7TG87MDtMOzVCMDg7Ozs7Tjs7Ozs7CisyRjg2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NkE7TG87MDtMOzVCM0U7Ozs7Tjs7Ozs7CisyRjg2QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NkI7TG87MDtMOzVCM0U7Ozs7Tjs7Ozs7CisyRjg2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NkM7TG87MDtMOzIxOUM4Ozs7O047Ozs7OworMkY4NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZEO0xvOzA7TDs1QkMzOzs7O047Ozs7OworMkY4NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZFO0xvOzA7TDs1QkQ4Ozs7O047Ozs7OworMkY4NkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworMkY4NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODcwO0xvOzA7TDs1QkYzOzs7O047Ozs7OworMkY4NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODcxO0xvOzA7TDsyMUIxODs7OztOOzs7OzsKKzJGODcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MjtMbzswO0w7NUJGRjs7OztOOzs7OzsKKzJGODczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MztMbzswO0w7NUMwNjs7OztOOzs7OzsKKzJGODc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3NDtMbzswO0w7NUY1Mzs7OztOOzs7OzsKKzJGODc1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3NTtMbzswO0w7NUMyMjs7OztOOzs7OzsKKzJGODc2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3NjtMbzswO0w7Mzc4MTs7OztOOzs7OzsKKzJGODc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3NztMbzswO0w7NUM2MDs7OztOOzs7OzsKKzJGODc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3ODtMbzswO0w7NUM2RTs7OztOOzs7OzsKKzJGODc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3OTtMbzswO0w7NUNDMDs7OztOOzs7OzsKKzJGODdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3QTtMbzswO0w7NUM4RDs7OztOOzs7OzsKKzJGODdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3QjtMbzswO0w7MjFERTQ7Ozs7Tjs7Ozs7CisyRjg3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0M7TG87MDtMOzVENDM7Ozs7Tjs7Ozs7CisyRjg3RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0Q7TG87MDtMOzIxREU2Ozs7O047Ozs7OworMkY4N0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdFO0xvOzA7TDs1RDZFOzs7O047Ozs7OworMkY4N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdGO0xvOzA7TDs1RDZCOzs7O047Ozs7OworMkY4ODA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODgwO0xvOzA7TDs1RDdDOzs7O047Ozs7OworMkY4ODE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODgxO0xvOzA7TDs1REUxOzs7O047Ozs7OworMkY4ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODgyO0xvOzA7TDs1REUyOzs7O047Ozs7OworMkY4ODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODgzO0xvOzA7TDszODJGOzs7O047Ozs7OworMkY4ODQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg0O0xvOzA7TDs1REZEOzs7O047Ozs7OworMkY4ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg1O0xvOzA7TDs1RTI4Ozs7O047Ozs7OworMkY4ODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg2O0xvOzA7TDs1RTNEOzs7O047Ozs7OworMkY4ODc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg3O0xvOzA7TDs1RTY5Ozs7O047Ozs7OworMkY4ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg4O0xvOzA7TDszODYyOzs7O047Ozs7OworMkY4ODk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODg5O0xvOzA7TDsyMjE4Mzs7OztOOzs7OzsKKzJGODhBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4QTtMbzswO0w7Mzg3Qzs7OztOOzs7OzsKKzJGODhCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4QjtMbzswO0w7NUVCMDs7OztOOzs7OzsKKzJGODhDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4QztMbzswO0w7NUVCMzs7OztOOzs7OzsKKzJGODhEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4RDtMbzswO0w7NUVCNjs7OztOOzs7OzsKKzJGODhFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4RTtMbzswO0w7NUVDQTs7OztOOzs7OzsKKzJGODhGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4RjtMbzswO0w7MkEzOTI7Ozs7Tjs7Ozs7CisyRjg5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTA7TG87MDtMOzVFRkU7Ozs7Tjs7Ozs7CisyRjg5MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTE7TG87MDtMOzIyMzMxOzs7O047Ozs7OworMkY4OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkyO0xvOzA7TDsyMjMzMTs7OztOOzs7OzsKKzJGODkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5MztMbzswO0w7ODIwMTs7OztOOzs7OzsKKzJGODk0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5NDtMbzswO0w7NUYyMjs7OztOOzs7OzsKKzJGODk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5NTtMbzswO0w7NUYyMjs7OztOOzs7OzsKKzJGODk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5NjtMbzswO0w7MzhDNzs7OztOOzs7OzsKKzJGODk3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5NztMbzswO0w7MjMyQjg7Ozs7Tjs7Ozs7CisyRjg5ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTg7TG87MDtMOzI2MURBOzs7O047Ozs7OworMkY4OTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODk5O0xvOzA7TDs1RjYyOzs7O047Ozs7OworMkY4OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlBO0xvOzA7TDs1RjZCOzs7O047Ozs7OworMkY4OUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlCO0xvOzA7TDszOEUzOzs7O047Ozs7OworMkY4OUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlDO0xvOzA7TDs1RjlBOzs7O047Ozs7OworMkY4OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlEO0xvOzA7TDs1RkNEOzs7O047Ozs7OworMkY4OUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlFO0xvOzA7TDs1RkQ3Ozs7O047Ozs7OworMkY4OUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODlGO0xvOzA7TDs1RkY5Ozs7O047Ozs7OworMkY4QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEEwO0xvOzA7TDs2MDgxOzs7O047Ozs7OworMkY4QTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEExO0xvOzA7TDszOTNBOzs7O047Ozs7OworMkY4QTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEEyO0xvOzA7TDszOTFDOzs7O047Ozs7OworMkY4QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEEzO0xvOzA7TDs2MDk0Ozs7O047Ozs7OworMkY4QTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEE0O0xvOzA7TDsyMjZENDs7OztOOzs7OzsKKzJGOEE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNTtMbzswO0w7NjBDNzs7OztOOzs7OzsKKzJGOEE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNjtMbzswO0w7NjE0ODs7OztOOzs7OzsKKzJGOEE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNztMbzswO0w7NjE0Qzs7OztOOzs7OzsKKzJGOEE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBODtMbzswO0w7NjE0RTs7OztOOzs7OzsKKzJGOEE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBOTtMbzswO0w7NjE0Qzs7OztOOzs7OzsKKzJGOEFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBQTtMbzswO0w7NjE3QTs7OztOOzs7OzsKKzJGOEFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBQjtMbzswO0w7NjE4RTs7OztOOzs7OzsKKzJGOEFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBQztMbzswO0w7NjFCMjs7OztOOzs7OzsKKzJGOEFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBRDtMbzswO0w7NjFBNDs7OztOOzs7OzsKKzJGOEFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBRTtMbzswO0w7NjFBRjs7OztOOzs7OzsKKzJGOEFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBRjtMbzswO0w7NjFERTs7OztOOzs7OzsKKzJGOEIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCMDtMbzswO0w7NjFGMjs7OztOOzs7OzsKKzJGOEIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCMTtMbzswO0w7NjFGNjs7OztOOzs7OzsKKzJGOEIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCMjtMbzswO0w7NjIxMDs7OztOOzs7OzsKKzJGOEIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCMztMbzswO0w7NjIxQjs7OztOOzs7OzsKKzJGOEI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCNDtMbzswO0w7NjI1RDs7OztOOzs7OzsKKzJGOEI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCNTtMbzswO0w7NjJCMTs7OztOOzs7OzsKKzJGOEI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCNjtMbzswO0w7NjJENDs7OztOOzs7OzsKKzJGOEI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCNztMbzswO0w7NjM1MDs7OztOOzs7OzsKKzJGOEI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCODtMbzswO0w7MjJCMEM7Ozs7Tjs7Ozs7CisyRjhCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjk7TG87MDtMOzYzM0Q7Ozs7Tjs7Ozs7CisyRjhCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QkE7TG87MDtMOzYyRkM7Ozs7Tjs7Ozs7CisyRjhCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QkI7TG87MDtMOzYzNjg7Ozs7Tjs7Ozs7CisyRjhCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QkM7TG87MDtMOzYzODM7Ozs7Tjs7Ozs7CisyRjhCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QkQ7TG87MDtMOzYzRTQ7Ozs7Tjs7Ozs7CisyRjhCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QkU7TG87MDtMOzIyQkYxOzs7O047Ozs7OworMkY4QkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJGO0xvOzA7TDs2NDIyOzs7O047Ozs7OworMkY4QzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEMwO0xvOzA7TDs2M0M1Ozs7O047Ozs7OworMkY4QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEMxO0xvOzA7TDs2M0E5Ozs7O047Ozs7OworMkY4QzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEMyO0xvOzA7TDszQTJFOzs7O047Ozs7OworMkY4QzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEMzO0xvOzA7TDs2NDY5Ozs7O047Ozs7OworMkY4QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM0O0xvOzA7TDs2NDdFOzs7O047Ozs7OworMkY4QzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM1O0xvOzA7TDs2NDlEOzs7O047Ozs7OworMkY4QzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM2O0xvOzA7TDs2NDc3Ozs7O047Ozs7OworMkY4Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM3O0xvOzA7TDszQTZDOzs7O047Ozs7OworMkY4Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM4O0xvOzA7TDs2NTRGOzs7O047Ozs7OworMkY4Qzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEM5O0xvOzA7TDs2NTZDOzs7O047Ozs7OworMkY4Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOENBO0xvOzA7TDsyMzAwQTs7OztOOzs7OzsKKzJGOENCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQjtMbzswO0w7NjVFMzs7OztOOzs7OzsKKzJGOENDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQztMbzswO0w7NjZGODs7OztOOzs7OzsKKzJGOENEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDRDtMbzswO0w7NjY0OTs7OztOOzs7OzsKKzJGOENFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDRTtMbzswO0w7M0IxOTs7OztOOzs7OzsKKzJGOENGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDRjtMbzswO0w7NjY5MTs7OztOOzs7OzsKKzJGOEQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEMDtMbzswO0w7M0IwODs7OztOOzs7OzsKKzJGOEQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEMTtMbzswO0w7M0FFNDs7OztOOzs7OzsKKzJGOEQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEMjtMbzswO0w7NTE5Mjs7OztOOzs7OzsKKzJGOEQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEMztMbzswO0w7NTE5NTs7OztOOzs7OzsKKzJGOEQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhENDtMbzswO0w7NjcwMDs7OztOOzs7OzsKKzJGOEQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhENTtMbzswO0w7NjY5Qzs7OztOOzs7OzsKKzJGOEQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhENjtMbzswO0w7ODBBRDs7OztOOzs7OzsKKzJGOEQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhENztMbzswO0w7NDNEOTs7OztOOzs7OzsKKzJGOEQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEODtMbzswO0w7NjcxNzs7OztOOzs7OzsKKzJGOEQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEOTtMbzswO0w7NjcxQjs7OztOOzs7OzsKKzJGOERBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEQTtMbzswO0w7NjcyMTs7OztOOzs7OzsKKzJGOERCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEQjtMbzswO0w7Njc1RTs7OztOOzs7OzsKKzJGOERDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhEQztMbzswO0w7Njc1Mzs7OztOOzs7OzsKKzJGOEREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhERDtMbzswO0w7MjMzQzM7Ozs7Tjs7Ozs7CisyRjhERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REU7TG87MDtMOzNCNDk7Ozs7Tjs7Ozs7CisyRjhERjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REY7TG87MDtMOzY3RkE7Ozs7Tjs7Ozs7CisyRjhFMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RTA7TG87MDtMOzY3ODU7Ozs7Tjs7Ozs7CisyRjhFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RTE7TG87MDtMOzY4NTI7Ozs7Tjs7Ozs7CisyRjhFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RTI7TG87MDtMOzY4ODU7Ozs7Tjs7Ozs7CisyRjhFMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RTM7TG87MDtMOzIzNDZEOzs7O047Ozs7OworMkY4RTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU0O0xvOzA7TDs2ODhFOzs7O047Ozs7OworMkY4RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU1O0xvOzA7TDs2ODFGOzs7O047Ozs7OworMkY4RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU2O0xvOzA7TDs2OTE0Ozs7O047Ozs7OworMkY4RTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU3O0xvOzA7TDszQjlEOzs7O047Ozs7OworMkY4RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU4O0xvOzA7TDs2OTQyOzs7O047Ozs7OworMkY4RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEU5O0xvOzA7TDs2OUEzOzs7O047Ozs7OworMkY4RUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEVBO0xvOzA7TDs2OUVBOzs7O047Ozs7OworMkY4RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEVCO0xvOzA7TDs2QUE4Ozs7O047Ozs7OworMkY4RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEVDO0xvOzA7TDsyMzZBMzs7OztOOzs7OzsKKzJGOEVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFRDtMbzswO0w7NkFEQjs7OztOOzs7OzsKKzJGOEVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFRTtMbzswO0w7M0MxODs7OztOOzs7OzsKKzJGOEVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFRjtMbzswO0w7NkIyMTs7OztOOzs7OzsKKzJGOEYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGMDtMbzswO0w7MjM4QTc7Ozs7Tjs7Ozs7CisyRjhGMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjE7TG87MDtMOzZCNTQ7Ozs7Tjs7Ozs7CisyRjhGMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjI7TG87MDtMOzNDNEU7Ozs7Tjs7Ozs7CisyRjhGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjM7TG87MDtMOzZCNzI7Ozs7Tjs7Ozs7CisyRjhGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjQ7TG87MDtMOzZCOUY7Ozs7Tjs7Ozs7CisyRjhGNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjU7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CisyRjhGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjY7TG87MDtMOzZCQkI7Ozs7Tjs7Ozs7CisyRjhGNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Rjc7TG87MDtMOzIzQThEOzs7O047Ozs7OworMkY4Rjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY4O0xvOzA7TDsyMUQwQjs7OztOOzs7OzsKKzJGOEY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGOTtMbzswO0w7MjNBRkE7Ozs7Tjs7Ozs7CisyRjhGQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RkE7TG87MDtMOzZDNEU7Ozs7Tjs7Ozs7CisyRjhGQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RkI7TG87MDtMOzIzQ0JDOzs7O047Ozs7OworMkY4RkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZDO0xvOzA7TDs2Q0JGOzs7O047Ozs7OworMkY4RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZEO0xvOzA7TDs2Q0NEOzs7O047Ozs7OworMkY4RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZFO0xvOzA7TDs2QzY3Ozs7O047Ozs7OworMkY4RkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZGO0xvOzA7TDs2RDE2Ozs7O047Ozs7OworMkY5MDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTAwO0xvOzA7TDs2RDNFOzs7O047Ozs7OworMkY5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTAxO0xvOzA7TDs2RDc3Ozs7O047Ozs7OworMkY5MDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTAyO0xvOzA7TDs2RDQxOzs7O047Ozs7OworMkY5MDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTAzO0xvOzA7TDs2RDY5Ozs7O047Ozs7OworMkY5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTA0O0xvOzA7TDs2RDc4Ozs7O047Ozs7OworMkY5MDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTA1O0xvOzA7TDs2RDg1Ozs7O047Ozs7OworMkY5MDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTA2O0xvOzA7TDsyM0QxRTs7OztOOzs7OzsKKzJGOTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNztMbzswO0w7NkQzNDs7OztOOzs7OzsKKzJGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwODtMbzswO0w7NkUyRjs7OztOOzs7OzsKKzJGOTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwOTtMbzswO0w7NkU2RTs7OztOOzs7OzsKKzJGOTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwQTtMbzswO0w7M0QzMzs7OztOOzs7OzsKKzJGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwQjtMbzswO0w7NkVDQjs7OztOOzs7OzsKKzJGOTBDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwQztMbzswO0w7NkVDNzs7OztOOzs7OzsKKzJGOTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwRDtMbzswO0w7MjNFRDE7Ozs7Tjs7Ozs7CisyRjkwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEU7TG87MDtMOzZERjk7Ozs7Tjs7Ozs7CisyRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEY7TG87MDtMOzZGNkU7Ozs7Tjs7Ozs7CisyRjkxMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTA7TG87MDtMOzIzRjVFOzs7O047Ozs7OworMkY5MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTExO0xvOzA7TDsyM0Y4RTs7OztOOzs7OzsKKzJGOTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMjtMbzswO0w7NkZDNjs7OztOOzs7OzsKKzJGOTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMztMbzswO0w7NzAzOTs7OztOOzs7OzsKKzJGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxNDtMbzswO0w7NzAxRTs7OztOOzs7OzsKKzJGOTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxNTtMbzswO0w7NzAxQjs7OztOOzs7OzsKKzJGOTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxNjtMbzswO0w7M0Q5Njs7OztOOzs7OzsKKzJGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxNztMbzswO0w7NzA0QTs7OztOOzs7OzsKKzJGOTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxODtMbzswO0w7NzA3RDs7OztOOzs7OzsKKzJGOTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxOTtMbzswO0w7NzA3Nzs7OztOOzs7OzsKKzJGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxQTtMbzswO0w7NzBBRDs7OztOOzs7OzsKKzJGOTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxQjtMbzswO0w7MjA1MjU7Ozs7Tjs7Ozs7CisyRjkxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUM7TG87MDtMOzcxNDU7Ozs7Tjs7Ozs7CisyRjkxRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUQ7TG87MDtMOzI0MjYzOzs7O047Ozs7OworMkY5MUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFFO0xvOzA7TDs3MTlDOzs7O047Ozs7OworMkY5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFGO0xvOzA7TDsyNDNBQjs7OztOOzs7OzsKKzJGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMDtMbzswO0w7NzIyODs7OztOOzs7OzsKKzJGOTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMTtMbzswO0w7NzIzNTs7OztOOzs7OzsKKzJGOTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMjtMbzswO0w7NzI1MDs7OztOOzs7OzsKKzJGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMztMbzswO0w7MjQ2MDg7Ozs7Tjs7Ozs7CisyRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjQ7TG87MDtMOzcyODA7Ozs7Tjs7Ozs7CisyRjkyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjU7TG87MDtMOzcyOTU7Ozs7Tjs7Ozs7CisyRjkyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjY7TG87MDtMOzI0NzM1Ozs7O047Ozs7OworMkY5Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI3O0xvOzA7TDsyNDgxNDs7OztOOzs7OzsKKzJGOTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyODtMbzswO0w7NzM3QTs7OztOOzs7OzsKKzJGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyOTtMbzswO0w7NzM4Qjs7OztOOzs7OzsKKzJGOTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQTtMbzswO0w7M0VBQzs7OztOOzs7OzsKKzJGOTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQjtMbzswO0w7NzNBNTs7OztOOzs7OzsKKzJGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQztMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRDtMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRTtMbzswO0w7NzQ0Nzs7OztOOzs7OzsKKzJGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRjtMbzswO0w7NzQ1Qzs7OztOOzs7OzsKKzJGOTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMDtMbzswO0w7NzQ3MTs7OztOOzs7OzsKKzJGOTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMTtMbzswO0w7NzQ4NTs7OztOOzs7OzsKKzJGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMjtMbzswO0w7NzRDQTs7OztOOzs7OzsKKzJGOTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMztMbzswO0w7M0YxQjs7OztOOzs7OzsKKzJGOTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNDtMbzswO0w7NzUyNDs7OztOOzs7OzsKKzJGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNTtMbzswO0w7MjRDMzY7Ozs7Tjs7Ozs7CisyRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzY7TG87MDtMOzc1M0U7Ozs7Tjs7Ozs7CisyRjkzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mzc7TG87MDtMOzI0QzkyOzs7O047Ozs7OworMkY5Mzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM4O0xvOzA7TDs3NTcwOzs7O047Ozs7OworMkY5Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM5O0xvOzA7TDsyMjE5Rjs7OztOOzs7OzsKKzJGOTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQTtMbzswO0w7NzYxMDs7OztOOzs7OzsKKzJGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQjtMbzswO0w7MjRGQTE7Ozs7Tjs7Ozs7CisyRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0M7TG87MDtMOzI0RkI4Ozs7O047Ozs7OworMkY5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTNEO0xvOzA7TDsyNTA0NDs7OztOOzs7OzsKKzJGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRTtMbzswO0w7M0ZGQzs7OztOOzs7OzsKKzJGOTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRjtMbzswO0w7NDAwODs7OztOOzs7OzsKKzJGOTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MDtMbzswO0w7NzZGNDs7OztOOzs7OzsKKzJGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MTtMbzswO0w7MjUwRjM7Ozs7Tjs7Ozs7CisyRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDI7TG87MDtMOzI1MEYyOzs7O047Ozs7OworMkY5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQzO0xvOzA7TDsyNTExOTs7OztOOzs7OzsKKzJGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0NDtMbzswO0w7MjUxMzM7Ozs7Tjs7Ozs7CisyRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDU7TG87MDtMOzc3MUU7Ozs7Tjs7Ozs7CisyRjk0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDY7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDc7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDg7TG87MDtMOzc3NEE7Ozs7Tjs7Ozs7CisyRjk0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDk7TG87MDtMOzQwMzk7Ozs7Tjs7Ozs7CisyRjk0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEE7TG87MDtMOzc3OEI7Ozs7Tjs7Ozs7CisyRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEI7TG87MDtMOzQwNDY7Ozs7Tjs7Ozs7CisyRjk0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEM7TG87MDtMOzQwOTY7Ozs7Tjs7Ozs7CisyRjk0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEQ7TG87MDtMOzI1NDFEOzs7O047Ozs7OworMkY5NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRFO0xvOzA7TDs3ODRFOzs7O047Ozs7OworMkY5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRGO0xvOzA7TDs3ODhDOzs7O047Ozs7OworMkY5NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUwO0xvOzA7TDs3OENDOzs7O047Ozs7OworMkY5NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUxO0xvOzA7TDs0MEUzOzs7O047Ozs7OworMkY5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUyO0xvOzA7TDsyNTYyNjs7OztOOzs7OzsKKzJGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MztMbzswO0w7Nzk1Njs7OztOOzs7OzsKKzJGOTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NDtMbzswO0w7MjU2OUE7Ozs7Tjs7Ozs7CisyRjk1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTU7TG87MDtMOzI1NkM1Ozs7O047Ozs7OworMkY5NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU2O0xvOzA7TDs3OThGOzs7O047Ozs7OworMkY5NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU3O0xvOzA7TDs3OUVCOzs7O047Ozs7OworMkY5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU4O0xvOzA7TDs0MTJGOzs7O047Ozs7OworMkY5NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU5O0xvOzA7TDs3QTQwOzs7O047Ozs7OworMkY5NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVBO0xvOzA7TDs3QTRBOzs7O047Ozs7OworMkY5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVCO0xvOzA7TDs3QTRGOzs7O047Ozs7OworMkY5NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVDO0xvOzA7TDsyNTk3Qzs7OztOOzs7OzsKKzJGOTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1RDtMbzswO0w7MjVBQTc7Ozs7Tjs7Ozs7CisyRjk1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NUU7TG87MDtMOzI1QUE3Ozs7O047Ozs7OworMkY5NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVGO0xvOzA7TDs3QUVFOzs7O047Ozs7OworMkY5NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYwO0xvOzA7TDs0MjAyOzs7O047Ozs7OworMkY5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYxO0xvOzA7TDsyNUJBQjs7OztOOzs7OzsKKzJGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MjtMbzswO0w7N0JDNjs7OztOOzs7OzsKKzJGOTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MztMbzswO0w7N0JDOTs7OztOOzs7OzsKKzJGOTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NDtMbzswO0w7NDIyNzs7OztOOzs7OzsKKzJGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NTtMbzswO0w7MjVDODA7Ozs7Tjs7Ozs7CisyRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjY7TG87MDtMOzdDRDI7Ozs7Tjs7Ozs7CisyRjk2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njc7TG87MDtMOzQyQTA7Ozs7Tjs7Ozs7CisyRjk2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njg7TG87MDtMOzdDRTg7Ozs7Tjs7Ozs7CisyRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njk7TG87MDtMOzdDRTM7Ozs7Tjs7Ozs7CisyRjk2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkE7TG87MDtMOzdEMDA7Ozs7Tjs7Ozs7CisyRjk2QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkI7TG87MDtMOzI1Rjg2Ozs7O047Ozs7OworMkY5NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZDO0xvOzA7TDs3RDYzOzs7O047Ozs7OworMkY5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZEO0xvOzA7TDs0MzAxOzs7O047Ozs7OworMkY5NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZFO0xvOzA7TDs3REM3Ozs7O047Ozs7OworMkY5NkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZGO0xvOzA7TDs3RTAyOzs7O047Ozs7OworMkY5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcwO0xvOzA7TDs3RTQ1Ozs7O047Ozs7OworMkY5NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcxO0xvOzA7TDs0MzM0Ozs7O047Ozs7OworMkY5NzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcyO0xvOzA7TDsyNjIyODs7OztOOzs7OzsKKzJGOTczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MztMbzswO0w7MjYyNDc7Ozs7Tjs7Ozs7CisyRjk3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzQ7TG87MDtMOzQzNTk7Ozs7Tjs7Ozs7CisyRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzU7TG87MDtMOzI2MkQ5Ozs7O047Ozs7OworMkY5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc2O0xvOzA7TDs3RjdBOzs7O047Ozs7OworMkY5Nzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc3O0xvOzA7TDsyNjMzRTs7OztOOzs7OzsKKzJGOTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3ODtMbzswO0w7N0Y5NTs7OztOOzs7OzsKKzJGOTc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3OTtMbzswO0w7N0ZGQTs7OztOOzs7OzsKKzJGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QTtMbzswO0w7ODAwNTs7OztOOzs7OzsKKzJGOTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QjtMbzswO0w7MjY0REE7Ozs7Tjs7Ozs7CisyRjk3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0M7TG87MDtMOzI2NTIzOzs7O047Ozs7OworMkY5N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdEO0xvOzA7TDs4MDYwOzs7O047Ozs7OworMkY5N0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdFO0xvOzA7TDsyNjVBODs7OztOOzs7OzsKKzJGOTdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RjtMbzswO0w7ODA3MDs7OztOOzs7OzsKKzJGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4MDtMbzswO0w7MjMzNUY7Ozs7Tjs7Ozs7CisyRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODE7TG87MDtMOzQzRDU7Ozs7Tjs7Ozs7CisyRjk4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODI7TG87MDtMOzgwQjI7Ozs7Tjs7Ozs7CisyRjk4MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODM7TG87MDtMOzgxMDM7Ozs7Tjs7Ozs7CisyRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODQ7TG87MDtMOzQ0MEI7Ozs7Tjs7Ozs7CisyRjk4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODU7TG87MDtMOzgxM0U7Ozs7Tjs7Ozs7CisyRjk4NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODY7TG87MDtMOzVBQjU7Ozs7Tjs7Ozs7CisyRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODc7TG87MDtMOzI2N0E3Ozs7O047Ozs7OworMkY5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg4O0xvOzA7TDsyNjdCNTs7OztOOzs7OzsKKzJGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4OTtMbzswO0w7MjMzOTM7Ozs7Tjs7Ozs7CisyRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OEE7TG87MDtMOzIzMzlDOzs7O047Ozs7OworMkY5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThCO0xvOzA7TDs4MjAxOzs7O047Ozs7OworMkY5OEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThDO0xvOzA7TDs4MjA0Ozs7O047Ozs7OworMkY5OEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThEO0xvOzA7TDs4RjlFOzs7O047Ozs7OworMkY5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThFO0xvOzA7TDs0NDZCOzs7O047Ozs7OworMkY5OEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThGO0xvOzA7TDs4MjkxOzs7O047Ozs7OworMkY5OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkwO0xvOzA7TDs4MjhCOzs7O047Ozs7OworMkY5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkxO0xvOzA7TDs4MjlEOzs7O047Ozs7OworMkY5OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkyO0xvOzA7TDs1MkIzOzs7O047Ozs7OworMkY5OTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkzO0xvOzA7TDs4MkIxOzs7O047Ozs7OworMkY5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk0O0xvOzA7TDs4MkIzOzs7O047Ozs7OworMkY5OTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk1O0xvOzA7TDs4MkJEOzs7O047Ozs7OworMkY5OTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk2O0xvOzA7TDs4MkU2Ozs7O047Ozs7OworMkY5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk3O0xvOzA7TDsyNkIzQzs7OztOOzs7OzsKKzJGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5ODtMbzswO0w7ODJFNTs7OztOOzs7OzsKKzJGOTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5OTtMbzswO0w7ODMxRDs7OztOOzs7OzsKKzJGOTlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QTtMbzswO0w7ODM2Mzs7OztOOzs7OzsKKzJGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QjtMbzswO0w7ODNBRDs7OztOOzs7OzsKKzJGOTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QztMbzswO0w7ODMyMzs7OztOOzs7OzsKKzJGOTlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RDtMbzswO0w7ODNCRDs7OztOOzs7OzsKKzJGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RTtMbzswO0w7ODNFNzs7OztOOzs7OzsKKzJGOTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RjtMbzswO0w7ODQ1Nzs7OztOOzs7OzsKKzJGOUEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMDtMbzswO0w7ODM1Mzs7OztOOzs7OzsKKzJGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMTtMbzswO0w7ODNDQTs7OztOOzs7OzsKKzJGOUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMjtMbzswO0w7ODNDQzs7OztOOzs7OzsKKzJGOUEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMztMbzswO0w7ODNEQzs7OztOOzs7OzsKKzJGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNDtMbzswO0w7MjZDMzY7Ozs7Tjs7Ozs7CisyRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTU7TG87MDtMOzI2RDZCOzs7O047Ozs7OworMkY5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUE2O0xvOzA7TDsyNkNENTs7OztOOzs7OzsKKzJGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNztMbzswO0w7NDUyQjs7OztOOzs7OzsKKzJGOUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBODtMbzswO0w7ODRGMTs7OztOOzs7OzsKKzJGOUE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBOTtMbzswO0w7ODRGMzs7OztOOzs7OzsKKzJGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQTtMbzswO0w7ODUxNjs7OztOOzs7OzsKKzJGOUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQjtMbzswO0w7MjczQ0E7Ozs7Tjs7Ozs7CisyRjlBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUM7TG87MDtMOzg1NjQ7Ozs7Tjs7Ozs7CisyRjlBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUQ7TG87MDtMOzI2RjJDOzs7O047Ozs7OworMkY5QUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFFO0xvOzA7TDs0NTVEOzs7O047Ozs7OworMkY5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFGO0xvOzA7TDs0NTYxOzs7O047Ozs7OworMkY5QjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIwO0xvOzA7TDsyNkZCMTs7OztOOzs7OzsKKzJGOUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlCMTtMbzswO0w7MjcwRDI7Ozs7Tjs7Ozs7CisyRjlCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjI7TG87MDtMOzQ1NkI7Ozs7Tjs7Ozs7CisyRjlCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjM7TG87MDtMOzg2NTA7Ozs7Tjs7Ozs7CisyRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjQ7TG87MDtMOzg2NUM7Ozs7Tjs7Ozs7CisyRjlCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjU7TG87MDtMOzg2Njc7Ozs7Tjs7Ozs7CisyRjlCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjY7TG87MDtMOzg2Njk7Ozs7Tjs7Ozs7CisyRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjc7TG87MDtMOzg2QTk7Ozs7Tjs7Ozs7CisyRjlCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjg7TG87MDtMOzg2ODg7Ozs7Tjs7Ozs7CisyRjlCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjk7TG87MDtMOzg3MEU7Ozs7Tjs7Ozs7CisyRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkE7TG87MDtMOzg2RTI7Ozs7Tjs7Ozs7CisyRjlCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkI7TG87MDtMOzg3Nzk7Ozs7Tjs7Ozs7CisyRjlCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkM7TG87MDtMOzg3Mjg7Ozs7Tjs7Ozs7CisyRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkQ7TG87MDtMOzg3NkI7Ozs7Tjs7Ozs7CisyRjlCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkU7TG87MDtMOzg3ODY7Ozs7Tjs7Ozs7CisyRjlCRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkY7TG87MDtMOzQ1RDc7Ozs7Tjs7Ozs7CisyRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzA7TG87MDtMOzg3RTE7Ozs7Tjs7Ozs7CisyRjlDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzE7TG87MDtMOzg4MDE7Ozs7Tjs7Ozs7CisyRjlDMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzI7TG87MDtMOzQ1Rjk7Ozs7Tjs7Ozs7CisyRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzM7TG87MDtMOzg4NjA7Ozs7Tjs7Ozs7CisyRjlDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzQ7TG87MDtMOzg4NjM7Ozs7Tjs7Ozs7CisyRjlDNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzU7TG87MDtMOzI3NjY3Ozs7O047Ozs7OworMkY5QzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM2O0xvOzA7TDs4OEQ3Ozs7O047Ozs7OworMkY5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM3O0xvOzA7TDs4OERFOzs7O047Ozs7OworMkY5Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM4O0xvOzA7TDs0NjM1Ozs7O047Ozs7OworMkY5Qzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM5O0xvOzA7TDs4OEZBOzs7O047Ozs7OworMkY5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNBO0xvOzA7TDszNEJCOzs7O047Ozs7OworMkY5Q0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNCO0xvOzA7TDsyNzhBRTs7OztOOzs7OzsKKzJGOUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQztMbzswO0w7Mjc5NjY7Ozs7Tjs7Ozs7CisyRjlDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Q7TG87MDtMOzQ2QkU7Ozs7Tjs7Ozs7CisyRjlDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0U7TG87MDtMOzQ2Qzc7Ozs7Tjs7Ozs7CisyRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Y7TG87MDtMOzhBQTA7Ozs7Tjs7Ozs7CisyRjlEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDA7TG87MDtMOzhBRUQ7Ozs7Tjs7Ozs7CisyRjlEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDE7TG87MDtMOzhCOEE7Ozs7Tjs7Ozs7CisyRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDI7TG87MDtMOzhDNTU7Ozs7Tjs7Ozs7CisyRjlEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDM7TG87MDtMOzI3Q0E4Ozs7O047Ozs7OworMkY5RDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ0O0xvOzA7TDs4Q0FCOzs7O047Ozs7OworMkY5RDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ1O0xvOzA7TDs4Q0MxOzs7O047Ozs7OworMkY5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ2O0xvOzA7TDs4RDFCOzs7O047Ozs7OworMkY5RDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ3O0xvOzA7TDs4RDc3Ozs7O047Ozs7OworMkY5RDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ4O0xvOzA7TDsyN0YyRjs7OztOOzs7OzsKKzJGOUQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlEOTtMbzswO0w7MjA4MDQ7Ozs7Tjs7Ozs7CisyRjlEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REE7TG87MDtMOzhEQ0I7Ozs7Tjs7Ozs7CisyRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REI7TG87MDtMOzhEQkM7Ozs7Tjs7Ozs7CisyRjlEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REM7TG87MDtMOzhERjA7Ozs7Tjs7Ozs7CisyRjlERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REQ7TG87MDtMOzIwOERFOzs7O047Ozs7OworMkY5REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURFO0xvOzA7TDs4RUQ0Ozs7O047Ozs7OworMkY5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURGO0xvOzA7TDs4RjM4Ozs7O047Ozs7OworMkY5RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUwO0xvOzA7TDsyODVEMjs7OztOOzs7OzsKKzJGOUUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFMTtMbzswO0w7Mjg1RUQ7Ozs7Tjs7Ozs7CisyRjlFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTI7TG87MDtMOzkwOTQ7Ozs7Tjs7Ozs7CisyRjlFMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTM7TG87MDtMOzkwRjE7Ozs7Tjs7Ozs7CisyRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTQ7TG87MDtMOzkxMTE7Ozs7Tjs7Ozs7CisyRjlFNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTU7TG87MDtMOzI4NzJFOzs7O047Ozs7OworMkY5RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU2O0xvOzA7TDs5MTFCOzs7O047Ozs7OworMkY5RTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU3O0xvOzA7TDs5MjM4Ozs7O047Ozs7OworMkY5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU4O0xvOzA7TDs5MkQ3Ozs7O047Ozs7OworMkY5RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU5O0xvOzA7TDs5MkQ4Ozs7O047Ozs7OworMkY5RUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVBO0xvOzA7TDs5MjdDOzs7O047Ozs7OworMkY5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVCO0xvOzA7TDs5M0Y5Ozs7O047Ozs7OworMkY5RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVDO0xvOzA7TDs5NDE1Ozs7O047Ozs7OworMkY5RUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVEO0xvOzA7TDsyOEJGQTs7OztOOzs7OzsKKzJGOUVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRTtMbzswO0w7OTU4Qjs7OztOOzs7OzsKKzJGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRjtMbzswO0w7NDk5NTs7OztOOzs7OzsKKzJGOUYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMDtMbzswO0w7OTVCNzs7OztOOzs7OzsKKzJGOUYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMTtMbzswO0w7MjhENzc7Ozs7Tjs7Ozs7CisyRjlGMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjI7TG87MDtMOzQ5RTY7Ozs7Tjs7Ozs7CisyRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjM7TG87MDtMOzk2QzM7Ozs7Tjs7Ozs7CisyRjlGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjQ7TG87MDtMOzVEQjI7Ozs7Tjs7Ozs7CisyRjlGNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjU7TG87MDtMOzk3MjM7Ozs7Tjs7Ozs7CisyRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjY7TG87MDtMOzI5MTQ1Ozs7O047Ozs7OworMkY5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY3O0xvOzA7TDsyOTIxQTs7OztOOzs7OzsKKzJGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGODtMbzswO0w7NEE2RTs7OztOOzs7OzsKKzJGOUY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGOTtMbzswO0w7NEE3Njs7OztOOzs7OzsKKzJGOUZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQTtMbzswO0w7OTdFMDs7OztOOzs7OzsKKzJGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQjtMbzswO0w7Mjk0MEE7Ozs7Tjs7Ozs7CisyRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkM7TG87MDtMOzRBQjI7Ozs7Tjs7Ozs7CisyRjlGRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkQ7TG87MDtMOzI5NDk2Ozs7O047Ozs7OworMkY5RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZFO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkY5RkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZGO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAwO0xvOzA7TDs5ODI5Ozs7O047Ozs7OworMkZBMDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAxO0xvOzA7TDsyOTVCNjs7OztOOzs7OzsKKzJGQTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMjtMbzswO0w7OThFMjs7OztOOzs7OzsKKzJGQTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMztMbzswO0w7NEIzMzs7OztOOzs7OzsKKzJGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNDtMbzswO0w7OTkyOTs7OztOOzs7OzsKKzJGQTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNTtMbzswO0w7OTlBNzs7OztOOzs7OzsKKzJGQTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNjtMbzswO0w7OTlDMjs7OztOOzs7OzsKKzJGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNztMbzswO0w7OTlGRTs7OztOOzs7OzsKKzJGQTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwODtMbzswO0w7NEJDRTs7OztOOzs7OzsKKzJGQTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwOTtMbzswO0w7MjlCMzA7Ozs7Tjs7Ozs7CisyRkEwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEE7TG87MDtMOzlCMTI7Ozs7Tjs7Ozs7CisyRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEI7TG87MDtMOzlDNDA7Ozs7Tjs7Ozs7CisyRkEwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEM7TG87MDtMOzlDRkQ7Ozs7Tjs7Ozs7CisyRkEwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEQ7TG87MDtMOzRDQ0U7Ozs7Tjs7Ozs7CisyRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEU7TG87MDtMOzRDRUQ7Ozs7Tjs7Ozs7CisyRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEY7TG87MDtMOzlENjc7Ozs7Tjs7Ozs7CisyRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTA7TG87MDtMOzJBMENFOzs7O047Ozs7OworMkZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTExO0xvOzA7TDs0Q0Y4Ozs7O047Ozs7OworMkZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTEyO0xvOzA7TDsyQTEwNTs7OztOOzs7OzsKKzJGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMztMbzswO0w7MkEyMEU7Ozs7Tjs7Ozs7CisyRkExNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTQ7TG87MDtMOzJBMjkxOzs7O047Ozs7OworMkZBMTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE1O0xvOzA7TDs5RUJCOzs7O047Ozs7OworMkZBMTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE2O0xvOzA7TDs0RDU2Ozs7O047Ozs7OworMkZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE3O0xvOzA7TDs5RUY5Ozs7O047Ozs7OworMkZBMTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE4O0xvOzA7TDs5RUZFOzs7O047Ozs7OworMkZBMTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE5O0xvOzA7TDs5RjA1Ozs7O047Ozs7OworMkZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFBO0xvOzA7TDs5RjBGOzs7O047Ozs7OworMkZBMUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFCO0xvOzA7TDs5RjE2Ozs7O047Ozs7OworMkZBMUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFDO0xvOzA7TDs5RjNCOzs7O047Ozs7OworMkZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFEO0xvOzA7TDsyQTYwMDs7OztOOzs7OzsKK0UwMDAxO0xBTkdVQUdFIFRBRztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIwO1RBRyBTUEFDRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIxO1RBRyBFWENMQU1BVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjI7VEFHIFFVT1RBVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjM7VEFHIE5VTUJFUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjQ7VEFHIERPTExBUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjU7VEFHIFBFUkNFTlQgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI2O1RBRyBBTVBFUlNBTkQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyNztUQUcgQVBPU1RST1BIRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI4O1RBRyBMRUZUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjk7VEFHIFJJR0hUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkE7VEFHIEFTVEVSSVNLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkI7VEFHIFBMVVMgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJDO1RBRyBDT01NQTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJEO1RBRyBIWVBIRU4tTUlOVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyRTtUQUcgRlVMTCBTVE9QO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkY7VEFHIFNPTElEVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMDtUQUcgRElHSVQgWkVSTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDMxO1RBRyBESUdJVCBPTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMjtUQUcgRElHSVQgVFdPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzM7VEFHIERJR0lUIFRIUkVFO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzQ7VEFHIERJR0lUIEZPVVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNTtUQUcgRElHSVQgRklWRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDM2O1RBRyBESUdJVCBTSVg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNztUQUcgRElHSVQgU0VWRU47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzODtUQUcgRElHSVQgRUlHSFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzOTtUQUcgRElHSVQgTklORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNBO1RBRyBDT0xPTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNCO1RBRyBTRU1JQ09MT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQztUQUcgTEVTUy1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRDtUQUcgRVFVQUxTIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRTtUQUcgR1JFQVRFUi1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRjtUQUcgUVVFU1RJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQwO1RBRyBDT01NRVJDSUFMIEFUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQzO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0NTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ2O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDc7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0ODtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ5O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0QjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRDO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0RTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRGO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTA7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1MTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUyO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTM7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NDtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU1O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTY7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU4O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTk7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1QTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVCO1RBRyBMRUZUIFNRVUFSRSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNUM7VEFHIFJFVkVSU0UgU09MSURVUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVEO1RBRyBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVFO1RBRyBDSVJDVU1GTEVYIEFDQ0VOVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVGO1RBRyBMT1cgTElORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDYwO1RBRyBHUkFWRSBBQ0NFTlQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEs7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEw7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE87Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QjtUQUcgTEVGVCBDVVJMWSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0M7VEFHIFZFUlRJQ0FMIExJTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RDtUQUcgUklHSFQgQ1VSTFkgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdFO1RBRyBUSUxERTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdGO0NBTkNFTCBUQUc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDEwMDtWQVJJQVRJT04gU0VMRUNUT1ItMTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDE7VkFSSUFUSU9OIFNFTEVDVE9SLTE4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTAyO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwMztWQVJJQVRJT04gU0VMRUNUT1ItMjA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDQ7VkFSSUFUSU9OIFNFTEVDVE9SLTIxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA1O1ZBUklBVElPTiBTRUxFQ1RPUi0yMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwNjtWQVJJQVRJT04gU0VMRUNUT1ItMjM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDc7VkFSSUFUSU9OIFNFTEVDVE9SLTI0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA4O1ZBUklBVElPTiBTRUxFQ1RPUi0yNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwOTtWQVJJQVRJT04gU0VMRUNUT1ItMjY7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEE7VkFSSUFUSU9OIFNFTEVDVE9SLTI3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBCO1ZBUklBVElPTiBTRUxFQ1RPUi0yODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwQztWQVJJQVRJT04gU0VMRUNUT1ItMjk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEQ7VkFSSUFUSU9OIFNFTEVDVE9SLTMwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBFO1ZBUklBVElPTiBTRUxFQ1RPUi0zMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwRjtWQVJJQVRJT04gU0VMRUNUT1ItMzI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTA7VkFSSUFUSU9OIFNFTEVDVE9SLTMzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTExO1ZBUklBVElPTiBTRUxFQ1RPUi0zNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExMjtWQVJJQVRJT04gU0VMRUNUT1ItMzU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTM7VkFSSUFUSU9OIFNFTEVDVE9SLTM2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE0O1ZBUklBVElPTiBTRUxFQ1RPUi0zNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExNTtWQVJJQVRJT04gU0VMRUNUT1ItMzg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTY7VkFSSUFUSU9OIFNFTEVDVE9SLTM5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE3O1ZBUklBVElPTiBTRUxFQ1RPUi00MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExODtWQVJJQVRJT04gU0VMRUNUT1ItNDE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTk7VkFSSUFUSU9OIFNFTEVDVE9SLTQyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFBO1ZBUklBVElPTiBTRUxFQ1RPUi00MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExQjtWQVJJQVRJT04gU0VMRUNUT1ItNDQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUM7VkFSSUFUSU9OIFNFTEVDVE9SLTQ1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFEO1ZBUklBVElPTiBTRUxFQ1RPUi00NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExRTtWQVJJQVRJT04gU0VMRUNUT1ItNDc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUY7VkFSSUFUSU9OIFNFTEVDVE9SLTQ4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTIwO1ZBUklBVElPTiBTRUxFQ1RPUi00OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyMTtWQVJJQVRJT04gU0VMRUNUT1ItNTA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjI7VkFSSUFUSU9OIFNFTEVDVE9SLTUxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTIzO1ZBUklBVElPTiBTRUxFQ1RPUi01MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyNDtWQVJJQVRJT04gU0VMRUNUT1ItNTM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjU7VkFSSUFUSU9OIFNFTEVDVE9SLTU0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI2O1ZBUklBVElPTiBTRUxFQ1RPUi01NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyNztWQVJJQVRJT04gU0VMRUNUT1ItNTY7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjg7VkFSSUFUSU9OIFNFTEVDVE9SLTU3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI5O1ZBUklBVElPTiBTRUxFQ1RPUi01ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyQTtWQVJJQVRJT04gU0VMRUNUT1ItNTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkI7VkFSSUFUSU9OIFNFTEVDVE9SLTYwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJDO1ZBUklBVElPTiBTRUxFQ1RPUi02MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyRDtWQVJJQVRJT04gU0VMRUNUT1ItNjI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkU7VkFSSUFUSU9OIFNFTEVDVE9SLTYzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJGO1ZBUklBVElPTiBTRUxFQ1RPUi02NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzMDtWQVJJQVRJT04gU0VMRUNUT1ItNjU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzE7VkFSSUFUSU9OIFNFTEVDVE9SLTY2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTMyO1ZBUklBVElPTiBTRUxFQ1RPUi02NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzMztWQVJJQVRJT04gU0VMRUNUT1ItNjg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzQ7VkFSSUFUSU9OIFNFTEVDVE9SLTY5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM1O1ZBUklBVElPTiBTRUxFQ1RPUi03MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzNjtWQVJJQVRJT04gU0VMRUNUT1ItNzE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzc7VkFSSUFUSU9OIFNFTEVDVE9SLTcyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM4O1ZBUklBVElPTiBTRUxFQ1RPUi03MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzOTtWQVJJQVRJT04gU0VMRUNUT1ItNzQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0E7VkFSSUFUSU9OIFNFTEVDVE9SLTc1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNCO1ZBUklBVElPTiBTRUxFQ1RPUi03NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzQztWQVJJQVRJT04gU0VMRUNUT1ItNzc7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0Q7VkFSSUFUSU9OIFNFTEVDVE9SLTc4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNFO1ZBUklBVElPTiBTRUxFQ1RPUi03OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzRjtWQVJJQVRJT04gU0VMRUNUT1ItODA7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDA7VkFSSUFUSU9OIFNFTEVDVE9SLTgxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQxO1ZBUklBVElPTiBTRUxFQ1RPUi04MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0MjtWQVJJQVRJT04gU0VMRUNUT1ItODM7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDM7VkFSSUFUSU9OIFNFTEVDVE9SLTg0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ0O1ZBUklBVElPTiBTRUxFQ1RPUi04NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0NTtWQVJJQVRJT04gU0VMRUNUT1ItODY7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDY7VkFSSUFUSU9OIFNFTEVDVE9SLTg3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ3O1ZBUklBVElPTiBTRUxFQ1RPUi04ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0ODtWQVJJQVRJT04gU0VMRUNUT1ItODk7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDk7VkFSSUFUSU9OIFNFTEVDVE9SLTkwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTRBO1ZBUklBVElPTiBTRUxFQ1RPUi05MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0QjtWQVJJQVRJT04gU0VMRUNUT1ItOTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEM7VkFSSUFUSU9OIFNFTEVDVE9SLTkzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTREO1ZBUklBVElPTiBTRUxFQ1RPUi05NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0RTtWQVJJQVRJT04gU0VMRUNUT1ItOTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEY7VkFSSUFUSU9OIFNFTEVDVE9SLTk2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTUwO1ZBUklBVElPTiBTRUxFQ1RPUi05NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1MTtWQVJJQVRJT04gU0VMRUNUT1ItOTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTI7VkFSSUFUSU9OIFNFTEVDVE9SLTk5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTUzO1ZBUklBVElPTiBTRUxFQ1RPUi0xMDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTQ7VkFSSUFUSU9OIFNFTEVDVE9SLTEwMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1NTtWQVJJQVRJT04gU0VMRUNUT1ItMTAyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU2O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTc7VkFSSUFUSU9OIFNFTEVDVE9SLTEwNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1ODtWQVJJQVRJT04gU0VMRUNUT1ItMTA1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU5O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUE7VkFSSUFUSU9OIFNFTEVDVE9SLTEwNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1QjtWQVJJQVRJT04gU0VMRUNUT1ItMTA4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVDO1ZBUklBVElPTiBTRUxFQ1RPUi0xMDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUQ7VkFSSUFUSU9OIFNFTEVDVE9SLTExMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1RTtWQVJJQVRJT04gU0VMRUNUT1ItMTExO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVGO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjA7VkFSSUFUSU9OIFNFTEVDVE9SLTExMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2MTtWQVJJQVRJT04gU0VMRUNUT1ItMTE0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTYyO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjM7VkFSSUFUSU9OIFNFTEVDVE9SLTExNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2NDtWQVJJQVRJT04gU0VMRUNUT1ItMTE3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY1O1ZBUklBVElPTiBTRUxFQ1RPUi0xMTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjY7VkFSSUFUSU9OIFNFTEVDVE9SLTExOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2NztWQVJJQVRJT04gU0VMRUNUT1ItMTIwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY4O1ZBUklBVElPTiBTRUxFQ1RPUi0xMjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjk7VkFSSUFUSU9OIFNFTEVDVE9SLTEyMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2QTtWQVJJQVRJT04gU0VMRUNUT1ItMTIzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZCO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkM7VkFSSUFUSU9OIFNFTEVDVE9SLTEyNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2RDtWQVJJQVRJT04gU0VMRUNUT1ItMTI2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZFO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkY7VkFSSUFUSU9OIFNFTEVDVE9SLTEyODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3MDtWQVJJQVRJT04gU0VMRUNUT1ItMTI5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTcxO1ZBUklBVElPTiBTRUxFQ1RPUi0xMzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzI7VkFSSUFUSU9OIFNFTEVDVE9SLTEzMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3MztWQVJJQVRJT04gU0VMRUNUT1ItMTMyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc0O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzU7VkFSSUFUSU9OIFNFTEVDVE9SLTEzNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3NjtWQVJJQVRJT04gU0VMRUNUT1ItMTM1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc3O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzg7VkFSSUFUSU9OIFNFTEVDVE9SLTEzNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3OTtWQVJJQVRJT04gU0VMRUNUT1ItMTM4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdBO1ZBUklBVElPTiBTRUxFQ1RPUi0xMzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0I7VkFSSUFUSU9OIFNFTEVDVE9SLTE0MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3QztWQVJJQVRJT04gU0VMRUNUT1ItMTQxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdEO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDI7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0U7VkFSSUFUSU9OIFNFTEVDVE9SLTE0MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3RjtWQVJJQVRJT04gU0VMRUNUT1ItMTQ0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTgwO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDU7TW47MDtOU007Ozs7O047Ozs7OworRTAxODE7VkFSSUFUSU9OIFNFTEVDVE9SLTE0NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4MjtWQVJJQVRJT04gU0VMRUNUT1ItMTQ3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTgzO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDg7TW47MDtOU007Ozs7O047Ozs7OworRTAxODQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE0OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4NTtWQVJJQVRJT04gU0VMRUNUT1ItMTUwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg2O1ZBUklBVElPTiBTRUxFQ1RPUi0xNTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxODc7VkFSSUFUSU9OIFNFTEVDVE9SLTE1MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4ODtWQVJJQVRJT04gU0VMRUNUT1ItMTUzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg5O1ZBUklBVElPTiBTRUxFQ1RPUi0xNTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEE7VkFSSUFUSU9OIFNFTEVDVE9SLTE1NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4QjtWQVJJQVRJT04gU0VMRUNUT1ItMTU2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThDO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE1ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4RTtWQVJJQVRJT04gU0VMRUNUT1ItMTU5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThGO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjA7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTA7VkFSSUFUSU9OIFNFTEVDVE9SLTE2MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5MTtWQVJJQVRJT04gU0VMRUNUT1ItMTYyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTkyO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjM7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTM7VkFSSUFUSU9OIFNFTEVDVE9SLTE2NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5NDtWQVJJQVRJT04gU0VMRUNUT1ItMTY1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk1O1ZBUklBVElPTiBTRUxFQ1RPUi0xNjY7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTY7VkFSSUFUSU9OIFNFTEVDVE9SLTE2NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5NztWQVJJQVRJT04gU0VMRUNUT1ItMTY4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk4O1ZBUklBVElPTiBTRUxFQ1RPUi0xNjk7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTk7VkFSSUFUSU9OIFNFTEVDVE9SLTE3MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5QTtWQVJJQVRJT04gU0VMRUNUT1ItMTcxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlCO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzI7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUM7VkFSSUFUSU9OIFNFTEVDVE9SLTE3MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5RDtWQVJJQVRJT04gU0VMRUNUT1ItMTc0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlFO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzU7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUY7VkFSSUFUSU9OIFNFTEVDVE9SLTE3NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBMDtWQVJJQVRJT04gU0VMRUNUT1ItMTc3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUExO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTI7VkFSSUFUSU9OIFNFTEVDVE9SLTE3OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBMztWQVJJQVRJT04gU0VMRUNUT1ItMTgwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE0O1ZBUklBVElPTiBTRUxFQ1RPUi0xODE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTU7VkFSSUFUSU9OIFNFTEVDVE9SLTE4MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBNjtWQVJJQVRJT04gU0VMRUNUT1ItMTgzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE3O1ZBUklBVElPTiBTRUxFQ1RPUi0xODQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTg7VkFSSUFUSU9OIFNFTEVDVE9SLTE4NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBOTtWQVJJQVRJT04gU0VMRUNUT1ItMTg2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFBO1ZBUklBVElPTiBTRUxFQ1RPUi0xODc7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUI7VkFSSUFUSU9OIFNFTEVDVE9SLTE4ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBQztWQVJJQVRJT04gU0VMRUNUT1ItMTg5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFEO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTA7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUU7VkFSSUFUSU9OIFNFTEVDVE9SLTE5MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBRjtWQVJJQVRJT04gU0VMRUNUT1ItMTkyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUIwO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTM7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjE7VkFSSUFUSU9OIFNFTEVDVE9SLTE5NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCMjtWQVJJQVRJT04gU0VMRUNUT1ItMTk1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUIzO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTY7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE5NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCNTtWQVJJQVRJT04gU0VMRUNUT1ItMTk4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI2O1ZBUklBVElPTiBTRUxFQ1RPUi0xOTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjc7VkFSSUFUSU9OIFNFTEVDVE9SLTIwMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCODtWQVJJQVRJT04gU0VMRUNUT1ItMjAxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI5O1ZBUklBVElPTiBTRUxFQ1RPUi0yMDI7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkE7VkFSSUFUSU9OIFNFTEVDVE9SLTIwMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCQjtWQVJJQVRJT04gU0VMRUNUT1ItMjA0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJDO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDU7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkQ7VkFSSUFUSU9OIFNFTEVDVE9SLTIwNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCRTtWQVJJQVRJT04gU0VMRUNUT1ItMjA3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJGO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzA7VkFSSUFUSU9OIFNFTEVDVE9SLTIwOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDMTtWQVJJQVRJT04gU0VMRUNUT1ItMjEwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUMyO1ZBUklBVElPTiBTRUxFQ1RPUi0yMTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzM7VkFSSUFUSU9OIFNFTEVDVE9SLTIxMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDNDtWQVJJQVRJT04gU0VMRUNUT1ItMjEzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM1O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzY7VkFSSUFUSU9OIFNFTEVDVE9SLTIxNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDNztWQVJJQVRJT04gU0VMRUNUT1ItMjE2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM4O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzk7VkFSSUFUSU9OIFNFTEVDVE9SLTIxODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDQTtWQVJJQVRJT04gU0VMRUNUT1ItMjE5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNCO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjA7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0M7VkFSSUFUSU9OIFNFTEVDVE9SLTIyMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDRDtWQVJJQVRJT04gU0VMRUNUT1ItMjIyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNFO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjM7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0Y7VkFSSUFUSU9OIFNFTEVDVE9SLTIyNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEMDtWQVJJQVRJT04gU0VMRUNUT1ItMjI1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQxO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjY7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDI7VkFSSUFUSU9OIFNFTEVDVE9SLTIyNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEMztWQVJJQVRJT04gU0VMRUNUT1ItMjI4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ0O1ZBUklBVElPTiBTRUxFQ1RPUi0yMjk7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDU7VkFSSUFUSU9OIFNFTEVDVE9SLTIzMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFENjtWQVJJQVRJT04gU0VMRUNUT1ItMjMxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ3O1ZBUklBVElPTiBTRUxFQ1RPUi0yMzI7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDg7VkFSSUFUSU9OIFNFTEVDVE9SLTIzMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEOTtWQVJJQVRJT04gU0VMRUNUT1ItMjM0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMURBO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzU7TW47MDtOU007Ozs7O047Ozs7OworRTAxREI7VkFSSUFUSU9OIFNFTEVDVE9SLTIzNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEQztWQVJJQVRJT04gU0VMRUNUT1ItMjM3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUREO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzg7TW47MDtOU007Ozs7O047Ozs7OworRTAxREU7VkFSSUFUSU9OIFNFTEVDVE9SLTIzOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFERjtWQVJJQVRJT04gU0VMRUNUT1ItMjQwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUUwO1ZBUklBVElPTiBTRUxFQ1RPUi0yNDE7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTE7VkFSSUFUSU9OIFNFTEVDVE9SLTI0MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFMjtWQVJJQVRJT04gU0VMRUNUT1ItMjQzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUUzO1ZBUklBVElPTiBTRUxFQ1RPUi0yNDQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTQ7VkFSSUFUSU9OIFNFTEVDVE9SLTI0NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFNTtWQVJJQVRJT04gU0VMRUNUT1ItMjQ2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU2O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDc7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTc7VkFSSUFUSU9OIFNFTEVDVE9SLTI0ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFODtWQVJJQVRJT04gU0VMRUNUT1ItMjQ5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU5O1ZBUklBVElPTiBTRUxFQ1RPUi0yNTA7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUE7VkFSSUFUSU9OIFNFTEVDVE9SLTI1MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFQjtWQVJJQVRJT04gU0VMRUNUT1ItMjUyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVDO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTM7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUQ7VkFSSUFUSU9OIFNFTEVDVE9SLTI1NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFRTtWQVJJQVRJT04gU0VMRUNUT1ItMjU1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVGO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTY7TW47MDtOU007Ozs7O047Ozs7OworRjAwMDA7PFBsYW5lIDE1IFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0ZGRkZEOzxQbGFuZSAxNSBQcml2YXRlIFVzZSwgTGFzdD47Q287MDtMOzs7OztOOzs7OzsKKzEwMDAwMDs8UGxhbmUgMTYgUHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworMTBGRkZEOzxQbGFuZSAxNiBQcml2YXRlIFVzZSwgTGFzdD47Q287MDtMOzs7OztOOzs7OzsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjFkZGVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvdWNkdGVybXMudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1VOSUNPREUsIElOQy4gTElDRU5TRSBBR1JFRU1FTlQgLSBEQVRBIEZJTEVTIEFORCBTT0ZUV0FSRQorCitVbmljb2RlIERhdGEgRmlsZXMgaW5jbHVkZSBhbGwgZGF0YSBmaWxlcyB1bmRlciB0aGUgZGlyZWN0b3JpZXMKK2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLyBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzLy4KK1VuaWNvZGUgU29mdHdhcmUgaW5jbHVkZXMgYW55IHNvdXJjZSBjb2RlIHVuZGVyIHRoZSBkaXJlY3RvcmllcworaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvIGFuZCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvLgorCitOT1RJQ0UgVE8gVVNFUjogQ2FyZWZ1bGx5IHJlYWQgdGhlIGZvbGxvd2luZyBsZWdhbCBhZ3JlZW1lbnQuIEJZIERPV05MT0FESU5HLAorSU5TVEFMTElORywgQ09QWUlORyBPUiBPVEhFUldJU0UgVVNJTkcgVU5JQ09ERSBJTkMuJ1MgREFUQSBGSUxFUyAoIkRBVEEgRklMRVMiKSwKK0FORC9PUiBTT0ZUV0FSRSAoIlNPRlRXQVJFIiksIFlPVSBVTkVRVUlWT0NBTExZIEFDQ0VQVCwgQU5EIEFHUkVFIFRPIEJFIEJPVU5ECitCWSwgQUxMIE9GIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVC4gSUYgWU9VIERPIE5PVCBBR1JFRSwKK0RPIE5PVCBET1dOTE9BRCwgSU5TVEFMTCwgQ09QWSwgRElTVFJJQlVURSBPUiBVU0UgVEhFIERBVEEgRklMRVMgT1IgU09GVFdBUkUuCisKK0NPUFlSSUdIVCBBTkQgUEVSTUlTU0lPTiBOT1RJQ0UKKworQ29weXJpZ2h0IChjKSAxOTkxLTIwMDQgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBEaXN0cmlidXRlZCB1bmRlciB0aGUKK1Rlcm1zIG9mIFVzZSBpbiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NvcHlyaWdodC5odG1sLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mCit0aGUgVW5pY29kZSBkYXRhIGZpbGVzIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gKHRoZSAiRGF0YSBGaWxlcyIpIG9yCitVbmljb2RlIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gKHRoZSAiU29mdHdhcmUiKSB0byBkZWFsIGluIHRoZQorRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCit0aGUgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIERhdGEgRmlsZXMgb3IKK1NvZnR3YXJlIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgKGEpIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlKHMpCithbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBvZiB0aGUgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSwKKyhiKSBib3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlKHMpIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbgorYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uLCBhbmQgKGMpIHRoZXJlIGlzIGNsZWFyIG5vdGljZSBpbiBlYWNoIG1vZGlmaWVkIERhdGEKK0ZpbGUgb3IgaW4gdGhlIFNvZnR3YXJlIGFzIHdlbGwgYXMgaW4gdGhlIGRvY3VtZW50YXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBEYXRhCitGaWxlKHMpIG9yIFNvZnR3YXJlIHRoYXQgdGhlIGRhdGEgb3Igc29mdHdhcmUgaGFzIGJlZW4gbW9kaWZpZWQuCisKK1RIRSBEQVRBIEZJTEVTIEFORCBTT0ZUV0FSRSBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5UIE9GIFRISVJECitQQVJUWSBSSUdIVFMuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIEhPTERFUlMgSU5DTFVERUQgSU4gVEhJUworTk9USUNFIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBPUiBBTlkgU1BFQ0lBTCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMCitEQU1BR0VTLCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsCitXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSEUgREFUQSBGSUxFUyBPUgorU09GVFdBUkUuCisKK0V4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlciBzaGFsbCBub3QgYmUKK3VzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsaW5ncyBpbgordGhlc2UgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBvZiB0aGUKK2NvcHlyaWdodCBob2xkZXIuCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJBcHAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhckFwcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3NTJjMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJBcHAuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CisKKy8qKgorICogQ2FsZW5kYXJBcHAgZGVtb25zdHJhdGVzIGhvdyBDYWxlbmRhciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyQXBwIGV4dGVuZHMgRGVtb0FwcGxldAoreworICAgIC8qKgorICAgICAqIFRoZSBtYWluIGZ1bmN0aW9uIHdoaWNoIGRlZmluZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisKKyAgICAgICAgbmV3IENhbGVuZGFyQXBwKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICAvKiBUaGlzIGNyZWF0ZXMgYSBDYWxlbmRhckZyYW1lIGZvciB0aGUgZGVtbyBhcHBsZXQuICovCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmFkMTg2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhckNhbGMuamF2YQpAQCAtMCwwICsxLDU4NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5DaGVja2JveDsKK2ltcG9ydCBqYXZhLmF3dC5DaGVja2JveEdyb3VwOworaW1wb3J0IGphdmEuYXd0LkNob2ljZTsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRm9udDsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworaW1wb3J0IGphdmEuYXd0LlRleHRGaWVsZDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEZpZWxkOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vQXBwbGV0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb1V0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKy8qKgorICogQ2FsZW5kYXJDYWxjIGRlbW9uc3RyYXRlcyBob3cgRGF0ZS9UaW1lIGZvcm1hdHRlciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyQ2FsYyBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgbWFpbiBmdW5jdGlvbiB3aGljaCBkZWZpbmVzIHRoZSBiZWhhdmlvciBvZiB0aGUgTXVsdGlDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisgICAgICAgIG5ldyBDYWxlbmRhckNhbGMoKS5zaG93RGVtbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY3JlYXRlcyBhIENhbGVuZGFyQ2FsY0ZyYW1lIGZvciB0aGUgZGVtbyBhcHBsZXQuCisgICAgICovCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyQ2FsY0ZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisvKioKKyAqIEEgRnJhbWUgaXMgYSB0b3AtbGV2ZWwgd2luZG93IHdpdGggYSB0aXRsZS4gVGhlIGRlZmF1bHQgbGF5b3V0IGZvciBhIGZyYW1lCisgKiBpcyBCb3JkZXJMYXlvdXQuICBUaGUgQ2FsZW5kYXJDYWxjRnJhbWUgY2xhc3MgZGVmaW5lcyB0aGUgd2luZG93IGxheW91dCBvZgorICogTXVsdGlDYWxlbmRhckRlbW8uCisgKi8KK2NsYXNzIENhbGVuZGFyQ2FsY0ZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBsb2NhbGVzID0gRGVtb1V0aWxpdHkuZ2V0RzdMb2NhbGVzKCk7CisKKyAgICBwcml2YXRlIERlbW9BcHBsZXQgICAgICAgICAgICAgIGFwcGxldDsKKyAgICBwcml2YXRlIGxvbmcgICAgICAgICAgICAgICAgICAgIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFJvbGxBZGRGaWVsZCBrUm9sbEFkZEZpZWxkc1tdID0geworICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLllFQVIsICAgICAgICAgICAgICAgICAiWWVhciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5NT05USCwgICAgICAgICAgICAgICAgIk1vbnRoIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsICAgICAgICAiV2VlayBvZiBNb250aCIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5XRUVLX09GX1lFQVIsICAgICAgICAgIldlZWsgb2YgWWVhciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsICAgICAgICAgIkRheSBvZiBNb250aCIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5EQVlfT0ZfV0VFSywgICAgICAgICAgIkRheSBvZiBXZWVrIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAiRGF5IG9mIFdlZWsgaW4gTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX1lFQVIsICAgICAgICAgICJEYXkgb2YgWWVhciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5BTV9QTSwgICAgICAgICAgICAgICAgIkFNL1BNIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkhPVVJfT0ZfREFZLCAgICAgICAgICAiSG91ciBvZiBkYXkiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuSE9VUiwgICAgICAgICAgICAgICAgICJIb3VyIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLk1JTlVURSwgICAgICAgICAgICAgICAiTWludXRlIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLlNFQ09ORCwgICAgICAgICAgICAgICAiU2Vjb25kIiApLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyQ2FsY0ZyYW1lIHRoYXQgaXMgaW5pdGlhbGx5IGludmlzaWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXJDYWxjRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpCisgICAgeworICAgICAgICBzdXBlcigiTXVsdGlwbGUgQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgaW5pdCgpOworICAgICAgICBzdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBkaXJlY3RseSwgaXQKKyAgICAgKiBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgc3lzdGVtIG9uY2UgdGhlIGFwcGxldCBpcyBjcmVhdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgYnVpbGRHVUkoKTsKKworICAgICAgICBwYXR0ZXJuVGV4dC5zZXRUZXh0KCBjYWxlbmRhcnNbMF0udG9QYXR0ZXJuKCkgKTsKKworICAgICAgICAvLyBGb3JjZSBhbiB1cGRhdGUgb2YgdGhlIGRpc3BsYXkKKyAgICAgICAgY2l0eUNoYW5nZWQoKTsKKyAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUkVMRUFTRUQpOworICAgICAgICBlbmFibGVFdmVudHMoV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFja2FnZSBwcml2YXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgZm9vLnNldEZvbnQoZm9udCk7CisgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gc3RhcnQgdGhlIGFwcGxldC4gWW91IG5ldmVyIG5lZWQgdG8gY2FsbCB0aGlzIG1ldGhvZAorICAgICAqIGRpcmVjdGx5LCBpdCBpcyBjYWxsZWQgd2hlbiB0aGUgYXBwbGV0J3MgZG9jdW1lbnQgaXMgdmlzaXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgeworICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgfQorCisgICAgVGV4dEZpZWxkIHBhdHRlcm5UZXh0OworCisgICAgQ2hvaWNlIGRhdGVNZW51OworICAgIENob2ljZSBsb2NhbGVNZW51OworCisgICAgQnV0dG9uIHVwOworICAgIEJ1dHRvbiBkb3duOworCisgICAgQ2hlY2tib3ggZ2V0Um9sbDsKKyAgICBDaGVja2JveCBnZXRBZGQ7CisKKyAgICBwdWJsaWMgdm9pZCBidWlsZEdVSSgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICBzZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7IC8vIHNob3VsZG4ndCBiZSBuZWNlc3NhcnksIGJ1dCBpdCBpcy4KKworLy8gVElUTEUKKyAgICAgICAgTGFiZWwgbGFiZWwxPW5ldyBMYWJlbCgiQ2FsZW5kYXIgQ29udmVydGVyIiwgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgbGFiZWwxLnNldEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250KTsKKyAgICAgICAgYWRkKGxhYmVsMSk7CisgICAgICAgIGFkZChEZW1vVXRpbGl0eS5jcmVhdGVTcGFjZXIoKSk7CisKKy8vIElPIFBhbmVsCisgICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHRvcFBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dCgpKTsKKworICAgICAgICBDaGVja2JveEdyb3VwIGdyb3VwMT0gbmV3IENoZWNrYm94R3JvdXAoKTsKKworICAgICAgICAvLyBTZXQgdXAgdGhlIGNvbnRyb2xzIGZvciBlYWNoIGNhbGVuZGFyIHdlJ3JlIGRlbW9uc3RyYXRpbmcKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIExhYmVsIGxhYmVsID0gbmV3IExhYmVsKGNhbGVuZGFyc1tpXS5uYW1lLCBMYWJlbC5SSUdIVCk7CisgICAgICAgICAgICBsYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQobGFiZWwpOworCisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2FsZW5kYXJzW2ldLnRleHQpOworCisgICAgICAgICAgICBmaW5hbCBpbnQgaiA9IGk7CisgICAgICAgICAgICBjYWxlbmRhcnNbaV0udGV4dC5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRDaGFuZ2VkKGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKworICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnJvbGxBZGQuc2V0Q2hlY2tib3hHcm91cChncm91cDEpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNhbGVuZGFyc1tpXS5yb2xsQWRkKTsKKyAgICAgICAgfQorICAgICAgICBjYWxlbmRhcnNbMF0ucm9sbEFkZC5zZXRTdGF0ZSh0cnVlKTsgICAgLy8gTWFrZSB0aGUgZmlyc3Qgb25lIHNlbGVjdGVkCisKKyAgICAgICAgTGFiZWwgbGFiZWw0PW5ldyBMYWJlbCgiUGF0dGVybiIsIExhYmVsLlJJR0hUKTsKKyAgICAgICAgbGFiZWw0LnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgdG9wUGFuZWwuYWRkKGxhYmVsNCk7CisKKyAgICAgICAgcGF0dGVyblRleHQ9bmV3IFRleHRGaWVsZChGSUVMRF9DT0xVTU5TKTsKKyAgICAgICAgcGF0dGVyblRleHQuc2V0Rm9udChEZW1vVXRpbGl0eS5lZGl0Rm9udCk7CisgICAgICAgIHRvcFBhbmVsLmFkZChwYXR0ZXJuVGV4dCk7CisgICAgICAgIHRvcFBhbmVsLmFkZChuZXcgTGFiZWwoIiIpKTsKKworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDMpOworICAgICAgICBhZGQodG9wUGFuZWwpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworCisvLyBST0xMIC8gQURECisgICAgICAgIFBhbmVsIHJvbGxBZGRQYW5lbD1uZXcgUGFuZWwoKTsKKyAgICAgICAgeworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dCgpKTsKKworICAgICAgICAgICAgUGFuZWwgcm9sbEFkZEJveGVzID0gbmV3IFBhbmVsKCk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcm9sbEFkZEJveGVzLnNldExheW91dChuZXcgR3JpZExheW91dCgyLDEpKTsKKyAgICAgICAgICAgICAgICBDaGVja2JveEdyb3VwIGdyb3VwMj0gbmV3IENoZWNrYm94R3JvdXAoKTsKKyAgICAgICAgICAgICAgICBnZXRSb2xsID0gbmV3IENoZWNrYm94KCJSb2xsIixncm91cDIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBnZXRBZGQgPSBuZXcgQ2hlY2tib3goIkFkZCIsZ3JvdXAyLCB0cnVlKTsKKworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5hZGQoZ2V0Um9sbCk7CisgICAgICAgICAgICAgICAgcm9sbEFkZEJveGVzLmFkZChnZXRBZGQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMYWJlbCBkYXRlTGFiZWw9bmV3IExhYmVsKCJEYXRlIEZpZWxkcyIpOworICAgICAgICAgICAgZGF0ZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKworICAgICAgICAgICAgZGF0ZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIGRhdGVNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrUm9sbEFkZEZpZWxkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGRhdGVNZW51LmFkZEl0ZW0oa1JvbGxBZGRGaWVsZHNbaV0ubmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGtSb2xsQWRkRmllbGRzW2ldLmZpZWxkID09IENhbGVuZGFyLk1PTlRIKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVNZW51LnNlbGVjdChpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFBhbmVsIHVwRG93biA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHVwRG93bi5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgICAgICAgICAvLyAqKiogSWYgdGhlIGltYWdlcyBhcmUgbm90IGZvdW5kLCB3ZSB1c2UgdGhlIGxhYmVsLgorICAgICAgICAgICAgICAgIHVwID0gbmV3IEJ1dHRvbigiXiIpOworICAgICAgICAgICAgICAgIGRvd24gPSBuZXcgQnV0dG9uKCJ2Iik7CisgICAgICAgICAgICAgICAgdXAuc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgICAgICAgICBkb3duLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgICAgICAgICAgdXBEb3duLmFkZCh1cCk7CisgICAgICAgICAgICAgICAgdXBEb3duLmFkZChkb3duKTsKKyAgICAgICAgICAgICAgICB1cC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgICAgICBkb3duLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKGRhdGVMYWJlbCk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKGRhdGVNZW51KTsKKyAgICAgICAgICAgIHJvbGxBZGRQYW5lbC5hZGQocm9sbEFkZEJveGVzKTsKKyAgICAgICAgICAgIHJvbGxBZGRQYW5lbC5hZGQodXBEb3duKTsKKworICAgICAgICB9CisgICAgICAgIFBhbmVsIGxvY2FsZVBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIE1ha2UgdGhlIGxvY2FsZSBwb3B1cCBtZW51cworICAgICAgICAgICAgbG9jYWxlTWVudT0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaW50IGJlc3RNYXRjaCA9IC0xLCB0aGlzTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaS0xXS5nZXRMYW5ndWFnZSgpKSB8fAorICAgICAgICAgICAgICAgICAgICBpIDwgbG9jYWxlcy5sZW5ndGggLSAxICYmCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaSsxXS5nZXRMYW5ndWFnZSgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlTWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGhpc01hdGNoID0gRGVtb1V0aWxpdHkuY29tcGFyZUxvY2FsZXMobG9jYWxlc1tpXSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHRoaXNNYXRjaCA+PSBiZXN0TWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoID0gdGhpc01hdGNoOworICAgICAgICAgICAgICAgICAgICBzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBsb2NhbGVNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgbG9jYWxlTWVudS5zZWxlY3Qoc2VsZWN0TWUpOworCisgICAgICAgICAgICBMYWJlbCBsb2NhbGVMYWJlbCA9bmV3IExhYmVsKCJEaXNwbGF5IExvY2FsZSIpOworICAgICAgICAgICAgbG9jYWxlTGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworCisgICAgICAgICAgICBsb2NhbGVQYW5lbC5hZGQobG9jYWxlTGFiZWwpOworICAgICAgICAgICAgbG9jYWxlUGFuZWwuYWRkKGxvY2FsZU1lbnUpOworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChsb2NhbGVQYW5lbCwyKTsKKworICAgICAgICAgICAgbG9jYWxlTWVudS5hZGRJdGVtTGlzdGVuZXIoIG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jID0gbG9jYWxlc1tsb2NhbGVNZW51LmdldFNlbGVjdGVkSW5kZXgoKV07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2hhbmdlIGxvY2FsZSB0byAiICsgbG9jLmdldERpc3BsYXlOYW1lKCkpOworCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0uc2V0TG9jYWxlKGxvYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSApOworICAgICAgICB9CisgICAgICAgIGFkZChyb2xsQWRkUGFuZWwpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworICAgICAgICBhZGQobG9jYWxlUGFuZWwpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworCisvLyBDT1BZUklHSFQKKyAgICAgICAgUGFuZWwgY29weXJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYWRkV2l0aEZvbnQgKGNvcHlyaWdodFBhbmVsLG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKSwKKyAgICAgICAgICAgIERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKGNvcHlyaWdodFBhbmVsLDEpOworICAgICAgICBhZGQoY29weXJpZ2h0UGFuZWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBwYXR0ZXJuIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0RnJvbVBhdHRlcm4oKSB7CisgICAgICAgIFN0cmluZyB0aW1lUGF0dGVybiA9IHBhdHRlcm5UZXh0LmdldFRleHQoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgY2FsZW5kYXJzW2ldLmFwcGx5UGF0dGVybih0aW1lUGF0dGVybik7CisgICAgICAgIH0KKworICAgICAgICBtaWxsaXNGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGl0IGlzIG5lY2Vzc2FyeSB0byBwYXJzZSB0aGUgdGltZQorICAgICAqIHN0cmluZyBpbiBvbmUgb2YgdGhlIGZvcm1hdHRlZCBkYXRlIGZpZWxkcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRleHRDaGFuZ2VkKGludCBpbmRleCkgeworICAgICAgICBTdHJpbmcgcmlnaHRTdHJpbmcgPSBjYWxlbmRhcnNbaW5kZXhdLnRleHQuZ2V0VGV4dCgpOworCisgICAgICAgIFBhcnNlUG9zaXRpb24gc3RhdHVzID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisKKyAgICAgICAgaWYgKHJpZ2h0U3RyaW5nLmxlbmd0aCgpID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiRXJyb3I6IG5vIGlucHV0IHRvIHBhcnNlISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGNhbGVuZGFyc1tpbmRleF0uZm9ybWF0LnBhcnNlKHJpZ2h0U3RyaW5nLCBzdGF0dXMpOworICAgICAgICAgICAgdGltZSA9IGRhdGUuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBpbmRleCkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0udGV4dC5zZXRUZXh0KCJFUlJPUiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycm9yVGV4dCgiRXhjZXB0aW9uOiAiICsgZS5nZXRDbGFzcygpLnRvU3RyaW5nKCkgKyAiIHBhcnNpbmc6ICIrcmlnaHRTdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IHN0YXJ0ID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGludCBlbmQgPSBjYWxlbmRhcnNbaW5kZXhdLnRleHQuZ2V0U2VsZWN0aW9uRW5kKCk7CisKKyAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisKKyAgICAgICAgY2FsZW5kYXJzW2luZGV4XS50ZXh0LnNlbGVjdChzdGFydCxlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gaXQgaXMgbmVjZXNzYXJ5IHRvIGZvcm1hdCB0aGUgdGltZQorICAgICAqIGluIHRoZSAiTWlsbGlzIiB0ZXh0IGZpZWxkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1pbGxpc0Zvcm1hdCgpIHsKKyAgICAgICAgU3RyaW5nIG91dCA9ICIiOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG91dCA9IGNhbGVuZGFyc1tpXS5mb3JtYXQuZm9ybWF0KG5ldyBEYXRlKHRpbWUpKTsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0udGV4dC5zZXRUZXh0KG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0udGV4dC5zZXRUZXh0KCJFUlJPUiIpOworICAgICAgICAgICAgICAgIGVycm9yVGV4dCgiRXhjZXB0aW9uOiAiICsgZS5nZXRDbGFzcygpLnRvU3RyaW5nKCkgKyAiIGZvcm1hdHRpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXJzW2ldLm5hbWUgKyAiICIgKyB0aW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB1c2VycyBjaGFuZ2UgdGhlIHBhdHRlcm4gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXR0ZXJuVGV4dENoYW5nZWQoKSB7CisgICAgICAgIHNldEZvcm1hdEZyb21QYXR0ZXJuKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB1c2VycyBzZWxlY3QgYSBuZXcgcmVwcmVzZW50YXRpdmUgY2l0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjaXR5Q2hhbmdlZCgpIHsKKyAgICAgICAgVGltZVpvbmUgdGltZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5mb3JtYXQuc2V0VGltZVpvbmUodGltZVpvbmUpOworICAgICAgICB9CisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgc2VsZWN0IGEgbmV3IHRpbWUgZmllbGQKKyAgICAgKiB0byBhZGQgb3Igcm9sbCBpdHMgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZGF0ZUZpZWxkQ2hhbmdlZChib29sZWFuIHVwKSB7CisgICAgICAgIGludCBmaWVsZCA9IGtSb2xsQWRkRmllbGRzW2RhdGVNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0uZmllbGQ7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhcnNbaV0ucm9sbEFkZC5nZXRTdGF0ZSgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGMgPSBjYWxlbmRhcnNbaV0uY2FsZW5kYXI7CisgICAgICAgICAgICAgICAgYy5zZXRUaW1lKG5ldyBEYXRlKHRpbWUpKTsKKworICAgICAgICAgICAgICAgIGlmIChnZXRBZGQuZ2V0U3RhdGUoKSkgeworICAgICAgICAgICAgICAgICAgICBjLmFkZChmaWVsZCwgdXAgPyAxIDogLTEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMucm9sbChmaWVsZCwgdXApOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRpbWUgPSBjLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCBvdXQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgZGVidWdnaW5nIHRoaXMgcHJvZ3JhbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgeworICAgICAgICBpZiAodHJ1ZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENhbGxlZCBpZiBhbiBhY3Rpb24gb2NjdXJzIGluIHRoZSBDYWxlbmRhckNhbGNGcmFtZSBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIC8vICoqKiBCdXR0b24gZXZlbnRzIGFyZSBoYW5kbGVkIGhlcmUuCisgICAgICAgIE9iamVjdCBvYmogPSBldnQuZ2V0U291cmNlKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYWN0aW9uICIgKyBvYmopOworICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgQnV0dG9uKSB7CisgICAgICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpID09IHVwKSB7CisgICAgICAgICAgICAgICAgZGF0ZUZpZWxkQ2hhbmdlZChmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpID09IGRvd24pIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZUZpZWxkQ2hhbmdlZCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBIYW5kbGVzIHRoZSBldmVudC4gUmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBoYW5kbGVkIGFuZCBzaG91bGQgbm90CisgICAgICogYmUgcGFzc2VkIHRvIHRoZSBwYXJlbnQgb2YgdGhpcyBjb21wb25lbnQuIFRoZSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIKKyAgICAgKiBjYWxscyBzb21lIGhlbHBlciBtZXRob2RzIHRvIG1ha2UgbGlmZSBlYXNpZXIgb24gdGhlIHByb2dyYW1tZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc0tleUV2ZW50KEtleUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigia2V5ICIgKyBldnQpOworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gS2V5RXZlbnQuS0VZX1JFTEVBU0VEKSB7IAorICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSBwYXR0ZXJuVGV4dCkgeworICAgICAgICAgICAgICAgIHBhdHRlcm5UZXh0Q2hhbmdlZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSBjYWxlbmRhcnNbaV0udGV4dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENoYW5nZWQoaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkgCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIndpbmRvdyAiICsgZXZ0KTsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HICYmIAorICAgICAgICAgICAgZXZ0LmdldFNvdXJjZSgpID09IHRoaXMpIHsKKyAgICAgICAgICAgIHRoaXMuaGlkZSgpOworICAgICAgICAgICAgdGhpcy5kaXNwb3NlKCk7CisKKyAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NFdmVudChBV1RFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gQVdURXZlbnQuIEV2ZW50LkFDVElPTl9FVkVOVCAmJiBldnQudGFyZ2V0ID09IHVwKSB7CisgICAgICAgICAgICBkYXRlRmllbGRDaGFuZ2VkKHRydWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZ0LmlkID09IEV2ZW50LkFDVElPTl9FVkVOVCAmJiBldnQudGFyZ2V0ID09IGRvd24pIHsKKyAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgICAgICAgRklFTERfQ09MVU1OUyA9IDM1OworCisKKyAgICBjbGFzcyBDYWxlbmRhclJlYyB7CisgICAgICAgIHB1YmxpYyBDYWxlbmRhclJlYyhTdHJpbmcgbmFtZVN0ciwgQ2FsZW5kYXIgY2FsKQorICAgICAgICB7CisgICAgICAgICAgICBuYW1lID0gbmFtZVN0cjsKKyAgICAgICAgICAgIGNhbGVuZGFyID0gY2FsOworICAgICAgICAgICAgcm9sbEFkZCA9IG5ldyBDaGVja2JveCgpOworCisgICAgICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0RmllbGQoIiIsRklFTERfQ09MVU1OUyk7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworCisgICAgICAgICAgICBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgLy9mb3JtYXQuYXBwbHlQYXR0ZXJuKERFRkFVTFRfRk9STUFUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHRvUGF0dGVybigpOworCisgICAgICAgICAgICBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWxlbmRhciwgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jKTsKKyAgICAgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4ocGF0dGVybik7CisvL2hleSB7YWx9IC0gCisvLyAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0IGluc3RhbmNlb2YgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpIHsKKy8vICAgICAgICAgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLnRvUGF0dGVybigpOworLy9oZXkge2FsfSAtIAorLy8gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisvLyAgICAgICAgICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLnRvUGF0dGVybigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgIGNhbGVuZGFyOworICAgICAgICBEYXRlRm9ybWF0ICAgICAgICAgIGZvcm1hdDsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBuYW1lOworICAgICAgICBKVGV4dEZpZWxkICAgICAgICAgICB0ZXh0OworICAgICAgICBDaGVja2JveCAgICAgICAgICAgIHJvbGxBZGQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhclJlY1tdIGNhbGVuZGFycyA9IHsKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJHcmVnb3JpYW4iLCAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkhlYnJldyIsICAgICAgICAgICBuZXcgSGVicmV3Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyAoY2l2aWwpIiwgIG1ha2VJc2xhbWljKHRydWUpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljICh0cnVlKSIsICAgbWFrZUlzbGFtaWMoZmFsc2UpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJCdWRkaGlzdCIsICAgICAgICAgbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSmFwYW5lc2UiLCAgICAgICAgIG5ldyBKYXBhbmVzZUNhbGVuZGFyKCkpLAorLy8gICAgICAgIG5ldyBDYWxlbmRhclJlYygiQ2hpbmVzZSIsICAgICAgICAgIG5ldyBDaGluZXNlQ2FsZW5kYXIoKSksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIENhbGVuZGFyIG1ha2VJc2xhbWljKGJvb2xlYW4gY2l2aWwpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGNpdmlsKTsKKyAgICAgICAgcmV0dXJuIGNhbDsKKyAgICB9Cit9CisKK2NsYXNzIFJvbGxBZGRGaWVsZCB7CisgICAgUm9sbEFkZEZpZWxkKGludCBmaWVsZCwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkOworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIH0KKyAgICBpbnQgZmllbGQ7CisgICAgU3RyaW5nIG5hbWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMWZjYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpAQCAtMCwwICsxLDQzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRm9udDsKK2ltcG9ydCBqYXZhLmF3dC5Gb250TWV0cmljczsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWludHM7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9BcHBsZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCisvKioKKyAqIEEgRnJhbWUgaXMgYSB0b3AtbGV2ZWwgd2luZG93IHdpdGggYSB0aXRsZS4gVGhlIGRlZmF1bHQgbGF5b3V0IGZvciBhIGZyYW1lCisgKiBpcyBCb3JkZXJMYXlvdXQuICBUaGUgQ2FsZW5kYXJGcmFtZSBjbGFzcyBkZWZpbmVzIHRoZSB3aW5kb3cgbGF5b3V0IG9mCisgKiBDYWxlbmRhckRlbW8uCisgKi8KK2NsYXNzIENhbGVuZGFyRnJhbWUgZXh0ZW5kcyBGcmFtZQoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyRnJhbWUgdGhhdCBpcyBpbml0aWFsbHkgaW52aXNpYmxlLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckZyYW1lKERlbW9BcHBsZXQgbXlBcHBsZXQpCisgICAgeworICAgICAgICBzdXBlcigiQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICB0aGlzLmFwcGxldCA9IG15QXBwbGV0OworICAgICAgICBpbml0KCk7CisKKyAgICAgICAgLy8gV2hlbiB0aGUgd2luZG93IGlzIGNsb3NlZCwgd2Ugd2FudCB0byBzaHV0IGRvd24gdGhlIGFwcGxldCBvciBhcHBsaWNhdGlvbgorICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcigKKyAgICAgICAgICAgIG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgZGlzcG9zZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICB9CisKKyAgICBwcml2YXRlIENob2ljZSAgICAgICAgICBkaXNwbGF5TWVudTsKKyAgICBwcml2YXRlIExvY2FsZVtdICAgICAgICBsb2NhbGVzID0gRGVtb1V0aWxpdHkuZ2V0RzdMb2NhbGVzKCk7CisKKyAgICBwcml2YXRlIENhbGVuZGFyICAgICAgICBjYWxlbmRhcnNbXSAgID0gbmV3IENhbGVuZGFyWzJdOworICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGNhbE1lbnVbXSAgICAgPSBuZXcgQ2hvaWNlWzJdOworICAgIHByaXZhdGUgQ29sb3JlZExhYmVsICAgIG1vbnRoTGFiZWxbXSAgPSBuZXcgQ29sb3JlZExhYmVsWzJdOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdCAgICAgIG1vbnRoRm9ybWF0W10gPSBuZXcgRGF0ZUZvcm1hdFsyXTsKKworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZZZWFyOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZNb250aDsKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBnb3RvVG9kYXk7CisgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgbmV4dE1vbnRoOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRZZWFyOworICAgIHByaXZhdGUgQ2FsZW5kYXJQYW5lbCAgIGNhbGVuZGFyUGFuZWw7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgY29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZywgR3JpZEJhZ0NvbnN0cmFpbnRzIGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyaWR3aWR0aCwgaW50IHdlaWdodHgpCisgICAgeworICAgICAgICBjLmdyaWR3aWR0aCA9IGdyaWR3aWR0aDsKKyAgICAgICAgYy53ZWlnaHR4ID0gd2VpZ2h0eDsKKyAgICAgICAgZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnQsIGMpOworICAgICAgICBjb250YWluZXIuYWRkKGNvbXBvbmVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGFwcGxldC4gWW91IG5ldmVyIG5lZWQgdG8gY2FsbCB0aGlzIGRpcmVjdGx5LCBpdAorICAgICAqIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gb25jZSB0aGUgYXBwbGV0IGlzIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoMTAsMTApKTsKKworICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQoZyk7CisgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKKworICAgICAgICAvLyBCdWlsZCB0aGUgdHdvIG1lbnVzIGZvciBzZWxlY3Rpbmcgd2hpY2ggY2FsZW5kYXIgaXMgZGlzcGxheWVkLAorICAgICAgICAvLyBwbHVzIHRoZSBtb250aC95ZWFyIGxhYmVsIGZvciBlYWNoIGNhbGVuZGFyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBjYWxNZW51W2ldID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDQUxFTkRBUlMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBjYWxNZW51W2ldLmFkZEl0ZW0oQ0FMRU5EQVJTW2pdLm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsTWVudVtpXS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGNhbE1lbnVbaV0uc2VsZWN0KGkpOworICAgICAgICAgICAgY2FsTWVudVtpXS5hZGRJdGVtTGlzdGVuZXIobmV3IENhbE1lbnVMaXN0ZW5lcigpKTsKKworICAgICAgICAgICAgLy8gTGFiZWwgZm9yIHRoZSBjdXJyZW50IG1vbnRoIG5hbWUKKyAgICAgICAgICAgIG1vbnRoTGFiZWxbaV0gPSBuZXcgQ29sb3JlZExhYmVsKCIiLCBDT0xPUlNbaV0pOworICAgICAgICAgICAgbW9udGhMYWJlbFtpXS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisKKyAgICAgICAgICAgIC8vIEFuZCB0aGUgZGVmYXVsdCBjYWxlbmRhciB0byB1c2UgZm9yIHRoaXMgc2xvdAorICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gQ0FMRU5EQVJTW2ldLmNhbGVuZGFyOworCisgICAgICAgICAgICBhZGQodG9wUGFuZWwsIGNhbE1lbnVbaV0sIGcsIGMsIDUsIDApOworICAgICAgICAgICAgYWRkKHRvcFBhbmVsLCBtb250aExhYmVsW2ldLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBhZGQgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zOgorICAgICAgICBwcmV2WWVhciA9IG5ldyBCdXR0b24oIjw8Iik7CisgICAgICAgIHByZXZZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgLTEpKTsKKworICAgICAgICBwcmV2TW9udGggPSBuZXcgQnV0dG9uKCI8Iik7CisgICAgICAgIHByZXZNb250aC5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLk1PTlRILCAtMSkpOworCisgICAgICAgIGdvdG9Ub2RheSA9IG5ldyBCdXR0b24oIlRvZGF5Iik7CisgICAgICAgIGdvdG9Ub2RheS5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldERhdGUoIG5ldyBEYXRlKCkgKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG5leHRNb250aCA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgbmV4dE1vbnRoLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuTU9OVEgsIDEpKTsKKworICAgICAgICBuZXh0WWVhciA9IG5ldyBCdXR0b24oIj4+Iik7CisgICAgICAgIG5leHRZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgMSkpOworCisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBhZGQodG9wUGFuZWwsIHByZXZZZWFyLCAgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgcHJldk1vbnRoLCBnLCBjLCAxLCAwKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsLCBnb3RvVG9kYXksIGcsIGMsIDEsIDApOworICAgICAgICBhZGQodG9wUGFuZWwsIG5leHRNb250aCwgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgbmV4dFllYXIsICBnLCBjLCAxLCAwKTsKKworICAgICAgICAvLyBOb3cgYWRkIHRoZSBtZW51IGZvciBzZWxlY3RpbmcgdGhlIGRpc3BsYXkgbGFuZ3VhZ2UKKyAgICAgICAgUGFuZWwgZGlzcGxheVBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaW50IGJlc3RNYXRjaCA9IC0xLCB0aGlzTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aGlzTWF0Y2ggPSBEZW1vVXRpbGl0eS5jb21wYXJlTG9jYWxlcyhsb2NhbGVzW2ldLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGhpc01hdGNoID49IGJlc3RNYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSB0aGlzTWF0Y2g7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdE1lID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgZGlzcGxheU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgZGlzcGxheU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jID0gbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldExvY2FsZSggbG9jICk7CisgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0WzBdID0gbW9udGhGb3JtYXRbMV0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKworICAgICAgICAgICAgTGFiZWwgbDEgPSBuZXcgTGFiZWwoIkRpc3BsYXkgTGFuZ3VhZ2U6IiwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbDEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworCisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOworICAgICAgICAgICAgZGlzcGxheVBhbmVsLmFkZChsMSk7CisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuYWRkKGRpc3BsYXlNZW51KTsKKworICAgICAgICB9CisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5FQVNUOworCisgICAgICAgIGFkZCh0b3BQYW5lbCwgZGlzcGxheVBhbmVsLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAwKTsKKworICAgICAgICAvLyBUaGUgdGl0bGUsIGJ1dHRvbnMsIGV0Yy4gZ28gaW4gYSBwYW5lbCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworICAgICAgICAvLyBUaGUgY29weXJpZ2h0IG5vdGljZSBnb2VzIGF0IHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdworICAgICAgICBMYWJlbCBjb3B5cmlnaHQgPSBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCk7CisgICAgICAgIGNvcHlyaWdodC5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0KTsKKworICAgICAgICAvLyBOb3cgY3JlYXRlIHRoZSBiaWcgY2FsZW5kYXIgcGFuZWwgYW5kIHN0aWNrIGl0IGluIHRoZSBtaWRkbGUKKyAgICAgICAgY2FsZW5kYXJQYW5lbCA9IG5ldyBDYWxlbmRhclBhbmVsKCBsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0gKTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBjYWxlbmRhclBhbmVsKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihpLCBjYWxlbmRhcnNbaV0pOworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDb2xvcihpLCBDT0xPUlNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlTW9udGhOYW1lKCkKKyAgICB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtb250aEZvcm1hdFtpXSA9PSBudWxsKSB7ICAgICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLCBEYXRlRm9ybWF0Lk1FRElVTSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYgaW5zdGFuY2VvZiBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQgZjEgPSAoY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSBmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYxLmFwcGx5UGF0dGVybigiTU1NTSwgeXl5eSBHIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjEuc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFtpXSA9IGY7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvL2hleSB7bHd9IC0gdGhlcmUncyBzb21ldGhpbmcgd3JvbmcgaW4gdGhpcyByb3V0aW5lIHRoYXQgY3Vhc2VzIGV4Y2VwdGlvbnMuCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtb250aExhYmVsW2ldLnNldFRleHQoIG1vbnRoRm9ybWF0W2ldLmZvcm1hdCggY2FsZW5kYXJQYW5lbC5maXJzdE9mTW9udGgoKSApKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxNZW51TGlzdGVuZXIgcmVzcG9uZHMgdG8gZXZlbnRzIGluIHRoZSB0d28gcG9wdXAgbWVudXMgdGhhdCBzZWxlY3QKKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtcyB0byBiZSB1c2VkIGluIHRoZSBkaXNwbGF5LiAgSXQgZmlndXJlcyBvdXQgd2hpY2gKKyAgICAgKiBvZiB0aGUgdHdvIG1lbnVzIHRoZSBldmVudCBvY2N1cnJlZCBpbiBhbmQgdXBkYXRlcyB0aGUgY29ycmVzcG9uZGluZworICAgICAqIGVsZW1lbnQgb2YgdGhlIGNhbGVuZGFyc1tdIGFycmF5IHRvIG1hdGNoIHRoZSBuZXcgc2VsZWN0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgQ2FsTWVudUxpc3RlbmVyIGltcGxlbWVudHMgSXRlbUxpc3RlbmVyCisgICAgeworICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsTWVudS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRJdGVtU2VsZWN0YWJsZSgpID09IGNhbE1lbnVbaV0pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB0aGUgbWVudSB0aGF0IHRoZSBldmVudCBoYXBwZW5lZCBpbi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCB3aGljaCBuZXcgY2FsZW5kYXIgdGhleSBzZWxlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgbmV3Q2FsID0gQ0FMRU5EQVJTWyBjYWxNZW51W2ldLmdldFNlbGVjdGVkSW5kZXgoKSBdLmNhbGVuZGFyOworCisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdDYWwgIT0gY2FsZW5kYXJzW2ldKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIG90aGVyIG1lbnVzIGFyZSBzZXQgdG8gdGhlIHNhbWUgbmV3IGNhbGVuZGFyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSdyZSBhYm91dCB0byB1c2UgZm9yIHRoaXMgbWVudSwgc2V0IHRoZW0gdG8gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGVuZGFyIGZyb20gKnRoaXMqIG1lbnUgc28gd2Ugd29uJ3QgaGF2ZSB0d28gdGhlIHNhbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY2FsZW5kYXJzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogIT0gaSAmJiBjYWxlbmRhcnNbal0gPT0gbmV3Q2FsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tqXSA9IGNhbGVuZGFyc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihqLCBjYWxlbmRhcnNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFtqXSA9IG51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBDQUxFTkRBUlMubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcnNbal0gPT0gQ0FMRU5EQVJTW2tdLmNhbGVuZGFyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsTWVudVtqXS5zZWxlY3Qoayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgdXBkYXRlIHRoaXMgbWVudSB0byB1c2UgdGhlIG5ldyBjYWxlbmRhciB0aGUgdXNlciBzZWxlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3Q2FsOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihpLCBuZXdDYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhGb3JtYXRbaV0gPSBudWxsOworCisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkQWN0aW9uIGhhbmRsZXMgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBBZGRBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIEFkZEFjdGlvbihpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZDsKKyAgICAgICAgICAgIHRoaXMuYW1vdW50ID0gYW1vdW50OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuYWRkKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludCBmaWVsZCwgYW1vdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbG9yZWRMYWJlbCBpcyBzaW1pbGFyIHRvIGphdmEuYXd0LkxhYmVsLCB3aXRoIHR3byBkaWZmZXJlbmNlczoKKyAgICAgKgorICAgICAqICAtIFlvdSBjYW4gc2V0IGl0cyB0ZXh0IGNvbG9yCisgICAgICoKKyAgICAgKiAgLSBJdCBkcmF3cyB0ZXh0IHVzaW5nIGRyYXdTdHJpbmcgcmF0aGVyIHRoYW4gdXNpbmcgYSBob3N0LXNwZWNpZmljCisgICAgICogICAgIlBlZXIiIG9iamVjdCBsaWtlIEFXVCBkb2VzLiAgT24gMS4yLCB1c2luZyBkcmF3U3RyaW5nIGdpdmVzCisgICAgICogICAgdXMgQmlkaSByZW9yZGVyaW5nIGZvciBmcmVlLgorICAgICAqLworICAgIHN0YXRpYyBwcml2YXRlIGNsYXNzIENvbG9yZWRMYWJlbCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgICAgIHB1YmxpYyBDb2xvcmVkTGFiZWwoU3RyaW5nIGxhYmVsKSB7CisgICAgICAgICAgICB0ZXh0ID0gbGFiZWw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQ29sb3JlZExhYmVsKFN0cmluZyBsYWJlbCwgQ29sb3IgYykgeworICAgICAgICAgICAgdGV4dCA9IGxhYmVsOworICAgICAgICAgICAgY29sb3IgPSBjOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbGFiZWwpIHsKKyAgICAgICAgICAgIHRleHQgPSBsYWJlbDsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZvbnQoRm9udCBmKSB7CisgICAgICAgICAgICBmb250ID0gZjsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworCisgICAgICAgICAgICBnLnNldENvbG9yKGNvbG9yKTsKKyAgICAgICAgICAgIGcuc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LCBmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLmhlaWdodC8yICsgZm0uZ2V0SGVpZ2h0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAtIGZtLmdldEFzY2VudCgpICsgZm0uZ2V0TGVhZGluZygpLzIpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIERpbWVuc2lvbiBnZXRQcmVmZXJyZWRTaXplKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldE1pbmltdW1TaXplKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oIGZtLnN0cmluZ1dpZHRoKHRleHQpICsgMipmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm0uZ2V0SGVpZ2h0KCkgKyBmbS5nZXRMZWFkaW5nKCkqMik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdGV4dDsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvci5ibGFjazsKKyAgICAgICAgRm9udCBmb250ID0gRGVtb1V0aWxpdHkubGFiZWxGb250OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBkZWJ1Z2dpbmcgdGhpcyBwcm9ncmFtLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgICAgICB9CisgICAgfQorCisgICAgY2xhc3MgQ2FsZW5kYXJSZWMgeworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJSZWMoU3RyaW5nIG5hbWVTdHIsIENhbGVuZGFyIGNhbCkKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZSA9IG5hbWVTdHI7CisgICAgICAgICAgICBjYWxlbmRhciA9IGNhbDsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyICBjYWxlbmRhcjsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBuYW1lOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgQ2FsZW5kYXJSZWNbXSBDQUxFTkRBUlMgPSB7CisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiR3JlZ29yaWFuIENhbGVuZGFyIiwgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkhlYnJldyBDYWxlbmRhciIsICAgICAgICAgIG5ldyBIZWJyZXdDYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljIENhbGVuZGFyIiwgICAgICAgICBtYWtlSXNsYW1pYyhmYWxzZSkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIklzbGFtaWMgQ2l2aWwgQ2FsZW5kYXIgIiwgIG1ha2VJc2xhbWljKHRydWUpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJCdWRkaGlzdCBDYWxlbmRhciIsICAgICAgICBuZXcgQnVkZGhpc3RDYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJKYXBhbmVzZSBDYWxlbmRhciIsICAgICAgICBuZXcgSmFwYW5lc2VDYWxlbmRhcigpKSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgQ2FsZW5kYXIgbWFrZUlzbGFtaWMoYm9vbGVhbiBjaXZpbCkgeworICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0Q2l2aWwoY2l2aWwpOworICAgICAgICByZXR1cm4gY2FsOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBDb2xvcltdIENPTE9SUyA9IHsgQ29sb3IuYmx1ZSwgQ29sb3IuYmxhY2sgfTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyUGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhclBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWFjMTVjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhclBhbmVsLmphdmEKQEAgLTAsMCArMSwzNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5DYW52YXM7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZvbnRNZXRyaWNzOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCitjbGFzcyBDYWxlbmRhclBhbmVsIGV4dGVuZHMgQ2FudmFzIHsKKworICAgIHB1YmxpYyBDYWxlbmRhclBhbmVsKCBMb2NhbGUgbG9jYWxlICkgeworICAgICAgICBzZXRMb2NhbGUobG9jYWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAoZkRpc3BsYXlMb2NhbGUgPT0gbnVsbCB8fCAhZkRpc3BsYXlMb2NhbGUuZXF1YWxzKGxvY2FsZSkpIHsKKyAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgZGlydHkgPSB0cnVlOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZDYWxlbmRhci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChmQ2FsZW5kYXJbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmU3ltYm9sc1tpXSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhmQ2FsZW5kYXJbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgbGVmdFRvUmlnaHQgPSAhKGxhbmcuZXF1YWxzKCJpdyIpIHx8IGxhbmcuZXF1YWxzKCJhciIpKTsKKworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0ZShEYXRlIGRhdGUpIHsKKyAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGRhdGU7CisgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgcmVwYWludCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBkZWx0YSkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLmFkZChmaWVsZCwgZGVsdGEpOworICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGZDYWxlbmRhclswXS5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlydHkgPSB0cnVlOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29sb3IoaW50IGluZGV4LCBDb2xvciBjKSB7CisgICAgICAgIGZDb2xvcltpbmRleF0gPSBjOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXIoaW50IGluZGV4LCBDYWxlbmRhciBjKSB7CisgICAgICAgIERhdGUgZGF0ZSA9IChmQ2FsZW5kYXJbaW5kZXhdID09IG51bGwpID8gbmV3IERhdGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZDYWxlbmRhcltpbmRleF0uZ2V0VGltZSgpOworCisgICAgICAgIGZDYWxlbmRhcltpbmRleF0gPSBjOworICAgICAgICBmQ2FsZW5kYXJbaW5kZXhdLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgZlN5bWJvbHNbaW5kZXhdID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGMsIGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgZGlydHkgPSB0cnVlOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIENhbGVuZGFyIGdldENhbGVuZGFyKGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gZkNhbGVuZGFyW2luZGV4XTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGdldERpc3BsYXlMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBmRGlzcGxheUxvY2FsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0ZSBmaXJzdE9mTW9udGgoKSB7CisgICAgICAgIHJldHVybiBmU3RhcnRPZk1vbnRoOworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBzdGFydE9mTW9udGgoRGF0ZSBkYXRlSW5Nb250aCkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXRUaW1lKGRhdGVJbk1vbnRoKTsKKworICAgICAgICAgICAgaW50IGVyYSA9IGZDYWxlbmRhclswXS5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gZkNhbGVuZGFyWzBdLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBtb250aCA9IGZDYWxlbmRhclswXS5nZXQoQ2FsZW5kYXIuTU9OVEgpOworCisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uY2xlYXIoKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuRVJBLCBlcmEpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisKKyAgICAgICAgICAgIHJldHVybiBmQ2FsZW5kYXJbMF0uZ2V0VGltZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNhbGN1bGF0ZSgpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBBcyBhIHdvcmthcm91bmQgZm9yIEpESyAxLjEuMyBhbmQgYmVsb3csIHdoZXJlIENhbGVuZGFycyBhbmQgdGltZQorICAgICAgICAvLyB6b25lcyBhcmUgYSBiaXQgZ29vZnksIGFsd2F5cyBzZXQgbXkgY2FsZW5kYXIncyB0aW1lIHpvbmUgdG8gVVRDLgorICAgICAgICAvLyBZb3Ugd291bGQgdGhpbmsgSSB3b3VsZCB3YW50IHRvIGRvIHRoaXMgaW4gdGhlICJzZXQiIGZ1bmN0aW9uIGFib3ZlLAorICAgICAgICAvLyBidXQgaWYgSSBkbyB0aGF0LCB0aGUgcHJvZ3JhbSBoYW5ncyB3aGVuIHRoaXMgY2xhc3MgaXMgbG9hZGVkLAorICAgICAgICAvLyBwZXJoYXBzIGR1ZSB0byBzb21lIHNvcnQgb2Ygc3RhdGljIGluaXRpYWxpemF0aW9uIG9yZGVyaW5nIHByb2JsZW0uCisgICAgICAgIC8vIFNvIEkgZG8gaXQgaGVyZSBpbnN0ZWFkLgorICAgICAgICAvLworICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisKKyAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXJbMF0uY2xvbmUoKTsgLy8gVGVtcG9yYXJ5IGNvcHkKKworICAgICAgICBmU3RhcnRPZk1vbnRoID0gc3RhcnRPZk1vbnRoKGZTdGFydE9mTW9udGgpOworCisgICAgICAgIC8vIFN0YXNoIGF3YXkgYSBmZXcgdXNlZnVsIGNvbnN0YW50cyBmb3IgdGhpcyBjYWxlbmRhciBhbmQgZGlzcGxheQorICAgICAgICBtaW5EYXkgPSBjLmdldE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICBkYXlzSW5XZWVrID0gYy5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKSAtIG1pbkRheSArIDE7CisKKyAgICAgICAgZmlyc3REYXlPZldlZWsgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShmRGlzcGxheUxvY2FsZSkuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKworICAgICAgICAvLyBTdGFzaCBhd2F5IGEgRGF0ZSBmb3IgdGhlIHN0YXJ0IG9mIHRoaXMgbW9udGgKKworICAgICAgICAvLyBGaW5kIHRoZSBkYXkgb2Ygd2VlayBvZiB0aGUgZmlyc3QgZGF5IGluIHRoaXMgbW9udGgKKyAgICAgICAgYy5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICBmaXJzdERheUluTW9udGggPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBmaXJzdFdlZWsgPSBjLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKworICAgICAgICAvLyBOb3cgZmluZCB0aGUgIyBvZiBkYXlzIGluIHRoZSBtb250aAorICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgZmFsc2UpOworICAgICAgICBkYXlzSW5Nb250aCA9IGMuZ2V0KENhbGVuZGFyLkRBVEUpOworCisgICAgICAgIC8vIEZpbmFsbHksIGZpbmQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIGkuZS4gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IG9uZQorICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgdHJ1ZSk7CisgICAgICAgIGMuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgYy5nZXRUaW1lKCk7ICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgYy5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMSk7CisgICAgICAgIERhdGUgZW5kT2ZNb250aCA9IGMuZ2V0VGltZSgpOworICAgICAgICBpZihlbmRPZk1vbnRoPT1udWxsKXsKKyAgICAgICAgIC8vZG8gbm90aGluZworICAgICAgICB9CisgICAgICAgIGVuZE9mTW9udGggPSBudWxsOworICAgICAgICBpbnQgbGFzdFdlZWsgPSBjLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiB0aGlzIG1vbnRoLgorICAgICAgICBudW1XZWVrcyA9IGxhc3RXZWVrIC0gZmlyc3RXZWVrICsgMTsKKworICAgICAgICBkaXJ0eSA9IGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgWElOU0VUID0gNDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFlJTlNFVCA9IDI7CisKKyAgICAvKgorICAgICAqIENvbnZlcnQgZnJvbSB0aGUgZGF5IG51bWJlciB3aXRoaW4gYSBtb250aCAoMS1iYXNlZCkKKyAgICAgKiB0byB0aGUgY2VsbCBjb29yZGluYXRlcyBvbiB0aGUgY2FsZW5kYXIgKDAtYmFzZWQpCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRhdGVUb0NlbGwoaW50IGRhdGUsIFBvaW50IHBvcykKKyAgICB7CisgICAgICAgIGludCBjZWxsID0gKGRhdGUgKyBmaXJzdERheUluTW9udGggLSBmaXJzdERheU9mV2VlayAtIG1pbkRheSk7CisgICAgICAgIGlmIChmaXJzdERheUluTW9udGggPCBmaXJzdERheU9mV2VlaykgeworICAgICAgICAgICAgY2VsbCArPSBkYXlzSW5XZWVrOworICAgICAgICB9CisKKyAgICAgICAgcG9zLnggPSBjZWxsICUgZGF5c0luV2VlazsKKyAgICAgICAgcG9zLnkgPSBjZWxsIC8gZGF5c0luV2VlazsKKyAgICB9CisgICAgLy9wcml2YXRlIFBvaW50IGRhdGVUb0NlbGwoaW50IGRhdGUpIHsKKyAgICAvLyAgICBQb2ludCBwID0gbmV3IFBvaW50KDAsMCk7CisgICAgLy8gICAgZGF0ZVRvQ2VsbChkYXRlLCBwKTsKKyAgICAvLyAgICByZXR1cm4gcDsKKyAgICAvL30KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICBpZiAoZGlydHkpIHsKKyAgICAgICAgICAgIGNhbGN1bGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgUG9pbnQgY2VsbFBvcyA9IG5ldyBQb2ludCgwLDApOyAgICAgLy8gVGVtcG9yYXJ5IHZhcmlhYmxlCisgICAgICAgIERpbWVuc2lvbiBkID0gdGhpcy5nZXRTaXplKCk7CisKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5saWdodEdyYXkpOworICAgICAgICBnLmZpbGxSZWN0KDAsMCxkLndpZHRoLGQuaGVpZ2h0KTsKKworICAgICAgICAvLyBEcmF3IHRoZSBkYXkgbmFtZXMgYXQgdGhlIHRvcAorICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZy5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcygpOworICAgICAgICBpbnQgbGFiZWxIZWlnaHQgPSBmbS5nZXRIZWlnaHQoKSArIFlJTlNFVCAqIDI7CisKKyAgICAgICAgaW50IHYgPSBmbS5nZXRBc2NlbnQoKSArIFlJTlNFVDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgIGludCBkYXlOdW0gPSAoaSArIG1pbkRheSArIGZpcnN0RGF5T2ZXZWVrIC0gMikgJSBkYXlzSW5XZWVrICsgMTsKKyAgICAgICAgICAgIFN0cmluZyBkYXlOYW1lID0gZlN5bWJvbHNbMF0uZ2V0V2Vla2RheXMoKVtkYXlOdW1dOworCisKKyAgICAgICAgICAgIGRvdWJsZSBoOworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGkgKyAwLjUpIC8gZGF5c0luV2VlazsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGRheXNJbldlZWsgLSBpIC0gMC41KSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoIC09IGZtLnN0cmluZ1dpZHRoKGRheU5hbWUpIC8gMjsKKworICAgICAgICAgICAgZy5kcmF3U3RyaW5nKGRheU5hbWUsIChpbnQpaCwgdik7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgY2VsbEhlaWdodCA9IChkLmhlaWdodCAtIGxhYmVsSGVpZ2h0IC0gMSkgLyBudW1XZWVrczsKKyAgICAgICAgZG91YmxlIGNlbGxXaWR0aCA9IChkb3VibGUpKGQud2lkdGggLSAxKSAvIGRheXNJbldlZWs7CisKKyAgICAgICAgLy8gRHJhdyBhIHdoaXRlIGJhY2tncm91bmQgaW4gdGhlIHBhcnQgb2YgdGhlIGNhbGVuZGFyCisgICAgICAgIC8vIHRoYXQgZGlzcGxheXMgdGhpcyBtb250aC4KKyAgICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCBob3cgbXVjaCBvZiB0aGUgZmlyc3Qgd2VlayBzaG91bGQgYmUgc2hhZGVkLgorICAgICAgICB7CisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLndoaXRlKTsKKyAgICAgICAgICAgIGRhdGVUb0NlbGwoMSwgY2VsbFBvcyk7CisgICAgICAgICAgICBpbnQgd2lkdGggPSAoaW50KShjZWxsUG9zLngqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHVuc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgoaW50KSh3aWR0aCksIGxhYmVsSGVpZ2h0ICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGQud2lkdGggLSB3aWR0aCwgKGludCljZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoIC0gd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgaW50ZXJtZWRpYXRlIHdlZWtzIGdldCBzaGFkZWQgY29tcGxldGVseQorICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZC53aWR0aCwgKGludCkoY2VsbEhlaWdodCAqIChudW1XZWVrcyAtIDIpKSk7CisKKyAgICAgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBsYXN0IHdlZWsuCisgICAgICAgICAgICBkYXRlVG9DZWxsKGRheXNJbk1vbnRoLCBjZWxsUG9zKTsKKyAgICAgICAgICAgIHdpZHRoID0gKGludCkoKGNlbGxQb3MueCsxKSpjZWxsV2lkdGgpOyAgLy8gV2lkdGggb2Ygc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoZC53aWR0aCAtIHdpZHRoLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICAvLyBEcmF3IHRoZSBYL1kgZ3JpZCBsaW5lcworICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtV2Vla3M7IGkrKykgeworICAgICAgICAgICAgaW50IHkgPSAoaW50KShsYWJlbEhlaWdodCArIGkgKiBjZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoMCwgeSwgZC53aWR0aCAtIDEsIHkpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGRheXNJbldlZWs7IGkrKykgeworICAgICAgICAgICAgaW50IHggPSAoaW50KShpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoeCwgbGFiZWxIZWlnaHQsIHgsIGQuaGVpZ2h0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZGF5cyBpbiB0aGUgbW9udGgsIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAgICAgLy8gdGhleSBnbyBpbiB0aGUgZ3JpZCwgYW5kIGRyYXcgdGhlIGRheSAjIGZvciBlYWNoIG9uZQorCisgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGRhdGUgb2YgdGhlIGZpcnN0IGNlbGwgaW4gdGhlIGNhbGVuZGFyIGRpc3BsYXkKKyAgICAgICAgaW50IGNlbGwgPSAoMSArIGZpcnN0RGF5SW5Nb250aCAtIGZpcnN0RGF5T2ZXZWVrIC0gbWluRGF5KTsKKyAgICAgICAgaWYgKGZpcnN0RGF5SW5Nb250aCA8IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICBjZWxsICs9IGRheXNJbldlZWs7CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciBjID0gKENhbGVuZGFyKWZDYWxlbmRhclswXS5jbG9uZSgpOworICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgIGMuYWRkKENhbGVuZGFyLkRBVEUsIC1jZWxsKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGZvciAoaW50IHJvdyA9IDA7IHJvdyA8IG51bVdlZWtzOyByb3crKykgeworICAgICAgICAgICAgZm9yIChpbnQgY29sID0gMDsgY29sIDwgZGF5c0luV2VlazsgY29sKyspIHsKKworICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgICAgICBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKworICAgICAgICAgICAgICAgIGludCBjZWxseDsKKyAgICAgICAgICAgICAgICBpZiAobGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoY29sKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoZGF5c0luV2VlayAtIGNvbCAtIDEpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgY2VsbHkgPSAoaW50KShyb3cgKiBjZWxsSGVpZ2h0ICsgbGFiZWxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZkNhbGVuZGFyW2ldLnNldFRpbWUoYy5nZXRUaW1lKCkpOworCisgICAgICAgICAgICAgICAgICAgIGludCBkYXRlID0gZkNhbGVuZGFyW2ldLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRheU51bSA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgICAgIGludCB4OworCisgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChkYXlOdW0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgWElOU0VUOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCB5ID0gY2VsbHkgKyArIGZtLmdldEFzY2VudCgpICsgWUlOU0VUICsgaSAqIGZtLmdldEhlaWdodCgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChmQ29sb3JbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihmQ29sb3JbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOdW0sIHgsIHkpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlID09IDEgfHwgcm93ID09IDAgJiYgY29sID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtb250aCA9IGZTeW1ib2xzW2ldLmdldE1vbnRocygpWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ2FsZW5kYXJbaV0uZ2V0KENhbGVuZGFyLk1PTlRIKV07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIFhJTlNFVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChtb250aCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcobW9udGgsIHgsIHkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJbXBvcnRhbnQgc3RhdGUgdmFyaWFibGVzCisgICAgcHJpdmF0ZSBDYWxlbmRhcltdICAgICAgICAgIGZDYWxlbmRhciA9IG5ldyBDYWxlbmRhcls0XTsKKyAgICBwcml2YXRlIENvbG9yW10gICAgICAgICAgICAgZkNvbG9yID0gbmV3IENvbG9yWzRdOworCisgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHNbXSBmU3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9sc1s0XTsKKworICAgIHByaXZhdGUgRGF0ZSAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoID0gbmV3IERhdGUoKTsgICAgIC8vIDAwOjAwOjAwIG9uIGZpcnN0IGRheSBvZiBtb250aAorCisgICAgLy8gQ2FjaGVkIGNhbGN1bGF0aW9ucyB0byBtYWtlIGRyYXdpbmcgZmFzdGVyLgorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBtaW5EYXk7ICAgICAgICAgICAvLyBNaW5pbXVtIGxlZ2FsIGRheSAjCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgIGRheXNJbldlZWs7ICAgICAgIC8vICMgb2YgZGF5cyBpbiBhIHdlZWsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgZmlyc3REYXlPZldlZWs7ICAgLy8gRmlyc3QgZGF5IHRvIGRpc3BsYXkgaW4gd2VlaworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBudW1XZWVrczsgICAgICAgICAvLyAjIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBkYXlzSW5Nb250aDsgICAgICAvLyAjIGRheXMgaW4gdGhpcyBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBmaXJzdERheUluTW9udGg7ICAvLyBEYXkgb2Ygd2VlayBvZiBmaXJzdCBkYXkgaW4gbW9udGgKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgbGVmdFRvUmlnaHQ7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRpcnR5ID0gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxYmIxMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK0NhbGVuZGFyIGRlbW8gYXBwbGljYXRpb25zIGluY2x1ZGluZyBkYXRlL3RpbWUgYXJpdGhtZXRpYy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnNldGRldC9EZXRlY3RpbmdWaWV3ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFyc2V0ZGV0L0RldGVjdGluZ1ZpZXdlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2NTYxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnNldGRldC9EZXRlY3RpbmdWaWV3ZXIuamF2YQpAQCAtMCwwICsxLDM3MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNoYXJzZXRkZXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEubmV0LlVSTDsKKworaW1wb3J0IGphdmF4LnN3aW5nLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVURjMyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldERldGVjdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldE1hdGNoOworCisvKioKKyAqIFRoaXMgc2ltcGxlIGFwcGxpY2F0aW9uIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBDaGFyc2V0RGV0ZWN0b3IgQVBJLiBJdAorICogb3BlbnMgYSBmaWxlIG9yIHdlYiBwYWdlLCBkZXRlY3RzIHRoZSBlbmNvZGluZywgYW5kIHRoZW4gZGlzcGxheXMgaXQgdXNpbmcgdGhhdAorICogZW5jb2RpbmcuCisgKi8KK3B1YmxpYyBjbGFzcyBEZXRlY3RpbmdWaWV3ZXIgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIAorICAgIHByaXZhdGUgSlRleHRQYW5lIHRleHQ7CisgICAgcHJpdmF0ZSBKRmlsZUNob29zZXIgZmlsZUNob29zZXI7CisgICAgCisgICAgLyoqCisgICAgICogQHRocm93cyBqYXZhLmF3dC5IZWFkbGVzc0V4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBEZXRlY3RpbmdWaWV3ZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgCisgICAgICAgIGZpbGVDaG9vc2VyID0gbmV3IEpGaWxlQ2hvb3NlcigpOworICAgICAgICAKKyAgICAgICAgc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKEpGcmFtZS5FWElUX09OX0NMT1NFKTsKKyAgICAgICAgc2V0U2l6ZSg4MDAsIDgwMCk7CisKKyAgICAgICAgc2V0Sk1lbnVCYXIobWFrZU1lbnVzKCkpOworICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0UGFuZSgpOworICAgICAgICB0ZXh0LnNldENvbnRlbnRUeXBlKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIHRleHQuc2V0VGV4dCgiIik7CisgICAgICAgIHRleHQuc2V0U2l6ZSg4MDAsIDgwMCk7CisgICAgICAgIAorICAgICAgICBGb250IGZvbnQgPSBuZXcgRm9udCgiQXJpYWwgVW5pY29kZSBNUyIsIEZvbnQuUExBSU4sIDI0KTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICAKKyAgICAgICAgSlNjcm9sbFBhbmUgc2Nyb2xsUGFuZSA9IG5ldyBKU2Nyb2xsUGFuZSh0ZXh0KTsKKyAgICAgICAgCisgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKHNjcm9sbFBhbmUpOworICAgICAgICBzZXRWaXNpYmxlKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkKKyAgICB7CisgICAgICAgIFN0cmluZyBjbWQgPSBldmVudC5nZXRBY3Rpb25Db21tYW5kKCk7CisgICAgICAgIAorICAgICAgICBpZiAoY21kLmVxdWFscygiTmV3Li4uIikpIHsKKyAgICAgICAgICAgZG9OZXcoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjbWQuZXF1YWxzKCJPcGVuIEZpbGUuLi4iKSkgeworICAgICAgICAgICBkb09wZW5GaWxlKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiT3BlbiBVUkwuLi4iKSkgeworICAgICAgICAgICAgZG9PcGVuVVJMKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiUXVpdCIpKSB7CisgICAgICAgICAgIGRvUXVpdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIG5ldyBEZXRlY3RpbmdWaWV3ZXIoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGVycm9yRGlhbG9nKFN0cmluZyB0aXRsZSwgU3RyaW5nIG1zZykKKyAgICB7CisgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKHRoaXMsIG1zZywgdGl0bGUsIEpPcHRpb25QYW5lLkVSUk9SX01FU1NBR0UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gb3BlbkZpbGUoRmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpbGVTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIkVycm9yIE9wZW5pbmcgRmlsZSIsIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oZmlsZVN0cmVhbSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBvcGVuRmlsZShTdHJpbmcgZGlyZWN0b3J5LCBTdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICBvcGVuRmlsZShuZXcgRmlsZShkaXJlY3RvcnksIGZpbGVuYW1lKSk7CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgQnVmZmVyZWRJbnB1dFN0cmVhbSBvcGVuVVJMKFN0cmluZyB1cmwpCisgICAgeworICAgICAgICBJbnB1dFN0cmVhbSBzID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgVVJMIGFVUkwgPSBuZXcgVVJMKHVybCk7CisgICAgICAgICAgICBzID0gYVVSTC5vcGVuU3RyZWFtKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvckRpYWxvZygiRXJyb3IgT3BlbmluZyBVUkwiLCBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKHMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZ05hbWUoQ2hhcnNldE1hdGNoIG1hdGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdldE5hbWUoKSArICIgKCIgKyBtYXRjaC5nZXRMYW5ndWFnZSgpICsgIikiOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0TWF0Y2hNZW51KENoYXJzZXRNYXRjaFtdIG1hdGNoZXMpCisgICAgeworICAgICAgICBKTWVudSBtZW51ID0gZ2V0Sk1lbnVCYXIoKS5nZXRNZW51KDEpOworICAgICAgICBKTWVudUl0ZW0gbWVudUl0ZW07CisgICAgICAgIAorICAgICAgICBtZW51LnJlbW92ZUFsbCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXRjaGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggbWF0Y2ggPSBtYXRjaGVzW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBtZW51SXRlbSA9IG5ldyBKTWVudUl0ZW0oZW5jb2RpbmdOYW1lKG1hdGNoKSArICIgIiArIG1hdGNoLmdldENvbmZpZGVuY2UoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1lbnUuYWRkKG1lbnVJdGVtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBzY3JpcHRUYWcgPSB7KGJ5dGUpICdzJywgKGJ5dGUpICdjJywgKGJ5dGUpICdyJywgKGJ5dGUpICdpJywgKGJ5dGUpICdwJywgKGJ5dGUpICd0J307CisgICAgcHJpdmF0ZSBieXRlW10gc3R5bGVUYWcgID0geyhieXRlKSAncycsIChieXRlKSAndCcsIChieXRlKSAneScsIChieXRlKSAnbCcsIChieXRlKSAnZSd9OworICAgIHByaXZhdGUgc3RhdGljIGludCBCVUZGRVJfU0laRSA9IDEwMDAwMDsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gb3BlblRhZyhieXRlW10gYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlW10gdGFnKQorICAgIHsKKyAgICAgICAgaW50IHRhZ0xlbiA9IHRhZy5sZW5ndGg7CisgICAgICAgIGludCBidWZSZW0gPSBsZW5ndGggLSBvZmZzZXQ7CisgICAgICAgIGludCBiOworICAgICAgICAKKyAgICAgICAgZm9yIChiID0gMDsgYiA8IHRhZ0xlbiAmJiBiIDwgYnVmUmVtOyBiICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXJbYiArIG9mZnNldF0gIT0gdGFnW2JdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYiA9PSB0YWdMZW47CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBjbG9zZWRUYWcoYnl0ZVtdIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgYnl0ZVtdIHRhZykKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJbb2Zmc2V0XSAhPSAoYnl0ZSkgJy8nKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvcGVuVGFnKGJ1ZmZlciwgb2Zmc2V0ICsgMSwgbGVuZ3RoLCB0YWcpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBmaWx0ZXIoSW5wdXRTdHJlYW0gaW4pCisgICAgeworICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbQlVGRkVSX1NJWkVdOworICAgICAgICBpbnQgYnl0ZXNSZW1haW5pbmcgPSBCVUZGRVJfU0laRTsKKyAgICAgICAgaW50IGJ1ZkxlbiA9IDA7CisgICAgICAgIAorICAgICAgICBpbi5tYXJrKEJVRkZFUl9TSVpFKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB3aGlsZSAoYnl0ZXNSZW1haW5pbmcgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVhZCA9IGluLnJlYWQoYnVmZmVyLCBidWZMZW4sIGJ5dGVzUmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYnl0ZXNSZWFkIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJ1ZkxlbiArPSBieXRlc1JlYWQ7CisgICAgICAgICAgICAgICAgYnl0ZXNSZW1haW5pbmcgLT0gYnl0ZXNSZWFkOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETzogZXJyb3IgaGFuZGxpbmc/CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBpblRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIHNraXAgID0gZmFsc2U7CisgICAgICAgIGludCBvdXQgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBidWZMZW47IGkgKz0gMSkgeworICAgICAgICAgICAgYnl0ZSBiID0gYnVmZmVyW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYiA9PSAoYnl0ZSkgJzwnKSB7CisgICAgICAgICAgICAgICAgaW5UYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICBvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPT0gKGJ5dGUpICc+JykgeworICAgICAgICAgICAgICAgIGluVGFnID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCEgKGluVGFnIHx8IHNraXApKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW291dCsrXSA9IGI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBieXRlW10gZmlsdGVyZWQgPSBuZXcgYnl0ZVtvdXRdOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIGZpbHRlcmVkLCAwLCBvdXQpOworICAgICAgICByZXR1cm4gZmlsdGVyZWQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgQ2hhcnNldE1hdGNoW10gZGV0ZWN0KGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChieXRlcyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGV0LmRldGVjdEFsbCgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIENoYXJzZXRNYXRjaFtdIGRldGVjdChCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0U3RyZWFtKQorICAgIHsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCAgICA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZXQuc2V0VGV4dChpbnB1dFN0cmVhbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZXQuZGV0ZWN0QWxsKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPOiBlcnJvciBtZXNzYWdlPworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNob3coSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMsIFN0cmluZyB0aXRsZSkKKyAgICB7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzcjsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICBpbnQgYnl0ZXNSZWFkID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXRjaGVzID09IG51bGwgfHwgbWF0Y2hlcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIk1hdGNoIEVycm9yIiwgIk5vIG1hdGNoZXMhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSBtYXRjaGVzWzBdLmdldE5hbWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGVuY29kaW5nLnN0YXJ0c1dpdGgoIlVURi0zMiIpKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGNoQnl0ZXMgPSAwOworICAgICAgICAgICAgICAgIFVURjMyIHV0ZjMyID0gVVRGMzIuZ2V0SW5zdGFuY2UoZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gaW5wdXRTdHJlYW0ucmVhZChieXRlcywgb2Zmc2V0LCAxMDI0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgID0gYnl0ZXNSZWFkICUgNDsKKyAgICAgICAgICAgICAgICAgICAgY2hCeXRlcyA9IGJ5dGVzUmVhZCAtIG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNiLmFwcGVuZCh1dGYzMi5mcm9tQnl0ZXMoYnl0ZXMsIDAsIGNoQnl0ZXMpKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzW2ldID0gYnl0ZXNbY2hCeXRlcyArIGldOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaW5wdXRTdHJlYW0sIGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGJ5dGVzUmVhZCA9IGlzci5yZWFkKGJ1ZmZlciwgMCwgMTAyNCkpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGJ1ZmZlciwgMCwgYnl0ZXNSZWFkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaXNyLmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUgKyAiIC0gIiArIGVuY29kaW5nTmFtZShtYXRjaGVzWzBdKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldE1hdGNoTWVudShtYXRjaGVzKTsKKyAgICAgICAgICAgIHRleHQuc2V0VGV4dChzYi50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIklPIEVycm9yIiwgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIkludGVybmFsIEVycm9yIiwgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBkb05ldygpCisgICAgeworICAgICAgICAvLyBvcGVuIGEgbmV3IHdpbmRvdy4uLgorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9PcGVuRmlsZSgpCisgICAgeworICAgICAgICBpbnQgcmV0VmFsID0gZmlsZUNob29zZXIuc2hvd09wZW5EaWFsb2codGhpcyk7CisgICAgICAgIAorICAgICAgICBpZiAocmV0VmFsID09IEpGaWxlQ2hvb3Nlci5BUFBST1ZFX09QVElPTikgeworICAgICAgICAgICAgRmlsZSBmaWxlID0gZmlsZUNob29zZXIuZ2V0U2VsZWN0ZWRGaWxlKCk7CisgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0U3RyZWFtID0gb3BlbkZpbGUoZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgQ2hhcnNldE1hdGNoW10gbWF0Y2hlcyA9IGRldGVjdChpbnB1dFN0cmVhbSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2hvdyhpbnB1dFN0cmVhbSwgbWF0Y2hlcywgZmlsZS5nZXROYW1lKCkpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9PcGVuVVJMKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB1cmwgPSAoU3RyaW5nKSBKT3B0aW9uUGFuZS5zaG93SW5wdXREaWFsb2codGhpcywgIlVSTCB0byBvcGVuOiIsICJPcGVuIFVSTCIsIEpPcHRpb25QYW5lLlBMQUlOX01FU1NBR0UsCisgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgIAorICAgICAgICBpZiAodXJsICE9IG51bGwgJiYgdXJsLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IG9wZW5VUkwodXJsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlucHV0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBieXRlW10gZmlsdGVyZWQgPSBmaWx0ZXIoaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMgPSBkZXRlY3QoZmlsdGVyZWQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNob3coaW5wdXRTdHJlYW0sIG1hdGNoZXMsIHVybCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9Cit9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvUXVpdCgpCisgICAgeworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBKTWVudUJhciBtYWtlTWVudXMoKQorICAgIHsKKyAgICAgICAgSk1lbnUgbWVudSA9IG5ldyBKTWVudSgiRmlsZSIpOworICAgICAgICBKTWVudUl0ZW0gbWk7CisgICAgICAgIAorICAgICAgICBtaSA9IG5ldyBKTWVudUl0ZW0oIk9wZW4gRmlsZS4uLiIpOworICAgICAgICBtaS5zZXRBY2NlbGVyYXRvcigoS2V5U3Ryb2tlLmdldEtleVN0cm9rZShLZXlFdmVudC5WS19PLCBBY3Rpb25FdmVudC5DVFJMX01BU0spKSk7CisgICAgICAgIG1pLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBtZW51LmFkZChtaSk7CisgICAgICAgIAorICAgICAgICBtaSA9IG5ldyBKTWVudUl0ZW0oIk9wZW4gVVJMLi4uIik7CisgICAgICAgIG1pLnNldEFjY2VsZXJhdG9yKChLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKEtleUV2ZW50LlZLX1UsIEFjdGlvbkV2ZW50LkNUUkxfTUFTSykpKTsKKyAgICAgICAgbWkuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIG1lbnUuYWRkKG1pKTsKKyAgICAgICAgCisgICAgICAgIG1pID0gbmV3IEpNZW51SXRlbSgiUXVpdCIpOworICAgICAgICBtaS5zZXRBY2NlbGVyYXRvcigoS2V5U3Ryb2tlLmdldEtleVN0cm9rZShLZXlFdmVudC5WS19RLCBBY3Rpb25FdmVudC5DVFJMX01BU0spKSk7CisgICAgICAgIG1pLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBtZW51LmFkZChtaSk7CisgICAgICAgIAorICAgICAgICBKTWVudUJhciBtYmFyID0gbmV3IEpNZW51QmFyKCk7CisgICAgICAgIG1iYXIuYWRkKG1lbnUpOworICAgICAgICAKKyAgICAgICAgbWVudSA9IG5ldyBKTWVudSgiRGV0ZWN0ZWQgRW5jb2RpbmdzIik7CisgICAgICAgIG1iYXIuYWRkKG1lbnUpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1iYXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5jc3MgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjA1MTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5jc3MKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisgKiBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqLworCit0aAl7IGZvbnQtc2l6ZTogNjAlOyB0ZXh0LWFsaWduOiBDZW50ZXI7CisJICB3aWR0aDogMC4zOSU7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisJICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAxcHggfQordGQJeyBmb250LXNpemU6IDYwJTsgdGV4dC1hbGlnbjogQ2VudGVyOworCSAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk5OTlGRjsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5OTk5RkY7IG1hcmdpbjogMDsgcGFkZGluZzogMXB4IH0KK3RhYmxlCXsgYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CisJICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwIH0KKy5kCXsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KKy51CXsgYmFja2dyb3VuZC1jb2xvcjogI0RERERERCB9CisuZHUJeyBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREOyBib3JkZXItdG9wOiAycHggZG91YmxlIGJsdWUgfQorLm4JeyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjayB9CisuZG4JeyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KKy5pCXsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93IH0KKy5kaQl7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KK3AJeyBmb250LXNpemU6IDUwJTsgdGV4dC1hbGlnbjogUmlnaHQgfQorLmxlZnQJeyBmb250LXNpemU6IDc1JTsgdGV4dC1hbGlnbjogTGVmdCB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NGI3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmphdmEKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2hhcnQ7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBjbGFzcyBVbmljb2RlQ2hhcnQgeworICAgIHN0YXRpYyBpbnQgc3Vycm9nYXRlVHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZSgnXHVkODAwJyk7CisgICAgc3RhdGljIGludCBwcml2YXRlVXNlVHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZSgnXHVlMDAwJyk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAvL2ludCByb3dXaWR0aCA9IDI1NjsKKyAgICAJVmVyc2lvbkluZm8gdmkgPSBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgCVN0cmluZyB2ZXJzaW9uID0gdmkuZ2V0TWFqb3IoKSArICIuIiArIHZpLmdldE1pbm9yKCkgKyAiLiIgKyB2aS5nZXRNaWxsaSgpOworICAgICAgICBQcmludFdyaXRlciBwdyA9IEJhZ0Zvcm1hdHRlci5vcGVuVVRGOFdyaXRlcigiQzpcXERBVEFcXEdFTlxcIiwgIlVuaWNvZGVDaGFydC5odG1sIik7CisgICAgICAgIHB3LnByaW50bG4oIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jz4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nVW5pY29kZUNoYXJ0LmpzJz48L3NjcmlwdD4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgaHJlZj0nVW5pY29kZUNoYXJ0LmNzcyc+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0aXRsZT5Vbmljb2RlICIgKyB2ZXJzaW9uICsgIiBDaGFydDwvdGl0bGU+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjwvaGVhZD48Ym9keSBiZ2NvbG9yPScjRkZGRkZGJz4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRhYmxlIGJvcmRlcj0nMScgY2VsbHNwYWNpbmc9JzAnPjxjYXB0aW9uPjxoMT5Vbmljb2RlICIgKyB2ZXJzaW9uICsgIiBDaGFydDwvaDE+PC9jYXB0aW9uPiIpOworCisgICAgICAgIC8qcHcucHJpbnRsbigiPHRyPjx0aD48L3RoPiIpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHJvd1dpZHRoOyArK2opIHsKKyAgICAgICAgICAgIHB3LnByaW50KCI8dGg+IiArIGhleChqLDIpICsgIjwvdGg+Iik7CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgKi8KKyAgICAgICAgLy8gVE9ETzogZml4IFV0aWxpdHkgdG8gdGFrZSBpbnRzCisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi8vU3Vycm9nYXRlIFR5cGU6IEphdmE9IiArIENoYXJhY3Rlci5TVVJST0dBVEUgKyAiLCBJQ1U9IiArIHN1cnJvZ2F0ZVR5cGUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi8vUHJpdmF0ZS1Vc2UgVHlwZTogSmF2YT0iICsgQ2hhcmFjdGVyLlBSSVZBVEVfVVNFICsgIiwgSUNVPSIgKyBwcml2YXRlVXNlVHlwZSk7CisgICAgICAgIAorICAgICAgICAvL2Jvb2xlYW4gZ290T25lID0gdHJ1ZTsKKyAgICAgICAgaW50IGNvbHVtbnMgPSAwOworICAgICAgICBpbnQgbGltaXQgPSAweDExMDAwMC8xNjsKKyAgICAgICAgcHcucHJpbnRsbigiPHNjcmlwdD4iKTsKKyAgICAgICAgcHcucHJpbnQoInRvcCgpOyIpOworICAgICAgICAvLyBhbiBhcnJheSB0aGF0IG1hcHMgU3RyaW5nIChjb250YWluaW5nIGNvbHVtbiBpbmZvcm1hdGlvbikgdG8gVW5pY29kZVNldCAoY29udGFpbmluZyBjb2x1bW4gbnVtYmVycykKKyAgICAgICAgTWFwIGluZm9fbnVtYmVyID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgTGlzdCBudW1iZXJfaW5mbyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbGFzdEluZm8gPSAtMTsKKyAgICAgICAgaW50IHNhbWVDb3VudCA9IDA7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidmFyIGNoYXJSYW5nZXMgPSBbIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAJLy8gZ2V0IHRoZSBzdHJpbmcgb2YgaW5mbywgYW5kIGdldCBpdHMgbnVtYmVyCisgICAgICAgICAgICBzYi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDE2OyArK2opIHsKKyAgICAgICAgICAgIAlpbnQgY3AgPSBpKjE2K2o7CisgICAgICAgICAgICAJY2hhciB0eXBlID0gZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAJc2IuYXBwZW5kKHR5cGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGluZm8gPSBzYi50b1N0cmluZygpOworICAgICAgICAgICAgSW50ZWdlciBzID0gKEludGVnZXIpIGluZm9fbnVtYmVyLmdldChpbmZvKTsKKyAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgIAlpbmZvX251bWJlci5wdXQoaW5mbywgcz1uZXcgSW50ZWdlcihudW1iZXJfaW5mby5zaXplKCkpKTsKKyAgICAgICAgICAgIAludW1iZXJfaW5mby5hZGQoaW5mbyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdyaXRlIGEgbGluZSB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlcworICAgICAgICAgICAgaWYgKGxhc3RJbmZvID09IHMuaW50VmFsdWUoKSkgeworICAgICAgICAgICAgCXNhbWVDb3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIAlpZiAobGFzdEluZm8gIT0gLTEpIFN5c3RlbS5vdXQucHJpbnRsbihzYW1lQ291bnQgKyAiLCIgKyBsYXN0SW5mbyArICIsIik7CisgICAgICAgICAgICAJc2FtZUNvdW50ID0gMTsKKyAgICAgICAgICAgIAlsYXN0SW5mbyA9IHMuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB3cml0ZSBsYXN0IGxpbmUKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNhbWVDb3VudCArICIsIiArIGxhc3RJbmZvKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJdOyIpOworICAgICAgIAorICAgICAgICAvLyBub3cgd3JpdGUgb3V0IGFycmF5CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidmFyIGNoYXJJbmZvID0gWyIpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbnVtYmVyX2luZm8uaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAJU3RyaW5nIGluZm8gPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgaW5mbyArICInLCIpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXTsiKTsKKyAgICAgICAgCisgICAgICAgIC8vIHdyaXRlIG91dCBibG9ja3MKKyAgICAgICAgTWFwIGJsb2NrTWFwID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgaW50IHN0YXJ0VmFsdWUgPSAtMTsKKyAgICAgICAgaW50IGxhc3RFbnVtID0gLTE7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgCWludCBwcm9wID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGksVVByb3BlcnR5LkJMT0NLKTsKKyAgICAgICAgCWlmIChwcm9wID09IGxhc3RFbnVtKSBjb250aW51ZTsKKyAgICAgICAgCWlmIChsYXN0RW51bSAhPSAtMSkgeworICAgICAgICAJCVN0cmluZyBzID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShVUHJvcGVydHkuQkxPQ0ssIGxhc3RFbnVtLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgCQlibG9ja01hcC5wdXQocywgaGV4KHN0YXJ0VmFsdWUsMCkgKyAiLyIgKyBoZXgoaSAtIHN0YXJ0VmFsdWUsMCkpOworICAgICAgICAJCVN5c3RlbS5vdXQucHJpbnRsbihzICsgIjogIiArIGJsb2NrTWFwLmdldChzKSk7CisgICAgICAgIAl9CisgICAgICAgIAlsYXN0RW51bSA9IHByb3A7CisgICAgICAgIAlzdGFydFZhbHVlID0gaTsKKyAgICAgICAgfQorCQlTdHJpbmcgcyA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoVVByb3BlcnR5LkJMT0NLLCBsYXN0RW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisJCWJsb2NrTWFwLnB1dChzLCBoZXgoc3RhcnRWYWx1ZSwwKSArICIvIiArIGhleCgweDExMDAwMCAtIHN0YXJ0VmFsdWUsMCkpOworCQlibG9ja01hcC5yZW1vdmUoIk5vX0Jsb2NrIik7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBibG9ja01hcC5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlTdHJpbmcgYmxvY2tOYW1lID0gKFN0cmluZylpdC5uZXh0KCk7CisJCQlTdHJpbmcgdmFsID0gKFN0cmluZykgYmxvY2tNYXAuZ2V0KGJsb2NrTmFtZSk7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4oIjxvcHRpb24gdmFsdWU9JyIgKyB2YWwgKyAiJz4iICsgYmxvY2tOYW1lICsgIjwvb3B0aW9uPiIpOworCQl9CisgICAgICAgIAorICAgICAgICAvLyAgICAgIDxvcHRpb24gdmFsdWU9IjREQzAiPllpamluZyBIZXhhZ3JhbSBTeW1ib2xzPC9vcHRpb24+CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgcHcucHJpbnRsbigiPC9zY3JpcHQ+PC90cj48L3RhYmxlPjxwPjwvcD4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRhYmxlPjxjYXB0aW9uPktleTwvY2FwdGlvbj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZD5YPC90ZD48dGQgY2xhc3M9J2xlZnQnPkdyYXBoaWMgY2hhcmFjdGVyczwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZD5cdTAwQTA8L3RkPjx0ZCBjbGFzcz0nbGVmdCc+V2hpdGVzcGFjZTwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0naSc+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPk90aGVyIERlZmF1bHQgSWdub3JhYmxlPC90ZD48L3RyPiIpOworICAgICAgICBwdy5wcmludGxuKCI8dHI+PHRkIGNsYXNzPSd1Jz5cdTAwQTA8L3RkPjx0ZCBjbGFzcz0nbGVmdCc+VW5kZWZpbmVkLCBQcml2YXRlIFVzZSwgb3IgU3Vycm9nYXRlczwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0nbic+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPk5vbmNoYXJhY3RlcjwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPC90YWJsZT4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHA+Q29weXJpZ2h0IFx1MDBBOSAyMDAzLCBNYXJrIERhdmlzLiBBbGwgUmlnaHRzIFJlc2VydmVkLjwvYm9keT48L2h0bWw+Iik7CisgICAgICAgIHB3LmNsb3NlKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLy9jb2x1bW5zOiAiICsgY29sdW1ucyk7CisgICAgfQorCisJcHJpdmF0ZSBzdGF0aWMgY2hhciBnZXRUeXBlKGludCBpKSB7CisJCWNoYXIgdHlwZSA9ICd2JzsKKwkJaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKwkJaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoaSwgVVByb3BlcnR5Lk5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5UKSkgeworCQkgICAgdHlwZSA9ICduJzsKKwkJfSBlbHNlIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IHN1cnJvZ2F0ZVR5cGUgfHwgY2F0ID09IHByaXZhdGVVc2VUeXBlKSB7CisJCSAgICB0eXBlID0gJ3UnOworCQl9IGVsc2UgaWYgKFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShpKSkgeworCQkgICAgdHlwZSA9ICd3JzsKKwkJfSBlbHNlIGlmIChVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGksIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UKSkgeworCQkgICAgdHlwZSA9ICdpJzsKKwkJfSBlbHNlIHsKKwkJICAgIHR5cGUgPSAndic7CisJCX0KKwkJcmV0dXJuIHR5cGU7CisJfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgaGV4KGludCBpLCBpbnQgcGFkVG8pIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEludGVnZXIudG9IZXhTdHJpbmcoaSkudG9VcHBlckNhc2UoamF2YS51dGlsLkxvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGgoKSA8IHBhZFRvKSByZXN1bHQgPSAiMCIgKyByZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFydC9Vbmljb2RlQ2hhcnQuanMgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViODUyMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmpzCkBAIC0wLDAgKzEsOTMgQEAKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorLy8gb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCit2YXIgY29sdW1uQml0cyA9IDg7CS8vIDgKKwordmFyIGNvbHVtbkNvdW50ID0gTWF0aC5wb3coMixjb2x1bW5CaXRzKTsKK3ZhciBjb2x1bW5NYXNrID0gY29sdW1uQ291bnQtMTsKK3ZhciBjb2x1bW5TaGlmdCA9IE1hdGguZmxvb3IoY29sdW1uQml0cy80KTsKK3ZhciBjb2x1bW5HYXAgPSByZXBlYXQoJ18nLCBjb2x1bW5TaGlmdCk7Cit2YXIgY29sdW1uUGFkID0gNC1jb2x1bW5TaGlmdDsKKwordmFyIGdvdExhc3QgPSB0cnVlOwordmFyIGN1cnJlbnQgPSAwOwordmFyIGhhdmVGaXJzdCA9IGZhbHNlOworCitmdW5jdGlvbiB0b3AoY291bnQpIHsKKyAgZG9jdW1lbnQud3JpdGVsbigiPHRoPjwvdGg+Iik7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1uQ291bnQ7ICsraSkgeworICAgIGRvY3VtZW50LndyaXRlbG4oIjx0aD4iLCBoZXgoaSwyKSwgIjwvdGg+Iik7CisgIH0KK30KKworZnVuY3Rpb24gd3JpdGVDZWxsKGNlbGxjbGFzcywgdmFsdWUpIHsKKyBpZiAoIWdvdExhc3QpIGNlbGxjbGFzcyA9ICdkJyArIGNlbGxjbGFzczsKKyBpZiAodmFsdWUpIHsKKyAgIHZhbHVlID0gY3VycmVudCA8PSAweEZGRkYgCisgICAJCT8gU3RyaW5nLmZyb21DaGFyQ29kZShjdXJyZW50KSAKKyAgIAkJOiBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgwMCArIChjdXJyZW50ID4+IDEwKSwgMHhEQzAwICsgKGN1cnJlbnQgJiAweDNGRikpOworIH0gZWxzZSB7CisgICB2YWx1ZSA9ICdcdTAwQTAnCisgfQorIGlmIChjZWxsY2xhc3MhPSIiKSBjZWxsY2xhc3MgPSAiIGNsYXNzPSciICsgY2VsbGNsYXNzICsgIiciOworIGRvY3VtZW50LndyaXRlbG4oIjx0ZCIsIGNlbGxjbGFzcywgIj4iLCB2YWx1ZSwgIjwvdGQ+Iik7CisgKytjdXJyZW50OworfQorCitmdW5jdGlvbiB3cml0ZUNlbGxzKGNvdW50LGNlbGxjbGFzcyx2YWx1ZSkgeworICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICBpZiAoKGN1cnJlbnQgJiBjb2x1bW5NYXNrKSA9PSAwKSB7CisgICAgICBpZiAoY2VsbGNsYXNzIT0ndScgfHwgY291bnQgLSBpIDwgY29sdW1uQ291bnQpIHsKKyAgIAlnb3RMYXN0ID0gdHJ1ZQorICAgICAgfSBlbHNlIHsKKyAgIAlnb3RMYXN0ID0gZmFsc2U7CisgICAgICAgIHZhciByZW0gPSAoY291bnQgLSBpKSAmIH5jb2x1bW5NYXNrOworICAgCWN1cnJlbnQgKz0gcmVtOworICAgICAgICBpICs9IHJlbTsKKyAgICAgICAgaWYgKGkgPT0gY291bnQpIGJyZWFrOworICAgICAgfQorICAgICAgbmV3Um93KCk7CisgICAgfQorICAgIHdyaXRlQ2VsbChjZWxsY2xhc3MsdmFsdWUpOworICB9Cit9CisKK2Z1bmN0aW9uIG5ld1JvdygpIHsKKyAgIGlmIChoYXZlRmlyc3QpIGRvY3VtZW50LndyaXRlKCI8L3RyPiIpOworICAgZWxzZSBoYXZlRmlyc3QgPSB0cnVlOworICAgdmFyIGhjbGFzcyA9IChnb3RMYXN0KSA/ICIiIDogIiBjbGFzcz0nZCciOworICAgZG9jdW1lbnQud3JpdGVsbigiPHRyPjx0aCIsIGhjbGFzcywgIj4iLCBoZXgoY3VycmVudD4+KGNvbHVtblNoaWZ0KjQpLGNvbHVtblBhZCksIGNvbHVtbkdhcCwgIjwvdGg+Iik7Cit9CisKKy8vIFV0aWxpdGllcworCitmdW5jdGlvbiBoZXgodmFsdWUsIHBhZCkgeworICB2YXIgcmVzdWx0ID0gdmFsdWUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7CisgIHdoaWxlIChyZXN1bHQubGVuZ3RoIDwgcGFkKSByZXN1bHQgPSAnMCcgKyByZXN1bHQ7CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIHJlcGVhdChzdHIsIGNvdW50KSB7CisgdmFyIHJlc3VsdCA9ICIiOworIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgcmVzdWx0ICs9IHN0cjsKKyByZXR1cm4gcmVzdWx0OworfQorCisvLyB1c2VkIGluIHRoZSBib2R5LiBzaW5nbGUgbGV0dGVycyB0byBzYXZlIGJ5dGVzLgorZnVuY3Rpb24gdShjb3VudCkgeyAvLyB1bmRlZmluZWQsIHByaXZhdGUgdXNlLCBvciBzdXJyb2dhdGVzCisJd3JpdGVDZWxscyhjb3VudCwndScsZmFsc2UpOworfQorZnVuY3Rpb24gbihjb3VudCkgeyAvLyBub25jaGFyYWN0ZXIKKwl3cml0ZUNlbGxzKGNvdW50LCduJyxmYWxzZSk7Cit9CitmdW5jdGlvbiBpKGNvdW50KSB7IC8vIGlnbm9yYWJsZQorCXdyaXRlQ2VsbHMoY291bnQsJ2knLGZhbHNlKTsKK30KK2Z1bmN0aW9uIHcoY291bnQpIHsgLy8gd2hpdGVzcGFjZQorCXdyaXRlQ2VsbHMoY291bnQsJycsZmFsc2UpOworfQorZnVuY3Rpb24gdihjb3VudCkgeyAvLyBub3JtYWwgdmlzaWJsZSBncmFwaGljCisJd3JpdGVDZWxscyhjb3VudCwnJyx0cnVlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvSG9saWRheUJvcmRlclBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmYwNzU1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhCkBAIC0wLDAgKzEsNTQ0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5ob2xpZGF5OworCitpbXBvcnQgamF2YS5hd3QuKjsKKworLyoqCisgKiBWYXJpb3VzIGdyYXBoaWNhbCBib3JkZXJzLiBUaGUgYm9yZGVyIGl0c2VsZiBpcyBhIFBhbmVsIHNvIHRoYXQgaXQgY2FuCisgKiBjb250YWluIG90aGVyIENvbXBvbmVudHMgKGkuZS4gaXQgYm9yZGVycyBzb21ldGhpbmcpLiBZb3UgdXNlIHRoZQorICogSG9saWRheUJvcmRlclBhbmVsIGxpa2UgYW55IG90aGVyIFBhbmVsOiB5b3Ugc2V0IHRoZSBsYXlvdXQgdGhhdCB5b3UgcHJlZmVyIGFuZAorICogYWRkIENvbXBvbmVudHMgdG8gaXQuIEJld2FyZSB0aGF0IGEgbnVsbCBsYXlvdXQgZG9lcyBub3Qgb2JleSB0aGUgaW5zZXRzCisgKiBvZiB0aGUgcGFuZWwgc28gaWYgeW91IHVzZSBudWxsIGxheW91dHMsIGFkanVzdCB5b3VyIG1lYXN1cmVtZW50cyB0bworICogaGFuZGxlIHRoZSBib3JkZXIgYnkgY2FsbGluZyBpbnNldHMoKS4KKyAqCisgKiBAYXV0aG9yICBBbmR5IENsYXJrLCBUYWxpZ2VudCBJbmMuCisgKiBAdmVyc2lvbiAxLjAKKyAqLworcHVibGljIGNsYXNzIEhvbGlkYXlCb3JkZXJQYW5lbCBleHRlbmRzIFBhbmVsIHsKKyAgICAvLyBDb25zdGFudHMKKworICAgIC8qKiBTb2xpZCBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU09MSUQgPSAwOworICAgIC8qKiBBIHJhaXNlZCBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUkFJU0VEID0gMTsKKyAgICAvKiogQSBsb3dlcmVkIGJvcmRlci4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBMT1dFUkVEID0gMjsKKyAgICAvKiogQW4gZXRjaGVkIGluIGJvcmRlci4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBJTiA9IDM7CisgICAgLyoqIEFuIGV0Y2hlZCBvdXQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE9VVCA9IDQ7CisKKyAgICAvKiogTGVmdCBhbGlnbm1lbnQuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEVGVCA9IDA7CisgICAgLyoqIENlbnRlciBhbGlnbm1lbnQuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0VOVEVSID0gMTsKKyAgICAvKiogUmlnaHQgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFJJR0hUID0gMjsKKworICAgIC8qKiBEZWZhdWx0IHN0eWxlIChJTikuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9TVFlMRSA9IElOOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyAoMTApLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfVEhJQ0tORVNTID0gMTA7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBzb2xpZCBib3JkZXJzICg0KS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX1NPTElEX1RISUNLTkVTUyA9IDQ7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciByYWlzZWQgYm9yZGVycyAoMikuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9SQUlTRURfVEhJQ0tORVNTID0gMjsKKyAgICAvKiogRGVmYXVsdCB0aGlja25lc3MgZm9yIGxvd2VyZWQgYm9yZGVycyAoMikuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9MT1dFUkVEX1RISUNLTkVTUyA9IDI7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBldGNoZWQtaW4gYm9yZGVycyAoMTApLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfSU5fVEhJQ0tORVNTID0gMTA7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBldGNoZWQtb3V0IGJvcmRlcnMgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX09VVF9USElDS05FU1MgPSAxMDsKKyAgICAvKiogRGVmYXVsdCBnYXAgYmV0d2VlbiBib3JkZXIgYW5kIGNvbnRhaW5lZCBjb21wb25lbnQgKDUpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfR0FQID0gNTsKKyAgICAvKiogRGVmYXVsdCBjb2xvciAoYmxhY2spLiBBcHBsaWVzIHRvIFNPTElEIGFuZCBldGNoZWQgYm9yZGVycy4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIENvbG9yIERFRkFVTFRfQ09MT1IgPSBDb2xvci5ibGFjazsKKworICAgIC8qKiBEZWZhdWx0IGZvbnQgKFRpbWVzUm9tYW4sUExBSU4sMTQpLiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBGb250IERFRkFVTFRfRk9OVCA9IG5ldyBGb250KCJUaW1lc1JvbWFuIiwgRm9udC5QTEFJTiwgMTQpOworICAgIC8qKiBEZWZhdWx0IGFsaWdubWVudCAoTEVGVCkuIE9ubHkgYXBwbGllcyB0byBldGNoZWQgYm9yZGVycy4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0FMSUdOTUVOVCA9IExFRlQ7CisKKyAgICAvLyBEYXRhCisgICAgcHJpdmF0ZSBpbnQgc3R5bGU7CisgICAgcHJpdmF0ZSBpbnQgdGhpY2tuZXNzOworICAgIHByaXZhdGUgaW50IGdhcDsKKyAgICBwcml2YXRlIENvbG9yIGNvbG9yOworCisgICAgcHJpdmF0ZSBGb250IGZvbnQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKyAgICBwcml2YXRlIGludCBhbGlnbm1lbnQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgZGVmYXVsdCBib3JkZXIuCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCgpIHsKKworICAgICAgICAvLyBpbml0aWFsaXplIGRhdGEKKyAgICAgICAgc3R5bGUgICAgICAgPSBERUZBVUxUX1NUWUxFOworICAgICAgICB0aGlja25lc3MgICA9IERFRkFVTFRfVEhJQ0tORVNTOworICAgICAgICBnYXAgICAgICAgICA9IERFRkFVTFRfR0FQOworICAgICAgICBjb2xvciAgICAgICA9IERFRkFVTFRfQ09MT1I7CisKKyAgICAgICAgdGV4dCAgICAgICAgPSBudWxsOworICAgICAgICBmb250ICAgICAgICA9IERFRkFVTFRfRk9OVDsKKyAgICAgICAgYWxpZ25tZW50ICAgPSBERUZBVUxUX0FMSUdOTUVOVDsKKworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYW4gZXRjaGVkIElOIGJvcmRlciB3aXRoIGdpdmVuIHRleHQgY2FwdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICBUZXh0IGNhcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICBzdHlsZSA9IElOOworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgU09MSUQgYm9yZGVyIHdpdGggY29sb3IgYW5kIHRoaWNrbmVzcyBnaXZlbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciAgICAgVGhlIGNvbG9yIGZvciB0aGUgYm9yZGVyLgorICAgICAqIEBwYXJhbSB0aGlja25lc3MgVGhlIHRoaWNrbmVzcyBvZiB0aGUgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoQ29sb3IgY29sb3IsIGludCB0aGlja25lc3MpIHsKKyAgICAgICAgdGhpcygpOworCisgICAgICAgIHN0eWxlID0gU09MSUQ7CisgICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjsKKyAgICAgICAgdGhpcy50aGlja25lc3MgPSB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLiBNYWtlcyBhIGJvcmRlciBvZiB0aGUgZ2l2ZW4gc3R5bGUgd2l0aCB0aGUgZGVmYXVsdAorICAgICAqIHRoaWNrbmVzcyBmb3IgdGhhdCBzdHlsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHlsZSBUaGUgc3R5bGUgZm9yIHRoaXMgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoaW50IHN0eWxlKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICAvLyBzZXQgdGhpY2tuZXNzIGFwcHJvcHJpYXRlIHRvIHRoaXMgc3R5bGUKKyAgICAgICAgaW50IHRoaWNrbmVzczsKKyAgICAgICAgc3dpdGNoIChzdHlsZSkgeworICAgICAgICAgICAgY2FzZSBTT0xJRDogdGhpY2tuZXNzID0gREVGQVVMVF9TT0xJRF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQUlTRUQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfUkFJU0VEX1RISUNLTkVTUzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExPV0VSRUQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfTE9XRVJFRF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBJTjogdGhpY2tuZXNzID0gREVGQVVMVF9JTl9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBPVVQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfT1VUX1RISUNLTkVTUzsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRoaWNrbmVzcyA9IERFRkFVTFRfVEhJQ0tORVNTOworICAgICAgICAgICAgfQorCisgICAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZTsKKyAgICAgICAgdGhpcy50aGlja25lc3MgPSB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLiBNYWtlcyBib3JkZXIgd2l0aCBnaXZlbiBzdHlsZSBhbmQgdGhpY2tuZXNzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0eWxlICAgICBUaGUgc3R5bGUgZm9yIHRoaXMgYm9yZGVyLgorICAgICAqIEBwYXJhbSB0aGlja25lc3MgVGhlIHRoaWNrbmVzcyBmb3IgdGhpcyBib3JkZXIuCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbChpbnQgc3R5bGUsIGludCB0aGlja25lc3MpIHsKKyAgICAgICAgdGhpcygpOworCisgICAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZTsKKyAgICAgICAgdGhpcy50aGlja25lc3MgPSB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluc2V0cyBvZiB0aGlzIHBhbmVsLi4KKyAgICAgKi8KKyAgICBwdWJsaWMgSW5zZXRzIGdldEluc2V0cygpIHsKKyAgICAgICAgaW50IGFkanVzdG1lbnQgPSAwOworCisgICAgICAgIC8vIGFkanVzdCBmb3IgdGV4dCBzdHJpbmcKKyAgICAgICAgaWYgKHN0eWxlID09IElOIHx8IHN0eWxlID09IE9VVCkgeworICAgICAgICAgICAgaWYgKHRleHQgIT0gbnVsbCAmJiB0ZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCBmb250IGFuZCBnZXQgaW5mbworICAgICAgICAgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gZ2V0R3JhcGhpY3MoKS5nZXRGb250TWV0cmljcyhmb250KS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodCA+IHRoaWNrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdG1lbnQgPSBoZWlnaHQgLSB0aGlja25lc3M7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZzoganVzdCBpbiBjYXNlIHRoZXJlIGlzIG5vIGdyYXBoaWNzIGNvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgLy8gICBhdCB0aGUgYmVnaW5uaW5nLgorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gYXBwcm9wcmlhdGUgaW5zZXRzCisgICAgICAgIGludCBkaXN0ID0gdGhpY2tuZXNzICsgZ2FwOworICAgICAgICByZXR1cm4gbmV3IEluc2V0cyhkaXN0ICsgYWRqdXN0bWVudCwgZGlzdCwgZGlzdCwgZGlzdCk7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHN0eWxlIG9mIHRoZSBib3JkZXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHlsZSBUaGUgbmV3IHN0eWxlLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0U3R5bGUoaW50IHN0eWxlKSB7CisKKyAgICAgICAgLy8gc2V0IHRoZSBzdHlsZSBhbmQgcmUtbGF5b3V0IHRoZSBwYW5lbAorICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgIHJlcGFpbnQoKTsKKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc3R5bGUgb2YgdGhlIGJvcmRlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U3R5bGUoKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aGlja25lc3Mgb2YgdGhlIGJvcmRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGlja25lc3MgVGhlIG5ldyB0aGlja25lc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFRoaWNrbmVzcyhpbnQgdGhpY2tuZXNzKSB7CisKKyAgICAgICAgaWYgKHRoaWNrbmVzcyA+IDApIHsKKyAgICAgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICAgICAgZG9MYXlvdXQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBib3JkZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUaGlja25lc3MoKSB7CisKKyAgICAgICAgcmV0dXJuIHRoaWNrbmVzczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZ2FwIGJldHdlZW4gdGhlIGJvcmRlciBhbmQgdGhlIGNvbnRhaW5lZCBDb21wb25lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2FwIFRoZSBuZXcgZ2FwLCBpbiBwaXhlbHMuCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRHYXAoaW50IGdhcCkgeworCisgICAgICAgIGlmIChnYXAgPiAtMSkgeworICAgICAgICAgICAgdGhpcy5nYXAgPSBnYXA7CisgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBnYXAgYmV0d2VlbiB0aGUgYm9yZGVyIGFuZCB0aGUgY29udGFpbmVkIENvbXBvbmVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdhcCgpIHsKKworICAgICAgICByZXR1cm4gZ2FwOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGNvbG9yIGZvciBTT0xJRCBib3JkZXJzIGFuZCB0aGUgY2FwdGlvbiB0ZXh0CisgICAgICogY29sb3IgZm9yIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbG9yIFRoZSBuZXcgY29sb3IuCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRDb2xvcihDb2xvciBjb2xvcikgeworCisgICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjsKKyAgICAgICAgaWYgKHN0eWxlID09IFNPTElEIHx8IHN0eWxlID09IElOIHx8IHN0eWxlID09IE9VVCkKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2xvciBmb3IgU09MSUQgYm9yZGVycyBhbmQgdGhlIGNhcHRpb24KKyAgICAgKiB0ZXh0IGNvbG9yIGZvciBldGNoZWQgYm9yZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0Q29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGNvbG9yOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBmb250LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRUZXh0Rm9udChGb250IGZvbnQpIHsKKworICAgICAgICAvLyBzZXQgZm9udAorICAgICAgICBpZiAoZm9udCAhPSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmZvbnQgPSBmb250OworICAgICAgICAgICAgaWYgKHN0eWxlID09IElOIHx8IHN0eWxlID09IE9VVCkgeworICAgICAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZm9udCBvZiB0aGUgdGV4dC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBGb250IGdldFRleHRGb250KCkgeworCisgICAgICAgIHJldHVybiBmb250OworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0ZXh0LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIG5ldyB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworCisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRleHQuIE9ubHkgYXBwbGllcyB0byBldGNoZWQgYm9yZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisKKyAgICAgICAgcmV0dXJuIHRleHQ7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRleHQgYWxpZ25tZW50LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWxpZ25tZW50IFRoZSBuZXcgYWxpZ25tZW50LgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0QWxpZ25tZW50KGludCBhbGlnbm1lbnQpIHsKKworICAgICAgICB0aGlzLmFsaWdubWVudCA9IGFsaWdubWVudDsKKyAgICAgICAgaWYgKHN0eWxlID09IElOIHx8IHN0eWxlID09IE9VVCkgeworICAgICAgICAgICAgZG9MYXlvdXQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGV4dCBhbGlnbm1lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBbGlnbm1lbnQoKSB7CisKKyAgICAgICAgcmV0dXJuIGFsaWdubWVudDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogUmVwYWludHMgdGhlIGJvcmRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICAvLyBnZXQgY3VycmVudCBkaW1lbnNpb25zCisgICAgICAgIERpbWVuc2lvbiBzaXplID0gZ2V0U2l6ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBzaXplLndpZHRoOworICAgICAgICBpbnQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7CisKKyAgICAgICAgLy8gc2V0IGNvbG9ycworICAgICAgICBDb2xvciBsaWdodCA9IGdldEJhY2tncm91bmQoKS5icmlnaHRlcigpLmJyaWdodGVyKCkuYnJpZ2h0ZXIoKTsKKyAgICAgICAgQ29sb3IgZGFyayA9IGdldEJhY2tncm91bmQoKS5kYXJrZXIoKS5kYXJrZXIoKS5kYXJrZXIoKTsKKworICAgICAgICAvLyBEcmF3IGJvcmRlcgorICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgICAgICAgICBjYXNlIFJBSVNFRDogICAgLy8gM0QgQm9yZGVyIChpbiBvciBvdXQpCisgICAgICAgICAgICBjYXNlIExPV0VSRUQ6CisgICAgICAgICAgICAgICAgQ29sb3IgdG9wbGVmdCA9IG51bGw7CisgICAgICAgICAgICAgICAgQ29sb3IgYm90dG9tcmlnaHQgPSBudWxsOworCisgICAgICAgICAgICAgICAgLy8gc2V0IGNvbG9ycworICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSBSQUlTRUQpIHsKKyAgICAgICAgICAgICAgICAgICAgdG9wbGVmdCA9IGxpZ2h0OworICAgICAgICAgICAgICAgICAgICBib3R0b21yaWdodCA9IGRhcms7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9wbGVmdCA9IGRhcms7CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbXJpZ2h0ID0gbGlnaHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGRyYXcgYm9yZGVyCisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcih0b3BsZWZ0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaWNrbmVzczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoaSwgaSwgd2lkdGggLSBpIC0gMiwgaSk7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoaSwgaSArIDEsIGksIGhlaWdodCAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoYm90dG9tcmlnaHQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGhpY2tuZXNzOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3TGluZShpICsgMSwgaGVpZ2h0IC0gaSAtIDEsIHdpZHRoIC0gaSAtIDEsIGhlaWdodCAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3TGluZSh3aWR0aCAtIGkgLSAxLCBpLCB3aWR0aCAtIGkgLSAxLCBoZWlnaHQgLSBpIC0gMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBJTjogICAgLy8gRXRjaGVkIEJvcmRlciAoaW4gb3Igb3V0KQorICAgICAgICAgICAgY2FzZSBPVVQ6CisgICAgICAgICAgICAgICAgaW50IGFkanVzdDEgPSAwOworICAgICAgICAgICAgICAgIGludCBhZGp1c3QyID0gMDsKKworICAgICAgICAgICAgICAgIC8vIHNldCBmb250IGFuZCBnZXQgaW5mbworICAgICAgICAgICAgICAgIEZvbnQgb2xkZm9udCA9IGcuZ2V0Rm9udCgpOworICAgICAgICAgICAgICAgIGcuc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgICAgICAgICBpbnQgYXNjZW50ID0gZm0uZ2V0QXNjZW50KCk7CisKKyAgICAgICAgICAgICAgICAvLyBzZXQgYWRqdXN0bWVudAorICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSBJTikKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0MSA9IDE7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBhZGp1c3QyID0gMTsKKworICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhZGp1c3RtZW50IGZvciB0ZXh0CisgICAgICAgICAgICAgICAgaW50IGFkanVzdG1lbnQgPSAwOworICAgICAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFzY2VudCA+IHRoaWNrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdG1lbnQgPSAoYXNjZW50IC0gdGhpY2tuZXNzKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRoZSBhZGp1c3RtZW50IGlzIHRoZXJlIHNvIHRoYXQgd2UgYWx3YXlzIGRyYXcgdGhlCisgICAgICAgICAgICAgICAgLy8gbGlnaHQgcmVjdGFuZ2xlIGZpcnN0LiBPdGhlcndpc2UsIHlvdXIgZXllIHBpY2tzIHVwCisgICAgICAgICAgICAgICAgLy8gdGhlIGRpc2NyZXBhbmN5IHdoZXJlIHRoZSBsaWdodCByZWN0LiBwYXNzZXMgb3ZlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBkYXJrZXIgcmVjdC4KKyAgICAgICAgICAgICAgICBpbnQgeCA9IHRoaWNrbmVzcyAvIDI7CisgICAgICAgICAgICAgICAgaW50IHkgPSB0aGlja25lc3MgLyAyICsgYWRqdXN0bWVudDsKKyAgICAgICAgICAgICAgICBpbnQgdyA9IHdpZHRoIC0gdGhpY2tuZXNzIC0gMTsKKyAgICAgICAgICAgICAgICBpbnQgaCA9IGhlaWdodCAtIHRoaWNrbmVzcyAtIDEgLSBhZGp1c3RtZW50OworCisgICAgICAgICAgICAgICAgLy8gZHJhdyByZWN0YW5nbGVzCisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihsaWdodCk7CisgICAgICAgICAgICAgICAgZy5kcmF3UmVjdCh4ICsgYWRqdXN0MSwgeSArIGFkanVzdDEsIHcsIGgpOworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoZGFyayk7CisgICAgICAgICAgICAgICAgZy5kcmF3UmVjdCh4ICsgYWRqdXN0MiwgeSArIGFkanVzdDIsIHcsIGgpOworCisgICAgICAgICAgICAgICAgLy8gZHJhdyB0ZXh0LCBpZiBhcHBsaWNhYmxlCisgICAgICAgICAgICAgICAgaWYgKHRleHQgIT0gbnVsbCAmJiB0ZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgZHJhd2luZyBhcmVhCisgICAgICAgICAgICAgICAgICAgIGludCBmb250aGVpZ2h0ID0gZm0uZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAgIGludCBzdHJ3aWR0aCA9IGZtLnN0cmluZ1dpZHRoKHRleHQpOworCisgICAgICAgICAgICAgICAgICAgIGludCB0ZXh0d2lkdGggPSB3aWR0aCAtIDIgKiAodGhpY2tuZXNzICsgNSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJ3aWR0aCA+IHRleHR3aWR0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cndpZHRoID0gdGV4dHdpZHRoOworCisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBvZmZzZXQgZm9yIGFsaWdubWVudAorICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0OworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFsaWdubWVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDRU5URVI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gKHdpZHRoIC0gc3Ryd2lkdGgpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUklHSFQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gd2lkdGggLSBzdHJ3aWR0aCAtIHRoaWNrbmVzcyAtIDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIExFRlQ6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAvLyBhc3N1bWUgbGVmdCBhbGlnbm1lbnQgaWYgaW52YWxpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHRoaWNrbmVzcyArIDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgZHJhd2luZyBhcmVhIGFuZCBzZXQgY2xpcHBpbmcgcmVnaW9uCisgICAgICAgICAgICAgICAgICAgIGcuY2xlYXJSZWN0KG9mZnNldCAtIDUsIDAsIHN0cndpZHRoICArIDEwLCBmb250aGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgZy5jbGlwUmVjdChvZmZzZXQsIDAsIHN0cndpZHRoLCBmb250aGVpZ2h0KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBkcmF3IHRleHQKKyAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihjb2xvcik7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LCBvZmZzZXQsIGFzY2VudCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdG9yZSBvbGQgY2xpcHBpbmcgYXJlYQorICAgICAgICAgICAgICAgICAgICBnLmNsaXBSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQob2xkZm9udCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU09MSUQ6CisgICAgICAgICAgICBkZWZhdWx0OiAvLyBhc3N1bWUgU09MSUQKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGNvbG9yKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaWNrbmVzczsgaSsrKQorICAgICAgICAgICAgICAgICAgICBnLmRyYXdSZWN0KGksIGksIHdpZHRoIC0gMiAqIGkgLSAxLCBoZWlnaHQgLSAyICogaSAtIDEpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldHRpbmdzIG9mIHRoaXMgSG9saWRheUJvcmRlclBhbmVsIGluc3RhbmNlIGFzIGEgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCJIb2xpZGF5Qm9yZGVyUGFuZWxbIik7CisKKyAgICAgICAgLy8gc3R5bGUKKyAgICAgICAgc3RyLmFwcGVuZCgic3R5bGU9Iik7CisgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgICAgIGNhc2UgU09MSUQ6IHN0ci5hcHBlbmQoIlNPTElEIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQUlTRUQ6IHN0ci5hcHBlbmQoIlJBSVNFRCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTE9XRVJFRDogc3RyLmFwcGVuZCgiTE9XRVJFRCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSU46IHN0ci5hcHBlbmQoIklOIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBPVVQ6IHN0ci5hcHBlbmQoIk9VVCIpOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IHN0ci5hcHBlbmQoInVua25vd24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIHRoaWNrbmVzcworICAgICAgICBzdHIuYXBwZW5kKCJ0aGlja25lc3M9Iik7CisgICAgICAgIHN0ci5hcHBlbmQodGhpY2tuZXNzKTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGdhcAorICAgICAgICBzdHIuYXBwZW5kKCJnYXA9Iik7CisgICAgICAgIHN0ci5hcHBlbmQoZ2FwKTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGNvbG9yCisgICAgICAgIHN0ci5hcHBlbmQoY29sb3IpOworICAgICAgICBzdHIuYXBwZW5kKCIsIik7CisKKyAgICAgICAgLy8gZm9udAorICAgICAgICBzdHIuYXBwZW5kKGZvbnQpOworICAgICAgICBzdHIuYXBwZW5kKCIsIik7CisKKyAgICAgICAgLy8gdGV4dAorICAgICAgICBzdHIuYXBwZW5kKCJ0ZXh0PSIpOworICAgICAgICBzdHIuYXBwZW5kKHRleHQpOworICAgICAgICBzdHIuYXBwZW5kKCIsIik7CisKKyAgICAgICAgLy8gYWxpZ25tZW50CisgICAgICAgIHN0ci5hcHBlbmQoImFsaWdubWVudD0iKTsKKyAgICAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKKyAgICAgICAgICAgIGNhc2UgTEVGVDogc3RyLmFwcGVuZCgiTEVGVCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0VOVEVSOiBzdHIuYXBwZW5kKCJDRU5URVIiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJJR0hUOiBzdHIuYXBwZW5kKCJSSUdIVCIpOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IHN0ci5hcHBlbmQoInVua25vd24iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBzdHIuYXBwZW5kKCJdIik7CisKKyAgICAgICAgcmV0dXJuIHN0ci50b1N0cmluZygpOworICAgICAgICB9CisKKyAgICB9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlDYWxlbmRhckRlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlDYWxlbmRhckRlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjZjYTNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvSG9saWRheUNhbGVuZGFyRGVtby5qYXZhCkBAIC0wLDAgKzEsNzMxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmhvbGlkYXk7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkNhbnZhczsKK2ltcG9ydCBqYXZhLmF3dC5DaG9pY2U7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRm9udDsKK2ltcG9ydCBqYXZhLmF3dC5Gb250TWV0cmljczsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWludHM7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9BcHBsZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVGV4dEJveDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCisvKioKKyAqIENhbGVuZGFyRGVtbyBkZW1vbnN0cmF0ZXMgaG93IENhbGVuZGFyIHdvcmtzLgorICovCitwdWJsaWMgY2xhc3MgSG9saWRheUNhbGVuZGFyRGVtbyBleHRlbmRzIERlbW9BcHBsZXQgCit7CisgICAgLyoqCisgICAgICogVGhlIG1haW4gZnVuY3Rpb24gd2hpY2ggZGVmaW5lcyB0aGUgYmVoYXZpb3Igb2YgdGhlIENhbGVuZGFyRGVtbworICAgICAqIGFwcGxldCB3aGVuIGFuIGFwcGxldCBpcyBzdGFydGVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHsKKworICAgICAgICBuZXcgSG9saWRheUNhbGVuZGFyRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgLyogVGhpcyBjcmVhdGVzIGEgQ2FsZW5kYXJGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LiAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckZyYW1lKGFwcGxldCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBBIEZyYW1lIGlzIGEgdG9wLWxldmVsIHdpbmRvdyB3aXRoIGEgdGl0bGUuIFRoZSBkZWZhdWx0IGxheW91dCBmb3IgYSBmcmFtZQorICAgICogaXMgQm9yZGVyTGF5b3V0LiAgVGhlIENhbGVuZGFyRnJhbWUgY2xhc3MgZGVmaW5lcyB0aGUgd2luZG93IGxheW91dCBvZgorICAgICogQ2FsZW5kYXJEZW1vLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2FsZW5kYXJGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUxpc3RlbmVyCisgICAgeworICAgICAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPSAiIjsgLy8gdW51c2VkCisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgICAgIC8vcHJpdmF0ZSBMb2NhbGUgY3VyTG9jYWxlID0gTG9jYWxlLlVTOyAvLyB1bnVzZWQKKworICAgICAgICBwcml2YXRlIERlbW9BcHBsZXQgYXBwbGV0OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZVtdIGNhbGVuZGFycyA9IHsKKyAgICAgICAgICAgIC8vbmV3IExvY2FsZSgiZGUiLCJBVCIpLAorICAgICAgICAgICAgTG9jYWxlLkNBTkFEQSwKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREFfRlJFTkNILAorICAgICAgICAgICAgTG9jYWxlLkZSQU5DRSwKKyAgICAgICAgICAgIExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXciLCJJTCIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCJHUiIpLAorICAgICAgICAgICAgLy9uZXcgTG9jYWxlKCJlcyIsIk1YIiksCisgICAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgIH07CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZVtdIGRpc3BsYXlzID0geworICAgICAgICAgICAgTG9jYWxlLkNBTkFEQSwKKyAgICAgICAgICAgIExvY2FsZS5VSywKKyAgICAgICAgICAgIExvY2FsZS5VUywKKyAgICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICBMb2NhbGUuQ0FOQURBX0ZSRU5DSCwKKyAgICAgICAgICAgIC8vbmV3IExvY2FsZSgiZGUiLCJBVCIpLAorICAgICAgICAgICAgTG9jYWxlLkdFUk1BTiwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwiR1IiKSwKKyAgICAgICAgICAgIC8vbmV3IExvY2FsZSgiaXciLCJJTCIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZXMiLCJNWCIpLAorICAgICAgICB9OworCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0cnVjdHMgYSBuZXcgQ2FsZW5kYXJGcmFtZSB0aGF0IGlzIGluaXRpYWxseSBpbnZpc2libGUuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBDYWxlbmRhckZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcigiQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgICAgICBpbml0KCk7CisgICAgICAgICAgICBzdGFydCgpOworICAgICAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEluaXRpYWxpemVzIHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBkaXJlY3RseSwgaXQKKyAgICAgICAgKiBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgc3lzdGVtIG9uY2UgdGhlIGFwcGxldCBpcyBjcmVhdGVkLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gR2V0IEc3IGxvY2FsZXMgb25seSBmb3IgZGVtbyBwdXJwb3NlLiBUbyBnZXQgYWxsIHRoZSBsb2NhbGVzCisgICAgICAgICAgICAvLyBzdXBwb3J0ZWQsIHN3aXRjaCB0byBjYWxsaW5nIENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKS4KKyAgICAgICAgICAgIC8vIGNvbW1lbnRlZAorICAgICAgICAgICAgbG9jYWxlcyA9IGRpc3BsYXlzOworCisgICAgICAgICAgICBidWlsZEdVSSgpOworICAgICAgICB9CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICAgICAgY29udGFpbmVyLmFkZChmb28pOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIHRvIHN0YXJ0IHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBtZXRob2QKKyAgICAgICAgKiBkaXJlY3RseSwgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxldCdzIGRvY3VtZW50IGlzIHZpc2l0ZWQuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZG8gbm90aGluZworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBDaG9pY2UgICAgICAgICAgbG9jYWxlTWVudTsKKyAgICAgICAgcHJpdmF0ZSBDaG9pY2UgICAgICAgICAgZGlzcGxheU1lbnU7CisgICAgICAgIHByaXZhdGUgTG9jYWxlW10gICAgICAgIGxvY2FsZXM7CisKKyAgICAgICAgcHJpdmF0ZSBMYWJlbCAgICAgICAgICAgbW9udGhMYWJlbDsKKyAgICAgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgcHJldlllYXI7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZNb250aDsKKyAgICAgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgZ290b1RvZGF5OworICAgICAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBuZXh0TW9udGg7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRZZWFyOworICAgICAgICBwcml2YXRlIENhbGVuZGFyUGFuZWwgICBjYWxlbmRhclBhbmVsOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBrRmlyc3RMb2NhbGUgPSBMb2NhbGUuVVM7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGNvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpZEJhZ0xheW91dCBnLCBHcmlkQmFnQ29uc3RyYWludHMgYykKKyAgICAgICAgeworICAgICAgICAgICAgZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnQsIGMpOworICAgICAgICAgICAgY29udGFpbmVyLmFkZChjb21wb25lbnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoMTAsMTApKTsKKworICAgICAgICAgICAgLy8gTGFiZWwgZm9yIHRoZSBkZW1vJ3MgdGl0bGUKKyAgICAgICAgICAgIExhYmVsIHRpdGxlTGFiZWwgPSBuZXcgTGFiZWwoIkNhbGVuZGFyIERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisKKyAgICAgICAgICAgIC8vIExhYmVsIGZvciB0aGUgY3VycmVudCBtb250aCBuYW1lCisgICAgICAgICAgICBtb250aExhYmVsID0gbmV3IExhYmVsKCIiLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIG1vbnRoTGFiZWwuc2V0Rm9udChuZXcgRm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0TmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlbW9VdGlsaXR5LnRpdGxlRm9udC5nZXRTdHlsZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0U2l6ZSgpICogMykvMikpOworCisgICAgICAgICAgICAvLyBNYWtlIHRoZSBsb2NhbGUgcG9wdXAgbWVudXMKKyAgICAgICAgICAgIGxvY2FsZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaW50IHNlbGVjdE1lID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5nZXRDb3VudHJ5KCkuZXF1YWxzKGNhbGVuZGFyc1tpLTFdLmdldENvdW50cnkoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGNhbGVuZGFycy5sZW5ndGggLSAxICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZ2V0Q291bnRyeSgpLmVxdWFscyhjYWxlbmRhcnNbaSsxXS5nZXRDb3VudHJ5KCkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlTWVudS5hZGRJdGVtKGNhbGVuZGFyc1tpXS5nZXREaXNwbGF5Q291bnRyeSgpICsgIiAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZ2V0RGlzcGxheUxhbmd1YWdlKCkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbSggY2FsZW5kYXJzW2ldLmdldERpc3BsYXlDb3VudHJ5KCkgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGNhbGVuZGFyc1tpXS5lcXVhbHMoa0ZpcnN0TG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICBzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBsb2NhbGVNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgbG9jYWxlTWVudS5zZWxlY3Qoc2VsZWN0TWUpOworCisgICAgICAgICAgICBkaXNwbGF5TWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LmFkZEl0ZW1MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2VsZWN0TWUgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaS0xXS5nZXRMYW5ndWFnZSgpKSB8fAorICAgICAgICAgICAgICAgICAgICBpIDwgbG9jYWxlcy5sZW5ndGggLSAxICYmCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaSsxXS5nZXRMYW5ndWFnZSgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheUxhbmd1YWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoa0ZpcnN0TG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICBzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBkaXNwbGF5TWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LnNlbGVjdChzZWxlY3RNZSk7CisKKyAgICAgICAgICAgIC8vIE1ha2UgYWxsIHRoZSBuZXh0L3ByZXZpb3VzL3RvZGF5IGJ1dHRvbnMKKyAgICAgICAgICAgIHByZXZZZWFyID0gbmV3IEJ1dHRvbigiPDwiKTsKKyAgICAgICAgICAgIHByZXZZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgcHJldk1vbnRoID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICAgICAgcHJldk1vbnRoLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgZ290b1RvZGF5ID0gbmV3IEJ1dHRvbigiVG9kYXkiKTsKKyAgICAgICAgICAgIGdvdG9Ub2RheS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIG5leHRNb250aCA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgICAgIG5leHRNb250aC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIG5leHRZZWFyID0gbmV3IEJ1dHRvbigiPj4iKTsKKyAgICAgICAgICAgIG5leHRZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworCisgICAgICAgICAgICAvLyBUaGUgbW9udGggbmFtZSBhbmQgdGhlIGNvbnRyb2wgYnV0dG9ucyBhcmUgYnVuY2hlZCB0b2dldGhlcgorICAgICAgICAgICAgUGFuZWwgbW9udGhQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZyA9IG5ldyBHcmlkQmFnTGF5b3V0KCk7CisgICAgICAgICAgICAgICAgR3JpZEJhZ0NvbnN0cmFpbnRzIGMgPSBuZXcgR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CisgICAgICAgICAgICAgICAgbW9udGhQYW5lbC5zZXRMYXlvdXQoZyk7CisKKyAgICAgICAgICAgICAgICBjLndlaWdodHggPSAxOworICAgICAgICAgICAgICAgIGMud2VpZ2h0eSA9IDE7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IDE7CisgICAgICAgICAgICAgICAgYy5maWxsID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkhPUklaT05UQUw7CisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOworICAgICAgICAgICAgICAgIGFkZChtb250aFBhbmVsLCBtb250aExhYmVsLCBnLCBjKTsKKworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gMTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgcHJldlllYXIsIGcsIGMpOworICAgICAgICAgICAgICAgIGFkZChtb250aFBhbmVsLCBwcmV2TW9udGgsIGcsIGMpOworICAgICAgICAgICAgICAgIGFkZChtb250aFBhbmVsLCBnb3RvVG9kYXksIGcsIGMpOworICAgICAgICAgICAgICAgIGFkZChtb250aFBhbmVsLCBuZXh0TW9udGgsIGcsIGMpOworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgbmV4dFllYXIsIGcsIGMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTdGljayB0aGUgbWVudSBhbmQgYnV0dG9ucyBpbiBhIGxpdHRsZSAiY29udHJvbCBwYW5lbCIKKyAgICAgICAgICAgIFBhbmVsIG1lbnVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZyA9IG5ldyBHcmlkQmFnTGF5b3V0KCk7CisgICAgICAgICAgICAgICAgR3JpZEJhZ0NvbnN0cmFpbnRzIGMgPSBuZXcgR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CisgICAgICAgICAgICAgICAgbWVudVBhbmVsLnNldExheW91dChnKTsKKworICAgICAgICAgICAgICAgIGMud2VpZ2h0eCA9IDE7CisgICAgICAgICAgICAgICAgYy53ZWlnaHR5ID0gMTsKKworICAgICAgICAgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5IT1JJWk9OVEFMOworCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVMQVRJVkU7CisgICAgICAgICAgICAgICAgTGFiZWwgbDEgPSBuZXcgTGFiZWwoIkhvbGlkYXlzIik7CisgICAgICAgICAgICAgICAgbDEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgICAgIGFkZChtZW51UGFuZWwsIGwxLCBnLCBjKTsKKworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgICAgICBhZGQobWVudVBhbmVsLCBsb2NhbGVNZW51LCBnLCBjKTsKKworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTEFUSVZFOworICAgICAgICAgICAgICAgIExhYmVsIGwyID0gbmV3IExhYmVsKCJEaXNwbGF5OiIpOworICAgICAgICAgICAgICAgIGwyLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgICAgICBhZGQobWVudVBhbmVsLCBsMiwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAgICAgYWRkKG1lbnVQYW5lbCwgZGlzcGxheU1lbnUsIGcsIGMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGUgdGl0bGUsIGJ1dHRvbnMsIGV0Yy4gZ28gaW4gYSBwYW5lbCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdG9wUGFuZWwuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZCgiTm9ydGgiLCB0aXRsZUxhYmVsKTsKKyAgICAgICAgICAgICAgICB0b3BQYW5lbC5hZGQoIkNlbnRlciIsIG1vbnRoUGFuZWwpOworICAgICAgICAgICAgICAgIHRvcFBhbmVsLmFkZCgiRWFzdCIsIG1lbnVQYW5lbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGQoIk5vcnRoIiwgdG9wUGFuZWwpOworCisgICAgICAgICAgICAvLyBUaGUgY29weXJpZ2h0IG5vdGljZSBnb2VzIGF0IHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdworICAgICAgICAgICAgTGFiZWwgY29weXJpZ2h0ID0gbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpOworICAgICAgICAgICAgY29weXJpZ2h0LnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0KTsKKworICAgICAgICAgICAgLy8gTm93IGNyZWF0ZSB0aGUgYmlnIGNhbGVuZGFyIHBhbmVsIGFuZCBzdGljayBpdCBpbiB0aGUgbWlkZGxlCisgICAgICAgICAgICBjYWxlbmRhclBhbmVsID0gbmV3IENhbGVuZGFyUGFuZWwoIGtGaXJzdExvY2FsZSApOworICAgICAgICAgICAgYWRkKCJDZW50ZXIiLCBjYWxlbmRhclBhbmVsKTsKKworICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlTW9udGhOYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTU0geXl5eXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmdldERpc3BsYXlMb2NhbGUoKSk7CisgICAgICAgICAgICBmLnNldENhbGVuZGFyKGNhbGVuZGFyUGFuZWwuZ2V0Q2FsZW5kYXIoKSk7CisgICAgICAgICAgICBmLnNldFRpbWVab25lKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOyAgICAgICAgLy8gSkRLIDEuMS4yIHdvcmthcm91bmQKKyAgICAgICAgICAgIG1vbnRoTGFiZWwuc2V0VGV4dCggZi5mb3JtYXQoIGNhbGVuZGFyUGFuZWwuZmlyc3RPZk1vbnRoKCkgKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIEhhbmRsZXMgdGhlIGV2ZW50LiBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGhhbmRsZWQgYW5kIHNob3VsZCBub3QKKyAgICAgICAgKiBiZSBwYXNzZWQgdG8gdGhlIHBhcmVudCBvZiB0aGlzIGNvbXBvbmVudC4gVGhlIGRlZmF1bHQgZXZlbnQgaGFuZGxlcgorICAgICAgICAqIGNhbGxzIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gbWFrZSBsaWZlIGVhc2llciBvbiB0aGUgcHJvZ3JhbW1lci4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIE9iamVjdCBvYmogPSBlLmdldFNvdXJjZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAqKiogQnV0dG9uIGV2ZW50cyBhcmUgaGFuZGxlZCBoZXJlLgorICAgICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEJ1dHRvbikgeworICAgICAgICAgICAgICAgIGlmIChvYmogPT0gbmV4dE1vbnRoKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuYWRkKENhbGVuZGFyLk1PTlRILCArMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IHByZXZNb250aCkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5NT05USCwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKG9iaiA9PSBwcmV2WWVhcikgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5ZRUFSLCAtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IG5leHRZZWFyKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuYWRkKENhbGVuZGFyLllFQVIsICsxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIChvYmogPT0gZ290b1RvZGF5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0KCBuZXcgRGF0ZSgpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgIGlmIChvYmogPT0gbG9jYWxlTWVudSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0Q2FsZW5kYXJMb2NhbGUoY2FsZW5kYXJzW2xvY2FsZU1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSk7CisgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChvYmogPT0gZGlzcGxheU1lbnUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXREaXNwbGF5TG9jYWxlKGxvY2FsZXNbZGlzcGxheU1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSk7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogUHJpbnQgb3V0IHRoZSBlcnJvciBtZXNzYWdlIHdoaWxlIGRlYnVnZ2luZyB0aGlzIHByb2dyYW0uCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZXZlbnQgIiArIGUpOworICAgICAgICAgICAgaWYgKGUuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORykgeworICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpOworICAgICAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworCisgICAgICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDYWxlbmRhclBhbmVsIGV4dGVuZHMgQ2FudmFzIHsKKworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJQYW5lbCggTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgICAgIHNldChsb2NhbGUsIGxvY2FsZSwgbmV3IERhdGUoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhckxvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBzZXQobG9jYWxlLCBmRGlzcGxheUxvY2FsZSwgZkNhbGVuZGFyLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXREaXNwbGF5TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHNldChmQ2FsZW5kYXJMb2NhbGUsIGxvY2FsZSwgZkNhbGVuZGFyLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXQoRGF0ZSBkYXRlKSB7CisgICAgICAgICAgICBzZXQoZkNhbGVuZGFyTG9jYWxlLCBmRGlzcGxheUxvY2FsZSwgZGF0ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXQoTG9jYWxlIGxvYywgTG9jYWxlIGRpc3BsYXksIERhdGUgZGF0ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZDYWxlbmRhckxvY2FsZSA9PSBudWxsIHx8ICFsb2MuZXF1YWxzKGZDYWxlbmRhckxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXJMb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAgICAgZkNhbGVuZGFyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoZkNhbGVuZGFyTG9jYWxlKTsKKyAgICAgICAgICAgICAgICBmQWxsSG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKGZDYWxlbmRhckxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZkRpc3BsYXlMb2NhbGUgPT0gbnVsbCB8fCAhZGlzcGxheS5lcXVhbHMoZkRpc3BsYXlMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgZkRpc3BsYXlMb2NhbGUgPSBkaXNwbGF5OworICAgICAgICAgICAgICAgIGZTeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGRhdGU7CisKKyAgICAgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBkZWx0YSkKKyAgICAgICAgeworICAgICAgICAgICAgc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5hZGQoZmllbGQsIGRlbHRhKTsKKyAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoID0gZkNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyIGdldENhbGVuZGFyKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhcjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMb2NhbGUgZ2V0Q2FsZW5kYXJMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZkNhbGVuZGFyTG9jYWxlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIExvY2FsZSBnZXREaXNwbGF5TG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZEaXNwbGF5TG9jYWxlOworICAgICAgICB9CisKKworICAgICAgICBwdWJsaWMgRGF0ZSBmaXJzdE9mTW9udGgoKSB7CisgICAgICAgICAgICByZXR1cm4gZlN0YXJ0T2ZNb250aDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgRGF0ZSBzdGFydE9mTW9udGgoRGF0ZSBkYXRlSW5Nb250aCkKKyAgICAgICAgeworICAgICAgICAgICAgc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXRUaW1lKGRhdGVJbk1vbnRoKTsgICAgICAgICAgICAgLy8gVE9ETzogc3luY2hyb25pemF0aW9uCisKKyAgICAgICAgICAgICAgICBpbnQgZXJhID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAgICAgICAgIGludCB5ZWFyID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgICAgICBpbnQgbW9udGggPSBmQ2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5jbGVhcigpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuRVJBLCBlcmEpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgICAgICAgICAgZkNhbGVuZGFyLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZkNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBjYWxjdWxhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSB3b3JrYXJvdW5kIGZvciBKREsgMS4xLjMgYW5kIGJlbG93LCB3aGVyZSBDYWxlbmRhcnMgYW5kIHRpbWUKKyAgICAgICAgICAgIC8vIHpvbmVzIGFyZSBhIGJpdCBnb29meSwgYWx3YXlzIHNldCBteSBjYWxlbmRhcidzIHRpbWUgem9uZSB0byBVVEMuCisgICAgICAgICAgICAvLyBZb3Ugd291bGQgdGhpbmsgSSB3b3VsZCB3YW50IHRvIGRvIHRoaXMgaW4gdGhlICJzZXQiIGZ1bmN0aW9uIGFib3ZlLAorICAgICAgICAgICAgLy8gYnV0IGlmIEkgZG8gdGhhdCwgdGhlIHByb2dyYW0gaGFuZ3Mgd2hlbiB0aGlzIGNsYXNzIGlzIGxvYWRlZCwKKyAgICAgICAgICAgIC8vIHBlcmhhcHMgZHVlIHRvIHNvbWUgc29ydCBvZiBzdGF0aWMgaW5pdGlhbGl6YXRpb24gb3JkZXJpbmcgcHJvYmxlbS4KKyAgICAgICAgICAgIC8vIFNvIEkgZG8gaXQgaGVyZSBpbnN0ZWFkLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGZDYWxlbmRhci5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKworICAgICAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXIuY2xvbmUoKTsgLy8gVGVtcG9yYXJ5IGNvcHkKKworICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IHN0YXJ0T2ZNb250aChmU3RhcnRPZk1vbnRoKTsKKworICAgICAgICAgICAgLy8gU3Rhc2ggYXdheSBhIGZldyB1c2VmdWwgY29uc3RhbnRzIGZvciB0aGlzIGNhbGVuZGFyIGFuZCBkaXNwbGF5CisgICAgICAgICAgICBtaW5EYXkgPSBjLmdldE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgZGF5c0luV2VlayA9IGMuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSykgLSBtaW5EYXkgKyAxOworCisgICAgICAgICAgICBmaXJzdERheU9mV2VlayA9IENhbGVuZGFyLmdldEluc3RhbmNlKGZEaXNwbGF5TG9jYWxlKS5nZXRGaXJzdERheU9mV2VlaygpOworCisgICAgICAgICAgICAvLyBTdGFzaCBhd2F5IGEgRGF0ZSBmb3IgdGhlIHN0YXJ0IG9mIHRoaXMgbW9udGgKKworICAgICAgICAgICAgLy8gRmluZCB0aGUgZGF5IG9mIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBpbiB0aGlzIG1vbnRoCisgICAgICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgICAgICBmaXJzdERheUluTW9udGggPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisKKyAgICAgICAgICAgIC8vIE5vdyBmaW5kIHRoZSAjIG9mIGRheXMgaW4gdGhlIG1vbnRoCisgICAgICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgZmFsc2UpOworICAgICAgICAgICAgZGF5c0luTW9udGggPSBjLmdldChDYWxlbmRhci5EQVRFKTsKKworICAgICAgICAgICAgLy8gRmluYWxseSwgZmluZCB0aGUgZW5kIG9mIHRoZSBtb250aCwgaS5lLiB0aGUgc3RhcnQgb2YgdGhlIG5leHQgb25lCisgICAgICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgdHJ1ZSk7CisgICAgICAgICAgICBjLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICBjLmdldFRpbWUoKTsgICAgICAgIC8vIEpESyAxLjEuMiBidWcgd29ya2Fyb3VuZAorICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMSk7CisgICAgICAgICAgICBEYXRlIGVuZE9mTW9udGggPSBjLmdldFRpbWUoKTsKKworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiB0aGlzIG1vbnRoLgorICAgICAgICAgICAgLy8gVG8gZG8gdGhpcyBJIGNhbiBqdXN0IHJldXNlIHRoZSBjb2RlIHRoYXQgY2FsY3VsYXRlcyB3aGljaAorICAgICAgICAgICAgLy8gY2FsZW5kYXIgY2VsbCBjb250YWlucyBhIGdpdmVuIGRhdGUuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgbnVtV2Vla3MgPSBkYXRlVG9DZWxsKGRheXNJbk1vbnRoKS55IC0gZGF0ZVRvQ2VsbCgxKS55ICsgMTsKKworICAgICAgICAgICAgLy8gUmVtZW1iZXIgd2hpY2ggaG9saWRheXMgZmFsbCBvbiB3aGljaCBkYXlzIGluIHRoaXMgbW9udGgsCisgICAgICAgICAgICAvLyB0byBzYXZlIHRoZSB0cm91YmxlIG9mIGhhdmluZyB0byBkbyBpdCBsYXRlcgorICAgICAgICAgICAgZkhvbGlkYXlzLnNldFNpemUoMCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGggPSAwOyBoIDwgZkFsbEhvbGlkYXlzLmxlbmd0aDsgaCsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZTdGFydE9mTW9udGg7CisgICAgICAgICAgICAgICAgd2hpbGUgKCAoZCA9IGZBbGxIb2xpZGF5c1toXS5maXJzdEJldHdlZW4oZCwgZW5kT2ZNb250aCkgKSAhPSBudWxsKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgYy5zZXRUaW1lKGQpOworICAgICAgICAgICAgICAgICAgICBmSG9saWRheXMuYWRkRWxlbWVudCggbmV3IEhvbGlkYXlJbmZvKGMuZ2V0KENhbGVuZGFyLkRBVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQWxsSG9saWRheXNbaF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZBbGxIb2xpZGF5c1toXS5nZXREaXNwbGF5TmFtZShmRGlzcGxheUxvY2FsZSkgKSk7CisKKyAgICAgICAgICAgICAgICAgICAgZC5zZXRUaW1lKCBkLmdldFRpbWUoKSArIDEwMDAgKTsgICAgLy8gImQrKyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkaXJ0eSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBJTlNFVCA9IDI7CisKKyAgICAgICAgLyoKKyAgICAgICAgKiBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgd2l0aGluIGEgbW9udGggKDEtYmFzZWQpCisgICAgICAgICogdG8gdGhlIGNlbGwgY29vcmRpbmF0ZXMgb24gdGhlIGNhbGVuZGFyICgwLWJhc2VkKQorICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgZGF0ZVRvQ2VsbChpbnQgZGF0ZSwgUG9pbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgY2VsbCA9IChkYXRlICsgZmlyc3REYXlJbk1vbnRoIC0gZmlyc3REYXlPZldlZWsgLSBtaW5EYXkpOworICAgICAgICAgICAgaWYgKGZpcnN0RGF5SW5Nb250aCA8IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICAgICAgY2VsbCArPSBkYXlzSW5XZWVrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MueCA9IGNlbGwgJSBkYXlzSW5XZWVrOworICAgICAgICAgICAgcG9zLnkgPSBjZWxsIC8gZGF5c0luV2VlazsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFBvaW50IGRhdGVUb0NlbGwoaW50IGRhdGUpIHsKKyAgICAgICAgICAgIFBvaW50IHAgPSBuZXcgUG9pbnQoMCwwKTsKKyAgICAgICAgICAgIGRhdGVUb0NlbGwoZGF0ZSwgcCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICAgICAgaWYgKGRpcnR5KSB7CisgICAgICAgICAgICAgICAgY2FsY3VsYXRlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFBvaW50IGNlbGxQb3MgPSBuZXcgUG9pbnQoMCwwKTsgICAgIC8vIFRlbXBvcmFyeSB2YXJpYWJsZQorICAgICAgICAgICAgRGltZW5zaW9uIGQgPSBnZXRTaXplKCk7CisKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgICAgICBnLmZpbGxSZWN0KDAsMCxkLndpZHRoLGQuaGVpZ2h0KTsKKworICAgICAgICAgICAgLy8gRHJhdyB0aGUgZGF5IG5hbWVzIGF0IHRoZSB0b3AKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAgICAgZy5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgICAgIGludCBsYWJlbEhlaWdodCA9IGZtLmdldEhlaWdodCgpICsgSU5TRVQgKiAyOworCisgICAgICAgICAgICBpbnQgdiA9IGZtLmdldEFzY2VudCgpICsgSU5TRVQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRheXNJbldlZWs7IGkrKykgeworICAgICAgICAgICAgICAgIGludCBkYXlOdW0gPSAoaSArIG1pbkRheSArIGZpcnN0RGF5T2ZXZWVrIC0gMikgJSBkYXlzSW5XZWVrICsgMTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGF5TmFtZSA9IGZTeW1ib2xzLmdldFdlZWtkYXlzKClbZGF5TnVtXTsKKworICAgICAgICAgICAgICAgIGludCBoID0gKGludCkgKGQud2lkdGggKiAoaSArIDAuNSkpIC8gZGF5c0luV2VlazsKKyAgICAgICAgICAgICAgICBoIC09IGZtLnN0cmluZ1dpZHRoKGRheU5hbWUpIC8gMjsKKworICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOYW1lLCBoLCB2KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZG91YmxlIGNlbGxIZWlnaHQgPSAoZC5oZWlnaHQgLSBsYWJlbEhlaWdodCAtIDEpIC8gbnVtV2Vla3M7CisgICAgICAgICAgICBkb3VibGUgY2VsbFdpZHRoID0gKGRvdWJsZSkoZC53aWR0aCAtIDEpIC8gZGF5c0luV2VlazsKKworICAgICAgICAgICAgLy8gRHJhdyBhIHdoaXRlIGJhY2tncm91bmQgaW4gdGhlIHBhcnQgb2YgdGhlIGNhbGVuZGFyCisgICAgICAgICAgICAvLyB0aGF0IGRpc3BsYXlzIHRoaXMgbW9udGguCisgICAgICAgICAgICAvLyBGaXJzdCBmaWd1cmUgb3V0IGhvdyBtdWNoIG9mIHRoZSBmaXJzdCB3ZWVrIHNob3VsZCBiZSBzaGFkZWQuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CisgICAgICAgICAgICAgICAgZGF0ZVRvQ2VsbCgxLCBjZWxsUG9zKTsKKyAgICAgICAgICAgICAgICBpbnQgd2lkdGggPSAoaW50KShjZWxsUG9zLngqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHVuc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoKGludCkod2lkdGgpLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShkLndpZHRoIC0gd2lkdGgpLCAoaW50KWNlbGxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBpbnRlcm1lZGlhdGUgd2Vla3MgZ2V0IHNoYWRlZCBjb21wbGV0ZWx5CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQud2lkdGgsIChpbnQpKGNlbGxIZWlnaHQgKiAobnVtV2Vla3MgLSAyKSkpOworCisgICAgICAgICAgICAgICAgLy8gTm93IGZpZ3VyZSBvdXQgdGhlIGxhc3Qgd2Vlay4KKyAgICAgICAgICAgICAgICBkYXRlVG9DZWxsKGRheXNJbk1vbnRoLCBjZWxsUG9zKTsKKyAgICAgICAgICAgICAgICB3aWR0aCA9IChpbnQpKChjZWxsUG9zLngrMSkqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgICAgICBnLmZpbGxSZWN0KDAsIChpbnQpKGxhYmVsSGVpZ2h0ICsgKG51bVdlZWtzLTEpICogY2VsbEhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpKGNlbGxIZWlnaHQpKTsKKworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRHJhdyB0aGUgWC9ZIGdyaWQgbGluZXMKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtV2Vla3M7IGkrKykgeworICAgICAgICAgICAgICAgIGludCB5ID0gKGludCkobGFiZWxIZWlnaHQgKyBpICogY2VsbEhlaWdodCk7CisgICAgICAgICAgICAgICAgZy5kcmF3TGluZSgwLCB5LCBkLndpZHRoIC0gMSwgeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgeCA9IChpbnQpKGkgKiBjZWxsV2lkdGgpOworICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoeCwgbGFiZWxIZWlnaHQsIHgsIGQuaGVpZ2h0IC0gMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdyBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBkYXlzIGluIHRoZSBtb250aCwgZmlndXJlIG91dCB3aGVyZQorICAgICAgICAgICAgLy8gdGhleSBnbyBpbiB0aGUgZ3JpZCwgYW5kIGRyYXcgdGhlIGRheSAjIGZvciBlYWNoIG9uZQorICAgICAgICAgICAgRm9udCBudW1iZXJGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5QTEFJTiwxMik7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBGb250IGhvbGlkYXlGb250ID0gRGVtb1V0aWxpdHkuY3JlZGl0Rm9udDsKKworICAgICAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXIuY2xvbmUoKTsKKyAgICAgICAgICAgIGMuc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDEsIGggPSAwOyBpIDw9IGRheXNJbk1vbnRoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQobnVtYmVyRm9udCk7CisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgICAgICAgICAgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisKKyAgICAgICAgICAgICAgICBkYXRlVG9DZWxsKGksIGNlbGxQb3MpOworICAgICAgICAgICAgICAgIGludCB4ID0gKGludCkoKGNlbGxQb3MueCArIDEpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICBpbnQgeSA9IChpbnQpKGNlbGxQb3MueSAqIGNlbGxIZWlnaHQgKyBsYWJlbEhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRheU51bSA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgeCA9IHggLSBJTlNFVCAtIGZtLnN0cmluZ1dpZHRoKGRheU51bSk7CisgICAgICAgICAgICAgICAgeSA9IHkgKyBmbS5nZXRBc2NlbnQoKSArIElOU0VUOworCisgICAgICAgICAgICAgICAgZy5kcmF3U3RyaW5nKGRheU51bSwgeCwgeSk7CisKKyAgICAgICAgICAgICAgICAvLyBTZWUgaWYgYW55IG9mIHRoZSBob2xpZGF5cyBsYW5kIG9uIHRoaXMgZGF5Li4uLgorICAgICAgICAgICAgICAgIEhvbGlkYXlJbmZvIGluZm8gPSBudWxsOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBDb29yZGluYXRlcyBvZiBsb3dlci1sZWZ0IGNvcm5lciBvZiBjZWxsLgorICAgICAgICAgICAgICAgIHggPSAoaW50KSgoY2VsbFBvcy54KSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgeSA9IChpbnQpKChjZWxsUG9zLnkrMSkgKiBjZWxsSGVpZ2h0KSArIGxhYmVsSGVpZ2h0OworCisgICAgICAgICAgICAgICAgd2hpbGUgKGggPCBmSG9saWRheXMuc2l6ZSgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoaW5mbyA9IChIb2xpZGF5SW5mbylmSG9saWRheXMuZWxlbWVudEF0KGgpKS5kYXRlIDw9IGkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5kYXRlID09IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERyYXcgdGhlIGhvbGlkYXkgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Rm9udChudW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IucmVkKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgRGVtb1RleHRCb3ggYm94ID0gbmV3IERlbW9UZXh0Qm94KGcsIGluZm8ubmFtZSwgKGludCkoY2VsbFdpZHRoIC0gSU5TRVQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJveC5kcmF3KGcsIHggKyBJTlNFVCwgeSAtIElOU0VUIC0gYm94LmdldEhlaWdodCgpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgeSAtPSAoYm94LmdldEhlaWdodCgpICsgSU5TRVQpOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSW1wb3J0YW50IHN0YXRlIHZhcmlhYmxlcworICAgICAgICBwcml2YXRlIExvY2FsZSAgICAgICAgICAgICAgZkNhbGVuZGFyTG9jYWxlOyAgICAvLyBXaG9zZSBjYWxlbmRhcgorICAgICAgICBwcml2YXRlIENhbGVuZGFyICAgICAgICAgICAgZkNhbGVuZGFyOyAgICAgICAgICAvLyBDYWxlbmRhciBmb3IgY2FsY3VsYXRpb25zCisKKyAgICAgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlOyAgICAgLy8gSG93IHRvIGRpc3BsYXkgaXQKKyAgICAgICAgcHJpdmF0ZSBEYXRlRm9ybWF0U3ltYm9scyAgIGZTeW1ib2xzOyAgICAgICAgICAgLy8gU3ltYm9scyBmb3IgZHJhd2luZworCisgICAgICAgIHByaXZhdGUgRGF0ZSAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoOyAgICAgIC8vIDAwOjAwOjAwIG9uIGZpcnN0IGRheSBvZiBtb250aAorCisgICAgICAgIC8vIENhY2hlZCBjYWxjdWxhdGlvbnMgdG8gbWFrZSBkcmF3aW5nIGZhc3Rlci4KKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IG1pbkRheTsgICAgICAgICAgIC8vIE1pbmltdW0gbGVnYWwgZGF5ICMKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGRheXNJbldlZWs7ICAgICAgIC8vICMgb2YgZGF5cyBpbiBhIHdlZWsKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZpcnN0RGF5T2ZXZWVrOyAgIC8vIEZpcnN0IGRheSB0byBkaXNwbGF5IGluIHdlZWsKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IG51bVdlZWtzOyAgICAgICAgIC8vICMgZnVsbCBvciBwYXJ0aWFsIHdlZWtzIGluIG1vbnRoCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBkYXlzSW5Nb250aDsgICAgICAvLyAjIGRheXMgaW4gdGhpcyBtb250aAorICAgICAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZmlyc3REYXlJbk1vbnRoOyAgLy8gRGF5IG9mIHdlZWsgb2YgZmlyc3QgZGF5IGluIG1vbnRoCisKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgSG9saWRheVtdIGZBbGxIb2xpZGF5czsKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgVmVjdG9yICAgIGZIb2xpZGF5cyA9IG5ldyBWZWN0b3IoNSw1KTsKKworICAgICAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRpcnR5ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBIb2xpZGF5SW5mbyB7CisgICAgICAgIHB1YmxpYyBIb2xpZGF5SW5mbyhpbnQgZGF0ZSwgSG9saWRheSBob2xpZGF5LCBTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgdGhpcy5kYXRlID0gZGF0ZTsKKyAgICAgICAgICAgIHRoaXMuaG9saWRheSA9IGhvbGlkYXk7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEhvbGlkYXkgaG9saWRheTsKKyAgICAgICAgcHVibGljIGludCBkYXRlOworICAgICAgICBwdWJsaWMgU3RyaW5nIG5hbWU7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDA1ZTJmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitIb2xpZGF5IGRlbW8gYXBwbGljYXRpb24uCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvQXBwbGV0RnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0FwcGxldEZyYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWRmZjM4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0FwcGxldEZyYW1lLmphdmEKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CitpbXBvcnQgamF2YS5hcHBsZXQuKjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisvKioKKyAqIDxwPkEgRnJhbWUgdGhhdCBydW5zIGFuIEFwcGxldCB3aXRoaW4gaXRzZWxmLCBtYWtpbmcgaXQgcG9zc2libGUKKyAqIGZvciBhbiBhcHBsZXQgdG8gcnVuIGFzIGFuIGFwcGxpY2F0aW9uLiAgVXNhZ2U6CisgKgorICogPHByZT4KKyAqIHB1YmxpYyBjbGFzcyBNeUFwcGxldCBleHRlbmRzIEFwcGxldCB7CisgKiAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICogICAgICAgICBNeUFwcGxldCBhcHBsZXQgPSBuZXcgTXlBcHBsZXQoKTsKKyAqICAgICAgICAgbmV3IEFwcGxldEZyYW1lKCJNeSBBcHBsZXQgUnVubmluZyBBcyBBbiBBcHAiLCBhcHBsZXQsIDY0MCwgNDgwKTsKKyAqICAgICB9CisgKiAgICAgLi4uCisgKiB9CisgKiA8cHJlPgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIEFwcGxldEZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBBcHBsZXRTdHViLCBBcHBsZXRDb250ZXh0IHsKKworICAgIEFwcGxldCBhcHBsZXQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIEZyYW1lIHJ1bm5pbmcgdGhlIGdpdmVuIEFwcGxldCB3aXRoIHRoZSBkZWZhdWx0IHNpemUKKyAgICAgKiBvZiA2NDAgYnkgNDgwLgorICAgICAqIFdoZW4gdGhlIEZyYW1lIGlzIGNsb3NlZCwgdGhlIGFwcGxldCdzIHN0b3AoKSBtZXRob2QgaXMgY2FsbGVkLAorICAgICAqIHRoZSBGcmFtZSBpcyBkaXNwb3NlKClkIG9mLCBhbmQgU3lzdGVtLmV4aXQoMCkgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgdGhlIEZyYW1lIHRpdGxlCisgICAgICogQHBhcmFtIGFwcGxldCB0aGUgYXBwbGV0IHRvIGJlIHJ1bgorICAgICAqLworICAgIHB1YmxpYyBBcHBsZXRGcmFtZShTdHJpbmcgbmFtZSwgQXBwbGV0IGFwcGxldCkgeworICAgICAgICB0aGlzKG5hbWUsIGFwcGxldCwgNjQwLCA0ODApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIEZyYW1lIHJ1bm5pbmcgdGhlIGdpdmVuIEFwcGxldCB3aXRoIHRoZSBnaXZlbiBzaXplLgorICAgICAqIFdoZW4gdGhlIEZyYW1lIGlzIGNsb3NlZCwgdGhlIGFwcGxldCdzIHN0b3AoKSBtZXRob2QgaXMgY2FsbGVkLAorICAgICAqIHRoZSBGcmFtZSBpcyBkaXNwb3NlKClkIG9mLCBhbmQgU3lzdGVtLmV4aXQoMCkgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgdGhlIEZyYW1lIHRpdGxlCisgICAgICogQHBhcmFtIGFwcGxldCB0aGUgYXBwbGV0IHRvIGJlIHJ1bgorICAgICAqIEBwYXJhbSB3aWR0aCB3aWR0aCBvZiB0aGUgRnJhbWUKKyAgICAgKiBAcGFyYW0gaGVpZ2h0IGhlaWdodCBvZiB0aGUgRnJhbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgQXBwbGV0RnJhbWUoU3RyaW5nIG5hbWUsIEFwcGxldCBhcHBsZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCkgeworICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGFwcGxldC5zZXRTdHViKHRoaXMpOworCisgICAgICAgIHNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgIGFkZCgiQ2VudGVyIiwgYXBwbGV0KTsKKyAgICAgICAgc2hvdygpOworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIEFwcGxldEZyYW1lLnRoaXMuYXBwbGV0LnN0b3AoKTsKKyAgICAgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIGFwcGxldC5pbml0KCk7CisgICAgICAgIGFwcGxldC5zdGFydCgpOworICAgIH0KKworICAgIC8vIEFwcGxldFN0dWIgQVBJCisgICAgcHVibGljIHZvaWQgYXBwbGV0UmVzaXplKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworICAgICAgICBzZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyBBcHBsZXRDb250ZXh0IGdldEFwcGxldENvbnRleHQoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBVUkwgZ2V0Q29kZUJhc2UoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBVUkwgZ2V0RG9jdW1lbnRCYXNlKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRQYXJhbWV0ZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuICJQQVJBTUVURVIiOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQWN0aXZlKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgCisgICAgLy8gQXBwbGV0Q29udGV4dCBBUEkKKyAgICBwdWJsaWMgQXBwbGV0IGdldEFwcGxldChTdHJpbmcgbmFtZSkgeworICAgICAgICByZXR1cm4gYXBwbGV0OworICAgIH0KKworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBcHBsZXRzKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXVkaW9DbGlwIGdldEF1ZGlvQ2xpcChVUkwgdXJsKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBJbWFnZSBnZXRJbWFnZShVUkwgdXJsKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNob3dEb2N1bWVudChVUkwgdXJsKSB7fQorICAgIHB1YmxpYyB2b2lkIHNob3dEb2N1bWVudChVUkwgdXJsLCBTdHJpbmcgdGFyZ2V0KSB7fQorCisgICAgcHVibGljIHZvaWQgc2hvd1N0YXR1cyhTdHJpbmcgc3RhdHVzKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdGF0dXMpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlYW0oU3RyaW5nIGtleSwgSW5wdXRTdHJlYW0gc3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBJdGVyYXRvciBnZXRTdHJlYW1LZXlzKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vQXBwbGV0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vQXBwbGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmM1MjdjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9BcHBsZXQuamF2YQpAQCAtMCwwICsxLDcyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZW1vQXBwbGV0IGV4dGVuZHMgamF2YS5hcHBsZXQuQXBwbGV0IHsKKyAgICBwcml2YXRlIEJ1dHRvbiAgIGRlbW9CdXR0b247CisgICAgcHJpdmF0ZSBGcmFtZSAgICBkZW1vRnJhbWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGRlbW9GcmFtZUNvdW50ID0gMDsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpOworICAgIHByb3RlY3RlZCBEaW1lbnNpb24gZ2V0RGVmYXVsdEZyYW1lU2l6ZShEZW1vQXBwbGV0IGFwcGxldCwgRnJhbWUgZikgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbig3MDAsIDU1MCk7CisgICAgfQorCisgICAgLy9DcmVhdGUgYSBidXR0b24gdGhhdCB3aWxsIGRpc3BsYXkgdGhlIGRlbW8KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIHNldEJhY2tncm91bmQoQ29sb3Iud2hpdGUpOworICAgICAgICBkZW1vQnV0dG9uID0gbmV3IEJ1dHRvbigiRGVtbyIpOworICAgICAgICBkZW1vQnV0dG9uLnNldEJhY2tncm91bmQoQ29sb3IueWVsbG93KTsKKyAgICAgICAgYWRkKCBkZW1vQnV0dG9uICk7CisKKyAgICAgICAgZGVtb0J1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0SUQoKSA9PSBBY3Rpb25FdmVudC5BQ1RJT05fUEVSRk9STUVEKSB7CisgICAgICAgICAgICAgICAgICAgIGRlbW9CdXR0b24uc2V0TGFiZWwoImxvYWRpbmciKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoZGVtb0ZyYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgZGVtb0ZyYW1lID0gY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQudGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZW1vKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBkZW1vQnV0dG9uLnNldExhYmVsKCJEZW1vIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNob3dEZW1vKCkKKyAgICB7CisgICAgICAgIGRlbW9GcmFtZSA9IGNyZWF0ZURlbW9GcmFtZSh0aGlzKTsKKyAgICAgICAgZGVtb0ZyYW1lLmRvTGF5b3V0KCk7CisgICAgICAgIERpbWVuc2lvbiBkID0gZ2V0RGVmYXVsdEZyYW1lU2l6ZSh0aGlzLCBkZW1vRnJhbWUpOworICAgICAgICBkZW1vRnJhbWUuc2V0U2l6ZShkLndpZHRoLCBkLmhlaWdodCk7CisgICAgICAgIGRlbW9GcmFtZS5zaG93KCk7CisgICAgICAgIGRlbW9GcmFtZU9wZW5lZCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlbW9DbG9zZWQoKQorICAgIHsKKyAgICAgICAgZGVtb0ZyYW1lID0gbnVsbDsKKyAgICAgICAgZGVtb0ZyYW1lQ2xvc2VkKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHN0YXRpYyB2b2lkIGRlbW9GcmFtZU9wZW5lZCgpIHsKKyAgICAgICAgZGVtb0ZyYW1lQ291bnQrKzsKKyAgICB9CisgICAgcHJvdGVjdGVkIHN0YXRpYyB2b2lkIGRlbW9GcmFtZUNsb3NlZCgpIHsKKyAgICAgICAgaWYgKC0tZGVtb0ZyYW1lQ291bnQgPT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9UZXh0Qm94LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vVGV4dEJveC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiNmE5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vVGV4dEJveC5qYXZhCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CisKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEuYXd0Lio7CisKK3B1YmxpYyBjbGFzcyBEZW1vVGV4dEJveCB7CisKKyAgICBwdWJsaWMgRGVtb1RleHRCb3goR3JhcGhpY3MgZywgU3RyaW5nIHRleHQsIGludCB3aWR0aCkKKyAgICB7CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgIHRoaXMuY2hhcnMgPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgdGV4dC5nZXRDaGFycygwLCB0ZXh0Lmxlbmd0aCgpLCBjaGFycywgMCk7CisKKyAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLnBvcnQgPSBnOworICAgICAgICB0aGlzLm1ldHJpY3MgPSBnLmdldEZvbnRNZXRyaWNzKCk7CisKKyAgICAgICAgYnJlYWtUZXh0KCk7CisgICAgfQorCisgICAgcHVibGljICBpbnQgZ2V0SGVpZ2h0KCkgeworICAgICAgICByZXR1cm4gKG5icmVha3MgKyAxKSAqIG1ldHJpY3MuZ2V0SGVpZ2h0KCk7CisgICAgfQorCisgICAgcHVibGljICB2b2lkIGRyYXcoR3JhcGhpY3MgZywgaW50IHgsIGludCB5KQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKworICAgICAgICB5ICs9IG1ldHJpY3MuZ2V0QXNjZW50KCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYnJlYWtzOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGcuZHJhd0NoYXJzKGNoYXJzLCBpbmRleCwgYnJlYWtQb3NbaV0gLSBpbmRleCwgeCwgeSk7CisgICAgICAgICAgICBpbmRleCA9IGJyZWFrUG9zW2ldOworICAgICAgICAgICAgeSArPSBtZXRyaWNzLmdldEhlaWdodCgpOworICAgICAgICB9CisKKyAgICAgICAgZy5kcmF3Q2hhcnMoY2hhcnMsIGluZGV4LCBjaGFycy5sZW5ndGggLSBpbmRleCwgeCwgeSk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgYnJlYWtUZXh0KCkKKyAgICB7CisgICAgICAgIGlmIChtZXRyaWNzLmNoYXJzV2lkdGgoY2hhcnMsIDAsIGNoYXJzLmxlbmd0aCkgPiB3aWR0aCkKKyAgICAgICAgeworICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0KTsKKworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaXRlci5maXJzdCgpOworICAgICAgICAgICAgaW50IGVuZCA9IHN0YXJ0OworICAgICAgICAgICAgaW50IHBvczsKKworICAgICAgICAgICAgd2hpbGUgKCAocG9zID0gaXRlci5uZXh0KCkpICE9IEJyZWFrSXRlcmF0b3IuRE9ORSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHcgPSBtZXRyaWNzLmNoYXJzV2lkdGgoY2hhcnMsIHN0YXJ0LCBwb3MgLSBzdGFydCk7CisgICAgICAgICAgICAgICAgaWYgKHcgPiB3aWR0aCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvbmUgcGFzdCB0aGUgbWF4aW11bSB3aWR0aCwgc28gYnJlYWsgdGhlIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVuZCA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSB3YXMgYXQgbGVhc3Qgb25lIGJyZWFrIHBvc2l0aW9uIGJlZm9yZSB0aGlzIHBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICBicmVha1Bvc1tuYnJlYWtzKytdID0gZW5kOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBlbmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBwb3M7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSB3ZXJlbid0IGFueSBicmVhayBwb3NpdGlvbnMgYmVmb3JlIHRoaXMgb25lLCBzbworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IHRoaXMgd29yZCBvdmVyZmxvdyB0aGUgbWFyZ2luICh5dWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtQb3NbbmJyZWFrcysrXSA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gcG9zOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24gc3RpbGwgZml0cyBvbiB0aGUgbGluZTsgaXQncyB0aGUgYmVzdAorICAgICAgICAgICAgICAgICAgICAvLyB0ZW50YXRpdmUgYnJlYWsgcG9zaXRpb24gd2UgaGF2ZSBzbyBmYXIuCisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHBvczsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nICAgICAgICAgIHRleHQ7CisgICAgcHJpdmF0ZSBjaGFyW10gICAgICAgICAgY2hhcnM7CisgICAgcHJpdmF0ZSBHcmFwaGljcyAgICAgICAgcG9ydDsKKyAgICBwcml2YXRlIEZvbnRNZXRyaWNzICAgICBtZXRyaWNzOworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgIHdpZHRoOworCisgICAgcHJpdmF0ZSBpbnRbXSAgICAgICAgICAgYnJlYWtQb3MgPSBuZXcgaW50WzEwXTsgLy8gVE9ETzogZ2V0IHJlYWwKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICBuYnJlYWtzID0gMDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vVXRpbGl0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1V0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YzVjM2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1V0aWxpdHkuamF2YQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbDsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBEZW1vVXRpbGl0eQoreworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCB0aXRsZUZvbnQgPSBuZXcgRm9udCgiVGltZXNSb21hbiIsRm9udC5CT0xELDE4KTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgbGFiZWxGb250ID0gbmV3IEZvbnQoIlRpbWVzUm9tYW4iLEZvbnQuQk9MRCwxNCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IGNob2ljZUZvbnQgPSBuZXcgRm9udCgiSGVsdmV0aWNhIixGb250LkJPTEQsMTIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBlZGl0Rm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuUExBSU4sMTQpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBjcmVkaXRGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5QTEFJTiwxMCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IG51bWJlckZvbnQgPSBuZXcgRm9udCgic2Fuc3NlcmlmIiwgRm9udC5QTEFJTiwgMTQpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xvciBiZ0NvbG9yID0gQ29sb3IubGlnaHRHcmF5OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sb3IgY2hvaWNlQ29sb3IgPSBDb2xvci53aGl0ZTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodDEgPQorICAgICAgICAiQ29weXJpZ2h0IChDKSBJQk0gQ29ycCBhbmQgb3RoZXJzLiAxOTk3IC0gMjAwMiBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIC8qKgorICAgIFByb3ZpZGVzIGVhc3kgd2F5IHRvIHVzZSBiYXNpYyBmdW5jdGlvbnMgb2YgR3JpZEJhZ0xheW91dCwgd2l0aG91dAorICAgIHRoZSBjb21wbGljYXRpb25zLiBBZnRlciBidWlsZGluZyBhIHBhbmVsLCBhbmQgaW5zZXJ0aW5nIGFsbCB0aGUKKyAgICAqIHN1YmNvbXBvbmVudHMsIGNhbGwgdGhpcyB0byBsYXkgaXQgb3V0IGluIHRoZSBkZXNpcmVkIG51bWJlciBvZiBjb2x1bW5zLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGZpeEdyaWQoQ29udGFpbmVyIGNvbnQsIGludCBjb2x1bW5zKSB7CisgICAgICAgIEdyaWRCYWdMYXlvdXQgZ3JpZGJhZyA9IG5ldyBHcmlkQmFnTGF5b3V0KCk7CisgICAgICAgIGNvbnQuc2V0TGF5b3V0KGdyaWRiYWcpOworCisgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuVkVSVElDQUw7CisgICAgICAgIGMud2VpZ2h0eCA9IDEuMDsKKyAgICAgICAgYy5pbnNldHMgPSBuZXcgSW5zZXRzKDIsMiwyLDIpOworCisgICAgICAgIENvbXBvbmVudFtdIGNvbXBvbmVudHMgPSBjb250LmdldENvbXBvbmVudHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb21wb25lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgY29sTnVtYmVyID0gaSVjb2x1bW5zOworICAgICAgICAgICAgYy5ncmlkd2lkdGggPSAxOyAgICAvLyBkZWZhdWx0CisgICAgICAgICAgICBpZiAoKGklY29sdW1ucykgPT0gY29sdW1ucyAtIDEpCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOyAgICAvLyBsYXN0IGluIGdyaWQKKyAgICAgICAgICAgIGlmIChjb21wb25lbnRzW2ldIGluc3RhbmNlb2YgTGFiZWwpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKCgoTGFiZWwpY29tcG9uZW50c1tpXSkuZ2V0QWxpZ25tZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIExhYmVsLkNFTlRFUjogYy5hbmNob3IgPSBHcmlkQmFnQ29uc3RyYWludHMuQ0VOVEVSOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIExhYmVsLkxFRlQ6IGMuYW5jaG9yID0gR3JpZEJhZ0NvbnN0cmFpbnRzLldFU1Q7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTGFiZWwuUklHSFQ6IGMuYW5jaG9yID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkVBU1Q7IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdyaWRiYWcuc2V0Q29uc3RyYWludHMoY29tcG9uZW50c1tpXSwgYyk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8qKgorICAgIFByb3ZpZGVzIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgc3BhY2luZyBhcm91bmQgYW4gb2JqZWN0IGluIGEgR3JpZEJhZ0xheW91dC4KKyAgICBDYWxsIEFGVEVSIGZpeEdyaWRCYWcsIHBhc3NpbmcgaW4gdGhlIGNvbnRhaW5lciwgdGhlIGNvbXBvbmVudCwgYW5kIHRoZQorICAgIG5ldyBpbnNldHMuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0SW5zZXRzKENvbnRhaW5lciBjb250LCBDb21wb25lbnQgY29tcCwgSW5zZXRzIGluc2V0cykgeworICAgICAgICBHcmlkQmFnTGF5b3V0IGdibCA9IChHcmlkQmFnTGF5b3V0KWNvbnQuZ2V0TGF5b3V0KCk7CisgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBnID0gZ2JsLmdldENvbnN0cmFpbnRzKGNvbXApOworICAgICAgICBnLmluc2V0cyA9IGluc2V0czsKKyAgICAgICAgZ2JsLnNldENvbnN0cmFpbnRzKGNvbXAsZyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBQYW5lbCBjcmVhdGVTcGFjZXIoKSB7CisgICAgICAgIFBhbmVsIHNwYWNlciA9IG5ldyBQYW5lbCgpOworICAgICAgICBzcGFjZXIuc2V0TGF5b3V0KG51bGwpOworICAgICAgICBzcGFjZXIuc2V0U2l6ZSgxMDAwLCAxKTsKKyAgICAgICAgcmV0dXJuIHNwYWNlcjsKKyAgICB9CisKKyAgICAvLyB0byBhdm9pZCBnb29meSB1cGRhdGVzIGFuZCBtaXNwbGFjZWQgY3Vyc29ycworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRUZXh0KFRleHRDb21wb25lbnQgYXJlYSwgU3RyaW5nIG5ld1RleHQpIHsKKyAgICAgICAgU3RyaW5nIGZvbyA9IGFyZWEuZ2V0VGV4dCgpOworICAgICAgICBpZiAoZm9vLmVxdWFscyhuZXdUZXh0KSkgcmV0dXJuOworICAgICAgICBhcmVhLnNldFRleHQobmV3VGV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmVzIHR3byBsb2NhbHMuIFJldHVybiB2YWx1ZSBpcyBuZWdhdGl2ZQorICAgICAqIGlmIHRoZXkncmUgZGlmZmVyZW50LCBhbmQgbW9yZSBwb3NpdGl2ZSB0aGUgbW9yZQorICAgICAqIGZpZWxkcyB0aGF0IG1hdGNoLgorICAgICAqLworICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlTG9jYWxlcyhMb2NhbGUgbDEsIExvY2FsZSBsMikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgCisgICAgICAgIGlmIChsMS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsMi5nZXRMYW5ndWFnZSgpKSkgeworICAgICAgICAgICAgcmVzdWx0ICs9IDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsMS5nZXRDb3VudHJ5KCkuZXF1YWxzKGwyLmdldENvdW50cnkoKSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gMTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobDEuZ2V0VmFyaWFudCgpLmVxdWFscyhsMi5nZXRWYXJpYW50KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBHNyBsb2NhbGUgbGlzdCBmb3IgZGVtb3MuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRHN0xvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVMaXN0OworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBMb2NhbGVbXSBsb2NhbGVMaXN0ID0geworICAgICAgICBuZXcgTG9jYWxlKCJEQSIsICJESyIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRU4iLCAiVVMiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkVOIiwgIkdCIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJFTiIsICJDQSIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRlIiLCAiRlIiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkZSIiwgIkNBIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJERSIsICJERSIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiSVQiLCAiSVQiLCAiIiksCisgICAgLy9uZXcgTG9jYWxlKCJKQSIsICJKUCIsICIiKSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRHVtYlRleHRDb21wb25lbnQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0R1bWJUZXh0Q29tcG9uZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjc5YTQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0R1bWJUZXh0Q29tcG9uZW50LmphdmEKQEAgLTAsMCArMSw3OTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci4qOworCisvLyBMSVU6IENoYW5nZWQgZnJvbSBmaW5hbCB0byBub24tZmluYWwKK3B1YmxpYyBjbGFzcyBEdW1iVGV4dENvbXBvbmVudCBleHRlbmRzIENhbnZhcworICBpbXBsZW1lbnRzIEtleUxpc3RlbmVyLCBNb3VzZUxpc3RlbmVyLCBNb3VzZU1vdGlvbkxpc3RlbmVyLCBGb2N1c0xpc3RlbmVyCisgIHsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9CisgICAgICAiQ29weXJpZ2h0IFx1MDBBOSAxOTk4LCBNYXJrIERhdmlzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGNvbnRlbnRzID0gIiI7CisgICAgcHJpdmF0ZSBTZWxlY3Rpb24gc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOworICAgIHByaXZhdGUgaW50IGFjdGl2ZVN0YXJ0ID0gLTE7CisgICAgcHJpdmF0ZSBib29sZWFuIGVkaXRhYmxlID0gdHJ1ZTsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFNlbGVjdGlvbiB0ZW1wU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gZm9jdXM7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciBsaW5lQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciB3b3JkQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciBjaGFyQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUFzY2VudDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUhlaWdodDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUxlYWRpbmc7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxhc3RIZWlnaHQgPSAxMDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGFzdFdpZHRoID0gNTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9MSU5FUyA9IDIwMDsgLy8gTElVOiBVc2Ugc3ltYm9saWMgbmFtZQorICAgIHByaXZhdGUgdHJhbnNpZW50IGludFtdIGxpbmVTdGFydHMgPSBuZXcgaW50W01BWF9MSU5FU107IC8vIExJVQorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBsaW5lQ291bnQgPSAxOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiB2YWxpZCA9IGZhbHNlOworICAgIHByaXZhdGUgdHJhbnNpZW50IEZvbnRNZXRyaWNzIGZtOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRvdWJsZUNsaWNrID0gZmFsc2U7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgVGV4dExpc3RlbmVyIHRleHRMaXN0ZW5lcjsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBBY3Rpb25MaXN0ZW5lciBzZWxlY3Rpb25MaXN0ZW5lcjsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBJbWFnZSBjYWNoZUltYWdlOworICAgIHByaXZhdGUgdHJhbnNpZW50IERpbWVuc2lvbiBteVNpemU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IHhJbnNldCA9IDU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IHlJbnNldCA9IDU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgUG9pbnQgc3RhcnRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGVuZFBvaW50ID0gbmV3IFBvaW50KCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgUG9pbnQgY2FyZXRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGFjdGl2ZVBvaW50ID0gbmV3IFBvaW50KCk7CisgICAgCisgICAgLy9wcml2YXRlIHRyYW5zaWVudCBzdGF0aWMgU3RyaW5nIGNsaXBCb2FyZDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1IgPSAnXDAxNSc7IC8vIExJVQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyBEdW1iVGV4dENvbXBvbmVudCgpIHsKKyAgICAgICAgYWRkTW91c2VMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkTW91c2VNb3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkS2V5TGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZEZvY3VzTGlzdGVuZXIodGhpcyk7CisgICAgICAgIHNldEN1cnNvcihDdXJzb3IuZ2V0UHJlZGVmaW5lZEN1cnNvcihDdXJzb3IuVEVYVF9DVVJTT1IpKTsKKworICAgIH0KKworLy8gPT09PT09PT09PT09PT09PSBFdmVudHMgPT09PT09PT09PT09PT09PT09PT0KKworICAgIC8vIHB1YmxpYyBib29sZWFuIGlzRm9jdXNUcmF2ZXJzYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEFjdGlvbkxpc3RlbmVyKEFjdGlvbkxpc3RlbmVyIGwpIHsKKyAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIgPSBBV1RFdmVudE11bHRpY2FzdGVyLmFkZChzZWxlY3Rpb25MaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlQWN0aW9uTGlzdGVuZXIoQWN0aW9uTGlzdGVuZXIgbCkgeworICAgICAgICBzZWxlY3Rpb25MaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIucmVtb3ZlKHNlbGVjdGlvbkxpc3RlbmVyLCBsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRUZXh0TGlzdGVuZXIoVGV4dExpc3RlbmVyIGwpIHsKKyAgICAgICAgdGV4dExpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5hZGQodGV4dExpc3RlbmVyLCBsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVUZXh0TGlzdGVuZXIoVGV4dExpc3RlbmVyIGwpIHsKKyAgICAgICAgdGV4dExpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5yZW1vdmUodGV4dExpc3RlbmVyLCBsKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHByZXNzZWQ7CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZVByZXNzZWQiKTsKKyAgICAgICAgaWYgKHByZXNzZWQpIHsKKyAgICAgICAgICAgIHNlbGVjdChlLGZhbHNlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZUNsaWNrID0gZS5nZXRDbGlja0NvdW50KCkgPiAxOworICAgICAgICAgICAgcmVxdWVzdEZvY3VzKCk7CisgICAgICAgICAgICBzZWxlY3QoZSwgdHJ1ZSk7CisgICAgICAgICAgICBwcmVzc2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIm1vdXNlRHJhZ2dlZCIpOworICAgICAgICBzZWxlY3QoZSwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZVJlbGVhc2VkIik7CisgICAgICAgIHByZXNzZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIC8vaWYgKHByZXNzZWQpIHNlbGVjdChlLCBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFeGl0ZWQoTW91c2VFdmVudCBlKXsKKyAgICAgICAgLy9pZiAocHJlc3NlZCkgc2VsZWN0KGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7fQorICAgIHB1YmxpYyB2b2lkIG1vdXNlTW92ZWQoTW91c2VFdmVudCBlKSB7fQorCisKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvY3VzR2FpbmVkIik7CisgICAgICAgIGZvY3VzID0gdHJ1ZTsKKyAgICAgICAgdmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcmVwYWludCgxNik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvY3VzTG9zdCIpOworICAgICAgICBmb2N1cyA9IGZhbHNlOworICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICByZXBhaW50KDE2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoTW91c2VFdmVudCBlLCBib29sZWFuIGZpcnN0KSB7CisgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgcG9pbnQyT2Zmc2V0KGUuZ2V0UG9pbnQoKSwgdGVtcFNlbGVjdGlvbik7CisgICAgICAgIGlmIChmaXJzdCkgeworICAgICAgICAgICAgaWYgKChlLmdldE1vZGlmaWVycygpICYgSW5wdXRFdmVudC5TSElGVF9NQVNLKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5hbmNob3IgPSB0ZW1wU2VsZWN0aW9uLmNhcmV0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGZpeCB3b3JkcworICAgICAgICBpZiAoZG91YmxlQ2xpY2spIHsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uZXhwYW5kKHdvcmRCcmVha2VyKTsKKyAgICAgICAgfQorICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpbnQgY29kZSA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigia2V5UHJlc3NlZCAiCisgICAgICAgICAgKyBoZXgoKGNoYXIpY29kZSkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgIGludCBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgIGJvb2xlYW4gc2hpZnQgPSAoZS5nZXRNb2RpZmllcnMoKSAmIElucHV0RXZlbnQuU0hJRlRfTUFTSykgIT0gMDsKKyAgICAgICAgYm9vbGVhbiBjdHJsID0gKGUuZ2V0TW9kaWZpZXJzKCkgJiBJbnB1dEV2ZW50LkNUUkxfTUFTSykgIT0gMDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgc3dpdGNoIChjb2RlKSB7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUToKKyAgICAgICAgICAgIGlmICghY3RybCB8fCAhZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgZml4SGV4KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19WOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19DOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIGNvcHkoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1g6CisgICAgICAgICAgICBpZiAoIWN0cmwpIGJyZWFrOworICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgeworICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29weSgpOworICAgICAgICAgICAgICAgIGluc2VydFRleHQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQToKKyAgICAgICAgICAgIGlmICghY3RybCkgYnJlYWs7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBzZWxlY3QoSW50ZWdlci5NQVhfVkFMVUUsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24ubmV4dEJvdW5kKGN0cmwgPyB3b3JkQnJlYWtlciA6IGNoYXJCcmVha2VyLCArMSwgc2hpZnQpOworICAgICAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLm5leHRCb3VuZChjdHJsID8gd29yZEJyZWFrZXIgOiBjaGFyQnJlYWtlciwgLTEsIHNoaWZ0KTsKKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOiAvLyBMSVU6IEFkZCBzdXBwb3J0IGZvciB1cCBhcnJvdworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uY2FyZXQgPSBsaW5lRGVsdGEodGVtcFNlbGVjdGlvbi5jYXJldCwgLTEpOworICAgICAgICAgICAgaWYgKCFzaGlmdCkgeworICAgICAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uYW5jaG9yID0gdGVtcFNlbGVjdGlvbi5jYXJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046IC8vIExJVTogQWRkIHN1cHBvcnQgZm9yIGRvd24gYXJyb3cKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmNhcmV0ID0gbGluZURlbHRhKHRlbXBTZWxlY3Rpb24uY2FyZXQsICsxKTsKKyAgICAgICAgICAgIGlmICghc2hpZnQpIHsKKyAgICAgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmFuY2hvciA9IHRlbXBTZWxlY3Rpb24uY2FyZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6IC8vIExJVTogQWRkIGRlbGV0ZSBrZXkgc3VwcG9ydAorICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgYnJlYWs7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoKCkgPT0gMCkgYnJlYWs7CisgICAgICAgICAgICBzdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgZW5kID0gc2VsZWN0aW9uLmdldEVuZCgpOworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IGVuZCkgeworICAgICAgICAgICAgICAgICsrZW5kOworICAgICAgICAgICAgICAgIGlmIChlbmQgPiBjb250ZW50cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBnZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjb3B5KCkgeworICAgICAgICBDbGlwYm9hcmQgY2IgPSB0aGlzLmdldFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKTsKKyAgICAgICAgU3RyaW5nU2VsZWN0aW9uIHNzID0gbmV3IFN0cmluZ1NlbGVjdGlvbigKKyAgICAgICAgICAgIGNvbnRlbnRzLnN1YnN0cmluZyhzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgc2VsZWN0aW9uLmdldEVuZCgpKSk7CisgICAgICAgIGNiLnNldENvbnRlbnRzKHNzLCBzcyk7CisgICAgfQorICAgIAorICAgIHZvaWQgcGFzdGUgKCkgeworICAgICAgICBDbGlwYm9hcmQgY2IgPSB0aGlzLmdldFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKTsKKyAgICAgICAgVHJhbnNmZXJhYmxlIHQgPSBjYi5nZXRDb250ZW50cyh0aGlzKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5nZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IChTdHJpbmcpIHQuZ2V0VHJhbnNmZXJEYXRhKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKTsKKyAgICAgICAgICAgIGluc2VydFRleHQodGVtcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMSVU6IEdpdmVuIGFuIG9mZnNldCBpbnRvIGNvbnRlbnRzLCBtb3ZlcyB1cCBvciBkb3duIGJ5IGxpbmVzLAorICAgICAqIGFjY29yZGluZyB0byBsaW5lU3RhcnRzW10uCisgICAgICogQHBhcmFtIG9mZiB0aGUgb2Zmc2V0IGludG8gY29udGVudHMKKyAgICAgKiBAcGFyYW0gZGVsdGEgaG93IG1hbnkgbGluZXMgdG8gbW92ZSB1cCAoPCAwKSBvciBkb3duICg+IDApCisgICAgICogQHJldHVybiB0aGUgbmV3IG9mZnNldCBpbnRvIGNvbnRlbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZURlbHRhKGludCBvZmYsIGludCBkZWx0YSkgeworICAgICAgICBpbnQgbGluZSA9IGZpbmRMaW5lKG9mZiwgZmFsc2UpOworICAgICAgICBpbnQgcG9zSW5MaW5lID0gb2ZmIC0gbGluZVN0YXJ0c1tsaW5lXTsKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJvZmY9IiArIG9mZiArICIgYXQgIiArIGxpbmUgKyAiOiIgKyBwb3NJbkxpbmUpOworICAgICAgICBsaW5lICs9IGRlbHRhOworICAgICAgICBpZiAobGluZSA8IDApIHsKKyAgICAgICAgICAgIGxpbmUgPSBwb3NJbkxpbmUgPSAwOworICAgICAgICB9IGVsc2UgaWYgKGxpbmUgPj0gbGluZUNvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gY29udGVudHMubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgb2ZmID0gbGluZVN0YXJ0c1tsaW5lXSArIHBvc0luTGluZTsKKyAgICAgICAgaWYgKG9mZiA+PSBsaW5lU3RhcnRzW2xpbmUrMV0pIHsKKyAgICAgICAgICAgIG9mZiA9IGxpbmVTdGFydHNbbGluZSsxXSAtIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZjsKKyAgICB9CisgICAgICAKKyAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGludCBjb2RlID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJrZXlSZWxlYXNlZCAiCisgICAgICAgICAgKyBoZXgoKGNoYXIpY29kZSkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGNoYXIgY2ggPSBlLmdldEtleUNoYXIoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleVR5cGVkICIKKyAgICAgICAgICArIGhleCgoY2hhciljaCkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICAgICAgaWYgKChlLmdldE1vZGlmaWVycygpICYgSW5wdXRFdmVudC5DVFJMX01BU0spICE9IDApIHJldHVybjsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5DSEFSX1VOREVGSU5FRDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0U6CisgICAgICAgICAgICAvL3NldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCgpID09IDApIGJyZWFrOworICAgICAgICAgICAgc3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAtLXN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VG9vbGtpdCgpLmJlZXAoKTsgLy8gTElVOiBBZGQgYXVkaW8gZmVlZGJhY2sgb2YgTk9QCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlUmFuZ2UoIiIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7ICAgICAgICAKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6CisgICAgICAgICAgICAvL3NldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCgpID09IDApIGJyZWFrOworICAgICAgICAgICAgc3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICArK2VuZDsKKyAgICAgICAgICAgICAgICBpZiAoZW5kID4gY29udGVudHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VG9vbGtpdCgpLmJlZXAoKTsgLy8gTElVOiBBZGQgYXVkaW8gZmVlZGJhY2sgb2YgTk9QCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlUmFuZ2UoIiIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIC8vIExJVTogRGlzcGF0Y2ggdG8gc3ViY2xhc3MgQVBJCisgICAgICAgICAgICBoYW5kbGVLZXlUeXBlZChlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gTElVOiBTdWJjbGFzcyBBUEkgZm9yIGhhbmRsaW5nIG9mIGtleSB0eXBpbmcKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVLZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGluc2VydFRleHQoU3RyaW5nLnZhbHVlT2YoZS5nZXRLZXlDaGFyKCkpKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0S2V5U3RhcnQoaW50IGtleVN0YXJ0KSB7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCAhPSBrZXlTdGFydCkgeworICAgICAgICAgICAgYWN0aXZlU3RhcnQgPSBrZXlTdGFydDsKKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHZhbGlkYXRlS2V5U3RhcnQoKSB7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCA+IHNlbGVjdGlvbi5nZXRTdGFydCgpKSB7CisgICAgICAgICAgICBhY3RpdmVTdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgcmVwYWludCgxMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGludCBnZXRLZXlTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGFjdGl2ZVN0YXJ0OworICAgIH0KKworLy8gPT09PT09PT09PT09PT09PT09PT09IENvbnRyb2wgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldEVkaXRhYmxlKGJvb2xlYW4gYikgeworICAgICAgICBlZGl0YWJsZSA9IGI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNFZGl0YWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGVkaXRhYmxlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKSB7CisgICAgICAgIG5ld1NlbGVjdGlvbi5waW4oY29udGVudHMpOworICAgICAgICBpZiAoIXNlbGVjdGlvbi5lcXVhbHMobmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgc2VsZWN0aW9uLnNldChuZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaXN0ZW5lci5hY3Rpb25QZXJmb3JtZWQoCisgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXZlbnQodGhpcywgQWN0aW9uRXZlbnQuQUNUSU9OX1BFUkZPUk1FRCwKKyAgICAgICAgICAgICAgICAgICAgIlNlbGVjdGlvbiBDaGFuZ2VkIiwgMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwYWludCgxMCk7CisgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBzZWxlY3Qoc3RhcnQsIGVuZCwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc3RhcnQsIGludCBlbmQsIGJvb2xlYW4gY2xpY2tBZnRlcikgeworICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzdGFydCwgZW5kLCBjbGlja0FmdGVyKTsKKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCb3VuZHMoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpIHsKKyAgICAgICAgc3VwZXIuc2V0Qm91bmRzKHgseSx3LGgpOworICAgICAgICByZWRvTGluZXMgPSB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24obGFzdFdpZHRoLGxhc3RIZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWF4aW11bVNpemUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKGxhc3RXaWR0aCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbihsYXN0SGVpZ2h0LGxhc3RIZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgc2V0VGV4dDIodGV4dCk7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pLnBpbihjb250ZW50cykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQyKFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGNvbnRlbnRzID0gdGV4dDsKKyAgICAgICAgY2hhckJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgd29yZEJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgbGluZUJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKHRleHRMaXN0ZW5lciAhPSBudWxsKQorICAgICAgICAgICAgdGV4dExpc3RlbmVyLnRleHRWYWx1ZUNoYW5nZWQoCisgICAgICAgICAgICAgIG5ldyBUZXh0RXZlbnQodGhpcywgVGV4dEV2ZW50LlRFWFRfVkFMVUVfQ0hBTkdFRCkpOworICAgICAgICByZXBhaW50KDE2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCA9PSAtMSkgYWN0aXZlU3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgcmVwbGFjZVJhbmdlKHRleHQsIHNlbGVjdGlvbi5nZXRTdGFydCgpLCBzZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShTdHJpbmcgcywgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHNldFRleHQyKGNvbnRlbnRzLnN1YnN0cmluZygwLHN0YXJ0KSArIHMKKyAgICAgICAgICArIGNvbnRlbnRzLnN1YnN0cmluZyhlbmQpKTsKKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbikuCisgICAgICAgICAgZml4QWZ0ZXJSZXBsYWNlKHN0YXJ0LCBlbmQsIHMubGVuZ3RoKCkpKTsKKyAgICAgICAgdmFsaWRhdGVLZXlTdGFydCgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZvbnQoRm9udCBmb250KSB7CisgICAgICAgIHN1cGVyLnNldEZvbnQoZm9udCk7CisgICAgICAgIHJlZG9MaW5lcyA9IHRydWU7CisgICAgICAgIHJlcGFpbnQoMTYpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PSBHcmFwaGljcyA9PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwdWJsaWMgdm9pZCB1cGRhdGUoR3JhcGhpY3MgZykgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigidXBkYXRlIik7CisgICAgICAgIHBhaW50KGcpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgbXlTaXplID0gZ2V0U2l6ZSgpOworICAgICAgICBpZiAoY2FjaGVJbWFnZSA9PSBudWxsCisgICAgICAgICAgfHwgY2FjaGVJbWFnZS5nZXRIZWlnaHQodGhpcykgIT0gbXlTaXplLmhlaWdodAorICAgICAgICAgIHx8IGNhY2hlSW1hZ2UuZ2V0V2lkdGgodGhpcykgIT0gbXlTaXplLndpZHRoKSB7CisgICAgICAgICAgICBjYWNoZUltYWdlID0gY3JlYXRlSW1hZ2UobXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0KTsKKyAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF2YWxpZCB8fCByZWRvTGluZXMpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJwYWludGluZyIpOworICAgICAgICAgICAgcGFpbnQyKGNhY2hlSW1hZ2UuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgICAgICB2YWxpZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy9nZXRUb29sa2l0KCkuc3luYygpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiY29weWluZyIpOworICAgICAgICBnLmRyYXdJbWFnZShjYWNoZUltYWdlLAorICAgICAgICAgIDAsIDAsIG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCwKKyAgICAgICAgICAwLCAwLCBteVNpemUud2lkdGgsIG15U2l6ZS5oZWlnaHQsCisgICAgICAgICAgdGhpcyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcGFpbnQyKEdyYXBoaWNzIGcpIHsKKyAgICAgICAgZy5jbGVhclJlY3QoMCwgMCwgbXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0KTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInByaW50Iik7CisgICAgICAgIGlmIChmb2N1cykgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGVsc2UgZy5zZXRDb2xvcihDb2xvci5ncmF5KTsKKyAgICAgICAgZy5kcmF3UmVjdCgwLDAsbXlTaXplLndpZHRoLTEsbXlTaXplLmhlaWdodC0xKTsKKyAgICAgICAgZy5zZXRDbGlwKDEsMSwKKyAgICAgICAgICBteVNpemUud2lkdGgtMixteVNpemUuaGVpZ2h0LTIpOworICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZy5zZXRGb250KGdldEZvbnQoKSk7CisgICAgICAgIGZtID0gZy5nZXRGb250TWV0cmljcygpOworICAgICAgICBsaW5lQXNjZW50ID0gZm0uZ2V0QXNjZW50KCk7CisgICAgICAgIGxpbmVMZWFkaW5nID0gZm0uZ2V0TGVhZGluZygpOworICAgICAgICBsaW5lSGVpZ2h0ID0gbGluZUFzY2VudCArIGZtLmdldERlc2NlbnQoKSArIGxpbmVMZWFkaW5nOworICAgICAgICBpbnQgeSA9IHlJbnNldCArIGxpbmVBc2NlbnQ7CisgICAgICAgIFN0cmluZyBsYXN0U3Vic3RyaW5nID0gIiI7CisgICAgICAgIGlmIChyZWRvTGluZXMpIGZpeExpbmVTdGFydHMobXlTaXplLndpZHRoLXhJbnNldC14SW5zZXQpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbmVDb3VudDsgeSArPSBsaW5lSGVpZ2h0LCArK2kpIHsKKyAgICAgICAgICAgIC8vIExJVTogRG9uJ3QgZGlzcGxheSB0ZXJtaW5hdGluZyBeTSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpbnQgbGltID0gbGluZVN0YXJ0c1tpKzFdOworICAgICAgICAgICAgaWYgKGxpbSA+IDAgJiYgY29udGVudHMubGVuZ3RoKCkgPiAwICYmCisgICAgICAgICAgICAgICAgY29udGVudHMuY2hhckF0KGxpbS0xKSA9PSBDUikgLS1saW07CisgICAgICAgICAgICBsYXN0U3Vic3RyaW5nID0gY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbaV0sbGltKTsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyhsYXN0U3Vic3RyaW5nLCB4SW5zZXQsIHkpOworICAgICAgICB9CisgICAgICAgIGRyYXdTZWxlY3Rpb24oZywgbGFzdFN1YnN0cmluZyk7CisgICAgICAgIGxhc3RIZWlnaHQgPSB5ICsgeUluc2V0IC0gbGluZUhlaWdodCArIHlJbnNldDsKKyAgICAgICAgbGFzdFdpZHRoID0gbXlTaXplLndpZHRoLXhJbnNldC14SW5zZXQ7CisgICAgfQorCisgICAgdm9pZCBwYWludFJlY3QoR3JhcGhpY3MgZywgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpIHsKKyAgICAgICAgaWYgKGZvY3VzKSB7CisgICAgICAgICAgICBnLmZpbGxSZWN0KHgsIHksIHcsIGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZy5kcmF3UmVjdCh4LCB5LCB3LTEsIGgtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkcmF3U2VsZWN0aW9uKEdyYXBoaWNzIGcsIFN0cmluZyBsYXN0U3Vic3RyaW5nKSB7CisgICAgICAgIGcuc2V0WE9STW9kZShDb2xvci5ibGFjayk7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCAhPSAtMSkgeworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KGFjdGl2ZVN0YXJ0LCBmYWxzZSwgYWN0aXZlUG9pbnQpOworICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci5tYWdlbnRhKTsKKyAgICAgICAgICAgIGludCBsaW5lID0gYWN0aXZlUG9pbnQueCAtIDE7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGxpbmUsIGFjdGl2ZVBvaW50LnksIDEsIGxpbmVIZWlnaHQpOworICAgICAgICB9CisgICAgICAgIGlmIChzZWxlY3Rpb24uaXNDYXJldCgpKSB7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmNhcmV0LCBzZWxlY3Rpb24uY2xpY2tBZnRlciwgY2FyZXRQb2ludCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuYmx1ZSk7CisgICAgICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IueWVsbG93KTsKKyAgICAgICAgICAgIG9mZnNldDJQb2ludChzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgdHJ1ZSwgc3RhcnRQb2ludCk7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmdldEVuZCgpLCBmYWxzZSwgZW5kUG9pbnQpOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi5nZXRTdGFydCgpID09IHNlbGVjdGlvbi5jYXJldCkKKyAgICAgICAgICAgICAgICBjYXJldFBvaW50LnNldExvY2F0aW9uKHN0YXJ0UG9pbnQpOworICAgICAgICAgICAgZWxzZSBjYXJldFBvaW50LnNldExvY2F0aW9uKGVuZFBvaW50KTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvaW50LnkgPT0gZW5kUG9pbnQueSkgeworICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCBzdGFydFBvaW50LngsIHN0YXJ0UG9pbnQueSwKKyAgICAgICAgICAgICAgICAgIE1hdGgubWF4KDEsZW5kUG9pbnQueC1zdGFydFBvaW50LngpLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHN0YXJ0UG9pbnQueCwgc3RhcnRQb2ludC55LAorICAgICAgICAgICAgICAgICAgKG15U2l6ZS53aWR0aC14SW5zZXQpLXN0YXJ0UG9pbnQueCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQueSArIGxpbmVIZWlnaHQgPCBlbmRQb2ludC55KQorICAgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHhJbnNldCwgc3RhcnRQb2ludC55ICsgbGluZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgIChteVNpemUud2lkdGgteEluc2V0KS14SW5zZXQsIGVuZFBvaW50LnkgLSBzdGFydFBvaW50LnkgLSBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBwYWludFJlY3QoZywgeEluc2V0LCBlbmRQb2ludC55LCBlbmRQb2ludC54LXhJbnNldCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvY3VzIHx8IHNlbGVjdGlvbi5pc0NhcmV0KCkpIHsKKyAgICAgICAgICAgIGlmIChmb2N1cykgZy5zZXRDb2xvcihDb2xvci5ncmVlbik7CisgICAgICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IucmVkKTsKKyAgICAgICAgICAgIGludCBsaW5lID0gY2FyZXRQb2ludC54IC0gKHNlbGVjdGlvbi5jbGlja0FmdGVyID8gMCA6IDEpOworICAgICAgICAgICAgZy5maWxsUmVjdChsaW5lLCBjYXJldFBvaW50LnksIDEsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgaW50IHcgPSBsaW5lSGVpZ2h0LzEyICsgMTsKKyAgICAgICAgICAgIGludCBicmFjZXMgPSBsaW5lIC0gKHNlbGVjdGlvbi5jbGlja0FmdGVyID8gLTEgOiB3KTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoYnJhY2VzLCBjYXJldFBvaW50LnksIHcsIDEpOworICAgICAgICAgICAgZy5maWxsUmVjdChicmFjZXMsIGNhcmV0UG9pbnQueSArIGxpbmVIZWlnaHQgLSAxLCB3LCAxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBQb2ludCBvZmZzZXQyUG9pbnQoaW50IG9mZiwgYm9vbGVhbiBzdGFydCwgUG9pbnQgcCkgeworICAgICAgICBpbnQgbGluZSA9IGZpbmRMaW5lKG9mZiwgc3RhcnQpOworICAgICAgICBpbnQgd2lkdGggPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgd2lkdGggPSBmbS5zdHJpbmdXaWR0aCgKKyAgICAgICAgICAgICAgY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0sIG9mZikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgICAgIHAueCA9IHdpZHRoICsgeEluc2V0OworICAgICAgICBpZiAocC54ID4gbXlTaXplLndpZHRoIC0geEluc2V0KQorICAgICAgICAgICAgcC54ID0gbXlTaXplLndpZHRoIC0geEluc2V0OworICAgICAgICBwLnkgPSBsaW5lSGVpZ2h0ICogbGluZSArIHlJbnNldDsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZmluZExpbmUoaW50IG9mZiwgYm9vbGVhbiBzdGFydCkgeworICAgICAgICAvLyBpZiBpdCBpcyBzdGFydCwgdGhlbiBnbyB0byB0aGUgbmV4dCBsaW5lIQorICAgICAgICBpZiAoc3RhcnQpICsrb2ZmOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGxpbmVDb3VudDsgKytpKSB7CisgICAgICAgICAgICAvLyBMSVU6IFRoaXMgd2FzIDw9IDsgY2hhbmdlZCB0byA8IHRvIG1ha2UgY2FyZXQgYWZ0ZXIKKyAgICAgICAgICAgIC8vIGZpbmFsIENSIGluIGxpbmUgYXBwZWFyIGF0IFNUQVJUIG9mIG5leHQgbGluZS4KKyAgICAgICAgICAgIGlmIChvZmYgPCBsaW5lU3RhcnRzW2ldKSByZXR1cm4gaS0xOworICAgICAgICB9CisgICAgICAgIC8vIExJVTogQ2hlY2sgZm9yIHNwZWNpYWwgY2FzZTsgYWZ0ZXIgQ1IgYXQgZW5kIG9mIHRoZSBsYXN0IGxpbmUKKyAgICAgICAgaWYgKG9mZiA9PSBsaW5lU3RhcnRzW2xpbmVDb3VudF0gJiYKKyAgICAgICAgICAgIG9mZiA+IDAgJiYgY29udGVudHMubGVuZ3RoKCkgPiAwICYmIGNvbnRlbnRzLmNoYXJBdChvZmYtMSkgPT0gQ1IpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmVDb3VudC0xOworICAgIH0KKworICAgIC8vIG9mZnNldHMgb24gYW55IGxpbmUgd2lsbCBnbyBmcm9tIHN0YXJ0LHRydWUgdG8gZW5kLGZhbHNlCisgICAgLy8gZXhjbHVkaW5nIHN0YXJ0LGZhbHNlIGFuZCBlbmQsdHJ1ZQorICAgIHB1YmxpYyBTZWxlY3Rpb24gcG9pbnQyT2Zmc2V0KFBvaW50IHAsIFNlbGVjdGlvbiBvKSB7CisgICAgICAgIGlmIChwLnkgPCB5SW5zZXQpIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSAwOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCBsaW5lID0gKHAueSAtIHlJbnNldCkvbGluZUhlaWdodDsKKyAgICAgICAgaWYgKGxpbmUgPj0gbGluZUNvdW50KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gY29udGVudHMubGVuZ3RoKCk7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCB0YXJnZXQgPSBwLnggLSB4SW5zZXQ7CisgICAgICAgIGlmICh0YXJnZXQgPD0gMCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxpbmVTdGFydHNbbGluZV07CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgaW50IGxvd0d1ZXNzID0gbGluZVN0YXJ0c1tsaW5lXTsKKyAgICAgICAgaW50IGxvd1dpZHRoID0gMDsKKyAgICAgICAgaW50IGhpZ2hHdWVzcyA9IGxpbmVTdGFydHNbbGluZSsxXTsKKyAgICAgICAgaW50IGhpZ2hXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGhpZ2hHdWVzcykpOworICAgICAgICBpZiAodGFyZ2V0ID49IGhpZ2hXaWR0aCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxpbmVTdGFydHNbbGluZSsxXTsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGxvd0d1ZXNzIDwgaGlnaEd1ZXNzIC0gMSkgeworICAgICAgICAgICAgaW50IGd1ZXNzID0gKGxvd0d1ZXNzICsgaGlnaEd1ZXNzKS8yOworICAgICAgICAgICAgaW50IHdpZHRoID0gZm0uc3RyaW5nV2lkdGgoY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0sZ3Vlc3MpKTsKKyAgICAgICAgICAgIGlmICh3aWR0aCA8PSB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBsb3dHdWVzcyA9IGd1ZXNzOworICAgICAgICAgICAgICAgIGxvd1dpZHRoID0gd2lkdGg7CisgICAgICAgICAgICAgICAgaWYgKHdpZHRoID09IHRhcmdldCkgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGhpZ2hHdWVzcyA9IGd1ZXNzOworICAgICAgICAgICAgICAgIGhpZ2hXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGF0IGVuZCwgZWl0aGVyIGxvd1dpZHRoIDwgdGFyZ2V0IDwgd2lkdGgobG93KzEpLCBvciBsb3dXaWR0aCA9IHRhcmdldAorICAgICAgICBpbnQgaGlnaEJvdW5kID0gY2hhckJyZWFrZXIuZm9sbG93aW5nKGxvd0d1ZXNzKTsKKyAgICAgICAgaW50IGxvd0JvdW5kID0gY2hhckJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgLy8gd2UgYXJlIG5vdyBhdCBjaGFyYWN0ZXIgYm91bmRhcmllcworICAgICAgICBpZiAobG93Qm91bmQgIT0gbG93R3Vlc3MpCisgICAgICAgICAgICBsb3dXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGxvd0JvdW5kKSk7CisgICAgICAgIGlmIChoaWdoQm91bmQgIT0gaGlnaEd1ZXNzKQorICAgICAgICAgICAgaGlnaFdpZHRoID0gZm0uc3RyaW5nV2lkdGgoY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0saGlnaEJvdW5kKSk7CisgICAgICAgIC8vIHdlIG5vdyBoYXZlIHRoZSByaWdodCB3aWR0aHMKKyAgICAgICAgaWYgKHRhcmdldCAtIGxvd1dpZHRoIDwgaGlnaFdpZHRoIC0gdGFyZ2V0KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gbG93Qm91bmQ7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgby5jYXJldCA9IGhpZ2hCb3VuZDsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHdlIG5vdyBoYXZlIHRoZSBjbG9zZXN0IQorICAgICAgICByZXR1cm4gbzsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZml4TGluZVN0YXJ0cyhpbnQgd2lkdGgpIHsKKyAgICAgICAgbGluZUNvdW50ID0gMTsKKyAgICAgICAgbGluZVN0YXJ0c1swXSA9IDA7CisgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBsaW5lU3RhcnRzWzFdID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgZW5kID0gMDsKKyAgICAgICAgLy8gTElVOiBBZGQgY2hlY2sgZm9yIE1BWF9MSU5FUworICAgICAgICBmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDwgY29udGVudHMubGVuZ3RoKCkgJiYgbGluZUNvdW50IDwgTUFYX0xJTkVTOworICAgICAgICAgICAgIHN0YXJ0ID0gZW5kKSB7CisgICAgICAgICAgICBlbmQgPSBuZXh0TGluZShmbSwgc3RhcnQsIHdpZHRoKTsKKyAgICAgICAgICAgIGxpbmVTdGFydHNbbGluZUNvdW50KytdID0gZW5kOworICAgICAgICAgICAgaWYgKGVuZCA9PSBzdGFydCkgeyAvLyBMSVU6IEFzc2VydGlvbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJuZXh0TGluZSBicm9rZW4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAtLWxpbmVDb3VudDsKKyAgICAgICAgcmVkb0xpbmVzID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gTElVOiBFbmhhbmNlZCB0byB3cmFwIGxvbmcgbGluZXMuICBCdWcgd2l0aCByZXR1cm4gb2Ygc3RhcnQgZml4ZWQuCisgICAgcHVibGljIGludCBuZXh0TGluZShGb250TWV0cmljcyBmbSwgaW50IHN0YXJ0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgaW50IGxlbiA9IGNvbnRlbnRzLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGxpbmUgc2VwYXJhdG9yCisgICAgICAgICAgICBjaGFyIGNoID0gKGNvbnRlbnRzLmNoYXJBdChpKSk7CisgICAgICAgICAgICBpZiAoY2ggPj0gMHgwMDBBICYmIGNoIDw9IDB4MDAwRCB8fCBjaCA9PSAweDIwMjggfHwgY2ggPT0gMHgyMDI5KSB7CisgICAgICAgICAgICAgICAgbGVuID0gaSArIDE7CisgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAwRCAmJiBpKzEgPCBsZW4gJiYgY29udGVudHMuY2hhckF0KGkrMSkgPT0gMHgwMDBBKSAvLyBjcmxmCisgICAgICAgICAgICAgICAgICAgICsrbGVuOyAvLyBncmFiIGV4dHJhIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgc3ViamVjdCA9IGNvbnRlbnRzLnN1YnN0cmluZyhzdGFydCxsZW4pOworICAgICAgICBpZiAodmlzaWJsZVdpZHRoKGZtLCBzdWJqZWN0KSA8PSB3aWR0aCkKKyAgICAgICAgICByZXR1cm4gbGVuOworCisgICAgICAgIC8vIExJVTogUmVtYWluZGVyIG9mIHRoaXMgbWV0aG9kIHJld3JpdHRlbiB0byBhY2NvbW9kYXRlIGxpbmVzCisgICAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSBjb21wb25lbnQgd2lkdGggYnkgZmlyc3QgdHJ5aW5nIHRvIGJyZWFrCisgICAgICAgIC8vIGludG8gbGluZXM7IHRoZW4gd29yZHM7IGZpbmFsbHkgY2hhcnMuCisgICAgICAgIGludCBuID0gZmluZEZpdHRpbmdCcmVhayhmbSwgc3ViamVjdCwgd2lkdGgsIGxpbmVCcmVha2VyKTsKKyAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCB3b3JkQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCBjaGFyQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG4gPiAwID8gc3RhcnQgKyBuIDogbGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIExJVTogRmluZHMgdGhlIGxvbmdlc3Qgc3Vic3RyaW5nIHRoYXQgZml0cyBhIGdpdmVuIHdpZHRoCisgICAgICogY29tcG9zZWQgb2Ygc3VidW5pdHMgcmV0dXJuZWQgYnkgYSBCcmVha0l0ZXJhdG9yLiAgSWYgdGhlIHNtYWxsZXN0CisgICAgICogc3VidW5pdCBpcyB0b28gbG9uZywgcmV0dXJucyAwLgorICAgICAqIEBwYXJhbSBmbSBtZXRyaWNzIHRvIHVzZQorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBzdHJpbmcgdG8gYmUgZml4IGludG8gd2lkdGgKKyAgICAgKiBAcGFyYW0gd2lkdGggbGluZS5zdWJzdHJpbmcoMCwgcmVzdWx0KSBtdXN0IGJlIDw9IHdpZHRoCisgICAgICogQHBhcmFtIGJyZWFrZXIgdGhlIEJyZWFrSXRlcmF0b3IgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZmluZCBzdWJ1bml0cworICAgICAqIEByZXR1cm4gbWF4aW11bSBjaGFyYWN0ZXJzLCBhdCBib3VuZGFyaWVzIHJldHVybmVkIGJ5IGJyZWFrZXIsCisgICAgICogdGhhdCBmaXQgaW50byB3aWR0aCwgb3IgemVybyBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluZEZpdHRpbmdCcmVhayhGb250TWV0cmljcyBmbSwgU3RyaW5nIGxpbmUsIGludCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlcikgeworICAgICAgICBicmVha2VyLnNldFRleHQobGluZSk7CisgICAgICAgIGludCBsYXN0ID0gYnJlYWtlci5maXJzdCgpOworICAgICAgICBpbnQgZW5kID0gYnJlYWtlci5uZXh0KCk7CisgICAgICAgIHdoaWxlIChlbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmCisgICAgICAgICAgICAgICB2aXNpYmxlV2lkdGgoZm0sIGxpbmUuc3Vic3RyaW5nKDAsIGVuZCkpIDw9IHdpZHRoKSB7CisgICAgICAgICAgICBsYXN0ID0gZW5kOworICAgICAgICAgICAgZW5kID0gYnJlYWtlci5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3Q7CisgICAgfQorCisgICAgcHVibGljIGludCB2aXNpYmxlV2lkdGgoRm9udE1ldHJpY3MgZm0sIFN0cmluZyBzKSB7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGkgPSBzLmxlbmd0aCgpLTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoIShjaCA9PSAnICcgfHwgY2ggPj0gMHgwMDBBICYmIGNoIDw9IDB4MDAwRCB8fCBjaCA9PSAweDIwMjggfHwgY2ggPT0gMHgyMDI5KSkKKyAgICAgICAgICAgIAlyZXR1cm4gZm0uc3RyaW5nV2lkdGgocy5zdWJzdHJpbmcoMCxpKzEpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PSBVdGlsaXR5ID09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZml4SGV4KCkgeworICAgICAgICBpZiAoc2VsZWN0aW9uLmdldEVuZCgpID09IDApIHJldHVybjsKKyAgICAgICAgaW50IHN0b3JlID0gMDsKKyAgICAgICAgaW50IHBsYWNlcyA9IDE7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCBtaW4gPSBNYXRoLm1pbig4LHNlbGVjdGlvbi5nZXRFbmQoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjb250ZW50cy5jaGFyQXQoc2VsZWN0aW9uLmdldEVuZCgpLTEtaSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiAxNSkgYnJlYWs7CisgICAgICAgICAgICBzdG9yZSArPSBwbGFjZXMgKiB2YWx1ZTsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICBwbGFjZXMgKj0gMTY7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGFkZCA9ICIiOworICAgICAgICBpbnQgYm90dG9tID0gc3RvcmUgJiAweEZGRkY7CisgICAgICAgIGlmIChzdG9yZSA+PSAweEQ4MDAwMDAwICYmIHN0b3JlIDwgMHhEQzAwMDAwMAorICAgICAgICAgICYmIGJvdHRvbSA+PSAweERDMDAgJiYgYm90dG9tIDwgMHhFMDAwKSB7IC8vIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgIGFkZCA9ICIiICsgKGNoYXIpKHN0b3JlID4+IDE2KSArIChjaGFyKWJvdHRvbTsKKyAgICAgICAgfSBlbHNlIGlmIChzdG9yZSA+IDB4RkZGRiAmJiBzdG9yZSA8PSAweDEwRkZGRikgeworICAgICAgICAgICAgc3RvcmUgLT0gMHgxMDAwMDsKKyAgICAgICAgICAgIGFkZCA9ICIiICsgKGNoYXIpKCgoc3RvcmUgPj4gMTApICYgMHgzRkYpICsgMHhEODAwKQorICAgICAgICAgICAgICArIChjaGFyKSgoc3RvcmUgJiAweDNGRikgKyAweERDMDApOworICAgICAgICAgICAgICAKKyAgICAgICAgfSBlbHNlIGlmIChjb3VudCA+PSA0KSB7CisgICAgICAgICAgICBjb3VudCA9IDQ7CisgICAgICAgICAgICBhZGQgPSAiIisoY2hhcikoc3RvcmUgJiAweEZGRkYpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgY2hhciBjaCA9IGNvbnRlbnRzLmNoYXJBdChzZWxlY3Rpb24uZ2V0RW5kKCktMSk7CisgICAgICAgICAgICBhZGQgPSBoZXgoY2gpOworICAgICAgICAgICAgaWYgKGNoID49IDB4REMwMCAmJiBjaCA8PSAweERGRkYgJiYgc2VsZWN0aW9uLmdldEVuZCgpID4gMSkgeworICAgICAgICAgICAgICAgIGNoID0gY29udGVudHMuY2hhckF0KHNlbGVjdGlvbi5nZXRFbmQoKS0yKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REJGRikgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGFkZCA9IGhleChjaCkgKyBhZGQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcGxhY2VSYW5nZShhZGQsIHNlbGVjdGlvbi5nZXRFbmQoKS1jb3VudCwgc2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmVzdWx0ID0gIjAwMDAiLnN1YnN0cmluZyhyZXN1bHQubGVuZ3RoKCksNCkgKyByZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9TZWxlY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjgwYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CitpbXBvcnQgamF2YS50ZXh0Lio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTZWxlY3Rpb24geworCisgICAgcHVibGljIGludCBhbmNob3I7CisgICAgcHVibGljIGludCBjYXJldDsKKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlja0FmdGVyOworCisgICAgcHVibGljIGludCBnZXRTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGFuY2hvciA8IGNhcmV0ID8gYW5jaG9yIDogY2FyZXQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRFbmQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPiBjYXJldCA/IGFuY2hvciA6IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ2FyZXQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPT0gY2FyZXQ7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBzZXQoU2VsZWN0aW9uIG90aGVyKSB7CisgICAgICAgIGFuY2hvciA9IG90aGVyLmFuY2hvcjsKKyAgICAgICAgY2FyZXQgPSBvdGhlci5jYXJldDsKKyAgICAgICAgY2xpY2tBZnRlciA9IG90aGVyLmNsaWNrQWZ0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc2V0KGludCBhbmNob3IsIGludCBjYXJldCwgYm9vbGVhbiBjbGlja0FmdGVyKSB7CisgICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yOworICAgICAgICB0aGlzLmNhcmV0ID0gY2FyZXQ7CisgICAgICAgIHRoaXMuY2xpY2tBZnRlciA9IGNsaWNrQWZ0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgU2VsZWN0aW9uIG90aGVyMiA9IChTZWxlY3Rpb24pb3RoZXI7CisgICAgICAgIHJldHVybiBhbmNob3IgPT0gb3RoZXIyLmFuY2hvcgorICAgICAgICAgICYmIGNhcmV0ID09IG90aGVyMi5jYXJldAorICAgICAgICAgICYmIGNsaWNrQWZ0ZXIgPT0gb3RoZXIyLmNsaWNrQWZ0ZXI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNMZXNzVGhhbihTZWxlY3Rpb24gb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0YXJ0KCkgPCBvdGhlci5nZXRFbmQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHBpbihTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAoYW5jaG9yID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgYW5jaG9yID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhbmNob3IgPCAwKSB7CisgICAgICAgICAgICBhbmNob3IgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChjYXJldCA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGNhcmV0ID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKGNhcmV0IDwgMCkgeworICAgICAgICAgICAgY2FyZXQgPSAwOworICAgICAgICAgICAgY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc3dhcChTZWxlY3Rpb24gYWZ0ZXIpIHsKKyAgICAgICAgaW50IHRlbXAgPSBhbmNob3I7CisgICAgICAgIGFuY2hvciA9IGFmdGVyLmFuY2hvcjsKKyAgICAgICAgYWZ0ZXIuYW5jaG9yID0gdGVtcDsKKyAgICAgICAgdGVtcCA9IGNhcmV0OworICAgICAgICBjYXJldCA9IGFmdGVyLmNhcmV0OworICAgICAgICBhZnRlci5jYXJldCA9IHRlbXA7CisgICAgICAgIGJvb2xlYW4gYiA9IGNsaWNrQWZ0ZXI7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBhZnRlci5jbGlja0FmdGVyOworICAgICAgICBhZnRlci5jbGlja0FmdGVyID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBmaXhBZnRlclJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBpbnQgbGVuKSB7CisgICAgICAgIGlmIChhbmNob3IgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChhbmNob3IgPCBlbmQpIGFuY2hvciA9IGVuZDsKKyAgICAgICAgICAgIGFuY2hvciA9IHN0YXJ0ICsgbGVuICsgYW5jaG9yIC0gZW5kOworICAgICAgICB9CisgICAgICAgIGlmIChjYXJldCA+PSBzdGFydCkgeworICAgICAgICAgICAgaWYgKGNhcmV0IDwgZW5kKSBjYXJldCA9IGVuZDsKKyAgICAgICAgICAgIGNhcmV0ID0gc3RhcnQgKyBsZW4gKyBjYXJldCAtIGVuZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAgICAgLy8gTWFjICYgV2luZG93cyBjb25zaWRlcmFibHkgZGlmZmVyZW50CisgICAgICAgIC8vIE1hYzogZW5kKysuIElmIHN0YXJ0IT1lbmQsIHN0YXJ0PWVuZAorICAgICAgICAvLyAgU0hJRlQ6IG1vdmUgZW5kIHJpZ2h0CisgICAgICAgIC8vICBDVEw6IG5vIGRpZmZlcmVudAorICAgICAgICAvLyBXaW5kb3dzOgorICAgICAgICAvLyAgVU5TSElGVEVEOiBpZiBzdGFydCE9ZW5kLCBzdGFydCA9IGVuZCwgZWxzZSBzdGFydD1lbmQ9ZW5kKzE7CisgICAgICAgIC8vICAgICAgIGFuY2hvciA9IHRpcCA9IHN0YXJ0CisgICAgICAgIC8vICBTSElGVDogdGlwKysKKyAgICAgICAgLy8gIENUTDogaWYgc3RhcnQhPWVuZCwgc3RhcnQgPSBlbmQgPSBuZXh0Ym91bmQoZW5kLTEpLAorICAgICAgICAvLyAgIGVsc2Ugc3RhcnQ9ZW5kPW5leHRib3VuZChlbmQpCisgICAgICAgIC8vICAgICAgIGFuY2hvciA9IHRpcCA9IHN0YXJ0CisgICAgICAgIC8vICBDVEwvU0hJRlQ6IHRpcCA9IG5leHRib3VuZCh0aXApCisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIG5leHRCb3VuZChCcmVha0l0ZXJhdG9yIGJyZWFrZXIsCisgICAgICBpbnQgZGlyZWN0aW9uLCBib29sZWFuIGV4dGVuZCkgeworICAgICAgICBpZiAoIWV4dGVuZCAmJiBhbmNob3IgIT0gY2FyZXQpIGNhcmV0IC09IGRpcmVjdGlvbjsKKyAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LCBicmVha2VyLCBkaXJlY3Rpb24sIHRydWUpOworICAgICAgICBpZiAoIWV4dGVuZCkgYW5jaG9yID0gY2FyZXQ7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLy8gZXhwYW5kIHN0YXJ0IGFuZCBlbmQgdG8gd29yZCBicmVha3MtLWlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IG9uIG9uZQorICAgIHB1YmxpYyB2b2lkIGV4cGFuZChCcmVha0l0ZXJhdG9yIGJyZWFrZXIpIHsKKyAgICAgICAgaWYgKGFuY2hvciA8PSBjYXJldCkgeworICAgICAgICAgICAgYW5jaG9yID0gbmV4dChhbmNob3IsYnJlYWtlciwtMSxmYWxzZSk7CisgICAgICAgICAgICBjYXJldCA9IG5leHQoY2FyZXQsYnJlYWtlciwxLGZhbHNlKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKGFuY2hvcik7CisgICAgICAgICAgICAgICAgYW5jaG9yID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhcmV0ID0gYnJlYWtlci5mb2xsb3dpbmcoY2FyZXQtMSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICovCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhbmNob3IgPSBuZXh0KGFuY2hvcixicmVha2VyLDEsZmFsc2UpOworICAgICAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LGJyZWFrZXIsLTEsZmFsc2UpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYnJlYWtlci5mb2xsb3dpbmcoY2FyZXQpOworICAgICAgICAgICAgICAgIGNhcmV0ID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFuY2hvciA9IGJyZWFrZXIuZm9sbG93aW5nKGFuY2hvci0xKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGRpZmZlcmVudCA9IGZhbHNlIC0gbW92ZSB0byBuZXh0IGJvdW5kYXJ5LCB1bmxlc3Mgb24gb25lCisgICAgLy8gdHJ1ZSAtIG1vdmUgdG8gbmV4dCBib3VuZGFyeSwgZXZlbiBpZiBvbiBvbmUKKyAgICBwdWJsaWMgc3RhdGljIGludCBuZXh0KGludCBwb3NpdGlvbiwgQnJlYWtJdGVyYXRvciBicmVha2VyLAorICAgICAgaW50IGRpcmVjdGlvbiwgYm9vbGVhbiBkaWZmZXJlbnQpIHsKKyAgICAgICAgaWYgKCFkaWZmZXJlbnQpIHBvc2l0aW9uIC09IGRpcmVjdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBicmVha2VyLmZvbGxvd2luZyhwb3NpdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKHBvc2l0aW9uLTEpOworICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3ZThkMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorU2hhcmVkIHV0aWxpdGllcyBmb3IgZGVtbyBhcHBsaWNhdGlvbnMgYW5kIEFwcGxldHMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL251bWJlci9DdXJyZW5jeURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9udW1iZXIvQ3VycmVuY3lEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkxMmEwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9udW1iZXIvQ3VycmVuY3lEZW1vLmphdmEKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqIENyZWF0ZWQ6IE1heSAyMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi42CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5udW1iZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCisvKioKKyAqIERlbW9uc3RyYXRpb24gY29kZSB0byBpbGx1c3RyYXRlIGhvdyB0byBvYnRhaW4gSUNVIDIuNi1saWtlIGN1cnJlbmN5CisgKiBiZWhhdmlvciB1c2luZyBwcmUtSUNVIDIuNiBJQ1U0Si4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3lEZW1vIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdGVzdEZvcm1hdEhhY2sodHJ1ZSk7CisgICAgfQorCisgICAgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUZvcm1hdChDdXJyZW5jeSBjdXJyZW5jeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBJQ1UyNikgeworICAgICAgICAvLyBjb2RlIGZvciBJQ1UgMi42CisgICAgICAgIGlmIChJQ1UyNikgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgcmVzdWx0LnNldEN1cnJlbmN5KGN1cnJlbmN5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyB1Z2x5IHdvcmstYXJvdW5kIGZvciAyLjQKKyAgICAgICAgRGVjaW1hbEZvcm1hdCByZXN1bHQgPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgSGFja0N1cnJlbmN5SW5mbyBoYWNrID0gKEhhY2tDdXJyZW5jeUluZm8pKGhhY2tEYXRhLmdldChjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKSkpOworICAgICAgICByZXN1bHQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGhhY2suZGVjaW1hbHMpOworICAgICAgICByZXN1bHQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGhhY2suZGVjaW1hbHMpOworICAgICAgICByZXN1bHQuc2V0Um91bmRpbmdJbmNyZW1lbnQoaGFjay5yb3VuZGluZyk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSByZXN1bHQuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgc3ltYm9scy5zZXRDdXJyZW5jeVN5bWJvbChoYWNrLnN5bWJvbCk7CisgICAgICAgIHJlc3VsdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1ib2xzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBNYXAgaGFja0RhdGEgPSBuZXcgSGFzaE1hcCgpOworICAgIHN0YXRpYyBjbGFzcyBIYWNrQ3VycmVuY3lJbmZvIHsKKyAgICAgICAgaW50IGRlY2ltYWxzOworICAgICAgICBkb3VibGUgcm91bmRpbmc7CisgICAgICAgIFN0cmluZyBzeW1ib2w7CisgICAgICAgIEhhY2tDdXJyZW5jeUluZm8oaW50IGRlY2ltYWxzLCBkb3VibGUgcm91bmRpbmcsIFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgICAgIHRoaXMuZGVjaW1hbHMgPSBkZWNpbWFsczsKKyAgICAgICAgICAgIHRoaXMucm91bmRpbmcgPSByb3VuZGluZzsKKyAgICAgICAgICAgIHRoaXMuc3ltYm9sID0gc3ltYm9sOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyB7CisgICAgICAgIGhhY2tEYXRhLnB1dCgiVVNEIiwgbmV3IEhhY2tDdXJyZW5jeUluZm8oMiwgMCwgIiQiKSk7CisgICAgICAgIGhhY2tEYXRhLnB1dCgiR0JQIiwgbmV3IEhhY2tDdXJyZW5jeUluZm8oMiwgMCwgIlx1MDBBMyIpKTsKKyAgICAgICAgaGFja0RhdGEucHV0KCJKUFkiLCBuZXcgSGFja0N1cnJlbmN5SW5mbygwLCAwLCAiXHUwMEE1IikpOworICAgICAgICBoYWNrRGF0YS5wdXQoIkVVUiIsIG5ldyBIYWNrQ3VycmVuY3lJbmZvKDIsIDAsICJcdTIwQUMiKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2FsayB0aHJvdWdoIGFsbCBsb2NhbGVzIGFuZCBjb21wYXJlIHRoZSBvdXRwdXQgb2YgdGhlIElDVTI2CisgICAgICogY3VycmVuY3kgZm9ybWF0IHdpdGggdGhlICJoYWNrZWQiIGN1cnJlbmN5IGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gcXVpZXQgaWYgdHJ1ZSwgb25seSBkaXNwbGF5IGRpc2NyZXBhbmNpZXMuICBPdGhlcndpc2UsCisgICAgICogZGlzcGxheSBhbGwgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB0ZXN0Rm9ybWF0SGFjayhib29sZWFuIHF1aWV0KSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3RDdXJyZW5jaWVzID0geyJVU0QiLCJHQlAiLCJKUFkiLCJFVVIifTsKKyAgICAgICAgTG9jYWxlW10gdGVzdExvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBzaW5jZSBub25lIG9mIHRoaXMgc2hvdWxkIHZhcnkgYnkgY291bnRyeSwgd2UnbGwganVzdCBkbyBieSBsYW5ndWFnZQorICAgICAgICAgICAgaWYgKCF0ZXN0TG9jYWxlc1tpXS5nZXRDb3VudHJ5KCkuZXF1YWxzKCIiKSkgY29udGludWU7CisgICAgICAgICAgICBib29sZWFuIG5vT3V0cHV0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdExvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgbm9PdXRwdXQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdEN1cnJlbmNpZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYyNiA9IGdldEN1cnJlbmN5Rm9ybWF0KEN1cnJlbmN5LmdldEluc3RhbmNlKHRlc3RDdXJyZW5jaWVzW2pdKSwgdGVzdExvY2FsZXNbaV0sIHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIyNiA9IG5mMjYuZm9ybWF0KDEyMzQuNTY3KTsKKyAgICAgICAgICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0IiArIFV0aWxpdHkuZXNjYXBlKHN0cjI2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBuZjI0ID0gZ2V0Q3VycmVuY3lGb3JtYXQoQ3VycmVuY3kuZ2V0SW5zdGFuY2UodGVzdEN1cnJlbmNpZXNbal0pLCB0ZXN0TG9jYWxlc1tpXSwgZmFsc2UpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIyNCA9IG5mMjQuZm9ybWF0KDEyMzQuNTY3KTsKKyAgICAgICAgICAgICAgICBpZiAoIXN0cjI0LmVxdWFscyhzdHIyNikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vT3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdExvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub091dHB1dCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChxdWlldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXHQiICsgVXRpbGl0eS5lc2NhcGUoc3RyMjYpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgKCIgKyBVdGlsaXR5LmVzY2FwZShzdHIyNCkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbm9PdXRwdXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0JyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19ERU1PLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhNzRmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKKworLyoqCisgKiBUaGlzIHJlc291cmNlIGJ1bmRsZSBpcyBpbmNsdWRlZCBmb3IgdGVzdGluZyBhbmQgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5LgorICogSXQgYXBwbGllcyB0aGUgZGljdGlvbmFyeS1iYXNlZCBhbGdvcml0aG0gdG8gRW5nbGlzaCB0ZXh0IHRoYXQgaGFzIGhhZCBhbGwgdGhlCisgKiBzcGFjZXMgcmVtb3ZlZC4gIE9uY2Ugd2UgaGF2ZSBnb29kIHRlc3QgY2FzZXMgZm9yIFRoYWksIHdlIHdpbGwgcmVwbGFjZSB0aGlzCisgKiB3aXRoIGdvb2QgcmVzb3VyY2UgZGF0YSAoYW5kIGEgZ29vZCBkaWN0aW9uYXJ5IGZpbGUpIGZvciBUaGFpCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRSA9ICIvY29tL2libS9kYXRhL21pc2MvZW5nbGlzaC5kaWN0IjsKKworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICBmaW5hbCBib29sZWFuIGV4aXN0cyA9IElDVURhdGEuZXhpc3RzKERBVEFfTkFNRSk7CisKKyAgICAgICAgaWYgKCFleGlzdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0WzBdWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgICAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gd29yZC1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiIH0gLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSB3b3JkLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiV29yZEJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgLy8gYWxsIG9mIHdoaWNoIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2ggYXJlCisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICsiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKKyAgICAgICAgICAgICAgICArIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGthdGE9W1x1MzA5OS1cdTMwOWNcdTMwYTEtXHUzMGZlXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XV0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRkZ3Q9WzpOOl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICAgICArIiRtaWRfd29yZD1bWzpQZDpdXHUwMGFkXHUyMDI3XFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgICAgICAvLyBkZWNpbWFsIHBvaW50CisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFxcIlxcXCdcXCxcdTA2NmJcXC5dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgICAgICsiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKKyAgICAgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICAgICAgKyIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCisgICAgICAgICAgICAgICAgKyIkbHM9W1xuXHUwMDBjXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiR3cz1bWzpaczpdXHRdOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAorICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdworICAgICAgICAgICAgICAgICsiJHdvcmQ9KCRsZXQrKCRtaWRfd29yZCRsZXQrKSokZGFuZGE/KTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBkaWdpdCBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cuCisgICAgICAgICAgICAgICAgKyIkbnVtYmVyPSgkZGd0KygkbWlkX251bSRkZ3QrKSopOyIKKworICAgICAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNhdXNlIHB1bmN0dWF0aW9uIG1hcmtzIHRoYXQgYXJlbid0IGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHdvcmRzIG9yIG51bWJlcnMgdG8gYmUgdHJlYXRlZCBhcyB3b3JkcyB1bnRvIHRoZW1zZWx2ZXMpCisgICAgICAgICAgICAgICAgKyIuOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgICAgICAvLyAoaW5jbHVkaW5nIGp1c3Qgb25lIG9mIGVpdGhlciksIHBsdXMgYW4gb3B0aW9uYWwgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHdvcmQ/KCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgICAgIC8vIHRoYXQgc3RhcnRzIHdpdGggYSBudW1iZXItcHJlZml4IGNoYXJhY3RlciBhbmQgYSBudW1iZXIsCisgICAgICAgICAgICAgICAgLy8gYW5kIG1heSBlbmQgd2l0aCBhIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkcHJlX251bSgkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQorICAgICAgICAgICAgICAgICsiJHdzKlxyPyRscz87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthdGFrYW5hCisgICAgICAgICAgICAgICAgKyIka2F0YSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICAgICAgKyIkaGlyYSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCisgICAgICAgICAgICAgICAgKyIka2FuamkqOyIgfSwKKworICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIGxpbmUtYnJlYWtpbmcgcnVsZXMgYXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGFzIGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAgICAgeyAgICJMaW5lQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgorCisgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaAorICAgICAgICAgICAgICAgIC8vIGFyZSBpbiB0aGUgRW5nbGlzaCBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgKyIkX2RpY3Rpb25hcnlfPVthLXpBLVpcXCdcXC1dOyIKKworICAgICAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgKyIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICAgICAgKyIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKKyAgICAgICAgICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgKyIkbmJzcD1bXHUwMGEwXHUyMDA3XHUyMDExXHVmZWZmXTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBDUiBhbmQgdGhlIG90aGVyIGNoYXJhY3RlcnMgbWVudGlvbmVkIGFib3ZlCisgICAgICAgICAgICAgICAgKyIkc3BhY2U9W1tbOlpzOl1bOkNjOl1dLVskbmJzcCRicmVha1xyXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgICAgICsiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCisgICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgKyIkcHJlX3dvcmQ9W1tbOlNjOl0tW1x1MDBhMl1dWzpQczpdXFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KKyAgICAgICAgICAgICAgICArIiRwb3N0X3dvcmQ9W1s6UGU6XVxcIVxcXCJcXFwnXFwlXFwuXFwsXFw6XFw7XFw/XHUwMGEyXHUwMGIwXHUwNjZhXHUyMDMwLVx1MjAzNCIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZWVcdTMwZjVcdTMwZjZcdTMwZmMtXHUzMGZlXHVmZjAxXHVmZjBjIgorICAgICAgICAgICAgICAgICAgICArICJcdWZmMGVcdWZmMWZdOyIKKworICAgICAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAgICAgLy8gQ0pLIGRpYWNyaXRpY3MKKyAgICAgICAgICAgICAgICArIiRrYW5qaT1bW1x1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXHUzMDQxLVx1MzA5NFx1MzBhMS1cdTMwZmFdLVskcG9zdF93b3JkJF9pZ25vcmVfXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGlnaXRzCisgICAgICAgICAgICAgICAgKyIkZGlnaXQ9W1s6TmQ6XVs6Tm86XV07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAorICAgICAgICAgICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQorICAgICAgICAgICAgICAgICsiJGNoYXI9W14kYnJlYWskc3BhY2UkZGFzaCRrYW5qaSRuYnNwJF9pZ25vcmVfJHByZV93b3JkJHBvc3Rfd29yZCRtaWRfbnVtJGRhbmRhXHJcXFwiXFxcJ107IgorCisgICAgICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgICAgICAvLyBtb3JlIGRpZ2l0cyB3aXRoIGlzb2xhdGVkIG51bWJlci1wdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGludGVyc3BlcnNlZAorICAgICAgICAgICAgICAgICsiJG51bWJlcj0oWyRwcmVfd29yZCRkYXNoXSokZGlnaXQrKCRtaWRfbnVtJGRpZ2l0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyAodGhpcyBpbmNsdWRlcyBMYXRpbiBsZXR0ZXJzKQorICAgICAgICAgICAgICAgICsiJHdvcmRfY29yZT0oWyRwcmVfd29yZCRjaGFyXSp8JGthbmppfCRudW1iZXIpOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICArIiR3b3JkX3N1ZmZpeD0oKCRkYXNoK3wkcG9zdF93b3JkKikkc3BhY2UqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQorICAgICAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhaworICAgICAgICAgICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKKyAgICAgICAgICAgICAgICArIiR3b3JkPSgkcHJlX3dvcmQqJHdvcmRfY29yZSR3b3JkX3N1ZmZpeCk7IgorCisgICAgICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgICAgIC8vIGFyZSBqb2luZWQgYnkgcnVucyBvZiBvbmUgb2YgbW9yZSBub24tc3BhY2luZyBtYXJrLiAgQWxzbyBrZWVwIGEgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICAgICAgKyIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiIH0sCisKKyAgICAgICAgICAgIC8vIHRoZXNlIHR3byByZXNvdXJjZXMgc3BlY2lmeSB0aGUgcGF0aG5hbWVzIG9mIHRoZSBkaWN0aW9uYXJ5IGZpbGVzIHRvCisgICAgICAgICAgICAvLyB1c2UgZm9yIHdvcmQgYnJlYWtpbmcgYW5kIGxpbmUgYnJlYWtpbmcuICBCb3RoIGN1cnJlbnRseSByZWZlciB0byAKKyAgICAgICAgICAgIC8vIGEgZmlsZSBjYWxsZWQgZW5nbGlzaC5kaWN0IHBsYWNlZCBpbiBjb20uaWJtLmljdS5pbXBsLmRhdGEKKyAgICAgICAgICAgIC8vIHNvbWV3aGVyZSBpbiB0aGUgY2xhc3MgcGF0aC4gIEl0J3MgaW1wb3J0YW50IHRvIG5vdGUgdGhhdAorICAgICAgICAgICAgLy8gZW5nbGlzaC5kaWN0IHdhcyBjcmVhdGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksIGFuZCBkb2Vzbid0CisgICAgICAgICAgICAvLyBjb21lIGFueXdoZXJlIGNsb3NlIHRvIGJlaW5nIGFuIGV4aGF1c3RpdmUgZGljdGlvbmFyeSBvZiBFbmdsaXNoCisgICAgICAgICAgICAvLyB3b3JkcyAoYmFzaWNhbGx5LCBpdCBjb250YWlucyBhbGwgdGhlIHdvcmRzIGluIHRoZSBEZWNsYXJhdGlvbiBvZgorICAgICAgICAgICAgLy8gSW5kZXBlbmRlbmNlLCBhbmQgdGhlIFJldmlzZWQgU3RhbmRhcmQgVmVyc2lvbiBvZiB0aGUgYm9vayBvZiBHZW5lc2lzLAorICAgICAgICAgICAgLy8gcGx1cyBhIGZldyBvdGhlciB3b3JkcyB0aHJvd24gaW4gdG8gc2hvdyBtb3JlIGludGVyZXN0aW5nIGNhc2VzKS4KKyAgICAgICAgICAgIC8vIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9LAorICAgICAgICAgICAgLy8geyAiTGluZUJyZWFrRGljdGlvbmFyeSIsICJjb21cXGlibVxcdGV4dFxccmVzb3VyY2VzXFxlbmdsaXNoLmRpY3QiIH0KKyAgICAgICAgICAgIHsgICAiV29yZEJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9LCAKKyAgICAgICAgICAgIHsgICAiTGluZUJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvREJCSURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA2Nzc3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEKQEAgLTAsMCArMSw0OTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEFyZWE7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuQm9yZGVyRmFjdG9yeTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgREJCSURlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJlbiIsICJVUyIsICJERU1PIikpOworICAgICAgICBuZXcgREJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBEQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzY3RybGRvd25fID0gZmFsc2U7CisKK0pUZXh0QXJlYSB0ZXh0OworLy8gICAgVGV4dEFyZWEgdGV4dDsKKyAgICBDaG9pY2UgYm91bmQ7CisKKyAgICBwdWJsaWMgREJCSUZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDI1MCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIGludCBzLCBlOworICAgIGludCB0cywgdGU7CisKKyAgICBwdWJsaWMgdm9pZCBjaGVja0NoYW5nZSgpCisgICAgeworLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hlY2tDaGFuZ2UuLi4iKTsKKyAgICAgICAgaWYgKCh0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkYpICE9IHRzIHx8CisgICAgICAgICAgICAodGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRikgIT0gdGUpIHsKKworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBTID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBFID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Iik7CisvLyAgICAgICAgICBzZWxlY3QoMCwgMCk7CisvLyAgICAgICAgICBzZWxlY3QodGVtcFMsIHRlbXBFKTsKKyAgICAgICAgICAgIC8vc2VsZWN0KHRlbXBTIC0gKHRzIC0gcyksIHRlbXBFIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8Iik7CisKKworLy8gICAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIHMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKy8vICAgICAgICAgIHNlbGVjdChzIC0gKHRzIC0gcyksIGUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigicygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGtkc2xrc2oiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc0luLCBpbnQgZUluKQorICAgIHsKKyAgICAgICAgcyA9IHNJbjsKKyAgICAgICAgZSA9IGVJbjsKKyAgICAgICAgdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgIHRzID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICB0ZSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisvLyAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgeworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAiKyh0cy1zKSsiLCIrKHRlLWUpKTsKKy8vICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gczsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBlOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc3luY2hyb25pemVkIHZvaWQgc2VsZWN0UmFuZ2UoaW50IHMsIGludCBlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisgICAgICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgICAgICBzZWxlY3QocyxlKTsKKyAgICAgICAgICAgIC8vfQorLy8gICAgICAgICAgaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBR0ghIHNlbGVjdCgiK3MrIiwiK2UrIikgLT4gKCIrCisvLyAgICAgICAgICAgICAgZ2V0U2VsZWN0aW9uU3RhcnQoKSsiLCIrZ2V0U2VsZWN0aW9uRW5kKCkrIikiKTsKKy8vICAgICAgICAgICAgICB0ZXh0LnNlbGVjdChzIC0gKGdldFNlbGVjdGlvblN0YXJ0KCkgLSBzKSwgZSAtIChnZXRTZWxlY3Rpb25FbmQoKSAtIGUpKTsKKy8vICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgeworICAgIH0KKworCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisKKworICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0KKyAgICAgICAgICAgICAgICBuZXcgTGFiZWwoIlRleHQgQm91bmRhcnkgRGVtbyIsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICB0aXRsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250KTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZCh0aXRsZUxhYmVsKTsKKworICAgICAgICAgICAgLy9MYWJlbCBkZW1vPW5ldyBMYWJlbChjcmVkaXRTdHJpbmcsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICAvL2RlbW8uc2V0Rm9udChEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgICAgIC8vdG9wUGFuZWwuYWRkKGRlbW8pOworCisgICAgICAgICAgICBQYW5lbCBjaG9pY2VQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCBkZW1vMT1uZXcgTGFiZWwoIkJvdW5kYXJpZXMiLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIGRlbW8xLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChkZW1vMSk7CisKKyAgICAgICAgICAgIGJvdW5kID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgICAgIGJvdW5kLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiU2VudGVuY2UiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkxpbmUgQnJlYWsiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIldvcmQiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkNoYXIiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm91bmQuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaWYgKGNob2ljZUZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRGb250KGNob2ljZUZvbnQpOworCisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoYm91bmQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNob2ljZVBhbmVsKTsKKworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwxKTsKKworCisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKworICAgICAgICAgICAgaW50IFJPV1MgPSAxNTsKKyAgICAgICAgICAgIGludCBDT0xVTU5TID0gNTA7CisvLyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7Cit0ZXh0ID0gbmV3IEpUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQuc2V0TGluZVdyYXAodHJ1ZSk7Cit0ZXh0LnNldFdyYXBTdHlsZVdvcmQodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldEVkaXRhYmxlKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChEZW1vVXRpbGl0eS5lZGl0Rm9udCk7CisgICAgICAgICAgICB0ZXh0LnNldEJvcmRlcihCb3JkZXJGYWN0b3J5LmNyZWF0ZUVtcHR5Qm9yZGVyKDIsIDIsIDIsIDIpKTsKKworICAgICAgICBhZGQoIkNlbnRlciIsIG5ldyBKU2Nyb2xsUGFuZSh0ZXh0LCBKU2Nyb2xsUGFuZS5WRVJUSUNBTF9TQ1JPTExCQVJfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNjcm9sbFBhbmUuSE9SSVpPTlRBTF9TQ1JPTExCQVJfTkVWRVIpKTsKKworICAgICAgICBQYW5lbCBjb3B5cmlnaHRQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBhZGRXaXRoRm9udCAoY29weXJpZ2h0UGFuZWwsCisgICAgICAgICAgICBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQoY29weXJpZ2h0UGFuZWwsMSk7CisgICAgICAgIGFkZCgiU291dGgiLCBjb3B5cmlnaHRQYW5lbCk7CisKKyAgICAgICAgLy9sYXlvdXQoKTsKKyAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgCisgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUFJFU1NFRCk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUkVMRUFTRUQpOworCisgICAgdGV4dC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgcHVibGljIHZvaWQga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGludCBrYyA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgc3dpdGNoIChlLmdldEtleUNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19OOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1A6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gKG5ldyBUaHJlYWQodGhpcykpLnN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5pdGlhbFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuCisiV2hlbixpbnRoZWNvdXJzZW9maHVtYW5ldmVudHMsaXRiZWNvbWVzbmVjZXNzYXJ5Zm9yb25lcGVvcGxldG9kaXNzb2x2ZXRoZXBvbGl0aWNhbGJvbmRzd2hpY2hoYXZlIgorKyAiY29ubmVjdGVkdGhlbXdpdGhhbm90aGVyLGFuZHRvYXNzdW1lYW1vbmd0aGVwb3dlcnNvZnRoZWVhcnRoLHRoZXNlcGFyYXRlYW5kZXF1YWxzdGF0aW9udG93aGljaHRoZWxhd3MiCisrICJvZm5hdHVyZWFuZG9mbmF0dXJlJ3NHb2RlbnRpdGxldGhlbSxhZGVjZW50cmVzcGVjdHRvdGhlb3BpbmlvbnNvZm1hbmtpbmRyZXF1aXJlc3RoYXR0aGV5c2hvdWxkZGVjbGFyZXRoZSIKKysgImNhdXNlc3doaWNoaW1wZWx0aGVtdG90aGVzZXBhcmF0aW9uLlxuIgorKyAiV2Vob2xkdGhlc2V0cnV0aHN0b2Jlc2VsZi1ldmlkZW50LHRoYXRhbGxtZW5hcmVjcmVhdGVkZXF1YWwsdGhhdHRoZXlhcmVlbmRvd2VkYnl0aGVpckNyZWF0b3J3aXRoY2VydGFpbiIKKysgInVuYWxpZW5hYmxlcmlnaHRzLHRoYXRhbW9uZ3RoZXNlYXJlbGlmZSxsaWJlcnR5YW5kdGhlcHVyc3VpdG9maGFwcGluZXNzLlRoYXR0b3NlY3VyZXRoZXNlcmlnaHRzLGdvdmVybm1lbnRzYXJlIgorKyAiaW5zdGl0dXRlZGFtb25nbWVuLGRlcml2aW5ndGhlaXJqdXN0cG93ZXJzZnJvbXRoZWNvbnNlbnRvZnRoZWdvdmVybmVkLlRoYXR3aGVuZXZlcmFueWZvcm1vZmdvdmVybm1lbnQiCisrICJiZWNvbWVzZGVzdHJ1Y3RpdmV0b3RoZXNlZW5kcyxpdGlzdGhlcmlnaHRvZnRoZXBlb3BsZXRvYWx0ZXJvcnRvYWJvbGlzaGl0LGFuZHRvaW5zdGl0dXRlbmV3Z292ZXJubWVudCxsYXlpbmciCisrICJpdHNmb3VuZGF0aW9ub25zdWNocHJpbmNpcGxlc2FuZG9yZ2FuaXppbmdpdHNwb3dlcnNpbnN1Y2hmb3JtLGFzdG90aGVtc2hhbGxzZWVtbW9zdGxpa2VseXRvZWZmZWN0dGhlaXJzYWZldHkiCisrICJhbmRoYXBwaW5lc3MuUHJ1ZGVuY2UsaW5kZWVkLHdpbGxkaWN0YXRldGhhdGdvdmVybm1lbnRzbG9uZ2VzdGFibGlzaGVkc2hvdWxkbm90YmVjaGFuZ2VkZm9ybGlnaHRhbmR0cmFuc2llbnQiCisrICJjYXVzZXM7YW5kYWNjb3JkaW5nbHlhbGxleHBlcmllbmNlaGF0aHNob3dudGhhdG1hbmtpbmRhcmVtb3JlZGlzcG9zZWR0b3N1ZmZlcix3aGlsZWV2aWxzYXJlc3VmZmVyYWJsZSx0aGFuIgorKyAidG9yaWdodHRoZW1zZWx2ZXNieWFib2xpc2hpbmd0aGVmb3Jtc3Rvd2hpY2h0aGV5YXJlYWNjdXN0b21lZC5CdXR3aGVuYWxvbmd0cmFpbm9mYWJ1c2VzYW5kdXN1cnBhdGlvbnMsIgorKyAicHVyc3VpbmdpbnZhcmlhYmx5dGhlc2FtZW9iamVjdGV2aW5jZXNhZGVzaWdudG9yZWR1Y2V0aGVtdW5kZXJhYnNvbHV0ZWRlc3BvdGlzbSxpdGlzdGhlaXJyaWdodCxpdGlzdGhlaXJkdXR5LCIKKysgInRvdGhyb3dvZmZzdWNoZ292ZXJubWVudCxhbmR0b3Byb3ZpZGVuZXdndWFyZHNmb3J0aGVpcmZ1dHVyZXNlY3VyaXR5Li0tU3VjaGhhc2JlZW50aGVwYXRpZW50c3VmZmVyYW5jZW9mIgorKyAidGhlc2Vjb2xvbmllczthbmRzdWNoaXNub3d0aGVuZWNlc3NpdHl3aGljaGNvbnN0cmFpbnN0aGVtdG9hbHRlcnRoZWlyZm9ybWVyc3lzdGVtc29mZ292ZXJubWVudC5UaGVoaXN0b3J5IgorKyAib2Z0aGVwcmVzZW50S2luZ29mR3JlYXRCcml0YWluaXNhaGlzdG9yeW9mcmVwZWF0ZWRpbmp1cmllc2FuZHVzdXJwYXRpb25zLGFsbGhhdmluZ2luZGlyZWN0b2JqZWN0dGhlIgorKyAiZXN0YWJsaXNobWVudG9mYW5hYnNvbHV0ZXR5cmFubnlvdmVydGhlc2VzdGF0ZXMuVG9wcm92ZXRoaXMsbGV0ZmFjdHNiZXN1Ym1pdHRlZHRvYWNhbmRpZHdvcmxkLlxuIgorKyAiSGVoYXNyZWZ1c2VkaGlzYXNzZW50dG9sYXdzLHRoZW1vc3R3aG9sZXNvbWVhbmRuZWNlc3Nhcnlmb3J0aGVwdWJsaWNnb29kLlxuIgorKyAiSGVoYXNmb3JiaWRkZW5oaXNnb3Zlcm5vcnN0b3Bhc3NsYXdzb2ZpbW1lZGlhdGVhbmRwcmVzc2luZ2ltcG9ydGFuY2UsdW5sZXNzc3VzcGVuZGVkaW50aGVpcm9wZXJhdGlvbnRpbGwiCisrICJoaXNhc3NlbnRzaG91bGRiZW9idGFpbmVkO2FuZHdoZW5zb3N1c3BlbmRlZCxoZWhhc3V0dGVybHluZWdsZWN0ZWR0b2F0dGVuZHRvdGhlbS5cbiIKKysgIkhlaGFzcmVmdXNlZHRvcGFzc290aGVybGF3c2ZvcnRoZWFjY29tbW9kYXRpb25vZmxhcmdlZGlzdHJpY3Rzb2ZwZW9wbGUsdW5sZXNzdGhvc2VwZW9wbGV3b3VsZHJlbGlucXVpc2giCisrICJ0aGVyaWdodG9mcmVwcmVzZW50YXRpb25pbnRoZWxlZ2lzbGF0dXJlLGFyaWdodGluZXN0aW1hYmxldG90aGVtYW5kZm9ybWlkYWJsZXRvdHlyYW50c29ubHkuXG4iCisrICJIZWhhc2NhbGxlZHRvZ2V0aGVybGVnaXNsYXRpdmVib2RpZXNhdHBsYWNlc3VudXN1YWwsdW5jb21mb3J0YWJsZSxhbmRkaXN0YW50ZnJvbXRoZWRlcG9zaXRvcnlvZnRoZWlycHVibGljIgorKyAicmVjb3Jkcyxmb3J0aGVzb2xlcHVycG9zZW9mZmF0aWd1aW5ndGhlbWludG9jb21wbGlhbmNld2l0aGhpc21lYXN1cmVzLlxuIgorKyAiSGVoYXNkaXNzb2x2ZWRyZXByZXNlbnRhdGl2ZWhvdXNlc3JlcGVhdGVkbHksZm9yb3Bwb3Npbmd3aXRobWFubHlmaXJtbmVzc2hpc2ludmFzaW9uc29udGhlcmlnaHRzb2Z0aGVwZW9wbGUuXG4iCisrICJIZWhhc3JlZnVzZWRmb3JhbG9uZ3RpbWUsYWZ0ZXJzdWNoZGlzc29sdXRpb25zLHRvY2F1c2VvdGhlcnN0b2JlZWxlY3RlZDt3aGVyZWJ5dGhlbGVnaXNsYXRpdmVwb3dlcnMsIgorKyAiaW5jYXBhYmxlb2Zhbm5paGlsYXRpb24saGF2ZXJldHVybmVkdG90aGVwZW9wbGVhdGxhcmdlZm9ydGhlaXJleGVyY2lzZTt0aGVzdGF0ZXJlbWFpbmluZ2ludGhlbWVhbnRpbWVleHBvc2VkIgorKyAidG9hbGx0aGVkYW5nZXJzb2ZpbnZhc2lvbmZyb213aXRob3V0LGFuZGNvbnZ1bHNpb25zd2l0aGluLlxuIgorKyAiSGVoYXNlbmRlYXZvcmVkdG9wcmV2ZW50dGhlcG9wdWxhdGlvbm9mdGhlc2VzdGF0ZXM7Zm9ydGhhdHB1cnBvc2VvYnN0cnVjdGluZ3RoZWxhd3Nmb3JuYXR1cmFsaXphdGlvbm9mIgorKyAiZm9yZWlnbmVycztyZWZ1c2luZ3RvcGFzc290aGVyc3RvZW5jb3VyYWdldGhlaXJtaWdyYXRpb25oaXRoZXIsYW5kcmFpc2luZ3RoZWNvbmRpdGlvbnNvZm5ld2FwcHJvcHJpYXRpb25zb2YiCisrICJsYW5kcy5cbiIKKysgIkhlaGFzb2JzdHJ1Y3RlZHRoZWFkbWluaXN0cmF0aW9ub2ZqdXN0aWNlLGJ5cmVmdXNpbmdoaXNhc3NlbnR0b2xhd3Nmb3Jlc3RhYmxpc2hpbmdqdWRpY2lhcnlwb3dlcnMuXG4iCisrICJIZWhhc21hZGVqdWRnZXNkZXBlbmRlbnRvbmhpc3dpbGxhbG9uZSxmb3J0aGV0ZW51cmVvZnRoZWlyb2ZmaWNlcyxhbmR0aGVhbW91bnRhbmRwYXltZW50b2Z0aGVpcnNhbGFyaWVzLlxuIgorKyAiSGVoYXNlcmVjdGVkYW11bHRpdHVkZW9mbmV3b2ZmaWNlcyxhbmRzZW50aGl0aGVyc3dhcm1zb2ZvZmZpY2Vyc3RvaGFyYXNzb3VycGVvcGxlLGFuZGVhdG91dHRoZWlyIgorKyAic3Vic3RhbmNlLlxuIgorKyAiSGVoYXNrZXB0YW1vbmd1cyxpbnRpbWVzb2ZwZWFjZSxzdGFuZGluZ2FybWllc3dpdGhvdXR0aGVjb25zZW50b2ZvdXJsZWdpc2xhdHVyZS5cbiIKKysgIkhlaGFzYWZmZWN0ZWR0b3JlbmRlcnRoZW1pbGl0YXJ5aW5kZXBlbmRlbnRvZmFuZHN1cGVyaW9ydG9jaXZpbHBvd2VyLlxuIgorKyAiSGVoYXNjb21iaW5lZHdpdGhvdGhlcnN0b3N1YmplY3R1c3RvYWp1cmlzZGljdGlvbmZvcmVpZ250b291cmNvbnN0aXR1dGlvbixhbmR1bmFja25vd2xlZGdlZGJ5b3VybGF3czsiCisrICJnaXZpbmdoaXNhc3NlbnR0b3RoZWlyYWN0c29mcHJldGVuZGVkbGVnaXNsYXRpb246XG4iCisrICJGb3JxdWFydGVyaW5nbGFyZ2Vib2RpZXNvZmFybWVkdHJvb3BzYW1vbmd1czpcbiIKKysgIkZvcnByb3RlY3Rpbmd0aGVtLGJ5bW9ja3RyaWFsLGZyb21wdW5pc2htZW50Zm9yYW55bXVyZGVyc3doaWNodGhleXNob3VsZGNvbW1pdG9udGhlaW5oYWJpdGFudHNvZnRoZXNlIgorKyAic3RhdGVzOlxuIgorKyAiRm9yY3V0dGluZ29mZm91cnRyYWRld2l0aGFsbHBhcnRzb2Z0aGV3b3JsZDpcbiIKKysgIkZvcmltcG9zaW5ndGF4ZXNvbnVzd2l0aG91dG91cmNvbnNlbnQ6XG4iCisrICJGb3JkZXByaXZpbmd1c2lubWFueWNhc2VzLG9mdGhlYmVuZWZpdHNvZnRyaWFsYnlqdXJ5OlxuIgorKyAiRm9ydHJhbnNwb3J0aW5ndXNiZXlvbmRzZWFzdG9iZXRyaWVkZm9ycHJldGVuZGVkb2ZmZW5zZXM6XG4iCisrICJGb3JhYm9saXNoaW5ndGhlZnJlZXN5c3RlbW9mRW5nbGlzaGxhd3NpbmFuZWlnaGJvcmluZ3Byb3ZpbmNlLGVzdGFibGlzaGluZ3RoZXJlaW5hbmFyYml0cmFyeWdvdmVybm1lbnQsYW5kIgorKyAiZW5sYXJnaW5naXRzYm91bmRhcmllc3NvYXN0b3JlbmRlcml0YXRvbmNlYW5leGFtcGxlYW5kZml0aW5zdHJ1bWVudGZvcmludHJvZHVjaW5ndGhlc2FtZWFic29sdXRlcnVsZWludGhlc2UiCisrICJjb2xvbmllczpcbiIKKysgIkZvcnRha2luZ2F3YXlvdXJjaGFydGVycyxhYm9saXNoaW5nb3VybW9zdHZhbHVhYmxlbGF3cyxhbmRhbHRlcmluZ2Z1bmRhbWVudGFsbHl0aGVmb3Jtc29mb3VyZ292ZXJubWVudHM6XG4iCisrICJGb3JzdXNwZW5kaW5nb3Vyb3dubGVnaXNsYXR1cmVzLGFuZGRlY2xhcmluZ3RoZW1zZWx2ZXNpbnZlc3RlZHdpdGhwb3dlcnRvbGVnaXNsYXRlZm9ydXNpbmFsbGNhc2Vzd2hhdHNvZXZlci5cbiIKKysgIkhlaGFzYWJkaWNhdGVkZ292ZXJubWVudGhlcmUsYnlkZWNsYXJpbmd1c291dG9maGlzcHJvdGVjdGlvbmFuZHdhZ2luZ3dhcmFnYWluc3R1cy5cbiIKKysgIkhlaGFzcGx1bmRlcmVkb3Vyc2VhcyxyYXZhZ2Vkb3VyY29hc3RzLGJ1cm5lZG91cnRvd25zLGFuZGRlc3Ryb3llZHRoZWxpdmVzb2ZvdXJwZW9wbGUuXG4iCisrICJIZWlzYXR0aGlzdGltZXRyYW5zcG9ydGluZ2xhcmdlYXJtaWVzb2Zmb3JlaWdubWVyY2VuYXJpZXN0b2NvbXBsZXRldGhld29ya3NvZmRlYXRoLGRlc29sYXRpb25hbmR0eXJhbm55LCIKKysgImFscmVhZHliZWd1bndpdGhjaXJjdW1zdGFuY2Vzb2ZjcnVlbHR5YW5kcGVyZmlkeXNjYXJjZWx5cGFyYWxsZWxlZGludGhlbW9zdGJhcmJhcm91c2FnZXMsYW5kdG90YWxseXVud29ydGh5IgorKyAidGhlaGVhZG9mYWNpdmlsaXplZG5hdGlvbi5cbiIKKysgIkhlaGFzY29uc3RyYWluZWRvdXJmZWxsb3djaXRpemVuc3Rha2VuY2FwdGl2ZW9udGhlaGlnaHNlYXN0b2JlYXJhcm1zYWdhaW5zdHRoZWlyY291bnRyeSx0b2JlY29tZXRoZSIKKysgImV4ZWN1dGlvbmVyc29mdGhlaXJmcmllbmRzYW5kYnJldGhyZW4sb3J0b2ZhbGx0aGVtc2VsdmVzYnl0aGVpcmhhbmRzLlxuIgorKyAiSGVoYXNleGNpdGVkZG9tZXN0aWNpbnN1cnJlY3Rpb25zYW1vbmdzdHVzLGFuZGhhc2VuZGVhdm9yZWR0b2JyaW5nb250aGVpbmhhYml0YW50c29mb3VyZnJvbnRpZXJzLHRoZSIKKysgIm1lcmNpbGVzc0luZGlhbnNhdmFnZXMsd2hvc2Vrbm93bnJ1bGVvZndhcmZhcmUsaXN1bmRpc3Rpbmd1aXNoZWRkZXN0cnVjdGlvbm9mYWxsYWdlcyxzZXhlc2FuZGNvbmRpdGlvbnMuXG4iCisrICJJbmV2ZXJ5c3RhZ2VvZnRoZXNlb3BwcmVzc2lvbnN3ZWhhdmVwZXRpdGlvbmVkZm9ycmVkcmVzc2ludGhlbW9zdGh1bWJsZXRlcm1zOm91cnJlcGVhdGVkcGV0aXRpb25zaGF2ZSIKKysgImJlZW5hbnN3ZXJlZG9ubHlieXJlcGVhdGVkaW5qdXJ5LkFwcmluY2Usd2hvc2VjaGFyYWN0ZXJpc3RodXNtYXJrZWRieWV2ZXJ5YWN0d2hpY2htYXlkZWZpbmVhdHlyYW50LGlzIgorKyAidW5maXR0b2JldGhlcnVsZXJvZmFmcmVlcGVvcGxlLlxuIgorKyAiTm9yaGF2ZXdlYmVlbndhbnRpbmdpbmF0dGVudGlvbnRvb3VyQnJpdGlzaGJyZXRocmVuLldlaGF2ZXdhcm5lZHRoZW1mcm9tdGltZXRvdGltZW9mYXR0ZW1wdHNieXRoZWlyIgorKyAibGVnaXNsYXR1cmV0b2V4dGVuZGFudW53YXJyYW50YWJsZWp1cmlzZGljdGlvbm92ZXJ1cy5XZWhhdmVyZW1pbmRlZHRoZW1vZnRoZWNpcmN1bXN0YW5jZXNvZm91cmVtaWdyYXRpb24iCisrICJhbmRzZXR0bGVtZW50aGVyZS5XZWhhdmVhcHBlYWxlZHRvdGhlaXJuYXRpdmVqdXN0aWNlYW5kbWFnbmFuaW1pdHksYW5kd2VoYXZlY29uanVyZWR0aGVtYnl0aGV0aWVzb2ZvdXIiCisrICJjb21tb25raW5kcmVkdG9kaXNhdm93dGhlc2V1c3VycGF0aW9ucyx3aGljaCx3b3VsZGluZXZpdGFibHlpbnRlcnJ1cHRvdXJjb25uZWN0aW9uc2FuZGNvcnJlc3BvbmRlbmNlLldlIgorKyAibXVzdCx0aGVyZWZvcmUsYWNxdWllc2NlaW50aGVuZWNlc3NpdHksd2hpY2hkZW5vdW5jZXNvdXJzZXBhcmF0aW9uLGFuZGhvbGR0aGVtLGFzd2Vob2xkdGhlcmVzdG9mbWFua2luZCwiCisrICJlbmVtaWVzaW53YXIsaW5wZWFjZWZyaWVuZHMuXG4iCisrICJXZSx0aGVyZWZvcmUsdGhlcmVwcmVzZW50YXRpdmVzb2Z0aGVVbml0ZWRTdGF0ZXNvZkFtZXJpY2EsaW5HZW5lcmFsQ29uZ3Jlc3MsYXNzZW1ibGVkLGFwcGVhbGluZ3RvdGhlIgorKyAiU3VwcmVtZUp1ZGdlb2Z0aGV3b3JsZGZvcnRoZXJlY3RpdHVkZW9mb3VyaW50ZW50aW9ucyxkbyxpbnRoZW5hbWUsYW5kYnl0aGVhdXRob3JpdHlvZnRoZWdvb2RwZW9wbGVvZiIKKysgInRoZXNlY29sb25pZXMsc29sZW1ubHlwdWJsaXNoYW5kZGVjbGFyZSx0aGF0dGhlc2V1bml0ZWRjb2xvbmllc2FyZSxhbmRvZnJpZ2h0b3VnaHR0b2JlZnJlZWFuZGluZGVwZW5kZW50IgorKyAic3RhdGVzO3RoYXR0aGV5YXJlYWJzb2x2ZWRmcm9tYWxsYWxsZWdpYW5jZXRvdGhlQnJpdGlzaENyb3duLGFuZHRoYXRhbGxwb2xpdGljYWxjb25uZWN0aW9uYmV0d2VlbnRoZW1hbmR0aGUiCisrICJzdGF0ZW9mR3JlYXRCcml0YWluLGlzYW5kb3VnaHR0b2JldG90YWxseWRpc3NvbHZlZDthbmR0aGF0YXNmcmVlYW5kaW5kZXBlbmRlbnRzdGF0ZXMsdGhleWhhdmVmdWxscG93ZXJ0byIKKysgImxldmV5d2FyLGNvbmNsdWRlcGVhY2UsY29udHJhY3RhbGxpYW5jZXMsZXN0YWJsaXNoY29tbWVyY2UsYW5kdG9kb2FsbG90aGVyYWN0c2FuZHRoaW5nc3doaWNoaW5kZXBlbmRlbnQiCisrICJzdGF0ZXNtYXlvZnJpZ2h0ZG8uQW5kZm9ydGhlc3VwcG9ydG9mdGhpc2RlY2xhcmF0aW9uLHdpdGhhZmlybXJlbGlhbmNlb250aGVwcm90ZWN0aW9ub2ZEaXZpbmVQcm92aWRlbmNlLHdlIgorKyAibXV0dWFsbHlwbGVkZ2V0b2VhY2hvdGhlcm91cmxpdmVzLG91cmZvcnR1bmVzYW5kb3Vyc2FjcmVkaG9ub3IuXG4iOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgaGFuZGxlRW51bUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHMgPSBib3VuZC5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJDaGFyIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0Q2hhcmFjdGVySW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIldvcmQiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRXb3JkSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJMaW5lIEJyZWFrIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0TGluZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIC8qIGlmIChzLmVxdWFscygiU2VudGVuY2UiKSkgKi8geworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRTZW50ZW5jZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgIC8vdGV4dC5zZWxlY3QoMCwwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVGb3J3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVudGVyaW5nIGhhbmRsZUZvcndhcmQiKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhhbmRsZUZvcndhcmQ6IG9sZFN0YXJ0PSIgKyBvbGRTdGFydCArICIsIG9sZEVuZD0iICsgb2xkRW5kKTsKKworICAgICAgICAgICAgaWYgKG9sZEVuZCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCBpdGVyLmZvbGxvd2luZygwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIuZm9sbG93aW5nKG9sZEVuZC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChlID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGUgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArCisgICAgICAgICAgICAgICAgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlQmFja3dhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgaWYgKG9sZFN0YXJ0IDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLmZvbGxvd2luZyhvbGRTdGFydC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDaG9pY2UpIHsKKyAgICAgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgeworICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzV2luZG93RXZlbnQoV2luZG93RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HICYmIAorICAgICAgICAgICAgZXZ0LmdldFdpbmRvdygpID09IHRoaXMpIHsKKyAgICAgICAgICAgIGhpZGUoKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc0tleUV2ZW50KEtleUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZ0LmdldElEKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1BSRVNTRUQgOgorICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1JFTEVBU0VEIDoKKyAgICAgICAgICAgICAgICAvLyBrZXkgZGV0ZWN0aW9uIGZvciBsZWZ0IGFuZCByaWdodCBidXR0b25zIGFyZSByZW1vdmVkCisgICAgICAgICAgICAgICAgLy8gdG8gZW11bGF0ZSB0aGUgb2xkIHJlbGVhc2UgYmVoYXZpb3VyCisgICAgICAgICAgICAgICAgaW50IGtleSA9IGV2dC5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19OICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1AgJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9SQkJJRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMDBmMWYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YQpAQCAtMCwwICsxLDQ3NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaTsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0QXJlYTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBSQkJJRGVtbyBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICBuZXcgUkJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBSQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBSQkJJRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpCisgICAgeworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgaW5pdCgpOworICAgICAgICBzdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjUwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgaW50IHMsIGU7CisgICAgaW50IHRzLCB0ZTsKKworICAgIHB1YmxpYyB2b2lkIGNoZWNrQ2hhbmdlKCkKKyAgICB7CisvLyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGVja0NoYW5nZS4uLiIpOworICAgICAgICBpZiAoKHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRikgIT0gdHMgfHwKKyAgICAgICAgICAgICh0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGKSAhPSB0ZSkgeworCisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcFMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcEUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj4iKTsKKy8vICAgICAgICAgIHNlbGVjdCgwLCAwKTsKKy8vICAgICAgICAgIHNlbGVjdCh0ZW1wUywgdGVtcEUpOworICAgICAgICAgICAgLy9zZWxlY3QodGVtcFMgLSAodHMgLSBzKSwgdGVtcEUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjwiKTsKKworCisvLyAgICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgcygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworLy8gICAgICAgICAgc2VsZWN0KHMgLSAodHMgLSBzKSwgZSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCJzKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsa2RzbGtzaiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzSW4sIGludCBlSW4pCisgICAgeworICAgICAgICBzID0gc0luOworICAgICAgICBlID0gZUluOworICAgICAgICB0ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgdHMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgIHRlID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKy8vICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSB7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICIrKHRzLXMpKyIsIisodGUtZSkpOworLy8gICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBzOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgIH0KKworCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIGU7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzeW5jaHJvbml6ZWQgdm9pZCBzZWxlY3RSYW5nZShpbnQgcywgaW50IGUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9pZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKyAgICAgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgICAgIHNlbGVjdChzLGUpOworICAgICAgICAgICAgLy99CisvLyAgICAgICAgICBpZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFHSCEgc2VsZWN0KCIrcysiLCIrZSsiKSAtPiAoIisKKy8vICAgICAgICAgICAgICBnZXRTZWxlY3Rpb25TdGFydCgpKyIsIitnZXRTZWxlY3Rpb25FbmQoKSsiKSIpOworLy8gICAgICAgICAgICAgIHRleHQuc2VsZWN0KHMgLSAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAtIHMpLCBlIC0gKGdldFNlbGVjdGlvbkVuZCgpIC0gZSkpOworLy8gICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgYnVpbGRHVUkoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgfQorCisKKyAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgZm9vLnNldEZvbnQoZm9udCk7CisgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICB9CisKKworCisgICBwdWJsaWMgdm9pZCBidWlsZEdVSSgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIHRpdGxlTGFiZWwgPQorICAgICAgICAgICAgICAgIG5ldyBMYWJlbCgiRGV2YSBUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOworICAgICAgICAgICAgdGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KG5ldyBGb250KCJEZXZhbmFnYXJpIE1UIGZvciBJQk0iLCBGb250LlBMQUlOLCA0OCkpOworICAgICAgICAgICAgdGV4dC5zZXRCb3JkZXIoQm9yZGVyRmFjdG9yeS5jcmVhdGVFbXB0eUJvcmRlcigyLCAyLCAyLCAyKSk7CisKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBuZXcgSlNjcm9sbFBhbmUodGV4dCwgSlNjcm9sbFBhbmUuVkVSVElDQUxfU0NST0xMQkFSX0FMV0FZUywKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTY3JvbGxQYW5lLkhPUklaT05UQUxfU0NST0xMQkFSX05FVkVSKSk7CisKKyAgICAgICAgUGFuZWwgY29weXJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYWRkV2l0aEZvbnQgKGNvcHlyaWdodFBhbmVsLAorICAgICAgICAgICAgbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpLERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKGNvcHlyaWdodFBhbmVsLDEpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0UGFuZWwpOworCisgICAgICAgIC8vbGF5b3V0KCk7CisgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIAorICAgICAgICBlbmFibGVFdmVudHMoV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1BSRVNTRUQpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKworICAgIHRleHQuYWRkS2V5TGlzdGVuZXIobmV3IEtleUFkYXB0ZXIoKSB7CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBpbnQga2MgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZS5nZXRLZXlDb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTjoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19QOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIChuZXcgVGhyZWFkKHRoaXMpKS5zdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluaXRpYWxUZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybgorICAgICAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZCAiICsKKyAgICAgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2UgIiArCisgICAgICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmICIgKworICAgICAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOCAiICsKKyAgICAgICAgICAgICJcdTA5MzVcdTA5M2ZcdTA5MzdcdTA5M2VcdTA5MjYgIiArCisgICAgICAgICAgICAiXHUwOTJmXHUwOTRiXHUwOTE3ICIgKworICAgICAgICAgICAgIlx1MDkyN1x1MDk0M1x1MDkyNFx1MDkzMFx1MDkzZVx1MDkzN1x1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMCAiICsKKyAgICAgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NjQgIiArCisgICAgICAgICAgICAiXHUwOTI3XHUwOTMwXHUwOTRkXHUwOTJlXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3ICIgKworICAgICAgICAgICAgIlx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyAiICsKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MmVcdTA5MzVcdTA5NDdcdTA5MjRcdTA5M2UgIiArCisgICAgICAgICAgICAiXHUwOTJmXHUwOTQxXHUwOTJmXHUwOTQxXHUwOTI0XHUwOTRkXHUwOTM4XHUwOTM1XHUwOTAzICIgKworICAgICAgICAgICAgIlx1MDkyZVx1MDkzZVx1MDkyZVx1MDkxNVx1MDkzZVx1MDkwMyAiICsKKyAgICAgICAgICAgICJcdTA5MmFcdTA5M2VcdTA5MjNcdTA5NGRcdTA5MjFcdTA5MzVcdTA5M2VcdTA5MzZcdTA5NGRcdTA5MWFcdTA5NDhcdTA5MzUgIiArCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0ICIgKworICAgICAgICAgICAgIlx1MDkzOFx1MDkwMlx1MDkxY1x1MDkyRiI7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVFbnVtQ2hhbmdlZCgpCisgICAgeworICAgICAgICBTdHJpbmcgcyA9IGJvdW5kLmdldFNlbGVjdGVkSXRlbSgpOworICAgICAgICBpZiAocy5lcXVhbHMoIkNoYXIiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRDaGFyYWN0ZXJJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiV29yZCIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoInRXb3JkQnJlYWsiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJMaW5lIEJyZWFrIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0TGluZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIC8qIGlmIChzLmVxdWFscygiU2VudGVuY2UiKSkgKi8geworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRTZW50ZW5jZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgIC8vdGV4dC5zZWxlY3QoMCwwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVGb3J3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVudGVyaW5nIGhhbmRsZUZvcndhcmQiKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhhbmRsZUZvcndhcmQ6IG9sZFN0YXJ0PSIgKyBvbGRTdGFydCArICIsIG9sZEVuZD0iICsgb2xkRW5kKTsKKworICAgICAgICAgICAgaWYgKG9sZEVuZCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCBpdGVyLmZvbGxvd2luZygwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIuZm9sbG93aW5nKG9sZEVuZC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChlID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGUgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArCisgICAgICAgICAgICAgICAgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlQmFja3dhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgaWYgKG9sZFN0YXJ0IDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLmZvbGxvd2luZyhvbGRTdGFydC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgcHVibGljIGJvb2xlYW4gYWN0aW9uKEV2ZW50IGV2dCwgT2JqZWN0IG9iaikKKyAgICB7CisKKyAgICAgICAgaWYoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIEJ1dHRvbiAmJiBsZWZ0LmVxdWFscyhvYmopKQorICAgICAgICB7CisgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihldnQudGFyZ2V0IGluc3RhbmNlb2YgQnV0dG9uICYmIHJpZ2h0LmVxdWFscyhvYmopKQorICAgICAgICB7CisgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKGV2dC50YXJnZXQgaW5zdGFuY2VvZiBDaG9pY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaGFuZGxlRXZlbnQoRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5pZCA9PSBFdmVudC5LRVlfUFJFU1MgfHwgZXZ0LmlkID09IEV2ZW50LktFWV9BQ1RJT04pIHsKKyAgICAgICAgICAgIGlmIChldnQua2V5ID09IEV2ZW50LlJJR0hUIHx8IChldnQua2V5ID09IDB4MEUgJiYgZXZ0LmNvbnRyb2xEb3duKCkpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleSA9PSBFdmVudC5MRUZUIHx8IChldnQua2V5ID09IDB4MTAgJiYgZXZ0LmNvbnRyb2xEb3duKCkpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIGlmIChldnQuaWQgPT0gRXZlbnQuV0lORE9XX0RFU1RST1kgJiYgZXZ0LnRhcmdldCA9PSB0aGlzKSB7CisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdXBlci5oYW5kbGVFdmVudChldnQpOworICAgIH0qLworCisgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENob2ljZSkgeworICAgICAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcgJiYgCisgICAgICAgICAgICBldnQuZ2V0V2luZG93KCkgPT0gdGhpcykgeworICAgICAgICAgICAgaGlkZSgpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzS2V5RXZlbnQoS2V5RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldnQuZ2V0SUQoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUFJFU1NFRCA6CisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUkVMRUFTRUQgOgorICAgICAgICAgICAgICAgIC8vIGtleSBkZXRlY3Rpb24gZm9yIGxlZnQgYW5kIHJpZ2h0IGJ1dHRvbnMgYXJlIHJlbW92ZWQKKyAgICAgICAgICAgICAgICAvLyB0byBlbXVsYXRlIHRoZSBvbGQgcmVsZWFzZSBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICBpbnQga2V5ID0gZXZ0LmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX04gJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfUCAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODgzMzg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvVGV4dEJvdW5kRGVtby5qYXZhCkBAIC0wLDAgKzEsNDU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRBcmVhOworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxQYW5lOworaW1wb3J0IGphdmF4LnN3aW5nLkJvcmRlckZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKKworcHVibGljIGNsYXNzIFRleHRCb3VuZERlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBuZXcgVGV4dEJvdW5kRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IFRleHRCb3VuZEZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisKKworY2xhc3MgVGV4dEJvdW5kRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBUZXh0Qm91bmRGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICB7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBpbml0KCk7CisgICAgICAgIHN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIHJ1bigpCisgICAgeworICAgICAgICAvKgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjaGVja0NoYW5nZSgpOworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCgyNTApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBpbnQgcywgZTsKKyAgICBpbnQgdHMsIHRlOworCisgICAgcHVibGljIHZvaWQgY2hlY2tDaGFuZ2UoKQorICAgIHsKKy8vICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNoZWNrQ2hhbmdlLi4uIik7CisgICAgICAgIGlmICgodGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGKSAhPSB0cyB8fAorICAgICAgICAgICAgKHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkYpICE9IHRlKSB7CisKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wUyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wRSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPiIpOworLy8gICAgICAgICAgc2VsZWN0KDAsIDApOworLy8gICAgICAgICAgc2VsZWN0KHRlbXBTLCB0ZW1wRSk7CisgICAgICAgICAgICAvL3NlbGVjdCh0ZW1wUyAtICh0cyAtIHMpLCB0ZW1wRSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPCIpOworCisKKy8vICAgICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICBzKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisvLyAgICAgICAgICBzZWxlY3QocyAtICh0cyAtIHMpLCBlIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oInMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxrZHNsa3NqIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNJbiwgaW50IGVJbikKKyAgICB7CisgICAgICAgIHMgPSBzSW47CisgICAgICAgIGUgPSBlSW47CisgICAgICAgIHRleHQuc2VsZWN0KHMsIGUpOworICAgICAgICB0cyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgdGUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworLy8gICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIisodHMtcykrIiwiKyh0ZS1lKSk7CisvLyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIHM7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgfQorCisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gZTsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHN5bmNocm9uaXplZCB2b2lkIHNlbGVjdFJhbmdlKGludCBzLCBpbnQgZSkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL2lmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworICAgICAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0KHMsZSk7CisgICAgICAgICAgICAvL30KKy8vICAgICAgICAgIGlmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQUdIISBzZWxlY3QoIitzKyIsIitlKyIpIC0+ICgiKworLy8gICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkrIiwiK2dldFNlbGVjdGlvbkVuZCgpKyIpIik7CisvLyAgICAgICAgICAgICAgdGV4dC5zZWxlY3QocyAtIChnZXRTZWxlY3Rpb25TdGFydCgpIC0gcyksIGUgLSAoZ2V0U2VsZWN0aW9uRW5kKCkgLSBlKSk7CisvLyAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBidWlsZEdVSSgpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICB9CisKKworICAgIHZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgIGlmIChmb250ICE9IG51bGwpCisgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgY29udGFpbmVyLmFkZChmb28pOworICAgIH0KKworCisKKyAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICB7CisgICAgICAgIHNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgUGFuZWwgdG9wUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgdGl0bGVMYWJlbCA9CisgICAgICAgICAgICAgICAgbmV3IExhYmVsKCJUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOwordGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKK3RleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KERlbW9VdGlsaXR5LmVkaXRGb250KTsKKyAgICAgICAgICAgIHRleHQuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMiwgMiwgMiwgMikpOworCisgICAgICAgIGFkZCgiQ2VudGVyIiwgbmV3IEpTY3JvbGxQYW5lKHRleHQsIEpTY3JvbGxQYW5lLlZFUlRJQ0FMX1NDUk9MTEJBUl9BTFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICBKU2Nyb2xsUGFuZS5IT1JJWk9OVEFMX1NDUk9MTEJBUl9ORVZFUikpOworCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCwKKyAgICAgICAgICAgIG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKSxEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodFBhbmVsKTsKKworICAgICAgICAvL2xheW91dCgpOworICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICAKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9QUkVTU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9SRUxFQVNFRCk7CisKKyAgICB0ZXh0LmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgaW50IGtjID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICBzd2l0Y2ggKGUuZ2V0S2V5Q29kZSgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX046CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyAobmV3IFRocmVhZCh0aGlzKSkuc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIFN0cmluZyBnZXRJbml0aWFsVGV4dCgpCisgICAgeworICAgICAgICByZXR1cm4KKyAgICAvKgorICAgICAgICAgICAgIlwiVGhpcyBpcyBhIHNlbnRlbmNlLlwiIFRoaXMgaXMgbm90LlwiIFwiYmVjYXVzZS4gQW5kIGdvLiAiICsKKyAgICAgICAgICAgICJUaGlzIGlzIGEgc2ltcGxlIDAxMi41NjYsNSBzYW1wbGUgc2VudGVuY2UuIFxuIisKKyAgICAgICAgICAgICJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiBcbiIrCisgICAgICAgICAgICAiTmVsIG1lenpvIGRlbCBjYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluICIrCisgICAgICAgICAgICAgICAgInVuYSBzZWx2YSBvc2N1cmEuIFxuIisKKyAgICAgICAgICAgICJDaGUgbGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiBcbiIrCisgICAgICAgICAgICAiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISBcbiIrCisgICAgICAgICAgICAiRG9uJ3Qgcm9jayB0aGUgYm9hdC5cblxuIisKKyAgICAgICAgICAgICJCZWNhdXNlIEkgYW0gdGhlIGRhZGR5LCB0aGF0IGlzIHdoeS4gXG4iKworICAgICAgICAgICAgIk5vdCBvbiBteSB0aW1lIChlbCB0aW1vLikhIFxuIisKKyAgICAgICAgICAgICJUYWJcdFRhYlxyVGFiXHRXb3cuIisKKyAgICAgICAgICAgICJTbyB3aGF0ISFcblxuIisKKyAgICAgICAgICAgICJJcyB0aGlzIGEgcXVlc3Rpb24/Pz8gICIgKworICAgICAgICAgICAgIkkgd29uZGVyLi4uSG1tLlxuIiArCisgICAgICAgICAgICAiSGFycmlzIHRodW1iZWQgZG93biBzZXZlcmFsLCBpbmNsdWRpbmcgXCJBd2F5IFdlIEdvXCIgIisKKyAgICAgICAgICAgICAgICAiKHdoaWNoIGJlY2FtZSB0aGUgaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIFxuIisKKyAgICAgICAgICAgICJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKworICAgICAgICAgICAgIldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOiBcIkJlYXV0aWZ1bGx5IHRob3VnaHQtb3V0IGFuZCAiKworICAgICAgICAgICAgICAgICJkaXJlY3RlZC5cIlxuIisKKyAgICAgICAgICAgICJIYXZlIHlvdSBldmVyIHNhaWQsIFwiVGhpcyBpcyB3aGVyZSBJIHNoYWxsIGxpdmVcIj8gXG4iKworICAgICAgICAgICAgIkhlIDEwMDAsMjMzLDQ1Ni4wMDAgYW5zd2VyZWQsIFwiWW91IG1heSBub3QhXCIgXG4iKworICAgICAgICAgICAgIkFub3RoZXIgcG9wdWxhciBzYXlpbmcgaXM6IFwiSG93IGRvIHlvdSBkbz9cIi4gXG4iKworICAgICAgICAgICAgIldoYXQgaXMgdGhlIHByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IFxuIisKKyAgICAgICAgICAgICJZZXMsIEkgYW0gMSwyMy4zMjIlIGRlZmluYXRlbGx5IDEyXCIgdGFsbCEhIjsKKyAgICAqLworICAgICAgICAgICAgIihcIlRoaXMgaXMgYSBjb21wbGV0ZSBzZW50ZW5jZS5cIikgVGhpcyBpcyAoXCJub3QuXCIpIGFsc28uICAiCisgICAgICAgICAgICArIkFuIGFiYnJldmlhdGlvbiBpbiB0aGUgbWlkZGxlLCBldGMuIGFuZCBvbmUgYXQgdGhlIGVuZCwgZXRjLiAiKworICAgICAgICAgICAgICAgICJUaGlzICIKKyAgICAgICAgICAgICsiaXMgYSBzaW1wbGUgc2FtcGxlIDAxMi41NjYsNSBzZW50ZW5jZS4gSXQgZG9lc24ndCAiCisgICAgICAgICAgICArImhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UsIGFzIHlvdSBjYW4gc2VlLiBOZWwgbWV6em8gZGVsICBjIgorICAgICAgICAgICAgKyJhbW1pbiBkaSBub3N0cmEgdml0YSwgbWkgcml0cm92YWkgaW4gdW5hIHNlbHZhIG9zY3VyYS4gQ2hlICIKKyAgICAgICAgICAgICsibGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiBOb3Qgb24gbXkgdGltZSAoZWwgdGltby4pISBBbmQgIgorICAgICAgICAgICAgKyJ0YWJ1bGF0ZWQgY29sdW1uczogXHRDb2wxXHRDb2wyXHQzLDQ1NiUuXHQgIgorICAgICAgICAgICAgKyJJcyB0aGlzIGEgcXVlc3Rpb24/Pz8gIEkgd29uZGVyLi4uIEhtbS4gSGFycmlzIHRodW1iZWQgIgorICAgICAgICAgICAgKyJkb3duIHNldmVyYWwsIGluY2x1ZGluZyBcIkF3YXkgV2UgR29cIiAod2hpY2ggYmVjYW1lIHRoZSAgIgorICAgICAgICAgICAgKyJodWdlIHN1Y2Nlc3MgT2tsYWhvbWEhKS4gT25lIHNwZWNpZXMsIEIuIGFudGhyYWNpcywgaXMgICIKKyAgICAgICAgICAgICsiaGlnaGx5IHZpcnVsZW50LiBXb2xmIHNhaWQgYWJvdXQgU291bmRlcjogXCJCZWF1dGlmdWxseSAgIgorICAgICAgICAgICAgKyJ0aG91Z2h0LW91dCBhbmQgZGlyZWN0ZWQuXCIgSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgIisKKyAgICAgICAgICAgICAgICAid2hlcmUgSSAiCisgICAgICAgICAgICArInNoYWxsIGxpdmVcIj8gSGUgc2FpZCAxMDAwLDIzMyw0NTYuMDAwIGFuZCBhbnN3ZXJlZCwgXCJZb3UgIisKKyAgICAgICAgICAgICAgICAibWF5IG5vdCFcIiAgIgorICAgICAgICAgICAgKyJBbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcIkhvdyBkbyB5b3UgZG8/XCIuIFdoYXQgaXMgdGhlICAiCisgICAgICAgICAgICArInByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IFllcywgSSBhbSAxMlwnIDNcIiB0YWxsISEiOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgaGFuZGxlRW51bUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHMgPSBib3VuZC5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJDaGFyIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0Q2hhcmFjdGVySW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIldvcmQiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJ0V29yZEJyZWFrIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiTGluZSBCcmVhayIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldExpbmVJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBpZiAocy5lcXVhbHMoIlNlbnRlbmNlIikpICovIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0U2VudGVuY2VJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAvL3RleHQuc2VsZWN0KDAsMCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlRm9yd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnRlcmluZyBoYW5kbGVGb3J3YXJkIik7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoYW5kbGVGb3J3YXJkOiBvbGRTdGFydD0iICsgb2xkU3RhcnQgKyAiLCBvbGRFbmQ9IiArIG9sZEVuZCk7CisKKyAgICAgICAgICAgIGlmIChvbGRFbmQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgaXRlci5mb2xsb3dpbmcoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLmZvbGxvd2luZyhvbGRFbmQtMSk7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlID0gczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKworICAgICAgICAgICAgICAgIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUJhY2t3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlID0gaXRlci5mb2xsb3dpbmcob2xkU3RhcnQtMSk7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKyBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2hvaWNlKSB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRXaW5kb3coKSA9PSB0aGlzKSB7CisgICAgICAgICAgICBoaWRlKCk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2dC5nZXRJRCgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEIDoKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRCA6CisgICAgICAgICAgICAgICAgLy8ga2V5IGRldGVjdGlvbiBmb3IgbGVmdCBhbmQgcmlnaHQgYnV0dG9ucyBhcmUgcmVtb3ZlZAorICAgICAgICAgICAgICAgIC8vIHRvIGVtdWxhdGUgdGhlIG9sZCByZWxlYXNlIGJlaGF2aW91cgorICAgICAgICAgICAgICAgIGludCBrZXkgPSBldnQuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTiAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19QICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTNmMGMyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGFuZCBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIGRlbW8gYXBwbGljYXRpb25zLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjOTY0NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mRGVtby5qYXZhCkBAIC0wLDAgKzEsNTI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYm5mOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworCitwdWJsaWMgY2xhc3MgUmJuZkRlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0IHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qCisgICAgICogY29kZSB0byBydW4gdGhlIGRlbW8gYXMgYW4gYXBwbGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmd2KSB7CisgICAgICAgIG5ldyBSYm5mRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpbWVuc2lvbiBnZXREZWZhdWx0RnJhbWVTaXplKERlbW9BcHBsZXQgYXBwbGV0LCBGcmFtZSBmKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKDQzMCwyNzApOworICAgIH0KKworICAgIHByb3RlY3RlZCBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgZmluYWwgRnJhbWUgd2luZG93ID0gbmV3IEZyYW1lKCJOdW1iZXIgU3BlbGxvdXQgRGVtbyIpOworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg4MDAsIDYwMCk7CisgICAgICAgIHdpbmRvdy5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgICBQYW5lbCBtYWluUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbWFpblBhbmVsLnNldExheW91dChuZXcgR3JpZExheW91dCgxLDIpKTsKKworICAgICAgICBjb21tZW50YXJ5RmllbGQgPSBuZXcgVGV4dEFyZWEoIiIsIDAsIDAsIFRleHRBcmVhLlNDUk9MTEJBUlNfVkVSVElDQUxfT05MWSk7CisgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRTaXplKDgwMCwgNTApOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbMF0pOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0RWRpdGFibGUoZmFsc2UpOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0Rm9udChuZXcgRm9udCgiSGVsdmV0aWNhIiwgRm9udC5QTEFJTiwgMTQpKTsKKworICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUmJuZlNhbXBsZVJ1bGVTZXRzLnVzRW5nbGlzaCwgTG9jYWxlLlVTKTsKKyAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgIG51bWJlckZvcm1hdHRlciA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4jIyMjIyMjIyMjIik7CisgICAgICAgIHBhcnNlUG9zaXRpb24gPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgdGhlTnVtYmVyID0gMDsKKworICAgICAgICBudW1iZXJGaWVsZCA9IG5ldyBUZXh0RmllbGQoKTsKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICB0ZXh0RmllbGQgPSBuZXcgRGVtb1RleHRGaWVsZEhvbGRlcigpOworICAgICAgICB0ZXh0RmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICBydWxlc0ZpZWxkID0gbmV3IERlbW9UZXh0RmllbGRIb2xkZXIoKTsKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRGb250KG5ldyBGb250KCJTZXJpZiIsIEZvbnQuUExBSU4sIDE0KSk7CisgICAgICAgIGxlbmllbnRQYXJzZUJ1dHRvbiA9IG5ldyBDaGVja2JveCgiTGVuaWVudCBwYXJzZSIsIGxlbmllbnRQYXJzZSk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuYWRkVGV4dExpc3RlbmVyKG5ldyBUZXh0TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0VmFsdWVDaGFuZ2VkKFRleHRFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFudW1iZXJGaWVsZEhhc0ZvY3VzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgTnVtYmVyIHRlbXAgPSBudW1iZXJGb3JtYXR0ZXIucGFyc2UoZmllbGRUZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcCA9PSBudWxsIHx8IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRoZU51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZXRUZXh0KCJQQVJTRSBFUlJPUiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gdGVtcC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dChzcGVsbG91dEZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyLCBydWxlU2V0TmFtZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG51bWJlckZpZWxkLmFkZEZvY3VzTGlzdGVuZXIobmV3IEZvY3VzQWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHRleHRGaWVsZC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQoIlBBUlNFIEVSUk9SIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpIDwgZmllbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgZmllbGRUZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICB0ZXh0RmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dCgiUEFSU0UgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh0ZXh0RmllbGQuZ2V0VGV4dCgpKTsgLy8gdGV4dEZpZWxkLnJlcGFpbnQoKSBkaWRuJ3Qgd29yayByaWdodAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBydWxlc0ZpZWxkLmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldEtleUNoYXIoKSA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSXRlbSgpLmVxdWFscygiQ3VzdG9tIikgfHwgIWZpZWxkVGV4dC5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldHNbZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEluZGV4KCldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGVtcCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZmllbGRUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnNldExlbmllbnRQYXJzZU1vZGUobGVuaWVudFBhcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVTZXQgPSBmaWVsZFRleHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbUmJuZlNhbXBsZVJ1bGVTZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0Q29tbWVudGFyeS5sZW5ndGggLSAxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIHgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVzRmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCkuZXF1YWxzKCJDdXN0b20iKSB8fCAhZmllbGRUZXh0LmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRzW2Zvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmaWVsZFRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21SdWxlU2V0ID0gZmllbGRUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChydWxlc0ZpZWxkLmdldFRleHQoKSk7IC8vIHJ1bGVzRmllbGQucmVwYWludCgpIGRpZG4ndCB3b3JrIHJpZ2h0CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBsZW5pZW50UGFyc2VCdXR0b24uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbGVuaWVudFBhcnNlID0gbGVuaWVudFBhcnNlQnV0dG9uLmdldFN0YXRlKCk7CisgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKworICAgICAgICBQYW5lbCBsZWZ0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbGVmdFBhbmVsLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBQYW5lbCBwYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgUGFuZWwgcGFuZWwxID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMS5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMSkpOworICAgICAgICBwYW5lbDEuYWRkKG5ldyBQYW5lbCgpKTsKKyAgICAgICAgcGFuZWwxLmFkZChudW1iZXJGaWVsZCwgIkNlbnRlciIpOworICAgICAgICBwYW5lbDEuYWRkKGxlbmllbnRQYXJzZUJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDEsICJDZW50ZXIiKTsKKyAgICAgICAgUGFuZWwgcGFuZWwyID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMi5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMykpOworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwMCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgxMDApOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIisxIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgdGhlTnVtYmVyICo9IDEwOworICAgICAgICAgICAgICAgIHJlZGlzcGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgcGFuZWwyLmFkZChuZXcgUGFuZWwoKSk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHRoZU51bWJlciAvPSAxMDsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xMDAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCItMTAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDIsICJFYXN0Iik7CisgICAgICAgIGxlZnRQYW5lbC5hZGQocGFuZWwsICJOb3J0aCIpOworICAgICAgICBsZWZ0UGFuZWwuYWRkKHRleHRGaWVsZCwgIkNlbnRlciIpOworCisgICAgICAgIFBhbmVsIHJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcmlnaHRQYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgZm9ybWF0dGVyTWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5hZGRJdGVtKFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TmFtZXNbaV0pOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW0oIkN1c3RvbSIpOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIENob2ljZSBzb3VyY2UgPSAoQ2hvaWNlKShlLmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICBpbnQgaXRlbSA9IHNvdXJjZS5nZXRTZWxlY3RlZEluZGV4KCk7CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TG9jYWxlc1tpdGVtXTsKKworICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbaXRlbV0pOworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsICYmIChsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoIml3IikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygicnUiKSB8fCBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImphIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygiZWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgbG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKCJ6aCIpKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQudG9nZ2xlUGFuZXMoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBydWxlc0ZpZWxkLnRvZ2dsZVBhbmVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXNGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtYWtlTmV3U3BlbGxvdXRGb3JtYXR0ZXIoKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVTZXRNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisKKyAgICAgICAgcnVsZVNldE1lbnUuYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIFBhbmVsIG1lbnVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBtZW51UGFuZWwuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDEsIDIpKTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChmb3JtYXR0ZXJNZW51KTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChydWxlU2V0TWVudSk7CisgICAgICAgIHJpZ2h0UGFuZWwuYWRkKG1lbnVQYW5lbCwgIk5vcnRoIik7CisKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICByaWdodFBhbmVsLmFkZChydWxlc0ZpZWxkLCAiQ2VudGVyIik7CisKKyAgICAgICAgbWFpblBhbmVsLmFkZChsZWZ0UGFuZWwpOworICAgICAgICBtYWluUGFuZWwuYWRkKHJpZ2h0UGFuZWwpOworCisgICAgICAgIHdpbmRvdy5hZGQobWFpblBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIHdpbmRvdy5hZGQoY29tbWVudGFyeUZpZWxkLCAiU291dGgiKTsKKworICAgICAgICB3aW5kb3cuZG9MYXlvdXQoKTsKKyAgICAgICAgd2luZG93LnNob3coKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdzsKKyAgICB9CisKKyAgICB2b2lkIHJvbGwoaW50IGRlbHRhKSB7CisgICAgICAgIHRoZU51bWJlciArPSBkZWx0YTsKKyAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgfQorCisgICAgdm9pZCByZWRpc3BsYXkoKSB7CisgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKyAgICB9CisKKyAgICB2b2lkIG1ha2VOZXdTcGVsbG91dEZvcm1hdHRlcigpIHsKKyAgICAgICAgaW50IGl0ZW0gPSBmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgU3RyaW5nIGZvcm1hdHRlck1lbnVJdGVtID0gZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKworICAgICAgICBpZiAoZm9ybWF0dGVyTWVudUl0ZW0uZXF1YWxzKCJDdXN0b20iKSkgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tpdGVtXSk7CisKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldExvY2FsZXNbaXRlbV07CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpCisgICAgICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0c1tpdGVtXSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBzcGVsbG91dEZvcm1hdHRlci5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgIHBvcHVsYXRlUnVsZVNldE1lbnUoKTsKKyAgICB9CisKKyAgICB2b2lkIHBvcHVsYXRlUnVsZVNldE1lbnUoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IHNwZWxsb3V0Rm9ybWF0dGVyLmdldFJ1bGVTZXROYW1lcygpOworCisgICAgICAgIGlmIChydWxlU2V0TWVudSAhPSBudWxsKSB7CisgICAgICAgICAgICBydWxlU2V0TWVudS5yZW1vdmVBbGwoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1bGVTZXRNZW51LmFkZEl0ZW0ocnVsZVNldE5hbWVzW2ldKTsKKworICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBydWxlU2V0TmFtZSA9IHJ1bGVTZXROYW1lc1swXTsKKyAgICB9CisKKyAgICBwcml2YXRlIEZyYW1lIGRlbW9XaW5kb3cgPSBudWxsOworCisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IG51bWJlckZpZWxkOworICAgIHByaXZhdGUgRGVtb1RleHRGaWVsZEhvbGRlciB0ZXh0RmllbGQ7CisgICAgcHJpdmF0ZSBEZW1vVGV4dEZpZWxkSG9sZGVyIHJ1bGVzRmllbGQ7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGNvbW1lbnRhcnlGaWVsZDsKKyAgICBwcml2YXRlIENoZWNrYm94IGxlbmllbnRQYXJzZUJ1dHRvbjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKworICAgIHByaXZhdGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHNwZWxsb3V0Rm9ybWF0dGVyOworICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdCBudW1iZXJGb3JtYXR0ZXI7CisgICAgcHJpdmF0ZSBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb247CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gdHJ1ZTsKKworICAgIHByaXZhdGUgZG91YmxlIHRoZU51bWJlciA9IDA7CisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkVkaXQgPSB0cnVlOworCisgICAgcHJpdmF0ZSBDaG9pY2UgZm9ybWF0dGVyTWVudTsKKyAgICBwcml2YXRlIENob2ljZSBydWxlU2V0TWVudTsKKyAgICBwcml2YXRlIFN0cmluZyBydWxlU2V0TmFtZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGN1c3RvbVJ1bGVTZXQgPSAiTk8gUlVMRVMhIjsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgcHVibGljIERlbW9UZXh0RmllbGQoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiB0ZXh0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgRm9udCBmb250ID0gZ2V0Rm9udCgpOworICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgZy5zZXRGb250KGZvbnQpOworICAgICAgICBTdHJpbmcgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgIGludCBsaW5lSGVpZ2h0ID0gZm0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIGludCB3aWR0aCA9IGdldFNpemUoKS53aWR0aDsKKyAgICAgICAgaW50IHBlblkgPSBmbS5nZXRBc2NlbnQoKTsKKyAgICAgICAgaW50IGxpbmVTdGFydCA9IDA7CisgICAgICAgIGludCB0ZW1wTGluZUVuZCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsaW5lRW5kID0gMDsKKyAgICAgICAgaW50IG1heExpbmVFbmQgPSAwOworICAgICAgICB0b3RhbEhlaWdodCA9IDA7CisKKyAgICAgICAgd2hpbGUgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG1heExpbmVFbmQgPSB0ZXh0LmluZGV4T2YoJ1xuJywgbGluZVN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChtYXhMaW5lRW5kID09IC0xKQorICAgICAgICAgICAgICAgIG1heExpbmVFbmQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIHdoaWxlICh0ZW1wTGluZUVuZCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgJiYgZm0uc3RyaW5nV2lkdGgodGV4dC5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0LCB0ZW1wTGluZUVuZCkpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGVtcExpbmVFbmQ7CisgICAgICAgICAgICAgICAgdGVtcExpbmVFbmQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZVN0YXJ0ID49IGxpbmVFbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVtcExpbmVFbmQgPT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxpbmVFbmQgPSB0ZW1wTGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lRW5kID4gbWF4TGluZUVuZCkKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gbWF4TGluZUVuZDsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVFbmQpLCAwLCBwZW5ZKTsKKyAgICAgICAgICAgIHBlblkgKz0gbGluZUhlaWdodDsKKyAgICAgICAgICAgIHRvdGFsSGVpZ2h0ICs9IGxpbmVIZWlnaHQ7CisgICAgICAgICAgICBsaW5lU3RhcnQgPSBsaW5lRW5kOworICAgICAgICAgICAgaWYgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkgJiYgdGV4dC5jaGFyQXQobGluZVN0YXJ0KSA9PSAnXG4nKQorICAgICAgICAgICAgICAgICsrbGluZVN0YXJ0OworICAgICAgICB9CisgICAgfQorCisvKgorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBnZXRQYXJlbnQoKS5nZXRTaXplKCk7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKHNpemUud2lkdGgsIHRvdGFsSGVpZ2h0KTsKKyAgICB9CisqLworCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKyAgICBwcml2YXRlIGludCB0b3RhbEhlaWdodDsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZEhvbGRlciBleHRlbmRzIFBhbmVsIHsKKyAgICBwdWJsaWMgRGVtb1RleHRGaWVsZEhvbGRlcigpIHsKKyAgICAgICAgdGYxID0gbmV3IFRleHRBcmVhKCIiLCAwLCAwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICB0ZjIgPSBuZXcgRGVtb1RleHRGaWVsZCgpOworICAgICAgICBzcCA9IG5ldyBTY3JvbGxQYW5lKCk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworCisgICAgICAgIHNwLmFkZCh0ZjIsICJUZXh0RmllbGQxIik7CisgICAgICAgIHNwLnNldFZpc2libGUoZmFsc2UpOworICAgICAgICBhZGQodGYxLCAiVGVzdEZpZWxkMiIpOworICAgICAgICBhZGQoc3AsICJTY3JvbGxQYW5lIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9jdXNMaXN0ZW5lcihGb2N1c0xpc3RlbmVyIGwpIHsKKyAgICAgICAgdGYxLmFkZEZvY3VzTGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkS2V5TGlzdGVuZXIoS2V5TGlzdGVuZXIgbCkgeworICAgICAgICB0ZjEuYWRkS2V5TGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0ZjEuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdGYyLnNldFRleHQodGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGYxLmdldFRleHQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRmMS5zZWxlY3Qoc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCkgeworICAgICAgICB0ZjEuc2VsZWN0QWxsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdG9nZ2xlUGFuZXMoYm9vbGVhbiBjYW5TaG93UmVhbFRleHRGaWVsZCkgeworICAgICAgICBpZiAoY2FuU2hvd1JlYWxUZXh0RmllbGQgIT0gc2hvd2luZ1JlYWxUZXh0RmllbGQpIHsKKyAgICAgICAgICAgIENhcmRMYXlvdXQgbGF5b3V0ID0gKENhcmRMYXlvdXQpKGdldExheW91dCgpKTsKKyAgICAgICAgICAgIGxheW91dC5uZXh0KHRoaXMpOworICAgICAgICAgICAgc2hvd2luZ1JlYWxUZXh0RmllbGQgPSBjYW5TaG93UmVhbFRleHRGaWVsZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgVGV4dEFyZWEgdGYxID0gbnVsbDsKKyAgICBwcml2YXRlIERlbW9UZXh0RmllbGQgdGYyID0gbnVsbDsKKyAgICBwcml2YXRlIFNjcm9sbFBhbmUgc3AgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93aW5nUmVhbFRleHRGaWVsZCA9IHRydWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZTYW1wbGVSdWxlU2V0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4Y2YxNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YQpAQCAtMCwwICsxLDE5NDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJibmY7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEEgY29sbGVjdGlvbiBvZiBleGFtcGxlIHJ1bGUgc2V0cyBmb3IgdXNlIHdpdGggUnVsZUJhc2VkTnVtYmVyRm9ybWF0LgorICogVGhlc2UgZXhhbXBsZXMgYXJlIGludGVuZGVkIHRvIHNlcnZlIGJvdGggYXMgZGVtb25zdHJhdGlvbnMgb2Ygd2hhdCBjYW4KKyAqIGJlIGRvbmUgd2l0aCB0aGlzIGZyYW1ld29yaywgYW5kIGFzIHN0YXJ0aW5nIHBvaW50cyBmb3IgZGVzaWduaW5nIG5ldworICogcnVsZSBzZXRzLgorICoKKyAqIEZvciB0aG9zZSB0aGF0IGNsYWltIHRvIHJlcHJlc2VudCBudW1iZXItc3BlbGxvdXQgcnVsZXMgZm9yIGxhbmd1YWdlcworICogb3RoZXIgdGhhbiBVLlMuIEVuZ2xpc2gsIHdlIG1ha2Ugbm8gY2xhaW1zIG9mIGVpdGhlciBhY2N1cmFjeSBvcgorICogY29tcGxldGVuZXNzLiAgSW4gZmFjdCwgd2Uga25vdyB0aGVtIHRvIGJlIGluY29tcGxldGUsIGFuZCBzdXNwZWN0CisgKiBtb3N0IGhhdmUgbWlzdGFrZXMgaW4gdGhlbS4gIElmIHlvdSBzZWUgc29tZXRoaW5nIHRoYXQgeW91IGtub3cgaXMgd3JvbmcsCisgKiBwbGVhc2UgdGVsbCB1cyEKKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKi8KK3B1YmxpYyBjbGFzcyBSYm5mU2FtcGxlUnVsZVNldHMgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBTcGVsbG91dCBydWxlcyBmb3IgdmFyaW91cyBsYW5ndWFnZXMKKyAgICAvLworICAgIC8vIFRoZSBmb2xsb3dpbmcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRlc2NyaXB0aW9ucyBzaG93IHRoZSBydWxlcyBmb3IKKyAgICAvLyBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gdmFyaW91cyBsYW5ndWFnZXMuICBBcyBtZW50aW9uZWQKKyAgICAvLyBiZWZvcmUsIHdlIGNhbm5vdCB2b3VjaCBmb3IgdGhlIGFjY3VyYWN5IG9yIGNvbXBsZXRlbmVzcyBvZiB0aGlzCisgICAgLy8gZGF0YSwgYWx0aG91Z2ggd2UgYmVsaWV2ZSBpdCdzIHByZXR0eSBjbG9zZS4gIEJhc2ljYWxseSwgdGhpcworICAgIC8vIHJlcHJlc2VudHMgb25lIGRheSdzIHdvcnRoIG9mIFdlYi1zdXJmaW5nLiAgSWYgeW91IGNhbiBzdXBwbHkgdGhlCisgICAgLy8gbWlzc2luZyBpbmZvcm1hdGlvbiBpbiBhbnkgb2YgdGhlc2UgcnVsZSBzZXRzLCBvciBpZiB5b3UgZmluZCBlcnJvcnMsCisgICAgLy8gb3IgaWYgeW91IGNhbiBzdXBwbHkgc3BlbGxvdXQgcnVsZXMgZm9yIGxhbmd1YWdlcyB0aGF0IGFyZW4ndCBzaG93bgorICAgIC8vIGhlcmUsIHdlIHdhbnQgdG8gaGVhciBmcm9tIHlvdSEKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFUuUy4gRW5nbGlzaC4gIFRoaXMgZGVtb25zdHJhdGlvbiB2ZXJzaW9uIG9mIHRoZQorICAgICAqIFUuUy4gRW5nbGlzaCBzcGVsbG91dCBydWxlcyBoYXMgZm91ciB2YXJpYW50czogMSkgJXNpbXBsaWZpZWQgaXMgYQorICAgICAqIHNldCBvZiBydWxlcyBzaG93aW5nIHRoZSBzaW1wbGUgbWV0aG9kIG9mIHNwZWxsaW5nIG91dCBudW1iZXJzIGluCisgICAgICogRW5nbGlzaDogMjg5IGlzIGZvcm1hdHRlZCBhcyAidHdvIGh1bmRyZWQgZWlnaHR5LW5pbmUiLiAgMikgJWFsdC10ZWVucworICAgICAqIGlzIHRoZSBzYW1lIGFzICVzaW1wbGlmaWVkLCBleGNlcHQgdGhhdCB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkKKyAgICAgKiB3aG9zZSBodW5kcmVkcyBwbGFjZSBpc24ndCB6ZXJvIGFyZSBmb3JtYXR0ZWQgaW4gaHVuZHJlZHMuICBGb3IgZXhhbXBsZSwKKyAgICAgKiAxLDk4MyBpcyBmb3JtYXR0ZWQgYXMgIm5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXRocmVlLCIgYW5kIDIsMTgzIGlzCisgICAgICogZm9ybWF0dGVkIGFzICJ0d2VudHktb25lIGh1bmRyZWQgZWlnaHR5LXRocmVlLCIgYnV0IDIsMDgzIGlzIHN0aWxsCisgICAgICogZm9ybWF0dGVkIGFzICJ0d28gdGhvdXNhbmQgZWlnaHR5LXRocmVlLiIgIDMpICVvcmRpbmFsIGZvcm1hdHMgdGhlCisgICAgICogdmFsdWVzIGFzIG9yZGluYWwgbnVtYmVycyBpbiBFbmdsaXNoIChlLmcuLCAyODkgaXMgInR3byBodW5kcmVkIGVpZ2h0eS0KKyAgICAgKiBuaW50aCIpLiAgNCkgJWRlZmF1bHQgdXNlcyBhIG1vcmUgY29tcGxpY2F0ZWQgYWxnb3JpdGhtIHRvIGZvcm1hdAorICAgICAqIG51bWJlcnMgaW4gYSBtb3JlIG5hdHVyYWwgd2F5OiAyODkgaXMgZm9ybWF0dGVkIGFzICJ0d28gaHVuZHJlZCBBTkQKKyAgICAgKiBlaWdodHktbmluZSIgYW5kIGNvbW1hcyBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgdGhvdXNhbmRzIGdyb3VwcyBmb3IKKyAgICAgKiB2YWx1ZXMgYWJvdmUgMTAwLDAwMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1c0VuZ2xpc2ggPQorICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBub3JtYWwgc2ltcGxlIGZvcm1hdHRpbmcgcnVsZXMgZm9yIEVuZ2xpc2gKKyAgICAgICAgIiVzaW1wbGlmaWVkOlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgbnVtYmVyIHJ1bGUuICBUaGlzIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgbmVnYXRpdmUKKyAgICAgICAgICAgICAgIC8vIG51bWJlcnMuICBUaGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIGFic29sdXRlCisgICAgICAgICAgICAgICAvLyB2YWx1ZSBpcyBwbGFjZWQgd2hlcmUgdGhlID4+IGlzLgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICAgICAgICAgLy8gZmFjdGlvbiBydWxlLiAgVGhpcyBydWxlIGlzIHVzZWQgZm9yIGZvcm1hdHRpbmcgbnVtYmVycworICAgICAgICAgICAgICAgLy8gd2l0aCBmcmFjdGlvbmFsIHBhcnRzLiAgVGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZQorICAgICAgICAgICAgICAgLy8gbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBpcyBzdWJzdGl0dXRlZCBmb3IgdGhlIDw8LCBhbmQKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbnVtYmVyJ3MgZnJhY3Rpb25hbCBwYXJ0CisgICAgICAgICAgICAgICAvLyAob25lIGRpZ2l0IGF0IGEgdGltZSwgZS5nLiwgMC4xMjMgaXMgInplcm8gcG9pbnQgb25lIHR3bworICAgICAgICAgICAgICAgLy8gdGhyZWUiKSByZXBsYWNlcyB0aGUgPj4uCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGVzIGZvciB0aGUgdmFsdWVzIGZyb20gMCB0byAxOSBhcmUgc2ltcGx5IHRoZQorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIHRob3NlIG51bWJlcnMKKyAgICAgICAgKyAiICAgIHplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7XG4iCisgICAgICAgICsgIiAgICB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47XG4iCisgICAgICAgICsgIiAgICAgICAgc2V2ZW50ZWVuOyBlaWdodGVlbjsgbmluZXRlZW47XG4iCisgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgYXQgMjAsIHdlIHVzZSB0aGUgPj4gdG8gbWFyayB0aGUgcG9zaXRpb24gd2hlcmUKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbnVtYmVyJ3Mgb25lcyBkaWdpdC4gIFRodXMsCisgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IG5lZWQgYSBuZXcgcnVsZSBhdCBldmVyeSBtdWx0aXBsZSBvZiAxMC4gIFRleHQgaW4KKyAgICAgICAgICAgICAgIC8vIGJhY2tldHMgaXMgb21pdHRlZCBpZiB0aGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGlzIGFuCisgICAgICAgICAgICAgICAvLyBldmVuIG11bHRpcGxlIG9mIDEwLgorICAgICAgICArICIgICAgMjA6IHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBhdCAxMDAsIHdlIGNhbiB1c2UgPDwgdG8gbWFyayB0aGUgcG9zaXRpb24gd2hlcmUKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbXVsdGlwbGUgb2YgMTAwIGlzIHRvIGJlCisgICAgICAgICAgICAgICAvLyBpbnNlcnRlZC4gIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YgPj4gaGFzIHNoaWZ0ZWQ6CisgICAgICAgICAgICAgICAvLyBoZXJlLCBpdCByZWZlcnMgdG8gYm90aCB0aGUgb25lcyBwbGFjZSBhbmQgdGhlIHRlbnMgcGxhY2UuCisgICAgICAgICAgICAgICAvLyBUaGUgbWVhbmluZ3Mgb2YgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZSBiYXNlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBvZiB0aGUgcnVsZS4gIEEgcnVsZSdzIGRpdmlzb3IgaXMgKHVzdWFsbHkpIHRoZSBoaWdoZXN0CisgICAgICAgICAgICAgICAvLyBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcnVsZSdzIGJhc2UKKyAgICAgICAgICAgICAgIC8vIHZhbHVlLiAgVGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBkaXZpZGVkIGJ5IHRoZSBydWxlJ3MKKyAgICAgICAgICAgICAgIC8vIGRpdmlzb3IsIGFuZCB0aGUgaW50ZWdyYWwgcXVvdGllbnQgaXMgdXNlZCB0byBnZXQgdGhlIHRleHQKKyAgICAgICAgICAgICAgIC8vIGZvciA8PCwgd2hpbGUgdGhlIHJlbWFpbmRlciBpcyB1c2VkIHRvIHByb2R1Y2UgdGhlIHRleHQKKyAgICAgICAgICAgICAgIC8vIGZvciA+Pi4gIEFnYWluLCB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgICAgICAgICAgIC8vIChpbiB0aGlzIGNhc2UsIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAwKQorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBUaGUgcnVsZXMgZm9yIHRoZSBoaWdoZXIgbnVtYmVycyB3b3JrIHRoZSBzYW1lIHdheSBhcyB0aGUKKyAgICAgICAgICAgICAgIC8vIHJ1bGUgZm9yIDEwMDogQWdhaW4sIHRoZSA8PCBhbmQgPj4gdG9rZW5zIGRlcGVuZCBvbiB0aGUKKyAgICAgICAgICAgICAgIC8vIHJ1bGUncyBkaXZpc29yLCB3aGljaCBmb3IgYWxsIHRoZXNlIHJ1bGVzIGlzIGFsc28gdGhlIHJ1bGUncworICAgICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZS4gIFRvIGdyb3VwIGJ5IHRob3VzYW5kLCB3ZSBzaW1wbHkgZG9uJ3QgaGF2ZSBhbnkKKyAgICAgICAgICAgICAgIC8vIHJ1bGVzIGJldHdlZW4gMSwwMDAgYW5kIDEsMDAwLDAwMC4KKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvblsgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3cgcnVsZS4gIFRoaXMgcnVsZSBzcGVjaWZpZXMgdGhhdCB2YWx1ZXMgb2YgYQorICAgICAgICAgICAgICAgLy8gcXVhZHJpbGxpb24gb3IgbW9yZSBhcmUgc2hvd24gaW4gbnVtZXJhbHMgcmF0aGVyIHRoYW4gd29yZHMuCisgICAgICAgICAgICAgICAvLyBUaGUgPT0gdG9rZW4gbWVhbnMgdG8gZm9ybWF0ICh3aXRoIG5ldyBydWxlcykgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgdGhpcyBydWxlIGFuZCBwbGFjZSB0aGUgcmVzdWx0IHdoZXJlCisgICAgICAgICAgICAgICAvLyB0aGUgPT0gaXMuICBUaGUgIywjIzAgaW5zaWRlIHRoZSA9PSBzaWducyBpcyBhCisgICAgICAgICAgICAgICAvLyBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uICBJdCBzcGVjaWZpZXMgdGhhdCB0aGUgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICAgICAvLyBiZSBmb3JtYXR0ZWQgd2l0aCBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LCBhbmQgdGhhdCBpdAorICAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIGZvcm1hdHRlZCB3aXRoIG5vIGRlY2ltYWwgcGxhY2VzLCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICAgIC8vIGRpZ2l0LCBhbmQgYSB0aG91c2FuZHMgc2VwYXJhdG9yLgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorCisgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGJldHdlZW4gMSwwMDAgYW5kIDksOTk5IHNvbWV3aGF0CisgICAgICAgIC8vIGRpZmZlcmVudGx5OiBJZiB0aGUgaHVuZHJlZHMgZGlnaXQgaXMgbm90IHplcm8sIHRoZSBmaXJzdCB0d28KKyAgICAgICAgLy8gZGlnaXRzIGFyZSB0cmVhdGVkIGFzIGEgbnVtYmVyIG9mIGh1bmRyZWRzLiAgRm9yIGV4YW1wbGUsIDIsMTk3CisgICAgICAgIC8vIHdvdWxkIGNvbWUgb3V0IGFzICJ0d2VudHktb25lIGh1bmRyZWQgbmluZXR5LXNldmVuLiIKKyAgICAgICAgKyAiJWFsdC10ZWVuczpcbiIKKyAgICAgICAgICAgICAgIC8vIGp1c3QgdXNlICVzaW1wbGlmaWVkIHRvIGZvcm1hdCB2YWx1ZXMgYmVsb3cgMSwwMDAKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkgYXJlIGRlbGVnYXRlZCB0byAlJWFsdC1odW5kcmVkcworICAgICAgICAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcuICBUaGUgPiBhZnRlciAiMTAwMCIgZGVjcmVhc2VzIHRoZSBleHBvbmVudAorICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJ1bGUncyByYWRpeCBieSBvbmUsIGNhdXNpbmcgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICAgICAgICAgICAvLyB0byBiZSAxMDAgaW5zdGVhZCBvZiAxLDAwMC4gIFRoaXMgY2F1c2VzIHRoZSBmaXJzdCBUV08KKyAgICAgICAgICAgICAgIC8vIGRpZ2l0cyBvZiB0aGUgbnVtYmVyLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGZpcnN0IGRpZ2l0LAorICAgICAgICAgICAgICAgLy8gdG8gYmUgc2VudCB0byAlJWFsdC1odW5kcmVkcworICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgb2YgMTAsMDAwIGFuZCBtb3JlLCB3ZSBhZ2FpbiBqdXN0IHVzZSAlc2ltcGxpZmllZAorICAgICAgICArICIgICAgMTAsMDAwOiA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IHVzZXMgc29tZSBvYnNjdXJlIHZvb2RvbyBvZiB0aGUgZGVzY3JpcHRpb24gbGFuZ3VhZ2UKKyAgICAgICAgLy8gdG8gZm9ybWF0IHRoZSBmaXJzdCB0d28gZGlnaXRzIG9mIGEgdmFsdWUgaW4gdGhlIHRob3VzYW5kcy4KKyAgICAgICAgLy8gVGhlIHJ1bGUgYXQgMTAgZm9ybWF0cyB0aGUgZmlyc3QgdHdvIGRpZ2l0cyBhcyBhIG11bHRpcGxlIG9mIDEsMDAwCisgICAgICAgIC8vIGFuZCB0aGUgcnVsZSBhdCAxMSBmb3JtYXRzIHRoZSBmaXJzdCB0d28gZGlnaXRzIGFzIGEgbXVsdGlwbGUgb2YKKyAgICAgICAgLy8gMTAwLiAgVGhpcyB3b3JrcyBiZWNhdXNlIG9mIHNvbWV0aGluZyBrbm93biBhcyB0aGUgInJvbGxiYWNrIHJ1bGUiOgorICAgICAgICAvLyBpZiB0aGUgcnVsZSBhcHBsaWNhYmxlIHRvIHRoZSB2YWx1ZSBiZWluZyBmb3JtYXR0ZWQgaGFzIHR3bworICAgICAgICAvLyBzdWJzdGl0dXRpb25zLCB0aGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YKKyAgICAgICAgLy8gdGhlIHJ1bGUncyBkaXZpc29yLCBhbmQgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIElTTidUIGFuIGV2ZW4gbXVsdGlwbGUKKyAgICAgICAgLy8gaWYgdGhlIHJ1bGUncyBkaXZpc29yLCB0aGVuIHRoZSBydWxlIHRoYXQgcHJlY2VkZXMgdGhpcyBvbmUgaW4gdGhlCisgICAgICAgIC8vIGxpc3QgaXMgdXNlZCBpbnN0ZWFkLiAgKFRoZSBbXSBub3RhdGlvbiBpcyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5CisgICAgICAgIC8vIHVzaW5nIHRoaXMgbm90YXRpb246IGEgcnVsZSBjb250YWluaW5nIFtdIGlzIHNwbGl0IGludG8gdHdvIHJ1bGVzLAorICAgICAgICAvLyBhbmQgdGhlIHJpZ2h0IG9uZSBpcyBjaG9zZW4gdXNpbmcgdGhlIHJvbGxiYWNrIHJ1bGUuKSBJbiB0aGlzIGNhc2UsCisgICAgICAgIC8vIGl0IG1lYW5zIHRoYXQgaWYgdGhlIGZpcnN0IHR3byBkaWdpdHMgYXJlIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAsCisgICAgICAgIC8vIHRoZXkncmUgZm9ybWF0dGVkIHdpdGggdGhlIDEwIHJ1bGUgKGNvbnRhaW5pbmcgInRob3VzYW5kIiksIGFuZCBpZgorICAgICAgICAvLyB0aGV5J3JlIG5vdCwgdGhleSdyZSBmb3JtYXR0ZWQgd2l0aCB0aGUgMTEgcnVsZSAoY29udGFpbmluZworICAgICAgICAvLyAiaHVuZHJlZCIpLiAgJSVlbXB0eSBpcyBhIGhhY2sgdG8gY2F1c2UgdGhlIHJvbGxiYWNrIHJ1bGUgdG8gYmUKKyAgICAgICAgLy8gaW52b2tlZDogaXQgbWFrZXMgdGhlIDExIHJ1bGUgaGF2ZSB0d28gc3Vic3RpdHV0aW9ucywgZXZlbiB0aG91Z2gKKyAgICAgICAgLy8gdGhlIHNlY29uZCBzdWJzdGl0dXRpb24gKGNhbGxpbmcgJSVlbXB0eSkgZG9lc24ndCBhY3R1YWxseSBkbworICAgICAgICAvLyBhbnl0aGluZy4KKyAgICAgICAgKyAiJSVhbHQtaHVuZHJlZHM6XG4iCisgICAgICAgICsgIiAgICAwOiBTSE9VTEQgTkVWRVIgR0VUIEhFUkUhO1xuIgorICAgICAgICArICIgICAgMTA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmQ7XG4iCisgICAgICAgICsgIiAgICAxMTogPSVzaW1wbGlmaWVkPSBodW5kcmVkPiUlZW1wdHk+O1xuIgorICAgICAgICArICIlJWVtcHR5OlxuIgorICAgICAgICArICIgICAgMDo7IgorCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdGhlIHNhbWUgYXMgJXNpbXBsaWZpZWQsIGV4Y2VwdCB0aGF0IGl0IGZvcm1hdHMKKyAgICAgICAgLy8gdGhlIHZhbHVlIGFzIGFuIG9yZGluYWwgbnVtYmVyOiAyMzQgaXMgZm9ybWF0dGVkIGFzICJ0d28gaHVuZHJlZAorICAgICAgICAvLyB0aGlydHktZm91cnRoIi4gIE5vdGljZSB0aGUgY2FsbHMgdG8gXnNpbXBsaWZpZWQ6IHdlIGhhdmUgdG8KKyAgICAgICAgLy8gY2FsbCAlc2ltcGxpZmllZCB0byBhdm9pZCBnZXR0aW5nICJzZWNvbmQgaHVuZHJlZCB0aGlydHktZm91cnRoLiIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgYmlsbGlvbnRoO1xuIgorICAgICAgICArICIgICAgICAgIDwlc2ltcGxpZmllZDwgYmlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IHRyaWxsaW9udGg7XG4iCisgICAgICAgICsgIiAgICAgICAgPCVzaW1wbGlmaWVkPCB0cmlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiCisKKyAgICAgICAgLy8gJWRlZmF1bHQgaXMgYSBtb3JlIGVsYWJvcmF0ZSBmb3JtIG9mICVzaW1wbGlmaWVkOyAgSXQgaXMgYmFzaWNhbGx5CisgICAgICAgIC8vIHRoZSBzYW1lLCBleGNlcHQgdGhhdCBpdCBpbnRyb2R1Y2VzICJhbmQiIGJlZm9yZSB0aGUgb25lcyBkaWdpdAorICAgICAgICAvLyB3aGVuIGFwcHJvcHJpYXRlIChiYXNpY2FsbHksIGJldHdlZW4gdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzKSBhbmQKKyAgICAgICAgLy8gc2VwYXJhdGVzIHRoZSB0aG91c2FuZHMgZ3JvdXBzIHdpdGggY29tbWFzIGluIHZhbHVlcyBvdmVyIDEwMCwwMDAuCisgICAgICAgICsgIiVkZWZhdWx0OlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcy4gIFRoZXNlIGFyZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgLy8gYXMgdGhvc2UgZm9yICVzaW1wbGlmaWVkLCBidXQgYXZlIHRvIGJlIHN0YXRlZCBoZXJlIHRvbworICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGlzIGlzIGFuIGVudHJ5IHBvaW50CisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICAgICAgICAgLy8ganVzdCB1c2UgJXNpbXBsaWZpZWQgZm9yIHZhbHVlcyBiZWxvdyAxMDAKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGZyb20gMTAwIHRvIDksOTk5IHVzZSAlJWFuZCB0byBkZWNpZGUgd2hldGhlciBvcgorICAgICAgICAgICAgICAgLy8gbm90IHRvIGludGVycG9zZSB0aGUgImFuZCIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPiUlYW5kPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPiUlYW5kPl07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEwMCwwMDAgYW5kIHVwLCB1c2UgJSVjb21tYXMgdG8gaW50ZXJwb3NlIHRoZQorICAgICAgICAgICAgICAgLy8gY29tbWFzIGluIHRoZSByaWdodCBwbGFjZXMgKGFuZCBhbHNvIHRvIGludGVycG9zZSB0aGUgImFuZCIpCisgICAgICAgICsgIiAgICAxMDAsMDAwPj46IDw8IHRob3VzYW5kWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gaWYgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGlzIHJ1bGUgc2V0IGlzIGdyZWF0ZXIgdGhhbiAxMDAsIGRvbid0CisgICAgICAgIC8vIGFkZCB0aGUgImFuZCI7IGlmIGl0J3MgbGVzcyB0aGFuIDEwMCwgYWRkICJhbmQiIGJlZm9yZSB0aGUgbGFzdAorICAgICAgICAvLyBkaWdpdHMKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHBsYWNlIHRoZSBjb21tYXMKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJlbG93IDEwMCwgYWRkICJhbmQiICh0aGUgYXBvc3Ryb3BoZSBhdCB0aGUKKyAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBpcyBpZ25vcmVkLCBidXQgY2F1c2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQKKyAgICAgICAgICAgICAgIC8vIHRvIGJlIHNpZ25pZmljYW50OiB0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBydWxlcworICAgICAgICAgICAgICAgLy8gY2FsbGluZyAlJWNvbW1hcyBkb24ndCBwdXQgYSBzcGFjZSBiZWZvcmUgaXQpCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IGEgY29tbWEgYWZ0ZXIgdGhlIHRob3VzYW5kcyAob3Igd2hhdGV2ZXIgcHJlY2VkZWQgdGhlCisgICAgICAgICAgICAgICAvLyBodW5kcmVkcykKKyAgICAgICAgKyAiICAgIDEwMDogLCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IGEgY29tbWEgYWZ0ZXIgdGhlIG1pbGxpb25zIChvciB3aGF0ZXZlciBwcmVjZWRlcyB0aGUKKyAgICAgICAgICAgICAgIC8vIHRob3VzYW5kcykKKyAgICAgICAgKyAiICAgIDEwMDA6ICwgPCVkZWZhdWx0PCB0aG91c2FuZCwgPiVkZWZhdWx0PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGFuZCBzbyBvbi4uLgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IgorICAgICAgICAvLyAlJWxlbmllbnQtcGFyc2UgaXNuJ3QgcmVhbGx5IGEgc2V0IG9mIG51bWJlciBmb3JtYXR0aW5nIHJ1bGVzOworICAgICAgICAvLyBpdCdzIGEgc2V0IG9mIGNvbGxhdGlvbiBydWxlcy4gIExlbmllbnQtcGFyc2UgbW9kZSB1c2VzIGEgQ29sbGF0b3IKKyAgICAgICAgLy8gb2JqZWN0IHRvIGNvbXBhcmUgZnJhZ21lbnRzIG9mIHRoZSB0ZXh0IGJlaW5nIHBhcnNlZCB0byB0aGUgdGV4dAorICAgICAgICAvLyBpbiB0aGUgcnVsZXMsIGFsbG93aW5nIG1vcmUgbGVld2F5IGluIHRoZSBtYXRjaGluZyB0ZXh0LiAgVGhpcyBzZXQKKyAgICAgICAgLy8gb2YgcnVsZXMgdGVsbHMgdGhlIGZvcm1hdHRlciB0byBpZ25vcmUgY29tbWFzIHdoZW4gcGFyc2luZyAoaXQKKyAgICAgICAgLy8gYWxyZWFkeSBpZ25vcmVzIHNwYWNlcywgd2hpY2ggaXMgd2h5IHdlIHJlZmVyIHRvIHRoZSBzcGFjZTsgaXQgYWxzbworICAgICAgICAvLyBpZ25vcmVzIGh5cGhlbnMsIG1ha2luZyAidHdlbnR5IG9uZSIgYW5kICJ0d2VudHktb25lIiBwYXJzZQorICAgICAgICAvLyBpZGVudGljYWxseSkKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiAnICcgLCAnLCcgO1xuIjsKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLksuIEVuZ2xpc2guICBVLksuIEVuZ2xpc2ggaGFzIG9uZSBzaWduaWZpY2FudAorICAgICAqIGRpZmZlcmVuY2UgZnJvbSBVLlMuIEVuZ2xpc2g6IHRoZSBuYW1lcyBmb3IgdmFsdWVzIG9mIDEsMDAwLDAwMCwwMDAKKyAgICAgKiBhbmQgaGlnaGVyLiAgSW4gQW1lcmljYW4gRW5nbGlzaCwgZWFjaCBzdWNjZXNzaXZlICItaWxsaW9uIiBpcyAxLDAwMAorICAgICAqIHRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgcHJlY2VkaW5nIG9uZTogMSwwMDAsMDAwLDAwMCBpcyAib25lIGJpbGxpb24iCisgICAgICogYW5kIDEsMDAwLDAwMCwwMDAsMDAwIGlzICJvbmUgdHJpbGxpb24uIiAgSW4gQnJpdGlzaCBFbmdsaXNoLCBlYWNoCisgICAgICogc3VjY2Vzc2l2ZSAiLWlsbGlvbiIgaXMgb25lIG1pbGxpb24gdGltZXMgZ3JlYXRlciB0aGFuIHRoZSBvbmUgYmVmb3JlOgorICAgICAqICJvbmUgYmlsbGlvbiIgaXMgMSwwMDAsMDAwLDAwMCwwMDAgKG9yIHdoYXQgQW1lcmljYW5zIHdvdWxkIGNhbGwgYQorICAgICAqICJ0cmlsbGlvbiIpLCBhbmQgIm9uZSB0cmlsbGlvbiIgaXMgMSwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMC4KKyAgICAgKiAxLDAwMCwwMDAsMDAwIGluIEJyaXRpc2ggRW5nbGlzaCBpcyAib25lIHRob3VzYW5kIG1pbGxpb24uIiAgKFRoaXMKKyAgICAgKiB2YWx1ZSBpcyBzb21ldGltZXMgY2FsbGVkIGEgIm1pbGxpYXJkLCIgYnV0IHRoaXMgd29yZCBzZWVtcyB0byBoYXZlCisgICAgICogZmFsbGVuIGludG8gZGlzdXNlLikKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1a0VuZ2xpc2ggPQorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisgICAgLy8gQ291bGQgc29tZW9uZSBwbGVhc2UgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcgYWJvdXQgIm1pbGxpYXJkIiBmYWxsaW5nCisgICAgLy8gaW50byBkaXN1c2UsIG9yIGhhdmUgbWlzc2VkIGFueSBvdGhlciBkZXRhaWxzIG9mIGhvdyBsYXJnZSBudW1iZXJzCisgICAgLy8gYXJlIHJlbmRlcmVkLiAgQWxzbywgY291bGQgc29tZW9uZSBwbGVhc2UgcHJvdmlkZSBtZSB3aXRoIGluZm9ybWF0aW9uCisgICAgLy8gb24gd2hpY2ggb3RoZXIgRW5nbGlzaC1zcGVha2luZyBjb3VudHJpZXMgdXNlIHdoaWNoIHN5c3RlbT8gIFJpZ2h0IG5vdywKKyAgICAvLyBJJ20gYXNzdW1pbmcgdGhhdCB0aGUgVS5TLiBzeXN0ZW0gaXMgdXNlZCBpbiBDYW5hZGEgYW5kIHRoYXQgYWxsIHRoZQorICAgIC8vIG90aGVyIEVuZ2xpc2gtc3BlYWtpbmcgY291bnRyaWVzIGZvbGxvdyB0aGUgQnJpdGlzaCBzeXN0ZW0uICBDYW4KKyAgICAvLyBzb21lb25lIG91dCB0aGVyZSBjb25maXJtIHRoaXM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgU3BhbmlzaC4gIFRoZSBTcGFuaXNoIHJ1bGVzIGFyZSBxdWl0ZSBzaW1pbGFyIHRvCisgICAgICogdGhlIEVuZ2xpc2ggcnVsZXMsIGJ1dCB0aGVyZSBhcmUgc29tZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6CisgICAgICogRmlyc3QsIHdlIGhhdmUgdG8gcHJvdmlkZSBzZXBhcmF0ZSBydWxlcyBmb3IgbW9zdCBvZiB0aGUgdHdlbnRpZXMKKyAgICAgKiBiZWNhdXNlIHRoZSBvbmVzIGRpZ2l0IGZyZXF1ZW50bHkgcGlja3MgdXAgYW4gYWNjZW50IG1hcmsgdGhhdCBpdAorICAgICAqIGRvZXNuJ3QgaGF2ZSB3aGVuIHN0YW5kaW5nIGFsb25lLiAgU2Vjb25kLCBlYWNoIG11bHRpcGxlIG9mIDEwMCBoYXMKKyAgICAgKiB0byBiZSBzcGVjaWZpZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRoZSBtdWx0aXBsaWVyIG9uIDEwMCB2ZXJ5IG9mdGVuCisgICAgICogY2hhbmdlcyBmb3JtIGluIHRoZSBjb250cmFjdGlvbjogNTAwIGlzICJxdWluaWVudG9zLCIgbm90CisgICAgICogImNpbmNvY2llbnRvcy4iICBJbiBhZGRpdGlvbiwgdGhlIHdvcmQgZm9yIDEwMCBpcyAiY2llbiIgd2hlbgorICAgICAqIHN0YW5kaW5nIGFsb25lLCBidXQgY2hhbmdlcyB0byAiY2llbnRvIiB3aGVuIGZvbGxvd2VkIGJ5IG1vcmUgZGlnaXRzLgorICAgICAqIFRoZXJlIGFsc28gc29tZSBvdGhlciBkaWZmZXJlbmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBzcGFuaXNoID0KKyAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcworICAgICAgICAiLXg6IG1lbm9zID4+O1xuIgorICAgICAgICArICJ4Lng6IDw8IHB1bnRvID4+O1xuIgorICAgICAgICAvLyB3b3JkcyBmb3IgdmFsdWVzIGZyb20gMCB0byAxOQorICAgICAgICArICJjZXJvOyB1bm87IGRvczsgdHJlczsgY3VhdHJvOyBjaW5jbzsgc2Vpczsgc2lldGU7IG9jaG87IG51ZXZlO1xuIgorICAgICAgICArICJkaWV6OyBvbmNlOyBkb2NlOyB0cmVjZTsgY2F0b3JjZTsgcXVpbmNlOyBkaWVjaXNcdTAwZTlpcztcbiIKKyAgICAgICAgKyAiICAgIGRpZWNpc2lldGU7IGRpZWNpb2NobzsgZGllY2ludWV2ZTtcbiIKKyAgICAgICAgLy8gd29yZHMgZm9yIHZhbHVlcyBmcm9tIDIwIHRvIDI5IChuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb25lcyBkaWdpdAorICAgICAgICAvLyBvZnRlbiBwaWNrcyB1cCBhbiBhY2NlbnQgbWFyayBpdCBkb2Vzbid0IGhhdmUgd2hlbiBzdGFuZGluZyBhbG9uZSkKKyAgICAgICAgKyAidmVpbnRlOyB2ZWludGl1bm87IHZlaW50aWRcdTAwZjNzOyB2ZWludGl0clx1MDBlOXM7IHZlaW50aWN1YXRybztcbiIKKyAgICAgICAgKyAiICAgIHZlaW50aWNpbmNvOyB2ZWludGlzXHUwMGU5aXM7IHZlaW50aXNpZXRlOyB2ZWludGlvY2hvO1xuIgorICAgICAgICArICIgICAgdmVpbnRpbnVldmU7XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciBtdWx0aXBsZXMgb2YgMTAgKG5vdGljZSB0aGF0IHRoZSB0ZW5zIGRpZ2l0IGlzIHNlcGFyYXRlZAorICAgICAgICAvLyBmcm9tIHRoZSBvbmVzIGRpZ2l0IGJ5IHRoZSB3b3JkICJ5Ii4pCisgICAgICAgICsgIjMwOiB0cmVpbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IGN1YXJlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNTA6IGNpbmN1ZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjYwOiBzZXNlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IHNldGVudGFbIHkgPj5dO1xuIgorICAgICAgICArICI4MDogb2NoZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjkwOiBub3ZlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgLy8gMTAwIGJ5IGl0c2VsZiBpcyAiY2llbiwiIGJ1dCAxMDAgZm9sbG93ZWQgYnkgc29tZXRoaW5nIGlzICJjaW5ldG8iCisgICAgICAgICsgIjEwMDogY2llbjtcbiIKKyAgICAgICAgKyAiMTAxOiBjaWVudG8gPj47XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciBtdWx0aXBsZXMgb2YgMTAwIChtdXN0IGJlIHN0YXRlZCBiZWNhdXNlIHRoZXkncmUKKyAgICAgICAgLy8gcmFyZWx5IHNpbXBsZSBjb25jYXRlbmF0aW9ucykKKyAgICAgICAgKyAiMjAwOiBkb3NjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjMwMDogdHJlc2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiNDAwOiBjdWF0cm9jaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjUwMDogcXVpbmllbnRvc1sgPj5dO1xuIgorICAgICAgICArICI2MDA6IHNlaXNjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjcwMDogc2V0ZWNpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiODAwOiBvY2hvY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI5MDA6IG5vdmVjaWVudG9zWyA+Pl07XG4iCisgICAgICAgIC8vIGZvciAxLDAwMCwgdGhlIG11bHRpcGxpZXIgb24gIm1pbCIgaXMgb21pdHRlZDogMiwwMDAgaXMgImRvcyBtaWwsIgorICAgICAgICAvLyBidXQgMSwwMDAgaXMganVzdCAibWlsLiIKKyAgICAgICAgKyAiMTAwMDogbWlsWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IG1pbFsgPj5dO1xuIgorICAgICAgICAvLyAxLDAwMCwwMDAgaXMgInVuIG1pbGxvbiwiIG5vdCAidW5vIG1pbGxvbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiB1biBtaWxsXHUwMGYzblsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDA6IDw8IG1pbGxcdTAwZjNuWyA+Pl07XG4iCisgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTsiOworICAgIC8vIFRoZSBTcGFuaXNoIHJ1bGVzIGFyZSBpbmNvbXBsZXRlLiAgSSdtIG1pc3NpbmcgaW5mb3JtYXRpb24gb24gbmVnYXRpdmUKKyAgICAvLyBudW1iZXJzIGFuZCBudW1iZXJzIHdpdGggZnJhY3Rpb25hbCBwYXJ0cy4gIEkgYWxzbyBkb24ndCBoYXZlCisgICAgLy8gaW5mb3JtYXRpb24gb24gbnVtYmVycyBoaWdoZXIgdGhhbiB0aGUgbWlsbGlvbnMKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBGcmVuY2guICBGcmVuY2ggYWRkcyBzb21lIGludGVyZXN0aW5nIHF1aXJrcyBvZiBpdHMKKyAgICAgKiBvd246IDEpIFRoZSB3b3JkICJldCIgaXMgaW50ZXJwb3NlZCBiZXR3ZWVuIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cywKKyAgICAgKiBidXQgb25seSBpZiB0aGUgb25lcyBkaWdpdCBpZiAxOiAyMCBpcyAidmluZ3QsIiBhbmQgMiBpcyAidmluZ3QtZGV1eCwiCisgICAgICogYnV0IDIxIGlzICJ2aW5ndC1ldC11bi4iICAyKSAgVGhlcmUgYXJlIG5vIHdvcmRzIGZvciA3MCwgODAsIG9yIDkwLgorICAgICAqICJxdWF0cmUtdmluZ3RzIiAoImZvdXIgdHdlbnRpZXMiKSBpcyB1c2VkIGZvciA4MCwgYW5kIHZhbHVlcyBwcm9jZWVkCisgICAgICogYnkgc2NvcmUgZnJvbSA2MCB0byA5OSAoZS5nLiwgNzMgaXMgInNvaXhhbnRlLXRyZWl6ZSIgWyJzaXh0eS10aGlydGVlbiJdKS4KKyAgICAgKiBOdW1iZXJzIGZyb20gMSwxMDAgdG8gMSwxOTkgYXJlIHJlbmRlcmVkIGFzIGh1bmRyZWRzIHJhdGhlciB0aGFuCisgICAgICogdGhvdXNhbmRzOiAxLDEwMCBpcyAib256ZSBjZW50cyIgKCJlbGV2ZW4gaHVuZHJlZCIpLCByYXRoZXIgdGhhbgorICAgICAqICJtaWxsZSBjZW50IiAoIm9uZSB0aG91c2FuZCBvbmUgaHVuZHJlZCIpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZnJlbmNoID0KKyAgICAgICAgLy8gdGhlIG1haW4gcnVsZSBzZXQKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcworICAgICAgICArICIgICAgLXg6IG1vaW5zID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJndWxlID4+O1xuIgorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEwCisgICAgICAgICsgIiAgICB6XHUwMGU5cm87IHVuOyBkZXV4OyB0cm9pczsgcXVhdHJlOyBjaW5xOyBzaXg7IHNlcHQ7IGh1aXQ7IG5ldWY7XG4iCisgICAgICAgICsgIiAgICBkaXg7IG9uemU7IGRvdXplOyB0cmVpemU7IHF1YXRvcnplOyBxdWluemU7IHNlaXplO1xuIgorICAgICAgICArICIgICAgICAgIGRpeC1zZXB0OyBkaXgtaHVpdDsgZGl4LW5ldWY7XG4iCisgICAgICAgICAgICAgICAvLyBvcmRzIGZvciB0aGUgbXVsdGlwbGVzIG9mIDEwOiAlJWFsdC1vbmVzIGluc2VydHMgImV0IgorICAgICAgICAgICAgICAgLy8gd2hlbiBuZWVkZWQKKyAgICAgICAgKyAiICAgIDIwOiB2aW5ndFstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0cmVudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA0MDogcXVhcmFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA1MDogY2lucXVhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICAgICAgICAgLy8gcnVsZSBmb3IgNjAuICBUaGUgLzIwIGNhdXNlcyB0aGlzIHJ1bGUncyBtdWx0aXBsaWVyIHRvIGJlCisgICAgICAgICAgICAgICAvLyAyMCByYXRoZXIgdGhhbiAxMCwgYWxsb3dpbmhnIHVzIHRvIHJlY3Vyc2UgZm9yIGFsbCB2YWx1ZXMKKyAgICAgICAgICAgICAgIC8vIGZyb20gNjAgdG8gNzkuLi4KKyAgICAgICAgKyAiICAgIDYwLzIwOiBzb2l4YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIC4uLmV4Y2VwdCBmb3IgNzEsIHdoaWNoIG11c3QgYmUgc3BlY2lhbC1jYXNlZAorICAgICAgICArICIgICAgNzE6IHNvaXhhbnRlIGV0IG9uemU7XG4iCisgICAgICAgICAgICAgICAvLyBhdCA3Miwgd2UgaGF2ZSB0byByZXBlYXQgdGhlIHJ1bGUgZm9yIDYwIHRvIGdldCB1cyB0byA3OQorICAgICAgICArICIgICAgNzIvMjA6IHNvaXhhbnRlLT4lJWFsdC1vbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDgwLCB3ZSBzdGF0ZSBhIG5ldyBydWxlIHdpdGggdGhlIHBocmFzZSBmb3IgODAuICBTaW5jZQorICAgICAgICAgICAgICAgLy8gaXQgY2hhbmdlcyBmb3JtIHdoZW4gdGhlcmUncyBhIG9uZXMgZGlnaXQsIHdlIG5lZWQgYSBzZWNvbmQKKyAgICAgICAgICAgICAgIC8vIHJ1bGUgYXQgODEuICBUaGlzIHJ1bGUgYWxzbyBpbmNsdWRlcyAiLzIwLCIgYWxsb3dpbmcgaXQgdG8KKyAgICAgICAgICAgICAgIC8vIGJlIHVzZWQgY29ycmVjdGx5IGZvciBhbGwgdmFsdWVzIHVwIHRvIDk5CisgICAgICAgICsgIiAgICA4MDogcXVhdHJlLXZpbmd0czsgODEvMjA6IHF1YXRyZS12aW5ndC0+PjtcbiIKKyAgICAgICAgICAgICAgIC8vICJjZW50IiBiZWNvbWVzIHBsdXJhbCB3aGVuIHByZWNlZGVkIGJ5IGEgbXVsdGlwbGllciwgYW5kCisgICAgICAgICAgICAgICAvLyB0aGUgbXVsdGlwbGllciBpcyBvbWl0dGVkIGZyb20gdGhlIHNpbmd1bGFyIGZvcm0KKyAgICAgICAgKyAiICAgIDEwMDogY2VudFsgPj5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PCBjZW50c1sgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGVbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHZhbHVlcyBmcm9tIDEsMTAwIHRvIDEsMTk5IGFyZSByZW5kZXJlZCBhcyAib256ZSBjZW50cy4uLiIKKyAgICAgICAgICAgICAgIC8vIGluc3RlYWQgb2YgIm1pbGxlIGNlbnQuLi4iICBUaGUgPiBhZnRlciAiMTAwMCIgZGVjcmVhc2VzCisgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGV4cG9uZW50LCBjYXVzaW5nIGl0cyBtdWx0aXBsaWVyIHRvIGJlIDEwMCBpbnN0ZWFkCisgICAgICAgICAgICAgICAvLyBvZiAxLDAwMC4gIFRoaXMgcHJldmVudHMgdXMgZnJvbSBnZXR0aW5nICJvbnplIGNlbnRzIGNlbnQKKyAgICAgICAgICAgICAgIC8vIHZpbmd0LWRldXgiICgiZWxldmVuIGh1bmRyZWQgb25lIGh1bmRyZWQgdHdlbnR5LXR3byIpLgorICAgICAgICArICIgICAgMTEwMD46IG9uemUgY2VudHNbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDEsMjAwLCB3ZSBnbyBiYWNrIHRvIGZvcm1hdGluZyBpbiB0aG91c2FuZHMsIHNvIHdlCisgICAgICAgICAgICAgICAvLyByZXBlYXQgdGhlIHJ1bGUgZm9yIDEsMDAwCisgICAgICAgICsgIiAgICAxMjAwOiBtaWxsZSA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDIsMDAwLCB0aGUgbXVsdGlwbGllciBpcyBhZGRlZAorICAgICAgICArICIgICAgMjAwMDogPDwgbWlsbGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgbWlsbGlhcmRlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICAvLyAlJWFsdC1vbmVzIGlzIHVzZWQgdG8gaW5zZXJ0ICJldCIgd2hlbiB0aGUgb25lcyBkaWdpdCBpcyAxCisgICAgICAgICsgIiUlYWx0LW9uZXM6XG4iCisgICAgICAgICsgIiAgICA7IGV0LXVuOyA9JW1haW49OyI7CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgU3dpc3MgRnJlbmNoLiAgU3dpc3MgRnJlbmNoIGRpZmZlcnMgZnJvbSBGcmVuY2ggRnJlbmNoCisgICAgICogaW4gdGhhdCBpdCBkb2VzIGhhdmUgd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwLiAgVGhpcyBydWxlIHNldCBzaG93cyB0aGVtLAorICAgICAqIGFuZCBpcyBzaW1wbGVyIGFzIGEgcmVzdWx0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN3aXNzRnJlbmNoID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgLXg6IG1vaW5zID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJndWxlID4+O1xuIgorICAgICAgICArICIgICAgelx1MDBlOXJvOyB1bjsgZGV1eDsgdHJvaXM7IHF1YXRyZTsgY2lucTsgc2l4OyBzZXB0OyBodWl0OyBuZXVmO1xuIgorICAgICAgICArICIgICAgZGl4OyBvbnplOyBkb3V6ZTsgdHJlaXplOyBxdWF0b3J6ZTsgcXVpbnplOyBzZWl6ZTtcbiIKKyAgICAgICAgKyAiICAgICAgICBkaXgtc2VwdDsgZGl4LWh1aXQ7IGRpeC1uZXVmO1xuIgorICAgICAgICArICIgICAgMjA6IHZpbmd0Wy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRyZW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBxdWFyYW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBjaW5xdWFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA2MDogc29peGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICAgICAgICAvLyBub3RpY2UgbmV3IHdvcmRzIGZvciA3MCwgODAsIGFuZCA5MAorICAgICAgICArICIgICAgNzA6IHNlcHRhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgODA6IG9jdGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA5MDogbm9uYW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogY2VudFsgPj5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PCBjZW50c1sgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDExMDA+OiBvbnplIGNlbnRzWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMjAwOiBtaWxsZSA+PjtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8IG1pbGxlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IG1pbGxpYXJkZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbHQtb25lczpcbiIKKyAgICAgICAgKyAiICAgIDsgZXQtdW47ID0lbWFpbj07IjsKKyAgICAvLyBJJ20gbm90IDEwMCUgc3VyZSBhYm91dCBTd2lzcyBGcmVuY2guICBJcworICAgIC8vIHRoaXMgY29ycmVjdD8gIElzICJvbnplIGNlbnRzIiBjb21tb25seSB1c2VkIGZvciAxLDEwMCBpbiBib3RoIEZyYW5jZQorICAgIC8vIGFuZCBTd2l0emVybGFuZD8gIENhbiBzb21lb25lIGZpbGwgbWUgaW4gb24gdGhlIHJ1bGVzIGZvciB0aGUgb3RoZXIKKyAgICAvLyBGcmVuY2gtc3BlYWtpbmcgY291bnRyaWVzPyAgSSd2ZSBoZWFyZCBjb25mbGljdGluZyBvcGluaW9ucyBvbiB3aGljaAorICAgIC8vIHZlcnNpb24gaXMgdXNlZCBpbiBDYW5hZGEsIGFuZCBJIHVuZGVyc3RhbmQgdGhlcmUncyBhbiBhbHRlcm5hdGUgc2V0CisgICAgLy8gb2Ygd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwIHRoYXQgaXMgdXNlZCBzb21ld2hlcmUsIGJ1dCBJIGRvbid0IGtub3cKKyAgICAvLyB3aGF0IHRob3NlIHdvcmRzIGFyZSBvciB3aGVyZSB0aGV5J3JlIHVzZWQuCisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgR2VybWFuLiAgR2VybWFuIGFsc28gYWRkcyBzb21lIGludGVyZXN0aW5nCisgICAgICogY2hhcmFjdGVyaXN0aWNzLiAgRm9yIHZhbHVlcyBiZWxvdyAxLDAwMCwwMDAsIG51bWJlcnMgYXJlIGN1c3RvbWFyaWx5CisgICAgICogd3JpdHRlbiBvdXQgYXMgYSBzaW5nbGUgd29yZC4gIEFuZCB0aGUgb25lcyBkaWdpdCBQUkVDRURFUyB0aGUgdGVucworICAgICAqIGRpZ2l0IChlLmcuLCAyMyBpcyAiZHJlaXVuZHp3YW56aWcsIiBub3QgInp3YW56aWd1bmRkcmVpIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2VybWFuID0KKyAgICAgICAgLy8gMSBpcyAiZWlucyIgd2hlbiBieSBpdHNlbGYsIGJ1dCB0dXJucyBpbnRvICJlaW4iIGluIG1vc3QKKyAgICAgICAgLy8gY29tYmluYXRpb25zCisgICAgICAgICIlYWx0LW9uZXM6XG4iCisgICAgICAgICsgIiAgICBudWxsOyBlaW5zOyA9JSVtYWluPTtcbiIKKyAgICAgICAgKyAiJSVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEyLiAgTm90aWNlIHRoYXQgdGhlIHZhbHVlcworICAgICAgICAgICAgICAgLy8gZnJvbSAxMyB0byAxOSBjYW4gZGVyaXZlZCBhbGdvcml0aG1pY2FsbHksIHVubGlrZSBpbiBtb3N0CisgICAgICAgICAgICAgICAvLyBvdGhlciBsYW5ndWFnZXMKKyAgICAgICAgKyAiICAgIG51bGw7IGVpbjsgendlaTsgZHJlaTsgdmllcjsgZlx1MDBmY25mOyBzZWNoczsgc2llYmVuOyBhY2h0OyBuZXVuO1xuIgorICAgICAgICArICIgICAgemVobjsgZWxmOyB6d1x1MDBmNmxmOyA+PnplaG47XG4iCisgICAgICAgICAgICAgICAvLyBydWxlcyBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMC4gIE5vdGljZSB0aGF0IHRoZSBvbmVzIGRpZ2l0CisgICAgICAgICAgICAgICAvLyBnb2VzIG9uIHRoZSBmcm9udAorICAgICAgICArICIgICAgMjA6IFs+PnVuZF16d2FuemlnO1xuIgorICAgICAgICArICIgICAgMzA6IFs+PnVuZF1kcmVpXHUwMGRmaWc7XG4iCisgICAgICAgICsgIiAgICA0MDogWz4+dW5kXXZpZXJ6aWc7XG4iCisgICAgICAgICsgIiAgICA1MDogWz4+dW5kXWZcdTAwZmNuZnppZztcbiIKKyAgICAgICAgKyAiICAgIDYwOiBbPj51bmRdc2VjaHppZztcbiIKKyAgICAgICAgKyAiICAgIDcwOiBbPj51bmRdc2llYnppZztcbiIKKyAgICAgICAgKyAiICAgIDgwOiBbPj51bmRdYWNodHppZztcbiIKKyAgICAgICAgKyAiICAgIDkwOiBbPj51bmRdbmV1bnppZztcbiIKKyAgICAgICAgKyAiICAgIDEwMDogaHVuZGVydFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDw8aHVuZGVydFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiB0YXVzZW5kWz4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8dGF1c2VuZFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IGVpbmUgTWlsbGlvblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMiwwMDAsMDAwOiA8PCBNaWxsaW9uZW5bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IGVpbmUgTWlsbGlhcmRlWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyLDAwMCwwMDAsMDAwOiA8PCBNaWxsaWFyZGVuWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogZWluZSBCaWxsaW9uWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyLDAwMCwwMDAsMDAwLDAwMDogPDwgQmlsbGlvbmVuWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IjsKKyAgICAvLyBhZ2FpbiwgSSdtIG5vdCAxMDAlIHN1cmUgb2YgdGhlc2UgcnVsZXMuICBJIHRoaW5rIGJvdGggImh1bmRlcnQiIGFuZAorICAgIC8vICJlaW5odW5kZXJ0IiBhcmUgY29ycmVjdCBvciAxMDAsIGJ1dCBJJ20gbm90IHN1cmUgd2hpY2ggaXMgcHJlZmVyYWJsZQorICAgIC8vIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhpcyBmcmFtZXdvcmsgaXMgbGlrZWx5IHRvIGJlIHVzZWQuICBBbHNvLCBpcyBpdAorICAgIC8vIHJlYWxseSB0cnVlIHRoYXQgbnVtYmVycyBhcmUgcnVuIHRvZ2V0aGVyIGludG8gY29tcG91bmQgd29yZHMgYWxsIHRoZQorICAgIC8vIHRpbWU/ICBBbmQgYWdhaW4sIEknbSBtaXNzaW5nIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlIG51bWJlcnMgYW5kCisgICAgLy8gZGVjaW1hbHMuCisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgSXRhbGlhbi4gIExpa2UgR2VybWFuLCBtb3N0IEl0YWxpYW4gbnVtYmVycyBhcmUKKyAgICAgKiB3cml0dGVuIGFzIHNpbmdsZSB3b3Jkcy4gIFdoYXQgbWFrZXMgdGhlc2UgcnVsZXMgY29tcGxpY2F0ZWQgaXMgdGhlIHJ1bGUKKyAgICAgKiB0aGF0IHNheXMgdGhhdCB3aGVuIGEgd29yZCBlbmRpbmcgaW4gYSB2b3dlbCBhbmQgYSB3b3JkIGJlZ2lubmluZyB3aXRoCisgICAgICogYSB2b3dlbCBhcmUgY29tYmluZWQgaW50byBhIGNvbXBvdW5kLCB0aGUgdm93ZWwgaXMgZHJvcHBlZCBmcm9tIHRoZQorICAgICAqIGVuZCBvZiB0aGUgZmlyc3Qgd29yZDogMTgwIGlzICJjZW50b3R0YW50YSwiIG5vdCAiY2VudG9vdHRhbnRhLiIKKyAgICAgKiBUaGUgY29tcGxleGl0eSBvZiB0aGlzIHJ1bGUgc2V0IGlzIHRvIHByb2R1Y2UgdGhpcyBiZWhhdmlvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBpdGFsaWFuID0KKyAgICAgICAgLy8gbWFpbiBydWxlIHNldC4gIEZvbGxvd3MgdGhlIHBhdHRlcm5zIG9mIHRoZSBwcmVjZWRpbmcgcnVsZSBzZXRzLAorICAgICAgICAvLyBleGNlcHQgdGhhdCB0aGUgZmluYWwgdm93ZWwgaXMgb21pdHRlZCBmcm9tIHdvcmRzIGVuZGluZyBpbgorICAgICAgICAvLyB2b3dlbHMgd2hlbiB0aGV5IGFyZSBmb2xsb3dlZCBieSBhbm90aGVyIHdvcmQ7IGluc3RlYWQsIHdlIGhhdmUKKyAgICAgICAgLy8gc2VwYXJhdGUgcnVsZSBzZXRzIHRoYXQgYXJlIGlkZW50aWNhbCB0byB0aGlzIG9uZSwgZXhjZXB0IHRoYXQKKyAgICAgICAgLy8gYWxsIHRoZSB3b3JkcyB0aGF0IGRvbid0IGJlZ2luIHdpdGggYSB2b3dlbCBoYXZlIGEgdm93ZWwgdGFja2VkCisgICAgICAgIC8vIG9udG8gdGhlbSBhdCB0aGUgZnJvbnQuICBBIHdvcmQgZW5kaW5nIGluIGEgdm93ZWwgY2FsbHMgYQorICAgICAgICAvLyBzdWJzdGl0dXRpb24gdGhhdCB3aWxsIHN1cHBseSB0aGF0IHZvd2VsLCB1bmxlc3MgdGhhdCB2b3dlbCBpcyB0bworICAgICAgICAvLyBiZSBlbGlkZWQuCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtZW5vID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJnb2xhID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgdW5vOyBkdWU7IHRyZTsgcXVhdHRybzsgY2lucXVlOyBzZWk7IHNldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIG5vdmU7XG4iCisgICAgICAgICsgIiAgICBkaWVjaTsgdW5kaWNpOyBkb2RpY2k7IHRyZWRpY2k7IHF1YXR0b3JkaWNpOyBxdWluZGljaTsgc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGRpY2lhc2V0dGU7IGRpY2lvdHRvOyBkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IHZlbnRpOyB2ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0cmVudGE7IHRyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBxdWFyYW50YTsgcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogY2lucXVhbnRhOyBjaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogc2Vzc2FudGE7IHNlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IHNldHRhbnRhOyBzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IG5vdmFudGE7IG5vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IGNlbnRvOyBjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PGNlbnRvOyA8PGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBtaWxsZTsgbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8bWlsYTsgPDxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwPj46IDw8bWlsYVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA9IywjIzA9IChpbmNvbXBsZXRlIGRhdGEpO1xuIgorICAgICAgICArICIlJXdpdGgtYTpcbiIKKyAgICAgICAgKyAiICAgIGF6ZXJvOyB1bm87IGFkdWU7IGF0cmU7IGFxdWF0dHJvOyBhY2lucXVlOyBhc2VpOyBhc2V0dGU7IG90dG87XG4iCisgICAgICAgICsgIiAgICAgICAgYW5vdmU7XG4iCisgICAgICAgICsgIiAgICBhZGllY2k7IHVuZGljaTsgYWRvZGljaTsgYXRyZWRpY2k7IGFxdWF0dG9yZGljaTsgYXF1aW5kaWNpOyBhc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGFkaWNpYXNldHRlOyBhZGljaW90dG87IGFkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IGF2ZW50aTsgYXZlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgMzA6IGF0cmVudGE7IGF0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogYXF1YXJhbnRhOyBhcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogYWNpbnF1YW50YTsgYWNpbnF1YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBhc2Vzc2FudGE7IGFzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBhc2V0dGFudGE7IGFzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IGFub3ZhbnRhOyBhbm92YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogYWNlbnRvOyBhY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPCUld2l0aC1hPGNlbnRvOyA8JSV3aXRoLWE8Y2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IGFtaWxsZTsgYW1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8JSV3aXRoLWE8bWlsYTsgPCUld2l0aC1hPG1pbFs+JSV3aXRoLWE+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6ID0lbWFpbj07XG4iCisgICAgICAgICsgIiUld2l0aC1pOlxuIgorICAgICAgICArICIgICAgaXplcm87IHVubzsgaWR1ZTsgaXRyZTsgaXF1YXR0cm87IGljaW5xdWU7IGlzZWk7IGlzZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBpbm92ZTtcbiIKKyAgICAgICAgKyAiICAgIGlkaWVjaTsgdW5kaWNpOyBpZG9kaWNpOyBpdHJlZGljaTsgaXF1YXR0b3JkaWNpOyBpcXVpbmRpY2k7IGlzZWRpY2k7XG4iCisgICAgICAgICsgIiAgICAgICAgaWRpY2lhc2V0dGU7IGlkaWNpb3R0bzsgaWRpY2lhbm5vdmU7XG4iCisgICAgICAgICsgIiAgICAyMDogaXZlbnRpOyBpdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogaXRyZW50YTsgaXRyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBpcXVhcmFudGE7IGlxdWFyYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBpY2lucXVhbnRhOyBpY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IGlzZXNzYW50YTsgaXNlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IGlzZXR0YW50YTsgaXNldHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA5MDogaW5vdmFudGE7IGlub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBpY2VudG87IGljZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8JSV3aXRoLWk8Y2VudG87IDwlJXdpdGgtaTxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogaW1pbGxlOyBpbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDwlJXdpdGgtaTxtaWxhOyA8JSV3aXRoLWk8bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogPSVtYWluPTtcbiIKKyAgICAgICAgKyAiJSV3aXRoLW86XG4iCisgICAgICAgICsgIiAgICBvemVybzsgdW5vOyBvZHVlOyBvdHJlOyBvcXVhdHRybzsgb2NpbnF1ZTsgb3NlaTsgb3NldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIG9ub3ZlO1xuIgorICAgICAgICArICIgICAgb2RpZWNpOyB1bmRpY2k7IG9kb2RpY2k7IG90cmVkaWNpOyBvcXVhdHRvcmRpY2k7IG9xdWluZGljaTsgb3NlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBvZGljaWFzZXR0ZTsgb2RpY2lvdHRvOyBvZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiBvdmVudGk7IG92ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiBvdHJlbnRhOyBvdHJlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgNDA6IG9xdWFyYW50YTsgb3F1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IG9jaW5xdWFudGE7IG9jaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogb3Nlc3NhbnRhOyBvc2Vzc2FudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA3MDogb3NldHRhbnRhOyBvc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBvbm92YW50YTsgb25vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IG9jZW50bzsgb2NlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDwlJXdpdGgtbzxjZW50bzsgPCUld2l0aC1vPGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBvbWlsbGU7IG9taWxsWz4lJXdpdGgtaT5dO1xuIgorICAgICAgICArICIgICAgMjAwMDogPCUld2l0aC1vPG1pbGE7IDwlJXdpdGgtbzxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA9JW1haW49O1xuIjsKKyAgICAvLyBDYW4gc29tZW9uZSBjb25maXJtIHRoYXQgSSBkaWQgdGhlIHZvd2VsLWVsaWRpbmcgdGhpbmcgcmlnaHQ/ICBJJ20KKyAgICAvLyBub3QgMTAwJSBzdXJlIEknbSBkb2luZyBpdCBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcywgb3IgY29tcGxldGVseQorICAgIC8vIGNvcnJlY3RseS4gIEFsc28sIEkgZG9uJ3QgaGF2ZSBpbmZvcm1hdGlvbiBmb3IgbmVnYXRpdmVzIGFuZCBkZWNpbWFscywKKyAgICAvLyBhbmQgSSBsYWNrIHdvcmRzIGZyb3IgdmFsdWVzIGZyb20gMSwwMDAsMDAwIG9uIHVwLgorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFN3ZWRpc2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3dlZGlzaCA9CisgICAgICAgICJub2xsOyBldHQ7IHR2XHUwMGU1OyB0cmU7IGZ5cmE7IGZlbTsgc2V4OyBzam87IFx1MDBlNXR0YTsgbmlvO1xuIgorICAgICAgICArICJ0aW87IGVsdmE7IHRvbHY7IHRyZXR0b247IGZqb3J0b247IGZlbXRvbjsgc2V4dG9uOyBzanV0dG9uOyBhcnRvbjsgbml0dG9uO1xuIgorICAgICAgICArICIyMDogdGp1Z29bPj5dO1xuIgorICAgICAgICArICIzMDogdHJldHRpb1s+Pl07XG4iCisgICAgICAgICsgIjQwOiBmeXJ0aW9bPj5dO1xuIgorICAgICAgICArICI1MDogZmVtdGlvWz4+XTtcbiIKKyAgICAgICAgKyAiNjA6IHNleHRpb1s+Pl07XG4iCisgICAgICAgICsgIjcwOiBzanV0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiODA6IFx1MDBlNXR0aW9bPj5dO1xuIgorICAgICAgICArICI5MDogbml0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBodW5kcmFbPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8aHVuZHJhWz4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogdHVzZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgdHVzZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiBlbiBtaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwOiA8PCBtaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogZW4gbWlsamFyZFsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDAsMDAwOiA8PCBtaWxqYXJkWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiBlbiBiaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGpvblsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworICAgIC8vIGNhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgRHV0Y2guICBOb3RpY2UgdGhhdCBpbiBEdXRjaCwgYXMgaW4gR2VybWFuLAorICAgICAqIHRoZSBvbmVzIGRpZ2l0IHByZWNlZGVzIHRoZSB0ZW5zIGRpZ2l0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1dGNoID0KKyAgICAgICAgIiAteDogbWluID4+O1xuIgorICAgICAgICArICJ4Lng6IDw8IGtvbW1hID4+O1xuIgorICAgICAgICArICIoemVybz8pOyBlZW47IHR3ZWU7IGRyaWU7IHZpZXI7IHZpamY7IHplczsgemV2ZW47IGFjaHQ7IG5lZ2VuO1xuIgorICAgICAgICArICJ0aWVuOyBlbGY7IHR3YWFsZjsgZGVydGllbjsgdmVlcnRpZW47IHZpamZ0aWVuOyB6ZXN0aWVuO1xuIgorICAgICAgICArICJ6ZXZlbnRpZW47IGFjaHRpZW47IG5lZ2VudGllbjtcbiIKKyAgICAgICAgKyAiMjA6IFs+PiBlbiBddHdpbnRpZztcbiIKKyAgICAgICAgKyAiMzA6IFs+PiBlbiBdZGVydGlnO1xuIgorICAgICAgICArICI0MDogWz4+IGVuIF12ZWVydGlnO1xuIgorICAgICAgICArICI1MDogWz4+IGVuIF12aWpmdGlnO1xuIgorICAgICAgICArICI2MDogWz4+IGVuIF16ZXN0aWc7XG4iCisgICAgICAgICsgIjcwOiBbPj4gZW4gXXpldmVudGlnO1xuIgorICAgICAgICArICI4MDogWz4+IGVuIF10YWNodGlnO1xuIgorICAgICAgICArICI5MDogWz4+IGVuIF1uZWdlbnRpZztcbiIKKyAgICAgICAgKyAiMTAwOiA8PCBob25kZXJkWyA+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IDw8IGR1aXplbmRbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCBtaWxqb2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGpvZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEphcGFuZXNlLiAgSW4gSmFwYW5lc2UsIHRoZXJlIHJlYWxseSBpc24ndCBhbnkKKyAgICAgKiBkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgbnVtYmVyIHdyaXR0ZW4gb3V0IGluIGRpZ2l0cyBhbmQgYSBudW1iZXIKKyAgICAgKiB3cml0dGVuIG91dCBpbiB3b3JkczogdGhlIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMgYXJlIGJvdGggZGlnaXRzCisgICAgICogYW5kIHdvcmRzLiAgVGhpcyBydWxlIHNldCBwcm92aWRlcyB0d28gdmFyaWFudHM6ICAldHJhZGl0aW9uYWwKKyAgICAgKiB1c2VzIHRoZSB0cmFkaXRpb25hbCBDSksgbnVtZXJhbHMgKHdoaWNoIGFyZSBhbHNvIHVzZWQgaW4gQ2hpbmEKKyAgICAgKiBhbmQgS29yZWEpLiAgJWZpbmFuY2lhbCB1c2VzIGFsdGVybmF0ZSBpZGVvZ3JhcGhzIGZvciBtYW55IG51bWJlcnMKKyAgICAgKiB0aGF0IGFyZSBoYXJkZXIgdG8gYWx0ZXIgdGhhbiB0aGUgdHJhZGl0aW9uYWwgbnVtZXJhbHMgKG9uZSBjb3VsZAorICAgICAqIGZhaXJseSBlYXNpbHkgY2hhbmdlIGEgb25lIHRvCisgICAgICogYSB0aHJlZSBqdXN0IGJ5IGFkZGluZyB0d28gc3Ryb2tlcywgZm9yIGV4YW1wbGUpLiAgVGhpcyBpcyBhbHNvIGRvbmUgaW4KKyAgICAgKiB0aGUgb3RoZXIgY291bnRyaWVzIHVzaW5nIENoaW5lc2UgaWRvZ3JhcGhzLCBidXQgZGlmZmVyZW50IGlkZW9ncmFwaHMKKyAgICAgKiBhcmUgdXNlZCBpbiB0aG9zZSBwbGFjZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamFwYW5lc2UgPQorICAgICAgICAiJWZpbmFuY2lhbDpcbiIKKyAgICAgICAgKyAiICAgIFx1OTZmNjsgXHU1OGYxOyBcdTVmMTA7IFx1NTNjMjsgXHU1NmRiOyBcdTRmMGQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiICAgIFx1NjJmZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDogPDxcdTYyZmVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PFx1NzY3ZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PFx1NTM0M1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8PFx1NTEwNFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDxcdTUxNDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJXRyYWRpdGlvbmFsOlxuIgorICAgICAgICArICIgICAgXHU5NmY2OyBcdTRlMDA7IFx1NGU4YzsgXHU0ZTA5OyBcdTU2ZGI7IFx1NGU5NDsgXHU1MTZkOyBcdTRlMDM7IFx1NTE2YjsgXHU0ZTVkO1xuIgorICAgICAgICArICIgICAgXHU1MzQxWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiA8PFx1NTM0MVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8XHU3NjdlWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8XHU1MzQzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPDxcdTRlMDdbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMCwwMDA6IDw8XHU1MTA0Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyI7CisgICAgLy8gQ2FuIHNvbWVvbmUgc3VwcGx5IG1lIHdpdGggdGhlIHJpZ2h0IGZyYXVkLXByb29mIGlkZW9ncmFwaHMgZm9yCisgICAgLy8gU2ltcGxpZmllZCBhbmQgVHJhZGl0aW9uYWwgQ2hpbmVzZSwgYW5kIGZvciBLb3JlYW4/ICBDYW4gc29tZW9uZQorICAgIC8vIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgR3JlZWsuICBBZ2FpbiBpbiBHcmVlayB3ZSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMKKyAgICAgKiBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDAgYmVjYXVzZSB0aGV5IGNhbid0IGJlIGRlcml2ZWQgYWxnb3JpdGhtaWNhbGx5LgorICAgICAqIEFsc28sIHRoZSB0ZW5zIGRnaXQgY2hhbmdlcyBmb3JtIHdoZW4gZm9sbG93ZWQgYnkgYSBvbmVzIGRpZ2l0OiBhbgorICAgICAqIGFjY2VudCBtYXJrIGRpc2FwcGVhcnMgZnJvbSB0aGUgdGVucyBkaWdpdCBhbmQgbW92ZXMgdG8gdGhlIG9uZXMgZGlnaXQuCisgICAgICogVGhlcmVmb3JlLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBbXSBub3RhdGlvbiwgd2UgYWN0dWFsbHkgaGF2ZSB0byB1c2UKKyAgICAgKiB0d28gc2VwYXJhdGUgcnVsZXMgZm9yIGVhY2ggbXVsdGlwbGUgb2YgMTAgdG8gc2hvdyB0aGUgdHdvIGZvcm1zIG9mCisgICAgICogdGhlIHdvcmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ3JlZWsgPQorICAgICAgICAiemVybyAoaW5jb21wbGV0ZSBkYXRhKTsgXHUwM2FkXHUwM2JkXHUwM2IxOyBcdTAzYjRcdTAzY2RcdTAzYmY7IFx1MDNiNFx1MDNjMVx1MDNhZlx1MDNiMTsgIgorICAgICAgICArICJcdTAzYzRcdTAzYWRcdTAzYzNcdTAzYzNcdTAzYjVcdTAzYzFcdTAzYjE7IFx1MDNjMFx1MDNhZFx1MDNiZFx1MDNjNFx1MDNiNTsgIgorICAgICAgICArICJcdTAzYWRcdTAzYmVcdTAzYjk7IFx1MDNiNVx1MDNjMFx1MDNjNFx1MDNhYzsgXHUwM2JmXHUwM2JhXHUwM2M0XHUwM2NlOyAiCisgICAgICAgICsgIlx1MDNiNVx1MDNiZFx1MDNiZFx1MDNhZFx1MDNiMTtcbiIKKyAgICAgICAgKyAiMTA6IFx1MDNiNFx1MDNhZFx1MDNiYVx1MDNiMTsgIgorICAgICAgICArICJcdTAzYWRcdTAzYmRcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE7IFx1MDNiNFx1MDNjZVx1MDNiNFx1MDNiNVx1MDNiYVx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiMjA6IFx1MDNiNVx1MDNhZlx1MDNiYVx1MDNiZlx1MDNjM1x1MDNiOTsgXHUwM2I1XHUwM2I5XHUwM2JhXHUwM2JmXHUwM2MzXHUwM2I5Pj47XG4iCisgICAgICAgICsgIjMwOiBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYWNcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNjNFx1MDNjMVx1MDNiOVx1MDNiMVx1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI0MDogXHUwM2MzXHUwM2IxXHUwM2MxXHUwM2FjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYzNcdTAzYjFcdTAzYzFcdTAzYjFcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNTA6IFx1MDNjMFx1MDNiNVx1MDNiZFx1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2MwXHUwM2I1XHUwM2JkXHUwM2I3XHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjYwOiBcdTAzYjVcdTAzYmVcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNiNVx1MDNiZVx1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI3MDogXHUwM2I1XHUwM2IyXHUwM2I0XHUwM2JmXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2M0XHUwM2IxOyAiCisgICAgICAgICsgIlx1MDNiNVx1MDNiMlx1MDNiNFx1MDNiZlx1MDNiY1x1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI4MDogXHUwM2JmXHUwM2IzXHUwM2I0XHUwM2NjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYmZcdTAzYjNcdTAzYjRcdTAzYmZcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDNiNVx1MDNiZFx1MDNiZFx1MDNiNVx1MDNiZFx1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjVcdTAzYmRcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzY2NbXHUwM2JkID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiBcdTAzYjRcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMzAwOiBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNDAwOiBcdTAzYzRcdTAzYjVcdTAzYzRcdTAzYzFcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNTAwOiBcdTAzYzBcdTAzYjVcdTAzYmRcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNjAwOiBcdTAzYjVcdTAzYmVcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNzAwOiBcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiODAwOiBcdTAzYmZcdTAzYmFcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiOTAwOiBcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwM2M3XHUwM2FmXHUwM2JiXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDNjN1x1MDNhZlx1MDNiYlx1MDNiOVx1MDNiMVsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8IFx1MDNiNVx1MDNiYVx1MDNiMVx1MDNjNFx1MDNiZlx1MDNiY1x1MDNiY1x1MDNiOVx1MDNjY1x1MDNjMVx1MDNiOVx1MDNiZlsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PCBcdTAzYjRcdTAzYjlcdTAzYzNcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzYmZcdTAzYmNcdTAzYmNcdTAzYjlcdTAzY2NcdTAzYzFcdTAzYjlcdTAzYmZbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworICAgIC8vIENhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisgICAgLy8gSSdtIGFsc28gbWlzc2luZyB0aGUgd29yZCBmb3IgemVyby4gIENhbiBzb21lb25lIGNsdWUgbWUgaW4/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgUnVzc2lhbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBydXNzaWFuID0KKyAgICAgICAgIlx1MDQzZFx1MDQzZVx1MDQzYlx1MDQ0YzsgXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkOyBcdTA0MzRcdTA0MzJcdTA0MzA7IFx1MDQ0Mlx1MDQ0MFx1MDQzODsgIgorICAgICAgICArICJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0NGJcdTA0NDBcdTA0MzU7IFx1MDQzZlx1MDQ0Zlx1MDQ0MjsgXHUwNDQ4XHUwNDM1XHUwNDQxXHUwNDQyOyAiCisgICAgICAgICsgIlx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0YzsgXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjOyBcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0NDI7XG4iCisgICAgICAgICsgIjEwOiBcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDI7ICIKKyAgICAgICAgKyAiXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjO1xuIgorICAgICAgICArICJcdTA0MzRcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQ0Ylx1MDQ0MFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YztcbiIKKyAgICAgICAgKyAiMTU6IFx1MDQzZlx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0NDhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7XG4iCisgICAgICAgICsgIjIwOiBcdTA0MzRcdTA0MzJcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGNbID4+XTtcbiIKKyAgICAgICAgKyAiMzA6IFx1MDQ0Mlx1MDQ0MFx1MDQzYlx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0Y1sgPj5dO1xuIgorICAgICAgICArICI0MDogXHUwNDQxXHUwNDNlXHUwNDQwXHUwNDNlXHUwNDNhWyA+Pl07XG4iCisgICAgICAgICsgIjUwOiBcdTA0M2ZcdTA0NGZcdTA0NDJcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiNjA6IFx1MDQ0OFx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0Y1x1MDQzNFx1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0MlsgPj5dO1xuIgorICAgICAgICArICI3MDogXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTA0MzJcdTA0M2VcdTA0NDFcdTA0MzVcdTA0M2NcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDQzNFx1MDQzNVx1MDQzMlx1MDQ0Zlx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIxMDA6IFx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8IFx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiBcdTA0NDJcdTA0NGJcdTA0NDFcdTA0NGZcdTA0NDdcdTA0MzBbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgXHUwNDQyXHUwNDRiXHUwNDQxXHUwNDRmXHUwNDQ3XHUwNDMwWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDNiXHUwNDM4XHUwNDNlXHUwNDNkWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMDogPDwgXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDNiXHUwNDM4XHUwNDNlXHUwNDNkWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6ID0jLCMjMD07IjsKKyAgICAvLyBDYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworICAgIC8vIEhvdyBhYm91dCB3b3JkcyBmb3IgYmlsbGlvbnMgYW5kIHRyaWxsaW9ucz8KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBIZWJyZXcuICBIZWJyZXcgYWN0dWFsbHkgaGFzIGluZmxlY3RlZCBmb3JtcyBmb3IKKyAgICAgKiBtb3N0IG9mIHRoZSBsb3dlci1vcmRlciBudW1iZXJzLiAgVGhlIG1hc2N1bGluZSBmb3JtcyBhcmUgc2hvd24KKyAgICAgKiBoZXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGhlYnJldyA9CisgICAgICAgICJ6ZXJvIChpbmNvbXBsZXRlIGRhdGEpOyBcdTA1ZDBcdTA1ZDRcdTA1ZDM7IFx1MDVlOVx1MDVkMlx1MDVkOVx1MDVkOVx1MDVkZDsgXHUwNWU5XHUwNWRjXHUwNWQ1XHUwNWU5XHUwNWQ0O1xuIgorICAgICAgICArICI0OiBcdTA1ZDBcdTA1ZDNcdTA1ZDFcdTA1ZTZcdTA1ZDQ7IFx1MDVkN1x1MDVkMlx1MDVkNVx1MDVkOVx1MDVlOVx1MDVkNDsgXHUwNWU5XHUwNWU5XHUwNWQ0O1xuIgorICAgICAgICArICI3OiBcdTA1ZTlcdTA1ZDFcdTA1ZTZcdTA1ZDQ7IFx1MDVlOVx1MDVkZVx1MDVkNVx1MDVkMlx1MDVkNDsgXHUwNWVhXHUwNWU5XHUwNWU2XHUwNWQ0O1xuIgorICAgICAgICArICIxMDogXHUwNWU2XHUwNWU5XHUwNWQzXHUwNWQ0WyA+Pl07XG4iCisgICAgICAgICsgIjIwOiBcdTA1ZTZcdTA1ZTlcdTA1ZDNcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiMzA6IFx1MDVlOVx1MDVkY1x1MDVkNVx1MDVlOVx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI0MDogXHUwNWQwXHUwNWQzXHUwNWQxXHUwNWU2XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjUwOiBcdTA1ZDdcdTA1ZGVcdTA1ZDlcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNjA6IFx1MDVlOVx1MDVlOVx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI3MDogXHUwNWU5XHUwNWQxXHUwNWU2XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTA1ZTlcdTA1ZGVcdTA1ZDVcdTA1ZDJcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDVlYVx1MDVlOVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICIxMDA6IFx1MDVkZVx1MDVkMFx1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8IFx1MDVkZVx1MDVkMFx1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiBcdTA1ZDBcdTA1ZGNcdTA1ZTNbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgXHUwNWQwXHUwNWRjXHUwNWUzWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTsiOworICAgIC8vIFRoaXMgZGF0YSBpcyB3b2VmdWxseSBpbmNvbXBsZXRlLiAgQ2FuIHNvbWVvbmUgZmlsbCBtZSBpbiBvbiB0aGUKKyAgICAvLyB2YXJpb3VzIGluZmxlY3RlZCBmb3JtcyBvZiB0aGUgbnVtYmVycywgd2hpY2ggc2VlbSB0byBiZSBuZWNlc3NhcnkKKyAgICAvLyB0byBkbyBIZWJyZXcgY29ycmVjdGx5PyAgQ2FuIHNvbW9uZSBzdXBwbHkgbWUgd2l0aCBkYXRhIGZvciB2YWx1ZXMKKyAgICAvLyBmcm9tIDEsMDAwLDAwMCBvbiB1cD8gIFdoYXQgYWJvdXQgdGhlIHdvcmQgZm9yIHplcm8/ICBXaGF0IGFib3V0CisgICAgLy8gaW5mb3JtYXRpb24gb24gbmVnYXRpdmVzIGFuZCBkZWNpbWFscz8KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU2ltcGxlIGV4YW1wbGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgcnVsZSBzZXQgYWRkcyBhbiBFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9uIHRvIHRoZSBlbmQgb2YgYQorICAgICAqIG51bWJlci4gIEZvciBleGFtcGxlLCAyIGlzIGZvcm1hdHRlZCBhcyAiMm5kIi4gIFBhcnNpbmcgZG9lc24ndCB3b3JrIHdpdGgKKyAgICAgKiB0aGlzIHJ1bGUgc2V0LiAgVG8gcGFyc2UsIHVzZSBEZWNpbWFsRm9ybWF0IG9uIHRoZSBudW1lcmFsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIG9yZGluYWwgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgdGhlIG51bWVyYWwgYW5kIGNhbGxzICUlYWJicmV2IHRvCisgICAgICAgIC8vIHN1cHBseSB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgID0jLCMjMD09JSVhYmJyZXY9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHN1cHBsaWVzIHRoZSBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiJSVhYmJyZXY6XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgYWJicmV2aWF0aW9ucy4gIEV2ZXJ5dGhpbmcgZnJvbSA0IHRvIDE5IGVuZHMgaW4gInRoIgorICAgICAgICArICIgICAgdGg7IHN0OyBuZDsgcmQ7IHRoO1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMjAsIHdlIGJlZ2luIHJlcGVhdGluZyB0aGUgY3ljbGUgZXZlcnkgMTAgKDEzIGlzICIxM3RoIiwKKyAgICAgICAgICAgICAgIC8vIGJ1dCAyMyBhbmQgMzMgYXJlICIyM3JkIiBhbmQgIjMzcmQiKSAgV2UgZG8gdGhpcyBieQorICAgICAgICAgICAgICAgLy8gaWdub3JpbmcgYWxsIGJ1ZyB0aGUgb25lcyBkaWdpdCBpbiBzZWxlY3RpbmcgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICArICIgICAgMjA6ID4+O1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMTAwLCB3ZSByZXBlYXQgdGhlIHdob2xlIGN5Y2xlIGJ5IGNvbnNpZGVyaW5nIG9ubHkgdGhlCisgICAgICAgICAgICAgICAvLyB0ZW5zIGFuZCBvbmVzIGRpZ2l0cyBpbiBwaWNraW5nIGFuIGFiYnJldmlhdGlvbgorICAgICAgICArICIgICAgMTAwOiA+PjtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgc2ltcGxlIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgTm9ybWFsbHkgb25lIHdvdWxkCisgICAgICogdXNlIENob2ljZUZvcm1hdCBhbmQgTWVzc2FnZUZvcm1hdCB0byBkbyBzb21ldGhpbmcgdGhpcyBzaW1wbGUsCisgICAgICogYnV0IHRoaXMgc2hvd3MgaXQgY291bGQgYmUgZG9uZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0b28uCisgICAgICogQSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZSB0aGF0IG1pZ2h0IHdvcmsgYmV0dGVyIHdpdGgKKyAgICAgKiBSdWxlQmFzZWROdW1iZXJGb3JtYXQgYXBwZWFycyBsYXRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBtZXNzYWdlMSA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzdXJyb3VuZHMgd2hhdGV2ZXIgdGhlIG90aGVyIHJ1bGVzIHByb2R1Y2Ugd2l0aCB0aGUKKyAgICAgICAgLy8gcmVzdCBvZiB0aGUgc2VudGVuY2UKKyAgICAgICAgInguMDogVGhlIHNlYXJjaCBmb3VuZCA8PC47XG4iCisgICAgICAgIC8vIHVzZSB3b3JkcyBmb3IgdmFsdWVzIGJlbG93IDEwIChhbmQgY2hhbmdlIHRvICJmaWxlIiBmb3IgMSkKKyAgICAgICAgKyAibm8gZmlsZXM7IG9uZSBmaWxlOyB0d28gZmlsZXM7IHRocmVlIGZpbGVzOyBmb3VyIGZpbGVzOyBmaXZlIGZpbGVzO1xuIgorICAgICAgICArICIgICAgc2l4IGZpbGVzOyBzZXZlbiBmaWxlczsgZWlnaHQgZmlsZXM7IG5pbmUgZmlsZXM7XG4iCisgICAgICAgIC8vIHVzZSBudW1lcmFscyBmb3IgdmFsdWVzIGhpZ2hlciB0aGFuIDEwCisgICAgICAgICsgIj0jLCMjMD0gZmlsZXM7IjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gRnJhY3Rpb24gaGFuZGxpbmcKKyAgICAvLworICAgIC8vIFRoZSBuZXh0IGZldyBleGFtcGxlcyBzaG93IGhvdyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGJlIHVzZWQgZm9yCisgICAgLy8gbW9yZSBmbGV4aWJsZSBoYW5kbGluZyBvZiBmcmFjdGlvbnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gb25lIG9mIHRoZSB0d28gc3R5bGVzIG9mdGVuIHVzZWQKKyAgICAgKiBvbiBjaGVja3MuICAlZG9sbGFycy1hbmQtaHVuZHJlZHRocyBmb3JtYXRzIGNlbnRzIGFzIGh1bmRyZWR0aHMgb2YKKyAgICAgKiBhIGRvbGxhciAoMjMuNDAgY29tZXMgb3V0IGFzICJ0d2VudHktdGhyZWUgYW5kIDQwLzEwMCBkb2xsYXJzIikuCisgICAgICogJWRvbGxhcnMtYW5kLWNlbnRzIGZvcm1hdHMgaW4gZG9sbGFycyBhbmQgY2VudHMgKDIzLjQwIGNvbWVzIG91dCBhcworICAgICAqICJ0d2VudHktdGhyZWUgZG9sbGFycyBhbmQgZm9ydHkgY2VudHMiKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRvbGxhcnNBbmRDZW50cyA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGFzIGRvbGxhcnMgYW5kIGNlbnRzCisgICAgICAgICIlZG9sbGFycy1hbmQtY2VudHM6XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGUgdmFsdWUgaXMgMSBvciBtb3JlLCBwdXQgInh4IGRvbGxhcnMgYW5kIHl5IGNlbnRzIi4KKyAgICAgICAgICAgICAgIC8vIHRoZSAiYW5kIHkgY2VudHMiIHBhcnQgaXMgc3VwcHJlc3NlZCBpZiB0aGUgdmFsdWUgaXMgYW4KKyAgICAgICAgICAgICAgIC8vIGV2ZW4gbnVtYmVyIG9mIGRvbGxhcnMKKyAgICAgICAgKyAiICAgIHguMDogPDwgW2FuZCA+JSVjZW50cz5dO1xuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGlzIGJldHdlZW4gMCBhbmQgMSwgcHV0ICJ4eCBjZW50cyIKKyAgICAgICAgKyAiICAgIDAueDogPiUlY2VudHM+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlc2UgdGhyZWUgcnVsZXMgdGFrZSBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsCisgICAgICAgICAgICAgICAvLyBmb3JtcyBvZiAiZG9sbGFyIiBhbmQgdXNlICUlbWFpbiB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAgICArICIgICAgMDogemVybyBkb2xsYXJzOyBvbmUgZG9sbGFyOyA9JSVtYWluPSBkb2xsYXJzO1xuIgorICAgICAgICAvLyB0aGVzZSBhcmUgdGhlIHJlZ3VsYXIgVS5TLiBFbmdsaXNoIG51bWJlciBzcGVsbG91dCBydWxlcworICAgICAgICArICIlJW1haW46XG4iCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICArICIgICAgMjA6IHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSB0YWtlcyBjYXJlIG9mIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIHZhbHVlLiAgSXQKKyAgICAgICAgLy8gbXVsdGlwbGllcyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5CisgICAgICAgIC8vIDEwMCwgZm9ybWF0cyBpdCB3aXRoICUlbWFpbiwgYW5kIHRoZW4gYWRkZXMgdGhlIHdvcmQgImNlbnQiIG9yCisgICAgICAgIC8vICJjZW50cyIgdG8gdGhlIGVuZC4gIChUaGUgdGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmIHRoZQorICAgICAgICAvLyBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIDEuKQorICAgICAgICArICIlJWNlbnRzOlxuIgorICAgICAgICArICIgICAgMTAwOiA8JSVtYWluPCBjZW50W3NdO1xuIgorCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGFzIGRvbGxhcnMgYW5kIGh1bmRyZWR0aHMgb2YgZG9sbGFycworICAgICAgICArICIlZG9sbGFycy1hbmQtaHVuZHJlZHRoczpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSB0YWtlcyBjYXJlIG9mIHRoZSBnZW5lcmFsIHNoZWxsIG9mIHRoZSBvdXRwdXQKKyAgICAgICAgICAgICAgIC8vIHN0cmluZy4gIFdlIGFsd2F5cyBzaG93IHRoZSBjZW50cywgZXZlbiB3aGVuIHRoZXJlIGFyZW4ndAorICAgICAgICAgICAgICAgLy8gYW55LiAgQmVjYXVzZSBvZiB0aGlzLCB0aGUgd29yZCBpcyBhbHdheXMgImRvbGxhcnMiLS0KKyAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIHNpbmd1bGFyIGZvcm0uICBXZSB1c2UKKyAgICAgICAgICAgICAgIC8vICUlbWFpbiB0byBmb3JtYXQgdGhlIG51bWJlciBvZiBkb2xsYXJzIGFuZCAlJWh1bmRyZWR0aHMgdG8KKyAgICAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgbnVtYmVyIG9mIGNlbnRzCisgICAgICAgICsgIiAgICB4LjA6IDwlJW1haW48IGFuZCA+JSVodW5kcmVkdGhzPi8xMDAgZG9sbGFycztcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIHRoZSBjZW50cyBmb3IgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMuCisgICAgICAgIC8vIEl0IG11bHRpcGxpZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJ5IDEwMCBhbmQgZm9ybWF0cworICAgICAgICAvLyB0aGUgcmVzdWx0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIjAwIiB0ZWxscyB0aGUgRGVjaW1hbEZvcm1hdCB0bworICAgICAgICAvLyBhbHdheXMgdXNlIHR3byBkaWdpdHMsIGV2ZW4gZm9yIG51bWJlcnMgdW5kZXIgMTApCisgICAgICAgICsgIiUlaHVuZHJlZHRoczpcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDAwPDtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGZyYWN0aW9uCisgICAgICogd2l0aCBhIHBvd2VyIG9mIDEwIGFzIHRoZSBkZW5vbWluYXRvci4gIFNvbWUgbGFuZ3VhZ2VzIGRvbid0IHNwZWxsCisgICAgICogb3V0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYSBudW1iZXIgYXMgInBvaW50IG9uZSB0d28gdGhyZWUsIiBidXQKKyAgICAgKiBhbHdheXMgcmVuZGVyIGl0IGFzIGEgZnJhY3Rpb24uICBJZiB3ZSBzdGlsbCB3YW50IHRvIHRyZWF0IHRoZSBmcmFjdGlvbmFsCisgICAgICogcGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZGVjaW1hbCwgdGhlbiB0aGUgZnJhY3Rpb24ncyBkZW5vbWluYXRvcgorICAgICAqIGlzIGFsd2F5cyBhIHBvd2VyIG9mIDEwLiAgVGhpcyBleGFtcGxlIGRvZXMgdGhhdDogMjMuMTI1IGlzIGZvcm1hdHRlZAorICAgICAqIGFzICJ0d2VudHktdGhyZWUgYW5kIG9uZSBodW5kcmVkIHR3ZW50eS1maXZlIHRob3VzYW5kdGhzIiAoYXMgb3Bwb3NlZAorICAgICAqIHRvICJ0d2VudHktdGhyZWUgcG9pbnQgb25lIHR3byBmaXZlIiBvciAidHdlbnR5LXRocmVlIGFuZCBvbmUgZWlnaHRoIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVjaW1hbEFzRnJhY3Rpb24gPQorICAgICAgICAvLyB0aGUgcmVndWxhciBVLlMuIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMsIHdpdGggb25lIGRpZmZlcmVuY2UKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIGRpZmZlcmVuY2UuICBUaGlzIHJ1bGUgdXNlcyAlJWZyYWMgdG8gc2hvdyB0aGUgZnJhY3Rpb25hbAorICAgICAgICAgICAgICAgLy8gcGFydCBvZiB0aGUgbnVtYmVyLiAgVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIHdoZW4gdGhlCisgICAgICAgICAgICAgICAvLyB2YWx1ZSBpcyBiZXR3ZWVuIDAgYW5kIDEgKGNhdXNpbmcgMC4zIHRvIGNvbWUgb3V0IGFzICJ0aHJlZQorICAgICAgICAgICAgICAgLy8gdGVudGhzIiBpbnN0ZWFkIG9mICJ6ZXJvIGFuZCB0aHJlZSB0ZW50aHMiKS4KKyAgICAgICAgKyAiICAgIHgueDogWzw8IGFuZCBdPiUlZnJhYz47XG4iCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICArICIgICAgdHdlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0eVstPj5dO1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0eVstPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gdGhlIHJ1bGUgc2V0IHRoYXQgZm9ybWF0cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIuCisgICAgICAgIC8vIFRoZSBydWxlIHRoYXQgaXMgdXNlZCBpcyB0aGUgb25lIHRoYXQsIHdoZW4gaXRzIGJhYXNlIHZhbHVlIGlzCisgICAgICAgIC8vIG11bHRpcGxpZWQgYnkgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCwKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIHplcm8uICBUaHVzLCB0aGUgYmFzZSB2YWx1ZXMgYXJlCisgICAgICAgIC8vIHByb3NwZWN0aXZlIGRlbm9taW5hdG9ycyBvZiB0aGUgZnJhY3Rpb24uICBUaGUgPDwgbWFya3MgdGhlIHBsYWNlCisgICAgICAgIC8vIHdoZXJlIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uICh0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIHRoZQorICAgICAgICAvLyBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIGlzCisgICAgICAgIC8vIHBsYWNlZC4gIFRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCB3aGVuIHRoZSBudW1lcmF0b3IgaXMgMSwgZ2l2aW5nCisgICAgICAgIC8vIHVzIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mIHRoZSB3b3Jkcy4KKyAgICAgICAgLy8gW0luIGxhbmd1YWdlcyB3aGVyZSB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBhcmUgY29tcGxldGVseSBkaWZmZXJlbnQKKyAgICAgICAgLy8gd29yZHMsIHRoZSBydWxlIGNhbiBqdXN0IGJlIHN0YXRlZCB0d2ljZTogdGhlIHNlY29uZCB0aW1lIHdpdGgKKyAgICAgICAgLy8gdGhlIHBsdXJhbCBmb3JtLl0KKyAgICAgICAgKyAiJSVmcmFjOlxuIgorICAgICAgICArICIgICAgMTA6IDw8IHRlbnRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkdGhbc107XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZHRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiA8PCB0ZW4tdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6IDw8IGh1bmRyZWQtdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvbnRoW3NdOyI7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgd2l0aCBjbG9zZXN0IGZyYWN0aW9uLiAgVGhpcyBleGFtcGxlIGZvcm1hdHMgYSB2YWx1ZSB1c2luZworICAgICAqIG51bWVyYWxzLCBidXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBhcyBhIHJhdGlvIChmcmFjdGlvbikgcmF0aGVyCisgICAgICogdGhhbiBhIGRlY2ltYWwuICBUaGUgZnJhY3Rpb24gYWx3YXlzIGhhcyBhIGRlbm9taW5hdG9yIGJldHdlZW4gMiBhbmQgMTAuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2xvc2VzdEZyYWN0aW9uID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIG51bWJlciBpZiBpdCdzIDEgb3IgbW9yZS4gIEl0IGZvcm1hdHMKKyAgICAgICAgICAgICAgIC8vIHRoZSBpbnRlZ3JhbCBwYXJ0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIiMsIyMwIiBwdXRzCisgICAgICAgICAgICAgICAvLyB0aG91c2FuZHMgc2VwYXJhdG9ycyBpbiB0aGUgcmlnaHQgcGxhY2VzKSBhbmQgdGhlIGZyYWN0aW9uYWwKKyAgICAgICAgICAgICAgIC8vIHBhcnQgdXNpbmcgJSVmcmFjLiAgSWYgdGhlcmUgaXMgbm8gZnJhY3Rpb25hbCBwYXJ0LCBpdAorICAgICAgICAgICAgICAgLy8ganVzdCBzaG93cyB0aGUgaW50ZWdyYWwgcGFydC4KKyAgICAgICAgKyAiICAgIHguMDogPCMsIyMwPFsgPiUlZnJhYz5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIG51bWJlciBpZiBpdCdzIGJldHdlZW4gMCBhbmQgMS4gIEl0CisgICAgICAgICAgICAgICAvLyBzaG93cyBvbmx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgKDAuNSBzaG93cyB1cCBhcyAiMS8yLCIgbm90CisgICAgICAgICAgICAgICAvLyAiMCAxLzIiKQorICAgICAgICArICIgICAgMC54OiA+JSVmcmFjPjtcbiIKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgdGhlIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gcHJlY2VkaW5nIGV4YW1wbGU6IFdlIG11bHRpcGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlcgorICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgdXNlIHRoZSBydWxlIHRoYXQKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIDAgKG9yIHRoZSBmaXJzdCBydWxlIHRoYXQgcHJvZHVjZXMgMCkuCisgICAgICAgIC8vIFNpbmNlIHdlIG9ubHkgcHJvdmlkZSBydWxlcyBmb3IgdGhlIG51bWJlcnMgZnJvbSAyIHRvIDEwLCB3ZSBrbm93CisgICAgICAgIC8vIHdlJ2xsIGdldCBhIGZyYWN0aW9uIHdpdGggYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAgICAvLyAiPDA8IiBjYXVzZXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gdG8gYmUgZm9ybWF0dGVkCisgICAgICAgIC8vIHVzaW5nIG51bWVyYWxzCisgICAgICAgICsgIiUlZnJhYzpcbiIKKyAgICAgICAgKyAiICAgIDI6IDEvMjtcbiIKKyAgICAgICAgKyAiICAgIDM6IDwwPC8zO1xuIgorICAgICAgICArICIgICAgNDogPDA8LzQ7XG4iCisgICAgICAgICsgIiAgICA1OiA8MDwvNTtcbiIKKyAgICAgICAgKyAiICAgIDY6IDwwPC82O1xuIgorICAgICAgICArICIgICAgNzogPDA8Lzc7XG4iCisgICAgICAgICsgIiAgICA4OiA8MDwvODtcbiIKKyAgICAgICAgKyAiICAgIDk6IDwwPC85O1xuIgorICAgICAgICArICIgICAgMTA6IDwwPC8xMDtcbiI7CisKKyAgICAvKioKKyAgICAgKiBBbWVyaWNhbiBzdG9jay1wcmljZSBmb3JtYXR0aW5nLiAgTm9uLWludGVncmFsIHN0b2NrIHByaWNlcyBhcmUgc3RpbGwKKyAgICAgKiBnZW5lcmFsbHkgc2hvd24gaW4gZWlnaHRocyBvciBzaXh0ZWVudGhzIG9mIGRvbGxhcnMgaW5zdGVhZCBvZiBkb2xsYXJzCisgICAgICogYW5kIGNlbnRzLiAgVGhpcyBleGFtcGxlIGZvcm1hdHMgc3RvY2sgcHJpY2VzIGluIHRoaXMgd2F5IGlmIHBvc3NpYmxlLAorICAgICAqIGFuZCBpbiBkb2xsYXJzIGFuZCBjZW50cyBpZiBub3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3RvY2sgPQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgaW50ZWdyYWwgcGFydCBvZiB0aGUgbnVtYmVyIGluIG51bWVyYWxzCisgICAgICAgICAgICAgICAvLyBhbmQgKGlmIG5lY2Vzc2FyeSkgdGhlIGZyYWN0aW9uYWwgcGFydCB1c2luZyAlJWZyYWMxCisgICAgICAgICsgIiAgICB4LjA6IDwjLCMjMDxbPiUlZnJhYzE+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBpcyB1c2VkIGZvciB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxIGFuZCBvbWl0cyB0aGUKKyAgICAgICAgICAgICAgIC8vIGludGVncmFsIHBhcnQKKyAgICAgICAgKyAiICAgIDAueDogPiUlZnJhYzI+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciB3aGVuCisgICAgICAgIC8vIHRoZXJlJ3MgYW4gaW50ZWdyYWwgcGFydCBiZWZvcmUgaXQgKGFnYWluLCB3ZSB0cnkgYWxsIGRlbm9taW5hdG9ycworICAgICAgICAvLyBhbmQgdXNlIHRoZSAiYmVzdCIgb25lKQorICAgICAgICArICIlJWZyYWMxOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIGV2ZW4gbXVsdGlwbGVzIG9mIDEvNCwgZm9ybWF0IHRoZSBmcmFjdGlvbiB1c2luZyB0aGUKKyAgICAgICAgICAgICAgIC8vIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zCisgICAgICAgICsgIiAgICA0OiA8JSVxdWFydGVyczw7XG4iCisgICAgICAgICAgICAgICAvLyBmb3JtYXQgdGhlIHZhbHVlIGFzIGEgbnVtYmVyIG9mIGVpZ2h0aHMsIHNpeHRlZW50aHMsIG9yCisgICAgICAgICAgICAgICAvLyB0aGlydHktc2Vjb25kcywgd2hpY2hldmVyIHByb2R1Y2VzIHRoZSBtb3N0IGFjY3VyYXRlIHZhbHVlLgorICAgICAgICAgICAgICAgLy8gVGhlIGFwb3N0cm9waGUgYXQgdGhlIGZyb250IG9mIHRoZXNlIHJ1bGVzIGlzIGlnbm9yZWQsIGJ1dAorICAgICAgICAgICAgICAgLy8gaXQgbWFrZXMgdGhlIHNwYWNlIHRoYXQgZm9sbG93cyBpdCBzaWduaWZpY2FudC4gIFRoaXMgcHV0cyBhCisgICAgICAgICAgICAgICAvLyBzcGFjZSBiZXR3ZWVuIHRoZSB2YWx1ZSdzIGludGVncmFsIGFuZCBmcmFjdGlvbmFsIHBhcnRzIHNvCisgICAgICAgICAgICAgICAvLyB5b3UgY2FuIHJlYWQgaXQKKyAgICAgICAgKyAiICAgIDg6ICcgPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICAxNjogJyA8MDwvMTY7XG4iCisgICAgICAgICsgIiAgICAzMjogJyA8MDwvMzI7XG4iCisgICAgICAgICAgICAgICAvLyBpZiB3ZSBjYW4ndCByZWFzb25hYmx5IGZvcm1hdCB0aGUgbnVtYmVyIGluIHBvd2VycyBvZiAyLAorICAgICAgICAgICAgICAgLy8gdGhlbiBzaG93IGl0IGFzIGRvbGxhcnMgYW5kIGNlbnRzCisgICAgICAgICsgIiAgICAxMDA6IC48MDA8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgd2hlbiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSB2YWx1ZSBzdGFuZHMKKyAgICAgICAgLy8gYWxvbmUKKyAgICAgICAgKyAiJSVmcmFjMjpcbiIKKyAgICAgICAgKyAiICAgIDQ6IDwlJXF1YXJ0ZXJzPDtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciBmcmFjdGlvbnMgdGhhdCB3ZSBjYW4ndCBzaG93IHVzaW5nIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zLAorICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBwdXQgYSBzcGFjZSBiZWZvcmUgdGhlIGZyYWN0aW9uCisgICAgICAgICsgIiAgICA4OiA8MDwvODtcbiIKKyAgICAgICAgKyAiICAgIDE2OiA8MDwvMTY7XG4iCisgICAgICAgICsgIiAgICAzMjogPDA8LzMyO1xuIgorICAgICAgICAgICAgICAgLy8gYnV0IGRvbGxhcnMgYW5kIGNlbnRzIGxvb2sgYmV0dGVyIHdpdGggYSBsZWFkaW5nIDAKKyAgICAgICAgKyAiICAgIDEwMDogMC48MDA8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgMS80LCAxLzIsIGFuZCAzLzQgdXNpbmcgdHlwb2dyYXBoZXIncyBmcmFjdGlvbnMKKyAgICAgICAgKyAiJSVxdWFydGVyczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwMGJjOyBcdTAwYmQ7IFx1MDBiZTtcbiIKKyAgICAgICAgLy8gdGhlcmUgYXJlIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzLiAgVGhlc2UgYWxsb3cgdGhlIHVzZXIgdG8gdHlwZQorICAgICAgICAvLyAiMS80LCIgIjEvMiwiIGFuZCAiMy80IiBpbnN0ZWFkIG9mIHRoZWlyIHR5cG9ncmFwaGljYWwgY291bnRlcnBhcnRzCisgICAgICAgIC8vIGFuZCBzdGlsbCBoYXZlIHRoZW0gYmUgdW5kZXJzdG9vZCBieSB0aGUgZm9ybWF0dGVyCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJzEvNCcgLCBcdTAwYmNcbiIKKyAgICAgICAgKyAiICAgICYgJzEvMicgLCBcdTAwYmRcbiIKKyAgICAgICAgKyAiICAgICYgJzMvNCcgLCBcdTAwYmVcbjsiOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGFuZ2luZyBkaW1lbnNpb25zCisgICAgLy8KKyAgICAvLyBUaGUgbmV4dCBmZXcgZXhhbXBsZXMgZGVtb25zdHJhdGUgdXNpbmcgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdG8KKyAgICAvLyBjaGFuZ2UgdGhlIHVuaXRzIGEgdmFsdWUgaXMgZGVub21pbmF0ZWQgaW4gZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhlIGV4YW1wbGUgc2hvd3MgbGFyZ2UgbnVtYmVycyB0aGUgd2F5IHRoZXkgb2Z0ZW4gYXBwZWFyIGlzIG53ZXNwYXBlcnM6CisgICAgICogMSwyMDAsMDAwIGlzIGZvcm1hdHRlZCBhcyAiMS4yIG1pbGxpb24iLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGFiYkVuZ2xpc2ggPQorICAgICAgICAiPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gdGhpcyBpcyBmYWlybHkgc2VsZi1leHBsYW5hdG9yeSwgYnV0IG5vdGUgdGhhdCB0aGUgPDwgc3Vic3RpdHV0aW9uCisgICAgICAgIC8vIGNhbiBzaG93IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZSBpZiB0aGUgdXNlcgorICAgICAgICAvLyB3YW50cyBpdAorICAgICAgICArICIxLDAwMCwwMDA6IDwjIzAuIyMjPCBtaWxsaW9uO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgYmlsbGlvbjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDwjIzAuIyMjPCB0cmlsbGlvbjtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgdGFrZXMgYSBudW1iZXIgb2YgbWV0ZXJzIGFuZCBmb3JtYXRzIGl0IGluIHdoYXRldmVyIHVuaXQKKyAgICAgKiB3aWxsIHByb2R1Y2UgYSBudW1iZXIgd2l0aCBmcm9tIG9uZSB0byB0aHJlZSBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsCisgICAgICogcG9pbnQuICBGb3IgZXhhbXBsZSwgMjMwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgIjIzMCBrbSIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdW5pdHMgPQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSwgZGVsZWdhdGUgdG8gJSVzbWFsbAorICAgICAgICArICIgICAgMC54OiA+JSVzbWFsbD47XG4iCisgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHNob3cgYmV0d2VlbiAzIGFuZCA2IHNpZ25pZmljYW50IGRpZ2l0cyBvZiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgIC8vIGFsb25nIHdpdGggdGhlIG1vc3QgYXBwcm9wcmlhdGUgdW5pdAorICAgICAgICArICIgICAgMDogPSMjMC4jIyM9IG07XG4iCisgICAgICAgICsgIiAgICAxLDAwMDogPCMjMC4jIyM8IGttO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8IyMwLiMjIzwgTW07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgR207XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPCMsIyMwLiMjIzwgVG07XG4iCisgICAgICAgIC8vICUlc21hbGwgZm9ybWF0cyB0aGUgbnVtYmVyIHdoZW4gaXQncyBsZXNzIHRoZW4gMS4gIEl0IG11bHRpcGxpZXMgdGhlCisgICAgICAgIC8vIHZhbHVlIGJ5IG9uZSBiaWxsaW9uLCBhbmQgdGhlbiB1c2VzICUlc21hbGwyIHRvIGFjdHVhbGx5IGRvIHRoZQorICAgICAgICAvLyBmb3JtYXR0aW5nLgorICAgICAgICArICIlJXNtYWxsOlxuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwlJXNtYWxsMjw7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgYWN0dWFsbHkgZm9ybWF0cyBzbWFsbCB2YWx1ZXMuICAlJXNtYWxsIHBhc3NlcyB0aGlzCisgICAgICAgIC8vIHJ1bGUgc2V0IGEgbnVtYmVyIG9mIHBpY29tZXRlcnMsIGFuZCBpdCB0YWtlcyBjYXJlIG9mIHNjYWxpbmcgdXAgYXMKKyAgICAgICAgLy8gYXBwcm9wcmlhdGUgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkgJW1haW4gZG9lcyAod2UgY2FuJ3Qgbm9ybWFsbHkKKyAgICAgICAgLy8gaGFuZGxlIGZyYWN0aW9uYWwgdmFsdWVzIHRoaXMgd2F5OiBoZXJlLCB3ZSdyZSBjb25jZXJuZWQgYWJvdXQKKyAgICAgICAgLy8gbWFnbml0dWRlOyBtb3N0IG9mIHRoZSB0aW1lLCB3ZSdyZSBjb25jZXJuZWQgYWJvdXQgcHJlY3Npb24pCisgICAgICAgICsgIiUlc21hbGwyOlxuIgorICAgICAgICArICIgICAgMDogPSMjMD0gcG07XG4iCisgICAgICAgICsgIiAgICAxLDAwMDogPCMjMC4jIyM8IG5tO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8IyMwLiMjIzwgXHUwMGI1bTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDwjIzAuIyMjPCBtbTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBBIG1vcmUgY29tcGxpY2F0ZWQgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUuICBIZXJlLCBpbiBhZGRpdGlvbiB0bworICAgICAqIGhhbmRsaW5nIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIHZlcnNpb25zIG9mIHRoZSB3b3JkLCB0aGUgdmFsdWUgaXMKKyAgICAgKiBkZW5vbWluYXRlZCBpbiBieXRlcywga2lsb2J5dGVzLCBvciBtZWdhYnl0ZXMgZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuCisgICAgICogQWxzbyBub3RpY2UgdGhhdCBpdCBjb3JyZWN0bHkgdHJlYXRzIGEga2lsb2J5dGUgYXMgMSwwMjQgYnl0ZXMgKG5vdCAxLDAwMCksCisgICAgICogYW5kIGEgbWVnYWJ5dGUgYXMgMSwwMjQga2lsb2J5dGVzIChub3QgMSwwMDApLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIG1lc3NhZ2UyID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHN1cHBsaWVzIHRoZSBzaGVsbCBvZiB0aGUgc2VudGVuY2UKKyAgICAgICAgInguMDogVGhlcmUgPDwgZnJlZSBzcGFjZSBvbiB0aGUgZGlzay47XG4iCisgICAgICAgIC8vIGhhbmRsZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mICJieXRlIiAoYW5kIGZvcm1hdCAwIGFzCisgICAgICAgIC8vICJUaGVyZSBpcyBubyBmcmVlIHNwYWNlLi4uIikKKyAgICAgICAgKyAiMDogaXMgbm87XG4iCisgICAgICAgICsgImlzIG9uZSBieXRlIG9mO1xuIgorICAgICAgICArICJhcmUgPTA9IGJ5dGVzIG9mO1xuIgorICAgICAgICAvLyBmb3IgdmFsdWVzIGFib3ZlIDEsMDI0LCBmb3JtYXQgdGhlIG51bWJlciBpbiBLIChzaW5jZSAiSyIgaXMgdXN1YWxseQorICAgICAgICAvLyBwcm9tb3VuY2VkICJLIiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQncyBzaW5ndWxhciBvciBwbHVyYWwsIHdlCisgICAgICAgIC8vIGRvbid0IHdvcnJ5IGFib3V0IHRoZSBwbHVyYWwgZm9ybSkuICBUaGUgIi8xMDI0IiBoZXJlIGNhdXNlcyB1cyB0bworICAgICAgICAvLyB0cmVhdCBhIEsgYXMgMSwwMjQgYnl0ZXMgcmF0aGVyIHRoYW4gMSwwMDAgYnl0ZXMuCisgICAgICAgICsgIjEwMjQvMTAyNDogaXMgPDA8SyBvZjtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm91dCAxLDA0OCw1NzYsIGZvcm1hdCB0aGUgbnVtYmVyIGluIE1iLiAgU2luY2UgIk1iIiBpcworICAgICAgICAvLyB1c3VhbGx5IHByb21vdW5jZWQgIm1lZyIgaW4gc2luZ3VsYXIgYW5kICJtZWdzIiBpbiBwbHVyYWwsIHdlIGRvIGhhdmUKKyAgICAgICAgLy8gYm90aCBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zLiAgQWdhaW4sIG5vdGljZSB3ZSB0cmVhdCBhIG1lZ2FieXRlCisgICAgICAgIC8vIGFzIDEsMDI0IGtpbG9ieXRlcy4KKyAgICAgICAgKyAiMSwwNDgsNTc2LzEwMjQ6IGlzIDEgTWIgb2Y7XG4iCisgICAgICAgICsgIjIsMDk3LDE1Mi8xMDI0OiBhcmUgPDA8IE1iIG9mOyI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEFsdGVybmF0ZSByYWRpY2VzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIGluIGRvemVucyBhbmQgZ3Jvc3MuICBUaGlzIGlzIGludGVuZGVkIHRvCisgICAgICogZGVtb25zdHJhdGUgaG93IHRoaXMgcnVsZSBzZXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgaW4gc3lzdGVtcworICAgICAqIG90aGVyIHRoYW4gYmFzZSAxMC4gIFRoZSAiLzEyIiBhZnRlciB0aGUgcnVsZXMnIGJhc2UgdmFsdWVzIGNvbnRyb2xzIHRoaXMuCisgICAgICogQWxzbyBub3RpY2UgdGhhdCB0aGUgYmFzZSBkb2Vzbid0IGhhdmUgdG8gYmUgY29uc2lzdGVudCB0aHJvdWdob3V0IHRoZQorICAgICAqIHdob2xlIHJ1bGUgc2V0OiB3ZSBnbyBiYWNrIHRvIGJhc2UgMTAgZm9yIHZhbHVlcyBvdmVyIDEsMDAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRvemVucyA9CisgICAgICAgIC8vIHdvcmRzIGZvciBudW1iZXJzLi4uCisgICAgICAgICJ6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDtcbiIKKyAgICAgICAgKyAic2V2ZW47IGVpZ2h0OyBuaW5lOyB0ZW47IGVsZXZlbjtcbiIKKyAgICAgICAgLy8gZm9ybWF0IHZhbHVlcyBvdmVyIDEyIGluIGRvemVucworICAgICAgICArICIxMi8xMjogPDwgZG96ZW5bIGFuZCA+Pl07XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxNDQgaW4gZ3Jvc3MKKyAgICAgICAgKyAiMTQ0LzEyOiA8PCBncm9zc1ssID4+XTtcbiIKKyAgICAgICAgLy8gZm9ybWF0IHZhbHVlcyBvdmVyIDEsMDAwIGluIHRob3VzYW5kcworICAgICAgICArICIxMDAwOiA8PCB0aG91c2FuZFssID4+XTtcbiIKKyAgICAgICAgLy8gb3ZlcmZsb3cgcnVsZS4gIEZvcm1hdCB2YWx1ZXMgb3ZlciAxMCwwMDAgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiMTAsMDAwOiA9IywjIzA9O1xuIjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTWFqb3IgYW5kIG1pbm9yIHVuaXRzCisgICAgLy8KKyAgICAvLyBUaGVzZSBleGFtcGxlcyBzaG93IGhvdyBhIHNpbmdsZSB2YWx1ZSBjYW4gYmUgZGl2aWRlZCB1cCBpbnRvIG1ham9yCisgICAgLy8gYW5kIG1pbm9yIHVuaXRzIHRoYXQgZG9uJ3QgcmVsYXRlIHRvIGVhY2ggb3RoZXIgYnkgYSBmYWN0b3Igb2YgMTAuCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIHNlY29uZHMgaW4gc2V4YWdlc2ltYWwgbm90YXRpb24KKyAgICAgKiAoaS5lLiwgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgaXQgd2l0aAorICAgICAqIHdvcmRzICgzNzQwIGlzICIxIGhvdXIsIDIgbWludXRlcywgMjAgc2Vjb25kcyIpIGFuZCAlaW4tbnVtZXJhbHMKKyAgICAgKiBmb3JtYXRzIGl0IGVudGlyZWx5IGluIG51bWVyYWxzICgzNzQwIGlzICIxOjAyOjIwIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZHVyYXRpb25JblNlY29uZHMgPQorICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YgInNlY29uZCIKKyAgICAgICAgKyAiICAgIDAgc2Vjb25kczsgMSBzZWNvbmQ7ID0wPSBzZWNvbmRzO1xuIgorICAgICAgICAgICAgICAgLy8gdXNlICUlbWluIHRvIGZvcm1hdCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDYwIHNlY29uZHMKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8JSVtaW48WywgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAgICAgICAgLy8gKHRoZSAiPj4+IiBiZWxvdyBjYXVzZXMgdXMgdG8gc2VlIHRoZSBudW1iZXIgb2YgbWludXRlcworICAgICAgICAgICAgICAgLy8gd2hlbiB3aGVuIHRoZXJlIGFyZSB6ZXJvIG1pbnV0ZXMpCisgICAgICAgICsgIiAgICAzNjAwLzYwOiA8JSVocjxbLCA+Pj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgLy8gb2YgIm1pbnV0ZSIKKyAgICAgICAgKyAiJSVtaW46XG4iCisgICAgICAgICsgIiAgICAwIG1pbnV0ZXM7IDEgbWludXRlOyA9MD0gbWludXRlcztcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJob3VyIgorICAgICAgICArICIlJWhyOlxuIgorICAgICAgICArICIgICAgMCBob3VyczsgMSBob3VyOyA9MD0gaG91cnM7XG4iCisKKyAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyBpbiBudW1lcmFscworICAgICAgICArICIlaW4tbnVtZXJhbHM6XG4iCisgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgNjAgc2Vjb25kcyBhcmUgc2hvd24gd2l0aCAic2VjLiIKKyAgICAgICAgKyAiICAgID0wPSBzZWMuO1xuIgorICAgICAgICAgICAgICAgLy8gaGlnaGVyIHZhbHVlcyBhcmUgc2hvd24gd2l0aCBjb2xvbnM6ICUlbWluLXNlYyBpcyB1c2VkIGZvcgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGJlbG93IDMsNjAwIHNlY29uZHMuLi4KKyAgICAgICAgKyAiICAgIDYwOiA9JSVtaW4tc2VjPTtcbiIKKyAgICAgICAgICAgICAgIC8vIC4uLmFuZCAlJWhyLW1pbi1zZWMgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIHNlY29uZHMKKyAgICAgICAgICAgICAgIC8vIGFuZCBhYm92ZQorICAgICAgICArICIgICAgMzYwMDogPSUlaHItbWluLXNlYz07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBjYXVzZXMgdmFsdWVzIG9mIGxlc3MgdGhhbiAxMCBtaW51dGVzIHRvIHNob3cgd2l0aG91dAorICAgICAgICAvLyBhIGxlYWRpbmcgemVybworICAgICAgICArICIlJW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDw+PjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciB2YWx1ZXMgb2YgMyw2MDAgb3IgbW9yZS4gIE1pbnV0ZXMgYXJlIGFsd2F5cworICAgICAgICAvLyBzaG93biwgYW5kIGFsd2F5cyBzaG93biB3aXRoIHR3byBkaWdpdHMKKyAgICAgICAgKyAiJSVoci1taW4tc2VjOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDAwPD4+O1xuIgorICAgICAgICArICIgICAgMzYwMC82MDogPCMsIyMwPDo+Pj47XG4iCisgICAgICAgIC8vIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzIGFsbG93IHNldmVyYWwgZGlmZmVyZW50IGNoYXJhY3RlcnMgdG8gYmUgdXNlZAorICAgICAgICAvLyBhcyBkZWxpbWl0ZXJzIGJldHdlZW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgOiA9IC4gPSAnICcgPSAtO1xuIjsKKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIGhvdXJzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uIChpLmUuLAorICAgICAqIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIHRoZSB2YWx1ZSB1c2luZworICAgICAqIHdvcmRzIGZvciB0aGUgdW5pdHMsIGFuZCAlaW4tbnVtZXJhbHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgb25seQorICAgICAqIG51bWVyYWxzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5Ib3VycyA9CisgICAgICAgIC8vIG1haW4gZW50cnkgcG9pbnQgZm9yIGZvcm1hdHRpbmcgd2l0aCB3b3JkcworICAgICAgICAiJXdpdGgtd29yZHM6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgb21pdHMgbWludXRlcyBhbmQgc2Vjb25kcyB3aGVuIHRoZSB2YWx1ZSBpcworICAgICAgICAgICAgICAgLy8gYW4gZXZlbiBudW1iZXIgb2YgaG91cnMKKyAgICAgICAgKyAiICAgIHguMDogPDxbLCA+JSVtaW4tc2VjPl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGVzZSBydWxlcyB0YWtlIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgICAgICAgIC8vIG9mIGhvdXJzCisgICAgICAgICsgIiAgICAwIGhvdXJzOyAxIGhvdXI7ID0jLCMjMD0gaG91cnM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGFuZCBtdWx0aXBsaWVzCisgICAgICAgIC8vIGl0IGJ5IDMsNjAwICh0dXJuaW5nIGl0IGludG8gYSBudW1iZXIgb2Ygc2Vjb25kcykuICBUaGVuIGl0IGRlbGVnYXRlcworICAgICAgICAvLyB0byAlJW1pbi1zZWMtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0IHRoZSByZXN1bHRpbmcgdmFsdWUKKyAgICAgICAgKyAiJSVtaW4tc2VjOlxuIgorICAgICAgICArICIgICAgMzYwMDogPSUlbWluLXNlYy1pbXBsZW1lbnRhdGlvbj07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgc2Vjb25kcyBhcyBlaXRoZXIgc2Vjb25kcyBvciBtaW51dGVzIGFuZAorICAgICAgICAvLyBzZWNvbmRzLCBhbmQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZgorICAgICAgICAvLyAibWludXRlIiBhbmQgInNlY29uZCIKKyAgICAgICAgKyAiJSVtaW4tc2VjLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgMCBzZWNvbmRzOyAxIHNlY29uZDsgPTA9IHNlY29uZHM7XG4iCisgICAgICAgICsgIiAgICA2MC82MDogMSBtaW51dGVbLCA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMjAvNjA6IDwwPCBtaW51dGVzWywgPj5dO1xuIgorCisgICAgICAgIC8vIG1haW4gZW50cnkgcG9pbnQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAgICAgICAgLy8gc2hvdyBtaW51dGVzIGV2ZW4gZm9yIGV2ZW4gbnVtYmVycyBvZiBob3VycworICAgICAgICArICIgICAgeC4wOiA8IywjIzA8OjAwO1xuIgorICAgICAgICAgICAgICAgLy8gZGVsZWdhdGUgdG8gJSVtaW4tc2VjMiB0byBmb3JtYXQgbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIgICAgeC54OiA8IywjIzA8Oj4lJW1pbi1zZWMyPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIG1pbnV0ZXMgd2hlbiB0aGVyZSBpcyBhbiBldmVuIG51bWJlciBvZgorICAgICAgICAvLyBtaW51dGVzLCBhbmQgZGVsZWdhdGVzIHRvICUlbWluLXNlYzItaW1wbGVtZW50YXRpb24gd2hlbiB0aGVyZQorICAgICAgICAvLyBhcmUgc2Vjb25kcworICAgICAgICArICIlJW1pbi1zZWMyOlxuIgorICAgICAgICArICIgICAgNjA6IDwwMDw7XG4iCisgICAgICAgICsgIiAgICAzNjAwOiA8JSVtaW4tc2VjMi1pbXBsZW1lbnRhdGlvbjw7XG4iCisgICAgICAgIC8vIHRoZXNlIHR3byBydWxlIHNldHMgYXJlIHVzZWQgdG8gZm9ybWF0IHRoZSBtaW51dGVzIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbWluLXNlYzItaW1wbGVtZW50YXRpb246XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiA2MCBzZWNvbmRzLCBzaG93IHRoZSBtaW51dGVzIGFueXdheQorICAgICAgICArICIgICAgMDogMDA6PTAwPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBtaW51dGVzLCBmb3JtYXQgdGhlbSB0b28sIGFuZCBhbHdheXMgdXNlIDIgZGlnaXRzCisgICAgICAgICAgICAgICAvLyBmb3IgYm90aCBtaW51dGVzIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYzM9O1xuIgorICAgICAgICArICIlJW1pbi1zZWMzOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDAwPD4+O1xuIgorICAgICAgICAvLyB0aGUgbGVuaWVudC1wYXJzZSBydWxlcyBhbGxvdyB0aGUgdXNlciB0byB1c2UgYW55IG9mIHNldmVyYWwKKyAgICAgICAgLy8gY2hhcmFjdGVycyBhcyBkZWxpbWl0ZXJzIGJldHdlZW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgOiA9IC4gPSAnICcgPSAtO1xuIjsKKworICAgIC8qKgorICAgICAqIFRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwb3VuZHMgYXMgcG91bmRzLCBzaGlsbGluZ3MsIGFuZAorICAgICAqIHBlbmNlIGluIHRoZSBvbGQgRW5nbGlzaCBzeXN0ZW0gb2YgY3VycmVuY3kuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcG91bmRzU2hpbGxpbmdzQW5kUGVuY2UgPQorICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEgb3IgbW9yZSwgZm9ybWF0IHRoZSBpbnRlZ3JhbCBwYXJ0IHdpdGggYSBwb3VuZAorICAgICAgICAvLyBzaWduIGluIGZyb250LCBhbmQgc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlIGlmIG5lY2Vzc2FyeQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICB4LjA6IFx1MDBhMzwjLCMjMDxbID4lJXNoaWxsaW5ncy1hbmQtcGVuY2U+XTtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEsIG9taXQgdGhlIG51bWJlciBvZiBwb3VuZHMKKyAgICAgICAgKyAiICAgIDAueDogPiUlcGVuY2UtYWxvbmU+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlLiAgSXQgbXVsdGlwbGllcworICAgICAgICAvLyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYnkgMjQwICh0aGUgbnVtYmVyIG9mIHBlbmNlIGluIGEKKyAgICAgICAgLy8gcG91bmQpIGFuZCB1c2VzICUlc2hpbGxpbmdzLWFuZC1wZW5jZS1pbXBsZW1lbnRhdGlvbiB0byBmb3JtYXQKKyAgICAgICAgLy8gdGhlIHJlc3VsdAorICAgICAgICArICIlJXNoaWxsaW5ncy1hbmQtcGVuY2U6XG4iCisgICAgICAgICsgIiAgICAyNDA6IDwlJXNoaWxsaW5ncy1hbmQtcGVuY2UtaW1wbGVtZW50YXRpb248O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlIHdoZW4gdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIHBvdW5kcy4gIEl0IGFsc28gbXVsdGlwbGllcyB0aGUgdmFsdWUgYnkgMjQwLCBhbmQgdGhlbiBpdCB1c2VzCisgICAgICAgIC8vICUlcGVuY2UtYWxvbmUtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0IHRoZSByZXN1bHQuCisgICAgICAgICsgIiUlcGVuY2UtYWxvbmU6XG4iCisgICAgICAgICsgIiAgICAyNDA6IDwlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBlbmNlIHdoZW4gd2Uga25vdyB3ZSBhbHNvCisgICAgICAgIC8vIGhhdmUgcG91bmRzLiAgV2UgYWx3YXlzIHNob3cgc2hpbGxpbmdzICh3aXRoIGEgMCBpZiBuZWNlc3NhcnkpLAorICAgICAgICAvLyBidXQgb25seSBzaG93IHBlbmNlIGlmIHRoZSB2YWx1ZSBpc24ndCBhbiBldmVuIG51bWJlciBvZiBzaGlsbGluZ3MKKyAgICAgICAgKyAiJSVzaGlsbGluZ3MtYW5kLXBlbmNlLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgMC87IDAvPTA9O1xuIgorICAgICAgICArICIgICAgMTIvMTI6IDwwPC9bPjA+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBlbmNlIHdoZW4gd2Uga25vdyB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gcG91bmRzLiAgVmFsdWVzIGxlc3MgdGhhbiBhIHNoaWxsaW5nIGFyZSBzaG93biB3aXRoICJkLiIgKHRoZQorICAgICAgICAvLyBhYmJyZXZpYXRpb24gZm9yIHBlbmNlKSwgYW5kIHZhbHVlcyBncmVhdGVyIHRoYW4gYSBzaGlsbGluZyBhcmUKKyAgICAgICAgLy8gc2hvd24gd2l0aCBhIHNoaWxsaW5nIGJhciAoYW5kIHdpdGhvdXQgcGVuY2Ugd2hlbiB0aGUgdmFsdWUgaXMKKyAgICAgICAgLy8gYW4gZXZlbiBudW1iZXIgb2Ygc2hpbGxpbmdzKQorICAgICAgICArICIlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgPTA9IGQuO1xuIgorICAgICAgICArICIgICAgMTIvMTI6IDwwPC9bPjA+XTtcbiI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEFsdGVybmF0ZSBudW1lcmF0aW9uIHN5c3RlbXMKKyAgICAvLworICAgIC8vIFRoZXNlIGV4YW1wbGVzIHNob3cgaG93IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQKKyAgICAvLyBudW1iZXJzIHVzaW5nIG5vbi1wb3NpdGlvbmFsIG51bWVyYXRpb24gc3lzdGVtcy4KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQXJhYmljIGRpZ2l0cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIG51bWJlcnMgaW4gQXJhYmljIG51bWVyYWxzLgorICAgICAqIE5vcm1hbGx5LCB5b3UnZCBkbyB0aGlzIHdpdGggRGVjaW1hbEZvcm1hdCwgYnV0IHRoaXMgc2hvd3MgdGhhdAorICAgICAqIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gaGFuZGxlIGl0IHRvby4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBhcmFiaWNOdW1lcmFscyA9CisgICAgICAgICIwOyAxOyAyOyAzOyA0OyA1OyA2OyA3OyA4OyA5O1xuIgorICAgICAgICArICIxMDogPDw+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMTAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIi14OiAtPj47XG4iCisgICAgICAgICsgIngueDogPDwuPj47IjsKKworICAgIC8qKgorICAgICAqIFdvcmRzIGZvciBkaWdpdHMuICBGb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIEFyYWJpYy1udW1lcmFscworICAgICAqIGV4YW1wbGUgYWJvdmUsIGJ1dCB1c2VzIHdvcmRzIGZvciB0aGUgdmFyaW91cyBkaWdpdHMgKGUuZy4sIDEyMyBjb21lcworICAgICAqIG91dCBhcyAib25lIHR3byB0aHJlZSIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHdvcmRzRm9yRGlnaXRzID0KKyAgICAgICAgIi14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAieC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgKyAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7XG4iCisgICAgICAgICsgIiAgICBzZXZlbjsgZWlnaHQ7IG5pbmU7XG4iCisgICAgICAgICsgIjEwOiA8PCA+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PCA+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDwsID4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwsID4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIHVzaW5nIENoaW5lc2UgY2hhcmFjdGVycyBpbiB0aGUgQXJhYmljCisgICAgICogcGxhY2UtdmFsdWUgbWV0aG9kLiAgVGhpcyB3YXMgdXNlZCBoaXN0b3JpY2FsbHkgaW4gQ2hpbmEgZm9yIGEgd2hpbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2hpbmVzZVBsYWNlVmFsdWUgPQorICAgICAgICAiXHUzMDA3OyBcdTRlMDA7IFx1NGU4YzsgXHU0ZTA5OyBcdTU2ZGI7IFx1NGU5NDsgXHU1MTZkOyBcdTRlMDM7IFx1NTE2YjsgXHU0ZTVkO1xuIgorICAgICAgICArICIxMDogPDw+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMTAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBSb21hbiBudW1lcmFscy4gIFRoaXMgZXhhbXBsZSBoYXMgdHdvIHZhcmlhbnRzOiAlbW9kZXJuIHNob3dzIGhvdyBsYXJnZQorICAgICAqIG51bWJlcnMgYXJlIHVzdWFsbHkgaGFuZGxlZCB0b2RheTsgJWhpc3RvcmljYWwgc2VzIHRoZSBvbGRlciBzeW1ib2xzIGZvcgorICAgICAqIHRob3VzYW5kcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyByb21hbk51bWVyYWxzID0KKyAgICAgICAgIiVoaXN0b3JpY2FsOlxuIgorICAgICAgICArICIgICAgPSVtb2Rlcm49O1xuIgorICAgICAgICAgICAgICAgLy8gaW4gZWFybHkgUm9tYW4gbnVtZXJhbHMsIDEsMDAwIHdhcyBzaG93biB3aXRoIGEgY2lyY2xlCisgICAgICAgICAgICAgICAvLyBiaXNlY3RlZCBieSBhIHZlcnRpY2FsIGxpbmUuICBBZGRpdGlvbmFsIHRob3VzYW5kcyB3ZXJlCisgICAgICAgICAgICAgICAvLyBzaG93biBieSBhZGRpbmcgbW9yZSBjb25jZW50cmljIGNpcmNsZXMsIGFuZCBmaXZlcyB3ZXJlCisgICAgICAgICAgICAgICAvLyBzaG93biBieSBjdXR0aW5nIHRoZSBzeW1ib2wgZm9yIG5leHQtaGlnaGVyIHBvd2VyIG9mIDEwCisgICAgICAgICAgICAgICAvLyBpbiBoYWxmICh0aGUgbGV0dGVyIEQgZm9yIDUwMCBldm9sdmVkIGZyb20gdGhpcykuCisgICAgICAgICAgICAgICAvLyBXZSBjb3VsZCBnbyBiZXlvbmQgNDAsMDAwLCBidXQgVW5pY29kZSBkb2Vzbid0IGVuY29kZQorICAgICAgICAgICAgICAgLy8gdGhlIHN5bWJvbHMgZm9yIGhpZ2hlciBudW1iZXJzLworICAgICAgICArICIgICAgMTAwMDogXHUyMTgwWz4+XTsgMjAwMDogXHUyMTgwXHUyMTgwWz4+XTsgMzAwMDogXHUyMTgwXHUyMTgwXHUyMTgwWz4+XTsgNDAwMDogXHUyMTgwXHUyMTgxWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwMDA6IFx1MjE4MVs+Pl07IDYwMDA6IFx1MjE4MVx1MjE4MFs+Pl07IDcwMDA6IFx1MjE4MVx1MjE4MFx1MjE4MFs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDAwOiBcdTIxODFcdTIxODBcdTIxODBcdTIxODBbPj5dOyA5MDAwOiBcdTIxODBcdTIxODJbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiBcdTIxODJbPj5dOyAyMCwwMDA6IFx1MjE4Mlx1MjE4Mls+Pl07IDMwLDAwMDogXHUyMTgyXHUyMTgyXHUyMTgyWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJW1vZGVybjpcbiIKKyAgICAgICAgKyAiICAgIDsgSTsgSUk7IElJSTsgSVY7IFY7IFZJOyBWSUk7IFZJSUk7IElYO1xuIgorICAgICAgICArICIgICAgMTA6IFhbPj5dOyAyMDogWFhbPj5dOyAzMDogWFhYWz4+XTsgNDA6IFhMWz4+XTsgNTA6IExbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IExYWz4+XTsgNzA6IExYWFs+Pl07IDgwOiBMWFhYWz4+XTsgOTA6IFhDWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogQ1s+Pl07IDIwMDogQ0NbPj5dOyAzMDA6IENDQ1s+Pl07IDQwMDogQ0RbPj5dOyA1MDA6IERbPj5dO1xuIgorICAgICAgICArICIgICAgNjAwOiBEQ1s+Pl07IDcwMDogRENDWz4+XTsgODAwOiBEQ0NDWz4+XTsgOTAwOiBDTVs+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBpbiBtb2Rlcm4gUm9tYW4gbnVtZXJhbHMsIGhpZ2ggbnVtYmVycyBhcmUgZ2VuZXJhbGx5IHNob3duCisgICAgICAgICAgICAgICAvLyBieSBwbGFjaW5nIGEgYmFyIG92ZXIgdGhlIGxldHRlcnMgZm9yIHRoZSBsb3dlciBudW1iZXJzOgorICAgICAgICAgICAgICAgLy8gdGhlIGJhciBtdWx0aXBsaWVkIGEgbGV0dGVyJ3MgdmFsdWUgYnkgMSwwMDAKKyAgICAgICAgKyAiICAgIDEwMDA6IE1bPj5dOyAyMDAwOiBNTVs+Pl07IDMwMDA6IE1NTVs+Pl07IDQwMDA6IE1WXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwMDA6IFZcdTAzMDZbPj5dOyA2MDAwOiBWXHUwMzA2TVs+Pl07IDcwMDA6IFZcdTAzMDZNTVs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDAwOiBWXHUwMzA2TU1NWz4+XTsgOTAwMDogTVhcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiBYXHUwMzA2Wz4+XTsgMjAsMDAwOiBYXHUwMzA2WFx1MDMwNls+Pl07IDMwLDAwMDogWFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwLDAwMDogWFx1MDMwNkxcdTAzMDZbPj5dOyA1MCwwMDA6IExcdTAzMDZbPj5dOyA2MCwwMDA6IExcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwLDAwMDogTFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTsgODAsMDAwOiBMXHUwMzA2WFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwLDAwMDogWFx1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogQ1x1MDMwNls+Pl07IDIwMCwwMDA6IENcdTAzMDZDXHUwMzA2Wz4+XTsgMzAwLDAwMDogQ1x1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgNDAwLDAwMDogQ1x1MDMwNkRcdTAzMDZbPj5dOyA1MDAsMDAwOiBEXHUwMzA2Wz4+XTsgNjAwLDAwMDogRFx1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwLDAwMDogRFx1MDMwNkNcdTAzMDZDXHUwMzA2Wz4+XTsgODAwLDAwMDogRFx1MDMwNkNcdTAzMDZDXHUwMzA2Q1x1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDAsMDAwOiA9IywjIzA9O1xuIjsKKworICAgIC8qKgorICAgICAqIEhlYnJldyBhbHBoYWJldGljIG51bWVyYWxzLiAgQmVmb3JlIGFkb3B0aW9uIG9mIEFyYWJpYyBudW1lcmFscywgSGVicmV3IHNwZWFrZXJzCisgICAgICogdXNlZCB0aGUgbGV0dGVyIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlIGZpcnN0IG5pbmUgbGV0dGVycyBvZgorICAgICAqIHRoZSBhbHBoYWJldCByZXBlc2VudGVkIHRoZSB2YWx1ZXMgZnJvbSAxIHRvIDksIHRoZSBzZWNvbmQgbmluZSBsZXR0ZXJzIHRoZQorICAgICAqIG11bHRpcGxlcyBvZiAxMCwgYW5kIHRoZSByZW1haW5pbmcgbGV0dGVycyB0aGUgbXVsdGlwbGVzIG9mIDEwMC4gIFNpbmNlIHRoZXkKKyAgICAgKiByYW4gb3V0IG9mIGxldHRlcnMgYXQgNDAwLCB0aGUgcmVtYWluaW5nIG11bHRpcGxlcyBvZiAxMDAgd2VyZSByZXByZXNlbnRlZAorICAgICAqIHVzaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgZXhpc3RpbmcgbGV0dGVycyBmb3IgdGhlIGh1bmRyZWRzLiAgTnVtYmVycyB3ZXJlCisgICAgICogZGlzdGluZ3Vpc2hlZCBmcm9tIHdvcmRzIGluIGEgbnVtYmVyIG9mIGRpZmZlcmVudCB3YXlzOiB0aGUgd2F5IHNob3duIGhlcmUKKyAgICAgKiB1c2VzIGEgc2luZ2xlIG1hcmsgYWZ0ZXIgYSBudW1iZXIgY29uc2lzdGluZyBvZiBvbmUgbGV0dGVyLCBhbmQgYSBkb3VibGUKKyAgICAgKiBtYXJrIGJldHdlZW4gdGhlIGxhc3QgdHdvIGxldHRlcnMgb2YgYSBudW1iZXIgY29uc2lzdGluZyBvZiB0d28gb3IgbW9yZQorICAgICAqIGxldHRlcnMuICBUd28gZG90cyBvdmVyIGEgbGV0dGVyIG11bHRpcGxpZWQgaXRzIHZhbHVlIGJ5IDEsMDAwLiAgQWxzbywgc2luY2UKKyAgICAgKiB0aGUgbGV0dGVyIGZvciAxMCBpcyB0aGUgZmlyc3QgbGV0dGVyIG9mIEdvZCdzIG5hbWUgYW5kIHRoZSBsZXR0ZXJzIGZvciA1IGFuZCA2CisgICAgICogYXJlIGxldHRlcnMgaW4gR29kJ3MgbmFtZSwgd2hpY2ggd2Fzbid0IHN1cHBvc2VkIHRvIGJlIHdyaXR0ZW4gb3Igc3Bva2VuLCAxNSBhbmQKKyAgICAgKiAxNiB3ZXJlIHVzdWFsbHkgd3JpdHRlbiBhcyA5ICsgNiBhbmQgOSArIDcgaW5zdGVhZCBvZiAxMCArIDUgYW5kIDEwICsgNi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBoZWJyZXdBbHBoYWJldGljID0KKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIG9uZXMKKyAgICAgICAgIiUlb25lczpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwNWQwOyBcdTA1ZDE7IFx1MDVkMjsgXHUwNWQzOyBcdTA1ZDQ7IFx1MDVkNTsgXHUwNWQ2OyBcdTA1ZDc7IFx1MDVkODtcbiIKKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIHRlbnMKKyAgICAgICAgKyAiJSV0ZW5zOlxuIgorICAgICAgICArICIgICAgOyBcdTA1ZDk7IFx1MDVkYjsgXHUwNWRjOyBcdTA1ZGU7IFx1MDVlMDsgXHUwNWUxOyBcdTA1ZTI7IFx1MDVlNDsgXHUwNWU2O1xuIgorICAgICAgICAvLyBsZXR0ZXJzIGZvciB0aGUgZmlyc3QgZm91ciBodW5kcmVkcworICAgICAgICArICIlJWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgOyBcdTA1ZTc7IFx1MDVlODsgXHUwNWU5OyBcdTA1ZWE7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCB0byB3cml0ZSB0aGUgY29tYmluYXRpb24gb2YgdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzCisgICAgICAgIC8vIHdoZW4gd2Uga25vdyB0aGF0IG5vIG90aGVyIGRpZ2l0cyBwcmVjZWRlIHRoZW06IHRoZXkgcHV0IHRoZSBudW1lcmFsIG1hcmtzCisgICAgICAgIC8vIGluIHRoZSByaWdodCBwbGFjZSBhbmQgcHJvcGVybHkgaGFuZGxlIDE1IGFuZCAxNiAoSSdtIHVzaW5nIHRoZSBtYXRoZW1hdGljYWwKKyAgICAgICAgLy8gcHJpbWUgY2hhcmFjdGVycyBmb3IgdGhlIG51bWVyYWwgbWFya3MgYmVjYXVzZSBteSBVbmljb2RlIGZvbnQgZG9lc24ndAorICAgICAgICAvLyBpbmNsdWRlIHRoZSByZWFsIEhlYnJldyBjaGFyYWN0ZXJzLCB3aGljaCBsb29rIGp1c3QgbGlrZSB0aGUgcHJpbWUgbWFya3MpCisgICAgICAgICsgIiUldGVucy1hbmQtb25lczpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgbGVzcyB0aGFuIDEwLCBqdXN0IHVzZSAlJW9uZXMgYW5kIHB1dCB0aGUgbnVtZXJhbCBtYXJrCisgICAgICAgICAgICAgICAvLyBhZnRlcndhcmQKKyAgICAgICAgKyAiICAgID0lJW9uZXM9XHUyMDMyO1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IHRoZSBudW1lcmFsIG1hcmsgYXQgdGhlIGVuZCBmb3IgMTAsIGJ1dCBpbiB0aGUgbWlkZGxlIGZvcgorICAgICAgICAgICAgICAgLy8gMTEgdGhyb3VnaCAxNAorICAgICAgICArICIgICAgMTA6IDwlJXRlbnM8XHUyMDMyOyA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAgICAgICAgLy8gc3BlY2lhbC1jYXNlIDE1IGFuZCAxNgorICAgICAgICArICIgICAgMTU6IFx1MDVkOFx1MjAzM1x1MDVkNTsgMTY6IFx1MDVkOFx1MjAzM1x1MDVkNjtcbiIKKyAgICAgICAgICAgICAgIC8vIGdvIGJhY2sgdG8gdGhlIG5vcm1hbCBtZXRob2QgYXQgMTcKKyAgICAgICAgKyAiICAgIDE3OiA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAgICAgICAgLy8gcmVwZWF0IHRoZSBydWxlcyBmb3IgMTAgYW5kIDExIHRvIGNvdmVyIHRoZSB2YWx1ZXMgZnJvbSAyMCB0byA5OQorICAgICAgICArICIgICAgMjA6IDwlJXRlbnM8XHUyMDMyOyA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgYmVsb3cgMSwwMDAuICBJdCByZWxpZXMgb24KKyAgICAgICAgLy8gJSV0ZW5zLWFuZC1vbmVzIHRvIGZvcm1hdCB0aGUgdGVucyBhbmQgb25lcyBwbGFjZXMsIGFuZCBhZGRzIGxvZ2ljCisgICAgICAgIC8vIHRvIGhhbmRsZSB0aGUgaGlnaCBodW5kcmVkcyBhbmQgdGhlIG51bWVyYWwgbWFya3Mgd2hlbiB0aGVyZSBpcyBubworICAgICAgICAvLyB0ZW5zIGRpZ2l0LiAgTm90aWNlIGhvdyB0aGUgcnVsZXMgYXJlIHBhaXJlZDogYWxsIG9mIHRoZXNlIHBhaXJzIG9mCisgICAgICAgIC8vIHJ1bGVzIHRha2UgYWR2YW50YWdlIG9mIHRoZSByb2xsYmFjayBydWxlOiBpZiB0aGUgdmFsdWUgKGJldHdlZW4gMTAwCisgICAgICAgIC8vIGFuZCA0OTkpIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAwLCB0aGUgcnVsZSBmb3IgMTAwIGlzIHVzZWQ7IG90aGVyd2lzZSwKKyAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwMSAodGhlIGZvbGxvd2luZyBydWxlKSBpcyB1c2VkLiAgVGhlIGZpcnN0IHJ1bGUgaW4gZWFjaAorICAgICAgICAvLyBwYWlyICh0aGUgb25lIGZvciB0aGUgZXZlbiBtdWx0aXBsZSkgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgaW4gYSBkaWZmZXJlbnQKKyAgICAgICAgLy8gc3BvdCB0aGFuIHRoZSBzZWNvbmQgcnVsZSBpbiBlYWNoIHBhaXIgKHdoaWNoIGtub3dzIHRoZXJlIGFyZSBtb3JlIGRpZ2l0cworICAgICAgICAvLyBhbmQgcmVsaWVzIG9uIHRoZSBydWxlIHN1cHBseWluZyB0aGVtIHRvIGFsc28gc3VwcGx5IHRoZSBudW1lcmFsIG1hcmspLgorICAgICAgICAvLyBUaGUgY2FsbCB0byAlJW51bGwgaW4gbGluZSAxMCBpcyB0aGVyZSBzaW1wbHkgdG8gaW52b2tlIHRoZSByb2xsYmFjaworICAgICAgICAvLyBydWxlLgorICAgICAgICArICIlJWxvdy1vcmRlcjpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBvdGhlciBjaGFyYWN0ZXJzIGJlZm9yZS4KKyAgICAgICAgICAgICAgIC8vIEl0IHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGJlZm9yZSB0aGUgbGFzdCBkaWdpdAorICAgICAgICArICIgICAgXHUyMDMzPSUlb25lcz07XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSBmb3IgMTAgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgYmVmb3JlIHRoZSAxMCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgIC8vIChiZWNhdXNlIHdlIGtub3cgaXQncyB0aGUgbGFzdCBjaGFyYWN0ZXIpOyB0aGUgcnVsZSBmb3IgMTEgcmVsaWVzCisgICAgICAgICAgICAgICAvLyBvbiAlJXRlbnMtYW5kLW9uZXMgdG8gcGxhY2UgdGhlIG51bWVyYWwgbWFyaworICAgICAgICArICIgICAgMTA6IFx1MjAzMzwlJXRlbnM8OyA9JSV0ZW5zLWFuZC1vbmVzPT4lJW51bGw+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwMCBwbGFjZXMgdGhlIG51bWVyYWwgbWFyayBiZWZvcmUgdGhlIDEwMCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgIC8vICh3ZSBrbm93IGl0J3MgdGhlIGxhc3QgY2hhcmFjdGVyKTsgdGhlIHJ1bGUgZm9yIDEwMSByZWN1cnNlcyB0bworICAgICAgICAgICAgICAgLy8gZmlsbCBpbiB0aGUgcmVtYWluaW5nIGRpZ2l0cyBhbmQgdGhlIG51bWVyYWwgbWFyaworICAgICAgICArICIgICAgMTAwOiA8JSVodW5kcmVkczxcdTIwMzI7IDwlJWh1bmRyZWRzPD4+O1xuIgorICAgICAgICAgICAgICAgLy8gc3BlY2lhbC1jYXNlIHRoZSBodW5kcmVkcyBmcm9tIDUwMCB0byA5MDAgYmVjYXVzZSB0aGV5IGNvbnNpc3Qgb2YKKyAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyCisgICAgICAgICsgIiAgICA1MDA6IFx1MDVlYVx1MjAzM1x1MDVlNzsgXHUwNWVhXHUwNWU3Pj47XG4iCisgICAgICAgICsgIiAgICA2MDA6IFx1MDVlYVx1MjAzM1x1MDVlODsgXHUwNWVhXHUwNWU4Pj47XG4iCisgICAgICAgICsgIiAgICA3MDA6IFx1MDVlYVx1MjAzM1x1MDVlOTsgXHUwNWVhXHUwNWU5Pj47XG4iCisgICAgICAgICsgIiAgICA4MDA6IFx1MDVlYVx1MjAzM1x1MDVlYTsgXHUwNWVhXHUwNWVhPj47XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDVlYVx1MDVlYVx1MjAzM1x1MDVlNzsgXHUwNWVhXHUwNWVhXHUwNWU3Pj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCB0byBmb3JtYXQgdmFsdWVzIG9mIDEsMDAwIG9yIG1vcmUuICBIZXJlLCB3ZSBkb24ndAorICAgICAgICAvLyB3b3JyeSBhYm91dCB0aGUgbnVtZXJhbCBtYXJrLCBhbmQgd2UgYWRkIHR3byBkb3RzICh0aGUgVW5pY29kZSBjb21iaW5pbmcKKyAgICAgICAgLy8gZGlhZXJlc2lzIGNoYXJhY3RlcikgdG8gZXZlciBsZXR0ZXIKKyAgICAgICAgKyAiJSVoaWdoLW9yZGVyOlxuIgorICAgICAgICAgICAgICAgLy8gcHV0IHRoZSBvbmVzIGRpZ2l0LCBmb2xsb3dlZCBieSB0aGUgZGlhZXJlc2lzCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MDMwODtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSB0ZW5zIGNhbiBiZSBoYW5kbGVkIHdpdGggcmVjdXJzaW9uCisgICAgICAgICsgIiAgICAxMDogPCUldGVuczxcdTAzMDhbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gc3RpbGwgaGF2ZSB0byBzcGVjaWFsLWNhc2UgMTUgYW5kIDE2CisgICAgICAgICsgIiAgICAxNTogXHUwNWQ4XHUwMzA4XHUwNWQ1XHUwMzA4OyAxNjogXHUwNWQ4XHUwMDMwNzhcdTA1ZDZcdTAzMDg7XG4iCisgICAgICAgICAgICAgICAvLyBiYWNrIHRvIHRoZSByZWd1bGFyIHJ1bGVzIGF0IDE3CisgICAgICAgICsgIiAgICAxNzogPCUldGVuczxcdTAzMDhbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIGh1bmRyZWRzIHdpdGggdGhlIGRvdHMgYWRkZWQgKGFuZCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0CisgICAgICAgICAgICAgICAvLyBwbGFjaW5nIHRoZSBudW1lcmFsIG1hcmspCisgICAgICAgICsgIiAgICAxMDA6IDwlJWh1bmRyZWRzPFx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDVlYVx1MDMwOFx1MDVlN1x1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDA6IFx1MDVlYVx1MDMwOFx1MDVlOFx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDA6IFx1MDVlYVx1MDMwOFx1MDVlOVx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDA6IFx1MDVlYVx1MDMwOFx1MDVlYVx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDVlYVx1MDMwOFx1MDVlYVx1MDMwOFx1MDVlN1x1MDMwOFs+Pl07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZG9lc24ndCBkbyBhbnl0aGluZzsgaXQncyB1c2VkIGJ5IHNvbWUgb3RoZXIgcnVsZXMgdG8KKyAgICAgICAgLy8gaW52b2tlIHRoZSByb2xsYmFjayBydWxlCisgICAgICAgICsgIiAlJW51bGw6XG4iCisgICAgICAgICsgIiAgICA7XG4iCisgICAgICAgIC8vIHRoZSBtYWluIHJ1bGUgc2V0LgorICAgICAgICArICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAsIGp1c3Qgb3V0cHV0IHRoZSBsZXR0ZXIgYW5kIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgID0lJW9uZXM9XHUyMDMyO1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwIHRvIDk5LCB1c2UgJSV0ZW5zLWFuZC1vbmVzIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDogPSUldGVucy1hbmQtb25lcz07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGZyb20gMTAwIHRvIDk5OSwgdXNlICUlbG93LW9yZGVyIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDA6ID0lJWxvdy1vcmRlcj07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEsMDAwIGFuZCBvdmVyLCB1c2UgJSVoaWdoLW9yZGVyIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDAwOiA8JSVoaWdoLW9yZGVyPFs+JSVsb3ctb3JkZXI+XTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBHcmVlayBhbHBoYWJldGljIG51bWVyYWxzLiAgVGhlIEdyZWVrcywgYmVmb3JlIGFkb3B0aW5nIHRoZSBBcmFiaWMgbnVtZXJhbHMsCisgICAgICogYWxzbyB1c2VkIHRoZSBsZXR0ZXJzIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlcmUgYXJlIHRocmVlIG5vdy0KKyAgICAgKiBvYnNvbGV0ZSBHcmVlayBsZXR0ZXJzIHRoYXQgYXJlIHVzZWQgYXMgbnVtZXJhbHM7IG1hbnkgZm9udHMgZG9uJ3QgaGF2ZSB0aGVtLgorICAgICAqIExhcmdlIG51bWJlcnMgd2VyZSBoYW5kbGVkIG1hbnkgZGlmZmVyZW50IHdheXM7IHRoZSB3YXkgc2hvd24gaGVyZSBkaXZpZGVzCisgICAgICogbGFyZ2UgbnVtYmVycyBpbnRvIGdyb3VwcyBvZiBmb3VyIGxldHRlcnMgKGZhY3RvcnMgb2YgMTAsMDAwKSwgYW5kIHNlcGFyYXRlcworICAgICAqIHRoZSBncm91cHMgd2l0aCB0aGUgY2FwaXRhbCBsZXR0ZXIgbXUgKGZvciBteXJpYWQpLiAgQ2FwaXRhbCBsZXR0ZXJzIGFyZSB1c2VkCisgICAgICogZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDA7IHNtYWxsIGxldHRlcnMgZm9yIGhpZ2hlciBudW1iZXJzICh0byBtYWtlIHRoZSBjYXBpdGFsCisgICAgICogbXUgc3RhbmQgb3V0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBncmVla0FscGhhYmV0aWMgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgZm9yIGZvcm1hdHRpbmcgbnVtYmVycyBiZWxvdyAxMCwwMDAuICBJdCB1c2VzCisgICAgICAgIC8vIGNhcGl0YWwgbGV0dGVycy4KKyAgICAgICAgIiUlbG93LW9yZGVyOlxuIgorICAgICAgICArICIgICAgKG5vIHplcm8pOyBcdTAzOTE7IFx1MDM5MjsgXHUwMzkzOyBcdTAzOTQ7IFx1MDM5NTsgXHUwM2RjOyBcdTAzOTY7IFx1MDM5NzsgXHUwMzk4O1xuIgorICAgICAgICArICIgICAgMTA6IFx1MDM5OVs+Pl07IDIwOiBcdTAzOWFbPj5dOyAzMDogXHUwMzliWz4+XTsgNDA6IFx1MDM5Y1s+Pl07IDUwOiBcdTAzOWRbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IFx1MDM5ZVs+Pl07IDcwOiBcdTAzOWZbPj5dOyA4MDogXHUwM2EwWz4+XTsgOTA6IFx1MDNkZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IFx1MDNhMVs+Pl07IDIwMDogXHUwM2EzWz4+XTsgMzAwOiBcdTAzYTRbPj5dOyA0MDA6IFx1MDNhNVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDNhNls+Pl07IDYwMDogXHUwM2E3Wz4+XTsgNzAwOiBcdTAzYThbPj5dOyA4MDA6IFx1MDNhOVs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDNlMFs+Pl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgdGhvdXNhbmRzIGFyZSByZXByZXNlbnRlZCBieSB0aGUgc2FtZSBudW1iZXJzIGFzIHRoZSBvbmVzLCBidXQKKyAgICAgICAgICAgICAgIC8vIHdpdGggYSBjb21tYS1saWtlIG1hcmsgYWRkZWQgdG8gdGhlaXIgbGVmdCBzaG91bGRlcgorICAgICAgICArICIgICAgMTAwMDogXHUwMzkxXHUwMzEzWz4+XTsgMjAwMDogXHUwMzkyXHUwMzEzWz4+XTsgMzAwMDogXHUwMzkzXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMDA6IFx1MDM5NFx1MDMxM1s+Pl07IDUwMDA6IFx1MDM5NVx1MDMxM1s+Pl07IDYwMDA6IFx1MDNkY1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDAwOiBcdTAzOTZcdTAzMTNbPj5dOyA4MDAwOiBcdTAzOTdcdTAzMTNbPj5dOyA5MDAwOiBcdTAzOThcdTAzMTNbPj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHRoZSBzYW1lIGFzIGFib3ZlLCBidXQgdXNlcyBsb3dlcmNhc2UgbGV0dGVycy4gIEl0IGlzIHVzZWQKKyAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcgdGhlIGdyb3VwcyBpbiBudW1iZXJzIGFib3ZlIDEwLDAwMC4KKyAgICAgICAgKyAiJSVoaWdoLW9yZGVyOlxuIgorICAgICAgICArICIgICAgKG5vIHplcm8pOyBcdTAzYjE7IFx1MDNiMjsgXHUwM2IzOyBcdTAzYjQ7IFx1MDNiNTsgXHUwM2RjOyBcdTAzYjY7IFx1MDNiNzsgXHUwM2I4O1xuIgorICAgICAgICArICIgICAgMTA6IFx1MDNiOVs+Pl07IDIwOiBcdTAzYmFbPj5dOyAzMDogXHUwM2JiWz4+XTsgNDA6IFx1MDNiY1s+Pl07IDUwOiBcdTAzYmRbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IFx1MDNiZVs+Pl07IDcwOiBcdTAzYmZbPj5dOyA4MDogXHUwM2MwWz4+XTsgOTA6IFx1MDNkZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IFx1MDNjMVs+Pl07IDIwMDogXHUwM2MzWz4+XTsgMzAwOiBcdTAzYzRbPj5dOyA0MDA6IFx1MDNjNVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDNjNls+Pl07IDYwMDogXHUwM2M3Wz4+XTsgNzAwOiBcdTAzYzhbPj5dOyA4MDA6IFx1MDNjOVs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDNjMFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBcdTAzYjFcdTAzMTNbPj5dOyAyMDAwOiBcdTAzYjJcdTAzMTNbPj5dOyAzMDAwOiBcdTAzYjNcdTAzMTNbPj5dO1xuIgorICAgICAgICArICIgICAgNDAwMDogXHUwM2I0XHUwMzEzWz4+XTsgNTAwMDogXHUwM2I1XHUwMzEzWz4+XTsgNjAwMDogXHUwM2RjXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwMDA6IFx1MDNiNlx1MDMxM1s+Pl07IDgwMDA6IFx1MDNiN1x1MDMxM1s+Pl07IDkwMDA6IFx1MDNiOFx1MDMxM1s+Pl07XG4iCisgICAgICAgIC8vIHRoZSBtYWluIHJ1bGUgc2V0CisgICAgICAgICsgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDAsIGp1c3QgdXNlICUlbG93LW9yZGVyCisgICAgICAgICsgIiAgICA9JSVsb3ctb3JkZXI9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxMCwwMDAsIHNwbGl0IGludG8gdHdvIGdyb3VwcyBvZiBmb3VyIGRpZ2l0cworICAgICAgICAgICAgICAgLy8gYW5kIGZvcm1hdCBlYWNoIHdpdGggJSVoaWdoLW9yZGVyIChwdXR0aW5nIGFuIE0gaW4gYmV0d2VuKQorICAgICAgICArICIgICAgMTAsMDAwOiA8JSVoaWdoLW9yZGVyPFx1MDM5Yz4lJWhpZ2gtb3JkZXI+O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxMDAsMDAwLDAwMCwgYWRkIGFub3RoZXIgZ3JvdXAgb250byB0aGUgZnJvbnQKKyAgICAgICAgICAgICAgIC8vIGFuZCBhbm90aGVyIE0KKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8JSVoaWdoLW9yZGVyPFx1MDM5Yz4+XG4iOworCisgICAgLyoqCisgICAgICogQSBsaXN0IG9mIGFsbCB0aGUgc2FtcGxlIHJ1bGUgc2V0cywgdXNlZCBieSB0aGUgZGVtbyBwcm9ncmFtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldHMgPQorICAgICAgICB7IHVzRW5nbGlzaCwKKyAgICAgICAgICB1a0VuZ2xpc2gsCisgICAgICAgICAgc3BhbmlzaCwKKyAgICAgICAgICBmcmVuY2gsCisgICAgICAgICAgc3dpc3NGcmVuY2gsCisgICAgICAgICAgZ2VybWFuLAorICAgICAgICAgIGl0YWxpYW4sCisgICAgICAgICAgc3dlZGlzaCwKKyAgICAgICAgICBkdXRjaCwKKyAgICAgICAgICBqYXBhbmVzZSwKKyAgICAgICAgICBncmVlaywKKyAgICAgICAgICBydXNzaWFuLAorICAgICAgICAgIGhlYnJldywKKyAgICAgICAgICBvcmRpbmFsLAorICAgICAgICAgIG1lc3NhZ2UxLAorICAgICAgICAgIGRvbGxhcnNBbmRDZW50cywKKyAgICAgICAgICBkZWNpbWFsQXNGcmFjdGlvbiwKKyAgICAgICAgICBjbG9zZXN0RnJhY3Rpb24sCisgICAgICAgICAgc3RvY2ssCisgICAgICAgICAgYWJiRW5nbGlzaCwKKyAgICAgICAgICB1bml0cywKKyAgICAgICAgICBtZXNzYWdlMiwKKyAgICAgICAgICBkb3plbnMsCisgICAgICAgICAgZHVyYXRpb25JblNlY29uZHMsCisgICAgICAgICAgZHVyYXRpb25JbkhvdXJzLAorICAgICAgICAgIHBvdW5kc1NoaWxsaW5nc0FuZFBlbmNlLAorICAgICAgICAgIGFyYWJpY051bWVyYWxzLAorICAgICAgICAgIHdvcmRzRm9yRGlnaXRzLAorICAgICAgICAgIGNoaW5lc2VQbGFjZVZhbHVlLAorICAgICAgICAgIHJvbWFuTnVtZXJhbHMsCisgICAgICAgICAgaGVicmV3QWxwaGFiZXRpYywKKyAgICAgICAgICBncmVla0FscGhhYmV0aWMgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBkaXNwbGF5YWJsZSBuYW1lcyBmb3IgYWxsIHRoZSBzYW1wbGUgcnVsZSBzZXRzLCBpbiB0aGUgc2FtZSBvcmRlciBhcworICAgICAqIHRoZSBwcmVjZWRpbmcgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzYW1wbGVSdWxlU2V0TmFtZXMgPQorICAgICAgICB7ICJFbmdsaXNoIChVUykiLAorICAgICAgICAgICJFbmdsaXNoIChVSykiLAorICAgICAgICAgICJTcGFuaXNoIiwKKyAgICAgICAgICAiRnJlbmNoIChGcmFuY2UpIiwKKyAgICAgICAgICAiRnJlbmNoIChTd2l0emVybGFuZCkiLAorICAgICAgICAgICJHZXJtYW4iLAorICAgICAgICAgICJJdGFsaWFuIiwKKyAgICAgICAgICAiU3dlZGlzaCIsCisgICAgICAgICAgIkR1dGNoIiwKKyAgICAgICAgICAiSmFwYW5lc2UiLAorICAgICAgICAgICJHcmVlayIsCisgICAgICAgICAgIlJ1c3NpYW4iLAorICAgICAgICAgICJIZWJyZXciLAorICAgICAgICAgICJFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9ucyIsCisgICAgICAgICAgIlNpbXBsZSBtZXNzYWdlIGZvcm1hdHRpbmciLAorICAgICAgICAgICJEb2xsYXJzIGFuZCBjZW50cyIsCisgICAgICAgICAgIkRlY2ltYWxzIGFzIGZyYWN0aW9ucyIsCisgICAgICAgICAgIkNsb3Nlc3QgZnJhY3Rpb24iLAorICAgICAgICAgICJTdG9jayBwcmljZXMiLAorICAgICAgICAgICJBYmJyZXZpYXRlZCBVUyBFbmdsaXNoIiwKKyAgICAgICAgICAiQ2hhbmdpbmcgZGltZW5zaW9ucyIsCisgICAgICAgICAgIkNvbXBsZXggbWVzc2FnZSBmb3JtYXR0aW5nIiwKKyAgICAgICAgICAiRG96ZW5zIiwKKyAgICAgICAgICAiRHVyYXRpb24gKHZhbHVlIGluIHNlY29uZHMpIiwKKyAgICAgICAgICAiRHVyYXRpb24gKHZhbHVlIGluIGhvdXJzKSIsCisgICAgICAgICAgIlBvdW5kcywgc2hpbGxpbmdzLCBhbmQgcGVuY2UiLAorICAgICAgICAgICJBcmFiaWMgbnVtZXJhbHMiLAorICAgICAgICAgICJXb3JkcyBmb3IgZGlnaXRzIiwKKyAgICAgICAgICAiQ2hpbmVzZSBwbGFjZS12YWx1ZSBub3RhdGlvbiIsCisgICAgICAgICAgIlJvbWFuIG51bWVyYWxzIiwKKyAgICAgICAgICAiSGVicmV3IGFobHBoYWJldGljIG51bWVyYWxzIiwKKyAgICAgICAgICAiR3JlZWsgYWxwaGFiZXRpYyBudW1lcmFscyIgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBiYXNlIGxvY2FsZSBmb3IgZWFjaCBvZiB0aGUgc2FtcGxlIHJ1bGUgc2V0cy4gIFRoZSBsb2NhbGUgaXMgdXNlZCB0bworICAgICAqIGRldGVybWluZSBEZWNpbWFsRm9ybWF0IGJlaGF2aW9yLCBsZW5pZW50LXBhcnNlIGJlaGF2aW9yLCBhbmQgdGV4dC1kaXNwbGF5CisgICAgICogc2VsZWN0aW9uICh3ZSBoYXZlIGEgaGFjayBpbiBoZXJlIHRvIGFsbG93IGRpc3BsYXkgb2Ygbm9uLUxhdGluIHNjcmlwdHMpLgorICAgICAqIE51bGwgbWVhbnMgdGhlIGxvY2FsZSBzZXR0aW5nIGlzIGlycmVsZXZhbnQgYW5kIHRoZSBkZWZhdWx0IGNhbiBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gc2FtcGxlUnVsZVNldExvY2FsZXMgPQorICAgICAgICB7IExvY2FsZS5VUywKKyAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgbmV3IExvY2FsZSgiZXMiLCAiIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgbmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIiksCisgICAgICAgICAgTG9jYWxlLkdFUk1BTiwKKyAgICAgICAgICBMb2NhbGUuSVRBTElBTiwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgibmwiLCAiIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5KQVBBTkVTRSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgicnUiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5VSywKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICIiKSwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwgIiIsICIiKSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsICIiLCAiIiksCisgICAgICAgICAgbnVsbCB9OworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldENvbW1lbnRhcnkgPSB7CisgICAgICAgICAgICAiVGhpcyBkZW1vbnN0cmF0aW9uIHZlcnNpb24gb2YgdGhlICIKKyAgICAgICAgICAgICsgIlUuUy4gRW5nbGlzaCBzcGVsbG91dCBydWxlcyBoYXMgZm91ciB2YXJpYW50czogMSkgJXNpbXBsaWZpZWQgaXMgYSAiCisgICAgICAgICAgICArICJzZXQgb2YgcnVsZXMgc2hvd2luZyB0aGUgc2ltcGxlIG1ldGhvZCBvZiBzcGVsbGluZyBvdXQgbnVtYmVycyBpbiAiCisgICAgICAgICAgICArICJFbmdsaXNoOiAyODkgaXMgZm9ybWF0dGVkIGFzIFwidHdvIGh1bmRyZWQgZWlnaHR5LW5pbmVcIi4gIDIpICVhbHQtdGVlbnMgIgorICAgICAgICAgICAgKyAiaXMgdGhlIHNhbWUgYXMgJXNpbXBsaWZpZWQsIGV4Y2VwdCB0aGF0IHZhbHVlcyBiZXR3ZWVuIDEsMDAwIGFuZCA5LDk5OSAiCisgICAgICAgICAgICArICJ3aG9zZSBodW5kcmVkcyBwbGFjZSBpc24ndCB6ZXJvIGFyZSBmb3JtYXR0ZWQgaW4gaHVuZHJlZHMuICBGb3IgZXhhbXBsZSwgIgorICAgICAgICAgICAgKyAiMSw5ODMgaXMgZm9ybWF0dGVkIGFzIFwibmluZXRlZW4gaHVuZHJlZCBlaWdodHktdGhyZWUsXCIgYW5kIDIsMTgzIGlzICIKKyAgICAgICAgICAgICsgImZvcm1hdHRlZCBhcyBcInR3ZW50eS1vbmUgaHVuZHJlZCBlaWdodHktdGhyZWUsXCIgYnV0IDIsMDgzIGlzIHN0aWxsICIKKyAgICAgICAgICAgICsgImZvcm1hdHRlZCBhcyBcInR3byB0aG91c2FuZCBlaWdodHktdGhyZWUuXCIgIDMpICVvcmRpbmFsIGZvcm1hdHMgdGhlICIKKyAgICAgICAgICAgICsgInZhbHVlcyBhcyBvcmRpbmFsIG51bWJlcnMgaW4gRW5nbGlzaCAoZS5nLiwgMjg5IGlzIFwidHdvIGh1bmRyZWQgZWlnaHR5LSIKKyAgICAgICAgICAgICsgIm5pbnRoXCIpLiAgNCkgJWRlZmF1bHQgdXNlcyBhIG1vcmUgY29tcGxpY2F0ZWQgYWxnb3JpdGhtIHRvIGZvcm1hdCAiCisgICAgICAgICAgICArICJudW1iZXJzIGluIGEgbW9yZSBuYXR1cmFsIHdheTogMjg5IGlzIGZvcm1hdHRlZCBhcyBcInR3byBodW5kcmVkIEFORCAiCisgICAgICAgICAgICArICJlaWdodHktbmluZVwiIGFuZCBjb21tYXMgYXJlIGluc2VydGVkIGJldHdlZW4gdGhlIHRob3VzYW5kcyBncm91cHMgZm9yICIKKyAgICAgICAgICAgICsgInZhbHVlcyBhYm92ZSAxMDAsMDAwLiIsCisKKyAgICAgICAgICAgICJVLksuIEVuZ2xpc2ggaGFzIG9uZSBzaWduaWZpY2FudCAiCisgICAgICAgICAgICArICJkaWZmZXJlbmNlIGZyb20gVS5TLiBFbmdsaXNoOiB0aGUgbmFtZXMgZm9yIHZhbHVlcyBvZiAxLDAwMCwwMDAsMDAwICIKKyAgICAgICAgICAgICsgImFuZCBoaWdoZXIuICBJbiBBbWVyaWNhbiBFbmdsaXNoLCBlYWNoIHN1Y2Nlc3NpdmUgXCItaWxsaW9uXCIgaXMgMSwwMDAgIgorICAgICAgICAgICAgKyAidGltZXMgZ3JlYXRlciB0aGFuIHRoZSBwcmVjZWRpbmcgb25lOiAxLDAwMCwwMDAsMDAwIGlzIFwib25lIGJpbGxpb25cIiAiCisgICAgICAgICAgICArICJhbmQgMSwwMDAsMDAwLDAwMCwwMDAgaXMgXCJvbmUgdHJpbGxpb24uXCIgIEluIEJyaXRpc2ggRW5nbGlzaCwgZWFjaCAiCisgICAgICAgICAgICArICJzdWNjZXNzaXZlIFwiLWlsbGlvblwiIGlzIG9uZSBtaWxsaW9uIHRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgb25lIGJlZm9yZTogIgorICAgICAgICAgICAgKyAiXCJvbmUgYmlsbGlvblwiIGlzIDEsMDAwLDAwMCwwMDAsMDAwIChvciB3aGF0IEFtZXJpY2FucyB3b3VsZCBjYWxsIGEgIgorICAgICAgICAgICAgKyAiXCJ0cmlsbGlvblwiKSwgYW5kIFwib25lIHRyaWxsaW9uXCIgaXMgMSwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMC4gICIKKyAgICAgICAgICAgICsgIjEsMDAwLDAwMCwwMDAgaW4gQnJpdGlzaCBFbmdsaXNoIGlzIFwib25lIHRob3VzYW5kIG1pbGxpb24uXCIgIChUaGlzICIKKyAgICAgICAgICAgICsgInZhbHVlIGlzIHNvbWV0aW1lcyBjYWxsZWQgYSBcIm1pbGxpYXJkLFwiIGJ1dCB0aGlzIHdvcmQgc2VlbXMgdG8gaGF2ZSAiCisgICAgICAgICAgICArICJmYWxsZW4gaW50byBkaXN1c2UuKSIsCisKKyAgICAgICAgICAgICJUaGUgU3BhbmlzaCBydWxlcyBhcmUgcXVpdGUgc2ltaWxhciB0byAiCisgICAgICAgICAgICArICJ0aGUgRW5nbGlzaCBydWxlcywgYnV0IHRoZXJlIGFyZSBzb21lIGltcG9ydGFudCBkaWZmZXJlbmNlczogIgorICAgICAgICAgICAgKyAiRmlyc3QsIHdlIGhhdmUgdG8gcHJvdmlkZSBzZXBhcmF0ZSBydWxlcyBmb3IgbW9zdCBvZiB0aGUgdHdlbnRpZXMgIgorICAgICAgICAgICAgKyAiYmVjYXVzZSB0aGUgb25lcyBkaWdpdCBmcmVxdWVudGx5IHBpY2tzIHVwIGFuIGFjY2VudCBtYXJrIHRoYXQgaXQgIgorICAgICAgICAgICAgKyAiZG9lc24ndCBoYXZlIHdoZW4gc3RhbmRpbmcgYWxvbmUuICBTZWNvbmQsIGVhY2ggbXVsdGlwbGUgb2YgMTAwIGhhcyAiCisgICAgICAgICAgICArICJ0byBiZSBzcGVjaWZpZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRoZSBtdWx0aXBsaWVyIG9uIDEwMCB2ZXJ5IG9mdGVuICIKKyAgICAgICAgICAgICsgImNoYW5nZXMgZm9ybSBpbiB0aGUgY29udHJhY3Rpb246IDUwMCBpcyBcInF1aW5pZW50b3MsXCIgbm90ICIKKyAgICAgICAgICAgICsgIlwiY2luY29jaWVudG9zLlwiICBJbiBhZGRpdGlvbiwgdGhlIHdvcmQgZm9yIDEwMCBpcyBcImNpZW5cIiB3aGVuICIKKyAgICAgICAgICAgICsgInN0YW5kaW5nIGFsb25lLCBidXQgY2hhbmdlcyB0byBcImNpZW50b1wiIHdoZW4gZm9sbG93ZWQgYnkgbW9yZSBkaWdpdHMuICAiCisgICAgICAgICAgICArICJUaGVyZSBhbHNvIHNvbWUgb3RoZXIgZGlmZmVyZW5jZXMuIiwKKworICAgICAgICAgICAgIkZyZW5jaCBhZGRzIHNvbWUgaW50ZXJlc3RpbmcgcXVpcmtzIG9mIGl0cyAiCisgICAgICAgICAgICArICJvd246IDEpIFRoZSB3b3JkIFwiZXRcIiBpcyBpbnRlcnBvc2VkIGJldHdlZW4gdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzLCAiCisgICAgICAgICAgICArICJidXQgb25seSBpZiB0aGUgb25lcyBkaWdpdCBpZiAxOiAyMCBpcyBcInZpbmd0LFwiIGFuZCAyIGlzIFwidmluZ3QtZGV1eCxcIiAiCisgICAgICAgICAgICArICJidXQgMjEgaXMgXCJ2aW5ndC1ldC11bi5cIiAgMikgIFRoZXJlIGFyZSBubyB3b3JkcyBmb3IgNzAsIDgwLCBvciA5MC4gICIKKyAgICAgICAgICAgICsgIlwicXVhdHJlLXZpbmd0c1wiIChcImZvdXIgdHdlbnRpZXNcIikgaXMgdXNlZCBmb3IgODAsIGFuZCB2YWx1ZXMgcHJvY2VlZCAiCisgICAgICAgICAgICArICJieSBzY29yZSBmcm9tIDYwIHRvIDk5IChlLmcuLCA3MyBpcyBcInNvaXhhbnRlLXRyZWl6ZVwiIFtcInNpeHR5LXRoaXJ0ZWVuXCJdKS4gICIKKyAgICAgICAgICAgICsgIk51bWJlcnMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgaHVuZHJlZHMgcmF0aGVyIHRoYW4gIgorICAgICAgICAgICAgKyAidGhvdXNhbmRzOiAxLDEwMCBpcyBcIm9uemUgY2VudHNcIiAoXCJlbGV2ZW4gaHVuZHJlZFwiKSwgcmF0aGVyIHRoYW4gIgorICAgICAgICAgICAgKyAiXCJtaWxsZSBjZW50XCIgKFwib25lIHRob3VzYW5kIG9uZSBodW5kcmVkXCIpIiwKKworICAgICAgICAgICAgIlN3aXNzIEZyZW5jaCBkaWZmZXJzIGZyb20gRnJlbmNoIEZyZW5jaCAiCisgICAgICAgICAgICArICJpbiB0aGF0IGl0IGRvZXMgaGF2ZSB3b3JkcyBmb3IgNzAsIDgwLCBhbmQgOTAuICBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZW0sICIKKyAgICAgICAgICAgICsgImFuZCBpcyBzaW1wbGVyIGFzIGEgcmVzdWx0LiIsCisKKyAgICAgICAgICAgICJHZXJtYW4gYWxzbyBhZGRzIHNvbWUgaW50ZXJlc3RpbmcgIgorICAgICAgICAgICAgKyAiY2hhcmFjdGVyaXN0aWNzLiAgRm9yIHZhbHVlcyBiZWxvdyAxLDAwMCwwMDAsIG51bWJlcnMgYXJlIGN1c3RvbWFyaWx5ICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gb3V0IGFzIGEgc2luZ2xlIHdvcmQuICBBbmQgdGhlIG9uZXMgZGlnaXQgUFJFQ0VERVMgdGhlIHRlbnMgIgorICAgICAgICAgICAgKyAiZGlnaXQgKGUuZy4sIDIzIGlzIFwiZHJlaXVuZHp3YW56aWcsXCIgbm90IFwiendhbnppZ3VuZGRyZWlcIikuIiwKKworICAgICAgICAgICAgIkxpa2UgR2VybWFuLCBtb3N0IEl0YWxpYW4gbnVtYmVycyBhcmUgIgorICAgICAgICAgICAgKyAid3JpdHRlbiBhcyBzaW5nbGUgd29yZHMuICBXaGF0IG1ha2VzIHRoZXNlIHJ1bGVzIGNvbXBsaWNhdGVkIGlzIHRoZSBydWxlICIKKyAgICAgICAgICAgICsgInRoYXQgc2F5cyB0aGF0IHdoZW4gYSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGFuZCBhIHdvcmQgYmVnaW5uaW5nIHdpdGggIgorICAgICAgICAgICAgKyAiYSB2b3dlbCBhcmUgY29tYmluZWQgaW50byBhIGNvbXBvdW5kLCB0aGUgdm93ZWwgaXMgZHJvcHBlZCBmcm9tIHRoZSAiCisgICAgICAgICAgICArICJlbmQgb2YgdGhlIGZpcnN0IHdvcmQ6IDE4MCBpcyBcImNlbnRvdHRhbnRhLFwiIG5vdCBcImNlbnRvb3R0YW50YS5cIiAgIgorICAgICAgICAgICAgKyAiVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBydWxlIHNldCBpcyB0byBwcm9kdWNlIHRoaXMgYmVoYXZpb3IuIiwKKworICAgICAgICAgICAgIlNwZWxsb3V0IHJ1bGVzIGZvciBTd2VkaXNoLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgRHV0Y2guICBOb3RpY2UgdGhhdCBpbiBEdXRjaCwgYXMgaW4gR2VybWFuLCIKKyAgICAgICAgICAgICsgInRoZSBvbmVzIGRpZ2l0IHByZWNlZGVzIHRoZSB0ZW5zIGRpZ2l0LiIsCisKKyAgICAgICAgICAgICJJbiBKYXBhbmVzZSwgdGhlcmUgcmVhbGx5IGlzbid0IGFueSAiCisgICAgICAgICAgICArICJkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgbnVtYmVyIHdyaXR0ZW4gb3V0IGluIGRpZ2l0cyBhbmQgYSBudW1iZXIgIgorICAgICAgICAgICAgKyAid3JpdHRlbiBvdXQgaW4gd29yZHM6IHRoZSBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzIGFyZSBib3RoIGRpZ2l0cyAiCisgICAgICAgICAgICArICJhbmQgd29yZHMuICBUaGlzIHJ1bGUgc2V0IHByb3ZpZGVzIHR3byB2YXJpYW50czogICV0cmFkaXRpb25hbCAiCisgICAgICAgICAgICArICJ1c2VzIHRoZSB0cmFkaXRpb25hbCBDSksgbnVtZXJhbHMgKHdoaWNoIGFyZSBhbHNvIHVzZWQgaW4gQ2hpbmEgIgorICAgICAgICAgICAgKyAiYW5kIEtvcmVhKS4gICVmaW5hbmNpYWwgdXNlcyBhbHRlcm5hdGUgaWRlb2dyYXBocyBmb3IgbWFueSBudW1iZXJzICIKKyAgICAgICAgICAgICsgInRoYXQgYXJlIGhhcmRlciB0byBhbHRlciB0aGFuIHRoZSB0cmFkaXRpb25hbCBudW1lcmFscyAob25lIGNvdWxkICIKKyAgICAgICAgICAgICsgImZhaXJseSBlYXNpbHkgY2hhbmdlIGEgb25lIHRvICIKKyAgICAgICAgICAgICsgImEgdGhyZWUganVzdCBieSBhZGRpbmcgdHdvIHN0cm9rZXMsIGZvciBleGFtcGxlKS4gIFRoaXMgaXMgYWxzbyBkb25lIGluICIKKyAgICAgICAgICAgICsgInRoZSBvdGhlciBjb3VudHJpZXMgdXNpbmcgQ2hpbmVzZSBpZG9ncmFwaHMsIGJ1dCBkaWZmZXJlbnQgaWRlb2dyYXBocyAiCisgICAgICAgICAgICArICJhcmUgdXNlZCBpbiB0aG9zZSBwbGFjZXMuIiwKKworICAgICAgICAgICAgIkFnYWluIGluIEdyZWVrIHdlIGhhdmUgdG8gc3VwcGx5IHRoZSB3b3JkcyAiCisgICAgICAgICAgICArICJmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDAgYmVjYXVzZSB0aGV5IGNhbid0IGJlIGRlcml2ZWQgYWxnb3JpdGhtaWNhbGx5LiAgIgorICAgICAgICAgICAgKyAiQWxzbywgdGhlIHRlbnMgZGdpdCBjaGFuZ2VzIGZvcm0gd2hlbiBmb2xsb3dlZCBieSBhIG9uZXMgZGlnaXQ6IGFuICIKKyAgICAgICAgICAgICsgImFjY2VudCBtYXJrIGRpc2FwcGVhcnMgZnJvbSB0aGUgdGVucyBkaWdpdCBhbmQgbW92ZXMgdG8gdGhlIG9uZXMgZGlnaXQuICAiCisgICAgICAgICAgICArICJUaGVyZWZvcmUsIGluc3RlYWQgb2YgdXNpbmcgdGhlIFtdIG5vdGF0aW9uLCB3ZSBhY3R1YWxseSBoYXZlIHRvIHVzZSAiCisgICAgICAgICAgICArICJ0d28gc2VwYXJhdGUgcnVsZXMgZm9yIGVhY2ggbXVsdGlwbGUgb2YgMTAgdG8gc2hvdyB0aGUgdHdvIGZvcm1zIG9mICIKKyAgICAgICAgICAgICsgInRoZSB3b3JkLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgUnVzc2lhbi4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIEhlYnJldy4gIEhlYnJldyBhY3R1YWxseSBoYXMgaW5mbGVjdGVkIGZvcm1zIGZvciAiCisgICAgICAgICAgICArICJtb3N0IG9mIHRoZSBsb3dlci1vcmRlciBudW1iZXJzLiAgVGhlIG1hc2N1bGluZSBmb3JtcyBhcmUgc2hvd24gIgorICAgICAgICAgICAgKyAiaGVyZS4iLAorCisgICAgICAgICAgICAiVGhpcyBydWxlIHNldCBhZGRzIGFuIEVuZ2xpc2ggb3JkaW5hbCBhYmJyZXZpYXRpb24gdG8gdGhlIGVuZCBvZiBhICIKKyAgICAgICAgICAgICsgIm51bWJlci4gIEZvciBleGFtcGxlLCAyIGlzIGZvcm1hdHRlZCBhcyBcIjJuZFwiLiAgUGFyc2luZyBkb2Vzbid0IHdvcmsgd2l0aCAiCisgICAgICAgICAgICArICJ0aGlzIHJ1bGUgc2V0LiAgVG8gcGFyc2UsIHVzZSBEZWNpbWFsRm9ybWF0IG9uIHRoZSBudW1lcmFsLiIsCisKKyAgICAgICAgICAgICJUaGlzIGlzIGEgc2ltcGxlIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgTm9ybWFsbHkgb25lIHdvdWxkICIKKyAgICAgICAgICAgICsgInVzZSBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQgdG8gZG8gc29tZXRoaW5nIHRoaXMgc2ltcGxlLCAiCisgICAgICAgICAgICArICJidXQgdGhpcyBzaG93cyBpdCBjb3VsZCBiZSBkb25lIHdpdGggUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvby4gICIKKyAgICAgICAgICAgICsgIkEgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUgdGhhdCBtaWdodCB3b3JrIGJldHRlciB3aXRoICIKKyAgICAgICAgICAgICsgIlJ1bGVCYXNlZE51bWJlckZvcm1hdCBhcHBlYXJzIGxhdGVyLiIsCisKKyAgICAgICAgICAgICJUaGUgbmV4dCBmZXcgZXhhbXBsZXMgZGVtb25zdHJhdGUgZnJhY3Rpb24gaGFuZGxpbmcuICAiCisgICAgICAgICAgICArICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBvbmUgb2YgdGhlIHR3byBzdHlsZXMgb2Z0ZW4gdXNlZCAiCisgICAgICAgICAgICArICJvbiBjaGVja3MuICAlZG9sbGFycy1hbmQtaHVuZHJlZHRocyBmb3JtYXRzIGNlbnRzIGFzIGh1bmRyZWR0aHMgb2YgIgorICAgICAgICAgICAgKyAiYSBkb2xsYXIgKDIzLjQwIGNvbWVzIG91dCBhcyBcInR3ZW50eS10aHJlZSBhbmQgNDAvMTAwIGRvbGxhcnNcIikuICAiCisgICAgICAgICAgICArICIlZG9sbGFycy1hbmQtY2VudHMgZm9ybWF0cyBpbiBkb2xsYXJzIGFuZCBjZW50cyAoMjMuNDAgY29tZXMgb3V0IGFzICIKKyAgICAgICAgICAgICsgIlwidHdlbnR5LXRocmVlIGRvbGxhcnMgYW5kIGZvcnR5IGNlbnRzXCIpIiwKKworICAgICAgICAgICAgIlRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZnJhY3Rpb24gIgorICAgICAgICAgICAgKyAid2l0aCBhIHBvd2VyIG9mIDEwIGFzIHRoZSBkZW5vbWluYXRvci4gIFNvbWUgbGFuZ3VhZ2VzIGRvbid0IHNwZWxsICIKKyAgICAgICAgICAgICsgIm91dCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyIGFzIFwicG9pbnQgb25lIHR3byB0aHJlZSxcIiBidXQgIgorICAgICAgICAgICAgKyAiYWx3YXlzIHJlbmRlciBpdCBhcyBhIGZyYWN0aW9uLiAgSWYgd2Ugc3RpbGwgd2FudCB0byB0cmVhdCB0aGUgZnJhY3Rpb25hbCAiCisgICAgICAgICAgICArICJwYXJ0IG9mIHRoZSBudW1iZXIgYXMgYSBkZWNpbWFsLCB0aGVuIHRoZSBmcmFjdGlvbidzIGRlbm9taW5hdG9yICIKKyAgICAgICAgICAgICsgImlzIGFsd2F5cyBhIHBvd2VyIG9mIDEwLiAgVGhpcyBleGFtcGxlIGRvZXMgdGhhdDogMjMuMTI1IGlzIGZvcm1hdHRlZCAiCisgICAgICAgICAgICArICJhcyBcInR3ZW50eS10aHJlZSBhbmQgb25lIGh1bmRyZWQgdHdlbnR5LWZpdmUgdGhvdXNhbmR0aHNcIiAoYXMgb3Bwb3NlZCAiCisgICAgICAgICAgICArICJ0byBcInR3ZW50eS10aHJlZSBwb2ludCBvbmUgdHdvIGZpdmVcIiBvciBcInR3ZW50eS10aHJlZSBhbmQgb25lIGVpZ2h0aFwiKS4iLAorCisgICAgICAgICAgICAiTnVtYmVyIHdpdGggY2xvc2VzdCBmcmFjdGlvbi4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgdmFsdWUgdXNpbmcgIgorICAgICAgICAgICAgKyAibnVtZXJhbHMsIGJ1dCBzaG93cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IGFzIGEgcmF0aW8gKGZyYWN0aW9uKSByYXRoZXIgIgorICAgICAgICAgICAgKyAidGhhbiBhIGRlY2ltYWwuICBUaGUgZnJhY3Rpb24gYWx3YXlzIGhhcyBhIGRlbm9taW5hdG9yIGJldHdlZW4gMiBhbmQgMTAuIiwKKworICAgICAgICAgICAgIkFtZXJpY2FuIHN0b2NrLXByaWNlIGZvcm1hdHRpbmcuICBOb24taW50ZWdyYWwgc3RvY2sgcHJpY2VzIGFyZSBzdGlsbCAiCisgICAgICAgICAgICArICJnZW5lcmFsbHkgc2hvd24gaW4gZWlnaHRocyBvciBzaXh0ZWVudGhzIG9mIGRvbGxhcnMgaW5zdGVhZCBvZiBkb2xsYXJzICIKKyAgICAgICAgICAgICsgImFuZCBjZW50cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIHN0b2NrIHByaWNlcyBpbiB0aGlzIHdheSBpZiBwb3NzaWJsZSwgIgorICAgICAgICAgICAgKyAiYW5kIGluIGRvbGxhcnMgYW5kIGNlbnRzIGlmIG5vdC4iLAorCisgICAgICAgICAgICAiVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIHVzaW5nIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvICIKKyAgICAgICAgICAgICsgImNoYW5nZSB0aGUgdW5pdHMgYSB2YWx1ZSBpcyBkZW5vbWluYXRlZCBpbiBkZXBlbmRpbmcgb24gaXRzIG1hZ25pdHVkZS4gICIKKyAgICAgICAgICAgICsgIlRoZSBleGFtcGxlIHNob3dzIGxhcmdlIG51bWJlcnMgdGhlIHdheSB0aGV5IG9mdGVuIGFwcGVhciBpcyBud2VzcGFwZXJzOiAiCisgICAgICAgICAgICArICIxLDIwMCwwMDAgaXMgZm9ybWF0dGVkIGFzIFwiMS4yIG1pbGxpb25cIi4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIHRha2VzIGEgbnVtYmVyIG9mIG1ldGVycyBhbmQgZm9ybWF0cyBpdCBpbiB3aGF0ZXZlciB1bml0ICIKKyAgICAgICAgICAgICsgIndpbGwgcHJvZHVjZSBhIG51bWJlciB3aXRoIGZyb20gb25lIHRvIHRocmVlIGRpZ2l0cyBiZWZvcmUgdGhlIGRlY2ltYWwgIgorICAgICAgICAgICAgKyAicG9pbnQuICBGb3IgZXhhbXBsZSwgMjMwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgXCIyMzAga21cIi4iLAorCisgICAgICAgICAgICAiQSBtb3JlIGNvbXBsaWNhdGVkIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgSGVyZSwgaW4gYWRkaXRpb24gdG8gIgorICAgICAgICAgICAgKyAiaGFuZGxpbmcgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgdmVyc2lvbnMgb2YgdGhlIHdvcmQsIHRoZSB2YWx1ZSBpcyAiCisgICAgICAgICAgICArICJkZW5vbWluYXRlZCBpbiBieXRlcywga2lsb2J5dGVzLCBvciBtZWdhYnl0ZXMgZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuICAiCisgICAgICAgICAgICArICJBbHNvIG5vdGljZSB0aGF0IGl0IGNvcnJlY3RseSB0cmVhdHMgYSBraWxvYnl0ZSBhcyAxLDAyNCBieXRlcyAobm90IDEsMDAwKSwgIgorICAgICAgICAgICAgKyAiYW5kIGEgbWVnYWJ5dGUgYXMgMSwwMjQga2lsb2J5dGVzIChub3QgMSwwMDApLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBkb3plbnMgYW5kIGdyb3NzLiAgVGhpcyBpcyBpbnRlbmRlZCB0byAiCisgICAgICAgICAgICArICJkZW1vbnN0cmF0ZSBob3cgdGhpcyBydWxlIHNldCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgbnVtYmVycyBpbiBzeXN0ZW1zICIKKyAgICAgICAgICAgICsgIm90aGVyIHRoYW4gYmFzZSAxMC4gIFRoZSBcIi8xMlwiIGFmdGVyIHRoZSBydWxlcycgYmFzZSB2YWx1ZXMgY29udHJvbHMgdGhpcy4gICIKKyAgICAgICAgICAgICsgIkFsc28gbm90aWNlIHRoYXQgdGhlIGJhc2UgZG9lc24ndCBoYXZlIHRvIGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCB0aGUgIgorICAgICAgICAgICAgKyAid2hvbGUgcnVsZSBzZXQ6IHdlIGdvIGJhY2sgdG8gYmFzZSAxMCBmb3IgdmFsdWVzIG92ZXIgMSwwMDAuIiwKKworICAgICAgICAgICAgIlRoZSBuZXh0IGZldyBleGFtcGxlcyBzaG93IGhvdyBhIHNpbmdsZSB2YWx1ZSBjYW4gYmUgZGl2aWRlZCB1cCBpbnRvIG1ham9yICIKKyAgICAgICAgICAgICsgImFuZCBtaW5vciB1bml0cyB0aGF0IGRvbid0IHJlbGF0ZSB0byBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEwLiAgIgorICAgICAgICAgICAgKyAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgb2Ygc2Vjb25kcyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAiCisgICAgICAgICAgICArICIoaS5lLiwgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgaXQgd2l0aCAiCisgICAgICAgICAgICArICJ3b3JkcyAoMzc0MCBpcyBcIjEgaG91ciwgMiBtaW51dGVzLCAyMCBzZWNvbmRzXCIpIGFuZCAlaW4tbnVtZXJhbHMgIgorICAgICAgICAgICAgKyAiZm9ybWF0cyBpdCBlbnRpcmVseSBpbiBudW1lcmFscyAoMzc0MCBpcyBcIjE6MDI6MjBcIikuIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIGhvdXJzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uIChpLmUuLCAiCisgICAgICAgICAgICArICJob3VycywgbWludXRlcywgYW5kIHNlY29uZHMpLiAgJXdpdGgtd29yZHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgIgorICAgICAgICAgICAgKyAid29yZHMgZm9yIHRoZSB1bml0cywgYW5kICVpbi1udW1lcmFscyBmb3JtYXRzIHRoZSB2YWx1ZSB1c2luZyBvbmx5ICIKKyAgICAgICAgICAgICsgIm51bWVyYWxzLiIsCisKKyAgICAgICAgICAgICJUaGlzIHJ1bGUgc2V0IGZvcm1hdHMgYSBudW1iZXIgb2YgcG91bmRzIGFzIHBvdW5kcywgc2hpbGxpbmdzLCBhbmQgIgorICAgICAgICAgICAgKyAicGVuY2UgaW4gdGhlIG9sZCBFbmdsaXNoIHN5c3RlbSBvZiBjdXJyZW5jeS4iLAorCisgICAgICAgICAgICAiVGhlc2UgZXhhbXBsZXMgc2hvdyBob3cgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCAiCisgICAgICAgICAgICArICJudW1iZXJzIHVzaW5nIG5vbi1wb3NpdGlvbmFsIG51bWVyYXRpb24gc3lzdGVtcy4gICIKKyAgICAgICAgICAgICsgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIG51bWJlcnMgaW4gQXJhYmljIG51bWVyYWxzLiAgIgorICAgICAgICAgICAgKyAiTm9ybWFsbHksIHlvdSdkIGRvIHRoaXMgd2l0aCBEZWNpbWFsRm9ybWF0LCBidXQgdGhpcyBzaG93cyB0aGF0ICIKKyAgICAgICAgICAgICsgIlJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gaGFuZGxlIGl0IHRvby4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyB0aGUgQXJhYmljLW51bWVyYWxzICIKKyAgICAgICAgICAgICsgImV4YW1wbGUsIGJ1dCB1c2VzIHdvcmRzIGZvciB0aGUgdmFyaW91cyBkaWdpdHMgKGUuZy4sIDEyMyBjb21lcyAiCisgICAgICAgICAgICArICJvdXQgYXMgXCJvbmUgdHdvIHRocmVlXCIpLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIHVzaW5nIENoaW5lc2UgY2hhcmFjdGVycyBpbiB0aGUgQXJhYmljICIKKyAgICAgICAgICAgICsgInBsYWNlLXZhbHVlIG1ldGhvZC4gIFRoaXMgd2FzIHVzZWQgaGlzdG9yaWNhbGx5IGluIENoaW5hIGZvciBhIHdoaWxlLiIsCisKKyAgICAgICAgICAgICJSb21hbiBudW1lcmFscy4gIFRoaXMgZXhhbXBsZSBoYXMgdHdvIHZhcmlhbnRzOiAlbW9kZXJuIHNob3dzIGhvdyBsYXJnZSAiCisgICAgICAgICAgICArICJudW1iZXJzIGFyZSB1c3VhbGx5IGhhbmRsZWQgdG9kYXk7ICVoaXN0b3JpY2FsIHNlcyB0aGUgb2xkZXIgc3ltYm9scyBmb3IgIgorICAgICAgICAgICAgKyAidGhvdXNhbmRzLiAgTm90IGFsbCBvZiB0aGUgY2hhcmFjdGVycyBhcmUgZGlzcGxheWFibGUgd2l0aCBtb3N0IGZvbnRzLiIsCisKKyAgICAgICAgICAgICJIZWJyZXcgYWxwaGFiZXRpYyBudW1lcmFscy4gIEJlZm9yZSBhZG9wdGlvbiBvZiBBcmFiaWMgbnVtZXJhbHMsIEhlYnJldyBzcGVha2VycyAiCisgICAgICAgICAgICArICJ1c2VkIHRoZSBsZXR0ZXIgb2YgdGhlaXIgYWxwaGFiZXQgYXMgbnVtZXJhbHMuICBUaGUgZmlyc3QgbmluZSBsZXR0ZXJzIG9mICIKKyAgICAgICAgICAgICsgInRoZSBhbHBoYWJldCByZXBlc2VudGVkIHRoZSB2YWx1ZXMgZnJvbSAxIHRvIDksIHRoZSBzZWNvbmQgbmluZSBsZXR0ZXJzIHRoZSAiCisgICAgICAgICAgICArICJtdWx0aXBsZXMgb2YgMTAsIGFuZCB0aGUgcmVtYWluaW5nIGxldHRlcnMgdGhlIG11bHRpcGxlcyBvZiAxMDAuICBTaW5jZSB0aGV5ICIKKyAgICAgICAgICAgICsgInJhbiBvdXQgb2YgbGV0dGVycyBhdCA0MDAsIHRoZSByZW1haW5pbmcgbXVsdGlwbGVzIG9mIDEwMCB3ZXJlIHJlcHJlc2VudGVkICIKKyAgICAgICAgICAgICsgInVzaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgZXhpc3RpbmcgbGV0dGVycyBmb3IgdGhlIGh1bmRyZWRzLiAgTnVtYmVycyB3ZXJlICIKKyAgICAgICAgICAgICsgImRpc3Rpbmd1aXNoZWQgZnJvbSB3b3JkcyBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5czogdGhlIHdheSBzaG93biBoZXJlICIKKyAgICAgICAgICAgICsgInVzZXMgYSBzaW5nbGUgbWFyayBhZnRlciBhIG51bWJlciBjb25zaXN0aW5nIG9mIG9uZSBsZXR0ZXIsIGFuZCBhIGRvdWJsZSAiCisgICAgICAgICAgICArICJtYXJrIGJldHdlZW4gdGhlIGxhc3QgdHdvIGxldHRlcnMgb2YgYSBudW1iZXIgY29uc2lzdGluZyBvZiB0d28gb3IgbW9yZSAiCisgICAgICAgICAgICArICJsZXR0ZXJzLiAgVHdvIGRvdHMgb3ZlciBhIGxldHRlciBtdWx0aXBsaWVkIGl0cyB2YWx1ZSBieSAxLDAwMC4gIEFsc28sIHNpbmNlICIKKyAgICAgICAgICAgICsgInRoZSBsZXR0ZXIgZm9yIDEwIGlzIHRoZSBmaXJzdCBsZXR0ZXIgb2YgR29kJ3MgbmFtZSBhbmQgdGhlIGxldHRlcnMgZm9yIDUgYW5kIDYgIgorICAgICAgICAgICAgKyAiYXJlIGxldHRlcnMgaW4gR29kJ3MgbmFtZSwgd2hpY2ggd2Fzbid0IHN1cHBvc2VkIHRvIGJlIHdyaXR0ZW4gb3Igc3Bva2VuLCAxNSBhbmQgIgorICAgICAgICAgICAgKyAiMTYgd2VyZSB1c3VhbGx5IHdyaXR0ZW4gYXMgOSArIDYgYW5kIDkgKyA3IGluc3RlYWQgb2YgMTAgKyA1IGFuZCAxMCArIDYuIiwKKworICAgICAgICAgICAgIkdyZWVrIGFscGhhYmV0aWMgbnVtZXJhbHMuICBUaGUgR3JlZWtzLCBiZWZvcmUgYWRvcHRpbmcgdGhlIEFyYWJpYyBudW1lcmFscywgIgorICAgICAgICAgICAgKyAiYWxzbyB1c2VkIHRoZSBsZXR0ZXJzIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlcmUgYXJlIHRocmVlIG5vdy0iCisgICAgICAgICAgICArICJvYnNvbGV0ZSBHcmVlayBsZXR0ZXJzIHRoYXQgYXJlIHVzZWQgYXMgbnVtZXJhbHM7IG1hbnkgZm9udHMgZG9uJ3QgaGF2ZSB0aGVtLiAgIgorICAgICAgICAgICAgKyAiTGFyZ2UgbnVtYmVycyB3ZXJlIGhhbmRsZWQgbWFueSBkaWZmZXJlbnQgd2F5czsgdGhlIHdheSBzaG93biBoZXJlIGRpdmlkZXMgIgorICAgICAgICAgICAgKyAibGFyZ2UgbnVtYmVycyBpbnRvIGdyb3VwcyBvZiBmb3VyIGxldHRlcnMgKGZhY3RvcnMgb2YgMTAsMDAwKSwgYW5kIHNlcGFyYXRlcyAiCisgICAgICAgICAgICArICJ0aGUgZ3JvdXBzIHdpdGggdGhlIGNhcGl0YWwgbGV0dGVyIG11IChmb3IgbXlyaWFkKS4gIENhcGl0YWwgbGV0dGVycyBhcmUgdXNlZCAiCisgICAgICAgICAgICArICJmb3IgdmFsdWVzIGJlbG93IDEwLDAwMDsgc21hbGwgbGV0dGVycyBmb3IgaGlnaGVyIG51bWJlcnMgKHRvIG1ha2UgdGhlIGNhcGl0YWwgIgorICAgICAgICAgICAgKyAibXUgc3RhbmQgb3V0KS4iLAorCisgICAgICAgICAgICAiVGhpcyBpcyBhIGN1c3RvbSAodXNlci1kZWZpbmVkKSBydWxlIHNldC4iCisgICAgICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGEwNTA3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitSdWxlQmFzZWROdW1iZXJGb3JtYXQgZGVtbyBhcHBsaWF0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90aW1lc2NhbGUvUGl2b3REZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdGltZXNjYWxlL1Bpdm90RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNzFjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdGltZXNjYWxlL1Bpdm90RGVtby5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRpbWVzY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGU7CisKKy8qKgorICogVGhpcyBjbGFzcyBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+IHRvCisgKiBjb252ZXJ0IGZyb20gb25lIGxvY2FsIHRpbWUgc2NhbGUgdG8gYW5vdGhlci4KKyAqIAorICogQHNlZSBVbml2ZXJzYWxUaW1lU2NhbGUKKyAqIAorICogQGRyYWZ0IElDVSAzLjIKKyAqLworcHVibGljIGNsYXNzIFBpdm90RGVtbyB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBQaXZvdERlbW8oKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+bWFpbigpPC9jb2RlPiBtZXRob2QgdXNlcyA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+IHRvCisgICAgICogY29udmVydCBmcm9tIHRoZSBKYXZhIGFuZCBVbml4IHRpbWUgc2NhbGVzIHRvIHRoZSBJQ1UgdGltZSBzY2FsZS4gSXQgdXNlcworICAgICAqIGEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdCB0byBkaXNwbGF5IHRoZSBJQ1UgdGltZSB2YWx1ZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgdXRjID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoInsxfSA9IHswLCBkYXRlLCBmdWxsfSB7MCwgdGltZSwgZnVsbH0iKTsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0ge2NhbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBhcmd1bWVudHNbMF0gPSBjYWw7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuSmF2YSB0ZXN0OiIpOworICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oMCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICIgMDAwMDAwMDAwMDAwMDAwIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLTYyMTY0Njg0ODAwMDAwTCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICItNjIxNjQ2ODQ4MDAwMDBMIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLTYyMTM1NzY5NjAwMDAwTCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICItNjIxMzU3Njk2MDAwMDBMIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVW5peCB0ZXN0OiIpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDB4ODAwMDAwMDAsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHg4MDAwMDAwMCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDAsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHgwMDAwMDAwMCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDB4N0ZGRkZGRkYsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHg3RkZGRkZGRiI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZjFhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI5OSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBBbnlUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgU3RyaW5nIHRhcmdldE5hbWU7CisgICAgcHJpdmF0ZSBSdW5JdGVyYXRvciBpdDsKKyAgICBwcml2YXRlIFBvc2l0aW9uIHJ1bjsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgQW55VHJhbnNsaXRlcmF0b3IoU3RyaW5nIHRhcmdldE5hbWUsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyLCBSdW5JdGVyYXRvciBpdCl7CisgICAgICAgIHN1cGVyKCJBbnktIiArIHRhcmdldE5hbWUsIGZpbHRlcik7CisgICAgICAgIHRoaXMudGFyZ2V0TmFtZSA9IHRhcmdldE5hbWU7CisgICAgICAgIHRoaXMuaXQgPSBpdDsKKyAgICAgICAgcnVuID0gbmV3IFBvc2l0aW9uKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBBbnlUcmFuc2xpdGVyYXRvcihTdHJpbmcgdGFyZ2V0TmFtZSwgVW5pY29kZUZpbHRlciBmaWx0ZXIpeworICAgICAgICB0aGlzKHRhcmdldE5hbWUsIGZpbHRlciwgbmV3IFNjcmlwdFJ1bkl0ZXJhdG9yKCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0VdIGhleCIpOworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLSBoYW5kbGVUcmFuc2xpdGVyYXRlICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgKyAiLCAiICsgdG9TdHJpbmcob2Zmc2V0cykpOworICAgICAgICB9CisgICAgICAgIGl0LnJlc2V0KHRleHQsIG9mZnNldHMpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGl0Lm5leHQocnVuKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldE5hbWUuZXF1YWxzSWdub3JlQ2FzZShpdC5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nIGlkZW50aWNhbDogIiArIHRhcmdldE5hbWUpOworICAgICAgICAgICAgICAgIHJ1bi5zdGFydCA9IHJ1bi5saW1pdDsgLy8gc2hvdyB3ZSBwcm9jZXNzZWQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBpZiBzYW1lCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBpdC5nZXROYW1lKCkgKyAnLScgKyB0YXJnZXROYW1lOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGZpbmQ6ICIgKyBpZCArICIsIFRyeWluZyBMYXRpbiBhcyBQaXZvdCIpOworICAgICAgICAgICAgICAgIGlkID0gaXQuZ2V0TmFtZSgpICsgIi1MYXRpbjsgTGF0aW4tIiArIHRhcmdldE5hbWU7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBmaW5kOiAiICsgaWQpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUT0RPIGNhdGNoIGVycm9yIGxhdGVyISEKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LmdldElEKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5wdXQ6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICsgIiwgIiArIHRvU3RyaW5nKHJ1bikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXNJbmNyZW1lbnRhbCAmJiBpdC5hdEVuZCgpKSB7CisgICAgICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRleHQsIHJ1bik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHRleHQsIHJ1bik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhZGp1c3QgdGhlIG9mZnNldHMgaW4gbGluZSB3aXRoIHRoZSBjaGFuZ2VzCisgICAgICAgICAgICBpdC5hZGp1c3QocnVuLmxpbWl0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvdXRwdXQ6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICsgIiwgIiArIHRvU3RyaW5nKHJ1bikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc2hvdyBob3cgZmFyIHdlIGdvdCEKKyAgICAgICAgaXQuZ2V0RXhwYW5zZShvZmZzZXRzKTsKKyAgICAgICAgaWYgKHJ1bi5zdGFydCA9PSBydW4ubGltaXQpIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICBlbHNlIG9mZnNldHMuc3RhcnQgPSBydW4uc3RhcnQ7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIrIGhhbmRsZVRyYW5zbGl0ZXJhdGU6ICIgKyAiLCAiICsgdG9TdHJpbmcob2Zmc2V0cykpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gc2hvdWxkIGJlIG1ldGhvZCBvbiBQb3NpdGlvbgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFBvc2l0aW9uIG9mZnNldHMpIHsKKyAgICAgICAgcmV0dXJuICJbY3M6ICIgKyBvZmZzZXRzLmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIG9mZnNldHMuc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBvZmZzZXRzLmxpbWl0CisgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIG9mZnNldHMuY29udGV4dExpbWl0CisgICAgICAgICAgICAgICAgKyAiXSI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnRlcmZhY2UgUnVuSXRlcmF0b3IgeworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBleHBhbnNlKTsKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0RXhwYW5zZShQb3NpdGlvbiBydW4pOworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KFBvc2l0aW9uIHJ1bik7CisgICAgICAgIHB1YmxpYyB2b2lkIGdldEN1cnJlbnQoUG9zaXRpb24gcnVuKTsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCk7CisgICAgICAgIHB1YmxpYyB2b2lkIGFkanVzdChpbnQgbmV3Q3VycmVudExpbWl0KTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gYXRFbmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHNlcmllcyBvZiByYW5nZXMgY29ycmVzcG9uZGluZyB0byBzY3JpcHRzLiBUaGV5IHdpbGwgYmUgb2YgdGhlIGZvcm06CisgICAgICogY2NjY1NTY1NTY2NjY1RUY1RjY2NjICAgIC0gd2hlcmUgYyBpcyBjb21tb24sIFMgaXMgdGhlIGZpcnN0IHNjcmlwdCBhbmQgVCBpcyB0aGUgc2Vjb25kCisgICAgICp8ICAgICAgICAgICAgfCAgICAgICAgICAgIC0gZmlyc3QgcnVuCisgICAgICogICAgICAgICB8ICAgICAgICAgICAgfCAgICAtIHNlY29uZCBydW4KKyAgICAgKiBUaGF0IGlzLCB0aGUgcnVucyB3aWxsIG92ZXJsYXAuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgc28gdGhhdCBhIHRyYW5zbGl0ZXJhdG9yIGNhbgorICAgICAqIGNvbnNpZGVyIGNvbW1vbiBjaGFyYWN0ZXJzIGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGUgc2NyaXB0cy4KKyAgICAgKiBUaGUgb25seSB0aW1lIHRoYXQgY29udGV4dFN0YXJ0ICE9IHN0YXJ0IGlzIGZvciB0aGUgZmlyc3QgcnVuIAorICAgICAqICAgICh0aGUgY29udGV4dCBpcyB0aGUgc3RhcnQgY29udGV4dCBvZiB0aGUgZW50aXJlIGV4cGFuc2UpCisgICAgICogVGhlIG9ubHkgdGltZSB0aGF0IGNvbnRleHRMaW1pdCAhPSBsaW1pdCBpcyBmb3IgdGhlIGxhc3QgcnVuIAorICAgICAqICAgICh0aGUgY29udGV4dCBpcyB0aGUgZW5kIGNvbnRleHQgb2YgdGhlIGVudGlyZSBleHBhbnNlKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2NyaXB0UnVuSXRlcmF0b3IgaW1wbGVtZW50cyBSdW5JdGVyYXRvciB7CisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBQb3NpdGlvbiBleHBhbnNlID0gbmV3IFBvc2l0aW9uKCk7CisgICAgICAgIHByaXZhdGUgUG9zaXRpb24gY3VycmVudCA9IG5ldyBQb3NpdGlvbigpOworICAgICAgICBwcml2YXRlIGludCBzY3JpcHQ7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBkb25lID0gdHJ1ZTsKKyAgICAgICAgCisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gZXhwYW5zZSkgeworICAgICAgICAgICAgc2V0KHRoaXMuZXhwYW5zZSwgZXhwYW5zZSk7CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICAgICAgLy90aGlzLmV4cGFuc2UgPSBleHBhbnNlOworICAgICAgICAgICAgc2NyaXB0ID0gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgICAgICAvLyBzZXQgdXAgZmlyc3QgcmFuZ2UgdG8gYmUgZW1wdHksIGF0IGJlZ2lubmluZworICAgICAgICAgICAgY3VycmVudC5jb250ZXh0U3RhcnQgPSBleHBhbnNlLmNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIGN1cnJlbnQuc3RhcnQgPSBjdXJyZW50LmxpbWl0ID0gY3VycmVudC5jb250ZXh0TGltaXQgPSBleHBhbnNlLnN0YXJ0OyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dChQb3NpdGlvbiBydW4pIHsKKyAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIitjczogIiArIGN1cnJlbnQuY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgICAgICsgIiwgczogIiArIGN1cnJlbnQuc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgY3VycmVudC5saW1pdAorICAgICAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgY3VycmVudC5jb250ZXh0TGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcmVzZXQgc3RhcnQgY29udGV4dCBydW4gdG8gdGhlIGxhc3QgZW5kCisgICAgICAgICAgICBjdXJyZW50LnN0YXJ0ID0gY3VycmVudC5saW1pdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUGhhc2UgMS4gQmFja3VwIHRoZSBTVEFSVCB2YWx1ZSB0aHJvdWdoIENPTU1PTiB1bnRpbCB3ZSBnZXQgdG8gZXhwYW5zZS5zdGFydCBvciBhIHJlYWwgc2NyaXB0LgorICAgICAgICAgICAgaW50IGksIGNwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gZXhwYW5zZS5zdGFydDsKKyAgICAgICAgICAgIGZvciAoaSA9IGN1cnJlbnQuc3RhcnQ7IGkgPiBsaW1pdDsgaSAtPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSBVU2NyaXB0LkNPTU1PTiAmJiBzY3JpcHQgIT0gVVNjcmlwdC5JTkhFUklURUQpIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudC5zdGFydCA9IGk7CisgICAgICAgICAgICBjdXJyZW50LmNvbnRleHRTdGFydCA9IChpID09IGxpbWl0KSA/IGV4cGFuc2UuY29udGV4dFN0YXJ0IDogaTsgLy8gZXh0ZW5kIGF0IHN0YXJ0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFBIQVNFIDIuIE1vdmUgdXAgdGhlIExJTUlUIHZhbHVlIHRocm91Z2ggQ09NTU9OIG9yIHNpbmdsZSBzY3JpcHQgdW50aWwgd2UgZ2V0IHRvIGV4cGFuc2UubGltaXQKKyAgICAgICAgICAgIGludCBsYXN0U2NyaXB0ID0gVVNjcmlwdC5DT01NT047CisgICAgICAgICAgICAvL2ludCB2ZXJ5TGFzdFNjcmlwdCA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICAgICAgbGltaXQgPSBleHBhbnNlLmxpbWl0OyAKKyAgICAgICAgICAgIGZvciAoaSA9IGN1cnJlbnQubGltaXQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCA9PSBVU2NyaXB0LklOSEVSSVRFRCkgc2NyaXB0ID0gVVNjcmlwdC5DT01NT047CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSBVU2NyaXB0LkNPTU1PTikgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgcmVhbCBzY3JpcHQ6CisgICAgICAgICAgICAgICAgICAgIC8vICAgaWYgd2UgYWxyZWFkeSBoYWQgYSBzY3JpcHQsIGJhaWwKKyAgICAgICAgICAgICAgICAgICAgLy8gICBvdGhlcndpc2Ugc2V0IG91ciBzY3JpcHQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RTY3JpcHQgPT0gVVNjcmlwdC5DT01NT04pIGxhc3RTY3JpcHQgPSBzY3JpcHQ7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxhc3RTY3JpcHQgIT0gc2NyaXB0KSBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50LmxpbWl0ID0gaTsKKyAgICAgICAgICAgIGN1cnJlbnQuY29udGV4dExpbWl0ID0gKGkgPT0gbGltaXQpID8gZXhwYW5zZS5jb250ZXh0TGltaXQgOiBpOyAvLyBleHRlbmQgYXQgZW5kCisgICAgICAgICAgICBkb25lID0gKGkgPT0gbGltaXQpOworICAgICAgICAgICAgc2NyaXB0ID0gbGFzdFNjcmlwdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItY3M6ICIgKyBjdXJyZW50LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICAgICArICIsIHM6ICIgKyBjdXJyZW50LnN0YXJ0CisgICAgICAgICAgICAgICAgICAgICsgIiwgbDogIiArIGN1cnJlbnQubGltaXQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIGN1cnJlbnQuY29udGV4dExpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0KHJ1biwgY3VycmVudCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU0hPVUxEIEJFIE1FVEhPRCBPTiBQT1NJVElPTgorICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0KFBvc2l0aW9uIHJ1biwgUG9zaXRpb24gY3VycmVudCkgeworICAgICAgICAgICAgcnVuLmNvbnRleHRTdGFydCA9IGN1cnJlbnQuY29udGV4dFN0YXJ0OworICAgICAgICAgICAgcnVuLnN0YXJ0ID0gY3VycmVudC5zdGFydDsKKyAgICAgICAgICAgIHJ1bi5saW1pdCA9IGN1cnJlbnQubGltaXQ7CisgICAgICAgICAgICBydW4uY29udGV4dExpbWl0ID0gY3VycmVudC5jb250ZXh0TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQubGltaXQgPT0gZXhwYW5zZS5saW1pdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0Q3VycmVudChQb3NpdGlvbiBydW4pIHsKKyAgICAgICAgICAgIHNldChydW4sIGN1cnJlbnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBnZXRFeHBhbnNlKFBvc2l0aW9uIHJ1bikgeworICAgICAgICAgICAgc2V0KHJ1biwgZXhwYW5zZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRqdXN0KGludCBuZXdDdXJyZW50TGltaXQpIHsKKyAgICAgICAgICAgIGlmIChleHBhbnNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IHJlc2V0KCkgYmVmb3JlIGNhbGxpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkZWx0YSA9IG5ld0N1cnJlbnRMaW1pdCAtIGN1cnJlbnQubGltaXQ7CisgICAgICAgICAgICBjdXJyZW50LmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgY3VycmVudC5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICBleHBhbnNlLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgZXhwYW5zZS5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHJlZ2lzdGVyIEFueS1TY3JpcHQgZm9yIGV2ZXJ5IHNjcmlwdC4KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIFNldCBzY3JpcHRMaXN0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlckFueVRvU2NyaXB0KCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChzY3JpcHRMaXN0KSB7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gc291cmNlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzb3VyY2VzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCJBbnkiKSkgY29udGludWU7IC8vIHRvIGtlZXAgZnJvbSBsb29waW5nCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB0YXJnZXRzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVTY3JpcHQuZ2V0Q29kZSh0YXJnZXQpID09IG51bGwpIGNvbnRpbnVlOyAvLyBTS0lQIHVubGVzcyB3ZSBoYXZlIGEgc2NyaXB0IChvciBsb2NhbGUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0TGlzdC5jb250YWlucyh0YXJnZXQpKSBjb250aW51ZTsgLy8gYWxyZWFkeSBlbmNvdW50ZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0TGlzdC5hZGQodGFyZ2V0KTsgLy8gb3RoZXJ3aXNlIGFkZCBmb3IgbGF0ZXIgdGVzdGluZworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdmFyaWFudFNldCA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRTZXQuc2l6ZSgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKHRhcmdldCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlGYWN0b3J5LmFkZChhdC5nZXRJRCgpLCBhdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHZhcmlhbnRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55VHJhbnNsaXRlcmF0b3IgYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFyaWFudC5sZW5ndGgoKSA+IDApID8gdGFyZ2V0ICsgIi8iICsgdmFyaWFudCA6IHRhcmdldCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGNsYXNzIER1bW15RmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICAgICAgc3RhdGljIER1bW15RmFjdG9yeSBzaW5nbGV0b24gPSBuZXcgRHVtbXlGYWN0b3J5KCk7CisgICAgICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAgICAgLy8gU2luY2UgVHJhbnNsaXRlcmF0b3JzIGFyZSBpbW11dGFibGUsIHdlIGRvbid0IGhhdmUgdG8gY2xvbmUgb24gc2V0ICYgZ2V0CisgICAgICAgICAgICBzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmc6ICIgKyBJRCArICIsICIgKyB0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5pY2UgbGl0dGxlIFV0aWxpdHkgZm9yIGNvbnZlcnRpbmcgRW51bWVyYXRpb24gdG8gY29sbGVjdGlvbgorICAgICAgICBzdGF0aWMgU2V0IGFkZChTZXQgcywgRW51bWVyYXRpb24gZW51bWVyYXRpb24pIHsKKyAgICAgICAgICAgIHdoaWxlKGVudW1lcmF0aW9uLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgcy5hZGQoZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0Nhc2VJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0Nhc2VJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMmUyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQ2FzZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1NTUgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBJbmNyZW1lbnRhbGx5IHJldHVybnMgdGhlIHNldCBvZiBhbGwgc3RyaW5ncyB0aGF0IGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZS4KKyAqLworcHVibGljIGNsYXNzIENhc2VJdGVyYXRvciB7CisgICAgCisgICAgLy8gdGVzdGluZyBzdHVmZgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSB0cnVlOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b05hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktTmFtZSIpOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b0hleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOl5hc2NpaTpdIEFueS1IZXgiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXgyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIltbXlx1MDAyMS1cdTAwN0ZdLVssXV0gQW55LUhleCIpOworICAgIAorICAgIC8vIGdsb2JhbCB0YWJsZXMgKGNvdWxkIGJlIHByZWNvbXBpbGVkKQorICAgIHByaXZhdGUgc3RhdGljIE1hcCBmcm9tQ2FzZUZvbGQgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgc3RhdGljIE1hcCB0b0Nhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWF4TGVuZ3RoID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIGV4Y2VwdGlvbiBsaXN0IGlzIGdlbmVyYXRlZCBvbiB0aGUgY29uc29sZSBieSB0dXJuaW5nIG9uIHRoZSBHRU5FUkFURUQgZmxhZywgCisgICAgLy8gd2hpY2ggTVVTVCBiZSBmYWxzZSBmb3Igbm9ybWFsIG9wZXJhdGlvbi4KKyAgICAvLyBPbmNlIHRoZSBsaXN0IGlzIGdlbmVyYXRlZCwgaXQgaXMgcGFzdGVkIGluIGhlcmUuCisgICAgLy8gQSBiaXQgb2YgYSBjbHVkZ2UsIGJ1dCB0aGlzIGJvb3RzdHJhcHBpbmcgaXMgdGhlIGVhc2llc3Qgd2F5IAorICAgIC8vIHRvIGdldCBhcm91bmQgY2VydGFpbiBjb21wbGljYXRpb25zIGluIHRoZSBkYXRhLgorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gR0VORVJBVEUgPSBmYWxzZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gRFVNUCA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gZXhjZXB0aW9uTGlzdCA9IHsKKyAgICAgICAgLy8gYVxOe01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkd9CisgICAgICAgIHsiYVx1MDJCRSIsIkFcdTAyQkUiLCJhXHUwMkJFIix9LAorICAgICAgICAvLyBmZgorICAgICAgICB7ImZmIiwiRkYiLCJGZiIsImZGIiwiZmYiLH0sCisgICAgICAgIC8vIGZmaQorICAgICAgICB7ImZmaSIsIkZGSSIsIkZGaSIsIkZmSSIsIkZmaSIsIkZcdUZCMDEiLCJmRkkiLCJmRmkiLCJmZkkiLCJmZmkiLCJmXHVGQjAxIiwiXHVGQjAwSSIsIlx1RkIwMGkiLH0sCisgICAgICAgIC8vIGZmbAorICAgICAgICB7ImZmbCIsIkZGTCIsIkZGbCIsIkZmTCIsIkZmbCIsIkZcdUZCMDIiLCJmRkwiLCJmRmwiLCJmZkwiLCJmZmwiLCJmXHVGQjAyIiwiXHVGQjAwTCIsIlx1RkIwMGwiLH0sCisgICAgICAgIC8vIGZpCisgICAgICAgIHsiZmkiLCJGSSIsIkZpIiwiZkkiLCJmaSIsfSwKKyAgICAgICAgLy8gZmwKKyAgICAgICAgeyJmbCIsIkZMIiwiRmwiLCJmTCIsImZsIix9LAorICAgICAgICAvLyBoXE57Q09NQklOSU5HIE1BQ1JPTiBCRUxPV30KKyAgICAgICAgeyJoXHUwMzMxIiwiSFx1MDMzMSIsImhcdTAzMzEiLH0sCisgICAgICAgIC8vIGlcTntDT01CSU5JTkcgRE9UIEFCT1ZFfQorICAgICAgICB7ImlcdTAzMDciLCJJXHUwMzA3IiwiaVx1MDMwNyIsfSwKKyAgICAgICAgLy8galxOe0NPTUJJTklORyBDQVJPTn0KKyAgICAgICAgeyJqXHUwMzBDIiwiSlx1MDMwQyIsImpcdTAzMEMiLH0sCisgICAgICAgIC8vIHNzCisgICAgICAgIHsic3MiLCJTUyIsIlNzIiwiU1x1MDE3RiIsInNTIiwic3MiLCJzXHUwMTdGIiwiXHUwMTdGUyIsIlx1MDE3RnMiLCJcdTAxN0ZcdTAxN0YiLH0sCisgICAgICAgIC8vIHN0CisgICAgICAgIHsic3QiLCJTVCIsIlN0Iiwic1QiLCJzdCIsIlx1MDE3RlQiLCJcdTAxN0Z0Iix9LAorICAgICAgICAvLyB0XE57Q09NQklOSU5HIERJQUVSRVNJU30KKyAgICAgICAgeyJ0XHUwMzA4IiwiVFx1MDMwOCIsInRcdTAzMDgiLH0sCisgICAgICAgIC8vIHdcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ3XHUwMzBBIiwiV1x1MDMwQSIsIndcdTAzMEEiLH0sCisgICAgICAgIC8vIHlcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ5XHUwMzBBIiwiWVx1MDMwQSIsInlcdTAzMEEiLH0sCisgICAgICAgIC8vIFxOe01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFfW4KKyAgICAgICAgeyJcdTAyQkNuIiwiXHUwMkJDTiIsIlx1MDJCQ24iLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBQ1x1MDNCOSIsIlx1MDM4Nlx1MDM0NSIsIlx1MDM4Nlx1MDM5OSIsIlx1MDM4Nlx1MDNCOSIsIlx1MDM4Nlx1MUZCRSIsIlx1MDNBQ1x1MDM0NSIsIlx1MDNBQ1x1MDM5OSIsIlx1MDNBQ1x1MDNCOSIsIlx1MDNBQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBRVx1MDNCOSIsIlx1MDM4OVx1MDM0NSIsIlx1MDM4OVx1MDM5OSIsIlx1MDM4OVx1MDNCOSIsIlx1MDM4OVx1MUZCRSIsIlx1MDNBRVx1MDM0NSIsIlx1MDNBRVx1MDM5OSIsIlx1MDNBRVx1MDNCOSIsIlx1MDNBRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQjFcdTAzNDIiLCJcdTAzOTFcdTAzNDIiLCJcdTAzQjFcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUwMzQ1IiwiXHUwMzkxXHUwMzQyXHUwMzk5IiwiXHUwMzkxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjFcdTAzNDJcdTAzNDUiLCJcdTAzQjFcdTAzNDJcdTAzOTkiLCJcdTAzQjFcdTAzNDJcdTAzQjkiLCJcdTAzQjFcdTAzNDJcdTFGQkUiLCJcdTFGQjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZCNlx1MDM5OSIsIlx1MUZCNlx1MDNCOSIsIlx1MUZCNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDNCOSIsIlx1MDM5MVx1MDM0NSIsIlx1MDM5MVx1MDM5OSIsIlx1MDM5MVx1MDNCOSIsIlx1MDM5MVx1MUZCRSIsIlx1MDNCMVx1MDM0NSIsIlx1MDNCMVx1MDM5OSIsIlx1MDNCMVx1MDNCOSIsIlx1MDNCMVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyIiwiXHUwMzk3XHUwMzQyIiwiXHUwM0I3XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTAzNDUiLCJcdTAzOTdcdTAzNDJcdTAzOTkiLCJcdTAzOTdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTFGQkUiLAorICAgICAgICAgICAgIlx1MDNCN1x1MDM0Mlx1MDM0NSIsIlx1MDNCN1x1MDM0Mlx1MDM5OSIsIlx1MDNCN1x1MDM0Mlx1MDNCOSIsIlx1MDNCN1x1MDM0Mlx1MUZCRSIsIlx1MUZDNlx1MDM0NSIsIlx1MUZDNlx1MDM5OSIsCisgICAgICAgICAgICAiXHUxRkM2XHUwM0I5IiwiXHUxRkM2XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCN1x1MDNCOSIsIlx1MDM5N1x1MDM0NSIsIlx1MDM5N1x1MDM5OSIsIlx1MDM5N1x1MDNCOSIsIlx1MDM5N1x1MUZCRSIsIlx1MDNCN1x1MDM0NSIsIlx1MDNCN1x1MDM5OSIsIlx1MDNCN1x1MDNCOSIsIlx1MDNCN1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MDM0NVx1MDMwOFx1MDMwMCIsIlx1MDM5OVx1MDMwOFx1MDMwMCIsIlx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MUZCRVx1MDMwOFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MDM0NVx1MDMwOFx1MDMwMSIsIlx1MDM5OVx1MDMwOFx1MDMwMSIsIlx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MUZCRVx1MDMwOFx1MDMwMSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUwMzQ1XHUwMzA4XHUwMzQyIiwiXHUwMzk5XHUwMzA4XHUwMzQyIiwiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUxRkJFXHUwMzA4XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzQyIiwiXHUwMzQ1XHUwMzQyIiwiXHUwMzk5XHUwMzQyIiwiXHUwM0I5XHUwMzQyIiwiXHUxRkJFXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgUkhPfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzFcdTAzMTMiLCJcdTAzQTFcdTAzMTMiLCJcdTAzQzFcdTAzMTMiLCJcdTAzRjFcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDAiLCJcdTAzQTVcdTAzMDhcdTAzMDAiLCJcdTAzQzVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDEiLCJcdTAzQTVcdTAzMDhcdTAzMDEiLCJcdTAzQzVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMwOFx1MDM0MiIsIlx1MDNBNVx1MDMwOFx1MDM0MiIsIlx1MDNDNVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfQorICAgICAgICB7Ilx1MDNDNVx1MDMxMyIsIlx1MDNBNVx1MDMxMyIsIlx1MDNDNVx1MDMxMyIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUwM0E1XHUwMzEzXHUwMzAwIiwiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUxRjUwXHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTAzQTVcdTAzMTNcdTAzMDEiLCJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTFGNTBcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUwM0E1XHUwMzEzXHUwMzQyIiwiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUxRjUwXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzQyIiwiXHUwM0E1XHUwMzQyIiwiXHUwM0M1XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0F9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDOVx1MDM0MiIsIlx1MDNBOVx1MDM0MiIsIlx1MDNDOVx1MDM0MiIsIlx1MjEyNlx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTAzNDUiLCJcdTAzQTlcdTAzNDJcdTAzOTkiLCJcdTAzQTlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTFGQkUiLCJcdTAzQzlcdTAzNDJcdTAzNDUiLCJcdTAzQzlcdTAzNDJcdTAzOTkiLCJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQzlcdTAzNDJcdTFGQkUiLCJcdTFGRjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZGNlx1MDM5OSIsIlx1MUZGNlx1MDNCOSIsIlx1MUZGNlx1MUZCRSIsIlx1MjEyNlx1MDM0Mlx1MDM0NSIsIlx1MjEyNlx1MDM0Mlx1MDM5OSIsIlx1MjEyNlx1MDM0Mlx1MDNCOSIsIlx1MjEyNlx1MDM0Mlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDOVx1MDNCOSIsIlx1MDNBOVx1MDM0NSIsIlx1MDNBOVx1MDM5OSIsIlx1MDNBOVx1MDNCOSIsIlx1MDNBOVx1MUZCRSIsIlx1MDNDOVx1MDM0NSIsIlx1MDNDOVx1MDM5OSIsIlx1MDNDOVx1MDNCOSIsIlx1MDNDOVx1MUZCRSIsIlx1MjEyNlx1MDM0NSIsIlx1MjEyNlx1MDM5OSIsIlx1MjEyNlx1MDNCOSIsIlx1MjEyNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1N9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0NFXHUwM0I5IiwiXHUwMzhGXHUwMzQ1IiwiXHUwMzhGXHUwMzk5IiwiXHUwMzhGXHUwM0I5IiwiXHUwMzhGXHUxRkJFIiwiXHUwM0NFXHUwMzQ1IiwiXHUwM0NFXHUwMzk5IiwiXHUwM0NFXHUwM0I5IiwiXHUwM0NFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfVxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSVdOfQorICAgICAgICB7Ilx1MDU2NVx1MDU4MiIsIlx1MDUzNVx1MDU1MiIsIlx1MDUzNVx1MDU4MiIsIlx1MDU2NVx1MDU1MiIsIlx1MDU2NVx1MDU4MiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2NSIsIlx1MDU0NFx1MDUzNSIsIlx1MDU0NFx1MDU2NSIsIlx1MDU3NFx1MDUzNSIsIlx1MDU3NFx1MDU2NSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JfQorICAgICAgICB7Ilx1MDU3NFx1MDU2QiIsIlx1MDU0NFx1MDUzQiIsIlx1MDU0NFx1MDU2QiIsIlx1MDU3NFx1MDUzQiIsIlx1MDU3NFx1MDU2QiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2RCIsIlx1MDU0NFx1MDUzRCIsIlx1MDU0NFx1MDU2RCIsIlx1MDU3NFx1MDUzRCIsIlx1MDU3NFx1MDU2RCIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3NFx1MDU3NiIsIlx1MDU0NFx1MDU0NiIsIlx1MDU0NFx1MDU3NiIsIlx1MDU3NFx1MDU0NiIsIlx1MDU3NFx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZFV31cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3RVx1MDU3NiIsIlx1MDU0RVx1MDU0NiIsIlx1MDU0RVx1MDU3NiIsIlx1MDU3RVx1MDU0NiIsIlx1MDU3RVx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUwMzQ1IiwiXHUxRjAwXHUwMzk5IiwiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUxRkJFIiwiXHUxRjA4XHUwMzQ1IiwiXHUxRjA4XHUwMzk5IiwiXHUxRjA4XHUwM0I5IiwiXHUxRjA4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTAzNDUiLCJcdTFGMDFcdTAzOTkiLCJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTFGQkUiLCJcdTFGMDlcdTAzNDUiLCJcdTFGMDlcdTAzOTkiLCJcdTFGMDlcdTAzQjkiLCJcdTFGMDlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTAzNDUiLCJcdTFGMDJcdTAzOTkiLCJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTFGQkUiLCJcdTFGMEFcdTAzNDUiLCJcdTFGMEFcdTAzOTkiLCJcdTFGMEFcdTAzQjkiLCJcdTFGMEFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTAzNDUiLCJcdTFGMDNcdTAzOTkiLCJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTFGQkUiLCJcdTFGMEJcdTAzNDUiLCJcdTFGMEJcdTAzOTkiLCJcdTFGMEJcdTAzQjkiLCJcdTFGMEJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MDM0NSIsIlx1MUYwNFx1MDM5OSIsIlx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MUZCRSIsIlx1MUYwQ1x1MDM0NSIsIlx1MUYwQ1x1MDM5OSIsIlx1MUYwQ1x1MDNCOSIsIlx1MUYwQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUwMzQ1IiwiXHUxRjA1XHUwMzk5IiwiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUxRkJFIiwiXHUxRjBEXHUwMzQ1IiwiXHUxRjBEXHUwMzk5IiwiXHUxRjBEXHUwM0I5IiwiXHUxRjBEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUwMzQ1IiwiXHUxRjA2XHUwMzk5IiwiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUxRkJFIiwiXHUxRjBFXHUwMzQ1IiwiXHUxRjBFXHUwMzk5IiwiXHUxRjBFXHUwM0I5IiwiXHUxRjBFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUwMzQ1IiwiXHUxRjA3XHUwMzk5IiwiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUxRkJFIiwiXHUxRjBGXHUwMzQ1IiwiXHUxRjBGXHUwMzk5IiwiXHUxRjBGXHUwM0I5IiwiXHUxRjBGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUwMzQ1IiwiXHUxRjIwXHUwMzk5IiwiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUxRkJFIiwiXHUxRjI4XHUwMzQ1IiwiXHUxRjI4XHUwMzk5IiwiXHUxRjI4XHUwM0I5IiwiXHUxRjI4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUwMzQ1IiwiXHUxRjIxXHUwMzk5IiwiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUxRkJFIiwiXHUxRjI5XHUwMzQ1IiwiXHUxRjI5XHUwMzk5IiwiXHUxRjI5XHUwM0I5IiwiXHUxRjI5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MDM0NSIsIlx1MUYyMlx1MDM5OSIsIlx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MUZCRSIsIlx1MUYyQVx1MDM0NSIsIlx1MUYyQVx1MDM5OSIsIlx1MUYyQVx1MDNCOSIsIlx1MUYyQVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTAzNDUiLCJcdTFGMjNcdTAzOTkiLCJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTFGQkUiLCJcdTFGMkJcdTAzNDUiLCJcdTFGMkJcdTAzOTkiLCJcdTFGMkJcdTAzQjkiLCJcdTFGMkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTAzNDUiLCJcdTFGMjRcdTAzOTkiLCJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTFGQkUiLCJcdTFGMkNcdTAzNDUiLCJcdTFGMkNcdTAzOTkiLCJcdTFGMkNcdTAzQjkiLCJcdTFGMkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTAzNDUiLCJcdTFGMjVcdTAzOTkiLCJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTFGQkUiLCJcdTFGMkRcdTAzNDUiLCJcdTFGMkRcdTAzOTkiLCJcdTFGMkRcdTAzQjkiLCJcdTFGMkRcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUwMzQ1IiwiXHUxRjI2XHUwMzk5IiwiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUxRkJFIiwiXHUxRjJFXHUwMzQ1IiwiXHUxRjJFXHUwMzk5IiwiXHUxRjJFXHUwM0I5IiwiXHUxRjJFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MDM0NSIsIlx1MUYyN1x1MDM5OSIsIlx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MUZCRSIsIlx1MUYyRlx1MDM0NSIsIlx1MUYyRlx1MDM5OSIsIlx1MUYyRlx1MDNCOSIsIlx1MUYyRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUwMzQ1IiwiXHUxRjYwXHUwMzk5IiwiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUxRkJFIiwiXHUxRjY4XHUwMzQ1IiwiXHUxRjY4XHUwMzk5IiwiXHUxRjY4XHUwM0I5IiwiXHUxRjY4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTAzNDUiLCJcdTFGNjFcdTAzOTkiLCJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTFGQkUiLCJcdTFGNjlcdTAzNDUiLCJcdTFGNjlcdTAzOTkiLCJcdTFGNjlcdTAzQjkiLCJcdTFGNjlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTAzNDUiLCJcdTFGNjJcdTAzOTkiLCJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTFGQkUiLCJcdTFGNkFcdTAzNDUiLCJcdTFGNkFcdTAzOTkiLCJcdTFGNkFcdTAzQjkiLCJcdTFGNkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTAzNDUiLCJcdTFGNjNcdTAzOTkiLCJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTFGQkUiLCJcdTFGNkJcdTAzNDUiLCJcdTFGNkJcdTAzOTkiLCJcdTFGNkJcdTAzQjkiLCJcdTFGNkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MDM0NSIsIlx1MUY2NFx1MDM5OSIsIlx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MUZCRSIsIlx1MUY2Q1x1MDM0NSIsIlx1MUY2Q1x1MDM5OSIsIlx1MUY2Q1x1MDNCOSIsIlx1MUY2Q1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUwMzQ1IiwiXHUxRjY1XHUwMzk5IiwiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUxRkJFIiwiXHUxRjZEXHUwMzQ1IiwiXHUxRjZEXHUwMzk5IiwiXHUxRjZEXHUwM0I5IiwiXHUxRjZEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUwMzQ1IiwiXHUxRjY2XHUwMzk5IiwiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUxRkJFIiwiXHUxRjZFXHUwMzQ1IiwiXHUxRjZFXHUwMzk5IiwiXHUxRjZFXHUwM0I5IiwiXHUxRjZFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUwMzQ1IiwiXHUxRjY3XHUwMzk5IiwiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUxRkJFIiwiXHUxRjZGXHUwMzQ1IiwiXHUxRjZGXHUwMzk5IiwiXHUxRjZGXHUwM0I5IiwiXHUxRjZGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTAzNDUiLCJcdTFGNzBcdTAzOTkiLCJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTFGQkUiLCJcdTFGQkFcdTAzNDUiLCJcdTFGQkFcdTAzOTkiLCJcdTFGQkFcdTAzQjkiLCJcdTFGQkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTAzNDUiLCJcdTFGNzRcdTAzOTkiLCJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTFGQkUiLCJcdTFGQ0FcdTAzNDUiLCJcdTFGQ0FcdTAzOTkiLCJcdTFGQ0FcdTAzQjkiLCJcdTFGQ0FcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MDM0NSIsIlx1MUY3Q1x1MDM5OSIsIlx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MUZCRSIsIlx1MUZGQVx1MDM0NSIsIlx1MUZGQVx1MDM5OSIsIlx1MUZGQVx1MDNCOSIsIlx1MUZGQVx1MUZCRSIsfSwKKyAgICB9OworICAgIAorICAgIC8vIHRoaXMgaW5pdGlhbGl6ZXMgdGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZWQgdGhlIGNhc2UtZXF1aXZhbGVudHMKKworICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICAvLyBHYXRoZXIgdXAgdGhlIGV4Y2VwdGlvbnMgaW4gYSBmb3JtIHdlIGNhbiB1c2UKKyAgICAgICAgCisgICAgICAgIGlmICghR0VORVJBVEUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhjZXB0aW9uTGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGV4Y2VwdGlvbiA9IGV4Y2VwdGlvbkxpc3RbaV07CisgICAgICAgICAgICAgICAgU2V0IHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGhhcyB0byBiZSBzb21lIG1ldGhvZCB0byBkbyB0aGUgZm9sbG93aW5nLCBidXQgSSBjYW4ndCBmaW5kIGl0IGluIHRoZSBjb2xsZWN0aW9ucworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXhjZXB0aW9uLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYWRkKGV4Y2VwdGlvbltqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQoZXhjZXB0aW9uWzBdLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIGFsbCB0aGUgY2hhcmFjdGVycywgYW5kIGF0IGV2ZXJ5IGNhc2UgZm9sZCByZXN1bHQsCisgICAgICAgIC8vIHB1dCBhIHNldCBvZiBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCBtYXAgdG8gdGhhdCByZXN1bHQKKworICAgICAgICBib29sZWFuIGRlZmF1bHRtYXBwaW5nID0gdHJ1ZTsgLy8gZmFsc2UgZm9yIHR1cmtpc2gKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBTdHJpbmcgbWFwcGVkID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjcCwgZGVmYXVsdG1hcHBpbmcpOworICAgICAgICAgICAgaWYgKG1hcHBlZC5lcXVhbHMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1heExlbmd0aCA8IG1hcHBlZC5sZW5ndGgoKSkgbWF4TGVuZ3RoID0gbWFwcGVkLmxlbmd0aCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBoYXZlIGRpZmZlcmVudCBjYXNlIGZvbGRpbmcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IHMgPSAoU2V0KSBmcm9tQ2FzZUZvbGQuZ2V0KG1hcHBlZCk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICAgICAgcy5hZGQobWFwcGVkKTsgLy8gYWRkIHRoZSBjYXNlIGZvbGQgcmVzdWx0IGl0c2VsZgorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQobWFwcGVkLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KGNwLCBtYXBwZWQpOworICAgICAgICAgICAgdG9DYXNlRm9sZC5wdXQobWFwcGVkLCBtYXBwZWQpOyAvLyBhZGQgbWFwcGluZyB0byBzZWxmCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEVtaXQgdGhlIGZpbmFsIGRhdGEKKworICAgICAgICBpZiAoRFVNUCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtYXhMZW5ndGggPSAiICsgbWF4TGVuZ3RoKTsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbmZyb21DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpa2V5KSArICI6ICIpOworICAgICAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodG9IZXgyLnRyYW5zbGl0ZXJhdGUoKFN0cmluZylpdDIubmV4dCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG50b0Nhc2VGb2xkOiIpOworICAgICAgICAgICAgaXQgPSB0b0Nhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSB0b0Nhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZShrZXkpICsgIjogIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKHZhbHVlKSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBjb252ZXJ0IGFsbCB0aG9zZSBzZXRzIGludG8gbGluZWFyIGFycmF5cworICAgICAgICAvLyBXZSBjYW4ndCBkbyB0aGlzIGluIHBsYWNlIGluIEphdmEsIHNvIG1ha2UgYSB0ZW1wb3JhcnkgdGFyZ2V0IGFycmF5CisgICAgICAgIAorICAgICAgICAvLyBOb3RlOiBUaGlzIGNvdWxkIGJlIHRyYW5zZm9ybWVkIGludG8gYSBzaW5nbGUgYXJyYXksIHdpdGggb2Zmc2V0cyBpbnRvIGl0LgorICAgICAgICAvLyBNaWdodCBiZSBiZXN0IGNob2ljZSBpbiBDLgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1hcCBmcm9tQ2FzZUZvbGQyID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgU3RyaW5nW10gdGVtcCA9IG5ldyBTdHJpbmdbcy5zaXplKCldOworICAgICAgICAgICAgcy50b0FycmF5KHRlbXApOworICAgICAgICAgICAgZnJvbUNhc2VGb2xkMi5wdXQoa2V5LCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICBmcm9tQ2FzZUZvbGQgPSBmcm9tQ2FzZUZvbGQyOworCisgICAgICAgIC8vIFdlIGhhdmUgcHJvY2Vzc2VkIGV2ZXJ5dGhpbmcsIHNvIHRoZSBpdGVyYXRvciB3aWxsIG5vdyB3b3JrCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm9ybWFsbHkgT0ZGLiAKKyAgICAgICAgLy8gSXQgaXMgaGVyZSB0byBnZW5lcmF0ZSAodW5kZXIgdGhlIEdFTkVSQVRFIGZsYWcpIHRoZSBzdGF0aWMgZXhjZXB0aW9uIGxpc3QuCisgICAgICAgIC8vIEl0IG11c3QgYmUgYXQgdGhlIHZlcnkgZW5kIG9mIGluaXRpYWxpemF0aW9uLCBzbyB0aGF0IHRoZSBpdGVyYXRvciBpcyBmdW5jdGlvbmFsLgorICAgICAgICAvLyAoZWFzaWVzdCB0byBkbyBpdCB0aGF0IHdheSkKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKworICAgICAgICAgICAgLy8gZmlyc3QgZ2V0IHNtYWxsIHNldCBvZiBpdGVtcyB0aGF0IGhhdmUgbXVsdGlwbGUgY2hhcmFjdGVycworICAgICAgICAgICAgCisgICAgICAgICAgICBTZXQgbXVsdGljaGFycyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KGtleSkgPCAyKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBtdWx0aWNoYXJzLmFkZChrZXkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBub3cgd2Ugd2lsbCBnbyB0aHJvdWdoIGVhY2ggb2YgdGhlbS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAgICAgaXQgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGhlcmUgaXMgYSBuYXN0eSBjb21wbGljYXRpb24uIFRha2UgJ2ZmaScgbGlnYXR1cmUuIFdlCisgICAgICAgICAgICAgICAgLy8gY2FuJ3QganVzdCBjbG9zZSBpdCwgc2luY2Ugd2Ugd291bGQgbWlzcyB0aGUgY29tYmluYXRpb24KKyAgICAgICAgICAgICAgICAvLyB0aGF0IGluY2x1ZGVzIHRoZSAnZmknID0+ICJmaSIgbGlnYXR1cmUKKyAgICAgICAgICAgICAgICAvLyBzbyBmaXJzdCBkbyBhIHBhc3MgdGhyb3VnaCwgYW5kIGFkZCBzdWJzdHJpbmcgY29tYmluYXRpb25zCisgICAgICAgICAgICAgICAgLy8gd2UgY2FsbCB0aGlzIGEgJ3BhcnRpYWwgY2xvc3VyZScKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTZXQgcGFydGlhbENsb3N1cmUgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChrZXkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpID4gMikgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBtdWx0aUl0MiA9IG11bHRpY2hhcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG11bHRpSXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG90aGVyS2V5ID0gKFN0cmluZykgbXVsdGlJdDIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyS2V5Lmxlbmd0aCgpID49IGtleS5sZW5ndGgoKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm90IGNvbXBsZXRlbHkgZ2VuZXJhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB3b3JrcyBmb3IgdGhlIGFjdHVhbCBjYXNlZCBzdHVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgc2hvdWxkIHdvcmsgZm9yIGZ1dHVyZSBjaGFyYWN0ZXJzLCBzaW5jZSB3ZSB3b24ndCBoYXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9yZSBsaWdhdHVyZXMgJiBvdGhlciBvZGRpdGllcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBrZXkuaW5kZXhPZihvdGhlcktleSwgcG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kUG9zID0gcG9zICsgb3RoZXJLZXkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB3ZSBoYXZlIGEgcHJvcGVyIHN1YnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyBnZXQgdGhlIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNob2ljZXMgPSAoU3RyaW5nW10pIGZyb21DYXNlRm9sZC5nZXQob3RoZXJLZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBjaG9pY2VzLmxlbmd0aDsgKytpaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0Y2h3b3JrID0ga2V5LnN1YnN0cmluZygwLCBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNob2ljZXNbaWldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGtleS5zdWJzdHJpbmcoZW5kUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbENsb3N1cmUuYWRkKHBhdGNod29yayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIG5vdywgZm9yIGVhY2ggdGhpbmcgaW4gdGhlIHBhcnRpYWwgY2xvc3VyZSwgZ2V0IGl0cworICAgICAgICAgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBhbmQgYWRkIGl0IHRvIHRoZSBmaW5hbCByZXN1bHQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IGNsb3N1cmUgPSBuZXcgVHJlZVNldCgpOyAvLyB0aGlzIHdpbGwgYmUgdGhlIHJlYWwgY2xvc3VyZQorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHBhcnRpYWxJdCA9IHBhcnRpYWxDbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHBhcnRpYWxJdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTIgPSAoU3RyaW5nKSBwYXJ0aWFsSXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIGNsb3N1cmUKKyAgICAgICAgICAgICAgICAgICAgLypTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KGtleTIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNpLnJlc2V0KGNob2ljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAodGVtcCA9IGNpLm5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCBpdCBvdXQsIHNvIHRoYXQgaXQgY2FuIGJlIGN1dCBhbmQgcGFzdGVkIGJhY2sgaW50byB0aGlzIGRvY3VtZW50LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IGNsb3N1cmUuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlx0Ly8gIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGtleSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0e1wiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoa2V5KSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXCIiICsgdG9IZXgudHJhbnNsaXRlcmF0ZShpdGVtKSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9LCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vID09PT09PT09PT09PSBQUklWQVRFIENMQVNTIERBVEEgPT09PT09PT09PT09IAorICAgIAorICAgIC8vIHBpZWNlcyB0aGF0IHdlIHdpbGwgcHV0IHRvZ2V0aGVyCisgICAgLy8gaXMgbm90IGNoYW5nZWQgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgaW50IGNvdW50ID0gMDsKKyAgICBwcml2YXRlIFN0cmluZ1tdW10gdmFyaWFudHM7CisgICAgCisgICAgLy8gc3RhdGUgaW5mb3JtYXRpb24sIGNoYW5nZXMgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgYm9vbGVhbiBkb25lID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnRbXSBjb3VudHM7CisgICAgCisgICAgLy8gaW50ZXJuYWwgYnVmZmVyIGZvciBlZmZpY2llbmN5CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbmV4dEJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0gIAorCisgICAgLyoqCisgICAgICogUmVzZXQgdG8gZGlmZmVyZW50IHNvdXJjZS4gT25jZSByZXNldCwgdGhlIGl0ZXJhdGlvbiBzdGFydHMgZnJvbSB0aGUgYmVnaW5uaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB0byBnZXQgY2FzZSB2YXJpYW50cyBmb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIAorICAgICAgICAvLyBhbGxvY2F0ZSBhcnJheXMgdG8gc3RvcmUgcGllY2VzCisgICAgICAgIC8vIHVzaW5nIGxlbmd0aCBtaWdodCBiZSBzbGlnaHRseSB0b28gbG9uZywgYnV0IHdlIGRvbid0IGNhcmUgbXVjaAorICAgICAgICAKKyAgICAgICAgY291bnRzID0gbmV3IGludFtzb3VyY2UubGVuZ3RoKCldOworICAgICAgICB2YXJpYW50cyA9IG5ldyBTdHJpbmdbc291cmNlLmxlbmd0aCgpXVtdOworICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIHRoZSBzb3VyY2UsIGFuZCBicmVhayB1cCBpbnRvIHBpZWNlcworICAgICAgICAvLyBlYWNoIHBpZWNlIGJlY29tZXMgYW4gYXJyYXkgb2YgZXF1aXZhbGVudCB2YWx1ZXMKKyAgICAgICAgLy8gVE9ETzogY291bGQgb3B0aW1pemVkIHRoaXMgbGF0ZXIgdG8gY29hbGVzY2UgYWxsIHNpbmdsZSBzdHJpbmcgcGllY2VzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgcGllY2UgPSBudWxsOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpICs9IHBpZWNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGZpbmQgKmxvbmdlc3QqIG1hdGNoaW5nIHBpZWNlCisgICAgICAgICAgICBTdHJpbmcgY2FzZUZvbGQgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBleGFjdGx5IG9uZSBDUAorICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gaSArIG1heExlbmd0aDsKKyAgICAgICAgICAgICAgICBpZiAobWF4ID4gc291cmNlLmxlbmd0aCgpKSBtYXggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG1heDsgaiA+IGk7IC0taikgeworICAgICAgICAgICAgICAgICAgICBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcoaSwgaik7CisgICAgICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FzZUZvbGQgIT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpZiB3ZSBmYWlsLCBwaWNrIG9uZSBjb2RlIHBvaW50CisgICAgICAgICAgICBpZiAoY2FzZUZvbGQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIHZhcmlhbnRzW2NvdW50KytdID0gbmV3IFN0cmluZ1tdIHtwaWVjZX07IC8vIHNpbmdsZSBpdGVtIHN0cmluZworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IChTdHJpbmdbXSlmcm9tQ2FzZUZvbGQuZ2V0KGNhc2VGb2xkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXN0YXJ0IHRoZSBpdGVyYXRpb24gZnJvbSB0aGUgYmVnaW5uaW5nLCBidXQgd2l0aCBzYW1lIHNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgY291bnRzW2ldID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBjYXNlIHZhcmlhbnRzLgorICAgICAqIEByZXR1cm4gbmV4dCBjYXNlIHZhcmlhbnQuIEVhY2ggdmFyaWFudCB3aWxsIGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgc291cmNlIHdpbGwuCisgICAgICogV2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGRvbmUpIHJldHVybiBudWxsOworICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE8gT3B0aW1pemUgc28gd2Uga2VlcCB0aGUgcGllY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHNvIG11Y2ggY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgLy8gZ2V0IHRoZSByZXN1bHQsIGEgY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgbmV4dEJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBuZXh0QnVmZmVyLmFwcGVuZCh2YXJpYW50c1tpXVtjb3VudHNbaV1dKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZmluZCB0aGUgbmV4dCByaWdodCBzZXQgb2YgcGllY2VzIHRvIGNvbmNhdGVuYXRlCisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSBjb3VudC0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgY291bnRzW2ldKys7CisgICAgICAgICAgICBpZiAoY291bnRzW2ldIDwgdmFyaWFudHNbaV0ubGVuZ3RoKSBicmVhazsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIHdlIGdvIHRvbyBmYXIsIGJhaWwKKyAgICAgICAgCisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXh0QnVmZmVyLnRvU3RyaW5nKCk7ICAgICAgICAgICAgCisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHRlc3QsIGp1c3QgdG8gc2VlIGhvdyB0aGUgc3R1ZmYgd29ya3MuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7ImZpc3MiLCAiaFx1MDNhMyJ9OworICAgICAgICBDYXNlSXRlcmF0b3IgY2kgPSBuZXcgQ2FzZUl0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSB0ZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZzogIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGl0ZW0pKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgY2kucmVzZXQoaXRlbSk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvTmFtZS50cmFuc2xpdGVyYXRlKHRlbXApKTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbDogIiArIGNvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgY2FzZWxlc3MgY2hhcmFjdGVycyAtLSBjaGFyYWN0ZXJzIHdob3NlCisgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBpcyB0aGVtc2VsdmVzLgorCisgICAgICAgIFVuaWNvZGVTZXQgY2FzZWxlc3MgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBjaS5yZXNldChjcCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgU3RyaW5nIGZvbGQgPSBudWxsOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZm9sZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgaWYgKCsrY291bnQgPiAxKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb3VudD09MSAmJiBmb2xkLmVxdWFscyhjcCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlbGVzcy5hZGQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzID0gIiArIGNhc2VsZXNzLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgVW5pY29kZVNldCBub3RfbGMgPSBuZXcgVW5pY29kZVNldCgiWzpebGM6XSIpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBhID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgYS5zZXQobm90X2xjKTsKKyAgICAgICAgYS5yZW1vdmVBbGwoY2FzZWxlc3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIls6XmxjOl0gLSBjYXNlbGVzcyA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgYS5zZXQoY2FzZWxlc3MpOworICAgICAgICBhLnJlbW92ZUFsbChub3RfbGMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzIC0gWzpebGM6XSA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjIwNmMwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKQEAgLTAsMCArMSwxMzc1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkRpZmZlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgZnJhbWUgdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZXhwZXJpbWVudCB3aXRoIGtleWJvYXJkCisgKiB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGNsYXNzIGhhcyBhIG1haW4oKSBtZXRob2Qgc28gaXQgY2FuIGJlIHJ1bgorICogYXMgYW4gYXBwbGljYXRpb24uICBUaGUgZnJhbWUgY29udGFpbnMgYW4gZWRpdGFibGUgdGV4dCBjb21wb25lbnQKKyAqIGFuZCB1c2VzIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiB0byBwcm9jZXNzIGtleWJvYXJkIGV2ZW50cy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBEZW1vIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFNUQVJUX1RFWFQgPSAiKGN1dCxcdTAzQkFcdTAzQzVcdTAzQzQsXHUwNUQwLFx1MzBBRlx1MzBDOCxcdTRFODAsXHUwOTFBXHUwOTQxXHUwOTI0XHUwOTREKSI7CisKKyAgICBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCA9IG51bGw7CisgICAgU3RyaW5nIGZvbnROYW1lID0gIkFyaWFsIFVuaWNvZGUgTVMiOworICAgIGludCBmb250U2l6ZSA9IDE4OworICAgIAorICAgIAorCisgICAgLyoKKyAgICBib29sZWFuIGNvbXBvdW5kID0gZmFsc2U7CisgICAgVHJhbnNsaXRlcmF0b3JbXSBjb21wb3VuZFRyYW5zbGl0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW01BWF9DT01QT1VORF07CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUE9VTkQgPSAxMjg7CisgICAgaW50IGNvbXBvdW5kQ291bnQgPSAwOworICAgICovCisKKyAgICBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50IHRleHQgPSBudWxsOworCisgICAgTWVudSB0cmFuc2xpdE1lbnU7CisgICAgQ2hlY2tib3hNZW51SXRlbSB0cmFuc2xpdEl0ZW07CisgICAgQ2hlY2tib3hNZW51SXRlbSBub1RyYW5zbGl0SXRlbTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9fVFJBTlNMSVRFUkFUT1IgPSAiTm9uZSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBGcmFtZSBmID0gbmV3IERlbW8oNjAwLCAyMDApOworICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmLnNldFZpc2libGUodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIERlbW8oaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisgICAgICAgIHN1cGVyKCJUcmFuc2xpdGVyYXRpb24gRGVtbyIpOworCisgICAgICAgIGluaXRNZW51cygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gbmV3IFRyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQoKTsKKyAgICAgICAgRm9udCBmb250ID0gbmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICB0ZXh0LnNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgIHRleHQuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgdGV4dC5zZXRUZXh0KFNUQVJUX1RFWFQpOworICAgICAgICBhZGQodGV4dCk7CisKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoIkxhdGluLUdyZWVrIiwgbnVsbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRNZW51cygpIHsKKyAgICAgICAgTWVudUJhciBtYmFyOworICAgICAgICBNZW51IG1lbnU7CisgICAgICAgIE1lbnVJdGVtIG1pdGVtOworICAgICAgICAvL0NoZWNrYm94TWVudUl0ZW0gY2l0ZW07CisgICAgICAgIAorICAgICAgICBzZXRNZW51QmFyKG1iYXIgPSBuZXcgTWVudUJhcigpKTsKKyAgICAgICAgbWJhci5hZGQobWVudSA9IG5ldyBNZW51KCJGaWxlIikpOworICAgICAgICBtZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiUXVpdCIpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKy8qCisgICAgICAgIGZpbmFsIEl0ZW1MaXN0ZW5lciBzZXRUcmFuc2xpdGVyYXRvckxpc3RlbmVyID0gbmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRTdGF0ZUNoYW5nZSgpID09IEl0ZW1FdmVudC5ERVNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGxldCB0aGUgY3VycmVudCB0cmFuc2xpdGVyYXRvciBiZSBkZXNlbGVjdGVkLgorICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IHJlc2VsZWN0IGl0LgorICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFN0YXRlKHRydWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcG91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRkaW5nIGFuIGl0ZW0gdG8gYSBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVBZGRUb0NvbXBvdW5kKGl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtICE9IHRyYW5zbGl0SXRlbSkgeworICAgICAgICAgICAgICAgICAgICAvLyBEZXNlbGVjdCBwcmV2aW91cyBjaG9pY2UuICBEb24ndCBuZWVkIHRvIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0U3RhdGUodHJ1ZSkgb24gbmV3IGNob2ljZS4KKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3IoaXRlbS5nZXRMYWJlbCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisqLworICAgICAgICAvKgorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKHRyYW5zbGl0SXRlbSA9IG5vVHJhbnNsaXRJdGVtID0KKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ2hlY2tib3hNZW51SXRlbShOT19UUkFOU0xJVEVSQVRPUiwgdHJ1ZSkpOworICAgICAgICBub1RyYW5zbGl0SXRlbS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAvLyBDYW4ndCB1bmNoZWNrIE5vbmUgLS0gYW55IGFjdGlvbiBoZXJlIHNldHMgTm9uZSB0byB0cnVlCisgICAgICAgICAgICAgICAgc2V0Tm9UcmFuc2xpdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICB0cmFuc2xpdE1lbnUuYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICovCisKKy8qCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoY2l0ZW0gPSBuZXcgQ2hlY2tib3hNZW51SXRlbSgiQ29tcG91bmQiKSk7CisgICAgICAgIGNpdGVtLmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIENoZWNrYm94TWVudUl0ZW0gaXRlbSA9IChDaGVja2JveE1lbnVJdGVtKSBlLmdldFNvdXJjZSgpOworICAgICAgICAgICAgICAgIGlmIChlLmdldFN0YXRlQ2hhbmdlKCkgPT0gSXRlbUV2ZW50LkRFU0VMRUNURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgY29tcG91bmQgZ2V0cyBkZXNlbGVjdGVkLCB0aGVuIHNlbGVjdCBOT05FCisgICAgICAgICAgICAgICAgICAgIHNldE5vVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFjb21wb3VuZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTd2l0Y2hpbmcgZnJvbSBub24tY29tcG91bmQgdG8gY29tcG91bmQKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8TUFYX0NPTVBPVU5EOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kVHJhbnNsaXRbaV0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkU2VwYXJhdG9yKCk7CisgICAgICAgKi8KKworICAgICAgICAvKgorICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9Z2V0U3lzdGVtVHJhbnNsaXRlcmF0b3JOYW1lcygpLmVsZW1lbnRzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoY2l0ZW0gPSBuZXcgQ2hlY2tib3hNZW51SXRlbShzKSk7CisgICAgICAgICAgICBjaXRlbS5hZGRJdGVtTGlzdGVuZXIoc2V0VHJhbnNsaXRlcmF0b3JMaXN0ZW5lcik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIE1lbnUgZm9udE1lbnUgPSBuZXcgTWVudSgiRm9udCIpOworICAgICAgICBTdHJpbmdbXSBmb250cyA9IEdyYXBoaWNzRW52aXJvbm1lbnQuZ2V0TG9jYWxHcmFwaGljc0Vudmlyb25tZW50KCkuZ2V0QXZhaWxhYmxlRm9udEZhbWlseU5hbWVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9udHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1lbnVJdGVtIG1JdGVtID0gbmV3IE1lbnVJdGVtKGZvbnRzW2ldKTsKKyAgICAgICAgICAgIG1JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBGb250QWN0aW9uTGlzdGVuZXIoZm9udHNbaV0pKTsKKyAgICAgICAgICAgIGZvbnRNZW51LmFkZChtSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbWJhci5hZGQoZm9udE1lbnUpOworICAgICAgICAKKyAgICAgICAgTWVudSBzaXplTWVudSA9IG5ldyBNZW51KCJTaXplIik7CisgICAgICAgIGludFtdIHNpemVzID0gezksIDEwLCAxMiwgMTQsIDE4LCAyNCwgMzYsIDQ4LCA3Mn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1lbnVJdGVtIG1JdGVtID0gbmV3IE1lbnVJdGVtKCIiICsgc2l6ZXNbaV0pOworICAgICAgICAgICAgbUl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IFNpemVBY3Rpb25MaXN0ZW5lcihzaXplc1tpXSkpOworICAgICAgICAgICAgc2l6ZU1lbnUuYWRkKG1JdGVtKTsKKyAgICAgICAgfQorICAgICAgICBtYmFyLmFkZChzaXplTWVudSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBtYmFyLmFkZCh0cmFuc2xpdE1lbnUgPSBuZXcgTWVudSgiVHJhbnNsaXRlcmF0b3IiKSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNvbnZlcnRTZWxlY3Rpb25JdGVtID0gbmV3IE1lbnVJdGVtKCJUcmFuc2xpdGVyYXRlIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX0spKSk7CisgICAgICAgIGNvbnZlcnRTZWxlY3Rpb25JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQmF0Y2hUcmFuc2xpdGVyYXRlKHRyYW5zbGl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKHN3YXBTZWxlY3Rpb25JdGVtID0gbmV3IE1lbnVJdGVtKCJSZXZlcnNlIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX1MpKSk7CisgICAgICAgIHN3YXBTZWxlY3Rpb25JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52OworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGludiA9IHRyYW5zbGl0LmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24geCkgeworICAgICAgICAgICAgICAgICAgICBpbnYgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibnVsbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcihpbnYuZ2V0SUQoKSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChjb252ZXJ0VHlwaW5nSXRlbSA9IG5ldyBNZW51SXRlbSgiTm8gVHlwaW5nIENvbnZlcnNpb24iLAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19UKSkpOworICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmICghdHJhbnNsaXRlcmF0ZVR5cGluZykgeworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgICAgICAgICAgICAgY29udmVydFR5cGluZ0l0ZW0uc2V0TGFiZWwoIk5vIFR5cGluZyBDb252ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5zZXRMYWJlbCgiQ29udmVydCBUeXBpbmciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJhbnNsaXRlcmF0ZVR5cGluZyA9ICF0cmFuc2xpdGVyYXRlVHlwaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoaGlzdG9yeU1lbnUgPSBuZXcgTWVudSgiUmVjZW50IikpOworICAgICAgICAKKyAgICAgICAgaGVscERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJTaW1wbGUgRGVtbyIsICJJbnN0cnVjdGlvbnMiLAorICAgICAgICAgICAiQ1RMIEEsIFgsIEMsIFYgaGF2ZSBjdXN0b21hcnkgbWVhbmluZ3MuXG4iCisgICAgICAgICArICJBcnJvdyBrZXlzLCBkZWxldGUgYW5kIGJhY2tzcGFjZSB3b3JrLlxuIgorICAgICAgICAgKyAiVG8gZ2V0IGEgY2hhcmFjdGVyIGZyb20gaXRzIGNvbnRyb2wgcG9pbnQsIHR5cGUgdGhlIGhleCwgdGhlbiBoaXQgQ1RMIFEiCisgICAgICAgICk7CisgICAgICAgIGhlbHBEaWFsb2cuZ2V0QXJlYSgpLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgCisgICAgICAgIE1lbnUgaGVscE1lbnU7CisgICAgICAgIG1iYXIuYWRkKGhlbHBNZW51ID0gbmV3IE1lbnUoIkV4dHJhcyIpKTsKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZWxwIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhlbHBEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsgICAKKyAgICAgICAgCisgICAgICAgIGhleERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJIZXggRW50cnkiLCAiVXNlIFUrLi4uLCBcXHUuLi4sIFxceHsuLi59LCBvciAmI3guLi47IiwKKyAgICAgICAgICAgIlxcdTAwRTEiCisgICAgICAgICk7CisgICAgICAgIEJ1dHRvbiBidXR0b24gPSBuZXcgQnV0dG9uKCJJbnNlcnQiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFZhbHVlID0gaGV4RGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgdGV4dC5pbnNlcnRUZXh0KGZyb21IZXgudHJhbnNsaXRlcmF0ZShoZXhWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgaGV4RGlhbG9nLmdldEJvdHRvbSgpLmFkZChidXR0b24pOworICAgICAgICAKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZXguLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfSCkpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoZXhEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yCisgICAgICAgIAorICAgICAgICBjb21wb3VuZERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJDb21wb3VuZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiW15cXHUwMDAwLVxcdTAwRkZdIGhleCIKKyAgICAgICAgKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiU2V0Iik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb21wb3VuZCA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kID0gY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoY29tcG91bmQsIG51bGwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLnNldFRleHQoY29tcG91bmQgKyAiXG4iICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjb21wb3VuZERpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIk11bHRpcGxlLi4uIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX00pKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFJ1bGVCYXNlZCBUcmFuc2xpdGVyYXRvcgorICAgICAgICAKKyAgICAgICAgcnVsZXNEaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiUnVsZS1CYXNlZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiKFtBLVpdKSA+ICZIZXgoJDEpICZOYW1lKCQxKTtcclxuIiAKKyAgICAgICAgICAgICsgIiZIZXgtQW55KCQxKSA8ICgnXFwnIFt1VV0gW2EtZkEtRjAtOV0qKTtcclxuIiAKKyAgICAgICAgICAgICsgIiZOYW1lLUFueSgkMSkgPCAoJ3snIFteXFx9XSogJ30nKTsiCisgICAgICAgICk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlNldCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tcG91bmQgPSAiIjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IHJ1bGVzRGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHJ1bGVJZC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKGNvbXBvdW5kLCBpZCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5nZXRBcmVhKCkuc2V0VGV4dChjb21wb3VuZCArICJcbiMiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgcnVsZUlkID0gbmV3IFRleHRGaWVsZCgidGVzdDEiLCAyMCk7CisgICAgICAgIExhYmVsIHRlbXAgPSBuZXcgTGFiZWwoIiBOYW1lOiIpOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQodGVtcCk7CisgICAgICAgIHJ1bGVzRGlhbG9nLmdldEJvdHRvbSgpLmFkZChydWxlSWQpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gUnVsZXMuLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfUikpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5zaG93KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gRmlsZS4uLiIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19GKSkpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFJVTEVfRklMRSkpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiVGVzdCBGaWxlLi4uIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFRFU1RfRklMRSkpOworICAgICAgICAKKyAgICAgICAgLy8gRmxlc2ggb3V0IHRoZSBtZW51IHdpdGggdGhlIGluc3RhbGxlZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIEl0ZXJhdG9yIHNvdXJjZXMgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHNvdXJjZXMubmV4dCgpOworICAgICAgICAgICAgSXRlcmF0b3IgdGFyZ2V0cyA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSkpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBNZW51IHRhcmdldE1lbnUgPSBuZXcgTWVudShzb3VyY2UpOworICAgICAgICAgICAgd2hpbGUodGFyZ2V0cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgU2V0IHZhcmlhbnRTZXQgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudFNldC5zaXplKCkgPCAyKSB7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtID0gbmV3IE1lbnVJdGVtKHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihzb3VyY2UgKyAiLSIgKyB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWVudS5hZGQobWl0ZW0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBNZW51IHZhcmlhbnRNZW51ID0gbmV3IE1lbnUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUodmFyaWFudHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZW51TmFtZSA9IHZhcmlhbnQubGVuZ3RoKCkgPT0gMCA/ICI8ZGVmYXVsdD4iIDogdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCI8IiArIHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQgKyAiPiwgPCIgKyBtZW51TmFtZSArICI+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbSA9IG5ldyBNZW51SXRlbShtZW51TmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoc291cmNlICsgIi0iICsgdGFyZ2V0ICsgIi8iICsgdmFyaWFudCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudE1lbnUuYWRkKG1pdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZW51LmFkZCh2YXJpYW50TWVudSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJhbnNsaXRNZW51LmFkZCh0YXJnZXRNZW51KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgUlVMRV9GSUxFID0gMCwgVEVTVF9GSUxFID0gMTsKKyAgICAvLworICAgIHN0YXRpYyBjbGFzcyBGaWxlTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIERlbW8gZnJhbWU7CisgICAgICAgIGludCBjaG9pY2U7CisgICAgICAgIAorICAgICAgICBGaWxlTGlzdGVuZXIoRGVtbyBmcmFtZSwgaW50IGNob2ljZSkgeworICAgICAgICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lOworICAgICAgICAgICAgdGhpcy5jaG9pY2UgPSBjaG9pY2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBmcmFtZS50cmFuc2xpdC5nZXRJRCgpOworICAgICAgICAgICAgaW50IHNsYXNoUG9zID0gaWQuaW5kZXhPZignLycpOworICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgICAgIGlmIChzbGFzaFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9ICJfIiArIGlkLnN1YnN0cmluZyhzbGFzaFBvcysxKTsKKyAgICAgICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygwLCBzbGFzaFBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEZpbGVEaWFsb2cgZmlsZURpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKGZyYW1lLCAiSW5wdXQgRmlsZSIpOworICAgICAgICAgICAgZmlsZURpYWxvZy5zZXRGaWxlKCJUZXN0XyIgKyBpZCArICIudHh0Iik7CisgICAgICAgICAgICBmaWxlRGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IGZpbGVEaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVEaXJlY3RvcnkgPSBmaWxlRGlhbG9nLmdldERpcmVjdG9yeSgpOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShmaWxlRGlyZWN0b3J5LCBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaG9pY2UgPT0gUlVMRV9GSUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWQgc3R1ZmYgaW50byBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywgIlVURjgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsgLy8gc3RyaXAgQk9NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnIuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGZpbGUgbmFtZSBpbnRvIGlkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUuc3RhcnRzV2l0aCgiVHJhbnNsaXRlcmF0b3JfIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnN1YnN0cmluZygiVHJhbnNsaXRlcmF0b3JfIi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gZmlsZU5hbWUuaW5kZXhPZignXycpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lLnN1YnN0cmluZygwLCBwb3MpICsgIi0iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MyID0gZmlsZU5hbWUuaW5kZXhPZignXycsIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zMiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gZmlsZU5hbWUuc3Vic3RyaW5nKHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArPSBmaWxlTmFtZS5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi8iICsgZmlsZU5hbWUuc3Vic3RyaW5nKHBvczIgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpZC5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSBpZCA9IGlkLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLnNldFRyYW5zbGl0ZXJhdG9yKGJ1ZmZlci50b1N0cmluZygpLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hvaWNlID09IFRFU1RfRklMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ2VuVGVzdEZpbGUoZiwgZnJhbWUudHJhbnNsaXQsIHZhcmlhbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGUyLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByb2JsZW0gb3BlbmluZy9yZWFkaW5nOiAiICsgZmlsZURpcmVjdG9yeSArICIsICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsZURpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICBib29sZWFuIHRyYW5zbGl0ZXJhdGVUeXBpbmcgPSB0cnVlOworICAgIFRyYW5zbGl0ZXJhdG9yIGZyb21IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGV4LUFueSIpOworICAgIEluZm9EaWFsb2cgaGVscERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGhleERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGNvbXBvdW5kRGlhbG9nOworICAgIEluZm9EaWFsb2cgcnVsZXNEaWFsb2c7CisgICAgVGV4dEZpZWxkIHJ1bGVJZDsKKyAgICBNZW51SXRlbSBjb252ZXJ0U2VsZWN0aW9uSXRlbSA9IG51bGw7CisgICAgTWVudUl0ZW0gc3dhcFNlbGVjdGlvbkl0ZW0gPSBudWxsOworICAgIE1lbnVJdGVtIGNvbnZlcnRUeXBpbmdJdGVtID0gbnVsbDsKKyAgICBNZW51IGhpc3RvcnlNZW51OworICAgIE1hcCBoaXN0b3J5TWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBTZXQgaGlzdG9yeVNldCA9IG5ldyBUcmVlU2V0KG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgICAgIE1lbnVJdGVtIGFhID0gKE1lbnVJdGVtKWE7CisgICAgICAgICAgICAgICAgTWVudUl0ZW0gYmIgPSAoTWVudUl0ZW0pYjsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWEuZ2V0TGFiZWwoKS5jb21wYXJlVG8oYmIuZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAvLyBBREQgRmFjdG9yeSBzaW5jZSBvdGhlcndpc2UgZ2V0SW52ZXJzZSBibG93cyBvdXQKKyAgICBzdGF0aWMgY2xhc3MgRHVtbXlGYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBTaW5jZSBUcmFuc2xpdGVyYXRvcnMgYXJlIGltbXV0YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9uZSBvbiBzZXQgJiBnZXQKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmluZzogIiArIElEICsgIiwgIiArIHQudG9SdWxlcyh0cnVlKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQoSUQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50QnJlYWtzKGludCBudW0sIFN0cmluZyB0ZXN0U291cmNlLCBCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgaW50IGxhc3RQb3MgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHBvcyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gQnJlYWtJdGVyYXRvci5ET05FKSBicmVhazsKKyAgICAgICAgICAgIHJlc3VsdCArPSB0ZXN0U291cmNlLnN1YnN0cmluZyhsYXN0UG9zLCBwb3MpICsgIiYiOworICAgICAgICAgICAgbGFzdFBvcyA9IHBvczsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwb3MpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCIgKyBudW0gKyAiOiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcHJpbnRJdGVyYXRpb24oaW50IG51bSwgU3RyaW5nIHRlc3RTb3VyY2UsIENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoY2ggPT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICByZXN1bHQgKz0gY2ggKyAiKCIgKyBjaS5nZXRJbmRleCgpICsgIikiOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCIgKyBudW0gKyAiOiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VzKCkgeworICAgICAgICBTdHJpbmdbXSBsaXN0ID0geyJMYXRpbi1UaGFpTG9naWNhbCIsICJUaGFpTG9naWNhbC1MYXRpbiIsICJUaGFpLVRoYWlMb2dpY2FsIiwgIlRoYWlMb2dpY2FsLVRoYWkifTsKKyAgICAgICAgVW5pY29kZVNldCBhbGwgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobGlzdFtpXSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNyYyA9IHRyLmdldFNvdXJjZVNldCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxpc3RbaV0gKyAiOiAiICsgc3JjLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICBhbGwuYWRkQWxsKHNyYyk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBbGw6ICIgKyBhbGwudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgVW5pY29kZVNldCByZW0gPSBuZXcgVW5pY29kZVNldCgiW1s6bGF0aW46XVs6dGhhaTpdXSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pc3NpbmcgZnJvbSBbOmxhdGluOl1bOnRoYWk6XTogIiArIGFsbC5yZW1vdmVBbGwocmVtKS50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KKyAgICAKKyAgICAvLyAyMDBFO0xFRlQtVE8tUklHSFQgTUFSSztDZjswO0w7Ozs7O047Ozs7OworCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHRpdGxlID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoInRpdGxlIik7CisgICAgc3RhdGljIFN0cmluZyBoZXhBbmROYW1lUnVsZXMgPSAiICAgIChbOmM6XSkgPiBcXHUyMDBFICZoZXgvdW5pY29kZSgkMSkgJyAoICkgJyAmbmFtZSgkMSkgXFx1MjAwRSAnICc7IgorICAgICAgICArICIoWzptYXJrOl0pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCAnIFxcdTIwMEUgXHUyNUNDICQxIFxcdTIwMEUgJyApICcgJm5hbWUoJDEpIFxcdTIwMEUgJyAnOyIKKyAgICAgICAgKyAiKC4pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCAnIFxcdTIwMEUgJDEgXFx1MjAwRSAnICkgJyAmbmFtZSgkMSkgJyAnIFxcdTIwMEU7IjsKKworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBoZXhBbmROYW1lID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhbnktaGV4QW5kTmFtZSIsIAorICAgICAgICBoZXhBbmROYW1lUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgIAorCisKKyAgICAvL3N0YXRpYyBUcmFuc2xpdGVyYXRvciB1cHBlciA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ1cHBlciIpOworICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBOT05FID0gMCwgVElUTEVXT1JEID0gMSwgVElUTEVMSU5FID0gMjsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBnZW5UZXN0RmlsZShGaWxlIHNvdXJjZUZpbGUsIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWRpbmc6ICIgKyBzb3VyY2VGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlSW5wdXRTdHJlYW0oc291cmNlRmlsZSksICJVVEYtOCIpKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRGaWxlID0gc291cmNlRmlsZS5nZXRDYW5vbmljYWxQYXRoKCk7CisgICAgICAgICAgICBpbnQgZG90UG9zID0gdGFyZ2V0RmlsZS5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgaWYgKGRvdFBvcyA+PSAwKSB0YXJnZXRGaWxlID0gdGFyZ2V0RmlsZS5zdWJzdHJpbmcoMCxkb3RQb3MpOworICAgICAgICAgICAgdGFyZ2V0RmlsZSArPSB2YXJpYW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlICsgIi5odG1sIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFByaW50V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKSwgIlVURi04IikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIGRpcmVjdGlvbiA9ICIiOworICAgICAgICAgICAgU3RyaW5nIGlkID0gdHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgICAgIGlmIChpZC5pbmRleE9mKCJBcmFiaWMiKSA+PSAwIHx8IGlkLmluZGV4T2YoIkhlYnJldyIpID49IDApIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAiIGRpcmVjdGlvbjogcnRsOyI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIHRlc3RSb3VuZFRyaXAgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBnZW5lcmF0ZVNldHMgPSB0cnVlOworICAgICAgICAgICAgaWYgKGlkLnN0YXJ0c1dpdGgoIkhhbi0iKSB8fCBpZC5zdGFydHNXaXRoKCJqYS0iKSkgeworICAgICAgICAgICAgICAgIHRlc3RSb3VuZFRyaXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZVNldHMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHN0eWxlPjwhLS0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZCwgdGggICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBib3JkZXI6IDFweCBzb2xpZCBibGFjayB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQucyAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7IiArIGRpcmVjdGlvbiArICIgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnIgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDQ0NDOyIgKyBkaXJlY3Rpb24gKyAiIH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC5uICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzsgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnRpdGxlICAgICAgIHsgYm9yZGVyOiAwcHggc29saWQgYmxhY2t9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigic3Bhbi5kICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGNjY2NiB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigic3Bhbi5yICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogIzY2RkY2NiB9Iik7CisKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJib2R5ICAgICAgICAgeyBmb250LWZhbWlseTogJ0FyaWFsIFVuaWNvZGUgTVMnLCAnTHVjaWRhIFNhbnMgVW5pY29kZScsIEFyaWFsLCBzYW5zLXNlcmlmOyBtYXJnaW46IDUgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIi0tPjwvc3R5bGU+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRpdGxlPiIgKyBpZCArICIgVHJhbnNsaXRlcmF0aW9uIENoZWNrPC90aXRsZT48L2hlYWQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJvZHkgYmdjb2xvcj0nI0ZGRkZGRic+PHA+U2VlIDxhIGhyZWY9J1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwnPlRlc3RfSW5zdHJ1Y3Rpb25zLmh0bWw8L2E+IGZvciBkZXRhaWxzLjwvcD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGFibGU+Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vb3V0LnByaW50bG4oIjx0cj48dGggd2lkdGg9JzMzJSc+VGhhaTwvdGg+PHRoIHdpZHRoPSczMyUnPkxhdGluPC90aD48dGggd2lkdGg9JzMzJSc+VGhhaTwvdGg+PC90cj4iKTsKKyAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0bCA9IHRyYW5zbGl0OworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgbHQgPSB0bC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGx0RmlsdGVyID0gdGwuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgbHRGaWx0ZXIuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbOl5MdTpdIikpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGxGaWx0ZXIgPSBsdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICB0bEZpbHRlci5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIls6Xkx1Ol0iKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIls6Xkx1Ol0iICsgIGx0LmdldElEKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIHNlbnRlbmNlQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZSB0aXRsZVNldHRpbmcgPSBUSVRMRUxJTkU7CisgICAgICAgICAgICBib29sZWFuIHVwcGVyZmlsdGVyID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsgLy8gcmVtb3ZlIEJPTQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PSAnIycpIGNvbnRpbnVlOyAvLyBjb21tZW50cworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsaW5lLmVxdWFscygiQFRJVExFQ0FTRUAiKSkgeworICAgICAgICAgICAgICAgICAgICB0aXRsZVNldHRpbmcgPSBUSVRMRVdPUkQ7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkIGNvbHNwYW49JzInIGNsYXNzPSd0aXRsZSc+PGI+TmFtZXM8L2I+PC90ZD48L3RyPiIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmUuZXF1YWxzKCJAVVBQRVJGSUxURVJAIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdXBwZXJmaWx0ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgiQFNFVCIpKSB7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KGxpbmUuc3Vic3RyaW5nKDQpLnRyaW0oKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkIGNvbHNwYW49JzInIGNsYXNzPSd0aXRsZSc+PGI+Q2hhcmFjdGVyczwvYj48L3RkPjwvdHI+Iik7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iocyk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlbnRlbmNlVG9UYWJsZShvdXQsIGl0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdC5zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9ORSwgdHJ1ZSwgdGVzdFJvdW5kVHJpcCwgZmlyc3QsIHRsLCBsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2VudGVuY2VCcmVhay5zZXRUZXh0KGxpbmUpOworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IHNlbnRlbmNlQnJlYWsubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID09IEJyZWFrSXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb3JlU2VudGVuY2UgPSBsaW5lLnN1YnN0cmluZyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkNvcmU6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShjb3JlU2VudGVuY2UpKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpbnQgb2xkUG9zID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG9sZFBvcyA8IGNvcmVTZW50ZW5jZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFjaywgYmVjYXVzZSBzZW50ZW5jZSBkb2Vzbid0IHNlZW0gdG8gYmUgd29ya2luZyByaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGNvcmVTZW50ZW5jZS5pbmRleE9mKCIuICIsIG9sZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gY29yZVNlbnRlbmNlLmxlbmd0aCgpOyBlbHNlIHBvcyA9IHBvcysyOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvczIgPSBjb3JlU2VudGVuY2UuaW5kZXhPZignXHUzMDAyJywgb2xkUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgcG9zMiA9IGNvcmVTZW50ZW5jZS5sZW5ndGgoKTsgZWxzZSBwb3MyID0gcG9zMiArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zID4gcG9zMikgcG9zID0gcG9zMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZW50ZW5jZSA9IGNvcmVTZW50ZW5jZS5zdWJzdHJpbmcob2xkUG9zLCBwb3MpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTZW50ZW5jZTogIiArIGhleC50cmFuc2xpdGVyYXRlKGNvcmVTZW50ZW5jZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUG9zID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZW50ZW5jZVRvVGFibGUob3V0LCBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNldHRpbmcsIGZhbHNlLCB0ZXN0Um91bmRUcmlwLCBmaXJzdCwgdGwsIGx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RhYmxlPjwvYm9keT4iKTsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhlIHNvdXJjZS90YXJnZXQgc2V0cworICAgICAgICAgICAgaWYgKGdlbmVyYXRlU2V0cykgeworICAgICAgICAgICAgICAgIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlICsgIl9TZXRzLmh0bWwiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpLCAiVVRGLTgiKSkpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxzdHlsZT48IS0tIik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImJvZHkgICAgICAgICB7IGZvbnQtZmFtaWx5OiAnQXJpYWwgVW5pY29kZSBNUycsICdMdWNpZGEgU2FucyBVbmljb2RlJywgQXJpYWwsIHNhbnMtc2VyaWY7IG1hcmdpbjogNSB9Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIi0tPjwvc3R5bGU+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0aXRsZT4iICsgaWQgKyAiIFRyYW5zbGl0ZXJhdGlvbiBTZXRzPC90aXRsZT48L2hlYWQ+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPiIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBkYXNoUG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgICAgIGludCBzbGFzaFBvcyA9IGlkLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICBpZiAoc2xhc2hQb3MgPCAwKSBzbGFzaFBvcyA9IGlkLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU3VwZXIgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gaWQuc3Vic3RyaW5nKDAsZGFzaFBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiamEiKSkgc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuOl1bOmhpcmFnYW5hOl1bOmthdGFrYW5hOl1dIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ugc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIHRlbXAgKyAiOl1bOk1uOl1bOk1lOl1dIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRTdXBlciA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIGlkLnN1YnN0cmluZyhkYXNoUG9zKzEsIHNsYXNoUG9zKSArICI6XVs6TW46XVs6TWU6XV0iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbmZkU3R5bGUgPSBDTE9TRV9DQVNFIHwgQ0xPU0VfRkxBVFRFTiB8IENMT1NFX0NBTk9OSUNBTDsKKyAgICAgICAgICAgICAgICBpbnQgbmZrZFN0eWxlID0gbmZkU3R5bGUgfCBDTE9TRV9DT01QQVRJQklMSVRZOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5vbmU8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBudWxsLCBudWxsLCAwKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHA+PGI+TkZEPC9iPjwvcD4iKTsKKyAgICAgICAgICAgICAgICBzaG93U2V0cyhvdXQsIHRyYW5zbGl0LCBsdCwgc291cmNlU3VwZXIsIHRhcmdldFN1cGVyLCBuZmRTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5GS0Q8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBzb3VyY2VTdXBlciwgdGFyZ2V0U3VwZXIsIG5ma2RTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdWw+PC9ib2R5PiIpOworICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIFdyaXRpbmciKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRkU2VudGVuY2VUb1RhYmxlKFByaW50V3JpdGVyIG91dCwgU3RyaW5nIHNlbnRlbmNlLCAKKyAgICAgICAgICAgIGJ5dGUgdGl0bGVTZXR0aW5nLCBib29sZWFuIGFkZE5hbWUsIGJvb2xlYW4gdGVzdFJvdW5kVHJpcCwgYm9vbGVhbiBmaXJzdCwKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRsLCBUcmFuc2xpdGVyYXRvciBsdCkgeworICAgICAgICBpZiAoc2VudGVuY2UubGVuZ3RoKCkgPT0gMCkgcmV0dXJuOyAvLyBza2lwIGVtcHR5IGxpbmVzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgb3JpZ2luYWxTaG93ID0gc2VudGVuY2U7CisgICAgICAgIFN0cmluZyBsYXRpbjsKKyAgICAgICAgbGF0aW4gPSB0bC50cmFuc2xpdGVyYXRlKHNhdmVBc2NpaS50cmFuc2xpdGVyYXRlKHNlbnRlbmNlKSk7CisKKyAgICAgICAgU3RyaW5nIGxhdGluU2hvdyA9IGxhdGluOworICAgICAgICBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFV09SRCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGUudHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgIH0gZWxzZSBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFTElORSkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGVjYXNlRmlyc3RXb3JkKGxhdGluU2hvdyk7CisgICAgICAgIH0KKyAgICAgICAgbGF0aW5TaG93ID0gcmVzdG9yZUFzY2lpLnRyYW5zbGl0ZXJhdGUobGF0aW5TaG93KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgcmV2ZXJzZTsKKyAgICAgICAgcmV2ZXJzZSA9IHJlc3RvcmVBc2NpaS50cmFuc2xpdGVyYXRlKGx0LnRyYW5zbGl0ZXJhdGUobGF0aW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgTkZLRFNlbnRlbmNlID0gTm9ybWFsaXplci5ub3JtYWxpemUoc2VudGVuY2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIFN0cmluZyBORktETGF0aW4gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShsYXRpbiwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgU3RyaW5nIE5GS0RSZXZlcnNlID0gTm9ybWFsaXplci5ub3JtYWxpemUocmV2ZXJzZSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsYXRpblNob3cubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gIjxpPmVtcHR5PC9pPiI7CisgICAgICAgIH0gZWxzZSBpZiAoTkZLRFNlbnRlbmNlLmVxdWFscyhORktETGF0aW4pKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSAiPHNwYW4gY2xhc3M9J3InPiIgKyBsYXRpblNob3cgKyAiPC9zcGFuPiI7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJldmVyc2VTaG93ID0gcmV2ZXJzZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXN0Um91bmRUcmlwICYmICFORktEUmV2ZXJzZS5lcXVhbHMoTkZLRFNlbnRlbmNlKSkgeworICAgICAgICAgICAgaW50IG1pbkxlbiA9IHJldmVyc2UubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobWluTGVuID4gc2VudGVuY2UubGVuZ3RoKCkpIG1pbkxlbiA9IHNlbnRlbmNlLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWluTGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV2ZXJzZS5jaGFyQXQoaSkgIT0gc2VudGVuY2UuY2hhckF0KGkpKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vb3JpZ2luYWxTaG93ID0gc2VudGVuY2Uuc3Vic3RyaW5nKDAsaSkgKyAiPHNwYW4gY2xhc3M9J2QnPiIgKyBzZW50ZW5jZS5zdWJzdHJpbmcoaSkgKyAiPC9zcGFuPiI7CisgICAgICAgICAgICByZXZlcnNlU2hvdyA9IHJldmVyc2VTaG93Lmxlbmd0aCgpID09IDAgCisgICAgICAgICAgICAgICAgPyAiPGk+ZW1wdHk8L2k+IiAKKyAgICAgICAgICAgICAgICAvLzogcmV2ZXJzZS5zdWJzdHJpbmcoMCxpKSArICI8c3BhbiBjbGFzcz0nZCc+IiArIHJldmVyc2Uuc3Vic3RyaW5nKGkpICsgIjwvc3Bhbj4iOworICAgICAgICAgICAgICAgIDogc2hvd0RpZmZlcmVuY2Uoc2VudGVuY2UsIHJldmVyc2UpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J3MnIiArIChmaXJzdCA/ICIgd2lkdGg9JzUwJSc+IiA6ICI+IikgKyBvcmlnaW5hbFNob3cgCisgICAgICAgICAgICAgICAgKyAiPC90ZD48dGQgcm93U3Bhbj0nMic+IiArIGxhdGluU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSdyJz4iICsgcmV2ZXJzZVNob3cKKyAgICAgICAgICAgICAgICArICI8L3RkPjwvdHI+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0ncyciICsgKGZpcnN0ID8gIiB3aWR0aD0nNTAlJz4iIDogIj4iKSArIG9yaWdpbmFsU2hvdyAKKyAgICAgICAgICAgICAgICArICI8L3RkPjx0ZD4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIGlmIChhZGROYW1lKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSBoZXhBbmROYW1lLnRyYW5zbGl0ZXJhdGUobGF0aW4pOworICAgICAgICAgICAgaWYgKGxhdGluU2hvdy5sZW5ndGgoKSA9PSAwKSBsYXRpblNob3cgPSAiPGk+ZW1wdHk8L2k+IjsKKyAgICAgICAgICAgIG9yaWdpbmFsU2hvdyA9IGhleEFuZE5hbWUudHJhbnNsaXRlcmF0ZShzZW50ZW5jZSk7CisgICAgICAgICAgICBpZiAob3JpZ2luYWxTaG93Lmxlbmd0aCgpID09IDApIG9yaWdpbmFsU2hvdyA9ICI8aT5lbXB0eTwvaT4iOworCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0nbic+IiArIG9yaWdpbmFsU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PHRkIGNsYXNzPSduJz4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkPjwvdGQ+PC90cj4iKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgc2hvd0RpZmZlcmVuY2UoU3RyaW5nIGFzLCBTdHJpbmcgYnMpIHsKKyAgICAgICAgRGlmZmVyIGRpZmZlciA9IG5ldyBEaWZmZXIoMzAwLCAzKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG1heCA9IGFzLmxlbmd0aCgpOworICAgICAgICBpZiAobWF4IDwgYnMubGVuZ3RoKCkpIG1heCA9IGJzLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBtYXg7ICsraikgeworICAgICAgICAgICAgaWYgKGogPCBhcy5sZW5ndGgoKSkgZGlmZmVyLmFkZEEoYXMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgaWYgKGogPCBicy5sZW5ndGgoKSkgZGlmZmVyLmFkZEIoYnMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgZGlmZmVyLmNoZWNrTWF0Y2goaiA9PSBtYXgpOworCisgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDAgfHwgZGlmZmVyLmdldEJDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCIuLi4iKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPHNwYW4gY2xhc3M9J3InPiIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRpZmZlci5nZXRBQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGRpZmZlci5nZXRBKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8L3NwYW4+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkaWZmZXIuZ2V0QkNvdW50KCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8c3BhbiBjbGFzcz0nZCc+Iik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGlmZmVyLmdldEJDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoZGlmZmVyLmdldEIoaSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIjwvc3Bhbj4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiLi4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBzaG93U2V0cyhQcmludFdyaXRlciBvdXQsIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0LCBUcmFuc2xpdGVyYXRvciBpbnZlcnNlLAorICAgICAgVW5pY29kZVNldCBzb3VyY2VTdXBlciwgVW5pY29kZVNldCB0YXJnZXRTdXBlciwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5Tb3VyY2UgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKSwgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFRhcmdldCBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFRhcmdldFNldCgpLCAgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5UYXJnZXQgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRUYXJnZXRTZXQoKSwgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFNvdXJjZSBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFNvdXJjZVNldCgpLCAgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0VfQ0FTRSA9IDEsIENMT1NFX0ZMQVRURU4gPSAyLCBDTE9TRV9DQU5PTklDQUwgPSA0LCBDTE9TRV9DT01QQVRJQklMSVRZID0gODsKKyAgICAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBjbG9zZVVuaWNvZGVTZXQoVW5pY29kZVNldCBzb3VyY2UsIGludCBvcHRpb25zKSB7CisgICAgICAgIGlmIChvcHRpb25zID09IDApIHJldHVybiBzb3VyY2U7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIFVuaWNvZGVTZXQgYWRkaXRpb25zID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBVbmljb2RlU2V0IHJlbW92YWxzID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBTdHJpbmcgYmFzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICAKKyAgICAgICAgLy8gQWRkIGFsbCBjYXNlIGVxdWl2YWxlbnRzCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NBU0UpICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IGl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgY29udGludWU7CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSIHx8IHR5cGUgPT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVVRGMTYudmFsdWVPZihjcCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVURjE2LnZhbHVlT2YoY3ApKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFkZEFsbChhZGRpdGlvbnMpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIEFkZCB0aGUgY2Fub25pY2FsIGNsb3N1cmUgb2YgYWxsIHN0cmluZ3MgYW5kIGNoYXJhY3RlcnMgaW4gc291cmNlCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NBTk9OSUNBTCkgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgY2kgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIi4iKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIGJhc2UgPSBpdC5zdHJpbmc7CisgICAgICAgICAgICAgICAgZWxzZSBiYXNlID0gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIGNpLnNldFNvdXJjZShiYXNlKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSBjaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbCA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWFsLmVxdWFscyhiYXNlKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9ucy5hZGQodHJpYWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZsYXR0ZW4gc3RyaW5ncworICAgICAgICBpZiAoKG9wdGlvbnMgJiBDTE9TRV9GTEFUVEVOKSAhPSAwKSB7CisgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgYWRkaXRpb25zLmNsZWFyKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkQWxsKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgcmVtb3ZhbHMuYWRkKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImZsYXR0ZW5pbmcgJyIgKyBoZXgudHJhbnNsaXRlcmF0ZShpdC5zdHJpbmcpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgICAgIHNvdXJjZS5yZW1vdmVBbGwocmVtb3ZhbHMpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIE5vdyBhZGQgZGVjb21wb3NpdGlvbnMgb2YgY2hhcmFjdGVycyBpbiBzb3VyY2UKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfQ09NUEFUSUJJTElUWSkgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoc291cmNlKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgYmFzZSA9IGl0LnN0cmluZzsKKyAgICAgICAgICAgICAgICBlbHNlIGJhc2UgPSBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGJhc2UsIE5vcm1hbGl6ZXIuTkZLRCwwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGJhc2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChkZWNvbXApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFkZEFsbChhZGRpdGlvbnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgYWRkIGFueSBvdGhlciBjaGFyYWN0ZXIgdGhhdCBkZWNvbXBvc2VzIHRvIGEgY2hhcmFjdGVyIGluIHNvdXJjZQorICAgICAgICAgICAgZm9yIChjcCA9IDA7IGNwIDwgMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGNwLCBOb3JtYWxpemVyLk5GS0QsMCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGFpbnMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3AsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jb250YWluc0FsbChkZWNvbXApKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgSW50ZWdlci50b1N0cmluZyhjcCwxNikgKyAiICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoY3ApKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkZChjcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHRvUGF0dGVybihVbmljb2RlU2V0IHNvdXJjZSwgVW5pY29kZVNldCBzdXBlcnNldCkgeworICAgICAgICBpZiAoc3VwZXJzZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgc291cmNlLnJlbW92ZUFsbChzdXBlcnNldCk7CisgICAgICAgICAgICByZXR1cm4gIlsiICsgc3VwZXJzZXQudG9QYXR0ZXJuKHRydWUpICsgIiAiICsgc291cmNlLnRvUGF0dGVybih0cnVlKSArICJdIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc291cmNlLnRvUGF0dGVybih0cnVlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgIAorICAgIHN0YXRpYyBTdHJpbmcgdGl0bGVjYXNlRmlyc3RXb3JkKFN0cmluZyBsaW5lKSB7CisgICAgICAgIC8vIHNlYXJjaCBmb3IgZmlyc3Qgd29yZCB3aXRoIGxldHRlcnMuIElmIHRoZSBmaXJzdCBsZXR0ZXIgaXMgbG93ZXIsIHRoZW4gdGl0bGVjYXNlIGl0LgorICAgICAgICBiaS5zZXRUZXh0KGxpbmUpOworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVuZCA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChlbmQgPT0gQnJlYWtJdGVyYXRvci5ET05FKSBicmVhazsKKyAgICAgICAgICAgIGludCBmaXJzdExldHRlclR5cGUgPSBnZXRGaXJzdExldHRlclR5cGUobGluZSwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBpZiAoZmlyc3RMZXR0ZXJUeXBlICE9IENoYXJhY3Rlci5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0TGV0dGVyVHlwZSAhPSBDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUikgYnJlYWs7CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIHN0YXJ0KSAKKyAgICAgICAgICAgICAgICAgICAgKyBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpLCBiaSkKKyAgICAgICAgICAgICAgICAgICAgKyBsaW5lLnN1YnN0cmluZyhlbmQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kID0gc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSX01BU0sgPSAKKyAgICAgICAgICAoMTw8Q2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk9USEVSX0xFVFRFUikKKyAgICAgICAgOworICAgIAorICAgIHN0YXRpYyBpbnQgZ2V0Rmlyc3RMZXR0ZXJUeXBlKFN0cmluZyBsaW5lLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQobGluZSwgaSk7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9NQVNLKSAhPSAwKSByZXR1cm4gdHlwZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLlVOQVNTSUdORUQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50TmFtZXMoVW5pY29kZVNldCBzLCBTdHJpbmcgdGFyZ2V0RmlsZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUodGFyZ2V0RmlsZSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSksICJVVEYtOCIpKSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IG1haW4gPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBVbmljb2RlU2V0IG90aGVycyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0RlZmluZWQoaXQuY29kZXBvaW50KSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChpdC5jb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZELDApKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpdC5jb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXJzLmFkZEFsbChkZWNvbXApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIiAiICsgVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpICsgIiA8PiBYWFggIyAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGl0LmNvZGVwb2ludCkpOworICAgICAgICAgICAgICAgIG1haW4uYWRkKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvdGhlcnMuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiRGVjb21wb3NlZCBjaGFyYWN0ZXJzIGZvdW5kIGFib3ZlOiAiKTsKKyAgICAgICAgICAgICAgICBvdGhlcnMucmVtb3ZlQWxsKG1haW4pOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KG90aGVycyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiICIgKyBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCkgKyAiIDw+IFhYWCAjICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoaXQuY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSBXcml0aW5nIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0VdIGhleCIpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgc2F2ZVJ1bGVzID0gCisgICAgICAgICAgIkEgPD4gXHVFQTQxOyBCIDw+IFx1RUE0MjsgQyA8PiBcdUVBNDM7IEQgPD4gXHVFQTQ0OyBFIDw+IFx1RUE0NTsgRiA8PiBcdUVBNDY7IEcgPD4gXHVFQTQ3OyBIIDw+IFx1RUE0ODsgSSA8PiBcdUVBNDk7ICIKKyAgICAgICAgKyAiSiA8PiBcdUVBNEE7IEsgPD4gXHVFQTRCOyBMIDw+IFx1RUE0QzsgTSA8PiBcdUVBNEQ7IE4gPD4gXHVFQTRFOyBPIDw+IFx1RUE0RjsgUCA8PiBcdUVBNTA7IFEgPD4gXHVFQTUxOyBSIDw+IFx1RUE1MjsgIgorICAgICAgICArICJTIDw+IFx1RUE1MzsgVCA8PiBcdUVBNTQ7IFUgPD4gXHVFQTU1OyBWIDw+IFx1RUE1NjsgVyA8PiBcdUVBNTc7IFggPD4gXHVFQTU4OyBZIDw+IFx1RUE1OTsgWiA8PiBcdUVBNUE7ICIKKyAgICAgICAgKyAiYSA8PiBcdUVBNjE7IGIgPD4gXHVFQTYyOyBjIDw+IFx1RUE2MzsgZCA8PiBcdUVBNjQ7IGUgPD4gXHVFQTY1OyBmIDw+IFx1RUE2NjsgZyA8PiBcdUVBNjc7IGggPD4gXHVFQTY4OyBpIDw+IFx1RUE2OTsgIgorICAgICAgICArICJqIDw+IFx1RUE2QTsgayA8PiBcdUVBNkI7IGwgPD4gXHVFQTZDOyBtIDw+IFx1RUE2RDsgbiA8PiBcdUVBNkU7IG8gPD4gXHVFQTZGOyBwIDw+IFx1RUE3MDsgcSA8PiBcdUVBNzE7IHIgPD4gXHVFQTcyOyAiCisgICAgICAgICsgInMgPD4gXHVFQTczOyB0IDw+IFx1RUE3NDsgdSA8PiBcdUVBNzU7IHYgPD4gXHVFQTc2OyB3IDw+IFx1RUE3NzsgeCA8PiBcdUVBNzg7IHkgPD4gXHVFQTc5OyB6IDw+IFx1RUE3QTsiOworICAgICAgICAKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3Igc2F2ZUFzY2lpID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhc2NpaS1zYXZlZCIsIHNhdmVSdWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHJlc3RvcmVBc2NpaSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYXNjaWktc2F2ZWQiLCBzYXZlUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2hhciBpID0gJ0EnOyBpIDw9ICd6JzsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGkgKyAiIDw+ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShTdHJpbmcudmFsdWVPZigoY2hhcikoMHhFQTAwICsgaSkpKSArICI7ICIpOworICAgICAgICB9CisKKyAgICAgICAgVW5pY29kZVNldCB4ID0gbmV3IFVuaWNvZGVTZXQoIltbOl5jY2M9MDpdJls6XmNjYz0yMzA6XV0iKTsKKyAgICAgICAgeCA9IHguY29tcGxlbWVudCgpOworICAgICAgICB4ID0geC5jb21wbGVtZW50KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDogIiArIHgudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInh4eCIsICIkbm90QWJvdmUgPSBbWzpeY2NjPTA6XSZbOl5jY2M9MjMwOl1dOyB1ICgkbm90QWJvdmUqKSBcdTAzMDggPiBYWFggfCAkMTsgIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0TGlzdCA9IHsidVx1MDMwOCIsICJ1XHUwMzE2XHUwMzA4IiwgInVcdTAzMDhcdTAzMTYiLCAidVx1MDMwMVx1MDMwOCIsICJ1XHUwMzA4XHUwMzAxIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdExpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyB5eSA9IHkudHJhbnNsaXRlcmF0ZSh0ZXN0TGlzdFtpXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGV4LnRyYW5zbGl0ZXJhdGUodGVzdExpc3RbaV0pICsgIiA9PiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUoeXkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9wcmludE5hbWVzKG5ldyBVbmljb2RlU2V0KCJbXHUwNjAwLVx1MDZGRl0iKSwgIkFyYWJpYy1MYXRpbi50eHQiKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvKiAgCisgICAgICAgIEJyZWFrVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgCisgICAgICAgIEJyZWFrVHJhbnNsaXRlcmF0b3IgdGVzdFRyYW5zID0gbmV3IEJyZWFrVHJhbnNsaXRlcmF0b3IoIkFueS1YWFgiLCBudWxsLCBudWxsLCAiJCIpOworICAgICAgICBTdHJpbmcgdGVzdFNvdXJjZSA9ICJUaGUgUXVpY2s6ICAgQnJvd24gZm94LS1qdW1wZWQuIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IHRlc3RUcmFucy5nZXRCcmVha0l0ZXJhdG9yKCk7CisgICAgICAgIGJpLnNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgcHJpbnRCcmVha3MoMCwgdGVzdFNvdXJjZSwgYmkpOworICAgICAgICAvL2JpLnNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgLy9wcmludEJyZWFrcygxLCB0ZXN0U291cmNlLCBiaSk7CisgICAgICAgIAorICAgICAgICBwcmludEl0ZXJhdGlvbigyLCB0ZXN0U291cmNlLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGVzdFNvdXJjZSkpOworICAgICAgICAvL3ByaW50SXRlcmF0aW9uKDMsIHRlc3RTb3VyY2UsIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0U291cmNlKSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0ID0gdGVzdFRyYW5zLnRyYW5zbGl0ZXJhdGUodGVzdFNvdXJjZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDM6ICIgKyB0ZXN0KTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCh0ZXN0VHJhbnMuZ2V0SUQoKSwgdGVzdFRyYW5zKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8vIEFueVRyYW5zbGl0ZXJhdG9yLlNjcmlwdFJ1bkl0ZXJhdG9yLnJlZ2lzdGVyQW55VG9TY3JpcHQoKTsKKyAgICAgICAgCisgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJHcmVlayIsIG51bGwpOworICAgICAgICBhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAKKyAgICAgICAgYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoIkRldmFuYWdhcmkiLCBudWxsKTsKKyAgICAgICAgYXQudHJhbnNsaXRlcmF0ZSgiKGNhdCxcdTAzYjEsXHUwOTE1KSIpOworICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAgICAgCisgICAgICAgIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJMYXRpbiIsIG51bGwpOworICAgICAgICBhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZiIsIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmIiwgIidcXCd1KC4uKSguLikgPiAnPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvJyAkMSAnL1UnICQxJDIgJy5naWZcIj4nOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsgICAgICAgIAorICAgICAgICBEdW1teUZhY3RvcnkuYWRkKCJnaWYtQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOyAgICAgICAgCisKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LVJlbW92ZUN1cmx5IiwgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZW1vdmVDdXJseSIsICJbXFx7XFx9XSA+IDsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7ICAgICAgICAKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiUmVtb3ZlQ3VybHktQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcnlpbmcgJmhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJoZXgyIiwgIiguKSA+ICZoZXgoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1oZXgyIiwgdCk7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJ5aW5nICZnaWYiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmMiIsICIoLikgPiAmYW55LWdpZigkMSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmciKTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZjIiLCB0KTsgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihTdHJpbmcgbmFtZSwgU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJHb3Q6ICIgKyBuYW1lKTsKKyAgICAgICAgaWYgKGlkID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyYW5zbGl0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZUlkID0gIiI7CisgICAgICAgICAgICBpbnQgcG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZCArICItQW55IjsKKyAgICAgICAgICAgICAgICBpZCA9ICJBbnktIiArIGlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zMiA9IGlkLmluZGV4T2YoIi8iLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKSArIGlkLnN1YnN0cmluZyhwb3MyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJhbnNsaXQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoaWQsIG5hbWUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIqKipGb3J3YXJkIFJ1bGVzIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRyYW5zbGl0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqU291cmNlIFNldCIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKS50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqVGFyZ2V0IFNldCIpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0ID0gdHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRhcmdldC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgcmVzdCA9IG5ldyBVbmljb2RlU2V0KCJbYS16XSIpLnJlbW92ZUFsbCh0YXJnZXQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqQVNDSUkgLSBUYXJnZXQgU2V0Iik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3QudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoaWQsIHRyYW5zbGl0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKHJldmVyc2VJZCwgbmFtZSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKkJhY2t3YXJkIFJ1bGVzIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRyYW5zbGl0Mi50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQocmV2ZXJzZUlkLCB0cmFuc2xpdDIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciByZXYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiKioqSW52ZXJzZSBSdWxlcyIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4ocmV2LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgY29udmVydFNlbGVjdGlvbkl0ZW0uc2V0TGFiZWwoVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUodHJhbnNsaXQuZ2V0SUQoKSkpOworICAgICAgICAKKyAgICAgICAgYWRkSGlzdG9yeSh0cmFuc2xpdCk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgaW52ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW52ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFkZEhpc3RvcnkoaW52KTsKKyAgICAgICAgICAgIHN3YXBTZWxlY3Rpb25JdGVtLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNldCB0cmFuc2xpdGVyYXRvcjogIiArIHRyYW5zbGl0LmdldElEKCkKKyAgICAgICAgICAgICsgKGludiA9PSBudWxsID8gIiBhbmQgIiArIGludi5nZXRJRCgpIDogIiIpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBhZGRIaXN0b3J5KFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0KSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgTWVudUl0ZW0gY21pID0gKE1lbnVJdGVtKSBoaXN0b3J5TWFwLmdldChuYW1lKTsKKyAgICAgICAgaWYgKGNtaSA9PSBudWxsKSB7CisgICAgICAgICAgICBjbWkgPSBuZXcgTWVudUl0ZW0oVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUobmFtZSkpOworICAgICAgICAgICAgY21pLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihuYW1lKSk7CisgICAgICAgICAgICBoaXN0b3J5TWFwLnB1dChuYW1lLCBjbWkpOworICAgICAgICAgICAgaGlzdG9yeVNldC5hZGQoY21pKTsKKyAgICAgICAgICAgIGhpc3RvcnlNZW51LnJlbW92ZUFsbCgpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBoaXN0b3J5U2V0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaGlzdG9yeU1lbnUuYWRkKChNZW51SXRlbSlpdC5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIFRyYW5zbGl0ZXJhdGlvbkxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIsIEl0ZW1MaXN0ZW5lciB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKG5hbWUsIG51bGwpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmdldFN0YXRlQ2hhbmdlKCkgPT0gSXRlbUV2ZW50LlNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IobmFtZSwgbnVsbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKCJBbnktTnVsbCIsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIEZvbnRBY3Rpb25MaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIHB1YmxpYyBGb250QWN0aW9uTGlzdGVuZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJGb250OiAiICsgbmFtZSk7CisgICAgICAgICAgICBmb250TmFtZSA9IG5hbWU7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQobmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY2xhc3MgU2l6ZUFjdGlvbkxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworICAgICAgICBpbnQgc2l6ZTsKKyAgICAgICAgcHVibGljIFNpemVBY3Rpb25MaXN0ZW5lcihpbnQgc2l6ZSkgeworICAgICAgICAgICAgdGhpcy5zaXplID0gc2l6ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNpemU6ICIgKyBzaXplKTsKKyAgICAgICAgICAgIGZvbnRTaXplID0gc2l6ZTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChuZXcgRm9udChmb250TmFtZSwgRm9udC5QTEFJTiwgZm9udFNpemUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTZXQgYWRkKFNldCBzLCBFbnVtZXJhdGlvbiBlbnVtZXJhdGlvbikgeworICAgICAgICB3aGlsZShlbnVtZXJhdGlvbi5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgcy5hZGQoZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgc29ydGVkIGxpc3Qgb2YgdGhlIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldFN5c3RlbVRyYW5zbGl0ZXJhdG9yTmFtZXMoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9VHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQoZS5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBJbnNlcnRpb24gc29ydCwgTyhuXjIpIGFjY2VwdGFibGUgZm9yIHNtYWxsIG4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPCh2LnNpemUoKS0xKTsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IChTdHJpbmcpIHYuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgZm9yIChpbnQgaj1pKzE7IGo8di5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyBiID0gKFN0cmluZykgdi5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgaWYgKGEuY29tcGFyZVRvKGIpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB2LnNldEVsZW1lbnRBdChiLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgdi5zZXRFbGVtZW50QXQoYSwgaik7CisgICAgICAgICAgICAgICAgICAgIGEgPSBiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdjsKKyAgICB9CisgICAgKi8KKworLyoKKyAgICBwcml2YXRlIHZvaWQgc2V0Tm9UcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgdHJhbnNsaXRJdGVtID0gbm9UcmFuc2xpdEl0ZW07CisgICAgICAgIG5vVHJhbnNsaXRJdGVtLnNldFN0YXRlKHRydWUpOworICAgICAgICBoYW5kbGVTZXRUcmFuc2xpdGVyYXRvcihub1RyYW5zbGl0SXRlbS5nZXRMYWJlbCgpKTsKKyAgICAgICAgY29tcG91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zbGl0TWVudS5nZXRJdGVtQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBpdCA9IHRyYW5zbGl0TWVudS5nZXRJdGVtKGkpOworICAgICAgICAgICAgaWYgKGl0ICE9IG5vVHJhbnNsaXRJdGVtICYmIGl0IGluc3RhbmNlb2YgQ2hlY2tib3hNZW51SXRlbSkgeworICAgICAgICAgICAgICAgICgoQ2hlY2tib3hNZW51SXRlbSkgaXQpLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyovCisvKgorICAgIHByaXZhdGUgdm9pZCBoYW5kbGVBZGRUb0NvbXBvdW5kKFN0cmluZyBuYW1lKSB7CisgICAgICAgIGlmIChjb21wb3VuZENvdW50IDwgTUFYX0NPTVBPVU5EKSB7CisgICAgICAgICAgICBjb21wb3VuZFRyYW5zbGl0W2NvbXBvdW5kQ291bnRdID0gZGVjb2RlVHJhbnNsaXRJdGVtKG5hbWUpOworICAgICAgICAgICAgKytjb21wb3VuZENvdW50OworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdFtdID0gbmV3IFRyYW5zbGl0ZXJhdG9yW2NvbXBvdW5kQ291bnRdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjb21wb3VuZFRyYW5zbGl0LCAwLCB0LCAwLCBjb21wb3VuZENvdW50KTsKKyAgICAgICAgICAgIHRyYW5zbGl0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodCk7CisgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgfQorICAgIH0KKyovCisvKgorICAgIHByaXZhdGUgdm9pZCBoYW5kbGVTZXRUcmFuc2xpdGVyYXRvcihTdHJpbmcgbmFtZSkgeworICAgICAgICB0cmFuc2xpdCA9IGRlY29kZVRyYW5zbGl0SXRlbShuYW1lKTsKKyAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgYSBtZW51IGl0ZW0gdGhhdCBsb29rcyBsaWtlIDx0cmFuc2xpdCBuYW1lPi4KKyAgICAgKi8KKyAgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBkZWNvZGVUcmFuc2xpdEl0ZW0oU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIChuYW1lLmVxdWFscyhOT19UUkFOU0xJVEVSQVRPUikpCisgICAgICAgICAgICA/IG51bGwgOiBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lKTsKKyAgICB9CisgICAgKi8KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVCYXRjaFRyYW5zbGl0ZXJhdGUoVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQpIHsKKyAgICAgICAgaWYgKHRyYW5zbGl0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzdGFydCA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgaW50IGVuZCA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHMgPQorICAgICAgICAgICAgbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQuZ2V0VGV4dCgpLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgbG9nLmFwcGVuZCgnIicgKyBzLnRvU3RyaW5nKCkgKyAiXCIgKHN0YXJ0ICIgKyBzdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICIsIGVuZCAiICsgZW5kICsgIikgLT4gXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUocyk7CisgICAgICAgIFN0cmluZyBzdHIgPSBzLnRvU3RyaW5nKCk7CisKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cuYXBwZW5kKHN0ciArICJcIiIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCYXRjaCAiICsgdHJhbnNsaXQuZ2V0SUQoKSArICI6ICIgKyBsb2cudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0LnJlcGxhY2VSYW5nZShzdHIsIHN0YXJ0LCBlbmQpOworICAgICAgICB0ZXh0LnNlbGVjdChzdGFydCwgc3RhcnQgKyBzdHIubGVuZ3RoKCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVDbG9zZSgpIHsKKyAgICAgICAgaGVscERpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBjbGFzcyBJbmZvRGlhbG9nIGV4dGVuZHMgRGlhbG9nIHsKKyAgICAgICAgcHJvdGVjdGVkIEJ1dHRvbiBidXR0b247CisgICAgICAgIHByb3RlY3RlZCBUZXh0QXJlYSBhcmVhOworICAgICAgICBwcm90ZWN0ZWQgRGlhbG9nIG1lOworICAgICAgICBwcm90ZWN0ZWQgUGFuZWwgYm90dG9tOworICAgICAgICAKKyAgICAgICAgcHVibGljIFRleHRBcmVhIGdldEFyZWEoKSB7CisgICAgICAgICAgICByZXR1cm4gYXJlYTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFBhbmVsIGdldEJvdHRvbSgpIHsKKyAgICAgICAgICAgIHJldHVybiBib3R0b207CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEluZm9EaWFsb2coRnJhbWUgcGFyZW50LCBTdHJpbmcgdGl0bGUsIFN0cmluZyBsYWJlbCwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgICAgIG1lID0gdGhpczsKKyAgICAgICAgICAgIHRoaXMuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgICAgICBpZiAobGFiZWwubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHRoaXMuYWRkKCJOb3J0aCIsIG5ldyBMYWJlbChsYWJlbCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhcmVhID0gbmV3IFRleHRBcmVhKG1lc3NhZ2UsIDgsIDgwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICAgICAgdGhpcy5hZGQoIkNlbnRlciIsIGFyZWEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCJIaWRlIik7CisgICAgICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJvdHRvbSA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgYm90dG9tLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMCwgMCkpOworICAgICAgICAgICAgYm90dG9tLmFkZChidXR0b24pOworICAgICAgICAgICAgdGhpcy5hZGQoIlNvdXRoIiwgYm90dG9tKTsKKyAgICAgICAgICAgIHRoaXMucGFjaygpOworICAgICAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RlbW9BcHBsZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2FiMDJjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuYXBwbGV0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5BcHBsZXRGcmFtZTsKKworLyoqCisgKiBBIHNpbXBsZSBBcHBsZXQgdGhhdCBzaG93cyBhIGJ1dHRvbi4gIFdoZW4gcHJlc3NlZCwgdGhlIGJ1dHRvbgorICogc2hvd3MgdGhlIERlbW9BcHBsZXRGcmFtZS4gIFRoaXMgQXBwbGV0IGlzIG1lYW50IHRvIGJlIGVtYmVkZGVkCisgKiBpbiBhIHdlYiBwYWdlLgorICoKKyAqIDxwPkNvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIERlbW9BcHBsZXQgZXh0ZW5kcyBBcHBsZXQgeworCisgICAgRGVtbyBmcmFtZSA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgZmluYWwgRGVtb0FwcGxldCBhcHBsZXQgPSBuZXcgRGVtb0FwcGxldCgpOworICAgICAgICBuZXcgQXBwbGV0RnJhbWUoIlRyYW5zbGl0ZXJhdGlvbiBEZW1vIiwgYXBwbGV0LCA2NDAsIDQ4MCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiVHJhbnNsaXRlcmF0aW9uIERlbW8iKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGZyYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUgPSBuZXcgRGVtbyg2MDAsIDIwMCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCB3ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyYW1lLnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgICAgICAgICAgZnJhbWUudG9Gcm9udCgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBhZGQoYnV0dG9uKTsKKworICAgICAgICBEaW1lbnNpb24gc2l6ZSA9IGJ1dHRvbi5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgICAgIHNpemUud2lkdGggKz0gMTA7CisgICAgICAgIHNpemUuaGVpZ2h0ICs9IDEwOworCisgICAgICAgIHJlc2l6ZShzaXplKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc3RvcCgpIHsKKyAgICAgICAgaWYgKGZyYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZyYW1lLmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBmcmFtZSA9IG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MjVhZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGlmZmVyLmphdmEKQEAgLTAsMCArMSwxNzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworLyoqIFZFUlkgQmFzaWMgRGlmZiBwcm9ncmFtLiBDb21wYXJlcyB0d28gc2VxdWVuY2VzIG9mIG9iamVjdHMgZmVkIGludG8gaXQsIGFuZAorICogbGV0cyB5b3Uga25vdyB3aGVyZSB0aGV5IGFyZSBkaWZmZXJlbnQuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIEB2ZXJzaW9uIDEuMAorICovCisKK2ZpbmFsIHB1YmxpYyBjbGFzcyBEaWZmZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9CisgICAgICAiQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdGFja1NpemUgVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgZGlmZmVyZW5jZSB5b3UgZXhwZWN0LgorICAgICAqIEBwYXJhbSBtYXRjaENvdW50IFRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCBoYXZlIHRvIGJlIHRoZSBzYW1lIHRvIGNvdW50IGFzIGEgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgRGlmZmVyKGludCBzdGFja1NpemUsIGludCBtYXRjaENvdW50KSB7CisgICAgICAgIHRoaXMuU1RBQ0tTSVpFID0gc3RhY2tTaXplOworICAgICAgICB0aGlzLkVRVUFMU0laRSA9IG1hdGNoQ291bnQ7CisgICAgICAgIGEgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICAgICAgYiA9IG5ldyBPYmplY3Rbc3RhY2tTaXplK21hdGNoQ291bnRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZCAoT2JqZWN0IGFTdHIsIE9iamVjdCBiU3RyKSB7CisgICAgICAgIGFkZEEoYVN0cik7CisgICAgICAgIGFkZEIoYlN0cik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkQSAoT2JqZWN0IGFTdHIpIHsKKyAgICAgICAgZmx1c2goKTsKKyAgICAgICAgYVthQ291bnQrK10gPSBhU3RyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEIgKE9iamVjdCBiU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGJbYkNvdW50KytdID0gYlN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGFMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEEoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBhVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYVtvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QUNvdW50KCkgeworICAgICAgICByZXR1cm4gYVRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkNvdW50KCkgeworICAgICAgICByZXR1cm4gYlRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkxpbmUoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gYkxpbmUgKyBtYXhTYW1lICsgb2Zmc2V0OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgZ2V0QihpbnQgb2Zmc2V0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gbGFzdDsKKyAgICAgICAgaWYgKG9mZnNldCA+IGJUb3AtbWF4U2FtZSkgcmV0dXJuIG5leHQ7CisgICAgICAgIHJldHVybiBiW29mZnNldF07CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2hlY2tNYXRjaChib29sZWFuIGZpbmFsUGFzcykgeworICAgICAgICAvLyBmaW5kIHRoZSBpbml0aWFsIHN0cmluZ3MgdGhhdCBhcmUgdGhlIHNhbWUKKyAgICAgICAgaW50IG1heCA9IGFDb3VudDsKKyAgICAgICAgaWYgKG1heCA+IGJDb3VudCkgbWF4ID0gYkNvdW50OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG1heDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWFbaV0uZXF1YWxzKGJbaV0pKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBhbGwgaXRlbXMgdXAgdG8gaSBhcmUgZXF1YWwKKyAgICAgICAgbWF4U2FtZSA9IGk7CisgICAgICAgIGFUb3AgPSBiVG9wID0gbWF4U2FtZTsKKyAgICAgICAgaWYgKG1heFNhbWUgPiAwKSBsYXN0ID0gYVttYXhTYW1lLTFdOworICAgICAgICBuZXh0ID0gIiI7CisKKyAgICAgICAgaWYgKGZpbmFsUGFzcykgeworICAgICAgICAgICAgYVRvcCA9IGFDb3VudDsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQ7CisgICAgICAgICAgICBuZXh0ID0gIiI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYUNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSB8fCBiQ291bnQgLSBtYXhTYW1lIDwgRVFVQUxTSVpFKSByZXR1cm47CisKKyAgICAgICAgLy8gbm93IHNlZSBpZiB0aGUgbGFzdCBmZXcgYSdzIG9jY3VyIGFueXdoZXJlIGluIHRoZSBiJ3MsIG9yIHZpY2UgdmVyc2EKKyAgICAgICAgaW50IG1hdGNoID0gZmluZCAoYSwgYUNvdW50LUVRVUFMU0laRSwgYUNvdW50LCBiLCBtYXhTYW1lLCBiQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYlRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGFbYVRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2ggPSBmaW5kIChiLCBiQ291bnQtRVFVQUxTSVpFLCBiQ291bnQsIGEsIG1heFNhbWUsIGFDb3VudCk7CisgICAgICAgIGlmIChtYXRjaCAhPSAtMSkgeworICAgICAgICAgICAgYlRvcCA9IGJDb3VudC1FUVVBTFNJWkU7CisgICAgICAgICAgICBhVG9wID0gbWF0Y2g7CisgICAgICAgICAgICBuZXh0ID0gYltiVG9wXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoYUNvdW50ID49IFNUQUNLU0laRSB8fCBiQ291bnQgPj0gU1RBQ0tTSVpFKSB7CisgICAgICAgICAgICAvLyBmbHVzaCBzb21lIG9mIHRoZW0KKyAgICAgICAgICAgIGFDb3VudCA9IChhQ291bnQgKyBtYXhTYW1lKSAvIDI7CisgICAgICAgICAgICBiQ291bnQgPSAoYkNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIENvbnZlbmllbnQgdXRpbGl0eQorICAgICAqIGZpbmRzIGEgc2VnbWVudCBvZiB0aGUgZmlyc3QgYXJyYXkgaW4gdGhlIHNlY29uZCBhcnJheS4KKyAgICAgKiBAcmV0dXJuIC0xIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHN0YXJ0IHBvc2l0aW9uIGluIGIKKyAgICAgKi8KKworICAgIHB1YmxpYyBpbnQgZmluZCAoT2JqZWN0W10gYSwgaW50IGFTdGFydCwgaW50IGFFbmQsIE9iamVjdFtdIGIsIGludCBiU3RhcnQsIGludCBiRW5kKSB7CisgICAgICAgIGludCBsZW4gPSBhRW5kIC0gYVN0YXJ0OworICAgICAgICBpbnQgYkVuZE1pbnVzID0gYkVuZCAtIGxlbjsKKyAgICAgICAgdHJ5QToKKyAgICAgICAgZm9yIChpbnQgaSA9IGJTdGFydDsgaSA8PSBiRW5kTWludXM7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsZW47ICsraikgeworICAgICAgICAgICAgICAgIGlmICghYltpICsgal0uZXF1YWxzKGFbYVN0YXJ0ICsgal0pKSBjb250aW51ZSB0cnlBOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGk7IC8vIHdlIGhhdmUgYSBtYXRjaCEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmIChhVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGFDb3VudC1hVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShhLCBhVG9wLCBhLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBhQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGFMaW5lICs9IGFUb3A7CisgICAgICAgICAgICBhVG9wID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChiVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGJDb3VudC1iVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShiLCBiVG9wLCBiLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBiQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGJMaW5lICs9IGJUb3A7CisgICAgICAgICAgICBiVG9wID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IFNUQUNLU0laRTsKKyAgICBwcml2YXRlIGludCBFUVVBTFNJWkU7CisKKyAgICBwcml2YXRlIE9iamVjdCBbXSBhOworICAgIHByaXZhdGUgT2JqZWN0IFtdIGI7CisgICAgcHJpdmF0ZSBPYmplY3QgbGFzdCA9ICIiOworICAgIHByaXZhdGUgT2JqZWN0IG5leHQgPSAiIjsKKyAgICBwcml2YXRlIGludCBhQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGJDb3VudCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYUxpbmUgPSAxOworICAgIHByaXZhdGUgaW50IGJMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBtYXhTYW1lID0gMCwgYVRvcCA9IDAsIGJUb3AgPSAwOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvSW5mb0RpYWxvZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzczYjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YQpAQCAtMCwwICsxLDUyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLmF3dC4qOworcHVibGljIGNsYXNzIEluZm9EaWFsb2cgZXh0ZW5kcyBEaWFsb2cgeworICAgIHByb3RlY3RlZCBCdXR0b24gYnV0dG9uOworICAgIHByb3RlY3RlZCBUZXh0QXJlYSBhcmVhOworICAgIHByb3RlY3RlZCBEaWFsb2cgbWU7CisgICAgcHJvdGVjdGVkIFBhbmVsIGJvdHRvbTsKKyAgICAgICAgCisgICAgcHVibGljIFRleHRBcmVhIGdldEFyZWEoKSB7CisgICAgICAgIHJldHVybiBhcmVhOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIFBhbmVsIGdldEJvdHRvbSgpIHsKKyAgICAgICAgcmV0dXJuIGJvdHRvbTsKKyAgICB9CisgICAgICAgIAorICAgIEluZm9EaWFsb2coRnJhbWUgcGFyZW50LCBTdHJpbmcgdGl0bGUsIFN0cmluZyBsYWJlbCwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworICAgICAgICBtZSA9IHRoaXM7CisgICAgICAgIHRoaXMuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGlmIChsYWJlbC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICB0aGlzLmFkZCgiTm9ydGgiLCBuZXcgTGFiZWwobGFiZWwpKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFyZWEgPSBuZXcgVGV4dEFyZWEobWVzc2FnZSwgOCwgODAsIFRleHRBcmVhLlNDUk9MTEJBUlNfVkVSVElDQUxfT05MWSk7CisgICAgICAgIHRoaXMuYWRkKCJDZW50ZXIiLCBhcmVhKTsKKyAgICAgICAgICAgIAorICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCJIaWRlIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGJvdHRvbSA9IG5ldyBQYW5lbCgpOworICAgICAgICBib3R0b20uc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAwLCAwKSk7CisgICAgICAgIGJvdHRvbS5hZGQoYnV0dG9uKTsKKyAgICAgICAgdGhpcy5hZGQoIlNvdXRoIiwgYm90dG9tKTsKKyAgICAgICAgdGhpcy5wYWNrKCk7CisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbWUuaGlkZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9BcmFiaWMtTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfQXJhYmljLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDZjNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfQXJhYmljLUxhdGluLnR4dApAQCAtMCwwICsxLDI0IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAor2YXYpyDZh9mKINin2YTYtNmB2LHYqSDYp9mE2YXZiNit2K/YqSAi2YrZiNmG2ZDZg9mI2K8iINifCisKK9ij2LPYp9iz2YvYp9iMINiq2KrYudin2YXZhCDYp9mE2K3ZiNin2LPZitioINmB2YLYtyDZhdi5INin2YTYo9ix2YLYp9mF2Iwg2YjYqtmC2YjZhSDYqNiq2K7YstmK2YYg2KfZhNij2K3YsdmBINmI2KfZhNmF2K3Yp9ix2YEg2KfZhNij2K7YsdmJINio2LnYryDYo9mGINiq2Y/Yudi32Yog2LHZgtmF2Kcg2YXYudmK2YbYpyDZhNmD2YQg2YjYp9it2K8g2YXZhtmH2KcuINmI2YLYqNmEINin2K7Yqtix2KfYuSAi2YrZiNmG2ZDZg9mI2K8i2Iwg2YPYp9mGINmH2YbYp9mDINmF2KbYp9iqINin2YTYo9mG2LjZhdipINmE2YTYqti02YHZitixINmI2KrYrti12YrYtSDZh9iw2Ycg2KfZhNij2LHZgtin2YUg2YTZhNmF2K3Yp9ix2YHYjCDZiNmE2YUg2YrZiNis2K8g2YbYuNin2YUg2KrYtNmB2YrYsSDZiNin2K3YryDZitit2KrZiNmKINi52YTZiSDYrNmF2YrYuSDYp9mE2YXYrdin2LHZgSDYp9mE2LbYsdmI2LHZitipLiDZiNi52YTZiSDYs9io2YrZhCDYp9mE2YXYq9in2YTYjCDZgdil2YYg2KfZhNin2KrYrdin2K8g2KfZhNij2YjYsdmI2KjZiiDZhNmI2K3Yr9mH2Iwg2KfYrdiq2YjZiSDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2LTZgdix2KfYqiDYp9mE2YXYrtiq2YTZgdipINmE2YrYuti32Yog2KzZhdmK2Lkg2KfZhNmE2LrYp9iqINin2YTZhdiz2KrYrtiv2YXYqSDZgdmKINin2YTYp9iq2K3Yp9ivLiDZiNit2KrZiSDZhNmIINin2LnYqtio2LHZhtinINmE2LrYqSDZiNin2K3Yr9ip2Iwg2YPYp9mE2YTYutipINin2YTYpdmG2KzZhNmK2LLZitip2Iwg2YHYpdmGINis2K/ZiNmEINi02YHYsdipINmI2KfYrdivINmE2YUg2YrZg9mBINmE2KfYs9iq2YrYudin2Kgg2KzZhdmK2Lkg2KfZhNij2K3YsdmBINmI2LnZhNin2YXYp9iqINin2YTYqtix2YLZitmFINmI2KfZhNix2YXZiNiyINin2YTZgdmG2YrYqSDZiNin2YTYudmE2YXZitipINin2YTYtNin2KbYudipINin2YTYp9iz2KrYudmF2KfZhC4KKworIAorCivZiNiq2KzYr9ixINin2YTZhdmE2KfYrdi42Kkg2KPZhiDYo9mG2LjZhdipINin2YTYqti02YHZitixINin2YTZhdiu2KrZhNmB2Kkg2KrYqti52KfYsdi2INmF2Lkg2KjYudi22YfYpyDYp9mE2KjYudi2LiDZiNio2LnYqNin2LHYqSDYo9iu2LHZidiMINmK2YXZg9mGINij2YYg2YrYs9iq2K7Yr9mQ2YUg2KzYr9mI2YTZiiDYtNmB2LHYqSDZhtmB2LMg2KfZhNix2YLZhSDZhNiq2YXYq9mK2YQg2YXYrdix2YHZitmGINmF2K7YqtmE2YHZitmG2Iwg2KPZiCDYsdmC2YXZitmGINmF2K7YqtmE2YHZitmGINmE2KrZhdir2YrZhCDZhtmB2LMg2KfZhNmF2K3YsdmBLiDZiNmE2Ygg2KPYrtiw2YbYpyDYo9mKINis2YfYp9iyINit2KfYs9mI2KjYjCDZiNio2K7Yp9i12Kkg2KzZh9in2LIg2KfZhNmG2KfYr9mEIChzZXJ2ZXIp2Iwg2YHZitis2Kgg2KPZhiDYqtmD2YjZhiDZhNiv2YrZhyDYp9mE2YLYr9ix2Kkg2LnZhNmJINin2YTYqti52KfZhdmEINmF2Lkg2LnYr9ivINmD2KjZitixINmF2YYg2KfZhNi02YHYsdin2Kog2KfZhNmF2K7YqtmE2YHYqdiMINmI2YrYqtmFINiq2LXZhdmK2YXZhyDYudmE2Ykg2YfYsNinINin2YTYo9iz2KfYsy4g2YjZhdi5INiw2YTZg9iMINmB2LnZhtiv2YXYpyDYqtmF2LEg2KfZhNio2YrYp9mG2KfYqiDYudio2LEg2KPZhti42YXYqSDZhdiu2KrZhNmB2KnYjCDYqtmI2KzYryDZh9mG2KfZgyDYrti32YjYsdipINmE2LbZitin2Lkg2KPZiCDYqtit2LHZitmBINio2LnYtiDZh9iw2Ycg2KfZhNio2YrYp9mG2KfYqi4KKworIAorCisi2YrZiNmG2ZDZg9mI2K8iINiq2LrZitixINmH2LDYpyDZg9mE2YrYpyAhCisKK9iq2K7Ytdi1INin2YTYtNmB2LHYqSDYp9mE2YXZiNit2K/YqSAi2YrZiNmG2ZDZg9mI2K8iINix2YLZhdinINmI2K3Zitiv2Kcg2YTZg9mEINmF2K3YsdmBINmB2Yog2KzZhdmK2Lkg2KfZhNmE2LrYp9iqINin2YTYudin2YTZhdmK2KnYjCDZiNiw2YTZgyDYqNi62LYg2KfZhNmG2LjYsSDYudmGINmG2YjYuSDYp9mE2K3Yp9iz2YjYqCDYo9mIINin2YTYqNix2KfZhdisINin2YTZhdiz2KrYrtiv2YXYqS4g2YjZgtivINiq2YUg2KrYqNmG2Yog2YXZiNin2LXZgdipICLZitmI2YbZkNmD2YjYryIg2YXZhiDZgtio2YQg2YLYp9iv2Kkg2KfZhNi12KfZhti52YrZhiDZhNij2YbYuNmF2Kkg2KfZhNit2YjYp9iz2YrYqCDZgdmKINin2YTYudin2YTZhdiMINmF2KvZhCDYtNix2YPYp9iqINii2You2KjZii7YpdmFLiAoSUJNKdiMINij2KjZhCAoQVBQTEUp2Iwg2YfZkNmK2ZLZiNmE2ZDYqiDYqNin2YPYsdivIChIZXdsZXR0LVBhY2thcmQpINiMINmF2KfZitmD2LHZiNiz2YjZgdiqIChNaWNyb3NvZnQp2Iwg2KPZiNix2KfZg9mQ2YQgKE9yYWNsZSkg2Iwg2LXZhiAoU3VuKSDZiNi62YrYsdmH2KcuINmD2YXYpyDYo9mGINin2YTZhdmI2KfYtdmB2KfYqiDZiNin2YTZhdmC2KfZitmK2LMg2KfZhNit2K/Zitir2KkgKNmF2KvZhCDZhNi62Kkg2KfZhNio2LHZhdis2KkgItis2KfZgdinIiAiSkFWQSIg2YjZhNi62KkgItil2YPYsyDYpdmFINil2YQiICJYTUwiINin2YTYqtmKINiq2LPYqtiu2K/ZhSDZhNio2LHZhdis2Kkg2KfZhNin2YbYqtix2YbZitiqKSDYqtiq2LfZhNioINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIuINi52YTYp9mI2Kkg2LnZhNmJINiw2YTZgyDYjCDZgdil2YYgItmK2YjZhtmQ2YPZiNivIiDZh9mKINin2YTYt9ix2YrZgtipINin2YTYsdiz2YXZitipINmE2KrYt9io2YrZgiDYp9mE2YXZgtmK2KfYsyDYp9mE2LnYp9mE2YXZiiDYpdmK2LLZiCDZodmg2abZpNmmICAoSVNPIDEwNjQ2KSAuCisKKyAKKwor2KXZhiDYqNiy2YjYuiDZhdmI2KfYtdmB2KkgItmK2YjZhtmQ2YPZiNivIiDZiNiq2YjZgdmR2Y/YsSDYp9mE2KPZhti42YXYqSDYp9mE2KrZiiDYqtiz2KrYrtiv2YXZhyDZiNiq2K/YudmF2YfYjCDZiti52KrYqNixINmF2YYg2KPZh9mFINin2YTYp9iu2KrYsdin2LnYp9iqINin2YTYrdiv2YrYq9ipINmB2Yog2LnZiNmE2YXYqSDYp9mE2KjYsdmF2KzZitin2Kog2YTYrNmF2YrYuSDYp9mE2YTYutin2Kog2YHZiiDYp9mE2LnYp9mE2YUuINmI2KXZhiDYp9iz2KrYrtiv2KfZhSAi2YrZiNmG2ZDZg9mI2K8iINmB2Yog2LnYp9mE2YUg2KfZhNin2YbYqtix2YbZitiqINiz2YrYpNiv2Yog2KXZhNmJINiq2YjZgdmK2LEg2YPYqNmK2LEg2YXZgtin2LHZhtipINmF2Lkg2KfYs9iq2K7Yr9in2YUg2KfZhNmF2KzZhdmI2LnYp9iqINin2YTYqtmC2YTZitiv2YrYqSDZhNmE2YXYrdin2LHZgSDYp9mE2YXYtNmB2LHYqS4g2YPZhdinINij2YYg2KfYs9iq2K7Yr9in2YUgItmK2YjZhtmQ2YPZiNivIiDYs9mK2Y/ZhdmD2ZHZkNmGINin2YTZhdio2LHZhdisINmF2YYg2YPYqtin2KjYqSDYp9mE2KjYsdmG2KfZhdisINmF2LHYqSDZiNin2K3Yr9ip2Iwg2YjYp9iz2KrYrtiv2KfZhdmHINi52YTZiSDYo9mKINmG2YjYuSDZhdmGINin2YTYo9is2YfYstipINij2Ygg2KfZhNij2YbYuNmF2KnYjCDZiNmE2KPZiiDZhNi62Kkg2KPZiCDYr9mI2YTYqSDZgdmKINin2YTYudin2YTZhSDYo9mK2YbZhdinINmD2KfZhtiq2Iwg2K/ZiNmGINin2YTYrdin2KzYqSDZhNil2LnYp9iv2Kkg2KfZhNio2LHZhdis2Kkg2KPZiCDYpdis2LHYp9ihINij2Yog2KrYudiv2YrZhC4g2YjYo9iu2YrYsdin2Iwg2YHYpdmGINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIg2LPZitmF2YPZhiDYp9mE2KjZitin2YbYp9iqINmF2YYg2KfZhNin2YbYqtmC2KfZhCDYudio2LEg2KfZhNij2YbYuNmF2Kkg2YjYp9mE2KPYrNmH2LLYqSDYp9mE2YXYrtiq2YTZgdipINiv2YjZhiDYo9mKINiu2LfZiNix2Kkg2YTYqtit2LHZitmB2YfYp9iMINmF2YfZhdinINiq2LnYr9iv2Kog2KfZhNi02LHZg9in2Kog2KfZhNi12KfZhti52Kkg2YTZhNij2YbYuNmF2Kkg2YjYp9mE2YTYutin2KrYjCDZiNin2YTYr9mI2YQg2KfZhNiq2Yog2KrZhdixINmF2YYg2K7ZhNin2YTZh9inINmH2LDZhyDYp9mE2KjZitin2YbYp9iqLiAKKworQFNFVCBbW1s6QXJhYmljOl0gJiBbXHUwNjAwLVx1MDZGRl1dIFvigI5cdTA2MENcdTA2MUJcdTA2MUZcdTA2NDBcdTA2NEItXHUwNjU1XHUwNjYwLVx1MDY2Q1x1MDZGMC1cdTA2RjldXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0dyZWVrLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0dyZWVrLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzgwMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfR3JlZWstTGF0aW4udHh0CkBAIC0wLDAgKzEsNzMgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK86kzrkgzrXOr869zrHOuSDPhM6/IFVuaWNvZGU/IAorCivOlyDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrrOsc65IM68zr/Ovc6xzrTOuc66z4wgzrHPgc65zrjOvM+MIM6zzrnOsSDOus6szrjOtSDPh86xz4HOsc66z4TOrs+BzrEsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zrXOuc+Ezr/Phc+BzrPOuc66z4wgz4PPjc+Dz4TOt868zrEsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zr/Os865z4POvM65zrrPjCwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+EzrfOvSDOs867z47Pg8+DzrEuCisKK86fzrkgzrfOu861zrrPhM+Bzr/Ovc65zrrOv86vIM+Fz4DOv867zr/Os865z4PPhM6tz4IsIM+DzrUgz4TOtc67zrnOus6uIM6xzr3OrM67z4XPg863LCDPh861zrnPgc6vzrbOv869z4TOsc65IM6xz4DOu8+Oz4IgzrHPgc65zrjOvM6/z43Pgi4gzpHPgM6/zrjOt866zrXPjc6/z4XOvSDOs8+BzqzOvM68zrHPhM6xIM66zrHOuSDOrM67zrvOv8+Fz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrHOvc+EzrnPg8+Ezr/Ouc+Hz47Ovc+EzrHPgiDPg8+Ezr8gzrrOsc64zq3Ovc6xIM+Ezr/Phc+CIM6xz4DPjCDOrc69zrHOvSDOsc+BzrnOuM68z4wgKM6/zr3Ov868zqzOts6/z4XOvM61IM68zq/OsSDPhM6tz4TOv865zrEgzrHOvc+EzrnPg8+Ezr/Ouc+Hzq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEpLiDOoM+BzrnOvSDPhM63zr0gzrXPhs61z43Pgc61z4POtyDPhM6/z4UgVW5pY29kZSwgz4XPgM6uz4HPh86xzr0gzrXOus6xz4TOv869z4TOrM60zrXPgiDOtM65zrHPhs6/z4HOtc+EzrnOus6tz4IgzrrPic60zrnOus6/z4POtc67zq/OtM61z4IuIM6bz4zOs8+JIM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDPjM68z4nPgiwgz4POtSDOus6xzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gz4fPic+Bzr/Pjc+DzrHOvSDOsc+BzrrOtc+Ezr/OryDPh86xz4HOsc66z4TOrs+BzrXPgjogzrvPjM6zzr/PhSDPh86sz4HOuc69LCDOtyDOlc+Fz4HPic+AzrHPis66zq4gzojOvc+Jz4POtyDPh8+BzrXOuc6xzrbPjM+EzrHOvSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOtc+CIM+EzrnPgiDOs867z47Pg8+DzrXPgiDPhM+Jzr0gz4fPic+Bz47OvS3OvM61zrvPjs69IM+EzrfPgi4gzpHOus+MzrzOsSDOus6xzrkgzrPOuc6xIM68zq/OsSDOus6xzrkgzrzPjM69zrcgzrPOu8+Oz4PPg86xLCDPjM+Az4nPgiDPgC7Phy4gz4TOsSDOkc6zzrPOu865zrrOrCwgzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gzrXPgM6xz4HOus6/z43Pg861IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOsSDPhM6xIM6zz4HOrM68zrzOsc+EzrEsIM+DzrfOvM61zq/OsSDPg8+Ezq/Ovs63z4IgzrrOsc65IM+EzrXPh869zrnOus6sIM+Dz43OvM6yzr/Ou86xIM61z4XPgc61zq/Osc+CIM+Hz4HOrs+DzrfPgi4KKworzpXOus+Ez4zPgiDOsc+Fz4TOv8+NLCDOv865IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM6xz4XPhM6tz4IgzrTOuc6xz4bPic69zr/Pjc+DzrHOvSDOvM61z4TOsc6+z40gz4TOv8+Fz4IuIM6Iz4TPg865LCDOtM+Nzr8gzrrPic60zrnOus6/z4POtc67zq/OtM61z4IgzrzPgM6/z4HOv8+Nz4POsc69IM66zqzOu867zrnPg8+EzrEgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDPhM6/zr0gzq/OtM65zr8gzrHPgc65zrjOvM+MIM6zzrnOsSDOtM+Nzr8gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IsIM6uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4IgzrHPgc65zrjOvM6/z43PgiDOs865zrEgz4TOv869IM6vzrTOuc6/IM+HzrHPgc6xzrrPhM6uz4HOsS4gzprOrM64zrUgz4XPgM6/zrvOv86zzrnPg8+Ezq7PgiAozrrOsc65IM65zrTOr8+Jz4IgzrXOrM69IM6uz4TOsc69IM60zrnOsc66zr/OvM65z4PPhM6uz4IpIM6tz4DPgc61z4DOtSDOvc6xIM+Fz4DOv8+Dz4TOt8+Bzq/Ots61zrkgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvc6HIM+EzrHPhc+Ez4zPh8+Bzr/Ovc6xIM66zqzOuM61IM+Gzr/Pgc6sIM+Azr/PhSDOtM61zrTOv868zq3Ovc6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOvSDOvM61z4TOsc6+z40gzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6uIM67zrXOuc+Ezr/Phc+BzrPOuc66z47OvSDPg8+Fz4PPhM63zrzOrM+Ez4nOvSwgz4TOsSDOtM61zrTOv868zq3Ovc6xIM6xz4XPhM6sIM66zrnOvc60z43Ovc61z4XOsc69IM69zrEgzrHOu867zr/Ouc+JzrjOv8+Nzr0uCisKK86kzr8gVW5pY29kZSDOsc67zrvOrM62zrXOuSDOsc+Fz4TOriDPhM63zr0gzrrOsc+EzqzPg8+EzrHPg863IQorzqTOvyBVbmljb2RlIM+Az4HOv8+EzrXOr869zrXOuSDOrc69zrHOvSDOvM6/zr3Osc60zrnOus+MIM6xz4HOuc64zrzPjCDOs865zrEgzrrOrM64zrUgz4fOsc+BzrHOus+Ezq7Pgc6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM63zr0gzrPOu8+Oz4PPg86xLiDOpM63zr0gzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgzq3Ph86/z4XOvSDOsc+Dz4DOsc+DzrjOtc6vIM66zr/Pgc+Fz4bOsc6vzr/OuSDPgM6xz4HOrM6zzr/Ovc+EzrXPgiDPhM6/z4Ugz4fPjs+Bzr/PhSDPhM+Jzr0gzrvOv86zzrnPg868zrnOus+Ozr0gz4zPgM+Jz4Igzr/OuTogQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXMgzrrOsc65IM+Azr/Ou867zr/OryDOrM67zrvOv865LiDOpM6/IFVuaWNvZGUgzrHPgM6xzrnPhM6/z43OvSDPgM6/zrvOu86tz4Igz4PPjc6zz4fPgc6/zr3Otc+CIM+Ez4XPgM6/z4DOv865zq7Pg861zrnPgiDPjM+Az4nPgiDOv865OiBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCwgzrouzrvPgC4sIM66zrHOuSDOtc6vzr3Osc65IM63IM61z4DOr8+DzrfOvM63IM68zq3OuM6/zrTOv8+CIM61z4bOsc+BzrzOv86zzq7PgiDPhM63z4Igz4TPhc+Azr/PgM6/zq/Ot8+DzrfPgiBJU08vSUVDIDEwNjQ2LiDOpc+Azr/Pg8+EzrfPgc6vzrbOtc+EzrHOuSDOsc+Az4wgz4DOv867zrvOrCDOu861zrnPhM6/z4XPgc6zzrnOus6sIM+Dz4XPg8+Ezq7OvM6xz4TOsSwgz4zOu86/z4XPgiDPhM6/z4XPgiDPg8+Nz4fPgc6/zr3Ov8+Fz4Igz4DOtc+BzrnOt86zzrfPhM6tz4IgzpTOuc6xzrTOuc66z4TPjc6/z4UsIM66zrHOuSDPgM6/zrvOu86sIM6szrvOu86xIM+Az4HOv8+Kz4zOvc+EzrEuIM6XIM61zrzPhs6szr3Ouc+Dzrcgz4TOt8+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsc+CIFVuaWNvZGUsIM66zrHOuSDOtyDOtM65zrHOuM61z4POuc68z4zPhM63z4TOsSDOtc+BzrPOsc67zrXOr8+Jzr0gz4DOv8+FIM69zrEgz4TOt869IM+Fz4DOv8+Dz4TOt8+Bzq/Ots6/z4XOvSDOtc6vzr3Osc65IM6xz4DPjCDPhM65z4Igz4POt868zrHOvc+EzrnOus+Mz4TOtc+BzrXPgiDOtc6+zrXOu86vzr7Otc65z4Igz4TOt8+CIM+Az4HPjM+Dz4bOsc+EzrfPgiDPhM61z4fOvc6/zrvOv86zzq/Osc+CIM67zr/Os865z4POvM65zrrPjs69LgorCivOlyDOtc69z4PPic68zqzPhM+Jz4POtyDPhM6/z4UgVW5pY29kZSDPg861IM61z4bOsc+BzrzOv86zzq3PgiDPgM61zrvOrM+EzrctzrTOuc6xzrrOv868zrnPg8+Ezq4gzq4gIm11bHRpLXRpZXJlZCIgz4DPgc6/z4PPhs6tz4HOtc65IM+DzrfOvM6xzr3PhM65zrrOrc+CIM6/zrnOus6/zr3Ov868zq/Otc+CIM+DzrUgz4PPh86tz4POtyDOvM61IM+EzrnPgiDPic+CIM+Ez47Pgc6xIM+Fz4DOrM+Bz4fOv8+Fz4POtc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOp86sz4HOuc+CIM+Dz4TOvyBVbmljb2RlIM6tzr3OsSDOus6xzrkgzrzPjM69zr8gz4DPgc6/z4rPjM69IM6uIM68zq/OsSDOus6xzrkgzrzPjM69zrcgz4TOv8+Azr/OuM61z4POr86xIM6UzrnOsc60zrnOus+Ez43Ov8+FIM68z4DOv8+BzrXOryDOvc6xIM61z4DOuc66zr/Ouc69z4nOvc61zq8gzrzOtSDOtM65zqzPhs6/z4HOsSDOu861zrnPhM6/z4XPgc6zzrnOus6sIM+Dz4XPg8+Ezq7OvM6xz4TOsSwgz4POtSDOtM65zqzPhs6/z4HOtc+CIM6zzrvPjs+Dz4POtc+CIM66zrHOuSDPh8+Oz4HOtc+CLCDPh8+Jz4HOr8+CIM+EzrfOvSDOsc69zqzOs866zrcgzrXPgM6xzr3Osc+Az4HOv86zz4HOsc68zrzOsc+EzrnPg868zr/PjS4gzpPOr869zrXPhM6xzrkgzq3PhM+DzrkgzrTPhc69zrHPhM6uIM63IM68zrXPhM6xz4bOv8+BzqwgzrTOtc60zr/OvM6tzr3Pic69IM6xzr3OrM68zrXPg86xIM+DzrUgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDPg8+Fz4PPhM63zrzOrM+Ez4nOvSDOtM6vz4fPic+CIM66zq/Ovc60z4XOvc6/IM6xzrvOu86/zq/Pic+DzrfPgi4KKworzqPPh861z4TOuc66zqwgzrzOtSDPhM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZQorVM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZSDOtc6vzr3Osc65IM6tzr3Osc+CIM66zr/Ouc69z4nPhs61zrvOrs+CIM6/z4HOs86xzr3Ouc+DzrzPjM+CzocgzrnOtM+Bz43OuM63zrrOtSDOs865zrEgzr3OsSDOsc69zrHPgM+Ez43Ovs61zrksIM69zrEgzrXPgM61zrrPhM61zq/Ovc61zrkgzrrOsc65IM69zrEgzrzOtc+EzrHOtM+Oz4POtc65IM+EzrfOvSDPh8+Bzq7Pg863IM+EzrfPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrHPgiBVbmljb2RlIM+Azr/PhSDOus6xzrjOv8+Bzq/Ots61zrkgz4TOt869IM6xzr3Osc+AzrHPgc6sz4PPhM6xz4POtyDOus61zrnOvM6tzr3Ov8+FIM+DzrUgz4PPjc6zz4fPgc6/zr3OsSDOu86/zrPOuc+DzrzOuc66zqwgz4DPgc6/z4rPjM69z4TOsSDOus6xzrkgz4TPhc+Azr/PgM6/zrnOrs+DzrXOuc+CLiDOnM61zrPOrM67zr/PgiDOsc+BzrnOuM68z4zPgiDOtc+EzrHOuc+BzrXOuc+Ozr0gzrrOsc65IM6/z4HOs86xzr3Ouc+DzrzPjs69IM+EzrfPgiDOtM65zrXOuM69zr/Pjc+CIM6yzrnOv868zrfPh86xzr3Or86xz4Igz4XPgM6/zrvOv86zzrnPg8+Ez47OvSDOus6xzrkgzrvOv86zzrnPg868zrnOus+Ozr0gzrXOr869zrHOuSDOvM6tzrvOtyDPhM6/z4UgzprOv869z4PPjM+Bz4TOuc6/z4XOvCBVbmljb2RlLiDOpM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+Fzrwgz4fPgc63zrzOsc+Ezr/OtM6/z4TOtc6vz4TOsc65IM68z4zOvc6/IM6xz4DPjCDPhM65z4Igz4PPhc69zrTPgc6/zrzOrc+CIM+Ez4nOvSDOvM61zrvPjs69IM+Ezr/PhS4gzpzOrc67zr/PgiDPhM6/z4UgzrrOv869z4PPjM+Bz4TOuc6/z4XOvCBVbmljb2RlIM68z4DOv8+BzrXOryDOvc6xIM6zzq/Ovc61zrkgzr/Ouc6/z4POtM6uz4DOv8+EzrUgKM6/z4HOs86xzr3Ouc+DzrzPjM+CLCDOtc+EzrHOuc+BzrXOr86xIM6uIM65zrTOuc+Oz4TOt8+CLCDOv8+Azr/Phc60zq7PgM6/z4TOtSDPg8+Ezr/OvSDOus+Mz4POvM6/KSDPgM6/z4Ugzr3OsSDPhc+Azr/Pg8+EzrfPgc6vzrbOtc65IM+EzrfOvSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDOus6xzrkgzr3OsSDOtc+AzrnOuM+FzrzOtc6vIM69zrEgz4PPhc69zrTPgc6szrzOtc65IM+Dz4TOt869IM61z4DOrc66z4TOsc+DzrcgzrrOsc65IM+Dz4TOt869IM61z4bOsc+BzrzOv86zzq4gz4TOt8+CLgorCivOk865zrEgz4DOtc+BzrHOuc+Ezq3Pgc+JIM+AzrvOt8+Bzr/Phs6/z4HOr861z4IsIM6yzrvOrc+AzrUgz4TOuc+CIM61zr7Ors+CIM65z4PPhM6/z4POtc67zq/OtM61z4I6IM6TzrvPic+Dz4POrM+BzrksIM6UzrXOr86zzrzOsc+EzrEgz4DPgc6/z4rPjM69z4TPic69IM+Dz4XOvM6yzrHPhM+Ozr0gzrzOtSDPhM6/IFVuaWNvZGUsIM6kzrXPh869zrnOus6uIM6VzrnPg86xzrPPic6zzq4gzrrOsc65IM6nz4HOrs+DzrnOvM61z4Igz4DOt86zzq3PgiDPgM67zrfPgc6/z4bOv8+BzrnPjs69LgorCisoQU5DSUVOVCkKKwor4byEzr3OtM+BzrEgzrzOv865IOG8lM69zr3Otc+AzrUsIM68zr/hv6bPg86xLCDPgM6/zrvPjc+Ez4HOv8+Azr/OvSwg4b2Dz4IgzrzOrM67zrEgz4DOv867zrvhvbAKK8+AzrvOrM6zz4fOuM63LCDhvJDPgM614b22IM6kz4HOv86vzrfPgiDhvLHOtc+B4b24zr0gz4DPhM6/zrvOr861zrjPgc6/zr0g4byUz4DOtc+Bz4POtc69Ogorz4DOv867zrvhv7bOvSDOtOKAmSDhvIDOvc64z4HPjs+Az4nOvSDhvLTOtM61zr0g4byEz4PPhM61zrEgzrrOseG9tiDOvc+Mzr/OvSDhvJTOs869z4ksCivPgM6/zrvOu+G9sCDOtOKAmSDhvYUgzrPigJkg4byQzr0gz4DPjM69z4Thv7Mgz4DOrM64zrXOvSDhvITOu86zzrXOsSDhvYPOvSDOus6xz4ThvbAgzrjPhc68z4zOvSwKK+G8gM+Bzr3Pjc68zrXOvc6/z4Ig4bylzr0gz4TOtSDPiM+Fz4fhvbTOvSDOus6x4b22IM69z4zPg8+Ezr/OvSDhvJHPhM6xzq/Pgc+Jzr0uCivhvIDOu8674oCZIM6/4b2QzrTigJkg4b2jz4Ig4byRz4TOrM+Bzr/Phc+CIOG8kM+Bz4HPjc+DzrHPhM6/LCDhvLHOrc68zrXOvc+Mz4Igz4DOtc+BOgorzrHhvZDPhOG/ts69IM6z4b2wz4Egz4PPhs61z4TOrc+B4b+Dz4POuc69IOG8gM+EzrHPg864zrHOu86v4b+Dz4POuc69IOG9hM67zr/Ovc+Ezr8sCivOvc6uz4DOuc6/zrksIM6/4byzIM66zrHPhOG9sCDOss6/4b+mz4Ig4b2Zz4DOtc+Bzq/Ov869zr/PgiDhvKjOtc67zq/Ov865zr8KK+G8pM+DzrjOuc6/zr06IM6x4b2Qz4ThvbDPgSDhvYEgz4TOv+G/ls+DzrnOvSDhvIDPhs61zq/Ou861z4TOvyDOvc+Mz4PPhM65zrzOv869IOG8ps68zrHPgS4KK8+E4b+2zr0g4byBzrzPjM64zrXOvSDOs861LCDOuM61zqwsIM64z43Os86xz4TOtc+BIM6UzrnPjM+CLCDOteG8sM+A4b2yIM66zrHhvbYg4byhzrzhv5bOvS4KKyoKK+G8lM69zrjigJkg4byEzrvOu86/zrkgzrzhvbLOvSDPgM6szr3PhM61z4IsIOG9hc+Dzr/OuSDPhs+NzrPOv869IM6x4bywz4DhvbrOvSDhvYTOu861zrjPgc6/zr0sCivOv+G8tM66zr/OuSDhvJTPg86xzr0sIM+Az4zOu861zrzPjM69IM+EzrUgz4DOtc+GzrXPhc6zz4zPhM61z4Ig4bygzrThvbIgzrjOrM67zrHPg8+DzrHOvToKK8+E4b24zr0gzrTigJkgzr/hvLbOv869IM69z4zPg8+Ezr/PhSDOus61z4fPgc63zrzOrc69zr/OvSDhvKDOtOG9siDOs8+Fzr3Osc65zrrhvbjPggorzr3Pjc68z4bOtyDPgM+Mz4TOvc654oCZIOG8lM+Bz4XOus61IM6azrHOu8+Fz4jhvbwgzrThv5bOsSDOuM61zqzPic69CivhvJDOvSDPg8+Azq3Pg8+DzrkgzrPOu86xz4bPhc+Bzr/hv5bPg865LCDOu865zrvOsc65zr/OvM6tzr3OtyDPgM+Mz4POuc69IM614by2zr3Osc65Lgor4byAzrvOu+KAmSDhvYXPhM61IM604b20IOG8lM+Ezr/PgiDhvKbOu864zrUgz4DOtc+BzrnPgM67zr/OvM6tzr3Pic69IOG8kM69zrnOsc+Fz4Thv7bOvSwKK8+E4b+3IM6/4byxIOG8kM+AzrXOus67z47Pg86xzr3PhM6/IM64zrXOv+G9tiDOv+G8ts66z4zOvc60zrUgzr3Orc61z4POuM6xzrkKK8614bywz4Ig4by4zrjOrM66zrfOvSwgzr/hvZDOtOKAmSDhvJTOvc64zrEgz4DOtc+Gz4XOs868zq3Ovc6/z4Ig4bymzrXOvSDhvIDOrc64zrvPic69CivOus6x4b22IM68zrXPhOG9sCDOv+G8t8+Dzrkgz4bOr867zr/Ouc+DzrkuIM64zrXOv+G9tiDOtOKAmSDhvJDOu86tzrHOuc+Bzr/OvSDhvIXPgM6xzr3PhM61z4IKK869z4zPg8+GzrkgzqDOv8+DzrXOuc60zqzPic69zr/Pgjog4b2BIM604oCZIOG8gM+Dz4DOtc+Bz4fhvbLPgiDOvM61zr3Orc6xzrnOvc61zr0KK+G8gM69z4TOuc64zq3hv7Mg4b2IzrTPhc+D4b+Gzrkgz4DOrM+Bzr/PgiDhvKPOvSDOs86x4b+WzrHOvSDhvLHOus6tz4POuM6xzrkuCisqCivhvIDOu8674oCZIOG9gSDOvOG9ss69IM6R4bywzrjOr86/z4DOsc+CIM68zrXPhM61zrrOr86xzrjOtSDPhM63zrvPjM644oCZIOG8kM+Mzr3PhM6xz4IsCivOkeG8sM64zq/Ov8+AzrHPgiDPhM6/4b22IM60zrnPh8644b2wIM60zrXOtM6xzq/Osc+EzrHOuSwg4byUz4PPh86xz4TOv865IOG8gM69zrTPgeG/ts69LAorzr/hvLEgzrzhvbLOvSDOtM+Fz4POv868zq3Ovc6/z4Ug4b2Zz4DOtc+Bzq/Ov869zr/PgiDOv+G8sSDOtOKAmSDhvIDOvc65z4zOvc+Ezr/PgiwKK+G8gM69z4TOuc+Mz4nOvSDPhM6xz43Pgc+Jzr0gz4TOtSDOus6x4b22IOG8gM+Bzr3Otc654b+2zr0g4byRzrrOsc+Ez4zOvM6yzrfPgi4KK+G8lM69zrjigJkg4b2FIM6z4oCZIOG8kM+Ezq3Pgc+AzrXPhM6/IM60zrHOuc+E4b22IM+AzrHPgc6uzrzOtc69zr/Pgjogzr/hvLEgzrThvbIgzrThvbQg4byEzrvOu86/zrkKK86WzrfOveG9uM+CIOG8kM694b22IM68zrXOs86sz4HOv865z4POuc69IOG9iM67z4XOvM+Azq/Ov8+FIOG8gc64z4HPjM6/zrkg4bymz4POsc69Lgorz4TOv+G/ls+DzrkgzrThvbIgzrzPjc64z4nOvSDhvKbPgc+HzrUgz4DOsc+E4b20z4Eg4byAzr3OtM+B4b+2zr0gz4TOtSDOuM614b+2zr0gz4TOtToKK868zr3Ors+DzrHPhM6/IM6z4b2wz4EgzrrOsc+E4b2wIM64z4XOvOG9uM69IOG8gM68z43OvM6/zr3Ov8+CIM6R4bywzrPOr8+DzrjOv865zr8sCivPhM+Mzr0g4b+l4oCZIOG8iM6zzrHOvM61zrzOvc6/zr3Or860zrfPgiDPhM63zrvOtc66zrvPhc+E4b24z4Ig4byUzrrPhM6xzr3igJkg4b2Iz4HOrc+Dz4TOt8+COgorz4TOv+G/piDhvYUgzrPigJkg4byQz4DOuc68zr3Ot8+DzrjOteG9ts+CIOG8lM+AzrXigJkg4byAzrjOsc69zqzPhM6/zrnPg865IM68zrXPhM63z43OtM6xOgorKgor4oCc4b2iIM+Az4zPgM6/zrksIM6/4by3zr/OvSDOtM6uIM69z4UgzrjOtc6/4b26z4IgzrLPgc6/z4TOv+G9tiDOseG8sM+EzrnPjM+Jzr3PhM6xzrk6CivhvJDOviDhvKHOvM6tz4nOvSDOs86sz4Egz4bOsc+DzrkgzrrOrM664oCZIOG8lM68zrzOtc69zrHOuSwgzr/hvLEgzrThvbIgzrrOseG9tiDOseG9kM+Ezr/hvbYKK8+Dz4bhv4fPg865zr0g4byAz4TOsc+DzrjOsc67zq/hv4PPg865zr0g4b2Rz4DhvbLPgSDOvM+Mz4HOv869IOG8hM67zrPOteKAmSDhvJTPh86/z4XPg865zr0sCivhvaHPgiDOus6x4b22IM694b+mzr0gzpHhvLTOs865z4POuM6/z4Ig4b2Rz4DhvbLPgSDOvM+Mz4HOv869IOG8iM+Ez4HOtc6vzIjOtM6xzr8KK86z4b+GzrzigJkg4byEzrvOv8+Hzr/OvSDOvM69zrfPg8+Ezq7OvSwgz4ThvbjOvSDOtOKAmSDhvJTOus+EzrHOvc61IM69zr/Pg8+Ezq7Pg86xzr3PhM6xLAorzrXhvLDOtOG9vM+CIM6x4bywz4DhvbrOvSDhvYTOu861zrjPgc6/zr0sIOG8kM+AzrXhvbYgz4DPgc+MIM6/4byxIM614by0z4DOv868zrXOvSDhvKHOvM614b+Wz4IsCivhvJnPgc68zrXOr86xzr0gz4DOrc68z4jOsc69z4TOtc+CLCDhvJDPjc+DzrrOv8+Azr/OvSDhvIDPgc6zzrXPis+Gz4zOvc+EzrfOvSwKK868zq7PhOKAmSDOseG9kM+E4b24zr0gzrrPhM61zq/Ovc61zrnOvSDOvM6uz4TOtSDOvM69zqzOsc+DzrjOsc65IOG8hM66zr/Ouc+EzrnOvToKK+G8kM66IM6z4b2wz4Eg4b2Iz4HOrc+Dz4TOsc6/IM+Ezq/Pg865z4Ig4byUz4PPg861z4TOsc65IOG8iM+Ez4HOtc6vzIjOtM6xzr8sCivhvYHPgM+Az4zPhOKAmSDhvILOvSDhvKHOss6uz4Phv4Mgz4TOtSDOus6x4b22IOG8p8+CIOG8sc68zrXOr8+BzrXPhM6xzrkgzrHhvLTOt8+CLgor4b2jz4Ig4byUz4bOsc644oCZIOG8mc+BzrzOtc6vzrHPgiwg4byAzrvOu+KAmSDOv+G9kCDPhs+Bzq3Ovc6xz4IgzpHhvLDOs86vz4POuM6/zrnOvworz4DOteG/ls644oCZIOG8gM6zzrHOuOG9sCDPhs+Bzr/Ovc6tz4nOvTogzr3hv6bOvSDOtOKAmSDhvIHOuM+Bz4zOsSDPgM6szr3PhOKAmSDhvIDPgM6tz4TOuc+DzrXOvS7igJ0KKworQFNFVCBbW1s6R3JlZWs6XSZbXHUwMzcwLVx1MDNFMSBcdTAzRjAtXHUwM0ZGXV0gW1w6LTs/XHUwMEI3XHUwMzdFXHUwMzg3XV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IYW4tTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjAzNjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dApAQCAtMCwwICsxLDI2IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAor5LuA5LmI5pivVW5pY29kZSjnu5/kuIDnoIEpPworVW5pY29kZee7meavj+S4quWtl+espuaPkOS+m+S6huS4gOS4quWUr+S4gOeahOaVsOWtl++8jAor5LiN6K665piv5LuA5LmI5bmz5Y+w77yMCivkuI3orrrmmK/ku4DkuYjnqIvluo/vvIwKK+S4jeiuuuaYr+S7gOS5iOivreiogOOAggorCivln7rmnKzkuIrvvIzorqHnrpfmnLrlj6rmmK/lpITnkIbmlbDlrZfjgILlroPku6zmjIflrprkuIDkuKrmlbDlrZfvvIzmnaXlgqjlrZjlrZfmr43miJblhbbku5blrZfnrKbjgILlnKjliJvpgKBVbmljb2Rl5LmL5YmN77yM5pyJ5pWw55m+56eN5oyH5a6a6L+Z5Lqb5pWw5a2X55qE57yW56CB57O757uf44CC5rKh5pyJ5LiA5Liq57yW56CB5Y+v5Lul5YyF5ZCr6Laz5aSf55qE5a2X56ym77ya5L6L5aaC77yM5Y2V5Y2V5qyn5bee5YWx5ZCM5L2T5bCx6ZyA6KaB5aW95Yeg56eN5LiN5ZCM55qE57yW56CB5p2l5YyF5ous5omA5pyJ55qE6K+t6KiA44CC5Y2z5L2/5piv5Y2V5LiA56eN6K+t6KiA77yM5L6L5aaC6Iux6K+t77yM5Lmf5rKh5pyJ5ZOq5LiA5Liq57yW56CB5Y+v5Lul6YCC55So5LqO5omA5pyJ55qE5a2X5q+N77yM5qCH54K556ym5Y+377yM5ZKM5bi455So55qE5oqA5pyv56ym5Y+344CCCisKK+i/meS6m+e8lueggeezu+e7n+S5n+S8muS6kuebuOWGsueqgeOAguS5n+WwseaYr+ivtO+8jOS4pOenjee8lueggeWPr+iDveS9v+eUqOebuOWQjOeahOaVsOWtl+S7o+ihqOS4pOS4quS4jeWQjOeahOWtl+espu+8jOaIluS9v+eUqOS4jeWQjOeahOaVsOWtl+S7o+ihqOebuOWQjOeahOWtl+espuOAguS7u+S9leS4gOWPsOeJueWumueahOiuoeeul+acuijnibnliKvmmK/mnI3liqHlmagp6YO96ZyA6KaB5pSv5oyB6K645aSa5LiN5ZCM55qE57yW56CB77yM5L2G5piv77yM5LiN6K665LuA5LmI5pe25YCZ5pWw5o2u6YCa6L+H5LiN5ZCM55qE57yW56CB5oiW5bmz5Y+w5LmL6Ze077yM6YKj5Lqb5pWw5o2u5oC75Lya5pyJ5o2f5Z2P55qE5Y2x6Zmp44CCCisKK1VuaWNvZGXmraPlnKjmlLnlj5jmiYDmnInov5nkuIDliIfvvIEKK1VuaWNvZGXnu5nmr4/kuKrlrZfnrKbmj5DkvpvkuobkuIDkuKrllK/kuIDnmoTmlbDlrZfvvIzkuI3orrrmmK/ku4DkuYjlubPlj7DvvIzkuI3orrrmmK/ku4DkuYjnqIvluo/vvIzkuI3orrrku4DkuYjor63oqIDjgIJVbmljb2Rl5qCH5YeG5bey57uP6KKr6L+Z5Lqb5bel5Lia55WM55qE6aKG5a+85Lus5omA6YeH55So77yM5L6L5aaC77yaQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXPlkozlhbblroPorrjlpJrlhazlj7jjgILmnIDmlrDnmoTmoIflh4bpg73pnIDopoFVbmljb2Rl77yM5L6L5aaCWE1MLCBKYXZhLCBFQ01BU2NyaXB0IChKYXZhU2NyaXB0KSwgTERBUCwgQ09SQkEgMy4wLCBXTUznrYnnrYnvvIzlubbkuJTvvIxVbmljb2Rl5piv5a6e546wSVNPL0lFQyAxMDY0NueahOato+inhOaWueW8j+OAguiuuOWkmuaTjeS9nOezu+e7n++8jOaJgOacieacgOaWsOeahOa1j+iniOWZqOWSjOiuuOWkmuWFtuS7luS6p+WTgemDveaUr+aMgeWug+OAglVuaWNvZGXmoIflh4bnmoTlh7rnjrDlkozmlK/mjIHlroPlt6XlhbfnmoTlrZjlnKjvvIzmmK/ov5HmnaXlhajnkIPova/ku7bmioDmnK/mnIDph43opoHnmoTlj5HlsZXotovlir/jgIIKKwor5bCGVW5pY29kZeS4juWuouaIt+acjeWKoeWZqOaIluWkmuWxguW6lOeUqOeoi+W6j+WSjOe9keermee7k+WQiO+8jOavlOS9v+eUqOS8oOe7n+Wtl+espumbhuiKguecgei0ueeUqOOAglVuaWNvZGXkvb/ljZXkuIDova/ku7bkuqflk4HmiJbljZXkuIDnvZHnq5nog73lpJ/otK/nqb/lpJrkuKrlubPlj7DvvIzor63oqIDlkozlm73lrrbvvIzogIzkuI3pnIDopoHph43lu7rjgILlroPlj6/lsIbmlbDmja7kvKDovpPliLDorrjlpJrkuI3lkIznmoTns7vnu5/vvIzogIzml6DmjZ/lnY/jgIIKKwor5YWz5LqOVW5pY29kZeWtpuacr+WtpuS8mgorVW5pY29kZeWtpuacr+WtpuS8muaYr+S4gOS4qumdnuebiOWIqeeahOe7hOe7h++8jOaYr+S4uuWPkeWxle+8jOaJqeWxleWSjOaOqOW5v+S9v+eUqFVuaWNvZGXmoIflh4bogIzlu7rnq4vnmoTvvIxVbmljb2Rl5a2m5pyv5a2m5Lya6K6+56uL5LqG546w5Luj6L2v5Lu25Lqn5ZOB5ZKM5qCH5YeG5paH5pys55qE6KGo56S65rOV44CC5a2m5pyv5a2m5Lya55qE5Lya5ZGY5Luj6KGo5LqG5bm/5rOb6aKG5Z+f55qE6K6h566X5py65ZKM6LWE6K6v5bel5Lia55qE5YWs5Y+45ZKM57uE57uH44CC5a2m5pyv5a2m5Lya5Y+q55Sx5Lya5ZGY5o+Q5L6b6LWE6YeR44CCVW5pY29kZeWtpuacr+WtpuS8mueahOS8muWRmOi1hOagvOW8gOaUvue7meS4lueVjOS4iuS7u+S9leaUr+aMgVVuaWNvZGXmoIflh4blkozluIzmnJvljY/liqnlhbbmianlsZXlkozmiafooYznmoTnu4Tnu4flj4rkuKrkurrjgIIKKwor5qyy55+l5pu05aSa5L+h5oGv77yM6K+35Y+C6ZiF5pyv6K+t6K+N5rGH6KGo77yMVW5pY29kZeS6p+WTgeagt+acrO+8jOaKgOacr+eugOS7i+WSjOWPguiAg+i1hOaWmeOAggorCitDaGluZXNlIHRyYW5zbGF0aW9uIGJ5ICDpu47lnIvnj40sIFhlcm94ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGVicmV3LUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQyNjc0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQKQEAgLTAsMCArMSwyNiBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK9ee15Qg15bXlCDXmdeV16DXmden15XXkyAoVW5pY29kZSk/CivXmdeV16DXmden15XXkyDXnten16bXlCDXnteh16TXqCDXmdeZ15fXldeT15kg15zXm9ecINeq15UsIAor15zXkCDXntep16DXlCDXotecINeQ15nXlteVINek15zXmNek15XXqNee15QsIAor15zXkCDXntep16DXlCDXkdeQ15nXlteVINeq15XXm9eg15nXqiwgCivXldec15Ag157Xqdeg15Qg15HXkNeZ15bXlSDXqdek15QuCisKK9eR15DXldek158g15HXodeZ16HXmSwg157Xl9ep15HXmdedINei15XXoden15nXnSDXqNenINeR157Xodek16jXmdedLiDXlNedINee15DXl9eh16DXmdedINeQ15XXqteZ15XXqiDXldeq15XXldeZ150g15DXl9eo15nXnSDXotecLdeZ15PXmSDXlNen16bXkNeqINee16HXpNeoINec15vXnCDXkNeX15Mg157XlNedLiDXkdeY16jXnSDXlNeV157XpteQINeU15nXldeg15nXp9eV15MsINeU15nXlSDXnteQ15XXqiDXntei16jXm9eV16og16fXmdeT15XXkyDXqdeV16DXldeqINec15TXp9em15DXqiDXlNee16HXpNeo15nXnSDXlNec15zXlS4g15DXoyDXnNeQINeQ15fXqiDXnteU158g15nXm9ec15Qg15zXlNeb15nXnCDXm9ee15XXqiDXqteV15XXmdedINee16HXpNen16ouINec15PXldeS157XkDog16jXpyDXnNeQ15nXl9eV15Mg15TXkNeZ16jXldek15DXmSDXoNeT16jXqdeZ150g15vXnteUINeh15XXkteZINen15nXk9eV15PXmdedINep15XXoNeZ150g16LXnCDXnteg16og15zXm9eh15XXqiDXkNeqINeb15wg15TXqdek15XXqiDXlNee15PXldeR16jXldeqINeR15UuINeZ16rXmdeo15Qg157XlteQ16og15DXoyDXnNep16TXlCDXkdeV15PXk9eqLCDXm9ee15Ug15DXoNeS15zXmdeqINec157XqdecLCDXnNeQINeU15nXlCDXk9eZINeR157Xoteo15vXqiDXp9eZ15PXldeTINeQ15fXqiDXkdei15HXldeoINeb15wg15TXkNeV16rXmdeV16osINeh15nXnteg15kg15TXpNeZ16HXldenINeV15TXodee15zXmdedINeU15jXm9eg15nXmdedINep15HXqdeZ157XldepINep15XXmNejLiAKKwor157Xoteo15vXldeqINen15nXk9eV15Mg15DXnNeVINeQ16Mg16HXldeq16jXldeqINeW15Ug15DXqiDXlteVLiDXm9ec15XXnteoLCDXqdeg15kg16fXmdeT15XXk9eZ150g15nXm9eV15zXmdedINec15TXqdeq157XqSDXkdeQ15XXqteVINee16HXpNeoINec16nXoNeZINeq15XXmdedINeg15HXk9ec15nXnSwg15DXlSDXnNeU16nXqtee16kg15HXnteh16TXqNeZ150g16nXldeg15nXnSDXnNeQ15XXqteVINeq15UuINei15wg15vXnCDXnteX16nXkSAo15XXkdee15nXldeX15Mg16nXqNeq15nXnSkg15zXqtee15XXmiDXkdee16HXpNeoINeo15Eg16nXnCDXntei16jXm9eV16og16fXmdeT15XXkyDXqdeV16DXldeqOyDXkNeV15zXnSDXm9ecINeQ15nXnteqINep16DXqteV16DXmdedINei15XXkdeo15nXnSDXkdeZ158g157Xoteo15vXldeqINen15nXk9eV15Mg15DXlSDXpNec15jXpNeV16jXnteV16og16nXldeg15XXqiDXp9eZ15nXnSDXlNeh15nXm9eV158g16nXmdeZ16TXktee15UuCisKK9eZ15XXoNeZ16fXldeTINee16nXoNeUINeQ16og15vXnCDXlteUIQor15nXldeg15nXp9eV15Mg157Xp9em15Qg157Xodek16gg15nXmdeX15XXk9eZINec15vXnCDXqteVLCDXnNec15Ag16rXnNeV16og15HXpNec15jXpNeV16jXnteULCDXkdeq15XXm9eg15nXqiwg15DXlSDXkdep16TXlC4g16rXp9efINeU15nXldeg15nXp9eV15Mg15DXldee16Ug16LXnC3XmdeT15kg15TXnteV15HXmdec15nXnSDXkdeq16LXqdeZ15nXlCDXm9ee15UgQXBwbGXigI8sIEhQ4oCPLCBJQk3igI8sIEp1c3RTeXN0ZW3igI8sIE1pY3Jvc29mdOKAjywgT3JhY2xl4oCPLCBTQVDigI8sIFN1buKAjywgU3liYXNl4oCPLCBVbmlzeXPigI8g15XXqNeR15nXnSDXkNeX16jXmdedLiDXmdeV16DXmden15XXkyDXoNeT16jXqSDXotecLdeZ15PXmSDXqten16DXmdedINee15XXk9eo16DXmdeZ150g15vXnteVIFhNTOKAjywgSmF2YeKAjywgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCnigI7igI8sIExEQVDigI8sIENPUkJBIDMuMOKAjuKAjywgV01M4oCPINeV15vXk9eV157XlCwg15XXnteU15XXldeUINec157Xotep15Qg15DXqiDXlNeZ15nXqdeV150g15TXqNep157XmSDXqdecINeq16fXnyBJU08vSUVDIDEwNjQ2LiDXlNeV15Ag16DXqtee15og16LXnCDXmdeT15kg157Xoteo15vXldeqINeU16TXotec15Qg16jXkdeV16osINeb15wg15TXk9ek15PXpNeg15nXnSDXlNeX15PXmdep15nXnSwg15XXnteV16bXqNeZ150g16jXkdeZ150g15DXl9eo15nXnS4g15TXldek16LXqiDXqten158g15TXmdeV16DXmden15XXkyDXldeW157Xmdeg15XXqiDXlNeb15zXmdedINeU16rXldee15vXmdedINeR15Ug16DXnteg15XXqiDXotedINeU157Xktee15XXqiDXlNeb15zXnC3XoteV15zXnteZ15XXqiDXlNeX16nXldeR15XXqiDXkdeZ15XXqteoLCDXkNep16gg157Xodeq157XoNeV16og15zXkNeX16jXldeg15Qg15HXmNeb16DXldec15XXkteZ15nXqiDXlNeq15XXm9eg15QuCisKK9ep15nXnNeV15Eg15nXldeg15nXp9eV15Mg15HXmdeZ16nXldee15kg16nXqNeqLdec16fXldeXINeQ15Ug15HXmdeZ16nXldee15nXnSDXqNeR15kt16nXm9eR15XXqiDXldeR15DXqteo15kg15DXmdeg15jXqNeg15gg157XkNek16nXqCDXl9eZ16HXm9eV158g16DXmdeb16gg15HXotec15XXmdeV16og15zXoteV157XqiDXlNep15nXnteV16kg15HXodeT16jXldeqINeU16rXldeV15nXnSDXlNee16HXldeo16rXmdeV16ouINeU15XXk9eV16og15zXmdeV16DXmden15XXkywg157Xldem16gg16rXldeb16DXlCDXkNeX15Mg15DXlSDXkNeq16gg15nXl9eZ15Mg15HXqNep16og15nXm9eV15wg15zXlNeo15fXmdeRINeQ16og15nXoteT15nXlSDXnNee15LXldeV158g16TXnNeY16TXldeo157XldeqLCDXkNeo16bXldeqINeV16nXpNeV16og15zXnNeQINem15XXqNeaINeR16nXmdeg15XXmdeZ150g157XqNeX15nXp9eZ150uINeZ15XXoNeZ16fXldeTINee15DXpNep16gg157XoteR16gg16DXqteV16DXmdedINeT16jXmiDXntei16jXm9eV16og16jXkdeV16og15XXqdeV16DXldeqINee15HXnNeZINep15nXmdek15LXnteVLgorCivXpNeo15jXmdedINeQ15XXk9eV16og15TXp9eV16DXodeV16jXpteZ15XXnSDXqdecINeZ15XXoNeZ16fXldeTIChVbmljb2RlIENvbnNvcnRpdW0pIAor15TXp9eV16DXodeV16jXpteZ15XXnSDXqdecINeZ15XXoNeZ16fXldeTINeU15XXkCDXkNeo15LXldefINec15zXkCDXnteY16jXqiDXqNeV15XXlyDXqdeg15XXodeTINeb15PXmSDXnNek16rXlywg15zXlNeo15fXmdeRINeV15zXp9eT150g15DXqiDXlNep15nXnteV16kg15HXqten158g15nXldeg15nXp9eV15MsINeQ16nXqCDXnteS15PXmdeoINeQ16og15nXmdem15XXkiDXlNeY16fXodeYINeR157Xldem16jXmSDXqteV15vXoNeUINeV16rXp9eg15nXnSDXnteV15PXqNeg15nXmdedLiDXl9eR16jXmdedINeR16fXldeg16HXldeo16bXmdeV150g157XkteV15XXnyDXqNeX15Eg16nXnCDXqteQ15LXmdeT15nXnSDXldeQ16jXkteV16DXmdedINeR16rXotep15nXmdeqINeU157Xl9ep15HXmdedINeV16LXmdeR15XXkyDXlNee15nXk9eiLiDXlNen15XXoNeh15XXqNem15nXldedINee157Xldee158g16LXnC3XmdeT15kg15PXnteZLdeX15HXqCDXkdec15HXky4g15TXl9eR16jXldeqINeR16fXldeg16HXldeo16bXmdeV150g15nXldeg15nXp9eV15Mg16TXqteV15fXlCDXnNeQ16jXkteV16DXmdedINeV15zXkNeg16nXmdedINek16jXmNeZ15nXnSwg15HXm9ecINeo15fXkdeZINeU16LXldec150sINeQ16nXqCDXqteV157Xm9eZ150g15HXqten158g15nXldeg15nXp9eV15Mg15XXntei15XXoNeZ15nXoNeZ150g15zXodeZ15nXoiDXkdeU16rXpNeq15fXldeq15Ug15XXlNeY157Xoteq15UuCisKK9ec157XmdeT16Ig16DXldeh16MsINeo15DXlCDXnteZ15zXldefINee15XXoNeX15nXnSwg16jXqdeZ157XlCDXl9ec16fXmdeqINep15wg157Xldem16jXmdedINee15XXqteQ157XmdedINec15nXldeg15nXp9eV15MsINee15HXldeQINeY15vXoNeZINeVLSDXl9eV157XqNeZINei15bXqCBb16fXmdep15XXqNeZ150g15HXkNeg15LXnNeZ16pdLgorCitAU0VUIFtbOkhlYnJldzpdIFtcdTA1QjAtXHUwNUI5XHUwNUJCLVx1MDVCQ1x1MDVDMS1cdTA1QzJcdTIxMzUtXHUyMTM4XV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0luc3RydWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZTE0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCEtLSAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKworPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgorPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQgRnJvbnRQYWdlIDQuMCI+Cis8bWV0YSBuYW1lPSJQcm9nSWQiIGNvbnRlbnQ9IkZyb250UGFnZS5FZGl0b3IuRG9jdW1lbnQiPgorPHRpdGxlPk5ldyBUcmFuc2xpdGVyYXRpb24gVGVzdCBGaWxlczwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IiNGRkZGRkYiPgorCis8aDI+TmV3IFRyYW5zbGl0ZXJhdGlvbiBUZXN0IEZpbGVzPC9oMj4KKzxwPlRoZSBUZXN0XyouaHRtbCBmaWxlcyBzaG93IHRoZSB0cmFuc2xpdGVyYXRpb24gb2YgY2hhcmFjdGVycyBmb3IgZ2l2ZW4KK2xhbmd1YWdlcy4gVGhlIHNhbXBsZSBmb3IgZWFjaCBsYW5ndWFnZSBjb25zaXN0cyBvZiAmcXVvdDtXaGF0IElzIFVuaWNvZGUmcXVvdDsKK2luIFRoYWksIGZvbGxvd2VkIGJ5IG90aGVyIGF2YWlsYWJsZSB0ZXh0LiBUaGUgdGV4dCBpcyBicm9rZW4gYXBhcnQgaW50bworc2VudGVuY2VzIGZvciBlYXNlIG9mIHZpZXdpbmcgKG5vdGU6IHdlIGtub3cgb2Ygc29tZSBwcm9ibGVtcyB3aXRoIHRoZSBzZW50ZW5jZQorcnVsZXMgZm9yIEphcGFuZXNlIGFuZCBDaGluZXNlKS4gVGhlIGxlZnQgY29sdW1uIGlzIHRoZSBvcmlnaW5hbCwgYW5kIHRoZSByaWdodAoraXMgdGhlIHJvbWFuaXphdGlvbi4gVGhlIHByb2dyYW0gYWxzbyBjb252ZXJ0cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzY3JpcHQuIElmCit0aGVyZSBpcyBhIGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlIHNvdXJjZSBhbmQgdGhlIHJldmVyc2UgdHJhbnNmb3JtYXRpb24sIHRoYXQKK2lzIGluZGljYXRlZCBieSBtYWtpbmcgdGhlIGJhY2tncm91bmQgPGZvbnQgY29sb3I9IiNGRjAwMDAiPjxiPnJlZDwvYj48L2ZvbnQ+Citmcm9tIHRoYXQgcG9pbnQgb24uPC9wPgorPGJsb2NrcXVvdGU+CisgIDxwPjxpPjxiPk5vdGU6IDwvYj5JZiB5b3UgaGF2ZSBzb21lIG1vcmUgdGV4dCB0aGF0IHlvdSB3b3VsZCBsaWtlIGFkZGVkIHRvIHRoZQorICBzYW1wbGUsIGp1c3QgbGV0IG1lIGtub3cuIEkgYW0gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gbmFtZSBsaXN0cywgc2luY2UKKyAgdGhleSBhcmUgdGhlIHR5cGljYWwgc291cmNlLjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U3RhbmRhcmRzPC9oMz4KKzxwPlRoZSBnb2FsIGlzIHRvIGZvbGxvdyBhIGdpdmVuIHN0YW5kYXJkLCBzdWNoIGFzIElTTyogb3IgVU5HRUdOIHdoZXJldmVyCitwb3NzaWJsZS4gV2UgYWxzbyBuZWVkIHRvIHJvdW5kLXRyaXAsIHNvIGluIHNvbWUgY2FzZXMsIHRoYXQgbWVhbnMgYWRkaW5nIHNvbWUKK2FkZGl0aW9uYWwgYWNjZW50IG1hcmtzIHRvIGRpc2FtYmlndWF0ZSBjaGFyYWN0ZXJzLiBBbmQgb2Z0ZW4gdGhlIHNvdXJjZQorc3RhbmRhcmRzIGFyZSBtaXNzaW5nIHNvbWUgY2hhcmFjdGVycywgc3VjaCBhcyBjaGFyYWN0ZXJzIHdpdGggY29tYmluaW5nIEhhbXphcworaW4gQXJhYmljLiBSZW1lbWJlciB0aGF0IHRoZSBnb2FsIGZvciB0aGVzZSBpcyB0cmFuc2xpdGVyYXRpb24gKHVuYW1iaWd1b3VzbHkKK3JlcHJlc2VudGluZyBhbGwgdGhlIGxldHRlcnMgaW4gdGhlIG9yaWdpbmFsKSwgbm90IHRyYW5zY3JpcHRpb24gKHJlcHJlc2VudGluZwordGhlIGJlc3QgcHJvbnVuY2lhdGlvbikuPC9wPgorPHVsPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9UaGFpLUxhdGluLmh0bWwiPlRoYWk8L2E+OjwvYj4gSVNPIDExOTQwICZsdDsgPGEgaHJlZj0iaHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL1RoYWkucjIucGRmIj5odHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvVGhhaS5yMi5wZGY8L2E+CisgICAgJmd0OyBwbHVzIGEgZmV3IGl0ZW1zOgorICAgIDx1bD4KKyAgICAgIDxsaT5BY2NlbnRzIG1heSBiZSBhZGRlZCB0byB0aGUgTGF0aW4gZm9yIGRpc2FtYmlndWF0aW9uLjwvbGk+CisgICAgICA8bGk+SW4gdGhlIG5leHQgcmVsZWFzZSwgd2UnZCBsaWtlIHRvIGRvIHRoZSBVTkdFR04gdmVyc2lvbiAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV90aC5wZGYiPmh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV90aC5wZGY8L2E+CisgICAgICAgICZndDsgd2hpY2ggaXMgcHJvYmFibHkgbW9yZSB1c2VmdWwgKGFuZCByZWFkYWJsZSksIGFuZCBmb2xsb3dzIG1vcmUKKyAgICAgICAgY2xvc2VseSB0aGUgVGhhaSBzdGFuZGFyZC48L2xpPgorICAgICAgPGxpPlNwYWNlcyBhcmUgcHJvdmlkZWQgYXQgd29yZC1icmVha3MsIHVzaW5nIHRoZSBUaGFpIEJyZWFrSXRlcmF0b3IuPC9saT4KKyAgICAgIDxsaT5BbiBpbmhlcmVudCB2b3dlbCAoJiM3ODg1OykgaXMgYWRkZWQsIGFzIGluIFVOR0VHTi4gVGhlIGRvdCBpcyBmb3IKKyAgICAgICAgZGlzYW1iaWd1YXRpb24uCisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+PGk+Tm90ZTogaWYgdGhlIGluaGVyZW50IHZvd2VsIHBvc2l0aW9ucyBjYW5ub3QgYmUgYWxnb3JpdGhtaWNhbGx5CisgICAgICAgICAgICBkZXRlcm1pbmVkLCBsZXQgbWUga25vdyBhbmQgSSB3aWxsIHJlbW92ZSB0aGVtLjwvaT48L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9BcmFiaWMtTGF0aW4uaHRtbCI+QXJhYmljPC9hPjogPC9iPkdlbmVyYWxseSBmb2xsb3dzCisgICAgVU5HRUdOICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2FyLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2FyLnBkZjwvYT4KKyAgICAmZ3Q7CisgICAgPHVsPgorICAgICAgPGxpPkFjY2VudHMgbWF5IGJlIGFkZGVkIHRvIHRoZSBMYXRpbiBmb3IgZGlzYW1iaWd1YXRpb24uPC9saT4KKyAgICAgIDxsaT5PY2Nhc2lvbmFsbHkgZGV2aWF0ZXMgaW4gdGhlIGRpcmVjdGlvbiBvZiBJU08gMjMzICZsdDsgPGEgaHJlZj0iaHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0FyYWJpYy5wZGYiPmh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9BcmFiaWMucGRmPC9hPgorICAgICAgICAmZ3Q7CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+d2l0aCB1bmRlcmRvdCBpbnN0ZWFkIG9mIGNlZGlsbGEgZm9yIGxldHRlciBsaWtlIFNBRCwgc2luY2UgdGhvc2UKKyAgICAgICAgICAgIGFyZSBleHBsaWNpdGx5IGluIFVuaWNvZGUgZm9yIHRyYW5zbGl0ZXJhdGlvbiBvZiBBcmFiaWM8L2xpPgorICAgICAgICAgIDxsaT5hZGRpbmcgZXh0cmEgbm9uLUFyYWJpYy1sYW5ndWFnZSBsZXR0ZXJzLCBsaWtlIFBFSC4gTm90ZTogbm90IGFsbAorICAgICAgICAgICAgZXh0ZW5kZWQgQXJhYmljIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQgeWV0LjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgICAgPGxpPkRvZXMgPGk+bm90PC9pPiBkbyBhc3NpbWlsYXRpb24gb2YgJnF1b3Q7YWwmcXVvdDssIG5vciBoeXBoZW5hdGlvbiBvZgorICAgICAgICBpdC4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5XaGlsZSBpdCBjb3VsZCBiZSBkb25lLCB3ZSBuZWVkIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcHJlZml4CisgICAgICAgICAgICAmcXVvdDthbCZxdW90OyBjb3VsZCBvY2N1ciBvdGhlciB0aGFuIGFzIHRoZSBkZWZpbml0ZSBhcnRpY2xlIChzaW5jZQorICAgICAgICAgICAgbm8gc3BhY2UgaXMgdXNlZCkuPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+VGhpcyBpcyB0cmFuc2xpdGVyYXRpb24uIEZvciA8aT50cmFuc2NyaXB0aW9uPC9pPiBvbmUgd291bGQgd2FudCBhbgorICAgICAgICBlbmdpbmUgdGhhdCBhZGRlZCBwb2ludHMgYXBwcm9wcmlhdGVseSB0byB0aGUgSGVicmV3LjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxiPjxhIGhyZWY9IlRlc3RfSGVicmV3LUxhdGluLmh0bWwiPkhlYnJldzwvYT48L2I+PGI+OiA8L2I+R2VuZXJhbGx5CisgICAgZm9sbG93cyBVTkdFR04gJmx0OyA8YSBocmVmPSJodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfaGUucGRmIj5odHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfaGUucGRmPC9hPgorICAgICZndDssIHdpdGggc29tZSBleGNlcHRpb25zOgorICAgIDx1bD4KKyAgICAgIDxsaT5BY2NlbnRzIG1heSBiZSBhZGRlZCB0byB0aGUgTGF0aW4gZm9yIGRpc2FtYmlndWF0aW9uLjwvbGk+CisgICAgICA8bGk+Q29tYmluYXRpb25zIG9mIGRhZ2VzaCwgc2hpbi9zaW4gZG90IHRoYXQgd291bGQgcHJvZHVjZSBkaWZmZXJlbnQKKyAgICAgICAgbGV0dGVycyBhcmUgbm90IHlldCBjYWxsZWQgb3V0LjwvbGk+CisgICAgICA8bGk+Tm90ZSB0aGF0IHRoZSBmaW5hbCBmb3JtcyBhcmUgbm90IHByZXNlcnZlZC4gVGh1cywgd2hlbiBnb2luZyBmcm9tCisgICAgICAgIExhdGluIHRvIEhlYnJldywgYSBjaGFyYWN0ZXIgaXMgZ2l2ZW4gZmluYWwgZm9ybSBkZXBlbmRpbmcgb24gaXRzCisgICAgICAgIHBvc2l0aW9uLgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPkUuZy4gJiMxNTAyOyYjMTUwMTsmIzE1MDI7JiMxNTAxOyA9Jmd0OyBtbW1tID0mZ3Q7CisgICAgICAgICAgICAmIzE1MDI7JiMxNTAyOyYjMTUwMjsmIzE1MDE7PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+VGhpcyBpcyB0cmFuc2xpdGVyYXRpb24uIEZvciA8aT50cmFuc2NyaXB0aW9uPC9pPiBvbmUgd291bGQgd2FudCBhbgorICAgICAgICBlbmdpbmUgdGhhdCBhZGRlZCBwb2ludHMgYXBwcm9wcmlhdGVseSB0byB0aGUgSGVicmV3LjwvbGk+CisgICAgICA8bGk+U2VlIGFsc28gJmx0OyA8YSBocmVmPSJodHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvSGVicmV3LnIxLnBkZiI+aHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0hlYnJldy5yMS5wZGY8L2E+CisgICAgICAgICZndDsgZm9yIHRoZSBJU08gdmVyc2lvbi4gVGhlIENoaWNhZ28gTWFudWFsIG9mIFN0eWxlIGhhcyBhIGNsZWFyIHRhYmxlCisgICAgICAgIG9mIG1hcHBpbmdzIGZvciB0aGUgdm93ZWwgbWFya3MuPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9IYW4tTGF0aW4uaHRtbCI+SGFuPC9hPjo8L2I+IFVzZXMgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFuZGFyaW50b29scy5jb20vY2VkaWN0Lmh0bWwiPkNFRElDVDwvYT4KKyAgICBkYXRhIHBsdXMgVW5pY29kZSBVbmloYW4gPGk+a01hbmRhcmluPC9pPiB2YWx1ZXMgZm9yIHBpbnlpbi4gRG9lc24ndAorICAgIHJvdW5kdHJpcCEKKyAgICA8dWw+CisgICAgICA8bGk+PGk+Tm90ZTogPC9pPnRoZSBDaGluZXNlIHByb251bmNpYXRpb24gb2YgSGFuIGNoYXJhY3RlcnMgdmFyaWVzIGJ5CisgICAgICAgIGNvbnRleHQgYW5kIGdyYW1tYXIsIHRob3VnaCBub3doZXJlIG5lYXIgYXMgbXVjaCBhIEphcGFuZXNlLgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPklkZWFsbHkgd2UnZCBoYXZlIGFuIHVuZGVybHlpbmcgZW5naW5lIGZvciB0aGlzLiBJbiAyLjQgd2Ugd2lsbAorICAgICAgICAgICAgaGF2ZSBhIHBsdWctaW4gaW50ZXJmYWNlIHNvIHRoYXQgcGVvcGxlIGNvdWxkIGFkZCBvbmUsIHN1Y2ggYXMgdGhlCisgICAgICAgICAgICBJQk0gZW5naW5lLjwvbGk+CisgICAgICAgICAgPGxpPlRoZSBkYXRhIGZyb20gQ0VESUNUIGFuZCBVbmloYW4gZG9uJ3QgbGlzdCB0aGUgbW9zdCBmcmVxdWVudAorICAgICAgICAgICAgY2hvaWNlIGZpcnN0LCBzbyB3ZSB3aWxsIGJlIHVwZGF0aW5nIHRoYXQuPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxhIGhyZWY9IlRlc3RfR3JlZWstTGF0aW5fVU5HRUdOLmh0bWwiPjxiPkdyZWVrL1VOR0VHTjwvYj48L2E+OiBVc2VzIGEKKyAgICBtb2Rlcm4gR3JlZWsgdHJhbnNsaXRlcmF0aW9uLCBiYXNlZCBvbiB0aGUgVU5HRUdOIHJ1bGVzIGF0ICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2VsLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2VsLnBkZjwvYT4KKyAgICAmZ3Q7LiBUaGlzIHZlcnNpb24gd2lsbCBub3Qgcm91bmR0cmlwIGFuY2llbnQgR3JlZWsuPC9saT4KKyAgPGxpPjxhIGhyZWY9IlRlc3RfR3JlZWstTGF0aW4uaHRtbCI+PGI+R3JlZWs8L2I+PC9hPjogVXNlcyBhIGNsYXNzaWMgR3JlZWsKKyAgICB0cmFuc2xpdGVyYXRpb24uIFRoaXMgdmVyc2lvbiB3aWxsIG5vdCByb3VuZHRyaXAgbW9kZXJuIEdyZWVrLjwvbGk+Cis8L3VsPgorPGgzPjxiPk5vdGVzPC9iPjwvaDM+Cis8b2w+CisgIDxsaT5Gb3IgcmVhZGFiaWxpdHksIHRoZSBmaWxlcyBoYXZlIGEgZmV3IG90aGVyIHRoaW5ncyBiZXNpZGVzIGp1c3QgdGhlCisgICAgdHJhbnNsaXRlcmF0aW9uOgorICAgIDx1bD4KKyAgICAgIDxsaT5UaGUgZmlyc3Qgd29yZCBvZiB0aGUgc2VudGVuY2VzIGFyZSB0aXRsZWNhc2VkLCBhcyBhcmUgbmFtZXMgKHdoZXJlIHdlCisgICAgICAgIGhhdmUgYSBuYW1lLWxpc3QsIHN1Y2ggYXMgaW4gVGhhaSkuPC9saT4KKyAgICAgIDxsaT5UaGUgTGF0aW4gaW4gdGhlIG9yaWdpbmFsIGlzIG1hcHBlZCB0byB0aGUgcHJpdmF0ZS11c2Ugem9uZSBiZWZvcmUKKyAgICAgICAgY29udmVyc2lvbiwgYW5kIHRoZW4gYWdhaW4gYWZ0ZXIgY29udmVyc2lvbi4gVGhpcyBkb2VzIGhhdmUgdGhlIGRvd25zaWRlCisgICAgICAgIHRoYXQgYW55IHJ1bGVzIChzdWNoIGFzIGluIEhhbikgdGhhdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgKGUuZy4gZm9yCisgICAgICAgIGluc2VydGluZyBzcGFjZXMgb3IgY2FwaXRhbGl6YXRpb24pIHdpbGwgZ3VtIHVwIGEgbGl0dGxlIGJpdC4gVGhpcyBpcworICAgICAgICBqdXN0IGFuIGFydGlmYWN0IG9mIHRoZSB0ZXN0IGRpc3BsYXkuPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+SSBkb24ndCB0aGluayB0aGF0IElTTyAxMTk0MCBpcyBhIHBhcnRpY3VsYXJseSBnb29kIHdheSB0byByb21hbml6ZSwgYnV0CisgICAgaXQgaXMgYXQgbGVhc3QgY29tcGxldGUgYW5kIGEgc3RhbmRhcmQuIFNvIHdoYXQgSSBhbSBpbnRlcmVzdGVkIGluIGp1c3QgZm9yCisgICAgbm93IGlzIHdoZXRoZXIgdGhlIHNhbXBsZXMgaW4gdGhlIGZpbGUgZm9sbG93IGl0ICh3aXRoIHRoZSBhYm92ZQorICAgIGV4Y2VwdGlvbnMpLjwvbGk+CisgIDxsaT5Tb21lIG9mIHRoZSBmaWxlcyBhbHNvIGhhdmUgYSBzZXQgb2YgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBvbmUgY2hhcmFjdGVyCisgICAgcGVyIHJvdywgd2l0aCBhIGZvbGxvd2luZyByb3cgbGlzdGluZyB0aGUgaGV4IGFuZCBuYW1lLjwvbGk+CisgIDxsaT5UaGUgc291cmNlIHJ1bGVzIGZvciBhbGwgb2YgdGhlc2UgaXMgaW4gdGhlIGZvbGxvd2luZyBVUkwuIFNvIGlmIHlvdSB3YW50CisgICAgdG8ga25vdyB0aGUgZGV0YWlscyBvZiBob3cgdGhlIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQsIHRoYXQgaXMgdGhlIHBsYWNlIHRvCisgICAgbG9vay4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3Uvc291cmNlL2RhdGEvdHJhbnNsaXQvIj5odHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL2ljdS9zb3VyY2UvZGF0YS90cmFuc2xpdC88L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorPC9vbD4KKworPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X1RoYWktTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMWYxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dApAQCAtMCwwICsxLDY5IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAorVW5pY29kZSDguITguLfguK3guK3guLDguYTguKM/CitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC4l+C4uOC4geC4reC4seC4geC4guC4o+C4sAor4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiUCivguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJQKK+C5geC4peC4sOC5hOC4oeC5iOC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC4oOC4suC4qeC4suC5g+C4lAorCivguYLguJTguKLguJ7guLfguYnguJnguJDguLLguJnguYHguKXguYnguKcsIOC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC4iOC4sOC5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4reC4h+C4geC4seC4muC5gOC4o+C4t+C5iOC4reC4h+C4guC4reC4h+C4leC4seC4p+C5gOC4peC4gi4g4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Lix4LiU4LmA4LiB4LmH4Lia4LiV4Lix4Lin4Lit4Lix4LiB4Lip4Lij4LmB4Lil4Liw4Lit4Lix4LiB4LiC4Lij4Liw4Lit4Li34LmI4LiZ4LmGIOC5guC4lOC4ouC4geC4suC4o+C4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5g+C4q+C5ieC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4leC4seC4py4g4LiB4LmI4Lit4LiZ4Lir4LiZ4LmJ4Liy4LiX4Li14LmI4LmKIFVuaWNvZGUg4LiI4Liw4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZLCDguYTguJTguYnguKHguLXguKPguLDguJrguJogZW5jb2Rpbmcg4Lit4Lii4Li54LmI4Lir4Lil4Liy4Lii4Lij4LmJ4Lit4Lii4Lij4Liw4Lia4Lia4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJLiDguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4Lih4Li14LiI4Liz4LiZ4Lin4LiZ4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Lih4Liy4LiB4LmA4Lie4Li14Lii4LiH4Lie4LitOiDguKLguIHguJXguLHguKfguK3guKLguYjguLLguIfguYDguIrguYjguJksIOC5gOC4ieC4nuC4suC4sOC5g+C4meC4geC4peC4uOC5iOC4oeC4quC4q+C4oOC4suC4nuC4ouC4uOC5guC4o+C4m+C5gOC4nuC4teC4ouC4h+C5geC4q+C5iOC4h+C5gOC4lOC4teC4ouC4pyDguIHguYfguJXguYnguK3guIfguIHguLLguKPguKvguKXguLLguKIgZW5jb2Rpbmcg4LmD4LiZ4LiB4Liy4Lij4LiE4Lij4Lit4Lia4LiE4Lil4Li44Lih4LiX4Li44LiB4Lig4Liy4Lip4Liy4LmD4LiZ4LiB4Lil4Li44LmI4LihLiDguKvguKPguLfguK3guYHguKHguYnguYHguJXguYjguYPguJnguKDguLLguKnguLLguYDguJTguLXguYjguKLguKcg4LmA4LiK4LmI4LiZIOC4oOC4suC4qeC4suC4reC4seC4h+C4geC4pOC4qSDguIHguYfguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4LmA4Lie4Li14Lii4LiH4Lie4Lit4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4LiV4Lix4Lin4Lit4Lix4LiB4Lip4LijLCDguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguKfguKPguKPguITguJXguK3guJkg4LmB4Lil4Liw4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmM4LiX4Liy4LiH4LmA4LiX4LiE4LiZ4Li04LiE4LiX4Li14LmI4LmD4LiK4LmJ4LiB4Lix4LiZ4Lit4Lii4Li54LmI4LiX4Lix4LmI4Lin4LmE4LibLiAKKwor4Lij4Liw4Lia4LiaIGVuY29kaW5nIOC5gOC4q+C4peC5iOC4suC4meC4teC5ieC4ouC4seC4h+C4guC4seC4lOC5geC4ouC5ieC4h+C4i+C4tuC5iOC4h+C4geC4seC4meC5geC4peC4sOC4geC4seC4mS4g4LiZ4Lix4LmI4LiZ4LiB4LmH4LiE4Li34LitLCDguYPguJnguKrguK3guIcgZW5jb2Rpbmcg4Liq4Liy4Lih4Liy4Lij4LiW4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Liq4Lit4LiH4LiV4Lix4Lin4LiX4Li14LmI4LmB4LiV4LiB4LiV4LmI4Liy4LiH4LiB4Lix4LiZLOC4q+C4o+C4t+C4reC5g+C4iuC5ieC4q+C4oeC4suC4ouC5gOC4peC4guC4leC5iOC4suC4h+C4geC4seC4meC4quC4s+C4q+C4o+C4seC4muC4reC4seC4geC4guC4o+C4sOC4leC4seC4p+C5gOC4lOC4teC4ouC4p+C4geC4seC4mS4g4LmD4LiZ4Lij4Liw4Lia4Lia4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMICjguYLguJTguKLguYDguInguJ7guLLguLDguYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwpIOC4leC5ieC4reC4h+C4oeC4teC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC4q+C4peC4suC4oiBlbmNvZGluZzsg4LmB4Lil4Liw4LmA4Lih4Li34LmI4Lit4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Li14LmI4Lic4LmI4Liy4LiZ4LmE4Lib4Lih4Liy4Lij4Liw4Lir4Lin4LmI4Liy4LiH4LiB4Liy4Lij4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4Liq4Lir4Lij4Li34Lit4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LiX4Li14LmI4LiV4LmI4Liy4LiH4LiB4Lix4LiZLCDguILguYnguK3guKHguLnguKXguJnguLHguYnguJnguIjguLDguYDguKrguLXguYjguKLguIfguJXguYjguK3guIHguLLguKPguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK1VuaWNvZGUg4LiI4Liw4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Li04LmI4LiH4LmA4Lir4Lil4LmI4Liy4LiZ4Lix4LmJ4LiZ4LiX4Lix4LmJ4LiH4Lir4Lih4LiUIQorVW5pY29kZSDguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguInguJ7guLLguLDguKrguLPguKvguKPguLHguJrguYHguJXguYjguKXguLDguK3guLHguIHguILguKPguLAsIOC5guC4lOC4ouC5hOC4oeC5iOC4quC4meC5g+C4iOC4p+C5iOC4suC5gOC4m+C5h+C4meC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC5g+C4lCwg4LmE4Lih4LmI4LiC4Li24LmJ4LiZ4LiB4Lix4Lia4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmD4LiU4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiULiDguKHguLLguJXguKPguJDguLLguJkgVW5pY29kZSDguYTguJTguYnguJbguLnguIHguJnguLPguYTguJvguYPguIrguYnguYLguJTguKLguJzguLnguYnguJnguLPguYPguJnguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEg4LmA4LiK4LmI4LiZIEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIOC5geC4peC4sOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIFVuaWNvZGUg4LmA4Lib4LmH4LiZ4Liq4Li04LmI4LiH4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lih4Liy4LiV4Lij4LiQ4Liy4LiZ4LmD4Lir4Lih4LmI4LmGIOC5gOC4iuC5iOC4mSBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCDguK/guKXguK8uLCDguYHguKXguLDguYDguJvguYfguJnguYHguJnguKfguJfguLLguIfguK3guKLguYjguLLguIfguYDguJvguYfguJnguJfguLLguIfguIHguLLguKPguYPguJnguIHguLLguKPguJfguLMgSVNPL0lFQyAxMDY0Ni4gVW5pY29kZSDguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguYPguJnguKPguLDguJrguJrguJvguI/guLTguJrguLHguJXguLTguIHguLLguKPguIjguLPguJnguKfguJnguKHguLLguIEsIOC4muC4o+C4suC4p+C5gOC4i+C4reC4o+C5jOC5g+C4q+C4oeC5iOC5hiDguJfguIHguJXguLHguKcsIOC5geC4peC4sOC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIOC4geC4suC4o+C5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4guC4reC4hyBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4l+C4ueC4peC4quC5jOC4leC5iOC4suC4h+C5hiDguJfguLXguYjguKHguLXguYPguJnguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSwg4LmA4Lib4LmH4LiZ4Lir4LiZ4Li24LmI4LiH4LmD4LiZ4LmB4LiZ4Lin4LmC4LiZ4LmJ4Lih4LiX4Liy4LiH4LmA4LiX4LiE4LmC4LiZ4LmC4Lil4Lii4Li14LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4Lij4Liw4LiU4Lix4Lia4LmC4Lil4LiB4LiX4Li14LmI4Lih4Li14LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiN4LiX4Li14LmI4Liq4Li44LiULgorCivguIHguLLguKPguKPguKfguKEgVW5pY29kZSDguYDguILguYnguLLguYTguJvguYPguJnguKPguLDguJrguJrguYTguITguKXguYDguK3guYfguJnguJXguYwt4LmA4LiL4Li04Lij4LmM4Lif4LmA4Lin4Lit4Lij4LmMIOC4q+C4o+C4t+C4reC5geC4reC5h+C4nuC4nuC4peC4tOC5gOC4hOC4iuC4seC4meC5geC4muC4miBtdWx0aS10aWVyZWQg4LmB4Lil4Liw4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmMIOC4iOC4sOC4l+C4s+C5g+C4q+C5ieC5gOC4geC4tOC4lOC4geC4suC4o+C4m+C4o+C4sOC4q+C4ouC4seC4lOC4hOC5iOC4suC5g+C4iuC5ieC4iOC5iOC4suC4ouC4oeC4suC4geC4geC4p+C5iOC4suC4geC4suC4o+C5g+C4iuC5ieC4iuC4uOC4lOC4reC4seC4geC4guC4o+C4sOC5geC4muC4muC5gOC4lOC4tOC4oS4gVW5pY29kZSDguJfguLPguYPguKvguYnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKvguJnguLbguYjguIfguYDguJTguLXguKLguKcg4Lir4Lij4Li34Lit4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmM4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4o+C4reC4h+C4o+C4seC4muC5hOC4lOC5ieC4q+C4peC4suC4ouC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oSwg4Lir4Lil4Liy4Lii4Lig4Liy4Lip4Liy4LmB4Lil4Liw4Lir4Lil4Liy4Lii4Lib4Lij4Liw4LmA4LiX4Lio4LmC4LiU4Lii4LmE4Lih4LmI4LiV4LmJ4Lit4LiH4LiX4Liz4LiB4Liy4Lij4Lij4Li34LmJ4Lit4Lib4Lij4Lix4Lia4Lij4Liw4Lia4LiaLiBVbmljb2RlIOC4ouC4seC4h+C4l+C4s+C5g+C4q+C5ieC4guC5ieC4reC4oeC4ueC4peC4quC4suC4oeC4suC4o+C4luC5gOC4hOC4peC4t+C5iOC4reC4meC4ouC5ieC4suC4ouC5hOC4m+C4oeC4suC5g+C4meC4q+C4peC4suC4ouC5hiDguKPguLDguJrguJrguYLguJTguKLguYTguKHguYjguYDguIHguLTguJTguITguKfguLLguKHguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK+C5gOC4geC4teC5iOC4ouC4p+C4geC4seC4miBVbmljb2RlIENvbnNvcnRpdW0KK1VuaWNvZGUgQ29uc29ydGl1bSDguYDguJvguYfguJnguK3guIfguITguYzguIHguKPguYTguKHguYjguYHguKrguKfguIfguKvguLLguIHguLPguYTguKPguJfguLXguYjguIHguYjguK3guJXguLHguYnguIfguILguLbguYnguJnguYDguJ7guLfguYjguK3guJ7guLHguJLguJnguLIsIOC4guC4ouC4suC4ouC5geC4peC4sOC4quC5iOC4h+C5gOC4quC4o+C4tOC4oeC4geC4suC4o+C5g+C4iuC5iSBVbmljb2RlIFN0YW5kYXJkLCDguIvguLbguYjguIfguIHguLPguKvguJnguJTguKPguLnguJvguYHguJrguJrguIHguLLguKPguYHguJfguJnguITguYjguLLguILguK3guIfguILguYnguK3guITguKfguLLguKHguYPguJnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguYHguKXguLDguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYuIOC4quC4oeC4suC4iuC4tOC4geC4guC4reC4h+C4quC4oeC4suC4hOC4oeC5gOC4m+C5h+C4meC4leC4seC4p+C5geC4l+C4meC4iOC4suC4geC4muC4o+C4tOC4qeC4seC4l+C5geC4peC4sOC4reC4h+C4hOC5jOC4geC4o+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4peC4sOC4geC4suC4o+C4m+C4o+C4sOC4oeC4p+C4peC4nOC4peC4quC4suC4o+C4quC4meC5gOC4l+C4qC4g4Liq4Lih4Liy4LiE4Lih4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4LiX4Liy4LiH4LiB4Liy4Lij4LmA4LiH4Li04LiZ4Lic4LmI4Liy4LiZ4LiX4Liy4LiH4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4LmH4LiZ4Liq4Lih4Liy4LiK4Li04LiB4LmA4LiX4LmI4Liy4LiZ4Lix4LmJ4LiZLiDguKrguKHguLLguIrguLTguIHguKDguLLguJ7guILguK3guIcgVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C4tOC4lOC4geC4p+C5ieC4suC4h+C4quC4s+C4q+C4o+C4seC4muC4reC4h+C4hOC5jOC4geC4o+C4q+C4o+C4t+C4reC4muC4uOC4hOC4hOC4peC5g+C4lOC5hiDguYPguJnguYLguKXguIHguJfguLXguYjguJXguYnguK3guIfguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSBTdGFuZGFyZCDguYHguKXguLDguIrguYjguKfguKLguYDguKvguKXguLfguK3guIHguLLguKPguILguKLguLLguKLguJXguLHguKfguYHguKXguLDguIHguLLguKPguJnguLMgVW5pY29kZSDguYTguJvguYPguIrguYnguIfguLLguJkuIAorCivguKrguLPguKvguKPguLHguJrguILguYnguK3guKHguLnguKXguYDguJ7guLTguYjguKHguYDguJXguLTguKEsIOC5g+C4q+C5ieC4lOC4ueC4l+C4teC5iCBHbG9zc2FyeSwgU2FtcGxlIFVuaWNvZGUtRW5hYmxlZCBQcm9kdWN0cywgVGVjaG5pY2FsIEludHJvZHVjdGlvbiDguYHguKXguLAgVXNlZnVsIFJlc291cmNlcy4KKwor4LmA4Lib4LmH4LiZ4Lih4LiZ4Li44Lip4Lii4LmM4Liq4Li44LiU4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmA4Lil4Li04Lio4LiE4Li44LiT4LiE4LmI4LiyCivguIHguKfguYjguLLguJrguKPguKPguJTguLLguJ3guLnguIfguKrguLHguJXguKfguYzguYDguJTguKPguLHguIjguInguLLguJkKK+C4iOC4h+C4neC5iOC4suC4n+C4seC4meC4nuC4seC4kuC4meC4suC4p+C4tOC4iuC4suC4geC4suC4owor4Lit4Lii4LmI4Liy4Lil4LmJ4Liy4LiH4Lic4Lil4Liy4LiN4Lik4LmF4LmA4LiC4LmI4LiZ4LiG4LmI4Liy4Lia4Li14LiR4Liy4LmD4LiE4LijCivguYTguKHguYjguJbguLfguK3guYLguJfguKnguYLguIHguKPguJjguYHguIrguYjguIfguIvguLHguJTguK7guLbguJTguK7guLHguJTguJTguYjguLIKK+C4q+C4seC4lOC4reC4oOC4seC4ouC5gOC4q+C4oeC4t+C4reC4meC4geC4teC4rOC4suC4reC4seC4iuC4jOC4suC4quC4seC4ogor4Lib4LiP4Li04Lia4Lix4LiV4Li04Lib4Lij4Liw4Lie4Lik4LiV4Li04LiB4LiO4LiB4Liz4Lir4LiZ4LiU4LmD4LiICivguJ7guLnguJTguIjguLLguYPguKvguYnguIjguYrguLAg4LmGIOC4iOC5i+C4siDguYYg4LiZ4LmI4Liy4Lif4Lix4LiH4LmA4Lit4Lii4LivCisKK+C5geC4q+C4peC5iOC4h+C4l+C4teC5iOC4oeC4siA6IOC4quC4oeC4suC4hOC4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4q+C5iOC4h+C4m+C4o+C4sOC5gOC4l+C4qOC5hOC4l+C4ogorCivguIXguJnguIPguKfguJQga2hvIGtodWF0IGFuZCBraG8ga2hvbgorQFRJVExFQ0FTRUAKK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkKK+C4geC4iuC4geC4oyDguKjguKPguLLguJfguJjguJfguLHguJUKK+C4geC4leC4tOC4geC4siDguK3guLHguIfguITguKrguLjguKDguJMKK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsKK+C4geC4meC4gSDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUKK+C4geC4meC4geC4geC4oyDguIrguYnguLLguIfguYDguKLguYfguJnguInguYjguLMKK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwKK+C4geC4meC4geC4meC4p+C4pSDguYLguJvguKnguKLguLDguJnguLHguJnguJfguJnguYwKK+C4geC4meC4geC4nuC4oyDguITguKHguITguLLguKIKK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoKK+C4geC4meC4geC4nuC4oyDguJ7guLHguJnguJfguKMKK+C4geC4meC4geC4nuC4oyDguKjguKPguLXguJrguLHguJPguJHguLTguJUKK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwKK+C4geC4meC4geC4nuC4o+C4o+C4kyDguKjguKPguLXguKfguJnguLLguKDguLTguKPguKHguKLguYwKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguYDguIHguLXguKLguKPguJXguLTguKLguLTguYjguIfguK3guLHguIfguKjguLjguKXguLUKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguITguIfguITguLLguJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguYHguIvguYjguYDguJXguLXguKLguKcKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKrguLHguIjguIjguJ7guIfguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUKK+C4geC4meC4geC4qOC4seC4geC4lOC4tOC5jCDguKLguLTguYjguIfguKLguIcKK+C4geC4meC4geC5geC4geC5ieC4pyDguIHguKPguKrguKHguLTguJUKK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwKK+C4geC4meC4tOC4qeC4kOC4siDguKvguKfguLHguIfguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgKK+C4geC4oeC4pSDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwKK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwKK+C4geC4oeC4pSDguYDguIjguJXguJnguYzguKHguIfguITguKXguKPguLHguJXguJnguYwKK+C4geC4oeC4pSDguIrguLnguJXguKPguLDguIHguLnguKXguJjguKPguKPguKEKK0BTRVQgW1s6dGhhaTpdIFx1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiZGNkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsMjUyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKKworLyoqCisgKiBBIHN1YmNsYXNzIG9mIHtAbGluayBEdW1iVGV4dENvbXBvbmVudH0gdGhhdCBwYXNzZXMga2V5IGV2ZW50cyB0aHJvdWdoCisgKiBhIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfS4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50IGV4dGVuZHMgRHVtYlRleHRDb21wb25lbnQgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCA9IG51bGw7CisgICAgCisgICAgLy8gTk9URTogRElTQUJMRSBUSEUgU1RBUlQgQU5EIENVUlNPUiBVTlRJTCBXRSBDQU4gR0VUIElUIFRPIFdPUksgQVQgQUxMCisKKyAgICAvLyBJbmRleCBpbnRvIGdldFRleHQoKSB3aGVyZSB0aGUgc3RhcnQgb2YgdHJhbnNsaXRlcmF0aW9uIGlzLgorICAgIC8vIEFzIHdlIGNvbW1pdCB0ZXh0IGR1cmluZyB0cmFuc2xpdGVyYXRpb24sIHdlIGFkdmFuY2UKKyAgICAvLyB0aGlzLgorICAgIC8vcHJpdmF0ZSBpbnQgc3RhcnQgPSAwOworCisgICAgLy8gSW5kZXggaW50byBnZXRUZXh0KCkgd2hlcmUgdGhlIGN1cnNvciBpczsgY3Vyc29yID49IHN0YXJ0CisgICAgLy9wcml2YXRlIGludCBjdXJzb3IgPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50KCkgeworICAgICAgICBzdXBlcigpOworICAgICAgICAvKgorICAgICAgICBhZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIC8vIFdlIGdldCBhbiBBY3Rpb25FdmVudCBvbmx5IHdoZW4gdGhlIHNlbGVjdGlvbiBjaGFuZ2VzCisgICAgICAgICAgICAgICAgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB7QGxpbmsgRHVtYlRleHRDb21wb25lbnR9IEFQSS4gIEZyYW1ld29yayBtZXRob2QgdGhhdCBpcyBjYWxsZWQKKyAgICAgKiB3aGVuIGEgPGNvZGU+S2V5RXZlbnQ8L2NvZGU+IGlzIHJlY2VpdmVkLiAgVGhpcyBpbXBsZW1lbnRhdGlvbgorICAgICAqIHJ1bnMgdGhlIG5ldyBjaGFyYWN0ZXIgdGhyb3VnaCB0aGUgY3VycmVudAorICAgICAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiwgaWYgb25lIGlzIHNldCwgYW5kIGluc2VydHMgdGhlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdGV4dCBpbnRvIHRoZSBidWZmZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlS2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBjaGFyIGNoID0gZS5nZXRLZXlDaGFyKCk7CisgICAgICAgIAorICAgICAgICBpZiAodHJhbnNsaXQgPT0gbnVsbCkgeworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgc3VwZXIuaGFuZGxlS2V5VHlwZWQoZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0cmFuc2xpdGVyYXRlKGNoLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAodHJhbnNsaXQgIT0gbnVsbCkgdHJhbnNsaXRlcmF0ZSgnXHVGRkZGJywgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRyYW5zbGl0ZXJhdGUoY2hhciBjaCwgYm9vbGVhbiBmbHVzaCkgeworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNhc2UgbW90aXZhdGVzIHRoZSB0d28gbGluZXMgdGhhdCByZWNvbXB1dGUKKyAgICAgICAgLy8gc3RhcnQgYW5kIGN1cnNvciBiZWxvdy4KKworICAgICAgICAvLyAgICAgICIgICAgICIgICAKKyAgICAgICAgLy8gYSBiIGMgcSByfHMgdCB1IG0gbQorICAgICAgICAvLyAwIDEgMiAzIDQgNSA2IDcgOCA5CisgICAgICAgIC8vICAgICAgIDAgMSAyCisKKyAgICAgICAgLy8gc3RhcnQgMywgY3Vyc29yIDUsIHNlbCA2IC0+IHsgMCwgMywgMiB9CisgICAgICAgIC8vIDogbmV3IGludFtdIHsgMCwgc2VsIC0gc3RhcnQsIGN1cnNvciAtIHN0YXJ0IH07CisgICAgICAgIAorICAgICAgICAvLyBzej45OXw5CisKKyAgICAgICAgLy8gICAgICAiICAgICB7ICAgIgorICAgICAgICAvLyBhIGIgYyBxIHIgOSA5fDkgdCB1IG0gbQorICAgICAgICAvLyAwIDEgMiAzIDQgNSA2IDcgOCA5IGEgYgorICAgICAgICAvLyAgICAgICAwIDEgMiAzIDQKKworICAgICAgICAvLyB7IDMsIDUsIDQgfSAtPiBzdGFydCA2LCBjdXJzb3IgNywgc2VsIDgKKyAgICAgICAgLy8gOiBzdGFydCArPSBpbmRleFswXTsKKyAgICAgICAgLy8gOiBjdXJzb3IgPSBzdGFydCArIGluZGV4WzJdIC0gaW5kZXhbMF07CisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8vIE5lZWQgdG8gc2F2ZSBzdGFydCBiZWNhdXNlIGNhbGxzIHRvIHJlcGxhY2VSYW5nZSB3aWxsIHVwZGF0ZQorICAgICAgICAvLyBzdGFydCBhbmQgY3Vyc29yLgorICAgICAgICAvL2ludCBzYXZlU3RhcnQgPSBzdGFydDsKKworICAgICAgICBpbnQgZW5kID0gZmx1c2ggPyBnZXRTZWxlY3Rpb25FbmQoKSA6IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2VUZXh0ID0gZ2V0VGV4dCgpLnN1YnN0cmluZygwLGVuZCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIGJ1ZiA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2VUZXh0KTsKKyAgICAgICAgLypidWYucmVwbGFjZSgwLCAxLCBnZXRUZXh0KCkuc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkpKTsqLworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgaW5kZXguY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgaW5kZXguc3RhcnQgPSBnZXRLZXlTdGFydCgpOworICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gLTEpIGluZGV4LnN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgaW5kZXgubGltaXQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgIC8vICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zbGl0ZXJhdG9yOiAiICsgdHJhbnNsaXQuZ2V0SUQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZyb206XHQiICsgJyInICsgYnVmLnRvU3RyaW5nKCkgKyAnIicKKyAgICAgICAgICAgICAgICArICI7IHtjczogIiArIGluZGV4LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIGluZGV4LnN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgaW5kZXgubGltaXQKKyAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgaW5kZXguY29udGV4dExpbWl0IAorICAgICAgICAgICAgICAgICsgIn0iICsgIjsgJyIgKyBjaCArICInIgorICAgICAgICAgICAgICAgICsgIiAiICsgZ2V0S2V5U3RhcnQoKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgdHJhbnNsaXQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKGJ1ZiwgaW5kZXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHJhbnNsaXQudHJhbnNsaXRlcmF0ZShidWYsIGluZGV4LCBjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUbzpcdCIgKyAnIicgKyBidWYudG9TdHJpbmcoKSArICciJworICAgICAgICAgICAgICAgICsgIjsge2NzOiAiICsgaW5kZXguY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBzOiAiICsgaW5kZXguc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBpbmRleC5saW1pdAorICAgICAgICAgICAgICAgICsgIiwgY2w6ICIgKyBpbmRleC5jb250ZXh0TGltaXQgCisgICAgICAgICAgICAgICAgKyAifSIKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUoYnVmKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgLy9pZiAocmVzdWx0LmVxdWFscyhzb3VyY2VUZXh0ICsgY2gpKSByZXR1cm47CisgICAgICAgIAorICAgICAgICByZXBsYWNlUmFuZ2UocmVzdWx0LCAwLCBnZXRTZWxlY3Rpb25FbmQoKSk7CisgICAgICAgIHNldEtleVN0YXJ0KGluZGV4LnN0YXJ0KTsKKyAgICAgICAgCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgc3RhcnQgaGFzIGJlZW4gY2hhbmdlZCBieSB0aGUgY2FsbGJhY2sgdG8KKyAgICAgICAgLy8gcmVzZXRUcmFuc2xpdGVyYXRvclN0YXJ0KCkgdmlhIHJlcGxhY2VSYW5nZSgpIC0tIHNvIHVzZSBvdXIKKyAgICAgICAgLy8gbG9jYWwgY29weSwgc2F2ZVN0YXJ0LgorCisgICAgICAgIC8vIFRoZSBTVEFSVCBpbmRleCBpcyB6ZXJvLWJhc2VkLiAgT24gZW50cnkgdG8gdHJhbnNsaXRlcmF0ZSgpLAorICAgICAgICAvLyBpdCB3YXMgemVyby4gIFdlIGNhbiB0aGVyZWZvcmUganVzdCBhZGQgaXQgdG8gb3VyIG9yaWdpbmFsCisgICAgICAgIC8vIGdldFRleHQoKS1iYXNlZCBpbmRleCB2YWx1ZSBvZiBzdGFydCAoaW4gc2F2ZVN0YXJ0KSB0byBnZXQKKyAgICAgICAgLy8gdGhlIG5ldyBnZXRUZXh0KCktYmFzZWQgc3RhcnQuCisvLyAgICAgICAgc3RhcnQgPSBzYXZlU3RhcnQgKyBpbmRleC5jb250ZXh0U3RhcnQ7CisKKyAgICAgICAgLy8gTWFrZSB0aGUgY3Vyc29yIGdldFRleHQoKS1iYXNlZC4gIFRoZSBDVVJTT1IgaW5kZXggaXMgemVyby1iYXNlZC4KKy8vICAgICAgICBjdXJzb3IgPSBzdGFydCArIGluZGV4LnN0YXJ0IC0gaW5kZXguY29udGV4dFN0YXJ0OworCisvKgorICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN0cmluZyBvdXQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQob3V0LnN1YnN0cmluZygwLCBpbmRleC5jb250ZXh0U3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3snKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQob3V0LnN1YnN0cmluZyhpbmRleC5jb250ZXh0U3RhcnQsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKG91dC5zdWJzdHJpbmcoaW5kZXguc3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJyInKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoIiwgeyIgKyBpbmRleC5jb250ZXh0U3RhcnQgKyAiLCAiICsgaW5kZXguY29udGV4dExpbWl0ICsgIiwgIiArIGluZGV4LnN0YXJ0ICsgIn0sICIpOworLy8gICAgICAgICAgICBsb2cuYXBwZW5kKCJzdGFydCAiICsgc3RhcnQgKyAiLCBjdXJzb3IgIiArIGN1cnNvcik7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCIsIHNlbCAiICsgZ2V0U2VsZWN0aW9uU3RhcnQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcn0gYW5kIGRpcmVjdGlvbiB0bworICAgICAqIHVzZSB0byBwcm9jZXNzIGluY29taW5nIDxjb2RlPktleUV2ZW50PC9jb2RlPnMuCisgICAgICogQHBhcmFtIHQgdGhlIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfSB0byB1c2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgIC8qCisgICAgICAgIGlmICh0cmFuc2xpdCAhPSB0KSB7IC8vIFtzaWNdIHBvaW50ZXIgY29tcGFyZSBvazsgc2luZ2xldG9ucworICAgICAgICAgICAgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIHRyYW5zbGl0ID0gdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0VHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHJldHVybiB0cmFuc2xpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgc3RhcnQgcG9pbnQgYXQgd2hpY2ggdHJhbnNsaXRlcmF0aW9uIGJlZ2lucy4gIFRoaXMKKyAgICAgKiBuZWVkcyB0byBiZSBkb25lIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIGN1cnNvciBvciB3aGVuIHRoZQorICAgICAqIGN1cnJlbnQge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3J9IGlzIGNoYW5nZWQuIAorICAgICAqLworICAgICAvKgorICAgIHByaXZhdGUgdm9pZCByZXNldFRyYW5zbGl0ZXJhdGlvblN0YXJ0KCkgeworICAgICAgICBzdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGN1cnNvciA9IHN0YXJ0OworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogRXNjYXBlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFzIFVuaWNvZGUuCisgICAgICogSlVTVCBGT1IgREVCVUdHSU5HIE9VVFBVVC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBlc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8PSAweDAwN0YpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcXFwiKTsgLy8gVGhhdCBpcywgIlxcIgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW9uQ2hhcnQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpb25DaGFydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ODdlYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW9uQ2hhcnQuamF2YQpAQCAtMCwwICsxLDI4NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0aW9uQ2hhcnQgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQiKTsKKyAgICAgICAgVW5pY29kZVNldCBsZW5ndGhNYXJrcyA9IG5ldyBVbmljb2RlU2V0KCJbXHUwOUQ3XHUwQjU2LVx1MEI1N1x1MEJEN1x1MEM1Nlx1MENENS1cdTBDRDZcdTBENTdcdTBDNTVcdTBDRDVdIik7CisgICAgICAgIGludFtdIGluZGljU2NyaXB0cyA9IHsKKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICBVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICBVU2NyaXB0LkJFTkdBTEksCisgICAgICAgICAgICBVU2NyaXB0LkdVUk1VS0hJLAorICAgICAgICAgICAgVVNjcmlwdC5HVUpBUkFUSSwKKyAgICAgICAgICAgIFVTY3JpcHQuT1JJWUEsCisgICAgICAgICAgICBVU2NyaXB0LlRBTUlMLAorICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsCisgICAgICAgICAgICBVU2NyaXB0LktBTk5BREEsCisgICAgICAgICAgICBVU2NyaXB0Lk1BTEFZQUxBTSwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgU3RyaW5nW2luZGljU2NyaXB0cy5sZW5ndGhdOworICAgICAgICBVbmljb2RlU2V0W10gc2V0cyA9IG5ldyBVbmljb2RlU2V0W2luZGljU2NyaXB0cy5sZW5ndGhdOworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIGZhbGxiYWNrcyA9IG5ldyBUcmFuc2xpdGVyYXRvcltpbmRpY1NjcmlwdHMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG5hbWVzW2ldID0gVVNjcmlwdC5nZXROYW1lKGluZGljU2NyaXB0c1tpXSk7CisgICAgICAgICAgICBzZXRzW2ldID0gbmV3IFVuaWNvZGVTZXQoIltbOiIgKyBuYW1lc1tpXSArICI6XSZbWzpMOl1bOk06XV0mWzphZ2U9My4xOl1dIik7CisgICAgICAgICAgICBmYWxsYmFja3NbaV0gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LSIgKyBuYW1lc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgRXF1aXZDbGFzcyBlcSA9IG5ldyBFcXVpdkNsYXNzKG5ldyBSZXZlcnNlQ29tcGFyYXRvcigpKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBvcGVuUHJpbnRXcml0ZXIoInRyYW5zQ2hhcnQuaHRtbCIpOworICAgICAgICBwdy5wcmludGxuKCI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0aXRsZT5JbmRpYyBUcmFuc2xpdGVyYXRpb24gQ2hhcnQ8L3RpdGxlPjxzdHlsZT4iKTsKKyAgICAgICAgcHcucHJpbnRsbigidGQgeyB0ZXh0LWFsaWduOiBDZW50ZXI7IGZvbnQtc2l6ZTogMjAwJSB9Iik7CisgICAgICAgIHB3LnByaW50bG4oInR0IHsgZm9udC1zaXplOiA1MCUgfSIpOworICAgICAgICBwdy5wcmludGxuKCJ0ZC5taXNzIHsgYmFja2dyb3VuZC1jb2xvcjogI0NDQ0NGRiB9Iik7CisgICAgICAgIHB3LnByaW50bG4oIjwvc3R5bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPiIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFueVRvTGF0aW4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LWxhdGluIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJcdTA5NDZcdTA5M0UiOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBmYWlsTm9ybSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFNldCBsYXRpbkZhaWwgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpbmRpY1NjcmlwdHNbaV0gPT0gVVNjcmlwdC5MQVRJTikgY29udGludWU7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gbmFtZXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlQ2hhcnMgPSBzZXRzW2ldOworCisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGluZGljU2NyaXB0cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChpID09IGopIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBuYW1lc1tqXTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBmb3J3YXJkID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc291cmNlICsgJy0nICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBiYWNrd2FyZCA9IGZvcndhcmQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc291cmNlQ2hhcnMpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aE1hcmtzLmNvbnRhaW5zKGl0LmNvZGVwb2ludCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGl0LmNvZGVwb2ludCxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKHMsTm9ybWFsaXplci5ORkMsMCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsTm9ybS5hZGQoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHQgPSBmaXgoZm9yd2FyZC50cmFuc2xpdGVyYXRlKHMpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHQuZXF1YWxzKHRlc3RTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgciA9IGZpeChiYWNrd2FyZC50cmFuc2xpdGVyYXRlKHQpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuY29tcGFyZShzLHIsMCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljU2NyaXB0c1tqXSAhPSBVU2NyaXB0LkxBVElOKSBlcS5hZGQocyx0KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRpY1NjcmlwdHNbal0gPT0gVVNjcmlwdC5MQVRJTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluRmFpbC5hZGQocyArICIgLSAiICsgdCArICIgLSAiICsgcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY29sbGVjdCBlcXVpdmFsZW50cworICAgICAgICBwdy5wcmludGxuKCI8dGFibGUgYm9yZGVyPScxJyBjZWxsc3BhY2luZz0nMCc+PHRyPiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGljU2NyaXB0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcHcucHJpbnQoIjx0aCB3aWR0aD0nMTAlJz4iICsgbmFtZXNbaV0uc3Vic3RyaW5nKDAsMykgKyAiPC90aD4iKTsKKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCI8L3RyPiIpOworCisgICAgICAgIEl0ZXJhdG9yIHJpdCA9IGVxLmdldFNldEl0ZXJhdG9yKG5ldyBNeUNvbXBhcmF0b3IoKSk7CisgICAgICAgIHdoaWxlKHJpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFNldCBlcXVpdnMgPSAoU2V0KXJpdC5uZXh0KCk7CisgICAgICAgICAgICBwdy5wcmludCgiPHRyPiIpOworICAgICAgICAgICAgSXRlcmF0b3Igc2l0ID0gZXF1aXZzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZylzaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSBhbnlUb0xhdGluLnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChpdGVtLmVxdWFscygiIikgfHwgc291cmNlLmVxdWFscyhpdGVtKSkgaXRlbSA9ICImbmJzcDsiOworICAgICAgICAgICAgcHcucHJpbnQoIjx0ZD4iICsgaXRlbSArICI8L3RkPiIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzaXQgPSBlcXVpdnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpdGVtID0gIiI7CisgICAgICAgICAgICAgICAgd2hpbGUgKHNpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gKFN0cmluZylzaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNldHNbaV0uY29udGFpbnNBbGwodHJpYWwpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRyaWFsOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGNsYXNzU3RyaW5nID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgICAgICAgICBjbGFzc1N0cmluZyA9ICIgY2xhc3M9J21pc3MnIjsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBmYWxsYmFja3NbaV0udHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKCIiKSAmJiAhdGVtcC5lcXVhbHMoc291cmNlKSkgaXRlbSA9IHRlbXA7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBTdHJpbmcgYmFja3VwID0gaXRlbS5lcXVhbHMoIiIpID8gIiZuYnNwOyIgOiBpdGVtOworICAgICAgICAgICAgICAgIHB3LnByaW50KCI8dGQiICsgY2xhc3NTdHJpbmcgKyAiIHRpdGxlPSciICsgZ2V0TmFtZShpdGVtLCAiOyAiKSArICInPiIgCisgICAgICAgICAgICAgICAgICAgICsgYmFja3VwICsgIjxicj48dHQ+IiArIFV0aWxpdHkuaGV4KGl0ZW0pICsgIjwvdHQ+PC90ZD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBJdGVyYXRvciBzaXQgPSBlcXVpdnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChzaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKXNpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIjx0ZD4iICsgaXRlbSArICI8L3RkPiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigiPC90YWJsZT4iKTsKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5GYWlsZWQgTm9ybWFsaXphdGlvbjwvaDI+Iik7CisgICAgCisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGZhaWxOb3JtKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgcGllY2VzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiTm9ybToiICsgcyArICIsICIgKyBVdGlsaXR5LmhleChzKSArICIgIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShpdC5jb2RlcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICArICI7ICIgKyBkICsgIiwgIiArIFV0aWxpdHkuaGV4KGQpICsgIiwgIik7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihVQ2hhcmFjdGVyLmdldE5hbWUoZC5jaGFyQXQoMSkpICsgIjxicj4iKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXROYW1lKGQuY2hhckF0KDEpKS5pbmRleE9mKCJMRU5HVEgiKSA+PSAwKSBwaWVjZXMuYWRkKGQuY2hhckF0KDEpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB3LnByaW50bG4ocGllY2VzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPkZhaWxlZCBSb3VuZC1UcmlwPC9oMj4iKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGNpdCA9IGxhdGluRmFpbC5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGNpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNpdC5uZXh0KCkgKyAiPGJyPiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorCisgICAgICAgIHB3LnByaW50bG4oIjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iKTsKKyAgICAgICAgcHcuY2xvc2UoKTsgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZml4KFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwOTQ2XHUwOTNFIikpIHJldHVybiAiXHUwOTRBIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDNDZcdTBDM0UiKSkgcmV0dXJuICJcdTBDNEEiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MENDNlx1MENCRSIpKSByZXR1cm4gIlx1MENDQSI7CisKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTA5NDdcdTA5M0UiKSkgcmV0dXJuICJcdTA5NEIiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MEE0N1x1MEEzRSIpKSByZXR1cm4gIlx1MEE0QiI7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwQUM3XHUwQUJFIikpIHJldHVybiAiXHUwQUNCIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDNDdcdTBDM0UiKSkgcmV0dXJuICJcdTBDNEIiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MENDN1x1MENCRSIpKSByZXR1cm4gIlx1MENDQiI7CisgICAgICAgCisgICAgICAgIC8vcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIHJldHVybiBzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFByaW50V3JpdGVyIG9wZW5QcmludFdyaXRlcihTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgbGYgPSBuZXcgRmlsZShmaWxlTmFtZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ3JlYXRpbmcgZmlsZTogIiArIGxmLmdldEFic29sdXRlRmlsZSgpKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlTmFtZSksICJVVEY4IiksIDQqMTAyNCkpOworICAgIH0KKworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHMsIFN0cmluZyBzZXBhcmF0b3IpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgc2IuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBzYi5hcHBlbmQoVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBNeUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGkxID0gKChUcmVlU2V0KSBvMSkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGkyID0gKChUcmVlU2V0KSBvMikuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpMS5oYXNOZXh0KCkgJiYgaTIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSAoU3RyaW5nKWkxLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IChTdHJpbmcpaTIubmV4dCgpOworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBhLmNvbXBhcmVUbyhiKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaTEuaGFzTmV4dCgpKSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmIChpMi5oYXNOZXh0KCkpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgY2xhc3MgUmV2ZXJzZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IG8xLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBjaGFyIGExID0gYS5jaGFyQXQoMCk7CisgICAgICAgICAgICBTdHJpbmcgYiA9IG8yLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBjaGFyIGIxID0gYi5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZiAoYTEgPCAweDkwMCAmJiBiMSA+IDB4OTAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoYTEgPiAweDkwMCAmJiBiMSA8IDB4OTAwKSByZXR1cm4gKzE7CisgICAgICAgICAgICByZXR1cm4gYS5jb21wYXJlVG8oYik7CisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgICAgCisgICAgc3RhdGljIGNsYXNzIEVxdWl2Q2xhc3MgeworICAgICAgICBFcXVpdkNsYXNzKENvbXBhcmF0b3IgYykgeworICAgICAgICAgICAgY29tcGFyYXRvciA9IGM7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBIYXNoTWFwIGl0ZW1Ub1NldCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBjb21wYXJhdG9yOworICAgICAgICAKKyAgICAgICAgdm9pZCBhZGQoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICBTZXQgc2EgPSAoU2V0KWl0ZW1Ub1NldC5nZXQoYSk7CisgICAgICAgICAgICBTZXQgc2IgPSAoU2V0KWl0ZW1Ub1NldC5nZXQoYik7CisgICAgICAgICAgICBpZiAoc2EgPT0gbnVsbCAmJiBzYiA9PSBudWxsKSB7IC8vIG5ldyBzZXQhCisgICAgICAgICAgICAgICAgU2V0IHMgPSBuZXcgVHJlZVNldChjb21wYXJhdG9yKTsKKyAgICAgICAgICAgICAgICBzLmFkZChhKTsKKyAgICAgICAgICAgICAgICBzLmFkZChiKTsKKyAgICAgICAgICAgICAgICBpdGVtVG9TZXQucHV0KGEsIHMpOworICAgICAgICAgICAgICAgIGl0ZW1Ub1NldC5wdXQoYiwgcyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzYi5hZGQoYSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzYS5hZGQoYik7CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBtZXJnZSBzZXRzLCBkdW1waW5nIHNiCisgICAgICAgICAgICAgICAgc2EuYWRkQWxsKHNiKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHNiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpdGVtVG9TZXQucHV0KGl0Lm5leHQoKSwgc2EpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBNeUl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworICAgICAgICAgICAgcHJpdmF0ZSBJdGVyYXRvciBpdDsKKyAgICAgICAgICAgIE15SXRlcmF0b3IgKENvbXBhcmF0b3IgY29tcCkgeworICAgICAgICAgICAgICAgIFRyZWVTZXQgdmFsdWVzID0gbmV3IFRyZWVTZXQoY29tcCk7CisgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEFsbChpdGVtVG9TZXQudmFsdWVzKCkpOworICAgICAgICAgICAgICAgIGl0ID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXQuaGFzTmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIE9iamVjdCBuZXh0KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpdC5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FuJ3QgcmVtb3ZlIik7CisgICAgICAgICAgICB9ICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJdGVyYXRvciBnZXRTZXRJdGVyYXRvciAoQ29tcGFyYXRvciBjb21wKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE15SXRlcmF0b3IoY29tcCk7CisgICAgICAgIH0KKworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGQ5YzIwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9kZW1vLmJhdApAQCAtMCwwICsxLDEzIEBACitSRU0gLyoKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKK1JFTSAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorUkVNICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICovCitSRU0gRm9yIGJlc3QgcmVzdWx0cywgcnVuIHRoZSBkZW1vIGFzIGFuIGFwcGxldCBpbnNpZGUgb2YgTmV0c2NhcGUKK1JFTSB3aXRoIEJpdHN0cmVhbSBDeWJlcmJpdCBpbnN0YWxsZWQuCisKK1JFTSBzZXR1cCB5b3VyIEpESyAxLjEueCBwYXRoIGFuZCBjbGFzc3BhdGggaGVyZToKK2NhbGwgSkRLMTEKK3NldCBDTEFTU1BBVEg9Li4vdHJhbnNsaXQuamFyOyVDTEFTU1BBVEglCitqYXZhdyBEZW1vCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTdlZTViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApAQCAtMCwwICsxLDM0IEBACis8IS0tIAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxIVE1MPgorPEhFQUQ+Cis8VElUTEU+VHJhbnNsaXRlcmF0aW9uIERlbW88L1RJVExFPgorPC9IRUFEPgorPEJPRFk+Cis8QVBQTEVUIENPREU9ImNvbS5pYm0uZGVtby50cmFuc2xpdC5EZW1vQXBwbGV0LmNsYXNzIiBXSURUSD0xNDAgSEVJR0hUPTMzPjwvQVBQTEVUPgorCis8SFI+CisKK0lmIHlvdSBkb24ndCBzZWUgYSBidXR0b24gYWJvdmUsIHRoZW4geW91ciBicm93c2VyIGlzIGZhaWxpbmcgdG8KK2xvY2F0ZSB0aGUgbmVjZXNzYXJ5IEphdmEgY2xhc3MgZmlsZXMuCisKKzxQPgorCitPbmUgd2F5IHRvIG1ha2UgdGhpcyB3b3JrIGlzIHRvIGNvcHkgdGhpcyBIVE1MIGZpbGUgdG8KKzxjb2RlPmljdTRqL3NyYzwvY29kZT4sIGFuZCBtYWtlIHN1cmUgdGhlIEphdmEgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzCit1bmRlciA8Y29kZT5pY3U0ai9zcmMvY29tPC9jb2RlPiBhcmUgYnVpbHQuICBUaGVuIG9wZW4gdGhpcyBIVE1MIGZpbGUKK3VzaW5nIGEgYnJvd3NlciBvciBhcHBsZXR2aWV3ZXIuCisKKzxQPgorCitGb3IgYmVzdCByZXN1bHRzLCBydW4gdGhpcyBkZW1vIGFzIGFuIGFwcGxldCB3aXRoaW4gTmV0c2NhcGUgd2l0aAorQml0c3RyZWFtIEN5YmVyYml0IGluc3RhbGxlZC4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODM1NWQxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVHJhbnNsaXRlcmF0b3IgZGVtbyBhcHBsaWF0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfSGFuX1Bpbnlpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0hhbl9QaW55aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmN2MyMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0hhbl9QaW55aW4udHh0CkBAIC0wLDAgKzEsMjAzNjUgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBHZW5lcmF0ZWQ6IEZyaSBKYW4gMjYgMTU6MTQ6NDggMjAwMQorIyBUb29sOiAuLlwuLlx0b29sc1x0cmFuc2xpdFxoYW5waW55aW4ucGwKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEhhbi1QaW55aW4KKworIyBNZWNoYW5pY2FsbHkgZGVyaXZlZCBmcm9tIFxkZXNrXFVuaWhhbi50eHQgKGZ0cC51bmljb2RlLm9yZyksIHZlcnNpb246CisjCisjCU5hbWU6ICAgICAgICAgICAgIFVuaWhhbiBkYXRhYmFzZQorIwlVbmljb2RlIHZlcnNpb246ICAzLjBiMQorIwlUYWJsZSB2ZXJzaW9uOiAgICAxLjEKKyMJRGF0ZTogICAgICAgICAgICAgMiBKdWx5IDE5OTkKKyMKKyMJQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgVW5pY29kZSwgSW5jLiAgQWxsIFJpZ2h0cyByZXNlcnZlZC4KKwor5LiBID4gZMSrbmc7ICM0RTAxCivkuIIgPiBrxINvOyAjNEUwMgor5LiDID4gccSrOyAjNEUwMwor5LiEID4gc2jDoG5nOyAjNEUwNAor5LiFID4geGnDoDsgIzRFMDUKK+S4hyA+IG3DsjsgIzRFMDcKK+S4iCA+IHpow6BuZzsgIzRFMDgKK+S4iSA+IHPEgW47ICM0RTA5CivkuIogPiBzaMOgbmc7ICM0RTBBCivkuIsgPiB4acOgOyAjNEUwQgor5LiMID4gasSrOyAjNEUwQwor5LiNID4gYsO5OyAjNEUwRAor5LiOID4gecWtOyAjNEUwRQor5LiPID4gbWnEg247ICM0RTBGCivkuJAgPiBnw6BpOyAjNEUxMAor5LiRID4gY2jFj3U7ICM0RTExCivkuJIgPiBjaMWPdTsgIzRFMTIKK+S4kyA+IHpodcSBbjsgIzRFMTMKK+S4lCA+IHFpxJU7ICM0RTE0CivkuJUgPiBwxKs7ICM0RTE1CivkuJYgPiBzaMOsOyAjNEUxNgor5LiXID4gc2jDrDsgIzRFMTcKK+S4mCA+IHHEq3U7ICM0RTE4CivkuJkgPiBixK1uZzsgIzRFMTkKK+S4miA+IHnDqDsgIzRFMUEKK+S4myA+IGPDs25nOyAjNEUxQgor5LicID4gZMWNbmc7ICM0RTFDCivkuJ0gPiBzxKs7ICM0RTFECivkuJ4gPiBjaMOpbmc7ICM0RTFFCivkuJ8gPiBkxKt1OyAjNEUxRgor5LigID4gccSrdTsgIzRFMjAKK+S4oSA+IGxpxINuZzsgIzRFMjEKK+S4oiA+IGTEq3U7ICM0RTIyCivkuKMgPiB5xY91OyAjNEUyMwor5LikID4gbGnEg25nOyAjNEUyNAor5LilID4gecOhbjsgIzRFMjUKK+S4piA+IGLDrG5nOyAjNEUyNgor5LinID4gc8SBbmc7ICM0RTI3CivkuKggPiBnxa1uOyAjNEUyOAor5LipID4gasSrdTsgIzRFMjkKK+S4qiA+IGfDqDsgIzRFMkEKK+S4qyA+IHnEgTsgIzRFMkIKK+S4rCA+IHFpw6FuZzsgIzRFMkMKK+S4rSA+IHpoxY1uZzsgIzRFMkQKK+S4riA+IGrErTsgIzRFMkUKK+S4ryA+IGppw6g7ICM0RTJGCivkuLAgPiBmxJNuZzsgIzRFMzAKK+S4sSA+IGd1w6BuOyAjNEUzMQor5LiyID4gY2h1w6BuOyAjNEUzMgor5LizID4gY2jEg247ICM0RTMzCivkuLQgPiBsw61uOyAjNEUzNAor5Li1ID4gemjFrW87ICM0RTM1CivkuLYgPiB6aMWtOyAjNEUzNgor5Li4ID4gd8OhbjsgIzRFMzgKK+S4uSA+IGTEgW47ICM0RTM5CivkuLogPiB3w6hpOyAjNEUzQQor5Li7ID4gemjFrTsgIzRFM0IKK+S4vCA+IGrErW5nOyAjNEUzQwor5Li9ID4gbMOsOyAjNEUzRAor5Li+ID4gasWtOyAjNEUzRQor5Li/ID4gcGnElTsgIzRFM0YKK+S5gCA+IGbDujsgIzRFNDAKK+S5gSA+IHnDrTsgIzRFNDEKK+S5giA+IHnDrDsgIzRFNDIKK+S5gyA+IG7Eg2k7ICM0RTQzCivkuYUgPiBqxK11OyAjNEU0NQor5LmGID4gasStdTsgIzRFNDYKK+S5hyA+IHpow6k7ICM0RTQ3CivkuYggPiB5xIFvOyAjNEU0OAor5LmJID4gecOsOyAjNEU0OQor5LmLID4gemjEqzsgIzRFNEIKK+S5jCA+IHfFqzsgIzRFNEMKK+S5jSA+IHpow6A7ICM0RTRECivkuY4gPiBoxas7ICM0RTRFCivkuY8gPiBmw6E7ICM0RTRGCivkuZAgPiBsw6g7ICM0RTUwCivkuZEgPiB6aMOybmc7ICM0RTUxCivkuZIgPiBwxKtuZzsgIzRFNTIKK+S5kyA+IHBhbmc7ICM0RTUzCivkuZQgPiBxacOhbzsgIzRFNTQKK+S5lSA+IGjFrTsgIzRFNTUKK+S5liA+IGd1xIFpOyAjNEU1Ngor5LmXID4gY2jDqW5nOyAjNEU1Nwor5LmYID4gY2jDqW5nOyAjNEU1OAor5LmZID4gecStOyAjNEU1OQor5LmaID4gecStbjsgIzRFNUEKK+S5nCA+IG1pxJM7ICM0RTVDCivkuZ0gPiBqxK11OyAjNEU1RAor5LmeID4gccStOyAjNEU1RQor5LmfID4gecSVOyAjNEU1Rgor5LmgID4geMOtOyAjNEU2MAor5LmhID4geGnEgW5nOyAjNEU2MQor5LmiID4gZ8OgaTsgIzRFNjIKK+S5oyA+IGTEq3U7ICM0RTYzCivkuaYgPiBzaMWrOyAjNEU2Ngor5LmoID4gc2jErTsgIzRFNjgKK+S5qSA+IGrEqzsgIzRFNjkKK+S5qiA+IG7EgW5nOyAjNEU2QQor5LmrID4gamnEgTsgIzRFNkIKK+S5rSA+IHNow607ICM0RTZECivkubAgPiBtxINpOyAjNEU3MAor5LmxID4gbHXDoG47ICM0RTcxCivkubMgPiByxa07ICM0RTczCivkubQgPiB4dcOpOyAjNEU3NAor5Lm1ID4gecSDbjsgIzRFNzUKK+S5tiA+IGbFrTsgIzRFNzYKK+S5tyA+IHNoxIE7ICM0RTc3CivkubggPiBuxIM7ICM0RTc4CivkubkgPiBnxIFuOyAjNEU3OQor5Lm+ID4gZ8SBbjsgIzRFN0UKK+S5vyA+IGNow6w7ICM0RTdGCivkuoAgPiBnxatpOyAjNEU4MAor5LqBID4gZ8SBbjsgIzRFODEKK+S6giA+IGx1w6BuOyAjNEU4Mgor5LqDID4gbMOtbjsgIzRFODMKK+S6hCA+IHnDrDsgIzRFODQKK+S6hSA+IGp1w6k7ICM0RTg1CivkuoYgPiBsacSDbzsgIzRFODYKK+S6iCA+IHnDujsgIzRFODgKK+S6iSA+IHpoxJNuZzsgIzRFODkKK+S6iiA+IHNow6w7ICM0RThBCivkuosgPiBzaMOsOyAjNEU4Qgor5LqMID4gw6hyOyAjNEU4Qwor5LqNID4gY2jDuTsgIzRFOEQKK+S6jiA+IHnDujsgIzRFOEUKK+S6jyA+IHnDujsgIzRFOEYKK+S6kCA+IHnDujsgIzRFOTAKK+S6kSA+IHnDum47ICM0RTkxCivkupIgPiBow7k7ICM0RTkyCivkupMgPiBxw607ICM0RTkzCivkupQgPiB3xa07ICM0RTk0CivkupUgPiBqxK1uZzsgIzRFOTUKK+S6liA+IHPDrDsgIzRFOTYKK+S6lyA+IHPDuWk7ICM0RTk3CivkupggPiBnw6huOyAjNEU5OAor5LqZID4gZ8OobjsgIzRFOTkKK+S6miA+IHnDoDsgIzRFOUEKK+S6myA+IHhpxJM7ICM0RTlCCivkupwgPiB5w6A7ICM0RTlDCivkup0gPiBxw607ICM0RTlECivkup4gPiB5w6A7ICM0RTlFCivkup8gPiBqw607ICM0RTlGCivkuqAgPiB0w7N1OyAjNEVBMAor5LqhID4gd8Ohbmc7ICM0RUExCivkuqIgPiBrw6BuZzsgIzRFQTIKK+S6oyA+IHTDoDsgIzRFQTMKK+S6pCA+IGppxIFvOyAjNEVBNAor5LqlID4gaMOgaTsgIzRFQTUKK+S6piA+IHnDrDsgIzRFQTYKK+S6pyA+IGNoxINuOyAjNEVBNwor5LqoID4gaMSTbmc7ICM0RUE4CivkuqkgPiBtxa07ICM0RUE5CivkuqsgPiB4acSDbmc7ICM0RUFCCivkuqwgPiBqxKtuZzsgIzRFQUMKK+S6rSA+IHTDrW5nOyAjNEVBRAor5LquID4gbGnDoG5nOyAjNEVBRQor5LqvID4geGnEg25nOyAjNEVBRgor5LqwID4gasSrbmc7ICM0RUIwCivkurEgPiB5w6g7ICM0RUIxCivkurIgPiBxxKtuOyAjNEVCMgor5LqzID4gYsOzOyAjNEVCMwor5Lq0ID4gecOydTsgIzRFQjQKK+S6tSA+IHhpw6g7ICM0RUI1CivkurYgPiBkxINuOyAjNEVCNgor5Lq3ID4gbGnDoW47ICM0RUI3CivkurggPiBkxa1vOyAjNEVCOAor5Lq5ID4gd8SVaTsgIzRFQjkKK+S6uiA+IHLDqW47ICM0RUJBCivkursgPiByw6luOyAjNEVCQgor5Lq8ID4gasOtOyAjNEVCQwor5Lq+ID4gd8Ohbmc7ICM0RUJFCivkur8gPiB5w6w7ICM0RUJGCivku4AgPiBzaMOtOyAjNEVDMAor5LuBID4gcsOpbjsgIzRFQzEKK+S7giA+IGzDqDsgIzRFQzIKK+S7gyA+IGTEq25nOyAjNEVDMwor5LuEID4gesOoOyAjNEVDNAor5LuFID4gasStbjsgIzRFQzUKK+S7hiA+IHDFqzsgIzRFQzYKK+S7hyA+IGNow7N1OyAjNEVDNwor5LuIID4gYsSBOyAjNEVDOAor5LuJID4gemjEg25nOyAjNEVDOQor5LuKID4gasSrbjsgIzRFQ0EKK+S7iyA+IGppw6g7ICM0RUNCCivku4wgPiBixKtuZzsgIzRFQ0MKK+S7jSA+IHLDqW5nOyAjNEVDRAor5LuOID4gY8Ozbmc7ICM0RUNFCivku48gPiBmw7M7ICM0RUNGCivku5AgPiBzxINuOyAjNEVEMAor5LuRID4gbMO6bjsgIzRFRDEKK+S7kyA+IGPEgW5nOyAjNEVEMwor5LuUID4gesStOyAjNEVENAor5LuVID4gc2jDrDsgIzRFRDUKK+S7liA+IHTEgTsgIzRFRDYKK+S7lyA+IHpow6BuZzsgIzRFRDcKK+S7mCA+IGbDuTsgIzRFRDgKK+S7mSA+IHhpxIFuOyAjNEVEOQor5LuaID4geGnEgW47ICM0RURBCivku5sgPiB0xatvOyAjNEVEQgor5LucID4gaMOzbmc7ICM0RURDCivku50gPiB0w7NuZzsgIzRFREQKK+S7niA+IHLDqG47ICM0RURFCivku58gPiBxacSBbjsgIzRFREYKK+S7oCA+IGfDoW47ICM0RUUwCivku6EgPiB5w6w7ICM0RUUxCivku6IgPiBkw607ICM0RUUyCivku6MgPiBkw6BpOyAjNEVFMwor5LukID4gbMOsbmc7ICM0RUU0Civku6UgPiB5xK07ICM0RUU1Civku6YgPiBjaMOgbzsgIzRFRTYKK+S7pyA+IGNow6FuZzsgIzRFRTcKK+S7qCA+IHPEgTsgIzRFRTgKK+S7qiA+IHnDrTsgIzRFRUEKK+S7qyA+IG3DuTsgIzRFRUIKK+S7rCA+IG1lbjsgIzRFRUMKK+S7rSA+IHLDqG47ICM0RUVECivku64gPiBqacSDOyAjNEVFRQor5LuvID4gY2jDoG87ICM0RUVGCivku7AgPiB5xINuZzsgIzRFRjAKK+S7sSA+IHFpw6FuOyAjNEVGMQor5LuyID4gemjDsm5nOyAjNEVGMgor5LuzID4gcMStOyAjNEVGMwor5Lu0ID4gd8OgbjsgIzRFRjQKK+S7tSA+IHfFrTsgIzRFRjUKK+S7tiA+IGppw6BuOyAjNEVGNgor5Lu3ID4gamnDqDsgIzRFRjcKK+S7uCA+IHnEg287ICM0RUY4Civku7kgPiBmxJNuZzsgIzRFRjkKK+S7uiA+IGPEgW5nOyAjNEVGQQor5Lu7ID4gcsOobjsgIzRFRkIKK+S7vCA+IHfDoW5nOyAjNEVGQwor5Lu9ID4gZsOobjsgIzRFRkQKK+S7viA+IGTEqzsgIzRFRkUKK+S7vyA+IGbEg25nOyAjNEVGRgor5LyAID4gemjFjW5nOyAjNEYwMAor5LyBID4gccStOyAjNEYwMQor5LyCID4gcMOoaTsgIzRGMDIKK+S8gyA+IHnDujsgIzRGMDMKK+S8hCA+IGRpw6BvOyAjNEYwNAor5LyFID4gZMO5bjsgIzRGMDUKK+S8hiA+IHfDqG47ICM0RjA2CivkvIcgPiB5w6w7ICM0RjA3CivkvIggPiB4xK1uOyAjNEYwOAor5LyJID4ga8Ogbmc7ICM0RjA5CivkvIogPiB5xKs7ICM0RjBBCivkvIsgPiBqw607ICM0RjBCCivkvIwgPiDDoGk7ICM0RjBDCivkvI0gPiB3xa07ICM0RjBECivkvI4gPiBqw6w7ICM0RjBFCivkvI8gPiBmw7o7ICM0RjBGCivkvJAgPiBmw6E7ICM0RjEwCivkvJEgPiB4xKt1OyAjNEYxMQor5LySID4gasOsbjsgIzRGMTIKK+S8kyA+IGLEk2k7ICM0RjEzCivkvJQgPiBkxINuOyAjNEYxNAor5LyVID4gZsWrOyAjNEYxNQor5LyWID4gdMSDbmc7ICM0RjE2CivkvJcgPiB6aMOybmc7ICM0RjE3CivkvJggPiB5xY11OyAjNEYxOAor5LyZID4gaMWtbzsgIzRGMTkKK+S8miA+IGjDuWk7ICM0RjFBCivkvJsgPiB5xa07ICM0RjFCCivkvJwgPiBjw7lpOyAjNEYxQwor5LydID4gY2h1w6FuOyAjNEYxRAor5LyeID4gc8SDbjsgIzRGMUUKK+S8nyA+IHfElWk7ICM0RjFGCivkvKAgPiBjaHXDoW47ICM0RjIwCivkvKEgPiBjaMSTOyAjNEYyMQor5LyiID4gecOhOyAjNEYyMgor5LyjID4geGnDoG47ICM0RjIzCivkvKQgPiBzaMSBbmc7ICM0RjI0CivkvKUgPiBjaMSBbmc7ICM0RjI1CivkvKYgPiBsw7puOyAjNEYyNgor5LynID4gY8SBbmc7ICM0RjI3CivkvKggPiB4w7luOyAjNEYyOAor5LypID4geMOsbjsgIzRGMjkKK+S8qiA+IHfElWk7ICM0RjJBCivkvKsgPiB6aMO5OyAjNEYyQgor5LytID4geHXDoW47ICM0RjJECivkvK4gPiBuw7o7ICM0RjJFCivkvK8gPiBiw7M7ICM0RjJGCivkvLAgPiBnxas7ICM0RjMwCivkvLEgPiBuxK07ICM0RjMxCivkvLIgPiBuxK07ICM0RjMyCivkvLMgPiB4acOoOyAjNEYzMwor5Ly0ID4gYsOgbjsgIzRGMzQKK+S8tSA+IHjDuTsgIzRGMzUKK+S8tiA+IGzDrW5nOyAjNEYzNgor5Ly3ID4gemjDsnU7ICM0RjM3CivkvLggPiBzaMSTbjsgIzRGMzgKK+S8uSA+IHHFqzsgIzRGMzkKK+S8uiA+IHPDrDsgIzRGM0EKK+S8uyA+IGLEk25nOyAjNEYzQgor5Ly8ID4gc8OsOyAjNEYzQwor5Ly9ID4gamnEgTsgIzRGM0QKK+S8viA+IHDEqzsgIzRGM0UKK+S8vyA+IHnDrDsgIzRGM0YKK+S9gCA+IHPDrDsgIzRGNDAKK+S9gSA+IMSDaTsgIzRGNDEKK+S9giA+IHpoxJNuZzsgIzRGNDIKK+S9gyA+IGRpw6BuOyAjNEY0Mwor5L2EID4gaMOhbjsgIzRGNDQKK+S9hSA+IG3DoGk7ICM0RjQ1CivkvYYgPiBkw6BuOyAjNEY0Ngor5L2HID4gemjDuTsgIzRGNDcKK+S9iCA+IGLDuTsgIzRGNDgKK+S9iSA+IHHFqzsgIzRGNDkKK+S9iiA+IGLErTsgIzRGNEEKK+S9iyA+IHNow6BvOyAjNEY0Qgor5L2MID4gY8StOyAjNEY0Qwor5L2NID4gd8OoaTsgIzRGNEQKK+S9jiA+IGTEqzsgIzRGNEUKK+S9jyA+IHpow7k7ICM0RjRGCivkvZAgPiB6xa1vOyAjNEY1MAor5L2RID4gecOydTsgIzRGNTEKK+S9kiA+IHnEgW5nOyAjNEY1Mgor5L2TID4gdMStOyAjNEY1Mwor5L2UID4gemjDoG47ICM0RjU0CivkvZUgPiBow6k7ICM0RjU1CivkvZYgPiBiw6w7ICM0RjU2CivkvZcgPiB0xatvOyAjNEY1Nwor5L2YID4gc2jDqTsgIzRGNTgKK+S9mSA+IHnDujsgIzRGNTkKK+S9miA+IHnDrDsgIzRGNUEKK+S9myA+IGbDszsgIzRGNUIKK+S9nCA+IHrDuW87ICM0RjVDCivkvZ0gPiBrw7J1OyAjNEY1RAor5L2eID4gbsOsbmc7ICM0RjVFCivkvZ8gPiB0w7NuZzsgIzRGNUYKK+S9oCA+IG7ErTsgIzRGNjAKK+S9oSA+IHh1xIFuOyAjNEY2MQor5L2iID4gccO6OyAjNEY2Mgor5L2jID4gecOybmc7ICM0RjYzCivkvaQgPiB3xIM7ICM0RjY0CivkvaUgPiBxacSBbjsgIzRGNjUKK+S9pyA+IGvEgzsgIzRGNjcKK+S9qSA+IHDDqGk7ICM0RjY5CivkvaogPiBodcOhaTsgIzRGNkEKK+S9qyA+IGjDqDsgIzRGNkIKK+S9rCA+IGzEg287ICM0RjZDCivkva0gPiB4acOhbmc7ICM0RjZECivkva4gPiBnw6k7ICM0RjZFCivkva8gPiB5w6FuZzsgIzRGNkYKK+S9sCA+IGLEg2k7ICM0RjcwCivkvbEgPiBmxIM7ICM0RjcxCivkvbIgPiBtw61uZzsgIzRGNzIKK+S9syA+IGppYTsgIzRGNzMKK+S9tCA+IMOocjsgIzRGNzQKK+S9tSA+IGLDrG5nOyAjNEY3NQor5L22ID4gasOtOyAjNEY3Ngor5L23ID4gaMSVbjsgIzRGNzcKK+S9uCA+IGjDum87ICM0Rjc4CivkvbkgPiBnxa1pOyAjNEY3OQor5L26ID4gcXXDoW47ICM0RjdBCivkvbsgPiB0acSBbzsgIzRGN0IKK+S9vCA+IGppxINvOyAjNEY3Qwor5L29ID4gY8OsOyAjNEY3RAor5L2+ID4gecOsOyAjNEY3RQor5L2/ID4gc2jErTsgIzRGN0YKK+S+gCA+IHjDrW5nOyAjNEY4MAor5L6BID4gc2jEk247ICM0RjgxCivkvoIgPiB0xatvOyAjNEY4Mgor5L6DID4ga8SDbjsgIzRGODMKK+S+hCA+IHpow607ICM0Rjg0CivkvoUgPiBnxIFpOyAjNEY4NQor5L6GID4gbMOhaTsgIzRGODYKK+S+hyA+IHnDrTsgIzRGODcKK+S+iCA+IGNoxK07ICM0Rjg4CivkvokgPiBrdcSBOyAjNEY4OQor5L6KID4gZ3XEgW5nOyAjNEY4QQor5L6LID4gbMOsOyAjNEY4Qgor5L6MID4gecSrbjsgIzRGOEMKK+S+jSA+IHNow6w7ICM0RjhECivkvo4gPiBtxK07ICM0RjhFCivkvo8gPiB6aMWrOyAjNEY4Rgor5L6QID4geMO5OyAjNEY5MAor5L6RID4gecOydTsgIzRGOTEKK+S+kiA+IMSBbjsgIzRGOTIKK+S+kyA+IGzDuTsgIzRGOTMKK+S+lCA+IG3Ds3U7ICM0Rjk0CivkvpUgPiDDqXI7ICM0Rjk1CivkvpYgPiBsw7puOyAjNEY5Ngor5L6XID4gdMOzbmc7ICM0Rjk3CivkvpggPiBjaMOgOyAjNEY5OAor5L6ZID4gY2jDrDsgIzRGOTkKK+S+miA+IHjDuW47ICM0RjlBCivkvpsgPiBnxY1uZzsgIzRGOUIKK+S+nCA+IHpoxY11OyAjNEY5Qwor5L6dID4gecSrOyAjNEY5RAor5L6eID4gcsWtOyAjNEY5RQor5L6fID4gamnDoG47ICM0RjlGCivkvqAgPiB4acOhOyAjNEZBMAor5L6hID4gamnDoDsgIzRGQTEKK+S+oiA+IHrDoGk7ICM0RkEyCivkvqMgPiBsx5o7ICM0RkEzCivkvqUgPiBqacSDbzsgIzRGQTUKK+S+piA+IHpoxJNuOyAjNEZBNgor5L6nID4gY8OoOyAjNEZBNwor5L6oID4gcWnDoW87ICM0RkE4CivkvqkgPiBrdcOgaTsgIzRGQTkKK+S+qiA+IGNow6FpOyAjNEZBQQor5L6rID4gbsOsbmc7ICM0RkFCCivkvqwgPiBuw7NuZzsgIzRGQUMKK+S+rSA+IGrErW47ICM0RkFECivkvq4gPiB3xa07ICM0RkFFCivkvq8gPiBow7N1OyAjNEZBRgor5L6wID4gasStb25nOyAjNEZCMAor5L6xID4gY2jElW5nOyAjNEZCMQor5L6yID4gemjDqG47ICM0RkIyCivkvrMgPiB6w7lvOyAjNEZCMwor5L60ID4gY2jFj3U7ICM0RkI0CivkvrUgPiBxxKtuOyAjNEZCNQor5L62ID4gbMeaOyAjNEZCNgor5L63ID4gasO6OyAjNEZCNwor5L64ID4gc2jDuTsgIzRGQjgKK+S+uSA+IHTErW5nOyAjNEZCOQor5L66ID4gc2jDqG47ICM0RkJBCivkvrsgPiB0xatvOyAjNEZCQgor5L68ID4gYsOzOyAjNEZCQwor5L69ID4gbsOhbjsgIzRGQkQKK+S+viA+IGjEgW87ICM0RkJFCivkvr8gPiBiacOgbjsgIzRGQkYKK+S/gCA+IHTFrWk7ICM0RkMwCivkv4EgPiB5xa07ICM0RkMxCivkv4IgPiB4w6w7ICM0RkMyCivkv4MgPiBjw7k7ICM0RkMzCivkv4QgPiDDqTsgIzRGQzQKK+S/hSA+IHHDrXU7ICM0RkM1Civkv4YgPiB4w7o7ICM0RkM2Civkv4cgPiBrdcSDbmc7ICM0RkM3Civkv4ggPiBrw7k7ICM0RkM4Civkv4kgPiB3w7k7ICM0RkM5Civkv4ogPiBqw7luOyAjNEZDQQor5L+LID4gecOsOyAjNEZDQgor5L+MID4gZsWtOyAjNEZDQwor5L+NID4gbMOhbmc7ICM0RkNECivkv44gPiB6xa07ICM0RkNFCivkv48gPiBxacOgbzsgIzRGQ0YKK+S/kCA+IGzDrDsgIzRGRDAKK+S/kSA+IHnFj25nOyAjNEZEMQor5L+SID4gaMO5bjsgIzRGRDIKK+S/kyA+IGrDrG5nOyAjNEZEMwor5L+UID4geGnDoG47ICM0RkQ0Civkv5UgPiBzw6BuOyAjNEZENQor5L+WID4gcMSDaTsgIzRGRDYKK+S/lyA+IHPDujsgIzRGRDcKK+S/mCA+IGbDujsgIzRGRDgKK+S/mSA+IHjEqzsgIzRGRDkKK+S/miA+IGzErTsgIzRGREEKK+S/myA+IGbFrTsgIzRGREIKK+S/nCA+IHDEq25nOyAjNEZEQwor5L+dID4gYsSDbzsgIzRGREQKK+S/niA+IHnDujsgIzRGREUKK+S/nyA+IHPDrDsgIzRGREYKK+S/oCA+IHhpw6E7ICM0RkUwCivkv6EgPiB4w6xuOyAjNEZFMQor5L+iID4geMSrdTsgIzRGRTIKK+S/oyA+IHnFrTsgIzRGRTMKK+S/pCA+IHTDrDsgIzRGRTQKK+S/pSA+IGNoxJM7ICM0RkU1Civkv6YgPiBjaMOzdTsgIzRGRTYKK+S/qCA+IHnEg247ICM0RkU4Civkv6kgPiBsacSDOyAjNEZFOQor5L+qID4gbMOsOyAjNEZFQQor5L+rID4gbMOhaTsgIzRGRUIKK+S/rSA+IGppxINuOyAjNEZFRAor5L+uID4geMSrdTsgIzRGRUUKK+S/ryA+IGbFrTsgIzRGRUYKK+S/sCA+IGjDqDsgIzRGRjAKK+S/sSA+IGrDuTsgIzRGRjEKK+S/siA+IHhpw6BvOyAjNEZGMgor5L+zID4gcMOhaTsgIzRGRjMKK+S/tCA+IGppw6BuOyAjNEZGNAor5L+1ID4gYmnDoG87ICM0RkY1Civkv7YgPiBjaMO5OyAjNEZGNgor5L+3ID4gZsOoaTsgIzRGRjcKK+S/uCA+IGbDqG5nOyAjNEZGOAor5L+5ID4gecOgOyAjNEZGOQor5L+6ID4gxINuOyAjNEZGQQor5L+7ID4gYsOoaTsgIzRGRkIKK+S/vCA+IHnDuTsgIzRGRkMKK+S/vSA+IHjEq247ICM0RkZECivkv74gPiBixK07ICM0RkZFCivkv78gPiBqacOgbjsgIzRGRkYKK+WAgCA+IGNoxIFuZzsgIzUwMDAKK+WAgSA+IGNow607ICM1MDAxCivlgIIgPiBiw6xuZzsgIzUwMDIKK+WAgyA+IHrDoW47ICM1MDAzCivlgIQgPiB5w6FvOyAjNTAwNAor5YCFID4gY8O5aTsgIzUwMDUKK+WAhiA+IGxpxIM7ICM1MDA2CivlgIcgPiB3xINuOyAjNTAwNwor5YCIID4gbMOhaTsgIzUwMDgKK+WAiSA+IGPEgW5nOyAjNTAwOQor5YCKID4gesOybmc7ICM1MDBBCivlgIsgPiBnw6g7ICM1MDBCCivlgIwgPiBndcSBbjsgIzUwMEMKK+WAjSA+IGLDqGk7ICM1MDBECivlgI4gPiB0acSBbjsgIzUwMEUKK+WAjyA+IHNoxas7ICM1MDBGCivlgJAgPiBzaMWrOyAjNTAxMAor5YCRID4gbWVuOyAjNTAxMQor5YCSID4gZMSDbzsgIzUwMTIKK+WAkyA+IHTDoW47ICM1MDEzCivlgJQgPiBqdcOpOyAjNTAxNAor5YCVID4gY2jDumk7ICM1MDE1CivlgJYgPiB4w6xuZzsgIzUwMTYKK+WAlyA+IHDDqW5nOyAjNTAxNwor5YCYID4gdMSDbmc7ICM1MDE4CivlgJkgPiBow7J1OyAjNTAxOQor5YCaID4gecStOyAjNTAxQQor5YCbID4gccSrOyAjNTAxQgor5YCcID4gdMOsOyAjNTAxQwor5YCdID4gZ8OgbjsgIzUwMUQKK+WAniA+IGrDrG5nOyAjNTAxRQor5YCfID4gamnDqDsgIzUwMUYKK+WAoCA+IHPFq2k7ICM1MDIwCivlgKEgPiBjaMOgbmc7ICM1MDIxCivlgKIgPiBqacOpOyAjNTAyMgor5YCjID4gZsSDbmc7ICM1MDIzCivlgKQgPiB6aMOtOyAjNTAyNAor5YClID4ga8WNbmc7ICM1MDI1CivlgKYgPiBqdcOgbjsgIzUwMjYKK+WApyA+IHrFjW5nOyAjNTAyNwor5YCoID4gasO5OyAjNTAyOAor5YCpID4gcWnDoG47ICM1MDI5CivlgKogPiBuw607ICM1MDJBCivlgKsgPiBsw7puOyAjNTAyQgor5YCsID4gemjFq287ICM1MDJDCivlgK0gPiB3xJNpOyAjNTAyRAor5YCuID4gbMWtbzsgIzUwMkUKK+WAryA+IHPFjW5nOyAjNTAyRgor5YCwID4gbMOpbmc7ICM1MDMwCivlgLEgPiBow7luOyAjNTAzMQor5YCyID4gZMWNbmc7ICM1MDMyCivlgLMgPiB6w6w7ICM1MDMzCivlgLQgPiBiw6huOyAjNTAzNAor5YC1ID4gd8WtOyAjNTAzNQor5YC2ID4gasO5OyAjNTAzNgor5YC3ID4gbsOgaTsgIzUwMzcKK+WAuCA+IGPEg2k7ICM1MDM4CivlgLkgPiBqacSDbjsgIzUwMzkKK+WAuiA+IHpow6BpOyAjNTAzQQor5YC7ID4gecSTOyAjNTAzQgor5YC8ID4gemjDrTsgIzUwM0MKK+WAvSA+IHNow6A7ICM1MDNECivlgL4gPiBxxKtuZzsgIzUwM0UKK+WBgCA+IHnEq25nOyAjNTA0MAor5YGBID4gY2jEk25nOyAjNTA0MQor5YGCID4gamnEgW47ICM1MDQyCivlgYMgPiB5xINuOyAjNTA0Mwor5YGEID4gbnXDoG47ICM1MDQ0CivlgYUgPiB6aMOybmc7ICM1MDQ1CivlgYYgPiBjaMWtbjsgIzUwNDYKK+WBhyA+IGppxIM7ICM1MDQ3CivlgYggPiBqacOpOyAjNTA0OAor5YGJID4gd8SVaTsgIzUwNDkKK+WBiiA+IHnFrTsgIzUwNEEKK+WBiyA+IGLErW5nOyAjNTA0Qgor5YGMID4gcsO5bzsgIzUwNEMKK+WBjSA+IHTDrTsgIzUwNEQKK+WBjiA+IHfEk2k7ICM1MDRFCivlgY8gPiBwacSBbjsgIzUwNEYKK+WBkCA+IHnDoG47ICM1MDUwCivlgZEgPiBmxJNuZzsgIzUwNTEKK+WBkiA+IHTEg25nOyAjNTA1Mgor5YGTID4gd8OyOyAjNTA1Mwor5YGUID4gw6g7ICM1MDU0CivlgZUgPiB4acOpOyAjNTA1NQor5YGWID4gY2jElTsgIzUwNTYKK+WBlyA+IHNoxJVuZzsgIzUwNTcKK+WBmCA+IGvEg247ICM1MDU4CivlgZkgPiBkw6w7ICM1MDU5CivlgZogPiB6w7lvOyAjNTA1QQor5YGbID4gY2jEgTsgIzUwNUIKK+WBnCA+IHTDrW5nOyAjNTA1Qwor5YGdID4gYsOoaTsgIzUwNUQKK+WBniA+IHnDqDsgIzUwNUUKK+WBnyA+IGh1w6FuZzsgIzUwNUYKK+WBoCA+IHnEg287ICM1MDYwCivlgaEgPiB6aMOgbjsgIzUwNjEKK+WBoiA+IGNoxY91OyAjNTA2Mgor5YGjID4gecSBbjsgIzUwNjMKK+WBpCA+IHnFj3U7ICM1MDY0CivlgaUgPiBqacOgbjsgIzUwNjUKK+WBpiA+IHjFqzsgIzUwNjYKK+WBpyA+IHpoxIE7ICM1MDY3CivlgaggPiBjxKs7ICM1MDY4CivlgakgPiBmw7k7ICM1MDY5CivlgaogPiBixKs7ICM1MDZBCivlgasgPiB6aMOsOyAjNTA2Qgor5YGsID4gesWPbmc7ICM1MDZDCivlga0gPiBtacSDbjsgIzUwNkQKK+WBriA+IGrDrTsgIzUwNkUKK+WBryA+IHnErTsgIzUwNkYKK+WBsCA+IHhpw6g7ICM1MDcwCivlgbEgPiB4w7puOyAjNTA3MQor5YGyID4gc8SrOyAjNTA3Mgor5YGzID4gZHXEgW47ICM1MDczCivlgbQgPiBjw6g7ICM1MDc0CivlgbUgPiB6aMSTbjsgIzUwNzUKK+WBtiA+IMWPdTsgIzUwNzYKK+WBtyA+IHTFjXU7ICM1MDc3CivlgbggPiB0xY11OyAjNTA3OAor5YG5ID4gYsOoaTsgIzUwNzkKK+WBuiA+IHrDoTsgIzUwN0EKK+WBuyA+IGzHmjsgIzUwN0IKK+WBvCA+IGppw6k7ICM1MDdDCivlgb0gPiB3xJVpOyAjNTA3RAor5YG+ID4gZsOobjsgIzUwN0UKK+WBvyA+IGNow6FuZzsgIzUwN0YKK+WCgCA+IGfFq2k7ICM1MDgwCivlgoEgPiBzxY91OyAjNTA4MQor5YKCID4gemjDrDsgIzUwODIKK+WCgyA+IHPDuTsgIzUwODMKK+WChCA+IHhpxIE7ICM1MDg0CivlgoUgPiBmw7k7ICM1MDg1CivlgoYgPiB5dcOgbjsgIzUwODYKK+WChyA+IHLFj25nOyAjNTA4Nwor5YKIID4gbMOsOyAjNTA4OAor5YKJID4gcsO5OyAjNTA4OQor5YKKID4gecWtbjsgIzUwOEEKK+WCiyA+IGfDsnU7ICM1MDhCCivlgowgPiBtw6A7ICM1MDhDCivlgo0gPiBiw6BuZzsgIzUwOEQKK+WCjiA+IGRpxIFuOyAjNTA4RQor5YKPID4gdMOhbmc7ICM1MDhGCivlgpAgPiBow6BvOyAjNTA5MAor5YKRID4gamnDqTsgIzUwOTEKK+WCkiA+IHjEqzsgIzUwOTIKK+WCkyA+IHNow6BuOyAjNTA5Mwor5YKUID4gcWnDoG47ICM1MDk0CivlgpUgPiBqdcOpOyAjNTA5NQor5YKWID4gY8SBbmc7ICM1MDk2CivlgpcgPiBjaMO5OyAjNTA5Nwor5YKYID4gc8SDbjsgIzUwOTgKK+WCmSA+IGLDqGk7ICM1MDk5CivlgpogPiB4acOgbzsgIzUwOUEKK+WCmyA+IHnFj25nOyAjNTA5Qgor5YKcID4gecOhbzsgIzUwOUMKK+WCnSA+IHTDoG47ICM1MDlECivlgp4gPiBzxatvOyAjNTA5RQor5YKfID4gecSDbmc7ICM1MDlGCivlgqAgPiBmxIE7ICM1MEEwCivlgqEgPiBiw6xuZzsgIzUwQTEKK+WCoiA+IGppxIE7ICM1MEEyCivlgqMgPiBkxINpOyAjNTBBMwor5YKkID4gesOgaTsgIzUwQTQKK+WCpSA+IHTEg25nOyAjNTBBNQor5YKnID4gYsOsbjsgIzUwQTcKK+WCqCA+IGNoxa07ICM1MEE4CivlgqkgPiBuw7pvOyAjNTBBOQor5YKqID4gY8SBbjsgIzUwQUEKK+WCqyA+IGzElWk7ICM1MEFCCivlgqwgPiBjxatpOyAjNTBBQwor5YKtID4gecWNbmc7ICM1MEFECivlgq4gPiB6xIFvOyAjNTBBRQor5YKvID4gesWPbmc7ICM1MEFGCivlgrAgPiBww6luZzsgIzUwQjAKK+WCsSA+IHPFj25nOyAjNTBCMQor5YKyID4gw6BvOyAjNTBCMgor5YKzID4gY2h1w6FuOyAjNTBCMwor5YK0ID4gecWtOyAjNTBCNAor5YK1ID4gemjDoGk7ICM1MEI1CivlgrYgPiBjw7J1OyAjNTBCNgor5YK3ID4gc2jEgW5nOyAjNTBCNwor5YK4ID4gcWnEg25nOyAjNTBCOAor5YK5ID4gasOsbmc7ICM1MEI5CivlgrogPiBjaMOsOyAjNTBCQQor5YK7ID4gc2jEgzsgIzUwQkIKK+WCvCA+IGjDoG47ICM1MEJDCivlgr0gPiB6aMSBbmc7ICM1MEJECivlgr4gPiBxxKtuZzsgIzUwQkUKK+WCvyA+IHnDoG47ICM1MEJGCivlg4AgPiBkw6w7ICM1MEMwCivlg4EgPiB4xKs7ICM1MEMxCivlg4IgPiBsx5o7ICM1MEMyCivlg4MgPiBiw6hpOyAjNTBDMwor5YOEID4gcGnDoG87ICM1MEM0Civlg4UgPiBqxK1uOyAjNTBDNQor5YOGID4gbGnDoW47ICM1MEM2Civlg4cgPiBsw7k7ICM1MEM3Civlg4ggPiBtw6BuOyAjNTBDOAor5YOJID4gcWnEgW47ICM1MEM5Civlg4ogPiB4acSBbjsgIzUwQ0EKK+WDiyA+IHTDoG47ICM1MENCCivlg4wgPiB5w61uZzsgIzUwQ0MKK+WDjSA+IGTDsm5nOyAjNTBDRAor5YOOID4gemh1w6BuOyAjNTBDRQor5YOPID4geGnDoG5nOyAjNTBDRgor5YOQID4gc2jDoG47ICM1MEQwCivlg5EgPiBxacOhbzsgIzUwRDEKK+WDkiA+IGrErW9uZzsgIzUwRDIKK+WDkyA+IHTFrWk7ICM1MEQzCivlg5QgPiB6xa1uOyAjNTBENAor5YOVID4gcMO6OyAjNTBENQor5YOWID4geMSrOyAjNTBENgor5YOXID4gbMOhbzsgIzUwRDcKK+WDmCA+IGNoxINuZzsgIzUwRDgKK+WDmSA+IGd1xIFuZzsgIzUwRDkKK+WDmiA+IGxpw6FvOyAjNTBEQQor5YObID4gccSrOyAjNTBEQgor5YOcID4gZMOobmc7ICM1MERDCivlg50gPiBjaMOhbjsgIzUwREQKK+WDniA+IHfElWk7ICM1MERFCivlg58gPiBqxKs7ICM1MERGCivlg6AgPiBmxIFuOyAjNTBFMAor5YOhID4gaMO5aTsgIzUwRTEKK+WDoiA+IGNodcSDbjsgIzUwRTIKK+WDoyA+IGppw6BuOyAjNTBFMwor5YOkID4gZMOgbjsgIzUwRTQKK+WDpSA+IGppxINvOyAjNTBFNQor5YOmID4gasOsdTsgIzUwRTYKK+WDpyA+IHPEk25nOyAjNTBFNwor5YOoID4gZsOobjsgIzUwRTgKK+WDqSA+IHhpw6BuOyAjNTBFOQor5YOqID4ganXDqTsgIzUwRUEKK+WDqyA+IMOoOyAjNTBFQgor5YOsID4gamnEgW87ICM1MEVDCivlg60gPiBqacOgbjsgIzUwRUQKK+WDriA+IHTDs25nOyAjNTBFRQor5YOvID4gbMStbjsgIzUwRUYKK+WDsCA+IGLDszsgIzUwRjAKK+WDsSA+IGfDuTsgIzUwRjEKK+WDsyA+IHPDuTsgIzUwRjMKK+WDtCA+IHhpw6BuOyAjNTBGNAor5YO1ID4gamnEgW5nOyAjNTBGNQor5YO2ID4gbcStbjsgIzUwRjYKK+WDtyA+IHnDqDsgIzUwRjcKK+WDuCA+IGrDrG47ICM1MEY4Civlg7kgPiBqacOgOyAjNTBGOQor5YO6ID4gcWnDoG87ICM1MEZBCivlg7sgPiBww6w7ICM1MEZCCivlg7wgPiBmxJNuZzsgIzUwRkMKK+WDvSA+IHpow7J1OyAjNTBGRAor5YO+ID4gw6BpOyAjNTBGRQor5YO/ID4gc8OgaTsgIzUwRkYKK+WEgCA+IHnDrTsgIzUxMDAKK+WEgSA+IGrDuW47ICM1MTAxCivlhIIgPiBuw7NuZzsgIzUxMDIKK+WEgyA+IGNow6FuOyAjNTEwMwor5YSEID4gecOsOyAjNTEwNAor5YSFID4gZMSBbmc7ICM1MTA1CivlhIYgPiBqxK1uZzsgIzUxMDYKK+WEhyA+IHh1xIFuOyAjNTEwNwor5YSIID4ga3XDoGk7ICM1MTA4CivlhIkgPiBqacSDbjsgIzUxMDkKK+WEiiA+IGNow7k7ICM1MTBBCivlhIsgPiBkxIFuOyAjNTEwQgor5YSMID4gamnEg287ICM1MTBDCivlhI0gPiBzaMSDOyAjNTEwRAor5YSOID4gesOgaTsgIzUxMEUKK+WEkCA+IGLDrG47ICM1MTEwCivlhJEgPiDDoG47ICM1MTExCivlhJIgPiByw7o7ICM1MTEyCivlhJMgPiB0w6FpOyAjNTExMwor5YSUID4gY2jDs3U7ICM1MTE0CivlhJUgPiBjaMOhaTsgIzUxMTUKK+WEliA+IGzDoW47ICM1MTE2CivlhJcgPiBuxK07ICM1MTE3CivlhJggPiBqxK1uOyAjNTExOAor5YSZID4gcWnDoG47ICM1MTE5CivlhJogPiBtw6luZzsgIzUxMUEKK+WEmyA+IHfFrTsgIzUxMUIKK+WEnCA+IG7DrW5nOyAjNTExQwor5YSdID4gccOtb25nOyAjNTExRAor5YSeID4gbsStOyAjNTExRQor5YSfID4gY2jDoW5nOyAjNTExRgor5YSgID4gbGnDqDsgIzUxMjAKK+WEoSA+IGzElWk7ICM1MTIxCivlhKIgPiBsx5o7ICM1MTIyCivlhKMgPiBrdcOgbmc7ICM1MTIzCivlhKQgPiBiw6BvOyAjNTEyNAor5YSlID4gZMO6OyAjNTEyNQor5YSmID4gYmnEgW87ICM1MTI2CivlhKcgPiB6xINuOyAjNTEyNwor5YSoID4gemjDrTsgIzUxMjgKK+WEqSA+IHPDrDsgIzUxMjkKK+WEqiA+IHnFjXU7ICM1MTJBCivlhKsgPiBow6FvOyAjNTEyQgor5YSsID4gY2jDqG47ICM1MTJDCivlhK0gPiBjaMOobjsgIzUxMkQKK+WEriA+IGzDrDsgIzUxMkUKK+WEryA+IHTDqW5nOyAjNTEyRgor5YSwID4gd8SVaTsgIzUxMzAKK+WEsSA+IGzFj25nOyAjNTEzMQor5YSyID4gY2jFrTsgIzUxMzIKK+WEsyA+IGNow6BuOyAjNTEzMwor5YS0ID4gcsOhbmc7ICM1MTM0CivlhLUgPiBzaMWrOyAjNTEzNQor5YS2ID4gaMO5aTsgIzUxMzYKK+WEtyA+IGzDrDsgIzUxMzcKK+WEuCA+IGzDum87ICM1MTM4CivlhLkgPiB6xINuOyAjNTEzOQor5YS6ID4gbsO6bzsgIzUxM0EKK+WEuyA+IHTEg25nOyAjNTEzQgor5YS8ID4gecSDbjsgIzUxM0MKK+WEvSA+IGzElWk7ICM1MTNECivlhL4gPiBuw6BuZzsgIzUxM0UKK+WEvyA+IMOpcjsgIzUxM0YKK+WFgCA+IHfDuTsgIzUxNDAKK+WFgSA+IHnFrW47ICM1MTQxCivlhYIgPiB6xIFuOyAjNTE0Mgor5YWDID4geXXDoW47ICM1MTQzCivlhYQgPiB4xKtvbmc7ICM1MTQ0CivlhYUgPiBjaMWNbmc7ICM1MTQ1CivlhYYgPiB6aMOgbzsgIzUxNDYKK+WFhyA+IHjEq29uZzsgIzUxNDcKK+WFiCA+IHhpxIFuOyAjNTE0OAor5YWJID4gZ3XEgW5nOyAjNTE0OQor5YWKID4gZMO5aTsgIzUxNEEKK+WFiyA+IGvDqDsgIzUxNEIKK+WFjCA+IGTDuWk7ICM1MTRDCivlhY0gPiBtacSDbjsgIzUxNEQKK+WFjiA+IHTDuTsgIzUxNEUKK+WFjyA+IGNow6FuZzsgIzUxNEYKK+WFkCA+IMOpcjsgIzUxNTAKK+WFkSA+IGTDuWk7ICM1MTUxCivlhZIgPiDDqXI7ICM1MTUyCivlhZMgPiB4xKtuOyAjNTE1Mwor5YWUID4gdMO5OyAjNTE1NAor5YWVID4gc8OsOyAjNTE1NQor5YWWID4gecSDbjsgIzUxNTYKK+WFlyA+IHnEg247ICM1MTU3CivlhZggPiBzaMStOyAjNTE1OAor5YWZID4gc2jDrScgJ2vDqDsgIzUxNTkKK+WFmiA+IGTEg25nOyAjNTE1QQor5YWbID4gcWnEgW47ICM1MTVCCivlhZwgPiBkxY11OyAjNTE1Qwor5YWdID4gZsSTbjsgIzUxNUQKK+WFniA+IG3DoW87ICM1MTVFCivlhZ8gPiBzaMSTbjsgIzUxNUYKK+WFoCA+IGTFjXU7ICM1MTYwCivlhaEgPiBixINpJyAna8OoOyAjNTE2MQor5YWiID4gasSrbmc7ICM1MTYyCivlhaMgPiBsxK07ICM1MTYzCivlhaQgPiBodcOhbmc7ICM1MTY0CivlhaUgPiByw7k7ICM1MTY1CivlhaYgPiB3w6FuZzsgIzUxNjYKK+WFpyA+IG7DqGk7ICM1MTY3CivlhaggPiBxdcOhbjsgIzUxNjgKK+WFqSA+IGxpxINuZzsgIzUxNjkKK+WFqiA+IHnDujsgIzUxNkEKK+WFqyA+IGLEgTsgIzUxNkIKK+WFrCA+IGfFjW5nOyAjNTE2Qwor5YWtID4gbMOsdTsgIzUxNkQKK+WFriA+IHjEqzsgIzUxNkUKK+WFsCA+IGzDoW47ICM1MTcwCivlhbEgPiBnw7JuZzsgIzUxNzEKK+WFsiA+IHRpxIFuOyAjNTE3Mgor5YWzID4gZ3XEgW47ICM1MTczCivlhbQgPiB4xKtuZzsgIzUxNzQKK+WFtSA+IGLEq25nOyAjNTE3NQor5YW2ID4gccOtOyAjNTE3Ngor5YW3ID4gasO5OyAjNTE3Nwor5YW4ID4gZGnEg247ICM1MTc4CivlhbkgPiB6xKs7ICM1MTc5CivlhbsgPiB5xINuZzsgIzUxN0IKK+WFvCA+IGppxIFuOyAjNTE3Qwor5YW9ID4gc2jDsnU7ICM1MTdECivlhb4gPiBqw6w7ICM1MTdFCivlhb8gPiB5w6w7ICM1MTdGCivlhoAgPiBqw6w7ICM1MTgwCivlhoEgPiBjaMSDbjsgIzUxODEKK+WGgiA+IGrEq29uZzsgIzUxODIKK+WGgyA+IG1hbzsgIzUxODMKK+WGhCA+IHLEg247ICM1MTg0CivlhoUgPiBuw6hpOyAjNTE4NQor5YaGID4geXVhbjsgIzUxODYKK+WGhyA+IG3Eg287ICM1MTg3CivlhoggPiBnxIFuZzsgIzUxODgKK+WGiSA+IHLEg247ICM1MTg5CivlhoogPiBjw6g7ICM1MThBCivlhosgPiBqxKtvbmc7ICM1MThCCivlhowgPiBjw6g7ICM1MThDCivlho0gPiB6w6BpOyAjNTE4RAor5YaOID4gZ3XEgzsgIzUxOEUKK+WGjyA+IGrErW9uZzsgIzUxOEYKK+WGkCA+IG3DoG87ICM1MTkwCivlhpEgPiB6aMOydTsgIzUxOTEKK+WGkiA+IG3DsnU7ICM1MTkyCivlhpMgPiBnw7J1OyAjNTE5Mwor5YaUID4geMWtOyAjNTE5NAor5YaVID4gbWnEg247ICM1MTk1CivlhpYgPiBtw6w7ICM1MTk2CivlhpcgPiByxY9uZzsgIzUxOTcKK+WGmCA+IHnDrW47ICM1MTk4CivlhpkgPiB4acSVOyAjNTE5OQor5YaaID4ga8SDbjsgIzUxOUEKK+WGmyA+IGrFq247ICM1MTlCCivlhpwgPiBuw7NuZzsgIzUxOUMKK+WGnSA+IHnDrTsgIzUxOUQKK+WGniA+IG3DrTsgIzUxOUUKK+WGnyA+IHNow6w7ICM1MTlGCivlhqAgPiBndcSBbjsgIzUxQTAKK+WGoSA+IG3DqW5nOyAjNTFBMQor5YaiID4gemjFj25nOyAjNTFBMgor5YajID4gasO5OyAjNTFBMwor5YakID4geXXEgW47ICM1MUE0CivlhqUgPiBtw61uZzsgIzUxQTUKK+WGpiA+IGvDsnU7ICM1MUE2CivlhqggPiBmw7k7ICM1MUE4CivlhqkgPiB4acSVOyAjNTFBOQor5YaqID4gbcOsOyAjNTFBQQor5YarID4gYsSrbmc7ICM1MUFCCivlhqwgPiBkxY1uZzsgIzUxQUMKK+WGrSA+IHTDoWk7ICM1MUFECivlhq4gPiBnxIFuZzsgIzUxQUUKK+WGryA+IGbDqW5nOyAjNTFBRgor5YawID4gYsSrbmc7ICM1MUIwCivlhrEgPiBow7k7ICM1MUIxCivlhrIgPiBjaMWNbmc7ICM1MUIyCivlhrMgPiBqdcOpOyAjNTFCMwor5Ya0ID4gaMO5OyAjNTFCNAor5Ya1ID4ga3XDoG5nOyAjNTFCNQor5Ya2ID4gecSVOyAjNTFCNgor5Ya3ID4gbMSVbmc7ICM1MUI3CivlhrggPiBww6BuOyAjNTFCOAor5Ya5ID4gZsO6OyAjNTFCOQor5Ya6ID4gbcStbjsgIzUxQkEKK+WGuyA+IGTDsm5nOyAjNTFCQgor5Ya8ID4geGnEg247ICM1MUJDCivlhr0gPiBsacOoOyAjNTFCRAor5Ya+ID4geGnDoTsgIzUxQkUKK+WGvyA+IGppxIFuOyAjNTFCRgor5YeAID4gasOsbmc7ICM1MUMwCivlh4EgPiBzaMO5OyAjNTFDMQor5YeCID4gbcSVaTsgIzUxQzIKK+WHgyA+IHTDujsgIzUxQzMKK+WHhCA+IHHEqzsgIzUxQzQKK+WHhSA+IGfDuTsgIzUxQzUKK+WHhiA+IHpoxa1uOyAjNTFDNgor5YeHID4gc8Oybmc7ICM1MUM3Civlh4ggPiBqw6xuZzsgIzUxQzgKK+WHiSA+IGxpw6FuZzsgIzUxQzkKK+WHiiA+IHHDrG5nOyAjNTFDQQor5YeLID4gZGnEgW87ICM1MUNCCivlh4wgPiBsw61uZzsgIzUxQ0MKK+WHjSA+IGTDsm5nOyAjNTFDRAor5YeOID4gZ8OgbjsgIzUxQ0UKK+WHjyA+IGppxINuOyAjNTFDRgor5YeQID4gecSrbjsgIzUxRDAKK+WHkSA+IGPDsnU7ICM1MUQxCivlh5IgPiB5w607ICM1MUQyCivlh5MgPiBsw6w7ICM1MUQzCivlh5QgPiBjxIFuZzsgIzUxRDQKK+WHlSA+IG3ErW5nOyAjNTFENQor5YeWID4gemh1xJVuOyAjNTFENgor5YeXID4gY8O6aTsgIzUxRDcKK+WHmCA+IHPEqzsgIzUxRDgKK+WHmSA+IGTDum87ICM1MUQ5Civlh5ogPiBqw6xuOyAjNTFEQQor5YebID4gbMStbjsgIzUxREIKK+WHnCA+IGzErW47ICM1MURDCivlh50gPiBuw61uZzsgIzUxREQKK+WHniA+IHjEqzsgIzUxREUKK+WHnyA+IGTDujsgIzUxREYKK+WHoCA+IGrEqzsgIzUxRTAKK+WHoSA+IGbDoW47ICM1MUUxCivlh6IgPiBmw6FuOyAjNTFFMgor5YejID4gZsOhbjsgIzUxRTMKK+WHpCA+IGbDqG5nOyAjNTFFNAor5YelID4gasWrOyAjNTFFNQor5YemID4gY2jFrTsgIzUxRTYKK+WHqCA+IGbEk25nOyAjNTFFOAor5YerID4gZsO6OyAjNTFFQgor5YesID4gZsSTbmc7ICM1MUVDCivlh60gPiBww61uZzsgIzUxRUQKK+WHriA+IGbEk25nOyAjNTFFRQor5YevID4ga8SDaTsgIzUxRUYKK+WHsCA+IGh1w6FuZzsgIzUxRjAKK+WHsSA+IGvEg2k7ICM1MUYxCivlh7IgPiBnxIFuOyAjNTFGMgor5YezID4gZMOobmc7ICM1MUYzCivlh7QgPiBww61uZzsgIzUxRjQKK+WHtSA+IHHFqzsgIzUxRjUKK+WHtiA+IHjEq29uZzsgIzUxRjYKK+WHtyA+IGt1w6BpOyAjNTFGNwor5Ye4ID4gdMWrOyAjNTFGOAor5Ye5ID4gxIFvOyAjNTFGOQor5Ye6ID4gY2jFqzsgIzUxRkEKK+WHuyA+IGrDrTsgIzUxRkIKK+WHvCA+IGTDoG5nOyAjNTFGQwor5Ye9ID4gaMOhbjsgIzUxRkQKK+WHviA+IGjDoW47ICM1MUZFCivlh78gPiB6w6FvOyAjNTFGRgor5YiAID4gZMSBbzsgIzUyMDAKK+WIgSA+IGRpxIFvOyAjNTIwMQor5YiCID4gZMSBbzsgIzUyMDIKK+WIgyA+IHLDqG47ICM1MjAzCivliIQgPiByw6huOyAjNTIwNAor5YiFID4gY2h1xIFuZzsgIzUyMDUKK+WIhiA+IGbEk247ICM1MjA2CivliIcgPiBxacSTOyAjNTIwNwor5YiIID4gecOsOyAjNTIwOAor5YiJID4gasSrOyAjNTIwOQor5YiKID4ga8SBbjsgIzUyMEEKK+WIiyA+IHFpw6BuOyAjNTIwQgor5YiMID4gY8WtbjsgIzUyMEMKK+WIjSA+IGNow7o7ICM1MjBECivliI4gPiB3xJVuOyAjNTIwRQor5YiPID4gasSrOyAjNTIwRgor5YiQID4gZMSDbjsgIzUyMTAKK+WIkSA+IHjDrW5nOyAjNTIxMQor5YiSID4gaHXDoTsgIzUyMTIKK+WIkyA+IHfDoW47ICM1MjEzCivliJQgPiBqdcOpOyAjNTIxNAor5YiVID4gbMOtOyAjNTIxNQor5YiWID4geXXDqDsgIzUyMTYKK+WIlyA+IGxpw6g7ICM1MjE3CivliJggPiBsw611OyAjNTIxOAor5YiZID4gesOpOyAjNTIxOQor5YiaID4gZ8SBbmc7ICM1MjFBCivliJsgPiBjaHXDoG5nOyAjNTIxQgor5YicID4gZsO6OyAjNTIxQwor5YidID4gY2jFqzsgIzUyMUQKK+WIniA+IHHDuTsgIzUyMUUKK+WInyA+IGrFqzsgIzUyMUYKK+WIoCA+IHNoxIFuOyAjNTIyMAor5YihID4gbcStbjsgIzUyMjEKK+WIoiA+IGzDrW5nOyAjNTIyMgor5YijID4gemjFjW5nOyAjNTIyMwor5YikID4gcMOgbjsgIzUyMjQKK+WIpSA+IGJpw6k7ICM1MjI1CivliKYgPiBqacOpOyAjNTIyNgor5YinID4gamnDqTsgIzUyMjcKK+WIqCA+IGLDoG87ICM1MjI4CivliKkgPiBsw6w7ICM1MjI5CivliKogPiBzaMSBbjsgIzUyMkEKK+WIqyA+IGJpw6k7ICM1MjJCCivliKwgPiBjaMSDbjsgIzUyMkMKK+WIrSA+IGrErW5nOyAjNTIyRAor5YiuID4gZ3XEgTsgIzUyMkUKK+WIryA+IGfEk247ICM1MjJGCivliLAgPiBkw6BvOyAjNTIzMAor5YixID4gY2h1w6BuZzsgIzUyMzEKK+WIsiA+IGvFq2k7ICM1MjMyCivliLMgPiBrxas7ICM1MjMzCivliLQgPiBkw7lvOyAjNTIzNAor5Yi1ID4gw6hyOyAjNTIzNQor5Yi2ID4gemjDrDsgIzUyMzYKK+WItyA+IHNodcSBOyAjNTIzNwor5Yi4ID4gcXXDoG47ICM1MjM4CivliLkgPiBjaMOgOyAjNTIzOQor5Yi6ID4gY8OsOyAjNTIzQQor5Yi7ID4ga8OoOyAjNTIzQgor5Yi8ID4gamnDqTsgIzUyM0MKK+WIvSA+IGfDuWk7ICM1MjNECivliL4gPiBjw6w7ICM1MjNFCivliL8gPiBnw7lpOyAjNTIzRgor5YmAID4ga8SDaTsgIzUyNDAKK+WJgSA+IGTDuW87ICM1MjQxCivliYIgPiBqw6w7ICM1MjQyCivliYMgPiB0w6w7ICM1MjQzCivliYQgPiBqxK1uZzsgIzUyNDQKK+WJhSA+IGzDs3U7ICM1MjQ1CivliYYgPiBnxJNuOyAjNTI0Ngor5YmHID4gesOpOyAjNTI0Nwor5YmIID4geXXEgW47ICM1MjQ4CivliYkgPiBjw7lvOyAjNTI0OQor5YmKID4geHXEkzsgIzUyNEEKK+WJiyA+IGvDqDsgIzUyNEIKK+WJjCA+IGzDoDsgIzUyNEMKK+WJjSA+IHFpw6FuOyAjNTI0RAor5YmOID4gY2jDoDsgIzUyNEUKK+WJjyA+IGNodcOgbmc7ICM1MjRGCivliZAgPiBndcSDOyAjNTI1MAor5YmRID4gamnDoG47ICM1MjUxCivliZIgPiBjw7lvOyAjNTI1Mgor5YmTID4gbMOtOyAjNTI1Mwor5YmUID4gdMSrOyAjNTI1NAor5YmVID4gZsOoaTsgIzUyNTUKK+WJliA+IHDFjXU7ICM1MjU2CivliZcgPiBjaMSDbjsgIzUyNTcKK+WJmCA+IHHDrTsgIzUyNTgKK+WJmSA+IGNodcOgbmc7ICM1MjU5CivliZogPiB6w6w7ICM1MjVBCivliZsgPiBnxIFuZzsgIzUyNUIKK+WJnCA+IHfEgW47ICM1MjVDCivliZ0gPiBixY07ICM1MjVECivliZ4gPiBqxKs7ICM1MjVFCivliZ8gPiBkxatvOyAjNTI1Rgor5YmgID4gccOtbmc7ICM1MjYwCivliaEgPiB5xINuOyAjNTI2MQor5YmiID4gemjDum87ICM1MjYyCivliaMgPiBqacOgbjsgIzUyNjMKK+WJpCA+IGrDrDsgIzUyNjQKK+WJpSA+IGLFjTsgIzUyNjUKK+WJpiA+IHnEgW47ICM1MjY2CivliacgPiBqw7k7ICM1MjY3CivliaggPiBow7lvOyAjNTI2OAor5YmpID4gc2jDqG5nOyAjNTI2OQor5YmqID4gamnEg247ICM1MjZBCivliasgPiBkw7pvOyAjNTI2Qgor5YmsID4gZHXEgW47ICM1MjZDCivlia0gPiB3xas7ICM1MjZECivlia4gPiBndcSDOyAjNTI2RQor5YmvID4gZsO5OyAjNTI2Rgor5YmwID4gc2jDqG5nOyAjNTI3MAor5YmxID4gamnDoG47ICM1MjcxCivlibIgPiBnxJM7ICM1MjcyCivlibMgPiB6aMSBOyAjNTI3Mwor5Ym0ID4ga8SDaTsgIzUyNzQKK+WJtSA+IGNodcOgbmc7ICM1Mjc1CivlibYgPiBqdcSBbjsgIzUyNzYKK+WJtyA+IGNoxINuOyAjNTI3Nwor5Ym4ID4gdHXDoW47ICM1Mjc4CivlibkgPiBsw7k7ICM1Mjc5CivlibogPiBsw607ICM1MjdBCivlibsgPiBmw7N1OyAjNTI3Qgor5Ym8ID4gc2jEgW47ICM1MjdDCivlib0gPiBwacOgbzsgIzUyN0QKK+WJviA+IGvFjXU7ICM1MjdFCivlib8gPiBqacSDbzsgIzUyN0YKK+WKgCA+IGd1xIE7ICM1MjgwCivlioEgPiBxacSBbzsgIzUyODEKK+WKgiA+IGp1w6k7ICM1MjgyCivlioMgPiBodcOgOyAjNTI4Mwor5YqEID4gemjDoTsgIzUyODQKK+WKhSA+IHpow7lvOyAjNTI4NQor5YqGID4gbGnDoW47ICM1Mjg2CivliocgPiBqw7k7ICM1Mjg3CivlioggPiBwxKs7ICM1Mjg4CivliokgPiBsw611OyAjNTI4OQor5YqKID4gZ8O5aTsgIzUyOEEKK+WKiyA+IGppxINvOyAjNTI4Qgor5YqMID4gZ8O5aTsgIzUyOEMKK+WKjSA+IGppw6BuOyAjNTI4RAor5YqOID4gamnDoG47ICM1MjhFCivlio8gPiB0xIFuZzsgIzUyOEYKK+WKkCA+IGjFq287ICM1MjkwCivlipEgPiBqw6w7ICM1MjkxCivlipIgPiBqacOgbjsgIzUyOTIKK+WKkyA+IHnDrDsgIzUyOTMKK+WKlCA+IGppw6BuOyAjNTI5NAor5YqVID4gemjDrTsgIzUyOTUKK+WKliA+IGNow6FuOyAjNTI5Ngor5YqXID4gY3XDoW47ICM1Mjk3CivlipggPiBtw7M7ICM1Mjk4CivlipkgPiBsw607ICM1Mjk5CivlipogPiB6aMO6OyAjNTI5QQor5YqbID4gbMOsOyAjNTI5Qgor5YqcID4gecSBOyAjNTI5Qwor5YqdID4gcXXDoG47ICM1MjlECivlip4gPiBiw6BuOyAjNTI5RQor5YqfID4gZ8WNbmc7ICM1MjlGCivliqAgPiBqacSBOyAjNTJBMAor5YqhID4gd8O5OyAjNTJBMQor5YqiID4gbcOgaTsgIzUyQTIKK+WKoyA+IGxpw6g7ICM1MkEzCivliqQgPiBqw6xuOyAjNTJBNAor5YqlID4ga8STbmc7ICM1MkE1CivliqYgPiB4acOpOyAjNTJBNgor5YqnID4gemjErTsgIzUyQTcKK+WKqCA+IGTDsm5nOyAjNTJBOAor5YqpID4gemjDuTsgIzUyQTkKK+WKqiA+IG7FrTsgIzUyQUEKK+WKqyA+IGppw6k7ICM1MkFCCivliqwgPiBxw7o7ICM1MkFDCivliq0gPiBzaMOgbzsgIzUyQUQKK+WKriA+IHnDrDsgIzUyQUUKK+WKryA+IHpoxas7ICM1MkFGCivlirAgPiBtacSDbzsgIzUyQjAKK+WKsSA+IGzDrDsgIzUyQjEKK+WKsiA+IGrDrG5nOyAjNTJCMgor5YqzID4gbMOhbzsgIzUyQjMKK+WKtCA+IGzDoW87ICM1MkI0CivlirUgPiBqdcOgbjsgIzUyQjUKK+WKtiA+IGvFj3U7ICM1MkI2CivlircgPiB5w6FuZzsgIzUyQjcKK+WKuCA+IHfEgTsgIzUyQjgKK+WKuSA+IHhpw6BvOyAjNTJCOQor5Yq6ID4gbcOzdTsgIzUyQkEKK+WKuyA+IGt1xIFuZzsgIzUyQkIKK+WKvCA+IGppw6k7ICM1MkJDCivlir0gPiBsacOoOyAjNTJCRAor5Yq+ID4gaMOpOyAjNTJCRQor5Yq/ID4gc2jDrDsgIzUyQkYKK+WLgCA+IGvDqDsgIzUyQzAKK+WLgSA+IGrDrG5nOyAjNTJDMQor5YuCID4gaMOhbzsgIzUyQzIKK+WLgyA+IGLDszsgIzUyQzMKK+WLhCA+IG3ErW47ICM1MkM0Civli4UgPiBjaMOsOyAjNTJDNQor5YuGID4gbMOhbmc7ICM1MkM2Civli4cgPiB5xY9uZzsgIzUyQzcKK+WLiCA+IHnFj25nOyAjNTJDOAor5YuJID4gbWnEg247ICM1MkM5Civli4ogPiBrw6g7ICM1MkNBCivli4sgPiB4xatuOyAjNTJDQgor5YuMID4ganXDoG47ICM1MkNDCivli40gPiBxw61uZzsgIzUyQ0QKK+WLjiA+IGzDuTsgIzUyQ0UKK+WLjyA+IHDFj3U7ICM1MkNGCivli5AgPiBtxJVuZzsgIzUyRDAKK+WLkSA+IGzDoGk7ICM1MkQxCivli5IgPiBsw6g7ICM1MkQyCivli5MgPiBrw6BpOyAjNTJEMwor5YuUID4gbWnEg247ICM1MkQ0Civli5UgPiBkw7JuZzsgIzUyRDUKK+WLliA+IHjDuTsgIzUyRDYKK+WLlyA+IHjDuTsgIzUyRDcKK+WLmCA+IGvEgW47ICM1MkQ4Civli5kgPiB3w7k7ICM1MkQ5Civli5ogPiB5w6w7ICM1MkRBCivli5sgPiB4xatuOyAjNTJEQgor5YucID4gd8SVbmc7ICM1MkRDCivli50gPiBzaMOobmc7ICM1MkRECivli54gPiBsw6FvOyAjNTJERQor5YufID4gbcO5OyAjNTJERgor5YugID4gbMO5OyAjNTJFMAor5YuhID4gcGnDoG87ICM1MkUxCivli6IgPiBzaMOsOyAjNTJFMgor5YujID4gasSrOyAjNTJFMwor5YukID4gccOtbjsgIzUyRTQKK+WLpSA+IHFpxINuZzsgIzUyRTUKK+WLpiA+IGppxINvOyAjNTJFNgor5YunID4gcXXDoG47ICM1MkU3Civli6ggPiB5xINuZzsgIzUyRTgKK+WLqSA+IHnDrDsgIzUyRTkKK+WLqiA+IGp1w6k7ICM1MkVBCivli6sgPiBmw6FuOyAjNTJFQgor5YusID4ganXDoG47ICM1MkVDCivli60gPiB0w7NuZzsgIzUyRUQKK+WLriA+IGrDuTsgIzUyRUUKK+WLryA+IGTEgW47ICM1MkVGCivli7AgPiB4acOpOyAjNTJGMAor5YuxID4gbcOgaTsgIzUyRjEKK+WLsiA+IHjFq247ICM1MkYyCivli7MgPiB4xatuOyAjNTJGMwor5Yu0ID4gbMecOyAjNTJGNAor5Yu1ID4gbMOsOyAjNTJGNQor5Yu2ID4gY2jDqDsgIzUyRjYKK+WLtyA+IHLDoW5nOyAjNTJGNwor5Yu4ID4gcXXDoG47ICM1MkY4Civli7kgPiBixIFvOyAjNTJGOQor5Yu6ID4gc2jDoW87ICM1MkZBCivli7sgPiB5w7puOyAjNTJGQgor5Yu8ID4gasSrdTsgIzUyRkMKK+WLvSA+IGLDoG87ICM1MkZECivli74gPiBnxY11OyAjNTJGRQor5Yu/ID4gd8O5OyAjNTJGRgor5YyAID4gecO6bjsgIzUzMDAKK+WMgyA+IGfDoGk7ICM1MzAzCivljIQgPiBnw6BpOyAjNTMwNAor5YyFID4gYsSBbzsgIzUzMDUKK+WMhiA+IGPFjW5nOyAjNTMwNgor5YyIID4geMSrb25nOyAjNTMwOAor5YyJID4gcMSTbmc7ICM1MzA5CivljIogPiBqw7o7ICM1MzBBCivljIsgPiB0w6FvOyAjNTMwQgor5YyMID4gZ8OpOyAjNTMwQwor5YyNID4gcMO6OyAjNTMwRAor5YyOID4gw6BuOyAjNTMwRQor5YyPID4gcMOhbzsgIzUzMEYKK+WMkCA+IGbDujsgIzUzMTAKK+WMkSA+IGfFjW5nOyAjNTMxMQor5YySID4gZMOhOyAjNTMxMgor5YyTID4gasOsdTsgIzUzMTMKK+WMlCA+IHHEq29uZzsgIzUzMTQKK+WMlSA+IGLErTsgIzUzMTUKK+WMliA+IGh1w6A7ICM1MzE2CivljJcgPiBixJVpOyAjNTMxNwor5YyYID4gbsSDbzsgIzUzMTgKK+WMmSA+IGNow607ICM1MzE5CivljJogPiBmxIFuZzsgIzUzMUEKK+WMmyA+IGrDrHU7ICM1MzFCCivljJwgPiB5w607ICM1MzFDCivljJ0gPiB6xIE7ICM1MzFECivljJ4gPiBqacOgbmc7ICM1MzFFCivljJ8gPiBrw6BuZzsgIzUzMUYKK+WMoCA+IGppw6BuZzsgIzUzMjAKK+WMoSA+IGt1xIFuZzsgIzUzMjEKK+WMoiA+IGjFqzsgIzUzMjIKK+WMoyA+IHhpw6E7ICM1MzIzCivljKQgPiBxxas7ICM1MzI0CivljKUgPiBiacOgbjsgIzUzMjUKK+WMpiA+IGfFrWk7ICM1MzI2CivljKcgPiBxacOoOyAjNTMyNwor5YyoID4gesSBbmc7ICM1MzI4CivljKkgPiBrdcSBbmc7ICM1MzI5CivljKogPiBmxJVpOyAjNTMyQQor5YyrID4gaMWrOyAjNTMyQgor5YysID4gdMOzdTsgIzUzMkMKK+WMrSA+IGfFrWk7ICM1MzJECivljK4gPiBnw7lpOyAjNTMyRQor5YyvID4gaMO5aTsgIzUzMkYKK+WMsCA+IGTEgW47ICM1MzMwCivljLEgPiBnw7lpOyAjNTMzMQor5YyyID4gbGnDoW47ICM1MzMyCivljLMgPiBsacOhbjsgIzUzMzMKK+WMtCA+IHN1xINuOyAjNTMzNAor5Yy1ID4gZMO6OyAjNTMzNQor5Yy2ID4gasOsdTsgIzUzMzYKK+WMtyA+IHHDujsgIzUzMzcKK+WMuCA+IHjErTsgIzUzMzgKK+WMuSA+IHDErTsgIzUzMzkKK+WMuiA+IHHFqzsgIzUzM0EKK+WMuyA+IHnDrDsgIzUzM0IKK+WMvCA+IHFpw6A7ICM1MzNDCivljL0gPiB5xINuOyAjNTMzRAor5Yy+ID4gYmnEg247ICM1MzNFCivljL8gPiBuw6w7ICM1MzNGCivljYAgPiBxxas7ICM1MzQwCivljYEgPiBzaMOtOyAjNTM0MQor5Y2CID4geMOsbjsgIzUzNDIKK+WNgyA+IHFpxIFuOyAjNTM0Mwor5Y2EID4gbmnDoG47ICM1MzQ0CivljYUgPiBzw6A7ICM1MzQ1CivljYYgPiB6w7o7ICM1MzQ2CivljYcgPiBzaMSTbmc7ICM1MzQ3CivljYggPiB3xa07ICM1MzQ4CivljYkgPiBow7lpOyAjNTM0OQor5Y2KID4gYsOgbjsgIzUzNEEKK+WNiyA+IHNow6w7ICM1MzRCCivljYwgPiB4w6w7ICM1MzRDCivljY0gPiB3w6BuOyAjNTM0RAor5Y2OID4gaHXDoTsgIzUzNEUKK+WNjyA+IHhpw6k7ICM1MzRGCivljZAgPiB3w6BuOyAjNTM1MAor5Y2RID4gYsSTaTsgIzUzNTEKK+WNkiA+IHrDujsgIzUzNTIKK+WNkyA+IHpoxatvOyAjNTM1Mwor5Y2UID4geGnDqTsgIzUzNTQKK+WNlSA+IGTEgW47ICM1MzU1CivljZYgPiBtw6BpOyAjNTM1Ngor5Y2XID4gbsOhbjsgIzUzNTcKK+WNmCA+IGTEgW47ICM1MzU4CivljZkgPiBqw607ICM1MzU5CivljZogPiBiw7M7ICM1MzVBCivljZsgPiBzaHXDoGk7ICM1MzVCCivljZwgPiBixa07ICM1MzVDCivljZ0gPiBrdcOgbmc7ICM1MzVECivljZ4gPiBiacOgbjsgIzUzNUUKK+WNnyA+IGLFrTsgIzUzNUYKK+WNoCA+IHpoxIFuOyAjNTM2MAor5Y2hID4gcWnEgzsgIzUzNjEKK+WNoiA+IGzDujsgIzUzNjIKK+WNoyA+IHnFj3U7ICM1MzYzCivljaQgPiBsxa07ICM1MzY0CivljaUgPiB4xKs7ICM1MzY1CivljaYgPiBndcOgOyAjNTM2Ngor5Y2nID4gd8OyOyAjNTM2Nwor5Y2oID4geGnDqDsgIzUzNjgKK+WNqSA+IGppw6k7ICM1MzY5CivljaogPiBqacOpOyAjNTM2QQor5Y2rID4gd8OoaTsgIzUzNkIKK+WNrCA+IMOhbmc7ICM1MzZDCivlja0gPiBxw61vbmc7ICM1MzZECivlja4gPiB6aMSrOyAjNTM2RQor5Y2vID4gbcSDbzsgIzUzNkYKK+WNsCA+IHnDrG47ICM1MzcwCivljbEgPiB3xJNpOyAjNTM3MQor5Y2yID4gc2jDoG87ICM1MzcyCivljbMgPiBqw607ICM1MzczCivljbQgPiBxdcOoOyAjNTM3NAor5Y21ID4gbHXEg247ICM1Mzc1CivljbYgPiBzaMOsOyAjNTM3Ngor5Y23ID4ganXDoG47ICM1Mzc3CivljbggPiB4acOoOyAjNTM3OAor5Y25ID4geMO5OyAjNTM3OQor5Y26ID4gasStbjsgIzUzN0EKK+WNuyA+IHF1w6g7ICM1MzdCCivljbwgPiB3w7k7ICM1MzdDCivljb0gPiBqw607ICM1MzdECivljb4gPiDDqDsgIzUzN0UKK+WNvyA+IHHEq25nOyAjNTM3Rgor5Y6AID4geMSrOyAjNTM4MAor5Y6CID4gaMOgbjsgIzUzODIKK+WOgyA+IHpoxIFuOyAjNTM4Mwor5Y6EID4gw6g7ICM1Mzg0CivljoUgPiB0xKtuZzsgIzUzODUKK+WOhiA+IGzDrDsgIzUzODYKK+WOhyA+IHpow6k7ICM1Mzg3CivljoggPiBoxINuOyAjNTM4OAor5Y6JID4gbMOsOyAjNTM4OQor5Y6KID4gecSDOyAjNTM4QQor5Y6LID4gecSBOyAjNTM4Qgor5Y6MID4gecOgbjsgIzUzOEMKK+WOjSA+IHNow6g7ICM1MzhECivljo4gPiB6aMStOyAjNTM4RQor5Y6PID4gemjEgzsgIzUzOEYKK+WOkCA+IHDDoW5nOyAjNTM5MAor5Y6SID4gaMOpOyAjNTM5Mgor5Y6TID4gecOhOyAjNTM5Mwor5Y6UID4gemjDrDsgIzUzOTQKK+WOlSA+IGPDqDsgIzUzOTUKK+WOliA+IHDDoW5nOyAjNTM5Ngor5Y6XID4gdMOtOyAjNTM5Nwor5Y6YID4gbMOtOyAjNTM5OAor5Y6ZID4gc2jDqDsgIzUzOTkKK+WOmiA+IGjDsnU7ICM1MzlBCivljpsgPiB0xKtuZzsgIzUzOUIKK+WOnCA+IHrFq2k7ICM1MzlDCivljp0gPiBjw7lvOyAjNTM5RAor5Y6eID4gZsOoaTsgIzUzOUUKK+WOnyA+IHl1w6FuOyAjNTM5Rgor5Y6gID4gY8OoOyAjNTNBMAor5Y6hID4geXXDoW47ICM1M0ExCivljqIgPiB4acSBbmc7ICM1M0EyCivljqMgPiB5xINuOyAjNTNBMwor5Y6kID4gbMOsOyAjNTNBNAor5Y6lID4ganXDqTsgIzUzQTUKK+WOpiA+IHNow6A7ICM1M0E2CivljqcgPiBkacSBbjsgIzUzQTcKK+WOqCA+IGNow7o7ICM1M0E4CivljqkgPiBqw6x1OyAjNTNBOQor5Y6qID4gccOtbjsgIzUzQUEKK+WOqyA+IMOhbzsgIzUzQUIKK+WOrCA+IGfFrWk7ICM1M0FDCivljq0gPiB5w6BuOyAjNTNBRAor5Y6uID4gc8SrOyAjNTNBRQor5Y6vID4gbMOsOyAjNTNBRgor5Y6wID4gY2jEg25nOyAjNTNCMAor5Y6xID4gbMOhbjsgIzUzQjEKK+WOsiA+IGzDrDsgIzUzQjIKK+WOsyA+IHnDoW47ICM1M0IzCivljrQgPiB5xINuOyAjNTNCNAor5Y61ID4geXXDoW47ICM1M0I1CivljrYgPiBzxKs7ICM1M0I2CivljrcgPiBnxY1uZzsgIzUzQjcKK+WOuCA+IGzDrW47ICM1M0I4CivljrkgPiBxw611OyAjNTNCOQor5Y66ID4gccO5OyAjNTNCQQor5Y67ID4gccO5OyAjNTNCQgor5Y69ID4gbMSVaTsgIzUzQkQKK+WOviA+IGTFqzsgIzUzQkUKK+WOvyA+IHhpw6BuOyAjNTNCRgor5Y+AID4gemh1xIFuOyAjNTNDMAor5Y+BID4gc8SBbjsgIzUzQzEKK+WPgiA+IGPEgW47ICM1M0MyCivlj4MgPiBjxIFuOyAjNTNDMwor5Y+EID4gY8SBbjsgIzUzQzQKK+WPhSA+IGPEgW47ICM1M0M1Civlj4YgPiDDoGk7ICM1M0M2Civlj4cgPiBkw6BpOyAjNTNDNwor5Y+IID4gecOydTsgIzUzQzgKK+WPiSA+IGNoYTsgIzUzQzkKK+WPiiA+IGrDrTsgIzUzQ0EKK+WPiyA+IHnFj3U7ICM1M0NCCivlj4wgPiBzaHXEgW5nOyAjNTNDQwor5Y+NID4gZsSDbjsgIzUzQ0QKK+WPjiA+IHNoxY11OyAjNTNDRQor5Y+PID4gZ3XDoGk7ICM1M0NGCivlj5AgPiBiw6E7ICM1M0QwCivlj5EgPiBmxIE7ICM1M0QxCivlj5IgPiByw7lvOyAjNTNEMgor5Y+TID4gc2jDrDsgIzUzRDMKK+WPlCA+IHNoxas7ICM1M0Q0Civlj5UgPiB6aMO6bzsgIzUzRDUKK+WPliA+IHHFqzsgIzUzRDYKK+WPlyA+IHNow7J1OyAjNTNENwor5Y+YID4gYmnDoG47ICM1M0Q4Civlj5kgPiB4w7k7ICM1M0Q5Civlj5ogPiBqacSDOyAjNTNEQQor5Y+bID4gcMOgbjsgIzUzREIKK+WPnCA+IHPFj3U7ICM1M0RDCivlj50gPiBnw6BvOyAjNTNERAor5Y+eID4gd8OoaTsgIzUzREUKK+WPnyA+IHPFj3U7ICM1M0RGCivlj6AgPiBkacOpOyAjNTNFMAor5Y+hID4gcsO5aTsgIzUzRTEKK+WPoiA+IGPDs25nOyAjNTNFMgor5Y+jID4ga8WPdTsgIzUzRTMKK+WPpCA+IGfFrTsgIzUzRTQKK+WPpSA+IGrDuTsgIzUzRTUKK+WPpiA+IGzDrG5nOyAjNTNFNgor5Y+nID4gZ3XEgzsgIzUzRTcKK+WPqCA+IHTEgW87ICM1M0U4Civlj6kgPiBrw7J1OyAjNTNFOQor5Y+qID4gemjErTsgIzUzRUEKK+WPqyA+IGppw6BvOyAjNTNFQgor5Y+sID4gemjDoG87ICM1M0VDCivlj60gPiBixIE7ICM1M0VECivlj64gPiBkxKtuZzsgIzUzRUUKK+WPryA+IGvElTsgIzUzRUYKK+WPsCA+IHTDoWk7ICM1M0YwCivlj7EgPiBjaMOsOyAjNTNGMQor5Y+yID4gc2jErTsgIzUzRjIKK+WPsyA+IHnDsnU7ICM1M0YzCivlj7QgPiBxw611OyAjNTNGNAor5Y+1ID4gcMWPOyAjNTNGNQor5Y+2ID4geGnDqTsgIzUzRjYKK+WPtyA+IGjDoG87ICM1M0Y3Civlj7ggPiBzxKs7ICM1M0Y4Civlj7kgPiB0w6BuOyAjNTNGOQor5Y+6ID4gY2jErTsgIzUzRkEKK+WPuyA+IGzDqDsgIzUzRkIKK+WPvCA+IGRpxIFvOyAjNTNGQwor5Y+9ID4gasSrOyAjNTNGRAor5Y+/ID4gaMWNbmc7ICM1M0ZGCivlkIAgPiBtacSTOyAjNTQwMAor5ZCBID4geMWrOyAjNTQwMQor5ZCCID4gbcOhbmc7ICM1NDAyCivlkIMgPiBjaMSrOyAjNTQwMwor5ZCEID4gZ8OoOyAjNTQwNAor5ZCFID4geHXEgW47ICM1NDA1CivlkIYgPiB5xIFvOyAjNTQwNgor5ZCHID4gesStOyAjNTQwNwor5ZCIID4gaMOpOyAjNTQwOAor5ZCJID4gasOtOyAjNTQwOQor5ZCKID4gZGnDoG87ICM1NDBBCivlkIsgPiBjw7luOyAjNTQwQgor5ZCMID4gdMOzbmc7ICM1NDBDCivlkI0gPiBtw61uZzsgIzU0MEQKK+WQjiA+IGjDsnU7ICM1NDBFCivlkI8gPiBsw6w7ICM1NDBGCivlkJAgPiB0xa07ICM1NDEwCivlkJEgPiB4acOgbmc7ICM1NDExCivlkJIgPiB6aMOgOyAjNTQxMgor5ZCTID4geGnDoDsgIzU0MTMKK+WQlCA+IHnElTsgIzU0MTQKK+WQlSA+IGzHmjsgIzU0MTUKK+WQliA+IMSBOyAjNTQxNgor5ZCXID4gbWE7ICM1NDE3CivlkJggPiDFj3U7ICM1NDE4CivlkJkgPiB4dcSTOyAjNTQxOQor5ZCaID4gecSrOyAjNTQxQQor5ZCbID4gasWrbjsgIzU0MUIKK+WQnCA+IGNoxY91OyAjNTQxQwor5ZCdID4gbMOsbjsgIzU0MUQKK+WQniA+IHTFq247ICM1NDFFCivlkJ8gPiB5w61uOyAjNTQxRgor5ZCgID4gZsOoaTsgIzU0MjAKK+WQoSA+IGLErTsgIzU0MjEKK+WQoiA+IHHDrG47ICM1NDIyCivlkKMgPiBxw6xuOyAjNTQyMwor5ZCkID4gamnDqDsgIzU0MjQKK+WQpSA+IGLDuTsgIzU0MjUKK+WQpiA+IGbFj3U7ICM1NDI2CivlkKcgPiBiYTsgIzU0MjcKK+WQqCA+IGTFq247ICM1NDI4CivlkKkgPiBmxJNuOyAjNTQyOQor5ZCqID4gw6k7ICM1NDJBCivlkKsgPiBow6FuOyAjNTQyQgor5ZCsID4gdMSrbmc7ICM1NDJDCivlkK0gPiBow6FuZzsgIzU0MkQKK+WQriA+IHNoxa1uOyAjNTQyRQor5ZCvID4gccStOyAjNTQyRgor5ZCwID4gaMOzbmc7ICM1NDMwCivlkLEgPiB6aMSrOyAjNTQzMQor5ZCyID4gc2jElW47ICM1NDMyCivlkLMgPiB3w7o7ICM1NDMzCivlkLQgPiB3w7o7ICM1NDM0CivlkLUgPiBjaMSDbzsgIzU0MzUKK+WQtiA+IG7DqDsgIzU0MzYKK+WQtyA+IHh1w6g7ICM1NDM3CivlkLggPiB4xKs7ICM1NDM4CivlkLkgPiBjaMWraTsgIzU0MzkKK+WQuiA+IGTFjXU7ICM1NDNBCivlkLsgPiB3xJVuOyAjNTQzQgor5ZC8ID4gaMWPdTsgIzU0M0MKK+WQvSA+IMOzdTsgIzU0M0QKK+WQviA+IHfDujsgIzU0M0UKK+WQvyA+IGfDoG87ICM1NDNGCivlkYAgPiB5xIE7ICM1NDQwCivlkYEgPiBqw7luOyAjNTQ0MQor5ZGCID4gbMeaOyAjNTQ0Mgor5ZGDID4gw6g7ICM1NDQzCivlkYQgPiBnw6k7ICM1NDQ0CivlkYUgPiBtw6lpOyAjNTQ0NQor5ZGGID4gw6FpOyAjNTQ0Ngor5ZGHID4gccStOyAjNTQ0Nwor5ZGIID4gY2jDqW5nOyAjNTQ0OAor5ZGJID4gd8O6OyAjNTQ0OQor5ZGKID4gZ8OgbzsgIzU0NEEKK+WRiyA+IGbFqzsgIzU0NEIKK+WRjCA+IGppw6BvOyAjNTQ0Qwor5ZGNID4gaMWNbmc7ICM1NDRECivlkY4gPiBjaMStOyAjNTQ0RQor5ZGPID4gc2jEk25nOyAjNTQ0Rgor5ZGQID4gbsOoOyAjNTQ1MAor5ZGRID4gdMWrbjsgIzU0NTEKK+WRkiA+IGbFrTsgIzU0NTIKK+WRkyA+IHnDrDsgIzU0NTMKK+WRlCA+IGTEgWk7ICM1NDU0CivlkZUgPiDFjXU7ICM1NDU1CivlkZYgPiBsw6w7ICM1NDU2CivlkZcgPiBiw6BpOyAjNTQ1Nwor5ZGYID4geXXDoW47ICM1NDU4CivlkZkgPiBrdcSBaTsgIzU0NTkKK+WRmyA+IHFpxIFuZzsgIzU0NUIKK+WRnCA+IHfFqzsgIzU0NUMKK+WRnSA+IMOoOyAjNTQ1RAor5ZGeID4gc2jEqzsgIzU0NUUKK+WRnyA+IHF1xINuOyAjNTQ1Rgor5ZGgID4gcMSTbjsgIzU0NjAKK+WRoSA+IHfElW47ICM1NDYxCivlkaIgPiBuw607ICM1NDYyCivlkaMgPiBtzIE7ICM1NDYzCivlkaQgPiBsxK1uZzsgIzU0NjQKK+WRpSA+IHLEg247ICM1NDY1CivlkaYgPiB5xY11OyAjNTQ2Ngor5ZGnID4gZMStOyAjNTQ2Nwor5ZGoID4gemjFjXU7ICM1NDY4CivlkakgPiBzaMOsOyAjNTQ2OQor5ZGqID4gemjDsnU7ICM1NDZBCivlkasgPiB0acSTOyAjNTQ2Qgor5ZGsID4geMOsOyAjNTQ2Qwor5ZGtID4gecOsOyAjNTQ2RAor5ZGuID4gccOsOyAjNTQ2RQor5ZGvID4gcMOtbmc7ICM1NDZGCivlkbAgPiB6xK07ICM1NDcwCivlkbEgPiBnxas7ICM1NDcxCivlkbIgPiB6xKs7ICM1NDcyCivlkbMgPiB3w6hpOyAjNTQ3Mwor5ZG0ID4geMWrOyAjNTQ3NAor5ZG1ID4gaMSTOyAjNTQ3NQor5ZG2ID4gbsOhbzsgIzU0NzYKK+WRtyA+IHhpxIE7ICM1NDc3CivlkbggPiBwxJNpOyAjNTQ3OAor5ZG5ID4gecOsOyAjNTQ3OQor5ZG6ID4geGnEgW87ICM1NDdBCivlkbsgPiBzaMSTbjsgIzU0N0IKK+WRvCA+IGjFqzsgIzU0N0MKK+WRvSA+IG3DrG5nOyAjNTQ3RAor5ZG+ID4gZMOhOyAjNTQ3RQor5ZG/ID4gccWrOyAjNTQ3Rgor5ZKAID4gasWtOyAjNTQ4MAor5ZKBID4gZ8OobTsgIzU0ODEKK+WSgiA+IHrEgTsgIzU0ODIKK+WSgyA+IHTFq287ICM1NDgzCivlkoQgPiBkxatvOyAjNTQ4NAor5ZKFID4gcMOydTsgIzU0ODUKK+WShiA+IHDDoW87ICM1NDg2CivlkocgPiBiw6w7ICM1NDg3CivlkoggPiBmw7o7ICM1NDg4CivlkokgPiB5xIFuZzsgIzU0ODkKK+WSiiA+IGjDqTsgIzU0OEEKK+WSiyA+IHpow6A7ICM1NDhCCivlkowgPiBow6k7ICM1NDhDCivlko0gPiBoxIFpOyAjNTQ4RAor5ZKOID4gasOsdTsgIzU0OEUKK+WSjyA+IHnFj25nOyAjNTQ4Rgor5ZKQID4gZsO5OyAjNTQ5MAor5ZKRID4gcXXDqDsgIzU0OTEKK+WSkiA+IHpow7J1OyAjNTQ5Mgor5ZKTID4gd8SDOyAjNTQ5Mwor5ZKUID4ga8SDOyAjNTQ5NAor5ZKVID4gZ8WrOyAjNTQ5NQor5ZKWID4ga8SBOyAjNTQ5Ngor5ZKXID4gesWtbzsgIzU0OTcKK+WSmCA+IGLDuTsgIzU0OTgKK+WSmSA+IGzDs25nOyAjNTQ5OQor5ZKaID4gZMWNbmc7ICM1NDlBCivlkpsgPiBuw61uZzsgIzU0OUIKK+WSnSA+IHPEqzsgIzU0OUQKK+WSniA+IHhpw6BuOyAjNTQ5RQor5ZKfID4gaMO5bzsgIzU0OUYKK+WSoCA+IHHDrDsgIzU0QTAKK+WSoSA+IMOocjsgIzU0QTEKK+WSoiA+IMOoOyAjNTRBMgor5ZKjID4gZ3XEgW5nOyAjNTRBMwor5ZKkID4gemjDoDsgIzU0QTQKK+WSpSA+IHjDrDsgIzU0QTUKK+WSpiA+IHnDrTsgIzU0QTYKK+WSpyA+IGxpxJU7ICM1NEE3CivlkqggPiB6xKs7ICM1NEE4CivlkqkgPiBtacSTOyAjNTRBOQor5ZKqID4gbcSrOyAjNTRBQQor5ZKrID4gemjErTsgIzU0QUIKK+WSrCA+IHnEg287ICM1NEFDCivlkq0gPiBqxKs7ICM1NEFECivlkq4gPiB6aMOydTsgIzU0QUUKK+WSryA+IGfEkzsgIzU0QUYKK+WSsCA+IHNodcOgaTsgIzU0QjAKK+WSsSA+IHrDoW47ICM1NEIxCivlkrIgPiB4acOgbzsgIzU0QjIKK+WSsyA+IGvDqTsgIzU0QjMKK+WStCA+IGjFq2k7ICM1NEI0CivlkrUgPiBrdcSBOyAjNTRCNQor5ZK2ID4gaHXDoGk7ICM1NEI2CivlkrcgPiB0w6FvOyAjNTRCNwor5ZK4ID4geGnDoW47ICM1NEI4CivlkrkgPiDDqDsgIzU0QjkKK+WSuiA+IHh1xIFuOyAjNTRCQQor5ZK7ID4geMSrdTsgIzU0QkIKK+WSvCA+IHfEgWk7ICM1NEJDCivlkr0gPiB5xIFuOyAjNTRCRAor5ZK+ID4gbMSDbzsgIzU0QkUKK+WSvyA+IHnEqzsgIzU0QkYKK+WTgCA+IMSBaTsgIzU0QzAKK+WTgSA+IHDErW47ICM1NEMxCivlk4IgPiBzaMSVbjsgIzU0QzIKK+WTgyA+IHTDs25nOyAjNTRDMwor5ZOEID4gaMWNbmc7ICM1NEM0Civlk4UgPiB4xKtvbmc7ICM1NEM1Civlk4YgPiBjaMStOyAjNTRDNgor5ZOHID4gd8SBOyAjNTRDNwor5ZOIID4gaMSBOyAjNTRDOAor5ZOJID4gesSBaTsgIzU0QzkKK+WTiiA+IHnDuTsgIzU0Q0EKK+WTiyA+IGTDrDsgIzU0Q0IKK+WTjCA+IHDDoGk7ICM1NENDCivlk40gPiB4acSDbmc7ICM1NENECivlk44gPiDEgWk7ICM1NENFCivlk48gPiBoxJVuOyAjNTRDRgor5ZOQID4ga3XEgW5nOyAjNTREMAor5ZORID4gecSDOyAjNTREMQor5ZOSID4gZMSBOyAjNTREMgor5ZOTID4geGnEgW87ICM1NEQzCivlk5QgPiBiw6w7ICM1NEQ0Civlk5UgPiB5dcSVOyAjNTRENQor5ZOXID4gaHXEgTsgIzU0RDcKK+WTmSA+IGt1w6BpOyAjNTREOQor5ZOaID4gZMWtbzsgIzU0REEKK+WTnCA+IGrDrDsgIzU0REMKK+WTnSA+IG7Ds25nOyAjNTRERAor5ZOeID4gbcWNdTsgIzU0REUKK+WTnyA+IHlvOyAjNTRERgor5ZOgID4gaMOgbzsgIzU0RTAKK+WToSA+IHl1w6FuOyAjNTRFMQor5ZOiID4gbMOybmc7ICM1NEUyCivlk6MgPiBwxY91OyAjNTRFMwor5ZOkID4gbcOhbmc7ICM1NEU0Civlk6UgPiBnxJM7ICM1NEU1Civlk6YgPiDDqTsgIzU0RTYKK+WTpyA+IGNoxKs7ICM1NEU3Civlk6ggPiBzaMOgbzsgIzU0RTgKK+WTqSA+IGzEqzsgIzU0RTkKK+WTqiA+IG7EgzsgIzU0RUEKK+WTqyA+IHrDujsgIzU0RUIKK+WTrCA+IGjDqTsgIzU0RUMKK+WTrSA+IGvFqzsgIzU0RUQKK+WTriA+IHhpxIFvOyAjNTRFRQor5ZOvID4geGnDoG47ICM1NEVGCivlk7AgPiBsw6FvOyAjNTRGMAor5ZOxID4gYsWNOyAjNTRGMQor5ZOyID4gemjDqTsgIzU0RjIKK+WTsyA+IHpoxIE7ICM1NEYzCivlk7QgPiBsacOgbmc7ICM1NEY0Civlk7UgPiBixIE7ICM1NEY1Civlk7YgPiBtacSTOyAjNTRGNgor5ZO3ID4gbMOoOyAjNTRGNwor5ZO4ID4gc8WraTsgIzU0RjgKK+WTuSA+IGbDs3U7ICM1NEY5Civlk7ogPiBixa07ICM1NEZBCivlk7sgPiBow6BuOyAjNTRGQgor5ZO8ID4gaMSTbmc7ICM1NEZDCivlk70gPiBnxJVuZzsgIzU0RkQKK+WTviA+IHNoxatvOyAjNTRGRQor5ZO/ID4gZ8SVOyAjNTRGRgor5ZSAID4gecWPdTsgIzU1MDAKK+WUgSA+IHnDoG47ICM1NTAxCivllIIgPiBnxa07ICM1NTAyCivllIMgPiBnxa07ICM1NTAzCivllIQgPiBiw6BpOyAjNTUwNAor5ZSFID4gaMSBbjsgIzU1MDUKK+WUhiA+IHPFq287ICM1NTA2CivllIcgPiBjaMO6bjsgIzU1MDcKK+WUiCA+IHnDrDsgIzU1MDgKK+WUiSA+IMSBaTsgIzU1MDkKK+WUiiA+IGppw6E7ICM1NTBBCivllIsgPiB0xa07ICM1NTBCCivllIwgPiB4acOhbjsgIzU1MEMKK+WUjSA+IGh1xINuOyAjNTUwRAor5ZSOID4gbMSrOyAjNTUwRQor5ZSPID4geMSrOyAjNTUwRgor5ZSQID4gdMOhbmc7ICM1NTEwCivllJEgPiB6w7lvOyAjNTUxMQor5ZSSID4gccOtdTsgIzU1MTIKK+WUkyA+IGNoxJM7ICM1NTEzCivllJQgPiB3w7o7ICM1NTE0CivllJUgPiB6w6BvOyAjNTUxNQor5ZSWID4gecSDOyAjNTUxNgor5ZSXID4gZMWNdTsgIzU1MTcKK+WUmCA+IHHErTsgIzU1MTgKK+WUmSA+IGTDrTsgIzU1MTkKK+WUmiA+IHHDrG47ICM1NTFBCivllJsgPiBtw6A7ICM1NTFCCivllJ0gPiBoxY9uZzsgIzU1MUQKK+WUniA+IGTFj3U7ICM1NTFFCivllKAgPiBsw6FvOyAjNTUyMAor5ZShID4gbGnEg25nOyAjNTUyMQor5ZSiID4gc8WtbzsgIzU1MjIKK+WUoyA+IHrDoG87ICM1NTIzCivllKQgPiBodcOgbjsgIzU1MjQKK+WUpiA+IHNoxIE7ICM1NTI2CivllKcgPiBqxKs7ICM1NTI3CivllKggPiB6xa1vOyAjNTUyOAor5ZSpID4gd8WNOyAjNTUyOQor5ZSqID4gZsSVbmc7ICM1NTJBCivllKsgPiB5w61uOyAjNTUyQgor5ZSsID4gaMWtOyAjNTUyQwor5ZStID4gccSrOyAjNTUyRAor5ZSuID4gc2jDsnU7ICM1NTJFCivllK8gPiB3w6lpOyAjNTUyRgor5ZSwID4gc2h1xIE7ICM1NTMwCivllLEgPiBjaMOgbmc7ICM1NTMxCivllLIgPiDDqXI7ICM1NTMyCivllLMgPiBsw6w7ICM1NTMzCivllLQgPiBxacOgbmc7ICM1NTM0CivllLUgPiDEg247ICM1NTM1CivllLYgPiBqacOoOyAjNTUzNgor5ZS3ID4gecWNOyAjNTUzNwor5ZS4ID4gbmnDoG47ICM1NTM4CivllLkgPiB5xas7ICM1NTM5CivllLogPiB0acSDbjsgIzU1M0EKK+WUuyA+IGzEg2k7ICM1NTNCCivllLwgPiBzaMOgOyAjNTUzQwor5ZS9ID4geMSrOyAjNTUzRAor5ZS+ID4gdMO5bzsgIzU1M0UKK+WUvyA+IGjFqzsgIzU1M0YKK+WVgCA+IMOhaTsgIzU1NDAKK+WVgSA+IHpoxY11OyAjNTU0MQor5ZWCID4gbsOydTsgIzU1NDIKK+WVgyA+IGvElW47ICM1NTQzCivllYQgPiB6aMO6bzsgIzU1NDQKK+WVhSA+IHpow7pvOyAjNTU0NQor5ZWGID4gc2jEgW5nOyAjNTU0Ngor5ZWHID4gZMOtOyAjNTU0Nwor5ZWIID4gaMOobmc7ICM1NTQ4CivllYkgPiBsw6FuOyAjNTU0OQor5ZWKID4gYTsgIzU1NEEKK+WViyA+IHhpxIFvOyAjNTU0Qgor5ZWMID4geGnEgW5nOyAjNTU0Qwor5ZWNID4gdMWrbjsgIzU1NEQKK+WVjiA+IHfFrTsgIzU1NEUKK+WVjyA+IHfDqG47ICM1NTRGCivllZAgPiBjw7lpOyAjNTU1MAor5ZWRID4gc2jDoDsgIzU1NTEKK+WVkiA+IGjFqzsgIzU1NTIKK+WVkyA+IHHErTsgIzU1NTMKK+WVlCA+IHHErTsgIzU1NTQKK+WVlSA+IHTDoW87ICM1NTU1CivllZYgPiBkw6BuOyAjNTU1Ngor5ZWXID4gZMOgbjsgIzU1NTcKK+WVmCA+IHnDqDsgIzU1NTgKK+WVmSA+IHrErTsgIzU1NTkKK+WVmiA+IGLErTsgIzU1NUEKK+WVmyA+IGPDuWk7ICM1NTVCCivllZwgPiBjaMO5bzsgIzU1NUMKK+WVnSA+IGjDqTsgIzU1NUQKK+WVniA+IHnEgzsgIzU1NUUKK+WVnyA+IHHErTsgIzU1NUYKK+WVoCA+IHpow6k7ICM1NTYwCivllaEgPiBwxJNpOyAjNTU2MQor5ZWiID4gbGnEg25nOyAjNTU2Mgor5ZWjID4geGnDoW47ICM1NTYzCivllaQgPiBww607ICM1NTY0CivllaUgPiBzaMOgOyAjNTU2NQor5ZWmID4gbGE7ICM1NTY2CivllacgPiB6w6k7ICM1NTY3CivllaggPiBxxKtuZzsgIzU1NjgKK+WVqSA+IGd1w6A7ICM1NTY5CivllaogPiBwxIE7ICM1NTZBCivllasgPiB6aMSVOyAjNTU2Qgor5ZWsID4gc8OoOyAjNTU2Qwor5ZWtID4gemh1w6BuOyAjNTU2RAor5ZWuID4gbmnDqDsgIzU1NkUKK+WVryA+IGd1bzsgIzU1NkYKK+WVsCA+IGzFq287ICM1NTcwCivllbEgPiB5xIFuOyAjNTU3MQor5ZWyID4gZMOsOyAjNTU3Mgor5ZWzID4gcXXDoW47ICM1NTczCivllbQgPiB0xIFuOyAjNTU3NAor5ZW1ID4gYm87ICM1NTc1CivllbYgPiBkw6xuZzsgIzU1NzYKK+WVtyA+IGzEgW5nOyAjNTU3Nwor5ZW4ID4geGnDoG87ICM1NTc4CivllbogPiB0w6FuZzsgIzU1N0EKK+WVuyA+IGNow6w7ICM1NTdCCivllbwgPiB0w607ICM1NTdDCivllb0gPiDDoW47ICM1NTdECivllb4gPiBqxKt1OyAjNTU3RQor5ZW/ID4gZMOgbjsgIzU1N0YKK+WWgCA+IGvDqDsgIzU1ODAKK+WWgSA+IHnDs25nOyAjNTU4MQor5ZaCID4gd8OoaTsgIzU1ODIKK+WWgyA+IG7DoW47ICM1NTgzCivlloQgPiBzaMOgbjsgIzU1ODQKK+WWhSA+IHnDuTsgIzU1ODUKK+WWhiA+IHpow6k7ICM1NTg2CivllocgPiBsxIM7ICM1NTg3CivlloggPiBqacSTOyAjNTU4OAor5ZaJID4gaMOzdTsgIzU1ODkKK+WWiiA+IGjEg247ICM1NThBCivllosgPiBkacOpOyAjNTU4Qgor5ZaMID4gemjFjXU7ICM1NThDCivllo0gPiBjaMOhaTsgIzU1OEQKK+WWjiA+IHfEgWk7ICM1NThFCivllo8gPiByxJU7ICM1NThGCivllpAgPiB5w7k7ICM1NTkwCivllpEgPiB5xKtuOyAjNTU5MQor5ZaSID4gesOhbjsgIzU1OTIKK+WWkyA+IHnEgW87ICM1NTkzCivllpQgPiB3xY07ICM1NTk0CivllpUgPiBtacSDbjsgIzU1OTUKK+WWliA+IGjDujsgIzU1OTYKK+WWlyA+IHnFrW47ICM1NTk3CivllpggPiBjaHXEg247ICM1NTk4CivllpkgPiBow7lpOyAjNTU5OQor5ZaaID4gaHXDoG47ICM1NTlBCivllpsgPiBodcOgbjsgIzU1OUIKK+WWnCA+IHjErTsgIzU1OUMKK+WWnSA+IGjEkzsgIzU1OUQKK+WWniA+IGrEqzsgIzU1OUUKK+WWnyA+IGvDuWk7ICM1NTlGCivllqAgPiB6aMWPbmc7ICM1NUEwCivllqEgPiB3xJVpOyAjNTVBMQor5ZaiID4gc2jDoDsgIzU1QTIKK+WWoyA+IHjFrTsgIzU1QTMKK+WWpCA+IGh1w6FuZzsgIzU1QTQKK+WWpSA+IGTDuTsgIzU1QTUKK+WWpiA+IG5pw6g7ICM1NUE2CivllqcgPiAxeHXEgW47ICM1NUE3CivllqggPiBsacOgbmc7ICM1NUE4CivllqkgPiB5w7k7ICM1NUE5CivllqogPiBzxIFuZzsgIzU1QUEKK+WWqyA+IGNoxKs7ICM1NUFCCivllqwgPiBxacOhbzsgIzU1QUMKK+WWrSA+IHnDoG47ICM1NUFECivllq4gPiBkxIFuOyAjNTVBRQor5ZavID4gcMSTbjsgIzU1QUYKK+WWsCA+IGPEgW47ICM1NUIwCivllrEgPiBsw607ICM1NUIxCivllrIgPiB5bzsgIzU1QjIKK+WWsyA+IHpoxIE7ICM1NUIzCivllrQgPiB3xJNpOyAjNTVCNAor5Za1ID4gbWnEgW87ICM1NUI1CivllrYgPiB5w61uZzsgIzU1QjYKK+WWtyA+IHDEk247ICM1NUI3CivllrkgPiBrw7ppOyAjNTVCOQor5Za6ID4geMOsOyAjNTVCQQor5Za7ID4gecO5OyAjNTVCQgor5Za8ID4gamnDqTsgIzU1QkMKK+WWvSA+IGxvdTsgIzU1QkQKK+WWviA+IGvDuTsgIzU1QkUKK+WWvyA+IHPDoG87ICM1NUJGCivll4AgPiBow7lvOyAjNTVDMAor5ZeBID4gdMOtOyAjNTVDMQor5ZeCID4gecOhbzsgIzU1QzIKK+WXgyA+IGjDqDsgIzU1QzMKK+WXhCA+IMOhOyAjNTVDNAor5ZeFID4geMOsdTsgIzU1QzUKK+WXhiA+IHFpxIFuZzsgIzU1QzYKK+WXhyA+IHPDqDsgIzU1QzcKK+WXiCA+IHnFjW5nOyAjNTVDOAor5ZeJID4gc8O5OyAjNTVDOQor5ZeKID4gaMWPbmc7ICM1NUNBCivll4sgPiB4acOpOyAjNTVDQgor5ZeMID4gecOsOyAjNTVDQwor5ZeNID4gc8WrbzsgIzU1Q0QKK+WXjiA+IG1hOyAjNTVDRQor5ZePID4gY2jEgTsgIzU1Q0YKK+WXkCA+IGjDoGk7ICM1NUQwCivll5EgPiBrw6g7ICM1NUQxCivll5IgPiB0w6A7ICM1NUQyCivll5MgPiBzxINuZzsgIzU1RDMKK+WXlCA+IHRpw6FuOyAjNTVENAor5ZeVID4gcsO5OyAjNTVENQor5ZeWID4gc8WNdTsgIzU1RDYKK+WXlyA+IHfEgTsgIzU1RDcKK+WXmCA+IGrEqzsgIzU1RDgKK+WXmSA+IHDEg25nOyAjNTVEOQor5ZeaID4gd8WrOyAjNTVEQQor5ZebID4geGnDoW47ICM1NURCCivll5wgPiBzaMOsOyAjNTVEQwor5ZedID4gZ8OpOyAjNTVERAor5ZeeID4gesSrOyAjNTVERQor5ZefID4gamnEkzsgIzU1REYKK+WXoCA+IGzDuW87ICM1NUUwCivll6EgPiB3xJNuZzsgIzU1RTEKK+WXoiA+IHfDoDsgIzU1RTIKK+WXoyA+IHPDrDsgIzU1RTMKK+WXpCA+IGNoxKs7ICM1NUU0Civll6UgPiBow6FvOyAjNTVFNQor5ZemID4gc8WrbzsgIzU1RTYKK+WXpyA+IGppxIEnICdsw7puOyAjNTVFNwor5ZeoID4gaMSDaTsgIzU1RTgKK+WXqSA+IHPFrW87ICM1NUU5Civll6ogPiBxw61uOyAjNTVFQQor5ZerID4gbmnDqDsgIzU1RUIKK+WXrCA+IGjEkzsgIzU1RUMKK+WXriA+IHPDoGk7ICM1NUVFCivll68gPiBuzIBnOyAjNTVFRgor5ZewID4gZ8OoOyAjNTVGMAor5ZexID4gbsOhOyAjNTVGMQor5ZeyID4gZGnEgzsgIzU1RjIKK+WXsyA+IMOgaTsgIzU1RjMKK+WXtSA+IHTFjW5nOyAjNTVGNQor5Ze2ID4gYsOsOyAjNTVGNgor5Ze3ID4gw6FvOyAjNTVGNwor5Ze4ID4gw6FvOyAjNTVGOAor5Ze5ID4gbGnDoW47ICM1NUY5Civll7ogPiBjxatpOyAjNTVGQQor5Ze7ID4gemjEkzsgIzU1RkIKK+WXvCA+IG3DsjsgIzU1RkMKK+WXvSA+IHPDsnU7ICM1NUZECivll74gPiBzxY91OyAjNTVGRQor5Ze/ID4gdMSDbjsgIzU1RkYKK+WYgCA+IGTDrTsgIzU2MDAKK+WYgSA+IHHEqzsgIzU2MDEKK+WYgiA+IGppw6BvOyAjNTYwMgor5ZiDID4gY2jFjW5nOyAjNTYwMwor5ZiEID4gamnEgW87ICM1NjA0CivlmIUgPiBrxINpOyAjNTYwNQor5ZiGID4gdMOgbjsgIzU2MDYKK+WYhyA+IHPEgW47ICM1NjA3CivlmIggPiBjw6FvOyAjNTYwOAor5ZiJID4gamnEgTsgIzU2MDkKK+WYiiA+IMOhaTsgIzU2MEEKK+WYiyA+IHhpxIFvOyAjNTYwQgor5ZiMID4gcGnEgW87ICM1NjBDCivlmI0gPiBsb3U7ICM1NjBECivlmI4gPiBnxIE7ICM1NjBFCivlmI8gPiBnxa07ICM1NjBGCivlmJAgPiB4acSBbzsgIzU2MTAKK+WYkSA+IGjFqzsgIzU2MTEKK+WYkiA+IGjDuWk7ICM1NjEyCivlmJMgPiBndW87ICM1NjEzCivlmJQgPiDFjXU7ICM1NjE0CivlmJUgPiB4acSBbjsgIzU2MTUKK+WYliA+IHrDqTsgIzU2MTYKK+WYlyA+IGNow6FuZzsgIzU2MTcKK+WYmCA+IHjFqzsgIzU2MTgKK+WYmSA+IHDDszsgIzU2MTkKK+WYmiA+IGTDqTsgIzU2MUEKK+WYmyA+IG1hOyAjNTYxQgor5ZicID4gbcOgOyAjNTYxQwor5ZidID4gaMO6OyAjNTYxRAor5ZieID4gbGVpOyAjNTYxRQor5ZifID4gZMWrOyAjNTYxRgor5ZigID4gZ8SBOyAjNTYyMAor5ZihID4gdMSBbmc7ICM1NjIxCivlmKIgPiB5xJU7ICM1NjIyCivlmKMgPiBixJNuZzsgIzU2MjMKK+WYpCA+IHnEq25nOyAjNTYyNAor5ZimID4gamnDoG87ICM1NjI2CivlmKcgPiBtxKs7ICM1NjI3CivlmKggPiB4acOgbzsgIzU2MjgKK+WYqSA+IGh1xIE7ICM1NjI5CivlmKogPiBtxINpOyAjNTYyQQor5ZirID4gcsOhbjsgIzU2MkIKK+WYrCA+IHrFq287ICM1NjJDCivlmK0gPiBwxJNuZzsgIzU2MkQKK+WYriA+IGzDoW87ICM1NjJFCivlmK8gPiB4acOgbzsgIzU2MkYKK+WYsCA+IGrEqzsgIzU2MzAKK+WYsSA+IHpoxa07ICM1NjMxCivlmLIgPiBjaMOhbzsgIzU2MzIKK+WYsyA+IGvDuWk7ICM1NjMzCivlmLQgPiB6xa1pOyAjNTYzNAor5Zi1ID4geGnEgW87ICM1NjM1CivlmLYgPiBzxKs7ICM1NjM2CivlmLcgPiBow6FvOyAjNTYzNwor5Zi4ID4gZsWtOyAjNTYzOAor5Zi5ID4gbGnDoW87ICM1NjM5CivlmLogPiBxacOhbzsgIzU2M0EKK+WYuyA+IHjEqzsgIzU2M0IKK+WYvCA+IHjDrHU7ICM1NjNDCivlmL0gPiB0xIFuOyAjNTYzRAor5Zi+ID4gdMOhbjsgIzU2M0UKK+WYvyA+IG3DsjsgIzU2M0YKK+WZgCA+IHjDuW47ICM1NjQwCivlmYEgPiDElTsgIzU2NDEKK+WZgiA+IHrFrW47ICM1NjQyCivlmYMgPiBmxIFuOyAjNTY0Mwor5ZmEID4gY2jEqzsgIzU2NDQKK+WZhSA+IGjFq2k7ICM1NjQ1CivlmYYgPiB6xINuOyAjNTY0Ngor5ZmHID4gY2h1w6FuZzsgIzU2NDcKK+WZiCA+IGPDuTsgIzU2NDgKK+WZiSA+IGTDoG47ICM1NjQ5CivlmYogPiB5w7k7ICM1NjRBCivlmYsgPiB0xatuOyAjNTY0Qgor5ZmMID4gY2jEk25nOyAjNTY0Qwor5ZmNID4gamnDoG87ICM1NjRECivlmY4gPiB5xJM7ICM1NjRFCivlmY8gPiB4xKs7ICM1NjRGCivlmZAgPiBxw6w7ICM1NjUwCivlmZEgPiBow6FvOyAjNTY1MQor5ZmSID4gbGnDoW47ICM1NjUyCivlmZMgPiB4xas7ICM1NjUzCivlmZQgPiBkxJNuZzsgIzU2NTQKK+WZlSA+IGjFq2k7ICM1NjU1CivlmZYgPiB5w61uOyAjNTY1Ngor5ZmXID4gcMWrOyAjNTY1Nwor5ZmYID4ganXEkzsgIzU2NTgKK+WZmSA+IHHDrW47ICM1NjU5CivlmZogPiB4w7puOyAjNTY1QQor5ZmbID4gbmnDqDsgIzU2NUIKK+WZnCA+IGzFqzsgIzU2NUMKK+WZnSA+IHPEqzsgIzU2NUQKK+WZniA+IHnEg247ICM1NjVFCivlmZ8gPiB5w6xuZzsgIzU2NUYKK+WZoCA+IGTEgTsgIzU2NjAKK+WZoSA+IGTEgW47ICM1NjYxCivlmaIgPiB5xa07ICM1NjYyCivlmaMgPiB6aMOydTsgIzU2NjMKK+WZpCA+IGrDrG47ICM1NjY0CivlmaUgPiBuw7NuZzsgIzU2NjUKK+WZpiA+IHl1xJU7ICM1NjY2CivlmacgPiBow7lpOyAjNTY2Nwor5ZmoID4gccOsOyAjNTY2OAor5ZmpID4gw6g7ICM1NjY5CivlmaogPiB6w6BvOyAjNTY2QQor5ZmrID4gecSrOyAjNTY2Qgor5ZmsID4gc2jDrDsgIzU2NkMKK+WZrSA+IGppw6BvOyAjNTY2RAor5ZmuID4geXXEgW47ICM1NjZFCivlma8gPiDDoGk7ICM1NjZGCivlmbAgPiB5xY1uZzsgIzU2NzAKK+WZsSA+IGp1w6k7ICM1NjcxCivlmbIgPiBrdcOgaTsgIzU2NzIKK+WZsyA+IHnFrTsgIzU2NzMKK+WZtCA+IHDEk247ICM1Njc0CivlmbUgPiBkw6BvOyAjNTY3NQor5Zm2ID4gZ8OpOyAjNTY3Ngor5Zm3ID4geMSrbjsgIzU2NzcKK+WZuCA+IGTFq247ICM1Njc4CivlmbkgPiBkxIFuZzsgIzU2NzkKK+WZuyA+IHNhaTsgIzU2N0IKK+WZvCA+IHDEqzsgIzU2N0MKK+WZvSA+IHDErTsgIzU2N0QKK+WZviA+IHnEq247ICM1NjdFCivlmb8gPiB6xa1pOyAjNTY3Rgor5ZqAID4gbsOtbmc7ICM1NjgwCivlmoEgPiBkw607ICM1NjgxCivlmoIgPiBsw6BuOyAjNTY4Mgor5ZqDID4gdMSBOyAjNTY4Mwor5ZqEID4gaMO5bzsgIzU2ODQKK+WahSA+IHLDujsgIzU2ODUKK+WahiA+IGjEgW87ICM1Njg2CivlmocgPiB4acOgOyAjNTY4Nwor5ZqIID4gecOgOyAjNTY4OAor5ZqJID4gZMWrbzsgIzU2ODkKK+WaiiA+IHjDrDsgIzU2OEEKK+WaiyA+IGNow7N1OyAjNTY4Qgor5ZqMID4gasOsOyAjNTY4Qwor5ZqNID4gasOsbjsgIzU2OEQKK+WajiA+IGjDoW87ICM1NjhFCivlmo8gPiB0w6w7ICM1NjhGCivlmpAgPiBjaMOhbmc7ICM1NjkwCivlmpMgPiBjxIE7ICM1NjkzCivlmpQgPiB0w6w7ICM1Njk0CivlmpUgPiBsxas7ICM1Njk1CivlmpYgPiBow7lpOyAjNTY5Ngor5ZqXID4gYsOzOyAjNTY5Nwor5ZqYID4gecWNdTsgIzU2OTgKK+WamSA+IG5pw6g7ICM1Njk5CivlmpogPiB5w61uOyAjNTY5QQor5ZqbID4gaMO5OyAjNTY5Qgor5ZqcID4gbcOyOyAjNTY5Qwor5ZqdID4gaHXEgW5nOyAjNTY5RAor5ZqeID4gemjDqTsgIzU2OUUKK+WanyA+IGzDrTsgIzU2OUYKK+WaoCA+IGzDrXU7ICM1NkEwCivlmqIgPiBuw6FuZzsgIzU2QTIKK+WaoyA+IHhpxIFvOyAjNTZBMwor5ZqkID4gbcOzOyAjNTZBNAor5ZqlID4gecOgbjsgIzU2QTUKK+WapiA+IGzDrDsgIzU2QTYKK+WapyA+IGzDujsgIzU2QTcKK+WaqCA+IGzDs25nOyAjNTZBOAor5ZqpID4gZsO6OyAjNTZBOQor5ZqqID4gZMOgbjsgIzU2QUEKK+WaqyA+IGNow6huOyAjNTZBQgor5ZqsID4gcMOtbjsgIzU2QUMKK+WarSA+IHDErTsgIzU2QUQKK+WariA+IHhpw6BuZzsgIzU2QUUKK+WaryA+IGjDuW87ICM1NkFGCivlmrAgPiBtw7M7ICM1NkIwCivlmrEgPiB4w6w7ICM1NkIxCivlmrIgPiBkxa1vOyAjNTZCMgor5ZqzID4ga8O5OyAjNTZCMwor5Zq0ID4gecOhbjsgIzU2QjQKK+WatSA+IGNow6FuOyAjNTZCNQor5Zq2ID4gecSrbmc7ICM1NkI2CivlmrcgPiByxINuZzsgIzU2QjcKK+WauCA+IGRpxINuOyAjNTZCOAor5Zq5ID4gbMSBOyAjNTZCOQor5Zq6ID4gdMOgOyAjNTZCQQor5Zq7ID4geGnEgW87ICM1NkJCCivlmrwgPiBqacOhbzsgIzU2QkMKK+WavSA+IGNow7lvOyAjNTZCRAor5Zq+ID4gaHXEgW47ICM1NkJFCivlmr8gPiBow7lvOyAjNTZCRgor5ZuAID4gemh1w6BuOyAjNTZDMAor5ZuBID4gbmnDqDsgIzU2QzEKK+WbgiA+IHhpxIFvOyAjNTZDMgor5ZuDID4gY8OgOyAjNTZDMwor5ZuEID4gbMOtOyAjNTZDNAor5ZuFID4gY2jEg247ICM1NkM1Civlm4YgPiBjaMOgaTsgIzU2QzYKK+WbhyA+IGzDrDsgIzU2QzcKK+WbiCA+IHnDrDsgIzU2QzgKK+WbiSA+IGzFq287ICM1NkM5Civlm4ogPiBuw6FuZzsgIzU2Q0EKK+WbiyA+IHrDoG47ICM1NkNCCivlm4wgPiBzxas7ICM1NkNDCivlm40gPiB4xK07ICM1NkNECivlm48gPiBqacSBbjsgIzU2Q0YKK+WbkCA+IHrDoTsgIzU2RDAKK+WbkSA+IHpoxa07ICM1NkQxCivlm5IgPiBsw6FuOyAjNTZEMgor5ZuTID4gbmnDqDsgIzU2RDMKK+WblCA+IG7EgW5nOyAjNTZENAor5ZuXID4gd8OpaTsgIzU2RDcKK+WbmCA+IGjDumk7ICM1NkQ4Civlm5kgPiB5xKtuOyAjNTZEOQor5ZuaID4gccOtdTsgIzU2REEKK+WbmyA+IHPDrDsgIzU2REIKK+WbnCA+IG7DrW47ICM1NkRDCivlm50gPiBqacSDbjsgIzU2REQKK+WbniA+IGjDumk7ICM1NkRFCivlm58gPiB4w6xuOyAjNTZERgor5ZugID4gecSrbjsgIzU2RTAKK+WboSA+IG7EgW47ICM1NkUxCivlm6IgPiB0dcOhbjsgIzU2RTIKK+WboyA+IHR1w6FuOyAjNTZFMwor5ZukID4gZMO5bjsgIzU2RTQKK+WbpSA+IGvDoG5nOyAjNTZFNQor5ZumID4geXXEgW47ICM1NkU2Civlm6cgPiBqxK1vbmc7ICM1NkU3Civlm6ggPiBwacSBbjsgIzU2RTgKK+WbqSA+IHnDuW47ICM1NkU5Civlm6ogPiBjxY1uZzsgIzU2RUEKK+WbqyA+IGjDujsgIzU2RUIKK+WbrCA+IGjDumk7ICM1NkVDCivlm60gPiB5dcOhbjsgIzU2RUQKK+WbriA+IHnDs3U7ICM1NkVFCivlm68gPiBnw7pvOyAjNTZFRgor5ZuwID4ga8O5bjsgIzU2RjAKK+WbsSA+IGPFjW5nOyAjNTZGMQor5ZuyID4gd8OpaTsgIzU2RjIKK+WbsyA+IHTDujsgIzU2RjMKK+WbtCA+IHfDqWk7ICM1NkY0Civlm7UgPiBsw7puOyAjNTZGNQor5Zu2ID4gZ8O6bzsgIzU2RjYKK+WbtyA+IHHFq247ICM1NkY3Civlm7ggPiByw6w7ICM1NkY4Civlm7kgPiBsw61uZzsgIzU2RjkKK+WbuiA+IGfDuTsgIzU2RkEKK+WbuyA+IGfDum87ICM1NkZCCivlm7wgPiB0xIFpOyAjNTZGQwor5Zu9ID4gZ8O6bzsgIzU2RkQKK+WbviA+IHTDujsgIzU2RkUKK+WbvyA+IHnDsnU7ICM1NkZGCivlnIAgPiBnw7pvOyAjNTcwMAor5ZyBID4gecOtbjsgIzU3MDEKK+WcgiA+IGjDuW47ICM1NzAyCivlnIMgPiBwxa07ICM1NzAzCivlnIQgPiB5xa07ICM1NzA0CivlnIUgPiBow6FuOyAjNTcwNQor5ZyGID4geXXDoW47ICM1NzA2CivlnIcgPiBsw7puOyAjNTcwNwor5ZyIID4gcXXEgW47ICM1NzA4CivlnIkgPiB5xa07ICM1NzA5CivlnIogPiBxxKtuZzsgIzU3MEEKK+WciyA+IGfDum87ICM1NzBCCivlnIwgPiBjaHXDoW47ICM1NzBDCivlnI0gPiB3w6lpOyAjNTcwRAor5ZyOID4geXXDoW47ICM1NzBFCivlnI8gPiBxdcSBbjsgIzU3MEYKK+WckCA+IGvFqzsgIzU3MTAKK+WckSA+IGbDuTsgIzU3MTEKK+WckiA+IHl1w6FuOyAjNTcxMgor5ZyTID4geXXDoW47ICM1NzEzCivlnJQgPiDDqDsgIzU3MTQKK+WclSA+IHTDuicgJ3NoxasnICdndcSDbjsgIzU3MTUKK+WcliA+IHTDujsgIzU3MTYKK+WclyA+IHTDujsgIzU3MTcKK+WcmCA+IHR1w6FuOyAjNTcxOAor5ZyZID4gbMecZTsgIzU3MTkKK+WcmiA+IGjDuWk7ICM1NzFBCivlnJsgPiB5w6w7ICM1NzFCCivlnJwgPiB5dcOhbjsgIzU3MUMKK+WcnSA+IGx1w6FuOyAjNTcxRAor5ZyeID4gbHXDoW47ICM1NzFFCivlnJ8gPiB0xa07ICM1NzFGCivlnKAgPiB5w6A7ICM1NzIwCivlnKEgPiB0xa07ICM1NzIxCivlnKIgPiB0xKtuZzsgIzU3MjIKK+WcoyA+IHNow6huZzsgIzU3MjMKK+WcpCA+IHDFrTsgIzU3MjQKK+WcpSA+IGzDuTsgIzU3MjUKK+WcpyA+IHnEgTsgIzU3MjcKK+WcqCA+IHrDoGk7ICM1NzI4CivlnKkgPiB3w6lpOyAjNTcyOQor5ZyqID4gZ8STOyAjNTcyQQor5ZyrID4gecO5OyAjNTcyQgor5ZysID4gd8WrOyAjNTcyQwor5ZytID4gZ8WraTsgIzU3MkQKK+WcriA+IHDErTsgIzU3MkUKK+WcryA+IHnDrTsgIzU3MkYKK+WcsCA+IGTDrDsgIzU3MzAKK+WcsSA+IHFpxIFuOyAjNTczMQor5ZyyID4gcWnEgW47ICM1NzMyCivlnLMgPiB6aMOobjsgIzU3MzMKK+WctCA+IHpow7pvOyAjNTczNAor5Zy1ID4gZMOgbmc7ICM1NzM1CivlnLYgPiBxacOgOyAjNTczNgor5Zy5ID4ga3XDoG5nOyAjNTczOQor5Zy6ID4gY2jDoW5nOyAjNTczQQor5Zy7ID4gccOtOyAjNTczQgor5Zy8ID4gbmnDqDsgIzU3M0MKK+WcvSA+IG3DsjsgIzU3M0QKK+WcviA+IGrDrTsgIzU3M0UKK+WcvyA+IGppw6E7ICM1NzNGCivlnYAgPiB6aMStOyAjNTc0MAor5Z2BID4gemjErTsgIzU3NDEKK+WdgiA+IGLEg247ICM1NzQyCivlnYMgPiB4xatuOyAjNTc0Mwor5Z2EID4gdMOzdTsgIzU3NDQKK+WdhSA+IHHErW47ICM1NzQ1CivlnYYgPiBmw6luOyAjNTc0Ngor5Z2HID4gasWrbjsgIzU3NDcKK+WdiCA+IGvEk25nOyAjNTc0OAor5Z2JID4gdMO6bjsgIzU3NDkKK+WdiiA+IGbEgW5nOyAjNTc0QQor5Z2LID4gZsOobjsgIzU3NEIKK+WdjCA+IGLDqG47ICM1NzRDCivlnY0gPiB0xIFuOyAjNTc0RAor5Z2OID4ga8SDbjsgIzU3NEUKK+WdjyA+IHDEqzsgIzU3NEYKK+WdkCA+IHrDuW87ICM1NzUwCivlnZEgPiBrxJNuZzsgIzU3NTEKK+WdkiA+IGLDrDsgIzU3NTIKK+WdkyA+IHjDrW5nOyAjNTc1Mwor5Z2UID4gZMOsOyAjNTc1NAor5Z2VID4gasSrbmc7ICM1NzU1CivlnZYgPiBqw6w7ICM1NzU2CivlnZcgPiBrdcOgaTsgIzU3NTcKK+WdmCA+IGTErTsgIzU3NTgKK+WdmSA+IGrEq25nOyAjNTc1OQor5Z2aID4gamnEgW47ICM1NzVBCivlnZsgPiB0w6FuOyAjNTc1Qgor5Z2cID4gbMOsOyAjNTc1Qwor5Z2dID4gYsOgOyAjNTc1RAor5Z2eID4gd8O5OyAjNTc1RQor5Z2fID4gZsOpbjsgIzU3NUYKK+WdoCA+IHpow7lpOyAjNTc2MAor5Z2hID4gcMWNOyAjNTc2MQor5Z2iID4gcMSDbjsgIzU3NjIKK+WdoyA+IHTEgW5nOyAjNTc2Mwor5Z2kID4ga8WrbjsgIzU3NjQKK+WdpSA+IHHFqzsgIzU3NjUKK+WdpiA+IHTEg247ICM1NzY2CivlnacgPiB6aMSrOyAjNTc2Nwor5Z2oID4gdMO6bzsgIzU3NjgKK+WdqSA+IGfEgW47ICM1NzY5CivlnaogPiBww61uZzsgIzU3NkEKK+WdqyA+IGRpw6BuOyAjNTc2Qgor5Z2sID4gZ3XDoDsgIzU3NkMKK+WdrSA+IG7DrTsgIzU3NkQKK+WdriA+IHTDoWk7ICM1NzZFCivlna8gPiBwxKs7ICM1NzZGCivlnbAgPiBqxKtvbmc7ICM1NzcwCivlnbEgPiB5xINuZzsgIzU3NzEKK+WdsiA+IGbDszsgIzU3NzIKK+WdsyA+IMOgbzsgIzU3NzMKK+WdtCA+IGzDrHU7ICM1Nzc0CivlnbUgPiBxxKt1OyAjNTc3NQor5Z22ID4gbcO5OyAjNTc3Ngor5Z23ID4ga8SVOyAjNTc3Nwor5Z24ID4gZ8OydTsgIzU3NzgKK+WduSA+IHh1w6g7ICM1Nzc5CivlnbogPiBiw6E7ICM1NzdBCivlnbsgPiBjaMOtOyAjNTc3Qgor5Z28ID4gY2jDqDsgIzU3N0MKK+WdvSA+IGzDrW5nOyAjNTc3RAor5Z2+ID4gemjDuTsgIzU3N0UKK+WdvyA+IGbDuTsgIzU3N0YKK+WegCA+IGjFqzsgIzU3ODAKK+WegSA+IHpow6w7ICM1NzgxCivlnoIgPiBjaMO6aTsgIzU3ODIKK+WegyA+IGzEgTsgIzU3ODMKK+WehCA+IGzFj25nOyAjNTc4NAor5Z6FID4gbMWPbmc7ICM1Nzg1CivlnoYgPiBsw7o7ICM1Nzg2CivlnocgPiDDoG87ICM1Nzg3CivlnokgPiBww6FvOyAjNTc4OQor5Z6LID4geMOtbmc7ICM1NzhCCivlnowgPiBkw7JuZzsgIzU3OEMKK+WejSA+IGrDrDsgIzU3OEQKK+WejiA+IGvDqDsgIzU3OEUKK+WejyA+IGzDuTsgIzU3OEYKK+WekCA+IGPDrTsgIzU3OTAKK+WekSA+IGNoxK07ICM1NzkxCivlnpIgPiBsxJVpOyAjNTc5Mgor5Z6TID4gZ8SBaTsgIzU3OTMKK+WelCA+IHnEq247ICM1Nzk0CivlnpUgPiBow7J1OyAjNTc5NQor5Z6WID4gZMWraTsgIzU3OTYKK+WelyA+IHpow6BvOyAjNTc5Nwor5Z6YID4gZsO6OyAjNTc5OAor5Z6ZID4gZ3XEgW5nOyAjNTc5OQor5Z6aID4gecOhbzsgIzU3OUEKK+WemyA+IGTFrW87ICM1NzlCCivlnpwgPiBkxa1vOyAjNTc5Qwor5Z6dID4gZ8WtaTsgIzU3OUQKK+WeniA+IGNow6E7ICM1NzlFCivlnp8gPiB5w6FuZzsgIzU3OUYKK+WeoCA+IHnDrW47ICM1N0EwCivlnqEgPiBmw6E7ICM1N0ExCivlnqIgPiBnw7J1OyAjNTdBMgor5Z6jID4geXXDoW47ICM1N0EzCivlnqQgPiBkacOpOyAjNTdBNAor5Z6lID4geGnDqTsgIzU3QTUKK+WepiA+IGvElW47ICM1N0E2CivlnqcgPiBqxKtvbmc7ICM1N0E3CivlnqggPiBzaMWPdTsgIzU3QTgKK+WeqSA+IMOoOyAjNTdBOQor5Z6rID4gZGnDoG47ICM1N0FCCivlnqwgPiBow7NuZzsgIzU3QUMKK+WerSA+IHfDuTsgIzU3QUQKK+WeriA+IGt1xIM7ICM1N0FFCivlnrEgPiBkw6BuZzsgIzU3QjEKK+WesiA+IGvEg2k7ICM1N0IyCivlnrQgPiBuxINvOyAjNTdCNAor5Z61ID4gxINuOyAjNTdCNQor5Z62ID4geMSrbmc7ICM1N0I2CivlnrcgPiB4acOgbjsgIzU3QjcKK+WeuCA+IGh1w6BuOyAjNTdCOAor5Z65ID4gYsSBbmc7ICM1N0I5CivlnrogPiBwxJNpOyAjNTdCQQor5Z67ID4gYsOgOyAjNTdCQgor5Z68ID4gecOsOyAjNTdCQwor5Z69ID4gecOsbjsgIzU3QkQKK+WeviA+IGjDoG47ICM1N0JFCivlnr8gPiB4w7k7ICM1N0JGCivln4AgPiBjaMO6aTsgIzU3QzAKK+WfgSA+IGPDqW47ICM1N0MxCivln4IgPiBnxJVuZzsgIzU3QzIKK+WfgyA+IMSBaTsgIzU3QzMKK+WfhCA+IHDDqW5nOyAjNTdDNAor5Z+FID4gZsOhbmc7ICM1N0M1Civln4YgPiBxdcOoOyAjNTdDNgor5Z+HID4gecWPbmc7ICM1N0M3Civln4ggPiB4w7luOyAjNTdDOAor5Z+JID4gamnDoTsgIzU3QzkKK+WfiiA+IGTDrDsgIzU3Q0EKK+WfiyA+IG3DoWk7ICM1N0NCCivln4wgPiBsw6BuZzsgIzU3Q0MKK+WfjSA+IHh1w6BuOyAjNTdDRAor5Z+OID4gY2jDqW5nOyAjNTdDRQor5Z+PID4gecOhbjsgIzU3Q0YKK+WfkCA+IGrEq247ICM1N0QwCivln5EgPiB6aMOpOyAjNTdEMQor5Z+SID4gbMOoaTsgIzU3RDIKK+WfkyA+IGxpw6g7ICM1N0QzCivln5QgPiBiw7k7ICM1N0Q0Civln5UgPiBjaMOpbmc7ICM1N0Q1Civln5cgPiBiw7k7ICM1N0Q3Civln5ggPiBzaMOtOyAjNTdEOAor5Z+ZID4geMWrbjsgIzU3RDkKK+WfmiA+IGfFq287ICM1N0RBCivln5sgPiBqxKtvbmc7ICM1N0RCCivln5wgPiB5xJU7ICM1N0RDCivln50gPiBuacOgbjsgIzU3REQKK+WfniA+IGTErTsgIzU3REUKK+WfnyA+IHnDuTsgIzU3REYKK+WfoCA+IGLDuTsgIzU3RTAKK+WfoSA+IHnDoDsgIzU3RTEKK+WfoiA+IGp1xINuOyAjNTdFMgor5Z+jID4gc8O5aTsgIzU3RTMKK+WfpCA+IHDDrTsgIzU3RTQKK+WfpSA+IGNoxJNuZzsgIzU3RTUKK+WfpiA+IHfEg247ICM1N0U2Civln6cgPiBqw7k7ICM1N0U3Civln6ggPiBsxa1uOyAjNTdFOAor5Z+pID4gemjEk25nOyAjNTdFOQor5Z+qID4ga8WNbmc7ICM1N0VBCivln6sgPiBjaMWPbmc7ICM1N0VCCivln6wgPiBkxY1uZzsgIzU3RUMKK+WfrSA+IGTDoGk7ICM1N0VECivln64gPiB0w6BuOyAjNTdFRQor5Z+vID4gxINuOyAjNTdFRgor5Z+wID4gY8OgaTsgIzU3RjAKK+WfsSA+IHNow7o7ICM1N0YxCivln7IgPiBixJVuZzsgIzU3RjIKK+WfsyA+IGvEg247ICM1N0YzCivln7QgPiB6aMOtOyAjNTdGNAor5Z+1ID4gZMWtbzsgIzU3RjUKK+WftiA+IHnDrDsgIzU3RjYKK+WftyA+IHpow607ICM1N0Y3Civln7ggPiB5w6w7ICM1N0Y4Civln7kgPiBww6lpOyAjNTdGOQor5Z+6ID4gasSrOyAjNTdGQQor5Z+7ID4gemjFrW47ICM1N0ZCCivln7wgPiBxw607ICM1N0ZDCivln70gPiBzw6BvOyAjNTdGRAor5Z++ID4gasO5OyAjNTdGRQor5Z+/ID4gbsOtOyAjNTdGRgor5aCAID4ga8WrOyAjNTgwMAor5aCBID4ga8OoOyAjNTgwMQor5aCCID4gdMOhbmc7ICM1ODAyCivloIMgPiBrxatuOyAjNTgwMwor5aCEID4gbsOsOyAjNTgwNAor5aCFID4gamnEgW47ICM1ODA1CivloIYgPiBkxatpOyAjNTgwNgor5aCHID4gasStbjsgIzU4MDcKK+WgiCA+IGfEgW5nOyAjNTgwOAor5aCJID4gecO5OyAjNTgwOQor5aCKID4gw6g7ICM1ODBBCivloIsgPiBww6luZzsgIzU4MEIKK+WgjCA+IGfDuTsgIzU4MEMKK+WgjSA+IHTDuTsgIzU4MEQKK+WgjiA+IGzDqG5nOyAjNTgwRQor5aCQID4gecOhOyAjNTgxMAor5aCRID4gcWnDoG47ICM1ODExCivloJMgPiDDoG47ICM1ODEzCivloJUgPiBkw7lvOyAjNTgxNQor5aCWID4gbsSDbzsgIzU4MTYKK+WglyA+IHTFqzsgIzU4MTcKK+WgmCA+IGNow6luZzsgIzU4MTgKK+WgmSA+IHnEq247ICM1ODE5CivloJogPiBow7puOyAjNTgxQQor5aCbID4gYsOsOyAjNTgxQgor5aCcID4gbGnDoG47ICM1ODFDCivloJ0gPiBnxatvOyAjNTgxRAor5aCeID4gZGnDqTsgIzU4MUUKK+WgnyA+IHpodcOgbjsgIzU4MUYKK+WgoCA+IGjDsnU7ICM1ODIwCivloKEgPiBixINvOyAjNTgyMQor5aCiID4gYsSDbzsgIzU4MjIKK+WgoyA+IHnDujsgIzU4MjMKK+WgpCA+IGTEqzsgIzU4MjQKK+WgpSA+IG3DoW87ICM1ODI1CivloKYgPiBqacSTOyAjNTgyNgor5aCnID4gcnXDoW47ICM1ODI3CivloKggPiDDqDsgIzU4MjgKK+WgqSA+IGfDqG5nOyAjNTgyOQor5aCqID4ga8SBbjsgIzU4MkEKK+WgqyA+IHrFjW5nOyAjNTgyQgor5aCsID4gecO6OyAjNTgyQwor5aCtID4gaHXDoW5nOyAjNTgyRAor5aCuID4gw6g7ICM1ODJFCivloK8gPiB5w6FvOyAjNTgyRgor5aCwID4gecOgbjsgIzU4MzAKK+WgsSA+IGLDoG87ICM1ODMxCivloLIgPiBqw607ICM1ODMyCivloLMgPiBtw6lpOyAjNTgzMwor5aC0ID4gY2jDoW5nOyAjNTgzNAor5aC1ID4gZMWtOyAjNTgzNQor5aC2ID4gdMO6bzsgIzU4MzYKK+WgtyA+IHnDrG47ICM1ODM3CivloLggPiBmw6luZzsgIzU4MzgKK+WguSA+IHpow7JuZzsgIzU4MzkKK+WguiA+IGppw6g7ICM1ODNBCivloLsgPiB6aMSTbjsgIzU4M0IKK+WgvCA+IGbEk25nOyAjNTgzQwor5aC9ID4gZ8SBbmc7ICM1ODNECivloL4gPiBjaHXEg247ICM1ODNFCivloL8gPiBqacSDbjsgIzU4M0YKK+WhgiA+IHhpw6BuZzsgIzU4NDIKK+WhgyA+IGh1xIFuZzsgIzU4NDMKK+WhhCA+IGzDqW5nOyAjNTg0NAor5aGFID4gZHXDoG47ICM1ODQ1CivloYcgPiB4dcSBbjsgIzU4NDcKK+WhiCA+IGrDrDsgIzU4NDgKK+WhiSA+IGrDrTsgIzU4NDkKK+WhiiA+IGt1w6BpOyAjNTg0QQor5aGLID4gecOtbmc7ICM1ODRCCivloYwgPiB0xIE7ICM1ODRDCivloY0gPiBjaMOpbmc7ICM1ODRECivloY4gPiB5xY9uZzsgIzU4NEUKK+WhjyA+IGvEg2k7ICM1ODRGCivloZAgPiBzw7k7ICM1ODUwCivloZEgPiBzw7k7ICM1ODUxCivloZIgPiBzaMOtOyAjNTg1Mgor5aGTID4gbcOsOyAjNTg1Mwor5aGUID4gdMSDOyAjNTg1NAor5aGVID4gd8SVbmc7ICM1ODU1CivloZYgPiBjaMOpbmc7ICM1ODU2CivloZcgPiB0w7o7ICM1ODU3CivloZggPiB0w6FuZzsgIzU4NTgKK+WhmSA+IHF1w6g7ICM1ODU5CivloZogPiB6aMWPbmc7ICM1ODVBCivloZsgPiBsw6w7ICM1ODVCCivloZwgPiBww6luZzsgIzU4NUMKK+WhnSA+IGLDoG5nOyAjNTg1RAor5aGeID4gc8SBaTsgIzU4NUUKK+WhnyA+IHrDoG5nOyAjNTg1Rgor5aGgID4gZMWraTsgIzU4NjAKK+WhoSA+IHRpw6FuOyAjNTg2MQor5aGiID4gd8O5OyAjNTg2Mgor5aGjID4gY2jElW5nOyAjNTg2Mwor5aGkID4geMWrbjsgIzU4NjQKK+WhpSA+IGfDqTsgIzU4NjUKK+WhpiA+IHpow6huOyAjNTg2Ngor5aGnID4gw6BpOyAjNTg2Nwor5aGoID4gZ8WNbmc7ICM1ODY4CivloakgPiB5w6FuOyAjNTg2OQor5aGqID4ga8SDbjsgIzU4NkEKK+WhqyA+IHRpw6FuOyAjNTg2Qgor5aGsID4geXXDoW47ICM1ODZDCivloa0gPiB3xJNuOyAjNTg2RAor5aGuID4geGnDqDsgIzU4NkUKK+WhryA+IGzDrHU7ICM1ODZGCivlobEgPiBsxINuZzsgIzU4NzEKK+WhsiA+IGNow6FuZzsgIzU4NzIKK+WhsyA+IHDDqW5nOyAjNTg3Mwor5aG0ID4gYsOobmc7ICM1ODc0CivlobUgPiBjaMOpbjsgIzU4NzUKK+WhtiA+IGPDuTsgIzU4NzYKK+WhtyA+IGzFrTsgIzU4NzcKK+WhuCA+IMWPdTsgIzU4NzgKK+WhuSA+IHFpw6BuOyAjNTg3OQor5aG6ID4gbcOpaTsgIzU4N0EKK+WhuyA+IG3DsjsgIzU4N0IKK+WhvCA+IHpodcSBbjsgIzU4N0MKK+WhvSA+IHNodcSDbmc7ICM1ODdECivlob4gPiBzaMO6OyAjNTg3RQor5aG/ID4gbMWPdTsgIzU4N0YKK+WigCA+IGNow607ICM1ODgwCivlooEgPiBtw6BuOyAjNTg4MQor5aKCID4gYmnEgW87ICM1ODgyCivlooMgPiBqw6xuZzsgIzU4ODMKK+WihCA+IHHEqzsgIzU4ODQKK+WihSA+IHNow7k7ICM1ODg1CivlooYgPiBkw6w7ICM1ODg2CivloocgPiB6aMSBbmc7ICM1ODg3CivlooggPiBrw6BuOyAjNTg4OAor5aKJID4gecWNbmc7ICM1ODg5CivlooogPiBkacOgbjsgIzU4OEEKK+WiiyA+IGNoxJVuOyAjNTg4Qgor5aKMID4gemjEqzsgIzU4OEMKK+WijSA+IHjDrDsgIzU4OEQKK+WijiA+IGfFq287ICM1ODhFCivloo8gPiBxacSDbmc7ICM1ODhGCivlopAgPiBqw6xuOyAjNTg5MAor5aKRID4gZMSrOyAjNTg5MQor5aKSID4gc2jEgW5nOyAjNTg5Mgor5aKTID4gbcO5OyAjNTg5Mwor5aKUID4gY8WraTsgIzU4OTQKK+WilSA+IHnDoG47ICM1ODk1CivlopYgPiB0xIM7ICM1ODk2CivlopcgPiB6xJNuZzsgIzU4OTcKK+WimCA+IHHDrTsgIzU4OTgKK+WimSA+IHFpw6FuZzsgIzU4OTkKK+WimiA+IGxpw6FuZzsgIzU4OUEKK+WinCA+IHpow7lpOyAjNTg5Qwor5aKdID4gcWnEgW87ICM1ODlECivlop4gPiB6xJNuZzsgIzU4OUUKK+WinyA+IHjFqzsgIzU4OUYKK+WioCA+IHNow6BuOyAjNThBMAor5aKhID4gc2jDoG47ICM1OEExCivloqIgPiBiw6E7ICM1OEEyCivloqMgPiBwxas7ICM1OEEzCivloqQgPiBrdcOgaTsgIzU4QTQKK+WipSA+IGTFj25nOyAjNThBNQor5aKmID4gZsOhbjsgIzU4QTYKK+WipyA+IHF1w6g7ICM1OEE3CivloqggPiBtw7I7ICM1OEE4CivloqkgPiBkxatuOyAjNThBOQor5aKqID4gZMWrbjsgIzU4QUEKK+WiqyA+IGTFq247ICM1OEFCCivloqwgPiBkw6w7ICM1OEFDCivloq0gPiBzaMOobmc7ICM1OEFECivloq4gPiBkw7lvOyAjNThBRQor5aKvID4gZMO5bzsgIzU4QUYKK+WisCA+IHTDoW47ICM1OEIwCivlorEgPiBkw6huZzsgIzU4QjEKK+WisiA+IHfFrTsgIzU4QjIKK+WisyA+IGbDqW47ICM1OEIzCivlorQgPiBodcOhbmc7ICM1OEI0CivlorUgPiB0w6FuOyAjNThCNQor5aK2ID4gZMSBOyAjNThCNgor5aK3ID4gecOoOyAjNThCNwor5aK6ID4gecO5OyAjNThCQQor5aK7ID4gcWnDoW5nOyAjNThCQgor5aK8ID4gasSrOyAjNThCQwor5aK9ID4gcWnEgW87ICM1OEJECivlor4gPiBrxJVuOyAjNThCRQor5aK/ID4gecOsOyAjNThCRgor5aOAID4gcMOtOyAjNThDMAor5aOBID4gYsOsOyAjNThDMQor5aOCID4gZGnDoG47ICM1OEMyCivlo4MgPiBqacSBbmc7ICM1OEMzCivlo4QgPiB5xJU7ICM1OEM0Civlo4UgPiB5xY1uZzsgIzU4QzUKK+WjhiA+IGLDszsgIzU4QzYKK+WjhyA+IHTDoW47ICM1OEM3Civlo4ggPiBsxINuOyAjNThDOAor5aOJID4gasO5OyAjNThDOQor5aOKID4gaHXDoGk7ICM1OENBCivlo4sgPiBkw6BuZzsgIzU4Q0IKK+WjjCA+IHLEg25nOyAjNThDQwor5aONID4gcWnDoG47ICM1OENECivlo44gPiB4xatuOyAjNThDRQor5aOPID4gbMOgbjsgIzU4Q0YKK+WjkCA+IHjErTsgIzU4RDAKK+WjkSA+IGjDqDsgIzU4RDEKK+WjkiA+IMOgaTsgIzU4RDIKK+WjkyA+IHnEgTsgIzU4RDMKK+WjlCA+IGTEg287ICM1OEQ0Civlo5UgPiBow6FvOyAjNThENQor5aOWID4gcnXDoW47ICM1OEQ2Civlo5ggPiBsxJVpOyAjNThEOAor5aOZID4ga3XDoG5nOyAjNThEOQor5aOaID4gbMO6OyAjNThEQQor5aObID4gecOhbjsgIzU4REIKK+WjnCA+IHTDoW47ICM1OERDCivlo50gPiB3w6lpOyAjNThERAor5aOeID4gaHXDoGk7ICM1OERFCivlo58gPiBsxY9uZzsgIzU4REYKK+WjoCA+IGzFj25nOyAjNThFMAor5aOhID4gcsO5aTsgIzU4RTEKK+WjoiA+IGzDrDsgIzU4RTIKK+WjoyA+IGzDrW47ICM1OEUzCivlo6QgPiByxINuZzsgIzU4RTQKK+WjpiA+IHjFq247ICM1OEU2Civlo6cgPiB5w6FuOyAjNThFNwor5aOoID4gbMOpaTsgIzU4RTgKK+WjqSA+IGLDoDsgIzU4RTkKK+WjqyA+IHNow6w7ICM1OEVCCivlo6wgPiByw6luOyAjNThFQwor5aOuID4gemh1w6BuZzsgIzU4RUUKK+WjryA+IHpodcOgbmc7ICM1OEVGCivlo7AgPiBzaMSTbmc7ICM1OEYwCivlo7EgPiB5xKs7ICM1OEYxCivlo7IgPiBtw6BpOyAjNThGMgor5aOzID4ga8OpOyAjNThGMwor5aO0ID4gemjFrTsgIzU4RjQKK+WjtSA+IHpodcOgbmc7ICM1OEY1Civlo7YgPiBow7o7ICM1OEY2Civlo7cgPiBow7o7ICM1OEY3Civlo7ggPiBrxa1uOyAjNThGOAor5aO5ID4gecSrOyAjNThGOQor5aO6ID4gaMO6OyAjNThGQQor5aO7ID4geMO5OyAjNThGQgor5aO8ID4ga8WtbjsgIzU4RkMKK+WjvSA+IHNow7J1OyAjNThGRAor5aO+ID4gbcSDbmc7ICM1OEZFCivlo78gPiB6xa1uOyAjNThGRgor5aSAID4gc2jDsnU7ICM1OTAwCivlpIEgPiB5xKs7ICM1OTAxCivlpIIgPiB6aMStOyAjNTkwMgor5aSDID4gZ8WrOyAjNTkwMwor5aSEID4gY2jDuTsgIzU5MDQKK+WkhSA+IGppw6BuZzsgIzU5MDUKK+WkhiA+IGbEk25nOyAjNTkwNgor5aSHID4gYsOoaTsgIzU5MDcKK+WkiSA+IGJpw6BuOyAjNTkwOQor5aSKID4gc8WraTsgIzU5MEEKK+WkiyA+IHHFq247ICM1OTBCCivlpIwgPiBsw61uZzsgIzU5MEMKK+WkjSA+IGbDuTsgIzU5MEQKK+WkjiA+IHrDuW87ICM1OTBFCivlpI8gPiB4acOgOyAjNTkwRgor5aSQID4geMOsb25nOyAjNTkxMAor5aSSID4gbsOhbzsgIzU5MTIKK+WkkyA+IHhpw6A7ICM1OTEzCivlpJQgPiBrw7ppOyAjNTkxNAor5aSVID4geMSrOyAjNTkxNQor5aSWID4gd8OgaTsgIzU5MTYKK+WklyA+IHl1w6BuOyAjNTkxNwor5aSYID4gbcSDbzsgIzU5MTgKK+WkmSA+IHPDuTsgIzU5MTkKK+WkmiA+IGTFq287ICM1OTFBCivlpJsgPiBkxatvOyAjNTkxQgor5aScID4gecOoOyAjNTkxQwor5aSdID4gccOtbmc7ICM1OTFECivlpJ8gPiBnw7J1OyAjNTkxRgor5aSgID4gZ8OydTsgIzU5MjAKK+WkoSA+IHHDrDsgIzU5MjEKK+WkoiA+IG3DqG5nOyAjNTkyMgor5aSjID4gbcOobmc7ICM1OTIzCivlpKQgPiB5w61uOyAjNTkyNAor5aSlID4gaMWtbzsgIzU5MjUKK+WkpiA+IGNow6huOyAjNTkyNgor5aSnID4gZMOgOyAjNTkyNwor5aSoID4gesOoOyAjNTkyOAor5aSpID4gdGnEgW47ICM1OTI5CivlpKogPiB0w6BpOyAjNTkyQQor5aSrID4gZsWrOyAjNTkyQgor5aSsID4gZ3XDoGk7ICM1OTJDCivlpK0gPiB5xINvOyAjNTkyRAor5aSuID4gecSBbmc7ICM1OTJFCivlpK8gPiBoxIFuZzsgIzU5MkYKK+WksCA+IGfEg287ICM1OTMwCivlpLEgPiBzaMSrOyAjNTkzMQor5aSyID4gYsSVbjsgIzU5MzIKK+WksyA+IHTDoGk7ICM1OTMzCivlpLQgPiB0w7N1OyAjNTkzNAor5aS1ID4gecSDbjsgIzU5MzUKK+WktiA+IGLErTsgIzU5MzYKK+WktyA+IHnDrTsgIzU5MzcKK+WkuCA+IGt1xIE7ICM1OTM4CivlpLkgPiBqacSBOyAjNTkzOQor5aS6ID4gZMO6bzsgIzU5M0EKK+WkvCA+IGt1xINuZzsgIzU5M0MKK+WkvSA+IHnDuW47ICM1OTNECivlpL4gPiBqacSBOyAjNTkzRQor5aS/ID4gcMSBOyAjNTkzRgor5aWAID4gxJNuOyAjNTk0MAor5aWBID4gbGnDoW47ICM1OTQxCivlpYIgPiBodcOgbjsgIzU5NDIKK+WlgyA+IGTDrDsgIzU5NDMKK+WlhCA+IHnEg247ICM1OTQ0CivlpYUgPiBww6BvOyAjNTk0NQor5aWGID4gcXXEg247ICM1OTQ2CivlpYcgPiBxw607ICM1OTQ3CivlpYggPiBuw6BpOyAjNTk0OAor5aWJID4gZsOobmc7ICM1OTQ5CivlpYogPiB4acOpOyAjNTk0QQor5aWLID4gZsOobjsgIzU5NEIKK+WljCA+IGRpxINuOyAjNTk0Qwor5aWOID4ga8O6aTsgIzU5NEUKK+WljyA+IHrDsnU7ICM1OTRGCivlpZAgPiBodcOgbjsgIzU5NTAKK+WlkSA+IHHDrDsgIzU5NTEKK+WlkiA+IGvEgWk7ICM1OTUyCivlpZMgPiB6aMOgOyAjNTk1Mwor5aWUID4gYsSTbjsgIzU5NTQKK+WllSA+IHnDrDsgIzU5NTUKK+WlliA+IGppxINuZzsgIzU5NTYKK+WllyA+IHTDoG87ICM1OTU3CivlpZggPiB6w6BuZzsgIzU5NTgKK+WlmSA+IGLElW47ICM1OTU5CivlpZogPiB4xKs7ICM1OTVBCivlpZsgPiB4acSDbmc7ICM1OTVCCivlpZwgPiBmxJVpOyAjNTk1Qwor5aWdID4gZGnEgW87ICM1OTVECivlpZ4gPiB4w7luOyAjNTk1RQor5aWfID4ga8STbmc7ICM1OTVGCivlpaAgPiBkacOgbjsgIzU5NjAKK+WloSA+IMOgbzsgIzU5NjEKK+WloiA+IHNoxJM7ICM1OTYyCivlpaMgPiB3xJVuZzsgIzU5NjMKK+WlpCA+IHDEg247ICM1OTY0CivlpaUgPiDDoG87ICM1OTY1CivlpaYgPiB3w7k7ICM1OTY2CivlpacgPiDDoG87ICM1OTY3CivlpaggPiBqacSDbmc7ICM1OTY4CivlpakgPiBsacOhbjsgIzU5NjkKK+WlqiA+IGTDum87ICM1OTZBCivlpasgPiB5xatuOyAjNTk2Qgor5aWsID4gamnEg25nOyAjNTk2Qwor5aWtID4gc2jDrDsgIzU5NkQKK+WlriA+IGbDqG47ICM1OTZFCivlpa8gPiBow7lvOyAjNTk2Rgor5aWwID4gYsOsOyAjNTk3MAor5aWxID4gbGnDoW47ICM1OTcxCivlpbIgPiBkxa1vOyAjNTk3Mgor5aWzID4gbseaOyAjNTk3Mwor5aW0ID4gbsO6OyAjNTk3NAor5aW1ID4gZMSrbmc7ICM1OTc1CivlpbYgPiBuxINpOyAjNTk3Ngor5aW3ID4gcWnEgW47ICM1OTc3CivlpbggPiBqacSBbjsgIzU5NzgKK+WluSA+IHTEgTsgIzU5NzkKK+WluiA+IGrErXU7ICM1OTdBCivlpbsgPiBuw6FuOyAjNTk3Qgor5aW8ID4gY2jDoDsgIzU5N0MKK+WlvSA+IGjEg287ICM1OTdECivlpb4gPiB4acSBbjsgIzU5N0UKK+WlvyA+IGbDoG47ICM1OTdGCivlpoAgPiBqxK07ICM1OTgwCivlpoEgPiBzaMO5bzsgIzU5ODEKK+WmgiA+IHLDujsgIzU5ODIKK+WmgyA+IGbEk2k7ICM1OTgzCivlpoQgPiB3w6BuZzsgIzU5ODQKK+WmhSA+IGjDs25nOyAjNTk4NQor5aaGID4gemh1xIFuZzsgIzU5ODYKK+WmhyA+IGbDuTsgIzU5ODcKK+WmiCA+IG3EgTsgIzU5ODgKK+WmiSA+IGTEgW47ICM1OTg5CivlpoogPiByw6huOyAjNTk4QQor5aaLID4gZsWrOyAjNTk4Qgor5aaMID4gasOsbmc7ICM1OThDCivlpo0gPiB5w6FuOyAjNTk4RAor5aaOID4geGnDqDsgIzU5OEUKK+WmjyA+IHfDqG47ICM1OThGCivlppAgPiB6aMWNbmc7ICM1OTkwCivlppEgPiBwxIE7ICM1OTkxCivlppIgPiBkw7k7ICM1OTkyCivlppMgPiBqw6w7ICM1OTkzCivlppQgPiBrxJNuZzsgIzU5OTQKK+WmlSA+IHpow7JuZzsgIzU5OTUKK+WmliA+IHnEgW87ICM1OTk2CivlppcgPiBqw6xuOyAjNTk5Nwor5aaYID4gecO6bjsgIzU5OTgKK+WmmSA+IG1pw6BvOyAjNTk5OQor5aaaID4gcMSTaTsgIzU5OUEKK+WmnCA+IHl1w6g7ICM1OTlDCivlpp0gPiB6aHXEgW5nOyAjNTk5RAor5aaeID4gbsSrdTsgIzU5OUUKK+WmnyA+IHnDoG47ICM1OTlGCivlpqAgPiBuw6A7ICM1OUEwCivlpqEgPiB4xKtuOyAjNTlBMQor5aaiID4gZsOpbjsgIzU5QTIKK+WmoyA+IGLErTsgIzU5QTMKK+WmpCA+IHnDujsgIzU5QTQKK+WmpSA+IHTFrW87ICM1OUE1CivlpqYgPiBmxJNuZzsgIzU5QTYKK+WmpyA+IHl1w6FuOyAjNTlBNwor5aaoID4gZsOhbmc7ICM1OUE4CivlpqkgPiB3xa07ICM1OUE5CivlpqogPiB5w7k7ICM1OUFBCivlpqsgPiBnxatpOyAjNTlBQgor5aasID4gZMO5OyAjNTlBQwor5aatID4gYsOhOyAjNTlBRAor5aauID4gbsSrOyAjNTlBRQor5aavID4gemjDs3U7ICM1OUFGCivlprAgPiB6aMO6bzsgIzU5QjAKK+WmsSA+IHpoxIFvOyAjNTlCMQor5aayID4gZMOhOyAjNTlCMgor5aazID4gbsSDaTsgIzU5QjMKK+WmtCA+IHl1xINuOyAjNTlCNAor5aa1ID4gdMWPdTsgIzU5QjUKK+WmtiA+IHh1w6FuOyAjNTlCNgor5aa3ID4gemjDrTsgIzU5QjcKK+WmuCA+IMSTOyAjNTlCOAor5aa5ID4gbcOoaTsgIzU5QjkKK+WmuiA+IG3DsjsgIzU5QkEKK+WmuyA+IHHEqzsgIzU5QkIKK+WmvCA+IGLDrDsgIzU5QkMKK+WmvSA+IHNoxJNuOyAjNTlCRAor5aa+ID4gcWnDqDsgIzU5QkUKK+WmvyA+IMSTOyAjNTlCRgor5aeAID4gaMOpOyAjNTlDMAor5aeBID4geMWtOyAjNTlDMQor5aeCID4gZsOhOyAjNTlDMgor5aeDID4gemjEk25nOyAjNTlDMwor5aeEID4gbcOtbjsgIzU5QzQKK+WnhSA+IGLDoG47ICM1OUM1Civlp4YgPiBtxa07ICM1OUM2Civlp4cgPiBmxas7ICM1OUM3Civlp4ggPiBsw61uZzsgIzU5QzgKK+WniSA+IHrErTsgIzU5QzkKK+WniiA+IHrErTsgIzU5Q0EKK+WniyA+IHNoxK07ICM1OUNCCivlp4wgPiByxINuOyAjNTlDQwor5aeNID4gc2jEgW47ICM1OUNECivlp44gPiB5xIFuZzsgIzU5Q0UKK+WnjyA+IG3DoW47ICM1OUNGCivlp5AgPiBqacSVOyAjNTlEMAor5aeRID4gZ8WrOyAjNTlEMQor5aeSID4gc8OsOyAjNTlEMgor5aeTID4geMOsbmc7ICM1OUQzCivlp5QgPiB3xJVpOyAjNTlENAor5aeVID4gesSrOyAjNTlENQor5aeWID4gasO5OyAjNTlENgor5aeXID4gc2jEgW47ICM1OUQ3Civlp5ggPiBwxKtuOyAjNTlEOAor5aeZID4gcsOobjsgIzU5RDkKK+WnmiA+IHnDoW87ICM1OURBCivlp5sgPiB0xY9uZzsgIzU5REIKK+WnnCA+IGppxIFuZzsgIzU5REMKK+WnnSA+IHNoxas7ICM1OURECivlp54gPiBqw607ICM1OURFCivlp58gPiBnxIFpOyAjNTlERgor5aegID4gc2jDoG5nOyAjNTlFMAor5aehID4ga8O5bzsgIzU5RTEKK+WnoiA+IGp1xIFuOyAjNTlFMgor5aejID4gamnEgW87ICM1OUUzCivlp6QgPiBnw7J1OyAjNTlFNAor5aelID4gbcWtOyAjNTlFNQor5aemID4gamnEgW47ICM1OUU2Civlp6cgPiBqacSBbjsgIzU5RTcKK+WnqCA+IHnDrTsgIzU5RTgKK+WnqSA+IG5pw6BuOyAjNTlFOQor5aeqID4gemjDrTsgIzU5RUEKK+WnqyA+IGrEqzsgIzU5RUIKK+WnrCA+IGrEqzsgIzU5RUMKK+WnrSA+IHhpw6BuOyAjNTlFRAor5aeuID4gaMOpbmc7ICM1OUVFCivlp68gPiBndcSBbmc7ICM1OUVGCivlp7AgPiBqxatuOyAjNTlGMAor5aexID4ga3XEgTsgIzU5RjEKK+WnsiA+IHnDoG47ICM1OUYyCivlp7MgPiBtxK1uZzsgIzU5RjMKK+WntCA+IGxpw6g7ICM1OUY0Civlp7UgPiBww6hpOyAjNTlGNQor5ae2ID4gecSDbjsgIzU5RjYKK+WntyA+IHnDsnU7ICM1OUY3Civlp7ggPiB5w6FuOyAjNTlGOAor5ae5ID4gY2jDoDsgIzU5RjkKK+WnuiA+IHNoxJNuOyAjNTlGQQor5ae7ID4gecSrbjsgIzU5RkIKK+WnvCA+IGNoxK07ICM1OUZDCivlp70gPiBnxa1pOyAjNTlGRAor5ae+ID4gcXXEgW47ICM1OUZFCivlp78gPiB6xKs7ICM1OUZGCivlqIAgPiBzxY1uZzsgIzVBMDAKK+WogSA+IHfEk2k7ICM1QTAxCivlqIIgPiBow7NuZzsgIzVBMDIKK+WogyA+IHfDoTsgIzVBMDMKK+WohCA+IGzDs3U7ICM1QTA0CivlqIUgPiB5w6A7ICM1QTA1CivlqIYgPiByxINvOyAjNUEwNgor5aiHID4gamnEgW87ICM1QTA3CivlqIggPiBsdcOhbjsgIzVBMDgKK+WoiSA+IHDEq25nOyAjNUEwOQor5aiKID4geGnDoG47ICM1QTBBCivlqIsgPiBzaMOgbzsgIzVBMEIKK+WojCA+IGzErTsgIzVBMEMKK+WojSA+IGNow6luZzsgIzVBMEQKK+WojiA+IHhpw6BvOyAjNUEwRQor5aiPID4gbcOhbmc7ICM1QTBGCivlqJAgPiBmdTsgIzVBMTAKK+WokSA+IHPFq287ICM1QTExCivlqJIgPiB3xa07ICM1QTEyCivlqJMgPiB3xJVpOyAjNUExMwor5aiUID4ga8OoOyAjNUExNAor5aiVID4gbMOgaTsgIzVBMTUKK+WoliA+IGNow7lvOyAjNUExNgor5aiXID4gZMOsbmc7ICM1QTE3CivlqJggPiBuacOhbmc7ICM1QTE4CivlqJkgPiB4w61uZzsgIzVBMTkKK+WomiA+IG7DoW47ICM1QTFBCivlqJsgPiB5w7o7ICM1QTFCCivlqJwgPiBuw7pvOyAjNUExQwor5aidID4gcMSTaTsgIzVBMUQKK+WoniA+IG7ElWk7ICM1QTFFCivlqJ8gPiBqdcSBbjsgIzVBMUYKK+WooCA+IHNoxJNuOyAjNUEyMAor5aihID4gemjDrDsgIzVBMjEKK+WooiA+IGjDoW47ICM1QTIyCivlqKMgPiBkw6w7ICM1QTIzCivlqKQgPiB6aHXEgW5nOyAjNUEyNAor5ailID4gw6k7ICM1QTI1CivlqKYgPiBww61uOyAjNUEyNgor5ainID4gdMO5aTsgIzVBMjcKK+WoqCA+IGjDoG47ICM1QTI4CivlqKkgPiBtacSDbjsgIzVBMjkKK+WoqiA+IHfDujsgIzVBMkEKK+WoqyA+IHnDoW47ICM1QTJCCivlqKwgPiB3xa07ICM1QTJDCivlqK0gPiB4xKs7ICM1QTJECivlqK4gPiB5w6FuOyAjNUEyRQor5aivID4gecO6OyAjNUEyRgor5aiwID4gc8OsOyAjNUEzMAor5aixID4gecO6OyAjNUEzMQor5aiyID4gd8SBOyAjNUEzMgor5ai0ID4geGnDoW47ICM1QTM0CivlqLUgPiBqxas7ICM1QTM1CivlqLYgPiBxxa07ICM1QTM2CivlqLcgPiBzaMO5aTsgIzVBMzcKK+WouCA+IHHEqzsgIzVBMzgKK+WouSA+IHhpw6FuOyAjNUEzOQor5ai6ID4gemjFq2k7ICM1QTNBCivlqLsgPiBkxY1uZzsgIzVBM0IKK+WovCA+IGNoxIFuZzsgIzVBM0MKK+WovSA+IGzDuTsgIzVBM0QKK+WoviA+IMSDaTsgIzVBM0UKK+WovyA+IMSTOyAjNUEzRgor5amAID4gxJM7ICM1QTQwCivlqYEgPiBsw7N1OyAjNUE0MQor5amCID4gbWnDoW47ICM1QTQyCivlqYMgPiBjw7NuZzsgIzVBNDMKK+WphCA+IHDFj3U7ICM1QTQ0CivlqYUgPiBqw7o7ICM1QTQ1CivlqYYgPiBww7M7ICM1QTQ2CivlqYcgPiBjxINpOyAjNUE0Nwor5amIID4gZMOtbmc7ICM1QTQ4CivlqYkgPiB3xINuOyAjNUE0OQor5amKID4gYmnEg287ICM1QTRBCivlqYsgPiB4acSBbzsgIzVBNEIKK+WpjCA+IHNoxa07ICM1QTRDCivlqY0gPiBxxK07ICM1QTRECivlqY4gPiBoxatpOyAjNUE0RQor5amPID4gZsO5OyAjNUE0Rgor5amQID4gxJM7ICM1QTUwCivlqZEgPiB3xY87ICM1QTUxCivlqZIgPiB0w6FuOyAjNUE1Mgor5amTID4gZsSTaTsgIzVBNTMKK+WplCA+IHdlaTsgIzVBNTQKK+WplSA+IGppw6k7ICM1QTU1CivlqZYgPiB0acSBbjsgIzVBNTYKK+WplyA+IG7DrTsgIzVBNTcKK+WpmCA+IHF1w6FuOyAjNUE1OAor5amZID4gasOsbmc7ICM1QTU5CivlqZogPiBoxatuOyAjNUE1QQor5ambID4gasSrbmc7ICM1QTVCCivlqZwgPiBxacSBbjsgIzVBNUMKK+WpnSA+IGRpw6BuOyAjNUE1RAor5ameID4geMOsbmc7ICM1QTVFCivlqZ8gPiBow7k7ICM1QTVGCivlqaAgPiB3w6A7ICM1QTYwCivlqaEgPiBsw6FpOyAjNUE2MQor5amiID4gYsOsOyAjNUE2Mgor5amjID4gecSrbjsgIzVBNjMKK+WppCA+IGNoxY11OyAjNUE2NAor5amlID4gY2jDuW87ICM1QTY1CivlqaYgPiBmw7k7ICM1QTY2CivlqacgPiBqw6xuZzsgIzVBNjcKK+WpqCA+IGzDum47ICM1QTY4CivlqakgPiB5w6BuOyAjNUE2OQor5amqID4gbMOhbjsgIzVBNkEKK+WpqyA+IGvFq247ICM1QTZCCivlqawgPiB5w61uOyAjNUE2Qwor5amtID4gecOgOyAjNUE2RAor5amuID4ganU7ICM1QTZFCivlqa8gPiBsw6w7ICM1QTZGCivlqbAgPiBkacSDbjsgIzVBNzAKK+WpsSA+IHhpw6FuOyAjNUE3MQor5amzID4gaHXDoDsgIzVBNzMKK+WptCA+IHnEq25nOyAjNUE3NAor5am1ID4gY2jDoW47ICM1QTc1CivlqbYgPiBzaMSVbjsgIzVBNzYKK+WptyA+IHTDrW5nOyAjNUE3Nwor5am4ID4gZMOgbmc7ICM1QTc4CivlqbkgPiB5xINvOyAjNUE3OQor5am6ID4gd8O5OyAjNUE3QQor5am7ID4gbsOgbjsgIzVBN0IKK+WpvCA+IHLDuW87ICM1QTdDCivlqb0gPiBqacSDOyAjNUE3RAor5am+ID4gdMWNdTsgIzVBN0UKK+WpvyA+IHjDuTsgIzVBN0YKK+WqgCA+IHnDujsgIzVBODAKK+WqgSA+IHfEk2k7ICM1QTgxCivlqoIgPiB0w607ICM1QTgyCivlqoMgPiByw7N1OyAjNUE4Mwor5aqEID4gbcSVaTsgIzVBODQKK+WqhSA+IGTEgW47ICM1QTg1CivlqoYgPiBydcSDbjsgIzVBODYKK+WqhyA+IHHEq247ICM1QTg3CivlqoggPiBodWk7ICM1QTg4CivlqokgPiB3xas7ICM1QTg5CivlqoogPiBxacOhbjsgIzVBOEEKK+WqiyA+IGNoxatuOyAjNUE4Qgor5aqMID4gbcOhbzsgIzVBOEMKK+WqjSA+IGbDuTsgIzVBOEQKK+WqjiA+IGppxJU7ICM1QThFCivlqo8gPiBkdcSBbjsgIzVBOEYKK+WqkCA+IHjEqzsgIzVBOTAKK+WqkSA+IHpow7JuZzsgIzVBOTEKK+WqkiA+IG3DqWk7ICM1QTkyCivlqpMgPiBodcOhbmc7ICM1QTkzCivlqpQgPiBtacOhbjsgIzVBOTQKK+WqlSA+IMSBbjsgIzVBOTUKK+WqliA+IHnEq25nOyAjNUE5Ngor5aqXID4geHXEgW47ICM1QTk3CivlqpggPiBqaWU7ICM1QTk4CivlqpkgPiB3xJNpOyAjNUE5OQor5aqaID4gbcOoaTsgIzVBOUEKK+WqmyA+IHl1w6BuOyAjNUE5Qgor5aqcID4gemjEk247ICM1QTlDCivlqp0gPiBxxKt1OyAjNUE5RAor5aqeID4gdMOtOyAjNUE5RQor5aqfID4geGnDqDsgIzVBOUYKK+WqoCA+IHTFrW87ICM1QUEwCivlqqEgPiBsacOgbjsgIzVBQTEKK+WqoiA+IG3DoG87ICM1QUEyCivlqqMgPiByxINuOyAjNUFBMwor5aqkID4gc8SrOyAjNUFBNAor5aqlID4gcGnEgW47ICM1QUE1CivlqqYgPiB3w6hpOyAjNUFBNgor5aqnID4gd8SBOyAjNUFBNwor5aqoID4gasOsdTsgIzVBQTgKK+WqqSA+IGjDujsgIzVBQTkKK+WqqiA+IMSDbzsgIzVBQUEKK+WqrSA+IHjFqzsgIzVBQUQKK+WqriA+IHTFjXU7ICM1QUFFCivlqq8gPiBnxatpOyAjNUFBRgor5aqwID4gesWNdTsgIzVBQjAKK+WqsSA+IHnDoW87ICM1QUIxCivlqrIgPiBww6w7ICM1QUIyCivlqrMgPiB4w607ICM1QUIzCivlqrQgPiB5dcOhbjsgIzVBQjQKK+WqtSA+IHnDrG5nOyAjNUFCNQor5aq2ID4gcsOzbmc7ICM1QUI2CivlqrcgPiByw7k7ICM1QUI3CivlqrggPiBjaMSrOyAjNUFCOAor5aq5ID4gbMOtdTsgIzVBQjkKK+WquiA+IG3ElWk7ICM1QUJBCivlqrsgPiBww6FuOyAjNUFCQgor5aq8ID4gxINvOyAjNUFCQwor5aq9ID4gbcSBOyAjNUFCRAor5aq+ID4gZ8OydTsgIzVBQkUKK+WqvyA+IGvDuWk7ICM1QUJGCivlq4AgPiBxw61uOyAjNUFDMAor5auBID4gamnDoDsgIzVBQzEKK+WrgiA+IHPEg287ICM1QUMyCivlq4MgPiB6aMSTbjsgIzVBQzMKK+WrhCA+IHl1w6FuOyAjNUFDNAor5auFID4gY2jEgTsgIzVBQzUKK+WrhiA+IHnDs25nOyAjNUFDNgor5auHID4gbcOtbmc7ICM1QUM3Civlq4ggPiB5xKtuZzsgIzVBQzgKK+WriSA+IGrDrTsgIzVBQzkKK+WriiA+IHPDuTsgIzVBQ0EKK+WriyA+IG5pxINvOyAjNUFDQgor5auMID4geGnDoW47ICM1QUNDCivlq40gPiB0xIFvOyAjNUFDRAor5auOID4gcMOhbmc7ICM1QUNFCivlq48gPiBsw6FuZzsgIzVBQ0YKK+WrkCA+IG7Eg287ICM1QUQwCivlq5EgPiBiw6FvOyAjNUFEMQor5auSID4gw6BpOyAjNUFEMgor5auTID4gcMOsOyAjNUFEMwor5auUID4gcMOtbjsgIzVBRDQKK+WrlSA+IHnDrDsgIzVBRDUKK+WrliA+IHBpw6BvOyAjNUFENgor5auXID4gecO5OyAjNUFENwor5auYID4gbMOpaTsgIzVBRDgKK+WrmSA+IHh1w6FuOyAjNUFEOQor5auaID4gbcOgbjsgIzVBREEKK+WrmyA+IHnEqzsgIzVBREIKK+WrnCA+IHpoxIFuZzsgIzVBREMKK+WrnSA+IGvEgW5nOyAjNUFERAor5aueID4gecOzbmc7ICM1QURFCivlq58gPiBuw6w7ICM1QURGCivlq6AgPiBsw607ICM1QUUwCivlq6EgPiBkw607ICM1QUUxCivlq6IgPiBnxatpOyAjNUFFMgor5aujID4gecSBbjsgIzVBRTMKK+WrpCA+IGrDrG47ICM1QUU0Civlq6UgPiB6aHXEgW47ICM1QUU1Civlq6YgPiBjaMOhbmc7ICM1QUU2Civlq6cgPiBjw6g7ICM1QUU3Civlq6ggPiBoxIFuOyAjNUFFOAor5aupID4gbsOobjsgIzVBRTkKK+WrqiA+IGzDoG87ICM1QUVBCivlq6sgPiBtw7M7ICM1QUVCCivlq6wgPiB6aMSTOyAjNUFFQwor5autID4gaMO5OyAjNUFFRAor5auuID4gaMO5OyAjNUFFRQor5auvID4gw6BvOyAjNUFFRgor5auwID4gbsOobjsgIzVBRjAKK+WrsSA+IHFpw6FuZzsgIzVBRjEKK+WrsyA+IHBpw6g7ICM1QUYzCivlq7QgPiBnxas7ICM1QUY0Civlq7UgPiB3xa07ICM1QUY1Civlq7YgPiBqacOhbzsgIzVBRjYKK+WrtyA+IHTFrW87ICM1QUY3Civlq7ggPiB6aMSDbjsgIzVBRjgKK+WruSA+IG3DoW87ICM1QUY5Civlq7ogPiB4acOhbjsgIzVBRkEKK+WruyA+IHhpw6FuOyAjNUFGQgor5au8ID4gbcOyOyAjNUFGQwor5au9ID4gbGnDoW87ICM1QUZECivlq74gPiBsacOhbjsgIzVBRkUKK+WrvyA+IGh1w6A7ICM1QUZGCivlrIAgPiBnxatpOyAjNUIwMAor5ayBID4gZMSTbmc7ICM1QjAxCivlrIIgPiB6aMSrOyAjNUIwMgor5ayDID4geMWrOyAjNUIwMwor5ayEID4geWk7ICM1QjA0CivlrIUgPiBodcOhOyAjNUIwNQor5ayGID4geMSrOyAjNUIwNgor5ayHID4gaMO5aTsgIzVCMDcKK+WsiCA+IHLEg287ICM1QjA4CivlrIkgPiB4xKs7ICM1QjA5CivlrIogPiB5w6BuOyAjNUIwQQor5ayLID4gY2jDoW47ICM1QjBCCivlrIwgPiBqacSBbzsgIzVCMEMKK+WsjSA+IG3ElWk7ICM1QjBECivlrI4gPiBmw6BuOyAjNUIwRQor5ayPID4gZsSBbjsgIzVCMEYKK+WskCA+IHhpxIFuOyAjNUIxMAor5ayRID4gecOsOyAjNUIxMQor5aySID4gd8OoaTsgIzVCMTIKK+WskyA+IGppw6BvOyAjNUIxMwor5ayUID4gZsO5OyAjNUIxNAor5ayVID4gc2jDrDsgIzVCMTUKK+WsliA+IGLDrDsgIzVCMTYKK+WslyA+IHNow6BuOyAjNUIxNwor5ayYID4gc8O5aTsgIzVCMTgKK+WsmSA+IHFpw6FuZzsgIzVCMTkKK+WsmiA+IGxpxINuOyAjNUIxQQor5aybID4gaHXDoW47ICM1QjFCCivlrJwgPiB4aW47ICM1QjFDCivlrJ0gPiBuacSDbzsgIzVCMUQKK+WsniA+IGTFj25nOyAjNUIxRQor5ayfID4gecOsOyAjNUIxRgor5aygID4gY8OhbjsgIzVCMjAKK+WsoSA+IMOgaTsgIzVCMjEKK+WsoiA+IG5pw6FuZzsgIzVCMjIKK+WsoyA+IG7DqW5nOyAjNUIyMwor5aykID4gbcSBOyAjNUIyNAor5aylID4gdGnEg287ICM1QjI1CivlrKYgPiBjaMOzdTsgIzVCMjYKK+WspyA+IGrDrG47ICM1QjI3CivlrKggPiBjw607ICM1QjI4CivlrKkgPiB5w7o7ICM1QjI5CivlrKogPiBww61uOyAjNUIyQQor5ayrID4geW9uZzsgIzVCMkIKK+WsrCA+IHjFqzsgIzVCMkMKK+WsrSA+IG7Eg2k7ICM1QjJECivlrK4gPiB5xIFuOyAjNUIyRQor5ayvID4gdMOhaTsgIzVCMkYKK+WssCA+IHnEq25nOyAjNUIzMAor5ayxID4gY8OhbjsgIzVCMzEKK+WssiA+IG5pxINvOyAjNUIzMgor5ayzID4gd287ICM1QjMzCivlrLQgPiB5w61uZzsgIzVCMzQKK+WstSA+IG1pw6FuOyAjNUIzNQor5ay3ID4gbcSBOyAjNUIzNwor5ay4ID4gc2jElW47ICM1QjM4CivlrLkgPiB4w6xuZzsgIzVCMzkKK+WsuiA+IG7DrDsgIzVCM0EKK+WsuyA+IGTDujsgIzVCM0IKK+WsvCA+IGzErXU7ICM1QjNDCivlrL0gPiB5dcSBbjsgIzVCM0QKK+WsviA+IGzEg247ICM1QjNFCivlrL8gPiB5w6BuOyAjNUIzRgor5a2AID4gc2h1xIFuZzsgIzVCNDAKK+WtgSA+IGzDrW5nOyAjNUI0MQor5a2CID4gamnEg287ICM1QjQyCivlrYMgPiBuacOhbmc7ICM1QjQzCivlrYQgPiBsxINuOyAjNUI0NAor5a2FID4geGnEgW47ICM1QjQ1CivlrYYgPiB5xKtuZzsgIzVCNDYKK+WthyA+IHNodcSBbmc7ICM1QjQ3CivlrYggPiBzaHXEgWk7ICM1QjQ4CivlrYkgPiBxdcOhbjsgIzVCNDkKK+WtiiA+IG3ErTsgIzVCNEEKK+WtiyA+IGzDrTsgIzVCNEIKK+WtjCA+IGx1w6FuOyAjNUI0Qwor5a2NID4gecOhbjsgIzVCNEQKK+WtjiA+IHpoxa07ICM1QjRFCivlrY8gPiBsxINuOyAjNUI0Rgor5a2QID4gesStOyAjNUI1MAor5a2RID4gamnDqTsgIzVCNTEKK+WtkiA+IGp1w6k7ICM1QjUyCivlrZMgPiBqdcOpOyAjNUI1Mwor5a2UID4ga8WPbmc7ICM1QjU0CivlrZUgPiB5w7luOyAjNUI1NQor5a2WID4gesSrOyAjNUI1Ngor5a2XID4gesOsOyAjNUI1Nwor5a2YID4gY8O6bjsgIzVCNTgKK+WtmSA+IHPFq247ICM1QjU5CivlrZogPiBmw7o7ICM1QjVBCivlrZsgPiBiw6hpOyAjNUI1Qgor5a2cID4gesSrOyAjNUI1Qwor5a2dID4geGnDoG87ICM1QjVECivlrZ4gPiB4w6xuOyAjNUI1RQor5a2fID4gbcOobmc7ICM1QjVGCivlraAgPiBzw6w7ICM1QjYwCivlraEgPiB0xIFpOyAjNUI2MQor5a2iID4gYsSBbzsgIzVCNjIKK+WtoyA+IGrDrDsgIzVCNjMKK+WtpCA+IGfFqzsgIzVCNjQKK+WtpSA+IG7DujsgIzVCNjUKK+WtpiA+IHh1w6k7ICM1QjY2CivlraggPiB6aHXEg247ICM1QjY4CivlrakgPiBow6FpOyAjNUI2OQor5a2qID4gbHXDoW47ICM1QjZBCivlrasgPiBzxatuOyAjNUI2Qgor5a2sID4gaHXDoGk7ICM1QjZDCivlra0gPiBtacSTOyAjNUI2RAor5a2uID4gY8Ozbmc7ICM1QjZFCivlra8gPiBxacSBbjsgIzVCNkYKK+WtsCA+IHNow7o7ICM1QjcwCivlrbEgPiBjaMOhbjsgIzVCNzEKK+WtsiA+IHnEgTsgIzVCNzIKK+WtsyA+IHrEqzsgIzVCNzMKK+WttCA+IG7ErTsgIzVCNzQKK+WttSA+IGbFqzsgIzVCNzUKK+WttiA+IHrEqzsgIzVCNzYKK+WttyA+IGzDrTsgIzVCNzcKK+WtuCA+IHh1w6k7ICM1Qjc4CivlrbkgPiBiw7I7ICM1Qjc5CivlrbogPiByw7o7ICM1QjdBCivlrbsgPiBsw6FpOyAjNUI3Qgor5a28ID4gbmnDqDsgIzVCN0MKK+WtvSA+IG5pw6g7ICM1QjdECivlrb4gPiB5xKtuZzsgIzVCN0UKK+WtvyA+IGx1w6FuOyAjNUI3Rgor5a6AID4gbWnDoW47ICM1QjgwCivlroEgPiB6aMO5OyAjNUI4MQor5a6CID4gcsWPbmc7ICM1QjgyCivlroMgPiB0xIE7ICM1QjgzCivlroQgPiBnxa1pOyAjNUI4NAor5a6FID4gemjDoWk7ICM1Qjg1CivlroYgPiBxw61vbmc7ICM1Qjg2CivlrocgPiB5xa07ICM1Qjg3CivlroggPiBzaMWPdTsgIzVCODgKK+WuiSA+IMSBbjsgIzVCODkKK+WuiiA+IHTDujsgIzVCOEEKK+WuiyA+IHPDsm5nOyAjNUI4Qgor5a6MID4gd8OhbjsgIzVCOEMKK+WujSA+IHLDsnU7ICM1QjhECivlro4gPiB5xINvOyAjNUI4RQor5a6PID4gaMOzbmc7ICM1QjhGCivlrpAgPiB5w607ICM1QjkwCivlrpEgPiBqxK1uZzsgIzVCOTEKK+WukiA+IHpoxatuOyAjNUI5Mgor5a6TID4gbcOsOyAjNUI5Mwor5a6UID4gemjFrTsgIzVCOTQKK+WulSA+IGTDoG5nOyAjNUI5NQor5a6WID4gaMOzbmc7ICM1Qjk2CivlrpcgPiB6xY1uZzsgIzVCOTcKK+WumCA+IGd1xIFuOyAjNUI5OAor5a6ZID4gemjDsnU7ICM1Qjk5CivlrpogPiBkw6xuZzsgIzVCOUEKK+WumyA+IHfEg247ICM1QjlCCivlrpwgPiB5w607ICM1QjlDCivlrp0gPiBixINvOyAjNUI5RAor5a6eID4gc2jDrTsgIzVCOUUKK+WunyA+IHNow607ICM1QjlGCivlrqAgPiBjaMWPbmc7ICM1QkEwCivlrqEgPiBzaMSVbjsgIzVCQTEKK+WuoiA+IGvDqDsgIzVCQTIKK+WuoyA+IHh1xIFuOyAjNUJBMwor5a6kID4gc2jDrDsgIzVCQTQKK+WupSA+IHnDsnU7ICM1QkE1CivlrqYgPiBodcOgbjsgIzVCQTYKK+WupyA+IHnDrTsgIzVCQTcKK+WuqCA+IHRpxINvOyAjNUJBOAor5a6pID4gc2jErTsgIzVCQTkKK+WuqiA+IHhpw6BuOyAjNUJBQQor5a6rID4gZ8WNbmc7ICM1QkFCCivlrqwgPiBjaMOpbmc7ICM1QkFDCivlrq0gPiBxw7puOyAjNUJBRAor5a6uID4gZ8WNbmc7ICM1QkFFCivlrq8gPiB4acSBbzsgIzVCQUYKK+WusCA+IHrEg2k7ICM1QkIwCivlrrEgPiB6aMOgOyAjNUJCMQor5a6yID4gYsSDbzsgIzVCQjIKK+WusyA+IGjDoGk7ICM1QkIzCivlrrQgPiB5w6BuOyAjNUJCNAor5a61ID4geGnEgW87ICM1QkI1CivlrrYgPiBqacSBOyAjNUJCNgor5a63ID4gc2jElW47ICM1QkI3CivlrrggPiBjaMOpbjsgIzVCQjgKK+WuuSA+IHLDs25nOyAjNUJCOQor5a66ID4gaHXEg25nOyAjNUJCQQor5a67ID4gbcOsOyAjNUJCQgor5a68ID4ga8OydTsgIzVCQkMKK+WuvSA+IGt1xIFuOyAjNUJCRAor5a6+ID4gYsSrbjsgIzVCQkUKK+WuvyA+IHPDuTsgIzVCQkYKK+WvgCA+IGPDoGk7ICM1QkMwCivlr4EgPiB6xINuOyAjNUJDMQor5a+CID4gasOsOyAjNUJDMgor5a+DID4geXXEgW47ICM1QkMzCivlr4QgPiBqw6w7ICM1QkM0Civlr4UgPiB5w61uOyAjNUJDNQor5a+GID4gbcOsOyAjNUJDNgor5a+HID4ga8OydTsgIzVCQzcKK+WviCA+IHHEq25nOyAjNUJDOAor5a+JID4gcXXDqDsgIzVCQzkKK+WviiA+IHpoxJNuOyAjNUJDQQor5a+LID4gamnEg247ICM1QkNCCivlr4wgPiBmw7k7ICM1QkNDCivlr40gPiBuw61uZzsgIzVCQ0QKK+WvjiA+IGLDrG5nOyAjNUJDRQor5a+PID4gaHXDoW47ICM1QkNGCivlr5AgPiBtw6hpOyAjNUJEMAor5a+RID4gccStbjsgIzVCRDEKK+WvkiA+IGjDoW47ICM1QkQyCivlr5MgPiB5w7k7ICM1QkQzCivlr5QgPiBzaMOtOyAjNUJENAor5a+VID4gbsOtbmc7ICM1QkQ1Civlr5YgPiBxw6xuOyAjNUJENgor5a+XID4gbsOtbmc7ICM1QkQ3Civlr5ggPiB6aMOsOyAjNUJEOAor5a+ZID4gecWtOyAjNUJEOQor5a+aID4gYsSDbzsgIzVCREEKK+WvmyA+IGt1xIFuOyAjNUJEQgor5a+cID4gbsOtbmc7ICM1QkRDCivlr50gPiBxxK1uOyAjNUJERAor5a+eID4gbcOyOyAjNUJERQor5a+fID4gY2jDoTsgIzVCREYKK+WvoCA+IGrDuTsgIzVCRTAKK+WvoSA+IGd1xIM7ICM1QkUxCivlr6IgPiBxxK1uOyAjNUJFMgor5a+jID4gaMWrOyAjNUJFMwor5a+kID4gd8O5OyAjNUJFNAor5a+lID4gbGnDoW87ICM1QkU1Civlr6YgPiBzaMOtOyAjNUJFNgor5a+nID4gemjDuTsgIzVCRTcKK+WvqCA+IHpow6BpOyAjNUJFOAor5a+pID4gc2jElW47ICM1QkU5Civlr6ogPiB3xJVpOyAjNUJFQQor5a+rID4geGnElTsgIzVCRUIKK+WvrCA+IGt1xIFuOyAjNUJFQwor5a+tID4gaMO5aTsgIzVCRUQKK+WvriA+IGxpw6FvOyAjNUJFRQor5a+vID4gasO5bjsgIzVCRUYKK+WvsCA+IGh1w6FuOyAjNUJGMAor5a+xID4gecOsOyAjNUJGMQor5a+yID4gecOtOyAjNUJGMgor5a+zID4gYsSDbzsgIzVCRjMKK+WvtCA+IHHDrG47ICM1QkY0Civlr7UgPiBjaMWPbmc7ICM1QkY1Civlr7YgPiBixINvOyAjNUJGNgor5a+3ID4gZsSTbmc7ICM1QkY3Civlr7ggPiBjw7luOyAjNUJGOAor5a+5ID4gZMO5aTsgIzVCRjkKK+WvuiA+IHPDrDsgIzVCRkEKK+WvuyA+IHjDum47ICM1QkZCCivlr7wgPiBkxINvOyAjNUJGQwor5a+9ID4gbMecOyAjNUJGRAor5a++ID4gZMO5aTsgIzVCRkUKK+WvvyA+IHNow7J1OyAjNUJGRgor5bCAID4gcMWPOyAjNUMwMAor5bCBID4gZsSTbmc7ICM1QzAxCivlsIIgPiB6aHXEgW47ICM1QzAyCivlsIMgPiBmxas7ICM1QzAzCivlsIQgPiBzaMOoOyAjNUMwNAor5bCFID4ga8OoOyAjNUMwNQor5bCGID4gamnEgW5nOyAjNUMwNgor5bCHID4gamnEgW5nOyAjNUMwNwor5bCIID4gemh1xIFuOyAjNUMwOAor5bCJID4gd8OoaTsgIzVDMDkKK+WwiiA+IHrFq247ICM1QzBBCivlsIsgPiB4w7puOyAjNUMwQgor5bCMID4gc2jDuTsgIzVDMEMKK+WwjSA+IGTDuWk7ICM1QzBECivlsI4gPiBkxINvOyAjNUMwRQor5bCPID4geGnEg287ICM1QzBGCivlsJAgPiBqxKs7ICM1QzEwCivlsJEgPiBzaMSDbzsgIzVDMTEKK+WwkiA+IMSVcjsgIzVDMTIKK+WwkyA+IMSVcjsgIzVDMTMKK+WwlCA+IMSVcjsgIzVDMTQKK+WwlSA+IGfEgzsgIzVDMTUKK+WwliA+IGppxIFuOyAjNUMxNgor5bCXID4gc2jDujsgIzVDMTcKK+WwmCA+IGNow6luOyAjNUMxOAor5bCZID4gc2jDoG5nOyAjNUMxOQor5bCaID4gc2jDoG5nOyAjNUMxQQor5bCbID4gbW87ICM1QzFCCivlsJwgPiBnw6E7ICM1QzFDCivlsJ0gPiBjaMOhbmc7ICM1QzFECivlsJ4gPiBsacOgbzsgIzVDMUUKK+WwnyA+IHhpxINuOyAjNUMxRgor5bCgID4geGnEg247ICM1QzIwCivlsKIgPiB3xIFuZzsgIzVDMjIKK+WwoyA+IHfEgW5nOyAjNUMyMwor5bCkID4gecOzdTsgIzVDMjQKK+WwpSA+IGxpw6BvOyAjNUMyNQor5bCmID4gbGnDoG87ICM1QzI2CivlsKcgPiB5w6FvOyAjNUMyNwor5bCoID4gbcOhbmc7ICM1QzI4CivlsKkgPiB3xIFuZzsgIzVDMjkKK+WwqiA+IHfEgW5nOyAjNUMyQQor5bCrID4gd8SBbmc7ICM1QzJCCivlsKwgPiBnw6A7ICM1QzJDCivlsK0gPiB5w6FvOyAjNUMyRAor5bCuID4gZMO5bzsgIzVDMkUKK+WwryA+IGvDuWk7ICM1QzJGCivlsLAgPiB6aMWPbmc7ICM1QzMwCivlsLEgPiBqw6x1OyAjNUMzMQor5bCyID4gZ8SBbjsgIzVDMzIKK+WwsyA+IGfFrTsgIzVDMzMKK+WwtCA+IGfEgW47ICM1QzM0CivlsLUgPiB0w7ppOyAjNUMzNQor5bC2ID4gZ8SBbjsgIzVDMzYKK+WwtyA+IGfEgW47ICM1QzM3CivlsLggPiBzaMSrOyAjNUMzOAor5bC5ID4gecStbjsgIzVDMzkKK+WwuiA+IGNoxK07ICM1QzNBCivlsLsgPiBrxIFvOyAjNUMzQgor5bC8ID4gbsOtOyAjNUMzQwor5bC9ID4gasStbjsgIzVDM0QKK+WwviA+IHfElWk7ICM1QzNFCivlsL8gPiBuacOgbzsgIzVDM0YKK+WxgCA+IGrDujsgIzVDNDAKK+WxgSA+IHDDrDsgIzVDNDEKK+WxgiA+IGPDqW5nOyAjNUM0Mgor5bGDID4geMOsOyAjNUM0Mwor5bGEID4gYsSrOyAjNUM0NAor5bGFID4gasWrOyAjNUM0NQor5bGGID4gamnDqDsgIzVDNDYKK+WxhyA+IHRpw6FuOyAjNUM0Nwor5bGIID4gccWrOyAjNUM0OAor5bGJID4gdMOsOyAjNUM0OQor5bGKID4gamnDqDsgIzVDNEEKK+WxiyA+IHfFqzsgIzVDNEIKK+WxjCA+IGRpxINvOyAjNUM0Qwor5bGNID4gc2jEqzsgIzVDNEQKK+WxjiA+IHNoxK07ICM1QzRFCivlsY8gPiBww61uZzsgIzVDNEYKK+WxkCA+IGrEqzsgIzVDNTAKK+WxkSA+IHhpw6g7ICM1QzUxCivlsZIgPiBjaMOpbjsgIzVDNTIKK+WxkyA+IHjDrDsgIzVDNTMKK+WxlCA+IG7DrTsgIzVDNTQKK+WxlSA+IHpoxINuOyAjNUM1NQor5bGWID4geMSrOyAjNUM1Ngor5bGYID4gbcSDbjsgIzVDNTgKK+WxmSA+IMSTOyAjNUM1OQor5bGaID4gbMOydTsgIzVDNUEKK+WxmyA+IHDDrW5nOyAjNUM1Qgor5bGcID4gdMOsOyAjNUM1Qwor5bGdID4gZsOoaTsgIzVDNUQKK+WxniA+IHNoxa07ICM1QzVFCivlsZ8gPiB4acOoOyAjNUM1Rgor5bGgID4gdMO6OyAjNUM2MAor5bGhID4gbMeaOyAjNUM2MQor5bGiID4gbMeaOyAjNUM2Mgor5bGjID4geMStOyAjNUM2Mwor5bGkID4gY8Opbmc7ICM1QzY0CivlsaUgPiBsx5o7ICM1QzY1CivlsaYgPiBqw7k7ICM1QzY2CivlsacgPiB4acOoOyAjNUM2Nwor5bGoID4gasO5OyAjNUM2OAor5bGpID4ganXEkzsgIzVDNjkKK+WxqiA+IGxpw6FvOyAjNUM2QQor5bGrID4ganXDqTsgIzVDNkIKK+WxrCA+IHNoxa07ICM1QzZDCivlsa0gPiB4w6w7ICM1QzZECivlsa4gPiBjaMOoOyAjNUM2RQor5bGvID4gdMO6bjsgIzVDNkYKK+WxsCA+IG7DrDsgIzVDNzAKK+WxsSA+IHNoxIFuOyAjNUM3MQor5bGzID4geGnEgW47ICM1QzczCivlsbQgPiBsw6w7ICM1Qzc0CivlsbUgPiB4dcSTOyAjNUM3NQor5bG4ID4gbMOzbmc7ICM1Qzc4CivlsbkgPiB5w6w7ICM1Qzc5CivlsbogPiBxxK07ICM1QzdBCivlsbsgPiByw6huOyAjNUM3Qgor5bG8ID4gd8O5OyAjNUM3Qwor5bG9ID4gaMOgbjsgIzVDN0QKK+WxviA+IHNoxJNuOyAjNUM3RQor5bG/ID4gecWtOyAjNUM3Rgor5bKAID4gY2jFqzsgIzVDODAKK+WygSA+IHPDuWk7ICM1QzgxCivlsoIgPiBxxK07ICM1QzgyCivlsoQgPiB5dcOoOyAjNUM4NAor5bKFID4gYsSDbjsgIzVDODUKK+WyhiA+IHnEg287ICM1Qzg2CivlsocgPiDDoW5nOyAjNUM4Nwor5bKIID4gecOhOyAjNUM4OAor5bKJID4gd8O5OyAjNUM4OQor5bKKID4gamnDqTsgIzVDOEEKK+WyiyA+IMOoOyAjNUM4Qgor5bKMID4gasOtOyAjNUM4Qwor5bKNID4gcWnEgW47ICM1QzhECivlso4gPiBmxJNuOyAjNUM4RQor5bKPID4geXXDoW47ICM1QzhGCivlspAgPiBxw607ICM1QzkwCivlspEgPiBjw6luOyAjNUM5MQor5bKSID4gcWnDoW47ICM1QzkyCivlspMgPiBxw607ICM1QzkzCivlspQgPiBjaMOgOyAjNUM5NAor5bKVID4gamnDqDsgIzVDOTUKK+WyliA+IHHFqzsgIzVDOTYKK+WylyA+IGfEg25nOyAjNUM5Nwor5bKYID4geGnDoG47ICM1Qzk4CivlspkgPiDDoG87ICM1Qzk5CivlspogPiBsw6FuOyAjNUM5QQor5bKbID4gZMSDbzsgIzVDOUIKK+WynCA+IGLEgTsgIzVDOUMKK+WynSA+IHrDuW87ICM1QzlECivlsp4gPiB6w7lvOyAjNUM5RQor5bKfID4gecSDbmc7ICM1QzlGCivlsqAgPiBqw7k7ICM1Q0EwCivlsqEgPiBnxIFuZzsgIzVDQTEKK+WyoiA+IGvElTsgIzVDQTIKK+WyoyA+IGfFj3U7ICM1Q0EzCivlsqQgPiB4dcOoOyAjNUNBNAor5bKlID4gYsSTaTsgIzVDQTUKK+WypiA+IGzDrDsgIzVDQTYKK+WypyA+IHRpw6FvOyAjNUNBNwor5bKoID4gasWrOyAjNUNBOAor5bKpID4gecOhbjsgIzVDQTkKK+WyqiA+IGbDujsgIzVDQUEKK+WyqyA+IHjDrHU7ICM1Q0FCCivlsqwgPiBqacSDOyAjNUNBQwor5bKtID4gbMOtbmc7ICM1Q0FECivlsq4gPiB0w7pvOyAjNUNBRQor5bKvID4gcMSTaTsgIzVDQUYKK+WysCA+IHnFj3U7ICM1Q0IwCivlsrEgPiBkw6BpOyAjNUNCMQor5bKyID4ga3XDoG5nOyAjNUNCMgor5bKzID4geXXDqDsgIzVDQjMKK+WytCA+IHHFqzsgIzVDQjQKK+WytSA+IGjDuTsgIzVDQjUKK+WytiA+IHDDsjsgIzVDQjYKK+WytyA+IG3DrW47ICM1Q0I3CivlsrggPiDDoG47ICM1Q0I4CivlsrkgPiB0acOhbzsgIzVDQjkKK+WyuiA+IGzDrW5nOyAjNUNCQQor5bK7ID4gY2jDrTsgIzVDQkIKK+WyvSA+IGTFjW5nOyAjNUNCRAor5bK/ID4ga8WraTsgIzVDQkYKK+WzgCA+IHjDrHU7ICM1Q0MwCivls4EgPiBtxINvOyAjNUNDMQor5bOCID4gdMOzbmc7ICM1Q0MyCivls4MgPiB4dcOpOyAjNUNDMwor5bOEID4gecOsOyAjNUNDNAor5bOGID4gaMSTOyAjNUNDNgor5bOHID4ga8STOyAjNUNDNwor5bOIID4gbMO5bzsgIzVDQzgKK+WziSA+IMSTOyAjNUNDOQor5bOKID4gZsO5OyAjNUNDQQor5bOLID4geMO6bjsgIzVDQ0IKK+WzjCA+IGRpw6k7ICM1Q0NDCivls40gPiBsw7k7ICM1Q0NECivls44gPiDEgW47ICM1Q0NFCivls48gPiDElXI7ICM1Q0NGCivls5AgPiBnxIFpOyAjNUNEMAor5bORID4gcXXDoW47ICM1Q0QxCivls5IgPiB0w7NuZzsgIzVDRDIKK+WzkyA+IHnDrTsgIzVDRDMKK+WzlCA+IG3FrTsgIzVDRDQKK+WzlSA+IHNow607ICM1Q0Q1Civls5YgPiDEgW47ICM1Q0Q2Civls5cgPiB3w6lpOyAjNUNENwor5bOYID4gaMWrOyAjNUNEOAor5bOZID4gemjDrDsgIzVDRDkKK+WzmiA+IG3DrDsgIzVDREEKK+WzmyA+IGzErTsgIzVDREIKK+WznCA+IGrEqzsgIzVDREMKK+WznSA+IHTDs25nOyAjNUNERAor5bOeID4gd8OpaTsgIzVDREUKK+WznyA+IHnDsnU7ICM1Q0RGCivls6EgPiB4acOhOyAjNUNFMQor5bOiID4gbMStOyAjNUNFMgor5bOjID4gecOhbzsgIzVDRTMKK+WzpCA+IGppw6BvOyAjNUNFNAor5bOlID4gemjEk25nOyAjNUNFNQor5bOmID4gbHXDoW47ICM1Q0U2Civls6cgPiBqacSBbzsgIzVDRTcKK+WzqCA+IMOpOyAjNUNFOAor5bOpID4gw6k7ICM1Q0U5Civls6ogPiB5w7k7ICM1Q0VBCivls6sgPiB5w6k7ICM1Q0VCCivls6wgPiBixas7ICM1Q0VDCivls60gPiBxacOgbzsgIzVDRUQKK+WzriA+IHHFq247ICM1Q0VFCivls68gPiBmxJNuZzsgIzVDRUYKK+WzsCA+IGbEk25nOyAjNUNGMAor5bOxID4gbsOhbzsgIzVDRjEKK+WzsiA+IGzErTsgIzVDRjIKK+WzsyA+IHnDs3U7ICM1Q0YzCivls7QgPiB4acOgbjsgIzVDRjQKK+WztSA+IGjDs25nOyAjNUNGNQor5bO2ID4gZMSDbzsgIzVDRjYKK+WztyA+IHNoxJNuOyAjNUNGNwor5bO4ID4gY2jDqW5nOyAjNUNGOAor5bO5ID4gdMO6OyAjNUNGOQor5bO6ID4gZ8SVbmc7ICM1Q0ZBCivls7sgPiBqw7luOyAjNUNGQgor5bO8ID4gaMOgbzsgIzVDRkMKK+WzvSA+IHhpw6E7ICM1Q0ZECivls74gPiB5xKtuOyAjNUNGRQor5bO/ID4gecWtOyAjNUNGRgor5bSAID4gbMOgbmc7ICM1RDAwCivltIEgPiBrxINuOyAjNUQwMQor5bSCID4gbMOhbzsgIzVEMDIKK+W0gyA+IGzDoWk7ICM1RDAzCivltIQgPiB4acSDbjsgIzVEMDQKK+W0hSA+IHF1w6g7ICM1RDA1CivltIYgPiBrxY1uZzsgIzVEMDYKK+W0hyA+IGNow7NuZzsgIzVEMDcKK+W0iCA+IGNow7NuZzsgIzVEMDgKK+W0iSA+IHTDoDsgIzVEMDkKK+W0iiA+IGxpbjsgIzVEMEEKK+W0iyA+IGh1w6E7ICM1RDBCCivltIwgPiBqxas7ICM1RDBDCivltI0gPiBsw6FpOyAjNUQwRAor5bSOID4gccOtOyAjNUQwRQor5bSPID4gbcOtbjsgIzVEMEYKK+W0kCA+IGvFq247ICM1RDEwCivltJEgPiBrxatuOyAjNUQxMQor5bSSID4gesO6OyAjNUQxMgor5bSTID4gZ8O5OyAjNUQxMwor5bSUID4gY8WraTsgIzVEMTQKK+W0lSA+IHnDoTsgIzVEMTUKK+W0liA+IHnDoTsgIzVEMTYKK+W0lyA+IGfEg25nOyAjNUQxNwor5bSYID4gbMO6bjsgIzVEMTgKK+W0mSA+IGzDum47ICM1RDE5CivltJogPiBsw6luZzsgIzVEMUEKK+W0myA+IGp1w6k7ICM1RDFCCivltJwgPiBkxatvOyAjNUQxQwor5bSdID4gemjEk25nOyAjNUQxRAor5bSeID4gZ8WrbzsgIzVEMUUKK+W0nyA+IHnDrW47ICM1RDFGCivltKAgPiBkxY1uZzsgIzVEMjAKK+W0oSA+IGjDoW47ICM1RDIxCivltKIgPiB6aMSTbmc7ICM1RDIyCivltKMgPiB3xJVpOyAjNUQyMwor5bSkID4gecOhbzsgIzVEMjQKK+W0pSA+IHDErTsgIzVEMjUKK+W0piA+IHnEgW47ICM1RDI2CivltKcgPiBzxY1uZzsgIzVEMjcKK+W0qCA+IGppw6k7ICM1RDI4CivltKkgPiBixJNuZzsgIzVEMjkKK+W0qiA+IHrDujsgIzVEMkEKK+W0qyA+IGp1w6k7ICM1RDJCCivltKwgPiBkxY1uZzsgIzVEMkMKK+W0rSA+IHpoxINuOyAjNUQyRAor5bSuID4gZ8O5OyAjNUQyRQor5bSvID4gecOtbjsgIzVEMkYKK+W0sSA+IHrDqTsgIzVEMzEKK+W0siA+IGh1w6FuZzsgIzVEMzIKK+W0syA+IHnDujsgIzVEMzMKK+W0tCA+IHfEk2k7ICM1RDM0CivltLUgPiB5w6FuZzsgIzVEMzUKK+W0tiA+IGbEk25nOyAjNUQzNgor5bS3ID4gccOtdTsgIzVEMzcKK+W0uCA+IGTDuW47ICM1RDM4CivltLkgPiB0w607ICM1RDM5CivltLogPiB5xK07ICM1RDNBCivltLsgPiB6aMOsOyAjNUQzQgor5bS8ID4gc2jDrDsgIzVEM0MKK+W0vSA+IHrEg2k7ICM1RDNECivltL4gPiB5xINvOyAjNUQzRQor5bS/ID4gw6g7ICM1RDNGCivltYAgPiB6aMO5OyAjNUQ0MAor5bWBID4ga8SBbjsgIzVENDEKK+W1giA+IGzHnDsgIzVENDIKK+W1gyA+IHnEg247ICM1RDQzCivltYQgPiBtxJVpOyAjNUQ0NAor5bWFID4gZ8SBbjsgIzVENDUKK+W1hiA+IGrEqzsgIzVENDYKK+W1hyA+IGrEqzsgIzVENDcKK+W1iCA+IGh1xINuOyAjNUQ0OAor5bWJID4gdMOtbmc7ICM1RDQ5CivltYogPiBzaMOobmc7ICM1RDRBCivltYsgPiBtw6lpOyAjNUQ0Qgor5bWMID4gcWnDoG47ICM1RDRDCivltY0gPiB3w7k7ICM1RDRECivltY4gPiB5w7o7ICM1RDRFCivltY8gPiB6xY1uZzsgIzVENEYKK+W1kCA+IGzDoW47ICM1RDUwCivltZEgPiBqdcOpOyAjNUQ1MQor5bWSID4gecOhbjsgIzVENTIKK+W1kyA+IHnDoW47ICM1RDUzCivltZQgPiB3xJVpOyAjNUQ1NAor5bWVID4gesWNbmc7ICM1RDU1CivltZYgPiBjaMOhOyAjNUQ1Ngor5bWXID4gc8O5aTsgIzVENTcKK+W1mCA+IHLDs25nOyAjNUQ1OAor5bWaID4gccSrbjsgIzVENUEKK+W1myA+IHnDujsgIzVENUIKK+W1nSA+IGzFj3U7ICM1RDVECivltZ4gPiB0w7o7ICM1RDVFCivltZ8gPiBkxatpOyAjNUQ1Rgor5bWgID4geMSrOyAjNUQ2MAor5bWhID4gd8STbmc7ICM1RDYxCivltaIgPiBjxIFuZzsgIzVENjIKK+W1oyA+IGTEgW5nOyAjNUQ2Mwor5bWkID4gaMOzbmc7ICM1RDY0CivltaUgPiBqacOpOyAjNUQ2NQor5bWmID4gw6FpOyAjNUQ2Ngor5bWnID4gbMOtdTsgIzVENjcKK+W1qCA+IHfFrTsgIzVENjgKK+W1qSA+IHPFjW5nOyAjNUQ2OQor5bWqID4gcWnEgW87ICM1RDZBCivltasgPiB6xKs7ICM1RDZCCivltawgPiB3w6lpOyAjNUQ2Qwor5bWtID4gYsSTbmc7ICM1RDZECivlta4gPiBkacSBbjsgIzVENkUKK+W1ryA+IGPDum87ICM1RDZGCivltbAgPiBxacSDbjsgIzVENzAKK+W1sSA+IHnFj25nOyAjNUQ3MQor5bWyID4gbmnDqDsgIzVENzIKK+W1syA+IGPDum87ICM1RDczCivltbQgPiBqw607ICM1RDc0CivltbcgPiBzxY9uZzsgIzVENzcKK+W1uCA+IHrFjW5nOyAjNUQ3OAor5bW5ID4gamnDoG5nOyAjNUQ3OQor5bW6ID4gbGnDoW87ICM1RDdBCivltbsgPiBrYW5nOyAjNUQ3Qgor5bW8ID4gY2jEg247ICM1RDdDCivltb0gPiBkacOpOyAjNUQ3RAor5bW+ID4gY8STbjsgIzVEN0UKK+W1vyA+IGTErW5nOyAjNUQ3Rgor5baAID4gdMWrOyAjNUQ4MAor5baBID4gbMWPdTsgIzVEODEKK+W2giA+IHpow6BuZzsgIzVEODIKK+W2gyA+IHpoxINuOyAjNUQ4Mwor5baEID4gemjEg247ICM1RDg0CivltoUgPiDDoW87ICM1RDg1CivltoYgPiBjw6FvOyAjNUQ4Ngor5baHID4gccWrOyAjNUQ4Nwor5baIID4gcWnEgW5nOyAjNUQ4OAor5baJID4gesWraTsgIzVEODkKK+W2iiA+IHrFrWk7ICM1RDhBCivltosgPiBkxINvOyAjNUQ4Qgor5baMID4gZMSDbzsgIzVEOEMKK+W2jSA+IHjDrTsgIzVEOEQKK+W2jiA+IHnDuTsgIzVEOEUKK+W2jyA+IGLDszsgIzVEOEYKK+W2kCA+IGzDs25nOyAjNUQ5MAor5baRID4geGnEg25nOyAjNUQ5MQor5baSID4gY8Opbmc7ICM1RDkyCivltpMgPiBixY07ICM1RDkzCivltpQgPiBxxKtuOyAjNUQ5NAor5baVID4gamnEgW87ICM1RDk1CivltpYgPiB5xINuOyAjNUQ5Ngor5baXID4gbMOhbzsgIzVEOTcKK+W2mCA+IHpow6BuOyAjNUQ5OAor5baZID4gbMOtbjsgIzVEOTkKK+W2miA+IGxpw6FvOyAjNUQ5QQor5babID4gbGnDoW87ICM1RDlCCivltpwgPiBqxKtuOyAjNUQ5Qwor5badID4gZMOobmc7ICM1RDlECivltp4gPiBkw7lvOyAjNUQ5RQor5bafID4gesWrbjsgIzVEOUYKK+W2oCA+IGppw6BvOyAjNURBMAor5bahID4gZ8O5aTsgIzVEQTEKK+W2oiA+IHnDoW87ICM1REEyCivltqMgPiBxacOhbzsgIzVEQTMKK+W2pCA+IHnDoW87ICM1REE0CivltqUgPiBqdcOpOyAjNURBNQor5bamID4gemjEgW47ICM1REE2CivltqcgPiB5w6w7ICM1REE3CivltqggPiB4dcOpOyAjNURBOAor5bapID4gbsOhbzsgIzVEQTkKK+W2qiA+IHnDqDsgIzVEQUEKK+W2qyA+IHnDqDsgIzVEQUIKK+W2rCA+IHnDrTsgIzVEQUMKK+W2rSA+IMOoOyAjNURBRAor5bauID4geGnEg247ICM1REFFCivltq8gPiBqw607ICM1REFGCivltrAgPiB4acOoOyAjNURCMAor5baxID4ga8SVOyAjNURCMQor5bayID4geMSrOyAjNURCMgor5bazID4gZMOsOyAjNURCMwor5ba0ID4gw6BvOyAjNURCNAor5ba1ID4gesWtaTsgIzVEQjUKK+W2tyA+IG7DrDsgIzVEQjcKK+W2uCA+IHLDs25nOyAjNURCOAor5ba5ID4gZMSDbzsgIzVEQjkKK+W2uiA+IGzErW5nOyAjNURCQQor5ba7ID4gesOhOyAjNURCQgor5ba8ID4gecWtOyAjNURCQwor5ba9ID4geXXDqDsgIzVEQkQKK+W2viA+IHnErW47ICM1REJFCivlt4AgPiBqacSTOyAjNURDMAor5beBID4gbMOsOyAjNURDMQor5beCID4gc8WtaTsgIzVEQzIKK+W3gyA+IGzDs25nOyAjNURDMwor5beEID4gbMOzbmc7ICM1REM0Civlt4UgPiBkacSBbjsgIzVEQzUKK+W3hiA+IHnDrW5nOyAjNURDNgor5beHID4geMSrOyAjNURDNwor5beIID4gasO6OyAjNURDOAor5beJID4gY2jDoW47ICM1REM5Civlt4ogPiB5xK1uZzsgIzVEQ0EKK+W3iyA+IGvFq2k7ICM1RENCCivlt4wgPiB5w6FuOyAjNURDQwor5beNID4gd8STaTsgIzVEQ0QKK+W3jiA+IG7DoW87ICM1RENFCivlt48gPiBxdcOhbjsgIzVEQ0YKK+W3kCA+IGNoxINvOyAjNUREMAor5beRID4gY3XDoW47ICM1REQxCivlt5IgPiBsdcOhbjsgIzVERDIKK+W3kyA+IGRpxIFuOyAjNUREMwor5beUID4gZGnEgW47ICM1REQ0Civlt5YgPiB5w6FuOyAjNURENgor5beXID4gecOhbjsgIzVERDcKK+W3mCA+IHnEg247ICM1REQ4Civlt5kgPiBuw6FvOyAjNUREOQor5beaID4gecSDbjsgIzVEREEKK+W3myA+IGNodcSBbjsgIzVEREIKK+W3nCA+IGfDuWk7ICM1RERDCivlt50gPiBjaHXEgW47ICM1RERECivlt54gPiB6aMWNdTsgIzVEREUKK+W3nyA+IGh1xIFuZzsgIzVEREYKK+W3oCA+IGrEq25nOyAjNURFMAor5behID4geMO6bjsgIzVERTEKK+W3oiA+IGNow6FvOyAjNURFMgor5bejID4gY2jDoW87ICM1REUzCivlt6QgPiBsacSTOyAjNURFNAor5belID4gZ8WNbmc7ICM1REU1Civlt6YgPiB6xa1vOyAjNURFNgor5benID4gcWnEg287ICM1REU3Civlt6ggPiBqw7k7ICM1REU4Civlt6kgPiBnxY9uZzsgIzVERTkKK+W3qyA+IHfFqzsgIzVERUIKK+W3riA+IGNoxIFpOyAjNURFRQor5bevID4gccOtdTsgIzVERUYKK+W3sCA+IHHDrXU7ICM1REYwCivlt7EgPiBqxK07ICM1REYxCivlt7IgPiB5xK07ICM1REYyCivlt7MgPiBzw6w7ICM1REYzCivlt7QgPiBixIE7ICM1REY0Civlt7UgPiB6aMSrOyAjNURGNQor5be2ID4gemjEgW87ICM1REY2Civlt7cgPiB4acOgbmc7ICM1REY3Civlt7ggPiB5w607ICM1REY4Civlt7kgPiBqxK1uOyAjNURGOQor5be6ID4geMO5bjsgIzVERkEKK+W3uyA+IGp1w6BuOyAjNURGQgor5be9ID4geMO5bjsgIzVERkQKK+W3viA+IGrEq247ICM1REZFCivlt78gPiBmw7o7ICM1REZGCivluIAgPiB6xIE7ICM1RTAwCivluIEgPiBiw6w7ICM1RTAxCivluIIgPiBzaMOsOyAjNUUwMgor5biDID4gYsO5OyAjNUUwMwor5biEID4gZMSrbmc7ICM1RTA0CivluIUgPiBzaHXDoGk7ICM1RTA1CivluIYgPiBmxIFuOyAjNUUwNgor5biHID4gbmnDqDsgIzVFMDcKK+W4iCA+IHNoxKs7ICM1RTA4CivluIkgPiBmxJNuOyAjNUUwOQor5biKID4gcMOgOyAjNUUwQQor5biLID4gemjErTsgIzVFMEIKK+W4jCA+IHjEqzsgIzVFMEMKK+W4jSA+IGjDuTsgIzVFMEQKK+W4jiA+IGTDoG47ICM1RTBFCivluI8gPiB3w6lpOyAjNUUwRgor5biQID4gemjDoG5nOyAjNUUxMAor5biRID4gdMSDbmc7ICM1RTExCivluJIgPiBkw6BpOyAjNUUxMgor5biTID4gbcOgOyAjNUUxMwor5biUID4gcMOoaTsgIzVFMTQKK+W4lSA+IHDDoDsgIzVFMTUKK+W4liA+IHRpxJM7ICM1RTE2CivluJcgPiBmw7o7ICM1RTE3CivluJggPiBsacOhbjsgIzVFMTgKK+W4mSA+IHpow6w7ICM1RTE5CivluJogPiB6aMWPdTsgIzVFMUEKK+W4myA+IGLDszsgIzVFMUIKK+W4nCA+IHpow6w7ICM1RTFDCivluJ0gPiBkw6w7ICM1RTFECivluJ4gPiBtw7I7ICM1RTFFCivluJ8gPiB5w6w7ICM1RTFGCivluKAgPiB5w6w7ICM1RTIwCivluKEgPiBww61uZzsgIzVFMjEKK+W4oiA+IHFpw6A7ICM1RTIyCivluKMgPiBqdcOgbjsgIzVFMjMKK+W4pCA+IHLDujsgIzVFMjQKK+W4pSA+IHNodcOgaTsgIzVFMjUKK+W4piA+IGTDoGk7ICM1RTI2CivluKcgPiB6aMOobmc7ICM1RTI3CivluKggPiBzaMO5aTsgIzVFMjgKK+W4qSA+IHFpw6BvOyAjNUUyOQor5biqID4gemjEk247ICM1RTJBCivluKsgPiBzaMSrOyAjNUUyQgor5bisID4gccO6bjsgIzVFMkMKK+W4rSA+IHjDrTsgIzVFMkQKK+W4riA+IGLEgW5nOyAjNUUyRQor5bivID4gZMOgaTsgIzVFMkYKK+W4sCA+IGfFq2k7ICM1RTMwCivluLEgPiBjaMOzdTsgIzVFMzEKK+W4siA+IHDDrW5nOyAjNUUzMgor5bizID4gemjDoG5nOyAjNUUzMwor5bi0ID4gc2jEgTsgIzVFMzQKK+W4tSA+IHfEgW47ICM1RTM1CivluLYgPiBkw6BpOyAjNUUzNgor5bi3ID4gd8OpaTsgIzVFMzcKK+W4uCA+IGNow6FuZzsgIzVFMzgKK+W4uSA+IHNow6A7ICM1RTM5CivluLogPiBxw607ICM1RTNBCivluLsgPiB6w6k7ICM1RTNCCivluLwgPiBnw7pvOyAjNUUzQwor5bi9ID4gbcOgbzsgIzVFM0QKK+W4viA+IGTFrTsgIzVFM0UKK+W4vyA+IGjDs3U7ICM1RTNGCivluYAgPiB6aMOobmc7ICM1RTQwCivluYEgPiB4xas7ICM1RTQxCivluYIgPiBtw6w7ICM1RTQyCivluYMgPiB3w6lpOyAjNUU0Mwor5bmEID4gd8OyOyAjNUU0NAor5bmFID4gZsO6OyAjNUU0NQor5bmGID4gecOsOyAjNUU0Ngor5bmHID4gYsSBbmc7ICM1RTQ3CivluYggPiBww61uZzsgIzVFNDgKK+W5iiA+IGfFjW5nOyAjNUU0QQor5bmLID4gcMOhbjsgIzVFNEIKK+W5jCA+IGh1xINuZzsgIzVFNEMKK+W5jSA+IGTEgW87ICM1RTRECivluY4gPiBtw6w7ICM1RTRFCivluY8gPiBqacSBOyAjNUU0Rgor5bmQID4gdMOpbmc7ICM1RTUwCivluZEgPiBoxatpOyAjNUU1MQor5bmSID4gemjFjW5nOyAjNUU1Mgor5bmTID4gc2jEgW47ICM1RTUzCivluZQgPiBtw6BuOyAjNUU1NAor5bmVID4gbcO5OyAjNUU1NQor5bmWID4gYmnEgW87ICM1RTU2CivluZcgPiBnw7pvOyAjNUU1Nwor5bmYID4gesOpOyAjNUU1OAor5bmZID4gbcO5OyAjNUU1OQor5bmaID4gYsSBbmc7ICM1RTVBCivluZsgPiB6aMOgbmc7ICM1RTVCCivluZwgPiBqxK1vbmc7ICM1RTVDCivluZ0gPiBjaMSDbjsgIzVFNUQKK+W5niA+IGbDujsgIzVFNUUKK+W5nyA+IHpow6w7ICM1RTVGCivluaAgPiBoxas7ICM1RTYwCivluaEgPiBmxIFuOyAjNUU2MQor5bmiID4gY2h1w6FuZzsgIzVFNjIKK+W5oyA+IGLDrDsgIzVFNjMKK+W5piA+IG3DrDsgIzVFNjYKK+W5pyA+IHFpxIFvOyAjNUU2Nwor5bmoID4gY2jEgW47ICM1RTY4CivluakgPiBmw6luOyAjNUU2OQor5bmqID4gbcOpbmc7ICM1RTZBCivluasgPiBixIFuZzsgIzVFNkIKK+W5rCA+IGNow7N1OyAjNUU2Qwor5bmtID4gbWnDqDsgIzVFNkQKK+W5riA+IGNow7o7ICM1RTZFCivlua8gPiBqacOpOyAjNUU2Rgor5bmwID4geGnEg247ICM1RTcwCivlubEgPiBsw6FuOyAjNUU3MQor5bmyID4gZ8SBbjsgIzVFNzIKK+W5syA+IHDDrW5nOyAjNUU3Mwor5bm0ID4gbmnDoW47ICM1RTc0CivlubUgPiBxacSBbjsgIzVFNzUKK+W5tiA+IGLDrG5nOyAjNUU3Ngor5bm3ID4gYsOsbmc7ICM1RTc3CivlubggPiB4w6xuZzsgIzVFNzgKK+W5uSA+IGfDoG47ICM1RTc5CivlubogPiB5xIFvOyAjNUU3QQor5bm7ID4gaHXDoG47ICM1RTdCCivlubwgPiB5w7J1OyAjNUU3Qwor5bm9ID4gecWNdTsgIzVFN0QKK+W5viA+IGrErTsgIzVFN0UKK+W5vyA+IHnEg247ICM1RTdGCivluoAgPiBwxK07ICM1RTgwCivluoEgPiB0xKtuZzsgIzVFODEKK+W6giA+IHrDqDsgIzVFODIKK+W6gyA+IGd1xINuZzsgIzVFODMKK+W6hCA+IHpodcSBbmc7ICM1RTg0CivluoUgPiBtbzsgIzVFODUKK+W6hiA+IHHDrG5nOyAjNUU4Ngor5bqHID4gYsOsOyAjNUU4Nwor5bqIID4gccOtbjsgIzVFODgKK+W6iSA+IGTDuW47ICM1RTg5CivluoogPiBjaHXDoW5nOyAjNUU4QQor5bqLID4gZ8WtaTsgIzVFOEIKK+W6jCA+IHnEgzsgIzVFOEMKK+W6jSA+IGLDoGk7ICM1RThECivluo4gPiBqacOoOyAjNUU4RQor5bqPID4geMO5OyAjNUU4Rgor5bqQID4gbMO6OyAjNUU5MAor5bqRID4gd8WtOyAjNUU5MQor5bqTID4ga8O5OyAjNUU5Mwor5bqUID4gecOsbmc7ICM1RTk0CivlupUgPiBkxK07ICM1RTk1CivlupYgPiBww6FvOyAjNUU5Ngor5bqXID4gZGnDoG47ICM1RTk3CivlupggPiB5xIE7ICM1RTk4CivlupkgPiBtacOgbzsgIzVFOTkKK+W6miA+IGfEk25nOyAjNUU5QQor5bqbID4gY8SrOyAjNUU5Qgor5bqcID4gZsWtOyAjNUU5Qwor5bqdID4gdMOzbmc7ICM1RTlECivlup4gPiBww6FuZzsgIzVFOUUKK+W6nyA+IGbDqGk7ICM1RTlGCivluqAgPiB4acOhbmc7ICM1RUEwCivluqEgPiB5xK07ICM1RUExCivluqIgPiB6aMOsOyAjNUVBMgor5bqjID4gdGnEgW87ICM1RUEzCivluqQgPiB6aMOsOyAjNUVBNAor5bqlID4geMSrdTsgIzVFQTUKK+W6piA+IGTDuTsgIzVFQTYKK+W6pyA+IHrDuW87ICM1RUE3CivluqggPiB4acSBbzsgIzVFQTgKK+W6qSA+IHTDujsgIzVFQTkKK+W6qiA+IGfFrWk7ICM1RUFBCivluqsgPiBrw7k7ICM1RUFCCivluqwgPiBww6FuZzsgIzVFQUMKK+W6rSA+IHTDrW5nOyAjNUVBRAor5bquID4gecWPdTsgIzVFQUUKK+W6ryA+IGLFqzsgIzVFQUYKK+W6sCA+IGTEq25nOyAjNUVCMAor5bqxID4gY2jElW5nOyAjNUVCMQor5bqyID4gbMOhaTsgIzVFQjIKK+W6syA+IGLEk2k7ICM1RUIzCivlurQgPiBqw607ICM1RUI0CivlurUgPiDEgW47ICM1RUI1CivlurYgPiBzaMO5OyAjNUVCNgor5bq3ID4ga8SBbmc7ICM1RUI3CivlurggPiB5xY1uZzsgIzVFQjgKK+W6uSA+IHTFrW87ICM1RUI5CivlurogPiBzxY1uZzsgIzVFQkEKK+W6uyA+IHNow7k7ICM1RUJCCivlurwgPiBxxK1uZzsgIzVFQkMKK+W6vSA+IHnDuTsgIzVFQkQKK+W6viA+IHnFrTsgIzVFQkUKK+W6vyA+IG1pw6BvOyAjNUVCRgor5buAID4gc8WNdTsgIzVFQzAKK+W7gSA+IGPDqDsgIzVFQzEKK+W7giA+IHhpxIFuZzsgIzVFQzIKK+W7gyA+IGbDqGk7ICM1RUMzCivlu4QgPiBqw6x1OyAjNUVDNAor5buFID4gaMOpOyAjNUVDNQor5buGID4gaMO5aTsgIzVFQzYKK+W7hyA+IGzDrHU7ICM1RUM3Civlu4ggPiBzaMOgOyAjNUVDOAor5buJID4gbGnDoW47ICM1RUM5Civlu4ogPiBsw6FuZzsgIzVFQ0EKK+W7iyA+IHPFjXU7ICM1RUNCCivlu4wgPiBqacOgbjsgIzVFQ0MKK+W7jSA+IHDFj3U7ICM1RUNECivlu44gPiBxxK1uZzsgIzVFQ0UKK+W7jyA+IGrDrHU7ICM1RUNGCivlu5AgPiBqw6x1OyAjNUVEMAor5buRID4gccOtbjsgIzVFRDEKK+W7kiA+IMOhbzsgIzVFRDIKK+W7kyA+IGvDuW87ICM1RUQzCivlu5QgPiBsw7N1OyAjNUVENAor5buVID4gecSrbjsgIzVFRDUKK+W7liA+IGxpw6BvOyAjNUVENgor5buXID4gZMOgaTsgIzVFRDcKK+W7mCA+IGzDuTsgIzVFRDgKK+W7mSA+IHnDrDsgIzVFRDkKK+W7miA+IGNow7o7ICM1RURBCivlu5sgPiBjaMOhbjsgIzVFREIKK+W7nCA+IHTFqzsgIzVFREMKK+W7nSA+IHPEqzsgIzVFREQKK+W7niA+IHjEq247ICM1RURFCivlu58gPiBtacOgbzsgIzVFREYKK+W7oCA+IGNoxINuZzsgIzVFRTAKK+W7oSA+IHfFrTsgIzVFRTEKK+W7oiA+IGbDqGk7ICM1RUUyCivlu6MgPiBndcSDbmc7ICM1RUUzCivlu6UgPiBrdcOgaTsgIzVFRTUKK+W7piA+IGLDrDsgIzVFRTYKK+W7pyA+IHFpw6FuZzsgIzVFRTcKK+W7qCA+IHhpw6g7ICM1RUU4Civlu6kgPiBsxK1uOyAjNUVFOQor5buqID4gbMStbjsgIzVFRUEKK+W7qyA+IGxpw6FvOyAjNUVFQgor5busID4gbMO6OyAjNUVFQwor5buuID4gecOtbmc7ICM1RUVFCivlu68gPiB4acSBbjsgIzVFRUYKK+W7sCA+IHTEq25nOyAjNUVGMAor5buxID4gecWNbmc7ICM1RUYxCivlu7IgPiBsw607ICM1RUYyCivlu7MgPiB0xKtuZzsgIzVFRjMKK+W7tCA+IHnErW47ICM1RUY0Civlu7UgPiB4w7puOyAjNUVGNQor5bu2ID4gecOhbjsgIzVFRjYKK+W7tyA+IHTDrW5nOyAjNUVGNwor5bu4ID4gZMOtOyAjNUVGOAor5bu5ID4gcMOyOyAjNUVGOQor5bu6ID4gamnDoG47ICM1RUZBCivlu7sgPiBow7ppOyAjNUVGQgor5bu8ID4gbsSDaTsgIzVFRkMKK+W7vSA+IGjDumk7ICM1RUZECivlu74gPiBnw7JuZzsgIzVFRkUKK+W7vyA+IG5pw6BuOyAjNUVGRgor5byAID4ga8SBaTsgIzVGMDAKK+W8gSA+IGJpw6BuOyAjNUYwMQor5byCID4gecOsOyAjNUYwMgor5byDID4gccOsOyAjNUYwMwor5byEID4gbsOybmc7ICM1RjA0CivlvIUgPiBmw6luOyAjNUYwNQor5byGID4gasWtOyAjNUYwNgor5byHID4gecSDbjsgIzVGMDcKK+W8iCA+IHnDrDsgIzVGMDgKK+W8iSA+IHrDoG5nOyAjNUYwOQor5byKID4gYsOsOyAjNUYwQQor5byLID4gecOsOyAjNUYwQgor5byMID4gecSrOyAjNUYwQwor5byNID4gw6hyOyAjNUYwRAor5byOID4gc8SBbjsgIzVGMEUKK+W8jyA+IHNow6w7ICM1RjBGCivlvJAgPiDDqHI7ICM1RjEwCivlvJEgPiBzaMOsOyAjNUYxMQor5bySID4gc2jDrDsgIzVGMTIKK+W8kyA+IGfFjW5nOyAjNUYxMwor5byUID4gZGnDoG87ICM1RjE0CivlvJUgPiB5xK1uOyAjNUYxNQor5byWID4gaMO5OyAjNUYxNgor5byXID4gZsO6OyAjNUYxNwor5byYID4gaMOzbmc7ICM1RjE4CivlvJkgPiB3xas7ICM1RjE5CivlvJogPiB0w7ppOyAjNUYxQQor5bybID4gY2jDrTsgIzVGMUIKK+W8nCA+IGppw6BuZzsgIzVGMUMKK+W8nSA+IGLDoDsgIzVGMUQKK+W8niA+IHNoxJVuOyAjNUYxRQor5byfID4gZMOsOyAjNUYxRgor5bygID4gemjEgW5nOyAjNUYyMAor5byhID4ganXDqTsgIzVGMjEKK+W8oiA+IHTEgW87ICM1RjIyCivlvKMgPiBmxa07ICM1RjIzCivlvKQgPiBkxK07ICM1RjI0CivlvKUgPiBtw607ICM1RjI1CivlvKYgPiB4acOhbjsgIzVGMjYKK+W8pyA+IGjDujsgIzVGMjcKK+W8qCA+IGNoxIFvOyAjNUYyOAor5bypID4gbsWtOyAjNUYyOQor5byqID4gasOsbmc7ICM1RjJBCivlvKsgPiB6aMSVbjsgIzVGMkIKK+W8rCA+IHnDrTsgIzVGMkMKK+W8rSA+IG3ErTsgIzVGMkQKK+W8riA+IHF1xIFuOyAjNUYyRQor5byvID4gd8SBbjsgIzVGMkYKK+W8sCA+IHNoxIFvOyAjNUYzMAor5byxID4gcsO5bzsgIzVGMzEKK+W8siA+IHh1xIFuOyAjNUYzMgor5byzID4gasOsbmc7ICM1RjMzCivlvLQgPiBkxatuOyAjNUYzNAor5by1ID4gemjEgW5nOyAjNUYzNQor5by2ID4gamnDoG5nOyAjNUYzNgor5by3ID4gcWnDoW5nOyAjNUYzNwor5by4ID4gcMOpbmc7ICM1RjM4CivlvLkgPiBkw6BuOyAjNUYzOQor5by6ID4gcWnDoW5nOyAjNUYzQQor5by7ID4gYsOsOyAjNUYzQgor5by8ID4gYsOsOyAjNUYzQwor5by9ID4gc2jDqDsgIzVGM0QKK+W8viA+IGTDoG47ICM1RjNFCivlvL8gPiBqacSDbjsgIzVGM0YKK+W9gCA+IGfDsnU7ICM1RjQwCivlvYIgPiBmxIE7ICM1RjQyCivlvYMgPiBiw6w7ICM1RjQzCivlvYQgPiBrxY11OyAjNUY0NAor5b2GID4gYmnDqDsgIzVGNDYKK+W9hyA+IHhpxIFvOyAjNUY0Nwor5b2IID4gZMOgbjsgIzVGNDgKK+W9iSA+IGvDuW87ICM1RjQ5CivlvYogPiBxacOhbmc7ICM1RjRBCivlvYsgPiBow7NuZzsgIzVGNEIKK+W9jCA+IG3DrTsgIzVGNEMKK+W9jSA+IGvDuW87ICM1RjRECivlvY4gPiB3xIFuOyAjNUY0RQor5b2PID4ganXDqTsgIzVGNEYKK+W9kCA+IGrDrDsgIzVGNTAKK+W9kSA+IGrDrDsgIzVGNTEKK+W9kiA+IGfFq2k7ICM1RjUyCivlvZMgPiBkxIFuZzsgIzVGNTMKK+W9lCA+IGzDuTsgIzVGNTQKK+W9lSA+IGzDuTsgIzVGNTUKK+W9liA+IHR1w6BuOyAjNUY1Ngor5b2XID4gaMO5aTsgIzVGNTcKK+W9mCA+IHpow6w7ICM1RjU4CivlvZkgPiBow7lpOyAjNUY1OQor5b2aID4gaMO5aTsgIzVGNUEKK+W9myA+IHnDrTsgIzVGNUIKK+W9nCA+IHnDrTsgIzVGNUMKK+W9nSA+IHnDrTsgIzVGNUQKK+W9niA+IHnDrTsgIzVGNUUKK+W9nyA+IGjDuW87ICM1RjVGCivlvaAgPiBow7lvOyAjNUY2MAor5b2hID4gc2jEgW47ICM1RjYxCivlvaIgPiB4w61uZzsgIzVGNjIKK+W9oyA+IHfDqW47ICM1RjYzCivlvaQgPiB0w7NuZzsgIzVGNjQKK+W9pSA+IHnDoG47ICM1RjY1CivlvaYgPiB5w6BuOyAjNUY2Ngor5b2nID4gecO5OyAjNUY2Nwor5b2oID4gY2jEqzsgIzVGNjgKK+W9qSA+IGPEg2k7ICM1RjY5CivlvaogPiBiacSBbzsgIzVGNkEKK+W9qyA+IGRpxIFvOyAjNUY2Qgor5b2sID4gYsSrbjsgIzVGNkMKK+W9rSA+IHDDqW5nOyAjNUY2RAor5b2uID4gecWPbmc7ICM1RjZFCivlva8gPiBwacSBbzsgIzVGNkYKK+W9sCA+IHpoxIFuZzsgIzVGNzAKK+W9sSA+IHnErW5nOyAjNUY3MQor5b2yID4gY2jEqzsgIzVGNzIKK+W9syA+IGNow6w7ICM1RjczCivlvbQgPiB6aMO6bzsgIzVGNzQKK+W9tSA+IHTFrW87ICM1Rjc1CivlvbYgPiBqw607ICM1Rjc2CivlvbcgPiBww6FuZzsgIzVGNzcKK+W9uCA+IHpoxY1uZzsgIzVGNzgKK+W9uSA+IHnDrDsgIzVGNzkKK+W9uiA+IHfDoW5nOyAjNUY3QQor5b27ID4gY2jDqDsgIzVGN0IKK+W9vCA+IGLErTsgIzVGN0MKK+W9vSA+IGNow607ICM1RjdECivlvb4gPiBsxK1uZzsgIzVGN0UKK+W9vyA+IGbDujsgIzVGN0YKK+W+gCA+IHfEg25nOyAjNUY4MAor5b6BID4gemjEk25nOyAjNUY4MQor5b6CID4gY8O6OyAjNUY4Mgor5b6DID4gd8SDbmc7ICM1RjgzCivlvoQgPiBqw6xuZzsgIzVGODQKK+W+hSA+IGTDoGk7ICM1Rjg1CivlvoYgPiB4xKs7ICM1Rjg2CivlvocgPiB4w7luOyAjNUY4Nwor5b6IID4gaMSVbjsgIzVGODgKK+W+iSA+IHnDoW5nOyAjNUY4OQor5b6KID4gaHXDoWk7ICM1RjhBCivlvosgPiBsx5w7ICM1RjhCCivlvowgPiBow7J1OyAjNUY4Qwor5b6NID4gd8SBOyAjNUY4RAor5b6OID4gY2jElW5nOyAjNUY4RQor5b6PID4gemjDrDsgIzVGOEYKK+W+kCA+IHjDujsgIzVGOTAKK+W+kSA+IGrDrG5nOyAjNUY5MQor5b6SID4gdMO6OyAjNUY5Mgor5b6TID4gY8Ozbmc7ICM1RjkzCivlvpUgPiBsw6FpOyAjNUY5NQor5b6WID4gY8Ozbmc7ICM1Rjk2CivlvpcgPiBkw6k7ICM1Rjk3CivlvpggPiBww6FpOyAjNUY5OAor5b6ZID4geMStOyAjNUY5OQor5b6bID4gccOsOyAjNUY5Qgor5b6cID4gY2jDoW5nOyAjNUY5Qwor5b6dID4gemjDrDsgIzVGOUQKK+W+niA+IGPDs25nOyAjNUY5RQor5b6fID4gemjFjXU7ICM1RjlGCivlvqAgPiBsw6FpOyAjNUZBMAor5b6hID4gecO5OyAjNUZBMQor5b6iID4geGnDqDsgIzVGQTIKK+W+oyA+IGppw6g7ICM1RkEzCivlvqQgPiBqacOgbjsgIzVGQTQKK+W+pSA+IGNow607ICM1RkE1CivlvqYgPiBqacSDOyAjNUZBNgor5b6nID4gYmnDoG47ICM1RkE3CivlvqggPiBodcOhbmc7ICM1RkE4CivlvqkgPiBmw7k7ICM1RkE5CivlvqogPiB4w7puOyAjNUZBQQor5b6rID4gd8SVaTsgIzVGQUIKK+W+rCA+IHDDoW5nOyAjNUZBQwor5b6tID4gecOhbzsgIzVGQUQKK+W+riA+IHfEk2k7ICM1RkFFCivlvq8gPiB4xKs7ICM1RkFGCivlvrAgPiB6aMSTbmc7ICM1RkIwCivlvrEgPiBwacOgbzsgIzVGQjEKK+W+siA+IGNow607ICM1RkIyCivlvrMgPiBkw6k7ICM1RkIzCivlvrQgPiB6aMSTbmc7ICM1RkI0CivlvrUgPiB6aMSTbmc7ICM1RkI1CivlvrYgPiBiacOoOyAjNUZCNgor5b63ID4gZMOpOyAjNUZCNwor5b64ID4gY2jFjW5nOyAjNUZCOAor5b65ID4gY2jDqDsgIzVGQjkKK+W+uiA+IGppxINvOyAjNUZCQQor5b67ID4gd8OoaTsgIzVGQkIKK+W+vCA+IGppw6BvOyAjNUZCQwor5b69ID4gaMWraTsgIzVGQkQKK+W+viA+IG3DqWk7ICM1RkJFCivlvr8gPiBsw7JuZzsgIzVGQkYKK+W/gCA+IHhpxIFuZzsgIzVGQzAKK+W/gSA+IGLDoG87ICM1RkMxCivlv4IgPiBxw7o7ICM1RkMyCivlv4MgPiB4xKtuOyAjNUZDMwor5b+EID4gc2jDuScgJ3jEq24nICdww6FuZzsgIzVGQzQKK+W/hSA+IGLDrDsgIzVGQzUKK+W/hiA+IHnDrDsgIzVGQzYKK+W/hyA+IGzDqDsgIzVGQzcKK+W/iCA+IHLDqW47ICM1RkM4Civlv4kgPiBkxIFvOyAjNUZDOQor5b+KID4gZMOsbmc7ICM1RkNBCivlv4sgPiBnxINpOyAjNUZDQgor5b+MID4gasOsOyAjNUZDQwor5b+NID4gcsSVbjsgIzVGQ0QKK+W/jiA+IHLDqW47ICM1RkNFCivlv48gPiBjaMOgbjsgIzVGQ0YKK+W/kCA+IHTEg247ICM1RkQwCivlv5EgPiB0w6g7ICM1RkQxCivlv5IgPiB0w6g7ICM1RkQyCivlv5MgPiBnxIFuOyAjNUZEMwor5b+UID4gccOsOyAjNUZENAor5b+VID4gc2jDrDsgIzVGRDUKK+W/liA+IGPFrW47ICM1RkQ2Civlv5cgPiB6aMOsOyAjNUZENwor5b+YID4gd8Ogbmc7ICM1RkQ4Civlv5kgPiBtw6FuZzsgIzVGRDkKK+W/miA+IHjEqzsgIzVGREEKK+W/myA+IGbDoW47ICM1RkRCCivlv5wgPiB5xKtuZzsgIzVGREMKK+W/nSA+IHRpxINuOyAjNUZERAor5b+eID4gbcOtbjsgIzVGREUKK+W/nyA+IG3DrW47ICM1RkRGCivlv6AgPiB6aMWNbmc7ICM1RkUwCivlv6EgPiBjaMWNbmc7ICM1RkUxCivlv6IgPiB3w7k7ICM1RkUyCivlv6MgPiBqw607ICM1RkUzCivlv6QgPiB3xa07ICM1RkU0Civlv6UgPiB4w6w7ICM1RkU1Civlv6YgPiB5w6g7ICM1RkU2Civlv6cgPiB5xY11OyAjNUZFNwor5b+oID4gd8OgbjsgIzVGRTgKK+W/qSA+IGPFjW5nOyAjNUZFOQor5b+qID4gemjFjW5nOyAjNUZFQQor5b+rID4ga3XDoGk7ICM1RkVCCivlv6wgPiB5w7k7ICM1RkVDCivlv60gPiBiacOgbjsgIzVGRUQKK+W/riA+IHpow6w7ICM1RkVFCivlv68gPiBxw607ICM1RkVGCivlv7AgPiBjw7lpOyAjNUZGMAor5b+xID4gY2jDqW47ICM1RkYxCivlv7IgPiB0w6BpOyAjNUZGMgor5b+zID4gdMO6bjsgIzVGRjMKK+W/tCA+IHFpw6FuOyAjNUZGNAor5b+1ID4gbmnDoG47ICM1RkY1Civlv7YgPiBow7puOyAjNUZGNgor5b+3ID4geMSrb25nOyAjNUZGNwor5b+4ID4gbsStdTsgIzVGRjgKK+W/uSA+IHfEg25nOyAjNUZGOQor5b+6ID4geGnEgW47ICM1RkZBCivlv7sgPiB4xKtuOyAjNUZGQgor5b+8ID4ga8SBbmc7ICM1RkZDCivlv70gPiBoxas7ICM1RkZECivlv74gPiBrw6BpOyAjNUZGRQor5b+/ID4gZsOobjsgIzVGRkYKK+aAgCA+IGh1w6FpOyAjNjAwMAor5oCBID4gdMOgaTsgIzYwMDEKK+aAgiA+IHPFj25nOyAjNjAwMgor5oCDID4gd8WtOyAjNjAwMwor5oCEID4gw7J1OyAjNjAwNAor5oCFID4gY2jDoG5nOyAjNjAwNQor5oCGID4gY2h1w6BuZzsgIzYwMDYKK+aAhyA+IGrDuTsgIzYwMDcKK+aAiCA+IHnDrDsgIzYwMDgKK+aAiSA+IGLEg287ICM2MDA5CivmgIogPiBjaMSBbzsgIzYwMEEKK+aAiyA+IG3DrW47ICM2MDBCCivmgIwgPiBwxJNpOyAjNjAwQwor5oCNID4gesO5bzsgIzYwMEQKK+aAjiA+IHrElW47ICM2MDBFCivmgI8gPiB5w6BuZzsgIzYwMEYKK+aAkCA+IGvDsnU7ICM2MDEwCivmgJEgPiBiw6BuOyAjNjAxMQor5oCSID4gbsO5OyAjNjAxMgor5oCTID4gbsOhbzsgIzYwMTMKK+aAlCA+IHpoxJNuZzsgIzYwMTQKK+aAlSA+IHDDoDsgIzYwMTUKK+aAliA+IGLDuTsgIzYwMTYKK+aAlyA+IHRpxJM7ICM2MDE3CivmgJggPiBnw7k7ICM2MDE4CivmgJkgPiBow7k7ICM2MDE5CivmgJogPiBqw7k7ICM2MDFBCivmgJsgPiBkw6E7ICM2MDFCCivmgJwgPiBsacOhbjsgIzYwMUMKK+aAnSA+IHPEqzsgIzYwMUQKK+aAniA+IGNoxY11OyAjNjAxRQor5oCfID4gZMOsOyAjNjAxRgor5oCgID4gZMOgaTsgIzYwMjAKK+aAoSA+IHnDrTsgIzYwMjEKK+aAoiA+IHTDujsgIzYwMjIKK+aAoyA+IHnDs3U7ICM2MDIzCivmgKQgPiBmxas7ICM2MDI0CivmgKUgPiBqw607ICM2MDI1CivmgKYgPiBwxJNuZzsgIzYwMjYKK+aApyA+IHjDrG5nOyAjNjAyNwor5oCoID4geXXDoG47ICM2MDI4CivmgKkgPiBuw607ICM2MDI5CivmgKogPiBndcOgaTsgIzYwMkEKK+aAqyA+IGbDujsgIzYwMkIKK+aArCA+IHjDrDsgIzYwMkMKK+aArSA+IGLDrDsgIzYwMkQKK+aAriA+IHnFjXU7ICM2MDJFCivmgK8gPiBxacOoOyAjNjAyRgor5oCwID4geHXDoG47ICM2MDMwCivmgLEgPiBjxY1uZzsgIzYwMzEKK+aAsiA+IGLErW5nOyAjNjAzMgor5oCzID4gaHXEg25nOyAjNjAzMwor5oC0ID4geMO5OyAjNjAzNAor5oC1ID4gY2jDuTsgIzYwMzUKK+aAtiA+IHDEqzsgIzYwMzYKK+aAtyA+IHjEqzsgIzYwMzcKK+aAuCA+IHjEqzsgIzYwMzgKK+aAuSA+IHTEgW47ICM2MDM5CivmgLsgPiB6xY9uZzsgIzYwM0IKK+aAvCA+IGTDuWk7ICM2MDNDCivmgL8gPiB5w6w7ICM2MDNGCivmgYAgPiBjaMStOyAjNjA0MAor5oGBID4gcsOobjsgIzYwNDEKK+aBgiA+IHjDum47ICM2MDQyCivmgYMgPiBzaMOsOyAjNjA0Mwor5oGEID4geMOsOyAjNjA0NAor5oGFID4gbMSDbzsgIzYwNDUKK+aBhiA+IGjDqW5nOyAjNjA0Ngor5oGHID4ga3XEgW5nOyAjNjA0Nwor5oGIID4gbcO6OyAjNjA0OAor5oGJID4gemjErTsgIzYwNDkKK+aBiiA+IHhpw6k7ICM2MDRBCivmgYsgPiBsacOgbjsgIzYwNEIKK+aBjCA+IHRpxIFvOyAjNjA0Qwor5oGNID4gaHXEg25nOyAjNjA0RAor5oGOID4gZGnDqTsgIzYwNEUKK+aBjyA+IGjEg287ICM2MDRGCivmgZAgPiBrxY9uZzsgIzYwNTAKK+aBkSA+IGfFrWk7ICM2MDUxCivmgZIgPiBow6luZzsgIzYwNTIKK+aBkyA+IHjEqzsgIzYwNTMKK+aBlCA+IHhpw6BvOyAjNjA1NAor5oGVID4gc2jDuTsgIzYwNTUKK+aBliA+IHPEqzsgIzYwNTYKK+aBlyA+IGt1xIM7ICM2MDU3CivmgZggPiBxxKt1OyAjNjA1OAor5oGZID4gecOgbmc7ICM2MDU5CivmgZogPiBow7lpOyAjNjA1QQor5oGbID4gaMO6aTsgIzYwNUIKK+aBnCA+IGNow6w7ICM2MDVDCivmgZ0gPiBqacOhOyAjNjA1RAor5oGeID4gecOtOyAjNjA1RQor5oGfID4geMSrb25nOyAjNjA1Rgor5oGgID4gZ3XDoGk7ICM2MDYwCivmgaEgPiBsw6xuOyAjNjA2MQor5oGiID4gaMWraTsgIzYwNjIKK+aBoyA+IHrDrDsgIzYwNjMKK+aBpCA+IHjDuTsgIzYwNjQKK+aBpSA+IGNoxK07ICM2MDY1CivmgaYgPiB4acOgbmc7ICM2MDY2CivmgacgPiBux5w7ICM2MDY3CivmgaggPiBow6huOyAjNjA2OAor5oGpID4gxJNuOyAjNjA2OQor5oGqID4ga8OoOyAjNjA2QQor5oGrID4gdMWNbmc7ICM2MDZCCivmgawgPiB0acOhbjsgIzYwNkMKK+aBrSA+IGfFjW5nOyAjNjA2RAor5oGuID4gcXXDoW47ICM2MDZFCivmga8gPiB4xKs7ICM2MDZGCivmgbAgPiBxacOgOyAjNjA3MAor5oGxID4geXXDqDsgIzYwNzEKK+aBsiA+IHDEk25nOyAjNjA3Mgor5oGzID4ga8SVbjsgIzYwNzMKK+aBtCA+IGTDqTsgIzYwNzQKK+aBtSA+IGjDuWk7ICM2MDc1CivmgbYgPiDDqDsgIzYwNzYKK+aBuCA+IHTDsm5nOyAjNjA3OAor5oG5ID4gecOgbjsgIzYwNzkKK+aBuiA+IGvEg2k7ICM2MDdBCivmgbsgPiBjw6g7ICM2MDdCCivmgbwgPiBuxINvOyAjNjA3Qwor5oG9ID4gecO5bjsgIzYwN0QKK+aBviA+IG3DoW5nOyAjNjA3RQor5oG/ID4gecWPbmc7ICM2MDdGCivmgoAgPiB5xY9uZzsgIzYwODAKK+aCgSA+IHl1xIFuOyAjNjA4MQor5oKCID4gcMSrOyAjNjA4Mgor5oKDID4ga8WtbjsgIzYwODMKK+aChCA+IHFpxINvOyAjNjA4NAor5oKFID4geXXDqDsgIzYwODUKK+aChiA+IHnDuTsgIzYwODYKK+aChyA+IHnDuTsgIzYwODcKK+aCiCA+IGppw6g7ICM2MDg4CivmgokgPiB4xKs7ICM2MDg5CivmgoogPiB6aMOpOyAjNjA4QQor5oKLID4gbMOsbjsgIzYwOEIKK+aCjCA+IHTDrDsgIzYwOEMKK+aCjSA+IGjDoG47ICM2MDhECivmgo4gPiBow6BvOyAjNjA4RQor5oKPID4gcWnDqDsgIzYwOEYKK+aCkCA+IHTDrDsgIzYwOTAKK+aCkSA+IGLDuTsgIzYwOTEKK+aCkiA+IHnDrDsgIzYwOTIKK+aCkyA+IHFpw6BuOyAjNjA5Mwor5oKUID4gaMWtaTsgIzYwOTQKK+aClSA+IHjEqzsgIzYwOTUKK+aCliA+IGLDqGk7ICM2MDk2CivmgpcgPiBtw6FuOyAjNjA5Nwor5oKYID4gecSrOyAjNjA5OAor5oKZID4gaMSTbmc7ICM2MDk5CivmgpogPiBzxY9uZzsgIzYwOUEKK+aCmyA+IHF1xIFuOyAjNjA5Qgor5oKcID4gY2jElW5nOyAjNjA5Qwor5oKdID4gaMWraTsgIzYwOUQKK+aCniA+IHfDuTsgIzYwOUUKK+aCnyA+IHfDuTsgIzYwOUYKK+aCoCA+IHnFjXU7ICM2MEEwCivmgqEgPiBsw607ICM2MEExCivmgqIgPiBsacOgbmc7ICM2MEEyCivmgqMgPiBodcOgbjsgIzYwQTMKK+aCpCA+IGPFjW5nOyAjNjBBNAor5oKlID4gecOsOyAjNjBBNQor5oKmID4geXXDqDsgIzYwQTYKK+aCpyA+IGzDrDsgIzYwQTcKK+aCqCA+IG7DrW47ICM2MEE4CivmgqkgPiBuxINvOyAjNjBBOQor5oKqID4gw6g7ICM2MEFBCivmgqsgPiBxdcOoOyAjNjBBQgor5oKsID4geHXDoW47ICM2MEFDCivmgq0gPiBxacSBbjsgIzYwQUQKK+aCriA+IHfDuTsgIzYwQUUKK+aCryA+IG3ErW47ICM2MEFGCivmgrAgPiBjw7NuZzsgIzYwQjAKK+aCsSA+IGbElWk7ICM2MEIxCivmgrIgPiBixJNpOyAjNjBCMgor5oKzID4gZMO6bzsgIzYwQjMKK+aCtCA+IGPDuWk7ICM2MEI0CivmgrUgPiBjaMOgbmc7ICM2MEI1CivmgrYgPiBtw6huOyAjNjBCNgor5oK3ID4gbMOsOyAjNjBCNwor5oK4ID4gasOsOyAjNjBCOAor5oK5ID4gZ3XDoG47ICM2MEI5CivmgrogPiBndcOgbjsgIzYwQkEKK+aCuyA+IHjDrG5nOyAjNjBCQgor5oK8ID4gZMOgbzsgIzYwQkMKK+aCvSA+IHHEqzsgIzYwQkQKK+aCviA+IGvFjW5nOyAjNjBCRQor5oK/ID4gdGnEg247ICM2MEJGCivmg4AgPiBsw7puOyAjNjBDMAor5oOBID4geMSrOyAjNjBDMQor5oOCID4ga8SDbjsgIzYwQzIKK+aDgyA+IGvFq247ICM2MEMzCivmg4QgPiBuw6w7ICM2MEM0Civmg4UgPiBxw61uZzsgIzYwQzUKK+aDhiA+IGNow7N1OyAjNjBDNgor5oOHID4gZMWrbjsgIzYwQzcKK+aDiCA+IGfFrW87ICM2MEM4Civmg4kgPiBjaMSBbjsgIzYwQzkKK+aDiiA+IGxpw6FuZzsgIzYwQ0EKK+aDiyA+IHfEg247ICM2MENCCivmg4wgPiB5dcSBbjsgIzYwQ0MKK+aDjSA+IGrEq247ICM2MENECivmg44gPiBqw6w7ICM2MENFCivmg48gPiBsw61uOyAjNjBDRgor5oOQID4gecO5OyAjNjBEMAor5oORID4gaMO5bzsgIzYwRDEKK+aDkiA+IGjDqTsgIzYwRDIKK+aDkyA+IHF1w6FuOyAjNjBEMwor5oOUID4gdMOhbjsgIzYwRDQKK+aDlSA+IHTDrDsgIzYwRDUKK+aDliA+IHTDrDsgIzYwRDYKK+aDlyA+IG5pxJM7ICM2MEQ3Civmg5ggPiB3xINuZzsgIzYwRDgKK+aDmSA+IGNow7lvOyAjNjBEOQor5oOaID4gYsWrOyAjNjBEQQor5oObID4gaMWrbjsgIzYwREIKK+aDnCA+IHjEqzsgIzYwREMKK+aDnSA+IHTEg25nOyAjNjBERAor5oOeID4geMSrbjsgIzYwREUKK+aDnyA+IHfDqWk7ICM2MERGCivmg6AgPiBow7lpOyAjNjBFMAor5oOhID4gw6g7ICM2MEUxCivmg6IgPiByxa1pOyAjNjBFMgor5oOjID4gesWPbmc7ICM2MEUzCivmg6QgPiBqacSBbjsgIzYwRTQKK+aDpSA+IHnFj25nOyAjNjBFNQor5oOmID4gZGnDoG47ICM2MEU2Civmg6cgPiBqw7k7ICM2MEU3Civmg6ggPiBjxINuOyAjNjBFOAor5oOpID4gY2jDqW5nOyAjNjBFOQor5oOqID4gZMOpOyAjNjBFQQor5oOrID4gYsOoaTsgIzYwRUIKK+aDrCA+IHFpw6g7ICM2MEVDCivmg60gPiBjw6FuOyAjNjBFRAor5oOuID4gZMOgbjsgIzYwRUUKK+aDryA+IGd1w6BuOyAjNjBFRgor5oOwID4gZMO5bzsgIzYwRjAKK+aDsSA+IG7Eg287ICM2MEYxCivmg7IgPiB5w7luOyAjNjBGMgor5oOzID4geGnEg25nOyAjNjBGMwor5oO0ID4gemjDuWk7ICM2MEY0Civmg7UgPiBkacOoOyAjNjBGNQor5oO2ID4gaHXDoW5nOyAjNjBGNgor5oO3ID4gY2jFrW47ICM2MEY3Civmg7ggPiBxw61vbmc7ICM2MEY4Civmg7kgPiByxJU7ICM2MEY5Civmg7ogPiB4xKtuZzsgIzYwRkEKK+aDuyA+IGPDqDsgIzYwRkIKK+aDvCA+IGJpxINuOyAjNjBGQwor5oO9ID4gaMWrbjsgIzYwRkQKK+aDviA+IHrFjW5nOyAjNjBGRQor5oO/ID4gdMOtOyAjNjBGRgor5oSAID4gcWnEg287ICM2MTAwCivmhIEgPiBjaMOzdTsgIzYxMDEKK+aEgiA+IGLDqGk7ICM2MTAyCivmhIMgPiB4dcSBbjsgIzYxMDMKK+aEhCA+IHfEk2k7ICM2MTA0CivmhIUgPiBnw6k7ICM2MTA1CivmhIYgPiBxacSBbjsgIzYxMDYKK+aEhyA+IHfElWk7ICM2MTA3CivmhIggPiB5w7k7ICM2MTA4CivmhIkgPiB5w7o7ICM2MTA5CivmhIogPiBiw6w7ICM2MTBBCivmhIsgPiB4dcSBbjsgIzYxMEIKK+aEjCA+IGh1w6BuOyAjNjEwQwor5oSNID4gbcStbjsgIzYxMEQKK+aEjiA+IGLDrDsgIzYxMEUKK+aEjyA+IHnDrDsgIzYxMEYKK+aEkCA+IG1pxINuOyAjNjExMAor5oSRID4gecWPbmc7ICM2MTExCivmhJIgPiBrw6BpOyAjNjExMgor5oSTID4gZMOgbmc7ICM2MTEzCivmhJQgPiB5xKtuOyAjNjExNAor5oSVID4gw6g7ICM2MTE1CivmhJYgPiBjaMOpbjsgIzYxMTYKK+aElyA+IG3DsnU7ICM2MTE3CivmhJggPiBrw6g7ICM2MTE4CivmhJkgPiBrw6g7ICM2MTE5CivmhJogPiB5w7o7ICM2MTFBCivmhJsgPiDDoGk7ICM2MTFCCivmhJwgPiBxacOoOyAjNjExQwor5oSdID4gecSDbjsgIzYxMUQKK+aEniA+IG7DuW87ICM2MTFFCivmhJ8gPiBnxINuOyAjNjExRgor5oSgID4gecO5bjsgIzYxMjAKK+aEoSA+IHrFj25nOyAjNjEyMQor5oSiID4gc8SBaTsgIzYxMjIKK+aEoyA+IGzDqW5nOyAjNjEyMwor5oSkID4gZsOobjsgIzYxMjQKK+aEpiA+IGvDuWk7ICM2MTI2CivmhKcgPiBrw7lpOyAjNjEyNwor5oSoID4gcXXDqDsgIzYxMjgKK+aEqSA+IGfFjW5nOyAjNjEyOQor5oSqID4gecO6bjsgIzYxMkEKK+aEqyA+IHPDuTsgIzYxMkIKK+aErCA+IHPDuTsgIzYxMkMKK+aErSA+IHHDrTsgIzYxMkQKK+aEriA+IHnDoW87ICM2MTJFCivmhK8gPiBzxY9uZzsgIzYxMkYKK+aEsCA+IGh1xINuZzsgIzYxMzAKK+aEsSA+IGrDrTsgIzYxMzEKK+aEsiA+IGfFrTsgIzYxMzIKK+aEsyA+IGrDuTsgIzYxMzMKK+aEtCA+IGNodcOgbmc7ICM2MTM0CivmhLUgPiBuw6w7ICM2MTM1CivmhLYgPiB4acOpOyAjNjEzNgor5oS3ID4ga8SDaTsgIzYxMzcKK+aEuCA+IHpoxJVuZzsgIzYxMzgKK+aEuSA+IHnFj25nOyAjNjEzOQor5oS6ID4gY8SDbzsgIzYxM0EKK+aEuyA+IHPDuW47ICM2MTNCCivmhLwgPiBzaMOobjsgIzYxM0MKK+aEvSA+IGLDszsgIzYxM0QKK+aEviA+IGvDoGk7ICM2MTNFCivmhL8gPiB5dcOgbjsgIzYxM0YKK+aFgCA+IHhpw6k7ICM2MTQwCivmhYEgPiBow7luOyAjNjE0MQor5oWCID4gecWPbmc7ICM2MTQyCivmhYMgPiB5xINuZzsgIzYxNDMKK+aFhCA+IGzDrDsgIzYxNDQKK+aFhSA+IHPEgW87ICM2MTQ1CivmhYYgPiB0xIFvOyAjNjE0Ngor5oWHID4gecSrbjsgIzYxNDcKK+aFiCA+IGPDrTsgIzYxNDgKK+aFiSA+IHjDuTsgIzYxNDkKK+aFiiA+IHFpw6BuOyAjNjE0QQor5oWLID4gdMOgaTsgIzYxNEIKK+aFjCA+IGh1xIFuZzsgIzYxNEMKK+aFjSA+IHnDuW47ICM2MTRECivmhY4gPiBzaMOobjsgIzYxNEUKK+aFjyA+IG3ErW5nOyAjNjE0Rgor5oWRID4gc2jDqDsgIzYxNTEKK+aFkiA+IGPDs25nOyAjNjE1Mgor5oWTID4gcGnDoG87ICM2MTUzCivmhZQgPiBtw7I7ICM2MTU0CivmhZUgPiBtw7k7ICM2MTU1CivmhZYgPiBnw7pvOyAjNjE1Ngor5oWXID4gY2jDrDsgIzYxNTcKK+aFmCA+IGPEg247ICM2MTU4CivmhZkgPiBjw6FuOyAjNjE1OQor5oWaID4gY8OhbjsgIzYxNUEKK+aFmyA+IGPDumk7ICM2MTVCCivmhZwgPiBtxK1uOyAjNjE1Qwor5oWdID4gdMOoOyAjNjE1RAor5oWeID4gemjEgW5nOyAjNjE1RQor5oWfID4gdMOybmc7ICM2MTVGCivmhaAgPiDDoG87ICM2MTYwCivmhaEgPiBzaHXEg25nOyAjNjE2MQor5oWiID4gbcOgbjsgIzYxNjIKK+aFoyA+IGd1w6BuOyAjNjE2Mwor5oWkID4gcXXDqDsgIzYxNjQKK+aFpSA+IHrDoG87ICM2MTY1CivmhaYgPiBqw6x1OyAjNjE2Ngor5oWnID4gaMO5aTsgIzYxNjcKK+aFqCA+IGvEg2k7ICM2MTY4CivmhakgPiBsacOhbjsgIzYxNjkKK+aFqiA+IMOydTsgIzYxNkEKK+aFqyA+IHPFj25nOyAjNjE2Qgor5oWsID4gasStbjsgIzYxNkMKK+aFrSA+IHnDrG47ICM2MTZECivmha4gPiBsx5w7ICM2MTZFCivmha8gPiBzaMSBbmc7ICM2MTZGCivmhbAgPiB3w6hpOyAjNjE3MAor5oWxID4gdHXDoW47ICM2MTcxCivmhbIgPiBtw6FuOyAjNjE3Mgor5oWzID4gcWnEgW47ICM2MTczCivmhbQgPiBzaMOoOyAjNjE3NAor5oW1ID4gecWNbmc7ICM2MTc1CivmhbYgPiBxw6xuZzsgIzYxNzYKK+aFtyA+IGvEgW5nOyAjNjE3Nwor5oW4ID4gZMOsOyAjNjE3OAor5oW5ID4gemjDrTsgIzYxNzkKK+aFuiA+IGzDs3U7ICM2MTdBCivmhbsgPiBqdcOgbjsgIzYxN0IKK+aFvCA+IHHEqzsgIzYxN0MKK+aFvSA+IHHEqzsgIzYxN0QKK+aFviA+IHnDuTsgIzYxN0UKK+aFvyA+IHDDrW5nOyAjNjE3Rgor5oaAID4gbGnDoW87ICM2MTgwCivmhoEgPiBjxY1uZzsgIzYxODEKK+aGgiA+IHnFjXU7ICM2MTgyCivmhoMgPiBjaMWNbmc7ICM2MTgzCivmhoQgPiB6aMOsOyAjNjE4NAor5oaFID4gdMOybmc7ICM2MTg1CivmhoYgPiBjaMSTbmc7ICM2MTg2CivmhocgPiBxw6w7ICM2MTg3CivmhoggPiBxxas7ICM2MTg4CivmhokgPiBww6luZzsgIzYxODkKK+aGiiA+IGLDqGk7ICM2MThBCivmhosgPiBiacSTOyAjNjE4Qgor5oaMID4gY2jDum47ICM2MThDCivmho0gPiBqacSBbzsgIzYxOEQKK+aGjiA+IHrEk25nOyAjNjE4RQor5oaPID4gY2jDrDsgIzYxOEYKK+aGkCA+IGxpw6FuOyAjNjE5MAor5oaRID4gcMOtbmc7ICM2MTkxCivmhpIgPiBrw7lpOyAjNjE5Mgor5oaTID4gaMO5aTsgIzYxOTMKK+aGlCA+IHFpw6FvOyAjNjE5NAor5oaVID4gY2jDqW5nOyAjNjE5NQor5oaWID4gecOsbjsgIzYxOTYKK+aGlyA+IHnDrG47ICM2MTk3CivmhpggPiB4xK07ICM2MTk4CivmhpkgPiB4xK07ICM2MTk5CivmhpogPiBkw6BuOyAjNjE5QQor5oabID4gdMOhbjsgIzYxOUIKK+aGnCA+IGTFrW87ICM2MTlDCivmhp0gPiBkw7lpOyAjNjE5RAor5oaeID4gZMO5aTsgIzYxOUUKK+aGnyA+IHPDuTsgIzYxOUYKK+aGoCA+IGp1w6k7ICM2MUEwCivmhqEgPiBjw6g7ICM2MUExCivmhqIgPiB4acSBbzsgIzYxQTIKK+aGoyA+IGbDoW47ICM2MUEzCivmhqQgPiBmw6huOyAjNjFBNAor5oalID4gbMOhbzsgIzYxQTUKK+aGpiA+IGzDoG87ICM2MUE2CivmhqcgPiBjaMWNbmc7ICM2MUE3CivmhqggPiBoxIFuOyAjNjFBOAor5oapID4gccOsOyAjNjFBOQor5oaqID4geGnDoW47ICM2MUFBCivmhqsgPiBtxK1uOyAjNjFBQgor5oasID4gasStbmc7ICM2MUFDCivmhq0gPiBsacSDbzsgIzYxQUQKK+aGriA+IHfFrTsgIzYxQUUKK+aGryA+IGPEg247ICM2MUFGCivmhrAgPiBqdcOpOyAjNjFCMAor5oaxID4gY8O5OyAjNjFCMQor5oayID4geGnDoG47ICM2MUIyCivmhrMgPiB0xINuOyAjNjFCMwor5oa0ID4gc2jDqW5nOyAjNjFCNAor5oa1ID4gcMSrOyAjNjFCNQor5oa2ID4gecOsOyAjNjFCNgor5oa3ID4gY2jFrTsgIzYxQjcKK+aGuCA+IHhpxIFuOyAjNjFCOAor5oa5ID4gbsOhbzsgIzYxQjkKK+aGuiA+IGTDoG47ICM2MUJBCivmhrsgPiB0xINuOyAjNjFCQgor5oa8ID4gasStbmc7ICM2MUJDCivmhr0gPiBzxY1uZzsgIzYxQkQKK+aGviA+IGjDoG47ICM2MUJFCivmhr8gPiBqacSBbzsgIzYxQkYKK+aHgCA+IHfDoGk7ICM2MUMwCivmh4EgPiBodcOhbjsgIzYxQzEKK+aHgiA+IGTFj25nOyAjNjFDMgor5oeDID4gccOtbjsgIzYxQzMKK+aHhCA+IHHDrW47ICM2MUM0Civmh4UgPiBxw7o7ICM2MUM1Civmh4YgPiBjxINvOyAjNjFDNgor5oeHID4ga8SVbjsgIzYxQzcKK+aHiCA+IHhpw6g7ICM2MUM4Civmh4kgPiB5w6xuZzsgIzYxQzkKK+aHiiA+IMOgbzsgIzYxQ0EKK+aHiyA+IG3DoG87ICM2MUNCCivmh4wgPiB5w6w7ICM2MUNDCivmh40gPiBsxK1uOyAjNjFDRAor5oeOID4gc8OoOyAjNjFDRQor5oePID4gasO5bjsgIzYxQ0YKK+aHkCA+IGh1w6FpOyAjNjFEMAor5oeRID4gbcOobjsgIzYxRDEKK+aHkiA+IGzEg247ICM2MUQyCivmh5MgPiDDoGk7ICM2MUQzCivmh5QgPiBsxK1uOyAjNjFENAor5oeVID4gecSBbjsgIzYxRDUKK+aHliA+IGd1xIE7ICM2MUQ2Civmh5cgPiB4acOgOyAjNjFENwor5oeYID4gY2jDrDsgIzYxRDgKK+aHmSA+IHnFrTsgIzYxRDkKK+aHmiA+IHnDrG47ICM2MURBCivmh5sgPiBkxIFpOyAjNjFEQgor5oecID4gbcOobmc7ICM2MURDCivmh50gPiDDoGk7ICM2MURECivmh54gPiBtw6luZzsgIzYxREUKK+aHnyA+IGTDuWk7ICM2MURGCivmh6AgPiBxw607ICM2MUUwCivmh6EgPiBtxY87ICM2MUUxCivmh6IgPiBsw6FuOyAjNjFFMgor5oejID4gbcOobjsgIzYxRTMKK+aHpCA+IGNow7N1OyAjNjFFNAor5oelID4gemjDrDsgIzYxRTUKK+aHpiA+IG7DuW87ICM2MUU2Civmh6cgPiBuw7lvOyAjNjFFNwor5oeoID4gecSBbjsgIzYxRTgKK+aHqSA+IHnEg25nOyAjNjFFOQor5oeqID4gYsOzOyAjNjFFQQor5oerID4gemjDrTsgIzYxRUIKK+aHrCA+IGt1w6BuZzsgIzYxRUMKK+aHrSA+IGt1w6BuZzsgIzYxRUQKK+aHriA+IHnFj3U7ICM2MUVFCivmh68gPiBmxas7ICM2MUVGCivmh7AgPiBsw611OyAjNjFGMAor5oexID4gbWnDqDsgIzYxRjEKK+aHsiA+IGNow6luZzsgIzYxRjIKK+aHtCA+IGNow6BuOyAjNjFGNAor5oe1ID4gbcOpbmc7ICM2MUY1Civmh7YgPiBsxINuOyAjNjFGNgor5oe3ID4gaHXDoWk7ICM2MUY3Civmh7ggPiB4dcOhbjsgIzYxRjgKK+aHuSA+IHLDoG5nOyAjNjFGOQor5oe6ID4gY2jDoG47ICM2MUZBCivmh7sgPiBqw6w7ICM2MUZCCivmh7wgPiBqw7k7ICM2MUZDCivmh70gPiBodcSBbjsgIzYxRkQKK+aHviA+IHNow6g7ICM2MUZFCivmh78gPiB5w6w7ICM2MUZGCivmiIAgPiBsacOgbjsgIzYyMDAKK+aIgSA+IG7Eg247ICM2MjAxCivmiIIgPiBtw607ICM2MjAyCivmiIMgPiB0xINuZzsgIzYyMDMKK+aIhCA+IGp1w6k7ICM2MjA0CivmiIUgPiBnw6BuZzsgIzYyMDUKK+aIhiA+IGfDoG5nOyAjNjIwNgor5oiHID4gZ8Ogbmc7ICM2MjA3CivmiIggPiBnxJM7ICM2MjA4CivmiIkgPiB5dcOoOyAjNjIwOQor5oiKID4gd8O5OyAjNjIwQQor5oiLID4gamnEgW47ICM2MjBCCivmiIwgPiB4xas7ICM2MjBDCivmiI0gPiBzaMO5OyAjNjIwRAor5oiOID4gcsOzbmc7ICM2MjBFCivmiI8gPiB4w6w7ICM2MjBGCivmiJAgPiBjaMOpbmc7ICM2MjEwCivmiJEgPiB3xY87ICM2MjExCivmiJIgPiBqacOoOyAjNjIxMgor5oiTID4gZ8STOyAjNjIxMwor5oiUID4gamnEgW47ICM2MjE0CivmiJUgPiBxacSBbmc7ICM2MjE1CivmiJYgPiBow7lvOyAjNjIxNgor5oiXID4gcWnEgW5nOyAjNjIxNwor5oiYID4gemjDoG47ICM2MjE4CivmiJkgPiBkw7JuZzsgIzYyMTkKK+aImiA+IHHEqzsgIzYyMUEKK+aImyA+IGppw6E7ICM2MjFCCivmiJwgPiBkacOpOyAjNjIxQwor5oidID4gesOpaTsgIzYyMUQKK+aIniA+IGppw6E7ICM2MjFFCivmiJ8gPiBqxK07ICM2MjFGCivmiKAgPiBzaMOsOyAjNjIyMAor5oihID4ga8SBbjsgIzYyMjEKK+aIoiA+IGrDrTsgIzYyMjIKK+aIoyA+IGvDumk7ICM2MjIzCivmiKQgPiBnw6BpOyAjNjIyNAor5oilID4gZMSVbmc7ICM2MjI1CivmiKYgPiB6aMOgbjsgIzYyMjYKK+aIpyA+IGNodcSBbmc7ICM2MjI3CivmiKggPiBnxJM7ICM2MjI4CivmiKkgPiBqacSDbjsgIzYyMjkKK+aIqiA+IGppw6k7ICM2MjJBCivmiKsgPiB5w7k7ICM2MjJCCivmiKwgPiBqacSDbjsgIzYyMkMKK+aIrSA+IHnEg247ICM2MjJECivmiK4gPiBsw7k7ICM2MjJFCivmiK8gPiB4w6w7ICM2MjJGCivmiLAgPiB6aMOgbjsgIzYyMzAKK+aIsSA+IHjDrDsgIzYyMzEKK+aIsiA+IHjDrDsgIzYyMzIKK+aIsyA+IGNoxatvOyAjNjIzMwor5oi0ID4gZMOgaTsgIzYyMzQKK+aItSA+IHHDujsgIzYyMzUKK+aItiA+IGjDuTsgIzYyMzYKK+aItyA+IGjDuTsgIzYyMzcKK+aIuCA+IGjDuTsgIzYyMzgKK+aIuSA+IMOoOyAjNjIzOQor5oi6ID4gc2jDrDsgIzYyM0EKK+aIuyA+IGzDrDsgIzYyM0IKK+aIvCA+IG3Eg287ICM2MjNDCivmiL0gPiBow7k7ICM2MjNECivmiL4gPiBsw6w7ICM2MjNFCivmiL8gPiBmw6FuZzsgIzYyM0YKK+aJgCA+IHPFrW87ICM2MjQwCivmiYEgPiBiacSDbjsgIzYyNDEKK+aJgiA+IGRpw6BuOyAjNjI0Mgor5omDID4gasSrb25nOyAjNjI0Mwor5omEID4gc2jEg25nOyAjNjI0NAor5omFID4gecOtOyAjNjI0NQor5omGID4gecStOyAjNjI0Ngor5omHID4gc2jDoG47ICM2MjQ3CivmiYggPiBow7k7ICM2MjQ4CivmiYkgPiBmxJNpOyAjNjI0OQor5omKID4gecSDbjsgIzYyNEEKK+aJiyA+IHNoxY91OyAjNjI0Qgor5omMID4gdMyEJyAnc2jFj3UnICdww6FuZzsgIzYyNEMKK+aJjSA+IGPDoWk7ICM2MjRECivmiY4gPiB6aMSBOyAjNjI0RQor5omPID4gccOtdTsgIzYyNEYKK+aJkCA+IGzDqDsgIzYyNTAKK+aJkSA+IGLFqzsgIzYyNTEKK+aJkiA+IGLEgTsgIzYyNTIKK+aJkyA+IGTEgzsgIzYyNTMKK+aJlCA+IHLEk25nOyAjNjI1NAor5omVID4gZsO6OyAjNjI1NQor5omXID4gesOgaTsgIzYyNTcKK+aJmCA+IHTFq287ICM2MjU4CivmiZkgPiB6aMOgbmc7ICM2MjU5CivmiZogPiBkacSBbzsgIzYyNUEKK+aJmyA+IGvDoW5nOyAjNjI1Qgor5omcID4gecWrOyAjNjI1Qwor5omdID4ga8WrOyAjNjI1RAor5omeID4gaMOgbjsgIzYyNUUKK+aJnyA+IHNoxJNuOyAjNjI1Rgor5omgID4gY2jEgTsgIzYyNjAKK+aJoSA+IHnErTsgIzYyNjEKK+aJoiA+IGfFrTsgIzYyNjIKK+aJoyA+IGvDsnU7ICM2MjYzCivmiaQgPiB3w7k7ICM2MjY0CivmiaUgPiB0xatvOyAjNjI2NQor5ommID4gcWnEgW47ICM2MjY2CivmiacgPiB6aMOtOyAjNjI2Nwor5omoID4gcsOobjsgIzYyNjgKK+aJqSA+IGvDuW87ICM2MjY5CivmiaogPiBtw6luOyAjNjI2QQor5omrID4gc8SDbzsgIzYyNkIKK+aJrCA+IHnDoW5nOyAjNjI2Qwor5omtID4gbsStdTsgIzYyNkQKK+aJriA+IGLDoG47ICM2MjZFCivmia8gPiBjaMSVOyAjNjI2Rgor5omwID4gcsSDbzsgIzYyNzAKK+aJsSA+IHjEqzsgIzYyNzEKK+aJsiA+IHFpw6FuOyAjNjI3Mgor5omzID4gYsSBbjsgIzYyNzMKK+aJtCA+IGppw6E7ICM2Mjc0CivmibUgPiB5w7o7ICM2Mjc1CivmibYgPiBmw7o7ICM2Mjc2CivmibcgPiDDoG87ICM2Mjc3CivmibggPiB4xKs7ICM2Mjc4CivmibkgPiBwxKs7ICM2Mjc5CivmibogPiB6aMStOyAjNjI3QQor5om7ID4gesOsOyAjNjI3Qgor5om8ID4gw6g7ICM2MjdDCivmib0gPiBkw7luOyAjNjI3RAor5om+ID4gemjEg287ICM2MjdFCivmib8gPiBjaMOpbmc7ICM2MjdGCivmioAgPiBqw6w7ICM2MjgwCivmioEgPiB5xINuOyAjNjI4MQor5oqCID4ga3XDoW5nOyAjNjI4Mgor5oqDID4gYmnDoG47ICM2MjgzCivmioQgPiBjaMSBbzsgIzYyODQKK+aKhSA+IGrFqzsgIzYyODUKK+aKhiA+IHfDqG47ICM2Mjg2CivmiocgPiBow7o7ICM2Mjg3CivmioggPiB5dcOoOyAjNjI4OAor5oqJID4ganXDqTsgIzYyODkKK+aKiiA+IGLEgzsgIzYyOEEKK+aKiyA+IHHDrG47ICM2MjhCCivmiowgPiB6aMSVbjsgIzYyOEMKK+aKjSA+IHpoxJVuZzsgIzYyOEQKK+aKjiA+IHnFrW47ICM2MjhFCivmio8gPiB3w6FuOyAjNjI4Rgor5oqQID4gbsO5OyAjNjI5MAor5oqRID4gecOsOyAjNjI5MQor5oqSID4gc2jFqzsgIzYyOTIKK+aKkyA+IHpodcSBOyAjNjI5Mwor5oqUID4gcMOzdTsgIzYyOTQKK+aKlSA+IHTDs3U7ICM2Mjk1CivmipYgPiBkxY91OyAjNjI5Ngor5oqXID4ga8Ogbmc7ICM2Mjk3CivmipggPiB6aMOpOyAjNjI5OAor5oqZID4gcMOzdTsgIzYyOTkKK+aKmiA+IGbFrTsgIzYyOUEKK+aKmyA+IHDEgW87ICM2MjlCCivmipwgPiBiw6E7ICM2MjlDCivmip0gPiDEg287ICM2MjlECivmip4gPiB6w6k7ICM2MjlFCivmip8gPiB0dcOhbjsgIzYyOUYKK+aKoCA+IGvFjXU7ICM2MkEwCivmiqEgPiBsw7puOyAjNjJBMQor5oqiID4gcWnEg25nOyAjNjJBMgor5oqkID4gaMO5OyAjNjJBNAor5oqlID4gYsOgbzsgIzYyQTUKK+aKpiA+IGLErW5nOyAjNjJBNgor5oqnID4gemjErTsgIzYyQTcKK+aKqCA+IHDEk25nOyAjNjJBOAor5oqpID4gdMSBbjsgIzYyQTkKK+aKqiA+IHDFqzsgIzYyQUEKK+aKqyA+IHDEqzsgIzYyQUIKK+aKrCA+IHTDoWk7ICM2MkFDCivmiq0gPiB5xINvOyAjNjJBRAor5oquID4gemjElW47ICM2MkFFCivmiq8gPiB6aMSBOyAjNjJBRgor5oqwID4gecSDbmc7ICM2MkIwCivmirEgPiBiw6BvOyAjNjJCMQor5oqyID4gaMSTOyAjNjJCMgor5oqzID4gbsStOyAjNjJCMwor5oq0ID4gecOsOyAjNjJCNAor5oq1ID4gZMStOyAjNjJCNQor5oq2ID4gY2jDrDsgIzYyQjYKK+aKtyA+IHDEqzsgIzYyQjcKK+aKuCA+IHrEgTsgIzYyQjgKK+aKuSA+IG3FjzsgIzYyQjkKK+aKuiA+IG3FjzsgIzYyQkEKK+aKuyA+IHNow6huOyAjNjJCQgor5oq8ID4gecSBOyAjNjJCQwor5oq9ID4gY2jFjXU7ICM2MkJECivmir4gPiBxxas7ICM2MkJFCivmir8gPiBtxK1uOyAjNjJCRgor5ouAID4gY2jDuTsgIzYyQzAKK+aLgSA+IGppxIE7ICM2MkMxCivmi4IgPiBmw7o7ICM2MkMyCivmi4MgPiB6aMSDbjsgIzYyQzMKK+aLhCA+IHpoxa07ICM2MkM0Civmi4UgPiBkw6BuOyAjNjJDNQor5ouGID4gY2jEgWk7ICM2MkM2Civmi4cgPiBtxa07ICM2MkM3Civmi4ggPiBuacOhbjsgIzYyQzgKK+aLiSA+IGzEgTsgIzYyQzkKK+aLiiA+IGbFrTsgIzYyQ0EKK+aLiyA+IHDEgW87ICM2MkNCCivmi4wgPiBiw6BuOyAjNjJDQwor5ouNID4gcMSBaTsgIzYyQ0QKK+aLjiA+IGzEq25nOyAjNjJDRQor5ouPID4gbsOhOyAjNjJDRgor5ouQID4gZ3XEg2k7ICM2MkQwCivmi5EgPiBxacOhbjsgIzYyRDEKK+aLkiA+IGrDuTsgIzYyRDIKK+aLkyA+IHTDuW87ICM2MkQzCivmi5QgPiBiw6E7ICM2MkQ0Civmi5UgPiB0xatvOyAjNjJENQor5ouWID4gdMWrbzsgIzYyRDYKK+aLlyA+IMSDbzsgIzYyRDcKK+aLmCA+IGrFqzsgIzYyRDgKK+aLmSA+IHpow7pvOyAjNjJEOQor5ouaID4gcMOgbjsgIzYyREEKK+aLmyA+IHpoxIFvOyAjNjJEQgor5oucID4gYsOgaTsgIzYyREMKK+aLnSA+IGLDoGk7ICM2MkRECivmi54gPiBkxK07ICM2MkRFCivmi58gPiBuxK07ICM2MkRGCivmi6AgPiBqw7k7ICM2MkUwCivmi6EgPiBrw7lvOyAjNjJFMQor5ouiID4gbMWPbmc7ICM2MkUyCivmi6MgPiBqacSDbjsgIzYyRTMKK+aLpSA+IHnFj25nOyAjNjJFNQor5oumID4gbMOhbjsgIzYyRTYKK+aLpyA+IG7DrW5nOyAjNjJFNwor5ouoID4gYsWNOyAjNjJFOAor5oupID4gesOpOyAjNjJFOQor5ouqID4gcWnEgW47ICM2MkVBCivmi6sgPiBow6luOyAjNjJFQgor5ousID4gZ3XEgTsgIzYyRUMKK+aLrSA+IHNow6w7ICM2MkVECivmi64gPiBqacOpOyAjNjJFRQor5ouvID4gemjElW5nOyAjNjJFRgor5ouwID4gbsStbjsgIzYyRjAKK+aLsSA+IGfFj25nOyAjNjJGMQor5ouyID4gZ8WPbmc7ICM2MkYyCivmi7MgPiBxdcOhbjsgIzYyRjMKK+aLtCA+IHNodcSBbjsgIzYyRjQKK+aLtSA+IGPDum47ICM2MkY1Civmi7YgPiB6xINuOyAjNjJGNgor5ou3ID4ga8SDbzsgIzYyRjcKK+aLuCA+IGNoxK07ICM2MkY4Civmi7kgPiB4acOpOyAjNjJGOQor5ou6ID4gY8OoOyAjNjJGQQor5ou7ID4gaMWraTsgIzYyRkIKK+aLvCA+IHDEq247ICM2MkZDCivmi70gPiB6aHXEgWk7ICM2MkZECivmi74gPiBzaMOtOyAjNjJGRQor5ou/ID4gbsOhOyAjNjJGRgor5oyAID4gYsOyOyAjNjMwMAor5oyBID4gY2jDrTsgIzYzMDEKK+aMgiA+IGd1w6A7ICM2MzAyCivmjIMgPiB6aMOsOyAjNjMwMwor5oyEID4ga8O5bzsgIzYzMDQKK+aMhSA+IGTFrW87ICM2MzA1CivmjIYgPiBkxa1vOyAjNjMwNgor5oyHID4gemjErTsgIzYzMDcKK+aMiCA+IHFpw6g7ICM2MzA4CivmjIkgPiDDoG47ICM2MzA5CivmjIogPiBuw7JuZzsgIzYzMEEKK+aMiyA+IHpow6huOyAjNjMwQgor5oyMID4gZ8OpOyAjNjMwQwor5oyNID4gamnDoG87ICM2MzBECivmjI4gPiBrxas7ICM2MzBFCivmjI8gPiBkw7JuZzsgIzYzMEYKK+aMkCA+IHLDujsgIzYzMTAKK+aMkSA+IHRpxIFvOyAjNjMxMQor5oySID4gbGnDqDsgIzYzMTIKK+aMkyA+IHpoxIE7ICM2MzEzCivmjJQgPiBsx5o7ICM2MzE0CivmjJUgPiBkacOpOyAjNjMxNQor5oyWID4gd8SBOyAjNjMxNgor5oyXID4ganXDqTsgIzYzMTcKK+aMmSA+IGrFrTsgIzYzMTkKK+aMmiA+IHpow6w7ICM2MzFBCivmjJsgPiBsdcOhbjsgIzYzMUIKK+aMnCA+IHnDoDsgIzYzMUMKK+aMnSA+IHpodcSBOyAjNjMxRAor5oyeID4gdMOgOyAjNjMxRQor5oyfID4geGnDqTsgIzYzMUYKK+aMoCA+IG7DoW87ICM2MzIwCivmjKEgPiBkxINuZzsgIzYzMjEKK+aMoiA+IGppxINvOyAjNjMyMgor5oyjID4gemjEk25nOyAjNjMyMwor5oykID4gasStOyAjNjMyNAor5oylID4gaMWraTsgIzYzMjUKK+aMpiA+IHjDum47ICM2MzI2CivmjKggPiDEgWk7ICM2MzI4CivmjKkgPiB0xatvOyAjNjMyOQor5oyqID4gbsO6bzsgIzYzMkEKK+aMqyA+IGPDuW87ICM2MzJCCivmjKwgPiBiw7M7ICM2MzJDCivmjK0gPiBnxJVuZzsgIzYzMkQKK+aMriA+IHTErTsgIzYzMkUKK+aMryA+IHpow6huOyAjNjMyRgor5oywID4gY2jDqW5nOyAjNjMzMAor5oyxID4gc8WrbzsgIzYzMzEKK+aMsiA+IHPFq287ICM2MzMyCivmjLMgPiBrxJNuZzsgIzYzMzMKK+aMtCA+IG3ElWk7ICM2MzM0CivmjLUgPiBsw7JuZzsgIzYzMzUKK+aMtiA+IGrDujsgIzYzMzYKK+aMtyA+IHDDqW5nOyAjNjMzNwor5oy4ID4gamnEg247ICM2MzM4CivmjLkgPiB5w6w7ICM2MzM5CivmjLogPiB0xK1uZzsgIzYzM0EKK+aMuyA+IHNoxIFuOyAjNjMzQgor5oy8ID4gbsO5bzsgIzYzM0MKK+aMvSA+IHfEg247ICM2MzNECivmjL4gPiB4acOpOyAjNjMzRQor5oy/ID4gY2jEgTsgIzYzM0YKK+aNgCA+IGbEk25nOyAjNjM0MAor5o2BID4gamnEg287ICM2MzQxCivmjYIgPiB3xa07ICM2MzQyCivmjYMgPiBqw7luOyAjNjM0Mwor5o2EID4gasOsdTsgIzYzNDQKK+aNhSA+IHTFj25nOyAjNjM0NQor5o2GID4ga8WtbjsgIzYzNDYKK+aNhyA+IGjDuW87ICM2MzQ3CivmjYggPiB0w7o7ICM2MzQ4CivmjYkgPiB6aMWrbzsgIzYzNDkKK+aNiiA+IHDDs3U7ICM2MzRBCivmjYsgPiBsw6g7ICM2MzRCCivmjYwgPiBixIE7ICM2MzRDCivmjY0gPiBow6BuOyAjNjM0RAor5o2OID4gc2jEgW87ICM2MzRFCivmjY8gPiBuacSTOyAjNjM0Rgor5o2QID4ganXEgW47ICM2MzUwCivmjZEgPiB6w6k7ICM2MzUxCivmjZIgPiBzxY9uZzsgIzYzNTIKK+aNkyA+IHnDqTsgIzYzNTMKK+aNlCA+IGp1w6k7ICM2MzU0CivmjZUgPiBixa07ICM2MzU1CivmjZYgPiBodcOhbjsgIzYzNTYKK+aNlyA+IGLDuTsgIzYzNTcKK+aNmCA+IHrDuW47ICM2MzU4CivmjZkgPiB5w6w7ICM2MzU5CivmjZogPiB6aMSBaTsgIzYzNUEKK+aNmyA+IGzHmjsgIzYzNUIKK+aNnCA+IHPFjXU7ICM2MzVDCivmjZ0gPiB0xatvOyAjNjM1RAor5o2eID4gbMSBbzsgIzYzNUUKK+aNnyA+IHPFrW47ICM2MzVGCivmjaAgPiBixIFuZzsgIzYzNjAKK+aNoSA+IGppxINuOyAjNjM2MQor5o2iID4gaHXDoG47ICM2MzYyCivmjaMgPiBkxINvOyAjNjM2Mwor5o2lID4gd8OgbjsgIzYzNjUKK+aNpiA+IHHDrW47ICM2MzY2CivmjacgPiBwxJVuZzsgIzYzNjcKK+aNqCA+IHNoxJU7ICM2MzY4CivmjakgPiBsacOoOyAjNjM2OQor5o2qID4gbcOtbjsgIzYzNkEKK+aNqyA+IG3DqW47ICM2MzZCCivmjawgPiBmxa07ICM2MzZDCivmja0gPiBixINpOyAjNjM2RAor5o2uID4gasO5OyAjNjM2RQor5o2vID4gZMSDbzsgIzYzNkYKK+aNsCA+IHfFjzsgIzYzNzAKK+aNsSA+IMOhaTsgIzYzNzEKK+aNsiA+IGp1xINuOyAjNjM3Mgor5o2zID4geXXDqDsgIzYzNzMKK+aNtCA+IHrFj25nOyAjNjM3NAor5o21ID4gY2jElW47ICM2Mzc1CivmjbYgPiBjaMO6aTsgIzYzNzYKK+aNtyA+IGppw6k7ICM2Mzc3CivmjbggPiB0xas7ICM2Mzc4CivmjbkgPiBiw6huOyAjNjM3OQor5o26ID4gbsOgOyAjNjM3QQor5o27ID4gbmnEg247ICM2MzdCCivmjbwgPiBuw7pvOyAjNjM3Qwor5o29ID4gesO6OyAjNjM3RAor5o2+ID4gd8OyOyAjNjM3RQor5o2/ID4geMSrOyAjNjM3Rgor5o6AID4geGnEgW47ICM2MzgwCivmjoEgPiBjaMOpbmc7ICM2MzgxCivmjoIgPiBkacSBbjsgIzYzODIKK+aOgyA+IHPEg287ICM2MzgzCivmjoQgPiBsw7puOyAjNjM4NAor5o6FID4gccOsbmc7ICM2Mzg1CivmjoYgPiBnxIFuZzsgIzYzODYKK+aOhyA+IGTDum87ICM2Mzg3CivmjoggPiBzaMOydTsgIzYzODgKK+aOiSA+IGRpw6BvOyAjNjM4OQor5o6KID4gcMOzdTsgIzYzOEEKK+aOiyA+IGTErTsgIzYzOEIKK+aOjCA+IHpoxINuZzsgIzYzOEMKK+aOjSA+IGfFrW47ICM2MzhECivmjo4gPiBqxK07ICM2MzhFCivmjo8gPiB0xIFvOyAjNjM4Rgor5o6QID4gcWnEgTsgIzYzOTAKK+aOkSA+IHHDrTsgIzYzOTEKK+aOkiA+IHDDoWk7ICM2MzkyCivmjpMgPiBzaMO6OyAjNjM5Mwor5o6UID4gcWnEgW47ICM2Mzk0CivmjpUgPiBsw6xuZzsgIzYzOTUKK+aOliA+IHnDrDsgIzYzOTYKK+aOlyA+IHnDoDsgIzYzOTcKK+aOmCA+IGp1w6k7ICM2Mzk4CivmjpkgPiB6aMSTbmc7ICM2Mzk5CivmjpogPiBsacSDbmc7ICM2MzlBCivmjpsgPiBndcOgOyAjNjM5Qgor5o6cID4gecStOyAjNjM5Qwor5o6dID4gaMO5bzsgIzYzOUQKK+aOniA+IHNow6BuOyAjNjM5RQor5o6fID4gemjElW5nOyAjNjM5Rgor5o6gID4gbMecZTsgIzYzQTAKK+aOoSA+IGPEg2k7ICM2M0ExCivmjqIgPiB0w6BuOyAjNjNBMgor5o6jID4gY2jDqDsgIzYzQTMKK+aOpCA+IGLEq25nOyAjNjNBNAor5o6lID4gamnEkzsgIzYzQTUKK+aOpiA+IHTDrDsgIzYzQTYKK+aOpyA+IGvDsm5nOyAjNjNBNwor5o6oID4gdMWraTsgIzYzQTgKK+aOqSA+IHnEg247ICM2M0E5CivmjqogPiBjw7lvOyAjNjNBQQor5o6rID4gesWNdTsgIzYzQUIKK+aOrCA+IGrDujsgIzYzQUMKK+aOrSA+IHRpw6BuOyAjNjNBRAor5o6uID4gcWnDoW47ICM2M0FFCivmjq8gPiBrw6huOyAjNjNBRgor5o6wID4gYsSBaTsgIzYzQjAKK+aOsSA+IHNoxY91OyAjNjNCMQor5o6yID4gamnEkzsgIzYzQjIKK+aOsyA+IGzFrTsgIzYzQjMKK+aOtCA+IGfDum87ICM2M0I0CivmjrcgPiB6aMOtOyAjNjNCNwor5o64ID4gZMSDbjsgIzYzQjgKK+aOuiA+IHhpxIFuOyAjNjNCQQor5o67ID4gc8SBbzsgIzYzQkIKK+aOvCA+IGd1w6BuOyAjNjNCQwor5o69ID4gcMOobmc7ICM2M0JECivmjr4gPiB5dcOgbjsgIzYzQkUKK+aOvyA+IG7DuW87ICM2M0JGCivmj4AgPiBqacSDbjsgIzYzQzAKK+aPgSA+IHpoxJNuOyAjNjNDMQor5o+CID4gasSrdTsgIzYzQzIKK+aPgyA+IGppxIFuOyAjNjNDMwor5o+EID4gecO6OyAjNjNDNAor5o+FID4gecOhbjsgIzYzQzUKK+aPhiA+IGvDumk7ICM2M0M2Civmj4cgPiBuxINuOyAjNjNDNwor5o+IID4gaMWNbmc7ICM2M0M4Civmj4kgPiByw7N1OyAjNjNDOQor5o+KID4gcMOsOyAjNjNDQQor5o+LID4gd8STaTsgIzYzQ0IKK+aPjCA+IHPEgWk7ICM2M0NDCivmj40gPiB6w7J1OyAjNjNDRAor5o+OID4geHXEgW47ICM2M0NFCivmj48gPiBtacOhbzsgIzYzQ0YKK+aPkCA+IHTDrTsgIzYzRDAKK+aPkSA+IG5pxJM7ICM2M0QxCivmj5IgPiBjaMSBOyAjNjNEMgor5o+TID4gc2jDrDsgIzYzRDMKK+aPlCA+IHrFj25nOyAjNjNENAor5o+VID4gemjDqG47ICM2M0Q1Civmj5YgPiB5xKs7ICM2M0Q2Civmj5cgPiBzaMWtbjsgIzYzRDcKK+aPmCA+IGjDqW5nOyAjNjNEOAor5o+ZID4gYmnDoG47ICM2M0Q5Civmj5ogPiB5w6FuZzsgIzYzREEKK+aPmyA+IGh1w6BuOyAjNjNEQgor5o+cID4gecSDbjsgIzYzREMKK+aPnSA+IHp1w6BuOyAjNjNERAor5o+eID4gxINuOyAjNjNERQor5o+fID4geMWrOyAjNjNERgor5o+gID4gecOgOyAjNjNFMAor5o+hID4gd8OyOyAjNjNFMQor5o+iID4ga8OoOyAjNjNFMgor5o+jID4gY2h1xINpOyAjNjNFMwor5o+kID4gasOtOyAjNjNFNAor5o+lID4gdMOsOyAjNjNFNQor5o+mID4gbMOhOyAjNjNFNgor5o+nID4gbMOgOyAjNjNFNwor5o+oID4gY2jDqW5nOyAjNjNFOAor5o+pID4ga8SBaTsgIzYzRTkKK+aPqiA+IGrEq3U7ICM2M0VBCivmj6sgPiBqxKt1OyAjNjNFQgor5o+sID4gdMO6OyAjNjNFQwor5o+tID4gamnEkzsgIzYzRUQKK+aPriA+IGjFq2k7ICM2M0VFCivmj68gPiBnxJNuZzsgIzYzRUYKK+aPsCA+IGNow7JuZzsgIzYzRjAKK+aPsSA+IHNow7lvOyAjNjNGMQor5o+yID4gc2jDqTsgIzYzRjIKK+aPsyA+IHhpw6g7ICM2M0YzCivmj7QgPiB5dcOhbjsgIzYzRjQKK+aPtSA+IHFpw6FuOyAjNjNGNQor5o+2ID4gecOpOyAjNjNGNgor5o+3ID4gY2jEgTsgIzYzRjcKK+aPuCA+IHpoxIE7ICM2M0Y4Civmj7kgPiBixJNpOyAjNjNGOQor5o+6ID4gecOhbzsgIzYzRkEKK+aPvSA+IGzEg247ICM2M0ZECivmj74gPiB3w6huOyAjNjNGRQor5o+/ID4gccOsbjsgIzYzRkYKK+aQgCA+IGNoxIFuOyAjNjQwMAor5pCBID4gZ8STOyAjNjQwMQor5pCCID4gbMWPdTsgIzY0MDIKK+aQgyA+IHrFj25nOyAjNjQwMwor5pCEID4gZ8STbmc7ICM2NDA0CivmkIUgPiBqacSDbzsgIzY0MDUKK+aQhiA+IGfDsnU7ICM2NDA2CivmkIcgPiBxw6xuOyAjNjQwNwor5pCIID4gecWPbmc7ICM2NDA4CivmkIkgPiBxdcOoOyAjNjQwOQor5pCKID4gY2jFjXU7ICM2NDBBCivmkIsgPiBjaMStOyAjNjQwQgor5pCMID4gemjEg247ICM2NDBDCivmkI0gPiBzxa1uOyAjNjQwRAor5pCOID4gc8WrbjsgIzY0MEUKK+aQjyA+IGLDszsgIzY0MEYKK+aQkCA+IGNow7k7ICM2NDEwCivmkJEgPiByxY9uZzsgIzY0MTEKK+aQkiA+IGLDqG5nOyAjNjQxMgor5pCTID4gY8WrbzsgIzY0MTMKK+aQlCA+IHPEgW87ICM2NDE0CivmkJUgPiBrw6g7ICM2NDE1CivmkJYgPiB5w6FvOyAjNjQxNgor5pCXID4gZMSDbzsgIzY0MTcKK+aQmCA+IHpoxKs7ICM2NDE4CivmkJkgPiBuw7k7ICM2NDE5CivmkJogPiB4acOpOyAjNjQxQQor5pCbID4gamnEgW47ICM2NDFCCivmkJwgPiBzxY11OyAjNjQxQwor5pCdID4gccStdTsgIzY0MUQKK+aQniA+IGfEg287ICM2NDFFCivmkJ8gPiB4acSDbjsgIzY0MUYKK+aQoCA+IHNow7lvOyAjNjQyMAor5pChID4gc8SDbmc7ICM2NDIxCivmkKIgPiBqw6xuOyAjNjQyMgor5pCjID4gbWnDqDsgIzY0MjMKK+aQpCA+IMOoOyAjNjQyNAor5pClID4gY2jDumk7ICM2NDI1CivmkKYgPiBuw7lvOyAjNjQyNgor5pCnID4gc2jEgW47ICM2NDI3CivmkKggPiB0w6A7ICM2NDI4CivmkKkgPiBqacOpOyAjNjQyOQor5pCqID4gdMOhbmc7ICM2NDJBCivmkKsgPiBww6FuOyAjNjQyQgor5pCsID4gYsSBbjsgIzY0MkMKK+aQrSA+IGTEgTsgIzY0MkQKK+aQriA+IGzDrDsgIzY0MkUKK+aQryA+IHTEgW87ICM2NDJGCivmkLAgPiBow7o7ICM2NDMwCivmkLEgPiB6aMOsOyAjNjQzMQor5pCyID4gd8SBOyAjNjQzMgor5pCzID4geGnDoTsgIzY0MzMKK+aQtCA+IHFpxIFuOyAjNjQzNAor5pC1ID4gd8OobjsgIzY0MzUKK+aQtiA+IHFpxINuZzsgIzY0MzYKK+aQtyA+IHRpw6FuOyAjNjQzNwor5pC4ID4gemjEk247ICM2NDM4CivmkLkgPiDDqDsgIzY0MzkKK+aQuiA+IHjEqzsgIzY0M0EKK+aQuyA+IG7DuW87ICM2NDNCCivmkLwgPiBxdcOhbjsgIzY0M0MKK+aQvSA+IGNow6E7ICM2NDNECivmkL4gPiB6aMOgOyAjNjQzRQor5pC/ID4gZ8OpOyAjNjQzRgor5pGAID4gd8WtOyAjNjQ0MAor5pGBID4gw6huOyAjNjQ0MQor5pGCID4gc2jDqDsgIzY0NDIKK+aRgyA+IGvDoW5nOyAjNjQ0Mwor5pGEID4gc2jDqDsgIzY0NDQKK+aRhSA+IHNoxas7ICM2NDQ1CivmkYYgPiBixINpOyAjNjQ0Ngor5pGHID4gecOhbzsgIzY0NDcKK+aRiCA+IGLDrG47ICM2NDQ4CivmkYkgPiBzxY11OyAjNjQ0OQor5pGKID4gdMSBbjsgIzY0NEEKK+aRiyA+IHPDoDsgIzY0NEIKK+aRjCA+IGNoxINuOyAjNjQ0Qwor5pGNID4gc8WrbzsgIzY0NEQKK+aRjiA+IGxpw6FvOyAjNjQ0RQor5pGPID4gY2jFjW5nOyAjNjQ0Rgor5pGQID4gY2h1xIFuZzsgIzY0NTAKK+aRkSA+IGfDum87ICM2NDUxCivmkZIgPiBiw6xuZzsgIzY0NTIKK+aRkyA+IGbDqW5nOyAjNjQ1Mwor5pGUID4gc2h1xIFpOyAjNjQ1NAor5pGVID4gZMOsOyAjNjQ1NQor5pGWID4gccOsOyAjNjQ1Ngor5pGXID4gc291OyAjNjQ1Nwor5pGYID4gemjEgWk7ICM2NDU4CivmkZkgPiBsacSDbjsgIzY0NTkKK+aRmiA+IHTDoW5nOyAjNjQ1QQor5pGbID4gY2jEqzsgIzY0NUIKK+aRnCA+IGd1w6BuOyAjNjQ1Qwor5pGdID4gbMO5OyAjNjQ1RAor5pGeID4gbMO6bzsgIzY0NUUKK+aRnyA+IGzFj3U7ICM2NDVGCivmkaAgPiB6xY9uZzsgIzY0NjAKK+aRoSA+IGfDoGk7ICM2NDYxCivmkaIgPiBow7k7ICM2NDYyCivmkaMgPiB6aMSBOyAjNjQ2Mwor5pGkID4gY2h1xINuZzsgIzY0NjQKK+aRpSA+IHTDoG5nOyAjNjQ2NQor5pGmID4gaHXDoDsgIzY0NjYKK+aRpyA+IGPFq2k7ICM2NDY3CivmkaggPiBuw6FpOyAjNjQ2OAor5pGpID4gbcOzOyAjNjQ2OQor5pGqID4gamnEgW5nOyAjNjQ2QQor5pGrID4gZ8WraTsgIzY0NkIKK+aRrCA+IHnDrG5nOyAjNjQ2Qwor5pGtID4gemjDrTsgIzY0NkQKK+aRriA+IMOhbzsgIzY0NkUKK+aRryA+IHpow6w7ICM2NDZGCivmkbAgPiBuacOoOyAjNjQ3MAor5pGxID4gbcOhbjsgIzY0NzEKK+aRsiA+IHNow6BuOyAjNjQ3Mgor5pGzID4ga8WNdTsgIzY0NzMKK+aRtCA+IHNoxas7ICM2NDc0CivmkbUgPiBzxa1vOyAjNjQ3NQor5pG2ID4gdHXDoW47ICM2NDc2CivmkbcgPiBqacSDbzsgIzY0NzcKK+aRuCA+IG3FjTsgIzY0NzgKK+aRuSA+IG3DszsgIzY0NzkKK+aRuiA+IHpow6k7ICM2NDdBCivmkbsgPiB4acSBbjsgIzY0N0IKK+aRvCA+IGvEk25nOyAjNjQ3Qwor5pG9ID4gcGnEg287ICM2NDdECivmkb4gPiBqacOgbmc7ICM2NDdFCivmkb8gPiB5xKtuOyAjNjQ3Rgor5pKAID4gZ8OydTsgIzY0ODAKK+aSgSA+IHFpxIFuOyAjNjQ4MQor5pKCID4gbMecZTsgIzY0ODIKK+aSgyA+IGrDrTsgIzY0ODMKK+aShCA+IHnEq25nOyAjNjQ4NAor5pKFID4ganXEkzsgIzY0ODUKK+aShiA+IHBpxJM7ICM2NDg2CivmkocgPiBwacSVOyAjNjQ4Nwor5pKIID4gbMSBbzsgIzY0ODgKK+aSiSA+IGTFq247ICM2NDg5CivmkoogPiB4acOgbjsgIzY0OEEKK+aSiyA+IHJ1w6FuOyAjNjQ4Qgor5pKMID4ga8O5aTsgIzY0OEMKK+aSjSA+IHrEg247ICM2NDhECivmko4gPiB5w6w7ICM2NDhFCivmko8gPiB4w7puOyAjNjQ4Rgor5pKQID4gY2jEk25nOyAjNjQ5MAor5pKRID4gY2jEk25nOyAjNjQ5MQor5pKSID4gc8SDOyAjNjQ5Mgor5pKTID4gbsOhbzsgIzY0OTMKK+aSlCA+IGjDqG5nOyAjNjQ5NAor5pKVID4gc8SrOyAjNjQ5NQor5pKWID4gcWnEg247ICM2NDk2CivmkpcgPiBodcOhbmc7ICM2NDk3CivmkpggPiBkxIE7ICM2NDk4CivmkpkgPiB6xa1uOyAjNjQ5OQor5pKaID4gbmnEg247ICM2NDlBCivmkpsgPiBsxK1uOyAjNjQ5Qgor5pKcID4gemjElW5nOyAjNjQ5Qwor5pKdID4gaMWraTsgIzY0OUQKK+aSniA+IHpodcOgbmc7ICM2NDlFCivmkp8gPiBqacSDbzsgIzY0OUYKK+aSoCA+IGrErTsgIzY0QTAKK+aSoSA+IGPEgW87ICM2NEExCivmkqIgPiBkxINuOyAjNjRBMgor5pKjID4gZMSDbjsgIzY0QTMKK+aSpCA+IGNow6g7ICM2NEE0CivmkqUgPiBixY07ICM2NEE1CivmkqYgPiBjaMSVOyAjNjRBNgor5pKnID4ganXDqTsgIzY0QTcKK+aSqCA+IHhpxIFvOyAjNjRBOAor5pKpID4gbGnDoW87ICM2NEE5CivmkqogPiBiw6huOyAjNjRBQQor5pKrID4gZsWtOyAjNjRBQgor5pKsID4gcWnDoG87ICM2NEFDCivmkq0gPiBiw7I7ICM2NEFECivmkq4gPiBjxatvOyAjNjRBRQor5pKvID4gemjDum87ICM2NEFGCivmkrAgPiB6aHXDoG47ICM2NEIwCivmkrEgPiB0xa1vOyAjNjRCMQor5pKyID4gcMWrOyAjNjRCMgor5pKzID4gccOsbjsgIzY0QjMKK+aStCA+IGTFq247ICM2NEI0CivmkrUgPiBuacSDbjsgIzY0QjUKK+aStyA+IHhpw6k7ICM2NEI3CivmkrggPiBsxa07ICM2NEI4CivmkrkgPiBqacSDbzsgIzY0QjkKK+aSuiA+IGN1xIFuOyAjNjRCQQor5pK7ID4gdMOgOyAjNjRCQgor5pK8ID4gaMOgbjsgIzY0QkMKK+aSvSA+IHFpw6BvOyAjNjRCRAor5pK+ID4gemh1xIE7ICM2NEJFCivmkr8gPiBqacSDbjsgIzY0QkYKK+aTgCA+IGfEg247ICM2NEMwCivmk4EgPiB5xY9uZzsgIzY0QzEKK+aTgiA+IGzDqWk7ICM2NEMyCivmk4MgPiBrxa1vOyAjNjRDMwor5pOEID4gbMWtOyAjNjRDNAor5pOFID4gc2jDoG47ICM2NEM1Civmk4YgPiB6aMO6bzsgIzY0QzYKK+aThyA+IHrDqTsgIzY0QzcKK+aTiCA+IHDFqzsgIzY0QzgKK+aTiSA+IGNow7lvOyAjNjRDOQor5pOKID4gasOtOyAjNjRDQQor5pOLID4gZMSDbmc7ICM2NENCCivmk4wgPiBzxa1vOyAjNjRDQwor5pONID4gY8SBbzsgIzY0Q0QKK+aTjiA+IHHDrW5nOyAjNjRDRQor5pOPID4gasOsbmc7ICM2NENGCivmk5AgPiBodcOgbjsgIzY0RDAKK+aTkSA+IGppxJM7ICM2NEQxCivmk5IgPiBxw61uOyAjNjREMgor5pOTID4ga3XEg2k7ICM2NEQzCivmk5QgPiBkxIFuOyAjNjRENAor5pOVID4geMSrOyAjNjRENQor5pOWID4gZ8SVOyAjNjRENgor5pOXID4gcMOsOyAjNjRENwor5pOYID4gYsOyOyAjNjREOAor5pOZID4gw6BvOyAjNjREOQor5pOaID4gasO5OyAjNjREQQor5pObID4gecOoOyAjNjREQgor5pOeID4gc8WPdTsgIzY0REUKK+aTnyA+IG3DrTsgIzY0REYKK+aToCA+IGrErTsgIzY0RTAKK+aToSA+IHTDoWk7ICM2NEUxCivmk6IgPiB6aMO6bzsgIzY0RTIKK+aToyA+IGTEg287ICM2NEUzCivmk6QgPiB4xK1uZzsgIzY0RTQKK+aTpSA+IGzEg247ICM2NEU1Civmk6YgPiBjxIE7ICM2NEU2Civmk6cgPiBqxa07ICM2NEU3Civmk6ggPiB5w6k7ICM2NEU4Civmk6kgPiByxa07ICM2NEU5Civmk6ogPiB5w6g7ICM2NEVBCivmk6sgPiB5w6g7ICM2NEVCCivmk6wgPiBuxK07ICM2NEVDCivmk60gPiBow7k7ICM2NEVECivmk64gPiBqw607ICM2NEVFCivmk68gPiBiw6xuOyAjNjRFRgor5pOwID4gbsOtbmc7ICM2NEYwCivmk7EgPiBnxJM7ICM2NEYxCivmk7IgPiB6aMOtOyAjNjRGMgor5pOzID4gamnDqTsgIzY0RjMKK+aTtCA+IGvDuW87ICM2NEY0Civmk7UgPiBtw7M7ICM2NEY1Civmk7YgPiBqacOgbjsgIzY0RjYKK+aTtyA+IHhpw6k7ICM2NEY3Civmk7ggPiBsacOoOyAjNjRGOAor5pO5ID4gdMSBbjsgIzY0RjkKK+aTuiA+IGLEg2k7ICM2NEZBCivmk7sgPiBzxY91OyAjNjRGQgor5pO8ID4gbMWtOyAjNjRGQwor5pO9ID4gbMecZTsgIzY0RkQKK+aTviA+IHLEg287ICM2NEZFCivmk78gPiB6aMOtOyAjNjRGRgor5pSAID4gcMSBbjsgIzY1MDAKK+aUgSA+IHnEg25nOyAjNjUwMQor5pSCID4gbMOoaTsgIzY1MDIKK+aUgyA+IHPDoDsgIzY1MDMKK+aUhCA+IHNoxas7ICM2NTA0CivmlIUgPiB6xINuOyAjNjUwNQor5pSGID4gbmnEg247ICM2NTA2CivmlIcgPiB4acSDbjsgIzY1MDcKK+aUiCA+IGrDuW47ICM2NTA4CivmlIkgPiBow7lvOyAjNjUwOQor5pSKID4gbMOsOyAjNjUwQQor5pSLID4gbMOgOyAjNjUwQgor5pSMID4gaMOgbjsgIzY1MEMKK+aUjSA+IHnDrW5nOyAjNjUwRAor5pSOID4gbMO6OyAjNjUwRQor5pSPID4gbMWPbmc7ICM2NTBGCivmlJAgPiBxacSBbjsgIzY1MTAKK+aUkSA+IHFpxIFuOyAjNjUxMQor5pSSID4gesSDbjsgIzY1MTIKK+aUkyA+IHFpxIFuOyAjNjUxMwor5pSUID4gbMOhbjsgIzY1MTQKK+aUlSA+IHPEgW47ICM2NTE1CivmlJYgPiB5xKtuZzsgIzY1MTYKK+aUlyA+IG3DqWk7ICM2NTE3CivmlJggPiByw6FuZzsgIzY1MTgKK+aUmSA+IGNoxIFuOyAjNjUxOQor5pSbID4gY3XEgW47ICM2NTFCCivmlJwgPiB4xKs7ICM2NTFDCivmlJ0gPiBzaMOoOyAjNjUxRAor5pSeID4gbMWtbzsgIzY1MUUKK+aUnyA+IGrDuW47ICM2NTFGCivmlKAgPiBtw607ICM2NTIwCivmlKEgPiBsw607ICM2NTIxCivmlKIgPiB6xINuOyAjNjUyMgor5pSjID4gbMeYYW47ICM2NTIzCivmlKQgPiB0xIFuOyAjNjUyNAor5pSlID4genXDoG47ICM2NTI1CivmlKYgPiBsw6w7ICM2NTI2CivmlKcgPiBkacSBbjsgIzY1MjcKK+aUqCA+IHfEgTsgIzY1MjgKK+aUqSA+IGTEg25nOyAjNjUyOQor5pSqID4gamnEg287ICM2NTJBCivmlKsgPiBqdcOpOyAjNjUyQgor5pSsID4gbMSDbjsgIzY1MkMKK+aUrSA+IGzDrDsgIzY1MkQKK+aUriA+IG7Eg25nOyAjNjUyRQor5pSvID4gemjEqzsgIzY1MkYKK+aUsCA+IGfDuWk7ICM2NTMwCivmlLEgPiBnxa1pOyAjNjUzMQor5pSyID4gccSrOyAjNjUzMgor5pSzID4geMOtbjsgIzY1MzMKK+aUtCA+IHDFqzsgIzY1MzQKK+aUtSA+IHPFq2k7ICM2NTM1CivmlLYgPiBzaMWNdTsgIzY1MzYKK+aUtyA+IGvDoW87ICM2NTM3CivmlLggPiB5xY11OyAjNjUzOAor5pS5ID4gZ8SDaTsgIzY1MzkKK+aUuiA+IHnErTsgIzY1M0EKK+aUuyA+IGfFjW5nOyAjNjUzQgor5pS8ID4gZ8SBbjsgIzY1M0MKK+aUvSA+IGLEgW47ICM2NTNECivmlL4gPiBmw6BuZzsgIzY1M0UKK+aUvyA+IHpow6huZzsgIzY1M0YKK+aVgCA+IGLDszsgIzY1NDAKK+aVgSA+IGRpxIFuOyAjNjU0MQor5pWCID4ga8OydTsgIzY1NDIKK+aVgyA+IG3ErW47ICM2NTQzCivmlYQgPiB3w7k7ICM2NTQ0CivmlYUgPiBnw7k7ICM2NTQ1CivmlYYgPiBow6k7ICM2NTQ2CivmlYcgPiBjw6g7ICM2NTQ3CivmlYggPiB4acOgbzsgIzY1NDgKK+aViSA+IG3ErTsgIzY1NDkKK+aViiA+IGNow7k7ICM2NTRBCivmlYsgPiBnw6k7ICM2NTRCCivmlYwgPiBkw607ICM2NTRDCivmlY0gPiB4w7k7ICM2NTRECivmlY4gPiBqacOgbzsgIzY1NEUKK+aVjyA+IG3ErW47ICM2NTRGCivmlZAgPiBjaMOpbjsgIzY1NTAKK+aVkSA+IGrDrHU7ICM2NTUxCivmlZIgPiB6aMOobjsgIzY1NTIKK+aVkyA+IGTDum87ICM2NTUzCivmlZQgPiB5xa07ICM2NTU0CivmlZUgPiBjaMOsOyAjNjU1NQor5pWWID4gw6FvOyAjNjU1Ngor5pWXID4gYsOgaTsgIzY1NTcKK+aVmCA+IHjDuTsgIzY1NTgKK+aVmSA+IGppw6BvOyAjNjU1OQor5pWaID4gZMO6bzsgIzY1NUEKK+aVmyA+IGxpw6BuOyAjNjU1Qgor5pWcID4gbmnDqDsgIzY1NUMKK+aVnSA+IGLDrDsgIzY1NUQKK+aVniA+IGNoxINuZzsgIzY1NUUKK+aVnyA+IGRpxINuOyAjNjU1Rgor5pWgID4gZMO6bzsgIzY1NjAKK+aVoSA+IHnDrDsgIzY1NjEKK+aVoiA+IGfEg247ICM2NTYyCivmlaMgPiBzw6BuOyAjNjU2Mwor5pWkID4ga8SVOyAjNjU2NAor5pWlID4gecOgbjsgIzY1NjUKK+aVpiA+IGTFq247ICM2NTY2CivmlacgPiBxxK07ICM2NTY3CivmlaggPiBkxY91OyAjNjU2OAor5pWpID4geGnDoG87ICM2NTY5CivmlaogPiBkw7pvOyAjNjU2QQor5pWrID4gamnDoG87ICM2NTZCCivmlawgPiBqw6xuZzsgIzY1NkMKK+aVrSA+IHnDoW5nOyAjNjU2RAor5pWuID4geGnDoTsgIzY1NkUKK+aVryA+IG3DrW47ICM2NTZGCivmlbAgPiBzaMO5OyAjNjU3MAor5pWxID4gw6FpOyAjNjU3MQor5pWyID4gcWnEgW87ICM2NTcyCivmlbMgPiDDoWk7ICM2NTczCivmlbQgPiB6aMSVbmc7ICM2NTc0CivmlbUgPiBkw607ICM2NTc1CivmlbYgPiB6aMOobjsgIzY1NzYKK+aVtyA+IGbFqzsgIzY1NzcKK+aVuCA+IHNow7k7ICM2NTc4CivmlbkgPiBsacOhbzsgIzY1NzkKK+aVuiA+IHHFqzsgIzY1N0EKK+aVuyA+IHjDrG9uZzsgIzY1N0IKK+aVvCA+IHjErTsgIzY1N0MKK+aVvSA+IGppxINvOyAjNjU3RAor5pW/ID4gamnEg287ICM2NTdGCivmloAgPiB6aMO6bzsgIzY1ODAKK+aWgSA+IHnDrDsgIzY1ODEKK+aWgiA+IGxpw6BuOyAjNjU4Mgor5paDID4gYsOsOyAjNjU4Mwor5paEID4gbMOsOyAjNjU4NAor5paFID4geGnDoG87ICM2NTg1CivmloYgPiB4acOgbzsgIzY1ODYKK+aWhyA+IHfDqW47ICM2NTg3CivmloggPiB4dcOpOyAjNjU4OAor5paJID4gccOtOyAjNjU4OQor5paKID4gccOtOyAjNjU4QQor5paLID4gemjEgWk7ICM2NThCCivmlowgPiBixKtuOyAjNjU4Qwor5paNID4ganXDqTsgIzY1OEQKK+aWjiA+IHpoxIFpOyAjNjU4RQor5paQID4gZsSVaTsgIzY1OTAKK+aWkSA+IGLEgW47ICM2NTkxCivmlpIgPiBixIFuOyAjNjU5Mgor5paTID4gbMOhbjsgIzY1OTMKK+aWlCA+IHnFrTsgIzY1OTQKK+aWlSA+IGzDoW47ICM2NTk1CivmlpYgPiB3xJVpOyAjNjU5Ngor5paXID4gZMWPdTsgIzY1OTcKK+aWmCA+IHNoxJNuZzsgIzY1OTgKK+aWmSA+IGxpw6BvOyAjNjU5OQor5paaID4gamnEgzsgIzY1OUEKK+aWmyA+IGjDujsgIzY1OUIKK+aWnCA+IHhpw6k7ICM2NTlDCivmlp0gPiBqacSDOyAjNjU5RAor5paeID4gecWtOyAjNjU5RQor5pafID4gemjEk247ICM2NTlGCivmlqAgPiBqacOgbzsgIzY1QTAKK+aWoSA+IHfDsjsgIzY1QTEKK+aWoiA+IHTFj3U7ICM2NUEyCivmlqMgPiBjaMO5OyAjNjVBMwor5pakID4gasSrbjsgIzY1QTQKK+aWpSA+IGNow6w7ICM2NUE1CivmlqYgPiB5w61uOyAjNjVBNgor5panID4gZsWtOyAjNjVBNwor5paoID4gcWnEgW5nOyAjNjVBOAor5papID4gemjEg247ICM2NUE5CivmlqogPiBxw7o7ICM2NUFBCivmlqsgPiB6aMO6bzsgIzY1QUIKK+aWrCA+IHpoxINuOyAjNjVBQwor5patID4gZHXDoG47ICM2NUFECivmlq4gPiB6aMO6bzsgIzY1QUUKK+aWryA+IHPEqzsgIzY1QUYKK+aWsCA+IHjEq247ICM2NUIwCivmlrEgPiB6aMO6bzsgIzY1QjEKK+aWsiA+IHpow7pvOyAjNjVCMgor5pazID4gccOtbjsgIzY1QjMKK+aWtCA+IGzDrW47ICM2NUI0CivmlrUgPiB6aMO6bzsgIzY1QjUKK+aWtiA+IGNow7k7ICM2NUI2CivmlrcgPiBkdcOgbjsgIzY1QjcKK+aWuCA+IHpoxa07ICM2NUI4CivmlrkgPiBmxIFuZzsgIzY1QjkKK+aWuiA+IHhpw6g7ICM2NUJBCivmlrsgPiBow6FuZzsgIzY1QkIKK+aWvCA+IHnDujsgIzY1QkMKK+aWvSA+IHNoxKs7ICM2NUJECivmlr4gPiBww6hpOyAjNjVCRQor5pa/ID4gecOzdTsgIzY1QkYKK+aXgSA+IHDDoW5nOyAjNjVDMQor5peCID4gccOtOyAjNjVDMgor5peDID4gemjEgW47ICM2NUMzCivml4QgPiBtw6FvOyAjNjVDNAor5peFID4gbMeaOyAjNjVDNQor5peGID4gcMOoaTsgIzY1QzYKK+aXhyA+IHDEqzsgIzY1QzcKK+aXiCA+IGzDrXU7ICM2NUM4Civml4kgPiBmxas7ICM2NUM5Civml4ogPiBmxINuZzsgIzY1Q0EKK+aXiyA+IHh1w6FuOyAjNjVDQgor5peMID4gasSrbmc7ICM2NUNDCivml40gPiBqxKtuZzsgIzY1Q0QKK+aXjiA+IG7ErTsgIzY1Q0UKK+aXjyA+IHrDujsgIzY1Q0YKK+aXkCA+IHpow6BvOyAjNjVEMAor5peRID4gecStOyAjNjVEMQor5peSID4gbMOtdTsgIzY1RDIKK+aXkyA+IHNoxIFvOyAjNjVEMwor5peUID4gamnDoG47ICM2NUQ0Civml5YgPiB5xK07ICM2NUQ2Civml5cgPiBxw607ICM2NUQ3Civml5ggPiB6aMOsOyAjNjVEOAor5peZID4gZsSBbjsgIzY1RDkKK+aXmiA+IHBpxIFvOyAjNjVEQQor5pebID4gZsSBbjsgIzY1REIKK+aXnCA+IHpoxIFuOyAjNjVEQwor5pedID4gZ3XDoGk7ICM2NURECivml54gPiBzw7lpOyAjNjVERQor5pefID4gecO6OyAjNjVERgor5pegID4gd8O6OyAjNjVFMAor5pehID4gasOsOyAjNjVFMQor5peiID4gasOsOyAjNjVFMgor5pejID4gasOsOyAjNjVFMwor5pekID4gaMO5bzsgIzY1RTQKK+aXpSA+IHLDrDsgIzY1RTUKK+aXpiA+IGTDoG47ICM2NUU2Civml6cgPiBqw6x1OyAjNjVFNwor5peoID4gemjErTsgIzY1RTgKK+aXqSA+IHrEg287ICM2NUU5Civml6ogPiB4acOpOyAjNjVFQQor5perID4gdGnEgW87ICM2NUVCCivml6wgPiB4w7puOyAjNjVFQwor5petID4geMO5OyAjNjVFRAor5peuID4geMO5OyAjNjVFRQor5pevID4geMO5OyAjNjVFRgor5pewID4gZ8OgbjsgIzY1RjAKK+aXsSA+IGjDoG47ICM2NUYxCivml7IgPiB0w6FpOyAjNjVGMgor5pezID4gZMOsOyAjNjVGMwor5pe0ID4geMWrOyAjNjVGNAor5pe1ID4gY2jEg247ICM2NUY1Civml7YgPiBzaMOtOyAjNjVGNgor5pe3ID4ga3XDoG5nOyAjNjVGNwor5pe4ID4gecOhbmc7ICM2NUY4Civml7kgPiBzaMOtOyAjNjVGOQor5pe6ID4gd8Ogbmc7ICM2NUZBCivml7sgPiBtw61uOyAjNjVGQgor5pe8ID4gbcOtbjsgIzY1RkMKK+aXvSA+IHTFq247ICM2NUZECivml74gPiBjaMWrbjsgIzY1RkUKK+aXvyA+IHfFrTsgIzY1RkYKK+aYgCA+IHnDum47ICM2NjAwCivmmIEgPiBiw6hpOyAjNjYwMQor5piCID4gw6FuZzsgIzY2MDIKK+aYgyA+IHrDqDsgIzY2MDMKK+aYhCA+IGLEg247ICM2NjA0CivmmIUgPiBqacOpOyAjNjYwNQor5piGID4ga8WrbjsgIzY2MDYKK+aYhyA+IHNoxJNuZzsgIzY2MDcKK+aYiCA+IGjDuTsgIzY2MDgKK+aYiSA+IGbEg25nOyAjNjYwOQor5piKID4gaMOgbzsgIzY2MEEKK+aYiyA+IGfDuWk7ICM2NjBCCivmmIwgPiBjaMSBbmc7ICM2NjBDCivmmI0gPiB4dcSBbjsgIzY2MEQKK+aYjiA+IG3DrW5nOyAjNjYwRQor5piPID4gaMWrbjsgIzY2MEYKK+aYkCA+IGbEk247ICM2NjEwCivmmJEgPiBxxK1uOyAjNjYxMQor5piSID4gaMWrOyAjNjYxMgor5piTID4gecOsOyAjNjYxMwor5piUID4geMOtOyAjNjYxNAor5piVID4geMSrbjsgIzY2MTUKK+aYliA+IHnDoW47ICM2NjE2CivmmJcgPiB6w6g7ICM2NjE3CivmmJggPiBmxINuZzsgIzY2MTgKK+aYmSA+IHTDoW47ICM2NjE5CivmmJogPiBzaMOobjsgIzY2MUEKK+aYmyA+IGrDuTsgIzY2MUIKK+aYnCA+IHnDoW5nOyAjNjYxQwor5pidID4gesSDbjsgIzY2MUQKK+aYniA+IGLErW5nOyAjNjYxRQor5pifID4geMSrbmc7ICM2NjFGCivmmKAgPiB5w6xuZzsgIzY2MjAKK+aYoSA+IHh1w6BuOyAjNjYyMQor5piiID4gcMSVaTsgIzY2MjIKK+aYoyA+IHpoxJVuOyAjNjYyMwor5pikID4gbMSrbmc7ICM2NjI0CivmmKUgPiBjaMWrbjsgIzY2MjUKK+aYpiA+IGjDoG87ICM2NjI2CivmmKcgPiBtw6hpOyAjNjYyNwor5pioID4gesO6bzsgIzY2MjgKK+aYqSA+IG3DsjsgIzY2MjkKK+aYqiA+IGJpw6BuOyAjNjYyQQor5pirID4geMWtOyAjNjYyQgor5pisID4gaMWrbjsgIzY2MkMKK+aYrSA+IHpoxIFvOyAjNjYyRAor5piuID4gesOybmc7ICM2NjJFCivmmK8gPiBzaMOsOyAjNjYyRgor5piwID4gc2jDrDsgIzY2MzAKK+aYsSA+IHnDuTsgIzY2MzEKK+aYsiA+IGbDqGk7ICM2NjMyCivmmLMgPiBkacOpOyAjNjYzMwor5pi0ID4gbcSDbzsgIzY2MzQKK+aYtSA+IG7DrDsgIzY2MzUKK+aYtiA+IGNoxINuZzsgIzY2MzYKK+aYtyA+IHfEk247ICM2NjM3CivmmLggPiBkxY1uZzsgIzY2MzgKK+aYuSA+IMSDaTsgIzY2MzkKK+aYuiA+IGLErW5nOyAjNjYzQQor5pi7ID4gw6FuZzsgIzY2M0IKK+aYvCA+IHpow7J1OyAjNjYzQwor5pi9ID4gbMOzbmc7ICM2NjNECivmmL4gPiB4acSDbjsgIzY2M0UKK+aYvyA+IGt1w6BuZzsgIzY2M0YKK+aZgCA+IHRpxINvOyAjNjY0MAor5pmBID4gY2jDoW87ICM2NjQxCivmmYIgPiBzaMOtOyAjNjY0Mgor5pmDID4gaHXEg25nOyAjNjY0Mwor5pmEID4gaHXEg25nOyAjNjY0NAor5pmFID4geHXEgW47ICM2NjQ1CivmmYYgPiBrw7ppOyAjNjY0Ngor5pmHID4geMWrOyAjNjY0Nwor5pmIID4gamnEg287ICM2NjQ4CivmmYkgPiBqw6xuOyAjNjY0OQor5pmKID4gemjErTsgIzY2NEEKK+aZiyA+IGrDrG47ICM2NjRCCivmmYwgPiBzaMSDbmc7ICM2NjRDCivmmY0gPiB0w7NuZzsgIzY2NEQKK+aZjiA+IGjFj25nOyAjNjY0RQor5pmPID4gecOgbjsgIzY2NEYKK+aZkCA+IGfEgWk7ICM2NjUwCivmmZEgPiB4acSDbmc7ICM2NjUxCivmmZIgPiBzaMOgaTsgIzY2NTIKK+aZkyA+IHhpxINvOyAjNjY1Mwor5pmUID4gecSTOyAjNjY1NAor5pmVID4gecWrbjsgIzY2NTUKK+aZliA+IGjFq2k7ICM2NjU2CivmmZcgPiBow6FuOyAjNjY1Nwor5pmYID4gaMOgbjsgIzY2NTgKK+aZmSA+IGrDuW47ICM2NjU5CivmmZogPiB3xINuOyAjNjY1QQor5pmbID4geGnDoG47ICM2NjVCCivmmZwgPiBrxatuOyAjNjY1Qwor5pmdID4gemjDsnU7ICM2NjVECivmmZ4gPiB4xKs7ICM2NjVFCivmmZ8gPiBjaMOpbmc7ICM2NjVGCivmmaAgPiBzaMOpbmc7ICM2NjYwCivmmaEgPiBixas7ICM2NjYxCivmmaIgPiB6aMSTOyAjNjY2Mgor5pmjID4gemjEkzsgIzY2NjMKK+aZpCA+IHfDuTsgIzY2NjQKK+aZpSA+IGjDoG47ICM2NjY1CivmmaYgPiBow7lpOyAjNjY2Ngor5pmnID4gaMOgbzsgIzY2NjcKK+aZqCA+IGNow6luOyAjNjY2OAor5pmpID4gd8SDbjsgIzY2NjkKK+aZqiA+IHRpxINuOyAjNjY2QQor5pmrID4gemjDum87ICM2NjZCCivmmawgPiB6w7lpOyAjNjY2Qwor5pmtID4gemjFj3U7ICM2NjZECivmma4gPiBwxa07ICM2NjZFCivmma8gPiBqxK1uZzsgIzY2NkYKK+aZsCA+IHjEqzsgIzY2NzAKK+aZsSA+IHNoxINuOyAjNjY3MQor5pmyID4gecStOyAjNjY3Mgor5pmzID4geMOsOyAjNjY3Mwor5pm0ID4gccOtbmc7ICM2Njc0CivmmbUgPiBxxK07ICM2Njc1CivmmbYgPiBqxKtuZzsgIzY2NzYKK+aZtyA+IGfFrWk7ICM2Njc3CivmmbggPiB6aMSVbjsgIzY2NzgKK+aZuSA+IHnDrDsgIzY2NzkKK+aZuiA+IHpow6w7ICM2NjdBCivmmbsgPiDEg247ICM2NjdCCivmmbwgPiB3xINuOyAjNjY3Qwor5pm9ID4gbMOtbjsgIzY2N0QKK+aZviA+IGxpw6BuZzsgIzY2N0UKK+aZvyA+IGNoxIFuZzsgIzY2N0YKK+aagCA+IHfEg25nOyAjNjY4MAor5pqBID4geGnEg287ICM2NjgxCivmmoIgPiB6w6BuOyAjNjY4Mgor5pqEID4geHXEgW47ICM2Njg0CivmmoUgPiB4dcSDbjsgIzY2ODUKK+aahiA+IHnDrTsgIzY2ODYKK+aahyA+IHhpw6E7ICM2Njg3CivmmoggPiB5xatuOyAjNjY4OAor5pqJID4gaMWraTsgIzY2ODkKK+aaiiA+IGbFrTsgIzY2OEEKK+aaiyA+IG3ErW47ICM2NjhCCivmmowgPiBrw7ppOyAjNjY4Qwor5pqNID4gaMOoOyAjNjY4RAor5pqOID4gecOsbmc7ICM2NjhFCivmmo8gPiBkxa07ICM2NjhGCivmmpAgPiB3xJVpOyAjNjY5MAor5pqRID4gc2jFrTsgIzY2OTEKK+aakiA+IHHDrW5nOyAjNjY5Mgor5pqTID4gbcOgbzsgIzY2OTMKK+aalCA+IG7DoW47ICM2Njk0CivmmpUgPiBqacSDbjsgIzY2OTUKK+aaliA+IG51xINuOyAjNjY5Ngor5pqXID4gw6BuOyAjNjY5Nwor5pqYID4gecOhbmc7ICM2Njk4CivmmpkgPiBjaMWrbjsgIzY2OTkKK+aamiA+IHnDoW87ICM2NjlBCivmmpsgPiBzxa1vOyAjNjY5Qgor5pqcID4gasOsbjsgIzY2OUMKK+aanSA+IG3DrW5nOyAjNjY5RAor5pqeID4gamnEg287ICM2NjlFCivmmp8gPiBrxINpOyAjNjY5Rgor5pqgID4gZ8SDbzsgIzY2QTAKK+aaoSA+IHfElW5nOyAjNjZBMQor5pqiID4gY2jDoG5nOyAjNjZBMgor5pqjID4gccOsOyAjNjZBMwor5pqkID4gaMOgbzsgIzY2QTQKK+aapSA+IHnDoG47ICM2NkE1CivmmqYgPiBsw6w7ICM2NkE2CivmmqcgPiDDoGk7ICM2NkE3CivmmqggPiBqw6w7ICM2NkE4CivmmqkgPiBnw7lpOyAjNjZBOQor5pqqID4gbcSVbjsgIzY2QUEKK+aaqyA+IHrDoG47ICM2NkFCCivmmqwgPiB4acOoOyAjNjZBQwor5pqtID4gaMOgbzsgIzY2QUQKK+aariA+IG3DuTsgIzY2QUUKK+aaryA+IG3DsjsgIzY2QUYKK+aasCA+IGPFjW5nOyAjNjZCMAor5pqxID4gbsOsOyAjNjZCMQor5pqyID4gemjEgW5nOyAjNjZCMgor5pqzID4gaMO5aTsgIzY2QjMKK+aatCA+IGLDoG87ICM2NkI0CivmmrUgPiBow6BuOyAjNjZCNQor5pq2ID4geHXDoW47ICM2NkI2CivmmrcgPiBjaHXDoW47ICM2NkI3CivmmrggPiBsacOhbzsgIzY2QjgKK+aauSA+IHhpxIFuOyAjNjZCOQor5pq6ID4gZMOgbjsgIzY2QkEKK+aauyA+IGrErW5nOyAjNjZCQgor5pq8ID4gcGnEkzsgIzY2QkMKK+aavSA+IGzDrW47ICM2NkJECivmmr4gPiB0xatuOyAjNjZCRQor5pq/ID4geMStOyAjNjZCRgor5puAID4gecOsOyAjNjZDMAor5puBID4gasOsOyAjNjZDMQor5puCID4gaHXDoG5nOyAjNjZDMgor5puDID4gdMOgaTsgIzY2QzMKK+abhCA+IHnDqDsgIzY2QzQKK+abhSA+IHnDqDsgIzY2QzUKK+abhiA+IGzDrDsgIzY2QzYKK+abhyA+IHTDoW47ICM2NkM3Civmm4ggPiB0w7NuZzsgIzY2QzgKK+abiSA+IHhpxINvOyAjNjZDOQor5puKID4gZsOoaTsgIzY2Q0EKK+abiyA+IHHErW47ICM2NkNCCivmm4wgPiB6aMOgbzsgIzY2Q0MKK+abjSA+IGjDoG87ICM2NkNECivmm44gPiB5w6w7ICM2NkNFCivmm48gPiB4acOgbmc7ICM2NkNGCivmm5AgPiB4xKtuZzsgIzY2RDAKK+abkSA+IHPEk247ICM2NkQxCivmm5IgPiBqacSDbzsgIzY2RDIKK+abkyA+IGLDoG87ICM2NkQzCivmm5QgPiBqw6xuZzsgIzY2RDQKK+ablSA+IHlpw6BuOyAjNjZENQor5puWID4gw6BpOyAjNjZENgor5puXID4gecOoOyAjNjZENwor5puYID4gcsO6OyAjNjZEOAor5puZID4gc2jDuTsgIzY2RDkKK+abmiA+IG3DqW5nOyAjNjZEQQor5pubID4geMWrbjsgIzY2REIKK+abnCA+IHnDoG87ICM2NkRDCivmm50gPiBww7k7ICM2NkRECivmm54gPiBsw6w7ICM2NkRFCivmm58gPiBjaMOpbjsgIzY2REYKK+aboCA+IGt1w6BuZzsgIzY2RTAKK+aboSA+IGRpw6k7ICM2NkUxCivmm6MgPiB5w6BuOyAjNjZFMwor5pukID4gaMO5bzsgIzY2RTQKK+abpSA+IGzDujsgIzY2RTUKK+abpiA+IHjEqzsgIzY2RTYKK+abpyA+IHLDs25nOyAjNjZFNwor5puoID4gbMOzbmc7ICM2NkU4Civmm6kgPiBuxINuZzsgIzY2RTkKK+abqiA+IGzFrW87ICM2NkVBCivmm6sgPiBsdcOhbjsgIzY2RUIKK+abrCA+IHNow6BpOyAjNjZFQwor5putID4gdMSDbmc7ICM2NkVECivmm64gPiB5xINuOyAjNjZFRQor5puvID4gY2jDujsgIzY2RUYKK+absCA+IHl1xJM7ICM2NkYwCivmm7EgPiB5dcSTOyAjNjZGMQor5puyID4gccWtOyAjNjZGMgor5puzID4gecOsOyAjNjZGMwor5pu0ID4gZ8Oobmc7ICM2NkY0Civmm7UgPiB5w6g7ICM2NkY1Civmm7YgPiBoxas7ICM2NkY2Civmm7cgPiBow6k7ICM2NkY3Civmm7ggPiBzaMWrOyAjNjZGOAor5pu5ID4gY8OhbzsgIzY2RjkKK+abuiA+IGPDoW87ICM2NkZBCivmm7wgPiBtw6BuOyAjNjZGQwor5pu9ID4gY8STbmc7ICM2NkZECivmm74gPiBjw6luZzsgIzY2RkUKK+abvyA+IHTDrDsgIzY2RkYKK+acgCA+IHrDuWk7ICM2NzAwCivmnIEgPiBjxINuOyAjNjcwMQor5pyCID4geMO5OyAjNjcwMgor5pyDID4gaMO5aTsgIzY3MDMKK+achCA+IHnDrG47ICM2NzA0CivmnIUgPiBxacOoOyAjNjcwNQor5pyGID4gZsSTbjsgIzY3MDYKK+achyA+IHDDrTsgIzY3MDcKK+aciCA+IHl1w6g7ICM2NzA4CivmnIkgPiB5xY91OyAjNjcwOQor5pyKID4gcnXEg247ICM2NzBBCivmnIsgPiBww6luZzsgIzY3MEIKK+acjCA+IGLEgW47ICM2NzBDCivmnI0gPiBmw7o7ICM2NzBECivmnI4gPiBsw61uZzsgIzY3MEUKK+acjyA+IGbElWk7ICM2NzBGCivmnJAgPiBxw7o7ICM2NzEwCivmnJIgPiBux5w7ICM2NzEyCivmnJMgPiB0acOgbzsgIzY3MTMKK+aclCA+IHNow7lvOyAjNjcxNAor5pyVID4gemjDqG47ICM2NzE1CivmnJYgPiBsxINuZzsgIzY3MTYKK+aclyA+IGzEg25nOyAjNjcxNwor5pyYID4ganXEgW47ICM2NzE4CivmnJkgPiBtw61uZzsgIzY3MTkKK+acmiA+IGh1xIFuZzsgIzY3MUEKK+acmyA+IHfDoG5nOyAjNjcxQgor5pycID4gdMWrbjsgIzY3MUMKK+acnSA+IHpoxIFvOyAjNjcxRAor5pyeID4gasSrOyAjNjcxRQor5pyfID4gccOtOyAjNjcxRgor5pygID4gecSrbmc7ICM2NzIwCivmnKEgPiB6xY1uZzsgIzY3MjEKK+acoiA+IHfDoG5nOyAjNjcyMgor5pyjID4gdMOzbmc7ICM2NzIzCivmnKQgPiBsxINuZzsgIzY3MjQKK+acpiA+IG3DqW5nOyAjNjcyNgor5pynID4gbMOzbmc7ICM2NzI3CivmnKggPiBtw7k7ICM2NzI4CivmnKkgPiBkxJVuZzsgIzY3MjkKK+acqiA+IHfDqGk7ICM2NzJBCivmnKsgPiBtw7I7ICM2NzJCCivmnKwgPiBixJVuOyAjNjcyQwor5pytID4gemjDoTsgIzY3MkQKK+acriA+IHpow7o7ICM2NzJFCivmnK8gPiB6aMO6OyAjNjcyRgor5pyxID4gemjFqzsgIzY3MzEKK+acsiA+IHLDqW47ICM2NzMyCivmnLMgPiBixIE7ICM2NzMzCivmnLQgPiBww7I7ICM2NzM0CivmnLUgPiBkxa1vOyAjNjczNQor5py2ID4gZMWtbzsgIzY3MzYKK+actyA+IGTEgW87ICM2NzM3CivmnLggPiBsw6w7ICM2NzM4CivmnLkgPiBxw611OyAjNjczOQor5py6ID4gasSrOyAjNjczQQor5py7ID4gasSrdTsgIzY3M0IKK+acvCA+IGLErTsgIzY3M0MKK+acvSA+IHjErXU7ICM2NzNECivmnL4gPiB0w61uZzsgIzY3M0UKK+acvyA+IGPDrDsgIzY3M0YKK+adgCA+IHNoxIE7ICM2NzQwCivmnYIgPiB6w6E7ICM2NzQyCivmnYMgPiBxdcOhbjsgIzY3NDMKK+adhCA+IHFpxIFuOyAjNjc0NAor5p2FID4gecO6OyAjNjc0NQor5p2GID4gZ8SBbjsgIzY3NDYKK+adhyA+IHfFqzsgIzY3NDcKK+adiCA+IGNoxIE7ICM2NzQ4CivmnYkgPiBzaMSBbjsgIzY3NDkKK+adiiA+IHjDum47ICM2NzRBCivmnYsgPiBmxIFuOyAjNjc0Qgor5p2MID4gd8O5OyAjNjc0Qwor5p2NID4gesStOyAjNjc0RAor5p2OID4gbMStOyAjNjc0RQor5p2PID4geMOsbmc7ICM2NzRGCivmnZAgPiBjw6FpOyAjNjc1MAor5p2RID4gY8WrbjsgIzY3NTEKK+adkiA+IHLDqG47ICM2NzUyCivmnZMgPiBzaMOhbzsgIzY3NTMKK+adlCA+IHTFq287ICM2NzU0CivmnZUgPiBkw6w7ICM2NzU1CivmnZYgPiB6aMOgbmc7ICM2NzU2CivmnZcgPiBtw6FuZzsgIzY3NTcKK+admCA+IGNow6w7ICM2NzU4CivmnZkgPiB5w6w7ICM2NzU5CivmnZogPiBnxa07ICM2NzVBCivmnZsgPiBnxY1uZzsgIzY3NUIKK+adnCA+IGTDuTsgIzY3NUMKK+adnSA+IHnDrTsgIzY3NUQKK+adniA+IHHErTsgIzY3NUUKK+adnyA+IHNow7k7ICM2NzVGCivmnaAgPiBnxIFuZzsgIzY3NjAKK+adoSA+IHRpw6FvOyAjNjc2MQor5p2lID4gbMOhaTsgIzY3NjUKK+adpyA+IG3DoW5nOyAjNjc2Nwor5p2oID4gecOhbmc7ICM2NzY4CivmnakgPiBtw6A7ICM2NzY5CivmnaogPiBtacSDbzsgIzY3NkEKK+adqyA+IHPDrDsgIzY3NkIKK+adrCA+IHl1w6FuOyAjNjc2Qwor5p2tID4gaMOhbmc7ICM2NzZECivmna4gPiBmw6hpOyAjNjc2RQor5p2vID4gYsSTaTsgIzY3NkYKK+adsCA+IGppw6k7ICM2NzcwCivmnbEgPiBkxY1uZzsgIzY3NzEKK+adsiA+IGfEg287ICM2NzcyCivmnbMgPiB5xINvOyAjNjc3Mwor5p20ID4geGnEgW47ICM2Nzc0CivmnbUgPiBjaMWtOyAjNjc3NQor5p22ID4gccWrbjsgIzY3NzYKK+adtyA+IHDDoTsgIzY3NzcKK+aduCA+IHNoxas7ICM2Nzc4CivmnbkgPiBodcOgOyAjNjc3OQor5p26ID4geMSrbjsgIzY3N0EKK+aduyA+IGNoxY91OyAjNjc3Qgor5p28ID4gemjDuTsgIzY3N0MKK+advSA+IGNoxY91OyAjNjc3RAor5p2+ID4gc8WNbmc7ICM2NzdFCivmnb8gPiBixINuOyAjNjc3Rgor5p6AID4gc8WNbmc7ICM2NzgwCivmnoEgPiBqw607ICM2NzgxCivmnoIgPiB5dcOoOyAjNjc4Mgor5p6DID4gasOsbjsgIzY3ODMKK+aehCA+IGfFjXU7ICM2Nzg0CivmnoUgPiBqxKs7ICM2Nzg1CivmnoYgPiBtw6FvOyAjNjc4Ngor5p6HID4gcMOtOyAjNjc4Nwor5p6IID4gYsOsOyAjNjc4OAor5p6JID4gd8SDbmc7ICM2Nzg5CivmnoogPiDDoG5nOyAjNjc4QQor5p6LID4gZsSBbmc7ICM2NzhCCivmnowgPiBmw6luOyAjNjc4Qwor5p6NID4gecOsOyAjNjc4RAor5p6OID4gZsO6OyAjNjc4RQor5p6PID4gbsOhbjsgIzY3OEYKK+aekCA+IHjEqzsgIzY3OTAKK+aekSA+IGjDuTsgIzY3OTEKK+aekiA+IHnDoTsgIzY3OTIKK+aekyA+IGTFj3U7ICM2NzkzCivmnpQgPiB4w7puOyAjNjc5NAor5p6VID4gemjElW47ICM2Nzk1CivmnpYgPiB5xIFvOyAjNjc5Ngor5p6XID4gbMOtbjsgIzY3OTcKK+aemCA+IHLDuWk7ICM2Nzk4CivmnpkgPiDDqTsgIzY3OTkKK+aemiA+IG3DqWk7ICM2NzlBCivmnpsgPiB6aMOgbzsgIzY3OUIKK+aenCA+IGfFrW87ICM2NzlDCivmnp0gPiB6aMSrOyAjNjc5RAor5p6eID4gY8WNbmc7ICM2NzlFCivmnp8gPiB5w7luOyAjNjc5Rgor5p6hID4gZMWPdTsgIzY3QTEKK+aeoiA+IHNoxas7ICM2N0EyCivmnqMgPiB6xINvOyAjNjdBMwor5p6lID4gbMOsOyAjNjdBNQor5p6nID4gamnDoG47ICM2N0E3CivmnqggPiBjaMOpbmc7ICM2N0E4CivmnqogPiBxacSBbmc7ICM2N0FBCivmnqsgPiBmxJNuZzsgIzY3QUIKK+aerCA+IG7DoW47ICM2N0FDCivmnq0gPiB4acSBbzsgIzY3QUQKK+aeriA+IHhpxIFuOyAjNjdBRQor5p6vID4ga8WrOyAjNjdBRgor5p6wID4gcMOtbmc7ICM2N0IwCivmnrEgPiB5w607ICM2N0IxCivmnrIgPiB4xK07ICM2N0IyCivmnrMgPiB6aMSrOyAjNjdCMwor5p60ID4gZ3XEg2k7ICM2N0I0CivmnrUgPiB4acSBbzsgIzY3QjUKK+aetiA+IGppw6A7ICM2N0I2CivmnrcgPiBqacSBOyAjNjdCNwor5p64ID4gZ8WPdTsgIzY3QjgKK+aeuSA+IGbFqzsgIzY3QjkKK+aeuiA+IG3DsjsgIzY3QkEKK+aeuyA+IHnDrDsgIzY3QkIKK+aevCA+IHnDqDsgIzY3QkMKK+aevSA+IHnDqDsgIzY3QkQKK+aeviA+IHNow6w7ICM2N0JFCivmnr8gPiBuacOoOyAjNjdCRgor5p+AID4gYsStOyAjNjdDMAor5p+BID4gZMO5bzsgIzY3QzEKK+afgiA+IHnDrTsgIzY3QzIKK+afgyA+IGzDrW5nOyAjNjdDMwor5p+EID4gYsStbmc7ICM2N0M0Civmn4UgPiBuxK07ICM2N0M1Civmn4YgPiBsxIE7ICM2N0M2Civmn4cgPiBow6k7ICM2N0M3Civmn4ggPiBww6FuOyAjNjdDOAor5p+JID4gZsOhbjsgIzY3QzkKK+afiiA+IHpoxY1uZzsgIzY3Q0EKK+afiyA+IGTDoGk7ICM2N0NCCivmn4wgPiBjw607ICM2N0NDCivmn40gPiB5xIFuZzsgIzY3Q0QKK+afjiA+IGbFqzsgIzY3Q0UKK+afjyA+IGLDszsgIzY3Q0YKK+afkCA+IG3Fj3U7ICM2N0QwCivmn5EgPiBnxIFuOyAjNjdEMQor5p+SID4gccSrOyAjNjdEMgor5p+TID4gcsSDbjsgIzY3RDMKK+aflCA+IHLDs3U7ICM2N0Q0Civmn5UgPiBtw6BvOyAjNjdENQor5p+WID4gemjEgW87ICM2N0Q2Civmn5cgPiBzxY1uZzsgIzY3RDcKK+afmCA+IHpow6g7ICM2N0Q4Civmn5kgPiB4acOhOyAjNjdEOQor5p+aID4gecOydTsgIzY3REEKK+afmyA+IHNoxJNuOyAjNjdEQgor5p+cID4gasWtOyAjNjdEQwor5p+dID4gdMO5bzsgIzY3REQKK+afniA+IHrDuW87ICM2N0RFCivmn58gPiBuw6FuOyAjNjdERgor5p+gID4gbsOtbmc7ICM2N0UwCivmn6EgPiB5xY9uZzsgIzY3RTEKK+afoiA+IGTErTsgIzY3RTIKK+afoyA+IHpow607ICM2N0UzCivmn6QgPiB6aMSBOyAjNjdFNAor5p+lID4gY2jDoTsgIzY3RTUKK+afpiA+IGTDoG47ICM2N0U2Civmn6cgPiBnxas7ICM2N0U3Civmn6ggPiBwdTsgIzY3RTgKK+afqSA+IGrDrHU7ICM2N0U5Civmn6ogPiDEgW87ICM2N0VBCivmn6sgPiBmw7o7ICM2N0VCCivmn6wgPiBqacSDbjsgIzY3RUMKK+afrSA+IGLFjTsgIzY3RUQKK+afriA+IGTDuW87ICM2N0VFCivmn68gPiBrxJM7ICM2N0VGCivmn7AgPiBuw6BpOyAjNjdGMAor5p+xID4gemjDuTsgIzY3RjEKK+afsiA+IGLDrDsgIzY3RjIKK+afsyA+IGzErXU7ICM2N0YzCivmn7QgPiBjaMOhaTsgIzY3RjQKK+aftSA+IHpow6A7ICM2N0Y1Civmn7YgPiBzw6w7ICM2N0Y2Civmn7cgPiB6aMO5OyAjNjdGNwor5p+4ID4gcMSTaTsgIzY3RjgKK+afuSA+IHNow6w7ICM2N0Y5Civmn7ogPiBndcSDaTsgIzY3RkEKK+afuyA+IGNow6E7ICM2N0ZCCivmn7wgPiB5xINvOyAjNjdGQwor5p+9ID4ganXDqTsgIzY3RkQKK+afviA+IGrDrHU7ICM2N0ZFCivmn78gPiBzaMOsOyAjNjdGRgor5qCAID4gemjEqzsgIzY4MDAKK+aggSA+IGzErXU7ICM2ODAxCivmoIIgPiBtw6lpOyAjNjgwMgor5qCEID4gcsOzbmc7ICM2ODA0CivmoIUgPiB6aMOgOyAjNjgwNQor5qCHID4gYmnEgW87ICM2ODA3CivmoIggPiB6aMOgbjsgIzY4MDgKK+agiSA+IGppw6k7ICM2ODA5CivmoIogPiBsw7NuZzsgIzY4MEEKK+agiyA+IGTDsm5nOyAjNjgwQgor5qCMID4gbMO6OyAjNjgwQwor5qCOID4gbMOsOyAjNjgwRQor5qCPID4gbMOhbjsgIzY4MEYKK+agkCA+IHnFj25nOyAjNjgxMAor5qCRID4gc2jDuTsgIzY4MTEKK+agkiA+IHjDum47ICM2ODEyCivmoJMgPiBzaHXEgW47ICM2ODEzCivmoJQgPiBxw6w7ICM2ODE0CivmoJUgPiB6aMSTbjsgIzY4MTUKK+agliA+IHHEqzsgIzY4MTYKK+aglyA+IGzDrDsgIzY4MTcKK+agmCA+IHnErTsgIzY4MTgKK+agmSA+IHhpw6FuZzsgIzY4MTkKK+agmiA+IHpow6huOyAjNjgxQQor5qCbID4gbMOsOyAjNjgxQgor5qCcID4gc8O5OyAjNjgxQwor5qCdID4gZ3XEgTsgIzY4MUQKK+agniA+IGvEgW47ICM2ODFFCivmoJ8gPiBixKtuZzsgIzY4MUYKK+agoCA+IHLElW47ICM2ODIwCivmoKEgPiB4acOgbzsgIzY4MjEKK+agoiA+IGLDszsgIzY4MjIKK+agoyA+IHLElW47ICM2ODIzCivmoKQgPiBiw6xuZzsgIzY4MjQKK+agpSA+IHrEqzsgIzY4MjUKK+agpiA+IGNow7N1OyAjNjgyNgor5qCnID4gecOsOyAjNjgyNwor5qCoID4gamnDqTsgIzY4MjgKK+agqSA+IHjFrTsgIzY4MjkKK+agqiA+IHpoxas7ICM2ODJBCivmoKsgPiBqacOgbjsgIzY4MkIKK+agrCA+IHrDuWk7ICM2ODJDCivmoK0gPiDDqXI7ICM2ODJECivmoK4gPiDElXI7ICM2ODJFCivmoK8gPiB5xY91OyAjNjgyRgor5qCwID4gZsOhOyAjNjgzMAor5qCxID4gZ8WPbmc7ICM2ODMxCivmoLIgPiBrxINvOyAjNjgzMgor5qCzID4gbMSDbzsgIzY4MzMKK+agtCA+IHpoxIFuOyAjNjgzNAor5qC1ID4gbMOsOyAjNjgzNQor5qC2ID4geWluOyAjNjgzNgor5qC3ID4gecOhbmc7ICM2ODM3CivmoLggPiBow6k7ICM2ODM4CivmoLkgPiBnxJNuOyAjNjgzOQor5qC6ID4gemjErTsgIzY4M0EKK+aguyA+IGNow6w7ICM2ODNCCivmoLwgPiBnw6k7ICM2ODNDCivmoL0gPiB6xIFpOyAjNjgzRAor5qC+ID4gbHXDoW47ICM2ODNFCivmoL8gPiBmw7o7ICM2ODNGCivmoYAgPiBqacOpOyAjNjg0MAor5qGBID4gaMOhbmc7ICM2ODQxCivmoYIgPiBnw7lpOyAjNjg0Mgor5qGDID4gdMOhbzsgIzY4NDMKK+ahhCA+IGd1w6BuZzsgIzY4NDQKK+ahhSA+IHfDqWk7ICM2ODQ1CivmoYYgPiBrdcOgbmc7ICM2ODQ2CivmoYcgPiByw7o7ICM2ODQ3CivmoYggPiDDoG47ICM2ODQ4CivmoYkgPiDDoG47ICM2ODQ5CivmoYogPiBqdcOgbjsgIzY4NEEKK+ahiyA+IHnDrTsgIzY4NEIKK+ahjCA+IHpoxatvOyAjNjg0Qwor5qGNID4ga8WrOyAjNjg0RAor5qGOID4gemjDrTsgIzY4NEUKK+ahjyA+IHHDrW9uZzsgIzY4NEYKK+ahkCA+IHTDs25nOyAjNjg1MAor5qGRID4gc8SBbmc7ICM2ODUxCivmoZIgPiBzxIFuZzsgIzY4NTIKK+ahkyA+IGh1w6FuOyAjNjg1Mwor5qGUID4gamnDqTsgIzY4NTQKK+ahlSA+IGrDrHU7ICM2ODU1CivmoZYgPiB4dcOoOyAjNjg1Ngor5qGXID4gZMO5bzsgIzY4NTcKK+ahmCA+IHpow7lpOyAjNjg1OAor5qGZID4gecO6OyAjNjg1OQor5qGaID4gesSDbjsgIzY4NUEKK+ahnCA+IHnEq25nOyAjNjg1Qwor5qGfID4gemjDoG47ICM2ODVGCivmoaAgPiB5w6E7ICM2ODYwCivmoaEgPiBuw6FvOyAjNjg2MQor5qGiID4gemjEk247ICM2ODYyCivmoaMgPiBkxINuZzsgIzY4NjMKK+ahpCA+IHHEqzsgIzY4NjQKK+ahpSA+IHFpw6FvOyAjNjg2NQor5qGmID4gaHXDoDsgIzY4NjYKK+ahpyA+IGt1w6BpOyAjNjg2Nwor5qGoID4gamnEg25nOyAjNjg2OAor5qGpID4gemh1xIFuZzsgIzY4NjkKK+ahqiA+IHjDum47ICM2ODZBCivmoasgPiBzxatvOyAjNjg2Qgor5qGsID4gc2jEgTsgIzY4NkMKK+ahrSA+IHpoxJNuOyAjNjg2RAor5qGuID4gYsSTaTsgIzY4NkUKK+ahryA+IHTEq25nOyAjNjg2Rgor5qGwID4gZ3XEgTsgIzY4NzAKK+ahsSA+IGrDrG5nOyAjNjg3MQor5qGyID4gYsOzOyAjNjg3Mgor5qGzID4gYsOobjsgIzY4NzMKK+ahtCA+IGbDujsgIzY4NzQKK+ahtSA+IHLFrWk7ICM2ODc1CivmobYgPiB0xY9uZzsgIzY4NzYKK+ahtyA+IGp1w6k7ICM2ODc3CivmobggPiB4xKs7ICM2ODc4CivmobkgPiBsw6FuZzsgIzY4NzkKK+ahuiA+IGzErXU7ICM2ODdBCivmobsgPiBmxJNuZzsgIzY4N0IKK+ahvCA+IHHEqzsgIzY4N0MKK+ahvSA+IHfElW47ICM2ODdECivmob4gPiBqxatuOyAjNjg3RQor5qG/ID4gZ8SDbjsgIzY4N0YKK+aigCA+IGPDuTsgIzY4ODAKK+aigSA+IGxpw6FuZzsgIzY4ODEKK+aigiA+IHHDrXU7ICM2ODgyCivmooMgPiB0xK1uZzsgIzY4ODMKK+aihCA+IHnFj3U7ICM2ODg0CivmooUgPiBtw6lpOyAjNjg4NQor5qKGID4gYsSBbmc7ICM2ODg2CivmoocgPiBsw7JuZzsgIzY4ODcKK+aiiCA+IHDEk25nOyAjNjg4OAor5qKJID4gemh1xIFuZzsgIzY4ODkKK+aiiiA+IGTDrDsgIzY4OEEKK+aiiyA+IHh1xIFuOyAjNjg4Qgor5qKMID4gdMO6OyAjNjg4Qwor5qKNID4gesOgbzsgIzY4OEQKK+aijiA+IMSBbzsgIzY4OEUKK+aijyA+IGfDuTsgIzY4OEYKK+aikCA+IGLDrDsgIzY4OTAKK+aikSA+IGTDrTsgIzY4OTEKK+aikiA+IGjDoW47ICM2ODkyCivmopMgPiB6xK07ICM2ODkzCivmopQgPiB6aMSrOyAjNjg5NAor5qKVID4gcsOobjsgIzY4OTUKK+ailiA+IGLDqGk7ICM2ODk2CivmopcgPiBnxJVuZzsgIzY4OTcKK+aimCA+IGppw6BuOyAjNjg5OAor5qKZID4gaHXDoG47ICM2ODk5CivmopogPiB3xINuOyAjNjg5QQor5qKbID4gbsO6bzsgIzY4OUIKK+ainCA+IGppw6E7ICM2ODlDCivmop0gPiB0acOhbzsgIzY4OUQKK+ainiA+IGrDrDsgIzY4OUUKK+ainyA+IHhpxIFvOyAjNjg5Rgor5qKgID4gbMeaOyAjNjhBMAor5qKhID4gaHXDoW47ICM2OEExCivmoqIgPiBzaMSBbzsgIzY4QTIKK+aioyA+IGPDqW47ICM2OEEzCivmoqQgPiBmw6luOyAjNjhBNAor5qKlID4gc8WNbmc7ICM2OEE1CivmoqYgPiBtw6huZzsgIzY4QTYKK+aipyA+IHfDujsgIzY4QTcKK+aiqCA+IGzDrTsgIzY4QTgKK+aiqSA+IGzDrTsgIzY4QTkKK+aiqiA+IGTDsnU7ICM2OEFBCivmoqsgPiBjxJNuOyAjNjhBQgor5qKsID4gecStbmc7ICM2OEFDCivmoq0gPiBzxatvOyAjNjhBRAor5qKuID4gasO6OyAjNjhBRQor5qKvID4gdMSrOyAjNjhBRgor5qKwID4gamnDqDsgIzY4QjAKK+aisSA+IGvFrW47ICM2OEIxCivmorIgPiB6aMO6bzsgIzY4QjIKK+aisyA+IHNoxas7ICM2OEIzCivmorQgPiBjaMSBbjsgIzY4QjQKK+aitSA+IGbDoG47ICM2OEI1CivmorYgPiB3xJVpOyAjNjhCNgor5qK3ID4gasOsbmc7ICM2OEI3CivmorggPiBsw607ICM2OEI4CivmorkgPiBixKtuZzsgIzY4QjkKK+aivCA+IHTDoW87ICM2OEJDCivmor0gPiB6aMOsOyAjNjhCRAor5qK+ID4gbMOhaTsgIzY4QkUKK+aivyA+IGxpw6FuOyAjNjhCRgor5qOAID4gamnEg247ICM2OEMwCivmo4EgPiB6aMO6bzsgIzY4QzEKK+ajgiA+IGzDrW5nOyAjNjhDMgor5qODID4gbMOtOyAjNjhDMwor5qOEID4gccOsOyAjNjhDNAor5qOFID4gYsOsbmc7ICM2OEM1Civmo4YgPiB6aMWrbjsgIzY4QzYKK+ajhyA+IGPFjW5nOyAjNjhDNwor5qOIID4gcWnDoG47ICM2OEM4Civmo4kgPiBtacOhbjsgIzY4QzkKK+ajiiA+IHHDrTsgIzY4Q0EKK+ajiyA+IHHDrTsgIzY4Q0IKK+ajjCA+IGPEg2k7ICM2OENDCivmo40gPiBnw7luOyAjNjhDRAor5qOOID4gY2jDoW47ICM2OENFCivmo48gPiB0w6g7ICM2OENGCivmo5AgPiBmxJVpOyAjNjhEMAor5qORID4gcMOhaTsgIzY4RDEKK+ajkiA+IGLDoG5nOyAjNjhEMgor5qOTID4gcMWPdTsgIzY4RDMKK+ajlCA+IGjFq247ICM2OEQ0Civmo5UgPiB6xY1uZzsgIzY4RDUKK+ajliA+IGNow6luZzsgIzY4RDYKK+ajlyA+IHrEg287ICM2OEQ3Civmo5ggPiBqw607ICM2OEQ4Civmo5kgPiBsw6w7ICM2OEQ5Civmo5ogPiBww6luZzsgIzY4REEKK+ajmyA+IHnDuTsgIzY4REIKK+ajnCA+IHnDuTsgIzY4REMKK+ajnSA+IGfDuTsgIzY4REQKK+ajniA+IGjDum47ICM2OERFCivmo58gPiBkw7JuZzsgIzY4REYKK+ajoCA+IHTDoW5nOyAjNjhFMAor5qOhID4gZ8SBbmc7ICM2OEUxCivmo6IgPiB3xINuZzsgIzY4RTIKK+ajoyA+IGTDrDsgIzY4RTMKK+ajpCA+IHjDrTsgIzY4RTQKK+ajpSA+IGbDoW47ICM2OEU1Civmo6YgPiBjaMSTbmc7ICM2OEU2Civmo6cgPiB6aMOgbjsgIzY4RTcKK+ajqCA+IHHErTsgIzY4RTgKK+ajqSA+IHl1xIFuOyAjNjhFOQor5qOqID4gecSDbjsgIzY4RUEKK+ajqyA+IHnDuTsgIzY4RUIKK+ajrCA+IHF1xIFuOyAjNjhFQwor5qOtID4gecOsOyAjNjhFRAor5qOuID4gc8STbjsgIzY4RUUKK+ajryA+IHLElW47ICM2OEVGCivmo7AgPiBjaMO6aTsgIzY4RjAKK+ajsSA+IGzDqW5nOyAjNjhGMQor5qOyID4gccSrOyAjNjhGMgor5qOzID4gemjDum87ICM2OEYzCivmo7QgPiBmw7o7ICM2OEY0Civmo7UgPiBrxJM7ICM2OEY1Civmo7YgPiBsw6FpOyAjNjhGNgor5qO3ID4gesWNdTsgIzY4RjcKK+ajuCA+IHrFjXU7ICM2OEY4Civmo7kgPiB6aMWrbzsgIzY4RjkKK+ajuiA+IGd1xIFuOyAjNjhGQQor5qO7ID4gZsOpbjsgIzY4RkIKK+ajvCA+IGbDqW47ICM2OEZDCivmo70gPiBjaMSTbjsgIzY4RkQKK+ajviA+IHHDrW9uZzsgIzY4RkUKK+ajvyA+IG5pw6g7ICM2OEZGCivmpIAgPiB3xINuOyAjNjkwMAor5qSBID4gZ8WtbzsgIzY5MDEKK+akgiA+IGzDuTsgIzY5MDIKK+akgyA+IGjDoW87ICM2OTAzCivmpIQgPiBqacSTOyAjNjkwNAor5qSFID4gecStOyAjNjkwNQor5qSGID4gY2jDs3U7ICM2OTA2CivmpIcgPiBqxa07ICM2OTA3CivmpIggPiBqw7o7ICM2OTA4CivmpIkgPiBjaMOpbmc7ICM2OTA5CivmpIogPiB6w7pvOyAjNjkwQQor5qSLID4gbGnDoW5nOyAjNjkwQgor5qSMID4gcWnEgW5nOyAjNjkwQwor5qSNID4gemjDrTsgIzY5MEQKK+akjiA+IHpoxatpOyAjNjkwRQor5qSPID4gecSBOyAjNjkwRgor5qSQID4gasWrOyAjNjkxMAor5qSRID4gYsSTaTsgIzY5MTEKK+akkiA+IGppxIFvOyAjNjkxMgor5qSTID4gemjDum87ICM2OTEzCivmpJQgPiB6xKs7ICM2OTE0CivmpJUgPiBixKtuOyAjNjkxNQor5qSWID4gcMOpbmc7ICM2OTE2CivmpJcgPiBkw6xuZzsgIzY5MTcKK+akmCA+IGNoxa07ICM2OTE4CivmpJwgPiBqacSDbjsgIzY5MUMKK+aknSA+IGfFq2k7ICM2OTFECivmpJ4gPiB4w6w7ICM2OTFFCivmpJ8gPiBkw7o7ICM2OTFGCivmpKAgPiBxacOgbjsgIzY5MjAKK+akpCA+IGzDum87ICM2OTI0CivmpKUgPiB6aMSrOyAjNjkyNQor5qSqID4gcMOobmc7ICM2OTJBCivmpKsgPiB6aMSDbjsgIzY5MkIKK+akrSA+IHTFrW87ICM2OTJECivmpK4gPiBzxJNuOyAjNjkyRQor5qSvID4gZMO6bzsgIzY5MkYKK+aksCA+IHnDqTsgIzY5MzAKK+aksSA+IGbDsnU7ICM2OTMxCivmpLIgPiB3xJVpOyAjNjkzMgor5qSzID4gd8STaTsgIzY5MzMKK+aktCA+IGR1w6BuOyAjNjkzNAor5qS1ID4gamnEgzsgIzY5MzUKK+aktiA+IHrFjW5nOyAjNjkzNgor5qS3ID4gamnEgW47ICM2OTM3CivmpLggPiB5w607ICM2OTM4CivmpLkgPiBzaMOobjsgIzY5MzkKK+akuiA+IHjDrTsgIzY5M0EKK+akuyA+IHnDoG47ICM2OTNCCivmpLwgPiB5xINuOyAjNjkzQwor5qS9ID4gY2h1w6FuOyAjNjkzRAor5qS+ID4gemjDoG47ICM2OTNFCivmpL8gPiBjaMWrbjsgIzY5M0YKK+algCA+IHnFrTsgIzY5NDAKK+algSA+IGjDqTsgIzY5NDEKK+algiA+IHpoxIE7ICM2OTQyCivmpYMgPiB3w7I7ICM2OTQzCivmpYQgPiBwacOhbjsgIzY5NDQKK+alhSA+IGLDrDsgIzY5NDUKK+alhiA+IHnEgW87ICM2OTQ2CivmpYcgPiBow7lvOyAjNjk0Nwor5qWIID4geMWrOyAjNjk0OAor5qWJID4gcsO5bzsgIzY5NDkKK+aliiA+IHnDoW5nOyAjNjk0QQor5qWLID4gbMOgOyAjNjk0Qgor5qWMID4gecOhbjsgIzY5NEMKK+aljSA+IGLElW47ICM2OTRECivmpY4gPiBow7puOyAjNjk0RQor5qWPID4ga8O6aTsgIzY5NEYKK+alkCA+IGppw6g7ICM2OTUwCivmpZEgPiBrw7ppOyAjNjk1MQor5qWSID4gc8SrOyAjNjk1Mgor5qWTID4gZsSTbmc7ICM2OTUzCivmpZQgPiB4acOoOyAjNjk1NAor5qWVID4gdMWtbzsgIzY5NTUKK+alliA+IHpow6w7ICM2OTU2CivmpZcgPiBqacOgbjsgIzY5NTcKK+almCA+IG3DuTsgIzY5NTgKK+almSA+IG3DoG87ICM2OTU5CivmpZogPiBjaMWtOyAjNjk1QQor5qWbID4gaMO5OyAjNjk1Qgor5qWcID4gaMO6OyAjNjk1Qwor5qWdID4gbGnDoG47ICM2OTVECivmpZ4gPiBsw6luZzsgIzY5NUUKK+alnyA+IHTDrW5nOyAjNjk1Rgor5qWgID4gbsOhbjsgIzY5NjAKK+aloSA+IHnDujsgIzY5NjEKK+aloiA+IHnDs3U7ICM2OTYyCivmpaMgPiBtw6lpOyAjNjk2Mwor5qWkID4gc8WPbmc7ICM2OTY0CivmpaUgPiB4dcOgbjsgIzY5NjUKK+alpiA+IHh1w6BuOyAjNjk2Ngor5qWnID4gecSrbmc7ICM2OTY3CivmpaggPiB6aMSTbjsgIzY5NjgKK+alqSA+IHBpw6FuOyAjNjk2OQor5qWqID4gecOoOyAjNjk2QQor5qWrID4gasOtOyAjNjk2Qgor5qWsID4gamnDqTsgIzY5NkMKK+alrSA+IHnDqDsgIzY5NkQKK+alriA+IGNoxa07ICM2OTZFCivmpa8gPiBzaMWtbjsgIzY5NkYKK+alsCA+IHnDujsgIzY5NzAKK+alsSA+IGPDsnU7ICM2OTcxCivmpbIgPiB3xJNpOyAjNjk3Mgor5qWzID4gbcOpaTsgIzY5NzMKK+altCA+IGTDrDsgIzY5NzQKK+altSA+IGrDrTsgIzY5NzUKK+altiA+IGppw6k7ICM2OTc2CivmpbcgPiBrxINpOyAjNjk3Nwor5qW4ID4gccSrdTsgIzY5NzgKK+aluSA+IHnDrW5nOyAjNjk3OQor5qW6ID4gcsOzdTsgIzY5N0EKK+aluyA+IGjDqW5nOyAjNjk3Qgor5qW8ID4gbMOzdTsgIzY5N0MKK+alvSA+IGzDqDsgIzY5N0QKK+amgCA+IHDErW47ICM2OTgwCivmpoIgPiBnw6BpOyAjNjk4Mgor5qaDID4gdMOhbjsgIzY5ODMKK+amhCA+IGzEg247ICM2OTg0CivmpoUgPiB5w7puOyAjNjk4NQor5qaGID4gecO6OyAjNjk4Ngor5qaHID4gY2jDqG47ICM2OTg3CivmpoggPiBsx5g7ICM2OTg4CivmpokgPiBqxa07ICM2OTg5Civmpo0gPiB4acOoOyAjNjk4RAor5qaOID4gamnEgzsgIzY5OEUKK+amjyA+IHnDrDsgIzY5OEYKK+amkCA+IHpoxINuOyAjNjk5MAor5qaRID4gZsO5OyAjNjk5MQor5qaSID4gbsOgaTsgIzY5OTIKK+amkyA+IG3DrDsgIzY5OTMKK+amlCA+IGzDoW5nOyAjNjk5NAor5qaVID4gcsOzbmc7ICM2OTk1CivmppYgPiBnxa07ICM2OTk2CivmppcgPiBqacOgbjsgIzY5OTcKK+ammCA+IGrFrTsgIzY5OTgKK+ammSA+IHTEgzsgIzY5OTkKK+ammiA+IHnEg287ICM2OTlBCivmppsgPiB6aMSTbjsgIzY5OUIKK+amnCA+IGLEg25nOyAjNjk5Qwor5qadID4gc2jEgTsgIzY5OUQKK+amniA+IHl1w6FuOyAjNjk5RQor5qafID4gesStOyAjNjk5Rgor5qagID4gbcSrbmc7ICM2OUEwCivmpqEgPiBzw7k7ICM2OUExCivmpqIgPiBqacOgOyAjNjlBMgor5qajID4gecOhbzsgIzY5QTMKK+ampCA+IGppw6k7ICM2OUE0CivmpqUgPiBodcSDbmc7ICM2OUE1CivmpqYgPiBnw6BuOyAjNjlBNgor5qanID4gZsSVaTsgIzY5QTcKK+amqCA+IHpow6A7ICM2OUE4CivmpqkgPiBxacOhbjsgIzY5QTkKK+amqiA+IG3DoDsgIzY5QUEKK+amqyA+IHPFrW47ICM2OUFCCivmpqwgPiB5dcOhbjsgIzY5QUMKK+amrSA+IHhpw6g7ICM2OUFECivmpq4gPiByw7NuZzsgIzY5QUUKK+amryA+IHNow607ICM2OUFGCivmprAgPiB6aMSrOyAjNjlCMAor5qaxID4gY8WraTsgIzY5QjEKK+amsiA+IHnDum47ICM2OUIyCivmprMgPiB0w61uZzsgIzY5QjMKK+amtCA+IGzDrXU7ICM2OUI0CivmprUgPiByw7NuZzsgIzY5QjUKK+amtiA+IHTDoW5nOyAjNjlCNgor5qa3ID4gcXXDqDsgIzY5QjcKK+amuCA+IHpoxIFpOyAjNjlCOAor5qa5ID4gc8SrOyAjNjlCOQor5qa6ID4gc2jDqG5nOyAjNjlCQQor5qa7ID4gdMOgOyAjNjlCQgor5qa8ID4ga8OoOyAjNjlCQwor5qa9ID4geMSrOyAjNjlCRAor5qa+ID4gZ8O5OyAjNjlCRQor5qa/ID4gccSrOyAjNjlCRgor5qeAID4ga8SDbzsgIzY5QzAKK+angSA+IGfEg287ICM2OUMxCivmp4IgPiBzxatuOyAjNjlDMgor5qeDID4gcMOhbjsgIzY5QzMKK+anhCA+IHTEgW87ICM2OUM0Civmp4UgPiBnw6k7ICM2OUM1Civmp4YgPiB4w7puOyAjNjlDNgor5qeHID4gZGnEgW47ICM2OUM3Civmp4ggPiBuw7J1OyAjNjlDOAor5qeJID4gasOtOyAjNjlDOQor5qeKID4gc2jDuW87ICM2OUNBCivmp4sgPiBnw7J1OyAjNjlDQgor5qeMID4gY2jDumk7ICM2OUNDCivmp40gPiBxacSBbmc7ICM2OUNECivmp44gPiBjaMSBOyAjNjlDRQor5qePID4gcWnEg247ICM2OUNGCivmp5AgPiBodcOhaTsgIzY5RDAKK+ankSA+IG3DqWk7ICM2OUQxCivmp5IgPiB4w7k7ICM2OUQyCivmp5MgPiBnw6BuZzsgIzY5RDMKK+anlCA+IGfEgW87ICM2OUQ0Civmp5UgPiB6aMO6bzsgIzY5RDUKK+anliA+IHTDuW87ICM2OUQ2Civmp5ggPiB5w6BuZzsgIzY5RDgKK+anmSA+IGRpxIFuOyAjNjlEOQor5qeaID4gamnEgzsgIzY5REEKK+anmyA+IGppw6BuOyAjNjlEQgor5qecID4gesO5aTsgIzY5REMKK+annyA+IGLEq247ICM2OURGCivmp6AgPiB6aMWrOyAjNjlFMAor5qeiID4geMOtOyAjNjlFMgor5qejID4gccStOyAjNjlFMwor5qekID4gbGnDoW47ICM2OUU0Civmp6UgPiBow7lpOyAjNjlFNQor5qemID4gecOzbmc7ICM2OUU2Civmp6cgPiBxacOgbjsgIzY5RTcKK+anqCA+IGfFrW87ICM2OUU4Civmp6kgPiBnw6BpOyAjNjlFOQor5qeqID4gZ8OgaTsgIzY5RUEKK+anqyA+IHR1w6FuOyAjNjlFQgor5qesID4gaHXDoDsgIzY5RUMKK+anrSA+IGPDuTsgIzY5RUQKK+anriA+IHPEk247ICM2OUVFCivmp68gPiBjxatpOyAjNjlFRgor5qewID4gYsOobmc7ICM2OUYwCivmp7EgPiB5xY91OyAjNjlGMQor5qeyID4gaMO6OyAjNjlGMgor5qezID4gamnEg25nOyAjNjlGMwor5qe0ID4gaMO5OyAjNjlGNAor5qe1ID4gaHXDoG47ICM2OUY1Civmp7YgPiBrw7lpOyAjNjlGNgor5qe3ID4gecOsOyAjNjlGNwor5qe4ID4gbmnDqDsgIzY5RjgKK+anuSA+IGfEgW87ICM2OUY5Civmp7ogPiBrxIFuZzsgIzY5RkEKK+anuyA+IGfFq2k7ICM2OUZCCivmp7wgPiBnxatpOyAjNjlGQwor5qe9ID4gY8OhbzsgIzY5RkQKK+anviA+IG3DoW47ICM2OUZFCivmp78gPiBqxK1uOyAjNjlGRgor5qiAID4gZMOsOyAjNkEwMAor5qiBID4gemh1xIFuZzsgIzZBMDEKK+aogiA+IGzDqDsgIzZBMDIKK+aogyA+IGzDoW5nOyAjNkEwMwor5qiEID4gY2jDqW47ICM2QTA0CivmqIUgPiBjxY1uZzsgIzZBMDUKK+aohiA+IGzDrTsgIzZBMDYKK+aohyA+IHjEq3U7ICM2QTA3CivmqIggPiBxw61uZzsgIzZBMDgKK+aoiSA+IHNodcSDbmc7ICM2QTA5CivmqIogPiBmw6FuOyAjNkEwQQor5qiLID4gdMWNbmc7ICM2QTBCCivmqIwgPiBndcOgbjsgIzZBMEMKK+aojSA+IGrEqzsgIzZBMEQKK+aojiA+IHPFq287ICM2QTBFCivmqI8gPiBsxJVpOyAjNkEwRgor5qiQID4gbMWtOyAjNkExMAor5qiRID4gbGnDoW5nOyAjNkExMQor5qiSID4gbcOsOyAjNkExMgor5qiTID4gbMOzdTsgIzZBMTMKK+aolCA+IGNow6FvOyAjNkExNAor5qiVID4gc8O5OyAjNkExNQor5qiWID4ga8STOyAjNkExNgor5qiXID4gc2jFqzsgIzZBMTcKK+aomCA+IHTDoW5nOyAjNkExOAor5qiZID4gYmnEgW87ICM2QTE5CivmqJogPiBsw7k7ICM2QTFBCivmqJsgPiBqxKt1OyAjNkExQgor5qicID4gc2jDuTsgIzZBMUMKK+aonSA+IHpoxIE7ICM2QTFECivmqJ4gPiBzaMWrOyAjNkExRQor5qifID4gemjEgW5nOyAjNkExRgor5qigID4gbcOpbjsgIzZBMjAKK+aooSA+IG3DszsgIzZBMjEKK+aooiA+IG5pxINvOyAjNkEyMgor5qijID4gecOgbmc7ICM2QTIzCivmqKQgPiB0acOhbzsgIzZBMjQKK+aopSA+IHDDqW5nOyAjNkEyNQor5qimID4gemjDuTsgIzZBMjYKK+aopyA+IHNoxIE7ICM2QTI3CivmqKggPiB4xKs7ICM2QTI4CivmqKkgPiBxdcOhbjsgIzZBMjkKK+aoqiA+IGjDqW5nOyAjNkEyQQor5qirID4gamnEgW47ICM2QTJCCivmqKwgPiBjxY1uZzsgIzZBMkMKK+aoryA+IHFpw6FuZzsgIzZBMkYKK+aosSA+IHnEq25nOyAjNkEzMQor5qiyID4gw6hyOyAjNkEzMgor5qizID4geMOtbjsgIzZBMzMKK+aotCA+IHpow607ICM2QTM0CivmqLUgPiBxacOhbzsgIzZBMzUKK+aotiA+IHrFq2k7ICM2QTM2CivmqLcgPiBjxY1uZzsgIzZBMzcKK+aouCA+IHDDujsgIzZBMzgKK+aouSA+IHNow7k7ICM2QTM5CivmqLogPiBodcOgOyAjNkEzQQor5qi7ID4ga8O5aTsgIzZBM0IKK+aovCA+IHpoxJNuOyAjNkEzQwor5qi9ID4gesWrbjsgIzZBM0QKK+aoviA+IHl1w6g7ICM2QTNFCivmqL8gPiB6aMSDbjsgIzZBM0YKK+apgCA+IHjEqzsgIzZBNDAKK+apgSA+IHjDum47ICM2QTQxCivmqYIgPiBkacOgbjsgIzZBNDIKK+apgyA+IGbEgTsgIzZBNDMKK+aphCA+IGfEg247ICM2QTQ0CivmqYUgPiBtw7M7ICM2QTQ1CivmqYYgPiB3xa07ICM2QTQ2CivmqYcgPiBxacSBbzsgIzZBNDcKK+apiCA+IG7DoW87ICM2QTQ4CivmqYkgPiBsw6xuOyAjNkE0OQor5qmKID4gbMOtdTsgIzZBNEEKK+apiyA+IHFpw6FvOyAjNkE0Qgor5qmMID4geGnDoG47ICM2QTRDCivmqY0gPiByw7luOyAjNkE0RAor5qmOID4gZsOhbjsgIzZBNEUKK+apjyA+IHpoxINuOyAjNkE0Rgor5qmQID4gdMO5bzsgIzZBNTAKK+apkSA+IGzEg287ICM2QTUxCivmqZIgPiB5w7puOyAjNkE1Mgor5qmTID4gc2jDuW47ICM2QTUzCivmqZQgPiB0w7ppOyAjNkE1NAor5qmVID4gY2jEk25nOyAjNkE1NQor5qmWID4gdMOhbmc7ICM2QTU2CivmqZcgPiBtw6luZzsgIzZBNTcKK+apmCA+IGrDujsgIzZBNTgKK+apmSA+IGNow6luZzsgIzZBNTkKK+apmiA+IHPDuTsgIzZBNUEKK+apmyA+IGp1w6k7ICM2QTVCCivmqZwgPiBqdcOpOyAjNkE1Qwor5qmdID4gdMSBbjsgIzZBNUQKK+apniA+IGjDuWk7ICM2QTVFCivmqZ8gPiBqxKs7ICM2QTVGCivmqaAgPiBuxa1vOyAjNkE2MAor5qmhID4geGnDoG5nOyAjNkE2MQor5qmiID4gdMWtbzsgIzZBNjIKK+apoyA+IG7ErW5nOyAjNkE2Mwor5qmkID4gcsWtaTsgIzZBNjQKK+appSA+IHpoxas7ICM2QTY1CivmqaYgPiBjaHXDoW5nOyAjNkE2Ngor5qmnID4gesSTbmc7ICM2QTY3CivmqaggPiBmw6luOyAjNkE2OAor5qmpID4gccOtb25nOyAjNkE2OQor5qmqID4gcsSDbjsgIzZBNkEKK+apqyA+IGjDqW5nOyAjNkE2Qgor5qmsID4gY8OpbjsgIzZBNkMKK+aprSA+IGfFqzsgIzZBNkQKK+apriA+IGzErXU7ICM2QTZFCivmqa8gPiBsw6BvOyAjNkE2Rgor5qmwID4gZ8SBbzsgIzZBNzAKK+apsSA+IGNow7o7ICM2QTcxCivmqbYgPiBqw607ICM2QTc2CivmqbcgPiBkxY11OyAjNkE3Nwor5qm5ID4gbMWtOyAjNkE3OQor5qm8ID4geXXDoW47ICM2QTdDCivmqb0gPiB0w6A7ICM2QTdECivmqb4gPiBzaMWrOyAjNkE3RQor5qm/ID4gamnEgW5nOyAjNkE3Rgor5qqAID4gdMOhbjsgIzZBODAKK+aqgSA+IGzErW47ICM2QTgxCivmqoIgPiBuw7NuZzsgIzZBODIKK+aqgyA+IHnErW47ICM2QTgzCivmqoQgPiB4w607ICM2QTg0CivmqoUgPiBzw7lpOyAjNkE4NQor5qqGID4gc2jEgW47ICM2QTg2CivmqocgPiB6w7lpOyAjNkE4Nwor5qqIID4geHXDoW47ICM2QTg4CivmqokgPiBjaMSTbmc7ICM2QTg5CivmqoogPiBnw6BuOyAjNkE4QQor5qqLID4gasWrOyAjNkE4Qgor5qqMID4gesO5aTsgIzZBOEMKK+aqjSA+IHnDrDsgIzZBOEQKK+aqjiA+IHHDrW47ICM2QThFCivmqo8gPiBwxa07ICM2QThGCivmqpAgPiB5w6FuOyAjNkE5MAor5qqRID4gbMOpaTsgIzZBOTEKK+aqkiA+IGbEk25nOyAjNkE5Mgor5qqTID4gaMWtaTsgIzZBOTMKK+aqlCA+IGTEg25nOyAjNkE5NAor5qqVID4gasOsOyAjNkE5NQor5qqWID4gc8O5aTsgIzZBOTYKK+aqlyA+IGLDsjsgIzZBOTcKK+aqmCA+IGLDrDsgIzZBOTgKK+aqmSA+IGTErW5nOyAjNkE5OQor5qqaID4gY2jFrTsgIzZBOUEKK+aqmyA+IHpodcSBOyAjNkE5Qgor5qqcID4ga3XDoGk7ICM2QTlDCivmqp0gPiBqw607ICM2QTlECivmqp4gPiBqacSVOyAjNkE5RQor5qqfID4gamnEgzsgIzZBOUYKK+aqoCA+IHHDrW5nOyAjNkFBMAor5qqhID4gemjDqDsgIzZBQTEKK+aqoiA+IGppxINuOyAjNkFBMgor5qqjID4gcWnDoW5nOyAjNkFBMwor5qqkID4gZMOgbzsgIzZBQTQKK+aqpSA+IHnErTsgIzZBQTUKK+aqpiA+IGJpxINvOyAjNkFBNgor5qqnID4gc8WNbmc7ICM2QUE3CivmqqggPiBzaMSTOyAjNkFBOAor5qqpID4gbMStbjsgIzZBQTkKK+aqqyA+IGNow6E7ICM2QUFCCivmqqwgPiBtw6luZzsgIzZBQUMKK+aqrSA+IHnDrW47ICM2QUFECivmqq4gPiB0w6FvOyAjNkFBRQor5qqvID4gdMOhaTsgIzZBQUYKK+aqsCA+IG1pw6FuOyAjNkFCMAor5qqxID4gccOtOyAjNkFCMQor5qqyID4gdMOzYW47ICM2QUIyCivmqrMgPiBixKtuOyAjNkFCMwor5qq0ID4gaMO5bzsgIzZBQjQKK+aqtSA+IGrDrDsgIzZBQjUKK+aqtiA+IHFpxIFuOyAjNkFCNgor5qq3ID4gbcOtOyAjNkFCNwor5qq4ID4gbsOtbmc7ICM2QUI4CivmqrkgPiB5xKs7ICM2QUI5CivmqrogPiBnxINvOyAjNkFCQQor5qq7ID4gamnDoG47ICM2QUJCCivmqrwgPiB5w6xuOyAjNkFCQwor5qq9ID4gw6lyOyAjNkFCRAor5qq+ID4gccStbmc7ICM2QUJFCivmqr8gPiB5xINuOyAjNkFCRgor5quAID4gccOtOyAjNkFDMAor5quBID4gbcOsOyAjNkFDMQor5quCID4gemjDoG87ICM2QUMyCivmq4MgPiBnw7lpOyAjNkFDMwor5quEID4gY2jFq247ICM2QUM0Civmq4UgPiBqxKs7ICM2QUM1Civmq4YgPiBrw7ppOyAjNkFDNgor5quHID4gcMOzOyAjNkFDNwor5quIID4gZMOobmc7ICM2QUM4Civmq4kgPiBjaMO6OyAjNkFDOQor5quLID4gbWnDoW47ICM2QUNCCivmq4wgPiB5xY11OyAjNkFDQwor5quNID4gemjDrDsgIzZBQ0QKK+arjiA+IGd1w6BuZzsgIzZBQ0UKK+arjyA+IHFpxIFuOyAjNkFDRgor5quQID4gbMSVaTsgIzZBRDAKK+arkSA+IGzElWk7ICM2QUQxCivmq5IgPiBzw6A7ICM2QUQyCivmq5MgPiBsxa07ICM2QUQzCivmq5QgPiBsw6w7ICM2QUQ0Civmq5UgPiBjdcOhbjsgIzZBRDUKK+arliA+IGzHmDsgIzZBRDYKK+arlyA+IG1pw6g7ICM2QUQ3Civmq5ggPiBow7lpOyAjNkFEOAor5quZID4gxY11OyAjNkFEOQor5quaID4gbMeYOyAjNkFEQQor5qubID4gamnDqTsgIzZBREIKK+arnCA+IGfEgW87ICM2QURDCivmq50gPiBkw7o7ICM2QURECivmq54gPiB5dcOhbjsgIzZBREUKK+arnyA+IGzDrDsgIzZBREYKK+aroCA+IGbDqGk7ICM2QUUwCivmq6EgPiB6aMO6bzsgIzZBRTEKK+aroiA+IHPFj3U7ICM2QUUyCivmq6MgPiBsacOhbjsgIzZBRTMKK+arpSA+IGNow7o7ICM2QUU1Civmq6cgPiB6aMWrOyAjNkFFNwor5quoID4gbMO6OyAjNkFFOAor5qupID4gecOhbjsgIzZBRTkKK+arqiA+IGzDrDsgIzZBRUEKK+arqyA+IHpoxas7ICM2QUVCCivmq6wgPiBjaMOobjsgIzZBRUMKK+arrSA+IGppw6k7ICM2QUVECivmq64gPiDDqDsgIzZBRUUKK+arryA+IHPFqzsgIzZBRUYKK+arsCA+IGh1w6FpOyAjNkFGMAor5quxID4gbmnDqDsgIzZBRjEKK+arsiA+IHnDuTsgIzZBRjIKK+arsyA+IGzDs25nOyAjNkFGMwor5qu0ID4gbMOgaTsgIzZBRjQKK+artiA+IHhpxINuOyAjNkFGNgor5qu4ID4gasWtOyAjNkFGOAor5qu5ID4geGnEgW87ICM2QUY5Civmq7ogPiBsw61uZzsgIzZBRkEKK+aruyA+IHnEq25nOyAjNkFGQgor5qu8ID4gamnEgW47ICM2QUZDCivmq70gPiB5xK1uOyAjNkFGRAor5qu+ID4gecOzdTsgIzZBRkUKK+arvyA+IHnDrW5nOyAjNkFGRgor5qyAID4geGnEgW5nOyAjNkIwMAor5qyBID4gbsOzbmc7ICM2QjAxCivmrIIgPiBiw7M7ICM2QjAyCivmrIMgPiBjaMOhbjsgIzZCMDMKK+ashCA+IGzDoW47ICM2QjA0CivmrIUgPiBqxa07ICM2QjA1CivmrIYgPiBzaHXEgW5nOyAjNkIwNgor5qyHID4gc2jDqDsgIzZCMDcKK+asiCA+IHfDqWk7ICM2QjA4CivmrIkgPiBjw7JuZzsgIzZCMDkKK+asiiA+IHF1w6FuOyAjNkIwQQor5qyLID4gccO6OyAjNkIwQgor5qyOID4gecO5OyAjNkIwRQor5qyPID4gbMO6bzsgIzZCMEYKK+askCA+IGzErTsgIzZCMTAKK+askSA+IHrDoG47ICM2QjExCivmrJIgPiBsdcOhbjsgIzZCMTIKK+askyA+IGTEg25nOyAjNkIxMwor5qyUID4ganXDqTsgIzZCMTQKK+asliA+IGzEg247ICM2QjE2CivmrJcgPiBsw6FuOyAjNkIxNwor5qyYID4gemjFrTsgIzZCMTgKK+asmSA+IGzDqWk7ICM2QjE5CivmrJogPiBsxK07ICM2QjFBCivmrJsgPiBiw6A7ICM2QjFCCivmrJwgPiBuw6FuZzsgIzZCMUMKK+asnSA+IHnDuTsgIzZCMUQKK+asniA+IGzDrW5nOyAjNkIxRQor5qygID4gcWnDoG47ICM2QjIwCivmrKEgPiBjw6w7ICM2QjIxCivmrKIgPiBodcSBbjsgIzZCMjIKK+asoyA+IHjEq247ICM2QjIzCivmrKQgPiB5w7o7ICM2QjI0CivmrKUgPiB5w7k7ICM2QjI1CivmrKYgPiBxacSBbjsgIzZCMjYKK+aspyA+IMWNdTsgIzZCMjcKK+asqCA+IHjFqzsgIzZCMjgKK+asqSA+IGNoxIFvOyAjNkIyOQor5qyqID4gY2jDuTsgIzZCMkEKK+asqyA+IGNoxKs7ICM2QjJCCivmrKwgPiBrw6BpOyAjNkIyQwor5qytID4gecOsOyAjNkIyRAor5qyuID4ganXDqTsgIzZCMkUKK+asryA+IHjDrTsgIzZCMkYKK+assCA+IHjFqzsgIzZCMzAKK+assSA+IHhpw6A7ICM2QjMxCivmrLIgPiB5w7k7ICM2QjMyCivmrLMgPiBrdcOgaTsgIzZCMzMKK+astCA+IGzDoW5nOyAjNkIzNAor5qy1ID4ga3XEg247ICM2QjM1CivmrLYgPiBzaMO5bzsgIzZCMzYKK+astyA+IHjEqzsgIzZCMzcKK+asuCA+IMSDaTsgIzZCMzgKK+asuSA+IHnEqzsgIzZCMzkKK+asuiA+IHHEqzsgIzZCM0EKK+asuyA+IGjFqzsgIzZCM0IKK+asvCA+IGNoxK07ICM2QjNDCivmrL0gPiBxxKtuOyAjNkIzRAor5qy+ID4ga3XEg247ICM2QjNFCivmrL8gPiBrxINuOyAjNkIzRgor5q2AID4ga3XEg247ICM2QjQwCivmrYEgPiBrxINuOyAjNkI0MQor5q2CID4gY2h1w6FuOyAjNkI0Mgor5q2DID4gc2jDoDsgIzZCNDMKK+athCA+IGd1YTsgIzZCNDQKK+athSA+IHnEq247ICM2QjQ1CivmrYYgPiB4xKtuOyAjNkI0Ngor5q2HID4geGnEkzsgIzZCNDcKK+atiCA+IHnDujsgIzZCNDgKK+atiSA+IHFpw6BuOyAjNkI0OQor5q2KID4geGnEgW87ICM2QjRBCivmrYsgPiB5w607ICM2QjRCCivmrYwgPiBnxJM7ICM2QjRDCivmrY0gPiB3xas7ICM2QjRECivmrY4gPiB0w6BuOyAjNkI0RQor5q2PID4gasOsbjsgIzZCNEYKK+atkCA+IMWNdTsgIzZCNTAKK+atkSA+IGjFqzsgIzZCNTEKK+atkiA+IHTDrDsgIzZCNTIKK+atkyA+IGh1xIFuOyAjNkI1Mwor5q2UID4geMWrOyAjNkI1NAor5q2VID4gcMOobjsgIzZCNTUKK+atliA+IHjEqzsgIzZCNTYKK+atlyA+IHhpw6BvOyAjNkI1Nwor5q2YID4geMWrOyAjNkI1OAor5q2ZID4geMOsOyAjNkI1OQor5q2bID4gbGnDoG47ICM2QjVCCivmrZwgPiBjaMO5OyAjNkI1Qwor5q2dID4gecOsOyAjNkI1RAor5q2eID4ga8SDbjsgIzZCNUUKK+atnyA+IHnDujsgIzZCNUYKK+atoCA+IGNow7lvOyAjNkI2MAor5q2hID4gaHXEgW47ICM2QjYxCivmraIgPiB6aMStOyAjNkI2Mgor5q2jID4gemjDqG5nOyAjNkI2Mwor5q2kID4gY8StOyAjNkI2NAor5q2lID4gYsO5OyAjNkI2NQor5q2mID4gd8WtOyAjNkI2Ngor5q2nID4gccOtOyAjNkI2Nwor5q2oID4gYsO5OyAjNkI2OAor5q2pID4gYsO5OyAjNkI2OQor5q2qID4gd8SBaTsgIzZCNkEKK+atqyA+IGrDuTsgIzZCNkIKK+atrCA+IHFpw6FuOyAjNkI2Qwor5q2tID4gY2jDrTsgIzZCNkQKK+atriA+IHPDqDsgIzZCNkUKK+atryA+IGNoxK07ICM2QjZGCivmrbAgPiBzw6g7ICM2QjcwCivmrbEgPiB6aMWPbmc7ICM2QjcxCivmrbIgPiBzw7lpOyAjNkI3Mgor5q2zID4gc8O5aTsgIzZCNzMKK+attCA+IGzDrDsgIzZCNzQKK+attSA+IGPDuW87ICM2Qjc1CivmrbYgPiB5w7o7ICM2Qjc2CivmrbcgPiBsw6w7ICM2Qjc3CivmrbggPiBnxatpOyAjNkI3OAor5q25ID4gZMSDaTsgIzZCNzkKK+atuiA+IGTEg2k7ICM2QjdBCivmrbsgPiBzxK07ICM2QjdCCivmrbwgPiBqacSBbjsgIzZCN0MKK+atvSA+IHpow6k7ICM2QjdECivmrb4gPiBtw7I7ICM2QjdFCivmrb8gPiBtw7I7ICM2QjdGCivmroAgPiB5xINvOyAjNkI4MAor5q6BID4gbcOyOyAjNkI4MQor5q6CID4gY8O6OyAjNkI4Mgor5q6DID4gecSBbmc7ICM2QjgzCivmroQgPiB0acSDbjsgIzZCODQKK+auhSA+IHNoxJNuZzsgIzZCODUKK+auhiA+IGTDoGk7ICM2Qjg2CivmrocgPiBzaMSBbmc7ICM2Qjg3CivmroggPiB4w7k7ICM2Qjg4CivmrokgPiB4w7luOyAjNkI4OQor5q6KID4gc2jFqzsgIzZCOEEKK+auiyA+IGPDoW47ICM2QjhCCivmrowgPiBqdcOpOyAjNkI4Qwor5q6NID4gcGnEg287ICM2QjhECivmro4gPiBxacOgOyAjNkI4RQor5q6PID4gccOsdTsgIzZCOEYKK+aukCA+IHPDuTsgIzZCOTAKK+aukSA+IHHDrW5nOyAjNkI5MQor5q6SID4gecWtbjsgIzZCOTIKK+aukyA+IGxpw6BuOyAjNkI5Mwor5q6UID4gecOsOyAjNkI5NAor5q6VID4gZsWPdTsgIzZCOTUKK+auliA+IHpow607ICM2Qjk2CivmrpcgPiB5w6g7ICM2Qjk3CivmrpggPiBjw6FuOyAjNkI5OAor5q6ZID4gaMWrbjsgIzZCOTkKK+aumiA+IGTEgW47ICM2QjlBCivmrpsgPiBqw607ICM2QjlCCivmrpwgPiB5w6g7ICM2QjlDCivmrp0gPiB6aGVuOyAjNkI5RAor5q6eID4gecWtbjsgIzZCOUUKK+aunyA+IHfEk247ICM2QjlGCivmrqAgPiBjaMOydTsgIzZCQTAKK+auoSA+IGLDrG47ICM2QkExCivmrqIgPiB0w6w7ICM2QkEyCivmrqMgPiBqxK1uOyAjNkJBMwor5q6kID4gc2jEgW5nOyAjNkJBNAor5q6lID4gecOtbjsgIzZCQTUKK+aupiA+IGRpxIFvOyAjNkJBNgor5q6nID4gY8O5OyAjNkJBNwor5q6oID4gaMO5aTsgIzZCQTgKK+auqSA+IGN1w6BuOyAjNkJBOQor5q6qID4gecOsOyAjNkJBQQor5q6rID4gZMSBbjsgIzZCQUIKK+aurCA+IGTDuTsgIzZCQUMKK+aurSA+IGppxIFuZzsgIzZCQUQKK+auriA+IGxpw6BuOyAjNkJBRQor5q6vID4gYsOsbjsgIzZCQUYKK+ausCA+IGTDujsgIzZCQjAKK+ausiA+IGppxIFuOyAjNkJCMgor5q6zID4gc2jFqzsgIzZCQjMKK+autCA+IMWNdTsgIzZCQjQKK+autSA+IGR1w6BuOyAjNkJCNQor5q62ID4gemjDuTsgIzZCQjYKK+autyA+IHnEq247ICM2QkI3CivmrrggPiBxw6xuZzsgIzZCQjgKK+auuSA+IHnDrDsgIzZCQjkKK+auuiA+IHNoxIE7ICM2QkJBCivmrrsgPiBxdcOoOyAjNkJCQgor5q68ID4ga8OpOyAjNkJCQwor5q69ID4gecOhbzsgIzZCQkQKK+auviA+IGrDuW47ICM2QkJFCivmrr8gPiBkacOgbjsgIzZCQkYKK+avgCA+IGjFrWk7ICM2QkMwCivmr4EgPiBoxa1pOyAjNkJDMQor5q+CID4gZ8WtOyAjNkJDMgor5q+DID4gcXXDqDsgIzZCQzMKK+avhCA+IGrEqzsgIzZCQzQKK+avhSA+IHnDrDsgIzZCQzUKK+avhiA+IMWNdTsgIzZCQzYKK+avhyA+IGjFrWk7ICM2QkM3Civmr4ggPiBkdcOgbjsgIzZCQzgKK+aviSA+IHnEqzsgIzZCQzkKK+aviiA+IHhpxIFvOyAjNkJDQQor5q+LID4gd8O6OyAjNkJDQgor5q+MID4gZ3XDoG47ICM2QkNDCivmr40gPiBtxa07ICM2QkNECivmr44gPiBtxJVpOyAjNkJDRQor5q+PID4gbcSVaTsgIzZCQ0YKK+avkCA+IMSDaTsgIzZCRDAKK+avkSA+IHrFrW87ICM2QkQxCivmr5IgPiBkw7o7ICM2QkQyCivmr5MgPiB5w7k7ICM2QkQzCivmr5QgPiBixK07ICM2QkQ0Civmr5UgPiBiw6w7ICM2QkQ1Civmr5YgPiBiw6w7ICM2QkQ2Civmr5cgPiBww607ICM2QkQ3Civmr5ggPiBww607ICM2QkQ4Civmr5kgPiBiw6w7ICM2QkQ5Civmr5ogPiBjaMOhbjsgIzZCREEKK+avmyA+IG3DoW87ICM2QkRCCivmr54gPiBww7o7ICM2QkRFCivmr6AgPiBqacSBOyAjNkJFMAor5q+hID4gemjEgW47ICM2QkUxCivmr6IgPiBzxIFpOyAjNkJFMgor5q+jID4gbcO5OyAjNkJFMwor5q+kID4gdMO5bzsgIzZCRTQKK+avpSA+IHjDum47ICM2QkU1Civmr6YgPiDDqHI7ICM2QkU2Civmr6cgPiByw7NuZzsgIzZCRTcKK+avqCA+IHhpxINuOyAjNkJFOAor5q+pID4gasO6OyAjNkJFOQor5q+qID4gbcO6OyAjNkJFQQor5q+rID4gaMOhbzsgIzZCRUIKK+avrCA+IHHDrXU7ICM2QkVDCivmr60gPiBkw7J1OyAjNkJFRAor5q+vID4gdMSDbjsgIzZCRUYKK+avsCA+IHDDqWk7ICM2QkYwCivmr7EgPiBqw7o7ICM2QkYxCivmr7IgPiBkw7pvOyAjNkJGMgor5q+zID4gY8O5aTsgIzZCRjMKK+avtCA+IGLEqzsgIzZCRjQKK+avtSA+IHPEgW47ICM2QkY1Civmr7cgPiBtw6BvOyAjNkJGNwor5q+4ID4gc8WraTsgIzZCRjgKK+avuSA+IHnFqzsgIzZCRjkKK+avuiA+IHnFqzsgIzZCRkEKK+avuyA+IHTDuW87ICM2QkZCCivmr7wgPiBow6k7ICM2QkZDCivmr70gPiBqacOgbjsgIzZCRkQKK+avviA+IHTDoDsgIzZCRkUKK+avvyA+IHPEgW47ICM2QkZGCivmsIAgPiBsx5g7ICM2QzAwCivmsIEgPiBtw7o7ICM2QzAxCivmsIIgPiBsw607ICM2QzAyCivmsIMgPiB0w7NuZzsgIzZDMDMKK+awhCA+IHLFj25nOyAjNkMwNAor5rCFID4gY2jEg25nOyAjNkMwNQor5rCGID4gcMWtOyAjNkMwNgor5rCHID4gbMO6bzsgIzZDMDcKK+awiCA+IHpoxIFuOyAjNkMwOAor5rCJID4gc8OgbzsgIzZDMDkKK+awiiA+IHpoxIFuOyAjNkMwQQor5rCLID4gbcOpbmc7ICM2QzBCCivmsIwgPiBsw7pvOyAjNkMwQwor5rCNID4gccO6OyAjNkMwRAor5rCOID4gZGnDqTsgIzZDMEUKK+awjyA+IHNow6w7ICM2QzBGCivmsJAgPiBkxK07ICM2QzEwCivmsJEgPiBtw61uOyAjNkMxMQor5rCSID4ganXDqTsgIzZDMTIKK+awkyA+IG3DoW5nOyAjNkMxMwor5rCUID4gccOsOyAjNkMxNAor5rCVID4gcGnEkzsgIzZDMTUKK+awliA+IG7Eg2k7ICM2QzE2CivmsJcgPiBxw6w7ICM2QzE3CivmsJggPiBkxIFvOyAjNkMxOAor5rCZID4geGnEgW47ICM2QzE5CivmsJogPiBjaHXEgW47ICM2QzFBCivmsJsgPiBmxJNuOyAjNkMxQgor5rCcID4gcsOsOyAjNkMxQwor5rCdID4gbsOoaTsgIzZDMUQKK+awnyA+IGbDujsgIzZDMUYKK+awoCA+IHNoxJNuOyAjNkMyMAor5rChID4gZMWNbmc7ICM2QzIxCivmsKIgPiBxxKtuZzsgIzZDMjIKK+awoyA+IHHDrDsgIzZDMjMKK+awpCA+IHnEq247ICM2QzI0CivmsKUgPiB4xKs7ICM2QzI1CivmsKYgPiBow6BpOyAjNkMyNgor5rCnID4gecSDbmc7ICM2QzI3CivmsKggPiDEgW47ICM2QzI4CivmsKkgPiB5w6A7ICM2QzI5CivmsKogPiBrw6g7ICM2QzJBCivmsKsgPiBxxKtuZzsgIzZDMkIKK+awrCA+IHnDoDsgIzZDMkMKK+awrSA+IGTFjW5nOyAjNkMyRAor5rCuID4gZMOgbjsgIzZDMkUKK+awryA+IGzHnDsgIzZDMkYKK+awsCA+IHHEq25nOyAjNkMzMAor5rCxID4gecSDbmc7ICM2QzMxCivmsLIgPiB5xatuOyAjNkMzMgor5rCzID4gecWrbjsgIzZDMzMKK+awtCA+IHNoxa1pOyAjNkMzNAor5rC1ID4gc8SBbicgJ2RpxINuJyAnc2jFrWk7ICM2QzM1CivmsLYgPiB6aMSVbmc7ICM2QzM2CivmsLcgPiBixKtuZzsgIzZDMzcKK+awuCA+IHnFj25nOyAjNkMzOAor5rC5ID4gZMOgbmc7ICM2QzM5CivmsLsgPiBsw6g7ICM2QzNCCivmsLwgPiBuw6w7ICM2QzNDCivmsL0gPiB0xa1uOyAjNkMzRAor5rC+ID4gZsOgbjsgIzZDM0UKK+awvyA+IGfFrWk7ICM2QzNGCivmsYAgPiB0xKtuZzsgIzZDNDAKK+axgSA+IHpoxKs7ICM2QzQxCivmsYIgPiBxw611OyAjNkM0Mgor5rGDID4gYsSrbjsgIzZDNDMKK+axhCA+IHrDqDsgIzZDNDQKK+axhSA+IG1pxINuOyAjNkM0NQor5rGGID4gY3XEgW47ICM2QzQ2CivmsYcgPiBow7lpOyAjNkM0Nwor5rGIID4gZGnEgW87ICM2QzQ4CivmsYkgPiB5w6w7ICM2QzQ5CivmsYogPiBjaMOgOyAjNkM0QQor5rGLID4gemjDum87ICM2QzRCCivmsYwgPiBjaHXDoG47ICM2QzRDCivmsY0gPiB3w6FuOyAjNkM0RAor5rGOID4gZsOgbjsgIzZDNEUKK+axjyA+IGTDoGk7ICM2QzRGCivmsZAgPiB4w6w7ICM2QzUwCivmsZEgPiB0xatvOyAjNkM1MQor5rGSID4gbcOhbmc7ICM2QzUyCivmsZMgPiBxw611OyAjNkM1Mwor5rGUID4gccOsOyAjNkM1NAor5rGVID4gc2jDoG47ICM2QzU1CivmsZYgPiBww6BpOyAjNkM1Ngor5rGXID4gaMOgbjsgIzZDNTcKK+axmCA+IHFpxIFuOyAjNkM1OAor5rGZID4gd8WrOyAjNkM1OQor5rGaID4gd8WrOyAjNkM1QQor5rGbID4geMO5bjsgIzZDNUIKK+axnCA+IHPDrDsgIzZDNUMKK+axnSA+IHLFrTsgIzZDNUQKK+axniA+IGfFj25nOyAjNkM1RQor5rGfID4gamnEgW5nOyAjNkM1Rgor5rGgID4gY2jDrTsgIzZDNjAKK+axoSA+IHfFqzsgIzZDNjEKK+axpCA+IHTEgW5nOyAjNkM2NAor5rGlID4gemjEqzsgIzZDNjUKK+axpiA+IGNow607ICM2QzY2CivmsacgPiBxacSBbjsgIzZDNjcKK+axqCA+IG3DrDsgIzZDNjgKK+axqSA+IHnDuTsgIzZDNjkKK+axqiA+IHfEgW5nOyAjNkM2QQor5rGrID4gccOsbmc7ICM2QzZCCivmsawgPiBqxK1uZzsgIzZDNkMKK+axrSA+IHLDuWk7ICM2QzZECivmsa4gPiBqxatuOyAjNkM2RQor5rGvID4gaMOzbmc7ICM2QzZGCivmsbAgPiB0w6BpOyAjNkM3MAor5rGxID4gcXXEg247ICM2QzcxCivmsbIgPiBqw607ICM2QzcyCivmsbMgPiBiacOgbjsgIzZDNzMKK+axtCA+IGJpw6BuOyAjNkM3NAor5rG1ID4gZ8OgbjsgIzZDNzUKK+axtiA+IHfDqG47ICM2Qzc2CivmsbcgPiB6aMWNbmc7ICM2Qzc3CivmsbggPiBmxIFuZzsgIzZDNzgKK+axuSA+IHjEq29uZzsgIzZDNzkKK+axuiA+IGp1w6k7ICM2QzdBCivmsbsgPiBoxINuZzsgIzZDN0IKK+axvCA+IG5pxY11OyAjNkM3Qwor5rG9ID4gccOsOyAjNkM3RAor5rG+ID4gZsOpbjsgIzZDN0UKK+axvyA+IHjDuTsgIzZDN0YKK+aygCA+IHjDuTsgIzZDODAKK+aygSA+IHHDrG47ICM2QzgxCivmsoIgPiB5w607ICM2QzgyCivmsoMgPiB3w7I7ICM2QzgzCivmsoQgPiB5w7puOyAjNkM4NAor5rKFID4geXXDoW47ICM2Qzg1CivmsoYgPiBow6FuZzsgIzZDODYKK+ayhyA+IHnEg247ICM2Qzg3CivmsoggPiBjaMOpbjsgIzZDODgKK+ayiSA+IGNow6luOyAjNkM4OQor5rKKID4gZMOgbjsgIzZDOEEKK+ayiyA+IHnDs3U7ICM2QzhCCivmsowgPiBkw7luOyAjNkM4Qwor5rKNID4gaMO5OyAjNkM4RAor5rKOID4gaMO5bzsgIzZDOEUKK+ayjyA+IHFpxJM7ICM2QzhGCivmspAgPiBtw7k7ICM2QzkwCivmspEgPiByw7N1OyAjNkM5MQor5rKSID4gbcOpaTsgIzZDOTIKK+aykyA+IHTDoDsgIzZDOTMKK+aylCA+IG1pxINuOyAjNkM5NAor5rKVID4gd8O5OyAjNkM5NQor5rKWID4gY2jFjW5nOyAjNkM5Ngor5rKXID4gdGnEgW47ICM2Qzk3CivmspggPiBixK07ICM2Qzk4CivmspkgPiBzaMSBOyAjNkM5OQor5rKaID4gemjErTsgIzZDOUEKK+aymyA+IHDDqGk7ICM2QzlCCivmspwgPiBww6BuOyAjNkM5Qwor5rKdID4gemjFrWk7ICM2QzlECivmsp4gPiB6xIE7ICM2QzlFCivmsp8gPiBnxY11OyAjNkM5Rgor5rKgID4gbMOtdTsgIzZDQTAKK+ayoSA+IG3DqWk7ICM2Q0ExCivmsqIgPiB6w6k7ICM2Q0EyCivmsqMgPiBmxJNuZzsgIzZDQTMKK+aypCA+IMOydTsgIzZDQTQKK+aypSA+IGzDrDsgIzZDQTUKK+aypiA+IGzDum47ICM2Q0E2CivmsqcgPiBjxIFuZzsgIzZDQTcKK+ayqCA+IGbDqW5nOyAjNkNBOAor5rKpID4gd8OpaTsgIzZDQTkKK+ayqiA+IGjDuTsgIzZDQUEKK+ayqyA+IG3DsjsgIzZDQUIKK+ayrCA+IG3DqGk7ICM2Q0FDCivmsq0gPiBzaMO5OyAjNkNBRAor5rKuID4gasWrOyAjNkNBRQor5rKvID4gesSDbjsgIzZDQUYKK+aysCA+IHTFq287ICM2Q0IwCivmsrEgPiB0w7pvOyAjNkNCMQor5rKyID4gdMO6bzsgIzZDQjIKK+aysyA+IGjDqTsgIzZDQjMKK+aytCA+IGzDrDsgIzZDQjQKK+aytSA+IG3ErTsgIzZDQjUKK+aytiA+IHnDrTsgIzZDQjYKK+aytyA+IGbEgTsgIzZDQjcKK+ayuCA+IGbDqGk7ICM2Q0I4CivmsrkgPiB5w7N1OyAjNkNCOQor5rK6ID4gdGnDoW47ICM2Q0JBCivmsrsgPiB6aMOsOyAjNkNCQgor5rK8ID4gemjEg287ICM2Q0JDCivmsr0gPiBnxas7ICM2Q0JECivmsr4gPiB6aMSBbjsgIzZDQkUKK+ayvyA+IHnDoW47ICM2Q0JGCivms4AgPiBzxKs7ICM2Q0MwCivms4EgPiBrdcOgbmc7ICM2Q0MxCivms4IgPiBqxK1vbmc7ICM2Q0MyCivms4MgPiBqw7k7ICM2Q0MzCivms4QgPiB4acOoOyAjNkNDNAor5rOFID4gccOtdTsgIzZDQzUKK+azhiA+IHnEqzsgIzZDQzYKK+azhyA+IGppxIE7ICM2Q0M3Civms4ggPiB6aMWNbmc7ICM2Q0M4Civms4kgPiBxdcOhbjsgIzZDQzkKK+aziiA+IGLDszsgIzZDQ0EKK+aziyA+IGjDuWk7ICM2Q0NCCivms4wgPiBtw6w7ICM2Q0NDCivms40gPiBixJNuOyAjNkNDRAor5rOOID4gemjDum87ICM2Q0NFCivms48gPiBjaMO5OyAjNkNDRgor5rOQID4gbMOoOyAjNkNEMAor5rORID4gecWPdTsgIzZDRDEKK+azkiA+IGfFqzsgIzZDRDIKK+azkyA+IGjDs25nOyAjNkNEMwor5rOUID4gZ8SBbjsgIzZDRDQKK+azlSA+IGbEgzsgIzZDRDUKK+azliA+IG3Eg287ICM2Q0Q2Civms5cgPiBzw6w7ICM2Q0Q3Civms5ggPiBoxas7ICM2Q0Q4Civms5kgPiBww61uZzsgIzZDRDkKK+azmiA+IGPErTsgIzZDREEKK+azmyA+IGbDoG47ICM2Q0RCCivms5wgPiBjaMOtOyAjNkNEQwor5rOdID4gc8O5OyAjNkNERAor5rOeID4gbsOsbmc7ICM2Q0RFCivms58gPiBjaMSTbmc7ICM2Q0RGCivms6AgPiBsw61uZzsgIzZDRTAKK+azoSA+IHDDoG87ICM2Q0UxCivms6IgPiBixY07ICM2Q0UyCivms6MgPiBxw6w7ICM2Q0UzCivms6QgPiBzw6w7ICM2Q0U0Civms6UgPiBuw607ICM2Q0U1Civms6YgPiBqw7o7ICM2Q0U2Civms6cgPiB5dcOoOyAjNkNFNwor5rOoID4gemjDuTsgIzZDRTgKK+azqSA+IHNoxJNuZzsgIzZDRTkKK+azqiA+IGzDqGk7ICM2Q0VBCivms6sgPiB4dcOgbjsgIzZDRUIKK+azrCA+IHh1w6g7ICM2Q0VDCivms60gPiBmxas7ICM2Q0VECivms64gPiBww6BuOyAjNkNFRQor5rOvID4gbcStbjsgIzZDRUYKK+azsCA+IHTDoGk7ICM2Q0YwCivms7EgPiB5xIFuZzsgIzZDRjEKK+azsiA+IGrErTsgIzZDRjIKK+azsyA+IHnFj25nOyAjNkNGMwor5rO0ID4gZ3XDoG47ICM2Q0Y0Civms7UgPiBiw6huZzsgIzZDRjUKK+aztiA+IHh1w6k7ICM2Q0Y2Civms7cgPiBsw7NuZzsgIzZDRjcKK+azuCA+IGzDujsgIzZDRjgKK+azuiA+IGLDszsgIzZDRkEKK+azuyA+IHhpw6g7ICM2Q0ZCCivms7wgPiBwxY07ICM2Q0ZDCivms70gPiB6w6k7ICM2Q0ZECivms74gPiBqxKtuZzsgIzZDRkUKK+azvyA+IHnDrW47ICM2Q0ZGCivmtIAgPiB6aMWNdTsgIzZEMDAKK+a0gSA+IGrDrTsgIzZEMDEKK+a0giA+IHnDrDsgIzZEMDIKK+a0gyA+IGjFq2k7ICM2RDAzCivmtIQgPiBow7ppOyAjNkQwNAor5rSFID4gesWtaTsgIzZEMDUKK+a0hiA+IGNow6luZzsgIzZEMDYKK+a0hyA+IHnEq247ICM2RDA3CivmtIggPiB3w6lpOyAjNkQwOAor5rSJID4gaMOydTsgIzZEMDkKK+a0iiA+IGppw6BuOyAjNkQwQQor5rSLID4gecOhbmc7ICM2RDBCCivmtIwgPiBsacOoOyAjNkQwQwor5rSNID4gc8OsOyAjNkQwRAor5rSOID4gasOsOyAjNkQwRQor5rSPID4gw6lyOyAjNkQwRgor5rSQID4geMOtbmc7ICM2RDEwCivmtJEgPiBmw7o7ICM2RDExCivmtJIgPiBzxIM7ICM2RDEyCivmtJMgPiBzxa1vOyAjNkQxMwor5rSUID4gemjErTsgIzZEMTQKK+a0lSA+IHnEq247ICM2RDE1CivmtJYgPiB3w7o7ICM2RDE2CivmtJcgPiB4xK07ICM2RDE3CivmtJggPiBrxINvOyAjNkQxOAor5rSZID4gemjFqzsgIzZEMTkKK+a0miA+IGppw6BuZzsgIzZEMUEKK+a0myA+IGzDuW87ICM2RDFCCivmtJ0gPiDDoG47ICM2RDFECivmtJ4gPiBkw7JuZzsgIzZEMUUKK+a0nyA+IHnDrTsgIzZEMUYKK+a0oCA+IG3Ds3U7ICM2RDIwCivmtKEgPiBsxJVpOyAjNkQyMQor5rSiID4gecSrOyAjNkQyMgor5rSjID4gbcStOyAjNkQyMwor5rSkID4gcXXDoW47ICM2RDI0CivmtKUgPiBqxKtuOyAjNkQyNQor5rSmID4gbcOyOyAjNkQyNgor5rSnID4gd8SVaTsgIzZEMjcKK+a0qCA+IHhpw6FvOyAjNkQyOAor5rSpID4geGnDqDsgIzZEMjkKK+a0qiA+IGjDs25nOyAjNkQyQQor5rSrID4geMO5OyAjNkQyQgor5rSsID4gc2jDuW87ICM2RDJDCivmtK0gPiBrdcSBbmc7ICM2RDJECivmtK4gPiB0xIFvOyAjNkQyRQor5rSvID4gcWnDqDsgIzZEMkYKK+a0sCA+IGrDuTsgIzZEMzAKK+a0sSA+IMSVcjsgIzZEMzEKK+a0siA+IHpoxY11OyAjNkQzMgor5rSzID4gcsO5OyAjNkQzMwor5rS0ID4gcMOtbmc7ICM2RDM0CivmtLUgPiB4w7puOyAjNkQzNQor5rS2ID4geMSrb25nOyAjNkQzNgor5rS3ID4gemjDrDsgIzZEMzcKK+a0uCA+IGd1xIFuZzsgIzZEMzgKK+a0uSA+IGh1w6FuOyAjNkQzOQor5rS6ID4gbcOtbmc7ICM2RDNBCivmtLsgPiBow7pvOyAjNkQzQgor5rS8ID4gd8SBOyAjNkQzQwor5rS9ID4gcWnDoDsgIzZEM0QKK+a0viA+IHDDoGk7ICM2RDNFCivmtL8gPiB3xas7ICM2RDNGCivmtYAgPiBxxa07ICM2RDQwCivmtYEgPiBsw611OyAjNkQ0MQor5rWCID4gecOsOyAjNkQ0Mgor5rWDID4gamnDoTsgIzZENDMKK+a1hCA+IGrDrG5nOyAjNkQ0NAor5rWFID4gcWnEg247ICM2RDQ1CivmtYYgPiBqacSBbmc7ICM2RDQ2CivmtYcgPiBqacSBbzsgIzZENDcKK+a1iCA+IGNow6luZzsgIzZENDgKK+a1iSA+IHNoxKs7ICM2RDQ5CivmtYogPiB6aMO6bzsgIzZENEEKK+a1iyA+IGPDqDsgIzZENEIKK+a1jSA+IGt1w6BpOyAjNkQ0RAor5rWOID4gasOsOyAjNkQ0RQor5rWPID4gbMOtdTsgIzZENEYKK+a1kCA+IGNoxINuOyAjNkQ1MAor5rWRID4gaMO6bjsgIzZENTEKK+a1kiA+IGjFrTsgIzZENTIKK+a1kyA+IG7Ds25nOyAjNkQ1Mwor5rWUID4geMO6bjsgIzZENTQKK+a1lSA+IGrDrG47ICM2RDU1CivmtZYgPiBsacOoOyAjNkQ1Ngor5rWXID4gccOtdTsgIzZENTcKK+a1mCA+IHfElWk7ICM2RDU4CivmtZkgPiB6aMOoOyAjNkQ1OQor5rWaID4gasO5bjsgIzZENUEKK+a1myA+IGjDoG47ICM2RDVCCivmtZwgPiBixIFuZzsgIzZENUMKK+a1nSA+IG3DoW5nOyAjNkQ1RAor5rWeID4gemjDum87ICM2RDVFCivmtZ8gPiB5w7N1OyAjNkQ1Rgor5rWgID4geMSrOyAjNkQ2MAor5rWhID4gYsOzOyAjNkQ2MQor5rWiID4gZMOydTsgIzZENjIKK+a1oyA+IHfEg247ICM2RDYzCivmtaQgPiBow7NuZzsgIzZENjQKK+a1pSA+IHnDrDsgIzZENjUKK+a1piA+IHDFrTsgIzZENjYKK+a1pyA+IHnErW5nOyAjNkQ2Nwor5rWoID4gbMSDbjsgIzZENjgKK+a1qSA+IGjDoG87ICM2RDY5CivmtaogPiBsw6BuZzsgIzZENkEKK+a1qyA+IGjEg247ICM2RDZCCivmtawgPiBsxK07ICM2RDZDCivmta0gPiBnxJNuZzsgIzZENkQKK+a1riA+IGbDujsgIzZENkUKK+a1ryA+IHfDujsgIzZENkYKK+a1sCA+IGxpw6BuOyAjNkQ3MAor5rWxID4gY2jDum47ICM2RDcxCivmtbIgPiBmw6luZzsgIzZENzIKK+a1syA+IHnDrDsgIzZENzMKK+a1tCA+IHnDuTsgIzZENzQKK+a1tSA+IHTDs25nOyAjNkQ3NQor5rW2ID4gbMOhbzsgIzZENzYKK+a1tyA+IGjEg2k7ICM2RDc3CivmtbggPiBqw6xuOyAjNkQ3OAor5rW5ID4gamnDoTsgIzZENzkKK+a1uiA+IGNoxY1uZzsgIzZEN0EKK+a1uyA+IHfElW5nOyAjNkQ3Qgor5rW8ID4gbcSVaTsgIzZEN0MKK+a1vSA+IHPFq2k7ICM2RDdECivmtb4gPiBjaMSTbmc7ICM2RDdFCivmtb8gPiBww6hpOyAjNkQ3Rgor5raAID4geGnDoG47ICM2RDgwCivmtoEgPiBzaMOobjsgIzZEODEKK+a2giA+IHTDujsgIzZEODIKK+a2gyA+IGvDuW47ICM2RDgzCivmtoQgPiBwxKtuOyAjNkQ4NAor5raFID4gbmnDqDsgIzZEODUKK+a2hiA+IGjDoG47ICM2RDg2CivmtocgPiBqxKtuZzsgIzZEODcKK+a2iCA+IHhpxIFvOyAjNkQ4OAor5raJID4gc2jDqDsgIzZEODkKK+a2iiA+IG5pw6BuOyAjNkQ4QQor5raLID4gdMWrOyAjNkQ4Qgor5raMID4gecWPbmc7ICM2RDhDCivmto0gPiB4acOgbzsgIzZEOEQKK+a2jiA+IHhpw6FuOyAjNkQ4RQor5raPID4gdMStbmc7ICM2RDhGCivmtpAgPiDDqTsgIzZEOTAKK+a2kSA+IHPDuTsgIzZEOTEKK+a2kiA+IHTFq247ICM2RDkyCivmtpMgPiBqdcSBbjsgIzZEOTMKK+a2lCA+IGPDqW47ICM2RDk0CivmtpUgPiB0w6w7ICM2RDk1CivmtpYgPiBsw6w7ICM2RDk2CivmtpcgPiBzaMO5aTsgIzZEOTcKK+a2mCA+IHPDrDsgIzZEOTgKK+a2mSA+IGzDqGk7ICM2RDk5CivmtpogPiBzaMO5aTsgIzZEOUEKK+a2myA+IHTEgW87ICM2RDlCCivmtpwgPiBkw7o7ICM2RDlDCivmtp0gPiBsw6BvOyAjNkQ5RAor5raeID4gbMOhaTsgIzZEOUUKK+a2nyA+IGxpw6FuOyAjNkQ5Rgor5ragID4gd8OpaTsgIzZEQTAKK+a2oSA+IHfFjTsgIzZEQTEKK+a2oiA+IHnDum47ICM2REEyCivmtqMgPiBodcOgbjsgIzZEQTMKK+a2pCA+IGTDrTsgIzZEQTQKK+a2piA+IHLDuW47ICM2REE2CivmtqcgPiBqacOgbjsgIzZEQTcKK+a2qCA+IHpoxINuZzsgIzZEQTgKK+a2qSA+IHPDqDsgIzZEQTkKK+a2qiA+IGbDujsgIzZEQUEKK+a2qyA+IGd1w6BuOyAjNkRBQgor5rasID4geMOsbmc7ICM2REFDCivmtq0gPiBzaMOydTsgIzZEQUQKK+a2riA+IHNodcOgbjsgIzZEQUUKK+a2ryA+IHnDoTsgIzZEQUYKK+a2sCA+IGNow7lvOyAjNkRCMAor5raxID4gemjDoG5nOyAjNkRCMQor5rayID4gecOoOyAjNkRCMgor5razID4ga8WNbmc7ICM2REIzCivmtrQgPiB3w7I7ICM2REI0CivmtrUgPiBow6FuOyAjNkRCNQor5ra2ID4gdMWrbzsgIzZEQjYKK+a2tyA+IGTFjW5nOyAjNkRCNwor5ra4ID4gaMOpOyAjNkRCOAor5ra5ID4gd8WNOyAjNkRCOQor5ra6ID4gasWrOyAjNkRCQQor5ra7ID4gZ8OgbjsgIzZEQkIKK+a2vCA+IGxpw6FuZzsgIzZEQkMKK+a2vSA+IGjFq247ICM2REJECivmtr4gPiB0w6A7ICM2REJFCivmtr8gPiB6aMO6bzsgIzZEQkYKK+a3gCA+IGRpw6BuOyAjNkRDMAor5reBID4gcWnDqDsgIzZEQzEKK+a3giA+IGTDqTsgIzZEQzIKK+a3gyA+IGp1w6BuOyAjNkRDMwor5reEID4gesSrOyAjNkRDNAor5reFID4geMSrOyAjNkRDNQor5reGID4gecOhbzsgIzZEQzYKK+a3hyA+IHHDrTsgIzZEQzcKK+a3iCA+IGfFrTsgIzZEQzgKK+a3iSA+IGfFrW87ICM2REM5Civmt4ogPiBow6BuOyAjNkRDQQor5reLID4gbMOtbjsgIzZEQ0IKK+a3jCA+IHTEg25nOyAjNkRDQwor5reNID4gemjFjXU7ICM2RENECivmt44gPiBwxJVuZzsgIzZEQ0UKK+a3jyA+IGjDoG87ICM2RENGCivmt5AgPiBjaMSBbmc7ICM2REQwCivmt5EgPiBzaMO6OyAjNkREMQor5reSID4gccSrOyAjNkREMgor5reTID4gZsSBbmc7ICM2REQzCivmt5QgPiBjaMOsOyAjNkRENAor5reVID4gbMO5OyAjNkRENQor5reWID4gbsOgbzsgIzZERDYKK+a3lyA+IGrDujsgIzZERDcKK+a3mCA+IHTDoW87ICM2REQ4Civmt5kgPiBjw7NuZzsgIzZERDkKK+a3miA+IGzDqGk7ICM2RERBCivmt5sgPiB6aMOsOyAjNkREQgor5recID4gcMOpbmc7ICM2RERDCivmt50gPiBmw6lpOyAjNkRERAor5reeID4gc8WNbmc7ICM2RERFCivmt58gPiB0acSDbjsgIzZEREYKK+a3oCA+IHDDrDsgIzZERTAKK+a3oSA+IGTDoG47ICM2REUxCivmt6IgPiB5w7k7ICM2REUyCivmt6MgPiBuw607ICM2REUzCivmt6QgPiB5xas7ICM2REU0Civmt6UgPiBsw7k7ICM2REU1Civmt6YgPiBnw6BuOyAjNkRFNgor5renID4gbcOsOyAjNkRFNwor5reoID4gasOsbmc7ICM2REU4Civmt6kgPiBsw61uZzsgIzZERTkKK+a3qiA+IGzDum47ICM2REVBCivmt6sgPiB5w61uOyAjNkRFQgor5resID4gY8O5aTsgIzZERUMKK+a3rSA+IHHDujsgIzZERUQKK+a3riA+IGh1w6FpOyAjNkRFRQor5revID4gecO5OyAjNkRFRgor5rewID4gbmnDoG47ICM2REYwCivmt7EgPiBzaMSTbjsgIzZERjEKK+a3siA+IHBpw6FvOyAjNkRGMgor5rezID4gY2jDum47ICM2REYzCivmt7QgPiB3w6A7ICM2REY0Civmt7UgPiB5dcSBbjsgIzZERjUKK+a3tiA+IGzDoWk7ICM2REY2Civmt7cgPiBoxa1uOyAjNkRGNwor5re4ID4gccSrbmc7ICM2REY4Civmt7kgPiB5xIFuOyAjNkRGOQor5re6ID4gcWnEg247ICM2REZBCivmt7sgPiB0acSBbjsgIzZERkIKK+a3vCA+IG1pxINvOyAjNkRGQwor5re9ID4gemjErTsgIzZERkQKK+a3viA+IHnErW47ICM2REZFCivmt78gPiBtw6w7ICM2REZGCivmuIAgPiBixJNuOyAjNkUwMAor5riBID4geXXEgW47ICM2RTAxCivmuIIgPiB3w6huOyAjNkUwMgor5riDID4gcsOoOyAjNkUwMwor5riEID4gZsSTaTsgIzZFMDQKK+a4hSA+IHHEq25nOyAjNkUwNQor5riGID4geXXEgW47ICM2RTA2CivmuIcgPiBrxJU7ICM2RTA3CivmuIggPiBqw6w7ICM2RTA4CivmuIkgPiBzaMOoOyAjNkUwOQor5riKID4geXXEgW47ICM2RTBBCivmuIwgPiBsw7k7ICM2RTBDCivmuI0gPiB6w6w7ICM2RTBECivmuI4gPiBkw7o7ICM2RTBFCivmuJAgPiBqacOgbjsgIzZFMTAKK+a4kSA+IG3ErW47ICM2RTExCivmuJIgPiBww6w7ICM2RTEyCivmuJQgPiB5w7o7ICM2RTE0CivmuJUgPiB5dcSBbjsgIzZFMTUKK+a4liA+IHNoxJVuOyAjNkUxNgor5riXID4gc2jDqG47ICM2RTE3CivmuJggPiByw7N1OyAjNkUxOAor5riZID4gaHXDoG47ICM2RTE5CivmuJogPiB6aMWtOyAjNkUxQQor5ribID4gamnEg247ICM2RTFCCivmuJwgPiBudcSDbjsgIzZFMUMKK+a4nSA+IHnDujsgIzZFMUQKK+a4niA+IHHDrXU7ICM2RTFFCivmuJ8gPiB0w61uZzsgIzZFMUYKK+a4oCA+IHHDujsgIzZFMjAKK+a4oSA+IGTDuTsgIzZFMjEKK+a4oiA+IGbDqW5nOyAjNkUyMgor5rijID4gemjEgTsgIzZFMjMKK+a4pCA+IGLDszsgIzZFMjQKK+a4pSA+IHfDsjsgIzZFMjUKK+a4piA+IHfFjTsgIzZFMjYKK+a4pyA+IGTDrDsgIzZFMjcKK+a4qCA+IHfEk2k7ICM2RTI4CivmuKkgPiB3xJNuOyAjNkUyOQor5riqID4gcsO6OyAjNkUyQQor5rirID4geGnDqDsgIzZFMkIKK+a4rCA+IGPDqDsgIzZFMkMKK+a4rSA+IHfDqGk7ICM2RTJECivmuK4gPiBnxJM7ICM2RTJFCivmuK8gPiBnxINuZzsgIzZFMkYKK+a4sCA+IHnEg247ICM2RTMwCivmuLEgPiBow7NuZzsgIzZFMzEKK+a4siA+IHh1w6BuOyAjNkUzMgor5rizID4gbcStOyAjNkUzMwor5ri0ID4ga8SVOyAjNkUzNAor5ri1ID4gbcOhbzsgIzZFMzUKK+a4tiA+IHnEq25nOyAjNkUzNgor5ri3ID4gecSDbjsgIzZFMzcKK+a4uCA+IHnDs3U7ICM2RTM4CivmuLkgPiBoxY1uZzsgIzZFMzkKK+a4uiA+IG1pxINvOyAjNkUzQQor5ri7ID4geMStbmc7ICM2RTNCCivmuLwgPiBtxJVpOyAjNkUzQwor5ri9ID4gesSBaTsgIzZFM0QKK+a4viA+IGjDum47ICM2RTNFCivmuL8gPiBuw6BpOyAjNkUzRgor5rmAID4ga8O6aTsgIzZFNDAKK+a5gSA+IHNow607ICM2RTQxCivmuYIgPiDDqDsgIzZFNDIKK+a5gyA+IHDDoGk7ICM2RTQzCivmuYQgPiBtw6lpOyAjNkU0NAor5rmFID4gbGnDoG47ICM2RTQ1CivmuYYgPiBxw6w7ICM2RTQ2CivmuYcgPiBxw6w7ICM2RTQ3CivmuYggPiBtw6lpOyAjNkU0OAor5rmJID4gdGnDoW47ICM2RTQ5CivmuYogPiBjw7J1OyAjNkU0QQor5rmLID4gd8OpaTsgIzZFNEIKK+a5jCA+IGPEgW47ICM2RTRDCivmuY0gPiB0dcSBbjsgIzZFNEQKK+a5jiA+IG1pxINuOyAjNkU0RQor5rmPID4gaMO5aTsgIzZFNEYKK+a5kCA+IG3DsjsgIzZFNTAKK+a5kSA+IHjFrTsgIzZFNTEKK+a5kiA+IGrDrTsgIzZFNTIKK+a5kyA+IHDDqW47ICM2RTUzCivmuZQgPiBqacSBbjsgIzZFNTQKK+a5lSA+IGppxINuOyAjNkU1NQor5rmWID4gaMO6OyAjNkU1Ngor5rmXID4gZsOobmc7ICM2RTU3CivmuZggPiB4acSBbmc7ICM2RTU4CivmuZkgPiB5w6w7ICM2RTU5CivmuZogPiB5w6xuOyAjNkU1QQor5rmbID4gemjDoG47ICM2RTVCCivmuZwgPiBzaMOtOyAjNkU1Qwor5rmdID4gamnEkzsgIzZFNUQKK+a5niA+IGNow6luZzsgIzZFNUUKK+a5nyA+IGh1w6FuZzsgIzZFNUYKK+a5oCA+IHTDoG47ICM2RTYwCivmuaEgPiB5w7o7ICM2RTYxCivmuaIgPiBiw6w7ICM2RTYyCivmuaMgPiBtxK1uOyAjNkU2Mwor5rmkID4gc2jEqzsgIzZFNjQKK+a5pSA+IHTDujsgIzZFNjUKK+a5piA+IHNoxJNuZzsgIzZFNjYKK+a5pyA+IHnFj25nOyAjNkU2Nwor5rmoID4gccO5OyAjNkU2OAor5rmpID4gemjDsm5nOyAjNkU2OQor5rmqID4gc3XDqGk7ICM2RTZBCivmuasgPiBqxKt1OyAjNkU2Qgor5rmsID4gamnEg287ICM2RTZDCivmua0gPiBxacOzdTsgIzZFNkQKK+a5riA+IHnEq247ICM2RTZFCivmua8gPiB0xIFuZzsgIzZFNkYKK+a5sCA+IGzDs25nOyAjNkU3MAor5rmxID4gaMO5bzsgIzZFNzEKK+a5siA+IHl1w6FuOyAjNkU3Mgor5rmzID4gbsSDbjsgIzZFNzMKK+a5tCA+IGLDoG47ICM2RTc0CivmubUgPiB5xY91OyAjNkU3NQor5rm2ID4gcXXDoW47ICM2RTc2CivmubcgPiBjaMO6aTsgIzZFNzcKK+a5uCA+IGxpw6BuZzsgIzZFNzgKK+a5uSA+IGNow6FuOyAjNkU3OQor5rm6ID4gecOhbjsgIzZFN0EKK+a5uyA+IGNow7puOyAjNkU3Qgor5rm8ID4gbmnDqDsgIzZFN0MKK+a5vSA+IHrEqzsgIzZFN0QKK+a5viA+IHfEgW47ICM2RTdFCivmub8gPiBzaMSrOyAjNkU3Rgor5rqAID4gbcSDbjsgIzZFODAKK+a6gSA+IHnDrW5nOyAjNkU4MQor5rqDID4ga8O5aTsgIzZFODMKK+a6hSA+IGppw6BuOyAjNkU4NQor5rqGID4geMO5OyAjNkU4Ngor5rqHID4gbMeaOyAjNkU4Nwor5rqIID4gZ8WraTsgIzZFODgKK+a6iSA+IGfDoGk7ICM2RTg5CivmuowgPiBwxY07ICM2RThDCivmuo0gPiBqw6xuOyAjNkU4RAor5rqOID4gZ8O5aTsgIzZFOEUKK+a6jyA+IHTDoW5nOyAjNkU4Rgor5rqQID4geXXDoW47ICM2RTkwCivmupEgPiBzxa1vOyAjNkU5MQor5rqSID4geXXDoW47ICM2RTkyCivmupMgPiBsacOhbjsgIzZFOTMKK+a6lCA+IHnEg287ICM2RTk0CivmupUgPiBtw6huZzsgIzZFOTUKK+a6liA+IHpoxa1uOyAjNkU5Ngor5rqXID4gc2jDqW5nOyAjNkU5Nwor5rqYID4ga8OoOyAjNkU5OAor5rqZID4gdMOgaTsgIzZFOTkKK+a6miA+IGTDoTsgIzZFOUEKK+a6myA+IHfEgTsgIzZFOUIKK+a6nCA+IGzEq3U7ICM2RTlDCivmup0gPiBnxY11OyAjNkU5RAor5rqeID4gc8SBbzsgIzZFOUUKK+a6nyA+IG3DrW5nOyAjNkU5Rgor5rqgID4gemjDoDsgIzZFQTAKK+a6oSA+IHNow607ICM2RUExCivmuqIgPiB5w6w7ICM2RUEyCivmuqMgPiBsw7puOyAjNkVBMwor5rqkID4gbcSDOyAjNkVBNAor5rqlID4gcMWtOyAjNkVBNQor5rqmID4gd8OpaTsgIzZFQTYKK+a6pyA+IGzDrDsgIzZFQTcKK+a6qCA+IGPDoWk7ICM2RUE4CivmuqkgPiB3w7k7ICM2RUE5CivmuqogPiB4xKs7ICM2RUFBCivmuqsgPiB3xJNuOyAjNkVBQgor5rqsID4gcWnEgW5nOyAjNkVBQwor5rqtID4gesOpOyAjNkVBRAor5rquID4gc2jEqzsgIzZFQUUKK+a6ryA+IHPDuTsgIzZFQUYKK+a6sCA+IHnEqzsgIzZFQjAKK+a6sSA+IHpoxJNuOyAjNkVCMQor5rqyID4gc8WNdTsgIzZFQjIKK+a6syA+IHnDum47ICM2RUIzCivmurQgPiB4w6x1OyAjNkVCNAor5rq1ID4gecSrbjsgIzZFQjUKK+a6tiA+IHLDs25nOyAjNkVCNgor5rq3ID4gaMO5bjsgIzZFQjcKK+a6uCA+IHPDuTsgIzZFQjgKK+a6uSA+IHPDuTsgIzZFQjkKK+a6uiA+IG7DrDsgIzZFQkEKK+a6uyA+IHTDoDsgIzZFQkIKK+a6vCA+IHNoxKs7ICM2RUJDCivmur0gPiByw7k7ICM2RUJECivmur4gPiB3xJNpOyAjNkVCRQor5rq/ID4gcMOgbjsgIzZFQkYKK+a7gCA+IGNow7k7ICM2RUMwCivmu4EgPiBjaMO6OyAjNkVDMQor5ruCID4gcMSBbmc7ICM2RUMyCivmu4MgPiB3xJVuZzsgIzZFQzMKK+a7hCA+IGPEgW5nOyAjNkVDNAor5ruFID4gbWnDqDsgIzZFQzUKK+a7hiA+IGjDqTsgIzZFQzYKK+a7hyA+IGRpxIFuOyAjNkVDNwor5ruIID4gaMOgbzsgIzZFQzgKK+a7iSA+IGh1xINuZzsgIzZFQzkKK+a7iiA+IHjDrDsgIzZFQ0EKK+a7iyA+IHrEqzsgIzZFQ0IKK+a7jCA+IGTDrTsgIzZFQ0MKK+a7jSA+IHpoxK07ICM2RUNECivmu44gPiB5w61uZzsgIzZFQ0UKK+a7jyA+IGbFrTsgIzZFQ0YKK+a7kCA+IGppw6k7ICM2RUQwCivmu5EgPiBodcOhOyAjNkVEMQor5ruSID4gZ8STOyAjNkVEMgor5ruTID4gesStOyAjNkVEMwor5ruUID4gdMSBbzsgIzZFRDQKK+a7lSA+IHTDqW5nOyAjNkVENQor5ruWID4gc8WraTsgIzZFRDYKK+a7lyA+IGLErTsgIzZFRDcKK+a7mCA+IGppw6BvOyAjNkVEOAor5ruZID4gaMO5aTsgIzZFRDkKK+a7miA+IGfFrW47ICM2RURBCivmu5sgPiB5w61uOyAjNkVEQgor5rucID4gZ8SBbzsgIzZFREMKK+a7nSA+IGzDs25nOyAjNkVERAor5rueID4gemjDrDsgIzZFREUKK+a7nyA+IHnDoG47ICM2RURGCivmu6AgPiBzaMOoOyAjNkVFMAor5ruhID4gbcSDbjsgIzZFRTEKK+a7oiA+IHnDrG5nOyAjNkVFMgor5rujID4gY2jDum47ICM2RUUzCivmu6QgPiBsx5w7ICM2RUU0Civmu6UgPiBsw6BuOyAjNkVFNQor5rumID4gbHXDoW47ICM2RUU2Civmu6ggPiBixKtuOyAjNkVFOAor5rupID4gdMSBbjsgIzZFRTkKK+a7qiA+IHnDuTsgIzZFRUEKK+a7qyA+IHPFj3U7ICM2RUVCCivmu6wgPiBow7k7ICM2RUVDCivmu60gPiBiw6w7ICM2RUVECivmu64gPiBiacSBbzsgIzZFRUUKK+a7ryA+IHpow6w7ICM2RUVGCivmu7AgPiBqacSDbmc7ICM2RUYwCivmu7EgPiBrw7J1OyAjNkVGMQor5ruyID4gc2jDqG47ICM2RUYyCivmu7MgPiBzaMSBbmc7ICM2RUYzCivmu7QgPiBkxKs7ICM2RUY0Civmu7UgPiBtw6w7ICM2RUY1Civmu7YgPiDDoW87ICM2RUY2Civmu7cgPiBsxa07ICM2RUY3Civmu7ggPiBoxa07ICM2RUY4Civmu7kgPiBoxas7ICM2RUY5Civmu7ogPiB5w7N1OyAjNkVGQQor5ru7ID4gY2jEg247ICM2RUZCCivmu7wgPiBmw6BuOyAjNkVGQwor5ru9ID4gecOzbmc7ICM2RUZECivmu74gPiBnxa1uOyAjNkVGRQor5ru/ID4gbcSDbjsgIzZFRkYKK+a8gCA+IHHDrG5nOyAjNkYwMAor5ryBID4gecO6OyAjNkYwMQor5ryCID4gcGnEgW87ICM2RjAyCivmvIMgPiBqw607ICM2RjAzCivmvIQgPiB5w6E7ICM2RjA0CivmvIUgPiBqacSDbzsgIzZGMDUKK+a8hiA+IHHEqzsgIzZGMDYKK+a8hyA+IHjErTsgIzZGMDcKK+a8iCA+IGrDrDsgIzZGMDgKK+a8iSA+IGzDuTsgIzZGMDkKK+a8iiA+IGzHmjsgIzZGMEEKK+a8iyA+IGzDs25nOyAjNkYwQgor5ryMID4gasStbjsgIzZGMEMKK+a8jSA+IGfDum87ICM2RjBECivmvI4gPiBjw7NuZzsgIzZGMEUKK+a8jyA+IGzDsnU7ICM2RjBGCivmvJAgPiB6aMOtOyAjNkYxMAor5ryRID4gZ8OgaTsgIzZGMTEKK+a8kiA+IHFpw6FuZzsgIzZGMTIKK+a8kyA+IGzDrTsgIzZGMTMKK+a8lCA+IHnEg247ICM2RjE0CivmvJUgPiBjw6FvOyAjNkYxNQor5ryWID4gamnDoG87ICM2RjE2CivmvJcgPiBjxY1uZzsgIzZGMTcKK+a8mCA+IHHDum47ICM2RjE4CivmvJkgPiB0dcOhbjsgIzZGMTkKK+a8miA+IMOydTsgIzZGMUEKK+a8myA+IHTDqW5nOyAjNkYxQgor5rycID4gecSVOyAjNkYxQwor5rydID4geMOtOyAjNkYxRAor5ryeID4gbcOsOyAjNkYxRQor5ryfID4gdMOhbmc7ICM2RjFGCivmvKAgPiBtw7I7ICM2RjIwCivmvKEgPiBzaMSBbmc7ICM2RjIxCivmvKIgPiBow6BuOyAjNkYyMgor5ryjID4gbGnDoW47ICM2RjIzCivmvKQgPiBsxINuOyAjNkYyNAor5rylID4gd8SBOyAjNkYyNQor5rymID4gbMOtOyAjNkYyNgor5rynID4gcWnDoW47ICM2RjI3CivmvKggPiBmw6luZzsgIzZGMjgKK+a8qSA+IHh1w6FuOyAjNkYyOQor5ryqID4gecSrOyAjNkYyQQor5ryrID4gbcOgbjsgIzZGMkIKK+a8rCA+IHrDrDsgIzZGMkMKK+a8rSA+IG3Eg25nOyAjNkYyRAor5ryuID4ga8SBbmc7ICM2RjJFCivmvK8gPiBsxJVpOyAjNkYyRgor5rywID4gcMSTbmc7ICM2RjMwCivmvLEgPiBzaMO5OyAjNkYzMQor5ryyID4gemjEg25nOyAjNkYzMgor5ryzID4gemjEgW5nOyAjNkYzMwor5ry0ID4gY2jDs25nOyAjNkYzNAor5ry1ID4geMO5OyAjNkYzNQor5ry2ID4gaHXDoG47ICM2RjM2CivmvLcgPiBrw7lvOyAjNkYzNwor5ry4ID4gamnDoG47ICM2RjM4CivmvLkgPiB5xIFuOyAjNkYzOQor5ry6ID4gY2h1xINuZzsgIzZGM0EKK+a8uyA+IGxpw6FvOyAjNkYzQgor5ry8ID4gY8WtaTsgIzZGM0MKK+a8vSA+IHTDrTsgIzZGM0QKK+a8viA+IHnDoG5nOyAjNkYzRQor5ry/ID4gamnEgW5nOyAjNkYzRgor5r2AID4gY8Ozbmc7ICM2RjQwCivmvYEgPiB5xK1uZzsgIzZGNDEKK+a9giA+IGjDs25nOyAjNkY0Mgor5r2DID4geMO6bjsgIzZGNDMKK+a9hCA+IHNow7k7ICM2RjQ0CivmvYUgPiBndcOgbjsgIzZGNDUKK+a9hiA+IHnDrW5nOyAjNkY0Ngor5r2HID4geGnEgW87ICM2RjQ3CivmvYogPiB4w7k7ICM2RjRBCivmvYsgPiBsacOgbjsgIzZGNEIKK+a9jCA+IHpow6w7ICM2RjRDCivmvY0gPiB3w6lpOyAjNkY0RAor5r2OID4gcMOsOyAjNkY0RQor5r2PID4ganXDqTsgIzZGNEYKK+a9kCA+IGppw6BvOyAjNkY1MAor5r2RID4gcMWNOyAjNkY1MQor5r2SID4gZMOgbmc7ICM2RjUyCivmvZMgPiBow7lpOyAjNkY1Mwor5r2UID4gamnDqTsgIzZGNTQKK+a9lSA+IHfFrTsgIzZGNTUKK+a9liA+IHDDoTsgIzZGNTYKK+a9lyA+IGrDrTsgIzZGNTcKK+a9mCA+IHDEgW47ICM2RjU4CivmvZkgPiBnw7ppOyAjNkY1OQor5r2aID4geGnEgW87ICM2RjVBCivmvZsgPiBxacOhbjsgIzZGNUIKK+a9nCA+IHFpw6FuOyAjNkY1Qwor5r2dID4geMSrOyAjNkY1RAor5r2eID4gbMO5OyAjNkY1RQor5r2fID4geMOsOyAjNkY1Rgor5r2gID4geHXDoG47ICM2RjYwCivmvaEgPiBkw7luOyAjNkY2MQor5r2iID4gaHXDoW5nOyAjNkY2Mgor5r2jID4gbcStbjsgIzZGNjMKK+a9pCA+IHLDuW47ICM2RjY0CivmvaUgPiBzw7k7ICM2RjY1CivmvaYgPiBsacOhbzsgIzZGNjYKK+a9pyA+IHpoxJNuOyAjNkY2Nwor5r2oID4gemjFjW5nOyAjNkY2OAor5r2pID4gecOsOyAjNkY2OQor5r2qID4gZMOtOyAjNkY2QQor5r2rID4gd8SBbjsgIzZGNkIKK+a9rCA+IGTDoG47ICM2RjZDCivmva0gPiB0w6FuOyAjNkY2RAor5r2uID4gY2jDoW87ICM2RjZFCivmva8gPiB4w7puOyAjNkY2Rgor5r2wID4ga8O5aTsgIzZGNzAKK+a9sSA+IHlpZTsgIzZGNzEKK+a9siA+IHNow6BvOyAjNkY3Mgor5r2zID4gdMO6OyAjNkY3Mwor5r20ID4gemjFqzsgIzZGNzQKK+a9tSA+IHPDoG47ICM2Rjc1CivmvbYgPiBoxJNpOyAjNkY3Ngor5r23ID4gYsStOyAjNkY3Nwor5r24ID4gc2jEgW47ICM2Rjc4CivmvbkgPiBjaMOhbjsgIzZGNzkKK+a9uiA+IGNow6FuOyAjNkY3QQor5r27ID4gc2jFrTsgIzZGN0IKK+a9vCA+IHTDs25nOyAjNkY3Qwor5r29ID4gcMWtOyAjNkY3RAor5r2+ID4gbMOtbjsgIzZGN0UKK+a9vyA+IHfDqWk7ICM2RjdGCivmvoAgPiBzw6g7ICM2RjgwCivmvoEgPiBzw6g7ICM2RjgxCivmvoIgPiBjaMOpbmc7ICM2RjgyCivmvoMgPiBqw6xvbmc7ICM2RjgzCivmvoQgPiBjaMOpbmc7ICM2Rjg0CivmvoUgPiBodcOgOyAjNkY4NQor5r6GID4gamnEgW87ICM2Rjg2CivmvocgPiBsw6BvOyAjNkY4Nwor5r6IID4gY2jDqDsgIzZGODgKK+a+iSA+IGfEg247ICM2Rjg5CivmvoogPiBjxatuOyAjNkY4QQor5r6LID4gaMOobmc7ICM2RjhCCivmvowgPiBzxKs7ICM2RjhDCivmvo0gPiBzaMO5OyAjNkY4RAor5r6OID4gcMOpbmc7ICM2RjhFCivmvo8gPiBow6BuOyAjNkY4Rgor5r6QID4gecO6bjsgIzZGOTAKK+a+kSA+IGzDrHU7ICM2RjkxCivmvpIgPiBow7JuZzsgIzZGOTIKK+a+kyA+IGbDujsgIzZGOTMKK+a+lCA+IGjDoG87ICM2Rjk0CivmvpUgPiBow6k7ICM2Rjk1CivmvpYgPiB4acSBbjsgIzZGOTYKK+a+lyA+IGppw6BuOyAjNkY5Nwor5r6YID4gc2jEgW47ICM2Rjk4CivmvpkgPiB4w6w7ICM2Rjk5CivmvpwgPiBsw6FuOyAjNkY5Qwor5r6eID4gecO6OyAjNkY5RQor5r6fID4gbMStbjsgIzZGOUYKK+a+oCA+IG3ErW47ICM2RkEwCivmvqEgPiB6xINvOyAjNkZBMQor5r6iID4gZMSBbmc7ICM2RkEyCivmvqMgPiB3xINuOyAjNkZBMwor5r6kID4gesOpOyAjNkZBNAor5r6lID4geGnDqDsgIzZGQTUKK+a+piA+IHnDuTsgIzZGQTYKK+a+pyA+IGzErTsgIzZGQTcKK+a+qCA+IHNow6w7ICM2RkE4CivmvqkgPiB4dcOpOyAjNkZBOQor5r6qID4gbMOtbmc7ICM2RkFBCivmvqsgPiBtw6BuOyAjNkZBQgor5r6sID4gesSrOyAjNkZBQwor5r6tID4gecWNbmc7ICM2RkFECivmvq4gPiBrdcOgaTsgIzZGQUUKK+a+ryA+IGPDoG47ICM2RkFGCivmvrAgPiBsacOgbjsgIzZGQjAKK+a+sSA+IGRpw6BuOyAjNkZCMQor5r6yID4gecOoOyAjNkZCMgor5r6zID4gw6BvOyAjNkZCMwor5r60ID4gaHXDoW47ICM2RkI0CivmvrUgPiB6aMSTbjsgIzZGQjUKK+a+tiA+IGNow6FuOyAjNkZCNgor5r63ID4gbcOgbjsgIzZGQjcKK+a+uCA+IGTEg247ICM2RkI4CivmvrkgPiBkw6BuOyAjNkZCOQor5r66ID4gecOsOyAjNkZCQQor5r67ID4gc8O5aTsgIzZGQkIKK+a+vCA+IHDDrDsgIzZGQkMKK+a+vSA+IGrDuTsgIzZGQkQKK+a+viA+IHTDoDsgIzZGQkUKK+a+vyA+IHHDrW47ICM2RkJGCivmv4AgPiBqxKs7ICM2RkMwCivmv4EgPiB6aMO6bzsgIzZGQzEKK+a/giA+IGxpw6FuOyAjNkZDMgor5r+DID4gbsOzbmc7ICM2RkMzCivmv4QgPiBnxatvOyAjNkZDNAor5r+FID4gasOsbjsgIzZGQzUKK+a/hiA+IGbDqW47ICM2RkM2Civmv4cgPiBzw6g7ICM2RkM3Civmv4ggPiBqw607ICM2RkM4Civmv4kgPiBzxatpOyAjNkZDOQor5r+KID4gaMO5aTsgIzZGQ0EKK+a/iyA+IGNoxa07ICM2RkNCCivmv4wgPiB0w6A7ICM2RkNDCivmv40gPiBzxY1uZzsgIzZGQ0QKK+a/jiA+IGTErW5nOyAjNkZDRQor5r+QID4gemjFrTsgIzZGRDAKK+a/kSA+IGzDoGk7ICM2RkQxCivmv5IgPiBixKtuOyAjNkZEMgor5r+TID4gbGnDoW47ICM2RkQzCivmv5QgPiBtxK07ICM2RkQ0Civmv5UgPiBzaMSrOyAjNkZENQor5r+WID4gc2jDuTsgIzZGRDYKK+a/lyA+IG3DrDsgIzZGRDcKK+a/mCA+IG7DrG5nOyAjNkZEOAor5r+ZID4gecOtbmc7ICM2RkQ5Civmv5ogPiB5w61uZzsgIzZGREEKK+a/myA+IG3DqW5nOyAjNkZEQgor5r+cID4gasOsbjsgIzZGREMKK+a/nSA+IHHDrTsgIzZGREQKK+a/niA+IHDDrDsgIzZGREUKK+a/nyA+IGrDrDsgIzZGREYKK+a/oCA+IGjDoW87ICM2RkUwCivmv6EgPiByw7o7ICM2RkUxCivmv6IgPiB6xa1pOyAjNkZFMgor5r+jID4gd8OyOyAjNkZFMwor5r+kID4gdMSBbzsgIzZGRTQKK+a/pSA+IHnDrG47ICM2RkU1Civmv6YgPiB5xK1uOyAjNkZFNgor5r+nID4gZMO5aTsgIzZGRTcKK+a/qCA+IGPDrTsgIzZGRTgKK+a/qSA+IGjDuW87ICM2RkU5Civmv6ogPiBqw6xuZzsgIzZGRUEKK+a/qyA+IGzDoG47ICM2RkVCCivmv6wgPiBqw7luOyAjNkZFQwor5r+tID4gw6BpOyAjNkZFRAor5r+uID4gcMWrOyAjNkZFRQor5r+vID4gemjDum87ICM2RkVGCivmv7AgPiB3w6lpOyAjNkZGMAor5r+xID4gYsSrbjsgIzZGRjEKK+a/siA+IGfFrTsgIzZGRjIKK+a/syA+IHFpw6FuOyAjNkZGMwor5r+0ID4geMOtbmc7ICM2RkY0Civmv7YgPiBrw7lvOyAjNkZGNgor5r+3ID4gZsOoaTsgIzZGRjcKK+a/uiA+IGppw6BuOyAjNkZGQQor5r+7ID4gd8SVaTsgIzZGRkIKK+a/vCA+IGzDuW87ICM2RkZDCivmv70gPiB6w6BuOyAjNkZGRAor5r++ID4gbMecOyAjNkZGRQor5r+/ID4gbMOsOyAjNkZGRgor54CAID4gecWNdTsgIzcwMDAKK+eAgSA+IHnDoG5nOyAjNzAwMQor54CCID4gbMWtOyAjNzAwMgor54CDID4gc8OsOyAjNzAwMwor54CEID4gamnDqTsgIzcwMDQKK+eAhSA+IHnDrG5nOyAjNzAwNQor54CGID4gZMO6OyAjNzAwNgor54CHID4gd8SDbmc7ICM3MDA3CivngIggPiBoxatpOyAjNzAwOAor54CJID4geGnDqDsgIzcwMDkKK+eAiiA+IHDDoW47ICM3MDBBCivngIsgPiBzaMSVbjsgIzcwMEIKK+eAjCA+IGJpxIFvOyAjNzAwQwor54CNID4gY2jDoW47ICM3MDBECivngI4gPiBtw7I7ICM3MDBFCivngI8gPiBsw611OyAjNzAwRgor54CQID4gamnEgW47ICM3MDEwCivngJEgPiBww7k7ICM3MDExCivngJIgPiBzw6g7ICM3MDEyCivngJMgPiBjaMOpbmc7ICM3MDEzCivngJQgPiBnxa07ICM3MDE0CivngJUgPiBixKtuOyAjNzAxNQor54CWID4gaMO5bzsgIzcwMTYKK+eAlyA+IHhpw6BuOyAjNzAxNwor54CYID4gbMO6OyAjNzAxOAor54CZID4gccSrbjsgIzcwMTkKK+eAmiA+IGjDoG47ICM3MDFBCivngJsgPiB5w61uZzsgIzcwMUIKK+eAnCA+IHnFjW5nOyAjNzAxQwor54CdID4gbMOsOyAjNzAxRAor54CeID4gasOsbmc7ICM3MDFFCivngJ8gPiB4acSBbzsgIzcwMUYKK+eAoCA+IHnDrW5nOyAjNzAyMAor54ChID4gc8WtaTsgIzcwMjEKK+eAoiA+IHfDqWk7ICM3MDIyCivngKMgPiB4acOoOyAjNzAyMwor54CkID4gaHXDoWk7ICM3MDI0CivngKUgPiBow6BvOyAjNzAyNQor54CmID4gemjFqzsgIzcwMjYKK+eApyA+IGzDs25nOyAjNzAyNwor54CoID4gbMOgaTsgIzcwMjgKK+eAqSA+IGTDuWk7ICM3MDI5CivngKogPiBmw6FuOyAjNzAyQQor54CrID4gaMO6OyAjNzAyQgor54CsID4gbMOgaTsgIzcwMkMKK+eAryA+IHnDrW5nOyAjNzAyRgor54CwID4gbcOtOyAjNzAzMAor54CxID4gasOsOyAjNzAzMQor54CyID4gbGnDoG47ICM3MDMyCivngLMgPiBqacOgbjsgIzcwMzMKK+eAtCA+IHnErW5nOyAjNzAzNAor54C1ID4gZsOobjsgIzcwMzUKK+eAtiA+IGzDrW47ICM3MDM2CivngLcgPiB5w6w7ICM3MDM3CivngLggPiBqacSBbjsgIzcwMzgKK+eAuSA+IHl1w6g7ICM3MDM5CivngLogPiBjaMOhbjsgIzcwM0EKK+eAuyA+IGTDoGk7ICM3MDNCCivngLwgPiByw6FuZzsgIzcwM0MKK+eAvSA+IGppxINuOyAjNzAzRAor54C+ID4gbMOhbjsgIzcwM0UKK+eAvyA+IGbDoW47ICM3MDNGCivngYAgPiBzaHXDoG5nOyAjNzA0MAor54GBID4geXXEgW47ICM3MDQxCivngYIgPiB6aMO6bzsgIzcwNDIKK+eBgyA+IGbEk25nOyAjNzA0Mwor54GEID4gc2jDqDsgIzcwNDQKK+eBhSA+IGzElWk7ICM3MDQ1CivngYYgPiBsw6FuOyAjNzA0Ngor54GHID4gY8Ozbmc7ICM3MDQ3CivngYggPiBxw7o7ICM3MDQ4CivngYkgPiB5xY1uZzsgIzcwNDkKK+eBiiA+IHFpw6FuOyAjNzA0QQor54GLID4gZsSDOyAjNzA0Qgor54GMID4gZ3XDoG47ICM3MDRDCivngY0gPiBxdcOoOyAjNzA0RAor54GOID4gecOgbjsgIzcwNEUKK+eBjyA+IGjDoG87ICM3MDRGCivngZEgPiBzxIM7ICM3MDUxCivngZIgPiB6w6BuOyAjNzA1Mgor54GTID4gbHXDoW47ICM3MDUzCivngZQgPiB5w6BuOyAjNzA1NAor54GVID4gbMOtOyAjNzA1NQor54GWID4gbcStOyAjNzA1Ngor54GXID4gc2jDoG47ICM3MDU3CivngZggPiB0xIFuOyAjNzA1OAor54GZID4gZMSDbmc7ICM3MDU5CivngZogPiBqacSDbzsgIzcwNUEKK+eBmyA+IGNoxINuOyAjNzA1Qgor54GdID4gaMOgbzsgIzcwNUQKK+eBniA+IGLDoDsgIzcwNUUKK+eBnyA+IHpow7o7ICM3MDVGCivngaAgPiBsxINuOyAjNzA2MAor54GhID4gbMOhbjsgIzcwNjEKK+eBoiA+IG7Eg25nOyAjNzA2Mgor54GjID4gd8SBbjsgIzcwNjMKK+eBpCA+IGx1w6FuOyAjNzA2NAor54GlID4geMO6bjsgIzcwNjUKK+eBpiA+IHhpxINuOyAjNzA2Ngor54GnID4gecOgbjsgIzcwNjcKK+eBqCA+IGfEg247ICM3MDY4CivngakgPiB5w6BuOyAjNzA2OQor54GqID4gecO5OyAjNzA2QQor54GrID4gaMWtbzsgIzcwNkIKK+eBrCA+IHPDrCcgJ2RpxINuJyAnaMWtbzsgIzcwNkMKK+eBrSA+IG1pw6g7ICM3MDZECivnga4gPiBndcSBbmc7ICM3MDZFCivnga8gPiBkxJNuZzsgIzcwNkYKK+eBsCA+IGjFq2k7ICM3MDcwCivngbEgPiB4acSBbzsgIzcwNzEKK+eBsiA+IHhpxIFvOyAjNzA3Mgor54GzID4gaMWrMTsgIzcwNzMKK+eBtCA+IGjDs25nOyAjNzA3NAor54G1ID4gbMOtbmc7ICM3MDc1CivngbYgPiB6w6BvOyAjNzA3Ngor54G3ID4gemh1w6BuOyAjNzA3Nwor54G4ID4gasStdTsgIzcwNzgKK+eBuSA+IHpow6A7ICM3MDc5CivngbogPiB4acOoOyAjNzA3QQor54G7ID4gY2jDrDsgIzcwN0IKK+eBvCA+IHpow7pvOyAjNzA3Qwor54G9ID4gesSBaTsgIzcwN0QKK+eBviA+IHrEgWk7ICM3MDdFCivngb8gPiBjw6BuOyAjNzA3Rgor54KAID4gecOhbmc7ICM3MDgwCivngoEgPiBxw6w7ICM3MDgxCivngoIgPiB6aMWNbmc7ICM3MDgyCivngoMgPiBmw6luOyAjNzA4Mwor54KEID4gbsStdTsgIzcwODQKK+eChSA+IGrErW9uZzsgIzcwODUKK+eChiA+IHfDqW47ICM3MDg2CivngocgPiBww7I7ICM3MDg3CivngoggPiB5w6w7ICM3MDg4CivngokgPiBsw7o7ICM3MDg5CivngoogPiBjaMWraTsgIzcwOEEKK+eCiyA+IHDEqzsgIzcwOEIKK+eCjCA+IGvDoGk7ICM3MDhDCivngo0gPiBww6BuOyAjNzA4RAor54KOID4gecOhbjsgIzcwOEUKK+eCjyA+IGvDoGk7ICM3MDhGCivngpAgPiBww6BuZzsgIzcwOTAKK+eCkSA+IG3DuTsgIzcwOTEKK+eCkiA+IGNoxINvOyAjNzA5Mgor54KTID4gbGnDoG87ICM3MDkzCivngpQgPiBnw7lpOyAjNzA5NAor54KVID4ga8Ogbmc7ICM3MDk1CivngpYgPiB0xatuOyAjNzA5Ngor54KXID4gZ3XEgW5nOyAjNzA5Nwor54KYID4geMSrbjsgIzcwOTgKK+eCmSA+IHpow6w7ICM3MDk5CivngpogPiBndWFuZzsgIzcwOUEKK+eCmyA+IGd1xIFuZzsgIzcwOUIKK+eCnCA+IHfElWk7ICM3MDlDCivngp0gPiBxacOgbmc7ICM3MDlECivngp8gPiBkw6E7ICM3MDlGCivngqAgPiB4acOhOyAjNzBBMAor54KhID4gemjEk25nOyAjNzBBMQor54KiID4gemjDujsgIzcwQTIKK+eCoyA+IGvElTsgIzcwQTMKK+eCpCA+IHpow6BvOyAjNzBBNAor54KlID4gZsO6OyAjNzBBNQor54KmID4gYsOhOyAjNzBBNgor54KnID4gZMO5bzsgIzcwQTcKK+eCqCA+IGTDuW87ICM3MEE4CivngqkgPiBsw6xuZzsgIzcwQTkKK+eCqiA+IHpow7pvOyAjNzBBQQor54KrID4geHXDoG47ICM3MEFCCivngqwgPiBqw7k7ICM3MEFDCivngq0gPiB0w6BuOyAjNzBBRAor54KuID4gcMOgbzsgIzcwQUUKK+eCryA+IGrErW9uZzsgIzcwQUYKK+eCsCA+IHDDoW87ICM3MEIwCivngrEgPiB0w6FpOyAjNzBCMQor54KyID4gdMOhaTsgIzcwQjIKK+eCsyA+IGLErW5nOyAjNzBCMwor54K0ID4gecSDbmc7ICM3MEI0CivngrUgPiB0xY1uZzsgIzcwQjUKK+eCtiA+IGjEgW47ICM3MEI2CivngrcgPiB6aMO5OyAjNzBCNwor54K4ID4gemjDoDsgIzcwQjgKK+eCuSA+IGRpxINuOyAjNzBCOQor54K6ID4gd8OoaTsgIzcwQkEKK+eCuyA+IHNow607ICM3MEJCCivngrwgPiBsacOgbjsgIzcwQkMKK+eCvSA+IGNow6w7ICM3MEJECivngr4gPiBodcSDbmc7ICM3MEJFCivng4AgPiBoxas7ICM3MEMwCivng4EgPiBzaMO5bzsgIzcwQzEKK+eDgiA+IGzDoG47ICM3MEMyCivng4MgPiBqxK1uZzsgIzcwQzMKK+eDhCA+IGppxINvOyAjNzBDNAor54OFID4geMO5OyAjNzBDNQor54OGID4geMOtbmc7ICM3MEM2Civng4cgPiBxdcOgbjsgIzcwQzcKK+eDiCA+IGxpw6g7ICM3MEM4Civng4kgPiBodcOgbjsgIzcwQzkKK+eDiiA+IHnDoW5nOyAjNzBDQQor54OLID4geGnEgW87ICM3MENCCivng4wgPiB4xKt1OyAjNzBDQwor54ONID4geGnEg247ICM3MENECivng44gPiB5w61uOyAjNzBDRQor54OPID4gd8WrOyAjNzBDRgor54OQID4gemjFjXU7ICM3MEQwCivng5EgPiB5w6FvOyAjNzBEMQor54OSID4gc2jDrDsgIzcwRDIKK+eDkyA+IHfEk2k7ICM3MEQzCivng5QgPiB0w7NuZzsgIzcwRDQKK+eDlSA+IHh1w6g7ICM3MEQ1Civng5YgPiB6xIFpOyAjNzBENgor54OXID4ga8OgaTsgIzcwRDcKK+eDmCA+IGjFjW5nOyAjNzBEOAor54OZID4gbMO5bzsgIzcwRDkKK+eDmiA+IHhpw6E7ICM3MERBCivng5sgPiB6aMO6OyAjNzBEQgor54OcID4geHXEg247ICM3MERDCivng50gPiB6aMSTbmc7ICM3MERECivng54gPiBww7I7ICM3MERFCivng58gPiB5xIFuOyAjNzBERgor54OgID4gaMWtaTsgIzcwRTAKK+eDoSA+IGd1xIFuZzsgIzcwRTEKK+eDoiA+IHpow6g7ICM3MEUyCivng6MgPiBoxatpOyAjNzBFMwor54OkID4ga8SDbzsgIzcwRTQKK+eDpiA+IGbDoW47ICM3MEU2Civng6cgPiBzaMSBbzsgIzcwRTcKK+eDqCA+IHnDqDsgIzcwRTgKK+eDqSA+IGjDuWk7ICM3MEU5Civng6sgPiB0w6BuZzsgIzcwRUIKK+eDrCA+IGrDrG47ICM3MEVDCivng60gPiByw6g7ICM3MEVECivng68gPiB4xKs7ICM3MEVGCivng7AgPiBmw7o7ICM3MEYwCivng7EgPiBqxK1vbmc7ICM3MEYxCivng7IgPiBjaMOoOyAjNzBGMgor54OzID4gcMWtOyAjNzBGMwor54O0ID4gasStbmc7ICM3MEY0Civng7UgPiB6aMO6bzsgIzcwRjUKK+eDtiA+IHTErW5nOyAjNzBGNgor54O3ID4gd8OhbjsgIzcwRjcKK+eDuCA+IGjEg2k7ICM3MEY4Civng7kgPiBwxJNuZzsgIzcwRjkKK+eDuiA+IGzEg25nOyAjNzBGQQor54O7ID4gc2jEgW47ICM3MEZCCivng7wgPiBoxas7ICM3MEZDCivng70gPiBmxJNuZzsgIzcwRkQKK+eDviA+IGNow6w7ICM3MEZFCivng78gPiByw7NuZzsgIzcwRkYKK+eEgCA+IGjDujsgIzcxMDAKK+eEgSA+IHhpOyAjNzEwMQor54SCID4gc2jDujsgIzcxMDIKK+eEgyA+IGjDqDsgIzcxMDMKK+eEhCA+IHjFq247ICM3MTA0CivnhIUgPiBrw7k7ICM3MTA1CivnhIYgPiBqdcOpOyAjNzEwNgor54SHID4geGnEgW87ICM3MTA3CivnhIggPiB4xKs7ICM3MTA4CivnhIkgPiB5xIFuOyAjNzEwOQor54SKID4gaMOgbjsgIzcxMEEKK+eEiyA+IHpodcOgbmc7ICM3MTBCCivnhIwgPiBqw7luOyAjNzEwQwor54SNID4gZMOsOyAjNzEwRAor54SOID4geGnDqDsgIzcxMEUKK+eEjyA+IGrDrTsgIzcxMEYKK+eEkCA+IHfDuTsgIzcxMTAKK+eEkyA+IGjDoW47ICM3MTEzCivnhJQgPiB5w6BuOyAjNzExNAor54SVID4gaHXDoG47ICM3MTE1CivnhJYgPiBtw6huOyAjNzExNgor54SXID4gasO6OyAjNzExNwor54SYID4gY2jDs3U7ICM3MTE4CivnhJkgPiBiw6hpOyAjNzExOQor54SaID4gZsOpbjsgIzcxMUEKK+eEmyA+IGzDrG47ICM3MTFCCivnhJwgPiBrxatuOyAjNzExQwor54SdID4gaMO5bjsgIzcxMUQKK+eEniA+IHTFq247ICM3MTFFCivnhJ8gPiB4w607ICM3MTFGCivnhKAgPiBjw7lpOyAjNzEyMAor54ShID4gd8O6OyAjNzEyMQor54SiID4gaMWNbmc7ICM3MTIyCivnhKMgPiBqw7k7ICM3MTIzCivnhKQgPiBmxa07ICM3MTI0CivnhKUgPiB3w7I7ICM3MTI1CivnhKYgPiBqacSBbzsgIzcxMjYKK+eEpyA+IGPFjW5nOyAjNzEyNwor54SoID4gZsOobmc7ICM3MTI4CivnhKkgPiBwxKtuZzsgIzcxMjkKK+eEqiA+IHHEq29uZzsgIzcxMkEKK+eEqyA+IHLDuW87ICM3MTJCCivnhKwgPiB4w607ICM3MTJDCivnhK0gPiBxw61vbmc7ICM3MTJECivnhK4gPiB4w6xuOyAjNzEyRQor54SvID4gemjDum87ICM3MTJGCivnhLAgPiB5w6BuOyAjNzEzMAor54SxID4gecOgbjsgIzcxMzEKK+eEsiA+IHnDrDsgIzcxMzIKK+eEsyA+IGp1w6k7ICM3MTMzCivnhLQgPiB5w7k7ICM3MTM0CivnhLUgPiBnw6BuZzsgIzcxMzUKK+eEtiA+IHLDoW47ICM3MTM2CivnhLcgPiBww607ICM3MTM3CivnhLggPiBnxa07ICM3MTM4CivnhLogPiBzaMSTbmc7ICM3MTNBCivnhLsgPiBjaMOgbmc7ICM3MTNCCivnhLwgPiBzaMSBbzsgIzcxM0MKK+eFgSA+IGNow6luOyAjNzE0MQor54WCID4gaMOoOyAjNzE0Mgor54WDID4ga8WtaTsgIzcxNDMKK+eFhCA+IHpoxY1uZzsgIzcxNDQKK+eFhSA+IGR1w6BuOyAjNzE0NQor54WGID4geGnEgTsgIzcxNDYKK+eFhyA+IGjFq2k7ICM3MTQ3CivnhYggPiBmw6huZzsgIzcxNDgKK+eFiSA+IGxpw6BuOyAjNzE0OQor54WKID4geHXEgW47ICM3MTRBCivnhYsgPiB4xKtuZzsgIzcxNEIKK+eFjCA+IGh1w6FuZzsgIzcxNEMKK+eFjSA+IGppxINvOyAjNzE0RAor54WOID4gamnEgW47ICM3MTRFCivnhY8gPiBiw6w7ICM3MTRGCivnhZAgPiB5xKtuZzsgIzcxNTAKK+eFkSA+IHpoxa07ICM3MTUxCivnhZIgPiB3xJVpOyAjNzE1Mgor54WTID4gdHXEgW47ICM3MTUzCivnhZQgPiB0acOgbjsgIzcxNTQKK+eFlSA+IHjEqzsgIzcxNTUKK+eFliA+IG51xINuOyAjNzE1Ngor54WXID4gbnXEg247ICM3MTU3CivnhZggPiBjaMOhbjsgIzcxNTgKK+eFmSA+IHnEgW47ICM3MTU5CivnhZogPiBqxK1vbmc7ICM3MTVBCivnhZsgPiBqxK1vbmc7ICM3MTVCCivnhZwgPiB5w7k7ICM3MTVDCivnhZ0gPiBtw6hpOyAjNzE1RAor54WeID4gc2jDoDsgIzcxNUUKK+eFnyA+IHfDqGk7ICM3MTVGCivnhaAgPiB5w6g7ICM3MTYwCivnhaEgPiB4w6xuOyAjNzE2MQor54WiID4gccOtb25nOyAjNzE2Mgor54WjID4gcsWPdTsgIzcxNjMKK+eFpCA+IG3DqWk7ICM3MTY0CivnhaUgPiBodcOgbjsgIzcxNjUKK+eFpiA+IHjFrTsgIzcxNjYKK+eFpyA+IHpow6BvOyAjNzE2Nwor54WoID4gd8STaTsgIzcxNjgKK+eFqSA+IGbDoW47ICM3MTY5CivnhaogPiBxw611OyAjNzE2QQor54WrID4gc8O5aTsgIzcxNkIKK+eFrCA+IHnDoW5nOyAjNzE2Qwor54WtID4gbGnDqDsgIzcxNkQKK+eFriA+IHpoxa07ICM3MTZFCivnha8gPiBqaWU7ICM3MTZGCivnhbAgPiBnw6BvOyAjNzE3MAor54WxID4gZ3XEgTsgIzcxNzEKK+eFsiA+IGLDoG87ICM3MTcyCivnhbMgPiBow7o7ICM3MTczCivnhbQgPiB5xatuOyAjNzE3NAor54W1ID4geGnEgTsgIzcxNzUKK+eFuCA+IGJpxIFuOyAjNzE3OAor54W5ID4gZ8OydTsgIzcxNzkKK+eFuiA+IHTDuWk7ICM3MTdBCivnhbsgPiB0w6FuZzsgIzcxN0IKK+eFvCA+IGNoxINvOyAjNzE3Qwor54W9ID4gc2jEgW47ICM3MTdECivnhb4gPiBuOyAjNzE3RQor54W/ID4gYsOzOyAjNzE3Rgor54aAID4gaHXEg25nOyAjNzE4MAor54aBID4geGnDqTsgIzcxODEKK+eGgiA+IHjDrDsgIzcxODIKK+eGgyA+IHfDuTsgIzcxODMKK+eGhCA+IHjDrTsgIzcxODQKK+eGhSA+IHnDum47ICM3MTg1CivnhoYgPiBow6k7ICM3MTg2CivnhocgPiBow6g7ICM3MTg3CivnhoggPiB4xKs7ICM3MTg4CivnhokgPiB5w7puOyAjNzE4OQor54aKID4geMOtb25nOyAjNzE4QQor54aLID4gbsOhaTsgIzcxOEIKK+eGjCA+IHNow6BuOyAjNzE4Qwor54aNID4gcWlvbmc7ICM3MThECivnho4gPiB5w6BvOyAjNzE4RQor54aPID4geMWrbjsgIzcxOEYKK+eGkCA+IG3DrDsgIzcxOTAKK+eGkSA+IGxpw6FuOyAjNzE5MQor54aSID4gecOtbmc7ICM3MTkyCivnhpMgPiB3w6huOyAjNzE5Mwor54aUID4gcsOzbmc7ICM3MTk0CivnhpcgPiBxacOgbmc7ICM3MTk3CivnhpggPiBsxKt1OyAjNzE5OAor54aZID4geMSrOyAjNzE5OQor54aaID4gYsOsOyAjNzE5QQor54abID4gYmnEgW87ICM3MTlCCivnhpwgPiB6xY9uZzsgIzcxOUMKK+eGnSA+IGzDuTsgIzcxOUQKK+eGniA+IGppxIFuOyAjNzE5RQor54afID4gc2jDs3U7ICM3MTlGCivnhqAgPiB5w6w7ICM3MUEwCivnhqEgPiBsw7N1OyAjNzFBMQor54aiID4gZsSTbmc7ICM3MUEyCivnhqMgPiBzxatpOyAjNzFBMwor54akID4gecOsOyAjNzFBNAor54alID4gdMWNbmc7ICM3MUE1CivnhqYgPiBqdcOpOyAjNzFBNgor54anID4gesWNbmc7ICM3MUE3CivnhqggPiB5w7luOyAjNzFBOAor54apID4gaMO5OyAjNzFBOQor54aqID4gecOtOyAjNzFBQQor54arID4gemjDrDsgIzcxQUIKK+eGrCA+IMOhbzsgIzcxQUMKK+eGrSA+IHfDqGk7ICM3MUFECivnhq4gPiBsacOhbzsgIzcxQUUKK+eGryA+IGjDoG47ICM3MUFGCivnhrAgPiDFjXU7ICM3MUIwCivnhrEgPiByw6g7ICM3MUIxCivnhrIgPiBqxK1vbmc7ICM3MUIyCivnhrMgPiBtw6BuOyAjNzFCMwor54a1ID4gc2jEgW5nOyAjNzFCNQor54a2ID4gY3XDoG47ICM3MUI2CivnhrcgPiB6xJNuZzsgIzcxQjcKK+eGuCA+IGppxIFuOyAjNzFCOAor54a5ID4geMSrOyAjNzFCOQor54a6ID4geMSrOyAjNzFCQQor54a7ID4geMSrOyAjNzFCQgor54a8ID4gecOsOyAjNzFCQwor54a9ID4geGnDoG87ICM3MUJECivnhr4gPiBjaMOsOyAjNzFCRQor54a/ID4gaHXDoW5nOyAjNzFCRgor54eAID4gY2jEg247ICM3MUMwCivnh4EgPiB5w6g7ICM3MUMxCivnh4IgPiBxacOhbjsgIzcxQzIKK+eHgyA+IHLDoW47ICM3MUMzCivnh4QgPiB5w6BuOyAjNzFDNAor54eFID4geGnDoW47ICM3MUM1Civnh4YgPiBxacOhbzsgIzcxQzYKK+eHhyA+IHrDuW47ICM3MUM3Civnh4ggPiBkxJNuZzsgIzcxQzgKK+eHiSA+IGTDuW47ICM3MUM5Civnh4ogPiBzaMSTbjsgIzcxQ0EKK+eHiyA+IGppxIFvOyAjNzFDQgor54eMID4gZsOpbjsgIzcxQ0MKK+eHjSA+IHPEqzsgIzcxQ0QKK+eHjiA+IGxpw6BvOyAjNzFDRQor54ePID4gecO5OyAjNzFDRgor54eQID4gbMOtbjsgIzcxRDAKK+eHkSA+IHTDs25nOyAjNzFEMQor54eSID4gc2jEgW87ICM3MUQyCivnh5MgPiBmxJNuOyAjNzFEMwor54eUID4gZsOhbjsgIzcxRDQKK+eHlSA+IHnDoG47ICM3MUQ1Civnh5YgPiB4w7puOyAjNzFENgor54eXID4gbMOgbjsgIzcxRDcKK+eHmCA+IG3ElWk7ICM3MUQ4Civnh5kgPiB0w6BuZzsgIzcxRDkKK+eHmiA+IHnEqzsgIzcxREEKK+eHmyA+IGrErW5nOyAjNzFEQgor54ecID4gbcOobjsgIzcxREMKK+eHnyA+IHnDrW5nOyAjNzFERgor54egID4gecO5OyAjNzFFMAor54ehID4gecOsOyAjNzFFMQor54eiID4geHXDqTsgIzcxRTIKK+eHoyA+IGzDoW47ICM3MUUzCivnh6QgPiB0w6BpOyAjNzFFNAor54elID4gesOgbzsgIzcxRTUKK+eHpiA+IGPDoG47ICM3MUU2Civnh6cgPiBzw7lpOyAjNzFFNwor54eoID4geMSrOyAjNzFFOAor54epID4gcXXDqDsgIzcxRTkKK+eHqiA+IGPFjW5nOyAjNzFFQQor54erID4gbGnDoW47ICM3MUVCCivnh6wgPiBoxa1pOyAjNzFFQwor54etID4gemjDujsgIzcxRUQKK+eHriA+IHhpw6g7ICM3MUVFCivnh68gPiBsw61uZzsgIzcxRUYKK+eHsCA+IHfEk2k7ICM3MUYwCivnh7EgPiB5w6w7ICM3MUYxCivnh7IgPiB4acOpOyAjNzFGMgor54ezID4gemjDoG87ICM3MUYzCivnh7QgPiBow7lpOyAjNzFGNAor54e3ID4gbMOhbjsgIzcxRjcKK+eHuCA+IHLDujsgIzcxRjgKK+eHuSA+IHhpxINuOyAjNzFGOQor54e6ID4ga8SDbzsgIzcxRkEKK+eHuyA+IHjFq247ICM3MUZCCivnh7wgPiBqw6xuOyAjNzFGQwor54e9ID4gY2jDs3U7ICM3MUZECivnh74gPiBjaMOzdTsgIzcxRkUKK+eHvyA+IHnDoG87ICM3MUZGCivniIAgPiBow6g7ICM3MjAwCivniIEgPiBsw6BuOyAjNzIwMQor54iCID4gYmnEgW87ICM3MjAyCivniIMgPiByw7NuZzsgIzcyMDMKK+eIhCA+IGzDrDsgIzcyMDQKK+eIhSA+IG3DsjsgIzcyMDUKK+eIhiA+IGLDoG87ICM3MjA2CivniIcgPiByw7lvOyAjNzIwNwor54iIID4gbMeYOyAjNzIwOAor54iJID4gbMOgOyAjNzIwOQor54iKID4gw6FvOyAjNzIwQQor54iLID4geMO5bjsgIzcyMEIKK+eIjCA+IGt1w6BuZzsgIzcyMEMKK+eIjSA+IHNow7lvOyAjNzIwRAor54iPID4gbMOsOyAjNzIwRgor54iQID4gbMO6OyAjNzIxMAor54iRID4ganXDqTsgIzcyMTEKK+eIkiA+IGxpw6BvOyAjNzIxMgor54iTID4gecOgbjsgIzcyMTMKK+eIlCA+IHjEqzsgIzcyMTQKK+eIlSA+IHhpw6g7ICM3MjE1CivniJYgPiBsw7NuZzsgIzcyMTYKK+eIlyA+IHnDqDsgIzcyMTcKK+eImSA+IHLEg25nOyAjNzIxOQor54iaID4geXXDqDsgIzcyMUEKK+eImyA+IGzDoG47ICM3MjFCCivniJwgPiBjw7NuZzsgIzcyMUMKK+eInSA+IGp1w6k7ICM3MjFECivniJ4gPiB0w7NuZzsgIzcyMUUKK+eInyA+IGd1w6BuOyAjNzIxRgor54ihID4gY2jDqDsgIzcyMjEKK+eIoiA+IG3DrTsgIzcyMjIKK+eIoyA+IHTEg25nOyAjNzIyMwor54ikID4gbMOgbjsgIzcyMjQKK+eIpSA+IHpow7o7ICM3MjI1CivniKcgPiBsw61uZzsgIzcyMjcKK+eIqCA+IGN1w6BuOyAjNzIyOAor54ipID4gecO5OyAjNzIyOQor54iqID4gemh1xIM7ICM3MjJBCivniKwgPiBww6E7ICM3MjJDCivniK0gPiB6aMSTbmc7ICM3MjJECivniK4gPiBww6FvOyAjNzIyRQor54ivID4gY2jEk25nOyAjNzIyRgor54iwID4geXXDoW47ICM3MjMwCivniLEgPiDDoGk7ICM3MjMxCivniLIgPiB3w6hpOyAjNzIzMgor54i0ID4ganXDqTsgIzcyMzQKK+eItSA+IGp1w6k7ICM3MjM1CivniLYgPiBmw7k7ICM3MjM2CivniLcgPiB5w6k7ICM3MjM3CivniLggPiBiw6A7ICM3MjM4CivniLkgPiBkacSTOyAjNzIzOQor54i6ID4gecOpOyAjNzIzQQor54i7ID4gecOhbzsgIzcyM0IKK+eIvCA+IHrFrTsgIzcyM0MKK+eIvSA+IHNodcSDbmc7ICM3MjNECivniL4gPiDElXI7ICM3MjNFCivniL8gPiBxacOhbmc7ICM3MjNGCivniYAgPiBjaHXDoW5nOyAjNzI0MAor54mBID4gZ8STOyAjNzI0MQor54mCID4gesSBbmc7ICM3MjQyCivniYMgPiBkacOpOyAjNzI0Mwor54mEID4gcWnEgW5nOyAjNzI0NAor54mFID4gecOzbmc7ICM3MjQ1CivniYYgPiBxacOhbmc7ICM3MjQ2CivniYcgPiBwacOgbjsgIzcyNDcKK+eJiCA+IGLEg247ICM3MjQ4CivniYkgPiBww6BuOyAjNzI0OQor54mKID4gc2jDoW87ICM3MjRBCivniYsgPiBqacSBbjsgIzcyNEIKK+eJjCA+IHDDoWk7ICM3MjRDCivniY0gPiBkw7o7ICM3MjRECivniY4gPiBjaHXEgW5nOyAjNzI0RQor54mPID4gdMOzdTsgIzcyNEYKK+eJkCA+IHpow6E7ICM3MjUwCivniZEgPiBiacSBbjsgIzcyNTEKK+eJkiA+IGRpw6k7ICM3MjUyCivniZMgPiBixINuZzsgIzcyNTMKK+eJlCA+IGLDszsgIzcyNTQKK+eJlSA+IGNodcSBbmc7ICM3MjU1CivniZYgPiB5xY91OyAjNzI1Ngor54mYID4gZMO6OyAjNzI1OAor54mZID4gecOhOyAjNzI1OQor54maID4gY2jDqG5nOyAjNzI1QQor54mbID4gbsOtdTsgIzcyNUIKK+eJnSA+IHDDrG47ICM3MjVECivniZ4gPiBqxKt1OyAjNzI1RQor54mfID4gbcOzdTsgIzcyNUYKK+eJoCA+IHTFq287ICM3MjYwCivniaEgPiBtxa07ICM3MjYxCivniaIgPiBsw6FvOyAjNzI2Mgor54mjID4gcsOobjsgIzcyNjMKK+eJpCA+IG3DoW5nOyAjNzI2NAor54mlID4gZsSBbmc7ICM3MjY1CivniaYgPiBtw6FvOyAjNzI2Ngor54mnID4gbcO5OyAjNzI2Nwor54moID4gZ8SBbmc7ICM3MjY4CivniakgPiB3w7k7ICM3MjY5CivniaogPiB5w6BuOyAjNzI2QQor54mrID4gZ8STOyAjNzI2Qgor54msID4gYsOoaTsgIzcyNkMKK+eJrSA+IHPDrDsgIzcyNkQKK+eJriA+IGppw6BuOyAjNzI2RQor54mvID4gZ8WtOyAjNzI2Rgor54mwID4gecOydTsgIzcyNzAKK+eJsSA+IGfEkzsgIzcyNzEKK+eJsiA+IHNoxJNuZzsgIzcyNzIKK+eJsyA+IG3FrTsgIzcyNzMKK+eJtCA+IGTErTsgIzcyNzQKK+eJtSA+IHFpxIFuOyAjNzI3NQor54m2ID4gcXXDoG47ICM3Mjc2CivnibcgPiBxdcOhbjsgIzcyNzcKK+eJuCA+IHrDrDsgIzcyNzgKK+eJuSA+IHTDqDsgIzcyNzkKK+eJuiA+IHjEqzsgIzcyN0EKK+eJuyA+IG3DoW5nOyAjNzI3Qgor54m8ID4ga8STbmc7ICM3MjdDCivnib0gPiBxacSBbjsgIzcyN0QKK+eJviA+IHfDujsgIzcyN0UKK+eJvyA+IGfDuTsgIzcyN0YKK+eKgCA+IHjEqzsgIzcyODAKK+eKgSA+IGzDrTsgIzcyODEKK+eKgiA+IGzDrTsgIzcyODIKK+eKgyA+IHDFj3U7ICM3MjgzCivnioQgPiBqxKs7ICM3Mjg0CivnioUgPiBnxIFuZzsgIzcyODUKK+eKhiA+IHpow607ICM3Mjg2CivniocgPiBixJNuOyAjNzI4Nwor54qIID4gcXXDoW47ICM3Mjg4CivniokgPiByw7puOyAjNzI4OQor54qKID4gZMO6OyAjNzI4QQor54qLID4gasO5OyAjNzI4Qgor54qMID4gamnEgTsgIzcyOEMKK+eKjSA+IGppxIFuOyAjNzI4RAor54qOID4gZsSTbmc7ICM3MjhFCivnio8gPiBwacSBbjsgIzcyOEYKK+eKkCA+IGvEkzsgIzcyOTAKK+eKkSA+IGrDujsgIzcyOTEKK+eKkiA+IGvDoG87ICM3MjkyCivnipMgPiBjaMO6OyAjNzI5Mwor54qUID4geMOsOyAjNzI5NAor54qVID4gYsOoaTsgIzcyOTUKK+eKliA+IGzDuW87ICM3Mjk2CivnipcgPiBqacOoOyAjNzI5Nwor54qYID4gbcOhOyAjNzI5OAor54qZID4gc8SBbjsgIzcyOTkKK+eKmiA+IHfDqGk7ICM3MjlBCivnipsgPiBsw607ICM3MjlCCivnipwgPiBkxatuOyAjNzI5Qwor54qdID4gdMOzbmc7ICM3MjlECivnip8gPiBqacOgbmc7ICM3MjlGCivniqEgPiBsw6w7ICM3MkExCivniqIgPiBkw7o7ICM3MkEyCivniqMgPiBsacOoOyAjNzJBMwor54qkID4gcMOtOyAjNzJBNAor54qlID4gcGnEg287ICM3MkE1CivniqYgPiBiw6BvOyAjNzJBNgor54qnID4geMSrOyAjNzJBNwor54qoID4gY2jFjXU7ICM3MkE4CivniqkgPiB3w6hpOyAjNzJBOQor54qqID4ga8O6aTsgIzcyQUEKK+eKqyA+IGNoxY11OyAjNzJBQgor54qsID4gcXXEg247ICM3MkFDCivniq0gPiBmxINuJyAncXXEg24nICdww6FuZzsgIzcyQUQKK+eKriA+IGLDoTsgIzcyQUUKK+eKryA+IGbDoG47ICM3MkFGCivnirAgPiBxw611OyAjNzJCMAor54qxID4gasStOyAjNzJCMQor54qyID4gY8OhaTsgIzcyQjIKK+eKsyA+IGNow7pvOyAjNzJCMwor54q0ID4gw6BuOyAjNzJCNAor54q1ID4gamnDqTsgIzcyQjUKK+eKtiA+IHpodcOgbmc7ICM3MkI2CivnircgPiBndcSDbmc7ICM3MkI3CivnirggPiBtw6A7ICM3MkI4CivnirkgPiB5w7N1OyAjNzJCOQor54q6ID4ga8Ogbmc7ICM3MkJBCivnirsgPiBiw7M7ICM3MkJCCivnirwgPiBoxY91OyAjNzJCQwor54q9ID4gecOhOyAjNzJCRAor54q+ID4gecOtbjsgIzcyQkUKK+eKvyA+IGh1xIFuOyAjNzJCRgor54uAID4gemh1w6BuZzsgIzcyQzAKK+eLgSA+IHnFrW47ICM3MkMxCivni4IgPiBrdcOhbmc7ICM3MkMyCivni4MgPiBuxK11OyAjNzJDMwor54uEID4gZMOtOyAjNzJDNAor54uFID4gccSrbmc7ICM3MkM1Civni4YgPiB6aMOybmc7ICM3MkM2Civni4cgPiBtw7k7ICM3MkM3Civni4ggPiBiw6hpOyAjNzJDOAor54uJID4gcMSrOyAjNzJDOQor54uKID4gasO6OyAjNzJDQQor54uLID4gbsOtOyAjNzJDQgor54uMID4gc2jEk25nOyAjNzJDQwor54uNID4gcMOhbzsgIzcyQ0QKK+eLjiA+IHhpw6E7ICM3MkNFCivni48gPiB0w7pvOyAjNzJDRgor54uQID4gaMO6OyAjNzJEMAor54uRID4gbMOtbmc7ICM3MkQxCivni5IgPiBmw6hpOyAjNzJEMgor54uTID4gcMSrOyAjNzJEMwor54uUID4gbsStOyAjNzJENAor54uVID4gxINvOyAjNzJENQor54uWID4gecOydTsgIzcyRDYKK+eLlyA+IGfFj3U7ICM3MkQ3Civni5ggPiB5dcOoOyAjNzJEOAor54uZID4gasWrOyAjNzJEOQor54uaID4gZMOgbjsgIzcyREEKK+eLmyA+IHDDsjsgIzcyREIKK+eLnCA+IGfFrTsgIzcyREMKK+eLnSA+IHhpxINuOyAjNzJERAor54ueID4gbsOtbmc7ICM3MkRFCivni58gPiBodcOhbjsgIzcyREYKK+eLoCA+IGjElW47ICM3MkUwCivni6EgPiBqacSDbzsgIzcyRTEKK+eLoiA+IGjDqTsgIzcyRTIKK+eLoyA+IHpow6BvOyAjNzJFMwor54ukID4gasOtOyAjNzJFNAor54ulID4geMO5bjsgIzcyRTUKK+eLpiA+IHNoxIFuOyAjNzJFNgor54unID4gdMOgOyAjNzJFNwor54uoID4gcsOzbmc7ICM3MkU4Civni6kgPiBzaMOydTsgIzcyRTkKK+eLqiA+IHTFjW5nOyAjNzJFQQor54urID4gbMSDbzsgIzcyRUIKK+eLrCA+IGTDujsgIzcyRUMKK+eLrSA+IHhpw6E7ICM3MkVECivni64gPiBzaMSrOyAjNzJFRQor54uvID4gaHXDoTsgIzcyRUYKK+eLsCA+IHpoxJNuZzsgIzcyRjAKK+eLsSA+IHnDuTsgIzcyRjEKK+eLsiA+IHPFq247ICM3MkYyCivni7MgPiB5w7o7ICM3MkYzCivni7QgPiBiw6w7ICM3MkY0Civni7UgPiBtw6FuZzsgIzcyRjUKK+eLtiA+IHjErTsgIzcyRjYKK+eLtyA+IGp1w6BuOyAjNzJGNwor54u4ID4gbMOtOyAjNzJGOAor54u5ID4geGnDoTsgIzcyRjkKK+eLuiA+IHnDrW47ICM3MkZBCivni7sgPiBzdcSBbjsgIzcyRkIKK+eLvCA+IGzDoW5nOyAjNzJGQwor54u9ID4gYsOoaTsgIzcyRkQKK+eLviA+IHpow6w7ICM3MkZFCivni78gPiB5w6FuOyAjNzJGRgor54yAID4gc2jEgTsgIzczMDAKK+eMgSA+IGzDrDsgIzczMDEKK+eMgiA+IGjDoG47ICM3MzAyCivnjIMgPiB4acSDbjsgIzczMDMKK+eMhCA+IGrEq25nOyAjNzMwNAor54yFID4gcMOhaTsgIzczMDUKK+eMhiA+IGbEk2k7ICM3MzA2CivnjIcgPiB5w6FvOyAjNzMwNwor54yIID4gYsOgOyAjNzMwOAor54yJID4gccOtOyAjNzMwOQor54yKID4gbsOtOyAjNzMwQQor54yLID4gYmnEgW87ICM3MzBCCivnjIwgPiB5w6xuOyAjNzMwQwor54yNID4gbMOhaTsgIzczMEQKK+eMjiA+IHjDrTsgIzczMEUKK+eMjyA+IGppxIFuOyAjNzMwRgor54yQID4gcWnEgW5nOyAjNzMxMAor54yRID4ga8WrbjsgIzczMTEKK+eMkiA+IHnEgW47ICM3MzEyCivnjJMgPiBnxa1vOyAjNzMxMwor54yUID4gesOybmc7ICM3MzE0CivnjJUgPiBtw607ICM3MzE1CivnjJYgPiBjaMSBbmc7ICM3MzE2CivnjJcgPiB5xKs7ICM3MzE3CivnjJggPiB6aMOsOyAjNzMxOAor54yZID4gemjEk25nOyAjNzMxOQor54yaID4gecOhOyAjNzMxQQor54ybID4gbcSVbmc7ICM3MzFCCivnjJwgPiBjxIFpOyAjNzMxQwor54ydID4gY8O5OyAjNzMxRAor54yeID4gc2jDqDsgIzczMUUKK+eMoSA+IGzDum87ICM3MzIxCivnjKIgPiBow7o7ICM3MzIyCivnjKMgPiB6xY1uZzsgIzczMjMKK+eMpCA+IGrDrDsgIzczMjQKK+eMpSA+IHfElWk7ICM3MzI1CivnjKYgPiBmxJNuZzsgIzczMjYKK+eMpyA+IHfFjTsgIzczMjcKK+eMqCA+IHl1w6FuOyAjNzMyOAor54ypID4geMSrbmc7ICM3MzI5CivnjKogPiB6aMWrOyAjNzMyQQor54yrID4gbcSBbzsgIzczMkIKK+eMrCA+IHfDqGk7ICM3MzJDCivnjK0gPiB5dcOhbjsgIzczMkQKK+eMriA+IHhpw6BuOyAjNzMyRQor54yvID4gdHXEgW47ICM3MzJGCivnjLAgPiB5w6A7ICM3MzMwCivnjLEgPiBuw6FvOyAjNzMzMQor54yyID4geGnEkzsgIzczMzIKK+eMsyA+IGppxIE7ICM3MzMzCivnjLQgPiBow7N1OyAjNzMzNAor54y1ID4gYmnEgW47ICM3MzM1CivnjLYgPiB5w7N1OyAjNzMzNgor54y3ID4gecOzdTsgIzczMzcKK+eMuCA+IG3DqWk7ICM3MzM4CivnjLkgPiB6aMSBOyAjNzMzOQor54y6ID4gecOhbzsgIzczM0EKK+eMuyA+IHPFq247ICM3MzNCCivnjLwgPiBiw7M7ICM3MzNDCivnjL0gPiBtw61uZzsgIzczM0QKK+eMviA+IGh1w6E7ICM3MzNFCivnjL8gPiB5dcOhbjsgIzczM0YKK+eNgCA+IHPFjXU7ICM3MzQwCivnjYEgPiBtw6A7ICM3MzQxCivnjYIgPiB5dcOhbjsgIzczNDIKK+eNgyA+IGTEgWk7ICM3MzQzCivnjYQgPiB5w7k7ICM3MzQ0CivnjYUgPiBzaMSrOyAjNzM0NQor542GID4gaMOhbzsgIzczNDYKK+eNiCA+IHnDrDsgIzczNDgKK+eNiSA+IHpoxJNuOyAjNzM0OQor542KID4gY2h1w6BuZzsgIzczNEEKK+eNiyA+IGjDoW87ICM3MzRCCivnjYwgPiBtw6BuOyAjNzM0Qwor542NID4gasOsbmc7ICM3MzRECivnjY4gPiBqacSDbmc7ICM3MzRFCivnjY8gPiBtw7o7ICM3MzRGCivnjZAgPiB6aMSBbmc7ICM3MzUwCivnjZEgPiBjaMOhbjsgIzczNTEKK+eNkiA+IMOhbzsgIzczNTIKK+eNkyA+IMOhbzsgIzczNTMKK+eNlCA+IGjDoW87ICM3MzU0CivnjZUgPiBjxatpOyAjNzM1NQor542WID4gZsOpbjsgIzczNTYKK+eNlyA+IGp1w6k7ICM3MzU3CivnjZggPiBiw6w7ICM3MzU4CivnjZkgPiBiw6w7ICM3MzU5CivnjZogPiBodcOhbmc7ICM3MzVBCivnjZsgPiBww7o7ICM3MzVCCivnjZwgPiBsw61uOyAjNzM1Qwor542dID4gecO5OyAjNzM1RAor542eID4gdMOzbmc7ICM3MzVFCivnjZ8gPiB5w6BvOyAjNzM1Rgor542gID4gbGnDoW87ICM3MzYwCivnjaEgPiBzaMO5bzsgIzczNjEKK+eNoiA+IHhpxIFvOyAjNzM2Mgor542lID4geMOtOyAjNzM2NQor542mID4gZ8OpOyAjNzM2Ngor542nID4ganXDoG47ICM3MzY3CivnjaggPiBkw7o7ICM3MzY4CivnjakgPiBow7lpOyAjNzM2OQor542qID4ga3XDoGk7ICM3MzZBCivnjasgPiB4acSDbjsgIzczNkIKK+eNrCA+IHhpw6g7ICM3MzZDCivnja0gPiB0w6A7ICM3MzZECivnja4gPiB4acSDbjsgIzczNkUKK+eNryA+IHjFq247ICM3MzZGCivnjbAgPiBuw61uZzsgIzczNzAKK+eNsSA+IHDDrW47ICM3MzcxCivnjbIgPiBow7lvOyAjNzM3Mgor542zID4gbsOydTsgIzczNzMKK+eNtCA+IG3DqW5nOyAjNzM3NAor5421ID4gbGnDqDsgIzczNzUKK+eNtiA+IG7DoW87ICM3Mzc2CivnjbcgPiBndcSDbmc7ICM3Mzc3CivnjbggPiBzaMOydTsgIzczNzgKK+eNuSA+IGzDujsgIzczNzkKK+eNuiA+IHTDoDsgIzczN0EKK+eNuyA+IHhpw6BuOyAjNzM3Qgor5428ID4gbcOtOyAjNzM3Qwor5429ID4gcsOhbmc7ICM3MzdECivnjb4gPiBodcSBbjsgIzczN0UKK+eNvyA+IG7DoW87ICM3MzdGCivnjoAgPiBsw7pvOyAjNzM4MAor546BID4geGnEg247ICM3MzgxCivnjoIgPiBxw607ICM3MzgyCivnjoMgPiBqdcOpOyAjNzM4Mwor546EID4geHXDoW47ICM3Mzg0CivnjoUgPiBtacOgbzsgIzczODUKK+eOhiA+IHrEqzsgIzczODYKK+eOhyA+IGzHnDsgIzczODcKK+eOiCA+IGzDujsgIzczODgKK+eOiSA+IHnDuTsgIzczODkKK+eOiiA+IHPDuTsgIzczOEEKK+eOiyA+IHfDoW5nOyAjNzM4Qgor546MID4gccOtdTsgIzczOEMKK+eOjSA+IGfEgzsgIzczOEQKK+eOjiA+IGTEq25nOyAjNzM4RQor546PID4gbMOoOyAjNzM4Rgor546QID4gYsSBOyAjNzM5MAor546RID4gasSrOyAjNzM5MQor546SID4gaMOzbmc7ICM3MzkyCivnjpMgPiBkw6w7ICM3MzkzCivnjpQgPiBxdcOgbjsgIzczOTQKK+eOlSA+IGfEgW47ICM3Mzk1CivnjpYgPiBqxK11OyAjNzM5Ngor546XID4gecO6OyAjNzM5Nwor546YID4gasStOyAjNzM5OAor546ZID4gecO6OyAjNzM5OQor546aID4gecOhbmc7ICM3MzlBCivnjpsgPiBtxIM7ICM3MzlCCivnjpwgPiBnxY1uZzsgIzczOUMKK+eOnSA+IHfFrTsgIzczOUQKK+eOniA+IGbFqzsgIzczOUUKK+eOnyA+IHfDqW47ICM3MzlGCivnjqAgPiBqacOoOyAjNzNBMAor546hID4gecOgOyAjNzNBMQor546iID4gZsOpbjsgIzczQTIKK+eOoyA+IGJpw6BuOyAjNzNBMwor546kID4gYsSVbmc7ICM3M0E0CivnjqUgPiB5dcOoOyAjNzNBNQor546mID4ganXDqTsgIzczQTYKK+eOpyA+IHnFrW47ICM3M0E3CivnjqggPiBqdcOpOyAjNzNBOAor546pID4gd8OhbjsgIzczQTkKK+eOqiA+IGppxIFuOyAjNzNBQQor546rID4gbcOpaTsgIzczQUIKK+eOrCA+IGTEg247ICM3M0FDCivnjq0gPiBww607ICM3M0FECivnjq4gPiB3xJVpOyAjNzNBRQor546vID4gaHXDoW47ICM3M0FGCivnjrAgPiB4acOgbjsgIzczQjAKK+eOsSA+IHFpxIFuZzsgIzczQjEKK+eOsiA+IGzDrW5nOyAjNzNCMgor546zID4gZMOgaTsgIzczQjMKK+eOtCA+IHnDrDsgIzczQjQKK+eOtSA+IMOhbjsgIzczQjUKK+eOtiA+IHDDrW5nOyAjNzNCNgor5463ID4gZGnDoG47ICM3M0I3CivnjrggPiBmw7o7ICM3M0I4CivnjrkgPiB4dcOhbjsgIzczQjkKK+eOuiA+IHjErTsgIzczQkEKK+eOuyA+IGLFjTsgIzczQkIKK+eOvCA+IGPErTsgIzczQkMKK+eOvSA+IGfFj3U7ICM3M0JECivnjr4gPiBqacSDOyAjNzNCRQor546/ID4gc2jDoW87ICM3M0JGCivnj4AgPiBww7I7ICM3M0MwCivnj4EgPiBjw607ICM3M0MxCivnj4IgPiBrxJM7ICM3M0MyCivnj4MgPiByxINuOyAjNzNDMwor54+EID4gc2jEk25nOyAjNzNDNAor54+FID4gc2jEk247ICM3M0M1Civnj4YgPiB5w607ICM3M0M2Civnj4cgPiB6xa07ICM3M0M3Civnj4ggPiBqacSBOyAjNzNDOAor54+JID4gbcOtbjsgIzczQzkKK+ePiiA+IHNoxIFuOyAjNzNDQQor54+LID4gbMStdTsgIzczQ0IKK+ePjCA+IGLDrDsgIzczQ0MKK+ePjSA+IHpoxJNuOyAjNzNDRAor54+OID4gemjEk247ICM3M0NFCivnj48gPiBqdcOpOyAjNzNDRgor54+QID4gZsOgOyAjNzNEMAor54+RID4gbMOzbmc7ICM3M0QxCivnj5IgPiBqxKtuOyAjNzNEMgor54+TID4gamnDoG87ICM3M0QzCivnj5QgPiBqacOgbjsgIzczRDQKK+ePlSA+IGzDrDsgIzczRDUKK+ePliA+IGd1xIFuZzsgIzczRDYKK+ePlyA+IHhpxIFuOyAjNzNENwor54+YID4gemjFjXU7ICM3M0Q4Civnj5kgPiBnxY9uZzsgIzczRDkKK+ePmiA+IHnEgW47ICM3M0RBCivnj5sgPiB4w6x1OyAjNzNEQgor54+cID4gecOhbmc7ICM3M0RDCivnj50gPiB4xa07ICM3M0RECivnj54gPiBsw7lvOyAjNzNERQor54+fID4gc8O5OyAjNzNERgor54+gID4gemjFqzsgIzczRTAKK+ePoSA+IHHDrW47ICM3M0UxCivnj6IgPiBrw6huOyAjNzNFMgor54+jID4geMO6bjsgIzczRTMKK+ePpCA+IGLEg287ICM3M0U0Civnj6UgPiDElXI7ICM3M0U1Civnj6YgPiB4acOgbmc7ICM3M0U2Civnj6cgPiB5w6FvOyAjNzNFNwor54+oID4geGnDoTsgIzczRTgKK+ePqSA+IGjDqW5nOyAjNzNFOQor54+qID4gZ8WraTsgIzczRUEKK+ePqyA+IGNoxY1uZzsgIzczRUIKK+ePrCA+IHjDuTsgIzczRUMKK+ePrSA+IGLEgW47ICM3M0VECivnj64gPiBww6hpOyAjNzNFRQor54+wID4gZMSBbmc7ICM3M0YwCivnj7IgPiBow7puOyAjNzNGMgor54+zID4gd8OpbjsgIzczRjMKK+ePtCA+IMOpOyAjNzNGNAor54+1ID4gY2jDqW5nOyAjNzNGNQor54+2ID4gdMOtOyAjNzNGNgor54+3ID4gd8WtOyAjNzNGNwor54+4ID4gd8O6OyAjNzNGOAor54+5ID4gY2jDqW5nOyAjNzNGOQor54+6ID4gasO5bjsgIzczRkEKK+ePuyA+IG3DqWk7ICM3M0ZCCivnj7wgPiBiw6hpOyAjNzNGQwor54+9ID4gdMStbmc7ICM3M0ZECivnj74gPiB4acOgbjsgIzczRkUKK+ePvyA+IGNow7lvOyAjNzNGRgor55CAID4gaMOhbjsgIzc0MDAKK+eQgSA+IHh1YW47ICM3NDAxCivnkIIgPiB5w6FuOyAjNzQwMgor55CDID4gccOtdTsgIzc0MDMKK+eQhCA+IHF1xINuOyAjNzQwNAor55CFID4gbMOhbmc7ICM3NDA1CivnkIYgPiBsxK07ICM3NDA2CivnkIcgPiB4w6x1OyAjNzQwNwor55CIID4gZsO6OyAjNzQwOAor55CJID4gbMOtdTsgIzc0MDkKK+eQiiA+IHnDqTsgIzc0MEEKK+eQiyA+IHjEqzsgIzc0MEIKK+eQjCA+IGzDrW5nOyAjNzQwQwor55CNID4gbMOsOyAjNzQwRAor55COID4gasOsbjsgIzc0MEUKK+eQjyA+IGxpw6FuOyAjNzQwRgor55CQID4gc8WtbzsgIzc0MTAKK+eQkyA+IHfDoW47ICM3NDEzCivnkJQgPiBkacOgbjsgIzc0MTQKK+eQlSA+IHDDrW47ICM3NDE1CivnkJYgPiB6aMSDbjsgIzc0MTYKK+eQlyA+IGPDuWk7ICM3NDE3CivnkJggPiBtw61uOyAjNzQxOAor55CZID4gecO5OyAjNzQxOQor55CaID4gasWrOyAjNzQxQQor55CbID4gY2jEk247ICM3NDFCCivnkJwgPiBsw6FpOyAjNzQxQwor55CdID4gd8OpbjsgIzc0MUQKK+eQniA+IHNow6huZzsgIzc0MUUKK+eQnyA+IHfDqWk7ICM3NDFGCivnkKAgPiBkacSDbjsgIzc0MjAKK+eQoSA+IGNow7k7ICM3NDIxCivnkKIgPiB6aMO6bzsgIzc0MjIKK+eQoyA+IHDElWk7ICM3NDIzCivnkKQgPiBjaMSTbmc7ICM3NDI0CivnkKUgPiBoxa07ICM3NDI1CivnkKYgPiBxw607ICM3NDI2CivnkKcgPiDDqDsgIzc0MjcKK+eQqCA+IGvFq247ICM3NDI4CivnkKkgPiBjaMSBbmc7ICM3NDI5CivnkKogPiBxw607ICM3NDJBCivnkKsgPiBixJVuZzsgIzc0MkIKK+eQrCA+IHfEg247ICM3NDJDCivnkK0gPiBsw7k7ICM3NDJECivnkK4gPiBjw7NuZzsgIzc0MkUKK+eQryA+IGd1xINuOyAjNzQyRgor55CwID4gecSDbjsgIzc0MzAKK+eQsSA+IGRpxIFvOyAjNzQzMQor55CyID4gYsOoaTsgIzc0MzIKK+eQsyA+IGzDrW47ICM3NDMzCivnkLQgPiBxw61uOyAjNzQzNAor55C1ID4gcMOtOyAjNzQzNQor55C2ID4gcMOhOyAjNzQzNgor55C3ID4gcXXDqDsgIzc0MzcKK+eQuCA+IHpow7pvOyAjNzQzOAor55C5ID4gccOtbjsgIzc0MzkKK+eQuiA+IGbDoDsgIzc0M0EKK+eQvCA+IHHDrW9uZzsgIzc0M0MKK+eQvSA+IGTFrTsgIzc0M0QKK+eQviA+IGppw6g7ICM3NDNFCivnkL8gPiBow7puOyAjNzQzRgor55GAID4gecWtOyAjNzQ0MAor55GBID4gbcOgbzsgIzc0NDEKK+eRgiA+IG3DqWk7ICM3NDQyCivnkYMgPiBjaHVuOyAjNzQ0Mwor55GEID4geHXEgW47ICM3NDQ0CivnkYUgPiB0w607ICM3NDQ1CivnkYYgPiB4xKtuZzsgIzc0NDYKK+eRhyA+IGTDoGk7ICM3NDQ3CivnkYggPiByw7N1OyAjNzQ0OAor55GJID4gbcOtbjsgIzc0NDkKK+eRiiA+IHpoxJNuOyAjNzQ0QQor55GLID4gd8SVaTsgIzc0NEIKK+eRjCA+IHJ1xINuOyAjNzQ0Qwor55GNID4gaHXDoG47ICM3NDRECivnkY4gPiBqacSTOyAjNzQ0RQor55GPID4gY2h1xIFuOyAjNzQ0Rgor55GQID4gamnEg247ICM3NDUwCivnkZEgPiB6aHXDoG47ICM3NDUxCivnkZIgPiB5w6FuZzsgIzc0NTIKK+eRkyA+IGxpw6BuOyAjNzQ1Mwor55GUID4gcXXDoW47ICM3NDU0CivnkZUgPiB4acOhOyAjNzQ1NQor55GWID4gZHXDoG47ICM3NDU2CivnkZcgPiB5dcOgbjsgIzc0NTcKK+eRmCA+IHnDqTsgIzc0NTgKK+eRmSA+IG7Eg287ICM3NDU5CivnkZogPiBow7o7ICM3NDVBCivnkZsgPiB5xKtuZzsgIzc0NUIKK+eRnCA+IHnDujsgIzc0NUMKK+eRnSA+IGh1w6FuZzsgIzc0NUQKK+eRniA+IHLDuWk7ICM3NDVFCivnkZ8gPiBzw6g7ICM3NDVGCivnkaAgPiBsw611OyAjNzQ2MAor55GhID4gc2hpOyAjNzQ2MQor55GiID4gcsOzbmc7ICM3NDYyCivnkaMgPiBzxa1vOyAjNzQ2Mwor55GkID4gecOhbzsgIzc0NjQKK+eRpSA+IHfEk247ICM3NDY1CivnkaYgPiB3xas7ICM3NDY2CivnkacgPiBqxKtuOyAjNzQ2Nwor55GoID4gasOsbjsgIzc0NjgKK+eRqSA+IHnDrW5nOyAjNzQ2OQor55GqID4gbcSDOyAjNzQ2QQor55GrID4gdMSBbzsgIzc0NkIKK+eRrCA+IGzDrXU7ICM3NDZDCivnka0gPiB0w6FuZzsgIzc0NkQKK+eRriA+IGzDrDsgIzc0NkUKK+eRryA+IGzDoW5nOyAjNzQ2Rgor55GwID4gZ8WraTsgIzc0NzAKK+eRsSA+IHpow6huOyAjNzQ3MQor55GyID4gcWnEgW5nOyAjNzQ3Mgor55GzID4gY8WtbzsgIzc0NzMKK+eRtCA+IGp1w6k7ICM3NDc0CivnkbUgPiB6aMSDbzsgIzc0NzUKK+eRtiA+IHnDoW87ICM3NDc2CivnkbcgPiDDoGk7ICM3NDc3CivnkbggPiBixKtuOyAjNzQ3OAor55G5ID4gdMO6OyAjNzQ3OQor55G6ID4gY2jDoW5nOyAjNzQ3QQor55G7ID4ga8WrbjsgIzc0N0IKK+eRvCA+IHpodcSBbjsgIzc0N0MKK+eRvSA+IGPFjW5nOyAjNzQ3RAor55G+ID4gasStbjsgIzc0N0UKK+eRvyA+IHnEqzsgIzc0N0YKK+eSgCA+IGPFrWk7ICM3NDgwCivnkoEgPiBjxY1uZzsgIzc0ODEKK+eSgiA+IHHDrTsgIzc0ODIKK+eSgyA+IGzDrTsgIzc0ODMKK+eShCA+IHnErW5nOyAjNzQ4NAor55KFID4gc8WtbzsgIzc0ODUKK+eShiA+IHHDrXU7ICM3NDg2CivnkocgPiB4dcOhbjsgIzc0ODcKK+eSiCA+IMOhbzsgIzc0ODgKK+eSiSA+IGxpw6FuOyAjNzQ4OQor55KKID4gbcOhbjsgIzc0OEEKK+eSiyA+IHpoxIFuZzsgIzc0OEIKK+eSjCA+IHnDrW47ICM3NDhDCivnko4gPiB5xKtuZzsgIzc0OEUKK+eSjyA+IHpow6w7ICM3NDhGCivnkpAgPiBsw7k7ICM3NDkwCivnkpEgPiB3w7o7ICM3NDkxCivnkpIgPiBkxJNuZzsgIzc0OTIKK+eSkyA+IHhpw7J1OyAjNzQ5Mwor55KUID4gesSTbmc7ICM3NDk0CivnkpUgPiB4w7puOyAjNzQ5NQor55KWID4gccO6OyAjNzQ5Ngor55KXID4gZMOgbmc7ICM3NDk3CivnkpggPiBsw61uOyAjNzQ5OAor55KZID4gbGnDoW87ICM3NDk5CivnkpogPiBxw61vbmc7ICM3NDlBCivnkpsgPiBzw7k7ICM3NDlCCivnkpwgPiBodcOhbmc7ICM3NDlDCivnkp0gPiBnxatpOyAjNzQ5RAor55KeID4gcMO6OyAjNzQ5RQor55KfID4gasStbmc7ICM3NDlGCivnkqAgPiBmw6FuOyAjNzRBMAor55KhID4gasOsbjsgIzc0QTEKK+eSoiA+IGzDrXU7ICM3NEEyCivnkqMgPiBqxKs7ICM3NEEzCivnkqUgPiBqxK1uZzsgIzc0QTUKK+eSpiA+IMOgaTsgIzc0QTYKK+eSpyA+IGLDrDsgIzc0QTcKK+eSqCA+IGPDoG47ICM3NEE4CivnkqkgPiBxw7o7ICM3NEE5CivnkqogPiB6xINvOyAjNzRBQQor55KrID4gZMSBbmc7ICM3NEFCCivnkqwgPiBqacSDbzsgIzc0QUMKK+eSrSA+IGfDuW47ICM3NEFECivnkq4gPiB0xINuOyAjNzRBRQor55KvID4gaMO5aTsgIzc0QUYKK+eSsCA+IGh1w6FuOyAjNzRCMAor55KxID4gc8OoOyAjNzRCMQor55KyID4gc8O5aTsgIzc0QjIKK+eSsyA+IHRpw6FuOyAjNzRCMwor55K1ID4gecO6OyAjNzRCNQor55K2ID4gasOsbjsgIzc0QjYKK+eStyA+IGzDujsgIzc0QjcKK+eSuCA+IGLEq247ICM3NEI4CivnkrkgPiBzaMOydTsgIzc0QjkKK+eSuiA+IHfDqG47ICM3NEJBCivnkrsgPiB6xa1pOyAjNzRCQgor55K8ID4gbMOhbjsgIzc0QkMKK+eSvSA+IHjErTsgIzc0QkQKK+eSviA+IGrDrDsgIzc0QkUKK+eSvyA+IHh1w6FuOyAjNzRCRgor55OAID4gcnXEg247ICM3NEMwCivnk4EgPiBow7lvOyAjNzRDMQor55OCID4gZ8OgaTsgIzc0QzIKK+eTgyA+IGzDqWk7ICM3NEMzCivnk4QgPiBkw7o7ICM3NEM0Civnk4UgPiBsw6w7ICM3NEM1Civnk4YgPiB6aMOtOyAjNzRDNgor55OHID4gcsOzdTsgIzc0QzcKK+eTiCA+IGzDrTsgIzc0QzgKK+eTiSA+IHrDoG47ICM3NEM5Civnk4ogPiBxw61vbmc7ICM3NENBCivnk4sgPiB6aMOpOyAjNzRDQgor55OMID4gZ8WraTsgIzc0Q0MKK+eTjSA+IHPDuWk7ICM3NENECivnk44gPiBsw6A7ICM3NENFCivnk48gPiBsw7NuZzsgIzc0Q0YKK+eTkCA+IGzDujsgIzc0RDAKK+eTkSA+IGzDrDsgIzc0RDEKK+eTkiA+IHrDoG47ICM3NEQyCivnk5MgPiBsw6BuOyAjNzREMwor55OUID4gecSrbmc7ICM3NEQ0Civnk5UgPiBtw607ICM3NEQ1Civnk5YgPiB4acSBbmc7ICM3NEQ2Civnk5cgPiB4xKs7ICM3NEQ3Civnk5ggPiBndcOgbjsgIzc0RDgKK+eTmSA+IGTDoG87ICM3NEQ5Civnk5ogPiB6w6BuOyAjNzREQQor55ObID4gaHXDoW47ICM3NERCCivnk5wgPiBndcSBOyAjNzREQwor55OdID4gYsOzOyAjNzRERAor55OeID4gZGnDqTsgIzc0REUKK+eTnyA+IGLDoW87ICM3NERGCivnk6AgPiBow7k7ICM3NEUwCivnk6EgPiB6aMOtOyAjNzRFMQor55OiID4gcGnDoW87ICM3NEUyCivnk6MgPiBiw6BuOyAjNzRFMwor55OkID4gcsOhbmc7ICM3NEU0Civnk6UgPiBsw6w7ICM3NEU1Civnk6YgPiB3xIM7ICM3NEU2Civnk6ggPiBqacSBbmc7ICM3NEU4Civnk6kgPiBxacOhbicgJ3fEgzsgIzc0RTkKK+eTqiA+IGbEg247ICM3NEVBCivnk6sgPiBww6luOyAjNzRFQgor55OsID4gZsSDbmc7ICM3NEVDCivnk60gPiBkxINuOyAjNzRFRAor55OuID4gd8Oobmc7ICM3NEVFCivnk68gPiDFjXU7ICM3NEVGCivnk7MgPiBow7o7ICM3NEYzCivnk7QgPiBsw61uZzsgIzc0RjQKK+eTtSA+IHnDrTsgIzc0RjUKK+eTtiA+IHDDrW5nOyAjNzRGNgor55O3ID4gY8OtOyAjNzRGNwor55O5ID4ganXDoG47ICM3NEY5Civnk7ogPiBjaMOhbmc7ICM3NEZBCivnk7sgPiBjaMSrOyAjNzRGQgor55O9ID4gZMOgbmc7ICM3NEZECivnk74gPiBtxJVuZzsgIzc0RkUKK+eTvyA+IHDFj3U7ICM3NEZGCivnlIAgPiB6aMO5aTsgIzc1MDAKK+eUgSA+IHDDrW5nOyAjNzUwMQor55SCID4gYmnEgW47ICM3NTAyCivnlIMgPiB6aMOydTsgIzc1MDMKK+eUhCA+IHpoxJNuOyAjNzUwNAor55SGID4gY8OtOyAjNzUwNgor55SHID4gecSrbmc7ICM3NTA3CivnlIggPiBxw6w7ICM3NTA4CivnlIkgPiB4acOhbjsgIzc1MDkKK+eUiiA+IGzFj3U7ICM3NTBBCivnlIsgPiBkw6w7ICM3NTBCCivnlIwgPiDFjXU7ICM3NTBDCivnlI0gPiBtw6luZzsgIzc1MEQKK+eUjiA+IHpodcSBbjsgIzc1MEUKK+eUjyA+IHDDqG5nOyAjNzUwRgor55SQID4gbMOtbjsgIzc1MTAKK+eUkSA+IHrDqG5nOyAjNzUxMQor55SSID4gd8WtOyAjNzUxMgor55STID4gcMOsOyAjNzUxMwor55SUID4gZMSBbjsgIzc1MTQKK+eUlSA+IHfDqG5nOyAjNzUxNQor55SWID4gecSrbmc7ICM3NTE2CivnlJcgPiB5xINuOyAjNzUxNwor55SYID4gZ8SBbjsgIzc1MTgKK+eUmSA+IGTDoGk7ICM3NTE5CivnlJogPiBzaMOpbjsgIzc1MUEKK+eUmyA+IHRpw6FuOyAjNzUxQgor55ScID4gdGnDoW47ICM3NTFDCivnlJ0gPiBoxIFuOyAjNzUxRAor55SeID4gY2jDoW5nOyAjNzUxRQor55SfID4gc2jEk25nOyAjNzUxRgor55SgID4gccOtbmc7ICM3NTIwCivnlKEgPiBzaMSTbmc7ICM3NTIxCivnlKIgPiBjaMSDbjsgIzc1MjIKK+eUoyA+IGNoxINuOyAjNzUyMwor55SkID4gcsO6aTsgIzc1MjQKK+eUpSA+IHNoxJNuZzsgIzc1MjUKK+eUpiA+IHPFqzsgIzc1MjYKK+eUpyA+IHPEk247ICM3NTI3CivnlKggPiB5w7JuZzsgIzc1MjgKK+eUqSA+IHNodcSDaTsgIzc1MjkKK+eUqiA+IGzDuTsgIzc1MkEKK+eUqyA+IGbFrTsgIzc1MkIKK+eUrCA+IHnFj25nOyAjNzUyQwor55StID4gYsOpbmc7ICM3NTJECivnlK4gPiBmw6huZzsgIzc1MkUKK+eUryA+IG7DrW5nOyAjNzUyRgor55SwID4gdGnDoW47ICM3NTMwCivnlLEgPiB5w7N1OyAjNzUzMQor55SyID4gamnEgzsgIzc1MzIKK+eUsyA+IHNoxJNuOyAjNzUzMwor55S0ID4gemjDoTsgIzc1MzQKK+eUtSA+IGRpw6BuOyAjNzUzNQor55S2ID4gZsO6OyAjNzUzNgor55S3ID4gbsOhbjsgIzc1MzcKK+eUuCA+IGRpw6BuOyAjNzUzOAor55S5ID4gcMOtbmc7ICM3NTM5CivnlLogPiB0xK1uZzsgIzc1M0EKK+eUuyA+IGh1w6A7ICM3NTNCCivnlLwgPiB0xK1uZzsgIzc1M0MKK+eUvSA+IHF1xINuOyAjNzUzRAor55S+ID4gesSrOyAjNzUzRQor55S/ID4gbcOpbmc7ICM3NTNGCivnlYAgPiBiw6w7ICM3NTQwCivnlYEgPiBxw607ICM3NTQxCivnlYIgPiBsw6x1OyAjNzU0Mgor55WDID4geMO6bjsgIzc1NDMKK+eVhCA+IGzDrXU7ICM3NTQ0CivnlYUgPiBjaMOgbmc7ICM3NTQ1CivnlYYgPiBtxa07ICM3NTQ2CivnlYcgPiB5w7puOyAjNzU0Nwor55WIID4gZsOgbjsgIzc1NDgKK+eViSA+IGbDujsgIzc1NDkKK+eViiA+IGfEk25nOyAjNzU0QQor55WLID4gdGnDoW47ICM3NTRCCivnlYwgPiBqacOoOyAjNzU0Qwor55WNID4gamnDqDsgIzc1NEQKK+eVjiA+IHF1xINuOyAjNzU0RQor55WPID4gd8OoaTsgIzc1NEYKK+eVkCA+IGbDujsgIzc1NTAKK+eVkSA+IHRpw6FuOyAjNzU1MQor55WSID4gbcWtOyAjNzU1Mgor55WUID4gcMOgbjsgIzc1NTQKK+eVlSA+IGppxIFuZzsgIzc1NTUKK+eVliA+IHfEgTsgIzc1NTYKK+eVlyA+IGTDoTsgIzc1NTcKK+eVmCA+IG7DoW47ICM3NTU4CivnlZkgPiBsw611OyAjNzU1OQor55WaID4gYsSVbjsgIzc1NUEKK+eVmyA+IHpoxJVuOyAjNzU1Qgor55WcID4gY2jDuTsgIzc1NUMKK+eVnSA+IG3FrTsgIzc1NUQKK+eVniA+IG3FrTsgIzc1NUUKK+eVnyA+IGPDqDsgIzc1NUYKK+eVoSA+IGfEgWk7ICM3NTYxCivnlaIgPiBiw6w7ICM3NTYyCivnlaMgPiBkw6E7ICM3NTYzCivnlaQgPiB6aMOsOyAjNzU2NAor55WlID4gbMecZTsgIzc1NjUKK+eVpiA+IHHDrTsgIzc1NjYKK+eVpyA+IGzHnGU7ICM3NTY3CivnlaggPiBwxIFuOyAjNzU2OAor55WqID4gZsSBbjsgIzc1NkEKK+eVqyA+IGh1w6A7ICM3NTZCCivnlawgPiB5w7o7ICM3NTZDCivnla0gPiB5w7o7ICM3NTZECivnla4gPiBtxa07ICM3NTZFCivnla8gPiBqw7luOyAjNzU2Rgor55WwID4gecOsOyAjNzU3MAor55WxID4gbMOtdTsgIzc1NzEKK+eVsiA+IHnDujsgIzc1NzIKK+eVsyA+IGRpw6k7ICM3NTczCivnlbQgPiBjaMOzdTsgIzc1NzQKK+eVtSA+IGh1w6A7ICM3NTc1CivnlbYgPiBkxIFuZzsgIzc1NzYKK+eVtyA+IGNow7lvOyAjNzU3Nwor55W4ID4gasSrOyAjNzU3OAor55W5ID4gd8SDbjsgIzc1NzkKK+eVuiA+IGppxIFuZzsgIzc1N0EKK+eVuyA+IHNow6luZzsgIzc1N0IKK+eVvCA+IGNow6BuZzsgIzc1N0MKK+eVvSA+IHR1xINuOyAjNzU3RAor55W+ID4gbMOpaTsgIzc1N0UKK+eVvyA+IGrEqzsgIzc1N0YKK+eWgCA+IGNoxIE7ICM3NTgwCivnloEgPiBsw611OyAjNzU4MQor55aDID4gdHXEg247ICM3NTgzCivnloQgPiBsw61uOyAjNzU4NAor55aFID4gamnEgW5nOyAjNzU4NQor55aGID4gamnEgW5nOyAjNzU4Ngor55aHID4gY2jDs3U7ICM3NTg3CivnloggPiBiw7I7ICM3NTg4CivnlokgPiBkacOpOyAjNzU4OQor55aKID4gZGnDqTsgIzc1OEEKK+eWiyA+IHDErTsgIzc1OEIKK+eWjCA+IG5pw6g7ICM3NThDCivnlo0gPiBkw6BuOyAjNzU4RAor55aOID4gc2jFqzsgIzc1OEUKK+eWjyA+IHNoxas7ICM3NThGCivnlpAgPiB6aMOsOyAjNzU5MAor55aRID4gecOtOyAjNzU5MQor55aSID4gY2h1w6FuZzsgIzc1OTIKK+eWkyA+IG7Eg2k7ICM3NTkzCivnlpQgPiBkxKtuZzsgIzc1OTQKK+eWlSA+IGLErTsgIzc1OTUKK+eWliA+IGppw6k7ICM3NTk2CivnlpcgPiBsacOhbzsgIzc1OTcKK+eWmCA+IGfFjW5nOyAjNzU5OAor55aZID4gZ8STOyAjNzU5OQor55aaID4gasOsdTsgIzc1OUEKK+eWmyA+IHpoxY91OyAjNzU5Qgor55acID4geGnDoDsgIzc1OUMKK+eWnSA+IHNow6BuOyAjNzU5RAor55aeID4geMWrOyAjNzU5RQor55afID4gbsecZTsgIzc1OUYKK+eWoCA+IGzDrDsgIzc1QTAKK+eWoSA+IHnDoW5nOyAjNzVBMQor55aiID4gY2jDqG47ICM3NUEyCivnlqMgPiB5w7N1OyAjNzVBMwor55akID4gYsSBOyAjNzVBNAor55alID4gamnDqDsgIzc1QTUKK+eWpiA+IGp1w6k7ICM3NUE2CivnlqcgPiB6aMSrOyAjNzVBNwor55aoID4geGnEgTsgIzc1QTgKK+eWqSA+IGPDuWk7ICM3NUE5CivnlqogPiBiw6w7ICM3NUFBCivnlqsgPiB5w6w7ICM3NUFCCivnlqwgPiBsw6w7ICM3NUFDCivnlq0gPiB6w7JuZzsgIzc1QUQKK+eWriA+IGNodcSBbmc7ICM3NUFFCivnlq8gPiBmxJNuZzsgIzc1QUYKK+eWsCA+IHpow7k7ICM3NUIwCivnlrEgPiBww6BvOyAjNzVCMQor55ayID4gcMOtOyAjNzVCMgor55azID4gZ8SBbjsgIzc1QjMKK+eWtCA+IGvEkzsgIzc1QjQKK+eWtSA+IGPEqzsgIzc1QjUKK+eWtiA+IHhpw6g7ICM3NUI2CivnlrcgPiBxw607ICM3NUI3CivnlrggPiBkxINuOyAjNzVCOAor55a5ID4gemjElW47ICM3NUI5CivnlrogPiBmw6E7ICM3NUJBCivnlrsgPiB6aMStOyAjNzVCQgor55a8ID4gdMOpbmc7ICM3NUJDCivnlr0gPiBqxas7ICM3NUJECivnlr4gPiBqw607ICM3NUJFCivnlr8gPiBmw6hpOyAjNzVCRgor55eAID4gccO6OyAjNzVDMAor55eBID4gZGnDoG47ICM3NUMxCivnl4IgPiBqacSBOyAjNzVDMgor55eDID4geGnDoW47ICM3NUMzCivnl4QgPiBjaMOhOyAjNzVDNAor55eFID4gYsOsbmc7ICM3NUM1Civnl4YgPiBuw6w7ICM3NUM2Civnl4cgPiB6aMOobmc7ICM3NUM3Civnl4ggPiB5xY1uZzsgIzc1QzgKK+eXiSA+IGrDrG5nOyAjNzVDOQor55eKID4gcXXDoW47ICM3NUNBCivnl4sgPiBjaMOzbmc7ICM3NUNCCivnl4wgPiB0xY1uZzsgIzc1Q0MKK+eXjSA+IHnDrTsgIzc1Q0QKK+eXjiA+IGvEgWk7ICM3NUNFCivnl48gPiB3xJVpOyAjNzVDRgor55eQID4gaMO6aTsgIzc1RDAKK+eXkSA+IGTFrW87ICM3NUQxCivnl5IgPiB5xINuZzsgIzc1RDIKK+eXkyA+IGNow6w7ICM3NUQzCivnl5QgPiB6aMOsOyAjNzVENAor55eVID4gaMOpbjsgIzc1RDUKK+eXliA+IHnEgzsgIzc1RDYKK+eXlyA+IG3DqGk7ICM3NUQ3Civnl5ggPiBkw7J1OyAjNzVEOAor55eZID4gasOsbmc7ICM3NUQ5Civnl5ogPiB4acSBbzsgIzc1REEKK+eXmyA+IHTDsm5nOyAjNzVEQgor55ecID4gdMWrOyAjNzVEQwor55edID4gbcOhbmc7ICM3NURECivnl54gPiBwxK07ICM3NURFCivnl58gPiB4acSBbzsgIzc1REYKK+eXoCA+IHN1xIFuOyAjNzVFMAor55ehID4gcMWrOyAjNzVFMQor55eiID4gbMOsOyAjNzVFMgor55ejID4gemjDrDsgIzc1RTMKK+eXpCA+IGPDum87ICM3NUU0Civnl6UgPiBkw7pvOyAjNzVFNQor55emID4gd8O5OyAjNzVFNgor55enID4gc2jEgTsgIzc1RTcKK+eXqCA+IGzDoW87ICM3NUU4Civnl6kgPiBzaMOydTsgIzc1RTkKK+eXqiA+IGh1w6BuOyAjNzVFQQor55erID4geGnDoW47ICM3NUVCCivnl6wgPiB5w6w7ICM3NUVDCivnl60gPiBww6luZzsgIzc1RUQKK+eXriA+IHpow6BuZzsgIzc1RUUKK+eXryA+IGd1xINuOyAjNzVFRgor55ewID4gdMOhbjsgIzc1RjAKK+eXsSA+IGbDqGk7ICM3NUYxCivnl7IgPiBtw6E7ICM3NUYyCivnl7MgPiBsw61uOyAjNzVGMwor55e0ID4gY2jEqzsgIzc1RjQKK+eXtSA+IGrDrDsgIzc1RjUKK+eXtiA+IGRpxINuOyAjNzVGNgor55e3ID4gxIFuOyAjNzVGNwor55e4ID4gY2jDrDsgIzc1RjgKK+eXuSA+IGLDrDsgIzc1RjkKK+eXuiA+IGLEk2k7ICM3NUZBCivnl7sgPiBtw61uOyAjNzVGQgor55e8ID4gZ8WrOyAjNzVGQwor55e9ID4gZMWraTsgIzc1RkQKK+eXviA+IMSTOyAjNzVGRQor55e/ID4gd8SVaTsgIzc1RkYKK+eYgCA+IHnFqzsgIzc2MDAKK+eYgSA+IGPDuWk7ICM3NjAxCivnmIIgPiB5xIM7ICM3NjAyCivnmIMgPiB6aMWtOyAjNzYwMwor55iEID4gY8O5OyAjNzYwNAor55iFID4gZMOgbjsgIzc2MDUKK+eYhiA+IHNow6huOyAjNzYwNgor55iHID4gemjFrW5nOyAjNzYwNwor55iIID4gasOsOyAjNzYwOAor55iJID4gecO5OyAjNzYwOQor55iKID4gaMOzdTsgIzc2MEEKK+eYiyA+IGbEk25nOyAjNzYwQgor55iMID4gbMOgOyAjNzYwQwor55iNID4gecOhbmc7ICM3NjBECivnmI4gPiBzaMOobjsgIzc2MEUKK+eYjyA+IHTDujsgIzc2MEYKK+eYkCA+IHnFrTsgIzc2MTAKK+eYkSA+IGd1xIE7ICM3NjExCivnmJIgPiB3w6luOyAjNzYxMgor55iTID4gaHXDoG47ICM3NjEzCivnmJQgPiBrw7k7ICM3NjE0CivnmJUgPiBqacSDOyAjNzYxNQor55iWID4gecSrbjsgIzc2MTYKK+eYlyA+IHnDrDsgIzc2MTcKK+eYmCA+IGzHmDsgIzc2MTgKK+eYmSA+IHPEgW87ICM3NjE5CivnmJogPiBqdcOpOyAjNzYxQQor55ibID4gY2jDrDsgIzc2MUIKK+eYnCA+IHjDrTsgIzc2MUMKK+eYnSA+IGd1xIFuOyAjNzYxRAor55ieID4gecOsOyAjNzYxRQor55ifID4gd8STbjsgIzc2MUYKK+eYoCA+IGrDrTsgIzc2MjAKK+eYoSA+IGNodcSBbmc7ICM3NjIxCivnmKIgPiBixIFuOyAjNzYyMgor55ijID4gbMSVaTsgIzc2MjMKK+eYpCA+IGzDrXU7ICM3NjI0CivnmKUgPiBjaMOgaTsgIzc2MjUKK+eYpiA+IHNow7J1OyAjNzYyNgor55inID4gbsecZTsgIzc2MjcKK+eYqCA+IGRpxIFuOyAjNzYyOAor55ipID4gZMSBOyAjNzYyOQor55iqID4gcGnEkzsgIzc2MkEKK+eYqyA+IHTEgW47ICM3NjJCCivnmKwgPiB6aMOgbmc7ICM3NjJDCivnmK0gPiBiacSBbzsgIzc2MkQKK+eYriA+IHNoZW47ICM3NjJFCivnmK8gPiBjw7k7ICM3NjJGCivnmLAgPiBsxa1vOyAjNzYzMAor55ixID4gecOsOyAjNzYzMQor55iyID4gesOybmc7ICM3NjMyCivnmLMgPiBjaMWNdTsgIzc2MzMKK+eYtCA+IHpow6BuZzsgIzc2MzQKK+eYtSA+IHpow6BpOyAjNzYzNQor55i2ID4gc8OydTsgIzc2MzYKK+eYtyA+IHPFrW87ICM3NjM3CivnmLggPiBxdcOpOyAjNzYzOAor55i5ID4gZGnDoG87ICM3NjM5CivnmLogPiBsw7J1OyAjNzYzQQor55i7ID4gbMeYOyAjNzYzQgor55i8ID4gbcOyOyAjNzYzQwor55i9ID4gasOsbjsgIzc2M0QKK+eYviA+IHnErW47ICM3NjNFCivnmL8gPiB5xK1uZzsgIzc2M0YKK+eZgCA+IGh1w6FuZzsgIzc2NDAKK+eZgSA+IGbDujsgIzc2NDEKK+eZgiA+IGxpw6FvOyAjNzY0Mgor55mDID4gbMOzbmc7ICM3NjQzCivnmYQgPiBxacOhbzsgIzc2NDQKK+eZhSA+IGzDrXU7ICM3NjQ1CivnmYYgPiBsw6FvOyAjNzY0Ngor55mHID4geGnDoW47ICM3NjQ3CivnmYggPiBmw6hpOyAjNzY0OAor55mJID4gZMOgbjsgIzc2NDkKK+eZiiA+IHnDrG47ICM3NjRBCivnmYsgPiBow6g7ICM3NjRCCivnmYwgPiB5w6FuOyAjNzY0Qwor55mNID4gYsSBbjsgIzc2NEQKK+eZjiA+IHhpw6FuOyAjNzY0RQor55mPID4gZ3XEgW47ICM3NjRGCivnmZAgPiBndcOgaTsgIzc2NTAKK+eZkSA+IG7Ds25nOyAjNzY1MQor55mSID4gecO5OyAjNzY1Mgor55mTID4gd8OpaTsgIzc2NTMKK+eZlCA+IHnDrDsgIzc2NTQKK+eZlSA+IHnFjW5nOyAjNzY1NQor55mWID4gcMStOyAjNzY1Ngor55mXID4gbMSVaTsgIzc2NTcKK+eZmCA+IGzDrDsgIzc2NTgKK+eZmSA+IHNoxa07ICM3NjU5CivnmZogPiBkw6BuOyAjNzY1QQor55mbID4gbMStbjsgIzc2NUIKK+eZnCA+IGRpw6BuOyAjNzY1Qwor55mdID4gbMStbjsgIzc2NUQKK+eZniA+IGzDoGk7ICM3NjVFCivnmZ8gPiBwacSTOyAjNzY1Rgor55mgID4gasOsOyAjNzY2MAor55mhID4gY2jEqzsgIzc2NjEKK+eZoiA+IHnEg25nOyAjNzY2Mgor55mjID4geGnEg247ICM3NjYzCivnmaQgPiBqacOpOyAjNzY2NAor55mlID4gemjEk25nOyAjNzY2NQor55mnID4gbMOsOyAjNzY2Nwor55moID4gaMO5bzsgIzc2NjgKK+eZqSA+IGzDoGk7ICM3NjY5CivnmasgPiBkacSBbjsgIzc2NkIKK+eZrCA+IHhpxINuOyAjNzY2Qwor55mtID4gecStbmc7ICM3NjZECivnma4gPiB5xK1uOyAjNzY2RQor55mvID4gccO6OyAjNzY2Rgor55mwID4gecWNbmc7ICM3NjcwCivnmbEgPiB0xIFuOyAjNzY3MQor55myID4gZGnEgW47ICM3NjcyCivnmbMgPiBsxa1vOyAjNzY3Mwor55m0ID4gbMeYYW47ICM3Njc0CivnmbUgPiBsdcOhbjsgIzc2NzUKK+eZtiA+IGLFjTsgIzc2NzYKK+eZuCA+IGfFrWk7ICM3Njc4CivnmbkgPiBwxY07ICM3Njc5CivnmbogPiBmxIE7ICM3NjdBCivnmbsgPiBkxJNuZzsgIzc2N0IKK+eZvCA+IGbEgTsgIzc2N0MKK+eZvSA+IGLDoWk7ICM3NjdECivnmb4gPiBixINpOyAjNzY3RQor55m/ID4gcWnDqTsgIzc2N0YKK+eagCA+IGLEqzsgIzc2ODAKK+eagSA+IHrDoG87ICM3NjgxCivnmoIgPiB6w6BvOyAjNzY4Mgor55qDID4gbcOgbzsgIzc2ODMKK+eahCA+IGRlOyAjNzY4NAor55qFID4gcMSBOyAjNzY4NQor55qGID4gamnEkzsgIzc2ODYKK+eahyA+IGh1w6FuZzsgIzc2ODcKK+eaiCA+IGfFq2k7ICM3Njg4CivnmokgPiBjxK07ICM3Njg5CivnmoogPiBsw61uZzsgIzc2OEEKK+eaiyA+IGfEgW87ICM3NjhCCivnmowgPiBtw7I7ICM3NjhDCivnmo0gPiBqw607ICM3NjhECivnmo4gPiBqacSDbzsgIzc2OEUKK+eajyA+IHDElW5nOyAjNzY4Rgor55qQID4gZ8SBbzsgIzc2OTAKK+eakSA+IMOhaTsgIzc2OTEKK+eakiA+IMOpOyAjNzY5Mgor55qTID4gaMOgbzsgIzc2OTMKK+ealCA+IGjDoG47ICM3Njk0CivnmpUgPiBixKs7ICM3Njk1CivnmpYgPiB3xINuOyAjNzY5Ngor55qXID4gY2jDs3U7ICM3Njk3CivnmpggPiBxacOgbjsgIzc2OTgKK+eamSA+IHjEqzsgIzc2OTkKK+eamiA+IMOhaTsgIzc2OUEKK+eamyA+IGrErW9uZzsgIzc2OUIKK+eanCA+IGjDoG87ICM3NjlDCivnmp0gPiBodcSDbmc7ICM3NjlECivnmp4gPiBow6BvOyAjNzY5RQor55qfID4gesOpOyAjNzY5Rgor55qgID4gY8WtaTsgIzc2QTAKK+eaoSA+IGjDoG87ICM3NkExCivnmqIgPiB4acSDbzsgIzc2QTIKK+eaoyA+IHnDqDsgIzc2QTMKK+eapCA+IHDDszsgIzc2QTQKK+eapSA+IGjDoG87ICM3NkE1CivnmqYgPiBqacSDbzsgIzc2QTYKK+eapyA+IMOgaTsgIzc2QTcKK+eaqCA+IHjEq25nOyAjNzZBOAor55qpID4gaHXDoG5nOyAjNzZBOQor55qqID4gbMOsOyAjNzZBQQor55qrID4gcGnEg287ICM3NkFCCivnmqwgPiBow6g7ICM3NkFDCivnmq0gPiBqacOgbzsgIzc2QUQKK+eariA+IHDDrTsgIzc2QUUKK+earyA+IGfEg247ICM3NkFGCivnmrAgPiBww6BvOyAjNzZCMAor55qxID4gemjDsnU7ICM3NkIxCivnmrIgPiBqxatuOyAjNzZCMgor55qzID4gccOtdTsgIzc2QjMKK+eatCA+IGPFq247ICM3NkI0CivnmrUgPiBxdcOoOyAjNzZCNQor55q2ID4gemjEgTsgIzc2QjYKK+eatyA+IGfFrTsgIzc2QjcKK+eauCA+IGrFq247ICM3NkI4CivnmrkgPiBqxatuOyAjNzZCOQor55q6ID4gemjDsnU7ICM3NkJBCivnmrsgPiB6aMSBOyAjNzZCQgor55q8ID4gZ8WtOyAjNzZCQwor55q9ID4gemjEg247ICM3NkJECivnmr4gPiBkw7o7ICM3NkJFCivnmr8gPiBtxK1uOyAjNzZCRgor55uAID4gccStOyAjNzZDMAor55uBID4gecOtbmc7ICM3NkMxCivnm4IgPiB5w7o7ICM3NkMyCivnm4MgPiBixJNpOyAjNzZDMwor55uEID4gemjEgW87ICM3NkM0Civnm4UgPiB6aMWNbmc7ICM3NkM1Civnm4YgPiBww6luOyAjNzZDNgor55uHID4gaMOpOyAjNzZDNwor55uIID4gecOtbmc7ICM3NkM4Civnm4kgPiBow6k7ICM3NkM5Civnm4ogPiB5w6w7ICM3NkNBCivnm4sgPiBixY07ICM3NkNCCivnm4wgPiB3xINuOyAjNzZDQwor55uNID4gaMOpOyAjNzZDRAor55uOID4gw6BuZzsgIzc2Q0UKK+ebjyA+IHpoxINuOyAjNzZDRgor55uQID4gecOhbjsgIzc2RDAKK+ebkSA+IGppxIFuOyAjNzZEMQor55uSID4gaMOpOyAjNzZEMgor55uTID4gecWrOyAjNzZEMwor55uUID4ga8WraTsgIzc2RDQKK+eblSA+IGbDoG47ICM3NkQ1Civnm5YgPiBnw6BpOyAjNzZENgor55uXID4gZMOgbzsgIzc2RDcKK+ebmCA+IHDDoW47ICM3NkQ4Civnm5kgPiBmxa07ICM3NkQ5Civnm5ogPiBxw611OyAjNzZEQQor55ubID4gc2jDqG5nOyAjNzZEQgor55ucID4gZMOgbzsgIzc2REMKK+ebnSA+IGzDuTsgIzc2REQKK+ebniA+IHpoxINuOyAjNzZERQor55ufID4gbcOpbmc7ICM3NkRGCivnm6AgPiBsxK07ICM3NkUwCivnm6EgPiBqw6xuOyAjNzZFMQor55uiID4geMO5OyAjNzZFMgor55ujID4gamnEgW47ICM3NkUzCivnm6QgPiBww6FuOyAjNzZFNAor55ulID4gZ3XDoG47ICM3NkU1Civnm6YgPiDEgW47ICM3NkU2Civnm6cgPiBsw7o7ICM3NkU3Civnm6ggPiBzaMWtOyAjNzZFOAor55upID4gemjFjXU7ICM3NkU5Civnm6ogPiBkw6BuZzsgIzc2RUEKK+ebqyA+IMSBbjsgIzc2RUIKK+ebrCA+IGfFrTsgIzc2RUMKK+ebrSA+IGzDrDsgIzc2RUQKK+ebriA+IG3DuTsgIzc2RUUKK+ebryA+IGNow6luZzsgIzc2RUYKK+ebsCA+IGfEg247ICM3NkYwCivnm7EgPiB4xas7ICM3NkYxCivnm7IgPiBtw6FuZzsgIzc2RjIKK+ebsyA+IG3DoW5nOyAjNzZGMwor55u0ID4gemjDrTsgIzc2RjQKK+ebtSA+IHHDrDsgIzc2RjUKK+ebtiA+IHJ1xINuOyAjNzZGNgor55u3ID4gdGnDoW47ICM3NkY3Civnm7ggPiB4acSBbmc7ICM3NkY4Civnm7kgPiBkw7luOyAjNzZGOQor55u6ID4geMSrbjsgIzc2RkEKK+ebuyA+IHjDrDsgIzc2RkIKK+ebvCA+IHDDoG47ICM3NkZDCivnm70gPiBmxJNuZzsgIzc2RkQKK+ebviA+IGTDuW47ICM3NkZFCivnm78gPiBtw61uOyAjNzZGRgor55yAID4gbcOtbmc7ICM3NzAwCivnnIEgPiBzaMSVbmc7ICM3NzAxCivnnIIgPiBzaMOsOyAjNzcwMgor55yDID4gecO6bjsgIzc3MDMKK+echCA+IG1pxINuOyAjNzcwNAor55yFID4gcMSBbjsgIzc3MDUKK+echiA+IGbEg25nOyAjNzcwNgor55yHID4gbWnEg287ICM3NzA3CivnnIggPiBkxIFuOyAjNzcwOAor55yJID4gbcOpaTsgIzc3MDkKK+eciiA+IG3DoG87ICM3NzBBCivnnIsgPiBrw6BuOyAjNzcwQgor55yMID4geGnDoG47ICM3NzBDCivnnI0gPiDFjXU7ICM3NzBECivnnI4gPiBzaMOsOyAjNzcwRQor55yPID4gecSBbmc7ICM3NzBGCivnnJAgPiB6aMSTbmc7ICM3NzEwCivnnJEgPiB5xINvOyAjNzcxMQor55ySID4gc2jDqG47ICM3NzEyCivnnJMgPiBow7lvOyAjNzcxMwor55yUID4gZMOgOyAjNzcxNAor55yVID4gemjElW47ICM3NzE1CivnnJYgPiBrdcOgbmc7ICM3NzE2CivnnJcgPiBqxas7ICM3NzE3CivnnJggPiBzaMOobjsgIzc3MTgKK+ecmSA+IGNow6w7ICM3NzE5CivnnJogPiBzaMSVbmc7ICM3NzFBCivnnJsgPiBtw6hpOyAjNzcxQgor55ycID4gbcOyOyAjNzcxQwor55ydID4gemjDuTsgIzc3MUQKK+ecniA+IHpoxJNuOyAjNzcxRQor55yfID4gemjEk247ICM3NzFGCivnnKAgPiBtacOhbjsgIzc3MjAKK+ecoSA+IGTEqzsgIzc3MjEKK+ecoiA+IHl1xIFuOyAjNzcyMgor55yjID4gZGnDqTsgIzc3MjMKK+ecpCA+IHnDrTsgIzc3MjQKK+ecpSA+IHrDrDsgIzc3MjUKK+ecpiA+IHrDrDsgIzc3MjYKK+ecpyA+IGNoxINvOyAjNzcyNwor55yoID4gemjEgzsgIzc3MjgKK+ecqSA+IHh1w6BuOyAjNzcyOQor55yqID4gYsStbmc7ICM3NzJBCivnnKsgPiBtxK07ICM3NzJCCivnnKwgPiBsw7NuZzsgIzc3MkMKK+ecrSA+IHPFq2k7ICM3NzJECivnnK4gPiBkw7JuZzsgIzc3MkUKK+ecryA+IG3ErTsgIzc3MkYKK+ecsCA+IGRpw6k7ICM3NzMwCivnnLEgPiB5w607ICM3NzMxCivnnLIgPiDDqHI7ICM3NzMyCivnnLMgPiBtxK1uZzsgIzc3MzMKK+ectCA+IHh1w6BuOyAjNzczNAor55y1ID4gY2jEqzsgIzc3MzUKK+ectiA+IGt1w6BuZzsgIzc3MzYKK+ectyA+IGp1w6BuOyAjNzczNwor55y4ID4gbcOzdTsgIzc3MzgKK+ecuSA+IHpow6huOyAjNzczOQor55y6ID4gdGnDoG87ICM3NzNBCivnnLsgPiB5w6FuZzsgIzc3M0IKK+ecvCA+IHnEg247ICM3NzNDCivnnL0gPiBtw7I7ICM3NzNECivnnL4gPiB6aMOybmc7ICM3NzNFCivnnL8gPiBtw6BpOyAjNzczRgor552AID4gemjDoW87ICM3NzQwCivnnYEgPiB6aMSTbmc7ICM3NzQxCivnnYIgPiBtw6lpOyAjNzc0Mgor552DID4gasO5bjsgIzc3NDMKK+edhCA+IHNow6BvOyAjNzc0NAor552FID4gaMOgbjsgIzc3NDUKK+edhiA+IGh1xINuOyAjNzc0Ngor552HID4gZMOsOyAjNzc0Nwor552IID4gY2jElW5nOyAjNzc0OAor552JID4gY8WrbzsgIzc3NDkKK+ediiA+IGp1w6BuOyAjNzc0QQor552LID4gw6k7ICM3NzRCCivnnYwgPiB3xINuOyAjNzc0Qwor552NID4geGnDoG47ICM3NzRECivnnY4gPiB4xKs7ICM3NzRFCivnnY8gPiBrw7luOyAjNzc0Rgor552QID4gbMOgaTsgIzc3NTAKK+edkSA+IGppxINuOyAjNzc1MQor552SID4gc2jEg247ICM3NzUyCivnnZMgPiB0acSDbjsgIzc3NTMKK+edlCA+IGjFrW47ICM3NzU0CivnnZUgPiB3xINuOyAjNzc1NQor552WID4gbMOtbmc7ICM3NzU2CivnnZcgPiBzaMOsOyAjNzc1Nwor552YID4gccOtb25nOyAjNzc1OAor552ZID4gbGnDqDsgIzc3NTkKK+edmiA+IHnDoWk7ICM3NzVBCivnnZsgPiBqxKtuZzsgIzc3NUIKK+ednCA+IHpoxJNuZzsgIzc3NUMKK+ednSA+IGzDrTsgIzc3NUQKK+edniA+IGzDoGk7ICM3NzVFCivnnZ8gPiBzw7lpOyAjNzc1Rgor552gID4ganXDoG47ICM3NzYwCivnnaEgPiBzaMO5aTsgIzc3NjEKK+edoiA+IHPFq2k7ICM3NzYyCivnnaMgPiBkxas7ICM3NzYzCivnnaQgPiBiw6w7ICM3NzY0CivnnaUgPiBiw6w7ICM3NzY1CivnnaYgPiBtw7k7ICM3NzY2CivnnacgPiBoxatuOyAjNzc2Nwor552oID4gbsOsOyAjNzc2OAor552pID4gbMO5OyAjNzc2OQor552qID4gecOsOyAjNzc2QQor552rID4gamnDqTsgIzc3NkIKK+edrCA+IGPEg2k7ICM3NzZDCivnna0gPiB6aMWPdTsgIzc3NkQKK+edriA+IHnDujsgIzc3NkUKK+edryA+IGjFq247ICM3NzZGCivnnbAgPiBtw6A7ICM3NzcwCivnnbEgPiB4acOgOyAjNzc3MQor552yID4geMStbmc7ICM3NzcyCivnnbMgPiB4xKs7ICM3NzczCivnnbQgPiBnw7luOyAjNzc3NAor5521ID4gY2FpOyAjNzc3NQor5522ID4gY2jFrW47ICM3Nzc2CivnnbcgPiBqacSBbjsgIzc3NzcKK+eduCA+IG3DqGk7ICM3Nzc4CivnnbkgPiBkxa07ICM3Nzc5CivnnbogPiBow7N1OyAjNzc3QQor5527ID4geHXEgW47ICM3NzdCCivnnbwgPiB0w6w7ICM3NzdDCivnnb0gPiBrw7ppOyAjNzc3RAor552+ID4gZ8SBbzsgIzc3N0UKK+edvyA+IHLDuWk7ICM3NzdGCivnnoAgPiBtw7J1OyAjNzc4MAor556BID4geMO5OyAjNzc4MQor556CID4gZsSBOyAjNzc4Mgor556DID4gd8STbjsgIzc3ODMKK+eehCA+IG1pw6FvOyAjNzc4NAor556FID4gY2jFj3U7ICM3Nzg1CivnnoYgPiBrw7lpOyAjNzc4Ngor556HID4gbcSrOyAjNzc4Nwor556IID4gd8SVbmc7ICM3Nzg4CivnnokgPiBrw7J1OyAjNzc4OQor556KID4gZMOgbmc7ICM3NzhBCivnnosgPiBjaMSTbjsgIzc3OEIKK+eejCA+IGvEkzsgIzc3OEMKK+eejSA+IHPFj3U7ICM3NzhECivnno4gPiB4acSBOyAjNzc4RQor556PID4gccOtb25nOyAjNzc4Rgor556QID4gbcOgbzsgIzc3OTAKK+eekSA+IG3DrW5nOyAjNzc5MQor556SID4gbcOhbjsgIzc3OTIKK+eekyA+IHNow7lpOyAjNzc5Mwor556UID4gesOpOyAjNzc5NAor556VID4gemjDoG5nOyAjNzc5NQor556WID4gecOsOyAjNzc5Ngor556XID4gZGnEgW87ICM3Nzk3CivnnpggPiDFjXU7ICM3Nzk4CivnnpkgPiBtw7I7ICM3Nzk5CivnnpogPiBzaMO5bjsgIzc3OUEKK+eemyA+IGPFjW5nOyAjNzc5Qgor556cID4gbMWNdTsgIzc3OUMKK+eenSA+IGNoxKs7ICM3NzlECivnnp4gPiBtw6FuOyAjNzc5RQor556fID4gcGnEg287ICM3NzlGCivnnqAgPiBjaMSTbmc7ICM3N0EwCivnnqEgPiBqw6w7ICM3N0ExCivnnqIgPiBtw6luZzsgIzc3QTIKK+eepCA+IHLDum47ICM3N0E0CivnnqUgPiBwacSTOyAjNzdBNQor556mID4geMSrOyAjNzdBNgor556nID4gcWnDoW87ICM3N0E3CivnnqggPiBww7o7ICM3N0E4CivnnqkgPiB6aMWtOyAjNzdBOQor556qID4gZMOobmc7ICM3N0FBCivnnqsgPiBzaMSVbjsgIzc3QUIKK+eerCA+IHNow7luOyAjNzdBQwor556tID4gbGnEg287ICM3N0FECivnnq4gPiBjaMOoOyAjNzdBRQor556vID4geGnDoW47ICM3N0FGCivnnrAgPiBrw6BuOyAjNzdCMAor556xID4gecOoOyAjNzdCMQor556yID4geMO5OyAjNzdCMgor556zID4gdMOzbmc7ICM3N0IzCivnnrQgPiBtw7N1OyAjNzdCNAor5561ID4gbMOtbjsgIzc3QjUKK+eetiA+IGvDuWk7ICM3N0I2CivnnrcgPiB4acOhbjsgIzc3QjcKK+eeuCA+IHnDqDsgIzc3QjgKK+eeuSA+IMOgaTsgIzc3QjkKK+eeuiA+IGjDuWk7ICM3N0JBCivnnrsgPiB6aMSBbjsgIzc3QkIKK+eevCA+IGppxINuOyAjNzdCQwor5569ID4gZ8WtOyAjNzdCRAor556+ID4gemjDoG87ICM3N0JFCivnnr8gPiBxxas7ICM3N0JGCivnn4AgPiB3w6lpOyAjNzdDMAor55+BID4gY2jFj3U7ICM3N0MxCivnn4IgPiBzw6BvOyAjNzdDMgor55+DID4gbsStbmc7ICM3N0MzCivnn4QgPiB4xatuOyAjNzdDNAor55+FID4gecOgbzsgIzc3QzUKK+efhiA+IGjDuW87ICM3N0M2Civnn4cgPiBtw6luZzsgIzc3QzcKK+efiCA+IG1pw6FuOyAjNzdDOAor55+JID4gYsSrbjsgIzc3QzkKK+efiiA+IG1pw6FuOyAjNzdDQQor55+LID4gbMOsOyAjNzdDQgor55+MID4ga3XDoG5nOyAjNzdDQwor55+NID4ganXDqTsgIzc3Q0QKK+efjiA+IHh1xIFuOyAjNzdDRQor55+PID4gbWnDoW47ICM3N0NGCivnn5AgPiBow7lvOyAjNzdEMAor55+RID4gbMO6OyAjNzdEMQor55+SID4gbcOpbmc7ICM3N0QyCivnn5MgPiBsw7NuZzsgIzc3RDMKK+eflCA+IGd1w6BuOyAjNzdENAor55+VID4gbcSDbjsgIzc3RDUKK+efliA+IHjErTsgIzc3RDYKK+eflyA+IGNow7k7ICM3N0Q3Civnn5ggPiB0xINuZzsgIzc3RDgKK+efmSA+IGvDoG47ICM3N0Q5Civnn5ogPiB6aMWtOyAjNzdEQQor55+bID4gbcOhbzsgIzc3REIKK+efnCA+IGrEq247ICM3N0RDCivnn50gPiBsw61uOyAjNzdERAor55+eID4gecO5OyAjNzdERQor55+fID4gc2jDuW87ICM3N0RGCivnn6AgPiBjw6g7ICM3N0UwCivnn6EgPiBqdcOpOyAjNzdFMQor55+iID4gc2jErTsgIzc3RTIKK+efoyA+IHnErTsgIzc3RTMKK+efpCA+IHNoxJVuOyAjNzdFNAor55+lID4gemjEqzsgIzc3RTUKK+efpiA+IGjDs3U7ICM3N0U2Civnn6cgPiBzaMSVbjsgIzc3RTcKK+efqCA+IHnErW5nOyAjNzdFOAor55+pID4gasWtOyAjNzdFOQor55+qID4gemjFjXU7ICM3N0VBCivnn6sgPiBqacSDbzsgIzc3RUIKK+efrCA+IGPDum87ICM3N0VDCivnn60gPiBkdcSDbjsgIzc3RUQKK+efriA+IMSDaTsgIzc3RUUKK+efryA+IGppxINvOyAjNzdFRgor55+wID4gesSTbmc7ICM3N0YwCivnn7EgPiBow7lvOyAjNzdGMQor55+yID4gYsSDaTsgIzc3RjIKK+efsyA+IHNow607ICM3N0YzCivnn7QgPiBkw6xuZzsgIzc3RjQKK+eftSA+IHHDrDsgIzc3RjUKK+eftiA+IGrEqzsgIzc3RjYKK+eftyA+IHrErTsgIzc3RjcKK+efuCA+IGfEgW47ICM3N0Y4Civnn7kgPiB3w7k7ICM3N0Y5Civnn7ogPiB0xatvOyAjNzdGQQor55+7ID4ga8O5OyAjNzdGQgor55+8ID4gcWnEgW5nOyAjNzdGQwor55+9ID4geMOsOyAjNzdGRAor55++ID4gZsOhbjsgIzc3RkUKK+efvyA+IGt1w6BuZzsgIzc3RkYKK+eggCA+IGTDoG5nOyAjNzgwMAor56CBID4gbcSDOyAjNzgwMQor56CCID4gc2jEgTsgIzc4MDIKK+eggyA+IGTEgW47ICM3ODAzCivnoIQgPiBqdcOpOyAjNzgwNAor56CFID4gbMOsOyAjNzgwNQor56CGID4gZsWrOyAjNzgwNgor56CHID4gbcOtbjsgIzc4MDcKK+egiCA+IG7FrW87ICM3ODA4CivnoIkgPiBow7lvOyAjNzgwOQor56CKID4ga8Ogbmc7ICM3ODBBCivnoIsgPiB6aMStOyAjNzgwQgor56CMID4gccOsOyAjNzgwQwor56CNID4ga8SDbjsgIzc4MEQKK+egjiA+IGppw6g7ICM3ODBFCivnoI8gPiBmxJNuOyAjNzgwRgor56CQID4gw6g7ICM3ODEwCivnoJEgPiB5w6A7ICM3ODExCivnoJIgPiBwxKs7ICM3ODEyCivnoJMgPiB6aMOpOyAjNzgxMwor56CUID4gecOhbjsgIzc4MTQKK+eglSA+IHPDuWk7ICM3ODE1CivnoJYgPiB6aHXEgW47ICM3ODE2CivnoJcgPiBjaMSTOyAjNzgxNwor56CYID4gZMO5bjsgIzc4MTgKK+egmSA+IHDEgW47ICM3ODE5CivnoJogPiB5w6BuOyAjNzgxQQor56CcID4gZsSTbmc7ICM3ODFDCivnoJ0gPiBmw6E7ICM3ODFECivnoJ4gPiBtw7I7ICM3ODFFCivnoJ8gPiB6aMOgOyAjNzgxRgor56CgID4gccWrOyAjNzgyMAor56ChID4gecO5OyAjNzgyMQor56CiID4gbMWtbzsgIzc4MjIKK+egoyA+IHTDum87ICM3ODIzCivnoKQgPiB0w7pvOyAjNzgyNAor56ClID4gZMStOyAjNzgyNQor56CmID4gemjDoGk7ICM3ODI2CivnoKcgPiB6aMSTbjsgIzc4MjcKK+egqCA+IMOgaTsgIzc4MjgKK+egqSA+IGbDqGk7ICM3ODI5CivnoKogPiBtxa07ICM3ODJBCivnoKsgPiB6aMWtOyAjNzgyQgor56CsID4gbMOsOyAjNzgyQwor56CtID4gYmnEgW47ICM3ODJECivnoK4gPiBuxa07ICM3ODJFCivnoK8gPiBwxKtuZzsgIzc4MkYKK+egsCA+IHDEk25nOyAjNzgzMAor56CxID4gbMOtbmc7ICM3ODMxCivnoLIgPiBww6BvOyAjNzgzMgor56CzID4gbMOoOyAjNzgzMwor56C0ID4gcMOyOyAjNzgzNAor56C1ID4gYsWNOyAjNzgzNQor56C2ID4gcMOyOyAjNzgzNgor56C3ID4gc2jEk247ICM3ODM3CivnoLggPiB6w6E7ICM3ODM4CivnoLkgPiBuxa1vOyAjNzgzOQor56C6ID4gbMOsOyAjNzgzQQor56C7ID4gbMOzbmc7ICM3ODNCCivnoLwgPiB0w7NuZzsgIzc4M0MKK+egviA+IGzDrDsgIzc4M0UKK+ehgCA+IGNoxa07ICM3ODQwCivnoYEgPiBrxJNuZzsgIzc4NDEKK+ehgiA+IHF1w6FuOyAjNzg0Mgor56GDID4gemjFqzsgIzc4NDMKK+ehhCA+IGt1xIFuZzsgIzc4NDQKK+ehhSA+IGjDuW87ICM3ODQ1CivnoYYgPiDDqDsgIzc4NDYKK+ehhyA+IG7DoW87ICM3ODQ3CivnoYggPiBqacOhOyAjNzg0OAor56GJID4gbMO5OyAjNzg0OQor56GKID4gd8SVaTsgIzc4NEEKK+ehiyA+IMOgaTsgIzc4NEIKK+ehjCA+IGzDuW87ICM3ODRDCivnoY0gPiBrw6huOyAjNzg0RAor56GOID4geMOtbmc7ICM3ODRFCivnoY8gPiB5w6FuOyAjNzg0Rgor56GQID4gdMOzbmc7ICM3ODUwCivnoZEgPiBwxJNuZzsgIzc4NTEKK+ehkiA+IHjEqzsgIzc4NTIKK+ehlCA+IGjDs25nOyAjNzg1NAor56GVID4gc2jDuW87ICM3ODU1CivnoZYgPiB4acOhOyAjNzg1Ngor56GXID4gcWnEgW87ICM3ODU3CivnoZkgPiB3w6hpOyAjNzg1OQor56GaID4gcWnDoW87ICM3ODVBCivnoZwgPiBrxJNuZzsgIzc4NUMKK+ehnSA+IHhpxIFvOyAjNzg1RAor56GeID4gcXXDqDsgIzc4NUUKK+ehnyA+IGNow6BuOyAjNzg1Rgor56GgID4gbMSDbmc7ICM3ODYwCivnoaEgPiBow7NuZzsgIzc4NjEKK+ehoiA+IHnDujsgIzc4NjIKK+ehoyA+IHhpxIFvOyAjNzg2Mwor56GkID4geGnDoTsgIzc4NjQKK+ehpSA+IG3Eg25nOyAjNzg2NQor56GmID4gbMOybmc7ICM3ODY2CivnoacgPiDErW9uZzsgIzc4NjcKK+ehqCA+IGNoxJM7ICM3ODY4CivnoakgPiBjaMOoOyAjNzg2OQor56GqID4gw6k7ICM3ODZBCivnoasgPiBsw611OyAjNzg2Qgor56GsID4gecOsbmc7ICM3ODZDCivnoa0gPiBtw6FuZzsgIzc4NkQKK+ehriA+IHF1w6g7ICM3ODZFCivnoa8gPiB5w6BuOyAjNzg2Rgor56GwID4gc2jEgTsgIzc4NzAKK+ehsSA+IGvFrW47ICM3ODcxCivnobIgPiB5w7k7ICM3ODcyCivnobUgPiBsxa07ICM3ODc1CivnobYgPiBjaMSVbjsgIzc4NzYKK+ehtyA+IGppxINuOyAjNzg3Nwor56G4ID4gbnXDqDsgIzc4NzgKK+ehuSA+IHPFjW5nOyAjNzg3OQor56G6ID4gemjDum87ICM3ODdBCivnobsgPiBrxJNuZzsgIzc4N0IKK+ehvCA+IHDDqW5nOyAjNzg3Qwor56G9ID4gecSDbjsgIzc4N0QKK+ehviA+IHpow7lpOyAjNzg3RQor56G/ID4ga8WNbmc7ICM3ODdGCivnooAgPiBjw6luZzsgIzc4ODAKK+eigSA+IHHDrTsgIzc4ODEKK+eigiA+IHrDsm5nOyAjNzg4Mgor56KDID4gccOsbmc7ICM3ODgzCivnooQgPiBsw61uOyAjNzg4NAor56KFID4gasWrbjsgIzc4ODUKK+eihiA+IGLFjTsgIzc4ODYKK+eihyA+IGTDrG5nOyAjNzg4Nwor56KIID4gbcOtbjsgIzc4ODgKK+eiiSA+IGRpxIFvOyAjNzg4OQor56KKID4gamnEgW47ICM3ODhBCivnoosgPiBow6g7ICM3ODhCCivnoowgPiBsw7k7ICM3ODhDCivnoo0gPiDDoGk7ICM3ODhECivnoo4gPiBzw7lpOyAjNzg4RQor56KPID4gcXXDqDsgIzc4OEYKK+eikCA+IGzDrW5nOyAjNzg5MAor56KRID4gYsSTaTsgIzc4OTEKK+eikiA+IHnDrW47ICM3ODkyCivnopMgPiBkw7lpOyAjNzg5Mwor56KUID4gd8WtOyAjNzg5NAor56KVID4gccOtOyAjNzg5NQor56KWID4gbMO5bjsgIzc4OTYKK+eilyA+IHfEg247ICM3ODk3CivnopggPiBkacSDbjsgIzc4OTgKK+eimSA+IGfEgW5nOyAjNzg5OQor56KaID4gcMOpaTsgIzc4OUEKK+eimyA+IHHDrDsgIzc4OUIKK+einCA+IGNoxJVuOyAjNzg5Qwor56KdID4gcnXEg247ICM3ODlECivnop4gPiB5w6FuOyAjNzg5RQor56KfID4gZGnDqTsgIzc4OUYKK+eioCA+IGTDrG5nOyAjNzhBMAor56KhID4gZMO6OyAjNzhBMQor56KiID4gdMO6bzsgIzc4QTIKK+eioyA+IGppw6k7ICM3OEEzCivnoqQgPiB5xKtuZzsgIzc4QTQKK+eipSA+IGJpxINuOyAjNzhBNQor56KmID4ga8OoOyAjNzhBNgor56KnID4gYsOsOyAjNzhBNwor56KoID4gd8STaTsgIzc4QTgKK+eiqSA+IHNow7lvOyAjNzhBOQor56KqID4gemjEk247ICM3OEFBCivnoqsgPiBkdcOgbjsgIzc4QUIKK+eirCA+IHhpw6E7ICM3OEFDCivnoq0gPiBkw6BuZzsgIzc4QUQKK+eiriA+IHTDrTsgIzc4QUUKK+eiryA+IG7Eg287ICM3OEFGCivnorAgPiBww6huZzsgIzc4QjAKK+eisSA+IGppxINuOyAjNzhCMQor56KyID4gZMOsOyAjNzhCMgor56KzID4gdMOgbjsgIzc4QjMKK+eitCA+IGNow6E7ICM3OEI0CivnorYgPiBxw6w7ICM3OEI2CivnorggPiBmxJNuZzsgIzc4QjgKK+eiuSA+IHh1w6BuOyAjNzhCOQor56K6ID4gcXXDqDsgIzc4QkEKK+eiuyA+IHF1w6g7ICM3OEJCCivnorwgPiBtxIM7ICM3OEJDCivnor0gPiBnxY1uZzsgIzc4QkQKK+eiviA+IG5pw6BuOyAjNzhCRQor56K/ID4gc8O5OyAjNzhCRgor56OAID4gw6k7ICM3OEMwCivno4EgPiBjw607ICM3OEMxCivno4IgPiBsw6x1OyAjNzhDMgor56ODID4gc8SrOyAjNzhDMwor56OEID4gdMOhbmc7ICM3OEM0Civno4UgPiBiw6BuZzsgIzc4QzUKK+ejhiA+IGh1w6E7ICM3OEM2Civno4cgPiBwxKs7ICM3OEM3Civno4ggPiB3xJVpOyAjNzhDOAor56OJID4gc8SDbmc7ICM3OEM5Civno4ogPiBsxJVpOyAjNzhDQQor56OLID4gY8WrbzsgIzc4Q0IKK+ejjCA+IHpoxJNuOyAjNzhDQwor56ONID4geGnDoTsgIzc4Q0QKK+ejjiA+IHHEqzsgIzc4Q0UKK+ejjyA+IGxpw6FuOyAjNzhDRgor56OQID4gcMOhbjsgIzc4RDAKK+ejkSA+IHfDqGk7ICM3OEQxCivno5IgPiB5xa1uOyAjNzhEMgor56OTID4gZMWraTsgIzc4RDMKK+ejlCA+IHpow6k7ICM3OEQ0Civno5UgPiBrxJM7ICM3OEQ1Civno5YgPiBsxIE7ICM3OEQ2Civno5ggPiBxw6xuZzsgIzc4RDgKK+ejmSA+IGfFrW47ICM3OEQ5Civno5ogPiB6aHXEgW47ICM3OERBCivno5sgPiBjaMOhbjsgIzc4REIKK+ejnCA+IHHDrDsgIzc4REMKK+ejnSA+IMOhbzsgIzc4REQKK+ejniA+IHDEk25nOyAjNzhERQor56OfID4gbMO5OyAjNzhERgor56OgID4gbMWtOyAjNzhFMAor56OhID4ga8OgbjsgIzc4RTEKK+ejoiA+IHFpxINuZzsgIzc4RTIKK+ejoyA+IGNoxJVuOyAjNzhFMwor56OkID4gecStbjsgIzc4RTQKK+ejpSA+IGzElWk7ICM3OEU1Civno6YgPiBiacSBbzsgIzc4RTYKK+ejpyA+IHHDrDsgIzc4RTcKK+ejqCA+IG3DszsgIzc4RTgKK+ejqSA+IHHEqzsgIzc4RTkKK+ejqiA+IGPFq2k7ICM3OEVBCivno6sgPiB6xY1uZzsgIzc4RUIKK+ejrCA+IHHDrG5nOyAjNzhFQwor56OtID4gY2jDuW87ICM3OEVECivno68gPiBqxKs7ICM3OEVGCivno7AgPiBzaMOgbjsgIzc4RjAKK+ejsSA+IGzDoW87ICM3OEYxCivno7IgPiBxw7o7ICM3OEYyCivno7MgPiB6xJNuZzsgIzc4RjMKK+ejtCA+IGTDqG5nOyAjNzhGNAor56O1ID4gamnDoG47ICM3OEY1Civno7YgPiB4w6w7ICM3OEY2Civno7cgPiBsw6xuOyAjNzhGNwor56O4ID4gZMOsbmc7ICM3OEY4Civno7kgPiBkacOgbjsgIzc4RjkKK+ejuiA+IGh1w6FuZzsgIzc4RkEKK+ejuyA+IHDDoW47ICM3OEZCCivno7wgPiB6w6E7ICM3OEZDCivno70gPiBxacSBbzsgIzc4RkQKK+ejviA+IGTEqzsgIzc4RkUKK+ejvyA+IGzDrDsgIzc4RkYKK+ekgSA+IGppxIFvOyAjNzkwMQor56SDID4gemjEg25nOyAjNzkwMwor56SEID4gcWnDoW87ICM3OTA0CivnpIUgPiBkxatuOyAjNzkwNQor56SGID4geGnEg247ICM3OTA2CivnpIcgPiB5w7k7ICM3OTA3CivnpIggPiB6aMO5aTsgIzc5MDgKK+ekiSA+IGjDqTsgIzc5MDkKK+ekiiA+IGjDuW87ICM3OTBBCivnpIsgPiB6aMOhaTsgIzc5MEIKK+ekjCA+IGzDqGk7ICM3OTBDCivnpI0gPiBrxJU7ICM3OTBECivnpI4gPiBjaMWtOyAjNzkwRQor56SPID4gasOtOyAjNzkwRgor56SQID4gcXXDqDsgIzc5MTAKK+ekkSA+IGTDoG5nOyAjNzkxMQor56SSID4gecStOyAjNzkxMgor56STID4gamnEgW5nOyAjNzkxMwor56SUID4gcMOsOyAjNzkxNAor56SVID4gcMSrOyAjNzkxNQor56SWID4gecO5OyAjNzkxNgor56SXID4gcMSrbjsgIzc5MTcKK+ekmCA+IHHDrDsgIzc5MTgKK+ekmSA+IMOgaTsgIzc5MTkKK+ekmiA+IGvDoGk7ICM3OTFBCivnpJsgPiBqacSBbjsgIzc5MUIKK+eknCA+IHnDuTsgIzc5MUMKK+eknSA+IHJ1xINuOyAjNzkxRAor56SeID4gbcOpbmc7ICM3OTFFCivnpJ8gPiBww6BvOyAjNzkxRgor56SgID4gY8OtOyAjNzkyMAor56SjID4gbWnDqDsgIzc5MjMKK+ekpCA+IGPEgzsgIzc5MjQKK+ekpSA+IHhpw6FuOyAjNzkyNQor56SmID4ga3XDoG5nOyAjNzkyNgor56SnID4gbMOoaTsgIzc5MjcKK+ekqCA+IGzElWk7ICM3OTI4CivnpKkgPiB6aMOsOyAjNzkyOQor56SqID4gbMOsOyAjNzkyQQor56SrID4gbMOsOyAjNzkyQgor56SsID4gZsOhbjsgIzc5MkMKK+ekrSA+IHF1w6g7ICM3OTJECivnpK4gPiBww6BvOyAjNzkyRQor56SvID4gecSrbmc7ICM3OTJGCivnpLAgPiBsw6w7ICM3OTMwCivnpLEgPiBsw7NuZzsgIzc5MzEKK+eksiA+IGzDs25nOyAjNzkzMgor56SzID4gbcOyOyAjNzkzMwor56S0ID4gYsOzOyAjNzkzNAor56S1ID4gc2h1xIFuZzsgIzc5MzUKK+ektiA+IGd1w6BuOyAjNzkzNgor56S3ID4gbMOhbjsgIzc5MzcKK+ekuCA+IHrEg247ICM3OTM4CivnpLkgPiB5w6FuOyAjNzkzOQor56S6ID4gc2jDrDsgIzc5M0EKK+ekuyA+IHNow6wnICd6w6wnICdww6FuZzsgIzc5M0IKK+ekvCA+IGzErTsgIzc5M0MKK+ekvSA+IHLDqW5nOyAjNzkzRAor56S+ID4gc2jDqDsgIzc5M0UKK+ekvyA+IHl1w6g7ICM3OTNGCivnpYAgPiBzw6w7ICM3OTQwCivnpYEgPiBxw607ICM3OTQxCivnpYIgPiB0xIE7ICM3OTQyCivnpYMgPiBtw6A7ICM3OTQzCivnpYQgPiB4acOoOyAjNzk0NAor56WFID4geGnEgW47ICM3OTQ1CivnpYYgPiB4acSBbjsgIzc5NDYKK+elhyA+IHpoxKs7ICM3OTQ3CivnpYggPiBxw607ICM3OTQ4CivnpYkgPiB6aMStOyAjNzk0OQor56WKID4gYsSTbmc7ICM3OTRBCivnpYsgPiBkw7lpOyAjNzk0Qgor56WMID4gemjDsm5nOyAjNzk0Qwor56WOID4gecSrOyAjNzk0RQor56WPID4gc2jDrTsgIzc5NEYKK+elkCA+IHnDsnU7ICM3OTUwCivnpZEgPiB6aMOsOyAjNzk1MQor56WSID4gdGnDoW87ICM3OTUyCivnpZMgPiBmw7o7ICM3OTUzCivnpZQgPiBmw7k7ICM3OTU0CivnpZUgPiBtw6w7ICM3OTU1CivnpZYgPiB6xa07ICM3OTU2CivnpZcgPiB6aMSrOyAjNzk1Nwor56WYID4gc3XDoG47ICM3OTU4CivnpZkgPiBtw6hpOyAjNzk1OQor56WaID4gesO5bzsgIzc5NUEKK+elmyA+IHHFqzsgIzc5NUIKK+elnCA+IGjDuTsgIzc5NUMKK+elnSA+IHpow7k7ICM3OTVECivnpZ4gPiBzaMOpbjsgIzc5NUUKK+elnyA+IHPDuWk7ICM3OTVGCivnpaAgPiBjw607ICM3OTYwCivnpaEgPiBjaMOhaTsgIzc5NjEKK+eloiA+IG3DrTsgIzc5NjIKK+eloyA+IGzHmjsgIzc5NjMKK+elpCA+IHnFrTsgIzc5NjQKK+elpSA+IHhpw6FuZzsgIzc5NjUKK+elpiA+IHfDujsgIzc5NjYKK+elpyA+IHRpxIFvOyAjNzk2Nwor56WoID4gcGnDoG87ICM3OTY4CivnpakgPiB6aMWrOyAjNzk2OQor56WqID4gZ8WtaTsgIzc5NkEKK+elqyA+IHhpw6E7ICM3OTZCCivnpawgPiB6aMSrOyAjNzk2Qwor56WtID4gasOsOyAjNzk2RAor56WuID4gZ8OgbzsgIzc5NkUKK+elryA+IHpoxJNuOyAjNzk2Rgor56WwID4gZ8OgbzsgIzc5NzAKK+elsSA+IHNow7lpOyAjNzk3MQor56WyID4gasSrbjsgIzc5NzIKK+elsyA+IGNoxJVuOyAjNzk3Mwor56W0ID4gZ8SBaTsgIzc5NzQKK+eltSA+IGvFrW47ICM3OTc1CivnpbYgPiBkw6w7ICM3OTc2CivnpbcgPiBkxINvOyAjNzk3Nwor56W4ID4gaMO5bzsgIzc5NzgKK+eluSA+IHTDoW87ICM3OTc5CivnpbogPiBxw607ICM3OTdBCivnpbsgPiBnw7k7ICM3OTdCCivnpbwgPiBndcOgbjsgIzc5N0MKK+elvSA+IHrDuWk7ICM3OTdECivnpb4gPiBsw61uZzsgIzc5N0UKK+elvyA+IGzDuTsgIzc5N0YKK+emgCA+IGLErW5nOyAjNzk4MAor56aBID4gasOsbjsgIzc5ODEKK+emgiA+IGTEg287ICM3OTgyCivnpoMgPiB6aMOtOyAjNzk4Mwor56aEID4gbMO5OyAjNzk4NAor56aFID4gc2jDoG47ICM3OTg1CivnpoYgPiBixJNpOyAjNzk4Ngor56aHID4gemjElTsgIzc5ODcKK+emiCA+IGjFq2k7ICM3OTg4CivnpokgPiB5xY91OyAjNzk4OQor56aKID4geMOsOyAjNzk4QQor56aLID4gecSrbjsgIzc5OEIKK+emjCA+IHrEqzsgIzc5OEMKK+emjSA+IGjDuW87ICM3OThECivnpo4gPiB6aMSTbjsgIzc5OEUKK+emjyA+IGbDujsgIzc5OEYKK+emkCA+IHl1w6BuOyAjNzk5MAor56aRID4gd8O6OyAjNzk5MQor56aSID4geGnEg247ICM3OTkyCivnppMgPiB5w6FuZzsgIzc5OTMKK+emlCA+IHTDrTsgIzc5OTQKK+emlSA+IHnEqzsgIzc5OTUKK+emliA+IG3DqWk7ICM3OTk2CivnppcgPiBzxKs7ICM3OTk3CivnppggPiBkw6w7ICM3OTk4CivnppogPiB6aMO6bzsgIzc5OUEKK+emmyA+IHpoxJNuOyAjNzk5Qgor56acID4gecWPbmc7ICM3OTlDCivnpp0gPiBqw607ICM3OTlECivnpp4gPiBnw6BvOyAjNzk5RQor56afID4gdMOhbmc7ICM3OTlGCivnpqAgPiBzxKs7ICM3OUEwCivnpqEgPiBtw6A7ICM3OUExCivnpqIgPiB0xIE7ICM3OUEyCivnpqQgPiB4dcSBbjsgIzc5QTQKK+empSA+IHHDrTsgIzc5QTUKK+empiA+IHnDuTsgIzc5QTYKK+empyA+IHjEqzsgIzc5QTcKK+emqCA+IGrEqzsgIzc5QTgKK+emqSA+IHPDrDsgIzc5QTkKK+emqiA+IGNow6FuOyAjNzlBQQor56arID4gdMSDbjsgIzc5QUIKK+emrCA+IGt1w6BpOyAjNzlBQwor56atID4gc8O5aTsgIzc5QUQKK+emriA+IGzErTsgIzc5QUUKK+emryA+IG7Ds25nOyAjNzlBRgor56awID4gbsStOyAjNzlCMAor56axID4gZMSDbzsgIzc5QjEKK+emsiA+IGzDrDsgIzc5QjIKK+emsyA+IHLDoW5nOyAjNzlCMwor56a0ID4geXXDqDsgIzc5QjQKK+emtSA+IHTDrTsgIzc5QjUKK+emtiA+IHrEg247ICM3OUI2CivnprcgPiBsw6hpOyAjNzlCNwor56a4ID4gcsOzdTsgIzc5QjgKK+emuSA+IHnFrTsgIzc5QjkKK+emuiA+IHnDujsgIzc5QkEKK+emuyA+IGNoxKs7ICM3OUJCCivnprwgPiB4acOoOyAjNzlCQwor56a9ID4gccOtbjsgIzc5QkQKK+emviA+IGjDqTsgIzc5QkUKK+emvyA+IHTFqzsgIzc5QkYKK+engCA+IHjDrHU7ICM3OUMwCivnp4EgPiBzxKs7ICM3OUMxCivnp4IgPiByw6luOyAjNzlDMgor56eDID4gdMWrOyAjNzlDMwor56eEID4gesStOyAjNzlDNAor56eFID4gY2jDoTsgIzc5QzUKK+enhiA+IGfEg247ICM3OUM2Civnp4cgPiB5w6w7ICM3OUM3Civnp4ggPiB4acSBbjsgIzc5QzgKK+eniSA+IGLErW5nOyAjNzlDOQor56eKID4gbmnDoW47ICM3OUNBCivnp4sgPiBxxKt1OyAjNzlDQgor56eMID4gccSrdTsgIzc5Q0MKK+enjSA+IGNow7NuZzsgIzc5Q0QKK+enjiA+IGbDqW47ICM3OUNFCivnp48gPiBow6BvOyAjNzlDRgor56eQID4gecO6bjsgIzc5RDAKK+enkSA+IGvEkzsgIzc5RDEKK+enkiA+IG1pxINvOyAjNzlEMgor56eTID4gemjEqzsgIzc5RDMKK+enlCA+IGfEk25nOyAjNzlENAor56eVID4gYsStOyAjNzlENQor56eWID4gemjEqzsgIzc5RDYKK+enlyA+IHnDuTsgIzc5RDcKK+enmCA+IG3DrDsgIzc5RDgKK+enmSA+IGvDuTsgIzc5RDkKK+enmiA+IGLDoG47ICM3OURBCivnp5sgPiBwxKs7ICM3OURCCivnp5wgPiBuw607ICM3OURDCivnp50gPiBsw6w7ICM3OURECivnp54gPiB5w7N1OyAjNzlERQor56efID4gesWrOyAjNzlERgor56egID4gcMSrOyAjNzlFMAor56ehID4gYsOhOyAjNzlFMQor56eiID4gbMOtbmc7ICM3OUUyCivnp6MgPiBtw7I7ICM3OUUzCivnp6QgPiBjaMOobmc7ICM3OUU0Civnp6UgPiBuacOhbjsgIzc5RTUKK+enpiA+IHHDrW47ICM3OUU2Civnp6cgPiB5xIFuZzsgIzc5RTcKK+enqCA+IHrDum87ICM3OUU4Civnp6kgPiB6aMOsOyAjNzlFOQor56eqID4gemjEqzsgIzc5RUEKK+enqyA+IHNow7o7ICM3OUVCCivnp6wgPiBqw7k7ICM3OUVDCivnp60gPiB6xK07ICM3OUVECivnp64gPiBow7pvOyAjNzlFRQor56evID4gasSrOyAjNzlFRgor56ewID4gY2jEk25nOyAjNzlGMAor56exID4gdMOzbmc7ICM3OUYxCivnp7IgPiB6aMOsOyAjNzlGMgor56ezID4gaMO6bzsgIzc5RjMKK+entCA+IGjDqTsgIzc5RjQKK+entSA+IHnEq247ICM3OUY1Civnp7YgPiB6xKs7ICM3OUY2Civnp7cgPiB6aMOtOyAjNzlGNwor56e4ID4gamnEkzsgIzc5RjgKK+enuSA+IHLElW47ICM3OUY5Civnp7ogPiBkw7k7ICM3OUZBCivnp7sgPiB5w607ICM3OUZCCivnp7wgPiB6aMWrOyAjNzlGQwor56e9ID4gaMO5aTsgIzc5RkQKK+enviA+IG7Ds25nOyAjNzlGRQor56e/ID4gZsWtOyAjNzlGRgor56iAID4geMSrOyAjN0EwMAor56iBID4ga8SDbzsgIzdBMDEKK+eogiA+IGzDoW5nOyAjN0EwMgor56iDID4gZsWrOyAjN0EwMwor56iEID4gesOoOyAjN0EwNAor56iFID4gc2jDuWk7ICM3QTA1CivnqIYgPiBsx5o7ICM3QTA2CivnqIcgPiBrxa1uOyAjN0EwNwor56iIID4gZ8SDbjsgIzdBMDgKK+eoiSA+IGfEk25nOyAjN0EwOQor56iKID4gdMOtOyAjN0EwQQor56iLID4gY2jDqW5nOyAjN0EwQgor56iMID4gdMO6OyAjN0EwQwor56iNID4gc2jEgW87ICM3QTBECivnqI4gPiBzaMO5aTsgIzdBMEUKK+eojyA+IHnDoDsgIzdBMEYKK+eokCA+IGzFrW47ICM3QTEwCivnqJEgPiBsw7k7ICM3QTExCivnqJIgPiBnw7k7ICM3QTEyCivnqJMgPiB6w7pvOyAjN0ExMwor56iUID4gcsSVbjsgIzdBMTQKK+eolSA+IHpow7luOyAjN0ExNQor56iWID4gYsOgbmc7ICM3QTE2CivnqJcgPiBiw6BpOyAjN0ExNwor56iYID4gasSrOyAjN0ExOAor56iZID4gemjDrTsgIzdBMTkKK+eomiA+IHpow6w7ICM3QTFBCivnqJsgPiBrxa1uOyAjN0ExQgor56icID4gbMOpbmc7ICM3QTFDCivnqJ0gPiBww6luZzsgIzdBMUQKK+eoniA+IGvEkzsgIzdBMUUKK+eonyA+IGLErW5nOyAjN0ExRgor56igID4gY2jDs3U7ICM3QTIwCivnqKEgPiB6w7o7ICM3QTIxCivnqKIgPiB5w7k7ICM3QTIyCivnqKMgPiBzxas7ICM3QTIzCivnqKQgPiBsx5xlOyAjN0EyNAor56imID4gecSrOyAjN0EyNgor56inID4geMOsOyAjN0EyNwor56ioID4gYmnEgW47ICM3QTI4CivnqKkgPiBqw6w7ICM3QTI5CivnqKogPiBmw7k7ICM3QTJBCivnqKsgPiBixKs7ICM3QTJCCivnqKwgPiBuw7lvOyAjN0EyQwor56itID4gamnEkzsgIzdBMkQKK+eoriA+IHpoxY9uZzsgIzdBMkUKK+eoryA+IHrFjW5nOyAjN0EyRgor56iwID4geMWrOyAjN0EzMAor56ixID4gY2jEk25nOyAjN0EzMQor56iyID4gZMOgbzsgIzdBMzIKK+eosyA+IHfElW47ICM3QTMzCivnqLQgPiBsacOhbjsgIzdBMzQKK+eotSA+IHrEqzsgIzdBMzUKK+eotiA+IHnDuTsgIzdBMzYKK+eotyA+IGrDrDsgIzdBMzcKK+eouCA+IHjDuTsgIzdBMzgKK+eouSA+IHpoxJVuOyAjN0EzOQor56i6ID4gemjDrDsgIzdBM0EKK+eouyA+IGTDoG87ICM3QTNCCivnqLwgPiBqacOgOyAjN0EzQwor56i9ID4gasSrOyAjN0EzRAor56i+ID4gZ8SDbzsgIzdBM0UKK+eovyA+IGfEg287ICM3QTNGCivnqYAgPiBnxa07ICM3QTQwCivnqYEgPiByw7NuZzsgIzdBNDEKK+epgiA+IHPDuWk7ICM3QTQyCivnqYQgPiBqw6w7ICM3QTQ0CivnqYUgPiBrxIFuZzsgIzdBNDUKK+ephiA+IG3DuTsgIzdBNDYKK+ephyA+IHNoxIFuOyAjN0E0Nwor56mIID4gbcOpbjsgIzdBNDgKK+epiSA+IHpow6w7ICM3QTQ5CivnqYogPiBqw6w7ICM3QTRBCivnqYsgPiBsw7k7ICM3QTRCCivnqYwgPiBzxas7ICM3QTRDCivnqY0gPiBqxKs7ICM3QTRECivnqY4gPiB5xK1uZzsgIzdBNEUKK+epjyA+IHfElW47ICM3QTRGCivnqZAgPiBxxKt1OyAjN0E1MAor56mRID4gc8OoOyAjN0E1MQor56mTID4gecOsOyAjN0E1Mwor56mUID4gaHXDoW5nOyAjN0E1NAor56mVID4gcWnDqDsgIzdBNTUKK+epliA+IGrErTsgIzdBNTYKK+eplyA+IHPDuWk7ICM3QTU3CivnqZggPiB4acSBbzsgIzdBNTgKK+epmSA+IHDDujsgIzdBNTkKK+epmiA+IGppxIFvOyAjN0E1QQor56mbID4gemjFq287ICM3QTVCCivnqZwgPiB0w7NuZzsgIzdBNUMKK+epniA+IGzHmjsgIzdBNUUKK+epnyA+IHPDuWk7ICM3QTVGCivnqaAgPiBuw7NuZzsgIzdBNjAKK+epoSA+IHPDqDsgIzdBNjEKK+epoiA+IGjDuWk7ICM3QTYyCivnqaMgPiByw6FuZzsgIzdBNjMKK+eppCA+IG7DuW87ICM3QTY0CivnqaUgPiB5w7k7ICM3QTY1CivnqaYgPiBiaW47ICM3QTY2CivnqacgPiBqw6w7ICM3QTY3CivnqaggPiB0w7ppOyAjN0E2OAor56mpID4gd8SVbjsgIzdBNjkKK+epqiA+IGNoxJNuZzsgIzdBNkEKK+epqyA+IGjDuW87ICM3QTZCCivnqawgPiBnxY9uZzsgIzdBNkMKK+eprSA+IGzHmjsgIzdBNkQKK+epriA+IGJpxIFvOyAjN0E2RQor56mwID4gcsOhbmc7ICM3QTcwCivnqbEgPiB6aMWrbzsgIzdBNzEKK+epsiA+IGzDrTsgIzdBNzIKK+epsyA+IHrDoG47ICM3QTczCivnqbQgPiB4dcOoOyAjN0E3NAor56m1ID4gd8SBOyAjN0E3NQor56m2ID4gasOsdTsgIzdBNzYKK+eptyA+IHHDrW9uZzsgIzdBNzcKK+epuCA+IHjDrDsgIzdBNzgKK+epuSA+IHHEq29uZzsgIzdBNzkKK+epuiA+IGvFjW5nOyAjN0E3QQor56m7ID4gecWrOyAjN0E3Qgor56m8ID4gc8STbjsgIzdBN0MKK+epvSA+IGrErW5nOyAjN0E3RAor56m+ID4gecOgbzsgIzdBN0UKK+epvyA+IGNodcSBbjsgIzdBN0YKK+eqgCA+IHpoxatuOyAjN0E4MAor56qBID4gdMO6OyAjN0E4MQor56qCID4gbMOhbzsgIzdBODIKK+eqgyA+IHFpw6g7ICM3QTgzCivnqoQgPiB6aMSDaTsgIzdBODQKK+eqhSA+IHnEg287ICM3QTg1CivnqoYgPiBiacSDbjsgIzdBODYKK+eqhyA+IGLDoW87ICM3QTg3CivnqoggPiB5xINvOyAjN0E4OAor56qJID4gYsStbmc7ICM3QTg5CivnqoogPiB3xIE7ICM3QThBCivnqosgPiB6aMO6OyAjN0E4Qgor56qMID4gamnDoG87ICM3QThDCivnqo0gPiBxacOgbzsgIzdBOEQKK+eqjiA+IGRpw6BvOyAjN0E4RQor56qPID4gd8WrOyAjN0E4Rgor56qQID4gZ8WraTsgIzdBOTAKK+eqkSA+IHnDoW87ICM3QTkxCivnqpIgPiB6aMOsOyAjN0E5Mgor56qTID4gY2h1xIFuZzsgIzdBOTMKK+eqlCA+IHnEg287ICM3QTk0CivnqpUgPiB0acSDbzsgIzdBOTUKK+eqliA+IGppw6BvOyAjN0E5Ngor56qXID4gY2h1xIFuZzsgIzdBOTcKK+eqmCA+IGrErW9uZzsgIzdBOTgKK+eqmSA+IHhpxIFvOyAjN0E5OQor56qaID4gY2jDqW5nOyAjN0E5QQor56qbID4ga8OydTsgIzdBOUIKK+eqnCA+IGN1w6BuOyAjN0E5Qwor56qdID4gd8WNOyAjN0E5RAor56qeID4gZMOgbjsgIzdBOUUKK+eqnyA+IGvFqzsgIzdBOUYKK+eqoCA+IGvEkzsgIzdBQTAKK+eqoSA+IHpow7lpOyAjN0FBMQor56qiID4geMO5OyAjN0FBMgor56qjID4gc8O5OyAjN0FBMwor56qkID4gZ3VhbjsgIzdBQTQKK+eqpSA+IGvFq2k7ICM3QUE1CivnqqYgPiBkw7J1OyAjN0FBNgor56qoID4gecOsbjsgIzdBQTgKK+eqqSA+IHfFjTsgIzdBQTkKK+eqqiA+IHfEgTsgIzdBQUEKK+eqqyA+IHnDoDsgIzdBQUIKK+eqrCA+IHnDujsgIzdBQUMKK+eqrSA+IGrDuTsgIzdBQUQKK+eqriA+IHHDrW9uZzsgIzdBQUUKK+eqryA+IHnDoW87ICM3QUFGCivnqrAgPiB5w6FvOyAjN0FCMAor56qxID4gdGnDoG87ICM3QUIxCivnqrIgPiBjaMOhbzsgIzdBQjIKK+eqsyA+IHnFrTsgIzdBQjMKK+eqtCA+IHRpw6FuOyAjN0FCNAor56q1ID4gZGnDoG87ICM3QUI1CivnqrYgPiBqw7k7ICM3QUI2CivnqrcgPiBsacOhbzsgIzdBQjcKK+equCA+IHjEqzsgIzdBQjgKK+equSA+IHfDuTsgIzdBQjkKK+equiA+IGvFq2k7ICM3QUJBCivnqrsgPiBjaHXEgW5nOyAjN0FCQgor56q8ID4gemjEgW87ICM3QUJDCivnqr4gPiBrdcSDbjsgIzdBQkUKK+eqvyA+IGzDs25nOyAjN0FCRgor56uAID4gY2jEk25nOyAjN0FDMAor56uBID4gY8O5aTsgIzdBQzEKK+ergiA+IHBpw6FvOyAjN0FDMgor56uDID4gesOgbzsgIzdBQzMKK+erhCA+IGN1w6BuOyAjN0FDNAor56uFID4gcWnDoG87ICM3QUM1Civnq4YgPiBxw61vbmc7ICM3QUM2Civnq4cgPiBkw7J1OyAjN0FDNwor56uIID4gesOgbzsgIzdBQzgKK+eriSA+IGzFj25nOyAjN0FDOQor56uKID4gcWnDqDsgIzdBQ0EKK+eriyA+IGzDrDsgIzdBQ0IKK+erjCA+IGNow7k7ICM3QUNDCivnq40gPiBzaMOtJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUNECivnq44gPiBmw7J1OyAjN0FDRQor56uPID4gcWnEgW4nICdnxY1uZycgJ3NoxJNuZzsgIzdBQ0YKK+erkCA+IGNow7k7ICM3QUQwCivnq5EgPiBow7NuZzsgIzdBRDEKK+erkiA+IHHDrTsgIzdBRDIKK+erkyA+IHFpxIFuJyAnZsSTbicgJ3poxKsnICd5xKsnICdnxY1uZycgJ3NoxJNuZzsgIzdBRDMKK+erlCA+IGfFjW5nJyAnc2jEk25nOyAjN0FENAor56uVID4gc2jDrScgJ2bEk24nICd6aMSrJyAnecSrJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUQ1Civnq5YgPiBzaMO5OyAjN0FENgor56uXID4gbWnDoG87ICM3QUQ3Civnq5ggPiBqxa07ICM3QUQ4Civnq5kgPiB6aMOgbjsgIzdBRDkKK+ermiA+IHpow7k7ICM3QURBCivnq5sgPiBsw61uZzsgIzdBREIKK+ernCA+IGzDs25nOyAjN0FEQwor56udID4gYsOsbmc7ICM3QURECivnq54gPiBqw6xuZzsgIzdBREUKK+ernyA+IGrDrG5nOyAjN0FERgor56ugID4gemjEgW5nOyAjN0FFMAor56uhID4gecSrJyAnZ8WNbmcnICdzaMSTbmcnICdkZScgJ3nEqycgJ2LEg2knICdiw6hpOyAjN0FFMQor56uiID4gc8OsOyAjN0FFMgor56ujID4gasO5bjsgIzdBRTMKK+erpCA+IGjDs25nOyAjN0FFNAor56ulID4gdMOzbmc7ICM3QUU1Civnq6YgPiBzxY9uZzsgIzdBRTYKK+erpyA+IGrDrG5nOyAjN0FFNwor56uoID4gZGnDoG87ICM3QUU4Civnq6kgPiB5w6w7ICM3QUU5Civnq6ogPiBzaMO5OyAjN0FFQQor56urID4gasOsbmc7ICM3QUVCCivnq6wgPiBxxa07ICM3QUVDCivnq60gPiBqacOpOyAjN0FFRAor56uuID4gcMOtbmc7ICM3QUVFCivnq68gPiBkdcSBbjsgIzdBRUYKK+ersCA+IHNow6FvOyAjN0FGMAor56uxID4gemh1xINuOyAjN0FGMQor56uyID4gY8Opbmc7ICM3QUYyCivnq7MgPiBkxJNuZzsgIzdBRjMKK+ertCA+IGPFq2k7ICM3QUY0Civnq7UgPiBodcSBaTsgIzdBRjUKK+ertiA+IGrDrG5nOyAjN0FGNgor56u3ID4ga8OgbjsgIzdBRjcKK+eruCA+IGrDrG5nOyAjN0FGOAor56u5ID4gemjDujsgIzdBRjkKK+eruiA+IHpow7o7ICM3QUZBCivnq7sgPiBsw6g7ICM3QUZCCivnq7wgPiBww6luZzsgIzdBRkMKK+ervSA+IHnDujsgIzdBRkQKK+erviA+IGNow607ICM3QUZFCivnq78gPiBnxIFuOyAjN0FGRgor56yAID4gbcOhbmc7ICM3QjAwCivnrIEgPiB6aMO6OyAjN0IwMQor56yDID4gZMWtOyAjN0IwMwor56yEID4gasSrOyAjN0IwNAor56yFID4geGnDoW87ICM3QjA1CivnrIYgPiBixIE7ICM3QjA2CivnrIcgPiBzdcOgbjsgIzdCMDcKK+esiCA+IGrDrTsgIzdCMDgKK+esiSA+IHpoxJVuOyAjN0IwOQor56yKID4gemjDoG87ICM3QjBBCivnrIsgPiBzxa1uOyAjN0IwQgor56yMID4gecOhOyAjN0IwQwor56yNID4gemjDuWk7ICM3QjBECivnrI4gPiB5dcOhbjsgIzdCMEUKK+esjyA+IGjDuTsgIzdCMEYKK+eskCA+IGfEgW5nOyAjN0IxMAor56yRID4geGnDoG87ICM3QjExCivnrJIgPiBjw6luOyAjN0IxMgor56yTID4gcMOtOyAjN0IxMwor56yUID4gYsStOyAjN0IxNAor56yVID4gamnEg247ICM3QjE1CivnrJYgPiB5xK07ICM3QjE2CivnrJcgPiBkxY1uZzsgIzdCMTcKK+esmCA+IHNoxIFuOyAjN0IxOAor56yZID4gc2jEk25nOyAjN0IxOQor56yaID4geGnDoTsgIzdCMUEKK+esmyA+IGTDrTsgIzdCMUIKK+esnCA+IHpow7o7ICM3QjFDCivnrJ0gPiBuw6A7ICM3QjFECivnrJ4gPiBjaMSrOyAjN0IxRQor56yfID4gZ8WrOyAjN0IxRgor56ygID4gbMOsOyAjN0IyMAor56yhID4gcWnDqDsgIzdCMjEKK+esoiA+IG3ErW47ICM3QjIyCivnrKMgPiBixIFvOyAjN0IyMwor56ykID4gdGnDoW87ICM3QjI0CivnrKUgPiBzw6w7ICM3QjI1CivnrKYgPiBmw7o7ICM3QjI2CivnrKcgPiBjw6g7ICM3QjI3CivnrKggPiBiw6huOyAjN0IyOAor56ypID4gcMOoaTsgIzdCMjkKK+esqiA+IGTDoTsgIzdCMkEKK+esqyA+IHrErTsgIzdCMkIKK+esrCA+IGTDrDsgIzdCMkMKK+esrSA+IGzDrW5nOyAjN0IyRAor56yuID4gesOpOyAjN0IyRQor56yvID4gbsO6OyAjN0IyRgor56ywID4gZsO6OyAjN0IzMAor56yxID4gZ8WPdTsgIzdCMzEKK+essiA+IGbEgW47ICM3QjMyCivnrLMgPiBqacSBOyAjN0IzMwor56y0ID4gZ8SVOyAjN0IzNAor56y1ID4gZsOgbjsgIzdCMzUKK+estiA+IHNoxK07ICM3QjM2CivnrLcgPiBtxINvOyAjN0IzNwor56y4ID4gcMWPOyAjN0IzOAor56y6ID4gamnEgW47ICM3QjNBCivnrLsgPiBxw61vbmc7ICM3QjNCCivnrLwgPiBsw7NuZzsgIzdCM0MKK+esviA+IGJpxIFuOyAjN0IzRQor56y/ID4gbMO5bzsgIzdCM0YKK+etgCA+IGfDuWk7ICM3QjQwCivnrYEgPiBxxa07ICM3QjQxCivnrYIgPiBjaMOtOyAjN0I0Mgor562DID4gecSrbjsgIzdCNDMKK+ethCA+IHnDoG87ICM3QjQ0CivnrYUgPiB4acSDbjsgIzdCNDUKK+ethiA+IGLErTsgIzdCNDYKK+ethyA+IHHDrW9uZzsgIzdCNDcKK+etiCA+IGd1xIE7ICM3QjQ4CivnrYkgPiBkxJVuZzsgIzdCNDkKK+etiiA+IGppxINvOyAjN0I0QQor562LID4gasSrbjsgIzdCNEIKK+etjCA+IHF1w6FuOyAjN0I0Qwor562NID4gc8WtbjsgIzdCNEQKK+etjiA+IHLDujsgIzdCNEUKK+etjyA+IGbDoTsgIzdCNEYKK+etkCA+IGt1xIFuZzsgIzdCNTAKK+etkSA+IHpow7o7ICM3QjUxCivnrZIgPiB0xY9uZzsgIzdCNTIKK+etkyA+IGrEqzsgIzdCNTMKK+etlCA+IGTDoTsgIzdCNTQKK+etlSA+IHjDrW5nOyAjN0I1NQor562WID4gY8OoOyAjN0I1Ngor562XID4gemjDsm5nOyAjN0I1Nwor562YID4ga8OydTsgIzdCNTgKK+etmSA+IGzDoWk7ICM3QjU5CivnrZogPiBiw6w7ICM3QjVBCivnrZsgPiBzaMSBaTsgIzdCNUIKK+etnCA+IGTEgW5nOyAjN0I1Qwor562dID4gemjEk25nOyAjN0I1RAor562eID4gY8OoOyAjN0I1RQor562fID4gZsWrOyAjN0I1Rgor562gID4gecO6bjsgIzdCNjAKK+etoSA+IHTDujsgIzdCNjEKK+etoiA+IHDDoTsgIzdCNjIKK+etoyA+IGzDrDsgIzdCNjMKK+etpCA+IGzDoW5nOyAjN0I2NAor562lID4gasWtOyAjN0I2NQor562mID4gZ3XEg247ICM3QjY2CivnracgPiBqacSDbjsgIzdCNjcKK+etqCA+IGjDoW47ICM3QjY4CivnrakgPiB0w7NuZzsgIzdCNjkKK+etqiA+IHhpw6E7ICM3QjZBCivnrasgPiB6aMOsOyAjN0I2Qgor562sID4gY2jDqW5nOyAjN0I2Qwor562tID4gc3XDoG47ICM3QjZECivnra4gPiBzaMOsOyAjN0I2RQor562vID4gemjDuTsgIzdCNkYKK+etsCA+IHrDum87ICM3QjcwCivnrbEgPiB4acSDbzsgIzdCNzEKK+etsiA+IHNoxIFvOyAjN0I3Mgor562zID4gdMOtbmc7ICM3QjczCivnrbQgPiBjw6g7ICM3Qjc0CivnrbUgPiB5w6FuOyAjN0I3NQor5622ID4gZ8SDbzsgIzdCNzYKK+ettyA+IGt1w6BpOyAjN0I3Nwor5624ID4gZ8SBbjsgIzdCNzgKK+etuSA+IGNow7N1OyAjN0I3OQor5627ID4gZ8Ogbmc7ICM3QjdCCivnrbwgPiB5w7puOyAjN0I3Qwor562+ID4gcWnEgW47ICM3QjdFCivnrb8gPiB4acSDbzsgIzdCN0YKK+eugCA+IGppxINuOyAjN0I4MAor566BID4gcMO6OyAjN0I4MQor566CID4gbMOhaTsgIzdCODIKK+eugyA+IHrFjXU7ICM3QjgzCivnroQgPiBiw6w7ICM3Qjg0CivnroUgPiBiw6w7ICM3Qjg1CivnroYgPiBiw6w7ICM3Qjg2CivnrocgPiBnw6g7ICM3Qjg3CivnroggPiBjaMOtOyAjN0I4OAor566JID4gZ3XEg2k7ICM3Qjg5CivnroogPiB5xas7ICM3QjhBCivnrosgPiBqacSBbjsgIzdCOEIKK+eujCA+IHpow6BvOyAjN0I4Qwor566NID4gZ8WrOyAjN0I4RAor566OID4gY2jDrTsgIzdCOEUKK+eujyA+IHpoxJNuZzsgIzdCOEYKK+eukCA+IGrEq25nOyAjN0I5MAor566RID4gc2jDoDsgIzdCOTEKK+eukiA+IHpoxY91OyAjN0I5Mgor566TID4gbMO5OyAjN0I5Mwor566UID4gYsOzOyAjN0I5NAor566VID4gasSrOyAjN0I5NQor566WID4gbMOtbjsgIzdCOTYKK+eulyA+IHN1w6BuOyAjN0I5Nwor566YID4gasO5bjsgIzdCOTgKK+eumSA+IGbDujsgIzdCOTkKK+eumiA+IHpow6E7ICM3QjlBCivnrpsgPiBnxas7ICM3QjlCCivnrpwgPiBrxY1uZzsgIzdCOUMKK+eunSA+IHFpw6FuOyAjN0I5RAor566eID4gcXXEgW47ICM3QjlFCivnrp8gPiBqw7luOyAjN0I5Rgor566gID4gY2jDumk7ICM3QkEwCivnrqEgPiBndcSDbjsgIzdCQTEKK+euoiA+IHl1xIFuOyAjN0JBMgor566jID4gY8OoOyAjN0JBMwor566kID4gasO6OyAjN0JBNAor566lID4gYsWPOyAjN0JBNQor566mID4gesOpOyAjN0JBNgor566nID4gcWnDqDsgIzdCQTcKK+euqCA+IHTDuW87ICM3QkE4CivnrqkgPiBsw7pvOyAjN0JBOQor566qID4gZMSBbjsgIzdCQUEKK+euqyA+IHhpxIFvOyAjN0JBQgor566sID4gcsO5bzsgIzdCQUMKK+eurSA+IGppw6BuOyAjN0JBRAor566uID4geHVhbjsgIzdCQUUKK+euryA+IGJpxIFuOyAjN0JBRgor566wID4gc8WtbjsgIzdCQjAKK+eusSA+IHhpxIFuZzsgIzdCQjEKK+eusiA+IHhpxINuOyAjN0JCMgor566zID4gcMOtbmc7ICM3QkIzCivnrrQgPiB6aMSTbjsgIzdCQjQKK+eutSA+IHNoxJVuZzsgIzdCQjUKK+eutiA+IGjDujsgIzdCQjYKK+eutyA+IHNoxKs7ICM3QkI3CivnrrggPiB6aMO5OyAjN0JCOAor5665ID4geXXEkzsgIzdCQjkKK+euuiA+IGNoxa1uOyAjN0JCQQor5667ID4gbMecOyAjN0JCQgor5668ID4gd8WrOyAjN0JCQwor5669ID4gZMWPbmc7ICM3QkJECivnrr4gPiB4acSBbzsgIzdCQkUKK+euvyA+IGrDrTsgIzdCQkYKK+evgCA+IGppw6k7ICM3QkMwCivnr4EgPiBodcOhbmc7ICM3QkMxCivnr4IgPiB4xKtuZzsgIzdCQzIKK+evgyA+IG3DqWk7ICM3QkMzCivnr4QgPiBmw6BuOyAjN0JDNAor56+FID4gY2jDumk7ICM3QkM1Civnr4YgPiB6aHXDoG47ICM3QkM2Civnr4cgPiBwacSBbjsgIzdCQzcKK+eviCA+IGbEk25nOyAjN0JDOAor56+JID4gemjDujsgIzdCQzkKK+eviiA+IGjDs25nOyAjN0JDQQor56+LID4gcWnDqDsgIzdCQ0IKK+evjCA+IGjDs3U7ICM3QkNDCivnr40gPiBxxKt1OyAjN0JDRAor56+OID4gbWnEg287ICM3QkNFCivnr48gPiBxacOgbjsgIzdCQ0YKK+evkSA+IGvDuWk7ICM3QkQxCivnr5MgPiBsxY91OyAjN0JEMwor56+UID4gecO6bjsgIzdCRDQKK+evlSA+IGjDqTsgIzdCRDUKK+evliA+IHTDoW5nOyAjN0JENgor56+XID4geXXDqDsgIzdCRDcKK+evmCA+IGNoxY11OyAjN0JEOAor56+ZID4gZ8SBbzsgIzdCRDkKK+evmiA+IGbElWk7ICM3QkRBCivnr5sgPiByw7lvOyAjN0JEQgor56+cID4gemjEk25nOyAjN0JEQwor56+dID4gZ8WNdTsgIzdCREQKK+evniA+IG5pw6g7ICM3QkRFCivnr58gPiBxacOgbjsgIzdCREYKK+evoCA+IHhpxINvOyAjN0JFMAor56+hID4gY3XDoG47ICM3QkUxCivnr6IgPiBnxY1uZzsgIzdCRTIKK+evoyA+IHDDoW5nOyAjN0JFMwor56+kID4gZMWtOyAjN0JFNAor56+lID4gbMOsOyAjN0JFNQor56+mID4gYsOsOyAjN0JFNgor56+nID4gemjDum87ICM3QkU3Civnr6ggPiBjaMO6OyAjN0JFOAor56+pID4gc2jEgWk7ICM3QkU5Civnr6ogPiBjaMOtOyAjN0JFQQor56+rID4gemjDujsgIzdCRUIKK+evrCA+IHFpxIFuZzsgIzdCRUMKK+evrSA+IGzDs25nOyAjN0JFRAor56+uID4gbMOhbjsgIzdCRUUKK+evryA+IGppxIFuOyAjN0JFRgor56+wID4gYsO5OyAjN0JGMAor56+xID4gbMOtOyAjN0JGMQor56+yID4gaMO5aTsgIzdCRjIKK+evsyA+IGLDrDsgIzdCRjMKK+evtCA+IGTDrTsgIzdCRjQKK+evtSA+IGPFjW5nOyAjN0JGNQor56+2ID4gecSBbjsgIzdCRjYKK+evtyA+IHDDqW5nOyAjN0JGNwor56+4ID4gc8STbjsgIzdCRjgKK+evuSA+IHpodcOgbjsgIzdCRjkKK+evuiA+IHDDoWk7ICM3QkZBCivnr7sgPiBwacOgbzsgIzdCRkIKK+evvCA+IGTFjXU7ICM3QkZDCivnr70gPiB5xa07ICM3QkZECivnr74gPiBtacOoOyAjN0JGRQor56+/ID4gemh1xIFuOyAjN0JGRgor57CAID4gesOpOyAjN0MwMAor57CBID4geMStOyAjN0MwMQor57CCID4gZ8O6bzsgIzdDMDIKK+ewgyA+IHnDrTsgIzdDMDMKK+ewhCA+IGjDuTsgIzdDMDQKK+ewhSA+IGNoxINuOyAjN0MwNQor57CGID4ga8OydTsgIzdDMDYKK+ewhyA+IGPDuTsgIzdDMDcKK+ewiCA+IHDDrW5nOyAjN0MwOAor57CJID4gY2jDsnU7ICM3QzA5CivnsIogPiBqxKs7ICM3QzBBCivnsIsgPiBnxa1pOyAjN0MwQgor57CMID4gc8O5OyAjN0MwQwor57CNID4gbMWPdTsgIzdDMEQKK+ewjiA+IHpow6A7ICM3QzBFCivnsI8gPiBsw7k7ICM3QzBGCivnsJAgPiBuacSDbjsgIzdDMTAKK+ewkSA+IHPFq287ICM3QzExCivnsJIgPiBjdcOgbjsgIzdDMTIKK+ewlCA+IHPFq287ICM3QzE0CivnsJUgPiBsw6g7ICM3QzE1CivnsJYgPiBkdcOgbjsgIzdDMTYKK+ewmCA+IHhpxIFvOyAjN0MxOAor57CZID4gYsOzOyAjN0MxOQor57CaID4gbcOsOyAjN0MxQQor57CbID4gc8SrOyAjN0MxQgor57CcID4gZMOgbmc7ICM3QzFDCivnsJ0gPiBsacOhbzsgIzdDMUQKK+ewniA+IGTEgW47ICM3QzFFCivnsJ8gPiBkacOgbjsgIzdDMUYKK+ewoCA+IGbFrTsgIzdDMjAKK+ewoSA+IGppxINuOyAjN0MyMQor57CiID4gbcStbjsgIzdDMjIKK+ewoyA+IGvDuWk7ICM3QzIzCivnsKQgPiBkw6BpOyAjN0MyNAor57ClID4gcWnDoW87ICM3QzI1CivnsKYgPiBkxJNuZzsgIzdDMjYKK+ewpyA+IGh1w6FuZzsgIzdDMjcKK+ewqCA+IHPFrW47ICM3QzI4CivnsKkgPiBsw6FvOyAjN0MyOQor57CqID4gesSBbjsgIzdDMkEKK+ewqyA+IHhpxIFvOyAjN0MyQgor57CsID4gZMO5OyAjN0MyQwor57CtID4gc2jDrDsgIzdDMkQKK+ewriA+IHrEgW47ICM3QzJFCivnsLAgPiBww6FpOyAjN0MzMAor57CyID4gcMOhaTsgIzdDMzIKK+ewsyA+IGfDoG47ICM3QzMzCivnsLQgPiBqw7k7ICM3QzM0CivnsLUgPiBkw7k7ICM3QzM1CivnsLYgPiBsw7k7ICM3QzM2CivnsLcgPiB5w6FuOyAjN0MzNwor57C4ID4gYsOyOyAjN0MzOAor57C5ID4gZMSBbmc7ICM3QzM5CivnsLogPiBzw6BpOyAjN0MzQQor57C7ID4ga8STOyAjN0MzQgor57C8ID4gbMOzbmc7ICM3QzNDCivnsL0gPiBxacSBbjsgIzdDM0QKK+ewviA+IGxpw6FuOyAjN0MzRQor57C/ID4gYsOzOyAjN0MzRgor57GAID4gemjDsnU7ICM3QzQwCivnsYEgPiBsw6BpOyAjN0M0MQor57GDID4gbMOhbjsgIzdDNDMKK+exhCA+IGvDuWk7ICM3QzQ0CivnsYUgPiB5w7o7ICM3QzQ1CivnsYYgPiB5dcOoOyAjN0M0Ngor57GHID4gaMOhbzsgIzdDNDcKK+exiCA+IHpoxJNuOyAjN0M0OAor57GJID4gdMOhaTsgIzdDNDkKK+exiiA+IHTDrDsgIzdDNEEKK+exiyA+IG3DrTsgIzdDNEIKK+exjCA+IGNow7N1OyAjN0M0Qwor57GNID4gasOtOyAjN0M0RAor57GQID4gdMOpbmc7ICM3QzUwCivnsZEgPiB6aHXDoG47ICM3QzUxCivnsZIgPiB6aMOydTsgIzdDNTIKK+exkyA+IGbEgW47ICM3QzUzCivnsZQgPiBzxY91OyAjN0M1NAor57GVID4gemjDsnU7ICM3QzU1CivnsZcgPiB6aMO6bzsgIzdDNTcKK+exmCA+IHTDqW5nOyAjN0M1OAor57GZID4gbMO5OyAjN0M1OQor57GaID4gbMO6OyAjN0M1QQor57GbID4gamnEgW47ICM3QzVCCivnsZwgPiB0w7lvOyAjN0M1Qwor57GdID4gecOtbmc7ICM3QzVECivnsZ4gPiB5w7k7ICM3QzVFCivnsZ8gPiBsw6BpOyAjN0M1Rgor57GgID4gbMOzbmc7ICM3QzYwCivnsaIgPiBsacOhbjsgIzdDNjIKK+exoyA+IGzDoW47ICM3QzYzCivnsaQgPiBxacSBbjsgIzdDNjQKK+expSA+IHl1w6g7ICM3QzY1CivnsaYgPiB6aMWNbmc7ICM3QzY2CivnsacgPiBxw7o7ICM3QzY3CivnsaggPiBsacOhbjsgIzdDNjgKK+exqSA+IGJpxIFuOyAjN0M2OQor57GqID4gZHXDoG47ICM3QzZBCivnsasgPiB6dcSDbjsgIzdDNkIKK+exrCA+IGzDrTsgIzdDNkMKK+exrSA+IHPEqzsgIzdDNkQKK+exriA+IGzDum87ICM3QzZFCivnsa8gPiB5w61uZzsgIzdDNkYKK+exsCA+IHl1w6g7ICM3QzcwCivnsbEgPiB6aMO6bzsgIzdDNzEKK+exsiA+IHjFqzsgIzdDNzIKK+exsyA+IG3ErTsgIzdDNzMKK+extCA+IGTDrTsgIzdDNzQKK+extSA+IGbDoW47ICM3Qzc1CivnsbYgPiBzaMSTbjsgIzdDNzYKK+extyA+IHpow6k7ICM3Qzc3CivnsbggPiBzaMSTbjsgIzdDNzgKK+exuSA+IG7HmjsgIzdDNzkKK+exuiA+IHhpw6k7ICM3QzdBCivnsbsgPiBsw6hpOyAjN0M3Qgor57G8ID4geGnEgW47ICM3QzdDCivnsb0gPiB6xK07ICM3QzdECivnsb4gPiBuw607ICM3QzdFCivnsb8gPiBjw7luOyAjN0M3Rgor57KBID4gcWnEgW47ICM3QzgxCivnsoMgPiBixK07ICM3QzgzCivnsoQgPiBixINuOyAjN0M4NAor57KFID4gd8O5OyAjN0M4NQor57KGID4gc2jEgTsgIzdDODYKK+eyhyA+IGvEgW5nOyAjN0M4Nwor57KIID4gcsWPdTsgIzdDODgKK+eyiSA+IGbElW47ICM3Qzg5CivnsoogPiBiw6w7ICM3QzhBCivnsosgPiBjw7lpOyAjN0M4Qgor57KNID4gbMOtOyAjN0M4RAor57KOID4gY2jErTsgIzdDOEUKK+eykSA+IGLEgTsgIzdDOTEKK+eykiA+IGzDrDsgIzdDOTIKK+eykyA+IGfEgW47ICM3QzkzCivnspQgPiBqw7k7ICM3Qzk0CivnspUgPiBww7I7ICM3Qzk1CivnspYgPiBtw7I7ICM3Qzk2CivnspcgPiBjxas7ICM3Qzk3CivnspggPiBuacOhbjsgIzdDOTgKK+eymSA+IHpow7J1OyAjN0M5OQor57KaID4gbMOtOyAjN0M5QQor57KbID4gc8O5OyAjN0M5Qgor57KcID4gdGnDoG87ICM3QzlDCivnsp0gPiBsw6w7ICM3QzlECivnsp4gPiBxxKs7ICM3QzlFCivnsp8gPiBzw7k7ICM3QzlGCivnsqAgPiBow7NuZzsgIzdDQTAKK+eyoSA+IHTDs25nOyAjN0NBMQor57KiID4gesSrOyAjN0NBMgor57KjID4gY8OoOyAjN0NBMwor57KkID4geXXDqDsgIzdDQTQKK+eypSA+IHpoxY11OyAjN0NBNQor57KmID4gbMOsbjsgIzdDQTYKK+eypyA+IHpodcSBbmc7ICM3Q0E3CivnsqggPiBixINpOyAjN0NBOAor57KqID4gZsOobjsgIzdDQUEKK+eyriA+IGxpw6FuZzsgIzdDQUUKK+eyryA+IHhpw6BuOyAjN0NBRgor57KwID4gZsO6OyAjN0NCMAor57KxID4gbGnDoW5nOyAjN0NCMQor57KyID4gY8OgbjsgIzdDQjIKK+eysyA+IGfEk25nOyAjN0NCMwor57K0ID4gbMStOyAjN0NCNAor57K1ID4geXXDqDsgIzdDQjUKK+eytiA+IGzDuTsgIzdDQjYKK+eytyA+IGrDujsgIzdDQjcKK+eyuCA+IHHDrTsgIzdDQjgKK+eyuSA+IGPDuWk7ICM3Q0I5CivnsrogPiBiw6BpOyAjN0NCQQor57K7ID4gemjEgW5nOyAjN0NCQgor57K8ID4gbMOtbjsgIzdDQkMKK+eyvSA+IHrDsm5nOyAjN0NCRAor57K+ID4gasSrbmc7ICM3Q0JFCivnsr8gPiBnxa1vOyAjN0NCRgor57OBID4gc8SBbjsgIzdDQzEKK+ezgiA+IHPEg247ICM3Q0MyCivns4MgPiB0w6FuZzsgIzdDQzMKK+ezhCA+IGJpxIFuOyAjN0NDNAor57OFID4gcsWPdTsgIzdDQzUKK+ezhiA+IG1pw6BuOyAjN0NDNgor57OHID4gaMOzdTsgIzdDQzcKK+eziCA+IHjFrTsgIzdDQzgKK+eziSA+IHrDsm5nOyAjN0NDOQor57OKID4gaMO6OyAjN0NDQQor57OLID4gamnDoG47ICM3Q0NCCivns4wgPiB6w6FuOyAjN0NDQwor57ONID4gY8OtOyAjN0NDRAor57OOID4gbMOtOyAjN0NDRQor57OPID4geGnDqDsgIzdDQ0YKK+ezkCA+IGbFqzsgIzdDRDAKK+ezkSA+IG7DrDsgIzdDRDEKK+ezkiA+IGLDqGk7ICM3Q0QyCivns5MgPiBnxa07ICM3Q0QzCivns5QgPiB4xK11OyAjN0NENAor57OVID4gZ8SBbzsgIzdDRDUKK+ezliA+IHTDoW5nOyAjN0NENgor57OXID4gccStdTsgIzdDRDcKK+ezmSA+IGPEgW87ICM3Q0Q5Civns5ogPiB6aHXEgW5nOyAjN0NEQQor57ObID4gdMOhbmc7ICM3Q0RCCivns5wgPiBtw607ICM3Q0RDCivns50gPiBzxIFuOyAjN0NERAor57OeID4gZsOobjsgIzdDREUKK+eznyA+IHrEgW87ICM3Q0RGCivns6AgPiBrxIFuZzsgIzdDRTAKK+ezoSA+IGppw6BuZzsgIzdDRTEKK+ezoiA+IG3DszsgIzdDRTIKK+ezoyA+IHPEg247ICM3Q0UzCivns6QgPiBzxINuOyAjN0NFNAor57OlID4gbsO5bzsgIzdDRTUKK+ezpiA+IHjEqzsgIzdDRTYKK+ezpyA+IGxpw6FuZzsgIzdDRTcKK+ezqCA+IGppw6BuZzsgIzdDRTgKK+ezqSA+IGt1w6BpOyAjN0NFOQor57OqID4gYsOzOyAjN0NFQQor57OrID4gaHXDoW47ICM3Q0VCCivns60gPiB6w7JuZzsgIzdDRUQKK+ezriA+IHhpw6BuOyAjN0NFRQor57OvID4gbsO5bzsgIzdDRUYKK+ezsCA+IHR1w6FuOyAjN0NGMAor57OxID4gbmnDqDsgIzdDRjEKK+ezsiA+IGzDrDsgIzdDRjIKK+ezsyA+IHrDuW87ICM3Q0YzCivns7QgPiBkw607ICM3Q0Y0Civns7UgPiBuacOoOyAjN0NGNQor57O2ID4gdGnDoG87ICM3Q0Y2Civns7cgPiBsw6FuOyAjN0NGNwor57O4ID4gbcOsOyAjN0NGOAor57O5ID4gamnEg28nICdzxKsnICdww6FuZzsgIzdDRjkKK+ezuiA+IGrEq3U7ICM3Q0ZBCivns7sgPiB4w6w7ICM3Q0ZCCivns7wgPiBnxY1uZzsgIzdDRkMKK+ezvSA+IHpoxJVuZzsgIzdDRkQKK+ezviA+IGrEq3U7ICM3Q0ZFCivns78gPiB5w7J1OyAjN0NGRgor57SAID4gasOsOyAjN0QwMAor57SBID4gY2jDoDsgIzdEMDEKK+e0giA+IHpow7J1OyAjN0QwMgor57SDID4geMO6bjsgIzdEMDMKK+e0hCA+IHl1xJM7ICM3RDA0CivntIUgPiBow7NuZzsgIzdEMDUKK+e0hiA+IHnFqzsgIzdEMDYKK+e0hyA+IGjDqTsgIzdEMDcKK+e0iCA+IHfDoW47ICM3RDA4CivntIkgPiByw6huOyAjN0QwOQor57SKID4gd8OobjsgIzdEMEEKK+e0iyA+IHfDqW47ICM3RDBCCivntIwgPiBxw611OyAjN0QwQwor57SNID4gbsOgOyAjN0QwRAor57SOID4gesSrOyAjN0QwRQor57SPID4gdMWPdTsgIzdEMEYKK+e0kCA+IG7ErXU7ICM3RDEwCivntJEgPiBmw7N1OyAjN0QxMQor57SSID4gamnDqDsgIzdEMTIKK+e0kyA+IHNoxas7ICM3RDEzCivntJQgPiBjaMO6bjsgIzdEMTQKK+e0lSA+IHDDrTsgIzdEMTUKK+e0liA+IHnErW47ICM3RDE2CivntJcgPiBzaMSBOyAjN0QxNwor57SYID4gaMOzbmc7ICM3RDE4CivntJkgPiB6aMStOyAjN0QxOQor57SaID4gasOtOyAjN0QxQQor57SbID4gZsSTbjsgIzdEMUIKK+e0nCA+IHnDum47ICM3RDFDCivntJ0gPiByw6luOyAjN0QxRAor57SeID4gZMSDbjsgIzdEMUUKK+e0nyA+IGrEq247ICM3RDFGCivntKAgPiBzw7k7ICM3RDIwCivntKEgPiBmxINuZzsgIzdEMjEKK+e0oiA+IHPFrW87ICM3RDIyCivntKMgPiBjw7lpOyAjN0QyMwor57SkID4gasStdTsgIzdEMjQKK+e0pSA+IHpow6E7ICM3RDI1CivntKcgPiBqxK1uOyAjN0QyNwor57SoID4gZsO5OyAjN0QyOAor57SpID4gemjDrDsgIzdEMjkKK+e0qiA+IGPErTsgIzdEMkEKK+e0qyA+IHrErTsgIzdEMkIKK+e0rCA+IGNow7N1OyAjN0QyQwor57StID4gaMOzbmc7ICM3RDJECivntK4gPiB6aMOhOyAjN0QyRQor57SvID4gbMOoaTsgIzdEMkYKK+e0sCA+IHjDrDsgIzdEMzAKK+e0sSA+IGbDujsgIzdEMzEKK+e0siA+IHhpw6g7ICM3RDMyCivntLMgPiBzaMSTbjsgIzdEMzMKK+e0tCA+IGLDqGk7ICM3RDM0CivntLUgPiB6aMO5OyAjN0QzNQor57S2ID4gccWtOyAjN0QzNgor57S3ID4gbMOtbmc7ICM3RDM3CivntLggPiB6aMO5OyAjN0QzOAor57S5ID4gc2jDoG87ICM3RDM5CivntLogPiBnw6BuOyAjN0QzQQor57S7ID4gecSBbmc7ICM3RDNCCivntLwgPiBmw7o7ICM3RDNDCivntL0gPiB0w7pvOyAjN0QzRAor57S+ID4gemjElW47ICM3RDNFCivntL8gPiBkw6BpOyAjN0QzRgor57WAID4gemjDum87ICM3RDQwCivntYEgPiBzaMSrOyAjN0Q0MQor57WCID4gemjFjW5nOyAjN0Q0Mgor57WDID4geGnDoW47ICM3RDQzCivntYQgPiB6xa07ICM3RDQ0CivntYUgPiBqxK1vbmc7ICM3RDQ1CivntYYgPiBiw6BuOyAjN0Q0Ngor57WHID4gasO5OyAjN0Q0Nwor57WIID4gbcOyOyAjN0Q0OAor57WJID4gc2jDuTsgIzdENDkKK+e1iiA+IHrDuWk7ICM3RDRBCivntYwgPiBqxKtuZzsgIzdENEMKK+e1jSA+IHLDqW47ICM3RDRECivntY4gPiBow6huZzsgIzdENEUKK+e1jyA+IHhpw6g7ICM3RDRGCivntZAgPiBqacOpOyAjN0Q1MAor57WRID4gemjFqzsgIzdENTEKK+e1kiA+IGNow7N1OyAjN0Q1Mgor57WTID4gZ3XDoDsgIzdENTMKK+e1lCA+IGLEg2k7ICM3RDU0CivntZUgPiBqdcOpOyAjN0Q1NQor57WWID4ga3XDoG5nOyAjN0Q1Ngor57WXID4gaMO6OyAjN0Q1Nwor57WYID4gY8OsOyAjN0Q1OAor57WZID4gZ8STbmc7ICM3RDU5CivntZogPiBnxJNuZzsgIzdENUEKK+e1myA+IHTEgW87ICM3RDVCCivntZwgPiB4acOpOyAjN0Q1Qwor57WdID4ga8O5OyAjN0Q1RAor57WeID4gamnEg287ICM3RDVFCivntZ8gPiBxdcSBbjsgIzdENUYKK+e1oCA+IGfEg2k7ICM3RDYwCivntaEgPiBsw7lvOyAjN0Q2MQor57WiID4geHXDoG47ICM3RDYyCivntaMgPiBixKtuZzsgIzdENjMKK+e1pCA+IHhpw6BuOyAjN0Q2NAor57WlID4gZsO6OyAjN0Q2NQor57WmID4gZ8SVaTsgIzdENjYKK+e1pyA+IHTDs25nOyAjN0Q2Nwor57WoID4gcsOzbmc7ICM3RDY4CivntakgPiB0acOgbzsgIzdENjkKK+e1qiA+IHnEq247ICM3RDZBCivntasgPiBsxJVpOyAjN0Q2Qgor57WsID4geGnDqDsgIzdENkMKK+e1rSA+IHF1w6BuOyAjN0Q2RAor57WuID4geMO5OyAjN0Q2RQor57WvID4gbMecbjsgIzdENkYKK+e1sCA+IGRpw6k7ICM3RDcwCivntbEgPiB0xY9uZzsgIzdENzEKK+e1siA+IHPEqzsgIzdENzIKK+e1syA+IGppw6BuZzsgIzdENzMKK+e1tCA+IHhpw6FuZzsgIzdENzQKK+e1tSA+IGjDuWk7ICM3RDc1CivntbYgPiBqdcOpOyAjN0Q3Ngor57W3ID4gemjDrTsgIzdENzcKK+e1uCA+IGppxINuOyAjN0Q3OAor57W5ID4ganXDoG47ICM3RDc5CivntbogPiBjaMSrOyAjN0Q3QQor57W7ID4gbWnEg247ICM3RDdCCivntbwgPiB6aMSVbjsgIzdEN0MKK+e1vSA+IGzHmjsgIzdEN0QKK+e1viA+IGNow6luZzsgIzdEN0UKK+e1vyA+IHHDrXU7ICM3RDdGCivntoAgPiBzaMWrOyAjN0Q4MAor57aBID4gYsSDbmc7ICM3RDgxCivntoIgPiB0xY9uZzsgIzdEODIKK+e2gyA+IHhpxIFvOyAjN0Q4Mwor57aEID4gd8OgbjsgIzdEODQKK+e2hSA+IHHEq247ICM3RDg1CivntoYgPiBnxJVuZzsgIzdEODYKK+e2hyA+IHjErXU7ICM3RDg3CivntoggPiB0w607ICM3RDg4CivntokgPiB4w6x1OyAjN0Q4OQor57aKID4geGnDqTsgIzdEOEEKK+e2iyA+IGjDs25nOyAjN0Q4Qgor57aMID4geMOsOyAjN0Q4Qwor57aNID4gZsO6OyAjN0Q4RAor57aOID4gdMSrbmc7ICM3RDhFCivnto8gPiBzxatpOyAjN0Q4Rgor57aQID4gZMO5aTsgIzdEOTAKK+e2kSA+IGvFrW47ICM3RDkxCivntpIgPiBmxas7ICM3RDkyCivntpMgPiBqxKtuZzsgIzdEOTMKK+e2lCA+IGjDuTsgIzdEOTQKK+e2lSA+IHpoxKs7ICM3RDk1CivntpYgPiB5w6FuOyAjN0Q5Ngor57aXID4gasStb25nOyAjN0Q5Nwor57aYID4gZsOpbmc7ICM3RDk4CivntpkgPiBqw6w7ICM3RDk5CivntpwgPiB6w7JuZzsgIzdEOUMKK+e2nSA+IGzDrW47ICM3RDlECivntp4gPiBkxa1vOyAjN0Q5RQor57afID4gbMOsOyAjN0Q5Rgor57agID4gbMecOyAjN0RBMAor57ahID4gbGnDoW5nOyAjN0RBMQor57aiID4gY2jDs3U7ICM3REEyCivntqMgPiBxdcSDbjsgIzdEQTMKK+e2pCA+IHNow6BvOyAjN0RBNAor57alID4gccOsOyAjN0RBNQor57amID4gccOtOyAjN0RBNgor57anID4gemjFrW47ICM3REE3CivntqggPiBxw607ICM3REE4CivntqkgPiB3xINuOyAjN0RBOQor57aqID4gcWnDoG47ICM3REFBCivntqsgPiB4acOgbjsgIzdEQUIKK+e2rCA+IHNow7J1OyAjN0RBQwor57atID4gd8OpaTsgIzdEQUQKK+e2riA+IHHErTsgIzdEQUUKK+e2ryA+IHTDoW87ICM3REFGCivntrAgPiB3xINuOyAjN0RCMAor57axID4gZ8SBbmc7ICM3REIxCivntrIgPiB3xINuZzsgIzdEQjIKK+e2syA+IGLEk25nOyAjN0RCMwor57a0ID4gemjDuWk7ICM3REI0CivntrUgPiBjxINpOyAjN0RCNQor57a2ID4gZ8WtbzsgIzdEQjYKK+e2tyA+IGPDuWk7ICM3REI3CivntrggPiBsw7puOyAjN0RCOAor57a5ID4gbMStdTsgIzdEQjkKK+e2uiA+IHHErTsgIzdEQkEKK+e2uyA+IHpow6BuOyAjN0RCQgor57a8ID4gYsSTaTsgIzdEQkMKK+e2vSA+IGNow7lvOyAjN0RCRAor57a+ID4gbMOtbmc7ICM3REJFCivntr8gPiBtacOhbjsgIzdEQkYKK+e3gCA+IHHEqzsgIzdEQzAKK+e3gSA+IHFpw6g7ICM3REMxCivnt4IgPiB0xIFuOyAjN0RDMgor57eDID4gesWNbmc7ICM3REMzCivnt4QgPiBnxa1uOyAjN0RDNAor57eFID4gesWNdTsgIzdEQzUKK+e3hiA+IHnDrDsgIzdEQzYKK+e3hyA+IHrEqzsgIzdEQzcKK+e3iCA+IHjDrG5nOyAjN0RDOAor57eJID4gbGnEg25nOyAjN0RDOQor57eKID4gasStbjsgIzdEQ0EKK+e3iyA+IGbEk2k7ICM3RENCCivnt4wgPiByw7ppOyAjN0RDQwor57eNID4gbcOtbjsgIzdEQ0QKK+e3jiA+IHnDuTsgIzdEQ0UKK+e3jyA+IHrFj25nOyAjN0RDRgor57eQID4gZsOhbjsgIzdERDAKK+e3kSA+IGzHnDsgIzdERDEKK+e3kiA+IHjDuTsgIzdERDIKK+e3kyA+IHlpbmdsOyAjN0REMwor57eUID4gemjDoG5nOyAjN0RENAor57eWID4geMO5OyAjN0RENgor57eXID4geGnEgW5nOyAjN0RENwor57eYID4gamnEgW47ICM3REQ4Civnt5kgPiBrw6g7ICM3REQ5Civnt5ogPiB4acOgbjsgIzdEREEKK+e3myA+IHJ1xINuOyAjN0REQgor57ecID4gbWnDoW47ICM3RERDCivnt50gPiBxw6w7ICM3RERECivnt54gPiBkdcOgbjsgIzdEREUKK+e3nyA+IHpow7JuZzsgIzdEREYKK+e3oCA+IGTDrDsgIzdERTAKK+e3oSA+IG3DrW47ICM3REUxCivnt6IgPiBtacOhbzsgIzdERTIKK+e3oyA+IHl1w6FuOyAjN0RFMwor57ekID4geGnDqDsgIzdERTQKK+e3pSA+IGLEg287ICM3REU1Civnt6YgPiBzxKs7ICM3REU2Civnt6cgPiBxxKt1OyAjN0RFNwor57eoID4gYmnEgW47ICM3REU4Civnt6kgPiBodcSDbjsgIzdERTkKK+e3qiA+IGfEk25nOyAjN0RFQQor57erID4gY8WNbmc7ICM3REVCCivnt6wgPiBtacSDbjsgIzdERUMKK+e3rSA+IHfDqGk7ICM3REVECivnt64gPiBmw7k7ICM3REVFCivnt68gPiB3xJVpOyAjN0RFRgor57ewID4gecO6OyAjN0RGMAor57exID4gZ8WNdTsgIzdERjEKK+e3siA+IG1pxINvOyAjN0RGMgor57ezID4geGnDqTsgIzdERjMKK+e3tCA+IGxpw6BuOyAjN0RGNAor57e1ID4gesWNbmc7ICM3REY1Civnt7YgPiBiacOgbjsgIzdERjYKK+e3tyA+IHnDuW47ICM3REY3Civnt7ggPiB5xKtuOyAjN0RGOAor57e5ID4gdMOtOyAjN0RGOQor57e6ID4gZ3XEgTsgIzdERkEKK+e3uyA+IHpow6w7ICM3REZCCivnt7wgPiB5xatuOyAjN0RGQwor57e9ID4gY2jEk25nOyAjN0RGRAor57e+ID4gY2jDoW47ICM3REZFCivnt78gPiBkw6BpOyAjN0RGRgor57iAID4geGnDoTsgIzdFMDAKK+e4gSA+IHl1w6FuOyAjN0UwMQor57iCID4gesWPbmc7ICM3RTAyCivnuIMgPiB4xas7ICM3RTAzCivnuIYgPiBnxJNuZzsgIzdFMDYKK+e4iCA+IHnDrW5nOyAjN0UwOAor57iJID4gasOsbjsgIzdFMDkKK+e4iiA+IHnDrDsgIzdFMEEKK+e4iyA+IHpow7lpOyAjN0UwQgor57iMID4gbsOsOyAjN0UwQwor57iNID4gYsSBbmc7ICM3RTBECivnuI4gPiBnxa07ICM3RTBFCivnuI8gPiBww6FuOyAjN0UwRgor57iQID4gemjDsnU7ICM3RTEwCivnuJEgPiBqacSBbjsgIzdFMTEKK+e4kiA+IGPFrW87ICM3RTEyCivnuJMgPiBxdcSDbjsgIzdFMTMKK+e4lCA+IHNodcSDbmc7ICM3RTE0CivnuJUgPiB5xatuOyAjN0UxNQor57iWID4geGnDoTsgIzdFMTYKK+e4lyA+IHNodcSBaTsgIzdFMTcKK+e4mCA+IHjEqzsgIzdFMTgKK+e4mSA+IHLDs25nOyAjN0UxOQor57iaID4gdMSBbzsgIzdFMUEKK+e4myA+IGbDujsgIzdFMUIKK+e4nCA+IHnDum47ICM3RTFDCivnuJ0gPiB6aMSTbjsgIzdFMUQKK+e4niA+IGfEg287ICM3RTFFCivnuJ8gPiByw7k7ICM3RTFGCivnuKAgPiBow7o7ICM3RTIwCivnuKEgPiB6xINpOyAjN0UyMQor57iiID4gdMOpbmc7ICM3RTIyCivnuKMgPiB4acOgbjsgIzdFMjMKK+e4pCA+IHPDuTsgIzdFMjQKK+e4pSA+IHpoxJVuOyAjN0UyNQor57imID4gesOybmc7ICM3RTI2CivnuKcgPiB0xIFvOyAjN0UyNwor57ipID4gY8OgaTsgIzdFMjkKK+e4qiA+IGLDrDsgIzdFMkEKK+e4qyA+IGbDqW5nOyAjN0UyQgor57isID4gY8O5OyAjN0UyQwor57itID4gbMOtOyAjN0UyRAor57iuID4gc8WrbzsgIzdFMkUKK+e4ryA+IHnErW47ICM3RTJGCivnuLAgPiB4xK07ICM3RTMwCivnuLEgPiB6w7JuZzsgIzdFMzEKK+e4siA+IGzDqWk7ICM3RTMyCivnuLMgPiB6aHXDoG47ICM3RTMzCivnuLQgPiBxacSBbjsgIzdFMzQKK+e4tSA+IG3DoG47ICM3RTM1CivnuLYgPiB6aMOtOyAjN0UzNgor57i3ID4gbMeaOyAjN0UzNwor57i4ID4gbcOyOyAjN0UzOAor57i5ID4gcGnEg287ICM3RTM5CivnuLogPiBsacOhbjsgIzdFM0EKK+e4uyA+IG3DrTsgIzdFM0IKK+e4vCA+IHh1w6BuOyAjN0UzQwor57i9ID4gesWPbmc7ICM3RTNECivnuL4gPiBqxKs7ICM3RTNFCivnuL8gPiBzaMSBbjsgIzdFM0YKK+e5gCA+IHPDuWk7ICM3RTQwCivnuYEgPiBmw6FuOyAjN0U0MQor57mCID4gc2h1w6BpOyAjN0U0Mgor57mDID4gYsSTbmc7ICM3RTQzCivnuYQgPiB5xKs7ICM3RTQ0CivnuYUgPiBzxIFvOyAjN0U0NQor57mGID4gbcOzdTsgIzdFNDYKK+e5hyA+IHpow7J1OyAjN0U0Nwor57mIID4gcWnEg25nOyAjN0U0OAor57mJID4gaMO6bjsgIzdFNDkKK+e5iyA+IHjDrDsgIzdFNEIKK+e5jSA+IHjDrHU7ICM3RTRECivnuY4gPiByw6FuOyAjN0U0RQor57mPID4geHXDoG47ICM3RTRGCivnuZAgPiBow7lpOyAjN0U1MAor57mRID4gcWnEgW87ICM3RTUxCivnuZIgPiB6xJNuZzsgIzdFNTIKK+e5kyA+IHrFrW87ICM3RTUzCivnuZQgPiB6aMSrOyAjN0U1NAor57mVID4gc2jDoG47ICM3RTU1CivnuZYgPiBzxINuOyAjN0U1Ngor57mXID4gbMOtbjsgIzdFNTcKK+e5mCA+IHnDuTsgIzdFNTgKK+e5mSA+IGbEgW47ICM3RTU5CivnuZogPiBsacOhbzsgIzdFNUEKK+e5myA+IGNow7lvOyAjN0U1Qgor57mcID4gesWrbjsgIzdFNUMKK+e5nSA+IGppw6BuOyAjN0U1RAor57meID4gcsOgbzsgIzdFNUUKK+e5nyA+IGNoxINuOyAjN0U1Rgor57mgID4gcsWtaTsgIzdFNjAKK+e5oSA+IHjDrHU7ICM3RTYxCivnuaIgPiBow7lpOyAjN0U2Mgor57mjID4gaHXDoDsgIzdFNjMKK+e5pCA+IHp1xINuOyAjN0U2NAor57mlID4geMSrOyAjN0U2NQor57mmID4gcWnEg25nOyAjN0U2Ngor57moID4gZMOhOyAjN0U2OAor57mpID4gc2jDqW5nOyAjN0U2OQor57mqID4gaMO5aTsgIzdFNkEKK+e5qyA+IHjDrDsgIzdFNkIKK+e5rCA+IHPDqDsgIzdFNkMKK+e5rSA+IGppxINuOyAjN0U2RAor57muID4gamnEgW5nOyAjN0U2RQor57mvID4gaHXDoW47ICM3RTZGCivnubAgPiB6xINvOyAjN0U3MAor57mxID4gY8WNbmc7ICM3RTcxCivnubIgPiBqacOoOyAjN0U3Mgor57mzID4gamnEg287ICM3RTczCivnubQgPiBiw7I7ICM3RTc0CivnubUgPiBjaMOhbjsgIzdFNzUKK+e5tiA+IHnDrDsgIzdFNzYKK+e5tyA+IG7DoW87ICM3RTc3CivnubggPiBzw7lpOyAjN0U3OAor57m5ID4gecOsOyAjN0U3OQor57m6ID4gc2jEg2k7ICM3RTdBCivnubsgPiB4xas7ICM3RTdCCivnubwgPiBqw6w7ICM3RTdDCivnub0gPiBixKtuOyAjN0U3RAor57m+ID4gcWnEg247ICM3RTdFCivnub8gPiBsw6FuOyAjN0U3Rgor57qAID4gcMO6OyAjN0U4MAor57qBID4geMWrbjsgIzdFODEKK+e6giA+IHp1xINuOyAjN0U4Mgor57qDID4gccOtOyAjN0U4Mwor57qEID4gcMOpbmc7ICM3RTg0CivnuoUgPiBsw6w7ICM3RTg1CivnuoYgPiBtw7I7ICM3RTg2CivnuocgPiBsw6hpOyAjN0U4Nwor57qIID4geGnDqTsgIzdFODgKK+e6iSA+IHp1xINuOyAjN0U4OQor57qKID4ga3XDoG5nOyAjN0U4QQor57qLID4gecWNdTsgIzdFOEIKK+e6jCA+IHjDuTsgIzdFOEMKK+e6jSA+IGzDqWk7ICM3RThECivnuo4gPiB4acSBbjsgIzdFOEUKK+e6jyA+IGNow6FuOyAjN0U4Rgor57qRID4gbMO6OyAjN0U5MQor57qSID4gY2jDoW47ICM3RTkyCivnupMgPiB5xKtuZzsgIzdFOTMKK+e6lCA+IGPDoWk7ICM3RTk0CivnupUgPiB4acSBbmc7ICM3RTk1CivnupYgPiB4acSBbjsgIzdFOTYKK+e6lyA+IHrFq2k7ICM3RTk3CivnupggPiB6dcSDbjsgIzdFOTgKK+e6mSA+IGzDuW87ICM3RTk5CivnupogPiB4xK07ICM3RTlBCivnupsgPiBkw6BvOyAjN0U5Qgor57qcID4gbMOgbjsgIzdFOUMKK+e6nSA+IGzDqWk7ICM3RTlECivnup4gPiBsacOgbjsgIzdFOUUKK+e6nyA+IHPEqzsgIzdFOUYKK+e6oCA+IGrEq3U7ICM3RUEwCivnuqEgPiB5xas7ICM3RUExCivnuqIgPiBow7NuZzsgIzdFQTIKK+e6oyA+IHpow7J1OyAjN0VBMwor57qkID4geGnEgW47ICM3RUE0CivnuqUgPiBow6k7ICM3RUE1CivnuqYgPiB5dcSTOyAjN0VBNgor57qnID4gasOtOyAjN0VBNwor57qoID4gd8OhbjsgIzdFQTgKK+e6qSA+IGt1w6BuZzsgIzdFQTkKK+e6qiA+IGrDrDsgIzdFQUEKK+e6qyA+IHLDqG47ICM3RUFCCivnuqwgPiB3xJVpOyAjN0VBQwor57qtID4gecO6bjsgIzdFQUQKK+e6riA+IGjDs25nOyAjN0VBRQor57qvID4gY2jDum47ICM3RUFGCivnurAgPiBww607ICM3RUIwCivnurEgPiBzaMSBOyAjN0VCMQor57qyID4gZ8SBbmc7ICM3RUIyCivnurMgPiBuw6A7ICM3RUIzCivnurQgPiByw6luOyAjN0VCNAor57q1ID4gesOybmc7ICM3RUI1CivnurYgPiBsw7puOyAjN0VCNgor57q3ID4gZsSTbjsgIzdFQjcKK+e6uCA+IHpoxK07ICM3RUI4CivnurkgPiB3w6luOyAjN0VCOQor57q6ID4gZsSDbmc7ICM3RUJBCivnursgPiB6aMO5OyAjN0VCQgor57q8ID4gecStbjsgIzdFQkMKK+e6vSA+IG7ErXU7ICM3RUJECivnur4gPiBzaMWrOyAjN0VCRQor57q/ID4geGnDoG47ICM3RUJGCivnu4AgPiBnw6BuOyAjN0VDMAor57uBID4geGnDqDsgIzdFQzEKK+e7giA+IGbDujsgIzdFQzIKK+e7gyA+IGxpw6BuOyAjN0VDMwor57uEID4gesWtOyAjN0VDNAor57uFID4gc2jEk247ICM3RUM1Civnu4YgPiB4w6w7ICM3RUM2Civnu4cgPiB6aMSrOyAjN0VDNwor57uIID4gemjFjW5nOyAjN0VDOAor57uJID4gemjDsnU7ICM3RUM5Civnu4ogPiBiw6BuOyAjN0VDQQor57uLID4gZsO6OyAjN0VDQgor57uMID4gemjDum87ICM3RUNDCivnu40gPiBzaMOgbzsgIzdFQ0QKK+e7jiA+IHnDrDsgIzdFQ0UKK+e7jyA+IGrEq25nOyAjN0VDRgor57uQID4gZMOgaTsgIzdFRDAKK+e7kSA+IGLEg25nOyAjN0VEMQor57uSID4gcsOzbmc7ICM3RUQyCivnu5MgPiBqacOpOyAjN0VEMwor57uUID4ga8O5OyAjN0VENAor57uVID4gcsOgbzsgIzdFRDUKK+e7liA+IGRpw6k7ICM3RUQ2Civnu5cgPiBow6huZzsgIzdFRDcKK+e7mCA+IGjDuWk7ICM3RUQ4Civnu5kgPiBnxJVpOyAjN0VEOQor57uaID4geHXDoG47ICM3RURBCivnu5sgPiBqacOgbmc7ICM3RURCCivnu5wgPiBsw7lvOyAjN0VEQwor57udID4ganXDqTsgIzdFREQKK+e7niA+IGppxINvOyAjN0VERQor57ufID4gdMWPbmc7ICM3RURGCivnu6AgPiBnxJVuZzsgIzdFRTAKK+e7oSA+IHhpxIFvOyAjN0VFMQor57uiID4ganXDoG47ICM3RUUyCivnu6MgPiB4w6x1OyAjN0VFMwor57ukID4geMOsOyAjN0VFNAor57ulID4gc8WraTsgIzdFRTUKK+e7piA+IHTEgW87ICM3RUU2Civnu6cgPiBqw6w7ICM3RUU3Civnu6ggPiB0w607ICM3RUU4Civnu6kgPiBqxKs7ICM3RUU5Civnu6ogPiB4w7k7ICM3RUVBCivnu6sgPiBsw61uZzsgIzdFRUIKK+e7rSA+IHjDuTsgIzdFRUQKK+e7riA+IHHErTsgIzdFRUUKK+e7ryA+IGbEk2k7ICM3RUVGCivnu7AgPiBjaMO5bzsgIzdFRjAKK+e7sSA+IHpoxINuZzsgIzdFRjEKK+e7siA+IGfFrW47ICM3RUYyCivnu7MgPiBzaMOpbmc7ICM3RUYzCivnu7QgPiB3w6lpOyAjN0VGNAor57u1ID4gbWnDoW47ICM3RUY1Civnu7YgPiBzaMOydTsgIzdFRjYKK+e7tyA+IGLEk25nOyAjN0VGNwor57u4ID4gY2jDs3U7ICM3RUY4Civnu7kgPiB0w6FvOyAjN0VGOQor57u6ID4gbMStdTsgIzdFRkEKK+e7uyA+IHF1xINuOyAjN0VGQgor57u8ID4gesOybmc7ICM3RUZDCivnu70gPiB6aMOgbjsgIzdFRkQKK+e7viA+IHfEg247ICM3RUZFCivnu78gPiBsx5w7ICM3RUZGCivnvIAgPiB6aMO5aTsgIzdGMDAKK+e8gSA+IHrEqzsgIzdGMDEKK+e8giA+IGvDqDsgIzdGMDIKK+e8gyA+IHhpxIFuZzsgIzdGMDMKK+e8hCA+IGppxIFuOyAjN0YwNAor57yFID4gbWnEg247ICM3RjA1CivnvIYgPiBsw6BuOyAjN0YwNgor57yHID4gdMOtOyAjN0YwNwor57yIID4gbWnEg287ICM3RjA4CivnvIkgPiBxw6w7ICM3RjA5CivnvIogPiB5xatuOyAjN0YwQQor57yLID4gaMO5aTsgIzdGMEIKK+e8jCA+IHPEqzsgIzdGMEMKK+e8jSA+IGTFrW87ICM3RjBECivnvI4gPiBkdcOgbjsgIzdGMEUKK+e8jyA+IGJpw6BuOyAjN0YwRgor57yQID4geGnDoG47ICM3RjEwCivnvJEgPiBnxY11OyAjN0YxMQor57ySID4gemjDuWk7ICM3RjEyCivnvJMgPiBodcSDbjsgIzdGMTMKK+e8lCA+IGTDrDsgIzdGMTQKK+e8lSA+IGzHmjsgIzdGMTUKK+e8liA+IGJpxIFuOyAjN0YxNgor57yXID4gbcOtbjsgIzdGMTcKK+e8mCA+IHl1w6FuOyAjN0YxOAor57yZID4gasOsbjsgIzdGMTkKK+e8miA+IGbDujsgIzdGMUEKK+e8myA+IHLDuTsgIzdGMUIKK+e8nCA+IHpoxJNuOyAjN0YxQwor57ydID4gZsOpbmc7ICM3RjFECivnvJ4gPiBzaHXEgWk7ICM3RjFFCivnvJ8gPiBnxINvOyAjN0YxRgor57ygID4gY2jDoW47ICM3RjIwCivnvKEgPiBsw607ICM3RjIxCivnvKIgPiB5w6w7ICM3RjIyCivnvKMgPiBqacSBbjsgIzdGMjMKK+e8pCA+IGLEq247ICM3RjI0CivnvKUgPiBwacSDbzsgIzdGMjUKK+e8piA+IG3DoG47ICM3RjI2CivnvKcgPiBsw6lpOyAjN0YyNwor57yoID4gecSrbmc7ICM3RjI4CivnvKkgPiBzxatvOyAjN0YyOQor57yqID4gbcOzdTsgIzdGMkEKK+e8qyA+IHPEgW87ICM3RjJCCivnvKwgPiB4acOpOyAjN0YyQwor57ytID4gbGnDoW87ICM3RjJECivnvK4gPiBzaMOgbjsgIzdGMkUKK+e8ryA+IHrEk25nOyAjN0YyRgor57ywID4gamnEgW5nOyAjN0YzMAor57yxID4gcWnEg247ICM3RjMxCivnvLIgPiB6xINvOyAjN0YzMgor57yzID4gaHXDoW47ICM3RjMzCivnvLQgPiBqacSDbzsgIzdGMzQKK+e8tSA+IHp1xINuOyAjN0YzNQor57y2ID4gZsWPdTsgIzdGMzYKK+e8tyA+IHhpw6g7ICM3RjM3CivnvLggPiBnxIFuZzsgIzdGMzgKK+e8uSA+IGbFj3U7ICM3RjM5CivnvLogPiBxdcSTOyAjN0YzQQor57y7ID4gZsWPdTsgIzdGM0IKK+e8vSA+IGLFjTsgIzdGM0QKK+e8viA+IHDDrW5nOyAjN0YzRQor57y/ID4gaMOydTsgIzdGM0YKK+e9gSA+IGfEgW5nOyAjN0Y0MQor572CID4gecSrbmc7ICM3RjQyCivnvYMgPiB5xKtuZzsgIzdGNDMKK+e9hCA+IHHDrG5nOyAjN0Y0NAor572FID4geGnDoDsgIzdGNDUKK+e9hiA+IGd1w6BuOyAjN0Y0Ngor572HID4gesWrbjsgIzdGNDcKK+e9iCA+IHTDoW47ICM3RjQ4CivnvYogPiBxw6w7ICM3RjRBCivnvYsgPiB3w6huZzsgIzdGNEIKK+e9jCA+IHnEq25nOyAjN0Y0Qwor572NID4gbMOpaTsgIzdGNEQKK+e9jiA+IHTDoW47ICM3RjRFCivnvY8gPiBsw7o7ICM3RjRGCivnvZAgPiBndcOgbjsgIzdGNTAKK+e9kSA+IHfEg25nOyAjN0Y1MQor572SID4gd8SDbmc7ICM3RjUyCivnvZMgPiBnxIFuZzsgIzdGNTMKK+e9lCA+IHfEg25nOyAjN0Y1NAor572VID4gaMSDbjsgIzdGNTUKK+e9lyA+IGzFq287ICM3RjU3CivnvZggPiBmw7o7ICM3RjU4CivnvZkgPiBtw607ICM3RjU5CivnvZogPiBmw6E7ICM3RjVBCivnvZsgPiBnxas7ICM3RjVCCivnvZwgPiB6aMWtOyAjN0Y1Qwor572dID4gasWrOyAjN0Y1RAor572eID4gbcOhbzsgIzdGNUUKK+e9nyA+IGfFrTsgIzdGNUYKK+e9oCA+IG3DrW47ICM3RjYwCivnvaEgPiBnxIFuZzsgIzdGNjEKK+e9oiA+IGLDoDsgIzdGNjIKK+e9oyA+IGd1w6A7ICM3RjYzCivnvaQgPiB0w607ICM3RjY0CivnvaUgPiBqdcOgbjsgIzdGNjUKK+e9piA+IGbFqzsgIzdGNjYKK+e9pyA+IGzDrW47ICM3RjY3CivnvaggPiB5xINuOyAjN0Y2OAor572pID4gemjDoG87ICM3RjY5CivnvaogPiB6w7lpOyAjN0Y2QQor572rID4gZ3XDoDsgIzdGNkIKK+e9rCA+IHpow7pvOyAjN0Y2Qwor572tID4gecO5OyAjN0Y2RAor572uID4gemjDrDsgIzdGNkUKK+e9ryA+IMSDbjsgIzdGNkYKK+e9sCA+IGbDoTsgIzdGNzAKK+e9sSA+IG7Eg247ICM3RjcxCivnvbIgPiBzaMWtOyAjN0Y3Mgor572zID4gc8SrOyAjN0Y3Mwor5720ID4gcMOtOyAjN0Y3NAor5721ID4gbcOgOyAjN0Y3NQor5722ID4gbMStdTsgIzdGNzYKK+e9tyA+IGLDoDsgIzdGNzcKK+e9uCA+IGbDoTsgIzdGNzgKK+e9uSA+IGzDrTsgIzdGNzkKK+e9uiA+IGNoxIFvOyAjN0Y3QQor5727ID4gd8OoaTsgIzdGN0IKK+e9vCA+IGLDrDsgIzdGN0MKK+e9vSA+IGrDrDsgIzdGN0QKK+e9viA+IHrEk25nOyAjN0Y3RQor572/ID4gdMOzbmc7ICM3RjdGCivnvoAgPiBsxK11OyAjN0Y4MAor576BID4gasSrOyAjN0Y4MQor576CID4ganXDoG47ICM3RjgyCivnvoMgPiBtw6w7ICM3RjgzCivnvoQgPiB6aMOgbzsgIzdGODQKK+e+hSA+IGzDum87ICM3Rjg1CivnvoYgPiBww607ICM3Rjg2CivnvocgPiBqxKs7ICM3Rjg3CivnvoggPiBqxKs7ICM3Rjg4CivnvokgPiBsdcOhbjsgIzdGODkKK+e+iiA+IHnDoW5nOyAjN0Y4QQor576LID4gbWnEkzsgIzdGOEIKK+e+jCA+IHFpxIFuZzsgIzdGOEMKK+e+jSA+IHTDoDsgIzdGOEQKK+e+jiA+IG3ElWk7ICM3RjhFCivnvo8gPiB5w6FuZzsgIzdGOEYKK+e+kCA+IHnFj3U7ICM3RjkwCivnvpEgPiB5xY91OyAjN0Y5MQor576SID4gZsOpbjsgIzdGOTIKK+e+kyA+IGLEgTsgIzdGOTMKK+e+lCA+IGfEgW87ICM3Rjk0CivnvpUgPiB5w6BuZzsgIzdGOTUKK+e+liA+IGfFrTsgIzdGOTYKK+e+lyA+IHFpxIFuZzsgIzdGOTcKK+e+mCA+IHrEgW5nOyAjN0Y5OAor576ZID4gZ8SBbzsgIzdGOTkKK+e+miA+IGzDrW5nOyAjN0Y5QQor576bID4gecOsOyAjN0Y5Qgor576cID4gemjDuTsgIzdGOUMKK+e+nSA+IGTEqzsgIzdGOUQKK+e+niA+IHjEq3U7ICM3RjlFCivnvp8gPiBxacSBbjsgIzdGOUYKK+e+oCA+IHnDrTsgIzdGQTAKK+e+oSA+IHhpw6BuOyAjN0ZBMQor576iID4gcsOzbmc7ICM3RkEyCivnvqMgPiBxw7puOyAjN0ZBMwor576kID4gccO6bjsgIzdGQTQKK+e+pSA+IHFpxIFuOyAjN0ZBNQor576mID4gaHXDoW47ICM3RkE2CivnvqcgPiB6xatpOyAjN0ZBNwor576oID4geGnDoG47ICM3RkE4CivnvqkgPiB5w6w7ICM3RkE5CivnvqsgPiBxacSBbmc7ICM3RkFCCivnvqwgPiB4acOhbjsgIzdGQUMKK+e+rSA+IHnDujsgIzdGQUQKK+e+riA+IGfEk25nOyAjN0ZBRQor576vID4gamnDqTsgIzdGQUYKK+e+sCA+IHTEgW5nOyAjN0ZCMAor576xID4geXXDoW47ICM3RkIxCivnvrIgPiB4xKs7ICM3RkIyCivnvrMgPiBmw6FuOyAjN0ZCMwor5760ID4gc2jEgW47ICM3RkI0CivnvrUgPiBmxJVuOyAjN0ZCNQor5762ID4gc2jEgW47ICM3RkI2CivnvrcgPiBsacSDbjsgIzdGQjcKK+e+uCA+IGzDqWk7ICM3RkI4CivnvrkgPiBnxJNuZzsgIzdGQjkKK+e+uiA+IG7Ds3U7ICM3RkJBCivnvrsgPiBxacOgbmc7ICM3RkJCCivnvrwgPiBjaMOgbjsgIzdGQkMKK+e+vSA+IHnFrTsgIzdGQkQKK+e+viA+IGfDsm5nOyAjN0ZCRQor576/ID4gecOsOyAjN0ZCRgor57+AID4gY2jDs25nOyAjN0ZDMAor57+BID4gd8STbmc7ICM3RkMxCivnv4IgPiBmxJNuOyAjN0ZDMgor57+DID4gaMOzbmc7ICM3RkMzCivnv4QgPiBjaMOsOyAjN0ZDNAor57+FID4gY2jDrDsgIzdGQzUKK+e/hiA+IGPDuWk7ICM3RkM2Civnv4cgPiBmw7o7ICM3RkM3Civnv4ggPiB4acOhOyAjN0ZDOAor57+JID4gcMSVbjsgIzdGQzkKK+e/iiA+IHnDrDsgIzdGQ0EKK+e/iyA+IGzEgTsgIzdGQ0IKK+e/jCA+IHnDrDsgIzdGQ0MKK+e/jSA+IHDEqzsgIzdGQ0QKK+e/jiA+IGzDrW5nOyAjN0ZDRQor57+PID4gbMOsdTsgIzdGQ0YKK+e/kCA+IHpow6w7ICM3RkQwCivnv5EgPiBxw7o7ICM3RkQxCivnv5IgPiB4w607ICM3RkQyCivnv5MgPiB4acOpOyAjN0ZEMwor57+UID4geGnDoW5nOyAjN0ZENAor57+VID4geMOsOyAjN0ZENQor57+WID4geMOsOyAjN0ZENgor57+XID4gccOtOyAjN0ZENwor57+YID4gcWnDoW87ICM3RkQ4Civnv5kgPiBow7lpOyAjN0ZEOQor57+aID4gaMWraTsgIzdGREEKK+e/myA+IHhpxIFvOyAjN0ZEQgor57+cID4gc8OoOyAjN0ZEQwor57+dID4gaMOzbmc7ICM3RkRECivnv54gPiBqacSBbmc7ICM3RkRFCivnv58gPiBkw607ICM3RkRGCivnv6AgPiBjw7lpOyAjN0ZFMAor57+hID4gZsSVaTsgIzdGRTEKK+e/oiA+IHTEgW87ICM3RkUyCivnv6MgPiBzaMOgOyAjN0ZFMwor57+kID4gY2jDrDsgIzdGRTQKK+e/pSA+IHpow7k7ICM3RkU1Civnv6YgPiBqacSDbjsgIzdGRTYKK+e/pyA+IHh1xIFuOyAjN0ZFNwor57+oID4gc2jDrDsgIzdGRTgKK+e/qSA+IHBpxIFuOyAjN0ZFOQor57+qID4gesWNbmc7ICM3RkVBCivnv6sgPiB3w6BuOyAjN0ZFQgor57+sID4gaMWraTsgIzdGRUMKK+e/rSA+IGjDs3U7ICM3RkVECivnv64gPiBow6k7ICM3RkVFCivnv68gPiBow6g7ICM3RkVGCivnv7AgPiBow6BuOyAjN0ZGMAor57+xID4gw6FvOyAjN0ZGMQor57+yID4gcGnEgW87ICM3RkYyCivnv7MgPiB5w6w7ICM3RkYzCivnv7QgPiBsacOhbjsgIzdGRjQKK+e/tSA+IHHDujsgIzdGRjUKK+e/tyA+IGzDrW47ICM3RkY3Civnv7ggPiBwxJVuOyAjN0ZGOAor57+5ID4gcWnDoW87ICM3RkY5Civnv7ogPiDDoW87ICM3RkZBCivnv7sgPiBmxIFuOyAjN0ZGQgor57+8ID4gecOsOyAjN0ZGQwor57+9ID4gaMO5aTsgIzdGRkQKK+e/viA+IHh1xIFuOyAjN0ZGRQor57+/ID4gZMOgbzsgIzdGRkYKK+iAgCA+IHnDoG87ICM4MDAwCivogIEgPiBsxINvOyAjODAwMQor6ICDID4ga8SDbzsgIzgwMDMKK+iAhCA+IG3DoG87ICM4MDA0CivogIUgPiB6aMSVOyAjODAwNQor6ICGID4gccOtOyAjODAwNgor6ICHID4gZ8WPdTsgIzgwMDcKK+iAiCA+IGfFj3U7ICM4MDA4CivogIkgPiBnxY91OyAjODAwOQor6ICKID4gZGnDqDsgIzgwMEEKK+iAiyA+IGRpw6g7ICM4MDBCCivogIwgPiDDqXI7ICM4MDBDCivogI0gPiBzaHXEgzsgIzgwMEQKK+iAjiA+IHJ1xINuOyAjODAwRQor6ICPID4gw6lyOyAjODAwRgor6ICQID4gbsOgaTsgIzgwMTAKK+iAkSA+IHpodcSBbjsgIzgwMTEKK+iAkiA+IGzElWk7ICM4MDEyCivogJMgPiB0xKtuZzsgIzgwMTMKK+iAlCA+IHrErTsgIzgwMTQKK+iAlSA+IGfEk25nOyAjODAxNQor6ICWID4gY2jDoG87ICM4MDE2CivogJcgPiBow6BvOyAjODAxNwor6ICYID4gecO6bjsgIzgwMTgKK+iAmSA+IHDDoTsgIzgwMTkKK+iAmiA+IHDEqzsgIzgwMUEKK+iAmyA+IGNow607ICM4MDFCCivogJwgPiBzw6w7ICM4MDFDCivogJ0gPiBjaMO6OyAjODAxRAor6ICeID4gamnEgTsgIzgwMUUKK+iAnyA+IGrDuTsgIzgwMUYKK+iAoCA+IGjDqTsgIzgwMjAKK+iAoSA+IGNow7o7ICM4MDIxCivogKIgPiBsw6BvOyAjODAyMgor6ICjID4gbMWtbjsgIzgwMjMKK+iApCA+IGrDrTsgIzgwMjQKK+iApSA+IHTEg25nOyAjODAyNQor6ICmID4gxY91OyAjODAyNgor6ICnID4gbMOzdTsgIzgwMjcKK+iAqCA+IG7DsnU7ICM4MDI4CivogKkgPiBnxY11OyAjODAyOQor6ICqID4gcMSDbmc7ICM4MDJBCivogKsgPiB6w6k7ICM4MDJCCivogKwgPiBsw7N1OyAjODAyQwor6ICtID4gasSrOyAjODAyRAor6ICuID4gbMOgbzsgIzgwMkUKK+iAryA+IGjDuW87ICM4MDJGCivogLAgPiB5xY11OyAjODAzMAor6ICxID4gbcOyOyAjODAzMQor6ICyID4gaHXDoWk7ICM4MDMyCivogLMgPiDElXI7ICM4MDMzCivogLQgPiB6aMOpOyAjODAzNAor6IC1ID4gdMSrbmc7ICM4MDM1CivogLYgPiB5w6k7ICM4MDM2CivogLcgPiBkxIE7ICM4MDM3CivogLggPiBzxY9uZzsgIzgwMzgKK+iAuSA+IHHDrW47ICM4MDM5CivogLogPiB5w7puOyAjODAzQQor6IC7ID4gY2jErTsgIzgwM0IKK+iAvCA+IGTEgW47ICM4MDNDCivogL0gPiBkxIFuOyAjODAzRAor6IC+ID4gaMOzbmc7ICM4MDNFCivogL8gPiBnxJVuZzsgIzgwM0YKK+iBgCA+IHpow607ICM4MDQwCivogYIgPiBuacOoOyAjODA0Mgor6IGDID4gZMSBbjsgIzgwNDMKK+iBhCA+IHpoxJVuOyAjODA0NAor6IGFID4gY2jDqDsgIzgwNDUKK+iBhiA+IGzDrW5nOyAjODA0Ngor6IGHID4gemjEk25nOyAjODA0Nwor6IGIID4gecWPdTsgIzgwNDgKK+iBiSA+IHfEgTsgIzgwNDkKK+iBiiA+IGxpw6FvOyAjODA0QQor6IGLID4gbMOzbmc7ICM4MDRCCivogYwgPiB6aMOtOyAjODA0Qwor6IGNID4gbsOtbmc7ICM4MDRECivogY4gPiB0acSBbzsgIzgwNEUKK+iBjyA+IMOpcjsgIzgwNEYKK+iBkCA+IHnDoDsgIzgwNTAKK+iBkSA+IGRpw6k7ICM4MDUxCivogZIgPiBndcSBOyAjODA1Mgor6IGUID4gbGnDoW47ICM4MDU0CivogZUgPiBow6BvOyAjODA1NQor6IGWID4gc2jDqG5nOyAjODA1Ngor6IGXID4gbGnDqDsgIzgwNTcKK+iBmCA+IHDDrG47ICM4MDU4CivogZkgPiBqxKtuZzsgIzgwNTkKK+iBmiA+IGrDuTsgIzgwNUEKK+iBmyA+IGLDrDsgIzgwNUIKK+iBnCA+IGTErTsgIzgwNUMKK+iBnSA+IGfDum87ICM4MDVECivogZ4gPiB3w6luOyAjODA1RQor6IGfID4geMO5OyAjODA1Rgor6IGgID4gcMOtbmc7ICM4MDYwCivogaEgPiBjxY1uZzsgIzgwNjEKK+iBpCA+IHTDrW5nOyAjODA2NAor6IGlID4gecWtOyAjODA2NQor6IGmID4gY8WNbmc7ICM4MDY2CivogacgPiBrw7ppOyAjODA2Nwor6IGpID4ga8O5aTsgIzgwNjkKK+iBqiA+IGPFjW5nOyAjODA2QQor6IGrID4gbGnDoW47ICM4MDZCCivogawgPiB3xJVuZzsgIzgwNkMKK+iBrSA+IGvDuWk7ICM4MDZECivoga4gPiBsacOhbjsgIzgwNkUKK+iBryA+IGxpw6FuOyAjODA2Rgor6IGwID4gY8WNbmc7ICM4MDcwCivogbEgPiDDoW87ICM4MDcxCivogbIgPiBzaMSTbmc7ICM4MDcyCivogbMgPiBzxY9uZzsgIzgwNzMKK+iBtCA+IHTEq25nOyAjODA3NAor6IG1ID4ga8O5aTsgIzgwNzUKK+iBtiA+IG5pw6g7ICM4MDc2CivogbcgPiB6aMOtOyAjODA3Nwor6IG4ID4gZMSBbjsgIzgwNzgKK+iBuSA+IG7DrW5nOyAjODA3OQor6IG6ID4gcWllOyAjODA3QQor6IG7ID4gasSrOyAjODA3Qgor6IG8ID4gdMSrbmc7ICM4MDdDCivogb0gPiB0xKtuZzsgIzgwN0QKK+iBviA+IGzDs25nOyAjODA3RQor6IG/ID4gecO5OyAjODA3Rgor6IKAID4gecO5OyAjODA4MAor6IKBID4gemjDoG87ICM4MDgxCivogoIgPiBzw6w7ICM4MDgyCivogoMgPiBzw7k7ICM4MDgzCivogoQgPiB5w6w7ICM4MDg0CivogoUgPiBzw7k7ICM4MDg1CivogoYgPiBzw6w7ICM4MDg2CivogocgPiB6aMOgbzsgIzgwODcKK+iCiCA+IHpow6BvOyAjODA4OAor6IKJID4gcsOydTsgIzgwODkKK+iCiiA+IHnDrDsgIzgwOEEKK+iCiyA+IGzDqDsgIzgwOEIKK+iCjCA+IGrEqzsgIzgwOEMKK+iCjSA+IHHDrXU7ICM4MDhECivogo4gPiBrxJVuOyAjODA4RQor6IKPID4gY8OgbzsgIzgwOEYKK+iCkCA+IGfEkzsgIzgwOTAKK+iCkSA+IGTDrDsgIzgwOTEKK+iCkiA+IGh1w6FuOyAjODA5Mgor6IKTID4gaHXEgW5nOyAjODA5Mwor6IKUID4gecStOyAjODA5NAor6IKVID4gcsOobjsgIzgwOTUKK+iCliA+IHhpw6BvOyAjODA5Ngor6IKXID4gcsWtOyAjODA5Nwor6IKYID4gemjFj3U7ICM4MDk4CivogpkgPiB5dcSBbjsgIzgwOTkKK+iCmiA+IGTDuTsgIzgwOUEKK+iCmyA+IGfEgW5nOyAjODA5Qgor6IKcID4gcsOzbmc7ICM4MDlDCivogp0gPiBnxIFuOyAjODA5RAor6IKeID4gY2jEgTsgIzgwOUUKK+iCnyA+IHfDsjsgIzgwOUYKK+iCoCA+IGNow6FuZzsgIzgwQTAKK+iCoSA+IGfFrTsgIzgwQTEKK+iCoiA+IHpoxKs7ICM4MEEyCivogqMgPiBow6FuOyAjODBBMwor6IKkID4gZsWrOyAjODBBNAor6IKlID4gZsOpaTsgIzgwQTUKK+iCpiA+IGbDqW47ICM4MEE2CivogqcgPiBwxJNpOyAjODBBNwor6IKoID4gcMOgbmc7ICM4MEE4CivogqkgPiBqacSBbjsgIzgwQTkKK+iCqiA+IGbDoW5nOyAjODBBQQor6IKrID4gemjFq247ICM4MEFCCivogqwgPiB5w7N1OyAjODBBQwor6IKtID4gbsOgOyAjODBBRAor6IKuID4gaMOhbmc7ICM4MEFFCivogq8gPiBrxJVuOyAjODBBRgor6IKwID4gcsOhbjsgIzgwQjAKK+iCsSA+IGfFjW5nOyAjODBCMQor6IKyID4gecO5OyAjODBCMgor6IKzID4gd8SVbjsgIzgwQjMKK+iCtCA+IHnDoW87ICM4MEI0CivogrUgPiBqw6xuOyAjODBCNQor6IK2ID4gcMOtOyAjODBCNgor6IK3ID4gcWnEgW47ICM4MEI3CivogrggPiB4w6w7ICM4MEI4CivogrkgPiB4xKs7ICM4MEI5CivogrogPiBmw6hpOyAjODBCQQor6IK7ID4ga8SVbjsgIzgwQkIKK+iCvCA+IGrErW5nOyAjODBCQwor6IK9ID4gdMOgaTsgIzgwQkQKK+iCviA+IHNow6huOyAjODBCRQor6IK/ID4gemjFj25nOyAjODBCRgor6IOAID4gemjDoG5nOyAjODBDMAor6IOBID4geGnDqTsgIzgwQzEKK+iDgiA+IHNoxJNuOyAjODBDMgor6IODID4gd8OoaTsgIzgwQzMKK+iDhCA+IHpow7J1OyAjODBDNAor6IOFID4gZGnDqTsgIzgwQzUKK+iDhiA+IGTEg247ICM4MEM2Civog4cgPiBmw6hpOyAjODBDNwor6IOIID4gYsOhOyAjODBDOAor6IOJID4gYsOzOyAjODBDOQor6IOKID4gccO6OyAjODBDQQor6IOLID4gdGnDoW47ICM4MENCCivog4wgPiBiw6hpOyAjODBDQwor6IONID4gZ3XEgTsgIzgwQ0QKK+iDjiA+IHTEgWk7ICM4MENFCivog48gPiB6xK07ICM4MENGCivog5AgPiBrxas7ICM4MEQwCivog5EgPiB6aMSrOyAjODBEMQor6IOSID4gbsOsOyAjODBEMgor6IOTID4gcMOtbmc7ICM4MEQzCivog5QgPiB6w6w7ICM4MEQ0Civog5UgPiBmw7k7ICM4MEQ1Civog5YgPiBww6BuZzsgIzgwRDYKK+iDlyA+IHpoxJNuOyAjODBENwor6IOYID4geGnDoW47ICM4MEQ4Civog5kgPiB6w7lvOyAjODBEOQor6IOaID4gcMSTaTsgIzgwREEKK+iDmyA+IGppxIM7ICM4MERCCivog5wgPiBzaMOobmc7ICM4MERDCivog50gPiB6aMSrOyAjODBERAor6IOeID4gYsSBbzsgIzgwREUKK+iDnyA+IG3FrTsgIzgwREYKK+iDoCA+IHHFqzsgIzgwRTAKK+iDoSA+IGjDujsgIzgwRTEKK+iDoiA+IGvEkzsgIzgwRTIKK+iDoyA+IHnErTsgIzgwRTMKK+iDpCA+IHnDrG47ICM4MEU0Civog6UgPiB4xas7ICM4MEU1Civog6YgPiB5xIFuZzsgIzgwRTYKK+iDpyA+IGzDs25nOyAjODBFNwor6IOoID4gZMOybmc7ICM4MEU4Civog6kgPiBrxIM7ICM4MEU5Civog6ogPiBsw7o7ICM4MEVBCivog6sgPiBqw6xuZzsgIzgwRUIKK+iDrCA+IG7FrTsgIzgwRUMKK+iDrSA+IHnEgW47ICM4MEVECivog64gPiBww6FuZzsgIzgwRUUKK+iDryA+IGt1w6A7ICM4MEVGCivog7AgPiB5w607ICM4MEYwCivog7EgPiBndcSBbmc7ICM4MEYxCivog7IgPiBnxIFpOyAjODBGMgor6IOzID4gZ8STOyAjODBGMwor6IO0ID4gZMOybmc7ICM4MEY0Civog7UgPiB6aMOsOyAjODBGNQor6IO2ID4geGnDoW87ICM4MEY2Civog7cgPiB4xKtvbmc7ICM4MEY3Civog7ggPiB4xKtvbmc7ICM4MEY4Civog7kgPiDDqXI7ICM4MEY5Civog7ogPiDDqDsgIzgwRkEKK+iDuyA+IHjDrW5nOyAjODBGQgor6IO8ID4gcGnDoW47ICM4MEZDCivog70gPiBuw6luZzsgIzgwRkQKK+iDviA+IHrDrDsgIzgwRkUKK+iDvyA+IGd1aTsgIzgwRkYKK+iEgCA+IGNow6luZzsgIzgxMDAKK+iEgSA+IHRpw6BvOyAjODEwMQor6ISCID4gemjEqzsgIzgxMDIKK+iEgyA+IGPDuWk7ICM4MTAzCivohIQgPiBtw6lpOyAjODEwNAor6ISFID4geGnDqTsgIzgxMDUKK+iEhiA+IGPDuWk7ICM4MTA2CivohIcgPiB4acOpOyAjODEwNwor6ISIID4gbcOyOyAjODEwOAor6ISJID4gbcOgaTsgIzgxMDkKK+iEiiA+IGrDrTsgIzgxMEEKK+iEjSA+IGt1w6BpOyAjODEwRAor6ISOID4gc8OgOyAjODEwRQor6ISPID4gesSBbmc7ICM4MTBGCivohJAgPiBxw607ICM4MTEwCivohJEgPiBuxINvOyAjODExMQor6ISSID4gbcStOyAjODExMgor6ISTID4gbsOzbmc7ICM4MTEzCivohJQgPiBsdcOhbjsgIzgxMTQKK+iElSA+IHfEg247ICM4MTE1CivohJYgPiBiw7M7ICM4MTE2CivohJcgPiB3xJVuOyAjODExNwor6ISYID4gZ3XEg247ICM4MTE4CivohJkgPiBxw611OyAjODExOQor6ISaID4gamnEg287ICM4MTFBCivohJsgPiBqw6xuZzsgIzgxMUIKK+iEnCA+IHLDs3U7ICM4MTFDCivohJ0gPiBoxJNuZzsgIzgxMUQKK+iEniA+IGPFrW87ICM4MTFFCivohJ8gPiBsacOoOyAjODExRgor6ISgID4gc2jEgW47ICM4MTIwCivohKEgPiB0xK1uZzsgIzgxMjEKK+iEoiA+IG3DqWk7ICM4MTIyCivohKMgPiBjaMO6bjsgIzgxMjMKK+iEpCA+IHNow6huOyAjODEyNAor6ISlID4geGnDqTsgIzgxMjUKK+iEpiA+IGRlOyAjODEyNgor6ISnID4gesWraTsgIzgxMjcKK+iEqCA+IGPDuTsgIzgxMjgKK+iEqSA+IHjEq3U7ICM4MTI5CivohKogPiB4w6xuOyAjODEyQQor6ISrID4gdMWrbzsgIzgxMkIKK+iErCA+IHDEgW87ICM4MTJDCivohK0gPiBjaMOpbmc7ICM4MTJECivohK4gPiBuxJVpOyAjODEyRQor6ISvID4gZsWtOyAjODEyRgor6ISwID4gZMOydTsgIzgxMzAKK+iEsSA+IHTFq287ICM4MTMxCivohLIgPiBuacOgbzsgIzgxMzIKK+iEtCA+IHDErTsgIzgxMzQKK+iEtSA+IGfFrTsgIzgxMzUKK+iEtiA+IGd1xIE7ICM4MTM2CivohLcgPiBsw6w7ICM4MTM3CivohLggPiBsacSDbjsgIzgxMzgKK+iEuSA+IHpow6BuZzsgIzgxMzkKK+iEuiA+IGPDuWk7ICM4MTNBCivohLsgPiBqacOpOyAjODEzQgor6IS8ID4gbGnEg25nOyAjODEzQwor6IS9ID4gemjFjXU7ICM4MTNECivohL4gPiBww607ICM4MTNFCivohL8gPiBiacSBbzsgIzgxM0YKK+iFgCA+IGzDum47ICM4MTQwCivohYEgPiBwacOhbjsgIzgxNDEKK+iFgiA+IGfDuW87ICM4MTQyCivohYMgPiBrw7lpOyAjODE0Mwor6IWEID4gY2jDumk7ICM4MTQ0CivohYUgPiBkw6BuOyAjODE0NQor6IWGID4gdGnEg247ICM4MTQ2CivohYcgPiBuxJVpOyAjODE0Nwor6IWIID4gasSrbmc7ICM4MTQ4CivohYkgPiBqacSTOyAjODE0OQor6IWKID4gbMOgOyAjODE0QQor6IWLID4gecOsOyAjODE0Qgor6IWMID4gxIFuOyAjODE0Qwor6IWNID4gcsSVbjsgIzgxNEQKK+iFjiA+IHNow6huOyAjODE0RQor6IWPID4gY2jDuW87ICM4MTRGCivohZAgPiBmxa07ICM4MTUwCivohZEgPiBmxa07ICM4MTUxCivohZIgPiBqxas7ICM4MTUyCivohZMgPiBmw6lpOyAjODE1Mwor6IWUID4gcWnEgW5nOyAjODE1NAor6IWVID4gd8OgbjsgIzgxNTUKK+iFliA+IGTDsm5nOyAjODE1Ngor6IWXID4gcMOtOyAjODE1Nwor6IWYID4gZ8O6bzsgIzgxNTgKK+iFmSA+IHrFjW5nOyAjODE1OQor6IWaID4gZMOsbmc7ICM4MTVBCivohZsgPiB3xas7ICM4MTVCCivohZwgPiBtw6lpOyAjODE1Qwor6IWdID4gcnXEg247ICM4MTVECivohZ4gPiB6aHXDoG47ICM4MTVFCivohZ8gPiB6aMOsOyAjODE1Rgor6IWgID4gY8OydTsgIzgxNjAKK+iFoSA+IGd1xIE7ICM4MTYxCivohaIgPiDFj3U7ICM4MTYyCivohaMgPiBkw6w7ICM4MTYzCivohaQgPiDEgW47ICM4MTY0CivohaUgPiB4xKtuZzsgIzgxNjUKK+iFpiA+IG7Eg287ICM4MTY2CivohacgPiB5w7o7ICM4MTY3CivohaggPiBjaHXEg247ICM4MTY4CivohakgPiBuxINuOyAjODE2OQor6IWqID4gecO5bjsgIzgxNkEKK+iFqyA+IHpoxY9uZzsgIzgxNkIKK+iFrCA+IHLDs3U7ICM4MTZDCivoha0gPiDDqDsgIzgxNkQKK+iFriA+IHPEgWk7ICM4MTZFCivoha8gPiB0w7o7ICM4MTZGCivohbAgPiB5xIFvOyAjODE3MAor6IWxID4gamnDoG47ICM4MTcxCivohbIgPiB3xJVpOyAjODE3Mgor6IWzID4gamnEg287ICM4MTczCivohbQgPiB5w7o7ICM4MTc0CivohbUgPiBqacSBOyAjODE3NQor6IW2ID4gZHXDoG47ICM4MTc2CivohbcgPiBiw6w7ICM4MTc3CivohbggPiBjaMOhbmc7ICM4MTc4CivohbkgPiBmw7k7ICM4MTc5CivohbogPiB4acOgbjsgIzgxN0EKK+iFuyA+IG7DrDsgIzgxN0IKK+iFvCA+IG1pxINuOyAjODE3Qwor6IW9ID4gd8OgOyAjODE3RAor6IW+ID4gdMOpbmc7ICM4MTdFCivohb8gPiB0xa1pOyAjODE3Rgor6IaAID4gYsSDbmc7ICM4MTgwCivohoEgPiBxacSBbjsgIzgxODEKK+iGgiA+IGzHmjsgIzgxODIKK+iGgyA+IHfDoDsgIzgxODMKK+iGhCA+IHPDsnU7ICM4MTg0CivohoUgPiB0w6FuZzsgIzgxODUKK+iGhiA+IHPDuTsgIzgxODYKK+iGhyA+IHpow7lpOyAjODE4Nwor6IaIID4gZ8OpOyAjODE4OAor6IaJID4gecOsOyAjODE4OQor6IaKID4gYsOzOyAjODE4QQor6IaLID4gbGnDoW87ICM4MThCCivohowgPiBqw607ICM4MThDCivoho0gPiBww607ICM4MThECivoho4gPiB4acOpOyAjODE4RQor6IaPID4gZ8SBbzsgIzgxOEYKK+iGkCA+IGzHmjsgIzgxOTAKK+iGkSA+IGLDrG47ICM4MTkxCivohpIgPiBvdTsgIzgxOTIKK+iGkyA+IGNow6FuZzsgIzgxOTMKK+iGlCA+IGzDuTsgIzgxOTQKK+iGlSA+IGfDum87ICM4MTk1CivohpYgPiBwxIFuZzsgIzgxOTYKK+iGlyA+IGNodcOhaTsgIzgxOTcKK+iGmCA+IHBpxINvOyAjODE5OAor6IaZID4gamnEg25nOyAjODE5OQor6IaaID4gZsWrOyAjODE5QQor6IabID4gdMOhbmc7ICM4MTlCCivohpwgPiBtw7I7ICM4MTlDCivohp0gPiB4xKs7ICM4MTlECivohp4gPiB6aHXEgW47ICM4MTlFCivohp8gPiBsx5w7ICM4MTlGCivohqAgPiBqacSBbzsgIzgxQTAKK+iGoSA+IHnDrG5nOyAjODFBMQor6IaiID4gbMeYOyAjODFBMgor6IajID4gemjDrDsgIzgxQTMKK+iGpSA+IGNoxatuOyAjODFBNQor6IamID4gbGnEg247ICM4MUE2CivohqcgPiB0w7NuZzsgIzgxQTcKK+iGqCA+IHDDqW5nOyAjODFBOAor6IapID4gbsOsOyAjODFBOQor6IaqID4gemjDoDsgIzgxQUEKK+iGqyA+IGxpw6FvOyAjODFBQgor6IasID4gY8O5aTsgIzgxQUMKK+iGrSA+IGfFq2k7ICM4MUFECivohq4gPiB4acSBbzsgIzgxQUUKK+iGryA+IHTEk25nOyAjODFBRgor6IawID4gZsOhbjsgIzgxQjAKK+iGsSA+IHpow607ICM4MUIxCivohrIgPiBqacSBbzsgIzgxQjIKK+iGsyA+IHNow6BuOyAjODFCMwor6Ia0ID4gd8O6OyAjODFCNAor6Ia1ID4gY8O5aTsgIzgxQjUKK+iGtiA+IHLDuW47ICM4MUI2CivohrcgPiB4acSBbmc7ICM4MUI3CivohrggPiBzxa1pOyAjODFCOAor6Ia5ID4gZsOobjsgIzgxQjkKK+iGuiA+IHnEq25nOyAjODFCQQor6Ia7ID4gdMSDbjsgIzgxQkIKK+iGvCA+IHpodcSBOyAjODFCQwor6Ia9ID4gZMSDbjsgIzgxQkQKK+iGviA+IGt1w6BpOyAjODFCRQor6Ia/ID4gbsOzbmc7ICM4MUJGCivoh4AgPiB0w7puOyAjODFDMAor6IeBID4gbGnDoW47ICM4MUMxCivoh4IgPiBiw6w7ICM4MUMyCivoh4MgPiB5xY9uZzsgIzgxQzMKK+iHhCA+IGp1w6k7ICM4MUM0Civoh4UgPiBjaMO5OyAjODFDNQor6IeGID4gecOsOyAjODFDNgor6IeHID4ganXEg247ICM4MUM3Civoh4ggPiBsw6A7ICM4MUM4Civoh4kgPiBsacSDbjsgIzgxQzkKK+iHiiA+IHPEgW87ICM4MUNBCivoh4sgPiB0w7puOyAjODFDQgor6IeMID4gZ8WtOyAjODFDQwor6IeNID4gccOtOyAjODFDRAor6IeOID4gY8O5aTsgIzgxQ0UKK+iHjyA+IGLDrG47ICM4MUNGCivoh5AgPiB4xatuOyAjODFEMAor6IeRID4gcsO6OyAjODFEMQor6IeSID4gaMO5bzsgIzgxRDIKK+iHkyA+IHrDoG5nOyAjODFEMwor6IeUID4geGnDoG47ICM4MUQ0Civoh5UgPiBiacSBbzsgIzgxRDUKK+iHliA+IHjDrG5nOyAjODFENgor6IeXID4ga3XEgW47ICM4MUQ3Civoh5ggPiBsw6A7ICM4MUQ4Civoh5kgPiB5xIFuOyAjODFEOQor6IeaID4gbMO6OyAjODFEQQor6IebID4gaMO5bzsgIzgxREIKK+iHnCA+IHrEgW5nOyAjODFEQwor6IedID4gbMWtbzsgIzgxREQKK+iHniA+IHHDujsgIzgxREUKK+iHnyA+IHrDoG5nOyAjODFERgor6IegID4gbHXDoW47ICM4MUUwCivoh6EgPiBuw607ICM4MUUxCivoh6IgPiB6xIFuZzsgIzgxRTIKK+iHoyA+IGNow6luOyAjODFFMwor6IekID4gcWnEgW47ICM4MUU0Civoh6UgPiB3w7I7ICM4MUU1Civoh6YgPiBndcOgbmc7ICM4MUU2Civoh6cgPiB6w6FuZzsgIzgxRTcKK+iHqCA+IGzDrW47ICM4MUU4Civoh6kgPiBndcOgbmc7ICM4MUU5Civoh6ogPiB6w6w7ICM4MUVBCivoh6sgPiBqacSDbzsgIzgxRUIKK+iHrCA+IG5pw6g7ICM4MUVDCivoh60gPiBjaMOydTsgIzgxRUQKK+iHriA+IGrDrDsgIzgxRUUKK+iHryA+IGfEgW87ICM4MUVGCivoh7AgPiBjaMOydTsgIzgxRjAKK+iHsSA+IG1pw6FuOyAjODFGMQor6IeyID4gbmnDqDsgIzgxRjIKK+iHsyA+IHpow6w7ICM4MUYzCivoh7QgPiB6aMOsOyAjODFGNAor6Ie1ID4gZ8OpOyAjODFGNQor6Ie2ID4gamnDoG47ICM4MUY2Civoh7cgPiBkacOpOyAjODFGNwor6Ie4ID4gemjDrDsgIzgxRjgKK+iHuSA+IHjEq3U7ICM4MUY5Civoh7ogPiB0w6FpOyAjODFGQQor6Ie7ID4gemjEk247ICM4MUZCCivoh7wgPiBqw6x1OyAjODFGQwor6Ie9ID4geGnDoG47ICM4MUZECivoh74gPiB5w7o7ICM4MUZFCivoh78gPiBjaMSBOyAjODFGRgor6IiAID4gecSDbzsgIzgyMDAKK+iIgSA+IHnDujsgIzgyMDEKK+iIgiA+IGNoxY1uZzsgIzgyMDIKK+iIgyA+IHjDrDsgIzgyMDMKK+iIhCA+IHjDrDsgIzgyMDQKK+iIhSA+IGrDrHU7ICM4MjA1CivoiIYgPiB5w7o7ICM4MjA2CivoiIcgPiB5xa07ICM4MjA3CivoiIggPiB4xKtuZzsgIzgyMDgKK+iIiSA+IGrFrTsgIzgyMDkKK+iIiiA+IGrDrHU7ICM4MjBBCivoiIsgPiB4w6xuOyAjODIwQgor6IiMID4gc2jDqTsgIzgyMEMKK+iIjSA+IHNow6g7ICM4MjBECivoiI8gPiBqxK11OyAjODIwRgor6IiQID4gc2jDrDsgIzgyMTAKK+iIkSA+IHTEgW47ICM4MjExCivoiJIgPiBzaMWrOyAjODIxMgor6IiTID4gc2jDrDsgIzgyMTMKK+iIlCA+IHRpxINuOyAjODIxNAor6IiVID4gZMOgbjsgIzgyMTUKK+iIliA+IHDDuTsgIzgyMTYKK+iIlyA+IHDDuTsgIzgyMTcKK+iImCA+IGd1xINuOyAjODIxOAor6IiZID4gaHXDoDsgIzgyMTkKK+iImiA+IHTEgW47ICM4MjFBCivoiJsgPiBjaHXEg247ICM4MjFCCivoiJwgPiBzaMO5bjsgIzgyMUMKK+iInSA+IHhpw6E7ICM4MjFECivoiJ4gPiB3xa07ICM4MjFFCivoiJ8gPiB6aMWNdTsgIzgyMUYKK+iIoCA+IGTEgW87ICM4MjIwCivoiKEgPiBnxIFuZzsgIzgyMjEKK+iIoiA+IHNoxIFuOyAjODIyMgor6IijID4gecStOyAjODIyMwor6IilID4gcMSBOyAjODIyNQor6IimID4gdMOgaTsgIzgyMjYKK+iIpyA+IGbDoW47ICM4MjI3CivoiKggPiBixINuOyAjODIyOAor6IipID4gY2h1w6FuOyAjODIyOQor6IiqID4gaMOhbmc7ICM4MjJBCivoiKsgPiBmxINuZzsgIzgyMkIKK+iIrCA+IGLEgW47ICM4MjJDCivoiK0gPiBxdcOoOyAjODIyRAor6IivID4gemjFjW5nOyAjODIyRgor6IiwID4gamnDoG47ICM4MjMwCivoiLEgPiBjxIFuZzsgIzgyMzEKK+iIsiA+IGzDrW5nOyAjODIzMgor6IizID4gemjDujsgIzgyMzMKK+iItCA+IHrDqTsgIzgyMzQKK+iItSA+IGTDuW87ICM4MjM1CivoiLYgPiBiw7M7ICM4MjM2CivoiLcgPiB4acOhbjsgIzgyMzcKK+iIuCA+IGfElTsgIzgyMzgKK+iIuSA+IGNodcOhbjsgIzgyMzkKK+iIuiA+IGppw6E7ICM4MjNBCivoiLsgPiBsxa07ICM4MjNCCivoiLwgPiBow7NuZzsgIzgyM0MKK+iIvSA+IHDDoW5nOyAjODIzRAor6Ii+ID4geMSrOyAjODIzRQor6ImAID4gZsO6OyAjODI0MAor6ImBID4gesOgbzsgIzgyNDEKK+iJgiA+IGbDqW5nOyAjODI0Mgor6ImDID4gbMOtOyAjODI0Mwor6ImEID4gc2jEgW87ICM4MjQ0CivoiYUgPiB5w7o7ICM4MjQ1CivoiYYgPiBsw6FuZzsgIzgyNDYKK+iJhyA+IHTErW5nOyAjODI0Nwor6ImJID4gd8SVaTsgIzgyNDkKK+iJiiA+IGLDszsgIzgyNEEKK+iJiyA+IG3ElW5nOyAjODI0Qgor6ImMID4gbmnDoG47ICM4MjRDCivoiY0gPiBqxas7ICM4MjRECivoiY4gPiBodcOhbmc7ICM4MjRFCivoiY8gPiBzaMWPdTsgIzgyNEYKK+iJkCA+IHrFjW5nOyAjODI1MAor6ImRID4gYmnDoG47ICM4MjUxCivoiZIgPiBtw6BvOyAjODI1Mgor6ImTID4gZGnDqTsgIzgyNTMKK+iJlSA+IGLDoG5nOyAjODI1NQor6ImWID4gY2jEgTsgIzgyNTYKK+iJlyA+IHnDrDsgIzgyNTcKK+iJmCA+IHPEgW87ICM4MjU4CivoiZkgPiBjxIFuZzsgIzgyNTkKK+iJmiA+IGPDoW87ICM4MjVBCivoiZsgPiBsw7N1OyAjODI1Qgor6ImcID4gZMOgaTsgIzgyNUMKK+iJniA+IHnDoG87ICM4MjVFCivoiZ8gPiB0w7NuZzsgIzgyNUYKK+iJoSA+IGTEgW5nOyAjODI2MQor6ImiID4gdMOhbjsgIzgyNjIKK+iJoyA+IGzFrTsgIzgyNjMKK+iJpCA+IHnErTsgIzgyNjQKK+iJpSA+IGppw6g7ICM4MjY1CivoiaYgPiBqacOgbjsgIzgyNjYKK+iJpyA+IGjDuW87ICM4MjY3CivoiaggPiBtw6luZzsgIzgyNjgKK+iJqSA+IHHDrTsgIzgyNjkKK+iJqiA+IGzFrTsgIzgyNkEKK+iJqyA+IGzDujsgIzgyNkIKK+iJrCA+IGNow6FuOyAjODI2Qwor6ImtID4gc2h1xIFuZzsgIzgyNkQKK+iJriA+IGfDqG47ICM4MjZFCivoia8gPiBsacOhbmc7ICM4MjZGCivoibAgPiBqacSBbjsgIzgyNzAKK+iJsSA+IGppxIFuOyAjODI3MQor6ImyID4gc8OoOyAjODI3Mgor6ImzID4gecOgbjsgIzgyNzMKK+iJtCA+IGbDujsgIzgyNzQKK+iJtSA+IHDDrW5nOyAjODI3NQor6Im2ID4gecOgbjsgIzgyNzYKK+iJtyA+IHnDoG47ICM4Mjc3CivoibggPiBjxINvOyAjODI3OAor6Im5ID4gY8SDbycgJ3rDrCcgJ3TDs3U7ICM4Mjc5CivoibogPiB5w6w7ICM4MjdBCivoibsgPiBsw6g7ICM4MjdCCivoibwgPiB0xKtuZzsgIzgyN0MKK+iJvSA+IHHDrXU7ICM4MjdECivoib4gPiDDoGk7ICM4MjdFCivoib8gPiBuxINpOyAjODI3Rgor6IqAID4gdGnDoW87ICM4MjgwCivoioEgPiBqacSBbzsgIzgyODEKK+iKgiA+IGppw6k7ICM4MjgyCivoioMgPiBww6luZzsgIzgyODMKK+iKhCA+IHfDoW47ICM4Mjg0CivoioUgPiB5w6w7ICM4Mjg1CivoioYgPiBjaMSBaTsgIzgyODYKK+iKhyA+IG1pw6FuOyAjODI4Nwor6IqIID4gbWnEkzsgIzgyODgKK+iKiSA+IGfEgW47ICM4Mjg5CivoioogPiBxacSBbjsgIzgyOEEKK+iKiyA+IHnDuTsgIzgyOEIKK+iKjCA+IHnDuTsgIzgyOEMKK+iKjSA+IHNow7lvOyAjODI4RAor6IqOID4gccSrb25nOyAjODI4RQor6IqPID4gdMWtOyAjODI4Rgor6IqQID4geGnDoDsgIzgyOTAKK+iKkSA+IHHErTsgIzgyOTEKK+iKkiA+IG3DoW5nOyAjODI5Mgor6IqTID4gesStOyAjODI5Mwor6IqUID4gaMWtaTsgIzgyOTQKK+iKlSA+IHPFq2k7ICM4Mjk1CivoipYgPiB6aMOsOyAjODI5Ngor6IqXID4geGnEgW5nOyAjODI5Nwor6IqYID4gYsSrOyAjODI5OAor6IqZID4gZsO6OyAjODI5OQor6IqaID4gdMO6bjsgIzgyOUEKK+iKmyA+IHfElWk7ICM4MjlCCivoipwgPiB3w7o7ICM4MjlDCivoip0gPiB6aMSrOyAjODI5RAor6IqeID4gccStOyAjODI5RQor6IqfID4gc2jEgW47ICM4MjlGCivoiqAgPiB3w6luOyAjODJBMAor6IqhID4gcWnDoG47ICM4MkExCivoiqIgPiByw6luOyAjODJBMgor6IqjID4gZsWPdTsgIzgyQTMKK+iKpCA+IGvFjXU7ICM4MkE0CivoiqUgPiBqacOoOyAjODJBNQor6IqmID4gbMO6OyAjODJBNgor6IqnID4geMO5OyAjODJBNwor6IqoID4gasOtOyAjODJBOAor6IqpID4gccOtbjsgIzgyQTkKK+iKqiA+IHHDrTsgIzgyQUEKK+iKqyA+IHl1w6FuOyAjODJBQgor6IqsID4gZsSTbjsgIzgyQUMKK+iKrSA+IGLEgTsgIzgyQUQKK+iKriA+IHLDuWk7ICM4MkFFCivoiq8gPiB4xKtuOyAjODJBRgor6IqwID4gasOsOyAjODJCMAor6IqxID4gaHXEgTsgIzgyQjEKK+iKsiA+IGh1xIE7ICM4MkIyCivoirMgPiBmxIFuZzsgIzgyQjMKK+iKtCA+IHfDuTsgIzgyQjQKK+iKtSA+IGp1w6k7ICM4MkI1CivoirYgPiBnxY11OyAjODJCNgor6Iq3ID4gemjErTsgIzgyQjcKK+iKuCA+IHnDum47ICM4MkI4CivoirkgPiBxw61uOyAjODJCOQor6Iq6ID4gxINvOyAjODJCQQor6Iq7ID4gY2jDujsgIzgyQkIKK+iKvCA+IG3DoG87ICM4MkJDCivoir0gPiB5w6E7ICM4MkJECivoir4gPiBmw6hpOyAjODJCRQor6Iq/ID4gcsOobmc7ICM4MkJGCivoi4AgPiBow6FuZzsgIzgyQzAKK+iLgSA+IGPFjW5nOyAjODJDMQor6IuCID4gecOtbjsgIzgyQzIKK+iLgyA+IHnFj3U7ICM4MkMzCivoi4QgPiBiacOgbjsgIzgyQzQKK+iLhSA+IHnDrDsgIzgyQzUKK+iLhyA+IHfElWk7ICM4MkM3Civoi4ggPiBsw6w7ICM4MkM4Civoi4kgPiBwxK07ICM4MkM5Civoi4ogPiDDqDsgIzgyQ0EKK+iLiyA+IHhpw6BuOyAjODJDQgor6IuMID4gY2jDoW5nOyAjODJDQwor6IuNID4gY8SBbmc7ICM4MkNECivoi44gPiBtw6luZzsgIzgyQ0UKK+iLjyA+IHPFqzsgIzgyQ0YKK+iLkCA+IHnDrTsgIzgyRDAKK+iLkSA+IHl1w6BuOyAjODJEMQor6IuSID4gcsSDbjsgIzgyRDIKK+iLkyA+IGzDrW5nOyAjODJEMwor6IuUID4gdMOhaTsgIzgyRDQKK+iLlSA+IHRpw6FvOyAjODJENQor6IuWID4gZMStOyAjODJENgor6IuXID4gbWnDoW87ICM4MkQ3Civoi5ggPiBxxK1vbmc7ICM4MkQ4Civoi5kgPiBsw6w7ICM4MkQ5Civoi5ogPiB5w7JuZzsgIzgyREEKK+iLmyA+IGvEkzsgIzgyREIKK+iLnCA+IG3DuTsgIzgyREMKK+iLnSA+IHDDqGk7ICM4MkRECivoi54gPiBixIFvOyAjODJERQor6IufID4gZ8WPdTsgIzgyREYKK+iLoCA+IG3DrW47ICM4MkUwCivoi6EgPiB5xK07ICM4MkUxCivoi6IgPiB5xK07ICM4MkUyCivoi6MgPiBqw7k7ICM4MkUzCivoi6QgPiBwxK07ICM4MkU0Civoi6UgPiByw7lvOyAjODJFNQor6IumID4ga8WtOyAjODJFNgor6IunID4gemjDuTsgIzgyRTcKK+iLqCA+IG7ErTsgIzgyRTgKK+iLqSA+IGLDszsgIzgyRTkKK+iLqiA+IGLErW5nOyAjODJFQQor6IurID4gc2jEgW47ICM4MkVCCivoi6wgPiBxw611OyAjODJFQwor6IutID4gecSDbzsgIzgyRUQKK+iLriA+IHhpxIFuOyAjODJFRQor6IuvID4gYsSVbjsgIzgyRUYKK+iLsCA+IGjDs25nOyAjODJGMAor6IuxID4gecSrbmc7ICM4MkYxCivoi7IgPiB6aMSDOyAjODJGMgor6IuzID4gZMWNbmc7ICM4MkYzCivoi7QgPiBqxas7ICM4MkY0Civoi7UgPiBkacOpOyAjODJGNQor6Iu2ID4gbmnDqTsgIzgyRjYKK+iLtyA+IGfEgW47ICM4MkY3Civoi7ggPiBoxas7ICM4MkY4Civoi7kgPiBww61uZzsgIzgyRjkKK+iLuiA+IG3DqWk7ICM4MkZBCivoi7sgPiBmw7o7ICM4MkZCCivoi7wgPiBzaMSTbmc7ICM4MkZDCivoi70gPiBnxas7ICM4MkZECivoi74gPiBiw6w7ICM4MkZFCivoi78gPiB3w6hpOyAjODJGRgor6IyAID4gZsO6OyAjODMwMAor6IyBID4gemjDum87ICM4MzAxCivojIIgPiBtw6BvOyAjODMwMgor6IyDID4gZsOgbjsgIzgzMDMKK+iMhCA+IHFpw6k7ICM4MzA0CivojIUgPiBtw6FvOyAjODMwNQor6IyGID4gbcSDbzsgIzgzMDYKK+iMhyA+IGLDoTsgIzgzMDcKK+iMiCA+IHrErTsgIzgzMDgKK+iMiSA+IG3DsjsgIzgzMDkKK+iMiiA+IHrEqzsgIzgzMEEKK+iMiyA+IGTErTsgIzgzMEIKK+iMjCA+IGNow607ICM4MzBDCivojI0gPiBqw6w7ICM4MzBECivojI4gPiBqxKtuZzsgIzgzMEUKK+iMjyA+IGzDs25nOyAjODMwRgor6IyRID4gbmnEg287ICM4MzExCivojJMgPiB4dcOpOyAjODMxMwor6IyUID4gecOtbmc7ICM4MzE0CivojJUgPiBxw61vbmc7ICM4MzE1CivojJYgPiBnw6k7ICM4MzE2CivojJcgPiBtxK1uZzsgIzgzMTcKK+iMmCA+IGzDrDsgIzgzMTgKK+iMmSA+IHLDs25nOyAjODMxOQor6IyaID4gecOsbjsgIzgzMUEKK+iMmyA+IGfDqG47ICM4MzFCCivojJwgPiBxacOgbjsgIzgzMUMKK+iMnSA+IGNoxINpOyAjODMxRAor6IyeID4gY2jDqW47ICM4MzFFCivojJ8gPiB5w7k7ICM4MzFGCivojKAgPiB4xKt1OyAjODMyMAor6IyhID4gesOsOyAjODMyMQor6IyiID4gbGnDqDsgIzgzMjIKK+iMoyA+IHfDujsgIzgzMjMKK+iMpCA+IGrDrDsgIzgzMjQKK+iMpSA+IGvFq2k7ICM4MzI1CivojKYgPiBjw6g7ICM4MzI2CivojKcgPiBjaMOzbmc7ICM4MzI3CivojKggPiBjw607ICM4MzI4CivojKkgPiBnxY91OyAjODMyOQor6IyqID4gZ3XEgW5nOyAjODMyQQor6IyrID4gbcOhbmc7ICM4MzJCCivojKwgPiBjaMOtOyAjODMyQwor6IytID4gamnEgW87ICM4MzJECivojK4gPiBqacSBbzsgIzgzMkUKK+iMryA+IGbDujsgIzgzMkYKK+iMsCA+IHnDujsgIzgzMzAKK+iMsSA+IHpoxas7ICM4MzMxCivojLIgPiB6xKs7ICM4MzMyCivojLMgPiBqacSBbmc7ICM4MzMzCivojLQgPiBow7ppOyAjODMzNAor6Iy1ID4gecSrbjsgIzgzMzUKK+iMtiA+IGNow6E7ICM4MzM2CivojLcgPiBmw6E7ICM4MzM3CivojLggPiByw7NuZzsgIzgzMzgKK+iMuSA+IHLDujsgIzgzMzkKK+iMuiA+IGNoxY1uZzsgIzgzM0EKK+iMuyA+IG3Eg25nOyAjODMzQgor6Iy8ID4gdMOzbmc7ICM4MzNDCivojL0gPiB6aMOybmc7ICM4MzNECivojL8gPiB6aMO6OyAjODMzRgor6I2AID4geMO6bjsgIzgzNDAKK+iNgSA+IGh1w6FuOyAjODM0MQor6I2CID4ga3XEgTsgIzgzNDIKK+iNgyA+IHF1w6FuOyAjODM0Mwor6I2EID4gZ8SBaTsgIzgzNDQKK+iNhSA+IGTEgTsgIzgzNDUKK+iNhiA+IGrEq25nOyAjODM0Ngor6I2HID4geMOsbmc7ICM4MzQ3CivojYggPiBxdcOgbjsgIzgzNDgKK+iNiSA+IGPEg287ICM4MzQ5CivojYogPiBqxKtuZzsgIzgzNEEKK+iNiyA+IMOpcjsgIzgzNEIKK+iNjCA+IMOgbjsgIzgzNEMKK+iNjSA+IHNoxY11OyAjODM0RAor6I2OID4gY2jDrTsgIzgzNEUKK+iNjyA+IHLElW47ICM4MzRGCivojZAgPiBqacOgbjsgIzgzNTAKK+iNkSA+IHTDrTsgIzgzNTEKK+iNkiA+IGh1xIFuZzsgIzgzNTIKK+iNkyA+IHDDrW5nOyAjODM1Mwor6I2UID4gbMOsOyAjODM1NAor6I2VID4gasSrbjsgIzgzNTUKK+iNliA+IGzEg287ICM4MzU2CivojZcgPiBzaMO5OyAjODM1Nwor6I2YID4gemh1xIFuZzsgIzgzNTgKK+iNmSA+IGTDoTsgIzgzNTkKK+iNmiA+IGppw6E7ICM4MzVBCivojZsgPiByw6FvOyAjODM1Qgor6I2cID4gYsOsOyAjODM1Qwor6I2dID4gesOpOyAjODM1RAor6I2eID4gcWnDoW87ICM4MzVFCivojZ8gPiBow7lpOyAjODM1Rgor6I2gID4gccOtOyAjODM2MAor6I2hID4gZMOgbmc7ICM4MzYxCivojaMgPiByw7NuZzsgIzgzNjMKK+iNpCA+IGjFq247ICM4MzY0CivojaUgPiB5w61uZzsgIzgzNjUKK+iNpiA+IGzDuW87ICM4MzY2CivojacgPiB5w61uZzsgIzgzNjcKK+iNqCA+IHjDum47ICM4MzY4CivojakgPiBqw6xuOyAjODM2OQor6I2qID4gc8WrbjsgIzgzNkEKK+iNqyA+IHnDrG47ICM4MzZCCivojawgPiBtxINpOyAjODM2Qwor6I2tID4gaMOzbmc7ICM4MzZECivoja4gPiB6aMOydTsgIzgzNkUKK+iNryA+IHnDoG87ICM4MzZGCivojbAgPiBkw7k7ICM4MzcwCivojbEgPiB3xJVpOyAjODM3MQor6I2yID4gY2jDuTsgIzgzNzIKK+iNsyA+IGTDsnU7ICM4MzczCivojbQgPiBmxas7ICM4Mzc0CivojbUgPiByxJVuOyAjODM3NQor6I22ID4gecOtbjsgIzgzNzYKK+iNtyA+IGjDqTsgIzgzNzcKK+iNuCA+IGLDrTsgIzgzNzgKK+iNuSA+IGLDuTsgIzgzNzkKK+iNuiA+IHnDum47ICM4MzdBCivojbsgPiBkw607ICM4MzdCCivojbwgPiB0w7o7ICM4MzdDCivojb0gPiBzxatpOyAjODM3RAor6I2+ID4gc8WraTsgIzgzN0UKK+iNvyA+IGNow6luZzsgIzgzN0YKK+iOgCA+IGNow6luOyAjODM4MAor6I6BID4gd8O6OyAjODM4MQor6I6CID4gYmnDqTsgIzgzODIKK+iOgyA+IHjEqzsgIzgzODMKK+iOhCA+IGfElW5nOyAjODM4NAor6I6FID4gbMOsOyAjODM4NQor6I6GID4gZsWtOyAjODM4Ngor6I6HID4gemjDuTsgIzgzODcKK+iOiCA+IG3DsjsgIzgzODgKK+iOiSA+IGzDrDsgIzgzODkKK+iOiiA+IHpodcSBbmc7ICM4MzhBCivojosgPiBqw607ICM4MzhCCivojowgPiBkw7pvOyAjODM4Qwor6I6NID4gccOtdTsgIzgzOEQKK+iOjiA+IHNoxIE7ICM4MzhFCivojo8gPiBzxatvOyAjODM4Rgor6I6QID4gY2jDqW47ICM4MzkwCivojpEgPiBmxJNuZzsgIzgzOTEKK+iOkiA+IGrFrTsgIzgzOTIKK+iOkyA+IG3DqWk7ICM4MzkzCivojpQgPiBtw6luZzsgIzgzOTQKK+iOlSA+IHjDrG5nOyAjODM5NQor6I6WID4gasSrbmc7ICM4Mzk2CivojpcgPiBjaMSTOyAjODM5Nwor6I6YID4geMSrbjsgIzgzOTgKK+iOmSA+IGrFq247ICM4Mzk5CivojpogPiB5w6FuOyAjODM5QQor6I6bID4gdMOtbmc7ICM4MzlCCivojpwgPiBkacOgbzsgIzgzOUMKK+iOnSA+IGPDuW87ICM4MzlECivojp4gPiB3xINuOyAjODM5RQor6I6fID4gaMOgbjsgIzgzOUYKK+iOoCA+IHnFj3U7ICM4M0EwCivojqEgPiBjw7lvOyAjODNBMQor6I6iID4gamnDoTsgIzgzQTIKK+iOoyA+IHfDoW5nOyAjODNBMwor6I6kID4gecOzdTsgIzgzQTQKK+iOpSA+IG7ErXU7ICM4M0E1CivojqYgPiBzaMSBbzsgIzgzQTYKK+iOpyA+IHhpw6BuOyAjODNBNwor6I6oID4gbMOhbmc7ICM4M0E4CivojqkgPiBmw7o7ICM4M0E5CivojqogPiDDqTsgIzgzQUEKK+iOqyA+IG3DsjsgIzgzQUIKK+iOrCA+IHfDqG47ICM4M0FDCivojq0gPiBqacOpOyAjODNBRAor6I6uID4gbsOhbjsgIzgzQUUKK+iOryA+IG3DuTsgIzgzQUYKK+iOsCA+IGvEg247ICM4M0IwCivojrEgPiBsw6FpOyAjODNCMQor6I6yID4gbGnDoW47ICM4M0IyCivojrMgPiBzaMOtOyAjODNCMwor6I60ID4gd8WNOyAjODNCNAor6I62ID4gbGnEg247ICM4M0I2CivojrcgPiBow7lvOyAjODNCNwor6I64ID4gecOzdTsgIzgzQjgKK+iOuSA+IHnDrW5nOyAjODNCOQor6I66ID4gecSrbmc7ICM4M0JBCivojrwgPiBjaMO6bjsgIzgzQkMKK+iOvSA+IG3Eg25nOyAjODNCRAor6I6+ID4gbcSDbmc7ICM4M0JFCivojr8gPiBjw6w7ICM4M0JGCivoj4AgPiB3xINuOyAjODNDMAor6I+BID4gasSrbmc7ICM4M0MxCivoj4IgPiBkxKs7ICM4M0MyCivoj4MgPiBxw7o7ICM4M0MzCivoj4QgPiBkxY1uZzsgIzgzQzQKK+iPhSA+IGppxIFuOyAjODNDNQor6I+GID4gesWNdTsgIzgzQzYKK+iPhyA+IGfFqzsgIzgzQzcKK+iPiCA+IGzEgTsgIzgzQzgKK+iPiSA+IGzDuTsgIzgzQzkKK+iPiiA+IGrDujsgIzgzQ0EKK+iPiyA+IHfDqGk7ICM4M0NCCivoj4wgPiBqw7luOyAjODNDQwor6I+NID4gbmnDqDsgIzgzQ0QKK+iPjiA+IGvFq247ICM4M0NFCivoj48gPiBow6k7ICM4M0NGCivoj5AgPiBww7o7ICM4M0QwCivoj5EgPiB6xKs7ICM4M0QxCivoj5IgPiBnxINvOyAjODNEMgor6I+TID4gZ8WtbzsgIzgzRDMKK+iPlCA+IGbDujsgIzgzRDQKK+iPlSA+IGzDum47ICM4M0Q1Civoj5YgPiBjaMSBbmc7ICM4M0Q2Civoj5cgPiBjaMOzdTsgIzgzRDcKK+iPmCA+IHPFjW5nOyAjODNEOAor6I+ZID4gY2jDumk7ICM4M0Q5Civoj5ogPiB6aMOgbjsgIzgzREEKK+iPmyA+IG3DqW47ICM4M0RCCivoj5wgPiBjw6BpOyAjODNEQwor6I+dID4gYsOhOyAjODNERAor6I+eID4gbMOtOyAjODNERQor6I+fID4gdMO5OyAjODNERgor6I+gID4gYsWNOyAjODNFMAor6I+hID4gaMOgbjsgIzgzRTEKK+iPoiA+IGLDoG87ICM4M0UyCivoj6MgPiBxw6xuOyAjODNFMwor6I+kID4ganXEg247ICM4M0U0Civoj6UgPiB4xKs7ICM4M0U1Civoj6YgPiBxw61uOyAjODNFNgor6I+nID4gZMStOyAjODNFNwor6I+oID4gamnEkzsgIzgzRTgKK+iPqSA+IHDDujsgIzgzRTkKK+iPqiA+IGTDoG5nOyAjODNFQQor6I+rID4gasStbjsgIzgzRUIKK+iPrCA+IHpoxINvOyAjODNFQwor6I+tID4gdMOhaTsgIzgzRUQKK+iPriA+IGfEk25nOyAjODNFRQor6I+vID4gaHXDoTsgIzgzRUYKK+iPsCA+IGfFqzsgIzgzRjAKK+iPsSA+IGzDrW5nOyAjODNGMQor6I+yID4gZsSTaTsgIzgzRjIKK+iPsyA+IGrEq247ICM4M0YzCivoj7QgPiDEgW47ICM4M0Y0Civoj7UgPiB3xINuZzsgIzgzRjUKK+iPtiA+IGLElW5nOyAjODNGNgor6I+3ID4gemjFj3U7ICM4M0Y3Civoj7ggPiB5xIFuOyAjODNGOAor6I+5ID4gasWrOyAjODNGOQor6I+6ID4gamnEgW47ICM4M0ZBCivoj7sgPiBsxK1uOyAjODNGQgor6I+8ID4gdMSDbjsgIzgzRkMKK+iPvSA+IHNow7o7ICM4M0ZECivoj74gPiB0acOhbjsgIzgzRkUKK+iPvyA+IGTDoG87ICM4M0ZGCivokIAgPiBoxa07ICM4NDAwCivokIEgPiBxw607ICM4NDAxCivokIIgPiBow6k7ICM4NDAyCivokIMgPiBjw7lpOyAjODQwMwor6JCEID4gdMOhbzsgIzg0MDQKK+iQhSA+IGNoxatuOyAjODQwNQor6JCGID4gYsSTaTsgIzg0MDYKK+iQhyA+IGNow6FuZzsgIzg0MDcKK+iQiCA+IGh1w6FuOyAjODQwOAor6JCJID4gZsOpaTsgIzg0MDkKK+iQiiA+IGzDoWk7ICM4NDBBCivokIsgPiBxxKs7ICM4NDBCCivokIwgPiBtw6luZzsgIzg0MEMKK+iQjSA+IHDDrW5nOyAjODQwRAor6JCOID4gd8STaTsgIzg0MEUKK+iQjyA+IGTDoG47ICM4NDBGCivokJAgPiBzaMOgOyAjODQxMAor6JCRID4gaHXDoW47ICM4NDExCivokJIgPiB5xINuOyAjODQxMgor6JCTID4gecOtOyAjODQxMwor6JCUID4gdGnDoW87ICM4NDE0CivokJUgPiBxw607ICM4NDE1CivokJYgPiB3xINuOyAjODQxNgor6JCXID4gY8OoOyAjODQxNwor6JCYID4gbsOgaTsgIzg0MTgKK+iQmiA+IHTDuW87ICM4NDFBCivokJsgPiBqxKt1OyAjODQxQgor6JCcID4gdGnEkzsgIzg0MUMKK+iQnSA+IGzDum87ICM4NDFECivokKAgPiBtw6luZzsgIzg0MjAKK+iQpCA+IHnDrW5nOyAjODQyNAor6JClID4gecOtbmc7ICM4NDI1CivokKYgPiB5w61uZzsgIzg0MjYKK+iQpyA+IHhpxIFvOyAjODQyNwor6JCoID4gc8OgOyAjODQyOAor6JCpID4gccSrdTsgIzg0MjkKK+iQqiA+IGvEkzsgIzg0MkEKK+iQqyA+IHhpw6BuZzsgIzg0MkIKK+iQrCA+IHfDoG47ICM4NDJDCivokK0gPiB5xa07ICM4NDJECivokK4gPiB5w7k7ICM4NDJFCivokK8gPiBmw7k7ICM4NDJGCivokLAgPiBsacOgbjsgIzg0MzAKK+iQsSA+IHh1xIFuOyAjODQzMQor6JCyID4geXXDoW47ICM4NDMyCivokLMgPiBuw6FuOyAjODQzMwor6JC0ID4gesOpOyAjODQzNAor6JC1ID4gd8WNOyAjODQzNQor6JC2ID4gY2jFrW47ICM4NDM2CivokLcgPiB4acSBbzsgIzg0MzcKK+iQuCA+IHnDujsgIzg0MzgKK+iQuSA+IHBpxIFuOyAjODQzOQor6JC6ID4gbcOgbzsgIzg0M0EKK+iQuyA+IMSBbjsgIzg0M0IKK+iQvCA+IMOoOyAjODQzQwor6JC9ID4gbMO5bzsgIzg0M0QKK+iQviA+IHnDrW5nOyAjODQzRQor6JC/ID4gaMO6bzsgIzg0M0YKK+iRgCA+IGd1xIE7ICM4NDQwCivokYEgPiBqacSBbmc7ICM4NDQxCivokYIgPiBtacSDbjsgIzg0NDIKK+iRgyA+IHrDum87ICM4NDQzCivokYQgPiB6w7lvOyAjODQ0NAor6JGFID4gasWrOyAjODQ0NQor6JGGID4gYsSDbzsgIzg0NDYKK+iRhyA+IHLDs3U7ICM4NDQ3CivokYggPiB4xK07ICM4NDQ4CivokYkgPiB4acOpOyAjODQ0OQor6JGKID4gxIFuOyAjODQ0QQor6JGLID4gccO6OyAjODQ0Qgor6JGMID4gamnEgW47ICM4NDRDCivokY0gPiBmw7o7ICM4NDRECivokY4gPiBsx5w7ICM4NDRFCivokY8gPiBqxKtuZzsgIzg0NEYKK+iRkCA+IHDDqW47ICM4NDUwCivokZEgPiBmxJNuZzsgIzg0NTEKK+iRkiA+IGjDs25nOyAjODQ1Mgor6JGTID4gaMOzbmc7ICM4NDUzCivokZQgPiBow7N1OyAjODQ1NAor6JGVID4gecOhbjsgIzg0NTUKK+iRliA+IHTDujsgIzg0NTYKK+iRlyA+IHpow7k7ICM4NDU3CivokZggPiB6xKs7ICM4NDU4CivokZkgPiB4acSBbmc7ICM4NDU5CivokZogPiBzaMOobjsgIzg0NUEKK+iRmyA+IGfElTsgIzg0NUIKK+iRnCA+IGppw6k7ICM4NDVDCivokZ0gPiBqw6xuZzsgIzg0NUQKK+iRniA+IG3ErTsgIzg0NUUKK+iRnyA+IGh1w6FuZzsgIzg0NUYKK+iRoCA+IHNoxJNuOyAjODQ2MAor6JGhID4gcMO6OyAjODQ2MQor6JGiID4gZ8OgaTsgIzg0NjIKK+iRoyA+IGTFj25nOyAjODQ2Mwor6JGkID4gemjDsnU7ICM4NDY0CivokaUgPiBxacOhbjsgIzg0NjUKK+iRpiA+IHfElWk7ICM4NDY2CivokacgPiBiw7M7ICM4NDY3CivokaggPiB3xJNpOyAjODQ2OAor6JGpID4gcMSBOyAjODQ2OQor6JGqID4gasOsOyAjODQ2QQor6JGrID4gaMO6OyAjODQ2Qgor6JGsID4gesOgbmc7ICM4NDZDCivoka0gPiBqacSBOyAjODQ2RAor6JGuID4gZHXDoG47ICM4NDZFCivoka8gPiB5w6BvOyAjODQ2Rgor6JGwID4gasO5bjsgIzg0NzAKK+iRsSA+IGPFjW5nOyAjODQ3MQor6JGyID4gcXXDoW47ICM4NDcyCivokbMgPiB3xJNpOyAjODQ3Mwor6JG0ID4geGnDoW47ICM4NDc0CivokbUgPiBrw7ppOyAjODQ3NQor6JG2ID4gdMOtbmc7ICM4NDc2CivokbcgPiBoxatuOyAjODQ3Nwor6JG4ID4geMStOyAjODQ3OAor6JG5ID4gc2jEqzsgIzg0NzkKK+iRuiA+IHHDrDsgIzg0N0EKK+iRuyA+IGzDoW47ICM4NDdCCivokbwgPiB6xY1uZzsgIzg0N0MKK+iRvSA+IHnEgW87ICM4NDdECivokb4gPiB5dcSBbjsgIzg0N0UKK+iRvyA+IG3DqWk7ICM4NDdGCivokoAgPiB5xatuOyAjODQ4MAor6JKBID4gc2jDuTsgIzg0ODEKK+iSgiA+IGTDrDsgIzg0ODIKK+iSgyA+IHpodcOgbjsgIzg0ODMKK+iShCA+IGd1xIFuOyAjODQ4NAor6JKGID4geHXEkzsgIzg0ODYKK+iShyA+IGNoxINuOyAjODQ4Nwor6JKIID4ga8SDaTsgIzg0ODgKK+iSiSA+IGvDuWk7ICM4NDg5CivokosgPiBqacSDbmc7ICM4NDhCCivokowgPiBsw7N1OyAjODQ4Qwor6JKNID4gd8OpaTsgIzg0OEQKK+iSjiA+IHDDoGk7ICM4NDhFCivokpAgPiBzxY11OyAjODQ5MAor6JKRID4gecSrbjsgIzg0OTEKK+iSkiA+IHNoxKs7ICM4NDkyCivokpMgPiBjaMO6bjsgIzg0OTMKK+iSlCA+IHNow607ICM4NDk0CivokpUgPiB5xatuOyAjODQ5NQor6JKWID4gemjEk247ICM4NDk2CivokpcgPiBsw6BuZzsgIzg0OTcKK+iSmCA+IG7DujsgIzg0OTgKK+iSmSA+IG3DqW5nOyAjODQ5OQor6JKaID4gaMOpOyAjODQ5QQor6JKbID4gcXXEkzsgIzg0OUIKK+iSnCA+IHN1w6BuOyAjODQ5Qwor6JKdID4geXXDoW47ICM4NDlECivokp4gPiBsw6w7ICM4NDlFCivokp8gPiBqxa07ICM4NDlGCivokqAgPiB4w607ICM4NEEwCivokqEgPiBww6FuZzsgIzg0QTEKK+iSoiA+IGNow7o7ICM4NEEyCivokqMgPiB4w7o7ICM4NEEzCivokqQgPiB0w7o7ICM4NEE0CivokqUgPiBsw611OyAjODRBNQor6JKmID4gd8OyOyAjODRBNgor6JKnID4gemjEk247ICM4NEE3CivokqggPiBxacOgbjsgIzg0QTgKK+iSqSA+IHrFqzsgIzg0QTkKK+iSqiA+IHDDsjsgIzg0QUEKK+iSqyA+IGPFq287ICM4NEFCCivokqwgPiB5dcSBbjsgIzg0QUMKK+iSrSA+IGNow7o7ICM4NEFECivokq4gPiB5w7k7ICM4NEFFCivokq8gPiBrdcSDaTsgIzg0QUYKK+iSsCA+IHDDoW47ICM4NEIwCivokrEgPiBww7o7ICM4NEIxCivokrIgPiBww7o7ICM4NEIyCivokrMgPiBuw6A7ICM4NEIzCivokrQgPiBzaMO5bzsgIzg0QjQKK+iStSA+IHjEqzsgIzg0QjUKK+iStiA+IGbDqW47ICM4NEI2CivokrcgPiB5w7puOyAjODRCNwor6JK4ID4gemjEk25nOyAjODRCOAor6JK5ID4gamnEgW47ICM4NEI5CivokrogPiBqw607ICM4NEJBCivokrsgPiByw7lvOyAjODRCQgor6JK8ID4gY8SBbmc7ICM4NEJDCivokr0gPiDEk247ICM4NEJECivokr4gPiBtw607ICM4NEJFCivokr8gPiBoxIFvOyAjODRCRgor6JOAID4gc8WrbjsgIzg0QzAKK+iTgSA+IHpoxJNuOyAjODRDMQor6JOCID4gbcOtbmc7ICM4NEMyCivok4MgPiBzb3U7ICM4NEMzCivok4QgPiB4w7k7ICM4NEM0Civok4UgPiBsw611OyAjODRDNQor6JOGID4geMOtOyAjODRDNgor6JOHID4gZ8WtOyAjODRDNwor6JOIID4gbMOhbmc7ICM4NEM4Civok4kgPiByw7NuZzsgIzg0QzkKK+iTiiA+IHfElW5nOyAjODRDQQor6JOLID4gZ8OgaTsgIzg0Q0IKK+iTjCA+IGPDuW87ICM4NENDCivok40gPiBzaMSrOyAjODRDRAor6JOOID4gdMOhbmc7ICM4NENFCivok48gPiBsxa1vOyAjODRDRgor6JOQID4gcsO5OyAjODREMAor6JORID4gc8WrbzsgIzg0RDEKK+iTkiA+IHhpxIFuOyAjODREMgor6JOTID4gYsOoaTsgIzg0RDMKK+iTlCA+IHnEg287ICM4NEQ0Civok5UgPiBnw7lpOyAjODRENQor6JOWID4gYsSrOyAjODRENgor6JOXID4gesWPbmc7ICM4NEQ3Civok5ggPiBnxa1uOyAjODREOAor6JOaID4geMSrdTsgIzg0REEKK+iTmyA+IGPDqDsgIzg0REIKK+iTnSA+IGzDoW47ICM4NERECivok58gPiBqw6w7ICM4NERGCivok6AgPiBsw607ICM4NEUwCivok6EgPiBjxIFuOyAjODRFMQor6JOiID4gbMOhbmc7ICM4NEUyCivok6MgPiB5w7k7ICM4NEUzCivok6UgPiB5w6xuZzsgIzg0RTUKK+iTpiA+IG3DsjsgIzg0RTYKK+iTpyA+IGRpw6BvOyAjODRFNwor6JOoID4gdGnEgW87ICM4NEU4Civok6kgPiBtw6BvOyAjODRFOQor6JOqID4gdMWNbmc7ICM4NEVBCivok6sgPiB6aMO6OyAjODRFQgor6JOsID4gcMOpbmc7ICM4NEVDCivok60gPiDEgW47ICM4NEVECivok64gPiBsacOhbjsgIzg0RUUKK+iTryA+IGPFjW5nOyAjODRFRgor6JOwID4geMStOyAjODRGMAor6JOxID4gcMOtbmc7ICM4NEYxCivok7IgPiBxxKt1OyAjODRGMgor6JOzID4gasOsbjsgIzg0RjMKK+iTtCA+IGNow7puOyAjODRGNAor6JO1ID4gamnDqTsgIzg0RjUKK+iTtiA+IHfElWk7ICM4NEY2Civok7cgPiB0xatpOyAjODRGNwor6JO4ID4gY8OhbzsgIzg0RjgKK+iTuSA+IHnFrTsgIzg0RjkKK+iTuiA+IHnDrDsgIzg0RkEKK+iTuyA+IGrDrTsgIzg0RkIKK+iTvCA+IGxpxINvOyAjODRGQwor6JO9ID4gYsOsOyAjODRGRAor6JO+ID4gbMWtOyAjODRGRQor6JO/ID4gc8O5OyAjODRGRgor6JSAID4gYsO5OyAjODUwMAor6JSBID4gemjEgW5nOyAjODUwMQor6JSCID4gbMO6bzsgIzg1MDIKK+iUgyA+IGppw6BuZzsgIzg1MDMKK+iUhCA+IG3DoG47ICM4NTA0CivolIUgPiB5w6FuOyAjODUwNQor6JSGID4gbMOtbmc7ICM4NTA2CivolIcgPiBqw6w7ICM4NTA3CivolIggPiBwacSDbzsgIzg1MDgKK+iUiSA+IGfFrW47ICM4NTA5CivolIogPiBoxINuOyAjODUwQQor6JSLID4gZMOtOyAjODUwQgor6JSMID4gc8O5OyAjODUwQwor6JSNID4gbMO5OyAjODUwRAor6JSOID4gc2jDqDsgIzg1MEUKK+iUjyA+IHNoxIFuZzsgIzg1MEYKK+iUkCA+IGTDrTsgIzg1MTAKK+iUkSA+IG1pw6g7ICM4NTExCivolJIgPiB4xatuOyAjODUxMgor6JSTID4gbcOgbjsgIzg1MTMKK+iUlCA+IGLDszsgIzg1MTQKK+iUlSA+IGTDrDsgIzg1MTUKK+iUliA+IGPDum87ICM4NTE2CivolJcgPiB6aMOoOyAjODUxNwor6JSYID4gc8STbjsgIzg1MTgKK+iUmSA+IHh1w6BuOyAjODUxOQor6JSaID4gd8OoaTsgIzg1MUEKK+iUmyA+IGjDujsgIzg1MUIKK+iUnCA+IMOhbzsgIzg1MUMKK+iUnSA+IG3ErTsgIzg1MUQKK+iUniA+IGzDs3U7ICM4NTFFCivolJ8gPiBjw7k7ICM4NTFGCivolKAgPiB6aMWNbmc7ICM4NTIwCivolKEgPiBjw6BpOyAjODUyMQor6JSiID4gcMOzOyAjODUyMgor6JSjID4gamnEg25nOyAjODUyMwor6JSkID4gbcOsOyAjODUyNAor6JSlID4gY8WNbmc7ICM4NTI1CivolKYgPiBuacSDbzsgIzg1MjYKK+iUpyA+IGjDuWk7ICM4NTI3CivolKggPiBqw7luOyAjODUyOAor6JSpID4gecOtbjsgIzg1MjkKK+iUqiA+IGppw6BuOyAjODUyQQor6JSrID4gecSBbjsgIzg1MkIKK+iUrCA+IHNoxas7ICM4NTJDCivolK0gPiB5w6xuOyAjODUyRAor6JSuID4ga8O5aTsgIzg1MkUKK+iUryA+IGNow6luOyAjODUyRgor6JSwID4gaMO5OyAjODUzMAor6JSxID4gc2jEgTsgIzg1MzEKK+iUsiA+IGvDsnU7ICM4NTMyCivolLMgPiBxacOgbjsgIzg1MzMKK+iUtCA+IG3DoTsgIzg1MzQKK+iUtSA+IHrEgW5nOyAjODUzNQor6JS3ID4gcWnDoW5nOyAjODUzNwor6JS4ID4gZMWNdTsgIzg1MzgKK+iUuSA+IGxpw6BuOyAjODUzOQor6JS6ID4gbMOsbjsgIzg1M0EKK+iUuyA+IGvDsnU7ICM4NTNCCivolLwgPiDEg2k7ICM4NTNDCivolL0gPiBiw6w7ICM4NTNECivolL4gPiBsw607ICM4NTNFCivolL8gPiB3w6lpOyAjODUzRgor6JWAID4gasOtOyAjODU0MAor6JWBID4geMO6bjsgIzg1NDEKK+iVgiA+IHNow6huZzsgIzg1NDIKK+iVgyA+IGbDoW47ICM4NTQzCivolYQgPiBtw6luZzsgIzg1NDQKK+iVhSA+IMWPdTsgIzg1NDUKK+iVhiA+IGNoxINuOyAjODU0Ngor6JWHID4gZGnEg247ICM4NTQ3CivolYggPiB4w7luOyAjODU0OAor6JWJID4gamnEgW87ICM4NTQ5CivolYogPiByxa1pOyAjODU0QQor6JWLID4gcsWtaTsgIzg1NEIKK+iVjCA+IGzElWk7ICM4NTRDCivolY0gPiB5w7o7ICM4NTRECivolY4gPiBxacOhbzsgIzg1NEUKK+iVjyA+IGNow7o7ICM4NTRGCivolZAgPiBodcOhOyAjODU1MAor6JWRID4gamnEgW47ICM4NTUxCivolZIgPiBtxINpOyAjODU1Mgor6JWTID4gecO6bjsgIzg1NTMKK+iVlCA+IGLEgW87ICM4NTU0CivolZUgPiB5w7N1OyAjODU1NQor6JWWID4gccO6OyAjODU1Ngor6JWXID4gbMO5OyAjODU1Nwor6JWYID4gcsOhbzsgIzg1NTgKK+iVmSA+IGjDuWk7ICM4NTU5CivolZogPiDDqDsgIzg1NUEKK+iVmyA+IHTDqW5nOyAjODU1Qgor6JWcID4gZsSVaTsgIzg1NUMKK+iVnSA+IGp1w6k7ICM4NTVECivolZ4gPiB6w7lpOyAjODU1RQor6JWfID4gZsOgOyAjODU1Rgor6JWgID4gcsO6OyAjODU2MAor6JWhID4gZsOpbjsgIzg1NjEKK+iVoiA+IGvDuWk7ICM4NTYyCivolaMgPiBzaMO5bjsgIzg1NjMKK+iVpCA+IHLDumk7ICM4NTY0CivolaUgPiB5xIM7ICM4NTY1CivolaYgPiB4xas7ICM4NTY2CivolacgPiBmw7k7ICM4NTY3CivolaggPiBqdcOpOyAjODU2OAor6JWpID4gZMOgbmc7ICM4NTY5CivolaogPiB3w7o7ICM4NTZBCivolasgPiB0w7NuZzsgIzg1NkIKK+iVrCA+IHPEqzsgIzg1NkMKK+iVrSA+IHhpxIFvOyAjODU2RAor6JWuID4geMOsOyAjODU2RQor6JWvID4gbMOzbmc7ICM4NTZGCivolbAgPiB5w7luOyAjODU3MAor6JWyID4gccOtOyAjODU3Mgor6JWzID4gamnEgW47ICM4NTczCivolbQgPiB5w7luOyAjODU3NAor6JW1ID4gc8WrbjsgIzg1NzUKK+iVtiA+IGzDrW5nOyAjODU3Ngor6JW3ID4gecO5OyAjODU3Nwor6JW4ID4geGnDoTsgIzg1NzgKK+iVuSA+IHnFjW5nOyAjODU3OQor6JW6ID4gasOtOyAjODU3QQor6JW7ID4gaMOybmc7ICM4NTdCCivolbwgPiBzw6w7ICM4NTdDCivolb0gPiBuw7NuZzsgIzg1N0QKK+iVviA+IGzElWk7ICM4NTdFCivolb8gPiB4dcSBbjsgIzg1N0YKK+iWgCA+IHnDuW47ICM4NTgwCivoloEgPiB5w7k7ICM4NTgxCivoloIgPiB4w607ICM4NTgyCivoloMgPiBow6BvOyAjODU4Mwor6JaEID4gYsOzOyAjODU4NAor6JaFID4gaMSBbzsgIzg1ODUKK+iWhiA+IMOgaTsgIzg1ODYKK+iWhyA+IHfDqWk7ICM4NTg3CivologgPiBow7lpOyAjODU4OAor6JaJID4gd8OoaTsgIzg1ODkKK+iWiiA+IGrDrDsgIzg1OEEKK+iWiyA+IGPEqzsgIzg1OEIKK+iWjCA+IHhpxIFuZzsgIzg1OEMKK+iWjSA+IGx1w6BuOyAjODU4RAor6JaOID4gbWnDqDsgIzg1OEUKK+iWjyA+IHnDrDsgIzg1OEYKK+iWkCA+IGzDqW5nOyAjODU5MAor6JaRID4gamnEgW5nOyAjODU5MQor6JaSID4gY8OgbjsgIzg1OTIKK+iWkyA+IHNoxJNuOyAjODU5Mwor6JaUID4gcWnDoW5nOyAjODU5NAor6JaVID4gbGnDoW47ICM4NTk1CivolpYgPiBrxJM7ICM4NTk2CivolpcgPiB5dcOhbjsgIzg1OTcKK+iWmCA+IGTDoTsgIzg1OTgKK+iWmSA+IHTDrDsgIzg1OTkKK+iWmiA+IHTDoW5nOyAjODU5QQor6JabID4geGnEkzsgIzg1OUIKK+iWnCA+IGLDrDsgIzg1OUMKK+iWnSA+IHpow6FuOyAjODU5RAor6JaeID4gc8WrbjsgIzg1OUUKK+iWnyA+IGxpxINuOyAjODU5Rgor6JagID4gZsOhbjsgIzg1QTAKK+iWoSA+IGTErW5nOyAjODVBMQor6JaiID4gamnEkzsgIzg1QTIKK+iWoyA+IGfFrTsgIzg1QTMKK+iWpCA+IHhpw6g7ICM4NUE0CivolqUgPiBzaMWtOyAjODVBNQor6JamID4gamnDoG47ICM4NUE2CivolqcgPiBrxINvOyAjODVBNwor6JaoID4gaMWNbmc7ICM4NUE4CivolqkgPiBzw6A7ICM4NUE5CivolqogPiB4xKtuOyAjODVBQQor6JarID4geMWrbjsgIzg1QUIKK+iWrCA+IHnDoG87ICM4NUFDCivolq4gPiBzxY91OyAjODVBRQor6JavID4gc2jFrTsgIzg1QUYKK+iWsCA+IHjFq247ICM4NUIwCivolrEgPiBkw7lpOyAjODVCMQor6JayID4gcMOtbjsgIzg1QjIKK+iWsyA+IHfElWk7ICM4NUIzCivolrQgPiBuw6luZzsgIzg1QjQKK+iWtSA+IGNow7N1OyAjODVCNQor6Ja2ID4gbcOhaTsgIzg1QjYKK+iWtyA+IHLDujsgIzg1QjcKK+iWuCA+IHBpxIFvOyAjODVCOAor6Ja5ID4gdMOhaTsgIzg1QjkKK+iWuiA+IHHDrTsgIzg1QkEKK+iWuyA+IHrEg287ICM4NUJCCivolrwgPiBjaMOpbjsgIzg1QkMKK+iWvSA+IHpoxJNuOyAjODVCRAor6Ja+ID4gxJVyOyAjODVCRQor6Ja/ID4gbsStOyAjODVCRgor6JeAID4gecOtbmc7ICM4NUMwCivol4EgPiBnxINvOyAjODVDMQor6JeCID4gY8Oybmc7ICM4NUMyCivol4MgPiB4acSBbzsgIzg1QzMKK+iXhCA+IHHDrTsgIzg1QzQKK+iXhSA+IGbDoTsgIzg1QzUKK+iXhiA+IGppxINuOyAjODVDNgor6JeHID4geMO5OyAjODVDNwor6JeIID4ga8WraTsgIzg1QzgKK+iXiSA+IGppw6g7ICM4NUM5Civol4ogPiBiacSDbjsgIzg1Q0EKK+iXiyA+IGRpw6BvOyAjODVDQgor6JeMID4gbcOsOyAjODVDQwor6JeNID4gbMOhbjsgIzg1Q0QKK+iXjiA+IGrDrG47ICM4NUNFCivol48gPiBjw6FuZzsgIzg1Q0YKK+iXkCA+IG1pxINvOyAjODVEMAor6JeRID4gccOtb25nOyAjODVEMQor6JeSID4gcWnDqDsgIzg1RDIKK+iXkyA+IHhpxINuOyAjODVEMwor6JeVID4gxY91OyAjODVENQor6JeWID4geGnDoW47ICM4NUQ2Civol5cgPiBzw7k7ICM4NUQ3Civol5ggPiBsx5g7ICM4NUQ4Civol5kgPiB5w6w7ICM4NUQ5Civol5ogPiB4w7k7ICM4NURBCivol5sgPiB4acSVOyAjODVEQgor6JecID4gbMOtOyAjODVEQwor6JedID4gecOsOyAjODVERAor6JeeID4gbMSDOyAjODVERQor6JefID4gbMSVaTsgIzg1REYKK+iXoCA+IHhpw6BvOyAjODVFMAor6JehID4gZMOtOyAjODVFMQor6JeiID4gemjErTsgIzg1RTIKK+iXoyA+IGLEk2k7ICM4NUUzCivol6QgPiB0w6luZzsgIzg1RTQKK+iXpSA+IHnDoG87ICM4NUU1Civol6YgPiBtw7I7ICM4NUU2Civol6cgPiBodcSDbjsgIzg1RTcKK+iXqCA+IHBpxINvOyAjODVFOAor6JepID4gZsOhbjsgIzg1RTkKK+iXqiA+IHPFj3U7ICM4NUVBCivol6sgPiB0w6FuOyAjODVFQgor6JesID4gdMWraTsgIzg1RUMKK+iXrSA+IHHDrW9uZzsgIzg1RUQKK+iXriA+IHFpw6FvOyAjODVFRQor6JevID4gd8OoaTsgIzg1RUYKK+iXsCA+IGzDrXU7ICM4NUYwCivol7EgPiBow7lpOyAjODVGMQor6JezID4gZ8SDbzsgIzg1RjMKK+iXtCA+IHnDuW47ICM4NUY0Civol7YgPiBsw6w7ICM4NUY2Civol7cgPiBzaMWtOyAjODVGNwor6Je4ID4gY2jDujsgIzg1RjgKK+iXuSA+IMSDaTsgIzg1RjkKK+iXuiA+IGzDrG47ICM4NUZBCivol7sgPiB6xINvOyAjODVGQgor6Je8ID4geHXEgW47ICM4NUZDCivol70gPiBjaMOobjsgIzg1RkQKK+iXviA+IGzDoGk7ICM4NUZFCivol78gPiBow7lvOyAjODVGRgor6JiAID4gdMO5bzsgIzg2MDAKK+iYgSA+IHfDuTsgIzg2MDEKK+iYgiA+IHLFrWk7ICM4NjAyCivomIMgPiByxa1pOyAjODYwMwor6JiEID4gccOtOyAjODYwNAor6JiFID4gaMOpbmc7ICM4NjA1CivomIYgPiBsw7o7ICM4NjA2CivomIcgPiBzxas7ICM4NjA3CivomIggPiB0w7ppOyAjODYwOAor6JiJID4gbcOhbmc7ICM4NjA5CivomIogPiB5w7luOyAjODYwQQor6JiLID4gcMOtbjsgIzg2MEIKK+iYjCA+IHnFrTsgIzg2MEMKK+iYjSA+IHjFq247ICM4NjBECivomI4gPiBqw6w7ICM4NjBFCivomI8gPiBqxKtvbmc7ICM4NjBGCivomJAgPiB4acSBbjsgIzg2MTAKK+iYkSA+IG3DszsgIzg2MTEKK+iYkyA+IHPFqzsgIzg2MTMKK+iYlCA+IGrEq29uZzsgIzg2MTQKK+iYliA+IG5pw6g7ICM4NjE2CivomJcgPiBiw7I7ICM4NjE3CivomJggPiByw6FuZzsgIzg2MTgKK+iYmSA+IHnDrDsgIzg2MTkKK+iYmiA+IHhpxINuOyAjODYxQQor6JibID4gecO6OyAjODYxQgor6JicID4gasO6OyAjODYxQwor6JidID4gbGnDoG47ICM4NjFECivomJ4gPiBsacOgbjsgIzg2MUUKK+iYnyA+IHnErW47ICM4NjFGCivomKAgPiBxacOhbmc7ICM4NjIwCivomKEgPiB5xKtuZzsgIzg2MjEKK+iYoiA+IGzDs25nOyAjODYyMgor6JijID4gdMOybmc7ICM4NjIzCivomKQgPiB3xJVpOyAjODYyNAor6JilID4geXXDqDsgIzg2MjUKK+iYpiA+IGzDrW5nOyAjODYyNgor6JinID4gccO6OyAjODYyNwor6JioID4gecOhbzsgIzg2MjgKK+iYqSA+IGbDoW47ICM4NjI5CivomKogPiBtw607ICM4NjJBCivomKsgPiBsw6FuOyAjODYyQgor6JisID4ga8WraTsgIzg2MkMKK+iYrSA+IGzDoW47ICM4NjJECivomK4gPiBqw6w7ICM4NjJFCivomK8gPiBkw6BuZzsgIzg2MkYKK+iYsSA+IGzDqGk7ICM4NjMxCivomLIgPiBsw6lpOyAjODYzMgor6JizID4gaHXEgzsgIzg2MzMKK+iYtCA+IGbEk25nOyAjODYzNAor6Ji1ID4gemjDrTsgIzg2MzUKK+iYtiA+IHfDqGk7ICM4NjM2CivomLcgPiBrw7ppOyAjODYzNwor6Ji4ID4gemjDoG47ICM4NjM4CivomLkgPiBodcOgaTsgIzg2MzkKK+iYuiA+IGzDrTsgIzg2M0EKK+iYuyA+IGrDrDsgIzg2M0IKK+iYvCA+IG3DrTsgIzg2M0MKK+iYvSA+IGzElWk7ICM4NjNECivomL4gPiBodcOgaTsgIzg2M0UKK+iYvyA+IGzDum87ICM4NjNGCivomYAgPiBqxKs7ICM4NjQwCivomYEgPiBrw7ppOyAjODY0MQor6JmCID4gbMO5OyAjODY0Mgor6JmDID4gamnEgW47ICM4NjQzCivomYYgPiBsw6lpOyAjODY0Ngor6JmHID4gcXXEg247ICM4NjQ3CivomYggPiB4acSBbzsgIzg2NDgKK+iZiSA+IHnDrDsgIzg2NDkKK+iZiiA+IGx1w6FuOyAjODY0QQor6JmLID4gbcOpbjsgIzg2NEIKK+iZjCA+IGJpxJM7ICM4NjRDCivomY0gPiBoxas7ICM4NjRECivomY4gPiBoxa07ICM4NjRFCivomY8gPiBsxa07ICM4NjRGCivomZAgPiBux5xlOyAjODY1MAor6JmRID4gbMecOyAjODY1MQor6JmSID4gc8SrOyAjODY1Mgor6JmTID4geGnEgW87ICM4NjUzCivomZQgPiBxacOhbjsgIzg2NTQKK+iZlSA+IGNow7k7ICM4NjU1CivomZYgPiBoxas7ICM4NjU2CivomZcgPiB4xas7ICM4NjU3CivomZggPiBjw7pvOyAjODY1OAor6JmZID4gZsO6OyAjODY1OQor6JmaID4geMWrOyAjODY1QQor6JmbID4geMWrOyAjODY1Qgor6JmcID4gbMWtOyAjODY1Qwor6JmdID4gaMWtOyAjODY1RAor6JmeID4gecO6OyAjODY1RQor6JmfID4gaMOgbzsgIzg2NUYKK+iZoCA+IGppxINvOyAjODY2MAor6JmhID4gasO5OyAjODY2MQor6JmiID4gZ8O6bzsgIzg2NjIKK+iZoyA+IGLDoG87ICM4NjYzCivomaQgPiB5w6FuOyAjODY2NAor6JmlID4gemjDoG47ICM4NjY1CivomaYgPiB6aMOgbjsgIzg2NjYKK+iZpyA+IGvFq2k7ICM4NjY3CivomaggPiBixIFuOyAjODY2OAor6JmpID4geMOsOyAjODY2OQor6JmqID4gc2jDujsgIzg2NkEKK+iZqyA+IGNow7NuZzsgIzg2NkIKK+iZrCA+IHHDrXU7ICM4NjZDCivoma0gPiBkacSBbzsgIzg2NkQKK+iZriA+IGrEqzsgIzg2NkUKK+iZryA+IHHDrXU7ICM4NjZGCivombAgPiBjaMOpbmc7ICM4NjcwCivombEgPiBzaMSrOyAjODY3MQor6JmzID4gZMOsOyAjODY3Mwor6Jm0ID4gemjDqTsgIzg2NzQKK+iZtSA+IHNow6k7ICM4Njc1CivombYgPiB5xas7ICM4Njc2CivombcgPiBnxIFuOyAjODY3Nwor6Jm4ID4gesStOyAjODY3OAor6Jm5ID4gaMOzbmc7ICM4Njc5CivombogPiBoxa1pOyAjODY3QQor6Jm7ID4gbcOpbmc7ICM4NjdCCivombwgPiBnw6g7ICM4NjdDCivomb0gPiBzxatpOyAjODY3RAor6Jm+ID4geGnEgTsgIzg2N0UKK+iZvyA+IGNow6BpOyAjODY3Rgor6JqAID4gc2jDrTsgIzg2ODAKK+iagSA+IHnErTsgIzg2ODEKK+iagiA+IG3EgzsgIzg2ODIKK+iagyA+IHhpw6BuZzsgIzg2ODMKK+iahCA+IGbEgW5nOyAjODY4NAor6JqFID4gw6g7ICM4Njg1CivomoYgPiBwxIE7ICM4Njg2CivomocgPiBjaMStOyAjODY4Nwor6JqIID4gcWnEgW47ICM4Njg4CivomokgPiB3w6luOyAjODY4OQor6JqKID4gd8OpbjsgIzg2OEEKK+iaiyA+IHLDuWk7ICM4NjhCCivomowgPiBiw6BuZzsgIzg2OEMKK+iajSA+IGLErTsgIzg2OEQKK+iajiA+IHl1w6g7ICM4NjhFCivomo8gPiB5dcOoOyAjODY4Rgor6JqQID4gasWrbjsgIzg2OTAKK+iakSA+IHHDrTsgIzg2OTEKK+iakiA+IHLDoW47ICM4NjkyCivompMgPiB5xK1uOyAjODY5Mwor6JqUID4gccOtOyAjODY5NAor6JqVID4gdGnEg247ICM4Njk1CivompYgPiB5dcOhbjsgIzg2OTYKK+ialyA+IGp1w6k7ICM4Njk3CivompggPiBow7ppOyAjODY5OAor6JqZID4gccOtbjsgIzg2OTkKK+iamiA+IHHDrTsgIzg2OUEKK+iamyA+IHpow7JuZzsgIzg2OUIKK+ianCA+IHnDoTsgIzg2OUMKK+ianSA+IGPDrDsgIzg2OUQKK+ianiA+IG3DuTsgIzg2OUUKK+ianyA+IHfDoW5nOyAjODY5Rgor6JqgID4gZsOpbjsgIzg2QTAKK+iaoSA+IGbDqW47ICM4NkExCivomqIgPiBow6FuZzsgIzg2QTIKK+iaoyA+IGfFjW5nOyAjODZBMwor6JqkID4gesSDbzsgIzg2QTQKK+iapSA+IGbFrTsgIzg2QTUKK+iapiA+IHLDoW47ICM4NkE2CivomqcgPiBqacOoOyAjODZBNwor6JqoID4gZsO6OyAjODZBOAor6JqpID4gY2jEqzsgIzg2QTkKK+iaqiA+IGTFj3U7ICM4NkFBCivomqsgPiBwacOhbzsgIzg2QUIKK+iarCA+IHhpw6BuOyAjODZBQwor6JqtID4gbsOtOyAjODZBRAor6JquID4gdMOoOyAjODZBRQor6JqvID4gccSrdTsgIzg2QUYKK+iasCA+IHnDs3U7ICM4NkIwCivomrEgPiB6aMOgOyAjODZCMQor6JqyID4gcMOtbmc7ICM4NkIyCivomrMgPiBjaMOtOyAjODZCMwor6Jq0ID4gecWPdTsgIzg2QjQKK+iatSA+IGjDqTsgIzg2QjUKK+iatiA+IGjEgW47ICM4NkI2CivomrcgPiBqw7k7ICM4NkI3CivomrggPiBsw6w7ICM4NkI4CivomrkgPiBmw7k7ICM4NkI5CivomrogPiByw6FuOyAjODZCQQor6Jq7ID4gemjDoTsgIzg2QkIKK+iavCA+IGfFj3U7ICM4NkJDCivomr0gPiBww607ICM4NkJECivomr4gPiBixY87ICM4NkJFCivomr8gPiB4acOhbjsgIzg2QkYKK+ibgCA+IHpow7k7ICM4NkMwCivom4EgPiBkacSBbzsgIzg2QzEKK+ibgiA+IGJpxJU7ICM4NkMyCivom4MgPiBixK1uZzsgIzg2QzMKK+ibhCA+IGfFqzsgIzg2QzQKK+ibhSA+IHLDoW47ICM4NkM1Civom4YgPiBxxas7ICM4NkM2Civom4cgPiBzaMOpOyAjODZDNwor6JuIID4gdGnDqDsgIzg2QzgKK+ibiSA+IGzDrW5nOyAjODZDOQor6JuKID4gZ8WtOyAjODZDQQor6JuLID4gZMOgbjsgIzg2Q0IKK+ibjCA+IGfFrTsgIzg2Q0MKK+ibjSA+IHnDrW5nOyAjODZDRAor6JuOID4gbMOsOyAjODZDRQor6JuPID4gY2jEk25nOyAjODZDRgor6JuQID4gccWrOyAjODZEMAor6JuRID4gbcOzdTsgIzg2RDEKK+ibkiA+IGfDqTsgIzg2RDIKK+ibkyA+IGPDrDsgIzg2RDMKK+iblCA+IGjDumk7ICM4NkQ0Civom5UgPiBow7ppOyAjODZENQor6JuWID4gbcOhbmc7ICM4NkQ2Civom5cgPiBmw7k7ICM4NkQ3Civom5ggPiB5w6FuZzsgIzg2RDgKK+ibmSA+IHfEgTsgIzg2RDkKK+ibmiA+IGxpw6g7ICM4NkRBCivom5sgPiB6aMWrOyAjODZEQgor6JucID4gecSrOyAjODZEQwor6JudID4geGnDoW47ICM4NkRECivom54gPiBrw7lvOyAjODZERQor6JufID4gamnEgW87ICM4NkRGCivom6AgPiBsw6w7ICM4NkUwCivom6EgPiB5w6w7ICM4NkUxCivom6IgPiBww61uZzsgIzg2RTIKK+iboyA+IGrEqzsgIzg2RTMKK+ibpCA+IGjDoTsgIzg2RTQKK+ibpSA+IHNow6k7ICM4NkU1Civom6YgPiB5w607ICM4NkU2Civom6cgPiB3xINuZzsgIzg2RTcKK+ibqCA+IG3DsjsgIzg2RTgKK+ibqSA+IHHDrW9uZzsgIzg2RTkKK+ibqiA+IHFpw6g7ICM4NkVBCivom6sgPiBnxa1pOyAjODZFQgor6JusID4gZ8WPbmc7ICM4NkVDCivom60gPiB6aMOsOyAjODZFRAor6JuuID4gbcOhbjsgIzg2RUUKK+ibsCA+IHpow607ICM4NkYwCivom7EgPiBqacOhOyAjODZGMQor6JuyID4gcsOhbzsgIzg2RjIKK+ibsyA+IHPEqzsgIzg2RjMKK+ibtCA+IHHDrTsgIzg2RjQKK+ibtSA+IHjEq25nOyAjODZGNQor6Ju2ID4gbGnDqDsgIzg2RjYKK+ibtyA+IHHDrXU7ICM4NkY3Civom7ggPiBzaMSBbzsgIzg2RjgKK+ibuSA+IHnFj25nOyAjODZGOQor6Ju6ID4gamnDoTsgIzg2RkEKK+ibuyA+IHNow7lpOyAjODZGQgor6Ju8ID4gY2jEkzsgIzg2RkMKK+ibvSA+IGLDoGk7ICM4NkZECivom74gPiDDqTsgIzg2RkUKK+ibvyA+IGjDoG47ICM4NkZGCivonIAgPiBzaMWtOyAjODcwMAor6JyBID4geHXDoW47ICM4NzAxCivonIIgPiBmxJNuZzsgIzg3MDIKK+icgyA+IHNow6huOyAjODcwMwor6JyEID4gemjDqG47ICM4NzA0CivonIUgPiBmxa07ICM4NzA1CivonIYgPiB4acOgbjsgIzg3MDYKK+ichyA+IHpow6k7ICM4NzA3CivonIggPiB3w7o7ICM4NzA4CivonIkgPiBmw7o7ICM4NzA5CivonIogPiBsw607ICM4NzBBCivonIsgPiBsw6FuZzsgIzg3MEIKK+icjCA+IGLDrDsgIzg3MEMKK+icjSA+IGNow7o7ICM4NzBECivonI4gPiB5dcSBbjsgIzg3MEUKK+icjyA+IHnFj3U7ICM4NzBGCivonJAgPiBqacOpOyAjODcxMAor6JyRID4gZMOgbjsgIzg3MTEKK+ickiA+IHnDoW47ICM4NzEyCivonJMgPiB0w61uZzsgIzg3MTMKK+iclCA+IGRpw6BuOyAjODcxNAor6JyVID4gc2jDuWk7ICM4NzE1CivonJYgPiBow7ppOyAjODcxNgor6JyXID4gZ3XEgTsgIzg3MTcKK+icmCA+IHpoxKs7ICM4NzE4CivonJkgPiBzxY1uZzsgIzg3MTkKK+icmiA+IGbEk2k7ICM4NzFBCivonJsgPiBqxas7ICM4NzFCCivonJwgPiBtw6w7ICM4NzFDCivonJ0gPiBxw607ICM4NzFECivonJ4gPiBxw607ICM4NzFFCivonJ8gPiB5w7k7ICM4NzFGCivonKAgPiBqxa1uOyAjODcyMAor6JyhID4gemjDoDsgIzg3MjEKK+icoiA+IG3ElW5nOyAjODcyMgor6JyjID4gcWnEgW5nOyAjODcyMwor6JykID4gc8SrOyAjODcyNAor6JylID4geMSrOyAjODcyNQor6JymID4gbMO6bjsgIzg3MjYKK+icpyA+IGzDrDsgIzg3MjcKK+icqCA+IGRpw6k7ICM4NzI4CivonKkgPiB0acOhbzsgIzg3MjkKK+icqiA+IHTEgW87ICM4NzJBCivonKsgPiBrxatuOyAjODcyQgor6JysID4gZ8SBbjsgIzg3MkMKK+icrSA+IGjDoG47ICM4NzJECivonK4gPiB5w7k7ICM4NzJFCivonK8gPiBiw6BuZzsgIzg3MkYKK+icsCA+IGbDqWk7ICM4NzMwCivonLEgPiBww607ICM4NzMxCivonLIgPiB3xJVpOyAjODczMgor6JyzID4gZMWrbjsgIzg3MzMKK+ictCA+IHnDrDsgIzg3MzQKK+ictSA+IHl1xIFuOyAjODczNQor6Jy2ID4gc8O5OyAjODczNgor6Jy3ID4gcXXDoW47ICM4NzM3CivonLggPiBxacSDbjsgIzg3MzgKK+icuSA+IHLDuWk7ICM4NzM5CivonLogPiBuw607ICM4NzNBCivonLsgPiBxxKtuZzsgIzg3M0IKK+icvCA+IHfDqGk7ICM4NzNDCivonL0gPiBsacSDbmc7ICM4NzNECivonL4gPiBnxa1vOyAjODczRQor6Jy/ID4gd8SBbjsgIzg3M0YKK+idgCA+IGTFjW5nOyAjODc0MAor6J2BID4gw6g7ICM4NzQxCivonYIgPiBixINuOyAjODc0Mgor6J2DID4gZMOsOyAjODc0Mwor6J2EID4gd8SDbmc7ICM4NzQ0CivonYUgPiBjw6FuOyAjODc0NQor6J2GID4gecSDbmc7ICM4NzQ2CivonYcgPiB5w61uZzsgIzg3NDcKK+idiCA+IGfFq287ICM4NzQ4CivonYkgPiBjaMOhbjsgIzg3NDkKK+idiyA+IGzDoDsgIzg3NEIKK+idjCA+IGvEkzsgIzg3NEMKK+idjSA+IGrDrTsgIzg3NEQKK+idjiA+IGjDqTsgIzg3NEUKK+idjyA+IHTDrW5nOyAjODc0Rgor6J2QID4gbcOgaTsgIzg3NTAKK+idkSA+IHjFqzsgIzg3NTEKK+idkiA+IG1pw6FuOyAjODc1Mgor6J2TID4gecO6OyAjODc1Mwor6J2UID4gamnEkzsgIzg3NTQKK+idlSA+IHNow607ICM4NzU1CivonZYgPiB4dcSBbjsgIzg3NTYKK+idlyA+IGh1w6FuZzsgIzg3NTcKK+idmCA+IHnEg247ICM4NzU4CivonZkgPiBiacSBbjsgIzg3NTkKK+idmiA+IHLDs3U7ICM4NzVBCivonZsgPiB3xJNpOyAjODc1Qgor6J2cID4gZsO5OyAjODc1Qwor6J2dID4geXXDoW47ICM4NzVECivonZ4gPiBtw6hpOyAjODc1RQor6J2fID4gd8OoaTsgIzg3NUYKK+idoCA+IGbDujsgIzg3NjAKK+idoSA+IHJ1xINuOyAjODc2MQor6J2iID4geGnDqTsgIzg3NjIKK+idoyA+IHnDs3U7ICM4NzYzCivonaQgPiBxw611OyAjODc2NAor6J2lID4gbcOhbzsgIzg3NjUKK+idpiA+IHhpxIE7ICM4NzY2CivonacgPiB5xKtuZzsgIzg3NjcKK+idqCA+IHNoxKs7ICM4NzY4CivonakgPiBjaMOzbmc7ICM4NzY5CivonaogPiB0xIFuZzsgIzg3NkEKK+idqyA+IHpoxas7ICM4NzZCCivonawgPiB6xY1uZzsgIzg3NkMKK+idrSA+IHTDrTsgIzg3NkQKK+idriA+IGbDuTsgIzg3NkUKK+idryA+IHl1w6FuOyAjODc2Rgor6J2wID4gaMWtaTsgIzg3NzAKK+idsSA+IG3DqW5nOyAjODc3MQor6J2yID4gbMOgOyAjODc3Mgor6J2zID4gZMO6OyAjODc3Mwor6J20ID4gaMO6OyAjODc3NAor6J21ID4gccSrdTsgIzg3NzUKK+idtiA+IGRpw6k7ICM4Nzc2CivonbcgPiBsw6w7ICM4Nzc3CivonbggPiBndcSBOyAjODc3OAor6J25ID4gecWrbjsgIzg3NzkKK+iduiA+IGrFrTsgIzg3N0EKK+iduyA+IG7Eg247ICM4NzdCCivonbwgPiBsw7N1OyAjODc3Qwor6J29ID4gccWtbjsgIzg3N0QKK+idviA+IHLDs25nOyAjODc3RQor6J2/ID4gecOtbmc7ICM4NzdGCivonoAgPiBqacSBbmc7ICM4NzgwCivonoIgPiBsw6FuZzsgIzg3ODIKK+iegyA+IHDDoW5nOyAjODc4Mwor6J6EID4gc8SrOyAjODc4NAor6J6FID4geMSrOyAjODc4NQor6J6GID4gY8OsOyAjODc4Ngor6J6HID4geMSrOyAjODc4Nwor6J6IID4geXXDoW47ICM4Nzg4CivonokgPiB3xJNuZzsgIzg3ODkKK+ieiiA+IGxpw6FuOyAjODc4QQor6J6LID4gc8WNdTsgIzg3OEIKK+iejCA+IGLEgW47ICM4NzhDCivono0gPiByw7NuZzsgIzg3OEQKK+iejiA+IHLDs25nOyAjODc4RQor6J6PID4gasOtOyAjODc4Rgor6J6QID4gd8WrOyAjODc5MAor6J6RID4gccOsdTsgIzg3OTEKK+iekiA+IGjDoG47ICM4NzkyCivonpMgPiBxw61uOyAjODc5Mwor6J6UID4gecOtOyAjODc5NAor6J6VID4gYsSrOyAjODc5NQor6J6WID4gaHXDoTsgIzg3OTYKK+ielyA+IHTDoW5nOyAjODc5Nwor6J6YID4gecStOyAjODc5OAor6J6ZID4gZMO5OyAjODc5OQor6J6aID4gbsOgaTsgIzg3OUEKK+iemyA+IGjDqTsgIzg3OUIKK+ienCA+IGjDujsgIzg3OUMKK+ienSA+IGjDuWk7ICM4NzlECivonp4gPiBtxIM7ICM4NzlFCivonp8gPiBtw61uZzsgIzg3OUYKK+ieoCA+IHnDrDsgIzg3QTAKK+ieoSA+IHfDqW47ICM4N0ExCivonqIgPiB5w61uZzsgIzg3QTIKK+ieoyA+IHTDqW5nOyAjODdBMwor6J6kID4gecWtOyAjODdBNAor6J6lID4gY8SBbmc7ICM4N0E1CivonqggPiBtxINuOyAjODdBOAor6J6qID4gc2jEgW5nOyAjODdBQQor6J6rID4gemjEkzsgIzg3QUIKK+ierCA+IGPDoW87ICM4N0FDCivonq0gPiBjaMSrOyAjODdBRAor6J6uID4gZMOsOyAjODdBRQor6J6vID4gw6FvOyAjODdBRgor6J6wID4gbMO5OyAjODdCMAor6J6xID4gd8OoaTsgIzg3QjEKK+iesiA+IHpow6w7ICM4N0IyCivonrMgPiB0w6FuZzsgIzg3QjMKK+ietCA+IGNow6luOyAjODdCNAor6J61ID4gcGnEgW87ICM4N0I1CivonrYgPiBxw7o7ICM4N0I2CivonrcgPiBww607ICM4N0I3CivonrggPiB5w7o7ICM4N0I4CivonrkgPiBqacOgbjsgIzg3QjkKK+ieuiA+IGzDum87ICM4N0JBCivonrsgPiBsw7N1OyAjODdCQgor6J68ID4gccStbjsgIzg3QkMKK+ievSA+IHpoxY1uZzsgIzg3QkQKK+ieviA+IHnErW47ICM4N0JFCivonr8gPiBqacSBbmc7ICM4N0JGCivon4AgPiBzaHXDoGk7ICM4N0MwCivon4EgPiB3w6luOyAjODdDMQor6J+CID4gamnEgW87ICM4N0MyCivon4MgPiB3w6BuOyAjODdDMwor6J+EID4gemjDrTsgIzg3QzQKK+ifhSA+IHpow6g7ICM4N0M1Civon4YgPiBtw6E7ICM4N0M2Civon4cgPiBtw6E7ICM4N0M3Civon4ggPiBnxatvOyAjODdDOAor6J+JID4gbMOtdTsgIzg3QzkKK+ifiiA+IG3DoW87ICM4N0NBCivon4sgPiB4xKs7ICM4N0NCCivon4wgPiBjxY1uZzsgIzg3Q0MKK+ifjSA+IGzDrTsgIzg3Q0QKK+ifjiA+IG3Eg247ICM4N0NFCivon48gPiB4acSBbzsgIzg3Q0YKK+ifkSA+IHpoxIFuZzsgIzg3RDEKK+ifkiA+IG3Eg25nOyAjODdEMgor6J+TID4geGnDoG5nOyAjODdEMwor6J+UID4gbcOyOyAjODdENAor6J+VID4gesWraTsgIzg3RDUKK+ifliA+IHPEqzsgIzg3RDYKK+iflyA+IHHEq3U7ICM4N0Q3Civon5ggPiB0w6g7ICM4N0Q4Civon5kgPiB6aMOtOyAjODdEOQor6J+aID4gcMOpbmc7ICM4N0RBCivon5sgPiBww6luZzsgIzg3REIKK+ifnCA+IGppxINvOyAjODdEQwor6J+dID4gccO6OyAjODdERAor6J+eID4gYmnDqTsgIzg3REUKK+ifnyA+IGxpw6FvOyAjODdERgor6J+gID4gcMOhbjsgIzg3RTAKK+ifoSA+IGfFrWk7ICM4N0UxCivon6IgPiB4xK07ICM4N0UyCivon6MgPiBqxK07ICM4N0UzCivon6QgPiB6aHXEgW47ICM4N0U0Civon6UgPiBodcOhbmc7ICM4N0U1Civon6YgPiBmw6hpOyAjODdFNgor6J+nID4gbMOhbzsgIzg3RTcKK+ifqCA+IGp1w6k7ICM4N0U4Civon6kgPiBqdcOpOyAjODdFOQor6J+qID4gaMO5aTsgIzg3RUEKK+ifqyA+IHnDrW47ICM4N0VCCivon6wgPiBjaMOhbjsgIzg3RUMKK+ifrSA+IGppxIFvOyAjODdFRAor6J+uID4gc2jDoG47ICM4N0VFCivon68gPiByw6FvOyAjODdFRgor6J+wID4geGnEgW87ICM4N0YwCivon7EgPiBtw7N1OyAjODdGMQor6J+yID4gY2jDs25nOyAjODdGMgor6J+zID4geMO6bjsgIzg3RjMKK+iftCA+IHPEqzsgIzg3RjQKK+iftiA+IGNoxJNuZzsgIzg3RjYKK+iftyA+IGTEgW5nOyAjODdGNwor6J+4ID4gbMStOyAjODdGOAor6J+5ID4geGnDqDsgIzg3RjkKK+ifuiA+IHNow6BuOyAjODdGQQor6J+7ID4gecStOyAjODdGQgor6J+8ID4gasStbmc7ICM4N0ZDCivon70gPiBkw6E7ICM4N0ZECivon74gPiBjaMOhbjsgIzg3RkUKK+ifvyA+IHHDrDsgIzg3RkYKK+iggCA+IGPEqzsgIzg4MDAKK+iggSA+IHhpw6BuZzsgIzg4MDEKK+iggiA+IHNow6g7ICM4ODAyCivooIMgPiBsxa1vOyAjODgwMwor6KCEID4gccOtbjsgIzg4MDQKK+ighSA+IHnDrW5nOyAjODgwNQor6KCGID4gY2jDoGk7ICM4ODA2CivooIcgPiBsw6w7ICM4ODA3CivooIggPiB6w6k7ICM4ODA4CivooIkgPiB4dcSBbjsgIzg4MDkKK+igiiA+IGxpw6FuOyAjODgwQQor6KCLID4gemjDujsgIzg4MEIKK+igjCA+IHrDqTsgIzg4MEMKK+igjSA+IHhpxJM7ICM4ODBECivooI4gPiBtxINuZzsgIzg4MEUKK+igjyA+IHhpw6g7ICM4ODBGCivooJAgPiBxw607ICM4ODEwCivooJEgPiByw7NuZzsgIzg4MTEKK+igkiA+IGppxINuOyAjODgxMgor6KCTID4gbcSVbmc7ICM4ODEzCivooJQgPiBow6FvOyAjODgxNAor6KCVID4gcnXEg247ICM4ODE1CivooJYgPiBow7lvOyAjODgxNgor6KCXID4gemjDum87ICM4ODE3CivooJggPiBqacOpOyAjODgxOAor6KCZID4gYsSrbjsgIzg4MTkKK+igmiA+IGjDqDsgIzg4MUEKK+igmyA+IG1pw6g7ICM4ODFCCivooJwgPiBmw6FuOyAjODgxQwor6KCdID4gbMOpaTsgIzg4MUQKK+igniA+IGppw6k7ICM4ODFFCivooJ8gPiBsw6A7ICM4ODFGCivooKAgPiBtw6w7ICM4ODIwCivooKEgPiBsxK07ICM4ODIxCivooKIgPiBjaMWtbjsgIzg4MjIKK+igoyA+IGzDrDsgIzg4MjMKK+igpCA+IHHEq3U7ICM4ODI0CivooKUgPiBuacOoOyAjODgyNQor6KCmID4gbMO6OyAjODgyNgor6KCnID4gZMO5OyAjODgyNwor6KCoID4geGnEgW87ICM4ODI4CivooKkgPiB6aMWrOyAjODgyOQor6KCqID4gbMOzbmc7ICM4ODJBCivooKsgPiBsw6w7ICM4ODJCCivooKwgPiBsw7NuZzsgIzg4MkMKK+igrSA+IGbEk25nOyAjODgyRAor6KCuID4gecSTOyAjODgyRQor6KCvID4gYsOobmc7ICM4ODJGCivooLAgPiBzaMOgbmc7ICM4ODMwCivooLEgPiBnxa07ICM4ODMxCivooLIgPiBqdcSBbjsgIzg4MzIKK+igsyA+IHnEq25nOyAjODgzMwor6KC1ID4geMSrOyAjODgzNQor6KC2ID4gY8OhbjsgIzg4MzYKK+igtyA+IHHDujsgIzg4MzcKK+iguCA+IHF1w6FuOyAjODgzOAor6KC5ID4gZMO5OyAjODgzOQor6KC6ID4gY8OhbjsgIzg4M0EKK+iguyA+IG3DoW47ICM4ODNCCivooLwgPiBqdcOpOyAjODgzQwor6KC9ID4gamnDqTsgIzg4M0QKK+igviA+IHpow7o7ICM4ODNFCivooL8gPiB6aMOhOyAjODgzRgor6KGAID4geGnElTsgIzg4NDAKK+ihgSA+IGh1xIFuZzsgIzg4NDEKK+ihgiA+IG7DrHU7ICM4ODQyCivooYMgPiBwxJNpOyAjODg0Mwor6KGEID4gbsecOyAjODg0NAor6KGFID4geMOsbjsgIzg4NDUKK+ihhiA+IHpow7JuZzsgIzg4NDYKK+ihhyA+IG3DsjsgIzg4NDcKK+ihiCA+IMOocjsgIzg4NDgKK+ihiSA+IGvDqDsgIzg4NDkKK+ihiiA+IG1pw6g7ICM4ODRBCivooYsgPiB4w6w7ICM4ODRCCivooYwgPiB4w61uZzsgIzg4NEMKK+ihjSA+IHnEg247ICM4ODRECivooY4gPiBrw6BuOyAjODg0RQor6KGPID4geXXDoG47ICM4ODRGCivooZEgPiBsw61uZzsgIzg4NTEKK+ihkiA+IHh1w6BuOyAjODg1Mgor6KGTID4gc2jDuTsgIzg4NTMKK+ihlCA+IHhpw6FuOyAjODg1NAor6KGVID4gdMOybmc7ICM4ODU1CivooZYgPiBsw7JuZzsgIzg4NTYKK+ihlyA+IGppxJM7ICM4ODU3CivooZggPiB4acOhbjsgIzg4NTgKK+ihmSA+IHnDoTsgIzg4NTkKK+ihmiA+IGjDujsgIzg4NUEKK+ihmyA+IHfDqGk7ICM4ODVCCivooZwgPiBkw6BvOyAjODg1Qwor6KGdID4gY2jFjW5nOyAjODg1RAor6KGeID4gd8OoaTsgIzg4NUUKK+ihnyA+IGTDoG87ICM4ODVGCivooaAgPiB6aMWrbjsgIzg4NjAKK+ihoSA+IGjDqW5nOyAjODg2MQor6KGiID4gccO6OyAjODg2Mgor6KGjID4gecSrOyAjODg2Mwor6KGkID4gecSrJyAnesOsJyAncMOhbmc7ICM4ODY0CivooaUgPiBixa07ICM4ODY1CivooaYgPiBnxINuOyAjODg2Ngor6KGnID4gecO6OyAjODg2Nwor6KGoID4gYmnEg287ICM4ODY4CivooakgPiBjaMOgOyAjODg2OQor6KGqID4gecStOyAjODg2QQor6KGrID4gc2jEgW47ICM4ODZCCivooawgPiBjaMOobjsgIzg4NkMKK+ihrSA+IGbFqzsgIzg4NkQKK+ihriA+IGfFrW47ICM4ODZFCivooa8gPiBmxJNuOyAjODg2Rgor6KGwID4gc2h1xIFpOyAjODg3MAor6KGxID4gamnDqTsgIzg4NzEKK+ihsiA+IG7DoDsgIzg4NzIKK+ihsyA+IHpoxY1uZzsgIzg4NzMKK+ihtCA+IGTEg247ICM4ODc0CivoobUgPiByw6w7ICM4ODc1CivoobYgPiB6aMOybmc7ICM4ODc2CivoobcgPiB6aMWNbmc7ICM4ODc3CivoobggPiB4acOoOyAjODg3OAor6KG5ID4gccOtOyAjODg3OQor6KG6ID4geGnDqTsgIzg4N0EKK+ihuyA+IHLDoW47ICM4ODdCCivoobwgPiB6aMSrOyAjODg3Qwor6KG9ID4gcsOobjsgIzg4N0QKK+ihviA+IHHEq247ICM4ODdFCivoob8gPiBqxKtuOyAjODg3Rgor6KKAID4gasWrbjsgIzg4ODAKK+iigSA+IHl1w6FuOyAjODg4MQor6KKCID4gbcOoaTsgIzg4ODIKK+iigyA+IGNow6BpOyAjODg4Mwor6KKEID4gxINvOyAjODg4NAor6KKFID4gbmnEg287ICM4ODg1CivoooYgPiBoxatpOyAjODg4Ngor6KKHID4gcsOhbjsgIzg4ODcKK+iiiCA+IGppxIE7ICM4ODg4CivoookgPiB0w7pvOyAjODg4OQor6KKKID4gbMStbmc7ICM4ODhBCivooosgPiBkw6BpOyAjODg4Qgor6KKMID4gYsOgbzsgIzg4OEMKK+iijSA+IHDDoW87ICM4ODhECivooo4gPiB5w6BvOyAjODg4RQor6KKPID4gesO5bzsgIzg4OEYKK+iikCA+IGLDrDsgIzg4OTAKK+iikSA+IHNow6BvOyAjODg5MQor6KKSID4gdMSDbjsgIzg4OTIKK+iikyA+IGrFrTsgIzg4OTMKK+iilCA+IGjDqDsgIzg4OTQKK+iilSA+IHNow7k7ICM4ODk1CivoopYgPiB4w6x1OyAjODg5Ngor6KKXID4gemjElW47ICM4ODk3CivoopggPiB5w607ICM4ODk4CivoopkgPiBww6A7ICM4ODk5CivoopogPiBixY07ICM4ODlBCivoopsgPiBkxKs7ICM4ODlCCivoopwgPiB3w6A7ICM4ODlDCivoop0gPiBmw7k7ICM4ODlECivoop4gPiBnxa1uOyAjODg5RQor6KKfID4gemjDrDsgIzg4OUYKK+iioCA+IHpow6w7ICM4OEEwCivooqEgPiByw6FuOyAjODhBMQor6KKiID4gcMOgbjsgIzg4QTIKK+iioyA+IHnDrDsgIzg4QTMKK+iipCA+IG3DoG87ICM4OEE0CivooqUgPiB0dW87ICM4OEE1CivooqYgPiBuw6A7ICM4OEE2CivooqcgPiBrxY11OyAjODhBNwor6KKoID4geGnDoG47ICM4OEE4CivooqkgPiBjaMSBbjsgIzg4QTkKK+iiqiA+IHHFqzsgIzg4QUEKK+iiqyA+IGLDqGk7ICM4OEFCCivooqwgPiBnxa1uOyAjODhBQwor6KKtID4geMOtOyAjODhBRAor6KKvID4gYsOzOyAjODhBRgor6KKxID4gZsO6OyAjODhCMQor6KKyID4gecOtOyAjODhCMgor6KKzID4gY2jErTsgIzg4QjMKK+iitCA+IGvDuTsgIzg4QjQKK+iitSA+IHLDqG47ICM4OEI1CivoorYgPiBqacOgbmc7ICM4OEI2CivoorcgPiBqacOhOyAjODhCNwor6KK4ID4gY8O6bjsgIzg4QjgKK+iiuSA+IG3DsjsgIzg4QjkKK+iiuiA+IGppw6k7ICM4OEJBCivoorsgPiDDqXI7ICM4OEJCCivoorwgPiBsw7lvOyAjODhCQwor6KK9ID4gcsO6OyAjODhCRAor6KK+ID4gemjFqzsgIzg4QkUKK+iivyA+IGfFq2k7ICM4OEJGCivoo4AgPiB5xKtuOyAjODhDMAor6KOBID4gY8OhaTsgIzg4QzEKK+ijgiA+IGxpw6g7ICM4OEMyCivoo4UgPiB6aHXEgW5nOyAjODhDNQor6KOGID4gZMSBbmc7ICM4OEM2Civoo4ggPiBrxatuOyAjODhDOAor6KOJID4ga8OobjsgIzg4QzkKK+ijiiA+IG5pxINvOyAjODhDQQor6KOLID4gc2jDuTsgIzg4Q0IKK+ijjCA+IGppw6E7ICM4OENDCivoo40gPiBrxa1uOyAjODhDRAor6KOOID4gY2jDqW5nOyAjODhDRQor6KOPID4gbMStOyAjODhDRgor6KOQID4ganXEgW47ICM4OEQwCivoo5EgPiBzaMSTbjsgIzg4RDEKK+ijkiA+IHDDs3U7ICM4OEQyCivoo5MgPiBnw6k7ICM4OEQzCivoo5QgPiB5w6w7ICM4OEQ0Civoo5UgPiB5w7k7ICM4OEQ1Civoo5YgPiB6aMSVbjsgIzg4RDYKK+ijlyA+IGzDrXU7ICM4OEQ3Civoo5ggPiBxw611OyAjODhEOAor6KOZID4gccO6bjsgIzg4RDkKK+ijmiA+IGrDrDsgIzg4REEKK+ijmyA+IHnDrDsgIzg4REIKK+ijnCA+IGLFrTsgIzg4REMKK+ijnSA+IHpodcSBbmc7ICM4OERECivoo54gPiBzaMO5aTsgIzg4REUKK+ijnyA+IHNoxIE7ICM4OERGCivoo6AgPiBxw7puOyAjODhFMAor6KOhID4gbMStOyAjODhFMQor6KOiID4gbGnDoW47ICM4OEUyCivoo6MgPiBsacOgbjsgIzg4RTMKK+ijpCA+IGvDuTsgIzg4RTQKK+ijpSA+IGppxINuOyAjODhFNQor6KOmID4gZsOzdTsgIzg4RTYKK+ijpyA+IGNoxIFuOyAjODhFNwor6KOoID4gYsOsOyAjODhFOAor6KOpID4gZ8WrbjsgIzg4RTkKK+ijqiA+IHTDoW87ICM4OEVBCivoo6sgPiB5dcOgbjsgIzg4RUIKK+ijrCA+IGzDrW5nOyAjODhFQwor6KOtID4gY2jErTsgIzg4RUQKK+ijriA+IGNoxIFuZzsgIzg4RUUKK+ijryA+IGNow7N1OyAjODhFRgor6KOwID4gZMO6bzsgIzg4RjAKK+ijsSA+IGJpxINvOyAjODhGMQor6KOyID4gbGnEg25nOyAjODhGMgor6KOzID4gY2jDoW5nOyAjODhGMwor6KO0ID4gcMOpaTsgIzg4RjQKK+ijtSA+IHDDqWk7ICM4OEY1Civoo7YgPiBmxJNpOyAjODhGNgor6KO3ID4geXXEgW47ICM4OEY3Civoo7ggPiBsxa1vOyAjODhGOAor6KO5ID4gZ8WtbzsgIzg4RjkKK+ijuiA+IHnEg247ICM4OEZBCivoo7sgPiBkxa07ICM4OEZCCivoo7wgPiB4w607ICM4OEZDCivoo70gPiB6aMOsOyAjODhGRAor6KO+ID4gasWrOyAjODhGRQor6KO/ID4gccStOyAjODhGRgor6KSAID4gasOsOyAjODkwMAor6KSBID4gemjDrTsgIzg5MDEKK+ikgiA+IGd1w6A7ICM4OTAyCivopIMgPiBrw6huOyAjODkwMwor6KSFID4gdMOsOyAjODkwNQor6KSGID4gdMOtOyAjODkwNgor6KSHID4gZsO5OyAjODkwNwor6KSIID4gY2jDs25nOyAjODkwOAor6KSJID4geGnEkzsgIzg5MDkKK+ikiiA+IGJpxINuOyAjODkwQQor6KSLID4gZGnDqTsgIzg5MEIKK+ikjCA+IGvFq247ICM4OTBDCivopI0gPiBkdcSBbjsgIzg5MEQKK+ikjiA+IHjDrHU7ICM4OTBFCivopI8gPiB4w6x1OyAjODkwRgor6KSQID4gaMOpOyAjODkxMAor6KSRID4geXXDoG47ICM4OTExCivopJIgPiBixIFvOyAjODkxMgor6KSTID4gYsSDbzsgIzg5MTMKK+iklCA+IGbDuTsgIzg5MTQKK+iklSA+IHnDujsgIzg5MTUKK+ikliA+IHR1w6BuOyAjODkxNgor6KSXID4gecSDbjsgIzg5MTcKK+ikmCA+IGjFq2k7ICM4OTE4CivopJkgPiBiw6hpOyAjODkxOQor6KSaID4gY2jFrTsgIzg5MUEKK+ikmyA+IGzHmjsgIzg5MUIKK+ikniA+IHnFrW47ICM4OTFFCivopJ8gPiBkw6E7ICM4OTFGCivopKAgPiBnxY11OyAjODkyMAor6KShID4gZMSBOyAjODkyMQor6KSiID4gaHXDoWk7ICM4OTIyCivopKMgPiByw7NuZzsgIzg5MjMKK+ikpCA+IHl1w6BuOyAjODkyNAor6KSlID4gcsO5OyAjODkyNQor6KSmID4gbsOgaTsgIzg5MjYKK+ikpyA+IGrErW9uZzsgIzg5MjcKK+ikqCA+IHPFrW87ICM4OTI4CivopKkgPiBixIFuOyAjODkyOQor6KSqID4gdMO5bjsgIzg5MkEKK+ikqyA+IGNoxK07ICM4OTJCCivopKwgPiBzxINuZzsgIzg5MkMKK+ikrSA+IG5pxINvOyAjODkyRAor6KSuID4gecSrbmc7ICM4OTJFCivopK8gPiBqacOoOyAjODkyRgor6KSwID4gcWnEgW47ICM4OTMwCivopLEgPiBodcOhaTsgIzg5MzEKK+iksiA+IGvDuTsgIzg5MzIKK+iksyA+IGxpw6FuOyAjODkzMwor6KS0ID4gYsSDbzsgIzg5MzQKK+iktSA+IGzDrTsgIzg5MzUKK+iktiA+IHpow6k7ICM4OTM2CivopLcgPiBzaMSrOyAjODkzNwor6KS4ID4gbMeaOyAjODkzOAor6KS5ID4gecOsOyAjODkzOQor6KS6ID4gZGnDqTsgIzg5M0EKK+ikuyA+IHhpw6g7ICM4OTNCCivopLwgPiB4acSBbjsgIzg5M0MKK+ikvSA+IHfDqGk7ICM4OTNECivopL4gPiBiacSDbzsgIzg5M0UKK+ikvyA+IGPDoW87ICM4OTNGCivopYAgPiBqxKs7ICM4OTQwCivopYEgPiBqacSDbmc7ICM4OTQxCivopYIgPiBzxJNuOyAjODk0Mgor6KWDID4gYsSBbzsgIzg5NDMKK+ilhCA+IHhpxIFuZzsgIzg5NDQKK+ilhiA+IHDDujsgIzg5NDYKK+ilhyA+IGppxINuOyAjODk0Nwor6KWIID4gemh1w6BuOyAjODk0OAor6KWJID4gamnDoG47ICM4OTQ5CivopYogPiB6w7lpOyAjODk0QQor6KWLID4gasOtOyAjODk0Qgor6KWMID4gZMSBbjsgIzg5NEMKK+iljSA+IHrDoTsgIzg5NEQKK+iljiA+IGbDoW47ICM4OTRFCivopY8gPiBiw7M7ICM4OTRGCivopZAgPiB4acOgbmc7ICM4OTUwCivopZEgPiB4w61uOyAjODk1MQor6KWSID4gYmnDqTsgIzg5NTIKK+ilkyA+IHLDoW87ICM4OTUzCivopZQgPiBtxINuOyAjODk1NAor6KWVID4gbMOhbjsgIzg5NTUKK+illiA+IMSDbzsgIzg5NTYKK+illyA+IGTDum87ICM4OTU3CivopZggPiBnw7lpOyAjODk1OAor6KWZID4gY8OgbzsgIzg5NTkKK+ilmiA+IHPDuWk7ICM4OTVBCivopZsgPiBuw7NuZzsgIzg5NUIKK+ilnCA+IGNoxIFuOyAjODk1Qwor6KWdID4gbGnDoG47ICM4OTVECivopZ4gPiBiw6w7ICM4OTVFCivopZ8gPiBqxKtuOyAjODk1Rgor6KWgID4gZMSBbmc7ICM4OTYwCivopaEgPiBzaMO6OyAjODk2MQor6KWiID4gdMSDbjsgIzg5NjIKK+iloyA+IGLDrDsgIzg5NjMKK+ilpCA+IGzDoW47ICM4OTY0CivopaUgPiBww7o7ICM4OTY1CivopaYgPiByw7o7ICM4OTY2CivopacgPiB6aMStOyAjODk2Nwor6KWpID4gc2jFrTsgIzg5NjkKK+ilqiA+IHfDoDsgIzg5NkEKK+ilqyA+IHNow6w7ICM4OTZCCivopawgPiBixINpOyAjODk2Qwor6KWtID4geGnDqTsgIzg5NkQKK+ilriA+IGLDszsgIzg5NkUKK+ilryA+IGNow6huOyAjODk2Rgor6KWwID4gbMOgaTsgIzg5NzAKK+ilsSA+IGzDs25nOyAjODk3MQor6KWyID4geMOtOyAjODk3Mgor6KWzID4geGnEgW47ICM4OTczCivopbQgPiBsw6FuOyAjODk3NAor6KW1ID4gemjDqTsgIzg5NzUKK+iltiA+IGTDoGk7ICM4OTc2CivopbggPiB6w6BuOyAjODk3OAor6KW5ID4gc2jEqzsgIzg5NzkKK+iluiA+IGppxINuOyAjODk3QQor6KW7ID4gcMOgbjsgIzg5N0IKK+ilvCA+IHnDrDsgIzg5N0MKK+ilviA+IHnDoDsgIzg5N0UKK+ilvyA+IHjEqzsgIzg5N0YKK+imgCA+IHjEqzsgIzg5ODAKK+imgSA+IHnDoG87ICM4OTgxCivopoIgPiBmxJVuZzsgIzg5ODIKK+imgyA+IHTDoW47ICM4OTgzCivopoUgPiBiacOgbzsgIzg5ODUKK+imhiA+IGbDuTsgIzg5ODYKK+imhyA+IGLDoDsgIzg5ODcKK+imiCA+IGjDqTsgIzg5ODgKK+imiSA+IGrEqzsgIzg5ODkKK+imiiA+IGrEqzsgIzg5OEEKK+imiyA+IGppw6BuOyAjODk4Qgor6KaMID4gZ3XEgW47ICM4OThDCivopo0gPiBiacOgbjsgIzg5OEQKK+imjiA+IHnDoG47ICM4OThFCivopo8gPiBnxatpOyAjODk4Rgor6KaQID4ganXDqTsgIzg5OTAKK+imkSA+IHBpxINuOyAjODk5MQor6KaSID4gbcOhbzsgIzg5OTIKK+imkyA+IG3DrDsgIzg5OTMKK+imlCA+IG3DrDsgIzg5OTQKK+imlSA+IG1pw6g7ICM4OTk1CivoppYgPiBzaMOsOyAjODk5Ngor6KaXID4gc8SrOyAjODk5Nwor6KaYID4gemjEgW47ICM4OTk4CivoppkgPiBsw7pvOyAjODk5OQor6KaaID4ganXDqTsgIzg5OUEKK+immyA+IG3DrDsgIzg5OUIKK+imnCA+IHRpw6BvOyAjODk5Qwor6KadID4gbGnDoW47ICM4OTlECivopp4gPiB5w6BvOyAjODk5RQor6KafID4gemjDrDsgIzg5OUYKK+imoCA+IGrFq247ICM4OUEwCivopqEgPiB4w607ICM4OUExCivopqIgPiBzaMSDbjsgIzg5QTIKK+imoyA+IHfEk2k7ICM4OUEzCivopqQgPiB4w6w7ICM4OUE0CivopqUgPiB0acSDbjsgIzg5QTUKK+impiA+IHnDujsgIzg5QTYKK+impyA+IGzEg247ICM4OUE3CivopqggPiDDqDsgIzg5QTgKK+imqSA+IGTFrTsgIzg5QTkKK+imqiA+IHHEq247ICM4OUFBCivopqsgPiBwxINuZzsgIzg5QUIKK+imrCA+IGrDrDsgIzg5QUMKK+imrSA+IG3DrW5nOyAjODlBRAor6KauID4gecOtbmc7ICM4OUFFCivopq8gPiBnw7J1OyAjODlBRgor6KawID4gccO5OyAjODlCMAor6KaxID4gemjDoG47ICM4OUIxCivoprIgPiBqxK1uOyAjODlCMgor6KazID4gZ3XEgW47ICM4OUIzCivoprQgPiBkxJNuZzsgIzg5QjQKK+imtSA+IGppw6BuOyAjODlCNQor6Ka2ID4gbMO6bzsgIzg5QjYKK+imtyA+IHHDuTsgIzg5QjcKK+imuCA+IGppw6BuOyAjODlCOAor6Ka5ID4gd8OpaTsgIzg5QjkKK+imuiA+IGp1w6k7ICM4OUJBCivoprsgPiBxw7k7ICM4OUJCCivoprwgPiBsw7pvOyAjODlCQwor6Ka9ID4gbMSDbjsgIzg5QkQKK+imviA+IHNoxJVuOyAjODlCRQor6Ka/ID4gZMOtOyAjODlCRgor6KeAID4gZ3XEgW47ICM4OUMwCivop4EgPiBqacOgbjsgIzg5QzEKK+ingiA+IGd1xIFuOyAjODlDMgor6KeDID4gecOgbjsgIzg5QzMKK+inhCA+IGfFq2k7ICM4OUM0Civop4UgPiBtw6w7ICM4OUM1Civop4YgPiBzaMOsOyAjODlDNgor6KeHID4gemjEgW47ICM4OUM3Civop4ggPiBsxINuOyAjODlDOAor6KeJID4ganXDqTsgIzg5QzkKK+iniiA+IGrDrDsgIzg5Q0EKK+iniyA+IHjDrTsgIzg5Q0IKK+injCA+IGTDrTsgIzg5Q0MKK+injSA+IHRpxINuOyAjODlDRAor6KeOID4gecO6OyAjODlDRQor6KePID4gZ8OydTsgIzg5Q0YKK+inkCA+IGrErW47ICM4OUQwCivop5EgPiBxw7k7ICM4OUQxCivop5IgPiBqacSDbzsgIzg5RDIKK+inkyA+IGrEq3U7ICM4OUQzCivop5QgPiBqxKtuOyAjODlENAor6KeVID4gY8WrOyAjODlENQor6KeWID4ganXDqTsgIzg5RDYKK+inlyA+IHpow6w7ICM4OUQ3Civop5ggPiBjaMOgbzsgIzg5RDgKK+inmSA+IGrDrTsgIzg5RDkKK+inmiA+IGfFqzsgIzg5REEKK+inmyA+IGTDoG47ICM4OURCCivop5wgPiB6xa1pOyAjODlEQwor6KedID4gZMStOyAjODlERAor6KeeID4gc2jEgW5nOyAjODlERQor6KefID4gaHXDoDsgIzg5REYKK+inoCA+IHF1w6FuOyAjODlFMAor6KehID4gZ8OpOyAjODlFMQor6KeiID4gY2jDrDsgIzg5RTIKK+inoyA+IGppxJU7ICM4OUUzCivop6QgPiBnxa1pOyAjODlFNAor6KelID4gZ8WNbmc7ICM4OUU1Civop6YgPiBow7NuZzsgIzg5RTYKK+inpyA+IGppxJU7ICM4OUU3Civop6ggPiBow7luOyAjODlFOAor6KepID4gccOtdTsgIzg5RTkKK+inqiA+IHjEq25nOyAjODlFQQor6KerID4gc8O5OyAjODlFQgor6KesID4gbsOtOyAjODlFQwor6KetID4gasSrOyAjODlFRAor6KeuID4gbMO5OyAjODlFRQor6KevID4gemjDrDsgIzg5RUYKK+insCA+IHpoxIE7ICM4OUYwCivop7EgPiBiw6w7ICM4OUYxCivop7IgPiB4xKtuZzsgIzg5RjIKK+insyA+IGjDujsgIzg5RjMKK+intCA+IHNoxIFuZzsgIzg5RjQKK+intSA+IGfFjW5nOyAjODlGNQor6Ke2ID4gemjDrDsgIzg5RjYKK+intyA+IHh1w6k7ICM4OUY3Civop7ggPiBjaMO5OyAjODlGOAor6Ke5ID4geMSrOyAjODlGOQor6Ke6ID4gecOtOyAjODlGQQor6Ke7ID4gbMO5OyAjODlGQgor6Ke8ID4ganXDqTsgIzg5RkMKK+invSA+IHjEqzsgIzg5RkQKK+inviA+IHnDoG47ICM4OUZFCivop78gPiB4xKs7ICM4OUZGCivoqIAgPiB5w6FuOyAjOEEwMAor6KiBID4gecOhbicgJ3rDrCcgJ3DDoW5nOyAjOEEwMQor6KiCID4gZMOsbmc7ICM4QTAyCivoqIMgPiBmw7k7ICM4QTAzCivoqIQgPiBxw611OyAjOEEwNAor6KiFID4gccOtdTsgIzhBMDUKK+iohiA+IGppw6BvOyAjOEEwNgor6KiHID4gaMWNbmc7ICM4QTA3CivoqIggPiBqw6w7ICM4QTA4CivoqIkgPiBmw6BuOyAjOEEwOQor6KiKID4geMO5bjsgIzhBMEEKK+ioiyA+IGRpw6BvOyAjOEEwQgor6KiMID4gaMOzbmc7ICM4QTBDCivoqI0gPiBjaMOgOyAjOEEwRAor6KiOID4gdMSDbzsgIzhBMEUKK+iojyA+IHjFqzsgIzhBMEYKK+iokCA+IGppw6k7ICM4QTEwCivoqJEgPiB5w607ICM4QTExCivoqJIgPiByw6huOyAjOEExMgor6KiTID4geMO5bjsgIzhBMTMKK+iolCA+IHnDrW47ICM4QTE0CivoqJUgPiBzaMOgbjsgIzhBMTUKK+ioliA+IHHDrDsgIzhBMTYKK+iolyA+IHTFq287ICM4QTE3CivoqJggPiBqw6w7ICM4QTE4CivoqJkgPiB4w7luOyAjOEExOQor6KiaID4gecOtbjsgIzhBMUEKK+iomyA+IMOpOyAjOEExQgor6KicID4gZsSTbjsgIzhBMUMKK+ionSA+IHnDoDsgIzhBMUQKK+ioniA+IHnEgW87ICM4QTFFCivoqJ8gPiBzw7JuZzsgIzhBMUYKK+iooCA+IHNoxJVuOyAjOEEyMAor6KihID4gecOtbjsgIzhBMjEKK+iooiA+IHjEq247ICM4QTIyCivoqKMgPiBqdcOpOyAjOEEyMwor6KikID4geGnDoW87ICM4QTI0CivoqKUgPiBuw6g7ICM4QTI1CivoqKYgPiBjaMOpbjsgIzhBMjYKK+iopyA+IHnDs3U7ICM4QTI3CivoqKggPiB6aMStOyAjOEEyOAor6KipID4geMSrb25nOyAjOEEyOQor6KiqID4gZsSDbmc7ICM4QTJBCivoqKsgPiB4w6xuOyAjOEEyQgor6KisID4gY2jEgW87ICM4QTJDCivoqK0gPiBzaMOoOyAjOEEyRAor6KiuID4geGnEgW47ICM4QTJFCivoqK8gPiBzaMSDOyAjOEEyRgor6KiwID4gdMO6bjsgIzhBMzAKK+iosSA+IHjFrTsgIzhBMzEKK+iosiA+IHnDrDsgIzhBMzIKK+iosyA+IHnDrDsgIzhBMzMKK+iotCA+IHPDuTsgIzhBMzQKK+iotSA+IGNoxKs7ICM4QTM1CivoqLYgPiBoxJM7ICM4QTM2CivoqLcgPiBzaMSTbjsgIzhBMzcKK+iouCA+IGjDqTsgIzhBMzgKK+iouSA+IHjDuTsgIzhBMzkKK+iouiA+IHpoxJVuOyAjOEEzQQor6Ki7ID4gemjDuTsgIzhBM0IKK+iovCA+IHpow6huZzsgIzhBM0MKK+iovSA+IGfDsnU7ICM4QTNECivoqL4gPiB6xK07ICM4QTNFCivoqL8gPiB6xK07ICM4QTNGCivoqYAgPiB6aMSBbjsgIzhBNDAKK+ipgSA+IGfFrTsgIzhBNDEKK+ipgiA+IGbDuTsgIzhBNDIKK+ipgyA+IHF1xINuOyAjOEE0Mwor6KmEID4gZGnDqTsgIzhBNDQKK+iphSA+IGzDrW5nOyAjOEE0NQor6KmGID4gZMStOyAjOEE0Ngor6KmHID4gecOgbmc7ICM4QTQ3CivoqYggPiBsw6w7ICM4QTQ4CivoqYkgPiBuw6FvOyAjOEE0OQor6KmKID4gcMOgbjsgIzhBNEEKK+ipiyA+IHpow7J1OyAjOEE0Qgor6KmMID4gZ8OgbjsgIzhBNEMKK+ipjSA+IHnDrDsgIzhBNEQKK+ipjiA+IGrDuTsgIzhBNEUKK+ipjyA+IMOgbzsgIzhBNEYKK+ipkCA+IHpow6A7ICM4QTUwCivoqZEgPiB0w7pvOyAjOEE1MQor6KmSID4gecOtOyAjOEE1Mgor6KmTID4gccWtOyAjOEE1Mwor6KmUID4gemjDoG87ICM4QTU0CivoqZUgPiBww61uZzsgIzhBNTUKK+ipliA+IGLDrDsgIzhBNTYKK+iplyA+IHjDrG9uZzsgIzhBNTcKK+ipmCA+IHHDuTsgIzhBNTgKK+ipmSA+IGLDoTsgIzhBNTkKK+ipmiA+IGTDoTsgIzhBNUEKK+ipmyA+IHrFrTsgIzhBNUIKK+ipnCA+IHTEgW87ICM4QTVDCivoqZ0gPiB6aMWtOyAjOEE1RAor6KmeID4gY8OtOyAjOEE1RQor6KmfID4gemjDqTsgIzhBNUYKK+ipoCA+IHnFj25nOyAjOEE2MAor6KmhID4geMWtOyAjOEE2MQor6KmiID4geMO6bjsgIzhBNjIKK+ipoyA+IHnDrDsgIzhBNjMKK+ippCA+IGh1xINuZzsgIzhBNjQKK+ippSA+IGjDqTsgIzhBNjUKK+ippiA+IHNow6w7ICM4QTY2CivoqacgPiBjaMOhOyAjOEE2Nwor6KmoID4gamnEgW87ICM4QTY4CivoqakgPiBzaMSrOyAjOEE2OQor6KmqID4gaMSVbjsgIzhBNkEKK+ipqyA+IGNow6A7ICM4QTZCCivoqawgPiBnw7J1OyAjOEE2Qwor6KmtID4gZ8WtaTsgIzhBNkQKK+ipriA+IHF1w6FuOyAjOEE2RQor6KmvID4gaMO5aTsgIzhBNkYKK+ipsCA+IGppw6k7ICM4QTcwCivoqbEgPiBodcOgOyAjOEE3MQor6KmyID4gZ8SBaTsgIzhBNzIKK+ipsyA+IHhpw6FuZzsgIzhBNzMKK+iptCA+IHfEk2k7ICM4QTc0CivoqbUgPiBzaMSTbjsgIzhBNzUKK+iptiA+IGNow7N1OyAjOEE3Ngor6Km3ID4gdMOzbmc7ICM4QTc3CivoqbggPiBtw607ICM4QTc4CivoqbkgPiB6aMSBbjsgIzhBNzkKK+ipuiA+IG3DrG5nOyAjOEE3QQor6Km7ID4gw6g7ICM4QTdCCivoqbwgPiBoxatpOyAjOEE3Qwor6Km9ID4gecOhbjsgIzhBN0QKK+ipviA+IHjEq29uZzsgIzhBN0UKK+ipvyA+IGd1w6A7ICM4QTdGCivoqoAgPiDDqHI7ICM4QTgwCivoqoEgPiBixJVuZzsgIzhBODEKK+iqgiA+IHRpxINvOyAjOEE4Mgor6KqDID4gY2jErTsgIzhBODMKK+iqhCA+IGzElWk7ICM4QTg0CivoqoUgPiB6aMWrOyAjOEE4NQor6KqGID4ga3XEgW5nOyAjOEE4Ngor6KqHID4ga3XEgTsgIzhBODcKK+iqiCA+IHfDujsgIzhBODgKK+iqiSA+IHnDuTsgIzhBODkKK+iqiiA+IHTDqW5nOyAjOEE4QQor6KqLID4gasOsOyAjOEE4Qgor6KqMID4gemjDrDsgIzhBOEMKK+iqjSA+IHLDqG47ICM4QThECivoqo4gPiBzw7k7ICM4QThFCivoqo8gPiBsxINuZzsgIzhBOEYKK+iqkCA+IMOpOyAjOEE5MAor6KqRID4ga3XDoW5nOyAjOEE5MQor6KqSID4gw6g7ICM4QTkyCivoqpMgPiBzaMOsOyAjOEE5Mwor6KqUID4gdMStbmc7ICM4QTk0CivoqpUgPiBkw6BuOyAjOEE5NQor6KqWID4gYsOzOyAjOEE5Ngor6KqXID4gY2jDoW47ICM4QTk3CivoqpggPiB5w7J1OyAjOEE5OAor6KqZID4gaMOpbmc7ICM4QTk5CivoqpogPiBxacOgbzsgIzhBOUEKK+iqmyA+IHHEq247ICM4QTlCCivoqpwgPiBzaHXDoDsgIzhBOUMKK+iqnSA+IMSBbjsgIzhBOUQKK+iqniA+IHnFrTsgIzhBOUUKK+iqnyA+IHhpw6BvOyAjOEE5Rgor6KqgID4gY2jDqW5nOyAjOEFBMAor6KqhID4gamnDqDsgIzhBQTEKK+iqoiA+IHhpw6BuOyAjOEFBMgor6KqjID4gd8O6OyAjOEFBMwor6KqkID4gd8O5OyAjOEFBNAor6KqlID4gZ8OgbzsgIzhBQTUKK+iqpiA+IHPDsm5nOyAjOEFBNgor6KqnID4gcMWtOyAjOEFBNwor6KqoID4gaMO5aTsgIzhBQTgKK+iqqSA+IGrDrG5nOyAjOEFBOQor6KqqID4gc2jFq287ICM4QUFBCivoqqsgPiB6aMOobjsgIzhBQUIKK+iqrCA+IHNoxatvOyAjOEFBQwor6KqtID4gZMO6OyAjOEFBRAor6KqvID4gY2jDoG5nOyAjOEFBRgor6KqwID4gc2jDumk7ICM4QUIwCivoqrEgPiBqacOpOyAjOEFCMQor6KqyID4ga8OoOyAjOEFCMgor6KqzID4gccWrOyAjOEFCMwor6Kq0ID4gY8Ozbmc7ICM4QUI0CivoqrUgPiB4acOhbzsgIzhBQjUKK+iqtiA+IHPDuWk7ICM4QUI2CivoqrcgPiB3xINuZzsgIzhBQjcKK+iquCA+IHh1w6FuOyAjOEFCOAor6Kq5ID4gZsSVaTsgIzhBQjkKK+iquiA+IGNoxKs7ICM4QUJBCivoqrsgPiB0w6A7ICM4QUJCCivoqrwgPiB5w607ICM4QUJDCivoqr0gPiBuw6E7ICM4QUJECivoqr4gPiB5w61uOyAjOEFCRQor6Kq/ID4gZGnDoG87ICM4QUJGCivoq4AgPiBwxK07ICM4QUMwCivoq4EgPiBjaMO5bzsgIzhBQzEKK+irgiA+IGNoxINuOyAjOEFDMgor6KuDID4gY2jEk247ICM4QUMzCivoq4QgPiB6aMWrbjsgIzhBQzQKK+irhSA+IGrEqzsgIzhBQzUKK+irhiA+IHHEqzsgIzhBQzYKK+irhyA+IHTDoW47ICM4QUM3Civoq4ggPiB6aMO5aTsgIzhBQzgKK+iriSA+IHfElWk7ICM4QUM5Civoq4ogPiBqw7o7ICM4QUNBCivoq4sgPiBxxK1uZzsgIzhBQ0IKK+irjCA+IGppw6BuOyAjOEFDQwor6KuNID4gemjEk25nOyAjOEFDRAor6KuOID4gesOpOyAjOEFDRQor6KuPID4gesWNdTsgIzhBQ0YKK+irkCA+IHFpxIFuOyAjOEFEMAor6KuRID4gemjDum87ICM4QUQxCivoq5IgPiBsacOgbmc7ICM4QUQyCivoq5MgPiBqacOgbjsgIzhBRDMKK+irlCA+IHpow7k7ICM4QUQ0Civoq5UgPiBow6FvOyAjOEFENQor6KuWID4gbMO5bjsgIzhBRDYKK+irlyA+IHNoxJVuOyAjOEFENwor6KuYID4gYmnEg287ICM4QUQ4Civoq5kgPiBodcOgaTsgIzhBRDkKK+irmiA+IHBpw6FuOyAjOEFEQQor6KubID4gecO6OyAjOEFEQgor6KucID4gZGnDqTsgIzhBREMKK+irnSA+IHjFrTsgIzhBREQKK+irniA+IHBpw6FuOyAjOEFERQor6KufID4gc2jDrDsgIzhBREYKK+iroCA+IHh1xIFuOyAjOEFFMAor6KuhID4gc2jDrDsgIzhBRTEKK+iroiA+IGjDuW47ICM4QUUyCivoq6MgPiBodcOgOyAjOEFFMwor6KukID4gw6g7ICM4QUU0Civoq6UgPiB6aMOybmc7ICM4QUU1Civoq6YgPiBkw6w7ICM4QUU2Civoq6cgPiB4acOpOyAjOEFFNwor6KuoID4gZsO6OyAjOEFFOAor6KupID4gcMWtOyAjOEFFOQor6KuqID4gdMOtbmc7ICM4QUVBCivoq6sgPiBqacOgbjsgIzhBRUIKK+irrCA+IHHErTsgIzhBRUMKK+irrSA+IHnDuTsgIzhBRUQKK+irriA+IHrEqzsgIzhBRUUKK+irryA+IGNodcOhbjsgIzhBRUYKK+irsCA+IHjErTsgIzhBRjAKK+irsSA+IGjDuWk7ICM4QUYxCivoq7IgPiB5xKtuOyAjOEFGMgor6KuzID4gxIFuOyAjOEFGMwor6Ku0ID4geGnDoW47ICM4QUY0Civoq7UgPiBuw6FuOyAjOEFGNQor6Ku2ID4gY2jDqW47ICM4QUY2Civoq7cgPiBmxJNuZzsgIzhBRjcKK+iruCA+IHpoxas7ICM4QUY4Civoq7kgPiB5w6FuZzsgIzhBRjkKK+iruiA+IHnDoG47ICM4QUZBCivoq7sgPiBoxJNuZzsgIzhBRkIKK+irvCA+IHh1xIFuOyAjOEFGQwor6Ku9ID4gZ8OpOyAjOEFGRAor6Ku+ID4gbsO5bzsgIzhBRkUKK+irvyA+IHHDrDsgIzhBRkYKK+isgCA+IG3Ds3U7ICM4QjAwCivorIEgPiB5w6g7ICM4QjAxCivorIIgPiB3w6hpOyAjOEIwMgor6KyEID4gdMOpbmc7ICM4QjA0CivorIUgPiB6xY11OyAjOEIwNQor6KyGID4gc2jDoG47ICM4QjA2CivorIcgPiBqacSDbjsgIzhCMDcKK+isiCA+IGLDszsgIzhCMDgKK+isiSA+IGvDuTE7ICM4QjA5CivorIogPiBodcSDbmc7ICM4QjBBCivorIsgPiBow7lvOyAjOEIwQgor6KyMID4gZ8STOyAjOEIwQwor6KyNID4gecOtbmc7ICM4QjBECivorI4gPiBtw607ICM4QjBFCivorI8gPiB4acSDbzsgIzhCMEYKK+iskCA+IG3DrDsgIzhCMTAKK+iskSA+IHjDrDsgIzhCMTEKK+iskiA+IHFpxIFuZzsgIzhCMTIKK+iskyA+IGNoxJNuOyAjOEIxMwor6KyUID4gbsecZTsgIzhCMTQKK+islSA+IHTDrTsgIzhCMTUKK+isliA+IHPDuTsgIzhCMTYKK+islyA+IGLDoG5nOyAjOEIxNwor6KyYID4gY2jDrTsgIzhCMTgKK+ismSA+IHFpxIFuOyAjOEIxOQor6KyaID4gc2jDrDsgIzhCMUEKK+ismyA+IGppxINuZzsgIzhCMUIKK+isnCA+IHl1w6BuOyAjOEIxQwor6KydID4geGnDqDsgIzhCMUQKK+isniA+IHh1w6g7ICM4QjFFCivorJ8gPiB0xIFvOyAjOEIxRgor6KygID4gecOhbzsgIzhCMjAKK+isoSA+IHnDoW87ICM4QjIxCivorKMgPiB5w7o7ICM4QjIzCivorKQgPiBiacSBbzsgIzhCMjQKK+ispSA+IGPDsm5nOyAjOEIyNQor6KymID4gccOsbmc7ICM4QjI2CivorKcgPiBsw607ICM4QjI3CivorKggPiBtw7M7ICM4QjI4CivorKkgPiBtw7I7ICM4QjI5CivorKogPiBzaMSBbmc7ICM4QjJBCivorKsgPiB6aMOpOyAjOEIyQgor6KysID4gbcOsdTsgIzhCMkMKK+isrSA+IGppxINuOyAjOEIyRAor6KyuID4gesOpOyAjOEIyRQor6KyvID4gamnEkzsgIzhCMkYKK+issCA+IGxpw6FuOyAjOEIzMAor6KyxID4gbMOzdTsgIzhCMzEKK+issiA+IGPEgW47ICM4QjMyCivorLMgPiDFjXU7ICM4QjMzCivorLQgPiBndcOgbjsgIzhCMzQKK+istSA+IHjDrTsgIzhCMzUKK+istiA+IHpow7pvOyAjOEIzNgor6Ky3ID4gw6FvOyAjOEIzNwor6Ky4ID4gw6FvOyAjOEIzOAor6Ky5ID4gasStbjsgIzhCMzkKK+isuiA+IHpow6k7ICM4QjNBCivorLsgPiB5w607ICM4QjNCCivorLwgPiBow7k7ICM4QjNDCivorL0gPiBqacOgbmc7ICM4QjNECivorL4gPiBtw6FuOyAjOEIzRQor6Ky/ID4gY2jDoW87ICM4QjNGCivorYAgPiBow6BuOyAjOEI0MAor6K2BID4gaHXDoTsgIzhCNDEKK+itgiA+IGNoxINuOyAjOEI0Mgor6K2DID4geMWrOyAjOEI0Mwor6K2EID4gesSTbmc7ICM4QjQ0CivorYUgPiBzw6g7ICM4QjQ1CivorYYgPiB4xKs7ICM4QjQ2CivorYcgPiBzaMSTOyAjOEI0Nwor6K2IID4gZMO5aTsgIzhCNDgKK+itiSA+IHpow6huZzsgIzhCNDkKK+itiiA+IG7DoW87ICM4QjRBCivorYsgPiBsw6FuOyAjOEI0Qgor6K2MID4gw6k7ICM4QjRDCivorY0gPiB5w6xuZzsgIzhCNEQKK+itjiA+IGp1w6k7ICM4QjRFCivorY8gPiBqxKs7ICM4QjRGCivorZAgPiB6xa1uOyAjOEI1MAor6K2RID4gamnEg287ICM4QjUxCivorZIgPiBiw7I7ICM4QjUyCivorZMgPiBow7lpOyAjOEI1Mwor6K2UID4gemh1w6BuOyAjOEI1NAor6K2VID4gbcO6OyAjOEI1NQor6K2WID4gesOobjsgIzhCNTYKK+itlyA+IHpow6E7ICM4QjU3CivorZggPiBzaMOsOyAjOEI1OAor6K2ZID4gcWnDoW87ICM4QjU5CivorZogPiB0w6FuOyAjOEI1QQor6K2bID4gesOobjsgIzhCNUIKK+itnCA+IHDFrTsgIzhCNUMKK+itnSA+IHNow6luZzsgIzhCNUQKK+itniA+IHh1xIFuOyAjOEI1RQor6K2fID4gesOgbzsgIzhCNUYKK+itoCA+IHTEgW47ICM4QjYwCivoraEgPiBkxINuZzsgIzhCNjEKK+itoiA+IHPDuWk7ICM4QjYyCivoraMgPiBxacSBbjsgIzhCNjMKK+itpCA+IGrEqzsgIzhCNjQKK+itpSA+IGppw6BvOyAjOEI2NQor6K2mID4gasStbmc7ICM4QjY2CivoracgPiBsacOhbjsgIzhCNjcKK+itqCA+IG7Ds3U7ICM4QjY4CivorakgPiB5xKs7ICM4QjY5CivoraogPiDDoGk7ICM4QjZBCivorasgPiB6aMSBbjsgIzhCNkIKK+itrCA+IHDDrDsgIzhCNkMKK+itrSA+IGjFrWk7ICM4QjZECivora4gPiBodcOgOyAjOEI2RQor6K2vID4gecOsOyAjOEI2Rgor6K2wID4gecOsOyAjOEI3MAor6K2xID4gc2jDoG47ICM4QjcxCivorbIgPiByw6BuZzsgIzhCNzIKK+itsyA+IG7DsnU7ICM4QjczCivorbQgPiBxacSDbjsgIzhCNzQKK+ittSA+IHpow7lpOyAjOEI3NQor6K22ID4gdMOgOyAjOEI3Ngor6K23ID4gaMO5OyAjOEI3Nwor6K24ID4gemjFjXU7ICM4Qjc4CivorbkgPiBow6FvOyAjOEI3OQor6K26ID4gecOoOyAjOEI3QQor6K27ID4gecSrbmc7ICM4QjdCCivorbwgPiBqacOgbjsgIzhCN0MKK+itvSA+IHnDuTsgIzhCN0QKK+itviA+IGppxINuOyAjOEI3RQor6K2/ID4gaMO5aTsgIzhCN0YKK+iugCA+IGTDujsgIzhCODAKK+iugSA+IHpow6k7ICM4QjgxCivoroIgPiB4dcOgbjsgIzhCODIKK+iugyA+IHrDoG47ICM4QjgzCivoroQgPiBsxJVpOyAjOEI4NAor6K6FID4gc2jElW47ICM4Qjg1CivoroYgPiB3w6hpOyAjOEI4Ngor6K6HID4gY2jEg247ICM4Qjg3CivoroggPiBsw6w7ICM4Qjg4CivorokgPiB5w607ICM4Qjg5CivoroogPiBiacOgbjsgIzhCOEEKK+iuiyA+IHpow6k7ICM4QjhCCivorowgPiB5w6BuOyAjOEI4Qwor6K6NID4gw6g7ICM4QjhECivoro4gPiBjaMOzdTsgIzhCOEUKK+iujyA+IHfDqGk7ICM4QjhGCivorpAgPiBjaMOzdTsgIzhCOTAKK+iukSA+IHnDoG87ICM4QjkxCivorpIgPiBjaMOhbjsgIzhCOTIKK+iukyA+IHLDoG5nOyAjOEI5Mwor6K6UID4gecStbjsgIzhCOTQKK+iulSA+IGzDoW47ICM4Qjk1CivorpYgPiBjaMOobjsgIzhCOTYKK+iulyA+IGjDuW87ICM4Qjk3CivorpggPiB6aMOpOyAjOEI5OAor6K6ZID4gaHXEgW47ICM4Qjk5CivorpogPiB6w6BuOyAjOEI5QQor6K6bID4gecOsOyAjOEI5Qgor6K6cID4gZMSDbmc7ICM4QjlDCivorp0gPiB6aMSBbjsgIzhCOUQKK+iuniA+IHnDoG47ICM4QjlFCivorp8gPiBkw7o7ICM4QjlGCivorqAgPiB5w6FuOyAjOEJBMAor6K6hID4gasOsOyAjOEJBMQor6K6iID4gZMOsbmc7ICM4QkEyCivorqMgPiBmw7k7ICM4QkEzCivorqQgPiByw6huOyAjOEJBNAor6K6lID4gasSrOyAjOEJBNQor6K6mID4gamnDqTsgIzhCQTYKK+iupyA+IGjDs25nOyAjOEJBNwor6K6oID4gdMSDbzsgIzhCQTgKK+iuqSA+IHLDoG5nOyAjOEJBOQor6K6qID4gc2jDoG47ICM4QkFBCivorqsgPiBxw6w7ICM4QkFCCivorqwgPiB0xatvOyAjOEJBQwor6K6tID4geMO5bjsgIzhCQUQKK+iuriA+IHnDrDsgIzhCQUUKK+iuryA+IHjDuW47ICM4QkFGCivorrAgPiBqw6w7ICM4QkIwCivorrEgPiByw6huOyAjOEJCMQor6K6yID4gamnEg25nOyAjOEJCMgor6K6zID4gaMO5aTsgIzhCQjMKK+iutCA+IMWNdTsgIzhCQjQKK+iutSA+IGrDuTsgIzhCQjUKK+iutiA+IHnDoDsgIzhCQjYKK+iutyA+IG7DqDsgIzhCQjcKK+iuuCA+IHjFrTsgIzhCQjgKK+iuuSA+IMOpOyAjOEJCOQor6K66ID4gbMO5bjsgIzhCQkEKK+iuuyA+IHjEq29uZzsgIzhCQkIKK+iuvCA+IHPDsm5nOyAjOEJCQwor6K69ID4gZsSTbmc7ICM4QkJECivorr4gPiBzaMOoOyAjOEJCRQor6K6/ID4gZsSDbmc7ICM4QkJGCivor4AgPiBqdcOpOyAjOEJDMAor6K+BID4gemjDqG5nOyAjOEJDMQor6K+CID4gZ8WtOyAjOEJDMgor6K+DID4gaMSTOyAjOEJDMwor6K+EID4gcMOtbmc7ICM4QkM0Civor4UgPiB6xa07ICM4QkM1Civor4YgPiBzaMOsOyAjOEJDNgor6K+HID4geMOsb25nOyAjOEJDNwor6K+IID4gemjDoDsgIzhCQzgKK+iviSA+IHPDuTsgIzhCQzkKK+iviiA+IHpoxJVuOyAjOEJDQQor6K+LID4gZMStOyAjOEJDQgor6K+MID4gesWNdTsgIzhCQ0MKK+ivjSA+IGPDrTsgIzhCQ0QKK+ivjiA+IHHDuTsgIzhCQ0UKK+ivjyA+IHpow6BvOyAjOEJDRgor6K+QID4gYsOsOyAjOEJEMAor6K+RID4gecOsOyAjOEJEMQor6K+SID4gecOtOyAjOEJEMgor6K+TID4ga3XEgW5nOyAjOEJEMwor6K+UID4gbMSVaTsgIzhCRDQKK+ivlSA+IHNow6w7ICM4QkQ1Civor5YgPiBndcOgOyAjOEJENgor6K+XID4gc2jEqzsgIzhCRDcKK+ivmCA+IGppw6k7ICM4QkQ4Civor5kgPiBoxatpOyAjOEJEOQor6K+aID4gY2jDqW5nOyAjOEJEQQor6K+bID4gemjFqzsgIzhCREIKK+ivnCA+IHNoxJNuOyAjOEJEQwor6K+dID4gaHXDoDsgIzhCREQKK+ivniA+IGTDoG47ICM4QkRFCivor58gPiBnw7J1OyAjOEJERgor6K+gID4gcXXDoW47ICM4QkUwCivor6EgPiBnxa1pOyAjOEJFMQor6K+iID4geMO6bjsgIzhCRTIKK+ivoyA+IHnDrDsgIzhCRTMKK+ivpCA+IHpoxJNuZzsgIzhCRTQKK+ivpSA+IGfEgWk7ICM4QkU1Civor6YgPiB4acOhbmc7ICM4QkU2Civor6cgPiBjaMOgOyAjOEJFNwor6K+oID4gaMO5bjsgIzhCRTgKK+ivqSA+IHjFrTsgIzhCRTkKK+ivqiA+IHpoxY11OyAjOEJFQQor6K+rID4gamnDqDsgIzhCRUIKK+ivrCA+IHfDujsgIzhCRUMKK+ivrSA+IHnFrTsgIzhCRUQKK+ivriA+IHFpw6BvOyAjOEJFRQor6K+vID4gd8O5OyAjOEJFRgor6K+wID4gZ8OgbzsgIzhCRjAKK+ivsSA+IHnDsnU7ICM4QkYxCivor7IgPiBow7lpOyAjOEJGMgor6K+zID4ga3XDoW5nOyAjOEJGMwor6K+0ID4gc2jFq287ICM4QkY0Civor7UgPiBzw7JuZzsgIzhCRjUKK+ivtiA+IMSBaTsgIzhCRjYKK+ivtyA+IHHErW5nOyAjOEJGNwor6K+4ID4gemjFqzsgIzhCRjgKK+ivuSA+IHrFjXU7ICM4QkY5Civor7ogPiBuw7lvOyAjOEJGQQor6K+7ID4gZMO6OyAjOEJGQgor6K+8ID4gemjDum87ICM4QkZDCivor70gPiBmxJVpOyAjOEJGRAor6K++ID4ga8OoOyAjOEJGRQor6K+/ID4gd8SVaTsgIzhCRkYKK+iwgCA+IHnDujsgIzhDMDAKK+iwgSA+IHNow7ppOyAjOEMwMQor6LCCID4gc2jElW47ICM4QzAyCivosIMgPiBkacOgbzsgIzhDMDMKK+iwhCA+IGNoxINuOyAjOEMwNAor6LCFID4gbGnDoG5nOyAjOEMwNQor6LCGID4gemjFq247ICM4QzA2CivosIcgPiBzw7lpOyAjOEMwNwor6LCIID4gdMOhbjsgIzhDMDgKK+iwiSA+IHNoxJVuOyAjOEMwOQor6LCKID4gecOtOyAjOEMwQQor6LCLID4gbcOzdTsgIzhDMEIKK+iwjCA+IGNow6luOyAjOEMwQwor6LCNID4gZGnDqTsgIzhDMEQKK+iwjiA+IGh1xINuZzsgIzhDMEUKK+iwjyA+IGppw6BuOyAjOEMwRgor6LCQID4geGnDqTsgIzhDMTAKK+iwkSA+IG7HnGU7ICM4QzExCivosJIgPiB5w6g7ICM4QzEyCivosJMgPiB3w6hpOyAjOEMxMwor6LCUID4gw6g7ICM4QzE0CivosJUgPiB5w7k7ICM4QzE1CivosJYgPiB4dcSBbjsgIzhDMTYKK+iwlyA+IGNow6FuOyAjOEMxNwor6LCYID4gesSrOyAjOEMxOAor6LCZID4gxIFuOyAjOEMxOQor6LCaID4gecOgbjsgIzhDMUEKK+iwmyA+IGTDrDsgIzhDMUIKK+iwnCA+IG3DrTsgIzhDMUMKK+iwnSA+IHBpw6FuOyAjOEMxRAor6LCeID4geMWtOyAjOEMxRQor6LCfID4gbcOzOyAjOEMxRgor6LCgID4gZMSDbmc7ICM4QzIwCivosKEgPiBzw7k7ICM4QzIxCivosKIgPiB4acOoOyAjOEMyMgor6LCjID4gecOhbzsgIzhDMjMKK+iwpCA+IGLDoG5nOyAjOEMyNAor6LClID4gc2jDrDsgIzhDMjUKK+iwpiA+IHFpxIFuOyAjOEMyNgor6LCnID4gbcOsOyAjOEMyNwor6LCoID4gasStbjsgIzhDMjgKK+iwqSA+IG3DoW47ICM4QzI5CivosKogPiB6aMOpOyAjOEMyQQor6LCrID4gamnEg247ICM4QzJCCivosKwgPiBtw6x1OyAjOEMyQwor6LCtID4gdMOhbjsgIzhDMkQKK+iwriA+IHrDqG47ICM4QzJFCivosK8gPiBxacOhbzsgIzhDMkYKK+iwsCA+IGzDoW47ICM4QzMwCivosLEgPiBwxa07ICM4QzMxCivosLIgPiBqdcOpOyAjOEMzMgor6LCzID4gecOgbjsgIzhDMzMKK+iwtCA+IHFpxINuOyAjOEMzNAor6LC1ID4gemjEgW47ICM4QzM1CivosLYgPiBjaMOobjsgIzhDMzYKK+iwtyA+IGfFrTsgIzhDMzcKK+iwuCA+IHFpxIFuOyAjOEMzOAor6LC5ID4gaMOzbmc7ICM4QzM5CivosLogPiB4acSBOyAjOEMzQQor6LC7ID4ganXDqTsgIzhDM0IKK+iwvCA+IGjDs25nOyAjOEMzQwor6LC9ID4gaMSBbjsgIzhDM0QKK+iwviA+IGjFjW5nOyAjOEMzRQor6LC/ID4geMSrOyAjOEMzRgor6LGAID4geMSrOyAjOEM0MAor6LGBID4gaMO5bzsgIzhDNDEKK+ixgiA+IGxpw6FvOyAjOEM0Mgor6LGDID4gaMSDbjsgIzhDNDMKK+ixhCA+IGTDujsgIzhDNDQKK+ixhSA+IGzDs25nOyAjOEM0NQor6LGGID4gZMOydTsgIzhDNDYKK+ixhyA+IGppxIFuZzsgIzhDNDcKK+ixiCA+IHHErTsgIzhDNDgKK+ixiSA+IHNow6w7ICM4QzQ5CivosYogPiBsxK07ICM4QzRBCivosYsgPiBkxJNuZzsgIzhDNEIKK+ixjCA+IHfEgW47ICM4QzRDCivosY0gPiBixKs7ICM4QzRECivosY4gPiBzaMO5OyAjOEM0RQor6LGPID4geGnDoG47ICM4QzRGCivosZAgPiBmxJNuZzsgIzhDNTAKK+ixkSA+IHpow6w7ICM4QzUxCivosZIgPiB6aMOsOyAjOEM1Mgor6LGTID4gecOgbjsgIzhDNTMKK+ixlCA+IHnDoG47ICM4QzU0CivosZUgPiBzaMStOyAjOEM1NQor6LGWID4gY2jDuTsgIzhDNTYKK+ixlyA+IGjFq2k7ICM4QzU3CivosZggPiB0w7puOyAjOEM1OAor6LGZID4gecOsOyAjOEM1OQor6LGaID4gdMO6bjsgIzhDNUEKK+ixmyA+IHnDrDsgIzhDNUIKK+ixnCA+IGppxIFuOyAjOEM1Qwor6LGdID4gYsSBOyAjOEM1RAor6LGeID4gaMOydTsgIzhDNUUKK+ixnyA+IMOoOyAjOEM1Rgor6LGgID4gY8O6OyAjOEM2MAor6LGhID4geGnDoG5nOyAjOEM2MQor6LGiID4gaHXDoG47ICM4QzYyCivosaMgPiBqacSBbjsgIzhDNjMKK+ixpCA+IGvElW47ICM4QzY0CivosaUgPiBnxIFpOyAjOEM2NQor6LGmID4gccO6OyAjOEM2Ngor6LGnID4gZsWrOyAjOEM2Nwor6LGoID4geMSrOyAjOEM2OAor6LGpID4gYsSrbjsgIzhDNjkKK+ixqiA+IGjDoW87ICM4QzZBCivosasgPiB5w7k7ICM4QzZCCivosawgPiB6aMWrOyAjOEM2Qwor6LGtID4gamnEgTsgIzhDNkQKK+ixryA+IHjEqzsgIzhDNkYKK+ixsCA+IGLDszsgIzhDNzAKK+ixsSA+IHfEk247ICM4QzcxCivosbIgPiBodcOhbjsgIzhDNzIKK+ixsyA+IGLEq247ICM4QzczCivosbQgPiBkw607ICM4Qzc0CivosbUgPiB6xY1uZzsgIzhDNzUKK+ixtiA+IGbDqW47ICM4Qzc2CivosbcgPiB5w6w7ICM4Qzc3CivosbggPiB6aMOsOyAjOEM3OAor6LG5ID4gYsOgbzsgIzhDNzkKK+ixuiA+IGNow6FpOyAjOEM3QQor6LG7ID4gaMOgbjsgIzhDN0IKK+ixvCA+IHDDrTsgIzhDN0MKK+ixvSA+IG7DoDsgIzhDN0QKK+ixviA+IHDEqzsgIzhDN0UKK+ixvyA+IGfFj3U7ICM4QzdGCivosoAgPiBuw6A7ICM4QzgwCivosoEgPiB5w7J1OyAjOEM4MQor6LKCID4gZGnEgW87ICM4QzgyCivosoMgPiBtw7I7ICM4QzgzCivosoQgPiBzw6w7ICM4Qzg0CivosoUgPiB4xKt1OyAjOEM4NQor6LKGID4gaHXDoW47ICM4Qzg2CivosocgPiBrxatuOyAjOEM4Nwor6LKIID4gaMOpOyAjOEM4OAor6LKJID4gaMOpOyAjOEM4OQor6LKKID4gbcOyOyAjOEM4QQor6LKLID4gaMOgbjsgIzhDOEIKK+iyjCA+IG3DoG87ICM4QzhDCivoso0gPiBsw607ICM4QzhECivoso4gPiBuw607ICM4QzhFCivoso8gPiBixK07ICM4QzhGCivospAgPiB5xa07ICM4QzkwCivospEgPiBqacSBOyAjOEM5MQor6LKSID4gdHXEgW47ICM4QzkyCivospMgPiBtxIFvOyAjOEM5Mwor6LKUID4gcMOtOyAjOEM5NAor6LKVID4geMSrOyAjOEM5NQor6LKWID4gw6g7ICM4Qzk2CivospcgPiBqw7k7ICM4Qzk3CivospggPiBtw7I7ICM4Qzk4CivospkgPiBjaMWrOyAjOEM5OQor6LKaID4gdMOhbjsgIzhDOUEKK+iymyA+IGh1xIFuOyAjOEM5Qgor6LKcID4ganXDqTsgIzhDOUMKK+iynSA+IGLDqGk7ICM4QzlECivosp4gPiB6aMSTbjsgIzhDOUUKK+iynyA+IHl1w6FuOyAjOEM5Rgor6LKgID4gZsO5OyAjOENBMAor6LKhID4gY8OhaTsgIzhDQTEKK+iyoiA+IGfDsm5nOyAjOENBMgor6LKjID4gdMOoOyAjOENBMwor6LKkID4gecOtOyAjOENBNAor6LKlID4gaMOhbmc7ICM4Q0E1CivosqYgPiB3w6BuOyAjOENBNgor6LKnID4gcMOtbjsgIzhDQTcKK+iyqCA+IGjDuW87ICM4Q0E4CivosqkgPiBmw6BuOyAjOENBOQor6LKqID4gdMSBbjsgIzhDQUEKK+iyqyA+IGd1w6BuOyAjOENBQgor6LKsID4gesOpOyAjOENBQwor6LKtID4gemjDrTsgIzhDQUQKK+iyriA+IMOocjsgIzhDQUUKK+iyryA+IHpoxa07ICM4Q0FGCivosrAgPiBzaMOsOyAjOENCMAor6LKxID4gYsOsOyAjOENCMQor6LKyID4gesSrOyAjOENCMgor6LKzID4gw6hyOyAjOENCMwor6LK0ID4gZ8O5aTsgIzhDQjQKK+iytSA+IHBpxINuOyAjOENCNQor6LK2ID4gYmnEg247ICM4Q0I2CivosrcgPiBtxINpOyAjOENCNwor6LK4ID4gZMOgaTsgIzhDQjgKK+iyuSA+IHNow6huZzsgIzhDQjkKK+iyuiA+IGt1w6BuZzsgIzhDQkEKK+iyuyA+IGbDqGk7ICM4Q0JCCivosrwgPiB0acSTOyAjOENCQwor6LK9ID4gecOtOyAjOENCRAor6LK+ID4gY2jDrTsgIzhDQkUKK+iyvyA+IG3DoG87ICM4Q0JGCivos4AgPiBow6g7ICM4Q0MwCivos4EgPiBiw6w7ICM4Q0MxCivos4IgPiBsw7k7ICM4Q0MyCivos4MgPiByw6huOyAjOENDMwor6LOEID4gaMO5aTsgIzhDQzQKK+izhSA+IGfEgWk7ICM4Q0M1Civos4YgPiBwacOhbjsgIzhDQzYKK+izhyA+IHrEqzsgIzhDQzcKK+iziCA+IGppxIM7ICM4Q0M4Civos4kgPiB4w7k7ICM4Q0M5Civos4ogPiB6w6lpOyAjOENDQQor6LOLID4gamnEg287ICM4Q0NCCivos4wgPiBnw6BpOyAjOENDQwor6LONID4gesSBbmc7ICM4Q0NECivos44gPiBqacOgbjsgIzhDQ0UKK+izjyA+IHnDrG5nOyAjOENDRgor6LOQID4geMO5bjsgIzhDRDAKK+izkSA+IHpow6huOyAjOENEMQor6LOSID4gc2jEkzsgIzhDRDIKK+izkyA+IGLEq247ICM4Q0QzCivos5QgPiBixKtuOyAjOENENAor6LOVID4gccOtdTsgIzhDRDUKK+izliA+IHNoxJM7ICM4Q0Q2Civos5cgPiBjaHXDoG47ICM4Q0Q3Civos5ggPiB6xIFuZzsgIzhDRDgKK+izmSA+IHpoxY11OyAjOENEOQor6LOaID4gbMOgaTsgIzhDREEKK+izmyA+IHrDoG47ICM4Q0RCCivos5wgPiBzw6w7ICM4Q0RDCivos50gPiBjaMSTbjsgIzhDREQKK+izniA+IHNoxINuZzsgIzhDREUKK+iznyA+IHRpxINuOyAjOENERgor6LOgID4gcMOpaTsgIzhDRTAKK+izoSA+IGfEk25nOyAjOENFMQor6LOiID4geGnDoW47ICM4Q0UyCivos6MgPiBtw6BpOyAjOENFMwor6LOkID4gamnDoG47ICM4Q0U0Civos6UgPiBzw7lpOyAjOENFNQor6LOmID4gZsO5OyAjOENFNgor6LOnID4gdMOgbjsgIzhDRTcKK+izqCA+IGPDs25nOyAjOENFOAor6LOpID4gY8Ozbmc7ICM4Q0U5Civos6ogPiB6aMOtOyAjOENFQQor6LOrID4gasSrOyAjOENFQgor6LOsID4gemjDoG5nOyAjOENFQwor6LOtID4gZMWtOyAjOENFRAor6LOuID4gasOsbjsgIzhDRUUKK+izryA+IHjEq29uZzsgIzhDRUYKK+izsCA+IHNoxa1uOyAjOENGMAor6LOxID4gecWtbjsgIzhDRjEKK+izsiA+IGLEg287ICM4Q0YyCivos7MgPiB6xIFpOyAjOENGMwor6LO0ID4gbMOgaTsgIzhDRjQKK+iztSA+IGbDqG5nOyAjOENGNQor6LO2ID4gY8Ogbmc7ICM4Q0Y2Civos7cgPiBqxKs7ICM4Q0Y3Civos7ggPiBzaMOobmc7ICM4Q0Y4Civos7kgPiDDoGk7ICM4Q0Y5Civos7ogPiB6aHXDoG47ICM4Q0ZBCivos7sgPiBmw7k7ICM4Q0ZCCivos7wgPiBnw7J1OyAjOENGQwor6LO9ID4gc8OgaTsgIzhDRkQKK+izviA+IHrDqTsgIzhDRkUKK+izvyA+IGxpw6FvOyAjOENGRgor6LSAID4gd8OoaTsgIzhEMDAKK+i0gSA+IGLDoGk7ICM4RDAxCivotIIgPiBjaMSVbjsgIzhEMDIKK+i0gyA+IHpodcOgbjsgIzhEMDMKK+i0hCA+IHpow6w7ICM4RDA0CivotIUgPiB6aMO5aTsgIzhEMDUKK+i0hiA+IGJpxIFvOyAjOEQwNgor6LSHID4gecWrbjsgIzhEMDcKK+i0iCA+IHrDqG5nOyAjOEQwOAor6LSJID4gdMSDbjsgIzhEMDkKK+i0iiA+IHrDoG47ICM4RDBBCivotIsgPiB5w6BuOyAjOEQwQgor6LSNID4gc2jDoG47ICM4RDBECivotI4gPiB3w6BuOyAjOEQwRQor6LSPID4gecOtbmc7ICM4RDBGCivotJAgPiBqw6xuOyAjOEQxMAor6LSRID4gZ8SDbjsgIzhEMTEKK+i0kiA+IHhpw6FuOyAjOEQxMgor6LSTID4gesSBbmc7ICM4RDEzCivotJQgPiBiw6w7ICM4RDE0CivotJUgPiBkw7o7ICM4RDE1CivotJYgPiBzaMO6OyAjOEQxNgor6LSXID4gecOgbjsgIzhEMTcKK+i0mSA+IHh1w6BuOyAjOEQxOQor6LSaID4gbMOybmc7ICM4RDFBCivotJsgPiBnw6BuOyAjOEQxQgor6LScID4gesSBbmc7ICM4RDFDCivotJ0gPiBiw6hpOyAjOEQxRAor6LSeID4gemjEk247ICM4RDFFCivotJ8gPiBmw7k7ICM4RDFGCivotKAgPiB5dcOhbjsgIzhEMjAKK+i0oSA+IGfDsm5nOyAjOEQyMQor6LSiID4gY8OhaTsgIzhEMjIKK+i0oyA+IHrDqTsgIzhEMjMKK+i0pCA+IHhpw6FuOyAjOEQyNAor6LSlID4gYsOgaTsgIzhEMjUKK+i0piA+IHpow6BuZzsgIzhEMjYKK+i0pyA+IGjDuW87ICM4RDI3CivotKggPiB6aMOtOyAjOEQyOAor6LSpID4gZsOgbjsgIzhEMjkKK+i0qiA+IHTEgW47ICM4RDJBCivotKsgPiBww61uOyAjOEQyQgor6LSsID4gYmnEg247ICM4RDJDCivotK0gPiBnw7J1OyAjOEQyRAor6LSuID4gemjFrTsgIzhEMkUKK+i0ryA+IGd1w6BuOyAjOEQyRgor6LSwID4gw6hyOyAjOEQzMAor6LSxID4gamnDoG47ICM4RDMxCivotLIgPiBiw6w7ICM4RDMyCivotLMgPiBzaMOsOyAjOEQzMwor6LS0ID4gdGnEkzsgIzhEMzQKK+i0tSA+IGfDuWk7ICM4RDM1CivotLYgPiBrdcOgbmc7ICM4RDM2CivotLcgPiBkw6BpOyAjOEQzNwor6LS4ID4gbcOgbzsgIzhEMzgKK+i0uSA+IGbDqGk7ICM4RDM5CivotLogPiBow6g7ICM4RDNBCivotLsgPiB5w607ICM4RDNCCivotLwgPiB6w6lpOyAjOEQzQwor6LS9ID4gemjDrDsgIzhEM0QKK+i0viA+IGppxIM7ICM4RDNFCivotL8gPiBow7lpOyAjOEQzRgor6LWAID4gesSrOyAjOEQ0MAor6LWBID4gcsOobjsgIzhENDEKK+i1giA+IGzDuTsgIzhENDIKK+i1gyA+IHrEgW5nOyAjOEQ0Mwor6LWEID4gesSrOyAjOEQ0NAor6LWFID4gZ8SBaTsgIzhENDUKK+i1hiA+IGrDrG47ICM4RDQ2CivotYcgPiBxw611OyAjOEQ0Nwor6LWIID4gemjDqG47ICM4RDQ4CivotYkgPiBsw6BpOyAjOEQ0OQor6LWKID4gc2jEkzsgIzhENEEKK+i1iyA+IGbDuTsgIzhENEIKK+i1jCA+IGTFrTsgIzhENEMKK+i1jSA+IGrEqzsgIzhENEQKK+i1jiA+IHNow7o7ICM4RDRFCivotY8gPiBzaMSDbmc7ICM4RDRGCivotZAgPiBzw6w7ICM4RDUwCivotZEgPiBiw6w7ICM4RDUxCivotZIgPiB6aMWNdTsgIzhENTIKK+i1kyA+IGfEk25nOyAjOEQ1Mwor6LWUID4gcMOpaTsgIzhENTQKK+i1lSA+IHTDoG47ICM4RDU1CivotZYgPiBsw6BpOyAjOEQ1Ngor6LWXID4gZsOobmc7ICM4RDU3CivotZggPiB6aMO5aTsgIzhENTgKK+i1mSA+IGbDuTsgIzhENTkKK+i1miA+IHpodcOgbjsgIzhENUEKK+i1myA+IHPDoGk7ICM4RDVCCivotZwgPiB6w6k7ICM4RDVDCivotZ0gPiB5w6BuOyAjOEQ1RAor6LWeID4gesOgbjsgIzhENUUKK+i1nyA+IHnFq247ICM4RDVGCivotaAgPiB6w6huZzsgIzhENjAKK+i1oSA+IHNow6BuOyAjOEQ2MQor6LWiID4gecOtbmc7ICM4RDYyCivotaMgPiBnw6BuOyAjOEQ2Mwor6LWkID4gY2jDrDsgIzhENjQKK+i1pSA+IHjDrDsgIzhENjUKK+i1piA+IHNow6g7ICM4RDY2CivotacgPiBuxINuOyAjOEQ2Nwor6LWoID4geMOtb25nOyAjOEQ2OAor6LWpID4geMOsOyAjOEQ2OQor6LWqID4gY2jEk25nOyAjOEQ2QQor6LWrID4gaMOoOyAjOEQ2Qgor6LWsID4gY2jEk25nOyAjOEQ2Qwor6LWtID4gemjElTsgIzhENkQKK+i1riA+IHhpw6E7ICM4RDZFCivota8gPiB0w6FuZzsgIzhENkYKK+i1sCA+IHrFj3U7ICM4RDcwCivotbEgPiB6xY91OyAjOEQ3MQor6LWyID4gbMOsOyAjOEQ3Mgor6LWzID4gasStdTsgIzhENzMKK+i1tCA+IGbDuTsgIzhENzQKK+i1tSA+IHpow6BvOyAjOEQ3NQor6LW2ID4gZ8SDbjsgIzhENzYKK+i1tyA+IHHErTsgIzhENzcKK+i1uCA+IHNow6BuOyAjOEQ3OAor6LW5ID4gccOtb25nOyAjOEQ3OQor6LW6ID4gccOtbjsgIzhEN0EKK+i1uyA+IHhpxINuOyAjOEQ3Qgor6LW8ID4gY8SrOyAjOEQ3Qwor6LW9ID4ganXDqTsgIzhEN0QKK+i1viA+IHHErW47ICM4RDdFCivotb8gPiBjaMOtOyAjOEQ3Rgor6LaAID4gY8SrOyAjOEQ4MAor6LaBID4gY2jDqG47ICM4RDgxCivotoIgPiBjaMOobjsgIzhEODIKK+i2gyA+IGRpw6k7ICM4RDgzCivotoQgPiBqxas7ICM4RDg0CivotoUgPiBjaMSBbzsgIzhEODUKK+i2hiA+IGTEqzsgIzhEODYKK+i2hyA+IHPDqDsgIzhEODcKK+i2iCA+IHpoxIFuOyAjOEQ4OAor6LaJID4gemjDujsgIzhEODkKK+i2iiA+IHl1w6g7ICM4RDhBCivotosgPiBxxas7ICM4RDhCCivotowgPiBqacOpOyAjOEQ4Qwor6LaNID4gY2jDrTsgIzhEOEQKK+i2jiA+IGNow7o7ICM4RDhFCivoto8gPiBndcSBOyAjOEQ4Rgor6LaQID4geHXDqDsgIzhEOTAKK+i2kSA+IGPEqzsgIzhEOTEKK+i2kiA+IHRpw6FvOyAjOEQ5Mgor6LaTID4gZMWtbzsgIzhEOTMKK+i2lCA+IGxpw6g7ICM4RDk0CivotpUgPiBnxINuOyAjOEQ5NQor6LaWID4gc8WrbzsgIzhEOTYKK+i2lyA+IGPDuTsgIzhEOTcKK+i2mCA+IHjDrTsgIzhEOTgKK+i2mSA+IHpow6BvOyAjOEQ5OQor6LaaID4gc8O5OyAjOEQ5QQor6LabID4gecStbjsgIzhEOUIKK+i2nCA+IGrDujsgIzhEOUMKK+i2nSA+IGppw6BuOyAjOEQ5RAor6LaeID4gcXXDqDsgIzhEOUUKK+i2nyA+IHTDoG5nOyAjOEQ5Rgor6LagID4gY2jDuW87ICM4REEwCivotqEgPiBjxa1pOyAjOERBMQor6LaiID4gbMO5OyAjOERBMgor6LajID4gccO5OyAjOERBMwor6LakID4gZMOgbmc7ICM4REE0CivotqUgPiBxxKt1OyAjOERBNQor6LamID4gesSrOyAjOERBNgor6LanID4gdMOtOyAjOERBNwor6LaoID4gccWrOyAjOERBOAor6LapID4gY2jDrDsgIzhEQTkKK+i2qiA+IGh1w6FuZzsgIzhEQUEKK+i2qyA+IHFpw6FvOyAjOERBQgor6LasID4gcWnDoW87ICM4REFDCivotq0gPiB5w6BvOyAjOERBRAor6LauID4gesOgbzsgIzhEQUUKK+i2ryA+IHTDrDsgIzhEQUYKK+i2sSA+IHrEg247ICM4REIxCivotrIgPiB6xINuOyAjOERCMgor6LazID4gesO6OyAjOERCMwor6La0ID4gcMSBOyAjOERCNAor6La1ID4gYsOgbzsgIzhEQjUKK+i2tiA+IGvDuTsgIzhEQjYKK+i2tyA+IGvEkzsgIzhEQjcKK+i2uCA+IGTFrW47ICM4REI4CivotrkgPiBqdcOpOyAjOERCOQor6La6ID4gZsWrOyAjOERCQQor6La7ID4gY2jElW47ICM4REJCCivotrwgPiBqacSDbjsgIzhEQkMKK+i2vSA+IGbDoG5nOyAjOERCRAor6La+ID4gemjErTsgIzhEQkUKK+i2vyA+IHPDoDsgIzhEQkYKK+i3gCA+IHl1w6g7ICM4REMwCivot4EgPiBww6E7ICM4REMxCivot4IgPiBxw607ICM4REMyCivot4MgPiB5dcOoOyAjOERDMwor6LeEID4gcWnEgW5nOyAjOERDNAor6LeFID4gdMO5bzsgIzhEQzUKK+i3hiA+IHTDoWk7ICM4REM2Civot4cgPiB5w6w7ICM4REM3Civot4ggPiBuacSDbjsgIzhEQzgKK+i3iSA+IGzDrW5nOyAjOERDOQor6LeKID4gbcOoaTsgIzhEQ0EKK+i3iyA+IGLDoTsgIzhEQ0IKK+i3jCA+IGRpxJM7ICM4RENDCivot40gPiBrxas7ICM4RENECivot44gPiB0w7pvOyAjOERDRQor6LePID4gamnEgTsgIzhEQ0YKK+i3kCA+IGPErTsgIzhERDAKK+i3kSA+IHDEg287ICM4REQxCivot5IgPiBxacSDOyAjOEREMgor6LeTID4gemjDuTsgIzhERDMKK+i3lCA+IGrFqzsgIzhERDQKK+i3lSA+IGRpw6k7ICM4REQ1Civot5YgPiB6aMSrOyAjOERENgor6LeXID4gZsWrOyAjOERENwor6LeYID4gcMOhbjsgIzhERDgKK+i3mSA+IGrFrTsgIzhERDkKK+i3miA+IHNoxIFuOyAjOEREQQor6LebID4gYsWPOyAjOEREQgor6LecID4gbsOtOyAjOEREQwor6LedID4gasO5OyAjOERERAor6LeeID4gbMOsOyAjOERERQor6LefID4gZ8STbjsgIzhEREYKK+i3oCA+IHnDrTsgIzhERTAKK+i3oSA+IGrEqzsgIzhERTEKK+i3oiA+IGTDoGk7ICM4REUyCivot6MgPiB4acSDbjsgIzhERTMKK+i3pCA+IGppxIFvOyAjOERFNAor6LelID4gZMO5bzsgIzhERTUKK+i3piA+IHpoxas7ICM4REU2Civot6cgPiB6aHXEgW47ICM4REU3Civot6ggPiBrdcOgOyAjOERFOAor6LepID4gemh1xINpOyAjOERFOQor6LeqID4gZ8O5aTsgIzhERUEKK+i3qyA+IHHDrW9uZzsgIzhERUIKK+i3rCA+IGvFrWk7ICM4REVDCivot60gPiB4acOhbmc7ICM4REVECivot64gPiBjaMOsOyAjOERFRQor6LevID4gbMO5OyAjOERFRgor6LewID4gYsOobmc7ICM4REYwCivot7EgPiB6aMOsOyAjOERGMQor6LeyID4gamnDoTsgIzhERjIKK+i3syA+IHRpw6BvOyAjOERGMwor6Le0ID4gY8SDaTsgIzhERjQKK+i3tSA+IGppw6BuOyAjOERGNQor6Le2ID4gdMOgOyAjOERGNgor6Le3ID4gcWnEgW87ICM4REY3Civot7ggPiBiw6w7ICM4REY4Civot7kgPiB4acSBbjsgIzhERjkKK+i3uiA+IGTDuW87ICM4REZBCivot7sgPiBqxKs7ICM4REZCCivot7wgPiBqw7o7ICM4REZDCivot70gPiBqw6w7ICM4REZECivot74gPiBzaMO6OyAjOERGRQor6Le/ID4gdMO6OyAjOERGRgor6LiAID4gY2jDuTsgIzhFMDAKK+i4gSA+IGrDrG5nOyAjOEUwMQor6LiCID4gbmnDqDsgIzhFMDIKK+i4gyA+IHhpxIFvOyAjOEUwMwor6LiEID4gYsOzOyAjOEUwNAor6LiFID4gY2jDrDsgIzhFMDUKK+i4hiA+IHHFq247ICM4RTA2CivouIcgPiBtxY91OyAjOEUwNwor6LiIID4gc2jFqzsgIzhFMDgKK+i4iSA+IGzDoW5nOyAjOEUwOQor6LiKID4gecWPbmc7ICM4RTBBCivouIsgPiBqacSDbzsgIzhFMEIKK+i4jCA+IGNow7N1OyAjOEUwQwor6LiNID4gcWnEgW87ICM4RTBECivouI8gPiB0w6A7ICM4RTBGCivouJAgPiBqacOgbjsgIzhFMTAKK+i4kSA+IHHDrTsgIzhFMTEKK+i4kiA+IHfFjTsgIzhFMTIKK+i4kyA+IHfElWk7ICM4RTEzCivouJQgPiB6aMO6bzsgIzhFMTQKK+i4lSA+IGppw6k7ICM4RTE1CivouJYgPiBqw607ICM4RTE2CivouJcgPiBuacSTOyAjOEUxNwor6LiYID4gasO6OyAjOEUxOAor6LiZID4gasWrOyAjOEUxOQor6LiaID4gbMO6bjsgIzhFMUEKK+i4myA+IGzDuTsgIzhFMUIKK+i4nCA+IGzDqG5nOyAjOEUxQwor6LidID4gaHXDoWk7ICM4RTFECivouJ4gPiBqw7k7ICM4RTFFCivouJ8gPiBjaMOtOyAjOEUxRgor6LigID4gd8SDbjsgIzhFMjAKK+i4oSA+IHF1w6FuOyAjOEUyMQor6LiiID4gdMSrOyAjOEUyMgor6LijID4gYsOzOyAjOEUyMwor6LikID4gesO6OyAjOEUyNAor6LilID4gcWnDqDsgIzhFMjUKK+i4piA+IGrErTsgIzhFMjYKK+i4pyA+IGPDuTsgIzhFMjcKK+i4qCA+IHrFjW5nOyAjOEUyOAor6LipID4gY8SDaTsgIzhFMjkKK+i4qiA+IHrFjW5nOyAjOEUyQQor6LirID4gcMOobmc7ICM4RTJCCivouKwgPiB6aMOsOyAjOEUyQwor6LitID4gemjEk25nOyAjOEUyRAor6LiuID4gZGnEg247ICM4RTJFCivouK8gPiB6aMOtOyAjOEUyRgor6LiwID4gecO6OyAjOEUzMAor6LixID4gZMO5bzsgIzhFMzEKK+i4siA+IGTDuW47ICM4RTMyCivouLMgPiBjaMWtbjsgIzhFMzMKK+i4tCA+IHnFj25nOyAjOEUzNAor6Li1ID4gemjFj25nOyAjOEUzNQor6Li2ID4gZMOsOyAjOEUzNgor6Li3ID4gemjElTsgIzhFMzcKK+i4uCA+IGNoxJVuOyAjOEUzOAor6Li5ID4gY2h1w6BpOyAjOEUzOQor6Li6ID4gamnDoG47ICM4RTNBCivouLsgPiBndcSBOyAjOEUzQgor6Li8ID4gdMOhbmc7ICM4RTNDCivouL0gPiBqxa07ICM4RTNECivouL4gPiBmw7o7ICM4RTNFCivouL8gPiB6w7o7ICM4RTNGCivouYAgPiBkacOpOyAjOEU0MAor6LmBID4gcGnDoW47ICM4RTQxCivouYIgPiByw7N1OyAjOEU0Mgor6LmDID4gbsO5bzsgIzhFNDMKK+i5hCA+IHTDrTsgIzhFNDQKK+i5hSA+IGNoxIM7ICM4RTQ1CivouYYgPiB0xa1pOyAjOEU0Ngor6LmHID4gamnEg247ICM4RTQ3CivouYggPiBkw6BvOyAjOEU0OAor6LmJID4gY8WrbzsgIzhFNDkKK+i5iiA+IHjEqzsgIzhFNEEKK+i5iyA+IHTDoDsgIzhFNEIKK+i5jCA+IHFpxIFuZzsgIzhFNEMKK+i5jSA+IHpoxINuOyAjOEU0RAor6LmOID4gZGnEgW47ICM4RTRFCivouY8gPiB0w607ICM4RTRGCivouZAgPiBqw607ICM4RTUwCivouZEgPiBuacOoOyAjOEU1MQor6LmSID4gbcOhbjsgIzhFNTIKK+i5kyA+IGzEq3U7ICM4RTUzCivouZQgPiB6aMOgbjsgIzhFNTQKK+i5lSA+IGLDrDsgIzhFNTUKK+i5liA+IGNoxY1uZzsgIzhFNTYKK+i5lyA+IGzDuTsgIzhFNTcKK+i5mCA+IGxpw6FvOyAjOEU1OAor6LmZID4gY8O5OyAjOEU1OQor6LmaID4gdMSBbmc7ICM4RTVBCivouZsgPiBkw6BpOyAjOEU1Qgor6LmcID4gc8WrbzsgIzhFNUMKK+i5nSA+IHjErTsgIzhFNUQKK+i5niA+IGvFrWk7ICM4RTVFCivouZ8gPiBqxKs7ICM4RTVGCivouaAgPiB6aMOtOyAjOEU2MAor6LmhID4gcWnEgW5nOyAjOEU2MQor6LmiID4gZMOtOyAjOEU2Mgor6LmjID4gbcOhbjsgIzhFNjMKK+i5pCA+IHrFjW5nOyAjOEU2NAor6LmlID4gbGnDoW47ICM4RTY1CivouaYgPiBiw6huZzsgIzhFNjYKK+i5pyA+IHrEgW87ICM4RTY3CivouaggPiBuacSDbjsgIzhFNjgKK+i5qSA+IGJpw6k7ICM4RTY5CivouaogPiB0w7ppOyAjOEU2QQor6LmrID4gasO6OyAjOEU2Qgor6LmsID4gZMOobmc7ICM4RTZDCivoua0gPiBjw6huZzsgIzhFNkQKK+i5riA+IHhpxIFuOyAjOEU2RQor6LmvID4gZsOhbjsgIzhFNkYKK+i5sCA+IGNow7o7ICM4RTcwCivoubEgPiB6aMWNbmc7ICM4RTcxCivoubIgPiBkxatuOyAjOEU3Mgor6LmzID4gYsWNOyAjOEU3Mwor6Lm0ID4gY8O5OyAjOEU3NAor6Lm1ID4gesO6OyAjOEU3NQor6Lm2ID4ganXDqTsgIzhFNzYKK+i5tyA+IGp1w6k7ICM4RTc3CivoubggPiBsw6xuOyAjOEU3OAor6Lm5ID4gdMOgOyAjOEU3OQor6Lm6ID4gcWnEgW87ICM4RTdBCivoubsgPiBxacSBbzsgIzhFN0IKK+i5vCA+IHDDujsgIzhFN0MKK+i5vSA+IGxpxIFvOyAjOEU3RAor6Lm+ID4gZMWrbjsgIzhFN0UKK+i5vyA+IGN1xIFuOyAjOEU3Rgor6LqAID4ga3XDoG5nOyAjOEU4MAor6LqBID4gesOgbzsgIzhFODEKK+i6giA+IHTDoDsgIzhFODIKK+i6gyA+IGLDrDsgIzhFODMKK+i6hCA+IGLDrDsgIzhFODQKK+i6hSA+IHpow7o7ICM4RTg1CivouoYgPiBqw7k7ICM4RTg2CivouocgPiBjaMO6OyAjOEU4Nwor6LqIID4gcWnDoG87ICM4RTg4CivouokgPiBkxa1uOyAjOEU4OQor6LqKID4gY2jDs3U7ICM4RThBCivouosgPiBqxKs7ICM4RThCCivouowgPiB3xa07ICM4RThDCivouo0gPiB5dcOoOyAjOEU4RAor6LqOID4gbmnEg247ICM4RThFCivouo8gPiBsw6xuOyAjOEU4Rgor6LqQID4gbGnDqDsgIzhFOTAKK+i6kSA+IHpow607ICM4RTkxCivoupIgPiBsw6w7ICM4RTkyCivoupMgPiB6aMOsOyAjOEU5Mwor6LqUID4gY2jDoW47ICM4RTk0CivoupUgPiBjaMO6OyAjOEU5NQor6LqWID4gZHXDoG47ICM4RTk2CivoupcgPiB3w6hpOyAjOEU5Nwor6LqYID4gbMOzbmc7ICM4RTk4CivoupkgPiBsw6xuOyAjOEU5OQor6LqaID4geGnEgW47ICM4RTlBCivoupsgPiB3w6hpOyAjOEU5Qgor6LqcID4genXEgW47ICM4RTlDCivoup0gPiBsw6FuOyAjOEU5RAor6LqeID4geGnDqDsgIzhFOUUKK+i6nyA+IHLDoW5nOyAjOEU5Rgor6LqgID4geGnElTsgIzhFQTAKK+i6oSA+IG5pw6g7ICM4RUExCivouqIgPiB0w6A7ICM4RUEyCivouqMgPiBxw7o7ICM4RUEzCivouqQgPiBqacOoOyAjOEVBNAor6LqlID4gY3XEgW47ICM4RUE1CivouqYgPiB6dcSBbjsgIzhFQTYKK+i6pyA+IHjErTsgIzhFQTcKK+i6qCA+IGvDumk7ICM4RUE4CivouqkgPiBqdcOpOyAjOEVBOQor6LqqID4gbMOsbjsgIzhFQUEKK+i6qyA+IHNoxJNuOyAjOEVBQgor6LqsID4gZ8WNbmc7ICM4RUFDCivouq0gPiBkxIFuOyAjOEVBRAor6LqvID4gccWrOyAjOEVBRgor6LqwID4gdMStOyAjOEVCMAor6LqxID4gZMWtbzsgIzhFQjEKK+i6siA+IGTFrW87ICM4RUIyCivourMgPiBnxY1uZzsgIzhFQjMKK+i6tCA+IGzDoW5nOyAjOEVCNAor6Lq2ID4gbMWtbzsgIzhFQjYKK+i6tyA+IMSDaTsgIzhFQjcKK+i6uCA+IGrEqzsgIzhFQjgKK+i6uSA+IGrDujsgIzhFQjkKK+i6uiA+IHTEg25nOyAjOEVCQQor6Lq9ID4gecSDbjsgIzhFQkQKK+i6vyA+IGvEgW5nOyAjOEVCRgor6LuAID4gccWrOyAjOEVDMAor6LuBID4gbMOzdTsgIzhFQzEKK+i7giA+IGzDoG87ICM4RUMyCivou4MgPiB0xa1vOyAjOEVDMwor6LuEID4gemjDrTsgIzhFQzQKK+i7hiA+IHTErTsgIzhFQzYKK+i7hyA+IGTDoG87ICM4RUM3Civou4kgPiB5w7k7ICM4RUM5Civou4ogPiBjaMSTOyAjOEVDQQor6LuLID4gecOgOyAjOEVDQgor6LuMID4gZ8WtaTsgIzhFQ0MKK+i7jSA+IGrFq247ICM4RUNECivou44gPiB3w6hpOyAjOEVDRQor6LuPID4geXXDqDsgIzhFQ0YKK+i7kCA+IHjDrG47ICM4RUQwCivou5EgPiBkw6w7ICM4RUQxCivou5IgPiB4dcSBbjsgIzhFRDIKK+i7kyA+IGbDoG47ICM4RUQzCivou5QgPiByw6huOyAjOEVENAor6LuVID4gc2jEgW47ICM4RUQ1Civou5YgPiBxacOhbmc7ICM4RUQ2Civou5cgPiBzaMWrOyAjOEVENwor6LuYID4gdMO6bjsgIzhFRDgKK+i7mSA+IGNow6luOyAjOEVEOQor6LuaID4gZMOgaTsgIzhFREEKK+i7myA+IMOoOyAjOEVEQgor6LucID4gbsOgOyAjOEVEQwor6LudID4gccOtOyAjOEVERAor6LueID4gbcOhbzsgIzhFREUKK+i7nyA+IHJ1xINuOyAjOEVERgor6LugID4gcsOobjsgIzhFRTAKK+i7oSA+IGbEg247ICM4RUUxCivou6IgPiB6aHXEg247ICM4RUUyCivou6MgPiBoxY1uZzsgIzhFRTMKK+i7pCA+IGjFqzsgIzhFRTQKK+i7pSA+IHHDujsgIzhFRTUKK+i7piA+IGh1w6BuZzsgIzhFRTYKK+i7pyA+IGTErTsgIzhFRTcKK+i7qCA+IGzDrW5nOyAjOEVFOAor6LupID4gZMOgaTsgIzhFRTkKK+i7qiA+IMSBbzsgIzhFRUEKK+i7qyA+IHpoxJVuOyAjOEVFQgor6LusID4gZsOgbjsgIzhFRUMKK+i7rSA+IGt1xIFuZzsgIzhFRUQKK+i7riA+IMSDbmc7ICM4RUVFCivou68gPiBwxJNuZzsgIzhFRUYKK+i7sCA+IGLDqGk7ICM4RUYwCivou7EgPiBnxas7ICM4RUYxCivou7IgPiBrxas7ICM4RUYyCivou7MgPiBww6FvOyAjOEVGMwor6Lu0ID4gemjDuTsgIzhFRjQKK+i7tSA+IHLFj25nOyAjOEVGNQor6Lu2ID4gw6g7ICM4RUY2Civou7cgPiBiw6E7ICM4RUY3Civou7ggPiB6aMOzdTsgIzhFRjgKK+i7uSA+IHpoxK07ICM4RUY5Civou7ogPiB5w6FvOyAjOEVGQQor6Lu7ID4ga8STOyAjOEVGQgor6Lu8ID4gecOsOyAjOEVGQwor6Lu9ID4gccSrbmc7ICM4RUZECivou74gPiBzaMOsOyAjOEVGRQor6Lu/ID4gcMOtbmc7ICM4RUZGCivovIAgPiDDqXI7ICM4RjAwCivovIEgPiBxw61vbmc7ICM4RjAxCivovIIgPiBqw7o7ICM4RjAyCivovIMgPiBqacOgbzsgIzhGMDMKK+i8hCA+IGd1xIFuZzsgIzhGMDQKK+i8hSA+IGzDuTsgIzhGMDUKK+i8hiA+IGvEg2k7ICM4RjA2CivovIcgPiBxdcOhbjsgIzhGMDcKK+i8iCA+IHpoxY11OyAjOEYwOAor6LyJID4gesOgaTsgIzhGMDkKK+i8iiA+IHpow6w7ICM4RjBBCivovIsgPiBzaMSTOyAjOEYwQgor6LyMID4gbGnDoG5nOyAjOEYwQwor6LyNID4gecO5OyAjOEYwRAor6LyOID4gc2jEgW87ICM4RjBFCivovI8gPiB5w7N1OyAjOEYwRgor6LyQID4gaHXEg247ICM4RjEwCivovJEgPiB5xa1uOyAjOEYxMQor6LySID4gemjDqTsgIzhGMTIKK+i8kyA+IHfEg247ICM4RjEzCivovJQgPiBmxa07ICM4RjE0CivovJUgPiBxxKtuZzsgIzhGMTUKK+i8liA+IHpoxY11OyAjOEYxNgor6LyXID4gbsOtOyAjOEYxNwor6LyYID4gbMOtbmc7ICM4RjE4CivovJkgPiB6aMOpOyAjOEYxOQor6LyaID4gemjDoG47ICM4RjFBCivovJsgPiBsacOgbmc7ICM4RjFCCivovJwgPiB6xKs7ICM4RjFDCivovJ0gPiBoxatpOyAjOEYxRAor6LyeID4gd8SDbmc7ICM4RjFFCivovJ8gPiBjaMO5bzsgIzhGMUYKK+i8oCA+IGfFrW87ICM4RjIwCivovKEgPiBrxINuOyAjOEYyMQor6LyiID4gecStOyAjOEYyMgor6LyjID4gcMOpbmc7ICM4RjIzCivovKQgPiBxacOgbjsgIzhGMjQKK+i8pSA+IGfFrW47ICM4RjI1CivovKYgPiBuacSDbjsgIzhGMjYKK+i8pyA+IHBpw6FuOyAjOEYyNwor6LyoID4gZ3XEg247ICM4RjI4CivovKkgPiBiw6hpOyAjOEYyOQor6LyqID4gbMO6bjsgIzhGMkEKK+i8qyA+IHDDoWk7ICM4RjJCCivovKwgPiBsacOhbmc7ICM4RjJDCivovK0gPiBydcSDbjsgIzhGMkQKK+i8riA+IHLDs3U7ICM4RjJFCivovK8gPiBqw607ICM4RjJGCivovLAgPiB5w6FuZzsgIzhGMzAKK+i8sSA+IHhpw6FuOyAjOEYzMQor6LyyID4gY2h1w6FuOyAjOEYzMgor6LyzID4gY8OydTsgIzhGMzMKK+i8tCA+IHHFq247ICM4RjM0CivovLUgPiBnw6k7ICM4RjM1CivovLYgPiB5w7N1OyAjOEYzNgor6Ly3ID4gaMWNbmc7ICM4RjM3CivovLggPiBzaMWrOyAjOEYzOAor6Ly5ID4gZsO5OyAjOEYzOQor6Ly6ID4gesSrOyAjOEYzQQor6Ly7ID4gZsO6OyAjOEYzQgor6Ly8ID4gd8STbjsgIzhGM0MKK+i8vSA+IGLDqG47ICM4RjNECivovL4gPiB6aMSDbjsgIzhGM0UKK+i8vyA+IHnDujsgIzhGM0YKK+i9gCA+IHfEk247ICM4RjQwCivovYEgPiB0xIFvOyAjOEY0MQor6L2CID4gZ8WtOyAjOEY0Mgor6L2DID4gemjEk247ICM4RjQzCivovYQgPiB4acOhOyAjOEY0NAor6L2FID4geXXDoW47ICM4RjQ1CivovYYgPiBsw7k7ICM4RjQ2CivovYcgPiBqxKt1OyAjOEY0Nwor6L2IID4gY2jDoW87ICM4RjQ4CivovYkgPiB6aHXEg247ICM4RjQ5CivovYogPiB3w6hpOyAjOEY0QQor6L2LID4gaMO6bjsgIzhGNEIKK+i9jSA+IGNow6g7ICM4RjRECivovY4gPiBqacOgbzsgIzhGNEUKK+i9jyA+IHpow6BuOyAjOEY0Rgor6L2QID4gcMO6OyAjOEY1MAor6L2RID4gbMSDbzsgIzhGNTEKK+i9kiA+IGbDqW47ICM4RjUyCivovZMgPiBmxIFuOyAjOEY1Mwor6L2UID4gbMOtbjsgIzhGNTQKK+i9lSA+IGfDqTsgIzhGNTUKK+i9liA+IHPDqDsgIzhGNTYKK+i9lyA+IGvEg247ICM4RjU3CivovZggPiBodcOgbjsgIzhGNTgKK+i9mSA+IHnErTsgIzhGNTkKK+i9miA+IGrDrTsgIzhGNUEKK+i9myA+IGTDuWk7ICM4RjVCCivovZwgPiDDqXI7ICM4RjVDCivovZ0gPiB5w7o7ICM4RjVECivovZ4gPiB4acOgbjsgIzhGNUUKK+i9nyA+IGjFjW5nOyAjOEY1Rgor6L2gID4gbMSVaTsgIzhGNjAKK+i9oSA+IHDDqGk7ICM4RjYxCivovaIgPiBsw6w7ICM4RjYyCivovaMgPiBsw6w7ICM4RjYzCivovaQgPiBsw7o7ICM4RjY0CivovaUgPiBsw6xuOyAjOEY2NQor6L2mID4gY2jEkzsgIzhGNjYKK+i9pyA+IHnDoDsgIzhGNjcKK+i9qCA+IGfFrWk7ICM4RjY4CivovakgPiB4dcSBbjsgIzhGNjkKK+i9qiA+IGTDrDsgIzhGNkEKK+i9qyA+IHLDqG47ICM4RjZCCivovawgPiB6aHXEg247ICM4RjZDCivova0gPiDDqDsgIzhGNkQKK+i9riA+IGzDum47ICM4RjZFCivova8gPiBydcSDbjsgIzhGNkYKK+i9sCA+IGjFjW5nOyAjOEY3MAor6L2xID4ga8WrOyAjOEY3MQor6L2yID4ga8STOyAjOEY3Mgor6L2zID4gbMO6OyAjOEY3Mwor6L20ID4gemjDs3U7ICM4Rjc0CivovbUgPiB6aMStOyAjOEY3NQor6L22ID4gecOsOyAjOEY3Ngor6L23ID4gaMWrOyAjOEY3Nwor6L24ID4gemjElW47ICM4Rjc4CivovbkgPiBsw6w7ICM4Rjc5CivovbogPiB5w6FvOyAjOEY3QQor6L27ID4gccSrbmc7ICM4RjdCCivovbwgPiBzaMOsOyAjOEY3Qwor6L29ID4gesOgaTsgIzhGN0QKK+i9viA+IHpow6w7ICM4RjdFCivovb8gPiBqacOgbzsgIzhGN0YKK+i+gCA+IHpoxY11OyAjOEY4MAor6L6BID4gcXXDoW47ICM4RjgxCivovoIgPiBsw7k7ICM4RjgyCivovoMgPiBqacOgbzsgIzhGODMKK+i+hCA+IHpow6k7ICM4Rjg0CivovoUgPiBmxa07ICM4Rjg1CivovoYgPiBsacOgbmc7ICM4Rjg2CivovocgPiBuacSDbjsgIzhGODcKK+i+iCA+IGLDqGk7ICM4Rjg4CivovokgPiBoxatpOyAjOEY4OQor6L6KID4gZ8WtbjsgIzhGOEEKK+i+iyA+IHfEg25nOyAjOEY4Qgor6L6MID4gbGnDoW5nOyAjOEY4Qwor6L6NID4gY2jDuW87ICM4RjhECivovo4gPiB6xKs7ICM4RjhFCivovo8gPiBjw7J1OyAjOEY4Rgor6L6QID4gZsO6OyAjOEY5MAor6L6RID4gasOtOyAjOEY5MQor6L6SID4gd8STbjsgIzhGOTIKK+i+kyA+IHNoxas7ICM4RjkzCivovpQgPiBww6hpOyAjOEY5NAor6L6VID4geXXDoW47ICM4Rjk1CivovpYgPiB4acOhOyAjOEY5Ngor6L6XID4gemjEg247ICM4Rjk3CivovpggPiBsw7k7ICM4Rjk4CivovpkgPiBjaMOoOyAjOEY5OQor6L6aID4gbMOtbjsgIzhGOUEKK+i+myA+IHjEq247ICM4RjlCCivovpwgPiBnxas7ICM4RjlDCivovp0gPiBjw607ICM4RjlECivovp4gPiBjw607ICM4RjlFCivovp8gPiBww6w7ICM4RjlGCivovqAgPiB6w7lpOyAjOEZBMAor6L6hID4gYmnDoG47ICM4RkExCivovqIgPiBsw6A7ICM4RkEyCivovqMgPiBsw6A7ICM4RkEzCivovqQgPiBjw607ICM4RkE0CivovqUgPiB4dcSTOyAjOEZBNQor6L6mID4gYsOgbjsgIzhGQTYKK+i+pyA+IGJpw6BuOyAjOEZBNwor6L6oID4gYmnDoG47ICM4RkE4CivovqkgPiBiacOgbjsgIzhGQTkKK+i+qyA+IGJpw6BuOyAjOEZBQgor6L6sID4gYsSBbjsgIzhGQUMKK+i+rSA+IGPDrTsgIzhGQUQKK+i+riA+IGJpw6BuOyAjOEZBRQor6L6vID4gYmnDoG47ICM4RkFGCivovrAgPiBjaMOpbjsgIzhGQjAKK+i+sSA+IHLDuTsgIzhGQjEKK+i+siA+IG7Ds25nOyAjOEZCMgor6L6zID4gbsOzbmc7ICM4RkIzCivovrQgPiB6aMSVbjsgIzhGQjQKK+i+tSA+IGNow7lvOyAjOEZCNQor6L62ID4gY2jDuW87ICM4RkI2CivovrggPiByw6luZzsgIzhGQjgKK+i+uSA+IGJpxIFuOyAjOEZCOQor6L66ID4gYmnEgW47ICM4RkJBCivovr0gPiBsacOhbzsgIzhGQkQKK+i+viA+IGTDoTsgIzhGQkUKK+i+vyA+IGNoxIFuOyAjOEZCRgor6L+AID4gZ8SBbjsgIzhGQzAKK+i/gSA+IHFpxIFuOyAjOEZDMQor6L+CID4gecWrOyAjOEZDMgor6L+DID4gecWrOyAjOEZDMwor6L+EID4gccOsOyAjOEZDNAor6L+FID4geMO5bjsgIzhGQzUKK+i/hiA+IHnErTsgIzhGQzYKK+i/hyA+IGfDuW87ICM4RkM3Civov4ggPiBtw6BpOyAjOEZDOAor6L+JID4gccOtOyAjOEZDOQor6L+KID4gesSBOyAjOEZDQQor6L+LID4gd8Ogbmc7ICM4RkNCCivov4wgPiBqaWE7ICM4RkNDCivov40gPiB6aMWrbjsgIzhGQ0QKK+i/jiA+IHnDrW5nOyAjOEZDRQor6L+PID4gdMOsOyAjOEZDRgor6L+QID4gecO5bjsgIzhGRDAKK+i/kSA+IGrDrG47ICM4RkQxCivov5IgPiBow6FuZzsgIzhGRDIKK+i/kyA+IHnDoDsgIzhGRDMKK+i/lCA+IGbEg247ICM4RkQ0Civov5UgPiB3w7k7ICM4RkQ1Civov5YgPiBkw6E7ICM4RkQ2Civov5cgPiDDqTsgIzhGRDcKK+i/mCA+IGh1w6FuOyAjOEZEOAor6L+ZID4gemjDqDsgIzhGRDkKK+i/myA+IGrDrG47ICM4RkRCCivov5wgPiB5dcSDbjsgIzhGREMKK+i/nSA+IHfDqWk7ICM4RkRECivov54gPiBsacOhbjsgIzhGREUKK+i/nyA+IGNow607ICM4RkRGCivov6AgPiBjaMOoOyAjOEZFMAor6L+hID4gbsOsOyAjOEZFMQor6L+iID4gdGnDoW87ICM4RkUyCivov6MgPiB6aMOsOyAjOEZFMwor6L+kID4gecStOyAjOEZFNAor6L+lID4gasStb25nOyAjOEZFNQor6L+mID4gamnEgTsgIzhGRTYKK+i/pyA+IGNow6luOyAjOEZFNwor6L+oID4gZMOgaTsgIzhGRTgKK+i/qSA+IMSVcjsgIzhGRTkKK+i/qiA+IGTDrTsgIzhGRUEKK+i/qyA+IHDDsjsgIzhGRUIKK+i/rCA+IHfEg25nOyAjOEZFQwor6L+tID4gZGnDqTsgIzhGRUQKK+i/riA+IHrDqTsgIzhGRUUKK+i/ryA+IHTDoW87ICM4RkVGCivov7AgPiBzaMO5OyAjOEZGMAor6L+xID4gdMO6bzsgIzhGRjEKK+i/syA+IGrDrG5nOyAjOEZGMwor6L+0ID4gaMO6aTsgIzhGRjQKK+i/tSA+IHTDs25nOyAjOEZGNQor6L+2ID4gecOydTsgIzhGRjYKK+i/tyA+IG3DrTsgIzhGRjcKK+i/uCA+IGLDqG5nOyAjOEZGOAor6L+5ID4gasSrOyAjOEZGOQor6L+6ID4gbsSDaTsgIzhGRkEKK+i/uyA+IHnDrTsgIzhGRkIKK+i/vCA+IGppw6k7ICM4RkZDCivov70gPiB6aMWraTsgIzhGRkQKK+i/viA+IGxpw6g7ICM4RkZFCivov78gPiB4w7luOyAjOEZGRgor6YCAID4gdMO5aTsgIzkwMDAKK+mAgSA+IHPDsm5nOyAjOTAwMQor6YCCID4gZ3XEgTsgIzkwMDIKK+mAgyA+IHTDoW87ICM5MDAzCivpgIQgPiBww6FuZzsgIzkwMDQKK+mAhSA+IGjDsnU7ICM5MDA1CivpgIYgPiBuw6w7ICM5MDA2CivpgIcgPiBkw7luOyAjOTAwNwor6YCIID4gasStb25nOyAjOTAwOAor6YCJID4geHXEg247ICM5MDA5CivpgIogPiB4w7luOyAjOTAwQQor6YCLID4gYsWrOyAjOTAwQgor6YCMID4gecOzdTsgIzkwMEMKK+mAjSA+IHhpxIFvOyAjOTAwRAor6YCOID4gccOtdTsgIzkwMEUKK+mAjyA+IHTDsnU7ICM5MDBGCivpgJAgPiB6aMO6OyAjOTAxMAor6YCRID4gccOtdTsgIzkwMTEKK+mAkiA+IGTDrDsgIzkwMTIKK+mAkyA+IGTDrDsgIzkwMTMKK+mAlCA+IHTDujsgIzkwMTQKK+mAlSA+IGrDrG5nOyAjOTAxNQor6YCWID4gdMOsOyAjOTAxNgor6YCXID4gZMOydTsgIzkwMTcKK+mAmCA+IHnErTsgIzkwMTgKK+mAmSA+IHpow6g7ICM5MDE5CivpgJogPiB0xY1uZzsgIzkwMUEKK+mAmyA+IGd1w6BuZzsgIzkwMUIKK+mAnCA+IHfDuTsgIzkwMUMKK+mAnSA+IHNow6w7ICM5MDFECivpgJ4gPiBjaMSVbmc7ICM5MDFFCivpgJ8gPiBzw7k7ICM5MDFGCivpgKAgPiB6w6BvOyAjOTAyMAor6YChID4gccWrbjsgIzkwMjEKK+mAoiA+IGbDqW5nOyAjOTAyMgor6YCjID4gbGnDoW47ICM5MDIzCivpgKQgPiBzw7lvOyAjOTAyNAor6YClID4gaMO6aTsgIzkwMjUKK+mApiA+IGzErTsgIzkwMjYKK+mAqCA+IGzDoWk7ICM5MDI4CivpgKkgPiBiw6huOyAjOTAyOQor6YCqID4gY8O5bzsgIzkwMkEKK+mAqyA+IGp1w6k7ICM5MDJCCivpgKwgPiBiw6huZzsgIzkwMkMKK+mArSA+IGh1w6BuOyAjOTAyRAor6YCuID4gZMOgaTsgIzkwMkUKK+mAryA+IGzDuTsgIzkwMkYKK+mAsCA+IHnDs3U7ICM5MDMwCivpgLEgPiB6aMWNdTsgIzkwMzEKK+mAsiA+IGrDrG47ICM5MDMyCivpgLMgPiB5w7k7ICM5MDMzCivpgLQgPiBjaMO5bzsgIzkwMzQKK+mAtSA+IGvDumk7ICM5MDM1CivpgLYgPiB3xJNpOyAjOTAzNgor6YC3ID4gdMOsOyAjOTAzNwor6YC4ID4gecOsOyAjOTAzOAor6YC5ID4gZMOhOyAjOTAzOQor6YC6ID4geXXEg247ICM5MDNBCivpgLsgPiBsw7pvOyAjOTAzQgor6YC8ID4gYsSrOyAjOTAzQwor6YC9ID4gbsO5bzsgIzkwM0QKK+mAviA+IHnDujsgIzkwM0UKK+mAvyA+IGTDoG5nOyAjOTAzRgor6YGAID4gc8O6aTsgIzkwNDAKK+mBgSA+IGTDuW47ICM5MDQxCivpgYIgPiBzw7lpOyAjOTA0Mgor6YGDID4gecSDbjsgIzkwNDMKK+mBhCA+IGNodcOhbjsgIzkwNDQKK+mBhSA+IGNow607ICM5MDQ1CivpgYYgPiB0w607ICM5MDQ2CivpgYcgPiB5w7k7ICM5MDQ3CivpgYggPiBzaMOtOyAjOTA0OAor6YGJID4gemjEk247ICM5MDQ5CivpgYogPiB5w7N1OyAjOTA0QQor6YGLID4gecO5bjsgIzkwNEIKK+mBjCA+IMOoOyAjOTA0Qwor6YGNID4gYmnDoG47ICM5MDRECivpgY4gPiBnw7lvOyAjOTA0RQor6YGPID4gw6g7ICM5MDRGCivpgZAgPiB4acOhOyAjOTA1MAor6YGRID4gaHXDoW5nOyAjOTA1MQor6YGSID4gccOtdTsgIzkwNTIKK+mBkyA+IGTDoG87ICM5MDUzCivpgZQgPiBkw6E7ICM5MDU0CivpgZUgPiB3w6lpOyAjOTA1NQor6YGXID4gecOtOyAjOTA1Nwor6YGYID4gZ8OydTsgIzkwNTgKK+mBmSA+IHnDoW87ICM5MDU5CivpgZogPiBjaMO5OyAjOTA1QQor6YGbID4gbMOtdTsgIzkwNUIKK+mBnCA+IHjDuW47ICM5MDVDCivpgZ0gPiB0w6A7ICM5MDVECivpgZ4gPiBkw6w7ICM5MDVFCivpgZ8gPiBjaMOtOyAjOTA1Rgor6YGgID4geXXEg247ICM5MDYwCivpgaEgPiBzw7k7ICM5MDYxCivpgaIgPiB0w6A7ICM5MDYyCivpgaMgPiBxacSDbjsgIzkwNjMKK+mBpSA+IHnDoW87ICM5MDY1CivpgaYgPiBndcOgbjsgIzkwNjYKK+mBpyA+IHpoxIFuZzsgIzkwNjcKK+mBqCA+IMOhbzsgIzkwNjgKK+mBqSA+IHNow6w7ICM5MDY5CivpgaogPiBjw6g7ICM5MDZBCivpgasgPiBjaMOsOyAjOTA2Qgor6YGsID4gc8O5OyAjOTA2Qwor6YGtID4gesSBbzsgIzkwNkQKK+mBriA+IHpoxJM7ICM5MDZFCivpga8gPiBkw7luOyAjOTA2Rgor6YGwID4gZMOsOyAjOTA3MAor6YGxID4gbMOzdTsgIzkwNzEKK+mBsiA+IGNow607ICM5MDcyCivpgbMgPiBjxatvOyAjOTA3Mwor6YG0ID4gbMOtbjsgIzkwNzQKK+mBtSA+IHrFq247ICM5MDc1CivpgbYgPiByw6BvOyAjOTA3Ngor6YG3ID4gcWnEgW47ICM5MDc3CivpgbggPiB4dcSDbjsgIzkwNzgKK+mBuSA+IHnDuTsgIzkwNzkKK+mBuiA+IHnDrTsgIzkwN0EKK+mBuyA+IHfDuTsgIzkwN0IKK+mBvCA+IGxpw6FvOyAjOTA3Qwor6YG9ID4gasO5OyAjOTA3RAor6YG+ID4gc2jDrDsgIzkwN0UKK+mBvyA+IGLDrDsgIzkwN0YKK+mCgCA+IHnEgW87ICM5MDgwCivpgoEgPiBtw6BpOyAjOTA4MQor6YKCID4geGnDqDsgIzkwODIKK+mCgyA+IHPDuWk7ICM5MDgzCivpgoQgPiBodcOhbjsgIzkwODQKK+mChSA+IHpoxIFuOyAjOTA4NQor6YKGID4gdMOpbmc7ICM5MDg2CivpgocgPiDElXI7ICM5MDg3CivpgoggPiBtacSDbzsgIzkwODgKK+mCiSA+IGJpxIFuOyAjOTA4OQor6YKKID4gYmnEgW47ICM5MDhBCivpgosgPiBsw6E7ICM5MDhCCivpgowgPiBsw607ICM5MDhDCivpgo0gPiB5dcOhbjsgIzkwOEQKK+mCjiA+IHnDoW87ICM5MDhFCivpgo8gPiBsw7pvOyAjOTA4Rgor6YKQID4gbMStOyAjOTA5MAor6YKRID4gecOsOyAjOTA5MQor6YKSID4gdMOtbmc7ICM5MDkyCivpgpMgPiBkw6huZzsgIzkwOTMKK+mClCA+IHHErTsgIzkwOTQKK+mClSA+IHnFjW5nOyAjOTA5NQor6YKWID4gc2jEgW47ICM5MDk2CivpgpcgPiBow6FuOyAjOTA5Nwor6YKYID4gecO6OyAjOTA5OAor6YKZID4gbcOhbmc7ICM5MDk5CivpgpogPiByw7o7ICM5MDlBCivpgpsgPiBxw61vbmc7ICM5MDlCCivpgp0gPiBrdcOgbmc7ICM5MDlECivpgp4gPiBmxas7ICM5MDlFCivpgp8gPiBrw6BuZzsgIzkwOUYKK+mCoCA+IGLEq247ICM5MEEwCivpgqEgPiBmxIFuZzsgIzkwQTEKK+mCoiA+IHjDrW5nOyAjOTBBMgor6YKjID4gbsOgOyAjOTBBMwor6YKkID4geGluOyAjOTBBNAor6YKlID4gc2jElW47ICM5MEE1CivpgqYgPiBixIFuZzsgIzkwQTYKK+mCpyA+IHl1w6FuOyAjOTBBNwor6YKoID4gY8WrbjsgIzkwQTgKK+mCqSA+IGjFrW87ICM5MEE5CivpgqogPiB4acOpOyAjOTBBQQor6YKrID4gYsSBbmc7ICM5MEFCCivpgqwgPiB3xas7ICM5MEFDCivpgq0gPiBqw7k7ICM5MEFECivpgq4gPiB5w7N1OyAjOTBBRQor6YKvID4gaMOhbjsgIzkwQUYKK+mCsCA+IHTDoWk7ICM5MEIwCivpgrEgPiBxxKt1OyAjOTBCMQor6YKyID4gYsOsOyAjOTBCMgor6YKzID4gcMOpaTsgIzkwQjMKK+mCtCA+IGLErW5nOyAjOTBCNAor6YK1ID4gc2jDoG87ICM5MEI1CivpgrYgPiBiw6hpOyAjOTBCNgor6YK3ID4gd8SDOyAjOTBCNwor6YK4ID4gZMStOyAjOTBCOAor6YK5ID4gesWNdTsgIzkwQjkKK+mCuiA+IHnDqDsgIzkwQkEKK+mCuyA+IGzDrW47ICM5MEJCCivpgrwgPiBrdcSBbmc7ICM5MEJDCivpgr0gPiBnxatpOyAjOTBCRAor6YK+ID4gemjFqzsgIzkwQkUKK+mCvyA+IHNoxKs7ICM5MEJGCivpg4AgPiBrxas7ICM5MEMwCivpg4EgPiB5w7k7ICM5MEMxCivpg4IgPiBnxIFpOyAjOTBDMgor6YODID4gZ8OpOyAjOTBDMwor6YOEID4geMOsOyAjOTBDNAor6YOFID4gemjDrDsgIzkwQzUKK+mDhiA+IGrDrTsgIzkwQzYKK+mDhyA+IHjDum47ICM5MEM3Civpg4ggPiBow7J1OyAjOTBDOAor6YOJID4geMOtbmc7ICM5MEM5Civpg4ogPiBqacSBbzsgIzkwQ0EKK+mDiyA+IHjDrTsgIzkwQ0IKK+mDjCA+IGfFq2k7ICM5MENDCivpg40gPiBuw7pvOyAjOTBDRAor6YOOID4gbMOhbmc7ICM5MENFCivpg48gPiBqacOhOyAjOTBDRgor6YOQID4ga3XDoGk7ICM5MEQwCivpg5EgPiB6aMOobmc7ICM5MEQxCivpg5MgPiB5w7luOyAjOTBEMwor6YOUID4gecOhbjsgIzkwRDQKK+mDlSA+IGNow6luZzsgIzkwRDUKK+mDliA+IGTFjXU7ICM5MEQ2Civpg5cgPiBjaMSrOyAjOTBENwor6YOYID4gbMeaOyAjOTBEOAor6YOZID4gZsWtOyAjOTBEOQor6YOaID4gd8O6OyAjOTBEQQor6YObID4gZsO6OyAjOTBEQgor6YOcID4gZ8OgbzsgIzkwREMKK+mDnSA+IGjEg287ICM5MERECivpg54gPiBsw6FuZzsgIzkwREUKK+mDnyA+IGppw6E7ICM5MERGCivpg6AgPiBnxJVuZzsgIzkwRTAKK+mDoSA+IGrDuW47ICM5MEUxCivpg6IgPiB5xK1uZzsgIzkwRTIKK+mDoyA+IGLDszsgIzkwRTMKK+mDpCA+IHjDrDsgIzkwRTQKK+mDpSA+IGLDqGk7ICM5MEU1Civpg6YgPiBsw6w7ICM5MEU2Civpg6cgPiB5w7puOyAjOTBFNwor6YOoID4gYsO5OyAjOTBFOAor6YOpID4geGnDoW87ICM5MEU5Civpg6ogPiBxxKs7ICM5MEVBCivpg6sgPiBww607ICM5MEVCCivpg6wgPiBxxKtuZzsgIzkwRUMKK+mDrSA+IGfFq287ICM5MEVECivpg64gPiB6aG91OyAjOTBFRQor6YOvID4gdMOhbjsgIzkwRUYKK+mDsCA+IHrFjXU7ICM5MEYwCivpg7EgPiBww61uZzsgIzkwRjEKK+mDsiA+IGzDoWk7ICM5MEYyCivpg7MgPiBuw607ICM5MEYzCivpg7QgPiBjaMSTbjsgIzkwRjQKK+mDtSA+IHnDs3U7ICM5MEY1Civpg7YgPiBiw7k7ICM5MEY2Civpg7cgPiB4acSBbmc7ICM5MEY3Civpg7ggPiBkxIFuOyAjOTBGOAor6YO5ID4gasO6OyAjOTBGOQor6YO6ID4gecWNbmc7ICM5MEZBCivpg7sgPiBxacSBbzsgIzkwRkIKK+mDvCA+IHnEqzsgIzkwRkMKK+mDvSA+IGTFqzsgIzkwRkQKK+mDviA+IHnEg247ICM5MEZFCivpg78gPiBtw6lpOyAjOTBGRgor6YSAID4gcsO5bzsgIzkxMDAKK+mEgSA+IGLDqGk7ICM5MTAxCivphIIgPiDDqDsgIzkxMDIKK+mEgyA+IHnDujsgIzkxMDMKK+mEhCA+IGp1w6BuOyAjOTEwNAor6YSFID4gecWtOyAjOTEwNQor6YSGID4gecO5bjsgIzkxMDYKK+mEhyA+IGjDsnU7ICM5MTA3CivphIggPiBrw7ppOyAjOTEwOAor6YSJID4geGnEgW5nOyAjOTEwOQor6YSKID4geGnEgW5nOyAjOTEwQQor6YSLID4gc8WNdTsgIzkxMEIKK+mEjCA+IHTDoW5nOyAjOTEwQwor6YSNID4gbcOtbmc7ICM5MTBECivphI4gPiB4w6w7ICM5MTBFCivphI8gPiByw7k7ICM5MTBGCivphJAgPiBjaMO5OyAjOTExMAor6YSRID4gesSrOyAjOTExMQor6YSSID4gesWNdTsgIzkxMTIKK+mEkyA+IGrDujsgIzkxMTMKK+mElCA+IHfFqzsgIzkxMTQKK+mElSA+IHhpxIFuZzsgIzkxMTUKK+mEliA+IHnDum47ICM5MTE2CivphJcgPiBow6BvOyAjOTExNwor6YSYID4gecWNbmc7ICM5MTE4CivphJkgPiBixK07ICM5MTE5CivphJogPiBtw7I7ICM5MTFBCivphJsgPiBjaMOhbzsgIzkxMUIKK+mEnCA+IGbFqzsgIzkxMUMKK+mEnSA+IGxpxINvOyAjOTExRAor6YSeID4gecOtbjsgIzkxMUUKK+mEnyA+IHpodcSBbjsgIzkxMUYKK+mEoCA+IGjDuTsgIzkxMjAKK+mEoSA+IHFpxIFvOyAjOTEyMQor6YSiID4gecSBbjsgIzkxMjIKK+mEoyA+IHpoxIFuZzsgIzkxMjMKK+mEpCA+IGbDoG47ICM5MTI0CivphKUgPiBxacSBbzsgIzkxMjUKK+mEpiA+IHjFrTsgIzkxMjYKK+mEpyA+IGTDqG5nOyAjOTEyNwor6YSoID4gYsOsOyAjOTEyOAor6YSpID4geMOtbjsgIzkxMjkKK+mEqiA+IGLDrDsgIzkxMkEKK+mEqyA+IGPDqW5nOyAjOTEyQgor6YSsID4gd8OpaTsgIzkxMkMKK+mErSA+IHpow6huZzsgIzkxMkQKK+mEriA+IG3DoG87ICM5MTJFCivphK8gPiBzaMOgbjsgIzkxMkYKK+mEsCA+IGzDrW47ICM5MTMwCivphLEgPiBww7M7ICM5MTMxCivphLIgPiBkxIFuOyAjOTEzMgor6YSzID4gbcOpbmc7ICM5MTMzCivphLQgPiB5w6g7ICM5MTM0CivphLUgPiBjxIFvOyAjOTEzNQor6YS2ID4ga3XDoGk7ICM5MTM2CivphLcgPiBmxJNuZzsgIzkxMzcKK+mEuCA+IG3DqW5nOyAjOTEzOAor6YS5ID4gesWNdTsgIzkxMzkKK+mEuiA+IGt1w6BuZzsgIzkxM0EKK+mEuyA+IGxpw6FuOyAjOTEzQgor6YS8ID4gesOgbjsgIzkxM0MKK+mEvSA+IGNow6FuOyAjOTEzRAor6YS+ID4gecWNdTsgIzkxM0UKK+mEvyA+IHHDrTsgIzkxM0YKK+mFgCA+IHnEgW47ICM5MTQwCivphYEgPiBjaMOhbjsgIzkxNDEKK+mFgiA+IHrDoG47ICM5MTQyCivphYMgPiBsw61uZzsgIzkxNDMKK+mFhCA+IGh1xIFuOyAjOTE0NAor6YWFID4geMSrOyAjOTE0NQor6YWGID4gZsSTbmc7ICM5MTQ2CivphYcgPiB6w6BuOyAjOTE0Nwor6YWIID4gbMOsOyAjOTE0OAor6YWJID4gecWPdTsgIzkxNDkKK+mFiiA+IGTErW5nOyAjOTE0QQor6YWLID4gccOtdTsgIzkxNEIKK+mFjCA+IHpow7pvOyAjOTE0Qwor6YWNID4gcMOoaTsgIzkxNEQKK+mFjiA+IHpow7J1OyAjOTE0RQor6YWPID4gecOtOyAjOTE0Rgor6YWQID4gaMSDbmc7ICM5MTUwCivphZEgPiB5xa07ICM5MTUxCivphZIgPiBqxK11OyAjOTE1Mgor6YWTID4gecSDbjsgIzkxNTMKK+mFlCA+IHrDuWk7ICM5MTU0CivphZUgPiBtw6FvOyAjOTE1NQor6YWWID4gZMSBbjsgIzkxNTYKK+mFlyA+IHjDuTsgIzkxNTcKK+mFmCA+IHTDs3U7ICM5MTU4CivphZkgPiB6aMSTbjsgIzkxNTkKK+mFmiA+IGbEk247ICM5MTVBCivphZ0gPiB5w7luOyAjOTE1RAor6YWeID4gdMOgaTsgIzkxNUUKK+mFnyA+IHRpxIFuOyAjOTE1Rgor6YWgID4gcWnEgzsgIzkxNjAKK+mFoSA+IHTDum87ICM5MTYxCivphaIgPiB6w7lvOyAjOTE2Mgor6YWjID4gaMSBbjsgIzkxNjMKK+mFpCA+IGfFqzsgIzkxNjQKK+mFpSA+IHPFqzsgIzkxNjUKK+mFpiA+IHDDsjsgIzkxNjYKK+mFpyA+IGNow7N1OyAjOTE2Nwor6YWoID4gesOgaTsgIzkxNjgKK+mFqSA+IG3DrW5nOyAjOTE2OQor6YWqID4gbMO5bzsgIzkxNkEKK+mFqyA+IGNow7lvOyAjOTE2Qgor6YWsID4gY2jDs3U7ICM5MTZDCivpha0gPiB5w7J1OyAjOTE2RAor6YWuID4gdMOzbmc7ICM5MTZFCivpha8gPiB6aMStOyAjOTE2Rgor6YWwID4geGnEgW47ICM5MTcwCivphbEgPiBqacOgbmc7ICM5MTcxCivphbIgPiBjaMOpbmc7ICM5MTcyCivphbMgPiB5w6xuOyAjOTE3Mwor6YW0ID4gdMO6OyAjOTE3NAor6YW1ID4geGnDoG87ICM5MTc1CivphbYgPiBtw6lpOyAjOTE3Ngor6YW3ID4ga8O5OyAjOTE3Nwor6YW4ID4gc3XEgW47ICM5MTc4CivphbkgPiBsw6hpOyAjOTE3OQor6YW6ID4gcMO6OyAjOTE3QQor6YW7ID4gesO5aTsgIzkxN0IKK+mFvCA+IGjEg2k7ICM5MTdDCivphb0gPiB5w6BuOyAjOTE3RAor6YW+ID4geMStOyAjOTE3RQor6YW/ID4gbmnDoG5nOyAjOTE3Rgor6YaAID4gd8OpaTsgIzkxODAKK+mGgSA+IGzDuTsgIzkxODEKK+mGgiA+IGzEg247ICM5MTgyCivphoMgPiB5xIFuOyAjOTE4Mwor6YaEID4gdMOhbzsgIzkxODQKK+mGhSA+IHDEk2k7ICM5MTg1CivphoYgPiB6aMSDbjsgIzkxODYKK+mGhyA+IGNow7puOyAjOTE4Nwor6YaIID4gdMOhbjsgIzkxODgKK+mGiSA+IHrDuWk7ICM5MTg5CivphoogPiBjaMO5bzsgIzkxOEEKK+mGiyA+IGPDuTsgIzkxOEIKK+mGjCA+IGvFq247ICM5MThDCivpho0gPiB0w607ICM5MThECivpho4gPiBtacOhbjsgIzkxOEUKK+mGjyA+IGTFqzsgIzkxOEYKK+mGkCA+IGjDujsgIzkxOTAKK+mGkSA+IHjFrTsgIzkxOTEKK+mGkiA+IHjErW5nOyAjOTE5Mgor6YaTID4gdMSDbjsgIzkxOTMKK+mGlCA+IGrEq3U7ICM5MTk0CivphpUgPiBjaMO6bjsgIzkxOTUKK+mGliA+IHnDuW47ICM5MTk2CivphpcgPiBww7I7ICM5MTk3CivphpggPiBrw6g7ICM5MTk4CivphpkgPiBzxY11OyAjOTE5OQor6YaaID4gbcOtOyAjOTE5QQor6YabID4gcXXDoW47ICM5MTlCCivphpwgPiBjaMWPdTsgIzkxOUMKK+mGnSA+IGPDum87ICM5MTlECivphp4gPiB5w7luOyAjOTE5RQor6YafID4gecOybmc7ICM5MTlGCivphqAgPiDDoG5nOyAjOTFBMAor6YahID4gemjDoDsgIzkxQTEKK+mGoiA+IGjEg2k7ICM5MUEyCivphqMgPiB0w6FuZzsgIzkxQTMKK+mGpCA+IGppw6BuZzsgIzkxQTQKK+mGpSA+IHBpxINvOyAjOTFBNQor6YamID4gc2jEg247ICM5MUE2CivphqcgPiB5w7k7ICM5MUE3CivphqggPiBsw607ICM5MUE4CivphqkgPiB6w6FvOyAjOTFBOQor6YaqID4gbMOhbzsgIzkxQUEKK+mGqyA+IHnEqzsgIzkxQUIKK+mGrCA+IGppw6BuZzsgIzkxQUMKK+mGrSA+IHDFqzsgIzkxQUQKK+mGriA+IGppw6BvOyAjOTFBRQor6YavID4geMSrOyAjOTFBRgor6YawID4gdMOhbjsgIzkxQjAKK+mGsSA+IHDDsjsgIzkxQjEKK+mGsiA+IG7Ds25nOyAjOTFCMgor6YazID4gecOsOyAjOTFCMwor6Ya0ID4gbMStOyAjOTFCNAor6Ya1ID4gasO5OyAjOTFCNQor6Ya2ID4gamnDoG87ICM5MUI2CivphrcgPiB5w6w7ICM5MUI3CivphrggPiBuacOgbmc7ICM5MUI4CivphrkgPiByw7o7ICM5MUI5CivphrogPiB4xatuOyAjOTFCQQor6Ya7ID4gY2jDs3U7ICM5MUJCCivphrwgPiB5w6BuOyAjOTFCQwor6Ya9ID4gbMOtbmc7ICM5MUJECivphr4gPiBtw607ICM5MUJFCivphr8gPiBtw607ICM5MUJGCivph4AgPiBuacOgbmc7ICM5MUMwCivph4EgPiB4w6xuOyAjOTFDMQor6YeCID4gamnDoG87ICM5MUMyCivph4MgPiB4xK07ICM5MUMzCivph4QgPiBtw607ICM5MUM0Civph4UgPiB5w6BuOyAjOTFDNQor6YeGID4gYmnDoG47ICM5MUM2Civph4cgPiBjxINpOyAjOTFDNwor6YeIID4gc2jDrDsgIzkxQzgKK+mHiSA+IHnDsnU7ICM5MUM5Civph4ogPiBzaMOsOyAjOTFDQQor6YeLID4gc2jDrDsgIzkxQ0IKK+mHjCA+IGzErTsgIzkxQ0MKK+mHjSA+IHpow7JuZzsgIzkxQ0QKK+mHjiA+IHnElTsgIzkxQ0UKK+mHjyA+IGxpw6BuZzsgIzkxQ0YKK+mHkCA+IGzDrTsgIzkxRDAKK+mHkSA+IGrEq247ICM5MUQxCivph5IgPiBqxKtuJyAnesOsJyAncMOhbmc7ICM5MUQyCivph5MgPiBxw611OyAjOTFEMwor6YeUID4gecStOyAjOTFENAor6YeVID4gZGnEg287ICM5MUQ1Civph5YgPiBkxIFvOyAjOTFENgor6YeXID4gemjEgW87ICM5MUQ3Civph5ggPiBkxKtuZzsgIzkxRDgKK+mHmSA+IHDDsjsgIzkxRDkKK+mHmiA+IHHDrXU7ICM5MURBCivph5sgPiBow6k7ICM5MURCCivph5wgPiBmxa07ICM5MURDCivph50gPiB6aMSTbjsgIzkxREQKK+mHniA+IHpow607ICM5MURFCivph58gPiBixIE7ICM5MURGCivph6AgPiBsdcOgbjsgIzkxRTAKK+mHoSA+IGbFrTsgIzkxRTEKK+mHoiA+IG7DoWk7ICM5MUUyCivph6MgPiBkacOgbzsgIzkxRTMKK+mHpCA+IHNow6BuOyAjOTFFNAor6YelID4gcWnEg287ICM5MUU1Civph6YgPiBrw7J1OyAjOTFFNgor6YenID4gY2h1w6BuOyAjOTFFNwor6YeoID4gesStOyAjOTFFOAor6YepID4gZsOhbjsgIzkxRTkKK+mHqiA+IHnDujsgIzkxRUEKK+mHqyA+IGh1w6E7ICM5MUVCCivph6wgPiBow6BuOyAjOTFFQwor6YetID4gZ8WNbmc7ICM5MUVECivph64gPiBxw607ICM5MUVFCivph68gPiBtw6FuZzsgIzkxRUYKK+mHsCA+IHLDrDsgIzkxRjAKK+mHsSA+IGTDrDsgIzkxRjEKK+mHsiA+IHPDrDsgIzkxRjIKK+mHsyA+IHjDrDsgIzkxRjMKK+mHtCA+IHnDrDsgIzkxRjQKK+mHtSA+IGNoxIFpOyAjOTFGNQor6Ye2ID4gc2jEqzsgIzkxRjYKK+mHtyA+IHTFrTsgIzkxRjcKK+mHuCA+IHjDrDsgIzkxRjgKK+mHuSA+IG7HmjsgIzkxRjkKK+mHuiA+IHFpxIFuOyAjOTFGQQor6Ye8ID4gamnDoG47ICM5MUZDCivph70gPiBwxKs7ICM5MUZECivph74gPiB5w6k7ICM5MUZFCivph78gPiB5w61uOyAjOTFGRgor6YiAID4gYsSDOyAjOTIwMAor6YiBID4gZsSBbmc7ICM5MjAxCivpiIIgPiBjaMOpbjsgIzkyMDIKK+mIgyA+IHjDrW5nOyAjOTIwMwor6YiEID4gdMWPdTsgIzkyMDQKK+mIhSA+IHl1w6g7ICM5MjA1CivpiIYgPiB5w6FuOyAjOTIwNgor6YiHID4gZsWrOyAjOTIwNwor6YiIID4gcMSrOyAjOTIwOAor6YiJID4gbsOgOyAjOTIwOQor6YiKID4geMSrbjsgIzkyMEEKK+mIiyA+IMOpOyAjOTIwQgor6YiMID4ganXDqTsgIzkyMEMKK+mIjSA+IGTDuW47ICM5MjBECivpiI4gPiBnxY11OyAjOTIwRQor6YiPID4gecStbjsgIzkyMEYKK+mIkCA+IHFpw6FuOyAjOTIxMAor6YiRID4gYsSDbjsgIzkyMTEKK+mIkiA+IGrDrTsgIzkyMTIKK+mIkyA+IHLDqW47ICM5MjEzCivpiJQgPiBjaMSBbzsgIzkyMTQKK+mIlSA+IG7ErXU7ICM5MjE1CivpiJYgPiBmxJNuOyAjOTIxNgor6YiXID4gecWtbjsgIzkyMTcKK+mImCA+IGrErTsgIzkyMTgKK+mImSA+IHHDrW47ICM5MjE5CivpiJogPiBww607ICM5MjFBCivpiJsgPiBnxatvOyAjOTIxQgor6YicID4gaMOzbmc7ICM5MjFDCivpiJ0gPiB5w61uOyAjOTIxRAor6YieID4gasWrbjsgIzkyMUUKK+mInyA+IHNoxKs7ICM5MjFGCivpiKAgPiB5w6w7ICM5MjIwCivpiKEgPiB6aMWNbmc7ICM5MjIxCivpiKIgPiBuacSTOyAjOTIyMgor6YijID4gZ8OgaTsgIzkyMjMKK+mIpCA+IHLDrDsgIzkyMjQKK+mIpSA+IGjDum87ICM5MjI1CivpiKYgPiB0w6BpOyAjOTIyNgor6YinID4ga8Ogbmc7ICM5MjI3CivpiKwgPiBkw7pvOyAjOTIyQwor6YitID4gesSrOyAjOTIyRAor6YiuID4gbsStOyAjOTIyRQor6YivID4gdMO6OyAjOTIyRgor6YiwID4gc2jDrDsgIzkyMzAKK+mIsSA+IG3DrW47ICM5MjMxCivpiLIgPiBnxas7ICM5MjMyCivpiLMgPiDEkzsgIzkyMzMKK+mItCA+IGzDrW5nOyAjOTIzNAor6Yi1ID4gYsOsbmc7ICM5MjM1CivpiLYgPiB5w607ICM5MjM2CivpiLcgPiBnxas7ICM5MjM3CivpiLggPiBiw6E7ICM5MjM4CivpiLkgPiBwxKs7ICM5MjM5CivpiLogPiB5w7k7ICM5MjNBCivpiLsgPiBzw6w7ICM5MjNCCivpiLwgPiB6w7pvOyAjOTIzQwor6Yi9ID4gYsO5OyAjOTIzRAor6Yi+ID4gecOzdTsgIzkyM0UKK+mIvyA+IGRpw6BuOyAjOTIzRgor6YmAID4gamnEgzsgIzkyNDAKK+mJgSA+IHpoxJNuOyAjOTI0MQor6YmCID4gc2jErTsgIzkyNDIKK+mJgyA+IHNow6w7ICM5MjQzCivpiYQgPiB0acSVOyAjOTI0NAor6YmFID4gasO5OyAjOTI0NQor6YmGID4gemjEgW47ICM5MjQ2CivpiYcgPiBzaMSrOyAjOTI0Nwor6YmIID4gc2jDqTsgIzkyNDgKK+mJiSA+IHh1w6BuOyAjOTI0OQor6YmKID4gemjEgW87ICM5MjRBCivpiYsgPiBiw6BvOyAjOTI0Qgor6YmMID4gaMOpOyAjOTI0Qwor6YmNID4gYsOsOyAjOTI0RAor6YmOID4gc2jEk25nOyAjOTI0RQor6YmPID4gY2jDujsgIzkyNEYKK+mJkCA+IHNow607ICM5MjUwCivpiZEgPiBiw7M7ICM5MjUxCivpiZIgPiB6aMO5OyAjOTI1Mgor6YmTID4gY2jDrDsgIzkyNTMKK+mJlCA+IHrEgTsgIzkyNTQKK+mJlSA+IHDFjTsgIzkyNTUKK+mJliA+IHTDs25nOyAjOTI1Ngor6YmXID4gcWnDoW47ICM5MjU3CivpiZggPiBmw7o7ICM5MjU4CivpiZkgPiB6aMSDaTsgIzkyNTkKK+mJmiA+IGzErXU7ICM5MjVBCivpiZsgPiBxacSBbjsgIzkyNUIKK+mJnCA+IGbDujsgIzkyNUMKK+mJnSA+IGzDrDsgIzkyNUQKK+mJniA+IHl1w6g7ICM5MjVFCivpiZ8gPiBwxKs7ICM5MjVGCivpiaAgPiB5xIFuZzsgIzkyNjAKK+mJoSA+IGLDoG47ICM5MjYxCivpiaIgPiBixY07ICM5MjYyCivpiaMgPiBqacOpOyAjOTI2Mwor6YmkID4gZ8WNdTsgIzkyNjQKK+mJpSA+IHNow7k7ICM5MjY1CivpiaYgPiB6aMSTbmc7ICM5MjY2CivpiacgPiBtxa07ICM5MjY3CivpiaggPiBuxK07ICM5MjY4CivpiakgPiBuacSTOyAjOTI2OQor6YmqID4gZMOsOyAjOTI2QQor6YmrID4gamnEgTsgIzkyNkIKK+mJrCA+IG3DuTsgIzkyNkMKK+mJrSA+IGTDoG47ICM5MjZECivpia4gPiBzaMSTbjsgIzkyNkUKK+mJryA+IHnErTsgIzkyNkYKK+mJsCA+IHPEqzsgIzkyNzAKK+mJsSA+IGt1w6BuZzsgIzkyNzEKK+mJsiA+IGvEgzsgIzkyNzIKK+mJsyA+IGLElWk7ICM5MjczCivpibQgPiBqacOgbjsgIzkyNzQKK+mJtSA+IHTDs25nOyAjOTI3NQor6Ym2ID4geMOtbmc7ICM5Mjc2CivpibcgPiBow7NuZzsgIzkyNzcKK+mJuCA+IGppxINvOyAjOTI3OAor6Ym5ID4gY2jErTsgIzkyNzkKK+mJuiA+IMOocjsgIzkyN0EKK+mJuyA+IGfDqDsgIzkyN0IKK+mJvCA+IGLErW5nOyAjOTI3Qwor6Ym9ID4gc2jDrDsgIzkyN0QKK+mJviA+IG3Ds3U7ICM5MjdFCivpib8gPiBqacOhOyAjOTI3Rgor6YqAID4gecOtbjsgIzkyODAKK+mKgSA+IGrFq247ICM5MjgxCivpioIgPiB6aMWNdTsgIzkyODIKK+mKgyA+IGNow7JuZzsgIzkyODMKK+mKhCA+IHNow6BuZzsgIzkyODQKK+mKhSA+IHTDs25nOyAjOTI4NQor6YqGID4gbcOyOyAjOTI4Ngor6YqHID4gbMOoaTsgIzkyODcKK+mKiCA+IGrEqzsgIzkyODgKK+mKiSA+IHnDuTsgIzkyODkKK+mKiiA+IHjDuTsgIzkyOEEKK+mKiyA+IHLDqW47ICM5MjhCCivpiowgPiB6w7luOyAjOTI4Qwor6YqNID4gemjDrDsgIzkyOEQKK+mKjiA+IHHEq29uZzsgIzkyOEUKK+mKjyA+IHNow6BuOyAjOTI4Rgor6YqQID4gY2jDrDsgIzkyOTAKK+mKkSA+IHhpxINuOyAjOTI5MQor6YqSID4geMOtbmc7ICM5MjkyCivpipMgPiBxdcOhbjsgIzkyOTMKK+mKlCA+IHDEqzsgIzkyOTQKK+mKlSA+IHRpxJU7ICM5Mjk1CivpipYgPiB6aMWrOyAjOTI5Ngor6YqXID4gaMOzdTsgIzkyOTcKK+mKmCA+IG3DrW5nOyAjOTI5OAor6YqZID4ga3XEgzsgIzkyOTkKK+mKmiA+IHnDoW87ICM5MjlBCivpipsgPiB4acSBbjsgIzkyOUIKK+mKnCA+IHhpw6FuOyAjOTI5Qwor6YqdID4geMSrdTsgIzkyOUQKK+mKniA+IGrFq247ICM5MjlFCivpip8gPiBjaMSBOyAjOTI5Rgor6YqgID4gbMSDbzsgIzkyQTAKK+mKoSA+IGrDrTsgIzkyQTEKK+mKoiA+IHDErTsgIzkyQTIKK+mKoyA+IHLFrTsgIzkyQTMKK+mKpCA+IG3ErTsgIzkyQTQKK+mKpSA+IHnErTsgIzkyQTUKK+mKpiA+IHnEq247ICM5MkE2CivpiqcgPiBndcSBbmc7ICM5MkE3CivpiqggPiDEgW47ICM5MkE4CivpiqkgPiBkacWNdTsgIzkyQTkKK+mKqiA+IHnFj3U7ICM5MkFBCivpiqsgPiBzw6g7ICM5MkFCCivpiqwgPiBrw6BvOyAjOTJBQwor6YqtID4gcWnDoW47ICM5MkFECivpiq4gPiBsdcOhbjsgIzkyQUUKK+mKsCA+IMSBaTsgIzkyQjAKK+mKsSA+IGRpw6BvOyAjOTJCMQor6YqyID4gaMOgbjsgIzkyQjIKK+mKsyA+IHLDuWk7ICM5MkIzCivpirQgPiBzaMOsOyAjOTJCNAor6Yq1ID4ga8STbmc7ICM5MkI1CivpirYgPiBxw611OyAjOTJCNgor6Yq3ID4geGnEgW87ICM5MkI3CivpirggPiB6aMOpOyAjOTJCOAor6Yq5ID4geMOsdTsgIzkyQjkKK+mKuiA+IHrDoG5nOyAjOTJCQQor6Yq7ID4gdMOsOyAjOTJCQgor6Yq8ID4gY8O5bzsgIzkyQkMKK+mKvSA+IGd1xIE7ICM5MkJECivpir4gPiBnxY9uZzsgIzkyQkUKK+mKvyA+IHpoxY1uZzsgIzkyQkYKK+mLgCA+IGTDsnU7ICM5MkMwCivpi4EgPiBsx5o7ICM5MkMxCivpi4IgPiBtw6lpOyAjOTJDMgor6YuDID4gbMOhbmc7ICM5MkMzCivpi4QgPiB3xINuOyAjOTJDNAor6YuFID4geMSrbjsgIzkyQzUKK+mLhiA+IHnDum47ICM5MkM2Civpi4cgPiBiw6hpOyAjOTJDNwor6YuIID4gd8O5OyAjOTJDOAor6YuJID4gc8O5OyAjOTJDOQor6YuKID4gecO5OyAjOTJDQQor6YuLID4gY2jDoW47ICM5MkNCCivpi4wgPiB0xK1uZzsgIzkyQ0MKK+mLjSA+IGLDszsgIzkyQ0QKK+mLjiA+IGjDoG47ICM5MkNFCivpi48gPiBqacOhOyAjOTJDRgor6YuQID4gaMOzbmc7ICM5MkQwCivpi5EgPiBjdcSBbjsgIzkyRDEKK+mLkiA+IGbEk25nOyAjOTJEMgor6YuTID4gY2jEgW47ICM5MkQzCivpi5QgPiB3xINuOyAjOTJENAor6YuVID4gemjDrDsgIzkyRDUKK+mLliA+IHPEqzsgIzkyRDYKK+mLlyA+IHh1xIFuOyAjOTJENwor6YuYID4gd8O6OyAjOTJEOAor6YuZID4gd8O6OyAjOTJEOQor6YuaID4gdGnDoW87ICM5MkRBCivpi5sgPiBnxY9uZzsgIzkyREIKK+mLnCA+IHpow7pvOyAjOTJEQwor6YudID4gbMecZTsgIzkyREQKK+mLniA+IHjDrW5nOyAjOTJERQor6YufID4gcWnEgW47ICM5MkRGCivpi6AgPiBzaMOobjsgIzkyRTAKK+mLoSA+IGjDoW47ICM5MkUxCivpi6IgPiBsx5xlOyAjOTJFMgor6YujID4geGnDqTsgIzkyRTMKK+mLpCA+IGNow7o7ICM5MkU0Civpi6UgPiB6aMOobmc7ICM5MkU1Civpi6YgPiBqw7o7ICM5MkU2Civpi6cgPiB4acOgbjsgIzkyRTcKK+mLqCA+IHRpxJU7ICM5MkU4Civpi6kgPiBtw6FuZzsgIzkyRTkKK+mLqiA+IHDFqzsgIzkyRUEKK+mLqyA+IGzDrTsgIzkyRUIKK+mLrCA+IHDDoG47ICM5MkVDCivpi60gPiByw7lpOyAjOTJFRAor6YuuID4gY2jDqW5nOyAjOTJFRQor6YuvID4gZ8OgbzsgIzkyRUYKK+mLsCA+IGzErTsgIzkyRjAKK+mLsSA+IHTDqDsgIzkyRjEKK+mLsyA+IHpow7k7ICM5MkYzCivpi7UgPiB0xas7ICM5MkY1Civpi7YgPiBsxK11OyAjOTJGNgor6Yu3ID4gesO5aTsgIzkyRjcKK+mLuCA+IGrDuTsgIzkyRjgKK+mLuSA+IGNoxINuZzsgIzkyRjkKK+mLuiA+IHl1xIFuOyAjOTJGQQor6Yu7ID4gamnDoG47ICM5MkZCCivpi7wgPiBnxIFuZzsgIzkyRkMKK+mLvSA+IGRpw6BvOyAjOTJGRAor6Yu+ID4gdMOhbzsgIzkyRkUKK+mLvyA+IGNow6FuZzsgIzkyRkYKK+mMgCA+IGzDum47ICM5MzAwCivpjIEgPiBrdcSDOyAjOTMwMQor6YyCID4gbMOtbmc7ICM5MzAyCivpjIMgPiBixJNpOyAjOTMwMwor6YyEID4gbMO5OyAjOTMwNAor6YyFID4gbMOtOyAjOTMwNQor6YyGID4gcWnEgW5nOyAjOTMwNgor6YyHID4gcMOzdTsgIzkzMDcKK+mMiCA+IGp1w6BuOyAjOTMwOAor6YyJID4gbcOtbjsgIzkzMDkKK+mMiiA+IHrDuWk7ICM5MzBBCivpjIsgPiBww6luZzsgIzkzMEIKK+mMjCA+IMOgbjsgIzkzMEMKK+mMjSA+IHDDrTsgIzkzMEQKK+mMjiA+IHhpw6BuOyAjOTMwRQor6YyPID4gecOgOyAjOTMwRgor6YyQID4gemjFq2k7ICM5MzEwCivpjJEgPiBsw6hpOyAjOTMxMQor6YySID4gxIE7ICM5MzEyCivpjJMgPiBrxY1uZzsgIzkzMTMKK+mMlCA+IHTDoDsgIzkzMTQKK+mMlSA+IGvFq247ICM5MzE1CivpjJYgPiBkxa07ICM5MzE2CivpjJcgPiB3w6hpOyAjOTMxNwor6YyYID4gY2jDumk7ICM5MzE4CivpjJkgPiB6xKs7ICM5MzE5CivpjJogPiB6aMSTbmc7ICM5MzFBCivpjJsgPiBixJNuOyAjOTMxQgor6YycID4gbmnEkzsgIzkzMUMKK+mMnSA+IGPDs25nOyAjOTMxRAor6YyeID4gccO6bjsgIzkzMUUKK+mMnyA+IHTDoW47ICM5MzFGCivpjKAgPiBkw6xuZzsgIzkzMjAKK+mMoSA+IHHDrTsgIzkzMjEKK+mMoiA+IHFpw6FuOyAjOTMyMgor6YyjID4gemjDum87ICM5MzIzCivpjKQgPiBxw607ICM5MzI0CivpjKUgPiB5w7k7ICM5MzI1CivpjKYgPiBqxK1uOyAjOTMyNgor6YynID4gZ3XEg247ICM5MzI3CivpjKggPiBtw6FvOyAjOTMyOAor6YypID4gY2jEgW5nOyAjOTMyOQor6YyqID4gdGnEg247ICM5MzJBCivpjKsgPiB4w607ICM5MzJCCivpjKwgPiBsacOgbjsgIzkzMkMKK+mMrSA+IHTDoW87ICM5MzJECivpjK4gPiBnw7k7ICM5MzJFCivpjK8gPiBjw7lvOyAjOTMyRgor6YywID4gc2jDuTsgIzkzMzAKK+mMsSA+IHpoxJNuOyAjOTMzMQor6YyyID4gbMO5OyAjOTMzMgor6YyzID4gbcSVbmc7ICM5MzMzCivpjLQgPiBsw7k7ICM5MzM0CivpjLUgPiBodcSBOyAjOTMzNQor6Yy2ID4gYmnEg287ICM5MzM2CivpjLcgPiBnw6E7ICM5MzM3CivpjLggPiBsw6FpOyAjOTMzOAor6Yy5ID4ga8SVbjsgIzkzMzkKK+mMvCA+IG7DoGk7ICM5MzNDCivpjL0gPiB3xINuOyAjOTMzRAor6Yy+ID4gesOgbjsgIzkzM0UKK+mNgCA+IGTDqTsgIzkzNDAKK+mNgSA+IHhpxIFuOyAjOTM0MQor6Y2DID4gaMWrbzsgIzkzNDMKK+mNhCA+IGxpw6BuZzsgIzkzNDQKK+mNhiA+IG3DqW47ICM5MzQ2CivpjYcgPiBrxINpOyAjOTM0Nwor6Y2IID4gecSrbmc7ICM5MzQ4CivpjYkgPiBkxKs7ICM5MzQ5CivpjYogPiBsacOgbjsgIzkzNEEKK+mNiyA+IGfFq287ICM5MzRCCivpjYwgPiB4acSDbjsgIzkzNEMKK+mNjSA+IGTDuTsgIzkzNEQKK+mNjiA+IHTDujsgIzkzNEUKK+mNjyA+IHfDqWk7ICM5MzRGCivpjZAgPiBjxY1uZzsgIzkzNTAKK+mNkSA+IGbDuTsgIzkzNTEKK+mNkiA+IHLDs3U7ICM5MzUyCivpjZMgPiBqw607ICM5MzUzCivpjZQgPiDDqDsgIzkzNTQKK+mNlSA+IHLDs3U7ICM5MzU1CivpjZYgPiBjaMSVbjsgIzkzNTYKK+mNlyA+IHTDrTsgIzkzNTcKK+mNmCA+IHpow6E7ICM5MzU4CivpjZkgPiBow7JuZzsgIzkzNTkKK+mNmiA+IHnDoW5nOyAjOTM1QQor6Y2bID4gZHXDoG47ICM5MzVCCivpjZwgPiB4acSBOyAjOTM1Qwor6Y2dID4gecO6OyAjOTM1RAor6Y2eID4ga8STbmc7ICM5MzVFCivpjZ8gPiB4xKtuZzsgIzkzNUYKK+mNoCA+IGh1w6FuZzsgIzkzNjAKK+mNoSA+IHfElWk7ICM5MzYxCivpjaIgPiBmw7k7ICM5MzYyCivpjaMgPiB6aMSBbzsgIzkzNjMKK+mNpCA+IGNow6E7ICM5MzY0CivpjaUgPiBxacOoOyAjOTM2NQor6Y2mID4gc2jDqTsgIzkzNjYKK+mNpyA+IGjFjW5nOyAjOTM2Nwor6Y2oID4ga8O6aTsgIzkzNjgKK+mNqSA+IHRpxINuOyAjOTM2OQor6Y2qID4gbcOzdTsgIzkzNkEKK+mNqyA+IHFpxIFvOyAjOTM2Qgor6Y2sID4gcWnEgW87ICM5MzZDCivpja0gPiBow7N1OyAjOTM2RAor6Y2uID4gdMWNdTsgIzkzNkUKK+mNryA+IGPFjW5nOyAjOTM2Rgor6Y2wID4gaHXDoW47ICM5MzcwCivpjbEgPiB5w6g7ICM5MzcxCivpjbIgPiBtw61uOyAjOTM3Mgor6Y2zID4gamnDoG47ICM5MzczCivpjbQgPiBkdcSBbjsgIzkzNzQKK+mNtSA+IGppw6BuOyAjOTM3NQor6Y22ID4gc8WNbmc7ICM5Mzc2CivpjbcgPiBrxatpOyAjOTM3Nwor6Y24ID4gaMO6OyAjOTM3OAor6Y25ID4geHXEgW47ICM5Mzc5CivpjbogPiBkxa1vOyAjOTM3QQor6Y27ID4gamnDqTsgIzkzN0IKK+mNvCA+IHpoxJNuOyAjOTM3Qwor6Y29ID4gYmnEgW47ICM5MzdECivpjb4gPiB6aMWNbmc7ICM5MzdFCivpjb8gPiB6xKs7ICM5MzdGCivpjoAgPiB4xKt1OyAjOTM4MAor6Y6BID4gecOpOyAjOTM4MQor6Y6CID4gbcSVaTsgIzkzODIKK+mOgyA+IHDDoGk7ICM5MzgzCivpjoQgPiDEgWk7ICM5Mzg0CivpjoUgPiBqacOoOyAjOTM4NQor6Y6HID4gbcOpaTsgIzkzODcKK+mOiCA+IGNoxatvOyAjOTM4OAor6Y6JID4gdMOgOyAjOTM4OQor6Y6KID4gYsOgbmc7ICM5MzhBCivpjosgPiB4acOhOyAjOTM4Qgor6Y6MID4gbGnDoW47ICM5MzhDCivpjo0gPiBzxa1vOyAjOTM4RAor6Y6OID4geMOsOyAjOTM4RQor6Y6PID4gbMOtdTsgIzkzOEYKK+mOkCA+IHrDujsgIzkzOTAKK+mOkSA+IHnDqDsgIzkzOTEKK+mOkiA+IG7DsnU7ICM5MzkyCivpjpMgPiB3xJNuZzsgIzkzOTMKK+mOlCA+IHLDs25nOyAjOTM5NAor6Y6VID4gdMOhbmc7ICM5Mzk1CivpjpYgPiBzxa1vOyAjOTM5Ngor6Y6XID4gcWnEgW5nOyAjOTM5Nwor6Y6YID4gZ8OpOyAjOTM5OAor6Y6ZID4gc2jDuW87ICM5Mzk5CivpjpogPiBjaMO6aTsgIzkzOUEKK+mOmyA+IGLDszsgIzkzOUIKK+mOnCA+IHDDoW47ICM5MzlDCivpjp0gPiBzw6A7ICM5MzlECivpjp4gPiBiw6w7ICM5MzlFCivpjp8gPiBzxINuZzsgIzkzOUYKK+mOoCA+IGfEgW5nOyAjOTNBMAor6Y6hID4gesSrOyAjOTNBMQor6Y6iID4gd8O5OyAjOTNBMgor6Y6jID4gecOsbmc7ICM5M0EzCivpjqQgPiBodcSDbmc7ICM5M0E0CivpjqUgPiB0acOhbzsgIzkzQTUKK+mOpiA+IGzDrXU7ICM5M0E2CivpjqcgPiBrxINpOyAjOTNBNwor6Y6oID4gc8WtbjsgIzkzQTgKK+mOqSA+IHNoxIE7ICM5M0E5CivpjqogPiBzxY11OyAjOTNBQQor6Y6rID4gd8OgbjsgIzkzQUIKK+mOrCA+IGjDoG87ICM5M0FDCivpjq0gPiB6aMOobjsgIzkzQUQKK+mOriA+IHpow6huOyAjOTNBRQor6Y6vID4gbMWtbzsgIzkzQUYKK+mOsCA+IHnDrDsgIzkzQjAKK+mOsSA+IHl1w6FuOyAjOTNCMQor6Y6yID4gdMSDbmc7ICM5M0IyCivpjrMgPiBuacOoOyAjOTNCMwor6Y60ID4geMOtOyAjOTNCNAor6Y61ID4gamnEgTsgIzkzQjUKK+mOtiA+IGfEkzsgIzkzQjYKK+mOtyA+IG3EgzsgIzkzQjcKK+mOuCA+IGp1xIFuOyAjOTNCOAor6Y67ID4gc8WtbzsgIzkzQkIKK+mOvyA+IG7DoTsgIzkzQkYKK+mPgCA+IGzFrTsgIzkzQzAKK+mPgSA+IHPFrW87ICM5M0MxCivpj4IgPiDFjXU7ICM5M0MyCivpj4MgPiB6w7o7ICM5M0MzCivpj4QgPiB0dcOhbjsgIzkzQzQKK+mPhSA+IHjEq3U7ICM5M0M1Civpj4YgPiBndcOgbjsgIzkzQzYKK+mPhyA+IHh1w6BuOyAjOTNDNwor6Y+IID4gbGnDoG47ICM5M0M4Civpj4kgPiBzaMOydTsgIzkzQzkKK+mPiiA+IMOhbzsgIzkzQ0EKK+mPiyA+IG3Eg247ICM5M0NCCivpj4wgPiBtw7I7ICM5M0NDCivpj40gPiBsw7pvOyAjOTNDRAor6Y+OID4gYsOsOyAjOTNDRQor6Y+PID4gd8OoaTsgIzkzQ0YKK+mPkCA+IGzDrXU7ICM5M0QwCivpj5EgPiBkw607ICM5M0QxCivpj5IgPiBxacSBbzsgIzkzRDIKK+mPkyA+IGPFjW5nOyAjOTNEMwor6Y+UID4gecOtOyAjOTNENAor6Y+VID4gbMO5OyAjOTNENQor6Y+WID4gw6FvOyAjOTNENgor6Y+XID4ga8STbmc7ICM5M0Q3Civpj5ggPiBxacSBbmc7ICM5M0Q4Civpj5kgPiBjxatpOyAjOTNEOQor6Y+aID4gccOsOyAjOTNEQQor6Y+bID4gY2jDoW5nOyAjOTNEQgor6Y+cID4gdMSBbmc7ICM5M0RDCivpj50gPiBtw6BuOyAjOTNERAor6Y+eID4gecWNbmc7ICM5M0RFCivpj58gPiBjaMSDbjsgIzkzREYKK+mPoCA+IGbEk25nOyAjOTNFMAor6Y+hID4gasOsbmc7ICM5M0UxCivpj6IgPiBiacSBbzsgIzkzRTIKK+mPoyA+IHNow7k7ICM5M0UzCivpj6QgPiBsw7J1OyAjOTNFNAor6Y+lID4geMOsdTsgIzkzRTUKK+mPpiA+IGPFjW5nOyAjOTNFNgor6Y+nID4gbMOzbmc7ICM5M0U3Civpj6ggPiB6w6BuOyAjOTNFOAor6Y+pID4gamnDoG47ICM5M0U5Civpj6ogPiBjw6FvOyAjOTNFQQor6Y+rID4gbMOtOyAjOTNFQgor6Y+sID4geGnDoDsgIzkzRUMKK+mPrSA+IHjEqzsgIzkzRUQKK+mPriA+IGvEgW5nOyAjOTNFRQor6Y+wID4gYsOobmc7ICM5M0YwCivpj7MgPiB6aMSTbmc7ICM5M0YzCivpj7QgPiBsw7k7ICM5M0Y0Civpj7UgPiBodcOhOyAjOTNGNQor6Y+2ID4gasOtOyAjOTNGNgor6Y+3ID4gcMO6OyAjOTNGNwor6Y+4ID4gaMO5aTsgIzkzRjgKK+mPuSA+IHFpxIFuZzsgIzkzRjkKK+mPuiA+IHDFjTsgIzkzRkEKK+mPuyA+IGzDrW47ICM5M0ZCCivpj7wgPiBzxa1vOyAjOTNGQwor6Y+9ID4geMOsdTsgIzkzRkQKK+mPviA+IHPEg247ICM5M0ZFCivpj78gPiBjaMSTbmc7ICM5M0ZGCivpkIAgPiBrw7lpOyAjOTQwMAor6ZCBID4gc8SrOyAjOTQwMQor6ZCCID4gbMOsdTsgIzk0MDIKK+mQgyA+IG7DoW87ICM5NDAzCivpkIQgPiBow6luZzsgIzk0MDQKK+mQhSA+IHBpxJU7ICM5NDA1CivpkIYgPiBzw7lpOyAjOTQwNgor6ZCHID4gZsOhbjsgIzk0MDcKK+mQiCA+IHFpw6FvOyAjOTQwOAor6ZCJID4gcXXEgW47ICM5NDA5CivpkIogPiB5w6FuZzsgIzk0MEEKK+mQiyA+IHTDoG5nOyAjOTQwQgor6ZCMID4geGnDoG5nOyAjOTQwQwor6ZCNID4ganXDqTsgIzk0MEQKK+mQjiA+IGppxIFvOyAjOTQwRQor6ZCPID4gesWrbjsgIzk0MEYKK+mQkCA+IGxpw6FvOyAjOTQxMAor6ZCRID4gamnDqTsgIzk0MTEKK+mQkiA+IGzDoW87ICM5NDEyCivpkJMgPiBkw7lpOyAjOTQxMwor6ZCUID4gdMOhbjsgIzk0MTQKK+mQlSA+IHrEgW47ICM5NDE1CivpkJYgPiBqxKs7ICM5NDE2CivpkJcgPiBqacSDbjsgIzk0MTcKK+mQmCA+IHpoxY1uZzsgIzk0MTgKK+mQmSA+IGTEk25nOyAjOTQxOQor6ZCaID4gecOgOyAjOTQxQQor6ZCbID4gecOsbmc7ICM5NDFCCivpkJwgPiBkw7lpOyAjOTQxQwor6ZCdID4ganXDqTsgIzk0MUQKK+mQniA+IG7DsnU7ICM5NDFFCivpkJ8gPiB0w6w7ICM5NDFGCivpkKAgPiBwxa07ICM5NDIwCivpkKEgPiB0acSVOyAjOTQyMQor6ZCkID4gZMStbmc7ICM5NDI0CivpkKUgPiBzaMOgbjsgIzk0MjUKK+mQpiA+IGvEgWk7ICM5NDI2CivpkKcgPiBqacSDbjsgIzk0MjcKK+mQqCA+IGbDqGk7ICM5NDI4CivpkKkgPiBzw7lpOyAjOTQyOQor6ZCqID4gbMWtOyAjOTQyQQor6ZCrID4ganXEgW47ICM5NDJCCivpkKwgPiBow7lpOyAjOTQyQwor6ZCtID4gecO5OyAjOTQyRAor6ZCuID4gbGnDoW47ICM5NDJFCivpkK8gPiB6aMO6bzsgIzk0MkYKK+mQsCA+IHFpxIFvOyAjOTQzMAor6ZCxID4gcWnEgW47ICM5NDMxCivpkLIgPiB6aMO6bzsgIzk0MzIKK+mQsyA+IGzDqWk7ICM5NDMzCivpkLQgPiBiw6w7ICM5NDM0CivpkLUgPiB0acSVOyAjOTQzNQor6ZC2ID4gaHXDoW47ICM5NDM2CivpkLcgPiB5w6g7ICM5NDM3CivpkLggPiBkw7pvOyAjOTQzOAor6ZC5ID4gZ8WtbzsgIzk0MzkKK+mQuiA+IGTEgW5nOyAjOTQzQQor6ZC7ID4gasO5OyAjOTQzQgor6ZC8ID4gZsOpbjsgIzk0M0MKK+mQvSA+IGTDoTsgIzk0M0QKK+mQviA+IGLDqGk7ICM5NDNFCivpkL8gPiB5w6w7ICM5NDNGCivpkYAgPiDDoGk7ICM5NDQwCivpkYEgPiB6xY1uZzsgIzk0NDEKK+mRgiA+IHjDuW47ICM5NDQyCivpkYMgPiBkacOgbzsgIzk0NDMKK+mRhCA+IHpow7k7ICM5NDQ0CivpkYUgPiBow6luZzsgIzk0NDUKK+mRhiA+IHpow7lpOyAjOTQ0Ngor6ZGHID4gasSrOyAjOTQ0Nwor6ZGIID4gbmnEkzsgIzk0NDgKK+mRiSA+IHTDoDsgIzk0NDkKK+mRiiA+IGjDuW87ICM5NDRBCivpkYsgPiBxw6xuZzsgIzk0NEIKK+mRjCA+IGLEq247ICM5NDRDCivpkY0gPiB5xKtuZzsgIzk0NEQKK+mRjiA+IGvDuWk7ICM5NDRFCivpkY8gPiBuw61uZzsgIzk0NEYKK+mRkCA+IHjFqzsgIzk0NTAKK+mRkSA+IGppw6BuOyAjOTQ1MQor6ZGSID4gamnDoG47ICM5NDUyCivpkZQgPiBjaMSDOyAjOTQ1NAor6ZGVID4gemjDrDsgIzk0NTUKK+mRliA+IG1pw6g7ICM5NDU2CivpkZcgPiBsw607ICM5NDU3CivpkZggPiBsw6lpOyAjOTQ1OAor6ZGZID4gasSrOyAjOTQ1OQor6ZGaID4genXDoG47ICM5NDVBCivpkZsgPiBrdcOgbmc7ICM5NDVCCivpkZwgPiBzaMOgbmc7ICM5NDVDCivpkZ0gPiBww6luZzsgIzk0NUQKK+mRniA+IGzDoDsgIzk0NUUKK+mRnyA+IGTDujsgIzk0NUYKK+mRoCA+IHNow7lvOyAjOTQ2MAor6ZGhID4gY2jDuW87ICM5NDYxCivpkaIgPiBsx5w7ICM5NDYyCivpkaMgPiBiacSBbzsgIzk0NjMKK+mRpCA+IGLDoG87ICM5NDY0CivpkaUgPiBsxa07ICM5NDY1CivpkaggPiBsw7NuZzsgIzk0NjgKK+mRqSA+IMOoOyAjOTQ2OQor6ZGqID4gbMO6OyAjOTQ2QQor6ZGrID4geMSrbjsgIzk0NkIKK+mRrCA+IGppw6BuOyAjOTQ2Qwor6ZGtID4gbMOgbjsgIzk0NkQKK+mRriA+IGLDszsgIzk0NkUKK+mRryA+IGppxIFuOyAjOTQ2Rgor6ZGwID4gecOgbzsgIzk0NzAKK+mRsSA+IGNow6FuOyAjOTQ3MQor6ZGyID4geGnEgW5nOyAjOTQ3Mgor6ZGzID4gamnDoG47ICM5NDczCivpkbQgPiB4xKs7ICM5NDc0CivpkbUgPiBndcOgbjsgIzk0NzUKK+mRtiA+IGPDoW5nOyAjOTQ3Ngor6ZG3ID4gbmnDqDsgIzk0NzcKK+mRuCA+IGzElWk7ICM5NDc4CivpkbkgPiBjdcOgbjsgIzk0NzkKK+mRuiA+IHHDujsgIzk0N0EKK+mRuyA+IHDDoG47ICM5NDdCCivpkbwgPiBsw7pvOyAjOTQ3Qwor6ZG9ID4genXDoG47ICM5NDdECivpkb4gPiBsdcOhbjsgIzk0N0UKK+mRvyA+IHrDoW87ICM5NDdGCivpkoAgPiBuacOoOyAjOTQ4MAor6ZKBID4ganXDqTsgIzk0ODEKK+mSgiA+IHTEg25nOyAjOTQ4Mgor6ZKDID4gc2jFrTsgIzk0ODMKK+mShCA+IGzDoW47ICM5NDg0CivpkoUgPiBqxKtuOyAjOTQ4NQor6ZKGID4gccOtdTsgIzk0ODYKK+mShyA+IHnErTsgIzk0ODcKK+mSiCA+IHpoxJNuOyAjOTQ4OAor6ZKJID4gZMSrbmc7ICM5NDg5CivpkoogPiB6aMSBbzsgIzk0OEEKK+mSiyA+IHDDsjsgIzk0OEIKK+mSjCA+IGRpxINvOyAjOTQ4Qwor6ZKNID4gdMWtOyAjOTQ4RAor6ZKOID4gcWnEgW47ICM5NDhFCivpko8gPiBjaHXDoG47ICM5NDhGCivpkpAgPiBzaMOgbjsgIzk0OTAKK+mSkSA+IGrDrTsgIzk0OTEKK+mSkiA+IGbDoW47ICM5NDkyCivpkpMgPiBkacOgbzsgIzk0OTMKK+mSlCA+IG3DqW47ICM5NDk0CivpkpUgPiBux5o7ICM5NDk1CivpkpYgPiB4w607ICM5NDk2CivpkpcgPiBjaMSBaTsgIzk0OTcKK+mSmCA+IHjDrW5nOyAjOTQ5OAor6ZKZID4gZ8OgaTsgIzk0OTkKK+mSmiA+IGLDuTsgIzk0OUEKK+mSmyA+IHTDoGk7ICM5NDlCCivpkpwgPiBqw7k7ICM5NDlDCivpkp0gPiBkw7luOyAjOTQ5RAor6ZKeID4gY2jEgW87ICM5NDlFCivpkp8gPiB6aMWNbmc7ICM5NDlGCivpkqAgPiBuw6A7ICM5NEEwCivpkqEgPiBiw6hpOyAjOTRBMQor6ZKiID4gZ8SBbmc7ICM5NEEyCivpkqMgPiBixINuOyAjOTRBMwor6ZKkID4gcWnDoW47ICM5NEE0CivpkqUgPiB5w6BvOyAjOTRBNQor6ZKmID4gccSrbjsgIzk0QTYKK+mSpyA+IGrFq247ICM5NEE3CivpkqggPiB3w7k7ICM5NEE4CivpkqkgPiBnxY11OyAjOTRBOQor6ZKqID4ga8Ogbmc7ICM5NEFBCivpkqsgPiBmxIFuZzsgIzk0QUIKK+mSrCA+IGjDum87ICM5NEFDCivpkq0gPiB0xY91OyAjOTRBRAor6ZKuID4gbsStdTsgIzk0QUUKK+mSryA+IGLEgzsgIzk0QUYKK+mSsCA+IHnDuTsgIzk0QjAKK+mSsSA+IHFpw6FuOyAjOTRCMQor6ZKyID4gemjEk25nOyAjOTRCMgor6ZKzID4gcWnDoW47ICM5NEIzCivpkrQgPiBnxas7ICM5NEI0CivpkrUgPiBixY07ICM5NEI1CivpkrYgPiDEkzsgIzk0QjYKK+mStyA+IHDFjTsgIzk0QjcKK+mSuCA+IGLDuTsgIzk0QjgKK+mSuSA+IGLDoTsgIzk0QjkKK+mSuiA+IHl1w6g7ICM5NEJBCivpkrsgPiB6dcOgbjsgIzk0QkIKK+mSvCA+IG3DuTsgIzk0QkMKK+mSvSA+IGTDoG47ICM5NEJECivpkr4gPiBqacSDOyAjOTRCRQor6ZK/ID4gZGnDoG47ICM5NEJGCivpk4AgPiB5w7N1OyAjOTRDMAor6ZOBID4gdGnElTsgIzk0QzEKK+mTgiA+IGLDszsgIzk0QzIKK+mTgyA+IGzDrW5nOyAjOTRDMwor6ZOEID4gc2jDuW87ICM5NEM0Civpk4UgPiBxacSBbjsgIzk0QzUKK+mThiA+IGzErXU7ICM5NEM2Civpk4cgPiBiw6BvOyAjOTRDNwor6ZOIID4gc2jDrDsgIzk0QzgKK+mTiSA+IHh1w6BuOyAjOTRDOQor6ZOKID4gc2jDqTsgIzk0Q0EKK+mTiyA+IGLDrDsgIzk0Q0IKK+mTjCA+IG7ErTsgIzk0Q0MKK+mTjSA+IHDEqzsgIzk0Q0QKK+mTjiA+IGTDum87ICM5NENFCivpk48gPiB4w61uZzsgIzk0Q0YKK+mTkCA+IGvDoG87ICM5NEQwCivpk5EgPiBsxINvOyAjOTREMQor6ZOSID4gw6hyOyAjOTREMgor6ZOTID4gbcOhbmc7ICM5NEQzCivpk5QgPiB5w6A7ICM5NEQ0Civpk5UgPiB5xY91OyAjOTRENQor6ZOWID4gY2jDqW5nOyAjOTRENgor6ZOXID4gamnDoTsgIzk0RDcKK+mTmCA+IHnDqTsgIzk0RDgKK+mTmSA+IG7DoW87ICM5NEQ5Civpk5ogPiB6aMOsOyAjOTREQQor6ZObID4gZMSBbmc7ICM5NERCCivpk5wgPiB0w7NuZzsgIzk0REMKK+mTnSA+IGzHmjsgIzk0REQKK+mTniA+IGRpw6BvOyAjOTRERQor6ZOfID4gecSrbjsgIzk0REYKK+mToCA+IGvEg2k7ICM5NEUwCivpk6EgPiB6aMOhOyAjOTRFMQor6ZOiID4gemjFqzsgIzk0RTIKK+mToyA+IHhpxINuOyAjOTRFMwor6ZOkID4gdMStbmc7ICM5NEU0Civpk6UgPiBkxKt1OyAjOTRFNQor6ZOmID4geGnEgW47ICM5NEU2Civpk6cgPiBodcOhOyAjOTRFNwor6ZOoID4gcXXDoW47ICM5NEU4Civpk6kgPiBzaMSBOyAjOTRFOQor6ZOqID4gamnDoTsgIzk0RUEKK+mTqyA+IHnDoW87ICM5NEVCCivpk6wgPiBnw6g7ICM5NEVDCivpk60gPiBtw61uZzsgIzk0RUQKK+mTriA+IHpoxJNuZzsgIzk0RUUKK+mTryA+IHPDqDsgIzk0RUYKK+mTsCA+IGppxINvOyAjOTRGMAor6ZOxID4gecStOyAjOTRGMQor6ZOyID4gY2jEg247ICM5NEYyCivpk7MgPiBjaMOybmc7ICM5NEYzCivpk7QgPiB0w6BuZzsgIzk0RjQKK+mTtSA+IMSBbjsgIzk0RjUKK+mTtiA+IHnDrW47ICM5NEY2Civpk7cgPiByxa07ICM5NEY3Civpk7ggPiB6aMO5OyAjOTRGOAor6ZO5ID4gbMOhbzsgIzk0RjkKK+mTuiA+IHDFqzsgIzk0RkEKK+mTuyA+IHfDujsgIzk0RkIKK+mTvCA+IGzDoWk7ICM5NEZDCivpk70gPiB0w6g7ICM5NEZECivpk74gPiBsacOgbjsgIzk0RkUKK+mTvyA+IGvEk25nOyAjOTRGRgor6ZSAID4geGnEgW87ICM5NTAwCivplIEgPiBzxa1vOyAjOTUwMQor6ZSCID4gbMStOyAjOTUwMgor6ZSDID4gemjDqG5nOyAjOTUwMwor6ZSEID4gY2jDujsgIzk1MDQKK+mUhSA+IGfFq287ICM5NTA1CivplIYgPiBnw6BvOyAjOTUwNgor6ZSHID4gdGnElTsgIzk1MDcKK+mUiCA+IHjDrHU7ICM5NTA4CivplIkgPiBjw7lvOyAjOTUwOQor6ZSKID4gbMecZTsgIzk1MEEKK+mUiyA+IGbEk25nOyAjOTUwQgor6ZSMID4geMSrbjsgIzk1MEMKK+mUjSA+IGzErXU7ICM5NTBECivplI4gPiBrxIFpOyAjOTUwRQor6ZSPID4gamnEg247ICM5NTBGCivplJAgPiByw7lpOyAjOTUxMAor6ZSRID4gdMOsOyAjOTUxMQor6ZSSID4gbMOhbmc7ICM5NTEyCivplJMgPiBxacSBbjsgIzk1MTMKK+mUlCA+IGrDujsgIzk1MTQKK+mUlSA+IMSBOyAjOTUxNQor6ZSWID4gcWnEgW5nOyAjOTUxNgor6ZSXID4gZMWtbzsgIzk1MTcKK+mUmCA+IHRpxINuOyAjOTUxOAor6ZSZID4gY8O5bzsgIzk1MTkKK+mUmiA+IG3DoW87ICM5NTFBCivplJsgPiBixJNuOyAjOTUxQgor6ZScID4gccOtOyAjOTUxQwor6ZSdID4gZMOpOyAjOTUxRAor6ZSeID4ga3XEgzsgIzk1MUUKK+mUnyA+IGvFq247ICM5NTFGCivplKAgPiBjaMSBbmc7ICM5NTIwCivplKEgPiB4w607ICM5NTIxCivplKIgPiBnw7k7ICM5NTIyCivplKMgPiBsw7pvOyAjOTUyMwor6ZSkID4gY2jDumk7ICM5NTI0CivplKUgPiB6aMWraTsgIzk1MjUKK+mUpiA+IGrErW47ICM5NTI2CivplKcgPiB6aMOsOyAjOTUyNwor6ZSoID4geGnEgW47ICM5NTI4CivplKkgPiBqdcOgbjsgIzk1MjkKK+mUqiA+IGjFq287ICM5NTJBCivplKsgPiBww7N1OyAjOTUyQgor6ZSsID4gdMOhbjsgIzk1MkMKK+mUrSA+IGTDrG5nOyAjOTUyRAor6ZSuID4gamnDoG47ICM5NTJFCivplK8gPiBqw7k7ICM5NTJGCivplLAgPiBtxJVuZzsgIzk1MzAKK+mUsSA+IHrEqzsgIzk1MzEKK+mUsiA+IHFpw6g7ICM5NTMyCivplLMgPiB5xKtuZzsgIzk1MzMKK+mUtCA+IGvEg2k7ICM5NTM0CivplLUgPiBxacSBbmc7ICM5NTM1CivplLYgPiBzxY1uZzsgIzk1MzYKK+mUtyA+IMOoOyAjOTUzNwor6ZS4ID4gY2jDoTsgIzk1MzgKK+mUuSA+IHFpxIFvOyAjOTUzOQor6ZS6ID4gemjFjW5nOyAjOTUzQQor6ZS7ID4gZHXDoG47ICM5NTNCCivplLwgPiBzxY11OyAjOTUzQwor6ZS9ID4gaHXDoW5nOyAjOTUzRAor6ZS+ID4gaHXDoW47ICM5NTNFCivplL8gPiDEgWk7ICM5NTNGCivplYAgPiBkw7k7ICM5NTQwCivplYEgPiBtxJVpOyAjOTU0MQor6ZWCID4gbMOydTsgIzk1NDIKK+mVgyA+IHrEqzsgIzk1NDMKK+mVhCA+IGbDqGk7ICM5NTQ0CivplYUgPiBtw6lpOyAjOTU0NQor6ZWGID4gbcOyOyAjOTU0Ngor6ZWHID4gemjDqG47ICM5NTQ3CivplYggPiBiw7M7ICM5NTQ4CivplYkgPiBnw6k7ICM5NTQ5CivplYogPiBuacOoOyAjOTU0QQor6ZWLID4gdMSDbmc7ICM5NTRCCivplYwgPiBqdcSBbjsgIzk1NEMKK+mVjSA+IG5pw6g7ICM5NTRECivplY4gPiBuw6E7ICM5NTRFCivplY8gPiBsw611OyAjOTU0Rgor6ZWQID4gaMOgbzsgIzk1NTAKK+mVkSA+IGLDoG5nOyAjOTU1MQor6ZWSID4gecOsOyAjOTU1Mgor6ZWTID4gamnEgTsgIzk1NTMKK+mVlCA+IGLEq247ICM5NTU0CivplZUgPiByw7NuZzsgIzk1NTUKK+mVliA+IGJpxIFvOyAjOTU1Ngor6ZWXID4gdMSBbmc7ICM5NTU3CivplZggPiBtw6BuOyAjOTU1OAor6ZWZID4gbMO6bzsgIzk1NTkKK+mVmiA+IGLDqG5nOyAjOTU1QQor6ZWbID4gecWNbmc7ICM5NTVCCivplZwgPiBqw6xuZzsgIzk1NUMKK+mVnSA+IGTDrTsgIzk1NUQKK+mVniA+IHrDujsgIzk1NUUKK+mVnyA+IHh1w6BuOyAjOTU1Rgor6ZWgID4gbMOtdTsgIzk1NjAKK+mVoSA+IHTDoW47ICM5NTYxCivplaIgPiBqdcOpOyAjOTU2Mgor6ZWjID4gbGnDoW87ICM5NTYzCivplaQgPiBww7o7ICM5NTY0CivplaUgPiBsxa07ICM5NTY1CivplaYgPiBkw7lpOyAjOTU2Ngor6ZWnID4gbMOgbjsgIzk1NjcKK+mVqCA+IHDFrTsgIzk1NjgKK+mVqSA+IGN1w6BuOyAjOTU2OQor6ZWqID4gcWnEgW5nOyAjOTU2QQor6ZWrID4gZMSTbmc7ICM5NTZCCivplawgPiBow7lvOyAjOTU2Qwor6ZWtID4gbMOpaTsgIzk1NkQKK+mVriA+IGh1w6FuOyAjOTU2RQor6ZWvID4gemjDum87ICM5NTZGCivplbAgPiBsacOhbjsgIzk1NzAKK+mVsSA+IHnDrDsgIzk1NzEKK+mVsiA+IGNoxIM7ICM5NTcyCivplbMgPiBiacSBbzsgIzk1NzMKK+mVtCA+IGzDoDsgIzk1NzQKK+mVtSA+IGNow6FuOyAjOTU3NQor6ZW2ID4geGnEgW5nOyAjOTU3Ngor6ZW3ID4gY2jDoW5nOyAjOTU3Nwor6ZW4ID4gY2jDoW5nOyAjOTU3OAor6ZW5ID4gasStdTsgIzk1NzkKK+mVuiA+IMSDbzsgIzk1N0EKK+mVuyA+IGRpw6k7ICM5NTdCCivplbwgPiBxxas7ICM5NTdDCivplb0gPiBsacSDbzsgIzk1N0QKK+mVviA+IG3DrTsgIzk1N0UKK+mVvyA+IGNow6FuZzsgIzk1N0YKK+mWgCA+IG3DqW47ICM5NTgwCivploEgPiBtw6A7ICM5NTgxCivploIgPiBzaHXEgW47ICM5NTgyCivploMgPiBzaMSDbjsgIzk1ODMKK+mWhCA+IGjDuW87ICM5NTg0CivploUgPiBtw6luOyAjOTU4NQor6ZaGID4gecOgbjsgIzk1ODYKK+mWhyA+IGLDrDsgIzk1ODcKK+mWiCA+IGjDoG47ICM5NTg4CivplokgPiBiw6w7ICM5NTg5CivplosgPiBrxIFpOyAjOTU4Qgor6ZaMID4ga8Ogbmc7ICM5NThDCivplo0gPiBixJNuZzsgIzk1OEQKK+mWjiA+IGjDs25nOyAjOTU4RQor6ZaPID4gcsO5bjsgIzk1OEYKK+mWkCA+IHPDoG47ICM5NTkwCivplpEgPiB4acOhbjsgIzk1OTEKK+mWkiA+IHhpw6FuOyAjOTU5Mgor6ZaTID4gamnEgW47ICM5NTkzCivplpQgPiBtxK1uOyAjOTU5NAor6ZaVID4geGnEgTsgIzk1OTUKK+mWlyA+IGTDsnU7ICM5NTk3CivplpggPiB6aMOhOyAjOTU5OAor6ZaZID4gbsOgbzsgIzk1OTkKK+mWmiA+IGppYW47ICM5NTlBCivplpsgPiBwxJNuZzsgIzk1OUIKK+mWnCA+IHhpxIM7ICM5NTlDCivplp0gPiBsw61uZzsgIzk1OUQKK+mWniA+IGJpw6BuOyAjOTU5RQor6ZafID4gYsOsOyAjOTU5Rgor6ZagID4gcsO5bjsgIzk1QTAKK+mWoSA+IGjDqTsgIzk1QTEKK+mWoiA+IGd1xIFuOyAjOTVBMgor6ZajID4gZ8OpOyAjOTVBMwor6ZakID4gZ8OpOyAjOTVBNAor6ZalID4gZsOhOyAjOTVBNQor6ZamID4gY2jDuTsgIzk1QTYKK+mWpyA+IGjDsm5nOyAjOTVBNwor6ZaoID4gZ8WraTsgIzk1QTgKK+mWqSA+IG3ErW47ICM5NUE5CivplqsgPiBrxa1uOyAjOTVBQgor6ZasID4gbMSDbmc7ICM5NUFDCivplq0gPiBsx5g7ICM5NUFECivplq4gPiB0w61uZzsgIzk1QUUKK+mWryA+IHNow6A7ICM5NUFGCivplrAgPiBqw7o7ICM5NUIwCivplrEgPiB5dcOoOyAjOTVCMQor6ZayID4geXXDqDsgIzk1QjIKK+mWsyA+IGNoxINuOyAjOTVCMwor6Za0ID4gccO5OyAjOTVCNAor6Za1ID4gbMOsbjsgIzk1QjUKK+mWtiA+IGNoxIFuZzsgIzk1QjYKK+mWtyA+IHNow6BpOyAjOTVCNwor6Za4ID4ga8WtbjsgIzk1QjgKK+mWuSA+IHnEgW47ICM5NUI5CivplrogPiBtw61uOyAjOTVCQQor6Za7ID4gecOhbjsgIzk1QkIKK+mWvCA+IMOoOyAjOTVCQwor6Za9ID4gaMWrbjsgIzk1QkQKK+mWviA+IHnDuTsgIzk1QkUKK+mWvyA+IHfDqW47ICM5NUJGCivpl4AgPiB4acOgbmc7ICM5NUMwCivpl4EgPiBiYW87ICM5NUMxCivpl4IgPiB4acOgbmc7ICM5NUMyCivpl4MgPiBxw7k7ICM5NUMzCivpl4QgPiB5xINvOyAjOTVDNAor6ZeFID4gd8OpbjsgIzk1QzUKK+mXhiA+IGLEg247ICM5NUM2Civpl4cgPiDDoG47ICM5NUM3Civpl4ggPiB3w6lpOyAjOTVDOAor6ZeJID4gecSrbjsgIzk1QzkKK+mXiiA+IGvDuW87ICM5NUNBCivpl4sgPiBxdcOoOyAjOTVDQgor6ZeMID4gbMOhbjsgIzk1Q0MKK+mXjSA+IGTFqzsgIzk1Q0QKK+mXkCA+IHRpw6FuOyAjOTVEMAor6ZeRID4gbmnDqDsgIzk1RDEKK+mXkiA+IHTDoDsgIzk1RDIKK+mXkyA+IGvEg2k7ICM5NUQzCivpl5QgPiBow6k7ICM5NUQ0Civpl5UgPiBxdcOoOyAjOTVENQor6ZeWID4gY2h1xINuZzsgIzk1RDYKK+mXlyA+IGd1xIFuOyAjOTVENwor6ZeYID4gZMOydTsgIzk1RDgKK+mXmSA+IHHErTsgIzk1RDkKK+mXmiA+IGvFq2k7ICM5NURBCivpl5sgPiB0w6FuZzsgIzk1REIKK+mXnCA+IGd1xIFuOyAjOTVEQwor6ZedID4gcGnDoW87ICM5NURECivpl54gPiBrw6BuOyAjOTVERQor6ZefID4geMOsOyAjOTVERgor6ZegID4gaMO5aTsgIzk1RTAKK+mXoSA+IGNoxINuOyAjOTVFMQor6ZeiID4gcMOsOyAjOTVFMgor6ZejID4gZMOgbmc7ICM5NUUzCivpl6QgPiBodcOhbjsgIzk1RTQKK+mXpSA+IHTDoDsgIzk1RTUKK+mXpiA+IHfDqW47ICM5NUU2Civpl6ggPiBtw6luOyAjOTVFOAor6ZepID4gc2h1xIFuOyAjOTVFOQor6ZeqID4gc2jEg247ICM5NUVBCivpl6sgPiB5w6BuOyAjOTVFQgor6ZesID4gaMOgbjsgIzk1RUMKK+mXrSA+IGLDrDsgIzk1RUQKK+mXriA+IHfDqG47ICM5NUVFCivpl68gPiBjaHXEg25nOyAjOTVFRgor6ZewID4gcsO5bjsgIzk1RjAKK+mXsSA+IHfDqWk7ICM5NUYxCivpl7IgPiB4acOhbjsgIzk1RjIKK+mXsyA+IGjDs25nOyAjOTVGMwor6Ze0ID4gamnEgW47ICM5NUY0Civpl7UgPiBtxK1uOyAjOTVGNQor6Ze2ID4ga8Ogbmc7ICM5NUY2Civpl7cgPiBtw6huOyAjOTVGNwor6Ze4ID4gemjDoTsgIzk1RjgKK+mXuSA+IG7DoG87ICM5NUY5Civpl7ogPiBnxatpOyAjOTVGQQor6Ze7ID4gd8OpbjsgIzk1RkIKK+mXvCA+IHTDoDsgIzk1RkMKK+mXvSA+IG3ErW47ICM5NUZECivpl74gPiBsx5g7ICM5NUZFCivpl78gPiBrxINpOyAjOTVGRgor6ZiAID4gZsOhOyAjOTYwMAor6ZiBID4gZ8OpOyAjOTYwMQor6ZiCID4gaMOpOyAjOTYwMgor6ZiDID4ga8WtbjsgIzk2MDMKK+mYhCA+IGrEq3U7ICM5NjA0CivpmIUgPiB5dcOoOyAjOTYwNQor6ZiGID4gbMSDbmc7ICM5NjA2CivpmIcgPiBkxas7ICM5NjA3CivpmIggPiB5w7k7ICM5NjA4CivpmIkgPiB5xIFuOyAjOTYwOQor6ZiKID4gY2jEgW5nOyAjOTYwQQor6ZiLID4geMOsOyAjOTYwQgor6ZiMID4gd8OpbjsgIzk2MEMKK+mYjSA+IGjFq247ICM5NjBECivpmI4gPiB5w6FuOyAjOTYwRQor6ZiPID4gw6g7ICM5NjBGCivpmJAgPiBjaMSDbjsgIzk2MTAKK+mYkSA+IGzDoW47ICM5NjExCivpmJIgPiBxw7k7ICM5NjEyCivpmJMgPiBow7lpOyAjOTYxMwor6ZiUID4ga8O5bzsgIzk2MTQKK+mYlSA+IHF1w6g7ICM5NjE1CivpmJYgPiBnw6k7ICM5NjE2CivpmJcgPiB0acOhbjsgIzk2MTcKK+mYmCA+IHTDoDsgIzk2MTgKK+mYmSA+IHF1w6g7ICM5NjE5CivpmJogPiBrw6BuOyAjOTYxQQor6ZibID4gaHXDoW47ICM5NjFCCivpmJwgPiBmw7k7ICM5NjFDCivpmJ0gPiBmw7k7ICM5NjFECivpmJ4gPiBsw6g7ICM5NjFFCivpmJ8gPiBkw7lpOyAjOTYxRgor6ZigID4geMOsbjsgIzk2MjAKK+mYoSA+IHFpxIFuOyAjOTYyMQor6ZiiID4gd8O5OyAjOTYyMgor6ZijID4gecOsOyAjOTYyMwor6ZikID4gdMO6bzsgIzk2MjQKK+mYpSA+IHnEq247ICM5NjI1CivpmKYgPiB5w6FuZzsgIzk2MjYKK+mYpyA+IGTFj3U7ICM5NjI3CivpmKggPiDDqDsgIzk2MjgKK+mYqSA+IHNoxJNuZzsgIzk2MjkKK+mYqiA+IGLEg247ICM5NjJBCivpmKsgPiBww6lpOyAjOTYyQgor6ZisID4ga8STbmc7ICM5NjJDCivpmK0gPiB5xa1uOyAjOTYyRAor6ZiuID4gcnXEg247ICM5NjJFCivpmK8gPiB6aMStOyAjOTYyRgor6ZiwID4gcMOtOyAjOTYzMAor6ZixID4gasStbmc7ICM5NjMxCivpmLIgPiBmw6FuZzsgIzk2MzIKK+mYsyA+IHnDoW5nOyAjOTYzMwor6Zi0ID4gecSrbjsgIzk2MzQKK+mYtSA+IHpow6huOyAjOTYzNQor6Zi2ID4gamnEkzsgIzk2MzYKK+mYtyA+IGNoxJNuZzsgIzk2MzcKK+mYuCA+IMOoOyAjOTYzOAor6Zi5ID4gccWrOyAjOTYzOQor6Zi6ID4gZMStOyAjOTYzQQor6Zi7ID4gesWtOyAjOTYzQgor6Zi8ID4gesO5bzsgIzk2M0MKK+mYvSA+IGRpw6BuOyAjOTYzRAor6Zi+ID4gbMStbmc7ICM5NjNFCivpmL8gPiDEgTsgIzk2M0YKK+mZgCA+IHTDum87ICM5NjQwCivpmYEgPiB0w7pvOyAjOTY0MQor6ZmCID4gcMWNOyAjOTY0Mgor6ZmDID4gYsStbmc7ICM5NjQzCivpmYQgPiBmw7k7ICM5NjQ0CivpmYUgPiBqw6w7ICM5NjQ1CivpmYYgPiBsw7k7ICM5NjQ2CivpmYcgPiBsxY9uZzsgIzk2NDcKK+mZiCA+IGNow6luOyAjOTY0OAor6ZmJID4geMOtbmc7ICM5NjQ5CivpmYogPiBkw7lvOyAjOTY0QQor6ZmLID4gbMOydTsgIzk2NEIKK+mZjCA+IG3DsjsgIzk2NEMKK+mZjSA+IGppw6BuZzsgIzk2NEQKK+mZjiA+IHNoxas7ICM5NjRFCivpmY8gPiBkw7lvOyAjOTY0Rgor6ZmQID4geGnDoG47ICM5NjUwCivpmZEgPiDDqXI7ICM5NjUxCivpmZIgPiBnxa1pOyAjOTY1Mgor6ZmTID4gecWrOyAjOTY1Mwor6ZmUID4gZ8SBaTsgIzk2NTQKK+mZlSA+IHNoxINuOyAjOTY1NQor6ZmWID4geMO5bjsgIzk2NTYKK+mZlyA+IHFpw6BvOyAjOTY1Nwor6ZmYID4geMOtbmc7ICM5NjU4CivpmZkgPiBjaMO6bjsgIzk2NTkKK+mZmiA+IGbDuTsgIzk2NUEKK+mZmyA+IGLDrDsgIzk2NUIKK+mZnCA+IHhpw6E7ICM5NjVDCivpmZ0gPiBzaMSDbjsgIzk2NUQKK+mZniA+IHNoxJNuZzsgIzk2NUUKK+mZnyA+IHpow6w7ICM5NjVGCivpmaAgPiBwxas7ICM5NjYwCivpmaEgPiBkxY91OyAjOTY2MQor6ZmiID4geXXDoG47ICM5NjYyCivpmaMgPiB6aMOobjsgIzk2NjMKK+mZpCA+IGNow7o7ICM5NjY0CivpmaUgPiB4acOgbjsgIzk2NjUKK+mZpyA+IG5pw6g7ICM5NjY3CivpmaggPiB5xa1uOyAjOTY2OAor6ZmpID4geGnEg247ICM5NjY5CivpmaogPiBww6lpOyAjOTY2QQor6ZmrID4gcMOpaTsgIzk2NkIKK+mZrCA+IHrFjXU7ICM5NjZDCivpma0gPiB5xKs7ICM5NjZECivpma4gPiBkxa1pOyAjOTY2RQor6ZmvID4gbMO6bjsgIzk2NkYKK+mZsCA+IHnEq247ICM5NjcwCivpmbEgPiBqxas7ICM5NjcxCivpmbIgPiBjaMO6aTsgIzk2NzIKK+mZsyA+IGNow6luOyAjOTY3Mwor6Zm0ID4gcMOtOyAjOTY3NAor6Zm1ID4gbMOtbmc7ICM5Njc1CivpmbYgPiB0w6FvOyAjOTY3Ngor6Zm3ID4geGnDoG47ICM5Njc3CivpmbggPiBsw7k7ICM5Njc4CivpmbkgPiBzaGVuZzsgIzk2NzkKK+mZuiA+IHhpxINuOyAjOTY3QQor6Zm7ID4gecSrbjsgIzk2N0IKK+mZvCA+IHpoxa07ICM5NjdDCivpmb0gPiB5w6FuZzsgIzk2N0QKK+mZviA+IHLDqW5nOyAjOTY3RQor6Zm/ID4gc2jEg247ICM5NjdGCivpmoAgPiBjaMOzbmc7ICM5NjgwCivpmoEgPiB5w6BuOyAjOTY4MQor6ZqCID4gecSrbjsgIzk2ODIKK+magyA+IHnDujsgIzk2ODMKK+mahCA+IHTDrTsgIzk2ODQKK+mahSA+IHnDujsgIzk2ODUKK+mahiA+IGzDs25nOyAjOTY4Ngor6ZqHID4gd8STaTsgIzk2ODcKK+maiCA+IHfEk2k7ICM5Njg4CivpmokgPiBuacOoOyAjOTY4OQor6ZqKID4gZMO5aTsgIzk2OEEKK+maiyA+IHPDumk7ICM5NjhCCivpmowgPiDEg247ICM5NjhDCivpmo0gPiBodcOhbmc7ICM5NjhECivpmo4gPiBqacSTOyAjOTY4RQor6ZqPID4gc8O6aTsgIzk2OEYKK+makCA+IHnErW47ICM5NjkwCivpmpEgPiBnxIFpOyAjOTY5MQor6ZqSID4gecSDbjsgIzk2OTIKK+makyA+IGjFq2k7ICM5NjkzCivpmpQgPiBnw6k7ICM5Njk0CivpmpUgPiB5xa1uOyAjOTY5NQor6ZqWID4gd8O5OyAjOTY5Ngor6ZqXID4gd8SVaTsgIzk2OTcKK+mamCA+IMOgaTsgIzk2OTgKK+mamSA+IHjDrDsgIzk2OTkKK+mamiA+IHTDoW5nOyAjOTY5QQor6ZqbID4gasOsOyAjOTY5Qgor6ZqcID4gemjDoG5nOyAjOTY5Qwor6ZqdID4gZMSDbzsgIzk2OUQKK+maniA+IMOhbzsgIzk2OUUKK+manyA+IHjDrDsgIzk2OUYKK+maoCA+IHnErW47ICM5NkEwCivpmqIgPiByw6BvOyAjOTZBMgor6ZqjID4gbMOtbjsgIzk2QTMKK+mapCA+IHTDumk7ICM5NkE0CivpmqUgPiBkw6huZzsgIzk2QTUKK+mapiA+IHDErTsgIzk2QTYKK+mapyA+IHPDuWk7ICM5NkE3CivpmqggPiBzw7ppOyAjOTZBOAor6ZqpID4gecO5OyAjOTZBOQor6ZqqID4geGnEg247ICM5NkFBCivpmqsgPiBmxJNuOyAjOTZBQgor6ZqsID4gbsStOyAjOTZBQwor6ZqtID4gw6lyOyAjOTZBRAor6ZquID4gasSrOyAjOTZBRQor6ZqvID4gZMSDbzsgIzk2QUYKK+masCA+IHjDrTsgIzk2QjAKK+masSA+IHnErW47ICM5NkIxCivpmrIgPiDDqTsgIzk2QjIKK+masyA+IGjFq2k7ICM5NkIzCivpmrQgPiBsxY9uZzsgIzk2QjQKK+matSA+IHjEqzsgIzk2QjUKK+matiA+IGzDrDsgIzk2QjYKK+matyA+IGzDrDsgIzk2QjcKK+mauCA+IGzDrDsgIzk2QjgKK+mauSA+IHpoxatpOyAjOTZCOQor6Zq6ID4gaMOoOyAjOTZCQQor6Zq7ID4gemjEqzsgIzk2QkIKK+mavCA+IHpoxa1uOyAjOTZCQwor6Zq9ID4gasO5bjsgIzk2QkQKK+maviA+IG7DoW47ICM5NkJFCivpmr8gPiB5w6w7ICM5NkJGCivpm4AgPiBxdcOoOyAjOTZDMAor6ZuBID4gecOgbjsgIzk2QzEKK+mbgiA+IHFpw6FuOyAjOTZDMgor6ZuDID4gecSDOyAjOTZDMwor6ZuEID4geMOtb25nOyAjOTZDNAor6ZuFID4gecSDOyAjOTZDNQor6ZuGID4gasOtOyAjOTZDNgor6ZuHID4gZ8O5OyAjOTZDNwor6ZuIID4gaHXDoW47ICM5NkM4Civpm4kgPiB6aMOsOyAjOTZDOQor6ZuKID4gZ8OydTsgIzk2Q0EKK+mbiyA+IGrDuW47ICM5NkNCCivpm4wgPiBjw607ICM5NkNDCivpm40gPiB5xY1uZzsgIzk2Q0QKK+mbjiA+IGrFqzsgIzk2Q0UKK+mbjyA+IGNow7o7ICM5NkNGCivpm5AgPiBoxas7ICM5NkQwCivpm5EgPiB6w6E7ICM5NkQxCivpm5IgPiBsw7lvOyAjOTZEMgor6ZuTID4gecO6OyAjOTZEMwor6ZuUID4gY2jDs3U7ICM5NkQ0Civpm5UgPiBkacSBbzsgIzk2RDUKK+mbliA+IHPFq2k7ICM5NkQ2Civpm5cgPiBow6BuOyAjOTZENwor6ZuYID4gaMO5bzsgIzk2RDgKK+mbmSA+IHNodcSBbmc7ICM5NkQ5Civpm5ogPiBndcOgbjsgIzk2REEKK+mbmyA+IGNow7o7ICM5NkRCCivpm5wgPiB6w6E7ICM5NkRDCivpm50gPiB5xY1uZzsgIzk2REQKK+mbniA+IGrEqzsgIzk2REUKK+mbnyA+IHjEqzsgIzk2REYKK+mboCA+IGNow7N1OyAjOTZFMAor6ZuhID4gbMOsdTsgIzk2RTEKK+mboiA+IGzDrTsgIzk2RTIKK+mboyA+IG7DoW47ICM5NkUzCivpm6QgPiB4dcOpOyAjOTZFNAor6ZulID4gesOhOyAjOTZFNQor6ZumID4gasOtOyAjOTZFNgor6ZunID4gasOtOyAjOTZFNwor6ZuoID4gecWtOyAjOTZFOAor6ZupID4gecO6OyAjOTZFOQor6ZuqID4geHXElTsgIzk2RUEKK+mbqyA+IG7EgzsgIzk2RUIKK+mbrCA+IGbFj3U7ICM5NkVDCivpm60gPiBzw6g7ICM5NkVECivpm64gPiBtw7k7ICM5NkVFCivpm68gPiB3w6luOyAjOTZFRgor6ZuwID4gZsSTbjsgIzk2RjAKK+mbsSA+IHDDoW5nOyAjOTZGMQor6ZuyID4gecO6bjsgIzk2RjIKK+mbsyA+IGzDrDsgIzk2RjMKK+mbtCA+IGzDrDsgIzk2RjQKK+mbtSA+IMSDbmc7ICM5NkY1Civpm7YgPiBsw61uZzsgIzk2RjYKK+mbtyA+IGzDqWk7ICM5NkY3Civpm7ggPiDDoW47ICM5NkY4Civpm7kgPiBiw6FvOyAjOTZGOQor6Zu6ID4gbcOpbmc7ICM5NkZBCivpm7sgPiBkacOgbjsgIzk2RkIKK+mbvCA+IGTDoG5nOyAjOTZGQwor6Zu9ID4geMOtbmc7ICM5NkZECivpm74gPiB3w7k7ICM5NkZFCivpm78gPiB6aMOgbzsgIzk2RkYKK+mcgCA+IHjFqzsgIzk3MDAKK+mcgSA+IGrDrDsgIzk3MDEKK+mcgiA+IG3DuTsgIzk3MDIKK+mcgyA+IGNow6luOyAjOTcwMwor6ZyEID4geGnEgW87ICM5NzA0CivpnIUgPiB6aMOhOyAjOTcwNQor6ZyGID4gdMOtbmc7ICM5NzA2CivpnIcgPiB6aMOobjsgIzk3MDcKK+mciCA+IHDDqGk7ICM5NzA4CivpnIkgPiBtw6lpOyAjOTcwOQor6ZyKID4gbMOtbmc7ICM5NzBBCivpnIsgPiBxxKs7ICM5NzBCCivpnIwgPiBjaMWNdTsgIzk3MEMKK+mcjSA+IGjDuW87ICM5NzBECivpnI4gPiBzaMOgOyAjOTcwRQor6ZyPID4gZsSTaTsgIzk3MEYKK+mckCA+IHfEk25nOyAjOTcxMAor6ZyRID4gemjEgW47ICM5NzExCivpnJIgPiB5xKtuOyAjOTcxMgor6ZyTID4gbsOtOyAjOTcxMwor6ZyUID4gY2jDsnU7ICM5NzE0CivpnJUgPiB0w7puOyAjOTcxNQor6ZyWID4gbMOtbjsgIzk3MTYKK+mcmCA+IGTDsm5nOyAjOTcxOAor6ZyZID4gecSrbmc7ICM5NzE5CivpnJogPiB3w7k7ICM5NzFBCivpnJsgPiBsw61uZzsgIzk3MUIKK+mcnCA+IHNodcSBbmc7ICM5NzFDCivpnJ0gPiBsw61uZzsgIzk3MUQKK+mcniA+IHhpw6E7ICM5NzFFCivpnJ8gPiBow7NuZzsgIzk3MUYKK+mcoCA+IHnEq247ICM5NzIwCivpnKEgPiBtw7I7ICM5NzIxCivpnKIgPiBtw6BpOyAjOTcyMgor6ZyjID4gecWtbjsgIzk3MjMKK+mcpCA+IGzDrHU7ICM5NzI0CivpnKUgPiBtw6huZzsgIzk3MjUKK+mcpiA+IGLEq247ICM5NzI2CivpnKcgPiB3w7k7ICM5NzI3CivpnKggPiB3w6hpOyAjOTcyOAor6ZypID4gaMO5bzsgIzk3MjkKK+mcqiA+IHnDrW47ICM5NzJBCivpnKsgPiB4w607ICM5NzJCCivpnKwgPiB5w6w7ICM5NzJDCivpnK0gPiDEg2k7ICM5NzJECivpnK4gPiBkw6BuOyAjOTcyRQor6ZyvID4gZMOobmc7ICM5NzJGCivpnLAgPiB4acOgbjsgIzk3MzAKK+mcsSA+IHnDuTsgIzk3MzEKK+mcsiA+IGzDuTsgIzk3MzIKK+mcsyA+IGzDs25nOyAjOTczMwor6Zy0ID4gZMOgaTsgIzk3MzQKK+mctSA+IGrDrTsgIzk3MzUKK+mctiA+IHDDoW5nOyAjOTczNgor6Zy3ID4gecOhbmc7ICM5NzM3CivpnLggPiBiw6A7ICM5NzM4CivpnLkgPiBwxKs7ICM5NzM5CivpnLogPiB3w6lpOyAjOTczQQor6Zy8ID4geMStOyAjOTczQwor6Zy9ID4gasOsOyAjOTczRAor6Zy+ID4gbcOhaTsgIzk3M0UKK+mcvyA+IG3DqG5nOyAjOTczRgor6Z2AID4gbcOpbmc7ICM5NzQwCivpnYEgPiBsw6lpOyAjOTc0MQor6Z2CID4gbMOsOyAjOTc0Mgor6Z2DID4gaMO5bzsgIzk3NDMKK+mdhCA+IMSDaTsgIzk3NDQKK+mdhSA+IGbDqGk7ICM5NzQ1CivpnYYgPiBkw6BpOyAjOTc0Ngor6Z2HID4gbMOzbmc7ICM5NzQ3CivpnYggPiBsw61uZzsgIzk3NDgKK+mdiSA+IMOgaTsgIzk3NDkKK+mdiiA+IGbEk25nOyAjOTc0QQor6Z2LID4gbMOsOyAjOTc0Qgor6Z2MID4gYsSDbzsgIzk3NEMKK+mdjiA+IGjDqDsgIzk3NEUKK+mdjyA+IGjDqDsgIzk3NEYKK+mdkCA+IGLDrG5nOyAjOTc1MAor6Z2RID4gccSrbmc7ICM5NzUxCivpnZIgPiBxxKtuZzsgIzk3NTIKK+mdkyA+IGrDrG5nOyAjOTc1Mwor6Z2UID4gdGnEgW47ICM5NzU0CivpnZUgPiB6aMSTbjsgIzk3NTUKK+mdliA+IGrDrG5nOyAjOTc1Ngor6Z2XID4gY2jDqG5nOyAjOTc1Nwor6Z2YID4gccOsbmc7ICM5NzU4CivpnZkgPiBqw6xuZzsgIzk3NTkKK+mdmiA+IGrDrG5nOyAjOTc1QQor6Z2bID4gZGnDoG47ICM5NzVCCivpnZwgPiBqw6xuZzsgIzk3NUMKK+mdnSA+IHRpxIFuOyAjOTc1RAor6Z2eID4gZsSTaTsgIzk3NUUKK+mdnyA+IGbEk2k7ICM5NzVGCivpnaAgPiBrw6BvOyAjOTc2MAor6Z2hID4gbcStOyAjOTc2MQor6Z2iID4gbWnDoG47ICM5NzYyCivpnaMgPiBtacOgbjsgIzk3NjMKK+mdpCA+IHDDoG87ICM5NzY0CivpnaUgPiB5w6g7ICM5NzY1CivpnaYgPiB0acSDbjsgIzk3NjYKK+mdpyA+IGjDuWk7ICM5NzY3CivpnaggPiB5w6g7ICM5NzY4CivpnakgPiBnw6k7ICM5NzY5CivpnaogPiBkxKtuZzsgIzk3NkEKK+mdqyA+IGNoxIE7ICM5NzZCCivpnawgPiBqacSBbjsgIzk3NkMKK+mdrSA+IHLDqG47ICM5NzZECivpna4gPiBkw607ICM5NzZFCivpna8gPiBkw7k7ICM5NzZGCivpnbAgPiB3w7k7ICM5NzcwCivpnbEgPiByw6huOyAjOTc3MQor6Z2yID4gccOtbjsgIzk3NzIKK+mdsyA+IGrDrG47ICM5NzczCivpnbQgPiB4dcSTOyAjOTc3NAor6Z21ID4gbsStdTsgIzk3NzUKK+mdtiA+IGLEgzsgIzk3NzYKK+mdtyA+IHnErW47ICM5Nzc3CivpnbggPiBzxIM7ICM5Nzc4CivpnbkgPiBuw6A7ICM5Nzc5CivpnbogPiBtw7I7ICM5NzdBCivpnbsgPiB6xa07ICM5NzdCCivpnbwgPiBkw6E7ICM5NzdDCivpnb0gPiBiw6BuOyAjOTc3RAor6Z2+ID4gecOsOyAjOTc3RQor6Z2/ID4gecOgbzsgIzk3N0YKK+megCA+IHTDoW87ICM5NzgwCivpnoEgPiB0w7pvOyAjOTc4MQor6Z6CID4gamnDoTsgIzk3ODIKK+megyA+IGjDs25nOyAjOTc4Mwor6Z6EID4gcMOhbzsgIzk3ODQKK+mehSA+IHnEg25nOyAjOTc4NQor6Z6HID4gecSrbjsgIzk3ODcKK+meiCA+IGppw6E7ICM5Nzg4CivpnokgPiB0w6FvOyAjOTc4OQor6Z6KID4gasOtOyAjOTc4QQor6Z6LID4geGnDqTsgIzk3OEIKK+mejCA+IMSBbjsgIzk3OEMKK+mejSA+IMSBbjsgIzk3OEQKK+mejiA+IGjDqW47ICM5NzhFCivpno8gPiBnxY9uZzsgIzk3OEYKK+mekSA+IGTDoTsgIzk3OTEKK+mekiA+IHFpxIFvOyAjOTc5Mgor6Z6TID4gdMSrbmc7ICM5NzkzCivpnpQgPiB3xINuOyAjOTc5NAor6Z6VID4gecOsbmc7ICM5Nzk1CivpnpYgPiBzxatpOyAjOTc5Ngor6Z6XID4gdGnDoW87ICM5Nzk3CivpnpggPiBxacOgbzsgIzk3OTgKK+memSA+IHh1w6BuOyAjOTc5OQor6Z6aID4ga8Oybmc7ICM5NzlBCivpnpsgPiBixJVuZzsgIzk3OUIKK+menCA+IHTDoDsgIzk3OUMKK+menSA+IHpoxINuZzsgIzk3OUQKK+meniA+IGLErW5nOyAjOTc5RQor6Z6fID4ga8O5bzsgIzk3OUYKK+meoCA+IGrDujsgIzk3QTAKK+meoSA+IGxhOyAjOTdBMQor6Z6iID4geGnDqDsgIzk3QTIKK+meoyA+IHLDs3U7ICM5N0EzCivpnqQgPiBixIFuZzsgIzk3QTQKK+mepSA+IHnDrDsgIzk3QTUKK+mepiA+IHHEq3U7ICM5N0E2CivpnqcgPiBxxKt1OyAjOTdBNwor6Z6oID4gaMOpOyAjOTdBOAor6Z6pID4geGnDoG87ICM5N0E5CivpnqogPiBtw7k7ICM5N0FBCivpnqsgPiBqw7o7ICM5N0FCCivpnqwgPiBqacSBbjsgIzk3QUMKK+merSA+IGJpxIFuOyAjOTdBRAor6Z6uID4gZMSrOyAjOTdBRQor6Z6vID4gamnEgW47ICM5N0FGCivpnrEgPiB0xIFvOyAjOTdCMQor6Z6yID4gZ8WNdTsgIzk3QjIKK+mesyA+IHTDoDsgIzk3QjMKK+metCA+IGLDqGk7ICM5N0I0CivpnrUgPiB4acOpOyAjOTdCNQor6Z62ID4gcMOhbjsgIzk3QjYKK+metyA+IGfDqTsgIzk3QjcKK+meuCA+IGLDrDsgIzk3QjgKK+meuSA+IGvDuW87ICM5N0I5CivpnrogPiB0YW5nOyAjOTdCQQor6Z67ID4gbMOzdTsgIzk3QkIKK+mevCA+IGfDuWk7ICM5N0JDCivpnr0gPiBxacOhbzsgIzk3QkQKK+meviA+IHh1xJM7ICM5N0JFCivpnr8gPiBqxKs7ICM5N0JGCivpn4AgPiBqacSBbjsgIzk3QzAKK+mfgSA+IGppxIFuZzsgIzk3QzEKK+mfgiA+IGNow6BuOyAjOTdDMgor6Z+DID4gZMOhOyAjOTdDMwor6Z+EID4gaMO5bzsgIzk3QzQKK+mfhSA+IHhpxINuOyAjOTdDNQor6Z+GID4gcWnEgW47ICM5N0M2Civpn4cgPiBkw7o7ICM5N0M3Civpn4ggPiB3w6A7ICM5N0M4Civpn4kgPiBqacSBbjsgIzk3QzkKK+mfiiA+IGzDoW47ICM5N0NBCivpn4sgPiB3w6lpOyAjOTdDQgor6Z+MID4gcsOobjsgIzk3Q0MKK+mfjSA+IGbDujsgIzk3Q0QKK+mfjiA+IG3DqGk7ICM5N0NFCivpn48gPiBqdcOgbjsgIzk3Q0YKK+mfkCA+IGfDqTsgIzk3RDAKK+mfkSA+IHfElWk7ICM5N0QxCivpn5IgPiBxacOgbzsgIzk3RDIKK+mfkyA+IGjDoW47ICM5N0QzCivpn5QgPiBjaMOgbmc7ICM5N0Q0Civpn5YgPiByw7N1OyAjOTdENgor6Z+XID4geMO5bjsgIzk3RDcKK+mfmCA+IHNow6g7ICM5N0Q4Civpn5kgPiB3xJVpOyAjOTdEOQor6Z+aID4gZ8OpOyAjOTdEQQor6Z+bID4gYsOoaTsgIzk3REIKK+mfnCA+IHTEgW87ICM5N0RDCivpn50gPiBnxY11OyAjOTdERAor6Z+eID4gecO5bjsgIzk3REUKK+mfoCA+IGLDrDsgIzk3RTAKK+mfoSA+IHfElWk7ICM5N0UxCivpn6IgPiBow7lpOyAjOTdFMgor6Z+jID4gZMO6OyAjOTdFMwor6Z+kID4gd8OgOyAjOTdFNAor6Z+lID4gZMO6OyAjOTdFNQor6Z+mID4gd8OpaTsgIzk3RTYKK+mfpyA+IHLDqG47ICM5N0U3Civpn6ggPiBmw7o7ICM5N0U4Civpn6kgPiBow6FuOyAjOTdFOQor6Z+qID4gd8SVaTsgIzk3RUEKK+mfqyA+IHnDuW47ICM5N0VCCivpn6wgPiB0xIFvOyAjOTdFQwor6Z+tID4gasStdTsgIzk3RUQKK+mfriA+IGrErXU7ICM5N0VFCivpn68gPiB4acSBbjsgIzk3RUYKK+mfsCA+IHhpw6g7ICM5N0YwCivpn7EgPiB4acSBbjsgIzk3RjEKK+mfsiA+IGrEqzsgIzk3RjIKK+mfsyA+IHnEq247ICM5N0YzCivpn7QgPiB6w6E7ICM5N0Y0Civpn7UgPiB5w7luOyAjOTdGNQor6Z+2ID4gc2jDoW87ICM5N0Y2Civpn7cgPiBsw6g7ICM5N0Y3Civpn7ggPiBww6luZzsgIzk3RjgKK+mfuSA+IGjDqW5nOyAjOTdGOQor6Z+6ID4gecSrbmc7ICM5N0ZBCivpn7sgPiB5w7luOyAjOTdGQgor6Z+8ID4gcMOpbmc7ICM5N0ZDCivpn70gPiB5xKtuOyAjOTdGRAor6Z++ID4gecSrbjsgIzk3RkUKK+mfvyA+IHhpxINuZzsgIzk3RkYKK+mggCA+IGjDuTsgIzk4MDAKK+mggSA+IHnDqDsgIzk4MDEKK+mggiA+IGTErW5nOyAjOTgwMgor6aCDID4gccStbmc7ICM5ODAzCivpoIQgPiBww6BuOyAjOTgwNAor6aCFID4geGnDoG5nOyAjOTgwNQor6aCGID4gc2jDuW47ICM5ODA2CivpoIcgPiBoxIFuOyAjOTgwNwor6aCIID4geMWrOyAjOTgwOAor6aCJID4gecOtOyAjOTgwOQor6aCKID4geMO5OyAjOTgwQQor6aCLID4gZ8O5OyAjOTgwQgor6aCMID4gc8Oybmc7ICM5ODBDCivpoI0gPiBrxa1pOyAjOTgwRAor6aCOID4gccOtOyAjOTgwRQor6aCPID4gaMOhbmc7ICM5ODBGCivpoJAgPiB5w7k7ICM5ODEwCivpoJEgPiB3w6FuOyAjOTgxMQor6aCSID4gYsSBbjsgIzk4MTIKK+mgkyA+IGTDuW47ICM5ODEzCivpoJQgPiBkw607ICM5ODE0CivpoJUgPiBkxIFuOyAjOTgxNQor6aCWID4gcMOgbjsgIzk4MTYKK+mglyA+IHDFjzsgIzk4MTcKK+mgmCA+IGzErW5nOyAjOTgxOAor6aCZID4gY8OoOyAjOTgxOQor6aCaID4gasStbmc7ICM5ODFBCivpoJsgPiBsxJVpOyAjOTgxQgor6aCcID4gaMOpOyAjOTgxQwor6aCdID4gcWnEgW87ICM5ODFECivpoJ4gPiDDqDsgIzk4MUUKK+mgnyA+IMOpOyAjOTgxRgor6aCgID4gd8SVaTsgIzk4MjAKK+mgoSA+IGppw6k7ICM5ODIxCivpoKIgPiBndcSBOyAjOTgyMgor6aCjID4gc2jElW47ICM5ODIzCivpoKQgPiB5w607ICM5ODI0CivpoKUgPiBzaMSVbjsgIzk4MjUKK+mgpiA+IGjDoWk7ICM5ODI2CivpoKcgPiBkxatpOyAjOTgyNwor6aCoID4gcGnEgW47ICM5ODI4CivpoKkgPiBwxKtuZzsgIzk4MjkKK+mgqiA+IGzDqGk7ICM5ODJBCivpoKsgPiBmxa07ICM5ODJCCivpoKwgPiBqacOhOyAjOTgyQwor6aCtID4gdMOzdTsgIzk4MkQKK+mgriA+IGjDuWk7ICM5ODJFCivpoK8gPiBrw7ppOyAjOTgyRgor6aCwID4gamnDoTsgIzk4MzAKK+mgsSA+IGzDqDsgIzk4MzEKK+mgsiA+IHRpYW47ICM5ODMyCivpoLMgPiBjaMSTbmc7ICM5ODMzCivpoLQgPiB5xK1uZzsgIzk4MzQKK+mgtSA+IGrFq247ICM5ODM1CivpoLYgPiBow7o7ICM5ODM2CivpoLcgPiBow6BuOyAjOTgzNwor6aC4ID4gasStbmc7ICM5ODM4CivpoLkgPiB0w7ppOyAjOTgzOQor6aC6ID4gdMO6aTsgIzk4M0EKK+mguyA+IHDDrW47ICM5ODNCCivpoLwgPiBsw6BpOyAjOTgzQwor6aC9ID4gdMO6aTsgIzk4M0QKK+mgviA+IHrEqzsgIzk4M0UKK+mgvyA+IHrEqzsgIzk4M0YKK+mhgCA+IGNow7ppOyAjOTg0MAor6aGBID4gZMOsbmc7ICM5ODQxCivpoYIgPiBsw6BpOyAjOTg0Mgor6aGDID4gecOhbjsgIzk4NDMKK+mhhCA+IGjDoG47ICM5ODQ0CivpoYUgPiBqacSBbjsgIzk4NDUKK+mhhiA+IGvEkzsgIzk4NDYKK+mhhyA+IGPDuWk7ICM5ODQ3CivpoYggPiBqxK1vbmc7ICM5ODQ4CivpoYkgPiBxxKtuOyAjOTg0OQor6aGKID4gecOtOyAjOTg0QQor6aGLID4gc8SBaTsgIzk4NEIKK+mhjCA+IHTDrTsgIzk4NEMKK+mhjSA+IMOpOyAjOTg0RAor6aGOID4gw6g7ICM5ODRFCivpoY8gPiB5w6FuOyAjOTg0Rgor6aGQID4gaMO6bjsgIzk4NTAKK+mhkSA+IGvEg247ICM5ODUxCivpoZIgPiB5w7NuZzsgIzk4NTIKK+mhkyA+IHpodcSBbjsgIzk4NTMKK+mhlCA+IHnDoW47ICM5ODU0CivpoZUgPiB4acSDbjsgIzk4NTUKK+mhliA+IHjDrG47ICM5ODU2CivpoZcgPiB5xK07ICM5ODU3CivpoZggPiB5dcOgbjsgIzk4NTgKK+mhmSA+IHPEg25nOyAjOTg1OQor6aGaID4gZGnEgW47ICM5ODVBCivpoZsgPiBkacSBbjsgIzk4NUIKK+mhnCA+IGppxINuZzsgIzk4NUMKK+mhnSA+IGvFqzsgIzk4NUQKK+mhniA+IGzDqGk7ICM5ODVFCivpoZ8gPiBsacOhbzsgIzk4NUYKK+mhoCA+IHBpw6BvOyAjOTg2MAor6aGhID4gecOsOyAjOTg2MQor6aGiID4gbcOhbjsgIzk4NjIKK+mhoyA+IHHEqzsgIzk4NjMKK+mhpCA+IHLDoG87ICM5ODY0CivpoaUgPiBow6BvOyAjOTg2NQor6aGmID4gcWnDoW87ICM5ODY2CivpoacgPiBnw7k7ICM5ODY3CivpoaggPiB4w7luOyAjOTg2OAor6aGpID4gcWnEgW47ICM5ODY5CivpoaogPiBoxatpOyAjOTg2QQor6aGrID4gemjDoG47ICM5ODZCCivpoawgPiByw7o7ICM5ODZDCivpoa0gPiBoxY1uZzsgIzk4NkQKK+mhriA+IGLEq247ICM5ODZFCivpoa8gPiB4acSDbjsgIzk4NkYKK+mhsCA+IHDDrW47ICM5ODcwCivpobEgPiBsw7o7ICM5ODcxCivpobIgPiBsxINuOyAjOTg3Mgor6aGzID4gbmnDqDsgIzk4NzMKK+mhtCA+IHF1w6FuOyAjOTg3NAor6aG1ID4gecOoOyAjOTg3NQor6aG2ID4gZMStbmc7ICM5ODc2CivpobcgPiBxxK1uZzsgIzk4NzcKK+mhuCA+IGjEgW47ICM5ODc4CivpobkgPiB4acOgbmc7ICM5ODc5CivpobogPiBzaMO5bjsgIzk4N0EKK+mhuyA+IHjFqzsgIzk4N0IKK+mhvCA+IHjDuTsgIzk4N0MKK+mhvSA+IHfDoW47ICM5ODdECivpob4gPiBnw7k7ICM5ODdFCivpob8gPiBkw7luOyAjOTg3Rgor6aKAID4gccOtOyAjOTg4MAor6aKBID4gYsSBbjsgIzk4ODEKK+migiA+IHPDsm5nOyAjOTg4Mgor6aKDID4gaMOhbmc7ICM5ODgzCivpooQgPiB5w7k7ICM5ODg0CivpooUgPiBsw7o7ICM5ODg1CivpooYgPiBsxK1uZzsgIzk4ODYKK+mihyA+IHDFjzsgIzk4ODcKK+miiCA+IGrErW5nOyAjOTg4OAor6aKJID4gamnDqTsgIzk4ODkKK+miiiA+IGppw6E7ICM5ODhBCivpoosgPiB0aWFuOyAjOTg4Qgor6aKMID4gaMOgbjsgIzk4OEMKK+mijSA+IHnErW5nOyAjOTg4RAor6aKOID4gasStb25nOyAjOTg4RQor6aKPID4gaMOhaTsgIzk4OEYKK+mikCA+IHnDrTsgIzk4OTAKK+mikSA+IHDDrW47ICM5ODkxCivpopIgPiBow7lpOyAjOTg5Mgor6aKTID4gdMO6aTsgIzk4OTMKK+milCA+IGjDoG47ICM5ODk0CivpopUgPiB5xK1uZzsgIzk4OTUKK+miliA+IHnErW5nOyAjOTg5Ngor6aKXID4ga8STOyAjOTg5Nwor6aKYID4gdMOtOyAjOTg5OAor6aKZID4gecOzbmc7ICM5ODk5CivpopogPiDDqDsgIzk4OUEKK+mimyA+IHpodcSBbjsgIzk4OUIKK+minCA+IHnDoW47ICM5ODlDCivpop0gPiDDqTsgIzk4OUQKK+miniA+IG5pw6g7ICM5ODlFCivpop8gPiBtw6FuOyAjOTg5Rgor6aKgID4gZGnEgW47ICM5OEEwCivpoqEgPiBzxINuZzsgIzk4QTEKK+mioiA+IGjDoG87ICM5OEEyCivpoqMgPiBsw6hpOyAjOThBMwor6aKkID4gemjDoG47ICM5OEE0CivpoqUgPiByw7o7ICM5OEE1CivpoqYgPiBww61uOyAjOThBNgor6aKnID4gcXXDoW47ICM5OEE3CivpoqggPiBmxJNuZzsgIzk4QTgKK+miqSA+IGJpxIFvOyAjOThBOQor6aKrID4gZsO6OyAjOThBQgor6aKsID4geGnEgTsgIzk4QUMKK+mirSA+IHpoxINuOyAjOThBRAor6aKuID4gYmnEgW87ICM5OEFFCivpoq8gPiBzw6A7ICM5OEFGCivporAgPiBiw6E7ICM5OEIwCivporEgPiB0w6FpOyAjOThCMQor6aKyID4gbGnDqDsgIzk4QjIKK+misyA+IGd1xIE7ICM5OEIzCivporQgPiB4dcOgbjsgIzk4QjQKK+mitSA+IHNow6BvOyAjOThCNQor6aK2ID4gasO5OyAjOThCNgor6aK3ID4gYsSrOyAjOThCNwor6aK4ID4gc8SrOyAjOThCOAor6aK5ID4gd8SVaTsgIzk4QjkKK+miuiA+IHnDoW5nOyAjOThCQQor6aK7ID4gecOhbzsgIzk4QkIKK+mivCA+IHPFjXU7ICM5OEJDCivpor0gPiBrxINpOyAjOThCRAor6aK+ID4gc8SBbzsgIzk4QkUKK+mivyA+IGbDoW47ICM5OEJGCivpo4AgPiBsw611OyAjOThDMAor6aOBID4geMOtOyAjOThDMQor6aOCID4gbGnDoW87ICM5OEMyCivpo4MgPiBwacSBbzsgIzk4QzMKK+mjhCA+IHBpxIFvOyAjOThDNAor6aOFID4gbMOtdTsgIzk4QzUKK+mjhiA+IGJpxIFvOyAjOThDNgor6aOHID4gYmnEgW87ICM5OEM3Civpo4ggPiBiacSDbzsgIzk4QzgKK+mjiSA+IGxpw6FvOyAjOThDOQor6aOLID4gc8OoOyAjOThDQgor6aOMID4gZsSTbmc7ICM5OENDCivpo40gPiBiacSBbzsgIzk4Q0QKK+mjjiA+IGbEk25nOyAjOThDRQor6aOPID4gecOhbmc7ICM5OENGCivpo5AgPiB6aMSDbjsgIzk4RDAKK+mjkSA+IGJpxIFvOyAjOThEMQor6aOSID4gc8OgOyAjOThEMgor6aOTID4gasO5OyAjOThEMwor6aOUID4gc8SrOyAjOThENAor6aOVID4gc8WNdTsgIzk4RDUKK+mjliA+IHnDoW87ICM5OEQ2Civpo5cgPiBsw611OyAjOThENwor6aOYID4gcGnEgW87ICM5OEQ4Civpo5kgPiBiacSBbzsgIzk4RDkKK+mjmiA+IGJpxIFvOyAjOThEQQor6aObID4gZsSTaTsgIzk4REIKK+mjnCA+IGbEgW47ICM5OERDCivpo50gPiBmxJNpOyAjOThERAor6aOeID4gZsSTaTsgIzk4REUKK+mjnyA+IHNow607ICM5OERGCivpo6AgPiBzaMOtOyAjOThFMAor6aOhID4gY8SBbjsgIzk4RTEKK+mjoiA+IGrEqzsgIzk4RTIKK+mjoyA+IGTDrG5nOyAjOThFMwor6aOkID4gc8OsOyAjOThFNAor6aOlID4gdMWrbzsgIzk4RTUKK+mjpiA+IHpoxIFuOyAjOThFNgor6aOnID4gc8WrbjsgIzk4RTcKK+mjqCA+IHhpxINuZzsgIzk4RTgKK+mjqSA+IHTDum47ICM5OEU5Civpo6ogPiByw6huOyAjOThFQQor6aOrID4gecO5OyAjOThFQgor6aOsID4ganXDoG47ICM5OEVDCivpo60gPiBjaMOsOyAjOThFRAor6aOuID4gecStbjsgIzk4RUUKK+mjryA+IGbDoG47ICM5OEVGCivpo7AgPiBmw6BuOyAjOThGMAor6aOxID4gc8WrbjsgIzk4RjEKK+mjsiA+IHnErW47ICM5OEYyCivpo7MgPiB6aMO5OyAjOThGMwor6aO0ID4gecOtOyAjOThGNAor6aO1ID4gemjEg2k7ICM5OEY1Civpo7YgPiBiw6w7ICM5OEY2Civpo7cgPiBqacSVOyAjOThGNwor6aO4ID4gdMSBbzsgIzk4RjgKK+mjuSA+IGzErXU7ICM5OEY5Civpo7ogPiBjw607ICM5OEZBCivpo7sgPiB0acOoOyAjOThGQgor6aO8ID4gc8OsOyAjOThGQwor6aO9ID4gYsSDbzsgIzk4RkQKK+mjviA+IHNow6w7ICM5OEZFCivpo78gPiBkw7lvOyAjOThGRgor6aSAID4gaMOgaTsgIzk5MDAKK+mkgSA+IHLDqG47ICM5OTAxCivppIIgPiB0acSDbjsgIzk5MDIKK+mkgyA+IGppxINvOyAjOTkwMwor6aSEID4gamnDoTsgIzk5MDQKK+mkhSA+IGLErW5nOyAjOTkwNQor6aSGID4gecOhbzsgIzk5MDYKK+mkhyA+IHTDs25nOyAjOTkwNwor6aSIID4gY8OtOyAjOTkwOAor6aSJID4geGnEg25nOyAjOTkwOQor6aSKID4gecSDbmc7ICM5OTBBCivppIsgPiB5xINuZzsgIzk5MEIKK+mkjCA+IMSVcjsgIzk5MEMKK+mkjSA+IHnDoG47ICM5OTBECivppI4gPiBsZTsgIzk5MEUKK+mkjyA+IHnEqzsgIzk5MEYKK+mkkCA+IGPEgW47ICM5OTEwCivppJEgPiBiw7M7ICM5OTExCivppJIgPiBuxJVpOyAjOTkxMgor6aSTID4gw6g7ICM5OTEzCivppJQgPiBixas7ICM5OTE0CivppJUgPiBqw7luOyAjOTkxNQor6aSWID4gZMOydTsgIzk5MTYKK+mklyA+IHPDuTsgIzk5MTcKK+mkmCA+IHnDujsgIzk5MTgKK+mkmSA+IHNow6w7ICM5OTE5CivppJogPiB5w6FvOyAjOTkxQQor6aSbID4gaMO6bjsgIzk5MUIKK+mknCA+IGfFrW87ICM5OTFDCivppJ0gPiBzaMOsOyAjOTkxRAor6aSeID4gamnDoG47ICM5OTFFCivppJ8gPiB6aMO5aTsgIzk5MUYKK+mkoCA+IGLErW5nOyAjOTkyMAor6aShID4geGnDoG47ICM5OTIxCivppKIgPiBiw7k7ICM5OTIyCivppKMgPiB5w6g7ICM5OTIzCivppKQgPiB0w6FuOyAjOTkyNAor6aSlID4gZsSVaTsgIzk5MjUKK+mkpiA+IHpoxIFuZzsgIzk5MjYKK+mkpyA+IHfDqGk7ICM5OTI3CivppKggPiBndcSDbjsgIzk5MjgKK+mkqSA+IMOoOyAjOTkyOQor6aSqID4gbnXEg247ICM5OTJBCivppKsgPiBow7puOyAjOTkyQgor6aSsID4gaMO6OyAjOTkyQwor6aStID4gaHXDoW5nOyAjOTkyRAor6aSuID4gdGnDqDsgIzk5MkUKK+mkryA+IGjDuWk7ICM5OTJGCivppLAgPiBqacSBbjsgIzk5MzAKK+mksSA+IGjDs3U7ICM5OTMxCivppLIgPiBow6k7ICM5OTMyCivppLMgPiB4w61uZzsgIzk5MzMKK+mktCA+IGbEk247ICM5OTM0CivppLUgPiB3w6hpOyAjOTkzNQor6aS2ID4gZ8WtOyAjOTkzNgor6aS3ID4gY2jEgTsgIzk5MzcKK+mkuCA+IHPDsm5nOyAjOTkzOAor6aS5ID4gdMOhbmc7ICM5OTM5CivppLogPiBiw7M7ICM5OTNBCivppLsgPiBnxIFvOyAjOTkzQgor6aS8ID4geMOsOyAjOTkzQwor6aS9ID4ga8O5aTsgIzk5M0QKK+mkviA+IGzDrHU7ICM5OTNFCivppL8gPiBzxY11OyAjOTkzRgor6aWAID4gdMOhbzsgIzk5NDAKK+mlgSA+IHnDqDsgIzk5NDEKK+mlgiA+IHnDum47ICM5OTQyCivppYMgPiBtw7M7ICM5OTQzCivppYQgPiB0w6FuZzsgIzk5NDQKK+mlhSA+IG3DoW47ICM5OTQ1CivppYYgPiBiw6w7ICM5OTQ2CivppYcgPiB5w7k7ICM5OTQ3CivppYggPiB4xKt1OyAjOTk0OAor6aWJID4gasStbjsgIzk5NDkKK+mliiA+IHPEg247ICM5OTRBCivppYsgPiBrw7lpOyAjOTk0Qgor6aWMID4gemh1w6BuOyAjOTk0Qwor6aWNID4gc2jDoG47ICM5OTRECivppY4gPiBjaMOsOyAjOTk0RQor6aWPID4gZMOgbjsgIzk5NEYKK+mlkCA+IHnDrDsgIzk5NTAKK+mlkSA+IGrEqzsgIzk5NTEKK+mlkiA+IHLDoW87ICM5OTUyCivppZMgPiBjaMSTbmc7ICM5OTUzCivppZQgPiB5xY1uZzsgIzk5NTQKK+mllSA+IHTEgW87ICM5OTU1CivppZYgPiBow7lpOyAjOTk1Ngor6aWXID4geGnEg25nOyAjOTk1Nwor6aWYID4gemjEgW47ICM5OTU4CivppZkgPiBmxJNuOyAjOTk1OQor6aWaID4gaMOgaTsgIzk5NUEKK+mlmyA+IG3DqW5nOyAjOTk1Qgor6aWcID4gecOgbjsgIzk5NUMKK+mlnSA+IG3DszsgIzk5NUQKK+mlniA+IGNow6FuOyAjOTk1RQor6aWfID4geGnEg25nOyAjOTk1Rgor6aWgID4gbMO6bzsgIzk5NjAKK+mloSA+IHp1w6BuOyAjOTk2MQor6aWiID4gbsSDbmc7ICM5OTYyCivppaMgPiBzaMOtOyAjOTk2Mwor6aWkID4gZMOsbmc7ICM5OTY0CivppaUgPiBqxKs7ICM5OTY1CivppaYgPiB0xatvOyAjOTk2Ngor6aWnID4geMOtbmc7ICM5OTY3CivppaggPiB0w7puOyAjOTk2OAor6aWpID4geMOsOyAjOTk2OQor6aWqID4gcsOobjsgIzk5NkEKK+mlqyA+IHnDuTsgIzk5NkIKK+mlrCA+IGNow6w7ICM5OTZDCivppa0gPiBmw6BuOyAjOTk2RAor6aWuID4gecStbjsgIzk5NkUKK+mlryA+IGppw6BuOyAjOTk2Rgor6aWwID4gc2jDrDsgIzk5NzAKK+mlsSA+IGLEg287ICM5OTcxCivppbIgPiBzw6w7ICM5OTcyCivppbMgPiBkw7lvOyAjOTk3Mwor6aW0ID4gecOtOyAjOTk3NAor6aW1ID4gxJVyOyAjOTk3NQor6aW2ID4gcsOhbzsgIzk5NzYKK+mltyA+IHhpxINuZzsgIzk5NzcKK+mluCA+IGppw6E7ICM5OTc4CivppbkgPiBsZTsgIzk5NzkKK+mluiA+IGppxINvOyAjOTk3QQor6aW7ID4gecSrOyAjOTk3Qgor6aW8ID4gYsStbmc7ICM5OTdDCivppb0gPiBiw7M7ICM5OTdECivppb4gPiBkw7J1OyAjOTk3RQor6aW/ID4gw6g7ICM5OTdGCivppoAgPiB5w7o7ICM5OTgwCivppoEgPiBuxJVpOyAjOTk4MQor6aaCID4gasO5bjsgIzk5ODIKK+mmgyA+IGfFrW87ICM5OTgzCivppoQgPiBow7puOyAjOTk4NAor6aaFID4geGnDoG47ICM5OTg1CivppoYgPiBndcSDbjsgIzk5ODYKK+mmhyA+IGNoxIE7ICM5OTg3CivppoggPiBrw7lpOyAjOTk4OAor6aaJID4gZ8WtOyAjOTk4OQor6aaKID4gc8WNdTsgIzk5OEEKK+mmiyA+IGNow6FuOyAjOTk4Qgor6aaMID4gecOoOyAjOTk4Qwor6aaNID4gbcOzOyAjOTk4RAor6aaOID4gYsOzOyAjOTk4RQor6aaPID4gbMOsdTsgIzk5OEYKK+mmkCA+IHjEq3U7ICM5OTkwCivpppEgPiBqxK1uOyAjOTk5MQor6aaSID4gbcOhbjsgIzk5OTIKK+mmkyA+IHPEg247ICM5OTkzCivpppQgPiB6aHXDoG47ICM5OTk0CivpppUgPiBuxINuZzsgIzk5OTUKK+mmliA+IHNoxY91OyAjOTk5Ngor6aaXID4ga8O6aTsgIzk5OTcKK+mmmCA+IGfDum87ICM5OTk4CivpppkgPiB4acSBbmc7ICM5OTk5CivpppogPiBmw6luOyAjOTk5QQor6aabID4gYsOhOyAjOTk5Qgor6aacID4gbsStOyAjOTk5Qwor6aadID4gYsOsOyAjOTk5RAor6aaeID4gYsOzOyAjOTk5RQor6aafID4gdMO6OyAjOTk5Rgor6aagID4gaMSBbjsgIzk5QTAKK+mmoSA+IGbEk2k7ICM5OUExCivppqIgPiBqacSBbjsgIzk5QTIKK+mmoyA+IMSBbjsgIzk5QTMKK+mmpCA+IMSDaTsgIzk5QTQKK+mmpSA+IGbDuTsgIzk5QTUKK+mmpiA+IHhpxIFuOyAjOTlBNgor6aanID4gd8STbjsgIzk5QTcKK+mmqCA+IHjEq247ICM5OUE4CivppqkgPiBmw6luOyAjOTlBOQor6aaqID4gYsSrbjsgIzk5QUEKK+mmqyA+IHjEq25nOyAjOTlBQgor6aasID4gbcSDOyAjOTlBQwor6aatID4gecO5OyAjOTlBRAor6aauID4gZsOpbmc7ICM5OUFFCivppq8gPiBow6BuOyAjOTlBRgor6aawID4gZMOsOyAjOTlCMAor6aaxID4gdMO6bzsgIzk5QjEKK+mmsiA+IHTFq287ICM5OUIyCivpprMgPiBjaMOtOyAjOTlCMwor6aa0ID4geMO6bjsgIzk5QjQKK+mmtSA+IHpow7k7ICM5OUI1CivpprYgPiB6aMSrOyAjOTlCNgor6aa3ID4gcMOoaTsgIzk5QjcKK+mmuCA+IHjDrG47ICM5OUI4CivpprkgPiByw6w7ICM5OUI5CivpprogPiBzw6A7ICM5OUJBCivpprsgPiB5xK1uOyAjOTlCQgor6aa8ID4gd8OpbjsgIzk5QkMKK+mmvSA+IHpow607ICM5OUJECivppr4gPiBkw6BuOyAjOTlCRQor6aa/ID4gbMeYOyAjOTlCRgor6aeAID4gecOzdTsgIzk5QzAKK+mngSA+IGLDszsgIzk5QzEKK+mngiA+IGLEg287ICM5OUMyCivpp4MgPiBrdcOgaTsgIzk5QzMKK+mnhCA+IHTDum87ICM5OUM0Civpp4UgPiB5w6w7ICM5OUM1Civpp4YgPiBxxas7ICM5OUM2Civpp4ggPiBxxas7ICM5OUM4Civpp4kgPiBqxKtvbmc7ICM5OUM5Civpp4ogPiBixY87ICM5OUNBCivpp4sgPiB6aMSBbzsgIzk5Q0IKK+mnjCA+IHl1xIFuOyAjOTlDQwor6aeNID4gcMSTbmc7ICM5OUNECivpp44gPiB6aMOydTsgIzk5Q0UKK+mnjyA+IGrDuTsgIzk5Q0YKK+mnkCA+IHpow7k7ICM5OUQwCivpp5EgPiBuw7o7ICM5OUQxCivpp5IgPiBqxas7ICM5OUQyCivpp5MgPiBww607ICM5OUQzCivpp5QgPiB6xINuZzsgIzk5RDQKK+mnlSA+IGppw6A7ICM5OUQ1Civpp5YgPiBsw61uZzsgIzk5RDYKK+mnlyA+IHpoxJNuOyAjOTlENwor6aeYID4gdMOhaTsgIzk5RDgKK+mnmSA+IGbDuTsgIzk5RDkKK+mnmiA+IHnEg25nOyAjOTlEQQor6aebID4gc2jErTsgIzk5REIKK+mnnCA+IGLDrDsgIzk5REMKK+mnnSA+IHTDum87ICM5OURECivpp54gPiB0w7pvOyAjOTlERQor6aefID4gc8OsOyAjOTlERgor6aegID4gbMOtdTsgIzk5RTAKK+mnoSA+IG3DoDsgIzk5RTEKK+mnoiA+IHBpw6FuOyAjOTlFMgor6aejID4gdMOhbzsgIzk5RTMKK+mnpCA+IHpow6w7ICM5OUU0Civpp6UgPiByw7NuZzsgIzk5RTUKK+mnpiA+IHTDqW5nOyAjOTlFNgor6aenID4gZMOybmc7ICM5OUU3Civpp6ggPiB4w7puOyAjOTlFOAor6aepID4gcXXDoW47ICM5OUU5Civpp6ogPiBzaMSTbjsgIzk5RUEKK+mnqyA+IGrEq29uZzsgIzk5RUIKK+mnrCA+IMSVcjsgIzk5RUMKK+mnrSA+IGjDoGk7ICM5OUVECivpp64gPiBiw7M7ICM5OUVFCivpp68gPiB6aHU7ICM5OUVGCivpp7AgPiB5xKtuOyAjOTlGMAor6aexID4gbMO5bzsgIzk5RjEKK+mnsyA+IGTDoG47ICM5OUYzCivpp7QgPiB4acOoOyAjOTlGNAor6ae1ID4gbMOtdTsgIzk5RjUKK+mntiA+IGrDujsgIzk5RjYKK+mntyA+IHPFj25nOyAjOTlGNwor6ae4ID4gccSrbjsgIzk5RjgKK+mnuSA+IG3DoW5nOyAjOTlGOQor6ae6ID4gbGnDoW5nOyAjOTlGQQor6ae7ID4gaMOgbjsgIzk5RkIKK+mnvCA+IHTDujsgIzk5RkMKK+mnvSA+IHh1w6BuOyAjOTlGRAor6ae+ID4gdMO5aTsgIzk5RkUKK+mnvyA+IGrDuW47ICM5OUZGCivpqIAgPiDDqTsgIzlBMDAKK+mogSA+IGNoxJVuZzsgIzlBMDEKK+mogiA+IHjEq247ICM5QTAyCivpqIMgPiDDoWk7ICM5QTAzCivpqIQgPiBsw7k7ICM5QTA0CivpqIUgPiB6aMWraTsgIzlBMDUKK+mohiA+IHpoxY11OyAjOUEwNgor6aiHID4gc2jElTsgIzlBMDcKK+moiCA+IHBpw6FuOyAjOUEwOAor6aiJID4ga8WrbjsgIzlBMDkKK+moiiA+IHTDoW87ICM5QTBBCivpqIsgPiBsw6FpOyAjOUEwQgor6aiMID4gesWNbmc7ICM5QTBDCivpqI0gPiBrw6g7ICM5QTBECivpqI4gPiBxw607ICM5QTBFCivpqI8gPiBxw607ICM5QTBGCivpqJAgPiB5w6BuOyAjOUExMAor6aiRID4gZsSTaTsgIzlBMTEKK+mokiA+IHPEgW87ICM5QTEyCivpqJMgPiB5xINuOyAjOUExMwor6aiUID4gamnDqTsgIzlBMTQKK+molSA+IHnEg287ICM5QTE1CivpqJYgPiB3w7k7ICM5QTE2CivpqJcgPiBwacOgbjsgIzlBMTcKK+momCA+IGPFjW5nOyAjOUExOAor6aiZID4gcGnDoG47ICM5QTE5CivpqJogPiBxacOhbjsgIzlBMUEKK+momyA+IGbEk2k7ICM5QTFCCivpqJwgPiBodcOhbmc7ICM5QTFDCivpqJ0gPiBqacSBbjsgIzlBMUQKK+moniA+IGjDuW87ICM5QTFFCivpqJ8gPiB5w7k7ICM5QTFGCivpqKAgPiB0w607ICM5QTIwCivpqKEgPiBxdcOhbjsgIzlBMjEKK+mooiA+IHhpw6E7ICM5QTIyCivpqKMgPiB6xY1uZzsgIzlBMjMKK+mopCA+IGvDumk7ICM5QTI0CivpqKUgPiByw7N1OyAjOUEyNQor6aimID4gc8SrOyAjOUEyNgor6ainID4gZ3XEgTsgIzlBMjcKK+moqCA+IHTDum87ICM5QTI4CivpqKkgPiBrw7lpOyAjOUEyOQor6aiqID4gc8WNdTsgIzlBMkEKK+moqyA+IHFpxIFuOyAjOUEyQgor6aisID4gY2jDqW5nOyAjOUEyQwor6aitID4gemjDrDsgIzlBMkQKK+moriA+IGzDrXU7ICM5QTJFCivpqK8gPiBww6FuZzsgIzlBMkYKK+mosCA+IHTDqW5nOyAjOUEzMAor6aixID4geMSrOyAjOUEzMQor6aiyID4gY8SDbzsgIzlBMzIKK+mosyA+IGTDujsgIzlBMzMKK+motCA+IHnDoG47ICM5QTM0CivpqLUgPiB5dcOhbjsgIzlBMzUKK+motiA+IHrFjXU7ICM5QTM2CivpqLcgPiBzxIFvOyAjOUEzNwor6ai4ID4gc2jDoG47ICM5QTM4CivpqLkgPiBsw607ICM5QTM5CivpqLogPiB6aMOsOyAjOUEzQQor6ai7ID4gc2h1xINuZzsgIzlBM0IKK+movCA+IGzDuTsgIzlBM0MKK+movSA+IHjDrTsgIzlBM0QKK+moviA+IGzDum87ICM5QTNFCivpqL8gPiB6aMSBbmc7ICM5QTNGCivpqYAgPiBtw7I7ICM5QTQwCivpqYEgPiDDoW87ICM5QTQxCivpqYIgPiBjxIFuOyAjOUE0Mgor6amDID4gcGnDoG87ICM5QTQzCivpqYQgPiBjxY1uZzsgIzlBNDQKK+mphSA+IHHFqzsgIzlBNDUKK+mphiA+IGLDrDsgIzlBNDYKK+mphyA+IHpow6w7ICM5QTQ3CivpqYggPiB5w7k7ICM5QTQ4CivpqYkgPiB4xas7ICM5QTQ5CivpqYogPiBodcOhOyAjOUE0QQor6amLID4gYsWNOyAjOUE0Qgor6amMID4gc8O5OyAjOUE0Qwor6amNID4geGnEgW87ICM5QTRECivpqY4gPiBsw61uOyAjOUE0RQor6amPID4gY2jEg247ICM5QTRGCivpqZAgPiBkxatuOyAjOUE1MAor6amRID4gbMOtdTsgIzlBNTEKK+mpkiA+IHTDum87ICM5QTUyCivpqZMgPiB6xJNuZzsgIzlBNTMKK+mplCA+IHTDoW47ICM5QTU0CivpqZUgPiBqacSBbzsgIzlBNTUKK+mpliA+IHRpxJU7ICM5QTU2CivpqZcgPiB5w6BuOyAjOUE1Nwor6amYID4gbMO6bzsgIzlBNTgKK+mpmSA+IHpoxIFuOyAjOUE1OQor6amaID4gasSrbmc7ICM5QTVBCivpqZsgPiB5w6w7ICM5QTVCCivpqZwgPiB5w6g7ICM5QTVDCivpqZ0gPiB0xatvOyAjOUE1RAor6ameID4gYsSrbjsgIzlBNUUKK+mpnyA+IHrDsnU7ICM5QTVGCivpqaAgPiB5w6BuOyAjOUE2MAor6amhID4gcMOpbmc7ICM5QTYxCivpqaIgPiBsx5g7ICM5QTYyCivpqaMgPiB0w6luZzsgIzlBNjMKK+mppCA+IHhpxIFuZzsgIzlBNjQKK+mppSA+IGrDrDsgIzlBNjUKK+mppiA+IHNodcSBbmc7ICM5QTY2CivpqacgPiBqw7o7ICM5QTY3CivpqaggPiB4xKs7ICM5QTY4CivpqakgPiBodcSBbjsgIzlBNjkKK+mpqiA+IGzDrTsgIzlBNkEKK+mpqyA+IGJpxIFvOyAjOUE2Qgor6amsID4gbcSDOyAjOUE2Qwor6amtID4gecO5OyAjOUE2RAor6amuID4gdMO6bzsgIzlBNkUKK+mpryA+IHjDum47ICM5QTZGCivpqbAgPiBjaMOtOyAjOUE3MAor6amxID4gccWrOyAjOUE3MQor6amyID4gcsOsOyAjOUE3Mgor6amzID4gYsOzOyAjOUE3Mwor6am0ID4gbMeYOyAjOUE3NAor6am1ID4gesSDbmc7ICM5QTc1CivpqbYgPiBzaMStOyAjOUE3Ngor6am3ID4gc8OsOyAjOUE3Nwor6am4ID4gZsO5OyAjOUE3OAor6am5ID4gasWrOyAjOUE3OQor6am6ID4gesWNdTsgIzlBN0EKK+mpuyA+IHpow7k7ICM5QTdCCivpqbwgPiB0w7pvOyAjOUE3Qwor6am9ID4gbsO6OyAjOUE3RAor6am+ID4gamnDoDsgIzlBN0UKK+mpvyA+IHnDrDsgIzlBN0YKK+mqgCA+IHTDoWk7ICM5QTgwCivpqoEgPiB4acSBbzsgIzlBODEKK+mqgiA+IG3DoDsgIzlBODIKK+mqgyA+IHnEq247ICM5QTgzCivpqoQgPiBqacSBbzsgIzlBODQKK+mqhSA+IGh1w6E7ICM5QTg1CivpqoYgPiBsw7lvOyAjOUE4Ngor6aqHID4gaMOgaTsgIzlBODcKK+mqiCA+IHBpw6FuOyAjOUE4OAor6aqJID4gYmnEgW87ICM5QTg5CivpqoogPiBsw607ICM5QThBCivpqosgPiBjaMSVbmc7ICM5QThCCivpqowgPiB5w6BuOyAjOUE4Qwor6aqNID4geMSrbjsgIzlBOEQKK+mqjiA+IHHEq247ICM5QThFCivpqo8gPiBqw7luOyAjOUE4Rgor6aqQID4gccOtOyAjOUE5MAor6aqRID4gccOtOyAjOUE5MQor6aqSID4ga8OoOyAjOUE5Mgor6aqTID4gemjFq2k7ICM5QTkzCivpqpQgPiB6xY1uZzsgIzlBOTQKK+mqlSA+IHPDuTsgIzlBOTUKK+mqliA+IGPEgW47ICM5QTk2CivpqpcgPiBwacOgbjsgIzlBOTcKK+mqmCA+IHpow6w7ICM5QTk4CivpqpkgPiBrw7ppOyAjOUE5OQor6aqaID4gc8SBbzsgIzlBOUEKK+mqmyA+IHfDuTsgIzlBOUIKK+mqnCA+IMOhbzsgIzlBOUMKK+mqnSA+IGzDrXU7ICM5QTlECivpqp4gPiBxacSBbjsgIzlBOUUKK+mqnyA+IHNow6BuOyAjOUE5Rgor6aqgID4gcGnDoG87ICM5QUEwCivpqqEgPiBsw7pvOyAjOUFBMQor6aqiID4gY8WNbmc7ICM5QUEyCivpqqMgPiBjaMSDbjsgIzlBQTMKK+mqpCA+IHrDsnU7ICM5QUE0CivpqqUgPiBqw6w7ICM5QUE1CivpqqYgPiBzaHXEgW5nOyAjOUFBNgor6aqnID4geGnEgW5nOyAjOUFBNwor6aqoID4gZ8WtOyAjOUFBOAor6aqpID4gd8SVaTsgIzlBQTkKK+mqqiA+IHfElWk7ICM5QUFBCivpqqsgPiB3xJVpOyAjOUFBQgor6aqsID4gecO6OyAjOUFBQwor6aqtID4gZ8OgbjsgIzlBQUQKK+mqriA+IHnDrDsgIzlBQUUKK+mqryA+IMSBbmc7ICM5QUFGCivpqrAgPiB0w7N1OyAjOUFCMAor6aqxID4geGnDqDsgIzlBQjEKK+mqsiA+IGLEgW87ICM5QUIyCivpqrMgPiBiw6w7ICM5QUIzCivpqrQgPiBjaMSrOyAjOUFCNAor6aq1ID4gdMStOyAjOUFCNQor6aq2ID4gZMStOyAjOUFCNgor6aq3ID4ga8WrOyAjOUFCNwor6aq4ID4gaMOhaTsgIzlBQjgKK+mquSA+IHFpxIFvOyAjOUFCOQor6aq6ID4gZ8OydTsgIzlBQkEKK+mquyA+IGt1w6A7ICM5QUJCCivpqrwgPiBnw6k7ICM5QUJDCivpqr0gPiB0xa1pOyAjOUFCRAor6aq+ID4gZ8SVbmc7ICM5QUJFCivpqr8gPiBwacOhbjsgIzlBQkYKK+mrgCA+IGLDrDsgIzlBQzAKK+mrgSA+IGvEkzsgIzlBQzEKK+mrgiA+IGvDoDsgIzlBQzIKK+mrgyA+IHnDujsgIzlBQzMKK+mrhCA+IHPFrWk7ICM5QUM0Civpq4UgPiBsw7N1OyAjOUFDNQor6auGID4gYsOzOyAjOUFDNgor6auHID4geGnEgW87ICM5QUM3Civpq4ggPiBww6FuZzsgIzlBQzgKK+mriSA+IGLFjTsgIzlBQzkKK+mriiA+IGPEqzsgIzlBQ0EKK+mriyA+IGt1xIFuOyAjOUFDQgor6auMID4gYsOsbjsgIzlBQ0MKK+mrjSA+IG3DszsgIzlBQ0QKK+mrjiA+IGxpw6FvOyAjOUFDRQor6auPID4gbMOzdTsgIzlBQ0YKK+mrkCA+IG7DoW87ICM5QUQwCivpq5EgPiBkw7o7ICM5QUQxCivpq5IgPiB6xIFuZzsgIzlBRDIKK+mrkyA+IHPFrWk7ICM5QUQzCivpq5QgPiB0xK07ICM5QUQ0Civpq5UgPiBiw6xuOyAjOUFENQor6auWID4ga3XEgW47ICM5QUQ2Civpq5cgPiBsw7o7ICM5QUQ3Civpq5ggPiBnxIFvOyAjOUFEOAor6auZID4gZ8SBbzsgIzlBRDkKK+mrmiA+IHFpw6BvOyAjOUFEQQor6aubID4ga8SBbzsgIzlBREIKK+mrnCA+IHFpxIFvOyAjOUFEQwor6audID4gbMOgbzsgIzlBREQKK+mrniA+IHrDoG87ICM5QURFCivpq58gPiBiacSBbzsgIzlBREYKK+mroCA+IGvFq247ICM5QUUwCivpq6EgPiBrxatuOyAjOUFFMQor6auiID4gdMOsOyAjOUFFMgor6aujID4gZsSDbmc7ICM5QUUzCivpq6QgPiB4xKt1OyAjOUFFNAor6aulID4gcsOhbjsgIzlBRTUKK+mrpiA+IG3DoW87ICM5QUU2Civpq6cgPiBkw6BuOyAjOUFFNwor6auoID4ga8WrbjsgIzlBRTgKK+mrqSA+IGLDrG47ICM5QUU5Civpq6ogPiBmw6A7ICM5QUVBCivpq6sgPiB0acOhbzsgIzlBRUIKK+mrrCA+IHBlbmc7ICM5QUVDCivpq60gPiB6xKs7ICM5QUVECivpq64gPiBmxIM7ICM5QUVFCivpq68gPiByw6FuOyAjOUFFRgor6auwID4gdMOsOyAjOUFGMAor6auxID4gcMOgbzsgIzlBRjEKK+mrsiA+IHDEqzsgIzlBRjIKK+mrsyA+IG3DoW87ICM5QUYzCivpq7QgPiBmw7o7ICM5QUY0Civpq7UgPiDDqXI7ICM5QUY1Civpq7YgPiByw7NuZzsgIzlBRjYKK+mrtyA+IHHFqzsgIzlBRjcKK+mruCA+IGdvbmc7ICM5QUY4Civpq7kgPiB4xKt1OyAjOUFGOQor6au6ID4gZ3XDoDsgIzlBRkEKK+mruyA+IGrDrDsgIzlBRkIKK+mrvCA+IHDDqW5nOyAjOUFGQwor6au9ID4gemh1xIE7ICM5QUZECivpq74gPiBzaMSBbzsgIzlBRkUKK+mrvyA+IHNoxIE7ICM5QUZGCivprIAgPiB0w6w7ICM5QjAwCivprIEgPiBsw6w7ICM5QjAxCivprIIgPiBiw6xuOyAjOUIwMgor6ayDID4gesWNbmc7ICM5QjAzCivprIQgPiB0w6w7ICM5QjA0CivprIUgPiBww6luZzsgIzlCMDUKK+mshiA+IHPFjW5nOyAjOUIwNgor6ayHID4gemjEk25nOyAjOUIwNwor6ayIID4gcXXDoW47ICM5QjA4CivprIkgPiB6xY1uZzsgIzlCMDkKK+msiiA+IHNow7luOyAjOUIwQQor6ayLID4gamnEgW47ICM5QjBCCivprIwgPiBkxa1vOyAjOUIwQwor6ayNID4gaMO6OyAjOUIwRAor6ayOID4gbMOgOyAjOUIwRQor6ayPID4gasSrdTsgIzlCMEYKK+mskCA+IHHDrTsgIzlCMTAKK+mskSA+IGxpw6FuOyAjOUIxMQor6aySID4gemjElW47ICM5QjEyCivprJMgPiBiw6xuOyAjOUIxMwor6ayUID4gcMOpbmc7ICM5QjE0CivprJUgPiBtw7I7ICM5QjE1CivprJYgPiBzxIFuOyAjOUIxNgor6ayXID4gbcOgbjsgIzlCMTcKK+msmCA+IG3DoW47ICM5QjE4CivprJkgPiBzxJNuZzsgIzlCMTkKK+msmiA+IHjFqzsgIzlCMUEKK+msmyA+IGxpw6g7ICM5QjFCCivprJwgPiBxacSBbjsgIzlCMUMKK+msnSA+IHFpxIFuOyAjOUIxRAor6ayeID4gbsOzbmc7ICM5QjFFCivprJ8gPiBodcOhbjsgIzlCMUYKK+msoCA+IGt1w6BpOyAjOUIyMAor6ayhID4gbsOtbmc7ICM5QjIxCivprKIgPiBiw6xuOyAjOUIyMgor6ayjID4gbGnDqDsgIzlCMjMKK+mspCA+IHLDoW5nOyAjOUIyNAor6aylID4gZMOydTsgIzlCMjUKK+mspiA+IGTDsnU7ICM5QjI2CivprKcgPiBuw6BvOyAjOUIyNwor6ayoID4gaMWNbmc7ICM5QjI4CivprKkgPiB4w6w7ICM5QjI5CivprKogPiBkw7J1OyAjOUIyQQor6ayrID4gaMSDbjsgIzlCMkIKK+msrCA+IGTDsnU7ICM5QjJDCivprK0gPiBkw7J1OyAjOUIyRAor6ayuID4gasSrdTsgIzlCMkUKK+msryA+IGNow6BuZzsgIzlCMkYKK+mssCA+IHnDuTsgIzlCMzAKK+mssSA+IHnDuTsgIzlCMzEKK+mssiA+IGzDrDsgIzlCMzIKK+mssyA+IGp1w6BuOyAjOUIzMwor6ay0ID4gZsWtOyAjOUIzNAor6ay1ID4gcWnDoW47ICM5QjM1CivprLYgPiBnxatpOyAjOUIzNgor6ay3ID4gesWNbmc7ICM5QjM3CivprLggPiBsw6x1OyAjOUIzOAor6ay5ID4gZ8WraTsgIzlCMzkKK+msuiA+IHNoxIFuZzsgIzlCM0EKK+msuyA+IHnDuTsgIzlCM0IKK+msvCA+IGfFrWk7ICM5QjNDCivprL0gPiBtw6hpOyAjOUIzRAor6ay+ID4gasOsOyAjOUIzRQor6ay/ID4gccOtOyAjOUIzRgor6a2AID4gamnDqDsgIzlCNDAKK+mtgSA+IGvDumk7ICM5QjQxCivprYIgPiBow7puOyAjOUI0Mgor6a2DID4gYsOhOyAjOUI0Mwor6a2EID4gcMOyOyAjOUI0NAor6a2FID4gbcOoaTsgIzlCNDUKK+mthiA+IHjDuTsgIzlCNDYKK+mthyA+IHnEg247ICM5QjQ3CivprYggPiB4acSBbzsgIzlCNDgKK+mtiSA+IGxpxINuZzsgIzlCNDkKK+mtiiA+IHnDuTsgIzlCNEEKK+mtiyA+IHTDumk7ICM5QjRCCivprYwgPiBxxKs7ICM5QjRDCivprY0gPiB3xINuZzsgIzlCNEQKK+mtjiA+IGxpxINuZzsgIzlCNEUKK+mtjyA+IHfDqGk7ICM5QjRGCivprZAgPiBqacSBbjsgIzlCNTAKK+mtkSA+IGNoxKs7ICM5QjUxCivprZIgPiBwacSBbzsgIzlCNTIKK+mtkyA+IGLDrDsgIzlCNTMKK+mtlCA+IG3DszsgIzlCNTQKK+mtlSA+IGrErTsgIzlCNTUKK+mtliA+IHjFqzsgIzlCNTYKK+mtlyA+IGNoxY91OyAjOUI1Nwor6a2YID4gecSDbjsgIzlCNTgKK+mtmSA+IHpoxINuOyAjOUI1OQor6a2aID4gecO6OyAjOUI1QQor6a2bID4gZMSBbzsgIzlCNUIKK+mtnCA+IHLDqW47ICM5QjVDCivprZ0gPiBqw6w7ICM5QjVECivprZ8gPiBnxY1uZzsgIzlCNUYKK+mtoCA+IHTDum87ICM5QjYwCivpraEgPiBkacOgbzsgIzlCNjEKK+mtoiA+IGrErTsgIzlCNjIKK+mtoyA+IHjDuTsgIzlCNjMKK+mtpCA+IMOpOyAjOUI2NAor6a2lID4gw6g7ICM5QjY1CivpraYgPiBzaMSBOyAjOUI2Ngor6a2nID4gaMOhbmc7ICM5QjY3CivpraggPiB0w7puOyAjOUI2OAor6a2pID4gbcOyOyAjOUI2OQor6a2qID4gamnDqDsgIzlCNkEKK+mtqyA+IHNoxJVuOyAjOUI2Qgor6a2sID4gZsSDbjsgIzlCNkMKK+mtrSA+IHl1w6FuOyAjOUI2RAor6a2uID4gYsOtOyAjOUI2RQor6a2vID4gbMWtOyAjOUI2Rgor6a2wID4gd8OpbjsgIzlCNzAKK+mtsSA+IGjDujsgIzlCNzEKK+mtsiA+IGzDujsgIzlCNzIKK+mtsyA+IHrDoTsgIzlCNzMKK+mttCA+IGbDoW5nOyAjOUI3NAor6a21ID4gZsOpbjsgIzlCNzUKK+mttiA+IG7DoDsgIzlCNzYKK+mttyA+IHnDs3U7ICM5Qjc3CivprbogPiBow6k7ICM5QjdBCivprbsgPiB4acOhOyAjOUI3Qgor6a28ID4gccWrOyAjOUI3Qwor6a29ID4gaMSBbjsgIzlCN0QKK+mtviA+IHDDrTsgIzlCN0UKK+mtvyA+IGzDrW5nOyAjOUI3Rgor6a6AID4gdMO6bzsgIzlCODAKK+mugSA+IGLFjTsgIzlCODEKK+mugiA+IHHDrXU7ICM5QjgyCivproMgPiBww61uZzsgIzlCODMKK+muhCA+IGbDujsgIzlCODQKK+muhSA+IGLDrDsgIzlCODUKK+muhiA+IGrDrDsgIzlCODYKK+muhyA+IHfDqGk7ICM5Qjg3CivproggPiBqxas7ICM5Qjg4CivprokgPiBkacSBbzsgIzlCODkKK+muiiA+IGLDszsgIzlCOEEKK+muiyA+IHnDs3U7ICM5QjhCCivprowgPiBnxa1uOyAjOUI4Qwor6a6NID4gcMSrOyAjOUI4RAor6a6OID4gbmnDoW47ICM5QjhFCivpro8gPiB4xKtuZzsgIzlCOEYKK+mukCA+IHTDoWk7ICM5QjkwCivprpEgPiBiw6BvOyAjOUI5MQor6a6SID4gZsO5OyAjOUI5Mgor6a6TID4gemjEgzsgIzlCOTMKK+mulCA+IGrDuTsgIzlCOTQKK+mulSA+IGfFqzsgIzlCOTUKK+mumSA+IHTDoDsgIzlCOTkKK+mumiA+IGppw6k7ICM5QjlBCivprpsgPiBzaMO5OyAjOUI5Qgor6a6cID4gaMOydTsgIzlCOUMKK+munSA+IHhpxINuZzsgIzlCOUQKK+muniA+IMOpcjsgIzlCOUUKK+munyA+IMOgbjsgIzlCOUYKK+muoCA+IHfDqWk7ICM5QkEwCivprqEgPiB0acSBbzsgIzlCQTEKK+muoiA+IHpoxas7ICM5QkEyCivprqMgPiB5w6xuOyAjOUJBMwor6a6kID4gbGnDqDsgIzlCQTQKK+mupSA+IGzDuW87ICM5QkE1CivprqYgPiB0w7NuZzsgIzlCQTYKK+mupyA+IHnDrTsgIzlCQTcKK+muqCA+IHHDrTsgIzlCQTgKK+muqSA+IGLDrG5nOyAjOUJBOQor6a6qID4gd8SVaTsgIzlCQUEKK+muqyA+IGppxINvOyAjOUJBQgor6a6sID4gYsO5OyAjOUJBQwor6a6tID4gZ8WraTsgIzlCQUQKK+muriA+IHhpxIFuOyAjOUJBRQor6a6vID4gZ8OpOyAjOUJBRgor6a6wID4gaMO6aTsgIzlCQjAKK+musyA+IGvEg287ICM5QkIzCivprrUgPiBkw7pvOyAjOUJCNQor6a62ID4gasWrbjsgIzlCQjYKK+mutyA+IHTDrTsgIzlCQjcKK+muuCA+IG3Eg247ICM5QkI4CivprrkgPiB4acSBbzsgIzlCQjkKK+muuiA+IHrEgzsgIzlCQkEKK+muuyA+IHNoxIE7ICM5QkJCCivprrwgPiBxxKtuOyAjOUJCQwor6a69ID4gecO6OyAjOUJCRAor6a6+ID4gbsSVaTsgIzlCQkUKK+muvyA+IHpow6k7ICM5QkJGCivpr4AgPiBnxa1uOyAjOUJDMAor6a+BID4gZ8SVbmc7ICM5QkMxCivpr4IgPiBzdTsgIzlCQzIKK+mvgyA+IHfDujsgIzlCQzMKK+mvhCA+IHHDrXU7ICM5QkM0Civpr4UgPiB0w61uZzsgIzlCQzUKK+mvhiA+IGbFrTsgIzlCQzYKK+mvhyA+IHfEg247ICM5QkM3Civpr4ggPiB5w7N1OyAjOUJDOAor6a+JID4gbMStOyAjOUJDOQor6a+KID4gc2jEgTsgIzlCQ0EKK+mviyA+IHNoxIE7ICM5QkNCCivpr4wgPiBnw6BvOyAjOUJDQwor6a+NID4gbcOpbmc7ICM5QkNECivpr5IgPiB5xY9uZzsgIzlCRDIKK+mvkyA+IG7DrTsgIzlCRDMKK+mvlCA+IHrEqzsgIzlCRDQKK+mvlSA+IHHDrTsgIzlCRDUKK+mvliA+IHHEq25nOyAjOUJENgor6a+XID4geGnEg25nOyAjOUJENwor6a+YID4gbsSVaTsgIzlCRDgKK+mvmSA+IGNow7puOyAjOUJEOQor6a+aID4gasOsOyAjOUJEQQor6a+bID4gZGnEgW87ICM5QkRCCivpr5wgPiBxacOoOyAjOUJEQwor6a+dID4gZ8O5OyAjOUJERAor6a+eID4gemjFj3U7ICM5QkRFCivpr58gPiBkxY1uZzsgIzlCREYKK+mvoCA+IGzDoWk7ICM5QkUwCivpr6EgPiBmxJNpOyAjOUJFMQor6a+iID4gbsOtOyAjOUJFMgor6a+jID4gecOsOyAjOUJFMwor6a+kID4ga8WrbjsgIzlCRTQKK+mvpSA+IGzDuTsgIzlCRTUKK+mvpiA+IGrDrHU7ICM5QkU2Civpr6cgPiBjaMSBbmc7ICM5QkU3Civpr6ggPiBqxKtuZzsgIzlCRTgKK+mvqSA+IGzDum47ICM5QkU5Civpr6ogPiBsw61uZzsgIzlCRUEKK+mvqyA+IHrFjXU7ICM5QkVCCivpr6wgPiBsw607ICM5QkVDCivpr60gPiBtxJVuZzsgIzlCRUQKK+mvriA+IHrFjW5nOyAjOUJFRQor6a+vID4gemjDrDsgIzlCRUYKK+mvsCA+IG5pw6FuOyAjOUJGMAor6a+0ID4gc2jEqzsgIzlCRjQKK+mvtSA+IHNoxJNuOyAjOUJGNQor6a+2ID4gaMWtbjsgIzlCRjYKK+mvtyA+IHNow6w7ICM5QkY3Civpr7ggPiBow7N1OyAjOUJGOAor6a+5ID4geMSrbmc7ICM5QkY5Civpr7ogPiB6aMWrOyAjOUJGQQor6a+7ID4gbMOgOyAjOUJGQgor6a+8ID4gesWNbmc7ICM5QkZDCivpr70gPiBqw6w7ICM5QkZECivpr74gPiBiacSBbjsgIzlCRkUKK+mvvyA+IGJpxIFuOyAjOUJGRgor6bCAID4gaHXDoG47ICM5QzAwCivpsIEgPiBxdcOhbjsgIzlDMDEKK+mwgiA+IHrDqTsgIzlDMDIKK+mwgyA+IHfEk2k7ICM5QzAzCivpsIQgPiB3xJNpOyAjOUMwNAor6bCFID4gecO6OyAjOUMwNQor6bCGID4gccWrbjsgIzlDMDYKK+mwhyA+IHLDs3U7ICM5QzA3CivpsIggPiBkacOpOyAjOUMwOAor6bCJID4gaHXDoW5nOyAjOUMwOQor6bCKID4gbGnDoG47ICM5QzBBCivpsIsgPiB5xINuOyAjOUMwQgor6bCMID4gccOtdTsgIzlDMEMKK+mwjSA+IHHEq3U7ICM5QzBECivpsI4gPiBqacOgbjsgIzlDMEUKK+mwjyA+IGLDrDsgIzlDMEYKK+mwkCA+IMOoOyAjOUMxMAor6bCRID4gecOhbmc7ICM5QzExCivpsJIgPiBmw7k7ICM5QzEyCivpsJMgPiBzxIFpOyAjOUMxMwor6bCUID4gamnEg247ICM5QzE0CivpsJUgPiB4acOhOyAjOUMxNQor6bCWID4gdMWtbzsgIzlDMTYKK+mwlyA+IGjDujsgIzlDMTcKK+mwmSA+IHLDuW87ICM5QzE5CivpsJsgPiB3xJNuOyAjOUMxQgor6bCcID4gamnEgW47ICM5QzFDCivpsJ0gPiBow6BvOyAjOUMxRAor6bCeID4gd8WrOyAjOUMxRQor6bCfID4gZsOhbmc7ICM5QzFGCivpsKAgPiBzxIFvOyAjOUMyMAor6bChID4gbMOtdTsgIzlDMjEKK+mwoiA+IG3EgzsgIzlDMjIKK+mwoyA+IHNow607ICM5QzIzCivpsKQgPiBzaMSrOyAjOUMyNAor6bClID4gecOtbjsgIzlDMjUKK+mwpiA+IHrMhDsgIzlDMjYKK+mwpyA+IHTDqW5nOyAjOUMyNwor6bCoID4gdMOgOyAjOUMyOAor6bCpID4gecOhbzsgIzlDMjkKK+mwqiA+IGfDqTsgIzlDMkEKK+mwqyA+IHLDs25nOyAjOUMyQgor6bCsID4gcWnDoW47ICM5QzJDCivpsK0gPiBxw607ICM5QzJECivpsK4gPiB3xJNuOyAjOUMyRQor6bCvID4gcsO5bzsgIzlDMkYKK+mwsSA+IGxpw6FuOyAjOUMzMQor6bCyID4gw6FvOyAjOUMzMgor6bCzID4gbMOoOyAjOUMzMwor6bC0ID4gaMWraTsgIzlDMzQKK+mwtSA+IG3ErW47ICM5QzM1CivpsLYgPiBqw6w7ICM5QzM2CivpsLcgPiB0acOhbzsgIzlDMzcKK+mwuCA+IHHFqzsgIzlDMzgKK+mwuSA+IGppxIFuOyAjOUMzOQor6bC6ID4gc8SBbzsgIzlDM0EKK+mwuyA+IG3DoW47ICM5QzNCCivpsLwgPiB4w607ICM5QzNDCivpsL0gPiBxw611OyAjOUMzRAor6bC+ID4gYmnDoG87ICM5QzNFCivpsL8gPiBqxKs7ICM5QzNGCivpsYAgPiBqw6w7ICM5QzQwCivpsYEgPiB6aMO6OyAjOUM0MQor6bGCID4gamnEgW5nOyAjOUM0Mgor6bGDID4gccSrdTsgIzlDNDMKK+mxhCA+IHpodcSBbjsgIzlDNDQKK+mxhSA+IHnDs25nOyAjOUM0NQor6bGGID4gemjEgW5nOyAjOUM0Ngor6bGHID4ga8SBbmc7ICM5QzQ3CivpsYggPiB4dcSVOyAjOUM0OAor6bGJID4gYmnEkzsgIzlDNDkKK+mxiiA+IGp1w6k7ICM5QzRBCivpsYsgPiBxxas7ICM5QzRCCivpsYwgPiB4acOgbmc7ICM5QzRDCivpsY0gPiBixY07ICM5QzRECivpsY4gPiBqacSBbzsgIzlDNEUKK+mxjyA+IHjDum47ICM5QzRGCivpsZAgPiBzw7k7ICM5QzUwCivpsZEgPiBodcOhbmc7ICM5QzUxCivpsZIgPiB6w7luOyAjOUM1Mgor6bGTID4gc2jDoG47ICM5QzUzCivpsZQgPiBzaMOgbjsgIzlDNTQKK+mxlSA+IGbEgW47ICM5QzU1CivpsZYgPiBqdcOpOyAjOUM1Ngor6bGXID4gbMOtbjsgIzlDNTcKK+mxmCA+IHjDum47ICM5QzU4CivpsZkgPiBtacOhbzsgIzlDNTkKK+mxmiA+IHjErTsgIzlDNUEKK+mxnSA+IGbDqG47ICM5QzVECivpsZ4gPiBndcSBbjsgIzlDNUUKK+mxnyA+IGjDsnU7ICM5QzVGCivpsaAgPiBrdcOgaTsgIzlDNjAKK+mxoSA+IHrDqWk7ICM5QzYxCivpsaIgPiBzxIFvOyAjOUM2Mgor6bGjID4gemjEgW47ICM5QzYzCivpsaQgPiBnxINuOyAjOUM2NAor6bGlID4gZ8O5aTsgIzlDNjUKK+mxpiA+IHNow6luZzsgIzlDNjYKK+mxpyA+IGzErTsgIzlDNjcKK+mxqCA+IGNow6FuZzsgIzlDNjgKK+mxrCA+IHLDujsgIzlDNkMKK+mxrSA+IGrDrDsgIzlDNkQKK+mxriA+IHjDuTsgIzlDNkUKK+mxryA+IGjDuW87ICM5QzZGCivpsbEgPiBsw6w7ICM5QzcxCivpsbIgPiBsacOoOyAjOUM3Mgor6bGzID4gbMOsOyAjOUM3Mwor6bG0ID4gbWnDqDsgIzlDNzQKK+mxtSA+IHpoxJNuOyAjOUM3NQor6bG2ID4geGnEg25nOyAjOUM3Ngor6bG3ID4gw6g7ICM5Qzc3CivpsbggPiBsw7o7ICM5Qzc4CivpsbkgPiBndcOgbjsgIzlDNzkKK+mxuiA+IGzDrTsgIzlDN0EKK+mxuyA+IHhpxIFuOyAjOUM3Qgor6bG8ID4gecO6OyAjOUM3Qwor6bG9ID4gZMSBbzsgIzlDN0QKK+mxviA+IGrErTsgIzlDN0UKK+mxvyA+IHnDs3U7ICM5QzdGCivpsoAgPiB0w7puOyAjOUM4MAor6bKBID4gbMWtOyAjOUM4MQor6bKCID4gZsOhbmc7ICM5QzgyCivpsoMgPiBixIE7ICM5QzgzCivpsoQgPiBow6k7ICM5Qzg0CivpsoUgPiBixY07ICM5Qzg1CivpsoYgPiBww61uZzsgIzlDODYKK+myhyA+IG5pw6FuOyAjOUM4Nwor6bKIID4gbMO6OyAjOUM4OAor6bKJID4gecOzdTsgIzlDODkKK+myiiA+IHpoxIM7ICM5QzhBCivpsosgPiBmw7k7ICM5QzhCCivpsowgPiBiw7M7ICM5QzhDCivpso0gPiBiw6BvOyAjOUM4RAor6bKOID4gaMOydTsgIzlDOEUKK+myjyA+IHDEqzsgIzlDOEYKK+mykCA+IHTDoWk7ICM5QzkwCivpspEgPiBnxatpOyAjOUM5MQor6bKSID4gamnDqTsgIzlDOTIKK+mykyA+IGvEg287ICM5QzkzCivpspQgPiB3xJVpOyAjOUM5NAor6bKVID4gw6lyOyAjOUM5NQor6bKWID4gdMOzbmc7ICM5Qzk2CivpspcgPiB6w6k7ICM5Qzk3CivpspggPiBow7J1OyAjOUM5OAor6bKZID4ga3XDoGk7ICM5Qzk5CivpspogPiBqw6w7ICM5QzlBCivpspsgPiBqacSDbzsgIzlDOUIKK+mynCA+IHhpxIFuOyAjOUM5Qwor6bKdID4gesSDOyAjOUM5RAor6bKeID4geGnEg25nOyAjOUM5RQor6bKfID4geMO6bjsgIzlDOUYKK+myoCA+IGfElW5nOyAjOUNBMAor6bKhID4gbMOtOyAjOUNBMQor6bKiID4gbGnDoW47ICM5Q0EyCivpsqMgPiBqacSBbjsgIzlDQTMKK+mypCA+IGzErTsgIzlDQTQKK+mypSA+IHNow607ICM5Q0E1CivpsqYgPiB0acOhbzsgIzlDQTYKK+mypyA+IGfFrW47ICM5Q0E3CivpsqggPiBzaMSBOyAjOUNBOAor6bKpID4gd8SDbjsgIzlDQTkKK+myqiA+IGrFq247ICM5Q0FBCivpsqsgPiBqw6w7ICM5Q0FCCivpsqwgPiB5xY9uZzsgIzlDQUMKK+myrSA+IHHEq25nOyAjOUNBRAor6bKuID4gbMOtbmc7ICM5Q0FFCivpsq8gPiBxw607ICM5Q0FGCivpsrAgPiB6xY11OyAjOUNCMAor6bKxID4gZsSTaTsgIzlDQjEKK+mysiA+IGvFq247ICM5Q0IyCivpsrMgPiBjaMSBbmc7ICM5Q0IzCivpsrQgPiBnw7k7ICM5Q0I0CivpsrUgPiBuw607ICM5Q0I1CivpsrYgPiBuacOhbjsgIzlDQjYKK+mytyA+IGRpxIFvOyAjOUNCNwor6bK4ID4gasSrbmc7ICM5Q0I4CivpsrkgPiBzaMSTbjsgIzlDQjkKK+myuiA+IHNoxKs7ICM5Q0JBCivpsrsgPiB6xKs7ICM5Q0JCCivpsrwgPiBmw6huOyAjOUNCQwor6bK9ID4gZGnDqTsgIzlDQkQKK+myviA+IGLDrDsgIzlDQkUKK+myvyA+IGNow6FuZzsgIzlDQkYKK+mzgCA+IHNow6w7ICM5Q0MwCivps4EgPiB3xJNuOyAjOUNDMQor6bOCID4gd8STaTsgIzlDQzIKK+mzgyA+IHPEgWk7ICM5Q0MzCivps4QgPiDDqDsgIzlDQzQKK+mzhSA+IHHEq3U7ICM5Q0M1Civps4YgPiBmw7k7ICM5Q0M2Civps4cgPiBodcOhbmc7ICM5Q0M3Civps4ggPiBxdcOhbjsgIzlDQzgKK+mziSA+IGppxIFuZzsgIzlDQzkKK+mziiA+IGJpxIFuOyAjOUNDQQor6bOLID4gc8SBbzsgIzlDQ0IKK+mzjCA+IMOhbzsgIzlDQ0MKK+mzjSA+IHHDrTsgIzlDQ0QKK+mzjiA+IHTDoDsgIzlDQ0UKK+mzjyA+IHnDrW47ICM5Q0NGCivps5AgPiB5w6FvOyAjOUNEMAor6bORID4gZsOhbmc7ICM5Q0QxCivps5IgPiBqacSBbjsgIzlDRDIKK+mzkyA+IGzDqDsgIzlDRDMKK+mzlCA+IGJpw6BvOyAjOUNENAor6bOVID4geHXElTsgIzlDRDUKK+mzliA+IGJpxJM7ICM5Q0Q2Civps5cgPiBtw6FuOyAjOUNENwor6bOYID4gbcStbjsgIzlDRDgKK+mzmSA+IHnDs25nOyAjOUNEOQor6bOaID4gd8OoaTsgIzlDREEKK+mzmyA+IHjDrTsgIzlDREIKK+mznCA+IGp1w6k7ICM5Q0RDCivps50gPiBzaMOgbjsgIzlDREQKK+mzniA+IGzDrW47ICM5Q0RFCivps58gPiB6w7luOyAjOUNERgor6bOgID4gaMO5bzsgIzlDRTAKK+mzoSA+IGfEg247ICM5Q0UxCivps6IgPiBsxK07ICM5Q0UyCivps6MgPiB6aMSBbjsgIzlDRTMKK+mzpCA+IGd1xINuOyAjOUNFNAor6bOlID4gbmnEg287ICM5Q0U1Civps6YgPiB5xK07ICM5Q0U2Civps6cgPiBmw7o7ICM5Q0U3Civps6ggPiBsw6w7ICM5Q0U4Civps6kgPiBqxKt1OyAjOUNFOQor6bOqID4gYsWtOyAjOUNFQQor6bOrID4gecOgbjsgIzlDRUIKK+mzrCA+IGbDujsgIzlDRUMKK+mzrSA+IGRpxIFvOyAjOUNFRAor6bOuID4gasSrOyAjOUNFRQor6bOvID4gZsOobmc7ICM5Q0VGCivps7EgPiBnxIFuOyAjOUNGMQor6bOyID4gc2jEqzsgIzlDRjIKK+mzsyA+IGbDqG5nOyAjOUNGMwor6bO0ID4gbcOtbmc7ICM5Q0Y0Civps7UgPiBixINvOyAjOUNGNQor6bO2ID4geXXEgW47ICM5Q0Y2Civps7cgPiB6aMSrOyAjOUNGNwor6bO4ID4gaMO5OyAjOUNGOAor6bO5ID4gccOtbjsgIzlDRjkKK+mzuiA+IGbFqzsgIzlDRkEKK+mzuyA+IGbEk247ICM5Q0ZCCivps7wgPiB3w6luOyAjOUNGQwor6bO9ID4gamnEgW47ICM5Q0ZECivps74gPiBzaMSrOyAjOUNGRQor6bO/ID4gecO5OyAjOUNGRgor6bSAID4gZsWPdTsgIzlEMDAKK+m0gSA+IHlpxIFvOyAjOUQwMQor6bSCID4ganXDqDsgIzlEMDIKK+m0gyA+IGp1w6k7ICM5RDAzCivptIQgPiBwxKs7ICM5RDA0CivptIUgPiBodcSBbjsgIzlEMDUKK+m0hiA+IHpow6huOyAjOUQwNgor6bSHID4gYsSDbzsgIzlEMDcKK+m0iCA+IHnDoG47ICM5RDA4CivptIkgPiB5xIE7ICM5RDA5CivptIogPiB6aMOobmc7ICM5RDBBCivptIsgPiBmxIFuZzsgIzlEMEIKK+m0jCA+IGbDqG5nOyAjOUQwQwor6bSNID4gd8OpbjsgIzlEMEQKK+m0jiA+IMWNdTsgIzlEMEUKK+m0jyA+IHTDqDsgIzlEMEYKK+m0kCA+IGppxIE7ICM5RDEwCivptJEgPiBuw7o7ICM5RDExCivptJIgPiBsw61uZzsgIzlEMTIKK+m0kyA+IG1pw6g7ICM5RDEzCivptJQgPiBmw7o7ICM5RDE0CivptJUgPiB0w7pvOyAjOUQxNQor6bSWID4gd8OpbjsgIzlEMTYKK+m0lyA+IGzDrDsgIzlEMTcKK+m0mCA+IGJpw6BuOyAjOUQxOAor6bSZID4gemjDrDsgIzlEMTkKK+m0miA+IGfEkzsgIzlEMUEKK+m0myA+IHl1xIFuOyAjOUQxQgor6bScID4gesSrOyAjOUQxQwor6bSdID4gccO6OyAjOUQxRAor6bSeID4geGnEgW87ICM5RDFFCivptJ8gPiB6aMSrOyAjOUQxRgor6bSgID4gZMOgbjsgIzlEMjAKK+m0oSA+IGrFqzsgIzlEMjEKK+m0oiA+IHnDsnU7ICM5RDIyCivptKMgPiBnxas7ICM5RDIzCivptKQgPiB6aMWNbmc7ICM5RDI0CivptKUgPiB5w7k7ICM5RDI1CivptKYgPiB5xIFuZzsgIzlEMjYKK+m0pyA+IHLDsm5nOyAjOUQyNwor6bSoID4gecSBOyAjOUQyOAor6bSpID4gdGnElTsgIzlEMjkKK+m0qiA+IHnDuTsgIzlEMkEKK+m0rCA+IHnEq25nOyAjOUQyQwor6bStID4gemjFq2k7ICM5RDJECivptK4gPiB3xas7ICM5RDJFCivptK8gPiDDqXI7ICM5RDJGCivptLAgPiBndcSBOyAjOUQzMAor6bSxID4gw6BpOyAjOUQzMQor6bSyID4gemjEqzsgIzlEMzIKK+m0syA+IHnDoG47ICM5RDMzCivptLQgPiBow6luZzsgIzlEMzQKK+m0tSA+IGppxIFvOyAjOUQzNQor6bS2ID4gasOtOyAjOUQzNgor6bS3ID4gbGnDqDsgIzlEMzcKK+m0uCA+IHpoxas7ICM5RDM4CivptLkgPiByw6luOyAjOUQzOQor6bS6ID4gecOtOyAjOUQzQQor6bS7ID4gaMOzbmc7ICM5RDNCCivptLwgPiBsw7lvOyAjOUQzQwor6bS9ID4gcsO6OyAjOUQzRAor6bS+ID4gbcOzdTsgIzlEM0UKK+m0vyA+IGfEkzsgIzlEM0YKK+m1gCA+IHLDqG47ICM5RDQwCivptYEgPiBqacSBbzsgIzlENDEKK+m1giA+IHjEq3U7ICM5RDQyCivptYMgPiB6aMWNdTsgIzlENDMKK+m1hCA+IHpoxKs7ICM5RDQ0CivptYUgPiBsw7lvOyAjOUQ0NQor6bWJID4gbHXDoW47ICM5RDQ5CivptYogPiBqacOhOyAjOUQ0QQor6bWLID4gasOsOyAjOUQ0Qgor6bWMID4gecO6OyAjOUQ0Qwor6bWNID4gaHXEgW47ICM5RDRECivptY4gPiB0xa1vOyAjOUQ0RQor6bWPID4gYsWrOyAjOUQ0Rgor6bWQID4gd8O6OyAjOUQ1MAor6bWRID4ganXEgW47ICM5RDUxCivptZIgPiB5w7k7ICM5RDUyCivptZMgPiBiw7M7ICM5RDUzCivptZQgPiB4w7luOyAjOUQ1NAor6bWVID4geMO5bjsgIzlENTUKK+m1liA+IGLDrDsgIzlENTYKK+m1lyA+IHjEqzsgIzlENTcKK+m1mCA+IGrDuW47ICM5RDU4CivptZkgPiBqw7o7ICM5RDU5CivptZogPiB0w7o7ICM5RDVBCivptZsgPiBqxKtuZzsgIzlENUIKK+m1nCA+IHTDrTsgIzlENUMKK+m1nSA+IMOpOyAjOUQ1RAor6bWeID4gw6k7ICM5RDVFCivptZ8gPiBrdcOhbmc7ICM5RDVGCivptaAgPiBow7o7ICM5RDYwCivptaEgPiB3xa07ICM5RDYxCivptaIgPiBzaMSTbjsgIzlENjIKK+m1oyA+IGzDoGk7ICM5RDYzCivptaYgPiBsw7k7ICM5RDY2CivptacgPiBww61uZzsgIzlENjcKK+m1qCA+IHNoxas7ICM5RDY4CivptakgPiBmw7o7ICM5RDY5CivptaogPiDEgW47ICM5RDZBCivptasgPiB6aMOgbzsgIzlENkIKK+m1rCA+IHDDqW5nOyAjOUQ2Qwor6bWtID4gccOtbjsgIzlENkQKK+m1riA+IHFpxIFuOyAjOUQ2RQor6bWvID4gYsSTaTsgIzlENkYKK+m1sCA+IGRpxIFvOyAjOUQ3MAor6bWxID4gbMO5OyAjOUQ3MQor6bWyID4gcXXDqDsgIzlENzIKK+m1syA+IGppxIFuOyAjOUQ3Mwor6bW0ID4gasO6OyAjOUQ3NAor6bW1ID4gdMO5OyAjOUQ3NQor6bW2ID4gecSBOyAjOUQ3Ngor6bW3ID4geXXEgW47ICM5RDc3CivptbggPiBxw607ICM5RDc4CivptbkgPiBsw607ICM5RDc5CivptbogPiB5w6g7ICM5RDdBCivptbsgPiB6aMWraTsgIzlEN0IKK+m1vCA+IGvFjW5nOyAjOUQ3Qwor6bW9ID4gemjDuWk7ICM5RDdECivptb4gPiBrxatuOyAjOUQ3RQor6bW/ID4gc2jEk25nOyAjOUQ3Rgor6baAID4gccOtOyAjOUQ4MAor6baBID4gasSrbmc7ICM5RDgxCivptoIgPiB5w6w7ICM5RDgyCivptoMgPiB5w6w7ICM5RDgzCivptoQgPiBqxKtuZzsgIzlEODQKK+m2hSA+IHrEqzsgIzlEODUKK+m2hiA+IGzDoWk7ICM5RDg2CivptocgPiBkxY1uZzsgIzlEODcKK+m2iCA+IHHEqzsgIzlEODgKK+m2iSA+IGNow7puOyAjOUQ4OQor6baKID4gZ8STbmc7ICM5RDhBCivptosgPiBqxas7ICM5RDhCCivptowgPiBxxas7ICM5RDhDCivpto8gPiBqxKs7ICM5RDhGCivptpAgPiBzaMO5OyAjOUQ5MAor6baSID4gY2jDrDsgIzlEOTIKK+m2kyA+IG1pw6FvOyAjOUQ5Mwor6baUID4gcsOzdTsgIzlEOTQKK+m2lSA+IMSBbjsgIzlEOTUKK+m2liA+IHHEq3U7ICM5RDk2CivptpcgPiB0w607ICM5RDk3CivptpggPiBow7o7ICM5RDk4CivptpkgPiB0w607ICM5RDk5CivptpogPiDDqDsgIzlEOUEKK+m2myA+IGppxJM7ICM5RDlCCivptpwgPiBtw6FvOyAjOUQ5Qwor6badID4gZsO6OyAjOUQ5RAor6baeID4gY2jFq247ICM5RDlFCivptp8gPiB0w7o7ICM5RDlGCivptqAgPiB5xINuOyAjOURBMAor6bahID4gaMOpOyAjOURBMQor6baiID4geXXDoW47ICM5REEyCivptqMgPiBwacSBbjsgIzlEQTMKK+m2pCA+IHnDuW47ICM5REE0CivptqUgPiBtw6lpOyAjOURBNQor6bamID4gaMO6OyAjOURBNgor6banID4gecSrbmc7ICM5REE3CivptqggPiBkw7luOyAjOURBOAor6bapID4gbcO5OyAjOURBOQor6baqID4gasO6OyAjOURBQQor6basID4gY8SBbmc7ICM5REFDCivptq0gPiBmxINuZzsgIzlEQUQKK+m2riA+IGfDuTsgIzlEQUUKK+m2ryA+IHnEq25nOyAjOURBRgor6bawID4geXXDoW47ICM5REIwCivptrEgPiB4dcSBbjsgIzlEQjEKK+m2siA+IHfEk25nOyAjOURCMgor6bazID4gc2jEqzsgIzlEQjMKK+m2tCA+IGjDqDsgIzlEQjQKK+m2tSA+IGNow7o7ICM5REI1CivptrYgPiB0w6FuZzsgIzlEQjYKK+m2tyA+IHhpw6A7ICM5REI3CivptrggPiByw7lvOyAjOURCOAor6ba5ID4gbMOtdTsgIzlEQjkKK+m2uiA+IGrDrTsgIzlEQkEKK+m2uyA+IGfDujsgIzlEQkIKK+m2vCA+IGppxIFuOyAjOURCQwor6ba9ID4gemjFrW47ICM5REJECivptr4gPiBow6BuOyAjOURCRQor6ba/ID4gesSrOyAjOURCRgor6beAID4gesSrOyAjOURDMAor6beBID4gbsOsOyAjOURDMQor6beCID4gecOgbzsgIzlEQzIKK+m3gyA+IHnDoG47ICM5REMzCivpt4QgPiBqxKs7ICM5REM0Civpt4UgPiBsw6w7ICM5REM1Civpt4YgPiB0acOhbjsgIzlEQzYKK+m3hyA+IGvDsnU7ICM5REM3Civpt4ggPiB0xKs7ICM5REM4Civpt4kgPiB0xKs7ICM5REM5Civpt4ogPiBuw6w7ICM5RENBCivpt4sgPiB0w7o7ICM5RENCCivpt4wgPiBtxIM7ICM5RENDCivpt40gPiBqacSBbzsgIzlEQ0QKK+m3jiA+IGfEgW87ICM5RENFCivpt48gPiB0acOhbjsgIzlEQ0YKK+m3kCA+IGNow6luOyAjOUREMAor6beRID4gbMOsOyAjOUREMQor6beSID4gemh1xIFuOyAjOUREMgor6beTID4gemjDqDsgIzlERDMKK+m3lCA+IMOhbzsgIzlERDQKK+m3lSA+IHnEg287ICM5REQ1Civpt5YgPiB5xKs7ICM5REQ2Civpt5cgPiDFjXU7ICM5REQ3Civpt5ggPiBjaMOsOyAjOUREOAor6beZID4gemjDrDsgIzlERDkKK+m3miA+IGxpw6FvOyAjOUREQQor6bebID4gcsOzbmc7ICM5RERCCivpt5wgPiBsw7N1OyAjOUREQwor6bedID4gYsOsOyAjOURERAor6beeID4gc2h1xIFuZzsgIzlEREUKK+m3nyA+IHpow7pvOyAjOURERgor6begID4gecO6OyAjOURFMAor6behID4gd8O6OyAjOURFMQor6beiID4ganXDqTsgIzlERTIKK+m3oyA+IHnDrW47ICM5REUzCivpt6QgPiBxdcOhbjsgIzlERTQKK+m3pSA+IHPEqzsgIzlERTUKK+m3piA+IGppxIFvOyAjOURFNgor6benID4gecOsOyAjOURFNwor6beoID4gaHXEgTsgIzlERTgKK+m3qSA+IGLDrDsgIzlERTkKK+m3qiA+IHnEq25nOyAjOURFQQor6berID4gc8O5OyAjOURFQgor6besID4gaHXDoW5nOyAjOURFQwor6betID4gZsOhbjsgIzlERUQKK+m3riA+IGppxIFvOyAjOURFRQor6bevID4gbGnDoW87ICM5REVGCivpt7AgPiB5w6BuOyAjOURGMAor6bexID4ga8SBbzsgIzlERjEKK+m3siA+IGrDrHU7ICM5REYyCivpt7MgPiB4acOhbjsgIzlERjMKK+m3tCA+IHhpw6FuOyAjOURGNAor6be1ID4gdMO6OyAjOURGNQor6be2ID4gbcSDaTsgIzlERjYKK+m3tyA+IHrFq247ICM5REY3Civpt7ggPiB5w7k7ICM5REY4Civpt7kgPiB5xKtuZzsgIzlERjkKK+m3uiA+IGzDuTsgIzlERkEKK+m3uyA+IHR1w6FuOyAjOURGQgor6be8ID4geGnDoW47ICM5REZDCivpt70gPiB4dcOpOyAjOURGRAor6be+ID4gecOsOyAjOURGRQor6be/ID4gcMOsOyAjOURGRgor6biAID4gc2jDujsgIzlFMDAKK+m4gSA+IGzDum87ICM5RTAxCivpuIIgPiBxxKs7ICM5RTAyCivpuIMgPiB5w607ICM5RTAzCivpuIQgPiBqw607ICM5RTA0CivpuIUgPiB6aMOpOyAjOUUwNQor6biGID4gecO6OyAjOUUwNgor6biHID4gemjEgW47ICM5RTA3CivpuIggPiB5w6g7ICM5RTA4CivpuIkgPiB5w6FuZzsgIzlFMDkKK+m4iiA+IHDDrDsgIzlFMEEKK+m4iyA+IG7DrW5nOyAjOUUwQgor6biMID4gaMO5bzsgIzlFMEMKK+m4jSA+IG3DrTsgIzlFMEQKK+m4jiA+IHnEq25nOyAjOUUwRQor6biPID4gbcOpbmc7ICM5RTBGCivpuJAgPiBkw607ICM5RTEwCivpuJEgPiB5dcOoOyAjOUUxMQor6biSID4gecO6OyAjOUUxMgor6biTID4gbMSVaTsgIzlFMTMKK+m4lCA+IGLDoG87ICM5RTE0CivpuJUgPiBsw7o7ICM5RTE1CivpuJYgPiBow6g7ICM5RTE2CivpuJcgPiBsw7NuZzsgIzlFMTcKK+m4mCA+IHNodcSBbmc7ICM5RTE4CivpuJkgPiB5dcOoOyAjOUUxOQor6biaID4gecSrbmc7ICM5RTFBCivpuJsgPiBndcOgbjsgIzlFMUIKK+m4nCA+IHHDujsgIzlFMUMKK+m4nSA+IGzDrTsgIzlFMUQKK+m4niA+IGx1w6FuOyAjOUUxRQor6bifID4gbmnEg287ICM5RTFGCivpuKAgPiBqxKt1OyAjOUUyMAor6bihID4gasSrOyAjOUUyMQor6biiID4geXXEgW47ICM5RTIyCivpuKMgPiBtw61uZzsgIzlFMjMKK+m4pCA+IHNoxKs7ICM5RTI0CivpuKUgPiDFjXU7ICM5RTI1CivpuKYgPiB5xIE7ICM5RTI2CivpuKcgPiBjxIFuZzsgIzlFMjcKK+m4qCA+IGLEg287ICM5RTI4CivpuKkgPiB6aMOobjsgIzlFMjkKK+m4qiA+IGfFqzsgIzlFMkEKK+m4qyA+IGTFjW5nOyAjOUUyQgor6bisID4gbMO6OyAjOUUyQwor6bitID4gecSBOyAjOUUyRAor6biuID4geGnEgW87ICM5RTJFCivpuK8gPiB5xIFuZzsgIzlFMkYKK+m4sCA+IGzDrW5nOyAjOUUzMAor6bixID4gemjEqzsgIzlFMzEKK+m4siA+IHHDujsgIzlFMzIKK+m4syA+IHl1xIFuOyAjOUUzMwor6bi0ID4geHXDqTsgIzlFMzQKK+m4tSA+IHTDum87ICM5RTM1CivpuLYgPiBzxKs7ICM5RTM2CivpuLcgPiB6aMOsOyAjOUUzNwor6bi4ID4gw6lyOyAjOUUzOAor6bi5ID4gZ3XEgTsgIzlFMzkKK+m4uiA+IHjEq3U7ICM5RTNBCivpuLsgPiBow6luZzsgIzlFM0IKK+m4vCA+IHpoxY11OyAjOUUzQwor6bi9ID4gZ8STOyAjOUUzRAor6bi+ID4gbHXDoW47ICM5RTNFCivpuL8gPiBow7NuZzsgIzlFM0YKK+m5gCA+IHfDujsgIzlFNDAKK+m5gSA+IGLDszsgIzlFNDEKK+m5giA+IGzDrTsgIzlFNDIKK+m5gyA+IGp1xIFuOyAjOUU0Mwor6bmEID4gaMO6OyAjOUU0NAor6bmFID4gw6k7ICM5RTQ1CivpuYYgPiB5w7k7ICM5RTQ2CivpuYcgPiB4acOhbjsgIzlFNDcKK+m5iCA+IHTDrTsgIzlFNDgKK+m5iSA+IHfFrTsgIzlFNDkKK+m5iiA+IHF1w6g7ICM5RTRBCivpuYsgPiBtacOhbzsgIzlFNEIKK+m5jCA+IMSBbjsgIzlFNEMKK+m5jSA+IGvFq247ICM5RTRECivpuY4gPiBixJNpOyAjOUU0RQor6bmPID4gcMOpbmc7ICM5RTRGCivpuZAgPiBxacSBbjsgIzlFNTAKK+m5kSA+IGNow7puOyAjOUU1MQor6bmSID4gZ8STbmc7ICM5RTUyCivpuZMgPiB5dcSBbjsgIzlFNTMKK+m5lCA+IHPDuTsgIzlFNTQKK+m5lSA+IGjDujsgIzlFNTUKK+m5liA+IGjDqTsgIzlFNTYKK+m5lyA+IMOoOyAjOUU1Nwor6bmYID4gZ8O6OyAjOUU1OAor6bmZID4gccSrdTsgIzlFNTkKK+m5miA+IHrEqzsgIzlFNUEKK+m5myA+IG3DqWk7ICM5RTVCCivpuZwgPiBtw7k7ICM5RTVDCivpuZ0gPiBuw6w7ICM5RTVECivpuZ4gPiB5w6BvOyAjOUU1RQor6bmfID4gd8STbmc7ICM5RTVGCivpuaAgPiBsw611OyAjOUU2MAor6bmhID4gasOtOyAjOUU2MQor6bmiID4gbsOsOyAjOUU2Mgor6bmjID4gamnEgW47ICM5RTYzCivpuaQgPiBow6g7ICM5RTY0CivpuaUgPiB5xKs7ICM5RTY1CivpuaYgPiB5xKtuZzsgIzlFNjYKK+m5pyA+IHpow6g7ICM5RTY3CivpuaggPiBsacOhbzsgIzlFNjgKK+m5qSA+IGxpw6FvOyAjOUU2OQor6bmqID4gamnEgW87ICM5RTZBCivpuasgPiBqw6x1OyAjOUU2Qgor6bmsID4gecO5OyAjOUU2Qwor6bmtID4gbMO5OyAjOUU2RAor6bmuID4geHXDoW47ICM5RTZFCivpua8gPiB6aMSBbjsgIzlFNkYKK+m5sCA+IHnEq25nOyAjOUU3MAor6bmxID4gaMO5bzsgIzlFNzEKK+m5siA+IG3DqW5nOyAjOUU3Mgor6bmzID4gZ3XDoG47ICM5RTczCivpubQgPiBzaHXEgW5nOyAjOUU3NAor6bm1ID4gbMWtOyAjOUU3NQor6bm2ID4gasSrbjsgIzlFNzYKK+m5tyA+IGzDrW5nOyAjOUU3Nwor6bm4ID4gamnEg247ICM5RTc4CivpubkgPiB4acOhbjsgIzlFNzkKK+m5uiA+IGPDum87ICM5RTdBCivpubsgPiBqacSDbjsgIzlFN0IKK+m5vCA+IGppxINuOyAjOUU3Qwor6bm9ID4gecOhbjsgIzlFN0QKK+m5viA+IGPDum87ICM5RTdFCivpub8gPiBsw7k7ICM5RTdGCivpuoAgPiB5xY11OyAjOUU4MAor6bqBID4gY8WrOyAjOUU4MQor6bqCID4gasStOyAjOUU4Mgor6bqDID4gYmnEgW87ICM5RTgzCivpuoQgPiBjxas7ICM5RTg0CivpuoUgPiBiacSBbzsgIzlFODUKK+m6hiA+IHpow7k7ICM5RTg2CivpuocgPiBqxatuOyAjOUU4Nwor6bqIID4gemjFrTsgIzlFODgKK+m6iSA+IGppxIFuOyAjOUU4OQor6bqKID4gbcOtOyAjOUU4QQor6bqLID4gbcOtOyAjOUU4Qgor6bqMID4gd8O6OyAjOUU4Qwor6bqNID4gbMOtdTsgIzlFOEQKK+m6jiA+IGNow6luOyAjOUU4RQor6bqPID4gasWrbjsgIzlFOEYKK+m6kCA+IGzDrW47ICM5RTkwCivpupEgPiBuw607ICM5RTkxCivpupIgPiBxw607ICM5RTkyCivpupMgPiBsw7k7ICM5RTkzCivpupQgPiBqw6x1OyAjOUU5NAor6bqVID4gasWrbjsgIzlFOTUKK+m6liA+IGrEq25nOyAjOUU5Ngor6bqXID4gbMOsOyAjOUU5Nwor6bqYID4geGnEgW5nOyAjOUU5OAor6bqZID4gecOhbjsgIzlFOTkKK+m6miA+IGppxIE7ICM5RTlBCivpupsgPiBtw607ICM5RTlCCivpupwgPiBsw6w7ICM5RTlDCivpup0gPiBzaMOoOyAjOUU5RAor6bqeID4gemjEgW5nOyAjOUU5RQor6bqfID4gbMOtbjsgIzlFOUYKK+m6oCA+IGrEq25nOyAjOUVBMAor6bqhID4gasSrOyAjOUVBMQor6bqiID4gbMOtbmc7ICM5RUEyCivpuqMgPiB5w6FuOyAjOUVBMwor6bqkID4gY8WrOyAjOUVBNAor6bqlID4gbcOgaTsgIzlFQTUKK+m6piA+IG3DoGk7ICM5RUE2CivpuqcgPiBnxJM7ICM5RUE3CivpuqggPiBjaMSDbzsgIzlFQTgKK+m6qSA+IGbFqzsgIzlFQTkKK+m6qiA+IG1pxINuOyAjOUVBQQor6bqrID4gbWnEg247ICM5RUFCCivpuqwgPiBmxas7ICM5RUFDCivpuq0gPiBww6BvOyAjOUVBRAor6bquID4gccO5OyAjOUVBRQor6bqvID4gccO6OyAjOUVBRgor6bqwID4gbcOzdTsgIzlFQjAKK+m6sSA+IGbFqzsgIzlFQjEKK+m6siA+IHhpw6BuOyAjOUVCMgor6bqzID4gbMOhaTsgIzlFQjMKK+m6tCA+IHHDujsgIzlFQjQKK+m6tSA+IG1pw6BuOyAjOUVCNQor6bq3ID4gZsSTbmc7ICM5RUI3CivpurggPiBmxas7ICM5RUI4CivpurkgPiBxw7o7ICM5RUI5CivpurogPiBtacOgbjsgIzlFQkEKK+m6uyA+IG3DoTsgIzlFQkIKK+m6vCA+IG1vOyAjOUVCQwor6bq9ID4gbW87ICM5RUJECivpur4gPiBoxatpOyAjOUVCRQor6buAID4gesWNdTsgIzlFQzAKK+m7gSA+IG7Ek247ICM5RUMxCivpu4IgPiBmw6luOyAjOUVDMgor6buDID4gaHXDoW5nOyAjOUVDMwor6buEID4gaHXDoW5nOyAjOUVDNAor6buFID4gasSrbjsgIzlFQzUKK+m7hiA+IGd1xIFuZzsgIzlFQzYKK+m7hyA+IHRpxIFuOyAjOUVDNwor6buIID4gdMWPdTsgIzlFQzgKK+m7iSA+IGjDqW5nOyAjOUVDOQor6buKID4geMSrOyAjOUVDQQor6buLID4ga3XEg25nOyAjOUVDQgor6buMID4gaMOpbmc7ICM5RUNDCivpu40gPiBzaMWtOyAjOUVDRAor6buOID4gbMOtOyAjOUVDRQor6buPID4gbmnDoW47ICM5RUNGCivpu5AgPiBjaMSrOyAjOUVEMAor6buRID4gaMSTaTsgIzlFRDEKK+m7kiA+IGjEk2k7ICM5RUQyCivpu5MgPiB5w6w7ICM5RUQzCivpu5QgPiBxacOhbjsgIzlFRDQKK+m7lSA+IGTEgW47ICM5RUQ1Civpu5YgPiB4w6w7ICM5RUQ2Civpu5cgPiB0dcSDbjsgIzlFRDcKK+m7mCA+IG3DsjsgIzlFRDgKK+m7mSA+IG3DsjsgIzlFRDkKK+m7miA+IHFpw6FuOyAjOUVEQQor6bubID4gZMOgaTsgIzlFREIKK+m7nCA+IGNow7k7ICM5RURDCivpu50gPiB5xY91OyAjOUVERAor6bueID4gZGnEg247ICM5RURFCivpu58gPiB5xKs7ICM5RURGCivpu6AgPiB4acOhOyAjOUVFMAor6buhID4gecSDbjsgIzlFRTEKK+m7oiA+IHHFqzsgIzlFRTIKK+m7oyA+IG3ElWk7ICM5RUUzCivpu6QgPiB5xINuOyAjOUVFNAor6bulID4gasSrbmc7ICM5RUU1Civpu6YgPiB5w7k7ICM5RUU2Civpu6cgPiBsw607ICM5RUU3Civpu6ggPiBkxINuZzsgIzlFRTgKK+m7qSA+IGTDujsgIzlFRTkKK+m7qiA+IGPEg247ICM5RUVBCivpu6sgPiB5xKtuOyAjOUVFQgor6busID4gw6BuOyAjOUVFQwor6butID4gecSBbjsgIzlFRUQKK+m7riA+IHTEg247ICM5RUVFCivpu68gPiDDoG47ICM5RUVGCivpu7AgPiB6aMSVbjsgIzlFRjAKK+m7sSA+IGTDoGk7ICM5RUYxCivpu7IgPiBjxINuOyAjOUVGMgor6buzID4gecSrOyAjOUVGMwor6bu0ID4gbcOpaTsgIzlFRjQKK+m7tSA+IGTEg247ICM5RUY1Civpu7YgPiB5xINuOyAjOUVGNgor6bu3ID4gZMO6OyAjOUVGNwor6bu4ID4gbMO6OyAjOUVGOAor6bu5ID4gemjErTsgIzlFRjkKK+m7uiA+IGbElW47ICM5RUZBCivpu7sgPiBmw7k7ICM5RUZCCivpu7wgPiBmxa07ICM5RUZDCivpu70gPiBtxK1uOyAjOUVGRAor6bu+ID4gbcStbjsgIzlFRkUKK+m7vyA+IHl1w6FuOyAjOUVGRgor6byAID4gY8O5OyAjOUYwMAor6byBID4gccO5OyAjOUYwMQor6byCID4gY2jDoW87ICM5RjAyCivpvIMgPiB3xIE7ICM5RjAzCivpvIQgPiB6aMWrOyAjOUYwNAor6byFID4gemjEqzsgIzlGMDUKK+m8hiA+IG3DoW5nOyAjOUYwNgor6byHID4gw6FvOyAjOUYwNwor6byIID4gYmnEkzsgIzlGMDgKK+m8iSA+IHTDum87ICM5RjA5CivpvIogPiBiw6w7ICM5RjBBCivpvIsgPiB5dcOhbjsgIzlGMEIKK+m8jCA+IGNow6FvOyAjOUYwQwor6byNID4gdMO6bzsgIzlGMEQKK+m8jiA+IGTErW5nOyAjOUYwRQor6byPID4gbcOsOyAjOUYwRgor6byQID4gbsOgaTsgIzlGMTAKK+m8kSA+IGTErW5nOyAjOUYxMQor6bySID4gesSrOyAjOUYxMgor6byTID4gZ8WtOyAjOUYxMwor6byUID4gZ8WtOyAjOUYxNAor6byVID4gZMWNbmc7ICM5RjE1CivpvJYgPiBmw6luOyAjOUYxNgor6byXID4gdMOhbzsgIzlGMTcKK+m8mCA+IHl1xIFuOyAjOUYxOAor6byZID4gcMOtOyAjOUYxOQor6byaID4gY2jEgW5nOyAjOUYxQQor6bybID4gZ8SBbzsgIzlGMUIKK+m8nCA+IHHDrDsgIzlGMUMKK+m8nSA+IHl1xIFuOyAjOUYxRAor6byeID4gdMSBbmc7ICM5RjFFCivpvJ8gPiB0xJNuZzsgIzlGMUYKK+m8oCA+IHNoxa07ICM5RjIwCivpvKEgPiBzaMWtOyAjOUYyMQor6byiID4gZsOpbjsgIzlGMjIKK+m8oyA+IGbDqGk7ICM5RjIzCivpvKQgPiB3w6luOyAjOUYyNAor6bylID4gYsOhOyAjOUYyNQor6bymID4gZGnEgW87ICM5RjI2CivpvKcgPiB0w7pvOyAjOUYyNwor6byoID4gdMOzbmc7ICM5RjI4CivpvKkgPiBxw7o7ICM5RjI5CivpvKogPiBzaMSTbmc7ICM5RjJBCivpvKsgPiBzaMOtOyAjOUYyQgor6bysID4gecOydTsgIzlGMkMKK+m8rSA+IHNow607ICM5RjJECivpvK4gPiB0w61uZzsgIzlGMkUKK+m8ryA+IHfDujsgIzlGMkYKK+m8sCA+IG5pw6BuOyAjOUYzMAor6byxID4gasSrbmc7ICM5RjMxCivpvLIgPiBow7puOyAjOUYzMgor6byzID4gasO6OyAjOUYzMwor6by0ID4gecSDbjsgIzlGMzQKK+m8tSA+IHTDujsgIzlGMzUKK+m8tiA+IHTDrTsgIzlGMzYKK+m8tyA+IHjEqzsgIzlGMzcKK+m8uCA+IHhpxINuOyAjOUYzOAor6by5ID4gecSDbjsgIzlGMzkKK+m8uiA+IGzDqWk7ICM5RjNBCivpvLsgPiBiw607ICM5RjNCCivpvLwgPiB5xINvOyAjOUYzQwor6by9ID4gccOtdTsgIzlGM0QKK+m8viA+IGjEgW47ICM5RjNFCivpvL8gPiB3xas7ICM5RjNGCivpvYAgPiB3w7k7ICM5RjQwCivpvYEgPiBow7N1OyAjOUY0MQor6b2CID4geMOsOyAjOUY0Mgor6b2DID4gZ8OpOyAjOUY0Mwor6b2EID4gemjEgTsgIzlGNDQKK+m9hSA+IHjDrHU7ICM5RjQ1CivpvYYgPiB3w6huZzsgIzlGNDYKK+m9hyA+IHpoxIE7ICM5RjQ3CivpvYggPiBuw7NuZzsgIzlGNDgKK+m9iSA+IG7DoG5nOyAjOUY0OQor6b2KID4gccOtOyAjOUY0QQor6b2LID4gemjEgWk7ICM5RjRCCivpvYwgPiBqw6w7ICM5RjRDCivpvY0gPiB6xKs7ICM5RjRECivpvY4gPiBqxKs7ICM5RjRFCivpvY8gPiBqxKs7ICM5RjRGCivpvZAgPiBxw607ICM5RjUwCivpvZEgPiBqxKs7ICM5RjUxCivpvZIgPiBjaMStOyAjOUY1Mgor6b2TID4gY2jDqG47ICM5RjUzCivpvZQgPiBjaMOobjsgIzlGNTQKK+m9lSA+IGjDqTsgIzlGNTUKK+m9liA+IHnDoTsgIzlGNTYKK+m9lyA+IGvElW47ICM5RjU3CivpvZggPiB4acOoOyAjOUY1OAor6b2ZID4gcMOhbzsgIzlGNTkKK+m9miA+IGPDuW87ICM5RjVBCivpvZsgPiBzaMOsOyAjOUY1Qgor6b2cID4gesSrOyAjOUY1Qwor6b2dID4gY2jEqzsgIzlGNUQKK+m9niA+IG5pw6BuOyAjOUY1RQor6b2fID4gasWtOyAjOUY1Rgor6b2gID4gdGnDoW87ICM5RjYwCivpvaEgPiBsw61uZzsgIzlGNjEKK+m9oiA+IGzDrW5nOyAjOUY2Mgor6b2jID4gY2jFqzsgIzlGNjMKK+m9pCA+IHF1w6FuOyAjOUY2NAor6b2lID4geGnDqDsgIzlGNjUKK+m9piA+IGvElW47ICM5RjY2CivpvacgPiBuacOoOyAjOUY2Nwor6b2oID4gasOsdTsgIzlGNjgKK+m9qSA+IHnEg287ICM5RjY5CivpvaogPiBjaMO5bzsgIzlGNkEKK+m9qyA+IGvFrW47ICM5RjZCCivpvawgPiB5xa07ICM5RjZDCivpva0gPiBjaMWtOyAjOUY2RAor6b2uID4gecStOyAjOUY2RQor6b2vID4gbsOtOyAjOUY2Rgor6b2wID4gY8O5bzsgIzlGNzAKK+m9sSA+IHrFjXU7ICM5RjcxCivpvbIgPiBxxa07ICM5RjcyCivpvbMgPiBuxJVuOyAjOUY3Mwor6b20ID4geGnEg247ICM5Rjc0CivpvbUgPiDDs3U7ICM5Rjc1CivpvbYgPiDDqDsgIzlGNzYKK+m9tyA+IHfDsjsgIzlGNzcKK+m9uCA+IHnDrDsgIzlGNzgKK+m9uSA+IGNoxatvOyAjOUY3OQor6b26ID4gesWNdTsgIzlGN0EKK+m9uyA+IGRpxIFuOyAjOUY3Qgor6b28ID4gY2jFrTsgIzlGN0MKK+m9vSA+IGrDrG47ICM5RjdECivpvb4gPiB5w6A7ICM5RjdFCivpvb8gPiBjaMStOyAjOUY3Rgor6b6AID4gY2jDqG47ICM5RjgwCivpvoEgPiBow6k7ICM5RjgxCivpvoIgPiBrxJVuOyAjOUY4Mgor6b6DID4gasWtOyAjOUY4Mwor6b6EID4gbMOtbmc7ICM5Rjg0CivpvoUgPiBww6FvOyAjOUY4NQor6b6GID4gdGnDoW87ICM5Rjg2CivpvocgPiB6xKs7ICM5Rjg3CivpvoggPiBrxJVuOyAjOUY4OAor6b6JID4gecWtOyAjOUY4OQor6b6KID4gY2jDuW87ICM5RjhBCivpvosgPiBxxa07ICM5RjhCCivpvowgPiB3w7I7ICM5RjhDCivpvo0gPiBsw7NuZzsgIzlGOEQKK+m+jiA+IHDDoW5nOyAjOUY4RQor6b6PID4gZ8WNbmc7ICM5RjhGCivpvpAgPiBww6FuZzsgIzlGOTAKK+m+kSA+IHnEg247ICM5RjkxCivpvpIgPiBsw7NuZzsgIzlGOTIKK+m+kyA+IGzDs25nOyAjOUY5Mwor6b6UID4gZ8WNbmc7ICM5Rjk0CivpvpUgPiBrxIFuOyAjOUY5NQor6b6WID4gdMOgOyAjOUY5Ngor6b6XID4gbMOtbmc7ICM5Rjk3CivpvpggPiB0w6A7ICM5Rjk4CivpvpkgPiBsw7NuZzsgIzlGOTkKK+m+miA+IGfFjW5nOyAjOUY5QQor6b6bID4ga8SBbjsgIzlGOUIKK+m+nCA+IGfFq2k7ICM5RjlDCivpvp0gPiBxxKt1OyAjOUY5RAor6b6eID4gYmnEkzsgIzlGOUUKK+m+nyA+IGfFq2k7ICM5RjlGCivpvqAgPiB5dcOoOyAjOUZBMAor6b6hID4gY2jDuWk7ICM5RkExCivpvqIgPiBow6k7ICM5RkEyCivpvqMgPiBqdcOpOyAjOUZBMwor6b6kID4geGnDqTsgIzlGQTQKK+m+pSA+IHnDuTsgIzlGQTUKK++kjiA+IGzDoDsgI0Y5MEUKK++ojCA+IHfDuTsgI0ZBMEMKK++ojSA+IGjDuW87ICNGQTBECivvqJAgPiB6aMWPbmc7ICNGQTEwCivvqJIgPiBxw61uZzsgI0ZBMTIKK++olSA+IHjEqzsgI0ZBMTUKK++oliA+IHpoxas7ICNGQTE2CivvqJcgPiB5w6w7ICNGQTE3CivvqJggPiBsxK07ICNGQTE4CivvqJkgPiBzaMOpbjsgI0ZBMTkKK++omiA+IHhpw6FuZzsgI0ZBMUEKK++omyA+IGbDujsgI0ZBMUIKK++onCA+IGrDrG5nOyAjRkExQwor76idID4gasSrbmc7ICNGQTFECivvqJ4gPiB5xa07ICNGQTFFCivvqKIgPiB6aMWrOyAjRkEyMgor76ilID4gecOsOyAjRkEyNQor76imID4gZMWrOyAjRkEyNgor76iqID4gZsOgbjsgI0ZBMkEKK++oqyA+IHPDrDsgI0ZBMkIKK++orCA+IGd1xINuOyAjRkEyQwor76itID4gaMOoOyAjRkEyRAorCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9FbmdsaXNoLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfRW5nbGlzaC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmUzNTNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfRW5nbGlzaC50eHQKQEAgLTAsMCArMSw2MzY2IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGF0ZTogVHVlIEphbiAyMyAxMjo0MjowMiAyMDAxCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBLYW5qaS1FbmdsaXNoCisKK+S4gT4nW21hbGUgYWR1bHRdJzsKK+S4gz4nW3NldmVuXSc7CivkuIc+J1t0ZW4gdGhvdXNhbmRdJzsKK+S4iD4nW3VuaXQgb2YgbGVuZ3RoIGVxdWFsIDMuMyBtZXRlcnNdJzsKK+S4iT4nW3RocmVlXSc7CivkuIo+J1t0b3BdJzsKK+S4iz4nW3VuZGVyXSc7CivkuI0+J1tub10nOwor5LiOPidbYW5kXSc7CivkuJA+J1tiZWdnYXJdJzsKK+S4kT4nW2Nsb3duXSc7CivkuJQ+J1ttb3Jlb3Zlcl0nOwor5LiVPidbZ3JlYXRdJzsKK+S4lj4nW2dlbmVyYXRpb25dJzsKK+S4lz4nW3RoaXJ0eV0nOwor5LiYPidbaGlsbF0nOwor5LiZPidbdGhpcmQgb2YgaGVhdmVubHkgc3RlbXNdJzsKK+S4nj4nW2Fzc2lzdF0nOwor5LihPidbdHdvXSc7CivkuKY+J1tlcXVhbCB0b10nOwor5LiqPidbbnVtZXJhcnkgYWRqdW5jdF0nOwor5LitPidbY2VudHJhbF0nOwor5LixPidbY2hpbGQnJ3MgaGFpcnN0eWxlIGJvdW5kIGluIHR3byB0dWZ0c10nOwor5LiyPidbc3RyaW5nXSc7CivkuLY+J1tkb3RdJzsKK+S4uD4nW3NtYWxsIHJvdW5kIG9iamVjdF0nOwor5Li5PidbY2lubmFiYXIgKG5hdGl2ZSBIZ1MpXSc7CivkuLs+J1ttYXN0ZXJdJzsKK+S4vD4nW2Jvd2wgb2YgZm9vZF0nOwor5Li/PidbbGluZV0nOwor5LmCPidbZ292ZXJuXSc7CivkuYM+J1t0aGVuXSc7CivkuYU+J1tsb25nIHRpbWUgKGFnbyldJzsKK+S5iz4nWycncyAobWFya3MgcHJlY2VkaW5nIHBocmFzZSBhcyBtb2RpZmllciBvZiBmb2xsb3dpbmcgcGhyYXNlKV0nOwor5LmNPidbc3VkZGVubHldJzsKK+S5jj4nW2ludGVycm9nYXRpdmUgb3IgZXhjbGFtYXRvcnkgZmluYWwgcGFydGljbGVdJzsKK+S5jz4nW2xhY2tdJzsKK+S5lT4nW3RpZ2VyXSc7CivkuZY+J1tyZWJlbF0nOwor5LmXPidbcmlkZV0nOwor5LmYPidbcmlkZV0nOwor5LmZPidbc2Vjb25kIGhlYXZlbicncyBzdGVtXSc7CivkuZ0+J1tuaW5lXSc7CivkuZ4+J1tiZWddJzsKK+S5nz4nW2Fsc29dJzsKK+S5oj4nW2xpZF0nOwor5LmxPidbY29uZnVzaW9uXSc7CivkubM+J1ticmVhc3RdJzsKK+S5vj4nW2RyeV0nOwor5LqAPidbdHVydGxlIG9yIHRvcnRvaXNlXSc7CivkuoI+J1tjb25mdXNpb25dJzsKK+S6hT4nW2hvb2tdJzsKK+S6hj4nW3RvIGZpbmlzaF0nOwor5LqIPidbSV0nOwor5LqJPidbZGlzcHV0ZV0nOwor5LqKPidbYWZmYWlyXSc7Civkuos+J1thZmZhaXJdJzsKK+S6jD4nW3R3b10nOwor5LqOPidbaW5dJzsKK+S6kT4nW3NheV0nOwor5LqSPidbbXV0dWFsbHldJzsKK+S6lD4nW2ZpdmVdJzsKK+S6lT4nW3dlbGxdJzsKK+S6mD4nW2V4dGVuZCBhY3Jvc3NdJzsKK+S6mT4nW2V4dGVuZCBhY3Jvc3NdJzsKK+S6mz4nW2xpdHRsZV0nOwor5LqcPidbYXNpYV0nOwor5LqePidbYXNpYV0nOwor5LqfPidbdXJnZW50bHldJzsKK+S6oD4nW2hlYWRdJzsKK+S6oT4nW2RlYXRoXSc7CivkuqI+J1toaWdoXSc7CivkuqQ+J1ttaXhdJzsKK+S6pT4nW2xhc3Qgb2YgMTIgZWFydGggYnJhbmNoZXNdJzsKK+S6pj4nW2Fsc29dJzsKK+S6qD4nW3Ntb290aGx5XSc7Civkuqs+J1tlbmpveV0nOwor5LqsPidbY2FwaXRhbCBjaXR5XSc7Civkuq0+J1twYXZpbGlvbl0nOwor5LquPidbYnJpZ2h0XSc7CivkurA+J1tjYXBpdGFsIGNpdHldJzsKK+S6sz4nW25hbWUgb2YgZGlzdHJpY3QgaW4gQW5odWldJzsKK+S6tj4nW3NpbmNlcmVdJzsKK+S6uj4nW21hbl0nOwor5LuAPidbZmlsZSBvZiB0ZW4gc29sZGllcnNdJzsKK+S7gT4nW2h1bWFuZW5lc3NdJzsKK+S7gj4nW3N1cnBsdXMgb3IgZXhjZXNzXSc7Civku4Q+J1tzbGFudGluZ10nOwor5LuGPidbZmFsbCBmb3J3YXJkXSc7Civku4c+J1tlbmVteV0nOwor5LuKPidbbm93XSc7Civku4s+J1tmb3JlcnVubmVyXSc7Civku40+J1t5ZXRdJzsKK+S7jj4nW2Zyb21dJzsKK+S7jz4nW2J1ZGRoYV0nOwor5LuUPidbc21hbGwgdGhpbmddJzsKK+S7lT4nW29mZmljaWFsXSc7Civku5Y+J1tvdGhlcl0nOwor5LuXPidbcmVseSB1cG9uXSc7Civku5g+J1tnaXZlXSc7Civku5k+J1tUYW9pc3Qgc3VwZXItYmVpbmddJzsKK+S7nT4nW3RvZ2V0aGVyXSc7Civku54+J1thbmNpZW50IHVuaXQgb2YgbWVhc3VyZSAoOCBmZWV0KV0nOwor5LufPidbb25lIHRob3VzYW5kXSc7Civku6M+J1tyZXBsYWNlXSc7Civku6Q+J1tjb21tYW5kXSc7Civku6U+J1tieSBtZWFucyBvZl0nOwor5LutPidbYW5jaWVudCB1bml0IG9mIG1lYXN1cmUgKDggZmVldCldJzsKK+S7rj4nW2ZhbHNlaG9vZF0nOwor5LuwPidbcmFpc2UgdGhlIGhlYWQgdG8gbG9va10nOwor5LuyPidbbWlkZGxlIGJyb3RoZXJdJzsKK+S7tj4nW251bWVyYXJ5IGFkanVuY3QgZm9yIGFydGljbGVdJzsKK+S7tz4nW3ByaWNlXSc7Civku7s+J1t0cnVzdCB0b10nOwor5LyBPidbcGxhbiBhIHByb2plY3RdJzsKK+S8iT4nW2NvbXBhcmVdJzsKK+S8ij4nW3RoaXJkIHBlcnNvbiBwcm9ub3VuXSc7CivkvI0+J1tmaXZlXSc7CivkvI4+J1t0YWxlbnRdJzsKK+S8jz4nW2Nyb3VjaF0nOwor5LyQPidbY3V0IGRvd25dJzsKK+S8kT4nW3Jlc3RdJzsKK+S8mj4nW2Fzc2VtYmxlXSc7CivkvJw+J1tkZXB1dHldJzsKK+S8nT4nW3N1bW1vbl0nOwor5LyvPidbb2xkZXIgYnJvdGhlcl0nOwor5LywPidbbWVyY2hhbnRdJzsKK+S8tD4nW2NvbXBhbmlvbl0nOwor5Ly2PidbbG9uZWx5XSc7CivkvLg+J1tleHRlbmRdJzsKK+S8uj4nW3NlcnZlXSc7CivkvLw+J1tyZXNlbWJsZV0nOwor5Ly9PidbdHJhbnNjcmlwdGlvbiBvZiBzYW5za3JpdCBnaGEgaW4gYnVkZGhpc3QgdGV4dHMgKCfDq23DosOmJyBcInNhbWdoYVwiKV0nOwor5L2DPidbdGVuYW50IGZhcm1lcl0nOwor5L2GPidbb25seV0nOwor5L2HPidbd2FpdF0nOwor5L2NPidbdGhyb25lXSc7CivkvY4+J1tsb3ddJzsKK+S9jz4nW3Jlc2lkZV0nOwor5L2QPidbYXNzaXN0XSc7CivkvZE+J1toZWxwXSc7CivkvZM+J1tib2R5XSc7CivkvZU+J1t3aGF0XSc7CivkvZc+J1tvdGhlcl0nOwor5L2ZPidbSV0nOwor5L2aPidbaW5kdWxnZSBpbiBwbGVhc3VyZXNdJzsKK+S9mz4nW2J1ZGRoYSAoY29udHJhY3Rpb24gb2YgTUMgJ2JoacOqdGRoYScpXSc7CivkvZw+J1ttYWtlXSc7CivkvZ0+J1tyaWNrZXRzXSc7CivkvZ4+J1tmbGF0dGVyeV0nOwor5L2pPidbYmVsdCBvcm5hbWVudF0nOwor5L2vPidbcHJldGVuZF0nOwor5L2wPidbaHVuZHJlZF0nOwor5L2zPidbZ29vZF0nOwor5L21PidbY29tYmluZV0nOwor5L22Pidbc3Ryb25nXSc7Civkvbs+J1tmcml2b2xvdXNdJzsKK+S9vD4nW2JlYXV0aWZ1bF0nOwor5L2/PidbY2F1c2VdJzsKK+S+gz4nW3VwcmlnaHQgYW5kIHN0cm9uZ10nOwor5L6GPidbY29tZV0nOwor5L6IPidbbHV4dXJpb3VzXSc7Civkvos+J1twcmVjZWRlbnRdJzsKK+S+jT4nW3NlcnZlXSc7Civkvo8+J1tzbWFsbF0nOwor5L6RPidbaGVscF0nOwor5L6WPidbbG9naWNhbCByZWFzb25zXSc7Civkvpg+J1tkaXNhcHBvaW50ZWRdJzsKK+S+mz4nW3N1cHBseV0nOwor5L6dPidbcmVseSBvbl0nOwor5L6gPidbY2hpdmFscm91cyBwZXJzb25dJzsKK+S+oT4nW3ByaWNlXSc7Civkvqs+J1tmbGF0dGVyeV0nOwor5L6tPidbY29tcGxldGVdJzsKK+S+rj4nW2luc3VsdF0nOwor5L6vPidbbWFycXVpc10nOwor5L61PidbaW52YWRlXSc7CivkvrY+J1tjb21wYW5pb25dJzsKK+S+vz4nW2NvbnZlbmllbmNlXSc7Civkv4I+J1tiaW5kXSc7Civkv4M+J1t1cmdlXSc7Civkv4Q+J1tzdWRkZW4obHkpXSc7Civkv4o+J1t0YWxlbnRlZF0nOwor5L+OPidbY2hvcHBpbmcgYm9hcmQgb3IgYmxvY2tdJzsKK+S/kD4nW3Ntb290aF0nOwor5L+RPidbd29vZGVuIGZpZ3VyZSBidXJpZWQgd2l0aCBkZWFkXSc7Civkv5Q+J1tsaWtlXSc7Civkv5c+J1tzb2NpYWwgY3VzdG9tc10nOwor5L+YPidbcHJpc29uZXIgb2Ygd2FyXSc7Civkv5o+J1tydXN0aWNdJzsKK+S/mz4nW21ha2UgZWZmb3J0XSc7Civkv50+J1twcm90ZWN0XSc7Civkv58+J1t3YWl0IGZvcl0nOwor5L+hPidbdHJ1c3RdJzsKK+S/oz4nW2JpZ10nOworIyLkv6M+J1tiaWddJyIsCivkv6U+J1tyaWNrc2hhd10nOwor5L+uPidbc3R1ZHldJzsKK+S/rz4nW2JvdyBkb3duXSc7Civkv7M+J1thY3Rvcl0nOwor5L+1PidbZGl2aWRlXSc7Civkv7Y+J1tzdGFydF0nOwor5L+4Pidbd2FnZXNdJzsKK+S/uj4nW3BlcnNvbmFsIHByb25vdW5dJzsKK+S/vj4nW3NvIHRoYXRdJzsKK+WAhT4nW2RlcHV0eV0nOwor5YCGPidbY2xldmVyXSc7CivlgIk+J1tncmFuYXJ5XSc7CivlgIs+J1tudW1lcmFyeSBhZGp1bmN0XSc7CivlgI0+J1t0aW1lc10nOwor5YCPPidbaGFzdGlseV0nOwor5YCRPidbYWRqdW5jdCBwcm9ub3VuIGluZGljYXRlIHBsdXJhbF0nOwor5YCSPidbZmFsbCBvdmVyXSc7CivlgJQ+J1tzdHViYm9ybl0nOwor5YCWPidbbHVja3ldJzsKK+WAmT4nW3dhaXRdJzsKK+WAmj4nW3JlbHkgb25dJzsKK+WAnz4nW2JvcnJvd10nOwor5YChPidbZ3VpZGVdJzsKK+WAoz4nW2ltaXRhdGVdJzsKK+WApD4nW3ByaWNlXSc7CivlgKU+J1tib29yaXNoXSc7CivlgKY+J1tiZSB0aXJlZCBvZl0nOwor5YCoPidbYXJyb2dhbnRdJzsKK+WAqT4nW2JlYXV0aWZ1bF0nOwor5YCqPidbZmVlYmxlXSc7CivlgKs+J1tub3JtYWwgaHVtYW4gcmVsYXRpb25zaGlwc10nOwor5YCsPidbbm90aWNlYWJsZV0nOwor5YCtPidbZHdhcmZdJzsKK+WAtj4nW2FsbF0nOwor5YC5PidbdGVtcGVyYXRlXSc7CivlgYM+J1tjZWFzZV0nOwor5YGHPidbZmFsc2Vob29kXSc7CivlgYg+J1ticmF2ZV0nOwor5YGJPidbZ3JlYXRdJzsKK+WBjz4nW2luY2xpbmVkIG9uZSBzaWRlXSc7CivlgZA+J1tmYWxzZV0nOwor5YGVPidbdG9nZXRoZXJdJzsKK+WBlj4nW3JpcCB1cF0nOwor5YGaPidbd29ya10nOwor5YGcPidbc3RvcF0nOwor5YGlPidbc3Ryb25nXSc7Civlgaw+J1t1cmdlbnRdJzsKK+WBsj4nW3RhbGVudGVkXSc7CivlgbQ+J1tzaWRlXSc7CivlgbU+J1tzcHldJzsKK+WBtj4nW2FjY2lkZW50YWxseV0nOwor5YG4PidbdG8gc3RlYWxdJzsKK+WBvT4nW2ZhbHNlXSc7CivlgoA+J1tncmVhdF0nOwor5YKFPidbdHV0b3JdJzsKK+WCjT4nW2J5IHNpZGUgb2ZdJzsKK+WCkT4nW2hlcm9dJzsKK+WCmD4nW3VtYnJlbGxhXSc7Civlgpk+J1twcmVwYXJlXSc7Civlgpo+J1tpbWl0YXRlXSc7Civlgqw+J1twcmVzc10nOwor5YKtPidbaGlyZV0nOwor5YKyPidbcHJvdWRdJzsKK+WCsz4nW3N1bW1vbl0nOwor5YK0PidbaHVtcGJhY2tdJzsKK+WCtT4nW2RlYnRdJzsKK+WCtz4nW3dvdW5kXSc7Civlgr4+J1t1cHNldF0nOwor5YOCPidbaHVtcGJhY2tdJzsKK+WDhT4nW29ubHldJzsKK+WDiT4nW2FsbF0nOwor5YOKPidbVGFvaXN0IHN1cGVyLWJlaW5nXSc7Civlg40+J1tsYWJvcl0nOwor5YOPPidbcGljdHVyZV0nOwor5YORPidbc29qb3Vybl0nOwor5YOVPidbc2xhdmVdJzsKK+WDlj4nW2pveV0nOwor5YOaPidbY29tcGFuaW9uXSc7Civlg54+J1tmYWxzZV0nOwor5YOjPidbYXNzdW1lXSc7Civlg6U+J1tiZSBsdWNreV0nOwor5YOnPidbYnVkZGhpc3QgcHJpZXN0XSc7Civlg60+J1thc3N1bWVdJzsKK+WDrj4nW3BhZ2VdJzsKK+WDtT4nW3N0aWZmIGFuZCBtb3Rpb25sZXNzXSc7Civlg7k+J1twcmljZV0nOwor5YO7Pidbb3V0LW9mLXRoZS13YXldJzsKK+WEgD4nW2NlcmVtb255XSc7CivlhIE+J1tvdXRzdGFuZGluZ10nOwor5YSCPidbSV0nOwor5YSEPidbaHVuZHJlZCBtaWxsaW9uXSc7CivlhIk+J1t0ZW1wZXJhdGVdJzsKK+WEkj4nW2NvbmZ1Y2lhbiBzY2hvbGFyXSc7CivlhJQ+J1tjb21wYW5pb25dJzsKK+WElT4nW2EgY29tcGFueV0nOworIyLlhJU+J1thIGNvbXBhbnldJyIsCivlhJg+J1t1dG1vc3RdJzsKKyMi5YSYPidbdXRtb3N0XSciLAor5YSfPidbcmVwYXldJzsKK+WEoT4nW3B1cHBldF0nOwor5YSqPidbc3VwZXJpb3JdJzsKK+WEsj4nW3NhdmUgbW9uZXldJzsKK+WEtz4nW3Nwb3VzZV0nOwor5YS6PidbcmljaF0nOwor5YS7PidbaWZdJzsKK+WEvD4nW2dyYXZlXSc7CivlhL8+J1tzb25dJzsKK+WFgD4nW3RvIGN1dCBvZmYgdGhlIGZlZXRdJzsKK+WFgT4nW3RvIGdyYW50XSc7CivlhYM+J1tmaXJzdF0nOwor5YWEPidbZWxkZXIgYnJvdGhlcl0nOwor5YWFPidbZmlsbF0nOwor5YWGPidbb21lbl0nOwor5YWHPidbYXRyb2Npb3VzXSc7CivlhYg+J1tmaXJzdF0nOwor5YWJPidbbGlnaHRdJzsKK+WFiz4nW2dyYW1dJzsKK+WFjD4nW2Nhc2hdJzsKK+WFjT4nW3NwYXJlXSc7CivlhY4+J1tyYWJiaXRdJzsKK+WFkD4nW3Nvbl0nOwor5YWSPidbc29uXSc7CivlhZQ+J1tyYWJiaXRdJzsKK+WFmj4nW3BvbGl0aWNhbCBwYXJ0eV0nOwor5YWcPidbcG91Y2hdJzsKK+WFoj4nW2ZlYXJmdWxdJzsKK+WFpT4nW2VudGVyXSc7Civlhag+J1ttYWludGFpbl0nOwor5YWpPidbdHdvXSc7Civlhao+J1tzdXJuYW1lXSc7Civlhas+J1tlaWdodF0nOwor5YWsPidbZmFpcl0nOwor5YWtPidbbnVtYmVyIHNpeF0nOwor5YWuPidbZXhjbGFtYXRvcnkgcGFydGljbGVdJzsKK+WFsT4nW3RvZ2V0aGVyIHdpdGhdJzsKK+WFtT4nW3NvbGRpZXJdJzsKK+WFtj4nW2hpc10nOwor5YW3PidbdG9vbF0nOwor5YW4PidbbGF3XSc7Civlhbw+J1t1bml0ZV0nOwor5YaAPidbaG9wZSBmb3JdJzsKK+WGgj4nW3dpZGVdJzsKK+WGhT4nW2luc2lkZV0nOwor5YaGPidbeWVuXSc7Civlhok+J1t0ZW5kZXJdJzsKK+WGij4nW2Jvb2tdJzsKK+WGjD4nW2Jvb2tdJzsKK+WGjT4nW2FnYWluXSc7Civlho8+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivlhpA+J1tyaXNrXSc7CivlhpE+J1toZWxtZXRdJzsKK+WGkj4nW3Jpc2tdJzsKK+WGkz4nW2Egc2VjbHVkZWQgcGxhY2VdJzsKK+WGlT4nW2Nyb3duXSc7CivlhpY+J1tjb3Zlcl0nOwor5YaXPidbZXhjZXNzaXZlXSc7Civlhpk+J1t3cml0ZV0nOwor5YagPidbY2FwXSc7CivlhqI+J1tidXJpYWwgbW91bmRdJzsKK+WGpD4nW2dyaWV2YW5jZV0nOwor5YalPidbZGFya10nOwor5YamPidbYmFuZGl0c10nOwor5YaoPidbYWJ1bmRhbnRdJzsKK+WGqT4nW3dyaXRlXSc7Civlhqo+J1tjb3Zlci1jbG90aF0nOwor5YarPidbaWNlXSc7Civlhqw+J1t3aW50ZXJdJzsKK+WGsD4nW2ljZV0nOwor5YaxPidbZnJlZXppbmddJzsKK+WGsj4nW3NvYXJdJzsKK+WGsz4nW2RlY2lkZV0nOwor5Ya0PidbZnJlZXppbmddJzsKK+WGtT4nW2NvbmRpdGlvbl0nOwor5Ya2Pidbc21lbHRdJzsKK+WGtz4nW2NvbGRdJzsKK+WGvT4nW2NvbGQgYW5kIHJhd10nOwor5YeEPidbYml0dGVyIGNvbGRdJzsKK+WHhT4nW2RyaWVkIHVwXSc7Civlh4Y+J1thcHByb3ZlXSc7Civlh4k+J1tjb29sXSc7Civlh4s+J1tiZSB3aXRoZXJlZF0nOwor5YeMPidbcHVyZV0nOwor5YeNPidbZnJlZXplXSc7Civlh5Y+J1tydWxlXSc7Civlh5s+J1t0byBzaGl2ZXIgd2l0aCBjb2xkIG9yIGZlYXJdJzsKK+WHnD4nW3NoaXZlciB3aXRoIGNvbGQgb3IgZmVhcl0nOwor5YedPidbY29hZ3VsYXRlXSc7Civlh6A+J1tzbWFsbCB0YWJsZV0nOwor5YehPidbYWxsXSc7Civlh6Y+J1twbGFjZV0nOwor5YenPidba2l0ZV0nOwor5YepPidbd2ludHJ5IHdpbmRdJzsKK+WHqj4nW2NhbG1dJzsKK+WHrT4nW2xlYW4gb25dJzsKK+WHsD4nW2ZlbWFsZSBwaG9lbml4XSc7Civlh7E+J1t0cml1bXBoYW50XSc7Civlh7U+J1tyZWNlcHRhY2xlXSc7Civlh7Y+J1tjdWxwcml0XSc7Civlh7g+J1twcm90cnVkZV0nOwor5Ye5PidbY29uY2F2ZV0nOwor5Ye6PidbZ28gb3V0XSc7Civlh70+J1tjb3JyZXNwb25kZW5jZV0nOwor5Ye+PidbY29ycmVzcG9uZGVuY2VdJzsKK+WIgD4nW2tuaWZlXSc7CivliIM+J1tlZGdlZCB0b29sXSc7CivliIQ+J1tlZGdlZCB0b29sXSc7CivliIY+J1tkaXZpZGVdJzsKK+WIhz4nW2N1dF0nOwor5YiIPidbY3V0IG9mZl0nOwor5YiKPidbcHVibGljYXRpb25dJzsKK+WIiz4nW3B1YmxpY2F0aW9uXSc7CivliI4+J1tiZWhlYWRdJzsKK+WIkT4nW3B1bmlzaG1lbnRdJzsKK+WIlD4nW3Njb29wIG91dF0nOwor5YiXPidbbGluZV0nOwor5YidPidbYmVnaW5uaW5nXSc7CivliKQ+J1tqdWRnZV0nOwor5YilPidbc2VwYXJhdGVdJzsKK+WIpz4nW2Rpc2FzdGVyXSc7CivliKk+J1tnYWluc10nOwor5YiqPidbdG8gY3V0XSc7CivliK4+J1tzaGF2ZV0nOwor5YiwPidbZ28gdG9dJzsKK+WIsz4nW2N1dCBvdXRdJzsKK+WItj4nW3N5c3RlbV0nOwor5Yi3PidbYnJ1c2hdJzsKK+WIuD4nW2NlcnRpZmljYXRlXSc7CivliLk+J1t0ZW1wbGVdJzsKK+WIuj4nW3N0YWJdJzsKK+WIuz4nW2NhcnZlXSc7CivliYM+J1tzaGF2ZV0nOwor5YmEPidbY3V0IHRocm9hdF0nOwor5YmHPidbcnVsZV0nOwor5YmKPidbc2NyYXBlIG9mZl0nOwor5YmLPidbc3ViZHVlXSc7CivliYw+J1tzbGFzaF0nOwor5YmNPidbaW4gZnJvbnRdJzsKK+WJjz4nW2VzdGFibGlzaF0nOwor5YmUPidbcGljayBvdXRdJzsKK+WJlj4nW3NwbGl0IGluIHR3b10nOwor5YmbPidbaGFyZF0nOwor5YmePidbY2FydmluZyBvciBlbmdyYXZpbmcga25pZmVdJzsKK+WJoz4nW3N3b3JkXSc7CivliaQ+J1ttZWRpY2luYWwgcHJlcGFyYXRpb25dJzsKK+WJpT4nW3BlZWxdJzsKK+WJqT4nW2xlZnRvdmVyc10nOwor5YmqPidbc2Npc3NvcnNdJzsKK+WJrz4nW2Fzc2lzdF0nOwor5YmwPidbbGVmdG92ZXJzXSc7CivlibE+J1tzd29yZF0nOwor5YmyPidbY3V0XSc7CivlibM+J1ticmllZiBub3RlXSc7CivlibQ+J1tzaGFycGVuXSc7CivlibU+J1tlc3RhYmxpc2hdJzsKK+WJvT4nW3JvYl0nOwor5Ym/PidbZGVzdHJveV0nOwor5YqDPidbZGl2aWRlXSc7Civlioc+J1t0aGVhdHJpY2FsIHBsYXlzXSc7Civliog+J1tjdXQgYXBhcnRdJzsKK+WKiT4nW3N1cm5hbWVdJzsKK+WKjT4nW3N3b3JkXSc7CivlipE+J1ttZWRpY2luYWwgcHJlcGFyYXRpb25dJzsKK+WKkj4nW3N3b3JkXSc7CivlipQ+J1tzd29yZF0nOwor5YqbPidbcG93ZXJdJzsKK+WKnz4nW2FjaGlldmVtZW50XSc7CivliqA+J1thZGQgdG9dJzsKK+WKoz4nW2JhZF0nOwor5YqpPidbaGVscF0nOwor5YqqPidbZXhlcnRdJzsKK+WKqz4nW3Rha2UgYnkgZm9yY2VdJzsKK+WKrD4nW2JlIGRpbGlnZW50XSc7Civliq0+J1tlbmNvdXJhZ2VdJzsKK+WKsT4nW3N0cml2ZV0nOwor5Yq0PidbbGFib3JdJzsKK+WKtT4nW2NlcnRpZmljYXRlXSc7Civlirk+J1tlZmZpY2FjaW91c10nOwor5Yq8PidbYmUgZGlzY3JlZXRdJzsKK+WKvj4nW2V4YW1pbmUgaW50b10nOwor5YuBPidbc3Ryb25nXSc7Civli4M+J1tzdWRkZW5seV0nOwor5YuFPidbaW1wZXJpYWwgZGVncmVlXSc7Civli4c+J1ticmF2ZV0nOwor5YuJPidbZW5kZWF2b3JdJzsKK+WLjT4nW3N0cm9uZ10nOwor5YuSPidbc3RyYW5nbGVdJzsKK+WLlT4nW21vdmVdJzsKK+WLlz4nW2Vuam9pbl0nOwor5YuYPidbaW52ZXN0aWdhdGVdJzsKK+WLmT4nW2FmZmFpcnNdJzsKK+WLnT4nW3ZpY3RvcnldJzsKK+WLnj4nW2xhYm9yXSc7Civli58+J1tsZXZ5XSc7Civli6A+J1tqb2luIGZvcmNlc10nOwor5YuiPidbcG93ZXJdJzsKK+WLoz4nW2FjaGlldmVtZW50c10nOwor5YukPidbaW5kdXN0cmlvdXNdJzsKK+WLpj4nW2Rlc3Ryb3ldJzsKK+WLpz4nW3JlY29tbWVuZF0nOwor5YuyPidbbWVyaXRvcmlvdXMgZGVlZF0nOwor5YuzPidbbWVyaXRvcmlvdXMgZGVlZF0nOwor5Yu1Pidbc3RyaXZlXSc7Civli7g+J1tyZWNvbW1lbmRdJzsKK+WLuT4nW3dyYXBdJzsKK+WLuj4nW3Nwb29uXSc7Civli74+J1tob29rXSc7Civli78+J1ttdXN0IG5vdF0nOwor5YyBPidbSmFwYW5lc2UgdW5pdCBvZiB3ZWlnaHQgKDEvMTAwMCBvZiBhIGthbildJzsKK+WMgj4nW2ZyYWdyYW5jZV0nOwor5YyFPidbd3JhcF0nOwor5YyGPidbaGFzdGlseV0nOwor5YyIPidbYnJlYXN0XSc7CivljI0+J1tjcmF3bF0nOwor5YyPPidbZ291cmRdJzsKK+WMkD4nW2ZhbGwgcHJvc3RyYXRlXSc7CivljJU+J1tzcG9vbl0nOwor5YyWPidbY2hhbmdlXSc7CivljJc+J1tub3J0aF0nOwor5YyZPidbc3Bvb25dJzsKK+WMmj4nW2JveF0nOwor5YydPidbZnVsbCBjaXJjbGVdJzsKK+WMoD4nW2NyYWZ0c21hbl0nOwor5YyhPidbY29ycmVjdF0nOwor5YyjPidbc21hbGwgYm94XSc7CivljKo+J1tiYW5kaXRzXSc7CivljK8+J1tjb25jb3Vyc2VdJzsKK+WMsT4nW3RvIGxhY2tdJzsKK+WMsz4nW2xhZGllcyB0b2lsZXQgY2FzZSB3aXRoIG1pcnJvcl0nOwor5Yy4PidbYm94XSc7CivljLk+J1tib2x0IG9mIGNsb3RoXSc7CivljLo+J1thcmVhXSc7CivljLs+J1tjdXJlXSc7CivljL8+J1toaWRlXSc7CivljYA+J1thcmVhXSc7CivljYE+J1t0ZW5dJzsKK+WNgz4nW3Rob3VzYW5kXSc7CivljYU+J1t0aGlydHldJzsKK+WNhj4nW3NvbGRpZXJdJzsKK+WNhz4nW2FyaXNlXSc7CivljYg+J1tub29uXSc7CivljYk+J1tnZW5lcmFsIHRlcm0gZm9yIHBsYW50c10nOwor5Y2KPidbaGFsZl0nOwor5Y2NPidbc3dhc3Rpa2EgLSBmb3VydGggb2YgYXVzcGljaW91c10nOwor5Y2RPidbaHVtYmxlXSc7CivljZI+J1tzb2xkaWVyXSc7CivljZM+J1twcm9mb3VuZF0nOwor5Y2UPidbYmUgdW5pdGVkXSc7CivljZc+J1tzb3V0aF0nOworIyLljZc+J1tzb3V0aF0nIiwKK+WNmj4nW2dhbWJsZV0nOwor5Y2cPidbZm9ydHVuZSB0ZWxsaW5nXSc7CivljZ4+J1tiZSBpbXBhdGllbnRdJzsKK+WNoD4nW2RpdmluZV0nOwor5Y2mPidbZm9ydHVuZSB0ZWxsaW5nXSc7Civljak+J1tzZWFsXSc7Civlja4+J1ttZWFzdXJpbmcgY3VwXSc7Civlja8+J1s0dGggb2YgRWFydGggQnJhbmNoZXNdJzsKK+WNsD4nW3ByaW50XSc7CivljbE+J1tkYW5nZXJvdXNdJzsKK+WNsz4nW3Byb21wdGx5XSc7CivljbQ+J1tzdGlsbF0nOwor5Y21PidbZWdnXSc7Civljbc+J1tzY3JvbGxdJzsKK+WNuD4nW2xheSBkb3duXSc7Civljbs+J1tzdGlsbF0nOwor5Y2/Pidbbm9ibGVdJzsKK+WOgj4nW2ZhY3RvcnldJzsKK+WOhD4nW2FkdmVyc2l0eV0nOwor5Y6WPidbYnVsa3ldJzsKK+WOmD4nW3Rob3VzYW5kdGggcGFydCBvZiB0YWVsXSc7Civljpo+J1t0aGlja10nOwor5Y6fPidbc291cmNlXSc7CivljqA+J1ttaW5nbGUgd2l0aF0nOwor5Y6lPidbcGVyc29uYWwgcHJvbm91biAtIGhlXSc7CivljqY+J1tiaWcgYnVpbGRpbmddJzsKK+WOqD4nW2tpdGNoZW5dJzsKK+WOqT4nW3N0YWJsZV0nOwor5Y6tPidbZGlzbGlrZV0nOwor5Y6uPidbc2VydmFudF0nOwor5Y6wPidbZmFjdG9yeV0nOwor5Y6zPidbc3RyaWN0XSc7CivljrY+J1twcml2YXRlXSc7Civljrs+J1tnbyBhd2F5XSc7Civlj4I+J1t0YWtlIHBhcnQgaW5dJzsKK+WPgz4nW3Rha2UgcGFydCBpbl0nOwor5Y+IPidbYW5kXSc7Civlj4k+J1tjcm90Y2hdJzsKK+WPij4nW2V4dGVuZF0nOwor5Y+LPidbZnJpZW5kXSc7Civlj4w+J1tzZXQgb2YgdHdvXSc7Civlj40+J1tyZXZlcnNlXSc7Civlj44+J1tnYXRoZXIgdG9nZXRoZXJdJzsKK+WPlD4nW2ZhdGhlcicncyB5b3VuZ2VyIGJyb3RoZXJdJzsKK+WPlj4nW3Rha2VdJzsKK+WPlz4nW3JlY2VpdmVdJzsKK+WPmT4nW2V4cHJlc3NdJzsKK+WPmz4nW3JlYmVsXSc7Civlj58+J1tvbGQgbWFuXSc7Civlj6E+J1thc3R1dGVdJzsKK+WPoj4nW2J1c2hdJzsKK+WPoz4nW21vdXRoXSc7Civlj6Q+J1tvbGRdJzsKK+WPpT4nW3NlbnRlbmNlXSc7Civlj6g+J1t0YWxrYXRpdmVdJzsKK+WPqT4nW2tub2NrXSc7Civlj6o+J1tvbmx5XSc7Civlj6s+J1tjcnldJzsKK+WPrD4nW2ltcGVyaWFsIGRlY3JlZV0nOwor5Y+tPidbdHJ1bXBldF0nOwor5Y+uPidbZXhob3J0IG9yIGVuam9pbiByZXBlYXRlZGx5XSc7Civlj68+J1ttYXldJzsKK+WPsD4nW3BsYXRmb3JtXSc7Civlj7E+J1tzY29sZF0nOwor5Y+yPidbaGlzdG9yeV0nOwor5Y+zPidbcmlnaHRdJzsKK+WPtj4nW3RvIGhhcm1vbml6ZV0nOwor5Y+3PidbbWFya10nOwor5Y+4PidbdGFrZSBjaGFyZ2Ugb2ZdJzsKKyMi5Y+5Pidbc2lnaF0nIiwKK+WQgT4nW2ludGVyamVjdGlvbiBcIkFsYXMhXCJdJzsKK+WQgz4nW2VhdF0nOwor5ZCEPidbZWFjaF0nOwor5ZCIPidbY29tYmluZV0nOwor5ZCJPidbbHVja3ldJzsKK+WQij4nW2NvbmRvbGVdJzsKK+WQiz4nW2luY2hdJzsKK+WQjD4nW3NhbWVdJzsKK+WQjT4nW25hbWVdJzsKK+WQjj4nW3F1ZWVuXSc7CivlkI8+J1tnb3Zlcm5tZW50IG9mZmljaWFsXSc7CivlkJA+J1t2b21pdF0nOwor5ZCRPidbdG93YXJkXSc7CivlkJs+J1tzb3ZlcmVpZ25dJzsKK+WQnT4nW3N0aW5neV0nOwor5ZCfPidbc2luZ10nOwor5ZCgPidbYmFya10nOwor5ZCmPidbbm90XSc7CivlkKk+J1tvcmRlcl0nOwor5ZCrPidbaG9sZCBpbiBtb3V0aF0nOwor5ZCsPidbaGVhcl0nOwor5ZCtPidbdGhyb2F0XSc7CivlkK4+J1tzdWNrIHdpdGggbW91dGhdJzsKK+WQtj4nW3JhaXNlIHZvaWNlXSc7CivlkLg+J1tpbmhhbGVdJzsKK+WQuT4nW2Jsb3ddJzsKK+WQuz4nW2tpc3NdJzsKK+WQvD4nW3JvYXJdJzsKK+WQvT4nW1wiT01cIl0nOwor5ZC+PidbaV0nOwor5ZGAPidbcGFydGljbGUgdXNlZCBleHByZXNzIHN1cnByaXNlXSc7CivlkYI+J1tzdXJuYW1lXSc7CivlkYY+J1tkdWxsXSc7CivlkYg+J1tzdWJtaXRdJzsKK+WRiT4nW29uZSBvZiB3YXJyaW5nIHN0YXRlc10nOwor5ZGKPidbdGVsbF0nOwor5ZGOPidbZm9vdF0nOwor5ZGRPidbc3dhbGxvd10nOworIyLlkZw+J1tzb3VuZCBvZiBjcnlpbmddJyIsCivlkag+J1t6aG91IGR5bmFzdHldJzsKK+WRqj4nW2N1cnNlXSc7CisjIuWRsD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5ZGxPidbd2FpbF0nOwor5ZGzPidbdGFzdGVdJzsKK+WRtT4nW3Njb2xkXSc7CivlkbY+J1t0YWxrYXRpdmVdJzsKK+WRtz4nW3N1Y2tdJzsKK+WRuz4nW2dyb2FuXSc7Civlkbw+J1ticmVhdGhlIHNpZ2hdJzsKK+WRvT4nW2xpZmVdJzsKK+WSgD4nW3N1Y2tdJzsKK+WShD4nW25vaXNlIG9mIHJhZ2VdJzsKK+WShj4nW3JvYXJdJzsKK+WSiz4nW3doeT8gaG93PyB3aGF0P10nOwor5ZKMPidbaGFybW9ueV0nOwor5ZKOPidbZmF1bHRdJzsKK+WSjz4nW3Npbmcgc29uZyBvciBwb2VtXSc7CivlkpA+J1tpbnN0cnVjdF0nOwor5ZKSPidbY3Vyc2VdJzsKK+WSoj4nW3NvdW5kXSc7CivlkqQ+J1tzY29sZF0nOwor5ZKlPidbc291bmQgb2YgY2F0XSc7Civlkqg+J1tpbnF1aXJlXSc7Civlkqs+J1tmb290IG1lYXN1cmUgb2YgWmhvdSBkeW5hc3R5XSc7Civlkqw+J1tiaXRlXSc7Civlkq8+J1tmaW5hbCBwYXJ0aWNsZV0nOwor5ZKyPidbc21pbGVdJzsKK+WSsz4nW2NvdWdoXSc7Civlkrg+J1t0b2dldGhlcl0nOwor5ZK8PidbY2hhdF0nOwor5ZK9PidbdGhyb2F0XSc7Civlkr4+J1thIG5vaXNlXSc7Civlk4A+J1tzYWRdJzsKK+WTgT4nW2FydGljbGVdJzsKK+WTgj4nW3NtaWxlXSc7Civlk4Q+J1tjb2F4XSc7Civlk4c+J1t2b21pdF0nOwor5ZOIPidbc291bmQgb2YgbGF1Z2h0ZXJdJzsKK+WTiT4nW2ZpbmFsIGV4Y2xhbWF0b3J5IHBhcnRpY2xlXSc7CisjIuWTlz4nW3J1c2hpbmcgc291bmRdJyIsCivlk6E+J1ttZW1iZXJdJzsKK+WToj4nW3N5bGxhYmxlXSc7Civlk6U+J1tlbGRlciBicm90aGVyXSc7Civlk6Y+J1tvaD8gcmVhbGx5PyBpcyB0aGF0IHNvP10nOwor5ZOoPidbd2hpc3RsZV0nOwor5ZOpPidbbWlsZV0nOwor5ZOtPidbd2VlcF0nOwor5ZOuPidbY291Z2hdJzsKK+WTsj4nW3dpc2VdJzsKK+WTuj4nW2NoZXcgZm9vZF0nOwor5ZO9PidbY2hva2VdJzsKK+WUhD4nW2ZpbmFsIHBhcnRpY2xlIG9mIGFzc2VydGlvbiBwYXRoYWthXSc7CivllIY+J1ttYWtlIG1pc2NoaWVmXSc7CivllIc+J1tsaXBzXSc7CivllI8+J1t3ZWVwIG9yIHNvYl0nOwor5ZSQPidbdGFuZyBkeW5hc3R5XSc7CivllJQ+J1tob2xkIGluIG1vdXRoXSc7CivllJY+J1tkdW1iXSc7CivllK4+J1tzZWxsXSc7CivllK8+J1tvbmx5XSc7CivllLE+J1tzaW5nXSc7CivllLM+J1tjcnkgb2YgYmlyZF0nOwor5ZS4PidbcmVjaXRlXSc7CivllLk+J1t0byBzbWlsZSBhdF0nOwor5ZS+Pidbc3BpdF0nOwor5ZWAPidbZ25hd10nOwor5ZWEPidbdG8gcGVja10nOworIyLllYQ+J1t0byBwZWNrXSciLAor5ZWGPidbY29tbWVyY2VdJzsKK+WVjD4nW2FuaW1hbCBkaXNlYXNlXSc7CivllY8+J1thc2sgKGFib3V0KV0nOwor5ZWTPidbb3Blbl0nOwor5ZWWPidbZWF0XSc7CivllZc+J1tlYXRdJzsKK+WVnD4nW3NpcF0nOworIyLllZw+J1tzaXBdJyIsCivllaM+J1tob2xkIGluIG1vdXRoXSc7Civllbs+J1tvbmx5XSc7Civllbw+J1t3ZWVwXSc7Civllb4+J1t3YWlsaW5nIG9mIGNoaWxkXSc7CivlloA+J1t2b21pdF0nOwor5ZaDPidba2VlcCB0YWxraW5nXSc7CivlloQ+J1tnb29kXSc7Civlloc+J1tob3JuXSc7Civllok+J1t0aHJvYXRdJzsKK+WWij4nW3Nob3V0XSc7Civllos+J1tuYWddJzsKK+WWmD4nW3BhbnRdJzsKK+WWmT4nW2JlYWtdJzsKK+WWmj4nW2NhbGxdJzsKK+WWnD4nW2xpa2VdJzsKK+WWnT4nW2RyaW5rXSc7Civllp4+J1tjaGlycGluZyBvZiBpbnNlY3RzXSc7Civllp8+J1toZWF2ZSBzaWdoXSc7Civllqc+J1tsaXZlbHldJzsKK+WWqD4nW3dhaWxdJzsKK+WWqT4nW21ldGFwaG9yXSc7Civllqo+J1ttb3VybmluZ10nOwor5ZarPidbZWF0XSc7Civllqw+J1t0YWxsXSc7Civllq4+J1tzaW5nbGVdJzsKK+WWsD4nW3RvIGVhdF0nOwor5Za2PidbZW5jYW1wbWVudF0nOwor5ZeEPidbaG9hcnNlIG9mIHZvaWNlXSc7Civll4U+J1tzbWVsbF0nOwor5ZeHPidbbWlzZXJseV0nOwor5ZeUPidbYmUgYW5ncnkgYXRdJzsKK+WXmj4nW3NvdW5kIG9mIGNyeWluZ10nOwor5ZecPidbYmUgZm9uZCBvZl0nOwor5ZefPidbc2lnaF0nOwor5ZejPidbdG8gY29ubmVjdF0nOwor5ZekPidbbGF1Z2ggYXRdJzsKK+WXtz4nW2xvdWQgY2xhbW9yXSc7Civll7k+J1tjaGF0dGVyXSc7Civll70+J1tjb3VnaF0nOwor5Ze+PidbdG8gc2V0IGEgZG9nIG9uXSc7CivlmIY+J1tzaWdoXSc7CivlmIk+J1tleGNlbGxlbnRdJzsKK+WYlD4nW3ZvbWl0XSc7CivlmJY+J1tpbnRlcmplY3Rpb24gb2YgYXBwcm92YWwgb3IgYWRtaV0nOwor5ZiXPidbdGFzdGVdJzsKK+WYmD4nW2V4aGFsZV0nOwor5ZibPidbZmluYWwgZXhjbGFtYXRvcnkgcGFydGljbGVdJzsKK+WYqT4nW3J1c2hpbmcgc291bmRdJzsKK+WYrz4nW3JvYXJdJzsKK+WYsT4nW29yZGVyXSc7CivlmLI+J1tyaWRpY3VsZV0nOwor5Zi0PidbbW91dGhdJzsKK+WYtj4nW25laWdoaW5nIG9mIGEgaG9yc2VdJzsKK+WYuD4nW3VuY2xlYXJdJzsKK+WZgj4nW21lZXRdJzsKK+WZjD4nW3Njb2xkXSc7CivlmY4+J1tjaG9rZV0nOwor5ZmQPidbcmVjZXB0YWNsZV0nOwor5ZmbPidbYml0ZV0nOwor5ZmkPidbY2xvc2VdJzsKK+WZqD4nW3JlY2VwdGFjbGVdJzsKK+WZqj4nW2JlIG5vaXN5XSc7Civlmas+J1tiZWxjaF0nOwor5ZmsPidbYml0ZV0nOwor5Zm0Pidbc3B1cnRdJzsKK+WZuD4nW21ldHJpYyB0b25dJzsKK+WZuj4nW3N0b3J5XSc7CivlmoA+J1tlbmpvaW5dJzsKK+Wahj4nW2dpdmUgZm9ydGggc291bmRdJzsKK+Wahz4nW3NjYXJlXSc7Civlmoo+J1t0byBwYW50XSc7Civlmo8+J1tzbmVlemVdJzsKK+WalD4nW3NuZWV6ZV0nOworIyLlmpw+J1tiZSBzaWxlbnRdJyIsCivlmqI+J1tiYWddJzsKK+WapT4nW3N3YWxsb3ddJzsKK+Warj4nW2d1aWRlXSc7CivlmrQ+J1tzdHJpY3RdJzsKK+Watj4nW3NlZWsgZnJpZW5kc10nOwor5Zq8PidbcHJhdHRsZV0nOwor5ZuAPidbc2luZ10nOwor5ZuBPidbbW92ZSBsaXAgd2hlbiBzcGVha2luZ10nOwor5ZuCPidbYmUgbm9pc3ldJzsKKyMi5ZuCPidbYmUgbm9pc3ldJyIsCivlm4g+J1t0YWxrIGluIG9uZScncyBzbGVlcF0nOworIyLlm40+J1tkb3VibGUgaGFwcGluZXNzXSciLAor5ZuRPidbb3JkZXJdJzsKK+Wbkz4nW2duYXddJzsKK+Wblz4nW2VyZWN0XSc7Civlm5g+J1tyZXR1cm5dJzsKK+Wbmj4nW3ByaXNvbmVyXSc7Civlm5s+J1tmb3VyXSc7Civlm54+J1tyZXR1cm5dJzsKK+WboD4nW2NhdXNlXSc7Civlm6M+J1tzcGhlcmVdJzsKK+Wbrj4nW2ludmVpZ2xlXSc7Civlm7A+J1tzdXJyb3VuZF0nOwor5ZuyPidbc3Vycm91bmRdJzsKK+Wbsz4nW2RpYWdyYW1dJzsKK+WbuT4nW3ByaXNvbl0nOwor5Zu6PidbYmVjb21lIHNvbGlkXSc7Civlm70+J1tuYXRpb25dJzsKK+Wbvz4nW3BlbiB1cF0nOwor5ZyAPidbbmF0aW9uXSc7CivlnIM+J1tnYXJkZW5dJzsKK+WchD4nW3ByaXNvbl0nOwor5ZyIPidbdG8gY2lyY2xlXSc7CivlnIk+J1tzdGFibGVdJzsKK+Wciz4nW25hdGlvbl0nOwor5ZyNPidbc3Vycm91bmRdJzsKK+Wcjz4nW3RvIGNpcmNsZV0nOwor5ZySPidbZ2FyZGVuXSc7CivlnJM+J1tjaXJjbGVdJzsKK+Wclj4nW2RpYWdyYW1dJzsKK+WcmD4nW3NwaGVyZV0nOwor5ZycPidbY2lyY2xlXSc7CivlnJ8+J1tzb2lsXSc7CivlnKY+J1soa29rdWppKSB3YXRlciBnYXRlXSc7CisjIuWcpj4nWyhrb2t1amkpIHdhdGVyIGdhdGVdJyIsCivlnKg+J1tiZSBhdF0nOwor5ZytPidbamFkZSBwb2ludGVkIGF0IHRvcF0nOwor5ZywPidbZWFydGhdJzsKKyMi5ZyzPidbZnVycm93IGluIGZpZWxkXSciLAorIyLlnLM+J1tmdXJyb3cgaW4gZmllbGRdJyIsCivlnLs+J1tib3JkZXJdJzsKK+WdgD4nW3NpdGVdJzsKK+Wdgj4nW2hpbGxzaWRlXSc7CivlnYc+J1tlcXVhbF0nOwor5Z2KPidbbmVpZ2hib3Job29kXSc7CivlnY4+J1twaXRdJzsKK+Wdjz4nW3JvdHRlbl0nOwor5Z2QPidbc2l0XSc7CivlnZE+J1twaXRdJzsKK+WdoT4nW3Nsb3BlXSc7CivlnaQ+J1tlYXJ0aF0nOwor5Z2mPidbZmxhdF0nOwor5Z2pPidbZWFydGhlbndhcmVdJzsKK+Wdqj4nW2xldmVsIGdyb3VuZF0nOwor5Z2/PidbbW91bmRdJzsKK+Wegj4nW2xldCBkb3duXSc7CisjIuWehj4nW2JsYWNrIGNsb2RzIG9mIGVhcnRoXSciLAorIyLlnok+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+Weiz4nW3BhdHRlcm5dJzsKK+Wekz4nW2JvcmRlcl0nOwor5Z6gPidbYm91bmRhcnldJzsKK+Weoj4nW2RpcnRdJzsKK+Weoz4nW2xvdyB3YWxsXSc7CivlnqQ+J1thbnQtaGlsbF0nOworIyLlnqk+J1tob2x5XSciLAorIyLlnq4+J1tiZSBkZWZlYXRlZF0nIiwKKyMi5Z6yPidbaGlnaCBhbmQgZHJ5IHBsYWNlXSciLAor5Z+APidbbGV0IGRvd25dJzsKK+Wfgz4nW2ZpbmUgZHVzdF0nOwor5Z+GPidbc3RvbnldJzsKK+Wfiz4nW2J1cnldJzsKK+Wfjj4nW2Nhc3RsZV0nOwor5Z+SPidbZW5jbG9zdXJlXSc7Civln5M+J1tlbmNsb3N1cmVdJzsKK+WflD4nW3BsYWluXSc7CisjIuWflD4nW3BsYWluXSciLAor5Z+cPidbb3BlbiBjb3VudHJ5XSc7Civln58+J1tkaXN0cmljdF0nOwor5Z+gPidbcG9ydCBjaXR5XSc7CisjIuWfoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5Z+0Pidbc29pbCB3aXRoIGxhcmdlIGNsYXkgY29udGVudF0nOwor5Z+3PidbaG9sZCBpbiBoYW5kXSc7Civln7k+J1tiYW5rIHVwIHdpdGggZGlydF0nOwor5Z+6PidbZm91bmRhdGlvbl0nOwor5Z+8PidbaGVhZGxhbmRdJzsKK+WggD4nW2NhdmVdJzsKK+Wggj4nW2hhbGxdJzsKK+WghT4nW2hhcmRdJzsKK+Wghj4nW2hlYXBdJzsKK+Wgij4nW3doaXRlIGVhcnRoXSc7CivloIs+J1tidXJ5XSc7CivloJU+J1tmYWxsXSc7CivloJk+J1tidXJ5XSc7CivloJ0+J1tjcnVjaWJsZV0nOwor5aChPidbZm9ydF0nOwor5aCkPidbZGlrZV0nOwor5aCqPidbYWRlcXVhdGVseSBjYXBhYmxlIG9mXSc7CivloK8+J1thIGxlZ2VuZGFyeSBhbmNpZW50IGVtcGVyb3Itc2FnZV0nOwor5aCwPidbZGFtXSc7CivloLE+J1tyZXBvcnRdJzsKK+WgtD4nW29wZW4gc3BhY2VdJzsKK+WgtT4nW3dhbGxdJzsKK+Wguj4nW3BlcnNvbicncyBuYW1lXSc7CivloL0+J1ttb3VuZF0nOwor5aGAPidbd2FsbF0nOwor5aGBPidbcmFtcGFydF0nOwor5aGKPidbcGllY2VdJzsKK+Whiz4nW2dyYXZlXSc7CivloZE+J1ttb2RlbCBpbiBjbGF5XSc7CivloZI+J1tyb29zdF0nOwor5aGUPidbdG93ZXJdJzsKK+Whlz4nW3NtZWFyXSc7CivloZg+J1twb25kXSc7CivloZk+J1t0cnVseV0nOwor5aGaPidbY2VtZXRlcnldJzsKK+Whnj4nW3N0b3AgdXBdJzsKK+Whoj4nW2VudHJlbmNobWVudF0nOwor5aGpPidbc2FsdF0nOwor5aGrPidbZmlsbCBpbl0nOworIyLloa0+J1tbbm90IGZvdW5kIGluIGFueSBkaWN0aW9uYXJ5XV0nIiwKK+Whsj4nW29wZW4gc3BhY2VdJzsKK+WhtT4nW2R1c3RdJzsKK+WhuT4nW21vYXRdJzsKK+Whvj4nW3ZpbGxhZ2Ugc2Nob29sXSc7CivlooM+J1tib3VuZGVyeV0nOwor5aKFPidbdmlsbGFdJzsKK+Wikz4nW2dyYXZlXSc7Civlopc+J1tpbmNyZWFzZV0nOwor5aKcPidbZmFsbCBkb3duXSc7Civlop8+J1toaWdoIG1vdW5kXSc7Civloqg+J1tpbmtdJzsKK+Wiqz4nW2N1cF0nOwor5aKuPidbZmFsbF0nOwor5aKzPidbZ3JhdmVdJzsKKyMi5aKzPidbZ3JhdmVdJyIsCisjIuWisz4nW2dyYXZlXSciLAor5aK6PidbNCB3YWxsc10nOwor5aK7Pidbd2FsbF0nOwor5aK+PidbY3VsdGl2YXRlXSc7Civlo4E+J1twYXJ0aXRpb24gd2FsbF0nOwor5aOFPidbdG8gb2JzdHJ1Y3RdJzsKK+Wjhz4nW2FsdGFyXSc7Civlo4o+J1tiYWRdJzsKK+WjjD4nW3NvaWxdJzsKK+WjkT4nW2JlZCBvZiB0b3JyZW50XSc7Civlo5M+J1twcmVzc10nOwor5aOVPidbdHJlbmNoXSc7CisjIuWjlj4nW29wZW4gc3BhY2UgYWxvbmcgd2F0ZXJdJyIsCivlo5g+J1tyYW1wYXJ0XSc7Civlo5k+J1t0b21iXSc7Civlo5w+J1tlYXJ0aGVuIGphciBvciBqdWddJzsKK+Wjnj4nW2JhZF0nOwor5aOfPidbZ3JhdmVdJzsKK+WjpD4nW3NvaWxdJzsKKyMi5aOlPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlo6s+J1tzY2hvbGFyXSc7Civlo6w+J1tuaW50aCBvZiB0ZW4gY2VsZXN0aWFsIHN0ZW1zXSc7Civlo64+J1tiaWddJzsKK+Wjrz4nW2JpZ10nOwor5aOwPidbc291bmRdJzsKK+WjsT4nW251bWJlciBvbmVdJzsKK+Wjsj4nW3NlbGxdJzsKK+Wjtz4nW2phcl0nOwor5aO5PidbbnVtYmVyIG9uZV0nOwor5aO6PidbamFyXSc7Civlo7s+J1tzb24taW4tbGF3XSc7Civlo7w+J1twYWxhY2UgY29ycmlkb3Igb3IgcGFzc2FnZXdheV0nOwor5aO9Pidbb2xkIGFnZV0nOwor5aSCPidbZ29dJzsKK+WkiT4nW2NoYW5nZV0nOwor5aSKPidbUmFkaWNhbCBOby4gMzVdJzsKK+Wkjz4nW3N1bW1lcl0nOwor5aSQPidbbG9uZ10nOwor5aSVPidbZXZlbmluZ10nOwor5aSWPidbb3V0XSc7CivlpJg+J1s0dGggb2YgRWFydGggQnJhbmNoZXNdJzsKK+WkmT4nW2Vhcmx5IGluIG1vcm5pbmddJzsKK+Wkmj4nW211Y2hdJzsKK+Wkmz4nW211Y2hdJzsKK+WknD4nW25pZ2h0XSc7CivlpKI+J1tkcmVhbV0nOwor5aSlPidbY29tcGFuaW9uXSc7CivlpKc+J1tiaWddJzsKK+WkqT4nW3NreV0nOwor5aSqPidbdmVyeV0nOwor5aSrPidbbWFuXSc7CivlpKw+J1twYXJ0ZWRdJzsKK+WkrT4nW3lvdW5nXSc7CivlpK4+J1tjZW50ZXJdJzsKK+WksT4nW2xvc2VdJzsKK+Wksj4nW2FkdmFuY2UgcXVpY2tseV0nOwor5aS3PidbYW5jaWVudCBiYXJiYXJpYW4gdHJpYmVzXSc7CivlpLg+J1tleHRyYXZhZ2FudF0nOwor5aS+PidbYmUgd2VkZ2VkIG9yIGluc2VydGVkIGJldHdlZW5dJzsKK+WlhD4nW2VyZSBsb25nXSc7CivlpYc+J1tzdHJhbmdlXSc7CivlpYg+J1tidXRdJzsKK+WliT4nW29mZmVyXSc7CivlpY4+J1tzdHJpZGUgb2YgbWFuXSc7CivlpY8+J1ttZW1vcmlhbGl6ZSBlbXBlcm9yXSc7CivlpZA+J1tiZSBudW1lcm91c10nOwor5aWRPidbZGVlZF0nOwor5aWUPidbcnVuIGZhc3RdJzsKK+WllT4nW2luIHNlcXVlbmNlXSc7CivlpZc+J1tjYXNlXSc7CivlpZg+J1tsYXJnZV0nOwor5aWaPidbd2hlcmU/IHdoYXQ/IGhvdz8gd2h5P10nOwor5aWgPidbcGF5IHJlc3BlY3RdJzsKK+Wloj4nW2V4dHJhdmFnYW50XSc7CivlpaU+J1tteXN0ZXJpb3VzXSc7Civlpac+J1tteXN0ZXJpb3VzXSc7Civlpag+J1twcml6ZV0nOwor5aWpPidbbGFkeScncyB2YW5pdHkgY2FzZV0nOwor5aWqPidbdGFrZSBieSBmb3JjZV0nOwor5aWsPidbcHJpemVdJzsKK+Wlrj4nW3N0cml2ZV0nOwor5aWzPidbd29tYW5dJzsKK+WltD4nW3NsYXZlXSc7Civlpbg+J1tjcmFmdHldJzsKK+WlvT4nW2dvb2RdJzsKK+WmgT4nW2FjdCBhcyBnby1iZXR3ZWVuXSc7CivlpoI+J1tpZl0nOwor5aaDPidbd2lmZV0nOwor5aaEPidbYWJzdXJkXSc7Civlpoo+J1tjb25jZWl2ZV0nOwor5aaNPidbYmVhdXRpZnVsXSc7CivlppM+J1twcm9zdGl0dXRlXSc7CivlppY+J1tzdHJhbmdlXSc7Civlppk+J1tteXN0ZXJpb3VzXSc7CisjIuWmmT4nW215c3RlcmlvdXNdJyIsCivlpp0+J1thZG9ybiBvbmVzZWxmXSc7CivlpqM+J1tvbmUnJ3MgZGVjZWFzZWQgbW90aGVyXSc7CivlpqU+J1tzYXRpc2ZhY3RvcnldJzsKK+WmqD4nW2ludGVyZmVyZSB3aXRoXSc7Civlpqw+J1tqZWFsb3VzXSc7CivlprI+J1tjb25jdWJpbmUgb2YgbGFzdCBydWxlciBvZiBzaGFuZ10nOwor5aa5PidbeW91bmdlciBzaXN0ZXJdJzsKK+Wmuz4nW3dpZmVdJzsKK+Wmvj4nW2NvbmN1YmluZV0nOwor5aeGPidbY2hpbGQnJ3MgZ292ZXJuZXNzXSc7Civlp4k+J1tlbGRlciBzaXN0ZXJdJzsKK+Wniz4nW2JlZ2luXSc7Civlp5A+J1tlbGRlciBzaXN0ZXJdJzsKK+WnkT4nW2ZhdGhlcicncyBzaXN0ZXJdJzsKK+Wnkz4nW29uZScncyBmYW1pbHkgbmFtZV0nOwor5aeUPidbYXBwb2ludF0nOwor5aeZPidbY29uY2VpdmVdJzsKK+Wnmj4nW2hhbmRzb21lXSc7Civlp5w+J1tzdXJuYW1lXSc7Civlp6U+J1ttYXRlcm5hbCBncmFuZG1vdGhlcl0nOwor5aemPidbYWR1bHRlcnldJzsKK+WnqD4nW21vdGhlci93aWZlJydzIHNpc3Rlcl0nOwor5aeqPidbbmllY2VdJzsKK+Wnqz4nW2JlYXV0eV0nOworIyLlp7E+J1tiZWF1dGlmdWxdJyIsCivlp7s+J1tyZWxhdGl2ZXMgYnkgbWFycmlhZ2VdJzsKK+Wnvz4nW29uZScncyBtYW5uZXJdJzsKK+WogT4nW3BvbXBdJzsKK+Wogz4nW2JhYnldJzsKK+WoiT4nW2JlYXV0aWZ1bF0nOwor5aiRPidbZGFuY2VdJzsKK+WomD4nW21vdGhlcl0nOworIyLlqJo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+WonD4nW2VsZWdhbnRdJzsKK+Wonz4nW2JlYXV0aWZ1bF0nOwor5aigPidbcHJlZ25hbnRdJzsKK+WopT4nW2JlIGJlYXV0aWZ1bF0nOwor5aipPidbZ2l2ZSBiaXJ0aCBjaGlsZF0nOwor5aivPidbcGxlYXN1cmVdJzsKK+WotT4nW3N0YXJdJzsKK+Wotj4nW21hcnJ5XSc7CivlqLw+J1twcm9zdGl0dXRlXSc7CivlqYA+J1tiZSBiZWF1dGlmdWxdJzsKK+WpgT4nW3N1cm5hbWVdJzsKK+Wphj4nW29sZCB3b21hbl0nOwor5amJPidbYW1pYWJsZV0nOwor5amaPidbZ2V0IG1hcnJpZWRdJzsKK+Wpoj4nW3NlcnZhbnQgZ2lybF0nOwor5ammPidbbWFycmllZCB3b21lbl0nOwor5amqPidbY292ZXRdJzsKK+WprD4nW29ic2NlbmVdJzsKK+Wpvz4nW3Nvbi1pbi1sYXddJzsKK+Wqkj4nW2dvLWJldHdlZW5dJzsKK+Wqmj4nW2NoYXJtaW5nXSc7Civlqps+J1tiZWF1dHldJzsKK+WqvD4nW29sZCB3b21hbl0nOwor5aq9PidbbW90aGVyXSc7Civlqr4+J1ttYXJyeV0nOwor5auBPidbbWFycnldJzsKK+Wrgj4nW3Npc3Rlci1pbi1sYXddJzsKK+WriT4nW2plYWxvdXN5XSc7Civlq4s+J1tzbGVuZGVyIGFuZCBkZWxpY2F0ZV0nOwor5auMPidbaGF0ZV0nOwor5auQPidbZnJvbGljXSc7Civlq5Y+J1twYXRyb25pemUgcHJvc3RpdHV0ZXNdJzsKK+Wrlz4nW29sZCB3b21hbl0nOwor5auhPidbbGVnYWwgd2lmZV0nOwor5aujPidbY2hhcm1pbmddJzsKK+Wrpj4nW25hbWUgb2YgYSBtb29uIGdvZGRlc3NdJzsKK+WrqT4nW3NvZnRdJzsKK+Wruj4nW3JlZmluZWRdJzsKK+Wruz4nW2VsZWdhbnRdJzsKK+WsiT4nW2Vuam95XSc7CivlrIs+J1tiZWF1dGlmdWxdJzsKK+WsjD4nW3NlZHVjdGl2ZSBhbmQgbG92ZWFibGVdJzsKK+Wslj4nW2Zhdm9yaXRlXSc7CivlrKI+J1t0cm91YmxlZF0nOwor5ayqPidbY291cnQgbGFkeV0nOwor5aysPidbbWlzdHJlc3NdJzsKK+WssD4nW2JhYnldJzsKK+Wssj4nW2Zyb2xpY10nOworIyLlrLQ+J1t0byB3aW5dJyIsCivlrL4+J1tsYXp5XSc7CivlrYA+J1t3aWRvd10nOwor5a2DPidbdHJvdWJsZWRdJzsKK+WthT4nW3NsZW5kZXJdJzsKK+WtkD4nW29mZnNwcmluZ10nOwor5a2RPidbcmVtYWluaW5nXSc7CivlrZQ+J1tvcGVuaW5nXSc7CivlrZU+J1tiZSBwcmVnbmFudF0nOwor5a2XPidbbGV0dGVyXSc7CivlrZg+J1tleGlzdF0nOwor5a2aPidbYnJvb2Qgb3ZlciBlZ2dzXSc7CivlrZs+J1tjb21ldF0nOwor5a2cPidbYmUgYXMgZGlsaWdlbnQgYXMgcG9zc2libGVdJzsKK+WtnT4nW2ZpbGlhbCBwaWV0eV0nOwor5a2fPidbZmlyc3QgaW4gc2VyaWVzXSc7CivlraM+J1txdWFydGVyIG9mIHllYXJdJzsKK+WtpD4nW29ycGhhbl0nOwor5a2lPidbb25lJydzIGNoaWxkcmVuXSc7CivlraY+J1tsZWFybmluZ10nOwor5a2pPidbYmFieV0nOwor5a2rPidbZ3JhbmRjaGlsZF0nOwor5a2wPidbd2hvPyB3aGljaD8gd2hhdD8gd2hpY2ggb25lP10nOwor5a2xPidbd2Vha10nOwor5a2zPidbYnJlZWQgaW4gbGFyZ2UgbnVtYmVyc10nOwor5a21Pidbc2l0IG9uIGVnZ3NdJzsKK+WtuD4nW2xlYXJuaW5nXSc7Civlrbo+J1tjaGlsZF0nOwor5a6APidbcm9vZl0nOwor5a6DPidbaXRdJzsKK+WuhT4nW3Jlc2lkZW5jZV0nOwor5a6HPidbaG91c2VdJzsKK+WuiD4nW2RlZmVuZF0nOwor5a6JPidbcGVhY2VmdWxdJzsKK+Wuiz4nW1NvbmcgZHluYXN0eV0nOwor5a6MPidbY29tcGxldGVdJzsKK+WujT4nW2ZsZXNoXSc7Civlro8+J1t3aWRlXSc7CivlrpU+J1tzdG9uZSBxdWFycnldJzsKK+Wulz4nW2xpbmVhZ2VdJzsKK+WumD4nW29mZmljaWFsXSc7Civlrpk+J1t0aW1lIGFzIGNvbmNlcHRdJzsKK+Wumj4nW2RlY2lkZV0nOwor5a6bPidbc2VlbV0nOwor5a6cPidbc3VpdGFibGVdJzsKK+WunT4nW3RyZWFzdXJlXSc7Civlrp8+J1tyZWFsXSc7CivlrqI+J1tndWVzdF0nOwor5a6jPidbZGVjbGFyZV0nOwor5a6kPidbcm9vbV0nOwor5a6lPidbZm9yZ2l2ZV0nOwor5a6mPidbb2ZmaWNpYWxkb21dJzsKK+Wurj4nW3BhbGFjZV0nOwor5a6wPidbdG8gc2xhdWdodGVyXSc7CivlrrM+J1tpbmp1cmVdJzsKK+WutD4nW2VudGVydGFpbl0nOwor5a61PidbbmlnaHRdJzsKK+Wutj4nW2hvdXNlXSc7Civlrrg+J1tpbXBlcmlhbF0nOwor5a65PidbbG9va3NdJzsKK+Wuvz4nW3N0b3BdJzsKK+Wvgj4nW3N0aWxsXSc7Civlr4M+J1tncmlldmFuY2VdJzsKK+WvhD4nW3NlbmRdJzsKK+WvhT4nW3Jlc3BlY3RdJzsKK+Wvhj4nW2RlbnNlXSc7Civlr4c+J1tiYW5kaXRzXSc7CisjIuWviT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5a+MPidbYWJ1bmRhbnRdJzsKK+WvkD4nW3NsZWVwXSc7Civlr5I+J1tjb2xkXSc7Civlr5M+J1tyZXNpZGVuY2VdJzsKK+WvlD4nW3JlYWxdJzsKK+Wvmz4nW2Jyb2FkXSc7Civlr50+J1tzbGVlcF0nOwor5a+ePidbc2lsZW50XSc7Civlr58+J1tleGFtaW5lXSc7Civlr6E+J1t3aWRvd2VkXSc7Civlr6I+J1tzbGVlcF0nOwor5a+kPidbZmV3XSc7Civlr6U+J1tmZXddJzsKK+Wvpj4nW3JlYWxdJzsKK+Wvpz4nW3JlcG9zZV0nOwor5a+oPidbc3RvY2thZGVdJzsKK+WvqT4nW2V4YW1pbmVdJzsKK+Wvqz4nW3dyaXRlXSc7Civlr64+J1tzaGFudHldJzsKK+WvsD4nW2dyZWF0IGRvbWFpbl0nOwor5a+zPidbdHJlYXN1cmVdJzsKK+WvtT4nW2Zhdm9yaXRlXSc7Civlr7Y+J1t0cmVhc3VyZV0nOwor5a+4PidbaW5jaF0nOwor5a+6PidbY291cnRdJzsKK+Wvvj4nW2NvcnJlY3RdJzsKK+Wvvz4nW29sZCBhZ2VdJzsKK+WwgT4nW2xldHRlcl0nOwor5bCCPidbbW9ub3BvbGl6ZV0nOwor5bCEPidbc2hvb3RdJzsKK+WwhT4nW3N1YmR1ZV0nOwor5bCGPidbd2lsbF0nOwor5bCHPidbd2lsbF0nOwor5bCIPidbbW9ub3BvbGl6ZV0nOwor5bCJPidbb2ZmaWNlcl0nOwor5bCKPidbcmVzcGVjdF0nOwor5bCLPidbc2Vla10nOwor5bCNPidbY29ycmVjdF0nOwor5bCOPidbZGlyZWN0XSc7CivlsI8+J1tzbWFsbF0nOwor5bCRPidbZmV3XSc7CivlsJM+J1t5b3VdJzsKK+Wwlj4nW3NoYXJwXSc7CivlsJo+J1tzdGlsbF0nOwor5bCgPidbdmVyeSBmZXddJzsKK+Wwoj4nW3dlYWtdJzsKK+WwpD4nW2VzcGVjaWFsbHldJzsKK+WwqD4nW3NoYWdneSBoYWlyZWQgZG9nXSc7CivlsK0+J1thIGxlZ2VuZGFyeSBhbmNpZW50IGVtcGVyb3Itc2FnZV0nOwor5bCxPidbanVzdF0nOwor5bC4PidbY29ycHNlXSc7CivlsLk+J1tnb3Zlcm5dJzsKK+Wwuj4nW2NoaW5lc2UgbWVhc3VyZSBhcHByb3guIFwiZm9vdFwiXSc7CivlsLs+J1tlbmQgb2Ygc3BpbmVdJzsKK+WwvD4nW2J1ZGRoaXN0IG51bl0nOwor5bC9PidbZXhoYXVzdF0nOwor5bC+PidbdGFpbF0nOwor5bC/PidbdXJpbmVdJzsKK+WxgD4nW2J1cmVhdV0nOwor5bGBPidbYnJlYWsgd2luZF0nOwor5bGFPidbbGl2ZV0nOwor5bGGPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdGltZV0nOwor5bGIPidbYmVuZF0nOwor5bGKPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdGltZV0nOwor5bGLPidbaG91c2VdJzsKK+WxjT4nW2NvcnBzZV0nOwor5bGOPidbZXhjcmVtZW50XSc7CivlsY8+J1tmb2xkaW5nIHNjcmVlbl0nOwor5bGQPidbd29vZGVuIHNob2VzXSc7CivlsZE+J1tiaXRzXSc7CivlsZM+J1tnaWdhbnRpYyBzdHJlbmd0aF0nOwor5bGVPidbb3Blbl0nOwor5bGePidbY2xhc3NdJzsKK+WxoD4nW2J1dGNoZXJdJzsKK+WxoT4nW2ZyZXF1ZW50bHldJzsKK+WxpD4nW3N0b3JleV0nOwor5bGlPidbZm9vdHdlYXJdJzsKK+WxrD4nW2NsYXNzXSc7Civlsa4+J1tzcHJvdXRdJzsKK+Wxrz4nW3ZpbGxhZ2VdJzsKK+WxsT4nW21vdW50YWluXSc7CivlsbY+J1tsb2Z0eV0nOwor5bG5PidbdG8gcmlzZSBoaWdoXSc7Civlsow+J1twZXJpbG91c10nOwor5bKQPidbaGlnaF0nOwor5bKRPidbc3RlZXBdJzsKK+WylD4nW2RpdmVyZ2VdJzsKK+WyoT4nW3JpZGdlIG9yIGNyZXN0IG9mIGhpbGxdJzsKK+WyqD4nW3VuZXZlbl0nOwor5bKpPidbY2xpZmZdJzsKK+Wyqz4nW21vdW50YWluIHBlYWtdJzsKK+WyrD4nW2NhcGVdJzsKK+WysT4nW2RhaXNoYW4gb25lIG9mIGZpdmUgc2FjcmVkIG1vdW50XSc7CivlsrM+J1ttb3VudGFpbiBwZWFrXSc7CisjIuWytj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bK3PidbbWluIG1vdW50YWluXSc7Civlsrg+J1tiYW5rXSc7CisjIuWyuj4nW21vdW50YWluIHJpZGdlXSciLAorIyLlsro+J1ttb3VudGFpbiByaWRnZV0nIiwKK+Wyvj4nW21vdW50YWluIHBhc3MgKGtvcmVhbildJzsKKyMi5bOEPidbcmFuZ2Ugb2YgcGVha3NdJyIsCivls4c+J1tjYXZlXSc7Civls5k+J1tzdGFuZCBlcmVjdF0nOwor5bOgPidbbW91bnRhaW4gcGFzc10nOwor5bOhPidbZ29yZ2VdJzsKK+WzqD4nW2xvZnR5XSc7Civls6k+J1tsb2Z0eV0nOwor5bOqPidbdmFsbGV5XSc7Civls60+J1tzdGVlcF0nOwor5bOvPidbcGVha10nOwor5bOwPidbcGVha10nOwor5bO2PidbaXNsYW5kXSc7CisjIuWzuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bO7PidbaGlnaF0nOwor5bO9PidbZ29yZ2VdJzsKK+W0hz4nW2VzdGVlbV0nOwor5bSLPidbZmxvd2VyeV0nOwor5bSOPidbcm91Z2hdJzsKK+W0kT4nW0t1bmx1biBtb3VudGFpbnMgaW4gSmlhbmcgU3UgcHJvdmluY2UuXSc7CivltJQ+J1toaWdoXSc7CivltJU+J1tjbGlmZl0nOwor5bSWPidbY2xpZmZdJzsKK+W0lz4nW3Bvc3RdJzsKK+W0mD4nW2t1bmx1biBtb3VudGFpbnMgaW4gamlhbmdzdV0nOwor5bSZPidba3VubHVuIG1vdW50YWlucyBpbiBqaWFuZ3N1XSc7CivltJo+J1toaWxseV0nOwor5bSbPidbdG93ZXJpbmddJzsKK+W0nz4nW2NsaWZmc10nOwor5bSiPidbaGlnaF0nOwor5bSpPidbcnVwdHVyZV0nOwor5bWLPidbb21laSBtb3VudGFpbiBpbiBzaWNodWFuXSc7CivltYw+J1tpbmxheV0nOwor5bWOPidbbW91bnRhaW4gcmVjZXNzXSc7CivltZA+J1ttb3VudGFpbiBtaXN0XSc7CivltZI+J1tjbGlmZl0nOwor5bWcPidbcm91Z2hdJzsKK+W1qT4nW2hpZ2hdJzsKK+W1rD4nW2hpZ2hdJzsKK+W1rz4nW2hpZ2hdJzsKK+W1sz4nW2hpZ2hdJzsKK+W1tj4nW2xvdyBwYXJ0IG9mIGEgbW91bnRhaW5dJzsKK+W2gj4nW2NsaWZmXSc7CivltoQ+J1toaWdoXSc7Civltoc+J1tzdGVlcF0nOwor5baLPidbaXNsYW5kXSc7Civltow+J1tpc2xhbmRdJzsKKyMi5baQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivltp0+J1twYXRoIGxlYWRpbmcgdXAgYSBtb3VudGFpbl0nOwor5baiPidbaGlnaCBvciB0YWxsXSc7CisjIuW2rD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bauPidbaGlnaF0nOwor5ba3PidbcmFuZ2Ugb2YgbW91bnRhaW5zIGluIGh1bmFuIHByb3ZdJzsKK+W2uj4nW21vdW50YWluIHJpZGdlXSc7Civltrw+J1tpc2xhbmRdJzsKK+W2vT4nW21vdW50YWluIHBlYWtdJzsKK+W3iT4nW3N0ZWVwXSc7Civlt4w+J1tjbGlmZl0nOwor5beNPidbaGlnaF0nOwor5beSPidbbW91bnRhaW4gcmFuZ2VdJzsKK+W3kz4nW3N1bW1pdCBvZiBtb3VudGFpbl0nOwor5beWPidbY2xpZmZdJzsKK+W3mz4nW3JpdmVyXSc7Civlt50+J1tzdHJlYW1dJzsKK+W3nj4nW2FkbWluaXN0cmF0aXZlIGRpdmlzaW9uXSc7Civlt6E+J1twYXRyb2xdJzsKK+W3oz4nW25lc3RdJzsKK+W3pT4nW2xhYm9yXSc7Civlt6Y+J1tsZWZ0XSc7Civlt6c+J1tza2lsbGZ1bF0nOwor5beoPidbbGFyZ2VdJzsKK+W3qz4nW3dpemFyZF0nOwor5beuPidbZGlmZmVyXSc7Civlt7E+J1tzZWxmXSc7Civlt7I+J1thbHJlYWR5XSc7Civlt7M+J1tzaXh0aCBvZiB0d2VsdmUgYnJhbmNoZXNdJzsKK+W3tD4nW2dyZWF0bHkgZGVzaXJlXSc7Civlt7U+J1ttZWFzdXJpbmcgY3VwXSc7Civlt7c+J1thbGxleV0nOwor5be7Pidbc2Nyb2xsXSc7Civlt70+J1s1dGggb2YgdGhlIDggdHJpZ3JhbXNdJzsKK+W3vj4nW2tlcmNoaWVmXSc7CivluII+J1ttYXJrZXRdJzsKK+W4gz4nW2NvdHRvbiBjbG90aF0nOwor5biGPidbc2FpbF0nOwor5biLPidbcGFwZXJdJzsKK+W4jD4nW3JhcmVdJzsKK+W4kT4nW2EgdHJlYXN1cnldJzsKK+W4lj4nW2ludml0YXRpb24gY2FyZF0nOwor5biZPidbYm9vayBjb3Zlcl0nOwor5biaPidbYnJvb21dJzsKK+W4mz4nW3NpbGtzXSc7CivluJ0+J1tzdXByZW1lIHJ1bGVyXSc7CivluKU+J1tjb21tYW5kZXJdJzsKK+W4qz4nW3RlYWNoZXJdJzsKK+W4rT4nW3NlYXRdJzsKK+W4rz4nW2JlbHRdJzsKK+W4sD4nW3JldHVybl0nOwor5bizPidbdGVudF0nOwor5bi2PidbYmVsdF0nOwor5bi3PidbdGVudF0nOwor5bi4PidbY29tbW9uXSc7CivluL0+J1toYXRdJzsKK+W5gD4nW3BpY3R1cmVdJzsKK+W5gz4nW2N1cnRhaW4gdGhhdCBmb3JtcyB3YWxsXSc7CivluYQ+J1t0ZW50XSc7CivluYU+J1twaWVjZV0nOwor5bmHPidbaGVscF0nOwor5bmMPidbY3VydGFpbl0nOwor5bmOPidbY292ZXItY2xvdGhdJzsKK+W5lD4nW2N1cnRhaW5dJzsKK+W5lT4nW2N1cnRhaW5dJzsKK+W5lz4nW3dvbWVuJydzIGhlYWRnZWFyXSc7CivluZ8+J1tmbGFnXSc7CivluaE+J1twZW5uYW50XSc7CivluaI+J1tjYXJyaWFnZSBjdXJ0YWluXSc7CivluaM+J1tjdXJyZW5jeV0nOwor5bmkPidbZXZpbF0nOwor5bmyPidbb3Bwb3NlXSc7CivlubM+J1tmbGF0XSc7CivlubQ+J1t5ZWFyXSc7CivlubU+J1tldmVuIGxldmVsLiB0byByYWlzZSBpbiBib3RoIGhhbmRzXSc7CivlubY+J1tjb21iaW5lXSc7Civlubg+J1tsdWNrKGlseSldJzsKK+W5uT4nW3RydW5rIG9mIHRyZWUgb3Igb2YgaHVtYW4gYm9keV0nOwor5bm6Pidbb25lXSc7Civlubs+J1tpbGx1c2lvbl0nOwor5bm8PidbaW5mYW50XSc7Civlub0+J1txdWlldF0nOwor5bm+PidbaG93IG1hbnk/IGhvdyBtdWNoPyAoYSlmZXddJzsKK+W5vz4nW3dpZGVdJzsKK+W6gT4nW2hhbGxdJzsKK+W6gz4nW2Jyb2FkXSc7CivluoQ+J1t2aWxsYWdlXSc7Civluoc+J1tjb3Zlcl0nOwor5bqKPidbYmVkXSc7Civluo8+J1tzZXJpZXNdJzsKK+W6lT4nW2JvdHRvbV0nOwor5bqWPidba2l0Y2hlbl0nOwor5bqXPidbc2hvcF0nOwor5bqaPidbc2V2ZW50aCBvZiB0ZW4gY3ljbGljYWwgc3RlbXNdJzsKK+W6nD4nW3ByZWZlY3R1cmVdJzsKK+W6oD4nW3ZpbGxhZ2Ugc2Nob29sXSc7CivluqY+J1tkZWdyZWVdJzsKK+W6pz4nW3NlYXRdJzsKK+W6qz4nW2FybW9yeV0nOwor5bqtPidbY291cnR5YXJkXSc7CivlurU+J1tidWRkaGlzdCBtb25hc3Rlcnkgb3IgbnVubmVyeV0nOwor5bq2PidbbnVtZXJvdXNdJzsKK+W6tz4nW3BlYWNlZnVsXSc7Civlurg+J1t1c3VhbF0nOwor5buBPidbdG9pbGV0XSc7Civlu4I+J1tzaWRlLXJvb21dJzsKK+W7gz4nW2Ficm9nYXRlXSc7Civlu4g+J1tiaWcgYnVpbGRpbmddJzsKK+W7iT4nW3VwcmlnaHRdJzsKK+W7ij4nW2NvcnJpZG9yXSc7Civlu48+J1tzdGFibGVdJzsKK+W7kD4nW3N0YWJsZV0nOwor5buTPidbYnJvYWRdJzsKK+W7lj4nW3N1cm5hbWVdJzsKK+W7mj4nW2tpdGNoZW5dJzsKK+W7mz4nW3N0b3JlXSc7Civlu50+J1tzZXJ2YW50XSc7Civlu58+J1t0ZW1wbGVdJzsKK+W7oD4nW2ZhY3RvcnldJzsKK+W7oT4nW2NvcnJpZG9yXSc7Civlu6I+J1thYnJvZ2F0ZV0nOwor5bujPidbYnJvYWRdJzsKK+W7qD4nW2dvdmVybm1lbnQgb2ZmaWNlXSc7Civlu6k+J1tncmFuYXJ5XSc7Civlu6w+J1todXRdJzsKK+W7sD4nW2hhbGxdJzsKK+W7sT4nW2hhcm1vbmlvdXNdJzsKK+W7sz4nW2hhbGxdJzsKK+W7tD4nW2dvXSc7Civlu7Y+J1tkZWxheV0nOwor5bu3PidbY291cnRdJzsKK+W7uD4nW2VubGlnaHRlbl0nOwor5bu6PidbYnVpbGRdJzsKK+W7uz4nW2NpcmNsZSBhcm91bmRdJzsKK+W7vD4nW3RoZW5dJzsKK+W7vj4nW3R3byBoYW5kc10nOwor5bu/PidbdHdlbnR5XSc7CivlvIE+J1tjb25pY2FsIGNhcCB3b3JuIHVuZGVyIHpob3UgZHluYV0nOwor5byDPidbcmVqZWN0XSc7CivlvIQ+J1tkb10nOwor5byJPidbbGFyZ2VdJzsKK+W8ij4nW2V2aWxdJzsKK+W8iz4nW2NhdGNoXSc7CivlvIw+J1tudW1iZXIgb25lXSc7CivlvI0+J1tudW1iZXIgdHdvXSc7CivlvI8+J1tzdHlsZV0nOwor5byQPidbbnVtYmVyIHR3b10nOwor5byRPidbdG8ga2lsbCBvbmUnJ3Mgc3VwZXJpb3JdJzsKK+W8kz4nW2Jvd10nOwor5byUPidbY29uZG9sZV0nOwor5byVPidbcHVsbF0nOwor5byWPidbcGhvbmV0aWMgZm9yIFwidGVcIiAoSmFwYW5lc2UpXSc7CivlvJc+J1tub3RdJzsKK+W8mD4nW2VubGFyZ2VdJzsKK+W8mz4nW2xvb3Nlbl0nOwor5byfPidbeW91bmcgYnJvdGhlcl0nOwor5bylPidbZXh0ZW5zaXZlXSc7CivlvKY+J1tzdHJpbmddJzsKK+W8pz4nW3dvb2RlbiBib3ddJzsKK+W8qT4nW2Nyb3NzLWJvd10nOwor5bytPidbc3RvcF0nOwor5byvPidbYmVuZF0nOwor5byxPidbd2Vha10nOwor5by1Pidbc3RyZXRjaF0nOwor5by3Pidbc3Ryb25nXSc7CivlvLg+J1tib3cgc3RyZXRjaGVkIGZ1bGxdJzsKK+W8vD4nW2FpZF0nOworIyLlvLw+J1thaWRdJyIsCisjIuW9gT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5b2IPidbcGVsbGV0XSc7CivlvYo+J1tzdHViYm9ybl0nOwor5b2MPidbZXh0ZW5zaXZlXSc7CivlvY4+J1tiZW5kXSc7CivlvZE+J1tzbm91dF0nOwor5b2TPidbYmVhcl0nOwor5b2WPidbYSBob2ddJzsKK+W9lz4nW2Jyb29tc3RpY2tdJzsKK+W9mT4nW2NvbGxlY3RdJzsKK+W9nD4nW3lpXSc7CivlvZ0+J1t5aV0nOwor5b2hPidbaGFpcl0nOwor5b2iPidbZm9ybV0nOwor5b2mPidbZWxlZ2FudF0nOwor5b2pPidbaHVlXSc7Civlvao+J1t0aWdlcl0nOwor5b2rPidbY2FydmVdJzsKK+W9rD4nW2N1bHRpdmF0ZWRdJzsKK+W9rT4nW25hbWUgb2YgYW5jaWVudCBjb3VudHJ5XSc7CivlvbA+J1tjbGVhcl0nOwor5b2xPidbc2hhZG93XSc7CivlvbM+J1tzdGVwIHdpdGggbGVmdCBmb290XSc7Civlvbc+J1tsaWtlXSc7Civlvbk+J1tzZXJ2aWNlXSc7Civlvbw+J1t0aGF0XSc7Civlvb8+J1tyZXNlbWJsaW5nXSc7CivlvoA+J1tnb10nOwor5b6BPidbaW52YWRlXSc7CivlvoI+J1tnb10nOwor5b6DPidbZ29dJzsKK+W+hD4nW25hcnJvdyBwYXRoXSc7CivlvoU+J1t0cmVhdF0nOwor5b6HPidbY29tcGx5IHdpdGhdJzsKK+W+iD4nW3ZlcnldJzsKK+W+ij4nW2xpbmdlcl0nOwor5b6LPidbc3RhdHV0ZV0nOwor5b6MPidbYmVoaW5kXSc7CivlvpA+J1tzbG93bHldJzsKK+W+kT4nW25hcnJvdyBwYXRoXSc7CivlvpI+J1tkaXNjaXBsZV0nOwor5b6TPidbZnJvbV0nOwor5b6XPidbb2J0YWluXSc7Civlvpg+J1t3YWxrIGJhY2sgYW5kIGZvcnRoXSc7Civlvpk+J1ttb3ZlIG9uZScncyBhYm9kZV0nOwor5b6ePidbZnJvbV0nOwor5b6gPidbaW5kdWNlXSc7CivlvqE+J1tkcml2ZV0nOwor5b6oPidbZG91YnRmdWxdJzsKK+W+qT4nW3JldHVybl0nOwor5b6qPidbb2JleV0nOwor5b6tPidbY29uc2NyaXB0IGxhYm9yXSc7Civlvq4+J1tzbWFsbF0nOwor5b6zPidbdmlydHVlXSc7CivlvrQ+J1tzdW1tb25dJzsKK+W+uT4nW3BlbmV0cmF0ZV0nOwor5b68PidbZnJvbnRpZXJdJzsKK+W+vT4nW2EgYmFkZ2VdJzsKK+W/gz4nW2hlYXJ0XSc7Civlv4U+J1tzdXJlbHldJzsKK+W/jD4nW2plYWxvdXNdJzsKK+W/jT4nW2VuZHVyZV0nOwor5b+WPidbZ3Vlc3NdJzsKK+W/lz4nW3B1cnBvc2VdJzsKK+W/mD4nW2ZvcmdldF0nOwor5b+ZPidbYnVzeV0nOwor5b+cPidbc2hvdWxkXSc7Civlv50+J1tkaXNncmFjZV0nOwor5b+gPidbbG95YWx0eV0nOwor5b+kPidbaW5zdWJvcmRpbmF0ZV0nOwor5b+rPidbcmFwaWRdJzsKK+W/sD4nW3N1ZmZlcl0nOwor5b+xPidbdHJ1dGhdJzsKK+W/tT4nW3RoaW5rIG9mXSc7Civlv7g+J1tibHVzaF0nOwor5b+7PidbZGVsaWdodGZ1bF0nOwor5b+9Pidbc3VkZGVubHldJzsKK+W/vz4nW2dldCBhbmdyeV0nOwor5oCOPidbd2hhdD8gd2h5PyBob3c/XSc7CivmgI8+J1tkaXNjb250ZW50ZWRdJzsKKyMi5oCQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmgJI+J1thbmdlcl0nOwor5oCVPidbZmVhcl0nOwor5oCWPidbdGVycm9yXSc7CivmgJk+J1tyZWx5IG9uXSc7CivmgJs+J1tncmlldmVkXSc7CivmgJw+J1twaXR5XSc7CivmgJ0+J1t0aGlua10nOwor5oCgPidbaWRsZV0nOwor5oChPidbaGFybW9ueV0nOwor5oClPidbcXVpY2tdJzsKK+aApj4nW2VhZ2VyXSc7CivmgKc+J1tuYXR1cmVdJzsKK+aAqD4nW2hhdHJlZF0nOwor5oCpPidbc2h5XSc7CivmgKo+J1tzdHJhbmdlXSc7CivmgKs+J1tzb3JyeV0nOwor5oCvPidbbGFja2luZyBpbiBjb3VyYWdlXSc7CivmgLE+J1toYXN0aWx5XSc7CivmgLo+J1t0byBlbmR1cmVdJzsKK+aBgT4nW3RoYXRdJzsKK+aBgj4nW2NhcmVmdWxdJzsKK+aBgz4nW3JlbHkgb25dJzsKK+aBhj4nW2NvbnN0YW50XSc7CivmgYo+J1tiZSB1bml0ZWRdJzsKK+aBiz4nW2xvdmVdJzsKK+aBjT4nW3NlZW1pbmdseV0nOwor5oGQPidbZmVhcl0nOwor5oGSPidbY29uc3RhbnRdJzsKK+aBlT4nW2ZvcmdpdmVdJzsKK+aBmT4nW2lsbG5lc3NdJzsKK+aBmj4nW2FuZ2VyXSc7CivmgZ8+J1tzY2FyZWRdJzsKK+aBoD4nW3N0cmFuZ2VdJzsKK+aBoj4nW3Jlc3RvcmVdJzsKK+aBoz4nW2luZHVsZ2Ugb25lc2VsZl0nOwor5oGkPidbc2hvdyBwaXR5XSc7CivmgaU+J1tzaGFtZV0nOwor5oGoPidbaGF0cmVkXSc7Civmgak+J1traW5kbmVzc10nOwor5oGqPidbcmVzcGVjdGZ1bF0nOwor5oGrPidbaW4gcGFpbl0nOwor5oGsPidbcXVpZXRdJzsKK+aBrT4nW3Jlc3BlY3RmdWxdJzsKK+aBrz4nW3Jlc3RdJzsKK+aBsD4nW2p1c3RdJzsKK+aBtT4nW2Zhdm9yXSc7CisjIuaBtj4nW2V2aWxdJyIsCivmgoE+J1tpcnJpdGFibGVdJzsKK+aCgz4nW3NpbmNlcmVdJzsKK+aChD4nW3NpbGVudF0nOwor5oKJPidba25vd10nOwor5oKLPidbc3Rpbmd5XSc7Civmgow+J1ticm90aGVybHldJzsKK+aCjT4nW2NvdXJhZ2VvdXNdJzsKK+aCkj4nW3NvcnJvd2Z1bF0nOwor5oKUPidbcmVwZW50XSc7CivmgpY+J1tiZSBjb250cmFkaWN0b3J5IHRvXSc7CisjIuaClj4nW2JlIGNvbnRyYWRpY3RvcnkgdG9dJyIsCivmgpo+J1tiZSBhZnJhaWRdJzsKK+aCmz4nW3JlcGVudF0nOwor5oKfPidbYXBwcmVoZW5kXSc7CivmgqA+J1tsb25nXSc7CivmgqM+J1tzdWZmZXJdJzsKK+aCpj4nW3BsZWFzZWRdJzsKK+aCpz4nW3Ntb290aF0nOwor5oKpPidbYW5nZXJlZF0nOwor5oKqPidbZXZpbF0nOwor5oKyPidbc29ycm93XSc7CivmgrM+J1tldGhpY3NdJzsKK+aCtD4nW3N1ZmZlcl0nOwor5oK1PidbZGlzYXBwb2ludGVkXSc7CivmgrY+J1tnbG9vbXldJzsKK+aCuD4nW2ZlYXJmdWxdJzsKK+aCvD4nW2dyaWV2ZV0nOwor5oK9Pidbc29ycm93ZnVsXSc7Civmg4U+J1tmZWVsaW5nXSc7Civmg4Y+J1tkaXN0cmVzc2VkXSc7Civmg4c+J1tiZSBraW5kXSc7Civmg5E+J1tjb25mdXNlXSc7Civmg5M+J1tjYXJlZnVsXSc7Civmg5g+J1tkaXNjb25jZXJ0ZWRdJzsKK+aDmj4nW2Fic2VudC1taW5kZWRdJzsKK+aDnD4nW3BpdHldJzsKK+aDnz4nW2J1dF0nOwor5oOgPidbZmF2b3JdJzsKK+aDoT4nW2V2aWxdJzsKK+aDoz4nW292ZXJhbGwgW3F1ZXN0aW9uYWJsZSB2YXJpYW50XV0nOwor5oOnPidbZmVhcl0nOwor5oOoPidbc2FkXSc7Civmg7A+J1tpbmRvbGVudF0nOwor5oOxPidbYW5nZXJlZF0nOwor5oOzPidbdGhpbmtdJzsKK+aDtD4nW2FmcmFpZF0nOwor5oO2PidbZmVhcmZ1bF0nOwor5oO3Pidbd3JpZ2dsZV0nOwor5oO5PidbaXJyaXRhdGVdJzsKK+aDuj4nW2ludGVsbGlnZW50XSc7Civmg7s+J1tmZWVsIGFuZ3Vpc2hdJzsKK+aEgD4nW2NoYW5nZSBvbmUnJ3MgY291bnRlbmFuY2VdJzsKK+aEgT4nW2FueGlldHldJzsKK+aEgz4nW3JlbGF4XSc7CivmhIY+J1tmYXVsdF0nOwor5oSIPidbbW9yZSBhbmQgbW9yZV0nOwor5oSJPidbcGxlYXNhbnRdJzsKK+aEjT4nW3BpdHldJzsKK+aEjj4nW29ic3RpbmF0ZV0nOwor5oSPPidbdGhvdWdodF0nOwor5oSVPidbc3RhcnRsZWRdJzsKK+aEmj4nW3N0dXBpZF0nOwor5oSbPidbbG92ZV0nOwor5oSfPidbZmVlbF0nOwor5oShPidbYWJzZW50LW1pbmRlZF0nOwor5oSnPidbYXNoYW1lZF0nOwor5oSoPidbc2luY2VyaXR5XSc7CivmhKw+J1thY2N1c2VdJzsKK+aEtD4nW3NhZF0nOwor5oS8PidbYWN0IHdpdGggY2FyZV0nOwor5oS9PidbZ2FtYmxlXSc7CivmhL4+J1thbmdlcl0nOwor5oS/Pidbc2luY2VyZV0nOwor5oWCPidbdXJnZV0nOwor5oWEPidbc2hpdmVyXSc7CivmhYc+J1tjYXJlZnVsXSc7CivmhYg+J1traW5kXSc7CivmhYo+J1t0byByZXNlbnRdJzsKK+aFiz4nW21hbm5lcl0nOwor5oWMPidbbmVydm91c10nOwor5oWNPidbYW5ncnldJzsKK+aFjj4nW2FjdCB3aXRoIGNhcmVdJzsKKyMi5oWTPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmhZU+J1tsb25nIGZvcl0nOwor5oWYPidbc2FkXSc7CivmhZk+J1thc2hhbWVkXSc7CivmhZo+J1thc2hhbWVkXSc7CivmhZ0+J1tkbyBldmlsIGluIHNlY3JldF0nOwor5oWfPidbc2FkbmVzc10nOwor5oWiPidbc2xvdyhseSldJzsKK+aFoz4nW2hhYml0XSc7CivmhaU+J1tzaW5jZXJlXSc7Civmhac+J1ticmlnaHRdJzsKK+aFqD4nW3NpZ2hdJzsKK+aFqz4nW3RvIGFsYXJtXSc7Civmha4+J1tiZSBjb25jZXJuZWRdJzsKKyMi5oWvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmhbA+J1tjb21mb3J0XSc7CivmhbE+J1tzYWRdJzsKK+aFsz4nW21pc2VybHldJzsKK+aFtD4nW2ZlYXJdJzsKK+aFtT4nW2luZG9sZW50XSc7CivmhbY+J1tjb25ncmF0dWxhdGVdJzsKK+aFtz4nW2FyZGVudF0nOwor5oW+PidbbHVzdF0nOwor5oaCPidbc2FkXSc7Civmhoc+J1tyZXN0XSc7Civmhoo+J1t0aXJlZF0nOwor5oaOPidbaGF0ZV0nOwor5oaQPidbcGl0eV0nOwor5oaRPidbbGVhbiBvbl0nOwor5oaUPidbYmUgd29ybi1vdXRdJzsKK+aGlj4nW2NhdXRpb3VzXSc7Civmhpk+J1tsaWtlXSc7Civmhpo+J1tkcmVhZF0nOwor5oakPidbcmVzZW50XSc7Civmhqc+J1tpcnJlc29sdXRlXSc7Civmhqk+J1tyZXN0XSc7Civmhqs+J1twaXR5XSc7Civmhqw+J1tyb3VzZV0nOwor5oauPidbcmVncmV0ZnVsXSc7CivmhrI+J1tjb25zdGl0dXRpb25dJzsKK+aGtj4nW3JlbWVtYmVyXSc7Civmhro+J1twZWFjZV0nOwor5oa+PidbcmVncmV0XSc7Civmh4M+J1tjb3VydGVvdXNdJzsKK+aHhj4nW2FueGlvdXNdJzsKK+aHhz4nW3NpbmNlcmVdJzsKK+aHiD4nW2lkbGVdJzsKK+aHiT4nW3Nob3VsZF0nOwor5oeKPidbdmV4ZWRdJzsKK+aHiz4nW3NwbGVuZGlkXSc7Civmh4w+J1tlbmpveV0nOwor5oeNPidbYmUgYWZyYWlkIG9mXSc7Civmh5A+J1tib3NvbV0nOwor5oejPidbYmUgc2ljayBhdCBoZWFydF0nOwor5oemPidbd2Vha10nOwor5oeyPidbcHVuaXNoXSc7Civmh7Q+J1tyZWdyZXRdJzsKK+aHtj4nW2xhenldJzsKK+aHtz4nW2Jvc29tXSc7Civmh7g+J1toYW5nXSc7Civmh7o+J1tyZWdyZXRdJzsKK+aHvD4nW2ZlYXJdJzsKK+aHvT4nW2hhcHB5XSc7Civmh74+J1thZnJhaWRdJzsKK+aHvz4nW3ZpcnR1b3VzXSc7CivmiIA+J1tsb3ZlXSc7CivmiIg+J1toYWxiZXJkXSc7CivmiIk+J1thIGJhdHRsZS1heGVdJzsKK+aIij4nW2ZpZnRoIG9mIHRlbiBjZWxlc3RpYWwgc3RlbXNdJzsKK+aIjD4nW2VsZXZlbnRoIG9mIHRlcnJlc3RyaWFsIGJyYW5jaGVzXSc7CivmiI0+J1tkZWZlbmQgYm9yZGVyc10nOwor5oiOPidbYXJtc10nOwor5oiQPidbY29tcGxldGVkXSc7CivmiJE+J1tvdXJdJzsKK+aIkj4nW3dhcm5dJzsKK+aIlD4nW3NtYWxsXSc7CivmiJY+J1tvcl0nOwor5oiaPidbcmVsYXRpdmVdJzsKK+aImz4nW2xhbmNlXSc7CivmiJ0+J1twaXJhdGVdJzsKK+aInj4nW2xhbmNlXSc7CivmiJ8+J1toYWxiZXJkIHdpdGggY3Jlc2NlbnQgYmxhZGVdJzsKK+aIoT4nW3N1Ymp1Z2F0ZV0nOwor5oimPidbd2FyXSc7CivmiKo+J1tjdXQgb2ZmXSc7CivmiK4+J1traWxsXSc7CivmiK8+J1t0aGVhdHJpY2FsIHBsYXldJzsKK+aIsD4nW3dhcl0nOwor5oiyPidbdGhlYXRyaWNhbCBwbGF5XSc7CivmiLM+J1twcmlja10nOwor5oi0Pidbd2VhciBvbiB0b3BdJzsKK+aIuD4nW2Rvb3JdJzsKK+aIuz4nW3BlcnZlcnNlXSc7CivmiL8+J1tob3VzZV0nOwor5omAPidbcGxhY2VdJzsKK+aJgT4nW2ZsYXRdJzsKK+aJhz4nW2Zhbl0nOwor5omIPidbZXNjb3J0XSc7CivmiYk+J1tkb29yIHBhbmVsXSc7CivmiYs+J1toYW5kXSc7CivmiY0+J1t0YWxlbnRdJzsKK+aJjj4nW3B1bGwgdXBdJzsKK+aJkz4nW3N0cmlrZV0nOwor5omVPidbc2hha2Ugb2ZmXSc7CivmiZg+J1tob2xkIHVwIHdpdGggcGFsbV0nOwor5ombPidbY2Fycnkgb24gc2hvdWxkZXJzXSc7CivmiZ4+J1t3YXJkIG9mZl0nOwor5omgPidbcGljayB1cCB3aXRoIGZvcmsgb3IgcGluY2Vyc10nOwor5omjPidba25vY2tdJzsKK+aJqD4nW3BpY2sgdXAgd2l0aCBmb3JrIG9yIHBpbmNlcnNdJzsKK+aJrj4nW2RyZXNzIHVwXSc7CivmibE+J1tjb2xsZWN0XSc7CivmibY+J1tzdXBwb3J0XSc7Civmibk+J1tjb21tZW50XSc7Civmibw+J1tncmFzcF0nOwor5om+Pidbc2VhcmNoXSc7Civmib8+J1tpbmhlcml0XSc7CivmioA+J1tza2lsbF0nOworIyLmioI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aKgz4nW3RvIGNsYXAgaGFuZHNdJzsKK+aKhD4nW2NvcHldJzsKK+aKiT4nW2Nob29zZV0nOwor5oqKPidbaG9sZF0nOwor5oqRPidbcHJlc3MgZG93bl0nOwor5oqSPidbZXhwcmVzc10nOwor5oqTPidbc2NyYXRjaF0nOwor5oqUPidbdGFrZSBvciBob2xkIHVwIGluIGJvdGggaGFuZHNdJzsKK+aKlT4nW3Rocm93XSc7CivmipY+J1t0cmVtYmxlXSc7Civmipc+J1tyZXNpc3RdJzsKK+aKmD4nW2JyZWFrIG9mZl0nOwor5oqbPidbdGhyb3cgKGF3YXkpXSc7Civmipw+J1t1cHJvb3RdJzsKK+aKnj4nW3NlbGVjdF0nOwor5oqrPidbd2Vhcl0nOwor5oqsPidbbGlmdF0nOwor5oqxPidbZW1icmFjZV0nOwor5oq1PidbcmVzaXN0XSc7Civmirk+J1tzbWVhcl0nOwor5oq7PidbcHVsbF0nOwor5oq8PidbbW9ydGdhZ2VdJzsKK+aKvT4nW2RyYXcgb3V0XSc7Civmi4I+J1tzaGFrZSBvZmZdJzsKK+aLhT4nW2NhcnJ5XSc7Civmi4Y+J1ticmVhayB1cF0nOwor5ouHPidbdGh1bWJdJzsKK+aLiD4nW3BpY2sgdXAgd2l0aCBmaW5nZXJzXSc7Civmi4k+J1twdWxsXSc7Civmi4o+J1tzbGFwXSc7Civmi4w+J1ttaXhdJzsKK+aLjT4nW2NsYXBdJzsKK+aLjz4nW3Rha2VdJzsKK+aLkD4nW2tpZG5hcF0nOwor5ouRPidbdG8gY2xhbXBdJzsKK+aLkj4nW3dhcmQgb2ZmIHdpdGggaGFuZF0nOwor5ouTPidbZXhwYW5kXSc7Civmi5Q+J1t1cHJvb3RdJzsKK+aLlz4nW29ic3RpbmF0ZV0nOwor5ouYPidbcmVzdHJhaW5dJzsKK+aLmT4nW3N0dXBpZF0nOwor5oubPidbYmVja29uXSc7Civmi5w+J1tkbyBvYmVpc2FuY2VdJzsKK+aLnT4nW2RvIG9iZWlzYW5jZV0nOwor5ougPidbb2NjdXB5XSc7Civmi6E+J1tleHBhbmRdJzsKK+aLrD4nW2luY2x1ZGVdJzsKK+aLrT4nW3dpcGUgYXdheSBzdGFpbnMgd2l0aCBjbG90aF0nOwor5ouuPidbbGFib3JpbmcgaGFyZF0nOwor5ouvPidbaGVscF0nOwor5ouxPidbZm9sZCBoYW5kcyBvbiBicmVhc3RdJzsKK+aLsz4nW2Zpc3RdJzsKKyMi5ou0PidbYmluZCB3aXRoIHJvcGVdJyIsCivmi7Y+J1twcmVzc10nOwor5ou3PidbdG9ydHVyZSBhbmQgaW50ZXJyb2dhdGVdJzsKK+aLvj4nW3BpY2sgdXBdJzsKK+aLvz4nW3Rha2VdJzsKK+aMgT4nW3N1c3RhaW5dJzsKK+aMgj4nW2hhbmddJzsKK+aMhz4nW2Zpbmdlcl0nOwor5oyIPidbYXNzaXN0XSc7CivmjIk+J1twdXQgaGFuZCBvbl0nOwor5oyMPidbZmlnaHRdJzsKK+aMkT4nW2xvYWQgY2FycmllZCBvbiBzaG91bGRlcnNdJzsKK+aMmT4nW3JhaXNlXSc7CivmjJ8+J1tjbGFzcCB1bmRlciBhcm1dJzsKKyMi5oylPidbZGlyZWN0XSciLAor5oyoPidbbmVhcl0nOwor5oyrPidbcHVzaCBkb3duXSc7CivmjK8+J1tyYWlzZV0nOwor5oy6Pidbc3RhbmQgdXByaWdodF0nOwor5oy9PidbcHVsbF0nOwor5oy+PidbY2xhc3AgdW5kZXIgYXJtXSc7CivmjL8+J1tpbnNlcnRdJzsKK+aNiT4nW2dyYXNwXSc7CivmjYw+J1ticmVhayBvcGVuXSc7CivmjY0+J1t3YXJkIG9mZl0nOwor5o2PPidbcGljayB3aXRoIGZpbmdlcnNdJzsKK+aNkD4nW2NvbnRyaWJ1dGVdJzsKK+aNlT4nW2FycmVzdF0nOwor5o2XPidbbWFrZSBwcm9ncmVzc10nOwor5o2cPidbc2VhcmNoXSc7Civmjac+J1tob2xkIHVwIGluIHR3byBoYW5kc10nOwor5o2oPidbZGlzY2FyZF0nOwor5o2pPidbdHdpc3Qgd2l0aCBoYW5kc10nOwor5o2rPidbc3Rva2VdJzsKK+aNrj4nW29jY3VweV0nOwor5o2yPidbY3VybF0nOwor5o22Pidbc3RyaWtlIHdpdGggc3RpY2tdJzsKK+aNtz4nW3dpbl0nOwor5o26PidbcHJlc3MgZG93biBoZWF2aWx5IHdpdGggZnJpbmdlcnNdJzsKK+aNuz4nW3R3aXN0IHdpdGggZmluZ2Vyc10nOwor5o6APidbbGlmdF0nOwor5o6DPidbc3dlZXBdJzsKK+aOiD4nW2dpdmUgdG9dJzsKK+aOiT4nW3R1cm5dJzsKK+aOjD4nW3BhbG0gb2YgaGFuZF0nOwor5o6OPidbZHJhZyBhc2lkZV0nOwor5o6PPidbdGFrZSBvdXRdJzsKK+aOkj4nW3Jvd10nOwor5o6WPidbc3RpY2sgaW5dJzsKK+aOmD4nW2RpZ10nOwor5o6bPidbaGFuZ10nOworIyLmjp8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aOoD4nW3JvYl0nOwor5o6hPidbZ2F0aGVyXSc7CivmjqI+J1tmaW5kXSc7CivmjqM+J1tkcmFnXSc7CivmjqU+J1tyZWNlaXZlXSc7Civmjqc+J1thY2N1c2VdJzsKK+aOqD4nW3B1c2hdJzsKK+aOqT4nW2NvdmVyXSc7Civmjqo+J1twbGFjZV0nOwor5o6rPidbYmUgb24gbmlnaHQgd2F0Y2hdJzsKK+aOrD4nW2dyYXNwIHdpdGggYm90aCBoYW5kc10nOworIyLmjrE+J1twaWNrcG9ja2V0XSciLAor5o60PidbYm94IG9uZScncyBlYXJzXSc7CisjIuaOtD4nW2JveCBvbmUnJ3MgZWFyc10nIiwKK+aOuz4nW3NjcmF0Y2ggbGlnaHRseV0nOwor5o6+PidbYSBnZW5lcmFsIGRlc2lnbmF0aW9uIG9mIG9mZmljaWFsc10nOwor5o+APidbY2hvb3NlXSc7Civmj4M+J1tzaGVhcl0nOwor5o+EPidbbGlmdF0nOwor5o+GPidbcHJpbWUgbWluaXN0ZXJdJzsKK+aPiT4nW3J1Yl0nOwor5o+PPidbY29weV0nOwor5o+QPidbaG9sZCBpbiBoYW5kXSc7Civmj5I+J1tpbnNlcnRdJzsKK+aPlj4nW3NhbHV0ZV0nOwor5o+aPidbc2NhdHRlcl0nOwor5o+bPidbY2hhbmdlXSc7Civmj6E+J1tncmFzcF0nOwor5o+jPidbcHV0IHRoaW5ncyB1bmRlciBjbG90aGVzXSc7Civmj6k+J1tydWIgYW5kIHdpcGVdJzsKK+aPrj4nW2RpcmVjdF0nOwor5o+0PidbYWlkXSc7Civmj7Y+J1ttYWtlIGZ1biBvZl0nOwor5o+6Pidbd2FnXSc7CivmkIY+J1twdWxsXSc7CivmkI0+J1tkaW1pbmlzaF0nOwor5pCPPidbc2VpemVdJzsKK+aQkz4nW3RyYW1wbGVdJzsKK+aQlj4nW3dhZ10nOwor5pCXPidbaHVsbF0nOwor5pCcPidbc2VhcmNoXSc7CivmkKY+J1tncmFzcF0nOwor5pCoPidbcnViXSc7CivmkKw+J1t0cmFuc2Zlcl0nOwor5pCtPidbam9pbiB0b2dldGhlcl0nOwor5pC0PidbZXh0cmFjdF0nOwor5pC2PidbcGx1bmRlcl0nOwor5pC6PidbbGVhZCBieSBoYW5kXSc7CivmkL4+J1twcmVzc10nOwor5pGCPidbdGFrZSBpbl0nOwor5pGOPidbdG8gc3RyYW5nbGVdJzsKK+aRmD4nW3BsdWNrXSc7Civmkac+J1tkZXN0cm95XSc7Civmkak+J1tydWJdJzsKK+aRrz4nW3NpbmNlcmVdJzsKK+aRtj4nW3JvbGwgYXJvdW5kIHdpdGggaGFuZF0nOwor5pG4PidbZ2VudGx5IHRvdWNoIHdpdGggaGFuZF0nOwor5pG6PidbZm9sZF0nOwor5pKDPidbc3RyaWtlXSc7Civmkog+J1tzY29vcCBvdXQgb2Ygd2F0ZXJdJzsKK+aSkj4nW3JlbGVhc2VdJzsKK+aSkz4nW3NjcmF0Y2hdJzsKK+aSlT4nW3JpcF0nOwor5pKaPidbdHdpcmwgaW4gZmluZ2Vyc10nOwor5pKePidba25vY2sgYWdhaW5zdF0nOwor5pKkPidbb21pdF0nOwor5pKlPidbbW92ZV0nOwor5pKpPidbbGlmdCB1cF0nOwor5pKrPidbcGF0XSc7Civmkq0+J1tzb3ddJzsKK+aSrj4nW2xpdHRsZSBiaXRdJzsKK+aSsD4nW2NvbXBvc2VdJzsKK+aSsj4nW3BvdW5kXSc7Civmkrk+J1tkaXN0dXJiXSc7Civmkrs+J1tmbG9nXSc7Civmkrw+J1ttb3ZlXSc7Civmk4E+J1tlbWJyYWNlXSc7Civmk4I+J1tydWJdJzsKK+aThT4nW21vbm9wb2xpemVdJzsKK+aThz4nW3NlbGVjdF0nOwor5pONPidbY29uZHVjdF0nOwor5pOSPidbY2F0Y2hdJzsKK+aTlD4nW2NhcnJ5XSc7Civmk5g+J1t0aHVtYl0nOwor5pOaPidbb2NjdXB5XSc7Civmk6A+J1tjcm93ZF0nOwor5pOhPidbY2FycnldJzsKK+aToj4nW3B1bGwgdXBdJzsKK+aToz4nW2h1bGxdJzsKK+aTpj4nW3dpcGVdJzsKK+aTpz4nW3JhaXNlXSc7Civmk6w+J1tkcmFmdF0nOwor5pOvPidbZXhjbHVkZV0nOwor5pOxPidbcGxhY2VdJzsKK+aTsj4nW3Rocm93XSc7Civmk7Q+J1tleHBhbmRdJzsKKyMi5pO2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmk7o+J1twdXRdJzsKK+aTvT4nW3RpY2tsZV0nOwor5pO+PidbZGlzdHVyYl0nOwor5pSAPidbY2xpbWJdJzsKK+aUhT4nW3NhdmVdJzsKK+aUmD4nW3NlaXplXSc7CivmlJw+J1tsZWFkIGJ5IGhhbmRdJzsKK+aUnT4nW3Rha2UgaW5dJzsKK+aUoz4nW3RhbmdsZWRdJzsKK+aUpD4nW3NwcmVhZCBvdXRdJzsKK+aUqj4nW2Rpc3R1cmJdJzsKK+aUqz4nW3NuYXRjaCBhd2F5XSc7CivmlKw+J1tncmFzcF0nOwor5pSvPidbZGlzcGVyc2VdJzsKK+aUtD4nW3JhcF0nOwor5pS1PidbcmFwXSc7CivmlLY+J1tnYXRoZXIgdG9nZXRoZXJdJzsKK+aUtz4nW2V4YW1pbmVdJzsKK+aUuD4nW2Rpc3RhbnRdJzsKK+aUuT4nW2NoYW5nZV0nOwor5pS7PidbYXR0YWNrXSc7CivmlL4+J1twdXRdJzsKK+aUvz4nW2dvdmVybm1lbnRdJzsKK+aVhT4nW2FuY2llbnRdJzsKK+aViD4nW3Jlc3VsdF0nOwor5pWNPidbZXhwcmVzc10nOwor5pWPPidbZmFzdF0nOwor5pWRPidbc2F2ZV0nOwor5pWVPidbYW4gaW1wZXJpYWwgb3JkZXIgb3IgZGVjcmVlXSc7CivmlZY+J1tyYW1ibGVdJzsKK+aVlz4nW2JlIGRlZmVhdGVkXSc7CivmlZg+J1tleHByZXNzXSc7CivmlZk+J1t0ZWFjaF0nOwor5pWdPidbYnJlYWtdJzsKK+aVnj4nW3Jvb215XSc7CivmlaI+J1tkYXJlXSc7CivmlaM+J1tzY2F0dGVyXSc7CivmlaY+J1tlc3RlZW1dJzsKK+aVrD4nW3Jlc3BlY3RdJzsKK+aVsD4nW251bWJlcl0nOwor5pWyPidbc3RyaWtlXSc7CivmlbQ+J1tvcmRlcmx5XSc7CivmlbU+J1tlbmVteV0nOwor5pW3Pidbc3ByZWFkXSc7Civmlbg+J1tudW1iZXJdJzsKK+aWgj4nW2RyYXcgYmFja10nOwor5paDPidba2lsbF0nOwor5paHPidbbGl0ZXJhdHVyZV0nOwor5paIPidbbGVhcm5pbmddJzsKK+aWiT4nW2V2ZW5dJzsKK+aWjD4nW3JlZmluZWRdJzsKK+aWjj4nW3ZlZ2V0YXJpYW4gZGlldF0nOwor5paQPidbZ3JhY2VmdWxdJzsKK+aWkT4nW21vdHRsZWRdJzsKK+aWlz4nW2NoaW5lc2UgcGVja10nOwor5paZPidbY29uc2lkZXJdJzsKK+aWmz4nW2RyeSBtZWFzdXJlIDEwIG9yIDUgdGltZXMgb2YgZG91XSc7Civmlpw+J1tzbGFudGluZ10nOwor5pafPidbcG91ciB3aW5lIG9yIHRlYSBpbnRvIGN1cF0nOwor5pahPidbcmV2b2x2ZV0nOwor5pakPidbY2F0dHldJzsKK+aWpT4nW3Njb2xkXSc7Civmlqc+J1theGVdJzsKK+aWqz4nW2N1dF0nOwor5pasPidbY3V0XSc7Civmlq0+J1tzZXZlcl0nOwor5pavPidbdGhpc10nOwor5pawPidbbmV3XSc7Civmlrc+J1tzZXZlcl0nOwor5pa5Pidbc3F1YXJlXSc7Civmlrw+J1tpbl0nOwor5pa9PidbZ3JhbnRdJzsKK+aXgT4nW3NpZGVdJzsKK+aXgz4nW3NpbGsgYmFubmVyIHdpdGggYmVudCBwb2xlXSc7Civml4Q+J1thIGtpbmQgb2YgYW5jaWVudCBmbGFnXSc7Civml4U+J1t0cmlwXSc7Civml4Y+J1tmbGFnIG9ybmFtZW50XSc7Civml4s+J1tyZXZvbHZlXSc7Civml4w+J1tiYW5uZXIgb3IgZmxhZyBhZG9ybmVkIHdpdGggZmVhdF0nOwor5pePPidbZmFtaWx5IGNsYW5dJzsKK+aXkj4nW2ZyaW5nZXMgb2YgcGVhcmxzIG9uIGNyb3duc10nOwor5peXPidbYmFubmVyXSc7Civml5k+J1thIHBlbm5hbnRdJzsKK+aXmz4nW2EgcGVubmFudF0nOwor5pegPidbbmVnYXRpdmVdJzsKK+aXoT4nW2Nob2tlIG9uIHNvbWV0aGluZyBlYXRlbl0nOwor5peiPidbYWxyZWFkeV0nOwor5pelPidbc3VuXSc7Civml6Y+J1tkYXduXSc7Civml6c+J1tvbGRdJzsKK+aXqD4nW3B1cnBvc2VdJzsKK+aXqT4nW2Vhcmx5XSc7Civml6w+J1t0ZW4tZGF5IHBlcmlvZF0nOwor5petPidbcmlzaW5nIHN1bl0nOwor5pexPidbZHJvdWdodF0nOwor5pe6PidbcHJvc3Blcl0nOwor5pe7PidbaGVhdmVuXSc7CivmmII+J1tyaXNlXSc7CivmmIM+J1thZnRlcm5vb25dJzsKK+aYhj4nW2VsZGVyIGJyb3RoZXJdJzsKK+aYhz4nW3Jpc2VdJzsKK+aYij4nW3N1bW1lciB0aW1lXSc7CivmmIw+J1tsaWdodCBvZiBzdW5dJzsKK+aYjj4nW2JyaWdodF0nOwor5piPPidbZHVza10nOwor5piTPidbY2hhbmdlXSc7CivmmJQ+J1tmb3JtZXJseV0nOwor5picPidbdG8gb3BlbiBvdXRdJzsKK+aYnz4nW3N0YXJdJzsKK+aYoD4nW3Byb2plY3RdJzsKK+aYpT4nW3NwcmluZ10nOwor5pinPidbb2JzY3VyZV0nOwor5pioPidbeWVzdGVyZGF5XSc7CivmmK0+J1ticmlnaHRdJzsKK+aYrz4nW2luZGVlZF0nOwor5pi0Pidbb25lIG9mIHRoZSAyOCBjb25zdGVsbGF0aW9uc10nOwor5pi1PidbaW50aW1hdGVdJzsKK+aYtj4nW2EgbG9uZyBkYXkuIGJyaWdodC4gZXh0ZW5kZWQuIGNsZWFyXSc7CivmmLw+J1tkYXl0aW1lXSc7CivmmL8+J1tleHRlbnNpdmVdJzsKK+aZgT4nW21vcm5pbmddJzsKK+aZgj4nW3RpbWVdJzsKK+aZgz4nW2JyaWdodF0nOwor5pmEPidbYnJpZ2h0XSc7CivmmYk+J1thZHZhbmNlXSc7CivmmYs+J1thZHZhbmNlXSc7CivmmY8+J1twZWFjZWZ1bF0nOwor5pmSPidbZHJ5IGluIHN1bl0nOwor5pmdPidbZGF5dGltZV0nOwor5pmePidbZHJ5XSc7CivmmZ8+J1tjbGVhcl0nOwor5pmiPidbbGlnaHQgb2Ygc3RhcnNdJzsKK+aZpD4nW2hhdmUgaW50ZXJ2aWV3IHdpdGhdJzsKK+aZpj4nW2RhcmtdJzsKK+aZpz4nW2RheWJyZWFrXSc7Civmmag+J1tlYXJseSBtb3JuaW5nXSc7Civmmak+J1tuaWdodF0nOwor5pmuPidbdW5pdmVyc2FsXSc7Civmma8+J1tzY2VuZXJ5XSc7CivmmbA+J1tjbGVhcl0nOwor5pm0PidbY2xlYXIgd2VhdGhlcl0nOwor5pm2PidbY3J5c3RhbF0nOwor5pm6Pidbd2lzZG9tXSc7CivmmoE+J1tkYXduXSc7CisjIuaagj4nW3RlbXBvcmFyeV0nIiwKK+aahD4nW3dhcm1dJzsKK+aahz4nW2xlaXN1cmVdJzsKK+aaiD4nW2hhbG8gaW4gc2t5XSc7Civmmok+J1tzdW5zaGluZV0nOwor5pqOPidbc3VuIGJlZ2lubmluZyBkZWNsaW5lXSc7CivmmpE+J1tob3RdJzsKK+aalj4nW3dhcm1dJzsKK+aalz4nW2RhcmtdJzsKK+aamD4nW3Jpc2luZyBzdW5dJzsKK+aanT4nW2RhcmtdJzsKK+aaoj4nW3Ntb290aGx5XSc7CivmmqY+J1tjYWxlbmRhcl0nOwor5pqrPidbdGVtcG9yYXJ5XSc7Civmmq4+J1tldmVuaW5nXSc7CivmmrQ+J1t2aW9sZW50XSc7Civmmrg+J1ticmlnaHRdJzsKK+aauT4nW3Jpc2VdJzsKK+aavD4nW3Rha2UgZmxlZXRpbmcgZ2xhbmNlIGF0XSc7Civmmr4+J1ttb3JuaW5nIHN1bl0nOwor5puBPidbYW5kXSc7Civmm4Q+J1ticmlnaHRdJzsKK+abhz4nW2JlY29tZSBjbG91ZHldJzsKK+abiT4nW2Rhd25dJzsKK+ablj4nW29ic2N1cmVdJzsKK+abmT4nW2JyaWdodF0nOwor5puaPidbdHdpbGlnaHQganVzdCBiZWZvcmUgc3VuIHJpc2VzXSc7Civmm5w+J1tnbG9yaW91c10nOwor5pudPidbc3VuXSc7Civmm6A+J1tleHRlbnNpdmVdJzsKK+abpj4nW3N1bmxpZ2h0XSc7Civmm6k+J1tpbiBhbmNpZW50IHRpbWVzXSc7Civmm7A+J1tzYXldJzsKK+absj4nW2Nyb29rZWRdJzsKK+absz4nW3RyYWlsXSc7Civmm7Q+J1ttb3JlXSc7Civmm7U+J1t0cmFpbF0nOwor5pu3Pidbd2h5PyB3aGF0PyB3aGVyZT9dJzsKK+abuD4nW2Jvb2tdJzsKK+abuT4nW21pbmlzdHJ5IG9mZmljaWFsc10nOwor5pu8PidbbG9uZ10nOwor5pu9PidbYWxyZWFkeV0nOwor5pu+PidbYWxyZWFkeV0nOwor5pu/PidbY2hhbmdlXSc7CivmnIA+J1ttb3N0XSc7CivmnIM+J1thc3NlbWJsZV0nOwor5pyIPidbbW9vbl0nOwor5pyJPidbaGF2ZV0nOwor5pyLPidbZnJpZW5kXSc7CivmnI0+J1tjbG90aGVzXSc7CivmnI8+J1tsaWdodCBvZiBjcmVzY2VudCBtb29uXSc7CivmnJQ+J1tmaXJzdCBkYXkgb2YgbHVuYXIgbW9udGhdJzsKK+aclT4nW3Byb25vdW4gXCJpXCJdJzsKK+aclj4nW2NsZWFyXSc7CivmnJc+J1tjbGVhcl0nOwor5pybPidbbG9vayBhdCBvciBmb3J3YXJkXSc7CivmnJ0+J1tkeW5hc3R5XSc7CivmnJ4+J1tmdWxsIHllYXJdJzsKK+acnz4nW3BlcmlvZCBvZiB0aW1lXSc7CivmnKY+J1tjb25kaXRpb24gb3IgYXBwZWFyYW5jZSBvZiBtb29uXSc7CivmnKc+J1tjb25kaXRpb24gb3IgYXBwZWFyYW5jZSBvZiBtb29uXSc7CivmnKg+J1t0cmVlXSc7CivmnKo+J1tub3QgeWV0XSc7CivmnKs+J1tmaW5hbF0nOwor5pysPidbcm9vdF0nOwor5pytPidbbGV0dGVyXSc7CivmnK4+J1tza2lsbF0nOwor5pyxPidbY2lubmFiYXJdJzsKK+actD4nW3NpbXBsZV0nOwor5py2PidbY2x1c3RlciBvZiBmbG93ZXJzXSc7CisjIuactj4nW2NsdXN0ZXIgb2YgZmxvd2Vyc10nIiwKKyMi5py2PidbY2x1c3RlciBvZiBmbG93ZXJzXSciLAor5py6PidbZGVza10nOwor5py9PidbZGVjYXllZF0nOwor5py/Pidbc3RhYl0nOworIyLmnYA+J1traWxsXSciLAor5p2GPidbcG9sZV0nOwor5p2JPidbdmFyaW91cyBzcGVjaWVzIG9mIHBpbmUgYW5kIGZpcl0nOwor5p2OPidbcGx1bV0nOwor5p2PPidbYXByaWNvdF0nOwor5p2QPidbbWF0ZXJpYWxdJzsKK+adkT4nW3ZpbGxhZ2VdJzsKK+adkz4nW2hhbmRsZSBvZiBjdXBdJzsKK+adlj4nW2NhbmVdJzsKK+admT4nW2EgdGlueSB3b29kZW4gcG9zdF0nOwor5p2cPidbc3RvcF0nOwor5p2ePidbd2lsbG93XSc7CivmnZ8+J1tiaW5kXSc7CivmnaA+J1tsZXZlcl0nOwor5p2hPidbY2xhdXNlXSc7CivmnaI+J1t3b29kd29ya2VyXSc7CisjIuadoj4nW3dvb2R3b3JrZXJdJyIsCivmnaQ+J1t0eXBlIG9mIG9ha10nOwor5p2lPidbY29tZV0nOwor5p2qPidbdGlwIG9mIHR3aWddJzsKK+adrT4nW2Nyb3NzIHN0cmVhbV0nOwor5p2vPidbY3VwXSc7CivmnbA+J1toZXJvXSc7CivmnbE+J1tlYXN0XSc7CivmnbI+J1ticmlnaHQgc3VuXSc7CivmnbM+J1tvYnNjdXJlXSc7CivmnbU+J1twZXN0bGVdJzsKK+adtz4nW2xvcXVhdF0nOwor5p28Pidbc2h1dHRsZSBvZiBsb29tXSc7Civmnb4+J1twaW5lIHRyZWVdJzsKK+advz4nW3BsYW5rXSc7CisjIuaehT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5p6HPidbbG9xdWF0XSc7Civmnok+J1t1c2VsZXNzXSc7Civmnos+J1tzYW5kYWx3b29kXSc7Civmnow+J1t2YXJpZXR5IG9mIGVsbSB3aXRoIHNtYWxsIHNlZWRzXSc7CivmnpA+J1tzcGxpdCB3b29kXSc7CivmnpU+J1twaWxsb3ddJzsKK+aelz4nW2ZvcmVzdF0nOwor5p6aPidbc3RhbGsgb2Ygc2hydWJdJzsKK+aenD4nW2ZydWl0XSc7Civmnp0+J1ticmFuY2hlc10nOworIyLmnp8+J1t3b29kIHN0cmVha3NdJyIsCisjIuaenz4nW3dvb2Qgc3RyZWFrc10nIiwKK+aeoj4nW2Rvb3IgaGluZ2VdJzsKKyMi5p6mPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmnqk+J1twaW5lIHRyZWVdJzsKK+aerz4nW2RyaWVkIG91dF0nOwor5p6zPidbdHJpZm9saWF0ZSBvcmFuZ2VdJzsKK+aetD4nW2NhbmVdJzsKK+aetj4nW3JhY2tdJzsKK+aetz4nW2Nhbmd1ZSBzY2FmZm9sZF0nOwor5p64Pidba2luZCBvZiBhc3BlbiBmb3VuZCBpbiBzaWNodWFuXSc7Civmnrk+J1tkcnVtc3RpY2tdJzsKK+afgT4nW2xhcmdlIHRpZS1iZWFtc10nOwor5p+EPidbaGFuZGxlXSc7CisjIuafhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmn4g+J1tjb250YWluZXJdJyIsCivmn44+J1tjYWx5eCBvZiBmbG93ZXJdJzsKK+afjz4nW2N5cHJlc3NdJzsKK+afkD4nW2NlcnRhaW4gdGhpbmcgb3IgcGVyc29uXSc7Civmn5E+J1t0YW5nZXJpbmVdJzsKK+afkz4nW2R5ZV0nOwor5p+UPidbc29mdF0nOwor5p+YPidbYSB0aG9ybnkgdHJlZV0nOwor5p+aPidbcHVtZWxvXSc7Civmn50+J1t3YXRjaG1hbicncyByYXR0bGVdJzsKK+afnj4nW29ha10nOwor5p+iPidbcm9vdF0nOwor5p+kPidbaGF3dGhvcm5dJzsKKyMi5p+nPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmn6k+J1tjb2ZmaW4gd2hpY2ggY29udGFpbnMgY29ycHNlXSc7Civmn6w+J1tsZXR0ZXJdJzsKK+afrj4nW2ZsYXQgcGllY2VzIG9mIHdvb2RdJzsKK+afrz4nW2F4ZS1oYW5kbGVdJzsKK+afsT4nW3BpbGxhcl0nOwor5p+zPidbd2lsbG93IHRyZWVdJzsKK+aftD4nW2ZpcmV3b29kXSc7Civmn7U+J1tmZW5jZV0nOwor5p+7PidbaW52ZXN0aWdhdGVdJzsKK+afvj4nW3N0cmFpZ2h0IGdyYWluXSc7Civmn78+J1twZXJzaW1tb25dJzsKK+aggj4nW2Ega2luZCBvZiBldmVyZ3JlZW4gdHJlZV0nOwor5qCDPidbdHlwZSBvZiBvYWtdJzsKK+aghD4nW2dsb3J5XSc7CivmoJM+J1t3b29kZW4gcGVnXSc7CivmoJY+J1twZXJjaF0nOwor5qCXPidbY2hlc3RudXQgdHJlZV0nOwor5qCePidbcHVibGljYXRpb25dJzsKK+agoT4nW3NjaG9vbF0nOwor5qCiPidbY3lwcmVzc10nOwor5qCpPidbc3BlY2llcyBvZiBvYWtdJzsKK+agqj4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHRyZWVzXSc7CivmoKs+J1tmZW5jZV0nOwor5qCyPidbbWFuZ3JvdmVdJzsKK+agtD4nW3NhbmRhbHdvb2RdJzsKK+aguD4nW3NlZWRdJzsKK+aguT4nW3Jvb3RdJzsKK+agvD4nW3BhdHRlcm5dJzsKK+agvT4nW2N1bHRpdmF0ZV0nOwor5qGAPidbY2hpY2tlbiByb29zdF0nOwor5qGBPidbY3Jvc3MtYmVhbXMgb2Ygcm9vZl0nOwor5qGCPidbY2Fzc2lhIG9yIGNpbm5hbW9uXSc7CivmoYM+J1twZWFjaF0nOwor5qGGPidbZnJhbWVdJzsKK+ahiD4nW3RhYmxlXSc7CisjIuahjT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qGOPidbZmV0dGVyc10nOwor5qGQPidbbmFtZSBhcHBsaWVkIHZhcmlvdXMgdHJlZXNdJzsKK+ahkT4nW211bGJlcnJ5IHRyZWVdJzsKK+ahkz4nW3ZhcmlldHkgb2YgdHJlZV0nOwor5qGUPidbY2hpbmVzZSBiZWxsZmxvd2VyXSc7CisjIuahmT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qGcPidbY2hlcnJ5XSc7CivmoZ0+J1suLi4uLi4uLi4uLi4uLi4uXSc7CisjIuahnT4nWy4uLi4uLi4uLi4uLi4uLi5dJyIsCivmoaM+J1tzaGVsZl0nOwor5qGnPidbY2hpbmVzZSBjeXByZXNzXSc7CivmobQ+J1tyYWZ0XSc7CivmobY+J1twYWlsXSc7Civmobc+J1tyYWZ0ZXJdJzsKKyMi5qG+PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmob8+J1twb2xlXSc7CivmooE+J1ticmlkZ2VdJzsKK+aigz4nW2EgY2x1Yl0nOwor5qKFPidbcGx1bXNdJzsKK+aijT4nW3RyZWUgbmFtZV0nOwor5qKPPidbaGFuZGN1ZmZzXSc7CivmopM+J1tjYXRhbHBhIG92YXRhXSc7CivmopQ+J1tnYXJkZW5pYV0nOwor5qKXPidbc3RlbSBvZiBmbG93ZXJdJzsKKyMi5qKYPidbYmFtYm9vIHR1YmVdJyIsCivmop0+J1tjbGF1c2VdJzsKK+ainz4nW293bCB0aHVzXSc7CivmoqA+J1tzbWFsbCBiZWFtIHN1cHBvcnRpbmcgcmFmdGVycyBhdF0nOwor5qKiPidbcG9pbnRlZCB0aXAgb2Ygc29tZXRoaW5nIGxvbmcgbGlrZSBhIGJyYW5jaF0nOwor5qKmPidbZHJlYW1dJzsKK+aipz4nW3N0ZXJjdWxpYSBwbGF0YW5pZm9saWFdJzsKK+aiqD4nW3BlYXJdJzsKK+airT4nW3dlYXZlcicncyBzaHV0dGxlXSc7Civmoq8+J1tsYWRkZXJdJzsKK+aisD4nW3dlYXBvbnNdJzsKK+aisT4nW2Rvb3JzaWxsXSc7CivmorM+J1tjb21iXSc7CivmorU+J1tidWRkaGlzdF0nOwor5qK2Pidbb2FyXSc7Civmork+J1t0aGUgYXJlY2EtbnV0XSc7CisjIuaiuT4nW3RoZSBhcmVjYS1udXRdJyIsCivmorw+J1tibG9jayBvZiB3b29kXSc7Civmo4Q+J1tyZWplY3RdJzsKKyMi5qOGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmo4k+J1tjb3R0b25dJzsKK+ajij4nW2NoZXNzXSc7Civmo4s+J1tjaGVzc10nOwor5qONPidbc3RpY2tdJzsKK+ajkj4nW3N0aWNrXSc7CisjIuajlD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qOVPidbaGVtcCBwYWxtXSc7Civmo5c+J1tkYXRlIHRyZWVdJzsKK+ajmD4nW2p1anViZSB0cmVlXSc7Civmo5o+J1t0ZW50XSc7Civmo58+J1ttYWluIGJlYW1zIHN1cHBvcnRpbmcgaG91c2VdJzsKK+ajoD4nW2NyYWIgYXBwbGUgdHJlZV0nOworIyLmo6E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ajoz4nW2tlcnJpYSBqYXBvbmljYSBwbGFudF0nOwor5qOnPidbd2FyZWhvdXNlXSc7Civmo64+J1tmb3Jlc3RdJzsKK+ajrz4nW2p1anViZSB0cmVlXSc7Civmo7I+J1twZXJjaF0nOwor5qO5Pidbb2FyXSc7Civmo7o+J1tjb2ZmaW5dJzsKK+akgD4nW2Jvd2xdJzsKK+akgT4nW291dGVyLWNvZmZpbl0nOwor5qSEPidbdG8gZ3JhZnRdJzsKK+akhT4nW2NoYWlyXSc7CivmpIg+J1tjZWRhcl0nOwor5qSLPidbZnJ1aXRdJzsKK+akjD4nW2luc3RydW1lbnRdJzsKK+akjT4nW3BsYW50XSc7CivmpI4+J1toYW1tZXJdJzsKK+akjz4nW3RoZSBmb3JraW5nIGJyYW5jaCBvZiBhIHRyZWVdJzsKK+akkj4nW3BlcHBlcl0nOworIyLmpJM+J1tzdHJpa2VdJyIsCisjIuakmj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qSbPidbdHlwZSBvZiBiaXJjaF0nOwor5qScPidbY2hlY2tdJzsKKyMi5qShPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSlPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakpj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+akqj4nW21hY2hpbHVzIG5hbm11XSc7CivmpLA+J1twYWxtIHRyZWVdJzsKK+aktD4nW3BvcGxhcl0nOwor5qS2PidbcGFsbSB0cmVlXSc7CivmpLk+J1thIGNob3BwaW5nIGJvYXJkXSc7CivmpL0+J1tiZWFtc10nOwor5qS/PidbZmF0aGVyXSc7CivmpYo+J1t3aWxsb3ddJzsKK+alkz4nW21hcGxlIHRyZWVdJzsKK+allD4nW3dlZGdlXSc7CivmpZU+J1tvdmFsLXNoYXBlZF0nOwor5qWZPidbbmFtZSBvZiBwbGFudF0nOwor5qWaPidbbmFtZSBvZiBmZXVkYWwgc3RhdGVdJzsKKyMi5qWcPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpZ0+J1ttZWxpYSBqYXBvbmljYV0nOwor5qWePidbdXNlZCBmb3IgY2V5bG9uIGluIGJ1ZGRoaXN0IHRleHRdJzsKK+aloD4nW25hbWUgb2YgdHJlZV0nOwor5qWhPidbZWxtIHRyZWVdJzsKK+aloj4nW3RpbmRlcl0nOwor5qWqPidbc21hbGwgZGlzaF0nOwor5qWrPidbb2FyXSc7Civmpa0+J1twcm9mZXNzaW9uXSc7Civmpa4+J1ttdWxiZXJyeV0nOwor5qWvPidbc2hpZWxkXSc7CivmpbM+J1twbHVtc10nOworIyLmpbQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+altT4nW2V4dHJlbWVdJzsKK+altz4nW21vZGVsIHN0eWxlIG9mIGNoaW5lc2Ugd3JpdGluZ10nOwor5qW4PidbbWFsbG90dXMgamFwb25pY3VzXSc7Civmpbk+J1tjb2x1bW5dJzsKK+alvD4nW2J1aWxkaW5nIG9mIHR3byBvciBtb3JlIHN0b3JpZXNdJzsKK+alvT4nW2hhcHB5XSc7CisjIualvT4nW2hhcHB5XSciLAorIyLmpoA+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSciLAor5qaCPidbZ2VuZXJhbGx5XSc7CisjIuamiT4nW3R5cGUgb2YgZWxtXSciLAor5qaOPidbc21hbGwgZXZlcmdyZWVuIHNocnViXSc7CisjIuamkT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qaUPidbYmV0ZWwtbnV0IHRyZWVdJzsKK+amlT4nW2JhbnlhbiB0cmVlXSc7Civmpps+J1toYXplbG51dF0nOwor5qacPidbcGxhY2FyZF0nOworIyLmpqA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ampz4nW3R5cGUgb2YgeWV3XSc7Civmpq4+J1tnbG9yeV0nOwor5qaxPidbcmFmdGVyXSc7CivmprI+J1twaWxsYXJdJzsKK+amtD4nW3BvbWVncmFuYXRlXSc7Civmprs+J1tjb3RdJzsKK+amvj4nW3BpZWNlcyBvZiB3b29kXSc7Civmpr8+J1thbGRlcl0nOwor5qeBPidbd2l0aGVyXSc7Civmp4M+J1t0cmF5XSc7Civmp4c+J1t0aXAgb2YgYSB0cmVlXSc7Civmp4o+J1tzcGVhcl0nOwor5qeLPidbZnJhbWVdJzsKK+anjD4nW2hhbW1lcl0nOwor5qeNPidbc3BlYXJdJzsKK+anjj4nW3JhZnRdJzsKK+ankD4nW2xvY3VzdCB0cmVlXSc7Civmp5M+J1tsZXZlcl0nOwor5qeYPidbc2hhcGVdJzsKKyMi5qeYPidbc2hhcGVdJyIsCisjIuanmz4nW3RocmVzaG9sZF0nIiwKKyMi5qebPidbdGhyZXNob2xkXSciLAor5qenPidbd29vZGVuIHRhYmxldF0nOwor5qeoPidbb3V0ZXItY29mZmluXSc7CisjIuanqz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qetPidbbWFwbGVdJzsKK+ansj4nW3R5cGUgb2Ygb2FrXSc7Civmp7k+J1tzcGFyXSc7Civmp7s+J1t6ZWxrb3ZhIHRyZWVdJzsKK+anvT4nW3Ryb3VnaF0nOwor5qe/PidbaGliaXNjdXNdJzsKK+aogj4nW2hhcHB5XSc7CivmqIU+J1tmaXIgdHJlZV0nOwor5qiKPidbYSByYWlsaW5nXSc7CivmqIs+J1t0cmVlIG5hbWVdJzsKKyMi5qiMPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuaokj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qiTPidbYnVpbGRpbmcgb2YgdHdvIG9yIG1vcmUgc3Rvcmllc10nOworIyLmqJM+J1tidWlsZGluZyBvZiB0d28gb3IgbW9yZSBzdG9yaWVzXSciLAor5qiXPidba2luZCBvZiB0cmVlIHdpdGggdXNlbGVzcyB0aW1iZXJdJzsKK+aomT4nW21hcmtdJzsKK+aomz4nW2JlbmRpbmcgYnJhbmNoZXNdJzsKK+aonj4nW2Rvb3IgaGluZ2VdJzsKK+aonz4nW2NhbXBob3IgdHJlZV0nOwor5qihPidbbW9kZWxdJzsKKyMi5qiiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmqKM+J1tzaGFwZV0nOwor5qipPidbcG93ZXJdJzsKK+aoqj4nW2Fjcm9zc10nOworIyLmqKo+J1thY3Jvc3NdJyIsCisjIuaoqj4nW2Fjcm9zc10nIiwKK+aotT4nW3dvb2RjdXR0ZXJdJzsKK+aotj4nW2NdJzsKK+aouD4nW3NpbXBsZV0nOwor5qi5PidbdHJlZV0nOwor5qi6PidbdHlwZSBvZiBiaXJjaF0nOwor5qi9PidbZ29ibGV0XSc7CivmqYQ+J1tvbGl2ZV0nOwor5qmHPidbYSBzbGVkZ2UgZm9yIHRyYW5zcG9ydGF0aW9uXSc7CivmqYg+J1tiZW50IG9yIHR3aXN0ZWQgcGllY2Ugb2Ygd29vZF0nOwor5qmLPidbYnJpZGdlXSc7CivmqZg+J1tvcmFuZ2VdJzsKK+apmT4nW29yYW5nZV0nOwor5qmfPidbbWFjaGluZV0nOwor5qmhPidbY2hlc3RudXQgb2FrXSc7CivmqaI+J1tvdmFsLXNoYXBlZF0nOwor5qmmPidbdHJlZV0nOworIyLmqbE+J1tjYWJpbmV0XSciLAorIyLmqbU+J1t3b29kIHBsYWNlZCB1bmRlciByb29mIHRpbGVzXSciLAorIyLmqb8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aqgD4nW3NhbmRhbHdvb2RdJzsKK+aqhD4nW2NhbGwgYXJtc10nOwor5qqNPidbaWxleF0nOwor5qqOPidbc21hbGwgcmVkIGFwcGxlXSc7CivmqpA+J1tlYXZlcyBvZiBob3VzZV0nOwor5qqXPidbdHJlZV0nOwor5qqcPidbY2hpbmVzZSBjeXByZXNzXSc7CivmqqA+J1tzdGFuZCBmb3IgbGFtcF0nOwor5qqiPidbY2hlY2tdJzsKK+aqoz4nW21hc3RdJzsKK+aqqj4nW2NoZXN0bnV0LWxlYXZlZCBvYWtdJzsKK+aqrD4nW3R5cGUgb2YgbG9jdXN0IG9yYWNhY2lhXSc7Civmqq4+J1tibG9jayBvZiB3b29kXSc7CivmqrM+J1tiZXRlbG51dF0nOwor5qq4PidbbGVtb25dJzsKK+aquz4nW3RocmVzaG9sZF0nOworIyLmq4E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+argj4nW29hcl0nOwor5quDPidbY3VwYm9hcmRdJzsKKyMi5quRPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmq5M+J1tvYXJdJzsKK+armj4nW3BhbG1dJzsKK+armz4nW2NvbWIgb3V0XSc7Civmq54+J1tjaXRydXNdJzsKK+arnz4nW2NoZXN0bnV0LWxlYXZlZCBvYWtdJzsKK+arqD4nW3N1cHBvcnRpbmcgYmxvY2tdJzsKK+arqj4nW3R5cGUgb2Ygb2FrXSc7Civmq7o+J1tjYXJ2ZWQgb3IgcGF0dGVybmVkIHdpbmRvdyBzaWxsc10nOwor5qu7PidbY2hlcnJ5XSc7CivmrIQ+J1tyYWlsaW5nXSc7CivmrIU+J1t6ZWxrb3ZhXSc7CivmrIo+J1twb3dlcl0nOwor5qySPidbbmFtZSBvZiB0cmVlXSc7CivmrJY+J1tvbGl2ZV0nOwor5qydPidbbHV4dXJpYW50XSc7CisjIuasnj4nW3RoZSBsYXR0aWNlIG9mIGEgd2luZG93IGEgc2lsbF0nIiwKK+asoD4nW293ZV0nOwor5qyhPidbb3JkZXJdJzsKK+asoz4nW2hhcHB5XSc7CivmrKc+J1t0cmFuc2xpdC46IGV1cm9wZV0nOwor5qyyPidbZGVzaXJlXSc7CivmrLc+J1tzb2JdJzsKK+asuD4nW3NpZ2hzXSc7CivmrLk+J1tmaWVyY2UgZG9nXSc7CivmrLo+J1tjaGVhdF0nOwor5qy9PidbcmVzcGVjdF0nOwor5qy+PidbaXRlbV0nOwor5q2DPidbc21lYXIgb25lJydzIG1vdXRoIHdpdGggYmxvb2Qgb2YgYSB2aWN0aW0gd2hlbiB0YWtpbmcgYW4gb2F0aF0nOwor5q2HPidbcmVzdF0nOwor5q2JPidbZGVmaWNpZW50XSc7CivmrYw+J1tzb25nXSc7CivmrY4+J1tzaWdoXSc7CivmrZA+J1t0cmFuc2xpdC46IGV1cm9wZV0nOwor5q2TPidbaGFwcHldJzsKK+atlD4nW2Jsb3cgdGhyb3VnaCBub3NlXSc7CivmrZk+J1t0byBzdWNrXSc7CivmrZs+J1tkcmF3IGJhY2tdJzsKK+atnz4nW2ZpbmFsIHBhcnRpY2xlIHVzZWQgZXhwcmVzcyBxdWVzXSc7CivmraE+J1toYXBweV0nOwor5q2iPidbc3RvcF0nOwor5q2jPidbcmlnaHRdJzsKK+atpD4nW3RoaXNdJzsKK+atpj4nW21pbGl0YXJ5XSc7Civmrak+J1tzdGVwXSc7Civmrao+J1tzbGFudF0nOwor5q2vPidbdGVldGhdJzsKK+atsz4nW3llYXJdJzsKK+attD4nW3Rha2UgcGxhY2VdJzsKK+atuD4nW3JldHVybl0nOwor5q25PidbYmFkXSc7Civmrbs+J1tkaWVdJzsKK+atvz4nW2RpZV0nOwor5q6APidbZGllIHlvdW5nXSc7CivmroM+J1ttaXNmb3J0dW5lXSc7CivmroQ+J1t0byBlbmRdJzsKK+auhj4nW2Rhbmdlcm91c10nOwor5q6JPidbZGllIGZvciBjYXVzZV0nOwor5q6KPidbZGlmZmVyZW50XSc7Civmros+J1tpbmp1cmVdJzsKK+aujT4nW3RvIHN0YXJ2ZSB0byBkZWF0aF0nOwor5q6VPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor5q6WPidbYnJlZWRdJzsKK+aumD4nW2luanVyZV0nOwor5q6ePidbZGllXSc7CivmrqQ+J1tkaWUgeW91bmddJzsKK+auqj4nW2RpZV0nOwor5q6rPidbdXRtb3N0XSc7Civmrq8+J1tlbmNvZmZpbl0nOwor5q6xPidbYW5uaWhpbGF0ZV0nOwor5q6yPidbYW5uaWhpbGF0ZV0nOwor5q6zPidbbmFtZSBvZiBvbGQgd2VhcG9uXSc7CivmrrQ+J1tiZWF0XSc7CivmrrU+J1tzZWN0aW9uXSc7Civmrrc+J1ttYW55XSc7Civmrro+J1traWxsXSc7Civmrrs+J1tjYXNpbmddJzsKK+auvD4nW2Nhc2luZ10nOwor5q6/PidbaGFsbF0nOwor5q+APidbZGVzdHJveV0nOwor5q+FPidbcmVzb2x1dGVdJzsKK+avhj4nW2JlYXRdJzsKK+aviz4nW2RvIG5vdF0nOwor5q+NPidbbW90aGVyXSc7Civmr44+J1tldmVyeV0nOwor5q+SPidbcG9pc29uXSc7Civmr5M+J1tnaXZlIGJpcnRoIHRvXSc7Civmr5Q+J1tjb21wYXJlXSc7Civmr5g+J1toZWxwXSc7Civmr5s+J1toYWlyXSc7CisjIuavnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5q+rPidbZmluZSBoYWlyXSc7Civmr6w+J1tiYWxsXSc7Civmr68+J1tydWddJzsKK+avsz4nW2ZpbmUgaGFpciBvciBmdXIgb24gYW5pbWFsc10nOwor5rCIPidbZmVsdF0nOwor5rCPPidbY2xhbl0nOwor5rCRPidbcGVvcGxlXSc7CivmsJM+J1twZW9wbGVdJzsKK+awlD4nW3N0ZWFtXSc7CivmsJc+J1thaXJdJzsKK+awmz4nW2dhc10nOwor5rCjPidbYWlyXSc7CivmsKQ+J1toYW5naW5nIGZvZ10nOwor5rC0Pidbd2F0ZXJdJzsKK+awtz4nW2ljZV0nOwor5rC4PidbbG9uZ10nOwor5rC+Pidbb3ZlcmZsb3ddJzsKK+axgD4nW3NhbmRiYXJdJzsKK+axgT4nW2p1aWNlXSc7CivmsYI+J1tzZWVrXSc7CivmsY4+J1tmbG9hdF0nOwor5rGQPidbbmlnaHQgdGlkZXNdJzsKK+axlT4nW2Jhc2tldCBmb3IgY2F0Y2hpbmcgZmlzaF0nOwor5rGXPidbcGVyc3BpcmF0aW9uXSc7CivmsZo+J1tmaWx0aHldJzsKK+axnT4nW3lvdV0nOwor5rGePidbZWxlbWVudCBtZXJjdXJ5XSc7CivmsZ8+J1tsYXJnZSByaXZlcl0nOwor5rGgPidbcG9vbF0nOworIyLmsaI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+axqD4nW01pKGx1bykgcml2ZXIgaW4gaHVuYW4gcHJvdmluY2Ugd2hlcmUgUXUgWXVhbiBkcm93bmVkIGhpbXNlbGZdJzsKK+axqj4nW3Zhc3RdJzsKK+axsD4nW2V4Y2Vzc2l2ZV0nOwor5rGyPidbZHJhdyB3YXRlciBmcm9tIHdlbGxdJzsKKyMi5rGyPidbZHJhdyB3YXRlciBmcm9tIHdlbGxdJyIsCivmsbo+J1tkZWNpZGVdJzsKK+axvT4nW3N0ZWFtXSc7Civmsb4+J1tyaXZlciBpbiBzaGFueGkgcHJvdmluY2VdJzsKK+aygT4nW3NvYWsgaW50b10nOwor5rKCPidbcml2ZXIgaW4gc291dGhlYXN0IHNoYW5kb25nIGZsb3ddJzsKK+aygz4nW3dhdGVyXSc7Civmsog+J1tzaW5rXSc7Civmsow+J1tjaGFvdGljXSc7Civmso0+J1tmcmVlemluZ10nOwor5rKQPidbYmF0aGVdJzsKK+aykj4nW25vdF0nOwor5rKTPidbY29ubmVjdGVkXSc7CivmspY+J1twb3VyXSc7Civmspk+J1tzYW5kXSc7Civmspo+J1tpc2xldCBpbiBzdHJlYW1dJzsKK+aymz4nW2FidW5kYW50XSc7CivmsqE+J1tub3RdJzsKK+ayoj4nW21hcnNoXSc7Civmsqs+J1tmcm90aF0nOwor5rKuPidbc3RvcF0nOwor5rKxPidbcml2ZXJzXSc7CivmsrM+J1tyaXZlcl0nOwor5rK4PidbYm9pbF0nOwor5rK5Pidbb2lsXSc7Civmsro+J1t0dXJidWxlbnRdJzsKK+ayuz4nW2dvdmVybl0nOwor5rK8PidbbGFrZV0nOwor5rK9PidbYnV5IGFuZCBzZWxsXSc7Civmsr4+J1ttb2lzdGVuXSc7Civmsr8+J1tmb2xsb3cgY291cnNlXSc7Civms4E+J1tjb25kaXRpb25dJzsKK+azhD4nW2xlYWtdJzsKK+azhT4nW3N3aW1dJzsKK+aziT4nW3NwcmluZ10nOwor5rOKPidbYW5jaG9yIHZlc3NlbF0nOwor5rOMPidbdG8gc2VlcCBvdXRdJzsKK+azkz4nW2NsZWFyXSc7Civms5U+J1tsYXddJzsKK+azlz4nW211Y291c10nOwor5rOZPidbcm9hcl0nOwor5rObPidbZHJpZnRdJzsKK+aznT4nW2dvIHVwc3RyZWFtXSc7Civms6E+J1tidWJibGVzXSc7Civms6I+J1t3YXZlc10nOwor5rOjPidbY3J5XSc7Civms6U+J1ttdWRdJzsKK+azqD4nW2NvbmNlbnRyYXRlXSc7Civms6o+J1t0ZWFyc10nOwor5rOvPidbZGVzdHJveV0nOwor5rOwPidbZ3JlYXRdJzsKK+azsT4nW2dyZWF0XSc7Civms7M+J1tkaXZlXSc7CivmtIs+J1tvY2Vhbl0nOwor5rSMPidbY2xlYXJdJzsKK+a0kj4nW3Nwcmlua2xlXSc7CivmtJc+J1t3YXNoXSc7CivmtJk+J1tuYW1lIG9mIGEgcml2ZXIgaW4gc2hhbmRvbmddJzsKK+a0mz4nW3JpdmVyIGluIHNoYWFueGkgcHJvdmluY2VdJzsKK+a0nj4nW2NhdmVdJzsKK+a0nz4nW3NuaXZlbF0nOwor5rSlPidbZmVycnldJzsKK+a0qT4nW2xlYWtdJzsKK+a0qj4nW3Zhc3RdJzsKK+a0qz4nW3RvIGRpdGNoXSc7CivmtLI+J1tjb250aW5lbnRdJzsKK+a0sz4nW2RhbXBdJzsKK+a0tT4nW3RydWVdJzsKK+a0tj4nW3RoZSBydXNoIG9mIHdhdGVyXSc7CivmtLg+J1tzcGFya2xlXSc7CivmtLs+J1tsaXZlXSc7CivmtL0+J1tzcHJlYWRdJzsKK+a0vj4nW3NjaG9vbCBvZiB0aG91Z2h0XSc7CivmtYE+J1tmbG93XSc7CivmtYQ+J1twdXJlXSc7CivmtYU+J1tzaGFsbG93XSc7CivmtZk+J1t6aGVqaWFuZyBwcm92aW5jZV0nOwor5rWaPidbZHJlZGdlXSc7CivmtZw+J1tjcmVla10nOwor5rWjPidbdG8gd2FzaF0nOwor5rWkPidbYmVhdGluZyBvZiBvY2Vhbl0nOwor5rWmPidbYmFuayBvZiByaXZlcl0nOwor5rWpPidbZ3JlYXRdJzsKK+a1qj4nW3dhdmVdJzsKK+a1rD4nW25hdXRpY2FsIG1pbGVdJzsKK+a1rj4nW2Zsb2F0XSc7CivmtbQ+J1tiYXRoZV0nOwor5rW3Pidbc2VhXSc7Civmtbg+J1tzb2FrXSc7Civmtbk+J1tzYXR1cmF0ZV0nOwor5raFPidbYmxhY2tlbl0nOwor5raIPidbdmFuaXNoXSc7Civmtow+J1tzdXJnZSB1cF0nOwor5raOPidbc2FsaXZhXSc7CivmtpM+J1ticm9va10nOwor5raVPidbdGVhcl0nOwor5raZPidbdGVhcnNdJzsKK+a2mz4nW2xhcmdlIHdhdmVzXSc7Civmtpw+J1tkaXRjaF0nOwor5ravPidbc2hvcmVdJzsKK+a2sj4nW3NhcF0nOwor5ra1Pidbc29ha10nOwor5ra4PidbZHJpZWQgdXBdJzsKK+a2vD4nW2Nvb2xdJzsKK+a3gD4nW3NoYWxsb3cgd2F0ZXJdJzsKK+a3hT4nW3dhdGVyIHVzZWQgd2FzaCByaWNlXSc7Civmt4Y+J1tjb25mdXNlZF0nOwor5reHPidbcml2ZXIgaW4gaGVuYW4gcHJvdmluY2VdJzsKK+a3iz4nW2RyaXBdJzsKK+a3jD4nW3RyaWNrbGVdJzsKK+a3kT4nW2dvb2RdJzsKK+a3kj4nW2JpdHRlciBjb2xkXSc7CisjIua3lT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5reYPidbd2FzaCBpbiBzaWV2ZV0nOwor5reZPidbZ3VyZ2xpbmcgc291bmQgb2Ygd2F0ZXJdJzsKK+a3nj4nW25hbWUgb2YgYSByaXZlciBpbiBKaWFuZ3N1XSc7Civmt6E+J1t3ZWFrXSc7Civmt6Q+J1ttdWRdJzsKK+a3pj4nW3JpdmVyIGluIGppYW5neGkgcHJvdmluY2U6IHdhdGVyXSc7Civmt6g+J1twdXJlXSc7Civmt6o+J1tiZSBsb3N0XSc7Civmt6s+J1tvYnNjZW5lXSc7Civmt6w+J1t0ZW1wZXJdJzsKK+a3rj4nW3JpdmVyIGluIGFuaHVpIHByb3ZpbmNlXSc7Civmt7E+J1tkZWVwXSc7Civmt7M+J1tjeWFub2dlbl0nOwor5re1PidbZ3VsZl0nOwor5re3PidbbWl4XSc7Civmt7k+J1tkcm93bl0nOwor5re6Pidbc2hhbGxvd10nOwor5re7PidbYXBwZW5kXSc7CivmuIU+J1tjbGVhcl0nOwor5riHPidbdGhpcnN0eV0nOwor5riIPidbaGVscF0nOwor5riJPidbZm9yZCBzdHJlYW1dJzsKK+a4ij4nW3N1cmdlIHVwXSc7CivmuIs+J1thc3RyaW5nZW50XSc7CivmuJM+J1ttb3VudGFpbiBzdHJlYW1dJzsKK+a4lT4nW3N1cmdlIHVwXSc7CivmuJk+J1tzY2F0dGVyXSc7CivmuJo+J1tzbWFsbCBzYW5kIGJhbmtdJzsKK+a4mz4nW2RlY3JlYXNlXSc7CivmuJ0+J1tjaGFuZ2VdJzsKK+a4nz4nWyhvZiB3YXRlcikgbm90IGZsb3dpbmddJzsKK+a4oD4nW2RpdGNoXSc7CivmuKE+J1tjcm9zc10nOwor5rijPidbcmVmdXNlXSc7CivmuKQ+J1tzd2VsbGluZ10nOwor5rilPidbbW9pc3Rlbl0nOwor5rimPidbc3dpcmxdJzsKK+a4qT4nW2x1a2V3YXJtXSc7CivmuKs+J1tiZWF0aW5nIG9mIG9jZWFuXSc7CivmuKw+J1ttZWFzdXJlXSc7CivmuK0+J1tuYW1lIG9mIGEgcml2ZXIgaW4gc2hhYW54aV0nOwor5riuPidbcml2ZXIgaW4gc2hhbmRvbmcgcHJvdmluY2VdJzsKK+a4rz4nW3BvcnRdJzsKK+a4uD4nW3N3aW1dJzsKK+a4uj4nW2VuZGxlc3NseSBsb25nXSc7CivmuL4+J1ttdWRkeV0nOwor5rmDPidbc291bmQgb2Ygd2F2ZXNdJzsKK+a5ij4nW3BpZWNlIHRvZ2V0aGVyXSc7CivmuY0+J1tyYXBpZCB3YXRlciBjdXJyZW50XSc7CivmuY4+J1tmbHVzaGVkIHdpdGggZHJpbmtdJzsKK+a5lj4nW2xha2VdJzsKK+a5mD4nW2h1bmFuIHByb3ZpbmNlXSc7CivmuZs+J1tkZWVwXSc7CivmuZ8+J1tyaXZlciBpbiBxaW5naGFpIHByb3ZpbmNlXSc7Civmuac+J1t3ZWxsIHVwXSc7Civmuas+J1thIHNtYWxsIHBvbmRdJzsKK+a5rj4nW2J1cnldJzsKK+a5rz4nW2hvdCB3YXRlcl0nOwor5rmyPidbZmxvd10nOworIyLmubM+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSciLAor5rm+PidbYmF5XSc7Civmub8+J1t3ZXRdJzsKKyMi5rm/Pidbd2V0XSciLAorIyLmub8+J1t3ZXRdJyIsCivmuow+J1twb3VyXSc7Civmuo8+J1twb29sXSc7CivmupA+J1tzcHJpbmddJzsKK+a6lj4nW3J1bGVdJzsKK+a6mD4nW2FicnVwdGx5XSc7Civmupw+J1tzbGlkZV0nOwor5rqdPidbZGl0Y2hdJzsKK+a6nz4nW2RyaXp6bGluZyByYWluXSc7CivmuqI+J1tvdmVyZmxvd10nOwor5rqlPidbYmlnXSc7Civmuqo+J1ttb3VudGFpbiBzdHJlYW1dJzsKK+a6rz4nW2dvIHVwc3RyZWFtXSc7CivmurI+J1t1cmluYXRlXSc7CivmurY+J1ttZWx0XSc7Civmurc+J1twcml2eV0nOwor5rq6PidbZHJvd25dJzsKK+a6vT4nW21vaXN0XSc7Civmu4I+J1t0b3JyZW50aWFsXSc7Civmu4Q+J1tibHVlXSc7Civmu4U+J1tleHRpbmd1aXNoXSc7Civmu4k+J1tkZWVwXSc7Civmu4s+J1tncm93XSc7Civmu4w+J1t3YXNoXSc7Civmu5E+J1tzbGlwXSc7Civmu5M+J1tzZWRpbWVudF0nOwor5ruUPidbb3ZlcmZsb3ddJzsKK+a7lT4nWzxhcmNoPiBjb3VudHkgaW4gc2hhbmRvbmcgcHJvdmluY2VdJzsKK+a7nT4nW3JhaW5pbmddJzsKK+a7nj4nW2Jsb2NrIHVwXSc7Civmu6w+J1tzaGFuZ2hhaV0nOwor5ruvPidbYmxvY2sgdXBdJzsKK+a7sj4nW3NvYWsgdGhyb3VnaF0nOwor5ru0PidbZHJpcF0nOwor5ru3PidbdGhpY2sgZ3JhdnldJzsKK+a7uD4nW3JpdmVyYmFua10nOwor5ru+PidbdHVybl0nOwor5ru/PidbZmlsbF0nOwor5ryBPidbdG8gZmlzaF0nOwor5ryCPidbZmxvYXRdJzsKK+a8hj4nW3Zhcm5pc2hdJzsKK+a8iT4nW2ZpbHRlcl0nOwor5ryPPidbbGVha10nOwor5ryRPidbd2F0ZXJdJzsKK+a8kz4nW3JpdmVyIGluIGd1YW5neGkgcHJvdmluY2VdJzsKK+a8lD4nW3BlcmZvcm1dJzsKK+a8lT4nW3RyYW5zcG9ydCBieSB3YXRlcl0nOwor5rygPidbZGVzZXJ0XSc7CivmvKI+J1tjaGluZXNlIHBlb3BsZV0nOwor5ryjPidbZmxvd2luZyB3YXRlcl0nOwor5ryrPidbb3ZlcmZsb3cgb2Ygd2F0ZXJdJzsKK+a8rD4nW3NvYWtdJzsKK+a8sT4nW2dhcmdsZV0nOwor5ryyPidbcmlzZSBpbiBwcmljZV0nOwor5ry4PidbZ3JhZHVhbGx5XSc7CivmvL4+J1tvdmVyZmxvd10nOwor5ry/PidbYW55IHRoaWNrIGZsdWlkXSc7CivmvYE+J1tyaXZlciBpbiBhbmh1aV0nOwor5r2FPidbcG91cl0nOwor5r2UPidbY2xlYW5dJzsKK+a9mD4nW3N1cm5hbWVdJzsKK+a9mz4nW2hpZGVdJzsKK+a9nD4nW2hpZGVdJzsKK+a9nz4nW2xhbmQgaW51bmRhdGVkIHdpdGggc2FsdCBmcm9tIHRpXSc7CivmvaQ+J1tzb2Z0XSc7CivmvaY+J1t0byBmbG9vZF0nOwor5r2tPidbZGVlcCBwb29sXSc7Civmva4+J1t0aWRlXSc7Civmva8+J1tzdGVlcCBiYW5rIGJ5IHN0cmVhbV0nOwor5r2wPidbZmxvb2Rpbmcgcml2ZXJdJzsKK+a9tD4nW3BvbmRdJzsKK+a9uD4nW3dlZXBdJzsKK+a9uj4nW3NvdW5kIG9mIGZsb3dpbmcgd2F0ZXJdJzsKK+a9vD4nW2hpZ2hdJzsKK+a+gD4nW2FzdHJpbmdlbnRdJzsKK+a+gT4nW2FzdHJpbmdlbnRdJzsKK+a+gj4nW2NsZWFyIGFuZCBzdGlsbCB3YXRlcl0nOwor5r6EPidbcHVyaWZ5IHdhdGVyIGJ5IGFsbG93aW5nIHNlZGltZW5dJzsKK+a+hj4nW3NwcmF5XSc7Civmvo4+J1tzcGxhdHRlcl0nOwor5r6RPidbc2xpZGVdJzsKK+a+lz4nW2Jyb29rXSc7CivmvqE+J1t3YXNoXSc7CivmvqM+J1tjbGVhbnNlXSc7CivmvqQ+J1ttYXJzaF0nOworIyLmvqo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+a+sT4nW3NlZGltZW50XSc7CivmvrM+J1tpbmxldF0nOwor5r65PidbY2FsbV0nOwor5r+APidbYXJvdXNlXSc7Civmv4E+J1ttdWRkeV0nOwor5r+CPidbd2F0ZXJmYWxsXSc7Civmv4M+J1t0aGlja10nOwor5r+GPidbcml2ZXIgYmFua10nOwor5r+UPidbbWFueV0nOwor5r+VPidbd2V0XSc7Civmv5g+J1ttdWRdJzsKK+a/mz4nW2RyaXp6bGluZ10nOwor5r+fPidbaGVscF0nOwor5r+gPidbbW9hdF0nOwor5r+hPidbaW1tZXJzZV0nOwor5r+kPidbbGFyZ2Ugd2F2ZXNdJzsKK+a/qz4nW2Zsb29kXSc7Civmv6w+J1tkcmVkZ2VdJzsKK+a/rj4nW2NvdW50eSBpbiBIZW5hbiBwcm92aW5jZV0nOwor5r+vPidbd2FzaCBvdXRdJzsKK+a/sT4nW2JlYWNoXSc7Civmv7M+J1toaWRlXSc7Civmv7Y+J1ticm9hZF0nOwor5r+6Pidbc3ByaW5rbGVdJzsKK+a/vj4nW3N0cmFpbiBvdXRdJzsKK+eAgT4nW3dhdmVzXSc7CivngIk+J1tkcmFpbiBvZmZdJzsKK+eAiz4nW2p1aWNlXSc7CivngI8+J1tjbGVhcl0nOwor54CRPidbd2F0ZXJmYWxsXSc7CivngJU+J1thcHByb2FjaF0nOwor54CYPidbcml2ZXIgaW4gamlhbmd4aSBwcm92aW5jZV0nOwor54CaPidbdmFzdF0nOwor54CbPidbc2VhXSc7CivngJ0+J1t0cmlja2xlXSc7CivngJ4+J1twb29sIGluIGEgcml2ZXJdJzsKK+eAnz4nW3NvdW5kIG9mIGJlYXRpbmcgd2luZCBhbmQgcmFpbl0nOwor54CmPidbcG9uZF0nOwor54CnPidbcmFpbmluZ10nOwor54CsPidbc3dpZnQgY3VycmVudF0nOwor54CwPidbb3ZlcmZsb3ddJzsKK+eAsj4nW3dhdmVzXSc7CivngL4+J1tvdmVyZmxvd2luZ10nOwor54GMPidbcG91cl0nOwor54GRPidbc3ByaW5rbGVdJzsKK+eBmD4nW2JhbmtdJzsKK+eBoz4nW2JheV0nOwor54GrPidbZmlyZV0nOwor54GvPidbbGFudGVybl0nOwor54GwPidbYXNoZXNdJzsKK+eBuD4nW2NhdXRlcml6ZSB3aXRoIG1veGFdJzsKK+eBvD4nW2J1cm5dJzsKK+eBvT4nW2NhbGFtaXR5XSc7Civngok+J1tmaXJlcGxhY2VdJzsKK+eCij4nW2Nvb2tdJzsKK+eCjj4nW2ZsYW1lXSc7CivngpI+J1tmcnldJzsKK+eCmT4nW3JvYXN0XSc7Civngqw+J1t0b3JjaF0nOwor54KtPidbY2hhcmNvYWxdJzsKK+eCrj4nW2xhcmdlIGd1bl0nOwor54KvPidbYnJpZ2h0XSc7CivngrM+J1ticmlnaHRdJzsKK+eCuD4nW2ZyeSBpbiBvaWxdJzsKK+eCuT4nW2RvdF0nOwor54K6PidbZG9dJzsKK+eDiD4nW2ZpZXJ5XSc7Civng4s+J1tib2FzdF0nOwor54OPPidbY3Jvd10nOwor54OZPidbYnJhbmRdJzsKK+eDnT4nW3Jpc2VdJzsKK+eDnz4nW3Ntb2tlXSc7Civng7E+J1ticmlnaHRdJzsKK+eDuT4nW2JvaWxdJzsKK+eDvT4nW3NpZ25hbCBmaXJlXSc7CivnhIk+J1t0aGVyZXVwb25dJzsKK+eElD4nW2ZsYW1lXSc7CivnhJk+J1tkcnkgb3ZlciBzbG93IGZpcmVdJzsKK+eEmj4nW2J1cm5dJzsKK+eEnD4nW2ZpcmVdJzsKK+eEoT4nW25lZ2F0aXZlXSc7CivnhKY+J1tidXJuZWRdJzsKK+eEtj4nW3llc10nOwor54S8PidbYnVybl0nOwor54WJPidbc21lbHRdJzsKK+eFjD4nW2JyaWdodF0nOwor54WOPidbZnJ5IGluIGZhdCBvciBvaWxdJzsKK+eFlT4nW2JyaWdodF0nOwor54WWPidbd2FybV0nOwor54WZPidbc21va2VdJzsKK+eFoj4nW2Fsb25lXSc7CivnhaQ+J1tjb2FsXSc7CivnhaU+J1tzaGluaW5nXSc7CivnhaY+J1traW5kXSc7Civnhac+J1tzaGluZV0nOwor54WpPidbYm90aGVyXSc7Civnhaw+J1tyb2FzdF0nOwor54WuPidbY29va10nOwor54W9Pidbc3RpciB1cF0nOwor54aEPidbcHV0IG91dF0nOwor54aIPidbYnJpZ2h0XSc7Civnhoo+J1tiZWFyXSc7Civnho8+J1tzbW9rZV0nOwor54aUPidbbWVsdF0nOworIyLnhpU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eGmT4nW2JyaWdodF0nOwor54afPidbd2VsbCBjb29rZWRdJzsKK+eGqD4nW2lyb25dJzsKK+eGrD4nW2Nvb2sgZG93bl0nOwor54axPidbaG90XSc7Civnhrk+J1tkaW0gbGlnaHRdJzsKK+eGvj4nW2J1cm5pbmcgaG90XSc7Civnh4M+J1tidXJuXSc7Civnh4g+J1tsYW50ZXJuXSc7Civnh4k+J1toZWF0IHdpdGggZmlyZV0nOwor54eOPidbYnVybl0nOwor54eQPidbcGhvc3Bob3J1c10nOwor54eSPidbYnVybl0nOwor54eUPidbdG8gcm9hc3RdJzsKK+eHlT4nW3N3YWxsb3cgKGJpcmQpXSc7CisjIueHlz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54efPidbZW5jYW1wbWVudF0nOwor54egPidbd2FybV0nOwor54elPidbZHJ5XSc7Civnh6Y+J1t2aXZpZF0nOwor54enPidbZmxpbnRzdG9uZV0nOwor54esPidbYnVybiBkb3duXSc7Civnh60+J1tjYW5kbGVdJzsKK+eHrj4nW2hhcm1vbml6ZV0nOworIyLnh7U+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eHuT4nW2ZpcmVdJzsKK+eHuz4nW3Ntb2tlXSc7Civnh7w+J1tjaW5kZXJzXSc7Civnh78+J1tzaGluZV0nOwor54iGPidbY3JhY2tsZV0nOwor54iNPidbc2hpbmVdJzsKK+eIkD4nW2ZpcmVwbGFjZV0nOwor54ibPidbcm90dGVuXSc7CivniKg+J1tvdmVuXSc7CivniKo+J1tjbGF3XSc7CivniKw+J1tjcmF3bF0nOwor54itPidbZGlzcHV0ZV0nOwor54iwPidbbGVhZCBvbiB0b10nOwor54iyPidbZG9dJzsKK+eItT4nW2ZldWRhbCB0aXRsZSBvciByYW5rXSc7CivniLY+J1tmYXRoZXJdJzsKK+eIuj4nW2ZhdGhlcl0nOwor54i7PidbZGlhZ3JhbXMgZm9yIGRpdmluYXRpb25dJzsKK+eIvD4nW2Nob3BwaW5nIGJvYXJkIG9yIGJsb2NrXSc7CivniL0+J1toYXBweV0nOwor54i+PidbeW91XSc7CivniL8+J1toYWxmIG9mIHRyZWUgdHJ1bmtdJzsKK+eJgD4nW2JlZF0nOwor54mGPidbd2FsbF0nOwor54mHPidbc2xpY2VdJzsKK+eJiD4nW3ByaW50aW5nIGJsb2Nrc10nOwor54mLPidbbWVtb3JhbmR1bV0nOwor54mMPidbc2lnbmJvYXJkXSc7CivniZI+J1tkb2N1bWVudHNdJzsKK+eJmD4nW3dyaXRpbmcgdGFibGV0XSc7CivniZk+J1t0b290aF0nOwor54mbPidbY293XSc7CivniZ0+J1tmZW1hbGUgb2Ygc3BlY2llc10nOwor54mfPidbbWFrZV0nOwor54mhPidbbWFsZSBvZiBhbmltYWxzXSc7CivniaI+J1twcmlzb25dJzsKK+eJpz4nW3RlbmQgY2F0dGxlXSc7Civniak+J1t0aGluZ10nOwor54myPidbc2FjcmlmaWNpYWwgYW5pbWFsXSc7CivnibQ+J1tnb3JlXSc7Civnibk+J1tzcGVjaWFsXSc7Civnib0+J1tkcmFnXSc7Civnib4+J1t0byBvcHBvc2VdJzsKK+eKgD4nW3JoaW5vY2Vyb3NdJzsKK+eKgT4nW3Bsb3ddJzsKK+eKgj4nW3Bsb3ddJzsKK+eKhz4nW3J1biBmYXN0XSc7CivnipI+J1tlbnRlcnRhaW4gdmljdG9yaW91cyBzb2xkaWVyc10nOwor54qWPidbYnJpbmRsZWQgb3hdJzsKK+eKoD4nW3NhY3JpZmljZV0nOwor54qiPidbY2FsZl0nOwor54qnPidbc2FjcmlmaWNlXSc7Civniqw+J1tkb2ddJzsKK+eKrz4nW2NvbW1pdCBjcmltZV0nOwor54qyPidbd29sZl0nOwor54q2PidbZm9ybV0nOwor54q5PidbbGlrZV0nOwor54uCPidbaW5zYW5lXSc7Civni4M+J1t0byBjb3ZldF0nOwor54uEPidbdHJpYmUgZnJvbSBub3J0aGVybiBjaGluYV0nOwor54uGPidbcGVraW5lc2UgZG9nXSc7Civni44+J1tiZSBmYW1pbGlhciB3aXRoXSc7Civni5A+J1tzcGVjaWVzIG9mIGZveF0nOwor54uSPidbYmFib29uXSc7Civni5c+J1tkb2ddJzsKK+eLmT4nW2FwZV0nOworIyLni5s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eLoD4nW3ZpY2lvdXNdJzsKK+eLoT4nW2N1bm5pbmddJzsKK+eLoj4nW2FuaW1hbCBuYW1lXSc7Civni6k+J1t3aW50ZXIgaHVudGluZ10nOwor54usPidbYWxvbmVdJzsKK+eLrT4nW25hcnJvd10nOwor54u3PidbcmFzaF0nOwor54u4PidbZm94XSc7Civni7k+J1tuYXJyb3ddJzsKK+eLvD4nW3dvbGZdJzsKK+eLvT4nW2xlZ2VuZGFyeSBhbmltYWwgd2l0aCBzaG9ydCBmb3JlXSc7CivnjIo+J1tsaW9uXSc7CivnjJY+J1ttYWRdJzsKK+eMlz4nW2V4Y2xhbWF0aW9uIG9mIGFkbWlyYXRpb25dJzsKK+eMmz4nW3Zpb2xlbnRdJzsKK+eMnD4nW2d1ZXNzXSc7CivnjJ0+J1thYnJ1cHRseV0nOwor54yfPidbaHVudF0nOwor54ylPidbdnVsZ2FyXSc7CivnjKk+J1tzcGVjaWVzIG9mIG9yYW5ndXRhbl0nOwor54yqPidbcGlnXSc7CivnjKs+J1tjYXRdJzsKK+eMrj4nW29mZmVyXSc7CisjIueMrz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54y0PidbbW9ua2V5XSc7CivnjLY+J1tsaWtlXSc7CivnjLc+J1twbGFuXSc7CivnjL4+J1tjcmFmdHldJzsKK+eMvz4nW2FwZV0nOwor542EPidbcHJpc29uXSc7CivnjYU+J1tsaW9uXSc7CivnjY4+J1twcml6ZV0nOwor542PPidbdGhlIHBhbnRoZXJdJzsKK+eNlz4nW3VucnVseV0nOwor542jPidbYmVhc3RdJzsKK+eNqD4nW2Fsb25lXSc7Civnjao+J1tzbHldJzsKK+eNsD4nW2Zlcm9jaW91cyBhcHBlYXJhbmNlXSc7CivnjbI+J1tvYnRhaW5dJzsKK+eNtT4nW2h1bnRdJzsKK+eNuD4nW2JlYXN0XSc7Civnjbo+J1tvdHRlcl0nOwor5427Pidbb2ZmZXJdJzsKK+eOhD4nW2RlZXBdJzsKK+eOhz4nW3RvIGxlYWRdJzsKK+eOiT4nW2phZGVdJzsKK+eOiz4nW2tpbmddJzsKK+eOlj4nW2JsYWNrLWNvbG9yZWQgamFkZV0nOwor546pPidbcGxheSB3aXRoXSc7CivnjrI+J1t0aW5rbGluZyBvZiBqYWRlXSc7CivnjrM+J1t0b3J0b2lzZSBzaGVsbF0nOwor5467PidbZ2xhc3NdJzsKK+ePgD4nW2FtYmVyXSc7Civnj4I+J1tpbmZlcmlvciBraW5kIG9mIGphZGVdJzsKK+ePiD4nW29ybmFtZW50IGF0dGFjaGVkIHdvbWFuJydzIGhhaXJwaV0nOwor54+KPidbY29yYWxdJzsKK+ePjT4nW3ByZWNpb3VzXSc7Civnj44+J1twcmVjaW91c10nOwor54+ePidba2luZCBvZiBuZWNrbGFjZV0nOwor54+gPidbcHJlY2lvdXMgc3RvbmVdJzsKK+ePpT4nW2VhciBvcm5hbWVudF0nOwor54+qPidbamFkZSB0YWJsZSBjb25mZXJyZWQgdXBvbiBmZXVkYWxdJzsKK+ePrT4nW2NsYXNzXSc7Civnj64+J1tqYWRlIG9ybmFtZW50XSc7Civnj7E+J1tuZWNrbGFjZSBtYWRlIG9mIHByZWNpb3VzIHN0b25lc10nOworIyLnj7g+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ePvj4nW2FwcGVhcl0nOwor55CDPidbYmFsbF0nOwor55CFPidbdmFyaWV0eSBvZiB3aGl0ZSBjYXJuZWxpYW5dJzsKK+eQhj4nW3JlYXNvbl0nOwor55CJPidbc3BhcmtsaW5nIHN0b25lXSc7CivnkKI+J1twb2xpc2ggamFkZV0nOwor55ClPidbamV3ZWwgaW4gc2hhcGUgb2YgdGlnZXJdJzsKK+eQsj4nW25lY2tsYWNlXSc7CivnkLM+J1tiZWF1dGlmdWwgamFkZV0nOwor55C0PidbY2hpbmVzZSBsdXRlIG9yIGd1aXRhcl0nOwor55C1PidbZ3VpdGFyLWxpa2UgaW5zdHJ1bWVudF0nOwor55C2PidbZ3VpdGFyLWxpa2UgaW5zdHJ1bWVudF0nOwor55C6PidbZW5hbWVsXSc7CivnkL8+J1ticmlnaHRdJzsKK+eRgT4nW2ZpbmUgcGllY2Ugb2YgamFkZV0nOwor55GVPidbZmxhdyBpbiBnZW1dJzsKK+eRmT4nW2FnYXRlXSc7CivnkZo+J1tjb3JhbF0nOwor55GbPidbbHVzdGVyIG9mIGdlbV0nOwor55GcPidbZmxhd2xlc3MgZ2VtIG9yIGpld2VsXSc7CivnkZ4+J1tmZWxpY2l0b3VzIG9tZW5dJzsKK+eRnz4nW2xhcmdlIHN0cmluZ2VkIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor55GgPidbcHJlY2lvdXMgc3RvbmVdJzsKK+eRoz4nW2ZyYWdtZW50c10nOwor55GkPidbcHJlY2lvdXMgamFkZV0nOwor55GpPidbbHVzdHJlIG9mIGdlbXNdJzsKK+eRqj4nW2FnYXRlXSc7Civnka8+J1traW5kIG9mIHdoaXRlIGNvcm5lbGlhbl0nOwor55GwPidbZXh0cmFvcmRpbmFyeV0nOwor55GzPidbbHVzdGVyIG9mIGdlbV0nOwor55G2PidbcHJlY2lvdXMgamFkZV0nOwor55G+PidbYnJpbGxpYW5jZSBvZiBnZW1zXSc7CivnkoM+J1tnbGFzc10nOwor55KLPidbamFkZSBwbGF5dGhpbmddJzsKK+eSnj4nW3VucG9saXNoZWQgZ2VtXSc7CivnkqI+J1twcmVjaW91cyBzdG9uZV0nOwor55KnPidbcGllY2Ugb2YgamFkZSB3aXRoIGhvbGUgaW4gaXRdJzsKK+eSsD4nW2phZGUgcmluZyBvciBicmFjZWxldF0nOwor55K9PidbaW1wZXJpYWwgc2lnbmV0XSc7Civnk4o+J1tqYWRlXSc7Civnk48+J1tnZW0gY3V0IGxpa2UgZHJhZ29uXSc7Civnk5Q+J1tuZWNrbGFjZSBtYWRlIG9mIHByZWNpb3VzIHN0b25lc10nOwor55OcPidbbWVsb25dJzsKK+eToD4nW2JvdHRsZSBnb3VyZF0nOwor55OiPidbbGFkbGUgbWFkZSBmcm9tIGRyaWVkIGdvdXJkXSc7Civnk6M+J1twZXRhbF0nOwor55OmPidbdGlsZV0nOwor55OnPidbZGVjYWdyYW1dJzsKK+eTqT4nW2tpbG93YXR0XSc7Civnk64+J1tlYXJ0aGVuIGphcl0nOwor55OwPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor55OxPidbbWlsbGlncmFtXSc7CisjIueTsj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55O2PidbanVnXSc7Civnk7c+J1tjcm9ja2VyeV0nOwor55O4PidbaGVjdG9ncmFtXSc7CivnlIM+J1ticmljayB3YWxsIG9mIGEgd2VsbF0nOwor55SEPidbZXhhbWluZV0nOwor55SFPidbY2VudGlncmFtXSc7CivnlIw+J1tib3dsXSc7CivnlI0+J1tyYWZ0ZXJzIHN1cHBvcnRpbmcgcm9vZiB0aWxlc10nOwor55SOPidbYnJpY2tdJzsKK+eUkT4nW2JvaWxlciBmb3Igc3RlYW1pbmcgcmljZV0nOwor55STPidbZ2xhemVkIHRpbGVzXSc7CivnlJU+J1tlYXJ0aGVuIGphcl0nOwor55SYPidbc3dlZXRuZXNzXSc7CivnlJo+J1tncmVhdCBleHRlbnRdJzsKK+eUnD4nW3N3ZWV0XSc7CivnlJ4+J1t0YXN0ZV0nOwor55SfPidbbGlmZV0nOwor55SjPidbZ2l2ZSBiaXJ0aF0nOwor55SlPidbc2lzdGVyJydzIGNoaWxkXSc7CivnlKY+J1tiZSByZWJvcm5dJzsKK+eUqD4nW3VzZV0nOwor55SrPidbYmVnaW5dJzsKK+eUrD4nW3BhdGhdJzsKK+eUsD4nW2ZpZWxkXSc7CivnlLE+J1tjYXVzZV0nOwor55SyPidbYXJtb3JdJzsKK+eUsz4nW3RvIHN0YXRlIHRvIGEgc3VwZXJpb3JdJzsKK+eUtz4nW21hbGVdJzsKK+eUuD4nW3N1YnVyYnMgb2YgY2FwaXRhbF0nOwor55S6PidbcmFpc2VkIHBhdGggYmV0d2VlbiBmaWVsZHNdJzsKK+eUuz4nW3BhaW50aW5nXSc7CivnlLw+J1tyYWlzZWQgcGF0aCBiZXR3ZWVuIGZpZWxkc10nOwor55WEPidbc3RvcF0nOwor55WGPidbY2hpbmVzZSBsYW5kIG1lYXN1cmVdJzsKKyMi55WJPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnlYo+J1twbG93XSc7CivnlYs+J1t0aWxsIGxhbmRdJzsKK+eVjD4nW2JvdW5kYXJ5XSc7CisjIueVjT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55WPPidbZmVhcl0nOwor55WRPidbZHJ5IChhcyBvcHBvc2VkIHRvIHJpY2UpIGZpZWxkXSc7CivnlZQ+J1tib3VuZGFyeSBwYXRoIGRpdmlkaW5nIGZpZWxkc10nOwor55WZPidbc3RvcF0nOwor55WaPidbc3RyYXcgYmFza2V0XSc7CivnlZs+J1tib3JkZXJdJzsKK+eVnD4nW2xpdmVzdG9ja10nOwor55WdPidbY2hpbmVzZSBsYW5kIG1lYXN1cmVdJzsKK+eVoD4nW2dhcmRlbl0nOwor55WiPidbZW5kXSc7CivnlaQ+J1twbGFjZSBmb3Igd29yc2hpcHBpbmcgdGhlIGhhdmVuXSc7CivnlaU+J1thcHByb3hpbWF0ZWx5XSc7CivnlaY+J1tzZWN0aW9ucyBpbiB2ZWdldGFibGUgZmFybV0nOwor55WnPidbYXBwcm94aW1hdGVseV0nOworIyLnlak+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVqj4nW3Rha2UgdHVybnNdJzsKK+eVqz4nW2RlbGluZWF0ZV0nOworIyLnla0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVsD4nW2RpZmZlcmVudF0nOwor55WzPidbcmVwZWF0XSc7CivnlbQ+J1tmYXJtbGFuZF0nOwor55W2PidbYmVhcl0nOwor55W3PidbcmFpc2VkIHBhdGggYmV0d2VlbiBmaWVsZHNdJzsKK+eVuD4nW29kZF0nOwor55W/PidbaW1wZXJpYWwgZG9tYWluXSc7CivnloI+J1tyZXBlYXRdJzsKK+eWhj4nW2JvdW5kYXJ5XSc7Civnloc+J1tmYXJtbGFuZF0nOwor55aJPidbcmVwZWF0XSc7Civnloo+J1tyZXBlYXRdJzsKK+eWiz4nW3JvbGxdJzsKK+eWjj4nW25lZ2xlY3RdJzsKK+eWjz4nW25lZ2xlY3RdJzsKK+eWkT4nW2RvdWJ0XSc7CivnlpQ+J1tjYXJidW5jbGVdJzsKK+eWmj4nW2Nocm9uaWMgZGlzZWFzZV0nOwor55adPidbaGVybmlhXSc7CivnlqM+J1t3YXJ0XSc7CivnlqU+J1tzY2FiaWVzXSc7Civnlqs+J1tlcGlkZW1pY10nOwor55axPidbYWNuZV0nOwor55ayPidbZmVlbCB0aXJlZF0nOwor55azPidbY2hpbGRob29kIGRpc2Vhc2VzXSc7CivnlrU+J1tmbGF3XSc7Civnlrg+J1tqYXVuZGljZV0nOwor55a5PidbbWVhc2xlc10nOwor55a8PidbYWNoZXNdJzsKK+eWvT4nW3VsY2VyXSc7Civnlr4+J1tpbGxuZXNzXSc7Civnl4I+J1tzY2FiXSc7Civnl4M+J1tpbmRpZ2VzdGlvbl0nOwor55eFPidbaWxsbmVzc10nOwor55eHPidbZGlzZWFzZV0nOwor55eKPidbYmUgaGVhbGVkXSc7Civnl40+J1t3b3VuZF0nOwor55eSPidbaXRjaF0nOwor55eUPidbaGVtb3JyaG9pZHNdJzsKK+eXlT4nW3NjYXJdJzsKK+eXmD4nW3NtYWxscG94XSc7Civnl5k+J1tjb252dWxzaW9uc10nOwor55ebPidbcGFpbl0nOwor55eePidbZHlzcGVwc2lhXSc7Civnl6I+J1tkeXNlbnRyeV0nOwor55ejPidbc3BvdHNdJzsKK+eXqT4nW3RoaW5dJzsKK+eXsD4nW3BobGVnbV0nOwor55eyPidbcG9jay1tYXJrZWRdJzsKK+eXsz4nW3BvY2stbWFya2VkXSc7Civnl7Q+J1tmb29saXNoXSc7Civnl7o+J1twYXJhbHlzaXNdJzsKK+eXvD4nW2Nocm9uaWMgZGlzZWFzZV0nOwor55e+PidbY2hyb25pYyBpbGxuZXNzXSc7Civnl78+J1twYXJhbHlzaXNdJzsKK+eYgT4nW2ZlZWwgdGlyZWRdJzsKK+eYiT4nW2dldCB3ZWxsXSc7CivnmIs+J1tjcmF6eV0nOwor55iNPidbdWxjZXJzXSc7CivnmJ8+J1tlcGlkZW1pY10nOwor55igPidbdGhpbl0nOwor55ihPidbdHVtb3JdJzsKK+eYoj4nW3NjYXJdJzsKK+eYpD4nW3R1bW9yXSc7CivnmKc+J1tpbnRlcm1pdHRlbnQgZmV2ZXJdJzsKK+eYsD4nW3Njcm9mdWxhXSc7CivnmLQ+J1ttYWxhcmlhIHBlc3RpbGVudGlhbCB2YXBvcnNdJzsKK+eYuz4nW2Zpc3R1bGFdJzsKK+eZgj4nW2JlIGhlYWxlZF0nOwor55mGPidbY29uc3VtcHRpb25dJzsKK+eZhz4nW2VwaWxlcHN5XSc7CivnmYg+J1thYnJvZ2F0ZV0nOwor55mMPidbY2FuY2VyXSc7CivnmZI+J1tnZXQgd2VsbF0nOwor55mWPidbY3JhdmluZ10nOwor55mYPidbc29yZV0nOwor55mcPidbZXJ5dGhlbWFdJzsKK+eZoT4nW3NpbGx5XSc7CivnmaI+J1tpdGNoXSc7Civnmac+J1tzY3JvZnVsb3VzIGx1bXBzIG9yIHN3ZWxsaW5nc10nOwor55moPidbcXVpY2tseV0nOwor55mpPidbbGVwcm9zeV0nOwor55mqPidbc3Bhc21zXSc7Civnmaw+J1tyaW5nd29ybXNdJzsKK+eZsD4nW2NhcmJ1bmNsZV0nOwor55myPidbY3JhenldJzsKK+eZtj4nW2xlZ3NdJzsKK+eZuD4nW2xhc3Qgb2YgdGVuIGNlbGVzdGlhbCBzdGVtc10nOwor55m6PidbaXNzdWVdJzsKK+eZuz4nW3Jpc2VdJzsKK+eZvD4nW2lzc3VlXSc7Civnmb0+J1t3aGl0ZV0nOwor55m+Pidbb25lIGh1bmRyZWRdJzsKK+eagD4nW2tlcm5lbF0nOwor55qDPidbY291bnRlbmFuY2VdJzsKK+eahD4nW3Bvc3Nlc3NpdmVdJzsKK+eahj4nW2FsbF0nOwor55qHPidbcm95YWxdJzsKK+eaiD4nW2ZvbGxvd10nOwor55qLPidbdGhlIGhpZ2ggbGFuZCBhbG9uZyBhIHJpdmVyXSc7Civnmo4+J1t3aGl0ZV0nOwor55qQPidbdGhlIGhpZ2ggbGFuZCBhbG9uZyBhIHJpdmVyXSc7CivnmpM+J1ticmlnaHRdJzsKK+ealj4nW2FuaHVpIHByb3ZpbmNlXSc7Civnmpk+J1t3aGl0ZV0nOwor55qaPidbYnJpbGxpYW50IHdoaXRlXSc7Civnmq4+J1tza2luXSc7CivnmrA+J1twaW1wbGVzXSc7CivnmrQ+J1tjaGFwcGVkXSc7Civnmrc+J1tkcnVtXSc7Civnmrg+J1tjcmFja10nOwor55q5PidbY3JhY2tdJzsKK+eauj4nW3dyaW5rbGVzXSc7Civnmr8+J1tzaGFsbG93IGNvbnRhaW5lcl0nOwor55uCPidbYmFzaW5dJzsKK+ebgz4nW2dsYXNzXSc7Civnm4Y+J1tiYXNpbl0nOwor55uIPidbZmlsbF0nOwor55uKPidbcHJvZml0XSc7Civnm40+J1t3aGF0PyB3aHkgbm90PyBjb3JyZXNwb25kXSc7Civnm5I+J1tzbWFsbCBib3ggb3IgY2FzZV0nOwor55uWPidbY292ZXJdJzsKK+eblz4nW3JvYl0nOwor55ubPidbYWJ1bmRhbnRdJzsKK+ebnD4nW3JvYl0nOwor55uePidbc21hbGwgY3VwIG9yIGNvbnRhaW5lcl0nOwor55ufPidbc3dlYXJdJzsKK+eboT4nW2V4aGF1c3RdJzsKK+eboz4nW3N1cGVydmlzZV0nOwor55ukPidbdHJheV0nOwor55ulPidbd2FzaF0nOwor55unPidbY290dGFnZV0nOwor55uqPidbdG8gdG9zcyBhYm91dF0nOwor55uuPidbZXllXSc7Civnm7I+J1tibGluZF0nOwor55u0Pidbc3RyYWlnaHRdJzsKK+ebuD4nW211dHVhbF0nOwor55u7PidbZ2xhcmVdJzsKK+ebvj4nW3NoaWVsZF0nOwor55yBPidbcHJvdmluY2VdJzsKK+echD4nW3RvIGxvb2sgYXNrYW5jZV0nOwor55yHPidbYmxpbmQgaW4gb25lIGV5ZV0nOwor55yIPidbZ2xvYXRdJzsKK+eciT4nW2V5ZWJyb3dzXSc7CivnnIs+J1tsb29rXSc7CivnnIw+J1tjb3VudHldJzsKK+ecmz4nW2RpbV0nOworIyLnnJ4+J1tyZWFsXSciLAor55yfPidbcmVhbF0nOwor55ygPidbY2xvc2UgZXllc10nOworIyLnnKQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ecpT4nW2V5ZSBzb2NrZXRzXSc7CivnnKY+J1tjb3JuZXIgb2YgdGhlIGV5ZXNdJzsKK+ecqT4nW2NvbmZ1c2VdJzsKK+ectz4nW3Rha2UgaW50ZXJlc3QgaW5dJzsKK+ecuD4nW3B1cGlsIG9mIGV5ZV0nOwor55y6PidbbG9vayBhdF0nOwor55y8PidbZXllXSc7CivnnYA+J1ttYWtlIG1vdmVdJzsKK+edhz4nW2xvb2sgYXRdJzsKK+edmj4nW2Nvcm5lciBvZiBleWVdJzsKK+edmz4nW2V5ZWJhbGxdJzsKK+edoT4nW3NsZWVwXSc7CivnnaM+J1tzdXBlcnZpc2VdJzsKK+edpT4nW2xvb2sgYXNrYW5jZSBhdF0nOwor552mPidbZnJpZW5kbHldJzsKK+edqD4nW2xvb2sgYXNrYW5jZSBhdF0nOwor552rPidbZXllbGFzaGVzXSc7Civnnbk+J1tsb29rIGF0XSc7Civnnb4+J1t0ZXN0aWNsZV0nOwor552/Pidbc2hyZXdkXSc7Civnnos+J1tnbGFyZSB3aXRoIGFuZ2VyXSc7Civnno4+J1tibGluZF0nOwor556RPidbY2xvc2UgZXllc10nOwor556ePidbZGVjZWl2ZV0nOwor556gPidbbG9vayBhdF0nOwor556lPidbdGFrZSBmbGVldGluZyBnbGFuY2UgYXRdJzsKK+eerD4nW3dpbmtdJzsKK+eerT4nW2JyaWdodF0nOwor556wPidbd2F0Y2hdJzsKK+eesz4nW3B1cGlsIG9mIGV5ZV0nOwor5562PidbZGltXSc7CisjIueetj4nW2RpbV0nIiwKK+eeuz4nW2xvb2tdJzsKK+eevD4nW2V5ZWxpZF0nOwor5569PidbYmxpbmRdJzsKK+eevz4nW3N1cm5hbWVdJzsKK+efhz4nW3N0dXBpZF0nOwor55+NPidbbG9vayBhYm91dCBpbiBmaXJnaHQgb3IgYWxhcm1dJzsKK+eflz4nW3N0cmFpZ2h0XSc7Civnn5o+J1t3YXRjaCBjYXJlZnVsbHldJzsKK+efmz4nW3NwZWFyXSc7Civnn5w+J1twaXR5XSc7Civnn6I+J1thcnJvd10nOwor55+jPidbcGFydGljbGUgb2YgY29tcGxldGVkIGFjdGlvbl0nOwor55+lPidba25vd10nOwor55+nPidbbXVjaCBtb3JlXSc7Civnn6k+J1tjYXJwZW50ZXInJ3Mgc3F1YXJlXSc7Civnn60+J1tzaG9ydF0nOwor55+uPidbc2hvcnRdJzsKK+efrz4nW2NvcnJlY3RdJzsKK+efsz4nW3N0b25lXSc7Civnn7w+J1tzdG9uZSBicmlkZ2VdJzsKK+eggj4nW3NhbmRdJzsKK+egjD4nW3N0b25lIHN0ZXBzXSc7CivnoJI+J1thcnNlbmljXSc7CivnoJQ+J1tncmluZF0nOwor56CVPidbYnJlYWtdJzsKK+egoD4nW3JvY2t5XSc7CivnoKU+J1t3aGV0c3RvbmVdJzsKK+egpj4nW3N0b2NrYWRlXSc7CivnoKc+J1thbnZpbF0nOwor56CyPidbZ3VuXSc7CivnoLQ+J1ticmVha10nOwor56C6Pidbd2hldHN0b25lXSc7CivnoL8+J1ttaW5lXSc7CivnoYU+J1tzaWxpY29uXSc7CivnoZ0+J1tzYWx0cGV0ZXJdJzsKK+ehqz4nW3N1bGZ1cl0nOwor56GsPidbaGFyZF0nOwor56GvPidbaW5rc3RvbmVdJzsKKyMi56GyPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuehtD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56G8PidbYm9yYXhdJzsKK+eigT4nW2NoZXNzXSc7CivnooY+J1thcnJvdy10aXBdJzsKK+eihz4nW2FuY2hvcl0nOwor56KMPidbcm91Z2hdJzsKK+eijT4nW29ic3RydWN0XSc7Civnoo4+J1ticmVha10nOwor56KRPidbc3RvbmUgdGFibGV0XSc7CivnopM+J1twZXN0bGVdJzsKKyMi56KVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnopc+J1tib3dsXSc7Civnopo+J1tzdWJ1cmJdJzsKK+eioz4nW3N0b25lIHRhYmxldF0nOwor56KnPidbamFkZV0nOwor56KpPidbZ3JlYXRdJzsKK+eiqj4nW3N0b25lIHNsYWIgdXNlZCBmb3Igd2FzaGluZyBjbG90XSc7Civnoq8+J1thZ2F0ZV0nOworIyLnorU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eiuj4nW3N1cmVdJzsKK+eivD4nW251bWJlcl0nOwor56K+Pidbcm9sbGVyXSc7Civno4E+J1ttYWduZXRpY10nOwor56OFPidbcG91bmRdJzsKKyMi56OGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivno4o+J1twaWxlIG9mIHJvY2tzIG9yIHN0b25lc10nOwor56OLPidbcG9saXNoXSc7Civno5A+J1tsYXJnZSByb2NrXSc7Civno5E+J1tzdG9uZSBtaWxsXSc7Civno5Q+J1tkb3dud2FyZCBzdHJva2Ugc2xhbnRpbmcgcmlnaF0nOwor56OaPidbdGlsZV0nOwor56OnPidbc2FuZCBhbmQgZ3JhdmVsXSc7Civno6g+J1tncmluZF0nOwor56OsPidbbXVzaWNhbCBpbnN0cnVtZW50XSc7Civno68+J1tqZXR0eV0nOwor56O0Pidbc3RlcHMgb24gbGVkZ2VdJzsKK+ejvT4nW2JhcnJlbiBsYW5kXSc7CivnpIE+J1tyZWVmXSc7CisjIuekhz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56SOPidbZm91bmRhdGlvbiBzdG9uZV0nOworIyLnpI4+J1tmb3VuZGF0aW9uIHN0b25lXSciLAorIyLnpJI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ekmT4nW29ic3RydWN0XSc7CivnpKY+J1ttaW5lXSc7CivnpKo+J1t3aGV0c3RvbmVdJzsKK+ekqz4nW2dyYXZlbF0nOwor56SsPidbYWx1bV0nOwor56S6Pidbc2hvd10nOwor56S8Pidbc29jaWFsIGN1c3RvbV0nOwor56S+PidbZ29kIG9mIHRoZSBzb2lsIGFuZCBhbHRhcnMgdG8gaGltXSc7CivnpYA+J1t0byBzYWNyaWZpY2VdJzsKK+elgT4nW3ByYXldJzsKK+elhz4nW29ubHldJzsKK+eliD4nW3ByYXldJzsKK+eliT4nW2hhcHBpbmVzc10nOwor56WQPidbZGl2aW5lIGludGVydmVudGlvbl0nOwor56WTPidbZXhvcmNpc2VdJzsKK+ellT4nW215c3RlcmlvdXNdJzsKK+ellj4nW2FuY2VzdG9yXSc7CivnpZc+J1tyZXNwZWN0XSc7CivnpZo+J1t0aHJvbmVdJzsKK+elnT4nW3ByYXkgZm9yIGhhcHBpbmVzcyBvciBibGVzc2luZ3NdJzsKK+elnj4nW3NwaXJpdF0nOwor56WfPidbZXZpbCBzcGlyaXRdJzsKK+eloD4nW2FuY2VzdHJhbCB0ZW1wbGVdJzsKK+eloj4nW29uZScncyBkZWNlYXNlZCBmYXRoZXJdJzsKK+elpT4nW2dvb2QgbHVja10nOwor56WoPidbc2xpcCBvZiBwYXBlciBvciBiYW1ib29dJzsKK+elrT4nW3NhY3JpZmljZSB0b10nOwor56W3PidbcHJheV0nOwor56W6PidbZ29vZCBsdWNrXSc7Civnpb8+J1tibGVzc2luZ10nOwor56aAPidbcmVwb3J0IHRvXSc7CivnpoE+J1tyZXN0cmljdF0nOwor56aEPidbYmxlc3NpbmddJzsKK+emhT4nW21lZGl0YXRpb25dJzsKK+emij4nW3NlbWktYW5udWFsIGNlcmVtb255IG9mIHB1cmlmaWNhXSc7Civnpo0+J1ttaXNmb3J0dW5lXSc7Civnpo4+J1tsdWNreV0nOwor56aPPidbaGFwcGluZXNzXSc7Civnpp0+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivnpqY+J1tkZWZlbmRdJzsKK+empz4nW2hhcHBpbmVzc10nOwor56aqPidbbWVkaXRhdGlvbl0nOwor56auPidbc29jaWFsIGN1c3RvbV0nOwor56awPidbb25lJydzIGRlY2Vhc2VkIGZhdGhlcl0nOwor56azPidbcHJheSBvciBzYWNyaWZpY2VdJzsKK+emuT4nW2xlZ2VuZGFyeSBoc2lhIGR5bmFzdHkgZm91bmRlcl0nOwor56a6PidbZGlzdHJpY3RdJzsKK+emvT4nW2JpcmRzXSc7Civnpr4+J1tncmFpbiBzdGlsbCBvbiBzdGFsa10nOwor56a/PidbYmFsZF0nOwor56eAPidbZWFyIG9mIGdyYWluXSc7Civnp4E+J1twcml2YXRlXSc7Civnp4k+J1tncmFzcF0nOwor56eLPidbYXV0dW1uXSc7Civnp5E+J1tzZWN0aW9uXSc7Civnp5I+J1tiZWFyZCBvZiBncmFpbiBvciBjb3JuXSc7Civnp5U+J1tlbXB0eSBncmFpbiBvciByaWNlIGh1c2tdJzsKK+enmD4nW3NlY3JldF0nOwor56efPidbcmVudF0nOworIyLnp6E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+enoz4nW2ZvZGRlcl0nOwor56ekPidbYmFsYW5jZV0nOwor56emPidbZmV1ZGFsIHN0YXRlIG9mIHFpbl0nOwor56enPidbcmljZSBzZWVkbGluZ3NdJzsKK+enqT4nW29yZGVyXSc7Civnp6w+J1tibGFjayBtaWxsZXRdJzsKK+ensD4nW2NhbGxdJzsKK+enuz4nW2NoYW5nZSBwbGFjZV0nOwor56iAPidbcmFyZV0nOwor56iIPidbc3RhbGsgb2YgZ3JhaW5dJzsKK+eoiz4nW2pvdXJuZXldJzsKK+eojT4nW2xpdHRsZV0nOwor56iOPidbdGF4ZXNdJzsKK+eolD4nW3JpcGUgZ3JhaW5dJzsKK+eolz4nW2Rhcm5lbHNdJzsKKyMi56iYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnqJk+J1tncmFpbiByZWFkeSBmb3IgZ3JpbmRpbmddJzsKK+eomj4nW3lvdW5nXSc7CivnqJw+J1tjb3JuZXJdJzsKK+eonz4nW3JlcG9ydCB0b10nOwor56igPidbZGVuc2VdJzsKK+eorj4nW3NlZWRdJzsKK+eosT4nW2NhbGxdJzsKK+eosj4nW3JpY2UgZ3Jvd2luZyBpbiBmaWVsZF0nOwor56i3PidbZ29kIG9mIGNlcmVhbHNdJzsKK+eouz4nW3JpY2UgZ3Jvd2luZyBpbiBmaWVsZF0nOwor56i8Pidbc293IGdyYWluXSc7CivnqL0+J1tleGFtaW5lXSc7CivnqL4+J1tkcmFmdF0nOwor56i/PidbZHJhZnRdJzsKK+epgD4nW2Nvcm5dJzsKK+epgj4nW2VhciBvZiBncmFpbl0nOworIyLnqYM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ephj4nW21hamVzdGljXSc7CivnqYk+J1t5b3VuZyBncmFpbl0nOwor56mNPidbYWNjdW11bGF0ZV0nOwor56mOPidbcmljZSB0YXNzZWxdJzsKKyMi56mOPidbcmljZSB0YXNzZWxdJyIsCivnqZA+J1tmYWxsXSc7CivnqZc+J1tlYXIgb2YgZ3JhaW5dJzsKK+epoT4nW2Zhcm1dJzsKK+epoj4nW2RpcnR5XSc7CivnqaM+J1tzdGFsa3Mgb2YgZ3JhaW5dJzsKK+epqT4nW3N0YWJsZV0nOwor56mrPidbaGFydmVzdF0nOwor56mwPidbc3RhbGtzIG9mIGdyYWluXSc7CivnqbQ+J1tjYXZlXSc7CivnqbY+J1tleGFtaW5lXSc7Civnqbk+J1toaWdoIGFuZCB2YXN0XSc7Civnqbo+J1tlbXB0eV0nOwor56m9PidbaG9sZV0nOwor56m/PidbcGVuZXRyYXRlXSc7CivnqoE+J1tzdWRkZW5seV0nOwor56qDPidbc2VjcmV0bHldJzsKK+eqhD4nW25hcnJvd10nOwor56qIPidbb2JzY3VyZV0nOwor56qSPidbc3RvcCB1cF0nOwor56qTPidbd2luZG93XSc7CivnqpU+J1tzbGVuZGVyXSc7CivnqpY+J1twaXRdJzsKK+eqlz4nW3dpbmRvd10nOwor56qYPidbZW1icmFzc2Fzc2VkXSc7Civnqp8+J1tob2xlXSc7Civnqqk+J1tuZXN0XSc7Civnqqo+J1tob2xsb3ddJzsKK+eqrj4nW3Bvb3JdJzsKK+eqrz4nW2tpbG5dJzsKK+eqsD4nW2tpbG5dJzsKK+eqtj4nW3Bvb3JdJzsKK+equj4nW3BlZXBdJzsKK+eqvz4nW21pbmUgc2hhZnRdJzsKK+ergz4nW2Z1cm5hY2VdJzsKK+erhD4nW3J1biBhd2F5XSc7Civnq4U+J1tob2xlXSc7Civnq4c+J1tzdXJuYW1lXSc7Civnq4g+J1tmdXJuYWNlXSc7Civnq4o+J1tzZWNyZXRseV0nOwor56uLPidbc3RhbmRdJzsKK+erjT4nW2RlY2FsaXRlcl0nOwor56uPPidba2lsb2xpdGVyXSc7Civnq5I+J1tzdHJhbmdlXSc7Civnq5M+J1ttaWxsaWxpdGVyXSc7Civnq5U+J1tkZWNpbGl0ZXJdJzsKK+ermT4nW3N0YW5kIHVwXSc7Civnq5o+J1tzdGFuZCBhbmQgd2FpdCBmb3IgbG9uZyB0aW1lXSc7Civnq5w+J1tkcmFnb25dJzsKK+ernT4nW2NvbWJpbmVdJzsKK+ernz4nW2ZpbmFsbHldJzsKK+eroD4nW2NvbXBvc2l0aW9uXSc7Civnq6E+J1toZWN0b2xpdGVyXSc7Civnq6I+J1t3YWl0IGZvcl0nOwor56ujPidbdGVybWluYXRlXSc7Civnq6U+J1tjaGlsZF0nOwor56umPidbcmV2ZXJlXSc7Civnq6o+J1twZXJwZW5kaWN1bGFyXSc7Civnq60+J1twdXQgZm9ydGggZ3JlYXQgZWZmb3J0XSc7Civnq68+J1tlbmRdJzsKK+ersD4nW2NlbnRpbGl0ZXJdJzsKK+ertj4nW2NvbnRlbmRdJzsKK+eruD4nW2NvbnRlbmRdJzsKK+eruT4nW2JhbWJvb10nOwor56u6PidbaW5kaWFdJzsKK+ervz4nW2JhbWJvbyBwb2xlXSc7CisjIuesgj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56yEPidbaGFpcnBpbl0nOwor56yGPidbYmFtYm9vIGZlbmNlXSc7CivnrIg+J1tiYW1ib28gYm94IHVzZWQgY2FycnkgYm9va3NdJzsKK+esij4nW2xhZGxlXSc7CivnrIs+J1tiYW1ib28gc2hvb3RzXSc7CivnrI8+J1t0YWJsZXQgaGVsZCBieSBzb21lb25lIGhhdmluZyBhdV0nOwor56yRPidbc21pbGVdJzsKKyMi56yYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrJk+J1tzbWFsbCBnb3VyZC1zaGFwZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnrJs+J1tiYW1ib28gZmx1dGVdJzsKK+esnj4nW2JhbWJvbyByb2QgdXNlZCBmb3IgYmVhdGluZ3NdJzsKK+esoD4nW2JhbWJvbyBoYXRdJzsKK+espT4nW2EgaGFtcGVyXSc7CivnrKY+J1tpLmQuIHRhZ10nOwor56yoPidbZm9vbGlzaF0nOwor56ysPidbc2VxdWVuY2VdJzsKK+essz4nW2EgcmVlZCBsZWFmIHdoaXN0bGVdJzsKK+estT4nW2EgYmFtYm9vIGZvcm1dJzsKKyMi56y2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrLk+J1tzbWFsbCBiYW1ib29dJzsKK+ethT4nW2JhbWJvbyBicnVzaF0nOwor562GPidbd3JpdGluZyBicnVzaF0nOwor562IPidbYXJyb3cgZW5kXSc7CivnrYk+J1tyYW5rXSc7CivnrYs+J1ttdXNjbGVzXSc7CivnrYw+J1tiYW1ib28gZmlzaCB0cmFwXSc7CivnrY0+J1tiYW1ib28gc2hvb3RdJzsKK+etjz4nW3JhZnRdJzsKK+etkD4nW2JhbWJvbyBiYXNrZXQgb3IgY2hlc3RdJzsKK+etkT4nW2FuY2llbnQgbHV0ZV0nOwor562SPidbdGhpY2sgcGllY2Ugb2YgYmFtYm9vXSc7CivnrZQ+J1thbnN3ZXJdJzsKK+etlj4nW3NjaGVtZV0nOwor562dPidbc3RyaW5nZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnraU+J1tyb3VuZC1zaGFwZWQgYmFtYm9vIGJhc2tldCBmb3JdJzsKK+etpz4nW2JhbWJvbyB3YXRlciBwaXBlXSc7Civnraw+J1tyZWVkIG9mIGEgbG9vbV0nOwor562uPidbZGl2aW5hdGlvbiB3aXRoIHN0YWxrcyBvZiBwbGFudHNdJzsKK+etsD4nW2NhYmxlXSc7CivnrbE+J1tkd2FyZiBiYW1ib29dJzsKK+ettD4nW3R5cGUgb2YgZ3Jhc3MgdXNlZCBpbiBkaXZpbmF0aW9uXSc7CivnrbU+J1tiYW1ib28gbWF0XSc7Civnrbo+J1tiYW1ib28gYmFza2V0IG9yIGNoZXN0XSc7CivnroY+J1tmaW5lLXRvb3RoZWQgY29tYl0nOwor566HPidbbnVtZXJhcnkgYWRqdW5jdF0nOwor566LPidbbm90ZV0nOwor566NPidbaG9vcF0nOwor566PPidbc3RyaW5nZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnrpI+J1ticm9vbV0nOwor566UPidbcmVlZCBzY3JlZW5dJzsKK+eulT4nW3NpZXZlXSc7Civnrpc+J1tjb3VudF0nOwor566YPidbZmluZSBiYW1ib29dJzsKK+eumT4nW3F1aXZlcl0nOwor566aPidbYnJpZWYgbm90ZV0nOwor566cPidbYW5jaWVudCBzdHJpbmcgbXVzaWMgaW5zdHJ1bWVudF0nOwor566dPidbdHdlZXplcnNdJzsKKyMi566fPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrqE+J1twaXBlXSc7Civnrqo+J1tzbWFsbCBiYW1ib28gYmFza2V0IGZvciBob2xkaW5nXSc7Civnrq0+J1thcnJvd10nOwor566xPidbY2FzZV0nOwor5660PidbbmVlZGxlXSc7Civnrrg+J1tjaG9wc3RpY2tzXSc7Civnr4A+J1trbm90XSc7Civnr4E+J1tiYW1ib28gZ3JvdmVdJzsKK+evhD4nW3BhdHRlcm5dJzsKK+evhj4nW3NlYWwgc2NyaXB0XSc7Civnr4c+J1tjaGFwdGVyXSc7Civnr4k+J1tidWlsZF0nOwor56+LPidbcmF0dG9uIGJveF0nOwor56+MPidbYW5jaWVudCBtdXNpYyBpbnN0cnVtZW50XSc7Civnr48+J1tpbmxheV0nOwor56+dPidbYmFtYm9vIGJhc2tldF0nOwor56+gPidbZHdhcmYgYmFtYm9vXSc7Civnr6Q+J1tkZWVwXSc7Civnr6U+J1tidWxnbGVdJzsKK+evpj4nW2ZpbmUtdG9vdGhlZCBjb21iXSc7Civnr6k+J1tzaWV2ZV0nOwor56+tPidbY2FnZV0nOwor56+zPidbd2lja2VyXSc7CisjIuevtj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56+3PidbYXduaW5nXSc7CivnsIA+J1tiZWQgbWF0XSc7CivnsIc+J1tzd2FybV0nOwor57CNPidbYmFtYm9vIGJhc2tldF0nOwor57CRPidbYSBjb2lyIHJhaW5jb2F0XSc7CivnsJI+J1t1c3VycF0nOworIyLnsJM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ewlD4nW2EgY29pciByYWluY29hdF0nOworIyLnsJc+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ewnz4nW2JhbWJvbyBtYXRdJzsKK+ewoT4nW3NpbXBsZV0nOwor57CjPidbYmFtYm9vIGJhc2tldCBmb3IgY2FycnlpbmcgZWFydGhdJzsKK+ewpz4nW3JlZWQgb2Ygd29vZHdpbmQgaW5zdHJ1bWVudF0nOwor57CqPidbaGFpcnBpbl0nOwor57CrPidbbXVzaWNhbCBpbnN0cnVtZW50IGxpa2UgcGFuLXBpcGVzXSc7CivnsLc+J1tlYXZlcyBvZiBob3VzZV0nOwor57C4Pidbd2lubm93ZXJdJzsKK+ewvT4nW3NpZ25dJzsKK+ewvj4nW2EgYmxpbmRdJzsKK+ewvz4nW3JlZ2lzdGVyXSc7CivnsYA+J1tyZWNpdGVdJzsKK+exgz4nW2Jhc2tldF0nOwor57GMPidbY2hpcF0nOwor57GNPidbcmVjb3JkXSc7CivnsY8+J1tmbGFnXSc7CivnsZA+J1tjbGltYmluZyBwbGFudHNdJzsKK+exlD4nW2JhbWJvbyBiYXNrZXRdJzsKK+exlj4nW3RhbGx5XSc7CivnsZg+J1tjbGltYmluZyBwbGFudHNdJzsKK+exnz4nW2JhbWJvbyBmbHV0ZV0nOwor57GgPidbY2FnZV0nOwor57GkPidbdGFsbHldJzsKK+expT4nW2tleV0nOwor57GsPidbYmFtYm9vIG9yIHdvb2RlbiBmZW5jZV0nOwor57GzPidbaHVsbGVkIG9yIGh1c2tlZCB1bmNvb2tlZCByaWNlXSc7CivnsbU+J1tkbV0nOwor57G+PidbdW5odWxsZWQgcmljZV0nOwor57KBPidba21dJzsKK+eygj4nW3N1cm5hbWVdJzsKK+eygz4nW2VtcHR5IGh1c2tzIG9mIGdyYWluXSc7Civnsok+J1twb3dkZXJdJzsKK+eyiz4nW3B1cmVdJzsKK+eyjT4nW21tXSc7CisjIueykD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57KSPidbZ3JhaW5dJzsKK+eylT4nW2xlZXNdJzsKK+eylz4nW3JvdWdoXSc7Civnspg+J1t2aXNjb3VzXSc7Civnsps+J1twYXkgcmVzcGVjdHNdJzsKK+eynz4nW3VuaHVza2VkIG1pbGxldF0nOworIyLnsqE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eyoj4nW2dyYWluIG9mZmVyZWQgaW4gcml0dWFsIHNhY3JpZmljXSc7CivnsqQ+J1tHdWFuZ2RvbmcgYW5kIEd1YW5neGkgcHJvdmluY2VzXSc7CivnsqU+J1tyaWNlIGdydWVsXSc7Civnsqc+J1t0b2lsZXRdJzsKK+eyqD4nW2htXSc7CisjIueyqz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLnsq0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eyrj4nW2Zvb2RdJzsKK+eysT4nW2JldHRlciB2YXJpZXRpZXMgb2YgbWlsbGV0XSc7CivnsrI+J1twb2xpc2hdJzsKK+eysz4nW25vbi1nbHV0aW5vdXMgcmljZV0nOwor57K5PidbcHVyZV0nOwor57K9PidbZHVtcGxpbmcgbWFkZSBvZiBnbHV0aW5vdXMgcmljZV0nOwor57K+PidbZXNzZW5jZV0nOworIyLns4A+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi57OCPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivns4U+J1tibGVuZF0nOwor57OKPidbcGFzdGVdJzsKK+ezjj4nW21tXSc7Civns5I+J1tmb29kIGZvciBhIGpvdXJuZXldJzsKK+ezlj4nW3N1Z2FyXSc7CisjIuezmD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57OcPidbcmljZSBncnVlbF0nOwor57OePidbbWFudXJlXSc7Civns58+J1tzZWRpbWVudF0nOwor57OgPidbY2hhZmZdJzsKK+ezoj4nW3JpY2Ugc25hY2tzXSc7Civns6c+J1tmb29kXSc7Civns68+J1tnbHV0aW5vdXMgcmljZV0nOwor57OyPidbdW5wb2xpc2hlZCByaWNlXSc7Civns7Q+J1twdXJjaGFzZSBncmFpbnNdJzsKK+eztj4nW3NlbGwgZ3JhaW5zXSc7Civns7g+J1tzaWxrXSc7Civns7o+J1t0byBjb2xsYWJvcmF0ZV0nOwor57O7Pidbc3lzdGVtXSc7Civns74+J1tpbnZlc3RpZ2F0ZV0nOwor57SAPidbcmVjb3JkXSc7CivntII+J1tuYW1lIG9mIGFuIGVtcGVyb3JdJzsKK+e0hD4nW3RyZWF0eV0nOwor57SFPidbcmVkXSc7CivntIY+J1tiZW5kXSc7CivntIo+J1tjb25mdXNlZF0nOwor57SLPidbbGluZV0nOwor57SNPidbYWRtaXRdJzsKK+e0kD4nW2tub3RdJzsKK+e0lD4nW3B1cmVdJzsKK+e0lT4nW3Nwb2lsZWQgc2lsa10nOwor57SXPidbZ2F1emVdJzsKK+e0mD4nW3N0cmluZ10nOwor57SZPidbcGFwZXJdJzsKK+e0mj4nW2xldmVsXSc7CivntJs+J1tpbiBkaXNvcmRlcl0nOwor57ScPidbY29uZnVzZWRdJzsKK+e0oD4nW3doaXRlIChzaWxrKV0nOwor57ShPidbc3Bpbl0nOwor57SiPidbbGFyZ2Ugcm9wZV0nOwor57SrPidbcHVycGxlXSc7CivntKw+J1traW5kIG9mIHRoaW4gc2lsa10nOwor57SuPidbdGllXSc7CivntK8+J1t0aXJlZF0nOwor57SwPidbZmluZV0nOwor57SyPidbYnJpZGxlXSc7CivntLM+J1tnaXJkbGVdJzsKK+e0tT4nW3JhbWllXSc7CivntLk+J1tjb250aW51ZV0nOwor57S6PidbZGFyayBibHVlIGNvbG9yXSc7CivntL8+J1tjaGVhdF0nOwor57WCPidbZW5kXSc7CivntYM+J1tzdHJpbmcgb24gbXVzaWNhbCBpbnN0cnVtZW50XSc7CivntYQ+J1tjbGFzc10nOwor57WFPidbdW5saW5lZCBnYXJtZW50XSc7CivntYY+J1tsb29wXSc7CisjIue1iz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57WMPidbY2xhc3NpYyB3b3Jrc10nOwor57WOPidbYmFzdGVdJzsKK+e1jz4nW3JvcGVdJzsKK+e1kD4nW2tub3RdJzsKK+e1lj4nW2ZpbmUgc2lsa3NdJzsKK+e1mz4nW3NpbGsgYnJhaWRdJzsKK+e1nj4nW3R3aXN0XSc7CivntaE+J1tlbm1lc2hdJzsKK+e1oj4nW3ZhcmllZ2F0ZWRdJzsKK+e1oz4nW3RvIGJhc3RlIGZvciBzZXdpbmddJzsKK+e1pj4nW2dpdmVdJzsKK+e1qD4nW3NpbGtdJzsKK+e1rj4nW3dhc3RlIGNvdHRvbl0nOwor57WxPidbZ292ZXJuXSc7CivntbI+J1tzaWxrXSc7CivntbM+J1tkZWVwIHJlZF0nOwor57W1PidbZHJhd10nOwor57W2PidbY3V0XSc7Civntbk+J1traW5kIG9mIHRoaWNrIHN0aWZmIHNpbGtdJzsKKyMi57W9PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivntok+J1tlbWJyb2lkZXJdJzsKK+e2jz4nW3Nvb3RoZV0nOwor57aTPidbY2xhc3NpYyB3b3Jrc10nOwor57aZPidbY29udGludWVdJzsKK+e2mj4nW2NvbnRpbnVlXSc7CisjIue2mz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57acPidbYXJyYW5nZSB0aHJlYWRzIGZvciB3ZWF2aW5nXSc7CisjIue2nz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57aiPidbc2lsayBjbG90aF0nOwor57ajPidbYWZmZWN0aW9uYXRlXSc7Civntqs+J1tsaW5lXSc7Civntqw+J1tzaWxrIHJpYmJvbiBhdHRhY2hlZCBhcyBhIHNlYWxdJzsKK+e2rT4nW21haW50YWluXSc7Civntq4+J1tlbWJyb2lkZXJlZCBiYW5uZXJdJzsKK+e2rz4nW2JyYWlkXSc7CivntrA+J1t0byBzdHJpbmcgdG9nZXRoZXJdJzsKK+e2sT4nW2hlYXZ5IHJvcGVdJzsKK+e2sj4nW25ldF0nOwor57a0PidbcGF0Y2ggdG9nZXRoZXJdJzsKK+e2tT4nW3Zhcmljb2xvcmVkIHNpbGtdJzsKK+e2uD4nW2dyZWVuIHNpbGsgdGhyZWFkIG9yIHRhc3NlbF0nOwor57a6PidbZmluZSB0aGluIHNpbGtdJzsKK+e2uz4nW3JpcHBlZCBzZWFtXSc7Civntr0+J1tncmFjZWZ1bF0nOwor57a+PidbdGhpbiBzaWxrXSc7Civntr8+J1tjb3R0b24gd2FkXSc7Civnt4c+J1tibGFjayBzaWxrXSc7Civnt4o+J1t0ZW5zZV0nOwor57eLPidbc2NhcmxldF0nOwor57ePPidbY29sbGVjdF0nOwor57eRPidbZ3JlZW5dJzsKK+e3kj4nW2VuZCBvZiB0aHJlYWRdJzsKKyMi57eVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnt5g+J1tzZWFsXSc7Civnt5o+J1t0aHJlYWRdJzsKK+e3nD4nW2NvdHRvbiB3YWRdJzsKK+e3nT4nW3RvIHNldyBpbiBjbG9zZSBzdGl0Y2hlc10nOwor57eePidbc2F0aW5dJzsKK+e3oD4nW3RpZV0nOwor57ehPidbZmlzaGluZy1saW5lXSc7Civnt6Q+J1tjb3JkXSc7Civnt6g+J1trbml0XSc7Civnt6k+J1tzbG93XSc7Civnt6w+J1tkaXN0YW50XSc7Civnt68+J1t3b29mXSc7Civnt7I+J1tpbmRpc3RpbmN0XSc7Civnt7Q+J1twcmFjdGljZV0nOwor57e7PidbZGVsaWNhdGVdJzsKK+e4gT4nW2hlbV0nOwor57iEPidbcm9wZV0nOworIyLnuIQ+J1tyb3BlXSciLAor57iJPidbcmVkIHNpbGtdJzsKK+e4ij4nW2hhbmddJzsKK+e4iz4nW2NsaW1kIGRvd24gcm9wZV0nOworIyLnuJE+J1tmaW5lIHNpbGtdJyIsCivnuJs+J1t0byB0aWVdJzsKK+e4nj4nW3doaXRlIHJhdyBzaWxrXSc7CivnuJ8+J1tkZWNvcmF0aXZlXSc7CivnuKE+J1ttYXR0ZXJdJzsKK+e4oj4nW2JpbmRdJzsKK+e4oz4nW2NvdW50eV0nOwor57imPidbaW5kdWxnZSBpbl0nOwor57irPidbc2V3XSc7CivnuK4+J1tjb250cmFjdF0nOwor57ixPidbaW5kdWxnZSBpbl0nOwor57iyPidbY2hhaW4gb3Igcm9wZSB1c2VkIGJpbmQgY3JpbWluYWxdJzsKK+e4tT4nW3BsYWluIHNpbGtdJzsKK+e4tz4nW3RocmVhZF0nOwor57i5PidbbGlnaHQgYmx1ZSBzaWxrXSc7CisjIue4uj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57i7PidbaGFsdGVyIGZvciBveF0nOwor57i9PidbY29sbGVjdF0nOwor57i+Pidbc3Bpbl0nOwor57mBPidbY29tcGxpY2F0ZWRdJzsKK+e5gz4nW2JpbmRdJzsKK+e5hj4nW3dpbmQgYXJvdW5kXSc7CivnuYo+J1tmaW5lXSc7CivnuYs+J1thdHRhY2hdJzsKK+e5jT4nW2VtYnJvaWRlcl0nOwor57mUPidbd2VhdmVdJzsKK+e5lT4nW3JlcGFpcl0nOwor57mWPidbdW1icmVsbGFdJzsKK+e5mT4nW2ludGVycHJldF0nOwor57maPidbd2luZCByb3VuZF0nOworIyLnuZ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e5nj4nW2VudHdpbmVdJzsKK+e5pj4nW3N0cmluZyBvZiBjb3BwZXIgY29pbnNdJzsKKyMi57mnPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuak+J1tyb3BlXSc7Civnuao+J1tkcmF3XSc7Civnua0+J1tjb2Nvb25dJzsKK+e5sD4nW3RvIHJlZWwgc2lsayBmcm9tIGNvY29vbnNdJzsKK+e5uT4nW3VucmF2ZWwgb3IgdW5yZWVsIHNpbGtdJzsKK+e5uz4nW2ZpbmUgc2lsayBndWF6ZV0nOwor57m8PidbY29udGludWVdJzsKK+e5vT4nW2Zsb3VyaXNoaW5nXSc7CisjIue5vz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qCPidbZWRpdF0nOworIyLnuoM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e6iD4nW3BhdHRlcm5lZCBzaWxrXSc7CisjIue6iT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qMPidbY29udGludWVdJzsKK+e6jj4nW2ZpbmVdJzsKK+e6jz4nW3dyYXBdJzsKKyMi57qQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnupI+J1t3cmFwXSc7CivnupM+J1tjaGluIHN0cmFwXSc7CivnupQ+J1t0YWxlbnRdJzsKK+e6lj4nW2ZpbmVdJzsKK+e6mz4nW2EgYmFubmVyXSc7Civnupw+J1toYXdzZXJdJzsKK+e8tj4nW2VhcnRoZW4gY3JvY2sgb3IgamFyXSc7CivnvLg+J1tlYXJ0aGVuIGp1Z10nOwor57y6PidbYmUgc2hvcnQgb2ZdJzsKK+e9hT4nW2NyYWNrXSc7CivnvYw+J1tsb25nIG5lY2tlZCBqYXIgb3IgYm90dGxlXSc7CivnvY0+J1tsYXJnZSBlYXJ0aGVud2FyZSB3aW5lIGphcl0nOwor572OPidbYW4gZWFydGhlbndhcmUgamFyXSc7CivnvZA+J1tqYXJdJzsKK+e9kT4nW25ldF0nOwor572UPidbbmV0XSc7CivnvZU+J1tyYXJlXSc7CivnvZg+J1tzY3JlZW4gdXNlZCBpbiBhbmNpZW50IHRpbWVzXSc7CivnvZ8+J1tuZXRdJzsKK+e9oD4nW2FuaW1hbCB0cmFwXSc7CisjIue9pz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor572oPidbbWVkaWNhbCBjb21wcmVzc10nOwor572pPidbYmFza2V0IGZvciBjYXRjaGluZyBmaXNoXSc7Civnvao+J1tjcmltZV0nOwor572rPidbaGluZGVyXSc7Civnva4+J1twbGFjZV0nOwor572wPidbcGVuYWx0eV0nOwor572yPidbcHVibGljIG9mZmljZV0nOwor5721PidbYWNjdXNlXSc7Civnvbc+J1tjZWFzZV0nOwor5724PidbcGVuYWx0eV0nOwor5725Pidbc29ycm93XSc7CisjIue+gj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor576DPidbY292ZXItY2xvdGhdJzsKK+e+hT4nW25ldCBmb3IgY2F0Y2hpbmcgYmlyZHNdJzsKK+e+hj4nW2Jyb3duIGJlYXJdJzsKK+e+hz4nW2lubl0nOwor576IPidbaGFsdGVyXSc7Civnvoo+J1tzaGVlcF0nOwor576MPidbcWlhbmcgbmF0aW9uYWxpdHldJzsKK+e+jj4nW2JlYXV0aWZ1bF0nOwor576UPidbbGFtYl0nOwor576aPidbc3BlY2llcyBvZiBhbnRlbG9wZV0nOwor576dPidbcmFtXSc7Civnvp4+J1tkaXNncmFjZV0nOwor576jPidbZ3JvdXBdJzsKK+e+pD4nW2dyb3VwXSc7Civnvqg+J1tlbnZ5XSc7Civnvqk+J1tyaWdodCBjb25kdWN0XSc7Civnvq4+J1tzb3VwXSc7Civnvq8+J1t3ZXRoZXJdJzsKK+e+sj4nW2FuY2llbnQgZW1wZXJvcl0nOwor5762PidbcmFuayBvZG9yXSc7Civnvrg+J1t3ZWFrXSc7Civnvrk+J1tzb3VwXSc7Civnvr0+J1tmZWF0aGVyXSc7Civnv4E+J1tvbGQgbWFuXSc7Civnv4U+J1t3aW5nc10nOwor57+GPidbY29sb3IgZ3JlZW5dJzsKK+e/ij4nW2ZseWluZ10nOwor57+MPidbYnJpZ2h0XSc7Civnv5I+J1twcmFjdGljZV0nOwor57+UPidbc29hcl0nOwor57+VPidbYWdyZWVdJzsKK+e/oD4nW2NvbG9yIGdyZWVuXSc7Civnv6E+J1traW5nZmlzaGVyXSc7Civnv6Y+J1tzY2lzc29yc10nOwor57+pPidbZmx5XSc7Civnv6s+J1tjYXJlbGVzc10nOwor57+wPidbd3JpdGluZyBicnVzaF0nOwor57+zPidbc2hhZGVdJzsKK+e/uT4nW3R1cm4gdXBdJzsKK+e/uz4nW2ZsaXAgb3Zlcl0nOwor57+8Pidbd2luZ3NdJzsKK+iAgD4nW3NoaW5lXSc7CivogIE+J1tvbGRdJzsKK+iAgz4nW2V4YW1pbmVdJzsKK+iAhD4nW2VsZGVybHkgcGVyc29uXSc7CivogIU+J1t0aGF0IHdoaWNoXSc7CivogIY+J1ttYW4gb2Ygc2l4dHldJzsKK+iAiz4nW2FnZWRdJzsKK+iAjD4nW2FuZF0nOwor6ICQPidbZW5kdXJlXSc7CivogJI+J1toYW5kbGUgb2YgcGxvd10nOwor6ICVPidbcGxvd10nOwor6ICXPidbY29uc3VtZV0nOwor6ICYPidbd2VlZF0nOwor6ICZPidbcmFrZV0nOwor6ICcPidbc3BhZGUtc2hhcGVkIHRvb2xdJzsKK+iAoT4nW2hvZV0nOwor6ICoPidbaG9lXSc7CivogLM+J1tlYXJdJzsKK+iAtj4nW3VzZWQgaW4gdHJhbnNsaXRlcmF0aW9uXSc7CivogLs+J1tzaGFtZV0nOwor6IC9PidbaW5kdWxnZSBpbl0nOwor6IC/PidbYnJpZ2h0XSc7CivogYY+J1tsaXN0ZW5dJzsKK+iBij4nW3NvbWV3aGF0XSc7CivogZI+J1tjbGFtb3JdJzsKK+iBlj4nW2hvbHldJzsKK+iBmD4nW2VuZ2FnZV0nOwor6IGaPidbYXNzZW1ibGVdJzsKK+iBnj4nW2hlYXJdJzsKK+iBnz4nW3Nvbi1pbi1sYXddJzsKK+iBoT4nW2ludGVsbGlnZW50XSc7CisjIuiBoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6IGoPidbY29ubmVjdF0nOwor6IGvPidbY29ubmVjdF0nOwor6IGwPidbaW50ZWxsaWdlbnRdJzsKK+iBsj4nW3NvdW5kXSc7CivogbM+J1t1cmdlIG9uXSc7CivogbQ+J1toZWFyXSc7CivogbY+J1t3aGlzcGVyXSc7Civogbc+J1tkdXR5XSc7Civogbk+J1tlYXJ3YXhdJzsKK+iBvT4nW2hlYXJdJzsKK+iBvj4nW2RlYWZdJzsKK+iBvz4nW3dyaXRpbmcgYnJ1c2hdJzsKK+iChD4nW2xlYXJuXSc7CivogoU+J1twYXkgcmVzcGVjdHNdJzsKK+iChj4nW2luZHVsZ2VdJzsKK+iChz4nW2JlZ2luXSc7Civogok+J1tmbGVzaF0nOwor6IKLPidbcmlic10nOwor6IKMPidbbXVzY2xlIHRpc3N1ZV0nOwor6IKTPidbcmVnaW9uIGJldHdlZW4gaGVhcnQgYW5kIGRpYXBocmFnbV0nOwor6IKWPidbbG9vayBsaWtlXSc7Civogpg+J1tlbGJvd10nOwor6IKaPidbYmVsbHldJzsKK+iCmz4nW2FudXNdJzsKK+iCnT4nW2xpdmVyXSc7CivogqE+J1t0aGlnaHNdJzsKK+iCoj4nW2h1bWFuIGxpbWJzXSc7CivogqU+J1tmYXRdJzsKK+iCqT4nW3Nob3VsZGVyc10nOwor6IKqPidbYW5pbWFsIGZhdF0nOwor6IKsPidbd2FydF0nOwor6IKtPidbZmF0XSc7Civogq8+J1t3aWxsaW5nXSc7CivogrE+J1tmb3JlYXJtXSc7CivogrI+J1twcm9kdWNlXSc7CivogrQ+J1tjb29rZWQgb3IgcHJlcGFyZWQgbWVhdF0nOwor6IK6PidbbHVuZ3NdJzsKK+iDgz4nW3N0b21hY2hdJzsKK+iDhD4nW2hlbG1ldF0nOwor6IOGPidbZ2FsbCBibGFkZGVyXSc7Civog4w+J1tiYWNrXSc7Civog44+J1t1bmJvcm4gY2hpbGRdJzsKK+iDlj4nW2ZhdF0nOwor6IOZPidbZm9vZCBvZmZlcmVkIGluIHNhY3JpZmljaWFsIHNlcnZdJzsKK+iDmj4nW2VtYnJ5b10nOwor6IObPidbdGhlIHNob3VsZGVyXSc7Civog50+J1tjYWxsb3VzXSc7Civog54+J1t3b21iXSc7Civog6E+J1tyZWNrbGVzc2x5XSc7Civog6Q+J1toZWlyXSc7Civog6U+J1thbGxdJzsKK+iDrz4nW3BlbHZpc10nOwor6IOxPidbYmxhZGRlcl0nOwor6IO0PidbdGhlIGxhcmdlIGludGVzdGluZV0nOwor6IO4PidbYnJlYXN0XSc7Civog7w+J1tjYWxsdXNdJzsKK+iDvT4nW2JlIGFibGVdJzsKK+iEgj4nW2ZhdF0nOwor6ISFPidbcmlic10nOwor6ISGPidbY3Jpc3BdJzsKK+iEhz4nW3JpYnNdJzsKK+iEiD4nW2Jsb29kIHZlc3NlbHNdJzsKK+iEiT4nW2Jsb29kIHZlc3NlbHNdJzsKK+iEij4nW3NwaW5lXSc7CivohJo+J1tsZWddJzsKK+iEmz4nW3NoaW5ib25lXSc7CivohKM+J1tsaXBzXSc7CivohKk+J1tkcmllZCBtZWF0ICh1c2VkIGFzIHRlYWNoZXJzIHBheW1lbnQgaW4gYW5jaWVudCB0aW1lcyldJzsKK+iErz4nW2RyaWVkIG1lYXRdJzsKK+iEsT4nW3Rha2Ugb2ZmXSc7CivohLM+J1ticmFpbl0nOwor6IS5Pidbc3dlbGxdJzsKK+iEvj4nW3NwbGVlbl0nOwor6IWGPidbcHJvc3Blcm91c10nOwor6IWLPidbYXJtcGl0XSc7CivohY4+J1traWRuZXlzXSc7CivohZA+J1tyb3RdJzsKK+iFkT4nW2Jvd2Vsc10nOwor6IWTPidbY2FsZl0nOwor6IWUPidbY2hlc3QgY2F2aXR5XSc7CivohZU+J1t3cmlzdF0nOwor6IWfPidbdmFnaW5hXSc7CivohaU+J1tyYXcgbWVhdF0nOwor6IWmPidbYnJhaW5dJzsKK+iFqz4nW3N3ZWxsXSc7Civoha4+J1tsb3dlciBwYXJ0IG9mIGZhY2VdJzsKK+iFsD4nW3dhaXN0XSc7CivohbE+J1t0ZW5kb25zXSc7CivohbQ+J1tmYXRdJzsKK+iFuD4nW2ludGVzdGluZXNdJzsKK+iFuT4nW3N0b21hY2hdJzsKK+iFuj4nW2dsYW5kXSc7Civohb8+J1tsZWdzXSc7CivohoA+J1t1cHBlciBhcm1dJzsKK+iGgj4nW2JhY2tib25lXSc7CivohoM+J1tmYXRdJzsKK+iGiD4nW2RpYXBocmFnbV0nOwor6IaKPidbc2hvdWxkZXJzXSc7Civoho8+J1tncmVhc2VdJzsKK+iGkz4nW2ludGVzdGluZXNdJzsKK+iGlT4nW2hvbGxvd10nOwor6IaaPidbc2tpbl0nOwor6IacPidbbWVtYnJhbmVdJzsKK+iGnT4nW2tuZWVdJzsKK+iGoD4nW2dsdWVdJzsKK+iGoz4nW3ZhZ2luYV0nOworIyLohqQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iGqD4nW3N3ZWxsXSc7Civohqk+J1tncmVhc3ldJzsKK+iGsD4nW2Nvb2sgbWVhdCBmb3Igc2FjcmlmaWNlIG9yIG9mZmVyXSc7CivohrM+J1ttZWFsc10nOwor6Ia1PidbcGFuY3JlYXNdJzsKKyMi6Ia4PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivohro+J1ticmVhc3RdJzsKK+iGvT4nW2dhbGwgYmxhZGRlcl0nOwor6Ia+PidbbWluY2VkIG1lYXQgb3IgZmlzaF0nOwor6Ia/PidbcHVzXSc7Civoh4A+J1tidXR0b2Nrc10nOwor6IeCPidbYXJtXSc7Civoh4Y+J1tjaGVzdF0nOwor6IeIPidbeWVhciBlbmQgc2FjcmlmaWNlXSc7Civoh4k+J1tmYWNlXSc7Civoh40+J1thYmRvbWluYWwgYXJlYSBvZiBjcmFiXSc7Civoh5E+J1tzb2Z0XSc7Civoh5M+J1tpbnRlcm5hbCBvcmdhbnNdJzsKK+iHmD4nW3llYXIgZW5kIHNhY3JpZmljZV0nOwor6IeZPidbcm91Z2VdJzsKK+iHmj4nW2FycmFuZ2UgaW4gb3JkZXJdJzsKK+iHnz4nW2ludGVybmFsIG9yZ2Fuc10nOwor6IegPidbc21hbGwgbHVtcCBvZiBtZWF0XSc7Civoh6M+J1ttaW5pc3Rlcl0nOwor6IelPidbbGllIGRvd25dJzsKK+iHpz4nW2dvb2RdJzsKK+iHqD4nW2RyYXcgbmVhcl0nOwor6IeqPidbc2VsZl0nOwor6IetPidbc21lbGxdJzsKK+iHsz4nW3JlYWNoXSc7Civoh7Q+J1tzZW5kXSc7Civoh7o+J1t0b3dlcl0nOwor6Ie7PidbcmVhY2hdJzsKK+iHvD4nW21vcnRhcl0nOwor6Ie+PidbbW9tZW50XSc7CivoiIE+J1tjYXJyeSBvbiBvbmUnJ3Mgc2hvdWxkZXJdJzsKK+iIgj4nW2dyaW5kIGluIG1vcnRhcl0nOwor6IiFPidbbW90aGVyJydzIGJyb3RoZXJdJzsKK+iIhz4nW2FuZF0nOwor6IiIPidbdGhyaXZlXSc7CivoiIk+J1tyYWlzZV0nOwor6IiKPidbb2xkXSc7CivoiIw+J1t0b25ndWVdJzsKK+iIjT4nW2hvdXNlXSc7CivoiI4+J1tob3VzZV0nOwor6IiQPidbbGljayB3aXRoIHRvbmd1ZV0nOwor6IiSPidbb3BlbiB1cF0nOwor6IiWPidbc3RvcmVdJzsKK+iIlz4nW3N0b3JlXSc7CivoiJg+J1thIG1hbnNpb25dJzsKK+iImz4nW29wcG9zZV0nOwor6IicPidbbGVnZW5kYXJ5IHJ1bGVyXSc7CivoiJ4+J1tkYW5jZV0nOwor6IifPidbYm9hdF0nOwor6IipPidbYm9hdF0nOwor6IiqPidbc2FpbF0nOwor6IirPidbZmFuY3kgYm9hdF0nOwor6IisPidbc29ydF0nOwor6IiuPidbYm93IG9yIHByb3cgb2YgYm9hdF0nOwor6IizPidbc3Rlcm4gb2Ygc2hpcF0nOwor6Ii1PidbcnVkZGVyXSc7CivoiLY+J1tsYXJnZV0nOwor6Ii3Pidbc2lkZXMgb2YgYm9hdF0nOwor6Ii4PidbbGFyZ2UgYm9hdF0nOwor6Ii5Pidbc2hpcF0nOwor6ImAPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor6ImHPidbc21hbGwgYm9hdF0nOwor6ImYPidbY291bnRlciBmb3Igc2hpcHNdJzsKK+iJmT4nW2hvbGQgb2Ygc2hpcF0nOwor6ImaPidbc2hpcF0nOworIyLoiZ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iJnz4nW2FuY2llbnQgd2Fyc2hpcF0nOwor6ImiPidbYSBtYXN0XSc7CivoiaQ+J1t0byBtb29yIGEgYm9hdCB0byB0aGUgYmFua10nOwor6ImmPidbd2Fyc2hpcF0nOwor6ImoPidbbG9uZyBhbmQgbmFycm93IHdhci1ib2F0XSc7Civoiao+J1tvYXJdJzsKK+iJqz4nW2JvdyBvciBwcm93IG9mIGJvYXRdJzsKK+iJrj4nW3NldmVudGggb2YgZWlnaHQgZGlhZ3JhbXNdJzsKK+iJrz4nW2dvb2RdJzsKK+iJsT4nW2RpZmZpY3VsdF0nOwor6ImyPidbY29sb3JdJzsKK+iJtj4nW2JlYXV0aWZ1bF0nOwor6Im3PidbYmVhdXRpZnVsXSc7Civoibg+J1tncmFzc10nOwor6Im+PidbYXJ0ZW1pc2lhXSc7Civoios+J1t0YXJvXSc7Civoio0+J1twZW9ueV0nOwor6IqSPidbbWlzY2FudGh1cyBzaW5lbnNpc10nOwor6IqZPidbaGliaXNjdXNdJzsKK+iKnT4nW3B1cnBsaXNoIG11c2hyb29tIHRob3VnaHQgcHJvbW90XSc7Civoip8+J1ttb3ddJzsKK+iKpT4nW211c3RhcmQgcGxhbnRdJzsKK+iKpj4nW3J1c2hlc10nOwor6IqrPidbZGFwaG5lIGdlbmt3YV0nOwor6IqsPidbZnJhZ3JhbmNlXSc7Civoiq0+J1twbGFudGFpbiBvciBiYW5hbmEgcGFsbV0nOwor6IqvPidbcGl0aCBmcm9tIHJ1c2ggKGp1bmN1cyBlZmZ1c3VzKV0nOwor6IqxPidbZmxvd2VyXSc7CivoirM+J1tmcmFncmFudF0nOwor6Iq4PidbcnVlXSc7Civoirk+J1tjZWxlcnldJzsKK+iKuz4nW21vd10nOwor6Iq9PidbYnVkXSc7Civoi4U+J1tjdXQgb2ZmXSc7Civoi5E+J1twYXN0dXJlXSc7Civoi5I+J1tsdXNoXSc7Civoi5M+J1tmdW5ndXNdJzsKK+iLlD4nW21vc3NdJzsKK+iLlz4nW3Nwcm91dHNdJzsKK+iLmT4nW3BpZ3N0eV0nOwor6IubPidbc21hbGxdJzsKK+iLnD4nW2Nsb3Zlcl0nOwor6IuePidbdmFyaWV0eSBvZiBydXNoXSc7Civoi58+J1tjYXJlbGVzc10nOwor6IuhPidbYmFybGV5XSc7Civoi6M+J1traW5kIG9mIGxldHR1Y2VdJzsKK+iLpT4nW2lmXSc7Civoi6Y+J1tiaXR0ZXJdJzsKK+iLpz4nW2NoaW5hIGdyYXNzXSc7Civoi6s+J1tydXNoIG9yIHN0cmF3IG1hdHRpbmddJzsKK+iLsT4nW3BldGFsXSc7CisjIuiLsz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Iu0Pidbc2Fja2Nsb3RoXSc7Civoi7k+J1thcnRlbWlzaWFdJzsKK+iLuj4nW2JlcnJpZXNdJzsKK+iLuz4nW2tpbmQgb2YgaGVyYl0nOwor6IyCPidbdGhpY2tdJzsKK+iMgz4nW3N1cm5hbWVdJzsKK+iMhD4nW2VnZ3BsYW50XSc7CivojIU+J1tyZWVkc10nOwor6IyGPidbc3BlY2llcyBvZiBncmFzc10nOwor6IyJPidbd2hpdGUgamFzbWluZV0nOwor6IyOPidbc3RlbV0nOwor6IyWPidbYWxsaXVtIHZpY3RvcmlhbGlzXSc7CivojJc+J1t0ZWFdJzsKKyMi6IyXPidbdGVhXSciLAor6IycPidbbWFkZGVyXSc7CisjIuiMoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6IyoPidbY2FsdHJvcF0nOwor6IyrPidbdmFzdF0nOwor6IyvPidbY2hpbmEgcm9vdF0nOwor6IyxPidbZG9nd29vZF0nOwor6IyyPidbbm93XSc7CivojLQ+J1tmZW5uZWxdJzsKK+iMtT4nW2N1c2hpb25dJzsKK+iMtj4nW3RlYV0nOwor6Iy4Pidbc29mdF0nOwor6Iy5Pidbcm9vdHNdJzsKK+iNgD4nW3N1cm5hbWVdJzsKK+iNhT4nW2Fuc3dlcjogc21hbGwgYmVhbl0nOwor6I2JPidbZ3Jhc3NdJzsKK+iNij4nW3Rob3Juc10nOwor6I2PPidbYmVhbnNdJzsKK+iNkD4nW3JlcGVhdF0nOwor6I2SPidbd2FzdGVsYW5kXSc7CivojZg+J1t2aWxsYWdlXSc7CivojbM+J1tiZWFuc10nOworIyLojbU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iNtz4nW2xvdHVzXSc7Civojbs+J1tyZWVkXSc7Civojbw+J1tiaXR0ZXIgdmVnZXRhYmxlXSc7CivojoU+J1thdHRlbmRdJzsKKyMi6I6HPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivojok+J1t3aGl0ZSBqYXNtaW5lXSc7Civojoo+J1t2aWxsYWdlXSc7Civojo4+J1traW5kIG9mIHNlZGdlIGdyYXNzXSc7CivojpM+J1ttb3NzXSc7CivojpY+J1tzdGVtXSc7Civojpo+J1tiYW1ib28gbWF0XSc7Civojp4+J1tzbWlsaW5nXSc7CisjIuiOnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6I6gPidbd2VlZHNdJzsKK+iOoj4nW3BvZHMgb2YgbGVndW1pbm91cyBwbGFudHNdJzsKK+iOqD4nW2hlcmJdJzsKK+iOqj4nW2FydGVtaXNpYV0nOwor6I6rPidbZG8gbm90XSc7CivojrE+J1tnb29zZWZvb3RdJzsKK+iOtT4nW2RvZGRlcl0nOwor6I69PidbdGhpY2tldF0nOwor6I+BPidbZmxvd2VyIG9mIGxlZWsgZmFtaWx5XSc7Civoj4U+J1tjb2Fyc2UgZ3Jhc3NdJzsKK+iPij4nW2NocnlzYW50aGVtdW1dJzsKK+iPjD4nW211c2hyb29tXSc7Civoj44+J1tiZWF1dGlmdWwgamFkZV0nOwor6I+TPidbZnJ1aXRzXSc7Civoj5Y+J1tpcmlzXSc7Civoj5g+J1tjZWxlcnldJzsKK+iPnD4nW3ZlZ2V0YWJsZXNdJzsKK+iPnz4nW2RvZGRlcl0nOwor6I+gPidbc3BpbmFjaCBhbmQgc2ltaWxhciBncmVlbnNdJzsKK+iPqT4nW2hlcmJdJzsKK+iPqz4nW2NlbGVyeV0nOwor6I+vPidbZmxvd2VyeV0nOwor6I+wPidbd2lsZCByaWNlXSc7Civoj7E+J1t3YXRlci1jaGVzdG51dF0nOwor6I+yPidbZnJhZ3JhbnRdJzsKK+iPtD4nW3NtYWxsIGJ1ZGRoaXN0IG1vbmFzdGVyeV0nOworIyLoj7c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iPuz4nW2FydGVtaXNpYV0nOwor6I+9PidbYmVhbnMgYW5kIHBlYXNdJzsKK+iQgz4nW2RlbnNlXSc7CivokIQ+J1tncmFwZXNdJzsKK+iQhz4nW2F2ZXJyaG9yYSBjYXJhbWJvbGFdJzsKK+iQiz4nW2x1eHVyaWFudCBmb2xpYWdlXSc7CivokIw+J1tidWRdJzsKK+iQjT4nW2R1Y2t3ZWVkXSc7CivokI4+J1t3aXRoZXJdJzsKKyMi6JCTPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKA+J1tidWRdJzsKKyMi6JCiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKk+J1tzY2FuZGVudCBob3BdJzsKKyMi6JCqPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKw+J1t0ZW4gdGhvdXNhbmRdJzsKK+iQsT4nW2RheS1saWx5XSc7CivokLU+J1tsZXR0dWNlXSc7CivokLg+J1tkb2d3b29kXSc7CivokLw+J1tjYWx5eCBvZiBmbG93ZXJdJzsKK+iQvT4nW2ZhbGxdJzsKK+iRhj4nW3Jlc2VydmVdJzsKK+iRiT4nW2xlYWZdJzsKKyMi6JGOPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokZc+J1ttYW5pZmVzdF0nOwor6JGbPidbZWRpYmxlIGJlYW5dJzsKK+iRoT4nW2dyYXBlc10nOwor6JGiPidbY292ZXJdJzsKK+iRoz4nW2RpcmVjdF0nOwor6JGmPidbcmVlZF0nOwor6JGpPidbZmxvd2Vyc10nOwor6JGrPidbYm90dGxlLWdvdXJkXSc7Civokaw+J1tidXJ5XSc7Civoka0+J1tidWxydXNoXSc7CisjIuiRrT4nW2J1bHJ1c2hdJyIsCivoka8+J1tsZWFmIG9mIGFuZ2VsaWNhIHBsYW50XSc7CivokbE+J1tzY2FsbGlvbnNdJzsKK+iRtT4nW3N1bmZsb3dlcl0nOwor6JG3PidbbWVhdCBkaWV0XSc7Civokbk+J1traW5kIG9mIGNocnlzYW50aGVtdW1dJzsKK+iRuj4nW3RoYXRjaF0nOwor6JKCPidbcGVkdW5jbGUgb3Igc3RlbSBvZiBwbGFudHNdJzsKKyMi6JKEPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokos+J1tzdXJuYW1lXSc7CivokpA+J1tjb2xsZWN0XSc7CivokpQ+J1t0cmFuc3BsYW50XSc7Civokpk+J1tjb3Zlcl0nOwor6JKcPidbZ2FybGljXSc7Civokp8+J1tiZXRlbCBwZXBwZXJdJzsKK+iSoT4nW2J1cmRvY2tdJzsKK+iSrT4nW3RvIGN1dGdyYXNzXSc7CivokrI+J1t0eXBlIG9mIHJ1c2hdJzsKK+iSuD4nW3N0ZWFtXSc7Civokrk+J1tyZWVkXSc7Civokrs+J1tydXNoZXNdJzsKK+iSvD4nW2JsdWVdJzsKK+iSvz4nW211Z3dvcnRdJzsKK+iTgT4nW2FidW5kYW50XSc7Civok4Q+J1tzdG9yZV0nOwor6JOGPidbc3RyYXcgbWF0XSc7Civok4k+J1toaWJpc2N1c10nOwor6JOKPidbbHV4dXJpYW50IHZlZ2V0YXRpb25dJzsKK+iTiz4nW2NvdmVyXSc7Civok40+J1ttaWxmb2lsXSc7Civok5A+J1tzdHJhdyBiZWQgbWF0XSc7Civok5E+J1tyYWluIGNvYXQgbWFkZSBvZiBzdHJhd10nOwor6JOWPidbY2FzdG9yLW9pbCBwbGFudF0nOworIyLok5k+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iTmj4nW294YWxpYyAodXNlZCBpbiBjb21wb3VuZHMpXSc7Civok6w+J1t0eXBlIG9mIHJhc3BiZXJyeV0nOwor6JOuPidbbG90dXNdJzsKK+iTtD4nW2VkaWJsZSB3YXRlciBwbGFudF0nOwor6JO8Pidbc21hcnR3ZWVkXSc7Civok78+J1tjbG92ZXJdJzsKK+iUgD4nW3NjcmVlbl0nOwor6JSGPidbd2F0ZXItY2hlc3RudXRdJzsKK+iUkT4nW2Rpc2RhaW5dJzsKK+iUkz4nW2NyZWVwaW5nIHBsYW50c10nOwor6JSUPidbcmFkaXNoXSc7CivolJU+J1twZWR1bmNsZSBvciBzdGVtIG9mIHBsYW50c10nOwor6JSXPidbc3VnYXIgY2FuZV0nOwor6JSYPidbZ2luc2VuXSc7CivolJo+J1tsdXh1cmlhbnRdJzsKK+iUnz4nW2ZyYW1lIG9uIHdoaWNoIHNpbGt3b3JtcyBzcGluXSc7CivolKE+J1tzdXJuYW1lXSc7CivolKY+J1twYXJhc2l0aWMgcGxhbnRzXSc7CivolKw+J1t2ZWdldGFibGVzXSc7CivolK0+J1tzaGFkZV0nOwor6JS1PidbaGlkZV0nOwor6JS9PidbY292ZXJdJzsKKyMi6JWAPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivolYE+J1tuZXR0bGVdJzsKK+iVgz4nW2ZvcmVpZ24gdGhpbmdzXSc7CivolYg+J1ttdXNocm9vbXNdJzsKK+iViT4nW2JhbmFuYV0nOwor6JWKPidbdW5vcGVuZWQgZmxvd2Vyc10nOwor6JWLPidbdW5vcGVuZWQgZmxvd2Vyc10nOwor6JWOPidbYnVja3doZWF0XSc7CivolZU+J1tjYXJ5b3B0ZXJpcyBkaXZhcmljYXRhXSc7CisjIuiVlz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JWYPidbZnVlbF0nOwor6JWaPidbY2FseXggb2YgZmxvd2VyXSc7CivolaM+J1toaWJpc2N1c10nOwor6JWoPidbcHRlcmlzIGFxdWlsaW5hXSc7Civolak+J1twb25kXSc7Civolao+J1tsdXh1cmlvdXMgZ3Jvd3RoIG9mIHdlZWRzXSc7Civola0+J1tjb21tb24gYXJ0ZW1pc2lhXSc7Civolbc+J1t5YW1dJzsKK+iVvj4nW2J1ZHNdJzsKK+iWgD4nW3RoZSBoaXBwdXJpcyBvciBtYXJlJydzIHRhaWwgcGxhbnRdJzsKK+iWhD4nW3RoaW5dJzsKK+iWhz4nW29zbXVuZGEgcmVnYWxpc10nOwor6JaIPidbbHV4dXJpYW50XSc7Civoloo+J1tjaXJjaXVtXSc7CivolpA+J1tzcGluYWNoXSc7CivolpE+J1tnaW5nZXJdJzsKK+iWlD4nW3Jvc2VdJzsKK+iWlz4nW2dhcmRlbl0nOwor6JaZPidbd2VlZF0nOwor6JabPidba2luZCBvZiBtYXJzaCBncmFzc10nOwor6JacPidbZXZlcmdyZWVuIHNocnVic10nOwor6JakPidbYWxsaXVtIGJha2VyaV0nOwor6JamPidbb2ZmZXJdJzsKK+iWqD4nW2RlYXRoIG9mIHByaW5jZV0nOwor6JapPidbdHJhbnNsaXRlcmF0aW9uIG9mIFwic2F0XCIgb2YgYm9kZGhpc2F0dHZhIGV0Yy5dJzsKK+iWqj4nW2Z1ZWxdJzsKK+iWqz4nW2EgbWVkaWNpbmFsIGhlcmJdJzsKK+iWrD4nW2RydWdzXSc7Civolq4+J1ttYXJzaF0nOwor6JavPidbeWFtXSc7Civolrk+J1tjeXBlcnVzIHJvdHVuZHVzXSc7Civolro+J1t3YXRlci1jaGVzdG51dHNdJzsKK+iXgT4nW3N0cmF3XSc7Civol4k+J1ttYXRdJzsKK+iXjT4nW2JsdWVdJzsKK+iXjz4nW2hpZGVdJzsKK+iXkD4nW2Rpc3JlZ2FyZF0nOwor6JeVPidbbG90dXMgcm9vdF0nOwor6JecPidbY2hlbm9wb2RpdW0gYWxidW1dJzsKK+iXnT4nW2FydF0nOwor6JekPidbcmF0dGFuXSc7Civol6U+J1tkcnVnc10nOwor6JepPidbZmVuY2VdJzsKK+iXqj4nW21hcnNoXSc7Civol7c+J1t5YW1dJzsKK+iXuT4nW2x1c2hdJzsKK+iXuj4nW3J1c2ggdXNlZCBpbiBtYWtpbmcgbWF0c10nOwor6Je7Pidbc3BsZW5kaWRdJzsKK+iXvj4nW3NoYWRlXSc7CivomII+J1tzdGFtZW4gb3IgcGlzdGlsXSc7CivomIY+J1tydXNoZXNdJzsKK+iYhz4nW3RoeW1lXSc7CivomIo+J1tjb2xsZWN0XSc7CivomIs+J1thcHBsZV0nOwor6JiTPidbdGh5bWVdJzsKK+iYlj4nW3N0dW1wXSc7CivomJc+J1tzdHVtcF0nOwor6JiaPidbbW9zc10nOwor6JiiPidbdGFsbCBncmFzc10nOwor6JitPidbb3JjaGlkXSc7CivomK8+J1t0byB0b3NzIGFib3V0XSc7CisjIuiYrz4nW3RvIHRvc3MgYWJvdXRdJyIsCivomL8+J1t0eXBlIG9mIGNyZWVwaW5nIHBsYW50XSc7CivomY0+J1t0aWdlcl0nOwor6JmOPidbdGlnZXJdJzsKK+iZkD4nW2NydWVsXSc7CivomZQ+J1thY3Qgd2l0aCByZXZlcmVuY2VdJzsKK+iZlT4nW3BsYWNlXSc7CivomZo+J1tmYWxzZV0nOwor6JmcPidbY2FwdHVyZV0nOwor6JmePidbY29uY2VybmVkIGFib3V0XSc7CivomZ8+J1ttYXJrXSc7Civomac+J1tsb3NlXSc7Civomas+J1tpbnNlY3RzXSc7CivombE+J1tsb3VzZV0nOwor6Jm5PidbcmFpbmJvd10nOwor6Jm7PidbaG9yc2VmbHldJzsKK+iaij4nW21vc3F1aXRvXSc7Civomos+J1tnbmF0XSc7Civomow+J1tveXN0ZXJzXSc7CivompM+J1tlYXJ0aHdvcm1dJzsKK+ialT4nW3NpbGt3b3Jtc10nOwor6JqjPidbY2VudGlwZWRlXSc7CivomqQ+J1tmbGVhXSc7Civomqk+J1t3b3JtXSc7Civomqo+J1t0YWRwb2xlXSc7Civomqs+J1thYmFsb25lXSc7Civomq8+J1tlYXJ0aHdvcm1dJzsKK+iasD4nW21pbGxpcGVkZV0nOwor6Jq2Pidba2luZCBvZiBjbGFtXSc7Civom4Q+J1ttb2xlIGNyaWNrZXRdJzsKK+ibhj4nW21hZ2dvdHNdJzsKK+ibhz4nW3NuYWtlXSc7Civom4k+J1tkcmFnb25mbHldJzsKK+ibiz4nW2VnZ3NdJzsKK+ibjT4nW2dsb3ctd29ybV0nOwor6JuOPidbb3lzdGVyXSc7Civom5Q+J1t0YXBld29ybV0nOwor6JuZPidbZnJvZ10nOwor6JubPidbc3BpZGVyXSc7Civom54+J1tzbmFpbF0nOwor6JufPidbc2NhbHkgZHJhZ29uIHdpdGggZm91ciBsZWdzXSc7Civom6Q+J1tjbGFtXSc7Civom6k+J1tjcmlja2V0XSc7CisjIuibqT4nW2NyaWNrZXRdJyIsCivom60+J1tsZWVjaF0nOwor6JuuPidbYmFyYmFyaWFuc10nOwor6JuvPidbc2hyaW1wXSc7Civom7g+J1tsb25nIGxlZ2dlZCBzcGlkZXJdJzsKK+ibuT4nW2NocnlzYWxpc10nOwor6Ju7PidbbW9sdF0nOwor6Ju+PidbbW90aF0nOwor6JyAPidbbmFtZSBvZiBhbiBhbmNpZW50IHN0YXRlXSc7CivonII+J1tiZWVdJzsKK+icgz4nW21hcmluZSBtb25zdGVyIHdoaWNoIGNhbiBjaGFuZ2UgaXRzIHNoYXBlXSc7CivonIY+J1thIHZhcmlldHkgb2YgYml2YWx2ZXNdJzsKK+iciD4nW2NlbnRpcGVkZV0nOwor6JyJPidbbWF5Zmx5XSc7CivonIo+J1tjbGFtXSc7CivonI0+J1t0b2FkXSc7CivonJE+J1tlZ2ddJzsKK+ickj4nW21pbGxpcGVkZV0nOwor6JyYPidbc3BpZGVyXSc7CivonJo+J1tjb2Nrcm9hY2hdJzsKK+icnD4nW2hvbmV5XSc7CivonKU+J1tsaXphcmRdJzsKK+icqT4nW2NpY2FkYV0nOwor6Jy0PidbbGl6YXJkXSc7CivonLc+J1tjcmVlcCBsaWtlIHdvcm1dJzsKK+icuz4nW2RyYWdvbmZseV0nOwor6Jy/PidbY3JlZXBdJzsKK+idiT4nW2NpY2FkYV0nOwor6J2LPidbd2F4XSc7CivonYw+J1t0YWRwb2xlXSc7CivonY4+J1tzY29ycGlvbl0nOwor6J2TPidbc25haWxdJzsKK+idlT4nW25pYmJsZSBhd2F5XSc7CivonZc+J1traW5kIG9mIGxvY3VzdF0nOwor6J2ZPidbYmF0XSc7CivonZ8+J1toZWRnZWhvZ10nOwor6J2gPidba2luZCBvZiBiYXRdJzsKK+idoz4nW21heWZseV0nOwor6J2mPidbc2hyaW1wXSc7Civonag+J1tsb3VzZV0nOworIyLonag+J1tsb3VzZV0nIiwKK+idrj4nW3Zlbm9tb3VzIHNuYWtlXSc7CivonbQ+J1tidXR0ZXJmbHldJzsKK+idtj4nW2J1dHRlcmZseV0nOwor6J24Pidbc25haWxdJzsKK+idvz4nW2ZsaWVzXSc7CivonoI+J1ttYW50aXNdJzsKK+iejT4nW21lbHRdJzsKK+ienz4nW2tpbmQgb2YgY2F0ZXJwaWxsYXJdJzsKK+ieoj4nW2dsb3ctd29ybV0nOwor6J6rPidbcG9pc29uXSc7Civonq8+J1tuaXBwZXJzXSc7CivonrM+J1ttYW50aXNdJzsKK+ieuj4nW3NwaXJhbCBzaGVsbF0nOwor6J67PidbZ3J5bGxvdGFscGEgYWZyaWNhbmFdJzsKK+ievT4nW2thdHlkaWRdJzsKK+ifgD4nW2NyaWNrZXRdJzsKK+ifhD4nW3RvIGhpYmVybmF0ZV0nOwor6J+GPidbZnJvZ10nOwor6J+HPidbZnJvZ10nOwor6J+LPidbY3JpY2tldF0nOworIyLon4s+J1tjcmlja2V0XSciLAor6J+SPidbcHl0aG9uXSc7Civon6A+J1tjb2lsXSc7Civon68+J1t3b3Jtc10nOwor6J+yPidbd29ybXNdJzsKK+iftj4nW3Jhem9yIGNsYW1dJzsKK+iftz4nW21hbnRpc10nOwor6J+5PidbY3JhYl0nOwor6J+7PidbYW50c10nOwor6J++PidbdG9hZF0nOwor6KCFPidbZmxpZXNdJzsKK+igjT4nW3Njb3JwaW9uXSc7CivooI4+J1tweXRob25dJzsKK+igjz4nW2NyYWJdJzsKK+igkT4nW2xpemFyZF0nOwor6KCVPidbZXVtZW5lcyBwb2xpZm9taXNdJzsKK+iglj4nW21lYXN1cmluZyB3b3JtXSc7CivooKE+J1t3b29kLWJvcmluZyBpbnNlY3RdJzsKK+igoj4nW3dyaWdnbGVdJzsKK+igoz4nW295c3Rlcl0nOwor6KCnPidbbW90aF0nOwor6KCxPidbcG9zaW9uXSc7CivooLY+J1tzaWxrd29ybXNdJzsKK+iguT4nW21vdGhdJzsKK+iguz4nW2JhcmJhcmlhbnNdJzsKK+ihgD4nW2Jsb29kXSc7CivooYI+J1t0byBiZSBkZWZlYXRlZF0nOwor6KGEPidbZXBpc3RheGlzXSc7CivooYY+J1ttdWx0aXR1ZGVdJzsKK+ihjD4nW2dvXSc7CivooY0+J1tvdmVyZmxvd10nOwor6KGSPidbYnJhZ10nOwor6KGTPidbYXJ0XSc7CivooZc+J1tzdHJlZXRdJzsKK+ihmT4nW3B1YmxpYyBvZmZpY2VdJzsKK+ihmz4nW2d1YXJkXSc7CivooZ0+J1tydXNoIGFnYWluc3RdJzsKK+ihnj4nW2d1YXJkXSc7CivooaE+J1ttZWFzdXJlXSc7CivooaI+J1toaWdod2F5XSc7CivooaM+J1tjbG90aGVzXSc7Civooag+J1tzaG93XSc7Civooas+J1tzaGlydF0nOwor6KGwPidbZGVjbGluZV0nOwor6KGyPidbbWVuZF0nOwor6KG1PidbY2hlbWlzZV0nOwor6KG3PidbaGVhcnRdJzsKK+ihvT4nW2xhcGVsXSc7Civoob4+J1tjb3ZlcmxldF0nOwor6KG/PidbY29sbGFyIG9yIGxhcGVsIG9mIGdhcm1lbnRdJzsKK+iigT4nW3JvYmVdJzsKK+iigj4nW3NsZWV2ZXNdJzsKK+iiiD4nW2J1ZGRoaXN0IGNhc3NvY2tdJzsKK+iiiz4nW3BvY2tldF0nOwor6KKNPidbbG9uZyBnb3duXSc7CivoopI+J1tzdHJpcF0nOwor6KKWPidbc2xlZXZlXSc7Civoopc+J1t1bmxpbmVkIGdhcm1lbnRzXSc7CisjIuiimT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6KKePidbY2VyZW1vbmlhbCBkcmVzcyB3b3JuIGJ5IGVtcGVyb3JdJzsKK+iioj4nW3JvYmVdJzsKK+iipD4nW2xvbmdpdHVkZV0nOwor6KKrPidbcGFzc2l2ZSBpbmRpY2F0b3IgXCJieVwiXSc7CisjIuiirj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLoorA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iisT4nW3BpZWNlIG9mIGNsb3RoIHVzZWQgd3JhcCBidW5kbGVzXSc7CivoorQ+J1twYW50c10nOwor6KK1PidbbGFwZWxdJzsKK+iitz4nW2xpbmVkIGdhcm1lbnRdJzsKK+iivz4nW2dvd25dJzsKK+ijgT4nW2N1dCBvdXRdJzsKK+ijgj4nW3NwbGl0XSc7CisjIuijgj4nW3NwbGl0XSciLAorIyLoo4I+J1tzcGxpdF0nIiwKK+ijhT4nW2RyZXNzXSc7Civoo48+J1tpbnNpZGVdJzsKK+ijlD4nW3Byb2dlbnldJzsKK+ijlT4nW2FidW5kYW50XSc7Civoo5g+J1tmdXIgZ2FybWVudHNdJzsKK+ijmT4nW3NraXJ0XSc7Civoo5w+J1ttZW5kXSc7Civoo50+J1tkcmVzc10nOwor6KOfPidbYSBjYXNzb2NrIG9yIHJvYmUgb2YgYSBtb25rXSc7Civoo6E+J1tpbnNpZGVdJzsKK+ijqD4nW2FpZF0nOwor6KOyPidbd2Fpc3Rjb2F0XSc7Civoo7M+J1tjbG90aGVzXSc7Civoo7Q+J1tzdXJuYW1lXSc7Civoo7g+J1tiYXJlXSc7Civoo7k+J1t3cmFwXSc7Civoo7w+J1t0byB0YWtlIG9mZiBvbmUnJ3MgdG9wXSc7Civoo70+J1ttYWtlXSc7Civoo74+J1tsYXBlbF0nOwor6KSCPidbamFja2V0XSc7CisjIuikgz4nW2Egc2VhbSBpbiBhIGdhcm1lbnRdJyIsCivopIc+J1tyZXBlYXRdJzsKK+ikij4nW2NyYW1wZWRdJzsKK+ikjD4nW3Ryb3VzZXJzXSc7CivopJA+J1tjb2Fyc2Ugd29vbGVuIGNsb3RoXSc7CivopJI+J1twcmFpc2VdJzsKK+ikkz4nW3N3YWRkbGluZyBjbG90aF0nOwor6KSdPidbdW5saW5lZCBnYXJtZW50XSc7CisjIuiknj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6KSlPidbbWF0dHJlc3NdJzsKK+ikqj4nW3N0cmlwXSc7CivopKs+J1tzdHJpcF0nOwor6KS2PidbcGxlYXRdJzsKK+ikuD4nW2xhcGVsXSc7CivopLs+J1tkaXJ0eV0nOwor6KWBPidbc3dhZGRsaW5nIGNsb3RoZXNdJzsKK+ilgz4nW2NvbW1lbmRdJzsKK+ilhD4nW2FpZF0nOwor6KWMPidbdW5saW5lZCBnYXJtZW50XSc7CivopY0+J1ttaXhlZF0nOwor6KWWPidbb3V0ZXIgZ2FybWVudHNdJzsKK+ilnj4nW2ZvbGRdJzsKK+ilnz4nW2xhcGVsXSc7CivopaA+J1tjcm90Y2ggb3Igc2VhdCBvZiBwYW50c10nOwor6KWkPidbcmFnZ2VkXSc7CivopaY+J1tzaG9ydCBjb2F0XSc7Civopao+J1tzb2Nrc10nOwor6KWtPidbdHVjayB1cCBoZW0gb2YgZ2FybWVudCBhbmQgd3JhcF0nOwor6KWvPidbdW5kZXJ3ZWFyXSc7CivopbI+J1tyYWlkXSc7CivopbQ+J1thIG9uZSBwaWVjZSBnYXJtZW50XSc7CisjIuiltj4nW2lnbm9yYW50XSciLAor6KW+PidbY292ZXJdJzsKK+ilvz4nW3dlc3QoZXJuKV0nOwor6KaBPidbbmVjZXNzYXJ5XSc7CivopoM+J1tyZWFjaCB0b10nOwor6KaGPidbY292ZXJdJzsKK+imhz4nW3J1bGUgYnkgbWlnaHQgcmF0aGVyIHRoYW4gcmlnaHRdJzsKK+imiD4nW2ludmVzdGlnYXRlXSc7Civopoo+J1toYWx0ZXJdJzsKK+imiz4nW3NlZV0nOwor6KaPPidbcnVsZXNdJzsKK+imkz4nW3NlZWtdJzsKK+imlj4nW2xvb2sgYXRdJzsKK+imlz4nW3BlZWtdJzsKK+immD4nW3BlZWtdJzsKK+immj4nW3dha2UgdXAgZnJvbSBzbGVlcF0nOwor6KahPidbd2l6YXJkXSc7CivopqY+J1tkZXNpcmUgc3Ryb25nbHldJzsKK+impz4nW2xvb2sgYXRdJzsKK+imqT4nW3NlZV0nOwor6KaqPidbcmVsYXRpdmVzXSc7Civopqw+J1tjb3ZldF0nOwor6KavPidbbWVldCBvciBzZWUgdW5leHBlY3RlZGx5XSc7CivoprI+J1toYXZlIGltcGVyaWFsIGF1ZGllbmNlXSc7CivoprM+J1tzZWVdJzsKK+imuj4nW3dha2UgdXAgZnJvbSBzbGVlcF0nOwor6Ka9PidbbG9vayBhdF0nOwor6Ka/Pidbc2VlXSc7Civop4A+J1tzZWVdJzsKK+inkj4nW2hvcm5dJzsKK+inmj4nW2p1Z10nOwor6KecPidbYmVha10nOwor6KedPidbZ29yZV0nOwor6KejPidbbG9vc2VuXSc7Civop6Y+J1tidXR0XSc7Civop6c+J1tsb29zZW5dJzsKK+intD4nW3dpbmUgdmVzc2VsXSc7Civop7g+J1t0b3VjaF0nOwor6KiAPidbd29yZHNdJzsKK+iogj4nW2RyYXcgdXAgYWdyZWVtZW50XSc7CivoqIM+J1tvYml0dWFyeV0nOwor6KiIPidbcGxhbl0nOwor6KiKPidbaW5xdWlyZV0nOwor6KiMPidbY29uZnVzaW9uXSc7CivoqI4+J1thc2sgZm9yXSc7CivoqJA+J1tleHBvc2Ugb3RoZXInJ3Mgc2VjcmV0c10nOwor6KiTPidbdGVhY2hdJzsKK+iolj4nW2ZpbmlzaF0nOwor6KiXPidbZW50cnVzdF0nOwor6KiYPidbcmVjb3JkXSc7CivoqJs+J1tzd2luZGxlXSc7CivoqJ0+J1tleHByZXNzIHN1cnByaXNlXSc7CivoqJ8+J1thY2N1c2VdJzsKK+iooz4nW3Rha2UgbGVhdmUgb2ZdJzsKK+iopT4nW3Nsb3cgb2Ygc3BlZWNoXSc7CivoqKo+J1t2aXNpdF0nOwor6KitPidbYnVpbGRdJzsKK+iosT4nW2FsbG93XSc7CivoqLM+J1t0cmFuc2xhdGVdJzsKK+iotD4nW2FjY3VzZV0nOwor6Ki2Pidbc2NvbGQgbG91ZGx5XSc7CivoqLo+J1tleGFtaW5lIHBhdGllbnRdJzsKK+iouz4nW2V4cGxhaW5dJzsKK+iovD4nW3Byb3ZlXSc7CivoqYE+J1tleGVnZXNpc10nOwor6KmGPidbc2xhbmRlcl0nOwor6KmIPidbc2NvbGRdJzsKK+ipkD4nW2NoZWF0XSc7CivoqZE+J1tjaGVhdF0nOwor6KmSPidbYmVxdWVhdGhdJzsKK+iplD4nW2RlY3JlZV0nOwor6KmVPidbYXBwcmFpc2VdJzsKK+ipmz4nW2N1cnNlXSc7CivoqZ4+J1t3b3Jkc10nOwor6KmgPidbc2luZ10nOwor6KmiPidbaW5xdWlyZSBpbnRvXSc7CivoqaM+J1tyZWFjaF0nOwor6KmmPidbdGVzdF0nOwor6KmpPidbcG9ldHJ5XSc7Civoqas+J1tiZSBzdXJwcmlzZWRdJzsKK+iprD4nW2FidXNlXSc7Civoqa0+J1tkZWNlaXZlXSc7Civoqa4+J1tleHBsYWluXSc7CivoqbA+J1txdWVzdGlvbl0nOwor6KmxPidbc3BlZWNoXSc7CivoqbI+J1tzaG91bGRdJzsKK+ipsz4nW2RldGFpbGVkXSc7Civoqbw+J1t0ZWFzZV0nOwor6KqCPidbdGVtcHRdJzsKK+iqhD4nW2V1bG9naXplXSc7CivoqoU+J1tleGVjdXRlXSc7Civoqoc+J1tleGFnZ2VyYXRlXSc7Civoqok+J1tmYW1lXSc7Civoqow+J1t3cml0ZSBkb3duXSc7Civoqo0+J1tyZWNvZ25pemVdJzsKK+iqkT4nW2RlY2VpdmVdJzsKK+iqkz4nW3N3ZWFyXSc7CivoqpU+J1tiZWFyIGNoaWxkcmVuXSc7Civoqpg+J1twZXJzdWFkZV0nOwor6KqaPidbY3JpdGljaXplXSc7Civoqp4+J1tsYW5ndWFnZV0nOwor6KqgPidbc2luY2VyZV0nOwor6KqhPidbd2Fybl0nOwor6KqjPidbbWFrZSBmYWxzZSBhY2N1c2F0aW9uXSc7CivoqqQ+J1tlcnJdJzsKK+iqpT4nW2luZm9ybV0nOwor6KqmPidbcmVjaXRlXSc7Civoqqg+J1t0ZWFjaF0nOwor6KqsPidbc3BlYWtdJzsKK+iqrT4nW3JlYWRdJzsKK+iqsD4nW3dobz8gd2hvbT8gd2hvc2U/IGFueW9uZT9dJzsKK+iqsj4nW2xlc3Nvbl0nOwor6Kq5Pidbc2xhbmRlcl0nOwor6Kq8PidbZnJpZW5kc2hpcF0nOwor6Kq/PidbdHJhbnNmZXJdJzsKK+irgj4nW2ZsYXR0ZXJdJzsKK+irhD4nW3BhdGllbnRdJzsKK+irhz4nW3RhbGtdJzsKK+iriz4nW2Fza10nOwor6KuMPidbcmVtb25zdHJhdGVdJzsKK+irjT4nW3RvIGV4cG9zdHVsYXRlXSc7Civoq48+J1tjb25zdWx0XSc7Civoq5I+J1tleGN1c2VdJzsKK+irlj4nW2RlYmF0ZV0nOwor6KuaPidbKGtva3VqaSkgY29tbWFuZF0nOwor6KubPidbZmxhdHRlcl0nOwor6KucPidbaW50ZWxsaWdlbmNlIHJlcG9ydF0nOwor6KuePidbYnJhZ10nOwor6KugPidbbm9pc3ldJzsKK+iroT4nW3Bvc3RodW1vdXMgbmFtZV0nOwor6KuiPidbam9rZXNdJzsKK+irpD4nW2hvbmVzdCBzcGVlY2hdJzsKK+irpj4nW2NhcmVmdWxdJzsKK+irpz4nW2hhcm1vbml6ZV0nOwor6KurPidbcmVtb25zdHJhdGVdJzsKK+irrT4nW3Byb2NsYWltXSc7Civoq64+J1tjb25zdWx0XSc7Civoq7E+J1tjb25jZWFsXSc7Civoq7M+J1t2ZXJzZWQgaW5dJzsKK+irtz4nW3JlY2l0ZV0nOwor6Ku4Pidbc2V2ZXJhbF0nOwor6Ku6PidbcHJvdmVyYl0nOwor6Ku+PidbcHJvbWlzZV0nOwor6KyAPidbcGxhbl0nOwor6KyBPidbdmlzaXRdJzsKK+isgj4nW3NheV0nOwor6KyEPidbY29weV0nOwor6KyHPidbc3R1dHRlcl0nOwor6KyMPidbc2xhbmRlcl0nOwor6KyOPidbcmlkZGxlXSc7CivorJA+J1tjYWxtXSc7CivorJQ+J1tqZWVyXSc7CivorJY+J1tyaXNlIHVwXSc7CivorJc+J1tzbGFuZGVyXSc7CivorJk+J1todW1ibGVdJzsKK+ismj4nW3RvIGNvbmZlciBwb3N0aHVtb3VzIHRpdGxlc10nOwor6KybPidbZXhwbGFpbl0nOwor6KydPidbdGhhbmtdJzsKK+isoD4nW3NpbmddJzsKK+isoT4nW3NpbmddJzsKK+ispj4nW3Qgc3BlYWsgc29mdGx5XSc7CivorKg+J1tzY2hlbWVdJzsKK+isqz4nW2NoYXJnZV0nOwor6KysPidbZXJyb3JdJzsKK+issz4nW3NpbmddJzsKK+isuT4nW3BydWRlbnRdJzsKK+isvj4nW2RlY2VpdmVdJzsKK+itgT4nW25vaXNlXSc7CivorYk+J1twcm9vZl0nOwor6K2MPidbZmFsc2VdJzsKK+itjj4nW2N1bm5pbmddJzsKK+itjz4nW3JpZGljdWxlXSc7CivorZY+J1t0byBzbGFuZGVyXSc7CivorZg+J1tyZWNvZ25pemVdJzsKK+itmj4nW3N1cm5hbWVdJzsKK+itmz4nW3RvIHNsYW5kZXJdJzsKK+itnD4nW3JlZ2lzdGVyXSc7CivorZ8+J1tjbGFtb3JdJzsKK+itpj4nW2d1YXJkXSc7Civoras+J1t0YWxrYXRpdmVdJzsKK+itrD4nW21ldGFwaG9yXSc7Civora8+J1t0cmFuc2xhdGVdJzsKK+itsD4nW2NvbnN1bHRdJzsKKyMi6K2xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivorbI+J1thbGxvd10nOwor6K20PidbcmVwcmltYW5kXSc7Civorbc+J1twcm90ZWN0XSc7Civorb0+J1tmYW1lXSc7CivoroA+J1tyZWFkXSc7CivoroM+J1twcmFpc2VdJzsKK+iuij4nW2NoYW5nZV0nOwor6K6MPidbZmVhc3RdJzsKK+iujj4nW2VuZW15XSc7CivorpA+J1tlbmVteV0nOwor6K6SPidbc2xhbmRlcl0nOwor6K6TPidbYWxsb3ddJzsKK+iulj4nW3Byb3BoZWN5XSc7Civorpk+J1tjaGVlcl0nOwor6K6aPidbcHJhaXNlXSc7CivosLc+J1t2YWxsZXldJzsKK+iwuj4nW3RoZSBtb3V0aCBvZiBhIHZhbGxleV0nOwor6LC/PidbdmFsbGV5XSc7CivosYE+J1tvcGVuIHVwXSc7CivosYY+J1tiZWFuc10nOwor6LGIPidbaG93PyB3aGF0P10nOwor6LGKPidbYWJ1bmRhbnRdJzsKK+ixjD4nW3BlYXNdJzsKK+ixjj4nW3ZlcnRpY2FsXSc7CivosZA+J1thYnVuZGFudF0nOwor6LGVPidbcGlnc10nOwor6LGaPidbc21hbGwgcGlnXSc7CivosaE+J1tlbGVwaGFudF0nOwor6LGiPidbZG9tZXN0aWMgYW5pbWFsc10nOwor6LGqPidbYnJhdmVdJzsKK+ixqz4nW3JlbGF4ZWRdJzsKK+ixrD4nW3BpZ10nOwor6LG4PidbcmFkaWNhbCAxNTNdJzsKK+ixuT4nW2xlb3BhcmRdJzsKK+ixuj4nW3dvbGZdJzsKK+ixvD4nW2ZveF0nOwor6LKCPidbbWFydGVuXSc7CivosoU+J1ticmF2ZV0nOwor6LKJPidbYmFkZ2VyXSc7Civosoo+J1tsZW9wYXJkXSc7Civosow+J1tjb3VudGVuYW5jZV0nOwor6LKNPidbYSBmb3gtbGlrZSBhbmltYWxdJzsKK+iyjj4nW2xpb25dJzsKK+iylD4nW2ZveF0nOwor6LKYPidbdGhlIHBhbnRoZXJdJzsKK+iynT4nW3NlYSBzaGVsbF0nOwor6LKePidbdmlydHVvdXNdJzsKK+iyoD4nW2xvYWRdJzsKK+iyoT4nW3dlYWx0aF0nOwor6LKiPidbb2ZmZXIgdHJpYnV0ZV0nOwor6LKnPidbcG9vcl0nOwor6LKoPidbZ29vZHNdJzsKK+iyqT4nW3BlZGRsZXJdJzsKK+iyqj4nW2dyZWVkeV0nOwor6LKrPidbc3RyaW5nIG9mIDEwMDAgY29pbnNdJzsKK+iyrD4nW29uZScncyByZXNwb25zaWJpbGl0eV0nOwor6LKtPidbbWF0dGVyXSc7Civosq4+J1tudW1iZXIgdHdvXSc7Civosq8+J1tzdG9yZV0nOwor6LKwPidbYm9ycm93XSc7CivosrI+J1twcm9wZXJ0eV0nOwor6LKzPidbbnVtYmVyIHR3b10nOwor6LK0PidbZXhwZW5zaXZlXSc7CivosrY+J1tkZWNyZWFzZV0nOwor6LK3PidbYnV5XSc7Civosrg+J1tsZW5kXSc7Civosrs+J1tleHBlbnNlc10nOwor6LK8PidbcGFzdGUgdG9dJzsKK+iyvT4nW2dpdmUgdG9dJzsKK+iyvz4nW3RyYWRlXSc7Civos4A+J1tjb25ncmF0dWxhdGVdJzsKK+izgT4nW2ZvcmdlIGFoZWFkXSc7Civos4I+J1ticmliZV0nOwor6LODPidbcmVudF0nOwor6LOEPidbYnJpYmVdJzsKK+izhz4nW3Byb3BlcnR5XSc7Civos4g+J1tzdXJuYW1lXSc7Civos4o+J1t0aGllZl0nOwor6LONPidbYm9vdHldJzsKK+izjj4nW21lYW5dJzsKK+izkT4nW3JlbGlldmVdJzsKK+izkz4nW2d1ZXN0XSc7Civos5o+J1tnaXZlXSc7Civos5s+J1toZWxwXSc7Civos5w+J1tnaXZlXSc7Civos54+J1tyZXdhcmRdJzsKK+izoD4nW2luZGVtbmlmeV0nOwor6LOiPidbdmlydHVvdXNdJzsKK+izoz4nW3NlbGxdJzsKK+izpD4nW21lYW5dJzsKK+izpj4nW3RheF0nOwor6LOqPidbbWF0dGVyXSc7Civos60+J1tiZXRdJzsKK+izuj4nW21ha2UgbW9uZXldJzsKK+izuz4nW2dpZnQgb2YgbW9uZXkgaGVscCBwYXkgZnVuZXJhbF0nOwor6LO8PidbYnV5XSc7Civos70+J1tjb21wZXRlXSc7CivotIQ+J1tnaWZ0IHN1cGVyaW9yXSc7CivotIU+J1t1bm5lY2Vzc2FyeV0nOwor6LSHPidbYWZmYWJsZV0nOwor6LSIPidbZ2l2ZSBwcmVzZW50XSc7CivotIo+J1toZWxwXSc7CivotIs+J1tmYWxzZV0nOwor6LSNPidbc3VwcG9ydF0nOwor6LSPPidbd2luXSc7CivotJA+J1tmYXJld2VsbCBwcmVzZW50XSc7CivotJM+J1tib290eV0nOwor6LSUPidbc3Ryb25nXSc7CivotJY+J1tidXldJzsKK+i1pD4nW3JlZF0nOwor6LWmPidbZm9yZ2l2ZV0nOwor6LWnPidbYmx1c2hdJzsKK+i1qz4nW2JyaWdodF0nOwor6LWtPidbcmVkZGlzaCBicm93bl0nOwor6LWwPidbd2Fsa10nOwor6LWxPidbd2Fsa10nOwor6LWzPidbZ3JhbmRdJzsKK+i1tD4nW2dvIHRvXSc7Civotbc+J1tyaXNlXSc7CivotoE+J1t0YWtlIGFkdmFudGFnZSBvZl0nOwor6LaFPidbanVtcCBvdmVyXSc7Civotoo+J1tleGNlZWRdJzsKK+i2mT4nW3N1cm5hbWVdJzsKK+i2oz4nW3doYXQgYXR0cmFjdHMgb25lJydzIGF0dGVudGlvbl0nOwor6LaoPidbaGFzdGVuXSc7CivotrM+J1tmb290XSc7Civotro+J1tzaXQgY3Jvc3MtbGVnZ2VkXSc7Civotr4+J1t0b2VdJzsKK+i3gj4nW2NyZWVwaW5nXSc7Civot4s+J1tnbyBieSBmb290XSc7Civot4w+J1tzdHVtYmxlXSc7Civot48+J1tzaXQgY3Jvc3MtbGVnZ2VkXSc7Civot5Y+J1tzb2xlIChvZiB0aGUgZm9vdCldJzsKK+i3mj4nW3N0YWdnZXJdJzsKK+i3mz4nW2xhbWVdJzsKK+i3nT4nW2Rpc3RhbmNlXSc7Civot58+J1toZWVsXSc7Civot6E+J1tzZWFyY2hdJzsKK+i3oz4nW2JhcmUgZm9vdGVkXSc7Civot6g+J1tzdHJhZGRsZV0nOwor6LeqPidba25lZWxdJzsKK+i3qz4nW3NvdW5kIG9mIGZvb3RzdGVwc10nOwor6LevPidbcm9hZF0nOwor6LezPidbanVtcF0nOwor6Le1PidbdHJhbXBsZV0nOwor6Le8PidbYmVudF0nOworIyLot78+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+i4iD4nW25lZ2xlY3RdJzsKK+i4iT4nW2hvcF0nOwor6LiKPidbbGVhcF0nOwor6LiPPidbc3RlcCBvbl0nOwor6LiQPidbdHJhbXBsZV0nOwor6LidPidbYW5rbGVdJzsKK+i4nj4nW2Nyb3VjaF0nOwor6LifPidbaGVzaXRhdGVdJzsKK+i4qj4nW2Zvb3RwcmludHNdJzsKK+i4sD4nW2V4Y2VlZF0nOwor6Li0PidbbGVhcF0nOwor6Li1PidbaGVlbF0nOwor6LmCPidbdHJhbXBsZSB1bmRlciBmb290XSc7CivouYQ+J1tob29mXSc7CivouYc+J1tsYW1lXSc7CivouYg+J1tzdGFtcCBmZWV0XSc7CivouYk+J1tlcnJvcl0nOwor6LmKPidbZm9vdHBhdGhdJzsKK+i5jD4nW3dhbGsgcmFwaWRseV0nOwor6LmQPidbdGFrZSBzaG9ydCBzdGVwc10nOwor6LmVPidbY2xlYXIgd2F5XSc7CivouZk+J1t1cmdlbnRdJzsKK+i5nz4nW3RyYWNlXSc7CivouaA+J1tzdGVwIG9uXSc7CivouaM+J1t0byBqdW1wIG92ZXJdJzsKK+i5pD4nW2Zvb3RwcmludHNdJzsKK+i5sj4nW3NxdWF0XSc7CivoubQ+J1traWNrXSc7CivoubY+J1tzdHVtYmxlXSc7Civoubw+J1t3ZWJiZWQgZmVldCBvZiB3YXRlcmZvd2xdJzsKK+i6gT4nW3RlbnNlXSc7CivouoQ+J1tjcmlwcGxlXSc7CivouoU+J1t3YWxrIGNhcmVmdWxseV0nOwor6LqHPidbaGVzaXRhdGVdJzsKK+i6ij4nW2hlc2l0YXRlXSc7Civouos+J1thc2NlbmRdJzsKK+i6jT4nW3NraXBdJzsKK+i6kT4nW3dhdmVyXSc7CivoupM+J1tzdHVtYmxlXSc7CivoupQ+J1tmb2xsb3cgaW5dJzsKK+i6mT4nW3RyYW1wbGUgZG93bl0nOwor6LqhPidbdHJlYWRdJzsKK+i6qj4nW3RyYW1wbGUgZG93bl0nOwor6LqrPidbYm9keV0nOwor6LqsPidbYm9keV0nOwor6LqvPidbYm9keV0nOwor6LqwPidbYm9keV0nOwor6LqxPidbaGlkZV0nOworIyLouro+J1tsaWUgZG93bl0nIiwKKyMi6LuEPidbdG8gZ292ZXJuXSciLAor6LuGPidbYm9keV0nOworIyLou4Y+J1tib2R5XSciLAor6LuKPidbY2FydF0nOwor6LuLPidbY3J1c2ggYnkgd2VpZ2h0XSc7Civou4w+J1t0cmFja10nOwor6LuNPidbYXJteV0nOwor6LuSPidbY2FycmlhZ2VdJzsKK+i7mz4nW3lva2VdJzsKK+i7nz4nW3NvZnRdJzsKK+i7oj4nW3NoaWZ0XSc7Civou6M+J1tydW1ibGVdJzsKK+i7qz4nW2Nyb3NzIGJvYXJkIGF0IHJlYXIgb2YgY2FycmlhZ2VdJzsKK+i7uD4nW2F4bGVdJzsKK+i7uz4nW2F4bGVdJzsKK+i7vD4nW3J1c2ggZm9ydGhdJzsKK+i7vT4nW2xpZ2h0XSc7Civou74+J1tob3Jpem9udGFsIHdvb2RlbiBiYXIgaW4gZnJvbnQgb2YgYSBzZWRhbiBjaGFpcl0nOwor6LyDPidbY29tcGFyZV0nOwor6LyFPidbY2hhcmlvdF0nOwor6LyJPidbbG9hZF0nOwor6LyKPidbbG93IHJlYXIgcG9ydGlvbiBvZiBjYXJ0XSc7CivovIw+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB2ZWhpY2xlc10nOwor6LySPidbc2lkZXMgb2YgY2hhcmlvdCB3aGVyZSB3ZWFwb25zXSc7CivovJM+J1ttb3Vybl0nOwor6LyUPidbY2hlZWsgYm9uZV0nOwor6LyVPidbbGlnaHRdJzsKK+i8mT4nW3NpZGVzIG9mIGNoYXJpb3Qgd2VyZSB3ZWFwb25zXSc7CivovJs+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB2ZWhpY2xlc10nOwor6LycPidbc3VwcGx5IGNhcnRdJzsKK+i8nT4nW2JyaWdodG5lc3NdJzsKK+i8nz4nW3N0b3BdJzsKK+i8pj4nW2hhbmQtY2FydF0nOwor6LypPidbZ2VuZXJhdGlvbl0nOwor6LyqPidbd2hlZWxdJzsKK+i8rz4nW2dhdGhlciB1cF0nOwor6LyzPidbaHVicyBvZiB3aGVlbF0nOwor6Ly4PidbdHJhbnNwb3J0XSc7CivovLk+J1t0d28gcGllY2VzIG9mIHdvb2QgdW5kZXJuZWF0aCBjYV0nOwor6Ly7Pidbc3Bva2VzIG9mIHdoZWVsXSc7CivovL4+J1t0dXJuIG92ZXJdJzsKK+i8vz4nW2NhcnRdJzsKK+i9gj4nW2h1YiBvZiB3aGVlbF0nOwor6L2EPidbbGluY2hwaW4gb2Ygd2hlZWxdJzsKK+i9hT4nW2F4bGVdJzsKK+i9hj4nW3dpbmRsYXNzXSc7CivovYk+J1tzaGlmdF0nOwor6L2MPidbc2xlZF0nOwor6L2NPidbd2Fnb24gcnV0c10nOwor6L2OPidbc2VkYW4tY2hhaXJdJzsKK+i9lz4nW2ZhaWxdJzsKK+i9nD4nW2hlYXJzZV0nOwor6L2fPidbcnVtYmxlXSc7CivovaE+J1ticmlkbGUgb2YgaG9yc2VdJzsKK+i9oj4nW3J1biBvdmVyIHNvbWV0aGluZyB3aXRoIHZlaGljbGVdJzsKKyMi6L2jPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivovaQ+J1twdWxsZXldJzsKK+i+mz4nW2JpdHRlcl0nOwor6L6cPidbY3JpbWVdJzsKK+i+nj4nW3dvcmRzXSc7Civovp8+J1tsYXddJzsKK+i+oz4nW3BlcHBlcnldJzsKK+i+pz4nW21hbmFnZV0nOwor6L6oPidbZGlzdGluZ3Vpc2hdJzsKK+i+rT4nW3dvcmRzXSc7Civovq4+J1ticmFpZF0nOwor6L6vPidbZGlzcHV0ZV0nOwor6L6wPidbZWFybHkgbW9ybmluZ10nOwor6L6xPidbaHVtaWxpYXRlXSc7CivovrI+J1thZ3JpY3VsdHVyZV0nOwor6L63Pidbc21vb3RoXSc7Civovro+J1tlZGdlXSc7Civovrs+J1tjcm9zc3JvYWRzXSc7Civovrw+J1tjcm93ZCBpbnRvXSc7Civovr8+J1tmb2xsb3ddJzsKK+i/gj4nW2RvY3RyaW5haXJlXSc7Civov4Q+J1tleHRlbmRdJzsKK+i/hT4nW3F1aWNrXSc7Civov44+J1tyZWNlaXZlXSc7Civov5E+J1tuZWFyXSc7Civov5Q+J1tyZXR1cm5dJzsKK+i/mj4nW3ZlcnldJzsKK+i/oj4nW2Zhcl0nOwor6L+lPidbZGlzdGFudF0nOwor6L+mPidbY2hhcmFjdGVyIGZvciB0cmFuc2xpdGVyYXRpb25dJzsKK+i/qT4nW2JlIG5lYXJdJzsKK+i/qj4nW2VubGlnaHRlbl0nOwor6L+rPidbY29lcmNlXSc7Civov60+J1tyZXBlYXRlZGx5XSc7Civov68+J1tlc2NhcGVdJzsKK+i/sD4nW25hcnJhdGVdJzsKK+i/tD4nW3Jldm9sdmVdJzsKK+i/tz4nW2Jld2l0Y2hdJzsKK+i/uD4nW2d1c2ggb3V0XSc7Civov7k+J1t0cmFjZXNdJzsKK+i/uj4nW3RoZW5dJzsKK+i/vT4nW3B1cnN1ZV0nOwor6YCAPidbc3RlcCBiYWNrXSc7CivpgIE+J1tzZWUgb2ZmXSc7CivpgIM+J1tlc2NhcGVdJzsKK+mAhT4nW21lZXQgdW5leHBlY3RlZGx5XSc7CivpgIY+J1tkaXNvYmV5XSc7CivpgIs+J1tmbGVlXSc7CivpgI0+J1tyYW1ibGVdJzsKK+mAjj4nW3N0cm9uZ10nOwor6YCPPidbcGVuZXRyYXRlXSc7CivpgJA+J1tjaGFzZV0nOwor6YCRPidbY29sbGVjdF0nOwor6YCTPidbaGFuZCBvdmVyXSc7CivpgJQ+J1t3YXldJzsKK+mAlT4nW3Bhc3MgYnldJzsKK+mAlj4nW2Zhcl0nOwor6YCXPidbdGVtcHRdJzsKK+mAmT4nW3RoaXNdJzsKK+mAmj4nW3Bhc3MgdGhyb3VnaF0nOwor6YCdPidbcGFzcyBhd2F5XSc7CivpgJ4+J1tpbmR1bGdlIG9uZXNlbGZdJzsKK+mAnz4nW3F1aWNrXSc7CivpgKA+J1tjb25zdHJ1Y3RdJzsKK+mAoT4nW3JldHJlYXRdJzsKK+mAoj4nW2NvbWUgdXBvbl0nOwor6YCjPidbam9pbl0nOworIyLpgKY+J1ttZWFuZGVyaW5nXSciLAor6YCuPidbc2VpemVdJzsKK+mAsT4nW3dlZWtdJzsKK+mAsj4nW2FkdmFuY2VdJzsKK+mAtT4nW3Rob3JvdWdoZmFyZV0nOwor6YC2Pidbd2luZGluZ10nOwor6YC4PidbZmxlZV0nOwor6YC5PidbYXJyaXZlIGF0XSc7CivpgLw+J1tjb21wZWxdJzsKK+mAvj4nW2dvIG92ZXJdJzsKK+mBgT4nW2hpZGVdJzsKK+mBgj4nW2NvbXBseSB3aXRoXSc7CivpgYU+J1tsYXRlXSc7CivpgYc+J1ttZWV0XSc7CivpgYk+J1tzcHldJzsKK+mBij4nW3dhbmRlcl0nOwor6YGLPidbbHVja10nOwor6YGNPidbZXZlcnl3aGVyZV0nOwor6YGOPidbcGFzc10nOwor6YGPPidbc3RvcF0nOwor6YGQPidbYWZhcl0nOwor6YGRPidbbGVpc3VyZV0nOwor6YGSPidbc3Ryb25nXSc7CivpgZM+J1twYXRoXSc7CivpgZQ+J1thcnJpdmUgYXRdJzsKK+mBlT4nW2Rpc29iZXldJzsKKyMi6YGVPidbZGlzb2JleV0nIiwKK+mBmD4nW3RvIG1lZXRdJzsKK+mBmT4nW2ZhciBhd2F5XSc7CivpgZw+J1todW1ibGVdJzsKK+mBnj4nW2hhbmQgb3Zlcl0nOwor6YGgPidbZGlzdGFudF0nOwor6YGhPidbZ28gdXBzdHJlYW1dJzsKK+mBoz4nW3NlbmRdJzsKK+mBpT4nW2ZhciBhd2F5XSc7Civpgag+J1tyYW1ibGVdJzsKK+mBqT4nW21hdGNoXSc7Civpga0+J1tjb21lIGFjcm9zc10nOwor6YGuPidbY292ZXJdJzsKK+mBrz4nW2RlY2VpdmVdJzsKK+mBsj4nW2xhdGVdJzsKK+mBtT4nW29iZXldJzsKK+mBtj4nW2VudHdpbmVdJzsKK+mBtz4nW21vdmVdJzsKK+mBuD4nW2Nob29zZV0nOwor6YG6PidbbG9zZV0nOwor6YG8PidbZGlzdGFudF0nOwor6YG9Pidbc3VkZGVubHldJzsKK+mBvz4nW2F2b2lkXSc7CivpgoA+J1tpbnZpdGVdJzsKK+mCgT4nW3Rha2UgYSBiaWcgc3RyaWRlXSc7CivpgoI+J1t1bmV4cGVjdGVkIG1lZXRpbmddJzsKK+mCgz4nW3Byb2ZvdW5kXSc7CivpgoQ+J1tzdGlsbF0nOwor6YKHPidbYmUgbmVhcl0nOwor6YKJPidbZWRnZV0nOwor6YKKPidbZWRnZV0nOwor6YKPPidbcGF0cm9sXSc7CivpgpE+J1thcmVhXSc7CivpgqM+J1t0aGF0XSc7CivpgqY+J1tuYXRpb25dJzsKK+mCqD4nW3ZpbGxhZ2VdJzsKK+mCqj4nW3dyb25nXSc7Civpgq8+J1tjaXR5IGluIGhlYmVpIHByb3ZpbmNlXSc7CivpgrE+J1tzdXJuYW1lXSc7CivpgrU+J1tzdXJuYW1lXSc7Civpgrg+J1tvZmZpY2lhbCByZXNpZGVuY2VdJzsKK+mDgT4nW3N3ZWV0IHNtZWxsaW5nXSc7Civpg4o+J1tzdWJ1cmJzXSc7Civpg44+J1tnZW50bGVtYW5dJzsKK+mDmz4nW291dGVyIHdhbGxzIG9mIGNpdHldJzsKK+mDoT4nW2FkbWluaXN0cmF0aXZlIGRpdmlzaW9uXSc7Civpg6I+J1tzdGF0ZSBpbiB0b2RheScncyBodWJlaSBwcm92aW5jZV0nOwor6YOkPidbY3JhY2tdJzsKK+mDqD4nW3BhcnRdJzsKK+mDrT4nW291dGVyIHBhcnQgKG9mIGEgY2l0eSldJzsKK+mDtT4nW3Bvc3RhbF0nOwor6YO3PidbY291bnRyeV0nOwor6YO9PidbbWV0cm9wb2xpc10nOwor6YSCPidbaHViZWkgcHJvdmluY2VdJzsKK+mEkj4nW25hbWUgb2YgYW4gYW5jaWVudCBzdGF0ZV0nOwor6YSZPidbbWVhbl0nOwor6YStPidbc3RhdGUgaW4gdG9kYXknJ3MgaGVuYW5dJzsKK+mEsD4nW25laWdoYm9yXSc7CivphLI+J1tjb3VudHkgaW4gaGViZWkgcHJvaW5jZXZdJzsKK+mFiT4nW3RlbnRoIGluIHNlcmllcyBvZiB0d2VsdmUgY3ljbGljXSc7CivphYo+J1tkcnVua10nOwor6YWLPidbY2hpZWYgb2YgdHJpYmVdJzsKK+mFjD4nW3NlcnZlIHdpbmVdJzsKK+mFjT4nW21hdGNoXSc7CivphY4+J1tkb3VibGUtZmVybWVudGVkIHdpbmVdJzsKK+mFkj4nW3dpbmVdJzsKK+mFlD4nW2ludG94aWNhdGVkXSc7CivphZY+J1t3aW5lIHdpdGggYmlyZCBwb2lzb24gYWRkZWRdJzsKKyMi6YWYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivphaI+J1t0b2FzdCBvbmUnJ3MgaG9zdCB3aXRoIHdpbmVdJzsKK+mFoz4nW2Vuam95IGludG94aWNhbnRzXSc7CivphaU+J1tidXR0ZXJdJzsKK+mFqT4nW2RydW5rXSc7Civphao+J1tjcmVhbV0nOwor6YWsPidbdG9hc3RdJzsKK+mFsj4nW2hhbmdvdmVyXSc7CisjIumFsj4nW2hhbmdvdmVyXSciLAor6YW1PidbeWVhc3RdJzsKK+mFtz4nW3N0cm9uZ10nOwor6YW4PidbdGFydF0nOworIyLphoE+J1thIGtpbmQgb2YgZ3JlZW4tY29sb3JlZCB3aW5lXSciLAor6YaHPidbcmljaF0nOwor6YaJPidbaW50b3hpY2F0ZWRdJzsKK+mGiz4nW3ZpbmVnYXJdJzsKK+mGjT4nW2Vzc2VudGlhbCBvaWwgb2YgYnV0dGVyXSc7CivphpA+J1twdXJlc3QgY3JlYW1dJzsKK+mGkj4nW3dha2UgdXBdJzsKK+mGlz4nW3RvIGJyZXcgZm9yIHRoZSBzZWNvbmQgdGltZV0nOwor6YacPidbdWdseSBsb29raW5nXSc7CivphqI+J1ttaW5jZWQgcGlja2xlZCBtZWF0XSc7CivphqQ+J1thbnkgamFtLWxpa2Ugb3IgcGFzdGUtbGlrZSBmb29kXSc7Civphqo+J1t1bmNsZWFyIHdpbmVdJzsKK+mGqz4nW2N1cmVdJzsKK+mGrz4nW3ZpbmVnYXJdJzsKK+mGtD4nW3N3ZWV0IHdpbmVdJzsKK+mGtT4nW2NvbnRyaWJ1dGUgZm9yIGRyaW5rc10nOwor6Ya4PidbYnJld10nOwor6Ya6PidbZ2V0IGRydW5rXSc7Civph4A+J1ticmV3XSc7Civph4E+J1tzbWVhciB3aXRoIGJsb29kIGluIHNhY3JpZmljZV0nOwor6YeGPidbZGlzdGluZ3Vpc2hdJzsKK+mHhz4nW2NvbGxlY3RdJzsKK+mHiD4nW2ludGVycHJldGVdJzsKK+mHiT4nW2dsYXplXSc7Civph4s+J1tpbnRlcnByZXRlXSc7Civph4w+J1t1bml0IG9mIGRpc3RhbmNlXSc7Civph40+J1toZWF2eV0nOwor6YeOPidbb3BlbiBjb3VudHJ5XSc7Civph48+J1ttZWFzdXJlXSc7Civph5A+J1ttYW5hZ2VdJzsKK+mHkT4nW2dvbGRdJzsKK+mHlj4nW2tuaWZlXSc7Civph5g+J1tuYWlsXSc7CisjIumHmz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YecPidbY2F1bGRyb25dJzsKK+mHnT4nW25lZWRsZV0nOworIyLph58+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mHoT4nW2NhdWxkcm9uXSc7Civph6M+J1tmaXNoXSc7Civph6Y+J1tidXR0b25dJzsKK+mHpz4nW2JyYWNlbGV0XSc7Civph7U+J1tvcm5hbWVudGFsIGhhaXJwaW5dJzsKKyMi6Ye2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivph7w+J1tzd29yZF0nOworIyLph78+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mIjT4nW2JsdW50XSc7CivpiI4+J1tob29rXSc7CivpiJE+J1twbGF0ZV0nOwor6YiUPidbcGFwZXIgbW9uZXldJzsKK+mIlT4nW2J1dHRvbl0nOwor6YiePidbdW5pdCBvZiBtZWFzdXJlIGVxdWl2YWxlbnQgdGhpcnRdJzsKK+mIqT4nW2ZpcmVwbGFjZV0nOwor6YisPidbYmVsbF0nOwor6Yi0PidbYmVsbF0nOwor6Yi3PidbY29iYWx0XSc7CivpiL8+J1toYWlycGluXSc7CivpiYQ+J1tpcm9uXSc7CivpiYU+J1tzdGVlbF0nOwor6YmIPidbdGhhbGxpdW1dJzsKK+mJiT4nW2RldmljZSBmb3IgY2FycnlpbmcgYSB0cmlwb2RdJzsKK+mJiz4nW2NhcnBlbnRlcicncyBwbGFuZV0nOworIyLpiZA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mJlz4nW3BpbmNlcnNdJzsKK+mJmj4nW3JpdmV0XSc7CivpiZs+J1tsZWFkIHBsdW1idW1dJzsKK+mJnj4nW2Jyb2FkLWF4ZV0nOwor6YmiPidbZWFydGhlbndhcmUgYmFzaW5dJzsKK+mJpD4nW2hvb2tdJzsKK+mJpj4nW2tpbmQgb2YgZ29uZyB1c2VkIGluIGFuY2llbnQgdGltXSc7CivpibE+J1ttaW5lXSc7Civpib4+J1tzcGVhcl0nOwor6YqAPidbc2lsdmVyXSc7CivpioM+J1thbmNpZW50IHdlYXBvbl0nOwor6YqFPidbY29wcGVyXSc7CivpipE+J1ttaWxsXSc7CivpipM+J1t3ZWlnaF0nOwor6YqVPidbaXJvbl0nOwor6YqWPidbdW5pdCBvZiB3ZWlnaHRdJzsKK+mKmD4nW2luc2NyaWJlXSc7Civpipo+J1tsYXJnZSBob2VdJzsKK+mKmz4nW3NoYXJwXSc7Civpipw+J1tiaXRdJzsKK+mKrT4nW21vbmV5XSc7Civpirc+J1ttZWx0XSc7Civpirk+J1tydXN0XSc7Civpi48+J1t0b25nc10nOwor6YuSPidbcG9pbnQgb2Ygc3BlYXJdJzsKK+mLpD4nW2hvZV0nOwor6YupPidbcG9pbnQgb2Ygc3dvcmRdJzsKK+mLqj4nW3NwcmVhZCBvdXRdJzsKK+mLrT4nW3NoYXJwXSc7Civpi7I+J1tyaXZldF0nOwor6YuzPidbbWVsdF0nOwor6Yu4PidbYSBzYXddJzsKKyMi6Yu6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpi7w+J1tzdGVlbF0nOwor6YyGPidbdGhlIGNvbG9yIG9mIGEgbWluZXJhbF0nOwor6YyPPidbc29mdCBzdGVlbF0nOwor6YyQPidbZ2ltbGV0XSc7CivpjJg+J1tiYWxhbmNlIHdlaWdodCBvbiBzY2FsZV0nOwor6YyZPidbOCBvel0nOwor6YyaPidbY2xhbmdpbmcgc291bmRdJzsKK+mMoD4nW3NwaW5kbGVdJzsKK+mMoj4nW21vbmV5XSc7CisjIumMoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YymPidbYnJvY2FkZV0nOwor6YyoPidbYW5jaG9yXSc7CivpjKs+J1t0aW5dJzsKK+mMrD4nW3NtZWx0IG1ldGFsc10nOwor6YyuPidbcnVuIG1ldGFsIGludG8gY3JhY2tzXSc7CivpjK8+J1tlcnJvcl0nOwor6YyyPidbY29weV0nOworIyLpjLU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6Yy6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumMuz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpjYQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mNiz4nW2Nvb2tpbmctcG90XSc7CivpjY0+J1twbGF0ZV0nOwor6Y2UPidbaGlnaF0nOworIyLpjZY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mNmz4nW2ZvcmdlIG1ldGFsXSc7CisjIumNnD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Y2gPidbd2VhcG9uXSc7Civpjaw+J1tzaG92ZWxdJzsKK+mNrj4nW2JyYXNzXSc7CivpjbU+J1tkb29yIGJvbHRdJzsKK+mNvD4nW25lZWRsZV0nOwor6Y2+PidbY3VwXSc7Civpjow+J1tzaWNrbGVdJzsKK+mOlD4nW2Z1c2VdJzsKK+mOlj4nW2xvY2tdJzsKK+mOlz4nW3JpZmxlXSc7Civpjpo+J1toYW1tZXJdJzsKK+mOpz4nW2FybW9yXSc7Civpjqw+J1tzdG92ZV0nOwor6Y6tPidbdG93bl0nOwor6Y6uPidbdG93bl0nOwor6Y6wPidbbWVhc3VyZSBvZiB3ZWlnaHQgZm9yIGdvbGRdJzsKKyMi6Y65PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpj4M+J1thcnJvd2hlYWRdJzsKK+mPiD4nW2NoYWluXSc7Civpj5A+J1twdXJlIGdvbGRdJzsKK+mPkT4nW2R5c3Byb3NpdW0gdGhlIGJhcmIgb2YgYW4gYXJyb3ddJzsKK+mPlj4nW2ZpZ2h0IGVuZF0nOwor6Y+XPidbc3RyaWtlXSc7Civpj5g+J1t0aW5rbGVdJzsKK+mPnT4nW3Ryb3dlbF0nOwor6Y+hPidbbWlycm9yXSc7Civpj6Q+J1tjYXJ2ZV0nOwor6Y+lPidbcnVzdF0nOwor6Y+oPidbZW5ncmF2aW5nIHRvb2xdJzsKK+mQgz4nW2N5bWJhbHNdJzsKK+mQhz4nW3ZhbmFkaXVtXSc7CivpkJA+J1tmZXR0ZXJzXSc7CivpkJM+J1tmZXJydWxlXSc7CivpkJQ+J1tkYWdnZXJdJzsKK+mQmD4nW2Nsb2NrXSc7CivpkJk+J1tsYW1wXSc7CivpkJo+J1tzb2Z0IHN0ZWVsXSc7CivpkKE+J1tpcm9uXSc7CivpkKs+J1tlbmdyYXZpbmcgdG9vbF0nOwor6ZC1PidbaXJvbl0nOwor6ZC2PidbbWV0YWwgcmluZ10nOwor6ZC4PidbYmVsbF0nOwor6ZC6PidbZnJ5aW5nIHBhbl0nOworIyLpkYE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mRhD4nW21lbHRdJzsKK+mRkT4nW21pcnJvcl0nOwor6ZGSPidbbWlycm9yXSc7CivpkZM+J1tzcGVhcl0nOwor6ZGaPidbZHJpbGxdJzsKK+mRmz4nW21pbmVdJzsKK+mRnj4nW3NvbGRlcl0nOwor6ZGgPidbbWVsdF0nOwor6ZGiPidbZmlsZV0nOwor6ZGqPidbZmlyZXBsYWNlXSc7CivpkbA+J1trZXldJzsKK+mRtT4nW2phcl0nOwor6ZG3PidbdHdlZXplcnNdJzsKK+mRvD4nW2dvbmddJzsKK+mRvT4nW2RyaWxsXSc7Civpkb4+J1tiZWxscyBodW5nIG9uIGhvcnNlXSc7Civpkb8+J1tjaGlzZWxdJzsKK+mSgT4nW2EgbWF0dG9ja10nOwor6ZW3PidbbG9uZ10nOwor6ZaAPidbZ2F0ZV0nOwor6ZaCPidbYm9sdF0nOwor6ZaDPidbZmxhc2hdJzsKK+mWhz4nW3NodXRdJzsKK+mWiT4nW3NodXRdJzsKKyMi6ZaJPidbc2h1dF0nIiwKK+mWiz4nW29wZW5dJzsKK+mWjz4nW2ludGVyY2FsYXJ5XSc7CivplpE+J1tmZW5jZV0nOwor6ZaTPidbaW50ZXJ2YWxdJzsKK+mWlD4nW21vdXJuXSc7CisjIumWlD4nW21vdXJuXSciLAor6ZaYPidbc2x1aWNlXSc7Civplpk+J1txdWFycmVsXSc7CivplqA+J1tpbnRlcmNhbGFyeV0nOwor6ZaiPidbZnJvbnRpZXIgcGFzc10nOwor6ZajPidbY2hhbWJlcl0nOwor6ZakPidbc21hbGwgc2lkZSBkb29yXSc7CivplqU+J1twb3dlcmZ1bCBhbmQgaW5mbHVlbnRpYWwgZ3JvdXBdJzsKK+mWpz4nW2JvaXN0ZXJvdXNdJzsKK+mWqD4nW3NtYWxsIGVudHJhbmNlXSc7Civplq0+J1t2aWxsYWdlIG9mIHR3ZW50eS1maXZlIGZhbWlsaWVzXSc7CivplrI+J1tleGFtaW5lXSc7Civplrk+J1tjYXN0cmF0ZV0nOwor6Za7PidbdmlsbGFnZSBnYXRlXSc7Civplrw+J1tibG9ja10nOwor6Za+PidbdGhyZXNob2xkXSc7Civpl4M+J1thbG9uZV0nOwor6ZeHPidbY2xvc2VdJzsKK+mXij4nW2Jyb2FkXSc7Civpl4w+J1tkb29yIHNjcmVlbl0nOwor6ZeNPidbdG93ZXIgb3ZlciBjaXR5IGdhdGVdJzsKK+mXlD4nW2Nsb3NlXSc7Civpl5U+J1t3YXRjaCB0b3dlcl0nOwor6ZeWPidbcnVzaCBpbl0nOwor6ZeYPidbc3RydWdnbGVdJzsKK+mXnD4nW2Zyb250aWVyIHBhc3NdJzsKK+mXoT4nW2V4cGxhaW5dJzsKK+mXoj4nW29wZW5dJzsKK+mXpT4nW2Rvb3JdJzsKK+mYnD4nW21vdW5kXSc7CivpmKE+J1tmb290cGF0aHMgYmV0d2VlbiBmaWVsZHNdJzsKK+mYqD4nW2luIGRpc3RyZXNzXSc7CivpmKo+J1toaWxsc2lkZSBmYXJtbGFuZF0nOwor6ZiuPidbYW5jaWVudCBtdXNpY2FsIGluc3RydW1lbnQ6IHN1cm5hbWVdJzsKK+mYrz4nW2ZvdW5kYXRpb25dJzsKK+mYsj4nW2RlZmVuZF0nOwor6Zi7PidbaW1wZWRlXSc7CivpmL8+J1twcmVmaXggdG8gbmFtZV0nOwor6ZmAPidbc3RlZXAgYmFua10nOwor6ZmCPidbZGFtXSc7CivpmYQ+J1thZGhlcmUgdG9dJzsKK+mZiz4nW25hcnJvd10nOwor6ZmMPidbZm9vdCBwYXRoIGJldHdlZW4gcmljZSBmaWVsZHNdJzsKK+mZjT4nW2Rlc2NlbmRdJzsKKyMi6ZmNPidbZGVzY2VuZF0nIiwKK+mZkD4nW2JvdW5kYXJ5XSc7CivpmZs+J1tzdGVwcyBsZWFkaW5nIHRocm9uZV0nOwor6ZmcPidbbmFycm93XSc7CivpmZ0+J1ttb3VudGFpbiBwYXNzXSc7CivpmZ4+J1twcm9tb3RlXSc7CivpmZ8+J1tjbGltYl0nOwor6ZmiPidbY291cnR5YXJkXSc7CivpmaM+J1tjb2x1bW5dJzsKK+mZpD4nW2VsaW1pbmF0ZV0nOwor6ZmlPidbc3VibWVyZ2VdJzsKKyMi6ZmlPidbc3VibWVyZ2VdJyIsCivpmao+J1thY2NvbXBhbnldJzsKK+mZrD4nW2Nvcm5lcl0nOwor6ZmwPidbXCJmZW1hbGVcIiBwcmluY2lwbGVdJzsKK+mZsj4nW2Zyb250aWVyXSc7CivpmbM+J1tleGhpYml0XSc7CivpmbU+J1toaWxsXSc7CivpmbY+J1twb3R0ZXJ5XSc7Civpmbc+J1tzdWJtZXJnZV0nOwor6Zm4PidbbGFuZF0nOwor6Zm6PidbbmFycm93IHBhc3NdJzsKK+mZvT4nW1wibWFsZVwiIHByaW5jaXBsZV0nOwor6ZqFPidbY29ybmVyXSc7CivpmoY+J1twcm9zcGVyb3VzXSc7Civpmog+J1tjb3ZlXSc7Civpmoo+J1t0ZWFtXSc7Civpmos+J1tTdWkgZHluYXN0eV0nOwor6ZqNPidbZHJ5IGRpdGNoXSc7Civpmo4+J1tzdGFpcnNdJzsKK+majz4nW2ZvbGxvd10nOwor6ZqUPidbc2VwYXJhdGVdJzsKK+malT4nW2ZhbGxdJzsKK+malz4nW2hpZ2hdJzsKK+mamD4nW25hcnJvd10nOwor6ZqZPidbY3JhY2tdJzsKK+mamz4nW2JvcmRlcl0nOwor6ZqcPidbc2VwYXJhdGVdJzsKKyMi6ZqcPidbc2VwYXJhdGVdJyIsCivpmqM+J1tuZWlnaGJvcl0nOwor6ZqnPidbdHVubmVsXSc7Civpmqg+J1tmb2xsb3ddJzsKK+maqj4nW25hcnJvdyBwYXNzXSc7CivpmrA+J1tsb3ddJzsKK+masT4nW2hpZGVdJzsKK+masj4nW3N0YWxsaW9uXSc7CivpmrQ+J1ttb3VudGFpbiBsb2NhdGVkIGJldHdlZW4gc2hhYW54aV0nOwor6Zq2Pidbc3Vic2VydmllbnRdJzsKK+matz4nW2JlIHN1YnNlcnZpZW50IHRvXSc7Civpmrg+J1tiZSBzdWJzZXJ2aWVudCB0b10nOwor6Zq5PidbYmlyZF0nOwor6Zq7Pidbc2luZ2xlXSc7Civpmrw+J1thcXVpbGluZSAobm9zZSldJzsKK+mbgD4nW3NwYXJyb3ddJzsKK+mbgT4nW3dpbGQgZ29vc2VdJzsKK+mbhD4nW21hbGUgb2Ygc3BlY2llc10nOwor6ZuFPidbZWxlZ2FudF0nOwor6ZuGPidbYXNzZW1ibGVdJzsKK+mbhz4nW2VtcGxveV0nOwor6ZuJPidbcGhlYXNhbnRdJzsKK+mbiz4nW3N1cGVyaW9yXSc7Civpm4w+J1tmZW1hbGVdJzsKK+mbjT4nW2hhcm1vbnldJzsKK+mbjj4nW29zcHJleV0nOwor6ZuRPidbbWl4ZWRdJzsKK+mblT4nW2VuZ3JhdmVdJzsKK+mblj4nW2FsdGhvdWdoXSc7Civpm5k+J1tzZXQgb2YgdHdvXSc7Civpm5s+J1tjaGlja10nOwor6ZucPidbbWl4ZWRdJzsKK+mboj4nW2xlYXZlXSc7Civpm6M+J1tkaWZmaWN1bHRdJzsKK+mbqD4nW3JhaW5dJzsKK+mbqj4nW3Nub3ddJzsKKyMi6ZurPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpm7A+J1thdG1vc3BoZXJlXSc7Civpm7I+J1tjbG91ZHNdJzsKK+mbtj4nW3plcm9dJzsKK+mbtz4nW3RodW5kZXJdJzsKK+mbuT4nW2hhaWxdJzsKK+mbuz4nW2VsZWN0cmljaXR5XSc7CivpnIA+J1tuZWVkXSc7CivpnIQ+J1tza3ldJzsKK+mchj4nW2Egc3VkZGVuIHBlYWwgb2YgdGh1bmRlcl0nOwor6ZyHPidbc2hha2VdJzsKK+mciD4nW3RvcnJlbnRpYWwgcmFpbnNdJzsKK+mcij4nW3NwaXJpdF0nOwor6ZyNPidbcXVpY2tseV0nOwor6ZyOPidbbGlnaHQgcmFpbl0nOwor6ZyPPidbZmFsbGluZyBvZiBzbm93IGFuZCByYWluXSc7CivpnJE+J1tiZSBtb2lzdGVuZWRdJzsKK+mckz4nW3JhaW5ib3ddJzsKK+mclj4nW2xvbmcgc3BlbGwgb2YgcmFpbl0nOwor6ZyZPidbc2xlZXRdJzsKK+mcnD4nW2Zyb3N0XSc7CivpnJ4+J1tyb3N5IGNsb3Vkc10nOwor6ZykPidbZHJpcF0nOwor6ZynPidbZm9nXSc7CivpnKo+J1tsb25nIGFuZCBoZWF2eSByYWluXSc7CivpnLA+J1toYWlsXSc7CivpnLI+J1tkZXddJzsKK+mcuD4nW3J1bGUgYnkgbWlnaHQgcmF0aGVyIHRoYW4gcmlnaHRdJzsKK+mcuT4nW3RodW5kZXJdJzsKK+mcvT4nW2NsZWFyIHVwIGFmdGVyIHJhaW4gY2Vhc2UgYmUgYW5nXSc7CivpnL4+J1ttaXN0eV0nOwor6Z2CPidbdGh1bmRlcmNsYXBdJzsKK+mdhD4nW2Nsb3VkeSBza3ldJzsKK+mdhj4nW2Nsb3VkeSBza3ldJzsKK+mdiD4nW3NwaXJpdF0nOwor6Z2JPidbY2xvdWR5IHNreV0nOwor6Z2SPidbYmx1ZV0nOwor6Z2WPidbcGFjaWZ5XSc7CivpnZk+J1txdWlldF0nOwor6Z2cPidbcXVpZXRdJzsKK+mdnj4nW25vdF0nOwor6Z2gPidbbGVhbiBvbl0nOwor6Z2hPidbZGl2aWRlXSc7CivpnaI+J1tmYWNlXSc7CisjIumdpD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z2mPidbdGltaWRdJzsKK+mdqD4nW2RpbXBsZXNdJzsKK+mdqT4nW2xlYXRoZXJdJzsKK+mdqz4nW3N0cm9uZyBhbmQgcGxpYWJsZV0nOwor6Z2tPidbc3Ryb25nIGFuZCBwbGlhYmxlXSc7CivpnbE+J1tzdHJvbmcgYW5kIHBsaWFibGVdJzsKK+mdtD4nW2Jvb3RzXSc7CisjIumduT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z26Pidbc3RvY2tpbmddJzsKK+mdvD4nW3RhcnRhcnNdJzsKKyMi6Z6BPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnoQ+J1t0byB3b3JrIGhpZGVzXSc7CivpnoU+J1tsZWF0aGVyIHN0cmFwIG92ZXIgaG9yc2UnJ3MgbmVja10nOworIyLpnoU+J1tsZWF0aGVyIHN0cmFwIG92ZXIgaG9yc2UnJ3MgbmVja10nIiwKK+meiz4nW3Nob2VzXSc7Civpno0+J1tzYWRkbGVdJzsKK+mejz4nW2JpbmRdJzsKKyMi6Z6PPidbYmluZF0nIiwKK+memD4nW3NjYWJiYXJkXSc7CisjIumenD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z6gPidbYm93XSc7CivpnqM+J1t0YW5dJzsKK+mepj4nW2xlYXRoZXIgc3RhcF0nOwor6Z6oPidbdHJpYmVdJzsKK+meqz4nW2ludGVycm9nYXRlXSc7Civpnq0+J1t3aGlwXSc7CisjIumesz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z60Pidbc2FkZGxlIHVwIGhvcnNlXSc7Civpn4M+J1t0YXRhcnNdJzsKK+mfhj4nW3N3aW5nXSc7Civpn4g+J1tzb2Nrc10nOwor6Z+LPidbdGFubmVkIGxlYXRoZXJdJzsKK+mfkz4nW2ZlbmNlXSc7Civpn5w+J1tzaGVhdGhdJzsKK+mfrT4nW3NjYWxsaW9uXSc7Civpn64+J1tzY2FsbGlvbl0nOwor6Z+yPidbYnJlYWsgb3Igc21hc2ggaW50byBwaWVjZXNdJzsKK+mfsz4nW3NvdW5kXSc7Civpn7U+J1tyaHltZV0nOwor6Z+2PidbbXVzaWMgb2YgZW1wZXJvciBTaHVuXSc7Civpn7s+J1tyaHltZV0nOwor6Z+/PidbbWFrZSBzb3VuZF0nOwor6aCBPidbcGFnZV0nOwor6aCCPidbdG9wXSc7CivpoIM+J1ttb21lbnRdJzsKK+mghT4nW25lY2tdJzsKK+mghj4nW29iZXldJzsKK+mgiD4nW211c3RdJzsKK+mgjD4nW2xhdWRdJzsKK+mgjz4nW2ZseSBkb3duIG9yIGRvd253YXJkXSc7CivpoJA+J1twcmVwYXJlXSc7CivpoJE+J1tvYnN0aW5hdGVdJzsKK+mgkj4nW2NvbmZlcl0nOwor6aCTPidbcGF1c2VdJzsKK+mglz4nW2xlYW4gb25lIHNpZGVdJzsKK+mgmD4nW25lY2tdJzsKK+mgmj4nW25lY2tdJzsKK+mgoT4nW2ZseSB1cHdhcmRdJzsKK+mgpD4nW2NoZWVrc10nOwor6aCsPidbY2hlZWtzXSc7CivpoK0+J1toZWFkXSc7CivpoLQ+J1tyaWNlIHRhc3NlbF0nOwor6aC3PidbY2hpbl0nOwor6aC4PidbbmVja10nOwor6aC7PidbZnJlcXVlbnRseV0nOwor6aC8PidbcmVseV0nOwor6aC9PidbcnVpbmVkXSc7CivpoYY+J1tncmFpbl0nOwor6aGLPidbbG93ZXIgcGFydCBvZiBmYWNlXSc7CivpoYw+J1tmb3JlaGVhZF0nOwor6aGNPidbZm9yZWhlYWRdJzsKK+mhjj4nW2phd10nOwor6aGPPidbZmFjZV0nOwor6aGUPidbZmFjZV0nOwor6aGVPidbbWFuaWZlc3RdJzsKK+mhmD4nW2Rlc2lyZV0nOwor6aGbPidbdG9wXSc7CivpoZ4+J1tjbGFzc10nOwor6aGnPidbbG9vayBiYWNrXSc7Civpoas+J1tzaGl2ZXJdJzsKK+mhrz4nW21hbmlmZXN0XSc7CivpobA+J1tmcm93bl0nOwor6aGxPidbc2t1bGxdJzsKK+mhsz4nW3RoZSB0ZW1wb3JhbCBib25lXSc7CivpobQ+J1tjaGVlayBib25lc10nOwor6aKoPidbd2luZF0nOworIyLpoqg+J1t3aW5kXSciLAor6aKvPidbc291bmQgb2Ygd2luZF0nOwor6aKxPidbdGFpcGhvb25dJzsKK+mitj4nW2N5Y2xvbmVdJzsKK+mjgz4nW3doaXJsd2luZF0nOwor6aOEPidbd2hpcmx3aW5kXSc7Civpo4Y+J1t3aGlybHdpbmRdJzsKK+mjmz4nW2ZseV0nOwor6aOcPidbZmxpcCBvdmVyXSc7Civpo58+J1tlYXRdJzsKK+mjoj4nW2h1bmdlcl0nOwor6aOpPidbc3R1ZmZlZCBkdW1wbGluZ3NdJzsKK+mjqz4nW3N1cmZlaXRlZF0nOwor6aOtPidbb3JkZXJdJzsKK+mjrj4nW2RyaW5rXSc7Civpo68+J1tjb29rZWQgcmljZV0nOwor6aOyPidbZHJpbmtdJzsKK+mjtD4nW3N3ZWV0LW1lYXRzXSc7Civpo7w+J1tyYWlzZSBhbmltYWxzXSc7Civpo70+J1tlYXQgaGVhcnRpbHldJzsKK+mjvj4nW2RlY29yYXRlXSc7CivppIM+J1tzdHVmZmVkIGR1bXBsaW5nc10nOwor6aSFPidbcmljZS1jYWtlc10nOwor6aSJPidbcmF0aW9ucyBhbmQgcGF5IGZvciBzb2xkaWVyc10nOwor6aSKPidbcmFpc2VdJzsKK+mkjD4nW2JhaXRdJzsKK+mkkD4nW2VhdF0nOwor6aSSPidbaHVuZ3J5XSc7CivppJM+J1tiZSBodW5ncnldJzsKK+mklD4nW2VhdF0nOwor6aSYPidbc3VycGx1c10nOworIyLppJ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mknj4nW2ZhcmV3ZWxsIHBhcnR5XSc7CivppKA+J1tyaWNlLWNha2VzXSc7CivppKE+J1twYXN0cnkgZmlsbGluZ10nOwor6aSkPidbaW5jaXRlXSc7CivppKg+J1twdWJsaWMgYnVpbGRpbmddJzsKK+mkrD4nW3BvcnJpZGdlXSc7CivppK4+J1thIGxlZ2VuZGFyeSBhbmltYWxdJzsKK+mkvT4nW21ha2UgcHJlc2VudCBvZiBmb29kXSc7CivppL4+J1tkaXN0aWxsXSc7CisjIumlgT4nW2NhcnJ5IG1lYWwgdG8gd29ya2VycyBpbiBmaWVsZF0nIiwKK+mlhT4nW3N0ZWFtZWQgYnJlYWRdJzsKK+mliT4nW3RpbWUgb2YgZmFtaW5lIG9yIGNyb3AgZmFpbHVyZV0nOwor6aWLPidbb2ZmZXIgZm9vZCBzdXBlcmlvcl0nOwor6aWMPidbZmVlZF0nOwor6aWQPidbc3BvaWxlZF0nOwor6aWRPidbc3RhcnZlXSc7CivppZI+J1tib3VudGlmdWxdJzsKK+mllT4nW2dsdXR0b25vdXNdJzsKK+mllz4nW2hvc3QgYmFucXVldF0nOwor6aaWPidbaGVhZF0nOwor6aaXPidbY2hlZWtib25lXSc7Civpppg+J1tjdXQgb2ZmIGxlZnQgZWFyXSc7Civpppk+J1tmcmFncmFudF0nOwor6aalPidbZnJhZ3JhbmNlXSc7Civppqg+J1tmcmFncmFudF0nOwor6aasPidbaG9yc2VdJzsKK+mmrT4nW2RyaXZlXSc7Civppq4+J1tzdXJuYW1lXSc7CivpprM+J1tnbyBxdWlja2x5IG9yIHN3aWZ0bHldJzsKK+mmtD4nW3RhbWVdJzsKKyMi6aa8PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpp4E+J1t2YXJpY29sb3JlZF0nOworIyLpp4M+J1tnYWxsb3BdJyIsCivpp4U+J1tyZWxheSBzdGF0aW9uXSc7Civpp4Y+J1tzcHVyIGhvcnNlIG9uXSc7Civpp4g+J1tzcHVyIGhvcnNlIG9uXSc7Civpp5A+J1t0byBiZSBzdGF0aW9uZWQgYXRdJzsKK+mnkT4nW3RpcmVkXSc7Civpp5I+J1tjb2x0XSc7Civpp5U+J1tkcml2ZV0nOwor6aeYPidbdGlyZWRdJzsKK+mnmz4nW3NhaWxdJzsKK+mnnT4nW2NhbWVsXSc7Civpp58+J1t0ZWFtIG9mIGZvdXIgaG9yc2VzXSc7Civpp6I+J1t0ZWFtIG9mIGhvcnNlc10nOwor6aetPidbdGVycmlmeV0nOwor6aeuPidbYSBraW5kIG9mIGZpZXJjZSBhbmltYWxdJzsKK+mnsT4nW3doaXRlIGhvcnNlIHcuIGJsYWNrIG1hbmVdJzsKKyMi6aexPidbd2hpdGUgaG9yc2Ugdy4gYmxhY2sgbWFuZV0nIiwKK+mnuD4nW2dhbGxvcGluZ10nOworIyLpp7s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mnvz4nW2V4Y2VsbGVudCBob3JzZV0nOwor6aiBPidbZ2FsbG9wIGhvcnNlXSc7CivpqIU+J1twaWViYWxkIGhvcnNlXSc7CivpqI4+J1tyaWRlIGhvcnNlYmFja10nOwor6aiPPidbcGllYmFsZCBob3JzZV0nOwor6aiSPidbaGFyYXNzXSc7CivpqJM+J1t0ZXN0XSc7CivpqJk+J1tzd2luZGxlXSc7CivpqKg+J1tkYXBwbGVkXSc7CivpqKs+J1tyYWlzZV0nOwor6aiwPidbZmx5XSc7CivpqLc+J1toYXJhc3NdJzsKK+movj4nW211bGVdJzsKK+mpgD4nW3N1ZGRlbmx5XSc7CivpqYI+J1t0d28gb3V0c2lkZSBvbmVzIGluIHRocmVlIGhvcnNlXSc7CivpqYM+J1tjaGFyZ2VyXSc7CivpqYU+J1tzcHVyIGhvcnNlIG9uXSc7CivpqY0+J1tleGNlbGxlbnQgaG9yc2VdJzsKK+mplT4nW3NwaXJpdGVkIGhvcnNlXSc7CivpqZc+J1t0ZXN0XSc7CivpqZo+J1tmcmlnaHRlbl0nOwor6ambPidbcmVsYXkgc3RhdGlvbl0nOwor6amfPidbcHJvY2VkdXJlXSc7CivpqaI+J1tkb25rZXldJzsKK+mppD4nW2dhbGxvcCBhYm91dCB3aXRoIGhlYWQgdXBsaWZ0ZWRdJzsKK+mppT4nW3Rob3JvdWdoYnJlZCBob3JzZV0nOwor6ampPidbaGFwcHldJzsKK+mpqj4nW3B1cmUgYmxhY2sgaG9yc2VdJzsKK+mpqz4nW2hvcnNlc10nOwor6aqoPidbYm9uZV0nOwor6aqtPidbc2hpbiBib25lXSc7CivpqrA+J1tkaWVdJzsKK+mquD4nW3NrZWx0b25dJzsKK+mqvD4nW2JvbmVdJzsKK+mrgD4nW2J1dHRvY2tzXSc7Civpq4Q+J1tib25lIG1hcnJvd10nOwor6auPPidbc2t1bGxdJzsKK+mrkT4nW3NrdWxsXSc7Civpq5M+J1tib25lIG1hcnJvd10nOwor6auUPidbYm9keV0nOwor6auYPidbaGlnaF0nOwor6auePidbaGlnaF0nOwor6aufPidbaGFpcl0nOwor6auiPidbd2lnXSc7Civpq6M+J1tzaW1pbGFyIHRvXSc7Civpq6Y+J1tmbG93aW5nIGhhaXIgb2YgeW91bmcgY2hpbGRdJzsKK+mrqj4nW2hhaXJdJzsKK+mrqz4nW2NoaWxkcmVuJydzIGhhaXIgc3R5bGVdJzsKK+mrrT4nW211c3RhY2hlXSc7Civpq64+J1toYWlyXSc7Civpq68+J1tiZWFyZF0nOworIyLpq7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mrtD4nW2Rpc2hldmVsZWQgaGFpcl0nOworIyLpq7c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mruz4nW2hhaXIgcm9sbGVkIHVwIGluIGEgYnVuXSc7CivprIY+J1tsYXhdJzsKK+msmD4nW2JlYXV0aWZ1bCBoYWlyXSc7CivprJo+J1tiZWFyZF0nOwor6ayfPidbZHJlc3MgaGFpciBpbiBjb2lsZWQga25vdF0nOwor6ayiPidbaGFpciBvbiB0ZW1wbGVzXSc7CivprKM+J1tob3JzZScncyBtYW5lXSc7CivprKU+J1tzdHJ1Z2dsZV0nOwor6aynPidbcXVhcnJlbF0nOwor6ayoPidbYm9pc3Rlcm91c10nOwor6aypPidbZmV1ZF0nOwor6ayqPidbc3RydWdnbGVdJzsKK+msrj4nW2xvdHMgKHRvIGJlIGRyYXduKV0nOwor6ayvPidbc2FjcmlmaWNpYWwgd2luZV0nOwor6ayxPidbbHV4dXJpYW50XSc7CivprLI+J1t0eXBlIG9mIGNhbGRyb25dJzsKK+msuz4nW3NlbGxdJzsKK+msvD4nW2dob3N0XSc7CivprYE+J1tjaGllZl0nOwor6a2CPidbc291bF0nOwor6a2DPidbZHJvdWdodCBkZW1vbl0nOwor6a2EPidbdmlnb3JdJzsKK+mthT4nW2tpbmQgb2YgZm9yZXN0IGRlbW9uXSc7CivprY0+J1tkZW1vbnNdJzsKK+mtjj4nW2Ega2luZCBvZiBtb25zdGVyXSc7CivprY8+J1traW5nZG9tIG9mIHdlaV0nOwor6a2RPidbYSBtb250YWluIGRlbW9uIHJlc2VtYmxpbmcgdGlnZXJdJzsKK+mtlD4nW2RlbW9uXSc7CivprZg+J1tuaWdodG1hcmVdJzsKK+mtmj4nW2Zpc2hdJzsKK+mtrz4nW2Zvb2xpc2hdJzsKK+mttD4nW2JyZWFtXSc7CisjIumugT4nW3RoZSBib25pdG9dJyIsCivpro4+J1tzaGVhdGZpc2hdJzsKK+mukT4nW2FiYWxvbmVdJzsKK+mukj4nW2NhcnBdJzsKK+mukz4nW21pbmNlZCBhbmQgc2FsdGVkIGZpc2hdJzsKKyMi6a6TPidbbWluY2VkIGFuZCBzYWx0ZWQgZmlzaF0nIiwKKyMi6a6TPidbbWluY2VkIGFuZCBzYWx0ZWQgZmlzaF0nIiwKK+munz4nW2FuZ2xlcmZpc2hdJzsKK+muoD4nW2Ega2luZCBvZiBzaGFkIHdpdGggYSBoZWFkIGxpa2UgYSBzdHVyZ2Vvbl0nOworIyLprqg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+muqj4nW2tpbmQgb2Ygc3R1cmdlb25dJzsKK+muqz4nW3NoYXJrXSc7Civprq0+J1tzYWxtb25dJzsKK+murj4nW2ZyZXNoXSc7CisjIumutD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLprrk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mvgD4nW2dpYW50IGZpc2hdJzsKK+mvhj4nW3RoZSBza2F0ZSBvciByYXldJzsKK+mviT4nW2NhcnBdJzsKK+mvij4nW3NoYXJrXSc7Civpr48+J1thIGRpYWxlY3QuLi4uLi4uLiBuYW1lIG9mIGZpc2hdJzsKKyMi6a+RPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumvkj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a+UPidbbXVsbGV0XSc7Civpr5Y+J1ttYWNrZXJlbF0nOwor6a+bPidbcGFncm9zb211cyBtYWpvcl0nOwor6a+hPidbaGVycmluZ10nOwor6a+iPidbY3J5cHRvYnJhbmNodXMgamFwb25pY3VzXSc7CisjIumvoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a+kPidbc3Bhd25dJzsKK+mvqD4nW3doYWxlXSc7Civpr7A+J1tzaGVhdF0nOworIyLpr7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6a+xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumvsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpsIQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsIg+J1tmbGF0ZmlzaF0nOwor6bCJPidbc3R1cmdlb25dJzsKKyMi6bCKPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsIw+J1tsb2FjaF0nOwor6bCNPidbbG9hY2hdJzsKK+mwkD4nW2FsbGlnYXRvcl0nOwor6bCSPidbYWJhbG9uZV0nOwor6bCTPidbZmlzaCBnaWxsc10nOworIyLpsJQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwlT4nW3NocmltcF0nOwor6bCbPidbc2FyZGluZV0nOworIyLpsKE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCkPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsKU+J1todWdlIGZpc2hdJzsKK+mwrT4nW2Zpbl0nOwor6bCuPidbc2FyZGluZV0nOworIyLpsK8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsLI+J1todWdlIHNlYSB0dXJ0bGVdJzsKK+mwuT4nW3NraXBqYWNrXSc7CisjIumwuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bC7PidbZWVsXSc7CivpsL4+J1tzd2ltbWluZyBibGFkZGVyIG9mIGZpc2hdJzsKKyMi6bGGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsYc+J1thbmdsZXJmaXNoXSc7CivpsYg+J1tjb2RmaXNoXSc7CivpsZI+J1tiYXJiZWxdJzsKK+mxlz4nW2Zpc2ggc2NhbGVzXSc7CisjIumxmD4nW3N0dXJnZW9uXSciLAor6bGgPidbbWluY2VkIGZpc2hdJzsKK+mxpz4nW3NuYWtlaGVhZF0nOworIyLpsbY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mxuD4nW3NlYSBwZXJjaF0nOwor6bOlPidbYmlyZF0nOwor6bOnPidbd2lsZCBkdWNrXSc7Civps6k+J1twaWdlb25dJzsKK+mzqz4nW3dpbGQgZ29vc2VdJzsKK+mzrD4nW3dpbGQgZHVja10nOworIyLps7A+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mzsz4nW21hbGUgcGhvZW5peF0nOwor6bO0PidbY3J5IG9mIGJpcmQgb3IgYW5pbWFsXSc7Civps7Y+J1traXRlXSc7CivptIM+J1tzaHJpa2VdJzsKK+m0hj4nW2JpcmQgcmVzZW1ibGluZyBzZWNyZXRhcnkgZmFsY29uXSc7CivptIc+J1tidXN0YXJkXSc7CivptIg+J1t3aWxkIGdvb3NlXSc7CivptIk+J1tjcm93XSc7CivptI4+J1tzZWFndWxsXSc7CivptJI+J1tzcGVjaWVzIG9mIGxhcmtdJzsKK+m0lT4nW29zdHJpY2hdJzsKK+m0mz4nW21hbGUgbWFuZGFyaW4gZHVja10nOwor6bSfPidba2l0ZV0nOwor6bSjPidbc3BlY2llcyBvZiB0YWl3YW4gcGlnZW9uXSc7CivptKY+J1tmZW1hbGUgbWFuZGFyaW4gZHVja10nOwor6bSoPidbZHVja10nOwor6bSqPidbc3dvb3BdJzsKK+m0qz4nW2Egc25pcGVdJzsKK+m0rD4nW29yaW9sZV0nOwor6bS7Pidbc3BlY2llcyBvZiB3aWxkIHN3YW5dJzsKKyMi6bS+PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptL8+J1twaWdlb25dJzsKKyMi6bWBPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptYQ+J1traXRlXSc7CisjIum1hD4nW2tpdGVdJyIsCisjIum1hD4nW2tpdGVdJyIsCisjIum1kD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bWRPidbY3Vja29vXSc7CivptZk+J1thIHNocmlrZV0nOwor6bWcPidbcGVsaWNhbl0nOwor6bWdPidbZ29vc2VdJzsKK+m1nj4nW2dvb3NlXSc7CivptaA+J1t0YXJnZXRdJzsKK+m1oT4nW3NwZWNpZXMgb2YgcGFycm90XSc7CisjIum1oT4nW3NwZWNpZXMgb2YgcGFycm90XSciLAor6bWsPidbZmFidWxvdXMgYmlyZCBvZiBlbm9ybW91cyBzaXplXSc7Civpta8+J1tiaXJkXSc7CivptbI+J1ttYWdwaWVdJzsKKyMi6bW6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptoc+J1t0aHJ1c2hdJzsKK+m2iT4nW3F1YWlsXSc7Civpto8+J1tjaGlja2VuXSc7Civptpo+J1tvc3ByZXldJzsKKyMi6bakPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptqk+J1tkdWNrXSc7Civptqs+J1t0aHJ1c2hdJzsKK+m2rz4nW29yaW9sZV0nOworIyLptrE+J1tzb2FyXSciLAor6ba0PidbY3JhbmVdJzsKK+m2uD4nW1tub3QgZm91bmQgaW4gYW55IGRpY3Rpb25hcnldXSc7Civptro+J1t3YWd0YWlsXSc7Civptrs+J1thIGtpbmQgb2YgcGlnZW9uXSc7Civpt4E+J1tmaXNoaGF3ayBib3cgb3IgcHJvd10nOwor6beCPidbc3BhcnJvdyBoYXdrXSc7Civpt4Q+J1tjaGlja2VuXSc7Civpt4Y+J1tiaXJkIG5hbWVdJzsKK+m3jz4nW2JpcmQgbmFtZV0nOwor6beTPidbcGFydHJpZGdlXSc7Civpt5k+J1toYXdrXSc7Civpt6Y+J1t3cmVuXSc7CisjIum3qz4nW3R1cnF1b2lzZSBraW5nZmlzaGVyXSciLAor6bevPidbd3Jlbl0nOwor6beyPidbY29uZG9yXSc7Civpt7g+J1tzbmlwZV0nOwor6be5PidbZWFnbGVdJzsKK+m3uj4nW2hlcm9uXSc7Civpt70+J1tvcmllbnRhbCBidWxsZmluY2hdJzsKK+m4mj4nW3NwZWNpZXMgb2YgcGFycm90XSc7CivpuJs+J1tjcmFuZV0nOwor6biePidbZmFidWxvdXMgYmlyZF0nOwor6bm1Pidbc2FsaW5lIHNvaWxdJzsKK+m5uD4nW2Fsa2FsaW5lXSc7Civpubk+J1tzYWx0eV0nOwor6bm9Pidbc2FsdF0nOwor6bm/PidbZGVlcl0nOwor6bqBPidbcm91Z2hdJzsKK+m6iD4nW3NwZWNpZXMgb2YgZGVlcl0nOwor6bqLPidbZWxrXSc7Civpuow+J1tzdGFnXSc7CivpupE+J1tmYXduXSc7CivpupI+J1tsZWdlbmRhcnkgYXVzcGljaW91cyBhbmltYWxdJzsKK+m6kz4nW2Zvb3Qgb2YgaGlsbF0nOwor6bqVPidbbXVudGphYyBkZWVyXSc7Civpupc+J1tiZWF1dGlmdWxdJzsKK+m6nT4nW211c2sgZGVlcl0nOwor6bqfPidbZmVtYWxlIG9mIGNoaW5lc2UgdW5pY29ybl0nOwor6bqlPidbd2hlYXRdJzsKK+m6pj4nW3doZWF0XSc7Civpuqk+J1ticmFuXSc7Civpuqo+J1tmbG91cl0nOworIyLpuqs+J1tmbG91cl0nIiwKK+m6uD4nW2JyYW5dJzsKK+m6uT4nW3llYXN0XSc7Civpuro+J1tmbG91cl0nOwor6bq7PidbaGVtcF0nOwor6bq8PidbaW50ZXJyb2dhdGl2ZSBmaW5hbCBwYXJ0aWNsZV0nOwor6bq+PidbcGVubmFudF0nOwor6bq/PidbSV0nOwor6buEPidbeWVsbG93XSc7Civpu4w+J1tzY2hvb2xdJzsKK+m7jT4nW2dsdXRpbm91cyBtaWxsZXRdJzsKK+m7jj4nW3N1cm5hbWVdJzsKK+m7jz4nW3N0aWNrIHRvXSc7Civpu5A+J1tzdGlja10nOwor6buSPidbYmxhY2tdJzsKK+m7lD4nW2JsYWNrXSc7Civpu5g+J1tzaWxlbnRdJzsKK+m7mT4nW3NpbGVudF0nOwor6bubPidbYmxhY2tlbiBleWVicm93c10nOwor6bucPidbZGlzbWlzc10nOwor6budPidbYmxhY2tdJzsKK+m7nj4nW2RvdF0nOwor6bugPidbc2x5XSc7Civpu6U+J1t0YXR0b29pbmcgZmFjZV0nOwor6buoPidbcG9saXRpY2FsIHBhcnR5XSc7Civpu68+J1tkYXJrXSc7Civpu7Q+J1ttb2xkXSc7Civpu7Y+J1ttb2xlXSc7Civpu7c+J1tkaXNob25vcl0nOwor6bu5PidbZW1icm9pZGVyeV0nOwor6bu7Pidbc3BlY2lhbCBwYXR0ZXJuIG9mIGVtYnJvaWRlcnldJzsKK+m7vD4nW2VtYnJvaWRlcmVkIG9mZmljaWFsIG9yIHNhY3JpZmljXSc7Civpu70+J1t0byBzdHJpdmVdJzsKK+m8hz4nW2h1Z2Ugc2VhIHR1cnRsZV0nOwor6byIPidbZnJlc2ggd2F0ZXIgdHVydGxlXSc7CivpvI4+J1tsYXJnZV0nOwor6byTPidbZHJ1bV0nOwor6byVPidbcmF0dGxlIG9mIGRydW1zXSc7CivpvKA+J1tyYXRdJzsKK+m8oT4nW3JhdF0nOwor6bysPidbd2Vhc2VsXSc7CivpvLs+J1tub3NlXSc7CivpvL4+J1tzbm9yZSBsb3VkbHldJzsKK+m9ij4nW2V2ZW5dJzsKK+m9iz4nW3ZlZ2V0YXJpYW4gZGlldF0nOwor6b2OPidbdGFrZSBpbiBib3RoIGhhbmRzIGFuZCBvZmZlciB0b10nOwor6b2PPidbYnJlYWsgb3Igc21hc2ggaW50byBwaWVjZXNdJzsKK+m9kj4nW3RlZXRoXSc7CivpvZQ+J1tsb3NlIGJhYnkgdGVldGggYW5kIGdldCBhZHVsdCB0ZV0nOwor6b2fPidbaXJyZWd1bGFyIHRlZXRoXSc7CivpvaA+J1tsb3NlIGJhYnkgdGVldGggYW5kIGdldCBhZHVsdCB0ZWV0aF0nOwor6b2hPidbYWdlXSc7CivpvaI+J1thZ2VdJzsKK+m9oz4nW2FjdF0nOwor6b2mPidbZ3Vtc10nOwor6b2nPidbYml0ZV0nOwor6b2qPidbbmFycm93XSc7Civpvaw+J1t1bmV2ZW4gdGVldGhdJzsKK+m9sj4nW3Rvb3RoIGRlY2F5XSc7CivpvbY+J1twYWxhdGVdJzsKK+m9tz4nW25hcnJvd10nOwor6b6NPidbZHJhZ29uXSc7CivpvpU+J1tuaWNoZV0nOwor6b6cPidbdHVydGxlIG9yIHRvcnRvaXNlXSc7Civpvp0+J1thdXR1bW5dJzsKK+m+oD4nW2ZsdXRlXSc7CisKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX09uUm9tYWppLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfT25Sb21hamkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc0MzU5MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX09uUm9tYWppLnR4dApAQCAtMCwwICsxLDYyMTYgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEYXRlOiBUdWUgSmFuIDIzIDEyOjQyOjAzIDIwMDEKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEthbmppLU9uUm9tYWppCisKK+S4gT5UZWk7CivkuIM+U2hpY2hpOwor5LiHPk1hbjsKK+S4iD5Kb3U7CivkuIk+U2FuOwor5LiKPkpvdTsKK+S4iz5LYTsKK+S4jT5GdTsKK+S4jj5ZbzsKK+S4kD5LYWk7CivkuJE+Q2h1dTsKK+S4lD5TaGE7CivkuJU+SGk7CivkuJY+U2U7CivkuJc+U2VpOwor5LiYPkt5dXU7CivkuJk+SGVpOwor5LiePlNob3U7CivkuKE+UnlvdTsKK+S4pj5IZWk7CivkuKo+S2E7CivkuK0+Q2h1dTsKK+S4sT5LYW47CivkuLI+U2VuOwor5Li2PkNodTsKK+S4uD5HYW47CivkuLk+VGFuOwor5Li7PlNodTsKK+S4vD5TZWk7CivkuL8+SGV0c3U7CivkuYI+R2FpOwor5LmDPkRhaTsKK+S5hT5LeXV1Owor5LmLPlNoaTsKK+S5jT5TYWt1Owor5LmOPktvOwor5LmPPkJvdTsKK+S5lT5LbzsKK+S5lj5LYWk7CivkuZc+Sm91Owor5LmYPkpvdTsKK+S5mT5PdHN1Owor5LmdPkt5dXU7CivkuZ4+S290c3U7CivkuZ8+WWE7CivkuaI+R2FpOwor5LmxPlJhbjsKK+S5sz5OeXV1Owor5Lm+PkthbjsKK+S6gD5LaTsKK+S6gj5SYW47CivkuoU+S2V0c3U7CivkuoY+UnlvdTsKK+S6iD5ZbzsKK+S6iT5Tb3U7Civkuoo+Smk7Civkuos+Smk7Civkuow+Tmk7Civkuo4+VTsKK+S6kT5VbjsKK+S6kj5HbzsKK+S6lD5HbzsKK+S6lT5TZWk7Civkupg+U2VuOwor5LqZPktvdTsKK+S6mz5TYTsKK+S6nD5BOwor5LqePkE7Civkup8+S3lva3U7CivkuqA+VG91Owor5LqhPkJvdTsKK+S6oj5Lb3U7CivkuqQ+S291Owor5LqlPkdhaTsKK+S6pj5Fa2k7Civkuqg+S3lvdTsKK+S6qz5LeW91Owor5LqsPkt5b3U7Civkuq0+VGVpOwor5LquPlJ5b3U7CivkurA+S2VpOwor5LqzPkhha3U7CivkurY+VGFuOwor5Lq6PkppbjsKK+S7gD5TaHV1Owor5LuBPkppbjsKK+S7gj5Sb2t1Owor5LuEPlNva3U7Civku4Y+RnU7Civku4c+S3l1dTsKK+S7ij5Lb247Civku4s+S2FpOwor5LuNPkpvdTsKK+S7jj5KdXU7Civku48+QnV0c3U7Civku5Q+U2hpOwor5LuVPlNoaTsKK+S7lj5UYTsKK+S7lz5Kb3U7Civku5g+RnU7Civku5k+U2VuOwor5LudPkRvdTsKK+S7nj5KaW47Civku58+U2VuOwor5LujPkRhaTsKK+S7pD5SZWk7Civku6U+STsKK+S7rT5KaW47Civku64+S2E7Civku7A+R3lvdTsKK+S7sj5DaHV1Owor5Lu2PktlbjsKK+S7tz5LYWk7Civku7s+TmluOwor5LyBPktpOwor5LyJPktvdTsKK+S8ij5JOwor5LyNPkdvOwor5LyOPktpOwor5LyPPkZ1a3U7CivkvJA+QmF0c3U7CivkvJE+S3l1dTsKK+S8mj5LYWk7CivkvJw+U2FpOwor5LydPkRlbjsKK+S8rz5IYWt1Owor5LywPktvOwor5Ly0PkhhbjsKK+S8tj5SZWk7CivkvLg+U2hpbjsKK+S8uj5TaGk7CivkvLw+Smk7CivkvL0+S3lhOwor5L2DPlRlbjsKK+S9hj5UYW47CivkvYc+Q2hvOwor5L2NPkk7CivkvY4+VGVpOwor5L2PPkp1dTsKK+S9kD5TYTsKK+S9kT5ZdXU7CivkvZM+VGVpOwor5L2VPkthOwor5L2XPlRhOwor5L2ZPllvOwor5L2aPkl0c3U7CivkvZs+QnV0c3U7CivkvZw+U2FrdTsKK+S9nT5Lb3U7CivkvZ4+TmVpOwor5L2pPkhhaTsKK+S9rz5Zb3U7CivkvbA+SGFrdTsKK+S9sz5LYTsKK+S9tT5IZWk7CivkvbY+S2l0c3U7Civkvbs+Q2hvdTsKK+S9vD5Lb3U7Civkvb8+U2hpOwor5L6DPkthbjsKK+S+hj5SYWk7Civkvog+U2hpOwor5L6LPlJlaTsKK+S+jT5KaTsKK+S+jz5TaHU7CivkvpE+WXV1Owor5L6WPlJvbjsKK+S+mD5UYTsKK+S+mz5LeW91Owor5L6dPkk7CivkvqA+S3lvdTsKK+S+oT5LYTsKK+S+qz5OZWk7Civkvq0+SmluOwor5L6uPkJ1Owor5L6vPktvdTsKK+S+tT5TaGluOwor5L62PlJ5bzsKK+S+vz5CZW47Civkv4I+S2VpOwor5L+DPlNva3U7Civkv4Q+R2E7Civkv4o+U2h1bjsKK+S/jj5TaG87Civkv5A+Umk7Civkv5E+WW91Owor5L+UPktlbjsKK+S/lz5ab2t1Owor5L+YPkZ1Owor5L+aPlJpOwor5L+bPkJlbjsKK+S/nT5IbzsKK+S/nz5TaGk7Civkv6E+U2hpbjsKK+S/rj5TaHV1Owor5L+vPkZ1Owor5L+zPkhhaTsKK+S/tT5IeW91Owor5L+2PlNodWt1Owor5L+4PkhvdTsKK+S/uj5FbjsKK+S/vj5IaTsKK+WAhT5TYWk7CivlgIY+UnlvdTsKK+WAiT5Tb3U7CivlgIs+S287CivlgI0+QmFpOwor5YCPPlNodWt1Owor5YCRPk1vbjsKK+WAkj5Ub3U7CivlgJQ+S3V0c3U7CivlgJY+S291Owor5YCZPktvdTsKK+WAmj5JOwor5YCfPlNoYWt1Owor5YChPlNob3U7CivlgKM+SG91Owor5YCkPkNoaTsKK+WApT5Lb3U7CivlgKY+S2VuOwor5YCoPkt5bzsKK+WAqT5TZW47CivlgKo+R2VpOwor5YCrPlJpbjsKK+WArD5UYWt1Owor5YCtPkk7CivlgLY+S3U7CivlgLk+S2VuOwor5YGDPkVuOwor5YGHPkthOwor5YGIPktldHN1Owor5YGJPkk7CivlgY8+SGVuOwor5YGQPkdhbjsKK+WBlT5LYWk7CivlgZY+U2hhOwor5YGaPlNha3U7CivlgZw+VGVpOwor5YGlPktlbjsKK+WBrD5Tb3U7CivlgbI+U2hpOwor5YG0PlNva3U7CivlgbU+VGVpOwor5YG2Pkd1dTsKK+WBuD5DaHV1Owor5YG9PkdpOwor5YKAPkthaTsKK+WChT5GdTsKK+WCjT5Cb3U7CivlgpE+S2V0c3U7Civlgpg+U2FuOwor5YKZPkJpOwor5YKaPktvdTsKK+WCrD5TYWk7Civlgq0+WW91Owor5YKyPkdvdTsKK+WCsz5EZW47CivlgrQ+VTsKK+WCtT5TYWk7Civlgrc+U2hvdTsKK+WCvj5LZWk7Civlg4I+Um91Owor5YOFPktpbjsKK+WDiT5TZW47Civlg4o+U2VuOwor5YONPkRvdTsKK+WDjz5ab3U7Civlg5E+S3lvdTsKK+WDlT5Cb2t1Owor5YOWPktpOwor5YOaPlJ5b3U7Civlg54+R2k7Civlg6M+U2VuOwor5YOlPkt5b3U7Civlg6c+U291Owor5YOtPlNlbjsKK+WDrj5Eb3U7Civlg7U+S3lvdTsKK+WDuT5LYTsKK+WDuz5IZWtpOwor5YSAPkdpOwor5YSBPlNodW47CivlhII+RG91Owor5YSEPk9rdTsKK+WEiT5LZW47CivlhJI+SnU7CivlhJQ+Q2h1dTsKK+WElT5TZWk7CivlhJY+UmFuOwor5YSYPkppbjsKK+WEmj5Cb3U7CivlhJ8+U2hvdTsKK+WEoT5SYWk7CivlhKo+WXV1Owor5YSyPkNobzsKK+WEtz5SZWk7CivlhLo+RGE7CivlhLs+VG91Owor5YS8PkdlbjsKK+WEvz5KaW47CivlhYA+S290c3U7CivlhYE+SW47CivlhYM+R2VuOwor5YWEPktlaTsKK+WFhT5KdXU7CivlhYY+Q2hvdTsKK+WFhz5LeW91Owor5YWIPlNlbjsKK+WFiT5Lb3U7CivlhYs+S29rdTsKK+WFjD5EYTsKK+WFjT5NZW47CivlhY4+VG87CivlhZA+Smk7CivlhZI+Smk7CivlhZQ+VG87CivlhZo+VG91Owor5YWcPlRvdTsKK+WFoj5LeW91Owor5YWlPk55dXU7Civlhag+WmVuOwor5YWpPlJ5b3U7Civlhao+WXU7Civlhas+SGFjaGk7Civlhaw+S291Owor5YWtPlJva3U7Civlha4+S2VpOwor5YWxPkt5b3U7CivlhbU+SGVpOwor5YW2PktpOwor5YW3Pkd1Owor5YW4PlRlbjsKK+WFvD5LZW47CivlhoA+S2k7CivlhoI+S2VpOwor5YaFPkRhaTsKK+WGhj5FbjsKK+WGiT5OZW47Civlhoo+U2F0c3U7Civlhow+U2F0c3U7Civlho0+U2FpOwor5YaPPktlaTsKK+WGkD5Cb3U7CivlhpE+Q2h1dTsKK+WGkj5Cb3U7CivlhpM+S291Owor5YaVPkJlbjsKK+WGlj5CZWtpOwor5YaXPkpvdTsKK+WGmT5TaGE7CivlhqA+S2FuOwor5YaiPkNob3U7CivlhqQ+RW47CivlhqU+TWVpOwor5YamPktvdTsKK+WGqD5GdTsKK+WGqT5TaGE7Civlhqo+QmVraTsKK+WGqz5IeW91Owor5YasPlRvdTsKK+WGsD5IeW91Owor5YaxPkdvOwor5YayPkNodXU7CivlhrM+S2V0c3U7CivlhrQ+R287CivlhrU+S3lvdTsKK+WGtj5ZYTsKK+WGtz5SZWk7Civlhr0+UmV0c3U7Civlh4Q+U2VpOwor5YeFPktvOwor5YeGPkp1bjsKK+WHiT5SeW91Owor5YeLPkNob3U7Civlh4w+UnlvdTsKK+WHjT5Ub3U7Civlh5Y+SnVuOwor5YebPlJpbjsKK+WHnD5SaW47Civlh50+R3lvdTsKK+WHoD5LaTsKK+WHoT5Cb247Civlh6Y+U2hvOwor5YetPkh5b3U7Civlh7A+S291Owor5YexPkdhaTsKK+WHtT5LYW47Civlh7Y+S3lvdTsKK+WHuD5Ub3RzdTsKK+WHuT5PdTsKK+WHuj5TaHV0c3U7Civlh70+S2FuOwor5Ye+PkthbjsKK+WIgD5Ub3U7CivliIM+SmluOwor5YiEPkppbjsKK+WIhj5CdW47CivliIc+U2V0c3U7CivliIg+R2FpOwor5YiKPkthbjsKK+WIiz5TZW47CivliI4+RnVuOwor5YiRPktlaTsKK+WIlD5LZXRzdTsKK+WIlz5SZXRzdTsKK+WInT5TaG87CivliKQ+SGFuOwor5YilPkJldHN1Owor5YinPkdvdTsKK+WIqT5SaTsKK+WIqj5TYW47CivliK4+S2F0c3U7CivliLA+VG91Owor5YizPktvOwor5Yi2PlNlaTsKK+WItz5TYXRzdTsKK+WIuD5LZW47CivliLk+U2F0c3U7CivliLo+U2hpOwor5Yi7Pktva3U7CivliYM+VGVpOwor5YmEPktlaTsKK+WJhz5Tb2t1Owor5YmKPlNha3U7CivliYs+S29rdTsKK+WJjD5SYXRzdTsKK+WJjT5aZW47CivliY8+U291Owor5YmUPlRla2k7CivliZY+Qm91Owor5YmbPkdvdTsKK+WJnj5LaTsKK+WJoz5LZW47CivliaQ+WmFpOwor5YmlPkhha3U7Civliak+Sm91Owor5YmqPlNlbjsKK+WJrz5GdWt1Owor5YmwPkpvdTsKK+WJsT5LZW47CivlibI+S2F0c3U7CivlibM+VG91Owor5Ym0PkdhaTsKK+WJtT5Tb3U7Civlib0+SHlvdTsKK+WJvz5TaG91Owor5YqDPktha3U7Civlioc+R2VraTsKK+WKiD5IZWtpOwor5YqJPlJ1Owor5YqNPktlbjsKK+WKkT5aYWk7CivlipI+S2VuOwor5YqUPktlbjsKK+WKmz5SeW9rdTsKK+WKnz5Lb3U7CivliqA+S2E7CivliqM+UmV0c3U7Civliqk+Sm87Civliqo+RG87Civliqs+R291Owor5YqsPkt1Owor5YqtPlNob3U7CivlirE+UmVpOwor5Yq0PlJvdTsKK+WKtT5LZW47Civlirk+S291Owor5Yq8PkthdHN1Owor5Yq+PkdhaTsKK+WLgT5LZWk7Civli4M+Qm90c3U7Civli4U+Q2hva3U7Civli4c+WXV1Owor5YuJPkJlbjsKK+WLjT5LZWk7Civli5I+Um9rdTsKK+WLlT5Eb3U7Civli5c+Qm91Owor5YuYPkthbjsKK+WLmT5NdTsKK+WLnT5TaG91Owor5YuePlJvdTsKK+WLnz5CbzsKK+WLoD5SaWt1Owor5YuiPlNlaTsKK+WLoz5TZWtpOwor5YukPktpbjsKK+WLpj5Tb3U7Civli6c+S2FuOwor5YuyPkt1bjsKK+WLsz5LdW47Civli7U+UmVpOwor5Yu4PkthbjsKK+WLuT5Ib3U7Civli7o+U2hha3U7Civli74+S291Owor5Yu/PkJ1dHN1Owor5YyFPkhvdTsKK+WMhj5Tb3U7CivljIg+S3lvdTsKK+WMjT5IbzsKK+WMjz5Ib3U7CivljJA+SG9rdTsKK+WMlT5IaTsKK+WMlj5LYTsKK+WMlz5Ib2t1Owor5YyZPlNoaTsKK+WMmj5Ib3U7CivljJ0+U291Owor5YygPlNob3U7CivljKE+S3lvdTsKK+WMoz5Lb3U7CivljKo+SGk7CivljK8+V2FpOwor5YyxPktpOwor5YyzPlJlbjsKK+WMuD5LZWk7CivljLk+SGl0c3U7CivljLo+S3U7CivljLs+STsKK+WMvz5Ub2t1Owor5Y2APkt1Owor5Y2BPkp1dTsKK+WNgz5TZW47CivljYU+U291Owor5Y2GPlNvdHN1Owor5Y2HPlNob3U7CivljYg+R287CivljYk+S2k7CivljYo+SGFuOwor5Y2NPkJhbjsKK+WNkT5IaTsKK+WNkj5Tb3RzdTsKK+WNkz5UYWt1Owor5Y2UPkt5b3U7CivljZc+TmFuOwor5Y2YPlRhbjsKK+WNmj5IYWt1Owor5Y2cPkJva3U7CivljZ4+SGVuOwor5Y2gPlNlbjsKK+WNpj5LYTsKK+WNqT5TZXRzdTsKK+WNrj5TaGk7Civlja8+Qm91Owor5Y2wPkluOwor5Y2xPktpOwor5Y2zPlNva3U7CivljbQ+S3lha3U7CivljbU+UmFuOwor5Y23PkthbjsKK+WNuD5TaGE7Civljbs+S3lha3U7Civljb8+S3lvdTsKK+WOgj5LYW47CivljoQ+WWFrdTsKK+WOlj5Cb3U7Civljpg+UmluOwor5Y6aPktvdTsKK+WOnz5HZW47CivljqA+U2hpOwor5Y6lPktldHN1Owor5Y6mPkthOwor5Y6oPlp1Owor5Y6pPkt5dXU7Civljq0+RW47Civljq4+U2hpOwor5Y6wPlNob3U7CivljrM+R2VuOwor5Y62PlNoaTsKK+WOuz5LeW87Civlj4I+U2FuOwor5Y+DPlNhbjsKK+WPiD5ZdXU7Civlj4k+U2hhOwor5Y+KPkt5dXU7Civlj4s+WXV1Owor5Y+MPlNvdTsKK+WPjT5IYW47Civlj44+U2h1dTsKK+WPlD5TaHVrdTsKK+WPlj5TaHU7Civlj5c+SnU7Civlj5k+Sm87Civlj5s+SGFuOwor5Y+fPlNvdTsKK+WPoT5FaTsKK+WPoj5Tb3U7Civlj6M+S291Owor5Y+kPktvOwor5Y+lPkt1Owor5Y+oPlRvdTsKK+WPqT5Lb3U7Civlj6o+U2hpOwor5Y+rPkt5b3U7Civlj6w+U2hvdTsKK+WPrT5IYXRzdTsKK+WPrj5UZWk7Civlj68+S2E7Civlj7A+RGFpOwor5Y+xPlNoaXRzdTsKK+WPsj5TaGk7Civlj7M+VTsKK+WPtj5LeW91Owor5Y+3PkdvdTsKK+WPuD5TaGk7CivlkIE+S3U7CivlkIM+S2l0c3U7CivlkIQ+S2FrdTsKK+WQiD5Hb3U7CivlkIk+S2ljaGk7CivlkIo+Q2hvdTsKK+WQiz5TdW47CivlkIw+RG91Owor5ZCNPk1laTsKK+WQjj5Lb3U7CivlkI8+Umk7CivlkJA+VG87CivlkJE+S291Owor5ZCbPkt1bjsKK+WQnT5SaW47CivlkJ8+R2luOwor5ZCgPkhhaTsKK+WQpj5IaTsKK+WQqT5GdW47CivlkKs+R2FuOwor5ZCsPktpbjsKK+WQrT5Lb3U7CivlkK4+U2VuOwor5ZC2PlRvdHN1Owor5ZC4Pkt5dXU7CivlkLk+U3VpOwor5ZC7PkZ1bjsKK+WQvD5Lb3U7CivlkL0+SW47CivlkL4+R287CivlkYA+R2E7CivlkYI+UnlvOwor5ZGGPkJvdTsKK+WRiD5UZWk7CivlkYk+R287CivlkYo+S29rdTsKK+WRjj5TZWtpOwor5ZGRPkRvbjsKK+WRnz5HZW47Civlkag+U2h1dTsKK+WRqj5KdTsKK+WRsD5TaGk7CivlkbE+S287CivlkbM+TWk7CivlkbU+S2E7CivlkbY+RG87Civlkbc+S291Owor5ZG7PlNoaW47Civlkbw+S287Civlkb0+TWVpOwor5ZKAPlNvOwor5ZKEPlRvdHN1Owor5ZKGPkhvdTsKK+WSiz5TYWt1Owor5ZKMPldhOwor5ZKOPkt5dXU7Civlko8+RWk7CivlkpA+SG87CivlkpI+U2h1Owor5ZKiPkdha3U7CivlkqQ+VGE7CivlkqU+S2k7Civlkqg+U2hpOwor5ZKrPlNoaTsKK+WSrD5Lb3U7Civlkq8+S2FrdTsKK+WSsj5TaG91Owor5ZKzPkdhaTsKK+WSuD5LYW47Civlkrw+S2E7Civlkr0+SW47Civlkr4+Um91Owor5ZOAPkFpOwor5ZOBPkhpbjsKK+WTgj5TaGluOwor5ZOEPktvdTsKK+WThz5BaTsKK+WTiD5Hb3U7Civlk4k+U2FpOwor5ZOhPkluOwor5ZOiPlJvdTsKK+WTpT5LYTsKK+WTpj5HYTsKK+WTqD5TaG91Owor5ZOpPlJpOwor5ZOtPktva3U7Civlk64+S291Owor5ZOyPlRldHN1Owor5ZO6PkhvOwor5ZO9PktvdTsKK+WUhD5CYWk7CivllIY+U2E7CivllIc+U2hpbjsKK+WUjz5LaTsKK+WUkD5Ub3U7CivllJQ+R287CivllJY+QTsKK+WUrj5TaHV1Owor5ZSvPll1aTsKK+WUsT5TaG91Owor5ZSzPlJlaTsKK+WUuD5UZW47CivllLk+WW87CivllL4+RGE7CivllYA+R2FpOwor5ZWEPlRha3U7CivllYU+VGFrdTsKK+WVhj5TaG91Owor5ZWMPktvdTsKK+WVjz5Nb247CivllZM+S2VpOwor5ZWWPlRhbjsKK+WVlz5UYW47CivllZw+U2V0c3U7CivllZ0+S2E7CivllaM+S2FuOwor5ZW7PlNoaTsKK+WVvD5UZWk7Civllb4+U2h1dTsKK+WWgD5LYWt1Owor5ZaDPk5hbjsKK+WWhD5aZW47Civlloc+UmF0c3U7Civllok+S291Owor5ZaKPkthbjsKK+WWiz5DaG91Owor5ZaYPlplbjsKK+WWmT5LYWk7Civllpo+S2FuOwor5ZacPktpOwor5ZadPkthdHN1Owor5ZaePlNva3U7Civllp8+S2k7Civllqc+S2VuOwor5ZaoPlJ5b3U7Civllqk+WXU7Civllqo+U291Owor5ZarPktpdHN1Owor5ZasPkt5b3U7Civllq4+VGFuOwor5Za2PkVpOwor5ZeEPlNhOwor5ZeFPkt5dXU7Civll4c+U2hva3U7Civll5Q+U2hpbjsKK+WXmj5POwor5ZecPlNoaTsKK+WXnz5TYTsKK+WXoz5TaGk7Civll6Q+U2hpOwor5Ze3PkdvdTsKK+WXuT5SZW47Civll70+U29rdTsKK+WXvj5Tb3U7CivlmIY+VGFuOwor5ZiJPkthOwor5ZiUPk91Owor5ZiWPlNha3U7CivlmJc+U2hvdTsKK+WYmD5LeW87CivlmJs+TWE7CivlmKk+S2E7CivlmK8+U2hvdTsKK+WYsT5TaG9rdTsKK+WYsj5Ub3U7CivlmLQ+U2hpOwor5Zi2PlNlaTsKK+WYuD5CdTsKK+WZgj5Tb247CivlmYw+U291Owor5ZmOPkl0c3U7CivlmZA+S2k7CivlmZs+R291Owor5ZmkPktpbjsKK+WZqD5LaTsKK+WZqj5Tb3U7Civlmas+STsKK+WZrD5aZWk7CivlmbQ+RnVuOwor5Zm4PlRvbjsKK+WagD5EZWk7CivlmoY+S291Owor5ZqHPktha3U7Civlmoo+SGk7Civlmo8+VGVpOwor5ZqUPlRlaTsKK+WaoD5SeXV1Owor5ZqiPk5vdTsKK+WapT5FbjsKK+Warj5Lb3U7CivlmrQ+R2VuOwor5Zq2Pk91Owor5Zq8PlNoYWt1Owor5ZuAPlRlbjsKK+WbgT5TaG91Owor5ZuCPkdvdTsKK+Wbgz5Tb3U7Civlm4g+R2VpOwor5ZuOPlNvOwor5ZuRPlNob2t1Owor5ZuTPktldHN1Owor5ZuXPkk7Civlm5g+S2FpOwor5ZuaPlNodXU7Civlm5s+U2hpOwor5ZuePkthaTsKK+WboD5JbjsKK+Wboz5EYW47Civlm64+S2E7Civlm7A+S29uOwor5ZuyPkk7Civlm7M+VG87Civlm7k+UmVpOwor5Zu6PktvOwor5Zu9Pktva3U7Civlm78+WXV1Owor5ZyAPktva3U7CivlnIM+SG87CivlnIQ+R3lvOwor5ZyIPktlbjsKK+WciT5HeW87CivlnIs+S29rdTsKK+WcjT5JOwor5ZyPPktlbjsKK+Wckj5FbjsKK+Wckz5FbjsKK+Wclj5UbzsKK+WcmD5EYW47CivlnJw+S2FuOwor5ZyfPkRvOwor5ZynPkF0c3U7CivlnKg+WmFpOwor5ZytPktlaTsKK+WcsD5DaGk7CivlnLs+S2k7CivlnYA+U2hpOwor5Z2CPkhhbjsKK+Wdhz5LaW47CivlnYo+Qm91Owor5Z2OPkthbjsKK+Wdjz5IYWk7CivlnZA+WmE7CivlnZE+S291Owor5Z2hPkhhOwor5Z2kPktvbjsKK+Wdpj5UYW47Civlnak+S2FuOwor5Z2qPkhlaTsKK+Wdvz5GdTsKK+Wegj5TdWk7Civlnog+VGFpOwor5Z6JPkhvdTsKK+Weiz5LZWk7CivlnpM+R2FpOwor5Z6gPkdpbjsKK+Weoj5Lb3U7CivlnqM+RW47CivlnqQ+VGV0c3U7Civln4A+U3VpOwor5Z+DPkFpOwor5Z+GPktha3U7Civln4s+TWFpOwor5Z+OPkpvdTsKK+Wfkj5SYWNoaTsKK+Wfkz5SYWNoaTsKK+WflD5IbzsKK+WfnD5TaG87Civln58+SWtpOwor5Z+gPkZ1Owor5Z+jPlNhaTsKK+WftD5TaG9rdTsKK+Wftz5TaGl0c3U7Civln7k+QmFpOwor5Z+6PktpOwor5Z+8PktpOwor5aCAPkt1dHN1Owor5aCCPkRvdTsKK+WghT5LZW47CivloIY+VGFpOwor5aCKPkE7CivloIs+SG91Owor5aCVPkRhOwor5aCZPkluOwor5aCdPkthOwor5aChPkhvdTsKK+WgpD5UZWk7CivloKo+S2FuOwor5aCvPkd5b3U7CivloLA+RW47CivloLE+SG91Owor5aC0PkpvdTsKK+WgtT5UbzsKK+Wguj5LYWk7CivloL0+S291Owor5aGBPlJ1aTsKK+Whij5LYWk7CivloYs+RWk7CivloZE+U287CivloZI+U2hpOwor5aGUPlRvdTsKK+Whlz5UbzsKK+WhmD5Ub3U7CivloZk+S2FrdTsKK+Whmj5DaG91Owor5aGePlNva3U7CivloaI+TzsKK+WhqT5FbjsKK+Whqz5UZW47CivlobI+Sm91Owor5aG1PkppbjsKK+WhuT5aYW47Civlob4+SnVrdTsKK+Wigz5LeW91Owor5aKFPlNobzsKK+Wikz5CbzsKK+Wilz5ab3U7Civlopw+VHN1aTsKK+Winz5LeW87Civloqg+Qm9rdTsKK+Wiqz5TaHVuOwor5aKuPkRhOwor5aKzPkZ1bjsKK+WiuD5TaG87Civloro+T3U7Civlors+U2hvdTsKK+Wivj5Lb247Civlo4E+SGVraTsKK+WjhT5Zb3U7Civlo4c+RGFuOwor5aOKPkthaTsKK+WjjD5Kb3U7Civlo5E+R2FrdTsKK+Wjkz5BdHN1Owor5aOVPkdvdTsKK+WjmD5SdWk7Civlo5k+S291Owor5aOcPlRhbjsKK+Wjnj5LYWk7Civlo58+UnlvdTsKK+WjpD5Kb3U7Civlo6U+VGVuOwor5aOrPlNoaTsKK+WjrD5KaW47Civlo64+U291Owor5aOvPlNvdTsKK+WjsD5TZWk7Civlo7E+SWNoaTsKK+Wjsj5CYWk7Civlo7c+S287Civlo7k+SWNoaTsKK+Wjuj5LbzsKK+Wjuz5TZWk7Civlo7w+S29uOwor5aO9Pkp1Owor5aSCPkNoaTsKK+WkiT5IZW47CivlpIo+U3VpOwor5aSPPkthOwor5aSQPktlaTsKK+WklT5TZWtpOwor5aSWPkdhaTsKK+WkmD5Cb3U7CivlpJk+U2h1a3U7CivlpJo+VGE7CivlpJs+VGE7CivlpJw+WWE7CivlpKI+TXU7CivlpKU+S2E7CivlpKc+VGFpOwor5aSpPlRlbjsKK+Wkqj5UYTsKK+Wkqz5GdTsKK+WkrD5LZXRzdTsKK+WkrT5Zb3U7CivlpK4+T3U7CivlpLE+U2hpdHN1Owor5aSyPlRvdTsKK+Wktz5JOwor5aS4PktvOwor5aS+PktvdTsKK+WlhD5FbjsKK+Wlhz5LaTsKK+WliD5OYTsKK+WliT5Ib3U7CivlpY4+S2VpOwor5aWPPlNvdTsKK+WlkD5LYW47CivlpZE+U2V0c3U7CivlpZQ+SG9uOwor5aWVPkVraTsKK+Wllz5Ub3U7CivlpZg+Sm91Owor5aWaPktlaTsKK+WloD5UZW47CivlpaI+U2hhOwor5aWlPk91Owor5aWnPk91Owor5aWoPlNob3U7Civlpak+UmVuOwor5aWqPkRhdHN1Owor5aWsPlNob3U7Civlpa4+RnVuOwor5aWzPkpvOwor5aW0PkRvOwor5aW4PkthbjsKK+WlvT5Lb3U7CivlpoE+U2hha3U7CivlpoI+Sm87CivlpoM+SGk7CivlpoQ+Qm91Owor5aaKPk5pbjsKK+WmjT5LZW47CivlppM+S2k7CivlppY+WW91Owor5aaZPk15b3U7Civlpps+U2hpOwor5aadPlNvdTsKK+Wmoz5IaTsKK+WmpT5EYTsKK+WmqD5Cb3U7Civlpqw+VG87CivlprI+RGF0c3U7Civlprk+TWFpOwor5aa7PlNhaTsKK+Wmvj5TaG91Owor5aeGPkJvOwor5aeJPlNoaTsKK+Wniz5TaGk7Civlp5A+U287Civlp5E+S287Civlp5M+U2VpOwor5aeUPkk7Civlp5k+TmluOwor5aeaPllvdTsKK+WnnD5LeW91Owor5aelPkJvOwor5aemPkthbjsKK+WnqD5JOwor5aeqPlRldHN1Owor5aerPktpOwor5ae2Pk91Owor5ae7PkluOwor5ae/PlNoaTsKK+WogT5JOwor5aiDPkE7CivlqIk+SGVpOwor5aiRPlNoYTsKK+WomD5Kb3U7CivlqJo+TmFuOwor5aicPkRhOwor5aifPktlbjsKK+WooD5TaGluOwor5ailPkdhOwor5aipPkJlbjsKK+Worz5HbzsKK+WotT5TaHU7CivlqLY+U2h1Owor5ai8PlNob3U7CivlqYA+QTsKK+WpgT5Sb3U7CivlqYY+QmE7CivlqYk+RW47CivlqZo+S29uOwor5amiPkhpOwor5ammPkZ1Owor5amqPlJhbjsKK+WprD5JbjsKK+Wpvz5TZWk7CivlqpI+QmFpOwor5aqaPkJpOwor5aqbPkVuOwor5aq8Pk91Owor5aq9PkJvOwor5aq+PktvdTsKK+WrgT5LYTsKK+Wrgj5Tb3U7Civlq4k+U2hpdHN1Owor5auLPkpvdTsKK+WrjD5LZW47Civlq5A+Sm91Owor5auWPkh5b3U7Civlq5c+T3U7Civlq6E+Q2hha3U7Civlq6M+RW47Civlq6Y+S291Owor5aupPkRvbjsKK+Wruj5LYW47Civlq7s+S2FuOwor5ayJPktpOwor5ayLPlNlbjsKK+WsjD5LeW91Owor5ayWPkhlaTsKK+Wsoj5Kb3U7CivlrKo+SGluOwor5aysPlNodTsKK+WssD5FaTsKK+Wssj5Kb3U7CivlrL4+UmFuOwor5a2APlNvdTsKK+Wtgz5Kb3U7CivlrYU+U2VuOwor5a2QPlNoaTsKK+WtkT5HZXRzdTsKK+WtlD5Lb3U7CivlrZU+WW91Owor5a2XPkppOwor5a2YPlNvbjsKK+Wtmj5GdTsKK+Wtmz5Cb3RzdTsKK+WtnD5TaGk7CivlrZ0+S291Owor5a2fPk1vdTsKK+Wtoz5LaTsKK+WtpD5LbzsKK+WtpT5EbzsKK+Wtpj5HYWt1Owor5a2pPkthaTsKK+Wtqz5Tb247CivlrbA+SnVrdTsKK+WtsT5TZW47CivlrbM+U2hpOwor5a21PkZ1Owor5a24Pkdha3U7Civlrbo+SnU7CivlroA+QmVuOwor5a6DPlRhOwor5a6FPlRha3U7Civlroc+VTsKK+WuiD5TaHU7Civlrok+QW47Civlros+U291Owor5a6MPkthbjsKK+WujT5OaWt1Owor5a6PPktvdTsKK+WulT5Ub3U7Civlrpc+U2h1dTsKK+WumD5LYW47Civlrpk+Q2h1dTsKK+Wumj5UZWk7Civlrps+RW47Civlrpw+R2k7Civlrp0+SG91Owor5a6fPkppdHN1Owor5a6iPkt5YWt1Owor5a6jPlNlbjsKK+WupD5TaGl0c3U7CivlrqU+WXV1Owor5a6mPkthbjsKK+Wurj5LeXV1Owor5a6wPlNhaTsKK+Wusz5HYWk7CivlrrQ+RW47CivlrrU+U2hvdTsKK+Wutj5LYTsKK+WuuD5TaGluOwor5a65PllvdTsKK+Wuvz5TaHVrdTsKK+Wvgj5KYWt1Owor5a+DPkVuOwor5a+EPktpOwor5a+FPkluOwor5a+GPk1pdHN1Owor5a+HPktvdTsKK+WviT5LYWt1Owor5a+MPkZ1Owor5a+QPkJpOwor5a+SPkthbjsKK+Wvkz5HdXU7Civlr5Q+U2hva3U7Civlr5s+S2FuOwor5a+dPlNoaW47Civlr54+QmFrdTsKK+Wvnz5TYXRzdTsKK+WvoT5LYTsKK+Wvoj5TaGluOwor5a+kPkdvOwor5a+lPlJ5b3U7Civlr6Y+Sml0c3U7Civlr6c+TmVpOwor5a+oPlNhaTsKK+WvqT5TaGluOwor5a+rPlNoYTsKK+Wvrj5SeW91Owor5a+wPkthbjsKK+Wvsz5Ib3U7Civlr7U+Q2hvdTsKK+Wvtj5Ib3U7Civlr7g+U3VuOwor5a+6PkppOwor5a++PlRhaTsKK+Wvvz5KdTsKK+WwgT5GdXU7CivlsII+U2VuOwor5bCEPlNoYTsKK+WwhT5Lb2t1Owor5bCGPlNob3U7CivlsIc+U2hvdTsKK+WwiD5TZW47CivlsIk+STsKK+Wwij5Tb247CivlsIs+SmluOwor5bCNPlRhaTsKK+Wwjj5Eb3U7CivlsI8+U2hvdTsKK+WwkT5TaG91Owor5bCTPkppOwor5bCWPlNlbjsKK+Wwmj5TaG91Owor5bCgPlNlbjsKK+Wwoj5PdTsKK+WwpD5ZdXU7CivlsKg+Qm91Owor5bCtPkd5b3U7CivlsLE+U2h1dTsKK+WwuD5TaGk7CivlsLk+SW47CivlsLo+U2hha3U7CivlsLs+S291Owor5bC8Pk5pOwor5bC9PkppbjsKK+Wwvj5CaTsKK+Wwvz5OeW91Owor5bGAPkt5b2t1Owor5bGBPkhpOwor5bGFPkt5bzsKK+Wxhj5LYWk7CivlsYg+S3V0c3U7CivlsYo+S2FpOwor5bGLPk9rdTsKK+WxjT5TaGk7CivlsY4+U2hpOwor5bGPPkhlaTsKK+WxkD5HZWtpOwor5bGRPlNldHN1Owor5bGTPktpOwor5bGVPlRlbjsKK+Wxnj5ab2t1Owor5bGgPlRvOwor5bGhPlJ1Owor5bGkPlNvdTsKK+WxpT5SaTsKK+WxrD5ab2t1Owor5bGuPlNhOwor5bGvPlRvbjsKK+WxsT5TYW47Civlsbk+S2l0c3U7Civlsow+S3l1dTsKK+WykD5LaTsKK+WykT5TaGluOwor5bKUPlNhOwor5bKhPktvdTsKK+WyqD5TbzsKK+WyqT5HYW47Civlsqs+U2h1dTsKK+WyrD5Lb3U7CivlsrE+VGFpOwor5bKzPkdha3U7CivlsrY+SGFrdTsKK+Wytz5CaW47Civlsrg+R2FuOwor5bK7PkppOwor5bK+PlNlbjsKK+Wzhz5Lb3U7Civls5k+Smk7Civls6E+S3lvdTsKK+WzqD5HYTsKK+WzqT5HYTsKK+Wzqj5Zb2t1Owor5bOtPlNob3U7Civls68+SG91Owor5bOwPkhvdTsKK+Wztj5Ub3U7Civls7o+S291Owor5bO7PlNodW47Civls70+S3lvdTsKK+W0hz5TdXU7CivltIs+S2E7CivltI4+S2k7CivltJE+S29uOwor5bSUPlNhaTsKK+W0lT5HYWk7CivltJY+R2FpOwor5bSXPktvdTsKK+W0mD5Sb247CivltJk+Um9uOwor5bSaPlJ5b3U7CivltJs+S3V0c3U7CivltJ8+R2luOwor5bSiPlNvdTsKK+W0qT5Ib3U7CivltYs+Qmk7CivltYw+S2FuOwor5bWOPkd1dTsKK+W1kD5SYW47CivltZI+R2FuOwor5bWcPktpOwor5bWpPlN1dTsKK+W1rD5LYWk7Civlta8+U2E7CivltbM+U2E7CivltoI+U2hvdTsKK+W2hD5TYW47Civltoc+S3U7Civltos+VG91Owor5baMPlRvdTsKK+W2kD5SeXV1Owor5badPlRvdTsKK+W2oj5HeW91Owor5basPkdpOwor5bauPktlbjsKK+W2tz5HaTsKK+W2uj5SZWk7Civltrw+U2hvOwor5ba9Pkdha3U7Civlt4k+U2FuOwor5beMPkdhbjsKK+W3jT5HaTsKK+W3kj5SYW47Civlt5M+VGVuOwor5beWPkdhbjsKK+W3mz5TZW47Civlt50+U2VuOwor5beePlNodXU7Civlt6E+SnVuOwor5bejPlNvdTsKK+W3pT5Lb3U7Civlt6Y+U2E7Civlt6c+S291Owor5beoPkt5bzsKK+W3qz5GdTsKK+W3rj5TaGk7Civlt7E+S2k7Civlt7I+STsKK+W3sz5TaGk7Civlt7Q+SGE7Civlt7U+U2hpOwor5be3PktvdTsKK+W3uz5LYW47Civlt70+U29uOwor5be+PktpbjsKK+W4gj5TaGk7CivluIM+RnU7CivluIY+SGFuOwor5biLPlNoaTsKK+W4jD5LaTsKK+W4kT5EbzsKK+W4lj5Kb3U7CivluJk+Q2hpdHN1Owor5biaPlNvdTsKK+W4mz5IYWt1Owor5bidPlRlaTsKK+W4pT5Tb3RzdTsKK+W4qz5TaGk7CivluK0+U2VraTsKK+W4rz5UYWk7CivluLA+S2k7CivluLM+Q2hvdTsKK+W4tj5UYWk7CivluLc+STsKK+W4uD5Kb3U7CivluL0+Qm91Owor5bmAPlRlaTsKK+W5gz5JOwor5bmEPkFrdTsKK+W5hT5GdWt1Owor5bmHPkhvdTsKK+W5jD5Lb3U7CivluY4+QmVraTsKK+W5lD5CYW47CivluZU+TWFrdTsKK+W5lz5LYWt1Owor5bmfPlNoaTsKK+W5oT5IYW47CivluaI+VG91Owor5bmjPkhlaTsKK+W5pD5IZWk7CivlubI+S2FuOwor5bmzPkhlaTsKK+W5tD5OZW47CivlubU+S2VuOwor5bm2PkhlaTsKK+W5uD5Lb3U7Civlubk+S2FuOwor5bm6PllvdTsKK+W5uz5HZW47Civlubw+WW91Owor5bm9Pll1dTsKK+W5vj5LaTsKK+W5vz5HZW47CivluoE+Q2hvdTsKK+W6gz5Lb3U7CivluoQ+U291Owor5bqHPkhpOwor5bqKPlNob3U7Civluo8+Sm87CivlupU+VGVpOwor5bqWPkhvdTsKK+W6lz5UZW47Civlupo+S291Owor5bqcPkZ1Owor5bqgPlNob3U7CivluqY+VGFrdTsKK+W6pz5aYTsKK+W6qz5LbzsKK+W6rT5UZWk7CivlurU+QW47CivlurY+U2hvOwor5bq3PktvdTsKK+W6uD5Zb3U7Civlu4E+U2hpOwor5buCPlNob3U7Civlu4M+SGFpOwor5buIPkthOwor5buJPlJlbjsKK+W7ij5Sb3U7Civlu5A+S3l1dTsKK+W7kz5LYWt1Owor5buWPlJ5b3U7Civlu5o+WnU7Civlu5s+VGVuOwor5budPlNoaTsKK+W7nz5CeW91Owor5bugPlNob3U7Civlu6E+QnU7Civlu6I+SGFpOwor5bujPktvdTsKK+W7qD5LYWk7Civlu6k+UmluOwor5busPlJ5bzsKK+W7sD5DaG91Owor5buxPllvdTsKK+W7sz5DaG91Owor5bu0PkluOwor5bu2PkVuOwor5bu3PlRlaTsKK+W7uD5UZWtpOwor5bu6PktlbjsKK+W7uz5LYWk7Civlu7w+RGFpOwor5bu+Pkt5b3U7Civlu78+SnV1Owor5byBPkJlbjsKK+W8gz5LaTsKK+W8hD5Sb3U7CivlvIk+Sm91Owor5byKPkhlaTsKK+W8iz5Zb2t1Owor5byMPkl0c3U7CivlvI0+Tmk7CivlvI8+U2hpa2k7CivlvJA+Tmk7CivlvJE+U2hpOwor5byTPkt5dXU7CivlvJQ+Q2hvdTsKK+W8lT5JbjsKK+W8lz5GdXRzdTsKK+W8mD5Lb3U7CivlvJs+U2hpOwor5byfPlRlaTsKK+W8pT5NaTsKK+W8pj5HZW47CivlvKc+S287CivlvKk+RG87CivlvK0+Qmk7CivlvK8+V2FuOwor5byxPkpha3U7CivlvLU+Q2hvdTsKK+W8tz5LeW91Owor5by4PkhvdTsKK+W8vD5IaXRzdTsKK+W8vj5EYW47CivlvYE+U2VpOwor5b2IPkRhbjsKK+W9ij5LeW91Owor5b2MPkJpOwor5b2OPldhbjsKK+W9kT5LZWk7CivlvZM+VG91Owor5b2WPlRhbjsKK+W9lz5TdWk7CivlvZk+STsKK+W9nD5JOwor5b2dPkk7CivlvaE+U2FuOwor5b2iPktlaTsKK+W9pj5HZW47Civlvak+U2FpOwor5b2qPkh5b3U7Civlvas+Q2hvdTsKK+W9rD5IaW47Civlva0+SG91Owor5b2wPlNob3U7CivlvbE+RWk7CivlvbM+VGVraTsKK+W9tz5Ib3U7Civlvbk+WWFrdTsKK+W9vD5IaTsKK+W9vz5GdXRzdTsKK+W+gD5PdTsKK+W+gT5TZWk7CivlvoI+U287CivlvoM+T3U7CivlvoQ+S2VpOwor5b6FPlRhaTsKK+W+hz5TaHVuOwor5b6IPktvbjsKK+W+ij5LYWk7Civlvos+Uml0c3U7Civlvow+R287CivlvpA+Sm87CivlvpE+S2VpOwor5b6SPlRvOwor5b6TPkp1dTsKK+W+lz5Ub2t1Owor5b6YPkhhaTsKK+W+mT5TaGk7Civlvp4+SnV1Owor5b6gPlJhaTsKK+W+oT5HeW87Civlvqg+S291Owor5b6pPkZ1a3U7Civlvqo+SnVuOwor5b6tPllvdTsKK+W+rj5CaTsKK+W+sz5Ub2t1Owor5b60PkNob3U7Civlvrk+VGV0c3U7Civlvrw+S3lvdTsKK+W+vT5LaTsKK+W/gz5TaGluOwor5b+FPkhpdHN1Owor5b+MPktpOwor5b+NPk5pbjsKK+W/lj5Tb247Civlv5c+U2hpOwor5b+YPkJvdTsKK+W/mT5Cb3U7Civlv5w+T3U7Civlv50+VGVuOwor5b+gPkNodXU7Civlv6Q+R287Civlv6s+S2FpOwor5b+wPlN1aTsKK+W/sT5TaGluOwor5b+1Pk5lbjsKK+W/uD5KaWt1Owor5b+7PktpbjsKK+W/vT5Lb3RzdTsKK+W/vz5GdW47CivmgI4+U2hpbjsKK+aAjz5Zb3U7CivmgJA+S291Owor5oCSPkRvOwor5oCVPkhhOwor5oCWPkZ1Owor5oCZPktvOwor5oCbPkRhdHN1Owor5oCcPlJlaTsKK+aAnT5TaGk7CivmgKA+VGFpOwor5oChPkk7CivmgKU+S3l1dTsKK+aApj5Ib3U7CivmgKc+U2VpOwor5oCoPkVuOwor5oCpPkppOwor5oCqPkthaTsKK+aAqz5GdXRzdTsKK+aArz5LeW91Owor5oCxPlNvdTsKK+aBgT5JbjsKK+aBgj5KdW47CivmgYM+Smk7CivmgYY+S291Owor5oGKPkt5b3U7CivmgYs+UmVuOwor5oGNPktvdTsKK+aBkD5LeW91Owor5oGSPktvdTsKK+aBlT5KbzsKK+aBmT5Zb3U7CivmgZo+STsKK+aBnz5LeW91Owor5oGgPkthaTsKK+aBoj5LYWk7CivmgaM+U2hpOwor5oGkPkp1dHN1Owor5oGlPkNoaTsKK+aBqD5Lb247Civmgak+T247Civmgao+S2FrdTsKK+aBqz5Eb3U7Civmgaw+VGVuOwor5oGtPkt5b3U7Civmga8+U29rdTsKK+aBsD5Lb3U7CivmgbU+S2VpOwor5oG3Pkt5dXU7CivmgoE+RW47CivmgoM+S29uOwor5oKEPlNob3U7Civmgok+U2hpdHN1Owor5oKLPlJpbjsKK+aCjD5UZWk7Civmgo0+S2FuOwor5oKSPll1dTsKK+aClD5LYWk7CivmgpY+SGFpOwor5oKXPkJhbjsKK+aCmj5TaG91Owor5oKbPlNlbjsKK+aCnz5HbzsKK+aCoD5ZdXU7CivmgqM+S2FuOwor5oKmPkV0c3U7Civmgqc+Umk7Civmgqk+Tm91Owor5oKqPkFrdTsKK+aCsj5IaTsKK+aCsz5Ub2t1Owor5oK0PlN1aTsKK+aCtT5DaG91Owor5oK2Pk1vbjsKK+aCuD5LaTsKK+aCvD5Ub3U7Civmgr0+U2VpOwor5oOFPkpvdTsKK+aDhj5DaHV1Owor5oOHPlRvbjsKK+aDkT5XYWt1Owor5oOTPktlbjsKK+aDmD5Cb3U7Civmg5o+S290c3U7Civmg5w+U2VraTsKK+aDnz5JOwor5oOgPktlaTsKK+aDoT5POwor5oOjPlNvdTsKK+aDpz5LdTsKK+aDqD5TYW47Civmg7A+RGE7Civmg7E+Tm91Owor5oOzPlNvdTsKK+aDtD5adWk7Civmg7Y+S291Owor5oO3PlNodW47Civmg7k+SmE7Civmg7o+U2VpOwor5oO7PlNva3U7CivmhIA+U2hvdTsKK+aEgT5TaHV1Owor5oSDPktlbjsKK+aEhj5LZW47CivmhIg+WXU7CivmhIk+WXU7CivmhI0+QmluOwor5oSOPkh5b2t1Owor5oSPPkk7CivmhJU+R2FrdTsKK+aEmj5HdTsKK+aEmz5BaTsKK+aEnz5LYW47CivmhKE+U291Owor5oSnPktpOwor5oSoPktha3U7CivmhKw+U287CivmhLQ+U291Owor5oS8PlNoaW47CivmhL0+SGFrdTsKK+aEvj5LaTsKK+aEvz5HZW47CivmhYI+WW91Owor5oWEPlJpdHN1Owor5oWHPkluOwor5oWIPkppOwor5oWKPktlbjsKK+aFiz5UYWk7CivmhYw+S291Owor5oWNPlVuOwor5oWOPlNoaW47CivmhZM+SHlvdTsKK+aFlT5CbzsKK+aFmD5TYW47CivmhZk+WmFuOwor5oWaPlphbjsKK+aFnT5Ub2t1Owor5oWfPkRvdTsKK+aFoj5NYW47CivmhaM+S2FuOwor5oWlPlpvdTsKK+aFpz5LZWk7Civmhag+R2FpOwor5oWrPlNob3U7Civmha4+UnlvOwor5oWvPlNob3U7CivmhbA+STsKK+aFsT5UYW47CivmhbM+S2FuOwor5oW0PlNob3U7CivmhbU+WW91Owor5oW2PktlaTsKK+aFtz5Lb3U7Civmhb4+WW9rdTsKK+aGgj5ZdXU7Civmhoc+S2VpOwor5oaKPkhhaTsKK+aGjj5ab3U7CivmhpA+UmVuOwor5oaRPkh5b3U7CivmhpQ+U2hvdTsKK+aGlj5HaW47Civmhpk+S2k7Civmhpo+VGFuOwor5oakPkZ1bjsKK+aGpz5Eb3U7Civmhqk+S2VpOwor5oarPkJpbjsKK+aGrD5LZWk7Civmhq4+QnU7CivmhrI+S2VuOwor5oa2Pk9rdTsKK+aGuj5UYW47Civmhr4+S2FuOwor5oeDPktpbjsKK+aHhj5Tb3U7Civmh4c+S29uOwor5oeIPkthaTsKK+aHiT5Zb3U7Civmh4o+T3U7Civmh4s+Qm91Owor5oeMPkVraTsKK+aHjT5SaW47Civmh5A+S2FpOwor5oejPk1vbjsKK+aHpj5EYTsKK+aHsj5DaG91Owor5oe0PlphbjsKK+aHtj5SYW47Civmh7c+S2FpOwor5oe4PktlbjsKK+aHuj5aYW47Civmh7w+S3U7Civmh70+S2FuOwor5oe+PlNob3U7Civmh78+STsKK+aIgD5SZW47CivmiIg+S2E7CivmiIk+RXRzdTsKK+aIij5CbzsKK+aIjD5KdXRzdTsKK+aIjT5KdTsKK+aIjj5KdXU7CivmiJA+U2VpOwor5oiRPkdhOwor5oiSPkthaTsKK+aIlD5TYW47CivmiJY+V2FrdTsKK+aImj5TZWtpOwor5oibPkthdHN1Owor5oidPlpva3U7CivmiJ4+S2F0c3U7CivmiJ8+R2VraTsKK+aIoT5LYW47CivmiKY+U2VuOwor5oiqPlNldHN1Owor5oiuPlJpa3U7CivmiK8+R2k7CivmiLA+U2VuOwor5oiyPkdpOwor5oizPlRha3U7CivmiLQ+VGFpOwor5oi4PktvOwor5oi7PlJlaTsKK+aIvz5Cb3U7CivmiYA+U2hvOwor5omBPkhlbjsKK+aJhz5TZW47CivmiYg+S287CivmiYk+SGk7CivmiYs+U2h1Owor5omNPlNhaTsKK+aJjj5TYXRzdTsKK+aJkz5EYTsKK+aJlT5GdXRzdTsKK+aJmD5UYWt1Owor5ombPktvdTsKK+aJnj5LYW47CivmiaA+U2E7CivmiaM+S291Owor5omuPkZ1bjsKK+aJsT5Tb3U7CivmibY+RnU7Civmibk+SGk7Civmibw+QWt1Owor5om+PkthOwor5om/PlNob3U7CivmioA+R2k7CivmioI+S3lvdTsKK+aKgz5CZW47CivmioQ+U2hvdTsKK+aKiT5LZXRzdTsKK+aKij5IYTsKK+aKkT5Zb2t1Owor5oqSPkpvOwor5oqTPlNvdTsKK+aKlD5Ib3U7CivmipU+VG91Owor5oqWPlRvdTsKK+aKlz5Lb3U7Civmipg+U2V0c3U7Civmips+SG91Owor5oqcPkJhdHN1Owor5oqePlRha3U7Civmiqs+SGk7Civmiqw+VGFpOwor5oqxPkhvdTsKK+aKtT5UZWk7Civmirk+TWF0c3U7Civmirs+U2hpbjsKK+aKvD5PdTsKK+aKvT5DaHV1Owor5ouCPkZ1dHN1Owor5ouFPlRhbjsKK+aLhj5UYWt1Owor5ouHPkJvOwor5ouIPkRlbjsKK+aLiT5SYXRzdTsKK+aLij5GdTsKK+aLjD5IYW47Civmi40+SGFrdTsKK+aLjz5EYTsKK+aLkD5LYWk7Civmi5E+S2FuOwor5ouSPkt5bzsKK+aLkz5UYWt1Owor5ouUPkJhdHN1Owor5ouXPk91Owor5ouYPktvdTsKK+aLmT5TZXRzdTsKK+aLmz5TaG91Owor5oucPkhhaTsKK+aLnT5IYWk7Civmi6A+S3lvOwor5ouhPktha3U7Civmi6w+S2F0c3U7Civmi60+U2hpa2k7Civmi64+S2l0c3U7Civmi68+Sm91Owor5ouxPkt5b3U7Civmi7M+S2VuOwor5ou1PlNvbjsKK+aLtj5TYXRzdTsKK+aLtz5Hb3U7Civmi74+U2h1dTsKK+aLvz5EYTsKK+aMgT5KaTsKK+aMgj5LZWk7CivmjIc+U2hpOwor5oyIPktldHN1Owor5oyJPkFuOwor5oyMPktha3U7CivmjJE+Q2hvdTsKK+aMmT5LeW87CivmjJ8+S3lvdTsKK+aMpz5LdTsKK+aMqD5BaTsKK+aMqz5aYTsKK+aMrz5TaGluOwor5oy6PlRlaTsKK+aMvT5CYW47CivmjL4+S3lvdTsKK+aMvz5Tb3U7CivmjYk+U29rdTsKK+aNjD5IYXRzdTsKK+aNjT5LYW47CivmjY8+RGV0c3U7CivmjZA+RW47CivmjZU+SG87CivmjZc+SG87CivmjZw+U291Owor5o2nPkhvdTsKK+aNqD5TaGE7Civmjak+UmV0c3U7Civmjas+TW9uOwor5o2uPkt5bzsKK+aNsj5LZW47CivmjbY+U3VpOwor5o23PlNob3U7Civmjbo+TmF0c3U7Civmjbs+TmVuOwor5o6APktpbjsKK+aOgz5Tb3U7Civmjog+SnU7Civmjok+VG91Owor5o6MPlNob3U7Civmjo4+S2k7Civmjo8+VG91Owor5o6SPkhhaTsKK+aOlj5Fa2k7Civmjpg+S3V0c3U7Civmjps+S2E7Civmjp8+VG91Owor5o6gPlJ5YWt1Owor5o6hPlNhaTsKK+aOoj5UYW47CivmjqM+U2VpOwor5o6lPlNldHN1Owor5o6nPktvdTsKK+aOqD5TdWk7Civmjqk+RW47Civmjqo+U287Civmjqs+U291Owor5o6sPktpa3U7CivmjrI+S2VpOwor5o60Pktha3U7Civmjrs+U291Owor5o6+PkVuOwor5o+APkthbjsKK+aPgz5TZW47Civmj4Q+WXU7Civmj4Y+S2k7Civmj4k+SnV1Owor5o+PPkJ5b3U7Civmj5A+VGVpOwor5o+SPlNvdTsKK+aPlj5ZdXU7Civmj5o+WW91Owor5o+bPkthbjsKK+aPoT5Ba3U7Civmj6M+U2hpOwor5o+pPkthaTsKK+aPrj5LaTsKK+aPtD5FbjsKK+aPtj5ZYTsKK+aPuj5Zb3U7CivmkIY+S291Owor5pCNPlNvbjsKK+aQjz5IYWt1Owor5pCTPlNhOwor5pCWPllvdTsKK+aQlz5Ub3U7CivmkJw+U291Owor5pCmPkpha3U7CivmkKg+VG91Owor5pCsPkhhbjsKK+aQrT5Ub3U7CivmkLQ+S2VuOwor5pC2PlNob3U7CivmkLo+S2VpOwor5pC+PlNha3U7CivmkYI+U2V0c3U7CivmkY4+S3l1dTsKK+aRmD5UZWtpOwor5pGnPlNhaTsKK+aRqT5NYTsKK+aRrz5TaGk7CivmkbY+VGFuOwor5pG4Pk1vOwor5pG6PlNob3U7CivmkoM+R2VraTsKK+aSiD5Sb3U7CivmkpI+U2FuOwor5pKTPkRvdTsKK+aSlT5TZWk7Civmkpo+TmVuOwor5pKePlNodTsKK+aSpD5UZXRzdTsKK+aSpT5IYXRzdTsKK+aSqT5SeW91Owor5pKrPkJ1Owor5pKtPkhhOwor5pKuPlNhdHN1Owor5pKwPlNhbjsKK+aSsj5Cb2t1Owor5pK5Pktha3U7Civmkrs+VGFjaGk7Civmkrw+S2FuOwor5pOBPllvdTsKK+aTgj5SYWk7Civmk4U+U2VuOwor5pOHPlRha3U7Civmk40+U291Owor5pOSPktpbjsKK+aTlD5UYW47Civmk5g+SGFrdTsKK+aTmj5LeW87Civmk6A+U2VpOwor5pOhPlRhaTsKK+aToj5UZWtpOwor5pOjPlRvdTsKK+aTpj5TYXRzdTsKK+aTpz5LeW87Civmk6w+R2k7Civmk68+SGluOwor5pOxPktha3U7Civmk7I+VGVraTsKK+aTtD5LYWt1Owor5pO2PlNlbjsKK+aTuj5IYWk7Civmk70+Unlha3U7Civmk74+Sm91Owor5pSAPkhhbjsKK+aUhT5TYW47CivmlJg+Sm91Owor5pScPktlaTsKK+aUnT5TZXRzdTsKK+aUoz5SZW47CivmlKQ+VGFuOwor5pSqPktha3U7CivmlKs+S2FrdTsKK+aUrD5SYW47CivmlK8+U2hpOwor5pS0Pkhva3U7CivmlLU+Qm9rdTsKK+aUtj5TaHV1Owor5pS3PktvdTsKK+aUuD5ZdXU7CivmlLk+S2FpOwor5pS7PktvdTsKK+aUvj5Ib3U7CivmlL8+U2VpOwor5pWFPktvOwor5pWIPktvdTsKK+aVjT5KbzsKK+aVjz5CaW47CivmlZE+S3l1dTsKK+aVlT5DaG9rdTsKK+aVlj5Hb3U7CivmlZc+SGFpOwor5pWYPkpvOwor5pWZPkt5b3U7CivmlZ0+SGVpOwor5pWePlNob3U7CivmlaI+S2FuOwor5pWjPlNhbjsKK+aVpj5Ub247Civmlaw+S2VpOwor5pWwPlN1dTsKK+aVsj5Lb3U7CivmlbQ+U2VpOwor5pW1PlRla2k7Civmlbc+RnU7Civmlbg+U3V1Owor5paCPlJlbjsKK+aWgz5IZWk7Civmloc+QnVuOwor5paIPkdha3U7Civmlok+U2VpOwor5paMPkhpbjsKK+aWjj5TYWk7CivmlpA+SGk7CivmlpE+SGFuOwor5paXPlRvOwor5paZPlJ5b3U7Civmlps+S29rdTsKK+aWnD5TaGE7Civmlp8+U2hpbjsKK+aWoT5BdHN1Owor5pakPktpbjsKK+aWpT5TZWtpOwor5panPkZ1Owor5parPlNoYWt1Owor5pasPlphbjsKK+aWrT5EYW47Civmlq8+U2hpOwor5pawPlNoaW47Civmlrc+RGFuOwor5pa5PkhvdTsKK+aWvD5POwor5pa9PlNoaTsKK+aXgT5Ib3U7Civml4M+U2VuOwor5peEPkJvdTsKK+aXhT5SeW87Civml4Y+SGFpOwor5peLPlNlbjsKK+aXjD5TZWk7Civml48+Wm9rdTsKK+aXkj5SeXV1Owor5peXPktpOwor5peZPkhhbjsKK+aXmz5IYW47Civml6A+QnU7Civml6E+S2k7Civml6I+S2k7Civml6U+TmljaGk7Civml6Y+VGFuOwor5penPkt5dXU7Civml6g+U2hpOwor5pepPlNvdTsKK+aXrD5KdW47Civml60+S3lva3U7Civml7E+S2FuOwor5pe6Pk91Owor5pe7PkJpbjsKK+aYgj5Lb3U7CivmmIM+U29rdTsKK+aYhj5Lb247CivmmIc+U2hvdTsKK+aYij5Lb3U7CivmmIw+U2hvdTsKK+aYjj5NZWk7CivmmI8+S29uOwor5piTPkVraTsKK+aYlD5TZWtpOwor5picPllvdTsKK+aYnz5TZWk7CivmmKA+RWk7CivmmKU+U2h1bjsKK+aYpz5NYWk7CivmmKg+U2FrdTsKK+aYrT5TaG91Owor5pivPlplOwor5pi0PkJvdTsKK+aYtT5KaXRzdTsKK+aYtj5DaG91Owor5pi8PkNodXU7CivmmL8+S291Owor5pmBPkNob3U7CivmmYI+Smk7CivmmYM+S291Owor5pmEPktvdTsKK+aZiT5TaGluOwor5pmLPlNoaW47CivmmY8+QW47CivmmZI+U2FpOwor5pmdPkNodXU7CivmmZ4+S2k7CivmmZ8+U2VpOwor5pmiPlNldHN1Owor5pmkPkdvOwor5pmmPkthaTsKK+aZpz5Lb3U7Civmmag+U2hpbjsKK+aZqT5CYW47Civmma4+RnU7Civmma8+S2VpOwor5pmwPlNla2k7CivmmbQ+U2VpOwor5pm2PlNob3U7Civmmbo+Q2hpOwor5pqBPkd5b3U7CivmmoM+SGk7CivmmoQ+S2VuOwor5pqHPkthOwor5pqIPlVuOwor5pqJPktpOwor5pqOPkVpOwor5pqRPlNobzsKK+aalj5EYW47Civmmpc+QW47Civmmpg+WW91Owor5pqdPk1laTsKK+aaoj5DaG91Owor5pqmPlJla2k7Civmmqs+WmFuOwor5pquPkJvOwor5pq0PkJvdTsKK+aauD5SeW91Owor5pq5PlNlbjsKK+aavD5IZXRzdTsKK+aavj5Ub247Civmm4E+S2k7Civmm4Q+WW91Owor5puHPkRvbjsKK+abiT5HeW91Owor5puWPkFpOwor5puZPlNobzsKK+abmj5Cb3U7Civmm5w+WW91Owor5pudPkJha3U7Civmm6A+S291Owor5pumPkdpOwor5pupPkRvdTsKK+absD5FdHN1Owor5puyPkt5b2t1Owor5puzPkVpOwor5pu0PktvdTsKK+abtT5FaTsKK+abtz5LYXRzdTsKK+abuD5TaG87Civmm7k+U291Owor5pu8PkJhbjsKK+abvT5abzsKK+abvj5TbzsKK+abvz5UYWk7CivmnIA+U2FpOwor5pyDPkthaTsKK+aciD5HZXRzdTsKK+aciT5ZdXU7CivmnIs+SG91Owor5pyNPkZ1a3U7CivmnI8+SGk7CivmnJQ+U2FrdTsKK+aclT5DaGluOwor5pyWPlJvdTsKK+aclz5Sb3U7CivmnJs+Qm91Owor5pydPkNob3U7CivmnJ4+S2k7CivmnJ8+S2k7CivmnKY+Qm91Owor5pynPlJvdTsKK+acqD5Cb2t1Owor5pyqPk1pOwor5pyrPk1hdHN1Owor5pysPkhvbjsKK+acrT5TYXRzdTsKK+acrj5KdXRzdTsKK+acsT5TaHU7CivmnLQ+Qm9rdTsKK+actj5EYTsKK+actz5Ub3U7CivmnLg+Unlva3U7CivmnLo+S2k7CivmnL0+S3l1dTsKK+acvz5TaGk7CivmnYY+S2FuOwor5p2JPlNhbjsKK+adjj5SaTsKK+adjz5LeW91Owor5p2QPlphaTsKK+adkT5Tb247CivmnZM+SHlvdTsKK+adlj5Kb3U7CivmnZk+WW9rdTsKK+adnD5EbzsKK+adnj5LbzsKK+adnz5Tb2t1Owor5p2gPktvdTsKK+adoT5Kb3U7CivmnaU+UmFpOwor5p2qPkJ5b3U7Civmna0+S291Owor5p2vPkhhaTsKK+adsD5LZXRzdTsKK+adsT5Ub3U7CivmnbI+S291Owor5p2zPllvdTsKK+adtT5TaG87Civmnbc+SGE7Civmnbw+Q2hvOwor5p2+PlNob3U7Civmnb8+SGFuOwor5p6FPktlaTsKK+aehz5IaTsKK+aeiT5PdTsKK+aeiz5Ib3U7Civmnow+RnVuOwor5p6QPlNla2k7CivmnpU+Q2hpbjsKK+aelz5SaW47Civmnpo+TWFpOwor5p6cPkthOwor5p6dPlNoaTsKK+aeoj5TdXU7CivmnqY+Um87Civmnqk+U2hvdTsKK+aerz5LbzsKK+aesz5LaTsKK+aetD5LYWk7CivmnrY+S2E7Civmnrc+S2E7Civmnrg+S3U7Civmnrk+SG91Owor5p+BPlRhOwor5p+EPkhlaTsKK+afhj5Sb3U7Civmn4o+U2h1dTsKK+afjj5GdTsKK+afjz5IYWt1Owor5p+QPkJvdTsKK+afkT5LYW47Civmn5M+U2VuOwor5p+UPk55dXU7Civmn5g+U2hhOwor5p+aPll1dTsKK+afnT5UYWt1Owor5p+ePlNha3U7Civmn6I+VGVpOwor5p+kPlNhOwor5p+nPktvOwor5p+pPkt5dXU7Civmn6w+S2FuOwor5p+uPlRvdHN1Owor5p+vPkthOwor5p+xPkNodXU7Civmn7M+Unl1dTsKK+aftD5TYWk7Civmn7U+U2FrdTsKK+afuz5TYTsKK+afvj5LeXV1Owor5p+/PlNoaTsKK+aghD5FaTsKK+agkz5TZW47CivmoJY+U2VpOwor5qCXPlJpdHN1Owor5qCePkthbjsKK+agoT5Lb3U7CivmoKI+SGFrdTsKK+agqT5LdTsKK+agqj5DaHU7CivmoKs+U29uOwor5qCyPkdvdTsKK+agtD5TZW47CivmoLg+S2FrdTsKK+aguT5Lb247CivmoLw+S291Owor5qC9PlNhaTsKK+ahgD5LZXRzdTsKK+ahgT5Lb3U7CivmoYI+S2VpOwor5qGDPlRvdTsKK+ahhj5LeW91Owor5qGIPkFuOwor5qGNPktvOwor5qGOPlNoaXRzdTsKK+ahkD5Eb3U7CivmoZE+U291Owor5qGTPkthbjsKK+ahlD5LaXRzdTsKK+ahmT5VOwor5qGcPk91Owor5qGfPlNhbjsKK+ahoz5Ub3U7Civmoac+S2FpOwor5qG0PkZ1Owor5qG2PlRvdTsKK+ahtz5LYWt1Owor5qG+Pkt1bjsKK+ahvz5LYW47CivmooE+UnlvdTsKK+aigz5UZWk7CivmooU+QmFpOwor5qKNPlNvdTsKK+aijz5Lb2t1Owor5qKTPlNoaTsKK+ailD5TaGk7Civmopc+S291Owor5qKbPkRhOwor5qKdPkpvdTsKK+ainz5LeW91Owor5qKgPlJ5bzsKK+aioj5TaG91Owor5qKmPk11Owor5qKnPkdvOwor5qKoPlJpOwor5qKtPlNhOwor5qKvPlRlaTsKK+aisD5LYWk7CivmorE+S29uOwor5qKzPlNvOwor5qK1PkZ1dTsKK+aitj5CaTsKK+aiuT5CaW47Civmorw+VG91Owor5qOEPktpOwor5qOGPlJpbjsKK+ajiT5NZW47Civmo4o+S2k7Civmo4s+S2k7Civmo40+S29uOwor5qOSPkJvdTsKK+ajlD5Lb247Civmo5U+U2h1Owor5qOXPlNvdTsKK+ajmD5LeW9rdTsKK+ajmj5Ib3U7Civmo58+VG91Owor5qOgPlRvdTsKK+ajoT5Lb3U7Civmo6M+VGVpOwor5qOnPlNhbjsKK+ajrj5TaGluOwor5qOvPkppbjsKK+ajsj5TZWk7Civmo7k+VG91Owor5qO6PkthbjsKK+akgD5XYW47CivmpIE+S2FrdTsKK+akhD5TZXRzdTsKK+akhT5JOwor5qSIPktpa3U7CivmpIs+UnlvdTsKK+akjD5Lb3U7CivmpI0+U2hva3U7CivmpI4+VHN1aTsKK+akjz5BOwor5qSSPlNob3U7CivmpJw+S2VuOwor5qSiPkthaTsKK+akpj5LZW47CivmpLA+WWE7CivmpLQ+VGFuOwor5qS2PlNodTsKK+akuT5DaGluOwor5qS9PlRlbjsKK+akvz5DaGluOwor5qWKPllvdTsKK+alkz5GdXU7CivmpZQ+U2V0c3U7CivmpZU+RGE7CivmpZk+Qm91Owor5qWaPlNvOwor5qWcPktvOwor5qWdPlJlbjsKK+alnj5Sb3U7CivmpaA+TmFuOwor5qWhPll1Owor5qWiPlNodXU7Civmpao+WW91Owor5qWrPlNodXU7Civmpa0+R3lvdTsKK+alrj5DaG87Civmpa8+SnVuOwor5qWzPkJhaTsKK+altD5UZWk7CivmpbU+R29rdTsKK+altz5LYWk7Civmpbg+U2h1dTsKK+aluT5FaTsKK+alvD5Sb3U7Civmpb0+R2FrdTsKK+amgj5HYWk7Civmpo4+S2E7CivmppE+RnU7CivmppQ+Um91Owor5qaVPllvdTsKK+ammz5TaGluOwor5qacPkJvdTsKK+amoD5CZWk7Civmpqc+SGk7Civmpq4+RWk7CivmprE+U3VpOwor5qayPk90c3U7CivmprQ+Unl1dTsKK+amuz5Ub3U7Civmpr4+S290c3U7Civmpr8+S2k7Civmp4E+S291Owor5qeDPkhhbjsKK+anhz5UZW47Civmp4o+U2FrdTsKK+aniz5Lb3U7Civmp4w+VHN1aTsKK+anjT5Tb3U7Civmp44+U2E7Civmp5A+S2FpOwor5qeTPktvdTsKK+anmD5Zb3U7Civmp5k+VGVuOwor5qedPlRvdTsKK+annj5Sb3U7Civmp6c+U2FuOwor5qeoPktha3U7Civmp6s+VGFuOwor5qetPlNodWt1Owor5qeyPktva3U7Civmp7k+S291Owor5qe7PktpOwor5qe9PlNvdTsKK+anvz5LaW47CivmqII+R2FrdTsKK+aohT5TaG91Owor5qiKPkhhbjsKK+aoiz5Ub3U7CivmqIw+S2FuOwor5qiSPk1pdHN1Owor5qiTPlJvdTsKK+aolD5Tb3U7CivmqJc+Q2hvOwor5qiZPkh5b3U7CivmqJs+S3l1dTsKK+aonj5TdXU7CivmqJ8+U2hvdTsKK+aooT5NbzsKK+aooj5Cb2t1Owor5qijPllvdTsKK+aoqT5LZW47CivmqKo+T3U7CivmqLU+U2hvdTsKK+aotj5TYWk7CivmqLg+Qm9rdTsKK+aouT5KdTsKK+aouj5LYTsKK+aovT5Tb247CivmqYQ+S2FuOwor5qmHPlplaTsKK+apiD5Eb3U7CivmqYs+S3lvdTsKK+apmD5LaXRzdTsKK+apmT5Ub3U7CivmqZ8+S2k7CivmqaE+U2hvdTsKK+apoj5EYTsKK+appj5Ub3U7Civmqbg+U2hvdTsKK+apvz5LeW91Owor5qqAPlRhbjsKK+aqhD5HZWtpOwor5qqNPllva3U7Civmqo4+R287CivmqpA+RW47Civmqpc+SGFrdTsKK+aqnD5LYWk7CivmqqA+S2VpOwor5qqiPktlbjsKK+aqoz5TaG91Owor5qqqPlJla2k7Civmqqw+Qm91Owor5qquPlRvdTsKK+aqsz5CaW47Civmqrg+TmVpOwor5qq7PkthbjsKK+argT5NaXRzdTsKK+argj5Ub3U7Civmq4M+S2k7Civmq5E+UmFpOwor5quTPlJvOwor5quaPlJ5bzsKK+armz5TaGl0c3U7Civmq54+RW47Civmq58+UmVraTsKK+arqD5SbzsKK+arqj5SZWtpOwor5qu6PlJlaTsKK+aruz5PdTsKK+ashD5SYW47CivmrIU+S3lvOwor5qyKPktlbjsKK+askj5SYW47CivmrJY+UmFuOwor5qydPlV0c3U7CivmrKA+S2V0c3U7CivmrKE+Smk7CivmrKM+R29uOwor5qynPk91Owor5qyyPllva3U7CivmrLc+S2k7CivmrLg+QWk7CivmrLk+STsKK+asuj5HaTsKK+asvT5LaW47CivmrL4+S2FuOwor5q2DPlNvdTsKK+athz5LZXRzdTsKK+atiT5LZW47CivmrYw+S2E7CivmrY4+VGFuOwor5q2QPk91Owor5q2TPkthbjsKK+atlD5LeW87CivmrZk+S3l1dTsKK+atmz5LYW47CivmrZ8+WW87CivmraE+S2FuOwor5q2iPlNoaTsKK+atoz5TZWk7CivmraQ+U2hpOwor5q2mPkJ1Owor5q2pPkhvOwor5q2qPldhaTsKK+atrz5TaGk7CivmrbM+U2VpOwor5q20PlJla2k7Civmrbg+S2k7Civmrbk+R2F0c3U7Civmrbs+U2hpOwor5q2/PkJvdHN1Owor5q6APllvdTsKK+augz5Zb3U7CivmroQ+VGVuOwor5q6GPlRhaTsKK+auiT5KdW47Civmroo+U2h1Owor5q6LPlphbjsKK+aujT5IeW91Owor5q6VPkZ1dTsKK+aulj5TaG9rdTsKK+aumD5aYW47Civmrp4+SW47CivmrqQ+U2hvdTsKK+auqj5FaTsKK+auqz5UYW47Civmrq8+SGluOwor5q6xPlNlbjsKK+ausj5TZW47CivmrrM+U2h1Owor5q60Pk91Owor5q61PkRhbjsKK+autz5JbjsKK+auuj5TYXRzdTsKK+auuz5LYWt1Owor5q68Pktha3U7Civmrr8+VGVuOwor5q+APktpOwor5q+FPktpOwor5q+GPk91Owor5q+LPkJ1Owor5q+NPkJvOwor5q+OPk1haTsKK+avkj5Eb2t1Owor5q+TPklrdTsKK+avlD5IaTsKK+avmD5IaTsKK+avmz5Nb3U7Civmr6s+S291Owor5q+sPkt5dXU7Civmr68+VGFuOwor5q+zPlplaTsKK+awiD5TZW47CivmsI8+U2hpOwor5rCRPk1pbjsKK+awkz5Cb3U7CivmsJQ+S2k7CivmsJc+S2k7CivmsJs+RnVuOwor5rCjPktpOwor5rCkPkluOwor5rC0PlN1aTsKK+awtz5IeW91Owor5rC4PkVpOwor5rC+PkhhbjsKK+axgD5UZWk7CivmsYE+SnV1Owor5rGCPkt5dXU7CivmsY4+SGFuOwor5rGQPlNla2k7CivmsZU+U2FuOwor5rGXPkthbjsKK+axmj5POwor5rGdPkpvOwor5rGePktvdTsKK+axnz5Lb3U7CivmsaA+Q2hpOwor5rGoPkJla2k7Civmsao+T3U7CivmsbA+VGE7CivmsbI+S3l1dTsKK+axsz5IZW47Civmsbo+S2V0c3U7Civmsb0+S2k7Civmsb4+RnVuOwor5rKBPlNoaW47CivmsoI+S2k7CivmsoM+WW9rdTsKK+ayiD5DaGluOwor5rKMPlRvbjsKK+ayjT5HbzsKK+aykD5Cb2t1Owor5rKSPkJvdHN1Owor5rKTPlRvdTsKK+aylj5DaHV1Owor5rKZPlNhOwor5rKaPlNoaTsKK+aymz5IYWk7CivmsqE+Qm90c3U7CivmsqI+VGFrdTsKK+ayqz5NYXRzdTsKK+ayrj5TaG87CivmsrE+VGE7CivmsrM+S2E7Civmsrg+RnV0c3U7Civmsrk+WXU7Civmsro+VGVuOwor5rK7PkppOwor5rK8PlNob3U7Civmsr0+S287Civmsr4+VGVuOwor5rK/PkVuOwor5rOBPkt5b3U7Civms4Q+RWk7Civms4U+U2h1dTsKK+aziT5TZW47Civms4o+SGFrdTsKK+azjD5IaXRzdTsKK+azkz5PdTsKK+azlT5Ib3U7Civms5c+U2hpOwor5rOZPkhvdTsKK+azmz5IYW47Civms50+U287Civms6E+SG91Owor5rOiPkhhOwor5rOjPkt5dXU7Civms6U+RGVpOwor5rOoPkNodXU7Civms6o+UnVpOwor5rOvPkJpbjsKK+azsD5UYWk7Civms7E+T3U7Civms7M+RWk7CivmtIs+WW91Owor5rSMPlJldHN1Owor5rSSPlNlaTsKK+a0lz5TZW47CivmtJk+U2h1Owor5rSbPlJha3U7CivmtJ4+RG91Owor5rSfPkk7CivmtKU+U2hpbjsKK+a0qT5FaTsKK+a0qj5Lb3U7CivmtKs+S3lva3U7CivmtLI+U2h1dTsKK+a0sz5KbzsKK+a0tT5TaHVuOwor5rS2Pkt5b3U7CivmtLg+S291Owor5rS7PkthdHN1Owor5rS9PktvdTsKK+a0vj5IYTsKK+a1gT5SeXV1Owor5rWEPkpvdTsKK+a1hT5TZW47CivmtZk+U2V0c3U7CivmtZo+U2h1bjsKK+a1nD5IaW47CivmtaM+S2FuOwor5rWkPktvdTsKK+a1pj5IbzsKK+a1qT5Lb3U7Civmtao+Um91Owor5rWsPlJpOwor5rWuPkZ1Owor5rW0Pllva3U7Civmtbc+S2FpOwor5rW4PlNoaW47Civmtbk+U2hvdTsKK+a2hT5OZXRzdTsKK+a2iD5TaG91Owor5raMPll1dTsKK+a2jj5TZW47CivmtpM+S2VuOwor5raVPlRlaTsKK+a2mT5SdWk7Civmtps+VG91Owor5racPlRva3U7Civmtq8+R2FpOwor5rayPkVraTsKK+a2tT5LYW47Civmtrg+S287Civmtrw+UnlvdTsKK+a3gD5UZW47Civmt4U+U2VraTsKK+a3hj5Lb3U7Civmt4c+S2k7Civmt4s+UmluOwor5reMPlNob3U7Civmt5E+U2h1a3U7Civmt5I+U2VpOwor5reVPlJpa3U7Civmt5g+VG91Owor5reZPlNvdTsKK+a3nj5TaG91Owor5rehPlRhbjsKK+a3pD5ZbzsKK+a3pj5LYW47Civmt6g+Sm91Owor5reqPlJpbjsKK+a3qz5JbjsKK+a3rD5TYWk7Civmt64+V2FpOwor5rexPlNoaW47Civmt7M+U2h1bjsKK+a3tT5FbjsKK+a3tz5Lb247Civmt7k+RW47Civmt7o+U2VuOwor5re7PlRlbjsKK+a4hT5TZWk7CivmuIc+S2F0c3U7CivmuIg+U2FpOwor5riJPlNob3U7CivmuIo+RW47CivmuIs+SnV1Owor5riTPktlaTsKK+a4lT5FbjsKK+a4mT5LYW47CivmuJo+U2hvOwor5ribPkdlbjsKK+a4nT5ZdTsKK+a4nz5UZWk7CivmuKA+S3lvOwor5rihPlRvOwor5rijPlNhOwor5rikPkJvdHN1Owor5rilPkFrdTsKK+a4pj5LYTsKK+a4qT5PbjsKK+a4qz5TZXRzdTsKK+a4rD5Tb2t1Owor5ritPkk7CivmuK4+S2E7CivmuK8+S291Owor5ri4Pll1dTsKK+a4uj5CeW91Owor5ri+PktvbjsKK+a5gz5IYWk7CivmuYo+U291Owor5rmNPlRhbjsKK+a5jj5CZW47CivmuZY+S287CivmuZg+U2hvdTsKK+a5mz5UYW47CivmuZ8+S291Owor5rmnPll1dTsKK+a5qz5TaG91Owor5rmuPkluOwor5rmvPlRvdTsKK+a5sj5LYW47CivmubY+U2VuOwor5rm+PldhbjsKK+a5vz5TaGl0c3U7CivmuoA+TWFuOwor5rqCPlJhdHN1Owor5rqMPkhhdHN1Owor5rqPPlRvdTsKK+a6kD5HZW47CivmupY+SnVuOwor5rqYPktvdTsKK+a6nD5SeXV1Owor5rqdPktvdTsKK+a6nz5NZWk7CivmuqI+SXRzdTsKK+a6pT5IbzsKK+a6qj5LZWk7Civmuq8+U287CivmurI+U291Owor5rq2PllvdTsKK+a6tz5Lb247Civmuro+RGVraTsKK+a6vT5Kb2t1Owor5ruCPkJvdTsKK+a7hD5Tb3U7Civmu4U+TWV0c3U7Civmu4k+S291Owor5ruLPkppOwor5ruMPkRla2k7Civmu5E+S2F0c3U7Civmu5M+U2FpOwor5ruUPlRvdTsKK+a7lT5Ub3U7Civmu50+U291Owor5ruePlRhaTsKK+a7rD5LbzsKK+a7rz5UYWk7Civmu7I+U2hpbjsKK+a7tD5UZWtpOwor5ru3PlJvOwor5ru4PktvOwor5ru+PktvbjsKK+a7vz5NYW47CivmvIE+UnlvdTsKK+a8gj5IeW91Owor5ryGPlNoaXRzdTsKK+a8iT5Sb2t1Owor5ryPPlJvdTsKK+a8kT5HYWk7CivmvJM+Umk7CivmvJQ+RW47CivmvJU+U291Owor5rygPkJha3U7CivmvKI+S2FuOwor5ryjPlJhbjsKK+a8qz5NYW47CivmvKw+U2hpOwor5ryxPlNvdTsKK+a8sj5DaG91Owor5ry4PlplbjsKK+a8vj5Zb3U7CivmvL8+U2hvdTsKK+a9gT5FaTsKK+a9hT5LYW47CivmvZQ+S2V0c3U7CivmvZg+SGFuOwor5r2bPlNlbjsKK+a9nD5TZW47CivmvZ8+U2VraTsKK+a9pD5KdW47CivmvaY+Um91Owor5r2tPlRhbjsKK+a9rj5DaG91Owor5r2vPkppbjsKK+a9sD5LYWk7CivmvbQ+Q2hvOwor5r24PlNhbjsKK+a9uj5TYW47Civmvbw+RG91Owor5r6APkp1dTsKK+a+gT5KdXU7CivmvoI+Q2hvdTsKK+a+hD5DaG91Owor5r6GPkd5b3U7Civmvo4+SG91Owor5r6RPlJ5dXU7Civmvpc+S2FuOwor5r6hPlNvdTsKK+a+oz5LYW47CivmvqQ+VGFrdTsKK+a+qj5SZWk7CivmvrE+VGVuOwor5r6zPklrdTsKK+a+uT5UYW47Civmv4A+R2VraTsKK+a/gT5EYWt1Owor5r+CPlJlbjsKK+a/gz5Ob3U7Civmv4Y+RnVuOwor5r+UPkRlaTsKK+a/lT5TaGl0c3U7Civmv5g+TmVpOwor5r+fPlNhaTsKK+a/oD5Hb3U7Civmv6E+SnU7Civmv6Q+VG91Owor5r+rPlJhbjsKK+a/rD5TaHVuOwor5r+uPkhva3U7Civmv68+VGFrdTsKK+a/sT5IaW47Civmv7M+U2VuOwor5r+2PkthdHN1Owor5r+6PlNlbjsKK+a/vj5SeW87CivngIE+WW91Owor54CJPlNoYTsKK+eAiz5TaGluOwor54CPPlJ5dXU7CivngJE+QmFrdTsKK+eAlT5IaW47CivngJg+Um87CivngJo+S2FuOwor54CbPkVpOwor54CdPlJla2k7CivngJ4+Sm91Owor54CfPlNob3U7CivngKY+Q2hvOwor54CnPlNvdTsKK+eArD5SYWk7CivngLA+Qmk7CivngLI+UmVuOwor54C+PlJhbjsKK+eBjD5LYW47CivngZE+U2FpOwor54GYPkRhbjsKK+eBoz5XYW47Civngas+S2E7Civnga8+VG91Owor54GwPkthaTsKK+eBuD5LeXV1Owor54G8PlNoYWt1Owor54G9PlNhaTsKK+eCiT5SbzsKK+eCij5TdWk7Civngo4+RW47CivngpI+U291Owor54KZPlNoYTsKK+eCrD5LbzsKK+eCrT5UYW47Civngq4+SG91Owor54KvPktlaTsKK+eCsz5IZWk7Civngrg+U2FrdTsKK+eCuT5UZW47Civngro+STsKK+eDiD5SZXRzdTsKK+eDiz5Lb3U7Civng48+VTsKK+eDmT5SYWt1Owor54OdPkpvdTsKK+eDnz5FbjsKK+eDsT5LZWk7Civng7k+SG91Owor54O9PkhvdTsKK+eEiT5FbjsKK+eElD5FbjsKK+eEmT5Ib3U7CivnhJo+RnVuOwor54ScPktvbjsKK+eEoT5NdTsKK+eEpj5TaG91Owor54S2PlplbjsKK+eEvD5TaG91Owor54WJPlJlbjsKK+eFjD5Lb3U7CivnhY4+U2VuOwor54WVPktpOwor54WWPkRhbjsKK+eFmT5FbjsKK+eFoj5LZWk7CivnhaQ+QmFpOwor54WlPkthbjsKK+eFpj5LdTsKK+eFpz5TaG91Owor54WpPkhhbjsKK+eFrD5Zb3U7Civnha4+U2hhOwor54W9PlNlbjsKK+eGhD5Tb2t1Owor54aIPktpOwor54aKPll1dTsKK+eGjz5LdW47CivnhpQ+WW91Owor54aVPktvdTsKK+eGmT5LaTsKK+eGnz5KdWt1Owor54aoPkk7Civnhqw+R291Owor54axPk5ldHN1Owor54a5PktpOwor54a+PlNoaTsKK+eHgz5OZW47Civnh4g+VG91Owor54eJPlRvbjsKK+eHjj5SeW91Owor54eQPlJpbjsKK+eHkj5TaG91Owor54eUPkhhbjsKK+eHlT5FbjsKK+eHlz5SYW47Civnh58+RWk7Civnh6A+SWt1Owor54elPlNvdTsKK+eHpj5TYW47Civnh6c+U3VpOwor54esPktpOwor54etPlNob2t1Owor54euPlNob3U7Civnh7U+VGF0c3U7Civnh7k+U2VuOwor54e7Pkt1bjsKK+eHvD5KaW47Civnh78+WW91Owor54iGPkJha3U7CivniI0+U2hha3U7CivniJA+Um87CivniJs+UmFuOwor54ioPlNhbjsKK+eIqj5Tb3U7CivniKw+SGE7CivniK0+U291Owor54iwPkVuOwor54iyPkk7CivniLU+U2hha3U7CivniLY+RnU7CivniLo+WWE7CivniLs+S291Owor54i8PlNobzsKK+eIvT5Tb3U7CivniL4+Smk7CivniL8+U2hvdTsKK+eJgD5Tb3U7CivniYY+U2hvdTsKK+eJhz5IZW47CivniYg+SGFuOwor54mLPlNlbjsKK+eJjD5IYWk7CivniZI+Q2hvdTsKK+eJmD5Ub2t1Owor54mZPkdhOwor54mbPkd5dXU7CivniZ0+SGluOwor54mfPkJvdTsKK+eJoT5CbzsKK+eJoj5Sb3U7Civniac+Qm9rdTsKK+eJqT5Nb3RzdTsKK+eJsj5TZWk7CivnibQ+VGVpOwor54m5PlRva3U7Civnib0+S2VuOwor54m+PkdvOwor54qAPlNlaTsKK+eKgT5SaTsKK+eKgj5SaTsKK+eKhz5Ib247CivnipI+S291Owor54qWPlJha3U7CivniqA+R2k7CivniqI+VG9rdTsKK+eKpz5HaTsKK+eKrD5LZW47Civniq8+SGFuOwor54qyPlNhaTsKK+eKtj5Kb3U7Civnirk+WXV1Owor54uCPkt5b3U7Civni4M+SnV1Owor54uEPlRla2k7Civni4Y+Q2h1dTsKK+eLjj5Lb3U7Civni5A+S287Civni5I+SGk7Civni5c+S291Owor54uZPlNobzsKK+eLmz5IYWt1Owor54ugPkdhbjsKK+eLoT5Lb3U7Civni6I+S2FrdTsKK+eLqT5TaHU7Civni6w+RG9rdTsKK+eLrT5LeW91Owor54u3PktlbjsKK+eLuD5SaTsKK+eLuT5LeW91Owor54u8PlJvdTsKK+eLvT5IYWk7CivnjIo+R2VpOwor54yWPlNob3U7CivnjJc+STsKK+eMmz5Nb3U7CivnjJw+U2FpOwor54ydPlNvdHN1Owor54yfPlJ5b3U7CivnjKU+V2FpOwor54ypPlNlaTsKK+eMqj5DaG87CivnjKs+QnlvdTsKK+eMrj5LZW47CivnjK8+VGFuOwor54y0PktvdTsKK+eMtj5ZdXU7CivnjLc+WXV1Owor54y+PkthdHN1Owor54y/PkVuOwor542EPkdva3U7CivnjYU+U2hpOwor542OPlNob3U7CivnjY8+QmFrdTsKK+eNlz5LZXRzdTsKK+eNoz5KdXU7Civnjag+RG9rdTsKK+eNqj5LYWk7CivnjbA+RG91Owor542yPktha3U7CivnjbU+UnlvdTsKK+eNuD5KdXU7Civnjbo+RGF0c3U7Civnjbs+S2VuOwor546EPkdlbjsKK+eOhz5SaXRzdTsKK+eOiT5HeW9rdTsKK+eOiz5PdTsKK+eOlj5LeXV1Owor546pPkdhbjsKK+eOsj5SZWk7CivnjrM+VGFpOwor5467PkhhOwor54+APkhha3U7Civnj4I+S2E7Civnj4g+S2E7Civnj4o+U2FuOwor54+NPkNoaW47Civnj44+Q2hpbjsKK+ePnj5SYWt1Owor54+gPlNodTsKK+ePpT5KaTsKK+ePqj5LZWk7Civnj60+SGFuOwor54+uPkhhaTsKK+ePsT5FaTsKK+ePuD5HbzsKK+ePvj5HZW47CivnkIM+S3l1dTsKK+eQhT5Sb3U7CivnkIY+Umk7CivnkIk+Unl1dTsKK+eQoj5UYWt1Owor55ClPktvOwor55CyPkhhaTsKK+eQsz5SaW47CivnkLQ+S2luOwor55C1PkJpOwor55C2PkhhOwor55C6PkhvdTsKK+eQvz5Lb247CivnkYE+Qm91Owor55GVPkthOwor55GZPkRvdTsKK+eRmj5LbzsKK+eRmz5FaTsKK+eRnD5ZdTsKK+eRnj5adWk7CivnkZ8+U2hpdHN1Owor55GgPlJ5dXU7CivnkaM+U2E7CivnkaQ+WW91Owor55GpPkVpOwor55GqPkJhOwor55GvPlJvdTsKK+eRsD5LYWk7CivnkbM+U2E7CivnkbY+WW91Owor55G+PktpbjsKK+eSgz5SaTsKK+eSiz5TaG91Owor55KePkhha3U7CivnkqI+Unl1dTsKK+eSpz5IZWtpOwor55KwPkthbjsKK+eSvT5KaTsKK+eTij5LZWk7Civnk48+Um91Owor55OUPkVpOwor55OcPkthOwor55OgPktvOwor55OiPkh5b3U7Civnk6M+QmVuOwor55OmPkdhOwor55OuPk91Owor55O2PkhlaTsKK+eTtz5TaGk7CivnlIM+U2h1dTsKK+eUhD5LZW47CivnlIw+T3U7CivnlI0+Qm91Owor55SOPlNlbjsKK+eUkT5Tb3U7CivnlJM+SGVraTsKK+eUlT5PdTsKK+eUmD5LYW47CivnlJo+U2hpbjsKK+eUnD5UZW47CivnlJ4+U2hvdTsKK+eUnz5TZWk7CivnlKM+U2FuOwor55SlPlNlaTsKK+eUpj5TbzsKK+eUqD5Zb3U7CivnlKs+SG87CivnlKw+WW91Owor55SwPkRlbjsKK+eUsT5ZdXU7CivnlLI+S291Owor55SzPlNoaW47CivnlLc+RGFuOwor55S4PlRlbjsKK+eUuj5DaG91Owor55S7PkdhOwor55S8PkNob3U7CivnlYQ+Unl1dTsKK+eVhj5IbzsKK+eViT5GdTsKK+eVij5Lb3U7CivnlYs+VGVuOwor55WMPkthaTsKK+eVjT5LYWk7CivnlY8+STsKK+eVlD5IYW47CivnlZk+Unl1dTsKK+eVmj5Ib247CivnlZs+U2hpbjsKK+eVnD5DaGlrdTsKK+eVnT5IbzsKK+eVoj5IaXRzdTsKK+eVpD5TaGk7CivnlaU+Unlha3U7CivnlaY+S2VpOwor55WnPlJ5YWt1Owor55WqPkJhbjsKK+eVqz5LYWt1Owor55WtPllvOwor55WwPkk7CivnlbM+Sm91Owor55W0PkNodXU7CivnlbY+VG91Owor55W3PlRldHN1Owor55W4PktpOwor55W/PktpOwor55aCPkpvdTsKK+eWhj5LeW91Owor55aHPkNodXU7Civnlok+Sm91Owor55aKPkpvdTsKK+eWiz5TbzsKK+eWjj5TbzsKK+eWjz5TbzsKK+eWkT5HaTsKK+eWlD5DaG91Owor55aaPkt5dXU7Civnlp0+U2FuOwor55ajPll1dTsKK+eWpT5LYWk7Civnlqs+RWtpOwor55axPkhvdTsKK+eWsj5IaTsKK+eWsz5LYW47CivnlrU+U2hpOwor55a4PlRhbjsKK+eWuT5TaGluOwor55a8PlRvdTsKK+eWvT5TaG87Civnlr4+U2hpdHN1Owor55eCPkthOwor55eDPktlbjsKK+eXhT5CeW91Owor55eHPlNob3U7Civnl4o+U2VuOwor55eNPkk7Civnl5I+WW91Owor55eUPkppOwor55eVPktvbjsKK+eXmD5Ub3U7Civnl5k+S2VpOwor55ebPlRzOwor55eePkhpOwor55eiPlJpOwor55ejPlNoaTsKK+eXqT5Tb3U7Civnl7A+VGFuOwor55eyPk1hOwor55ezPlJpbjsKK+eXtD5DaGk7Civnl7o+SGk7Civnl7w+S287Civnl74+QTsKK+eXvz5JOwor55iBPlN1aTsKK+eYiT5ZdTsKK+eYiz5GdXU7CivnmI0+WW91Owor55ifPk9uOwor55igPlNla2k7CivnmKE+U291Owor55iiPkhhbjsKK+eYpD5SeXV1Owor55inPkd5YWt1Owor55iwPlJ1aTsKK+eYtD5TaG91Owor55i7PlJvdTsKK+eZgj5SeW91Owor55mGPlJvdTsKK+eZhz5LYW47CivnmYg+SGFpOwor55mMPkdhbjsKK+eZkj5ZdTsKK+eZlj5IZWtpOwor55mYPlJlaTsKK+eZnD5EZW47CivnmaE+Q2hpOwor55miPllvdTsKK+eZpz5SZWtpOwor55moPktha3U7Civnmak+UmFpOwor55mqPlNoYWt1Owor55msPlNlbjsKK+eZsD5Zb3U7CivnmbI+VGVuOwor55m2PkhhdHN1Owor55m4PktpOwor55m6PkhvdHN1Owor55m7PlRvdTsKK+eZvD5Ib3RzdTsKK+eZvT5IYWt1Owor55m+Pkh5YWt1Owor55qAPkh5dXU7CivnmoM+Qm91Owor55qEPlRla2k7CivnmoY+S2FpOwor55qHPktvdTsKK+eaiD5LaTsKK+eaiz5Lb3U7Civnmo4+S291Owor55qQPktvdTsKK+eakz5Lb3U7CivnmpY+S2FuOwor55qZPlNla2k7Civnmpo+R2FpOwor55quPkhpOwor55qwPkhvdTsKK+eatD5TaHVuOwor55q3PktvOwor55q4Pkt1bjsKK+eauT5LdW47Civnmro+U3V1Owor55q/PkJhaTsKK+ebgj5VOwor55uDPkhhaTsKK+ebhj5Cb247Civnm4g+RWk7Civnm4o+RWtpOwor55uNPktvdTsKK+ebkj5Lb3U7Civnm5Y+R2FpOwor55uXPlRvdTsKK+ebmz5TZWk7Civnm5w+VG91Owor55uePlNhbjsKK+ebnz5NZWk7Civnm6E+SmluOwor55ujPkthbjsKK+ebpD5CYW47Civnm6U+S2FuOwor55unPlJvOwor55uqPlRvdTsKK+ebrj5Nb2t1Owor55uyPk1vdTsKK+ebtD5DaG9rdTsKK+ebuD5TaG91Owor55u7PktlaTsKK+ebvj5KdW47CivnnIE+U2VpOwor55yEPkJlbjsKK+echz5CeW91Owor55yIPlRhbjsKK+eciT5CaTsKK+eciz5LYW47CivnnIw+S2VuOwor55ybPk1haTsKK+ecnj5TaGluOwor55yfPlNoaW47CivnnKA+TWluOwor55ykPlRlaTsKK+ecpT5TZWk7CivnnKY+U2VpOwor55ypPkdlbjsKK+ectz5LZW47CivnnLg+Qm91Owor55y6PkNob3U7CivnnLw+R2FuOwor552APkNoYWt1Owor552HPlRlaTsKK+edmj5HYWk7CivnnZs+U2VpOwor552hPlN1aTsKK+edoz5Ub2t1Owor552lPkhlaTsKK+edpj5Cb2t1Owor552oPkdlaTsKK+edqz5TaG91Owor5525PlRvOwor552+PktvdTsKK+edvz5FaTsKK+eeiz5TaGluOwor556OPkthdHN1Owor556RPk1laTsKK+eenj5CYW47CivnnqA+RG91Owor556lPkJldHN1Owor556sPlNodW47Civnnq0+UnlvdTsKK+eesD5LYW47CivnnrM+RG91Owor5562PktpOwor5565PkFpOwor5567PlNlbjsKK+eevD5LZW47Civnnr0+S287Civnnr8+S3U7Civnn4c+TW91Owor55+NPktha3U7Civnn5c+Q2hpa3U7Civnn5o+U2hva3U7Civnn5s+TXU7Civnn5w+S2luOwor55+iPlNoaTsKK+efoz5JOwor55+lPkNoaTsKK+efpz5TaGluOwor55+pPkt1Owor55+tPlRhbjsKK+efrj5XYWk7Civnn68+S3lvdTsKK+efsz5TaGFrdTsKK+efvD5Lb3U7CivnoII+U2E7CivnoIw+U2VpOwor56CSPkhpOwor56CUPktlbjsKK+eglT5TYWk7CivnoKA+U2hvOwor56ClPlNoaTsKK+egpj5TYWk7CivnoKc+Q2hpbjsKK+egsj5Ib3U7CivnoLQ+SGE7CivnoLo+UmVpOwor56C/PktvdTsKK+ehhT5LZWk7CivnoZ0+U2hvdTsKK+ehqz5SeXV1Owor56GsPktvdTsKK+ehrz5LZW47Civnobw+SG91Owor56KBPkdvOwor56KGPkhhOwor56KHPlRlaTsKK+eijD5Sb2t1Owor56KNPkdhaTsKK+eijj5TYWk7CivnopE+SGk7CivnopM+VGFpOwor56KVPktpOwor56KXPldhbjsKK+eimj5IYWk7CivnoqM+S2V0c3U7Civnoqc+SGVraTsKK+eiqT5TZWtpOwor56KqPkNoaW47Civnoq8+RG91Owor56K1PlNla2k7Civnoro+S2FrdTsKK+eivD5CYTsKK+eivj5UZW47Civno4E+Smk7Civno4U+SG91Owor56OGPkthdHN1Owor56OKPlJhaTsKK+ejiz5TYTsKK+ejkD5IYW47Civno5E+R2FpOwor56OUPlRha3U7Civno5o+U2VuOwor56OnPlNla2k7Civno6g+TWE7Civno6w+S2VpOwor56OvPktpOwor56O0PlRvdTsKK+ejvT5Lb3U7CivnpIE+U2hvdTsKK+ekhz5Ja3U7CivnpI4+U287CivnpJE+VG91Owor56SSPkdpOwor56SZPkdhaTsKK+ekpj5Lb3U7CivnpKo+UmVpOwor56SrPlJla2k7CivnpKw+QmFuOwor56S6PlNoaTsKK+ekvD5SZWk7CivnpL4+U2hhOwor56WAPlNoaTsKK+elgT5LaTsKK+elhz5LaTsKK+eliD5LaTsKK+eliT5TaGk7CivnpZA+WXV1Owor56WTPkZ1dHN1Owor56WVPkhpOwor56WWPlNvOwor56WXPlNoaTsKK+elmj5TbzsKK+elnT5TaHVrdTsKK+elnj5TaGluOwor56WfPlN1aTsKK+eloD5TaGk7CivnpaI+RGVpOwor56WlPlNob3U7Civnpag+SHlvdTsKK+elrT5TYWk7Civnpbc+VG91Owor56W6PktpOwor56W/PlJva3U7CivnpoA+UmluOwor56aBPktpbjsKK+emhD5Sb2t1Owor56aFPlplbjsKK+emij5LZWk7Civnpo0+S2E7Civnpo4+VGVpOwor56aPPkZ1a3U7Civnpp0+U2hva3U7CivnpqY+R3lvOwor56anPktpOwor56aqPlplbjsKK+emrj5SZWk7CivnprA+RGVpOwor56azPkpvdTsKK+emuT5VOwor56a6Pkd1dTsKK+emvT5LaW47Civnpr4+S2E7Civnpr8+VG9rdTsKK+engD5TaHV1Owor56eBPlNoaTsKK+eniT5IZWk7Civnp4s+U2h1dTsKK+enkT5LYTsKK+enkj5CeW91Owor56eVPkhpOwor56eYPkhpOwor56efPlNvOwor56ehPkhhdHN1Owor56ejPk1hdHN1Owor56ekPlNob3U7Civnp6Y+U2hpbjsKK+enpz5PdTsKK+enqT5DaGl0c3U7Civnp6w+S3lvOwor56ewPlNob3U7Civnp7s+STsKK+eogD5LaTsKK+eoiD5LYW47CivnqIs+VGVpOwor56iNPlNvdTsKK+eojj5aZWk7CivnqJQ+SmluOwor56iXPkhhaTsKK+eomD5LaTsKK+eomT5DaG9rdTsKK+eomj5DaGk7CivnqJw+UnlvdTsKK+eonz5SaW47CivnqKA+Q2h1dTsKK+eorj5TaHU7CivnqLE+U2hvdTsKK+eosj5Ub3U7CivnqLc+U2hva3U7CivnqLs+VG91Owor56i8PkthOwor56i9PktlaTsKK+eovj5Lb3U7CivnqL8+S291Owor56mAPktva3U7CivnqYI+U3VpOwor56mDPllvdTsKK+ephj5Cb2t1Owor56mJPkNoaTsKK+epjT5TZWtpOwor56mOPkVpOwor56mPPk9uOwor56mQPlNodXU7CivnqZc+U3VpOwor56mhPlNob2t1Owor56miPkFpOwor56mjPkpvdTsKK+epqT5PbjsKK+epqz5LYWt1Owor56mwPkpvdTsKK+eptD5LZXRzdTsKK+eptj5LeXV1Owor56m5Pkt5dXU7Civnqbo+S3V1Owor56m9PlNlaTsKK+epvz5TZW47CivnqoE+VG90c3U7CivnqoM+U2V0c3U7CivnqoQ+U2FrdTsKK+eqiD5Zb3U7CivnqpI+Q2hpdHN1Owor56qTPlNvdTsKK+eqlT5DaG91Owor56qWPktvdTsKK+eqlz5Tb3U7Civnqpg+S2luOwor56qfPkt1dHN1Owor56qpPkthOwor56qqPldhOwor56quPkt5dXU7Civnqq8+WW91Owor56qwPllvdTsKK+eqtj5LdTsKK+equj5LaTsKK+eqvz5SeXV1Owor56uDPlNvdTsKK+erhD5aYW47Civnq4U+S3lvdTsKK+erhz5Ub3U7Civnq4g+U291Owor56uKPlNldHN1Owor56uLPlJpdHN1Owor56uSPktpOwor56uZPlRhbjsKK+ermj5DaG87Civnq5w+Unl1dTsKK+ernT5IZWk7Civnq58+S2VpOwor56ugPlNob3U7Civnq6I+U2hpOwor56ujPlNodW47Civnq6U+RG91Owor56umPlNob3U7Civnq6o+SnU7Civnq60+S2V0c3U7Civnq68+VGFuOwor56u2Pkt5b3U7Civnq7g+S2VpOwor56u5PkNoaWt1Owor56u6PlRva3U7Civnq78+S2FuOwor56yEPktlaTsKK+eshj5IYTsKK+esiD5LeXV1Owor56yKPlNvdTsKK+esiz5KdW47CivnrI8+S290c3U7CivnrJE+U2hvdTsKK+esmD5TZW47CivnrJk+U291Owor56ybPlRla2k7CivnrJ4+Q2hpOwor56ygPlJ5dXU7CivnrKU+U2hpOwor56ymPkZ1Owor56yoPkhvbjsKK+esrD5EYWk7CivnrLM+S2E7CivnrLU+SGFuOwor56y2PlNoaTsKK+ethT5TZW47CivnrYY+SGl0c3U7CivnrYg+S2F0c3U7CivnrYk+VG91Owor562LPktpbjsKK+etjD5TZW47CivnrY0+SnVuOwor562PPkJhdHN1Owor562QPkt5b3U7CivnrZE+Q2hpa3U7CivnrZI+VG91Owor562UPlRvdTsKK+etlj5TYWt1Owor562dPlNvdTsKK+etpT5LeW87Civnrac+S2VuOwor562sPlNlaTsKK+etrj5TZWk7CivnrbA+U2FrdTsKK+etsT5TaG91Owor5620Pkt5b3U7CivnrbU+RW47Civnrbo+S3lvdTsKK+euhj5IZWk7Civnroc+S2E7Civnros+U2VuOwor566NPktvOwor566PPlNvdTsKK+eukj5Tb3U7CivnrpQ+SGFrdTsKK+eulT5LaTsKK+eulz5TYW47Civnrpg+S2luOwor566ZPkZ1a3U7Civnrpo+U2F0c3U7Civnrpw+S291Owor566dPkthbjsKK+eunz5LaW47CivnrqE+S2FuOwor566qPlRhbjsKK+eurT5TZW47CivnrrE+U2hvdTsKK+eutD5TaGluOwor5664PkNobzsKK+evgD5TZXRzdTsKK+evgT5Lb3U7Civnr4Q+SGFuOwor56+GPlRlbjsKK+evhz5IZW47Civnr4k+Q2hpa3U7Civnr4s+S3lvdTsKK+evjD5Lb3U7Civnr48+S2FuOwor56+dPktvdTsKK+evoD5TaG91Owor56+kPlRva3U7Civnr6U+Uml0c3U7Civnr6Y+SGVpOwor56+pPlNoaTsKK+evrT5Sb3U7Civnr7M+SGl0c3U7Civnr7Y+RW47Civnr7c+SG91Owor57CAPlNha3U7CivnsIc+U291Owor57CNPlJvdTsKK+ewkT5TYTsKK+ewkj5TYW47CivnsJM+U2VuOwor57CUPlNhOwor57CfPlRlbjsKK+ewoT5LYW47CivnsKM+S2k7CivnsKc+S291Owor57CqPlNoaW47CivnsKs+U2hvdTsKK+ewtz5FbjsKK+ewuD5IYTsKK+ewvT5TZW47CivnsL4+UmVuOwor57C/PkJvOwor57GAPkNodXU7CivnsYM+UmFuOwor57GMPkNodXU7CivnsY0+U2VraTsKK+exkD5Ub3U7CivnsZQ+U3U7CivnsZY+U2VuOwor57GYPlRvdTsKK+exnz5SYWk7CivnsaA+Um91Owor57GkPlNlbjsKK+expT5ZYWt1Owor57GsPlJpOwor57GzPkJlaTsKK+eygz5IaTsKK+eyiT5GdW47Civnsos+U3VpOwor57KQPlJvOwor57KSPlJ5dXU7CivnspU+SGFrdTsKK+eylz5TbzsKK+eymD5OZW47Civnsps+U2h1a3U7Civnsp8+Wm9rdTsKK+eyoT5Ub3U7CivnsqI+U2hpOwor57KkPkV0c3U7CivnsqU+U2h1a3U7Civnsqc+U2hvdTsKK+eyqz5KaTsKK+eyrj5SeW91Owor57KxPlJ5b3U7CivnsrI+U2FuOwor57KzPktvdTsKK+eyuT5TdWk7Civnsr0+U291Owor57K+PlNlaTsKK+ezgj5TYW47Civns4U+SnV1Owor57OKPktvOwor57OSPkhpOwor57OWPlRvdTsKK+eznD5CaTsKK+eznj5GdW47Civns58+U291Owor57OgPktvdTsKK+ezoj5CbzsKK+ezpz5SeW91Owor57OvPkRhOwor57OyPlJlaTsKK+eztD5UZWtpOwor57O2PkNob3U7Civns7g+U2hpOwor57O6Pkt5dXU7Civns7s+S2VpOwor57O+Pkt5dXU7CivntIA+S2k7CivntII+Q2h1dTsKK+e0hD5ZYWt1Owor57SFPkt1Owor57SGPlU7CivntIo+QmluOwor57SLPk1vbjsKK+e0jT5Ub3U7CivntJA+Q2h1dTsKK+e0lD5TaHVuOwor57SVPkhpOwor57SXPlNhOwor57SYPktvdTsKK+e0mT5TaGk7CivntJo+S3l1dTsKK+e0mz5GdW47CivntJw+VW47CivntKA+U287CivntKE+Qm91Owor57SiPlNha3U7CivntKs+U2hpOwor57SsPkNodXU7CivntK4+U2F0c3U7CivntK8+UnVpOwor57SwPlNlaTsKK+e0sj5TZXRzdTsKK+e0sz5TaGluOwor57S1PkNobzsKK+e0uT5TaG91Owor57S6PktvbjsKK+e0vz5UYWk7CivntYI+U2h1dTsKK+e1gz5HZW47CivntYQ+U287CivntYU+S2VpOwor57WGPkJhbjsKK+e1iz5Lb3U7CivntYw+S2VpOwor57WOPktvdTsKK+e1jz5TZXRzdTsKK+e1kD5LZXRzdTsKK+e1lj5Lb3U7CivntZs+Sm91Owor57WePktvdTsKK+e1oT5SYWt1Owor57WiPktlbjsKK+e1oz5Ib3U7CivntaY+S3l1dTsKK+e1qD5KdXU7Civnta4+Sm87CivntbE+VG91Owor57WyPlNoaTsKK+e1sz5Lb3U7CivntbU+S2FpOwor57W2PlpldHN1Owor57W5PktlbjsKK+e1vT5SeW87Civntok+VG91Owor57aPPlN1aTsKK+e2kz5LZWk7Civntpk+S2VpOwor57aaPlpva3U7Civntpw+U291Owor57afPlJlaTsKK+e2oj5DaHV1Owor57ajPktlbjsKK+e2qz5TZW47Civntqw+SnU7Civntq0+STsKK+e2rj5LZWk7Civntq8+VG91Owor57awPldhbjsKK+e2sT5Lb3U7CivntrI+TW91Owor57a0PlRlaTsKK+e2tT5TYWk7Civntrg+UmluOwor57a6PktpOwor57a7PlRhbjsKK+e2vT5TaGFrdTsKK+e2vj5SeW91Owor57a/Pk1lbjsKK+e3hz5TaGk7Civnt4o+S2luOwor57eLPkhpOwor57ePPlNvdTsKK+e3kT5SeW9rdTsKK+e3kj5TaG87Civnt5g+S2FuOwor57eaPlNlbjsKK+e3nD5CZW47Civnt50+U2h1dTsKK+e3nj5UYW47Civnt6A+VGVpOwor57ehPkJpbjsKK+e3pD5TZXRzdTsKK+e3qD5IZW47Civnt6k+S2FuOwor57esPk1lbjsKK+e3rz5JOwor57eyPkJ5b3U7Civnt7Q+UmVuOwor57e7PkNoaTsKK+e4gT5FbjsKK+e4hD5Kb3U7CivnuIk+U2hpbjsKK+e4ij5FaTsKK+e4iz5Uc3VpOwor57iSPlNoaTsKK+e4mz5CYWt1Owor57iePktvdTsKK+e4nz5Kb2t1Owor57ihPlNhaTsKK+e4oj5Ub3U7CivnuKM+S2VuOwor57imPkp1dTsKK+e4qz5Ib3U7CivnuK4+U2h1a3U7CivnuLE+SnV1Owor57iyPlJ1aTsKK+e4tT5CYW47CivnuLc+UnU7CivnuLk+SHlvdTsKK+e4uj5SZW47CivnuLs+Qmk7CivnuL0+U291Owor57i+PlNla2k7CivnuYE+SGFuOwor57mDPkhvdTsKK+e5hj5LeXV1Owor57mKPlNlbjsKK+e5iz5LZWk7CivnuY0+U2h1dTsKK+e5lD5TaG9rdTsKK+e5lT5aZW47CivnuZY+U2FuOwor57mZPkhhbjsKK+e5mj5SeW91Owor57mdPkthbjsKK+e5nj5Kb3U7CivnuaY+S3lvdTsKK+e5pz5VbjsKK+e5qT5Kb3U7Civnuao+S2FpOwor57mtPktlbjsKK+e5sD5Tb3U7Civnubk+RWtpOwor57m7Pkp1Owor57m8PktlaTsKK+e5vT5IaW47Civnub8+UmFuOwor57qCPlNhbjsKK+e6iD5LZXRzdTsKK+e6iT5TYW47Civnuow+Wm9rdTsKK+e6jj5TZW47Civnuo8+VGVuOwor57qSPlRlbjsKK+e6kz5FaTsKK+e6lD5TYW47CivnupY+U2VuOwor57qbPlRvdTsKK+e6nD5SYW47CivnvLY+S2FuOwor57y4PktvdTsKK+e8uj5LZXRzdTsKK+e9hT5LYTsKK+e9jD5PdTsKK+e9jT5SYWk7CivnvY4+VGFuOwor572QPkthbjsKK+e9kT5Cb3U7CivnvZQ+Qm91Owor572VPkthbjsKK+e9mD5GdTsKK+e9nz5LbzsKK+e9oD5CaW47Civnvac+U2hpbjsKK+e9qD5BbjsKK+e9qT5Ub3U7Civnvao+WmFpOwor572rPktlaTsKK+e9rj5DaGk7CivnvbA+QmF0c3U7CivnvbI+U2hvOwor5721PkJhOwor5723PkhpOwor5724PkJhdHN1Owor5725PlJpOwor576CPktlbjsKK+e+gz5CZWtpOwor576FPlJhOwor576GPkhpOwor576HPktpOwor576IPktpOwor576KPllvdTsKK+e+jD5LeW91Owor576OPkJpOwor576UPktvdTsKK+e+mj5SZWk7Civnvp0+VGVpOwor576ePlNodXU7CivnvqM+R3VuOwor576kPkd1bjsKK+e+qD5TZW47Civnvqk+R2k7Civnvq4+S291Owor576vPkthdHN1Owor576yPkdpOwor5762PlNlbjsKK+e+uD5SdWk7Civnvrk+S291Owor5769PlU7Civnv4E+T3U7Civnv4U+U2hpOwor57+GPlN1aTsKK+e/ij5Zb2t1Owor57+MPllva3U7Civnv5I+U2h1dTsKK+e/lD5TaG91Owor57+VPkt5dXU7Civnv6A+U3VpOwor57+hPkhpOwor57+mPlNlbjsKK+e/qT5IZW47Civnv6s+R2FuOwor57+wPkthbjsKK+e/sz5FaTsKK+e/uT5HeW91Owor57+7PkhvbjsKK+e/vD5Zb2t1Owor6ICAPllvdTsKK+iAgT5Sb3U7CivogIM+S291Owor6ICEPk1vdTsKK+iAhT5TaGE7CivogIY+S2k7CivogIs+VGV0c3U7CivogIw+Smk7CivogJA+VGFpOwor6ICSPlJhaTsKK+iAlT5Lb3U7CivogJc+TW91Owor6ICYPlVuOwor6ICZPkhhOwor6ICcPlNoaTsKK+iAoT5KbzsKK+iAqD5Eb3U7CivogLM+Smk7CivogLY+WWE7CivogLs+Q2hpOwor6IC9PlRhbjsKK+iAvz5Lb3U7CivogYY+UmVpOwor6IGKPlJ5b3U7CivogZI+S2F0c3U7CivogZY+U2VpOwor6IGYPkhlaTsKK+iBmj5TaHV1Owor6IGePkJ1bjsKK+iBnz5TZWk7CivogaE+U291Owor6IGoPlJlbjsKK+iBrz5SZW47CivogbA+U291Owor6IGyPlNlaTsKK+iBsz5TaG91Owor6IG0PkNob3U7CivogbY+Sm91Owor6IG3PlNob2t1Owor6IG5PkRlaTsKK+iBvT5DaG91Owor6IG+PlJvdTsKK+iBvz5JdHN1Owor6IKEPkk7CivogoU+U2h1a3U7CivogoY+U2hpOwor6IKHPkNob3U7Civogok+TmlrdTsKK+iCiz5Sb2t1Owor6IKMPktpOwor6IKTPktvdTsKK+iClj5TaG91Owor6IKYPkNodXU7Civogpo+VG87Civogps+S291Owor6IKdPkthbjsKK+iCoT5LbzsKK+iCoj5TaGk7CivogqU+SGk7Civogqk+S2VuOwor6IKqPkJvdTsKK+iCrD5ZdXU7Civogq0+RG90c3U7Civogq8+S291Owor6IKxPktvdTsKK+iCsj5Ja3U7CivogrQ+S291Owor6IK6PkhhaTsKK+iDgz5JOwor6IOEPkNodXU7Civog4Y+VGFuOwor6IOMPkhhaTsKK+iDjj5UYWk7Civog5Y+SGFuOwor6IOZPlNvOwor6IOaPkhhaTsKK+iDmz5Lb3U7Civog50+Q2hpOwor6IOePkhvdTsKK+iDoT5LbzsKK+iDpD5JbjsKK+iDpT5TaG87Civog68+S287Civog7E+S291Owor6IO0PkRvdTsKK+iDuD5LeW91Owor6IO8PkhlbjsKK+iDvT5Ob3U7CivohII+U2hpOwor6ISFPkt5b3U7CivohIY+WmVpOwor6ISHPkt5b3U7CivohIg+TXlha3U7CivohIk+TXlha3U7CivohIo+U2VraTsKK+iEmj5LeWFrdTsKK+iEmz5LZWk7CivohKM+U2hpbjsKK+iEqT5TaHV1Owor6ISvPkhvOwor6ISxPkRhdHN1Owor6ISzPk5vdTsKK+iEuT5DaG91Owor6IS+PkhpOwor6IWGPlRlbjsKK+iFiz5Fa2k7CivohY4+SmluOwor6IWQPkZ1Owor6IWRPkZ1Owor6IWTPkhpOwor6IWUPktvdTsKK+iFlT5XYW47CivohZ8+Q2hpdHN1Owor6IWlPlNlaTsKK+iFpj5Ob3U7Civohas+U2hvdTsKK+iFrj5TYWk7CivohbA+WW91Owor6IWxPktlbjsKK+iFtD5ZdTsKK+iFuD5DaG91Owor6IW5PkZ1a3U7Civohbo+U2VuOwor6IW/PlRhaTsKK+iGgD5Ib3U7CivohoI+UnlvOwor6IaDPk90c3U7Civohog+S2FrdTsKK+iGij5IYWt1Owor6IaPPktvdTsKK+iGkz5DaG91Owor6IaVPktha3U7Civohpo+RnU7Civohpw+TWFrdTsKK+iGnT5TaGl0c3U7CivohqA+S291Owor6IajPkNoaXRzdTsKK+iGqD5Cb3U7Civohqk+Smk7CivohrA+SGFuOwor6IazPlNlbjsKK+iGtT5TdWk7Civohrg+WnVpOwor6Ia6PllvdTsKK+iGvT5UYW47Civohr4+S2FpOwor6Ia/PkRvdTsKK+iHgD5EZW47Civoh4I+SGk7Civoh4Y+T2t1Owor6IeIPlJvdTsKK+iHiT5SZW47Civoh40+U2VpOwor6IeRPkRhdTsKK+iHkz5ab3U7Civoh5g+Um91Owor6IeZPkVuOwor6IeaPlJ5bzsKK+iHnz5ab3U7Civoh6A+UmVuOwor6IejPlNoaW47Civoh6U+R2E7Civoh6c+Wm91Owor6IeoPlJpbjsKK+iHqj5TaGk7Civoh60+U2h1dTsKK+iHsz5TaGk7Civoh7Q+Q2hpOwor6Ie6PlRhaTsKK+iHuz5TaGluOwor6Ie8Pkt5dXU7Civoh74+WXU7CivoiIE+WW87CivoiII+U2hvdTsKK+iIhT5LeXV1Owor6IiHPllvOwor6IiIPkt5b3U7CivoiIk+S3lvOwor6IiKPkt5dXU7CivoiIw+WmV0c3U7CivoiI0+U2hhOwor6IiOPlNoYTsKK+iIkD5TaGk7CivoiJI+Sm87CivoiJY+SG87CivoiJc+SG87CivoiJg+S2FuOwor6IibPlNlbjsKK+iInD5TaHVuOwor6IiePkJ1Owor6IifPlNodXU7CivoiKk+U2VuOwor6IiqPktvdTsKK+iIqz5Ib3U7CivoiKw+SGFuOwor6IiuPlJvOwor6IizPkNoaWt1Owor6Ii1PlRhOwor6Ii2Pkhha3U7CivoiLc+S2VuOwor6Ii4PkthOwor6Ii5PlNlbjsKK+iJgD5GdTsKK+iJhz5UZWk7CivoiZg+U291Owor6ImZPlNvdTsKK+iJmj5Tb3U7CivoiZ8+RG91Owor6ImiPlNob3U7CivoiaQ+R2k7CivoiaY+S2FuOwor6ImoPk1vdTsKK+iJqj5SbzsKK+iJqz5SbzsKK+iJrj5Lb247Civoia8+UnlvdTsKK+iJsT5LYW47CivoibI+U2hva3U7CivoibY+RW47Civoibc+RW47Civoibg+U291Owor6Im+PkdhaTsKK+iKiz5VOwor6IqNPlNoYWt1Owor6IqSPkJvdTsKK+iKmT5GdTsKK+iKnT5TaGk7Civoip8+U2FuOwor6IqlPkthaTsKK+iKpj5SbzsKK+iKqz5HZW47Civoiqw+RnVuOwor6IqtPkJhOwor6IqvPlNoaW47CivoirE+S2E7CivoirM+SG91Owor6Iq4PkdlaTsKK+iKuT5LaW47Civoirs+U3V1Owor6Iq9PkdhOwor6IuFPkdhaTsKK+iLkT5FbjsKK+iLkj5aZW47Civoi5M+UmVpOwor6IuUPlRhaTsKK+iLlz5CeW91Owor6IuZPlJ5dXU7Civoi5s+S2E7Civoi5w+Qm9rdTsKK+iLnj5Ib3U7Civoi58+S291Owor6IuhPkk7Civoi6M+S3lvOwor6IulPkpha3U7Civoi6Y+S3U7Civoi6c+Q2hvOwor6IurPlNlbjsKK+iLsT5FaTsKK+iLsz5Ub3U7Civoi7Q+U287Civoi7k+SGVpOwor6Iu6Pk1haTsKK+iLuz5GdTsKK+iMgj5NbzsKK+iMgz5IYW47CivojIQ+S2E7CivojIU+Qm91Owor6IyGPkJvdTsKK+iMiT5NYXRzdTsKK+iMjj5LZWk7CivojJY+S2FrdTsKK+iMlz5NZWk7CivojJg+Umk7CivojJw+U2VuOwor6IyjPkdvOwor6IyoPlNoaTsKK+iMqz5Cb3U7CivojK8+RnVrdTsKK+iMsT5TaHU7CivojLI+Smk7CivojLQ+S2FpOwor6Iy1PkluOwor6Iy2PkNoYTsKK+iMuD5Kb3U7CivojLk+Sm87CivojYA+SnVuOwor6I2FPlRvdTsKK+iNiT5Tb3U7CivojYo+S2VpOwor6I2PPkppbjsKK+iNkD5TZW47CivojZI+S291Owor6I2YPlNvdTsKK+iNsz5Ub3U7CivojbU+SmluOwor6I23PkthOwor6I27PlRla2k7Civojbw+VG87CivojoU+Umk7Civojoc+Q2hvOwor6I6JPkNoaTsKK+iOij5Tb3U7Civojo4+U2E7CivojpM+TWFpOwor6I6WPktlaTsKK+iOmj5FbjsKK+iOnj5LYW47Civojp8+S2FuOwor6I6gPll1dTsKK+iOoj5LeW91Owor6I6oPlJvdTsKK+iOqj5HYTsKK+iOqz5CbzsKK+iOsT5SYWk7CivojrU+VG87Civojr0+Qm91Owor6I+BPlNlaTsKK+iPhT5LYW47Civoj4o+S2lrdTsKK+iPjD5LaW47Civoj44+S29uOwor6I+TPkthOwor6I+WPlNob3U7Civoj5g+U3V1Owor6I+cPlNhaTsKK+iPnz5UbzsKK+iPoD5IYTsKK+iPqT5IYWk7Civoj6s+S2luOwor6I+vPkthOwor6I+wPktvOwor6I+xPlJ5b3U7Civoj7I+SGk7Civoj7Q+QW47Civoj7c+U291Owor6I+7PlJpbjsKK+iPvT5TaHVrdTsKK+iQgz5TdWk7CivokIQ+VG91Owor6JCHPkNob3U7CivokIs+U2VpOwor6JCMPkhvdTsKK+iQjT5IZWk7CivokI4+STsKK+iQkz5HaTsKK+iQoD5Ib3U7CivokKk+U2h1dTsKK+iQqj5LdXdhOwor6JCsPk1hbjsKK+iQsT5LZW47CivokLU+V2E7CivokLg+WXU7CivokLw+R2FrdTsKK+iQvT5SYWt1Owor6JGGPkhvOwor6JGJPllvdTsKK+iRjj5SaXRzdTsKK+iRlz5DaG87CivokZs+S2F0c3U7CivokaE+SG87CivokaI+R2FpOwor6JGjPlRvdTsKK+iRpj5JOwor6JGpPkhhOwor6JGrPktvOwor6JGsPlNvdTsKK+iRrT5LYTsKK+iRrj5UYW47Civoka8+WWFrdTsKK+iRsT5Tb3U7CivokbU+S2k7Civokbc+R3VuOwor6JG5PlNoaTsKK+iRuj5TaHV1Owor6JKCPlRlaTsKK+iShD5LYW47Civokos+U2hvdTsKK+iSkD5TaHV1Owor6JKUPlNoaTsKK+iSmT5Cb3U7Civokpw+U2FuOwor6JKfPktvbjsKK+iSoT5Ib3U7Civokq0+U3V1Owor6JKyPkhvOwor6JK4PkpvdTsKK+iSuT5LZW47Civokrs+SmFrdTsKK+iSvD5Tb3U7Civokr8+S291Owor6JOBPlNoaW47Civok4Q+Q2hpa3U7Civok4Y+U2VraTsKK+iTiT5Zb3U7Civok4o+T3U7Civok4s+R2FpOwor6JONPlNoaTsKK+iTkD5Kb2t1Owor6JORPlNhOwor6JOWPkhpOwor6JOaPkNob3U7Civok6w+SG91Owor6JOuPlJlbjsKK+iTtD5TaHVuOwor6JO8PlJ5b3U7Civok78+U2h1a3U7CivolIA+SG91Owor6JSGPlJ5b3U7CivolJE+QmV0c3U7CivolJM+QmFuOwor6JSUPkZ1a3U7CivolJU+VGVpOwor6JSXPlNobzsKK+iUmD5TaGluOwor6JSaPlV0c3U7CivolJ8+Wm9rdTsKK+iUoT5TYWk7CivolKY+Q2hvdTsKK+iUrD5TbzsKK+iUrT5JbjsKK+iUtT5ab3U7CivolL0+SGVpOwor6JWAPkt5b2t1Owor6JWBPkppbjsKK+iVgz5CYW47CivolYg+U2hpbjsKK+iViT5TaG91Owor6JWKPlp1aTsKK+iViz5adWk7CivolY4+S3lvdTsKK+iVlT5ZdXU7CivolZc+Um87CivolZg+Sm91Owor6JWaPkdha3U7CivolaM+U2h1bjsKK+iVqD5LZXRzdTsKK+iVqT5Ub3U7Civolao+QnU7Civola0+U2hvdTsKK+iVtz5ZbzsKK+iVvj5SYWk7CivoloA+VW47CivoloQ+SGFrdTsKK+iWhz5CaTsKK+iWiD5LYWk7Civoloo+S2VpOwor6JaQPlJvdTsKK+iWkT5LeW91Owor6JaUPlNob2t1Owor6JaXPkVuOwor6JaZPlRlaTsKK+iWmz5TZXRzdTsKK+iWnD5IZWtpOwor6JakPkthaTsKK+iWpj5TZW47Civolqg+S291Owor6JapPlNhdHN1Owor6JaqPlNoaW47Civolqs+S3VuOwor6JasPllha3U7Civolq4+U291Owor6JavPlNobzsKK+iWuT5UYWk7Civolro+U2VpOwor6JeBPktvdTsKK+iXiT5TaGE7Civol40+UmFuOwor6JePPlpvdTsKK+iXkD5CYWt1Owor6JeVPkd1dTsKK+iXnD5SZWk7Civol50+R2VpOwor6JekPlRvdTsKK+iXpT5ZYWt1Owor6JepPkhhbjsKK+iXqj5Tb3U7Civol7c+U2hvOwor6Je5PkFpOwor6Je6PlJpbjsKK+iXuz5Tb3U7Civol74+UmFpOwor6JiCPlp1aTsKK+iYhj5SbzsKK+iYhz5TbzsKK+iYij5VbjsKK+iYiz5IaW47CivomJM+U287CivomJY+R2V0c3U7CivomJc+SGFrdTsKK+iYmj5TZW47CivomKI+Um91Owor6JitPlJhbjsKK+iYrz5Ub3U7CivomL8+UmE7CivomY0+S287CivomY4+S287CivomZA+R3lha3U7CivomZQ+S2VuOwor6JmVPlNobzsKK+iZmj5LeW87CivomZw+UnlvOwor6JmePkd1Owor6JmfPkdvdTsKK+iZpz5LaTsKK+iZqz5DaHV1Owor6JmxPlNoaXRzdTsKK+iZuT5Lb3U7Civombs+Qm91Owor6JqKPkJ1bjsKK+iaiz5aZWk7Civomow+SG91Owor6JqTPkluOwor6JqVPlNhbjsKK+iaoz5Lb3U7CivomqQ+U291Owor6JqpPlNoaTsKK+iaqj5Ub3U7Civomqs+SG91Owor6JqvPkt5dXU7CivomrA+WXV1Owor6Jq2PkthbjsKK+ibhD5LbzsKK+ibhj5TaG87Civom4c+SmE7Civom4k+UmVpOwor6JuLPlRhbjsKK+ibjT5LZWk7Civom44+UmVpOwor6JuUPkthaTsKK+ibmT5BOwor6JubPlNodTsKK+ibnj5LYXRzdTsKK+ibnz5Lb3U7Civom6Q+S291Owor6JupPkt5b3U7Civom6w+S3lvdTsKK+ibrT5TaGl0c3U7Civom64+QmFuOwor6Ju4PlNvdTsKK+ibuT5Zb3U7Civom7s+WmVpOwor6Ju+PkdhOwor6JyAPlNob2t1Owor6JyCPkhvdTsKK+icgz5TaGluOwor6JyGPktlbjsKK+iciD5HbzsKK+iciT5GdTsKK+icij5SaTsKK+icjT5TaG87CivonJE+VGFuOwor6JySPkVuOwor6JyYPkNoaTsKK+icmj5IaTsKK+icnD5NaXRzdTsKK+icpT5TZWtpOwor6JypPkNob3U7CivonLQ+RWtpOwor6Jy3PktlbjsKK+icuz5TZWk7CivonL8+RW47CivonYk+U2VuOwor6J2LPlJvdTsKK+idjD5LYTsKK+idjj5LYXRzdTsKK+idkz5ZdTsKK+idlT5TaG9rdTsKK+idlz5Lb3U7CivonZk+SGVuOwor6J2fPkk7CivonaA+RnVrdTsKK+idoz5ZdXU7CivonaY+S2E7Civonag+U2hpdHN1Owor6J2qPlRvdTsKK+idrj5GdWt1Owor6J20PktvOwor6J22PkNob3U7Civonbg+S2E7Civonb8+WW91Owor6J6CPlJvdTsKK+iejT5ZdXU7Civonp8+TWVpOwor6J6iPktlaTsKK+ieqz5TZWtpOwor6J6vPkdvdTsKK+iesz5Ub3U7Civonro+UmE7Civonrs+Um91Owor6J69PlNodXU7Civon4A+U2h1dHN1Owor6J+EPkNoaXRzdTsKK+ifhj5CYTsKK+ifhz5CYTsKK+ifiz5TaGl0c3U7Civon5A+VG91Owor6J+SPkJvdTsKK+ifoD5IYW47Civon68+R3lvdTsKK+ifsj5LaTsKK+iftj5UZWk7Civon7c+VG91Owor6J+5PkthaTsKK+ifuz5HaTsKK+ifvj5TZW47CivooIU+WW91Owor6KCNPkthdHN1Owor6KCOPkJvdTsKK+igjz5LYWk7CivooJE+RWk7CivooJU+RGE7CivooJY+S2FrdTsKK+igoT5SZWk7CivooKI+U2h1bjsKK+igoz5SZWk7CivooKc+VG87CivooLE+S287CivooLY+U2FuOwor6KC5PlRvOwor6KC7PkJhbjsKK+ihgD5LZXRzdTsKK+ihgj5KaWt1Owor6KGEPkppa3U7CivooYY+U2h1dTsKK+ihjD5Lb3U7CivooY0+RW47CivooZI+S2VuOwor6KGTPkp1dHN1Owor6KGXPkdhaTsKK+ihmT5HeW87CivooZs+RWk7CivooZ0+U2hvdTsKK+ihnj5FaTsKK+ihoT5Lb3U7CivooaI+S3U7CivooaM+STsKK+ihqD5IeW91Owor6KGrPlNhbjsKK+ihsD5TYTsKK+ihsj5Eb3U7CivoobU+Sml0c3U7Civoobc+Q2h1dTsKK+ihvT5KaW47Civoob4+S2luOwor6KG/PktpbjsKK+iigT5FbjsKK+iigj5CZWk7Civooog+S2E7Civooos+VGFpOwor6KKNPkhvdTsKK+iikj5UYW47CivoopY+U2h1dTsKK+iilz5TaGluOwor6KKZPkhhOwor6KKePktvbjsKK+iioj5IYW47CivooqQ+Qm91Owor6KKrPkhpOwor6KKuPk5lOwor6KKxPkZ1a3U7CivoorQ+S287CivoorU+SmluOwor6KK3PktvdTsKK+iivz5LZWk7Civoo4E+U2FpOwor6KOCPlJldHN1Owor6KOFPlNvdTsKK+ijjz5SaTsKK+ijlD5FaTsKK+ijlT5ZdXU7Civoo5g+S3l1dTsKK+ijmT5LdW47Civoo5w+SG87Civoo50+U291Owor6KOfPlNhOwor6KOhPlJpOwor6KOoPkhpOwor6KOyPlJ5b3U7Civoo7M+U2hvdTsKK+ijtD5IYWk7Civoo7g+UmE7Civoo7k+S2E7Civoo7w+U2VraTsKK+ijvT5TZWk7Civoo74+S3lvOwor6KSCPkthaTsKK+ikhz5GdWt1Owor6KSKPkhlbjsKK+ikjD5Lb247CivopJA+S2F0c3U7CivopJI+SG91Owor6KSTPkhvOwor6KSdPlRhbjsKK+iknj5PbjsKK+ikpT5Kb2t1Owor6KSqPlRhaTsKK+ikqz5DaGk7CivopLY+Q2hvdTsKK+ikuD5Sb3U7CivopLs+U2V0c3U7CivopYE+S3lvdTsKK+ilgz5Ib3U7CivopYQ+Sm91Owor6KWMPlRhbjsKK+iljT5aYXRzdTsKK+illj5PdTsKK+ilnj5IZWtpOwor6KWfPktpbjsKK+iloD5Ub3U7CivopaQ+UmFuOwor6KWmPkp1Owor6KWqPkJldHN1Owor6KWtPktldHN1Owor6KWvPlNoaW47CivopbI+U2h1dTsKK+iltD5SYW47Civopb4+QWthOwor6KW/PlNlaTsKK+imgT5Zb3U7CivopoM+VGFuOwor6KaGPkZ1a3U7Civopoc+SGE7Civopog+S2FrdTsKK+imij5LaTsKK+imiz5LZW47Civopo8+S2k7CivoppM+QmVraTsKK+imlj5TaGk7Civoppc+U2hpOwor6KaYPlRlbjsKK+immj5LYWt1Owor6KahPkdla2k7CivopqY+WXU7Civopqc+UmFuOwor6KapPlRvOwor6KaqPlNoaW47Civopqw+S2k7Civopq8+S291Owor6KayPktpbjsKK+imsz5LYW47Civopro+S2FrdTsKK+imvT5SYW47Civopr8+VGVraTsKK+ingD5LYW47Civop5I+S2FrdTsKK+inmj5LbzsKK+innD5TaGk7Civop50+VGVpOwor6KejPkthaTsKK+inpj5TaG9rdTsKK+inpz5LYWk7Civop7Q+U2hvdTsKK+inuD5TaG9rdTsKK+iogD5HZW47CivoqII+VGVpOwor6KiDPkZ1Owor6KiIPktlaTsKK+ioij5KaW47CivoqIw+S291Owor6KiOPlRvdTsKK+iokD5LZXRzdTsKK+iokz5LdW47CivoqJY+S2l0c3U7CivoqJc+VGFrdTsKK+iomD5LaTsKK+iomz5LYTsKK+ionT5HYTsKK+ionz5TaG91Owor6KijPktldHN1Owor6KilPlRvdHN1Owor6KiqPkhvdTsKK+iorT5TZXRzdTsKK+iosT5LeW87CivoqLM+WWFrdTsKK+iotD5TbzsKK+iotj5LYTsKK+iouj5TaGluOwor6Ki7PkNodXU7CivoqLw+U2hvdTsKK+ipgT5LbzsKK+iphj5UZWk7CivoqYg+Umk7CivoqZA+U2E7CivoqZE+VGE7CivoqZI+VGFpOwor6KmUPlNob3U7CivoqZU+SHlvdTsKK+ipmz5TbzsKK+ipnj5TaGk7CivoqaA+RWk7CivoqaI+SnVuOwor6KmjPktlaTsKK+ippj5TaGk7Civoqak+U2hpOwor6KmrPlRhOwor6KmsPktvdTsKK+iprT5LaTsKK+iprj5TZW47CivoqbA+S2l0c3U7CivoqbE+V2E7CivoqbI+R2FpOwor6KmzPlNob3U7Civoqbw+S2FpOwor6KqCPkNob3U7CivoqoQ+UnVpOwor6KqFPkNodXU7Civoqoc+S287Civoqok+WW87Civoqow+U2hpOwor6KqNPk5pbjsKK+iqkT5LeW91Owor6KqTPlNlaTsKK+iqlT5UYW47Civoqpg+WXV1Owor6KqaPlNob3U7Civoqp4+R287CivoqqA+U2VpOwor6KqhPkthaTsKK+iqoz5GdTsKK+iqpD5HbzsKK+iqpT5Lb3U7CivoqqY+U2hvdTsKK+iqqD5LYWk7Civoqqw+U2V0c3U7Civoqq0+VG9rdTsKK+iqsD5TdWk7CivoqrI+S2E7Civoqrk+SGk7Civoqrw+R2k7Civoqr8+Q2hvdTsKK+irgj5UZW47Civoq4Q+SnVuOwor6KuHPkRhbjsKK+iriz5TZWk7Civoq4w+S2FuOwor6KuNPlNvdTsKK+irjz5TaHU7Civoq5I+UnlvdTsKK+irlj5Sb247Civoq5o+Sm91Owor6KubPll1Owor6KucPkNob3U7Civoq54+SGVuOwor6KugPktlbjsKK+iroT5TaGk7Civoq6I+S29uOwor6KukPkdha3U7Civoq6Y+VGVpOwor6KunPkthaTsKK+irqz5LYW47Civoq60+WXU7Civoq64+U2hpOwor6KuxPktpOwor6KuzPkFuOwor6Ku3PkZ1dTsKK+iruD5TaG87Civoq7o+R2VuOwor6Ku+PkRha3U7CivorIA+Qm91Owor6KyBPkV0c3U7CivorII+STsKK+ishD5Ub3U7CivorIc+S2VuOwor6KyMPkthOwor6KyOPk1laTsKK+iskD5IaXRzdTsKK+islD5HeWFrdTsKK+islj5TaG9rdTsKK+islz5Cb3U7CivorJk+S2VuOwor6KyaPlNoaTsKK+ismz5Lb3U7CivorJ0+U2hhOwor6KygPllvdTsKK+isoT5Zb3U7CivorKY+S2VpOwor6KyoPkJvOwor6KyrPlRha3U7CivorKw+QnlvdTsKK+issz5PdTsKK+isuT5LaW47CivorL4+QmFuOwor6K2BPkthOwor6K2JPlNob3U7CivorYw+S2E7CivorY4+S2l0c3U7CivorY8+S2k7CivorZY+U2hpbjsKK+itmD5TaGlraTsKK+itmj5UYW47CivorZs+U2hpbjsKK+itnD5GdTsKK+itnz5Tb3U7CivoraY+S2VpOwor6K2rPlNlbjsKK+itrD5IaTsKK+itrz5ZYWt1Owor6K2wPkdpOwor6K2xPlplbjsKK+itsj5Kb3U7CivorbQ+S2VuOwor6K23PkdvOwor6K29PllvOwor6K6APlRva3U7CivoroM+U2FuOwor6K6KPkhlbjsKK+iujD5FbjsKK+iujj5TaHV1Owor6K6QPlNodXU7CivorpI+U2FuOwor6K6TPkpvdTsKK+iulj5TaGluOwor6K6ZPkthbjsKK+iumj5TYW47CivosLc+S29rdTsKK+iwuj5LYTsKK+iwvz5LZWk7CivosYE+S2F0c3U7CivosYY+VG91Owor6LGIPktpOwor6LGKPkhvdTsKK+ixjD5FbjsKK+ixjj5KdTsKK+ixkD5Ib3U7CivosZU+U2hpOwor6LGaPlRvbjsKK+ixoT5TaG91Owor6LGiPktlbjsKK+ixqj5Hb3U7Civosas+WW87Civosaw+Q2hvOwor6LG4PkNoaTsKK+ixuT5Ib3U7Civosbo+U2FpOwor6LG8PkhpOwor6LKCPkNob3U7CivosoU+S3l1dTsKK+iyiT5LYWt1Owor6LKKPkhha3U7Civosow+Qm91Owor6LKNPlJpOwor6LKOPkdlaTsKK+iylD5IaTsKK+iymD5CYWt1Owor6LKdPkJhaTsKK+iynj5UZWk7CivosqA+RnU7CivosqE+WmFpOwor6LKiPktvdTsKK+iypz5IaW47Civosqg+S2E7Civosqk+SGFuOwor6LKqPkRvbjsKK+iyqz5LYW47Civosqw+U2VraTsKK+iyrT5TaGl0c3U7Civosq4+Tmk7Civosq8+Q2hvOwor6LKwPlNlaTsKK+iysj5TaGk7CivosrM+Tmk7CivosrQ+S2k7CivosrY+SGVuOwor6LK3PkJhaTsKK+iyuD5UYWk7Civosrs+SGk7Civosrw+VGVuOwor6LK9Pkk7Civosr8+Qm91Owor6LOAPkdhOwor6LOBPkhpOwor6LOCPlJvOwor6LODPkNoaW47Civos4Q+V2FpOwor6LOHPlNoaTsKK+iziD5LbzsKK+izij5ab2t1Owor6LONPlNvdTsKK+izjj5TZW47Civos5E+U2hpbjsKK+izkz5IaW47Civos5o+UmFpOwor6LObPlNhbjsKK+iznD5TaGk7Civos54+U2hvdTsKK+izoD5CYWk7Civos6I+S2VuOwor6LOjPkJhaTsKK+izpD5TZW47Civos6Y+RnU7Civos6o+U2hpdHN1Owor6LOtPlRvOwor6LO6PlRhbjsKK+izuz5GdTsKK+izvD5Lb3U7Civos70+U2FpOwor6LSEPlNoaTsKK+i0hT5aZWk7CivotIc+SW47CivotIg+Wm91Owor6LSKPlNhbjsKK+i0iz5HYW47CivotI0+U2VuOwor6LSPPkVpOwor6LSQPlNoaW47CivotJM+Wm91Owor6LSUPkhpOwor6LSWPlNob2t1Owor6LWkPlNla2k7CivotaY+U2hhOwor6LWnPlRhbjsKK+i1qz5LYWt1Owor6LWtPlNoYTsKK+i1sD5Tb3U7CivotbE+U291Owor6LWzPkt5dXU7CivotbQ+RnU7Civotbc+S2k7CivotoE+Q2hpbjsKK+i2hT5DaG91Owor6LaKPkV0c3U7Civotpk+Q2hvdTsKK+i2oz5TaHU7Civotqg+U3V1Owor6LazPlNva3U7Civotro+RnU7Civotr4+U2hpOwor6LeCPktpOwor6LeLPkJhdHN1Owor6LeMPlRldHN1Owor6LePPkthOwor6LeWPlNla2k7Civot5o+U2FuOwor6LebPkhhOwor6LedPkt5bzsKK+i3nz5Lb247Civot6E+U2VraTsKK+i3oz5TZW47Civot6g+S287Civot6o+S2k7Civot6s+S3lvdTsKK+i3rz5SbzsKK+i3sz5DaG91Owor6Le1PlNlbjsKK+i3vD5LeW9rdTsKK+i3vz5UbzsKK+i4iD5TaG87CivouIk+UnlvdTsKK+i4ij5Zb3U7CivouI8+VG91Owor6LiQPlNlbjsKK+i4nT5LYTsKK+i4nj5LeW87CivouJ8+Q2hpOwor6LiqPlNob3U7CivouLA+WXU7CivouLQ+WW91Owor6Li1PlNob3U7CivouYI+SnV1Owor6LmEPlRlaTsKK+i5hz5LZW47CivouYg+VG91Owor6LmJPlNhOwor6LmKPktlaTsKK+i5jD5TaG91Owor6LmQPlNla2k7CivouZU+SGl0c3U7CivouZk+U2h1a3U7CivouZ8+U2VraTsKK+i5oD5TZWtpOwor6LmjPk1hbjsKK+i5pD5TaG91Owor6LmyPlNvbjsKK+i5tD5TaHV1Owor6Lm2PktldHN1Owor6Lm8PkJva3U7CivouoE+U291Owor6LqEPkhla2k7CivouoU+Q2hva3U7Civouoc+Q2hvOwor6LqKPkNodXU7Civouos+U2VpOwor6LqNPllha3U7CivoupE+VGVraTsKK+i6kz5DaGk7CivoupQ+VGVuOwor6LqZPlJpbjsKK+i6oT5Kb3U7Civouqo+UmluOwor6LqrPlNoaW47Civouqw+S3l1dTsKK+i6rz5LdTsKK+i6sD5UZWk7CivourE+VGE7Civou4Y+VGVpOwor6LuKPlNoYTsKK+i7iz5BdHN1Owor6LuMPktpOwor6LuNPkd1bjsKK+i7kj5LZW47Civou5s+QWt1Owor6LufPk5hbjsKK+i7oj5UZW47Civou6M+R291Owor6LurPlNoaW47Civou7g+SmlrdTsKK+i7uz5LYTsKK+i7vD5JdHN1Owor6Lu9PktlaTsKK+i7vj5TaG9rdTsKK+i8gz5LYWt1Owor6LyFPlJvOwor6LyJPlNhaTsKK+i8ij5DaGk7CivovIw+UnlvdTsKK+i8kj5DaG91Owor6LyTPkJhbjsKK+i8lD5GdTsKK+i8lT5LZWk7CivovJk+Q2hvdTsKK+i8mz5SeW91Owor6LycPlNoaTsKK+i8nT5LaTsKK+i8nz5UZXRzdTsKK+i8pj5SZW47CivovKk+SGFpOwor6LyqPlJpbjsKK+i8rz5TaHV1Owor6LyzPlNvdTsKK+i8uD5ZdTsKK+i8uT5GdWt1Owor6Ly7PkZ1a3U7CivovL4+VGVuOwor6Ly/PllvOwor6L2CPktva3U7CivovYQ+S2F0c3U7CivovYU+RW47CivovYY+Um9rdTsKK+i9iT5UZW47CivovY0+VGV0c3U7CivovY4+S3lvdTsKK+i9lz5LYW47CivovZw+Smk7CivovZ8+R291Owor6L2hPkhpOwor6L2iPlJla2k7CivovaM+UmVraTsKK+i9pD5SbzsKK+i+mz5TaGluOwor6L6cPktvOwor6L6ePkppOwor6L6fPkhla2k7CivovqM+UmF0c3U7Civovqc+QmVuOwor6L6oPkJlbjsKK+i+rT5KaTsKK+i+rj5IZW47Civovq8+QmVuOwor6L6wPlNoaW47CivovrE+Sm9rdTsKK+i+sj5Ob3U7Civovro+SGVuOwor6L6/PlRlbjsKK+i/gj5VOwor6L+EPktpdHN1Owor6L+FPkppbjsKK+i/jj5HZWk7Civov5E+S2luOwor6L+UPkhlbjsKK+i/oj5DaG91Owor6L+lPktlaTsKK+i/pj5LYTsKK+i/qT5KaTsKK+i/qj5UZWtpOwor6L+rPkhha3U7Civov60+VGV0c3U7Civov68+VG91Owor6L+wPkp1dHN1Owor6L+0PkthaTsKK+i/tz5NZWk7Civov7g+SG91Owor6L+5PlNla2k7Civov7o+RGFpOwor6L+9PlRzdWk7CivpgIA+VGFpOwor6YCBPlNvdTsKK+mAgz5Ub3U7CivpgIU+S291Owor6YCGPkd5YWt1Owor6YCLPkhvOwor6YCNPlNob3U7CivpgI4+U2h1dTsKK+mAjz5Ub3U7CivpgJA+Q2hpa3U7CivpgJE+S3l1dTsKK+mAkz5UZWk7CivpgJQ+VG87CivpgJU+S2VpOwor6YCWPlRla2k7CivpgJc+VG91Owor6YCZPkdlbjsKK+mAmj5UczsKK+mAnT5TZWk7CivpgJ4+VGVpOwor6YCfPlNva3U7CivpgKA+Wm91Owor6YChPlNodW47CivpgKI+SG91Owor6YCjPlJlbjsKK+mArj5UYWk7CivpgLE+U2h1dTsKK+mAsj5TaGluOwor6YC1PktpOwor6YC2Pkk7CivpgLg+SXRzdTsKK+mAuT5UYXRzdTsKK+mAvD5IaXRzdTsKK+mAvj5ZdTsKK+mBgT5Ub247CivpgYI+U3VpOwor6YGFPkNoaTsKK+mBhz5HdXU7CivpgYk+VGVpOwor6YGKPll1dTsKK+mBiz5VbjsKK+mBjT5IZW47CivpgY4+S2E7CivpgY8+QXRzdTsKK+mBkD5LYTsKK+mBkT5Lb3U7CivpgZI+U2h1dTsKK+mBkz5Eb3U7CivpgZQ+VGF0c3U7CivpgZU+STsKK+mBmD5Lb3U7CivpgZk+WW91Owor6YGcPlNvbjsKK+mBnj5UZWk7CivpgaA+RW47CivpgaE+U287CivpgaM+S2VuOwor6YGlPllvdTsKK+mBqD5Hb3U7Civpgak+VGVraTsKK+mBrT5Tb3U7Civpga4+U2hhOwor6YGvPlRvbjsKK+mBsj5DaGk7CivpgbU+SnVuOwor6YG2PkpvdTsKK+mBtz5TZW47Civpgbg+U2VuOwor6YG6Pkk7Civpgbw+UnlvdTsKK+mBvT5LeW87Civpgb8+SGk7CivpgoA+WW91Owor6YKBPkJhaTsKK+mCgj5LYWk7CivpgoM+U3VpOwor6YKEPkthbjsKK+mChz5KaTsKK+mCiT5IZW47Civpgoo+SGVuOwor6YKPPlJhOwor6YKRPll1dTsKK+mCoz5EYTsKK+mCpj5Ib3U7Civpgqg+U29uOwor6YKqPllhOwor6YKvPkthbjsKK+mCsT5LeXV1Owor6YK1PlNob3U7Civpgrg+VGVpOwor6YOBPklrdTsKK+mDij5Lb3U7Civpg44+Um91Owor6YObPkZ1Owor6YOhPkd1bjsKK+mDoj5FaTsKK+mDpD5HZWtpOwor6YOoPkJ1Owor6YOtPktha3U7Civpg7U+WXV1Owor6YO3Pkt5b3U7Civpg70+VG87CivphII+R2FrdTsKK+mEkj5TdXU7CivphJk+SGk7CivphK0+VGVpOwor6YSwPlJpbjsKK+mEsj5UYW47CivphYk+WXV1Owor6YWKPlRlaTsKK+mFiz5TaHV1Owor6YWMPlNoYWt1Owor6YWNPkhhaTsKK+mFjj5DaHV1Owor6YWSPlNodTsKK+mFlD5TdWk7CivphZY+VGFuOwor6YWYPlRvdTsKK+mFoj5TYWt1Owor6YWjPkthbjsKK+mFpT5TbzsKK+mFqT5NZWk7Civphao+UmFrdTsKK+mFrD5TaHV1Owor6YWyPlRlaTsKK+mFsz5JbjsKK+mFtT5Lb3U7Civphbc+S29rdTsKK+mFuD5TYW47CivphoI+UmluOwor6YaHPlNodW47Civphok+U3VpOwor6YaLPlNha3U7Civpho0+VGVpOwor6YaQPktvOwor6YaSPlNlaTsKK+mGlz5IYXRzdTsKK+mGnD5TaHV1Owor6YaiPkthaTsKK+mGpD5TaG91Owor6YaqPlJvdTsKK+mGqz5JOwor6YavPktlaTsKK+mGtD5SZWk7CivphrU+S3lvOwor6Ya4PkpvdTsKK+mGuj5LdW47Civph4A+Sm91Owor6YeBPktpbjsKK+mHhj5IYW47Civph4c+U2FpOwor6YeIPlNoYWt1Owor6YeJPll1dTsKK+mHiz5TaGFrdTsKK+mHjD5SaTsKK+mHjT5DaG91Owor6YeOPllhOwor6YePPlJ5b3U7Civph5A+Umk7Civph5E+S2luOwor6YeWPlRvdTsKK+mHmD5UZWk7Civph5s+S29rdTsKK+mHnD5GdTsKK+mHnT5TaGluOwor6YefPkhhdHN1Owor6YehPkZ1Owor6YejPkNob3U7Civph6Y+S291Owor6YenPlNlbjsKK+mHtT5TYTsKK+mHtj5TaGk7Civph7w+S2VuOwor6Ye/PktpbjsKK+mIjT5Eb247CivpiI4+S291Owor6YiRPkhhbjsKK+mIlD5TaG91Owor6YiVPkNodXU7CivpiJ4+S2luOwor6YipPlJvOwor6YisPlRha3U7CivpiLQ+UmVpOwor6Yi3PktvOwor6Yi/PlRlbjsKK+mJhD5UZXRzdTsKK+mJhT5LeW87CivpiYg+U2hhOwor6YmJPktlbjsKK+mJiz5Ib3U7CivpiZA+U2VraTsKK+mJlz5LYW47CivpiZo+Unl1dTsKK+mJmz5FbjsKK+mJnj5FdHN1Owor6YmiPkhhY2hpOwor6YmkPktvdTsKK+mJpj5TZWk7CivpibE+S291Owor6Ym+PkJvdTsKK+mKgD5HaW47CivpioM+SnV1Owor6YqFPkRvdTsKK+mKkT5TZW47CivpipM+U2VuOwor6YqVPlRldHN1Owor6YqWPlNodTsKK+mKmD5NZWk7Civpipo+WW91Owor6YqbPlNlbjsKK+mKnD5LYW47Civpiq0+U2VuOwor6Yq3PlNob3U7Civpirk+U2h1dTsKK+mLjz5LeW91Owor6YuSPkhvdTsKK+mLpD5KbzsKK+mLqT5Cb3U7Civpi6o+SG87Civpi60+RWk7Civpi7M+Q2h1dTsKK+mLuD5LeW87Civpi7o+RW47Civpi7w+S291Owor6YyGPlNlaTsKK+mMjz5BOwor6YyQPlN1aTsKK+mMmD5Uc3VpOwor6YyZPlNoaTsKK+mMmj5Tb3U7CivpjKA+Sm91Owor6YyiPlNlbjsKK+mMoz5UZWk7CivpjKY+S2luOwor6YyoPkJ5b3U7CivpjKs+U2VraTsKK+mMrD5SZW47CivpjK4+S287CivpjK8+U2FrdTsKK+mMsj5Sb2t1Owor6Yy7PkJ1Owor6Y2EPktlaTsKK+mNiz5LYTsKK+mNjT5UbzsKK+mNlD5HYWt1Owor6Y2WPkNoaW47CivpjZs+VGFuOwor6Y2cPkthOwor6Y2gPktvdTsKK+mNrD5TaHV1Owor6Y2uPkNodXU7CivpjbU+S2VuOwor6Y28PlNoaW47Civpjb4+U2hvdTsKK+mOjD5SZW47CivpjpQ+WW91Owor6Y6WPlNhOwor6Y6XPlNvdTsKK+mOmj5Uc3VpOwor6Y6nPkdhaTsKK+mOrD5Lb3U7Civpjq0+Q2hpbjsKK+mOrj5DaGluOwor6Y6wPkl0c3U7Civpj4M+Wm9rdTsKK+mPiD5SZW47Civpj5A+Unl1dTsKK+mPkT5UZWtpOwor6Y+WPk91Owor6Y+XPktvdTsKK+mPmD5TaG91Owor6Y+dPk1hbjsKK+mPoT5LeW91Owor6Y+kPlJvdTsKK+mPpT5TaHV1Owor6Y+oPlNhbjsKK+mQgz5Eb3U7CivpkIc+SGFuOwor6ZCQPlJ5b3U7CivpkJM+VGFpOwor6ZCUPlNoaW47CivpkJg+U2hvdTsKK+mQmT5Ub3U7CivpkJo+QTsKK+mQoT5UZXRzdTsKK+mQqz5TZW47CivpkLU+VGV0c3U7CivpkLY+S2FuOwor6ZC4PlRha3U7CivpkLo+VG91Owor6ZGBPkJhbjsKK+mRhD5DaHV1Owor6ZGRPkthbjsKK+mRkj5LYW47CivpkZo+U2FuOwor6ZGbPktvdTsKK+mRnj5Sb3U7CivpkaA+U2hha3U7CivpkaI+UnlvOwor6ZGqPlJvOwor6ZGwPllha3U7CivpkbU+S2FuOwor6ZG3PkpvdTsKK+mRvD5SYTsKK+mRvT5TYW47Civpkb4+UmFuOwor6ZG/PlNha3U7CivpkoE+S2FrdTsKK+mVtz5DaG91Owor6ZaAPk1vbjsKK+mWgj5TYW47CivploM+U2VuOwor6ZaHPkhlaTsKK+mWiT5IZWk7Civplos+S2FpOwor6ZaPPkp1bjsKK+mWkT5LYW47CivplpM+S2FuOwor6ZaUPkJpbjsKK+mWmD5Lb3U7Civplpk+VG91Owor6ZaiPkthbjsKK+mWoz5LYWt1Owor6ZakPktvdTsKK+mWpT5CYXRzdTsKK+mWpz5Lb3U7Civplqg+S2VpOwor6ZatPlJvOwor6ZayPkV0c3U7Civplrk+RW47Civplrs+RW47Civplrw+QTsKK+mWvj5Zb2t1Owor6ZeDPkdla2k7Civpl4c+QW47Civpl4o+S2F0c3U7Civpl4w+UmFuOwor6ZeNPlRvOwor6ZeUPktvdTsKK+mXlT5LZXRzdTsKK+mXlj5DaGluOwor6ZeYPlRvdTsKK+mXnD5LYW47Civpl6E+U2VuOwor6ZeiPkhla2k7Civpl6U+VGF0c3U7CivpmJw+RnU7CivpmKE+U2VuOwor6ZioPkFrdTsKK+mYqj5IYW47CivpmK4+R2VuOwor6ZivPlNoaTsKK+mYsj5Cb3U7CivpmLs+U287CivpmL8+QTsKK+mZgD5EYTsKK+mZgj5IYTsKK+mZhD5GdTsKK+mZiz5Sb3U7CivpmYw+SGFrdTsKK+mZjT5Lb3U7CivpmY8+VGE7CivpmZA+R2VuOwor6ZmbPkhlaTsKK+mZnD5Lb3U7CivpmZ0+U2VuOwor6ZmePlNob3U7CivpmZ8+Q2hva3U7CivpmaI+SW47CivpmaM+SmluOwor6ZmkPkpvOwor6ZmlPkthbjsKK+mZpj5Ub3U7Civpmao+QmFpOwor6ZmsPlN1dTsKK+mZsD5JbjsKK+mZsj5TdWk7CivpmbM+Q2hpbjsKK+mZtT5SeW91Owor6Zm2PlRvdTsKK+mZtz5LYW47Civpmbg+UmlrdTsKK+mZuj5LZW47Civpmb0+WW91Owor6ZqFPkd1dTsKK+mahj5SeXV1Owor6ZqIPldhaTsKK+maij5UYWk7Civpmos+VGE7Civpmo0+S291Owor6ZqOPkthaTsKK+majz5adWk7CivpmpQ+S2FrdTsKK+malT5JbjsKK+malz5LYWk7Civpmpg+QWk7Civpmpk+R2VraTsKK+mamz5TYWk7Civpmpw+U2hvdTsKK+maoD5JbjsKK+maoz5SaW47Civpmqc+U3VpOwor6ZqoPlp1aTsKK+maqj5LZW47CivpmrA+U2hpdHN1Owor6ZqxPkluOwor6ZqyPlNoaXRzdTsKK+matD5Sb3U7CivpmrY+VGFpOwor6Zq3PlJlaTsKK+mauD5SZWk7Civpmrk+U3VpOwor6Zq7PlNla2k7Civpmrw+SnVuOwor6ZuAPkpha3U7Civpm4E+R2FuOwor6ZuEPll1dTsKK+mbhT5HYTsKK+mbhj5TaHV1Owor6ZuHPktvOwor6ZuJPkNoaTsKK+mbiz5TZW47Civpm4w+U2hpOwor6ZuNPllvdTsKK+mbjj5TaG87Civpm5E+WmF0c3U7Civpm5U+Q2hvdTsKK+mblj5TdWk7Civpm5k+U291Owor6ZubPlN1dTsKK+mbnD5aYXRzdTsKK+mboj5SaTsKK+mboz5OYW47Civpm6g+VTsKK+mbqj5TZXRzdTsKK+mbqz5EYTsKK+mbsD5GdW47Civpm7I+VW47Civpm7Y+UmVpOwor6Zu3PlJhaTsKK+mbuT5IYWt1Owor6Zu7PkRlbjsKK+mcgD5KdTsKK+mchD5TaG91Owor6ZyGPlRlaTsKK+mchz5TaGluOwor6ZyIPkhhaTsKK+mcij5SZWk7CivpnI0+S2FrdTsKK+mcjj5Tb3U7CivpnI8+SGk7CivpnJE+VGVuOwor6ZyTPkdlaTsKK+mclj5SaW47CivpnJk+RWk7CivpnJw+U291Owor6ZyePkthOwor6ZykPlJ5dXU7CivpnKc+TXU7CivpnKo+SW47CivpnLA+U2FuOwor6ZyyPlJvOwor6Zy4Pkhha3U7CivpnLk+SGVraTsKK+mcvT5TZWk7CivpnL4+QmFpOwor6Z2CPlJla2k7CivpnYQ+QWk7CivpnYY+VGFpOwor6Z2IPlJlaTsKK+mdiT5BaTsKK+mdkj5TZWk7CivpnZY+U2VpOwor6Z2ZPlNlaTsKK+mdnD5TZWk7CivpnZ4+SGk7CivpnaA+S291Owor6Z2hPkhpOwor6Z2iPk1lbjsKK+mdpD5Ib3U7CivpnaY+VGVuOwor6Z2oPllvdTsKK+mdqT5LYWt1Owor6Z2rPlNhaTsKK+mdrT5KaW47CivpnbE+SmluOwor6Z20PkthOwor6Z25PktldHN1Owor6Z26Pk1hdHN1Owor6Z28PlRhbjsKK+megT5IaTsKK+mehD5Ib3U7CivpnoU+T3U7Civpnos+QWk7Civpno0+QW47Civpno8+S3lvdTsKK+memD5Tb3U7Civpnpw+VG91Owor6Z6gPktpa3U7CivpnqM+SnV1Owor6Z6mPlNodXU7Civpnqg+S2F0c3U7Civpnqs+S2lrdTsKK+merT5IZW47CivpnrM+VG91Owor6Z60PkZ1a3U7Civpn4M+RGF0c3U7Civpn4Y+U2VuOwor6Z+IPkJldHN1Owor6Z+LPkk7Civpn5M+S2FuOwor6Z+cPlRvdTsKK+mfrT5LeXV1Owor6Z+uPkt5b3U7Civpn7I+U2VpOwor6Z+zPk9uOwor6Z+1PkluOwor6Z+2PlNob3U7Civpn7s+SW47Civpn78+S3lvdTsKK+mggT5LZXRzdTsKK+mggj5DaG91Owor6aCDPktlaTsKK+mghT5Lb3U7CivpoIY+SnVuOwor6aCIPlNodTsKK+mgjD5TaG91Owor6aCPPktvdTsKK+mgkD5ZbzsKK+mgkT5HYW47CivpoJI+SGFuOwor6aCTPlRvbjsKK+mglz5IYTsKK+mgmD5SeW91Owor6aCaPktlaTsKK+mgoT5LaXRzdTsKK+mgpD5JOwor6aCsPkt5b3U7CivpoK0+VG91Owor6aC0PkVpOwor6aC3PkthbjsKK+mguD5LZWk7CivpoLs+SGluOwor6aC8PlJhaTsKK+mgvT5UYWk7CivpoYY+S2E7CivpoYs+U2FpOwor6aGMPkRhaTsKK+mhjT5HYWt1Owor6aGOPkdha3U7CivpoY8+R2FuOwor6aGUPkdhbjsKK+mhlT5LZW47CivpoZg+R2FuOwor6aGbPlRlbjsKK+mhnj5SdWk7Civpoac+S287Civpoas+U2VuOwor6aGvPktlbjsKK+mhsD5IaW47CivpobE+Um87CivpobM+U2hvdTsKK+mhtD5LYW47Civpoqg+RnV1Owor6aKvPlNhdHN1Owor6aKxPlRhaTsKK+mitj5LdTsKK+mjgz5IeW91Owor6aOEPkh5b3U7Civpo4Y+SHlvdTsKK+mjmz5IaTsKK+mjnD5Ib247Civpo58+U2hva3U7Civpo6I+S2k7Civpo6k+VG9uOwor6aOrPllvOwor6aOtPkNob2t1Owor6aOuPkluOwor6aOvPkhhbjsKK+mjsj5JbjsKK+mjtD5JOwor6aO8PlNoaTsKK+mjvT5Ib3U7Civpo74+U2hva3U7CivppIM+S291Owor6aSFPkhlaTsKK+mkiT5TaG91Owor6aSKPllvdTsKK+mkjD5KaTsKK+mkkD5TYW47CivppJI+RGFpOwor6aSTPkdhOwor6aSUPkhvOwor6aSYPllvOwor6aSdPlNob2t1Owor6aSePlNlbjsKK+mkoD5IZWk7CivppKE+S2FuOwor6aSkPlRhbjsKK+mkqD5LYW47CivppKw+S287CivppK4+VGV0c3U7CivppL0+S2k7CivppL4+Unl1dTsKK+mlgj5VbjsKK+mlhT5NYW47CivppYk+S2luOwor6aWLPktpOwor6aWMPlNlbjsKK+mlkD5JOwor6aWRPktpOwor6aWSPkpvdTsKK+mllT5Ub3U7CivppZc+S3lvdTsKK+mmlj5TaHU7Civpppc+S2k7Civpppg+S2FrdTsKK+mmmT5Lb3U7CivppqU+RnVrdTsKK+mmqD5LZWk7Civppqw+QmE7Civppq0+R3lvOwor6aauPkh5b3U7CivpprM+Q2hpOwor6aa0PlNodW47Civpprw+QnVuOwor6aeBPkJha3U7Civpp4Q+VGE7Civpp4U+RWtpOwor6aeGPkt1Owor6aeIPkt1Owor6aeQPkNodXU7Civpp5E+RG87Civpp5I+S3U7Civpp5U+R2E7Civpp5g+VGFpOwor6aebPlNoaTsKK+mnnT5UYTsKK+mnnz5TaGk7Civpp6I+SGVuOwor6aetPkthaTsKK+mnrj5IYWt1Owor6aexPlJha3U7Civpp7g+U2hpbjsKK+mnuz5LYW47Civpp78+U2h1bjsKK+mogT5UZWk7CivpqIU+U3VpOwor6aiOPktpOwor6aiPPktpOwor6aiSPlNvdTsKK+mokz5LZW47CivpqJk+SGVuOwor6aioPlRhbjsKK+moqz5LZW47CivpqLA+VG91Owor6ai3PlNvdTsKK+movj5SYTsKK+mpgD5CYWt1Owor6amCPlNhbjsKK+mpgz5IeW91Owor6amFPkt1Owor6amNPkd5b3U7CivpqZU+S3lvdTsKK+mplz5LZW47CivpqZo+S3lvdTsKK+mpmz5Fa2k7CivpqZ8+U2h1dTsKK+mpoj5SeW87CivpqaQ+Sm91Owor6amlPktpOwor6ampPkthbjsKK+mpqj5SaTsKK+mpqz5IeXV1Owor6aqoPktvdHN1Owor6aqtPkthbjsKK+mqsD5Ub3U7Civpqrg+S2FpOwor6aq8Pktha3U7Civpq4A+SGk7Civpq4Q+WnVpOwor6auPPlJvdTsKK+mrkT5Ub2t1Owor6auTPlp1aTsKK+mrlD5UZWk7Civpq5g+S291Owor6auePlNvdTsKK+mrnz5IeW91Owor6auiPlRlaTsKK+mroz5Ib3U7Civpq6Y+Qm91Owor6auqPkhhdHN1Owor6aurPkNob3U7Civpq60+U2hpOwor6auuPkhhdHN1Owor6auvPlplbjsKK+mrsT5Ib3U7Civpq7Q+RnV0c3U7Civpq7c+S3lva3U7Civpq7s+S2VpOwor6ayGPlNob3U7CivprJg+QmFuOwor6ayaPlNodTsKK+msnz5LYW47CivprKI+SGluOwor6ayjPlJ5b3U7CivprKU+VG91Owor6aynPlRvdTsKK+msqD5Lb3U7CivprKk+R2VraTsKK+msqj5Ub3U7CivprK4+S3l1dTsKK+msrz5DaG91Owor6ayxPlV0c3U7CivprLI+UmVraTsKK+msuz5TaHVrdTsKK+msvD5LaTsKK+mtgT5LYWk7CivprYI+S29uOwor6a2DPkJhdHN1Owor6a2EPkhha3U7CivprYU+TWk7CivprY0+Qm91Owor6a2OPlJ5b3U7CivprY8+R2k7CivprZE+Q2hpOwor6a2UPk1hOwor6a2YPkVuOwor6a2aPkd5bzsKK+mtrz5SbzsKK+mttD5Ib3U7CivproM+SHlvdTsKK+mujj5OZW47CivprpE+SG91Owor6a6SPkZ1Owor6a6TPlNhOwor6a6fPkFuOwor6a6gPkdhaTsKK+muqD5TaGk7Civprqo+STsKK+muqz5Lb3U7Civprq0+S2VpOwor6a6uPlNlbjsKK+muuT5Tb3U7Civpr4A+S29uOwor6a+GPkhvOwor6a+JPlJpOwor6a+KPlNhOwor6a+UPlNoaTsKK+mvlj5TZWk7Civpr5s+Q2hvdTsKK+mvoT5IaTsKK+mvoj5HZWk7Civpr6M+RWtpOwor6a+kPktvbjsKK+mvqD5HZWk7Civpr7A+TmVuOwor6a+1PlNvdTsKK+mwhD5JOwor6bCGPlNodW47CivpsIg+Q2hvdTsKK+mwiT5Lb3U7CivpsIo+UmVuOwor6bCMPlNodXU7CivpsI0+U2h1dTsKK+mwkD5HYWt1Owor6bCSPkZ1a3U7CivpsJM+U2FpOwor6bCUPkthbjsKK+mwlT5LYTsKK+mwmz5PbjsKK+mwoT5SeXV1Owor6bCkPlNoaTsKK+mwpT5LYW47CivpsK0+S2k7CivpsK4+T247CivpsLI+R291Owor6bC5PktlbjsKK+mwuj5Tb3U7CivpsLs+QmFuOwor6bC+Pkh5b3U7CivpsYY+U2hvdTsKK+mxhz5Lb3U7CivpsYg+U2V0c3U7CivpsZI+U29uOwor6bGXPlJpbjsKK+mxoD5LYWk7Civpsac+UmVpOwor6bG2PlNob3U7Civpsbg+Um87Civps6U+Q2hvdTsKK+mzpz5GdTsKK+mzqT5LeXV1Owor6bOrPkdhbjsKK+mzrD5GdTsKK+mzsz5Ib3U7Civps7Q+TWVpOwor6bO2PkVuOwor6bSDPktldHN1Owor6bSGPkNoaW47CivptIc+SG91Owor6bSIPkdhbjsKK+m0iT5BOwor6bSOPk91Owor6bSSPlJlaTsKK+m0lT5UYTsKK+m0mz5FbjsKK+m0nz5TaGk7CivptKM+S287CivptKY+WW91Owor6bSoPk91Owor6bSqPkl0c3U7CivptKw+T3U7CivptLs+S291Owor6bS+PkJvdTsKK+m0vz5Lb3U7CivptYE+S291Owor6bWEPlNoaTsKK+m1kD5CdTsKK+m1kT5LZW47CivptZk+R2VraTsKK+m1nD5UZWk7CivptZ0+R2E7CivptZ4+R2E7CivptaA+S29rdTsKK+m1oT5CdTsKK+m1rD5Ib3U7Civpta8+SGk7CivptbI+SmFrdTsKK+m1uj5ZYTsKK+m2hz5Ub3U7Civptok+U2h1bjsKK+m2jz5LZWk7Civptpo+R2FrdTsKK+m2pD5Lb247Civptqk+Qm9rdTsKK+m2rz5PdTsKK+m2sj5PdTsKK+m2tD5LYWt1Owor6ba4Pkpha3U7Civptro+U2VraTsKK+m2uz5Lb3RzdTsKK+m3gT5HZWtpOwor6beCPllvdTsKK+m3hD5LZWk7Civpt4Y+VGVuOwor6bePPlRlbjsKK+m3kz5TaGE7Civpt5k+U2hpOwor6bemPlNob3U7Civpt60+QmFuOwor6bevPlJ5b3U7Civpt7I+U2h1dTsKK+m3uD5JdHN1Owor6be5PllvdTsKK+m3uj5SbzsKK+m3vT5LYWt1Owor6biaPk91Owor6bibPkthbjsKK+m4nj5SYW47CivpubU+Um87Civpubg+S2VuOwor6bm5PkthbjsKK+m5vT5FbjsKK+m5vz5Sb2t1Owor6bqBPlNvOwor6bqIPlNodTsKK+m6iz5CaTsKK+m6jD5HdTsKK+m6kT5HZWk7CivpupI+S2k7CivpupM+Um9rdTsKK+m6lT5LaW47Civpupc+UmVpOwor6bqdPlNoYTsKK+m6nz5SaW47CivpuqU+QmFrdTsKK+m6pj5CYWt1Owor6bqpPkZ1Owor6bqqPk1lbjsKK+m6rT5Ib3U7Civpurg+RnU7Civpurk+S2lrdTsKK+m6uj5NZW47Civpurs+TWE7Civpurw+TWE7Civpur4+S2k7Civpur8+Um87Civpu4Q+S291Owor6buMPktvdTsKK+m7jT5TaG87Civpu44+UmVpOwor6buPPk5lbjsKK+m7kD5DaGk7Civpu5I+S29rdTsKK+m7lD5LZW47Civpu5g+TW9rdTsKK+m7mT5Nb2t1Owor6bubPlRhaTsKK+m7nD5DaHV0c3U7Civpu50+WXV1Owor6buePlRlbjsKK+m7oD5LYXRzdTsKK+m7pT5HZWk7Civpu6g+VG91Owor6buvPkFuOwor6bu0PkJhaTsKK+m7tj5FbjsKK+m7tz5Ub2t1Owor6bu5PkNoaTsKK+m7uz5GdXRzdTsKK+m7vD5IbzsKK+m7vT5Cb3U7CivpvIc+R291Owor6byIPkJldHN1Owor6byOPlRlaTsKK+m8kz5LbzsKK+m8lT5Ub3U7CivpvKA+U287CivpvKE+U2hvOwor6bysPll1dTsKK+m8uz5CaTsKK+m8vj5LYW47CivpvYo+U2VpOwor6b2LPlNhaTsKK+m9jj5TZWk7CivpvY8+U2VpOwor6b2SPlNoaTsKK+m9lD5TaGluOwor6b2fPlNvOwor6b2gPkNob3U7CivpvaE+UmVpOwor6b2iPlJlaTsKK+m9oz5TaHV0c3U7CivpvaY+R2luOwor6b2nPktldHN1Owor6b2qPlNva3U7Civpvaw+R3lvOwor6b2yPkt1Owor6b22Pkdha3U7Civpvbc+QWt1Owor6b6NPlJ5dXU7CivpvpU+R2FuOwor6b6cPktpOwor6b6dPlNodXU7CivpvqA+WWFrdTsKKworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC90aGFpX3Rlc3QudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3RoYWlfdGVzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY1ZjkwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC90aGFpX3Rlc3QudHh0CkBAIC0wLDAgKzEsNTUgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACitVbmljb2RlIOC4hOC4t+C4reC4reC4sOC5hOC4oz8KK1VuaWNvZGUg4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiJ4Lie4Liy4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4Lit4Lix4LiB4LiC4Lij4LiwCivguYLguJTguKLguYTguKHguYjguKrguJnguYPguIjguKfguYjguLLguYDguJvguYfguJnguYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguYPguJQKK+C5hOC4oeC5iOC4guC4tuC5ieC4meC4geC4seC4muC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC5guC4m+C4o+C5geC4geC4o+C4oeC5g+C4lAor4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiUCisKK+C5guC4lOC4ouC4nuC4t+C5ieC4meC4kOC4suC4meC5geC4peC5ieC4pywg4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Liw4LmA4LiB4Li14LmI4Lii4Lin4LiC4LmJ4Lit4LiH4LiB4Lix4Lia4LmA4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4LiV4Lix4Lin4LmA4Lil4LiCLiDguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguIjguLHguJTguYDguIHguYfguJrguJXguLHguKfguK3guLHguIHguKnguKPguYHguKXguLDguK3guLHguIHguILguKPguLDguK3guLfguYjguJnguYYg4LmC4LiU4Lii4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmD4Lir4LmJ4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4LiV4Lix4LinLiDguIHguYjguK3guJnguKvguJnguYnguLLguJfguLXguYjguYogVW5pY29kZSDguIjguLDguJbguLnguIHguKrguKPguYnguLLguIfguILguLbguYnguJksIOC5hOC4lOC5ieC4oeC4teC4o+C4sOC4muC4miBlbmNvZGluZyDguK3guKLguLnguYjguKvguKXguLLguKLguKPguYnguK3guKLguKPguLDguJrguJrguKrguLPguKvguKPguLHguJrguIHguLLguKPguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguKvguKXguYjguLLguJnguLXguYkuIOC5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguKHguLXguIjguLPguJnguKfguJnguJXguLHguKfguK3guLHguIHguILguKPguLDguKHguLLguIHguYDguJ7guLXguKLguIfguJ7guK06IOC4ouC4geC4leC4seC4p+C4reC4ouC5iOC4suC4h+C5gOC4iuC5iOC4mSwg4LmA4LiJ4Lie4Liy4Liw4LmD4LiZ4LiB4Lil4Li44LmI4Lih4Liq4Lir4Lig4Liy4Lie4Lii4Li44LmC4Lij4Lib4LmA4Lie4Li14Lii4LiH4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4geC5h+C4leC5ieC4reC4h+C4geC4suC4o+C4q+C4peC4suC4oiBlbmNvZGluZyDguYPguJnguIHguLLguKPguITguKPguK3guJrguITguKXguLjguKHguJfguLjguIHguKDguLLguKnguLLguYPguJnguIHguKXguLjguYjguKEuIOC4q+C4o+C4t+C4reC5geC4oeC5ieC5geC4leC5iOC5g+C4meC4oOC4suC4qeC4suC5gOC4lOC4teC5iOC4ouC4pyDguYDguIrguYjguJkg4Lig4Liy4Lip4Liy4Lit4Lix4LiH4LiB4Lik4LipIOC4geC5h+C5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguYDguJ7guLXguKLguIfguJ7guK3guKrguLPguKvguKPguLHguJrguJfguLjguIHguJXguLHguKfguK3guLHguIHguKnguKMsIOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4oeC4suC4ouC4p+C4o+C4o+C4hOC4leC4reC4mSDguYHguKXguLDguKrguLHguI3guKXguLHguIHguKnguJPguYzguJfguLLguIfguYDguJfguITguJnguLTguITguJfguLXguYjguYPguIrguYnguIHguLHguJnguK3guKLguLnguYjguJfguLHguYjguKfguYTguJsuIAorCivguKPguLDguJrguJogZW5jb2Rpbmcg4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJ4Lii4Lix4LiH4LiC4Lix4LiU4LmB4Lii4LmJ4LiH4LiL4Li24LmI4LiH4LiB4Lix4LiZ4LmB4Lil4Liw4LiB4Lix4LiZLiDguJnguLHguYjguJnguIHguYfguITguLfguK0sIOC5g+C4meC4quC4reC4hyBlbmNvZGluZyDguKrguLLguKHguLLguKPguJbguYPguIrguYnguKvguKHguLLguKLguYDguKXguILguYDguJTguLXguKLguKfguIHguLHguJnguKrguLPguKvguKPguLHguJrguJXguLHguKfguK3guLHguIHguILguKPguLDguKrguK3guIfguJXguLHguKfguJfguLXguYjguYHguJXguIHguJXguYjguLLguIfguIHguLHguJks4Lir4Lij4Li34Lit4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LiV4LmI4Liy4LiH4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lit4Lix4LiB4LiC4Lij4Liw4LiV4Lix4Lin4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZLiDguYPguJnguKPguLDguJrguJrguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwgKOC5guC4lOC4ouC5gOC4ieC4nuC4suC4sOC5gOC4i+C4tOC4o+C5jOC4n+C5gOC4p+C4reC4o+C5jCkg4LiV4LmJ4Lit4LiH4Lih4Li14LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4Lir4Lil4Liy4LiiIGVuY29kaW5nOyDguYHguKXguLDguYDguKHguLfguYjguK3guILguYnguK3guKHguLnguKXguJfguLXguYjguJzguYjguLLguJnguYTguJvguKHguLLguKPguLDguKvguKfguYjguLLguIfguIHguLLguKPguYDguILguYnguLLguKPguKvguLHguKrguKvguKPguLfguK3guYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguJfguLXguYjguJXguYjguLLguIfguIHguLHguJksIOC4guC5ieC4reC4oeC4ueC4peC4meC4seC5ieC4meC4iOC4sOC5gOC4quC4teC5iOC4ouC4h+C4leC5iOC4reC4geC4suC4o+C4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKworVW5pY29kZSDguIjguLDguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguKrguLTguYjguIfguYDguKvguKXguYjguLLguJnguLHguYnguJnguJfguLHguYnguIfguKvguKHguJQhCitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4reC4seC4geC4guC4o+C4sCwg4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiULCDguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJTguYHguKXguLDguYTguKHguYjguKfguYjguLLguIjguLDguYDguJvguYfguJnguKDguLLguKnguLLguYPguJQuIOC4oeC4suC4leC4o+C4kOC4suC4mSBVbmljb2RlIOC5hOC4lOC5ieC4luC4ueC4geC4meC4s+C5hOC4m+C5g+C4iuC5ieC5guC4lOC4ouC4nOC4ueC5ieC4meC4s+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oSDguYDguIrguYjguJkgQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXMg4LmB4Lil4Liw4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4gVW5pY29kZSDguYDguJvguYfguJnguKrguLTguYjguIfguJfguLXguYjguIjguLPguYDguJvguYfguJnguKrguLPguKvguKPguLHguJrguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYg4LmA4LiK4LmI4LiZIFhNTCwgSmF2YSwgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MIOC4r+C4peC4ry4sIOC5geC4peC4sOC5gOC4m+C5h+C4meC5geC4meC4p+C4l+C4suC4h+C4reC4ouC5iOC4suC4h+C5gOC4m+C5h+C4meC4l+C4suC4h+C4geC4suC4o+C5g+C4meC4geC4suC4o+C4l+C4syBJU08vSUVDIDEwNjQ2LiBVbmljb2RlIOC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC5g+C4meC4o+C4sOC4muC4muC4m+C4j+C4tOC4muC4seC4leC4tOC4geC4suC4o+C4iOC4s+C4meC4p+C4meC4oeC4suC4gSwg4Lia4Lij4Liy4Lin4LmA4LiL4Lit4Lij4LmM4LmD4Lir4Lih4LmI4LmGIOC4l+C4geC4leC4seC4pywg4LmB4Lil4Liw4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmM4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4g4LiB4Liy4Lij4LmA4LiB4Li04LiU4LiC4Li24LmJ4LiZ4LiC4Lit4LiHIFVuaWNvZGUgU3RhbmRhcmQg4LmB4Lil4Liw4LiX4Li54Lil4Liq4LmM4LiV4LmI4Liy4LiH4LmGIOC4l+C4teC5iOC4oeC4teC5g+C4meC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlLCDguYDguJvguYfguJnguKvguJnguLbguYjguIfguYPguJnguYHguJnguKfguYLguJnguYnguKHguJfguLLguIfguYDguJfguITguYLguJnguYLguKXguKLguLXguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKPguLDguJTguLHguJrguYLguKXguIHguJfguLXguYjguKHguLXguITguKfguLLguKHguKrguLPguITguLHguI3guJfguLXguYjguKrguLjguJQuCisKK+C4geC4suC4o+C4o+C4p+C4oSBVbmljb2RlIOC5gOC4guC5ieC4suC5hOC4m+C5g+C4meC4o+C4sOC4muC4muC5hOC4hOC4peC5gOC4reC5h+C4meC4leC5jC3guYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwg4Lir4Lij4Li34Lit4LmB4Lit4LmH4Lie4Lie4Lil4Li04LmA4LiE4LiK4Lix4LiZ4LmB4Lia4LiaIG11bHRpLXRpZXJlZCDguYHguKXguLDguYDguKfguYfguJrguYTguIvguJXguYwg4LiI4Liw4LiX4Liz4LmD4Lir4LmJ4LmA4LiB4Li04LiU4LiB4Liy4Lij4Lib4Lij4Liw4Lir4Lii4Lix4LiU4LiE4LmI4Liy4LmD4LiK4LmJ4LiI4LmI4Liy4Lii4Lih4Liy4LiB4LiB4Lin4LmI4Liy4LiB4Liy4Lij4LmD4LiK4LmJ4LiK4Li44LiU4Lit4Lix4LiB4LiC4Lij4Liw4LmB4Lia4Lia4LmA4LiU4Li04LihLiBVbmljb2RlIOC4l+C4s+C5g+C4q+C5ieC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC4q+C4meC4tuC5iOC4h+C5gOC4lOC4teC4ouC4pyDguKvguKPguLfguK3guYDguKfguYfguJrguYTguIvguJXguYzguYHguKvguYjguIfguYDguJTguLXguKLguKcg4Lij4Lit4LiH4Lij4Lix4Lia4LmE4LiU4LmJ4Lir4Lil4Liy4Lii4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4LihLCDguKvguKXguLLguKLguKDguLLguKnguLLguYHguKXguLDguKvguKXguLLguKLguJvguKPguLDguYDguJfguKjguYLguJTguKLguYTguKHguYjguJXguYnguK3guIfguJfguLPguIHguLLguKPguKPguLfguYnguK3guJvguKPguLHguJrguKPguLDguJrguJouIFVuaWNvZGUg4Lii4Lix4LiH4LiX4Liz4LmD4Lir4LmJ4LiC4LmJ4Lit4Lih4Li54Lil4Liq4Liy4Lih4Liy4Lij4LiW4LmA4LiE4Lil4Li34LmI4Lit4LiZ4Lii4LmJ4Liy4Lii4LmE4Lib4Lih4Liy4LmD4LiZ4Lir4Lil4Liy4Lii4LmGIOC4o+C4sOC4muC4muC5guC4lOC4ouC5hOC4oeC5iOC5gOC4geC4tOC4lOC4hOC4p+C4suC4oeC4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKwor4LmA4LiB4Li14LmI4Lii4Lin4LiB4Lix4LiaIFVuaWNvZGUgQ29uc29ydGl1bQorVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C5h+C4meC4reC4h+C4hOC5jOC4geC4o+C5hOC4oeC5iOC5geC4quC4p+C4h+C4q+C4suC4geC4s+C5hOC4o+C4l+C4teC5iOC4geC5iOC4reC4leC4seC5ieC4h+C4guC4tuC5ieC4meC5gOC4nuC4t+C5iOC4reC4nuC4seC4kuC4meC4siwg4LiC4Lii4Liy4Lii4LmB4Lil4Liw4Liq4LmI4LiH4LmA4Liq4Lij4Li04Lih4LiB4Liy4Lij4LmD4LiK4LmJIFVuaWNvZGUgU3RhbmRhcmQsIOC4i+C4tuC5iOC4h+C4geC4s+C4q+C4meC4lOC4o+C4ueC4m+C5geC4muC4muC4geC4suC4o+C5geC4l+C4meC4hOC5iOC4suC4guC4reC4h+C4guC5ieC4reC4hOC4p+C4suC4oeC5g+C4meC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC5geC4peC4sOC4oeC4suC4leC4o+C4kOC4suC4meC5g+C4q+C4oeC5iOC5hi4g4Liq4Lih4Liy4LiK4Li04LiB4LiC4Lit4LiH4Liq4Lih4Liy4LiE4Lih4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmB4LiX4LiZ4LiI4Liy4LiB4Lia4Lij4Li04Lip4Lix4LiX4LmB4Lil4Liw4Lit4LiH4LiE4LmM4LiB4Lij4LmD4LiZ4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4Lih4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LmB4Lil4Liw4LiB4Liy4Lij4Lib4Lij4Liw4Lih4Lin4Lil4Lic4Lil4Liq4Liy4Lij4Liq4LiZ4LmA4LiX4LioLiDguKrguKHguLLguITguKHguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguJfguLLguIfguIHguLLguKPguYDguIfguLTguJnguJzguYjguLLguJnguJfguLLguIfguITguYjguLLguJjguKPguKPguKHguYDguJnguLXguKLguKHguILguK3guIfguIHguLLguKPguYDguJvguYfguJnguKrguKHguLLguIrguLTguIHguYDguJfguYjguLLguJnguLHguYnguJkuIOC4quC4oeC4suC4iuC4tOC4geC4oOC4suC4nuC4guC4reC4hyBVbmljb2RlIENvbnNvcnRpdW0g4LmA4Lib4Li04LiU4LiB4Lin4LmJ4Liy4LiH4Liq4Liz4Lir4Lij4Lix4Lia4Lit4LiH4LiE4LmM4LiB4Lij4Lir4Lij4Li34Lit4Lia4Li44LiE4LiE4Lil4LmD4LiU4LmGIOC5g+C4meC5guC4peC4geC4l+C4teC5iOC4leC5ieC4reC4h+C4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4reC4geC4suC4o+C4guC4ouC4suC4ouC4leC4seC4p+C5geC4peC4sOC4geC4suC4o+C4meC4syBVbmljb2RlIOC5hOC4m+C5g+C4iuC5ieC4h+C4suC4mS4gCisKK+C4quC4s+C4q+C4o+C4seC4muC4guC5ieC4reC4oeC4ueC4peC5gOC4nuC4tOC5iOC4oeC5gOC4leC4tOC4oSwg4LmD4Lir4LmJ4LiU4Li54LiX4Li14LmIIEdsb3NzYXJ5LCBTYW1wbGUgVW5pY29kZS1FbmFibGVkIFByb2R1Y3RzLCBUZWNobmljYWwgSW50cm9kdWN0aW9uIOC5geC4peC4sCBVc2VmdWwgUmVzb3VyY2VzLgorQFRJVExFQ0FTRUAKK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkKK+C4geC4iuC4geC4oyDguKjguKPguLLguJfguJjguJfguLHguJUKK+C4geC4leC4tOC4geC4siDguK3guLHguIfguITguKrguLjguKDguJMKK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsKK+C4geC4meC4gSDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUKK+C4geC4meC4geC4geC4oyDguIrguYnguLLguIfguYDguKLguYfguJnguInguYjguLMKK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwKK+C4geC4meC4geC4meC4p+C4pSDguYLguJvguKnguKLguLDguJnguLHguJnguJfguJnguYwKK+C4geC4meC4geC4nuC4oyDguITguKHguITguLLguKIKK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoKK+C4geC4meC4geC4nuC4oyDguJ7guLHguJnguJfguKMKK+C4geC4meC4geC4nuC4oyDguKjguKPguLXguJrguLHguJPguJHguLTguJUKK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwKK+C4geC4meC4geC4nuC4o+C4o+C4kyDguKjguKPguLXguKfguJnguLLguKDguLTguKPguKHguKLguYwKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguYDguIHguLXguKLguKPguJXguLTguKLguLTguYjguIfguK3guLHguIfguKjguLjguKXguLUKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguITguIfguITguLLguJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguYHguIvguYjguYDguJXguLXguKLguKcKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKrguLHguIjguIjguJ7guIfguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUKK+C4geC4meC4geC4qOC4seC4geC4lOC4tOC5jCDguKLguLTguYjguIfguKLguIcKK+C4geC4meC4geC5geC4geC5ieC4pyDguIHguKPguKrguKHguLTguJUKK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwKK+C4geC4meC4tOC4qeC4kOC4siDguKvguKfguLHguIfguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgKK+C4geC4oeC4pSDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwKK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwKK+C4geC4oeC4pSDguYDguIjguJXguJnguYzguKHguIfguITguKXguKPguLHguJXguJnguYwKK+C4geC4oeC4pSDguIrguLnguJXguKPguLDguIHguLnguKXguJjguKPguKPguKEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MDdmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS8ucHJvamVjdApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS1mZWF0dXJlPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmYjY3NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9XAorZXBsLXYxMC5odG1sLFwKK2VjbGlwc2VfdXBkYXRlXzEyMC5qcGcsXAorZmVhdHVyZS54bWwsXAorZmVhdHVyZS5wcm9wZXJ0aWVzLFwKK2xpY2Vuc2UuaHRtbAorb3V0cHV0VXBkYXRlSmFycyA9IHRydWUKKworZ2VuZXJhdGUucGx1Z2luQGNvbS5pYm0uaWN1LnNvdXJjZT1jb20uaWJtLmljdQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9mZWF0dXJlLnhtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyOGNhOWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGZlYXR1cmUKKyAgICAgIGlkPSJjb20uaWJtLmljdSIKKyAgICAgIGxhYmVsPSJjb20uaWJtLmljdSIKKyAgICAgIHZlcnNpb249IjMuNiI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgorICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2Rlc2NyaXB0aW9uPgorCisgICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgorICAgICAgW0VudGVyIENvcHlyaWdodCBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvY29weXJpZ2h0PgorCisgICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+CisgICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvbGljZW5zZT4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1IgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IjMuNiIKKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1LnNvdXJjZSIKKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiCisgICAgICAgICB2ZXJzaW9uPSIzLjYiLz4KKworPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzViNjIwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsIHBsdWdpbi5wcm9wZXJ0aWVzLCBwbHVnaW4ueG1sLCBzcmMvKiosTUVUQS1JTkYvCitzb3VyY2VQbHVnaW4gPSB0cnVlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZDE1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworcGx1Z2luTmFtZSA9IEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSAoSUNVNEopIHNvdXJjZSBwbHVnLWluCitwcm92aWRlck5hbWUgPSBJQk0gQ29ycG9yYXRpb24KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvLnByb2plY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMTIwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDBlZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorYmluLmluY2x1ZGVzID1cCitlcGwtdjEwLmh0bWwsXAorZWNsaXBzZV91cGRhdGVfMTIwLmpwZyxcCitmZWF0dXJlLnhtbCxcCitmZWF0dXJlLnByb3BlcnRpZXMsXAorbGljZW5zZS5odG1sCitvdXRwdXRVcGRhdGVKYXJzID0gdHJ1ZQorCitnZW5lcmF0ZS5wbHVnaW5AY29tLmlibS5pY3UuYmFzZS5zb3VyY2U9Y29tLmlibS5pY3UuYmFzZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvZmVhdHVyZS54bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YmEyNTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8ZmVhdHVyZQorICAgICAgaWQ9ImNvbS5pYm0uaWN1LmJhc2UiCisgICAgICBsYWJlbD0iY29tLmlibS5pY3UuYmFzZSIKKyAgICAgIHZlcnNpb249IjMuNiIKKyAgICAgIHByb3ZpZGVyLW5hbWU9IklCTSI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgorICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2Rlc2NyaXB0aW9uPgorCisgICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgorICAgICAgW0VudGVyIENvcHlyaWdodCBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvY29weXJpZ2h0PgorCisgICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+CisgICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvbGljZW5zZT4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1LmJhc2UiCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIgorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgorICAgICAgICAgdmVyc2lvbj0iMy42IgorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgorCisgICA8cGx1Z2luCisgICAgICAgICBpZD0iY29tLmlibS5pY3UuYmFzZS5zb3VyY2UiCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIgorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgorICAgICAgICAgdmVyc2lvbj0iMy42Ii8+CisKKzwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWI2MjA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitiaW4uaW5jbHVkZXMgPSBhYm91dC5odG1sLCBwbHVnaW4ucHJvcGVydGllcywgcGx1Z2luLnhtbCwgc3JjLyoqLE1FVEEtSU5GLworc291cmNlUGx1Z2luID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM1NDAzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3BsdWdpbk5hbWUgPSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKSBSZXBsYWNlbWVudCBzb3VyY2UgcGx1Zy1pbgorcHJvdmlkZXJOYW1lID0gSUJNIENvcnBvcmF0aW9uCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTFjOGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLmNsYXNzcGF0aApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUiIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgorPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ODU2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8ucHJvamVjdApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS5iYXNlLnRlc3RzPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA3YWQyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6IElDVTRKIEJhc2UgdGVzdCBmcmFnbWVudAorQnVuZGxlLVN5bWJvbGljTmFtZTogY29tLmlibS5pY3UuYmFzZS50ZXN0cworQnVuZGxlLVZlcnNpb246IDEuMC4wCitCdW5kbGUtVmVuZG9yOiBJQk0KK0J1bmRsZS1Db3B5cmlnaHQ6IExpY2Vuc2VkIE1hdGVyaWFscyAtIFByb3BlcnR5IG9mIElCTSAKKyAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK0ZyYWdtZW50LUhvc3Q6IGNvbS5pYm0uaWN1LmJhc2U7YnVuZGxlLXZlcnNpb249IlszLjQuMywzLjcuMCkiCitCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KK0J1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuMywKKyBDREMtMS4wL0ZvdW5kYXRpb24tMS4wCitSZXF1aXJlLUJ1bmRsZTogb3JnLmp1bml0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGQyZTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDQgQEAKK3NvdXJjZS4uID0gc3JjLworb3V0cHV0Li4gPSBiaW4vCitiaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAorICAgICAgICAgICAgICAgLgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmJjOGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwzNTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisgICAgLy8gSUNVIGJlaGF2ZXMgYSBiaXQgZGlmZmVyZW50bHkgd2l0aCB0aGlzIHRleHQsIGJ1dCB0aGUgdGVzdGVkIHZhbHVlcyBhcmVuJ3QKKyAgICAvLyBhZmZlY3RlZC4gIElmIEphdmEgY2hhbmdlcyBiZWhhdmlvciB0aGV5IG1pZ2h0IG5lZWQgdG8gY2hhbmdlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXh0ID0gIk1yLiBhbmQgTXJzLiBNdW1ibGV0eS1QZWcgcGFpZCAkMzUuOTcgZm9yIGEgbmV3IDEyXCIgY29ja2F0b28uICIgKworICAgICAgICAiV2hlbiB0aGV5IGdvdCBob21lIHRoZXkgYm90aCBjb29lZCBcIklzbid0IGl0IGxvdmVseT9cIiBhbmQgc2lnaGVkIHNvZnRseS4gIiArCisgICAgICAgICJcIkxldCdzIG5hbWUgaXQgdVx1MDMwOFx1NTA5OCFcIiB0aGV5IHNhaWQgd2l0aCBnbGVlLiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBvcyA9IHRleHQuaW5kZXhPZigic24ndCIpOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgY2JyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3Igd2JyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgbGJyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3Igc2JyOworICAgICAgICAKKyAgICBzdGF0aWMgeworICAgICAgICBjYnIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIGNici5zZXRUZXh0KHRleHQpOworICAgICAgICB3YnIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB3YnIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgbGJyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgbGJyLnNldFRleHQodGV4dCk7CisgICAgICAgIHNiciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICBzYnIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gZGlhZ25vc3RpYworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChjYnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcCh3YnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChsYnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChzYnIpOworICAgIH0KKyAgICAgICAgCisgICAgLy8gICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXAoQnJlYWtJdGVyYXRvciBiaSkgeworICAgIC8vICAgICAgICAgICAgICBmb3IgKGludCBpeCA9IGJpLmZpcnN0KCksIGxpbSA9IHRleHQubGVuZ3RoKCk7IGl4ICE9IGxpbTspIHsKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbnQgbnggPSBiaS5uZXh0KCk7CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaWYgKG54IDwgMCkgbnggPSBsaW07CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoaXgpICsgIjogIiArIHRleHQuc3Vic3RyaW5nKGl4LCBueCkpOworICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbng7CisgICAgLy8gICAgICAgICAgICAgIH0KKyAgICAvLyAgICAgIH0KKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5oYXNoQ29kZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGJyLnNldFRleHQodGV4dCk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJuZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGJybmUuc2V0VGV4dCh0ZXh0ICsgIlgiKTsKKyAgICAgICAgd2JyLmZpcnN0KCk7CisgICAgICAgIHRlc3RFSENTKGJyLCB3YnIsIGJybmUpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuQnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QnJlYWtJdGVyYXRvcigpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZmlyc3QoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rmlyc3QoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBjYnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCB3YnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBsYnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBzYnIuZmlyc3QoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5sYXN0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdExhc3QoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0Lmxlbmd0aCgpLCBjYnIubGFzdCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHRleHQubGVuZ3RoKCksIHdici5sYXN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHModGV4dC5sZW5ndGgoKSwgbGJyLmxhc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0Lmxlbmd0aCgpLCBzYnIubGFzdCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLm5leHQoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TmV4dEludCgpIHsKKyAgICAgICAgY2JyLmZpcnN0KCk7CisgICAgICAgIHdici5maXJzdCgpOworICAgICAgICBsYnIuZmlyc3QoKTsKKyAgICAgICAgc2JyLmZpcnN0KCk7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBjYnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscygzLCB3YnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg4LCBsYnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg2Miwgc2JyLm5leHQoMikpOworICAgICAgICAgICAgICAgIAorICAgICAgICBjYnIubGFzdCgpOworICAgICAgICB3YnIubGFzdCgpOworICAgICAgICBsYnIubGFzdCgpOworICAgICAgICBzYnIubGFzdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTc0LCBjYnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTcxLCB3YnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTY2LCBsYnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTM1LCBzYnIubmV4dCgtMikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IubmV4dCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3ROZXh0KCkgeworICAgICAgICBjYnIuZmlyc3QoKTsKKyAgICAgICAgd2JyLmZpcnN0KCk7CisgICAgICAgIGxici5maXJzdCgpOworICAgICAgICBzYnIuZmlyc3QoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIGNici5uZXh0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgd2JyLm5leHQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBsYnIubmV4dCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEzLCBzYnIubmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLnByZXZpb3VzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFByZXZpb3VzKCkgeworICAgICAgICBjYnIubGFzdCgpOworICAgICAgICB3YnIubGFzdCgpOworICAgICAgICBsYnIubGFzdCgpOworICAgICAgICBzYnIubGFzdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTc1LCBjYnIucHJldmlvdXMoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxNzUsIHdici5wcmV2aW91cygpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE3MSwgbGJyLnByZXZpb3VzKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTU2LCBzYnIucHJldmlvdXMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5mb2xsb3dpbmcoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9sbG93aW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoMTAwLCBjYnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTAzLCB3YnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTA0LCBsYnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTE2LCBzYnIuZm9sbG93aW5nKHBvcykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IucHJlY2VkaW5nKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFByZWNlZGluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDk4LCBjYnIucHJlY2VkaW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoOTgsIHdici5wcmVjZWRpbmcocG9zKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg5NywgbGJyLnByZWNlZGluZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDYyLCBzYnIucHJlY2VkaW5nKHBvcykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuaXNCb3VuZGFyeShpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RJc0JvdW5kYXJ5KCkgeworICAgICAgICBhc3NlcnRUcnVlKGNici5pc0JvdW5kYXJ5KHBvcykpOworICAgICAgICBhc3NlcnRGYWxzZSh3YnIuaXNCb3VuZGFyeShwb3MpKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UobGJyLmlzQm91bmRhcnkocG9zKSk7CisgICAgICAgIGFzc2VydEZhbHNlKHNici5pc0JvdW5kYXJ5KHBvcykpOworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5jdXJyZW50KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEN1cnJlbnQoKSB7CisgICAgICAgIGNici5mb2xsb3dpbmcocG9zKTsKKyAgICAgICAgd2JyLmZvbGxvd2luZyhwb3MpOworICAgICAgICBsYnIuZm9sbG93aW5nKHBvcyk7CisgICAgICAgIHNici5mb2xsb3dpbmcocG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMCwgY2JyLmN1cnJlbnQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxMDMsIHdici5jdXJyZW50KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTA0LCBsYnIuY3VycmVudCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDExNiwgc2JyLmN1cnJlbnQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRUZXh0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFRleHQoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpID0gY2JyLmdldFRleHQoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoY2kuZ2V0RW5kSW5kZXgoKSAtIGNpLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIGZvciAoY2hhciBjID0gY2kuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHRleHQsIHJlc3VsdCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5zZXRUZXh0KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldFRleHRTdHJpbmcoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5zZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0VGV4dENoYXJhY3Rlckl0ZXJhdG9yKCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0LCBwb3MpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgYmkuc2V0VGV4dChjaSk7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBiaS5uZXh0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFdvcmRJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRXb3JkSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFdvcmRJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExpbmVJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRMaW5lSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExpbmVJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q2hhcmFjdGVySW5zdGFuY2UoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDaGFyYWN0ZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldENoYXJhY3Rlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKFVMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2VudGVuY2VJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2VudGVuY2VJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTZW50ZW5jZUluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRUaXRsZUluc3RhbmNlKCkgeworICAgICAgICAvLyBub3QgaW1wbGVtZW50ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0VGl0bGVJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRUaXRsZUluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLnRvU3RyaW5nKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKGNici50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5lcXVhbHMoT2JqZWN0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NhbGVuZGFyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NhbGVuZGFyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MmQyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ2FsZW5kYXJUZXN0LmphdmEKQEAgLTAsMCArMSw1NTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDYWxlbmRhclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJQ2FsZW5kYXIgY2FsMSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCUNhbGVuZGFyIGNhbDIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlDYWxlbmRhciBjYWwzID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsMy5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGNhbDMuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKzEpOworCQl0ZXN0RUhDUyhjYWwxLCBjYWwyLCBjYWwzKTsJCQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLkNhbGVuZGFyKENhbGVuZGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2FsZW5kYXIoKSB7CisJCS8vIHRlc3RlZCBpbXBsaWNpdGx5IGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RFSENTCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVRpbWVab25lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6KTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCQlhc3NlcnRFcXVhbHModHosIGNhbC5nZXRUaW1lWm9uZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZUxvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVVMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGNhbCk7CisJCWFzc2VydE5vdE51bGwoY2FsLmdldFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUsIExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVGltZVpvbmVMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKTsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHosIExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoY2FsKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZSwgVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVGltZVpvbmVVTG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKwkJYXNzZXJ0Tm90TnVsbChDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZVVMb2NhbGVzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworCQlhc3NlcnROb3ROdWxsKENhbGVuZGFyLmdldEF2YWlsYWJsZVVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldFRpbWUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0VGltZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRUaW1lKERhdGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRUaW1lKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlEYXRlIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQljYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0VGltZShkYXRlKTsKKwkJYXNzZXJ0RXF1YWxzKGRhdGUsIGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldFRpbWVJbk1pbGxpcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lSW5NaWxsaXMoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydFRydWUoMCAhPSBjYWwuZ2V0VGltZUluTWlsbGlzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldFRpbWVJbk1pbGxpcyhsb25nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0VGltZUluTWlsbGlzKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlsb25nIG1pbGxpcyA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKwkJRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKwkJCisJCWNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXRUaW1lSW5NaWxsaXMobWlsbGlzKTsKKwkJCisJCWFzc2VydEVxdWFscyhkYXRlLCBjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXQoaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlhc3NlcnRFcXVhbHMoMCwgY2FsLmdldChDYWxlbmRhci5NT05USCkpOworCQlhc3NlcnRFcXVhbHMoMjAsIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisJCWFzc2VydEVxdWFscygzMCwgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXQoaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk3Nyk7CisJCWFzc2VydEVxdWFscygxOTc3LCBjYWwuZ2V0KENhbGVuZGFyLllFQVIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXQoaW50LCBpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEludEludEludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTk3LCA5LCAxNSk7CisJCWFzc2VydEVxdWFscygxNSwgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50SW50SW50SW50SW50KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KDE5OTcsIDksIDE1LCAxNCwgMjUpOworCQlhc3NlcnRFcXVhbHMoMjUsIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJbnRJbnRJbnRJbnRJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUsIDE0LCAyNSwgNTEpOworCQlhc3NlcnRFcXVhbHMoNTEsIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuY2xlYXIoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xlYXIoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUsIDE0LCAyNSwgNTEpOworCQljYWwuY2xlYXIoKTsKKwkJYXNzZXJ0RXF1YWxzKDAsIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jbGVhcihpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbGVhckludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTk3LCA5LCAxNSwgMTQsIDI1LCA1MSk7CisJCWFzc2VydFRydWUoY2FsLmlzU2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCQljYWwuY2xlYXIoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzU2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzU2V0KGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdElzU2V0KCkgeworCQkvLyBzZWUgdGVzdENsZWFySW50CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzRXF1aXZhbGVudFRvKENhbGVuZGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNFcXVpdmFsZW50VG8oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCUNhbGVuZGFyIGNhbDIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwyLnNldCgxOTk0LCA2LCAyMSwgOCwgNyk7CisJCWFzc2VydFRydWUoY2FsLmlzRXF1aXZhbGVudFRvKGNhbDIpKTsKKwkJY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJDU1QiKSk7CisJCWNhbDIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBEVCIpKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzRXF1aXZhbGVudFRvKGNhbDIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5iZWZvcmUoT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0QmVmb3JlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKGNhbC5iZWZvcmUobmV3IERhdGUoKSkpOworCQlhc3NlcnRUcnVlKGNhbC5iZWZvcmUoQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmFmdGVyKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEFmdGVyKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDMwNTgpOworCQlhc3NlcnRUcnVlKGNhbC5hZnRlcihuZXcgRGF0ZSgpKSk7CisJCWFzc2VydFRydWUoY2FsLmFmdGVyKENhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEFjdHVhbE1heGltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygxMSwgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBY3R1YWxNaW5pbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEFjdHVhbE1pbmltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygwLCBjYWwuZ2V0QWN0dWFsTWluaW11bShDYWxlbmRhci5NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnJvbGwoaW50LCBib29sZWFuKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Um9sbEludEJvb2xlYW4oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWNhbC5zZXQoMTk5NywgMSwgMjcpOworCQljYWwucm9sbChDYWxlbmRhci5EQVRFLCB0cnVlKTsKKwkJYXNzZXJ0RXF1YWxzKDI4LCBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5yb2xsKGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Um9sbEludEludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldCgxOTk3LCAxLCAyNyk7CisJCWNhbC5yb2xsKENhbGVuZGFyLkRBVEUsIDMpOworCQlhc3NlcnRFcXVhbHMoMiwgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuYWRkKGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0QWRkKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQljYWwuc2V0KDE5OTcsIDEsIDI3KTsKKwkJY2FsLmFkZChDYWxlbmRhci5EQVRFLCAzKTsKKwkJYXNzZXJ0RXF1YWxzKDIsIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworCQlhc3NlcnRFcXVhbHMoMiwgY2FsLmdldChDYWxlbmRhci5NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERpc3BsYXlOYW1lKExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lTG9jYWxlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoIkNhbGVuZGFyIiwgY2FsLmdldERpc3BsYXlOYW1lKExvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERpc3BsYXlOYW1lKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZVVMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydEVxdWFscygiQ2FsZW5kYXIiLCBjYWwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmNvbXBhcmVUbyhDYWxlbmRhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb0NhbGVuZGFyKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKDAgPiBjYWwuY29tcGFyZVRvKENhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jb21wYXJlVG8oT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZVRvT2JqZWN0KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKDAgPiBjYWwuY29tcGFyZVRvKChPYmplY3QpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERhdGVUaW1lRm9ybWF0KGludCwgaW50LCBMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREYXRlVGltZUZvcm1hdEludEludExvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTkwLCA4LCAxNiwgMjAsIDMpOworCQlEYXRlRm9ybWF0IGRmID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCJTZXB0ZW1iZXIgMTYsIDE5OTAgODowMyBQTSIsIGRmLmZvcm1hdChjYWwpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREYXRlVGltZUZvcm1hdChpbnQsIGludCwgVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERhdGVUaW1lRm9ybWF0SW50SW50VUxvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTkwLCA4LCAxNiwgMjAsIDMpOworCQlEYXRlRm9ybWF0IGRmID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5TSE9SVCwgVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiU2VwdGVtYmVyIDE2LCAxOTkwIDg6MDMgUE0iLCBkZi5mb3JtYXQoY2FsKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZmllbGREaWZmZXJlbmNlKERhdGUsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEZpZWxkRGlmZmVyZW5jZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDApOworCQlEYXRlIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQljYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgNSk7CisJCWFzc2VydEVxdWFscygtNSwgY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlLCBDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUaW1lWm9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZVpvbmUoKSk7CisJfQorCQorCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0VGltZVpvbmUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCVRpbWVab25lIHZhbHVlMSA9IGNhbC5nZXRUaW1lWm9uZSgpOworCQlTdHJpbmcgdHpuID0gIlBEVCIuZXF1YWxzKHZhbHVlMS5nZXRJRCgpKSA/ICJDU1QiIDogIlBEVCI7CisJCVRpbWVab25lIHZhbHVlMiA9IFRpbWVab25lLmdldFRpbWVab25lKHR6bik7CisJCWNhbC5zZXRUaW1lWm9uZSh2YWx1ZTIpOworCQlUaW1lWm9uZSByZXN1bHQgPSBjYWwuZ2V0VGltZVpvbmUoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUxLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUyLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldExlbmllbnQoYm9vbGVhbiknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldExlbmllbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWJvb2xlYW4gbGVuaWVudCA9IGNhbC5pc0xlbmllbnQoKTsKKwkJY2FsLnNldExlbmllbnQoIWxlbmllbnQpOworCQlhc3NlcnRGYWxzZShsZW5pZW50ID09IGNhbC5pc0xlbmllbnQoKSk7CisJCQorCQkvLyBub3QgdGVzdGluZyBpZiBpdCBoYXMgdGhlIGV4cGVjdGVkIGVmZmVjdAorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzTGVuaWVudCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RJc0xlbmllbnQoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0TGVuaWVudAorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldEZpcnN0RGF5T2ZXZWVrKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEZpcnN0RGF5T2ZXZWVrKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlpbnQgZmlyc3REYXkgPSBjYWwuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKwkJY2FsLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0RGF5KzEpOworCQlhc3NlcnRFcXVhbHMoZmlyc3REYXkrMSwgY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkpOworCQkKKwkJLy8gZG9uJ3QgdGVzdCBmdW5jdGlvbmFsaXR5CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0Rmlyc3REYXlPZldlZWsoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0Rmlyc3REYXlPZldlZWsoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0Rmlyc3REYXlPZldlZWsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWludCBmaXJzdERheSA9IGNhbC5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk7CisJCWNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGZpcnN0RGF5KzEpOworCQlhc3NlcnRFcXVhbHMoZmlyc3REYXkrMSwgY2FsLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisJCQorCQkvLyBkb24ndCB0ZXN0IGZ1bmN0aW9uYWxpdHkKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldE1pbmltdW0oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TWluaW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDEsIGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0TWF4aW11bShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNYXhpbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoNywgY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRHcmVhdGVzdE1pbmltdW0oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0R3JlYXRlc3RNaW5pbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoMSwgY2FsLmdldEdyZWF0ZXN0TWluaW11bShDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0TGVhc3RNYXhpbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldExlYXN0TWF4aW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDI4LCBjYWwuZ2V0TGVhc3RNYXhpbXVtKENhbGVuZGFyLkRBVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREYXlPZldlZWtUeXBlKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERheU9mV2Vla1R5cGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscyhDYWxlbmRhci5XRUVLREFZLCBjYWwuZ2V0RGF5T2ZXZWVrVHlwZShDYWxlbmRhci5GUklEQVkpKTsKKwkJYXNzZXJ0RXF1YWxzKENhbGVuZGFyLldFRUtFTkQsIGNhbC5nZXREYXlPZldlZWtUeXBlKENhbGVuZGFyLlNBVFVSREFZKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0V2Vla2VuZFRyYW5zaXRpb24oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0V2Vla2VuZFRyYW5zaXRpb24oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCXRyeSB7CisJCQljYWwuZ2V0V2Vla2VuZFRyYW5zaXRpb24oQ2FsZW5kYXIuV0VFS0VORF9PTlNFVCk7CisJCQlmYWlsKCJleHBlY3RlZCBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZnJvbSBnZXRXZWVrZW5kVHJhbnNpdGlvbiIpOworCQl9CisJCWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworCQkJLy8gb2sKKwkJfQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzV2Vla2VuZChEYXRlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNXZWVrZW5kRGF0ZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU0FUVVJEQVkpOworCQlhc3NlcnRUcnVlKGNhbC5pc1dlZWtlbmQoY2FsLmdldFRpbWUoKSkpOworCQljYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5XRURORVNEQVkpOworCQlhc3NlcnRGYWxzZShjYWwuaXNXZWVrZW5kKGNhbC5nZXRUaW1lKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc1dlZWtlbmQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNXZWVrZW5kKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQljYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5TQVRVUkRBWSk7CisJCWFzc2VydFRydWUoY2FsLmlzV2Vla2VuZCgpKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzV2Vla2VuZCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnRvU3RyaW5nKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnROb3ROdWxsKGNhbC50b1N0cmluZygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUeXBlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFR5cGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiZ3JlZ29yaWFuIiwgY2FsLmdldFR5cGUoKSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdGlvbktleVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRpb25LZXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhZTkyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRpb25LZXlUZXN0LmphdmEKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uS2V5VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQlDb2xsYXRpb25LZXkga24gPSBjLmdldENvbGxhdGlvbktleSgidGhpcyIpOworCQl0ZXN0RUhDUyhrMSwgazIsIGtuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuQ29sbGF0aW9uS2V5KENvbGxhdGlvbktleSknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbGxhdGlvbktleSgpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZVRvQ29sbGF0aW9uS2V5KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJQ29sbGF0aW9uS2V5IGsyID0gYy5nZXRDb2xsYXRpb25LZXkoInRoaXMiKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCUNvbGxhdGlvbktleSBrMyA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWFzc2VydFRydWUoMCA9PSBrMS5jb21wYXJlVG8oazIpKTsKKwkJYXNzZXJ0RmFsc2UoMCA9PSBrMS5jb21wYXJlVG8oazMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuY29tcGFyZVRvKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb09iamVjdCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWFzc2VydFRydWUoMCA9PSBrMS5jb21wYXJlVG8oKE9iamVjdClrMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5lcXVhbHMoT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJQ29sbGF0aW9uS2V5IGsyID0gYy5nZXRDb2xsYXRpb25LZXkoInRoaXMiKTsKKwkJYXNzZXJ0VHJ1ZShrMS5lcXVhbHMoKE9iamVjdClrMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS50b1N0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCWFzc2VydE5vdE51bGwoazEudG9TdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LmdldFNvdXJjZVN0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTb3VyY2VTdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleSgiVGhpcyIpOworCQlhc3NlcnRFcXVhbHMoIlRoaXMiLCBrMS5nZXRTb3VyY2VTdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LnRvQnl0ZUFycmF5KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRvQnl0ZUFycmF5KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJYnl0ZVtdIGtleSA9IGsxLnRvQnl0ZUFycmF5KCk7CisJCWFzc2VydE5vdE51bGwoa2V5KTsKKwkJYXNzZXJ0VHJ1ZSgwIDwga2V5Lmxlbmd0aCk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxYzcxNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ29sbGF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRvclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHMxID0gIkZ1XHUwMzA4bmYiOyAvLyBjYXBpdGFsIEYgKyB1ICsgZGlhcmVzaXMKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczIgPSAiZnVcdTAzMDhuZiI7IC8vIHUgKyBkaWFyZXNpcworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzMyA9ICJmXHUwMGZjbmYiOyAvLyB1LXVtbGF1dAorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzNCA9ICJmdVx1MDMwOFx1MDMxNm5mIjsgLy8gdSArIGRpYXJlc2lzIGFib3ZlICsgZ3JhdmUgYmVsb3cKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczUgPSAiZnVcdTAzMTZcdTAzMDhuZiI7IC8vIHUgKyBncmF2ZSBiZWxvdyArIGRpYXJlc2lzIGFib3ZlCisJCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisJCUNvbGxhdG9yIGMyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYzIuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKwkJQ29sbGF0b3IgY24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCXRlc3RFSENTKGMsIGMyLCBjbik7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuQ29sbGF0b3IoQ29sbGF0b3IpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb2xsYXRvcigpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLnNldFN0cmVuZ3RoKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFN0cmVuZ3RoKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzMSwgczIpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMxLCBzMikpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwIDwgYy5jb21wYXJlKHMxLCBzMikpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMyLCBzMykpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworCQlhc3NlcnRUcnVlKDAgPiBjLmNvbXBhcmUoczIsIHMzKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXREZWNvbXBvc2l0aW9uKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCWFzc2VydFRydWUoMCAhPSBjLmNvbXBhcmUoczQsIHM1KSk7CisJCWMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5JREVOVElDQUwpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHM0LCBzNSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlKCkgeworCQkvLyBpbXBsaWNpdGx5IHRlc3RlZCBldmVyeXdoZXJlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVUxvY2FsZSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisJCWFzc2VydE5vdE51bGwoYyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VMb2NhbGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisJCWFzc2VydE5vdE51bGwoYyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVMb2NhbGVzKCkgeworCQlhc3NlcnROb3ROdWxsKENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisJCWFzc2VydE5vdE51bGwoQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0S2V5d29yZHMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0S2V5d29yZHMoKSB7CisJCWFzc2VydEVxdWFscygwLCBDb2xsYXRvci5nZXRLZXl3b3JkcygpLmxlbmd0aCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkVmFsdWVzKCkgeworCQlhc3NlcnRFcXVhbHMoMCwgQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcygiIikubGVuZ3RoKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5nZXRTdHJlbmd0aCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTdHJlbmd0aCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5QUklNQVJZLCBjLmdldFN0cmVuZ3RoKCkpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5TRUNPTkRBUlksIGMuZ2V0U3RyZW5ndGgoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREZWNvbXBvc2l0aW9uKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKwkJYXNzZXJ0RXF1YWxzKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OLCBjLmdldERlY29tcG9zaXRpb24oKSk7CisJCWMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKwkJYXNzZXJ0RXF1YWxzKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04sIGMuZ2V0RGVjb21wb3NpdGlvbigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5jb21wYXJlKE9iamVjdCwgT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZU9iamVjdE9iamVjdCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydFRydWUoMCA9PSBjLmNvbXBhcmUoKE9iamVjdClzMSwgKE9iamVjdClzMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmVxdWFscyhTdHJpbmcsIFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc1N0cmluZ1N0cmluZygpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydFRydWUoYy5lcXVhbHMoczEsIHMyKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVTdHJpbmdTdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMxLCBzMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldENvbGxhdGlvbktleShTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRDb2xsYXRpb25LZXkoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleShzMSk7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KHMyKTsKKwkJYXNzZXJ0VHJ1ZShrMS5lcXVhbHMoazIpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCWsxID0gYy5nZXRDb2xsYXRpb25LZXkoczEpOworCQlrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KHMyKTsKKwkJYXNzZXJ0RmFsc2UoazEuZXF1YWxzKGsyKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IudG9TdHJpbmcoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisJCWFzc2VydE5vdE51bGwoQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKS50b1N0cmluZygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGFib3ZlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGFib3ZlCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRTeW1ib2xzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRTeW1ib2xzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MjM0ODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGF0ZUZvcm1hdFN5bWJvbHNUZXN0LmphdmEKQEAgLTAsMCArMSwyNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0U3ltYm9sc1Rlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmczIgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmc24gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJZGZzbi5zZXRBbVBtU3RyaW5ncyhuZXcgU3RyaW5nW10geyAic3ciLCAieHciIH0pOworCQl0ZXN0RUhDUyhkZnMsIGRmczIsIGRmc24pOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLkRhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNEYXRlRm9ybWF0U3ltYm9scygpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLkRhdGVGb3JtYXRTeW1ib2xzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdERhdGVGb3JtYXRTeW1ib2xzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0V2Vla2RheXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNMb2NhbGUoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRXZWVrZGF5cygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5EYXRlRm9ybWF0U3ltYm9scyhVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNVTG9jYWxlKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFdlZWtkYXlzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldEVyYXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RXJhcygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldEVyYXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0RXJhcyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEVyYXMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRFcmFzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRFcmFzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldEVyYXMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldE1vbnRocygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNb250aHMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRNb250aHMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0TW9udGhzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0TW9udGhzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0TW9udGhzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRNb250aHMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0TW9udGhzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRTaG9ydE1vbnRocygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTaG9ydE1vbnRocygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFNob3J0TW9udGhzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldFNob3J0TW9udGhzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0U2hvcnRNb250aHMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRTaG9ydE1vbnRocygpOworCQlTdHJpbmdbXSBuZXd2YWx1ZSA9IChTdHJpbmdbXSlvbGR2YWx1ZS5jbG9uZSgpOworCQluZXd2YWx1ZVswXSA9IG5ld3ZhbHVlWzBdICsgIiEiOworCQlkZnMuc2V0U2hvcnRNb250aHMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0U2hvcnRNb250aHMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldFdlZWtkYXlzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFdlZWtkYXlzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0U2hvcnRNb250aHMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0V2Vla2RheXMoU3RyaW5nW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldFdlZWtkYXlzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRXZWVrZGF5cyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdIHJlc3VsdCA9IGRmcy5nZXRXZWVrZGF5cygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0U2hvcnRXZWVrZGF5cygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTaG9ydFdlZWtkYXlzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0U2hvcnRXZWVrZGF5cygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRTaG9ydFdlZWtkYXlzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0U2hvcnRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldFNob3J0V2Vla2RheXMoKTsKKwkJU3RyaW5nW10gbmV3dmFsdWUgPSAoU3RyaW5nW10pb2xkdmFsdWUuY2xvbmUoKTsKKwkJbmV3dmFsdWVbMF0gPSBuZXd2YWx1ZVswXSArICIhIjsKKwkJZGZzLnNldFNob3J0V2Vla2RheXMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0U2hvcnRXZWVrZGF5cygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0QW1QbVN0cmluZ3MoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QW1QbVN0cmluZ3MoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRBbVBtU3RyaW5ncygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRBbVBtU3RyaW5ncyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEFtUG1TdHJpbmdzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKwkJU3RyaW5nW10gbmV3dmFsdWUgPSAoU3RyaW5nW10pb2xkdmFsdWUuY2xvbmUoKTsKKwkJbmV3dmFsdWVbMF0gPSBuZXd2YWx1ZVswXSArICIhIjsKKwkJZGZzLnNldEFtUG1TdHJpbmdzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldEFtUG1TdHJpbmdzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRab25lU3RyaW5ncygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRab25lU3RyaW5ncygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFpvbmVTdHJpbmdzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldFpvbmVTdHJpbmdzKFN0cmluZ1tdW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRab25lU3RyaW5ncygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdW10gb2xkdmFsdWUgPSBkZnMuZ2V0Wm9uZVN0cmluZ3MoKTsKKwkJU3RyaW5nW11bXSBuZXd2YWx1ZSA9IChTdHJpbmdbXVtdKWNsb25lQ29tcGxleChvbGR2YWx1ZSk7CisJCW5ld3ZhbHVlWzBdWzBdID0gbmV3dmFsdWVbMF1bMF0gKyAiISI7CisJCWRmcy5zZXRab25lU3RyaW5ncyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdW10gcmVzdWx0ID0gZGZzLmdldFpvbmVTdHJpbmdzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRMb2NhbFBhdHRlcm5DaGFycygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldExvY2FsUGF0dGVybkNoYXJzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldExvY2FsUGF0dGVybkNoYXJzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHBhdCA9IGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworCQlTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwYXQpOworCQlidWYuc2V0Q2hhckF0KDAsIChjaGFyKShwYXQuY2hhckF0KDApICsgMSkpOworCQlTdHJpbmcgcGF0MiA9IGJ1Zi50b1N0cmluZygpOworCQlkZnMuc2V0TG9jYWxQYXR0ZXJuQ2hhcnMocGF0Mik7CisJCVN0cmluZyBwYXQzID0gZGZzLmdldExvY2FsUGF0dGVybkNoYXJzKCk7CisJCWFzc2VydE5vdEVxdWFsKHBhdCwgcGF0Mik7CisJCWFzc2VydEVxdWFscyhwYXQyLCBwYXQzKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy50b1N0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLnRvU3RyaW5nKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmNsb25lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdEhhc2hDb2RlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE0YzA0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsNDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIERhdGVGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgQ2FsZW5kYXIgYUNhbDsKKyAgICBwcml2YXRlIENhbGVuZGFyIGFuRVNUQ2FsOworICAgIHByaXZhdGUgRGF0ZSBhRGF0ZTsKKyAgICBwcml2YXRlIFN0cmluZyBhRGF0ZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhVGltZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhbkVTVFRpbWVTdHJpbmc7CisgICAgcHJpdmF0ZSBTdHJpbmcgYURhdGVUaW1lU3RyaW5nOworICAgIHByaXZhdGUgU3RyaW5nIGFTaG9ydERhdGVUaW1lU3RyaW5nOworICAgIHByaXZhdGUgU3RyaW5nIGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmc7CisgICAgcHJpdmF0ZSBEYXRlRm9ybWF0IGFERjsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBhQnVmOworICAgIHByaXZhdGUgRmllbGRQb3NpdGlvbiBhbkZQOworICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIgZ2NhbCA9IG5ldyBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2NhbC5jbGVhcigpOworICAgICAgICBnY2FsLnNldChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuWUVBUiwgMTk5MCk7CisgICAgICAgIGdjYWwuc2V0KGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5NT05USCwgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkRFQ0VNQkVSKTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkRBVEUsIDE3KTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkhPVVIsIDUpOworICAgICAgICBnY2FsLnNldChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuTUlOVVRFLCAxNyk7CisgICAgICAgIGFDYWwgPSBuZXcgQ2FsZW5kYXIoZ2NhbCk7CisgICAgICAgIGFuRVNUQ2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYW5FU1RDYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgYURhdGUgPSBnY2FsLmdldFRpbWUoKTsKKyAgICAgICAgYURhdGVTdHJpbmcgPSAiRGVjIDE3LCAxOTkwIjsgLy8gbWVkaXVtIC0tIHRoZSBkZWZhdWx0CisgICAgICAgIGFUaW1lU3RyaW5nID0gIjU6MTc6MDAgQU0iOyAvLyBtZWRpdW0KKyAgICAgICAgYW5FU1RUaW1lU3RyaW5nID0gIjg6MTc6MDAgQU0iOworICAgICAgICBhRGF0ZVRpbWVTdHJpbmcgPSAiRGVjIDE3LCAxOTkwIDU6MTc6MDAgQU0iOyAvLyBtZWRpdW0sIG1lZGl1bQorICAgICAgICBhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nID0gIkRlYyAxNywgMTk5MCA4OjE3IEFNIjsgLy8gbWVkaXVtLCBzaG9ydCAtLSB0aGUgZGVmYXVsdAorICAgICAgICBhU2hvcnREYXRlVGltZVN0cmluZyA9ICIxMi8xNy85MCA1OjE3IEFNIjsgLy8gc2hvcnQsIHNob3J0CisgICAgICAgIGFERiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIGFCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGFuRlAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0Lmhhc2hDb2RlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGVxID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICB0ZXN0RUhDUyhkZiwgZXEsIGFERik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5EYXRlRm9ybWF0KERhdGVGb3JtYXQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3REYXRlRm9ybWF0KCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhEYXRlRm9ybWF0LmdldEluc3RhbmNlKCksIGRmKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhTdHJpbmcgc3RyKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIHN0cik7CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmZvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdE9iamVjdFN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhhREYuZm9ybWF0KGFEYXRlLCBhQnVmLCBhbkZQKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5mb3JtYXQoQ2FsZW5kYXIsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdENhbGVuZGFyU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKGFERi5mb3JtYXQoYUNhbCwgYUJ1ZiwgYW5GUCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZm9ybWF0KERhdGUsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdERhdGVTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBhc3NlcnRFcXVhbERhdGVTdHJpbmcoYURGLmZvcm1hdChhRGF0ZSwgYUJ1ZiwgYW5GUCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZm9ybWF0KERhdGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RGb3JtYXREYXRlKCkgeworICAgICAgICBhc3NlcnRFcXVhbERhdGVTdHJpbmcoYURGLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQucGFyc2UoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0UGFyc2VTdHJpbmcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhREYucGFyc2UoYURhdGVUaW1lU3RyaW5nKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5wYXJzZShTdHJpbmcsIENhbGVuZGFyLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0UGFyc2VTdHJpbmdDYWxlbmRhclBhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIGFERi5wYXJzZShhRGF0ZVRpbWVTdHJpbmcsIGFDYWwsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhQ2FsLmdldFRpbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RQYXJzZVN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZSwgYURGLnBhcnNlKGFEYXRlVGltZVN0cmluZywgbmV3IFBhcnNlUG9zaXRpb24oMCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnBhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFBhcnNlT2JqZWN0U3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhREYucGFyc2VPYmplY3QoYURhdGVUaW1lU3RyaW5nLCBuZXcgUGFyc2VQb3NpdGlvbigwKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZUludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlSW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlSW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShpbnQsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VJbnRVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGludCwgaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUludEludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgCisgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VJbnRJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIAorICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlVGltZUluc3RhbmNlSW50SW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgCisgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldEluc3RhbmNlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYVNob3J0RGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIElDVVRlc3RDYXNlLmFzc2VydEFycmF5c0VxdWFsKGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKSwgbG9jYWxlcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnROb3ROdWxsKGxvY2FsZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5zZXRDYWxlbmRhcihDYWxlbmRhciknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFNldENhbGVuZGFyKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjg6MTcgQU0iLCBkZi5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldENhbGVuZGFyKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldENhbGVuZGFyKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICBhc3NlcnRFcXVhbHMoY2FsLCBkZi5nZXRDYWxlbmRhcigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RTZXROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIC8vIG5vIGVhc3kgd2F5IHRvIHRlc3QgZWZmZWN0IG9mIHNldHRpbmcgdGhlIG51bWJlciBmb3JtYXQKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgZGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAgICAgLy8gbm90ZSwgY2FuJ3QgYWN0dWFsbHkgVVNFIHRoZSBkYXRlZm9ybWF0IHNpbmNlIGl0IGNoYW5nZXMgdGhlIGNhbGVuZGFyCisgICAgICAgIGFzc2VydEVxdWFscyhuZiwgZGYuZ2V0TnVtYmVyRm9ybWF0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0TnVtYmVyRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldE51bWJlckZvcm1hdCgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RTZXROdW1iZXJGb3JtYXQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnNldFRpbWVab25lKFRpbWVab25lKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0U2V0VGltZVpvbmUoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisgICAgICAgIGRmLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCI4OjE3IEFNIiwgZGYuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lWm9uZSgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKTsKKyAgICAgICAgZGYuc2V0VGltZVpvbmUodHopOworICAgICAgICBhc3NlcnRFcXVhbHModHosIGRmLmdldFRpbWVab25lKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuc2V0TGVuaWVudChib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0U2V0TGVuaWVudCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgIGRmLnBhcnNlKCIyLzMxLzkwIik7IC8vIHN1Y2NlZWRzLCBkZWZhdWx0IGlzIGxlbmllbnQKKyAgICAgICAgZGYuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZi5wYXJzZSgiMi8zMS85MCIpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigic3RyaWN0IHBhcnNlIHNob3VsZCBoYXZlIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvaywgdGhpcyBpcyB3aGF0IHdlIGV4cGVjdAorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5pc0xlbmllbnQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0SXNMZW5pZW50KCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRUcnVlKGRmLmlzTGVuaWVudCgpKTsKKyAgICAgICAgZGYuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIGFzc2VydEZhbHNlKGRmLmlzTGVuaWVudCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VDYWxlbmRhckludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShhQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlQ2FsZW5kYXJJbnRVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGFDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VDYWxlbmRhckludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFuRVNUVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoYW5FU1RDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VDYWxlbmRhckludFVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhbkVTVFRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIGludCwgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUNhbGVuZGFySW50SW50TG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURlZmF1bHRFU1REYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIsIGludCwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUNhbGVuZGFySW50SW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuU0hPUlQsIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldEluc3RhbmNlQ2FsZW5kYXJMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldEluc3RhbmNlKGFuRVNUQ2FsLCBMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZUNhbGVuZGFyVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoYW5FU1RDYWwsIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZUNhbGVuZGFyKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURlZmF1bHRFU1REYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShhbkVTVENhbCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUNhbGVuZGFySW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGFDYWwsIERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlQ2FsZW5kYXJJbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhbkVTVFRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VDYWxlbmRhckludEludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuU0hPUlQpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoYURGLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFN5bWJvbHNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFN5bWJvbHNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThlZTQwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EZWNpbWFsRm9ybWF0U3ltYm9sc1Rlc3QuamF2YQpAQCAtMCwwICsxLDM0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzVGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmhhc2hDb2RlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzMiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKTsKKwkJdGVzdEVIQ1MoZGZzLCBkZnMyLCBkZnNuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5EZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyknCisJICovCisJcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5EZWNpbWFsRm9ybWF0U3ltYm9scygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisJCWFzc2VydFRydWUoLTEgIT0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNMb2NhbGUoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnRUcnVlKC0xICE9IGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLkRlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc1VMb2NhbGUoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0VHJ1ZSgtMSAhPSBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRaZXJvRGlnaXQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0WmVyb0RpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnMCcsIGRmcy5nZXRaZXJvRGlnaXQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0WmVyb0RpZ2l0KGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRaZXJvRGlnaXQoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRaZXJvRGlnaXQoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldFplcm9EaWdpdCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRaZXJvRGlnaXQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcsJywgZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRHcm91cGluZ1NlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRHcm91cGluZ1NlcGFyYXRvcih2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXREZWNpbWFsU2VwYXJhdG9yKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcuJywgZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcihjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGVjaW1hbFNlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldERlY2ltYWxTZXBhcmF0b3IodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRQZXJNaWxsKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFBlck1pbGwoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCdcdTIwMzAnLCBkZnMuZ2V0UGVyTWlsbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRQZXJNaWxsKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRQZXJNaWxsKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0UGVyTWlsbCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0UGVyTWlsbCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRQZXJNaWxsKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldFBlcmNlbnQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UGVyY2VudCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJyUnLCBkZnMuZ2V0UGVyY2VudCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRQZXJjZW50KGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRQZXJjZW50KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0UGVyY2VudCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0UGVyY2VudCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRQZXJjZW50KCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldERpZ2l0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnIycsIGRmcy5nZXREaWdpdCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXREaWdpdChjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGlnaXQoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXREaWdpdCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0RGlnaXQodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0RGlnaXQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0UGF0dGVyblNlcGFyYXRvcigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRQYXR0ZXJuU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnOycsIGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldFBhdHRlcm5TZXBhcmF0b3IoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFBhdHRlcm5TZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRQYXR0ZXJuU2VwYXJhdG9yKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0SW5maW5pdHkoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5maW5pdHkoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCJcdTIyMWUiLCBkZnMuZ2V0SW5maW5pdHkoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0SW5maW5pdHkoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW5maW5pdHkoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHZhbHVlID0gZGZzLmdldEluZmluaXR5KCk7CisJCVN0cmluZyB2YWx1ZTEgPSB2YWx1ZSArICIhIjsKKwkJZGZzLnNldEluZmluaXR5KHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0SW5maW5pdHkoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0TmFOKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE5hTigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXROYU4oKSk7IC8vIGphdmEgcmV0dXJucyBtaXNzaW5nIGNoYXJhY3Rlcj8/PworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldE5hTihTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXROYU4oKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHZhbHVlID0gZGZzLmdldE5hTigpOworCQlTdHJpbmcgdmFsdWUxID0gdmFsdWUgKyAiISI7CisJCWRmcy5zZXROYU4odmFsdWUxKTsKKwkJU3RyaW5nIHJlc3VsdCA9IGRmcy5nZXROYU4oKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0TWludXNTaWduKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE1pbnVzU2lnbigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJy0nLCBkZnMuZ2V0TWludXNTaWduKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldE1pbnVzU2lnbihjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0TWludXNTaWduKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0TWludXNTaWduKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRNaW51c1NpZ24odmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0TWludXNTaWduKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiJCIsIGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRDdXJyZW5jeVN5bWJvbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlTdHJpbmcgdmFsdWUgPSBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKwkJU3RyaW5nIHZhbHVlMSA9IHZhbHVlICsgIiEiOworCQlkZnMuc2V0Q3VycmVuY3lTeW1ib2wodmFsdWUxKTsKKwkJU3RyaW5nIHJlc3VsdCA9IGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiVVNEIiwgZGZzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCVN0cmluZyB2YWx1ZSA9IGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKwkJU3RyaW5nIHZhbHVlMSA9IHZhbHVlICsgIiEiOworCQlkZnMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcuJywgZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGluIHRlc3RIYXNoY29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBpbiB0ZXN0SGFzaGNvZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EZWNpbWFsRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYTlmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDI0MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKKworcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1heCA9IExvbmcuTUFYX1ZBTFVFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBkc21hbGwgPSAyMy4zMzsKKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwLjAwIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYyID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIzAuMDAiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZm4gPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMC4wMCIpOworICAgICAgICBkZm4uc2V0TmVnYXRpdmVQcmVmaXgoZGZuLmdldE5lZ2F0aXZlUHJlZml4KCkgKyAnIScpOworICAgICAgICB0ZXN0RUhDUyhkZiwgZGYyLCBkZm4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuRGVjaW1hbEZvcm1hdChEZWNpbWFsRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdERlY2ltYWxGb3JtYXQoKSB7CisgICAgICAgIC8vIHRlc3RlZCBpbXBsaWNpdGx5CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5EZWNpbWFsRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjksMjIzLDM3MiwwMzYsODU0LDc3NSw4MDciLCBkZi5mb3JtYXQobG1heCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuRGVjaW1hbEZvcm1hdChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3RyaW5nKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAwMCIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjIzLjMzMCIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LkRlY2ltYWxGb3JtYXQoU3RyaW5nLCBEZWNpbWFsRm9ybWF0U3ltYm9scyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXRTdHJpbmdEZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAwMCIsIHN5bSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMjMsMzMwIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wMDAiLCBzeW0pOworICAgICAgICBhc3NlcnRFcXVhbHMoc3ltLCBkZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKERlY2ltYWxGb3JtYXRTeW1ib2xzKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjIzLDMzIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0UG9zaXRpdmVQcmVmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0UG9zaXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIrIiwgZGYuZ2V0UG9zaXRpdmVQcmVmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRQb3NpdGl2ZVByZWZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRQb3NpdGl2ZVByZWZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVByZWZpeCgiPyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIj8yMy4zIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TmVnYXRpdmVQcmVmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmVnYXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCItIiwgZGYuZ2V0TmVnYXRpdmVQcmVmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXROZWdhdGl2ZVByZWZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXROZWdhdGl2ZVByZWZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXROZWdhdGl2ZVByZWZpeCgifiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIn4yMy4zIiwgZGYuZm9ybWF0KC1kc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldFBvc2l0aXZlU3VmZml4KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBvc2l0aXZlU3VmZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jKio7LSMsIyMwLiN+fiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIioqIiwgZGYuZ2V0UG9zaXRpdmVTdWZmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRQb3NpdGl2ZVN1ZmZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRQb3NpdGl2ZVN1ZmZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVN1ZmZpeCgiKioiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIrMjMuMyoqIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TmVnYXRpdmVTdWZmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmVnYXRpdmVTdWZmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiMqKjstIywjIzAuI35+Iik7CisgICAgICAgIGFzc2VydEVxdWFscygifn4iLCBkZi5nZXROZWdhdGl2ZVN1ZmZpeCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldE5lZ2F0aXZlU3VmZml4KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE5lZ2F0aXZlU3VmZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jOy0jLCMjMC4jIik7CisgICAgICAgIGRmLnNldE5lZ2F0aXZlU3VmZml4KCJ+fiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIi0yMy4zfn4iLCBkZi5mb3JtYXQoLWRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TXVsdGlwbGllcigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRNdWx0aXBsaWVyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiUwMDAiKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcigxMDAwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMDAsIGRmLmdldE11bHRpcGxpZXIoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRNdWx0aXBsaWVyKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE11bHRpcGxpZXIoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiJTAwMCIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiUwMTIiLCBkZi5mb3JtYXQoLjEyMykpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKDEwMDApOworICAgICAgICBhc3NlcnRFcXVhbHMoIiUxMjMiLCBkZi5mb3JtYXQoLjEyMykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0R3JvdXBpbmdTaXplKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEdyb3VwaW5nU2l6ZSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIGRmLmdldEdyb3VwaW5nU2l6ZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldEdyb3VwaW5nU2l6ZShpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRHcm91cGluZ1NpemUoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIzNCw1NjcuODkiLCBkZi5mb3JtYXQoMTIzNDU2Ny44OSkpOworICAgICAgICBkZi5zZXRHcm91cGluZ1NpemUoMik7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMyw0NSw2Ny44OSIsIGRmLmZvcm1hdCgxMjM0NTY3Ljg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RJc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxIiwgZGYuZm9ybWF0KDEpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLjIiLCBkZi5mb3JtYXQoMS4yKSk7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLiIsIGRmLmZvcm1hdCgxKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoZGYuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSk7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShkZi5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnRvUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1BhdHRlcm4oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIjLCMjMC4jIyIsIGRmLnRvUGF0dGVybigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnRvTG9jYWxpemVkUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiMsIyMwLiMjIiwgZGYudG9QYXR0ZXJuKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiNcdTAwYTAjIzAsIyMiLCBkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlQYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIik7CisgICAgICAgIGRmLmFwcGx5UGF0dGVybigiIywwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIsMy40IiwgZGYuZm9ybWF0KDEyMy40KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5hcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpKTsKKyAgICAgICAgZGYuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCIjXHUwMGEwMCwjIik7CisgICAgICAgIGFzc2VydEVxdWFscygiMVx1MDBhMDJcdTAwYTAzLDQiLCBkZi5mb3JtYXQoMTIzLjQpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvSUNVVGVzdENhc2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9JQ1VUZXN0Q2FzZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZjIwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvSUNVVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuQXJyYXk7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEltcGxlbWVudCBib2lsZXJwbGF0ZSB0ZXN0cy4KKyAqIEN1cnJlbnRseSB0aGVyZSBpcyBvbmx5IG9uZSBtZXRob2QsIHRlc3RFSENTLCB3aGljaCB0ZXN0cyBlcXVhbHMsIGhhc2hDb2RlLCAKKyAqIGNsb25lLCBhbmQgc2VyaWFsaXphdGlvbi4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIElDVVRlc3RDYXNlIGV4dGVuZHMgVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdIEVNUFRZX0FSR1MgPSB7fTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzc1tdIEVNUFRZX0NMQVNTRVMgPSB7fTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIG9sZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZSBvbGRVTG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS51dGlsLlRpbWVab25lIG9sZEpUaW1lWm9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgb2xkSVRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIAorICAgIC8vIFRPRE86IHdoYXQncyB0aGUgYmVzdCB3YXkgdG8gY2hlY2sgdGhpcz8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gdGVzdGluZ1dyYXBwZXIgPSB0cnVlOworCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIikpOworICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGVhckRvd24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG9sZFVMb2NhbGUpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChvbGRMb2NhbGUpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG9sZElUaW1lWm9uZSk7CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KG9sZEpUaW1lWm9uZSk7CisgICAgICAgIHN1cGVyLnRlYXJEb3duKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IHRlc3QgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFzc2VydCB0aGF0IHR3byBvYmplY3RzIGFyZSBfbm90XyBlcXVhbC4gIEN1cmlvdXNseSBtaXNzaW5nIGZyb20gQXNzZXJ0LgorICAgICAqIEBwYXJhbSBsaHMgYW4gb2JqZWN0IHRvIHRlc3QsIG1heSBiZSBudWxsCisgICAgICogQHBhcmFtIHJocyBhbiBvYmplY3QgdG8gdGVzdCwgbWF5IGJlIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzZXJ0Tm90RXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICBpZiAobGhzID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgZmFpbCgibnVsbCBlcXVhbHMgbnVsbCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxocy5lcXVhbHMocmhzKSkgeworICAgICAgICAgICAgICAgIGZhaWwobGhzLnRvU3RyaW5nKCkgKyAiIGVxdWFscyAiICsgcmhzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFzc2VydE5vdEVxdWFsKGxvbmcgbGhzLCBsb25nIHJocykgeworICAgICAgICBpZiAobGhzID09IHJocykgeworICAgICAgICAgICAgZmFpbCgidmFsdWVzIGFyZSBlcXVhbDogIiArIGxocyk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgd2hldGhlciBlcXVhbGl0eSwgaGFzaENvZGUsIGNsb25lLCBhbmQgc2VyaWFsaXphdGlvbiB3b3JrIGFzIGV4cGVjdGVkLiAgCisgICAgICogRXF1YWxzKE9iamVjdCkgaXMgYXNzdW1lZCB0byByZXR1cm4gZmFsc2UgKG5vdCB0aHJvdyBhbiBleGNlcHRpb24pIGlmIHBhc3NlZCAKKyAgICAgKiBudWxsIG9yIGFuIG9iamVjdCBvZiBhbiBpbmNvbXBhdGlibGUgY2xhc3MuCisgICAgICogSGFzaGNvZGVzIG11c3QgYmUgZXF1YWwgaWZmIHRoZSB0d28gb2JqZWN0cyBjb21wYXJlIGVxdWFsLiAgTm8gYXR0ZW1wdCBpcyBtYWRlIHRvCisgICAgICogZXZhbHVhdGUgdGhlIHF1YWxpdHkgb2YgdGhlIGhhc2hjb2RlIGRpc3RyaWJ1dGlvbiwgc28gKGluIHBhcnRpY3VsYXIpIGRlZ2VuZXJhdGUgCisgICAgICogaGFzaGNvZGUgaW1wbGVtZW50YXRpb25zIHdpbGwgcGFzcyB0aGlzIHRlc3QuCisgICAgICogQ2xvbmUgd2lsbCBiZSB0ZXN0ZWQgaWYgdGhlIG1ldGhvZCAiY2xvbmUiIGlzIHB1YmxpYyBvbiB0aGUgY2xhc3Mgb2Ygb2JqLiAgCisgICAgICogSXQgaXMgYXNzdW1lZCB0byByZXR1cm4gYW4gb2JqZWN0IHRoYXQgY29tcGFyZXMgZXF1YWwgdG8gb2JqLgorICAgICAqIFNlcmlhbGl6YXRpb24gd2lsbCBiZSB0ZXN0ZWQgaWYgb2JqZWN0IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIG9yIEV4dGVybmFsaXphYmxlLgorICAgICAqIEl0IGlzIGFzc3VtZWQgdGhlIHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkIG9iamVjdCBjb21wYXJlcyBlcXVhbCB0byBvYmouCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIHRlc3QKKyAgICAgKiBAcGFyYW0gZXEgYW4gb2JqZWN0IHRoYXQgc2hvdWxkIGNvbXBhcmUgZXF1YWwgdG8sIGJ1dCBpcyBub3QgdGhlIHNhbWUgYXMsIG9iai4gIAorICAgICAqICAgICBpdCBzaG91bGQgYmUgYXNzaWduYWJsZSB0byB0aGUgY2xhc3Mgb2Ygb2JqLgorICAgICAqIEBwYXJhbSBuZXEgYSBub24tbnVsbCBvYmplY3QgdGhhdCBzaG91bGQgbm90IGNvbXBhcmUgZXF1YWwgdG8gb2JqLiAgCisgICAgICogICAgIGl0IHNob3VsZCBiZSBhc3NpZ25hYmxlIHRvIHRoZSBjbGFzcyBvZiBvYmouCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3RFSENTKE9iamVjdCBvYmosIE9iamVjdCBlcSwgT2JqZWN0IG5lcSkgeworICAgICAgICBpZiAob2JqID09IG51bGwgfHwgZXEgPT0gbnVsbCB8fCBuZXEgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgIGlmICghKGNscy5pc0Fzc2lnbmFibGVGcm9tKGVxLmdldENsYXNzKCkpICYmIGNscy5pc0Fzc2lnbmFibGVGcm9tKG5lcS5nZXRDbGFzcygpKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVuYXNzaWduYWJsZSBjbGFzc2VzIik7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gcmVmbGV4aXZlCisgICAgICAgIGFzc2VydEVxdWFscyhvYmosIG9iaik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIHNob3VsZCByZXR1cm4gZmFsc2UsIG5vdCB0aHJvdyBleGNlcHRpb24KKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwob2JqLCB0ZXN0KTsKKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwob2JqLCBudWxsKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gY29tbXV0YXRpdmUKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgZXEpOworICAgICAgICBhc3NlcnRFcXVhbHMoZXEsIG9iaik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGFzc2VydE5vdEVxdWFsKG9iaiwgbmVxKTsKKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwobmVxLCBvYmopOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBlcXVhbCBvYmplY3RzIE1VU1QgaGF2ZSBlcXVhbCBoYXNoZXMsIHVuZXF1YWwgb2JqZWN0cyBNQVkgaGF2ZSBlcXVhbCBoYXNoZXMKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG9iai5oYXNoQ29kZSgpLCBlcS5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgT2JqZWN0IGNsb25lID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGxvb2sgZm9yIHB1YmxpYyBjbG9uZSBtZXRob2QgYW5kIGNhbGwgaXQgaWYgYXZhaWxhYmxlCisgICAgICAgICAgICBNZXRob2QgbWV0aG9kX2Nsb25lID0gY2xzLmdldE1ldGhvZCgiY2xvbmUiLCBFTVBUWV9DTEFTU0VTKTsKKyAgICAgICAgICAgIGNsb25lID0gbWV0aG9kX2Nsb25lLmludm9rZShvYmosIEVNUFRZX0FSR1MpOworICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbChjbG9uZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIG9rCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvaworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gb2sKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoY2xvbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgY2xvbmUpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGNsb25lLCBvYmopOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTZXJpYWxpemFibGUgfHwgb2JqIGluc3RhbmNlb2YgRXh0ZXJuYWxpemFibGUpIHsKKyAgICAgICAgICAgIE9iamVjdCBzZXIgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGNsb25lKTsKKyAgICAgICAgICAgICAgICBvb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJvcy50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYmlzKTsKKyAgICAgICAgICAgICAgICBzZXIgPSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIG9pcy5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMob2JqLCBzZXIpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyhzZXIsIG9iaik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG9iai5oYXNoQ29kZSgpLCBzZXIuaGFzaENvZGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWlsIGlmIHRoZSBhcnJheXMgYXJlIG5vdCBlcXVhbC4gIFRvIGJlIGVxdWFsLCB0aGUgYXJyYXlzIG11c3QKKyAgICAgKiBiZSB0aGUgc2FtZSBsZW5ndGgsIGFuZCBlYWNoIGVsZW1lbnQgaW4gdGhlIGxlZnQgYXJyYXkgbXVzdCBjb21wYXJlCisgICAgICogZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgcmlnaHQgYXJyYXkuCisgICAgICogQWxzbyBmYWlscyBpZiBvbmUgb2YgdGhlIG9iamVjdHMgaXMgbm90IGFuIGFycmF5LgorICAgICAqIEBwYXJhbSBsaHMgdGhlIGxlZnQgYXJyYXkKKyAgICAgKiBAcGFyYW0gcmhzIHRoZSByaWdodCBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NlcnRBcnJheXNFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgIENsYXNzIGxjbHMgPSBsaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgQ2xhc3MgcmNscyA9IHJocy5nZXRDbGFzcygpOworICAgICAgICBpZiAoIShsY2xzLmlzQXJyYXkoKSAmJiByY2xzLmlzQXJyYXkoKSkpIHsKKyAgICAgICAgICAgIGZhaWwoIm9iamVjdHMgYXJlIG5vdCBhcnJheXMiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzLCByaHMpOworICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhaWwocmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZhaWwgaWYgdGhlIGFycmF5cyBhcmUgZXF1YWwuICBBbHNvIGZhaWxzIGlmIG9uZSBvciB0aGUgb3RoZXIgCisgICAgICogYXJndW1lbnQgaXMgbm90IGFuIGFycmF5LgorICAgICAqIEBwYXJhbSBsaHMgdGhlIGxlZnQgYXJyYXkKKyAgICAgKiBAcGFyYW0gcmhzIHRoZSByaWdodCBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NlcnRBcnJheXNOb3RFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgIENsYXNzIGxjbHMgPSBsaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgQ2xhc3MgcmNscyA9IHJocy5nZXRDbGFzcygpOworICAgICAgICBpZiAoIShsY2xzLmlzQXJyYXkoKSAmJiByY2xzLmlzQXJyYXkoKSkpIHsKKyAgICAgICAgICAgIGZhaWwoIm9iamVjdHMgYXJlIG5vdCBhcnJheXMiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzLCByaHMpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhaWwoImFycmF5cyBhcmUgZXF1YWwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gc2xvdyBidXQgZ2VuZXJhbAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBhcnJheXNBcmVFcXVhbChPYmplY3QgbGhzYSwgT2JqZWN0IHJoc2EpIHsKKyAgICAgICAgaW50IGxoc2wgPSBBcnJheS5nZXRMZW5ndGgobGhzYSk7CisgICAgICAgIGludCByaHNsID0gQXJyYXkuZ2V0TGVuZ3RoKHJoc2EpOworICAgICAgICBpZiAobGhzbCAhPSByaHNsKSB7CisgICAgICAgICAgICByZXR1cm4gImxlbmd0aCAiICsgbGhzbCArICIgIT0gIiArIHJoc2w7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBsaHNhQSA9IGxoc2EuZ2V0Q2xhc3MoKS5nZXRDb21wb25lbnRUeXBlKCkuaXNBcnJheSgpOworICAgICAgICBib29sZWFuIHJoc2FBID0gcmhzYS5nZXRDbGFzcygpLmdldENvbXBvbmVudFR5cGUoKS5pc0FycmF5KCk7CisgICAgICAgIGlmIChsaHNhQSAhPSByaHNhQSkgeworICAgICAgICAgICAgcmV0dXJuIChsaHNhQSA/ICIiIDogIm5vbi0iKSArICJhcnJheSAhPSAiICsgKHJoc2FBID8gIiIgOiAibm9uLSIpICsgImFycmF5IjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxoc2w7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0IGxoc2UgPSBBcnJheS5nZXQobGhzYSwgaSk7CisgICAgICAgICAgICBPYmplY3QgcmhzZSA9IEFycmF5LmdldChyaHNhLCBpKTsKKyAgICAgICAgICAgIGlmIChsaHNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmhzZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCAhPSAiICsgcmhzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsaHNhQSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzZSwgcmhzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5jaGFyQXQoMCkgIT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIiAiICsgcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJbIiArIGkgKyAiXSIgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWxoc2UuZXF1YWxzKHJoc2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGhzZS50b1N0cmluZygpICsgIiAhPSAiICsgcmhzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgICAgIAorICAgIC8vIG11Y2ggbW9yZSBwYWluZnVsIGFuZCBzbG93IHRoYW4gaXQgc2hvdWxkIGJlLi4uIHBhcnRseSBiZWNhdXNlIG9mIHRoZQorICAgIC8vIG9kZG5lc3Mgb2YgY2xvbmUsIHBhcnRseSBiZWNhdXNlIGFycmF5cyBkb24ndCBwcm92aWRlIGEgTWV0aG9kIGZvciAKKyAgICAvLyAnY2xvbmUnIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGV5IGltcGxlbWVudCBpdCBhbmQgbWFrZSBpdCBwdWJsaWMuCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgY2xvbmVDb21wbGV4KE9iamVjdCBvYmopIHsKKyAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG51bGw7CisgICAgICAgIGlmIChvYmogIT0gbnVsbCkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgICAgICBpZiAoY2xzLmlzQXJyYXkoKSkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSBBcnJheS5nZXRMZW5ndGgob2JqKTsKKyAgICAgICAgICAgICAgICBDbGFzcyB0eXAgPSBjbHMuZ2V0Q29tcG9uZW50VHlwZSgpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IEFycmF5Lm5ld0luc3RhbmNlKHR5cCwgbGVuKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHByaW0gPSB0eXAuaXNQcmltaXRpdmUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbGVtID0gQXJyYXkuZ2V0KG9iaiwgaSk7CisgICAgICAgICAgICAgICAgICAgIEFycmF5LnNldChyZXN1bHQsIGksIHByaW0gPyBlbGVtIDogY2xvbmVDb21wbGV4KGVsZW0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG9iajsgLy8gZGVmYXVsdAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE1ldGhvZCBjbG9uZU0gPSBjbHMuZ2V0TWV0aG9kKCJjbG9uZSIsIG51bGwpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjbG9uZU0uaW52b2tlKG9iaiwgbnVsbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTWVzc2FnZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9NZXNzYWdlRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MzkwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTWVzc2FnZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDMwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gIkRlbGV0ZWQgezAsbnVtYmVyfSBmaWxlcyBhdCB7MSx0aW1lLHNob3J0fSBvbiB7MSxkYXRlfS4iOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGFsdFBhdHRlcm4gPSAiRGVsZXRlZCB7MCwgIG51bWJlciB9IGZpbGVzIGF0IHsxLCB0aW1lLCBzaG9ydH0gb24gezEsIGRhdGV9LiI7CisgICAgcHJpdmF0ZSBmaW5hbCBEYXRlIGRhdGUgPSBuZXcgRGF0ZSg3MTY2OTg4OTA4MzVMKTsKKyAgICBwcml2YXRlIGZpbmFsIE51bWJlciBudW0gPSBuZXcgTG9uZygzNDU2KTsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdFtdIGFyZ3MgPSB7IG51bSwgZGF0ZSB9OworICAgIHByaXZhdGUgZmluYWwgRGF0ZSBkYXRlT25seSA9IG5ldyBEYXRlKDcxNjYyNjgwMDAwMEwpOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGVuZ2xpc2hUYXJnZXQgPSAiRGVsZXRlZCAzLDQ1NiBmaWxlcyBhdCA4OjAxIFBNIG9uIFNlcCAxNiwgMTk5Mi4iOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGdlcm1hblRhcmdldCA9ICJEZWxldGVkIDMuNDU2IGZpbGVzIGF0IDIwOjAxIG9uIDE2LjA5LjE5OTIuIjsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtb2RpZmllZFRhcmdldCA9ICJEZWxldGVkIDMsNDU2IGZpbGVzIGF0IDg6MDE6MzAgUE0gUERUIG9uIFNlcCAxNiwgMTk5Mi4iOworICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBlcSA9IG5ldyBNZXNzYWdlRm9ybWF0KGFsdFBhdHRlcm4pOworICAgICAgICBNZXNzYWdlRm9ybWF0IG5lID0gbmV3IE1lc3NhZ2VGb3JtYXQoIkRlbGV0ZWQgKDAsIG51bWJlciwgY3VycmVuY3l9IGZpbGVzIGF0IHsxLCB0aW1lfSBvbiB7MSwgZGF0ZX0uIik7CisgICAgICAgIHRlc3RFSENTKG1mLCBlcSwgbmUpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuTWVzc2FnZUZvcm1hdChNZXNzYWdlRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TWVzc2FnZUZvcm1hdE1lc3NhZ2VGb3JtYXQoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lk1lc3NhZ2VGb3JtYXQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TWVzc2FnZUZvcm1hdFN0cmluZygpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lk1lc3NhZ2VGb3JtYXQoU3RyaW5nLCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RNZXNzYWdlRm9ybWF0U3RyaW5nTG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5NZXNzYWdlRm9ybWF0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE1lc3NhZ2VGb3JtYXRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgVUxvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0TG9jYWxlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldExvY2FsZUxvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldExvY2FsZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIG1mLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGdlcm1hblRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldExvY2FsZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0TG9jYWxlVUxvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldExvY2FsZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBtZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhnZXJtYW5UYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRMb2NhbGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0TG9jYWxlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKExvY2FsZS5HRVJNQU5ZLCBtZi5nZXRMb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRVTG9jYWxlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFVMb2NhbGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBtZi5zZXRMb2NhbGUoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOWSwgbWYuZ2V0VUxvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybihTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBseVBhdHRlcm4oKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiZm9vIik7CisgICAgICAgIG1mLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9QYXR0ZXJuKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoYWx0UGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhwYXR0ZXJuLCBtZi50b1BhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KEZvcm1hdFtdKScKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpIHsKKyAgICAgICAgLy8gdGhpcyBhcGkgaXMgYnJva2VuLiAgaWYgdGhlIHNhbWUgYXJndW1lbnQgaXMgdXNlZCB0d2ljZSB3aXRoIHR3byBkaWZmZXJlbnQKKyAgICAgICAgLy8gZm9ybWF0cywgdGhpcyBjYW4ndCBiZSB1c2VkLCBzaW5jZSBpdCBzZXRzIG9ubHkgb25lIGZvcm1hdCBwZXIgYXJndW1lbnQuCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCksCisgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLAorICAgICAgICB9OworICAgICAgICBtZi5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KGZvcm1hdHMpOworICAgICAgICBhc3NlcnRFcXVhbHMoYnJva2VuQnV0Q29uZm9ybWFudFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisgICAgICovCisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdHMoRm9ybWF0W10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRGb3JtYXRzKCkgeworICAgICAgICAvLyB0aGlzIGFwaSwgd2hpbGUgaXQgaGFzIHRoZSBwcm9ibGVtIHRoYXQgdGhlIG9yZGVyIG9mIGZvcm1hdHMgZGVwZW5kcworICAgICAgICAvLyBvbiB0aGUgb3JkZXIgaW4gdGhlIHN0cmluZywgYXQgbGVhc3QgbGV0cyB5b3Ugc2V0IGFsbCB0aGUgZm9ybWF0cy4KKyAgICAgICAgCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCksCisgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLAorICAgICAgICB9OworICAgICAgICBtZi5zZXRGb3JtYXRzKGZvcm1hdHMpOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KGludCwgRm9ybWF0KScKKyAgICAgcHVibGljIHZvaWQgdGVzdFNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgpIHsKKyAgICAgICAgLy8gc2FtZSBwcm9ibGVtLCBvbmNlIHlvdSBzZXQgYSBmb3JtYXQgZm9yIGFuIGFyZ3VtZW50LCB5b3UndmUgc2V0IGFsbCBvZiB0aGVtCisgICAgICAgIAorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KDEsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGJyb2tlbkJ1dENvbmZvcm1hbnRUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisKKyAgICB9CisgICAgKi8KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0KGludCwgRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0Rm9ybWF0KCkgeworICAgICAgICAvLyBhbmQgb2sgYWdhaW4gICAgICAgIAorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0KDEsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORykpOworICAgICAgICBhc3NlcnRFcXVhbHMobW9kaWZpZWRUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCknCisgICAgcHVibGljIHZvaWQgdGVzdEdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0gbWYuZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMF0sIG5mKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMV0sIGRmKTsKKyAgICB9CisgICAgICovCisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmdldEZvcm1hdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Rm9ybWF0cygpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHMgPSBtZi5nZXRGb3JtYXRzKCk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBhc3NlcnRFcXVhbHMoZm9ybWF0c1swXSwgbmYpOworICAgICAgICBEYXRlRm9ybWF0IHRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMV0sIHRmKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMl0sIGRmKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmZvcm1hdChPYmplY3RbXSwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0T2JqZWN0QXJyYXlTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBtZi5mb3JtYXQoYXJncywgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5mb3JtYXQoU3RyaW5nLCBPYmplY3RbXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdFN0cmluZ09iamVjdEFycmF5KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0T2JqZWN0U3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbWYuZm9ybWF0KChPYmplY3QpYXJncywgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJzZVN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMSk7CisgICAgICAgIE9iamVjdFtdIHJlc3VsdCA9IG1mLnBhcnNlKCIhIiArIGVuZ2xpc2hUYXJnZXQsIHBwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG51bSwgcmVzdWx0WzBdKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGVPbmx5LCByZXN1bHRbMV0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQucGFyc2UoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VTdHJpbmcoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0W10gcmVzdWx0ID0gbWYucGFyc2UoZW5nbGlzaFRhcmdldCk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMobnVtLCByZXN1bHRbMF0pOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGVPbmx5LCByZXN1bHRbMV0pOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBmYWlsKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQucGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VPYmplY3RTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBPYmplY3QgcmVzdWx0ID0gbWYucGFyc2VPYmplY3QoZW5nbGlzaFRhcmdldCwgcHApOworICAgICAgICBhc3NlcnRFcXVhbHMobnVtLCAoKE9iamVjdFtdKXJlc3VsdClbMF0pOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZU9ubHksICgoT2JqZWN0W10pcmVzdWx0KVsxXSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5hdXRvUXVvdGVBcG9zdHJvcGhlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEF1dG9RdW90ZUFwb3N0cm9waGUoKSB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiTGV0J3MgbWVldCBhdCB7MSx0aW1lLGggJ28nJyBjbG9jayd9IGF0IGwnT3JhbmdlIEJsZXVlIjsKKyAgICAgICAgU3RyaW5nIHBhdCA9IE1lc3NhZ2VGb3JtYXQuYXV0b1F1b3RlQXBvc3Ryb3BoZShzdHIpOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0LCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbWYuZm9ybWF0KGFyZ3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkxldCdzIG1lZXQgYXQgOCBvJyBjbG9jayBhdCBsJ09yYW5nZSBCbGV1ZSIsIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEVxdWFscygiTGV0JydzIG1lZXQgYXQgezEsdGltZSxoICdvJycgY2xvY2snfSBhdCBsJydPcmFuZ2UgQmxldWUiLCBwYXQpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHRlc3RlZCBhbHJlYWR5IGluIHRlc3RIYXNoY29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZXF1YWxzKE9iamVjdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKyAgICAgICAgLy8gdGVzdGVkIGFscmVhZHkgaW4gdGVzdEhhc2hjb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC50b1N0cmluZygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKyAgICAgICAgLy8gbm8gbmVlZCB0byB0ZXN0CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL051bWJlckZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9OdW1iZXJGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ2YWIyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9OdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSw0NDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5OdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBuZXcgTnVtYmVyRm9ybWF0KGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZiwgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdE9iamVjdFN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIE51bWJlciBudW0gPSBuZXcgTG9uZygxMjM0TCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KG51bSwgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMzQiLCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQucGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VPYmplY3RTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5wYXJzZSgiMSwyMzQiLCBwcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhyZXN1bHQsIG5ldyBMb25nKDEyMzQpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoZG91YmxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0RG91YmxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIjEsMjM0LjU2NyIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0LjU2NykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChsb25nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0TG9uZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIzNCIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0TCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChCaWdJbnRlZ2VyKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0QmlnSW50ZWdlcigpIHsKKyAgICAgICAgLy8gbm90ZSwgamF2YSBkb2Vzbid0IGhhbmRsZSBiaWdpbnRlZ2VyIHdpdGggZnVsbCBwcmVjaXNpb24uCisgICAgICAgIEJpZ0ludGVnZXIgYmkgPSBuZXcgQmlnSW50ZWdlcigiMTIzNDU2Iik7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYmkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoZG91YmxlLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXREb3VibGVTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1Ni43ODkiLCBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoMTIzNDU2Ljc4OSwgYnVmLCBmcCkudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZm9ybWF0KGxvbmcsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdExvbmdTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0NTZMLCBidWYsIGZwKS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoQmlnSW50ZWdlciwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0QmlnSW50ZWdlclN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIC8vIG5vdGUsIGphdmEgZG9lc24ndCBoYW5kbGUgYmlnaW50ZWdlciB3aXRoIGZ1bGwgcHJlY2lzaW9uLgorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEJpZ0ludGVnZXIgYmkgPSBuZXcgQmlnSW50ZWdlcigiMTIzNDU2Iik7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYmksIGJ1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDMpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzNDU2KSwgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UoInh4eDEyMyw0NTZ5eXkiLCBwcCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTAsIHBwLmdldEluZGV4KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nKCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgTnVtYmVyIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKCIxMjMsNDU2LHl5eSIpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzNDU2KSwgcmVzdWx0KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5pc1BhcnNlSW50ZWdlck9ubHkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNQYXJzZUludGVnZXJPbmx5KCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShuZi5pc1BhcnNlSW50ZWdlck9ubHkoKSk7CisgICAgICAgIG5mLnNldFBhcnNlSW50ZWdlck9ubHkoZmFsc2UpOworICAgICAgICBhc3NlcnRGYWxzZShuZi5pc1BhcnNlSW50ZWdlck9ubHkoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seShib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0UGFyc2VJbnRlZ2VyT25seSgpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiMTIzLjQ1Nix5eXkiOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBEb3VibGUoMTIzLjQ1NiksIG5mLnBhcnNlKHN0cikpOworICAgICAgICBuZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzKSwgbmYucGFyc2Uoc3RyKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2UoKSB7CisgICAgICAgIC8vIHVzZWQgZXZlcnl3aGVyZSwgbm8gbmVlZCB0byB0ZXN0CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIG5mLmZvcm1hdCgxMjMuNDU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIG5mLmZvcm1hdCgxMjMuNDU2KSk7ICAgICAgICAgICAgCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TnVtYmVySW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYuNzg5IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXROdW1iZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2LDc4OSIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE51bWJlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1Niw3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJbnRlZ2VySW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMsNDU3IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsgLy8gcm91bmRzCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEludGVnZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1NyIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7IC8vIHJvdW5kcworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW50ZWdlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTciLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOyAvLyByb3VuZHMKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5SW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiJDEyMyw0NTYuOTkiLCBuZi5mb3JtYXQoMTIzNDU2Ljk5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDdXJyZW5jeUluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1Niw5OSCAIiwgbmYuZm9ybWF0KDEyMzQ1Ni45OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5SW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYsOTkggCIsIG5mLmZvcm1hdCgxMjM0NTYuOTkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0UGVyY2VudEluc3RhbmNlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiUiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQZXJjZW50SW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYlIiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBlcmNlbnRJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2JSIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIi4xMjM0NTZFNCIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiLDEyMzQ1NkU0IiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIsMTIzNDU2RTQiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gaWxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGpsb2NhbGVzID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGpsb2NhbGVzW2ldLCBpbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgTG9jYWxlW10gamxvY2FsZXMgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdWxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoamxvY2FsZXNbaV0sIHVsb2NhbGVzW2ldLnRvTG9jYWxlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuaXNHcm91cGluZ1VzZWQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNHcm91cGluZ1VzZWQoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRHcm91cGluZ1VzZWQodHJ1ZSk7CisgICAgICAgIGFzc2VydFRydWUobmYuaXNHcm91cGluZ1VzZWQoKSk7CisgICAgICAgIG5mLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIGFzc2VydEZhbHNlKG5mLmlzR3JvdXBpbmdVc2VkKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldEdyb3VwaW5nVXNlZChib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0R3JvdXBpbmdVc2VkKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMsNDU2LDc4OSIsIG5mLmZvcm1hdCgxMjM0NTY3ODkpKTsKKyAgICAgICAgbmYuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjM0NTY3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Nzg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkpOworICAgICAgICBuZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyg2KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDYsIG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMyw0NTYiLCBuZi5mb3JtYXQoMTIzNDU2KSk7IC8vIGhpZ2ggZGlnaXRzIHRydW5jYXRlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBuZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoNik7CisgICAgICAgIGFzc2VydEVxdWFscyg2LCBuZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjAsMDEyIiwgbmYuZm9ybWF0KDEyKSk7IC8vIHBhZCBvdXQgd2l0aCB6ZXJvLCBncm91cGluZyBzdGlsbCB1c2VkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIG5mLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDYpOworICAgICAgICBhc3NlcnRFcXVhbHMoNiwgbmYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMS4yMzQ2IiwgbmYuZm9ybWF0KDEuMjM0NTY3OCkpOyAvLyBsb3cgZGlnaXRzIHJvdW5kZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoNCwgbmYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICBuZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoNik7CisgICAgICAgIGFzc2VydEVxdWFscyg2LCBuZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLjIwMDAiLCBuZi5mb3JtYXQoMS4yKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBOdW1iZXJGb3JtYXQgZXEgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5lcSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIElDVVRlc3RDYXNlLnRlc3RFSENTKG5mLCBlcSwgbmVxKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoQ29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvU2ltcGxlRGF0ZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9TaW1wbGVEYXRlRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDkwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvU2ltcGxlRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBtZHkgPSAiTU1NIGRkIHl5eXkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBtZDIgPSAiTU1NIGRkIHl5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaG16ID0gIidUaGUgdGltZSBpcycgSEg6bW06c3Mgenp6IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaG16bWR5ID0gaG16ICsgIiAnb24nICIgKyBtZHk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhtem1keVN0ciA9ICJUaGUgdGltZSBpcyAxNTowNToyMCBDU1Qgb24gSmFuIDEwIDIwMDYiOworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUaW1lWm9uZSB0emMgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQ1NUIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgdHpwID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6Yyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGF0ZSBkYXRlOworICAgIHN0YXRpYyB7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDYsIDAsIDEwLCAxNSwgNSwgMjApOyAvLyBhcnJnaCwgZG9lc24ndCBjbGVhciBtaWxsaXMKKyAgICAgICAgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5mb3JtYXQoQ2FsZW5kYXIsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdENhbGVuZGFyU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGhtem1keSk7CisgICAgICAgIHNkZi5mb3JtYXQoY2FsLCBidWYsIGZwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGhtem1keVN0ciwgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQucGFyc2UoU3RyaW5nLCBDYWxlbmRhciwgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nQ2FsZW5kYXJQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0enApOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGhtem1keSk7CisgICAgICAgIHNkZi5wYXJzZShobXptZHlTdHIsIGNhbCwgcHApOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZSwgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIC8vIG5vdGU6IGphdmEgZG9lc24ndCByZXR1cm4gdGhlIHBhcnNlZCB0aW1lIHpvbmUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5TaW1wbGVEYXRlRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZURhdGVGb3JtYXQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQganNkZiA9IG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0U3RyaW5nKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSk7CisgICAgICAgIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGpzZGYgPSBuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQobWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpzZGYuZm9ybWF0KGRhdGUpLCBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LlNpbXBsZURhdGVGb3JtYXQoU3RyaW5nLCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0U3RyaW5nTG9jYWxlKCkgeworICAgICAgICBMb2NhbGUgbCA9IExvY2FsZS5KQVBBTjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHksIGwpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSwgbCk7CisgICAgICAgIGFzc2VydEVxdWFscyhqc2RmLmZvcm1hdChkYXRlKSwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5TaW1wbGVEYXRlRm9ybWF0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZURhdGVGb3JtYXRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIGwgPSBVTG9jYWxlLkpBUEFOOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSwgbCk7CisgICAgICAgIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGpzZGYgPSBuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQobWR5LCBsLnRvTG9jYWxlKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcsIERhdGVGb3JtYXRTeW1ib2xzKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2ltcGxlRGF0ZUZvcm1hdFN0cmluZ0RhdGVGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBMb2NhbGUgbCA9IExvY2FsZS5VUzsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGwpOworICAgICAgICBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMgamRmcyA9IG5ldyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMobCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5LCBkZnMpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSwgamRmcyk7CisgICAgICAgIGFzc2VydEVxdWFscyhqc2RmLmZvcm1hdChkYXRlKSwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5zZXQyRGlnaXRZZWFyU3RhcnQoRGF0ZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZDIpOworICAgICAgICBzZGYuc2V0MkRpZ2l0WWVhclN0YXJ0KGRhdGUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBkID0gc2RmLnBhcnNlKCJKYW4gMTUgMDQiKTsKKyAgICAgICAgICAgIGFzc2VydE5vdEVxdWFsKC0xLCBkLnRvU3RyaW5nKCkuaW5kZXhPZigiMjEwNCIpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGZhaWwocGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZ2V0MkRpZ2l0WWVhclN0YXJ0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZDIpOworICAgICAgICBzZGYuc2V0MkRpZ2l0WWVhclN0YXJ0KGRhdGUpOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZSwgc2RmLmdldDJEaWdpdFllYXJTdGFydCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnRvUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1BhdHRlcm4oKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG1keSwgc2RmLnRvUGF0dGVybigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnRvTG9jYWxpemVkUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIExvY2FsZSBsID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHkpOworICAgICAgICBhc3NlcnRFcXVhbHMobWR5LCBzZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmFwcGx5UGF0dGVybihTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBseVBhdHRlcm4oKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgc2RmLnNldFRpbWVab25lKHR6Yyk7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oaG16bWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGhtem1keVN0ciwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5hcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0emMpOworICAgICAgICBzZGYuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKGhtem1keSk7CisgICAgICAgIGFzc2VydEVxdWFscyhobXptZHlTdHIsIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSwgZGZzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRmcywgc2RmLmdldERhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoRGF0ZUZvcm1hdFN5bWJvbHMpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXREYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5KQVBBTik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoaG16bWR5KTsKKyAgICAgICAgc2RmLnNldERhdGVGb3JtYXRTeW1ib2xzKGRmcyk7CisgICAgICAgIC8vIGFzc3VtZXMgSmFwYW5lc2Ugc3ltYm9scyBkbyBub3QgaGF2ZSBncmVnb3JpYW4gbW9udGggbmFtZXMKKyAgICAgICAgYXNzZXJ0RXF1YWxzKC0xLCBzZGYuZm9ybWF0KGRhdGUpLmluZGV4T2YoIkphbiIpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVGltZVpvbmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVGltZVpvbmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVkYWQ0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9UaW1lWm9uZVRlc3QuamF2YQpAQCAtMCwwICsxLDIzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGltZVpvbmVUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCVRpbWVab25lIHR6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJVGltZVpvbmUgdHoyID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlUaW1lWm9uZSB0em4gPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQ1NUIik7CisJCXRlc3RFSENTKHR6MSwgdHoyLCB0em4pOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLlRpbWVab25lKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VGltZVpvbmUoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRPZmZzZXQoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE9mZnNldCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoMSwgMjAwNCwgMCwgMDEsIDEsIDApOworCQlhc3NlcnRFcXVhbHMoLTI4ODAwMDAwLCBvZmZzZXQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLnNldFJhd09mZnNldChpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRSYXdPZmZzZXQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlpbnQgdmFsdWUgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKwkJaW50IHZhbHVlMSA9IHZhbHVlICsgMTAwMDAwOworCQl0ei5zZXRSYXdPZmZzZXQodmFsdWUxKTsKKwkJaW50IHJlc3VsdCA9IHR6LmdldFJhd09mZnNldCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRSYXdPZmZzZXQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UmF3T2Zmc2V0KCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJaW50IG9mZnNldCA9IHR6LmdldFJhd09mZnNldCgpOworCQlhc3NlcnRFcXVhbHMoLTI4ODAwMDAwLCBvZmZzZXQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldElEKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldElEKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQU1QiLCB0ei5nZXRJRCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXRJRChTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJRCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCVN0cmluZyB2YWx1ZTEgPSB0ei5nZXRJRCgpOworCQlTdHJpbmcgdmFsdWUyID0gdmFsdWUxICsgIiEiOworCQl0ei5zZXRJRCh2YWx1ZTIpOworCQlTdHJpbmcgcmVzdWx0ID0gdHouZ2V0SUQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUxLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUyLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZShMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUoTG9jYWxlLlVTKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lVUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKGJvb2xlYW4sIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lQm9vbGVhbkludCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUERUIiwgdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuU0hPUlQpKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiwgaW50LCBMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUJvb2xlYW5JbnRMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoIlBEVCIsIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JULCBMb2NhbGUuVVMpKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HLCBMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZShib29sZWFuLCBpbnQsIFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUJvb2xlYW5JbnRVTG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQRFQiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCwgVUxvY2FsZS5VUykpOworCQlhc3NlcnRFcXVhbHMoIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLkxPTkcsIFVMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREU1RTYXZpbmdzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERTVFNhdmluZ3MoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoMzYwMDAwMCwgdHouZ2V0RFNUU2F2aW5ncygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS51c2VEYXlsaWdodFRpbWUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VXNlRGF5bGlnaHRUaW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0VHJ1ZSh0ei51c2VEYXlsaWdodFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuaW5EYXlsaWdodFRpbWUoRGF0ZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEluRGF5bGlnaHRUaW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgyMDA1LCAwLCAxNyk7CisJCURhdGUgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisJCWFzc2VydEZhbHNlKHR6LmluRGF5bGlnaHRUaW1lKGRhdGUpKTsKKwkJY2FsLnNldCgyMDA1LCA2LCAxNyk7CisJCWRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQlhc3NlcnRUcnVlKHR6LmluRGF5bGlnaHRUaW1lKGRhdGUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZShTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVJRHNJbnQoKSB7CisJCVN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygtMjg4MDAwMDApOworCQlhc3NlcnROb3ROdWxsKGlkcyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUlEcygpIHsKKwkJU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisJCWFzc2VydE5vdE51bGwoaWRzKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERlZmF1bHQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCQlhc3NlcnROb3ROdWxsKHR6KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGVmYXVsdCgpIHsKKwkJVGltZVpvbmUgdHoxID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCQlTdHJpbmcgbmV3Q29kZSA9ICJQRFQiLmVxdWFscyh0ejEuZ2V0SUQoKSkgPyAiQ1NUIiA6ICJQRFQiOworCQlUaW1lWm9uZSB0ejIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShuZXdDb2RlKTsKKwkJVGltZVpvbmUuc2V0RGVmYXVsdCh0ejIpOworCQlUaW1lWm9uZSByZXN1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisJCWFzc2VydE5vdEVxdWFsKHR6MSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHR6MiwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5oYXNTYW1lUnVsZXMoVGltZVpvbmUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNTYW1lUnVsZXMoKSB7CisJCVRpbWVab25lIHR6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJVGltZVpvbmUgdHoyID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKwkJYXNzZXJ0VHJ1ZSh0ejEuaGFzU2FtZVJ1bGVzKHR6MikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmNsb25lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdEhhc2hDb2RlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9VTG9jYWxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VMb2NhbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODczMGQ2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9VTG9jYWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBVTG9jYWxlVGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIFN0cmluZyBzYW1wbGVOYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGxvbmdVTG9jYWxlTmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyBsb25nVUxvY2FsZUJhc2VuYW1lOworICAgIHByaXZhdGUgU3RyaW5nIG5vbk5vcm1hbGl6ZWROYW1lOworICAgIHByaXZhdGUgVUxvY2FsZSBsb25nVUxvY2FsZTsKKyAgICBwcml2YXRlIExvY2FsZSBzYW1wbGVMb2NhbGU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBPdmVycmlkZQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIHNhbXBsZU5hbWUgPSAibGxfQ0NfVlZWViI7CisgICAgICAgIGxvbmdVTG9jYWxlTmFtZSA9ICJsbF9Tc3NzX0NDX1ZWVlZAY29sbGF0aW9uPXBob25lYm9vaztrZXk9dmFsdWUiOworICAgICAgICBsb25nVUxvY2FsZUJhc2VuYW1lID0gbG9uZ1VMb2NhbGVOYW1lLnN1YnN0cmluZygwLCBsb25nVUxvY2FsZU5hbWUuaW5kZXhPZignQCcpKTsKKyAgICAgICAgbm9uTm9ybWFsaXplZE5hbWUgPSAiTExfc3Nzc19jY19WVlZWQCBLZXkgPSB2YWx1ZSA7IENvbGxhdGlvbiA9IHBob25lYm9vayA7ICI7CisgICAgICAgIGxvbmdVTG9jYWxlID0gbmV3IFVMb2NhbGUobG9uZ1VMb2NhbGVOYW1lKTsKKyAgICAgICAgc2FtcGxlTG9jYWxlID0gbmV3IFVMb2NhbGUoc2FtcGxlTmFtZSkudG9Mb2NhbGUoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5oYXNoQ29kZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgVUxvY2FsZSBvYmogPSBVTG9jYWxlLkdFUk1BTlk7CisgICAgICAgIFVMb2NhbGUgZXEgPSBuZXcgVUxvY2FsZSgiZGVfREUiKTsKKyAgICAgICAgVUxvY2FsZSBuZXEgPSBuZXcgVUxvY2FsZSgiZGVfREVfRlJFTkNIIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIElDVVRlc3RDYXNlLnRlc3RFSENTKG9iaiwgZXEsIG5lcSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmZvckxvY2FsZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhVTG9jYWxlLkdFUk1BTlksIFVMb2NhbGUuZm9yTG9jYWxlKExvY2FsZS5HRVJNQU5ZKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VUxvY2FsZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOLCBuZXcgVUxvY2FsZSgiZGUiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RVTG9jYWxlU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoVUxvY2FsZS5HRVJNQU5ZLCBuZXcgVUxvY2FsZSgiZGUiLCAiREUiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFVMb2NhbGVTdHJpbmdTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhzYW1wbGVMb2NhbGUsIG5ldyBVTG9jYWxlKCJsbCIsICJjYyIsICJWVlZWIikudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmNyZWF0ZUNhbm9uaWNhbChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVDYW5vbmljYWwoKSB7CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5jcmVhdGVDYW5vbmljYWwoImRlX19QSE9ORUJPT0siKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJkZUBjb2xsYXRpb249cGhvbmVib29rIiksIHJlc3VsdCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnRvTG9jYWxlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoc2FtcGxlTG9jYWxlLCBuZXcgVUxvY2FsZSgibGwiLCAiY2MiLCAiVlZWViIpLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREZWZhdWx0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERlZmF1bHQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhMb2NhbGUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0RGVmYXVsdCgpIHsKKyAgICAgICAgTG9jYWxlIG9sZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUgb2xkVUxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KGxvbmdVTG9jYWxlKTsKKyAgICAgICAgICAgIElDVVRlc3RDYXNlLmFzc2VydE5vdEVxdWFsKExvY2FsZS5nZXREZWZhdWx0KCksIG9sZExvY2FsZSk7CisgICAgICAgICAgICBJQ1VUZXN0Q2FzZS5hc3NlcnROb3RFcXVhbChVTG9jYWxlLmdldERlZmF1bHQoKSwgb2xkVUxvY2FsZSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyhzYW1wbGVMb2NhbGUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG9sZFVMb2NhbGUpOworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkTG9jYWxlKTsgLy8gaW4gY2FzZSBvZiBzb21lIGVycm9yCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaGNvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZXF1YWxzKE9iamVjdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoY29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIFVMb2NhbGVbXSB1bG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh1bG9jYWxlc1tpXS50b0xvY2FsZSgpLCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBlbHNlIG5vdGhpbmcgdG8gdGVzdCBleGNlcHQgdGhhdCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQuCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldElTT0NvdW50cmllcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJU09Db3VudHJpZXMoKSB7CisgICAgICAgIFN0cmluZ1tdIHVjb3VudHJpZXMgPSBVTG9jYWxlLmdldElTT0NvdW50cmllcygpOworICAgICAgICBhc3NlcnROb3ROdWxsKHVjb3VudHJpZXMpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIC8vIGtlZXAgb3VyIG93biBkYXRhIGZvciBub3cKKyAgICAgICAgICAgIC8vIG91ciBkYXRhIGRvZXNuJ3QgbWF0Y2ggamF2YSdzIHNvIHRoaXMgdGVzdCB3b3VsZCBmYWlsCisgICAgICAgICAgICAvLyBUT0RPOiBlbmFibGUgaWYgd2UgZGVjaWRlIHRvIHVzZSBqYXZhJ3MgZGF0YQorICAgICAgICAgICAgLy8gU3RyaW5nW10gY291bnRyaWVzID0gTG9jYWxlLmdldElTT0NvdW50cmllcygpOworICAgICAgICAgICAgLy8gVGVzdEJvaWxlcnBsYXRlLmFzc2VydEFycmF5c0VxdWFsKHVjb3VudHJpZXMsIGNvdW50cmllcyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gZWxzZSBub3RoaW5nIHRvIHRlc3QgZXhjZXB0IHRoYXQgdGhlIGZ1bmN0aW9uIHJldHVybmVkLgorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPTGFuZ3VhZ2VzKCkgeworICAgICAgICBTdHJpbmdbXSB1bGFuZ3VhZ2VzID0gVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCh1bGFuZ3VhZ2VzKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICAvLyBrZWVwIG91ciBvd24gZGF0YSBmb3Igbm93CisgICAgICAgICAgICAvLyBvdXIgZGF0YSBkb2Vzbid0IG1hdGNoIGphdmEncyBzbyB0aGlzIHRlc3Qgd291bGQgZmFpbAorICAgICAgICAgICAgLy8gVE9ETzogZW5hYmxlIGlmIHdlIGRlY2lkZSB0byB1c2UgamF2YSdzIGRhdGEKKyAgICAgICAgICAgIC8vIFN0cmluZ1tdIGxhbmd1YWdlcyA9IExvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgICAgIC8vIFRlc3RCb2lsZXJwbGF0ZS5hc3NlcnRBcnJheXNFcXVhbCh1bGFuZ3VhZ2VzLCBsYW5ndWFnZXMpOworICAgICAgICB9CisgICAgICAgIC8vIGVsc2Ugbm90aGluZyB0byB0ZXN0IGV4Y2VwdCB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZC4KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TGFuZ3VhZ2UoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygibGwiLCBsb25nVUxvY2FsZS5nZXRMYW5ndWFnZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJsbCIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0TGFuZ3VhZ2UoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldExhbmd1YWdlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExhbmd1YWdlU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoImxsIiwgVUxvY2FsZS5nZXRMYW5ndWFnZShsb25nVUxvY2FsZS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0U2NyaXB0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjcmlwdCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJTc3NzIiwgbG9uZ1VMb2NhbGUuZ2V0U2NyaXB0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRTY3JpcHQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2NyaXB0U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlNzc3MiLCBVTG9jYWxlLmdldFNjcmlwdChsb25nVUxvY2FsZS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0Q291bnRyeSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDb3VudHJ5KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIkNDIiwgbG9uZ1VMb2NhbGUuZ2V0Q291bnRyeSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDQyIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0Q291bnRyeSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0Q291bnRyeShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDb3VudHJ5U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIkNDIiwgVUxvY2FsZS5nZXRDb3VudHJ5KGxvbmdVTG9jYWxlLmdldE5hbWUoKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRWYXJpYW50KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFZhcmlhbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiVlZWViIsIGxvbmdVTG9jYWxlLmdldFZhcmlhbnQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiVlZWViIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0VmFyaWFudCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0VmFyaWFudChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRWYXJpYW50U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlZWVlYiLCBVTG9jYWxlLmdldFZhcmlhbnQobG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEZhbGxiYWNrKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEZhbGxiYWNrU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoVUxvY2FsZS5HRVJNQU4sIFVMb2NhbGUuZ2V0RmFsbGJhY2soVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRGYWxsYmFjaygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGYWxsYmFjaygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOLCBVTG9jYWxlLkdFUk1BTlkuZ2V0RmFsbGJhY2soKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEJhc2VOYW1lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEJhc2VOYW1lKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVCYXNlbmFtZSwgbG9uZ1VMb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEJhc2VOYW1lKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEJhc2VOYW1lU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVCYXNlbmFtZSwgbG9uZ1VMb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldE5hbWUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmFtZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlTmFtZSwgbG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0TmFtZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXROYW1lU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVOYW1lLCBVTG9jYWxlLmdldE5hbWUobm9uTm9ybWFsaXplZE5hbWUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhsb25nVUxvY2FsZU5hbWUsIGxvbmdVTG9jYWxlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRLZXl3b3JkcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkcygpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxvbmdVTG9jYWxlLmdldEtleXdvcmRzKCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpdGVyLm5leHQoKSwgImNvbGxhdGlvbiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoaXRlci5uZXh0KCksICJrZXkiKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoaXRlci5oYXNOZXh0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRLZXl3b3JkcyhTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3Jkc1N0cmluZygpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IFVMb2NhbGUuZ2V0S2V5d29yZHMobm9uTm9ybWFsaXplZE5hbWUpOworICAgICAgICBhc3NlcnRFcXVhbHMoaXRlci5uZXh0KCksICJjb2xsYXRpb24iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGl0ZXIubmV4dCgpLCAia2V5Iik7CisgICAgICAgIGFzc2VydEZhbHNlKGl0ZXIuaGFzTmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEtleXdvcmRWYWx1ZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ2YWx1ZSIsIGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgia2V5IikpOworICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgiY29sbGF0aW9uIikpOworICAgICAgICBhc3NlcnROdWxsKGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgienp5engiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEtleXdvcmRWYWx1ZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ2YWx1ZSIsIFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKGxvbmdVTG9jYWxlTmFtZSwgImtleSIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBVTG9jYWxlLmdldEtleXdvcmRWYWx1ZShsb25nVUxvY2FsZU5hbWUsICJjb2xsYXRpb24iKSk7CisgICAgICAgIGFzc2VydE51bGwoVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUobG9uZ1VMb2NhbGVOYW1lLCAienp5engiKSk7CisKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuY2Fub25pY2FsaXplKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENhbm9uaWNhbGl6ZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJkZUBjb2xsYXRpb249cGhvbmVib29rIiwgVUxvY2FsZS5jYW5vbmljYWxpemUoImRlX19QSE9ORUJPT0siKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnNldEtleXdvcmRWYWx1ZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgVUxvY2FsZSBtdW5nZWQgPSBsb25nVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUoImtleSIsICJDIyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkMjIiwgbXVuZ2VkLmdldEtleXdvcmRWYWx1ZSgia2V5IikpOworICAgICAgICBtdW5nZWQgPSBtdW5nZWQuc2V0S2V5d29yZFZhbHVlKCJ6enl6eCIsICJncnVlIik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ3J1ZSIsIG11bmdlZC5nZXRLZXl3b3JkVmFsdWUoInp6eXp4IikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIG11bmdlZCA9IFVMb2NhbGUuc2V0S2V5d29yZFZhbHVlKGxvbmdVTG9jYWxlTmFtZSwgImtleSIsICJDIyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkMjIiwgVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUobXVuZ2VkLCAia2V5IikpOworICAgICAgICBtdW5nZWQgPSBVTG9jYWxlLnNldEtleXdvcmRWYWx1ZShtdW5nZWQsICJ6enl6eCIsICJncnVlIik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ3J1ZSIsIFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKG11bmdlZCwgInp6eXp4IikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0xhbmd1YWdlKCkgeworICAgICAgICBTdHJpbmcgaWwgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0SVNPM0xhbmd1YWdlKCk7CisgICAgICAgIFN0cmluZyBqbCA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWwsIGpsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTTzNMYW5ndWFnZVN0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlsID0gVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSk7CisgICAgICAgIFN0cmluZyBqbCA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWwsIGpsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0NvdW50cnkoKSB7CisgICAgICAgIFN0cmluZyBpYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXRJU08zQ291bnRyeSgpOworICAgICAgICBTdHJpbmcgamMgPSBMb2NhbGUuR0VSTUFOWS5nZXRJU08zQ291bnRyeSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWMsIGpjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0NvdW50cnlTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpYyA9IFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSk7CisgICAgICAgIFN0cmluZyBqYyA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNDb3VudHJ5KCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpYywgamMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUxhbmd1YWdlKCkgeworICAgICAgICBTdHJpbmcgaWRsID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUxhbmd1YWdlVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkbCA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkbCA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkbCA9IFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUuR0VSTUFOWS5nZXROYW1lKCksICJkZV9ERSIpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbCwgamRsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGwgPSBVTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlLkdFUk1BTlkuZ2V0TmFtZSgpLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbCwgamRsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0KCkgeworICAgICAgICBTdHJpbmcgaXMgPSBVTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UuZ2V0RGlzcGxheVNjcmlwdCgpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiVHJhZGl0aW9uYWwgQ2hpbmVzZSIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlzID0gVUxvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLmdldERpc3BsYXlTY3JpcHQoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBsb29rIHVwIGV4cGVjdGVkIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlTY3JpcHRTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpcyA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdCgiemhfSGFudCIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGxvb2sgdXAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlTY3JpcHRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaXMgPSBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoInpoX0hhbnQiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGxvb2sgdXAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5Q291bnRyeSgpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5Q291bnRyeSgpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlDb3VudHJ5VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5Q291bnRyeShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRjLCBqZGMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlDb3VudHJ5U3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRjID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgiZGVfREUiLCAiZGVfREUiKTsKKyAgICAgICAgU3RyaW5nIGpkYyA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlDb3VudHJ5KExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUNvdW50cnlTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRjID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgiZGVfREUiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRjLCBqZGMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5VmFyaWFudCgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IG5ldyBVTG9jYWxlKCJkZV9ERV9QSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudCgpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpkdiwgaWR2KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IG5ldyBVTG9jYWxlKCJkZV9ERV9QSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoamR2LCBpZHYpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50U3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWR2ID0gVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudCgiZGVfREVfUEhPTkVCT09LIiwgImRlX0RFIik7CisgICAgICAgIFN0cmluZyBqZHYgPSBuZXcgTG9jYWxlKCJkZSIsICJERSIsICJQSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhqZHYsIGlkdik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IFVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoImRlX0RFX1BIT05FQk9PSyIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZHYgPSBuZXcgTG9jYWxlKCJkZSIsICJERSIsICJQSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhqZHYsIGlkdik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlLZXl3b3JkU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRrID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZCgiY29sbGF0aW9uIik7CisgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoImNvbGxhdGlvbiIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjb2xsYXRpb24iLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlLZXl3b3JkU3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoImNvbGxhdGlvbiIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjb2xsYXRpb24iLCBpZGspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVE9ETzogZmluZCByZWFsIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImNvbGxhdGlvbiIsIGlkayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nKCkgeworICAgICAgICBVTG9jYWxlIHVsID0gbmV3IFVMb2NhbGUoImRlX0RFQGNvbGxhdGlvbj1waG9uZWJvb2siKTsKKyAgICAgICAgU3RyaW5nIGlkayA9IHVsLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRWYWx1ZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFVMb2NhbGUgdWwgPSBuZXcgVUxvY2FsZSgiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIpOworICAgICAgICBTdHJpbmcgaWRrID0gdWwuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSgiY29sbGF0aW9uIiwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRrID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKCJkZV9ERUBjb2xsYXRpb249cGhvbmVib29rIiwgImNvbGxhdGlvbiIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nU3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSgiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIsICJjb2xsYXRpb24iLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlOYW1lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZG4sIGpkbik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlOYW1lKFN0cmluZywgU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpZG4gPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKCJkZV9ERSIsICJkZV9ERSIpOworICAgICAgICBTdHJpbmcgamRuID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZShTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZG4gPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKCJkZV9ERSIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZG4sIGpkbik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmFjY2VwdExhbmd1YWdlKFN0cmluZywgVUxvY2FsZVtdLCBib29sZWFuW10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBY2NlcHRMYW5ndWFnZVN0cmluZ1VMb2NhbGVBcnJheUJvb2xlYW5BcnJheSgpIHsKKyAgICAgICAgYm9vbGVhbltdIGZhbGxiYWNrID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0geyAKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9DQSIpLCAKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VUyIpLCAKKyAgICAgICAgfTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKCJlbi1VUywgZW4tR0IsIGVuLUNBLCBlcy1VUyIsIGxvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlbl9DQSIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRGYWxzZShmYWxsYmFja1swXSk7CisgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoImVuLVVTLCBlbi1HQiwgZXMtVVMtTkVXTUVYSUNPIiwgbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVzX1VTIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShVTG9jYWxlW10sIFVMb2NhbGVbXSwgYm9vbGVhbltdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QWNjZXB0TGFuZ3VhZ2VVTG9jYWxlQXJyYXlVTG9jYWxlQXJyYXlCb29sZWFuQXJyYXkoKSB7CisgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjayA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IHsgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVMiKSwgCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGVbXSBhY2NlcHRfbG9jYWxlcyA9IHsKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9VUyIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0dCIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VUyIpLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMyID0geworICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX1VTIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fR0IiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VU19ORVdNRVhJQ08iKSwKKyAgICAgICAgfTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKGFjY2VwdF9sb2NhbGVzLCBsb2NhbGVzLCBmYWxsYmFjayk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgcmVzdWx0KTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoZmFsbGJhY2tbMF0pOworICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKGFjY2VwdF9sb2NhbGVzMiwgbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVzX1VTIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShTdHJpbmcsIGJvb2xlYW5bXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFjY2VwdExhbmd1YWdlU3RyaW5nQm9vbGVhbkFycmF5KCkgeworICAgICAgICBib29sZWFuW10gZmFsbGJhY2sgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKCJlbi1DQSwgZW4tR0IsIGVzLVVTIiwgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVuX0NBIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEZhbHNlKGZhbGxiYWNrWzBdKTsKKyAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZSgiZXMtVVMtTkVXTUVYSUNPIiwgZmFsbGJhY2spOworICAgICAgICBhc3NlcnROb3ROdWxsKHJlc3VsdCk7IC8vIGFjdHVhbCByZXN1bHQgZGVwZW5kcyBvbiBqZGsKKyAgICAgICAgYXNzZXJ0VHJ1ZShmYWxsYmFja1swXSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSwgYm9vbGVhbltdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QWNjZXB0TGFuZ3VhZ2VVTG9jYWxlQXJyYXlCb29sZWFuQXJyYXkoKSB7CisgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjayA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMgPSB7CisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9HQiIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVzX1VTIiksCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGVbXSBhY2NlcHRfbG9jYWxlczIgPSB7CisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVNfTkVXTUVYSUNPIiksCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVuX0NBIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEZhbHNlKGZhbGxiYWNrWzBdKTsKKyAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlczIsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChyZXN1bHQpOyAvLyBhY3R1YWwgcmVzdWx0IGRlcGVuZHMgb24gamRrCisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5jbGFzc3BhdGggYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8uY2xhc3NwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MWM4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5wcm9qZWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRkNzNiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LmJhc2U8L25hbWU+CisJPGNvbW1lbnQ+PC9jb21tZW50PgorCTxwcm9qZWN0cz4KKwk8L3Byb2plY3RzPgorCTxidWlsZFNwZWM+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjllZTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTAsMCArMSwxNSBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKK0J1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5pYm0uaWN1LmJhc2UKK0J1bmRsZS1WZXJzaW9uOiAzLjYKK0J1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLUNvcHlyaWdodDogTGljZW5zZWQgTWF0ZXJpYWxzIC0gUHJvcGVydHkgb2YgSUJNIAorIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDYuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIAorIElCTSBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIElCTSBDb3JwLgorRXhwb3J0LVBhY2thZ2U6IGNvbS5pYm0uaWN1LnRleHQsCisgY29tLmlibS5pY3UudXRpbAorRWNsaXBzZS1MYXp5U3RhcnQ6IHRydWUKK0J1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBDREMtMS4wL0ZvdW5kYXRpb24tMS4wLAorIEoyU0UtMS4zCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTI0MGUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDkgQEAKK3NvdXJjZS4uID0gc3JjLworb3V0cHV0Li4gPSBiaW4vCitzcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKKyAgICAgICAgICAgICAgIGFib3V0X2ZpbGVzLworYmluLmluY2x1ZGVzID0gYWJvdXRfZmlsZXMvLFwKKyAgICAgICAgICAgICAgIC4sXAorICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCisgICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICBNRVRBLUlORi8KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3BsdWdpbi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0YTdmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworcGx1Z2luTmFtZSA9IEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSAoSUNVNEopIFJlcGxhY2VtZW50IHBsdWctaW4KK3Byb3ZpZGVyTmFtZSA9IElCTSBDb3Jwb3JhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDJlMzFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNjYxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogQSBjbGFzcyB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBpbiB0ZXh0LiAgVGhpcyBjbGFzcyBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yCisgKiBvYmplY3RzIHRoYXQgYnJlYWsgdXAgYSBwaWVjZSBvZiBuYXR1cmFsLWxhbmd1YWdlIHRleHQgYWNjb3JkaW5nIHRvIGEgc2V0CisgKiBvZiBjcml0ZXJpYS4gIEluc3RhbmNlcyBvciBzdWJjbGFzc2VzIG9mIEJyZWFrSXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkLCBmb3IKKyAqIGV4YW1wbGUsIHRvIGJyZWFrIGEgcGllY2Ugb2YgdGV4dCBpbnRvIHdvcmRzLCBzZW50ZW5jZXMsIG9yIGxvZ2ljYWwgY2hhcmFjdGVycworICogYWNjb3JkaW5nIHRvIHRoZSBjb252ZW50aW9ucyBvZiBzb21lIGxhbmd1YWdlIG9yIGdyb3VwIG9mIGxhbmd1YWdlcy4KKyAqCisgKiBXZSBwcm92aWRlIGZpdmUgYnVpbHQtaW4gdHlwZXMgb2YgQnJlYWtJdGVyYXRvcjoKKyAqIDx1bD48bGk+Z2V0VGl0bGVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHRpdGxlIGJyZWFrcy4KKyAqIDxsaT5nZXRTZW50ZW5jZUluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMKKyAqIGJldHdlZW4gc2VudGVuY2VzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHRyaXBsZS1jbGljayBzZWxlY3Rpb24sIGZvciBleGFtcGxlLgorICogPGxpPmdldFdvcmRJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzIGJldHdlZW4KKyAqIHdvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGRvdWJsZS1jbGljayBzZWxlY3Rpb24gb3IgImZpbmQgd2hvbGUgd29yZHMiIHNlYXJjaGVzLgorICogVGhpcyB0eXBlIG9mIEJyZWFrSXRlcmF0b3IgbWFrZXMgc3VyZSB0aGVyZSBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uIGF0IHRoZQorICogYmVnaW5uaW5nIGFuZCBlbmQgb2YgZWFjaCBsZWdhbCB3b3JkLiAgKE51bWJlcnMgY291bnQgYXMgd29yZHMsIHRvby4pICBXaGl0ZXNwYWNlCisgKiBhbmQgcHVuY3R1YXRpb24gYXJlIGtlcHQgc2VwYXJhdGUgZnJvbSByZWFsIHdvcmRzLgorICogPGxpPmdldExpbmVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBwb3NpdGlvbnMgd2hlcmUgaXQgaXMKKyAqIGxlZ2FsIGZvciBhIHRleHQgZWRpdG9yIHRvIHdyYXAgbGluZXMuICBUaGlzIGlzIHNpbWlsYXIgdG8gd29yZCBicmVha2luZywgYnV0CisgKiBub3QgdGhlIHNhbWU6IHB1bmN0dWF0aW9uIGFuZCB3aGl0ZXNwYWNlIGFyZSBnZW5lcmFsbHkga2VwdCB3aXRoIHdvcmRzICh5b3UgZG9uJ3QKKyAqIHdhbnQgYSBsaW5lIHRvIHN0YXJ0IHdpdGggd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGUpLCBhbmQgc29tZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAqIGNhbiBmb3JjZSBhIHBvc2l0aW9uIHRvIGJlIGNvbnNpZGVyZWQgYSBsaW5lLWJyZWFrIHBvc2l0aW9uIG9yIHByZXZlbnQgYSBwb3NpdGlvbgorICogZnJvbSBiZWluZyBhIGxpbmUtYnJlYWsgcG9zaXRpb24uCisgKiA8bGk+Z2V0Q2hhcmFjdGVySW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiBsb2dpY2FsIGNoYXJhY3RlcnMuICBCZWNhdXNlIG9mIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFVuaWNvZGUgZW5jb2RpbmcsIGEgbG9naWNhbAorICogY2hhcmFjdGVyIG1heSBiZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBtb3JlIHRoYW4gb25lIFVuaWNvZGUgY29kZSBwb2ludC4gIChBIHdpdGggYW4KKyAqIHVtbGF1dCBtYXkgYmUgc3RvcmVkIGFzIGFuIGEgZm9sbG93ZWQgYnkgYSBzZXBhcmF0ZSBjb21iaW5pbmcgdW1sYXV0IGNoYXJhY3RlciwKKyAqIGZvciBleGFtcGxlLCBidXQgdGhlIHVzZXIgc3RpbGwgdGhpbmtzIG9mIGl0IGFzIG9uZSBjaGFyYWN0ZXIuKSAgVGhpcyBpdGVyYXRvciBhbGxvd3MKKyAqIHZhcmlvdXMgcHJvY2Vzc2VzIChlc3BlY2lhbGx5IHRleHQgZWRpdG9ycykgdG8gdHJlYXQgYXMgY2hhcmFjdGVycyB0aGUgdW5pdHMgb2YgdGV4dAorICogdGhhdCBhIHVzZXIgd291bGQgdGhpbmsgb2YgYXMgY2hhcmFjdGVycywgcmF0aGVyIHRoYW4gdGhlIHVuaXRzIG9mIHRleHQgdGhhdCB0aGUKKyAqIGNvbXB1dGVyIHNlZXMgYXMgImNoYXJhY3RlcnMiLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvcidzIGludGVyZmFjZSBmb2xsb3dzIGFuICJpdGVyYXRvciIgbW9kZWwgKGhlbmNlIHRoZSBuYW1lKSwgbWVhbmluZyBpdAorICogaGFzIGEgY29uY2VwdCBvZiBhICJjdXJyZW50IHBvc2l0aW9uIiBhbmQgbWV0aG9kcyBsaWtlIGZpcnN0KCksIGxhc3QoKSwgbmV4dCgpLAorICogYW5kIHByZXZpb3VzKCkgdGhhdCB1cGRhdGUgdGhlIGN1cnJlbnQgcG9zaXRpb24uICBBbGwgQnJlYWtJdGVyYXRvcnMgdXBob2xkIHRoZQorICogZm9sbG93aW5nIGludmFyaWFudHM6CisgKiA8dWw+PGxpPlRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgdGV4dCBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgYm91bmRhcnkgcG9zaXRpb25zLgorICogPGxpPlRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBhbHdheXMgYSBib3VuZGFyeSBwb3NpdGlvbiAocmFuZG9tLQorICogYWNjZXNzIG1ldGhvZHMgbW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5lYXJlc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIG9yCisgKiBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBub3QgX3RvXyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uKS4KKyAqIDxsaT5ET05FIGlzIHVzZWQgYXMgYSBmbGFnIHRvIGluZGljYXRlIHdoZW4gaXRlcmF0aW9uIGhhcyBzdG9wcGVkLiAgRE9ORSBpcyBvbmx5CisgKiByZXR1cm5lZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBlbmQgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzIG5leHQoKSwKKyAqIG9yIHdoZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBhbmQgdGhlIHVzZXIgY2FsbHMKKyAqIHByZXZpb3VzKCkuCisgKiA8bGk+QnJlYWsgcG9zaXRpb25zIGFyZSBudW1iZXJlZCBieSB0aGUgcG9zaXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93CisgKiB0aGVtLiAgVGh1cywgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlcgorICogaXMgMCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgMSwgYW5kIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGlzIDEgcGx1cyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiA8bGk+VGhlIGNsaWVudCBjYW4gY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiBhbiBpdGVyYXRvciwgb3IgdGhlIHRleHQgaXQgYW5hbHl6ZXMsCisgKiBhdCB3aWxsLCBidXQgY2Fubm90IGNoYW5nZSB0aGUgYmVoYXZpb3IuICBJZiB0aGUgdXNlciB3YW50cyBkaWZmZXJlbnQgYmVoYXZpb3IsIGhlCisgKiBtdXN0IGluc3RhbnRpYXRlIGEgbmV3IGl0ZXJhdG9yLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4dCBpdCBhbmFseXplcyB0aHJvdWdoIGEgQ2hhcmFjdGVySXRlcmF0b3IsIHdoaWNoIG1ha2VzCisgKiBpdCBwb3NzaWJsZSB0byB1c2UgQnJlYWtJdGVyYXRvciB0byBhbmFseXplIHRleHQgaW4gYW55IHRleHQtc3RvcmFnZSB2ZWhpY2xlIHRoYXQKKyAqIHByb3ZpZGVzIGEgQ2hhcmFjdGVySXRlcmF0b3IgaW50ZXJmYWNlLgorICoKKyAqIDxiPk5PVEU6PC9iPiAgU29tZSB0eXBlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiB0YWtlIGEgbG9uZyB0aW1lIHRvIGNyZWF0ZSwgYW5kCisgKiBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcmUgbm90IGN1cnJlbnRseSBjYWNoZWQgYnkgdGhlIHN5c3RlbS4gIEZvcgorICogb3B0aW1hbCBwZXJmb3JtYW5jZSwga2VlcCBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcm91bmQgYXMgbG9uZyBhcyBtYWtlcworICogc2Vuc2UuICBGb3IgZXhhbXBsZSwgd2hlbiB3b3JkLXdyYXBwaW5nIGEgZG9jdW1lbnQsIGRvbid0IGNyZWF0ZSBhbmQgZGVzdHJveSBhCisgKiBuZXcgQnJlYWtJdGVyYXRvciBmb3IgZWFjaCBsaW5lLiAgQ3JlYXRlIG9uZSBicmVhayBpdGVyYXRvciBmb3IgdGhlIHdob2xlIGRvY3VtZW50CisgKiAob3Igd2hhdGV2ZXIgc3RyZXRjaCBvZiB0ZXh0IHlvdSdyZSB3cmFwcGluZykgYW5kIHVzZSBpdCB0byBkbyB0aGUgd2hvbGUgam9iIG9mCisgKiB3cmFwcGluZyB0aGUgdGV4dC4KKyAqCisgKiA8UD4KKyAqIDxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz46PFA+CisgKiBDcmVhdGluZyBhbmQgdXNpbmcgdGV4dCBib3VuZGFyaWVzCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgKiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB7CisgKiAgICAgICAgICBTdHJpbmcgc3RyaW5nVG9FeGFtaW5lID0gYXJnc1swXTsKKyAqICAgICAgICAgIC8vcHJpbnQgZWFjaCB3b3JkIGluIG9yZGVyCisgKiAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5ID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEZvcndhcmQoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICAvL3ByaW50IGVhY2ggc2VudGVuY2UgaW4gcmV2ZXJzZSBvcmRlcgorICogICAgICAgICAgYm91bmRhcnkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEJhY2t3YXJkKGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRGaXJzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50TGFzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIG9yZGVyCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRFYWNoRm9yd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkuZmlyc3QoKTsKKyAqICAgICBmb3IgKGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgICAgICBlbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FOworICogICAgICAgICAgc3RhcnQgPSBlbmQsIGVuZCA9IGJvdW5kYXJ5Lm5leHQoKSkgeworICogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIHJldmVyc2Ugb3JkZXIKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEVhY2hCYWNrd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lmxhc3QoKTsKKyAqICAgICBmb3IgKGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgICAgICBzdGFydCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiAgICAgICAgICBlbmQgPSBzdGFydCwgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpKSB7CisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGZpcnN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEZpcnN0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5maXJzdCgpOworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBsYXN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludExhc3QoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5sYXN0KCk7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IHRoZSBlbGVtZW50IGF0IGEgc3BlY2lmaWVkIHBvc2l0aW9uCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRBdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBpbnQgcG9zLCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5LmZvbGxvd2luZyhwb3MpOworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGaW5kIHRoZSBuZXh0IHdvcmQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgaW50IG5leHRXb3JkU3RhcnRBZnRlcihpbnQgcG9zLCBTdHJpbmcgdGV4dCkgeworICogICAgIEJyZWFrSXRlcmF0b3Igd2IgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICogICAgIHdiLnNldFRleHQodGV4dCk7CisgKiAgICAgaW50IGxhc3QgPSB3Yi5mb2xsb3dpbmcocG9zKTsKKyAqICAgICBpbnQgY3VycmVudCA9IHdiLm5leHQoKTsKKyAqICAgICB3aGlsZSAoY3VycmVudCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAqICAgICAgICAgZm9yIChpbnQgcCA9IGxhc3Q7IHAgPCBjdXJyZW50OyBwKyspIHsKKyAqICAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuaXNMZXR0ZXIodGV4dC5jaGFyQXQocCkpCisgKiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CisgKiAgICAgICAgIGN1cnJlbnQgPSB3Yi5uZXh0KCk7CisgKiAgICAgfQorICogICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiB9CisgKiA8L3ByZT4KKyAqIChUaGUgaXRlcmF0b3IgcmV0dXJuZWQgYnkgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKSBpcyB1bmlxdWUgaW4gdGhhdAorICogdGhlIGJyZWFrIHBvc2l0aW9ucyBpdCByZXR1cm5zIGRvbid0IHJlcHJlc2VudCBib3RoIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZQorICogdGhpbmcgYmVpbmcgaXRlcmF0ZWQgb3Zlci4gIFRoYXQgaXMsIGEgc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgcmV0dXJucyBicmVha3MKKyAqIHRoYXQgZWFjaCByZXByZXNlbnQgdGhlIGVuZCBvZiBvbmUgc2VudGVuY2UgYW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQuCisgKiBXaXRoIHRoZSB3b3JkLWJyZWFrIGl0ZXJhdG9yLCB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIHR3byBib3VuZGFyaWVzIG1pZ2h0IGJlIGEKKyAqIHdvcmQsIG9yIHRoZXkgbWlnaHQgYmUgdGhlIHB1bmN0dWF0aW9uIG9yIHdoaXRlc3BhY2UgYmV0d2VlbiB0d28gd29yZHMuICBUaGUKKyAqIGFib3ZlIGNvZGUgdXNlcyBhIHNpbXBsZSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5lIHdoaWNoIGJvdW5kYXJ5IGlzIHRoZSBiZWdpbm5pbmcKKyAqIG9mIGEgd29yZDogSWYgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5IGFuZCB0aGUgbmV4dCBib3VuZGFyeQorICogaW5jbHVkZSBhdCBsZWFzdCBvbmUgbGV0dGVyICh0aGlzIGNhbiBiZSBhbiBhbHBoYWJldGljYWwgbGV0dGVyLCBhIENKSyBpZGVvZ3JhcGgsCisgKiBhIEhhbmd1bCBzeWxsYWJsZSwgYSBLYW5hIGNoYXJhY3RlciwgZXRjLiksIHRoZW4gdGhlIHRleHQgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5CisgKiBhbmQgdGhlIG5leHQgaXMgYSB3b3JkOyBvdGhlcndpc2UsIGl0J3MgdGhlIG1hdGVyaWFsIGJldHdlZW4gd29yZHMuKQorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICoKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50cyBDbG9uZWFibGUgeworCQorICAgIHByb3RlY3RlZCBCcmVha0l0ZXJhdG9yKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBjb3B5IG9mIHRoaXMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgIAkvLyB0aGlzIGlzIGhlcmUgZm9yIHN1YmNsYXNzIHVzZS4gIHdlIG11c3Qgb3ZlcnJpZGUgaXQgb3Vyc2VsdmVzLCB0aG91Z2guCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPTkUgPSAtMTsKKyAgICAgICAgCisJLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbi4gIFRoaXMgaXMgYWx3YXlzIHRoZSBiZWdpbm5pbmcKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZywgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICogYWx3YXlzIHJldHVybiAwLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIHRvIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmaXJzdCgpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24uICBUaGlzIGlzIGFsd2F5cyB0aGUgInBhc3QtdGhlLWVuZCIKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYgdGhlCisgICAgICogaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZyAoY2FsbCBpdCAidGV4dCIpLCB0aGlzIGZ1bmN0aW9uCisgICAgICogd2lsbCBhbHdheXMgcmV0dXJuIHRleHQubGVuZ3RoKCkuICBUaGlzIGZ1bmN0aW9uIGFsc28gdXBkYXRlZCB0aGUKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHN0cmV0Y2ggb2YgdGV4dAorICAgICAqIGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxhc3QoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMgZm9yd2FyZCBpbiB0aGUgdGV4dCAoYSBuZWdhdGl2ZQorICAgICAqIG51bWJlciwgdGhlcmVmb3JlLCBhZHZhbmNlcyBiYWNrd2FyZHMpLiAgSWYgdGhpcyBjYXVzZXMgdGhlIGl0ZXJhdG9yCisgICAgICogdG8gYWR2YW5jZSBvZmYgZWl0aGVyIGVuZCBvZiB0aGUgdGV4dCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIERPTkU7CisgICAgICogb3RoZXJ3aXNlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBhcHByb3ByaWF0ZQorICAgICAqIGJvdW5kYXJ5LiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBuZXh0KCkgb3IKKyAgICAgKiBwcmV2aW91cygpIG4gdGltZXMuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIGFkdmFuY2Ugb3ZlciAoaWYgcG9zaXRpdmUsIG1vdmVzCisgICAgICogZm9yd2FyZDsgaWYgbmVnYXRpdmUsIG1vdmVzIGJhY2t3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGJvdW5kYXJ5IG4gYm91bmRhcmllcyBmcm9tIHRoZSBjdXJyZW50CisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLCBvciBET05FIGlmIG1vdmluZyBuIGJvdW5kYXJpZXMgY2F1c2VzIHRoZSBpdGVyYXRvcgorICAgICAqIHRvIGFkdmFuY2Ugb2ZmIGVpdGhlciBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KGludCBuKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGZvcndhcmQgb25lIGJvdW5kYXJ5LiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgbGFzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkIG9uZSBib3VuZGFyeS4gIFRoZSBjdXJyZW50IGl0ZXJhdGlvbgorICAgICAqIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlCisgICAgICogdGhlIGN1cnJlbnQgcG9zaXRpb24sIGFuZCB0aGlzIGlzIGFsc28gdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQuICBJZgorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBmaXJzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcHJldmlvdXMoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IncyBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byBiZSB0aGUgZmlyc3QKKyAgICAgKiBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gIChXaGV0aGVyIHRoZQorICAgICAqIHNwZWNpZmllZCBwb3NpdGlvbiBpcyBpdHNlbGYgYSBib3VuZGFyeSBwb3NpdGlvbiBvciBub3QgZG9lc24ndAorICAgICAqIG1hdHRlci0tIHRoaXMgZnVuY3Rpb24gYWx3YXlzIG1vdmVzIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlCisgICAgICogZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4pICBJZiB0aGUgc3BlY2lmaWVkCisgICAgICogcG9zaXRpb24gaXMgdGhlIHBhc3QtdGhlLWVuZCBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogIm9mZnNldCIgKHdoZXRoZXIgb3Igbm90ICJvZmZzZXQiIGl0c2VsZiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uKSwKKyAgICAgKiBvciBET05FIGlmICJvZmZzZXQiIGlzIHRoZSBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvZiBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgaXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICBpbnQgcG9zID0gZm9sbG93aW5nKG9mZnNldCk7CisgICAgICAgIHdoaWxlIChwb3MgPj0gb2Zmc2V0ICYmIHBvcyAhPSBET05FKSB7CisgICAgICAgICAgICBwb3MgPSBwcmV2aW91cygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIElmIHRoZQorICAgICAqIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb247IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLCB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgYXMgdGhvdWdoIGZvbGxvd2luZygpIGhhZCBiZWVuIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCb3VuZGFyeShpbnQgb2Zmc2V0KSB7CisgICAgCXJldHVybiBvZmZzZXQgPT0gMCB8fCBmb2xsb3dpbmcob2Zmc2V0IC0gMSkgPT0gb2Zmc2V0OyAgICAJCisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjdXJyZW50KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEZvciBhdCBsZWFzdCBzb21lIHN1YmNsYXNzZXMgb2YgQnJlYWtJdGVyYXRvciwgdGhpcyBpcyBhIHJlZmVyZW5jZQorICAgICAqIHRvIHRoZSA8Yj5hY3R1YWwgaXRlcmF0b3IgYmVpbmcgdXNlZDwvYj4gYnkgdGhlIEJyZWFrSXRlcmF0b3IsCisgICAgICogYW5kIHRoZXJlZm9yZSwgdGhpcyBmdW5jdGlvbidzIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgdHJlYXRlZCBhcworICAgICAqIDx0dD5jb25zdDwvdHQ+LiAgTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBhYm91dCB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAqIG9mIHRoaXMgaXRlcmF0b3Igd2hlbiBpdCBpcyByZXR1cm5lZC4gIElmIHlvdSBuZWVkIHRvIG1vdmUgdGhhdAorICAgICAqIHBvc2l0aW9uIHRvIGV4YW1pbmUgdGhlIHRleHQsIGNsb25lIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgZmlyc3QuCisgICAgICogQHJldHVybiBBIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IENoYXJhY3Rlckl0ZXJhdG9yIGdldFRleHQoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlIG5ldworICAgICAqIHBpZWNlIG9mIHRleHQgaXMgcGFzc2VkIGluIGFzIGEgU3RyaW5nLCBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqIChUaGUgb2xkIHRleHQgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBTdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBhbmFseXplIHdpdGgKKyAgICAgKiB0aGlzIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbmV3VGV4dCkgeworICAgICAgICBzZXRUZXh0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXdUZXh0KSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUKKyAgICAgKiBCcmVha0l0ZXJhdG9yIGlzIHBhc3NlZCBhIENoYXJhY3Rlckl0ZXJhdG9yIHRocm91Z2ggd2hpY2gKKyAgICAgKiBpdCB3aWxsIGFjY2VzcyB0aGUgdGV4dCBpdHNlbGYuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydCBpbmRleC4KKyAgICAgKiAoVGhlIG9sZCBpdGVyYXRvciBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIENoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgdGV4dAorICAgICAqIHRvIGFuYWx5emUgd2l0aCB0aGlzIEJyZWFrSXRlcmF0b3IgKHRoZSBpdGVyYXRvcidzIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBpZ25vcmVkLCBidXQgaXRzIG90aGVyIHN0YXRlIGlzIHNpZ25pZmljYW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpOworICAgICAgICAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9DSEFSQUNURVIgPSAwOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1dPUkQgPSAxOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX0xJTkUgPSAyOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1NFTlRFTkNFID0gMzsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9USVRMRSA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZQorICAgICAqIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1dPUkQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IHRvIGJlCisgICAgICogYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUudG9Mb2NhbGUoKSwgS0lORF9XT1JEKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYnJva2VuCisgICAgICogaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBicm9rZW4uCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX0xJTkUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZS50b0xvY2FsZSgpLCBLSU5EX0xJTkUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcworICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfQ0hBUkFDVEVSKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZShVTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLnRvTG9jYWxlKCksIEtJTkRfQ0hBUkFDVEVSKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1NFTlRFTkNFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZS50b0xvY2FsZSgpLCBLSU5EX1NFTlRFTkNFKTsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJbnN0YW5jZShMb2NhbGUgd2hlcmUsIGludCBraW5kKSB7CisgICAgICAgIGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGJyID0gbnVsbDsKKyAgICAgICAgc3dpdGNoKGtpbmQpIHsKKyAgICAgICAgY2FzZSBLSU5EX0NIQVJBQ1RFUjogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSh3aGVyZSk7IGJyZWFrOworICAgICAgICBjYXNlIEtJTkRfV09SRDogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2Uod2hlcmUpOyBicmVhazsKKyAgICAgICAgY2FzZSBLSU5EX0xJTkU6IGJyID0gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKHdoZXJlKTsgYnJlYWs7CisgICAgICAgIGNhc2UgS0lORF9TRU5URU5DRTogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKHdoZXJlKTsgYnJlYWs7ICAgICAgICAgICAgIAorICAgICAgICBjYXNlIEtJTkRfVElUTEU6IHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQnJlYWtJdGVyYXRvckhhbmRsZShicik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBCcmVha0l0ZXJhdG9ycyBjYW4gYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIEFuIGFycmF5IG9mIExvY2FsZXMuICBBbGwgb2YgdGhlIGxvY2FsZXMgaW4gdGhlIGFycmF5IGNhbgorICAgICAqIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQnJlYWtJdGVyYXRvcnMgY2FuIGJlIHVzZWQuCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBVTG9jYWxlcy4gIEFsbCBvZiB0aGUgbG9jYWxlcyBpbiB0aGUgYXJyYXkgY2FuCisgICAgICogYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHVsb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVsb2NhbGVzOworICAgIH0KKyAgICAKKyAgICAvLyBmb3J3YXJkaW5nIGltcGxlbWVudGF0aW9uIGNsYXNzCisJc3RhdGljIGZpbmFsIGNsYXNzIEJyZWFrSXRlcmF0b3JIYW5kbGUgZXh0ZW5kcyBCcmVha0l0ZXJhdG9yIHsKKwkgICAgLyoqCisJICAgICAqIEBpbnRlcm5hbAorCSAgICAgKi8KKwkgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0b3I7CisJICAgICAgICAKKwkgICAgLyoqCisJICAgICAqIEBpbnRlcm5hbAorCSAgICAgKiBAcGFyYW0gZGVsZWdhdGUgdGhlIEJyZWFrSXRlcmF0b3IgdG8gd2hpY2ggdG8gZGVsZWdhdGUKKwkgICAgICovCisJICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9ySGFuZGxlKGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGRlbGVnYXRlKSB7CisJICAgICAgICB0aGlzLmJyZWFrSXRlcmF0b3IgPSBkZWxlZ2F0ZTsKKwkgICAgfQorCSAgICAgICAgCisJICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5maXJzdCgpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgbGFzdCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmxhc3QoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IG5leHQoaW50IG4pIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLm5leHQobik7CisJICAgIH0KKwkgICAgcHVibGljIGludCBuZXh0KCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IubmV4dCgpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5wcmV2aW91cygpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgcHJlY2VkaW5nKGludCBvZmZzZXQpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLnByZWNlZGluZyhvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IuaXNCb3VuZGFyeShvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmN1cnJlbnQoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmdldFRleHQoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKwkgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dChuZXdUZXh0KTsKKwkgICAgfQorCQorCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisJICAgICAqIEByZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZworCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKwkgICAgCXJldHVybiBicmVha0l0ZXJhdG9yLnRvU3RyaW5nKCk7CisJICAgIH0KKworCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBCcmVha0l0ZXJhdG9yLgorCSAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBCcmVha0l0ZXJhdG9yCisJICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisJICAgICAqLworCSAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworCSAgICAJcmV0dXJuIG5ldyBCcmVha0l0ZXJhdG9ySGFuZGxlKChqYXZhLnRleHQuQnJlYWtJdGVyYXRvcilicmVha0l0ZXJhdG9yLmNsb25lKCkpOworCSAgICB9CisKKwkgICAgLyoqCisJICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBicmVhayBiZWhhdmlvciBhcyB0aGlzLgorCSAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisJICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisJICAgICAqLworCSAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCSAgICAJdHJ5IHsKKwkgICAgCQlyZXR1cm4gYnJlYWtJdGVyYXRvci5lcXVhbHMoKChCcmVha0l0ZXJhdG9ySGFuZGxlKXJocykuYnJlYWtJdGVyYXRvcik7CisJICAgIAl9CisJICAgIAljYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkgICAgCQlyZXR1cm4gZmFsc2U7CisJICAgIAl9CisJICAgIH0KKworCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisJICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKwkgICAgCXJldHVybiBicmVha0l0ZXJhdG9yLmhhc2hDb2RlKCk7CisJICAgIH0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbktleS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzRiNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxwPkEgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiByZXByZXNlbnRzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPgorICogdW5kZXIgdGhlIHJ1bGVzIG9mIGEgc3BlY2lmaWMgPGNvZGU+Q29sbGF0b3I8L2NvZGU+CisgKiBvYmplY3QuIENvbXBhcmluZyB0d28gPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPnMgcmV0dXJucyB0aGUKKyAqIHJlbGF0aXZlIG9yZGVyIG9mIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+cyB0aGV5IHJlcHJlc2VudC48L3A+CisgKgorICogPHA+U2luY2UgdGhlIHJ1bGUgc2V0IG9mIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgY2FuIGRpZmZlciwgdGhlCisgKiBzb3J0IG9yZGVycyBvZiB0aGUgc2FtZSBzdHJpbmcgdW5kZXIgdHdvIGRpZmZlcmVudAorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBtaWdodCBkaWZmZXIuICBIZW5jZSBjb21wYXJpbmcKKyAqIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIGdlbmVyYXRlZCBmcm9tIGRpZmZlcmVudAorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBjYW4gZ2l2ZSBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgCisgKiA8cD5Cb3RoIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KTwvY29kZT4gYW5kIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpPC9jb2RlPiBjb21wYXJlIHR3byBzdHJpbmdzCisgKiBhbmQgcmV0dXJucyB0aGVpciByZWxhdGl2ZSBvcmRlci4gIFRoZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpY3RpY3MKKyAqIG9mIHRoZXNlIHR3byBhcHByb2FjaGVzIGNhbiBkaWZmZXIuPC9wPgorICoKKyAqIDxwPkR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIGEgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgdGhlCisgKiBlbnRpcmUgc291cmNlIHN0cmluZyBpcyBleGFtaW5lZCBhbmQgcHJvY2Vzc2VkIGludG8gYSBzZXJpZXMgb2YKKyAqIGJpdHMgdGVybWluYXRlZCBieSBhIG51bGwsIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPi4gCisgKiBXaGVuIDxjb2RlPkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KTwvY29kZT4gZXhlY3V0ZXMsIGl0CisgKiBwZXJmb3JtcyBiaXR3aXNlIGNvbXBhcmlzb24gb24gdGhlIGJpdCBzZXF1ZW5jZXMuICBUaGlzIGNhbiBpbmN1cnMKKyAqIHN0YXJ0dXAgY29zdCB3aGVuIGNyZWF0aW5nIHRoZSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+LCBidXQgb25jZQorICogdGhlIGtleSBpcyBjcmVhdGVkLCBiaW5hcnkgY29tcGFyaXNvbnMgYXJlIGZhc3QuICBUaGlzIGFwcHJvYWNoIGlzCisgKiByZWNvbW1lbmRlZCB3aGVuIHRoZSBzYW1lIHN0cmluZ3MgYXJlIHRvIGJlIGNvbXBhcmVkIG92ZXIgYW5kIG92ZXIKKyAqIGFnYWluLjwvcD4KKyAqCisgKiA8cD5PbiB0aGUgb3RoZXIgaGFuZCwgaW1wbGVtZW50YXRpb25zIG9mCisgKiA8Y29kZT5Db2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKTwvY29kZT4gY2FuIGV4YW1pbmUgYW5kCisgKiBwcm9jZXNzIHRoZSBzdHJpbmdzIG9ubHkgdW50aWwgdGhlIGZpcnN0IGNoYXJhY3RlcnMgZGlmZmVyaW5nIGluCisgKiBvcmRlci4gIFRoaXMgYXBwcm9hY2ggaXMgcmVjb21tZW5kZWQgaWYgdGhlIHN0cmluZ3MgYXJlIHRvIGJlCisgKiBjb21wYXJlZCBvbmx5IG9uY2UuPC9wPgorICogCisgKiA8cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21wb3NpdGlvbiBvZiB0aGUgYml0IHNlcXVlbmNlIGNhbgorICogYmUgZm91bmQgaW4gdGhlIAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAqIHVzZXIgZ3VpZGU8L2E+LjwvcD4KKyAqCisgKiA8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIGNhbiBiZSB1c2VkCisgKiB0byBzb3J0IGEgbGlzdCBvZiA8Y29kZT5TdHJpbmc8L2NvZGU+cy48L3A+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgQ29sbGF0aW9uS2V5cyBmb3IgdGhlIFN0cmluZ3MgdG8gYmUgc29ydGVkLgorICogQ29sbGF0b3IgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgKiBDb2xsYXRpb25LZXlbXSBrZXlzID0gbmV3IENvbGxhdGlvbktleVszXTsKKyAqIGtleXNbMF0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiVG9tIik7CisgKiBrZXlzWzFdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkRpY2siKTsKKyAqIGtleXNbMl0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiSGFycnkiKTsKKyAqIHNvcnQoIGtleXMgKTsKKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBJbnNpZGUgYm9keSBvZiBzb3J0IHJvdXRpbmUsIGNvbXBhcmUga2V5cyB0aGlzIHdheQorICogaWYoIGtleXNbaV0uY29tcGFyZVRvKCBrZXlzW2pdICkgPiAwICkKKyAqICAgIC8vIHN3YXAga2V5c1tpXSBhbmQga2V5c1tqXQorICogPGJyPgorICogLy8uLi4KKyAqIDxicj4KKyAqIC8vIEZpbmFsbHksIHdoZW4gd2UndmUgcmV0dXJuZWQgZnJvbSBzb3J0LgorICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzBdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMV0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1syXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQHNlZSBDb2xsYXRvcgorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQHN0YWJsZSBJQ1UgMi44IAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGF0aW9uS2V5IGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisJLyoqCisJICogQGludGVybmFsCisJICovCisJZmluYWwgamF2YS50ZXh0LkNvbGxhdGlvbktleSBrZXk7CisJCisJLyoqCisJICogQGludGVybmFsCisJICovCisJQ29sbGF0aW9uS2V5KGphdmEudGV4dC5Db2xsYXRpb25LZXkgZGVsZWdhdGUpIHsKKwkJdGhpcy5rZXkgPSBkZWxlZ2F0ZTsKKwl9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzLgorICAgICAqIEByZXR1cm4gc291cmNlIHN0cmluZyB0aGF0IHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZVN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGtleS5nZXRTb3VyY2VTdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+RHVwbGljYXRlcyBhbmQgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBDb2xsYXRpb25LZXkgYXMgYSBzZXF1ZW5jZSAKKyAgICAgKiBvZiBiaWctZW5kaWFuIGJ5dGVzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLjwvcD4gCisgICAgICoKKyAgICAgKiA8cD5JZiB0d28gQ29sbGF0aW9uS2V5cyBjYW4gYmUgbGVnaXRpbWF0ZWx5IGNvbXBhcmVkLCB0aGVuIG9uZSBjYW4KKyAgICAgKiBjb21wYXJlIHRoZSBieXRlIGFycmF5cyBvZiBlYWNoIHRvIG9idGFpbiB0aGUgc2FtZSByZXN1bHQsIGUuZy4KKyAgICAgKiA8cHJlPgorICAgICAqIGJ5dGUga2V5MVtdID0gY29sbGF0aW9ua2V5MS50b0J5dGVBcnJheSgpOworICAgICAqIGJ5dGUga2V5MltdID0gY29sbGF0aW9ua2V5Mi50b0J5dGVBcnJheSgpOworICAgICAqIGludCBrZXksIHRhcmdldGtleTsKKyAgICAgKiBpbnQgaSA9IDA7CisgICAgICogZG8geworICAgICAqICAgICAgIGtleSA9IGtleTFbaV0gJiAweEZGOworICAgICAqICAgICB0YXJnZXRrZXkgPSBrZXkyW2ldICYgMHhGRjsKKyAgICAgKiAgICAgaWYgKGtleSAmbHQ7IHRhcmdldGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBsZXNzIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgICAgIHJldHVybjsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpZiAodGFyZ2V0a2V5ICZsdDsga2V5KSB7CisgICAgICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyAxIGlzIG1vcmUgdGhhbiBzdHJpbmcgMiIpOworICAgICAqICAgICB9CisgICAgICogICAgIGkgKys7CisgICAgICogfSB3aGlsZSAoa2V5ICE9IDAgJiYgdGFyZ2V0S2V5ICE9IDApOworICAgICAqCisgICAgICogU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVhbC4iKTsKKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcmV0dXJuIENvbGxhdGlvbktleSB2YWx1ZSBpbiBhIHNlcXVlbmNlIG9mIGJpZy1lbmRpYW4gYnl0ZSBieXRlcyAKKyAgICAgKiAgICAgICAgIHRlcm1pbmF0ZWQgYnkgYSBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBieXRlW10gdG9CeXRlQXJyYXkoKSB7CisgICAgICAgIHJldHVybiBrZXkudG9CeXRlQXJyYXkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IHRvIGFub3RoZXIgQ29sbGF0aW9uS2V5LiAgVGhlCisgICAgICogY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQgdGhpcyBrZXkgYXJlCisgICAgICogYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENvbXBhcmlzb24gYmV0d2VlbiBDb2xsYXRpb25LZXlzCisgICAgICogY3JlYXRlZCBieSBkaWZmZXJlbnQgQ29sbGF0b3JzIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QKKyAgICAgKiByZXN1bHRzLiAgU2VlIGNsYXNzIGRvY3VtZW50YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgQ29sbGF0aW9uS2V5CisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlLiAgSWYgdGhlIHZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIHRoaXMgQ29sbGF0aW9uS2V5CisgICAgICogICAgICAgICBpcyBsZXNzIHRoYW4gdGhhbiB0YXJnZXQsIGlmIHRoZSB2YWx1ZSBpcyB6ZXJvIHRoZXkgYXJlIGVxdWFsLCBhbmQKKyAgICAgKiAgICAgICAgIGlmIHRoZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyB0aGlzIENvbGxhdGlvbktleSBpcyBncmVhdGVyIAorICAgICAqICAgICAgICAgdGhhbiB0YXJnZXQuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc2VlIENvbGxhdG9yI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBpbnQgY29tcGFyZVRvKENvbGxhdGlvbktleSB0YXJnZXQpIHsKKwkJcmV0dXJuIGtleS5jb21wYXJlVG8odGFyZ2V0LmtleSk7CisJfQorCQorCS8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgd2l0aCB0aGUgc3BlY2lmaWVkIE9iamVjdC4gIFRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkIHRoaXMga2V5IGFyZQorICAgICAqIGFwcGxpZWQuPC9wPgorICAgICAqIAorICAgICAqIDxwPlNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBhYm91dCBwb3NzaWJsZQorICAgICAqIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmogdGhlIE9iamVjdCB0byBiZSBjb21wYXJlZCB0by4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYSBuZWdhdGl2ZSBpbnRlZ2VyLCB6ZXJvLCBvciBhIHBvc2l0aXZlIGludGVnZXIgCisgICAgICogICAgICAgICByZXNwZWN0aXZlbHkgaWYgdGhpcyBDb2xsYXRpb25LZXkgaXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgCisgICAgICogICAgICAgICBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIE9iamVjdC4KKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBzZWUgI2NvbXBhcmVUbyhDb2xsYXRpb25LZXkpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisJCXJldHVybiBjb21wYXJlVG8oKENvbGxhdGlvbktleSlvKTsKKwl9CisJCisJLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIHNwZWNpZmllZCBPYmplY3QgZm9yCisgICAgICogZXF1YWxpdHkuICBUaGUgY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQKKyAgICAgKiB0aGlzIGtleSBhcmUgYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3MgYWJvdXQKKyAgICAgKiBwb3NzaWJsZSBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBrZXlzIGNvbXBhcmUgYXMgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc2VlICNjb21wYXJlVG8oQ29sbGF0aW9uS2V5KQorICAgICAqIEBleGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIENvbGxhdGlvbktleS4gIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCAKKyAgICAgKiAgICAgICAgICAgIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGFyZ2V0KSB7CisJCXRyeSB7CisJCQlyZXR1cm4ga2V5LmVxdWFscygoKENvbGxhdGlvbktleSl0YXJnZXQpLmtleSk7CisJCX0KKwkJY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIGFyZ3VtZW50IHRhcmdldCBDb2xsYXRpb25LZXkgZm9yIAorICAgICAqIGVxdWFsaXR5LgorICAgICAqIFRoZSBjb2xsYXRpb24gCisgICAgICogcnVsZXMgb2YgdGhlIENvbGxhdG9yIG9iamVjdCB3aGljaCBjcmVhdGVkIHRoZXNlIG9iamVjdHMgYXJlIGFwcGxpZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBvZiBpbmNvcnJlY3QgcmVzdWx0cworICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdHdvIG9iamVjdHMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICAgICAgcmV0dXJuIGtleS5lcXVhbHModGFyZ2V0LmtleSk7CisgICAgfQorICAgIAorCS8qKgorICAgICAqIDxwPlJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgQ29sbGF0aW9uS2V5LiBUaGUgaGFzaCB2YWx1ZSBpcyBjYWxjdWxhdGVkIAorICAgICAqIG9uIHRoZSBrZXkgaXRzZWxmLCBub3QgdGhlIFN0cmluZyBmcm9tIHdoaWNoIHRoZSBrZXkgd2FzIGNyZWF0ZWQuIFRodXMgCisgICAgICogaWYgeCBhbmQgeSBhcmUgQ29sbGF0aW9uS2V5cywgdGhlbiB4Lmhhc2hDb2RlKHgpID09IHkuaGFzaENvZGUoKSAKKyAgICAgKiBpZiB4LmVxdWFscyh5KSBpcyB0cnVlLiBUaGlzIGFsbG93cyBsYW5ndWFnZS1zZW5zaXRpdmUgY29tcGFyaXNvbiBpbiBhIAorICAgICAqIGhhc2ggdGFibGUuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisJICovCisJcHVibGljIGludCBoYXNoQ29kZSgpIHsKKwkJcmV0dXJuIGtleS5oYXNoQ29kZSgpOworCX0KKwkKKwkvKioKKwkgKiBSZXR1cm4gYSBkZXNjcmlwdGlvbiBvZiB0aGUgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gYSBkZXNjcmlwdGlvbiBvZiB0aGUgQ29sbGF0aW9uS2V5LCB1c2VkIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMgorCSAqLworCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisJCXJldHVybiBrZXkudG9TdHJpbmcoKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjYwMzIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDU2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisqIDxwPkNvbGxhdG9yIHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb24uPC9wPgorKgorKiA8cD5Gb2xsb3dpbmcgdGhlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZz5Vbmljb2RlCisqIENvbnNvcnRpdW08L2E+J3Mgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZQorKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUgQ29sbGF0aW9uCisqIEFsZ29yaXRobSAoVUNBKTwvYT4sIHRoZXJlIGFyZSA1IGRpZmZlcmVudCBsZXZlbHMgb2Ygc3RyZW5ndGggdXNlZAorKiBpbiBjb21wYXJpc29uczoKKyoKKyogPHVsPgorKiA8bGk+UFJJTUFSWSBzdHJlbmd0aDogVHlwaWNhbGx5LCB0aGlzIGlzIHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzIGJldHdlZW4KKyogICAgIGJhc2UgY2hhcmFjdGVycyAoZm9yIGV4YW1wbGUsICJhIiAmbHQ7ICJiIikuCisqICAgICBJdCBpcyB0aGUgc3Ryb25nZXN0IGRpZmZlcmVuY2UuIEZvciBleGFtcGxlLCBkaWN0aW9uYXJpZXMgYXJlIGRpdmlkZWQKKyogICAgIGludG8gZGlmZmVyZW50IHNlY3Rpb25zIGJ5IGJhc2UgY2hhcmFjdGVyLgorKiA8bGk+U0VDT05EQVJZIHN0cmVuZ3RoOiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeQorKiAgICAgZGlmZmVyZW5jZXMgKGZvciBleGFtcGxlLCAiYXMiICZsdDsgIiZhZ3JhdmU7cyIgJmx0OyAiYXQiKS4gT3RoZXIKKyogICAgIGRpZmZlcmVuY2VzCisqICAgICBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMsIGRlcGVuZGluZworKiAgICAgb24gdGhlIGxhbmd1YWdlLiBBIHNlY29uZGFyeSBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhCisqICAgICBwcmltYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5URVJUSUFSWSBzdHJlbmd0aDogVXBwZXIgYW5kIGxvd2VyIGNhc2UgZGlmZmVyZW5jZXMgaW4gY2hhcmFjdGVycyBhcmUKKyogICAgIGRpc3Rpbmd1aXNoZWQgYXQgdGVydGlhcnkgc3RyZW5ndGggKGZvciBleGFtcGxlLCAiYW8iICZsdDsgIkFvIiAmbHQ7CisqICAgICAiYSZvZ3JhdmU7IikuIEluIGFkZGl0aW9uLCBhIHZhcmlhbnQgb2YgYSBsZXR0ZXIgZGlmZmVycyBmcm9tIHRoZSBiYXNlCisqICAgICBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCAoc3VjaCBhcyAiQSIgYW5kICImIzkzOTg7IikuIEFub3RoZXIKKyogICAgIGV4YW1wbGUgaXMgdGhlCisqICAgICBkaWZmZXJlbmNlIGJldHdlZW4gbGFyZ2UgYW5kIHNtYWxsIEthbmEuIEEgdGVydGlhcnkgZGlmZmVyZW5jZSBpcyBpZ25vcmVkCisqICAgICB3aGVuIHRoZXJlIGlzIGEgcHJpbWFyeSBvciBzZWNvbmRhcnkgZGlmZmVyZW5jZSBhbnl3aGVyZSBpbiB0aGUgc3RyaW5ncy4KKyogPGxpPlFVQVRFUk5BUlkgc3RyZW5ndGg6IFdoZW4gcHVuY3R1YXRpb24gaXMgaWdub3JlZAorKiAgICAgPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ29uY2VwdHMuaHRtbCNJZ25vcmluZ19QdW5jdHVhdGlvbiI+CisqICAgICAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyogICAgIHN0cmVuZ3RoLCBhbiBhZGRpdGlvbmFsIHN0cmVuZ3RoIGxldmVsIGNhbgorKiAgICAgYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB3b3JkcyB3aXRoIGFuZCB3aXRob3V0IHB1bmN0dWF0aW9uIChmb3IgZXhhbXBsZSwKKyogICAgICJhYiIgJmx0OyAiYS1iIiAmbHQ7ICJhQiIpLgorKiAgICAgVGhpcyBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhIFBSSU1BUlksIFNFQ09OREFSWSBvciBURVJUSUFSWQorKiAgICAgZGlmZmVyZW5jZS4gVGhlIFFVQVRFUk5BUlkgc3RyZW5ndGggc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiBpZ25vcmluZworKiAgICAgcHVuY3R1YXRpb24gaXMgcmVxdWlyZWQuCisqIDxsaT5JREVOVElDQUwgc3RyZW5ndGg6CisqICAgICBXaGVuIGFsbCBvdGhlciBzdHJlbmd0aHMgYXJlIGVxdWFsLCB0aGUgSURFTlRJQ0FMIHN0cmVuZ3RoIGlzIHVzZWQgYXMgYQorKiAgICAgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZXMgb2YgdGhlIE5GRCBmb3JtIG9mIGVhY2ggc3RyaW5nCisqICAgICBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBkaWZmZXJlbmNlLgorKiAgICAgRm9yIGV4YW1wbGUsIEhlYnJldyBjYW50ZWxsYXRpb24gbWFya3MgYXJlIG9ubHkgZGlzdGluZ3Vpc2hlZCBhdCB0aGlzCisqICAgICBzdHJlbmd0aC4gVGhpcyBzdHJlbmd0aCBzaG91bGQgYmUgdXNlZCBzcGFyaW5nbHksIGFzIG9ubHkgY29kZSBwb2ludAorKiAgICAgdmFsdWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gc3RyaW5ncyBpcyBhbiBleHRyZW1lbHkgcmFyZSBvY2N1cnJlbmNlLgorKiAgICAgVXNpbmcgdGhpcyBzdHJlbmd0aCBzdWJzdGFudGlhbGx5IGRlY3JlYXNlcyB0aGUgcGVyZm9ybWFuY2UgZm9yIGJvdGgKKyogICAgIGNvbXBhcmlzb24gYW5kIGNvbGxhdGlvbiBrZXkgZ2VuZXJhdGlvbiBBUElzLiBUaGlzIHN0cmVuZ3RoIGFsc28KKyogICAgIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgY29sbGF0aW9uIGtleS4KKyogPC91bD4KKyoKKyogVW5saWtlIHRoZSBKREssIElDVTRKJ3MgQ29sbGF0b3IgZGVhbHMgb25seSB3aXRoIDIgZGVjb21wb3NpdGlvbiBtb2RlcywKKyogdGhlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIG1vZGUgYW5kIG9uZSB0aGF0IGRvZXMgbm90IHVzZSBhbnkgZGVjb21wb3NpdGlvbi4KKyogVGhlIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBtb2RlLCBqYXZhLnRleHQuQ29sbGF0b3IuRlVMTF9ERUNPTVBPU0lUSU9OCisqIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZS4gSWYgdGhlIGNhbm9uaWNhbAorKiBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgc2V0LCB0aGUgQ29sbGF0b3IgaGFuZGxlcyB1bi1ub3JtYWxpemVkIHRleHQgcHJvcGVybHksCisqIHByb2R1Y2luZyB0aGUgc2FtZSByZXN1bHRzIGFzIGlmIHRoZSB0ZXh0IHdlcmUgbm9ybWFsaXplZCBpbiBORkQuIElmCisqIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyogZW5zdXJlIHRoYXQgYWxsIHRleHQgaXMgYWxyZWFkeSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWZvcmUgcGVyZm9ybWluZworKiBhIGNvbXBhcmlzb24gb3IgYmVmb3JlIGdldHRpbmcgYSBDb2xsYXRpb25LZXkuPC9wPgorKgorKiA8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uIHNlcnZpY2Ugc2VlIHRoZQorKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj51c2VycworKiBndWlkZTwvYT4uPC9wPgorKgorKiA8cD5FeGFtcGxlcyBvZiB1c2UKKyogPHByZT4KKyogLy8gR2V0IHRoZSBDb2xsYXRvciBmb3IgVVMgRW5nbGlzaCBhbmQgc2V0IGl0cyBzdHJlbmd0aCB0byBQUklNQVJZCisqIENvbGxhdG9yIHVzQ29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworKiB1c0NvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworKiBpZiAodXNDb2xsYXRvci5jb21wYXJlKCJhYmMiLCAiQUJDIikgPT0gMCkgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVpdmFsZW50Iik7CisqIH0KKyoKKyogVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBjb21wYXJlIHR3byBzdHJpbmdzIHVzaW5nIHRoZQorKiBDb2xsYXRvciBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorKgorKiAvLyBDb21wYXJlIHR3byBzdHJpbmdzIGluIHRoZSBkZWZhdWx0IGxvY2FsZQorKiBDb2xsYXRvciBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyogbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOworKiBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBub3QgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGhvdXQgZGVjb21wb3NpdGlvbiIpOworKiAgICAgbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyogICAgIGlmIChteUNvbGxhdG9yLmNvbXBhcmUoIiZhZ3JhdmU7JiM5Mjt1MDMyNSIsICJhJiM5Mjt1MDMyNSYjNzY4OyIpICE9IDApIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogICAgIGVsc2UgeworKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJmFncmF2ZTsmIzkyO3UwMzI1IGlzIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogfQorKiBlbHNlIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3I6ICZhZ3JhdmU7JiM5Mjt1MDMyNSBzaG91bGQgYmUgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogfQorKiA8L3ByZT4KKyogPC9wPgorKiBAc2VlIENvbGxhdGlvbktleQorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc3RhYmxlIElDVSAyLjgKKyovCitwdWJsaWMgY2xhc3MgQ29sbGF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yLCBDbG9uZWFibGUKK3sKKwkvKioKKwkgKiBAaW50ZXJuYWwKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGphdmEudGV4dC5Db2xsYXRvciBjb2xsYXRvcjsKKwkKKwkvKioKKwkgKiBAaW50ZXJuYWwKKwkgKi8KKwlwcml2YXRlIENvbGxhdG9yKGphdmEudGV4dC5Db2xsYXRvciBkZWxlZ2F0ZSkgeworCQl0aGlzLmNvbGxhdG9yID0gZGVsZWdhdGU7CisJfQorCQorCS8qKgorCSAqIENyZWF0ZSBhIGNvbGxhdG9yIHdpdGggYSBudWxsIGRlbGVnYXRlLgorCSAqIEZvciB1c2UgYnkgcG9zc2libGUgc3ViY2xhc3NlcnMuICBUaGlzIGlzIHByZXNlbnQgc2luY2UKKwkgKiB0aGUgb3JpZ2luYWwgQ29sbGF0b3IgaXMgYWJzdHJhY3QsIGFuZCBzbywgaW4gdGhlb3J5CisJICogc3ViY2xhc3NhYmxlLiAgQWxsIG1lbWJlciBBUElzIG11c3QgYmUgb3ZlcnJpZGRlbi4KKwkgKi8KKwlwcm90ZWN0ZWQgQ29sbGF0b3IoKSB7CisJCXRoaXMuY29sbGF0b3IgPSBudWxsOworCX0KKwkKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU3Ryb25nZXN0IGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBUeXBpY2FsbHkgdXNlZCB0byBkZW5vdGUgZGlmZmVyZW5jZXMKKyAgICAgKiBiZXR3ZWVuIGJhc2UgY2hhcmFjdGVycy4gU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBSSU1BUlkgPSBqYXZhLnRleHQuQ29sbGF0b3IuUFJJTUFSWTsKKworICAgIC8qKgorICAgICAqIFNlY29uZCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeSBkaWZmZXJlbmNlcy4KKyAgICAgKiBPdGhlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkKKyAgICAgKiBkaWZmZXJlbmNlcywgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EQVJZID0gamF2YS50ZXh0LkNvbGxhdG9yLlNFQ09OREFSWTsKKworICAgIC8qKgorICAgICAqIFRoaXJkIGxldmVsIGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlIGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworICAgICAqIHN0cmVuZ3RoIGxldmVsLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZQorICAgICAqIGZvcm0gb24gdGhlIHRlcnRpYXJ5IGxldmVsLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBURVJUSUFSWSA9IGphdmEudGV4dC5Db2xsYXRvci5URVJUSUFSWTsKKworICAgIC8qKgorICAgICAqIEZvdXJ0aCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9Db25jZXB0cy5odG1sI0lnbm9yaW5nX1B1bmN0dWF0aW9uIj4KKyAgICAgKiAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyAgICAgKiBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4KKyAgICAgKiBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdvcmRzIHdpdGggYW5kIHdpdGhvdXQgcHVuY3R1YXRpb24uCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFFVQVRFUk5BUlkgPSBqYXZhLnRleHQuQ29sbGF0b3IuSURFTlRJQ0FMOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU21hbGxlc3QgQ29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIFdoZW4gYWxsIG90aGVyIHN0cmVuZ3RocyBhcmUgZXF1YWwsCisgICAgICogdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludAorICAgICAqIHZhbHVlcyBvZiB0aGUgTkZEIGZvcm0gb2YgZWFjaCBzdHJpbmcgYXJlIGNvbXBhcmVkLCBqdXN0IGluIGNhc2UgdGhlcmUKKyAgICAgKiBpcyBubyBkaWZmZXJlbmNlLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoaXMgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gSkRLJ3MKKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSURFTlRJQ0FMID0gamF2YS50ZXh0LkNvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTjsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggSmF2YSBBUElzIG9ubHkuICBJdAorICAgICAqIHNob3VsZCBub3QgYmUgdXNlZCwgSURFTlRJQ0FMIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuICBJQ1UncworICAgICAqIGNvbGxhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEphdmEncyBGVUxMX0RFQ09NUE9TSVRJT04gbW9kZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggSmF2YSBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZVTExfREVDT01QT1NJVElPTiA9IGphdmEudGV4dC5Db2xsYXRvci5GVUxMX0RFQ09NUE9TSVRJT047CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggTk9fREVDT01QT1NJVElPTiBzZXQsIFN0cmluZ3MKKyAgICAgKiB3aWxsIG5vdCBiZSBkZWNvbXBvc2VkIGZvciBjb2xsYXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQKKyAgICAgKiBkZWNvbXBvc2l0aW9uIHNldHRpbmcgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQgYnkgdGhlIGxvY2FsZQorICAgICAqIHVzZWQgdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhpcyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgSkRLJ3MuPC9wPgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOT19ERUNPTVBPU0lUSU9OID0gamF2YS50ZXh0LkNvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT047CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gc2V0LAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgY2Fub25pY2FsIHZhcmlhbnRzIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZAorICAgICAqIHdpbGwgYmUgZGVjb21wb3NlZCBmb3IgY29sbGF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIGNvcnJlc3BvbmRzIHRvIE5vcm1hbGl6YXRpb24gRm9ybSBEIGFzCisgICAgICogZGVzY3JpYmVkIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIj4KKyAgICAgKiBVbmljb2RlIFRlY2huaWNhbCBSZXBvcnQgIzE1PC9hPi4KKyAgICAgKiA8L3A+CisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gPSBqYXZhLnRleHQuQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhpcyBDb2xsYXRvcidzIHN0cmVuZ3RoIHByb3BlcnR5LiBUaGUgc3RyZW5ndGggcHJvcGVydHkKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudAorICAgICAqIGR1cmluZyBjb21wYXJpc29uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoZSBkZWZhdWx0IHN0cmVuZ3RoIGZvciB0aGUgQ29sbGF0b3IgaXMgVEVSVElBUlksIHVubGVzcyBzcGVjaWZpZWQKKyAgICAgKiBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXdTdHJlbmd0aCB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZQorICAgICAqICAgICAgICAgICAgICAgIG9mIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkgeworICAgIAljb2xsYXRvci5zZXRTdHJlbmd0aChuZXdTdHJlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gIFNldHRpbmcgdGhpcworICAgICAqIGRlY29tcG9zaXRpb24gcHJvcGVydHkgd2l0aCBDQU5PTklDQUxfREVDT01QT1NJVElPTiBhbGxvd3MgdGhlCisgICAgICogQ29sbGF0b3IgdG8gaGFuZGxlIHVuLW5vcm1hbGl6ZWQgdGV4dCBwcm9wZXJseSwgcHJvZHVjaW5nIHRoZQorICAgICAqIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQuIElmCisgICAgICogTk9fREVDT01QT1NJVElPTiBpcyBzZXQsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyAgICAgKiBpbnN1cmUgdGhhdCBhbGwgdGV4dCBpcyBhbHJlYWR5IGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlZm9yZQorICAgICAqIGEgY29tcGFyaXNvbiBvciBiZWZvcmUgZ2V0dGluZyBhIENvbGxhdGlvbktleS4gQWRqdXN0aW5nCisgICAgICogZGVjb21wb3NpdGlvbiBtb2RlIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYmV0d2VlbiBmYXN0ZXIgYW5kCisgICAgICogbW9yZSBjb21wbGV0ZSBjb2xsYXRpb24gYmVoYXZpb3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2luY2UgYSBncmVhdCBtYW55IG9mIHRoZSB3b3JsZCdzIGxhbmd1YWdlcyBkbyBub3QgcmVxdWlyZQorICAgICAqIHRleHQgbm9ybWFsaXphdGlvbiwgbW9zdCBsb2NhbGVzIHNldCBOT19ERUNPTVBPU0lUSU9OIGFzIHRoZQorICAgICAqIGRlZmF1bHQgZGVjb21wb3NpdGlvbiBtb2RlLjwvcD4KKyAgICAgKgorICAgICAqIFRoZSBkZWZhdWx0IGRlY29tcG9zaXRvbiBtb2RlIGZvciB0aGUgQ29sbGF0b3IgaXMKKyAgICAgKiBOT19ERUNPTVBPU0lUT04sIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlIGJ5IHRoZSBsb2NhbGUgdXNlZAorICAgICAqIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGdldERlY29tcG9zaXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgZGVjb21wb3NpdGlvbgorICAgICAqIG1vZGUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGRlY29tcG9zaXRpb24gdGhlIG5ldyBkZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHZhbGlkCisgICAgICogICAgICAgICAgICBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjb21wb3NpdGlvbihpbnQgZGVjb21wb3NpdGlvbikgeworICAgIAljb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKGRlY29tcG9zaXRpb24pOworICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgbG9jYWxlIGlzIGRldGVybWluZWQgYnkgamF2YS51dGlsLkxvY2FsZS5nZXREZWZhdWx0KCkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSAoZm9yIGV4YW1wbGUsIGVuX1VTKSBpZiBpdAorICAgICAqICAgICAgICAgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgdGhlIGRlZmF1bHQgVUNBIGNvbGxhdG9yCisgICAgICogICAgICAgICB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZSNnZXREZWZhdWx0KCkKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShMb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRvcihqYXZhLnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgIC8qKgorICAgICAqIEdldHMgdGhlIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHJldHVybiBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlIGlmIGl0IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgT3RoZXJ3aXNlIGlmIHRoZXJlIGlzIG5vIENvbGxhdG9yCisgICAgICogICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbG9jYWxlLCBhIGRlZmF1bHQgVUNBIGNvbGxhdG9yIHdpbGwKKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICAgICAqIEBzZWUgamF2YS51dGlsLlJlc291cmNlQnVuZGxlCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAJcmV0dXJuIGdldEluc3RhbmNlKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsCisgICAgICogICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAgICAgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKFVMb2NhbGUpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdG9yKGphdmEudGV4dC5Db2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgbG9jYWxlcywgYXMgTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgTm90ZSB0aGF0IExvY2FsZSBvYmplY3RzIGRvIG5vdCBzdXBwb3J0IFJGQyAzMDY2LgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBpbiB3aGljaCBjb2xsYXRvcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBUaGlzIGxpc3QgaW5jbHVkZXMgYW55IHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQsIGluIGFkZGl0aW9uIHRvCisgICAgICogdGhvc2UgdGhhdCBhcmUgaW5zdGFsbGVkIHdpdGggSUNVNEouCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgIAlyZXR1cm4gamF2YS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBVTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgVUxvY2FsZSBvYmplY3RzIHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgIAlMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAJVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAJCXVsb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgCX0KKyAgICAJcmV0dXJuIHVsb2NhbGVzOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHBvc3NpYmxlIGtleXdvcmRzIHRoYXQgYXJlIHJlbGV2YW50IHRvCisgICAgICogY29sbGF0aW9uLiBBdCB0aGlzIHBvaW50LCB0aGUgb25seSByZWNvZ25pemVkIGtleXdvcmQgZm9yIHRoaXMKKyAgICAgKiBzZXJ2aWNlIGlzICJjb2xsYXRpb24iLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdmFsaWQgY29sbGF0aW9uIGtleXdvcmRzLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRWYWx1ZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGtleXdvcmQsIHJldHVybiBhbiBhcnJheSBvZiBhbGwgdmFsdWVzIGZvcgorICAgICAqIHRoYXQga2V5d29yZCB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdXNlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIG9uZSBvZiB0aGUga2V5d29yZHMgcmV0dXJuZWQgYnkgZ2V0S2V5d29yZHMuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcga2V5d29yZCkgeworICAgIAlyZXR1cm4gbmV3IFN0cmluZ1swXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGlzIENvbGxhdG9yJ3MgY3VycmVudCBzdHJlbmd0aCBwcm9wZXJ0eS4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0cmVuZ3RoKCkgeworICAgICAgICByZXR1cm4gY29sbGF0b3IuZ2V0U3RyZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBHZXQgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBvZiB0aGlzIENvbGxhdG9yLiBEZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBkZXRlcm1pbmVzIGhvdyBVbmljb2RlIGNvbXBvc2VkIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGUgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlcyB0aGUgc291cmNlIHRleHQgU3RyaW5nIHRvIHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcgYWNjb3JkaW5nIHRvCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0IGlzCisgICAgICogICAgICAgICAgICBub3Qgb2YgdGhlIGNsYXNzIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgIAlyZXR1cm4gY29sbGF0b3IuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorCisgICAgLy8gcHVibGljIG90aGVyIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjb21wYXJpbmcgdGhlIGVxdWFsaXR5IG9mIHR3byB0ZXh0IFN0cmluZ3MgdXNpbmcKKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyB0byBiZSBjb21wYXJlZC4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgc3RyaW5nIHRvIGJlIGNvbXBhcmVkLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwgYWNjb3JkaW5nIHRvIHRoZSBjb2xsYXRpb24KKyAgICAgKiAgICAgICAgIHJ1bGVzLCBvdGhlcndpc2UgZmFsc2UuCisgICAgICogQHNlZSAjY29tcGFyZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICByZXR1cm4gKGNvbXBhcmUoc291cmNlLCB0YXJnZXQpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcworICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgIAlyZXR1cm4gY29sbGF0b3IuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVHJhbnNmb3JtcyB0aGUgU3RyaW5nIGludG8gYSBDb2xsYXRpb25LZXkgc3VpdGFibGUgZm9yIGVmZmljaWVudAorICAgICAqIHJlcGVhdGVkIGNvbXBhcmlzb24uICBUaGUgcmVzdWx0aW5nIGtleSBkZXBlbmRzIG9uIHRoZSBjb2xsYXRvcidzCisgICAgICogcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogPC9wPgorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0aW9uS2V5IGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzIENvbGxhdG9yJ3MKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBydWxlcy4gSWYgdGhlIHNvdXJjZSBTdHJpbmcgaXMgbnVsbCwgYSBudWxsCisgICAgICogICAgICAgICBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpIHsKKyAgICAJcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkoY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBjb2xsYXRvci50b1N0cmluZygpOworICAgIH0KKwkKKyAgIC8qKgorICAgICAqIENsb25lIHRoZSBjb2xsYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBjb2xsYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgdGhyb3dzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRvcigoamF2YS50ZXh0LkNvbGxhdG9yKWNvbGxhdG9yLmNsb25lKCkpOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBDb2xsYXRvciBhbmQgY29tcGFyZXMgdGhlIHNhbWUgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmVxdWFscygoKENvbGxhdG9yKXJocykuY29sbGF0b3IpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCQorICAgIC8qKgorICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmhhc2hDb2RlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3Yzc4ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSw5ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIERhdGVGb3JtYXQgaXMgYW4gYWJzdHJhY3QgY2xhc3MgZm9yIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzZXMgd2hpY2gKKyAqIGZvcm1hdHMgYW5kIHBhcnNlcyBkYXRlcyBvciB0aW1lIGluIGEgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgbWFubmVyLgorICogVGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzLCBzdWNoIGFzIFNpbXBsZURhdGVGb3JtYXQsIGFsbG93cyBmb3IKKyAqIGZvcm1hdHRpbmcgKGkuZS4sIGRhdGUgLT4gdGV4dCksIHBhcnNpbmcgKHRleHQgLT4gZGF0ZSksIGFuZAorICogbm9ybWFsaXphdGlvbi4gIFRoZSBkYXRlIGlzIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IG9yCisgKiBhcyB0aGUgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCwgMDA6MDA6MDAgR01ULgorICoKKyAqIDxwPkRhdGVGb3JtYXQgcHJvdmlkZXMgbWFueSBjbGFzcyBtZXRob2RzIGZvciBvYnRhaW5pbmcgZGVmYXVsdCBkYXRlL3RpbWUKKyAqIGZvcm1hdHRlcnMgYmFzZWQgb24gdGhlIGRlZmF1bHQgb3IgYSBnaXZlbiBsb2FjbGUgYW5kIGEgbnVtYmVyIG9mIGZvcm1hdHRpbmcKKyAqIHN0eWxlcy4gVGhlIGZvcm1hdHRpbmcgc3R5bGVzIGluY2x1ZGUgRlVMTCwgTE9ORywgTUVESVVNLCBhbmQgU0hPUlQuIE1vcmUKKyAqIGRldGFpbCBhbmQgZXhhbXBsZXMgb2YgdXNpbmcgdGhlc2Ugc3R5bGVzIGFyZSBwcm92aWRlZCBpbiB0aGUgbWV0aG9kCisgKiBkZXNjcmlwdGlvbnMuCisgKgorICogPHA+RGF0ZUZvcm1hdCBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBkYXRlcyBmb3IgYW55IGxvY2FsZS4KKyAqIFlvdXIgY29kZSBjYW4gYmUgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgbG9jYWxlIGNvbnZlbnRpb25zIGZvcgorICogbW9udGhzLCBkYXlzIG9mIHRoZSB3ZWVrLCBvciBldmVuIHRoZSBjYWxlbmRhciBmb3JtYXQ6IGx1bmFyIHZzLiBzb2xhci4KKyAqCisgKiA8cD5UbyBmb3JtYXQgYSBkYXRlIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlCisgKiBzdGF0aWMgZmFjdG9yeSBtZXRob2RzOgorICogPHByZT4KKyAqICBteVN0cmluZyA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KG15RGF0ZSk7CisgKiA8L3ByZT4KKyAqIDxwPklmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxwcmU+CisgKiAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgKiAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICBvdXRwdXQucHJpbnRsbihkZi5mb3JtYXQobXlEYXRlW2ldKSArICI7ICIpOworICogIH0KKyAqIDwvcHJlPgorICogPHA+VG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIGdldERhdGVJbnN0YW5jZSgpLgorICogPHByZT4KKyAqICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuRlJBTkNFKTsKKyAqIDwvcHJlPgorICogPHA+WW91IGNhbiB1c2UgYSBEYXRlRm9ybWF0IHRvIHBhcnNlIGFsc28uCisgKiA8cHJlPgorICogIG15RGF0ZSA9IGRmLnBhcnNlKG15U3RyaW5nKTsKKyAqIDwvcHJlPgorICogPHA+VXNlIGdldERhdGVJbnN0YW5jZSB0byBnZXQgdGhlIG5vcm1hbCBkYXRlIGZvcm1hdCBmb3IgdGhhdCBjb3VudHJ5LgorICogVGhlcmUgYXJlIG90aGVyIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgYXZhaWxhYmxlLgorICogVXNlIGdldFRpbWVJbnN0YW5jZSB0byBnZXQgdGhlIHRpbWUgZm9ybWF0IGZvciB0aGF0IGNvdW50cnkuCisgKiBVc2UgZ2V0RGF0ZVRpbWVJbnN0YW5jZSB0byBnZXQgYSBkYXRlIGFuZCB0aW1lIGZvcm1hdC4gWW91IGNhbiBwYXNzIGluIAorICogZGlmZmVyZW50IG9wdGlvbnMgdG8gdGhlc2UgZmFjdG9yeSBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGxlbmd0aCBvZiB0aGUKKyAqIHJlc3VsdDsgZnJvbSBTSE9SVCB0byBNRURJVU0gdG8gTE9ORyB0byBGVUxMLiBUaGUgZXhhY3QgcmVzdWx0IGRlcGVuZHMKKyAqIG9uIHRoZSBsb2NhbGUsIGJ1dCBnZW5lcmFsbHk6CisgKiA8dWw+PGxpPlNIT1JUIGlzIGNvbXBsZXRlbHkgbnVtZXJpYywgc3VjaCBhcyAxMi4xMy41MiBvciAzOjMwcG0KKyAqIDxsaT5NRURJVU0gaXMgbG9uZ2VyLCBzdWNoIGFzIEphbiAxMiwgMTk1MgorICogPGxpPkxPTkcgaXMgbG9uZ2VyLCBzdWNoIGFzIEphbnVhcnkgMTIsIDE5NTIgb3IgMzozMDozMnBtCisgKiA8bGk+RlVMTCBpcyBwcmV0dHkgY29tcGxldGVseSBzcGVjaWZpZWQsIHN1Y2ggYXMKKyAqIFR1ZXNkYXksIEFwcmlsIDEyLCAxOTUyIEFEIG9yIDM6MzA6NDJwbSBQU1QuCisgKiA8L3VsPgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyBzZXQgdGhlIHRpbWUgem9uZSBvbiB0aGUgZm9ybWF0IGlmIHlvdSB3aXNoLgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiAob3Igd2FudCB0byBnaXZlIHlvdXIgdXNlcnMgbW9yZSBjb250cm9sKSwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIERhdGVGb3JtYXQgeW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgU2ltcGxlRGF0ZUZvcm1hdC4gVGhpcyB3aWxsIHdvcmsgZm9yIHRoZSBtYWpvcml0eQorICogb2YgY291bnRyaWVzOyBqdXN0IHJlbWVtYmVyIHRvIHB1dCBpdCBpbiBhIHRyeSBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyB1c2UgZm9ybXMgb2YgdGhlIHBhcnNlIGFuZCBmb3JtYXQgbWV0aG9kcyB3aXRoCisgKiBQYXJzZVBvc2l0aW9uIGFuZCBGaWVsZFBvc2l0aW9uIHRvCisgKiBhbGxvdyB5b3UgdG8KKyAqIDx1bD48bGk+cHJvZ3Jlc3NpdmVseSBwYXJzZSB0aHJvdWdoIHBpZWNlcyBvZiBhIHN0cmluZy4KKyAqIDxsaT5hbGlnbiBhbnkgcGFydGljdWxhciBmaWVsZCwgb3IgZmluZCBvdXQgd2hlcmUgaXQgaXMgZm9yIHNlbGVjdGlvbgorICogb24gdGhlIHNjcmVlbi4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogRGF0ZSBmb3JtYXRzIGFyZSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUgCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQgCisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuIAorICoKKyAqIEBzZWUgICAgICAgICAgVUZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXQgZXh0ZW5kcyBGb3JtYXQgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgamF2YS50ZXh0LkRhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBEYXRlRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gZGVsZWdhdGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvciBzdWJjbGFzcyB1c2UuICBTdWJjbGFzc2VzIHdpbGwgZ2VuZXJhbGx5IG5vdAorICAgICAqIHdvcmsgY29ycmVjdGx5IHVubGVzcyB0aGV5IG1hbmlwdWxhdGUgdGhlIGRlbGVnYXRlLgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0KCkgeworICAgIAl0aGlzLmRhdGVGb3JtYXQgPSBqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdHJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0VSQX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd5JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFlFQVJfRklFTEQgPSAxOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ00nIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIX0ZJRUxEID0gMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdkJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBVEV9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEVfRklFTEQgPSAzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDI0LWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDIzOjU5ICsgMDE6MDAgcmVzdWx0cyBpbiAyNDo1OS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWTFfRklFTEQgPSA0OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0gnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMF9GSUVMRCBpcyB1c2VkIGZvciB0aGUgemVyby1iYXNlZCAyNC1ob3VyIGNsb2NrLgorICAgICAqIEZvciBleGFtcGxlLCAyMzo1OSArIDAxOjAwIHJlc3VsdHMgaW4gMDA6NTkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkwX0ZJRUxEID0gNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdtJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTlVURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFX0ZJRUxEID0gNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdzJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1NFQ09ORH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EX0ZJRUxEID0gNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdTJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTExJU0VDT05EfSBmaWVsZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEID0gODsKKworICAgIC8qKgorICAgICAqIEFsaWFzIGZvciBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EX0ZJRUxEID0gRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS30gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfRklFTEQgPSA5OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0QnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9ZRUFSX0ZJRUxEID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRicgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS19JTl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQgPSAxMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd3JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1dFRUtfT0ZfWUVBUn0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSX0ZJRUxEID0gMTI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnVycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX01PTlRIfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIX0ZJRUxEID0gMTM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnYScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNBTV9QTX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE1fRklFTEQgPSAxNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdoJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIxX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSBvbmUtYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAxMjozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMV9GSUVMRCA9IDE1OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUn0gZmllbGQuCisgICAgICogSE9VUjBfRklFTEQgaXMgdXNlZCBmb3IgdGhlIHplcm8tYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAwMDozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMF9GSUVMRCA9IDE2OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3onIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWk9ORV9PRkZTRVR9IGFuZAorICAgICAqIHtAbGluayBDYWxlbmRhciNEU1RfT0ZGU0VUfSBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfRklFTEQgPSAxNzsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBGb3JtYXQuCisgICAgICogRm9ybWF0cyBhIHRpbWUgb2JqZWN0IGludG8gYSB0aW1lIHN0cmluZy4gRXhhbXBsZXMgb2YgdGltZSBvYmplY3RzCisgICAgICogYXJlIGEgdGltZSB2YWx1ZSBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzIGFuZCBhIERhdGUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogbXVzdCBiZSBhIE51bWJlciBvciBhIERhdGUgb3IgYSBDYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBvYmosIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIENhbGVuZGFyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChDYWxlbmRhcilvYmosIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKERhdGUpb2JqLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQobmV3IERhdGUoKChOdW1iZXIpb2JqKS5sb25nVmFsdWUoKSksIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24gKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBmb3JtYXQgZ2l2ZW4gT2JqZWN0IGFzIGEgRGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGNhbCBhIENhbGVuZGFyIHNldCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSBmb3JtYXR0ZWQKKyAgICAgKiBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChjYWwuZ2V0VGltZSgpLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uKTsKKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgRGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZGF0ZSBhIERhdGUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KERhdGUgZGF0ZSwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5mb3JtYXQoZGF0ZSwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIERhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHRpbWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoRGF0ZSBkYXRlKSB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LmZvcm1hdChkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgQSBEYXRlLCBvciBudWxsIGlmIHRoZSBpbnB1dCBjb3VsZCBub3QgYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICBQYXJzZUV4Y2VwdGlvbiAgSWYgdGhlIGdpdmVuIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQucGFyc2UodGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcGFyc2UgcG9zaXRpb24uCisgICAgICogRm9yIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQKKyAgICAgKiBpbnRvIGEgQ2FsZW5kYXIgdGhhdCBpcyBlcXVpdmFsZW50IHRvIERhdGUoODM3MDM5OTI4MDQ2KS4gIFRoZQorICAgICAqIGNhbGxlciBzaG91bGQgY2xlYXIgdGhlIGNhbGVuZGFyIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLAorICAgICAqIHVubGVzcyBleGlzdGluZyBmaWVsZCBpbmZvcm1hdGlvbiBpcyB0byBiZSBrZXB0LgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBpbnRvIHdoaWNoIHBhcnNlZCBkYXRhIHdpbGwgYmUgc3RvcmVkLgorICAgICAqICAgICAgICAgICAgICBJbiBnZW5lcmFsLCB0aGlzIHNob3VsZCBiZSBjbGVhcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgbWV0aG9kLiAgSWYgdGhpcyBwYXJzZSBmYWlscywgdGhlIGNhbGVuZGFyIG1heSBzdGlsbAorICAgICAqICAgICAgICAgICAgICBoYXZlIGJlZW4gbW9kaWZpZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIERhdGUgcmVzdWx0ID0gZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBjYWwuc2V0VGltZShyZXN1bHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLiAgRm9yCisgICAgICogZXhhbXBsZSwgYSB0aW1lIHRleHQgIjA3LzEwLzk2IDQ6NSBQTSwgUERUIiB3aWxsIGJlIHBhcnNlZCBpbnRvIGEgRGF0ZQorICAgICAqIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuCisgICAgICoKKyAgICAgKiA8cD4gQnkgZGVmYXVsdCwgcGFyc2luZyBpcyBsZW5pZW50OiBJZiB0aGUgaW5wdXQgaXMgbm90IGluIHRoZSBmb3JtIHVzZWQKKyAgICAgKiBieSB0aGlzIG9iamVjdCdzIGZvcm1hdCBtZXRob2QgYnV0IGNhbiBzdGlsbCBiZSBwYXJzZWQgYXMgYSBkYXRlLCB0aGVuCisgICAgICogdGhlIHBhcnNlIHN1Y2NlZWRzLiAgQ2xpZW50cyBtYXkgaW5zaXN0IG9uIHN0cmljdCBhZGhlcmVuY2UgdG8gdGhlCisgICAgICogZm9ybWF0IGJ5IGNhbGxpbmcgc2V0TGVuaWVudChmYWxzZSkuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRMZW5pZW50KGJvb2xlYW4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBpbnRvIGFuIE9iamVjdC4gIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHNpbXBseQorICAgICAqIGNhbGxzIHBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBmdWxsIHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgbG9uZyBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkcgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIG1lZGl1bSBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FRElVTSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igc2hvcnQgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZGVmYXVsdCBzdHlsZSBwYXR0ZXJuLiAgSXRzIHZhbHVlIGlzIE1FRElVTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUID0gTUVESVVNOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShpbnQgc3R5bGUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShzdHlsZSwgYUxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShzdHlsZSwgYUxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBmb3JtYXR0aW5nIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlcworICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgYUxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZXMKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGFMb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGRlZmF1bHQgZGF0ZS90aW1lIGZvcm1hdHRlciB0aGF0IHVzZXMgdGhlIFNIT1JUIHN0eWxlIGZvciBib3RoIHRoZQorICAgICAqIGRhdGUgYW5kIHRoZSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdWxvY2FsZXNbaV0gPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdWxvY2FsZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoaXMgZGF0ZSBmb3JtYXQuICBJbml0aWFsbHksIHRoZSBkZWZhdWx0CisgICAgICogY2FsZW5kYXIgZm9yIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCBsb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FsZW5kYXIgdGhlIG5ldyBDYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoZSBkYXRlIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKENhbGVuZGFyIG5ld0NhbGVuZGFyKSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0Q2FsZW5kYXIobmV3Q2FsZW5kYXIuY2FsZW5kYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHJldHVybiB0aGUgY2FsZW5kYXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoZGF0ZUZvcm1hdC5nZXRDYWxlbmRhcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgbnVtYmVyIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gbmV3TnVtYmVyRm9ybWF0IHRoZSBnaXZlbiBuZXcgTnVtYmVyRm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQgbmV3TnVtYmVyRm9ybWF0KSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0TnVtYmVyRm9ybWF0KG5ld051bWJlckZvcm1hdC5udW1iZXJGb3JtYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBmb3JtYXR0ZXIgd2hpY2ggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyIHVzZXMgdG8KKyAgICAgKiBmb3JtYXQgYW5kIHBhcnNlIGEgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdChkYXRlRm9ybWF0LmdldE51bWJlckZvcm1hdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgZm9yIHRoZSBjYWxlbmRhciBvZiB0aGlzIERhdGVGb3JtYXQgb2JqZWN0LgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiBuZXcgdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgZGF0ZUZvcm1hdC5zZXRUaW1lWm9uZSh6b25lLnRpbWVab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2FsZW5kYXIgb2YgRGF0ZUZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmUoZGF0ZUZvcm1hdC5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBwYXJzaW5nIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBwYXJzaW5nLCB0aGUgcGFyc2VyIG1heSB1c2UgaGV1cmlzdGljcyB0byBpbnRlcnByZXQgaW5wdXRzIHRoYXQKKyAgICAgKiBkbyBub3QgcHJlY2lzZWx5IG1hdGNoIHRoaXMgb2JqZWN0J3MgZm9ybWF0LiAgV2l0aCBzdHJpY3QgcGFyc2luZywKKyAgICAgKiBpbnB1dHMgbXVzdCBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbGVuaWVudCB3aGVuIHRydWUsIHBhcnNpbmcgaXMgbGVuaWVudAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNzZXRMZW5pZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpIHsKKyAgICAgICAgZGF0ZUZvcm1hdC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuaXNMZW5pZW50KCk7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZUluc3RhbmNlKGRhdGVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXREYXRlSW5zdGFuY2UoZGF0ZVN0eWxlLCBsb2NhbGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0VGltZUluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0VGltZUluc3RhbmNlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBhbmQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldERhdGVUaW1lSW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgYW5kIHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXREYXRlVGltZUluc3RhbmNlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZShDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBNRURJVU0sIFNIT1JULCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIE1FRElVTSwgU0hPUlQsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgTUVESVVNLCBTSE9SVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVJbnN0YW5jZShkYXRlU3R5bGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0VGltZUluc3RhbmNlKHRpbWVTdHlsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LnRvU3RyaW5nKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjbG9uZSBvZiB0aGlzIERhdGVGb3JtYXQuCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KChqYXZhLnRleHQuRGF0ZUZvcm1hdClkYXRlRm9ybWF0LmNsb25lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIERhdGVGb3JtYXRTeW1ib2xzIGFuZCBoYXMgdGhlIHNhbWUgc3ltYm9scyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiByaHMgZXF1YWxzIHRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgYXJnMCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuZXF1YWxzKCgoRGF0ZUZvcm1hdClhcmcwKS5kYXRlRm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMzEwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBpcyBhIHB1YmxpYyBjbGFzcyBmb3IgZW5jYXBzdWxhdGluZworICogbG9jYWxpemFibGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSwgc3VjaCBhcyB0aGUgbmFtZXMgb2YgdGhlCisgKiBtb250aHMsIHRoZSBuYW1lcyBvZiB0aGUgZGF5cyBvZiB0aGUgd2VlaywgYW5kIHRoZSB0aW1lIHpvbmUgZGF0YS4KKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBib3RoIHVzZQorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IHRvIGVuY2Fwc3VsYXRlIHRoaXMgaW5mb3JtYXRpb24uCisgKgorICogPHA+CisgKiBUeXBpY2FsbHkgeW91IHNob3VsZG4ndCB1c2UgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGRpcmVjdGx5LgorICogUmF0aGVyLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIHRoZQorICogPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gY2xhc3MncyBmYWN0b3J5IG1ldGhvZHM6IDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sCisgKiA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvciA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPi4KKyAqIFRoZXNlIG1ldGhvZHMgYXV0b21hdGljYWxseSBjcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yCisgKiB0aGUgZm9ybWF0dGVyIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8uIEFmdGVyIHRoZQorICogZm9ybWF0dGVyIGlzIGNyZWF0ZWQsIHlvdSBtYXkgbW9kaWZ5IGl0cyBmb3JtYXQgcGF0dGVybiB1c2luZyB0aGUKKyAqIDxjb2RlPnNldFBhdHRlcm48L2NvZGU+IG1ldGhvZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGNyZWF0aW5nIGZvcm1hdHRlcnMgdXNpbmcgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMsCisgKiBzZWUge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogSWYgeW91IGRlY2lkZSB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggYSBzcGVjaWZpYworICogZm9ybWF0IHBhdHRlcm4gZm9yIGEgc3BlY2lmaWMgbG9jYWxlLCB5b3UgY2FuIGRvIHNvIHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChhUGF0dGVybiwgbmV3IERhdGVGb3JtYXRTeW1ib2xzKGFMb2NhbGUpKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdHMgYXJlIGNsb25hYmxlLiBXaGVuIHlvdSBvYnRhaW4KKyAqIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCwgZmVlbCBmcmVlIHRvIG1vZGlmeSB0aGUKKyAqIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEuIEZvciBpbnN0YW5jZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsb2NhbGl6ZWQKKyAqIGRhdGUtdGltZSBmb3JtYXQgcGF0dGVybiBjaGFyYWN0ZXJzIHdpdGggdGhlIG9uZXMgdGhhdCB5b3UgZmVlbCBlYXN5CisgKiB0byByZW1lbWJlci4gT3IgeW91IGNhbiBjaGFuZ2UgdGhlIHJlcHJlc2VudGF0aXZlIGNpdGllcworICogdG8geW91ciBmYXZvcml0ZSBvbmVzLgorICoKKyAqIDxwPgorICogTmV3IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBzdWJjbGFzc2VzIG1heSBiZSBhZGRlZCB0byBzdXBwb3J0CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGFkZGl0aW9uYWwgbG9jYWxlcy4KKworICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBDaGVuLUxpZWggSHVhbmcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMgZGZzOworICAgICAgICAKKyAgICAvKiogQGludGVybmFsICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scyBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLmRmcyA9IGRlbGVnYXRlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0IGJ5IGxvYWRpbmcgZm9ybWF0IGRhdGEgZnJvbQorICAgICAqIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHRocm93cyAgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIGlmIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scyhsb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgZXJhIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQUQiIGFuZCAiQkMiLgorICAgICAqIEByZXR1cm4gdGhlIGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEVyYXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcGFyYW0gbmV3RXJhcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVyYXMoU3RyaW5nW10gbmV3RXJhcykgeworICAgICAgICBkZnMuc2V0RXJhcyhuZXdFcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0TW9udGhzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld01vbnRocyB0aGUgbmV3IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9udGhzKFN0cmluZ1tdIG5ld01vbnRocykgeworICAgICAgICBkZnMuc2V0TW9udGhzKG5ld01vbnRocyk7CisgICAgfQorICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U2hvcnRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0U2hvcnRNb250aHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3U2hvcnRNb250aHMgdGhlIG5ldyBzaG9ydCBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0TW9udGhzKFN0cmluZ1tdIG5ld1Nob3J0TW9udGhzKSB7CisgICAgICAgIGRmcy5zZXRTaG9ydE1vbnRocyhuZXdTaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0V2Vla2RheXMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0V2Vla2RheXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdXZWVrZGF5cyB0aGUgbmV3IHdlZWtkYXkgc3RyaW5ncy4gVGhlIGFycmF5IHNob3VsZAorICAgICAqIGJlIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0V2Vla2RheXMoU3RyaW5nW10gbmV3V2Vla2RheXMpIHsKKyAgICAgICAgZGZzLnNldFdlZWtkYXlzKG5ld1dlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdTaG9ydFdlZWtkYXlzIHRoZSBuZXcgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBUaGUgYXJyYXkgc2hvdWxkCisgICAgICogYmUgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydFdlZWtkYXlzKFN0cmluZ1tdIG5ld1Nob3J0V2Vla2RheXMpIHsKKyAgICAgICAgZGZzLnNldFNob3J0V2Vla2RheXMobmV3U2hvcnRXZWVrZGF5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0QW1QbVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFtcG0gc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBTSIgYW5kICJQTSIuCisgICAgICogQHBhcmFtIG5ld0FtcG1zIHRoZSBuZXcgYW1wbSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFtUG1TdHJpbmdzKFN0cmluZ1tdIG5ld0FtcG1zKSB7CisgICAgICAgIGRmcy5zZXRBbVBtU3RyaW5ncyhuZXdBbXBtcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdW10gZ2V0Wm9uZVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHBhcmFtIG5ld1pvbmVTdHJpbmdzIHRoZSBuZXcgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRab25lU3RyaW5ncyhTdHJpbmdbXVtdIG5ld1pvbmVTdHJpbmdzKSB7CisgICAgICAgIGRmcy5zZXRab25lU3RyaW5ncyhuZXdab25lU3RyaW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbFBhdHRlcm5DaGFycyB0aGUgbmV3IGxvY2FsaXplZCBkYXRlLXRpbWUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoU3RyaW5nIG5ld0xvY2FsUGF0dGVybkNoYXJzKSB7CisgICAgICAgIGRmcy5zZXRMb2NhbFBhdHRlcm5DaGFycyhuZXdMb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkZnMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0U3ltYm9scygoamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKWRmcy5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBEYXRlRm9ybWF0U3ltYm9scyBhbmQgaGFzIHRoZSBzYW1lIHN5bWJvbHMgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZGZzLmVxdWFscygoKERhdGVGb3JtYXRTeW1ib2xzKXJocykuZGZzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBkZnMuaGFzaENvZGUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE0NDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpAQCAtMCwwICsxLDkwMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IHRoYXQgZm9ybWF0cyBkZWNpbWFsIG51bWJlcnMuCisgKgorICogPHA+VG8gb2J0YWluIGEge0BsaW5rIE51bWJlckZvcm1hdH0gZm9yIGEgc3BlY2lmaWMgbG9jYWxlIChpbmNsdWRpbmcgdGhlCisgKiBkZWZhdWx0IGxvY2FsZSkgY2FsbCBvbmUgb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPidzIGZhY3RvcnkgbWV0aG9kcyBzdWNoCisgKiBhcyB7QGxpbmsgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlfS4gRG8gbm90IGNhbGwgdGhlIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBjb25zdHJ1Y3RvcnMgZGlyZWN0bHksIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHNpbmNlIHRoZQorICoge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzIG1heSByZXR1cm4gc3ViY2xhc3NlcyBvdGhlciB0aGFuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gSWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZSBmb3JtYXQgb2JqZWN0LCBkbworICogc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAqIGlmIChmIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICogICAgICgoRGVjaW1hbEZvcm1hdCkgZikuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD48c3Ryb25nPkV4YW1wbGUgVXNhZ2U8L3N0cm9uZz4KKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPHN0cm9uZz4vLyBQcmludCBvdXQgYSBudW1iZXIgdXNpbmcgdGhlIGxvY2FsaXplZCBudW1iZXIsIGN1cnJlbmN5LAorICogLy8gYW5kIHBlcmNlbnQgZm9ybWF0IGZvciBlYWNoIGxvY2FsZTwvc3Ryb25nPgorICogTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgKiBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNC41NjsKKyAqIE51bWJlckZvcm1hdCBmb3JtYXQ7CisgKiBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGT1JNQVQiKTsKKyAqICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAqICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmxlbmd0aCgpID09IDApIHsKKyAqICAgICAgICAgICAgLy8gU2tpcCBsYW5ndWFnZS1vbmx5IGxvY2FsZXMKKyAqICAgICAgICAgICAgY29udGludWU7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICogICAgICAgICBzd2l0Y2ggKGopIHsKKyAqICAgICAgICAgY2FzZSAwOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgY2FzZSAxOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICBkZWZhdWx0OgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3JtYXQgaXMgYSBEZWNpbWFsRm9ybWF0CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6ICIgKyAoKERlY2ltYWxGb3JtYXQpIGZvcm1hdCkudG9QYXR0ZXJuKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIgKyBmb3JtLmZvcm1hdChteU51bWJlcikpOworICogICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIC0+ICIgKyBmb3JtYXQucGFyc2UoZm9ybS5mb3JtYXQobXlOdW1iZXIpKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgfQorICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8aDQ+UGF0dGVybnM8L2g0PgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY29uc2lzdHMgb2YgYSA8ZW0+cGF0dGVybjwvZW0+IGFuZCBhIHNldCBvZgorICogPGVtPnN5bWJvbHM8L2VtPi4gIFRoZSBwYXR0ZXJuIG1heSBiZSBzZXQgZGlyZWN0bHkgdXNpbmcKKyAqIHtAbGluayAjYXBwbHlQYXR0ZXJufSwgb3IgaW5kaXJlY3RseSB1c2luZyBvdGhlciBBUEkgbWV0aG9kcyB3aGljaAorICogbWFuaXB1bGF0ZSBhc3BlY3RzIG9mIHRoZSBwYXR0ZXJuLCBzdWNoIGFzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyCisgKiBkaWdpdHMuICBUaGUgc3ltYm9scyBhcmUgc3RvcmVkIGluIGEge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfQorICogb2JqZWN0LiAgV2hlbiB1c2luZyB0aGUge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzLCB0aGUKKyAqIHBhdHRlcm4gYW5kIHN5bWJvbHMgYXJlIHJlYWQgZnJvbSBJQ1UncyBsb2NhbGUgZGF0YS4KKyAqIAorICogPGg0PlNwZWNpYWwgUGF0dGVybiBDaGFyYWN0ZXJzPC9oND4KKyAqCisgKiA8cD5NYW55IGNoYXJhY3RlcnMgaW4gYSBwYXR0ZXJuIGFyZSB0YWtlbiBsaXRlcmFsbHk7IHRoZXkgYXJlIG1hdGNoZWQgZHVyaW5nCisgKiBwYXJzaW5nIGFuZCBvdXRwdXQgdW5jaGFuZ2VkIGR1cmluZyBmb3JtYXR0aW5nLiAgU3BlY2lhbCBjaGFyYWN0ZXJzLCBvbiB0aGUKKyAqIG90aGVyIGhhbmQsIHN0YW5kIGZvciBvdGhlciBjaGFyYWN0ZXJzLCBzdHJpbmdzLCBvciBjbGFzc2VzIG9mIGNoYXJhY3RlcnMuCisgKiBGb3IgZXhhbXBsZSwgdGhlICcjJyBjaGFyYWN0ZXIgaXMgcmVwbGFjZWQgYnkgYSBsb2NhbGl6ZWQgZGlnaXQuICBPZnRlbiB0aGUKKyAqIHJlcGxhY2VtZW50IGNoYXJhY3RlciBpcyB0aGUgc2FtZSBhcyB0aGUgcGF0dGVybiBjaGFyYWN0ZXI7IGluIHRoZSBVLlMuIGxvY2FsZSwKKyAqIHRoZSAnLCcgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5ICcsJy4gIEhvd2V2ZXIsIHRoZSByZXBsYWNlbWVudCBpcworICogc3RpbGwgaGFwcGVuaW5nLCBhbmQgaWYgdGhlIHN5bWJvbHMgYXJlIG1vZGlmaWVkLCB0aGUgZ3JvdXBpbmcgY2hhcmFjdGVyCisgKiBjaGFuZ2VzLiAgU29tZSBzcGVjaWFsIGNoYXJhY3RlcnMgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgZm9ybWF0dGVyIGJ5CisgKiB0aGVpciBwcmVzZW5jZTsgZm9yIGV4YW1wbGUsIGlmIHRoZSBwZXJjZW50IGNoYXJhY3RlciBpcyBzZWVuLCB0aGVuIHRoZQorICogdmFsdWUgaXMgbXVsdGlwbGllZCBieSAxMDAgYmVmb3JlIGJlaW5nIGRpc3BsYXllZC4KKyAqCisgKiA8cD5UbyBpbnNlcnQgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBhIHBhdHRlcm4gYXMgYSBsaXRlcmFsLCB0aGF0IGlzLCB3aXRob3V0CisgKiBhbnkgc3BlY2lhbCBtZWFuaW5nLCB0aGUgY2hhcmFjdGVyIG11c3QgYmUgcXVvdGVkLiAgVGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucyB0bworICogdGhpcyB3aGljaCBhcmUgbm90ZWQgYmVsb3cuCisgKgorICogPHA+VGhlIGNoYXJhY3RlcnMgbGlzdGVkIGhlcmUgYXJlIHVzZWQgaW4gbm9uLWxvY2FsaXplZCBwYXR0ZXJucy4gIExvY2FsaXplZAorICogcGF0dGVybnMgdXNlIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgdGFrZW4gZnJvbSB0aGlzIGZvcm1hdHRlcidzCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdCBpbnN0ZWFkLCBhbmQgdGhlc2UgY2hhcmFjdGVycyBsb3NlCisgKiB0aGVpciBzcGVjaWFsIHN0YXR1cy4gIFR3byBleGNlcHRpb25zIGFyZSB0aGUgY3VycmVuY3kgc2lnbiBhbmQgcXVvdGUsIHdoaWNoCisgKiBhcmUgbm90IGxvY2FsaXplZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTAgc3VtbWFyeT0iQ2hhcnQgc2hvd2luZyBzeW1ib2wsCisgKiAgbG9jYXRpb24sIGxvY2FsaXplZCwgYW5kIG1lYW5pbmcuIj4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlN5bWJvbAorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2F0aW9uCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TG9jYWxpemVkPworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1lYW5pbmcKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPjA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGlnaXQKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjEtOTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgICcxJyB0aHJvdWdoICc5JyBpbmRpY2F0ZSByb3VuZGluZy4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPkA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ObworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFNpZ25pZmljYW50IGRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4jPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0LCB6ZXJvIHNob3dzIGFzIGFic2VudAorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LjwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EZWNpbWFsIHNlcGFyYXRvciBvciBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+LTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NaW51cyBzaWduCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4sPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkdyb3VwaW5nIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+RTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5TZXBhcmF0ZXMgbWFudGlzc2EgYW5kIGV4cG9uZW50IGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KzwvY29kZT4KKyAqICAgICA8dGQ+RXhwb25lbnQKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUHJlZml4IHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+OzwvY29kZT4KKyAqICAgICA8dGQ+U3VicGF0dGVybiBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JTwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TXVsdGlwbHkgYnkgMTAwIGFuZCBzaG93IGFzIHBlcmNlbnRhZ2UKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPiYjOTI7dTIwMzA8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMDAgYW5kIHNob3cgYXMgcGVyIG1pbGxlCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4mIzE2NDs8L2NvZGU+ICg8Y29kZT4mIzkyO3UwMEE0PC9jb2RlPikKKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5DdXJyZW5jeSBzaWduLCByZXBsYWNlZCBieSBjdXJyZW5jeSBzeW1ib2wuICBJZgorICogICAgICAgICBkb3VibGVkLCByZXBsYWNlZCBieSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHN5bWJvbC4KKyAqICAgICAgICAgSWYgcHJlc2VudCBpbiBhIHBhdHRlcm4sIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICAgICAgICBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+JzwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5Vc2VkIHRvIHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHByZWZpeCBvciBzdWZmaXgsCisgKiAgICAgICAgIGZvciBleGFtcGxlLCA8Y29kZT4iJyMnIyI8L2NvZGU+IGZvcm1hdHMgMTIzIHRvCisgKiAgICAgICAgIDxjb2RlPiIjMTIzIjwvY29kZT4uICBUbyBjcmVhdGUgYSBzaW5nbGUgcXVvdGUKKyAqICAgICAgICAgaXRzZWxmLCB1c2UgdHdvIGluIGEgcm93OiA8Y29kZT4iIyBvJydjbG9jayI8L2NvZGU+LgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KjwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeCBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBQYWQgZXNjYXBlLCBwcmVjZWRlcyBwYWQgY2hhcmFjdGVyCisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGF0dGVybiBjb250YWlucyBhIHBvc3RpdmUgYW5kIG5lZ2F0aXZlCisgKiBzdWJwYXR0ZXJuLCBmb3IgZXhhbXBsZSwgIiMsIyMwLjAwOygjLCMjMC4wMCkiLiAgRWFjaCBzdWJwYXR0ZXJuIGhhcyBhCisgKiBwcmVmaXgsIGEgbnVtZXJpYyBwYXJ0LCBhbmQgYSBzdWZmaXguICBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4gaXMgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduIHByZWZpeGVkIHRvIHRoZQorICogcG9zaXRpdmUgc3VicGF0dGVybi4gVGhhdCBpcywgIjAuMDAiIGFsb25lIGlzIGVxdWl2YWxlbnQgdG8gIjAuMDA7LTAuMDAiLiAgSWYgdGhlcmUKKyAqIGlzIGFuIGV4cGxpY2l0IG5lZ2F0aXZlIHN1YnBhdHRlcm4sIGl0IHNlcnZlcyBvbmx5IHRvIHNwZWNpZnkgdGhlIG5lZ2F0aXZlCisgKiBwcmVmaXggYW5kIHN1ZmZpeDsgdGhlIG51bWJlciBvZiBkaWdpdHMsIG1pbmltYWwgZGlnaXRzLCBhbmQgb3RoZXIKKyAqIGNoYXJhY3RlcmlzdGljcyBhcmUgaWdub3JlZCBpbiB0aGUgbmVnYXRpdmUgc3VicGF0dGVybi4gVGhhdCBtZWFucyB0aGF0CisgKiAiIywjIzAuMCM7KCMpIiBoYXMgcHJlY2lzZWx5IHRoZSBzYW1lIHJlc3VsdCBhcyAiIywjIzAuMCM7KCMsIyMwLjAjKSIuCisgKgorICogPHA+VGhlIHByZWZpeGVzLCBzdWZmaXhlcywgYW5kIHZhcmlvdXMgc3ltYm9scyB1c2VkIGZvciBpbmZpbml0eSwgZGlnaXRzLAorICogdGhvdXNhbmRzIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycywgZXRjLiBtYXkgYmUgc2V0IHRvIGFyYml0cmFyeQorICogdmFsdWVzLCBhbmQgdGhleSB3aWxsIGFwcGVhciBwcm9wZXJseSBkdXJpbmcgZm9ybWF0dGluZy4gIEhvd2V2ZXIsIGNhcmUgbXVzdAorICogYmUgdGFrZW4gdGhhdCB0aGUgc3ltYm9scyBhbmQgc3RyaW5ncyBkbyBub3QgY29uZmxpY3QsIG9yIHBhcnNpbmcgd2lsbCBiZQorICogdW5yZWxpYWJsZS4gIEZvciBleGFtcGxlLCBlaXRoZXIgdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlcyBvciB0aGUKKyAqIHN1ZmZpeGVzIG11c3QgYmUgZGlzdGluY3QgZm9yIHtAbGluayAjcGFyc2V9IHRvIGJlIGFibGUKKyAqIHRvIGRpc3Rpbmd1aXNoIHBvc2l0aXZlIGZyb20gbmVnYXRpdmUgdmFsdWVzLiAgQW5vdGhlciBleGFtcGxlIGlzIHRoYXQgdGhlCisgKiBkZWNpbWFsIHNlcGFyYXRvciBhbmQgdGhvdXNhbmRzIHNlcGFyYXRvciBzaG91bGQgYmUgZGlzdGluY3QgY2hhcmFjdGVycywgb3IKKyAqIHBhcnNpbmcgd2lsbCBiZSBpbXBvc3NpYmxlLgorICoKKyAqIDxwPlRoZSA8ZW0+Z3JvdXBpbmcgc2VwYXJhdG9yPC9lbT4gaXMgYSBjaGFyYWN0ZXIgdGhhdCBzZXBhcmF0ZXMgY2x1c3RlcnMgb2YKKyAqIGludGVnZXIgZGlnaXRzIHRvIG1ha2UgbGFyZ2UgbnVtYmVycyBtb3JlIGxlZ2libGUuICBJdCBjb21tb25seSB1c2VkIGZvcgorICogdGhvdXNhbmRzLCBidXQgaW4gc29tZSBsb2NhbGVzIGl0IHNlcGFyYXRlcyB0ZW4tdGhvdXNhbmRzLiAgVGhlIDxlbT5ncm91cGluZworICogc2l6ZTwvZW0+IGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHN1Y2ggYXMgMworICogZm9yICIxMDAsMDAwLDAwMCIgb3IgNCBmb3IgIjEgMDAwMCAwMDAwIi4gVGhlcmUgYXJlIGFjdHVhbGx5IHR3byBkaWZmZXJlbnQKKyAqIGdyb3VwaW5nIHNpemVzOiBPbmUgdXNlZCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGludGVnZXIgZGlnaXRzLCB0aGUKKyAqIDxlbT5wcmltYXJ5IGdyb3VwaW5nIHNpemU8L2VtPiwgYW5kIG9uZSB1c2VkIGZvciBhbGwgb3RoZXJzLCB0aGUKKyAqIDxlbT5zZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZTwvZW0+LiAgSW4gbW9zdCBsb2NhbGVzIHRoZXNlIGFyZSB0aGUgc2FtZSwgYnV0CisgKiBzb21ldGltZXMgdGhleSBhcmUgZGlmZmVyZW50LiBGb3IgZXhhbXBsZSwgaWYgdGhlIHByaW1hcnkgZ3JvdXBpbmcgaW50ZXJ2YWwKKyAqIGlzIDMsIGFuZCB0aGUgc2Vjb25kYXJ5IGlzIDIsIHRoZW4gdGhpcyBjb3JyZXNwb25kcyB0byB0aGUgcGF0dGVybgorICogIiMsIyMsIyMwIiwgYW5kIHRoZSBudW1iZXIgMTIzNDU2Nzg5IGlzIGZvcm1hdHRlZCBhcyAiMTIsMzQsNTYsNzg5Ii4gIElmIGEKKyAqIHBhdHRlcm4gY29udGFpbnMgbXVsdGlwbGUgZ3JvdXBpbmcgc2VwYXJhdG9ycywgdGhlIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QKKyAqIG9uZSBhbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciBkZWZpbmVzIHRoZSBwcmltYXJ5IGdyb3VwaW5nIHNpemUsIGFuZCB0aGUKKyAqIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QgdHdvIGRlZmluZXMgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiBBbGwgb3RoZXJzCisgKiBhcmUgaWdub3JlZCwgc28gIiMsIyMsIyMjLCMjIyMiID09ICIjIyMsIyMjLCMjIyMiID09ICIjIywjLCMjIywjIyMjIi4KKyAqCisgKiA8cD5JbGxlZ2FsIHBhdHRlcm5zLCBzdWNoIGFzICIjLiMuIyIgb3IgIiMuIyMjLCMjIyIsIHdpbGwgY2F1c2UKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIHRocm93IGFuIHtAbGluayBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb259CisgKiB3aXRoIGEgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgcHJvYmxlbS4KKyAqCisgKiA8aDQ+UGF0dGVybiBCTkY8L2g0PgorICoKKyAqIDxwcmU+CisgKiBwYXR0ZXJuICAgIDo9IHN1YnBhdHRlcm4gKCc7JyBzdWJwYXR0ZXJuKT8KKyAqIHN1YnBhdHRlcm4gOj0gcHJlZml4PyBudW1iZXIgZXhwb25lbnQ/IHN1ZmZpeD8KKyAqIG51bWJlciAgICAgOj0gKGludGVnZXIgKCcuJyBmcmFjdGlvbik/KSB8IHNpZ0RpZ2l0cworICogcHJlZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBzdWZmaXggICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gc3BlY2lhbENoYXJhY3RlcnMKKyAqIGludGVnZXIgICAgOj0gJyMnKiAnMCcqICcwJworICogZnJhY3Rpb24gICA6PSAnMCcqICcjJyoKKyAqIHNpZ0RpZ2l0cyAgOj0gJyMnKiAnQCcgJ0AnKiAnIycqCisgKiBleHBvbmVudCAgIDo9ICdFJyAnKyc/ICcwJyogJzAnCisgKiBwYWRTcGVjICAgIDo9ICcqJyBwYWRDaGFyCisgKiBwYWRDaGFyICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gcXVvdGUKKyAqICYjMzI7CisgKiBOb3RhdGlvbjoKKyAqICAgWCogICAgICAgMCBvciBtb3JlIGluc3RhbmNlcyBvZiBYCisgKiAgIFg/ICAgICAgIDAgb3IgMSBpbnN0YW5jZXMgb2YgWAorICogICBYfFkgICAgICBlaXRoZXIgWCBvciBZCisgKiAgIEMuLkQgICAgIGFueSBjaGFyYWN0ZXIgZnJvbSBDIHVwIHRvIEQsIGluY2x1c2l2ZQorICogICBTLVQgICAgICBjaGFyYWN0ZXJzIGluIFMsIGV4Y2VwdCB0aG9zZSBpbiBUCisgKiA8L3ByZT4KKyAqIFRoZSBmaXJzdCBzdWJwYXR0ZXJuIGlzIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBUaGUgc2Vjb25kIChvcHRpb25hbCkKKyAqIHN1YnBhdHRlcm4gaXMgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgKiAKKyAqIDxwPk5vdCBpbmRpY2F0ZWQgaW4gdGhlIEJORiBzeW50YXggYWJvdmU6CisgKgorICogPHVsPjxsaT5UaGUgZ3JvdXBpbmcgc2VwYXJhdG9yICcsJyBjYW4gb2NjdXIgaW5zaWRlIHRoZSBpbnRlZ2VyIGFuZAorICogc2lnRGlnaXRzIGVsZW1lbnRzLCBiZXR3ZWVuIGFueSB0d28gcGF0dGVybiBjaGFyYWN0ZXJzIG9mIHRoYXQKKyAqIGVsZW1lbnQsIGFzIGxvbmcgYXMgdGhlIGludGVnZXIgb3Igc2lnRGlnaXRzIGVsZW1lbnQgaXMgbm90CisgKiBmb2xsb3dlZCBieSB0aGUgZXhwb25lbnQgZWxlbWVudC4KKyAqCisgKiA8bGk+PGZvbnQgY29sb3I9cmVkIGZhY2U9aGVsdmV0aWNhPjxzdHJvbmc+TkVXPC9zdHJvbmc+PC9mb250PgorICogICAgIFR3byBncm91cGluZyBpbnRlcnZhbHMgYXJlIHJlY29nbml6ZWQ6IFRoYXQgYmV0d2VlbiB0aGUKKyAqICAgICBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3QgZ3JvdXBpbmcgc3ltYm9sLCBhbmQgdGhhdAorICogICAgIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgZ3JvdXBpbmcgc3ltYm9scy4gVGhlc2UKKyAqICAgICBpbnRlcnZhbHMgYXJlIGlkZW50aWNhbCBpbiBtb3N0IGxvY2FsZXMsIGJ1dCBpbiBzb21lCisgKiAgICAgbG9jYWxlcyB0aGV5IGRpZmZlci4gRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiAgICAgJnF1b3Q7IywjIywjIyMmcXVvdDsgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBhcworICogICAgICZxdW90OzEyLDM0LDU2LDc4OSZxdW90Oy48L2xpPgorICogCisgKiA8bGk+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBUaGUgcGFkIHNwZWNpZmllciA8Y29kZT5wYWRTcGVjPC9jb2RlPiBtYXkgYXBwZWFyIGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIGFmdGVyIHRoZSBzdWZmaXgsIG9yIG5vdCBhdCBhbGwuCisgKgorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogSW4gcGxhY2Ugb2YgJzAnLCB0aGUgZGlnaXRzICcxJyB0aHJvdWdoICc5JyBtYXkgYmUgdXNlZCB0bworICogaW5kaWNhdGUgYSByb3VuZGluZyBpbmNyZW1lbnQuCisgKiA8L3VsPgorICoKKyAqIDxoND5QYXJzaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBwYXJzZXMgYWxsIFVuaWNvZGUgY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudAorICogZGVjaW1hbCBkaWdpdHMsIGFzIGRlZmluZWQgYnkge0BsaW5rIFVDaGFyYWN0ZXIjZGlnaXR9LiAgSW4gYWRkaXRpb24sCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBhbHNvIHJlY29nbml6ZXMgYXMgZGlnaXRzIHRoZSB0ZW4gY29uc2VjdXRpdmUKKyAqIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCB0aGUgbG9jYWxpemVkIHplcm8gZGlnaXQgZGVmaW5lZCBpbiB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgRHVyaW5nIGZvcm1hdHRpbmcsIHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfS1iYXNlZCBkaWdpdHMgYXJlIG91dHB1dC4KKyAqCisgKiA8cD5EdXJpbmcgcGFyc2luZywgZ3JvdXBpbmcgc2VwYXJhdG9ycyBhcmUgaWdub3JlZC4KKyAqCisgKiA8cD5JZiB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IGZhaWxzIHRvIHBhcnNlCisgKiBhIHN0cmluZywgaXQgcmV0dXJucyA8Y29kZT5udWxsPC9jb2RlPiBhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbgorICogdW5jaGFuZ2VkLiAgVGhlIGNvbnZlbmllbmNlIG1ldGhvZCB7QGxpbmsgI3BhcnNlKFN0cmluZyl9CisgKiBpbmRpY2F0ZXMgcGFyc2UgZmFpbHVyZSBieSB0aHJvd2luZyBhIHtAbGluayBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb259LgorICoKKyAqIDxoND5Gb3JtYXR0aW5nPC9oND4KKyAqCisgKiA8cD5Gb3JtYXR0aW5nIGlzIGd1aWRlZCBieSBzZXZlcmFsIHBhcmFtZXRlcnMsIGFsbCBvZiB3aGljaCBjYW4gYmUKKyAqIHNwZWNpZmllZCBlaXRoZXIgdXNpbmcgYSBwYXR0ZXJuIG9yIHVzaW5nIHRoZSBBUEkuICBUaGUgZm9sbG93aW5nCisgKiBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGZvcm1hdHMgdGhhdCBkbyBub3QgdXNlIDxhIGhyZWY9IiNzY2kiPnNjaWVudGlmaWMKKyAqIG5vdGF0aW9uPC9hPiBvciA8YSBocmVmPSIjc2lnZGlnIj5zaWduaWZpY2FudCBkaWdpdHM8L2E+LgorICoKKyAqIDx1bD48bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgaW50ZWdlciBkaWdpdHMgZXhjZWVkcyB0aGUKKyAqIDxlbT5tYXhpbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gb25seSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgc2hvd24uICBGb3IgZXhhbXBsZSwgMTk5NyBpcyBmb3JtYXR0ZWQgYXMgIjk3IiBpZiB0aGUKKyAqIG1heGltdW0gaW50ZWdlciBkaWdpdHMgaXMgc2V0IHRvIDIuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gbGVhZGluZyB6ZXJvcyBhcmUgYWRkZWQuICBGb3IKKyAqIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICIwMTk5NyIgaWYgdGhlIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAqIGlzIHNldCB0byA1LgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBmcmFjdGlvbiBkaWdpdHMgZXhjZWVkcyB0aGUgPGVtPm1heGltdW0KKyAqIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIGhhbGYtZXZlbiByb3VuZGluZyBpdCBwZXJmb3JtZWQgdG8gdGhlCisgKiBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTIiCisgKiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgMi4gIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQKKyAqIGJ5IHNwZWNpZnlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgYW5kIGEgcm91bmRpbmcgbW9kZS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIHRyYWlsaW5nIHplcm9zIGFyZSBhZGRlZC4KKyAqIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTI1MCIgaWYgdGhlIG1pbWltdW0gZnJhY3Rpb24KKyAqIGRpZ2l0cyBpcyBzZXQgdG8gNC4KKyAqCisgKiA8bGk+VHJhaWxpbmcgZnJhY3Rpb25hbCB6ZXJvcyBhcmUgbm90IGRpc3BsYXllZCBpZiB0aGV5IG9jY3VyCisgKiA8ZW0+ajwvZW0+IHBvc2l0aW9ucyBhZnRlciB0aGUgZGVjaW1hbCwgd2hlcmUgPGVtPmo8L2VtPiBpcyBsZXNzCisgKiB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gRm9yIGV4YW1wbGUsIDAuMTAwMDQgaXMKKyAqIGZvcm1hdHRlZCBhcyAiMC4xIiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgZm91ciBvciBsZXNzLgorICogPC91bD4KKyAqIAorICogPHA+PHN0cm9uZz5TcGVjaWFsIFZhbHVlczwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPk5hTjwvY29kZT4gaXMgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyLCB0eXBpY2FsbHkKKyAqIDxjb2RlPiYjOTI7dUZGRkQ8L2NvZGU+LiAgVGhpcyBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgVGhpcyBpcyB0aGUgb25seSB2YWx1ZSBmb3Igd2hpY2gKKyAqIHRoZSBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIG5vdCB1c2VkLgorICoKKyAqIDxwPkluZmluaXR5IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3UyMjFFPC9jb2RlPiwgd2l0aCB0aGUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzCisgKiBhcHBsaWVkLiAgVGhlIGluZmluaXR5IGNoYXJhY3RlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QuCisgKgorICogPGEgbmFtZT0ic2NpIj48aDQ+U2NpZW50aWZpYyBOb3RhdGlvbjwvaDQ+PC9hPgorICoKKyAqIDxwPk51bWJlcnMgaW4gc2NpZW50aWZpYyBub3RhdGlvbiBhcmUgZXhwcmVzc2VkIGFzIHRoZSBwcm9kdWN0IG9mIGEgbWFudGlzc2EKKyAqIGFuZCBhIHBvd2VyIG9mIHRlbiwgZm9yIGV4YW1wbGUsIDEyMzQgY2FuIGJlIGV4cHJlc3NlZCBhcyAxLjIzNCB4IDEwPHN1cD4zPC9zdXA+LiBUaGUKKyAqIG1hbnRpc3NhIGlzIHR5cGljYWxseSBpbiB0aGUgaGFsZi1vcGVuIGludGVydmFsIFsxLjAsIDEwLjApIG9yIHNvbWV0aW1lcyBbMC4wLCAxLjApLAorICogYnV0IGl0IG5lZWQgbm90IGJlLiAgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgYXJiaXRyYXJ5IG1hbnRpc3Nhcy4KKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNhbiBiZSBpbnN0cnVjdGVkIHRvIHVzZSBzY2llbnRpZmljCisgKiBub3RhdGlvbiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybi4gIEluIGEgcGF0dGVybiwgdGhlIGV4cG9uZW50CisgKiBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZGlnaXQgY2hhcmFjdGVycyBpbmRpY2F0ZXMKKyAqIHNjaWVudGlmaWMgbm90YXRpb24uICBFeGFtcGxlOiAiMC4jIyNFMCIgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQgYXMKKyAqICIxLjIzNEUzIi4KKyAqCisgKiA8dWw+CisgKiA8bGk+VGhlIG51bWJlciBvZiBkaWdpdCBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBleHBvbmVudCBjaGFyYWN0ZXIgZ2l2ZXMgdGhlCisgKiBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0IGNvdW50LiAgVGhlcmUgaXMgbm8gbWF4aW11bS4gIE5lZ2F0aXZlIGV4cG9uZW50cyBhcmUKKyAqIGZvcm1hdHRlZCB1c2luZyB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24sIDxlbT5ub3Q8L2VtPiB0aGUgcHJlZml4IGFuZCBzdWZmaXgKKyAqIGZyb20gdGhlIHBhdHRlcm4uICBUaGlzIGFsbG93cyBwYXR0ZXJucyBzdWNoIGFzICIwLiMjI0UwIG0vcyIuICBUbyBwcmVmaXgKKyAqIHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGEgbG9jYWxpemVkIHBsdXMgc2lnbiwgc3BlY2lmeSAnKycgYmV0d2VlbiB0aGUKKyAqIGV4cG9uZW50IGFuZCB0aGUgZGlnaXRzOiAiMC4jIyNFKzAiIHdpbGwgcHJvZHVjZSBmb3JtYXRzICIxRSsxIiwgIjFFKzAiLAorICogIjFFLTEiLCBldGMuICAoSW4gbG9jYWxpemVkIHBhdHRlcm5zLCB1c2UgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24gcmF0aGVyIHRoYW4KKyAqICcrJy4pCisgKgorICogPGxpPlRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBhY2hpZXZlZCBieSBhZGp1c3RpbmcgdGhlCisgKiBleHBvbmVudC4gIEV4YW1wbGU6IDAuMDAxMjMgZm9ybWF0dGVkIHdpdGggIjAwLiMjI0UwIiB5aWVsZHMgIjEyLjNFLTQiLiAgVGhpcworICogb25seSBoYXBwZW5zIGlmIHRoZXJlIGlzIG5vIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhlcmUgaXMgYQorICogbWF4aW11bSwgdGhlbiB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLgorICoKKyAqIDxsaT5UaGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMsIGlmIHByZXNlbnQsIHNwZWNpZmllcyB0aGUgZXhwb25lbnQKKyAqIGdyb3VwaW5nLiAgVGhlIG1vc3QgY29tbW9uIHVzZSBvZiB0aGlzIGlzIHRvIGdlbmVyYXRlIDxlbT5lbmdpbmVlcmluZworICogbm90YXRpb248L2VtPiwgaW4gd2hpY2ggdGhlIGV4cG9uZW50IGlzIGEgbXVsdGlwbGUgb2YgdGhyZWUsIGUuZy4sCisgKiAiIyMwLiMjI0UwIi4gIFRoZSBudW1iZXIgMTIzNDUgaXMgZm9ybWF0dGVkIHVzaW5nICIjIzAuIyMjI0UwIiBhcyAiMTIuMzQ1RTMiLgorICoKKyAqIDxsaT5XaGVuIHVzaW5nIHNjaWVudGlmaWMgbm90YXRpb24sIHRoZSBmb3JtYXR0ZXIgY29udHJvbHMgdGhlCisgKiBkaWdpdCBjb3VudHMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzIGxvZ2ljLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgbGltaXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIG1hbnRpc3NhOyBpdCBkb2VzIG5vdCBhZmZlY3QKKyAqIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwgMTIzNDUgZm9ybWF0dGVkIHdpdGggIiMjMC4jI0UwIiBpcyAiMTIuM0UzIi4KKyAqIFNlZSB0aGUgc2VjdGlvbiBvbiBzaWduaWZpY2FudCBkaWdpdHMgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiA8bGk+VGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgZGV0ZXJtaW5lZCBhcworICogZm9sbG93czogSWYgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyBmYWxzZSwgdGhlbiB0aGUKKyAqIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyBvbmUsIGFuZCB0aGUgbWF4aW11bQorICogbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyB0aGUgc3VtIG9mIHRoZSA8ZW0+bWluaW11bQorICogaW50ZWdlcjwvZW0+IGFuZCA8ZW0+bWF4aW11bSBmcmFjdGlvbjwvZW0+IGRpZ2l0cywgYW5kIGlzCisgKiB1bmFmZmVjdGVkIGJ5IHRoZSBtYXhpbXVtIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBzdW0gaXMgemVybywKKyAqIHRoZW4gYWxsIHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgc2hvd24uICBJZgorICogYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLCB0aGVuIHRoZSBzaWduaWZpY2FudCBkaWdpdAorICogY291bnRzIGFyZSBzcGVjaWZpZWQgYnkgZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCkgYW5kCisgKiBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKS4gIEluIHRoaXMgY2FzZSwgdGhlIG51bWJlciBvZgorICogaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLCBhbmQgdGhlcmUgaXMgbm8gZXhwb25lbnQgZ3JvdXBpbmcuCisgKgorICogPGxpPkV4cG9uZW50aWFsIHBhdHRlcm5zIG1heSBub3QgY29udGFpbiBncm91cGluZyBzZXBhcmF0b3JzLgorICogPC91bD4KKyAqCisgKiA8YSBuYW1lPSJzaWdkaWciPjxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFNpZ25pZmljYW50IERpZ2l0czwvaDQ+PC9hPgorICoKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGhhcyB0d28gd2F5cyBvZiBjb250cm9sbGluZyBob3cgbWFueQorICogZGlnaXRzIGFyZSBzaG93czogKGEpIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIG9yIChiKSBpbnRlZ2VyIGFuZAorICogZnJhY3Rpb24gZGlnaXQgY291bnRzLiAgSW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZQorICogZGVzY3JpYmVkIGFib3ZlLiAgV2hlbiBhIGZvcm1hdHRlciBpcyB1c2luZyBzaWduaWZpY2FudCBkaWdpdHMKKyAqIGNvdW50cywgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgaXMgbm90IHNwZWNpZmllZAorICogZGlyZWN0bHksIGFuZCB0aGUgZm9ybWF0dGVyIHNldHRpbmdzIGZvciB0aGVzZSBjb3VudHMgYXJlIGlnbm9yZWQuCisgKiBJbnN0ZWFkLCB0aGUgZm9ybWF0dGVyIHVzZXMgaG93ZXZlciBtYW55IGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgYXJlIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cy4gIEV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTMgY2VsbHBhZGRpbmc9MD4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlBhdHRlcm4KKyAqICAgICA8dGggYWxpZ249bGVmdD5NaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TnVtYmVyCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+T3V0cHV0IG9mIGZvcm1hdCgpCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4xMjM0NQorICogICAgIDx0ZD48Y29kZT4xMjMwMDwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAQDwvY29kZT4KKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjAuMTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MC4xMjM8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+My4xNDE1OQorICogICAgIDx0ZD48Y29kZT4zLjE0MjwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAIyM8L2NvZGU+CisgKiAgICAgPHRkPjIKKyAqICAgICA8dGQ+NAorICogICAgIDx0ZD4xLjIzMDA0CisgKiAgICAgPHRkPjxjb2RlPjEuMjM8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDx1bD4KKyAqIDxsaT5TaWduaWZpY2FudCBkaWdpdCBjb3VudHMgbWF5IGJlIGV4cHJlc3NlZCB1c2luZyBwYXR0ZXJucyB0aGF0CisgKiBzcGVjaWZ5IGEgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlc2UKKyAqIGFyZSBpbmRpY2F0ZWQgYnkgdGhlIDxjb2RlPidAJzwvY29kZT4gYW5kIDxjb2RlPicjJzwvY29kZT4KKyAqIGNoYXJhY3RlcnMuICBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGlzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICogZGlnaXRzIGlzIHRoZSBudW1iZXIgb2YgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXJzIHBsdXMgdGhlIG51bWJlcgorICogb2YgPGNvZGU+JyMnPC9jb2RlPiBjaGFyYWN0ZXJzIGZvbGxvd2luZyBvbiB0aGUgcmlnaHQuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBwYXR0ZXJuIDxjb2RlPiJAQEAiPC9jb2RlPiBpbmRpY2F0ZXMgZXhhY3RseSAzCisgKiBzaWduaWZpY2FudCBkaWdpdHMuICBUaGUgcGF0dGVybiA8Y29kZT4iQCMjIjwvY29kZT4gaW5kaWNhdGVzIGZyb20KKyAqIDEgdG8gMyBzaWduaWZpY2FudCBkaWdpdHMuICBUcmFpbGluZyB6ZXJvIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAqIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBhcmUgc3VwcHJlc3NlZCBhZnRlciB0aGUgbWluaW11bSBudW1iZXIgb2YKKyAqIHNpZ25pZmljYW50IGRpZ2l0cyBoYXZlIGJlZW4gc2hvd24uICBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4KKyAqIDxjb2RlPiJAIyMiPC9jb2RlPiBmb3JtYXRzIHRoZSBudW1iZXIgMC4xMjAzIGFzCisgKiA8Y29kZT4iMC4xMiI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBhIHBhdHRlcm4gdXNlcyBzaWduaWZpY2FudCBkaWdpdHMsIGl0IG1heSBub3QgY29udGFpbiBhCisgKiBkZWNpbWFsIHNlcGFyYXRvciwgbm9yIHRoZSA8Y29kZT4nMCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLgorICogUGF0dGVybnMgc3VjaCBhcyA8Y29kZT4iQDAwIjwvY29kZT4gb3IgPGNvZGU+IkAuIyMjIjwvY29kZT4gYXJlCisgKiBkaXNhbGxvd2VkLgorICoKKyAqIDxsaT5BbnkgbnVtYmVyIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBtYXkgYmUgcHJlcGVuZGVkIHRvCisgKiB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXIuICBUaGVzZSBoYXZlIG5vCisgKiBlZmZlY3Qgb24gdGhlIG1pbmltdW0gYW5kIG1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50cywgYnV0CisgKiBtYXkgYmUgdXNlZCB0byBwb3NpdGlvbiBncm91cGluZyBzZXBhcmF0b3JzLiAgRm9yIGV4YW1wbGUsCisgKiA8Y29kZT4iIywjQCMiPC9jb2RlPiBpbmRpY2F0ZXMgYSBtaW5pbXVtIG9mIG9uZSBzaWduaWZpY2FudCBkaWdpdHMsCisgKiBhIG1heGltdW0gb2YgdHdvIHNpZ25pZmljYW50IGRpZ2l0cywgYW5kIGEgZ3JvdXBpbmcgc2l6ZSBvZiB0aHJlZS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZW5hYmxlIHNpZ25pZmljYW50IGRpZ2l0cyBmb3JtYXR0aW5nLCB1c2UgYSBwYXR0ZXJuCisgKiBjb250YWluaW5nIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLiAgQWx0ZXJuYXRpdmVseSwKKyAqIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHRydWUpfS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZGlzYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEKKyAqIHBhdHRlcm4gdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4KKyAqIGNoYXJhY3Rlci4gQWx0ZXJuYXRpdmVseSwgY2FsbCB7QGxpbmsgI3NldFNpZ25pZmljYW50RGlnaXRzVXNlZAorICogc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGZhbHNlKX0uCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGhhcyBubyBlZmZlY3Qgb24gcGFyc2luZy4KKyAqCisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXRzIG1heSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24uIFN1Y2gKKyAqIHBhdHRlcm5zIGFyZSBlcXVpdmFsZW50IHRvIGEgbm9ybWFsIGV4cG9uZW50aWFsIHBhdHRlcm4gd2l0aCBhIG1pbmltdW0gYW5kCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXQgY291bnQgb2Ygb25lLCBhIG1pbmltdW0gZnJhY3Rpb24gZGlnaXQgY291bnQgb2YKKyAqIDxjb2RlPmdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4sIGFuZCBhIG1heGltdW0gZnJhY3Rpb24gZGlnaXQKKyAqIGNvdW50IG9mIDxjb2RlPmdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4uIEZvciBleGFtcGxlLCB0aGUKKyAqIHBhdHRlcm4gPGNvZGU+IkBAIyMjRTAiPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvIDxjb2RlPiIwLjAjIyNFMCI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBzaWduZmljYW50IGRpZ2l0cyBhcmUgaW4gdXNlLCB0aGVuIHRoZSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhIHRoZSBBUEksIGFyZSBpZ25vcmVkLiAgSWYgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgbm90IGluIHVzZSwgdGhlbiB0aGUgc2lnbmZpY2FudCBkaWdpdCBjb3VudHMsIGFzIHNldCB2aWEKKyAqIHRoZSBBUEksIGFyZSBpZ25vcmVkLgorICoKKyAqIDwvdWw+CisgKiAKKyAqIDxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFBhZGRpbmc8L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHBhZGRpbmcgdGhlIHJlc3VsdCBvZgorICoge0BsaW5rICNmb3JtYXR9IHRvIGEgc3BlY2lmaWMgd2lkdGguICBQYWRkaW5nIG1heSBiZSBzcGVjaWZpZWQgZWl0aGVyCisgKiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybiBzeW50YXguICBJbiBhIHBhdHRlcm4gdGhlIHBhZCBlc2NhcGUKKyAqIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcGFkIGNoYXJhY3RlciwgY2F1c2VzIHBhZGRpbmcgdG8gYmUgcGFyc2VkCisgKiBhbmQgZm9ybWF0dGVkLiAgVGhlIHBhZCBlc2NhcGUgY2hhcmFjdGVyIGlzICcqJyBpbiB1bmxvY2FsaXplZCBwYXR0ZXJucywgYW5kCisgKiBjYW4gYmUgbG9jYWxpemVkIHVzaW5nIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRQYWRFc2NhcGV9LiAgRm9yCisgKiBleGFtcGxlLCA8Y29kZT4iJCp4IywjIzAuMDAiPC9jb2RlPiBmb3JtYXRzIDEyMyB0byA8Y29kZT4iJHh4MTIzLjAwIjwvY29kZT4sCisgKiBhbmQgMTIzNCB0byA8Y29kZT4iJDEsMjM0LjAwIjwvY29kZT4uCisgKgorICogPHVsPgorICogPGxpPldoZW4gcGFkZGluZyBpcyBpbiBlZmZlY3QsIHRoZSB3aWR0aCBvZiB0aGUgcG9zaXRpdmUgc3VicGF0dGVybiwKKyAqIGluY2x1ZGluZyBwcmVmaXggYW5kIHN1ZmZpeCwgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IHdpZHRoLiAgRm9yIGV4YW1wbGUsIGluCisgKiB0aGUgcGF0dGVybiA8Y29kZT4iKiAjMCBvJydjbG9jayI8L2NvZGU+LCB0aGUgZm9ybWF0IHdpZHRoIGlzIDEwLgorICoKKyAqIDxsaT5UaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cyAoSmF2YSA8Y29kZT5jaGFyPC9jb2RlPnMpLgorICoKKyAqIDxsaT5Tb21lIHBhcmFtZXRlcnMgd2hpY2ggdXN1YWxseSBkbyBub3QgbWF0dGVyIGhhdmUgbWVhbmluZyB3aGVuIHBhZGRpbmcgaXMKKyAqIHVzZWQsIGJlY2F1c2UgdGhlIHBhdHRlcm4gd2lkdGggaXMgc2lnbmlmaWNhbnQgd2l0aCBwYWRkaW5nLiAgSW4gdGhlIHBhdHRlcm4KKyAqICIqICMjLCMjLCMsIyMwLiMjIiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxNC4gIFRoZSBpbml0aWFsIGNoYXJhY3RlcnMgIiMjLCMjLCIKKyAqIGRvIG5vdCBhZmZlY3QgdGhlIGdyb3VwaW5nIHNpemUgb3IgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cywgYnV0IHRoZXkgZG8gYWZmZWN0CisgKiB0aGUgZm9ybWF0IHdpZHRoLgorICoKKyAqIDxsaT5QYWRkaW5nIG1heSBiZSBpbnNlcnRlZCBhdCBvbmUgb2YgZm91ciBsb2NhdGlvbnM6IGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIG9yIGFmdGVyIHRoZSBzdWZmaXguICBJZiBwYWRkaW5nIGlzCisgKiBzcGVjaWZpZWQgaW4gYW55IG90aGVyIGxvY2F0aW9uLCB7QGxpbmsgI2FwcGx5UGF0dGVybn0gdGhyb3dzIGFuIHtAbGluaworICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufS4gIElmIHRoZXJlIGlzIG5vIHByZWZpeCwgYmVmb3JlIHRoZQorICogcHJlZml4IGFuZCBhZnRlciB0aGUgcHJlZml4IGFyZSBlcXVpdmFsZW50LCBsaWtld2lzZSBmb3IgdGhlIHN1ZmZpeC4KKyAqCisgKiA8bGk+V2hlbiBzcGVjaWZpZWQgaW4gYSBwYXR0ZXJuLCB0aGUgMTYtYml0IDxjb2RlPmNoYXI8L2NvZGU+IGltbWVkaWF0ZWx5CisgKiBmb2xsb3dpbmcgdGhlIHBhZCBlc2NhcGUgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuIFRoaXMgbWF5IGJlIGFueSBjaGFyYWN0ZXIsCisgKiBpbmNsdWRpbmcgYSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyLiBUaGF0IGlzLCB0aGUgcGFkIGVzY2FwZQorICogPGVtPmVzY2FwZXM8L2VtPiB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlci4gSWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGFmdGVyCisgKiB0aGUgcGFkIGVzY2FwZSwgdGhlbiB0aGUgcGF0dGVybiBpcyBpbGxlZ2FsLgorICoKKyAqIDwvdWw+CisgKgorICogPHA+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiA8c3Ryb25nPlJvdW5kaW5nPC9zdHJvbmc+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgcm91bmRpbmcgdG8gYSBzcGVjaWZpYyBpbmNyZW1lbnQuICBGb3IKKyAqIGV4YW1wbGUsIDEyMzAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCA1MCBpcyAxMjUwLiAgMS4yMzQgcm91bmRlZCB0byB0aGUKKyAqIG5lYXJlc3QgMC42NSBpcyAxLjMuICBUaGUgcm91bmRpbmcgaW5jcmVtZW50IG1heSBiZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgQVBJCisgKiBvciBpbiBhIHBhdHRlcm4uICBUbyBzcGVjaWZ5IGEgcm91bmRpbmcgaW5jcmVtZW50IGluIGEgcGF0dGVybiwgaW5jbHVkZSB0aGUKKyAqIGluY3JlbWVudCBpbiB0aGUgcGF0dGVybiBpdHNlbGYuICAiIywjNTAiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZgorICogNTAuICAiIywjIzAuMDUiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZiAwLjA1LgorICoKKyAqIDx1bD4KKyAqIDxsaT5Sb3VuZGluZyBvbmx5IGFmZmVjdHMgdGhlIHN0cmluZyBwcm9kdWNlZCBieSBmb3JtYXR0aW5nLiAgSXQgZG9lcworICogbm90IGFmZmVjdCBwYXJzaW5nIG9yIGNoYW5nZSBhbnkgbnVtZXJpY2FsIHZhbHVlcy4KKyAqCisgKiA8bGk+QSA8ZW0+cm91bmRpbmcgbW9kZTwvZW0+IGRldGVybWluZXMgaG93IHZhbHVlcyBhcmUgcm91bmRlZDsgc2VlIHRoZQorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbH0gZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAqIG1vZGVzLiAgUm91bmRpbmcgaW5jcmVtZW50cyBzcGVjaWZpZWQgaW4gcGF0dGVybnMgdXNlIHRoZSBkZWZhdWx0IG1vZGUsCisgKiB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTn0uCisgKgorICogPGxpPlNvbWUgbG9jYWxlcyB1c2Ugcm91bmRpbmcgaW4gdGhlaXIgY3VycmVuY3kgZm9ybWF0cyB0byByZWZsZWN0IHRoZQorICogc21hbGxlc3QgY3VycmVuY3kgZGVub21pbmF0aW9uLgorICoKKyAqIDxsaT5JbiBhIHBhdHRlcm4sIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgc3BlY2lmeSByb3VuZGluZywgYnV0IG90aGVyd2lzZQorICogYmVoYXZlIGlkZW50aWNhbGx5IHRvIGRpZ2l0ICcwJy4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gIE11bHRpcGxlCisgKiB0aHJlYWRzIHNob3VsZCBub3QgYWNjZXNzIG9uZSBmb3JtYXR0ZXIgY29uY3VycmVudGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgTnVtYmVyRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgc3VwZXIoZGVsZWdhdGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdCB1c2luZyB0aGUgZGVmYXVsdCBwYXR0ZXJuIGFuZCBzeW1ib2xzCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4gVGhpcyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIG9idGFpbiBhCisgICAgICogRGVjaW1hbEZvcm1hdCB3aGVuIGludGVybmF0aW9uYWxpemF0aW9uIGlzIG5vdCB0aGUgbWFpbiBjb25jZXJuLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuIGxvY2FsZSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcyBnZXROdW1iZXJJbnN0YW5jZS4gVGhlc2UgZmFjdG9yaWVzIHdpbGwKKyAgICAgKiByZXR1cm4gdGhlIG1vc3QgYXBwcm9wcmlhdGUgc3ViLWNsYXNzIG9mIE51bWJlckZvcm1hdCBmb3IgYSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldE51bWJlckluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0Q3VycmVuY3lJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldFBlcmNlbnRJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KCkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdGhlIHN5bWJvbHMKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLiBUaGlzIGlzIGEgY29udmVuaWVudCB3YXkgdG8gb2J0YWluIGEKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHdoZW4gaW50ZXJuYXRpb25hbGl6YXRpb24gaXMgbm90IHRoZSBtYWluIGNvbmNlcm4uCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4gbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcworICAgICAqIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzIGdldE51bWJlckluc3RhbmNlLiBUaGVzZSBmYWN0b3JpZXMgd2lsbAorICAgICAqIHJldHVybiB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzdWItY2xhc3Mgb2YgTnVtYmVyRm9ybWF0IGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIEEgbm9uLWxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQocGF0dGVybikpOworICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgc3ltYm9scy4KKyAgICAgKiBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuIHlvdSBuZWVkIHRvIGNvbXBsZXRlbHkgY3VzdG9taXplIHRoZQorICAgICAqIGJlaGF2aW9yIG9mIHRoZSBmb3JtYXQuCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzCisgICAgICogZ2V0SW5zdGFuY2Ugb3IgZ2V0Q3VycmVuY3lJbnN0YW5jZS4gSWYgeW91IG5lZWQgb25seSBtaW5vciBhZGp1c3RtZW50cworICAgICAqIHRvIGEgc3RhbmRhcmQgZm9ybWF0LCB5b3UgY2FuIG1vZGlmeSB0aGUgZm9ybWF0IHJldHVybmVkIGJ5CisgICAgICogYSBOdW1iZXJGb3JtYXQgZmFjdG9yeSBtZXRob2QuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHN5bWJvbHMgdGhlIHNldCBvZiBzeW1ib2xzIHRvIGJlIHVzZWQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scy5kZnMpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogQHJldHVybiBkZXNpcmVkIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuICBUaGUKKyAgICAgKiBmb3JtYXQgdXNlcyBhIGNvcHkgb2YgdGhlIHByb3ZpZGVkIHN5bWJvbHMuCisgICAgICogQHBhcmFtIG5ld1N5bWJvbHMgZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBuZXdTeW1ib2xzKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXdTeW1ib2xzLmRmcyk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwb3NpdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6ICsxMjMsICQxMjMsIHNGcjEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UG9zaXRpdmVQcmVmaXgoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0UG9zaXRpdmVQcmVmaXgoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVByZWZpeChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldFBvc2l0aXZlUHJlZml4KG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmVnYXRpdmVQcmVmaXggKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldE5lZ2F0aXZlUHJlZml4KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG5lZ2F0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMywgKCQxMjMpICh3aXRoIG5lZ2F0aXZlIHN1ZmZpeCksIHNGci0xMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROZWdhdGl2ZVByZWZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXROZWdhdGl2ZVByZWZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0UG9zaXRpdmVTdWZmaXgoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGU6IDEyMyUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVN1ZmZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXRQb3NpdGl2ZVN1ZmZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMyUsICgkMTIzKSAod2l0aCBwb3NpdGl2ZSBzdWZmaXhlcykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlU3VmZml4ICgpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5nZXROZWdhdGl2ZVN1ZmZpeCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwb3NpdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZXM6IDEyMyUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROZWdhdGl2ZVN1ZmZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXROZWdhdGl2ZVN1ZmZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TXVsdGlwbGllciAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0TXVsdGlwbGllcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtdWx0aXBsaWVyIGZvciB1c2UgaW4gcGVyY2VudCwgcGVybWlsbCwgZXRjLgorICAgICAqIEZvciBhIHBlcmNlbnRhZ2UsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiJSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMC4KKyAgICAgKiAoRm9yIEFyYWJpYywgdXNlIGFyYWJpYyBwZXJjZW50IHN5bWJvbCkuCisgICAgICogRm9yIGEgcGVybWlsbCwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICJcdTIwMzEiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAwLgorICAgICAqIDxQPkV4YW1wbGVzOiB3aXRoIDEwMCwgMS4yMyAtPiAiMTIzIiwgYW5kICIxMjMiIC0+IDEuMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNdWx0aXBsaWVyIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldE11bHRpcGxpZXIobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0R3JvdXBpbmdTaXplKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGdyb3VwaW5nIHNpemUuIEdyb3VwaW5nIHNpemUgaXMgdGhlIG51bWJlciBvZiBkaWdpdHMgYmV0d2VlbgorICAgICAqIGdyb3VwaW5nIHNlcGFyYXRvcnMgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhIG51bWJlci4gIEZvciBleGFtcGxlLAorICAgICAqIGluIHRoZSBudW1iZXIgIjEyMyw0NTYuNzgiLCB0aGUgZ3JvdXBpbmcgc2l6ZSBpcyAzLgorICAgICAqIEBzZWUgI2dldEdyb3VwaW5nU2l6ZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjc2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1NpemUgKGludCBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0R3JvdXBpbmdTaXplKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gZ2V0IHRoZSBiZWhhdmlvciBvZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCBpbnRlZ2Vycy4KKyAgICAgKiAoVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpbGwgYWx3YXlzIGFwcGVhciB3aXRoIGRlY2ltYWxzLikKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqCisgICAgICogPHA+VGhpcyBvbmx5IGFmZmVjdHMgZm9ybWF0dGluZywgYW5kIG9ubHkgd2hlcmUKKyAgICAgKiB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIGUuZy4sCisgICAgICogaWYgdHJ1ZSwgIDM0NTYuMDAgLT4gIjMsNDU2LiIKKyAgICAgKiBpZiBmYWxzZSwgMzQ1Ni4wMCAtPiAiMzQ1NiIKKyAgICAgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIHBhcnNpbmcuICBJZiB5b3Ugd2FudCBwYXJzaW5nIHRvIHN0b3AgYXQgdGhlIGRlY2ltYWwKKyAgICAgKiBwb2ludCwgdXNlIHNldFBhcnNlSW50ZWdlck9ubHkuCisgICAgICoKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlOyBubyBjaGFuZ2UgaW4gc2VtYW50aWNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyludW1iZXJGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTeW50aGVzaXplcyBhIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzdGF0ZQorICAgICAqIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFN5bnRoZXNpemVzIGEgbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudAorICAgICAqIHN0YXRlIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvTG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmVudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBwYXR0ZXJuIHRvIHRoaXMgRm9ybWF0IG9iamVjdC4gIFRoZSBwYXR0ZXJuCisgICAgICogaXMgYXNzdW1lZCB0byBiZSBpbiBhIGxvY2FsaXplZCBub3RhdGlvbi4gQSBwYXR0ZXJuIGlzIGEKKyAgICAgKiBzaG9ydC1oYW5kIHNwZWNpZmljYXRpb24gZm9yIHRoZSB2YXJpb3VzIGZvcm1hdHRpbmcgcHJvcGVydGllcy4KKyAgICAgKiBUaGVzZSBwcm9wZXJ0aWVzIGNhbiBhbHNvIGJlIGNoYW5nZWQgaW5kaXZpZHVhbGx5IHRocm91Z2ggdGhlCisgICAgICogdmFyaW91cyBzZXR0ZXIgbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyBsaW1pdCB0byBpbnRlZ2VyIGRpZ2l0cyBhcmUgc2V0CisgICAgICogYnkgdGhpcyByb3V0aW5lLCBzaW5jZSB0aGF0IGlzIHRoZSB0eXBpY2FsIGVuZC11c2VyIGRlc2lyZTsKKyAgICAgKiB1c2Ugc2V0TWF4aW11bUludGVnZXIgaWYgeW91IHdhbnQgdG8gc2V0IGEgcmVhbCB2YWx1ZS4KKyAgICAgKiBGb3IgbmVnYXRpdmUgbnVtYmVycywgdXNlIGEgc2Vjb25kIHBhdHRlcm4sIHNlcGFyYXRlZCBieSBhIHNlbWljb2xvbgorICAgICAqIDxQPkV4YW1wbGUgIiMsIzAwLjAjIiAtPiAxLDIzNC41NgorICAgICAqIDxQPlRoaXMgbWVhbnMgYSBtaW5pbXVtIG9mIDIgaW50ZWdlciBkaWdpdHMsIDEgZnJhY3Rpb24gZGlnaXQsIGFuZAorICAgICAqIGEgbWF4aW11bSBvZiAyIGZyYWN0aW9uIGRpZ2l0cy4KKyAgICAgKiA8cD5FeGFtcGxlOiAiIywjMDAuMCM7KCMsIzAwLjAjKSIgZm9yIG5lZ2F0aXZlcyBpbiBwYXJlbnRoZXNlcy4KKyAgICAgKiA8cD5JbiBuZWdhdGl2ZSBwYXR0ZXJucywgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gY291bnRzIGFyZSBpZ25vcmVkOworICAgICAqIHRoZXNlIGFyZSBwcmVzdW1lZCB0byBiZSBzZXQgaW4gdGhlIHBvc2l0aXZlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0dGVybik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc0YjRhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIHNldCBvZiBzeW1ib2xzIChzdWNoIGFzIHRoZSBkZWNpbWFsIHNlcGFyYXRvciwgdGhlCisgKiBncm91cGluZyBzZXBhcmF0b3IsIGFuZCBzbyBvbikgbmVlZGVkIGJ5IDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIGZvcm1hdAorICogbnVtYmVycy4gPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY3JlYXRlcyBmb3IgaXRzZWxmIGFuIGluc3RhbmNlIG9mCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gZnJvbSBpdHMgbG9jYWxlIGRhdGEuICBJZiB5b3UgbmVlZCB0bworICogY2hhbmdlIGFueSBvZiB0aGVzZSBzeW1ib2xzLCB5b3UgY2FuIGdldCB0aGUKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QgZnJvbSB5b3VyIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBhbmQgbW9kaWZ5IGl0LgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPi48L3N0cm9uZz4KKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzCisgKiBAYXV0aG9yICAgICAgIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworZmluYWwgcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzIGltcGxlbWVudHMgQ2xvbmVhYmxlLCBTZXJpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9MUw7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzIGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMuZGZzID0gZGVsZWdhdGU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFplcm9EaWdpdCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRaZXJvRGlnaXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uCisgICAgICogQHBhcmFtIHplcm9EaWdpdCB0aGUgemVybyBjaGFyYWN0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0WmVyb0RpZ2l0KGNoYXIgemVyb0RpZ2l0KSB7CisgICAgICAgIGRmcy5zZXRaZXJvRGlnaXQoemVyb0RpZ2l0KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHJldHVybiB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldEdyb3VwaW5nU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB0aG91c2FuZHMgc2VwYXJhdG9yLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBncm91cGluZ1NlcGFyYXRvciB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIgZ3JvdXBpbmdTZXBhcmF0b3IpIHsKKyAgICAgICAgZGZzLnNldEdyb3VwaW5nU2VwYXJhdG9yKGdyb3VwaW5nU2VwYXJhdG9yKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgZGVjaW1hbCBzaWduLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBkZWNpbWFsU2VwYXJhdG9yIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWxTZXBhcmF0b3IoY2hhciBkZWNpbWFsU2VwYXJhdG9yKSB7CisgICAgICAgIGRmcy5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWxTZXBhcmF0b3IpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgbWlsbGUgcGVyY2VudCBzaWduLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIG1pbGxlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGVyTWlsbCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRQZXJNaWxsKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBtaWxsZSBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHBhcmFtIHBlck1pbGwgdGhlIG1pbGxlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGVyTWlsbChjaGFyIHBlck1pbGwpIHsKKyAgICAgICAgZGZzLnNldFBlck1pbGwocGVyTWlsbCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHJldHVybiB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQZXJjZW50KCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFBlcmNlbnQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyY2VudCB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJjZW50KGNoYXIgcGVyY2VudCkgeworICAgICAgICBkZnMuc2V0UGVyY2VudChwZXJjZW50KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0RGlnaXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBkaWdpdCB0aGUgZGlnaXQgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaWdpdChjaGFyIGRpZ2l0KSB7CisgICAgICAgIGRmcy5zZXREaWdpdChkaWdpdCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICAgICAqIGluIGEgcGF0dGVybi4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYXR0ZXJuIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQYXR0ZXJuU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHN1YnBhdHRlcm5zCisgICAgICogaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuU2VwYXJhdG9yIHRoZSBwYXR0ZXJuIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXR0ZXJuU2VwYXJhdG9yKGNoYXIgcGF0dGVyblNlcGFyYXRvcikgeworICAgICAgICBkZnMuc2V0UGF0dGVyblNlcGFyYXRvcihwYXR0ZXJuU2VwYXJhdG9yKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgSW5maW5pdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJbmZpbml0eSgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRJbmZpbml0eSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gaW5maW5pdHkgdGhlIEluZmluaXR5IFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZmluaXR5KFN0cmluZyBpbmZpbml0eSkgeworICAgICAgICBkZnMuc2V0SW5maW5pdHkoaW5maW5pdHkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFOKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldE5hTigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIE5hTiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hTihTdHJpbmcgTmFOKSB7CisgICAgICAgIGRmcy5zZXROYU4oTmFOKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1pbnVzU2lnbigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRNaW51c1NpZ24oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbWludXNTaWduIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbnVzU2lnbihjaGFyIG1pbnVzU2lnbikgeworICAgICAgICBkZnMuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHJldHVybiB0aGUgbG9jYWwgY3VycmVuY3kgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lTeW1ib2woKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpIHsKKyAgICAgICAgZGZzLnNldEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKFN0cmluZyBjdXJyZW5jeSkgeworICAgICAgICBkZnMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICogQHJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcGFyYW0gc2VwIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciBzZXApIHsKKyAgICAgICAgZGZzLnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcihzZXApOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgb3ZlcnJpZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzKWRmcy5jbG9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGRmcy5lcXVhbHMoKChEZWNpbWFsRm9ybWF0U3ltYm9scylvYmopLmRmcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDlhMTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVzc2FnZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTA0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcHJvdmlkZXMgYSBtZWFucyB0byBwcm9kdWNlIGNvbmNhdGVuYXRlZAorICogbWVzc2FnZXMgaW4gbGFuZ3VhZ2UtbmV1dHJhbCB3YXkuIFVzZSB0aGlzIHRvIGNvbnN0cnVjdCBtZXNzYWdlcworICogZGlzcGxheWVkIGZvciBlbmQgdXNlcnMuCisgKgorICogPHA+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB0YWtlcyBhIHNldCBvZiBvYmplY3RzLCBmb3JtYXRzIHRoZW0sIHRoZW4KKyAqIGluc2VydHMgdGhlIGZvcm1hdHRlZCBzdHJpbmdzIGludG8gdGhlIHBhdHRlcm4gYXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGRpZmZlcnMgZnJvbSB0aGUgb3RoZXIgPGNvZGU+Rm9ybWF0PC9jb2RlPgorICogY2xhc3NlcyBpbiB0aGF0IHlvdSBjcmVhdGUgYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBvYmplY3Qgd2l0aCBvbmUKKyAqIG9mIGl0cyBjb25zdHJ1Y3RvcnMgKG5vdCB3aXRoIGEgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IHN0eWxlIGZhY3RvcnkKKyAqIG1ldGhvZCkuIFRoZSBmYWN0b3J5IG1ldGhvZHMgYXJlbid0IG5lY2Vzc2FyeSBiZWNhdXNlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgKiBpdHNlbGYgZG9lc24ndCBpbXBsZW1lbnQgbG9jYWxlIHNwZWNpZmljIGJlaGF2aW9yLiBBbnkgbG9jYWxlIHNwZWNpZmljCisgKiBiZWhhdmlvciBpcyBkZWZpbmVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgeW91IHByb3ZpZGUgYXMgd2VsbCBhcyB0aGUKKyAqIHN1YmZvcm1hdHMgdXNlZCBmb3IgaW5zZXJ0ZWQgYXJndW1lbnRzLgorICoKKyAqIDxoND48YSBuYW1lPSJwYXR0ZXJucyI+UGF0dGVybnMgYW5kIFRoZWlyIEludGVycHJldGF0aW9uPC9hPjwvaDQ+CisgKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdXNlcyBwYXR0ZXJucyBvZiB0aGUgZm9sbG93aW5nIGZvcm06CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPGk+TWVzc2FnZUZvcm1hdFBhdHRlcm46PC9pPgorICogICAgICAgICA8aT5TdHJpbmc8L2k+CisgKiAgICAgICAgIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuPC9pPiA8aT5Gb3JtYXRFbGVtZW50PC9pPiA8aT5TdHJpbmc8L2k+CisgKgorICogPGk+Rm9ybWF0RWxlbWVudDo8L2k+CisgKiAgICAgICAgIHsgPGk+QXJndW1lbnRJbmRleDwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gLCA8aT5Gb3JtYXRTdHlsZTwvaT4gfQorICoKKyAqIDxpPkZvcm1hdFR5cGU6IG9uZSBvZiA8L2k+CisgKiAgICAgICAgIG51bWJlciBkYXRlIHRpbWUgY2hvaWNlCisgKgorICogPGk+Rm9ybWF0U3R5bGU6PC9pPgorICogICAgICAgICBzaG9ydAorICogICAgICAgICBtZWRpdW0KKyAqICAgICAgICAgbG9uZworICogICAgICAgICBmdWxsCisgKiAgICAgICAgIGludGVnZXIKKyAqICAgICAgICAgY3VycmVuY3kKKyAqICAgICAgICAgcGVyY2VudAorICogICAgICAgICA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICoKKyAqIDxpPlN0cmluZzo8L2k+CisgKiAgICAgICAgIDxpPlN0cmluZ1BhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPiA8aT5TdHJpbmdQYXJ0PC9pPgorICoKKyAqIDxpPlN0cmluZ1BhcnQ6PC9pPgorICogICAgICAgICAnJworICogICAgICAgICAnIDxpPlF1b3RlZFN0cmluZzwvaT4gJworICogICAgICAgICA8aT5VbnF1b3RlZFN0cmluZzwvaT4KKyAqCisgKiA8aT5TdWJmb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4gPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8L2k+CisgKgorICogPGk+U3ViRm9ybWF0UGF0dGVyblBhcnQ6PC9pPgorICogICAgICAgICAnIDxpPlF1b3RlZFBhdHRlcm48L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPgorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3RyaW5nPC9pPiwgPGNvZGU+IicnIjwvY29kZT4gcmVwcmVzZW50cyBhIHNpbmdsZQorICogcXVvdGUuIEEgPGk+UXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXM7IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZSByZW1vdmVkLgorICogQW4gPGk+VW5xdW90ZWRTdHJpbmc8L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlcyBhbmQgbGVmdCBjdXJseSBicmFja2V0cy4gVGh1cywgYSBzdHJpbmcgdGhhdAorICogc2hvdWxkIHJlc3VsdCBpbiB0aGUgZm9ybWF0dGVkIG1lc3NhZ2UgIid7MH0nIiBjYW4gYmUgd3JpdHRlbiBhcworICogPGNvZGU+IicnJ3snMH0nJyI8L2NvZGU+IG9yIDxjb2RlPiInJyd7MH0nJyciPC9jb2RlPi4KKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4sIGRpZmZlcmVudCBydWxlcyBhcHBseS4KKyAqIEEgPGk+UXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyBidXQgdGhlIHN1cnJvdW5kaW5nIHNpbmdsZSBxdW90ZXMgYXJlCisgKiA8c3Ryb25nPm5vdDwvc3Ryb25nPiByZW1vdmVkLCBzbyB0aGV5IG1heSBiZSBpbnRlcnByZXRlZCBieSB0aGUKKyAqIHN1YmZvcm1hdC4gRm9yIGV4YW1wbGUsIDxjb2RlPiJ7MSxudW1iZXIsJCcjJywjI30iPC9jb2RlPiB3aWxsCisgKiBwcm9kdWNlIGEgbnVtYmVyIGZvcm1hdCB3aXRoIHRoZSBwb3VuZC1zaWduIHF1b3RlZCwgd2l0aCBhIHJlc3VsdAorICogc3VjaCBhczogIiQjMzEsNDUiLgorICogQW4gPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMsIGJ1dCBjdXJseSBicmFjZXMgd2l0aGluIGl0IG11c3QgYmUgYmFsYW5jZWQuCisgKiBGb3IgZXhhbXBsZSwgPGNvZGU+ImFiIHswfSBkZSI8L2NvZGU+IGFuZCA8Y29kZT4iYWIgJ30nIGRlIjwvY29kZT4KKyAqIGFyZSB2YWxpZCBzdWJmb3JtYXQgcGF0dGVybnMsIGJ1dCA8Y29kZT4iYWIgezAnfScgZGUiPC9jb2RlPiBhbmQKKyAqIDxjb2RlPiJhYiB9IGRlIjwvY29kZT4gYXJlIG5vdC4KKyAqIDxwPgorICogPGRsPjxkdD48Yj5XYXJuaW5nOjwvYj48ZGQ+VGhlIHJ1bGVzIGZvciB1c2luZyBxdW90ZXMgd2l0aGluIG1lc3NhZ2UKKyAqIGZvcm1hdCBwYXR0ZXJucyB1bmZvcnR1bmF0ZWx5IGhhdmUgc2hvd24gdG8gYmUgc29tZXdoYXQgY29uZnVzaW5nLgorICogSW4gcGFydGljdWxhciwgaXQgaXNuJ3QgYWx3YXlzIG9idmlvdXMgdG8gbG9jYWxpemVycyB3aGV0aGVyIHNpbmdsZQorICogcXVvdGVzIG5lZWQgdG8gYmUgZG91YmxlZCBvciBub3QuIE1ha2Ugc3VyZSB0byBpbmZvcm0gbG9jYWxpemVycyBhYm91dAorICogdGhlIHJ1bGVzLCBhbmQgdGVsbCB0aGVtIChmb3IgZXhhbXBsZSwgYnkgdXNpbmcgY29tbWVudHMgaW4gcmVzb3VyY2UKKyAqIGJ1bmRsZSBzb3VyY2UgZmlsZXMpIHdoaWNoIHN0cmluZ3Mgd2lsbCBiZSBwcm9jZXNzZWQgYnkgTWVzc2FnZUZvcm1hdC4KKyAqIE5vdGUgdGhhdCBsb2NhbGl6ZXJzIG1heSBuZWVkIHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRyYW5zbGF0ZWQKKyAqIHN0cmluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHZlcnNpb24gZG9lc24ndCBoYXZlIHRoZW0uCisgKiA8YnI+Tm90ZSBhbHNvIHRoYXQgdGhlIHNpbXBsZXN0IHdheSB0byBhdm9pZCB0aGUgcHJvYmxlbSBpcyB0bworICogdXNlIHRoZSByZWFsIGFwb3N0cm9waGUgKHNpbmdsZSBxdW90ZSkgY2hhcmFjdGVyIFx1MjAxOSAoJykgZm9yCisgKiBodW1hbi1yZWFkYWJsZSB0ZXh0LCBhbmQgdG8gdXNlIHRoZSBBU0NJSSBhcG9zdHJvcGhlIChcdTAwMjcgJyApCisgKiBvbmx5IGluIHByb2dyYW0gc3ludGF4LCBsaWtlIHF1b3RpbmcgaW4gTWVzc2FnZUZvcm1hdC4KKyAqIFNlZSB0aGUgYW5ub3RhdGlvbnMgZm9yIFUrMDAyNyBBcG9zdHJvcGhlIGluIFRoZSBVbmljb2RlIFN0YW5kYXJkLjwvcD4KKyAqIDwvZGw+CisgKiA8cD4KKyAqIFRoZSA8aT5Bcmd1bWVudEluZGV4PC9pPiB2YWx1ZSBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdyaXR0ZW4KKyAqIHVzaW5nIHRoZSBkaWdpdHMgJzAnIHRocm91Z2ggJzknLCBhbmQgcmVwcmVzZW50cyBhbiBpbmRleCBpbnRvIHRoZQorICogPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcworICogb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgKiA8cD4KKyAqIFRoZSA8aT5Gb3JtYXRUeXBlPC9pPiBhbmQgPGk+Rm9ybWF0U3R5bGU8L2k+IHZhbHVlcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIGEgPGNvZGU+Rm9ybWF0PC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50LiBUaGUgZm9sbG93aW5nCisgKiB0YWJsZSBzaG93cyBob3cgdGhlIHZhbHVlcyBtYXAgdG8gRm9ybWF0IGluc3RhbmNlcy4gQ29tYmluYXRpb25zIG5vdAorICogc2hvd24gaW4gdGhlIHRhYmxlIGFyZSBpbGxlZ2FsLiBBIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IG11c3QKKyAqIGJlIGEgdmFsaWQgcGF0dGVybiBzdHJpbmcgZm9yIHRoZSBGb3JtYXQgc3ViY2xhc3MgdXNlZC4KKyAqIDxwPgorICogPHRhYmxlIGJvcmRlcj0xPgorICogICAgPHRyPgorICogICAgICAgPHRoPkZvcm1hdCBUeXBlCisgKiAgICAgICA8dGg+Rm9ybWF0IFN0eWxlCisgKiAgICAgICA8dGg+U3ViZm9ybWF0IENyZWF0ZWQKKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZCBjb2xzcGFuPTI+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj01Pjxjb2RlPm51bWJlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48aT4obm9uZSk8L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5pbnRlZ2VyPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmN1cnJlbmN5PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5wZXJjZW50PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IERlY2ltYWxGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGdldExvY2FsZSgpKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPmRhdGU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPnRpbWU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+Y2hvaWNlPC9jb2RlPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IENob2ljZUZvcm1hdChzdWJmb3JtYXRQYXR0ZXJuKTwvY29kZT4KKyAqIDwvdGFibGU+CisgKiA8cD4KKyAqCisgKiA8aDQ+VXNhZ2UgSW5mb3JtYXRpb248L2g0PgorICoKKyAqIDxwPgorICogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB1c2FnZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIGFyZ3VtZW50cyA9IHsKKyAqICAgICBuZXcgSW50ZWdlcig3KSwKKyAqICAgICBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSksCisgKiAgICAgImEgZGlzdHVyYmFuY2UgaW4gdGhlIEZvcmNlIgorICogfTsKKyAqCisgKiBTdHJpbmcgcmVzdWx0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoCisgKiAgICAgIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAqICAgICBhcmd1bWVudHMpOworICoKKyAqIDxlbT5vdXRwdXQ8L2VtPjogQXQgMTI6MzAgUE0gb24gSnVsIDMsIDIwNTMsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlCisgKiAgICAgICAgICAgaW4gdGhlIEZvcmNlIG9uIHBsYW5ldCA3LgorICoKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVHlwaWNhbGx5LCB0aGUgbWVzc2FnZSBmb3JtYXQgd2lsbCBjb21lIGZyb20gcmVzb3VyY2VzLCBhbmQgdGhlCisgKiBhcmd1bWVudHMgd2lsbCBiZSBkeW5hbWljYWxseSBzZXQgYXQgcnVudGltZS4KKyAqCisgKiA8cD4KKyAqIEV4YW1wbGUgMjoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDMpLCAiTXlEaXNrIn07CisgKgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgKiAgICAgIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9IGZpbGUocykuIik7CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAwIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEgZmlsZShzKS4KKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMSwyNzMgZmlsZShzKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogRm9yIG1vcmUgc29waGlzdGljYXRlZCBwYXR0ZXJucywgeW91IGNhbiB1c2UgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IHRvIGdldAorICogb3V0cHV0IHN1Y2ggYXM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0uIik7CisgKiBkb3VibGVbXSBmaWxlbGltaXRzID0gezAsMSwyfTsKKyAqIFN0cmluZ1tdIGZpbGVwYXJ0ID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICogQ2hvaWNlRm9ybWF0IGZpbGVmb3JtID0gbmV3IENob2ljZUZvcm1hdChmaWxlbGltaXRzLCBmaWxlcGFydCk7CisgKiBmb3JtLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBmaWxlZm9ybSk7CisgKgorICogT2JqZWN0W10gdGVzdEFyZ3MgPSB7bmV3IExvbmcoMTIzNzMpLCAiTXlEaXNrIn07CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyBubyBmaWxlcy4KKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgb25lIGZpbGUuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGVzLgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGVpdGhlciBkbyB0aGlzIHByb2dyYW1tYXRpY2FsbHksIGFzIGluIHRoZSBhYm92ZSBleGFtcGxlLAorICogb3IgYnkgdXNpbmcgYSBwYXR0ZXJuIChzZWUKKyAqIHtAbGluayBDaG9pY2VGb3JtYXR9CisgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbikgYXMgaW46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBmb3JtLmFwcGx5UGF0dGVybigKKyAqICAgICJUaGVyZSB7MCxjaG9pY2UsMCNhcmUgbm8gZmlsZXN8MSNpcyBvbmUgZmlsZXwxJmx0O2FyZSB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9LiIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQXMgd2Ugc2VlIGFib3ZlLCB0aGUgc3RyaW5nIHByb2R1Y2VkCisgKiBieSBhIDxjb2RlPkNob2ljZUZvcm1hdDwvY29kZT4gaW4gPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gaXMgdHJlYXRlZCBzcGVjaWFsbHk7CisgKiBvY2N1cmFuY2VzIG9mICd7JyBhcmUgdXNlZCB0byBpbmRpY2F0ZWQgc3ViZm9ybWF0cywgYW5kIGNhdXNlIHJlY3Vyc2lvbi4KKyAqIElmIHlvdSBjcmVhdGUgYm90aCBhIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+CisgKiBwcm9ncmFtbWF0aWNhbGx5IChpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzdHJpbmcgcGF0dGVybnMpLCB0aGVuIGJlIGNhcmVmdWwgbm90IHRvCisgKiBwcm9kdWNlIGEgZm9ybWF0IHRoYXQgcmVjdXJzZXMgb24gaXRzZWxmLCB3aGljaCB3aWxsIGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisgKiA8cD4KKyAqIFdoZW4gYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFyc2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzdHJpbmcsIHRoZSBsYXN0IG1hdGNoCisgKiB3aWxsIGJlIHRoZSBmaW5hbCByZXN1bHQgb2YgdGhlIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLG51bWJlciwjLiMjfSwgezAsbnVtYmVyLCMuI30iKTsKKyAqIE9iamVjdFtdIG9ianMgPSB7bmV3IERvdWJsZSgzLjE0MTUpfTsKKyAqIFN0cmluZyByZXN1bHQgPSBtZi5mb3JtYXQoIG9ianMgKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzICIzLjE0LCAzLjEiCisgKiBvYmpzID0gbnVsbDsKKyAqIG9ianMgPSBtZi5wYXJzZShyZXN1bHQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIG9ianMgbm93IGVxdWFscyB7bmV3IERvdWJsZSgzLjEpfQorICogPC9wcmU+CisgKiA8cD4KKyAqIExpa2V3aXNlLCBwYXJzaW5nIHdpdGggYSBNZXNzYWdlRm9ybWF0IG9iamVjdCB1c2luZyBwYXR0ZXJucyBjb250YWluaW5nCisgKiBtdWx0aXBsZSBvY2N1cmFuY2VzIG9mIHRoZSBzYW1lIGFyZ3VtZW50IHdvdWxkIHJldHVybiB0aGUgbGFzdCBtYXRjaC4gIEZvcgorICogZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfSwgezB9LCB7MH0iKTsKKyAqIFN0cmluZyBmb3JQYXJzaW5nID0gIngsIHksIHoiOworICogT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvclBhcnNpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzIHtuZXcgU3RyaW5nKCJ6Iil9CisgKiA8L3ByZT4KKyAqCisgKiA8aDQ+PGEgbmFtZT0ic3luY2hyb25pemF0aW9uIj5TeW5jaHJvbml6YXRpb248L2E+PC9oND4KKyAqCisgKiA8cD4KKyAqIE1lc3NhZ2UgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4KKyAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4KKyAqIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQKKyAqIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIEZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQHNlZSAgICAgICAgICBDaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMUw7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQgbWVzc2FnZUZvcm1hdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBEYXRlRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5tZXNzYWdlRm9ybWF0ID0gZGVsZWdhdGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgdGhlCisgICAgICogc3BlY2lmaWVkIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdChwYXR0ZXJuKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZAorICAgICAqIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBsb2NhbGUgaXMgaWdub3JlZAorICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdChwYXR0ZXJuKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZAorICAgICAqIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLy8gbG9jYWxlIGlzIGlnbm9yZWQKKyAgICAgICAgdGhpcyhwYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgbWVzc2FnZUZvcm1hdC5zZXRMb2NhbGUobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0TG9jYWxlKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb2NhbGUgdGhhdCdzIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZ2V0TG9jYWxlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlIHRoYXQncyB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIFVMb2NhbGUuZm9yTG9jYWxlKG1lc3NhZ2VGb3JtYXQuZ2V0TG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBhdHRlcm4gdXNlZCBieSB0aGlzIG1lc3NhZ2UgZm9ybWF0LgorICAgICAqIFRoZSBtZXRob2QgcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZCBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzCisgICAgICogZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgbWVzc2FnZUZvcm1hdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICB9CisKKyAgIC8qKgorICAgICogUmV0dXJucyBhIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGZvcm1hdC4KKyAgICAqIFRoZSBzdHJpbmcgaXMgY29uc3RydWN0ZWQgZnJvbSBpbnRlcm5hbCBpbmZvcm1hdGlvbiBhbmQgdGhlcmVmb3JlCisgICAgKiBkb2VzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0aGUgcHJldmlvdXNseSBhcHBsaWVkIHBhdHRlcm4uIAorICAgICoKKyAgICAqIEByZXR1cm4gYSBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBmb3JtYXQKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKTsKKyAgIH0KKyAKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciByZXR1cm5lZCBmcm9tIDxjb2RlPnBhcnNlPC9jb2RlPgorICAgICogbWV0aG9kcy4gVGhlIGluZGljZXMgb2YgZWxlbWVudHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4KKyAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGFyZ3VtZW50IGluZGljZXMgdXNlZCBpbiB0aGUgcHJldmlvdXNseSBzZXQKKyAgICAqIHBhdHRlcm4gc3RyaW5nLgorICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gdGh1cyBjb3JyZXNwb25kcyB0bworICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKiA8cD4KKyAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBuZXcgZm9ybWF0IGlzIHVzZWQKKyAgICAqIGZvciBhbGwgc3VjaCBmb3JtYXQgZWxlbWVudHMuIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIG5vdCB1c2VkCisgICAgKiBmb3IgYW55IGZvcm1hdCBlbGVtZW50IGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUKKyAgICAqIGNvcnJlc3BvbmRpbmcgbmV3IGZvcm1hdCBpcyBpZ25vcmVkLiBJZiBmZXdlciBmb3JtYXRzIGFyZSBwcm92aWRlZAorICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZm9ybWF0cyBmb3IgYXJndW1lbnQgaW5kaWNlcyBsZXNzCisgICAgKiB0aGFuIDxjb2RlPm5ld0Zvcm1hdHMubGVuZ3RoPC9jb2RlPiBhcmUgcmVwbGFjZWQuCisgICAgKgorICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiBpcyBudWxsCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaWYgdGhlIHVuZGVybHlpbmcgSlZNIGRvZXMgbm90CisgICAgKiBzdXBwb3J0IHRoaXMgbWV0aG9kLgorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KEZvcm1hdFtdIG5ld0Zvcm1hdHMpIHsKKwkgICBpZiAoc2ZzYmFpID09IG51bGwpIHsKKwkJICAgc3luY2hyb25pemVkIChtaXNzaW5nKSB7CisJCQkgICB0cnkgeworCQkJCSAgIENsYXNzW10gcGFyYW1zID0geyBGb3JtYXRbXS5jbGFzcyB9OworCQkJCSAgIHNmc2JhaSA9IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgic2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCIsIHBhcmFtcyk7CisJCQkgICB9CisJCQkgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkJCQkgICBzZnNiYWkgPSBtaXNzaW5nOworCQkJICAgfQorCQkgICB9CisJICAgfQorCSAgIGlmIChzZnNiYWkgIT0gbWlzc2luZykgeworCQkgICB0cnkgeworCQkJICAgRm9ybWF0W10gdW53cmFwcGVkID0gbmV3IEZvcm1hdFtuZXdGb3JtYXRzLmxlbmd0aF07CisJCQkgICBmb3IgKGludCBpID0gMDsgaSA8IG5ld0Zvcm1hdHMubGVuZ3RoOyArK2kpIHsKKwkJCQkgICB1bndyYXBwZWRbaV0gPSB1bndyYXAobmV3Rm9ybWF0c1tpXSk7CisJCQkgICB9CisJCQkgICBPYmplY3RbXSBhcmdzID0geyB1bndyYXBwZWQgfTsKKwkJCSAgICgoTWV0aG9kKXNmc2JhaSkuaW52b2tlKG1lc3NhZ2VGb3JtYXQsIGFyZ3MpOworCQkJICAgcmV0dXJuOworCQkgICB9CisJCSAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJCSAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJICAgfQorCSAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgIH0KKyAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBzZnNiYWk7CisgICAKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlCisgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIFRoZSBvcmRlciBvZiBmb3JtYXRzIGluIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IGNvcnJlc3BvbmRzIHRvCisgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIDxwPgorICAgICogSWYgbW9yZSBmb3JtYXRzIGFyZSBwcm92aWRlZCB0aGFuIG5lZWRlZCBieSB0aGUgcGF0dGVybiBzdHJpbmcsCisgICAgKiB0aGUgcmVtYWluaW5nIG9uZXMgYXJlIGlnbm9yZWQuIElmIGZld2VyIGZvcm1hdHMgYXJlIHByb3ZpZGVkCisgICAgKiB0aGFuIG5lZWRlZCwgdGhlbiBvbmx5IHRoZSBmaXJzdCA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4KKyAgICAqIGZvcm1hdHMgYXJlIHJlcGxhY2VkLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQgaXMgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgKiB7QGxpbmsgI3NldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXggc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleH0KKyAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgKiBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8KKyAgICAqIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieQorICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICoKKyAgICAqIEBwYXJhbSBuZXdGb3JtYXRzIHRoZSBuZXcgZm9ybWF0cyB0byB1c2UKKyAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHMoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0cyhuZXdGb3JtYXRzKTsKKyAgIH0KKworICAgLyoqCisgICAgKiBTZXRzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAgICAqIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nIHRoYXQgdXNlIHRoZSBnaXZlbiBhcmd1bWVudAorICAgICogaW5kZXguCisgICAgKiBUaGUgYXJndW1lbnQgaW5kZXggaXMgcGFydCBvZiB0aGUgZm9ybWF0IGVsZW1lbnQgZGVmaW5pdGlvbiBhbmQKKyAgICAqIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICogPHA+CisgICAgKiBJZiB0aGUgYXJndW1lbnQgaW5kZXggaXMgdXNlZCBmb3IgbW9yZSB0aGFuIG9uZSBmb3JtYXQgZWxlbWVudAorICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIHVzZWQgZm9yIGFsbCBzdWNoCisgICAgKiBmb3JtYXQgZWxlbWVudHMuIElmIHRoZSBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdAorICAgICogZWxlbWVudCBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIG5ldyBmb3JtYXQgaXMgaWdub3JlZC4KKyAgICAqCisgICAgKiBAcGFyYW0gYXJndW1lbnRJbmRleCB0aGUgYXJndW1lbnQgaW5kZXggZm9yIHdoaWNoIHRvIHVzZSB0aGUgbmV3IGZvcm1hdAorICAgICogQHBhcmFtIG5ld0Zvcm1hdCB0aGUgbmV3IGZvcm1hdCB0byB1c2UKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBpZiB0aGUgdW5kZXJseWluZyBKVk0gZG9lcyBub3QKKyAgICAqIHN1cHBvcnQgdGhpcyBtZXRob2QuCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEJ5QXJndW1lbnRJbmRleChpbnQgYXJndW1lbnRJbmRleCwgRm9ybWF0IG5ld0Zvcm1hdCkgeworCSAgIGlmIChzZmJhaSA9PSBudWxsKSB7CisJCSAgIHN5bmNocm9uaXplZCAobWlzc2luZykgeworCQkJICAgdHJ5IHsKKwkJCQkgICBDbGFzc1tdIHBhcmFtcyA9IHsgSW50ZWdlci5UWVBFLCBGb3JtYXQuY2xhc3MgfTsKKwkJCQkgICBzZmJhaSA9IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgic2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4IiwgcGFyYW1zKTsKKwkJCSAgIH0KKwkJCSAgIGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworCQkJCSAgIHNmYmFpID0gbWlzc2luZzsKKwkJCSAgIH0KKwkJICAgfQorCSAgIH0KKwkgICBpZiAoc2ZiYWkgIT0gbWlzc2luZykgeworCQkgICB0cnkgeworCQkJICAgT2JqZWN0W10gYXJncyA9IHsgbmV3IEludGVnZXIoYXJndW1lbnRJbmRleCksIG5ld0Zvcm1hdCB9OworCQkJICAgKChNZXRob2Qpc2ZiYWkpLmludm9rZShtZXNzYWdlRm9ybWF0LCBhcmdzKTsKKwkJCSAgIHJldHVybjsKKwkJICAgfQorCQkgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCQkgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCSAgIH0KKwkgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgIH0KKyAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBzZmJhaTsKKworICAgLyoqCisgICAgKiBTZXRzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnQgd2l0aCB0aGUgZ2l2ZW4KKyAgICAqIGZvcm1hdCBlbGVtZW50IGluZGV4IHdpdGhpbiB0aGUgcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgZm9ybWF0IGVsZW1lbnQgaW5kZXggaXMgdGhlIHplcm8tYmFzZWQgbnVtYmVyIG9mIHRoZSBmb3JtYXQKKyAgICAqIGVsZW1lbnQgY291bnRpbmcgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQgaXMgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgKiB7QGxpbmsgI3NldEZvcm1hdEJ5QXJndW1lbnRJbmRleCBzZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXh9CisgICAgKiBtZXRob2QsIHdoaWNoIGFjY2Vzc2VzIGZvcm1hdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgYXJndW1lbnQKKyAgICAqIGluZGV4IHRoZXkgc3BlY2lmeS4KKyAgICAqCisgICAgKiBAcGFyYW0gZm9ybWF0RWxlbWVudEluZGV4IHRoZSBpbmRleCBvZiBhIGZvcm1hdCBlbGVtZW50IHdpdGhpbiB0aGUgcGF0dGVybgorICAgICogQHBhcmFtIG5ld0Zvcm1hdCB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIHNwZWNpZmllZCBmb3JtYXQgZWxlbWVudAorICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgZm9ybWF0RWxlbWVudEluZGV4IGlzIGVxdWFsIHRvIG9yCisgICAgKiAgICAgICAgICAgIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0RWxlbWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgbWVzc2FnZUZvcm1hdC5zZXRGb3JtYXQoZm9ybWF0RWxlbWVudEluZGV4LCB1bndyYXAobmV3Rm9ybWF0KSk7CisgICB9CisKKyAgIC8qKgorICAgICogR2V0cyB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvCisgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAqIG1ldGhvZHMuIFRoZSBpbmRpY2VzIG9mIGVsZW1lbnRzIGluIHRoZSByZXR1cm5lZCBhcnJheQorICAgICogY29ycmVzcG9uZCB0byB0aGUgYXJndW1lbnQgaW5kaWNlcyB1c2VkIGluIHRoZSBwcmV2aW91c2x5IHNldAorICAgICogcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgdGh1cyBjb3JyZXNwb25kcyB0bworICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKiA8cD4KKyAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgZm9ybWF0IHVzZWQgZm9yIHRoZSBsYXN0IHN1Y2gKKyAgICAqIGZvcm1hdCBlbGVtZW50IGlzIHJldHVybmVkIGluIHRoZSBhcnJheS4gSWYgYW4gYXJndW1lbnQgaW5kZXgKKyAgICAqIGlzIG5vdCB1c2VkIGZvciBhbnkgZm9ybWF0IGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuCisgICAgKiBudWxsIGlzIHJldHVybmVkIGluIHRoZSBhcnJheS4KKyAgICAqCisgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBhcmd1bWVudHMgd2l0aGluIHRoZSBwYXR0ZXJuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaWYgdGhlIHVuZGVybHlpbmcgSlZNIGRvZXMgbm90IAorICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZC4KKyAgICAqLworICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisJICAgaWYgKGdmYmFpID09IG51bGwpIHsKKwkJICAgc3luY2hyb25pemVkIChtaXNzaW5nKSB7CisJCQkgICB0cnkgeworCQkJCSAgIGdmYmFpID0gamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuY2xhc3MuZ2V0TWV0aG9kKCJnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4IiwgbnVsbCk7CisJCQkgICB9CisJCQkgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkJCQkgICBnZmJhaSA9IG1pc3Npbmc7CisJCQkgICB9CisJCSAgIH0KKwkgICB9CisJICAgaWYgKGdmYmFpICE9IG1pc3NpbmcpIHsKKwkJICAgdHJ5IHsKKwkJCSAgIEZvcm1hdFtdIHJlc3VsdCA9IChGb3JtYXRbXSkoKE1ldGhvZClnZmJhaSkuaW52b2tlKG1lc3NhZ2VGb3JtYXQsIG51bGwpOworCQkJICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpIHsKKwkJCQkgICByZXN1bHRbaV0gPSB3cmFwKHJlc3VsdFtpXSk7CisJCQkgICB9CisJCQkgICByZXR1cm4gcmVzdWx0OworCQkgICB9CisJCSAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJCSAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJICAgfQorCSAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgfQorICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0IGdmYmFpOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IG1pc3NpbmcgPSBuZXcgT2JqZWN0KCk7CisKKyAgIC8qKgorICAgICogR2V0cyB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZQorICAgICogcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgY29ycmVzcG9uZHMgdG8KKyAgICAqIHRoZSBvcmRlciBvZiBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQncyBnZW5lcmFsbHkgYmV0dGVyIHRvIHVzZSB0aGUKKyAgICAqIHtAbGluayAjZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCBnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4fQorICAgICogbWV0aG9kLCB3aGljaCBhc3N1bWVzIGFuIG9yZGVyIG9mIGZvcm1hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAqIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZCB0bworICAgICogdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkIGJ5CisgICAgKiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKgorICAgICogQHJldHVybiB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHMoKSB7CisgICAgICAgRm9ybWF0W10gcmVzdWx0ID0gbWVzc2FnZUZvcm1hdC5nZXRGb3JtYXRzKCk7CisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgcmVzdWx0W2ldID0gd3JhcChyZXN1bHRbaV0pOworICAgICAgIH0KKyAgICAgICByZXR1cm4gcmVzdWx0OworICAgfQorCisgICAvKioKKyAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICogcGF0dGVybiwgd2l0aCBmb3JtYXQgZWxlbWVudHMgcmVwbGFjZWQgYnkgdGhlIGZvcm1hdHRlZCBvYmplY3RzLCB0byB0aGUKKyAgICAqIHByb3ZpZGVkIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgKiA8cD4KKyAgICAqIFRoZSB0ZXh0IHN1YnN0aXR1dGVkIGZvciB0aGUgaW5kaXZpZHVhbCBmb3JtYXQgZWxlbWVudHMgaXMgZGVyaXZlZCBmcm9tCisgICAgKiB0aGUgY3VycmVudCBzdWJmb3JtYXQgb2YgdGhlIGZvcm1hdCBlbGVtZW50IGFuZCB0aGUKKyAgICAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gZWxlbWVudCBhdCB0aGUgZm9ybWF0IGVsZW1lbnQncyBhcmd1bWVudCBpbmRleAorICAgICogYXMgaW5kaWNhdGVkIGJ5IHRoZSBmaXJzdCBtYXRjaGluZyBsaW5lIG9mIHRoZSBmb2xsb3dpbmcgdGFibGUuIEFuCisgICAgKiBhcmd1bWVudCBpcyA8aT51bmF2YWlsYWJsZTwvaT4gaWYgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBpcworICAgICogPGNvZGU+bnVsbDwvY29kZT4gb3IgaGFzIGZld2VyIHRoYW4gYXJndW1lbnRJbmRleCsxIGVsZW1lbnRzLgorICAgICogPHA+CisgICAgKiA8dGFibGUgYm9yZGVyPTE+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGg+U3ViZm9ybWF0CisgICAgKiAgICAgICA8dGg+QXJndW1lbnQKKyAgICAqICAgICAgIDx0aD5Gb3JtYXR0ZWQgVGV4dAorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAqICAgICAgIDx0ZD48aT51bmF2YWlsYWJsZTwvaT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT4ieyIgKyBhcmd1bWVudEluZGV4ICsgIn0iPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICogICAgICAgPHRkPjxjb2RlPiJudWxsIjwvY29kZT4KKyAgICAqICAgIDx0cj4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIENob2ljZUZvcm1hdDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCkuaW5kZXhPZigneycpID49IDAgPzxicj4KKyAgICAqICAgICAgICAgICAobmV3IE1lc3NhZ2VGb3JtYXQoc3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCksIGdldExvY2FsZSgpKSkuZm9ybWF0KGFyZ3VtZW50KSA6CisgICAgKiAgICAgICAgICAgc3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+IT0gbnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIE51bWJlcjwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoZ2V0TG9jYWxlKCkpLmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIERhdGU8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBTdHJpbmc8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQ8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQudG9TdHJpbmcoKTwvY29kZT4KKyAgICAqIDwvdGFibGU+CisgICAgKiA8cD4KKyAgICAqIElmIDxjb2RlPnBvczwvY29kZT4gaXMgbm9uLW51bGwsIGFuZCByZWZlcnMgdG8KKyAgICAqIDxjb2RlPkZpZWxkLkFSR1VNRU5UPC9jb2RlPiwgdGhlIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBmb3JtYXR0ZWQKKyAgICAqIHN0cmluZyB3aWxsIGJlIHJldHVybmVkLgorICAgICoKKyAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICogQHBhcmFtIHBvcyBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLCBpZiBkZXNpcmVkLgorICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdFtdIGFyZ3VtZW50cywgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykKKyAgIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5mb3JtYXQoYXJndW1lbnRzLCByZXN1bHQsIHBvcyk7CisgICB9CisKKyAgIC8qKgorICAgICogQ3JlYXRlcyBhIE1lc3NhZ2VGb3JtYXQgd2l0aCB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdXNlcyBpdAorICAgICogdG8gZm9ybWF0IHRoZSBnaXZlbiBhcmd1bWVudHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICogPGJsb2NrcXVvdGU+CisgICAgKiAgICAgPGNvZGU+KG5ldyB7QGxpbmsgI01lc3NhZ2VGb3JtYXQoU3RyaW5nKSBNZXNzYWdlRm9ybWF0fShwYXR0ZXJuKSkue0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fShhcmd1bWVudHMsIG5ldyBTdHJpbmdCdWZmZXIoKSwgbnVsbCkudG9TdHJpbmcoKTwvY29kZT4KKyAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAqCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkLAorICAgICogICAgICAgICAgICBvciBpZiBhbiBhcmd1bWVudCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheQorICAgICogICAgICAgICAgICBpcyBub3Qgb2YgdGhlIHR5cGUgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpCisgICAgKiAgICAgICAgICAgIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvcm1hdChTdHJpbmcgcGF0dGVybiwgT2JqZWN0W10gYXJndW1lbnRzKSB7CisgICAgICAgcmV0dXJuIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBhcmd1bWVudHMpOworICAgfQorCisgICAvLyBPdmVycmlkZXMKKyAgIC8qKgorICAgICogRm9ybWF0cyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCBhcHBlbmRzIHRoZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPidzCisgICAgKiBwYXR0ZXJuLCB3aXRoIGZvcm1hdCBlbGVtZW50cyByZXBsYWNlZCBieSB0aGUgZm9ybWF0dGVkIG9iamVjdHMsIHRvIHRoZQorICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICogPGJsb2NrcXVvdGU+CisgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fSgoT2JqZWN0W10pIGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpPC9jb2RlPgorICAgICogPC9ibG9ja3F1b3RlPgorICAgICoKKyAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICogQHBhcmFtIHBvcyBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLCBpZiBkZXNpcmVkLgorICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZm9ybWF0KGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpOworICAgfQorCisKKyAgIC8qKgorICAgICogUGFyc2VzIHRoZSBzdHJpbmcuCisgICAgKgorICAgICogPHA+Q2F2ZWF0czogVGhlIHBhcnNlIG1heSBmYWlsIGluIGEgbnVtYmVyIG9mIGNpcmN1bXN0YW5jZXMuCisgICAgKiBGb3IgZXhhbXBsZToKKyAgICAqIDx1bD4KKyAgICAqIDxsaT5JZiBvbmUgb2YgdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgcGF0dGVybi4KKyAgICAqIDxsaT5JZiB0aGUgZm9ybWF0IG9mIGFuIGFyZ3VtZW50IGxvc2VzIGluZm9ybWF0aW9uLCBzdWNoIGFzCisgICAgKiAgICAgd2l0aCBhIGNob2ljZSBmb3JtYXQgd2hlcmUgYSBsYXJnZSBudW1iZXIgZm9ybWF0cyB0byAibWFueSIuCisgICAgKiA8bGk+RG9lcyBub3QgeWV0IGhhbmRsZSByZWN1cnNpb24gKHdoZXJlCisgICAgKiAgICAgdGhlIHN1YnN0aXR1dGVkIHN0cmluZ3MgY29udGFpbiB7bn0gcmVmZXJlbmNlcy4pCisgICAgKiA8bGk+V2lsbCBub3QgYWx3YXlzIGZpbmQgYSBtYXRjaCAob3IgdGhlIGNvcnJlY3QgbWF0Y2gpCisgICAgKiAgICAgaWYgc29tZSBwYXJ0IG9mIHRoZSBwYXJzZSBpcyBhbWJpZ3VvdXMuCisgICAgKiAgICAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwYXR0ZXJuICJ7MX0sezJ9IiBpcyB1c2VkIHdpdGggdGhlCisgICAgKiAgICAgc3RyaW5nIGFyZ3VtZW50cyB7ImEsYiIsICJjIn0sIGl0IHdpbGwgZm9ybWF0IGFzICJhLGIsYyIuCisgICAgKiAgICAgV2hlbiB0aGUgcmVzdWx0IGlzIHBhcnNlZCwgaXQgd2lsbCByZXR1cm4geyJhIiwgImIsYyJ9LgorICAgICogPGxpPklmIGEgc2luZ2xlIGFyZ3VtZW50IGlzIHBhcnNlZCBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc3RyaW5nLAorICAgICogICAgIHRoZW4gdGhlIGxhdGVyIHBhcnNlIHdpbnMuCisgICAgKiA8L3VsPgorICAgICogV2hlbiB0aGUgcGFyc2UgZmFpbHMsIHVzZSBQYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSB0byBmaW5kIG91dAorICAgICogd2hlcmUgaW4gdGhlIHN0cmluZyBkaWQgdGhlIHBhcnNpbmcgZmFpbGVkLiAgVGhlIHJldHVybmVkIGVycm9yCisgICAgKiBpbmRleCBpcyB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBzdWItcGF0dGVybnMgdGhhdCB0aGUgc3RyaW5nCisgICAgKiBpcyBjb21wYXJpbmcgd2l0aC4gIEZvciBleGFtcGxlLCBpZiB0aGUgcGFyc2luZyBzdHJpbmcgIkFBQSB7MH0gQkJCIgorICAgICogaXMgY29tcGFyaW5nIGFnYWluc3QgdGhlIHBhdHRlcm4gIkFBRCB7MH0gQkJCIiwgdGhlIGVycm9yIGluZGV4IGlzCisgICAgKiAwLiBXaGVuIGFuIGVycm9yIG9jY3VycywgdGhlIGNhbGwgdG8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC4KKyAgICAqIElmIHRoZSBzb3VyY2UgaXMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IGFycmF5LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LnBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgIH0KKworICAgLyoqCisgICAgKiBQYXJzZXMgdGV4dCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdpdmVuIHN0cmluZyB0byBwcm9kdWNlIGFuIG9iamVjdAorICAgICogYXJyYXkuCisgICAgKiBUaGUgbWV0aG9kIG1heSBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgKgorICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4gd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgKiBAcmV0dXJuIEFuIDxjb2RlPk9iamVjdDwvY29kZT4gYXJyYXkgcGFyc2VkIGZyb20gdGhlIHN0cmluZy4KKyAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZworICAgICogICAgICAgICAgICBjYW5ub3QgYmUgcGFyc2VkLgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LnBhcnNlKHNvdXJjZSk7CisgICB9CisKKyAgIC8qKgorICAgICogUGFyc2VzIHRleHQgZnJvbSBhIHN0cmluZyB0byBwcm9kdWNlIGFuIG9iamVjdCBhcnJheS4KKyAgICAqIDxwPgorICAgICogVGhlIG1ldGhvZCBhdHRlbXB0cyB0byBwYXJzZSB0ZXh0IHN0YXJ0aW5nIGF0IHRoZSBpbmRleCBnaXZlbiBieQorICAgICogPGNvZGU+cG9zPC9jb2RlPi4KKyAgICAqIElmIHBhcnNpbmcgc3VjY2VlZHMsIHRoZW4gdGhlIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgdXBkYXRlZAorICAgICogdG8gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB1c2VkIChwYXJzaW5nIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgKiB1c2UgYWxsIGNoYXJhY3RlcnMgdXAgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nKSwgYW5kIHRoZSBwYXJzZWQKKyAgICAqIG9iamVjdCBhcnJheSBpcyByZXR1cm5lZC4gVGhlIHVwZGF0ZWQgPGNvZGU+cG9zPC9jb2RlPiBjYW4gYmUgdXNlZCB0bworICAgICogaW5kaWNhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgbmV4dCBjYWxsIHRvIHRoaXMgbWV0aG9kLgorICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBpbmRleCBvZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG5vdAorICAgICogY2hhbmdlZCwgdGhlIGVycm9yIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgc2V0IHRvIHRoZSBpbmRleCBvZgorICAgICogdGhlIGNoYXJhY3RlciB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBudWxsIGlzIHJldHVybmVkLgorICAgICogPHA+CisgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgKgorICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4sIHBhcnQgb2Ygd2hpY2ggc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAqIEBwYXJhbSBwb3MgQSA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBvYmplY3Qgd2l0aCBpbmRleCBhbmQgZXJyb3IKKyAgICAqICAgICAgICAgICAgaW5kZXggaW5mb3JtYXRpb24gYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuIEluIGNhc2Ugb2YKKyAgICAqICAgICAgICAgZXJyb3IsIHJldHVybnMgbnVsbC4KKyAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+cG9zPC9jb2RlPiBpcyBudWxsLgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5wYXJzZShzb3VyY2UsIHBvcyk7CisgICB9CisKKyAgIC8qKgorICAgICogQ29udmVydCBhbiAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dGVybiBpbnRvIGEgc3RhbmRhcmQKKyAgICAqIHBhdHRlcm4uICBTdGFuZGFyZCBwYXR0ZXJucyB0cmVhdCBhbGwgYXBvc3Ryb3BoZXMgYXMKKyAgICAqIHF1b3Rlcywgd2hpY2ggaXMgcHJvYmxlbWF0aWMgaW4gc29tZSBsYW5ndWFnZXMsIGUuZy4gCisgICAgKiBGcmVuY2gsIHdoZXJlIGFwb3N0cm9waGUgaXMgY29tbW9ubHkgdXNlZC4gIFRoaXMgdXRpbGl0eQorICAgICogYXNzdW1lcyB0aGF0IG9ubHkgYW4gdW5wYWlyZWQgYXBvc3Ryb3BoZSBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAqIGEgYnJhY2UgaXMgYSB0cnVlIHF1b3RlLiAgT3RoZXIgdW5wYWlyZWQgYXBvc3Ryb3BoZXMgYXJlIHBhaXJlZCwKKyAgICAqIGFuZCB0aGUgcmVzdWx0aW5nIHN0YW5kYXJkIHBhdHRlcm4gc3RyaW5nIGlzIHJldHVybmVkLgorICAgICoKKyAgICAqIDxwPjxiPk5vdGU8L2I+IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIHJldHVybmVkIHBhdHRlcm4KKyAgICAqIGlzIGluZGVlZCBhIHZhbGlkIHBhdHRlcm4uICBUaGUgb25seSBlZmZlY3QgaXMgdG8gY29udmVydAorICAgICogYmV0d2VlbiBwYXR0ZXJucyBoYXZpbmcgZGlmZmVyZW50IHF1b3Rpbmcgc2VtYW50aWNzLgorICAgICoKKyAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dHRlcm4gdG8gY29udmVydAorICAgICogQHJldHVybiB0aGUgc3RhbmRhcmQgZXF1aXZhbGVudCBvZiB0aGUgb3JpZ2luYWwgcGF0dGVybgorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICBwdWJsaWMgc3RhdGljIFN0cmluZyBhdXRvUXVvdGVBcG9zdHJvcGhlKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0dGVybi5sZW5ndGgoKSoyKTsKKyAgICAgICBpbnQgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgIGludCBicmFjZUNvdW50ID0gMDsKKyAgICAgICBmb3IgKGludCBpID0gMCwgaiA9IHBhdHRlcm4ubGVuZ3RoKCk7IGkgPCBqOyArK2kpIHsKKyAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgICAgY2FzZSBTVEFURV9JTklUSUFMOgorICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX1NJTkdMRV9RVU9URTsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX01TR19FTEVNRU5UOworICAgICAgICAgICAgICAgICAgICsrYnJhY2VDb3VudDsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQVRFX1NJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9SSUdIVDoKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOX1FVT1RFOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQVRFX0lOX1FVT1RFOgorICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFURV9NU0dfRUxFTUVOVDoKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgICAgICsrYnJhY2VDb3VudDsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfUklHSFQ6CisgICAgICAgICAgICAgICAgICAgaWYgKC0tYnJhY2VDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgZGVmYXVsdDogLy8gTmV2ZXIgaGFwcGVucy4KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CisgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgfQorICAgICAgIC8vIEVuZCBvZiBzY2FuCisgICAgICAgaWYgKHN0YXRlID09IFNUQVRFX1NJTkdMRV9RVU9URSB8fCBzdGF0ZSA9PSBTVEFURV9JTl9RVU9URSkgeworICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgfQorICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICB9CisgICAKKyAgIC8qKgorICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuCisgICAgKgorICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgaW5zdGFuY2UuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2VGb3JtYXQoKGphdmEudGV4dC5NZXNzYWdlRm9ybWF0KW1lc3NhZ2VGb3JtYXQuY2xvbmUoKSk7CisgICB9CisKKyAgIC8qKgorICAgICogRXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byBtZXNzYWdlIGZvcm1hdCBvYmplY3RzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICB0cnkgeworICAgICAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5lcXVhbHMoKChNZXNzYWdlRm9ybWF0KW9iaikubWVzc2FnZUZvcm1hdCk7CisgICAgICAgfQorICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorICAgfQorCisgICAvKioKKyAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIG1lc3NhZ2UgZm9ybWF0IG9iamVjdC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0Lmhhc2hDb2RlKCk7CisgICB9CisKKyAgIC8qKgorICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAqLworICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKTsKKyAgIH0KKworICAgcHJpdmF0ZSBzdGF0aWMgRm9ybWF0IHVud3JhcChGb3JtYXQgZikgeworICAgICAgIGlmIChmIGluc3RhbmNlb2YgRGF0ZUZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gKChEYXRlRm9ybWF0KWYpLmRhdGVGb3JtYXQ7CisgICAgICAgfSBlbHNlIGlmIChmIGluc3RhbmNlb2YgTnVtYmVyRm9ybWF0KSB7CisgICAgICAgICAgIHJldHVybiAoKE51bWJlckZvcm1hdClmKS5udW1iZXJGb3JtYXQ7CisgICAgICAgfSBlbHNlIGlmIChmIGluc3RhbmNlb2YgTWVzc2FnZUZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gKChNZXNzYWdlRm9ybWF0KWYpLm1lc3NhZ2VGb3JtYXQ7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgcmV0dXJuIGY7CisgICAgICAgfQorICAgfQorCisgICBwcml2YXRlIHN0YXRpYyBGb3JtYXQgd3JhcChGb3JtYXQgZikgeworICAgICAgIGlmIChmIGluc3RhbmNlb2YgamF2YS50ZXh0LkRhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KChqYXZhLnRleHQuRGF0ZUZvcm1hdClmKTsKKyAgICAgICB9IGVsc2UgaWYgKGYgaW5zdGFuY2VvZiBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gbmV3IERlY2ltYWxGb3JtYXQoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KWYpOworICAgICAgIH0gZWxzZSBpZiAoZiBpbnN0YW5jZW9mIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0KSB7CisgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZUZvcm1hdCgoamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQpZik7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgcmV0dXJuIGY7CisgICAgICAgfQorICAgfQorCisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNJTkdMRV9RVU9URSA9ICdcJyc7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUkxZX0JSQUNFX0xFRlQgPSAneyc7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUkxZX0JSQUNFX1JJR0hUID0gJ30nOworCisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfSU5JVElBTCA9IDA7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfU0lOR0xFX1FVT1RFID0gMTsKKyAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFURV9JTl9RVU9URSA9IDI7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfTVNHX0VMRU1FTlQgPSAzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTQ3MmViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSw3NzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBpcyB0aGUgYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIG51bWJlcgorICogZm9ybWF0cy4gVGhpcyBjbGFzcyBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nCisgKiBudW1iZXJzLiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGFsc28gcHJvdmlkZXMgbWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcKKyAqIHdoaWNoIGxvY2FsZXMgaGF2ZSBudW1iZXIgZm9ybWF0cywgYW5kIHdoYXQgdGhlaXIgbmFtZXMgYXJlLgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4gb3IKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIDxwPgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzIGZvciBhbnkgbG9jYWxlLgorICogWW91ciBjb2RlIGNhbiBiZSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBsb2NhbGUgY29udmVudGlvbnMgZm9yCisgKiBkZWNpbWFsIHBvaW50cywgdGhvdXNhbmRzLXNlcGFyYXRvcnMsIG9yIGV2ZW4gdGhlIHBhcnRpY3VsYXIgZGVjaW1hbAorICogZGlnaXRzIHVzZWQsIG9yIHdoZXRoZXIgdGhlIG51bWJlciBmb3JtYXQgaXMgZXZlbiBkZWNpbWFsLgorICoKKyAqIDxwPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlIGZhY3RvcnkKKyAqIGNsYXNzIG1ldGhvZHM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAgbXlTdHJpbmcgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQobXlOdW1iZXIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBJZiB5b3UgYXJlIGZvcm1hdHRpbmcgbXVsdGlwbGUgbnVtYmVycywgaXQgaXMKKyAqIG1vcmUgZWZmaWNpZW50IHRvIGdldCB0aGUgZm9ybWF0IGFuZCB1c2UgaXQgbXVsdGlwbGUgdGltZXMgc28gdGhhdAorICogdGhlIHN5c3RlbSBkb2Vzbid0IGhhdmUgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICogbGFuZ3VhZ2UgYW5kIGNvdW50cnkgY29udmVudGlvbnMgbXVsdGlwbGUgdGltZXMuCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAqIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICogICAgIG91dHB1dC5wcmludGxuKG5mLmZvcm1hdChteU51bWJlcltpXSkgKyAiOyAiKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPi4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiBhbHNvIHVzZSBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdG8gcGFyc2UgbnVtYmVyczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIG15TnVtYmVyID0gbmYucGFyc2UobXlTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBVc2UgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG9yIDxjb2RlPmdldE51bWJlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBub3JtYWwgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEludGVnZXJJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGFuCisgKiBpbnRlZ2VyIG51bWJlciBmb3JtYXQuIFVzZSA8Y29kZT5nZXRDdXJyZW5jeUluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBjdXJyZW5jeSBudW1iZXIgZm9ybWF0LiBBbmQgdXNlIDxjb2RlPmdldFBlcmNlbnRJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGEKKyAqIGZvcm1hdCBmb3IgZGlzcGxheWluZyBwZXJjZW50YWdlcy4gV2l0aCB0aGlzIGZvcm1hdCwgYSBmcmFjdGlvbiBsaWtlCisgKiAwLjUzIGlzIGRpc3BsYXllZCBhcyA1MyUuCisgKgorICogPHA+CisgKiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgZGlzcGxheSBvZiBudW1iZXJzIHdpdGggc3VjaCBtZXRob2RzIGFzCisgKiA8Y29kZT5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiBvciB3YW50IHRvIGdpdmUgeW91ciB1c2VycyBtb3JlIGNvbnRyb2wsCisgKiB5b3UgY2FuIHRyeSBjYXN0aW5nIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IHlvdSBnZXQgZnJvbSB0aGUgZmFjdG9yeSBtZXRob2RzCisgKiB0byBhIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+LiBUaGlzIHdpbGwgd29yayBmb3IgdGhlIHZhc3QgbWFqb3JpdHkKKyAqIG9mIGxvY2FsZXM7IGp1c3QgcmVtZW1iZXIgdG8gcHV0IGl0IGluIGEgPGNvZGU+dHJ5PC9jb2RlPiBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPgorICogTnVtYmVyRm9ybWF0IGlzIGRlc2lnbmVkIHN1Y2ggdGhhdCBzb21lIGNvbnRyb2xzCisgKiB3b3JrIGZvciBmb3JtYXR0aW5nIGFuZCBvdGhlcnMgd29yayBmb3IgcGFyc2luZy4gIFRoZSBmb2xsb3dpbmcgaXMKKyAqIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgZWFjaCB0aGVzZSBjb250cm9sIG1ldGhvZHMsCisgKiA8cD4KKyAqIHNldFBhcnNlSW50ZWdlck9ubHkgOiBvbmx5IGFmZmVjdHMgcGFyc2luZywgZS5nLgorICogaWYgdHJ1ZSwgICIzNDU2Ljc4IiAtPiAzNDU2IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyICc2JykKKyAqIGlmIGZhbHNlLCAiMzQ1Ni43OCIgLT4gMzQ1Ni43OCAoYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24ganVzdCBhZnRlciAnOCcpCisgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIGZvcm1hdHRpbmcuICBJZiB5b3Ugd2FudCB0byBub3Qgc2hvdyBhIGRlY2ltYWwgcG9pbnQKKyAqIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIG5vIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCwgdXNlCisgKiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gb24gRGVjaW1hbEZvcm1hdC4KKyAqIDxwPgorICogWW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IGFuZCA8Y29kZT5mb3JtYXQ8L2NvZGU+CisgKiBtZXRob2RzIHdpdGggPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gYW5kIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IHRvCisgKiBhbGxvdyB5b3UgdG86CisgKiA8dWw+CisgKiA8bGk+IHByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcKKyAqIDxsaT4gYWxpZ24gdGhlIGRlY2ltYWwgcG9pbnQgYW5kIG90aGVyIGFyZWFzCisgKiA8L3VsPgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gYWxpZ24gbnVtYmVycyBpbiB0d28gd2F5czoKKyAqIDxvbD4KKyAqIDxsaT4gSWYgeW91IGFyZSB1c2luZyBhIG1vbm9zcGFjZWQgZm9udCB3aXRoIHNwYWNpbmcgZm9yIGFsaWdubWVudCwKKyAqICAgICAgeW91IGNhbiBwYXNzIHRoZSA8Y29kZT5GaWVsZFBvc2l0aW9uPC9jb2RlPiBpbiB5b3VyIGZvcm1hdCBjYWxsLCB3aXRoCisgKiAgICAgIDxjb2RlPmZpZWxkPC9jb2RlPiA9IDxjb2RlPklOVEVHRVJfRklFTEQ8L2NvZGU+LiBPbiBvdXRwdXQsCisgKiAgICAgIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPiB3aWxsIGJlIHNldCB0byB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlCisgKiAgICAgIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBpbnRlZ2VyIGFuZCB0aGUgZGVjaW1hbC4gQWRkCisgKiAgICAgIChkZXNpcmVkU3BhY2VDb3VudCAtIGdldEVuZEluZGV4KSBzcGFjZXMgYXQgdGhlIGZyb250IG9mIHRoZSBzdHJpbmcuCisgKgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIHByb3BvcnRpb25hbCBmb250cywKKyAqICAgICAgaW5zdGVhZCBvZiBwYWRkaW5nIHdpdGggc3BhY2VzLCBtZWFzdXJlIHRoZSB3aWR0aAorICogICAgICBvZiB0aGUgc3RyaW5nIGluIHBpeGVscyBmcm9tIHRoZSBzdGFydCB0byA8Y29kZT5nZXRFbmRJbmRleDwvY29kZT4uCisgKiAgICAgIFRoZW4gbW92ZSB0aGUgcGVuIGJ5CisgKiAgICAgIChkZXNpcmVkUGl4ZWxXaWR0aCAtIHdpZHRoVG9BbGlnbm1lbnRQb2ludCkgYmVmb3JlIGRyYXdpbmcgdGhlIHRleHQuCisgKiAgICAgIEl0IGFsc28gd29ya3Mgd2hlcmUgdGhlcmUgaXMgbm8gZGVjaW1hbCwgYnV0IHBvc3NpYmx5IGFkZGl0aW9uYWwKKyAqICAgICAgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBlLmcuLCB3aXRoIHBhcmVudGhlc2VzIGluIG5lZ2F0aXZlCisgKiAgICAgIG51bWJlcnM6ICIoMTIpIiBmb3IgLTEyLgorICogPC9vbD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqIDxwPgorICogTnVtYmVyIGZvcm1hdHMgYXJlIGdlbmVyYWxseSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgCisgKiBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKiA8cD4KKyAqCisgKiA8aDQ+RGVjaW1hbEZvcm1hdDwvaDQ+CisgKiA8cD5EZWNpbWFsRm9ybWF0IGlzIHRoZSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBOdW1iZXJGb3JtYXQsIGFuZCB0aGUKKyAqIE51bWJlckZvcm1hdCBBUEkgaXMgZXNzZW50aWFsbHkgYW4gYWJzdHJhY3Rpb24gZnJvbSBEZWNpbWFsRm9ybWF0J3MgQVBJLgorICogUmVmZXIgdG8gRGVjaW1hbEZvcm1hdCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIEFQSS48L3A+CisgKgorICogc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIHNlZSAgICAgICAgICBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQgbnVtYmVyRm9ybWF0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcGFyYW0gZGVsZWdhdGUgdGhlIE51bWJlckZvcm1hdCB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoamF2YS50ZXh0Lk51bWJlckZvcm1hdCBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IGRlbGVnYXRlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1pcnJvciBKYXZhJ3MgZGVmYXVsdCBwdWJsaWMKKyAgICAgKiBjb25zdHJ1Y3Rvci4gIEphdmEncyBpcyBub3QgY2FsbGFibGUgYXMgYSBwdWJsaWMgQVBJLCBzaW5jZQorICAgICAqIHRoZWlyIE51bWJlckZvcm1hdCBpcyBhYnN0cmFjdCwgc28gdGhpcyBpcyBvbmx5IHVzZWZ1bCB0bworICAgICAqIHN1YmNsYXNzZXMuICBJbiBnZW5lcmFsLCBzdWJjbGFzc2VzIHdpbGwgbm90IHdvcmsgdW5sZXNzCisgICAgICogdGhleSBtYW5pcHVsYXRlIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0KCkgeworICAgIAl0aGlzLm51bWJlckZvcm1hdCA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBjb25zdGFudCB1c2VkIHRvIGNvbnN0cnVjdCBhIEZpZWxkUG9zaXRpb24gb2JqZWN0LiBTaWduaWZpZXMgdGhhdAorICAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW50ZWdlciBwYXJ0IG9mIGEgZm9ybWF0dGVkIG51bWJlciBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRmllbGRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVEVHRVJfRklFTEQgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBjb25zdGFudCB1c2VkIHRvIGNvbnN0cnVjdCBhIEZpZWxkUG9zaXRpb24gb2JqZWN0LiBTaWduaWZpZXMgdGhhdAorICAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgZnJhY3Rpb24gcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9GSUVMRCA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGFuIG9iamVjdC4gIENoYW5nZTogcmVjb2duaXplcyA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LnBhcnNlKHNvdXJjZSwgcGFyc2VQb3NpdGlvbik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlcik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGZvcm1hdCBhIEJpZ0ludGVnZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlciwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBMb25nIGlmIHBvc3NpYmxlIChlLmcuLCB3aXRoaW4gdGhlIHJhbmdlIFtMb25nLk1JTl9WQUxVRSwKKyAgICAgKiBMb25nLk1BWF9WQUxVRV0gYW5kIHdpdGggbm8gZGVjaW1hbHMpLCBvdGhlcndpc2UgYSBEb3VibGUuCisgICAgICogSWYgSW50ZWdlck9ubHkgaXMgc2V0LCB3aWxsIHN0b3AgYXQgYSBkZWNpbWFsCisgICAgICogcG9pbnQgKG9yIGVxdWl2YWxlbnQ7IGUuZy4sIGZvciByYXRpb25hbCBudW1iZXJzICIxIDIvMyIsIHdpbGwgc3RvcAorICAgICAqIGFmdGVyIHRoZSAxKS4KKyAgICAgKiBEb2VzIG5vdCB0aHJvdyBhbiBleGNlcHRpb247IGlmIG5vIG9iamVjdCBjYW4gYmUgcGFyc2VkLCBpbmRleCBpcworICAgICAqIHVuY2hhbmdlZCEKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjcGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgdG8gcHJvZHVjZSBhIG51bWJlci4KKyAgICAgKiBUaGUgbWV0aG9kIG1pZ2h0IG5vdCB1c2UgdGhlIGVudGlyZSB0ZXh0IG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBBIFN0cmluZyB3aG9zZSBiZWdpbm5pbmcgc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIEEgTnVtYmVyIHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nIAorICAgICAqIGNhbm5vdCBiZSBwYXJzZWQuCisgICAgICogQHNlZSAjZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0KTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZm9ybWF0IHdpbGwgcGFyc2UgbnVtYmVycyBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEZvciBleGFtcGxlIGluIHRoZSBFbmdsaXNoIGxvY2FsZSwgd2l0aCBQYXJzZUludGVnZXJPbmx5IHRydWUsIHRoZQorICAgICAqIHN0cmluZyAiMTIzNC4iIHdvdWxkIGJlIHBhcnNlZCBhcyB0aGUgaW50ZWdlciB2YWx1ZSAxMjM0IGFuZCBwYXJzaW5nCisgICAgICogd291bGQgc3RvcCBhdCB0aGUgIi4iIGNoYXJhY3Rlci4gIFRoZSBkZWNpbWFsIHNlcGFyYXRvciBhY2NlcHRlZAorICAgICAqIGJ5IHRoZSBwYXJzZSBvcGVyYXRpb24gaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBzdWJjbGFzcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB3aWxsIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1BhcnNlSW50ZWdlck9ubHkoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuaXNQYXJzZUludGVnZXJPbmx5KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgb3Igbm90IG51bWJlcnMgc2hvdWxkIGJlIHBhcnNlZCBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEBwYXJhbSB2YWx1ZSB0cnVlIGlmIHRoaXMgc2hvdWxkIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJzZUludGVnZXJPbmx5KGJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLy89PT09PT09PT09PT09PSBMb2NhbGUgU3R1ZmYgPT09PT09PT09PT09PT09PT09PT09CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEludGVnZXJJbnN0YW5jZSwKKyAgICAgKiBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgTlVNQkVSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVySW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIElOVEVHRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5Mb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBudW1iZXIgZm9ybWF0IGlzIG5lZWRlZAorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBpbnRlZ2VyIHZhbHVlcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGN1cnJlbmN5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGN1cnJlbmN5CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIHBlcmNlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFBFUkNFTlRTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIHBlcmNlbnRzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIFBFUkNFTlRTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFNDSUVOVElGSUNTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHNjaWVudGlmaWMgbnVtYmVyIGZvcm1hdAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsaXN0IG9mIExvY2FsZXMgZm9yIHdoaWNoIE51bWJlckZvcm1hdHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsaXN0IG9mIExvY2FsZXMgZm9yIHdoaWNoIE51bWJlckZvcm1hdHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChhdmFpbGFibGVVTG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZhaWxhYmxlVUxvY2FsZXMgPSB1bG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVMb2NhbGVbXSlhdmFpbGFibGVVTG9jYWxlcy5jbG9uZSgpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gYXZhaWxhYmxlVUxvY2FsZXM7CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGlzIGZvcm1hdC4gRm9yIGV4YW1wbGUsIGluIHRoZQorICAgICAqIGVuX1VTIGxvY2FsZSwgd2l0aCBncm91cGluZyBvbiwgdGhlIG51bWJlciAxMjM0NTY3IHdpbGwgYmUgZm9ybWF0dGVkCisgICAgICogYXMgIjEsMjM0LDU2NyIuIFRoZSBncm91cGluZyBzZXBhcmF0b3IgYXMgd2VsbCBhcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwCisgICAgICogaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgaXMgZGV0ZXJtaW5lZCBieSBzdWJjbGFzc2VzIG9mIE51bWJlckZvcm1hdC4KKyAgICAgKiBHcm91cGluZyBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZAorICAgICAqIEBzZWUgI3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzR3JvdXBpbmdVc2VkKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmlzR3JvdXBpbmdVc2VkKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgb3Igbm90IGdyb3VwaW5nIHdpbGwgYmUgdXNlZCBpbiB0aGlzIGZvcm1hdC4gIEdyb3VwaW5nCisgICAgICogYWZmZWN0cyBib3RoIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcuCisgICAgICogQHNlZSAjaXNHcm91cGluZ1VzZWQKKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdHJ1ZSB0byB1c2UgZ3JvdXBpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdVc2VkKGJvb2xlYW4gbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldEdyb3VwaW5nVXNlZChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA0MCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzIHZhbHVlIGlzIGV4Y2VlZGVkIGlzCisgICAgICogc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG11c3QgYmUgPj0gbWluaW11bUludGVnZXJEaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1heGltdW1JbnRlZ2VyRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1JbnRlZ2VyRGlnaXRzLCB0aGVuIG1pbmltdW1JbnRlZ2VyRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiAgU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMSwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24gdGhlCisgICAgICogbGVmdCB3aXRoIHRoZSBsb2NhbGUtc3BlY2lmaWMgJzAnIGNoYXJhY3RlciB0byBlbnN1cmUgYXQgbGVhc3QgdGhpcworICAgICAqIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGlzIG11c3QgYmUgPD0gbWF4aW11bUludGVnZXJEaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1pbmltdW1JbnRlZ2VyRGlnaXRzIGlzIG1vcmUgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1heGltdW1JbnRlZ2VyRGlnaXRzLCB0aGVuIG1heGltdW1JbnRlZ2VyRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBTdWJjbGFzc2VzIG1pZ2h0IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUludGVnZXJEaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24KKyAgICAgKiBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMywgd2hpY2ggc3ViY2xhc3NlcworICAgICAqIGNhbiBvdmVycmlkZS4gIFdoZW4gZm9ybWF0dGluZywgdGhlIGV4YWN0IGJlaGF2aW9yIHdoZW4gdGhpcworICAgICAqIHZhbHVlIGlzIGV4Y2VlZGVkIGlzIHN1YmNsYXNzLXNwZWNpZmljLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyAKKyAgICAgKiBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWF4aW11bUZyYWN0aW9uRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBUaGUgY29uY3JldGUgc3ViY2xhc3MgbWF5IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24KKyAgICAgKiB0aGUgcmlnaHQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0CisgICAgICogdGhpcyBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhpcyBtdXN0IGJlIDw9IG1heGltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWluaW11bUZyYWN0aW9uRGlnaXRzIGV4Y2VlZHMgdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtYXhpbXVtRnJhY3Rpb25EaWdpdHMsIHRoZW4gbWF4aW11bUZyYWN0aW9uRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWluaW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKG5ld1ZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC50b1N0cmluZygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdCgoamF2YS50ZXh0Lk51bWJlckZvcm1hdCludW1iZXJGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzLiAgVHdvIE51bWJlckZvcm1hdHMgYXJlIGVxdWFsIGlmIHRoZXkgYXJlIG9mIHRoZSBzYW1lIGNsYXNzCisgICAgICogYW5kIHRoZSBzZXR0aW5ncyAoZ3JvdXBpbmdVc2VkLCBwYXJzZUludGVnZXJPbmx5LCBtYXhpbXVtSW50ZWdlckRpZ2l0cywgZXRjLgorICAgICAqIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgZXF1YWwgdG8gdGhpcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5lcXVhbHMoKChOdW1iZXJGb3JtYXQpb2JqKS5udW1iZXJGb3JtYXQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0Lmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICBMb2NhbGUgbG9jYWxlID0gZGVzaXJlZExvY2FsZS50b0xvY2FsZSgpOworICAgICAgICBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG5mID0gbnVsbDsKKyAgICAgICAgc3dpdGNoIChjaG9pY2UpIHsKKyAgICAgICAgY2FzZSBOVU1CRVJTVFlMRTogbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICBjYXNlIENVUlJFTkNZU1RZTEU6IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICBjYXNlIFBFUkNFTlRTVFlMRTogbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgY2FzZSBTQ0lFTlRJRklDU1RZTEU6IG5mID0gbmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KCIjRTAiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlKSk7IAorICAgICAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElOVEVHRVJTVFlMRTogCisgICAgICAgICAgICBpZiAodW5jaGVja2VkKSB7CisgICAgICAgICAgICAgICAgdW5jaGVja2VkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xhc3NbXSBhcmdzID0geyBqYXZhLnV0aWwuTG9jYWxlLmNsYXNzIH07CisgICAgICAgICAgICAgICAgICAgIGludGVnZXIxNEFQSSA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuY2xhc3MuZ2V0TWV0aG9kKCJnZXRJbnRlZ2VySW5zdGFuY2UiLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGludGVnZXIxNEFQSSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gYXJncyA9IHsgbG9jYWxlIH07CisgICAgICAgICAgICAgICAgICAgIG5mID0gKGphdmEudGV4dC5OdW1iZXJGb3JtYXQpaW50ZWdlcjE0QVBJLmludm9rZShudWxsLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyMTRBUEkgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGludGVnZXIxNEFQSSA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGRuJ3QgaGFwcGVuLCBidXQgbG9jYWxlIG1pZ2h0IGJlIG51bGwsIGZvciBleGFtcGxlCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIHRocm93IGF3YXkgb3VyIG1ldGhvZCBiZWNhdXNlIHNvbWVvbmUKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGVkIHVzIHdpdGggYSBiYWQgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5mID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UobG9jYWxlKTsgCisgICAgICAgICAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDApOworICAgICAgICAgICAgICAgIG5mLnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdChuZik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gdW5jaGVja2VkID0gdHJ1ZTsKKyAgICBwcml2YXRlIHN0YXRpYyBNZXRob2QgaW50ZWdlcjE0QVBJOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1CRVJTVFlMRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZU1RZTEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQRVJDRU5UU1RZTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDU1RZTEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSU1RZTEUgPSA0OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYmFkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9TaW1wbGVEYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwzODIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBpcyBhIGNvbmNyZXRlIGNsYXNzIGZvciBmb3JtYXR0aW5nIGFuZAorICogcGFyc2luZyBkYXRlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBJdCBhbGxvd3MgZm9yIGZvcm1hdHRpbmcKKyAqIChkYXRlIC0+IHRleHQpLCBwYXJzaW5nICh0ZXh0IC0+IGRhdGUpLCBhbmQgbm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPlNpbXBsZURhdGVGb3JtYXQ8L2NvZGU+IGFsbG93cyB5b3UgdG8gc3RhcnQgYnkgY2hvb3NpbmcKKyAqIGFueSB1c2VyLWRlZmluZWQgcGF0dGVybnMgZm9yIGRhdGUtdGltZSBmb3JtYXR0aW5nLiBIb3dldmVyLCB5b3UKKyAqIGFyZSBlbmNvdXJhZ2VkIHRvIGNyZWF0ZSBhIGRhdGUtdGltZSBmb3JtYXR0ZXIgd2l0aCBlaXRoZXIKKyAqIDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sIDxjb2RlPmdldERhdGVJbnN0YW5jZTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPiBpbiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4gRWFjaAorICogb2YgdGhlc2UgY2xhc3MgbWV0aG9kcyBjYW4gcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlciBpbml0aWFsaXplZAorICogd2l0aCBhIGRlZmF1bHQgZm9ybWF0IHBhdHRlcm4uIFlvdSBtYXkgbW9kaWZ5IHRoZSBmb3JtYXQgcGF0dGVybgorICogdXNpbmcgdGhlIDxjb2RlPmFwcGx5UGF0dGVybjwvY29kZT4gbWV0aG9kcyBhcyBkZXNpcmVkLgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhlc2UgbWV0aG9kcywgc2VlCisgKiB7QGxpbmsgRGF0ZUZvcm1hdH0uCisgKgorICogPHA+CisgKiA8c3Ryb25nPlRpbWUgRm9ybWF0IFN5bnRheDo8L3N0cm9uZz4KKyAqIDxwPgorICogVG8gc3BlY2lmeSB0aGUgdGltZSBmb3JtYXQgdXNlIGEgPGVtPnRpbWUgcGF0dGVybjwvZW0+IHN0cmluZy4KKyAqIEluIHRoaXMgcGF0dGVybiwgYWxsIEFTQ0lJIGxldHRlcnMgYXJlIHJlc2VydmVkIGFzIHBhdHRlcm4gbGV0dGVycywKKyAqIHdoaWNoIGFyZSBkZWZpbmVkIGFzIHRoZSBmb2xsb3dpbmc6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTeW1ib2wgICBNZWFuaW5nICAgICAgICAgICAgICAgICBQcmVzZW50YXRpb24gICAgICAgIEV4YW1wbGUKKyAqIC0tLS0tLSAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLQorICogRyAgICAgICAgZXJhIGRlc2lnbmF0b3IgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBBRAorICogeSYjeDIwMjA7ICAgICAgIHllYXIgICAgICAgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NgorICogWSogICAgICAgeWVhciAod2VlayBvZiB5ZWFyKSAgICAgKE51bWJlcikgICAgICAgICAgICAxOTk3CisgKiB1KiAgICAgICBleHRlbmRlZCB5ZWFyICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDQ2MDEKKyAqIE0gICAgICAgIG1vbnRoIGluIHllYXIgICAgICAgICAgIChUZXh0ICYgTnVtYmVyKSAgICAgSnVseSAmIDA3CisgKiBkICAgICAgICBkYXkgaW4gbW9udGggICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDEwCisgKiBoICAgICAgICBob3VyIGluIGFtL3BtICgxfjEyKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDEyCisgKiBIICAgICAgICBob3VyIGluIGRheSAoMH4yMykgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIG0gICAgICAgIG1pbnV0ZSBpbiBob3VyICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMzAKKyAqIHMgICAgICAgIHNlY29uZCBpbiBtaW51dGUgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgNTUKKyAqIFMgICAgICAgIGZyYWN0aW9uYWwgc2Vjb25kICAgICAgIChOdW1iZXIpICAgICAgICAgICAgOTc4CisgKiBFICAgICAgICBkYXkgb2Ygd2VlayAgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFR1ZXNkYXkKKyAqIGUqICAgICAgIGRheSBvZiB3ZWVrIChsb2NhbCAxfjcpIChOdW1iZXIpICAgICAgICAgICAgMgorICogRCAgICAgICAgZGF5IGluIHllYXIgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxODkKKyAqIEYgICAgICAgIGRheSBvZiB3ZWVrIGluIG1vbnRoICAgIChOdW1iZXIpICAgICAgICAgICAgMiAoMm5kIFdlZCBpbiBKdWx5KQorICogdyAgICAgICAgd2VlayBpbiB5ZWFyICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNworICogVyAgICAgICAgd2VlayBpbiBtb250aCAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyCisgKiBhICAgICAgICBhbS9wbSBtYXJrZXIgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFBNCisgKiBrICAgICAgICBob3VyIGluIGRheSAoMX4yNCkgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI0CisgKiBLICAgICAgICBob3VyIGluIGFtL3BtICgwfjExKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIHogICAgICAgIHRpbWUgem9uZSAgICAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgUGFjaWZpYyBTdGFuZGFyZCBUaW1lCisgKiBaICAgICAgICB0aW1lIHpvbmUgKFJGQyA4MjIpICAgICAoTnVtYmVyKSAgICAgICAgICAgIC0wODAwCisgKiB2ICAgICAgICB0aW1lIHpvbmUgKGdlbmVyaWMpICAgICAoVGV4dCkgICAgICAgICAgICAgIFBhY2lmaWMgVGltZQorICogZyogICAgICAgSnVsaWFuIGRheSAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNDUxMzM0CisgKiBBKiAgICAgICBtaWxsaXNlY29uZHMgaW4gZGF5ICAgICAoTnVtYmVyKSAgICAgICAgICAgIDY5NTQwMDAwCisgKiAnICAgICAgICBlc2NhcGUgZm9yIHRleHQgICAgICAgICAoRGVsaW1pdGVyKSAgICAgICAgICdEYXRlPScKKyAqICcnICAgICAgIHNpbmdsZSBxdW90ZSAgICAgICAgICAgIChMaXRlcmFsKSAgICAgICAgICAgJ28nJ2Nsb2NrJworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8dHQ+PGI+KjwvYj48L3R0PiBUaGVzZSBpdGVtcyBhcmUgbm90IHN1cHBvcnRlZCBieSBKYXZhJ3MgU2ltcGxlRGF0ZUZvcm1hdC48YnI+CisgKiA8dHQ+PGI+JiN4MjAyMDs8L2I+PC90dD4gSUNVIGludGVycHJldHMgYSBzaW5nbGUgJ3knIGRpZmZlcmVudGx5IHRoYW4gSmF2YS48L3A+CisgKiA8cD4KKyAqIFRoZSBjb3VudCBvZiBwYXR0ZXJuIGxldHRlcnMgZGV0ZXJtaW5lIHRoZSBmb3JtYXQuCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQpPC9zdHJvbmc+OiA0IG9yIG1vcmUgcGF0dGVybiBsZXR0ZXJzLS11c2UgZnVsbCBmb3JtLAorICogJmx0OyA0LS11c2Ugc2hvcnQgb3IgYWJicmV2aWF0ZWQgZm9ybSBpZiBvbmUgZXhpc3RzLgorICogPHA+CisgKiA8c3Ryb25nPihOdW1iZXIpPC9zdHJvbmc+OiB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLiBTaG9ydGVyCisgKiBudW1iZXJzIGFyZSB6ZXJvLXBhZGRlZCB0byB0aGlzIGFtb3VudC4gWWVhciBpcyBoYW5kbGVkIHNwZWNpYWxseTsKKyAqIHRoYXQgaXMsIGlmIHRoZSBjb3VudCBvZiAneScgaXMgMiwgdGhlIFllYXIgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gMiBkaWdpdHMuCisgKiAoZS5nLiwgaWYgInl5eXkiIHByb2R1Y2VzICIxOTk3IiwgInl5IiBwcm9kdWNlcyAiOTciLikKKyAqIFVubGlrZSBvdGhlciBmaWVsZHMsIGZyYWN0aW9uYWwgc2Vjb25kcyBhcmUgcGFkZGVkIG9uIHRoZSByaWdodCB3aXRoIHplcm8uCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQgJiBOdW1iZXIpPC9zdHJvbmc+OiAzIG9yIG92ZXIsIHVzZSB0ZXh0LCBvdGhlcndpc2UgdXNlIG51bWJlci4KKyAqIDxwPgorICogQW55IGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4gdGhhdCBhcmUgbm90IGluIHRoZSByYW5nZXMgb2YgWydhJy4uJ3onXQorICogYW5kIFsnQScuLidaJ10gd2lsbCBiZSB0cmVhdGVkIGFzIHF1b3RlZCB0ZXh0LiBGb3IgaW5zdGFuY2UsIGNoYXJhY3RlcnMKKyAqIGxpa2UgJzonLCAnLicsICcgJywgJyMnIGFuZCAnQCcgd2lsbCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyB0aW1lIHRleHQKKyAqIGV2ZW4gdGhleSBhcmUgbm90IGVtYnJhY2VkIHdpdGhpbiBzaW5nbGUgcXVvdGVzLgorICogPHA+CisgKiBBIHBhdHRlcm4gY29udGFpbmluZyBhbnkgaW52YWxpZCBwYXR0ZXJuIGxldHRlciB3aWxsIHJlc3VsdCBpbiBhIHRocm93bgorICogZXhjZXB0aW9uIGR1cmluZyBmb3JtYXR0aW5nIG9yIHBhcnNpbmcuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkV4YW1wbGVzIFVzaW5nIHRoZSBVUyBMb2NhbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBGb3JtYXQgUGF0dGVybiAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQKKyAqIC0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0KKyAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB2dnZ2IiAtPj4gIDE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUGFjaWZpYyBUaW1lCisgKiAiRUVFLCBNTU0gZCwgJyd5eSIgICAgICAgICAgICAgICAgLT4+ICBXZWQsIEp1bHkgMTAsICc5NgorICogImg6bW0gYSIgICAgICAgICAgICAgICAgICAgICAgICAgIC0+PiAgMTI6MDggUE0KKyAqICJoaCAnbycnY2xvY2snIGEsIHp6enoiICAgICAgICAgICAtPj4gIDEyIG8nY2xvY2sgUE0sIFBhY2lmaWMgRGF5bGlnaHQgVGltZQorICogIks6bW0gYSwgdnZ2IiAgICAgICAgICAgICAgICAgICAgIC0+PiAgMDowMCBQTSwgUFQKKyAqICJ5eXl5eS5NTU1NTS5kZCBHR0cgaGg6bW0gYWFhIiAgICAtPj4gIDAxOTk2Lkp1bHkuMTAgQUQgMTI6MDggUE0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHN0cm9uZz5Db2RlIFNhbXBsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCAiUFNUIik7CisgKiBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgKiBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogPGJyPgorICogLy8gRm9ybWF0IHRoZSBjdXJyZW50IHRpbWUuCisgKiBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcgorICogICAgID0gbmV3IFNpbXBsZURhdGVGb3JtYXQgKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyBhIHp6eiIpOworICogRGF0ZSBjdXJyZW50VGltZV8xID0gbmV3IERhdGUoKTsKKyAqIFN0cmluZyBkYXRlU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAqIDxicj4KKyAqIC8vIFBhcnNlIHRoZSBwcmV2aW91cyBzdHJpbmcgYmFjayBpbnRvIGEgRGF0ZS4KKyAqIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgKiBEYXRlIGN1cnJlbnRUaW1lXzIgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogSW4gdGhlIGV4YW1wbGUsIHRoZSB0aW1lIHZhbHVlIDxjb2RlPmN1cnJlbnRUaW1lXzI8L2NvZGU+IG9idGFpbmVkIGZyb20KKyAqIHBhcnNpbmcgd2lsbCBiZSBlcXVhbCB0byA8Y29kZT5jdXJyZW50VGltZV8xPC9jb2RlPi4gSG93ZXZlciwgdGhleSBtYXkgbm90IGJlCisgKiBlcXVhbCBpZiB0aGUgYW0vcG0gbWFya2VyICdhJyBpcyBsZWZ0IG91dCBmcm9tIHRoZSBmb3JtYXQgcGF0dGVybiB3aGlsZQorICogdGhlICJob3VyIGluIGFtL3BtIiBwYXR0ZXJuIHN5bWJvbCBpcyB1c2VkLiBUaGlzIGluZm9ybWF0aW9uIGxvc3MgY2FuCisgKiBoYXBwZW4gd2hlbiBmb3JtYXR0aW5nIHRoZSB0aW1lIGluIFBNLgorICoKKyAqIDxwPgorICogV2hlbiBwYXJzaW5nIGEgZGF0ZSBzdHJpbmcgdXNpbmcgdGhlIGFiYnJldmlhdGVkIHllYXIgcGF0dGVybiAoInl5IiksCisgKiBTaW1wbGVEYXRlRm9ybWF0IG11c3QgaW50ZXJwcmV0IHRoZSBhYmJyZXZpYXRlZCB5ZWFyCisgKiByZWxhdGl2ZSB0byBzb21lIGNlbnR1cnkuICBJdCBkb2VzIHRoaXMgYnkgYWRqdXN0aW5nIGRhdGVzIHRvIGJlCisgKiB3aXRoaW4gODAgeWVhcnMgYmVmb3JlIGFuZCAyMCB5ZWFycyBhZnRlciB0aGUgdGltZSB0aGUgU2ltcGxlRGF0ZUZvcm1hdAorICogaW5zdGFuY2UgaXMgY3JlYXRlZC4gRm9yIGV4YW1wbGUsIHVzaW5nIGEgcGF0dGVybiBvZiAiTU0vZGQveXkiIGFuZCBhCisgKiBTaW1wbGVEYXRlRm9ybWF0IGluc3RhbmNlIGNyZWF0ZWQgb24gSmFuIDEsIDE5OTcsICB0aGUgc3RyaW5nCisgKiAiMDEvMTEvMTIiIHdvdWxkIGJlIGludGVycHJldGVkIGFzIEphbiAxMSwgMjAxMiB3aGlsZSB0aGUgc3RyaW5nICIwNS8wNC82NCIKKyAqIHdvdWxkIGJlIGludGVycHJldGVkIGFzIE1heSA0LCAxOTY0LgorICogRHVyaW5nIHBhcnNpbmcsIG9ubHkgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGV4YWN0bHkgdHdvIGRpZ2l0cywgYXMgZGVmaW5lZCBieQorICoge0BsaW5rIGphdmEubGFuZy5DaGFyYWN0ZXIjaXNEaWdpdChjaGFyKX0sIHdpbGwgYmUgcGFyc2VkIGludG8gdGhlIGRlZmF1bHQKKyAqIGNlbnR1cnkuCisgKiBBbnkgb3RoZXIgbnVtZXJpYyBzdHJpbmcsIHN1Y2ggYXMgYSBvbmUgZGlnaXQgc3RyaW5nLCBhIHRocmVlIG9yIG1vcmUgZGlnaXQKKyAqIHN0cmluZywgb3IgYSB0d28gZGlnaXQgc3RyaW5nIHRoYXQgaXNuJ3QgYWxsIGRpZ2l0cyAoZm9yIGV4YW1wbGUsICItMSIpLCBpcworICogaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LiAgU28gIjAxLzAyLzMiIG9yICIwMS8wMi8wMDMiIGFyZSBwYXJzZWQsIHVzaW5nIHRoZQorICogc2FtZSBwYXR0ZXJuLCBhcyBKYW4gMiwgMyBBRC4gIExpa2V3aXNlLCAiMDEvMDIvLTMiIGlzIHBhcnNlZCBhcyBKYW4gMiwgNCBCQy4KKyAqCisgKiA8cD4KKyAqIElmIHRoZSB5ZWFyIHBhdHRlcm4gZG9lcyBub3QgaGF2ZSBleGFjdGx5IHR3byAneScgY2hhcmFjdGVycywgdGhlIHllYXIgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseSwgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIGRpZ2l0cy4gIFNvIHVzaW5nIHRoZQorICogcGF0dGVybiAiTU0vZGQveXl5eSIsICIwMS8xMS8xMiIgcGFyc2VzIHRvIEphbiAxMSwgMTIgQS5ELgorICoKKyAqIDxwPgorICogV2hlbiBudW1lcmljIGZpZWxkcyBhYnV0IG9uZSBhbm90aGVyIGRpcmVjdGx5LCB3aXRoIG5vIGludGVydmVuaW5nIGRlbGltaXRlcgorICogY2hhcmFjdGVycywgdGhleSBjb25zdGl0dXRlIGEgcnVuIG9mIGFidXR0aW5nIG51bWVyaWMgZmllbGRzLiAgU3VjaCBydW5zIGFyZQorICogcGFyc2VkIHNwZWNpYWxseS4gIEZvciBleGFtcGxlLCB0aGUgZm9ybWF0ICJISG1tc3MiIHBhcnNlcyB0aGUgaW5wdXQgdGV4dAorICogIjEyMzQ1NiIgdG8gMTI6MzQ6NTYsIHBhcnNlcyB0aGUgaW5wdXQgdGV4dCAiMTIzNDUiIHRvIDE6MjM6NDUsIGFuZCBmYWlscyB0bworICogcGFyc2UgIjEyMzQiLiAgSW4gb3RoZXIgd29yZHMsIHRoZSBsZWZ0bW9zdCBmaWVsZCBvZiB0aGUgcnVuIGlzIGZsZXhpYmxlLAorICogd2hpbGUgdGhlIG90aGVycyBrZWVwIGEgZml4ZWQgd2lkdGguICBJZiB0aGUgcGFyc2UgZmFpbHMgYW55d2hlcmUgaW4gdGhlIHJ1biwKKyAqIHRoZW4gdGhlIGxlZnRtb3N0IGZpZWxkIGlzIHNob3J0ZW5lZCBieSBvbmUgY2hhcmFjdGVyLCBhbmQgdGhlIGVudGlyZSBydW4gaXMKKyAqIHBhcnNlZCBhZ2Fpbi4gVGhpcyBpcyByZXBlYXRlZCB1bnRpbCBlaXRoZXIgdGhlIHBhcnNlIHN1Y2NlZWRzIG9yIHRoZQorICogbGVmdG1vc3QgZmllbGQgaXMgb25lIGNoYXJhY3RlciBpbiBsZW5ndGguICBJZiB0aGUgcGFyc2Ugc3RpbGwgZmFpbHMgYXQgdGhhdAorICogcG9pbnQsIHRoZSBwYXJzZSBvZiB0aGUgcnVuIGZhaWxzLgorICoKKyAqIDxwPgorICogRm9yIHRpbWUgem9uZXMgdGhhdCBoYXZlIG5vIG5hbWVzLCB1c2Ugc3RyaW5ncyBHTVQraG91cnM6bWludXRlcyBvcgorICogR01ULWhvdXJzOm1pbnV0ZXMuCisgKgorICogPHA+CisgKiBUaGUgY2FsZW5kYXIgZGVmaW5lcyB3aGF0IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHRoZSBmaXJzdCB3ZWVrCisgKiBvZiB0aGUgeWVhciwgd2hldGhlciBob3VycyBhcmUgemVybyBiYXNlZCBvciBub3QgKDAgdnMgMTIgb3IgMjQpLCBhbmQgdGhlCisgKiB0aW1lIHpvbmUuIFRoZXJlIGlzIG9uZSBjb21tb24gZGVjaW1hbCBmb3JtYXQgdG8gaGFuZGxlIGFsbCB0aGUgbnVtYmVyczsKKyAqIHRoZSBkaWdpdCBjb3VudCBpcyBoYW5kbGVkIHByb2dyYW1tYXRpY2FsbHkgYWNjb3JkaW5nIHRvIHRoZSBwYXR0ZXJuLgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIERhdGUgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIHNlcGFyYXRlCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4KKyAqCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXQgZXh0ZW5kcyBEYXRlRm9ybWF0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxOworICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuICA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KCkgeworICAgICAgICBzdXBlcihuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlLiAgPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kIGxvY2FsZS4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiB0byB1c2UKKyAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgdG8gdXNlIGZvciBsb2NhbGl6YXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvYykgeworICAgICAgICBzdXBlcihuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgbG9jKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIGxvYyB0aGUgdWxvY2FsZSB0byB1c2UgZm9yIGxvY2FsaXphdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHRoaXMocGF0dGVybiwgbG9jLnRvTG9jYWxlKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQKKyAgICAgKiBsb2NhbGUtc3BlY2lmaWMgc3ltYm9sIGRhdGEuCisgICAgICogV2FybmluZzogdXNlcyBkZWZhdWx0IGxvY2FsZSBmb3IgZGlnaXRzIQorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIHRvIHVzZQorICAgICAqIEBwYXJhbSBmb3JtYXREYXRhIHRoZSBzeW1ib2xzIHRvIHVzZSBmb3IgbG9jYWxpemF0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEpIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIGZvcm1hdERhdGEuZGZzKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSAxMDAteWVhciBwZXJpb2QgMi1kaWdpdCB5ZWFycyB3aWxsIGJlIGludGVycHJldGVkIGFzIGJlaW5nIGluCisgICAgICogdG8gYmVnaW4gb24gdGhlIGRhdGUgdGhlIHVzZXIgc3BlY2lmaWVzLgorICAgICAqIEBwYXJhbSBzdGFydERhdGUgRHVyaW5nIHBhcnNpbmcsIHR3byBkaWdpdCB5ZWFycyB3aWxsIGJlIHBsYWNlZCBpbiB0aGUgcmFuZ2UKKyAgICAgKiA8Y29kZT5zdGFydERhdGU8L2NvZGU+IHRvIDxjb2RlPnN0YXJ0RGF0ZSArIDEwMCB5ZWFyczwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0MkRpZ2l0WWVhclN0YXJ0KERhdGUgc3RhcnREYXRlKSB7CisgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkuc2V0MkRpZ2l0WWVhclN0YXJ0KHN0YXJ0RGF0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBiZWdpbm5pbmcgZGF0ZSBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgYXJlIGludGVycHJldGVkCisgICAgICogYXMgYmVpbmcgd2l0aGluLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSAxMDAteWVhciBwZXJpb2QgaW50byB3aGljaCB0d28gZGlnaXQgeWVhcnMgYXJlCisgICAgICogcGFyc2VkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS5nZXQyRGlnaXRZZWFyU3RhcnQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBEYXRlRm9ybWF0LgorICAgICAqIDxwPkZvcm1hdHMgYSBkYXRlIG9yIHRpbWUsIHdoaWNoIGlzIHRoZSBzdGFuZGFyZCBtaWxsaXMKKyAgICAgKiBzaW5jZSBKYW51YXJ5IDEsIDE5NzAsIDAwOjAwOjAwIEdNVC4KKyAgICAgKiA8cD5FeGFtcGxlOiB1c2luZyB0aGUgVVMgbG9jYWxlOgorICAgICAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB6enoiIC0+PiAxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVAorICAgICAqIEBwYXJhbSBjYWwgdGhlIGNhbGVuZGFyIHdob3NlIGRhdGUtdGltZSB2YWx1ZSBpcyB0byBiZSBmb3JtYXR0ZWQgaW50byBhIGRhdGUtdGltZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB3aGVyZSB0aGUgbmV3IGRhdGUtdGltZSB0ZXh0IGlzIHRvIGJlIGFwcGVuZGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgZm9ybWF0dGluZyBwb3NpdGlvbi4gT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUtdGltZSBzdHJpbmcuCisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQ2FsZW5kYXIgY2FsLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdDsKKyAgICAgICAgc3luY2hyb25pemVkKGRhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBvbGRDYWwgPSBkYXRlRm9ybWF0LmdldENhbGVuZGFyKCk7CisgICAgICAgICAgICBkYXRlRm9ybWF0LnNldENhbGVuZGFyKGNhbC5jYWxlbmRhcik7CisgICAgICAgICAgICByZXN1bHQgPSBkYXRlRm9ybWF0LmZvcm1hdChjYWwuZ2V0VGltZSgpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICAgICAgZGF0ZUZvcm1hdC5zZXRDYWxlbmRhcihvbGRDYWwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdAorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3MpIHsKKyAgICAgICAgLy8gVE9ETzogY2Fubm90IHNldCB0aGUgcGFyc2VkIHRpbWV6b25lLCBkb2N1bWVudD8KKyAgICAgICAgY2FsLnNldFRpbWUoZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvcykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcGF0dGVybiBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLnRvTG9jYWxpemVkUGF0dGVybigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHVubG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRvIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0byB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLmFwcGx5TG9jYWxpemVkUGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHJldHVybiBhIGNvcHkgb2YgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhpcyBkYXRlLXRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyBnZXREYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0U3ltYm9scygoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLmdldERhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdFN5bWJvbHMgdGhlIG5ldyBzeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGF0ZUZvcm1hdFN5bWJvbHMoRGF0ZUZvcm1hdFN5bWJvbHMgbmV3Rm9ybWF0U3ltYm9scykgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLnNldERhdGVGb3JtYXRTeW1ib2xzKG5ld0Zvcm1hdFN5bWJvbHMuZGZzKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGb3IgY2xvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIHNkZgorICAgICAqLworICAgIHByaXZhdGUgU2ltcGxlRGF0ZUZvcm1hdChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBzZGYpIHsKKyAgICAgICAgc3VwZXIoc2RmKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vIGhhc2hDb2RlLCBlcXVhbHMsIGNsb25lIHVzZSBEYXRlRm9ybWF0IGltcGxlbWVudGF0aW9uLgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg4MDk2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwyMTE4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbgorICogYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgYW5kIGEgc2V0IG9mIGludGVnZXIgZmllbGRzIHN1Y2ggYXMKKyAqIDxjb2RlPllFQVI8L2NvZGU+LCA8Y29kZT5NT05USDwvY29kZT4sIDxjb2RlPkRBWTwvY29kZT4sIDxjb2RlPkhPVVI8L2NvZGU+LAorICogYW5kIHNvIG9uLiAoQSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGluc3RhbnQgaW4KKyAqIHRpbWUgd2l0aCBtaWxsaXNlY29uZCBwcmVjaXNpb24uIFNlZQorICoge0BsaW5rIERhdGV9CisgKiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIDxjb2RlPkRhdGU8L2NvZGU+IGNsYXNzLikKKyAqCisgKiA8cD48Yj5Ob3RlOjwvYj4gIFRoaXMgY2xhc3MgaXMgc2ltaWxhciwgYnV0IG5vdCBpZGVudGljYWwsIHRvIHRoZSBjbGFzcworICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4gIENoYW5nZXMgYXJlIGRldGFpbGVkIGJlbG93LgorICoKKyAqIDxwPgorICogU3ViY2xhc3NlcyBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW50ZXJwcmV0IGEgPGNvZGU+RGF0ZTwvY29kZT4KKyAqIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgYSBzcGVjaWZpYyBjYWxlbmRhciBzeXN0ZW0uICBJQ1U0SiBjb250YWlucworICogc2V2ZXJhbCBzdWJjbGFzc2VzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgaW50ZXJuYXRpb25hbCBjYWxlbmRhciBzeXN0ZW1zLgorICoKKyAqIDxwPgorICogTGlrZSBvdGhlciBsb2NhbGUtc2Vuc2l0aXZlIGNsYXNzZXMsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm92aWRlcyBhCisgKiBjbGFzcyBtZXRob2QsIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgZm9yIGdldHRpbmcgYSBnZW5lcmFsbHkgdXNlZnVsCisgKiBvYmplY3Qgb2YgdGhpcyB0eXBlLiA8Y29kZT5DYWxlbmRhcjwvY29kZT4ncyA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gbWV0aG9kCisgKiByZXR1cm5zIGEgY2FsZW5kYXIgb2YgYSB0eXBlIGFwcHJvcHJpYXRlIHRvIHRoZSBsb2NhbGUsIHdob3NlCisgKiB0aW1lIGZpZWxkcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPkNhbGVuZGFyIHJpZ2h0Tm93ID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPiBpcyB1c2VkIGJ5IDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgaXRzCisgKiAnPGNvZGU+Y2FsZW5kYXI8L2NvZGU+JyB0YWcgYW5kIHZhbHVlIGFyZSByZXRyaWV2ZWQgaWYgcHJlc2VudC4gIElmIGEgcmVjb2duaXplZAorICogdmFsdWUgaXMgc3VwcGxpZWQsIGEgY2FsZW5kYXIgaXMgcHJvdmlkZWQgYW5kIGNvbmZpZ3VyZWQgYXMgYXBwcm9wcmlhdGUuCisgKiBDdXJyZW50bHkgcmVjb2duaXplZCB0YWdzIGFyZSAiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAKKyAqICJncmVnb3JpYW4iLCAiaGVicmV3IiwgImlzbGFtaWMiLCAiaXNsYW1pYy1jaXZpbCIsIGFuZCAiamFwYW5lc2UiLiAgRm9yCisgKiBleGFtcGxlOiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+Q2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoImVuX1VTQGNhbGVuZGFyPWphcGFuZXNlIikpOzwvcHJlPgorICogPC9ibG9ja3F1b3RlPiB3aWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBKYXBhbmVzZUNhbGVuZGFyICh1c2luZyBlbl9VUyBjb252ZW50aW9ucyBmb3IKKyAqIG1pbmltdW0gZGF5cyBpbiBmaXJzdCB3ZWVrLCBzdGFydCBkYXkgb2Ygd2VlaywgZXQgY2V0ZXJhKS4KKyAqCisgKiA8cD5BIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgY2FuIHByb2R1Y2UgYWxsIHRoZSB0aW1lIGZpZWxkIHZhbHVlcworICogbmVlZGVkIHRvIGltcGxlbWVudCB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGEgcGFydGljdWxhciBsYW5ndWFnZSBhbmQKKyAqIGNhbGVuZGFyIHN0eWxlIChmb3IgZXhhbXBsZSwgSmFwYW5lc2UtR3JlZ29yaWFuLCBKYXBhbmVzZS1UcmFkaXRpb25hbCkuCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGVmaW5lcyB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJldHVybmVkIGJ5IGNlcnRhaW4gZmllbGRzLAorICogYXMgd2VsbCBhcyB0aGVpciBtZWFuaW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBoYXMgdmFsdWUKKyAqIDxjb2RlPk1PTlRIPC9jb2RlPiA9PSA8Y29kZT5KQU5VQVJZPC9jb2RlPiBmb3IgYWxsIGNhbGVuZGFycy4gIE90aGVyIHZhbHVlcworICogYXJlIGRlZmluZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNzLCBzdWNoIGFzIDxjb2RlPkVSQTwvY29kZT4gYW5kCisgKiA8Y29kZT5ZRUFSPC9jb2RlPi4gIFNlZSBpbmRpdmlkdWFsIGZpZWxkIGRvY3VtZW50YXRpb24gYW5kIHN1YmNsYXNzCisgKiBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgPGVtPmxlbmllbnQ8L2VtPiwgaXQgYWNjZXB0cyBhIHdpZGVyIHJhbmdlCisgKiBvZiBmaWVsZCB2YWx1ZXMgdGhhbiBpdCBwcm9kdWNlcy4gIEZvciBleGFtcGxlLCBhIGxlbmllbnQKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbnRlcnByZXRzIDxjb2RlPk1PTlRIPC9jb2RlPiA9PQorICogPGNvZGU+SkFOVUFSWTwvY29kZT4sIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gPT0gMzIgYXMgRmVicnVhcnkgMS4gIEEKKyAqIG5vbi1sZW5pZW50IDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gZ2l2ZW4KKyAqIG91dC1vZi1yYW5nZSBmaWVsZCBzZXR0aW5ncy4gIFdoZW4gY2FsZW5kYXJzIHJlY29tcHV0ZSBmaWVsZCB2YWx1ZXMgZm9yCisgKiByZXR1cm4gYnkgPGNvZGU+Z2V0KCk8L2NvZGU+LCB0aGV5IG5vcm1hbGl6ZSB0aGVtLiAgRm9yIGV4YW1wbGUsIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBhbHdheXMgcHJvZHVjZXMgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPgorICogdmFsdWVzIGJldHdlZW4gMSBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgbW9udGguCisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgYSBsb2NhbGUtc3BlY2lmaWMgc2V2ZW4gZGF5IHdlZWsgdXNpbmcgdHdvCisgKiBwYXJhbWV0ZXJzOiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsKKyAqIChmcm9tIDEgdG8gNykuICBUaGVzZSBudW1iZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSB3aGVuIGEKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBjb25zdHJ1Y3RlZC4gIFRoZXkgbWF5IGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkKKyAqIHRocm91Z2ggdGhlIEFQSS4KKyAqCisgKiA8cD5XaGVuIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb3IKKyAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGRzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gbXVzdCBkZXRlcm1pbmUgdGhlCisgKiBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aCBvciB5ZWFyIGFzIGEgcmVmZXJlbmNlIHBvaW50LiAgVGhlIGZpcnN0IHdlZWsgb2YgYQorICogbW9udGggb3IgeWVhciBpcyBkZWZpbmVkIGFzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIGJlZ2lubmluZyBvbgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kIGNvbnRhaW5pbmcgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBvZiB0aGF0IG1vbnRoIG9yIHllYXIuICBXZWVrcworICogbnVtYmVyZWQgLi4uLCAtMSwgMCBwcmVjZWRlIHRoZSBmaXJzdCB3ZWVrOyB3ZWVrcyBudW1iZXJlZCAyLCAzLC4uLiBmb2xsb3cKKyAqIGl0LiAgTm90ZSB0aGF0IHRoZSBub3JtYWxpemVkIG51bWJlcmluZyByZXR1cm5lZCBieSA8Y29kZT5nZXQoKTwvY29kZT4gbWF5IGJlCisgKiBkaWZmZXJlbnQuICBGb3IgZXhhbXBsZSwgYSBzcGVjaWZpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3MgbWF5CisgKiBkZXNpZ25hdGUgdGhlIHdlZWsgYmVmb3JlIHdlZWsgMSBvZiBhIHllYXIgYXMgd2VlayA8ZW0+bjwvZW0+IG9mIHRoZSBwcmV2aW91cworICogeWVhci4KKyAqCisgKiA8cD4gV2hlbiBjb21wdXRpbmcgYSA8Y29kZT5EYXRlPC9jb2RlPiBmcm9tIHRpbWUgZmllbGRzLCB0d28gc3BlY2lhbAorICogY2lyY3Vtc3RhbmNlcyBtYXkgYXJpc2U6IHRoZXJlIG1heSBiZSBpbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB0aGUKKyAqIDxjb2RlPkRhdGU8L2NvZGU+IChzdWNoIGFzIG9ubHkgeWVhciBhbmQgbW9udGggYnV0IG5vIGRheSBpbiB0aGUgbW9udGgpLCBvcgorICogdGhlcmUgbWF5IGJlIGluY29uc2lzdGVudCBpbmZvcm1hdGlvbiAoc3VjaCBhcyAiVHVlc2RheSwgSnVseSAxNSwgMTk5NiIgLS0KKyAqIEp1bHkgMTUsIDE5OTYgaXMgYWN0dWFsbHkgYSBNb25kYXkpLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IFRoZSBjYWxlbmRhciB3aWxsIHVzZSBkZWZhdWx0CisgKiBpbmZvcm1hdGlvbiB0byBzcGVjaWZ5IHRoZSBtaXNzaW5nIGZpZWxkcy4gVGhpcyBtYXkgdmFyeSBieSBjYWxlbmRhcjsgZm9yCisgKiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUgZGVmYXVsdCBmb3IgYSBmaWVsZCBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZQorICogc3RhcnQgb2YgdGhlIGVwb2NoOiBpLmUuLCBZRUFSID0gMTk3MCwgTU9OVEggPSBKQU5VQVJZLCBEQVRFID0gMSwgZXRjLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IElmIGZpZWxkcyBjb25mbGljdCwgdGhlIGNhbGVuZGFyCisgKiB3aWxsIGdpdmUgcHJlZmVyZW5jZSB0byBmaWVsZHMgc2V0IG1vcmUgcmVjZW50bHkuIEZvciBleGFtcGxlLCB3aGVuCisgKiBkZXRlcm1pbmluZyB0aGUgZGF5LCB0aGUgY2FsZW5kYXIgd2lsbCBsb29rIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZworICogY29tYmluYXRpb25zIG9mIGZpZWxkcy4gIFRoZSBtb3N0IHJlY2VudCBjb21iaW5hdGlvbiwgYXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIG1vc3QgcmVjZW50bHkgc2V0IHNpbmdsZSBmaWVsZCwgd2lsbCBiZSB1c2VkLgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE1PTlRIICsgREFZX09GX01PTlRICisgKiBNT05USCArIFdFRUtfT0ZfTU9OVEggKyBEQVlfT0ZfV0VFSworICogTU9OVEggKyBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLCisgKiBEQVlfT0ZfWUVBUgorICogREFZX09GX1dFRUsgKyBXRUVLX09GX1lFQVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGb3IgdGhlIHRpbWUgb2YgZGF5OgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIEhPVVJfT0ZfREFZCisgKiBBTV9QTSArIEhPVVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gZm9yIHNvbWUgbm9uLUdyZWdvcmlhbiBjYWxlbmRhcnMsIGRpZmZlcmVudAorICogZmllbGRzIG1heSBiZSBuZWNlc3NhcnkgZm9yIGNvbXBsZXRlIGRpc2FtYmlndWF0aW9uLiBGb3IgZXhhbXBsZSwgYSBmdWxsCisgKiBzcGVjaWZpY2F0aW9uIG9mIHRoZSBoaXN0b3JpYWwgQXJhYmljIGFzdHJvbm9taWNhbCBjYWxlbmRhciByZXF1aXJlcyB5ZWFyLAorICogbW9udGgsIGRheS1vZi1tb250aCA8ZW0+YW5kPC9lbT4gZGF5LW9mLXdlZWsgaW4gc29tZSBjYXNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlcmUgYXJlIGNlcnRhaW4gcG9zc2libGUgYW1iaWd1aXRpZXMgaW4KKyAqIGludGVycHJldGF0aW9uIG9mIGNlcnRhaW4gc2luZ3VsYXIgdGltZXMsIHdoaWNoIGFyZSByZXNvbHZlZCBpbiB0aGUKKyAqIGZvbGxvd2luZyB3YXlzOgorICogPG9sPgorICogICAgIDxsaT4gMjQ6MDA6MDAgImJlbG9uZ3MiIHRvIHRoZSBmb2xsb3dpbmcgZGF5LiBUaGF0IGlzLAorICogICAgICAgICAgMjM6NTkgb24gRGVjIDMxLCAxOTY5ICZsdDsgMjQ6MDAgb24gSmFuIDEsIDE5NzAgJmx0OyAyNDowMTowMCBvbiBKYW4gMSwgMTk3MAorICoKKyAqICAgICA8bGk+IEFsdGhvdWdoIGhpc3RvcmljYWxseSBub3QgcHJlY2lzZSwgbWlkbmlnaHQgYWxzbyBiZWxvbmdzIHRvICJhbSIsCisgKiAgICAgICAgICBhbmQgbm9vbiBiZWxvbmdzIHRvICJwbSIsIHNvIG9uIHRoZSBzYW1lIGRheSwKKyAqICAgICAgICAgIDEyOjAwIGFtIChtaWRuaWdodCkgJmx0OyAxMjowMSBhbSwgYW5kIDEyOjAwIHBtIChub29uKSAmbHQ7IDEyOjAxIHBtCisgKiA8L29sPgorICoKKyAqIDxwPgorICogVGhlIGRhdGUgb3IgdGltZSBmb3JtYXQgc3RyaW5ncyBhcmUgbm90IHBhcnQgb2YgdGhlIGRlZmluaXRpb24gb2YgYQorICogY2FsZW5kYXIsIGFzIHRob3NlIG11c3QgYmUgbW9kaWZpYWJsZSBvciBvdmVycmlkYWJsZSBieSB0aGUgdXNlciBhdAorICogcnVudGltZS4gVXNlIHtAbGluayBEYXRlRm9ybWF0fQorICogdG8gZm9ybWF0IGRhdGVzLgorICoKKyAqIDxwPjxzdHJvbmc+RmllbGQgbWFuaXB1bGF0aW9uIG1ldGhvZHM8L3N0cm9uZz48L3A+CisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGZpZWxkcyBjYW4gYmUgY2hhbmdlZCB1c2luZyB0aHJlZSBtZXRob2RzOgorICogPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4sIGFuZCA8Y29kZT5yb2xsKCk8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnNldChmLCB2YWx1ZSk8L2NvZGU+PC9zdHJvbmc+IGNoYW5nZXMgZmllbGQKKyAqIDxjb2RlPmY8L2NvZGU+IHRvIDxjb2RlPnZhbHVlPC9jb2RlPi4gIEluIGFkZGl0aW9uLCBpdCBzZXRzIGFuCisgKiBpbnRlcm5hbCBtZW1iZXIgdmFyaWFibGUgdG8gaW5kaWNhdGUgdGhhdCBmaWVsZCA8Y29kZT5mPC9jb2RlPiBoYXMKKyAqIGJlZW4gY2hhbmdlZC4gQWx0aG91Z2ggZmllbGQgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCBpbW1lZGlhdGVseSwKKyAqIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBpcyBub3QgcmVjb21wdXRlZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvCisgKiA8Y29kZT5nZXQoKTwvY29kZT4sIDxjb2RlPmdldFRpbWUoKTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXRUaW1lSW5NaWxsaXMoKTwvY29kZT4gaXMgbWFkZS4gVGh1cywgbXVsdGlwbGUgY2FsbHMgdG8KKyAqIDxjb2RlPnNldCgpPC9jb2RlPiBkbyBub3QgdHJpZ2dlciBtdWx0aXBsZSwgdW5uZWNlc3NhcnkKKyAqIGNvbXB1dGF0aW9ucy4gQXMgYSByZXN1bHQgb2YgY2hhbmdpbmcgYSBmaWVsZCB1c2luZworICogPGNvZGU+c2V0KCk8L2NvZGU+LCBvdGhlciBmaWVsZHMgbWF5IGFsc28gY2hhbmdlLCBkZXBlbmRpbmcgb24gdGhlCisgKiBmaWVsZCwgdGhlIGZpZWxkIHZhbHVlLCBhbmQgdGhlIGNhbGVuZGFyIHN5c3RlbS4gSW4gYWRkaXRpb24sCisgKiA8Y29kZT5nZXQoZik8L2NvZGU+IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHJldHVybiA8Y29kZT52YWx1ZTwvY29kZT4KKyAqIGFmdGVyIHRoZSBmaWVsZHMgaGF2ZSBiZWVuIHJlY29tcHV0ZWQuIFRoZSBzcGVjaWZpY3MgYXJlIGRldGVybWluZWQgYnkKKyAqIHRoZSBjb25jcmV0ZSBjYWxlbmRhciBjbGFzcy48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5zZXQoQ2FsZW5kYXIuTU9OVEgsCisgKiBDYWxlbmRhci5TRVBURU1CRVIpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBTZXB0ZW1iZXIgMzEsCisgKiAxOTk5LiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGludGVybmFsIHJlcHJlc2VudGF0aW9uIHRoYXQgcmVzb2x2ZXMgdG8KKyAqIE9jdG9iZXIgMSwgMTk5OSBpZiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+aXMgdGhlbiBjYWxsZWQuIEhvd2V2ZXIsIGEKKyAqIGNhbGwgdG8gPGNvZGU+c2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMzApPC9jb2RlPiBiZWZvcmUgdGhlIGNhbGwgdG8KKyAqIDxjb2RlPmdldFRpbWUoKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAxOTk5LCBzaW5jZQorICogbm8gcmVjb21wdXRhdGlvbiBvY2N1cnMgYWZ0ZXIgPGNvZGU+c2V0KCk8L2NvZGU+IGl0c2VsZi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5hZGQoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzIDxjb2RlPmRlbHRhPC9jb2RlPgorICogdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4uICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5zZXQoZiwKKyAqIGdldChmKSArIGRlbHRhKTwvY29kZT4gd2l0aCB0d28gYWRqdXN0bWVudHM6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDE8L3N0cm9uZz4uIFRoZSB2YWx1ZSBvZiBmaWVsZCA8Y29kZT5mPC9jb2RlPgorICogICBhZnRlciB0aGUgY2FsbCBtaW51cyB0aGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4gYmVmb3JlIHRoZQorICogICBjYWxsIGlzIDxjb2RlPmRlbHRhPC9jb2RlPiwgbW9kdWxvIGFueSBvdmVyZmxvdyB0aGF0IGhhcyBvY2N1cnJlZCBpbgorICogICBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gT3ZlcmZsb3cgb2NjdXJzIHdoZW4gYSBmaWVsZCB2YWx1ZSBleGNlZWRzIGl0cworICogICByYW5nZSBhbmQsIGFzIGEgcmVzdWx0LCB0aGUgbmV4dCBsYXJnZXIgZmllbGQgaXMgaW5jcmVtZW50ZWQgb3IKKyAqICAgZGVjcmVtZW50ZWQgYW5kIHRoZSBmaWVsZCB2YWx1ZSBpcyBhZGp1c3RlZCBiYWNrIGludG8gaXRzIHJhbmdlLjwvcD4KKyAqCisgKiAgIDxwPjxzdHJvbmc+QWRkIHJ1bGUgMjwvc3Ryb25nPi4gSWYgYSBzbWFsbGVyIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGJlCisgKiAgIGludmFyaWFudCwgYnV0ICZuYnNwOyBpdCBpcyBpbXBvc3NpYmxlIGZvciBpdCB0byBiZSBlcXVhbCB0byBpdHMKKyAqICAgcHJpb3IgdmFsdWUgYmVjYXVzZSBvZiBjaGFuZ2VzIGluIGl0cyBtaW5pbXVtIG9yIG1heGltdW0gYWZ0ZXIgZmllbGQKKyAqICAgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCwgdGhlbiBpdHMgdmFsdWUgaXMgYWRqdXN0ZWQgdG8gYmUgYXMgY2xvc2UKKyAqICAgYXMgcG9zc2libGUgdG8gaXRzIGV4cGVjdGVkIHZhbHVlLiBBIHNtYWxsZXIgZmllbGQgcmVwcmVzZW50cyBhCisgKiAgIHNtYWxsZXIgdW5pdCBvZiB0aW1lLiA8Y29kZT5IT1VSPC9jb2RlPiBpcyBhIHNtYWxsZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+LiBObyBhZGp1c3RtZW50IGlzIG1hZGUgdG8gc21hbGxlciBmaWVsZHMKKyAqICAgdGhhdCBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIGludmFyaWFudC4gVGhlIGNhbGVuZGFyIHN5c3RlbQorICogICBkZXRlcm1pbmVzIHdoYXQgZmllbGRzIGFyZSBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuPC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkluIGFkZGl0aW9uLCB1bmxpa2UgPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4gZm9yY2VzCisgKiBhbiBpbW1lZGlhdGUgcmVjb21wdXRhdGlvbiBvZiB0aGUgY2FsZW5kYXIncyBtaWxsaXNlY29uZHMgYW5kIGFsbAorICogZmllbGRzLjwvcD4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPmFkZChDYWxlbmRhci5NT05USCwKKyAqIDEzKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAyMDAwLiA8c3Ryb25nPkFkZCBydWxlCisgKiAxPC9zdHJvbmc+IHNldHMgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCB0byBTZXB0ZW1iZXIsIHNpbmNlCisgKiBhZGRpbmcgMTMgbW9udGhzIHRvIEF1Z3VzdCBnaXZlcyBTZXB0ZW1iZXIgb2YgdGhlIG5leHQgeWVhci4gU2luY2UKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90IGJlIDMxIGluIFNlcHRlbWJlciBpbiBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIDxzdHJvbmc+YWRkIHJ1bGUgMjwvc3Ryb25nPiBzZXRzIHRoZQorICogPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiB0byAzMCwgdGhlIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUuIEFsdGhvdWdoCisgKiBpdCBpcyBhIHNtYWxsZXIgZmllbGQsIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBpcyBub3QgYWRqdXN0ZWQgYnkKKyAqIHJ1bGUgMiwgc2luY2UgaXQgaXMgZXhwZWN0ZWQgdG8gY2hhbmdlIHdoZW4gdGhlIG1vbnRoIGNoYW5nZXMgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnJvbGwoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzCisgKiA8Y29kZT5kZWx0YTwvY29kZT4gdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4gd2l0aG91dCBjaGFuZ2luZyBsYXJnZXIKKyAqIGZpZWxkcy4gVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+YWRkKGYsIGRlbHRhKTwvY29kZT4gd2l0aAorICogdGhlIGZvbGxvd2luZyBhZGp1c3RtZW50OjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PHN0cm9uZz5Sb2xsIHJ1bGU8L3N0cm9uZz4uIExhcmdlciBmaWVsZHMgYXJlIHVuY2hhbmdlZCBhZnRlciB0aGUKKyAqICAgY2FsbC4gQSBsYXJnZXIgZmllbGQgcmVwcmVzZW50cyBhIGxhcmdlciB1bml0IG9mCisgKiAgIHRpbWUuIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gaXMgYSBsYXJnZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5IT1VSPC9jb2RlPi48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLk1PTlRILAorICogOCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIEFwcmlsIDMwLCA8c3Ryb25nPjE5OTk8L3N0cm9uZz4uICBBZGQKKyAqIHJ1bGUgMSBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gQXByaWwuIFVzaW5nIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90CisgKiBiZSAzMSBpbiB0aGUgbW9udGggQXByaWwuIEFkZCBydWxlIDIgc2V0cyBpdCB0byB0aGUgY2xvc2VzdCBwb3NzaWJsZQorICogdmFsdWUsIDMwLiBGaW5hbGx5LCB0aGUgPHN0cm9uZz5yb2xsIHJ1bGU8L3N0cm9uZz4gbWFpbnRhaW5zIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgdmFsdWUgb2YgMTk5OS48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIFN1bmRheSBKdW5lIDYsIDE5OTkuIENhbGxpbmcKKyAqIDxjb2RlPnJvbGwoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgLTEpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0bworICogVHVlc2RheSBKdW5lIDEsIDE5OTksIHdoZXJlYXMgY2FsbGluZworICogPGNvZGU+YWRkKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFN1bmRheSBNYXkgMzAsIDE5OTkuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcm9sbCBydWxlIGltcG9zZXMgYW4KKyAqIGFkZGl0aW9uYWwgY29uc3RyYWludDogVGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBtdXN0IG5vdCBjaGFuZ2Ugd2hlbiB0aGUKKyAqIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGlzIHJvbGxlZC4gVGFrZW4gdG9nZXRoZXIgd2l0aCBhZGQgcnVsZSAxLAorICogdGhlIHJlc3VsdGFudCBkYXRlIG11c3QgYmUgYmV0d2VlbiBUdWVzZGF5IEp1bmUgMSBhbmQgU2F0dXJkYXkgSnVuZQorICogNS4gQWNjb3JkaW5nIHRvIGFkZCBydWxlIDIsIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4sIGFuIGludmFyaWFudAorICogd2hlbiBjaGFuZ2luZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4sIGlzIHNldCB0byBUdWVzZGF5LCB0aGUKKyAqIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUgdG8gU3VuZGF5ICh3aGVyZSBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAqIHdlZWspLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPlVzYWdlIG1vZGVsPC9zdHJvbmc+LiBUbyBtb3RpdmF0ZSB0aGUgYmVoYXZpb3Igb2YKKyAqIDxjb2RlPmFkZCgpPC9jb2RlPiBhbmQgPGNvZGU+cm9sbCgpPC9jb2RlPiwgY29uc2lkZXIgYSB1c2VyIGludGVyZmFjZQorICogY29tcG9uZW50IHdpdGggaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBmb3IgdGhlIG1vbnRoLCBkYXksIGFuZAorICogeWVhciwgYW5kIGFuIHVuZGVybHlpbmcgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LiBJZiB0aGUKKyAqIGludGVyZmFjZSByZWFkcyBKYW51YXJ5IDMxLCAxOTk5IGFuZCB0aGUgdXNlciBwcmVzc2VzIHRoZSBtb250aAorICogaW5jcmVtZW50IGJ1dHRvbiwgd2hhdCBzaG91bGQgaXQgcmVhZD8gSWYgdGhlIHVuZGVybHlpbmcKKyAqIGltcGxlbWVudGF0aW9uIHVzZXMgPGNvZGU+c2V0KCk8L2NvZGU+LCBpdCBtaWdodCByZWFkIE1hcmNoIDMsIDE5OTkuIEEKKyAqIGJldHRlciByZXN1bHQgd291bGQgYmUgRmVicnVhcnkgMjgsIDE5OTkuIEZ1cnRoZXJtb3JlLCBpZiB0aGUgdXNlcgorICogcHJlc3NlcyB0aGUgbW9udGggaW5jcmVtZW50IGJ1dHRvbiBhZ2FpbiwgaXQgc2hvdWxkIHJlYWQgTWFyY2ggMzEsCisgKiAxOTk5LCBub3QgTWFyY2ggMjgsIDE5OTkuIEJ5IHNhdmluZyB0aGUgb3JpZ2luYWwgZGF0ZSBhbmQgdXNpbmcgZWl0aGVyCisgKiA8Y29kZT5hZGQoKTwvY29kZT4gb3IgPGNvZGU+cm9sbCgpPC9jb2RlPiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgbGFyZ2VyCisgKiBmaWVsZHMgc2hvdWxkIGJlIGFmZmVjdGVkLCB0aGUgdXNlciBpbnRlcmZhY2UgY2FuIGJlaGF2ZSBhcyBtb3N0IHVzZXJzCisgKiB3aWxsIGludHVpdGl2ZWx5IGV4cGVjdC48L3A+CisgKgorICogPHA+PGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kIHtAbGluayAjYWRkIGFkZH0gcmF0aGVyCisgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgKgorICogPHA+PGJpZz48YmlnPjxiPkNhbGVuZGFyIEFyY2hpdGVjdHVyZSBpbiBJQ1U0SjwvYj48L2JpZz48L2JpZz48L3A+CisgKgorICogPHA+UmVjZW50bHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgY2hhbmdlZAorICogc2lnbmlmaWNhbnRseSBpbiBvcmRlciB0byBiZXR0ZXIgc3VwcG9ydCBzdWJjbGFzc2luZy4gVGhlIG9yaWdpbmFsCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgd2FzIGRlc2lnbmVkIHRvIHN1cHBvcnQgc3ViY2xhc3NpbmcsIGJ1dAorICogaXQgaGFkIG9ubHkgb25lIGltcGxlbWVudGVkIHN1YmNsYXNzLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uCisgKiBXaXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZXZlcmFsIG5ldyBjYWxlbmRhciBzdWJjbGFzc2VzLCBpbmNsdWRpbmcKKyAqIHRoZSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiwgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiwKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiwgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiwgdGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiByZXdvcmtlZAorICogdGhvcm91Z2hseS4gVGhpcyBzZWN0aW9uIGRldGFpbHMgdGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgYW5kIG90aGVyCisgKiB3YXlzIGluIHdoaWNoIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGRpZmZlcnMgZnJvbQorICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4KKyAqIDwvcD4KKyAqCisgKiA8cD48YmlnPjxiPkNoYW5nZXM8L2I+PC9iaWc+PC9wPgorICoKKyAqIDxwPk92ZXJ2aWV3IG9mIGNoYW5nZXMgYmV0d2VlbiB0aGUgY2xhc3NpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqIGFyY2hpdGVjdHVyZSBhbmQgdGhlIG5ldyBhcmNoaXRlY3R1cmUuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5maWVsZHNbXTwvY29kZT4gYXJyYXkgaXMgPGNvZGU+cHJpdmF0ZTwvY29kZT4gbm93CisgKiAgICAgaW5zdGVhZCBvZiA8Y29kZT5wcm90ZWN0ZWQ8L2NvZGU+LiAgU3ViY2xhc3NlcyBtdXN0IGFjY2VzcyBpdAorICogICAgIHVzaW5nIHRoZSBtZXRob2RzIHtAbGluayAjaW50ZXJuYWxTZXR9IGFuZAorICogICAgIHtAbGluayAjaW50ZXJuYWxHZXR9LiAgPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMgc2hvdWxkCisgKiAgICAgbm90IGRpcmVjdGx5IGFjY2VzcyBkYXRhIG1lbWJlcnMuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+dGltZTwvY29kZT4gbG9uZyB3b3JkIGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbWF5IGFjY2VzcyBpdCB1c2luZworICogICAgIHRoZSBtZXRob2Qge0BsaW5rICNpbnRlcm5hbEdldFRpbWVJbk1pbGxpc30sIHdoaWNoIGRvZXMgbm90CisgKiAgICAgcHJvdm9rZSBhbiB1cGRhdGUuIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZCBub3QKKyAqICAgICBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKgorICogICA8bGk+VGhlIHNjb3BlIG9mIHJlc3BvbnNpYmlsaXR5IG9mIHN1YmNsYXNzZXMgaGFzIGJlZW4gZHJhc3RpY2FsbHkKKyAqICAgICByZWR1Y2VkLiBBcyBtdWNoIGZ1bmN0aW9uYWxpdHkgYXMgcG9zc2libGUgaXMgaW1wbGVtZW50ZWQgaW4gdGhlCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MuIEFzIGEgcmVzdWx0LCBpdCBpcyBtdWNoIGVhc2llcgorICogICAgIHRvIHN1YmNsYXNzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMKKyAqICAgICBzaG91bGQgbm90IGhhdmUgdG8gcmVpbXBsZW1lbnQgY29tbW9uIGNvZGUuIENlcnRhaW4gYmVoYXZpb3JzIGFyZQorICogICAgIGNvbW1vbiBhY3Jvc3MgY2FsZW5kYXIgc3lzdGVtczogVGhlIGRlZmluaXRpb24gYW5kIGJlaGF2aW9yIG9mCisgKiAgICAgd2Vlay1yZWxhdGVkIGZpZWxkcyBhbmQgdGltZSBmaWVsZHMsIHRoZSBhcml0aG1ldGljCisgKiAgICAgKHtAbGluayAjYWRkKGludCwgaW50KSBhZGR9IGFuZCB7QGxpbmsgI3JvbGwoaW50LCBpbnQpIHJvbGx9KSBiZWhhdmlvciBvZiBtYW55CisgKiAgICAgZmllbGRzLCBhbmQgdGhlIGZpZWxkIHZhbGlkYXRpb24gc3lzdGVtLjwvbGk+CisgKgorICogICA8bGk+VGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiBjb21wbGV0ZWx5IHJlZGVzaWduZWQuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgY29udGFpbnMgc29tZSBHcmVnb3JpYW4KKyAqICAgICBjYWxlbmRhciBhbGdvcml0aG1pYyBzdXBwb3J0IHRoYXQgc3ViY2xhc3NlcyBjYW4gdXNlIChzcGVjaWZpY2FsbHkKKyAqICAgICBpbiB7QGxpbmsgI2hhbmRsZUNvbXB1dGVGaWVsZHN9KS4gIFN1YmNsYXNzZXMgY2FuIHVzZSB0aGUKKyAqICAgICBtZXRob2RzIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gcHJlY29tcHV0ZWQKKyAqICAgICB2YWx1ZXMuIDxiPk1vdGl2YXRpb246PC9iPiBUaGlzIGlzIHJlcXVpcmVkIGJ5IGFsbAorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBzdWJjbGFzc2VzIGluIG9yZGVyIHRvIGltcGxlbWVudCBjb25zaXN0ZW50CisgKiAgICAgdGltZSB6b25lIGJlaGF2aW9yLCBhbmQgR3JlZ29yaWFuLWRlcml2ZWQgc3lzdGVtcyBjYW4gdXNlIHRoZQorICogICAgIGFscmVhZHkgY29tcHV0ZWQgZGF0YS48L2xpPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5GSUVMRF9DT1VOVDwvY29kZT4gY29uc3RhbnQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlCisgKiAgICAge0BsaW5rICNnZXRGaWVsZENvdW50fS4gIEluIGFkZGl0aW9uLCBmcmFtZXdvcmsgQVBJIGhhcyBiZWVuCisgKiAgICAgYWRkZWQgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMuCisgKiAgICAgPGI+TW90aXZhdGlvbjogPC9iPlRoZSBudW1iZXIgb2YgZmllbGRzIGlzIG5vdCBjb25zdGFudCBhY3Jvc3MKKyAqICAgICBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKgorICogICA8bGk+VGhlIHJhbmdlIG9mIGhhbmRsZWQgZGF0ZXMgaGFzIGJlZW4gbmFycm93ZWQgZnJvbSArLy0KKyAqICAgICB+MzAwLDAwMCwwMDAgeWVhcnMgdG8gKy8tIH41LDAwMCwwMDAgeWVhcnMuIEluIHByYWN0aWNhbCB0ZXJtcworICogICAgIHRoaXMgc2hvdWxkIG5vdCBhZmZlY3QgY2xpZW50cy4gSG93ZXZlciwgaXQgZG9lcyBtZWFuIHRoYXQgY2xpZW50CisgKiAgICAgY29kZSBjYW5ub3QgYmUgZ3VhcmFudGVlZCB3ZWxsLWJlaGF2ZWQgcmVzdWx0cyB3aXRoIGRhdGVzIHN1Y2ggYXMKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4gb3IKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUFYX1ZBTFVFKTwvY29kZT4uIEluc3RlYWQsIHRoZQorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjb25zdGFudHMge0BsaW5rICNNSU5fREFURX0sCisgKiAgICAge0BsaW5rICNNQVhfREFURX0sIHtAbGluayAjTUlOX01JTExJU30sCisgKiAgICAge0BsaW5rICNNQVhfTUlMTElTfSwge0BsaW5rICNNSU5fSlVMSUFOfSwgYW5kCisgKiAgICAge0BsaW5rICNNQVhfSlVMSUFOfSBzaG91bGQgYmUgdXNlZC4gPGI+TW90aXZhdGlvbjo8L2I+IFdpdGgKKyAqICAgICB0aGUgYWRkaXRpb24gb2YgdGhlIHtAbGluayAjSlVMSUFOX0RBWX0gZmllbGQsIEp1bGlhbiBkYXkKKyAqICAgICBudW1iZXJzIG11c3QgYmUgcmVzdHJpY3RlZCB0byBhIDMyLWJpdCA8Y29kZT5pbnQ8L2NvZGU+LiAgVGhpcworICogICAgIHJlc3RyaWN0cyB0aGUgb3ZlcmFsbCBzdXBwb3J0ZWQgcmFuZ2UuIEZ1cnRoZXJtb3JlLCByZXN0cmljdGluZworICogICAgIHRoZSBzdXBwb3J0ZWQgcmFuZ2Ugc2ltcGxpZmllcyB0aGUgY29tcHV0YXRpb25zIGJ5IHJlbW92aW5nCisgKiAgICAgc3BlY2lhbCBjYXNlIGNvZGUgdGhhdCB3YXMgdXNlZCB0byBhY2NvbW9kYXRlIGFyaXRobWV0aWMgb3ZlcmZsb3cKKyAqICAgICBhdCBtaWxsaXMgbmVhciA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gYW5kCisgKiAgICAgPGNvZGU+TG9uZy5NQVhfVkFMVUU8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IGZpZWxkcyBhcmUgaW1wbGVtZW50ZWQ6IHtAbGluayAjSlVMSUFOX0RBWX0gZGVmaW5lcworICogICAgIHNpbmdsZS1maWVsZCBzcGVjaWZpY2F0aW9uIG9mIHRoZQorICogICAgIGRhdGUuIHtAbGluayAjTUlMTElTRUNPTkRTX0lOX0RBWX0gZGVmaW5lcyBhIHNpbmdsZS1maWVsZAorICogICAgIHNwZWNpZmljYXRpb24gb2YgdGhlIHdhbGwgdGltZS4ge0BsaW5rICNET1dfTE9DQUx9IGFuZAorICogICAgIHtAbGluayAjWUVBUl9XT1l9IGltcGxlbWVudCBsb2NhbGl6ZWQgZGF5LW9mLXdlZWsgYW5kCisgKiAgICAgd2Vlay1vZi15ZWFyIGJlaGF2aW9yLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBjYW4gYWNjZXNzIG1pbGxpc2Vjb25kIGNvbnN0YW50cworICogICAgIHtAbGluayAjT05FX1NFQ09ORH0sIHtAbGluayAjT05FX01JTlVURX0sCisgKiAgICAge0BsaW5rICNPTkVfSE9VUn0sIHtAbGluayAjT05FX0RBWX0sIGFuZAorICogICAgIHtAbGluayAjT05FX1dFRUt9IGRlZmluZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IEFQSSBoYXMgYmVlbiBhZGRlZCB0byBzdXBvcnQgY2FsZW5kYXItc3BlY2lmaWMgc3ViY2xhc3NlcworICogICAgIG9mIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+U2V2ZXJhbCBzdWJjbGFzc2VzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCwgcmVwcmVzZW50aW5nCisgKiAgICAgdmFyaW91cyBpbnRlcm5hdGlvbmFsIGNhbGVuZGFyIHN5c3RlbXMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3ViY2xhc3MgQVBJPC9iPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5UaGUgb3JpZ2luYWwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IEFQSSB3YXMgYmFzZWQgb24gdGhlIGV4cGVyaWVuY2UKKyAqIG9mIGltcGxlbWVudGluZyBhIG9ubHkgYSBzaW5nbGUgc3ViY2xhc3MsCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uIEFzIGEgcmVzdWx0LCBhbGwgb2YgdGhlIHN1YmNsYXNzaW5nCisgKiBraW5rcyBoYWQgbm90IGJlZW4gd29ya2VkIG91dC4gVGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4KKyAqIHJlZmluZWQgYmFzZWQgb24gc2V2ZXJhbCBpbXBsZW1lbnRlZCBzdWJjbGFzc2VzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMKKyAqIHRoYXQgbXVzdCBiZSBvdmVycmlkZGVuIGFuZCBtZXRob2RzIGZvciBzdWJjbGFzc2VzIHRvIGNhbGwuIFN1YmNsYXNzZXMKKyAqIG5vIGxvbmdlciBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gPGNvZGU+ZmllbGRzPC9jb2RlPiBhbmQKKyAqIDxjb2RlPnN0YW1wPC9jb2RlPi4gSW5zdGVhZCwgdGhleSBoYXZlIG5ldyBBUEkgdG8gYWNjZXNzCisgKiB0aGVzZS4gU3ViY2xhc3NlcyBhcmUgYWJsZSB0byBhbGxvY2F0ZSB0aGUgPGNvZGU+ZmllbGRzPC9jb2RlPiBhcnJheQorICogdGhyb3VnaCBhIHByb3RlY3RlZCBmcmFtZXdvcmsgbWV0aG9kOyB0aGlzIGFsbG93cyBzdWJjbGFzc2VzIHRvCisgKiBzcGVjaWZ5IGFkZGl0aW9uYWwgZmllbGRzLiA8L3A+CisgKgorICogPHA+TW9yZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vdmVkIGludG8gdGhlIGJhc2UgY2xhc3MuIFRoZSBiYXNlCisgKiBjbGFzcyBub3cgY29udGFpbnMgbXVjaCBvZiB0aGUgY29tcHV0YXRpb25hbCBtYWNoaW5lcnkgdG8gc3VwcG9ydCB0aGUKKyAqIEdyZWdvcmlhbiBjYWxlbmRhci4gVGhpcyBpcyBiYXNlZCBvbiB0d28gdGhpbmdzOiAoMSkgTWFueSBjYWxlbmRhcnMKKyAqIGFyZSBiYXNlZCBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIChzdWNoIGFzIHRoZSBCdWRkaGlzdCBhbmQgSmFwYW5lc2UKKyAqIGltcGVyaWFsIGNhbGVuZGFycykuICgyKSA8ZW0+QWxsPC9lbT4gY2FsZW5kYXJzIHJlcXVpcmUgYmFzaWMKKyAqIEdyZWdvcmlhbiBzdXBwb3J0IGluIG9yZGVyIHRvIGhhbmRsZSB0aW1lem9uZSBjb21wdXRhdGlvbnMuIDwvcD4KKyAqCisgKiA8cD5Db21tb24gY29tcHV0YXRpb25zIGhhdmUgYmVlbiBtb3ZlZCBpbnRvCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIFN1YmNsYXNzZXMgbm8gbG9uZ2VyIGNvbXB1dGUgdGhlIHdlZWsgcmVsYXRlZAorICogZmllbGRzIGFuZCB0aGUgdGltZSByZWxhdGVkIGZpZWxkcy4gVGhlc2UgYXJlIGNvbW1vbmx5IGhhbmRsZWQgZm9yIGFsbAorICogY2FsZW5kYXJzIGJ5IHRoZSBiYXNlIGNsYXNzLiA8L3A+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgdGltZSA8dHQ+PSZndDs8L3R0PiBmaWVsZHM8L2I+CisgKgorICogPHA+VGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICoge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzIGFyZQorICogY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLCBiYXNlZCBvbiB0aGUgSnVsaWFuIGRheS4gQWxsIG90aGVyIGZpZWxkcworICogYXJlIGNvbXB1dGVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlQ29tcHV0ZUZpZWxkc30KKyAqICAgICB0byBjb21wdXRlIHRoZSB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzLAorICogICAgIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGUge0BsaW5rICNKVUxJQU5fREFZfSBmaWVsZC4gSWYgdGhlcmUKKyAqICAgICBhcmUgY2FsZW5kYXItc3BlY2lmaWMgZmllbGRzIG5vdCBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiwKKyAqICAgICB0aGV5IG11c3QgYWxzbyBiZSBjb21wdXRlZC4gVGhlc2UgYXJlIHRoZSBvbmx5IGZpZWxkcyB0aGF0IHRoZQorICogICAgIHN1YmNsYXNzIHNob3VsZCBjb21wdXRlLiBBbGwgb3RoZXIgZmllbGRzIGFyZSBjb21wdXRlZCBieSB0aGUgYmFzZQorICogICAgIGNsYXNzLCBzbyB0aW1lIGFuZCB3ZWVrIGZpZWxkcyBiZWhhdmUgaW4gYSBjb25zaXN0ZW50IHdheSBhY3Jvc3MKKyAqICAgICBhbGwgY2FsZW5kYXJzLiBUaGUgZGVmYXVsdCB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kIGluCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudHMgYSBwcm9sZXB0aWMgR3JlZ29yaWFuCisgKiAgICAgY2FsZW5kYXIuIFdpdGhpbiB0aGlzIG1ldGhvZCwgc3ViY2xhc3NlcyBtYXkgY2FsbAorICogICAgIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIG1vbnRoLCBkYXkgb2YgbW9udGgsIGFuZCBleHRlbmRlZCB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgZmllbGRzIDx0dD49Jmd0OzwvdHQ+IHRpbWU8L2I+CisgKgorICogPHA+VGhlIGludGVycHJldGF0aW9uIG9mIG1vc3QgZmllbGQgdmFsdWVzIGlzIGhhbmRsZWQgZW50aXJlbHkgYnkKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRldGVybWluZXMgd2hpY2ggZmllbGRzCisgKiBhcmUgc2V0LCB3aGljaCBhcmUgbm90LCB3aGljaCBhcmUgc2V0IG1vcmUgcmVjZW50bHksIGFuZCBzbyBvbi4gSW4KKyAqIGFkZGl0aW9uLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFuZGxlcyB0aGUgY29tcHV0YXRpb24gb2YgdGhlIHRpbWUKKyAqIGZyb20gdGhlIHRpbWUgZmllbGRzIGFuZCBoYW5kbGVzIHRoZSB3ZWVrLXJlbGF0ZWQgZmllbGRzLiBUaGUgb25seQorICogdGhpbmcgdGhlIHN1YmNsYXNzIG11c3QgZG8gaXMgZGV0ZXJtaW5lIHRoZSBleHRlbmRlZCB5ZWFyLCBiYXNlZCBvbgorICogdGhlIHllYXIgZmllbGRzLCBhbmQgdGhlbiwgZ2l2ZW4gYW4gZXh0ZW5kZWQgeWVhciBhbmQgYSBtb250aCwgaXQgbXVzdAorICogcmV0dXJuIGEgSnVsaWFuIGRheSBudW1iZXIuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldEV4dGVuZGVkWWVhcn0KKyAqICAgICB0byByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIgZm9yIHRoaXMgY2FsZW5kYXIgc3lzdGVtLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCBhbmQgYW55IGZpZWxkcyB0aGF0CisgKiAgICAgdGhlIGNhbGVuZGFyIHN5c3RlbSB1c2VzIHRoYXQgYXJlIGxhcmdlciB0aGFuIGEgeWVhciwgc3VjaCBhcworICogICAgIHtAbGluayAjRVJBfS48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUNvbXB1dGVNb250aFN0YXJ0fQorICogICAgIHRvIHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIKKyAqICAgICBhc3NvY2lhdGVkIHdpdGggYSBtb250aCBhbmQgZXh0ZW5kZWQgeWVhci4gVGhpcyBpcyB0aGUgSnVsaWFuIGRheQorICogICAgIG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC4gVGhlIG1vbnRoCisgKiAgICAgbnVtYmVyIGlzIHplcm8tYmFzZWQuIFRoaXMgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBkZXBlbmQgb24gYW55CisgKiAgICAgZmllbGQgdmFsdWVzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48Yj5PdGhlciBtZXRob2RzPC9iPgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRNb250aExlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIGEKKyAqICAgICBnaXZlbiBtb250aCBvZiBhIGdpdmVuIGV4dGVuZGVkIHllYXIuIFRoZSBtb250aCBudW1iZXIsIGFzIGFsd2F5cywKKyAqICAgICBpcyB6ZXJvLWJhc2VkLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0WWVhckxlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbgorICogICAgIGV4dGVuZGVkIHllYXIuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkKKyAqICAgICA8dHQ+Y29tcHV0ZVdlZWtGaWVsZHM8L3R0PiB0byBjb21wdXRlIHRoZQorICogICAgIHtAbGluayAjV0VFS19PRl9ZRUFSfSBhbmQge0BsaW5rICNZRUFSX1dPWX0gZmllbGRzLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0TGltaXR9CisgKiAgICAgdG8gcmV0dXJuIHRoZSB7QGxpbmsgI01JTklNVU19LAorICogICAgIHtAbGluayAjR1JFQVRFU1RfTUlOSU1VTX0sIHtAbGluayAjTEVBU1RfTUFYSU1VTX0sIG9yCisgKiAgICAge0BsaW5rICNNQVhJTVVNfSBvZiBhIGZpZWxkLCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mCisgKiAgICAgPGNvZGU+bGltaXRUeXBlPC9jb2RlPi4gVGhpcyBtZXRob2Qgb25seSBuZWVkcyB0byBoYW5kbGUgdGhlCisgKiAgICAgZmllbGRzIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNXRUVLX09GX1lFQVJ9LCB7QGxpbmsgI1dFRUtfT0ZfTU9OVEh9LAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfSwge0BsaW5rICNEQVlfT0ZfWUVBUn0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfV0VFS19JTl9NT05USH0sIHtAbGluayAjWUVBUl9XT1l9LCBhbmQKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LiAgT3RoZXIgZmllbGRzIGFyZSBpbnZhcmlhbnQgKHdpdGgKKyAqICAgICByZXNwZWN0IHRvIGNhbGVuZGFyIHN5c3RlbSkgYW5kIGFyZSBoYW5kbGVkIGJ5IHRoZSBiYXNlCisgKiAgICAgY2xhc3MuPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3ZhbGlkYXRlRmllbGR9CisgKiAgICAgdG8gY2hlY2sgYW55IHN1YmNsYXNzLXNwZWNpZmljIGZpZWxkcy4gSWYgdGhlCisgKiAgICAgZmllbGQncyB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UsIHRoZSBtZXRob2Qgc2hvdWxkIHRocm93IGFuCisgKiAgICAgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4gVGhlIG1ldGhvZCBtYXkgY2FsbAorICogICAgIDxjb2RlPnN1cGVyLnZhbGlkYXRlRmllbGQoZmllbGQpPC9jb2RlPiB0byBoYW5kbGUgZmllbGRzIGluIGEKKyAqICAgICBnZW5lcmljIHdheSwgdGhhdCBpcywgdG8gY29tcGFyZSB0aGVtIHRvIHRoZSByYW5nZQorICogICAgIDxjb2RlPmdldE1pbmltdW0oZmllbGQpPC9jb2RlPi4uPGNvZGU+Z2V0TWF4aW11bShmaWVsZCk8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAqICAgICB7QGxpbmsgI2hhbmRsZUNyZWF0ZUZpZWxkc30gdG8gY3JlYXRlIGFuIDxjb2RlPmludFtdPC9jb2RlPgorICogICAgIGFycmF5IGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBjYWxlbmRhcidzIGZpZWxkcy4gVGhpcyBpcyBvbmx5CisgKiAgICAgbmVjZXNzYXJ5IGlmIHRoZSBjYWxlbmRhciBkZWZpbmVzIGFkZGl0aW9uYWwgZmllbGRzIGJleW9uZCB0aG9zZQorICogICAgIGRlZmluZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbXVzdCBiZQorICogICAgIGF0IGxlYXN0IHtAbGluayAjQkFTRV9GSUVMRF9DT1VOVH0gYW5kIG5vIG1vcmUgdGhhbgorICogICAgIHtAbGluayAjTUFYX0ZJRUxEX0NPVU5UfS48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVHZXREYXRlRm9ybWF0fSB0byBjcmVhdGUgYQorICogICAgIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuIFRoaXMgaXMgb25seQorICogICAgIHJlcXVpcmVkIGlmIGEgY2FsZW5kYXIgc3ViY2xhc3MgcmVkZWZpbmVzIHRoZSB1c2Ugb2YgYSBmaWVsZCAoZm9yCisgKiAgICAgZXhhbXBsZSwgY2hhbmdlcyB0aGUge0BsaW5rICNFUkF9IGZpZWxkIGZyb20gYSBzeW1ib2xpYyBmaWVsZAorICogICAgIHRvIGEgbnVtZXJpYyBvbmUpIG9yIGRlZmluZXMgYW4gYWRkaXRpb25hbCBmaWVsZC48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHtAbGluayAjcm9sbCByb2xsfSBhbmQKKyAqICAgICB7QGxpbmsgI2FkZCBhZGR9IHRvIGhhbmRsZSBmaWVsZHMgdGhhdCBhcmUgZGlzY29udGludW91cy4gRm9yCisgKiAgICAgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggJnF1b3Q7QWRhciBJJnF1b3Q7IG9ubHkKKyAqICAgICBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAqICAgICBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuIFRoZSB7QGxpbmsKKyAqICAgICBIZWJyZXdDYWxlbmRhciNhZGQgSGVicmV3Q2FsZW5kYXIuYWRkfSBhbmQge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2RzIHRha2UgdGhpcyBpbnRvCisgKiAgICAgYWNjb3VudCwgc28gdGhhdCBhZGRpbmcgMSBtb250aCB0byBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQKKyAqICAgICAoQWRhcikgaW4gYSBub24tbGVhcCB5ZWFyLiBUaGUgcHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kIHtAbGluaworICogICAgICNwaW5GaWVsZCBwaW5GaWVsZH0gaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHRoZXNlIHR3bworICogICAgIG1ldGhvZHMuIDwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPk5vcm1hbGl6ZWQgYmVoYXZpb3I8L2I+PC9iaWc+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGNlcnRhaW4gZmllbGRzIGhhcyBiZWVuIG1hZGUgY29uc2lzdGVudCBhY3Jvc3MgYWxsCisgKiBjYWxlbmRhciBzeXN0ZW1zIGFuZCBpbXBsZW1lbnRlZCBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRpbWUgaXMgbm9ybWFsaXplZC4gRXZlbiB0aG91Z2ggc29tZSBjYWxlbmRhciBzeXN0ZW1zIHRyYW5zaXRpb24KKyAqICAgICBiZXR3ZWVuIGRheXMgYXQgc3Vuc2V0IG9yIGF0IG90aGVyIHRpbWVzLCBhbGwgSUNVNEogY2FsZW5kYXJzCisgKiAgICAgdHJhbnNpdGlvbiBiZXR3ZWVuIGRheXMgYXQgPGVtPmxvY2FsIHpvbmUgbWlkbmlnaHQ8L2VtPi4gIFRoaXMKKyAqICAgICBhbGxvd3MgSUNVNEogdG8gY2VudHJhbGl6ZSB0aGUgdGltZSBjb21wdXRhdGlvbnMgaW4KKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYW5kIHRvIG1haW50YWluIGJhc2ljIGNvcnJlcHNvbmRlbmNlcworICogICAgIGJldHdlZW4gY2FsZW5kYXIgc3lzdGVtcy4gQWZmZWN0ZWQgZmllbGRzOiB7QGxpbmsgI0FNX1BNfSwKKyAqICAgICB7QGxpbmsgI0hPVVJ9LCB7QGxpbmsgI0hPVVJfT0ZfREFZfSwge0BsaW5rICNNSU5VVEV9LAorICogICAgIHtAbGluayAjU0VDT05EfSwge0BsaW5rICNNSUxMSVNFQ09ORH0sCisgKiAgICAge0BsaW5rICNaT05FX09GRlNFVH0sIGFuZCB7QGxpbmsgI0RTVF9PRkZTRVR9LjwvbGk+CisgKgorICogICA8bGk+RFNUIGJlaGF2aW9yIGlzIG5vcm1hbGl6ZWQuIERheWxpZ2h0IHNhdmluZ3MgdGltZSBiZWhhdmlvciBpcworICogICAgIGNvbXB1dGVkIHRoZSBzYW1lIGZvciBhbGwgY2FsZW5kYXIgc3lzdGVtcywgYW5kIGRlcGVuZHMgb24gdGhlCisgKiAgICAgdmFsdWUgb2Ygc2V2ZXJhbCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gZmllbGRzOiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwgYW5kCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LiBBcyBhIHJlc3VsdCwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiAgICAgYWx3YXlzIGNvbXB1dGVzIHRoZXNlIGZpZWxkcywgZXZlbiBmb3Igbm9uLUdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIHN5c3RlbXMuIFRoZXNlIGZpZWxkcyBhcmUgYXZhaWxhYmxlIHRvIHN1YmNsYXNzZXMuPC9saT4KKyAqCisgKiAgIDxsaT5XZWVrcyBhcmUgbm9ybWFsaXplZC4gQWx0aG91Z2ggbG9jYWxlcyBkZWZpbmUgdGhlIHdlZWsKKyAqICAgICBkaWZmZXJlbnRseSwgaW4gdGVybXMgb2YgdGhlIGRheSBvbiB3aGljaCBpdCBzdGFydHMsIGFuZCB0aGUKKyAqICAgICBkZXNpZ25hdGlvbiBvZiB3ZWVrIG51bWJlciBvbmUgb2YgYSBtb250aCBvciB5ZWFyLCB0aGV5IGFsbCB1c2UgYQorICogICAgIGNvbW1vbiBtZWNoYW5pc20uIEZ1cnRoZXJtb3JlLCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGhhcyBhIHNpbXBsZQorICogICAgIGFuZCBjb25zaXN0ZW50IGRlZmluaXRpb24gdGhyb3VnaG91dCBoaXN0b3J5LiBGb3IgZXhhbXBsZSwKKyAqICAgICBhbHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGludHJvZHVjZWQgYSBkaXNjb250aW51aXR5IHdoZW4KKyAqICAgICBmaXJzdCBpbnN0aXR1dGVkLCB0aGUgZGF5IG9mIHdlZWsgd2FzIG5vdCBkaXNydXB0ZWQuIEZvciB0aGlzCisgKiAgICAgcmVhc29uLCB0aGUgZmllbGRzIHtAbGluayAjREFZX09GX1dFRUt9LCA8Y29kZT5XRUVLX09GX1lFQVIsCisgKiAgICAgV0VFS19PRl9NT05USDwvY29kZT4sIHtAbGluayAjREFZX09GX1dFRUtfSU5fTU9OVEh9LAorICogICAgIHtAbGluayAjRE9XX0xPQ0FMfSwge0BsaW5rICNZRUFSX1dPWX0gYXJlIGFsbCBjb21wdXRlZCBpbgorICogICAgIGEgY29uc2lzdGVudCB3YXkgaW4gdGhlIGJhc2UgY2xhc3MsIGJhc2VkIG9uIHRoZQorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjREFZX09GX1lFQVJ9LAorICogICAgIHtAbGluayAjTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCB3aGljaCBhcmUKKyAqICAgICBjb21wdXRlZCBieSB0aGUgc3ViY2xhc3MuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3VwcG9ydGVkIHJhbmdlPC9iPjwvYmlnPgorICoKKyAqIDxwPlRoZSBhbGxvd2FibGUgcmFuZ2Ugb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhcyBiZWVuCisgKiBuYXJyb3dlZC4gPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IHVzZWQgdG8gYXR0ZW1wdCB0byBzdXBwb3J0CisgKiB0aGUgcmFuZ2Ugb2YgZGF0ZXMgd2l0aCBtaWxsaXNlY29uZCB2YWx1ZXMgZnJvbQorICogPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IHRvIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi4gVGhpcworICogaW50cm9kdWNlZCBhd2t3YXJkIGNvbnN0cnVjdGlvbnMgKGhhY2tzKSB3aGljaCBzbG93ZWQgZG93bgorICogcGVyZm9ybWFuY2UuIEl0IGFsc28gaW50cm9kdWNlZCBub24tdW5pZm9ybSBiZWhhdmlvciBhdCB0aGUKKyAqIGJvdW5kYXJpZXMuIFRoZSBuZXcgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHByb3RvY29sIHNwZWNpZmllcyB0aGUKKyAqIG1heGltdW0gcmFuZ2Ugb2Ygc3VwcG9ydGFibGUgZGF0ZXMgYXMgdGhvc2UgaGF2aW5nIEp1bGlhbiBkYXkgbnVtYmVycworICogb2YgPGNvZGU+LTB4N0YwMDAwMDA8L2NvZGU+IHRvIDxjb2RlPisweDdGMDAwMDAwPC9jb2RlPi4gVGhpcworICogY29ycmVzcG9uZHMgdG8geWVhcnMgZnJvbSB+NSwwMDAsMDAwIEJDRSB0byB+NSwwMDAsMDAwIENFLiBQcm9ncmFtbWVycworICogc2hvdWxkIHVzZSB0aGUgY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9IChvcgorICoge0BsaW5rICNNSU5fTUlMTElTfSBvciB7QGxpbmsgI01JTl9KVUxJQU59KSBhbmQKKyAqIHtAbGluayAjTUFYX0RBVEV9IChvciB7QGxpbmsgI01BWF9NSUxMSVN9IG9yCisgKiB7QGxpbmsgI01BWF9KVUxJQU59KSBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gdG8gc3BlY2lmeSBhbgorICogZXh0cmVtZWx5IGVhcmx5IG9yIGV4dHJlbWVseSBsYXRlIGRhdGUuPC9wPgorICoKKyAqIDxwPjxiaWc+PGI+R2VuZXJhbCBub3RlczwvYj48L2JpZz4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+Q2FsZW5kYXJzIGltcGxlbWVudGF0aW9ucyBhcmUgPGVtPnByb2xlcHRpYzwvZW0+LiBGb3IgZXhhbXBsZSwKKyAqICAgICBldmVuIHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHdhcyBub3QgaW5zdGl0dXRlZCB1bnRpbCB0aGUKKyAqICAgICAxNnRoIGNlbnR1cnksIHRoZSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgc3VwcG9ydHMKKyAqICAgICBkYXRlcyBiZWZvcmUgdGhlIGhpc3RvcmljYWwgb25zZXQgb2YgdGhlIGNhbGVuZGFyIGJ5IGV4dGVuZGluZyB0aGUKKyAqICAgICBjYWxlbmRhciBzeXN0ZW0gYmFja3dhcmQgaW4gdGltZS4gU2ltaWxhcmx5LCB0aGUKKyAqICAgICA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gZXh0ZW5kcyBiYWNrd2FyZCBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgKiAgICAgaXRzIGVwb2NoIGludG8gemVybyBhbmQgbmVnYXRpdmUgeWVhcnMuIFN1YmNsYXNzZXMgZG8gbm90IHRocm93CisgKiAgICAgZXhjZXB0aW9ucyBiZWNhdXNlIGEgZGF0ZSBwcmVjZWRlcyB0aGUgaGlzdG9yaWNhbCBzdGFydCBvZiBhCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtLiBJbnN0ZWFkLCB0aGV5IGltcGxlbWVudAorICogICAgIHtAbGluayAjaGFuZGxlR2V0TGltaXR9IHRvIHJldHVybiBhcHByb3ByaWF0ZSBsaW1pdHMgb24KKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VSQX0sIGV0Yy4gZmllbGRzLiBUaGVuLCBpZiB0aGUKKyAqICAgICBjYWxlbmRhciBpcyBzZXQgdG8gbm90IGJlIGxlbmllbnQsIG91dC1vZi1yYW5nZSBmaWVsZCB2YWx1ZXMgd2lsbAorICogICAgIHRyaWdnZXIgYW4gZXhjZXB0aW9uLjwvbGk+CisgKgorICogICA8bGk+Q2FsZW5kYXIgc3lzdGVtIHN1YmNsYXNzZXMgY29tcHV0ZSBhIDxlbT5leHRlbmRlZAorICogICAgIHllYXI8L2VtPi4gVGhpcyBkaWZmZXJzIGZyb20gdGhlIHtAbGluayAjWUVBUn0gZmllbGQgaW4gdGhhdAorICogICAgIGl0IHJhbmdlcyBvdmVyIGFsbCBpbnRlZ2VyIHZhbHVlcywgaW5jbHVkaW5nIHplcm8gYW5kIG5lZ2F0aXZlCisgKiAgICAgdmFsdWVzLCBhbmQgaXQgZW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9IGZpZWxkIGFuZCBhbGwgbGFyZ2VyIGZpZWxkcy4gIFRodXMsIGZvciB0aGUKKyAqICAgICBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzCisgKiAgICAgPGNvZGU+RVJBPT1BRCA/IFlFQVIgOiAxLVlFQVI8L2NvZGU+LiBBbm90aGVyIGV4YW1wbGUgaXMgdGhlIE1heWFuCisgKiAgICAgbG9uZyBjb3VudCwgd2hpY2ggaGFzIHllYXJzICg8Y29kZT5LVU48L2NvZGU+KSBhbmQgbmVzdGVkIGN5Y2xlcworICogICAgIG9mIHllYXJzICg8Y29kZT5LQVRVTjwvY29kZT4gYW5kIDxjb2RlPkJBS1RVTjwvY29kZT4pLiBUaGUgTWF5YW4KKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzIDxjb2RlPlRVTiArIDIwICogKEtBVFVOCisgKiAgICAgKyAyMCAqIEJBS1RVTik8L2NvZGU+LiBUaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgdXNlcworICogICAgIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGZpZWxkIHRvIGNvbXB1dGUgdGhlIHdlZWstcmVsYXRlZAorICogICAgIGZpZWxkcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogQHNlZSAgICAgICAgICBEYXRlCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBhdXRob3IgTWFyayBEYXZpcywgRGF2aWQgR29sZHNtaXRoLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1LCBMYXVyYSBXZXJuZXIKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSwgQ29tcGFyYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudXRpbC5DYWxlbmRhciBjYWxlbmRhcjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBDYWxlbmRhciB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5jYWxlbmRhciA9IGRlbGVnYXRlOworICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVyYSwgZS5nLiwgQUQgb3IgQkMgaW4gdGhlIEp1bGlhbiBjYWxlbmRhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljCisgICAgICogdmFsdWU7IHNlZSBzdWJjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBzZWUgR3JlZ29yaWFuQ2FsZW5kYXIjQUQKKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0JDCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogeWVhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbW9udGguIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYyB2YWx1ZS4gVGhlIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyIGlzCisgICAgICogPGNvZGU+SkFOVUFSWTwvY29kZT47IHRoZSBsYXN0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBtb250aHMgaW4gYSB5ZWFyLgorICAgICAqIEBzZWUgI0pBTlVBUlkKKyAgICAgKiBAc2VlICNGRUJSVUFSWQorICAgICAqIEBzZWUgI01BUkNICisgICAgICogQHNlZSAjQVBSSUwKKyAgICAgKiBAc2VlICNNQVkKKyAgICAgKiBAc2VlICNKVU5FCisgICAgICogQHNlZSAjSlVMWQorICAgICAqIEBzZWUgI0FVR1VTVAorICAgICAqIEBzZWUgI1NFUFRFTUJFUgorICAgICAqIEBzZWUgI09DVE9CRVIKKyAgICAgKiBAc2VlICNOT1ZFTUJFUgorICAgICAqIEBzZWUgI0RFQ0VNQkVSCisgICAgICogQHNlZSAjVU5ERUNJTUJFUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogd2VlayBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IHllYXIuICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciwgYXMKKyAgICAgKiBkZWZpbmVkIGJ5IDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4sIGhhcyB2YWx1ZSAxLiAgU3ViY2xhc3NlcyBkZWZpbmUKKyAgICAgKiB0aGUgdmFsdWUgb2YgPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmb3IgZGF5cyBiZWZvcmUgdGhlIGZpcnN0IHdlZWsgb2YKKyAgICAgKiB0aGUgeWVhci4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX1lFQVIgPSAzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB3ZWVrIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgbW9udGgsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGZvciBkYXlzIGJlZm9yZSB0aGUgZmlyc3Qgd2VlayBvZgorICAgICAqIHRoZSBtb250aC4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIID0gNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5IG9mIHRoZSBtb250aC4gVGhpcyBpcyBhIHN5bm9ueW0gZm9yIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFZX09GX01PTlRICisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSA9IDU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheSBvZiB0aGUgbW9udGguIFRoaXMgaXMgYSBzeW5vbnltIGZvciA8Y29kZT5EQVRFPC9jb2RlPi4KKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc2VlICNEQVRFCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX01PTlRIID0gNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgeWVhci4gIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHllYXIgaGFzIHZhbHVlIDEuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1lFQVIgPSA2OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUgZGF5CisgICAgICogb2YgdGhlIHdlZWsuICBUaGlzIGZpZWxkIHRha2VzIHZhbHVlcyA8Y29kZT5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPk1PTkRBWTwvY29kZT4sIDxjb2RlPlRVRVNEQVk8L2NvZGU+LCA8Y29kZT5XRURORVNEQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPlRIVVJTREFZPC9jb2RlPiwgPGNvZGU+RlJJREFZPC9jb2RlPiwgYW5kIDxjb2RlPlNBVFVSREFZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNTVU5EQVkKKyAgICAgKiBAc2VlICNNT05EQVkKKyAgICAgKiBAc2VlICNUVUVTREFZCisgICAgICogQHNlZSAjV0VETkVTREFZCisgICAgICogQHNlZSAjVEhVUlNEQVkKKyAgICAgKiBAc2VlICNGUklEQVkKKyAgICAgKiBAc2VlICNTQVRVUkRBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLID0gNzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogb3JkaW5hbCBudW1iZXIgb2YgdGhlIGRheSBvZiB0aGUgd2VlayB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguIFRvZ2V0aGVyCisgICAgICogd2l0aCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkLCB0aGlzIHVuaXF1ZWx5IHNwZWNpZmllcyBhIGRheQorICAgICAqIHdpdGhpbiBhIG1vbnRoLiAgVW5saWtlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4sIHRoaXMgZmllbGQncyB2YWx1ZSBkb2VzIDxlbT5ub3Q8L2VtPiBkZXBlbmQgb24KKyAgICAgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4uICA8Y29kZT5EQVlfT0ZfTU9OVEggMTwvY29kZT4KKyAgICAgKiB0aHJvdWdoIDxjb2RlPjc8L2NvZGU+IGFsd2F5cyBjb3JyZXNwb25kIHRvIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICogMTwvY29kZT47IDxjb2RlPjg8L2NvZGU+IHRocm91Z2ggPGNvZGU+MTU8L2NvZGU+IGNvcnJlc3BvbmQgdG8KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAyPC9jb2RlPiwgYW5kIHNvIG9uLgorICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDA8L2NvZGU+IGluZGljYXRlcyB0aGUgd2VlayBiZWZvcmUKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAxPC9jb2RlPi4gIE5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrIGZyb20gdGhlCisgICAgICogZW5kIG9mIHRoZSBtb250aCwgc28gdGhlIGxhc3QgU3VuZGF5IG9mIGEgbW9udGggaXMgc3BlY2lmaWVkIGFzCisgICAgICogPGNvZGU+REFZX09GX1dFRUsgPSBTVU5EQVksIERBWV9PRl9XRUVLX0lOX01PTlRIID0gLTE8L2NvZGU+LiAgQmVjYXVzZQorICAgICAqIG5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrd2FyZCB0aGV5IHdpbGwgdXN1YWxseSBiZSBhbGlnbmVkIGRpZmZlcmVudGx5CisgICAgICogd2l0aGluIHRoZSBtb250aCB0aGFuIHBvc2l0aXZlIHZhbHVlcy4gIEZvciBleGFtcGxlLCBpZiBhIG1vbnRoIGhhcyAzMQorICAgICAqIGRheXMsIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIC0xPC9jb2RlPiB3aWxsIG92ZXJsYXAKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCA1PC9jb2RlPiBhbmQgdGhlIGVuZCBvZiA8Y29kZT40PC9jb2RlPi4KKyAgICAgKiBAc2VlICNEQVlfT0ZfV0VFSworICAgICAqIEBzZWUgI1dFRUtfT0ZfTU9OVEgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IDg7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgYmVmb3JlIG9yIGFmdGVyIG5vb24uCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gaXMgPGNvZGU+UE08L2NvZGU+LgorICAgICAqIEBzZWUgI0FNCisgICAgICogQHNlZSAjUE0KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE0gPSA5OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBtb3JuaW5nIG9yIGFmdGVybm9vbi4gPGNvZGU+SE9VUjwvY29kZT4gaXMgdXNlZCBmb3IgdGhlIDEyLWhvdXIKKyAgICAgKiBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVI8L2NvZGU+IGlzIDEwLgorICAgICAqIEBzZWUgI0FNX1BNCisgICAgICogQHNlZSAjSE9VUl9PRl9EQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSID0gMTA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGhvdXIgb2YgdGhlIGRheS4gPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIHVzZWQgZm9yIHRoZSAyNC1ob3VyIGNsb2NrLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIDIyLgorICAgICAqIEBzZWUgI0hPVVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWSA9IDExOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaW51dGUgd2l0aGluIHRoZSBob3VyLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+TUlOVVRFPC9jb2RlPiBpcyA0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSA9IDEyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgd2l0aGluIHRoZSBtaW51dGUuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5TRUNPTkQ8L2NvZGU+IGlzIDE1LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORCA9IDEzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaWxsaXNlY29uZCB3aXRoaW4gdGhlIHNlY29uZC4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPk1JTExJU0VDT05EPC9jb2RlPiBpcyAyNTAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlMTElTRUNPTkQgPSAxNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogcmF3IG9mZnNldCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWk9ORV9PRkZTRVQgPSAxNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5bGlnaHQgc2F2aW5ncyBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERTVF9PRkZTRVQgPSAxNjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkLiAgVGhpcyBtYXkgYmUgb25lIGdyZWF0ZXIgb3IgbGVzcworICAgICAqIHRoYW4gdGhlIHZhbHVlIG9mIDxjb2RlPkVYVEVOREVEX1lFQVI8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFQVJfV09ZID0gMTc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBsb2NhbGl6ZWQgZGF5IG9mIHdlZWsuICBUaGlzIHdpbGwgYmUgYSB2YWx1ZSBmcm9tIDEKKyAgICAgKiB0byA3IGluY2x1c2l2ZSwgd2l0aCAxIGJlaW5nIHRoZSBsb2NhbGl6ZWQgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPV19MT0NBTCA9IDE4OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgZXh0ZW5kZWQgeWVhci4gIFRoaXMgaXMgYSBzaW5nbGUgbnVtYmVyIGRlc2lnbmF0aW5nCisgICAgICogdGhlIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0sIGVuY29tcGFzc2luZyBhbGwgc3VwcmEteWVhcgorICAgICAqIGZpZWxkcy4gIEZvciBleGFtcGxlLCBmb3IgdGhlIEp1bGlhbiBjYWxlbmRhciBzeXN0ZW0sIHllYXIgbnVtYmVycworICAgICAqIGFyZSBwb3NpdGl2ZSwgd2l0aCBhbiBlcmEgb2YgQkNFIG9yIENFLiAgQW4gZXh0ZW5kZWQgeWVhciB2YWx1ZSBmb3IKKyAgICAgKiB0aGUgSnVsaWFuIGNhbGVuZGFyIHN5c3RlbSBhc3NpZ25zIHBvc2l0aXZlIHZhbHVlcyB0byBDRSB5ZWFycyBhbmQKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgdG8gQkNFIHllYXJzLCB3aXRoIDEgQkNFIGJlaW5nIHllYXIgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9ZRUFSID0gMTk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtb2RpZmllZCBKdWxpYW4gZGF5IG51bWJlci4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20KKyAgICAgKiB0aGUgY29udmVudGlvbmFsIEp1bGlhbiBkYXkgbnVtYmVyIGluIHR3byByZWdhcmRzLiAgRmlyc3QsIGl0CisgICAgICogZGVtYXJjYXRlcyBkYXlzIGF0IGxvY2FsIHpvbmUgbWlkbmlnaHQsIHJhdGhlciB0aGFuIG5vb24gR01ULgorICAgICAqIFNlY29uZCwgaXQgaXMgYSBsb2NhbCBudW1iZXI7IHRoYXQgaXMsIGl0IGRlcGVuZHMgb24gdGhlIGxvY2FsIHRpbWUKKyAgICAgKiB6b25lLiAgSXQgY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBzaW5nbGUgbnVtYmVyIHRoYXQgZW5jb21wYXNzZXMgYWxsCisgICAgICogdGhlIGRhdGUtcmVsYXRlZCBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOX0RBWSA9IDIwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbWlsbGlzZWNvbmRzIGluIHRoZSBkYXkuICBUaGlzIHJhbmdlcyBmcm9tIDAgdG8KKyAgICAgKiAyMzo1OTo1OS45OTkgKHJlZ2FyZGxlc3Mgb2YgRFNUKS4gIFRoaXMgZmllbGQgYmVoYXZlcworICAgICAqIDxlbT5leGFjdGx5PC9lbT4gbGlrZSBhIGNvbXBvc2l0ZSBvZiBhbGwgdGltZS1yZWxhdGVkIGZpZWxkcywgbm90CisgICAgICogaW5jbHVkaW5nIHRoZSB6b25lIGZpZWxkcy4gIEFzIHN1Y2gsIGl0IGFsc28gcmVmbGVjdHMKKyAgICAgKiBkaXNjb250aW51aXRpZXMgb2YgdGhvc2UgZmllbGRzIG9uIERTVCB0cmFuc2l0aW9uIGRheXMuICBPbiBhIGRheSBvZgorICAgICAqIERTVCBvbnNldCwgaXQgd2lsbCBqdW1wIGZvcndhcmQuICBPbiBhIGRheSBvZiBEU1QgY2Vzc2F0aW9uLCBpdCB3aWxsCisgICAgICoganVtcCBiYWNrd2FyZC4gIFRoaXMgcmVmbGVjdHMgdGhlIGZhY3QgdGhhdCBpcyBtdXN0IGJlIGNvbWJpbmVkIHdpdGgKKyAgICAgKiB0aGUgRFNUX09GRlNFVCBmaWVsZCB0byBvYnRhaW4gYSB1bmlxdWUgbG9jYWwgdGltZSB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUxMSVNFQ09ORFNfSU5fREFZID0gMjE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjbGFzcy4gIFN1YmNsYXNzZXMgbWF5IGRlZmluZQorICAgICAqIGFkZGl0aW9uIGZpZWxkcyBzdGFydGluZyB3aXRoIHRoaXMgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEJBU0VfRklFTERfQ09VTlQgPSAyMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGZpZWxkcyBwb3NzaWJsZS4gIFN1YmNsYXNzZXMgbXVzdCBub3QgZGVmaW5lCisgICAgICogbW9yZSB0b3RhbCBmaWVsZHMgdGhhbiB0aGlzIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfRklFTERfQ09VTlQgPSAzMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU3VuZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNVTkRBWSA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIE1vbmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05EQVkgPSAyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBUdWVzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRVNEQVkgPSAzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBXZWRuZXNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VETkVTREFZID0gNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogVGh1cnNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVUlNEQVkgPSA1OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBGcmlkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJREFZID0gNjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU2F0dXJkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0FUVVJEQVkgPSA3OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlyc3QgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSkFOVUFSWSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRkVCUlVBUlkgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGhpcmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFSQ0ggPSAyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZm91cnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFQUklMID0gMzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZpZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BWSA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzaXh0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKVU5FID0gNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVMWSA9IDY7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlaWdodGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVVHVVNUID0gNzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIG5pbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFUFRFTUJFUiA9IDg7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPQ1RPQkVSID0gOTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVsZXZlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PVkVNQkVSID0gMTA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0d2VsZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFQ0VNQkVSID0gMTE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0aGlydGVlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLiBBbHRob3VnaCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiBkb2VzIG5vdCB1c2UgdGhpcyB2YWx1ZSwgbHVuYXIgY2FsZW5kYXJzIGRvLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFVOREVDSU1CRVIgPSAxMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkFNX1BNPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHBlcmlvZCBvZiB0aGUgZGF5IGZyb20gbWlkbmlnaHQgdG8ganVzdCBiZWZvcmUgbm9vbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG5vb24gdG8ganVzdCBiZWZvcmUgbWlkbmlnaHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUE0gPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiB3ZWVrZGF5LgorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLREFZID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2VuZCBkYXkuCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkQgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiBkYXkgdGhhdCBzdGFydHMgYXMgYSB3ZWVrZGF5IGFuZCB0cmFuc2l0aW9ucyB0byB0aGUgd2Vla2VuZC4KKyAgICAgKiBDYWxsIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgdG8gZ2V0IHRoZSBwb2ludCBvZiB0cmFuc2l0aW9uLgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EX09OU0VUID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogZGF5IHRoYXQgc3RhcnRzIGFzIHRoZSB3ZWVrZW5kIGFuZCB0cmFuc2l0aW9ucyB0byBhIHdlZWtkYXkuCisgICAgICogQ2FsbCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHRvIGdldCB0aGUgcG9pbnQgb2YgdHJhbnNpdGlvbi4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORF9DRUFTRSA9IDM7CisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2Uoem9uZS50aW1lWm9uZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGFMb2NhbGUpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIHNwZWNpZmllZCBsb2NhbGUuICAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpICAgICB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSh6b25lLnRpbWVab25lLCBhTG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKHpvbmUudGltZVpvbmUsIGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gamF2YS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoYXZhaWxhYmxlVUxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZhaWxhYmxlVUxvY2FsZXMgPSB1bG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVMb2NhbGVbXSlhdmFpbGFibGVVTG9jYWxlcy5jbG9uZSgpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gYXZhaWxhYmxlVUxvY2FsZXM7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSB3aXRoIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IENhbGxpbmcgPGNvZGU+c2V0VGltZSgpPC9jb2RlPiB3aXRoCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+IG9yIDxjb2RlPkRhdGUoTG9uZy5NSU5fVkFMVUUpPC9jb2RlPgorICAgICAqIG1heSB5aWVsZCBpbmNvcnJlY3QgZmllbGQgdmFsdWVzIGZyb20gPGNvZGU+Z2V0KCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgYXMgYSBsb25nLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgdGltZSBhcyBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWVJbk1pbGxpcygpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgZnJvbSB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIHRoZSBuZXcgdGltZSBpbiBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVJbk1pbGxpcyhsb25nIG1pbGxpcykgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0KGZpZWxkKTsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBzZXQgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgZmllbGQsIGludCB2YWx1ZSkgeworICAgICAgICBjYWxlbmRhci5zZXQoZmllbGQsIHZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgYW5kIGRhdGUuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgYW5kIG1pbnV0ZS4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkgeworICAgICAgICBjYWxlbmRhci5zZXQoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgYW5kIHNlY29uZC4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgdGhlIHZhbHVlcyBvZiBhbGwgdGhlIHRpbWUgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGNsZWFyKCkgeworICAgICAgICBjYWxlbmRhci5jbGVhcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZSBpbiB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIHRpbWUgZmllbGQgdG8gYmUgY2xlYXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcihpbnQgZmllbGQpIHsKKyAgICAgICAgY2FsZW5kYXIuY2xlYXIoZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB0aW1lIGZpZWxkIGhhcyBhIHZhbHVlIHNldDsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzU2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuaXNTZXQoZmllbGQpOworICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGlzIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAqIFRoZSByZXN1bHQgaXMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzCisgICAgICogbm90IDxjb2RlPm51bGw8L2NvZGU+IGFuZCBpcyBhIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgdGhhdAorICAgICAqIHJlcHJlc2VudHMgdGhlIHNhbWUgY2FsZW5kYXIgYXMgdGhpcyBvYmplY3QuCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgd2l0aC4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBvYmplY3RzIGFyZSB0aGUgc2FtZTsKKyAgICAgKiA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXIuZXF1YWxzKCgoQ2FsZW5kYXIpb2JqKS5jYWxlbmRhcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gQ2FsZW5kYXIgb2JqZWN0IGlzIGVxdWl2YWxlbnQgdG8gdGhpcworICAgICAqIG9uZS4gIEFuIGVxdWl2YWxlbnQgQ2FsZW5kYXIgd2lsbCBiZWhhdmUgZXhhY3RseSBhcyB0aGlzIG9uZQorICAgICAqIGRvZXMsIGJ1dCBpdCBtYXkgYmUgc2V0IHRvIGEgZGlmZmVyZW50IHRpbWUuICBCeSBjb250cmFzdCwgZm9yCisgICAgICogdGhlIGVxdWFscygpIG1ldGhvZCB0byByZXR1cm4gdHJ1ZSwgdGhlIG90aGVyIENhbGVuZGFyIG11c3QKKyAgICAgKiBiZSBzZXQgdG8gdGhlIHNhbWUgdGltZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50VG8oQ2FsZW5kYXIgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoKSA9PSBvdGhlci5nZXRDbGFzcygpICYmCisgICAgICAgICAgICBpc0xlbmllbnQoKSA9PSBvdGhlci5pc0xlbmllbnQoKSAmJgorICAgICAgICAgICAgZ2V0Rmlyc3REYXlPZldlZWsoKSA9PSBvdGhlci5nZXRGaXJzdERheU9mV2VlaygpICYmCisgICAgICAgICAgICBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgPT0gb3RoZXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpICYmCisgICAgICAgICAgICBnZXRUaW1lWm9uZSgpLmVxdWFscyhvdGhlci5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHJldHVybiBhIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmhhc2hDb2RlKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIG1vbWVudCB0aGlzCisgICAgICogY2FsZW5kYXIgaXMgc2V0IHRvIGFuZCB0aGUgbW9tZW50IHRoZSBnaXZlbiBjYWxlbmRhciBvciBEYXRlIG9iamVjdAorICAgICAqIGlzIHNldCB0by4KKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgY29tcGFyZShPYmplY3QgdGhhdCkgeworICAgICAgICBsb25nIHRoYXRNczsKKyAgICAgICAgaWYgKHRoYXQgaW5zdGFuY2VvZiBDYWxlbmRhcikgeworICAgICAgICAgICAgdGhhdE1zID0gKChDYWxlbmRhcil0aGF0KS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGF0IGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgdGhhdE1zID0gKChEYXRlKXRoYXQpLmdldFRpbWUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGhhdCArICJpcyBub3QgYSBDYWxlbmRhciBvciBEYXRlIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdE1zOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIG9mIENhbGVuZGFyIHdoZW47IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBiZWZvcmUoT2JqZWN0IHdoZW4pIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUod2hlbikgPCAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGFmdGVyCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFmdGVyKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pID4gMDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlCisgICAgICogY3VycmVudCBkYXRlLiAgRm9yIGV4YW1wbGUsIHdpdGggdGhlIEdyZWdvcmlhbiBkYXRlIEZlYnJ1YXJ5IDMsIDE5OTcKKyAgICAgKiBhbmQgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIGlzIDI4OyBmb3IgRmVicnVhcnkgMywgMTk5NiBpdCBpcyAyOS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBhY3R1YWwgbWF4aW11bSBjb21wdXRhdGlvbiBpZ25vcmVzIHNtYWxsZXIgZmllbGRzIGFuZCB0aGUKKyAgICAgKiBjdXJyZW50IHZhbHVlIG9mIGxpa2Utc2l6ZWQgZmllbGRzLiAgRm9yIGV4YW1wbGUsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIG9mIHRoZSBEQVlfT0ZfWUVBUiBvciBNT05USCBkZXBlbmRzIG9ubHkgb24gdGhlIHllYXIgYW5kIHN1cHJhLXllYXIKKyAgICAgKiBmaWVsZHMuICBUaGUgYWN0dWFsIG1heGltdW0gb2YgdGhlIERBWV9PRl9NT05USCBkZXBlbmRzLCBpbgorICAgICAqIGFkZGl0aW9uLCBvbiB0aGUgTU9OVEggZmllbGQgYW5kIGFueSBvdGhlciBmaWVsZHMgYXQgdGhhdAorICAgICAqIGdyYW51bGFyaXR5IChzdWNoIGFzIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKS4gIFRoZQorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY3VycmVudAorICAgICAqIERBWV9PRl9XRUVLOyBpdCByZXR1cm5zIHRoZSBtYXhpbXVtIGZvciBhbnkgZGF5IG9mIHdlZWsgaW4gdGhlCisgICAgICogY3VycmVudCBtb250aC4gIExpa2V3aXNlIGZvciB0aGUgV0VFS19PRl9NT05USCBhbmQgV0VFS19PRl9ZRUFSCisgICAgICogZmllbGRzLgorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBtYXhpbXVtIGlzIGRlc2lyZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICogQHNlZSAjZ2V0TWF4aW11bQorICAgICAqIEBzZWUgI2dldExlYXN0TWF4aW11bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUgY3VycmVudCBkYXRlLgorICAgICAqIEZvciBtb3N0IGZpZWxkcywgdGhpcyBpcyB0aGUgc2FtZSBhcyB7QGxpbmsgI2dldE1pbmltdW0gZ2V0TWluaW11bX0KKyAgICAgKiBhbmQge0BsaW5rICNnZXRHcmVhdGVzdE1pbmltdW0gZ2V0R3JlYXRlc3RNaW5pbXVtfS4gIEhvd2V2ZXIsIHNvbWUgZmllbGRzLAorICAgICAqIGVzcGVjaWFsbHkgdGhvc2UgcmVsYXRlZCB0byB3ZWVrIG51bWJlciwgYXJlIG1vcmUgY29tcGxpY2F0ZWQuCisgICAgICogPHA+CisgICAgICogRm9yIGV4YW1wbGUsIGFzc3VtZSB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiByZXR1cm5zIDQgYW5kIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IHJldHVybnMgU1VOREFZLgorICAgICAqIElmIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGlzIFN1bmRheSwgTW9uZGF5LCBUdWVzZGF5LCBvciBXZWRuZXNkYXkKKyAgICAgKiB0aGVyZSB3aWxsIGJlIGZvdXIgb3IgbW9yZSBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLCBzbyBpdCB3aWxsIGJlIHdlZWsgbnVtYmVyIDEsCisgICAgICogYW5kIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDEuICBIb3dldmVyLAorICAgICAqIGlmIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggaXMgYSBUaHVyc2RheSwgRnJpZGF5LCBvciBTYXR1cmRheSwgdGhlcmUgYXJlCisgICAgICogPGVtPm5vdDwvZW0+IGZvdXIgZGF5cyBpbiB0aGF0IHdlZWssIHNvIGl0IGlzIHdlZWsgbnVtYmVyIDAsIGFuZAorICAgICAqIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDAuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBhY3R1YWwgbWluaW11bSB2YWx1ZSBpcyBkZXNpcmVkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGdpdmVuIGZpZWxkIGZvciB0aGUgY3VycmVudCBkYXRlIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1pbmltdW0KKyAgICAgKiBAc2VlICNnZXRHcmVhdGVzdE1pbmltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRBY3R1YWxNaW5pbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzaW5nbGUgdW5pdCBvZiB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLiBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgb25lIGRheSwgeW91IGNhbiBjYWxsOgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPnJvbGwoe0BsaW5rICNEQVRFfSwgdHJ1ZSk8L2NvZGU+CisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkLCBpdCB3aWxsIHJvbGwgdGhlIHllYXIKKyAgICAgKiB2YWx1ZSBpbiB0aGUgcmFuZ2UgYmV0d2VlbiAxIGFuZCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGluZworICAgICAqIHtAbGluayAjZ2V0TWF4aW11bSBnZXRNYXhpbXVtfSh7QGxpbmsgI1lFQVJ9KS4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgdXB3YXJkLCB0aGUgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBDYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCB0cnVlKTwvdHQ+IE4gdGltZXMgaXMgPGVtPm5vdDwvZW0+CisgICAgICogbmVjZXNzYXJpbHkgZXF1aXZhbGVudCB0byBjYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCBOKTwvdHQ+LiAgRm9yIGV4YW1wbGUsCisgICAgICogaW1hZ2luZSB0aGF0IHlvdSBzdGFydCB3aXRoIHRoZSBkYXRlIEdyZWdvcmlhbiBkYXRlIEphbnVhcnkgMzEsIDE5OTUuICBJZiB5b3UgY2FsbAorICAgICAqIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCAyKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUgTWFyY2ggMzEsIDE5OTUuCisgICAgICogQnV0IGlmIHlvdSBjYWxsIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCB0cnVlKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKiBGZWJydWFyeSAyOCwgMTk5NS4gIENhbGxpbmcgaXQgb25lIG1vcmUgdGltZSB3aWxsIGdpdmUgTWFyY2ggMjgsIDE5OTUsIHdoaWNoCisgICAgICogaXMgdXN1YWxseSBub3QgdGhlIGRlc2lyZWQgcmVzdWx0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1cCAgICBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdGltZSBmaWVsZCBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICByb2xsZWQgdXAgb3Igcm9sbGVkIGRvd24uIFVzZSA8Y29kZT50cnVlPC9jb2RlPiBpZiByb2xsaW5nIHVwLAorICAgICAqICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHNlZSAjYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm9sbChpbnQgZmllbGQsIGJvb2xlYW4gdXApIHsKKyAgICAgICAgY2FsZW5kYXIucm9sbChmaWVsZCwgdXApOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUm9sbHMgKHVwL2Rvd24pIGEgc3BlY2lmaWVkIGFtb3VudCB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIEZvcgorICAgICAqIGV4YW1wbGUsIHRvIHJvbGwgdGhlIGN1cnJlbnQgZGF0ZSB1cCBieSB0aHJlZSBkYXlzLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgR3JlZ29yaWFuIGNhbGVuZGFyIHNldCB0byA0LzI1Lzk2IHdpbGwgcmVzdWx0IGluIHRoZSBkYXRlIDQvNS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiBieSArMSwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPnJvbGw8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBtb3N0IHN1Y2ggZmllbGRzLCBzaW1wbGUgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBhbmQgbW9kdWx1cyBvcGVyYXRpb25zCisgICAgICogYXJlIHN1ZmZpY2llbnQgdG8gcGVyZm9ybSB0aGUgcm9sbC4gIEZvciB3ZWVrLXJlbGF0ZWQgZmllbGRzLAorICAgICAqIHRoZSByZXN1bHRzIG9mIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IGFuZAorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBhcmUgYWxzbyBuZWNlc3NhcnkuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhlc2UgdHdvIG1ldGhvZHMgaWYgdGhlaXIgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoZSBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+cm9sbDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2QgdGFrZXMgdGhpcyBpbnRvIGFjY291bnQsCisgICAgICogc28gdGhhdCByb2xsaW5nIHRoZSBtb250aCBvZiBTaGV2YXQgYnkgb25lIGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0IChBZGFyKSBpbiBhCisgICAgICogbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSBjYWxlbmRhciBmaWVsZCB0byByb2xsLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgZmllbGQgc2hvdWxkIGJlIHJvbGxlZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgYm9vbGVhbikKKyAgICAgKiBAc2VlICNhZGQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBjYWxlbmRhci5yb2xsKGZpZWxkLCBhbW91bnQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc2lnbmVkIGFtb3VudCB0byBhIHNwZWNpZmllZCBmaWVsZCwgdXNpbmcgdGhpcyBjYWxlbmRhcidzIHJ1bGVzLgorICAgICAqIEZvciBleGFtcGxlLCB0byBhZGQgdGhyZWUgZGF5cyB0byB0aGUgY3VycmVudCBkYXRlLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5hZGQoQ2FsZW5kYXIuREFURSwgMyk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIFdoZW4gYWRkaW5nIHRvIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gYWRkaW5nIG9uZSB0byB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogVGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGFibGUgdG8gYWRkIHRvCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+YWRkPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+YWRkPC9jb2RlPiBhc3N1bWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIHRoZQorICAgICAqIGZpZWxkIGlzIGNvbnRpbnVvdXMgYmV0d2VlbiBpdHMgbWluaW11bSBhbmQgbWF4aW11bSwgd2hpY2ggYXJlIGZvdW5kIGJ5CisgICAgICogY2FsbGluZyB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBzdWNoIGZpZWxkcywgc2ltcGxlIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBhcmUgc3VmZmljaWVudCB0bworICAgICAqIHBlcmZvcm0gdGhlIGFkZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoaXMgYXNzdW1wdGlvbiBvZiBjb250aW51aXR5IGJyZWFrcworICAgICAqIGRvd24gbXVzdCBvdmVyaWRlIDxjb2RlPmFkZDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgYWRkaW5nIG9uZSBtb250aAorICAgICAqIHRvIGEgZGF0ZSBpbiBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBjYWxlbmRhci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuICJDYWxlbmRhciI7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuICJDYWxlbmRhciI7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZXMgKGluIG1pbGxpcykgcmVwcmVzZW50ZWQgYnkgdHdvCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhhdCB0aGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIGNvbXBhcmUgdG8gdGhpcy4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IAorICAgICAqIHRoaXMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGVxdWFsIHRvIHRoZSB0aW1lIHJlcHJlc2VudGVkIAorICAgICAqIGJ5IHRoYXQgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LCBhIHZhbHVlIGxlc3MgdGhhbiAKKyAgICAgKiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGlzIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoYXQsIGFuZCBhIHZhbHVlIGdyZWF0ZXIgdGhhbgorICAgICAqIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoaXMKKyAgICAgKiBpcyBhZnRlciB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGF0LgorICAgICAqIEB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgdGhhdCAKKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgbnVsbC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgdGltZSBvZiB0aGF0IAorICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjYW4ndCBiZSBvYnRhaW5lZCBiZWNhdXNlIG9mIGludmFsaWQKKyAgICAgKiBjYWxlbmRhciB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhDYWxlbmRhciB0aGF0KSB7CisgICAgICAgIGxvbmcgdiA9IGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgcmV0dXJuIHYgPCAwID8gLTEgOiAodiA+IDAgPyAxIDogMCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgY29tcGFyYWJsZSBBUEkgYXMgYSBjb252ZW5pZW5jZSBvdmVycmlkZSBvZgorICAgICAqIHtAbGluayAjY29tcGFyZVRvKENhbGVuZGFyKX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gY29tcGFyZVRvKChDYWxlbmRhcil0aGF0KTsKKyAgICB9CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVyZmFjZSBmb3IgY3JlYXRpbmcgY3VzdG9uIERhdGVGb3JtYXRzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgQ2FsZW5kYXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIGxvYywgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRIZWxwZXIodGhpcywgbG9jLnRvTG9jYWxlKCksIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVXRpbGl0eSBmb3IgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBEYXRlRm9ybWF0IGZvcm1hdEhlbHBlcihDYWxlbmRhciBjYWwsIExvY2FsZSBsb2MsIGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgLy8gQXNzdW1lIHRoZXJlIGlzIG9ubHkgb25lIGtpbmQgb2YgY2FsZW5kYXIuICBJbiBKYXZhIDYgdGhlcmUgd2lsbCBhbHNvIGJlIEphcGFuZXNlCisgICAgICAgIC8vIGNhbGVuZGFycywgYnV0IHdlJ2xsIHdvcnJ5IGFib3V0IHRoYXQgd2hlbiBpdCBoYXBwZW5zLgorICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2MpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFtORVddCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGdpdmVuIHRpbWUgYW5kIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBvYmplY3QgaXMgc2V0IHRvLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQKKyAgICAgKiA8ZW0+YmVmb3JlPC9lbT4gdGhlIGdpdmVuIHRpbWUsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlCisgICAgICogcG9zaXRpdmUuICBJZiB0aGlzIGNhbGVuZGFyIGlzIHNldCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgZ2l2ZW4KKyAgICAgKiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBuZWdhdGl2ZS4gIFRoZQorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPiBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB1bml0cyBvZiB0aGUgcmV0dXJuCisgICAgICogdmFsdWUuICBGb3IgZXhhbXBsZSwgaWYgPGNvZGU+ZmllbGREaWZmZXJlbmNlKHdoZW4sCisgICAgICogQ2FsZW5kYXIuTU9OVEgpPC9jb2RlPiByZXR1cm5zIDMsIHRoZW4gdGhpcyBjYWxlbmRhciBpcyBzZXQgdG8KKyAgICAgKiAzIG1vbnRocyBiZWZvcmUgPGNvZGU+d2hlbjwvY29kZT4sIGFuZCBwb3NzaWJseSBzb21lIGFkZGl0aW9uYWwKKyAgICAgKiB0aW1lIGxlc3MgdGhhbiBvbmUgbW9udGguCisgICAgICoKKyAgICAgKiA8cD5BcyBhIHNpZGUgZWZmZWN0IG9mIHRoaXMgY2FsbCwgdGhpcyBjYWxlbmRhciBpcyBhZHZhbmNlZAorICAgICAqIHRvd2FyZCA8Y29kZT53aGVuPC9jb2RlPiBieSB0aGUgZ2l2ZW4gYW1vdW50LiAgVGhhdCBpcywgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2FsbGluZyA8Y29kZT5hZGQoZmllbGQsCisgICAgICogbik8L2NvZGU+LCB3aGVyZSA8Y29kZT5uPC9jb2RlPiBpcyB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAqCisgICAgICogPHA+VXNhZ2U6IFRvIHVzZSB0aGlzIG1ldGhvZCwgY2FsbCBpdCBmaXJzdCB3aXRoIHRoZSBsYXJnZXN0CisgICAgICogZmllbGQgb2YgaW50ZXJlc3QsIHRoZW4gd2l0aCBwcm9ncmVzc2l2ZWx5IHNtYWxsZXIgZmllbGRzLiAgRm9yCisgICAgICogZXhhbXBsZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogaW50IHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLllFQVIpOworICAgICAqIGludCBtID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogY29tcHV0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiA8Y29kZT5jYWw8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPndoZW48L2NvZGU+IGluIHllYXJzLCBtb250aHMsIGFuZCBkYXlzLgorICAgICAqCisgICAgICogPHA+Tm90ZTogPGNvZGU+ZmllbGREaWZmZXJlbmNlKCk8L2NvZGU+IGlzCisgICAgICogPGVtPmFzeW1tZXRyaWNhbDwvZW0+LiAgVGhhdCBpcywgaW4gdGhlIGZvbGxvd2luZyBjb2RlOgorICAgICAqCisgICAgICogPHByZT4KKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMSk7CisgICAgICogaW50IG0xID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLkRBVEUpOworICAgICAqIGNhbC5zZXRUaW1lKGRhdGUyKTsKKyAgICAgKiBpbnQgbTIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUxLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQyID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuREFURSk7PC9wcmU+CisgICAgICoKKyAgICAgKiBvbmUgbWlnaHQgZXhwZWN0IHRoYXQgPGNvZGU+bTEgPT0gLW0yICYmIGQxID09IC1kMjwvY29kZT4uCisgICAgICogSG93ZXZlciwgdGhpcyBpcyBub3QgZ2VuZXJhbGx5IHRoZSBjYXNlLCBiZWNhdXNlIG9mCisgICAgICogaXJyZWd1bGFyaXRpZXMgaW4gdGhlIHVuZGVybHlpbmcgY2FsZW5kYXIgc3lzdGVtIChlLmcuLCB0aGUKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIgaGFzIGEgdmFyeWluZyBudW1iZXIgb2YgZGF5cyBwZXIgbW9udGgpLgorICAgICAqCisgICAgICogQHBhcmFtIHdoZW4gdGhlIGRhdGUgdG8gY29tcGFyZSB0aGlzIGNhbGVuZGFyJ3MgdGltZSB0bworICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgaW4gd2hpY2ggdG8gY29tcHV0ZSB0aGUgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgZGlmZmVyZW5jZSwgZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLCBiZXR3ZWVuCisgICAgICogdGhpcyBjYWxlbmRhcidzIHRpbWUgYW5kIDxjb2RlPndoZW48L2NvZGU+LCBpbiB0ZXJtcyBvZgorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpZWxkRGlmZmVyZW5jZShEYXRlIHdoZW4sIGludCBmaWVsZCkgeworICAgICAgICBpbnQgbWluID0gMDsKKyAgICAgICAgbG9uZyBzdGFydE1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIGxvbmcgdGFyZ2V0TXMgPSB3aGVuLmdldFRpbWUoKTsKKyAgICAgICAgLy8gQWx3YXlzIGFkZCBmcm9tIHRoZSBzdGFydCBtaWxsaXMuICBUaGlzIGFjY29tb2RhdGVzCisgICAgICAgIC8vIG9wZXJhdGlvbnMgbGlrZSBhZGRpbmcgeWVhcnMgZnJvbSBGZWJydWFyeSAyOSwgMjAwMCB1cCB0bworICAgICAgICAvLyBGZWJydWFyeSAyOSwgMjAwNC4gIElmIDEsIDEsIDEsIDEgaXMgYWRkZWQgdG8gdGhlIHllYXIKKyAgICAgICAgLy8gZmllbGQsIHRoZSBET00gZ2V0cyBwaW5uZWQgdG8gMjggYW5kIHN0YXlzIHRoZXJlLCBnaXZpbmcgYW4KKyAgICAgICAgLy8gaW5jb3JyZWN0IERPTSBkaWZmZXJlbmNlIG9mIDEuICBXZSBoYXZlIHRvIGFkZCAxLCByZXNldCwgMiwKKyAgICAgICAgLy8gcmVzZXQsIDMsIHJlc2V0LCA0LgorICAgICAgICBpZiAoc3RhcnRNcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICBpbnQgbWF4ID0gMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBsYXJnZQorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0TXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcywgYW5kIG1ha2VzIHRoZSBjb2RlIHNtYWxsZXIsIGJ1dCBjb3N0cworICAgICAgICAgICAgICAgIC8vIGFuIGV4dHJhIG9iamVjdCBjcmVhdGlvbiBhbmQgYW4gZXh0cmEgY291cGxlIGN5Y2xlcworICAgICAgICAgICAgICAgIC8vIG9mIGNhbGVuZGFyIGNvbXB1dGF0aW9uLgorICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0YXJnZXRNcyk7CisgICAgICAgICAgICAgICAgbWluID0gLWZpZWxkRGlmZmVyZW5jZShuZXcgRGF0ZShzdGFydE1zKSwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG1heCA9IC0xOworICAgICAgICAgICAgLy8gRmluZCBhIHZhbHVlIHRoYXQgaXMgdG9vIHNtYWxsCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgbWF4KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA8PD0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWluIC0gbWF4KSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFNldCBjYWxlbmRhciB0byBlbmQgcG9pbnQKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICBhZGQoZmllbGQsIG1pbik7CisgICAgICAgIHJldHVybiBtaW47CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gdGltZSB6b25lIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHZhbHVlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKHZhbHVlLnRpbWVab25lKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIHpvbmUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZShjYWxlbmRhci5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpZnkgd2hldGhlciBvciBub3QgZGF0ZS90aW1lIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBpbnRlcnByZXRhdGlvbiwgYSBkYXRlIHN1Y2ggYXMgIkZlYnJ1YXJ5IDk0MiwgMTk5NiIgd2lsbCBiZQorICAgICAqIHRyZWF0ZWQgYXMgYmVpbmcgZXF1aXZhbGVudCB0byB0aGUgOTQxc3QgZGF5IGFmdGVyIEZlYnJ1YXJ5IDEsIDE5OTYuCisgICAgICogV2l0aCBzdHJpY3QgaW50ZXJwcmV0YXRpb24sIHN1Y2ggZGF0ZXMgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24gdG8gYmUKKyAgICAgKiB0aHJvd24uCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjc2V0TGVuaWVudAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiBsZW5pZW50KSAgICAgeworICAgICAgICBjYWxlbmRhci5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGVsbCB3aGV0aGVyIGRhdGUvdGltZSBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmlzTGVuaWVudCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpcnN0RGF5T2ZXZWVrKGludCB2YWx1ZSkgeworICAgICAgICBjYWxlbmRhci5zZXRGaXJzdERheU9mV2Vlayh2YWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpczsgZS5nLiwgU3VuZGF5IGluIFVTLAorICAgICAqIE1vbmRheSBpbiBGcmFuY2UuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3REYXlPZldlZWsoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRGaXJzdERheU9mV2VlaygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYXJlLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3Qgd2VlayBpcyBkZWZpbmVkIGFzIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZmlyc3QgbW9udGggb2YgYSB5ZWFyLCBjYWxsIHRoZSBtZXRob2Qgd2l0aCB2YWx1ZSAxLiBJZiBpdAorICAgICAqIG11c3QgYmUgYSBmdWxsIHdlZWssIHVzZSB2YWx1ZSA3LgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrCisgICAgICogb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpbnQgdmFsdWUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayh2YWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmU7CisgICAgICogZS5nLiwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgZGF5CisgICAgICogb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayByZXR1cm5zIDEuIElmCisgICAgICogdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBtdXN0IGJlIGEgZnVsbCB3ZWVrLCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogcmV0dXJucyA3LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuLCBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TWluaW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAzMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TWF4aW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCBpZiB2YXJpZXMuCisgICAgICogT3RoZXJ3aXNlIHNhbWUgYXMgZ2V0TWluaW11bSgpLiBGb3IgR3JlZ29yaWFuLCBubyBkaWZmZXJlbmNlLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0R3JlYXRlc3RNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0R3JlYXRlc3RNaW5pbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvd2VzdCBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQgaWYgdmFyaWVzLgorICAgICAqIE90aGVyd2lzZSBzYW1lIGFzIGdldE1heGltdW0oKS4gZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDI4LgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb3dlc3QgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRMZWFzdE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRMZWFzdE1heGltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gV2Vla2VuZCBzdXBwb3J0IC0tIGRldGVybWluaW5nIHdoaWNoIGRheXMgb2YgdGhlIHdlZWsgYXJlIHRoZSB3ZWVrZW5kCisgICAgLy8gaW4gYSBnaXZlbiBsb2NhbGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGRheSBvZiB0aGUgd2VlayBpcyBhIHdlZWtkYXksIGEKKyAgICAgKiB3ZWVrZW5kIGRheSwgb3IgYSBkYXkgdGhhdCB0cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3RoZXIsCisgICAgICogaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IG1pZG5pZ2h0LAorICAgICAqIHRoZW4gdGhlIGRheXMgYmVmb3JlIGFuZCBhZnRlciB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUgdGhlCisgICAgICogdHlwZSBXRUVLREFZIG9yIFdFRUtFTkQuICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IGEgdGltZQorICAgICAqIG90aGVyIHRoYW4gbWlkbmlnaHQsIHRoZW4gdGhlIGRheSBvZiB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUKKyAgICAgKiB0aGUgdHlwZSBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UuICBJbiB0aGlzIGNhc2UsIHRoZQorICAgICAqIG1ldGhvZCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHdpbGwgcmV0dXJuIHRoZSBwb2ludCBvZgorICAgICAqIHRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gZWl0aGVyIFdFRUtEQVksIFdFRUtFTkQsIFdFRUtFTkRfT05TRVQsIG9yCisgICAgICogV0VFS0VORF9DRUFTRQorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBiZXR3ZWVuIFNVTkRBWSBhbmQgU0FUVVJEQVksIGluY2x1c2l2ZQorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgLy8gd2Vla2VuZCBhbHdheXMgZnVsbCBzYXR1cmRheSBhbmQgc3VuZGF5CisgICAgICAgIGlmIChkYXlPZldlZWsgPCAxIHx8IGRheU9mV2VlayA+IDcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImlsbGVnYWwgZGF5IG9mIHdlZWs6ICIgKyBkYXlPZldlZWspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXlPZldlZWsgPj0gU0FUVVJEQVkgPyBXRUVLRU5EIDogV0VFS0RBWTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGltZSBkdXJpbmcgdGhlIGRheSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMgb3IgZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0KKyAgICAgKiBXRUVLRU5EX09OU0VUIHJldHVybiB0aGUgdGltZSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMuICBJZgorICAgICAqIGdldERheU9mV2Vla1R5cGUoZGF5T2ZXZWVrKSA9PSBXRUVLRU5EX0NFQVNFIHJldHVybiB0aGUgdGltZSBhdAorICAgICAqIHdoaWNoIHRoZSB3ZWVrZW5kIGVuZHMuICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgaGFzIHNvbWUKKyAgICAgKiBvdGhlciB2YWx1ZSwgdGhlbiB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gdGhlIG1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUKKyAgICAgKiB3ZWVrZW5kIGJlZ2lucyBvciBlbmRzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgZGF5T2ZXZWVrIGlzIG5vdAorICAgICAqIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0V2Vla2VuZFRyYW5zaXRpb24oaW50IGRheU9mV2VlaykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJOb3Qgd2Vla2VuZCB0cmFuc2l0aW9uIGRheSIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgaW4gdGhlIHdlZWtlbmQgaW4KKyAgICAgKiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIEVxdWl2YWxlbnQgdG8gY2FsbGluZyBzZXRUaW1lKCkgZm9sbG93ZWQKKyAgICAgKiBieSBpc1dlZWtlbmQoKS4gIE5vdGU6IFRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIHRpbWUgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0by4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZSBhbmQgdGltZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzV2Vla2VuZChEYXRlIGRhdGUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpcyBpbiB0aGUKKyAgICAgKiB3ZWVrZW5kIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspID49IFNBVFVSREFZOworICAgIH0KKyAgICAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIG9mIHdlZWtlbmQgc3VwcG9ydAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcigoamF2YS51dGlsLkNhbGVuZGFyKWNhbGVuZGFyLmNsb25lKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuIFRoaXMgbWV0aG9kCisgICAgICogaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGFuZCB0aGUKKyAgICAgKiBmb3JtYXQgb2YgdGhlIHJldHVybmVkIHN0cmluZyBtYXkgdmFyeSBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucy4KKyAgICAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIG1heSBiZSBlbXB0eSBidXQgbWF5IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogTm90ZSwgaW4gMy4wIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gJ2dyZWdvcmlhbicgaW4gQ2FsZW5kYXIgdG8gZW11bGF0ZSBsZWdhY3kgYmVoYXZpb3IKKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImdyZWdvcmlhbiI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9UaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTVjZTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDQzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5UaW1lWm9uZTwvY29kZT4gcmVwcmVzZW50cyBhIHRpbWUgem9uZSBvZmZzZXQsIGFuZCBhbHNvIGZpZ3VyZXMgb3V0IGRheWxpZ2h0CisgKiBzYXZpbmdzLgorICoKKyAqIDxwPgorICogVHlwaWNhbGx5LCB5b3UgZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHVzaW5nIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiB3aGljaCBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGJhc2VkIG9uIHRoZSB0aW1lIHpvbmUgd2hlcmUgdGhlIHByb2dyYW0KKyAqIGlzIHJ1bm5pbmcuIEZvciBleGFtcGxlLCBmb3IgYSBwcm9ncmFtIHJ1bm5pbmcgaW4gSmFwYW4sIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCBiYXNlZCBvbiBKYXBhbmVzZSBTdGFuZGFyZCBUaW1lLgorICoKKyAqIDxwPgorICogWW91IGNhbiBhbHNvIGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXRUaW1lWm9uZTwvY29kZT4KKyAqIGFsb25nIHdpdGggYSB0aW1lIHpvbmUgSUQuIEZvciBpbnN0YW5jZSwgdGhlIHRpbWUgem9uZSBJRCBmb3IgdGhlCisgKiBVLlMuIFBhY2lmaWMgVGltZSB6b25lIGlzICJBbWVyaWNhL0xvc19BbmdlbGVzIi4gU28sIHlvdSBjYW4gZ2V0IGEKKyAqIFUuUy4gUGFjaWZpYyBUaW1lIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3Qgd2l0aDoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiB1c2UgPGNvZGU+Z2V0QXZhaWxhYmxlSURzPC9jb2RlPiBtZXRob2QgdG8gaXRlcmF0ZSB0aHJvdWdoCisgKiBhbGwgdGhlIHN1cHBvcnRlZCB0aW1lIHpvbmUgSURzLiBZb3UgY2FuIHRoZW4gY2hvb3NlIGEKKyAqIHN1cHBvcnRlZCBJRCB0byBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4uCisgKiBJZiB0aGUgdGltZSB6b25lIHlvdSB3YW50IGlzIG5vdCByZXByZXNlbnRlZCBieSBvbmUgb2YgdGhlCisgKiBzdXBwb3J0ZWQgSURzLCB0aGVuIHlvdSBjYW4gY3JlYXRlIGEgY3VzdG9tIHRpbWUgem9uZSBJRCB3aXRoCisgKiB0aGUgZm9sbG93aW5nIHN5bnRheDoKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBHTVRbK3wtXWhoW1s6XW1tXQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzcGVjaWZ5IEdNVCsxNDowMCBhcyBhIGN1c3RvbQorICogdGltZSB6b25lIElELiAgVGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiB0aGF0IGlzIHJldHVybmVkCisgKiB3aGVuIHlvdSBzcGVjaWZ5IGEgY3VzdG9tIHRpbWUgem9uZSBJRCBkb2VzIG5vdCBpbmNsdWRlCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgKiA8cD4KKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS54LCBzb21lIG90aGVyIHRocmVlLWxldHRlciB0aW1lIHpvbmUgSURzCisgKiAoc3VjaCBhcyAiUFNUIiwgIkNUVCIsICJBU1QiKSBhcmUgYWxzbyBzdXBwb3J0ZWQuIEhvd2V2ZXIsIDxzdHJvbmc+dGhlaXIKKyAqIHVzZSBpcyBkZXByZWNhdGVkPC9zdHJvbmc+IGJlY2F1c2UgdGhlIHNhbWUgYWJicmV2aWF0aW9uIGlzIG9mdGVuIHVzZWQKKyAqIGZvciBtdWx0aXBsZSB0aW1lIHpvbmVzIChmb3IgZXhhbXBsZSwgIkNTVCIgY291bGQgYmUgVS5TLiAiQ2VudHJhbCBTdGFuZGFyZAorICogVGltZSIgYW5kICJDaGluYSBTdGFuZGFyZCBUaW1lIiksIGFuZCB0aGUgSmF2YSBwbGF0Zm9ybSBjYW4gdGhlbiBvbmx5CisgKiByZWNvZ25pemUgb25lIG9mIHRoZW0uCisgKgorICogQHNlZSAgICAgICAgICBDYWxlbmRhcgorICogQHNlZSAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBTaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBEYXZpZCBHb2xkc21pdGgsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudXRpbC5UaW1lWm9uZSB0aW1lWm9uZTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBUaW1lWm9uZSB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy50aW1lWm9uZSA9IGRlbGVnYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgdG8gbWlycm9yIEphdmEncyBwdWJsaWMKKyAgICAgKiBjb25zdHJ1Y3Rvci4gIEphdmEncyBpcyBub3QgY2FsbGFibGUgYXMgYSBwdWJsaWMgQVBJLCBzaW5jZQorICAgICAqIHRoZWlyIFRpbWVab25lIGlzIGFic3RyYWN0LCBzbyB0aGlzIGlzIG9ubHkgdXNlZnVsIHRvCisgICAgICogc3ViY2xhc3Nlcy4gIEluIGdlbmVyYWwsIHN1YmNsYXNzZXMgd2lsbCBub3Qgd29yayB1bmxlc3MKKyAgICAgKiB0aGV5IG1hbmlwdWxhdGUgdGhlIGRlbGVnYXRlLgorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSgpIHsKKyAgICAJdGhpcy50aW1lWm9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBzaG9ydCBuYW1lLCBzdWNoIGFzICJQU1QuIgorICAgICAqIEBzZWUgI0xPTkcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBIHN0eWxlIHNwZWNpZmllciBmb3IgPGNvZGU+Z2V0RGlzcGxheU5hbWUoKTwvY29kZT4gaW5kaWNhdGluZworICAgICAqIGEgbG9uZyBuYW1lLCBzdWNoIGFzICJQYWNpZmljIFN0YW5kYXJkIFRpbWUuIgorICAgICAqIEBzZWUgI1NIT1JUCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9ORyAgPSAxOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byBhZGQgKnRvKiBHTVQgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoaXMgdGltZSB6b25lIGZyb20gVVRDIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLiBJZiBEYXlsaWdodCBTYXZpbmcgVGltZSBpcyBpbiBlZmZlY3QgYXQgdGhlIHNwZWNpZmllZAorICAgICAqIGRhdGUsIHRoZSBvZmZzZXQgdmFsdWUgaXMgYWRqdXN0ZWQgd2l0aCB0aGUgYW1vdW50IG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXIjWk9ORV9PRkZTRVQKKyAgICAgKiBAc2VlIENhbGVuZGFyI0RTVF9PRkZTRVQKKyAgICAgKiBAc2VlICNnZXRPZmZzZXQobG9uZywgYm9vbGVhbiwgaW50W10pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQobG9uZyBkYXRlKSB7CisgICAgCWlmIChpbkRheWxpZ2h0VGltZShuZXcgRGF0ZShkYXRlKSkpIHsKKyAgICAJICAgIHJldHVybiBnZXRSYXdPZmZzZXQoKSArIGdldERTVFNhdmluZ3MoKTsKKyAgICAJfQorICAgIAlyZXR1cm4gZ2V0UmF3T2Zmc2V0KCk7CisgICAgfQorCisgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICB0aW1lWm9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuZ2V0UmF3T2Zmc2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSUQgb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgSUQgb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJRCgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldElEKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgdGltZVpvbmUuc2V0SUQoSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgbG9uZyBnZW5lcmljIG5hbWUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIGEgZmFsbGJhY2sgYmFzZWQgb24gdGhlIGNvdW50cnksIGNpdHksIG9yIHRpbWUgem9uZSBpZCB3aWxsIGJlIHVzZWQuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBzdXBwbHkgdGhlIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBnaXZlbiBsb2NhbGUKKyAgICAgKiBvciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgbmFtZSwgbm90IGluY2x1ZGluZyBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgdWxvY2FsZSBpZiB0aGUgZ2l2ZW4gdWxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIHRoZW4gdGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyBpbiB0aGUgZm9ybWF0CisgICAgICogPGNvZGU+R01UWystXWhoOm1tPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF5bGlnaHQgaWYgdHJ1ZSwgcmV0dXJuIHRoZSBkYXlsaWdodCBzYXZpbmdzIG5hbWUuCisgICAgICogQHBhcmFtIHN0eWxlIGVpdGhlciA8Y29kZT5MT05HPC9jb2RlPiBvciA8Y29kZT5TSE9SVDwvY29kZT4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gc3R5bGUgaXMgaW52YWxpZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiBkYXlsaWdodCwgaW50IHN0eWxlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoZGF5bGlnaHQsIHN0eWxlLCBsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUgdG8gYmUgYWRkZWQgdG8gbG9jYWwgc3RhbmRhcmQgdGltZQorICAgICAqIHRvIGdldCBsb2NhbCB3YWxsIGNsb2NrIHRpbWUuCisgICAgICogPHA+CisgICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gYWx3YXlzIHJldHVybnMgMzYwMDAwMCBtaWxsaXNlY29uZHMKKyAgICAgKiAoaS5lLiwgb25lIGhvdXIpIGlmIHRoaXMgdGltZSB6b25lIG9ic2VydmVzIERheWxpZ2h0IFNhdmluZworICAgICAqIFRpbWUuIE90aGVyd2lzZSwgMCAoemVybykgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogSWYgYW4gdW5kZXJseWluZyBUaW1lWm9uZSBpbXBsZW1lbnRhdGlvbiBzdWJjbGFzcyBzdXBwb3J0cworICAgICAqIGhpc3RvcmljYWwgRGF5bGlnaHQgU2F2aW5nIFRpbWUgY2hhbmdlcywgdGhpcyBtZXRob2QgcmV0dXJucworICAgICAqIHRoZSBrbm93biBsYXRlc3QgZGF5bGlnaHQgc2F2aW5nIHZhbHVlLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgYW1vdW50IG9mIHNhdmluZyB0aW1lIGluIG1pbGxpc2Vjb25kcworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RFNUU2F2aW5ncygpIHsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gMzYwMDAwMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRpbWUgem9uZSB1c2VzIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLnVzZURheWxpZ2h0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJpZXMgaWYgdGhlIGdpdmVuIGRhdGUgaXMgaW4gZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGluCisgICAgICogdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGdpdmVuIERhdGUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuaW5EYXlsaWdodFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGZvciB0aGUgZ2l2ZW4gSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIGZvciBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiwgZWl0aGVyIGFuIGFiYnJldmlhdGlvbgorICAgICAqIHN1Y2ggYXMgIlBTVCIsIGEgZnVsbCBuYW1lIHN1Y2ggYXMgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCBvciBhIGN1c3RvbQorICAgICAqIElEIHN1Y2ggYXMgIkdNVC04OjAwIi4gTm90ZSB0aGF0IHRoZSBzdXBwb3J0IG9mIGFiYnJldmlhdGlvbnMgaXMKKyAgICAgKiBmb3IgSkRLIDEuMS54IGNvbXBhdGliaWxpdHkgb25seSBhbmQgZnVsbCBuYW1lcyBzaG91bGQgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpZmllZCA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIG9yIHRoZSBHTVQgem9uZSBpZiB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBjYW5ub3QgYmUgdW5kZXJzdG9vZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldFRpbWVab25lKFN0cmluZyBJRCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZShJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIHdpdGggdGhlIGdpdmVuIHJhdyBvZmZzZXQgZnJvbSBHTVQuICBUaGVzZSBJRHMgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHBhcmFtIHJhd09mZnNldCB0aGUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyBmcm9tIEdNVAorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgSURzIGZvciBzeXN0ZW0gVGltZVpvbmVzIHdpdGggdGhlIGdpdmVuCisgICAgICogcmF3IG9mZnNldC4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgcmF3T2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKHJhd09mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFN0cmluZyBhcnJheSBjb250YWluaW5nIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzLgorICAgICAqIFRoZXNlIElEcyAoYW5kIG9ubHkgdGhlc2UgSURzKSBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIHJldHVybiBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhpcyBob3N0LgorICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+IAorICAgICAqIG1heSB2YXJ5IHdpdGggaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBhIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgZ2V0RGVmYXVsdCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcworICAgICAqIHJldHVybmVkIGJ5IHRoZSA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPiBtZXRob2QuICBJZiA8Y29kZT56b25lPC9jb2RlPgorICAgICAqIGlzIG51bGwsIHJlc2V0IHRoZSBkZWZhdWx0IHRvIHRoZSB2YWx1ZSBpdCBoYWQgb3JpZ2luYWxseSB3aGVuIHRoZQorICAgICAqIFZNIGZpcnN0IHN0YXJ0ZWQuCisgICAgICogQHBhcmFtIHR6IHRoZSBuZXcgZGVmYXVsdCB0aW1lIHpvbmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0RGVmYXVsdChUaW1lWm9uZSB0eikgeworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdCh0ei50aW1lWm9uZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlIGFuZCBvZmZzZXQgYXMgYW5vdGhlciB6b25lLgorICAgICAqIFRoYXQgaXMsIGlmIHRoaXMgem9uZSBkaWZmZXJzIG9ubHkgaW4gSUQsIGlmIGF0IGFsbC4gIFJldHVybnMgZmFsc2UKKyAgICAgKiBpZiB0aGUgb3RoZXIgem9uZSBpcyBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdGhlciB6b25lIGlzIG5vdCBudWxsIGFuZCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZSwKKyAgICAgKiB3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgdGhlIElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5oYXNTYW1lUnVsZXMob3RoZXIudGltZVpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lKChqYXZhLnV0aWwuVGltZVpvbmUpdGltZVpvbmUuY2xvbmUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIFRpbWVab25lIGFuZCBoYXMgdGhlIHNhbWUgdGltZSBydWxlcyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiByaHMgZXF1YWxzIHRoaXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHRpbWVab25lLmVxdWFscygoKFRpbWVab25lKXJocykudGltZVpvbmUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmhhc2hDb2RlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmZDNiMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEKQEAgLTAsMCArMSwyNjI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworCisvKioKKyAqIEEgY2xhc3MgYW5hbG9nb3VzIHRvIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfSB0aGF0IHByb3ZpZGVzIGFkZGl0aW9uYWwKKyAqIHN1cHBvcnQgZm9yIElDVSBwcm90b2NvbC4gIEluIElDVSAzLjAgdGhpcyBjbGFzcyBpcyBlbmhhbmNlZCB0byBzdXBwb3J0CisgKiBSRkMgMzA2NiBsYW5ndWFnZSBpZGVudGlmaWVycy4KKyAqCisgKiA8cD5NYW55IGNsYXNzZXMgYW5kIHNlcnZpY2VzIGluIElDVSBmb2xsb3cgYSBmYWN0b3J5IGlkaW9tLCBpbgorICogd2hpY2ggYSBmYWN0b3J5IG1ldGhvZCBvciBvYmplY3QgcmVzcG9uZHMgdG8gYSBjbGllbnQgcmVxdWVzdCB3aXRoCisgKiBhbiBvYmplY3QuICBUaGUgcmVxdWVzdCBpbmNsdWRlcyBhIGxvY2FsZSAodGhlIDxpPnJlcXVlc3RlZDwvaT4KKyAqIGxvY2FsZSksIGFuZCB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzIGNvbnN0cnVjdGVkIHVzaW5nIGRhdGEgZm9yIHRoYXQKKyAqIGxvY2FsZS4gIFRoZSBzeXN0ZW0gbWF5IGxhY2sgZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIGluCisgKiB3aGljaCBjYXNlIHRoZSBsb2NhbGUgZmFsbGJhY2sgbWVjaGFuaXNtIHdpbGwgYmUgaW52b2tlZCB1bnRpbCBhCisgKiBwb3B1bGF0ZWQgbG9jYWxlIGlzIGZvdW5kICh0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSkuICBGdXJ0aGVybW9yZSwKKyAqIGV2ZW4gd2hlbiBhIHBvcHVsYXRlZCBsb2NhbGUgaXMgZm91bmQgKHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlKSwKKyAqIGZ1cnRoZXIgZmFsbGJhY2sgbWF5IGJlIHJlcXVpcmVkIHRvIHJlYWNoIGEgbG9jYWxlIGNvbnRhaW5pbmcgdGhlCisgKiBzcGVjaWZpYyBkYXRhIHJlcXVpcmVkIGJ5IHRoZSBzZXJ2aWNlICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLgorICoKKyAqIDxwPlVMb2NhbGUgcGVyZm9ybXMgPGI+J25vcm1hbGl6YXRpb24nPC9iPiBhbmQgPGI+J2Nhbm9uaWNhbGl6YXRpb24nPC9iPiBvZiBsb2NhbGUgaWRzLgorICogTm9ybWFsaXphdGlvbiAnY2xlYW5zIHVwJyBJQ1UgbG9jYWxlIGlkcyBhcyBmb2xsb3dzOgorICogPHVsPgorICogPGxpPmxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGFuZCBrZXl3b3JkcyBhcmUgcHJvcGVybHkgY2FzZWQ8YnI+CisgKiAobG93ZXIsIHRpdGxlLCB1cHBlciwgdXBwZXIsIGFuZCBsb3dlciBjYXNlIHJlc3BlY3RpdmVseSk8L2xpPgorICogPGxpPmh5cGhlbnMgdXNlZCBhcyBzZXBhcmF0b3JzIGFyZSBjb252ZXJ0ZWQgdG8gdW5kZXJzY29yZXM8L2xpPgorICogPGxpPnRocmVlLWxldHRlciBsYW5ndWFnZSBhbmQgY291bnRyeSBpZHMgYXJlIGNvbnZlcnRlZCB0byB0d28tbGV0dGVyCisgKiBlcXVpdmFsZW50cyB3aGVyZSBhdmFpbGFibGU8L2xpPgorICogPGxpPnN1cnJvdW5kaW5nIHNwYWNlcyBhcmUgcmVtb3ZlZCBmcm9tIGtleXdvcmRzIGFuZCB2YWx1ZXM8L2xpPgorICogPGxpPmlmIHRoZXJlIGFyZSBtdWx0aXBsZSBrZXl3b3JkcywgdGhleSBhcmUgcHV0IGluIHNvcnRlZCBvcmRlcjwvbGk+CisgKiA8L3VsPgorICogQ2Fub25pY2FsaXphdGlvbiBhZGRpdGlvbmFsbHkgcGVyZm9ybXMgdGhlIGZvbGxvd2luZzoKKyAqIDx1bD4KKyAqIDxsaT5QT1NJWCBpZHMgYXJlIGNvbnZlcnRlZCB0byBJQ1UgZm9ybWF0IElEczwvbGk+CisgKiA8bGk+J2dyYW5kZmF0aGVyZWQnIDMwNjYgaWRzIGFyZSBjb252ZXJ0ZWQgdG8gSUNVIHN0YW5kYXJkIGZvcm08L2xpPgorICogPGxpPidQUkVFVVJPJyBhbmQgJ0VVUk8nIHZhcmlhbnRzIGFyZSBjb252ZXJ0ZWQgdG8gY3VycmVuY3kga2V5d29yZCBmb3JtLCB3aXRoIHRoZSBjdXJyZW5jeQorICogaWQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50cnkgb2YgdGhlIGxvY2FsZSAoZm9yIFBSRUVVUk8pIG9yIEVVUiAoZm9yIEVVUk8pLgorICogPC91bD4KKyAqIEFsbCBVTG9jYWxlIGNvbnN0cnVjdG9ycyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZSB0aGUgbG9jYWxlIGlkLiAgVG8gaGFuZGxlCisgKiBQT1NJWCBpZHMsIDxjb2RlPmNhbm9uaWNhbGl6ZTwvY29kZT4gY2FuIGJlIGNhbGxlZCB0byBjb252ZXJ0IHRoZSBpZAorICogdG8gY2Fub25pY2FsIGZvcm0sIG9yIHRoZSA8Y29kZT5jYW5vbmljYWxJbnN0YW5jZTwvY29kZT4gZmFjdG9yeSBtZXRob2QKKyAqIGNhbiBiZSBjYWxsZWQuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgcHJvdmlkZXMgc2VsZWN0b3JzIHtAbGluayAjVkFMSURfTE9DQUxFfSBhbmQge0BsaW5rCisgKiAjQUNUVUFMX0xPQ0FMRX0gaW50ZW5kZWQgZm9yIHVzZSBpbiBtZXRob2RzIG5hbWVkCisgKiA8dHQ+Z2V0TG9jYWxlKCk8L3R0Pi4gIFRoZXNlIG1ldGhvZHMgZXhpc3QgaW4gc2V2ZXJhbCBJQ1UgY2xhc3NlcywKKyAqIGluY2x1ZGluZyB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcn0sIHtAbGluaworICogY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeX0sIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXR9LAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sc30sIGFuZCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHN9IGFuZCB0aGVpciBzdWJjbGFzc2VzLCBpZgorICogYW55LiAgT25jZSBhbiBvYmplY3Qgb2Ygb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGJlZW4gY3JlYXRlZCwKKyAqIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IG1heSBiZSBjYWxsZWQgb24gaXQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZCBhbmQKKyAqIGFjdHVhbCBsb2NhbGUgYXJyaXZlZCBhdCBkdXJpbmcgdGhlIG9iamVjdCdzIGNvbnN0cnVjdGlvbi4KKyAqCisgKiA8cD5Ob3RlOiBUaGUgPHR0PmdldExvY2FsZSgpPC90dD4gbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVCisgKiAzLjA7IElDVSAyLjggY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIDxpPmFjdHVhbDwvaT4gbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4KKyAqIGxvY2FsZSBpcyBub3QsIGluIG1vc3QgY2FzZXMuCisgKgorICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgKiBAYXV0aG9yIHdlaXYKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOCAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVMb2NhbGUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEVOR0xJU0ggPSBuZXcgVUxvY2FsZSgiZW4iLCBMb2NhbGUuRU5HTElTSCk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRlJFTkNIID0gbmV3IFVMb2NhbGUoImZyIiwgTG9jYWxlLkZSRU5DSCk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgR0VSTUFOID0gbmV3IFVMb2NhbGUoImRlIiwgTG9jYWxlLkdFUk1BTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTElBTiA9IG5ldyBVTG9jYWxlKCJpdCIsIExvY2FsZS5JVEFMSUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTkVTRSA9IG5ldyBVTG9jYWxlKCJqYSIsIExvY2FsZS5KQVBBTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUFOID0gbmV3IFVMb2NhbGUoImtvIiwgTG9jYWxlLktPUkVBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aCIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBTSU1QTElGSUVEX0NISU5FU0UgPSBuZXcgVUxvY2FsZSgiemhfSGFucyIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBUUkFESVRJT05BTF9DSElORVNFID0gbmV3IFVMb2NhbGUoInpoX0hhbnQiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRlJBTkNFID0gbmV3IFVMb2NhbGUoImZyX0ZSIiwgTG9jYWxlLkZSQU5DRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgR0VSTUFOWSA9IG5ldyBVTG9jYWxlKCJkZV9ERSIsIExvY2FsZS5HRVJNQU5ZKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBJVEFMWSA9IG5ldyBVTG9jYWxlKCJpdF9JVCIsIExvY2FsZS5JVEFMWSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU4gPSBuZXcgVUxvY2FsZSgiamFfSlAiLCBMb2NhbGUuSkFQQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEtPUkVBID0gbmV3IFVMb2NhbGUoImtvX0tSIiwgTG9jYWxlLktPUkVBKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDSElOQSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW5zX0NOIiwgTG9jYWxlLkNISU5BKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBQUkMgPSBDSElOQTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBUQUlXQU4gPSBuZXcgVUxvY2FsZSgiemhfSGFudF9UVyIsIExvY2FsZS5UQUlXQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFVLID0gbmV3IFVMb2NhbGUoImVuX0dCIiwgTG9jYWxlLlVLKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVUyA9IG5ldyBVTG9jYWxlKCJlbl9VUyIsIExvY2FsZS5VUyk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0FOQURBID0gbmV3IFVMb2NhbGUoImVuX0NBIiwgTG9jYWxlLkNBTkFEQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0FOQURBX0ZSRU5DSCA9IG5ldyBVTG9jYWxlKCJmcl9DQSIsIExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2hNYXAgQ0FDSEUgPSBuZXcgSGFzaE1hcCgyMCk7CisgICAgc3RhdGljIHsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5FTkdMSVNILCBFTkdMSVNIKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkVOQ0gsIEZSRU5DSCk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOLCBHRVJNQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLklUQUxJQU4sIElUQUxJQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkpBUEFORVNFLCBKQVBBTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuS09SRUFOLCBLT1JFQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNISU5FU0UsIENISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRSwgU0lNUExJRklFRF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBUUkFESVRJT05BTF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkFOQ0UsIEZSQU5DRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOWSwgR0VSTUFOWSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSVRBTFksIElUQUxZKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5KQVBBTiwgSkFQQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLktPUkVBLCBLT1JFQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0hJTkEsIENISU5BKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UQUlXQU4sIFRBSVdBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVUssIFVLKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5VUywgVVMpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNBTkFEQSwgQ0FOQURBKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DQU5BREFfRlJFTkNILCBDQU5BREFfRlJFTkNIKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5keSBjb25zdGFudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU1QVFlfU1RSSU5HID0gIiI7CisKKyAgICAvLyBVc2VkIGluIGJvdGggVUxvY2FsZSBhbmQgSURQYXJzZXIsIHNvIG1vdmVkIHVwIGhlcmUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBVTkRFUlNDT1JFID0gJ18nOworCisgICAgLyoqCisgICAgICogVGhlIHJvb3QgVUxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFJPT1QgPSBuZXcgVUxvY2FsZShFTVBUWV9TVFJJTkcsIChMb2NhbGUpbnVsbCk7CisgICAgCisgICAgLyoqCisgICAgICogQ2FjaGUgdGhlIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIHJhdyBsb2NhbGVJRCB0aGF0IHdlIHdlcmUgcGFzc2VkIGluLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZUlEOworCisgICAgLyoqCisgICAgICogVGFibGVzIHVzZWQgaW4gbm9ybWFsaXppbmcgcG9ydGlvbnMgb2YgdGhlIGlkLgorICAgICAqLworICAgIC8qIHRhYmxlcyB1cGRhdGVkIHBlciBodHRwOi8vbGN3ZWIubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIAorICAgICAgIHRvIGluY2x1ZGUgdGhlIHJldmlzaW9ucyB1cCB0byAyMDAxLzcvMjcgKkNXQiovCisgICAgLyogVGhlIDMgY2hhcmFjdGVyIGNvZGVzIGFyZSB0aGUgdGVybWlub2xvZ3kgY29kZXMgbGlrZSBSRkMgMzA2Ni4gIAorICAgICAgIFRoaXMgaXMgY29tcGF0aWJsZSB3aXRoIHByaW9yIElDVSBjb2RlcyAqLworICAgIC8qICJpbiIgIml3IiAiamkiICJqdyIgJiAic2giIGhhdmUgYmVlbiB3aXRoZHJhd24gYnV0IGFyZSBzdGlsbCBpbiAKKyAgICAgICB0aGUgdGFibGUgYnV0IG5vdyBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZSBiZWNhdXNlIAorICAgICAgIDMgY2hhcmFjdGVyIGNvZGVzIGFyZSBkdXBsaWNhdGVzLiAgVGhpcyBhdm9pZHMgYmFkIHNlYXJjaGVzCisgICAgICAgZ29pbmcgZnJvbSAzIHRvIDIgY2hhcmFjdGVyIGNvZGVzLiovCisgICAgLyogVGhlIHJhbmdlIHFhYS1xdHogaXMgcmVzZXJ2ZWQgZm9yIGxvY2FsIHVzZS4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9sYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX3JlcGxhY2VtZW50TGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUxhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfbGFuZ3VhZ2VzMzsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVMYW5ndWFnZXMzOworCisgICAgLy8gQXZvaWQgaW5pdGlhbGl6aW5nIGxhbmd1YWdlcyB0YWJsZXMgdW5sZXNzIHdlIGhhdmUgdG8uCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0TGFuZ3VhZ2VUYWJsZXMoKSB7CisgICAgICAgIGlmIChfbGFuZ3VhZ2VzID09IG51bGwpIHsKKworICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgYmUgaW4gc29ydGVkIG9yZGVyLCBhbmQgTVVTVCBjb250YWluIHRoZSB0d28tbGV0dGVyIGNvZGVzCisgICAgICAgICAgICAgICBpZiBvbmUgZXhpc3RzIG90aGVyd2lzZSB1c2UgdGhlIHRocmVlIGxldHRlciBjb2RlICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wTGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJhYSIsICAiYWIiLCAgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhZSIsICAiYWYiLCAgImFmYSIsCisgICAgICAgICAgICAgICAgImFmaCIsICJhayIsICAiYWtrIiwgImFsZSIsICJhbGciLCAiYW0iLCAgImFuIiwgICJhbmciLCAiYXBhIiwKKyAgICAgICAgICAgICAgICAiYXIiLCAgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXMiLCAgImFzdCIsCisgICAgICAgICAgICAgICAgImF0aCIsICJhdXMiLCAiYXYiLCAgImF3YSIsICJheSIsICAiYXoiLCAgImJhIiwgICJiYWQiLAorICAgICAgICAgICAgICAgICJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlIiwgICJiZWoiLAorICAgICAgICAgICAgICAgICJiZW0iLCAiYmVyIiwgImJnIiwgICJiaCIsICAiYmhvIiwgImJpIiwgICJiaWsiLCAiYmluIiwKKyAgICAgICAgICAgICAgICAiYmxhIiwgImJtIiwgICJibiIsICAiYm50IiwgImJvIiwgICJiciIsICAiYnJhIiwgImJzIiwKKyAgICAgICAgICAgICAgICAiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhIiwgICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLAorICAgICAgICAgICAgICAgICJjZSIsICAiY2ViIiwgImNlbCIsICJjaCIsICAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwKKyAgICAgICAgICAgICAgICAiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY28iLCAgImNvcCIsCisgICAgICAgICAgICAgICAgImNwZSIsICJjcGYiLCAiY3BwIiwgImNyIiwgICJjcmgiLCAiY3JwIiwgImNzIiwgICJjc2IiLCAiY3UiLCAgImN1cyIsCisgICAgICAgICAgICAgICAgImN2IiwgICJjeSIsICAiZGEiLCAgImRhayIsICJkYXIiLCAiZGF5IiwgImRlIiwgICJkZWwiLCAiZGVuIiwKKyAgICAgICAgICAgICAgICAiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImR2IiwgICJkeXUiLAorICAgICAgICAgICAgICAgICJkeiIsICAiZWUiLCAgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsIiwgICJlbHgiLCAiZW4iLAorICAgICAgICAgICAgICAgICJlbm0iLCAiZW8iLCAgImVzIiwgICJldCIsICAiZXUiLCAgImV3byIsICJmYSIsCisgICAgICAgICAgICAgICAgImZhbiIsICJmYXQiLCAiZmYiLCAgImZpIiwgICJmaXUiLCAiZmoiLCAgImZvIiwgICJmb24iLAorICAgICAgICAgICAgICAgICJmciIsICAiZnJtIiwgImZybyIsICJmdXIiLCAiZnkiLCAgImdhIiwgICJnYWEiLCAiZ2F5IiwKKyAgICAgICAgICAgICAgICAiZ2JhIiwgImdkIiwgICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbCIsICAiZ21oIiwgImduIiwKKyAgICAgICAgICAgICAgICAiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3UiLCAgImd2IiwKKyAgICAgICAgICAgICAgICAiZ3dpIiwgImhhIiwgICJoYWkiLCAiaGF3IiwgImhlIiwgICJoaSIsICAiaGlsIiwgImhpbSIsCisgICAgICAgICAgICAgICAgImhpdCIsICJobW4iLCAiaG8iLCAgImhyIiwgICJoc2IiLCAiaHQiLCAgImh1IiwgICJodXAiLCAiaHkiLCAgImh6IiwKKyAgICAgICAgICAgICAgICAiaWEiLCAgImliYSIsICJpZCIsICAiaWUiLCAgImlnIiwgICJpaSIsICAiaWpvIiwgImlrIiwKKyAgICAgICAgICAgICAgICAiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlvIiwgICJpcmEiLCAiaXJvIiwgImlzIiwgICJpdCIsCisgICAgICAgICAgICAgICAgIml1IiwgICJqYSIsICAiamJvIiwgImpwciIsICJqcmIiLCAianYiLCAgImthIiwgICJrYWEiLCAia2FiIiwKKyAgICAgICAgICAgICAgICAia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrZyIsICAia2hhIiwgImtoaSIsCisgICAgICAgICAgICAgICAgImtobyIsICJraSIsICAia2oiLCAgImtrIiwgICJrbCIsICAia20iLCAgImttYiIsICJrbiIsCisgICAgICAgICAgICAgICAgImtvIiwgICJrb2siLCAia29zIiwgImtwZSIsICJrciIsICAia3JjIiwgImtybyIsICJrcnUiLCAia3MiLAorICAgICAgICAgICAgICAgICJrdSIsICAia3VtIiwgImt1dCIsICJrdiIsICAia3ciLCAgImt5IiwgICJsYSIsICAibGFkIiwKKyAgICAgICAgICAgICAgICAibGFoIiwgImxhbSIsICJsYiIsICAibGV6IiwgImxnIiwgICJsaSIsICAibG4iLCAgImxvIiwgICJsb2wiLAorICAgICAgICAgICAgICAgICJsb3oiLCAibHQiLCAgImx1IiwgICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwKKyAgICAgICAgICAgICAgICAibHYiLCAgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsCisgICAgICAgICAgICAgICAgIm1kZiIsICJtZHIiLCAibWVuIiwgIm1nIiwgICJtZ2EiLCAibWgiLCAgIm1pIiwgICJtaWMiLCAibWluIiwKKyAgICAgICAgICAgICAgICAibWlzIiwgIm1rIiwgICJta2giLCAibWwiLCAgIm1uIiwgICJtbmMiLCAibW5pIiwgIm1ubyIsCisgICAgICAgICAgICAgICAgIm1vIiwgICJtb2giLCAibW9zIiwgIm1yIiwgICJtcyIsICAibXQiLCAgIm11bCIsICJtdW4iLAorICAgICAgICAgICAgICAgICJtdXMiLCAibXdyIiwgIm15IiwgICJteW4iLCAibXl2IiwgIm5hIiwgICJuYWgiLCAibmFpIiwgIm5hcCIsCisgICAgICAgICAgICAgICAgIm5iIiwgICJuZCIsICAibmRzIiwgIm5lIiwgICJuZXciLCAibmciLCAgIm5pYSIsICJuaWMiLAorICAgICAgICAgICAgICAgICJuaXUiLCAibmwiLCAgIm5uIiwgICJubyIsICAibm9nIiwgIm5vbiIsICJuciIsICAibnNvIiwgIm51YiIsCisgICAgICAgICAgICAgICAgIm52IiwgICJud2MiLCAibnkiLCAgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvYyIsICAib2oiLAorICAgICAgICAgICAgICAgICJvbSIsICAib3IiLCAgIm9zIiwgICJvc2EiLCAib3RhIiwgIm90byIsICJwYSIsICAicGFhIiwKKyAgICAgICAgICAgICAgICAicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsCisgICAgICAgICAgICAgICAgInBpIiwgICJwbCIsICAicG9uIiwgInByYSIsICJwcm8iLCAicHMiLCAgInB0IiwgICJxdSIsCisgICAgICAgICAgICAgICAgInJhaiIsICJyYXAiLCAicmFyIiwgInJtIiwgICJybiIsICAicm8iLCAgInJvYSIsICJyb20iLAorICAgICAgICAgICAgICAgICJydSIsICAicnVwIiwgInJ3IiwgICJzYSIsICAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsCisgICAgICAgICAgICAgICAgInNhcyIsICJzYXQiLCAic2MiLCAgInNjbyIsICJzZCIsICAic2UiLCAgInNlbCIsICJzZW0iLAorICAgICAgICAgICAgICAgICJzZyIsICAic2dhIiwgInNnbiIsICJzaG4iLCAic2kiLCAgInNpZCIsICJzaW8iLCAic2l0IiwKKyAgICAgICAgICAgICAgICAic2siLCAgInNsIiwgICJzbGEiLCAic20iLCAgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsCisgICAgICAgICAgICAgICAgInNtcyIsICJzbiIsICAic25rIiwgInNvIiwgICJzb2ciLCAic29uIiwgInNxIiwgICJzciIsCisgICAgICAgICAgICAgICAgInNyciIsICJzcyIsICAic3NhIiwgInN0IiwgICJzdSIsICAic3VrIiwgInN1cyIsICJzdXgiLAorICAgICAgICAgICAgICAgICJzdiIsICAic3ciLCAgInN5ciIsICJ0YSIsICAidGFpIiwgInRlIiwgICJ0ZW0iLCAidGVyIiwKKyAgICAgICAgICAgICAgICAidGV0IiwgInRnIiwgICJ0aCIsICAidGkiLCAgInRpZyIsICJ0aXYiLCAidGsiLCAgInRrbCIsCisgICAgICAgICAgICAgICAgInRsIiwgICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0biIsICAidG8iLCAgInRvZyIsICJ0cGkiLCAidHIiLAorICAgICAgICAgICAgICAgICJ0cyIsICAidHNpIiwgInR0IiwgICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHciLAorICAgICAgICAgICAgICAgICJ0eSIsICAidHl2IiwgInVkbSIsICJ1ZyIsICAidWdhIiwgInVrIiwgICJ1bWIiLCAidW5kIiwgInVyIiwKKyAgICAgICAgICAgICAgICAidXoiLCAgInZhaSIsICJ2ZSIsICAidmkiLCAgInZvIiwgICJ2b3QiLCAid2EiLCAgIndhayIsCisgICAgICAgICAgICAgICAgIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3byIsICAieGFsIiwgInhoIiwgICJ5YW8iLCAieWFwIiwKKyAgICAgICAgICAgICAgICAieWkiLCAgInlvIiwgICJ5cGsiLCAiemEiLCAgInphcCIsICJ6ZW4iLCAiemgiLCAgInpuZCIsCisgICAgICAgICAgICAgICAgInp1IiwgICJ6dW4iLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBSZXBsYWNlbWVudExhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiaWQiLCAiaGUiLCAieWkiLCAianYiLCAic3IiLCAibmIiLC8qIHJlcGxhY2VtZW50IGxhbmd1YWdlIGNvZGVzICovCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImluIiwgIml3IiwgImppIiwgImp3IiwgInNoIiwgIm5vIiwgICAgLyogb2Jzb2xldGUgbGFuZ3VhZ2UgY29kZXMgKi8gICAgICAgICAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGNvbnRhaW4gYSB0aHJlZS1sZXR0ZXIgY29kZSBmb3IgZXZlcnkgdHdvLWxldHRlciBjb2RlIGluIHRoZQorICAgICAgICAgICAgICAgbGlzdCBhYm92ZSwgYW5kIHRoZXkgTVVTVCBuZSBpbiB0aGUgc2FtZSBvcmRlciAoaS5lLiwgdGhlIHNhbWUgbGFuZ3VhZ2UgbXVzdAorICAgICAgICAgICAgICAgYmUgaW4gdGhlIHNhbWUgcGxhY2UgaW4gYm90aCBsaXN0cykhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wTGFuZ3VhZ2VzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJhYSIsICAiYWIiLCAgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhZSIsICAiYWYiLCAgImFmYSIsICAgICovCisgICAgICAgICAgICAgICAgImFhciIsICJhYmsiLCAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImF2ZSIsICJhZnIiLCAiYWZhIiwKKyAgICAgICAgICAgICAgICAvKiJhZmgiLCAiYWsiLCAgImFrayIsICJhbGUiLCAiYWxnIiwgImFtIiwgICJhbiIsICAiYW5nIiwgImFwYSIsICAgICovCisgICAgICAgICAgICAgICAgImFmaCIsICJha2EiLCAiYWtrIiwgImFsZSIsICJhbGciLCAiYW1oIiwgImFyZyIsICJhbmciLCAiYXBhIiwKKyAgICAgICAgICAgICAgICAvKiJhciIsICAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhcyIsICAiYXN0IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYXJhIiwgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXNtIiwgImFzdCIsCisgICAgICAgICAgICAgICAgLyoiYXRoIiwgImF1cyIsICJhdiIsICAiYXdhIiwgImF5IiwgICJheiIsICAiYmEiLCAgImJhZCIsICAgICovCisgICAgICAgICAgICAgICAgImF0aCIsICJhdXMiLCAiYXZhIiwgImF3YSIsICJheW0iLCAiYXplIiwgImJhayIsICJiYWQiLAorICAgICAgICAgICAgICAgIC8qImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmUiLCAgImJlaiIsICAgICovCisgICAgICAgICAgICAgICAgImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmVsIiwgImJlaiIsCisgICAgICAgICAgICAgICAgLyoiYmVtIiwgImJlciIsICJiZyIsICAiYmgiLCAgImJobyIsICJiaSIsICAiYmlrIiwgImJpbiIsICAgICovCisgICAgICAgICAgICAgICAgImJlbSIsICJiZXIiLCAiYnVsIiwgImJpaCIsICJiaG8iLCAiYmlzIiwgImJpayIsICJiaW4iLAorICAgICAgICAgICAgICAgIC8qImJsYSIsICJibSIsICAiYm4iLCAgImJudCIsICJibyIsICAiYnIiLCAgImJyYSIsICJicyIsICAgICAqLworICAgICAgICAgICAgICAgICJibGEiLCAiYmFtIiwgICJiZW4iLCAiYm50IiwgImJvZCIsICJicmUiLCAiYnJhIiwgImJvcyIsCisgICAgICAgICAgICAgICAgLyoiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhIiwgICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLCAgICAqLworICAgICAgICAgICAgICAgICJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2F0IiwgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsCisgICAgICAgICAgICAgICAgLyoiY2UiLCAgImNlYiIsICJjZWwiLCAiY2giLCAgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsICAgICovCisgICAgICAgICAgICAgICAgImNoZSIsICJjZWIiLCAiY2VsIiwgImNoYSIsICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLAorICAgICAgICAgICAgICAgIC8qImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvIiwgICJjb3AiLCAgICAqLworICAgICAgICAgICAgICAgICJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjb3MiLCAiY29wIiwKKyAgICAgICAgICAgICAgICAvKiJjcGUiLCAiY3BmIiwgImNwcCIsICJjciIsICAiY3JoIiwgImNycCIsICJjcyIsICAiY3NiIiwgImN1IiwgICJjdXMiLCAgICAqLworICAgICAgICAgICAgICAgICJjcGUiLCAiY3BmIiwgImNwcCIsICJjcmUiLCAiY3JoIiwgImNycCIsICJjZXMiLCAiY3NiIiwgImNodSIsICJjdXMiLAorICAgICAgICAgICAgICAgIC8qImN2IiwgICJjeSIsICAiZGEiLCAgImRhayIsICJkYXIiLCAiZGF5IiwgImRlIiwgICJkZWwiLCAiZGVuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2h2IiwgImN5bSIsICJkYW4iLCAiZGFrIiwgImRhciIsICJkYXkiLCAiZGV1IiwgImRlbCIsICJkZW4iLAorICAgICAgICAgICAgICAgIC8qImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkdiIsICAiZHl1IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImRpdiIsICJkeXUiLAorICAgICAgICAgICAgICAgIC8qImR6IiwgICJlZSIsICAiZWZpIiwgImVneSIsICJla2EiLCAiZWwiLCAgImVseCIsICJlbiIsICAgICAqLworICAgICAgICAgICAgICAgICJkem8iLCAiZXdlIiwgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsbCIsICJlbHgiLCAiZW5nIiwKKyAgICAgICAgICAgICAgICAvKiJlbm0iLCAiZW8iLCAgImVzIiwgICJldCIsICAiZXUiLCAgImV3byIsICJmYSIsICAgICAqLworICAgICAgICAgICAgICAgICJlbm0iLCAiZXBvIiwgInNwYSIsICJlc3QiLCAiZXVzIiwgImV3byIsICJmYXMiLAorICAgICAgICAgICAgICAgIC8qImZhbiIsICJmYXQiLCAiZmYiLCAgImZpIiwgICJmaXUiLCAiZmoiLCAgImZvIiwgICJmb24iLCAgICAqLworICAgICAgICAgICAgICAgICJmYW4iLCAiZmF0IiwgImZ1bCIsICJmaW4iLCAiZml1IiwgImZpaiIsICJmYW8iLCAiZm9uIiwKKyAgICAgICAgICAgICAgICAvKiJmciIsICAiZnJtIiwgImZybyIsICJmdXIiLCAiZnkiLCAgImdhIiwgICJnYWEiLCAiZ2F5IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZnJhIiwgImZybSIsICJmcm8iLCAiZnVyIiwgImZyeSIsICJnbGUiLCAiZ2FhIiwgImdheSIsCisgICAgICAgICAgICAgICAgLyoiZ2JhIiwgImdkIiwgICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbCIsICAiZ21oIiwgImduIiwgICAgICovCisgICAgICAgICAgICAgICAgImdiYSIsICJnbGEiLCAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2xnIiwgImdtaCIsICJncm4iLAorICAgICAgICAgICAgICAgIC8qImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1IiwgICJndiIsICAgICAqLworICAgICAgICAgICAgICAgICJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndWoiLCAiZ2x2IiwKKyAgICAgICAgICAgICAgICAvKiJnd2kiLCAiaGEiLCAgImhhaSIsICJoYXciLCAiaGUiLCAgImhpIiwgICJoaWwiLCAiaGltIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZ3dpIiwgImhhdSIsICJoYWkiLCAiaGF3IiwgImhlYiIsICJoaW4iLCAiaGlsIiwgImhpbSIsCisgICAgICAgICAgICAgICAgLyoiaGl0IiwgImhtbiIsICJobyIsICAiaHIiLCAgImhzYiIsICJodCIsICAiaHUiLCAgImh1cCIsICJoeSIsICAiaHoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiaGl0IiwgImhtbiIsICJobW8iLCAiaHJ2IiwgImhzYiIsICJoYXQiLCAiaHVuIiwgImh1cCIsICJoeWUiLCAiaGVyIiwKKyAgICAgICAgICAgICAgICAvKiJpYSIsICAiaWJhIiwgImlkIiwgICJpZSIsICAiaWciLCAgImlpIiwgICJpam8iLCAiaWsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiaW5hIiwgImliYSIsICJpbmQiLCAiaWxlIiwgImlibyIsICJpaWkiLCAiaWpvIiwgImlwayIsCisgICAgICAgICAgICAgICAgLyoiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlvIiwgICJpcmEiLCAiaXJvIiwgImlzIiwgICJpdCIsICAgICAgKi8KKyAgICAgICAgICAgICAgICAiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlkbyIsICJpcmEiLCAiaXJvIiwgImlzbCIsICJpdGEiLAorICAgICAgICAgICAgICAgIC8qIml1IiwgICJqYSIsICAiamJvIiwgImpwciIsICJqcmIiLCAianYiLCAgImthIiwgICJrYWEiLCAia2FiIiwgICAqLworICAgICAgICAgICAgICAgICJpa3UiLCAianBuIiwgImpibyIsICJqcHIiLCAianJiIiwgImphdyIsICJrYXQiLCAia2FhIiwgImthYiIsCisgICAgICAgICAgICAgICAgLyoia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrZyIsICAia2hhIiwgImtoaSIsICAgICovCisgICAgICAgICAgICAgICAgImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia29uIiwgImtoYSIsICJraGkiLAorICAgICAgICAgICAgICAgIC8qImtobyIsICJraSIsICAia2oiLCAgImtrIiwgICJrbCIsICAia20iLCAgImttYiIsICJrbiIsICAgICAqLworICAgICAgICAgICAgICAgICJraG8iLCAia2lrIiwgImt1YSIsICJrYXoiLCAia2FsIiwgImtobSIsICJrbWIiLCAia2FuIiwKKyAgICAgICAgICAgICAgICAvKiJrbyIsICAia29rIiwgImtvcyIsICJrcGUiLCAia3IiLCAgImtyYyIsICJrcm8iLCAia3J1IiwgImtzIiwgICAgICovCisgICAgICAgICAgICAgICAgImtvciIsICJrb2siLCAia29zIiwgImtwZSIsICJrYXUiLCAia3JjIiwgImtybyIsICJrcnUiLCAia2FzIiwKKyAgICAgICAgICAgICAgICAvKiJrdSIsICAia3VtIiwgImt1dCIsICJrdiIsICAia3ciLCAgImt5IiwgICJsYSIsICAibGFkIiwgICAgKi8KKyAgICAgICAgICAgICAgICAia3VyIiwgImt1bSIsICJrdXQiLCAia29tIiwgImNvciIsICJraXIiLCAibGF0IiwgImxhZCIsCisgICAgICAgICAgICAgICAgLyoibGFoIiwgImxhbSIsICJsYiIsICAibGV6IiwgImxnIiwgICJsaSIsICAibG4iLCAgImxvIiwgICJsb2wiLCAgICAqLworICAgICAgICAgICAgICAgICJsYWgiLCAibGFtIiwgImx0eiIsICJsZXoiLCAibHVnIiwgImxpbSIsICJsaW4iLCAibGFvIiwgImxvbCIsCisgICAgICAgICAgICAgICAgLyoibG96IiwgImx0IiwgICJsdSIsICAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsICAgICovCisgICAgICAgICAgICAgICAgImxveiIsICJsaXQiLCAibHViIiwgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLAorICAgICAgICAgICAgICAgIC8qImx2IiwgICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLCAgICAqLworICAgICAgICAgICAgICAgICJsYXYiLCAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwKKyAgICAgICAgICAgICAgICAvKiJtZGYiLCAibWRyIiwgIm1lbiIsICJtZyIsICAibWdhIiwgIm1oIiwgICJtaSIsICAibWljIiwgIm1pbiIsICAgICovCisgICAgICAgICAgICAgICAgIm1kZiIsICJtZHIiLCAibWVuIiwgIm1sZyIsICJtZ2EiLCAibWFoIiwgIm1yaSIsICJtaWMiLCAibWluIiwKKyAgICAgICAgICAgICAgICAvKiJtaXMiLCAibWsiLCAgIm1raCIsICJtbCIsICAibW4iLCAgIm1uYyIsICJtbmkiLCAibW5vIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibWlzIiwgIm1rZCIsICJta2giLCAibWFsIiwgIm1vbiIsICJtbmMiLCAibW5pIiwgIm1ubyIsCisgICAgICAgICAgICAgICAgLyoibW8iLCAgIm1vaCIsICJtb3MiLCAibXIiLCAgIm1zIiwgICJtdCIsICAibXVsIiwgIm11biIsICAgICovCisgICAgICAgICAgICAgICAgIm1vbCIsICJtb2giLCAibW9zIiwgIm1hciIsICJtc2EiLCAibWx0IiwgIm11bCIsICJtdW4iLAorICAgICAgICAgICAgICAgIC8qIm11cyIsICJtd3IiLCAibXkiLCAgIm15biIsICJteXYiLCAibmEiLCAgIm5haCIsICJuYWkiLCAibmFwIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibXVzIiwgIm13ciIsICJteWEiLCAibXluIiwgIm15diIsICJuYXUiLCAibmFoIiwgIm5haSIsICJuYXAiLAorICAgICAgICAgICAgICAgIC8qIm5iIiwgICJuZCIsICAibmRzIiwgIm5lIiwgICJuZXciLCAibmciLCAgIm5pYSIsICJuaWMiLCAgICAqLworICAgICAgICAgICAgICAgICJub2IiLCAibmRlIiwgIm5kcyIsICJuZXAiLCAibmV3IiwgIm5kbyIsICJuaWEiLCAibmljIiwKKyAgICAgICAgICAgICAgICAvKiJuaXUiLCAibmwiLCAgIm5uIiwgICJubyIsICAibm9nIiwgIm5vbiIsICJuciIsICAibnNvIiwgIm51YiIsICAgICovCisgICAgICAgICAgICAgICAgIm5pdSIsICJubGQiLCAibm5vIiwgIm5vciIsICJub2ciLCAibm9uIiwgIm5ibCIsICJuc28iLCAibnViIiwKKyAgICAgICAgICAgICAgICAvKiJudiIsICAibndjIiwgIm55IiwgICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2MiLCAgIm9qIiwgICAgICovCisgICAgICAgICAgICAgICAgIm5hdiIsICJud2MiLCAibnlhIiwgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvY2kiLCAib2ppIiwKKyAgICAgICAgICAgICAgICAvKiJvbSIsICAib3IiLCAgIm9zIiwgICJvc2EiLCAib3RhIiwgIm90byIsICJwYSIsICAicGFhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAib3JtIiwgIm9yaSIsICJvc3MiLCAib3NhIiwgIm90YSIsICJvdG8iLCAicGFuIiwgInBhYSIsCisgICAgICAgICAgICAgICAgLyoicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsICAgICovCisgICAgICAgICAgICAgICAgInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLAorICAgICAgICAgICAgICAgIC8qInBpIiwgICJwbCIsICAicG9uIiwgInByYSIsICJwcm8iLCAicHMiLCAgInB0IiwgICJxdSIsICAgICAqLworICAgICAgICAgICAgICAgICJwbGkiLCAicG9sIiwgInBvbiIsICJwcmEiLCAicHJvIiwgInB1cyIsICJwb3IiLCAicXVlIiwKKyAgICAgICAgICAgICAgICAvKiJyYWoiLCAicmFwIiwgInJhciIsICJybSIsICAicm4iLCAgInJvIiwgICJyb2EiLCAicm9tIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicmFqIiwgInJhcCIsICJyYXIiLCAicm9oIiwgInJ1biIsICJyb24iLCAicm9hIiwgInJvbSIsCisgICAgICAgICAgICAgICAgLyoicnUiLCAgInJ1cCIsICJydyIsICAic2EiLCAgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLCAgICAqLworICAgICAgICAgICAgICAgICJydXMiLCAicnVwIiwgImtpbiIsICJzYW4iLCAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsCisgICAgICAgICAgICAgICAgLyoic2FzIiwgInNhdCIsICJzYyIsICAic2NvIiwgInNkIiwgICJzZSIsICAic2VsIiwgInNlbSIsICAgICovCisgICAgICAgICAgICAgICAgInNhcyIsICJzYXQiLCAic3JkIiwgInNjbyIsICJzbmQiLCAic21lIiwgInNlbCIsICJzZW0iLAorICAgICAgICAgICAgICAgIC8qInNnIiwgICJzZ2EiLCAic2duIiwgInNobiIsICJzaSIsICAic2lkIiwgInNpbyIsICJzaXQiLCAgICAqLworICAgICAgICAgICAgICAgICJzYWciLCAic2dhIiwgInNnbiIsICJzaG4iLCAic2luIiwgInNpZCIsICJzaW8iLCAic2l0IiwKKyAgICAgICAgICAgICAgICAvKiJzayIsICAic2wiLCAgInNsYSIsICJzbSIsICAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2xrIiwgInNsdiIsICJzbGEiLCAic21vIiwgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsCisgICAgICAgICAgICAgICAgLyoic21zIiwgInNuIiwgICJzbmsiLCAic28iLCAgInNvZyIsICJzb24iLCAic3EiLCAgInNyIiwgICAgICovCisgICAgICAgICAgICAgICAgInNtcyIsICJzbmEiLCAic25rIiwgInNvbSIsICJzb2ciLCAic29uIiwgInNxaSIsICJzcnAiLAorICAgICAgICAgICAgICAgIC8qInNyciIsICJzcyIsICAic3NhIiwgInN0IiwgICJzdSIsICAic3VrIiwgInN1cyIsICJzdXgiLCAgICAqLworICAgICAgICAgICAgICAgICJzcnIiLCAic3N3IiwgInNzYSIsICJzb3QiLCAic3VuIiwgInN1ayIsICJzdXMiLCAic3V4IiwKKyAgICAgICAgICAgICAgICAvKiJzdiIsICAic3ciLCAgInN5ciIsICJ0YSIsICAidGFpIiwgInRlIiwgICJ0ZW0iLCAidGVyIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic3dlIiwgInN3YSIsICJzeXIiLCAidGFtIiwgInRhaSIsICJ0ZWwiLCAidGVtIiwgInRlciIsCisgICAgICAgICAgICAgICAgLyoidGV0IiwgInRnIiwgICJ0aCIsICAidGkiLCAgInRpZyIsICJ0aXYiLCAidGsiLCAgInRrbCIsICAgICovCisgICAgICAgICAgICAgICAgInRldCIsICJ0Z2siLCAidGhhIiwgInRpciIsICJ0aWciLCAidGl2IiwgInR1ayIsICJ0a2wiLAorICAgICAgICAgICAgICAgIC8qInRsIiwgICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0biIsICAidG8iLCAgInRvZyIsICJ0cGkiLCAidHIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidGdsIiwgInRsaCIsICJ0bGkiLCAidG1oIiwgInRzbiIsICJ0b24iLCAidG9nIiwgInRwaSIsICJ0dXIiLAorICAgICAgICAgICAgICAgIC8qInRzIiwgICJ0c2kiLCAidHQiLCAgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0dyIsICAgICAqLworICAgICAgICAgICAgICAgICJ0c28iLCAidHNpIiwgInRhdCIsICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHdpIiwKKyAgICAgICAgICAgICAgICAvKiJ0eSIsICAidHl2IiwgInVkbSIsICJ1ZyIsICAidWdhIiwgInVrIiwgICJ1bWIiLCAidW5kIiwgInVyIiwgICAgICovCisgICAgICAgICAgICAgICAgInRhaCIsICJ0eXYiLCAidWRtIiwgInVpZyIsICJ1Z2EiLCAidWtyIiwgInVtYiIsICJ1bmQiLCAidXJkIiwKKyAgICAgICAgICAgICAgICAvKiJ1eiIsICAidmFpIiwgInZlIiwgICJ2aSIsICAidm8iLCAgInZvdCIsICJ3YSIsICAid2FrIiwgICAgKi8KKyAgICAgICAgICAgICAgICAidXpiIiwgInZhaSIsICJ2ZW4iLCAidmllIiwgInZvbCIsICJ2b3QiLCAid2xuIiwgIndhayIsCisgICAgICAgICAgICAgICAgLyoid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvIiwgICJ4YWwiLCAieGgiLCAgInlhbyIsICJ5YXAiLCAgICAqLworICAgICAgICAgICAgICAgICJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid29sIiwgInhhbCIsICJ4aG8iLCAieWFvIiwgInlhcCIsCisgICAgICAgICAgICAgICAgLyoieWkiLCAgInlvIiwgICJ5cGsiLCAiemEiLCAgInphcCIsICJ6ZW4iLCAiemgiLCAgInpuZCIsICAgICovCisgICAgICAgICAgICAgICAgInlpZCIsICJ5b3IiLCAieXBrIiwgInpoYSIsICJ6YXAiLCAiemVuIiwgInpobyIsICJ6bmQiLAorICAgICAgICAgICAgICAgIC8qInp1IiwgICJ6dW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICJ6dWwiLCAienVuIiwgIAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUxhbmd1YWdlczMgPSB7CisgICAgICAgICAgICAgICAgLyogImluIiwgICJpdyIsICAiamkiLCAgImp3IiwgICJzaCIsICovCisgICAgICAgICAgICAgICAgImluZCIsICJoZWIiLCAieWlkIiwgImphdyIsICJzcnAiLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAoVUxvY2FsZS5jbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChfbGFuZ3VhZ2VzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgX2xhbmd1YWdlcyA9IHRlbXBMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9yZXBsYWNlbWVudExhbmd1YWdlcyA9IHRlbXBSZXBsYWNlbWVudExhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlTGFuZ3VhZ2VzID0gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfbGFuZ3VhZ2VzMyA9IHRlbXBMYW5ndWFnZXMzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVMYW5ndWFnZXMzID0gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfY291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9kZXByZWNhdGVkQ291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9yZXBsYWNlbWVudENvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2NvdW50cmllczM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlQ291bnRyaWVzMzsgIAorCisgICAgLy8gQXZvaWQgaW5pdGlhbGl6aW5nIGNvdW50cnkgdGFibGVzIHVubGVzcyB3ZSBoYXZlIHRvLgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdENvdW50cnlUYWJsZXMoKSB7ICAgIAorICAgICAgICBpZiAoX2NvdW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvKiBaUihaQVIpIGlzIG5vdyBDRChDT0QpIGFuZCBGWChGWFgpIGlzIFBTKFBTRSkgYXMgcGVyCisgICAgICAgICAgICAgICBodHRwOi8vd3d3LmV2ZXJ0eXBlLmNvbS9zdGFuZGFyZHMvaXNvMzE2Ni9pc28zMTY2LTEtZW4uaHRtbCAKKyAgICAgICAgICAgICAgIGFkZGVkIG5ldyBjb2RlcyBrZWVwaW5nIHRoZSBvbGQgb25lcyBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgICAgdXBkYXRlZCB0byBpbmNsdWRlIDE5OTkvMTIvMDMgcmV2aXNpb25zICpDV0IqLworICAgIAorICAgICAgICAgICAgLyogUk8oUk9NKSBpcyBub3cgUk8oUk9VKSBhY2NvcmRpbmcgdG8gCisgICAgICAgICAgICAgICBodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS8wM3VwZGF0ZXMtb24taXNvLTMxNjYvbmx2M2Utcm91Lmh0bWwKKyAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBiZSBpbiBzb3J0ZWQgb3JkZXIsIGFuZCBNVVNUIGNvbnRhaW4gb25seSB0d28tbGV0dGVyIGNvZGVzISAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcENvdW50cmllcyA9IHsKKyAgICAgICAgICAgICAgICAiQUQiLCAgIkFFIiwgICJBRiIsICAiQUciLCAgIkFJIiwgICJBTCIsICAiQU0iLCAgIkFOIiwKKyAgICAgICAgICAgICAgICAiQU8iLCAgIkFRIiwgICJBUiIsICAiQVMiLCAgIkFUIiwgICJBVSIsICAiQVciLCAgIkFaIiwKKyAgICAgICAgICAgICAgICAiQkEiLCAgIkJCIiwgICJCRCIsICAiQkUiLCAgIkJGIiwgICJCRyIsICAiQkgiLCAgIkJJIiwKKyAgICAgICAgICAgICAgICAiQkoiLCAgIkJNIiwgICJCTiIsICAiQk8iLCAgIkJSIiwgICJCUyIsICAiQlQiLCAgIkJWIiwKKyAgICAgICAgICAgICAgICAiQlciLCAgIkJZIiwgICJCWiIsICAiQ0EiLCAgIkNDIiwgICJDRCIsICAiQ0YiLCAgIkNHIiwKKyAgICAgICAgICAgICAgICAiQ0giLCAgIkNJIiwgICJDSyIsICAiQ0wiLCAgIkNNIiwgICJDTiIsICAiQ08iLCAgIkNSIiwKKyAgICAgICAgICAgICAgICAiQ1UiLCAgIkNWIiwgICJDWCIsICAiQ1kiLCAgIkNaIiwgICJERSIsICAiREoiLCAgIkRLIiwKKyAgICAgICAgICAgICAgICAiRE0iLCAgIkRPIiwgICJEWiIsICAiRUMiLCAgIkVFIiwgICJFRyIsICAiRUgiLCAgIkVSIiwKKyAgICAgICAgICAgICAgICAiRVMiLCAgIkVUIiwgICJGSSIsICAiRkoiLCAgIkZLIiwgICJGTSIsICAiRk8iLCAgIkZSIiwKKyAgICAgICAgICAgICAgICAiR0EiLCAgIkdCIiwgICJHRCIsICAiR0UiLCAgIkdGIiwgICJHSCIsICAiR0kiLCAgIkdMIiwKKyAgICAgICAgICAgICAgICAiR00iLCAgIkdOIiwgICJHUCIsICAiR1EiLCAgIkdSIiwgICJHUyIsICAiR1QiLCAgIkdVIiwKKyAgICAgICAgICAgICAgICAiR1ciLCAgIkdZIiwgICJISyIsICAiSE0iLCAgIkhOIiwgICJIUiIsICAiSFQiLCAgIkhVIiwKKyAgICAgICAgICAgICAgICAiSUQiLCAgIklFIiwgICJJTCIsICAiSU4iLCAgIklPIiwgICJJUSIsICAiSVIiLCAgIklTIiwKKyAgICAgICAgICAgICAgICAiSVQiLCAgIkpNIiwgICJKTyIsICAiSlAiLCAgIktFIiwgICJLRyIsICAiS0giLCAgIktJIiwKKyAgICAgICAgICAgICAgICAiS00iLCAgIktOIiwgICJLUCIsICAiS1IiLCAgIktXIiwgICJLWSIsICAiS1oiLCAgIkxBIiwKKyAgICAgICAgICAgICAgICAiTEIiLCAgIkxDIiwgICJMSSIsICAiTEsiLCAgIkxSIiwgICJMUyIsICAiTFQiLCAgIkxVIiwKKyAgICAgICAgICAgICAgICAiTFYiLCAgIkxZIiwgICJNQSIsICAiTUMiLCAgIk1EIiwgICJNRyIsICAiTUgiLCAgIk1LIiwKKyAgICAgICAgICAgICAgICAiTUwiLCAgIk1NIiwgICJNTiIsICAiTU8iLCAgIk1QIiwgICJNUSIsICAiTVIiLCAgIk1TIiwKKyAgICAgICAgICAgICAgICAiTVQiLCAgIk1VIiwgICJNViIsICAiTVciLCAgIk1YIiwgICJNWSIsICAiTVoiLCAgIk5BIiwKKyAgICAgICAgICAgICAgICAiTkMiLCAgIk5FIiwgICJORiIsICAiTkciLCAgIk5JIiwgICJOTCIsICAiTk8iLCAgIk5QIiwKKyAgICAgICAgICAgICAgICAiTlIiLCAgIk5VIiwgICJOWiIsICAiT00iLCAgIlBBIiwgICJQRSIsICAiUEYiLCAgIlBHIiwKKyAgICAgICAgICAgICAgICAiUEgiLCAgIlBLIiwgICJQTCIsICAiUE0iLCAgIlBOIiwgICJQUiIsICAiUFMiLCAgIlBUIiwKKyAgICAgICAgICAgICAgICAiUFciLCAgIlBZIiwgICJRQSIsICAiUkUiLCAgIlJPIiwgICJSVSIsICAiUlciLCAgIlNBIiwKKyAgICAgICAgICAgICAgICAiU0IiLCAgIlNDIiwgICJTRCIsICAiU0UiLCAgIlNHIiwgICJTSCIsICAiU0kiLCAgIlNKIiwKKyAgICAgICAgICAgICAgICAiU0siLCAgIlNMIiwgICJTTSIsICAiU04iLCAgIlNPIiwgICJTUiIsICAiU1QiLCAgIlNWIiwKKyAgICAgICAgICAgICAgICAiU1kiLCAgIlNaIiwgICJUQyIsICAiVEQiLCAgIlRGIiwgICJURyIsICAiVEgiLCAgIlRKIiwKKyAgICAgICAgICAgICAgICAiVEsiLCAgIlRMIiwgICJUTSIsICAiVE4iLCAgIlRPIiwgICJUUiIsICAiVFQiLCAgIlRWIiwKKyAgICAgICAgICAgICAgICAiVFciLCAgIlRaIiwgICJVQSIsICAiVUciLCAgIlVNIiwgICJVUyIsICAiVVkiLCAgIlVaIiwKKyAgICAgICAgICAgICAgICAiVkEiLCAgIlZDIiwgICJWRSIsICAiVkciLCAgIlZJIiwgICJWTiIsICAiVlUiLCAgIldGIiwKKyAgICAgICAgICAgICAgICAiV1MiLCAgIllFIiwgICJZVCIsICAiWVUiLCAgIlpBIiwgICJaTSIsICAiWlciLCAgCisgICAgICAgICAgICB9OyAgCisKKyAgICAgICAgICAgIC8qIHRoaXMgdGFibGUgaXMgdXNlZCBmb3IgMyBsZXR0ZXIgY29kZXMgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllcyA9IHsKKyAgICAgICAgICAgICAgICAiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgLyogb2Jzb2xldGUgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcERlcHJlY2F0ZWRDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAiQlUiLCAiRFkiLCAiRlgiLCAiSFYiLCAiTkgiLCAiUkgiLCAiVFAiLCAiWVUiLCAiWlIiIC8qIGRlcHJlY2F0ZWQgY291bnRyeSBsaXN0ICovCisgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nW10gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzID0geworICAgICAgICAgICAvKiAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAqLworICAgICAgICAgICAgICAgIk1NIiwgIkJKIiwgIkZSIiwgIkJGIiwgIlZVIiwgIlpXIiwgIlRMIiwgIkNTIiwgIkNEIiwgICAvKiByZXBsYWNlbWVudCBjb3VudHJ5IGNvZGVzICovICAgICAgCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgY29udGFpbiBhIHRocmVlLWxldHRlciBjb2RlIGZvciBldmVyeSB0d28tbGV0dGVyIGNvZGUgaW4KKyAgICAgICAgICAgICAgIHRoZSBhYm92ZSBsaXN0LCBhbmQgdGhleSBNVVNUIGJlIGxpc3RlZCBpbiB0aGUgc2FtZSBvcmRlciEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBDb3VudHJpZXMzID0geworICAgICAgICAgICAgICAgIC8qIkFEIiwgICJBRSIsICAiQUYiLCAgIkFHIiwgICJBSSIsICAiQUwiLCAgIkFNIiwgICJBTiIsICAgICAqLworICAgICAgICAgICAgICAgICJBTkQiLCAiQVJFIiwgIkFGRyIsICJBVEciLCAiQUlBIiwgIkFMQiIsICJBUk0iLCAiQU5UIiwKKyAgICAgICAgICAgICAgICAvKiJBTyIsICAiQVEiLCAgIkFSIiwgICJBUyIsICAiQVQiLCAgIkFVIiwgICJBVyIsICAiQVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQUdPIiwgIkFUQSIsICJBUkciLCAiQVNNIiwgIkFVVCIsICJBVVMiLCAiQUJXIiwgIkFaRSIsCisgICAgICAgICAgICAgICAgLyoiQkEiLCAgIkJCIiwgICJCRCIsICAiQkUiLCAgIkJGIiwgICJCRyIsICAiQkgiLCAgIkJJIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJJSCIsICJCUkIiLCAiQkdEIiwgIkJFTCIsICJCRkEiLCAiQkdSIiwgIkJIUiIsICJCREkiLAorICAgICAgICAgICAgICAgIC8qIkJKIiwgICJCTSIsICAiQk4iLCAgIkJPIiwgICJCUiIsICAiQlMiLCAgIkJUIiwgICJCViIsICAgICAqLworICAgICAgICAgICAgICAgICJCRU4iLCAiQk1VIiwgIkJSTiIsICJCT0wiLCAiQlJBIiwgIkJIUyIsICJCVE4iLCAiQlZUIiwKKyAgICAgICAgICAgICAgICAvKiJCVyIsICAiQlkiLCAgIkJaIiwgICJDQSIsICAiQ0MiLCAgIkNEIiwgICJDRiIsICAiQ0ciLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQldBIiwgIkJMUiIsICJCTFoiLCAiQ0FOIiwgIkNDSyIsICJDT0QiLCAiQ0FGIiwgIkNPRyIsCisgICAgICAgICAgICAgICAgLyoiQ0giLCAgIkNJIiwgICJDSyIsICAiQ0wiLCAgIkNNIiwgICJDTiIsICAiQ08iLCAgIkNSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNIRSIsICJDSVYiLCAiQ09LIiwgIkNITCIsICJDTVIiLCAiQ0hOIiwgIkNPTCIsICJDUkkiLAorICAgICAgICAgICAgICAgIC8qIkNVIiwgICJDViIsICAiQ1giLCAgIkNZIiwgICJDWiIsICAiREUiLCAgIkRKIiwgICJESyIsICAgICAqLworICAgICAgICAgICAgICAgICJDVUIiLCAiQ1BWIiwgIkNYUiIsICJDWVAiLCAiQ1pFIiwgIkRFVSIsICJESkkiLCAiRE5LIiwKKyAgICAgICAgICAgICAgICAvKiJETSIsICAiRE8iLCAgIkRaIiwgICJFQyIsICAiRUUiLCAgIkVHIiwgICJFSCIsICAiRVIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiRE1BIiwgIkRPTSIsICJEWkEiLCAiRUNVIiwgIkVTVCIsICJFR1kiLCAiRVNIIiwgIkVSSSIsCisgICAgICAgICAgICAgICAgLyoiRVMiLCAgIkVUIiwgICJGSSIsICAiRkoiLCAgIkZLIiwgICJGTSIsICAiRk8iLCAgIkZSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkVTUCIsICJFVEgiLCAiRklOIiwgIkZKSSIsICJGTEsiLCAiRlNNIiwgIkZSTyIsICJGUkEiLAorICAgICAgICAgICAgICAgIC8qIkdBIiwgICJHQiIsICAiR0QiLCAgIkdFIiwgICJHRiIsICAiR0giLCAgIkdJIiwgICJHTCIsICAgICAqLworICAgICAgICAgICAgICAgICJHQUIiLCAiR0JSIiwgIkdSRCIsICJHRU8iLCAiR1VGIiwgIkdIQSIsICJHSUIiLCAiR1JMIiwKKyAgICAgICAgICAgICAgICAvKiJHTSIsICAiR04iLCAgIkdQIiwgICJHUSIsICAiR1IiLCAgIkdTIiwgICJHVCIsICAiR1UiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR01CIiwgIkdJTiIsICJHTFAiLCAiR05RIiwgIkdSQyIsICJTR1MiLCAiR1RNIiwgIkdVTSIsCisgICAgICAgICAgICAgICAgLyoiR1ciLCAgIkdZIiwgICJISyIsICAiSE0iLCAgIkhOIiwgICJIUiIsICAiSFQiLCAgIkhVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdOQiIsICJHVVkiLCAiSEtHIiwgIkhNRCIsICJITkQiLCAiSFJWIiwgIkhUSSIsICJIVU4iLAorICAgICAgICAgICAgICAgIC8qIklEIiwgICJJRSIsICAiSUwiLCAgIklOIiwgICJJTyIsICAiSVEiLCAgIklSIiwgICJJUyIsICAgICAqLworICAgICAgICAgICAgICAgICJJRE4iLCAiSVJMIiwgIklTUiIsICJJTkQiLCAiSU9UIiwgIklSUSIsICJJUk4iLCAiSVNMIiwKKyAgICAgICAgICAgICAgICAvKiJJVCIsICAiSk0iLCAgIkpPIiwgICJKUCIsICAiS0UiLCAgIktHIiwgICJLSCIsICAiS0kiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSVRBIiwgIkpBTSIsICJKT1IiLCAiSlBOIiwgIktFTiIsICJLR1oiLCAiS0hNIiwgIktJUiIsCisgICAgICAgICAgICAgICAgLyoiS00iLCAgIktOIiwgICJLUCIsICAiS1IiLCAgIktXIiwgICJLWSIsICAiS1oiLCAgIkxBIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNPTSIsICJLTkEiLCAiUFJLIiwgIktPUiIsICJLV1QiLCAiQ1lNIiwgIktBWiIsICJMQU8iLAorICAgICAgICAgICAgICAgIC8qIkxCIiwgICJMQyIsICAiTEkiLCAgIkxLIiwgICJMUiIsICAiTFMiLCAgIkxUIiwgICJMVSIsICAgICAqLworICAgICAgICAgICAgICAgICJMQk4iLCAiTENBIiwgIkxJRSIsICJMS0EiLCAiTEJSIiwgIkxTTyIsICJMVFUiLCAiTFVYIiwKKyAgICAgICAgICAgICAgICAvKiJMViIsICAiTFkiLCAgIk1BIiwgICJNQyIsICAiTUQiLCAgIk1HIiwgICJNSCIsICAiTUsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTFZBIiwgIkxCWSIsICJNQVIiLCAiTUNPIiwgIk1EQSIsICJNREciLCAiTUhMIiwgIk1LRCIsCisgICAgICAgICAgICAgICAgLyoiTUwiLCAgIk1NIiwgICJNTiIsICAiTU8iLCAgIk1QIiwgICJNUSIsICAiTVIiLCAgIk1TIiwgICAgICovCisgICAgICAgICAgICAgICAgIk1MSSIsICJNTVIiLCAiTU5HIiwgIk1BQyIsICJNTlAiLCAiTVRRIiwgIk1SVCIsICJNU1IiLAorICAgICAgICAgICAgICAgIC8qIk1UIiwgICJNVSIsICAiTVYiLCAgIk1XIiwgICJNWCIsICAiTVkiLCAgIk1aIiwgICJOQSIsICAgICAqLworICAgICAgICAgICAgICAgICJNTFQiLCAiTVVTIiwgIk1EViIsICJNV0kiLCAiTUVYIiwgIk1ZUyIsICJNT1oiLCAiTkFNIiwKKyAgICAgICAgICAgICAgICAvKiJOQyIsICAiTkUiLCAgIk5GIiwgICJORyIsICAiTkkiLCAgIk5MIiwgICJOTyIsICAiTlAiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTkNMIiwgIk5FUiIsICJORksiLCAiTkdBIiwgIk5JQyIsICJOTEQiLCAiTk9SIiwgIk5QTCIsCisgICAgICAgICAgICAgICAgLyoiTlIiLCAgIk5VIiwgICJOWiIsICAiT00iLCAgIlBBIiwgICJQRSIsICAiUEYiLCAgIlBHIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5SVSIsICJOSVUiLCAiTlpMIiwgIk9NTiIsICJQQU4iLCAiUEVSIiwgIlBZRiIsICJQTkciLAorICAgICAgICAgICAgICAgIC8qIlBIIiwgICJQSyIsICAiUEwiLCAgIlBNIiwgICJQTiIsICAiUFIiLCAgIlBTIiwgICJQVCIsICAgICAqLworICAgICAgICAgICAgICAgICJQSEwiLCAiUEFLIiwgIlBPTCIsICJTUE0iLCAiUENOIiwgIlBSSSIsICJQU0UiLCAiUFJUIiwKKyAgICAgICAgICAgICAgICAvKiJQVyIsICAiUFkiLCAgIlFBIiwgICJSRSIsICAiUk8iLCAgIlJVIiwgICJSVyIsICAiU0EiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUExXIiwgIlBSWSIsICJRQVQiLCAiUkVVIiwgIlJPVSIsICJSVVMiLCAiUldBIiwgIlNBVSIsCisgICAgICAgICAgICAgICAgLyoiU0IiLCAgIlNDIiwgICJTRCIsICAiU0UiLCAgIlNHIiwgICJTSCIsICAiU0kiLCAgIlNKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNMQiIsICJTWUMiLCAiU0ROIiwgIlNXRSIsICJTR1AiLCAiU0hOIiwgIlNWTiIsICJTSk0iLAorICAgICAgICAgICAgICAgIC8qIlNLIiwgICJTTCIsICAiU00iLCAgIlNOIiwgICJTTyIsICAiU1IiLCAgIlNUIiwgICJTViIsICAgICAqLworICAgICAgICAgICAgICAgICJTVksiLCAiU0xFIiwgIlNNUiIsICJTRU4iLCAiU09NIiwgIlNVUiIsICJTVFAiLCAiU0xWIiwKKyAgICAgICAgICAgICAgICAvKiJTWSIsICAiU1oiLCAgIlRDIiwgICJURCIsICAiVEYiLCAgIlRHIiwgICJUSCIsICAiVEoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1lSIiwgIlNXWiIsICJUQ0EiLCAiVENEIiwgIkFURiIsICJUR08iLCAiVEhBIiwgIlRKSyIsCisgICAgICAgICAgICAgICAgLyoiVEsiLCAgIlRMIiwgICJUTSIsICAiVE4iLCAgIlRPIiwgICJUUiIsICAiVFQiLCAgIlRWIiwgICAgICovCisgICAgICAgICAgICAgICAgIlRLTCIsICJUTFMiLCAiVEtNIiwgIlRVTiIsICJUT04iLCAiVFVSIiwgIlRUTyIsICJUVVYiLAorICAgICAgICAgICAgICAgIC8qIlRXIiwgICJUWiIsICAiVUEiLCAgIlVHIiwgICJVTSIsICAiVVMiLCAgIlVZIiwgICJVWiIsICAgICAqLworICAgICAgICAgICAgICAgICJUV04iLCAiVFpBIiwgIlVLUiIsICJVR0EiLCAiVU1JIiwgIlVTQSIsICJVUlkiLCAiVVpCIiwKKyAgICAgICAgICAgICAgICAvKiJWQSIsICAiVkMiLCAgIlZFIiwgICJWRyIsICAiVkkiLCAgIlZOIiwgICJWVSIsICAiV0YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVkFUIiwgIlZDVCIsICJWRU4iLCAiVkdCIiwgIlZJUiIsICJWTk0iLCAiVlVUIiwgIldMRiIsCisgICAgICAgICAgICAgICAgLyoiV1MiLCAgIllFIiwgICJZVCIsICAiWVUiLCAgIlpBIiwgICJaTSIsICAiWlciLCAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgIldTTSIsICJZRU0iLCAiTVlUIiwgIllVRyIsICJaQUYiLCAiWk1CIiwgIlpXRSIsCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJGWCIsICAiUk8iLCAgIlRQIiwgICJaUiIsICAgKi8KKyAgICAgICAgICAgICAgICAiRlhYIiwgIlJPTSIsICJUTVAiLCAiWkFSIiwgICAgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX2NvdW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMgPSB0ZW1wQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfZGVwcmVjYXRlZENvdW50cmllcyA9IHRlbXBEZXByZWNhdGVkQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfcmVwbGFjZW1lbnRDb3VudHJpZXMgPSB0ZW1wUmVwbGFjZW1lbnRDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllcyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2NvdW50cmllczMgPSB0ZW1wQ291bnRyaWVzMzsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlQ291bnRyaWVzMyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW11bXSBfdmFyaWFudHNUb0tleXdvcmRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0VmFyaWFudHNUYWJsZSgpIHsKKyAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGlzIHRhYmxlIGxpc3RzIHBhaXJzIG9mIGxvY2FsZSBpZHMgZm9yIGNhbm9uaWNhbGl6YXRpb24uICBUaGUKKyAgICAgICAgICAgICAqIFRoZSBmaXJzdCBpdGVtIGlzIHRoZSBub3JtYWxpemVkIGlkLCB0aGUgc2Vjb25kIGl0ZW0gaXMgdGhlCisgICAgICAgICAgICAgKiBjYW5vbmljYWxpemVkIGlkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBTdHJpbmdbXVtdIHRlbXBWYXJpYW50c1RvS2V5d29yZHMgPSB7CisvLyAgICAgICAgICAgICAgeyBFTVBUWV9TVFJJTkcsICAgICAiZW5fVVNfUE9TSVgiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgIkMiLCAgICAgICAgICAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiBQT1NJWCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXJ0X0xPSkJBTiIsICAgICAiamJvIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9DWVJMIiwgICAgICJhel9DeXJsX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9MQVROIiwgICAgICJhel9MYXRuX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJjYV9FU19QUkVFVVJPIiwgICJjYV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiY2VsX0dBVUxJU0giLCAgICAiY2VsX19HQVVMSVNIIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV8xOTAxIiwgICAgICAgICJkZV9fMTkwMSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwNiIsICAgICAgICAiZGVfXzE5MDYiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlX19QSE9ORUJPT0siLCAgImRlIiwgImNvbGxhdGlvbiIsICJwaG9uZWJvb2siIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfQVRfUFJFRVVSTyIsICAiZGVfQVQiLCAiY3VycmVuY3kiLCAiQVRTIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0RFX1BSRUVVUk8iLCAgImRlX0RFIiwgImN1cnJlbmN5IiwgIkRFTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9MVV9QUkVFVVJPIiwgICJkZV9MVSIsICJjdXJyZW5jeSIsICJFVVIiIH0sCisgICAgICAgICAgICAgICAgeyAiZWxfR1JfUFJFRVVSTyIsICAiZWxfR1IiLCAiY3VycmVuY3kiLCAiR1JEIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0JPT05UIiwgICAgICAgImVuX19CT09OVCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fU0NPVVNFIiwgICAgICAiZW5fX1NDT1VTRSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fQkVfUFJFRVVSTyIsICAiZW5fQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0lFX1BSRUVVUk8iLCAgImVuX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19fVFJBRElUSU9OQUwiLCAiZXMiLCAiY29sbGF0aW9uIiwgInRyYWRpdGlvbmFsIiB9LAorICAgICAgICAgICAgICAgIHsgImVzX0VTX1BSRUVVUk8iLCAgImVzX0VTIiwgImN1cnJlbmN5IiwgIkVTUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJldV9FU19QUkVFVVJPIiwgICJldV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZmlfRklfUFJFRVVSTyIsICAiZmlfRkkiLCAiY3VycmVuY3kiLCAiRklNIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0JFX1BSRUVVUk8iLCAgImZyX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9GUl9QUkVFVVJPIiwgICJmcl9GUiIsICJjdXJyZW5jeSIsICJGUkYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfTFVfUFJFRVVSTyIsICAiZnJfTFUiLCAiY3VycmVuY3kiLCAiTFVGIiB9LAorICAgICAgICAgICAgICAgIHsgImdhX0lFX1BSRUVVUk8iLCAgImdhX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJnbF9FU19QUkVFVVJPIiwgICJnbF9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiaGlfX0RJUkVDVCIsICAgICAiaGkiLCAiY29sbGF0aW9uIiwgImRpcmVjdCIgfSwKKyAgICAgICAgICAgICAgICB7ICJpdF9JVF9QUkVFVVJPIiwgICJpdF9JVCIsICJjdXJyZW5jeSIsICJJVEwiIH0sCisgICAgICAgICAgICAgICAgeyAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlAiLCAiY2FsZW5kYXIiLCAiamFwYW5lc2UiIH0sCisvLyAgICAgICAgICAgICAgeyAibmJfTk9fTlkiLCAgICAgICAibm5fTk8iLCBudWxsLCBudWxsIH0sCisgICAgICAgICAgICAgICAgeyAibmxfQkVfUFJFRVVSTyIsICAibmxfQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgIm5sX05MX1BSRUVVUk8iLCAgIm5sX05MIiwgImN1cnJlbmN5IiwgIk5MRyIgfSwKKyAgICAgICAgICAgICAgICB7ICJwdF9QVF9QUkVFVVJPIiwgICJwdF9QVCIsICJjdXJyZW5jeSIsICJQVEUiIH0sCisgICAgICAgICAgICAgICAgeyAic2xfUk9aQUoiLCAgICAgICAic2xfX1JPWkFKIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9DWVJMIiwgICAgICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9MQVROIiwgICAgICJzcl9MYXRuX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9ZVV9DWVJJTExJQyIsICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiBMaW51eCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidXpfVVpfQ1lSTCIsICAgICAidXpfQ3lybF9VWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidXpfVVpfTEFUTiIsICAgICAidXpfTGF0bl9VWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfQ0hTIiwgICAgICAgICAiemhfSGFucyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfQ0hUIiwgICAgICAgICAiemhfSGFudCIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfR0FOIiwgICAgICAgICAiemhfX0dBTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfR1VPWVUiLCAgICAgICAiemgiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0hBS0tBIiwgICAgICAgInpoX19IQUtLQSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfTUlOIiwgICAgICAgICAiemhfX01JTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfTUlOX05BTiIsICAgICAiemhfX01JTk5BTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfV1VVIiwgICAgICAgICAiemhfX1dVVSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfWElBTkciLCAgICAgICAiemhfX1hJQU5HIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9ZVUUiLCAgICAgICAgICJ6aF9fWVVFIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USCIsICJjYWxlbmRhciIsICJidWRkaGlzdCIgfSwKKyAgICAgICAgICAgICAgICB7ICJ6aF9UV19TVFJPS0UiLCAgICJ6aF9UVyIsICJjb2xsYXRpb24iLCAic3Ryb2tlIiB9LAorICAgICAgICAgICAgICAgIHsgInpoX19QSU5ZSU4iLCAgICAgInpoIiwgImNvbGxhdGlvbiIsICJwaW55aW4iIH0KKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX3ZhcmlhbnRzVG9LZXl3b3JkcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF92YXJpYW50c1RvS2V5d29yZHMgPSB0ZW1wVmFyaWFudHNUb0tleXdvcmRzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdXNlZCBieSBzdGF0aWMgaW5pdGlhbGl6ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGxvY2FsZUlEOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIG9iamVjdCBmcm9tIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIEBwYXJhbSBsb2MgYSBKREsgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlKExvY2FsZSBsb2MpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jLnRvU3RyaW5nKCkpOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBVTG9jYWxlIG9iamVjdCBmb3IgYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogVGhlIFVMb2NhbGUgaXMgY2Fub25pY2FsaXplZC4KKyAgICAgKiBAcGFyYW0gbG9jIGEgSkRLIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBmb3JMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICBpZiAobG9jID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gKFVMb2NhbGUpQ0FDSEUuZ2V0KGxvYyk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBkZWZhdWx0VUxvY2FsZSAhPSBudWxsICYmIGxvYyA9PSBkZWZhdWx0VUxvY2FsZS5sb2NhbGUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRVTG9jYWxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVMb2NhbGUobG9jLnRvU3RyaW5nKCksIGxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBSRkMgMzA2NiBsb2NhbGUgSUQuIFRoZSBsb2NhbGUgSUQgY29uc2lzdHMKKyAgICAgKiBvZiBvcHRpb25hbCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCBhbmQgdmFyaWFudCBmaWVsZHMgaW4gdGhhdCBvcmRlciwgCisgICAgICogc2VwYXJhdGVkIGJ5IHVuZGVyc2NvcmVzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBrZXl3b3JkIGxpc3QuICBUaGUKKyAgICAgKiBzY3JpcHQsIGlmIHByZXNlbnQsIGlzIGZvdXIgY2hhcmFjdGVycyBsb25nLS0gdGhpcyBkaXN0aW5ndWlzaGVzIGl0CisgICAgICogZnJvbSBhIGNvdW50cnkgY29kZSwgd2hpY2ggaXMgdHdvIGNoYXJhY3RlcnMgbG9uZy4gIE90aGVyIGZpZWxkcworICAgICAqIGFyZSBkaXN0aW5ndWlzaGVkIGJ5IHBvc2l0aW9uIGFzIGluZGljYXRlZCBieSB0aGUgdW5kZXJzY29yZXMuICBUaGUKKyAgICAgKiBzdGFydCBvZiB0aGUga2V5d29yZCBsaXN0IGlzIGluZGljYXRlZCBieSAnQCcsIGFuZCBjb25zaXN0cyBvZiBvbmUKKyAgICAgKiBvciBtb3JlIGtleXdvcmQvdmFsdWUgcGFpcnMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbm9uaWNhbGl6ZSB0aGUgbG9jYWxlSUQuCisgICAgICogCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9jYWxlLCBlLmc6CisgICAgICogImVuX1VTIiwgInN5X0N5cmxfWVUiLCAiemhfX3BpbnlpbiIsICJlc19FU0BjdXJyZW5jeT1FVVIsY29sbGF0aW9uPXRyYWRpdGlvbmFsIgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkIG9mIFVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykgZm9yIAorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBqYXZhLnV0aWwuTG9jYWxlLgorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgdGhpcyhhLCBiLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBsb2NhbGVJRCBjb25zdHJ1Y3RlZCBmcm9tIHRoZSB0aHJlZSAnZmllbGRzJyBhLCBiLCBhbmQgYy4gIFRoZXNlCisgICAgICogZmllbGRzIGFyZSBjb25jYXRlbmF0ZWQgdXNpbmcgdW5kZXJzY29yZXMgdG8gZm9ybSBhIGxvY2FsZUlEIG9mCisgICAgICogdGhlIGZvcm0gYV9iX2MsIHdoaWNoIGlzIHRoZW4gaGFuZGxlZCBsaWtlIHRoZSBsb2NhbGVJRCBwYXNzZWQKKyAgICAgKiB0byA8Y29kZT5VTG9jYWxlKFN0cmluZyBsb2NhbGVJRCk8L2NvZGU+LiAgCisgICAgICoKKyAgICAgKiA8cD5KYXZhIGxvY2FsZSBzdHJpbmdzIGNvbnNpc3Rpbmcgb2YgbGFuZ3VhZ2UsIGNvdW50cnksIGFuZAorICAgICAqIHZhcmlhbnQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgZm9ybSwgc2luY2UgdGhlIGNvdW50cnkgY29kZQorICAgICAqIChiZWluZyBzaG9ydGVyIHRoYW4gZm91ciBsZXR0ZXJzIGxvbmcpIHdpbGwgbm90IGJlIGludGVycHJldGVkCisgICAgICogYXMgYSBzY3JpcHQgY29kZS4gIElmIGEgc2NyaXB0IGNvZGUgaXMgcHJlc2VudCwgdGhlIGZpbmFsCisgICAgICogYXJndW1lbnQgKCdjJykgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyB0aGUgY291bnRyeSBjb2RlLiAgSXQgaXMKKyAgICAgKiByZWNvbW1lbmRlZCB0aGF0IHRoaXMgY29uc3RydWN0b3Igb25seSBiZSB1c2VkIHRvIGVhc2UgcG9ydGluZywKKyAgICAgKiBhbmQgdGhhdCBjbGllbnRzIGluc3RlYWQgdXNlIHRoZSBzaW5nbGUtYXJndW1lbnQgY29uc3RydWN0b3IKKyAgICAgKiB3aGVuIGNvbnN0cnVjdGluZyBhIFVMb2NhbGUgZnJvbSBhIGxvY2FsZUlELgorICAgICAqIEBwYXJhbSBhIGZpcnN0IGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHBhcmFtIGIgc2Vjb25kIGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHBhcmFtIGMgdGhpcmQgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAc2VlICNVTG9jYWxlKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUoU3RyaW5nIGEsIFN0cmluZyBiLCBTdHJpbmcgYykgeworICAgICAgICBsb2NhbGVJRCA9IGdldE5hbWUobHNjdlRvSUQoYSwgYiwgYywgRU1QVFlfU1RSSU5HKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVUxvY2FsZSBmcm9tIHRoZSBpZCBieSBmaXJzdCBjYW5vbmljYWxpemluZyB0aGUgaWQuCisgICAgICogQHBhcmFtIG5vbkNhbm9uaWNhbElEIHRoZSBsb2NhbGUgaWQgdG8gY2Fub25pY2FsaXplCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIGNyZWF0ZWQgZnJvbSB0aGUgY2Fub25pY2FsIHZlcnNpb24gb2YgdGhlIElELgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBjcmVhdGVDYW5vbmljYWwoU3RyaW5nIG5vbkNhbm9uaWNhbElEKSB7CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShjYW5vbmljYWxpemUobm9uQ2Fub25pY2FsSUQpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBsc2N2VG9JRChTdHJpbmcgbGFuZywgU3RyaW5nIHNjcmlwdCwgU3RyaW5nIGNvdW50cnksIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgIAorICAgICAgICBpZiAobGFuZyAhPSBudWxsICYmIGxhbmcubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGxhbmcpOworICAgICAgICB9CisgICAgICAgIGlmIChzY3JpcHQgIT0gbnVsbCAmJiBzY3JpcHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzY3JpcHQpOworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudHJ5ICE9IG51bGwgJiYgY291bnRyeS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNvdW50cnkpOworICAgICAgICB9CisgICAgICAgIGlmICh2YXJpYW50ICE9IG51bGwgJiYgdmFyaWFudC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjb3VudHJ5ID09IG51bGwgfHwgY291bnRyeS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHZhcmlhbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHRoaXMgVUxvY2FsZSBvYmplY3QgdG8gYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogQHJldHVybiBhIEpESyBsb2NhbGUgdGhhdCBlaXRoZXIgZXhhY3RseSByZXByZXNlbnRzIHRoaXMgb2JqZWN0CisgICAgICogb3IgaXMgdGhlIGNsb3Nlc3QgYXBwcm94aW1hdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIHRvTG9jYWxlKCkgeworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSB0b0xvY2FsZShsb2NhbGVJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlIHRvTG9jYWxlKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpOworICAgICAgICByZXR1cm4gbmV3IExvY2FsZShuYW1lc1swXSwgbmFtZXNbMl0sIG5hbWVzWzNdKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogS2VlcCBvdXIgb3duIGRlZmF1bHQgVUxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlIGRlZmF1bHRVTG9jYWxlOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkZWZhdWx0IFVMb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBnZXREZWZhdWx0KCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGlmIChkZWZhdWx0VUxvY2FsZSA9PSBudWxsIHx8IGRlZmF1bHRVTG9jYWxlLnRvTG9jYWxlKCkgIT0gZGVmYXVsdExvY2FsZSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3IFVMb2NhbGUoZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFVMb2NhbGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0IFVMb2NhbGUuICBUaGlzIGFsc28gc2V0cyB0aGUgZGVmYXVsdCBMb2NhbGUuCisgICAgICogSWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdG8gdGhlCisgICAgICogdXNlci5sYW5ndWFnZSBwcm9wZXJ0eSwgYSBzZWN1cml0eSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24sCisgICAgICogYW5kIHRoZSBkZWZhdWx0IFVMb2NhbGUgd2lsbCByZW1haW4gdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgdGhlIG5ldyBkZWZhdWx0IGxvY2FsZQorICAgICAqIEB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24KKyAgICAgKiAgICAgICAgaWYgYSBzZWN1cml0eSBtYW5hZ2VyIGV4aXN0cyBhbmQgaXRzCisgICAgICogICAgICAgIDxjb2RlPmNoZWNrUGVybWlzc2lvbjwvY29kZT4gbWV0aG9kIGRvZXNuJ3QgYWxsb3cgdGhlIG9wZXJhdGlvbi4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0xvY2FsZTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgU2VjdXJpdHlNYW5hZ2VyI2NoZWNrUGVybWlzc2lvbgorICAgICAqIEBzZWUgamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIHNldERlZmF1bHQoVUxvY2FsZSBuZXdMb2NhbGUpeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXdMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3TG9jYWxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggTG9jYWxlLS0gaW4gYWN0dWFsaXR5LCBzaW5jZSBVTG9jYWxlIGlzCisgICAgICogaW1tdXRhYmxlLCB0aGVyZSBpcyBubyByZWFzb24gdG8gY2xvbmUgaXQsIHNvIHRoaXMgQVBJIHJldHVybnMgJ3RoaXMnLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2hDb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRC5oYXNoQ29kZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG90aGVyIG9iamVjdCBpcyBhbm90aGVyIFVMb2NhbGUgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGZ1bGwgbmFtZSwgb3IgaXMgYSBTdHJpbmcgbG9jYWxlSUQgdGhhdCBtYXRjaGVzIHRoZSBmdWxsIG5hbWUuCisgICAgICogTm90ZSB0aGF0IHNpbmNlIG5hbWVzIGFyZSBub3QgY2Fub25pY2FsaXplZCwgdHdvIFVMb2NhbGVzIHRoYXQKKyAgICAgKiBmdW5jdGlvbiBpZGVudGljYWxseSBtaWdodCBub3QgY29tcGFyZSBlcXVhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIExvY2FsZSBpcyBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQuZXF1YWxzKChTdHJpbmcpb2JqKTsgICAKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgVUxvY2FsZSkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlELmVxdWFscygoKFVMb2NhbGUpb2JqKS5sb2NhbGVJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHVsb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgICAgICAgICBVTG9jYWxlW10gdWwgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1bFtpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1bG9jYWxlcyA9IHVsOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVUxvY2FsZVtdKXVsb2NhbGVzLmNsb25lKCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFVMb2NhbGVbXSB1bG9jYWxlczsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuCisgICAgICogQ2FuIGJlIHVzZWQgdG8gY3JlYXRlIExvY2FsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRJU09Db3VudHJpZXMoKSB7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pX2NvdW50cmllcy5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCAyLWxldHRlciBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuCisgICAgICogQ2FuIGJlIHVzZWQgdG8gY3JlYXRlIExvY2FsZXMuCisgICAgICogW05PVEU6ICBJU08gNjM5IGlzIG5vdCBhIHN0YWJsZSBzdGFuZGFyZC0tIHNvbWUgbGFuZ3VhZ2VzJyBjb2RlcyBoYXZlIGNoYW5nZWQuCisgICAgICogVGhlIGxpc3QgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGluY2x1ZGVzIGJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBjb2RlcyBmb3IgdGhlCisgICAgICogbGFuZ3VhZ2VzIHdob3NlIGNvZGVzIGhhdmUgY2hhbmdlZC5dCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRJU09MYW5ndWFnZXMoKSB7CisgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKV9sYW5ndWFnZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGEgbG93ZXJjYXNlIElTTyA2MzkgY29kZS4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5TGFuZ3VhZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZ2V0TGFuZ3VhZ2UobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGUgbG9jYWxlIElELAorICAgICAqIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlKCk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzY3JpcHQgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVNjcmlwdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NyaXB0KCkgeworICAgICAgICByZXR1cm4gZ2V0U2NyaXB0KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzY3JpcHQgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVNjcmlwdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFNjcmlwdChTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvdW50cnkvcmVnaW9uIGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYW4gdXBwZXJjYXNlIElTTyAzMTY2IDItbGV0dGVyIGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUNvdW50cnkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgIHJldHVybiBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb3VudHJ5L3JlZ2lvbiBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAyLWxldHRlciBjb2RlLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRAorICAgICAqIEBzZWUgI2dldERpc3BsYXlDb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q291bnRyeShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0Q291bnRyeSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YXJpYW50IGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlWYXJpYW50CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWYXJpYW50KCkgeworICAgICAgICByZXR1cm4gZ2V0VmFyaWFudChsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFZhcmlhbnQoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFZhcmlhbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RmFsbGJhY2tTdHJpbmcoZ2V0TmFtZShsb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgdGhpcyBsb2NhbGUuICBJZiB0aGlzIGxvY2FsZSBpcyByb290LCByZXR1cm5zIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0RmFsbGJhY2soKSB7CisgICAgICAgIGlmIChsb2NhbGVJRC5sZW5ndGgoKSA9PSAwIHx8IGxvY2FsZUlELmNoYXJBdCgwKSA9PSAnQCcpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShnZXRGYWxsYmFja1N0cmluZyhsb2NhbGVJRCksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBnaXZlbiAoY2Fub25pY2FsKSBsb2NhbGUgaWQgbWludXMgdGhlIGxhc3QgcGFydCBiZWZvcmUgdGhlIHRhZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrU3RyaW5nKFN0cmluZyBmYWxsYmFjaykgeworICAgICAgICBpbnQgbGltaXQgPSBmYWxsYmFjay5pbmRleE9mKCdAJyk7CisgICAgICAgIGlmIChsaW1pdCA9PSAtMSkgeworICAgICAgICAgICAgbGltaXQgPSBmYWxsYmFjay5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RhcnQgPSBmYWxsYmFjay5sYXN0SW5kZXhPZignXycsIGxpbWl0KTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IC0xKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbGxiYWNrLnN1YnN0cmluZygwLCBzdGFydCkgKyBmYWxsYmFjay5zdWJzdHJpbmcobGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBiYXNlIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0QmFzZU5hbWUobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgYmFzZSBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRCYXNlTmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRCYXNlTmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8gCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7IC8vIGFsd2F5cyBub3JtYWxpemVkCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZUlEIGFzIGEgc3RyaW5nCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIga2V5d29yZHMgZm9yIHRoaXMgbG9jYWxlLiAgSWYgdGhlcmUgCisgICAgICogYXJlIG5vIGtleXdvcmRzLCByZXR1cm5zIG51bGwuCisgICAgICogQHJldHVybiBpdGVyYXRvciBvdmVyIGtleXdvcmRzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBnZXRLZXl3b3Jkcyhsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gIElmIHRoZXJlIAorICAgICAqIGFyZSBubyBrZXl3b3JkcywgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUsIG9yIG51bGwKKyAgICAgKiBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJdGVyYXRvciBnZXRLZXl3b3JkcyhTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhpcyBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUga2V5d29yZCwgb3IgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUpeworICAgICAgICByZXR1cm4gZ2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkTmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuIAorICAgICAqIFRoZSBsb2NhbGUgbmFtZSBkb2VzIG5vdCBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQgYXMgYSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZE5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNsYXNzIHRvIHBhcnNlIGFuZCBub3JtYWxpemUgbG9jYWxlIGlkcyAoaW5jbHVkaW5nIFBPU0lYIHN0eWxlKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIElEUGFyc2VyIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gaWQ7CisgICAgICAgIHByaXZhdGUgaW50IGluZGV4OworICAgICAgICBwcml2YXRlIGNoYXJbXSBidWZmZXI7CisgICAgICAgIHByaXZhdGUgaW50IGJsZW47CisgICAgICAgIC8vIHVtLCBkb24ndCBoYW5kbGUgUE9TSVggaWRzIHVubGVzcyB3ZSByZXF1ZXN0IGl0LiAgd2h5IG5vdD8gIHdlbGwuLi4gYmVjYXVzZS4KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGNhbm9uaWNhbGl6ZTsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhZENvdW50cnk7CisKKyAgICAgICAgLy8gdXNlZCB3aGVuIGNhbm9uaWNhbGl6aW5nCisgICAgICAgIE1hcCBrZXl3b3JkczsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzaW5nIGNvbnN0YW50cy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZV09SRF9TRVBBUkFUT1IgICAgID0gJ0AnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhZUEhFTiAgICAgICAgICAgICAgICA9ICctJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLRVlXT1JEX0FTU0lHTiAgICAgICAgPSAnPSc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09NTUEgICAgICAgICAgICAgICAgID0gJywnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElURU1fU0VQQVJBVE9SICAgICAgICA9ICc7JzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET1QgICAgICAgICAgICAgICAgICAgPSAnLic7CisKKyAgICAgICAgcHJpdmF0ZSBJRFBhcnNlcihTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgICAgIHRoaXMobG9jYWxlSUQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSURQYXJzZXIoU3RyaW5nIGxvY2FsZUlELCBib29sZWFuIGNhbm9uaWNhbGl6ZSkgeworICAgICAgICAgICAgaWQgPSBsb2NhbGVJRC50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbaWQubGVuZ3RoICsgNV07CisgICAgICAgICAgICBibGVuID0gMDsKKyAgICAgICAgICAgIHRoaXMuY2Fub25pY2FsaXplID0gY2Fub25pY2FsaXplOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgaW5kZXggPSBibGVuID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3Igd29ya2luZyBvbiB0ZXh0IGluIHRoZSBidWZmZXIKKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIGMgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoY2hhciBjKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltibGVuXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPiA1MTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGlzIHNlcmlvdXNseSB3cm9uZywgbGV0IHRoaXMgZ28KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhcltdIG5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoICogMl07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIG5idWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICAgICAgICAgIG5idWZmZXJbYmxlbl0gPSBjOworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5idWZmZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2JsZW47CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgYWRkU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHRleHQgaW4gdGhlIGJ1ZmZlciBmcm9tIHN0YXJ0IHRvIGJsZW4gYXMgYSBTdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmcoaW50IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gYmxlbikgeworICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWZmZXIsIHN0YXJ0LCBibGVuLXN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHRvIHBvcywgdGhlbiBhcHBlbmQgdGhlIHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXQoaW50IHBvcywgU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHRoaXMuYmxlbiA9IHBvczsgLy8gbm8gc2FmZXR5CisgICAgICAgICAgICBhcHBlbmQocyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIHRoZSBzdHJpbmcgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKHMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3IgcGFyc2luZyB0ZXh0IG91dCBvZiB0aGUgaWQKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHRvIGluZGljYXRlIG5vIG1vcmUgdGV4dCBpcyBhdmFpbGFibGUgaW4gdGhlIGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET05FID0gJ1x1ZmZmZic7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdCBpbmRleCBpbiB0aGUgaWQsIGFuZCBhZHZhbmNlIGluZGV4LiAgVGhlIHJldHVybmVkIGNoYXJhY3RlcgorICAgICAgICAgKiBpcyBET05FIGlmIGluZGV4IHdhcyBhdCB0aGUgbGltaXQgb2YgdGhlIGJ1ZmZlci4gIFRoZSBpbmRleCBpcyBhZHZhbmNlZCByZWdhcmRsZXNzCisgICAgICAgICAqIHNvIHRoYXQgZGVjcmVtZW50aW5nIHRoZSBpbmRleCB3aWxsIGFsd2F5cyAndW5nZXQnIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgY2hhciBuZXh0KCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGlkLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gaWRbaW5kZXgrK107CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCB1bnRpbCB0aGUgbmV4dCB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvciwgYW5kIGxlYXZlIGl0IHRoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgd2hpbGUgKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggaW4gdGhlIGlkIGlzIGEgdGVybWluYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBhdFRlcm1pbmF0b3IoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gaWQubGVuZ3RoIHx8IGlzVGVybWluYXRvcihpZFtpbmRleF0pOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdGVybWluYXRvciAoa2V5d29yZCBzZXBhcmF0b3IsIGRvdCwgb3IgRE9ORSkuCisgICAgICAgICAqIERvdCBpcyBhIHRlcm1pbmF0b3IgYmVjYXVzZSBvZiB0aGUgUE9TSVggZm9ybSwgd2hlcmUgZG90IHByZWNlZGVzIHRoZSBjb2RlcGFnZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3IoY2hhciBjKSB7CisgICAgICAgICAgICAvLyBhbHdheXMgdGVybWluYXRlIGF0IERPVCwgZXZlbiBpZiBub3QgaGFuZGxpbmcgUE9TSVguICBJdCdzIGFuIGVycm9yLi4uCisgICAgICAgICAgICByZXR1cm4gYyA9PSBLRVlXT1JEX1NFUEFSQVRPUiB8fCBjID09IERPTkUgfHwgYyA9PSBET1Q7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gS0VZV09SRF9TRVBBUkFUT1IgfHwgYyA9PSBVTkRFUlNDT1JFIHx8IGMgPT0gSFlQSEVOIHx8IAorICAgICAgICAgICAgICAgIGMgPT0gRE9ORSB8fCBjID09IERPVDsgICAKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgaGFzIGFuIGV4cGVyaW1lbnRhbCBvciBwcml2YXRlIGxhbmd1YWdlIAorICAgICAgICAgKiBwcmVmaXgsIHRoZSBwYXR0ZXJuICdbaXhJWF1bLV9dLicgc2hvd3MgdGhlIHN5bnRheCBjaGVja2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpIHsKKyAgICAgICAgICAgIGlmIChpZC5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gaWRbMV07CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gSFlQSEVOIHx8IGMgPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICBjID0gaWRbMF07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjID09ICd4JyB8fCBjID09ICdYJyB8fCBjID09ICdpJyB8fCBjID09ICdJJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIGEgdmFsdWUgc2VwYXJhdG9yIG9jY3VycyBhdCBvciBhZnRlciBpbmRleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYXZlS2V5d29yZEFzc2lnbigpIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBzYWZlIHRvIHN0YXJ0IGZyb20gaW5kZXgKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBpbmRleDsgaSA8IGlkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkW2ldID09IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgY29kZSBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgYXQgMCB3aGVuIHRoaXMgaXMgY2FsbGVkLiAgSW5kZXggaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IgaWQgCisgICAgICAgICAqIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBsYW5ndWFnZSBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZUxhbmd1YWdlKCkgeworICAgICAgICAgICAgaWYgKGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShpZFswXSkpOworICAgICAgICAgICAgICAgIGFwcGVuZChIWVBIRU4pOworICAgICAgICAgICAgICAgIGluZGV4ID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgaWYgKGJsZW4gPT0gMykgeworICAgICAgICAgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworCisgICAgICAgICAgICAgICAgLyogY29udmVydCAzIGNoYXJhY3RlciBjb2RlIHRvIDIgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2libGUgKkNXQiovCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBnZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfbGFuZ3VhZ2VzMywgbGFuZyk7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNldCgwLCBfbGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMzLCBsYW5nKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQoMCwgX29ic29sZXRlTGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UuICBJbmRleCBtdXN0IGJlIGF0IDAgd2hlbiB0aGlzIGlzIGNhbGxlZC4gIEluZGV4CisgICAgICAgICAqIGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwTGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICBpZiAoaGF2ZUV4cGVyaW1lbnRhbExhbmd1YWdlUHJlZml4KCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBzY3JpcHQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgc2NyaXB0IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UuCisgICAgICAgICAqIElmIHRoZSBpdGVtIGF0IHRoaXMgcG9zaXRpb24gaXMgbm90IGEgc2NyaXB0IChpcyBub3QgZm91ciBjaGFyYWN0ZXJzCisgICAgICAgICAqIGxvbmcpIGxlYXZlIGluZGV4IGFuZCBidWZmZXIgdW5jaGFuZ2VkLiAgT3RoZXJ3aXNlIGluZGV4IGlzIGxlZnQgYXQKKyAgICAgICAgICogYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBzY3JpcHQgY29kZQorICAgICAgICAgKiBpbiB0aGUgYnVmZmVyICh0aGlzIG1heSBiZSBlcXVhbCB0byB0aGUgYnVmZmVyIGxlbmd0aCwgaWYgdGhlcmUgaXMgbm8KKyAgICAgICAgICogc2NyaXB0KS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlU2NyaXB0KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgIGludCBvbGRJbmRleCA9IGluZGV4OyAvLyBzYXZlIG9yaWdpbmFsIGluZGV4CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsgLy8gZ2V0IGJlZm9yZSBhcHBlbmQgaHlwaGVuLCBpZiB3ZSB0cnVuY2F0ZSBldmVyeXRoaW5nIGlzIHVuZG9uZQorICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmxlbiA9PSBvbGRCbGVuKSB7IC8vIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgLyogSWYgaXQncyBub3QgZXhhY3RseSA0IGNoYXJhY3RlcnMgbG9uZywgdGhlbiBpdCdzIG5vdCBhIHNjcmlwdC4gKi8KKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgICAgICBibGVuID0gb2xkQmxlbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvbGRCbGVuKys7IC8vIGluZGV4IHBhc3QgaHlwaGVuLCBmb3IgY2xpZW50cyB3aG8gd2FudCB0byBleHRyYWN0IGp1c3QgdGhlIHNjcmlwdAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGJsZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHNjcmlwdC4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UgYW5kIElEU2VwYXJhdG9yLgorICAgICAgICAgKiBJZiB0aGUgaXRlbSBhdCB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIHNjcmlwdCAoaXMgbm90IGZvdXIgY2hhcmFjdGVycworICAgICAgICAgKiBsb25nKSBsZWF2ZSBpbmRleC4gIE90aGVyd2lzZSBpbmRleCBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvcgorICAgICAgICAgKiBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcFNjcmlwdCgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeSwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCBjb3VudHJ5IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4gIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGNvdW50cnkgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VDb3VudHJ5KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisgICAgICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgICAgIHdoaWxlICghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAob2xkQmxlbiA9PSBibGVuKSB7IC8vIGZpcnN0LCBhZGQgaHlwaGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYWRDb3VudHJ5ID0gdHJ1ZTsgLy8gd2UgaGF2ZSBhIGNvdW50cnksIGxldCB2YXJpYW50IHBhcnNpbmcga25vdworICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47IC8vIGluY3JlbWVudCBwYXN0IGh5cGhlbgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgaWYgKGJsZW4gLSBvbGRCbGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKworICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IDMgY2hhcmFjdGVyIGNvZGUgdG8gMiBjaGFyYWN0ZXIgY29kZSBpZiBwb3NzaWJsZSAqQ1dCKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzMywgZ2V0U3RyaW5nKG9sZEJsZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQob2xkQmxlbiwgX2NvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMzLCBnZXRTdHJpbmcob2xkQmxlbikpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KG9sZEJsZW4sIF9vYnNvbGV0ZUNvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gYmxlbjsKKyAgICAgICAgfSAgICAgICAgIAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeS4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwQ291bnRyeSgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHZhcmlhbnQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgdmFyaWFudCBpbiBidWZmZXIuICBUaGlzIGlnbm9yZXMKKyAgICAgICAgICogdGhlIGNvZGVwYWdlIGluZm9ybWF0aW9uIGZyb20gUE9TSVggaWRzLiAgSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgY291bnRyeQorICAgICAgICAgKiBvciBzY3JpcHQuICBJbmRleCBpcyBsZWZ0IGF0IHRoZSBrZXl3b3JkIHNlcGFyYXRvciBvciBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgUmV0dXJuCisgICAgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdmFyaWFudCBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEluIHN0YW5kYXJkIGZvcm0sIHdlIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXM6CisgICAgICAgICAqIGxsX19WVlZWCisgICAgICAgICAqIGxsX0NDX1ZWVlYKKyAgICAgICAgICogbGxfU3Nzc19WVlZWCisgICAgICAgICAqIGxsX1Nzc3NfQ0NfVlZWVgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGFsc28gaGFuZGxlcyBQT1NJWCBpZHMsIHdoaWNoIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXMgKHBwcHAgaXMgY29kZSBwYWdlIGlkKToKKyAgICAgICAgICogbGxfQ0MucHBwcCAgICAgICAgICAtLT4gbGxfQ0MKKyAgICAgICAgICogbGxfQ0MucHBwcEBWVlZWICAgICAtLT4gbGxfQ0NfVlZWVgorICAgICAgICAgKiBsbF9DQ0BWVlZWICAgICAgICAgIC0tPiBsbF9DQ19WVlZWCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGlkZW50aWZ5IHRoaXMgdXNlIG9mICdAJyBpbiBQT1NJWCBpZHMgYnkgbG9va2luZyBmb3IgYW4gJz0nIGZvbGxvd2luZworICAgICAgICAgKiB0aGUgJ0AnLiAgSWYgdGhlcmUgaXMgb25lLCB3ZSBjb25zaWRlciAnQCcgdG8gc3RhcnQgYSBrZXl3b3JkIGxpc3QsIGluc3RlYWQgb2YKKyAgICAgICAgICogYmVpbmcgcGFydCBvZiBhIFBPU0lYIGlkLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiAgc2luY2UgaXQgd2FzIGRlY2lkZWQgdGhhdCB3ZSB3YW50IGFuIG9wdGlvbiB0byBub3QgaGFuZGxlIFBPU0lYIGlkcywgdGhpcworICAgICAgICAgKiBiZWNvbWVzIGEgYml0IG1vcmUgY29tcGxleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlVmFyaWFudCgpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKworICAgICAgICAgICAgYm9vbGVhbiBzdGFydCA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIG5lZWRTZXBhcmF0b3IgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBza2lwcGluZyA9IGZhbHNlOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgd2hpbGUgKChjID0gbmV4dCgpKSAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9UKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gS0VZV09SRF9TRVBBUkFUT1IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVLZXl3b3JkQXNzaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIG5lZWRTZXBhcmF0b3IgPSB0cnVlOyAvLyBhZGQgYW5vdGhlciB1bmRlcnNjb3JlIGlmIHdlIGhhdmUgbW9yZSB0ZXh0CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNraXBwaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY09sZEJsZW4gPSBibGVuID09IG9sZEJsZW47IC8vIG5lZWQgdG8gc2tpcCBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jT2xkQmxlbiAmJiAhaGFkQ291bnRyeSkgeyAvLyBubyBjb3VudHJ5LCB3ZSdsbCBuZWVkIHR3bworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsgLy8gZm9yIHN1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY09sZEJsZW4pIHsgLy8gb25seSBmb3IgdGhlIGZpcnN0IHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjID0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBIWVBIRU4gfHwgYyA9PSBDT01NQSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFVOREVSU0NPUkU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gbmVlZCBmb3Igc2tpcHZhcmlhbnQsIHRvIGdldCB0aGUga2V5d29yZHMgd2UnbGwganVzdCBzY2FuIGRpcmVjdGx5IGZvciAKKyAgICAgICAgLy8gdGhlIGtleXdvcmQgc2VwYXJhdG9yCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VMYW5ndWFnZSgpKTsKKyAgICAgICAgfQorICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHNjcmlwdCBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NyaXB0KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogcmV0dXJuIHRoZSBub3JtYWxpemVkIGNvdW50cnkgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlQ291bnRyeSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHZhcmlhbnQgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhbnQoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICBza2lwQ291bnRyeSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgYW5kIHZhcmlhbnQgYXMgc2VwYXJhdGUgc3RyaW5ncy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRMYW5ndWFnZVNjcmlwdENvdW50cnlWYXJpYW50KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZUxhbmd1YWdlKCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VDb3VudHJ5KCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRCYXNlTmFtZShTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZU5hbWUgPSBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhcnNlQmFzZU5hbWUoKSB7CisgICAgICAgICAgICBpZiAoYmFzZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldCgwLCBiYXNlTmFtZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgIHBhcnNlU2NyaXB0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgcGFyc2VWYXJpYW50KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCB1bndhbnRlZCB0cmFpbGluZyB1bmRlcnNjb3JlIGFmdGVyIGNvdW50cnkgaWYgdGhlcmUgd2FzIG5vIHZhcmlhbnQKKyAgICAgICAgICAgICAgICBpZiAoYmxlbiA+IDEgJiYgYnVmZmVyW2JsZW4tMV0gPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICAtLWJsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgYmFzZSBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgYmFzZQorICAgICAgICAgKiBmb3JtIGRvZXMgbm90IGluY2x1ZGUga2V5d29yZHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgaWYgKGJhc2VOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgZnVsbCBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgZnVsbAorICAgICAgICAgKiBmb3JtIGluY2x1ZGVzIGtleXdvcmRzIGlmIHRoZXkgYXJlIHByZXNlbnQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICBwYXJzZUtleXdvcmRzKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLy8ga2V5d29yZCB1dGlsaXRpZXMKKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgd2UgaGF2ZSBrZXl3b3JkcywgYWR2YW5jZSBpbmRleCB0byB0aGUgc3RhcnQgb2YgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gdHJ1ZSwgCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc2V0VG9LZXl3b3JkU3RhcnQoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXg7IGkgPCBpZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZFtpXSA9PSBLRVlXT1JEX1NFUEFSQVRPUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gKytpOyBqIDwgaWQubGVuZ3RoOyArK2opIHsgLy8gaW5jcmVtZW50IGkgcGFzdCBzZXBhcmF0b3IgZm9yIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZFtqXSA9PSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBpZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRG9uZU9yS2V5d29yZEFzc2lnbihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IERPTkUgfHwgYyA9PSBLRVlXT1JEX0FTU0lHTjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNEb25lT3JJdGVtU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gRE9ORSB8fCBjID09IElURU1fU0VQQVJBVE9SOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0S2V5d29yZCgpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGluZGV4OworICAgICAgICAgICAgd2hpbGUgKCFpc0RvbmVPcktleXdvcmRBc3NpZ24obmV4dCgpKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGlkLCBzdGFydCwgaW5kZXgtc3RhcnQpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmRleDsKKyAgICAgICAgICAgIHdoaWxlICghaXNEb25lT3JJdGVtU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhpZCwgc3RhcnQsIGluZGV4LXN0YXJ0KS50cmltKCk7IC8vIGxlYXZlIGNhc2UgYWxvbmUKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBnZXRLZXlDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjb21wID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChTdHJpbmcpbGhzKS5jb21wYXJlVG8oKFN0cmluZylyaHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBjb21wOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBtYXAgb2YgdGhlIGtleXdvcmRzIGFuZCB2YWx1ZXMsIG9yIG51bGwgaWYgdGhlcmUgYXJlIG5vbmUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIE1hcCBnZXRLZXl3b3JkTWFwKCkgeworICAgICAgICAgICAgaWYgKGtleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBUcmVlTWFwIG0gPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChzZXRUb0tleXdvcmRTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRyaW0gc3BhY2VzIGFuZCBjb252ZXJ0IHRvIGxvd2VyIGNhc2UsIGJvdGgga2V5d29yZHMgYW5kIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGdldEtleXdvcmQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gbmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG5ldyBUcmVlTWFwKGdldEtleUNvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG0uY29udGFpbnNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleSAnIiArIGtleSArICInIGFscmVhZHkgaGFzIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmV4dCgpID09IElURU1fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAga2V5d29yZHMgPSBtICE9IG51bGwgPyBtIDogQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ga2V5d29yZHM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2UgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gc3RhcnQgb2YgdGhlIHN0cmluZyBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VLZXl3b3JkcygpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKyAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgaWYgKCFtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGZpcnN0ID8gS0VZV09SRF9TRVBBUkFUT1IgOiBJVEVNX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChTdHJpbmcpZS5nZXRLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChLRVlXT1JEX0FTU0lHTik7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoU3RyaW5nKWUuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChibGVuICE9IG9sZEJsZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMsIG9yIG51bGwgaWYgd2UgaGF2ZSBhbiBlbXB0eSBtYXAuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciBudWxsIGlmIHRoZSBrZXl3b3JkIGlzIG5vdAorICAgICAgICAgKiBwcmVzZW50LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiAoU3RyaW5nKW0uZ2V0KGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGtleXdvcmQgdmFsdWUgb25seSBpZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nIGVsc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBkZWZhdWx0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBzZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUsIHZhbHVlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWVkIGtleXdvcmQsIG9yIHVuc2V0IGl0IGlmIHZhbHVlIGlzIG51bGwuICBJZgorICAgICAgICAgKiBrZXl3b3JkTmFtZSBpdHNlbGYgaXMgbnVsbCwgdW5zZXQgYWxsIGtleXdvcmRzLiAgSWYga2V5d29yZE5hbWUgaXMgbm90IG51bGwsCisgICAgICAgICAqIHZhbHVlIG11c3Qgbm90IGJlIG51bGwuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIHNldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSwgdmFsdWUsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciB1bnNldCBpdCBpZiB2YWx1ZSBpcyBudWxsLiAgSWYKKyAgICAgICAgICoga2V5d29yZE5hbWUgaXRzZWxmIGlzIG51bGwsIHVuc2V0IGFsbCBrZXl3b3Jkcy4gIElmIGtleXdvcmROYW1lIGlzIG5vdCBudWxsLAorICAgICAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsLiAgSWYgcmVzZXQgaXMgdHJ1ZSwgaWdub3JlIGFueSBwcmV2aW91cyB2YWx1ZSBmb3IgCisgICAgICAgICAqIHRoZSBrZXl3b3JkLCBvdGhlcndpc2UgZG8gbm90IGNoYW5nZSB0aGUga2V5d29yZCAoaW5jbHVkaW5nIHJlbW92YWwgb2YKKyAgICAgICAgICogb25lIG9yIGFsbCBrZXl3b3JkcykuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlLCBib29sZWFuIHJlc2V0KSB7CisgICAgICAgICAgICBpZiAoa2V5d29yZE5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChyZXNldCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwLCBpZ25vcmUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBDb2xsZWN0aW9ucy5FTVBUWV9NQVA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBrZXl3b3JkTmFtZSA9IGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkTmFtZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleXdvcmQgbXVzdCBub3QgYmUgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeyAvLyBpdCBpcyBFTVBUWV9NQVAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIG5ldyBtYXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gbmV3IFRyZWVNYXAoZ2V0S2V5Q29tcGFyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLnB1dChrZXl3b3JkTmFtZSwgdmFsdWUudHJpbSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXNldCB8fCAhbS5jb250YWluc0tleShrZXl3b3JkTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5wdXQoa2V5d29yZE5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5yZW1vdmUoa2V5d29yZE5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIGxpbmVhciBzZWFyY2ggb2YgdGhlIHN0cmluZyBhcnJheS4gdGhlIGFycmF5cyBhcmUgdW5mb3J0dW5hdGVseSBvcmRlcmVkIGJ5IHRoZQorICAgICAqIHR3by1sZXR0ZXIgdGFyZ2V0IGNvZGUsIG5vdCB0aGUgdGhyZWUtbGV0dGVyIHNlYXJjaCBjb2RlLCB3aGljaCBzZWVtcyBiYWNrd2FyZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJbmRleChTdHJpbmdbXSBhcnJheSwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKGFycmF5W2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIElELiAgVGhpcyBpcyB1c2VkIHRvIGNvbnZlcnQgUE9TSVgKKyAgICAgKiBhbmQgb3RoZXIgZ3JhbmRmYXRoZXJlZCBJRHMgdG8gc3RhbmRhcmQgSUNVIGZvcm0uCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsaXplKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCwgdHJ1ZSk7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZSA9IHBhcnNlci5nZXRCYXNlTmFtZSgpOworICAgICAgICBib29sZWFuIGZvdW5kVmFyaWFudCA9IGZhbHNlOworICAgICAgCisgICAgICAgIC8vIGZvcm1lcmx5LCB3ZSBhbHdheXMgc2V0IHRvIGVuX1VTX1BPU0lYIGlmIHRoZSBiYXNlbmFtZSB3YXMgZW1wdHksIGJ1dAorICAgICAgICAvLyBub3cgd2UgcmVxdWlyZSB0aGF0IHRoZSBlbnRpcmUgaWQgYmUgZW1wdHksIHNvIHRoYXQgIkBmb289YmFyIgorICAgICAgICAvLyB3aWxsIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQuCisgICAgICAgIC8vIHtkbGZ9IEknZCByYXRoZXIga2VlcCAiIiB1bmNoYW5nZWQuCisgICAgICAgIGlmIChsb2NhbGVJRC5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisvLyAgICAgICAgICAgICAgcmV0dXJuICJlbl9VU19QT1NJWCI7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBoYXZlIGFuIElEIGluIHRoZSBmb3JtIHh4X1l5eXlfWlpfS0tLS0sKKworICAgICAgICBpbml0VmFyaWFudHNUYWJsZSgpOworCisgICAgICAgIC8qIFNlZSBpZiB0aGlzIGlzIGFuIGFscmVhZHkga25vd24gbG9jYWxlICovCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgX3ZhcmlhbnRzVG9LZXl3b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHNbaV1bMF0uZXF1YWxzKGJhc2VOYW1lKSkgeworICAgICAgICAgICAgICAgIGZvdW5kVmFyaWFudCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB2YWxzID0gX3ZhcmlhbnRzVG9LZXl3b3Jkc1tpXTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuc2V0QmFzZU5hbWUodmFsc1sxXSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSh2YWxzWzJdLCB2YWxzWzNdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBjb252ZXJ0IHRoZSBFdXJvIHZhcmlhbnQgdG8gYXBwcm9wcmlhdGUgSUQgKi8KKyAgICAgICAgaWYgKCFmb3VuZFZhcmlhbnQpIHsKKyAgICAgICAgICAgIGludCBpZHggPSBiYXNlTmFtZS5pbmRleE9mKCJfRVVSTyIpOworICAgICAgICAgICAgaWYgKGlkeCA+IC0xKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGJhc2VOYW1lLnN1YnN0cmluZygwLCBpZHgpKTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSgiY3VycmVuY3kiLCAiRVVSIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0b3RhbCBtb25kbyBoYWNrIGZvciBOb3J3ZWdpYW4sIGZvcnR1bmF0ZWx5IHRoZSBtYWluIE5ZIGNhc2UgaXMgaGFuZGxlZCBlYXJsaWVyICovCisgICAgICAgIGlmICghZm91bmRWYXJpYW50KSB7CisgICAgICAgICAgICBpZiAocGFyc2VyLmdldExhbmd1YWdlKCkuZXF1YWxzKCJuYiIpICYmIHBhcnNlci5nZXRWYXJpYW50KCkuZXF1YWxzKCJOWSIpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGxzY3ZUb0lEKCJubiIsIHBhcnNlci5nZXRTY3JpcHQoKSwgcGFyc2VyLmdldENvdW50cnkoKSwgbnVsbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEga2V5d29yZCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZS4gIElmIGtleXdvcmQgaXMgbnVsbCwgdGhpcyByZW1vdmVzIGFsbCBrZXl3b3JkcyBmcm9tIHRoZSBsb2NhbGUgaWQuCisgICAgICogT3RoZXJ3aXNlLCBpZiB0aGUgdmFsdWUgaXMgbnVsbCwgdGhpcyByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGZyb20gdGhlCisgICAgICogbG9jYWxlIGlkLiAgT3RoZXJ3aXNlLCB0aGlzIGFkZHMvcmVwbGFjZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgaW4gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBUaGUga2V5d29yZCBhbmQgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYWRkL3JlbW92ZSwgb3IgbnVsbCB0byByZW1vdmUgYWxsIGtleXdvcmRzLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkL3NldCwgb3IgbnVsbCB0byByZW1vdmUgdGhpcyBwYXJ0aWN1bGFyIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoc2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkLCB2YWx1ZSksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBsb2NhbGUgaWQsIGEga2V5d29yZCwgYW5kIGEgdmFsdWUsIHJldHVybiBhIG5ldyBsb2NhbGUgaWQgd2l0aCBhbiB1cGRhdGVkCisgICAgICoga2V5d29yZCBhbmQgdmFsdWUuICBJZiBrZXl3b3JkIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyBhbGwga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIGlkLgorICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHZhbHVlIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBmcm9tIHRoZQorICAgICAqIGxvY2FsZSBpZC4gIE90aGVyd2lzZSwgdGhpcyBhZGRzL3JlcGxhY2VzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBsb2NhbGUgaWQuCisgICAgICogVGhlIGtleXdvcmQgYW5kIHZhbHVlIG11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkIHRvIG1vZGlmeQorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZC9yZW1vdmUsIG9yIG51bGwgdG8gcmVtb3ZlIGFsbCBrZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGFkZC9zZXQsIG9yIG51bGwgdG8gcmVtb3ZlIHRoaXMgcGFydGljdWxhciBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgbG9jYWxlIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBwYXJzZXIuc2V0S2V5d29yZFZhbHVlKGtleXdvcmQsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UuICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgbGFuZ3VhZ2UsIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGEgbG93ZXJjYXNlIElTTyA2MzktMi9UIGxhbmd1YWdlIGNvZGUuCisgICAgICogVGhlIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlcyBjYW4gYmUgZm91bmQgb24tbGluZSBhdAorICAgICAqICAgPGEgaHJlZj0iZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0Ij48Y29kZT5mdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQ8L2NvZGU+PC9hPgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0xhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBsYW5ndWFnZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBsYW5ndWFnZSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYSBsb3dlcmNhc2UgSVNPIDYzOS0yL1QgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBUaGUgSVNPIDYzOS0yIGxhbmd1YWdlIGNvZGVzIGNhbiBiZSBmb3VuZCBvbi1saW5lIGF0CisgICAgICogICA8YSBocmVmPSJmdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQiPjxjb2RlPmZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dDwvY29kZT48L2E+CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2xhbmd1YWdlcywgbGFuZ3VhZ2UpOworICAgICAgICBpZihvZmZzZXQ+PTApeworICAgICAgICAgICAgcmV0dXJuIF9sYW5ndWFnZXMzW29mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzLCBsYW5ndWFnZSk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlTGFuZ3VhZ2VzM1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGNvdW50cnkvcmVnaW9uLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGNvdW50cnksIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAzLWxldHRlciBjb3VudHJ5IGNvZGUuCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY291bnRyeSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJU08zQ291bnRyeSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0NvdW50cnkobG9jYWxlSUQpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBjb3VudHJ5L3JlZ2lvbi4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBjb3VudHJ5LCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMy1sZXR0ZXIgY291bnRyeSBjb2RlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGNvdW50cnkgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzLCBjb3VudHJ5KTsKKyAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgIHJldHVybiBfY291bnRyaWVzM1tvZmZzZXRdOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMsIGNvdW50cnkpOworICAgICAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlQ291bnRyaWVzM1tvZmZzZXRdOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8vIGRpc3BsYXkgbmFtZXMKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5TGFuZ3VhZ2UoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgbGFuZ3VhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlMYW5ndWFnZSh0b0xvY2FsZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBsYW5ndWFnZSB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUxhbmd1YWdlKGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfSAgICAKKworICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVudENvdW50cnlJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9kZXByZWNhdGVkQ291bnRyaWVzLCBvbGRJRCk7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIF9yZXBsYWNlbWVudENvdW50cmllc1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRJRDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyBnZXRDdXJyZW50TGFuZ3VhZ2VJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMsIG9sZElEKTsKKyAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gX3JlcGxhY2VtZW50TGFuZ3VhZ2VzW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9sZElEOyAgICAgICAgCisgICAgfQorICAgICAgICAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHNjcmlwdCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Ugc2NyaXB0IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeSgpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5Q291bnRyeSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFVMb2NhbGUgZGlzcGxheUxvY2FsZSl7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkodG9Mb2NhbGUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudCgpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKCkuZ2V0RGlzcGxheVZhcmlhbnQoKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5VmFyaWFudChkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlWYXJpYW50KHRvTG9jYWxlKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5VmFyaWFudChkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4ga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBrZXl3b3JkIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGtleXdvcmQgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSBuYW1lIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkudG9Mb2NhbGUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUgbmFtZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIElEIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSB3aG9zZSBuYW1lIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIHRvTG9jYWxlKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBJRCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgd2hvc2UgbmFtZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgLy8gbGFuZworICAgICAgICAvLyBsYW5nIChzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGtleXdvcmQ9dmFsdWUsIC4uLikKKyAgICAgICAgLy8gc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBrZXl3b3JkPXZhbHVlLCAuLi4KKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCk7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gcGFyc2VyLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSB0b0xvY2FsZShsb2NhbGVJRCk7CisKKyAgICAgICAgYm9vbGVhbiBoYXZlTGFuZ3VhZ2UgPSBuYW1lc1swXS5sZW5ndGgoKSA+IDA7CisgICAgICAgIGJvb2xlYW4gb3BlblBhcmVuID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IG5hbWUgPSBsb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGRpc3BsYXlMb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjogbmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShkaXNwbGF5TG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiBuYW1lID0gbG9jYWxlLmdldERpc3BsYXlWYXJpYW50KGRpc3BsYXlMb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMYW5ndWFnZSAmICFvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuUGFyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgTWFwIG0gPSBwYXJzZXIuZ2V0S2V5d29yZE1hcCgpOworICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBJdGVyYXRvciBrZXlzID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoa2V5cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxhbmd1YWdlICYgIW9wZW5QYXJlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5QYXJlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlrZXlzLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllLmdldEtleSgpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKWUuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGtleSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiPSIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIikiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgIC8qKgorICAgICogQmFzZWQgb24gYSBIVFRQIGZvcm1hdHRlZCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBpbiBIVFRQICJBY2NlcHQtTGFuZ3VhZ2U6IiBmb3JtYXQgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gYXZhaWxhYmxlTG9jYWxlcyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLiBPbmUgb2YgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgYXZhaWxhYmxlTG9jYWxlcyBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCAKKyAgICAgICAgICAgICAgICBVTG9jYWxlW10gYXZhaWxhYmxlTG9jYWxlcywgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAgICAgKi8KKyAgICAgICAgY2xhc3MgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgcTsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHNlcmlhbDsKKyAgICAgICAgICAgIHB1YmxpYyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKGRvdWJsZSB0aGVxLCBpbnQgdGhlc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgcSA9IHRoZXE7CisgICAgICAgICAgICAgICAgc2VyaWFsID0gdGhlc2VyaWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIG90aGVyID0gKFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEpIG87CisgICAgICAgICAgICAgICAgaWYocSA+IG90aGVyLnEpIHsgLy8gcmV2ZXJzZSAtIHRvIHNvcnQgaW4gZGVzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHEgPCBvdGhlci5xKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzZXJpYWwgPCBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzZXJpYWwgPiBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHNhbWUgb2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gMXN0OiBwYXJzZSBvdXQgdGhlIGFjY2VwdExhbmd1YWdlTGlzdCBpbnRvIGFuIGFycmF5CisgICAgICAgIAorICAgICAgICBUcmVlTWFwIG1hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG47CisgICAgICAgIGZvcihuPTA7bjxsO24rKykgeworICAgICAgICAgICAgaW50IGl0ZW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignLCcsbik7CisgICAgICAgICAgICBpZihpdGVtRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgaXRlbUVuZCA9IGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcGFyYW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignOycsbik7CisgICAgICAgICAgICBkb3VibGUgcSA9IDEuMDsKKyAKKyAgICAgICAgICAgIGlmKChwYXJhbUVuZCAhPSAtMSkgJiYgKHBhcmFtRW5kIDwgaXRlbUVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiBzZW1pY29sb24gKDspIGlzIGNsb3NlciB0aGFuIGVuZCAoLCkgKi8KKyAgICAgICAgICAgICAgICBpbnQgdCA9IHBhcmFtRW5kICsgMTsKKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09J3EnKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSc9JykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyh0LGl0ZW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcSA9IERvdWJsZS5wYXJzZURvdWJsZSh2YWwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBuZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcSA9IDEuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHEgPSAxLjA7IC8vZGVmYXVsdAorICAgICAgICAgICAgICAgIHBhcmFtRW5kID0gaXRlbUVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGxvYyA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcobixwYXJhbUVuZCkudHJpbSgpOworICAgICAgICAgICAgaW50IHNlcmlhbCA9IG1hcC5zaXplKCk7CisgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGVudHJ5ID0gbmV3IFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEocSxzZXJpYWwpOworICAgICAgICAgICAgbWFwLnB1dChlbnRyeSwgbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICAKKyAgICAgICAgLy8gMy4gY2FsbCB0aGUgcmVhbCBmdW5jdGlvbgorICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGlzdCwgYXZhaWxhYmxlTG9jYWxlcywgZmFsbGJhY2spOworICAgIH0KKyAgICAKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBhdmFpbGFibGVMb2NhbGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuIE9uZSBvZiB0aGVzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBhdmFpbGFibGVMb2NhbGVzIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSBhY2NlcHRMYW5ndWFnZUxpc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICAvLyBmYWxsYmFja2xpc3QKKyAgICAgICAgaW50IGksajsKKyAgICAgICAgaWYoZmFsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgZmFsbGJhY2tbMF09dHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaT0wO2k8YWNjZXB0TGFuZ3VhZ2VMaXN0Lmxlbmd0aDtpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgYUxvY2FsZSA9IGFjY2VwdExhbmd1YWdlTGlzdFtpXTsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBzZXRGYWxsYmFjayA9IGZhbGxiYWNrOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGZvcihqPTA7ajxhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDtqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoYXZhaWxhYmxlTG9jYWxlc1tqXS5lcXVhbHMoYUxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldEZhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGYWxsYmFja1swXT1mYWxzZTsgLy8gZmlyc3QgdGltZSB3aXRoIHRoaXMgbG9jYWxlIC0gbm90IGEgZmFsbGJhY2suCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlTG9jYWxlc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhTG9jYWxlID0gYUxvY2FsZS5nZXRGYWxsYmFjaygpOworICAgICAgICAgICAgICAgIHNldEZhbGxiYWNrID0gbnVsbDsgLy8gRG8gbm90IHNldCBmYWxsYmFjayBpbiBsYXRlciBpdGVyYXRpb25zCisgICAgICAgICAgICB9IHdoaWxlIChhTG9jYWxlICE9IG51bGwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgLyoqCisgICAgKiBCYXNlZCBvbiBhIEhUVFAgZm9ybWF0dGVkIGxpc3Qgb2YgYWNjZXB0YWJsZSBsb2NhbGVzLCBkZXRlcm1pbmUgYW4gYXZhaWxhYmxlIGxvY2FsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yIGF2YWlsYWJsZUxvY2FsZXMgaXMKKyAgICAqIG51bGwuICBJZiBmYWxsYmFjayBpcyBub24tbnVsbCwgaXQgd2lsbCBjb250YWluIHRydWUgaWYgYSBmYWxsYmFjayBsb2NhbGUgKG9uZQorICAgICogbm90IGluIHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QpIHdhcyByZXR1cm5lZC4gIFRoZSB2YWx1ZSBvbiBlbnRyeSBpcyBpZ25vcmVkLiAKKyAgICAqIFVMb2NhbGUgd2lsbCBiZSBvbmUgb2YgdGhlIGxvY2FsZXMgaW4gYXZhaWxhYmxlTG9jYWxlcywgb3IgdGhlIFJPT1QgVUxvY2FsZSBpZgorICAgICogYSBST09UIGxvY2FsZSB3YXMgdXNlZCBhcyBhIGZhbGxiYWNrIChiZWNhdXNlIG5vdGhpbmcgZWxzZSBpbgorICAgICogYXZhaWxhYmxlTG9jYWxlcyBtYXRjaGVkKS4gIE5vIFVMb2NhbGUgYXJyYXkgZWxlbWVudCBzaG91bGQgYmUgbnVsbDsgYmVoYXZpb3IKKyAgICAqIGlzIHVuZGVmaW5lZCBpZiB0aGlzIGlzIHRoZSBjYXNlLgorICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGNob29zZSBhIGxvY2FsZSBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0IGFzIGF2YWlsYWJsZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBpbiBIVFRQICJBY2NlcHQtTGFuZ3VhZ2U6IiBmb3JtYXQgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCksIGZhbGxiYWNrKTsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYW4gb3JkZXJlZCBhcnJheSBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBvcmRlcmVkIGFycmF5IG9mIGFjY2VwdGFibGUgbG9jYWxlcyAocHJlZmVycmVkIGFyZSBsaXN0ZWQgZmlyc3QpCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSBhY2NlcHRMYW5ndWFnZUxpc3QsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSwgZmFsbGJhY2spOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzLy5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI2OWQ4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBzb3VyY2VwYXRoPSJpY3U0anRzcmMuemlwIiBraW5kPSJsaWIiIHBhdGg9ImljdTRqdGVzdHMuamFyIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA2ZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LnRlc3RzPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTI2NjBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTMgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6IElDVSBUZXN0IEZyYWdtZW50CitCdW5kbGUtU3ltYm9saWNOYW1lOiBjb20uaWJtLmljdS50ZXN0cworQnVuZGxlLVZlcnNpb246IDEuMC4wCitCdW5kbGUtVmVuZG9yOiBJQk0KK0ZyYWdtZW50LUhvc3Q6IGNvbS5pYm0uaWN1O2J1bmRsZS12ZXJzaW9uPSJbMy40LjIsMy43LjApIgorQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCitCdW5kbGUtQ29weXJpZ2h0OiBMaWNlbnNlZCBNYXRlcmlhbHMgLSBQcm9wZXJ0eSBvZiBJQk0gCisgKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMC0yMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK1JlcXVpcmUtQnVuZGxlOiBvcmcuanVuaXQKK0J1bmRsZS1DbGFzc1BhdGg6IGljdTRqdGVzdHMuamFyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMGQ0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDE0IEBACitzb3VyY2UuLiA9IHNyYy8KK291dHB1dC4uID0gYmluLworYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKKyAgICAgICAgICAgICAgIC4sXAorICAgICAgICAgICAgICAgLi9pY3U0anRlc3RzLmphcixcCisgICAgICAgICAgICAgICAuY2xhc3NwYXRoLFwKKyAgICAgICAgICAgICAgIGJpbi8sXAorICAgICAgICAgICAgICAgYnVpbGQucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICAucHJvamVjdAorc3JjLmluY2x1ZGVzID0gc3JjLyxcCisgICAgICAgICAgICAgICBidWlsZC5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIC5jbGFzc3BhdGgsXAorICAgICAgICAgICAgICAgLnByb2plY3QsXAorICAgICAgICAgICAgICAgTUVUQS1JTkYvCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VuaXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VuaXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFiNmUwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVW5pdFRlc3QuamF2YQpAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RQYXJhbXM7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CisvL2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworLy9pbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFVuaXRUZXN0IGV4dGVuZHMgVGVzdENhc2UgeworICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3RDYWxlbmRhcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDYWxlbmRhciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDb2xsYXRvcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDb2xsYXRvciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDb21wcmVzc2lvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDb21wcmVzc2lvbiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REaWFnQmlnRGVjaW1hbCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJEaWFnQmlnRGVjaW1hbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiRm9ybWF0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEltcGwoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiSW1wbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3ROb3JtYWxpemVyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIk5vcm1hbGl6ZXIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UHJvcGVydHkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiUHJvcGVydHkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UkJCSSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJSQkJJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNlYXJjaFRlc3QoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiU2VhcmNoVGVzdCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTdHJpbmdQcmVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlN0cmluZ1ByZXAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0VGVzdENoYXJzZXREZXRlY3RvcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJUZXN0Q2hhcnNldERldGVjdG9yIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RUaW1lU2NhbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVGltZVNjYWxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRpbWVab25lKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRpbWVab25lIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRyYW5zbGl0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRyYW5zbGl0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFV0aWwoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVXRpbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJ1blV0aWxpdHkoU3RyaW5nIHRlc3RuYW1lKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVGVzdFBhcmFtcyBwYXJhbXMgPSBUZXN0UGFyYW1zLmNyZWF0ZSgiLW4iLCBudWxsKTsKKyAgICAgICAgVGVzdEZtd2sgdGVzdCA9IG5ldyBUZXN0QWxsKCk7CisgICAgICAgIHRlc3QucmVzb2x2ZVRhcmdldChwYXJhbXMsIHRlc3RuYW1lKS5ydW4oKTsKKyAgICAgICAgaWYgKHBhcmFtcy5lcnJvckNvdW50ID4gMCkgeworICAgICAgICAgICAgZmFpbChwYXJhbXMuZXJyb3JTdW1tYXJ5LnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCQorICAgIC8vIHNhbXBsZSB0ZXN0cyBmcm9tIElDVTRKIHRlc3Qgc3VpdGUKKworICAgIC8vIENhbGVuZGFyCisvLyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FsZW5kYXJTaW1wbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKy8vICAgIAlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisvLyAgICAJR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHopOworLy8gICAgCWdjLnNldCgyMDA1LDksMTcsMTQsMTUsMzMpOworLy8gICAgCURhdGUgdGltZSA9IGdjLmdldFRpbWUoKTsKKy8vICAgIAkKKy8vICAgIAlmaW5hbCBTdHJpbmdbXSBjYWxlbmRhcnMgPSB7CisvLyAgICAJCSJidWRkaGlzdCIsICJjaGluZXNlIiwgImNvcHRpYyIsICJldGhpb3BpYyIsICJncmVnb3JpYW4iLCAKKy8vICAgIAkJImhlYnJldyIsICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCAiamFwYW5lc2UiCisvLyAgICAJfTsKKy8vICAgIAlmaW5hbCBTdHJpbmdbXSB1c3RpbWVzID0geworLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAyNTQ4IEJFIDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSAyMng3OC05LTE1IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgQmFiYSA3LCAxNzIyIDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgVGVrZW10IDcsIDE5OTggMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAyMDA1IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgVGlzaHJpIDE0LCA1NzY2IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgUmFtYWRhbiAxNCwgMTQyNiAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIFJhbWFkYW4gMTQsIDE0MjYgMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAxNyBIZWlzZWkgMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCX07CisvLyAgICAJZmluYWwgU3RyaW5nW10gZGV0aW1lcyA9IHsKKy8vICAgIAkJIk1vbnRhZywgT2t0b2JlciAxNywgMjU0OCBCRSAyOjE1OjMzIG5hY2htLiBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnIDIyeDc4LTktMTUgMjoxNTozMyBuYWNobS4gR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgNy4gQmFiYSAxNzIyIDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCA3LiBUZWtlbXQgMTk5OCAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTcuIE9rdG9iZXIgMjAwNSAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTQuIFRpc2hyaSA1NzY2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCAxNC4gUmFtYWRhbiAxNDI2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCAxNC4gUmFtYWRhbiAxNDI2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCBPa3RvYmVyIDE3LCAxNyBIZWlzZWkgMjoxNTozMyBuYWNobS4gR01ULTA3OjAwIiwKKy8vICAgIAl9OworLy8gICAgCQorLy8gICAgCVVMb2NhbGVbXSBsb2NhbGVzID0ge1VMb2NhbGUuVVMsIFVMb2NhbGUuR0VSTUFOWSB9OworLy8gICAgCVN0cmluZ1tdW10gdGltZXMgPSB7IHVzdGltZXMsIGRldGltZXMgfTsKKy8vICAgIAlmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZXMubGVuZ3RoOyArK2opIHsKKy8vICAgIAkJVUxvY2FsZSB1bCA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworLy8gICAgCQlmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7ICsraSkgeworLy8gICAgCQkJdWwgPSB1bC5zZXRLZXl3b3JkVmFsdWUoImNhbGVuZGFyIiwgY2FsZW5kYXJzW2ldKTsKKy8vICAgIAkJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHVsKTsKKy8vICAgIAkJCURhdGVGb3JtYXQgZm10ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2NhbGVzW2pdKTsKKy8vICAgIAkJCVN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KHRpbWUpOworLy8gIAkJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oY2FsZW5kYXJzW2ldICsgIjogIiArIHJlc3VsdCk7CisvLyAgICAJCQlpZiAoIXJlc3VsdC5lcXVhbHModGltZXNbal1baV0pKSB7CisvLyAgICAJCQkJZmFpbCgiY2FsZW5kYXI6ICIgKyBjYWxlbmRhcnNbaV0pOworLy8gICAgCQkJfQorLy8gICAgCQl9CisvLyAgICAJfQorLy8gICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5jbGFzc3BhdGggYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTFjOGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5jbGFzc3BhdGgKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGNsYXNzcGF0aD4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KKzwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5wcm9qZWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MzcxNGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvLnByb2plY3QKQEAgLTAsMCArMSwyOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0RGVzY3JpcHRpb24+CisJPG5hbWU+Y29tLmlibS5pY3U8L25hbWU+CisJPGNvbW1lbnQ+PC9jb21tZW50PgorCTxwcm9qZWN0cz4KKwk8L3Byb2plY3RzPgorCTxidWlsZFNwZWM+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L01FVEEtSU5GL01BTklGRVNULk1GIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L01FVEEtSU5GL01BTklGRVNULk1GCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NTA2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTAsMCArMSwxOCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKK0J1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5pYm0uaWN1OyBzaW5nbGV0b246PXRydWUKK0J1bmRsZS1WZXJzaW9uOiAzLjYKK0J1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLUNvcHlyaWdodDogTGljZW5zZWQgTWF0ZXJpYWxzIC0gUHJvcGVydHkgb2YgSUJNIAorIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDAsIDIwMDYuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIAorIElCTSBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIElCTSBDb3JwLgorRXhwb3J0LVBhY2thZ2U6IGNvbS5pYm0uaWN1LmxhbmcsCisgY29tLmlibS5pY3UubWF0aCwKKyBjb20uaWJtLmljdS50ZXh0LAorIGNvbS5pYm0uaWN1LnV0aWwKK0VjbGlwc2UtTGF6eVN0YXJ0OiB0cnVlCitCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogQ0RDLTEuMC9Gb3VuZGF0aW9uLTEuMCwKKyBKMlNFLTEuMworIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L2J1aWxkLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTI0MGUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSw5IEBACitzb3VyY2UuLiA9IHNyYy8KK291dHB1dC4uID0gYmluLworc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCisgICAgICAgICAgICAgICBhYm91dF9maWxlcy8KK2Jpbi5pbmNsdWRlcyA9IGFib3V0X2ZpbGVzLyxcCisgICAgICAgICAgICAgICAuLFwKKyAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAorICAgICAgICAgICAgICAgcGx1Z2luLnByb3BlcnRpZXMsXAorICAgICAgICAgICAgICAgTUVUQS1JTkYvCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvcGx1Z2luLnByb3BlcnRpZXMgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFkMGEzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9wbHVnaW4ucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3BsdWdpbk5hbWUgPSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKQorcHJvdmlkZXJOYW1lID0gSUJNIENvcnBvcmF0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL21pc2MvYWJvdXQuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9taXNjL2Fib3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIwN2QwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9taXNjL2Fib3V0Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4KKzx0aXRsZT5BYm91dDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBsYW5nPSJFTi1VUyI+Cis8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KKyAKKzxwPk1heSAxMCwgMjAwNjwvcD4JCis8aDM+TGljZW5zZTwvaDM+CisKKzxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAoraW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgorCis8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIAorYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQorYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAgQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIAorcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gIElmIG5vIHN1Y2ggbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuICBVbmxlc3Mgb3RoZXJ3aXNlCitpbmRpY2F0ZWQgYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UgY29kZSBpbiB0aGUgQ29udGVudAorYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmciPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LjwvcD4KKworPGgzPlNvdXJjZSBDb2RlPC9oMz4KKzxwPlRoaXMgcGx1Zy1pbiBjb250YWlucyBzb3VyY2UgY29kZSB6aXAgZmlsZXMgKCZxdW90O1NvdXJjZSBaaXBzJnF1b3Q7KSB0aGF0IGNvcnJlc3BvbmQgdG8gYmluYXJ5IGNvbnRlbnQgaW4gb3RoZXIgcGx1Zy1pbnMuIFRoZXNlIFNvdXJjZSBaaXBzIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciBkaWZmZXJlbnQgbGljZW5zZQorYWdyZWVtZW50cyBhbmQvb3Igbm90aWNlcy4gRGV0YWlscyBhYm91dCB0aGVzZSBsaWNlbnNlIGFncmVlbWVudHMgYW5kIG5vdGljZXMgYXJlIGNvbnRhaW5lZCBpbiAmcXVvdDthYm91dC5odG1sJnF1b3Q7IGZpbGVzICgmcXVvdDtBYm91dHMmcXVvdDspIGxvY2F0ZWQgaW4gc3ViLWRpcmVjdG9yaWVzIGluIHRoZQorc3JjLyBkaXJlY3Rvcnkgb2YgdGhpcyBwbHVnLWluLiBTdWNoIEFib3V0cyBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIFNvdXJjZSBaaXBzIGluIHRoYXQgZGlyZWN0b3J5LCBub3QgdGhlIEVQTC48L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dF9pY3UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9taXNjL2Fib3V0X2ljdS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMDNmYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dF9pY3UuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIvPgorPHRpdGxlPkFib3V0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IGxhbmc9IkVOLVVTIj4KKzxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgorIAorPHA+T2N0b2JlciAxLCAyMDA2PC9wPgkKKzxoMz5MaWNlbnNlPC9oMz4KKworPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCitpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0ZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CisKKzxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCitiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkgKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5CithcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuICBDaGVjayB0aGUgUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgCitwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiAgSWYgbm8gc3VjaCBsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gIFVubGVzcyBvdGhlcndpc2UKK2luZGljYXRlZCBiZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZSBjb2RlIGluIHRoZSBDb250ZW50CithbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LjwvcD4KKworCQkKKwkJPGgzPlRoaXJkIFBhcnR5IENvbnRlbnQ8L2gzPgorCQk8cD5UaGUgQ29udGVudCBpbmNsdWRlcyBpdGVtcyB0aGF0IGhhdmUgYmVlbiBzb3VyY2VkIGZyb20gdGhpcmQgcGFydGllcyBhcyBzZXQgb3V0IGJlbG93LiBJZiB5b3UgCisJCWRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgZm9sbG93aW5nIGlzIHByb3ZpZGVkIAorCQlmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5LCBhbmQgeW91IHNob3VsZCBsb29rIHRvIHRoZSBSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSBmb3IgCisJCXRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZS48L3A+CisKKwkJPHA+PHN0cm9uZz5JQ1U0SiAzLjY8L3N0cm9uZz4gPGJyLz48YnIvPgorCQlUaGUgcGx1Zy1pbiBpbmNsdWRlcyBzb2Z0d2FyZSAoJnF1b3Q7SUNVNEomcXVvdDspIGRldmVsb3BlZCBieSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisJCUNvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisJCTxici8+PGJyLz4KKwkJSUNVNEogaXM6CisJCTxibG9ja3F1b3RlPgorCQlDb3B5cmlnaHQgKGMpIDE5OTUtMjAwNiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnM8YnIvPgorCQlBbGwgcmlnaHRzIHJlc2VydmVkLiAKKwkJPC9ibG9ja3F1b3RlPgorCQlZb3VyIHVzZSBvZiBJQ1U0SiBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgSUNVNEogbGljZW5zZS4gIEEgY29weSBvZiB0aGUKKwkJbGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgPGEgaHJlZj0iYWJvdXRfZmlsZXMvbGljZW5zZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+YWJvdXRfZmlsZXMvbGljZW5zZS5odG1sPC9hPi4KKwkJPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvQWJzdHJhY3RUZXN0TG9nLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvQWJzdHJhY3RUZXN0TG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhZWM0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9BYnN0cmFjdFRlc3RMb2cuamF2YQpAQCAtMCwwICsxLDk2IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRlc3RMb2cgaW1wbGVtZW50cyBUZXN0TG9nIHsKKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBkb250U2tpcEZvclZlcnNpb24gPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBza2lwSWZCZWZvcmVJQ1UoaW50IG1ham9yLCBpbnQgbWlub3IpIHsKKyAgICAgICAgaWYgKGRvbnRTa2lwRm9yVmVyc2lvbiB8fCBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi5jb21wYXJlVG8oVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yKSkgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gCisgICAgICAgIGxvZ2xuKCJUZXN0IHNraXBwZWQgYmVmb3JlIElDVSByZWxlYXNlICIgKyBtYWpvciArICIuIiArIG1pbm9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzSUNVVmVyc2lvbkF0TGVhc3QoaW50IG1ham9yLCBpbnQgbWlub3IpeworICAgICAgIHJldHVybiAoVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uY29tcGFyZVRvKFZlcnNpb25JbmZvLmdldEluc3RhbmNlKG1ham9yLCBtaW5vcikpID49IDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBtZXNzYWdlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGxvZyhTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgTE9HLCB0cnVlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgbWVzc2FnZSBhbmQgbmV3bGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBsb2dsbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgTE9HLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZXJyKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIG1zZyhtZXNzYWdlLCBFUlIsIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IgYW5kIG5ld2xpbmUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZXJybG4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwb3J0IGEgd2FybmluZyAoZ2VuZXJhbGx5IG1pc3NpbmcgdGVzdHMgb3IgZGF0YSkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgd2FybihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgV0FSTiwgdHJ1ZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydCBhIHdhcm5pbmcgKGdlbmVyYWxseSBtaXNzaW5nIHRlc3RzIG9yIGRhdGEpIGFuZCBuZXdsaW5lLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHdhcm5sbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgV0FSTiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVjdG9yIGZvciBsb2dnaW5nLiAgQ2FsbGVycyBjYW4gZm9yY2UgdGhlIGxvZ2dpbmcgc3lzdGVtIHRvCisgICAgICogbm90IGluY3JlbWVudCB0aGUgZXJyb3Igb3Igd2FybmluZyBsZXZlbCBieSBwYXNzaW5nIGZhbHNlIGZvciBpbmNDb3VudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbGV2ZWwgdGhlIG1lc3NhZ2UgbGV2ZWwsIGVpdGhlciBMT0csIFdBUk4sIG9yIEVSUi4KKyAgICAgKiBAcGFyYW0gaW5jQ291bnQgaWYgdHJ1ZSwgaW5jcmVtZW50cyB0aGUgd2FybmluZyBvciBlcnJvciBjb3VudAorICAgICAqIEBwYXJhbSBuZXdsbiBpZiB0cnVlLCBmb3JjZXMgYSBuZXdsaW5lIGFmdGVyIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pOworCisgICAgLyoqCisgICAgICogTm90IHN1cmUgaWYgdGhpcyBjbGFzcyBpcyB1c2VmdWwuICBUaGlzIGxldHMgeW91IGxvZyB3aXRob3V0IGZpcnN0IHRlc3RpbmcKKyAgICAgKiBpZiBsb2dnaW5nIGlzIGVuYWJsZWQuICBUaGUgRGVsZWdhdGluZyBsb2cgd2lsbCBlaXRoZXIgc2lsZW50bHkgaWdub3JlIHRoZQorICAgICAqIG1lc3NhZ2UsIGlmIHRoZSBkZWxlZ2F0ZSBpcyBudWxsLCBvciBmb3J3YXJkIGl0IHRvIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIERlbGVnYXRpbmdMb2cgZXh0ZW5kcyBBYnN0cmFjdFRlc3RMb2cgeworICAgICAgICBwcml2YXRlIFRlc3RMb2cgZGVsZWdhdGU7CisKKyAgICAgICAgcHVibGljIERlbGVnYXRpbmdMb2coVGVzdExvZyBkZWxlZ2F0ZSkgeworICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgICAgIGlmIChkZWxlZ2F0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZGVsZWdhdGUubXNnKG1lc3NhZ2UsIGxldmVsLCBpbmNDb3VudCwgbmV3bG4pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L01vZHVsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVjNDY2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEKQEAgLTAsMCArMSwxNjkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLkRhdGFNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdERhdGFNb2R1bGUuRGF0YU1vZHVsZUZvcm1hdEVycm9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdERhdGFNb2R1bGUuVGVzdERhdGE7CisKKy8qKgorICogUmF5OiBBbiBhZGFwdGVyIGNsYXNzIGZvciBUZXN0RGF0YU1vdWxlIHRvIG1ha2UgaXQgbGlrZSBUZXN0Rm13aworICogCisgKiBBIGNvbnZlbmllbmNlIGV4dGVuc2lvbiBvZiBUZXN0Rm13ayBmb3IgdXNlIGJ5IGRhdGEgbW9kdWxlLWRyaXZlbiB0ZXN0cy4KKyAqIAorICogVGVzdHMgY2FuIGltcGxlbWVudCB0aGlzIGlmIHRoZXkgbWFrZSBleHRlbnNpdmUgdXNlIG9mIGluZm9ybWF0aW9uIGluIGEKKyAqIFRlc3REYXRhTW9kdWxlLgorICogCisgKiBTdWJjbGFzc2VzIGNhbiBhbGxvdyBmb3IgdGVzdCBtZXRob2RzIHRoYXQgZG9uJ3QgdXNlIGRhdGEgZnJvbSB0aGUgbW9kZXVsIGJ5CisgKiBvdmVycmlkaW5nIHZhbGlkYXRlTWV0aG9kIHRvIHJldHVybiB0cnVlIGZvciB0aGVzZSBtZXRob2RzLiBUZXN0cyBhcmUgYWxzbworICogZnJlZSB0byBpbnN0YW50aWF0ZSB0aGVpciBvd24gbW9kdWxlcyBhbmQgcnVuIGZyb20gdGhlbSwgdGhvdWdoIGNhcmUgc2hvdWxkCisgKiBiZSB0YWtlbiBub3QgdG8gaW50ZXJmZXJlIHdpdGggdGhlIG1ldGhvZHMgaW4gdGhpcyBjbGFzcy4KKyAqIAorICogU2VlIENvbGxhdGlvblRlc3QgZm9yIGFuIGV4YW1wbGUuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb2R1bGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHByaXZhdGUgVGVzdERhdGFNb2R1bGUgbTsKKworICAgIHByb3RlY3RlZCBUZXN0RGF0YSB0ID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZU5hbWUgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgYmFzZU5hbWUgPSBudWxsOworCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc01vZHVsZXMoKTsKKworICAgIHByb3RlY3RlZCBNb2R1bGVUZXN0KFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY05hbWUpIHsKKyAgICAgICAgbG9jYWxlTmFtZSA9IGxvY05hbWU7CisgICAgICAgIHRoaXMuYmFzZU5hbWUgPSBiYXNlTmFtZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpIHsKKyAgICAgICAgaWYgKHBhcmFtcy5kb01ldGhvZHMoKSkgeworICAgICAgICAgICAgVGFyZ2V0IHRhcmdldCA9IG51bGw7CisgICAgICAgICAgICBpZiAoIXZhbGlkYXRlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEl0ZXJhdG9yIHRlc3REYXRhID0gbS5nZXRUZXN0RGF0YUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpZiAodGVzdERhdGEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE1ldGhvZCBtZXRob2QgPSBnZXRDbGFzcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldE1ldGhvZCgicHJvY2Vzc01vZHVsZXMiLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlc3REYXRhLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3IE1ldGhvZFRhcmdldCgoKFRlc3REYXRhKSB0ZXN0RGF0YS5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXROYW1lKCksIG1ldGhvZCkuc2V0TmV4dCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICogVGVzdEZtd2sgY2FsbHMgdGhpcyBiZWZvcmUgdHJ5aW5nIHRvIHJ1biBhIHN1aXRlIG9mIHRlc3RzLiBUaGUgdGVzdCBzdWl0ZQorICAgICAqIGlmIHZhbGlkIGlmIGEgbW9kdWxlIHdob3NlIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhpcyBjbGFzcyArICJEYXRhIiBjYW4gYmUKKyAgICAgKiBvcGVuZWQuIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgaWYgdGhlcmUgYXJlIGRpZmZlcmVudCBvciBhZGRpdGlvbmFsCisgICAgICogZGF0YSByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG0gPSBGYWN0b3J5LmdldChiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKERhdGFNb2R1bGVGb3JtYXRFcnJvciBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgbSA9IG51bGw7CisgICAgICAgIH0gY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhOiAiK2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbSAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RGbXdrIGNhbGxzIHRoaXMgYmVmb3JlIHRyeWluZyB0byBpbnZva2UgYSB0ZXN0IG1ldGhvZC4gVGhlIG1ldGhvZCBpcworICAgICAqIHZhbGlkIGlmIHRoZXJlIGlzIHRlc3QgZGF0YSB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbWV0aG9kIGluIHRoZSBtb2R1bGUuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyB0byBhbGxvdyBmb3IgdGVzdHMgdGhhdCBkbyBub3QgcmVxdWlyZSB0ZXN0CisgICAgICogZGF0YSBmcm9tIHRoZSBtb2R1bGUsIG9yIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgb3IgYWRkaXRpb25hbCBkYXRhCisgICAgICogcmVxdWlyZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGVNZXRob2QoU3RyaW5nIG1ldGhvZE5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG9wZW5UZXN0RGF0YShtZXRob2ROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBvZiBUZXN0Rm13ayBtZXRob2QgdG8gZ2V0IHRoZSB0ZXN0IHN1aXRlIGRlc2NyaXB0aW9uIGZyb20gdGhlCisgICAgICogREVTQ1JJUFRJT04gZmllbGQgb2YgdGhlIG1vZHVsZSBpbmZvLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgIERhdGFNYXAgaW5mbyA9IG1vZHVsZUluZm8oKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gcmV0dXJuIGluZm8uZ2V0U3RyaW5nKFRlc3REYXRhTW9kdWxlLkRFU0NSSVBUSU9OKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBvZiBUZXN0Rm13ayBtZXRob2QgdG8gZ2V0IHRoZSB0ZXN0IG1ldGhvZCBkZXNjcmlwdGlvbiBmcm9tIHRoZQorICAgICAqIERFU0NSSVBUSU9OIGZpZWxkIG9mIHRoZSB0ZXN0IGluZm8uCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRNZXRob2REZXNjcmlwdGlvbihTdHJpbmcgbWV0aG9kTmFtZSkgeworICAgICAgICBpZiAob3BlblRlc3REYXRhKG1ldGhvZE5hbWUpKSB7CisgICAgICAgICAgICBEYXRhTWFwIGluZm8gPSB0ZXN0SW5mbygpOworICAgICAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIHJldHVybiBpbmZvLmdldFN0cmluZyhUZXN0RGF0YU1vZHVsZS5ERVNDUklQVElPTik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3BlbiB0aGUgdGVzdCBkYXRhIGluIHRoZSBtb2R1bGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSwgYW5kIHJldHVybiB0cnVlIGlmCisgICAgICogc3VjY2Vzcy4gVGhlIGN1cnJlbnQgdGVzdCBpcyByZXNldC4KKyAgICAgKiAKKyAgICAgKiBAdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG9wZW5UZXN0RGF0YShTdHJpbmcgbmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgdCA9IG0gPT0gbnVsbCA/IG51bGwgOiBtLmdldFRlc3REYXRhKG5hbWUpOworICAgICAgICB9IGNhdGNoIChEYXRhTW9kdWxlRm9ybWF0RXJyb3IgZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ICE9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGluZm9ybWF0aW9uIG9uIHRoaXMgbW9kdWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gbW9kdWxlIG9wZW4gb3Igbm8gaW5mbworICAgICAqIGZvciB0aGUgbW9kdWxlLgorICAgICAqLworICAgIHByaXZhdGUgRGF0YU1hcCBtb2R1bGVJbmZvKCkgeworICAgICAgICByZXR1cm4gbSA9PSBudWxsID8gbnVsbCA6IG0uZ2V0SW5mbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpbmZvcm1hdGlvbiBvbiB0aGlzIHRlc3QuIFJldHVybnMgbnVsbCBpZiBubyBtb2R1bGUgb3BlbiBvciBubyB0ZXN0CisgICAgICogb3BlbiBvciBub3QgaW5mbyBmb3IgdGhpcyB0ZXN0LgorICAgICAqLworICAgIHByaXZhdGUgRGF0YU1hcCB0ZXN0SW5mbygpIHsKKyAgICAgICAgcmV0dXJuIHQgPT0gbnVsbCA/IG51bGwgOiB0LmdldEluZm8oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwgYm9vbGVhbiBuZXdsbikgeworICAgICAgICBpZiAobGV2ZWwgPT0gRVJSICYmIHQgIT0gbnVsbCkgeworICAgICAgICAgICAvL3Quc3RvcEl0ZXJhdGlvbigpOworICAgICAgICB9CisgICAgICAgIHN1cGVyLm1zZyhtZXNzYWdlLCBsZXZlbCwgaW5jQ291bnQsIG5ld2xuKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9SZXNvdXJjZU1vZHVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Jlc291cmNlTW9kdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdhY2UyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9SZXNvdXJjZU1vZHVsZS5qYXZhCkBAIC0wLDAgKzEsNDE1IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ3JlYXRlZCBvbiAyMDA2LTQtMjEKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0ZXN0IGRhdGEgZGVzY3JpYmVkIGluIGEgVVJlc291cmNlQm91bmRsZSBmaWxlLiAKKyAqIAorICogVGhlIHJvb3Qgb2YgdGhlIFVSZXNvdXJjZUJvdW5kbGUgZmlsZSBpcyBhIHRhYmxlIHJlc291cmNlLCBhbmQgaXQgaGFzIG9uZSAKKyAqIEluZm8gYW5kIG9uZSBUZXN0RGF0YSBzdWItcmVzb3VyY2VzLiBUaGUgSW5mbyBkZXNjcmliZXMgdGhlIGRhdGEgbW9kdWxlCisgKiBpdHNlbGYuIFRoZSBUZXN0RGF0YSwgd2hpY2ggaXMgYSB0YWJsZSByZXNvdXJjZSwgaGFzIGEgY29sbGVjdGlvbiBvZiB0ZXN0IAorICogZGF0YS4KKyAqIAorICogVGhlIHRlc3QgZGF0YSBpcyBhIG5hbWVkIHRhYmxlIHJlc291cmNlIHdoaWNoIGhhcyBJbmZvLCBTZXR0aW5ncywgSGVhZGVycywKKyAqIGFuZCBDYXNlcyBzdWItcmVzb3VyY2VzLiAKKyAqIAorICogPHByZT4KKyAqIERhdGFNb2R1bGU6dGFibGUobm9mYWxsYmFjayl7IAorICogICBJbmZvOnRhYmxlIHt9IAorICogICBUZXN0RGF0YTp0YWJsZSB7CisgKiAgICAgZW50cnlfbmFtZTp0YWJsZXsKKyAqICAgICAgIEluZm86dGFibGV7fQorICogICAgICAgU2V0dGluZ3M6YXJyYXl7fQorICogICAgICAgSGVhZGVyczphcnJheXt9CisgKiAgICAgICBDYXNlczphcnJheXt9CisgKiAgICAgfQorICogICB9IAorICogfQorICogPC9wcmU+CisgKiAKKyAqIFRoZSB0ZXN0IGRhdGEgaXMgZXhwZWN0ZWQgdG8gYmUgZmVkIHRvIHRlc3QgY29kZSBieSBmb2xsb3dpbmcgc2VxdWVuY2UgCisgKgorICogICBmb3IgZWFjaCBzZXR0aW5nIGluIFNldHRpbmd7CisgKiAgICAgICBwcmVwYXJlIHRoZSBzZXR0aW5nCisgKiAgICAgZm9yIGVhY2ggdGVzdCBkYXRhIGluIENhc2VzeworICogICAgICAgcGVyZm9ybSB0aGUgdGVzdAorICogICAgIH0KKyAqICAgfQorICogCisgKiBGb3IgZGV0YWlsIG9mIHRoZSBzcGVjaWZpY2F0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvZGUuIFRoZSBjb2RlIGlzIAorICogaW5pdGlhbGx5IHBvcnRlZCBmcm9tICJpY3U0Yy9zb3VyY2UvdG9vbHMvY3Rlc3Rmdy91bmljb2RlL3RzdGR0bW9kLmgiCisgKiBhbmQgc2hvdWxkIGJlIG1haW50YWluZWQgcGFyYWxsZWxseS4KKyAqIAorICogQGF1dGhvciBSYXltb25kIFlhbmcKKyAqLworY2xhc3MgUmVzb3VyY2VNb2R1bGUgaW1wbGVtZW50cyBUZXN0RGF0YU1vZHVsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElORk8gPSAiSW5mbyI7CisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVTQ1JJUFRJT04gPSAiRGVzY3JpcHRpb24iOworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPTkdfREVTQ1JJUFRJT04gPSAiTG9uZ0Rlc2NyaXB0aW9uIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEVTVF9EQVRBID0gIlRlc3REYXRhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUVElOR1MgPSAiU2V0dGluZ3MiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIgPSAiSGVhZGVycyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEEgPSAiQ2FzZXMiOworCisgICAgCisgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworICAgIElDVVJlc291cmNlQnVuZGxlIGluZm87CisgICAgSUNVUmVzb3VyY2VCdW5kbGUgZGVmYXVsdEhlYWRlcjsKKyAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ZXN0RGF0YTsKKyAgICAKKyAgICBSZXNvdXJjZU1vZHVsZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yeworCisgICAgICAgIHJlcyA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgaW5mbyA9IGdldEZyb21UYWJsZShyZXMsIElORk8sIElDVVJlc291cmNlQnVuZGxlLlRBQkxFKTsKKyAgICAgICAgdGVzdERhdGEgPSBnZXRGcm9tVGFibGUocmVzLCBURVNUX0RBVEEsIElDVVJlc291cmNlQnVuZGxlLlRBQkxFKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgYWN0dWFsbHksIGRhdGEgY2FuIGJlIGVpdGhlciBBUlJBWSBvciBTVFJJTkcKKyAgICAgICAgICAgIGRlZmF1bHRIZWFkZXIgPSBnZXRGcm9tVGFibGUoaW5mbywgSEVBREVSLCBuZXcgaW50W117SUNVUmVzb3VyY2VCdW5kbGUuQVJSQVksIElDVVJlc291cmNlQnVuZGxlLlNUUklOR30pOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBkZWZhdWx0SGVhZGVyID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHJlcy5nZXRLZXkoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0YU1hcCBnZXRJbmZvKCkgeworICAgICAgICByZXR1cm4gbmV3IFVUYWJsZVJlc291cmNlKGluZm8pOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0RGF0YSBnZXRUZXN0RGF0YShTdHJpbmcgdGVzdE5hbWUpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IgeworICAgICAgICByZXR1cm4gbmV3IFVSZXNvdXJjZVRlc3REYXRhKGRlZmF1bHRIZWFkZXIsIHRlc3REYXRhLmdldCh0ZXN0TmFtZSkpOworICAgIH0KKworICAgIHB1YmxpYyBJdGVyYXRvciBnZXRUZXN0RGF0YUl0ZXJhdG9yKCkgeworICAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yQWRhcHRlcih0ZXN0RGF0YSl7CisgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IHByZXBhcmVOZXh0KElDVVJlc291cmNlQnVuZGxlIG5leHRSZXMpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVVJlc291cmNlVGVzdERhdGEoZGVmYXVsdEhlYWRlciwgbmV4dFJlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogVG8gbWFrZSBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yIHdvcmtzIGxpa2UgSXRlcmF0b3IKKyAgICAgKiBhbmQgcmV0dXJuIHZhcmlvdXMgZGF0YS1kcml2ZW4gdGVzdCBvYmplY3QgZm9yIG5leHQoKSBjYWxsCisgICAgICogCisgICAgICogQGF1dGhvciBSYXltb25kIFlhbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBJdGVyYXRvckFkYXB0ZXIgaW1wbGVtZW50cyBJdGVyYXRvcnsKKyAgICAgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSByZXM7CisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdHI7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IHByZXBhcmVkTmV4dEVsZW1lbnQgPSBudWxsOworICAgICAgICAvLyBmaXggYSBzdHJhbmdlIGJlaGF2aW9yIGZvciBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yIGZvciAKKyAgICAgICAgLy8gSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HLiBJdCBzdXBwb3J0IGhhc05leHQoKSwgYnV0IGRvZXMgCisgICAgICAgIC8vIG5vdCBzdXBwb3J0IG5leHQoKSBub3cuIAorICAgICAgICAvLyAKKyAgICAgICAgLy8gVXNlIHRoZSBpdGVyYXRlZCByZXNvdXJjZSBpdHNlbGYgYXMgdGhlIHJlc3VsdCBmcm9tIG5leHQoKSBjYWxsCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1N0clJlcyA9IGZhbHNlOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNTdHJSZXNQcmVwYXJlZCA9IGZhbHNlOyAvLyBmb3IgU1RSSU5HIHJlc291Y2UsIHdlIG9ubHkgcHJlcGFyZSBvbmNlCisKKyAgICAgICAgSXRlcmF0b3JBZGFwdGVyKElDVVJlc291cmNlQnVuZGxlIHRoZVJlcykgeworICAgICAgICAgICAgYXNzZXJ0X25vdCAodGhlUmVzID09IG51bGwpOworICAgICAgICAgICAgcmVzID0gdGhlUmVzOworICAgICAgICAgICAgaXRyID0gcmVzLmdldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpc1N0clJlcyA9IHJlcy5nZXRUeXBlKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGFzTmV4dEZvclN0clJlcygpeworICAgICAgICAgICAgYXNzZXJ0X2lzIChpc1N0clJlcyk7CisgICAgICAgICAgICBhc3NlcnRfbm90ICghaXNTdHJSZXNQcmVwYXJlZCAmJiBwcmVwYXJlZE5leHRFbGVtZW50ICE9IG51bGwpOworICAgICAgICAgICAgaWYgKGlzU3RyUmVzUHJlcGFyZWQgJiYgcHJlcGFyZWROZXh0RWxlbWVudCAhPSBudWxsKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChpc1N0clJlc1ByZXBhcmVkICYmIHByZXBhcmVkTmV4dEVsZW1lbnQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOyAvLyBvbmx5IHByZXBhcmUgb25jZQorICAgICAgICAgICAgYXNzZXJ0X2lzICghaXNTdHJSZXNQcmVwYXJlZCAmJiBwcmVwYXJlZE5leHRFbGVtZW50ID09IG51bGwpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHByZXBhcmVkTmV4dEVsZW1lbnQgPSBwcmVwYXJlTmV4dChyZXMpOworICAgICAgICAgICAgICAgIGFzc2VydF9ub3QgKHByZXBhcmVkTmV4dEVsZW1lbnQgPT0gbnVsbCwgInByZXBhcmVOZXh0KCkgc2hvdWxkIG5vdCByZXR1cm4gbnVsbCIpOworICAgICAgICAgICAgICAgIGlzU3RyUmVzUHJlcGFyZWQgPSB0cnVlOyAvLyB0b2dnbGUgdGhlIHRhZworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBjYXRjaCAoRGF0YU1vZHVsZUZvcm1hdEVycm9yIGUpIHsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworLy8jZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLGUpOworLy8jZW5kaWYKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICAgICAgaWYgKGlzU3RyUmVzKSByZXR1cm4gaGFzTmV4dEZvclN0clJlcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocHJlcGFyZWROZXh0RWxlbWVudCAhPSBudWxsKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHQgPSBudWxsOworICAgICAgICAgICAgaWYgKGl0ci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBOb3RpY2UsIG90aGVyIFJ1bnRpbWVFeGNlcHRpb24gbWF5IGJlIHRocm93ZWQKKyAgICAgICAgICAgICAgICB0ID0gaXRyLm5leHQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHByZXBhcmVkTmV4dEVsZW1lbnQgPSBwcmVwYXJlTmV4dCh0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfbm90IChwcmVwYXJlZE5leHRFbGVtZW50ID09IG51bGwsICJwcmVwYXJlTmV4dCgpIHNob3VsZCBub3QgcmV0dXJuIG51bGwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKERhdGFNb2R1bGVGb3JtYXRFcnJvciBlKSB7CisgICAgICAgICAgICAgICAgLy8gU2FkbHksIHdlIHRocm93IFJ1bnRpbWVFeGNlcHRpb24gYWxzbworLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisvLyNlbHNlCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksZSk7CisvLyNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBuZXh0KCl7CisgICAgICAgICAgICBpZiAoaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHQgPSBwcmVwYXJlZE5leHRFbGVtZW50OworICAgICAgICAgICAgICAgIHByZXBhcmVkTmV4dEVsZW1lbnQgPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBUbyBwcmVwYXJlIGRhdGEtZHJpdmVuIHRlc3Qgb2JqZWN0IGZvciBuZXh0KCkgY2FsbCwgc2hvdWxkIG5vdCByZXR1cm4gbnVsbAorICAgICAgICAgKi8KKyAgICAgICAgYWJzdHJhY3QgcHJvdGVjdGVkIE9iamVjdCBwcmVwYXJlTmV4dChJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0UmVzKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBBdm9pZCB1c2UgSmF2YSAxLjQgbGFuZ3VhZ2UgbmV3IGFzc2VydCBrZXl3b3JkIAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGFzc2VydF9pcyhib29sZWFuIGVxLCBTdHJpbmcgbXNnKXsKKyAgICAgICAgaWYgKCFlcSkgdGhyb3cgbmV3IEVycm9yKCJ0ZXN0IGNvZGUgaXRzZWxmIGhhcyBlcnJvcjogIiArIG1zZyk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGFzc2VydF9pcyhib29sZWFuIGVxKXsKKyAgICAgICAgaWYgKCFlcSkgdGhyb3cgbmV3IEVycm9yKCJ0ZXN0IGNvZGUgaXRzZWxmIGhhcyBlcnJvci4iKTsKKyAgICB9CisgICAgc3RhdGljIHZvaWQgYXNzZXJ0X25vdChib29sZWFuIGVxLCBTdHJpbmcgbXNnKXsKKyAgICAgICAgYXNzZXJ0X2lzKCFlcSwgbXNnKTsKKyAgICB9CisgICAgc3RhdGljIHZvaWQgYXNzZXJ0X25vdChib29sZWFuIGVxKXsKKyAgICAgICAgYXNzZXJ0X2lzKCFlcSk7CisgICAgfQorICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uIHRvIGdldCByZXNvdXJjZSB3aXRoIGZvbGxvd2luZyBhZGQtb24gCisgICAgICogCisgICAgICogMS4gQXNzZXJ0IHRoZSByZXR1cm5lZCByZXNvdXJjZSBpcyBuZXZlciBudWxsLgorICAgICAqIDIuIENoZWNrIHRoZSB0eXBlIG9mIHJlc291cmNlLiAKKyAgICAgKiAKKyAgICAgKiBUaGUgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uIGZvciB2YXJpb3VzIGdldCgpIG1ldGhvZCBpcyBhIAorICAgICAqIFJ1bnRpbWVFeGNlcHRpb24gd2hpY2ggY2FuIGJlIHNpbGVudGx5IGJ5cGFzc2VkLiBUaGlzIGJlaGF2aW9yIGlzIGEgCisgICAgICogdHJvdWJsZS4gT25lIHB1cnBvc2Ugb2YgdGhlIGNsYXNzIGlzIHRvIGVuZm9yY2UgZm9ybWF0IGNoZWNraW5nIGZvciAKKyAgICAgKiByZXNvdXJjZSBmaWxlLiBXZSBkb24ndCB3YW50IHRvIHRoZSBleGNlcHRpb25zIGFyZSBzaWxlbnRseSBieXBhc3NlZCAKKyAgICAgKiBhbmQgc3ByZWFkZWQgdG8gb3VyIGN1c3RvbWVyJ3MgY29kZS4gCisgICAgICogCisgICAgICogTm90aWNlLCB0aGUgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGZvciBnZXQoKSBtZXRob2QgaXMgYWxzbyBhCisgICAgICogUnVudGltZUV4Y2VwdGlvbi4gVGhlIGNhbGxlciBmdW5jdGlvbnMgc2hvdWxkIGF2b2lkIHNlcHJlYWQgdGhlIGV4ZWNwdGlvbgorICAgICAqIHNpbGVudGx5IGFsc28uIFRoZSBiZWhhdmlvciBpcyBtb2RpZmllZCBiZWNhdXNlIHNvbWUgcmVzb3VyY2UgYXJlIAorICAgICAqIG9wdGlvbmFsIGFuZCBjYW4gYmUgbWlzc2VkLgorICAgICAqLworICAgIHN0YXRpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRGcm9tVGFibGUoSUNVUmVzb3VyY2VCdW5kbGUgcmVzLCBTdHJpbmcga2V5LCBpbnQgZXhwUmVzVHlwZSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgcmV0dXJuIGdldEZyb21UYWJsZShyZXMsIGtleSwgbmV3IGludFtde2V4cFJlc1R5cGV9KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGdldEZyb21UYWJsZShJQ1VSZXNvdXJjZUJ1bmRsZSByZXMsIFN0cmluZyBrZXksIGludFtdIGV4cFJlc1R5cGVzKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yeworICAgICAgICBhc3NlcnRfaXMgKHJlcyAhPSBudWxsICYmIGtleSAhPSBudWxsICYmIHJlcy5nZXRUeXBlKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuVEFCTEUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ID0gcmVzLmdldChrZXkpOyAKKyAgICAgIAorICAgICAgICBhc3NlcnRfbm90ICh0ID09bnVsbCk7CisgICAgICAgIGludCB0eXBlID0gdC5nZXRUeXBlKCk7CisgICAgICAgIEFycmF5cy5zb3J0KGV4cFJlc1R5cGVzKTsKKyAgICAgICAgaWYgKEFycmF5cy5iaW5hcnlTZWFyY2goZXhwUmVzVHlwZXMsIHR5cGUpID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICB9IGVsc2UgeworLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoIkFjdHVhbCB0eXBlICIgKyB0LmdldFR5cGUoKSArICIgIT0gZXhwZWN0ZWQgdHlwZXMgIiArIGV4cFJlc1R5cGVzICsgIi4iKTsKKy8vI2Vsc2UKKyAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IobmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiQWN0dWFsIHR5cGUgIiArIHQuZ2V0VHlwZSgpICsgIiAhPSBleHBlY3RlZCB0eXBlcyAiICsgZXhwUmVzVHlwZXMgKyAiLiIpKTsKKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVW5mb3J0dW5hdGVseSwgSUNVUmVzb3VyY2VCdW5kbGUgaXMgdW5hYmxlIHRvIHRyZWF0IG9uZSBzdHJpbmcgYXMgc3RyaW5nIGFycmF5LgorICAgICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJuIGEgU3RyaW5nW10gZnJvbSBJQ1VSZXNvdXJjZUJ1bmRsZSwgcmVnYXJkbGVzcyBpdCBpcyBhbiBhcnJheSBvciBhIHN0cmluZyAKKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nW10gZ2V0U3RyaW5nQXJyYXlIZWxwZXIoSUNVUmVzb3VyY2VCdW5kbGUgcmVzLCBTdHJpbmcga2V5KSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ID0gZ2V0RnJvbVRhYmxlKHJlcywga2V5LCBuZXcgaW50W117SUNVUmVzb3VyY2VCdW5kbGUuQVJSQVksIElDVVJlc291cmNlQnVuZGxlLlNUUklOR30pOworICAgICAgICByZXR1cm4gZ2V0U3RyaW5nQXJyYXlIZWxwZXIodCk7CisgICAgfQorCisgICAgc3RhdGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5SGVscGVyKElDVVJlc291cmNlQnVuZGxlIHJlcykgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHR5cGUgPSByZXMuZ2V0VHlwZSgpOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkFSUkFZOgorICAgICAgICAgICAgICAgIHJldHVybiByZXMuZ2V0U3RyaW5nQXJyYXkoKTsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW117cmVzLmdldFN0cmluZygpfTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiT25seSBhY2NlcHQgQVJSQVkgYW5kIFNUUklORyB0eXBlcy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uIGUpeworLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoZS5nZXRNZXNzYWdlKCkpOworLy8jZWxzZQorICAgICAgICAgICAgdGhyb3cgbmV3IERhdGFNb2R1bGVGb3JtYXRFcnJvcihlKTsKKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUZXN0RGF0YU1vZHVsZSBtID0gbmV3IFJlc291cmNlTW9kdWxlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS8iLCJEYXRhRHJpdmVuQ29sbGF0aW9uVGVzdCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhlbGxvOiAiICsgbS5nZXROYW1lKCkpOworICAgICAgICBtLmdldEluZm8oKTsKKyAgICAgICAgbS5nZXRUZXN0RGF0YUl0ZXJhdG9yKCk7CisgICAgICAgIH0gY2F0Y2ggKERhdGFNb2R1bGVGb3JtYXRFcnJvciBlKSB7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj8/PyIpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFVSZXNvdXJjZVRlc3REYXRhIGltcGxlbWVudHMgVGVzdERhdGF7CisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGluZm87CisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgc2V0dGluZ3M7IAorICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGhlYWRlcjsKKyAgICAgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBkYXRhOworCisgICAgICAgIFVSZXNvdXJjZVRlc3REYXRhKElDVVJlc291cmNlQnVuZGxlIGRlZmF1bHRIZWFkZXIsIElDVVJlc291cmNlQnVuZGxlIHRoZVJlcykgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvcnsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXNzZXJ0X2lzICh0aGVSZXMgIT0gbnVsbCAmJiB0aGVSZXMuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLlRBQkxFKTsKKyAgICAgICAgICAgIHJlcyA9IHRoZVJlczsKKyAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHksIGFjdHVhbGx5LCBkYXRhIGNhbiBiZSBlaXRoZXIgQVJSQVkgb3IgU1RSSU5HCisgICAgICAgICAgICBkYXRhID0gZ2V0RnJvbVRhYmxlKHJlcywgREFUQSwgbmV3IGludFtde0lDVVJlc291cmNlQnVuZGxlLkFSUkFZLCBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkd9KTsKKyAgICAgICAKKworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHksIGFjdHVhbGx5LCBkYXRhIGNhbiBiZSBlaXRoZXIgQVJSQVkgb3IgU1RSSU5HCisgICAgICAgICAgICAgICAgaGVhZGVyID0gZ2V0RnJvbVRhYmxlKHJlcywgSEVBREVSLCBuZXcgaW50W117SUNVUmVzb3VyY2VCdW5kbGUuQVJSQVksIElDVVJlc291cmNlQnVuZGxlLlNUUklOR30pOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0SGVhZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERhdGFNb2R1bGVGb3JtYXRFcnJvcigiVW5hYmxlIHRvIGZpbmQgYSBoZWFkZXIgZm9yIHRlc3QgZGF0YSAnIiArIHJlcy5nZXRLZXkoKSArICInIGFuZCBubyBkZWZhdWx0IGhlYWRlciBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBoZWFkZXIgPSBkZWZhdWx0SGVhZGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IGdldEZyb21UYWJsZShyZXMsIFNFVFRJTkdTLCBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSk7CisgICAgICAgICAgICAgICAgaW5mbyA9IGdldEZyb21UYWJsZShyZXMsIElORk8sIElDVVJlc291cmNlQnVuZGxlLlRBQkxFKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nLCBsZWZ0IHRoZW0gbnVsbDsKKyAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IGRhdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiByZXMuZ2V0S2V5KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRGF0YU1hcCBnZXRJbmZvKCkgeworICAgICAgICAgICAgcmV0dXJuIGluZm8gPT0gbnVsbCA/IG51bGwgOiBuZXcgVVRhYmxlUmVzb3VyY2UoaW5mbyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0U2V0dGluZ3NJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIGFzc2VydF9pcyAoc2V0dGluZ3MuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLkFSUkFZKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3JBZGFwdGVyKHNldHRpbmdzKXsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IHByZXBhcmVOZXh0KElDVVJlc291cmNlQnVuZGxlIG5leHRSZXMpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVUYWJsZVJlc291cmNlKG5leHRSZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0RGF0YUl0ZXJhdG9yKCkgeworICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwKKyAgICAgICAgICAgIGFzc2VydF9pcyAoZGF0YS5nZXRUeXBlKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuQVJSQVkgCisgICAgICAgICAgICAgICAgIHx8IGRhdGEuZ2V0VHlwZSgpID09IElDVVJlc291cmNlQnVuZGxlLlNUUklORyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yQWRhcHRlcihkYXRhKXsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IHByZXBhcmVOZXh0KElDVVJlc291cmNlQnVuZGxlIG5leHRSZXMpIHRocm93cyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVBcnJheVJlc291cmNlKGhlYWRlciwgbmV4dFJlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVVRhYmxlUmVzb3VyY2UgaW1wbGVtZW50cyBEYXRhTWFweworICAgICAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIHJlczsKKworICAgICAgICBVVGFibGVSZXNvdXJjZShJQ1VSZXNvdXJjZUJ1bmRsZSB0aGVSZXMpeworICAgICAgICAgICAgcmVzID0gdGhlUmVzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKFN0cmluZyBrZXkpIHsKKyAgICAgICAgICAgIFN0cmluZyB0OworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIHQgPSByZXMuZ2V0U3RyaW5nKGtleSk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgdCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgfQorICAgICAgICAgcHVibGljIE9iamVjdCBnZXRPYmplY3QoU3RyaW5nIGtleSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gcmVzLmdldChrZXkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFVBcnJheVJlc291cmNlIGltcGxlbWVudHMgRGF0YU1hcHsKKyAgICAgICAgcHJpdmF0ZSBNYXAgdGhlTWFwOyAKKyAgICAgICAgVUFycmF5UmVzb3VyY2UoSUNVUmVzb3VyY2VCdW5kbGUgdGhlSGVhZGVyLCBJQ1VSZXNvdXJjZUJ1bmRsZSB0aGVEYXRhKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yeworICAgICAgICAgICAgYXNzZXJ0X2lzICh0aGVIZWFkZXIgIT0gbnVsbCAmJiB0aGVEYXRhICE9IG51bGwpOworICAgICAgICAgICAgU3RyaW5nW10gaGVhZGVyOworICAgICAgICAgCisgICAgICAgICAgICBoZWFkZXIgPSBnZXRTdHJpbmdBcnJheUhlbHBlcih0aGVIZWFkZXIpOworICAgICAgICAgICAgaWYgKHRoZURhdGEuZ2V0U2l6ZSgpICE9IGhlYWRlci5sZW5ndGgpIAorICAgICAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoIlRoZSBjb3VudCBvZiBIZWFkZXIgYW5kIERhdGEgaXMgbWlzbWF0Y2guIik7CisgICAgICAgICAgICB0aGVNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBoZWFkZXIubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZih0aGVEYXRhLmdldFR5cGUoKT09SUNVUmVzb3VyY2VCdW5kbGUuQVJSQVkpeworICAgICAgICAgICAgICAgICAgICB0aGVNYXAucHV0KGhlYWRlcltpXSwgdGhlRGF0YS5nZXQoaSkpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKHRoZURhdGEuZ2V0VHlwZSgpPT1JQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkcpeworICAgICAgICAgICAgICAgICAgICB0aGVNYXAucHV0KGhlYWRlcltpXSwgdGhlRGF0YS5nZXRTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEYXRhTW9kdWxlRm9ybWF0RXJyb3IoIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkYXRhISIpOyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpdGhlTWFwLmdldChrZXkpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0T2JqZWN0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGVNYXAuZ2V0KGtleSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYThlNDNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDUxIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmkuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3Quc2VhcmNoLlNlYXJjaFRlc3QiLCAvLyBub3QgYSBncm91cAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmcuQXJhYmljU2hhcGluZ1JlZ1Rlc3QiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0Lml0ZXJhdG9yLlRlc3RVQ2hhcmFjdGVySXRlcmF0b3IiLCAvLyBub3QgYSBncm91cAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmJpZ2RlYy5EaWFnQmlnRGVjaW1hbCIsIC8vIG5vdCBhIGdyb3VwCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QuaW1wbC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWVzY2FsZS5UZXN0QWxsIiwKKwkJCQkgICJjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0ZGV0LlRlc3RDaGFyc2V0RGV0ZWN0b3IiLAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0LlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZS5TZXJpYWxpemFibGVUZXN0IiAvLyAqaXMqIGEgZ3JvdXAKKy8vI2VuZGlmCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJBbGwgdGVzdHMgaW4gSUNVIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgID0gIklDVSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEJvaWxlcnBsYXRlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEJvaWxlcnBsYXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhNzE0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Qm9pbGVycGxhdGUuamF2YQpAQCAtMCwwICsxLDE5MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIFRvIHVzZSwgb3ZlcnJpZGUgdGhlIGFic3RyYWN0IGFuZCB0aGUgcHJvdGVjdGVkIG1ldGhvZHMgYXMgbmVjZXNzYXJ5LgorICogVGVzdHMgYm9pbGVycGxhdGUgaW52YXJpYW50czoKKyAqIDxicj5hLmVxdWFscyhhKQorICogPGJyPiFhLmVxdWFscyhudWxsKQorICogPGJyPmlmIGEuZXF1YWxzKGIpIHRoZW4gCisgKiA8YnI+KDEpIGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlICAvLyBub3RlOiB0aGUgcmV2ZXJzZSBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZS4KKyAqIDxicj4oMikgYSBmdW5jdGlvbnMgaW4gYWxsIGFzcGVjdHMgYXMgZXF1aXZhbGVudCB0byBiCisgKiA8YnI+KDMpIGIuZXF1YWxzKGEpCisgKiA8YnI+aWYgYiA9IGNsb25lKGEpCisgKiA8YnI+KDEpIGIuZXF1YWxzKGEpLCBhbmQgdGhlIGFib3ZlIGNoZWNrcworICogPGJyPigyKSBpZiBtdXRhYmxlKGEpLCB0aGVuIGEuY2xvbmUoKSAhPSBhIC8vIG5vdGU6IHRoZSByZXZlcnNlIGlzIG5vdCBuZWNlc3NhcmlseSB0cnVlLgorICogQGF1dGhvciBEYXZpcworICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGVzdEJvaWxlcnBsYXRlIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIGZpbmFsIHZvaWQgVGVzdE1haW4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgTGlzdCBsaXN0ID0gbmV3IExpbmtlZExpc3QoKTsKKyAgICAgICAgd2hpbGUgKF9hZGRUZXN0T2JqZWN0KGxpc3QpKSB7CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gdGVzdEFycmF5ID0gbGlzdC50b0FycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdEFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvL2xvZ2xuKCJUZXN0aW5nICIgKyBpKTsKKyAgICAgICAgICAgIE9iamVjdCBhID0gdGVzdEFycmF5W2ldOworICAgICAgICAgICAgaW50IGFIYXNoID0gYS5oYXNoQ29kZSgpOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVxdWFsaXR5L051bGwgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlNlbGYtRXF1YWxpdHkgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3QgYjsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoX2NhbkNsb25lKGEpKSB7CisgICAgICAgICAgICAgICAgYiA9IF9jbG9uZShhKTsKKyAgICAgICAgICAgICAgICBpZiAoYiA9PSBhKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChfaXNNdXRhYmxlKGEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2xvbmUvTXV0YWJpbGl0eSBpbnZhcmlhbnQgZmFpbHM6ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDbG9uZS9FcXVhbGl0eSBpbnZhcmlhbnQgZmFpbHM6ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBfY2hlY2tFcXVhbHMoaSwgLTEsIGEsIGFIYXNoLCBiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGogPSBpOyBqIDwgdGVzdEFycmF5Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgYiA9IHRlc3RBcnJheVtqXTsKKyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIF9jaGVja0VxdWFscyhpLCBqLCBhLCBhSGFzaCwgYik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX2NoZWNrRXF1YWxzKGludCBpLCBpbnQgaiwgT2JqZWN0IGEsIGludCBhSGFzaCwgT2JqZWN0IGIpIHsKKyAgICAgICAgaW50IGJIYXNoID0gYi5oYXNoQ29kZSgpOworICAgICAgICBpZiAoIWIuZXF1YWxzKGEpKSBlcnJsbigiRXF1YWxpdHkvU3ltbWV0cnkiLGksIGopOworICAgICAgICBpZiAoYUhhc2ggIT0gYkhhc2gpIGVycmxuKCJFcXVhbGl0eS9IYXNoIixpLCBqKTsKKyAgICAgICAgaWYgKGEgIT0gYiAmJiAhX2hhc1NhbWVCZWhhdmlvcihhLGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXF1YWxpdHkvRXF1aXZhbGVuY2UiLGksIGopOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGVycmxuKFN0cmluZyB0aXRsZSwgaW50IGksIGludCBqKSB7CisgICAgICAgIGlmIChqIDwgMCkgZXJybG4oIkNsb25lLyIgKyB0aXRsZSArICJpbnZhcmlhbnQgZmFpbHM6ICIgKyBpKTsKKyAgICAgICAgZWxzZSBlcnJsbih0aXRsZSArICJpbnZhcmlhbnQgZmFpbHM6ICIgKyBpICsgIiwiICsgaik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTXVzdCBiZSBvdmVycmlkZGVuIHRvIGNoZWNrIHdoZXRoZXIgYSBhbmQgYmUgYmVoYXZlIHRoZSBzYW1lCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gX2hhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdW50aWwgZmFsc2UgaXMgcmV0dXJuZWQuCisgICAgICogVGhlIHJlc3VsdHMgc2hvdWxkIGJlIGEgbWl4dHVyZSBvZiBkaWZmZXJlbnQgb2JqZWN0cyBvZiB0aGUgc2FtZQorICAgICAqIHR5cGU6IHNvbWUgZXF1YWwgYW5kIG1vc3Qgbm90IGVxdWFsLgorICAgICAqIFRoZSBzdWJjbGFzc2VyIGNvbnRyb2xzIGhvdyBtYW55IGFyZSBwcm9kdWNlZCAocmVjb21tZW5kIGFib3V0IAorICAgICAqIDEwMCwgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIG9iamVjdHMgYW5kIGhvdyBjb3N0bHkgdGhleSBhcmUKKyAgICAgKiB0byBydW4gdGhpcyB0ZXN0IG9uLiBUaGUgcnVubmluZyB0aW1lIGdyb3dzIHdpdGggdGhlIHNxdWFyZSBvZiB0aGUKKyAgICAgKiBjb3VudC4KKyAgICAgKiBOT1RFOiB0aGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgY2FsbGVkIGlmIHRoZSBvYmplY3RzIHRlc3QgYXMgZXF1YWwuCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gX2FkZFRlc3RPYmplY3QoTGlzdCBjKTsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBpZiB0aGUgdGVzdGVkIG9iamVjdHMgYXJlIG11dGFibGUuCisgICAgICogPGJyPlNpbmNlIEphdmEgZG9lc24ndCB0ZWxsIHVzLCB3ZSBuZWVkIGEgZnVuY3Rpb24gdG8gdGVsbCBpZiBzby4KKyAgICAgKiBUaGUgZGVmYXVsdCBpcyB0cnVlLCBzbyBtdXN0IGJlIG92ZXJyaWRkZW4gaWYgbm90LgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIF9pc011dGFibGUoT2JqZWN0IGEpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGlmIHRoZSB0ZXN0ZWQgb2JqZWN0cyBjYW4gYmUgY2xvbmVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIF9jYW5DbG9uZShPYmplY3QgYSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgLyoqCisgICAgICogUHJvZHVjZSBhIGNsb25lIG9mIHRoZSBvYmplY3QuIFRyaWVzIHR3byBtZXRob2RzCisgICAgICogKGEpIGNsb25lCisgICAgICogKGIpIGNvbnN0cnVjdG9yCisgICAgICogTXVzdCBiZSBvdmVycmlkZGVuIGlmIF9jYW5DbG9uZSByZXR1cm5zIHRydWUgYW5kCisgICAgICogdGhlIGFib3ZlIG1ldGhvZHMgZG9uJ3Qgd29yay4KKyAgICAgKiBAcGFyYW0gYQorICAgICAqIEByZXR1cm4gY2xvbmUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0IF9jbG9uZShPYmplY3QgYSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIENsYXNzIGFDbGFzcyA9IGEuZ2V0Q2xhc3MoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE1ldGhvZCBjbG9uZXIgPSBhQ2xhc3MuZ2V0TWV0aG9kKCJjbG9uZSIsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIGNsb25lci5pbnZva2UoYSxudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIENvbnN0cnVjdG9yIGNvbnN0cnVjdG9yID0gYUNsYXNzLmdldENvbnN0cnVjdG9yKG5ldyBDbGFzc1tdIHthQ2xhc3N9KTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rvci5uZXdJbnN0YW5jZShuZXcgT2JqZWN0W117YX0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIFV0aWxpdGllcyAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB2ZXJpZnlTZXRzSWRlbnRpY2FsKEFic3RyYWN0VGVzdExvZyBoZXJlLCBVbmljb2RlU2V0IHNldDEsIFVuaWNvZGVTZXQgc2V0MikgeworICAgICAgICBpZiAoc2V0MS5lcXVhbHMoc2V0MikpIHJldHVybiB0cnVlOworICAgICAgICBoZXJlLmVycmxuKCJTZXRzIGRpZmZlcjoiKTsKKyAgICAgICAgaGVyZS5lcnJsbigiVW5pY29kZU1hcCAtIEhhc2hNYXAiKTsKKyAgICAgICAgaGVyZS5lcnJsbihuZXcgVW5pY29kZVNldChzZXQxKS5yZW1vdmVBbGwoc2V0MikudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgaGVyZS5lcnJsbigiSGFzaE1hcCAtIFVuaWNvZGVNYXAiKTsKKyAgICAgICAgaGVyZS5lcnJsbihuZXcgVW5pY29kZVNldChzZXQyKS5yZW1vdmVBbGwoc2V0MSkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB2ZXJpZnlTZXRzSWRlbnRpY2FsKEFic3RyYWN0VGVzdExvZyBoZXJlLCBTZXQgdmFsdWVzMSwgU2V0IHZhbHVlczIpIHsKKyAgICAgICAgaWYgKHZhbHVlczEuZXF1YWxzKHZhbHVlczIpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgU2V0IHRlbXA7CisgICAgICAgIGhlcmUuZXJybG4oIlZhbHVlcyBkaWZmZXI6Iik7CisgICAgICAgIGhlcmUuZXJybG4oIlVuaWNvZGVNYXAgLSBIYXNoTWFwIik7CisgICAgICAgIHRlbXAgPSBuZXcgVHJlZVNldCh2YWx1ZXMxKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwodmFsdWVzMik7CisgICAgICAgIGhlcmUuZXJybG4oc2hvdyh0ZW1wKSk7CisgICAgICAgIGhlcmUuZXJybG4oIkhhc2hNYXAgLSBVbmljb2RlTWFwIik7CisgICAgICAgIHRlbXAgPSBuZXcgVHJlZVNldCh2YWx1ZXMyKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwodmFsdWVzMSk7CisgICAgICAgIGhlcmUuZXJybG4oc2hvdyh0ZW1wKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2hvdyhNYXAgbSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbS5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChrZXkgKyAiPT4iICsgbS5nZXQoa2V5KSArICJcclxuIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZ2V0U2V0KE1hcCBtLCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbS5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgT2JqZWN0IHZhbCA9IG0uZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAoIXZhbC5lcXVhbHModmFsdWUpKSBjb250aW51ZTsKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoKChJbnRlZ2VyKWtleSkuaW50VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2hvdyhDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChpdC5uZXh0KCkgKyAiXHJcbiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3REYXRhTW9kdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEyODY2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhCkBAIC0wLDAgKzEsMTA2IEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKKy8qKgorICogUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdGVzdCBkYXRhIGRlc2NyaWJlZCBpbiBhIGZpbGUuCisgKiAKKyAqLworcHVibGljIGludGVyZmFjZSBUZXN0RGF0YU1vZHVsZSB7CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgdGVzdCBkYXRhIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKTsKKworICAgIC8qKgorICAgICAqIEdldCBhZGRpdGlvbmFsIGRhdGEgcmVsYXRlZCB0byB0aGUgbW9kdWxlLCBlLmcuIERFU0NSSVBUSU9OLAorICAgICAqIGdsb2JhbCBzZXR0aW5ncy4gIE1pZ2h0IGJlIG51bGwuCisgICAgICovCisgICAgcHVibGljIERhdGFNYXAgZ2V0SW5mbygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVGVzdERhdGEgY29ycmVzcG9uZGluZyB0byBuYW1lLCBvciBudWxsIGlmIG5hbWUgbm90CisgICAgICogZm91bmQgaW4gdGhpcyBtb2R1bGUuICBUaHJvdyBlcnJvciBpZiBuYW1lIGlzIG5vdCBmb3VuZC4gIAorICAgICAqIEB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yCisgICAgICovCisgICAgcHVibGljIFRlc3REYXRhIGdldFRlc3REYXRhKFN0cmluZyBuYW1lKSB0aHJvd3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yOworCisgICAgLyoqCisgICAgICogQHJldHVybiBJdGVyYXRvcjxUZXN0RGF0YT4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0VGVzdERhdGFJdGVyYXRvcigpOworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBGYWN0b3J5eworCisgICAgICAgIHN0YXRpYyBmaW5hbCBUZXN0RGF0YU1vZHVsZSBnZXQoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgdGhyb3dzIERhdGFNb2R1bGVGb3JtYXRFcnJvciB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlTW9kdWxlKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0YU1vZHVsZUZvcm1hdEVycm9yIGV4dGVuZHMgRXhjZXB0aW9ueworICAgICAgICBwdWJsaWMgRGF0YU1vZHVsZUZvcm1hdEVycm9yKFN0cmluZyBtc2cpeworICAgICAgICAgICAgc3VwZXIobXNnKTsKKyAgICAgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgcHVibGljIERhdGFNb2R1bGVGb3JtYXRFcnJvcihTdHJpbmcgbXNnLCBUaHJvd2FibGUgY2F1c2UpeworICAgICAgICAgICAgc3VwZXIobXNnLCBjYXVzZSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIERhdGFNb2R1bGVGb3JtYXRFcnJvcihUaHJvd2FibGUgY2F1c2UpIHsKKyAgICAgICAgICAgIHN1cGVyKGNhdXNlKTsKKyAgICAgICAgfQorLy8jZW5kaWYKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhIHNpbmdsZSB0ZXN0IGluIHRoZSBtb2R1bGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgVGVzdERhdGEgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCBhZGRpdGlvbmFsIGRhdGEgcmVsYXRlZCB0byB0aGUgdGVzdCBkYXRhLCBlLmcuIERFU0NSSVBUSU9OLAorICAgICAgICAgKiBnbG9iYWwgc2V0dGluZ3MuICBNaWdodCBiZSBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIERhdGFNYXAgZ2V0SW5mbygpOworICAgICAgICAvKioKKyAgICAgICAgICogQHJldHVybiBJdGVyYXRvcjxEYXRhTWFwPgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEl0ZXJhdG9yIGdldFNldHRpbmdzSXRlcmF0b3IoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEByZXR1cm4gSXRlcmF0b3I8RGF0YU1hcD4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBJdGVyYXRvciBnZXREYXRhSXRlcmF0b3IoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXAtbGlrZSBpbnRlcmZhY2UgZm9yIGFjY2Vzc2luZyBrZXktdmFsdWUgcGFpcnMgYnkga2V5LgorICAgICAqIElmIHRoZSB2YXVsZSBpcyBub3QgZm91bmQgYnkgZ2l2ZW4ga2V5LCByZXR1cm4gbnVsbC4gCisgICAgICogVGhlIGJlaGF2aW9yIGlzIGFuYWxvZ291cyB0aGUgZ2V0KCkgbWV0aG9kIG9mIHRoZSBNYXAgaW50ZXJmYWNlLgorICAgICAqIAorICAgICAqIEBhdXRob3IgUmF5bW9uZCBZYW5nCisgICAgICovCisgICAgcHVibGljIGludGVyZmFjZSBEYXRhTWFwIHsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuICAgIGlzRGVmaW5lZChTdHJpbmcga2V5KTsKKy8vCisgICAgcHVibGljIGFic3RyYWN0IE9iamVjdCAgICAgZ2V0T2JqZWN0KFN0cmluZyBrZXkpOworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgICAgIGdldFN0cmluZyhTdHJpbmcga2V5KTsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBjaGFyICAgICAgIGdldENoYXIoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgaW50ICAgICAgICBnZXRJbnQoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgYnl0ZSAgICAgICBnZXRCeXRlKFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gICAgZ2V0Qm9vbGVhbihTdHJpbmcga2V5KTsKKy8vCisvLyAgICBwdWJsaWMgYWJzdHJhY3QgT2JqZWN0W10gICBnZXRPYmplY3RBcnJheShTdHJpbmcga2V5KTsKKy8vICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdbXSAgIGdldFN0cmluZ0FycmF5KFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGNoYXJbXSAgICAgZ2V0Q2hhckFycmF5KFN0cmluZyBrZXkpOworLy8gICAgcHVibGljIGFic3RyYWN0IGludFtdICAgICAgZ2V0SW50QXJyYXkoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgYnl0ZVtdICAgICBnZXRCeXRlQXJyYXkoU3RyaW5nIGtleSk7CisvLyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbltdICBnZXRCb29sZWFuQXJyYXkoU3RyaW5nIGtleSk7CisgICAgfQorfQorICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZmE0ODRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEKQEAgLTAsMCArMSwxNzg2IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyBpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworLy8jZW5kaWYKKy8qKgorICogVGVzdEZtd2sgaXMgYSBiYXNlIGNsYXNzIGZvciB0ZXN0cyB0aGF0IGNhbiBiZSBydW4gY29udmVuaWVudGx5IGZyb20gdGhlCisgKiBjb21tYW5kIGxpbmUgYXMgd2VsbCBhcyB1bmRlciB0aGUgSmF2YSB0ZXN0IGhhcm5lc3MuCisgKiA8cD4KKyAqIFN1Yi1jbGFzc2VzIGltcGxlbWVudCBhIHNldCBvZiBtZXRob2RzIG5hbWVkIFRlc3QgPHNvbWV0aGluZz4uIEVhY2ggb2YgdGhlc2UKKyAqIG1ldGhvZHMgcGVyZm9ybXMgc29tZSB0ZXN0LiBUZXN0IG1ldGhvZHMgc2hvdWxkIGluZGljYXRlIGVycm9ycyBieSBjYWxsaW5nCisgKiBlaXRoZXIgZXJyIG9yIGVycmxuLiBUaGlzIHdpbGwgaW5jcmVtZW50IHRoZSBlcnJvckNvdW50IGZpZWxkIGFuZCBtYXkKKyAqIG9wdGlvbmFsbHkgcHJpbnQgYSBtZXNzYWdlIHRvIHRoZSBsb2cuIERlYnVnZ2luZyBpbmZvcm1hdGlvbiBtYXkgYWxzbyBiZQorICogYWRkZWQgdG8gdGhlIGxvZyB2aWEgdGhlIGxvZyBhbmQgbG9nbG4gbWV0aG9kcy4gVGhlc2UgbWV0aG9kcyB3aWxsIGFkZCB0aGVpcgorICogYXJndW1lbnRzIHRvIHRoZSBsb2cgb25seSBpZiB0aGUgdGVzdCBpcyBiZWluZyBydW4gaW4gdmVyYm9zZSBtb2RlLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEZtd2sgZXh0ZW5kcyBBYnN0cmFjdFRlc3RMb2cgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZSA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0yMDAzIElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgdGltZSB6b25lIGZvciBhbGwgb2Ygb3VyIHRlc3RzLiBVc2VkIGluIFRhcmdldC5ydW4oKTsKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBUaW1lWm9uZSBkZWZhdWx0VGltZVpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBsb2NhbGUgdXNlZCBmb3IgYWxsIG9mIG91ciB0ZXN0cy4gVXNlZCBpbiBUYXJnZXQucnVuKCk7CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuVVM7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFRlc3RGbXdrRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsKKyAgICAgICAgVGVzdEZtd2tFeGNlcHRpb24oU3RyaW5nIG1zZykgeworICAgICAgICAgICAgc3VwZXIobXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVFeGNlcHRpb24oVGhyb3dhYmxlIGUpeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgVGhyb3dhYmxlIGV4ID0gZS5nZXRDYXVzZSgpOworLy8jZWxzZQorLy8jIyAgICBUaHJvd2FibGUgZXggPSBudWxsOworLy8jZW5kaWYKKyAgICAgICAgaWYoZXg9PW51bGwpeworICAgICAgICAgICAgZXggPSBlOworICAgICAgICB9CisgICAgICAgIGlmKGV4IGluc3RhbmNlb2YgRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yKXsKKyAgICAgICAgICAgIGV4ID0gKChFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IpZXgpLmdldEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBtc2cgPSBleC5nZXRNZXNzYWdlKCk7CisgICAgICAgIC8vU3lzdGVtLmVyci5wcmludGxuKCJURiBoYW5kbGVFeGNlcHRpb24gbXNnOiAiICsgbXNnKTsKKyAgICAgICAgaWYgKGV4IGluc3RhbmNlb2YgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHx8IGV4IGluc3RhbmNlb2YgTm9DbGFzc0RlZkZvdW5kRXJyb3IgfHwgbXNnLmluZGV4T2YoImphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24iKT49MCkgeworICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncyB8fCBwYXJhbXMubm9kYXRhKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5ub3Rocm93KSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChwYXJhbXMubm90aHJvdykgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyB1c2UgdGhpcyBpbnN0ZWFkIG9mIG5ldyByYW5kb20gc28gd2UgZ2V0IGEgY29uc2lzdGVudCBzZWVkCisgICAgLy8gZm9yIG91ciB0ZXN0cworICAgIHByb3RlY3RlZCBSYW5kb20gY3JlYXRlUmFuZG9tKCkgeworICAgICAgICByZXR1cm4gbmV3IFJhbmRvbShwYXJhbXMuc2VlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSB0ZXN0IHRoYXQgaGFzIG5vIHRlc3QgbWV0aG9kcyBpdHNlbGYsIGJ1dCBpbnN0ZWFkIHJ1bnMgb3RoZXIgdGVzdHMuCisgICAgICogCisgICAgICogVGhpcyBvdmVycmlkZXMgbWV0aG9kcyBhcmUgZ2V0VGFyZ2V0cyBhbmQgZ2V0U3VidGVzdCBmcm9tIFRlc3RGbXdrLgorICAgICAqIAorICAgICAqIElmIHlvdSB3YW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBwYXNzIGFuIGFycmF5IG9mIGNsYXNzIG5hbWVzIGFuZCBhbgorICAgICAqIG9wdGlvbmFsIGRlc2NyaXB0aW9uIHRvIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIG5hbWVkIGNsYXNzZXMgbXVzdCBleHRlbmQKKyAgICAgKiBUZXN0Rm13ay4gSWYgYSBwcm92aWRlZCBuYW1lIGRvZXNuJ3QgaW5jbHVkZSBhICIuIiwgcGFja2FnZSBuYW1lIGlzCisgICAgICogcHJlZml4ZWQgdG8gaXQgKHRoZSBwYWNrYWdlIG9mIHRoZSBjdXJyZW50IHRlc3QgaXMgdXNlZCBpZiBub25lIHdhcworICAgICAqIHByb3ZpZGVkIGluIHRoZSBjb25zdHJ1Y3RvcikuIFRoZSByZXN1bHRpbmcgZnVsbCBuYW1lIGlzIHVzZWQgdG8KKyAgICAgKiBpbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQ2xhc3MgbmFtZXMgYXJlIHJlc29sdmVkIHRvIGNsYXNzZXMgd2hlbiBnZXRUYXJnZXRzIG9yIGdldFN1YnRlc3QgaXMKKyAgICAgKiBjYWxsZWQuIFRoaXMgYWxsb3dzIGluc3RhbmNlcyBvZiBUZXN0R3JvdXAgdG8gYmUgY29tcGlsZWQgYW5kIHJ1biB3aXRob3V0CisgICAgICogYWxsIHRoZSB0YXJnZXRzIHRoZXkgd291bGQgbm9ybWFsbHkgaW52b2tlIGJlaW5nIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGVmYXVsdFBhY2thZ2U7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGRlc2NyaXB0aW9uOworCisgICAgICAgIHByaXZhdGUgQ2xhc3NbXSB0ZXN0czsgLy8gZGVmZXJyZWQgaW5pdAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgZGVmYXVsdCBwYWNrYWdlIG5hbWUgYW5kIGEgbGlzdCBvZiBjbGFzcworICAgICAgICAgKiBuYW1lcy4gQWRvcHRzIGFuZCBtb2RpZmllcyB0aGUgY2xhc3NuYW1lIGxpc3QKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBUZXN0R3JvdXAoU3RyaW5nIGRlZmF1bHRQYWNrYWdlLCBTdHJpbmdbXSBjbGFzc25hbWVzLAorICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgaWYgKGNsYXNzbmFtZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNsYXNzbmFtZXMgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGVmYXVsdFBhY2thZ2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRQYWNrYWdlID0gZ2V0Q2xhc3MoKS5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdFBhY2thZ2UgPSBkZWZhdWx0UGFja2FnZSArICIuIjsKKworICAgICAgICAgICAgdGhpcy5kZWZhdWx0UGFja2FnZSA9IGRlZmF1bHRQYWNrYWdlOworICAgICAgICAgICAgdGhpcy5uYW1lcyA9IGNsYXNzbmFtZXM7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMgYW5kIGEgZGVzY3JpcHRpb24sIGFuZAorICAgICAgICAgKiB1c2VzIHRoZSBwYWNrYWdlIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMsIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgdGhpcyhudWxsLCBjbGFzc25hbWVzLCBkZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMsIGFuZCB1c2VzIHRoZSBwYWNrYWdlCisgICAgICAgICAqIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMobnVsbCwgY2xhc3NuYW1lcywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFRhcmdldCBnZXRUYXJnZXRzKFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgICAgICBUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0YXJnZXROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hJbml0KCk7IC8vIGhtbW0sIHdhbnQgdG8gZ2V0IHN1YnRlc3Qgd2l0aG91dCBpbml0aWFsaXppbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCB0ZXN0cworCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgdGVzdCA9IGdldFN1YnRlc3QodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRlc3QubmV3IENsYXNzVGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSB0aGlzLm5ldyBUYXJnZXQodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUZXN0Rm13a0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMubmV3IFRhcmdldCh0YXJnZXROYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5kb1JlY3Vyc2UoKSkgeworICAgICAgICAgICAgICAgIGZpbmlzaEluaXQoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGdyb3VwT25seSA9IHBhcmFtcy5kb1JlY3Vyc2VHcm91cHNPbmx5KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5hbWVzLmxlbmd0aDsgLS1pID49IDA7KSB7CisgICAgICAgICAgICAgICAgICAgIFRhcmdldCBuZXdUYXJnZXQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNscyA9PSBudWxsKSB7IC8vIGhhY2sgbm8gd2FybmluZyBmb3IgbWlzc2luZyB0ZXN0cworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGhpcy5uZXcgVGFyZ2V0KG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RGbXdrIHRlc3QgPSBnZXRTdWJ0ZXN0KGksIGdyb3VwT25seSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGVzdC5uZXcgQ2xhc3NUYXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwT25seSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQgPSB0aGlzLm5ldyBFbXB0eVRhcmdldChuYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFyZ2V0ID0gdGhpcy5uZXcgVGFyZ2V0KG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1RhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQuc2V0TmV4dCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3VGFyZ2V0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBUZXN0Rm13ayBnZXRTdWJ0ZXN0KFN0cmluZyB0ZXN0TmFtZSkgdGhyb3dzIFRlc3RGbXdrRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGZpbmlzaEluaXQoKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChuYW1lc1tpXS5lcXVhbHNJZ25vcmVDYXNlKHRlc3ROYW1lKSkgeyAvLyBhbGxvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWluc2Vuc2l0aXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoaW5nCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdWJ0ZXN0KGksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdEZtd2tFeGNlcHRpb24odGVzdE5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0Rm13ayBnZXRTdWJ0ZXN0KGludCBpLCBib29sZWFuIGdyb3VwT25seSkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gdGVzdHNbaV07CisgICAgICAgICAgICBpZiAoY2xzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBPbmx5ICYmICFUZXN0R3JvdXAuY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjbHMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRlc3RGbXdrIHN1YnRlc3QgPSAoVGVzdEZtd2spIGNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0LnBhcmFtcyA9IHBhcmFtczsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnRlc3Q7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBmaW5pc2hJbml0KCkgeworICAgICAgICAgICAgaWYgKHRlc3RzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZXN0cyA9IG5ldyBDbGFzc1tuYW1lcy5sZW5ndGhdOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5pbmRleE9mKCcuJykgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBkZWZhdWx0UGFja2FnZSArIG5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVRlc3RGbXdrLmNsYXNzLmlzQXNzaWduYWJsZUZyb20oY2xzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNsYXNzICIgKyBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZG9lcyBub3QgZXh0ZW5kIFRlc3RGbXdrIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzW2ldID0gY2xzOworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNbaV0gPSBnZXRDbGFzc1RhcmdldE5hbWUoY2xzKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSB0ZXN0c1tpXSBudWxsIGFuZCBuYW1lIGFzIGNsYXNzbmFtZQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgdGFyZ2V0IGlzIGludmFsaWQuCisgICAgICovCisgICAgcHVibGljIGNsYXNzIFRhcmdldCB7CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IG5leHQ7CisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgbmFtZTsKKworICAgICAgICBwdWJsaWMgVGFyZ2V0KFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFRhcmdldCBzZXROZXh0KFRhcmdldCBuZXh0KSB7CisgICAgICAgICAgICB0aGlzLm5leHQgPSBuZXh0OworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVGFyZ2V0IGdldE5leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV4dDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAgICAgaW50IGYgPSBmaWx0ZXIoKTsKKyAgICAgICAgICAgIGlmIChmID09IC0xKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGRlZmF1bHRUaW1lWm9uZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLndyaXRlVGVzdEludmFsaWQobmFtZSwgcGFyYW1zLm5vZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnB1c2gobmFtZSwgZ2V0RGVzY3JpcHRpb24oKSwgZiA9PSAxKTsKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZSgpOworICAgICAgICAgICAgICAgICAgICBwYXJhbXMucG9wKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGludCBmaWx0ZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gcGFyYW1zLmZpbHRlcihuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2xhc3MgRW1wdHlUYXJnZXQgZXh0ZW5kcyBUYXJnZXQgeworICAgICAgICBwdWJsaWMgRW1wdHlUYXJnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBNZXRob2RUYXJnZXQgZXh0ZW5kcyBUYXJnZXQgeworICAgICAgICBwcml2YXRlIE1ldGhvZCB0ZXN0TWV0aG9kOworCisgICAgICAgIHB1YmxpYyBNZXRob2RUYXJnZXQoU3RyaW5nIG5hbWUsIE1ldGhvZCBtZXRob2QpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICAgICAgdGVzdE1ldGhvZCA9IG1ldGhvZDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIHRlc3RNZXRob2QgIT0gbnVsbCAmJiB2YWxpZGF0ZU1ldGhvZChuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWV0aG9kRGVzY3JpcHRpb24obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgICAgIGlmIChwYXJhbXMuaW5Eb2NNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGV4ZWN1dGUKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXBhcmFtcy5zdGFjay5pbmNsdWRlZCkgeworICAgICAgICAgICAgICAgICsrcGFyYW1zLmludmFsaWRDb3VudDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gTk9fQVJHUyA9IG5ldyBPYmplY3RbMF07CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgKytwYXJhbXMudGVzdENvdW50OworICAgICAgICAgICAgICAgICAgICBpbml0KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RNZXRob2QuaW52b2tlKFRlc3RGbXdrLnRoaXMsIE5PX0FSR1MpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2FuJ3QgYWNjZXNzIHRlc3QgbWV0aG9kICIgKyB0ZXN0TWV0aG9kLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZSl7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUV4Y2VwdGlvbihlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH1jYXRjaCAoTm9DbGFzc0RlZkZvdW5kRXJyb3IgZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gbyl7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0YWNrVHJhY2UoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnMgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBQcmludFN0cmVhbSBwcyA9IG5ldyBQcmludFN0cmVhbShicyk7CisgICAgICAgICAgICBlLmdldFRhcmdldEV4Y2VwdGlvbigpLnByaW50U3RhY2tUcmFjZShwcyk7CisgICAgICAgICAgICByZXR1cm4gYnMudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBDbGFzc1RhcmdldCBleHRlbmRzIFRhcmdldCB7CisgICAgICAgIFN0cmluZyB0YXJnZXROYW1lOworCisgICAgICAgIHB1YmxpYyBDbGFzc1RhcmdldCgpIHsKKyAgICAgICAgICAgIHRoaXMobnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQ2xhc3NUYXJnZXQoU3RyaW5nIHRhcmdldE5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKGdldENsYXNzVGFyZ2V0TmFtZShUZXN0Rm13ay50aGlzLmdldENsYXNzKCkpKTsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0TmFtZSA9IHRhcmdldE5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0Rm13ay50aGlzLnZhbGlkYXRlKCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RGbXdrLnRoaXMuZ2V0RGVzY3JpcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbCsrOworICAgICAgICAgICAgVGFyZ2V0IHRhcmdldCA9IHJhbmRvbWl6ZShnZXRUYXJnZXRzKHRhcmdldE5hbWUpKTsKKyAgICAgICAgICAgIHdoaWxlICh0YXJnZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRhcmdldC5ydW4oKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQubmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbC0tOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgcmFuZG9taXplKFRhcmdldCB0KSB7CisgICAgICAgICAgICBpZiAodCAhPSBudWxsICYmIHQuZ2V0TmV4dCgpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKHQpOworICAgICAgICAgICAgICAgICAgICB0ID0gdC5nZXROZXh0KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVGFyZ2V0W10gYXJyID0gKFRhcmdldFtdKSBsaXN0LnRvQXJyYXkobmV3IFRhcmdldFtsaXN0LnNpemUoKV0pOworCisgICAgICAgICAgICAgICAgaWYgKHRydWUpIHsgLy8gdG9kbyAtIGFkZCB0byBwYXJhbXM/CisgICAgICAgICAgICAgICAgICAgIC8vIGRpZmZlcmVudCBqdm1zIHJldHVybiBjbGFzcyBtZXRob2RzIGluIGRpZmZlcmVudCBvcmRlcnMsCisgICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNvcnQgdGhlbSAoYWx3YXlzLCBhbmQgdGhlbiByYW5kb21pemUgdGhlbSwgc28gdGhhdAorICAgICAgICAgICAgICAgICAgICAvLyBmb3JjaW5nIGEgc2VlZCB3aWxsIGFsc28gd29yayBhY3Jvc3MganZtcykuCisgICAgICAgICAgICAgICAgICAgIEFycmF5cy5zb3J0KGFyciwgbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvcnQgaW4gcmV2ZXJzZSBvcmRlciwgbGF0ZXIgd2UgbGluayB1cCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChUYXJnZXQpIHJocykubmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbXBhcmVUbygoKFRhcmdldCkgbGhzKS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gdCBpcyBudWxsIHRvIHN0YXJ0LCBlbmRzIHVwIGFzIGZpcnN0IGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gKGFyclthcnIubGVuZ3RoLTFdKQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGFycltpXS5zZXROZXh0KHQpOyAvLyByZWxpbmsgaW4gZm9yd2FyZCBvcmRlcgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5yYW5kb20gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0ID0gbnVsbDsgLy8gcmVzZXQgdCB0byBudWxsCisgICAgICAgICAgICAgICAgICAgIFJhbmRvbSByID0gcGFyYW1zLnJhbmRvbTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGFyci5sZW5ndGg7IC0taSA+PSAxOykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHggPSByLm5leHRJbnQoaSArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGFyclt4XS5zZXROZXh0KHQpOworICAgICAgICAgICAgICAgICAgICAgICAgYXJyW3hdID0gYXJyW2ldOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgdCA9IGFyclswXS5zZXROZXh0KHQpOyAvLyBuZXcgZmlyc3QgZWxlbWVudAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBib2lsZXJwbGF0ZSBjb2RlIHRoYXQgbWFrZXMgaXQgcG9zc2libGUKKyAgICAvLyB0byBhZGQgYSBuZXcgdGVzdCBieSBzaW1wbHkgYWRkaW5nIGEgZnVuY3Rpb24gdG8gYW4gZXhpc3RpbmcgY2xhc3MKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJvdGVjdGVkIFRlc3RGbXdrKCkgeworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGFyc2UgYXJndW1lbnRzIGludG8gYSBUZXN0UGFyYW1zIG9iamVjdCBhbmQgYSBjb2xsZWN0aW9uIG9mIHRhcmdldAorICAgICAqIHBhdGhzLiBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgcGFyc2luZyB0aGUgVGVzdFBhcmFtcywgcHJpbnQgdXNhZ2UgYW5kIGV4aXQKKyAgICAgKiB3aXRoIC0xLiBPdGhlcndpc2UsIGNhbGwgcmVzb2x2ZVRhcmdldChUZXN0UGFyYW1zLCBTdHJpbmcpIGZvciBlYWNoIHBhdGgsCisgICAgICogYW5kIHJ1biB0aGUgcmV0dXJuZWQgdGFyZ2V0LiBBZnRlciB0aGUgbGFzdCB0ZXN0IHJldHVybnMsIGlmIHByb21wdCBpcworICAgICAqIHNldCwgcHJvbXB0IGFuZCB3YWl0IGZvciBpbnB1dCBmcm9tIHN0ZGluLiBGaW5hbGx5LCBleGl0IHdpdGggbnVtYmVyIG9mCisgICAgICogZXJyb3JzLgorICAgICAqIAorICAgICAqIFRoaXMgbWV0aG9kIG5ldmVyIHJldHVybnMsIHNpbmNlIGl0IGFsd2F5cyBleGl0cyB3aXRoIFN5c3RlbS5leGl0KCk7CisgICAgICovCisgICAgcHVibGljIHZvaWQgcnVuKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3lzdGVtLmV4aXQocnVuKGFyZ3MsIG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KSkpOworICAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTGlrZSBydW4oU3RyaW5nW10pIGV4Y2VwdCB0aGlzIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZXJyb3IgbG9nLgorICAgICAqIFVubGlrZSBydW4oU3RyaW5nW10pIHRoaXMgcmV0dXJucyB0aGUgZXJyb3IgY29kZSBhcyBhIHJlc3VsdCBpbnN0ZWFkIG9mCisgICAgICogY2FsbGluZyBTeXN0ZW0uZXhpdCgpLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcnVuKFN0cmluZ1tdIGFyZ3MsIFByaW50V3JpdGVyIGxvZykgeworICAgICAgICBib29sZWFuIHByb21wdCA9IGZhbHNlOworICAgICAgICBpbnQgd3ggPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1wIikgfHwgYXJnLmVxdWFscygiLXByb21wdCIpKSB7CisgICAgICAgICAgICAgICAgcHJvbXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHd4IDwgaSkgeworICAgICAgICAgICAgICAgICAgICBhcmdzW3d4XSA9IGFyZzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd3grKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB3aGlsZSAod3ggPCBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgYXJnc1t3eCsrXSA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRlc3RQYXJhbXMgcGFyYW1zID0gVGVzdFBhcmFtcy5jcmVhdGUoYXJncywgbG9nKTsKKyAgICAgICAgaWYgKHBhcmFtcyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBlcnJvckNvdW50ID0gcnVuVGVzdHMocGFyYW1zLCBhcmdzKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYXJhbXMuc2VlZCAhPSAwKSB7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIi1yYW5kb206IiArIHBhcmFtcy5zZWVkKTsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cuZmx1c2goKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwYXJhbXMuZXJyb3JTdW1tYXJ5ICE9IG51bGwgJiYgcGFyYW1zLmVycm9yU3VtbWFyeS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigiXG5FcnJvciBzdW1tYXJ5OiIpOworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKHBhcmFtcy5lcnJvclN1bW1hcnkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocHJvbXB0KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhpdCBSRVRVUk4gdG8gZXhpdC4uLiIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uaW4ucmVhZCgpOworICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigiRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVycm9yQ291bnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBydW5UZXN0cyhUZXN0UGFyYW1zIHBhcmFtcywgU3RyaW5nW10gdGVzdHMpIHsKKyAgICAgICAgaW50IGVjID0gMDsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBzdW1tYXJ5ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmICh0ZXN0cy5sZW5ndGggPT0gMCB8fCB0ZXN0c1swXSA9PSBudWxsKSB7IC8vIG5vIGFyZ3MKKyAgICAgICAgICAgICAgICBwYXJhbXMuaW5pdCgpOworICAgICAgICAgICAgICAgIHJlc29sdmVUYXJnZXQocGFyYW1zKS5ydW4oKTsKKyAgICAgICAgICAgICAgICBlYyA9IHBhcmFtcy5lcnJvckNvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aCA7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdHNbaV0gPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmluaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVRhcmdldChwYXJhbXMsIHRlc3RzW2ldKS5ydW4oKTsKKyAgICAgICAgICAgICAgICAgICAgZWMgKz0gcGFyYW1zLmVycm9yQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmVycm9yU3VtbWFyeSAhPSBudWxsICYmIHBhcmFtcy5lcnJvclN1bW1hcnkubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VtbWFyeSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnkuYXBwZW5kKCJcblRlc3QgUm9vdDogIiArIHRlc3RzW2ldICsgIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5LmFwcGVuZChwYXJhbXMuZXJyb3JTdW1tYXJ5KCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhcmFtcy5lcnJvclN1bW1hcnkgPSBzdW1tYXJ5OworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UocGFyYW1zLmxvZyk7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKCJlbmNvdW50ZXJlZCBleGNlcHRpb24sIGV4aXRpbmciKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGVjOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDbGFzc1RhcmdldCBmb3IgdGhpcyB0ZXN0LiBQYXJhbXMgaXMgc2V0IG9uIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFyZ2V0IHJlc29sdmVUYXJnZXQoVGVzdFBhcmFtcyBwYXJhbXMpIHsKKyAgICAgICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7CisgICAgICAgIHJldHVybiBuZXcgQ2xhc3NUYXJnZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvbHZlIGEgcGF0aCBmcm9tIHRoaXMgdGVzdCB0byBhIHRhcmdldC4gSWYgdGhpcyB0ZXN0IGhhcyBzdWJ0ZXN0cywgYW5kCisgICAgICogdGhlIHBhdGggY29udGFpbnMgJy8nLCB0aGUgcG9ydGlvbiBiZWZvcmUgdGhlICcvJyBpcyByZXNvbHZlZCB0byBhCisgICAgICogc3VidGVzdCwgdW50aWwgdGhlIHBhdGggaXMgY29uc3VtZWQgb3IgdGhlIHRlc3QgaGFzIG5vIHN1YnRlc3RzLiBSZXR1cm5zCisgICAgICogYSBDbGFzc1RhcmdldCBjcmVhdGVkIHVzaW5nIHRoZSByZXNvbHZlZCB0ZXN0IGFuZCByZW1haW5pbmcgcGF0aCAod2hpY2gKKyAgICAgKiBvdWdodCB0byBiZSBudWxsIG9yIGEgbWV0aG9kIG5hbWUpLiBQYXJhbXMgaXMgc2V0IG9uIHRoZSB0YXJnZXQncyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyBUYXJnZXQgcmVzb2x2ZVRhcmdldChUZXN0UGFyYW1zIHBhcmFtcywgU3RyaW5nIHRhcmdldFBhdGgpIHsKKyAgICAgICAgVGVzdEZtd2sgdGVzdCA9IHRoaXM7CisgICAgICAgIHRlc3QucGFyYW1zID0gcGFyYW1zOworCisgICAgICAgIGlmICh0YXJnZXRQYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXRQYXRoLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRQYXRoID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgICAgIGludCBlID0gdGFyZ2V0UGF0aC5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgIC8vIHRyaW0gYWxsIGxlYWRpbmcgYW5kIHRyYWlsaW5nICcvJworICAgICAgICAgICAgICAgIHdoaWxlICh0YXJnZXRQYXRoLmNoYXJBdChwKSA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAoZSA+IHAgJiYgdGFyZ2V0UGF0aC5jaGFyQXQoZSAtIDEpID09ICcvJykgeworICAgICAgICAgICAgICAgICAgICAtLWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwID4gMCB8fCBlIDwgdGFyZ2V0UGF0aC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRQYXRoID0gdGFyZ2V0UGF0aC5zdWJzdHJpbmcocCwgZSAtIHApOworICAgICAgICAgICAgICAgICAgICBwID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZSA9IHRhcmdldFBhdGgubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4gPSB0YXJnZXRQYXRoLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwcmVmaXggPSBuID09IC0xID8gdGFyZ2V0UGF0aCA6IHRhcmdldFBhdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnN0cmluZygwLCBuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RGbXdrIHN1YnRlc3QgPSB0ZXN0LmdldFN1YnRlc3QocHJlZml4KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnRlc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gc3VidGVzdDsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQYXRoID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHRhcmdldFBhdGguc3Vic3RyaW5nKG4gKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFRlc3RGbXdrRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0Lm5ldyBUYXJnZXQodGFyZ2V0UGF0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRlc3QubmV3IENsYXNzVGFyZ2V0KHRhcmdldFBhdGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHdlIGNhbiBydW4gdGhpcyB0ZXN0IChhbGxvd3MgdGVzdCB0byBpbnNwZWN0IGp2bSwKKyAgICAgKiBlbnZpcm9ubWVudCwgcGFyYW1zIGJlZm9yZSBydW5uaW5nKQorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRhcmdldHMgZm9yIHRoaXMgdGVzdC4gSWYgdGFyZ2V0TmFtZSBpcyBudWxsLCByZXR1cm4gYWxsCisgICAgICogdGFyZ2V0cywgb3RoZXJ3aXNlIHJldHVybiBhIHRhcmdldCBmb3IganVzdCB0aGF0IG5hbWUuIFRoZSByZXR1cm5lZAorICAgICAqIHRhcmdldCBjYW4gYmUgbnVsbC4KKyAgICAgKiAKKyAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGEgTWV0aG9kVGFyZ2V0IGZvciBlYWNoIHB1YmxpYyBtZXRob2QKKyAgICAgKiBvZiB0aGUgb2JqZWN0J3MgY2xhc3Mgd2hvc2UgbmFtZSBzdGFydHMgd2l0aCAiVGVzdCIgb3IgInRlc3QiLgorICAgICAqLworICAgIHByb3RlY3RlZCBUYXJnZXQgZ2V0VGFyZ2V0cyhTdHJpbmcgdGFyZ2V0TmFtZSkgeworICAgICAgICBDbGFzcyBjbHMgPSBnZXRDbGFzcygpOworICAgICAgICBpZiAodGFyZ2V0TmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE1ldGhvZCBtZXRob2QgPSBjbHMuZ2V0TWV0aG9kKHRhcmdldE5hbWUsIG51bGwpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTWV0aG9kVGFyZ2V0KHRhcmdldE5hbWUsIG1ldGhvZCk7CisgICAgICAgICAgICB9IGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGFyZ2V0KHRhcmdldE5hbWUpOyAvLyBpbnZhbGlkIHRhcmdldAorICAgICAgICAgICAgfSBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgVGFyZ2V0IHRhcmdldCA9IG51bGw7CisgICAgICAgICAgICBpZiAocGFyYW1zLmRvTWV0aG9kcygpKSB7CisgICAgICAgICAgICAgICAgTWV0aG9kW10gbWV0aG9kcyA9IGNscy5nZXREZWNsYXJlZE1ldGhvZHMoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWV0aG9kcy5sZW5ndGg7IC0taSA+PSAwOykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG1ldGhvZHNbaV0uZ2V0TmFtZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJUZXN0IikgfHwgbmFtZS5zdGFydHNXaXRoKCJ0ZXN0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IG5ldyBNZXRob2RUYXJnZXQobmFtZSwgbWV0aG9kc1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZU1ldGhvZChTdHJpbmcgbmFtZSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldE1ldGhvZERlc2NyaXB0aW9uKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vIG1ldGhvZCB0ZXN0cyBoYXZlIG5vIHN1YnRlc3RzLCBncm91cCB0ZXN0cyBvdmVycmlkZQorICAgIHByb3RlY3RlZCBUZXN0Rm13ayBnZXRTdWJ0ZXN0KFN0cmluZyBwcmVmaXgpIHRocm93cyBUZXN0Rm13a0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzVmVyYm9zZSgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy52ZXJib3NlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG5vRGF0YSgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5ub2RhdGE7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNUaW1pbmcoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMudGltaW5nIDwgTG9uZy5NQVhfVkFMVUU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNNZW1UcmFja2luZygpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5tZW11c2FnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAwID0gZmV3ZXN0IHRlc3RzLCA1IGlzIG5vcm1hbCBidWlsZCwgMTAgaXMgbW9zdCB0ZXN0cworICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5jbHVzaW9uKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLmluY2x1c2lvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZHVsYXJCdWlsZCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy53YXJuaW5nczsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1F1aWNrKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLmluY2x1c2lvbiA9PSAwOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKSB7CisgICAgICAgIHBhcmFtcy5tc2cobWVzc2FnZSwgbGV2ZWwsIGluY0NvdW50LCBuZXdsbik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGludCBnZXRFcnJvckNvdW50KCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLmVycm9yQ291bnQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFRpbWVab25lIHNhZmVHZXRUaW1lWm9uZShTdHJpbmcgaWQpIHsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCk7CisgICAgICAgIGlmICh0eiA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZVpvbmUuZ2V0VGltZVpvbmUoIiArIGlkICsgIikgPT4gbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHouZ2V0SUQoKS5lcXVhbHMoaWQpKSB7CisgICAgICAgICAgICB3YXJubG4oIkZBSUw6IFRpbWVab25lLmdldFRpbWVab25lKCIgKyBpZCArICIpID0+ICIgKyB0ei5nZXRJRCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHo7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgYSB1c2FnZSBtZXNzYWdlIGZvciB0aGlzIHRlc3QgY2xhc3MuCisgICAgICovCisgICAgcHVibGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIHVzYWdlKG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KSwgZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdXNhZ2UoUHJpbnRXcml0ZXIgcHcsIFN0cmluZyBjbGFzc05hbWUpIHsKKyAgICAgICAgcHcucHJpbnRsbigiVXNhZ2U6ICIgKyBjbGFzc05hbWUgKyAiIG9wdGlvbiogdGFyZ2V0KiIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oIk9wdGlvbnM6Iik7CisgICAgICAgIHB3LnByaW50bG4oIiAtZGVzY3JpYmUgUHJpbnQgYSBzaG9ydCBkZXNjcmlwdGl2ZSBzdHJpbmcgZm9yIHRoaXMgdGVzdCBhbmQgYWxsIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgICAgICBsaXN0ZWQgdGFyZ2V0cy4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1lPG4+IFNldCBleGhhdXN0aXZlbmVzcyBmcm9tIDAuLjEwLiAgRGVmYXVsdCBpcyAwLCBmZXdlc3QgdGVzdHMuXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBUbyBydW4gYWxsIHRlc3RzLCBzcGVjaWZ5IC1lMTAuICBHaXZpbmcgLWUgd2l0aCBubyA8bj4gaXNcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIHRoZSBzYW1lIGFzIC1lNS4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1maWx0ZXI6PHN0cj4gT25seSB0ZXN0cyBtYXRjaGluZyBmaWx0ZXIgd2lsbCBiZSBydW4gb3IgbGlzdGVkLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgPHN0cj4gaXMgb2YgdGhlIGZvcm0gWydeJ110ZXh0WycsJ1snXidddGV4dF0uXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBFYWNoIHN0cmluZyBkZWxpbWl0ZWQgYnkgJywnIGlzIGEgc2VwYXJhdGUgZmlsdGVyIGFyZ3VtZW50LlxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgSWYgJ14nIGlzIHByZXBlbmRlZCB0byBhbiBhcmd1bWVudCwgaXRzIG1hdGNoZXMgYXJlIGV4Y2x1ZGVkLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgRmlsdGVyaW5nIG9wZXJhdGVzIG9uIHRlc3QgZ3JvdXBzIGFzIHdlbGwgYXMgdGVzdHMsIGlmIGEgdGVzdFxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgZ3JvdXAgaXMgaW5jbHVkZWQsIGFsbCBpdHMgc3VidGVzdHMgdGhhdCBhcmUgbm90IGV4Y2x1ZGVkIHdpbGxcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIGJlIHJ1bi4gIEV4YW1wbGVzOlxuIgorICAgICAgICAgICAgICAgICArICIgICAgLWZpbHRlcjpBIC0tIG9ubHkgdGVzdHMgbWF0Y2hpbmcgQSBhcmUgcnVuLiAgSWYgQSBtYXRjaGVzIGEgZ3JvdXAsXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBhbGwgc3VidGVzdHMgb2YgdGhpcyBncm91cCBhcmUgcnVuLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgLWZpbHRlcjpeQSAtLSBhbGwgdGVzdHMgZXhjZXB0IHRob3NlIG1hdGNoaW5nIEEgYXJlIHJ1bi4gIElmIEEgbWF0Y2hlc1xuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgIGEgZ3JvdXAsIG5vIHN1YnRlc3Qgb2YgdGhhdCBncm91cCB3aWxsIGJlIHJ1bi5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgIC1maWx0ZXI6QSxCLF5DLF5EIC0tIHRlc3RzIG1hdGNoaW5nIEEgb3IgQiBhbmQgbm90IEMgYW5kIG5vdCBEIGFyZSBydW5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIE5vdGU6IEZpbHRlcnMgYXJlIGNhc2UgaW5zZW5zaXRpdmUuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtaFtlbHBdIFByaW50IHRoaXMgaGVscCB0ZXh0IGFuZCBleGl0LiIpOworICAgICAgICBwdy5wcmludGxuKCIgLWxbaXN0XSBMaXN0IGltbWVkaWF0ZSB0YXJnZXRzIG9mIHRoaXMgdGVzdCIpOworICAgICAgICBwdy5wcmludGxuKCIgICAtbGEsIC1saXN0QWxsIExpc3QgaW1tZWRpYXRlIHRhcmdldHMgb2YgdGhpcyB0ZXN0LCBhbmQgYWxsIHN1YnRlc3RzIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgIC1sZSwgLWxpc3RFeGF1c3RpdmUgTGlzdCBhbGwgc3VidGVzdHMgYW5kIHRhcmdldHMiKTsKKyAgICAgICAgLy8gZG9uJ3Qga25vdyBob3cgdG8gZ2V0IHVzZWZ1bCBudW1iZXJzIGZvciBtZW1vcnkgdXNhZ2UgdXNpbmcgamF2YSBBUEkKKyAgICAgICAgLy8gY2FsbHMKKyAgICAgICAgLy8gICAgICBwdy5wcmludGxuKCIgLW1bZW1vcnldIHByaW50IG1lbW9yeSB1c2FnZSBhbmQgZm9yY2UgZ2MgZm9yCisgICAgICAgIC8vIGVhY2ggdGVzdCIpOworICAgICAgICBwdy5wcmludGxuKCIgLW5bb3Rocm93XSBNZXNzYWdlIG9uIHRlc3QgZmFpbHVyZSByYXRoZXIgdGhhbiBleGNlcHRpb24iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1wcm9tcHQgUHJvbXB0IGJlZm9yZSBleGl0aW5nIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtcVt1aWV0XSBEbyBub3Qgc2hvdyB3YXJuaW5ncyIpOworICAgICAgICBwdy5wcmludGxuKCIgLXJbYW5kb21dWzo8bj5dIElmIHByZXNlbnQsIHJhbmRvbWl6ZSB0YXJnZXRzLiAgSWYgbiBpcyBwcmVzZW50LFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiICAgICAgIHVzZSBpdCBhcyB0aGUgc2VlZC4gIElmIHJhbmRvbSBpcyBub3Qgc2V0LCB0YXJnZXRzIHdpbGxcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAgICAgICBiZSBpbiBhbHBoYWJldGljYWwgb3JkZXIgdG8gZW5zdXJlIGNyb3NzLXBsYXRmb3JtIGNvbnNpc3RlbmN5LiIpOworICAgICAgICBwdy5wcmludGxuKCIgLXNbaWxlbnRdIE5vIG91dHB1dCBleGNlcHQgZXJyb3Igc3VtbWFyeSBvciBleGNlcHRpb25zLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLXRmaWx0ZXI6PHN0cj4gVHJhbnNsaXRlcmF0b3IgVGVzdCBmaWx0ZXIgb2YgaWRzLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLXRbaW1lXVs6PG4+XSBQcmludCBlbGFwc2VkIHRpbWUgZm9yIGVhY2ggdGVzdC4gIGlmIG4gaXMgcHJlc2VudFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiICAgICAgIG9ubHkgcHJpbnQgdGltZXMgPj0gbiBtaWxsaXNlY29uZHMuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtdltlcmJvc2VdIFNob3cgbG9nIG1lc3NhZ2VzIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtd1thcm5pbmddIENvbnRpbnVlIGluIHByZXNlbmNlIG9mIHdhcm5pbmdzLCBhbmQgZGlzYWJsZSBtaXNzaW5nIHRlc3Qgd2FybmluZ3MuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtbm9kYXRhIHwgLW5kIERvIG5vdCB3YXJuIGlmIHJlc291cmNlIGRhdGEgaXMgbm90IHByZXNlbnQuIik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbigiIElmIGEgbGlzdCBvciBkZXNjcmliZSBvcHRpb24gaXMgcHJvdmlkZWQsIG5vIHRlc3RzIGFyZSBydW4uIik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbigiVGFyZ2V0czoiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIElmIG5vIHRhcmdldCBpcyBzcGVjaWZpZWQsIGFsbCB0YXJnZXRzIGZvciB0aGlzIHRlc3QgYXJlIHJ1bi4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIElmIGEgdGFyZ2V0IGNvbnRhaW5zIG5vICcvJyBjaGFyYWN0ZXJzLCBhbmQgbWF0Y2hlcyBhIHRhcmdldCIpOworICAgICAgICBwdy5wcmludGxuKCIgb2YgdGhpcyB0ZXN0LCB0aGUgdGFyZ2V0IGlzIHJ1bi4gIE90aGVyd2lzZSwgdGhlIHBhcnQgYmVmb3JlIHRoZSIpOworICAgICAgICBwdy5wcmludGxuKCIgJy8nIGlzIHVzZWQgdG8gbWF0Y2ggYSBzdWJ0ZXN0LCB3aGljaCB0aGVuIGV2YWx1YXRlcyB0aGUiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIHJlbWFpbmRlciBvZiB0aGUgdGFyZ2V0IGFzIGFib3ZlLiAgVGFyZ2V0IG1hdGNoaW5nIGlzIGNhc2UtaW5zZW5zaXRpdmUuIik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbigiIElmIG11bHRpcGxlIHRhcmdldHMgYXJlIHByb3ZpZGVkLCBlYWNoIGlzIGV4ZWN1dGVkIGluIG9yZGVyLiIpOworICAgICAgICBwdy5mbHVzaCgpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhcltdIHMpeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KHNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChieXRlW10gcyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgoc1tpXSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGNoYXIgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGZvbyA9IEludGVnZXIudG9TdHJpbmcoY2gsIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBmb3IgKGludCBpID0gZm9vLmxlbmd0aCgpOyBpIDwgNDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvbzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoaW50IGNoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZyBmb28gPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGZvby5sZW5ndGgoKTsgaSA8IDQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnMCcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQgKyBmb287CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KHMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICByZXR1cm4gaGV4KHMudG9TdHJpbmcoKSk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZXR0aWZ5KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaWYgKGNoID4gMHhmZmZmZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcVTAwIik7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgoY2gpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPiAweGZmZmYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcXFUwMDAiKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGhleChjaCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+IDB4N2YpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGhleChjaCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSBjaCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZXR0aWZ5KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgIHJldHVybiBwcmV0dGlmeShzLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhciBjYWw7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBEYXRlIGdpdmVuIGEgeWVhciwgbW9udGgsIGFuZCBkYXkgb2YgbW9udGguIFRoaXMgaXMgc2ltaWxhciB0bworICAgICAqIG5ldyBEYXRlKHktMTkwMCwgbSwgZCkuIEl0IHVzZXMgdGhlIGRlZmF1bHQgdGltZSB6b25lIGF0IHRoZSB0aW1lIHRoaXMKKyAgICAgKiBtZXRob2QgaXMgZmlyc3QgY2FsbGVkLgorICAgICAqIAorICAgICAqIEBwYXJhbSB5ZWFyCisgICAgICogICAgICAgICAgICB1c2UgMjAwMCBmb3IgMjAwMCwgdW5saWtlIG5ldyBEYXRlKCkKKyAgICAgKiBAcGFyYW0gbW9udGgKKyAgICAgKiAgICAgICAgICAgIHVzZSBDYWxlbmRhci5KQU5VQVJZIGV0Yy4KKyAgICAgKiBAcGFyYW0gZG9tCisgICAgICogICAgICAgICAgICBkYXkgb2YgbW9udGgsIDEtYmFzZWQKKyAgICAgKiBAcmV0dXJuIGEgRGF0ZSBvYmplY3QgZm9yIHRoZSBnaXZlbiB5L20vZAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgc3luY2hyb25pemVkIGphdmEudXRpbC5EYXRlIGdldERhdGUoaW50IHllYXIsIGludCBtb250aCwKKyAgICAgICAgICAgIGludCBkb20pIHsKKyAgICAgICAgaWYgKGNhbCA9PSBudWxsKSB7CisgICAgICAgICAgICBjYWwgPSBuZXcgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRvbSk7CisgICAgICAgIHJldHVybiBjYWwuZ2V0VGltZSgpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTnVsbFdyaXRlciBleHRlbmRzIFByaW50V3JpdGVyIHsKKyAgICAgICAgcHVibGljIE51bGxXcml0ZXIoKSB7CisgICAgICAgICAgICBzdXBlcihTeXN0ZW0ub3V0LCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoaW50IGMpIHsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShjaGFyW10gYnVmLCBpbnQgb2ZmLCBpbnQgbGVuKSB7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHMsIGludCBvZmYsIGludCBsZW4pIHsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBwcmludGxuKCkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBBU0NJSVdyaXRlciBleHRlbmRzIFByaW50V3JpdGVyIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIENoYXJhY3RlcnMgdGhhdCB3ZSB0aGluayBhcmUgcHJpbnRhYmxlIGJ1dCB0aGF0IGVzY2FwZVVucHJpbnRhYmxlCisgICAgICAgIC8vIGRvZXNuJ3QKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFBSSU5UQUJMRVMgPSAiXHRcblxyIjsKKworICAgICAgICBwdWJsaWMgQVNDSUlXcml0ZXIoV3JpdGVyIHcsIGJvb2xlYW4gYXV0b0ZsdXNoKSB7CisgICAgICAgICAgICBzdXBlcih3LCBhdXRvRmx1c2gpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEFTQ0lJV3JpdGVyKE91dHB1dFN0cmVhbSBvcywgYm9vbGVhbiBhdXRvRmx1c2gpIHsKKyAgICAgICAgICAgIHN1cGVyKG9zLCBhdXRvRmx1c2gpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoaW50IGMpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaWYgKFBSSU5UQUJMRVMuaW5kZXhPZihjKSA8IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIFRlc3RVdGlsLmVzY2FwZVVucHJpbnRhYmxlKGJ1ZmZlciwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN1cGVyLndyaXRlKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKGNoYXJbXSBidWYsIGludCBvZmYsIGludCBsZW4pIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gb2ZmICsgbGVuOworICAgICAgICAgICAgICAgIHdoaWxlIChvZmYgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2VXRpbC5jaGFyQXQoYnVmLCAwLCBidWYubGVuZ3RoLCBvZmYpOworICAgICAgICAgICAgICAgICAgICBvZmYgKz0gVVRGMTZVdGlsLmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBSSU5UQUJMRVMuaW5kZXhPZihjKSA8IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBUZXN0VXRpbC5lc2NhcGVVbnByaW50YWJsZShidWZmZXIsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBlci53cml0ZShidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgcywgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICAgICAgd3JpdGUocy5zdWJzdHJpbmcob2ZmLCBvZmYgKyBsZW4pLnRvQ2hhckFycmF5KCksIDAsIGxlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBmaWx0ZXJzCisgICAgLy8gbWF0Y2ggYWdhaW5zdCB0aGUgZW50aXJlIGhpZXJhcmNoeQorICAgIC8vIEE7QjshQzshRCAtLT4gKEEgfHxCKSAmJiAoIUMgJiYgIUQpCisgICAgLy8gcG9zaXRpdmUsIG5lZ2F0aXZlLCB1bmtub3duIG1hdGNoZXMKKyAgICAvLyBwb3NpdGl2ZSAtLSBrbm93biB0byBiZSBpbmNsdWRlZCwgbmVnYXRpdmUtIGtub3duIHRvIGJlIGV4Y2x1ZGVkCisgICAgLy8gcG9zaXRpdmUgb25seSBpZiBubyBleGNsdWRlcywgYW5kIG1hdGNoZXMgYXQgbGVhc3Qgb25lIGluY2x1ZGUsIGlmIGFueQorICAgIC8vIG5lZ2F0aXZlIG9ubHkgaWYgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgZXhjbHVkZQorICAgIC8vIG90aGVyd2lzZSwgd2Ugd2FpdAorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBUZXN0UGFyYW1zIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcHJvbXB0OworICAgICAgICBwdWJsaWMgYm9vbGVhbiBub3Rocm93OworICAgICAgICBwdWJsaWMgYm9vbGVhbiB2ZXJib3NlOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBxdWlldDsKKyAgICAgICAgcHVibGljIGludCBsaXN0bGV2ZWw7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGRlc2NyaWJlOworICAgICAgICBwdWJsaWMgYm9vbGVhbiB3YXJuaW5nczsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbm9kYXRhOworICAgICAgICBwdWJsaWMgbG9uZyB0aW1pbmcgPSBMb25nLk1BWF9WQUxVRTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWVtdXNhZ2U7CisgICAgICAgIHB1YmxpYyBpbnQgaW5jbHVzaW9uOworICAgICAgICBwdWJsaWMgU3RyaW5nIGZpbHRlcjsKKyAgICAgICAgcHVibGljIGxvbmcgc2VlZDsKKyAgICAgICAgcHVibGljIFN0cmluZyB0ZmlsdGVyOyAvLyBmb3IgdHJhbnNsaXRlcmF0b3IgdGVzdHMKKworICAgICAgICBwdWJsaWMgU3RhdGUgc3RhY2s7CisKKyAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBlcnJvclN1bW1hcnk7CisKKyAgICAgICAgcHVibGljIFByaW50V3JpdGVyIGxvZzsKKyAgICAgICAgcHVibGljIGludCBpbmRlbnRMZXZlbDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIG5lZWRMaW5lRmVlZDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHN1cHByZXNzSW5kZW50OworICAgICAgICBwdWJsaWMgaW50IGVycm9yQ291bnQ7CisgICAgICAgIHB1YmxpYyBpbnQgd2FybkNvdW50OworICAgICAgICBwdWJsaWMgaW50IGludmFsaWRDb3VudDsKKyAgICAgICAgcHVibGljIGludCB0ZXN0Q291bnQ7CisgICAgICAgIHByaXZhdGUgTnVtYmVyRm9ybWF0IHRmb3JtYXQ7CisgICAgICAgIHB1YmxpYyBSYW5kb20gcmFuZG9tOworCisgICAgICAgIHByaXZhdGUgVGVzdFBhcmFtcygpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0UGFyYW1zIGNyZWF0ZShTdHJpbmcgYXJnbGlzdCwgUHJpbnRXcml0ZXIgbG9nKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBhcmdzID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChhcmdsaXN0ICE9IG51bGwgJiYgYXJnbGlzdC5sZW5ndGgoKSA+IDApIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICAgICAgYXJncyA9IGFyZ2xpc3Quc3BsaXQoIlxccyIpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgIGFyZ3MgPSBVdGlsaXR5LnNwbGl0KGFyZ2xpc3QsICdcdTAwMjAnKTsKKy8vI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKGFyZ3MsIGxvZyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBUZXN0UGFyYW1zIGZyb20gYSBsaXN0IG9mIGFyZ3VtZW50cy4gIElmIHN1Y2Nlc3NmdWwsIHJldHVybiB0aGUgcGFyYW1zIG9iamVjdCwKKyAgICAgICAgICogZWxzZSByZXR1cm4gbnVsbC4gIEVycm9yIG1lc3NhZ2VzIHdpbGwgYmUgcmVwb3J0ZWQgb24gZXJybG9nIGlmIGl0IGlzIG5vdCBudWxsLgorICAgICAgICAgKiBBcmd1bWVudHMgYW5kIHZhbHVlcyB1bmRlcnN0b29kIGJ5IHRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcmdzIGFycmF5CisgICAgICAgICAqIGFuZCBleGlzdGluZyBhcmdzIHdpbGwgYmUgc2hpZnRlZCBkb3duLCB0byBiZSBmaWxsZWQgYnkgbnVsbHMgYXQgdGhlIGVuZC4KKyAgICAgICAgICogQHBhcmFtIGFyZ3MgdGhlIGxpc3Qgb2YgYXJndW1lbnRzCisgICAgICAgICAqIEBwYXJhbSBsb2cgdGhlIGVycm9yIGxvZywgb3IgbnVsbCBpZiBubyBlcnJvciBsb2cgaXMgZGVzaXJlZAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBuZXcgVGVzdFBhcmFtcyBvYmplY3QsIG9yIG51bGwgaWYgZXJyb3IKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdFBhcmFtcyBjcmVhdGUoU3RyaW5nW10gYXJncywgUHJpbnRXcml0ZXIgbG9nKSB7CisgICAgICAgICAgICBUZXN0UGFyYW1zIHBhcmFtcyA9IG5ldyBUZXN0UGFyYW1zKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvZyA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBwYXJhbXMubG9nID0gbmV3IE51bGxXcml0ZXIoKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cgPSAgbmV3IEFTQ0lJV3JpdGVyKGxvZywgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gdXNhZ2VFcnJvciA9IGZhbHNlOworICAgICAgICAgICAgU3RyaW5nIGZpbHRlciA9IG51bGw7CisgICAgICAgICAgICBpbnQgd3ggPSAwOyAvLyB3cml0ZSBhcmdldHMuCisgICAgICAgICAgICBpZiAoYXJncyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnID09IG51bGwgfHwgYXJnLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmcuY2hhckF0KDApID09ICctJykgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXZlcmJvc2UiKSB8fCBhcmcuZXF1YWxzKCItdiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnZlcmJvc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5xdWlldCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItcXVpZXQiKSB8fCBhcmcuZXF1YWxzKCItcSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnF1aWV0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMudmVyYm9zZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItaGVscCIpIHx8IGFyZy5lcXVhbHMoIi1oIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLXdhcm5pbmciKSB8fCBhcmcuZXF1YWxzKCItdyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLndhcm5pbmdzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW5vZGF0YSIpIHx8IGFyZy5lcXVhbHMoIi1uZCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLm5vZGF0YSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1saXN0IikgfHwgYXJnLmVxdWFscygiLWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5saXN0bGV2ZWwgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbGlzdGFsbCIpIHx8IGFyZy5lcXVhbHMoIi1sYSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxpc3RsZXZlbCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1saXN0ZXhhdXN0aXZlIikgfHwgYXJnLmVxdWFscygiLWxlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubGlzdGxldmVsID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW1lbW9yeSIpIHx8IGFyZy5lcXVhbHMoIi1tIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubWVtdXNhZ2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbm90aHJvdyIpIHx8IGFyZy5lcXVhbHMoIi1uIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubm90aHJvdyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmVycm9yU3VtbWFyeSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWRlc2NyaWJlIikgfHwgYXJnLmVxdWFscygiLWQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5kZXNjcmliZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItciIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gYXJnLmluZGV4T2YoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gYXJnLnN1YnN0cmluZyhuICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy5zdWJzdHJpbmcoMCwgbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1yIikgfHwgYXJnLmVxdWFscygiLXJhbmRvbSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5zZWVkID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuc2VlZCA9IExvbmcucGFyc2VMb25nKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIioqKiBFcnJvcjogdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiICsgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2VFcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1lIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZWUgYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuaW5jbHVzaW9uID0gKGFyZy5sZW5ndGgoKSA9PSAyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyA1IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEludGVnZXIucGFyc2VJbnQoYXJnLnN1YnN0cmluZygyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPCAwIHx8IHBhcmFtcy5pbmNsdXNpb24gPiAxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLXRmaWx0ZXI6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMudGZpbHRlciA9IGFyZy5zdWJzdHJpbmcoOCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdGltZSIpIHx8IGFyZy5zdGFydHNXaXRoKCItdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2YWwgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnggPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBudW0gPSBhcmcuc3Vic3RyaW5nKGlueCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gTG9uZy5wYXJzZUxvbmcobnVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIqKiogRXJyb3I6IGNvdWxkIG5vdCBwYXJzZSB0aW1lIHRocmVzaG9sZCAnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBudW0gKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2VFcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMudGltaW5nID0gdmFsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmbXQgPSAiIywwMHMiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPD0gMTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10ID0gIiMsIyMwLjAwMHMiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsIDw9IDEwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQgPSAiIywjIzAuMDBzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbCA8PSAxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdCA9ICIjLCMjMC4wcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy50Zm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoZm10KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1maWx0ZXI6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGFyZy5zdWJzdHJpbmcoOCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIgPT0gbnVsbCA/IHRlbXAgOiBmaWx0ZXIgKyAiLCIgKyB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWY6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGFyZy5zdWJzdHJpbmcoMykudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIgPT0gbnVsbCA/IHRlbXAgOiBmaWx0ZXIgKyAiLCIgKyB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLXMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cgPSBuZXcgTnVsbFdyaXRlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiKioqIEVycm9yOiB1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlRXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1t3eCsrXSA9IGFyZzsgLy8gc2hpZnQgZG93bgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgd2hpbGUgKHd4IDwgYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1t3eCsrXSA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodXNhZ2VFcnJvcikgeworICAgICAgICAgICAgICAgIHVzYWdlKGxvZywgIlRlc3RBbGwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLmZpbHRlciA9IGZpbHRlci50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwYXJhbXMuaW5pdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gcGFyYW1zOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGVycm9yU3VtbWFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvclN1bW1hcnkgPT0gbnVsbCA/ICIiIDogZXJyb3JTdW1tYXJ5LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGluaXQoKSB7CisgICAgICAgICAgICBpbmRlbnRMZXZlbCA9IDA7CisgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHN1cHByZXNzSW5kZW50ID0gZmFsc2U7CisgICAgICAgICAgICBlcnJvckNvdW50ID0gMDsKKyAgICAgICAgICAgIHdhcm5Db3VudCA9IDA7CisgICAgICAgICAgICBpbnZhbGlkQ291bnQgPSAwOworICAgICAgICAgICAgdGVzdENvdW50ID0gMDsKKyAgICAgICAgICAgIHJhbmRvbSA9IHNlZWQgPT0gMCA/IG51bGwgOiBuZXcgUmFuZG9tKHNlZWQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgICAgIFN0YXRlIGxpbms7CisgICAgICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgICAgICAgICBpbnQgbGV2ZWw7CisgICAgICAgICAgICBpbnQgZWM7CisgICAgICAgICAgICBpbnQgd2M7CisgICAgICAgICAgICBpbnQgaWM7CisgICAgICAgICAgICBpbnQgdGM7CisgICAgICAgICAgICBib29sZWFuIGZsdXNoZWQ7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbmNsdWRlZDsKKyAgICAgICAgICAgIGxvbmcgbWVtOworICAgICAgICAgICAgbG9uZyBtaWxsaXM7CisKKyAgICAgICAgICAgIHB1YmxpYyBTdGF0ZShTdGF0ZSBsaW5rLCBTdHJpbmcgbmFtZSwgYm9vbGVhbiBpbmNsdWRlZCkgeworICAgICAgICAgICAgICAgIHRoaXMubGluayA9IGxpbms7CisgICAgICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgICAgICAgICBpZiAobGluayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSAwOworICAgICAgICAgICAgICAgICAgICB0aGlzLmluY2x1ZGVkID0gaW5jbHVkZWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IGxpbmsubGV2ZWwgKyAxOworICAgICAgICAgICAgICAgICAgICB0aGlzLmluY2x1ZGVkID0gaW5jbHVkZWQgfHwgbGluay5pbmNsdWRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhpcy5lYyA9IGVycm9yQ291bnQ7CisgICAgICAgICAgICAgICAgdGhpcy53YyA9IHdhcm5Db3VudDsKKyAgICAgICAgICAgICAgICB0aGlzLmljID0gaW52YWxpZENvdW50OworICAgICAgICAgICAgICAgIHRoaXMudGMgPSB0ZXN0Q291bnQ7CisKKyAgICAgICAgICAgICAgICBpZiAobGluayA9PSBudWxsIHx8IHRoaXMuaW5jbHVkZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtZW0gPSBnZXRtZW0oKTsKKyAgICAgICAgICAgICAgICBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmbHVzaCgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWZsdXNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGluay5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50KGxldmVsKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50KG5hbWUpOworICAgICAgICAgICAgICAgICAgICBsb2cuZmx1c2goKTsKKworICAgICAgICAgICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBhcHBlbmRQYXRoKFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5rICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rLmFwcGVuZFBhdGgoYnVmKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcHVzaChTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBib29sZWFuIGluY2x1ZGVkKSB7CisgICAgICAgICAgICBpZiAoaW5Eb2NNb2RlKCkgJiYgZGVzY3JpYmUgJiYgZGVzY3JpcHRpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG5hbWUgKz0gIjogIiArIGRlc2NyaXB0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhY2sgPSBuZXcgU3RhdGUoc3RhY2ssIG5hbWUsIGluY2x1ZGVkKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBvcCgpIHsKKyAgICAgICAgICAgIGlmIChzdGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgd3JpdGVUZXN0UmVzdWx0KCk7CisgICAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5saW5rOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaW5Eb2NNb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlIHx8IGxpc3RsZXZlbCAhPSAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZG9NZXRob2RzKCkgeworICAgICAgICAgICAgcmV0dXJuICFpbkRvY01vZGUoKSB8fCBsaXN0bGV2ZWwgPT0gMworICAgICAgICAgICAgICAgICAgICB8fCAoaW5kZW50TGV2ZWwgPT0gMSAmJiBsaXN0bGV2ZWwgPiAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGRvUmVjdXJzZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAhaW5Eb2NNb2RlKCkgfHwgbGlzdGxldmVsID4gMQorICAgICAgICAgICAgICAgICAgICB8fCAoaW5kZW50TGV2ZWwgPT0gMSAmJiBsaXN0bGV2ZWwgPiAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGRvUmVjdXJzZUdyb3Vwc09ubHkoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5Eb2NNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgJiYgKGxpc3RsZXZlbCA9PSAyIHx8IChpbmRlbnRMZXZlbCA9PSAxICYmIGxpc3RsZXZlbCA+IDApKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiAwLCAtMSwgb3IgMQorICAgICAgICAvLyAxOiBydW4gdGhpcyB0ZXN0CisgICAgICAgIC8vIDA6IG1pZ2h0IHJ1biB0aGlzIHRlc3QsIG5vIHBvc2l0aXZlIGluY2x1ZGUgb3IgZXhjbHVkZSBvbiB0aGlzIGdyb3VwCisgICAgICAgIC8vIC0xOiBleGNsdWRlIHRoaXMgdGVzdAorICAgICAgICBwdWJsaWMgaW50IGZpbHRlcihTdHJpbmcgdGVzdE5hbWUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgaWYgKGZpbHRlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBub0luY2x1ZGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBib29sZWFuIG5vRXhjbHVkZXMgPSBmaWx0ZXIuaW5kZXhPZignXicpID09IC0xOworICAgICAgICAgICAgICAgIHRlc3ROYW1lID0gdGVzdE5hbWUudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICBpbnQgaXggPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChpeCA8IGZpbHRlci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbml4ID0gZmlsdGVyLmluZGV4T2YoJywnLCBpeCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuaXggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5peCA9IGZpbHRlci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLmNoYXJBdChpeCkgPT0gJ14nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdE5hbWUuaW5kZXhPZihmaWx0ZXIuc3Vic3RyaW5nKGl4ICsgMSwgbml4KSkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vSW5jbHVkZXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0TmFtZS5pbmRleE9mKGZpbHRlci5zdWJzdHJpbmcoaXgsIG5peCkpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9FeGNsdWRlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpeCA9IG5peCArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCAmJiBub0luY2x1ZGVzKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmlsdGVyOiAiICsgdGVzdE5hbWUgKyAiIHJldHVybnM6ICIgKworICAgICAgICAgICAgLy8gcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogTG9nIGFjY2Vzcy4KKyAgICAgICAgICogQHBhcmFtIG1zZyBUaGUgc3RyaW5nIG1lc3NhZ2UgdG8gd3JpdGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgIHdyaXRlKG1zZywgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZWxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgIHdyaXRlKG1zZywgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCB3cml0ZShTdHJpbmcgbXNnLCBib29sZWFuIG5ld2xuKSB7CisgICAgICAgICAgICBpZiAoIXN1cHByZXNzSW5kZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKG5lZWRMaW5lRmVlZCkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nLnByaW50KHNwYWNlcy5zdWJzdHJpbmcoMCwgaW5kZW50TGV2ZWwgKiAyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cucHJpbnQobXNnKTsKKyAgICAgICAgICAgIGlmIChuZXdsbikgeworICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCk7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLmZsdXNoKCk7CisgICAgICAgICAgICBzdXBwcmVzc0luZGVudCA9ICFuZXdsbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LAorICAgICAgICAgICAgICAgIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgICAgIGlmIChsZXZlbCA9PSBXQVJOICYmICghd2FybmluZ3MgJiYgIW5vZGF0YSkpeworICAgICAgICAgICAgICAgIGxldmVsID0gRVJSOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaW5jQ291bnQpIHsKKyAgICAgICAgICAgICAgICBpZiAobGV2ZWwgPT0gV0FSTikgeworICAgICAgICAgICAgICAgICAgICB3YXJuQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgaW52YWxpZENvdW50Kys7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZXZlbCA9PSBFUlIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2hvdWxkIHJvbGwgaW5kZW50YXRpb24gc3R1ZmYgaW50byBsb2cgPz8/CisgICAgICAgICAgICBpZiAodmVyYm9zZSB8fCBsZXZlbCA+IChxdWlldCA/IFdBUk4gOiBMT0cpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdXBwcmVzc0luZGVudCkgeworICAgICAgICAgICAgICAgICAgICBpbmRlbnQoaW5kZW50TGV2ZWwgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gTVNHTkFNRVMgPSB7IiIsICJXYXJuaW5nOiAiLCAiRXJyb3I6ICJ9OworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnQoTVNHTkFNRVNbbGV2ZWxdKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsb2cucHJpbnQobWVzc2FnZSk7CisgICAgICAgICAgICAgICAgaWYgKG5ld2xuKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZy5mbHVzaCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGV2ZWwgPT0gRVJSKSB7CisgICAgICAgICAgICAgICAgaWYgKCFub3Rocm93KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXN1cHByZXNzSW5kZW50ICYmIGVycm9yU3VtbWFyeSAhPSBudWxsICYmIHN0YWNrICE9bnVsbCAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIChlcnJvckNvdW50ID09IHN0YWNrLmVjICsgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2suYXBwZW5kUGF0aChlcnJvclN1bW1hcnkpOworICAgICAgICAgICAgICAgICAgICBlcnJvclN1bW1hcnkuYXBwZW5kKCJcbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3VwcHJlc3NJbmRlbnQgPSAhbmV3bG47CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgd3JpdGVUZXN0SW52YWxpZChTdHJpbmcgbmFtZSwgYm9vbGVhbiBub2RhdGEpIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICBtc2coIioqKiIgKyBuYW1lICsgIioqKiBub3QgZm91bmQgb3Igbm90IHZhbGlkLiIsIFdBUk4sIHRydWUsCisgICAgICAgICAgICAvLyB0cnVlKTsKKyAgICAgICAgICAgIGlmIChpbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIGlmICghd2FybmluZ3MpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIiAqKiogVGFyZ2V0IG5vdCBmb3VuZCBvciBub3QgdmFsaWQuIik7CisgICAgICAgICAgICAgICAgICAgIGxvZy5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKCFub2RhdGEpeworICAgICAgICAgICAgICAgICAgICBtc2coIlRlc3QgIiArIG5hbWUgKyAiIG5vdCBmb3VuZCBvciBub3QgdmFsaWQuIiwgV0FSTiwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgZ2V0bWVtKCkgeworICAgICAgICAgICAgbG9uZyBuZXdtZW0gPSAwOworICAgICAgICAgICAgaWYgKG1lbXVzYWdlKSB7CisgICAgICAgICAgICAgICAgUnVudGltZSBydCA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpOworICAgICAgICAgICAgICAgIGxvbmcgbGFzdG1lbSA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcnQuZ2MoKTsKKyAgICAgICAgICAgICAgICAgICAgcnQuZ2MoKTsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsYXN0bWVtID0gbmV3bWVtOworICAgICAgICAgICAgICAgICAgICBuZXdtZW0gPSBydC50b3RhbE1lbW9yeSgpIC0gcnQuZnJlZU1lbW9yeSgpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5ld21lbSA8IGxhc3RtZW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ld21lbTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB3cml0ZVRlc3RSZXN1bHQoKSB7CisgICAgICAgICAgICBpZiAoaW5Eb2NNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobmVlZExpbmVGZWVkKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIGxvZy5mbHVzaCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvbmcgZG1lbSA9IGdldG1lbSgpIC0gc3RhY2subWVtOworICAgICAgICAgICAgbG9uZyBkdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhY2subWlsbGlzOworCisgICAgICAgICAgICBpbnQgdGVzdERlbHRhID0gdGVzdENvdW50IC0gc3RhY2sudGM7CisgICAgICAgICAgICBpZiAodGVzdERlbHRhID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBlcnJvckRlbHRhID0gZXJyb3JDb3VudCAtIHN0YWNrLmVjOworICAgICAgICAgICAgaW50IGludmFsaWREZWx0YSA9IGludmFsaWRDb3VudCAtIHN0YWNrLmljOworCisgICAgICAgICAgICBzdGFjay5mbHVzaCgpOworCisgICAgICAgICAgICBpZiAoIW5lZWRMaW5lRmVlZCkgeworICAgICAgICAgICAgICAgIGluZGVudChpbmRlbnRMZXZlbCk7CisgICAgICAgICAgICAgICAgbG9nLnByaW50KCJ9Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKG1lbXVzYWdlIHx8IGR0aW1lID49IHRpbWluZykgeworICAgICAgICAgICAgICAgIGxvZy5wcmludCgiICgiKTsKKyAgICAgICAgICAgICAgICBpZiAobWVtdXNhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50KCJkbWVtOiAiICsgZG1lbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkdGltZSA+PSB0aW1pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1lbXVzYWdlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50KHRmb3JtYXQuZm9ybWF0KGR0aW1lIC8gMTAwMGYpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nLnByaW50KCIpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZXJyb3JEZWx0YSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIiBGQUlMRUQgKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZXJyb3JEZWx0YQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGZhaWx1cmVzIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAoKGludmFsaWREZWx0YSAhPSAwKSA/ICIsICIgKyBpbnZhbGlkRGVsdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHRlc3RzIHNraXBwZWQpIiA6ICIpIikpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpbnZhbGlkRGVsdGEgIT0gMCkgeworICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIgUXVhbGlmaWVkICgiICsgaW52YWxpZERlbHRhICsgIiB0ZXN0cyBza2lwcGVkKSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiIFBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluZGVudChpbnQgZGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaWRtID0gaW5Eb2NNb2RlKCk7CisgICAgICAgICAgICBpZiAobmVlZExpbmVGZWVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkbSkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIgeyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLnByaW50KHNwYWNlcy5zdWJzdHJpbmcoMCwgZGlzdGFuY2UgKiAoaWRtID8gMyA6IDIpKSk7CisKKyAgICAgICAgICAgIGlmIChpZG0pIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnQoIi0tICIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUcmFuc2xpdFRlc3RGaWx0ZXIoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMudGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRhcmdldCBuYW1lIGZvciBhIHRlc3QgY2xhc3MuIFRoaXMgaXMgZWl0aGVyIHRoZSBlbmQgb2YgdGhlCisgICAgICogY2xhc3MgbmFtZSwgb3IgaWYgdGhlIGNsYXNzIGRlY2xhcmVzIGEgcHVibGljIHN0YXRpYyBmaWVsZAorICAgICAqIENMQVNTX1RBUkdFVF9OQU1FLCB0aGUgdmFsdWUgb2YgdGhhdCBmaWVsZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0Q2xhc3NUYXJnZXROYW1lKENsYXNzIHRlc3RDbGFzcykgeworICAgICAgICBTdHJpbmcgbmFtZSA9IHRlc3RDbGFzcy5nZXROYW1lKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWVsZCBmID0gdGVzdENsYXNzLmdldEZpZWxkKCJDTEFTU19UQVJHRVRfTkFNRSIpOworICAgICAgICAgICAgbmFtZSA9IChTdHJpbmcpIGYuZ2V0KG51bGwpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJzdGF0aWMgZmllbGQgQ0xBU1NfVEFSR0VUX05BTUUgbXVzdCBiZSBhY2Nlc3NpYmxlIik7CisgICAgICAgIH0gY2F0Y2ggKE5vU3VjaEZpZWxkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGludCBuID0gTWF0aC5tYXgobmFtZS5sYXN0SW5kZXhPZignLicpLCBuYW1lLmxhc3RJbmRleE9mKCckJykpOworICAgICAgICAgICAgaWYgKG4gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcobiArIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoZSBnaXZlbiBhcnJheSB0byBzZWUgdGhhdCBhbGwgdGhlIHN0cmluZ3MgaW4gdGhlIGV4cGVjdGVkIGFycmF5CisgICAgICogYXJlIHByZXNlbnQuCisgICAgICogCisgICAgICogQHBhcmFtIG1zZworICAgICAqICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UsIGZvciBsb2cgb3V0cHV0CisgICAgICogQHBhcmFtIGFycmF5CisgICAgICogICAgICAgICAgICBhcnJheSBvZiBzdHJpbmdzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGV4cGVjdGVkCisgICAgICogICAgICAgICAgICBhcnJheSBvZiBzdHJpbmdzIHdlIGV4cGVjdCB0byBzZWUsIG9yIG51bGwKKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgJ2FycmF5Jywgb3IgLTEgb24gZXJyb3IKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNoZWNrQXJyYXkoU3RyaW5nIG1zZywgU3RyaW5nIGFycmF5W10sIFN0cmluZyBleHBlY3RlZFtdKSB7CisgICAgICAgIGludCBleHBsZW4gPSAoZXhwZWN0ZWQgIT0gbnVsbCkgPyBleHBlY3RlZC5sZW5ndGggOiAwOworICAgICAgICBpZiAoIShleHBsZW4gPj0gMCAmJiBleHBsZW4gPCAzMSkpIHsgLy8gW3NpY10gMzEgbm90IDMyCisgICAgICAgICAgICBlcnJsbigiSW50ZXJuYWwgZXJyb3IiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZWVuTWFzayA9IDA7CisgICAgICAgIGZvciAoOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gYXJyYXlbaV07CisgICAgICAgICAgICBpZiAoaSAhPSAwKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHMpOworICAgICAgICAgICAgLy8gY2hlY2sgZXhwZWN0ZWQgbGlzdAorICAgICAgICAgICAgZm9yIChpbnQgaiA9IDAsIGJpdCA9IDE7IGogPCBleHBsZW47ICsraiwgYml0IDw8PSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKChzZWVuTWFzayAmIGJpdCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocy5lcXVhbHMoZXhwZWN0ZWRbal0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWVuTWFzayB8PSBiaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFwiIiArIHMgKyAiXCIgc2VlbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKG1zZyArICIgPSBbIiArIGJ1ZiArICJdICgiICsgaSArICIpIik7CisgICAgICAgIC8vIGRpZCB3ZSBzZWUgYWxsIGV4cGVjdGVkIHN0cmluZ3M/CisgICAgICAgIGlmICgoKDEgPDwgZXhwbGVuKSAtIDEpICE9IHNlZW5NYXNrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMCwgYml0ID0gMTsgaiA8IGV4cGVjdGVkLmxlbmd0aDsgKytqLCBiaXQgPDw9IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHNlZW5NYXNrICYgYml0KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcIiIgKyBleHBlY3RlZFtqXSArICJcIiBub3Qgc2VlbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXJyYXkubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoZSBnaXZlbiBhcnJheSB0byBzZWUgdGhhdCBhbGwgdGhlIGxvY2FsZXMgaW4gdGhlIGV4cGVjdGVkIGFycmF5CisgICAgICogYXJlIHByZXNlbnQuCisgICAgICogCisgICAgICogQHBhcmFtIG1zZworICAgICAqICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UsIGZvciBsb2cgb3V0cHV0CisgICAgICogQHBhcmFtIGFycmF5CisgICAgICogICAgICAgICAgICBhcnJheSBvZiBsb2NhbGVzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGV4cGVjdGVkCisgICAgICogICAgICAgICAgICBhcnJheSBvZiBsb2NhbGVzIG5hbWVzIHdlIGV4cGVjdCB0byBzZWUsIG9yIG51bGwKKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgJ2FycmF5JworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY2hlY2tBcnJheShTdHJpbmcgbXNnLCBMb2NhbGUgYXJyYXlbXSwgU3RyaW5nIGV4cGVjdGVkW10pIHsKKyAgICAgICAgU3RyaW5nIHN0cnNbXSA9IG5ldyBTdHJpbmdbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHN0cnNbaV0gPSBhcnJheVtpXS50b1N0cmluZygpOworICAgICAgICByZXR1cm4gY2hlY2tBcnJheShtc2csIHN0cnMsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGUgZ2l2ZW4gYXJyYXkgdG8gc2VlIHRoYXQgYWxsIHRoZSBsb2NhbGVzIGluIHRoZSBleHBlY3RlZCBhcnJheQorICAgICAqIGFyZSBwcmVzZW50LgorICAgICAqIAorICAgICAqIEBwYXJhbSBtc2cKKyAgICAgKiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlLCBmb3IgbG9nIG91dHB1dAorICAgICAqIEBwYXJhbSBhcnJheQorICAgICAqICAgICAgICAgICAgYXJyYXkgb2YgbG9jYWxlcyB0byBjaGVjaworICAgICAqIEBwYXJhbSBleHBlY3RlZAorICAgICAqICAgICAgICAgICAgYXJyYXkgb2YgbG9jYWxlcyBuYW1lcyB3ZSBleHBlY3QgdG8gc2VlLCBvciBudWxsCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mICdhcnJheScKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNoZWNrQXJyYXkoU3RyaW5nIG1zZywgVUxvY2FsZSBhcnJheVtdLCBTdHJpbmcgZXhwZWN0ZWRbXSkgeworICAgICAgICBTdHJpbmcgc3Ryc1tdID0gbmV3IFN0cmluZ1thcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgc3Ryc1tpXSA9IGFycmF5W2ldLnRvU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBjaGVja0FycmF5KG1zZywgc3RycywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIC8vIEpVbml0LWxpa2UgYXNzZXJ0aW9ucy4KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydFRydWUoU3RyaW5nIG1lc3NhZ2UsIGJvb2xlYW4gY29uZGl0aW9uKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoY29uZGl0aW9uLCBtZXNzYWdlLCAidHJ1ZSIsIG51bGwpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEZhbHNlKFN0cmluZyBtZXNzYWdlLCBib29sZWFuIGNvbmRpdGlvbikgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KCFjb25kaXRpb24sIG1lc3NhZ2UsICJmYWxzZSIsIG51bGwpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiBleHBlY3RlZCwKKyAgICAgICAgICAgIGJvb2xlYW4gYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoZXhwZWN0ZWQgPT0gYWN0dWFsLCBtZXNzYWdlLCBTdHJpbmcKKyAgICAgICAgICAgICAgICAudmFsdWVPZihleHBlY3RlZCksIFN0cmluZy52YWx1ZU9mKGFjdHVhbCkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgbG9uZyBleHBlY3RlZCwgbG9uZyBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChleHBlY3RlZCA9PSBhY3R1YWwsIG1lc3NhZ2UsIFN0cmluZworICAgICAgICAgICAgICAgIC52YWx1ZU9mKGV4cGVjdGVkKSwgU3RyaW5nLnZhbHVlT2YoYWN0dWFsKSk7CisgICAgfQorCisgICAgLy8gZG8gTmFOIGFuZCByYW5nZSBjYWxjdWxhdGlvbnMgdG8gcHJlY2lzaW9uIG9mIGZsb2F0LCBkb24ndCByZWx5IG9uCisgICAgLy8gcHJvbW90aW9uIHRvIGRvdWJsZQorICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgZmxvYXQgZXhwZWN0ZWQsCisgICAgICAgICAgICBmbG9hdCBhY3R1YWwsIGRvdWJsZSBlcnJvcikgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IEZsb2F0LmlzSW5maW5pdGUoZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgPyBleHBlY3RlZCA9PSBhY3R1YWwKKyAgICAgICAgICAgICAgICA6ICEoTWF0aC5hYnMoZXhwZWN0ZWQgLSBhY3R1YWwpID4gZXJyb3IpOyAvLyBoYW5kbGVzIE5hTgorICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KHJlc3VsdCwgbWVzc2FnZSwgU3RyaW5nLnZhbHVlT2YoZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgKyAoZXJyb3IgPT0gMCA/ICIiIDogIiAod2l0aGluICIgKyBlcnJvciArICIpIiksIFN0cmluZworICAgICAgICAgICAgICAgIC52YWx1ZU9mKGFjdHVhbCkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgZG91YmxlIGV4cGVjdGVkLAorICAgICAgICAgICAgZG91YmxlIGFjdHVhbCwgZG91YmxlIGVycm9yKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gRG91YmxlLmlzSW5maW5pdGUoZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgPyBleHBlY3RlZCA9PSBhY3R1YWwKKyAgICAgICAgICAgICAgICA6ICEoTWF0aC5hYnMoZXhwZWN0ZWQgLSBhY3R1YWwpID4gZXJyb3IpOyAvLyBoYW5kbGVzIE5hTgorICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KHJlc3VsdCwgbWVzc2FnZSwgU3RyaW5nLnZhbHVlT2YoZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgKyAoZXJyb3IgPT0gMCA/ICIiIDogIiAod2l0aGluICIgKyBlcnJvciArICIpIiksIFN0cmluZworICAgICAgICAgICAgICAgIC52YWx1ZU9mKGFjdHVhbCkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGV4cGVjdGVkLAorICAgICAgICAgICAgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGV4cGVjdGVkID09IG51bGwgPyBhY3R1YWwgPT0gbnVsbCA6IGV4cGVjdGVkCisgICAgICAgICAgICAgICAgLmVxdWFscyhhY3R1YWwpOworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KHJlc3VsdCwgbWVzc2FnZSwgc3RyaW5nRm9yKGV4cGVjdGVkKSwKKyAgICAgICAgICAgICAgICBzdHJpbmdGb3IoYWN0dWFsKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0Tm90RXF1YWxzKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgZXhwZWN0ZWQsCisgICAgICAgICAgICBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gIShleHBlY3RlZCA9PSBudWxsID8gYWN0dWFsID09IG51bGwgOiBleHBlY3RlZAorICAgICAgICAgICAgICAgIC5lcXVhbHMoYWN0dWFsKSk7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQocmVzdWx0LCBtZXNzYWdlLCBzdHJpbmdGb3IoZXhwZWN0ZWQpLAorICAgICAgICAgICAgICAgIHN0cmluZ0ZvcihhY3R1YWwpLCAibm90IGVxdWFsIHRvIiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0U2FtZShTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGV4cGVjdGVkLCBPYmplY3QgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoZXhwZWN0ZWQgPT0gYWN0dWFsLCBtZXNzYWdlLCBzdHJpbmdGb3IoZXhwZWN0ZWQpLAorICAgICAgICAgICAgICAgIHN0cmluZ0ZvcihhY3R1YWwpLCAiPT0iLCBmYWxzZSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0Tm90U2FtZShTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGV4cGVjdGVkLAorICAgICAgICAgICAgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGV4cGVjdGVkICE9IGFjdHVhbCwgbWVzc2FnZSwgc3RyaW5nRm9yKGV4cGVjdGVkKSwKKyAgICAgICAgICAgICAgICBzdHJpbmdGb3IoYWN0dWFsKSwgIiE9IiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0TnVsbChTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGFjdHVhbCA9PSBudWxsLCBtZXNzYWdlLCBudWxsLCBzdHJpbmdGb3IoYWN0dWFsKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXNzZXJ0Tm90TnVsbChTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGFjdHVhbCAhPSBudWxsLCBtZXNzYWdlLCBudWxsLCBzdHJpbmdGb3IoYWN0dWFsKSwKKyAgICAgICAgICAgICAgICAiIT0iLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBmYWlsKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIGVycmxuKG1lc3NhZ2UpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBoYW5kbGVBc3NlcnQoYm9vbGVhbiByZXN1bHQsIFN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkLCBTdHJpbmcgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQocmVzdWx0LCBtZXNzYWdlLCBleHBlY3RlZCwgYWN0dWFsLCBudWxsLCBmYWxzZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGhhbmRsZUFzc2VydChib29sZWFuIHJlc3VsdCwgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQsIFN0cmluZyBhY3R1YWwsIFN0cmluZyByZWxhdGlvbiwgYm9vbGVhbiBmbGlwKSB7CisgICAgICAgIGlmICghcmVzdWx0IHx8IGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSA9PSBudWxsID8gIiIgOiAiICIgKyBtZXNzYWdlOworICAgICAgICAgICAgcmVsYXRpb24gPSByZWxhdGlvbiA9PSBudWxsID8gIiwgZ290ICIgOiAiICIgKyByZWxhdGlvbiArICIgIjsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0siICsgbWVzc2FnZSArICI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKGZsaXAgPyBleHBlY3RlZCArIHJlbGF0aW9uICsgYWN0dWFsIDogZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisJCS8vIGFzc2VydCBtdXN0IGFzc3VtZSBlcnJvcnMgYXJlIHRydWUgZXJyb3JzIGFuZCBub3QganVzdCB3YXJuaW5ncworCQkvLyBzbyBjYW5ub3Qgd2FybmxuIGhlcmUKKyAgICAgICAgICAgICAgICBlcnJsbihtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAoZmxpcCA/IHJlbGF0aW9uICsgZXhwZWN0ZWQgOiAiICIgKyBleHBlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChhY3R1YWwgIT0gbnVsbCA/IHJlbGF0aW9uICsgYWN0dWFsIDogIiIpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBzdHJpbmdGb3IoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gIm51bGwiOworICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgU3RyaW5nKQorICAgICAgICAgICAgcmV0dXJuICJcIiIgKyBvYmogKyAnIic7CisgICAgICAgIHJldHVybiBvYmouZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiPCIgKyBvYmogKyAiPiI7CisgICAgfQorCisgICAgLy8gRW5kIEpVbml0LWxpa2UgYXNzZXJ0aW9ucworCisgICAgLy8gUHJpbnRXcml0ZXIgc3VwcG9ydAorCisgICAgcHVibGljIFByaW50V3JpdGVyIGdldEVycm9yTG9nUHJpbnRXcml0ZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJpbnRXcml0ZXIobmV3IFRlc3RMb2dXcml0ZXIodGhpcywgVGVzdExvZy5FUlIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUHJpbnRXcml0ZXIgZ2V0TG9nUHJpbnRXcml0ZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJpbnRXcml0ZXIobmV3IFRlc3RMb2dXcml0ZXIodGhpcywgVGVzdExvZy5MT0cpKTsKKyAgICB9CisKKyAgICAvLyBlbmQgUHJpbnRXcml0ZXIgc3VwcG9ydAorCisgICAgcHJvdGVjdGVkIFRlc3RQYXJhbXMgcGFyYW1zID0gbnVsbDsKKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZyBzcGFjZXMgPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsKKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGVBdExlYXN0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpeworICAgICAgICBDYWxlbmRhciBjID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZSBkdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpOworICAgICAgICBpZihjLmdldFRpbWUoKS5jb21wYXJlVG8oZHQpPj0wKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTUyYzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK3B1YmxpYyBpbnRlcmZhY2UgVGVzdExvZyB7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGdpdmVuIHN0cmluZyB0byB0aGUgbG9nIGlmIHdlIGFyZSBpbiB2ZXJib3NlIG1vZGUuCisgICAgICovCisgICAgdm9pZCBsb2coU3RyaW5nIG1lc3NhZ2UpOworCisgICAgdm9pZCBsb2dsbihTdHJpbmcgbWVzc2FnZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IKKyAgICAgKi8KKyAgICB2b2lkIGVycihTdHJpbmcgbWVzc2FnZSk7CisKKyAgICB2b2lkIGVycmxuKFN0cmluZyBtZXNzYWdlKTsKKworICAgIC8qKgorICAgICAqIFdhcm4gYWJvdXQgbWlzc2luZyB0ZXN0cyBvciBkYXRhLgorICAgICAqLworICAgIHZvaWQgd2FybihTdHJpbmcgbWVzc2FnZSk7CisgICAgCisgICAgdm9pZCB3YXJubG4oU3RyaW5nIG1lc3NhZ2UpOworCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT0cgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdBUk4gPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUiA9IDI7CisKKyAgICB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZ1dyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZDZhYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZ1dyaXRlci5qYXZhCkBAIC0wLDAgKzEsNDMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0TG9nV3JpdGVyIGV4dGVuZHMgV3JpdGVyIHsKKyAgICBwcml2YXRlIFRlc3RMb2cgbG9nOworICAgIHByaXZhdGUgaW50IGxldmVsOworICAgIHByaXZhdGUgYm9vbGVhbiBjbG9zZWQ7CisKKyAgICBwdWJsaWMgVGVzdExvZ1dyaXRlcihUZXN0TG9nIGxvZywgaW50IGxldmVsKSB7CisJdGhpcy5sb2cgPSBsb2c7CisJdGhpcy5sZXZlbCA9IGxldmVsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKGNoYXIgY2J1ZltdLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworCXdyaXRlKG5ldyBTdHJpbmcoY2J1Ziwgb2ZmLCBsZW4pKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgc3RyKSB0aHJvd3MgSU9FeGNlcHRpb24geworCWlmIChjbG9zZWQpIHsKKwkgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJzdHJlYW0gY2xvc2VkIik7CisJfQorCWlmICgiXHJcbiIuaW5kZXhPZihzdHIpICE9IC0xKSB7CisJICAgIGxvZy5tc2coIiIsIGxldmVsLCBsZXZlbCA9PSBUZXN0TG9nLkVSUiwgdHJ1ZSk7CisJfSBlbHNlIHsKKwkgICAgbG9nLm1zZyhzdHIsIGxldmVsLCBsZXZlbCA9PSBUZXN0TG9nLkVSUiwgZmFsc2UpOworCX0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmbHVzaCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCWNsb3NlZCA9IHRydWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGVkYjc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEKQEAgLTAsMCArMSwyNTIgQEAKKy8vIyNoZWFkZXIKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdFV0aWwgeworICAgIC8qKgorICAgICAqIFBhdGggdG8gdGVzdCBkYXRhIGluIGljdTRqdGVzdC5qYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0NBTF9EQVRBX1BBVEggPSAiL2NvbS9pYm0vaWN1L2Rldi9kYXRhLyI7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBwYXRoIHRvIHRoZSB0ZXN0IGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfUEFUSCA9ICIvc3JjIiArIExPQ0FMX0RBVEFfUEFUSDsKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IGZvciB1c2VyLWRlZmluZWQgZGF0YSBwYXRoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfUEFUSF9QUk9QRVJUWSA9ICJJQ1VEYXRhUGF0aCI7CisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSBmb3IgbW9kdWxhciBidWlsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX01PRFVMQVJfQlVJTERfUFJPUEVSVFkgPSAiSUNVTW9kdWxhckJ1aWxkIjsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBmdWxsIGRhdGEgcGF0aCB1c2luZyB0aGUgSUNVRGF0YVBhdGgsIGlmIGRlZmluZWQsIG9yIHRoZSB1c2VyLmRpciwgaWYgd2UKKyAgICAgKiBhcmUgYWxsb3dlZCBhY2Nlc3MgdG8gaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRhdGFQYXRoKFN0cmluZyBmaWxlTmFtZSkgeworICAgICAgICBTdHJpbmcgcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eShEQVRBX1BBVEhfUFJPUEVSVFkpOworICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgdXNlci5kaXIgaXMgZGlyZWN0bHkgYWJvdmUgc3JjIGRpcmVjdG9yeQorICAgICAgICAgICAgLy8gZGF0YSBwYXRoIG11c3QgZW5kIGluICcvJyBvciAnXCcsIGZpbGVOYW1lIHNob3VsZCBub3Qgc3RhcnQgd2l0aCBvbmUKKyAgICAgICAgICAgIHMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIik7IC8vIHByb3RlY3RlZCBwcm9wZXJ0eQorICAgICAgICAgICAgcyA9IHMgKyBEQVRBX1BBVEg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHMgKyBmaWxlTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW5wdXQgc3RyZWFtIG9uIHRoZSBkYXRhIGZpbGUgYXQgcGF0aCAnbmFtZScgcm9vdGVkIGF0IHRoZSBkYXRhIHBhdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIElucHV0U3RyZWFtIGdldERhdGFTdHJlYW0oU3RyaW5nIG5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShkYXRhUGF0aChuYW1lKSk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlzID0gVGVzdFV0aWwuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShMT0NBTF9EQVRBX1BBVEggKyBuYW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgSU9FeGNlcHRpb24gZXggPQorICAgICAgICAgICAgICAgICAgICBuZXcgSU9FeGNlcHRpb24oImRhdGEgcmVzb3VyY2UgJyIgKyBuYW1lICsgIicgbm90IGZvdW5kIik7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIC8vaW5pdENhdXNlIEFQSSB3YXMgaW50cm9kdWNlZCBpbiBKREsgMS40CisgICAgICAgICAgICAgICAgZXguaW5pdENhdXNlKHQpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgIHQucHJpbnRTdGFja1RyYWNlKCk7CisvLyNlbmRpZgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGhyb3cgZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGJ1ZmZlcmVkIHJlYWRlciBvbiB0aGUgZGF0YSBmaWxlIGF0IHBhdGggJ25hbWUnIHJvb3RlZCBhdCB0aGUgZGF0YSBwYXRoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQnVmZmVyZWRSZWFkZXIgZ2V0RGF0YVJlYWRlcihTdHJpbmcgbmFtZSwgU3RyaW5nIGNoYXJzZXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gZ2V0RGF0YVN0cmVhbShuYW1lKTsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0KKyAgICAgICAgICAgIGNoYXJzZXQgPT0gbnVsbAorICAgICAgICAgICAgICAgID8gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKQorICAgICAgICAgICAgICAgIDogbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzLCBjaGFyc2V0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGJ1ZmZlcmVkIHJlYWRlciBvbiB0aGUgZGF0YSBmaWxlIGF0IHBhdGggJ25hbWUnIHJvb3RlZCBhdCB0aGUgZGF0YSBwYXRoLAorICAgICAqIHVzaW5nIHRoZSBwcm92aWRlZCBlbmNvZGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJ1ZmZlcmVkUmVhZGVyIGdldERhdGFSZWFkZXIoU3RyaW5nIG5hbWUpCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRhUmVhZGVyKG5hbWUsIG51bGwpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyIERJR0lUU1tdID0KKyAgICAgICAgeworICAgICAgICAgICAgJzAnLAorICAgICAgICAgICAgJzEnLAorICAgICAgICAgICAgJzInLAorICAgICAgICAgICAgJzMnLAorICAgICAgICAgICAgJzQnLAorICAgICAgICAgICAgJzUnLAorICAgICAgICAgICAgJzYnLAorICAgICAgICAgICAgJzcnLAorICAgICAgICAgICAgJzgnLAorICAgICAgICAgICAgJzknLAorICAgICAgICAgICAgJ0EnLAorICAgICAgICAgICAgJ0InLAorICAgICAgICAgICAgJ0MnLAorICAgICAgICAgICAgJ0QnLAorICAgICAgICAgICAgJ0UnLAorICAgICAgICAgICAgJ0YnLAorICAgICAgICAgICAgJ0cnLAorICAgICAgICAgICAgJ0gnLAorICAgICAgICAgICAgJ0knLAorICAgICAgICAgICAgJ0onLAorICAgICAgICAgICAgJ0snLAorICAgICAgICAgICAgJ0wnLAorICAgICAgICAgICAgJ00nLAorICAgICAgICAgICAgJ04nLAorICAgICAgICAgICAgJ08nLAorICAgICAgICAgICAgJ1AnLAorICAgICAgICAgICAgJ1EnLAorICAgICAgICAgICAgJ1InLAorICAgICAgICAgICAgJ1MnLAorICAgICAgICAgICAgJ1QnLAorICAgICAgICAgICAgJ1UnLAorICAgICAgICAgICAgJ1YnLAorICAgICAgICAgICAgJ1cnLAorICAgICAgICAgICAgJ1gnLAorICAgICAgICAgICAgJ1knLAorICAgICAgICAgICAgJ1onIH07CisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBOT1QgcHJpbnRhYmxlIEFTQ0lJLiAgVGhlIHRhYiwKKyAgICAgKiBuZXdsaW5lIGFuZCBsaW5lZmVlZCBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHVucHJpbnRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VucHJpbnRhYmxlKGludCBjKSB7CisgICAgICAgIHJldHVybiAhKGMgPj0gMHgyMCAmJiBjIDw9IDB4N0UpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBFc2NhcGUgdW5wcmludGFibGUgY2hhcmFjdGVycyB1c2luZyA8YmFja3NsYXNoPnV4eHh4IG5vdGF0aW9uCisgICAgICogZm9yIFUrMDAwMCB0byBVK0ZGRkYgYW5kIDxiYWNrc2xhc2g+VXh4eHh4eHh4IGZvciBVKzEwMDAwIGFuZAorICAgICAqIGFib3ZlLiAgSWYgdGhlIGNoYXJhY3RlciBpcyBwcmludGFibGUgQVNDSUksIHRoZW4gZG8gbm90aGluZworICAgICAqIGFuZCByZXR1cm4gRkFMU0UuICBPdGhlcndpc2UsIGFwcGVuZCB0aGUgZXNjYXBlZCBub3RhdGlvbiBhbmQKKyAgICAgKiByZXR1cm4gVFJVRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IGMpIHsKKyAgICAgICAgaWYgKGlzVW5wcmludGFibGUoYykpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBpZiAoKGMgJiB+MHhGRkZGKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnVScpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDI4KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDI0KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDIwKV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDE2KV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAxMildKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDgpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiA0KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGICYgY10pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBMb2NrIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnQ7CisKKyAgICAgICAgc3luY2hyb25pemVkIHZvaWQgaW5jKCkgeworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHN5bmNocm9uaXplZCB2b2lkIGRlYygpIHsKKyAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQgaW50IGNvdW50KCkgeworICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBnbygpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5QWxsKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDUwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdFRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIExvY2sgbG9jazsKKyAgICAgICAgUnVubmFibGUgdGFyZ2V0OworCisgICAgICAgIFRlc3RUaHJlYWQoTG9jayBsb2NrLCBSdW5uYWJsZSB0YXJnZXQpIHsKKyAgICAgICAgICAgIHRoaXMubG9jayA9IGxvY2s7CisgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDsKKworICAgICAgICAgICAgbG9jay5pbmMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2sud2FpdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXQucnVuKCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvY2suZGVjKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcnVuVW50aWxEb25lKFJ1bm5hYmxlW10gdGFyZ2V0cykgeworICAgICAgICBpZiAodGFyZ2V0cyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ0YXJnZXRzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0cy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTG9jayBsb2NrID0gbmV3IExvY2soKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YXJnZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBuZXcgVGVzdFRocmVhZChsb2NrLCB0YXJnZXRzW2ldKS5zdGFydCgpOworICAgICAgICB9CisKKyAgICAgICAgbG9jay5nbygpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5VVEY4UmVhZGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG9wZW5SZWFkZXIoZGlyLGZpbGVuYW1lLCJVVEYtOCIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5SZWFkZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciArIGZpbGVuYW1lKTsKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgIG5ldyBJbnB1dFN0cmVhbVJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpLAorICAgICAgICAgICAgICAgIGVuY29kaW5nKSwKKyAgICAgICAgICAgIDQqMTAyNCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhNTEyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YQpAQCAtMCwwICsxLDM3NyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworLyoqCisgKiBVdGlsaXR5IGNsYXNzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgCisgKiBzdXBwb3J0LiBUaGlzIG9uZSBpcyB3cml0dGVuIHB1cmVseSBmb3IgdXBkYXRpbmcKKyAqIE5vcm1hbGl6YXRpb24gc2FtcGxlIGZyb20gdGhlIHVuaWNvZGUub3JnIHNpdGUuCisgKiBJZiB5b3Ugd2FudCB0aGUgcmVhbCB0aGluZywgdXNlIFVURjE2IGNsYXNzCisgKiBmcm9tIElDVTRKCisgKiBAYXV0aG9yIFZsYWRpbWlyIFdlaW5zdGVpbiwgTWFya3VzIFNjaGVyZXIKKyAqLworcHVibGljIGNsYXNzIFVURjE2VXRpbCB7CisgICAgc3RhdGljIGZpbmFsIGludCBzdXBwT2Zmc2V0ID0gKDB4ZDgwMCA8PCAxMCkgKyAweGRjMDAgLSAweDEwMDAwOworCisgICAgLyoqCisgICAgICogTWV0aG9kIG5leHRDb2RlUG9pbnQuIFJldHVybnMgdGhlIG5leHQgY29kZSBwb2ludAorICAgICAqIGluIGEgc3RyaW5nLiAKKyAgICAgKiBAcGFyYW0gcyBTdHJpbmcgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBmcm9tIHdoaWNoIHdlIHdhbnQgYSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiBpbnQgY29kZXBvaW50IGF0IGluZGV4IGkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBuZXh0Q29kZVBvaW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICBpbnQgY2ggPSBzLmNoYXJBdChpKTsKKyAgICAgICAgaWYgKDB4ZDgwMCA8PSBjaCAmJiBjaCA8PSAweGRiZmYgJiYgKytpIDwgcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGNoMiA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKDB4ZGMwMCA8PSBjaDIgJiYgY2gyIDw9IDB4ZGZmZikgeworICAgICAgICAgICAgICAgIGNoID0gKGNoIDw8IDEwKSArIGNoMiAtIHN1cHBPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBwcmV2Q29kZVBvaW50LiBHZXRzIHRoZSBjb2RlIHBvaW50IHByZWNlZGluZworICAgICAqIGluZGV4IGkgKHByZWRlY3JlbWVudCkuIAorICAgICAqIEBwYXJhbSBzIFN0cmluZyBpbiBxdWVzdGlvbgorICAgICAqIEBwYXJhbSBpIGluZGV4IGluIHN0cmluZworICAgICAqIEByZXR1cm4gaW50IGNvZGVwb2ludCBhdCBpbmRleCAtLWkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwcmV2Q29kZVBvaW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICBpbnQgY2ggPSBzLmNoYXJBdCgtLWkpOworICAgICAgICBpZiAoMHhkYzAwIDw9IGNoICYmIGNoIDw9IDB4ZGZmZiAmJiAtLWkgPj0gMCkgeworICAgICAgICAgICAgaW50IGNoMiA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKDB4ZDgwMCA8PSBjaDIgJiYgY2gyIDw9IDB4ZGJmZikgeworICAgICAgICAgICAgICAgIGNoID0gKGNoMiA8PCAxMCkgKyBjaCAtIHN1cHBPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBuZXh0Q29kZVBvaW50LiBSZXR1cm5zIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiBhIHN0cmluZy4gCisgICAgICogQHBhcmFtIHMgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGkgaW5kZXggZnJvbSB3aGljaCB3ZSB3YW50IGEgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gaW50IGNvZGVwb2ludCBhdCBpbmRleCBpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgbmV4dENvZGVQb2ludChTdHJpbmdCdWZmZXIgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgIGlmICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmICYmICsraSA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGRjMDAgPD0gY2gyICYmIGNoMiA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaCA8PCAxMCkgKyBjaDIgLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgcHJldkNvZGVQb2ludC4gR2V0cyB0aGUgY29kZSBwb2ludCBwcmVjZWRpbmcKKyAgICAgKiBpbmRleCBpIChwcmVkZWNyZW1lbnQpLiAKKyAgICAgKiBAcGFyYW0gcyBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBpbiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGludCBjb2RlcG9pbnQgYXQgaW5kZXggLS1pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHJldkNvZGVQb2ludChTdHJpbmdCdWZmZXIgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoLS1pKTsKKyAgICAgICAgaWYgKDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYgJiYgLS1pID49IDApIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGQ4MDAgPD0gY2gyICYmIGNoMiA8PSAweGRiZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaDIgPDwgMTApICsgY2ggLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY29kZVBvaW50TGVuZ3RoLiBSZXR1cm5zIHRoZSBsZW5ndGggCisgICAgICogaW4gVVRGLTE2IGNvZGUgdW5pdHMgb2YgYSBnaXZlbiBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGMgY29kZSBwb2ludCBpbiBxdWVzdGlvbgorICAgICAqIEByZXR1cm4gaW50IGxlbmd0aCBpbiBVVEYtMTYgY29kZSB1bml0cy4gQ2FuIGJlIDEgb3IgMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludExlbmd0aChpbnQgYykgeworICAgICAgICByZXR1cm4gYyA8PSAweGZmZmYgPyAxIDogMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgYXBwZW5kQ29kZVBvaW50LiBBcHBlbmRzIGEgY29kZSBwb2ludAorICAgICAqIHRvIGEgU3RyaW5nQnVmZmVyCisgICAgICogQHBhcmFtIGJ1ZmZlciBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBhcHBlbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgYXBwZW5kQ29kZVBvaW50KFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCBjaCkgeworICAgICAgICBpZiAoY2ggPD0gMHhmZmZmKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKDB4ZDdjMCArIChjaCA+PiAxMCkpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBpbnNlcnRDb2RlUG9pbnQuIEluc2VydHMgYSBjb2RlIHBvaW50IGluCisgICAgICogYSBTdHJpbmdCdWZmZXIKKyAgICAgKiBAcGFyYW0gYnVmZmVyIFN0cmluZ0J1ZmZlciBpbiBxdWVzdGlvbgorICAgICAqIEBwYXJhbSBpIGluZGV4IGF0IHdoaWNoIHdlIHdhbnQgY29kZSBwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIGluc2VydENvZGVQb2ludChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgaSwgaW50IGNoKSB7CisgICAgICAgIGlmIChjaCA8PSAweGZmZmYpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5pbnNlcnQoaSwgKGNoYXIpY2gpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnVmZmVyLmluc2VydChpLCAoY2hhcikoMHhkN2MwICsgKGNoID4+IDEwKSkpLmluc2VydChpICsgMSwgKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2Qgc2V0Q29kZVBvaW50QXQuIENoYW5nZXMgYSBjb2RlIHBvaW50IGF0IGEKKyAgICAgKiBnaXZlbiBpbmRleC4gQ2FuIGNoYW5nZSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGJ1ZmZlciBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBhdCB3aGljaCB3ZSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudHMKKyAgICAgKiBAcGFyYW0gY2ggcmVwbGFjZW1lbnQgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gaW50IGRpZmZlcmVuY2UgaW4gcmVzdWx0aW5nIFN0cmluZ0J1ZmZlciBsZW5ndGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBzZXRDb2RlUG9pbnRBdChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgaSwgaW50IGNoKSB7CisgICAgICAgIGludCBjcCA9IG5leHRDb2RlUG9pbnQoYnVmZmVyLCBpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjaCA8PSAweGZmZmYgJiYgY3AgPD0gMHhmZmZmKSB7IC8vIEJvdGggQk1QCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKWNoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYgKGNoID4gMHhmZmZmICYmIGNwID4gMHhmZmZmKSB7IC8vIEJvdGggc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpLCAoY2hhcikoMHhkN2MwICsgKGNoID4+IDEwKSkpOworICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpKzEsIChjaGFyKSgweGRjMDAgKyAoY2ggJiAweDNmZikpKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYgKGNoIDw9IDB4ZmZmZiAmJiBjcCA+IDB4ZmZmZikgeyAvLyBwdXR0aW5nIEJNUCBpbnN0ZWFkIG9mIHN1cHBsZW1lbnRhcnksIGJ1ZmZlciBzaHJpbmtzCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKWNoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5kZWxldGVDaGFyQXQoaSsxKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSBlbHNlIHsgLy9pZiAoY2ggPiAweGZmZmYgJiYgY3AgPD0gMHhmZmZmKSB7IC8vIHB1dHRpbmcgc3VwcGxlbWVudGFyeSBpbnN0ZWFkIG9mIEJNUCwgYnVmZmVyIGdyb3dzCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKSgweGQ3YzAgKyAoY2ggPj4gMTApKSk7CisgICAgICAgICAgICBidWZmZXIuaW5zZXJ0KGkrMSwgKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgICAgIHJldHVybiAxOyAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY291bnRDb2RlUG9pbnQuIENvdW50cyB0aGUgVVRGLTMyIGNvZGUgcG9pbnRzCisgICAgICogaW4gYSBVVEYtMTYgZW5jb2RlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSBTdHJpbmcgaW4gcXVlc3Rpb24uCisgICAgICogQHJldHVybiBpbnQgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoaXMgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nIHNvdXJjZSkgCisgICAgeyAgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKysgaSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7ICAgICAgICAgICAvLyBjb3VudCB2YWxpZCB0cmFpbCBhcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9ICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmKTsKKyAgICAgICAgICAgICAgICArKyByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCBvdGhlcnMgYXMgMQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY291bnRDb2RlUG9pbnQuIENvdW50cyB0aGUgVVRGLTMyIGNvZGUgcG9pbnRzCisgICAgICogaW4gYSBVVEYtMTYgZW5jb2RlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24uCisgICAgICogQHJldHVybiBpbnQgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoaXMgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHNvdXJjZSkgCisgICAgeyAgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKysgaSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7ICAgICAgICAgICAvLyBjb3VudCB2YWxpZCB0cmFpbCBhcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9ICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmKTsKKyAgICAgICAgICAgICAgICArKyByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCBvdGhlcnMgYXMgMQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICA9IDB4MTAwMDA7ICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGhvdyBtYW55IGNoYXJzIHRoaXMgY2hhcjMyIHJlcXVpcmVzLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSA8Y29kZT4KKyAgICAgKiA8YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNvZGVwb2ludC4KKyAgICAgKiBAcmV0dXJuIDIgaWYgaXMgaW4gc3VwcGxlbWVudGFyeSBzcGFjZSwgb3RoZXJ3aXNlIDEuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDb3VudChpbnQgY2hhcjMyKSAKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDI7CisgICAgfQorICAgIC8qKgorICAgICAqIExlYWQgc3Vycm9nYXRlIG1heGltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERCRkY7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA9IDB4RDgwMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweERDMDA7IAorICAgIC8qKgorICAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REZGRjsKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvZGUgdmFsdWUgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHN1cnJvZ2F0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICBjaGFyMTYgPD0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJhaWxTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIChUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IGNoYXIxNiAmJiAKKyAgICAgICAgICAgICAgICBjaGFyMTYgPD0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlYWRTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICBjaGFyMTYgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3Vic3RyaW5nLgorICAgICAqIFVzZWQgd2hlbiBpdGVyYXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzICh3aXRoCisgICAgICogPGNvZGU+VVRGMTYuZ2V0Q2hhckNvdW50KCk8L2NvZGU+LCBhcyB3ZWxsIGFzIHJhbmRvbSBhY2Nlc3MuIElmIGEKKyAgICAgKiB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIAorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAgKiBub3QgZm91bmQgdGhlIGluY29tcGxldGUgY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBAcGFyYW0gc291cmNlIGFycmF5IG9mIFVURi0xNiBjaGFycworICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIAorICAgICAqICAgICAgICAgICAgdGhlIHJhbmdlIG9mIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcyAKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4gICAgICAKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIG9mZnNldDE2ICsrOworICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFJhd1N1cHBsZW1lbnRhcnkoc2luZ2xlLCB0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAvLyBpc1RyYWlsU3Vycm9nYXRlKHNpbmdsZSksIHNvCisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTYgLS07CisgICAgICAgICAgICBjaGFyIGxlYWQgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworICAgIAorICAgIC8qKiAKKyAgICAgKiBPZmZzZXQgdG8gYWRkIHRvIGNvbWJpbmVkIHN1cnJvZ2F0ZSBwYWlyIHRvIGF2b2lkIG1za2luZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX09GRlNFVF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFIC0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSAtIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsgICAKKworICAgIAorICAgLyoqCisgICAgKiBGb3JtcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCBmcm9tIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXI8YnI+CisgICAgKiBOb3RlIHRoaXMgaXMgZm9yIGludGVybmFsIHVzZSBoZW5jZSBubyBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUKKyAgICAqIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGFyZSBkb25lCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSB0cmFpbCB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRSYXdTdXBwbGVtZW50YXJ5KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIHJldHVybiAobGVhZCA8PCBMRUFEX1NVUlJPR0FURV9TSElGVF8pICsgdHJhaWwgKyBTVVJST0dBVEVfT0ZGU0VUXzsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjNiNzFmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9iaWdkZWMvRGlhZ0JpZ0RlY2ltYWwuamF2YQpAQCAtMCwwICsxLDUzNTkgQEAKKy8vIyNoZWFkZXIKKy8qIEdlbmVyYXRlZCBmcm9tICdEaWFnQmlnRGVjaW1hbC5ucngnIDI3IE1hciAyMDAwIDIyOjM4OjQ0IFt2MS4xNjJdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBUcmFjZTEgVmVyYm9zZTMgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuYmlnZGVjOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogRGVjaW1hbCBkaWFnbm9zdGljIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZjICovCisvKiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogRGlhZ0JpZ0RlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgQSBjbGFzcyB0aGF0IHRlc3RzIHRoZSBCaWdEZWNpbWFsIGFuZCBNYXRoQ29udGV4dCBjbGFzc2VzLiAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIFRoZSB0ZXN0cyBoZXJlIGFyZSBkZXJpdmVkIGZyb20gb3IgY292ZXIgdGhlIHNhbWUgcGF0aHMgYXM6ICAgICAgKi8KKy8qICAgICAgLS0gQU5TSSBYMy0yNzQgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAtLSBKYXZhIEpDSyB0ZXN0Y2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIE5ldFJleHggdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gVk0vQ01TIFMvMzcwIFJFWFggaW1wbGVtZW50YXRpb24gdGVzdGNhc2VzIFsxOTgxK10gICAgICAgICAqLworLyogICAgICAtLSBJQk0gVmllbm5hIExhYm9yYXRvcnkgUmV4eCBjb21waWxlciB0ZXN0Y2FzZXMgWzE5ODgrXSAgICAgICovCisvKiAgICAgIC0tIE5ldyB0ZXN0Y2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgYXV0aG9yaXRhdGl2ZSBzb3VyY2VzIGZvciBob3cgdGhlIHVuZGVybHlpbmcgdGVjaG5vbG9neSAgICAgICovCisvKiAgIChhcml0aG1ldGljKSBzaG91bGQgd29yayBhcmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gZm9yIGRpZ2l0cz0wIChmaXhlZCBwb2ludCk6IGphdmEubWF0aC5CaWdEZWNpbWFsICAgICAgICAgICAqLworLyogICAgICAtLSBmb3IgZGlnaXRzPjAgKGZsb2F0aW5nIHBvaW50KTogQU5TSSBYMy4yNzQtMTk5NiArIGVycmF0YSAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ2hhbmdlIGxpc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjA1IEluaXRpYWwgaW1wbGVtZW50YXRpb24sIGZyb20gRGlhZ1JleHggW05ldFJleHggdGVzdHNdICAgKi8KKy8qIDE5OTguMDUuMDIgMC4wNyBjaGFuZ2VzIChlLmcuLCBjb21wYXJlVG8pICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4wNiBSb3VuZGluZyBtb2RlcyBhbmQgZm9ybWF0IGFkZGl0aW9ucyAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjI1IFJlbmFtZSBmcm9tIERpYWdEZWNpbWFsOyBtYWtlIHN0YW5kLWFsb25lIFthZGQgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgRGlhZ0V4Y2VwdGlvbiBhcyBhIE1pbm9yIGNsYXNzXSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4yNyBTdGFydCBhZGRpbmcgdGVzdGNhc2VzIGZvciBESUdJVFM9MC9GT1JNPVBMQUlOIGNhc2VzICAgICovCisvKiAgICAgICAgICAgIFJlb3JnYW5pemUgZm9yIGZhc3RlciB0cmFjZSBjb21waWxhdGlvbiAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjggbmV3OiB2YWx1ZW9mLCBzY2FsZSwgbW92ZVBvaW50WCwgdW5zY2FsZWRWYWx1ZSwgZXRjLiAgICAqLworLyogMTk5OC4wNy4wNyBTY2FsZWQgZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjA4IHNldFNjYWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDcuMTUgbmV3IHNjYWZmb2xkaW5nIChNaW5vciBUZXN0IGNsYXNzKSAtLSBzZWUgZGlhZ2FicyAgICAgICAqLworLyogMTk5OC4xMi4xNCBhZGQgdG9CaWdEZWNpbWFsIGFuZCBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdEZWNpbWFsKSAgICovCisvKiAxOTk5LjAyLjA0IG51bWJlciBwcmVwYXJhdGlvbiByb3VuZHMgaW5zdGVhZCBvZiBkaWdpdHMrMSB0cnVuYyAgICAgKi8KKy8qIDE5OTkuMDIuMDkgZm9ybWF0IG1ldGhvZCBub3cgb25seSBoYXMgdHdvIHNpZ25hdHVyZXMgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4yNyBubyBsb25nZXIgdXNlIFJleHggY2xhc3Mgb3IgUmV4eElPIGNsYXNzICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IGFkZCBNYXRoQ29udGV4dCB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMDUgdXBkYXRlIGZvciAwLjk2IFtubyBudWxsIHNldHRpbmdzLCBldGMuXSAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICBkcm9wIHN1bmRyeSBjb25zdHJ1Y3RvcnM7IG5vIGJsYW5rczsgY2hhcltdIGdldHMgaW50cyAgICovCisvKiAgICAgICAgICAgIGRyb3Agc3VuZHJ5IGNvbnZlcnRlcnMsIGFkZCBFeGFjdCBjb252ZXJ0ZXJzICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDUuMjcgYWRkaXRpb25hbCB0ZXN0cyBmb3Igc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNi4yOSBhZGRpdGlvbmFsIHRlc3RzIGZvciBleHBvbmVudCBvdmVyZmxvd3MgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjAzIGFkZCAnY29udGludWUnIG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTAgYWRkaXRpb25hbCB0ZXN0cyBmb3Igc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4xOCByYW5kb21seS1nZW5lcmF0ZWQgdGVzdHMgYWRkZWQgZm9yIGJhc2Ugb3BlcmF0b3JzICAgICAgICovCisvKiAxOTk5LjEwLjI4IHdlaXJkIGludFZhbHVlRXhhY3QgYmFkIGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMTIuMjEgbXVsdGlwbGljYXRpb24gZmFzdCBwYXRoIGZhaWx1cmUgYW5kIGVkZ2UgY2FzZXMgICAgICAgICAqLworLyogMjAwMC4wMS4wMSBjb3B5cmlnaHQgdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAzLjI2IGNvc21ldGljIHVwZGF0ZXM7IGFkZCBleHRyYSBmb3JtYXQoKSB0ZXN0Y2FzZXMgICAgICAgICAgKi8KKy8qIDIwMDAuMDMuMjcgMS4wMCBtb3ZlIHRvIGNvbS5pYm0uaWN1Lm1hdGggcGFja2FnZTsgb3BlbiBzb3VyY2UgcmVsZWFzZTsgKi8KKy8qICAgICAgICAgICAgICAgICBjaGFuZ2UgdG8gamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8vIG5vdGUgQklOQVJZIGZvciBjb252ZXJzaW9ucyBjaGVja2luZworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gY2xhc3MgZm9ybXMgYSBzdGFuZGFsb25lIHRlc3Qgc3VpdGUKKyAqIGZvciB0aGUgPGNvZGU+Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsPC9jb2RlPiBhbmQKKyAqIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQ8L2NvZGU+IGNsYXNzZXMgKG9yLCBieSBjaGFuZ2luZyB0aGUKKyAqIDxjb2RlPnBhY2thZ2U8L2NvZGU+IHN0YXRlbWVudCwgb3RoZXIgY2xhc3NlcyBvZiB0aGUgc2FtZSBuYW1lcyBhbmQKKyAqIGRlZmluaXRpb24gaW4gb3RoZXIgcGFja2FnZXMpLiAgSXQgbWF5IGFsc28gYmUgdXNlZCBhcyBhIGNvbnN0cnVjdGVkCisgKiBvYmplY3QgdG8gZW1iZWQgdGhlIHRlc3RzIGluIGFuIGV4dGVybmFsIHRlc3QgaGFybmVzcy4KKyAqIDxwPgorICogVGhlIHRlc3RzIGFyZSBjb2xsZWN0ZWQgaW50byA8aT5ncm91cHM8L2k+LCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYQorICogdGVzdGVkIG1ldGhvZCBvciBhIG1vcmUgZ2VuZXJhbCBncm91cGluZy4gIEJ5IGRlZmF1bHQsIHdoZW4gcnVuIGZyb20KKyAqIHRoZSBzdGF0aWMge0BsaW5rICNtYWluKGphdmEubGFuZy5TdHJpbmdbXSl9IG1ldGhvZCwgdGhlIHJ1biB3aWxsIGVuZAorICogaWYgYW55IHRlc3QgZmFpbHMgaW4gYSBncm91cC4gIFRoZSA8Y29kZT5jb250aW51ZTwvY29kZT4gYXJndW1lbnQgbWF5CisgKiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIHRlc3RzIHRvIHJ1biB0byBjb21wbGV0aW9uLgorICogPHA+CisgKiBUd28gbWlub3IgKGlubmVyKSBjbGFzc2VzIGFyZSB1c2VkOyB7QGxpbmsKKyAqIERpYWdCaWdEZWNpbWFsLkRpYWdFeGNlcHRpb259IGlzIHVzZWQgdG8gc2lnbmFsIHRoZSBmYWlsdXJlIG9mIGEgdGVzdAorICogZ3JvdXAsIGFuZCB7QGxpbmsgRGlhZ0JpZ0RlY2ltYWwuVGVzdH0sIGEgZGVwZW5kZW50IG1pbm9yIGNsYXNzLCBpcworICogdXNlZCB0byByZWdpc3RlciB0ZXN0cyBzbyB0aGF0IGEgc3VtbWFyeSBvZiBmYWlsdXJlcyAob3Igc3VjY2VzcykgY2FuIGJlCisgKiBwcmVzZW50ZWQgYXMgZWFjaCBncm91cCBpcyBjb21wbGV0ZWQuCisgKgorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsCisgKiBAc2VlICAgICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0CisgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKi8KKworcHVibGljIGNsYXNzIERpYWdCaWdEZWNpbWFsIGV4dGVuZHMgVGVzdEZtd2t7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAKKyAvKiBwcm9wZXJ0aWVzIHNoYXJlZCAqLworIGphdmEudXRpbC5WZWN0b3IgVGVzdHM9bmV3IGphdmEudXRpbC5WZWN0b3IoMTAwKTsgLy8gc2NhZmZvbGRpbmcKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgKi8KKyBwcml2YXRlIGludCB0b3RhbGNvdW50PTA7IC8vIGNvdW50cyB0ZXN0cyBydW4KKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgKi8KKyAKKyAvKiBDb3VudCBvZiB0ZXN0IGdyb3VwcyAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB0ZXN0Y291bnQ9Mzg7CisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHplcm89Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk87CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG9uZT1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0d289bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdGVuPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU47CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbmxvbmc9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgobG9uZykxMjM0NTU0MzIxKTsgLy8gMTAtZGlnaXRlcgorIAorIC8qIFNvbWUgY29udGV4dCBvYmplY3RzIC0tIFtzb21lIG9mIHRoZXNlIGFyZSBjaGVja2VkIGxhdGVyXSAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNkZWY9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxUOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWMzPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDMpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM2PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDYpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM5PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDkpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM1MD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg1MCk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3M9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoOSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNlPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2xkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLHRydWUpOyAvLyBsb3N0IGRpZ2l0cworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNsZDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsdHJ1ZSk7IC8vIGxvc3QgZGlnaXRzLCBkaWdpdHM9MAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNmZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pOyAvLyBmaXhlZCBkZWNpbWFsIHN0eWxlCisgCisgLyogYm91bmRhcnkgcHJpbWl0aXZlIHZhbHVlcyAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm1pbj0tMTI4OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm1heD0xMjc7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBiemVyPTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBibmVnPS0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYnBvcz0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbWluPS0yMTQ3NDgzNjQ4OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbWF4PTIxNDc0ODM2NDc7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGl6ZXI9MDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5lZz0tMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaXBvcz0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1pbj0tOTIyMzM3MjAzNjg1NDc3NTgwOEw7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBsbWF4PTkyMjMzNzIwMzY4NTQ3NzU4MDdMOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbHplcj0obG9uZykwOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG5lZz0obG9uZyktMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxwb3M9KGxvbmcpMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzbWluPS0zMjc2ODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzbWF4PTMyNzY3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IHN6ZXI9KHNob3J0KTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc25lZz0oc2hvcnQpKC0xKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzcG9zPShzaG9ydCkxOworIAorIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSB1bnVzZWQgKi8gLy8gcHJlc2VudCBidXQgbm90IHJlZmVyZW5jZWQKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGNvcHlyaWdodD0iIENvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTYsIDIwMDAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAiOworCisgCisgLyoqIENvbnN0cnVjdHMgYSA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gdGVzdCBzdWl0ZS4KKyAgICogPHA+CisgICAqIEludm9rZSBpdHMge0BsaW5rICNkaWFncnVufSBtZXRob2QgdG8gcnVuIHRoZSB0ZXN0cy4KKyAgICovCisgCisgcHVibGljIERpYWdCaWdEZWNpbWFsKCl7c3VwZXIoKTsKKyB9CisKKyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE1T3JMYXRlciA9IFZlcnNpb25JbmZvLmphdmFWZXJzaW9uKCkuY29tcGFyZVRvKFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDEsNSkpID49IDA7CisKKyAvKiogUnVuIHRoZSB0ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZS4KKyAgKgorICAqIEBwYXJhbSBpc0NvbnRpbnVlIFRoZSA8Y29kZT5ib29sZWFuPC9jb2RlPiB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgKiAgICAgICAgICAgICAgICAgICB0byBzdG9wIHJ1bm5pbmcgYWZ0ZXIgYSBncm91cCBmYWlscy4gIElmIDEgKHRydWUpCisgICogICAgICAgICAgICAgICAgICAgdGhlbiB0aGUgdGVzdHMgc2hvdWxkIGJlIHJ1biB0byBjb21wbGV0aW9uIGlmCisgICogICAgICAgICAgICAgICAgICAgcG9zc2libGU7IGlmIDAgKGZhbHNlKSB0aGVuIHRoZSBydW4gd2lsbCBlbmQgaWYgYQorICAqICAgICAgICAgICAgICAgICAgIGdyb3VwIGZhaWxzLgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyAwIGlmIGFsbCB0ZXN0cyB3ZXJlCisgICogc3VjY2Vzc2Z1bCwgPjAgKHRoZSBjb3VudCBvZiBmYWlsdXJlcykgaWYgc29tZSBmYWlsdXJlcyB3ZXJlCisgICogZGV0ZWN0ZWQsIG9yIDwwIGlmIGFuIHVuZXhwZWN0ZWQgRXhjZXB0aW9uIHdhcyBzaWduYWxsZWQuCisgICovCisKKyBwdWJsaWMgaW50IGRpYWdydW4oYm9vbGVhbiBpc0NvbnRpbnVlKXsKKyAgaW50IGZhaWxzOworICBpbnQgbnVtPTA7CisgIERpYWdFeGNlcHRpb24gZGU9bnVsbDsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIHJlc3Q9bnVsbDsKKyAgCisgIGZhaWxzPTA7IC8vIGNvdW50IG9mIGZhaWx1cmVzCisgIHRyeXtudW09MTtudW06Zm9yKDtudW08PXRlc3Rjb3VudDtudW0rKyl7IC8vIFt0ZXN0Y291bnQgaXMgY29uc3RhbnQgc2V0IGFib3ZlXQorICAgdHJ5eworICAgIGRvdGVzdChudW0pOworICAgfQorICAgY2F0Y2ggKERpYWdFeGNlcHRpb24gJDEpe2RlPSQxOworICAgIHNheSgpOworICAgIGVycmxuKCIqKioqIEZhaWxlZDoiKyIgIitkZS5nZXRNZXNzYWdlKCkrIiAiKyIqKioqIik7CisgICAgc2F5KCk7CisgICAgZmFpbHM9ZmFpbHMrZGUuZmFpbGNvdW50OworICAgIGlmICgoIWlzQ29udGludWUpKSAKKyAgICAgYnJlYWsgbnVtOworICAgfQorICAgfQorICB9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMil7ZT0kMjsgLy8gYW55IG90aGVyIGV4Y2VwdGlvbiBpcyB0b3RhbCBmYWlsdXJlOyBqdXN0IHNob3cgdHJhY2UgYW5kIHF1aXQKKyAgIHNheSgpOworICAgZXJybG4oIioqKiogRmFpbGVkOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAqKioqIik7CisgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgcmV0dXJuIC0xOworICB9LypudW0qLworICAKKyAgaWYgKGZhaWxzPT0wKSAKKyAgIHNheSgiLS0tIEFsbCBPSyAtLS0iKyIgIityaWdodCgiWyIrdG90YWxjb3VudCsiICIrInRlc3RzXSIsMTUpKTsKKyAgZWxzZSAKKyAgIHsKKyAgICBpZiAoaXNDb250aW51ZSkgCisgICAgIHsKKyAgICAgIGlmIChmYWlscz4xKSAKKyAgICAgICByZXN0PSJ0ZXN0cyI7CisgICAgICBlbHNlIAorICAgICAgIHJlc3Q9InRlc3QiOworICAgICAgc2F5KCItLS0gQWxsIHJ1biAtLS0iKyIgIityaWdodCgiWyIrdG90YWxjb3VudCsiICIrInRlc3RzLCIsMTQpKyIgIisiZmFpbGVkIisiICIrZmFpbHMrIiAiK3Jlc3QrIl0iKTsKKyAgICAgCisgICAgIH0KKyAgIH0KKyAgCisgIHJldHVybiBmYWlsczsKKyAgfQorCisgLyogUnVuIHRlc3QgYnkgbnVtYmVyIC0tIG1ldGhvZCBmb3IgZGV2ZWxvcG1lbnQvcHJpdmF0ZSBzd2l0Y2hpbmcgKi8KKyAKKyBwcml2YXRlIHZvaWQgZG90ZXN0KGludCBudW0peworICB7LypzZWxlY3QqL3N3aXRjaChudW0peworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE1hdGhDb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDE6CisgICBkaWFnbWF0aGNvbnRleHQoKTticmVhazsKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIENvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDI6CisgICBkaWFnY29uc3RydWN0b3JzKCk7YnJlYWs7CisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBPcGVyYXRvciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAzOgorICAgZGlhZ2FicygpO2JyZWFrOworICBjYXNlIDQ6CisgICBkaWFnYWRkKCk7YnJlYWs7CisgIGNhc2UgNToKKyAgIGRpYWdjb21wYXJldG8oKTticmVhazsKKyAgY2FzZSA2OgorICAgZGlhZ2RpdmlkZSgpO2JyZWFrOworICBjYXNlIDc6CisgICBkaWFnZGl2aWRlSW50ZWdlcigpO2JyZWFrOworICBjYXNlIDg6CisgICBkaWFnbWF4KCk7YnJlYWs7CisgIGNhc2UgOToKKyAgIGRpYWdtaW4oKTticmVhazsKKyAgY2FzZSAxMDoKKyAgIGRpYWdtdWx0aXBseSgpO2JyZWFrOworICBjYXNlIDExOgorICAgZGlhZ25lZ2F0ZSgpO2JyZWFrOworICBjYXNlIDEyOgorICAgZGlhZ3BsdXMoKTticmVhazsKKyAgY2FzZSAxMzoKKyAgIGRpYWdwb3coKTticmVhazsKKyAgY2FzZSAxNDoKKyAgIGRpYWdyZW1haW5kZXIoKTticmVhazsKKyAgY2FzZSAxNToKKyAgIGRpYWdzdWJ0cmFjdCgpO2JyZWFrOworICBjYXNlIDE2OgorICAgZGlhZ21hdGgoKTticmVhazsgLy8gZ2VuZXJhbCBtYXRoCisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBPdGhlciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAxNzoKKyAgIGRpYWdieXRlVmFsdWUoKTticmVhazsKKyAgY2FzZSAxODoKKyAgIGRpYWdjb21wYXJldG9PYmooKTticmVhazsKKyAgY2FzZSAxOToKKyAgIGRpYWdkb3VibGV2YWx1ZSgpO2JyZWFrOworICBjYXNlIDIwOgorICAgZGlhZ2VxdWFscygpO2JyZWFrOworICBjYXNlIDIxOgorICAgZGlhZ2Zsb2F0dmFsdWUoKTticmVhazsKKyAgY2FzZSAyMjoKKyAgIGRpYWdmb3JtYXQoKTticmVhazsKKyAgY2FzZSAyMzoKKyAgIGRpYWdoYXNoY29kZSgpO2JyZWFrOworICBjYXNlIDI0OgorICAgZGlhZ2ludHZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjU6CisgICBkaWFnbG9uZ3ZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjY6CisgICBkaWFnbW92ZXBvaW50bGVmdCgpO2JyZWFrOworICBjYXNlIDI3OgorICAgZGlhZ21vdmVwb2ludHJpZ2h0KCk7YnJlYWs7CisgIGNhc2UgMjg6CisgICBkaWFnc2NhbGUoKTticmVhazsKKyAgY2FzZSAyOToKKyAgIGRpYWdzZXRzY2FsZSgpO2JyZWFrOworICBjYXNlIDMwOgorICAgZGlhZ3Nob3J0dmFsdWUoKTticmVhazsKKyAgY2FzZSAzMToKKyAgIGRpYWdzaWdudW0oKTticmVhazsKKyAgY2FzZSAzMjoKKyAgIGRpYWd0b2JpZ2RlY2ltYWwoKTticmVhazsKKyAgY2FzZSAzMzoKKyAgIGRpYWd0b2JpZ2ludGVnZXIoKTticmVhazsKKyAgY2FzZSAzNDoKKyAgIGRpYWd0b2NoYXJhcnJheSgpO2JyZWFrOworICBjYXNlIDM1OgorICAgZGlhZ3Rvc3RyaW5nKCk7YnJlYWs7CisgIGNhc2UgMzY6CisgICBkaWFndW5zY2FsZWR2YWx1ZSgpO2JyZWFrOworICBjYXNlIDM3OgorICAgZGlhZ3ZhbHVlb2YoKTticmVhazsKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE11dGF0aW9uIHRlc3QgW211c3QgYmUgdGhlIGxhc3QgdGVzdF0gICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDM4OgorICAgZGlhZ211dGF0aW9uKCk7YnJlYWs7CisgICAvLyBpZiBhbnkgbW9yZSwgaW5jcmVhc2UgdGVzdGNvdW50IGFib3ZlCisgIGRlZmF1bHQ6eworICAgc2F5KCIqKiogZG90ZXN0IGNhc2Ugbm90IGZvdW5kOiIrIiAiK251bSsiICIrIioqKiIpOworICB9fQorICB9CisgIHJldHVybjsKKyAgfQorCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgLyogRGlhZ25vc3RpYyBncm91cCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgCisgLyoqIFRlc3QgY29uc3RydWN0b3JzIChhbmQge0BsaW5rICN0b1N0cmluZygpfSBmb3IgZXF1YWxpdGllcykuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2NvbnN0cnVjdG9ycygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5TdHJpbmcgbnVtOworICBqYXZhLm1hdGguQmlnSW50ZWdlciBiaXA7CisgIGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpejsKKyAgamF2YS5tYXRoLkJpZ0ludGVnZXIgYmluOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYmRhOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYmRiOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1jOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1kOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1lOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIGNoYXIgY2FbXTsKKyAgZG91YmxlIGR6ZXI7CisgIGRvdWJsZSBkcG9zOworICBkb3VibGUgZG5lZzsKKyAgZG91YmxlIGRwb3M1OworICBkb3VibGUgZG5lZzU7CisgIGRvdWJsZSBkbWluOworICBkb3VibGUgZG1heDsKKyAgZG91YmxlIGQ7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICAKKyAgLy8gY29uc3RhbnRzIFtzdGF0aWNhbGx5LWNhbGxlZCBjb25zdHJ1Y3RvcnNdCisgIChuZXcgVGVzdCgiY29uMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTy50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjb24wMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY29uMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjb24wMDQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmludFZhbHVlRXhhY3QoKSk9PTA7CisgIChuZXcgVGVzdCgiY29uMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmludFZhbHVlRXhhY3QoKSk9PTE7CisgIChuZXcgVGVzdCgiY29uMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLmludFZhbHVlRXhhY3QoKSk9PTEwOworICAKKyAgLy8gW2phdmEubWF0aC5dIEJpZ0RlY2ltYWwKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIChuZXcgVGVzdCgiY2JkMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNiZDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgiY2JkMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMCIpOworICAobmV3IFRlc3QoImNiZDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMC4xIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjEiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiLTEuMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4xIik7CisgIChuZXcgVGVzdCgiY2JkMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIi05LjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuMCIpOworICAobmV3IFRlc3QoImNiZDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIwLjkiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIAorICBudW09IjEyMzQ1Njc4OS4xMjM0NTY3ODkiOworICAobmV3IFRlc3QoImNiZDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpKS50b1N0cmluZygpKS5lcXVhbHMobnVtKTsKKyAgbnVtPSIxMjM0NTY3ODkuMDAwMDAwMDAwIjsKKyAgKG5ldyBUZXN0KCJjYmQwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMTIzNDU2Nzg5MDAwMDAwMDAwIjsKKyAgKG5ldyBUZXN0KCJjYmQwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMC4wMDAwMDEyMzQ1Njc4OSI7CisgIChuZXcgVGVzdCgiY2JkMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjAuMDAwMDAwMTIzNDU2Nzg5IjsKKworICAvLyBpZ25vcmUgZm9ybWF0IGNoYW5nZSBpc3N1ZXMgd2l0aCAxLjUKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2JkMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiaTAxNSIpKS5vaz1mbGFnOworLy8jZW5kaWYKKyAgCisgIC8vIEJpZ0ludGVnZXIKKyAgYmlwPW5ldyBCaWdJbnRlZ2VyKCI5ODc2NTQzMjE5ODc2NTQzMjE5ODc2NTQzMjEiKTsgLy8gYmlnZ2llICt2ZQorICBiaXo9bmV3IEJpZ0ludGVnZXIoIjAiKTsgLy8gYmlnZ2llIDAKKyAgYmluPW5ldyBCaWdJbnRlZ2VyKCItMTIzNDU2Nzg5OTg3NjU0MzIxMTIzNDU2NzgiKTsgLy8gYmlnZ2llIC12ZQorICAobmV3IFRlc3QoImNiaTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwKSkudG9TdHJpbmcoKSkuZXF1YWxzKGJpcC50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJjYmkwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpeikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNiaTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmluKSkudG9TdHJpbmcoKSkuZXF1YWxzKGJpbi50b1N0cmluZygpKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdJbnRlZ2VyKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiaTAwNCIpKS5vaz1mbGFnOworICAKKyAgLy8gQmlnSW50ZWdlciB3aXRoIHNjYWxlCisgIGJpcD1uZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5Iik7IC8vIGJpZ2lzaAorICBiZGE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXApOworICBiZGI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsNSk7CisgIGJtYz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxNSk7CisgIChuZXcgVGVzdCgiY2JzMDAxIikpLm9rPShiZGEudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMDIiKSkub2s9KGJkYi50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQuNTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMDMiKSkub2s9KGJtYy50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMTIzNDU2Nzg5Iik7CisgIGJpcD1uZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5Iik7IC8vIGJpZ2dpZQorICBiZGE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXApOworICBiZGI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsNyk7CisgIGJtYz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxMyk7CisgIGJtZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxOSk7CisgIGJtZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwyOSk7CisgIChuZXcgVGVzdCgiY2JzMDExIikpLm9rPShiZGEudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTIiKSkub2s9KGJkYi50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTEyMzQ1Njc4OTEyLjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTMiKSkub2s9KGJtYy50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTEyMzQ1LjY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTQiKSkub2s9KGJtZC50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTUiKSkub2s9KGJtZS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAxMjM0NTY3ODkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdJbnRlZ2VyKW51bGwsMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY2JzMDA0IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3NjYWxlOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsLTgpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkNil7ZT0kNjsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJjYnMwMDUiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGNoYXJbXQorICAvLyBXZSBqdXN0IHRlc3QgaXQncyB0aGVyZQorICAvLyBGdW5jdGlvbmFsaXR5IGlzIHRlc3RlZCBieSBCaWdEZWNpbWFsKFN0cmluZykuCisgIGNhPSgiMTIzLjQ1IikudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJjY2EwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDUiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGNoYXJbXSludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjY2EwMTAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGNoYXJbXSxpbnQsaW50CisgIC8vIFdlIGp1c3QgdGVzdCBpdCdzIHRoZXJlLCBhbmQgdGhhdCBvZmZzZXRzIHdvcmsuCisgIC8vIEZ1bmN0aW9uYWxpdHkgaXMgdGVzdGVkIGJ5IEJpZ0RlY2ltYWwoU3RyaW5nKS4KKyAgY2E9KCIxMjMuNDUiKS50b0NoYXJBcnJheSgpOworICAobmV3IFRlc3QoImNjYTEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCw2KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMy40NSIpOworICAobmV3IFRlc3QoImNjYTEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMywzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw0LDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw1LDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImNjYTExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgiY2NhMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw0LDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjQiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyIik7CisgIChuZXcgVGVzdCgiY2NhMTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzIik7CisgIChuZXcgVGVzdCgiY2NhMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDMsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIAorICAobmV3IFRlc3QoImNjYTEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCwzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMy40Iik7CisgIAorICAobmV3IFRlc3QoImNjYTE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCw0KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMuNCIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQiKTsKKyAgCisgIC8vIGEgY291cGxlIG9mIG9kZGllcworICBjYT0oIngyMy40eCIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDQpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzLjQiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImNjYTE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsNCwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0Iik7CisgIAorICBjYT0oIjAxMjM0NTY3ODkuOTg3NjU0MzIxMCIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDIxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkuOTg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNjYTE2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwyMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5Ljk4NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTkpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTgpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMyMSIpOworICAobmV3IFRlc3QoImNjYTE2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxNykpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkuOTg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTYpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChjaGFyW10pbnVsbCwwLDEpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNjYTIwMCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrbGVuOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLDAsMCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDkpeworICAgZmxhZz10cnVlOworICB9LypjaGVja2xlbiovCisgIChuZXcgVGVzdCgiY2NhMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tib3VuZDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwyLDQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTApeyAvLyBhbnl0aGluZyBPSworICAgZmxhZz10cnVlOworICB9LypjaGVja2JvdW5kKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrYm91bmQyOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLC0xLDIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTEpeyAvLyBhbnl0aGluZyBPSworICAgZmxhZz10cnVlOworICB9LypjaGVja2JvdW5kMiovCisgIChuZXcgVGVzdCgiY2NhMjAzIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2JvdW5kMzpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwxLC0yKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDEyKXsgLy8gYW55dGhpbmcgT0sKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tib3VuZDMqLworICAobmV3IFRlc3QoImNjYTIwNCIpKS5vaz1mbGFnOworICAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIC8vIGRvdWJsZSBbZGVwcmVjYXRlZF0KKyAgLy8gTm90ZSB0aGF0IG1hbnkgb2YgdGhlc2UgZGlmZmVyIGZyb20gdGhlIHZhbHVlT2YoZG91YmxlKSByZXN1bHRzLgorICBkemVyPShkb3VibGUpMDsKKyAgZHBvcz0oZG91YmxlKTE7CisgIGRwb3M9ZHBvcy8oKGRvdWJsZSkxMCk7CisgIGRuZWc9KGRvdWJsZSktZHBvczsKKyAgKG5ldyBUZXN0KCJjZG8wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRuZWcpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2RvMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkemVyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7IC8vIE5CLCBub3QgJzAuMCcKKyAgKG5ldyBUZXN0KCJjZG8wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRwb3MpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMDAwMDAwMDAwMDAwMDA1NTUxMTE1MTIzMTI1NzgyNzAyMTE4MTU4MzQwNDU0MTAxNTYyNSIpOworICAKKyAgZHBvczU9KGRvdWJsZSkwLjVEOworICBkbmVnNT0oZG91YmxlKS1kcG9zNTsKKyAgKG5ldyBUZXN0KCJjZG8wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRuZWc1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiY2RvMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkcG9zNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIGRtaW49amF2YS5sYW5nLkRvdWJsZS5NSU5fVkFMVUU7CisgIGRtYXg9amF2YS5sYW5nLkRvdWJsZS5NQVhfVkFMVUU7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpIC8vIGZvciBzb21lIHJlYXNvbiB3ZSBmb3JtYXQgdXNpbmcgc2NpZW50aWZpYyBub3RhdGlvbiBvbiAxLjUgYWZ0ZXIgMzAgZGVjaW1hbHMgb3Igc28KKyAgICAgIChuZXcgVGVzdCgiY2RvMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbWluKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk0MDY1NjQ1ODQxMjQ2NTQ0MTc2NTY4NzkyODY4MjIxMzcyMzY1MDU5ODAyNjE0MzI0NzY0NDI1NTg1NjgyNTAwNjc1NTA3MjcwMjA4NzUxODY1Mjk5ODM2MzYxNjM1OTkyMzc5Nzk2NTY0Njk1NDQ1NzE3NzMwOTI2NjU2NzEwMzU1OTM5Nzk2Mzk4Nzc0Nzk2MDEwNzgxODc4MTI2MzAwNzEzMTkwMzExNDA0NTI3ODQ1ODE3MTY3ODQ4OTgyMTAzNjg4NzE4NjM2MDU2OTk4NzMwNzIzMDUwMDA2Mzg3NDA5MTUzNTY0OTg0Mzg3MzEyNDczMzk3MjczMTY5NjE1MTQwMDMxNzE1Mzg1Mzk4MDc0MTI2MjM4NTY1NTkxMTcxMDI2NjU4NTU2Njg2NzY4MTg3MDM5NTYwMzEwNjI0OTMxOTQ1MjcxNTkxNDkyNDU1MzI5MzA1NDU2NTQ0NDAxMTI3NDgwMTI5NzA5OTk5NTQxOTMxOTg5NDA5MDgwNDE2NTYzMzI0NTI0NzU3MTQ3ODY5MDE0NzI2NzgwMTU5MzU1MjM4NjExNTUwMTM0ODAzNTI2NDkzNDcyMDE5Mzc5MDI2ODEwNzEwNzQ5MTcwMzMzMjIyNjg0NDc1MzMzNTcyMDgzMjQzMTkzNjA5MjM4Mjg5MzQ1ODM2ODA2MDEwNjAxMTUwNjE2OTgwOTc1MzA3ODM0MjI3NzMxODMyOTI0NzkwNDk4MjUyNDczMDc3NjM3NTkyNzI0Nzg3NDY1NjA4NDc3ODIwMzczNDQ2OTY5OTUzMzY0NzAxNzk3MjY3NzcxNzU4NTEyNTY2MDU1MTE5OTEzMTUwNDg5MTEwMTQ1MTAzNzg2MjczODE2NzI1MDk1NTgzNzM4OTczMzU5ODk5MzY2NDgwOTk0MTE2NDIwNTcwMjYzNzA5MDI3OTI0Mjc2NzU0NDU2NTIyOTA4NzUzODY4MjUwNjQxOTcxODI2NTUzMzQ0NzI2NTYyNSIpOworICAKKyAgKG5ldyBUZXN0KCJjZG8wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRtYXgpKS50b1N0cmluZygpKS5lcXVhbHMoIjE3OTc2OTMxMzQ4NjIzMTU3MDgxNDUyNzQyMzczMTcwNDM1Njc5ODA3MDU2NzUyNTg0NDk5NjU5ODkxNzQ3NjgwMzE1NzI2MDc4MDAyODUzODc2MDU4OTU1ODYzMjc2Njg3ODE3MTU0MDQ1ODk1MzUxNDM4MjQ2NDIzNDMyMTMyNjg4OTQ2NDE4Mjc2ODQ2NzU0NjcwMzUzNzUxNjk4NjA0OTkxMDU3NjU1MTI4MjA3NjI0NTQ5MDA5MDM4OTMyODk0NDA3NTg2ODUwODQ1NTEzMzk0MjMwNDU4MzIzNjkwMzIyMjk0ODE2NTgwODU1OTMzMjEyMzM0ODI3NDc5NzgyNjIwNDE0NDcyMzE2ODczODE3NzE4MDkxOTI5OTg4MTI1MDQwNDAyNjE4NDEyNDg1ODM2OCIpOworICAKKyAgCisgIC8vIG5hc3RpZXMKKyAgZD0oZG91YmxlKTk7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkwMDAwMDAwMDAwMDAwMDAyMjIwNDQ2MDQ5MjUwMzEzMDgwODQ3MjYzMzM2MTgxNjQwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wODk5OTk5OTk5OTk5OTk5OTY2NjkzMzA5MjYxMjQ1MzAzNzg3MjkxMDQ5OTU3Mjc1MzkwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDg5OTk5OTk5OTk5OTk5OTkzMTk5ODgzOTc0MTcwOTE2MTg5OTA1MjU2MDMyOTQzNzI1NTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwODk5OTk5OTk5OTk5OTk5OTc1MzY2OTI2NjQxMTI5MzM5MjU5MzUwNjcyMzY0MjM0OTI0MzE2NDA2MjUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA4OTk5OTk5OTk5OTk5OTk5MjExNTY4MTgwMTY4NTQxMTc1NTg5NzgwMzIzMjA3Mzc4Mzg3NDUxMTcxODc1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2RvMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2RvMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDA4OTk5OTk5OTk5OTk5OTk4NTMzOTQxODIyMzY1MTAwOTA0MzM1MTIyMzIyNjYzNjY0ODE3ODEwMDU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpCisgICAgICAobmV3IFRlc3QoImNkbzAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDg5OTk5OTk5OTk5OTk5OTc4NzIxOTczMzIzMjI2Nzg3NjQ0Mzc5OTUzNjkwMDc2OTQ1MzQ5NTc0MDg5MDUwMjkyOTY4NzUiKTsKKy8vI2VuZGlmCisgIAorICB0cnl7Y2hlY2twaW46ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGphdmEubGFuZy5Eb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrcGluKi8KKyAgKG5ldyBUZXN0KCJjZG8xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbmluOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja25pbiovCisgIChuZXcgVGVzdCgiY2RvMTAyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja25hbjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoamF2YS5sYW5nLkRvdWJsZS5OYU4pOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxNSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmFuKi8KKyAgKG5ldyBUZXN0KCJjZG8xMDMiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGludAorICAobmV3IFRlc3QoImNpbjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIxNDc0ODM2NDgiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS50b1N0cmluZygpKS5lcXVhbHMoIjIxNDc0ODM2NDciKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGluZWcpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgiY2luMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpemVyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY2luMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpcG9zKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY2luMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDkpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0yKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoImNpbjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTUpKS50b1N0cmluZygpKS5lcXVhbHMoIi01Iik7CisgIChuZXcgVGVzdCgiY2luMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtOSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgiY2luMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTEpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMSIpOworICAobmV3IFRlc3QoImNpbjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMDApKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC05OTkpKS50b1N0cmluZygpKS5lcXVhbHMoIi05OTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMDAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJjaW4wMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDExKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMSIpOworICAobmV3IFRlc3QoImNpbjAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOTkpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Iik7CisgIChuZXcgVGVzdCgiY2luMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMDApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMCIpOworICAobmV3IFRlc3QoImNpbjAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwMDApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgCisgIC8vIGxvbmcKKyAgKG5ldyBUZXN0KCJjbG8wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS50b1N0cmluZygpKS5lcXVhbHMoIi05MjIzMzcyMDM2ODU0Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgiY2xvMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MjIzMzcyMDM2ODU0Nzc1ODA3Iik7CisgIChuZXcgVGVzdCgiY2xvMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoImNsbzAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobHplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNsbzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobHBvcykpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8gU3RyaW5nIFttYW55IG1vcmUgZXhhbXBsZXMgYXJlIGVsc2V3aGVyZV0KKyAgLy8gc3RyaW5ncyB3aXRob3V0IEUgY2Fubm90IGdlbmVyYXRlIEUgaW4gcmVzdWx0CisgIChuZXcgVGVzdCgiY3N0MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMiIpOworICAobmV3IFRlc3QoImNzdDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi03NiIpOworICAobmV3IFRlc3QoImNzdDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjc2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIuNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTIuNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi43NiIpOworICAobmV3IFRlc3QoImNzdDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAxMi43NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjc2Iik7CisgIChuZXcgVGVzdCgiY3N0MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAuMDAzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxNy4iKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxNyIpOworICAobmV3IFRlc3QoImNzdDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi41IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiY3N0MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDQ0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMDQ0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDA1Iik7IC8vIFxOUgorICAobmV3IFRlc3QoImNzdDAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDA1Iik7IC8vIFxOUgorICAobmV3IFRlc3QoImNzdDAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4Ljg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNzdDAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIzNDU2NzguODc2NTQzMjEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzguODc2NTQzMjEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNzdDAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAzNDU2NzguODc2NTQzMjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMDM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMDAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wMDM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTM0NTY3OC44NzY1NDMyIik7CisgIAorICAvLyBleG90aWNzIC0tCisgIChuZXcgVGVzdCgiY3N0MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwZTU3Llx1MGU1MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjcuMCIpOworICAobmV3IFRlc3QoImNzdDAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGI2Ni5cdTBiNjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCJcdTBiNjZcdTBiNjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwYjZhXHUwYjY2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDAiKTsKKyAgCisgIC8vIHN0cmluZ3Mgd2l0aCBFCisgIChuZXcgVGVzdCgiY3N0MDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZSswOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkwIik7CisgIChuZXcgVGVzdCgiY3N0MDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzFFKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFMDA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMGUrMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMEUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0RSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNEUrOSIpOworICAobmV3IFRlc3QoImNzdDA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQ0RSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNC40RSsxMCIpOworICAobmV3IFRlc3QoImNzdDA1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNzNlLTciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3LjNFLTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMEUtOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMEUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBlKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSs5MSIpOworICAobmV3IFRlc3QoImNzdDA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBlKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBFKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrOTIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBlKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIAorICAobmV3IFRlc3QoImNzdDA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS04Iik7CisgIChuZXcgVGVzdCgiY3N0MDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNCIpOworICAobmV3IFRlc3QoImNzdDA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MDc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDA3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MDc5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDA4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MDgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrOCIpOworICAobmV3IFRlc3QoImNzdDA4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMCIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDkxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTE5Iik7CisgIChuZXcgVGVzdCgiY3N0MDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNyIpOworICAobmV3IFRlc3QoImNzdDA5MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MDk1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDA5NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MDk4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDA5OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSsyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSs4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjEiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjYuNSIpOworICAobmV3IFRlc3QoImNzdDExMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xOCIpOworICAobmV3IFRlc3QoImNzdDExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTYiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDExNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxMCIpOworICAobmV3IFRlc3QoImNzdDEyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMiIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTI2NSIpOworICAobmV3IFRlc3QoImNzdDEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTE3Iik7CisgIChuZXcgVGVzdCgiY3N0MTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS01Iik7CisgIChuZXcgVGVzdCgiY3N0MTMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xIik7CisgIChuZXcgVGVzdCgiY3N0MTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MTM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyIik7CisgIChuZXcgVGVzdCgiY3N0MTM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs1Iik7CisgIChuZXcgVGVzdCgiY3N0MTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs2Iik7CisgIChuZXcgVGVzdCgiY3N0MTQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs3Iik7CisgIChuZXcgVGVzdCgiY3N0MTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxMSIpOworICAobmV3IFRlc3QoImNzdDE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIzIik7CisgIAorICAobmV3IFRlc3QoImNzdDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTI2NSIpOworICAobmV3IFRlc3QoImNzdDE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtOSIpOworICAobmV3IFRlc3QoImNzdDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS01Iik7CisgIChuZXcgVGVzdCgiY3N0MTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTQiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMyIpOworICAobmV3IFRlc3QoImNzdDE1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MTU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NSIpOworICAobmV3IFRlc3QoImNzdDE1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMyIpOworICAobmV3IFRlc3QoImNzdDE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs3Iik7CisgIChuZXcgVGVzdCgiY3N0MTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxOSIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5NyIpOworICAobmV3IFRlc3QoImNzdDE3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiY3N0MTc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiY3N0MTc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoImNzdDE4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk3Iik7CisgIAorICAvLyBiYWRkaWVzIC0tCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMS4uMiIsIi4iLCIuLiIsIisrMSIsIi0tMSIsIi0rMSIsIistMSIsIjEyZSIsIjEyZSsrIiwiMTJmNCIsIiArMSIsIisgMSIsIjEyICIsIiArIDEiLCIgLSAxICIsIngiLCItMS0iLCIxMi0iLCIzKyIsIiIsIjFlLSIsIjdlMTAwMDAwMDAwMCIsIiIsImUxMDAiLCJcdTBlNWEiLCJcdTBiNjUiLCI5OWU5OTk5OTk5OTkiLCI5OTllOTk5OTk5OTk5IiwiMC45ZS05OTk5OTk5OTkiLCIwLjA5ZS05OTk5OTk5OTkiLCIwLjFlMTAwMDAwMDAwMCIsIjEwZS0xMDAwMDAwMDAwIiwiMC45ZTk5OTk5OTk5OTkiLCI5OWUtOTk5OTk5OTk5OSIsIjExMWU5OTk5OTk5OTk5IiwiMTExMWUtOTk5OTk5OTk5OSIrIiAiKyIxMTFlKjEyMyIsIjExMWUxMjMtIiwiMTExZSsxMisiLCIxMTFlMS0zLSIsIjExMWUxKjIzIiwiMTExZTFlKzMiLCIxZTEuMCIsIjFlMTIzZSIsInRlbiIsIk9ORSIsIjFlLjEiLCIxZTEuIiwiMWVlIiwiZSsxIn07IC8vIDIwMC0yMDMKKyAgLy8gMjA0LTIwNworICAvLyAyMDgtMjExCisgIC8vIDIxMS0yMTQKKyAgLy8gMjE1LTIxOQorICAvLyAyMjAtMjIyCisgIC8vIDIyMy0yMjQKKyAgLy8gMjI1LTIyNgorICAvLyAyMjctMjI4CisgIC8vIDIyOS0yMzAKKyAgLy8gMjMxLTIzMgorICAvLyAyMzMtMjM0CisgIC8vIDIzNS0yMzcKKyAgLy8gMjM4LTI0MAorICAvLyAyNDEtMjQ0CisgIC8vIDI0NS0yNDgKKyAgCisgIC8vIHdhdGNoIG91dCBmb3IgY29tbWFzIG9uIGNvbnRpbnVhdGlvbiBsaW5lcworICAKKyAge2ludCAkMTY9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTY+MDskMTYtLSxpKyspeworICAgdHJ5eworICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmFkc3RyaW5nc1tpXSk7CisgICAgc2F5KCI+Pj4gY3N0IisoMjAwK2kpKyI6IisiICIrYmFkc3RyaW5nc1tpXSsiICIrKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmFkc3RyaW5nc1tpXSkpLnRvU3RyaW5nKCkpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTcpeworICAgIGZsYWc9dHJ1ZTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiY3N0IisoMjAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoamF2YS5sYW5nLlN0cmluZyludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQxOCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY3N0MzAxIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJDb25zdHJ1Y3RvcnMiKTsKKyAgcmV0dXJuOworICB9CisKKyAvKiogTXV0YXRpb24gdGVzdHMgKGNoZWNrcyB0aGF0IGNvbnRlbnRzIG9mIGNvbnN0YW50IG9iamVjdHMgYXJlIHVuY2hhbmdlZCkuICovCisgCisgcHVibGljIHZvaWQgZGlhZ211dGF0aW9uKCl7CisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgLyogRmluYWwgdGVzdHMgLS0gY2hlY2sgY29uc3RhbnRzIGhhdmVuJ3QgbXV0YXRlZCAgICAgICAgICAgICAgICAgICAqLworICAvKiAgICAgICAgICAgICAtLSBhbHNvIHRoYXQgTUMgb2JqZWN0cyBoYXZlbid0IG11dGF0ZWQgICAgICAgICAgICAgICovCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgKG5ldyBUZXN0KCJjdWMwMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImN1YzAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjdWMwMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4udG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAKKyAgKG5ldyBUZXN0KCJjdWMwMTAiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0NFSUxJTkc9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORzsKKyAgKG5ldyBUZXN0KCJjdWMwMTEiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0RPV049PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTjsKKyAgKG5ldyBUZXN0KCJjdWMwMTIiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0ZMT09SPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SOworICAobmV3IFRlc3QoImN1YzAxMyIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9ET1dOPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTjsKKyAgKG5ldyBUZXN0KCJjdWMwMTQiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU47CisgIChuZXcgVGVzdCgiY3VjMDE1IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDE2IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTsKKyAgKG5ldyBUZXN0KCJjdWMwMTciKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX1VQPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQOworICAKKyAgKG5ldyBUZXN0KCJjdWMwMjAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXREaWdpdHMoKSk9PTk7CisgIChuZXcgVGVzdCgiY3VjMDIxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImN1YzAyMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoImN1YzAyMyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgLy8gbWM5ICA9TWF0aENvbnRleHQoOSkKKyAgLy8gbWNsZCA9TWF0aENvbnRleHQoOSwgU0NJRU5USUZJQywgMSkKKyAgLy8gbWNmZCA9TWF0aENvbnRleHQoMCwgUExBSU4pCisgIChuZXcgVGVzdCgiY3VjMDMwIikpLm9rPShtYzkuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAzMSIpKS5vaz0obWM5LmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJjdWMwMzIiKSkub2s9KG1jOS5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMzMiKSkub2s9KG1jOS5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgKG5ldyBUZXN0KCJjdWMwMzQiKSkub2s9KG1jbGQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAzNSIpKS5vaz0obWNsZC5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgiY3VjMDM2IikpLm9rPShtY2xkLmdldExvc3REaWdpdHMoKT8xOjApPT0xOworICAobmV3IFRlc3QoImN1YzAzNyIpKS5vaz0obWNsZC5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgKG5ldyBUZXN0KCJjdWMwMzgiKSkub2s9KG1jZmQuZ2V0RGlnaXRzKCkpPT0wOworICAobmV3IFRlc3QoImN1YzAzOSIpKS5vaz0obWNmZC5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICAobmV3IFRlc3QoImN1YzA0MCIpKS5vaz0obWNmZC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwNDEiKSkub2s9KG1jZmQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBzdW1tYXJ5KCJObyBtdXRhdGlvbiIpOworIH0KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogT3BlcmF0b3IgdGVzdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8vIFRoZSB1c2Ugb2YgY29udGV4dCBpbiB0aGVzZSB0ZXN0cyBhcmUgcHJpbWFyaWx5IHRvIHNob3cgdGhhdCB0aGV5CisgLy8gYXJlIGNvcnJlY3RseSBwYXNzZWQgdG8gdGhlIG1ldGhvZHMsIGV4Y2VwdCB0aGF0IHdlIGNoZWNrIHRoYXQKKyAvLyBlYWNoIG1ldGhvZCBjaGVja3MgZm9yIGxvc3REaWdpdHMuCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjYWJzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2FicygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyBtb3N0IG9mIHRoZSBmdW5jdGlvbiBvZiB0aGlzIGlzIHRlc3RlZCBieSBhZGQKKyAgKG5ldyBUZXN0KCJhYnMwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFiczAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFiczAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDAiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImFiczAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoImFiczAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkuYWJzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgiYWJzMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMDAwMCIpKS5hYnMobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiYWJzMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMSIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMSIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5hYnMobWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxOSl7YWU9JDE5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWJzMDIwIikpLm9rPWZsYWc7CisgIC8vIGNoZWNrIGxvc3RkaWdpdHMgbm90IHJhaXNlZCBpZiBkaWdpdHM9MCBbbW9uYWRpYyBtZXRob2RdCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWJzKG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjApe2FlPSQyMDsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhYnMwMjEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4uYWJzKChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIxKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJhYnMwMjIiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImFicyIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjYWRkfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2FkZCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYXJoczsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIFtmaXJzdCBncm91cCBhcmUgJ3F1aWNrIGNvbmZpZGVuY2UgY2hlY2snXQorICAobmV3IFRlc3QoImFkZDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjA1Iik7CisgIChuZXcgVGVzdCgiYWRkMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiYWRkMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTgiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTQuNSIpOworICAobmV3IFRlc3QoImFkZDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgiYWRkMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yMzQ1NjgwMCIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1MCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NTAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ1Iik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwN0UrMTMiKTsKKyAgCisgIAorICAvLyBbTm93IHRoZSBzYW1lIGdyb3VwIHdpdGggZml4ZWQgYXJpdGhtZXRpY10KKyAgKG5ldyBUZXN0KCJhZGQwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiYWRkMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43NSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wNSIpOworICAobmV3IFRlc3QoImFkZDAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFkZDAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi04Iik7CisgIChuZXcgVGVzdCgiYWRkMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi00LjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoImFkZDAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUwIik7CisgIChuZXcgVGVzdCgiYWRkMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY4MDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDAzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk1Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk0Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NDk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDUwMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwMDcwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDA3MDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDcwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDcwMDAwMCIpOworICAKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoImFkZDA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDFFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDA3RSsxMyIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAwNzAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwNzAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDcwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwNzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwNzAwMDAwIik7CisgIAorICAvLyBzb21lIHJvdW5kaW5nIGVmZmVjdHMKKyAgKG5ldyBUZXN0KCJhZGQwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMSIpOworICAKKyAgCisgIC8vIE1DCisgIChuZXcgVGVzdCgiYWRkMDcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDA3MDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMEUrMTMiKTsKKyAgCisgIAorICAvLyB6ZXJvIHByZXNlcnZhdGlvbgorICAobmV3IFRlc3QoImFkZDA4MCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMCIpOworICAKKyAgCisgIC8vIG1vcmUgZml4ZWQsIExIUyBzd2FwcworICAobmV3IFRlc3QoImFkZDA5MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNiIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTQiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUuNjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMyIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYuMjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoImFkZDA5NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDA5OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiYWRkMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFNSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01Iik7CisgIAorICAvLyBtb3JlIGZpeGVkLCBSSFMgc3dhcHMKKyAgKG5ldyBUZXN0KCJhZGQxMDgiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTA5IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTAiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTExIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNS42MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEyIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYuMjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEzIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTE0IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNi43Iik7CisgIChuZXcgVGVzdCgiYWRkMTE1IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTYiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTciKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTgiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEyOSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEzMCIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEzMSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiYWRkMTMyIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEzMyIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzQiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzUiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAKKyAgLy8gW3NvbWUgb2YgdGhlIG5leHQgZ3JvdXAgYXJlIHJlYWxseSBjb25zdHJ1Y3RvciB0ZXN0c10KKyAgKG5ldyBUZXN0KCJhZGQxNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMwIik7CisgIChuZXcgVGVzdCgiYWRkMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImFkZDE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zMCIpOworICAobmV3IFRlc3QoImFkZDE1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiYWRkMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgiYWRkMTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiN0UrMTIiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI2OTk5OTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjExIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI3MDAwMDAwMDAwMDAxLjExIik7CisgIAorICAobmV3IFRlc3QoImFkZDE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMTEiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI3MDAwMDAwMDAwMDAxLjExIik7CisgIAorICAKKyAgLy8gaW5wdXQgcHJlcGFyYXRpb24gdGVzdHMKKyAgYWxocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMDAwMCIpOworICBhcmhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzAiKSkub2s9KGFsaHMuYWRkKGFyaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjNFKzEzIik7CisgIChuZXcgVGVzdCgiYWRkMTcxIikpLm9rPShhcmhzLmFkZChhbGhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzRSsxMyIpOworICAobmV3IFRlc3QoImFkZDE3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgLy8gbmV4dCB3YXMgMS41NEUrNCB1bmRlciBvbGQgW3RydW5jYXRlIHRvIGRpZ2l0cysxXSBydWxlcworICAobmV3IFRlc3QoImFkZDE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ2IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NCIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NDQiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NEUrNCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIC8vIG5leHQgd2FzIDEuNTRFKzQgdW5kZXIgb2xkIFt0cnVuY2F0ZSB0byBkaWdpdHMrMV0gcnVsZXMKKyAgKG5ldyBUZXN0KCJhZGQxNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ2IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTRFKzQiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uYWRkKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMjIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImFkZDIwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5hZGQodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiYWRkMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDI0KXthZT0kMjQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8uYWRkKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNSl7YWU9JDI1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjAzIikpLm9rPWZsYWc7CisgIAorICAvLyBjaGVjayBsb3N0ZGlnaXRzIG5vdCByYWlzZWQgaWYgZGlnaXRzPTAgW2R5YWRpYyBtZXRob2RdCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWRkKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjYpe2FlPSQyNjsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8uYWRkKHRlbmxvbmcsbWNsZDApOworICAgZmxhZz10cnVlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNyl7YWU9JDI3OworICAgZmxhZz1mYWxzZTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFkZDIwNSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiYWRkIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNjb21wYXJlVG8oQmlnRGVjaW1hbCl9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29tcGFyZXRvKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgLy8gd2UgYXNzdW1lIGFkZC9zdWJ0cmFjdCB0ZXN0IGZ1bmN0aW9uOyB0aGlzIGp1c3QKKyAgLy8gdGVzdHMgZXhpc3RlbmNlLCBleGNlcHRpb25zLCBhbmQgcG9zc2libGUgcmVzdWx0cworICAKKyAgKG5ldyBUZXN0KCJjcHQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpKT09MTsKKyAgKG5ldyBUZXN0KCJjcHQwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpKT09MDsKKyAgKG5ldyBUZXN0KCJjcHQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAwIikpKT09MDsKKyAgKG5ldyBUZXN0KCJjcHQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3B0MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jZGVmKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3B0MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jNikpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtY2ZkKSk9PSgtMSk7CisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uY29tcGFyZVRvKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMjgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNwdDEwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5jb21wYXJlVG8odGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDI5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiY3B0MTAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmNvbXBhcmVUbyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzApe2FlPSQzMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImNwdDEwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmNvbXBhcmVUbyh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzEpe2FlPSQzMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImNwdDEwMyIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiY29tcGFyZVRvIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNkaXZpZGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZGl2aWRlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBybWNkOworICBpbnQgcmh1OworICBpbnQgcmQ7CisgIGludCBydTsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJkaXYzMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMzMzMzMzMzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY2NjY2NjciKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjMwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMiIpOworICAobmV3IFRlc3QoImRpdjMxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjMxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjI1Iik7CisgIChuZXcgVGVzdCgiZGl2MzE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImRpdjMyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMEUtNTAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIC8vIE1DCisgIChuZXcgVGVzdCgiZGl2MzI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzciKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5Iik7CisgIAorICAvLyBjaGVjayByb3VuZGluZyBleHBsaWNpdGx5IFtub3RlOiBkaWdpdHMrMSB0cnVuY2F0aW9uXQorICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORyk7CisgIChuZXcgVGVzdCgiZGl2MzMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIChuZXcgVGVzdCgiZGl2MzMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU5IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU5IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTik7CisgIChuZXcgVGVzdCgiZGl2MzM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS40NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS40Iik7CisgIChuZXcgVGVzdCgiZGl2MzM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICAobmV3IFRlc3QoImRpdjM0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNCIpOworICAobmV3IFRlc3QoImRpdjM0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCk7CisgIChuZXcgVGVzdCgiZGl2MzQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS40NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCk7CisgIChuZXcgVGVzdCgiZGl2MzQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIAorICAvLyBmaXhlZCBwb2ludC4uLgorICAobmV3IFRlc3QoImRpdjM1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MzUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjM1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoImRpdjM1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjAwIik7CisgIChuZXcgVGVzdCgiZGl2MzYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4iKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTg3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgiZGl2MzY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjM2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjUuMCIpOworICAobmV3IFRlc3QoImRpdjM3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjM3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5LjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OS41Iik7CisgIChuZXcgVGVzdCgiZGl2Mzc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuOSIpOworICAobmV3IFRlc3QoImRpdjM3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS45OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuOTk5Iik7CisgIChuZXcgVGVzdCgiZGl2Mzc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwRS01IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjM3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAiKTsKKyAgCisgIC8vLSBGaXhlZCBwb2ludDsgZXhwbGljaXQgc2NhbGVzICYgcm91bmRzIFtvbGQgQmlnRGVjaW1hbCBkaXZpZGVzXQorICByaHU9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICByZD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgIChuZXcgVGVzdCgiZGl2MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImRpdjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImRpdjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoImRpdjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgiZGl2MDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzIik7CisgIChuZXcgVGVzdCgiZGl2MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMyIpOworICAobmV3IFRlc3QoImRpdjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC43Iik7CisgIChuZXcgVGVzdCgiZGl2MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY3Iik7CisgIAorICAobmV3IFRlc3QoImRpdjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MCIpOworICAobmV3IFRlc3QoImRpdjAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyMCIpOworICAobmV3IFRlc3QoImRpdjAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDIiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNyIpOworICAobmV3IFRlc3QoImRpdjA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNyIpOworICAobmV3IFRlc3QoImRpdjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3ODAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5OCIpOworICAobmV3IFRlc3QoImRpdjA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNzI3MjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjcyNzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3MjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgcmQ9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOOyAvLyB0ZXN0IHRoaXMgaXMgYWN0dWFsbHkgYmVpbmcgdXNlZAorICAobmV3IFRlc3QoImRpdjA4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJkKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjYiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY2Iik7CisgIChuZXcgVGVzdCgiZGl2MDgzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjYiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY2NjYiKTsKKyAgCisgIHJ1PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk7IC8vIGNoZWNrIGZvciBzb21lIDAgcmVzaWR1ZXMKKyAgKG5ldyBUZXN0KCJkaXYwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAuMDAwMCIpOworICAobmV3IFRlc3QoImRpdjA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMC4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMyxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwMCIpOworICAobmV3IFRlc3QoImRpdjA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwyLHJ1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMSxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIC8vIGNoZWNrIHJvdW5kaW5nIGV4cGxpY2l0bHkKKyAgKG5ldyBUZXN0KCJkaXYxMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDYiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjEwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDQiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjEyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA0Iik7CisgIChuZXcgVGVzdCgiZGl2MTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xNSIpOworICAobmV3IFRlc3QoImRpdjEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDYiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZGl2NTIuIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8tIGVycm9yIGNvbmRpdGlvbnMgLS0tCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uZGl2aWRlKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMzIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImRpdjIwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5kaXZpZGUodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiZGl2MjAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksLTgsMCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQzNCl7ZT0kMzQ7CisgICBmbGFnPWZsYWcmKGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM1KXthZT0kMzU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIiksMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM2KXthZT0kMzY7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDUiKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMCIpLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNyl7YWU9JDM3OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA2IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDAiKSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzgpe2FlPSQzODsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qcm91bm4qLworICAobmV3IFRlc3QoImRpdjIwNyIpKS5vaz1mbGFnOworICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM5KXthZT0kMzk7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDgiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtkaXYwOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0MCl7YWU9JDQwOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRpdmlkZSBieSAwIik7CisgIH0vKmRpdjAqLworICAobmV3IFRlc3QoImRpdjIwOSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQxKXthZT0kNDE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkaXYyMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5kaXZpZGUodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQyKXthZT0kNDI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkaXYyMTEiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImRpdmlkZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZGl2aWRlSW50ZWdlcn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdkaXZpZGVJbnRlZ2VyKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgiZHZJMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjMiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAxIik7CisgIChuZXcgVGVzdCgiZHZJMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAxIik7CisgIChuZXcgVGVzdCgiZHZJMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjMiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoImR2STAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTgiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTEyMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZHZJMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOC4wMDUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAvLyBNQworICAobmV3IFRlc3QoImR2STAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIAorICAvLyBGaXhlZCAtLQorICAobmV3IFRlc3QoImR2STAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjguMDA1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uZGl2aWRlSW50ZWdlcigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uZGl2aWRlSW50ZWdlcih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNDQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuZGl2aWRlSW50ZWdlcih0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDUpe2FlPSQ0NTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImR2STEwMyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5kaXZpZGVJbnRlZ2VyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0Nil7YWU9JDQ2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZHZJMTA0IikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJkaXZpZGVJbnRlZ2VyIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNtYXh9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWF4KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIHdlIGFzc3VtZSBhZGQvc3VidHJhY3QgdGVzdCBmdW5jdGlvbjsgdGhpcyBhbmQgbWluIGp1c3QKKyAgLy8gdGVzdCBleGlzdGVuY2UgYW5kIHRlc3QgdGhlIHRydXRoIHRhYmxlCisgIChuZXcgVGVzdCgibWF4MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1heDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjciKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjciKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMCIpOworICAobmV3IFRlc3QoIm1heDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMkUrMyIpOworICAobmV3IFRlc3QoIm1heDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwIik7CisgIChuZXcgVGVzdCgibWF4MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyRSszIik7CisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubWF4KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNDcpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoIm1heDAxMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5tYXgodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgibWF4MDExIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubWF4KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0OSl7YWU9JDQ5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWF4MDEyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUubWF4KHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1MCl7YWU9JDUwOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWF4MDEzIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoIm1heCIpOworIH0KKworIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI21pbn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtaW4oKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWlueD1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAvLyB3ZSBhc3N1bWUgYWRkL3N1YnRyYWN0IHRlc3QgZnVuY3Rpb247IHRoaXMgYW5kIG1heCBqdXN0CisgIC8vIHRlc3QgZXhpc3RlbmNlIGFuZCB0ZXN0IHRoZSB0cnV0aCB0YWJsZQorICAKKyAgKG5ldyBUZXN0KCJtaW4wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoIm1pbjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibWluMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoIm1pbjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1pbjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yRSszIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCItMkUrMyIpOworICAobmV3IFRlc3QoIm1pbjAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yRSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCItMkUrMyIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgbWlueD10ZW47CisgICBtaW54Lm1pbigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDUxKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICBtaW54PXRlbjsKKyAgIG1pbngubWluKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1Mil7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm1pbjAxMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5taW4oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDUzKXthZT0kNTM7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOSkpLm1pbih0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTQpe2FlPSQ1NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1pbjAxMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJtaW4iKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI211bHRpcGx5fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ211bHRpcGx5KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGw5OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbDc3ZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGwxMjM0NTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGVkZ2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW5lZGdlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgaHVuZWRnZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG9wbzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMj1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBvZT1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgibXVsMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm11bDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgibXVsMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm11bDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMDkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNy4xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYuMTM5Iik7CisgIChuZXcgVGVzdCgibXVsMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wIik7CisgIChuZXcgVGVzdCgibXVsMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoIm11bDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwLjAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNTAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEwMC4wMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoIm11bDAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibXVsMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgibXVsMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3LjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4xMzkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMDAwLjAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEyMzQ1NjcuODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIzNC41Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwLjAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEyMzQ1NjcuODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5OTk5OTk4MDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwNTAwIik7CisgIChuZXcgVGVzdCgibXVsMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsgLy8gcmhzIGlzICcwJworICAvLyAxOTk5LjEyLjIxOiBuZXh0IG9uZSBpcyBhIGVkZ2UgY2FzZSBpZiBpbnRlcm1lZGlhdGUgbG9uZ3MgYXJlIHVzZWQKKyAgKG5ldyBUZXN0KCJtdWwwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTc2NTYyNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk3NjU2MjQ5OTk5OTAyMzQzNzUiKTsKKyAgCisgIGw5PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OUUrMTAiKTsKKyAgbDc3ZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3N0UtMjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNDAiKSkub2s9KGw5Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTY3NTciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0MjY3NjAxMTk1NzMyNzMwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDQxIikpLm9rPShsOS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzU3IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjQuMjZFKzI0Iik7CisgIChuZXcgVGVzdCgibXVsMDQyIikpLm9rPShsOS5tdWx0aXBseShsNzdlKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTUwNjE3Mjc1MzAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNDMiKSkub2s9KGw5Lm11bHRpcGx5KGw3N2UsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTQ3Iik7CisgIChuZXcgVGVzdCgibXVsMDQ0IikpLm9rPShsNzdlLm11bHRpcGx5KGw5LG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk0NyIpOworICAKKyAgbDEyMzQ1PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMy40NSIpOworICAobmV3IFRlc3QoIm11bDA1MCIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlMTEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEzIik7CisgIChuZXcgVGVzdCgibXVsMDUxIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEzIik7CisgIChuZXcgVGVzdCgibXVsMDUyIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrOSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDVFKzkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTMiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEwIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTQiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTExIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjM0NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTUiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEyIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMy40NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTYiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEzIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NUUrMTUiKTsKKyAgCisgIC8vIHRlc3Qgc29tZSBjYXNlcyB0aGF0IGFyZSBjbG9zZSB0byBleHBvbmVudCBvdmVyZmxvdworICAobmV3IFRlc3QoIm11bDA2MCIpKS5vaz0ob25lLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjllOTk5OTk5OTk5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2MSIpKS5vaz0ob25lLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjIiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5ZTk5OTk5OTk5OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjMiKSkub2s9KHRlbi5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MEUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDY0IikpLm9rPSh0ZW4ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45ZTk5OTk5OTk5OSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS4wRSs5OTk5OTk5OTkiKTsKKyAgZWRnZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OWU5OTk5OTk5OTkiKTsKKyAgdGVuZWRnZT10ZW4ubXVsdGlwbHkoZWRnZSxtY2UpOworICAobmV3IFRlc3QoIm11bDA2NSIpKS5vaz0odGVuZWRnZS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5MEUrOTk5OTk5OTk5Iik7CisgIGh1bmVkZ2U9dGVuLm11bHRpcGx5KHRlbmVkZ2UsbWNlKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjYiKSkub2s9KGh1bmVkZ2UudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTkuOTAwRSs5OTk5OTk5OTkiKTsKKyAgb3BvPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpOyAvLyBvbmUgdGVudGgKKyAgKG5ldyBUZXN0KCJtdWwwNjciKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTgiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDY4IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTllLTk5OTk5OTk5OCIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoIm11bDA2OSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk4IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5NyIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwNzAiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDcxIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTllLTk5OTk5OTk5OCIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDcyIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzMiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5NyIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RS05OTk5OTk5OTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTkuOTlFLTk5OTk5OTk5NiIpOworICAobmV3IFRlc3QoIm11bDA3NCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5Ljk5RS05OTk5OTk5OTYiKTsKKyAgCisgIC8vIHRlc3Qgc29tZSBpbnRlcm1lZGlhdGUgbGVuZ3RocworICAobmV3IFRlc3QoIm11bDA4MCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDgxIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODIiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkxMjM0NTY3ODkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODMiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MDEyMy40Iik7CisgIChuZXcgVGVzdCgibXVsMDg1IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3OC45Iik7CisgIAorICAobmV3IFRlc3QoIm11bDA5MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IikpLm11bHRpcGx5KG9wbyxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2NzguOSIpOworICAobmV3IFRlc3QoIm11bDA5NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAxMjM0IikpLm11bHRpcGx5KG9wbyxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTAxMjMuNCIpOworICAobmV3IFRlc3QoIm11bDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3OC45Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgbW9yZSBlZGdlIGNhc2VzIGFuZCBjYXJyaWVzCisgIChuZXcgVGVzdCgibXVsMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwIik7CisgIChuZXcgVGVzdCgibXVsMTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwIik7CisgIChuZXcgVGVzdCgibXVsMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIC8vIHRlc3Qgc29tZSBtb3JlIGVkZ2UgY2FzZXMgd2l0aG91dCBjYXJyaWVzCisgIChuZXcgVGVzdCgibXVsMTMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOworICAobmV3IFRlc3QoIm11bDEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MCIpOworICAobmV3IFRlc3QoIm11bDEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwIik7CisgIChuZXcgVGVzdCgibXVsMTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIHRlbi5tdWx0aXBseSgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDU1KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ubXVsdGlwbHkodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDU2KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgibXVsMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjM0NTY3ODkwMTIzNDVFLTAiKTsKKyAgIGQyPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjlFKzk5OTk5OTk5OSIpOworICAgZDEubXVsdGlwbHkoZDIsbWNkZWYpOyAvLyBtYXJnaW5hbCBvdmVyZmxvdworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTcpe29lPSQ1NzsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogMTAwMDAwMDAwMCIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTEyIik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5RSs5OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZSk7IC8vIG1hcmdpbmFsIG92ZXJmbG93LCBlbmdpbmVlcmluZworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTgpe29lPSQ1ODsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogMTAwMDAwMDAwMiIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwMyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOSIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2RlZik7IC8vIG1hcmdpbmFsIG5lZ2F0aXZlIG92ZXJmbG93CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1OSl7b2U9JDU5OworICAgZmxhZz0ob2UuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkV4cG9uZW50IE92ZXJmbG93OiAtMTAwMDAwMDAwMCIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwNCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45Iik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS05OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZSk7IC8vIG1hcmdpbmFsIG5lZ2F0aXZlIG92ZXJmbG93LCBlbmdpbmVlcmluZworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjApe29lPSQ2MDsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogLTEwMDAwMDAwMDIiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDUiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubXVsdGlwbHkoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYxKXthZT0kNjE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDYiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTi5tdWx0aXBseSh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjIpe2FlPSQ2MjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm11bDIwNyIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgibXVsdGlwbHkiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI25lZ2F0ZX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWduZWdhdGUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJuZWcwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm5lZzAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgibmVnMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgibmVnMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgibmVnMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5uZWdhdGUobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwMDAwIikpLm5lZ2F0ZShtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAwMDBFKzYiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubmVnYXRlKChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDYzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJuZWcxMDAiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubmVnYXRlKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjQpe2FlPSQ2NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm5lZzEwMSIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJuZWdhdGUiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3BsdXN9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncGx1cygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNoZTE7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoInBsdTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgicGx1MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInBsdTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInBsdTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMjAwMDAwMCIpOworICAobmV3IFRlc3QoInBsdTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMDAwMEUrNiIpOworICAobmV3IFRlc3QoInBsdTAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAwMDAiKSkucGx1cyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwMEUrNiIpOworICAKKyAgLy8gdHJ5IHNvbWUgZXhvdGljIGJ1dCBzaWxseSByb3VuZGluZyBbZm9ybWF0IGNoZWNrcyBtb3JlIHZhcmlldGllc10KKyAgLy8gW3RoaXMgbW9zdGx5IGVuc3VyZXMgd2UgY2FuIHNldCB1cCBhbmQgcGFzcyB0aGUgc2V0dGluZ10KKyAgbWNoZTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICAobmV3IFRlc3QoInBsdTAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjQiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInBsdTAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTQiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI1MSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInBsdTA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUxIikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoInBsdTA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI2IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMyIpOworICAobmV3IFRlc3QoInBsdTA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInBsdTA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE2IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAKKyAgLy8gbW9yZSBmaXhlZCwgcG90ZW50aWFsIExIUyBzd2FwcyBpZiBkb25lIGJ5IGFkZCAwCisgIChuZXcgVGVzdCgicGx1MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDU2MjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS01IikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJwbHUwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoInBsdTA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ucGx1cygoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2NSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgicGx1MTAwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnBsdXMobWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2Nil7YWU9JDY2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicGx1MTAxIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoInBsdXMiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3Bvd30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdwb3coKXsKKyAgYm9vbGVhbiBmbGFnOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgeDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbXA7CisgIGludCBuPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2eDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZuOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICBmbGFnPXRydWU7CisgIChuZXcgVGVzdCgicG93MDAxIikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDIiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDAzIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNCIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA1IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA2IikpLm9rPSgiMUUtOCIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi04IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNyIpKS5vaz0oIjFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDgiKSkub2s9IjAuMDAwMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDkiKSkub2s9IjAuMDAwMDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxMCIpKS5vaz0iMC4wMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTEiKSkub2s9IjAuMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTIiKSkub2s9IjAuMDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxMyIpKS5vaz0iMC4xIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTQiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE1IikpLm9rPSIxMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTYiKSkub2s9IjEwMDAwMDAwMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTciKSkub2s9KCIxRSs5IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTgiKSkub2s9KCIxRSs5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxOSIpKS5vaz0oIjFFKzk5OTk5OTk5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjAiKSkub2s9KCIxRSs5OTk5OTk5OTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIxIikpLm9rPSgiMUUrOTk5OTk5OTk3IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk3IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyMiIpKS5vaz0oIjFFKzMzMzMzMzMzMyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjMiKSkub2s9KCIxRS0zMzMzMzMzMzMiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMzMzMzMzMzMzIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyNCIpKS5vaz0oIjFFLTk5OTk5OTk5OCIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI1IikpLm9rPSgiMUUtOTk5OTk5OTk5IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjYiKSkub2s9IjAuNSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjciKSkub2s9IjAuMjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI4IikpLm9rPSIwLjA2MjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIAorICAobmV3IFRlc3QoInBvdzA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBvdzA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgicG93MDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoInBvdzA1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5OTk5OTk5OTciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzMzMzMzMzMzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrMzMzMzMzMzMzIik7CisgIChuZXcgVGVzdCgicG93MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjc3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrNzciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSsyMiIpOworICAobmV3IFRlc3QoInBvdzA2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNzciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS03NyIpOworICAobmV3IFRlc3QoInBvdzA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS0yMiIpOworICAobmV3IFRlc3QoInBvdzA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicG93MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI1Iik7CisgIChuZXcgVGVzdCgicG93MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2MjUiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzNiIpOworICAobmV3IFRlc3QoInBvdzA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOy8qIGZyb20gYm9vayAqLworICAobmV3IFRlc3QoInBvdzA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2NCIpOy8qIGZyb20gYm9vayAqLworICAKKyAgLy8gMTk5OC4xMi4xNCBOZXh0IHRlc3QgcmVtb3ZlZCBhcyBwb3coKSBubyBsb25nZXIgcm91bmRzIFJIUyBbYXMgcGVyIEFOU0ldCisgIC8vIFRlc3QoJ3BvdzA3MScpLm9rPUJpZ0RlY2ltYWwoJzInKS5wb3coQmlnRGVjaW1hbCgnMi4wMDAwMDAwMDEnKSxtY2RlZikudG9TdHJpbmcgPT0gJzQnLyogY2hlY2sgaW5wdXQgcm91bmRpbmcgKi8KKyAgCisgIC8qIEdlbmVyYWwgdGVzdHMgZnJvbSBvcmlnaW5hbCBSZXh4IGRpYWdub3N0aWNzICovCisgIHg9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41Iik7CisgIHRlbXA9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyAgZmxhZz10cnVlOworICB7bj0xO246Zm9yKDtuPD0xMDtuKyspeworICAgdGVtcD10ZW1wLm11bHRpcGx5KHgpLmRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKTsKKyAgIGZsYWc9ZmxhZyYoeC5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKHRlbXAudG9TdHJpbmcoKSk7CisgICB9CisgIH0vKm4qLworICAobmV3IFRlc3QoInBvdzA4MCIpKS5vaz1mbGFnOworICAKKyAgeD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIik7CisgIHRlbXA9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyAgZmxhZz10cnVlOworICB7bj0xO246Zm9yKDtuPD0yOTtuKyspeworICAgdGVtcD10ZW1wLm11bHRpcGx5KHgpLmRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKTsKKyAgIGZsYWc9ZmxhZyYoeC5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKHRlbXAudG9TdHJpbmcoKSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGludCktbiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmRpdmlkZSh0ZW1wLG1jZGVmKS50b1N0cmluZygpKTsKKyAgIC8qIE5vdGUgdGhhdCByb3VuZGluZyBlcnJvcnMgYXJlIHBvc3NpYmxlIGZvciBsYXJnZXIgIm4iICovCisgICAvKiBkdWUgdG8gdGhlIGluZm9ybWF0aW9uIGNvbnRlbnQgb2YgdGhlIGV4cG9uZW50ICAgICAgICAqLworICAgfQorICB9LypuKi8KKyAgKG5ldyBUZXN0KCJwb3cwODEiKSkub2s9ZmxhZzsKKyAgCisgIC8qIFRoZSBWaWVubmEgY2FzZS4gIENoZWNrcyBib3RoIHNldHVwIGFuZCAxL2FjYyB3b3JraW5nIHByZWNpc2lvbiAqLworICAvLyBNb2RpZmllZCAxOTk4LjEyLjE0IGFzIFJIUyBubyBsb25nZXIgcm91bmRlZCBiZWZvcmUgdXNlIChtdXN0IGZpdCkKKyAgLy8gTW9kaWZpZWQgMTk5MC4wMi4wNCBhcyBMSFMgaXMgbm93IHJvdW5kZWQgKGluc3RlYWQgb2YgdHJ1bmNhdGVkIHRvIGd1YXJkKQorICB2eD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODlFKzEwIik7IC8vIGxocyAuLiByb3VuZGVkIHRvIDEuMjNFKzE4CisgIHZuPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIzMDAwZSsyIik7IC8vIHJocyAuLiBbd2FzOiAtMS4yMzQ1NWUrMiwgcm91bmRzIHRvIC0xMjNdCisgIChuZXcgVGVzdCgicG93MDkwIikpLm9rPSh2eC5wb3codm4sbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjguNzRFLTIyMjYiKTsKKyAgCisgIC8vLSBmaXhlZCBwb2ludCB2ZXJzaW9ucyAtLS0KKyAgKG5ldyBUZXN0KCJwb3cxMDEiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwMiIpKS5vaz0iMC4zIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDMiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA0IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDUiKSkub2s9IjAuMDkiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNiIpKS5vaz0iMTAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA3IikpLm9rPSIxMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjgiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA4IikpLm9rPSIxMDAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwOSIpKS5vaz0iMTAwMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMCIpKS5vaz0iMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMSIpKS5vaz0iMTYiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTIiKSkub2s9IjI1NiIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMyIpKS5vaz0iMTAyNCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTQiKSkub2s9IjEuMDUxMDEwMDUwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpOworICAKKyAgKG5ldyBUZXN0KCJwb3cxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMCIpOworICAobmV3IFRlc3QoInBvdzEyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjYuMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwIik7CisgIChuZXcgVGVzdCgicG93MTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAwMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwMDAwMCIpOworICAobmV3IFRlc3QoInBvdzEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOworICAobmV3IFRlc3QoInBvdzEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2NCIpOworICAKKyAgLyogZXJyb3JzICovCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ucG93KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNjcpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInBvdzE1MCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5wb3codGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDY4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgicG93MTUxIikpLm9rPWZsYWc7CisgIAorICBmbGFnPXRydWU7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcucG93KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2OSl7YWU9JDY5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicG93MTUyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzApe2FlPSQ3MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBvdzE1MyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrcG9zOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTcxIikpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzEpe2FlPSQ3MTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBwb3dlcjogLTcxIik7CisgIH0vKmNoZWNrcG9zKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTQiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNCIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Mil7YWU9JDcyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czogMTIzNCIpOworICB9LypjaGVja3dob2xlKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTUiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlMTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjM0ZSsyIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDczKXthZT0kNzM7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiAxLjIzNEUrMyIpOworICB9LypjaGVja3dob2xlMSovCisgIChuZXcgVGVzdCgicG93MTU2IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTI6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi40IiksbWNkZWYpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzQpe2FlPSQ3NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDEyLjQiKTsKKyAgfS8qY2hlY2t3aG9sZTIqLworICAobmV3IFRlc3QoInBvdzE1NyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGUzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc1KXthZT0kNzU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAxIik7CisgIH0vKmNoZWNrd2hvbGUzKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTgiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlNDpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAxIiksbWNkZWYpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzYpe2FlPSQ3NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDEuMDAwMDAwMDAxIik7CisgIH0vKmNoZWNrd2hvbGU0Ki8KKyAgKG5ldyBUZXN0KCJwb3cxNTkiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlNTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAxIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc3KXthZT0kNzc7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAwMDAwMDAwMSIpOworICB9LypjaGVja3dob2xlNSovCisgIChuZXcgVGVzdCgicG93MTYwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTY6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjY3RS05ODc2NTQzMjEiKSxtYzMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzgpe2FlPSQ3ODsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDUuNjdFLTk4NzY1NDMyMSIpOworICB9LypjaGVja3dob2xlNiovCisgIChuZXcgVGVzdCgicG93MTYxIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJwb3ciKTsKKyB9CisKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNyZW1haW5kZXJ9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncmVtYWluZGVyKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgicmVtMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMTMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzIik7CisgIChuZXcgVGVzdCgicmVtMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzMyIpOworICAobmV3IFRlc3QoInJlbTAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAzMyIpOworICAobmV3IFRlc3QoInJlbTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zIik7CisgIChuZXcgVGVzdCgicmVtMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUwKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoInJlbTAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMCIpOworICAobmV3IFRlc3QoInJlbTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMi4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MCIpOworICAobmV3IFRlc3QoInJlbTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMCIpOworICAobmV3IFRlc3QoInJlbTAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMCIpOworICAobmV3IFRlc3QoInJlbTAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtNyIpOworICAobmV3IFRlc3QoInJlbTA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTgiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtOSIpOworICAobmV3IFRlc3QoInJlbTA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInJlbTA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgicmVtMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTciKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczNDUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ2NTUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44Iik7CisgIChuZXcgVGVzdCgicmVtMDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuODAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIAorICAvLyBNQyAtLQorICAobmV3IFRlc3QoInJlbTA3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAobmV3IFRlc3QoInJlbTA3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAwMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMmUrMTIiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiM0UrMTEiKTsKKyAgCisgIC8vIEZpeGVkIC0tCisgIChuZXcgVGVzdCgicmVtMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMTMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzIik7CisgIChuZXcgVGVzdCgicmVtMTA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzMyIpOworICAobmV3IFRlc3QoInJlbTEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAzMyIpOworICAobmV3IFRlc3QoInJlbTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zIik7CisgIChuZXcgVGVzdCgicmVtMTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoInJlbTExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMCIpOworICAobmV3IFRlc3QoInJlbTExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMi4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MCIpOworICAobmV3IFRlc3QoInJlbTEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMCIpOworICAobmV3IFRlc3QoInJlbTEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMzAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMCIpOworICAobmV3IFRlc3QoInJlbTEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMyIpOworICAobmV3IFRlc3QoInJlbTEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMTM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4xIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMTM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAxIik7IC8vIDFFLTcsIHBsYWluCisgIChuZXcgVGVzdCgicmVtMTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczNDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ2NTUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44Iik7CisgIChuZXcgVGVzdCgicmVtMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuODAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnJlbWFpbmRlcigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDc5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ucmVtYWluZGVyKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4MCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInJlbTIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5yZW1haW5kZXIodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDgxKXthZT0kODE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcucmVtYWluZGVyKG9uZSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDgyKXthZT0kODI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoInJlbWFpbmRlciIpOworIH0KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3N1YnRyYWN0fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3N1YnRyYWN0KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFsaHM7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhcmhzOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgLy8gW2ZpcnN0IGdyb3VwIGFyZSAncXVpY2sgY29uZmlkZW5jZSBjaGVjayddCisgIChuZXcgVGVzdCgic3ViMzAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInN1YjMwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40NSIpOworICAobmV3IFRlc3QoInN1YjMwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI4Iik7CisgIChuZXcgVGVzdCgic3ViMzA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInN1YjMwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjUiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMzA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4zIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInN1YjMwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDA4OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTU1NTU1NTU2Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMTExMTExMTExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMzMzMzMzMzMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDQiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NSIpOworICAKKyAgCisgIChuZXcgVGVzdCgic3ViMzE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS45OTk5OTkzRSsxMiIpOworICAKKyAgLy8gc3ltbWV0cnk6CisgIChuZXcgVGVzdCgic3ViMzIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTlFKzEyIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTk5OTk5M0UrMTIiKTsKKyAgCisgIAorICAvLyBbc2FtZSB3aXRoIGZpeGVkIHBvaW50IGFyaXRobWV0aWNdCisgIChuZXcgVGVzdCgic3ViMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInN1YjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40NSIpOworICAobmV3IFRlc3QoInN1YjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Iik7CisgIChuZXcgVGVzdCgic3ViMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInN1YjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjUiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4zIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInN1YjAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAyIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDg5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMzQ1NjcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTU4Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NTQiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTExMTExMTExMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTkwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NDk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NTAwMCIpOworICAKKyAgCisgIChuZXcgVGVzdCgic3ViMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTk5OTkzMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTk5OTMwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTMwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTkzMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTMwMDAwMCIpOworICAKKyAgLy8gc3ltbWV0cnk6CisgIChuZXcgVGVzdCgic3ViMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTk5OTMwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OTkzMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OTMwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTMwMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTkzMDAwMDAiKTsKKyAgCisgIC8vIE1DCisgIChuZXcgVGVzdCgic3ViMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTlFKzEyIik7CisgIAorICAobmV3IFRlc3QoInN1YjAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDBFKzEzIik7CisgIAorICAKKyAgLy8gc29tZSBvZiB0aGUgbmV4dCBncm91cCBhcmUgcmVhbGx5IGNvbnN0cnVjdG9yIHRlc3RzCisgIChuZXcgVGVzdCgic3ViMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3ViMDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInN1YjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNzAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoInN1YjA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjcwIik7CisgIChuZXcgVGVzdCgic3ViMDU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgCisgIC8vIHRoZSBhYm92ZSBhbGwgZnJvbSBhZGQ7IG1hc3NhZ2VkIGFuZCBleHRlbmRlZC4gIE5vdyBzb21lIG5ldyBvbmVzLi4uCisgIC8vIFtwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGZvciBjb21wYXJpc29uc10KKyAgLy8gTkI6IC0xRS03IGJlbG93IHdlcmUgbm9uLWV4cG9uZW50cyBwcmUtQU5TSQorICAobmV3IFRlc3QoInN1YjA4MCIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODEiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDgyIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4MyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODQiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODgiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg1IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4NiIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODciKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTEiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg4IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkyIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4OSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTAiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkxIikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzgxIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5MiIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4MiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTMiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk0IikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTYiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk3IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg3IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5OCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTkiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMTAwIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDIiKSkub2s9IjAiLmVxdWFscyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTk5OTk5OSIpKS5zdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jZGVmKS50b1N0cmluZygpKTsKKyAgCisgIGFsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAwMDAiKTsKKyAgYXJocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgic3ViMTEwIikpLm9rPShhbGhzLnN1YnRyYWN0KGFyaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjIuM0UrMTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMTEiKSkub2s9KGFyaHMuc3VidHJhY3QoYWxocyxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuM0UrMTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMTIiKSkub2s9KGFsaHMuc3VidHJhY3QoYXJocykudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OTAwMDAxIik7CisgIChuZXcgVGVzdCgic3ViMTEzIikpLm9rPShhcmhzLnN1YnRyYWN0KGFsaHMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIzNDU2Nzg5MDAwMDEiKTsKKyAgCisgIC8vIGFkZGl0aW9uYWwgc2NhbGVkIGFyaXRobWV0aWMgdGVzdHMgWzAuOTcgcHJvYmxlbV0KKyAgKG5ldyBUZXN0KCJzdWIxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInN1YjEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjk3OTgzIik7CisgIChuZXcgVGVzdCgic3ViMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjkiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMTAyIik7CisgIChuZXcgVGVzdCgic3ViMTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4zMDciKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi40MzgyMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjQzODIyIik7CisgIChuZXcgVGVzdCgic3ViMTI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuOTExIik7CisgIChuZXcgVGVzdCgic3ViMTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMzkyIik7CisgIChuZXcgVGVzdCgic3ViMTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4yNiIpOworICAobmV3IFRlc3QoInN1YjEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUxIik7CisgIChuZXcgVGVzdCgic3ViMTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIyMzQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInN1YjEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwOCIpOworICAvLyAwLiBvbiBsZWZ0CisgIChuZXcgVGVzdCgic3ViMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInN1YjE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5ODMiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAyIik7CisgIChuZXcgVGVzdCgic3ViMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjMwNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNDM4MjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQzODIyIik7CisgIChuZXcgVGVzdCgic3ViMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zOTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yNiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuNTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUxIik7CisgIChuZXcgVGVzdCgic3ViMTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjIzNCIpOworICAobmV3IFRlc3QoInN1YjE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA4Iik7CisgIC8vIG5lZ2F0aXZlcyBvZiBzYW1lCisgIChuZXcgVGVzdCgic3ViMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjk3OTgzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzk4MyIpOworICAobmV3IFRlc3QoInN1YjE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMiIpOworICAobmV3IFRlc3QoInN1YjE2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS40IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMTY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjMwNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQzODIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjE2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45MTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkxMSIpOworICAobmV3IFRlc3QoInN1YjE2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zOTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjM5MiIpOworICAobmV3IFRlc3QoInN1YjE3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yNiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MSIpOworICAobmV3IFRlc3QoInN1YjE3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yMjM0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMjM0Iik7CisgIChuZXcgVGVzdCgic3ViMTczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjAwMDgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDgiKTsKKyAgCisgIC8vIG1vcmUgZml4ZWQsIExIUyBzd2FwcyBbcmVhbGx5IHNhbWUgYXMgdGVzdGNhc2VzIHVuZGVyIGFkZF0KKyAgKG5ldyBUZXN0KCJzdWIxODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoInN1YjE4MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgic3ViMTgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2Mi42NyIpOworICAobmV3IFRlc3QoInN1YjE4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMSIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uc3VidHJhY3QoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgic3ViMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLnN1YnRyYWN0KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4NCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInN1YjIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5zdWJ0cmFjdCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODUpe2FlPSQ4NTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInN1YjIwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnN1YnRyYWN0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4Nil7YWU9JDg2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgic3ViMjAzIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoInN1YnRyYWN0Iik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUgPGNvZGU+QmlnRGVjaW1hbC5ieXRlVmFsdWUoKTwvY29kZT4gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdieXRlVmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICAKKyAgCisgIChuZXcgVGVzdCgiYnl2MDAxIikpLm9rPSgoKChieXRlKS0xMjgpKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyOCIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDAyIikpLm9rPSgoMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDQiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDUiKSkub2s9KCgxMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjciKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNiIpKS5vaz0oKC0xMjgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjgiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNyIpKS5vaz0oKC0xMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOCIpKS5vaz0oKDEyNykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOSIpKS5vaz0oKDEyNikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMzAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMCIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDExIikpLm9rPSgoYm1pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTIiKSkub2s9KChibmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibmVnKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMyIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE0IikpLm9rPSgoYnBvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYnBvcykpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTUiKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KzEpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE2IikpLm9rPSgoYm1heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbi0xKSkuYnl0ZVZhbHVlKCkpOworICAKKyAgKG5ldyBUZXN0KCJieXYwMjEiKSkub2s9KCgoKGJ5dGUpLTEyOCkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTI4IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMiIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNCIpKS5vaz0oKDk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI1IikpLm9rPSgoMTI3KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI3IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNiIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjciKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWluKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI4IikpLm9rPSgoYm5lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm5lZykpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyOSIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMzAiKSkub2s9KChicG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChicG9zKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIHRyeXsKKyAgIHY9Ii0xMjkiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmJ5dGVWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODcpe2FlPSQ4NzsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEyOCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuYnl0ZVZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4OCl7YWU9JDg4OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJieXYxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgdj0iMS41IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg5KXthZT0kODk7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5hZGQob25lKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5zdWJ0cmFjdChvbmUpLnRvU3RyaW5nKCksIjE3MCIsIjI3MCIsIjM3MCIsIjQ3MCIsIjU3MCIsIjY3MCIsIjc3MCIsIjg3MCIsIjk3MCIsIi0xNzAiLCItMjcwIiwiLTM3MCIsIi00NzAiLCItNTcwIiwiLTY3MCIsIi03NzAiLCItODcwIiwiLTk3MCIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1heCkpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwiLTEyMzQifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICAvLyAyMzQKKyAgLy8gMjM1CisgIC8vIDIzNgorICAvLyAyMzcKKyAgLy8gMjM4CisgIC8vIDIzOQorICAvLyAyNDAKKyAgLy8gMjQxCisgIC8vIDI0MgorICAvLyAyNDMKKyAgLy8gMjQ0CisgIC8vIDI0NQorICB7aW50ICQ5MD1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQ5MD4wOyQ5MC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDkxKXthZT0kOTE7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiYnl2IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICBzdW1tYXJ5KCJieXRlVmFsdWUrIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCl9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29tcGFyZXRvT2JqKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsb25nMTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxvbmcyOworICAKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJjdG8wMDEiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKT09KC0xKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDIiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDcpKSkpKT09MDsKKyAgKG5ldyBUZXN0KCJjdG8wMDMiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwKSkpKT09MTsKKyAgbG9uZzE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDMiKTsKKyAgbG9uZzI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAiKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDQiKSkub2s9KGxvbmcxLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdClsb25nMikpPT0xOworICAobmV3IFRlc3QoImN0bzAwNSIpKS5vaz0obG9uZzIuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KWxvbmcxKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3RvMDA2IikpLm9rPShsb25nMi5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbG9uZzIpKT09MDsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDkyKXsKKyAgIGZsYWc9dHJ1ZTsgLy8gc2hvdWxkIGdldCBoZXJlCisgIH0KKyAgKG5ldyBUZXN0KCJjdG8xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpImZvbyIpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbiAkOTMpeworICAgZmxhZz10cnVlOyAvLyBzaG91bGQgZ2V0IGhlcmUKKyAgfQorICAobmV3IFRlc3QoImN0bzEwMiIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJjb21wYXJlVG8oT2JqKSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZG91YmxlVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZG91YmxldmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImRvdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5Eb3VibGUodmFsKSkuZG91YmxlVmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZG92MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZG92MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZG92MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09amF2YS5sYW5nLkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUxMDAwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT1qYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZOworICBzdW1tYXJ5KCJkb3VibGVWYWx1ZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZXF1YWxzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2VxdWFscygpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJlcXUwMDEiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpbnVsbCkpKTsKKyAgKG5ldyBUZXN0KCJlcXUwMDIiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpImZvbyIpKSk7CisgIChuZXcgVGVzdCgiZXF1MDAzIikpLm9rPSghKGQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKSk7CisgIChuZXcgVGVzdCgiZXF1MDA0IikpLm9rPWQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWQpOworICAobmV3IFRlc3QoImVxdTAwNSIpKS5vaz1kLmVxdWFscygoamF2YS5sYW5nLk9iamVjdCkoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg3KSkpKTsKKyAgc3VtbWFyeSgiZXF1YWxzIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNmbG9hdFZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2Zsb2F0dmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImZsdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkZsb2F0KHZhbCkpLmZsb2F0VmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjFlMjAwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PWphdmEubGFuZy5GbG9hdC5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUyMDAiOworICAobmV3IFRlc3QoImZsdjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09amF2YS5sYW5nLkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuUE9TSVRJVkVfSU5GSU5JVFk7CisgIHZhbD0iLTFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuTkVHQVRJVkVfSU5GSU5JVFk7CisgIHN1bW1hcnkoImZsb2F0VmFsdWUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2Zvcm1hdH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdmb3JtYXQoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBpbnQgZW5nOworICBpbnQgc2NpOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA0OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA2OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDE1OworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxNTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtMDUwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbTE1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNTE7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMTUxOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDAwMDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ1MDA7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIC8vIDE5OTkuMDIuMDkgbm93IG9ubHkgdHdvIHNpZ25hdHVyZXMgZm9yIGZvcm1hdCgpLCBzbyBzb21lIHRlc3RzIGJlbG93CisgIC8vICAgICAgICAgICAgbWF5IG5vdyBiZSByZWR1bmRhbnQKKyAgCisgIChuZXcgVGVzdCgiZm9yMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjEyLjMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCItMTIuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiM0UrMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjMwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmZvcm1hdCg0LC0xKSkuZXF1YWxzKCIgICAzIik7CisgIChuZXcgVGVzdCgiZm9yMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAyIik7CisgIChuZXcgVGVzdCgiZm9yMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAxLjciKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjc1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDEuOCIpOworICAobmV3IFRlc3QoImZvcjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDAuMSIpOworICAobmV3IFRlc3QoImZvcjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCw0KSkuZXF1YWxzKCIgICAwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMikpLmVxdWFscygiICAgMC4wMSIpOworICAobmV3IFRlc3QoImZvcjAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA0IikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwzKSkuZXF1YWxzKCIgICAwLjAwNSIpOworICAobmV3IFRlc3QoImZvcjAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLmZvcm1hdCg0LDQpKS5lcXVhbHMoIiAgIDAuMDA1MCIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDEuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDEuNzMwIik7CisgIChuZXcgVGVzdCgiZm9yMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS43NiIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgIC0wLjgiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIi0xMi43MzAwIik7CisgIAorICAobmV3IFRlc3QoImZvcjAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEpKS5lcXVhbHMoIiAgIDMuMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAzIikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDMuMCIpOworICAobmV3IFRlc3QoImZvcjAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiICAgMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMyIpKS5mb3JtYXQoLTEsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDQsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDUsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIChuZXcgVGVzdCgiZm9yMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDYsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIAorICAobmV3IFRlc3QoImZvcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw4LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczMDBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3MzBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNiwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3M0UrNCIpOworICAobmV3IFRlc3QoImZvcjAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw1LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTdFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDZFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNUUrNCIpOworICAobmV3IFRlc3QoImZvcjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjNFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMSwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjJFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs0Iik7CisgIAorICAobmV3IFRlc3QoImZvcjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSw2LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjkuOTk5OTk5RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KC0xLDUsLTEsMywtMSwtMSkpLmVxdWFscygiMS4wMDAwMEUrNSIpOworICAobmV3IFRlc3QoImZvcjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMDBFKzUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OS45OSIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs1Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KDMsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIgIDFFKzUiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDIsMiwtMSwtMSkpLmVxdWFscygiMS4yMzQ1NzNFKzA0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDMsLTEsMCwtMSwtMSkpLmVxdWFscygiMS4yMzVFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU3MyIpKS5mb3JtYXQoLTEsMywtMSwwLC0xLC0xKSkuZXF1YWxzKCIxLjIzNSIpOworICAobmV3IFRlc3QoImZvcjA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMy40NSIpKS5mb3JtYXQoLTEsMywyLDAsLTEsLTEpKS5lcXVhbHMoIjEuMjM1RSswMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgCisgIGVuZz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICBzY2k9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImZvcjA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQuNSIpKS5mb3JtYXQoLTEsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoLTEsMywzLDAsZW5nLC0xKSkuZXF1YWxzKCIxMi4zNDVFKzAwMyIpOworICAobmV3IFRlc3QoImZvcjA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1IikpLmZvcm1hdCgtMSwzLDMsMCxzY2ksLTEpKS5lcXVhbHMoIjEuMjM1RSswMDQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjUiKSkuZm9ybWF0KDQsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIgICAxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoNSwzLDMsMCxlbmcsLTEpKS5lcXVhbHMoIiAgIDEyLjM0NUUrMDAzIik7CisgIChuZXcgVGVzdCgiZm9yMDY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUiKSkuZm9ybWF0KDYsMywzLDAsc2NpLC0xKSkuZXF1YWxzKCIgICAgIDEuMjM1RSswMDQiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1IikpLmZvcm1hdCgtMSwzLDIsMCwtMSwtMSkpLmVxdWFscygiMS4yMzUgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDMsNiwtMSwtMSkpLmVxdWFscygiMTIzNDUuNzMgICAgICIpOworICAobmV3IFRlc3QoImZvcjA2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwwKSkuZXF1YWxzKCIxMjM0NTAwMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMCIpOworICAobmV3IFRlc3QoImZvcjA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwyKSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDMpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwMCIpOworICAKKyAgLy8gc29tZSBmcm9tIEFOU0kgRGFsbGFzIFtOb3YgMTk5OF0KKyAgKG5ldyBUZXN0KCJmb3IwNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OS45OTkiKSkuZm9ybWF0KC0xLDIsLTEsMiwtMSwtMSkpLmVxdWFscygiMTAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk5OSIpKS5mb3JtYXQoLTEsNCwyLDIsLTEsLTEpKS5lcXVhbHMoIjEuMDAwMCAgICAiKTsKKyAgCisgIC8vIHRyeSBzb21lIHJvdW5kaW5nIG1vZGVzIFtkZWZhdWx0IFJPVU5EX0hBTEZfVVAgd2lkZWx5IHRlc3RlZCBhYm92ZV0KKyAgLy8gdGhlIGZpcnN0IGZldyBhbHNvIHRlc3RzIHRoYXQgZGVmYXVsdHMgYXJlIGFjY2VwdGVkIGZvciB0aGUgb3RoZXJzCisgIGQwND1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0Iik7CisgIGQwNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1Iik7CisgIGQwNj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA2Iik7CisgIGQxNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1Iik7CisgIChuZXcgVGVzdCgiZm9yMDgwIikpLm9rPShkMDUuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MSIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDgyIikpLm9rPShkMDUuZm9ybWF0KC0xLDEsLTEsLTEsLTEsLTEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSwtMSwtMSwtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImZvcjA4NCIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICB0cnl7CisgICBkMDUuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLDMwKTsgLy8gYmFkIG1vZGUKKyAgIGZsYWc9ZmFsc2U7IC8vIHNob3VsZG4ndCBnZXQgaGVyZQorICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5NCl7aWFlPSQ5NDsKKyAgIGZsYWc9KGlhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIGFyZ3VtZW50IDYgdG8gZm9ybWF0OiAzMCIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMDg1IikpLm9rPWZsYWc7CisgIAorICAobmV3IFRlc3QoImZvcjA5MCIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTEiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDkyIikpLm9rPShkMDQuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjA5MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTQiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikpLmVxdWFscygiMC4xIik7CisgIAorICAobmV3IFRlc3QoImZvcjA5NSIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTYiKSkub2s9KGQwNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDk3IikpLm9rPShkMDYuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA5OCIpKS5vaz0oZDE1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgZDA1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpOworICBkMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUwIik7CisgIChuZXcgVGVzdCgiZm9yMDk5IikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMiIpOworICBtMDUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjA1MCIpOworICBtMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE1MCIpOworICAobmV3IFRlc3QoImZvcjEwMSIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTAyIikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCItMC4yIik7CisgIGQwNTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTEiKTsKKyAgZDE1MT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MSIpOworICAobmV3IFRlc3QoImZvcjEwMyIpKS5vaz0oZDA1MS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTA0IikpLm9rPShkMTUxLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTA1IikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTA2IikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjEwNyIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjEwOCIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IxMDkiKSkub2s9KG0wNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjExMCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCItMC4yIik7CisgIChuZXcgVGVzdCgiZm9yMTExIikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExMiIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTEzIikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTQiKSkub2s9KG0xNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoImZvcjExNSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTYiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoImZvcjExNyIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExOCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTkiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIGQwMDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKTsKKyAgZDUwMD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMCIpOworICAobmV3IFRlc3QoImZvcjEyMSIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjIiKSkub2s9KGQwMDAuZm9ybWF0KC0xLDIsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImZvcjEyMyIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMywtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAwMCIpOworICB0cnl7IC8vIHRoaXMgc2hvdWxkIHRyYXAuLgorICAgZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ5NSl7YWU9JDk1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMTI0IikpLm9rPWZsYWc7CisgIChuZXcgVGVzdCgiZm9yMTI1IikpLm9rPShkMDUwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjYiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjciKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiZm9yMTI4IikpLm9rPShkNTAwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjkiKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41MDAiKTsKKyAgCisgIC8vIGJhZCBuZWdzIC0tCisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0yLC0xLC0xLC0xLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk2KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzMSIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMiwtMSwtMSwtMSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5Nyl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzIiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZDA1MC5mb3JtYXQoLTEsLTEsLTIsLTEsLTEsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkOTgpeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTMzIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0yLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzNCIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMSwtMSwtMSwtMiwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMDApeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTM1IikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLC0yKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEwMSl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzYiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImZvcm1hdCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjaGFzaENvZGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaGFzaGNvZGUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyBoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGhzPSIyNzgyNzgxNyI7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChocyk7CisgIChuZXcgVGVzdCgiaGFzMDAxIikpLm9rPShkLmhhc2hDb2RlKCkpPT0oaHMuaGFzaENvZGUoKSk7CisgIGhzPSIxLjI2NUUrMjAwIjsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGhzKTsKKyAgKG5ldyBUZXN0KCJoYXMwMDIiKSkub2s9KGQuaGFzaENvZGUoKSk9PShocy5oYXNoQ29kZSgpKTsKKyAgaHM9IjEyNi41RSsyMDAiOworICBkPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaHMpOworICAobmV3IFRlc3QoImhhczAwMyIpKS5vaz0oZC5oYXNoQ29kZSgpKSE9KGhzLmhhc2hDb2RlKCkpOworICBzdW1tYXJ5KCJoYXNoQ29kZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjaW50VmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaW50dmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGltYXg7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGR2PW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaW1pbjsKKyAgCisgIAorICAvLyBpbnRWYWx1ZSAtLQorICAKKyAgKG5ldyBUZXN0KCJpbnYwMDEiKSkub2s9aW1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDIiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNCIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNSIpKS5vaz0oKC0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA2IikpLm9rPSgoLTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNyIpKS5vaz1pbWF4PT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwOCIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA5IikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMyIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTAiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS41IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxMSIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDEyIikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuOSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTMiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE0IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxNSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTYiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE3IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjg4ODg4ODg4ODg4IikpLmludFZhbHVlKCkpPT0oLTEzMDU0MjQzMjgpOyAvLyB1Z2gKKyAgKG5ldyBUZXN0KCJpbnYwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItODg4ODg4ODg4ODgiKSkuaW50VmFsdWUoKSk9PTEzMDU0MjQzMjg7IC8vIHVnaAorICAobmV3IFRlc3QoImludjAyMCIpKS5vaz0oKGltaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCgoKGxvbmcpaW1heCkpKzEpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMjEiKSkub2s9KChpbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoKChsb25nKWltaW4pKS0xKSkuaW50VmFsdWUoKSk7CisgIAorICAvLyBpbnRWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImludjEwMSIpKS5vaz1pbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLmludFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiaW52MTAyIikpLm9rPSgoOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDQiKSkub2s9KCgwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDUiKSkub2s9KCgtMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwNiIpKS5vaz0oKC05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDciKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDgiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwOSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMTAiKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZUV4YWN0KCkpOworICAKKyAgdHJ5eworICAgdj0iLTg4NTg4Njg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAyKXthZT0kMTAyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJpbnYyMDAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIHRoaXMgb25lIGNvdWxkIHJhaXNlIGVpdGhlciBvdmVyZmxvdyBvciBiYWQgZGVjaW1hbCBwYXJ0CisgIHRyeXsKKyAgIHY9Ijg4MDg4ODE4ODg4LjAwMDAxIjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImludjIwMSIpKS5vaz1mbGFnOworICAKKyAgLy8gMTk5OS4xMC4yODogdGhlIHRlc3RjYXNlcyBtYXJrZWQgJyonIGZhaWxlZAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxIiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCIzNzMxMzY3MjkzIiwiNDczMTM2NzI5MyIsIjU3MzEzNjcyOTMiLCI2NzMxMzY3MjkzIiwiNzczMTM2NzI5MyIsIjg3MzEzNjcyOTMiLCI5NzMxMzY3MjkzIiwiLTM3MzEzNjcyOTMiLCItNDczMTM2NzI5MyIsIi01NzMxMzY3MjkzIiwiLTY3MzEzNjcyOTMiLCItNzczMTM2NzI5MyIsIi04NzMxMzY3MjkzIiwiLTk3MzEzNjcyOTMiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIjQ3MzEzNjcyOTMiLCI0ODMxMzY3MjkzIiwiNDkzMTM2NzI5MyIsIjUwMzEzNjcyOTMiLCI1MTMxMzY3MjkzIiwiNTIzMTM2NzI5MyIsIjUzMzEzNjcyOTMiLCI1NDMxMzY3MjkzIiwiNTUzMTM2NzI5MyIsIjU2MzEzNjcyOTMiLCI1NzMxMzY3MjkzIiwiNTgzMTM2NzI5MyIsIjU5MzEzNjcyOTMiLCI2MDMxMzY3MjkzIiwiNjEzMTM2NzI5MyIsIjYyMzEzNjcyOTMiLCI2MzMxMzY3MjkzIiwiNjQzMTM2NzI5MyIsIjY1MzEzNjcyOTMiLCI2NjMxMzY3MjkzIiwiNjczMTM2NzI5MyIsIjIyMDAwMDAwMDAiLCIyMzAwMDAwMDAwIiwiMjQwMDAwMDAwMCIsIjI1MDAwMDAwMDAiLCIyNjAwMDAwMDAwIiwiMjcwMDAwMDAwMCIsIjI4MDAwMDAwMDAiLCIyOTAwMDAwMDAwIiwiLTIyMDAwMDAwMDAiLCItMjMwMDAwMDAwMCIsIi0yNDAwMDAwMDAwIiwiLTI1MDAwMDAwMDAiLCItMjYwMDAwMDAwMCIsIi0yNzAwMDAwMDAwIiwiLTI4MDAwMDAwMDAiLCItMjkwMDAwMDAwMCIsIjI1RSs4IiwiLTI1RSs4IiwiLTEyMzQ1Njc4OTAxIn07IC8vIDIyMAorICAvLyAyMjEKKyAgLy8gMjIyCisgIC8vIDIyMworICAvLyAyMjQKKyAgLy8gMjI1ICAqCisgIC8vIDIyNgorICAvLyAyMjcKKyAgLy8gMjI4CisgIC8vIDIyOSAgKgorICAvLyAyMzAKKyAgLy8gMjMxCisgIC8vIDIzMiAgKgorICAvLyAyMzMKKyAgLy8gMjM0CisgIC8vIDIzNQorICAvLyAyMzYgICoKKyAgLy8gMjM3CisgIC8vIDIzOAorICAvLyAyMzkKKyAgLy8gMjQwCisgIC8vIDI0MQorICAvLyAyNDIgICoKKyAgLy8gMjQzICAqCisgIC8vIDI0NCAgKgorICAvLyAyNDUgICoKKyAgLy8gMjQ2ICAqCisgIC8vIDI0NyAgKgorICAvLyAyNDggICoKKyAgLy8gMjQ5ICAqCisgIC8vIDI1MCAgKgorICAvLyAyNTEgICoKKyAgLy8gMjUyICAqCisgIC8vIDI1MyAgKgorICAvLyAyNTQgICoKKyAgLy8gMjU1ICAqCisgIC8vIDI1NiAgKgorICAvLyAyNTcgICoKKyAgLy8gMjU4ICAqCisgIC8vIDI1OQorICAvLyAyNjAKKyAgLy8gMjYxCisgIC8vIDI2MgorICAvLyAyNjMKKyAgLy8gMjY0CisgIC8vIDI2NQorICAvLyAyNjYKKyAgLy8gMjY3CisgIC8vIDI2OAorICAvLyAyNjkKKyAgLy8gMjcwCisgIC8vIDI3MQorICAvLyAyNzIKKyAgLy8gMjczCisgIC8vIDI3NAorICAvLyAyNzUKKyAgLy8gMjc2CisgIC8vIDI3NworICAvLyAyNzgKKyAgLy8gMjc5CisgIC8vIDI4MAorICB7aW50ICQxMDQ9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTA0PjA7JDEwNC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA1KXthZT0kMTA1OworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgLy8gbm93IHNsaXAgaW4gc29tZSBzaW5nbGUgYml0cy4uLgorICBkaW1heD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpOworICB7aT0wO2k6Zm9yKDtpPD00OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltYXguYWRkKG51bSxtYzUwKTsKKyAgICBkdi5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA2KXthZT0kMTA2OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiaW52IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRpbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbik7CisgIHtpPTUwO2k6Zm9yKDtpPD05OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltaW4uc3VidHJhY3QobnVtLG1jNTApOworICAgIGR2LmludFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMDcpe2FlPSQxMDc7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJpbnYiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIC8vIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGFsbCByYWlzZSBiYWQtZGVjaW1hbC1wYXJ0IGV4Y2VwdGlvbnMKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIwLjA5IiwiMC45IiwiMC4wMSIsIjAuMSIsIi0wLjAxIiwiLTAuMSIsIjEuMDEiLCItMS4wMSIsIi0xLjEiLCItMTExLjExMSIsIisxMTEuMTExIiwiMS4wOSIsIjEuMDUiLCIxLjA0IiwiMS45OSIsIjEuOSIsIjEuNSIsIjEuNCIsIi0xLjA5IiwiLTEuMDUiLCItMS4wNCIsIi0xLjk5IiwiLTEuOSIsIi0xLjUiLCItMS40IiwiMUUtMTAwMCIsIi0xRS0xMDAwIiwiMTFFLTEiLCIxLjUifTsgLy8gNDAwLTQwMworICAvLyA0MDQtNDA3CisgIC8vIDQwOC00MTEKKyAgLy8gNDEyLTQxNgorICAvLyA0MTctNDIwCisgIC8vIDQyMS00MjQKKyAgLy8gNDI1LTQyOAorICAKKyAge2ludCAkMTA4PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEwOD4wOyQxMDgtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwOSl7YWU9JDEwOTsKKyAgICBub3JtPShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDQwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgc3VtbWFyeSgiaW50VmFsdWUrIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNsb25nVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbG9uZ3ZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRsbWF4OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkdj1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGxtaW47CisgIAorICAKKyAgLy8gbG9uZ1ZhbHVlIC0tCisgIAorICAobmV3IFRlc3QoImxvdjAwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjMiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMiIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjkiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMyIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE0IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTUiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxNiIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNyIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE3IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4ODg4ODg4ODg4OTk5OTk5OTk5OTgiKSkubG9uZ1ZhbHVlKCkpPT0zNDQ1MTczMzYxOTQxNTIyNDMwTDsgLy8gdWdoCisgIChuZXcgVGVzdCgibG92MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTg4ODg4ODg4ODg5OTk5OTk5OTk5OCIpKS5sb25nVmFsdWUoKSk9PSgtMzQ0NTE3MzM2MTk0MTUyMjQzMEwpOyAvLyB1Z2gKKyAgCisgIC8vIGxvbmdWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImxvdjEwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOSIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIAorICB0cnl7CisgICB2PSItODg4ODg4ODg4ODk5OTk5OTk5OTk4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMCl7YWU9JDExMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9Ijg4ODg4ODg3NDg3NDg3NDc5NDg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMSl7YWU9JDExMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEuNSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTIpe2FlPSQxMTI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxMTA5ODc2NTQzMjEiLCItMTIzNDU2Nzg5MDExMDk4NzY1NDMyMSIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLmFkZChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLnN1YnRyYWN0KG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWluKSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtYXgpKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLCI5MjIzMzcyMDM2ODU0Nzc1ODE4IiwiOTMyMzM3MjAzNjg1NDc3NTgxOCIsIjk0MjMzNzIwMzY4NTQ3NzU4MTgiLCI5NTIzMzcyMDM2ODU0Nzc1ODE4IiwiOTYyMzM3MjAzNjg1NDc3NTgxOCIsIjk3MjMzNzIwMzY4NTQ3NzU4MTgiLCI5ODIzMzcyMDM2ODU0Nzc1ODE4IiwiOTkyMzM3MjAzNjg1NDc3NTgxOCIsIi05MjIzMzcyMDM2ODU0Nzc1ODE4IiwiLTkzMjMzNzIwMzY4NTQ3NzU4MTgiLCItOTQyMzM3MjAzNjg1NDc3NTgxOCIsIi05NTIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk2MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTcyMzM3MjAzNjg1NDc3NTgxOCIsIi05ODIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk5MjMzNzIwMzY4NTQ3NzU4MTgiLCIxMjM0NTY3ODkwMTIzNDU2Nzg5MCJ9OyAvLyAyMjAKKyAgLy8gMjIxCisgIC8vIDIyMgorICAvLyAyMjMKKyAgLy8gMjI0CisgIC8vIDIyNQorICAvLyAyMjYKKyAgLy8gMjI3CisgIC8vIDIyOAorICAvLyAyMjkKKyAgLy8gMjMwCisgIC8vIDIzMQorICAvLyAyMzIKKyAgLy8gMjMzCisgIC8vIDIzNAorICAvLyAyMzUKKyAgLy8gMjM2CisgIC8vIDIzNworICAvLyAyMzgKKyAgLy8gMjM5CisgIC8vIDI0MAorICAvLyAyNDEKKyAgLy8gMjQyCisgIC8vIDI0MworICAvLyAyNDQKKyAge2ludCAkMTEzPWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDExMz4wOyQxMTMtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTQpe2FlPSQxMTQ7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvLyBub3cgc2xpcCBpbiBzb21lIHNpbmdsZSBiaXRzLi4uCisgIGRsbWF4PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCk7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1heC5hZGQobnVtLG1jNTApOworICAgIGR2LmxvbmdWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTE1KXthZT0kMTE1OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRsbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbik7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1pbi5zdWJ0cmFjdChudW0sbWM1MCk7CisgICAgZHYubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTYpe2FlPSQxMTY7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJsb3YiKyg0MDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoImxvbmdWYWx1ZSsiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI21vdmVQb2ludExlZnR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50bGVmdCgpeworICAobmV3IFRlc3QoIm1wbDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgibXBsMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgibXBsMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXBsMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMSIpOworICAobmV3IFRlc3QoIm1wbDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcGwwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wbDAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgibXBsMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA1Iik7CisgIChuZXcgVGVzdCgibXBsMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwNSIpOworICAKKyAgc3VtbWFyeSgibW92ZVBvaW50TGVmdCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjbW92ZVBvaW50UmlnaHR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50cmlnaHQoKXsKKyAgKG5ldyBUZXN0KCJtcHIwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoIm1wcjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXByMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoIm1wcjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wcjAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1wcjAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoIm1wcjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAxIik7CisgIAorICAobmV3IFRlc3QoIm1wcjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIjUwIik7CisgIChuZXcgVGVzdCgibXByMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1wcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwNSIpOworICAobmV3IFRlc3QoIm1wcjAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDA1Iik7CisgIAorICBzdW1tYXJ5KCJtb3ZlUG9pbnRSaWdodCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjc2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2NhbGUoKXsKKyAgKG5ldyBUZXN0KCJzY2EwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwIikpLnNjYWxlKCkpPT0xMDsKKyAgKG5ldyBUZXN0KCJzY2EwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRS0xMCIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnNjYWxlKCkpPT0yOworICAobmV3IFRlc3QoInNjYTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zY2FsZSgpKT09MTsKKyAgKG5ldyBUZXN0KCJzY2EwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMiIpKS5zY2FsZSgpKT09MjsKKyAgKG5ldyBUZXN0KCJzY2EwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyMyIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnNjYWxlKCkpPT0xOworICAobmV3IFRlc3QoInNjYTAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIiKSkuc2NhbGUoKSk9PTI7CisgIChuZXcgVGVzdCgic2NhMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIzIikpLnNjYWxlKCkpPT0zOworICBzdW1tYXJ5KCJzY2FsZSIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjc2V0U2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2V0c2NhbGUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIAorICAobmV3IFRlc3QoInNzYzAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInNzYzAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDIpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgic3NjMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMCIpOworICAobmV3IFRlc3QoInNzYzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDQwIik7CisgIChuZXcgVGVzdCgic3NjMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA0Iik7CisgIChuZXcgVGVzdCgic3NjMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDUwIik7CisgIChuZXcgVGVzdCgic3NjMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA1Iik7CisgIChuZXcgVGVzdCgic3NjMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNTAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNSIpOworICAobmV3IFRlc3QoInNzYzAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInNzYzAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDYiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMSIpOworICAobmV3IFRlc3QoInNzYzAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTIiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFLTEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgCisgIC8vIGNoZWNrIHJvdW5kaW5nCisgIChuZXcgVGVzdCgic3NjMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMiIpOworICAobmV3IFRlc3QoInNzYzA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5NSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgic3NjMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgic3NjMDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgic3NjMDc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIAorICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEpKS5zZXRTY2FsZSgtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMTcpe2U9JDExNzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrcnVubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEuMDAwMUQpKS5zZXRTY2FsZSgzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDExOCl7ZT0kMTE4OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKmNoZWNrcnVubiovCisgIChuZXcgVGVzdCgic3NjMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3J1bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxRS04RCkpLnNldFNjYWxlKDMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTE5KXtlPSQxMTk7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qY2hlY2tydW5uKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDIiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgic2V0U2NhbGUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSA8Y29kZT5CaWdEZWNpbWFsLnNob3J0VmFsdWUoKTwvY29kZT4gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzaG9ydHZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgCisgIChuZXcgVGVzdCgic2h2MDAyIikpLm9rPSgoKHNob3J0KTApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDAzIikpLm9rPSgoKHNob3J0KTEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA0IikpLm9rPSgoKHNob3J0KTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDYiKSkub2s9KChzbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDciKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDgiKSkub2s9KChzbmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbmVnKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDkiKSkub2s9KChzemVyKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzemVyKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMTAiKSkub2s9KChzcG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcG9zKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMTEiKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KzEpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAxMiIpKS5vaz0oKHNtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4tMSkpLnNob3J0VmFsdWUoKSk7CisgIAorICAobmV3IFRlc3QoInNodjAyMiIpKS5vaz0oKChzaG9ydCkwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDIzIikpLm9rPSgoKHNob3J0KTEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjQiKSkub2s9KCgoc2hvcnQpOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI2IikpLm9rPSgoc21heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjciKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyOCIpKS5vaz0oKHNuZWcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNuZWcpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI5IikpLm9rPSgoc3plcikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3plcikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMzAiKSkub2s9KChzcG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcG9zKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICB0cnl7CisgICB2PSItODg4ODg4ODg4ODgiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyMCl7YWU9JDEyMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgic2h2MTAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9Ijg4ODg4ODg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjEpe2FlPSQxMjE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoInNodjEwMSIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSIxLjUiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyMil7YWU9JDEyMjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJzaHYxMDIiKSkub2s9ZmxhZzsKKyAgCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMTIzNDU2IiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCI3MTExMSIsIjgxMTExIiwiOTExMTEiLCItNzExMTEiLCItODExMTEiLCItOTExMTEiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIi0xMjM0NTYifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICB7aW50ICQxMjM9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTIzPjA7JDEyMy0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjQpe2FlPSQxMjQ7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgic2h2IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAKKyAgc3VtbWFyeSgic2hvcnRWYWx1ZSsiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3NpZ251bX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzaWdudW0oKXsKKyAgLy8gbmVjZXNzYXJpbHkgY2hlY2tzIHNvbWUgb2JzY3VyZSBjb25zdHJ1Y3Rpb25zLCB0b28KKyAgKG5ldyBUZXN0KCJzaWcwMDEiKSkub2s9KC0xKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDAyIikpLm9rPSgtMSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAxMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDAzIikpLm9rPSgtMSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDQiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA1IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNiIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNyIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDgiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDkiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDEwIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMSIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAxMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDEyIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDEuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMyIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTQiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNSIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNiIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzEyIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTciKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMGUrMTIiKSkuc2lnbnVtKCkpOworICBzdW1tYXJ5KCJzaWdudW0iKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQmlnRGVjaW1hbH0gbWV0aG9kLiAqLworCisgcHVibGljIHZvaWQgZGlhZ3RvYmlnZGVjaW1hbCgpeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgKG5ldyBUZXN0KCJ0YmQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiZDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzIiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0yIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICBpZiAoIWlzSkRLMTVPckxhdGVyKQorICAgICAgKG5ldyBUZXN0KCJ0YmQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS04IikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMSIpOworICBpZiAoIWlzSkRLMTVPckxhdGVyKQorICAgICAgKG5ldyBUZXN0KCJ0YmQwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS05IikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEwIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEyIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAwMCIpOworICBzdW1tYXJ5KCJ0b0JpZ0RlY2ltYWwiKTsKKy8vI2VuZGlmCisgfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQmlnSW50ZWdlcn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b2JpZ2ludGVnZXIoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgKG5ldyBUZXN0KCJ0YmkwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMyIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjExMSIpOworICAobmV3IFRlc3QoInRiaTAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjA1IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wNCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjUiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAvLyBFeGFjdCB2YXJpZXR5IC0tCisgIChuZXcgVGVzdCgidGJpMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInRiaTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8gdGhlIGZvbGxvd2luZyBzaG91bGQgYWxsIHJhaXNlIGV4Y2VwdGlvbnMKKyAgCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMC4wOSIsIjAuOSIsIjAuMDEiLCIwLjEiLCItMC4wMSIsIi0wLjEiLCIxLjAxIiwiLTEuMDEiLCItMS4xIiwiLTExMS4xMTEiLCIrMTExLjExMSIsIjEuMDkiLCIxLjA1IiwiMS4wNCIsIjEuOTkiLCIxLjkiLCIxLjUiLCIxLjQiLCItMS4wOSIsIi0xLjA1IiwiLTEuMDQiLCItMS45OSIsIi0xLjkiLCItMS41IiwiLTEuNCIsIjFFLTEwMDAiLCItMUUtMTAwMCIsIjExRS0xIiwiMS4xIiwiMTI3NjIzMTU2MTIzNjU2NTYxMzU2MTIzNTEyMzE1NjMxMjMxNTUxMzEyMzU2LjAwMDAwMSIsIjAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIn07IC8vIDMwMC0zMDMKKyAgLy8gMzA0LTMwNworICAvLyAzMDgtMzExCisgIC8vIDMxMi0zMTYKKyAgLy8gMzE3LTMyMAorICAvLyAzMjEtMzI0CisgIC8vIDMyNS0zMjgKKyAgLy8gMzI5CisgIC8vIDMzMAorICAKKyAge2ludCAkMTI1PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEyNT4wOyQxMjUtLSxpKyspeworICAgdHJ5eworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pKS50b0JpZ0ludGVnZXJFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyNil7CisgICAgZmxhZz10cnVlOworICAgfQorICAgKG5ldyBUZXN0KCJ0YmkiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoInRvQmlnSW50ZWdlcisiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQ2hhckFycmF5fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3RvY2hhcmFycmF5KCl7CisgIGphdmEubGFuZy5TdHJpbmcgc3RyOworICBjaGFyIGNhcltdOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgY2hhciBjYVtdOworICAvLyB0aGUgZnVuY3Rpb24gb2YgdGhpcyBoYXMgYmVlbiB0ZXN0ZWQgYWJvdmUsIHRoaXMgaXMgc2ltcGx5IGFuCisgIC8vIGV4aXN0ZW5jZSBwcm9vZiBhbmQgdHlwZS1jaGVjaworICBzdHI9Ii0xMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHN0cik7CisgIGNhPWQudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDEiKSkub2s9Y2EubGVuZ3RoPT1jYXIubGVuZ3RoOworICAobmV3IFRlc3QoInRjYTAwMiIpKS5vaz0obmV3IGphdmEubGFuZy5TdHJpbmcoY2EpKS5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhcikpKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDMiKSkub2s9KGQudG9DaGFyQXJyYXkoKSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIChuZXcgVGVzdCgidGNhMDA0IikpLm9rPShjYSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIHN1bW1hcnkoInRvQ2hhckFycmF5Iik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN0b1N0cmluZ30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b3N0cmluZygpeworICBqYXZhLmxhbmcuU3RyaW5nIHN0cjsKKyAgY2hhciBjYXJbXTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNoYXIgY2FbXTsKKyAgamF2YS5sYW5nLlN0cmluZyBjczsKKyAgLy8gdGhlIGZ1bmN0aW9uIG9mIHRoaXMgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLCB0aGlzIGlzIHNpbXBseSBhbgorICAvLyBleGlzdGVuY2UgcHJvb2YgYW5kIHR5cGUtY2hlY2sKKyAgc3RyPSIxMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhciwwLGNhci5sZW5ndGgpOworICBjYT1kLnRvQ2hhckFycmF5KCk7CisgIGNzPWQudG9TdHJpbmcoKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDEiKSkub2s9KHN0ci50b0NoYXJBcnJheSgpLmxlbmd0aCk9PWNhLmxlbmd0aDsKKyAgKG5ldyBUZXN0KCJ0b3MwMDIiKSkub2s9KHN0ci5sZW5ndGgoKSk9PShjcy5sZW5ndGgoKSk7CisgIChuZXcgVGVzdCgidG9zMDAzIikpLm9rPXN0ci5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhKSkpOworICAobmV3IFRlc3QoInRvczAwNCIpKS5vaz1zdHIuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWNzKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDUiKSkub2s9KGNzIGluc3RhbmNlb2YgamF2YS5sYW5nLlN0cmluZyk7CisgIChuZXcgVGVzdCgidG9zMDA2IikpLm9rPShkLnRvU3RyaW5nKCkgaW5zdGFuY2VvZiBqYXZhLmxhbmcuU3RyaW5nKTsKKyAgc3VtbWFyeSgidG9TdHJpbmciKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3Vuc2NhbGVkVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndW5zY2FsZWR2YWx1ZSgpeworICAvLyBqdXN0IGxpa2UgdG9CaWdJbnRlZ2VyLCBidXQgc2NhbHkgYml0cyBhcmUgcHJlc2VydmVkIFt3aXRob3V0IGRvdHNdCisgIChuZXcgVGVzdCgidW5zMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidW5zMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInVuczAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxRSswIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInVuczAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInVuczAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidW5zMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoInVuczAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMSIpOworICAobmV3IFRlc3QoInVuczAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAxIik7CisgIChuZXcgVGVzdCgidW5zMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMSIpOworICAobmV3IFRlc3QoInVuczAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMTEuMTExIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTExMTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMTExMTEiKTsKKyAgc3VtbWFyeSgidW5zY2FsZWRWYWx1ZSIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjdmFsdWVPZn0gbWV0aG9kIFtsb25nIGFuZCBkb3VibGVdLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd2YWx1ZW9mKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiBlPW51bGw7CisgIGRvdWJsZSBkemVyOworICBkb3VibGUgZHBvczsKKyAgZG91YmxlIGRuZWc7CisgIGRvdWJsZSBkcG9zNTsKKyAgZG91YmxlIGRuZWc1OworICBkb3VibGUgZG1pbjsKKyAgZG91YmxlIGRtYXg7CisgIGRvdWJsZSBkOworICAKKyAgLy8gdmFsdWVPZihsb25nIFssc2NhbGVdKSAtLQorICAKKyAgKG5ldyBUZXN0KCJ2YWwwMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoKGxvbmcpKChieXRlKSsxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidmFsMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpKzIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDYiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDciKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDgiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4pLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDkiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtYXgpLnRvU3RyaW5nKCkpLmVxdWFscygiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAobmV3IFRlc3QoInZhbDAxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG5lZykudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidmFsMDEyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihscG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4sMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAobmV3IFRlc3QoInZhbDAxNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG1heCwwKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwMzY4NTQ3NzU4MDciKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTUiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxuZWcsMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHBvcywwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsemVyLDApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAxOCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInZhbDAxOSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMjAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoInZhbDAyMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDIyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWluLDcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NS40Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgidmFsMDIzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWF4LDExKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwLjM2ODU0Nzc1ODA3Iik7CisgIAorICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykyMywtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEyNyl7ZT0kMTI3OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgc2NhbGU6IC04Iik7CisgIH0vKmNoZWNrc2NhbGUqLworICAobmV3IFRlc3QoInZhbDEwMCIpKS5vaz1mbGFnOworICAKKyAgLy8gdmFsdWVPZihkb3VibGUpIC0tCisgIAorICBkemVyPShkb3VibGUpMDsKKyAgZHBvcz0oZG91YmxlKTE7CisgIGRwb3M9ZHBvcy8oKGRvdWJsZSkxMCk7CisgIGRuZWc9KGRvdWJsZSktZHBvczsKKyAgKG5ldyBUZXN0KCJ2YWwyMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGRuZWcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInZhbDIwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsgLy8gY2YuIGNvbnN0cnVjdG9yCisgIChuZXcgVGVzdCgidmFsMjAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkcG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICBkcG9zNT0oZG91YmxlKTAuNUQ7CisgIGRuZWc1PShkb3VibGUpLWRwb3M1OworICAobmV3IFRlc3QoInZhbDIwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZG5lZzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoInZhbDIwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHBvczUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIGRtaW49amF2YS5sYW5nLkRvdWJsZS5NSU5fVkFMVUU7CisgIGRtYXg9amF2YS5sYW5nLkRvdWJsZS5NQVhfVkFMVUU7CisgIChuZXcgVGVzdCgidmFsMjA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWluKS50b1N0cmluZygpKS5lcXVhbHMoIjQuOUUtMzI0Iik7CisgIChuZXcgVGVzdCgidmFsMjA3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWF4KS50b1N0cmluZygpKS5lcXVhbHMoIjEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4Iik7CisgIAorICAvLyBuYXN0aWVzCisgIGQ9KGRvdWJsZSk5OworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wOSIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwOTAiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wRS00Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS01Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS02Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS03Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS04Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE4IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk4RS05Iik7CisgIAorICB0cnl7Y2hlY2twaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2twaW4qLworICAobmV3IFRlc3QoInZhbDMwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tuaW4qLworICAobmV3IFRlc3QoInZhbDMwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuYW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5hTik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEzMCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmFuKi8KKyAgKG5ldyBUZXN0KCJ2YWwzMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoInZhbHVlT2YiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dH0gY2xhc3MuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21hdGhjb250ZXh0KCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb24xOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jY29uMjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2NvbjM7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb240OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1jOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1kOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1mOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1oZDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtaGU7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNybWh1OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm11bjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtdTsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGU9bnVsbDsKKyAgLy8gdGhlc2UgdGVzdHMgYXJlIG1vc3RseSBleGlzdGVuY2UgY2hlY2tzCisgIChuZXcgVGVzdCgibWNuMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoIm1jbjAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJtY24wMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRGb3JtKCkpIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSkhPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIChuZXcgVGVzdCgibWNuMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICAobmV3IFRlc3QoIm1jbjAxMCIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc+PTA7CisgIChuZXcgVGVzdCgibWNuMDExIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTIiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTMiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04+PTA7CisgIChuZXcgVGVzdCgibWNuMDE0IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOPj0wOworICAobmV3IFRlc3QoIm1jbjAxNSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA+PTA7CisgIChuZXcgVGVzdCgibWNuMDE2IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk+PTA7CisgIChuZXcgVGVzdCgibWNuMDE3IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVA+PTA7CisgIAorICBtY2NvbjE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMTExKTsKKyAgKG5ldyBUZXN0KCJtY24wMjEiKSkub2s9KG1jY29uMS5nZXREaWdpdHMoKSk9PTExMTsKKyAgKG5ldyBUZXN0KCJtY24wMjIiKSkub2s9KG1jY29uMS5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgibWNuMDIzIikpLm9rPShtY2NvbjEuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDI0IikpLm9rPShtY2NvbjEuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBtY2NvbjI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoNzgsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyk7CisgIChuZXcgVGVzdCgibWNuMDMxIikpLm9rPShtY2NvbjIuZ2V0RGlnaXRzKCkpPT03ODsKKyAgKG5ldyBUZXN0KCJtY24wMzIiKSkub2s9KG1jY29uMi5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAzMyIpKS5vaz0obWNjb24yLmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjAzNCIpKS5vaz0obWNjb24yLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgbWNjb24zPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDUsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTix0cnVlKTsKKyAgKG5ldyBUZXN0KCJtY24wNDEiKSkub2s9KG1jY29uMy5nZXREaWdpdHMoKSk9PTU7CisgIChuZXcgVGVzdCgibWNuMDQyIikpLm9rPShtY2NvbjMuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgKG5ldyBUZXN0KCJtY24wNDMiKSkub2s9KG1jY29uMy5nZXRMb3N0RGlnaXRzKCk/MTowKT09MTsKKyAgKG5ldyBUZXN0KCJtY24wNDQiKSkub2s9KG1jY29uMy5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIG1jY29uND1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgKG5ldyBUZXN0KCJtY24wNTEiKSkub2s9KG1jY29uNC5nZXREaWdpdHMoKSk9PTA7CisgIChuZXcgVGVzdCgibWNuMDUyIikpLm9rPShtY2NvbjQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoIm1jbjA1MyIpKS5vaz0obWNjb240LmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjA1NCIpKS5vaz0obWNjb240LmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYxIikpLm9rPShtY2NvbjEudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MTExIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYyIikpLm9rPShtY2NvbjIudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NzggZm9ybT1FTkdJTkVFUklORyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYzIikpLm9rPShtY2NvbjMudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NSBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MSByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNjQiKSkub2s9KG1jY29uNC50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAKKyAgLy8gY29tcGxldGUgdGVzdGluZyByb3VuZGluZyBtb2RlcyByb3VuZCB0cmlwcworICBtY3JtYz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKTsKKyAgbWNybWQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTik7CisgIG1jcm1mPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgbWNybWhkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTik7CisgIG1jcm1oZT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICBtY3JtaHU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCk7CisgIG1jcm11bj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgIG1jcm11PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDcxIikpLm9rPShtY3JtYy50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9DRUlMSU5HIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3MiIpKS5vaz0obWNybWQudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzMiKSkub2s9KG1jcm1mLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3NCIpKS5vaz0obWNybWhkLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzUiKSkub2s9KG1jcm1oZS50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX0VWRU4iKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc2IikpLm9rPShtY3JtaHUudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzciKSkub2s9KG1jcm11bi50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9VTk5FQ0VTU0FSWSIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzgiKSkub2s9KG1jcm11LnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX1VQIik7CisgIAorICAKKyAgLy8gW2dldCBtZXRob2RzIHRlc3RlZCBhbHJlYWR5XQorICAKKyAgLy8gZXJyb3JzLi4uCisgIAorICB0cnl7Y2hlY2tkaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzMSl7ZT0kMTMxOworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGlnaXRzIHRvbyBzbWFsbDogLTEiKTsKKyAgfS8qY2hlY2tkaWcqLworICAobmV3IFRlc3QoIm1jbjEwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdiaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgxMDAwMDAwMDAwKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTMyKXtlPSQxMzI7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEaWdpdHMgdG9vIGxhcmdlOiAxMDAwMDAwMDAwIik7CisgIH0vKmNoZWNrZGlnYmlnKi8KKyAgKG5ldyBUZXN0KCJtY24xMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2Zvcm06ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLDUpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzMpe2U9JDEzMzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCBmb3JtIHZhbHVlOiA1Iik7CisgIH0vKmNoZWNrZm9ybSovCisgIChuZXcgVGVzdCgibWNuMTExIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2Zvcm1uZWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTM0KXtlPSQxMzQ7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJCYWQgZm9ybSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tmb3JtbmVnKi8KKyAgKG5ldyBUZXN0KCJtY24xMTIiKSkub2s9ZmxhZzsKKyAgCisgIC8vIFtsb3N0RGlnaXRzIGNhbm5vdCBiZSBpbnZhbGlkXQorICAKKyAgdHJ5e2NoZWNrcm91bmQ6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsMTIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzUpe2U9JDEzNTsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCByb3VuZGluZ01vZGUgdmFsdWU6IDEyIik7CisgIH0vKmNoZWNrcm91bmQqLworICAobmV3IFRlc3QoIm1jbjEyMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tyb3VuZG5lZzpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzNil7ZT0kMTM2OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIHJvdW5kaW5nTW9kZSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tyb3VuZG5lZyovCisgIChuZXcgVGVzdCgibWNuMTIyIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJNYXRoQ29udGV4dCIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgZ2VuZXJhbCBhcml0aG1ldGljIChiYXNlIG9wZXJhdG9ycykuCisgICogPHA+VW5saWtlIHRoZSBzcGVjaWZpYyBtZXRob2QgdGVzdHMsIHRoZXNlIHRlc3RzIHdlcmUgcmFuZG9tbHkKKyAgKiBnZW5lcmF0ZWQgYnkgYW4gSUJNIE9iamVjdCBSZXh4IHByb2NlZHVyZSwgdGhlbiBtYW51YWxseSBjb3JyZWN0ZWQKKyAgKiBmb3Iga25vd24gZGlmZmVyZW5jZXMgZnJvbSBBTlNJIFgzLTI3NC4gIFRoZXNlIGRpZmZlcmVuY2VzIGFyZToKKyAgKiA8b2w+CisgICogPGxpPnRoZSB0cmlnZ2VyIHBvaW50IGluIGV4cG9uZW50aWFsIG5vdGF0aW9uIGlzIGZpeGVkIGluIEFOU0kKKyAgKiAgICAgWDMtMjc0IGJ1dCB2YXJpZXMgd2l0aCBESUdJVFMgaW4gQ2xhc3NpYyBhbmQgT2JqZWN0IFJleHgKKyAgKiA8bGk+c29tZSB0cmFpbGluZyB6ZXJvcyB3ZXJlIG1pc3NpbmcgKGUuZy4sIDEuMyArIDFFLTYwIHNob3VsZCBzaG93CisgICogICAgIHNldmVuIHRyYWlsaW5nIHplcm9zKQorICAqIDxsaT50aGUgcG93ZXIgb3BlcmF0b3IgaXMgbGVzcyBhY2N1cmF0ZSBpbiBPYmplY3QgUmV4eAorICAqIDxsaT5BTlNJIFgzLTI3NCBbZXJyYXRhIDE5OTldIHJvdW5kcyBpbnB1dCBudW1iZXJzIHRvIERJR0lUUyAocmF0aGVyCisgICogICAgIHRoYW4gdHJ1bmNhdGluZyB0byBESUdJVFMrMSkuCisgICogPC9vbD4KKyAgKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWF0aCgpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IGRlZjsKKyAgZGVmPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVDsKKyAgbWF0aHRlc3QoMSxkZWYsIi05Mzc1Mjg0LjQyIiwiNTUxNi45OTgzMkUrMjcyNzY5ODQiLCI1LjUxNjk5ODMyRSsyNzI3Njk4NyIsIi01LjUxNjk5ODMyRSsyNzI3Njk4NyIsIi01LjE3MjM0Mjg0RSsyNzI3Njk5NCIsIi0xLjY5OTM0NTE2RS0yNzI3Njk4MSIsIjAiLCItOTM3NTI4NC40MiIsIjYuNzkwNTc3NTJFKzQxIik7CisgIG1hdGh0ZXN0KDIsZGVmLCItNDEwLjgzMjcxMCIsIjk5LjM1ODgyNDNFLTUwMjc0MDg2MiIsIi00MTAuODMyNzEwIiwiLTQxMC44MzI3MTAiLCItNC4wODE5ODU1MEUtNTAyNzQwODU4IiwiLTQuMTM0ODM4NjhFKzUwMjc0MDg2MiIsIiIsIiIsIjEuMzY5Nzc3ODZFKzI2Iik7CisgIG1hdGh0ZXN0KDMsZGVmLCI4MDAyNS4yMzQwIiwiLTguMDMwOTc1ODEiLCI4MDAxNy4yMDMwIiwiODAwMzMuMjY1MCIsIi02NDI2ODAuNzE4IiwiLTk5NjQuNTcxNjciLCItOTk2NCIsIjQuNTkxMDI5MTYiLCI1Ljk0NTQ0NTE3RS00MCIpOworICBtYXRodGVzdCg0LGRlZiwiODEwNTIwMjAuMiIsIi00NjQ1MjU0OTUiLCItMzgzNDczNDc1IiwiNTQ1NTc3NTE1IiwiLTMuNzY1MDcyOThFKzE2IiwiLTAuMTc0NDgzNDciLCIwIiwiODEwNTIwMjAuMiIsIiIpOworICBtYXRodGVzdCg1LGRlZiwiNzE1LjA2OTI5NEUtMjY5MjMxNTEiLCI4NS40NDA0MTI4RSs3OTYzODg1NTciLCI4LjU0NDA0MTI4RSs3OTYzODg1NTgiLCItOC41NDQwNDEyOEUrNzk2Mzg4NTU4IiwiNi4xMDk1ODE1N0UrNzY5NDY1NDEwIiwiOC4zNjkyMTYyOEUtODIzMzExNzA4IiwiMCIsIjcuMTUwNjkyOTRFLTI2OTIzMTQ5IiwiNC44ODgwMjIxM0UtMjQyMzA4MzM0Iik7CisgIG1hdGh0ZXN0KDYsZGVmLCItMjE5NzE1NzUuMEUrMzE0NTQ0NDEiLCItNzA5NDQ5NjAuM0UrMTExMjM4MjIxIiwiLTcuMDk0NDk2MDNFKzExMTIzODIyOCIsIjcuMDk0NDk2MDNFKzExMTIzODIyOCIsIjEuNTU4NzcyNTJFKzE0MjY5MjY3NyIsIjMuMDk2OTg4ODRFLTc5NzgzNzgxIiwiMCIsIi0yLjE5NzE1NzUwRSszMTQ1NDQ0OCIsIi00LjA0NTQ5NTAyRS0yMjAxODExMzkiKTsKKyAgbWF0aHRlc3QoNyxkZWYsIjY4Mi4yNTMxNiIsIjU0NDcwMTg1LjYiLCI1NDQ3MDg2Ny45IiwiLTU0NDY5NTAzLjQiLCIzLjcxNjI0NTYzRSsxMCIsIjAuMDAwMDEyNTI1MjU4NiIsIjAiLCI2ODIuMjUzMTYiLCIzLjQ4NTc4Njk5RSsxNTQzNjU1NDEiKTsKKyAgbWF0aHRlc3QoOCxkZWYsIi0yNTc1ODY3NTcuIiwiMjA4Mjg4OC43MSIsIi0yNTU1MDM4NjgiLCItMjU5NjY5NjQ2IiwiLTUuMzY1MjQ1NDhFKzE0IiwiLTEyMy42NjgwMzYiLCItMTIzIiwiLTEzOTE0NDUuNjciLCItMS4yNjg3OTUxNUUrMTc1MTkwMjAiKTsKKyAgbWF0aHRlc3QoOSxkZWYsIjMxOTU3NzU0MC5FKzI0MjU5OTc2MSIsIjYwLjcxMjQ1NjEiLCIzLjE5NTc3NTQwRSsyNDI1OTk3NjkiLCIzLjE5NTc3NTQwRSsyNDI1OTk3NjkiLCIxLjk0MDIzMzc0RSsyNDI1OTk3NzEiLCI1LjI2Mzc4ODY5RSsyNDI1OTk3NjciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTAsZGVmLCItMTM3Njk5NzcuMCIsIjI0MzcxLjMzODEiLCItMTM3NDU2MDUuNyIsIi0xMzc5NDM0OC4zIiwiLTMuMzU1OTI3NjVFKzExIiwiLTU2NS4wMDcwMTUiLCItNTY1IiwiLTE3MC45NzM1IiwiLTguNzM3MzQwMDFFKzE3Mzk4MiIpOworICBtYXRodGVzdCgxMSxkZWYsIi00NzUuNDM0OTcyRS03MjU0NjQzMTEiLCItMy4yMjIxNDA2NkUtODY1NDc2ODM2IiwiLTQuNzU0MzQ5NzJFLTcyNTQ2NDMwOSIsIi00Ljc1NDM0OTcyRS03MjU0NjQzMDkiLCIiLCIxLjQ3NTUyNTE5RSsxNDAwMTI1MjciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTIsZGVmLCI4NDIuMDEyNTAiLCIxOTcxOTk4OTMiLCIxOTcyMDA3MzUiLCItMTk3MTk5MDUxIiwiMS42NjA0NDc3NUUrMTEiLCIwLjAwMDAwNDI2OTg0MjU4IiwiMCIsIjg0Mi4wMTI1MCIsIjcuMDA2NzQxNjRFKzU3Njg3MjUwMiIpOworICBtYXRodGVzdCgxMyxkZWYsIjU3Mi4xNzMxMDNFKzI4MDEyODQyOCIsIi03MTQwLjE5NDI4IiwiNS43MjE3MzEwM0UrMjgwMTI4NDMwIiwiNS43MjE3MzEwM0UrMjgwMTI4NDMwIiwiLTQuMDg1NDI3MTJFKzI4MDEyODQzNCIsIi04LjAxMzQxMDg1RSsyODAxMjg0MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQsZGVmLCI2NzQyMzUuOTU0RSs0NzYxMzUyOTEiLCI5Njg0LjgyMjQ1IiwiNi43NDIzNTk1NEUrNDc2MTM1Mjk2IiwiNi43NDIzNTk1NEUrNDc2MTM1Mjk2IiwiNi41Mjk4NTU1MEUrNDc2MTM1MzAwIiwiNi45NjE3NzkxOUUrNDc2MTM1MjkyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE1LGRlZiwiLTM2MDU1Ny45MjFFKzQzNzExNjUxNCIsIjkzMDQyODg1MCIsIi0zLjYwNTU3OTIxRSs0MzcxMTY1MTkiLCItMy42MDU1NzkyMUUrNDM3MTE2NTE5IiwiLTMuMzU0NzM0OTJFKzQzNzExNjUyOCIsIi0zLjg3NTE3OTkzRSs0MzcxMTY1MTAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTYsZGVmLCI5NTcxNjU5MThFLTM5NDU5NTcwNSIsIjE2NzYuNTkwNzNFLTgyOTYxODk0NCIsIjkuNTcxNjU5MThFLTM5NDU5NTY5NyIsIjkuNTcxNjU5MThFLTM5NDU5NTY5NyIsIiIsIjUuNzA5MDAxNjFFKzQzNTAyMzI0NCIsIiIsIiIsIjkuMTYxNjY1OTVFLTc4OTE5MTM5MyIpOworICBtYXRodGVzdCgxNyxkZWYsIi0yNjEwODY0LjQwIiwiMzEyNDU5MTIuNyIsIjI4NjM1MDQ4LjMiLCItMzM4NTY3NzcuMSIsIi04LjE1Nzg4NDExRSsxMyIsIi0wLjA4MzU1ODU4OTciLCIwIiwiLTI2MTA4NjQuNDAiLCItMy4xMjAwODkwNUUrMjAwNDk4Mjg0Iik7CisgIG1hdGh0ZXN0KDE4LGRlZiwiOTU5LjU0ODQ2MSIsIjk4Ljk5NDU3N0UrNzc2Nzc1NDI2IiwiOS44OTk0NTc3MEUrNzc2Nzc1NDI3IiwiLTkuODk5NDU3NzBFKzc3Njc3NTQyNyIsIjkuNDk5MDA5NDBFKzc3Njc3NTQzMCIsIjkuNjkyOTM5NjVFLTc3Njc3NTQyNiIsIjAiLCI5NTkuNTQ4NDYxIiwiNi42MTcxMjE4NUUrMjkiKTsKKyAgbWF0aHRlc3QoMTksZGVmLCItNDEwODUuMDI2OCIsIjMxMTU0NzcuNjEiLCIzMDc0MzkyLjU4IiwiLTMxNTY1NjIuNjQiLCItMS4yNzk5OTQ4MUUrMTEiLCItMC4wMTMxODczOTI3IiwiMCIsIi00MTA4NS4wMjY4IiwiNC43Mzg0NDE3M0UrMTQzNzM4MjkiKTsKKyAgbWF0aHRlc3QoMjAsZGVmLCItNzIzNDIwMjg1LiIsIjI2ODE2NjAuMzUiLCItNzIwNzM4NjI1IiwiLTcyNjEwMTk0NSIsIi0xLjkzOTk2NzQ5RSsxNSIsIi0yNjkuNzY1ODEzIiwiLTI2OSIsIi0yMDUzNjUwLjg1IiwiNC4xNDMyNDExM0UrMjM3NTc4NzMiKTsKKyAgbWF0aHRlc3QoMjEsZGVmLCI2MzU0MjAxOC4wRS04MTc3MzIyMzAiLCItODgzNjI0My4yMiIsIi04ODM2MjQzLjIyIiwiODgzNjI0My4yMiIsIi01LjYxNDcyNzI2RS04MTc3MzIyMTYiLCItNy4xOTEwNjcxMUUtODE3NzMyMjMwIiwiMCIsIjYuMzU0MjAxODBFLTgxNzczMjIyMyIsIiIpOworICBtYXRodGVzdCgyMixkZWYsIi05NjA1MS43MTA4IiwiLTI5MTIwMS45NTUiLCItMzg3MjUzLjY2NiIsIjE5NTE1MC4yNDQiLCIyLjc5NzA0NDYwRSsxMCIsIjAuMzI5ODQ1Njk0IiwiMCIsIi05NjA1MS43MTA4IiwiMy41MzYxNzE1M0UtMTQ1MDkxNiIpOworICBtYXRodGVzdCgyMyxkZWYsIjEwODQ5MC44NTMiLCI5MTY4NTk5Ni41IiwiOTE3OTQ0ODcuNCIsIi05MTU3NzUwNS43IiwiOS45NDcwOTE5N0UrMTIiLCIwLjAwMTE4MzI4NzA2IiwiMCIsIjEwODQ5MC44NTMiLCI2Ljk4MTI0MjY1RSs0NjE2NzUwMzgiKTsKKyAgbWF0aHRlc3QoMjQsZGVmLCItMjc0ODkuMTczNSIsIi05ODM1ODM1LjRFLTUwNjQxMTY0OSIsIi0yNzQ4OS4xNzM1IiwiLTI3NDg5LjE3MzUiLCIyLjcwMzc4OTg2RS01MDY0MTE2MzgiLCIyLjc5NDc5ODA0RSs1MDY0MTE2NDYiLCIiLCIiLCI0LjA1ODY2NDcyRS00NSIpOworICBtYXRodGVzdCgyNSxkZWYsIi04OTIyMDQwNi42IiwiOTkzMzkxLjAwOEUtNjExMDQxMTc1IiwiLTg5MjIwNDA2LjYiLCItODkyMjA0MDYuNiIsIi04Ljg2MzA3NDk2RS02MTEwNDExNjIiLCItOC45ODEzOTg2NUUrNjExMDQxMTc2IiwiIiwiIiwiMy4xOTYyNTkxM0UrNzkiKTsKKyAgbWF0aHRlc3QoMjYsZGVmLCI0Ljc1NTAyMDIwIiwiLTE3MDg5MTQ0LjkiLCItMTcwODkxNDAuMiIsIjE3MDg5MTQ5LjciLCItODEyNTkyMjkuMiIsIi0yLjc4MjQ3OTg5RS03IiwiMCIsIjQuNzU1MDIwMjAiLCIxLjA2MzAxOTFFLTExNTcxOTU1Iik7CisgIG1hdGh0ZXN0KDI3LGRlZiwiNjgwMjc5MTYuMiIsIi03OTY4ODMuODM5IiwiNjcyMzEwMzIuNCIsIjY4ODI0ODAwLjAiLCItNS40MjEwMzQ3MEUrMTMiLCItODUuMzY3NDE4NSIsIi04NSIsIjI5Mjc4OS44ODUiLCI4LjI5NDE1Mzc0RS02MjQxNzQ0Iik7CisgIG1hdGh0ZXN0KDI4LGRlZiwiLTguMDE5Njk0MzlFKzc4ODYwNTQ3OCIsIjkyMTU0MTU2LjAiLCItOC4wMTk2OTQzOUUrNzg4NjA1NDc4IiwiLTguMDE5Njk0MzlFKzc4ODYwNTQ3OCIsIi03LjM5MDQ4MTY4RSs3ODg2MDU0ODYiLCItOC43MDI0NzcxN0UrNzg4NjA1NDcwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI5LGRlZiwiLTgwMTIuOTgzNDEiLCI5NjE4OC44NjUxIiwiODgxNzUuODgxNyIsIi0xMDQyMDEuODQ5IiwiLTc3MDc1OTc4MCIsIi0wLjA4MzMwNDY4ODEiLCIwIiwiLTgwMTIuOTgzNDEiLCItMS4xNjAxMDE1NkUrMzc1NTAyIik7CisgIG1hdGh0ZXN0KDMwLGRlZiwiMjE3NjE0NzZFKzU5MjMzMDY3NyIsIi05LjcwNzQ0NTA2IiwiMi4xNzYxNDc2MEUrNTkyMzMwNjg0IiwiMi4xNzYxNDc2MEUrNTkyMzMwNjg0IiwiLTIuMTEyNDgzMzNFKzU5MjMzMDY4NSIsIi0yLjI0MTczMDUzRSs1OTIzMzA2ODMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzEsZGVmLCItOTg0MDc3OC41MSIsIi0xNzkwNy4yMTkiLCItOTg1ODY4NS43MyIsIi05ODIyODcxLjI5IiwiMS43NjIyMDk3NkUrMTEiLCI1NDkuNTQyNTM0IiwiNTQ5IiwiLTk3MTUuMjc5IiwiLTYuNjI5OTc0MzdFLTEyNTIyNSIpOworICBtYXRodGVzdCgzMixkZWYsIi00LjEwOTc2MTQiLCItODE5LjIyNTc3NkUtMTQ1MjE0NzUxIiwiLTQuMTA5NzYxNDAiLCItNC4xMDk3NjE0MCIsIjMuMzY2ODIyNDdFLTE0NTIxNDc0OCIsIjUuMDE2NjQwNzRFKzE0NTIxNDc0OCIsIiIsIiIsIjAuMDAwMDEyMjg3NjAxOCIpOworICBtYXRodGVzdCgzMyxkZWYsIi00NDguODgwOTg1IiwiLTM5NC4wODczNzRFLTQ0MjUxMTQzNSIsIi00NDguODgwOTg1IiwiLTQ0OC44ODA5ODUiLCIxLjc2ODk4MzI5RS00NDI1MTE0MzAiLCIxLjEzOTAzOTI1RSs0NDI1MTE0MzUiLCIiLCIiLCIyLjQ2MzA2MDk5RS0xMSIpOworICBtYXRodGVzdCgzNCxkZWYsIjc3OS40NDUzMDRFKzg4MjY4ODU0NCIsIi03OTc4Njg1MTkiLCI3Ljc5NDQ1MzA0RSs4ODI2ODg1NDYiLCI3Ljc5NDQ1MzA0RSs4ODI2ODg1NDYiLCItNi4yMTg5NDg3MEUrODgyNjg4NTU1IiwiLTkuNzY5MDk0NkUrODgyNjg4NTM3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM1LGRlZiwiNzk5OTk1NDc3IiwiLTYuMjM2NzUyMDhFKzE1NjMwOTQ0MCIsIi02LjIzNjc1MjA4RSsxNTYzMDk0NDAiLCI2LjIzNjc1MjA4RSsxNTYzMDk0NDAiLCItNC45ODkzNzM0NkUrMTU2MzA5NDQ5IiwiLTEuMjgyNzExNjlFLTE1NjMwOTQzMiIsIjAiLCI3OTk5OTU0NzciLCIzLjgxNDgyNjY3RS01NCIpOworICBtYXRodGVzdCgzNixkZWYsIi01MTkzMi44MTcwIiwiNTkxODQwMjc1RS0yNzg0ODAyODkiLCItNTE5MzIuODE3MCIsIi01MTkzMi44MTcwIiwiLTMuMDczNTkzMjdFLTI3ODQ4MDI3NiIsIi04Ljc3NDgwMjhFKzI3ODQ4MDI4NCIsIiIsIiIsIjEuOTYxNzg0NDNFKzI4Iik7CisgIG1hdGh0ZXN0KDM3LGRlZiwiNzAuMzU1MjM5MiIsIi00MjI4NjU2LjczIiwiLTQyMjg1ODYuMzgiLCI0MjI4NzI3LjA5IiwiLTI5NzUwODE1NiIsIi0wLjAwMDAxNjYzNzcyNzciLCIwIiwiNzAuMzU1MjM5MiIsIjkuMTQ3NDIzODJFLTc4MTE1ODQiKTsKKyAgbWF0aHRlc3QoMzgsZGVmLCIxNTg4MzU5LjM0IiwiLTEyMjMyNzk5LjIiLCItMTA2NDQ0MzkuOSIsIjEzODIxMTU4LjUiLCItMS45NDMwMDgwOUUrMTMiLCItMC4xMjk4NDQzMDciLCIwIiwiMTU4ODM1OS4zNCIsIjEuNTY5MTAwODZFLTc1ODU0OTYwIik7CisgIG1hdGh0ZXN0KDM5LGRlZiwiMjg0Mi4xNjIwNiIsIi0zLjIzMjM0MzQ1IiwiMjgzOC45Mjk3MiIsIjI4NDUuMzk0NDAiLCItOTE4Ni44NDM5MiIsIi04NzkuMjg4Mzg4IiwiLTg3OSIsIjAuOTMyMTY3NDUiLCI0LjM1NTY1NTE0RS0xMSIpOworICBtYXRodGVzdCg0MCxkZWYsIjI5OTYwLjIzMDUiLCI0NS4yNzM1NzQ3RS05NTIwNTQ3NSIsIjI5OTYwLjIzMDUiLCIyOTk2MC4yMzA1IiwiMS4zNTY0MDY3M0UtOTUyMDU0NjkiLCI2LjYxNzU5NzczRSs5NTIwNTQ3NyIsIiIsIiIsIjIuNDEzOTM2RSsyMiIpOworICBtYXRodGVzdCg0MSxkZWYsIjI5MTY1NjUuNzciLCIxMTUxOTM1LjQzRS03ODcxMTg3MjQiLCIyOTE2NTY1Ljc3IiwiMjkxNjU2NS43NyIsIjMuMzU5Njk1NDRFLTc4NzExODcxMiIsIjIuNTMxODgzMDNFKzc4NzExODcyNCIsIiIsIiIsIjI5MTY1NjUuNzciKTsKKyAgbWF0aHRlc3QoNDIsZGVmLCItNTI3MjMwMTIuOUUtOTY3MTQzNzg3IiwiNzkuNDA4ODIzNyIsIjc5LjQwODgyMzciLCItNzkuNDA4ODIzNyIsIi00LjE4NjY3MjQ0RS05NjcxNDM3NzgiLCItNi42Mzk0NDAxMUUtOTY3MTQzNzgyIiwiMCIsIi01LjI3MjMwMTI5RS05NjcxNDM3ODAiLCIiKTsKKyAgbWF0aHRlc3QoNDMsZGVmLCItMTY3NDczNDY1IiwiNzkzNjQ2LjU5NyIsIi0xNjY2Nzk4MTkiLCItMTY4MjY3MTEyIiwiLTEuMzI5MTQ3NDZFKzE0IiwiLTIxMS4wMTc2ODIiLCItMjExIiwiLTE0MDMzLjAzMyIsIi0xLjE5MDUzNzg5RSs2NTI2OTEwIik7CisgIG1hdGh0ZXN0KDQ0LGRlZiwiLTMxNzY5MDcxLjAiLCIxMzMuNDM2MCIsIi0zMTc2ODkzNy42IiwiLTMxNzY5MjA0LjQiLCItNC4yMzkxMzc3NkUrOSIsIi0yMzgwODQuNzA3IiwiLTIzODA4NCIsIi05NC4zNzYwIiwiLTUuODQyNTI0MzJFKzk5NyIpOworICBtYXRodGVzdCg0NSxkZWYsIjQ1OTYwLjYzODMiLCItOTMzNTIuNzQ2OCIsIi00NzM5Mi4xMDg1IiwiMTM5MzEzLjM4NSIsIi00LjI5MDU1MTgzRSs5IiwiLTAuNDkyMzMzMDA0IiwiMCIsIjQ1OTYwLjYzODMiLCIxLjg4MzM1MzIzRS00MzUyNDgiKTsKKyAgbWF0aHRlc3QoNDYsZGVmLCI2MDYuMTc1NjQ4IiwiNS4yODUyODQ1OEUtOTgxOTgzNjIwIiwiNjA2LjE3NTY0OCIsIjYwNi4xNzU2NDgiLCIzLjIwMzgxMDgxRS05ODE5ODM2MTciLCIxLjE0NjkxMjAzRSs5ODE5ODM2MjIiLCIiLCIiLCI4LjE4NDUwNTE2RSsxMyIpOworICBtYXRodGVzdCg0NyxkZWYsIjE3MTU3OC42MTdFKzY0MzAwNjExMCIsIi00MDc3NzQuMjkzIiwiMS43MTU3ODYxN0UrNjQzMDA2MTE1IiwiMS43MTU3ODYxN0UrNjQzMDA2MTE1IiwiLTYuOTk2NTM0OTJFKzY0MzAwNjEyMCIsIi00LjIwNzY4NTk3RSs2NDMwMDYxMDkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDgsZGVmLCItNjgyMjg2MzMyLiIsIi00NjQuODcxNjk5IiwiLTY4MjI4Njc5NyIsIi02ODIyODU4NjciLCIzLjE3MTc1NjA2RSsxMSIsIjE0Njc2ODcuMzkiLCIxNDY3Njg3IiwiLTE4Mi43MDk3ODciLCItMS42MDUwODQzRS00MTA4Iik7CisgIG1hdGh0ZXN0KDQ5LGRlZiwiNDkyMDg4LjQyOCIsIjY1My43MjE3MCIsIjQ5Mjc0Mi4xNTAiLCI0OTE0MzQuNzA2IiwiMzIxNjg4ODg0IiwiNzUyLjc0OTExIiwiNzUyIiwiNDg5LjcwOTYwIiwiMy45NDY1ODU5NkUrMzcyMiIpOworICBtYXRodGVzdCg1MCxkZWYsIjc0MzAzNzgyLjUiLCIxMTQxLjY4MDU4IiwiNzQzMDQ5MjQuMiIsIjc0MzAyNjQwLjgiLCI4LjQ4MzExODU1RSsxMCIsIjY1MDgyLjgxMiIsIjY1MDgyIiwiOTI2Ljk5MjQ0IiwiNC45NDg0OTg2OUUrODk4OCIpOworICBtYXRodGVzdCg1MSxkZWYsIjc0Ljc3OTQwODRFKzExOTM3NTMyOSIsIi0zNDc5OTM1NS42IiwiNy40Nzc5NDA4NEUrMTE5Mzc1MzMwIiwiNy40Nzc5NDA4NEUrMTE5Mzc1MzMwIiwiLTIuNjAyMjc1MjJFKzExOTM3NTMzOCIsIi0yLjE0ODg3MzM3RSsxMTkzNzUzMjMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNTIsZGVmLCItOTQzMi4wODM2OSIsIjMzNzM1LjUwNTgiLCIyNDMwMy40MjIxIiwiLTQzMTY3LjU4OTUiLCItMzE4MTk2MTE0IiwiLTAuMjc5NTg5MjE4IiwiMCIsIi05NDMyLjA4MzY5IiwiMi4zMDk1NjdFKzEzNDA4NyIpOworICBtYXRodGVzdCg1MyxkZWYsIjQyNDkxOTguNzhFLTExMjQzMzE1NSIsIjQxODY3MzA1MS4iLCI0MTg2NzMwNTEiLCItNDE4NjczMDUxIiwiMS43NzkwMjUwMkUtMTEyNDMzMTQwIiwiMS4wMTQ5MjA1NEUtMTEyNDMzMTU3IiwiMCIsIjQuMjQ5MTk4NzhFLTExMjQzMzE0OSIsIiIpOworICBtYXRodGVzdCg1NCxkZWYsIi0yOTYwOTMzLjAyIiwiLTIwNzkzMy4zOCIsIi0zMTY4ODY2LjQwIiwiLTI3NTI5OTkuNjQiLCI2LjE1Njc2ODExRSsxMSIsIjE0LjIzOTgxNTgiLCIxNCIsIi00OTg2NS43MCIsIi0yLjc1NjgwMzk3RS0xMzQ1NjI0Iik7CisgIG1hdGh0ZXN0KDU1LGRlZiwiMjkzMTcuNzUxOUUrOTQ1NjAwMDM1IiwiMS40MzU1NTc1MCIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIsIjQuMjA4NzMxODZFKzk0NTYwMDAzOSIsIjIuMDQyMjU1NDlFKzk0NTYwMDAzOSIsIiIsIiIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIpOworICBtYXRodGVzdCg1NixkZWYsIi01MS4xNjkzNzcwIiwiLTYzODA1NS40MTQiLCItNjM4MTA2LjU4MyIsIjYzODAwNC4yNDUiLCIzMjY0ODg5OC4wIiwiMC4wMDAwODAxOTU4MTk4IiwiMCIsIi01MS4xNjkzNzcwIiwiLTMuNDgyNjYwNzVFLTEwOTA0NDMiKTsKKyAgbWF0aHRlc3QoNTcsZGVmLCItNzU2MzQzMDU1LiIsIi02OC45MjQ4MzQ0RSsyMTcxMDA5NzUiLCItNi44OTI0ODM0NEUrMjE3MTAwOTc2IiwiNi44OTI0ODM0NEUrMjE3MTAwOTc2IiwiNS4yMTMwODE5OEUrMjE3MTAwOTg1IiwiMS4wOTczNDQ3NUUtMjE3MTAwOTY4IiwiMCIsIi03NTYzNDMwNTUiLCItNy4wNjI2NTg5N0UtNjMiKTsKKyAgbWF0aHRlc3QoNTgsZGVmLCIyNTM4LjgwNDA2RSs2OTQxODUxOTciLCItMzM4NjQ5OS42NSIsIjIuNTM4ODA0MDZFKzY5NDE4NTIwMCIsIjIuNTM4ODA0MDZFKzY5NDE4NTIwMCIsIi04LjU5NzY1OTA2RSs2OTQxODUyMDYiLCItNy40OTY4MzgzOUUrNjk0MTg1MTkzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDU5LGRlZiwiLTU0MzQ0LjA2NzIiLCItODA4Ni40NTIzNSIsIi02MjQzMC41MTk2IiwiLTQ2MjU3LjYxNDkiLCI0Mzk0NTA3MTAiLCI2LjcyMDM4NDI3IiwiNiIsIi01ODI1LjM1MzEwIiwiMy42MjkxNjg2MUUtMzgyODkiKTsKKyAgbWF0aHRlc3QoNjAsZGVmLCIzLjMxNjAwMDU0IiwiMjE3NDgxNjQ4IiwiMjE3NDgxNjUxIiwiLTIxNzQ4MTY0NSIsIjcyMTE2OTI2MiIsIjEuNTI0NzI2NkUtOCIsIjAiLCIzLjMxNjAwMDU0IiwiMy43MzEzNDk2OUUrMTEzMjI0MTE5Iik7CisgIG1hdGh0ZXN0KDYxLGRlZiwiNjgxODMyLjY3MSIsIjMyMDM0MS4xNjFFKzYyOTQ2NzU2MCIsIjMuMjAzNDExNjFFKzYyOTQ2NzU2NSIsIi0zLjIwMzQxMTYxRSs2Mjk0Njc1NjUiLCIyLjE4NDE5MDY5RSs2Mjk0Njc1NzEiLCIyLjEyODQ1Nzg5RS02Mjk0Njc1NjAiLCIwIiwiNjgxODMyLjY3MSIsIjMuMTY5ODExMzlFKzE3Iik7CisgIG1hdGh0ZXN0KDYyLGRlZiwiODMyNjg5NDgxIiwiMzQ4MDQwMDI0RS04ODIxMjI1MDEiLCI4MzI2ODk0ODEiLCI4MzI2ODk0ODEiLCIyLjg5ODA5MjY3RS04ODIxMjI0ODQiLCIyLjM5MjUxMDdFKzg4MjEyMjUwMSIsIiIsIiIsIjUuNzczNjMzODFFKzI2Iik7CisgIG1hdGh0ZXN0KDYzLGRlZiwiMTQuNTUxMjMyNkUrMjU3NTAwODExIiwiNjAuOTk3OTU3N0UtNjQ3MzE0NzI0IiwiMS40NTUxMjMyNkUrMjU3NTAwODEyIiwiMS40NTUxMjMyNkUrMjU3NTAwODEyIiwiOC44NzU5NTQ3MUUtMzg5ODEzOTExIiwiMi4zODU1Mjc4NEUrOTA0ODE1NTM0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDY0LGRlZiwiLTkwMS4yNzg4NDQiLCI0NDk0NjE2NjcuIiwiNDQ5NDYwNzY2IiwiLTQ0OTQ2MjU2OCIsIi00LjA1MDkwMjkyRSsxMSIsIi0wLjAwMDAwMjAwNTI0MDc0IiwiMCIsIi05MDEuMjc4ODQ0IiwiIik7CisgIG1hdGh0ZXN0KDY1LGRlZiwiLTUuMzI2Mjc2NzUiLCItNzM4ODYwMjE2RS0yMzgyNzMyMjQiLCItNS4zMjYyNzY3NSIsIi01LjMyNjI3Njc1IiwiMy45MzUzNzM5OUUtMjM4MjczMjE1IiwiNy4yMDg3NzQ1OUUrMjM4MjczMjE1IiwiIiwiIiwiLTAuMDAwMDA4MjIzMDY4MzgiKTsKKyAgbWF0aHRlc3QoNjYsZGVmLCItNTA1MzgzNDYzLiIsIjMuMTg3NTYzMjgiLCItNTA1MzgzNDYwIiwiLTUwNTM4MzQ2NiIsIi0xLjYxMDk0MTc3RSs5IiwiLTE1ODU0ODUyNyIsIi0xNTg1NDg1MjciLCItMC4yMzY3MTE0NCIsIi0xLjI5MDgxMjI2RSsyNiIpOworICBtYXRodGVzdCg2NyxkZWYsIjc2OTI0MS40NEUtNzIwOTI3MzIwIiwiLTE0NTM4MjYzMS4iLCItMTQ1MzgyNjMxIiwiMTQ1MzgyNjMxIiwiLTEuMTE4MzQzNDRFLTcyMDkyNzMwNiIsIi01LjI5MTE1MDkxRS03MjA5MjczMjMiLCIwIiwiNy42OTI0MTQ0RS03MjA5MjczMTUiLCIiKTsKKyAgbWF0aHRlc3QoNjgsZGVmLCItNi40NTAzODkxMCIsIjU2NzM2LjQ0MTFFKzQ0MDkzNzE2NyIsIjUuNjczNjQ0MTFFKzQ0MDkzNzE3MSIsIi01LjY3MzY0NDExRSs0NDA5MzcxNzEiLCItMy42NTk3MjEyMUUrNDQwOTM3MTcyIiwiLTEuMTM2OTA0MDdFLTQ0MDkzNzE3MSIsIjAiLCItNi40NTAzODkxMCIsIjcyMDMwLjM0MjEiKTsKKyAgbWF0aHRlc3QoNjksZGVmLCI1OC40NzIxMDc1IiwiLTcxMjE4NjgyOSIsIi03MTIxODY3NzEiLCI3MTIxODY4ODciLCItNC4xNjQzMDY0OEUrMTAiLCItOC4yMTAyMjAyOEUtOCIsIjAiLCI1OC40NzIxMDc1IiwiIik7CisgIG1hdGh0ZXN0KDcwLGRlZiwiODI0NC4wODM1NyIsIjI0NS4zMDI4MjhFKzY1MjAwNzk1OSIsIjIuNDUzMDI4MjhFKzY1MjAwNzk2MSIsIi0yLjQ1MzAyODI4RSs2NTIwMDc5NjEiLCIyLjAyMjI5NzAxRSs2NTIwMDc5NjUiLCIzLjM2MDc3ODA0RS02NTIwMDc5NTgiLCIwIiwiODI0NC4wODM1NyIsIjY3OTY0OTEzLjkiKTsKKyAgbWF0aHRlc3QoNzEsZGVmLCI0NS41MzYxMzk3IiwiLTc2NTc5MDYzLjkiLCItNzY1NzkwMTguNCIsIjc2NTc5MTA5LjQiLCItMy40ODcxMTQ5NUUrOSIsIi01Ljk0NjI5MDk4RS03IiwiMCIsIjQ1LjUzNjEzOTciLCIzLjk4MzM1Mzc0RS0xMjY5OTUzNjciKTsKKyAgbWF0aHRlc3QoNzIsZGVmLCI1OTQ0MjAuNTRFKzY4NTI2MzAzOSIsIi05NTI0MjAuMTc5IiwiNS45NDQyMDU0MEUrNjg1MjYzMDQ0IiwiNS45NDQyMDU0MEUrNjg1MjYzMDQ0IiwiLTUuNjYxMzgxMTdFKzY4NTI2MzA1MCIsIi02LjI0MTE1ODYxRSs2ODUyNjMwMzgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNzMsZGVmLCItODQxMzEwNzAxLiIsIjkzOTgxMTAuNCIsIi04MzE5MTI1OTEiLCItODUwNzA4ODExIiwiLTcuOTA2NzMwODVFKzE1IiwiLTg5LjUxOTEzMzciLCItODkiLCItNDg3ODg3NS40IiwiMS4zMDAwMTQ2NkUrODM4Nzc3MjIiKTsKKyAgbWF0aHRlc3QoNzQsZGVmLCI5MDQzOTIxNDZFLTE0MDEwMDI3NiIsIjE2ODExNjA5My4iLCIxNjgxMTYwOTMiLCItMTY4MTE2MDkzIiwiMS41MjA0Mjg3NEUtMTQwMTAwMjU5IiwiNS4zNzk1NjkxNEUtMTQwMTAwMjc2IiwiMCIsIjkuMDQzOTIxNDZFLTE0MDEwMDI2OCIsIiIpOworICBtYXRodGVzdCg3NSxkZWYsIi05MDczMjQ3OTJFKzY4NTUzOTY3MCIsIi0xNS42OTAyMTcxIiwiLTkuMDczMjQ3OTJFKzY4NTUzOTY3OCIsIi05LjA3MzI0NzkyRSs2ODU1Mzk2NzgiLCIxLjQyMzYxMjMwRSs2ODU1Mzk2ODAiLCI1Ljc4Mjc0MjExRSs2ODU1Mzk2NzciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNzYsZGVmLCI5ODcwMTM2MDYuIiwiLTI2ODE4LjM1NzJFKzU2MDkwNzQ0MiIsIi0yLjY4MTgzNTcyRSs1NjA5MDc0NDYiLCIyLjY4MTgzNTcyRSs1NjA5MDc0NDYiLCItMi42NDcwMDgzNEUrNTYwOTA3NDU1IiwiLTMuNjgwMzY1NjVFLTU2MDkwNzQzOCIsIjAiLCI5ODcwMTM2MDYiLCIxLjAzOTk5MzRFLTI3Iik7CisgIG1hdGh0ZXN0KDc3LGRlZiwiLTc0MTMxNzU2NCIsIjYzMC4yNDE1MzBFLTIxMjc4Mjk0NiIsIi03NDEzMTc1NjQiLCItNzQxMzE3NTY0IiwiLTQuNjcyMDkxMTZFLTIxMjc4MjkzNSIsIi0xLjE3NjI0MzZFKzIxMjc4Mjk1MiIsIiIsIiIsIjEuNjU5Njg1MjdFKzUzIik7CisgIG1hdGh0ZXN0KDc4LGRlZiwiNjE4Njc5MDcuMiIsIi0xMzkyMDQ2NzAiLCItNzczMzY3NjMiLCIyMDEwNzI1NzciLCItOC42MTIzMDE2MUUrMTUiLCItMC40NDQ0Mzg0NDYiLCIwIiwiNjE4Njc5MDcuMiIsIiIpOworICBtYXRodGVzdCg3OSxkZWYsIi0yNzMuNjIyNzQzRSs1MzEyODI3MTciLCItNDU0My42ODY4NCIsIi0yLjczNjIyNzQzRSs1MzEyODI3MTkiLCItMi43MzYyMjc0M0UrNTMxMjgyNzE5IiwiMS4yNDMyNTYwNkUrNTMxMjgyNzIzIiwiNi4wMjIwNDIyOUUrNTMxMjgyNzE1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDgwLGRlZiwiLTM4MzU4ODk0OS4iLCItNDI4NjQwNTgzLiIsIi04MTIyMjk1MzIiLCI0NTA1MTYzNCIsIjEuNjQ0MjE3OTFFKzE3IiwiMC44OTQ4OTY0OCIsIjAiLCItMzgzNTg4OTQ5IiwiIik7CisgIG1hdGh0ZXN0KDgxLGRlZiwiLTU2MTgyLjI2ODYiLCIzMi43NzQxNjQ5IiwiLTU2MTQ5LjQ5NDQiLCItNTYyMTUuMDQyOCIsIi0xODQxMzI2Ljk0IiwiLTE3MTQuMjI0MjYiLCItMTcxNCIsIi03LjM0OTk2MTQiLCItNS40NTQ3NjQwMkUrMTU2Iik7CisgIG1hdGh0ZXN0KDgyLGRlZiwiLTYzNjYzODQuMzAiLCIzMzIwMTQuOTgwIiwiLTYwMzQzNjkuMzIiLCItNjY5ODM5OS4yOCIsIi0yLjExMzczNDk2RSsxMiIsIi0xOS4xNzQ5OTExIiwiLTE5IiwiLTU4MDk5LjY4MCIsIi0zLjA1MzkyMzk5RSsyMjU4OTk0Iik7CisgIG1hdGh0ZXN0KDgzLGRlZiwiLTEuMjc4OTc3MDIiLCItODIxMzc3Ni4wM0UtNjg2NTE5MTIzIiwiLTEuMjc4OTc3MDIiLCItMS4yNzg5NzcwMiIsIjEuMDUwNTIzMDhFLTY4NjUxOTExNiIsIjEuNTU3MTEyMTJFKzY4NjUxOTExNiIsIiIsIiIsIjAuMTM5NjY4MzcxIik7CisgIG1hdGh0ZXN0KDg0LGRlZiwiNjUuNDA1OTAzNiIsIjQwMTE2MjE0NUUrODg0MTU1NTA2IiwiNC4wMTE2MjE0NUUrODg0MTU1NTE0IiwiLTQuMDExNjIxNDVFKzg4NDE1NTUxNCIsIjIuNjIzODM3MjZFKzg4NDE1NTUxNiIsIjEuNjMwNDEwNjZFLTg4NDE1NTUxMyIsIjAiLCI2NS40MDU5MDM2IiwiMTgzMDA3MDQuMSIpOworICBtYXRodGVzdCg4NSxkZWYsIi0yMDYzMDkxNi44IiwiMTU4OTg3NDExLkUtNDgwNTAwNjEyIiwiLTIwNjMwOTE2LjgiLCItMjA2MzA5MTYuOCIsIi0zLjI4MDA1NjA1RS00ODA1MDA1OTciLCItMS4yOTc2NDQ2OEUrNDgwNTAwNjExIiwiIiwiIiwiNC4yNTYzNDcyOEUrMTQiKTsKKyAgbWF0aHRlc3QoODYsZGVmLCItNC43MjcwNTg1MyIsIi05NzYyNjc0Mi40IiwiLTk3NjI2NzQ3LjEiLCI5NzYyNjczNy43IiwiNDYxNDg3MzI1IiwiNC44NDE5NzA5N0UtOCIsIjAiLCItNC43MjcwNTg1MyIsIjIuOTI2NTQ0NDlFLTY1ODU4MTIwIik7CisgIG1hdGh0ZXN0KDg3LGRlZiwiOC40MzUyODE2OSIsIi00NTczLjQ1NzUyIiwiLTQ1NjUuMDIyMjQiLCI0NTgxLjg5MjgwIiwiLTM4NTc4LjQwMjUiLCItMC4wMDE4NDQzOTkyNyIsIjAiLCI4LjQzNTI4MTY5IiwiOC44NDI0ODY4OEUtNDIzNiIpOworICBtYXRodGVzdCg4OCxkZWYsIjEuOTEwNzUxODkiLCItNzA0MjQ3MDg5LiIsIi03MDQyNDcwODciLCI3MDQyNDcwOTEiLCItMS4zNDU2NDE0NkUrOSIsIi0yLjcxMzE4Mzk0RS05IiwiMCIsIjEuOTEwNzUxODkiLCI2Ljg0NTQ3NDk0RS0xOTgwMzczMDkiKTsKKyAgbWF0aHRlc3QoODksZGVmLCIzMTk5NzE5OEUtNTUxNzQ2MzA4IiwiMzI2Ljg5MjU4NCIsIjMyNi44OTI1ODQiLCItMzI2Ljg5MjU4NCIsIjEuMDQ1OTY0NjdFLTU1MTc0NjI5OCIsIjkuNzg4MjkxMTlFLTU1MTc0NjMwNCIsIjAiLCIzLjE5OTcxOThFLTU1MTc0NjMwMSIsIiIpOworICBtYXRodGVzdCg5MCxkZWYsIjEyNzU4OS4yMTMiLCI4NDE4NDMwNC4iLCI4NDMxMTg5My4yIiwiLTg0MDU2NzE0LjgiLCIxLjA3NDEwMDkxRSsxMyIsIjAuMDAxNTE1NTkzODUiLCIwIiwiMTI3NTg5LjIxMyIsIjIuODc5MTcwNDJFKzQyOTgyOTM5NCIpOworICBtYXRodGVzdCg5MSxkZWYsIjcxNDQ5NDI0OCIsIi03MDI1MDYzLjU5IiwiNzA3NDY5MTg1IiwiNzIxNTE5MzEyIiwiLTUuMDE5MzY3NTNFKzE1IiwiLTEwMS43MDY0NDYiLCItMTAxIiwiNDk2MjgyNS40MSIsIjEuNjUwMTg1MTZFLTYyMTk5OTA4Iik7CisgIG1hdGh0ZXN0KDkyLGRlZiwiLTUyOTg3NjgwLjJFKzI3OTUzMzUwMyIsIi00MjAxNDExNC44IiwiLTUuMjk4NzY4MDJFKzI3OTUzMzUxMCIsIi01LjI5ODc2ODAyRSsyNzk1MzM1MTAiLCIyLjIyNjIzMDQ4RSsyNzk1MzM1MTgiLCIxLjI2MTE4NzU5RSsyNzk1MzM1MDMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoOTMsZGVmLCItODc5NS4wNTEzIiwiLTIyNTI5NC4zOTRFLTg4NDQxNDIzOCIsIi04Nzk1LjA1MTMwIiwiLTg3OTUuMDUxMzAiLCIxLjk4MTQ3NTc1RS04ODQ0MTQyMjkiLCIzLjkwMzgwMzg4RSs4ODQ0MTQyMzYiLCIiLCIiLCIxLjI5Mjc3NTlFLTgiKTsKKyAgbWF0aHRlc3QoOTQsZGVmLCI4MzI4MC4xMzk0IiwiMTYxNTY2MzU0LiIsIjE2MTY0OTYzNCIsIi0xNjE0ODMwNzQiLCIxLjM0NTUyNjg1RSsxMyIsIjAuMDAwNTE1NDU0NzE4IiwiMCIsIjgzMjgwLjEzOTQiLCI1LjMwNzc0ODA5RSs3OTQ5OTM5NDAiKTsKKyAgbWF0aHRlc3QoOTUsZGVmLCIxMTIuODc3ODk3IiwiLTkuOTY0ODE2NjYiLCIxMDIuOTEzMDgwIiwiMTIyLjg0MjcxNCIsIi0xMTI0LjgwNzU1IiwiLTExLjMyNzY0NDEiLCItMTEiLCIzLjI2NDkxMzc0IiwiMi45Nzc5MDU0NUUtMjEiKTsKKyAgbWF0aHRlc3QoOTYsZGVmLCItNTcyNTQyLjEyMUUrODQ3NDg3Mzk3IiwiNDMzLjg0MzQyMCIsIi01LjcyNTQyMTIxRSs4NDc0ODc0MDIiLCItNS43MjU0MjEyMUUrODQ3NDg3NDAyIiwiLTIuNDgzOTM2MzJFKzg0NzQ4NzQwNSIsIi0xLjMxOTY5NzZFKzg0NzQ4NzQwMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg5NyxkZWYsIjQ3MDk2NDkuODkiLCIyMDk0OTI2Ni40IiwiMjU2NTg5MTYuMyIsIi0xNjIzOTYxNi41IiwiOS44NjYzNzEwMkUrMTMiLCIwLjIyNDgxMjE2MyIsIjAiLCI0NzA5NjQ5Ljg5IiwiNC44NTI5MzY0NEUrMTM5Nzk0MjEzIik7CisgIG1hdGh0ZXN0KDk4LGRlZiwiLTk0NzUuMTkzMjIiLCItMzA4ODUuMjQ3NUUrNTg0NDg3MzQxIiwiLTMuMDg4NTI0NzVFKzU4NDQ4NzM0NSIsIjMuMDg4NTI0NzVFKzU4NDQ4NzM0NSIsIjIuOTI2NDM2ODhFKzU4NDQ4NzM0OSIsIjMuMDY3ODcwMjZFLTU4NDQ4NzM0MiIsIjAiLCItOTQ3NS4xOTMyMiIsIi0xLjE3NTUzNTU3RS0xMiIpOworICBtYXRodGVzdCg5OSxkZWYsIi0yMTMyMzA0NDcuIiwiODY0LjgxNTgyMkUrMTI3NzgzMDQ2IiwiOC42NDgxNTgyMkUrMTI3NzgzMDQ4IiwiLTguNjQ4MTU4MjJFKzEyNzc4MzA0OCIsIi0xLjg0NDA1MDY0RSsxMjc3ODMwNTciLCItMi40NjU2MTY4NkUtMTI3NzgzMDQxIiwiMCIsIi0yMTMyMzA0NDciLCItOS4xMTI2MTM2MUUrNzQiKTsKKyAgbWF0aHRlc3QoMTAwLGRlZiwiLTg5LjExNjg3ODZFKzQwMzM3NTg3MyIsIjY0NjQuMDU3NDQiLCItOC45MTE2ODc4NkUrNDAzMzc1ODc0IiwiLTguOTExNjg3ODZFKzQwMzM3NTg3NCIsIi01Ljc2MDU2NjIyRSs0MDMzNzU4NzgiLCItMS4zNzg2NTIzM0UrNDAzMzc1ODcxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDEwMSxkZWYsIjYxNzc0LjQ5NTgiLCItMTQwMDAuNzcwNiIsIjQ3NzczLjcyNTIiLCI3NTc3NS4yNjY0IiwiLTg2NDg5MDU0NSIsIi00LjQxMjIyMTEyIiwiLTQiLCI1NzcxLjQxMzQiLCI3LjU5MDMwNDA3RS02NzA3NyIpOworICBtYXRodGVzdCgxMDIsZGVmLCIxLjYwNzMxNDE0IiwiNy4wNDMzMDI5M0UtNDI3MDMzNDE5IiwiMS42MDczMTQxNCIsIjEuNjA3MzE0MTQiLCIxLjEzMjA4MDA0RS00MjcwMzM0MTgiLCIyLjI4MjA0NjAyRSs0MjcwMzM0MTgiLCIiLCIiLCIyNy43MTQzOTIxIik7CisgIG1hdGh0ZXN0KDEwMyxkZWYsIjc5NTUwMTIuNTEiLCItMjMwMTE3NjYyLiIsIi0yMjIxNjI2NTAiLCIyMzgwNzI2NzUiLCItMS44MzA1ODg4OEUrMTUiLCItMC4wMzQ1NjkzMjYxIiwiMCIsIjc5NTUwMTIuNTEiLCIiKTsKKyAgbWF0aHRlc3QoMTA0LGRlZiwiNDA4NjY2MS4wOCIsIjEuNzc2MjE5OTQiLCI0MDg2NjYyLjg2IiwiNDA4NjY1OS4zMCIsIjcyNTg4MDguOTAiLCIyMzAwNzYyLjk4IiwiMjMwMDc2MiIsIjEuNzM4NDA1NzIiLCIxLjY3MDA3OTg4RSsxMyIpOworICBtYXRodGVzdCgxMDUsZGVmLCItNjEwLjA3NjkzMSIsIi0yMDcuNjU4MzA2IiwiLTgxNy43MzUyMzciLCItNDAyLjQxODYyNSIsIjEyNjY4Ny41NDIiLCIyLjkzNzg4ODQxIiwiMiIsIi0xOTQuNzYwMzE5IiwiNC4zNjUxODM3N0UtNTgwIik7CisgIG1hdGh0ZXN0KDEwNixkZWYsIi05OC42MzUzNjk3IiwiLTk5MjUzLjM4OTlFLTcxNjMwOTY1MyIsIi05OC42MzUzNjk3IiwiLTk4LjYzNTM2OTciLCI5Ljc4OTg5NDgxRS03MTYzMDk2NDciLCI5LjkzNzczMzA5RSs3MTYzMDk2NDkiLCIiLCIiLCIxLjE0NzI5MDA3RS0yMCIpOworICBtYXRodGVzdCgxMDcsZGVmLCItOTU5OTIzNzMwIiwiNDA5LjEyNTU0MkUtOTAwMjk1NTI4IiwiLTk1OTkyMzczMCIsIi05NTk5MjM3MzAiLCItMy45MjcyOTMxNkUtOTAwMjk1NTE3IiwiLTIuMzQ2MjgxNkUrOTAwMjk1NTM0IiwiIiwiIiwiOC40OTA3NjY3N0UrMzUiKTsKKyAgbWF0aHRlc3QoMTA4LGRlZiwiMzc5OTY1MTMzIiwiLTguMTU4Njk2NTciLCIzNzk5NjUxMjUiLCIzNzk5NjUxNDEiLCItMy4xMDAwMjAyM0UrOSIsIi00NjU3MTc5My42IiwiLTQ2NTcxNzkzIiwiNS4xOTIxNDk5OSIsIjIuMzAxNzA2OTdFLTY5Iik7CisgIG1hdGh0ZXN0KDEwOSxkZWYsIjgzMy42NDY3OTciLCIxMzg5NDk5LjQ2RS00NDM0MDcyNTEiLCI4MzMuNjQ2Nzk3IiwiODMzLjY0Njc5NyIsIjEuMTU4MzUxNzdFLTQ0MzQwNzI0MiIsIjUuOTk5NjE5NDRFKzQ0MzQwNzI0NyIsIiIsIiIsIjgzMy42NDY3OTciKTsKKyAgbWF0aHRlc3QoMTEwLGRlZiwiMjMxNDkzMy40RS02NDY0ODkxOTQiLCItNzQwMTUzOC4xNyIsIi03NDAxNTM4LjE3IiwiNzQwMTUzOC4xNyIsIi0xLjcxMzQwNjc5RS02NDY0ODkxODEiLCItMy4xMjc2MzgyNkUtNjQ2NDg5MTk1IiwiMCIsIjIuMzE0OTMzNEUtNjQ2NDg5MTg4IiwiIik7CisgIG1hdGh0ZXN0KDExMSxkZWYsIjgwODUyNTM0NyIsIi01OTU5Ljc0NjY3RSs1ODIzMjE2OCIsIi01Ljk1OTc0NjY3RSs1ODIzMjE3MSIsIjUuOTU5NzQ2NjdFKzU4MjMyMTcxIiwiLTQuODE4NjA2MjRFKzU4MjMyMTgwIiwiLTEuMzU2NjQzODJFLTU4MjMyMTYzIiwiMCIsIjgwODUyNTM0NyIsIjMuNTc5NjMwMkUtNTQiKTsKKyAgbWF0aHRlc3QoMTEyLGRlZiwiLTE3MjIwNDkwLjZFKzcyNjQyODcwNCIsIjE5Ljk4NTU2ODgiLCItMS43MjIwNDkwNkUrNzI2NDI4NzExIiwiLTEuNzIyMDQ5MDZFKzcyNjQyODcxMSIsIi0zLjQ0MTYxMzAwRSs3MjY0Mjg3MTIiLCItOC42MTY0NjI1OUUrNzI2NDI4NzA5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDExMyxkZWYsIjU5MDE1Ljk3MDUiLCItNzIwNzA0MDUuNEUrMzIyOTU3Mjc5IiwiLTcuMjA3MDQwNTRFKzMyMjk1NzI4NiIsIjcuMjA3MDQwNTRFKzMyMjk1NzI4NiIsIi00LjI1MzMwNDkyRSszMjI5NTcyOTEiLCItOC4xODg2NTUyN0UtMzIyOTU3MjgzIiwiMCIsIjU5MDE1Ljk3MDUiLCI0LjAxMDYzNDg4RS0zNCIpOworICBtYXRodGVzdCgxMTQsZGVmLCIxNjQxMTQ3MEUrNTc4MTkyMDA4IiwiNDk3NDcwLjAwNUUtMzc3NDczNjIxIiwiMS42NDExNDcwMEUrNTc4MTkyMDE1IiwiMS42NDExNDcwMEUrNTc4MTkyMDE1IiwiOC4xNjQyMTQwNkUrMjAwNzE4Mzk5IiwiMy4yOTg5ODY4NEUrOTU1NjY1NjMwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDExNSxkZWYsIi0xMDcuMzUzNTQ0RSs2MDk2ODk4MDgiLCItNjU5LjUwMTM2RS00NTY3MTE3NDMiLCItMS4wNzM1MzU0NEUrNjA5Njg5ODEwIiwiLTEuMDczNTM1NDRFKzYwOTY4OTgxMCIsIjcuMDc5OTgwODNFKzE1Mjk3ODA2OSIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMTYsZGVmLCI3ODYuMTM0MTYzIiwiLTUzLjAyOTIyNzVFLTY2NDQxOTc2OCIsIjc4Ni4xMzQxNjMiLCI3ODYuMTM0MTYzIiwiLTQuMTY4ODA4NzRFLTY2NDQxOTc2NCIsIi0xLjQ4MjQ1NDQ5RSs2NjQ0MTk3NjkiLCIiLCIiLCIzLjMzMDU1NTMyRS0xNSIpOworICBtYXRodGVzdCgxMTcsZGVmLCIyMy41NDE0NzE0IiwiNTAwMDc4Ni45MSIsIjUwMDA4MTAuNDUiLCItNTAwMDc2My4zNyIsIjExNzcyNTg4MiIsIjAuMDAwMDA0NzA3NTUzNCIsIjAiLCIyMy41NDE0NzE0IiwiNC40ODk1NjE4RSs2ODYwMjQ3Iik7CisgIG1hdGh0ZXN0KDExOCxkZWYsIi02OTc3NS42MTEzIiwiNTYxMjkyMTIwLiIsIjU2MTIyMjM0NCIsIi01NjEzNjE4OTYiLCItMy45MTY0NTAwOEUrMTMiLCItMC4wMDAxMjQzMTI0NzMiLCIwIiwiLTY5Nzc1LjYxMTMiLCIiKTsKKyAgbWF0aHRlc3QoMTE5LGRlZiwiOTE5MDQzLjg3MSIsIi03MTYwNjYxMy43IiwiLTcwNjg3NTY5LjgiLCI3MjUyNTY1Ny42IiwiLTYuNTgwOTYxOTRFKzEzIiwiLTAuMDEyODM0NjIyNyIsIjAiLCI5MTkwNDMuODcxIiwiMy4wNTg2MjQyOUUtNDI3MDE0MzE3Iik7CisgIG1hdGh0ZXN0KDEyMCxkZWYsIi0yNzY2Ny4xOTE1IiwiLTI5MzQ1NS4xMDdFLTc4OTE4MTkyNCIsIi0yNzY2Ny4xOTE1IiwiLTI3NjY3LjE5MTUiLCI4LjExOTA3ODY0RS03ODkxODE5MTUiLCI5LjQyODA4MzE1RSs3ODkxODE5MjIiLCIiLCIiLCItNC43MjE3NjkzOEUtMTQiKTsKKyAgbWF0aHRlc3QoMTIxLGRlZiwiLTkwODYwMzYyNS4iLCItOTgyLjQwOTI3M0UrNDQ5NDQxMTM0IiwiLTkuODI0MDkyNzNFKzQ0OTQ0MTEzNiIsIjkuODI0MDkyNzNFKzQ0OTQ0MTEzNiIsIjguOTI2MjA2MjdFKzQ0OTQ0MTE0NSIsIjkuMjQ4NzI4MUUtNDQ5NDQxMTI5IiwiMCIsIi05MDg2MDM2MjUiLCIyLjYwNzY4NjMyRS05MCIpOworICBtYXRodGVzdCgxMjIsZGVmLCI4NDcuMTEzMzUxIiwiNS43MTUxMTI2OCIsIjg1Mi44Mjg0NjQiLCI4NDEuMzk4MjM4IiwiNDg0MS4zNDgyNSIsIjE0OC4yMjMzODYiLCIxNDgiLCIxLjI3NjY3NDM2IiwiMy42OTUyOTUzOEUrMTciKTsKKyAgbWF0aHRlc3QoMTIzLGRlZiwiLTk5MjE0MDQ3NSIsIjMuODI5MTgyMTgiLCItOTkyMTQwNDcxIiwiLTk5MjE0MDQ3OSIsIi0zLjc5OTA4NjYzRSs5IiwiLTI1OTA5OTgzNiIsIi0yNTkwOTk4MzYiLCItMC4xNDc4Nzc1MiIsIjkuNjg5MzA1OTVFKzM1Iik7CisgIG1hdGh0ZXN0KDEyNCxkZWYsIi0xMjYwNjQzNy41IiwiMjY4MTIzMTQ1RSszNjI3OTg4NTgiLCIyLjY4MTIzMTQ1RSszNjI3OTg4NjYiLCItMi42ODEyMzE0NUUrMzYyNzk4ODY2IiwiLTMuMzgwMDc3NjdFKzM2Mjc5ODg3MyIsIi00LjcwMTczNDE2RS0zNjI3OTg4NjAiLCIwIiwiLTEyNjA2NDM3LjUiLCItMi4wMDM0NDM2MkUrMjEiKTsKKyAgbWF0aHRlc3QoMTI1LGRlZiwiMzc5OTQ3MC42NCIsIi0yNjQuNzAzOTkyIiwiMzc5OTIwNS45NCIsIjM3OTk3MzUuMzQiLCItMS4wMDU3MzUwNUUrOSIsIi0xNDM1My42NTgzIiwiLTE0MzUzIiwiMTc0LjI0MjgyNCIsIjIuMzYyNTQ2NkUtMTc0NCIpOworICBtYXRodGVzdCgxMjYsZGVmLCItOC4xMTA3MDI0NyIsIi05MzEyODQwNTYuRS02NTQyODg5NzQiLCItOC4xMTA3MDI0NyIsIi04LjExMDcwMjQ3IiwiNy41NTMzNjc4OUUtNjU0Mjg4OTY1IiwiOC43MDkxNjA2N0UrNjU0Mjg4OTY1IiwiIiwiIiwiLTYuNTgzNzU2NjJFLTkiKTsKKyAgbWF0aHRlc3QoMTI3LGRlZiwiLTI0MjY2MDE3Ny4iLCItNi4wOTgzMjcxNUUtOTQzNzQyNDE1IiwiLTI0MjY2MDE3NyIsIi0yNDI2NjAxNzciLCIxLjQ3OTgyMTE1RS05NDM3NDI0MDYiLCIzLjk3OTEyNjkyRSs5NDM3NDI0MjIiLCIiLCIiLCI0Ljg5Nzg4OTAxRS01MSIpOworICBtYXRodGVzdCgxMjgsZGVmLCI3Ni4xNDYzODAzIiwiLTQ1LjY3NTgwMDZFLTYzNjkwNzk5NiIsIjc2LjE0NjM4MDMiLCI3Ni4xNDYzODAzIiwiLTMuNDc4MDQ2ODhFLTYzNjkwNzk5MyIsIi0xLjY2NzEwNTU0RSs2MzY5MDc5OTYiLCIiLCIiLCIzLjkwNjE5Mjg3RS0xMCIpOworICBtYXRodGVzdCgxMjksZGVmLCI3NjExODUuODYyIiwiLTcwODc4NDcwLjlFKzIyMTIxNDcxMiIsIi03LjA4Nzg0NzA5RSsyMjEyMTQ3MTkiLCI3LjA4Nzg0NzA5RSsyMjEyMTQ3MTkiLCItNS4zOTUxNjkwMEUrMjIxMjE0NzI1IiwiLTEuMDczOTMwOTlFLTIyMTIxNDcxNCIsIjAiLCI3NjExODUuODYyIiwiNi43NTQwNjE0NEUtNDIiKTsKKyAgbWF0aHRlc3QoMTMwLGRlZiwiNjIwMzYwNi41NCIsIi0xOTUuOTI3NDhFLTgzMzUxMjA2MSIsIjYyMDM2MDYuNTQiLCI2MjAzNjA2LjU0IiwiLTEuMjE1NDU3MDBFLTgzMzUxMjA1MiIsIi0zLjE2NjI3NjlFKzgzMzUxMjA2NSIsIiIsIiIsIjIuNTk4NDMyOTJFLTE0Iik7CisgIG1hdGh0ZXN0KDEzMSxkZWYsIi0xNjMyNzQ4MzcuIiwiOTUuMDQ0ODU1MEUrODg3ODc2NTMzIiwiOS41MDQ0ODU1MEUrODg3ODc2NTM0IiwiLTkuNTA0NDg1NTBFKzg4Nzg3NjUzNCIsIi0xLjU1MTg0MzMyRSs4ODc4NzY1NDMiLCItMS43MTc4NzEzOUUtODg3ODc2NTI3IiwiMCIsIi0xNjMyNzQ4MzciLCIxLjM0NjQ1NzMxRSs4MiIpOworICBtYXRodGVzdCgxMzIsZGVmLCIyLjM4NjM4MTkwIiwiLTgwNzk4NjE3OS4iLCItODA3OTg2MTc3IiwiODA3OTg2MTgxIiwiLTEuOTI4MTYzNTlFKzkiLCItMi45NTM0OTM0N0UtOSIsIjAiLCIyLjM4NjM4MTkwIiwiMS4xOTAyOTMwNUUtMzA1MjA4NjU2Iik7CisgIG1hdGh0ZXN0KDEzMyxkZWYsIi0xMDkwMjIyOTZFLTgxMTk4MTE1OCIsIjcuMTk2ODU2ODAiLCI3LjE5Njg1NjgwIiwiLTcuMTk2ODU2ODAiLCItNy44NDYxNzg1MkUtODExOTgxMTUwIiwiLTEuNTE0ODU5ODhFLTgxMTk4MTE1MSIsIjAiLCItMS4wOTAyMjI5NkUtODExOTgxMTUwIiwiIik7CisgIG1hdGh0ZXN0KDEzNCxkZWYsIi01NTkyNTAuNzgwRS0yNzM3MTA0MjEiLCItMzkzNzgwODExLiIsIi0zOTM3ODA4MTEiLCIzOTM3ODA4MTEiLCIyLjIwMjIyMjI2RS0yNzM3MTA0MDciLCIxLjQyMDIwODMxRS0yNzM3MTA0MjQiLCIwIiwiLTUuNTkyNTA3ODBFLTI3MzcxMDQxNiIsIiIpOworICBtYXRodGVzdCgxMzUsZGVmLCItODgwMjEuOTk2NkUrNTU1MzM0NjQyIiwiNzU5OTY4Ni42NEUrODE4ODg0MDUzIiwiNy41OTk2ODY2NEUrODE4ODg0MDU5IiwiLTcuNTk5Njg2NjRFKzgxODg4NDA1OSIsIiIsIi0xLjE1ODIzMTkyRS0yNjM1NDk0MTMiLCIwIiwiLTguODAyMTk5NjZFKzU1NTMzNDY0NiIsIiIpOworICBtYXRodGVzdCgxMzYsZGVmLCIxOTQuMzE3NjQ4RS0xOTc0NTAwMDkiLCItOTMwLjk3OTA2NCIsIi05MzAuOTc5MDY0IiwiOTMwLjk3OTA2NCIsIi0xLjgwOTA1NjYyRS0xOTc0NTAwMDQiLCItMi4wODcyMzk3MkUtMTk3NDUwMDEwIiwiMCIsIjEuOTQzMTc2NDhFLTE5NzQ1MDAwNyIsIiIpOworICBtYXRodGVzdCgxMzcsZGVmLCI5NDk1NDc5LjY1IiwiNzQwNTY5Ny45NiIsIjE2OTAxMTc3LjYiLCIyMDg5NzgxLjY5IiwiNy4wMzIwNjU0M0UrMTMiLCIxLjI4MjE4NTY1IiwiMSIsIjIwODk3ODEuNjkiLCIxLjAxMzU0NDZFKzUxNjczMzgzIik7CisgIG1hdGh0ZXN0KDEzOCxkZWYsIi0xNjU2LjI4OTI1IiwiLTE2MzA1MDUxMUUtNjgyODgyMzgwIiwiLTE2NTYuMjg5MjUiLCItMTY1Ni4yODkyNSIsIjIuNzAwNTg4MDlFLTY4Mjg4MjM2OSIsIjEuMDE1ODEzNTlFKzY4Mjg4MjM3NSIsIiIsIiIsIjMuNjQ1MjUyNjVFLTciKTsKKyAgbWF0aHRlc3QoMTM5LGRlZiwiOTU1ODEuMzc4NEUrNjQyNjIxNDkiLCItOTkuMjg3OTM2NSIsIjkuNTU4MTM3ODRFKzY0MjYyMTUzIiwiOS41NTgxMzc4NEUrNjQyNjIxNTMiLCItOS40OTAwNzc4M0UrNjQyNjIxNTUiLCItOS42MjY2ODU5NkUrNjQyNjIxNTEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQwLGRlZiwiNjQzNzYxLjQ1MiIsIjMuNzM0NDY5MzkiLCI2NDM3NjUuMTg2IiwiNjQzNzU3LjcxOCIsIjI0MDQxMDcuNDQiLCIxNzIzODMuNjQ3IiwiMTcyMzgzIiwiMi40MTUxNDM2MyIsIjEuNzE3NTEyMzZFKzIzIik7CisgIG1hdGh0ZXN0KDE0MSxkZWYsIjc5NjAuNDk4NjZFLTEyOTgyNzQyMyIsIjMyMjAuMjI4NTAiLCIzMjIwLjIyODUwIiwiLTMyMjAuMjI4NTAiLCIyLjU2MzQ2MjQ3RS0xMjk4Mjc0MTYiLCIyLjQ3MjAyOTEzRS0xMjk4Mjc0MjMiLCIwIiwiNy45NjA0OTg2NkUtMTI5ODI3NDIwIiwiIik7CisgIG1hdGh0ZXN0KDE0MixkZWYsIi02MzU2LjY0MTEyRS03MDcyMDM4MTgiLCIxODA1MDU0Ljk4IiwiMTgwNTA1NC45OCIsIi0xODA1MDU0Ljk4IiwiLTEuMTQ3NDA4NjdFLTcwNzIwMzgwOCIsIi0zLjUyMTU3NzU2RS03MDcyMDM4MjEiLCIwIiwiLTYuMzU2NjQxMTJFLTcwNzIwMzgxNSIsIiIpOworICBtYXRodGVzdCgxNDMsZGVmLCIyLjM5MDQwNDIiLCI4NDc2LjUyMDA2IiwiODQ3OC45MTA0NiIsIi04NDc0LjEyOTY2IiwiMjAyNjIuMzA5MiIsIjAuMDAwMjgyMDAzMDEzIiwiMCIsIjIuMzkwNDA0MiIsIjIuMDAyNTE3NTJFKzMyMDgiKTsKKyAgbWF0aHRlc3QoMTQ0LGRlZiwiLTcxMzI5OC42NTgiLCItOTU3Ljc4MjcyOSIsIi03MTQyNTYuNDQxIiwiLTcxMjM0MC44NzUiLCI2ODMxODUxMzUiLCI3NDQuNzM5NTI4IiwiNzQ0IiwiLTcwOC4zMDc2MjQiLCIzLjY4MTIyMzIxRS01NjA4Iik7CisgIG1hdGh0ZXN0KDE0NSxkZWYsIjYwNzc3OTIzMy5FLTgyMDQ5NzM2NSIsIi0yMC4xMTg4NzQyRS04NTczMTgzMjMiLCI2LjA3Nzc5MjMzRS04MjA0OTczNTciLCI2LjA3Nzc5MjMzRS04MjA0OTczNTciLCIiLCItMy4wMjA5NDA1N0UrMzY4MjA5NjUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQ2LGRlZiwiLTIwNTg4ODI1MSIsIi05MDguNzkyOTIyRSsyNTA2ODA2MTMiLCItOS4wODc5MjkyMkUrMjUwNjgwNjE1IiwiOS4wODc5MjkyMkUrMjUwNjgwNjE1IiwiMS44NzEwOTc4NUUrMjUwNjgwNjI0IiwiMi4yNjU1MTMzNkUtMjUwNjgwNjA4IiwiMCIsIi0yMDU4ODgyNTEiLCItMS41MDQyMzU4RS03NSIpOworICBtYXRodGVzdCgxNDcsZGVmLCI1MTU0MjM5OS4xIiwiLTIzMjEyLjI0MTQiLCI1MTUxOTE4Ni45IiwiNTE1NjU2MTEuMyIsIi0xLjE5NjQxNDYxRSsxMiIsIi0yMjIwLjQ4MzUiLCItMjIyMCIsIjExMjIzLjE5MjAiLCIxLjcxNjQxMzQ4RS0xNzkwMTUiKTsKKyAgbWF0aHRlc3QoMTQ4LGRlZiwiNC40NDI4NzIzMCIsIjE1ODkyMzAyMyIsIjE1ODkyMzAyNyIsIi0xNTg5MjMwMTkiLCI3MDYwNzQ2OTciLCIyLjc5NTYxMjc1RS04IiwiMCIsIjQuNDQyODcyMzAiLCI3LjEyNTczNDE2RSsxMDI5Mjg2OTMiKTsKKyAgbWF0aHRlc3QoMTQ5LGRlZiwiLTc5MTIzNjgyLjYiLCItMy44NTcxNzcwIiwiLTc5MTIzNjg2LjUiLCItNzkxMjM2NzguOCIsIjMwNTE5NDA0OSIsIjIwNTEzMzY1LjgiLCIyMDUxMzM2NSIsIi0yLjkyOTM5NTAiLCIyLjU1MTM3MzQ1RS0zMiIpOworICBtYXRodGVzdCgxNTAsZGVmLCItODAuMzMyNDM0N0UtNTY5NzE1MDMwIiwiODgzMTQyLjM1MSIsIjg4MzE0Mi4zNTEiLCItODgzMTQyLjM1MSIsIi03LjA5NDQ5NzUyRS01Njk3MTUwMjMiLCItOS4wOTYyMDQ1NUUtNTY5NzE1MDM1IiwiMCIsIi04LjAzMzI0MzQ3RS01Njk3MTUwMjkiLCIiKTsKKyAgbWF0aHRlc3QoMTUxLGRlZiwiMTM2MzcuNDgzIiwiLTUyNzk4LjU2MzEiLCItMzkxNjEuMDgwMSIsIjY2NDM2LjA0NjEiLCItNzIwMDM5NTA3IiwiLTAuMjU4MjkyNjkyIiwiMCIsIjEzNjM3LjQ4MyIsIjEuNDcxNjM3OTFFLTIxODMxMCIpOworICBtYXRodGVzdCgxNTIsZGVmLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI4NDA1NzQ0MC4wRS0zODgwMzk3ODIiLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI1LjQwNDM0NTcwRS02NjQ1MTYyMzIiLCI3LjY0ODc1NTkzRSsxMTE1NjMzMTYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTUzLGRlZiwiLTUuNjQxMzMwODciLCItMTc0MDEyOTcuIiwiLTE3NDAxMzAyLjYiLCIxNzQwMTI5MS40IiwiOTgxNjY0NzMuOSIsIjMuMjQxOTAyNTNFLTciLCIwIiwiLTUuNjQxMzMwODciLCItMS4yNTkwODkxNkUtMTMwNzUwMTQiKTsKKyAgbWF0aHRlc3QoMTU0LGRlZiwiOTU0NjkuNzA1N0UrODY1NzMzODI0IiwiMTk4LjgyOTc0OSIsIjkuNTQ2OTcwNTdFKzg2NTczMzgyOCIsIjkuNTQ2OTcwNTdFKzg2NTczMzgyOCIsIjEuODk4MjIxNzZFKzg2NTczMzgzMSIsIjQuODAxNTgwNTZFKzg2NTczMzgyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNTUsZGVmLCItNDE2NDY2LjIwOSIsIi05MzAxNTM0MjciLCItOTMwNTY5ODkzIiwiOTI5NzM2OTYxIiwiMy44NzM3NzQ3MkUrMTQiLCIwLjAwMDQ0NzczOTI2MiIsIjAiLCItNDE2NDY2LjIwOSIsIiIpOworICBtYXRodGVzdCgxNTYsZGVmLCItMTU0MTczMy44NSIsIi0xLjk5MjA4NzA4IiwiLTE1NDE3MzUuODQiLCItMTU0MTczMS44NiIsIjMwNzEyNjguMDgiLCI3NzM5MjguOTQ0IiwiNzczOTI4IiwiLTEuODgwMzQ5NzYiLCI0LjIwNzA4NDAxRS0xMyIpOworICBtYXRodGVzdCgxNTcsZGVmLCItMzkxNTI2OTEuOCIsIi02NDUxMzE3NDguIiwiLTY4NDI4NDQ0MCIsIjYwNTk3OTA1NiIsIjIuNTI1ODY0NDVFKzE2IiwiMC4wNjA2ODk0NTEzIiwiMCIsIi0zOTE1MjY5MS44IiwiIik7CisgIG1hdGh0ZXN0KDE1OCxkZWYsIjExMy45Mzk5NzkiLCItNTgyODI1NTAuNCIsIi01ODI4MjQzNi41IiwiNTgyODI2NjQuMyIsIi02LjY0MDcxMjU3RSs5IiwiLTAuMDAwMDAxOTU0OTU4NyIsIjAiLCIxMTMuOTM5OTc5IiwiMi4xMDY1NTdFLTExOTg2ODMzMCIpOworICBtYXRodGVzdCgxNTksZGVmLCItMzI0OTcxLjczNiIsIi05NTE3LjE1MTU0IiwiLTMzNDQ4OC44ODgiLCItMzE1NDU0LjU4NSIsIjMuMDkyODA1MjZFKzkiLCIzNC4xNDU5MDMzIiwiMzQiLCItMTM4OC41ODM2NCIsIi01LjgyNzk1MjYzRS01MjQ1NyIpOworICBtYXRodGVzdCgxNjAsZGVmLCItNzYuOTQzNjc0NCIsIi05NTQ4MTIyLjc1RS0yNzM1OTk3MjgiLCItNzYuOTQzNjc0NCIsIi03Ni45NDM2NzQ0IiwiNy4zNDY2NzY0OEUtMjczNTk5NzIwIiwiOC4wNTg1MTMzMkUrMjczNTk5NzIyIiwiIiwiIiwiMS4zNzQ4OTg5NUUtMTkiKTsKKyAgbWF0aHRlc3QoMTYxLGRlZiwiLTQzMDM5My4yODIiLCItNzAuMjU1MTUwNSIsIi00MzA0NjMuNTM3IiwiLTQzMDMyMy4wMjciLCIzMDIzNzM0NC44IiwiNjEyNi4xNDU2MSIsIjYxMjYiLCItMTAuMjMwMDM3MCIsIjQuMjYwMDY0MDlFLTM5NSIpOworICBtYXRodGVzdCgxNjIsZGVmLCItMzMwODA1MS45MCIsIi0zNDk0MzM3OTkuRSszOTc4MTMxODgiLCItMy40OTQzMzc5OUUrMzk3ODEzMTk2IiwiMy40OTQzMzc5OUUrMzk3ODEzMTk2IiwiMS4xNTU5NDUxNEUrMzk3ODEzMjAzIiwiOS40NjY4OTE2MUUtMzk3ODEzMTkxIiwiMCIsIi0zMzA4MDUxLjkwIiwiLTIuNzYyMzc3NjhFLTIwIik7CisgIG1hdGh0ZXN0KDE2MyxkZWYsIjIzLjE1NDMyMTJFLTY1NTgyMjcxMiIsIjU4NDguMjA4NTMiLCI1ODQ4LjIwODUzIiwiLTU4NDguMjA4NTMiLCIxLjM1NDExMjk5RS02NTU4MjI3MDciLCIzLjk1OTIxNjA3RS02NTU4MjI3MTUiLCIwIiwiMi4zMTU0MzIxMkUtNjU1ODIyNzExIiwiIik7CisgIG1hdGh0ZXN0KDE2NCxkZWYsIi0xNzQuMjYxMzA4RS04MjkwMjA3NyIsIi0yMDAwOTYyMDQuIiwiLTIwMDA5NjIwNCIsIjIwMDA5NjIwNCIsIjMuNDg2OTAyNjJFLTgyOTAyMDY3IiwiOC43MDg4NzYyNkUtODI5MDIwODQiLCIwIiwiLTEuNzQyNjEzMDhFLTgyOTAyMDc1IiwiIik7CisgIG1hdGh0ZXN0KDE2NSxkZWYsIi01MDY2OTEwNS4yIiwiOTEwNTc4OS4wMUUrNjA5ODg5NzAwIiwiOS4xMDU3ODkwMUUrNjA5ODg5NzA2IiwiLTkuMTA1Nzg5MDFFKzYwOTg4OTcwNiIsIi00LjYxMzgyMTgxRSs2MDk4ODk3MTQiLCItNS41NjQ0OTM2NkUtNjA5ODg5NzAwIiwiMCIsIi01MDY2OTEwNS4yIiwiLTIuMjAxMzUwMDhFKzY5Iik7CisgIG1hdGh0ZXN0KDE2NixkZWYsIjQyNDc2ODg1Ni4iLCItOTcxLjcxNzU3IiwiNDI0NzY3ODg0IiwiNDI0NzY5ODI4IiwiLTQuMTI3NTUzNjFFKzExIiwiLTQzNzEzMi4wMTIiLCItNDM3MTMyIiwiMTEuMTkwNzYiLCIyLjcyNjUxNDczRS04Mzg3Iik7CisgIG1hdGh0ZXN0KDE2NyxkZWYsIjcxODEuMjc2NyIsIjk5OTExNy45MTgiLCIxMDA2Mjk5LjE5IiwiLTk5MTkzNi42NDEiLCI3LjE3NDk0MjIzRSs5IiwiMC4wMDcxODc2MTY3NyIsIjAiLCI3MTgxLjI3NjciLCIzLjA5NjU1MTI0RSszODUyODAwIik7CisgIG1hdGh0ZXN0KDE2OCxkZWYsIjgwOTY0MTcuMDdFLTQzMzY5NDUyOCIsIi02OC40ODYzMzYzIiwiLTY4LjQ4NjMzNjMiLCI2OC40ODYzMzYzIiwiLTUuNTQ0OTM5NDJFLTQzMzY5NDUyMCIsIi0xLjE4MjE5NDUxRS00MzM2OTQ1MjMiLCIwIiwiOC4wOTY0MTcwN0UtNDMzNjk0NTIyIiwiIik7CisgIG1hdGh0ZXN0KDE2OSxkZWYsIjEyMzYyODcuNSIsIi03MTE5Ljk3Mjk5RS0xNzYyMDA0OTgiLCIxMjM2Mjg3LjUwIiwiMTIzNjI4Ny41MCIsIi04LjgwMjMzMzYxRS0xNzYyMDA0ODkiLCItMS43MzYzNjU0NEUrMTc2MjAwNTAwIiwiIiwiIiwiMi4yNjU0OTc4NEUtNDMiKTsKKyAgbWF0aHRlc3QoMTcwLGRlZiwiLTc1Mjk5NTgzM0UtNjU0NDAxMDY3IiwiLTE1LjI3MzY5MzBFKzgwMzkzOTk4MyIsIi0xLjUyNzM2OTMwRSs4MDM5Mzk5ODQiLCIxLjUyNzM2OTMwRSs4MDM5Mzk5ODQiLCIxLjE1MDEwMjcyRSsxNDk1Mzg5MjYiLCIiLCIwIiwiLTcuNTI5OTU4MzNFLTY1NDQwMTA1OSIsIiIpOworICBtYXRodGVzdCgxNzEsZGVmLCI3MDI5OTIuNDU5IiwiLTMxMi42ODk0NzQiLCI3MDI2NzkuNzcwIiwiNzAzMzA1LjE0OCIsIi0yMTk4MTgzNDIiLCItMjI0OC4yMTI3NCIsIi0yMjQ4IiwiNjYuNTIxNDQ4IiwiOC4wMjQ5MzMyMkUtMTgzMSIpOworICBtYXRodGVzdCgxNzIsZGVmLCItNDQxNC4zODgwNSIsIi0xNzY4MC40NjMwRS01ODQzNjQ1MzYiLCItNDQxNC4zODgwNSIsIi00NDE0LjM4ODA1IiwiNy44MDQ4NDI0NkUtNTg0MzY0NTI5IiwiMi40OTY3NjA0NEUrNTg0MzY0NTM1IiwiIiwiIiwiNS4xMzE2NzMxMkUtOCIpOworICBtYXRodGVzdCgxNzMsZGVmLCI5LjQ2MzUwODA3IiwiNzgyNi42NTQyNCIsIjc4MzYuMTE3NzUiLCItNzgxNy4xOTA3MyIsIjc0MDY3LjYwNTYiLCIwLjAwMTIwOTEzODM5IiwiMCIsIjkuNDYzNTA4MDciLCIzLjYzMjcxNDk1RSs3NjM5Iik7CisgIG1hdGh0ZXN0KDE3NCxkZWYsIjIwNzgxNTMuNyIsIi0xNjkzNDYwNy4zRSsyMzM1OTQ0MzkiLCItMS42OTM0NjA3M0UrMjMzNTk0NDQ2IiwiMS42OTM0NjA3M0UrMjMzNTk0NDQ2IiwiLTMuNTE5MjcxNjhFKzIzMzU5NDQ1MiIsIi0xLjIyNzE2MzhFLTIzMzU5NDQ0MCIsIjAiLCIyMDc4MTUzLjciLCIyLjMxNTQ5OTM5RS0xMyIpOworICBtYXRodGVzdCgxNzUsZGVmLCItOTM1OS43NDYyOSIsIjcuMDc3NjE3ODhFKzI1MjQ1NzY5NiIsIjcuMDc3NjE3ODhFKzI1MjQ1NzY5NiIsIi03LjA3NzYxNzg4RSsyNTI0NTc2OTYiLCItNi42MjQ0NzA3N0UrMjUyNDU3NzAwIiwiLTEuMzIyNDQzMDFFLTI1MjQ1NzY5MyIsIjAiLCItOTM1OS43NDYyOSIsIi02LjI5Mjg2Njc3RSsyNyIpOworICBtYXRodGVzdCgxNzYsZGVmLCI2Ni4yMzE5Mjg0RSs3MzA0Njg0NzkiLCIyNS45MzkxNjg1RSsyMjExNDcwNDQiLCI2LjYyMzE5Mjg0RSs3MzA0Njg0ODAiLCI2LjYyMzE5Mjg0RSs3MzA0Njg0ODAiLCIxLjcxODAwMTE1RSs5NTE2MTU1MjYiLCIyLjU1MzM1NTg4RSs1MDkzMjE0MzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTc3LGRlZiwiMzE3OTk3MDg4LkUtOTA5Njg3NDIiLCItOTc3NDI2LjQ2MSIsIi05Nzc0MjYuNDYxIiwiOTc3NDI2LjQ2MSIsIi0zLjEwODE4NzY4RS05MDk2ODcyOCIsIi0zLjI1MzQxMTlFLTkwOTY4NzQwIiwiMCIsIjMuMTc5OTcwODhFLTkwOTY4NzM0IiwiIik7CisgIG1hdGh0ZXN0KDE3OCxkZWYsIjIyNzQ3MzM4NiIsIi02NzU5LjYxMzkwIiwiMjI3NDY2NjI2IiwiMjI3NDgwMTQ2IiwiLTEuNTM3NjMyMjZFKzEyIiwiLTMzNjUxLjgzMTIiLCItMzM2NTEiLCI1NjE4LjY1MTEwIiwiMS40MDk5MjYyN0UtNTY0OTMiKTsKKyAgbWF0aHRlc3QoMTc5LGRlZiwiLTM5MjAxOS40NjIiLCItMjQ1NDU2LjUwMyIsIi02Mzc0NzUuOTY1IiwiLTE0NjU2Mi45NTkiLCI5LjYyMjM3MjYzRSsxMCIsIjEuNTk3MTAzNTkiLCIxIiwiLTE0NjU2Mi45NTkiLCItMy4wODY1NjUzM0UtMTM3MjkxNyIpOworICBtYXRodGVzdCgxODAsZGVmLCItMzYxOTU1Ni4yOEUrNTg3NjczNTgzIiwiLTMuNDUyMzY5NzIiLCItMy42MTk1NTYyOEUrNTg3NjczNTg5IiwiLTMuNjE5NTU2MjhFKzU4NzY3MzU4OSIsIjEuMjQ5NjA0NjVFKzU4NzY3MzU5MCIsIjEuMDQ4NDI2NjFFKzU4NzY3MzU4OSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxODEsZGVmLCItMjQ5LjQwMDcwNEUtOTIzOTMwODQ4IiwiODMxMTAyLjkxOSIsIjgzMTEwMi45MTkiLCItODMxMTAyLjkxOSIsIi0yLjA3Mjc3NjUzRS05MjM5MzA4NDAiLCItMy4wMDA4NDAxOUUtOTIzOTMwODUyIiwiMCIsIi0yLjQ5NDAwNzA0RS05MjM5MzA4NDYiLCIiKTsKKyAgbWF0aHRlc3QoMTgyLGRlZiwiNjUyMzQuMjczOUUrMTU0OTQ5OTE0IiwiLTY5NDU4MTg5NSIsIjYuNTIzNDI3MzlFKzE1NDk0OTkxOCIsIjYuNTIzNDI3MzlFKzE1NDk0OTkxOCIsIi00LjUzMTA1NDU2RSsxNTQ5NDk5MjciLCItOS4zOTE4NzY1MkUrMTU0OTQ5OTA5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE4MyxkZWYsIjQ1LjIzMTYyMTMiLCItODg3NzUwODMuNCIsIi04ODc3NTAzOC4yIiwiODg3NzUxMjguNiIsIi00LjAxNTQ0MDk1RSs5IiwiLTUuMDk1MDgwNjlFLTciLCIwIiwiNDUuMjMxNjIxMyIsIjEuOTIzMTQyNTRFLTE0Njk2MjAxNSIpOworICBtYXRodGVzdCgxODQsZGVmLCIzMzExMDAzNzUuIiwiNDQyLjM0MzM3OCIsIjMzMTEwMDgxNyIsIjMzMTA5OTkzMyIsIjEuNDY0NjAwNThFKzExIiwiNzQ4NTE0LjM3IiwiNzQ4NTE0IiwiMTYzLjc1OTcwOCIsIjYuNjQwMTEwNDNFKzM3NjUiKTsKKyAgbWF0aHRlc3QoMTg1LGRlZiwiODEuODE2Mjc2NSIsIjUuNjEyMzk1MTVFKzQ2NzM3MjE2MyIsIjUuNjEyMzk1MTVFKzQ2NzM3MjE2MyIsIi01LjYxMjM5NTE1RSs0NjczNzIxNjMiLCI0LjU5MTg1MjczRSs0NjczNzIxNjUiLCIxLjQ1Nzc3ODI2RS00NjczNzIxNjIiLCIwIiwiODEuODE2Mjc2NSIsIjIuOTk5NDI2NzdFKzExIik7CisgIG1hdGh0ZXN0KDE4NixkZWYsIi01NzM4LjEzMDY5RSs3ODk0NjQwNzgiLCIzMzk2OTcxNS4wIiwiLTUuNzM4MTMwNjlFKzc4OTQ2NDA4MSIsIi01LjczODEzMDY5RSs3ODk0NjQwODEiLCItMS45NDkyMjY2NEUrNzg5NDY0MDg5IiwiLTEuNjg5MTkwMTJFKzc4OTQ2NDA3NCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxODcsZGVmLCItNzQxMy4wMzkxMSIsIjIuNzA2MzAzMjBFLTI1NDg1ODI2NCIsIi03NDEzLjAzOTExIiwiLTc0MTMuMDM5MTEiLCItMi4wMDYxOTMxNUUtMjU0ODU4MjYwIiwiLTIuNzM5MTc1MzlFKzI1NDg1ODI2NyIsIiIsIiIsIi00LjA3MzY5ODQyRSsxMSIpOworICBtYXRodGVzdCgxODgsZGVmLCItNDE3Njk2LjE4MiIsIjI3NDAwLjYwMDIiLCItMzkwMjk1LjU4MiIsIi00NDUwOTYuNzgyIiwiLTEuMTQ0NTEyNjFFKzEwIiwiLTE1LjI0NDA1MjMiLCItMTUiLCItNjY4Ny4xNzkwIiwiLTEuNTgwMjAzMzRFKzE1NDAxNyIpOworICBtYXRodGVzdCgxODksZGVmLCI2OC44NTM4NzM1RSs2NTU2NDcyODciLCIzMTk4LjE3OTMzRS0xMzI0NTQ4MjYiLCI2Ljg4NTM4NzM1RSs2NTU2NDcyODgiLCI2Ljg4NTM4NzM1RSs2NTU2NDcyODgiLCIyLjIwMjA3MDM1RSs1MjMxOTI0NjYiLCIyLjE1MjkwODQ2RSs3ODgxMDIxMTEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTkwLGRlZiwiLTY4MTcuMDQyNDYiLCI0MzQ0MjAuNDM5IiwiNDI3NjAzLjM5NyIsIi00NDEyMzcuNDgxIiwiLTIuOTYxNDYyNThFKzkiLCItMC4wMTU2OTIyNjkyIiwiMCIsIi02ODE3LjA0MjQ2IiwiNS45NDE0MzUxOEUrMTY2NTM5MCIpOworICBtYXRodGVzdCgxOTEsZGVmLCI4NTc4LjI3NTExIiwiNjQ3MDQyLjM0MUUtNDkwOTI0MzM0IiwiODU3OC4yNzUxMSIsIjg1NzguMjc1MTEiLCI1LjU1MDUwNzIxRS00OTA5MjQzMjUiLCIxLjMyNTc2NzJFKzQ5MDkyNDMzMiIsIiIsIiIsIjMuOTg0NzM4NDZFKzIzIik7CisgIG1hdGh0ZXN0KDE5MixkZWYsIjQxMjQuMTE2MTVFKzczMzEwOTQyNCIsIjU5NzM4NTgyOEUrMzc1OTI4NzQ1IiwiNC4xMjQxMTYxNUUrNzMzMTA5NDI3IiwiNC4xMjQxMTYxNUUrNzMzMTA5NDI3IiwiIiwiNi45MDM2MDU2RSszNTcxODA2NzMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTkzLGRlZiwiMTAyLjcxNDQwMCIsIi05MTkwMTcuNDY4IiwiLTkxODkxNC43NTQiLCI5MTkxMjAuMTgyIiwiLTk0Mzk2MzI3LjgiLCItMC4wMDAxMTE3NjU0NDkiLCIwIiwiMTAyLjcxNDQwMCIsIjQuMDQyOTU2ODlFLTE4NDg3MjQiKTsKKyAgbWF0aHRlc3QoMTk0LGRlZiwiLTQ2MTQuMzMwMTVFKzk5Njc3ODczMyIsIi00MzMuNTYwODEyRSsyMjg2MDU5OSIsIi00LjYxNDMzMDE1RSs5OTY3Nzg3MzYiLCItNC42MTQzMzAxNUUrOTk2Nzc4NzM2IiwiIiwiMS4wNjQyODY3MkUrOTczOTE4MTM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE5NSxkZWYsIjQ1NzQ1NTE3MC4iLCIzNzA5MjMwLjQ4RSs2NzcwMTA4NzkiLCIzLjcwOTIzMDQ4RSs2NzcwMTA4ODUiLCItMy43MDkyMzA0OEUrNjc3MDEwODg1IiwiMS42OTY4MDY2NkUrNjc3MDEwODk0IiwiMS4yMzMyODg2MUUtNjc3MDEwODc3IiwiMCIsIjQ1NzQ1NTE3MCIsIjQuMzc5MTkzNzZFKzM0Iik7CisgIG1hdGh0ZXN0KDE5NixkZWYsIi0yNTIyNDY4LjE1IiwiLTQ4NDgyMDQzLjUiLCItNTEwMDQ1MTEuNyIsIjQ1OTU5NTc1LjQiLCIxLjIyMjk0NDExRSsxNCIsIjAuMDUyMDI4OTE1NiIsIjAiLCItMjUyMjQ2OC4xNSIsIjEuNDIzNDgxNzhFLTMxMDM3MzU5NSIpOworICBtYXRodGVzdCgxOTcsZGVmLCItNjU5ODExMzg0IiwiNjI3NzcuNjExOCIsIi02NTk3NDg2MDYiLCItNjU5ODc0MTYyIiwiLTQuMTQyMTM4MjlFKzEzIiwiLTEwNTEwLjI5NzYiLCItMTA1MTAiLCItMTg2ODMuOTgyMCIsIjMuNDM5MzUyNEUrNTUzNjY1Iik7CisgIG1hdGh0ZXN0KDE5OCxkZWYsIjQ0MjQuOTQxNzYiLCItODI1ODQ4LjIwIiwiLTgyMTQyMy4yNTgiLCI4MzAyNzMuMTQyIiwiLTMuNjU0MzMwMTlFKzkiLCItMC4wMDUzNTgwNTcwNCIsIjAiLCI0NDI0Ljk0MTc2IiwiMy40MjE1Mjc3NUUtMzAxMDk2NiIpOworICBtYXRodGVzdCgxOTksZGVmLCI0My42NDQxODg0IiwiLTY1MDkuODk2NjNFLTYxNDE2OTM3NyIsIjQzLjY0NDE4ODQiLCI0My42NDQxODg0IiwiLTIuODQxMTkxNTVFLTYxNDE2OTM3MiIsIi02LjcwNDI4Mjg2RSs2MTQxNjkzNzQiLCIiLCIiLCIzLjMxNTI0MDU2RS0xMiIpOworICBtYXRodGVzdCgyMDAsZGVmLCI4OTcuMzg4MzgxRS04NDM4NjQ4NzYiLCI4NDE5NS4xMzY5IiwiODQxOTUuMTM2OSIsIi04NDE5NS4xMzY5IiwiNy41NTU1NzM3NkUtODQzODY0ODY5IiwiMS4wNjU4NDM0OEUtODQzODY0ODc4IiwiMCIsIjguOTczODgzODFFLTg0Mzg2NDg3NCIsIiIpOworICBtYXRodGVzdCgyMDEsZGVmLCI3OTYxOTk4MjUiLCI0OTYuNzY4MzQiLCI3OTYyMDAzMjIiLCI3OTYxOTkzMjgiLCIzLjk1NTI2ODY1RSsxMSIsIjE2MDI3NTguNzkiLCIxNjAyNzU4IiwiMzkzLjkxODI4IiwiNi40MjY0NzI2NEUrNDQyMyIpOworICBtYXRodGVzdCgyMDIsZGVmLCI1NzM1ODM1ODIiLCIxNTk4LjY5NTIxIiwiNTczNTg1MTgxIiwiNTczNTgxOTgzIiwiOS4xNjk4NTMyNUUrMTEiLCIzNTg3ODIuMzIzIiwiMzU4NzgyIiwiNTE3LjE2NTc4IiwiOS45MTE1NjMwMkUrMTQwMDQiKTsKKyAgbWF0aHRlc3QoMjAzLGRlZiwiLTc4MzE0NDI3MC4iLCI2MzQ3LjcxNDk2IiwiLTc4MzEzNzkyMiIsIi03ODMxNTA2MTgiLCItNC45NzExNzY2MEUrMTIiLCItMTIzMzc0LjIwMiIsIi0xMjMzNzQiLCItMTI4NC41MjQ5NiIsIjEuMjgxMTA4MDNFKzU2NDU4Iik7CisgIG1hdGh0ZXN0KDIwNCxkZWYsIjI2OTA5MjM0LjciLCI1MjQxMS41MDgxIiwiMjY5NjE2NDYuMiIsIjI2ODU2ODIzLjIiLCIxLjQxMDM1MzU3RSsxMiIsIjUxMy40MjIyNTUiLCI1MTMiLCIyMjEzMS4wNDQ3IiwiOS43NTgzNjUyOEUrMzg5NDE1Iik7CisgIG1hdGh0ZXN0KDIwNSxkZWYsIjguMjE5MTUyODIiLCIyNDg1OS43ODQxRS04NDMyODI5NTkiLCI4LjIxOTE1MjgyIiwiOC4yMTkxNTI4MiIsIjIuMDQzMjYzNjVFLTg0MzI4Mjk1NCIsIjMuMzA2MjA0NDNFKzg0MzI4Mjk1NSIsIiIsIiIsIjY3LjU1NDQ3MzEiKTsKKyAgbWF0aHRlc3QoMjA2LGRlZiwiLTY4OC4zODc3MTAiLCI4Mjc4My41MjA3RS04MzE4NzA4NTgiLCItNjg4LjM4NzcxMCIsIi02ODguMzg3NzEwIiwiLTUuNjk4NzE1ODJFLTgzMTg3MDg1MSIsIi04LjMxNTUxNjIzRSs4MzE4NzA4NTUiLCIiLCIiLCI1LjA0MjcyMDEyRSsyMiIpOworICBtYXRodGVzdCgyMDcsZGVmLCItOTc5MjIzMi4iLCItMTc0OS4wMTE2NiIsIi05NzkzOTgxLjAxIiwiLTk3OTA0ODIuOTkiLCIxLjcxMjY3Mjc5RSsxMCIsIjU1OTguNzIzMTEiLCI1NTk4IiwiLTEyNjQuNzI3MzIiLCItOC44Njk4NTY3NEUtMTIyMjgiKTsKKyAgbWF0aHRlc3QoMjA4LGRlZiwiLTEzMC43NjU2MDAiLCI4LjY3NDM3NDI3IiwiLTEyMi4wOTEyMjYiLCItMTM5LjQzOTk3NCIsIi0xMTM0LjMwOTc2IiwiLTE1LjA3NDkzMTciLCItMTUiLCItMC42NDk5ODU5NSIsIi0xLjExNzk5OTQ3RSsxOSIpOworICBtYXRodGVzdCgyMDksZGVmLCI5MTcuMjU5MTAyIiwiLTM2ODY0MC40MjYiLCItMzY3NzIzLjE2NyIsIjM2OTU1Ny42ODUiLCItMzM4MTM4Nzg2IiwiLTAuMDAyNDg4MjIxNjkiLCIwIiwiOTE3LjI1OTEwMiIsIjguNjcxMDQyNTVFLTEwOTIwOTQiKTsKKyAgbWF0aHRlc3QoMjEwLGRlZiwiLTQuOTcyNTYzMSIsIi0yOTQ1NjM3MTcuIiwiLTI5NDU2MzcyMiIsIjI5NDU2MzcxMiIsIjEuNDY0NzM2NjdFKzkiLCIxLjY4ODExMTJFLTgiLCIwIiwiLTQuOTcyNTYzMSIsIi02LjI3OTYyNTg0RS0yMDUxODcyODQiKTsKKyAgbWF0aHRlc3QoMjExLGRlZiwiLTYwOTYyODg3LjJFLTUxNDI0OTY2MSIsIi0yNDMwMjEuNDA3IiwiLTI0MzAyMS40MDciLCIyNDMwMjEuNDA3IiwiMS40ODE1Mjg2NkUtNTE0MjQ5NjQ4IiwiMi41MDg1Mzk4RS01MTQyNDk2NTkiLCIwIiwiLTYuMDk2Mjg4NzJFLTUxNDI0OTY1NCIsIiIpOworICBtYXRodGVzdCgyMTIsZGVmLCItNTUzODkyMTkuOCIsIi0zNzcyMjAwRSs5ODE4NjYzOTMiLCItMy43NzIyMDAwMEUrOTgxODY2Mzk5IiwiMy43NzIyMDAwMEUrOTgxODY2Mzk5IiwiMi4wODkzOTIxNUUrOTgxODY2NDA3IiwiMS40NjgzNTMyMUUtOTgxODY2MzkyIiwiMCIsIi01NTM4OTIxOS44IiwiMS4wNjI0MjY3OEUtMzEiKTsKKyAgbWF0aHRlc3QoMjEzLGRlZiwiNjgxLjY2NjAxMCIsIjYyNjg4NjcwMCIsIjYyNjg4NzM4MiIsIi02MjY4ODYwMTgiLCI0LjI3MzI3MzU2RSsxMSIsIjAuMDAwMDAxMDg3MzgzMTEiLCIwIiwiNjgxLjY2NjAxMCIsIiIpOworICBtYXRodGVzdCgyMTQsZGVmLCI2LjQyNjUyMTM4IiwiNTM0NjU4OTQuNSIsIjUzNDY1OTAwLjkiLCItNTM0NjU4ODguMSIsIjM0MzU5OTcxNCIsIjEuMjAxOTg1MkUtNyIsIjAiLCI2LjQyNjUyMTM4IiwiNC42MTE1NTUzMkUrNDMxOTkxNTciKTsKKyAgbWF0aHRlc3QoMjE1LGRlZiwiNTYxNTQ2NjU2IiwiNjUxNDA4LjQ3NiIsIjU2MjE5ODA2NCIsIjU2MDg5NTI0OCIsIjMuNjU3OTYyNTFFKzE0IiwiODYyLjA0OTk2OCIsIjg2MiIsIjMyNTQ5LjY4OCIsIjguNjA1MjM3N0UrNTY5OTQxOSIpOworICBtYXRodGVzdCgyMTYsZGVmLCI3ODQ1Nzc4LjM2RS03OTk1MTEzOSIsIjkuNDU4NTkwNDciLCI5LjQ1ODU5MDQ3IiwiLTkuNDU4NTkwNDciLCI3LjQyMTAwMDQ0RS03OTk1MTEzMiIsIjguMjk0ODcwNTZFLTc5OTUxMTM0IiwiMCIsIjcuODQ1Nzc4MzZFLTc5OTUxMTMzIiwiMS4xMjY0ODIxNkUtNzE5NTYwMTg5Iik7CisgIG1hdGh0ZXN0KDIxNyxkZWYsIjU0NDg2LjIxMTIiLCIxMC43NTY1MDc4IiwiNTQ0OTYuOTY3NyIsIjU0NDc1LjQ1NDciLCI1ODYwODEuMzU2IiwiNTA2NS40MTgyOCIsIjUwNjUiLCI0LjQ5OTE5MzAiLCIxLjI1NjQ3MTY4RSs1MiIpOworICBtYXRodGVzdCgyMTgsZGVmLCIxNjU3NjQ4Mi41IiwiLTIyMTc3MjAuODMiLCIxNDM1ODc2MS43IiwiMTg3OTQyMDMuMyIsIi0zLjY3NjIwMTA1RSsxMyIsIi03LjQ3NDU1Nzc5IiwiLTciLCIxMDUyNDM2LjY5IiwiMS4zODI1OTM3NEUtMTYwMTA4MjAiKTsKKyAgbWF0aHRlc3QoMjE5LGRlZiwiNjEuMjc5Mzc4N0UtMzkyMDcwMTExIiwiNi4yMjU3NTY1MSIsIjYuMjI1NzU2NTEiLCItNi4yMjU3NTY1MSIsIjMuODE1MTA0OTFFLTM5MjA3MDEwOSIsIjkuODQyODgwNzJFLTM5MjA3MDExMSIsIjAiLCI2LjEyNzkzNzg3RS0zOTIwNzAxMTAiLCIiKTsKKyAgbWF0aHRlc3QoMjIwLGRlZiwiNTExNTEzNi4zOSIsIi02NTM2NzQzNzIuIiwiLTY0ODU1OTIzNiIsIjY1ODc4OTUwOCIsIi0zLjM0MzYzMzU3RSsxNSIsIi0wLjAwNzgyNTIwNTY1IiwiMCIsIjUxMTUxMzYuMzkiLCIiKTsKKyAgbWF0aHRlc3QoMjIxLGRlZiwiLTcuODQyMzgzNjZFLTQxNjQ3NzMzOSIsIi0zNzQzMjc1OC45RSs5NzM2OTM5MyIsIi0zLjc0MzI3NTg5RSs5NzM2OTQwMCIsIjMuNzQzMjc1ODlFKzk3MzY5NDAwIiwiMi45MzU2MjA1N0UtMzE5MTA3OTM4IiwiMi4wOTUwNTg5NUUtNTEzODQ2NzM5IiwiMCIsIi03Ljg0MjM4MzY2RS00MTY0NzczMzkiLCIiKTsKKyAgbWF0aHRlc3QoMjIyLGRlZiwiLTM4Nzc4MS4zRSsyODQxMDgzODAiLCItMjE4MDg1LjU5MiIsIi0zLjg3NzgxMzAwRSsyODQxMDgzODUiLCItMy44Nzc4MTMwMEUrMjg0MTA4Mzg1IiwiOC40NTY5NTE0NEUrMjg0MTA4MzkwIiwiMS43NzgxMTUxN0UrMjg0MTA4MzgwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIyMyxkZWYsIi01MzUzLjE3NzM2IiwiMy4zOTMzMjM0NkUrNTQ2Njg1MzU5IiwiMy4zOTMzMjM0NkUrNTQ2Njg1MzU5IiwiLTMuMzkzMzIzNDZFKzU0NjY4NTM1OSIsIi0xLjgxNjUwNjIzRSs1NDY2ODUzNjMiLCItMS41Nzc1NjE3N0UtNTQ2Njg1MzU2IiwiMCIsIi01MzUzLjE3NzM2IiwiLTEuNTM0MDMzNjlFKzExIik7CisgIG1hdGh0ZXN0KDIyNCxkZWYsIi0yMDgzNy4yOTAwRS0xNjg2NTI3NzIiLCItODIzNi43ODMwNUUtNzEyODE5MTczIiwiLTIuMDgzNzI5MDBFLTE2ODY1Mjc2OCIsIi0yLjA4MzcyOTAwRS0xNjg2NTI3NjgiLCIxLjcxNjMyMjM3RS04ODE0NzE5MzciLCIyLjUyOTc4NDk3RSs1NDQxNjY0MDEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjI1LGRlZiwiLTk4NTczLjg3MjJFKzgyOTAyMjM2NiIsIjMwOTAxMS4wMDciLCItOS44NTczODcyMkUrODI5MDIyMzcwIiwiLTkuODU3Mzg3MjJFKzgyOTAyMjM3MCIsIi0zLjA0NjA0MTE1RSs4MjkwMjIzNzYiLCItMy4xODk5NzkzMkUrODI5MDIyMzY1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIyNixkZWYsIjQ5NzMwNzUwLjciLCItNTMxNS4xMDYzNkUtMjk5NTg2OTkxIiwiNDk3MzA3NTAuNyIsIjQ5NzMwNzUwLjciLCItMi42NDMyNDIyOUUtMjk5NTg2OTgwIiwiLTkuMzU2NDkyMTFFKzI5OTU4Njk5NCIsIiIsIiIsIjMuMjg3NTY5MzZFLTM5Iik7CisgIG1hdGh0ZXN0KDIyNyxkZWYsIjE1Mzk1MjMuNDAiLCItOTYyMzg4LjU4MSIsIjU3NzEzNC44MiIsIjI1MDE5MTEuOTgiLCItMS40ODE2MTk3NEUrMTIiLCItMS41OTk2OTAwMSIsIi0xIiwiNTc3MTM0LjgxOSIsIjMuMTAxNDQ4MzRFLTU5NTQ2NzMiKTsKKyAgbWF0aHRlc3QoMjI4LGRlZiwiODE1OTYuMjEyMSIsIi0zNzYwMC45NjUzIiwiNDM5OTUuMjQ2OCIsIjExOTE5Ny4xNzciLCItMy4wNjgwOTYzNEUrOSIsIi0yLjE3MDA1NjMxIiwiLTIiLCI2Mzk0LjI4MTUiLCIxLjk3ODc4Mjk5RS0xODQ2ODQiKTsKKyAgbWF0aHRlc3QoMjI5LGRlZiwiNTkwMTQ2MTk5IiwiLTE0MjU0MDQuNjEiLCI1ODg3MjA3OTQiLCI1OTE1NzE2MDQiLCItOC40MTE5NzExM0UrMTQiLCItNDE0LjAyMDEyOCIsIi00MTQiLCIyODY5MC40NiIsIjIuMDQ2NTA5OTRFLTEyNTAyMTcwIik7CisgIG1hdGh0ZXN0KDIzMCxkZWYsIjE5Ni4wNTU0MyIsIjUwNS45MzYzMDUiLCI3MDEuOTkxNzM1IiwiLTMwOS44ODA4NzUiLCI5OTE5MS41NTk4IiwiMC4zODc1MTAxMDQiLCIwIiwiMTk2LjA1NTQzIiwiOC43ODQzNzM5N0UrMTE1OSIpOworICBtYXRodGVzdCgyMzEsZGVmLCI3Ny44MDU4NDQ5IiwiLTY0Mi4yNzUyNzQiLCItNTY0LjQ2OTQyOSIsIjcyMC4wODExMTkiLCItNDk5NzIuNzcwNCIsIi0wLjEyMTE0MDk2MyIsIjAiLCI3Ny44MDU4NDQ5IiwiOS4zMzU4MjYyNkUtMTIxNSIpOworICBtYXRodGVzdCgyMzIsZGVmLCIxNDY4LjYwNjg0IiwiMTAwNjguMTM4IiwiMTE1MzYuNzQ0OCIsIi04NTk5LjUzMTIiLCIxNDc4NjEzNi4zIiwiMC4xNDU4NjY3NzciLCIwIiwiMTQ2OC42MDY4NCIsIjIuNTQxMjI0ODRFKzMxODg0Iik7CisgIG1hdGh0ZXN0KDIzMyxkZWYsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjQuNDE3MzE0MzlFLTU3ODgxMjM3NiIsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjIuMjAzMjQ0OTZFLTk2Njc4MTAwNyIsIjEuMTI5MTM1NzdFKzE5MDg0Mzc0NCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMzQsZGVmLCI5ODEuMDkxMDU5IiwiLTkyMjM4Ljk5MzAiLCItOTEyNTcuOTAyMCIsIjkzMjIwLjA4NDEiLCItOTA0OTQ4NTEuMyIsIi0wLjAxMDYzNjQwMjUiLCIwIiwiOTgxLjA5MTA1OSIsIjUuMjk5NDMzNDJFLTI3NTk1MyIpOworICBtYXRodGVzdCgyMzUsZGVmLCItMzYwNi4yNDk5MiIsIjgyOTAyMjQuNzAiLCI4Mjg2NjE4LjQ1IiwiLTgyOTM4MzAuOTUiLCItMi45ODk2NjIyMkUrMTAiLCItMC4wMDA0MzUwMDAyNjIiLCIwIiwiLTM2MDYuMjQ5OTIiLCItMS4yMzc0NzEwN0UrMjk0ODg3OTMiKTsKKyAgbWF0aHRlc3QoMjM2LGRlZiwiLTg5Nzg1NzEuMzUiLCI5MjI0My40Nzk2IiwiLTg4ODYzMjcuODciLCItOTA3MDgxNC44MyIsIi04LjI4MjE0NjYzRSsxMSIsIi05Ny4zMzU1NjY2IiwiLTk3IiwiLTMwOTUzLjgyODgiLCItNC45NTc2MjgxM0UrNjQxMzg0Iik7CisgIG1hdGh0ZXN0KDIzNyxkZWYsIi02MTk2OC4xOTkyRSs4MTAwNjA0NzgiLCI0NzQyOTQ2NzEuRSsxNzkyNjM0MTQiLCItNi4xOTY4MTk5MkUrODEwMDYwNDgyIiwiLTYuMTk2ODE5OTJFKzgxMDA2MDQ4MiIsIi0yLjkzOTExODY3RSs5ODkzMjM5MDUiLCItMS4zMDY1MzM3NEUrNjMwNzk3MDYwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIzOCxkZWYsIjYxMjk4NDMxLjZFLTc1NDQyOTA0MSIsIi0yNTg0ODYyLjc5IiwiLTI1ODQ4NjIuNzkiLCIyNTg0ODYyLjc5IiwiLTEuNTg0NDgwMzVFLTc1NDQyOTAyNyIsIi0yLjM3MTQzODUxRS03NTQ0MjkwNDAiLCIwIiwiNi4xMjk4NDMxNkUtNzU0NDI5MDM0IiwiIik7CisgIG1hdGh0ZXN0KDIzOSxkZWYsIjYyMTAzOS4wNjQiLCItNTM1MTUzOS42MiIsIi00NzMwNTAwLjU2IiwiNTk3MjU3OC42OCIsIi0zLjMyMzUxNTE2RSsxMiIsIi0wLjExNjA0ODY3MiIsIjAiLCI2MjEwMzkuMDY0IiwiMi40MTE2MzMxMkUtMzEwMDIxMDgiKTsKKyAgbWF0aHRlc3QoMjQwLGRlZiwiLTE5LjYwMDc2MDUiLCItNTc5MDU2OTYuIiwiLTU3OTA1NzE1LjYiLCI1NzkwNTY3Ni40IiwiMS4xMzQ5OTU2OEUrOSIsIjMuMzg0OTQ1MTVFLTciLCIwIiwiLTE5LjYwMDc2MDUiLCIxLjA1NjYzNjQ2RS03NDgyOTk2MyIpOworICBtYXRodGVzdCgyNDEsZGVmLCIzNjI2LjEzMTA5RSs2ODcwMzAzNDYiLCIxODkuODk2MDA0IiwiMy42MjYxMzEwOUUrNjg3MDMwMzQ5IiwiMy42MjYxMzEwOUUrNjg3MDMwMzQ5IiwiNi44ODU4NzgwNEUrNjg3MDMwMzUxIiwiMS45MDk1MzUyM0UrNjg3MDMwMzQ3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI0MixkZWYsIi0yNDkzMzQuMDI2IiwiLTcuNTQ3MzU4MzRFLTE0MTM3MTg4IiwiLTI0OTMzNC4wMjYiLCItMjQ5MzM0LjAyNiIsIjEuODgxODEzMjRFLTE0MTM3MTgyIiwiMy4zMDM1OTMzMkUrMTQxMzcxOTIiLCIiLCIiLCI2LjY5NDk1NDA4RS00NCIpOworICBtYXRodGVzdCgyNDMsZGVmLCI0MTc2MTM5MjguIiwiLTkyNTIxMy4yMTYiLCI0MTY2ODg3MTUiLCI0MTg1MzkxNDEiLCItMy44NjM4MTkyNUUrMTQiLCItNDUxLjM3MDQ3NCIsIi00NTEiLCIzNDI3NjcuNTg0IiwiOC4zODQzMDA4NUUtNzk3NjA1NCIpOworICBtYXRodGVzdCgyNDQsZGVmLCIyMy44MzIwMzA5IiwiLTUwMDc0OTk2LjEiLCItNTAwNzQ5NzIuMyIsIjUwMDc1MDE5LjkiLCItMS4xOTMzODg4NUUrOSIsIi00Ljc1OTI2NzY1RS03IiwiMCIsIjIzLjgzMjAzMDkiLCI1LjgxNDY2Mzg3RS02ODk2MTMzNSIpOworICBtYXRodGVzdCgyNDUsZGVmLCI0OTc4OTY3Ny43IiwiLTEzMTgyNzgxMkUrMTU2NDEyNTM0IiwiLTEuMzE4Mjc4MTJFKzE1NjQxMjU0MiIsIjEuMzE4Mjc4MTJFKzE1NjQxMjU0MiIsIi02LjU2MzY2NDI3RSsxNTY0MTI1NDkiLCItMy43NzY4NzIwNEUtMTU2NDEyNTM1IiwiMCIsIjQ5Nzg5Njc3LjciLCIyLjAwODQ0ODQzRS04Iik7CisgIG1hdGh0ZXN0KDI0NixkZWYsIi04OTA3MTYzLjYxRS03NDE4NjcyNDYiLCI3NzM2NTEuMjg4RS00NzIwMzMyODIiLCI3LjczNjUxMjg4RS00NzIwMzMyNzciLCItNy43MzY1MTI4OEUtNDcyMDMzMjc3IiwiIiwiLTEuMTUxMzE1MDRFLTI2OTgzMzk2MyIsIjAiLCItOC45MDcxNjM2MUUtNzQxODY3MjQwIiwiIik7CisgIG1hdGh0ZXN0KDI0NyxkZWYsIjUxNDAyMTcxMS5FKzQ2MzUzNjY0NiIsIjYxNzQ0MTY1OS4iLCI1LjE0MDIxNzExRSs0NjM1MzY2NTQiLCI1LjE0MDIxNzExRSs0NjM1MzY2NTQiLCIzLjE3Mzc4NDE4RSs0NjM1MzY2NjMiLCI4LjMyNTAyNDc4RSs0NjM1MzY2NDUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjQ4LGRlZiwiOTk4MTc1NzUwIiwiMi4zOTI4NTQ3OCIsIjk5ODE3NTc1MiIsIjk5ODE3NTc0OCIsIjIuMzg4NDg5NjFFKzkiLCI0MTcxNDg0ODciLCI0MTcxNDg0ODYiLCIxLjMwNTEzNjkyIiwiOS45NjM1NDgyOEUrMTciKTsKKyAgbWF0aHRlc3QoMjQ5LGRlZiwiODczNTc1NDI2LiIsIjY0Nzg1My4xNTJFKzQ5NzQ1MDc4MSIsIjYuNDc4NTMxNTJFKzQ5NzQ1MDc4NiIsIi02LjQ3ODUzMTUyRSs0OTc0NTA3ODYiLCI1LjY1OTQ4NTkzRSs0OTc0NTA3OTUiLCIxLjM0ODQxNThFLTQ5NzQ1MDc3OCIsIjAiLCI4NzM1NzU0MjYiLCI0LjQ0NDI5MDY0RSs1MyIpOworICBtYXRodGVzdCgyNTAsZGVmLCI0MzUyNjI2LjgiLCItMTMwMzM4MDQ4LkUtNzQ0NTYwOTExIiwiNDM1MjYyNi44MCIsIjQzNTI2MjYuODAiLCItNS42NzMxMjg4MUUtNzQ0NTYwODk3IiwiLTMuMzM5NDkwNTVFKzc0NDU2MDkwOSIsIiIsIiIsIjIuMjk3NDYzMjJFLTciKTsKKyAgbWF0aHRlc3QoMjUxLGRlZiwiNDM3LjI4Njk2MCIsIjcuMzc1NjA4MzUiLCI0NDQuNjYyNTY4IiwiNDI5LjkxMTM1MiIsIjMyMjUuMjU3MzUiLCI1OS4yODgyNTY1IiwiNTkiLCIyLjEyNjA2NzM1IiwiMy4wNTc0OTQ1MkUrMTgiKTsKKyAgbWF0aHRlc3QoMjUyLGRlZiwiODQ5ODI4MC40NUUrMjIwNTExNTIyIiwiNTg4NjE3NjEyIiwiOC40OTgyODA0NUUrMjIwNTExNTI4IiwiOC40OTgyODA0NUUrMjIwNTExNTI4IiwiNS4wMDIyMzc1NEUrMjIwNTExNTM3IiwiMS40NDM3NjkzMUUrMjIwNTExNTIwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI1MyxkZWYsIi01MzIwMzg3Ljc3IiwiLTc2NzMyMzcuNDYiLCItMTI5OTM2MjUuMiIsIjIzNTI4NDkuNjkiLCI0LjA4MjQ1OTg3RSsxMyIsIjAuNjkzMzY5MzYzIiwiMCIsIi01MzIwMzg3Ljc3IiwiLTEuMzAxMTM3NDVFLTUxNjA5NzU3Iik7CisgIG1hdGh0ZXN0KDI1NCxkZWYsIjU4NzY1NTM3NSIsIi00Ljk3NDgzNjYiLCI1ODc2NTUzNzAiLCI1ODc2NTUzODAiLCItMi45MjM0ODk0N0UrOSIsIi0xMTgxMjU1NjMiLCItMTE4MTI1NTYzIiwiMC43OTE5OTQyIiwiMS40MjY4NzY2N0UtNDQiKTsKKyAgbWF0aHRlc3QoMjU1LGRlZiwiMTI2NjA5OC40NCIsIi0yNjYxLjY0OTA0RS02NDI2MDExNDIiLCIxMjY2MDk4LjQ0IiwiMTI2NjA5OC40NCIsIi0zLjM2OTkwOTcwRS02NDI2MDExMzMiLCItNC43NTY4MTk2M0UrNjQyNjAxMTQ0IiwiIiwiIiwiNC45MjcxNzAzNkUtMTkiKTsKKyAgbWF0aHRlc3QoMjU2LGRlZiwiMy45MjczNzQ2M0UrNDgyODczNDgzIiwiLTY4NS41MjI3NDciLCIzLjkyNzM3NDYzRSs0ODI4NzM0ODMiLCIzLjkyNzM3NDYzRSs0ODI4NzM0ODMiLCItMi42OTIzMDQ2NEUrNDgyODczNDg2IiwiLTUuNzI5MDIxNjFFKzQ4Mjg3MzQ4MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNTcsZGVmLCIyMjgyNjQ5NC4xIiwiOTg2MTg5NDc0LiIsIjEuMDA5MDE1OTdFKzkiLCItOTYzMzYyOTgwIiwiMi4yNTExMjQ4MkUrMTYiLCIwLjAyMzE0NjE1NDciLCIwIiwiMjI4MjY0OTQuMSIsIiIpOworICBtYXRodGVzdCgyNTgsZGVmLCItNjQ3MzQyLjM4MCIsIi00OTg4MTYzODYiLCItNDk5NDYzNzI4IiwiNDk4MTY5MDQ0IiwiMy4yMjkwNDk4NkUrMTQiLCIwLjAwMTI5Nzc1Njg1IiwiMCIsIi02NDczNDIuMzgwIiwiIik7CisgIG1hdGh0ZXN0KDI1OSxkZWYsIjM5MzA5MjM3My4iLCItMjUuNzIyNjgyMiIsIjM5MzA5MjM0NyIsIjM5MzA5MjM5OSIsIi0xLjAxMTEzOTAyRSsxMCIsIi0xNTI4MTkzNS42IiwiLTE1MjgxOTM1IiwiMTUuNTkzOTQzMCIsIjMuNDkyNTI4MzlFLTIyNCIpOworICBtYXRodGVzdCgyNjAsZGVmLCIyLjk2MjUzNDkyIiwiMjAuNzQ0NDg4OCIsIjIzLjcwNzAyMzciLCItMTcuNzgxOTUzOSIsIjYxLjQ1NjI3MjUiLCIwLjE0MjgxMDY5OCIsIjAiLCIyLjk2MjUzNDkyIiwiOC4wMzQwMjI0NkUrOSIpOworICBtYXRodGVzdCgyNjEsZGVmLCI1MzU1My4zNzUwRSszODY5NTU0MjMiLCItNzMyNDcwODc2IiwiNS4zNTUzMzc1MEUrMzg2OTU1NDI3IiwiNS4zNTUzMzc1MEUrMzg2OTU1NDI3IiwiLTMuOTIyNjI4NzVFKzM4Njk1NTQzNiIsIi03LjMxMTMzMTY1RSszODY5NTU0MTgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjYyLGRlZiwiLTY5NjQ1MS40MDZFLTI4NjUzNTkxNyIsIi03MzA4NjA5MC44IiwiLTczMDg2MDkwLjgiLCI3MzA4NjA5MC44IiwiNS4wOTAwOTEwN0UtMjg2NTM1OTA0IiwiOS41MjkxOTIxOUUtMjg2NTM1OTIwIiwiMCIsIi02Ljk2NDUxNDA2RS0yODY1MzU5MTIiLCIiKTsKKyAgbWF0aHRlc3QoMjYzLGRlZiwiMTU1MS4yOTk1NyIsIi01ODAzNTg2MjIuRSsxMTcwMTcyNjUiLCItNS44MDM1ODYyMkUrMTE3MDE3MjczIiwiNS44MDM1ODYyMkUrMTE3MDE3MjczIiwiLTkuMDAzMTAwODFFKzExNzAxNzI3NiIsIi0yLjY3MzAwMTY4RS0xMTcwMTcyNzEiLCIwIiwiMTU1MS4yOTk1NyIsIjcuMTc1MDY3MTFFLTIwIik7CisgIG1hdGh0ZXN0KDI2NCxkZWYsIi0yMDUxMjMwMDYuRS0yMTM3NTI3OTkiLCItNzg2Mzg0NjguNiIsIi03ODYzODQ2OC42IiwiNzg2Mzg0NjguNiIsIjEuNjEzMDU1OTFFLTIxMzc1Mjc4MyIsIjIuNjA4NDMwODNFLTIxMzc1Mjc5OSIsIjAiLCItMi4wNTEyMzAwNkUtMjEzNzUyNzkxIiwiIik7CisgIG1hdGh0ZXN0KDI2NSxkZWYsIjc3NjMyLjgwNzMiLCItMzM3ODU0Mi44OEUrNjc3NDQxMzE5IiwiLTMuMzc4NTQyODhFKzY3NzQ0MTMyNSIsIjMuMzc4NTQyODhFKzY3NzQ0MTMyNSIsIi0yLjYyMjg1NzY4RSs2Nzc0NDEzMzAiLCItMi4yOTc4MTkyMUUtNjc3NDQxMzIxIiwiMCIsIjc3NjMyLjgwNzMiLCIyLjEzNzI5MzMxRS0xNSIpOworICBtYXRodGVzdCgyNjYsZGVmLCIzMDY4OTk5LjM3IiwiMi4yMTAwNjIxMiIsIjMwNjkwMDEuNTgiLCIzMDY4OTk3LjE2IiwiNjc4MjY3OS4yNSIsIjEzODg2NDguNDYiLCIxMzg4NjQ4IiwiMS4wMjcxODYyNCIsIjkuNDE4NzU3MTNFKzEyIik7CisgIG1hdGh0ZXN0KDI2NyxkZWYsIjYyNTUyNDI3NC4iLCI1NS4yNDY4NjI0IiwiNjI1NTI0MzI5IiwiNjI1NTI0MjE5IiwiMy40NTU4MjUzNUUrMTAiLCIxMTMyMjM0OS4zIiwiMTEzMjIzNDkiLCIxNi43NTIyMjI0IiwiNi4yMTQ4Mjk0M0UrNDgzIik7CisgIG1hdGh0ZXN0KDI2OCxkZWYsIjYxMjY5MTM0LjkiLCItODQ1NzYxMzAzLiIsIi03ODQ0OTIxNjgiLCI5MDcwMzA0MzgiLCItNS4xODE5MDYzNEUrMTYiLCItMC4wNzI0NDI1ODQ4IiwiMCIsIjYxMjY5MTM0LjkiLCIiKTsKKyAgbWF0aHRlc3QoMjY5LGRlZiwiLTI4NDAuMTIwOTkiLCItMjg1Ni43NjczMUUtODI3NDM2NTAiLCItMjg0MC4xMjA5OSIsIi0yODQwLjEyMDk5IiwiOC4xMTM1NjQ4MEUtODI3NDM2NDQiLCI5Ljk0MTczMDIyRSs4Mjc0MzY0OSIsIiIsIiIsIi00LjM2NTA1MjU0RS0xMSIpOworICBtYXRodGVzdCgyNzAsZGVmLCI4Ljk1Mzg3ODEiLCItNy41NjYwMzM5MSIsIjEuMzg3ODQ0MTkiLCIxNi41MTk5MTIwIiwiLTY3Ljc0NTM0NTMiLCItMS4xODM0MzA4NyIsIi0xIiwiMS4zODc4NDQxOSIsIjIuNDIwNTMwNjFFLTgiKTsKKyAgbWF0aHRlc3QoMjcxLGRlZiwiLTU2MjMzNTQ3LjIiLCI1MDk3NTI1MzAiLCI0NTM1MTg5ODMiLCItNTY1OTg2MDc3IiwiLTIuODY2NTE5MzBFKzE2IiwiLTAuMTEwMzE1Mzg2IiwiMCIsIi01NjIzMzU0Ny4yIiwiIik7CisgIG1hdGh0ZXN0KDI3MixkZWYsIi0zMTY3LjQ3ODUzRS04NTQ4NTk0OTciLCItMTEwODUyMTE1IiwiLTExMDg1MjExNSIsIjExMDg1MjExNSIsIjMuNTExMjE2OTRFLTg1NDg1OTQ4NiIsIjIuODU3MzkxMTZFLTg1NDg1OTUwMiIsIjAiLCItMy4xNjc0Nzg1M0UtODU0ODU5NDk0IiwiIik7CisgIG1hdGh0ZXN0KDI3MyxkZWYsIi01NjUyLjUyMDkyIiwiLTYzMjI0MzI0NC4iLCItNjMyMjQ4ODk3IiwiNjMyMjM3NTkyIiwiMy41NzM3NjgxNkUrMTIiLCIwLjAwMDAwODk0MDQyMTIzIiwiMCIsIi01NjUyLjUyMDkyIiwiIik7CisgIG1hdGh0ZXN0KDI3NCxkZWYsIi05NDYuMDA5OTI4IiwiODIwMDkwLjY2RS01ODkyNzgwMTUiLCItOTQ2LjAwOTkyOCIsIi05NDYuMDA5OTI4IiwiLTcuNzU4MTM5MDZFLTU4OTI3ODAwNyIsIi0xLjE1MzU0MzExRSs1ODkyNzgwMTIiLCIiLCIiLCI2LjQxNDU0MDUzRSsyMyIpOworICBtYXRodGVzdCgyNzUsZGVmLCItMzY3Ljc1Nzc1OCIsIi05NTkuNjI2MDE2IiwiLTEzMjcuMzgzNzciLCI1OTEuODY4MjU4IiwiMzUyOTA5LjkxMiIsIjAuMzgzMjMwMjkyIiwiMCIsIi0zNjcuNzU3NzU4IiwiMS4xNDk4MjE5OUUtMjQ2MyIpOworICBtYXRodGVzdCgyNzYsZGVmLCI4MDk5MjY3MjEuRS03NDQ2MTE1NTQiLCItNjcuNjU2MDU0OSIsIi02Ny42NTYwNTQ5IiwiNjcuNjU2MDU0OSIsIi01LjQ3OTY0NDY3RS03NDQ2MTE1NDQiLCItMS4xOTcxMjM3OEUtNzQ0NjExNTQ3IiwiMCIsIjguMDk5MjY3MjFFLTc0NDYxMTU0NiIsIiIpOworICBtYXRodGVzdCgyNzcsZGVmLCItMTcyNS4wODU1NSIsIjc1NTg2LjMwMzEiLCI3Mzg2MS4yMTc2IiwiLTc3MzExLjM4ODciLCItMTMwMzkyODM5IiwiLTAuMDIyODIyNzI2OSIsIjAiLCItMTcyNS4wODU1NSIsIjMuNzA1NDA1ODdFKzI0NDY1NyIpOworICBtYXRodGVzdCgyNzgsZGVmLCIyNjU5Ljg0MTkxRSsyOTMxNDQ5MiIsIi03NDM3Mi40NTUxRSs1MTgxOTY2ODAiLCItNy40MzcyNDU1MUUrNTE4MTk2Njg0IiwiNy40MzcyNDU1MUUrNTE4MTk2Njg0IiwiLTEuOTc4MTg5NzNFKzU0NzUxMTE4MCIsIi0zLjU3NjM4MDRFLTQ4ODg4MjE5MCIsIjAiLCIyLjY1OTg0MTkxRSsyOTMxNDQ5NSIsIjEuMDYxNzE4MTFFLTIwNTIwMTQ2OCIpOworICBtYXRodGVzdCgyNzksZGVmLCItOTEuMTQzMTExMyIsIjEyMTQ3NTA3LjAiLCIxMjE0NzQxNS45IiwiLTEyMTQ3NTk4LjEiLCItMS4xMDcxNjE1OEUrOSIsIi0wLjAwMDAwNzUwMzAzMDE1IiwiMCIsIi05MS4xNDMxMTEzIiwiLTEuNTI0MTcwMDZFKzIzODA1NzU5Iik7CisgIG1hdGh0ZXN0KDI4MCxkZWYsIi0xMTM2Nzc4LjkxRSs2OTc3ODM4NzgiLCItODAxNTUyNTY5LiIsIi0xLjEzNjc3ODkxRSs2OTc3ODM4ODQiLCItMS4xMzY3Nzg5MUUrNjk3NzgzODg0IiwiOS4xMTE4ODA1NkUrNjk3NzgzODkyIiwiMS40MTgyMjEyOEUrNjk3NzgzODc1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI4MSxkZWYsIjczMTIzNzczLjBFKzQzMzMzNDE0OSIsIjYzLjM1NDg5MzAiLCI3LjMxMjM3NzMwRSs0MzMzMzQxNTYiLCI3LjMxMjM3NzMwRSs0MzMzMzQxNTYiLCI0LjYzMjc0ODgxRSs0MzMzMzQxNTgiLCIxLjE1NDE5Mjk4RSs0MzMzMzQxNTUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjgyLGRlZiwiLTk3NjU0ODQuOCIsIjc5NzkuOTA4MDJFLTIzNDAyOTcxNSIsIi05NzY1NDg0LjgwIiwiLTk3NjU0ODQuODAiLCItNy43OTI3NjcwNUUtMjM0MDI5NzA1IiwiLTEuMjIzNzU5MDdFKzIzNDAyOTcxOCIsIiIsIiIsIjguMjcwODU2MTRFKzU1Iik7CisgIG1hdGh0ZXN0KDI4MyxkZWYsIi02OTUwMTAyODgiLCItOC4yNjU4MjgyMCIsIi02OTUwMTAyOTYiLCItNjk1MDEwMjgwIiwiNS43NDQ4MzU2NEUrOSIsIjg0MDgyMzUzLjQiLCI4NDA4MjM1MyIsIi0zLjQ1MDI0NTQwIiwiMS44MzY4MzQ5NUUtNzEiKTsKKyAgbWF0aHRlc3QoMjg0LGRlZiwiMjM5NzU2NDMuM0UtMTU1OTU1MjY0IiwiLTUwNTU0Ny42OTJFKzEzNzI1ODk0OCIsIi01LjA1NTQ3NjkyRSsxMzcyNTg5NTMiLCI1LjA1NTQ3NjkyRSsxMzcyNTg5NTMiLCItMS4yMTIwODMxMUUtMTg2OTYzMDMiLCItNC43NDI1MDg3RS0yOTMyMTQyMTEiLCIwIiwiMi4zOTc1NjQzM0UtMTU1OTU1MjU3IiwiMS4yNjIyNTk1MkUrNzc5Nzc2MjgzIik7CisgIG1hdGh0ZXN0KDI4NSxkZWYsIjI4NjIuOTU5MjEiLCItMzI2MDEyNDguNkUtNjA1ODYxMzMzIiwiMjg2Mi45NTkyMSIsIjI4NjIuOTU5MjEiLCItOS4zMzM2MDQ0OUUtNjA1ODYxMzIzIiwiLTguNzgxNzQ3MTJFKzYwNTg2MTMyOCIsIiIsIiIsIjQuMjYxNDIxNzVFLTExIik7CisgIG1hdGh0ZXN0KDI4NixkZWYsIi0xMy4xMzM1MThFKzI0NjA5MDUxNiIsIi04LjcxMjY5OTI1RS05NDUwOTIxMDgiLCItMS4zMTMzNTE4MEUrMjQ2MDkwNTE3IiwiLTEuMzEzMzUxODBFKzI0NjA5MDUxNyIsIjEuMTQ0MjgzOTJFLTY5OTAwMTU5MCIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyODcsZGVmLCItMzQ2NzEuMjIzMiIsIjgxNzcxMC43NjIiLCI3ODMwMzkuNTM5IiwiLTg1MjM4MS45ODUiLCItMi44MzUxMDMyM0UrMTAiLCItMC4wNDI0MDAzNTA4IiwiMCIsIi0zNDY3MS4yMjMyIiwiLTUuMzA3ODg4MjhFKzM3MTIzODIiKTsKKyAgbWF0aHRlc3QoMjg4LGRlZiwiLTIyNDY0NzY5IiwiNjIuNDM2NjA2MCIsIi0yMjQ2NDcwNi42IiwiLTIyNDY0ODMxLjQiLCItMS40MDI2MjM5M0UrOSIsIi0zNTk4MDEuMjUyIiwiLTM1OTgwMSIsIi0xNS43MjQ1OTQwIiwiNi4yMTA0MjUzNkUrNDU1Iik7CisgIG1hdGh0ZXN0KDI4OSxkZWYsIi05NDU4LjYwODg3RS01NjMwNTE5NjMiLCI1Njc2MDU2LjAxIiwiNTY3NjA1Ni4wMSIsIi01Njc2MDU2LjAxIiwiLTUuMzY4NzU5MzdFLTU2MzA1MTk1MyIsIi0xLjY2NjQwNTEzRS01NjMwNTE5NjYiLCIwIiwiLTkuNDU4NjA4ODdFLTU2MzA1MTk2MCIsIiIpOworICBtYXRodGVzdCgyOTAsZGVmLCItNTkxLjkyNDEyM0UtOTUzMzE4NzQiLCItMTM0LjU5NjE4OCIsIi0xMzQuNTk2MTg4IiwiMTM0LjU5NjE4OCIsIjcuOTY3MDczMDVFLTk1MzMxODcwIiwiNC4zOTc3Nzc3N0UtOTUzMzE4NzQiLCIwIiwiLTUuOTE5MjQxMjNFLTk1MzMxODcyIiwiIik7CisgIG1hdGh0ZXN0KDI5MSxkZWYsIi0xODI1NjYwODUuRSs2ODg3MDY0NiIsIi05NjAzNDU5OTMuIiwiLTEuODI1NjYwODVFKzY4ODcwNjU0IiwiLTEuODI1NjYwODVFKzY4ODcwNjU0IiwiMS43NTMyNjYwOEUrNjg4NzA2NjMiLCIxLjkwMTA0NDlFKzY4ODcwNjQ1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI5MixkZWYsIjgyMzIuNTQ4OTMiLCItOTk4MjIwMDRFKzg5MTk3OTg0NSIsIi05Ljk4MjIwMDQwRSs4OTE5Nzk4NTIiLCI5Ljk4MjIwMDQwRSs4OTE5Nzk4NTIiLCItOC4yMTc4OTUzMkUrODkxOTc5ODU2IiwiLTguMjQ3MjI4NjdFLTg5MTk3OTg1MCIsIjAiLCI4MjMyLjU0ODkzIiwiNi45OTI4OTE1NkUtNDAiKTsKKyAgbWF0aHRlc3QoMjkzLGRlZiwiLTQzMzYuOTQzMTciLCItODE5MzczLjYwMUUrNTYzMjMzNDMwIiwiLTguMTkzNzM2MDFFKzU2MzIzMzQzNSIsIjguMTkzNzM2MDFFKzU2MzIzMzQzNSIsIjMuNTUzNTc2NzRFKzU2MzIzMzQzOSIsIjUuMjkyOTk4NDFFLTU2MzIzMzQzMyIsIjAiLCItNDMzNi45NDMxNyIsIjcuOTg5Njk0MDVFLTMwIik7CisgIG1hdGh0ZXN0KDI5NCxkZWYsIi0yLjA5MDQ0MzYyRS04NzY1Mjc5MDgiLCItNjUxNTQ2My4zMyIsIi02NTE1NDYzLjMzIiwiNjUxNTQ2My4zMyIsIjEuMzYyMDIwODdFLTg3NjUyNzkwMSIsIjMuMjA4NDM0MzNFLTg3NjUyNzkxNSIsIjAiLCItMi4wOTA0NDM2MkUtODc2NTI3OTA4IiwiIik7CisgIG1hdGh0ZXN0KDI5NSxkZWYsIi0xOTQzNDMuMzQ0IiwiMS45NTkyOTk3NyIsIi0xOTQzNDEuMzg1IiwiLTE5NDM0NS4zMDMiLCItMzgwNzc2Ljg2OSIsIi05OTE5MC4yMDQxIiwiLTk5MTkwIiwiLTAuMzk5ODEzNzAiLCIzLjc3NjkzMzU0RSsxMCIpOworICBtYXRodGVzdCgyOTYsZGVmLCItMzI2MDAyLjkyNyIsIjQyMTUuOTkwMzAiLCItMzIxNzg2LjkzNyIsIi0zMzAyMTguOTE3IiwiLTEuMzc0NDI1MThFKzkiLCItNzcuMzI1MzUwMyIsIi03NyIsIi0xMzcxLjY3MzkwIiwiNS41MTg3NTgyMUUrMjMyNDMiKTsKKyAgbWF0aHRlc3QoMjk3LGRlZiwiLTEyMDM3Ljg1OTBFKzg3NjQyOTA0NCIsIjMxNC44MTgyNyIsIi0xLjIwMzc4NTkwRSs4NzY0MjkwNDgiLCItMS4yMDM3ODU5MEUrODc2NDI5MDQ4IiwiLTMuNzg5NzM3OTRFKzg3NjQyOTA1MCIsIi0zLjgyMzc0ODU0RSs4NzY0MjkwNDUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjk4LGRlZiwiMjEwMzYwNDUuNEUtMTYyODA0ODA5IiwiLTkxLjcxNDkyMTkiLCItOTEuNzE0OTIxOSIsIjkxLjcxNDkyMTkiLCItMS45MjkzMTkyNkUtMTYyODA0ODAwIiwiLTIuMjkzNjMzOUUtMTYyODA0ODA0IiwiMCIsIjIuMTAzNjA0NTRFLTE2MjgwNDgwMiIsIiIpOworICBtYXRodGVzdCgyOTksZGVmLCItOTQ3MDE5LjUzNCIsIjk5MTYuMjkyODAiLCItOTM3MTAzLjI0MSIsIi05NTY5MzUuODI3IiwiLTkuMzkwOTIyOTlFKzkiLCItOTUuNTAxMzY4NiIsIi05NSIsIi00OTcxLjcxODAwIiwiMy43NjAyOTAyMkUrNTkyNjEiKTsKKyAgbWF0aHRlc3QoMzAwLGRlZiwiLTU5ODUuODQxMzYiLCItMTIuNDA5MDE4NEUtMTIzNjQyMDQiLCItNTk4NS44NDEzNiIsIi01OTg1Ljg0MTM2IiwiNy40Mjc4NDE1NkUtMTIzNjQyMDAiLCI0LjgyMzc4MzEzRSsxMjM2NDIwNiIsIiIsIiIsIi0wLjAwMDE2NzA2MDg5MyIpOworICBtYXRodGVzdCgzMDEsZGVmLCItODUzNDQzNzkuNCIsIi02NzgzLjA4NjY5RSsyMTg4NDAyMTUiLCItNi43ODMwODY2OUUrMjE4ODQwMjE4IiwiNi43ODMwODY2OUUrMjE4ODQwMjE4IiwiNS43ODg5ODMyNEUrMjE4ODQwMjI2IiwiMS4yNTgxOTM4NUUtMjE4ODQwMjExIiwiMCIsIi04NTM0NDM3OS40IiwiLTMuMDMyMzIzNDdFLTU2Iik7CisgIG1hdGh0ZXN0KDMwMixkZWYsIi05NC4xOTQ3MDcwRS05MzgyNTcxMDMiLCIxNTAwMy4yNDAiLCIxNTAwMy4yNDAwIiwiLTE1MDAzLjI0MDAiLCItMS40MTMyMjU4MEUtOTM4MjU3MDk3IiwiLTYuMjc4MjkxMDJFLTkzODI1NzEwNiIsIjAiLCItOS40MTk0NzA3MEUtOTM4MjU3MTAyIiwiIik7CisgIG1hdGh0ZXN0KDMwMyxkZWYsIi00ODQ2MjMzLjYiLCItODI4OTc2OS43NiIsIi0xMzEzNjAwMy40IiwiMzQ0MzUzNi4xNiIsIjQuMDE3NDE2MDdFKzEzIiwiMC41ODQ2MDQxMjUiLCIwIiwiLTQ4NDYyMzMuNiIsIjQuMjUwNzc1MjRFLTU1NDIwNDY1Iik7CisgIG1hdGh0ZXN0KDMwNCxkZWYsIjY3LjkxNDcxOTgiLCItMTA4MzczNjQ1LkUrMjkxNzE1NDE1IiwiLTEuMDgzNzM2NDVFKzI5MTcxNTQyMyIsIjEuMDgzNzM2NDVFKzI5MTcxNTQyMyIsIi03LjM2MDE2NTczRSsyOTE3MTU0MjQiLCItNi4yNjY3MTkxNkUtMjkxNzE1NDIyIiwiMCIsIjY3LjkxNDcxOTgiLCIwLjAxNDcyNDM0ODUiKTsKKyAgbWF0aHRlc3QoMzA1LGRlZiwiMTk1OC43Nzk5NCIsIjUuNTcyODUxMzdFKzY5MDEzNzgyNiIsIjUuNTcyODUxMzdFKzY5MDEzNzgyNiIsIi01LjU3Mjg1MTM3RSs2OTAxMzc4MjYiLCIxLjA5MTU5ODk1RSs2OTAxMzc4MzAiLCIzLjUxNDg2MTI2RS02OTAxMzc4MjQiLCIwIiwiMTk1OC43Nzk5NCIsIjUuNjQ4MjQ5NjhFKzE5Iik7CisgIG1hdGh0ZXN0KDMwNixkZWYsIjIyNzgwMzE0LjMiLCI4ODA1Mjc5LjgzIiwiMzE1ODU1OTQuMSIsIjEzOTc1MDM0LjUiLCIyLjAwNTg3MDQyRSsxNCIsIjIuNTg3MTE5ODYiLCIyIiwiNTE2OTc1NC42NCIsIjIuMzkxMzIxNjlFKzY0Nzg1MzczIik7CisgIG1hdGh0ZXN0KDMwNyxkZWYsIjU5Njc0NS4xODQiLCIxOTc2MDI0MjMuIiwiMTk4MTk5MTY4IiwiLTE5NzAwNTY3OCIsIjEuMTc5MTgyOTRFKzE0IiwiMC4wMDMwMTk5Mjg0OCIsIjAiLCI1OTY3NDUuMTg0IiwiIik7CisgIG1hdGh0ZXN0KDMwOCxkZWYsIjE3MS4zNDA0OTciLCItNDgwMzQ5LjkyNCIsIi00ODAxNzguNTg0IiwiNDgwNTIxLjI2NCIsIi04MjMwMzM5NC43IiwiLTAuMDAwMzU2Njk5MzMyIiwiMCIsIjE3MS4zNDA0OTciLCIyLjE3OTE0MTAyRS0xMDczMDM1Iik7CisgIG1hdGh0ZXN0KDMwOSxkZWYsIjgyNC42NTU1NSIsIi0zNzkyODcuNTMwIiwiLTM3ODQ2Mi44NzUiLCIzODAxMTIuMTg2IiwiLTMxMjc4MTU2NyIsIi0wLjAwMjE3NDIyMjY4IiwiMCIsIjgyNC42NTU1NSIsIjYuMzU4MjkyNTZFLTExMDYxMDgiKTsKKyAgbWF0aHRlc3QoMzEwLGRlZiwiMTkuMzE2NDAzMSIsIi05MjA3NjQ0LjI0RSs5ODgxMTUwNjkiLCItOS4yMDc2NDQyNEUrOTg4MTE1MDc1IiwiOS4yMDc2NDQyNEUrOTg4MTE1MDc1IiwiLTEuNzc4NTg1NjhFKzk4ODExNTA3NyIsIi0yLjA5Nzg2NTkyRS05ODgxMTUwNzUiLCIwIiwiMTkuMzE2NDAzMSIsIjIuNjcwOTM3MTFFLTEyIik7CisgIG1hdGh0ZXN0KDMxMSxkZWYsIi0zMTIzLjc3NjQ2RSsxNzc4MTQyNjUiLCI5NzMyODQ0MzUuRSszODMyNTYxMTIiLCI5LjczMjg0NDM1RSszODMyNTYxMjAiLCItOS43MzI4NDQzNUUrMzgzMjU2MTIwIiwiLTMuMDQwMzIzMDFFKzU2MTA3MDM4OSIsIi0zLjIwOTUyMDYyRS0yMDU0NDE4NTMiLCIwIiwiLTMuMTIzNzc2NDZFKzE3NzgxNDI2OCIsIiIpOworICBtYXRodGVzdCgzMTIsZGVmLCItODUwLjEyMzkxNUUrNjYyOTU1MzA5IiwiNjc3NDg0OS44MUUtODQ2NTc2ODY1IiwiLTguNTAxMjM5MTVFKzY2Mjk1NTMxMSIsIi04LjUwMTIzOTE1RSs2NjI5NTUzMTEiLCItNS43NTk0NjE4NEUtMTgzNjIxNTQ3IiwiIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMxMyxkZWYsIi0yMzM0OS43NzI0IiwiMjkyMS4zNTM1NSIsIi0yMDQyOC40MTg5IiwiLTI2MjcxLjEyNjAiLCItNjgyMTI5NDAuNSIsIi03Ljk5Mjc5MjM4IiwiLTciLCItMjkwMC4yOTc1NSIsIi01LjY3MDU1NDZFKzEyNzU5Iik7CisgIG1hdGh0ZXN0KDMxNCxkZWYsIjE4ODg2NjUzLjMiLCI1Njg3MDc0NzYuIiwiNTg3NTk0MTI5IiwiLTU0OTgyMDgyMyIsIjEuMDc0MDk4MDlFKzE2IiwiMC4wMzMyMDk3ODU1IiwiMCIsIjE4ODg2NjUzLjMiLCIiKTsKKyAgbWF0aHRlc3QoMzE1LGRlZiwiLTkwNTUyODE4LjAiLCItNTQyLjAzNTYzRS05ODY2MDY4NzgiLCItOTA1NTI4MTguMCIsIi05MDU1MjgxOC4wIiwiNC45MDgyODUzOEUtOTg2NjA2ODY4IiwiMS42NzA2MDYzOEUrOTg2NjA2ODgzIiwiIiwiIiwiLTEuNjQyNDQyNDFFLTQwIik7CisgIG1hdGh0ZXN0KDMxNixkZWYsIjQxNTAxMTI2LjFFKzc5MTgzODc2NSIsIi02OS42NjUxNjc1RSsyMDQyNjgzNDgiLCI0LjE1MDExMjYxRSs3OTE4Mzg3NzIiLCI0LjE1MDExMjYxRSs3OTE4Mzg3NzIiLCItMi44OTExODI5MEUrOTk2MTA3MTIyIiwiLTUuOTU3MjI3NjNFKzU4NzU3MDQyMiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMTcsZGVmLCI3Njc4MzE5My4zRS0yNzE0ODgxNTQiLCIzNzY1LjAxODI5RS01MjAzNDYwMDMiLCI3LjY3ODMxOTMzRS0yNzE0ODgxNDciLCI3LjY3ODMxOTMzRS0yNzE0ODgxNDciLCIyLjg5MDkwMTI3RS03OTE4MzQxNDYiLCIyLjAzOTM4NDM0RSsyNDg4NTc4NTMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzE4LGRlZiwiNDE5Mi45OTI4IiwiOTg3ODIyMDA3RS0xNDY1NjA5ODkiLCI0MTkyLjk5MjgwIiwiNDE5Mi45OTI4MCIsIjQuMTQxOTMwNTZFLTE0NjU2MDk3NyIsIjQuMjQ0Njg0NTRFKzE0NjU2MDk4MyIsIiIsIiIsIjEuNjc5NzM2NTNFKzM2Iik7CisgIG1hdGh0ZXN0KDMxOSxkZWYsIi04OTE4NDUuNjI5IiwiNDgyNzc5NTUuIiwiNDczODYxMDkuNCIsIi00OTE2OTgwMC42IiwiLTQuMzA1NjQ4MzFFKzEzIiwiLTAuMDE4NDczMTQ0MyIsIjAiLCItODkxODQ1LjYyOSIsIi02LjMyOTY0MTQ3RSsyODcyNjc4MTciKTsKKyAgbWF0aHRlc3QoMzIwLGRlZiwiMzM0LjkwMTE3NiIsIi03NjA5Mjk2LjU1RSs0NDczNDAyMjgiLCItNy42MDkyOTY1NUUrNDQ3MzQwMjM0IiwiNy42MDkyOTY1NUUrNDQ3MzQwMjM0IiwiLTIuNTQ4MzYyMzZFKzQ0NzM0MDIzNyIsIi00LjQwMTIxMDczRS00NDczNDAyMzMiLCIwIiwiMzM0LjkwMTE3NiIsIjYuMzE5MjY1NzVFLTIxIik7CisgIG1hdGh0ZXN0KDMyMSxkZWYsIjQuNDk4Njg2MzYiLCItMzQxODgwODk2RS00NDcyNTE4NzMiLCI0LjQ5ODY4NjM2IiwiNC40OTg2ODYzNiIsIi0xLjUzODAxNDkyRS00NDcyNTE4NjQiLCItMS4zMTU4NjM2M0UrNDQ3MjUxODY1IiwiIiwiIiwiMC4wMTA5ODM1NTMiKTsKKyAgbWF0aHRlc3QoMzIyLGRlZiwiODA3NjE1LjU4IiwiLTMxNDI4NjQ4MCIsIi0zMTM0Nzg4NjUiLCIzMTUwOTQwOTYiLCItMi41MzgyMjY1OEUrMTQiLCItMC4wMDI1Njk2Nzk2OCIsIjAiLCI4MDc2MTUuNTgiLCIiKTsKKyAgbWF0aHRlc3QoMzIzLGRlZiwiLTM3Ljc0NTc5NTQiLCI1MzI3Ny44MTI5RS04NTkyMjU1MzgiLCItMzcuNzQ1Nzk1NCIsIi0zNy43NDU3OTU0IiwiLTIuMDExMDEzNDNFLTg1OTIyNTUzMiIsIi03LjA4NDcxMTg4RSs4NTkyMjU1MzQiLCIiLCIiLCItNzY2MjAxMzQuMSIpOworICBtYXRodGVzdCgzMjQsZGVmLCItMjg2NzEwODEuIiwiOTguODgxOTYyMyIsIi0yODY3MDk4Mi4xIiwiLTI4NjcxMTc5LjkiLCItMi44MzUwNTI3NUUrOSIsIi0yODk5NTIuNTg5IiwiLTI4OTk1MiIsIi01OC4yNjcxOTA0IiwiLTEuOTM2MjU1NjZFKzczOCIpOworICBtYXRodGVzdCgzMjUsZGVmLCItODk3NTIuMjEwNkUtNDY5NDk2ODk2IiwiOTkuOTg3OTk2MSIsIjk5Ljk4Nzk5NjEiLCItOTkuOTg3OTk2MSIsIi04Ljk3NDE0MzY4RS00Njk0OTY4OTAiLCItOC45NzYyOTg1N0UtNDY5NDk2ODk0IiwiMCIsIi04Ljk3NTIyMTA2RS00Njk0OTY4OTIiLCIiKTsKKyAgbWF0aHRlc3QoMzI2LGRlZiwiLTQ5Nzk4MzU2N0UtMTM1MzgwNTIiLCIzOS40NTc4NzQyIiwiMzkuNDU3ODc0MiIsIi0zOS40NTc4NzQyIiwiLTEuOTY0OTM3MjlFLTEzNTM4MDQyIiwiLTEuMjYyMDYzODVFLTEzNTM4MDQ1IiwiMCIsIi00Ljk3OTgzNTY3RS0xMzUzODA0NCIsIi0xLjU1Mzc2NTQzRS01Mjc5ODM2ODkiKTsKKyAgbWF0aHRlc3QoMzI3LGRlZiwiODQ1NzM5MjIxRS02NTQyMDI1NjUiLCItMzMzMTMuMTU1MSIsIi0zMzMxMy4xNTUxIiwiMzMzMTMuMTU1MSIsIi0yLjgxNzQyNDE4RS02NTQyMDI1NTIiLCItMi41Mzg3NTQ0OUUtNjU0MjAyNTYxIiwiMCIsIjguNDU3MzkyMjFFLTY1NDIwMjU1NyIsIiIpOworICBtYXRodGVzdCgzMjgsZGVmLCI3NDIuMzMyMDY3RSs1Mzc4Mjc4NDMiLCItNDUzMi43MDAyM0UtODU1Mzg3NDE0IiwiNy40MjMzMjA2N0UrNTM3ODI3ODQ1IiwiNy40MjMzMjA2N0UrNTM3ODI3ODQ1IiwiLTMuMzY0NzY4NzNFLTMxNzU1OTU2NSIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMjksZGVmLCItODkzLjQ4NjU0IiwiNjcwMzg5OTYwIiwiNjcwMzg5MDY3IiwiLTY3MDM5MDg1MyIsIi01Ljk4OTg0NDA2RSsxMSIsIi0wLjAwMDAwMTMzMjc4NjI4IiwiMCIsIi04OTMuNDg2NTQiLCIiKTsKKyAgbWF0aHRlc3QoMzMwLGRlZiwiMS4zNzY5NzE2MiIsIi05MTUuNzM3NDc0RS0zNTE1Nzg3MjQiLCIxLjM3Njk3MTYyIiwiMS4zNzY5NzE2MiIsIi0xLjI2MDk0NDUxRS0zNTE1Nzg3MjEiLCItMS41MDM2NzUwOEUrMzUxNTc4NzIxIiwiIiwiIiwiMC4wNTYxOTIwNzg0Iik7CisgIG1hdGh0ZXN0KDMzMSxkZWYsIi02NS4yODM5ODA4RSs1NTAyODg0MDMiLCItMTIxMzg5LjMwNiIsIi02LjUyODM5ODA4RSs1NTAyODg0MDQiLCItNi41MjgzOTgwOEUrNTUwMjg4NDA0IiwiNy45MjQ3NzcxMkUrNTUwMjg4NDA5IiwiNS4zNzgwNjY4OUUrNTUwMjg4Mzk5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMzMixkZWYsIi0zMDM0NjYwMy5FKzM0NjA2NzM5MCIsIjc5MjY2MS41NDQiLCItMy4wMzQ2NjAzMEUrMzQ2MDY3Mzk3IiwiLTMuMDM0NjYwMzBFKzM0NjA2NzM5NyIsIi0yLjQwNTQ1ODUyRSszNDYwNjc0MDMiLCItMy44Mjg0NDM5NkUrMzQ2MDY3MzkxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMzMyxkZWYsIi02MTE3MC43MDY1IiwiLTQ1MzczMTEzMS4iLCItNDUzNzkyMzAyIiwiNDUzNjY5OTYwIiwiMi43NzU1MDUzOEUrMTMiLCIwLjAwMDEzNDgxNzA4MSIsIjAiLCItNjExNzAuNzA2NSIsIiIpOworICBtYXRodGVzdCgzMzQsZGVmLCI2NTY5LjUxMTMzIiwiMTMuODcwNjM1MUUrMzk5NDM0OTE0IiwiMS4zODcwNjM1MUUrMzk5NDM0OTE1IiwiLTEuMzg3MDYzNTFFKzM5OTQzNDkxNSIsIjkuMTEyMzI5NDRFKzM5OTQzNDkxOCIsIjQuNzM2MjcyOTFFLTM5OTQzNDkxMiIsIjAiLCI2NTY5LjUxMTMzIiwiNjU2OS41MTEzMyIpOworICBtYXRodGVzdCgzMzUsZGVmLCIzMDA3MDM5MjUuIiwiLTMxNTY3MzYuOCIsIjI5NzU0NzE4OCIsIjMwMzg2MDY2MiIsIi05LjQ5MjQzMTQ2RSsxNCIsIi05NS4yNTc4Mzg3IiwiLTk1IiwiODEzOTI5LjAiLCI0LjE4NjA5MTE0RS0yNjc2MzI1NiIpOworICBtYXRodGVzdCgzMzYsZGVmLCIxOTIxMzgyMTZFKzM1MzAxMTU5MiIsIi00NzMuMDgwNjMzIiwiMS45MjEzODIxNkUrMzUzMDExNjAwIiwiMS45MjEzODIxNkUrMzUzMDExNjAwIiwiLTkuMDg5Njg2ODhFKzM1MzAxMTYwMiIsIi00LjA2MTQyNjM3RSszNTMwMTE1OTciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzM3LGRlZiwiODYwNy42NDc5NCIsIi0zNDc0MC4zMzY3IiwiLTI2MTMyLjY4ODgiLCI0MzM0Ny45ODQ2IiwiLTI5OTAzMjU4OCIsIi0wLjI0Nzc3MDk5OSIsIjAiLCI4NjA3LjY0Nzk0IiwiMS4yOTYwNDUxOUUtMTM2Njk4Iik7CisgIG1hdGh0ZXN0KDMzOCxkZWYsIi02NzkxMy44MjQxIiwiLTkzODE1LjQyMjkiLCItMTYxNzI5LjI0NyIsIjI1OTAxLjU5ODgiLCI2LjM3MTM2NDEzRSs5IiwiMC43MjM5MDg5NDgiLCIwIiwiLTY3OTEzLjgyNDEiLCItNi45NjM1NTIwM0UtNDUzMzExIik7CisgIG1hdGh0ZXN0KDMzOSxkZWYsIjM0LjU1NTk0NTUiLCItOTk4Nzk5Mzk4LiIsIi05OTg3OTkzNjQiLCI5OTg3OTk0MzMiLCItMy40NTE0NDU3NkUrMTAiLCItMy40NTk3NDgzM0UtOCIsIjAiLCIzNC41NTU5NDU1IiwiIik7CisgIG1hdGh0ZXN0KDM0MCxkZWYsIjM4Nzk5NS4zMjgiLCI5OTAxOTk1NDMuRS0xMjQ2MjM2MDciLCIzODc5OTUuMzI4IiwiMzg3OTk1LjMyOCIsIjMuODQxOTI3OTZFLTEyNDYyMzU5MyIsIjMuOTE4MzU0OTVFKzEyNDYyMzYwMyIsIiIsIiIsIjcuNzMxNTIxMzhFKzU1Iik7CisgIG1hdGh0ZXN0KDM0MSxkZWYsIi00NzEuMDkxNjZFLTgzNTIxOTE5IiwiLTQ0MTIyMjM2OCIsIi00NDEyMjIzNjgiLCI0NDEyMjIzNjgiLCIyLjA3ODU2MTc4RS04MzUyMTkwOCIsIjEuMDY3Njk2NjlFLTgzNTIxOTI1IiwiMCIsIi00LjcxMDkxNjZFLTgzNTIxOTE3IiwiIik7CisgIG1hdGh0ZXN0KDM0MixkZWYsIi05NzgzNC4zODU4IiwiNzA3Nzk3ODkuOEUrNTAyMTY2MDY1IiwiNy4wNzc5Nzg5OEUrNTAyMTY2MDcyIiwiLTcuMDc3OTc4OThFKzUwMjE2NjA3MiIsIi02LjkyNDY5NzI2RSs1MDIxNjYwNzciLCItMS4zODIyMzYxN0UtNTAyMTY2MDY4IiwiMCIsIi05NzgzNC4zODU4IiwiLTguNTc5MDc4ODZFKzM0Iik7CisgIG1hdGh0ZXN0KDM0MyxkZWYsIjc3MzIzMzEuMDYiLCItOTUyNzE5LjQ4MkUrMTE1MzI1NTA1IiwiLTkuNTI3MTk0ODJFKzExNTMyNTUxMCIsIjkuNTI3MTk0ODJFKzExNTMyNTUxMCIsIi03LjM2Njc0MjQ0RSsxMTUzMjU1MTciLCItOC4xMTYwNjI3MUUtMTE1MzI1NTA1IiwiMCIsIjc3MzIzMzEuMDYiLCIxLjMwODg2NzI0RS02OSIpOworICBtYXRodGVzdCgzNDQsZGVmLCIyMy4yNzQ1NTQ3IiwiMi4yMzE5NDI0NUUtMjIxMDYyNTkyIiwiMjMuMjc0NTU0NyIsIjIzLjI3NDU1NDciLCI1LjE5NDc0NjY2RS0yMjEwNjI1OTEiLCIxLjA0Mjc5MzY4RSsyMjEwNjI1OTMiLCIiLCIiLCI1NDEuNzA0ODk2Iik7CisgIG1hdGh0ZXN0KDM0NSxkZWYsIjY3MS4wODMzNjNFLTIxODMyNDIwNSIsIi03ODcxNTAwMzEiLCItNzg3MTUwMDMxIiwiNzg3MTUwMDMxIiwiLTUuMjgyNDMyOTBFLTIxODMyNDE5NCIsIi04LjUyNTQ4MjI3RS0yMTgzMjQyMTIiLCIwIiwiNi43MTA4MzM2M0UtMjE4MzI0MjAzIiwiIik7CisgIG1hdGh0ZXN0KDM0NixkZWYsIjM2NTE2Ny44MCIsIi04MDI2My42NTE2IiwiMjg0OTA0LjE0OCIsIjQ0NTQzMS40NTIiLCItMi45MzA5NzAxMUUrMTAiLCItNC41NDk2MDM2MiIsIi00IiwiNDQxMTMuMTkzNiIsIjEuMjcwNTIyMjdFLTQ0NjQ2OCIpOworICBtYXRodGVzdCgzNDcsZGVmLCItMS40MzI5NzYwNEUtNjUxMjk3ODAiLCI1Ni41OTg3MzNFLTEzNTU4MTk0MiIsIi0xLjQzMjk3NjA0RS02NTEyOTc4MCIsIi0xLjQzMjk3NjA0RS02NTEyOTc4MCIsIi04LjExMDQ2MjgzRS0yMDA3MTE3MjEiLCItMi41MzE4MTY0NkUrNzA0NTIxNjAiLCIiLCIiLCI4LjY1ODMxODgxRS0zOTA3Nzg2ODAiKTsKKyAgbWF0aHRlc3QoMzQ4LGRlZiwiNDE2OTk4ODU5LiIsIjI2MC4yMjAzMjNFLTM0OTI4NTU5MyIsIjQxNjk5ODg1OSIsIjQxNjk5ODg1OSIsIjEuMDg1MTE1NzhFLTM0OTI4NTU4MiIsIjEuNjAyNDgzODNFKzM0OTI4NTU5OSIsIiIsIiIsIjcuMjUxMTExNzhFKzI1Iik7CisgIG1hdGh0ZXN0KDM0OSxkZWYsIjcyNjcuMTc2MTFFKzg2MjYzMDYwNyIsIjQwMjEuNTY4NjEiLCI3LjI2NzE3NjExRSs4NjI2MzA2MTAiLCI3LjI2NzE3NjExRSs4NjI2MzA2MTAiLCIyLjkyMjU0NDczRSs4NjI2MzA2MTQiLCIxLjgwNzA1MDE0RSs4NjI2MzA2MDciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzUwLGRlZiwiMTIuMjE0MjQzNEUrNTkzOTA4NzQwIiwiNS4yNzIzNjU3MUUtMzk2MDUwNzQ4IiwiMS4yMjE0MjQzNEUrNTkzOTA4NzQxIiwiMS4yMjE0MjQzNEUrNTkzOTA4NzQxIiwiNi40Mzk3OTU4MUUrMTk3ODU3OTkzIiwiMi4zMTY2NTMzRSs5ODk5NTk0ODgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzUxLGRlZiwiLTI4LjU5MTkzMiIsIi0xLjc5MTUzMjM4RS04MTcwNjQ1NzYiLCItMjguNTkxOTMyMCIsIi0yOC41OTE5MzIwIiwiNS4xMjIzMzcyMEUtODE3MDY0NTc1IiwiMS41OTU5NDgzOEUrODE3MDY0NTc3IiwiIiwiIiwiMC4wMDEyMjMyNDM3MiIpOworICBtYXRodGVzdCgzNTIsZGVmLCI1OTAuODQ5NjY2IiwiNzUzNDI0LjMwNkUrMjc3MjMyNzQ0IiwiNy41MzQyNDMwNkUrMjc3MjMyNzQ5IiwiLTcuNTM0MjQzMDZFKzI3NzIzMjc0OSIsIjQuNDUxNjA1MDBFKzI3NzIzMjc1MiIsIjcuODQyMTkwMTRFLTI3NzIzMjc0OCIsIjAiLCI1OTAuODQ5NjY2IiwiMS40ODUzMDYwN0UrMjIiKTsKKyAgbWF0aHRlc3QoMzUzLGRlZiwiMS43MjcwNjI4IiwiLTEzMjUwMjYuNjciLCItMTMyNTAyNC45NCIsIjEzMjUwMjguNDAiLCItMjI4ODQwNC4yNyIsIi0wLjAwMDAwMTMwMzQxNzM5IiwiMCIsIjEuNzI3MDYyOCIsIjIuMDkyNjAwMzZFLTMxNDQ0MCIpOworICBtYXRodGVzdCgzNTQsZGVmLCIzMzQwMjExOC4iLCItNTUzNC44Mzc0NSIsIjMzMzk2NTgzLjIiLCIzMzQwNzY1Mi44IiwiLTEuODQ4NzUyOTRFKzExIiwiLTYwMzQuODg2OSIsIi02MDM0IiwiNDkwOC44MjY3MCIsIjguMTQ0NzM5MTNFLTQxNjQ1Iik7CisgIG1hdGh0ZXN0KDM1NSxkZWYsIi00Mzk4NDIuNTA2IiwiLTc3NTExMC44MDciLCItMTIxNDk1My4zMSIsIjMzNTI2OC4zMDEiLCIzLjQwOTI2NjgwRSsxMSIsIjAuNTY3NDU3NTg0IiwiMCIsIi00Mzk4NDIuNTA2IiwiLTEuODQ2Nzg0NzJFLTQzNzQxODIiKTsKKyAgbWF0aHRlc3QoMzU2LGRlZiwiLTI0ODY2NC43NzkiLCItNDQwODkwLjQ0RSs2NjY0MzM5NDQiLCItNC40MDg5MDQ0MEUrNjY2NDMzOTQ5IiwiNC40MDg5MDQ0MEUrNjY2NDMzOTQ5IiwiMS4wOTYzMzkyNEUrNjY2NDMzOTU1IiwiNS42NDAwNTgzMUUtNjY2NDMzOTQ1IiwiMCIsIi0yNDg2NjQuNzc5IiwiMi42MTU0Mjg3N0UtMjIiKTsKKyAgbWF0aHRlc3QoMzU3LGRlZiwiLTE0MTYxLjkxNDIiLCI4MzA2LjQ5NDkzIiwiLTU4NTUuNDE5MyIsIi0yMjQ2OC40MDkxIiwiLTExNzYzNTg2OSIsIi0xLjcwNDkyMDU5IiwiLTEiLCItNTg1NS40MTkyNyIsIjEuNjU1NzMzNzJFKzM0NDc5Iik7CisgIG1hdGh0ZXN0KDM1OCxkZWYsIi02NDE3MjI3LjEzIiwiMTY2NzkuODg0MiIsIi02NDAwNTQ3LjI1IiwiLTY0MzM5MDcuMDEiLCItMS4wNzAzODYwNUUrMTEiLCItMzg0LjcyODUxOCIsIi0zODQiLCItMTIxNTEuNTk3MiIsIjMuNTg3Njc5NzhFKzExMzU0NiIpOworICBtYXRodGVzdCgzNTksZGVmLCI1MTQ4MjUwMjQuIiwiLTI1LjA0NDYzNDVFLTEwMzgwOTQ1NyIsIjUxNDgyNTAyNCIsIjUxNDgyNTAyNCIsIi0xLjI4OTM2MDQ2RS0xMDM4MDk0NDciLCItMi4wNTU2MzAwMkUrMTAzODA5NDY0IiwiIiwiIiwiNy4zMjg2MDA2MkUtMjciKTsKKyAgbWF0aHRlc3QoMzYwLGRlZiwiNTI1OTQ4MTk2IiwiMjE5NDUwMzkwIiwiNzQ1Mzk4NTg2IiwiMzA2NDk3ODA2IiwiMS4xNTQxOTUzN0UrMTciLCIyLjM5NjY2MTAyIiwiMiIsIjg3MDQ3NDE2IiwiIik7CisgIG1hdGh0ZXN0KDM2MSxkZWYsIi02Mzg1MDkuMTgxIiwiNDU1ODAxODkuMEUrMjY5MjEyNTU5IiwiNC41NTgwMTg5MEUrMjY5MjEyNTY2IiwiLTQuNTU4MDE4OTBFKzI2OTIxMjU2NiIsIi0yLjkxMDMzNjkxRSsyNjkyMTI1NzIiLCItMS40MDA4NDgwM0UtMjY5MjEyNTYxIiwiMCIsIi02Mzg1MDkuMTgxIiwiLTEuMDYxMjk0MDVFKzI5Iik7CisgIG1hdGh0ZXN0KDM2MixkZWYsIjMzMDU5MDQyMiIsIjc0LjM1OTkyOEUrNTM1Mzc3OTY1IiwiNy40MzU5OTI4MEUrNTM1Mzc3OTY2IiwiLTcuNDM1OTkyODBFKzUzNTM3Nzk2NiIsIjIuNDU4MjY4MDBFKzUzNTM3Nzk3NSIsIjQuNDQ1ODE0MThFLTUzNTM3Nzk1OSIsIjAiLCIzMzA1OTA0MjIiLCI0LjMxNTUwNzQyRSs1OSIpOworICBtYXRodGVzdCgzNjMsZGVmLCItMy40ODU5Mzg3MUUtOTQwNTc5OTA0IiwiLTIwMjY1Ljk2NDBFLTMyMjk4ODk4NyIsIi0yLjAyNjU5NjQwRS0zMjI5ODg5ODMiLCIyLjAyNjU5NjQwRS0zMjI5ODg5ODMiLCIiLCIxLjcyMDA5NTE5RS02MTc1OTA5MjEiLCIwIiwiLTMuNDg1OTM4NzFFLTk0MDU3OTkwNCIsIiIpOworICBtYXRodGVzdCgzNjQsZGVmLCItMzI4MTAzNDgwLiIsIi03MjEuOTQ5MzcxRS05MjM5Mzg2NjUiLCItMzI4MTAzNDgwIiwiLTMyODEwMzQ4MCIsIjIuMzY4NzQxMDFFLTkyMzkzODY1NCIsIjQuNTQ0Njg4MjJFKzkyMzkzODY3MCIsIiIsIiIsIi0yLjQ0MzAwMzhFLTYwIik7CisgIG1hdGh0ZXN0KDM2NSxkZWYsIi0xODU3LjAxNDQ4IiwiMTkwODE1NzguMSIsIjE5MDc5NzIxLjEiLCItMTkwODM0MzUuMSIsIi0zLjU0MzQ3NjY4RSsxMCIsIi0wLjAwMDA5NzMxOTc1MzciLCIwIiwiLTE4NTcuMDE0NDgiLCI4LjQ0Mzk3MDg3RSs2MjM3NDE1MyIpOworICBtYXRodGVzdCgzNjYsZGVmLCIzNDcuMjg3MjBFKzE0NTkzMDc3MSIsIi02MjgyMS45OTA2RS02NzY1NjQxMDYiLCIzLjQ3Mjg3MjAwRSsxNDU5MzA3NzMiLCIzLjQ3Mjg3MjAwRSsxNDU5MzA3NzMiLCItMi4xODE3MjczMkUtNTMwNjMzMzI4IiwiLTUuNTI4MTE1MThFKzgyMjQ5NDg3NCIsIiIsIiIsIjUuNjk5OTAxMzVFLTg3NTU4NDY0MiIpOworICBtYXRodGVzdCgzNjcsZGVmLCItNjQzLjIxMTM5OUUrNDQxODA3MDAzIiwiLTUwNzMzNDE5LjIiLCItNi40MzIxMTM5OUUrNDQxODA3MDA1IiwiLTYuNDMyMTEzOTlFKzQ0MTgwNzAwNSIsIjMuMjYzMjMxMzVFKzQ0MTgwNzAxMyIsIjEuMjY3ODI1ODRFKzQ0MTgwNjk5OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNjgsZGVmLCItNTM5OTE2NjEuNEUtODQzMzM5NTU0IiwiMjA3MTguNzM0NiIsIjIwNzE4LjczNDYiLCItMjA3MTguNzM0NiIsIi0xLjExODYzODkwRS04NDMzMzk1NDIiLCItMi42MDU5MzQzMUUtODQzMzM5NTUxIiwiMCIsIi01LjM5OTE2NjE0RS04NDMzMzk1NDciLCIiKTsKKyAgbWF0aHRlc3QoMzY5LGRlZiwiLTkwMDE4MTQyNCIsIi0xMDU3NjM5ODIuIiwiLTEuMDA1OTQ1NDFFKzkiLCItNzk0NDE3NDQyIiwiOS41MjA2NzcxOUUrMTYiLCI4LjUxMTIyODU2IiwiOCIsIi01NDA2OTU2OCIsIjEuMzI2MjcwNjFFLTk0NzA0NTYwMiIpOworICBtYXRodGVzdCgzNzAsZGVmLCI5NDIxOC43NDYyRSs1NjMyMzM5NTEiLCIxOTI2Mi42MzgyRSs3NjUyNjM4OTAiLCIxLjkyNjI2MzgyRSs3NjUyNjM4OTQiLCItMS45MjYyNjM4MkUrNzY1MjYzODk0IiwiIiwiNC44OTEyNjkwNkUtMjAyMDI5OTM5IiwiMCIsIjkuNDIxODc0NjJFKzU2MzIzMzk1NSIsIiIpOworICBtYXRodGVzdCgzNzEsZGVmLCIyODU0OS4yNzFFKzkyMTMzMTgyOCIsIi0yMTUwNTkwLjQwIiwiMi44NTQ5MjcxMEUrOTIxMzMxODMyIiwiMi44NTQ5MjcxMEUrOTIxMzMxODMyIiwiLTYuMTM5Nzc4ODFFKzkyMTMzMTgzOCIsIi0xLjMyNzUwODUzRSs5MjEzMzE4MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzcyLGRlZiwiODEwLjcwODBFKzc3OTYyNTc2MyIsIjU5NTcuOTQwNDQiLCI4LjEwNzA4MDAwRSs3Nzk2MjU3NjUiLCI4LjEwNzA4MDAwRSs3Nzk2MjU3NjUiLCI0LjgzMDE0OTk4RSs3Nzk2MjU3NjkiLCIxLjM2MDcxODU0RSs3Nzk2MjU3NjIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzczLGRlZiwiLTIzLjczNTc1NDlFKzc3MTE2OTA4IiwiMzUxLjEwMDY0OUUrODY0MzQ4MDIyIiwiMy41MTEwMDY0OUUrODY0MzQ4MDI0IiwiLTMuNTExMDA2NDlFKzg2NDM0ODAyNCIsIi04LjMzMzYzODk1RSs5NDE0NjQ5MzMiLCItNi43NjAzODQ4RS03ODcyMzExMTYiLCIwIiwiLTIuMzczNTc1NDlFKzc3MTE2OTA5IiwiMy4xNzQwMzg1M0UrMzA4NDY3NjM3Iik7CisgIG1hdGh0ZXN0KDM3NCxkZWYsIjQwMjE2MTAyLjJFKzI5MjcyNDU0NCIsIjY2MS4wMjU5NjIiLCI0LjAyMTYxMDIyRSsyOTI3MjQ1NTEiLCI0LjAyMTYxMDIyRSsyOTI3MjQ1NTEiLCIyLjY1ODM4ODc2RSsyOTI3MjQ1NTQiLCI2LjA4Mzg5MTQ4RSsyOTI3MjQ1NDgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzc1LGRlZiwiMjI3ODUwMjQuM0UrNzgzNzE5MTY4IiwiMzk5LjUwNTk4OUUrMTM3NDc4NjY2IiwiMi4yNzg1MDI0M0UrNzgzNzE5MTc1IiwiMi4yNzg1MDI0M0UrNzgzNzE5MTc1IiwiOS4xMDI3NTM2N0UrOTIxMTk3ODQzIiwiNS43MDMyOTk4MUUrNjQ2MjQwNTA2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3NixkZWYsIjUxNS41OTE4MTlFKzgyMTM3MTM2NCIsIi02OTIxMzc5MTQuRS0xNDk0OTg2OTAiLCI1LjE1NTkxODE5RSs4MjEzNzEzNjYiLCI1LjE1NTkxODE5RSs4MjEzNzEzNjYiLCItMy41Njg2MDY0NkUrNjcxODcyNjg1IiwiLTcuNDQ5MjY0MjFFKzk3MDg3MDA0NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzcsZGVmLCItNTM2ODgzMDcyRSs0Nzc5MTEyNTEiLCI2MjQ5OTYuMzAxIiwiLTUuMzY4ODMwNzJFKzQ3NzkxMTI1OSIsIi01LjM2ODgzMDcyRSs0Nzc5MTEyNTkiLCItMy4zNTU0OTkzNEUrNDc3OTExMjY1IiwiLTguNTkwMTc5OTlFKzQ3NzkxMTI1MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzgsZGVmLCItMzk5NDkyLjkxNEUtMzM0MzY5MTkyIiwiNTIwMjExOS44N0UrNDQyNDQyMjU4IiwiNS4yMDIxMTk4N0UrNDQyNDQyMjY0IiwiLTUuMjAyMTE5ODdFKzQ0MjQ0MjI2NCIsIi0yLjA3ODIxMDAzRSsxMDgwNzMwNzgiLCItNy42Nzk0MjUzOUUtNzc2ODExNDUyIiwiMCIsIi0zLjk5NDkyOTE0RS0zMzQzNjkxODciLCIiKTsKKyAgbWF0aHRlc3QoMzc5LGRlZiwiNzYyLjA3MTE4NCIsIjk4NTE2MzEuMzciLCI5ODUyMzkzLjQ0IiwiLTk4NTA4NjkuMzAiLCI3LjUwNzY0NDM4RSs5IiwiMC4wMDAwNzczNTQ4MjEzIiwiMCIsIjc2Mi4wNzExODQiLCI0LjAyMTk4NDM2RSsyODM5MjM1NiIpOworICBtYXRodGVzdCgzODAsZGVmLCI1NjI2LjEyNDcxIiwiNzI5ODk4MTguMyIsIjcyOTk1NDQ0LjQiLCItNzI5ODQxOTIuMiIsIjQuMTA2NDk4MjBFKzExIiwiMC4wMDAwNzcwODA5NTI0IiwiMCIsIjU2MjYuMTI0NzEiLCIxLjc5ODE0NzU3RSsyNzM3MjcwOTgiKTsKKyAgbWF0aHRlc3QoMzgxLGRlZiwiLTQ3MjA3MjYwLjEiLCItMjA3My4zMTUyIiwiLTQ3MjA5MzMzLjQiLCItNDcyMDUxODYuOCIsIjkuNzg3NTUyOTlFKzEwIiwiMjI3NjguOTc0MSIsIjIyNzY4IiwiLTIwMTkuNjI2NCIsIi02LjAyMjM4MzE5RS0xNTkwOSIpOworICBtYXRodGVzdCgzODIsZGVmLCIyMDcuNzQwODYwIiwiLTUxLjAzOTAwOTAiLCIxNTYuNzAxODUxIiwiMjU4Ljc3OTg2OSIsIi0xMDYwMi44ODc2IiwiLTQuMDcwMjM2OTQiLCItNCIsIjMuNTg0ODI0MCIsIjYuNDAyOTc1MTVFLTExOSIpOworICBtYXRodGVzdCgzODMsZGVmLCItNTcyLjgxMjQ2NEUtNzQ1OTM0MDIxIiwiLTE4MjgwNTg3Mi5FKzYwNDUwODY4MSIsIi0xLjgyODA1ODcyRSs2MDQ1MDg2ODkiLCIxLjgyODA1ODcyRSs2MDQ1MDg2ODkiLCIxLjA0NzEzNDgyRS0xNDE0MjUzMjkiLCIiLCIwIiwiLTUuNzI4MTI0NjRFLTc0NTkzNDAxOSIsIiIpOworICBtYXRodGVzdCgzODQsZGVmLCItNjQxODUwNEUrMzUzMTQwNyIsIjg0NTk0MTYuMSIsIi02LjQxODUwNDAwRSszNTMxNDEzIiwiLTYuNDE4NTA0MDBFKzM1MzE0MTMiLCItNS40Mjk2Nzk2MUUrMzUzMTQyMCIsIi03LjU4NzQwNzg0RSszNTMxNDA2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM4NSxkZWYsIjI4MDY4OS41MzEiLCItMTI4MjEyNTQzIiwiLTEyNzkzMTg1NCIsIjEyODQ5MzIzMyIsIi0zLjU5ODc5MTg2RSsxMyIsIi0wLjAwMjE4OTI1MTczIiwiMCIsIjI4MDY4OS41MzEiLCIxLjQyMTczODA5RS02OTg1MzA5MzgiKTsKKyAgbWF0aHRlc3QoMzg2LGRlZiwiMTUuODAzNTUxRS03ODM0MjI3OTMiLCIyMzkxMDgwMzhFLTQ4OTE4NjMwOCIsIjIuMzkxMDgwMzhFLTQ4OTE4NjMwMCIsIi0yLjM5MTA4MDM4RS00ODkxODYzMDAiLCIiLCI2LjYwOTM3NjcyRS0yOTQyMzY0OTMiLCIwIiwiMS41ODAzNTUxRS03ODM0MjI3OTIiLCIiKTsKKyAgbWF0aHRlc3QoMzg3LGRlZiwiMjYuNTE1OTIyIiwiLTk0MTgyNDIuOTZFLTEwNTQ4MTYyOCIsIjI2LjUxNTkyMjAiLCIyNi41MTU5MjIwIiwiLTIuNDk3MzMzOTZFLTEwNTQ4MTYyMCIsIi0yLjgxNTM3ODg1RSsxMDU0ODE2MjIiLCIiLCIiLCIxLjU0MzI2MTA4RS0xMyIpOworICBtYXRodGVzdCgzODgsZGVmLCItODguMTA5NDU1NyIsIi01NDAyOTkzNC4xIiwiLTU0MDMwMDIyLjIiLCI1NDAyOTg0Ni4wIiwiNC43NjA1NDgwOUUrOSIsIjAuMDAwMDAxNjMwNzUyNiIsIjAiLCItODguMTA5NDU1NyIsIjUuMDUyODk4MjZFLTEwNTA4OTQzOSIpOworICBtYXRodGVzdCgzODksZGVmLCI2NzcwLjY4NjAyRS00OTg0MjAzOTciLCItNi4xMTI0ODkwOEUtNzI5NjE2OTA4IiwiNi43NzA2ODYwMkUtNDk4NDIwMzk0IiwiNi43NzA2ODYwMkUtNDk4NDIwMzk0IiwiIiwiLTEuMTA3NjgwNjdFKzIzMTE5NjUxNCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTAsZGVmLCItODkyOTczODE4LkUtNzgxOTA0NDQxIiwiNTU1MjAxMjk5LiIsIjU1NTIwMTI5OSIsIi01NTUyMDEyOTkiLCItNC45NTc4MDIyNEUtNzgxOTA0NDI0IiwiLTEuNjA4Mzc4NDdFLTc4MTkwNDQ0MSIsIjAiLCItOC45Mjk3MzgxOEUtNzgxOTA0NDMzIiwiIik7CisgIG1hdGh0ZXN0KDM5MSxkZWYsIjY3MDE3NTgwMkUrMTM1NDMwNjgwIiwiMjczNTUxOTUuNCIsIjYuNzAxNzU4MDJFKzEzNTQzMDY4OCIsIjYuNzAxNzU4MDJFKzEzNTQzMDY4OCIsIjEuODMzMjc5MDBFKzEzNTQzMDY5NiIsIjIuNDQ5OTAzMThFKzEzNTQzMDY4MSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTIsZGVmLCItNDQwOTUwLjI2IiwiMjA1LjQ3NzQ2OUUtNjc3MzQ1NTYxIiwiLTQ0MDk1MC4yNjAiLCItNDQwOTUwLjI2MCIsIi05LjA2MDUzNDM0RS02NzczNDU1NTQiLCItMi4xNDU5Nzg2NEUrNjc3MzQ1NTY0IiwiIiwiIiwiMS45NDQzNzEzMkUrMTEiKTsKKyAgbWF0aHRlc3QoMzkzLGRlZiwiLTguMjMzNTc3OSIsIjU3MzY2NTAxMEUrNzQyNzIyMDc1IiwiNS43MzY2NTAxMEUrNzQyNzIyMDgzIiwiLTUuNzM2NjUwMTBFKzc0MjcyMjA4MyIsIi00LjcyMzMxNTU1RSs3NDI3MjIwODQiLCItMS40MzUyNTg4NkUtNzQyNzIyMDgzIiwiMCIsIi04LjIzMzU3NzkiLCIzMTE1NTIuNzUzIik7CisgIG1hdGh0ZXN0KDM5NCxkZWYsIjQ1Mjk0My44NjMiLCI3MDIyLjIzNjI5IiwiNDU5OTY2LjA5OSIsIjQ0NTkyMS42MjciLCIzLjE4MDY3ODgzRSs5IiwiNjQuNTAxMzcwMyIsIjY0IiwiMzUyMC43NDA0NCIsIjUuNTQxNTg5NzZFKzM5NzE2Iik7CisgIG1hdGh0ZXN0KDM5NSxkZWYsIjYyODc0LjEwNzkiLCItNTI3MTk2NTQuMSIsIi01MjY1Njc4MC4wIiwiNTI3ODI1MjguMiIsIi0zLjMxNDcwMTIyRSsxMiIsIi0wLjAwMTE5MjYxMjMiLCIwIiwiNjI4NzQuMTA3OSIsIjEuMTg4MTk5MzZFLTI1Mjk3Mzc3NSIpOworICBtYXRodGVzdCgzOTYsZGVmLCItNzQyOC40MTc0MUUrNjA5NzcyMDM3IiwiLTQ2MDI0ODE5LjMiLCItNy40Mjg0MTc0MUUrNjA5NzcyMDQwIiwiLTcuNDI4NDE3NDFFKzYwOTc3MjA0MCIsIjMuNDE4OTE1NjlFKzYwOTc3MjA0OCIsIjEuNjE0MDAyNTFFKzYwOTc3MjAzMyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTcsZGVmLCIyLjI3OTU5Mjk3IiwiNDE5MzcuMDE5IiwiNDE5MzkuMjk4NiIsIi00MTkzNC43Mzk0IiwiOTU1OTkuMzMzNyIsIjAuMDAwMDU0MzU3NTM0OCIsIjAiLCIyLjI3OTU5Mjk3IiwiMi44OTcxMjQyM0UrMTUwMDciKTsKKyAgbWF0aHRlc3QoMzk4LGRlZiwiNTA4NjkyNDA4RS02NzE5Njc3ODIiLCI4NDkxOTg5LjIwIiwiODQ5MTk4OS4yMCIsIi04NDkxOTg5LjIwIiwiNC4zMTk4MTA0M0UtNjcxOTY3NzY3IiwiNS45OTAyNjIwN0UtNjcxOTY3NzgxIiwiMCIsIjUuMDg2OTI0MDhFLTY3MTk2Nzc3NCIsIiIpOworICBtYXRodGVzdCgzOTksZGVmLCI5NDAuNTMzNzA1RS0zNzkzMTA0MjEiLCItNC4wMTE3Njk2MUUrNDY0NjIwMDM3IiwiLTQuMDExNzY5NjFFKzQ2NDYyMDAzNyIsIjQuMDExNzY5NjFFKzQ2NDYyMDAzNyIsIi0zLjc3MzIwNDUzRSs4NTMwOTYxOSIsIi0yLjM0NDQzNTk5RS04NDM5MzA0NTYiLCIwIiwiOS40MDUzMzcwNUUtMzc5MzEwNDE5IiwiIik7CisgIG1hdGh0ZXN0KDQwMCxkZWYsIjk3LjA2NDk2NTIiLCItOTIuNDQ4NTY0OUUtMTUxOTg5MDk4IiwiOTcuMDY0OTY1MiIsIjk3LjA2NDk2NTIiLCItOC45NzM1MTY3M0UtMTUxOTg5MDk1IiwiLTEuMDQ5OTM0OEUrMTUxOTg5MDk4IiwiIiwiIiwiMS4zMDc0ODcyOEUtMTgiKTsKKyAgbWF0aHRlc3QoNDAxLGRlZiwiMjk3NTQ0LjUzNkUrMzYwMjc5NDczIiwiOC44MDI3NTAwNyIsIjIuOTc1NDQ1MzZFKzM2MDI3OTQ3OCIsIjIuOTc1NDQ1MzZFKzM2MDI3OTQ3OCIsIjIuNjE5MjEwMTlFKzM2MDI3OTQ3OSIsIjMuMzgwMTMxNTlFKzM2MDI3OTQ3NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MDIsZGVmLCItMjg4NjEwMjguIiwiODI4MTguODIwRSsxMzgzNjg3NTgiLCI4LjI4MTg4MjAwRSsxMzgzNjg3NjIiLCItOC4yODE4ODIwMEUrMTM4MzY4NzYyIiwiLTIuMzkwMjM2MjhFKzEzODM2ODc3MCIsIi0zLjQ4NDgzOTMyRS0xMzgzNjg3NTYiLCIwIiwiLTI4ODYxMDI4IiwiNC44MTM4NzAxM0UrNTkiKTsKKyAgbWF0aHRlc3QoNDAzLGRlZiwiMzYuMjQ5NjIzOEUrNjg4MjgwMzkiLCI0OTI0My4wMCIsIjMuNjI0OTYyMzhFKzY4ODI4MDQwIiwiMy42MjQ5NjIzOEUrNjg4MjgwNDAiLCIxLjc4NTA0MDIyRSs2ODgyODA0NSIsIjcuMzYxMzc1OTlFKzY4ODI4MDM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQwNCxkZWYsIjIyLjQ0NzgyOEUtNDc2MDE0NjgzIiwiLTU2MDY3LjU1MjAiLCItNTYwNjcuNTUyMCIsIjU2MDY3LjU1MjAiLCItMS4yNTg1OTQ3NkUtNDc2MDE0Njc3IiwiLTQuMDAzNzExMDlFLTQ3NjAxNDY4NyIsIjAiLCIyLjI0NDc4MjhFLTQ3NjAxNDY4MiIsIiIpOworICBtYXRodGVzdCg0MDUsZGVmLCIyODI2ODguNzkxRSs3NTAxMTk1MiIsIjUuOTk3ODkwNTEiLCIyLjgyNjg4NzkxRSs3NTAxMTk1NyIsIjIuODI2ODg3OTFFKzc1MDExOTU3IiwiMS42OTU1MzY0MkUrNzUwMTE5NTgiLCI0LjcxMzEzNjlFKzc1MDExOTU2IiwiIiwiIiwiNS4xMDMzMDUwN0UrNDUwMDcxNzQ0Iik7CisgIG1hdGh0ZXN0KDQwNixkZWYsIi05ODEuODYwMzEwRS03MzczODcwMDIiLCItOTk0MDQ2Mjg5IiwiLTk5NDA0NjI4OSIsIjk5NDA0NjI4OSIsIjkuNzYwMTQ1OTdFLTczNzM4Njk5MSIsIjkuODc3NDEwMzVFLTczNzM4NzAwOSIsIjAiLCItOS44MTg2MDMxMEUtNzM3Mzg3MDAwIiwiIik7CisgIG1hdGh0ZXN0KDQwNyxkZWYsIi03MDIuOTEyMTAiLCItNjQ0NDkwMy41NSIsIi02NDQ1NjA2LjQ2IiwiNjQ0NDIwMC42NCIsIjQuNTMwMjAwNjlFKzkiLCIwLjAwMDEwOTA2NDc5NyIsIjAiLCItNzAyLjkxMjEwIiwiMS43MDg2NjcwM0UtMTgzNDgwMDQiKTsKKyAgbWF0aHRlc3QoNDA4LGRlZiwiOTcyNDU2NzIwRS0xNzUzNjgyMyIsIjE2MzcxLjI1OTAiLCIxNjM3MS4yNTkwIiwiLTE2MzcxLjI1OTAiLCIxLjU5MjAzNDA4RS0xNzUzNjgxMCIsIjUuOTQwMDI0MDRFLTE3NTM2ODE5IiwiMCIsIjkuNzI0NTY3MjBFLTE3NTM2ODE1IiwiIik7CisgIG1hdGh0ZXN0KDQwOSxkZWYsIjcxNDcxLjIwNDUiLCItNzQzMDMyNzguNCIsIi03NDIzMTgwNy4yIiwiNzQzNzQ3NDkuNiIsIi01LjMxMDU0NDgxRSsxMiIsIi0wLjAwMDk2MTg4NDk0IiwiMCIsIjcxNDcxLjIwNDUiLCIyLjE0NTM1Mzc0RS0zNjA2Nzc4NTMiKTsKKyAgbWF0aHRlc3QoNDEwLGRlZiwiNjQzLjEwMzk1MUUrNDM5NzA4NDQxIiwiNzg4MjUxOTI1LiIsIjYuNDMxMDM5NTFFKzQzOTcwODQ0MyIsIjYuNDMxMDM5NTFFKzQzOTcwODQ0MyIsIjUuMDY5Mjc5MjdFKzQzOTcwODQ1MiIsIjguMTU4NjA5MzNFKzQzOTcwODQzNCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MTEsZGVmLCI0LjMwODM4NjYzIiwiLTcuNDMxMTA4MjciLCItMy4xMjI3MjE2NCIsIjExLjczOTQ5NDkiLCItMzIuMDE2MDg3NSIsIi0wLjU3OTc3NzEzMSIsIjAiLCI0LjMwODM4NjYzIiwiMC4wMDAwMzYyOTA4NjQ1Iik7CisgIG1hdGh0ZXN0KDQxMixkZWYsIjgyMy42NzgwMjUiLCItNTEzLjU4MTg0MEUtMzI0NDUzMTQxIiwiODIzLjY3ODAyNSIsIjgyMy42NzgwMjUiLCItNC4yMzAyNjA3NkUtMzI0NDUzMTM2IiwiLTEuNjAzNzkxMThFKzMyNDQ1MzE0MSIsIiIsIiIsIjIuNjM3NjIyMjhFLTE1Iik7CisgIG1hdGh0ZXN0KDQxMyxkZWYsIjQ0NjEuODExNjIiLCIzLjIyMDgxNjgwIiwiNDQ2NS4wMzI0NCIsIjQ0NTguNTkwODAiLCIxNDM3MC42Nzc4IiwiMTM4NS4zMDQzOCIsIjEzODUiLCIwLjk4MDM1MjAwIiwiOC44ODI0Njg4RSsxMCIpOworICBtYXRodGVzdCg0MTQsZGVmLCItNDQ1ODUyNy4xMCIsIi05OTA3MjYwNSIsIi0xMDM1MzExMzIiLCI5NDYxNDA3Ny45IiwiNC40MTcxNzg5NEUrMTQiLCIwLjA0NTAwMjYyMzEiLCIwIiwiLTQ0NTg1MjcuMTAiLCItNi4yMzkyODA5OUUtNjU4NzUyNzE1Iik7CisgIG1hdGh0ZXN0KDQxNSxkZWYsIi01Nzc5NjQ2MTgiLCI0ODc0MjQzNjguIiwiLTkwNTQwMjUwIiwiLTEuMDY1Mzg4OTlFKzkiLCItMi44MTcxNDAzOUUrMTciLCItMS4xODU3NTI0MSIsIi0xIiwiLTkwNTQwMjUwIiwiIik7CisgIG1hdGh0ZXN0KDQxNixkZWYsIi04NjcuMDM2MTg0IiwiLTU3LjE3Njg2MDgiLCItOTI0LjIxMzA0NSIsIi04MDkuODU5MzIzIiwiNDk1NzQuNDA3MiIsIjE1LjE2NDEwOTYiLCIxNSIsIi05LjM4MzI3MjAiLCItMy40MDMxMjgzN0UtMTY4Iik7CisgIG1hdGh0ZXN0KDQxNyxkZWYsIjc3MTg3MTkyMUUtMzMwNTA0NzcwIiwiNS4zNDI4NTIzNiIsIjUuMzQyODUyMzYiLCItNS4zNDI4NTIzNiIsIjQuMTIzOTk3NzFFLTMzMDUwNDc2MSIsIjEuNDQ0NjgxMzZFLTMzMDUwNDc2MiIsIjAiLCI3LjcxODcxOTIxRS0zMzA1MDQ3NjIiLCIiKTsKKyAgbWF0aHRlc3QoNDE4LGRlZiwiLTMzODY4My4wNjJFLTcyODc3NzUxOCIsIjE2NjQ0MTkzMSIsIjE2NjQ0MTkzMSIsIi0xNjY0NDE5MzEiLCItNS42MzcxMDYyOEUtNzI4Nzc3NTA1IiwiLTIuMDM0ODQyMThFLTcyODc3NzUyMSIsIjAiLCItMy4zODY4MzA2MkUtNzI4Nzc3NTEzIiwiIik7CisgIG1hdGh0ZXN0KDQxOSxkZWYsIi01MTI1Njg3NDMiLCItNDE2Mzc2ODg3LkUtOTY1OTQ1Mjk1IiwiLTUxMjU2ODc0MyIsIi01MTI1Njg3NDMiLCIyLjEzNDIxNzc4RS05NjU5NDUyNzgiLCIxLjIzMTAyMTEyRSs5NjU5NDUyOTUiLCIiLCIiLCIxLjQ0ODc0MzU4RS0zNSIpOworICBtYXRodGVzdCg0MjAsZGVmLCI3NDQ3MTgxLjk5IiwiNTMxODQzOC41MiIsIjEyNzY1NjIwLjUiLCIyMTI4NzQzLjQ3IiwiMy45NjA3Mzc5NkUrMTMiLCIxLjQwMDI1NzIzIiwiMSIsIjIxMjg3NDMuNDciLCIxLjIxNjM0NzgyRSszNjU0ODI3MCIpOworICBtYXRodGVzdCg0MjEsZGVmLCI1NDc4OS44MjA3IiwiOTMxNjU0MzUuMiIsIjkzMjIwMjI1LjAiLCItOTMxMTA2NDUuNCIsIjUuMTA0NTE3NDlFKzEyIiwiMC4wMDA1ODgwOTE3MTYiLCIwIiwiNTQ3ODkuODIwNyIsIjMuODA3Njk4MjVFKzQ0MTQ4MzAzNSIpOworICBtYXRodGVzdCg0MjIsZGVmLCI0MTQ4OC41OTYwIiwiMTQ2Ljc5NzA5NCIsIjQxNjM1LjM5MzEiLCI0MTM0MS43OTg5IiwiNjA5MDQwNS4zMyIsIjI4Mi42MjU0NTkiLCIyODIiLCI5MS44MTU0OTIiLCI2Ljg0NzM4MTUzRSs2NzgiKTsKKyAgbWF0aHRlc3QoNDIzLGRlZiwiNzg1NzQxLjY2M0UrNTY3NTQ1MjkiLCItNDYxLjUzMTczMiIsIjcuODU3NDE2NjNFKzU2NzU0NTM0IiwiNy44NTc0MTY2M0UrNTY3NTQ1MzQiLCItMy42MjY0NDcxMUUrNTY3NTQ1MzciLCItMS43MDI0NjUwOUUrNTY3NTQ1MzIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDI0LGRlZiwiLTQuOTU0MzY3ODYiLCItMzEzMi40MjMzIiwiLTMxMzcuMzc3NjciLCIzMTI3LjQ2ODkzIiwiMTU1MTkuMTc3MyIsIjAuMDAxNTgxNjQwNiIsIjAiLCItNC45NTQzNjc4NiIsIjEuOTgwNjI0MjJFLTIxNzciKTsKKyAgbWF0aHRlc3QoNDI1LGRlZiwiNzczMjEuODQ3OEUrNDA0NjI2ODc0IiwiODIuNDc5NzY4OCIsIjcuNzMyMTg0NzhFKzQwNDYyNjg3OCIsIjcuNzMyMTg0NzhFKzQwNDYyNjg3OCIsIjYuMzc3NDg4MTNFKzQwNDYyNjg4MCIsIjkuMzc0NjQ0MUUrNDA0NjI2ODc2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQyNixkZWYsIi03Ljk5MzA3NzI1IiwiLTI5MTUzLjcyNzMiLCItMjkxNjEuNzIwNCIsIjI5MTQ1LjczNDIiLCIyMzMwMjcuOTk0IiwiMC4wMDAyNzQxNjk5OTQiLCIwIiwiLTcuOTkzMDc3MjUiLCIxLjg4Njg4MDI4RS0yNjMxOCIpOworICBtYXRodGVzdCg0MjcsZGVmLCItNjEuNjMzNzQwMUUrNDc0OTk5NTE3IiwiNTI1NC44NzA5MiIsIi02LjE2MzM3NDAxRSs0NzQ5OTk1MTgiLCItNi4xNjMzNzQwMUUrNDc0OTk5NTE4IiwiLTMuMjM4NzczNDlFKzQ3NDk5OTUyMiIsIi0xLjE3Mjg4NzhFKzQ3NDk5OTUxNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MjgsZGVmLCItMTYuNDA0MzA4OCIsIjM1LjAwNjQ4MTIiLCIxOC42MDIxNzI0IiwiLTUxLjQxMDc5MDAiLCItNTc0LjI1NzEyOCIsIi0wLjQ2ODYwNzc2MiIsIjAiLCItMTYuNDA0MzA4OCIsIi0zLjMzODMxODQzRSs0MiIpOworICBtYXRodGVzdCg0MjksZGVmLCItOC40MTE1NjUyMCIsIi01NjUwODk1OC45IiwiLTU2NTA4OTY3LjMiLCI1NjUwODk1MC41IiwiNDc1MzI4NzkyIiwiMS40ODg1MzY1N0UtNyIsIjAiLCItOC40MTE1NjUyMCIsIi04Ljg2MzY1NDU4RS01MjI2MzgyNyIpOworICBtYXRodGVzdCg0MzAsZGVmLCItMzYwMTY1Ljc5RSs1MDM1NTk4MzUiLCItMTk2Njg4LjUxNSIsIi0zLjYwMTY1NzkwRSs1MDM1NTk4NDAiLCItMy42MDE2NTc5MEUrNTAzNTU5ODQwIiwiNy4wODQwNDc0NEUrNTAzNTU5ODQ1IiwiMS44MzExNDgwNUUrNTAzNTU5ODM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQzMSxkZWYsIi02NTMyMzY0ODAuRSs1NjU2NDg0OTUiLCItOTMwLjQ0NTI3NCIsIi02LjUzMjM2NDgwRSs1NjU2NDg1MDMiLCItNi41MzIzNjQ4MEUrNTY1NjQ4NTAzIiwiNi4wNzgwMDc5NkUrNTY1NjQ4NTA2IiwiNy4wMjA2ODY3NEUrNTY1NjQ4NTAwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQzMixkZWYsIi0zLjczMzQyOTAzIiwiODU1LjAyOTI4OSIsIjg1MS4yOTU4NjAiLCItODU4Ljc2MjcxOCIsIi0zMTkyLjE5MTE3IiwiLTAuMDA0MzY2NDM0MDgiLCIwIiwiLTMuNzMzNDI5MDMiLCItMS40MTk4ODk2MUUrNDg5Iik7CisgIG1hdGh0ZXN0KDQzMyxkZWYsIi01LjE0ODkwNTMyRSs1NjIwNDgwMTEiLCIxMDg0NzEyNy44RS0zOTA5MTg5MTAiLCItNS4xNDg5MDUzMkUrNTYyMDQ4MDExIiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIsIi01LjU4NTA4MzQwRSsxNzExMjkxMDgiLCItNC43NDY3OTE0MkUrOTUyOTY2OTE0IiwiIiwiIiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIpOworICBtYXRodGVzdCg0MzQsZGVmLCI2NTMzMTE5MDciLCItODEwLjAzNjk2NUUrNzQ0NTM3ODIzIiwiLTguMTAwMzY5NjVFKzc0NDUzNzgyNSIsIjguMTAwMzY5NjVFKzc0NDUzNzgyNSIsIi01LjI5MjA2Nzk0RSs3NDQ1Mzc4MzQiLCItOC4wNjUyMTEwNEUtNzQ0NTM3ODE4IiwiMCIsIjY1MzMxMTkwNyIsIjMuMDEzMjUxNzFFLTcxIik7CisgIG1hdGh0ZXN0KDQzNSxkZWYsIi0xLjMxNTU3OTA3IiwiOTguOTEzOTMwMEUtNTc5MjgxODAyIiwiLTEuMzE1NTc5MDciLCItMS4zMTU1NzkwNyIsIi0xLjMwMTI5MDk2RS01NzkyODE4MDAiLCItMS4zMzAwMjQwNkUrNTc5MjgxODAwIiwiIiwiIiwiMTUuNTI5OTMyIik7CisgIG1hdGh0ZXN0KDQzNixkZWYsIi04NzUxOTIzODkiLCItNzIwNzE1NjUuNiIsIi05NDcyNjM5NTUiLCItODAzMTIwODIzIiwiNi4zMDc2NDg1N0UrMTYiLCIxMi4xNDMzNzk3IiwiMTIiLCItMTAzMzM2MDEuOCIsIjEuMjU1NjQ0MDhFLTY0NDQ3MTQwNSIpOworICBtYXRodGVzdCg0MzcsZGVmLCItNzI4MzgwNzguOCIsIi0zOTEuMzk4NDIzIiwiLTcyODM4NDcwLjIiLCItNzI4Mzc2ODcuNCIsIjIuODUwODcwOTJFKzEwIiwiMTg2MDk3LjAxNyIsIjE4NjA5NyIsIi02LjQ3NDk2OSIsIi02LjU3NDA1N0UtMzA3NSIpOworICBtYXRodGVzdCg0MzgsZGVmLCIyOTE4NjU2MC45IiwiLTc5Ljc0MTk5ODgiLCIyOTE4NjQ4MS4yIiwiMjkxODY2NDAuNiIsIi0yLjMyNzM5NDcwRSs5IiwiLTM2NjAxMi40MDciLCItMzY2MDEyIiwiMzIuNDM1MjE0NCIsIjYuMTAwNTA4NjlFLTU5OCIpOworICBtYXRodGVzdCg0MzksZGVmLCItMzI5ODAxNjYwRS03MzAyNDk0NjUiLCItNjQ4OS45MjU2IiwiLTY0ODkuOTI1NjAiLCI2NDg5LjkyNTYwIiwiMi4xNDAzODgyNEUtNzMwMjQ5NDUzIiwiNS4wODE3NDc5M0UtNzMwMjQ5NDYxIiwiMCIsIi0zLjI5ODAxNjYwRS03MzAyNDk0NTciLCIiKTsKKyAgbWF0aHRlc3QoNDQwLGRlZiwiOTEuODQyOTExN0UrMTAzMTY0ODgzIiwiNzEzMTQ1NS4xNiIsIjkuMTg0MjkxMTdFKzEwMzE2NDg4NCIsIjkuMTg0MjkxMTdFKzEwMzE2NDg4NCIsIjYuNTQ5NzM2MDdFKzEwMzE2NDg5MSIsIjEuMjg3ODU2NTRFKzEwMzE2NDg3OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0NDEsZGVmLCIzOTQzODY2LjM4RSsxNTA4NTUxMTMiLCItMzE5MjcwMDcuMyIsIjMuOTQzODY2MzhFKzE1MDg1NTExOSIsIjMuOTQzODY2MzhFKzE1MDg1NTExOSIsIi0xLjI1OTE1ODUxRSsxNTA4NTUxMjciLCItMS4yMzUyNzU5NEUrMTUwODU1MTEyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ0MixkZWYsIi03MDAyLjA0NjhFLTc5NTk2MjE1NiIsIi01OTM3ODkxLjA1IiwiLTU5Mzc4OTEuMDUiLCI1OTM3ODkxLjA1IiwiNC4xNTc3MzkxMEUtNzk1OTYyMTQ2IiwiMS4xNzkyMTQ0M0UtNzk1OTYyMTU5IiwiMCIsIi03LjAwMjA0NjhFLTc5NTk2MjE1MyIsIiIpOworICBtYXRodGVzdCg0NDMsZGVmLCI2OTY1MDQ2MDUuIiwiNTQ1MDYuNDYxNyIsIjY5NjU1OTExMSIsIjY5NjQ1MDA5OSIsIjMuNzk2NDAwMTZFKzEzIiwiMTI3NzguMzg2IiwiMTI3NzgiLCIyMTAzNy4zOTc0IiwiMi42MDA4NTMyRSs0ODE5OTIiKTsKKyAgbWF0aHRlc3QoNDQ0LGRlZiwiLTUxMTUuNzY0NjciLCI2OTAuOTYwOTc5RSs4MTUxMjY3MDEiLCI2LjkwOTYwOTc5RSs4MTUxMjY3MDMiLCItNi45MDk2MDk3OUUrODE1MTI2NzAzIiwiLTMuNTM0NzkzNzZFKzgxNTEyNjcwNyIsIi03LjQwMzg0MDJFLTgxNTEyNjcwMSIsIjAiLCItNTExNS43NjQ2NyIsIi05LjE3MDA5NjU1RSsyNSIpOworICBtYXRodGVzdCg0NDUsZGVmLCItMjYxLjI3OTM5MiIsIi02MTMuMDc5MzU3IiwiLTg3NC4zNTg3NDkiLCIzNTEuNzk5OTY1IiwiMTYwMTg1LjAwMiIsIjAuNDI2MTc1NDg0IiwiMCIsIi0yNjEuMjc5MzkyIiwiLTIuMDYzMTg4NDFFLTE0ODIiKTsKKyAgbWF0aHRlc3QoNDQ2LGRlZiwiLTU5MTQwNzc2MyIsIi04MDE0NTgyMi44IiwiLTY3MTU1MzU4NiIsIi01MTEyNjE5NDAiLCI0LjczOTg4NjE4RSsxNiIsIjcuMzc5MTQ2NDQiLCI3IiwiLTMwMzg3MDAzLjQiLCItMi43OTMzNDUyMkUtNzAzMDMwMTA1Iik7CisgIG1hdGh0ZXN0KDQ0NyxkZWYsIjYxNTYzMDQwNyIsIi02OS40NjYxODY5IiwiNjE1NjMwMzM4IiwiNjE1NjMwNDc2IiwiLTQuMjc2NTQ5NjlFKzEwIiwiLTg4NjIzMDMuMTUiLCItODg2MjMwMyIsIjEwLjQzNzU2OTMiLCIzLjQ0MjgzMTAyRS02MDciKTsKKyAgbWF0aHRlc3QoNDQ4LGRlZiwiMTA3ODc1Ny41MCIsIjI3NDAyNTY5LjBFLTcxMzc0MjA4MiIsIjEwNzg3NTcuNTAiLCIxMDc4NzU3LjUwIiwiMi45NTYwNzI2OEUtNzEzNzQyMDY5IiwiMy45MzY3MDIwN0UrNzEzNzQyMDgwIiwiIiwiIiwiMS4yNTUzNjkyNEUrMTgiKTsKKyAgbWF0aHRlc3QoNDQ5LGRlZiwiLTQ4NjUuNjAzNThFLTQwMTExNjUxNSIsIjY2OTUyLjUzMTUiLCI2Njk1Mi41MzE1IiwiLTY2OTUyLjUzMTUiLCItMy4yNTc2NDQ3N0UtNDAxMTE2NTA3IiwiLTcuMjY3MjQzNjNFLTQwMTExNjUxNyIsIjAiLCItNC44NjU2MDM1OEUtNDAxMTE2NTEyIiwiIik7CisgIG1hdGh0ZXN0KDQ1MCxkZWYsIi04NzgwNS4zOTIxRS05MzQ4OTY2OTAiLCItMTg3NS4xNDc0NSIsIi0xODc1LjE0NzQ1IiwiMTg3NS4xNDc0NSIsIjEuNjQ2NDgwNTdFLTkzNDg5NjY4MiIsIjQuNjgyNTg2MDFFLTkzNDg5NjY4OSIsIjAiLCItOC43ODA1MzkyMUUtOTM0ODk2Njg2IiwiIik7CisgIG1hdGh0ZXN0KDQ1MSxkZWYsIi0yMzI1NDA2MDkuRSs2MDI3MDI1MjAiLCI2OC4wODM0MjIzIiwiLTIuMzI1NDA2MDlFKzYwMjcwMjUyOCIsIi0yLjMyNTQwNjA5RSs2MDI3MDI1MjgiLCItMS41ODMyMTYwNUUrNjAyNzAyNTMwIiwiLTMuNDE1NTI0NjhFKzYwMjcwMjUyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0NTIsZGVmLCItMzIwNjEwODAzLiIsIi04NjM4NzEyMzUuIiwiLTEuMTg0NDgyMDRFKzkiLCI1NDMyNjA0MzIiLCIyLjc2OTY2NDUwRSsxNyIsIjAuMzcxMTMyNjMiLCIwIiwiLTMyMDYxMDgwMyIsIiIpOworICBtYXRodGVzdCg0NTMsZGVmLCItMzAzOTU2MzY0RSsyNzgxMzk5NzkiLCIyMjk1MzcuOTIwRSs0Nzk2MDM3MjUiLCIyLjI5NTM3OTIwRSs0Nzk2MDM3MzAiLCItMi4yOTUzNzkyMEUrNDc5NjAzNzMwIiwiLTYuOTc2OTUxMTZFKzc1Nzc0MzcxNyIsIi0xLjMyNDIwOThFLTIwMTQ2Mzc0MyIsIjAiLCItMy4wMzk1NjM2NEUrMjc4MTM5OTg3IiwiOS4yMzg5NDcxMkUrNTU2Mjc5OTc0Iik7CisgIG1hdGh0ZXN0KDQ1NCxkZWYsIi00MzkuNzQ3MzQ4IiwiNzQuOTQ5NDQ1N0UtMzUzMTE3NTgyIiwiLTQzOS43NDczNDgiLCItNDM5Ljc0NzM0OCIsIi0zLjI5NTg4MjAwRS0zNTMxMTc1NzgiLCItNS44NjcyNTI4NEUrMzUzMTE3NTgyIiwiIiwiIiwiLTMuMTc5OTY2OTNFKzE4Iik7CisgIG1hdGh0ZXN0KDQ1NSxkZWYsIi04OTcwMjIzMS45IiwiMS4yODk5Mzk5MyIsIi04OTcwMjIzMC42IiwiLTg5NzAyMjMzLjIiLCItMTE1NzEwNDkxIiwiLTY5NTM5ODUyLjEiLCItNjk1Mzk4NTIiLCItMC4wNzg5MDk2NCIsIi04OTcwMjIzMS45Iik7CisgIG1hdGh0ZXN0KDQ1NixkZWYsIi01ODU2OTM5LjE0IiwiLTY3NDMzNzUuMzQiLCItMTI2MDAzMTQuNSIsIjg4NjQzNi4yMCIsIjMuOTQ5NTUzOTBFKzEzIiwiMC44Njg1NDcxMDciLCIwIiwiLTU4NTY5MzkuMTQiLCItMy4yOTIxMzI0OEUtNDU2MzY5NDIiKTsKKyAgbWF0aHRlc3QoNDU3LGRlZiwiNzMzMzE3LjY2OUUrMTAwMzgxMzQ5IiwiLTEzODMyLjY3OTJFKzE3NDA1NTYwNyIsIi0xLjM4MzI2NzkyRSsxNzQwNTU2MTEiLCIxLjM4MzI2NzkyRSsxNzQwNTU2MTEiLCItMS4wMTQzNzQ4MUUrMjc0NDM2OTY2IiwiLTUuMzAxMzQyMjdFLTczNjc0MjU3IiwiMCIsIjcuMzMzMTc2NjlFKzEwMDM4MTM1NCIsIjEuMzYzNjY1NDlFLTEwMDM4MTM1NSIpOworICBtYXRodGVzdCg0NTgsZGVmLCI4Ny40Nzk4Nzg3RS04MDEyNDcwNCIsIjEwODQ5Ny4zMiIsIjEwODQ5Ny4zMjAiLCItMTA4NDk3LjMyMCIsIjkuNDkxMzMyMzlFLTgwMTI0Njk4IiwiOC4wNjI4NjA3OUUtODAxMjQ3MDgiLCIwIiwiOC43NDc5ODc4N0UtODAxMjQ3MDMiLCIiKTsKKyAgbWF0aHRlc3QoNDU5LGRlZiwiLTY5NDU2MjA1MiIsIjMxMDY4MS4zMTlFKzU0OTQ0NTI2NCIsIjMuMTA2ODEzMTlFKzU0OTQ0NTI2OSIsIi0zLjEwNjgxMzE5RSs1NDk0NDUyNjkiLCItMi4xNTc4NzQ1NEUrNTQ5NDQ1Mjc4IiwiLTIuMjM1NjA5MzJFLTU0OTQ0NTI2MSIsIjAiLCItNjk0NTYyMDUyIiwiLTMuMzUwNjgxNTVFKzI2Iik7CisgIG1hdGh0ZXN0KDQ2MCxkZWYsIi05NzQ0MTM1Ljg1IiwiMTc5NzAxNi4wNCIsIi03OTQ3MTE5LjgxIiwiLTExNTQxMTUxLjkiLCItMS43NTEwMzY4NEUrMTMiLCItNS40MjIzOTc4MiIsIi01IiwiLTc1OTA1NS42NSIsIjMuODM4NDgwMDZFKzEyNTU4ODgzIik7CisgIG1hdGh0ZXN0KDQ2MSxkZWYsIjM2MjUuODczMDgiLCItNTAuMjIwODUzNkUrNjU4NjI3NDg3IiwiLTUuMDIyMDg1MzZFKzY1ODYyNzQ4OCIsIjUuMDIyMDg1MzZFKzY1ODYyNzQ4OCIsIi0xLjgyMDk0NDQxRSs2NTg2Mjc0OTIiLCItNy4yMTk4NTU1NEUtNjU4NjI3NDg2IiwiMCIsIjM2MjUuODczMDgiLCIxLjU5NTY0NzdFLTE4Iik7CisgIG1hdGh0ZXN0KDQ2MixkZWYsIjM2NTM0Ny41MiIsIi0zNjU1NDE0LjQ3IiwiLTMyOTAwNjYuOTUiLCI0MDIwNzYxLjk5IiwiLTEuMzM1NDk2NjFFKzEyIiwiLTAuMDk5OTQ2OTQ4IiwiMCIsIjM2NTM0Ny41MiIsIjEuMDI2NjMyNTdFLTIwMzMzOTk0Iik7CisgIG1hdGh0ZXN0KDQ2MyxkZWYsIi0xOTcwNjMzMy42RS04MTY5MjMwNTAiLCItMzgzODU4MDMyLiIsIi0zODM4NTgwMzIiLCIzODM4NTgwMzIiLCI3LjU2NDQzNDQzRS04MTY5MjMwMzUiLCI1LjEzMzc1NTdFLTgxNjkyMzA1MiIsIjAiLCItMS45NzA2MzMzNkUtODE2OTIzMDQzIiwiIik7CisgIG1hdGh0ZXN0KDQ2NCxkZWYsIi04NjM0Ni4yNjE2IiwiLTk4LjgwNjM3ODUiLCItODY0NDUuMDY4MCIsIi04NjI0Ny40NTUyIiwiODUzMTU2MS40MSIsIjg3My44OTM1OTgiLCI4NzMiLCItODguMjkzMTY5NSIsIi0yLjA1MDY0MDg2RS00ODkiKTsKKyAgbWF0aHRlc3QoNDY1LGRlZiwiLTQ0NTU4OC4xNjBFLTQ5NjU5MjIxNSIsIjMyOC44MjI5NzYiLCIzMjguODIyOTc2IiwiLTMyOC44MjI5NzYiLCItMS40NjUxOTYyNUUtNDk2NTkyMjA3IiwiLTEuMzU1MTAwNDRFLTQ5NjU5MjIxMiIsIjAiLCItNC40NTU4ODE2MEUtNDk2NTkyMjEwIiwiIik7CisgIG1hdGh0ZXN0KDQ2NixkZWYsIi05NzA5MjEzLjcxIiwiLTM0LjY2OTAxMzciLCItOTcwOTI0OC4zOCIsIi05NzA5MTc5LjA0IiwiMzM2NjA4ODYzIiwiMjgwMDU0LjUxMiIsIjI4MDA1NCIsIi0xNy43NDcyNjAyIiwiLTIuODA5MDM5NzRFLTI0NSIpOworICBtYXRodGVzdCg0NjcsZGVmLCI3NDIzOTU1MzYuIiwiLTQzNTMzLjY4ODkiLCI3NDIzNTIwMDIiLCI3NDI0MzkwNzAiLCItMy4yMzE5MjE2M0UrMTMiLCItMTcwNTMuMzU2OSIsIi0xNzA1MyIsIjE1NTM5LjE4ODMiLCI1Ljc2MjI3MzRFLTM4NjE3NSIpOworICBtYXRodGVzdCg0NjgsZGVmLCItODc4ODQ5MTkzLiIsIi01ODQyOTgyLjQ3RS05NzI1MzczNDIiLCItODc4ODQ5MTkzIiwiLTg3ODg0OTE5MyIsIjUuMTM1MTAwNDNFLTk3MjUzNzMyNyIsIjEuNTA0MTEwNjFFKzk3MjUzNzM0NCIsIiIsIiIsIjIuMTcwMjcwNDJFLTU0Iik7CisgIG1hdGh0ZXN0KDQ2OSxkZWYsIi03ODAxNDE0Mi4xIiwiLTYyNDY1OC41MjIiLCItNzg2Mzg4MDAuNiIsIi03NzM4OTQ4My42IiwiNC44NzMyMTk4N0UrMTMiLCIxMjQuODkwODYzIiwiMTI0IiwiLTU1NjQ4NS4zNzIiLCItNy44NjA2Mzg2NUUtNDkyOTkxOCIpOworICBtYXRodGVzdCg0NzAsZGVmLCI4NTcwMzkuMzcxIiwiNDU0LjM3OTY3MiIsIjg1NzQ5My43NTEiLCI4NTY1ODQuOTkxIiwiMzg5NDIxMjY4IiwiMTg4Ni4xNzQ1NCIsIjE4ODYiLCI3OS4zMDk2MDgiLCIzLjgyMjUzMTAxRSsyNjkzIik7CisgIG1hdGh0ZXN0KDQ3MSxkZWYsIjE2NjUzNDAxMC4iLCItMTczLjAxMjIzNiIsIjE2NjUzMzgzNyIsIjE2NjUzNDE4MyIsIi0yLjg4MTI0MjE0RSsxMCIsIi05NjI1NTYuMjU1IiwiLTk2MjU1NiIsIjQ0LjE2NDc4NCIsIjQuNzg2MjA2NjRFLTE0MjMiKTsKKyAgbWF0aHRlc3QoNDcyLGRlZiwiLTgxMC44NzkwNjMiLCI0Mzc3Ni42MTAiLCI0Mjk2NS43MzA5IiwiLTQ0NTg3LjQ4OTEiLCItMzU0OTc1MzYuNSIsIi0wLjAxODUyMzExMjMiLCIwIiwiLTgxMC44NzkwNjMiLCItMi4zNDc1ODY5MUUrMTI3MzQ1Iik7CisgIG1hdGh0ZXN0KDQ3MyxkZWYsIi0zMjcuMTI3OTM1IiwiOTM0NTg5NDQiLCI5MzQ1ODYxNi45IiwiLTkzNDU5MjcxLjEiLCItMy4wNTczMDMxNEUrMTAiLCItMC4wMDAwMDM1MDAyMzE0NSIsIjAiLCItMzI3LjEyNzkzNSIsIjIuMjkzMjMwMjFFKzIzNTAyMjg1NCIpOworICBtYXRodGVzdCg0NzQsZGVmLCI1MzkyOTUyMTguIiwiLTk1ODc5NDEuMTBFLTMwOTY0MzA5OCIsIjUzOTI5NTIxOCIsIjUzOTI5NTIxOCIsIi01LjE3MDczMDc5RS0zMDk2NDMwODMiLCItNS42MjQ3MjM5NEUrMzA5NjQzMDk5IiwiIiwiIiwiNC44MDU0NTI2OUUtODgiKTsKKyAgbWF0aHRlc3QoNDc1LGRlZiwiLTM4NjI3MDIuNjUiLCI4Nzk2MTYuNzMzIiwiLTI5ODMwODUuOTIiLCItNDc0MjMxOS4zOCIsIi0zLjM5NzY5Nzg5RSsxMiIsIi00LjM5MTM0NzQiLCItNCIsIi0zNDQyMzUuNzE4IiwiLTMuNTA2NTAxNjdFKzU3OTM5NDEiKTsKKyAgbWF0aHRlc3QoNDc2LGRlZiwiLTguMjUyOTA1MDAiLCI5OTIuMDkxNTg0RSsyNTYwNzAyNTciLCI5LjkyMDkxNTg0RSsyNTYwNzAyNTkiLCItOS45MjA5MTU4NEUrMjU2MDcwMjU5IiwiLTguMTg3NjM3NTlFKzI1NjA3MDI2MCIsIi04LjMxODY5MjY4RS0yNTYwNzAyNjAiLCIwIiwiLTguMjUyOTA1MDAiLCIxLjQ2NTc3ODg4RSs5Iik7CisgIG1hdGh0ZXN0KDQ3NyxkZWYsIjU0Njg3NTIwNS4iLCI0NDcuNTI4NTdFKzU1NzM1NzEwMSIsIjQuNDc1Mjg1NzBFKzU1NzM1NzEwMyIsIi00LjQ3NTI4NTcwRSs1NTczNTcxMDMiLCIyLjQ0NzQyMjc4RSs1NTczNTcxMTIiLCIxLjIyMTk4OTQ4RS01NTczNTcwOTUiLCIwIiwiNTQ2ODc1MjA1IiwiOC45NDQ0MzU0MkUrMzQiKTsKKyAgbWF0aHRlc3QoNDc4LGRlZiwiMTc3NjIzNDM3IiwiLTc3NzkxMTYuMTQiLCIxNjk4NDQzMjEiLCIxODU0MDI1NTMiLCItMS4zODE3NTMzNUUrMTUiLCItMjIuODMzMzciLCItMjIiLCI2NDgyODgxLjkyIiwiMi45MDA4NTMwOUUtNjQxNzM4MjAiKTsKKyAgbWF0aHRlc3QoNDc5LGRlZiwiMzc3MjA0NzM1LiIsIjEzNzY4LjE0MDEiLCIzNzcyMTg1MDMiLCIzNzcxOTA5NjciLCI1LjE5MzQwNzY0RSsxMiIsIjI3Mzk2LjkyNzQiLCIyNzM5NiIsIjEyNzY4LjgyMDQiLCIyLjA2MDY1Mjk3RSsxMTgwODIiKTsKKyAgbWF0aHRlc3QoNDgwLGRlZiwiLTI0MzUuNDkyMzkiLCItMTE3MzIuMDY0MEUtMjMzMzE1MDQiLCItMjQzNS40OTIzOSIsIi0yNDM1LjQ5MjM5IiwiMi44NTczMzUyNkUtMjMzMzE0OTciLCIyLjA3NTkyODMyRSsyMzMzMTUwMyIsIiIsIiIsIi0wLjAwMDQxMDU5NDU5Iik7CisgIG1hdGh0ZXN0KDQ4MSxkZWYsIi02MTI4NDY1LjE0RS0xMzcxMjMyOTQiLCItNTc0MjI2NC4yNyIsIi01NzQyMjY0LjI3IiwiNTc0MjI2NC4yNyIsIjMuNTE5MTI2NjRFLTEzNzEyMzI4MSIsIjEuMDY3MjU1ODVFLTEzNzEyMzI5NCIsIjAiLCItNi4xMjg0NjUxNEUtMTM3MTIzMjg4IiwiIik7CisgIG1hdGh0ZXN0KDQ4MixkZWYsIi0yODk4MDY1LjQ0IiwiLTUuMTE2MzgxMDUiLCItMjg5ODA3MC41NiIsIi0yODk4MDYwLjMyIiwiMTQ4Mjc2MDcuMSIsIjU2NjQyOC43NzMiLCI1NjY0MjgiLCItMy45NTQ2MTA2MCIsIi00Ljg5MTY5MTUxRS0zMyIpOworICBtYXRodGVzdCg0ODMsZGVmLCIxODUxMzk1LjMxRSs1OTQzODMxNjAiLCItNTUwMzAxLjQ3NSIsIjEuODUxMzk1MzFFKzU5NDM4MzE2NiIsIjEuODUxMzk1MzFFKzU5NDM4MzE2NiIsIi0xLjAxODgyNTU3RSs1OTQzODMxNzIiLCItMy4zNjQzMjkxOEUrNTk0MzgzMTYwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ4NCxkZWYsIjUzNjQxMjU4OS5FKzM3OTU4Mzk3NyIsIjg5OS42MDExNjEiLCI1LjM2NDEyNTg5RSszNzk1ODM5ODUiLCI1LjM2NDEyNTg5RSszNzk1ODM5ODUiLCI0LjgyNTU3Mzg4RSszNzk1ODM5ODgiLCI1Ljk2Mjc4MjMxRSszNzk1ODM5ODIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDg1LGRlZiwiMTg1Ljg1Mjk3IiwiODY3NDE5NDgwLiIsIjg2NzQxOTY2NiIsIi04Njc0MTkyOTQiLCIxLjYxMjEyNDg3RSsxMSIsIjIuMTQyNTk2MjJFLTciLCIwIiwiMTg1Ljg1Mjk3IiwiIik7CisgIG1hdGh0ZXN0KDQ4NixkZWYsIi01LjI2NjMxMDUzIiwiLTM4MTU5NDEuMzVFKzE4MzI5MTc2MyIsIi0zLjgxNTk0MTM1RSsxODMyOTE3NjkiLCIzLjgxNTk0MTM1RSsxODMyOTE3NjkiLCIyLjAwOTU5MzIxRSsxODMyOTE3NzAiLCIxLjM4MDA4MTYyRS0xODMyOTE3NjkiLCIwIiwiLTUuMjY2MzEwNTMiLCIwLjAwMTMwMDA5MjE4Iik7CisgIG1hdGh0ZXN0KDQ4NyxkZWYsIi04LjExNTg3MDIxRS0yNDU5NDI4MDYiLCI0NTUzLjA2NzUzRSs5NDM0MTIwNDgiLCI0LjU1MzA2NzUzRSs5NDM0MTIwNTEiLCItNC41NTMwNjc1M0UrOTQzNDEyMDUxIiwiLTMuNjk1MjEwNTFFKzY5NzQ2OTI0NiIsIiIsIjAiLCItOC4xMTU4NzAyMUUtMjQ1OTQyODA2IiwiIik7CisgIG1hdGh0ZXN0KDQ4OCxkZWYsIi00MDU3NjUuMzUyIiwiODU0OTYzMjMxIiwiODU0NTU3NDY2IiwiLTg1NTM2ODk5NiIsIi0zLjQ2OTE0NDU2RSsxNCIsIi0wLjAwMDQ3NDU5OTc2OSIsIjAiLCItNDA1NzY1LjM1MiIsIiIpOworICBtYXRodGVzdCg0ODksZGVmLCItMTU5LjYwOTc1NyIsIi00MzM1Ni43NTY3IiwiLTQzNTE2LjM2NjUiLCI0MzE5Ny4xNDcwIiwiNjkyMDE2MS40MCIsIjAuMDAzNjgxMzEyMTkiLCIwIiwiLTE1OS42MDk3NTciLCItOC45NTM5Nzg0OUUtOTU1MTkiKTsKKyAgbWF0aHRlc3QoNDkwLGRlZiwiLTU2NDI0MC4yNDFFLTUwMTMxNjY3MiIsIi01NTcuNzgxOTc3IiwiLTU1Ny43ODE5NzciLCI1NTcuNzgxOTc3IiwiMy4xNDcyMzAzN0UtNTAxMzE2NjY0IiwiMS4wMTE1Nzg0N0UtNTAxMzE2NjY5IiwiMCIsIi01LjY0MjQwMjQxRS01MDEzMTY2NjciLCIiKTsKKyAgbWF0aHRlc3QoNDkxLGRlZiwiMzE4ODQ3LjI3MCIsIjU4MjEwNzg3OC5FKzM5OTYzMzQxMiIsIjUuODIxMDc4NzhFKzM5OTYzMzQyMCIsIi01LjgyMTA3ODc4RSszOTk2MzM0MjAiLCIxLjg1NjAzNTA4RSszOTk2MzM0MjYiLCI1LjQ3NzQ2MDE0RS0zOTk2MzM0MTYiLCIwIiwiMzE4ODQ3LjI3MCIsIjEuMDUwNzQyM0UrMzMiKTsKKyAgbWF0aHRlc3QoNDkyLGRlZiwiLTQ0MjYuNTk2NjMiLCI5NS4xMDk2NzY1IiwiLTQzMzEuNDg2OTUiLCItNDUyMS43MDYzMSIsIi00MjEwMTIuMTczIiwiLTQ2LjU0MjAyMTciLCItNDYiLCItNTEuNTUxNTExMCIsIi0yLjM4MDM3Mzc5RSszNDYiKTsKKyAgbWF0aHRlc3QoNDkzLGRlZiwiNjAzNy4yODMxMCIsIjU3ODI2NC4xMDUiLCI1ODQzMDEuMzg4IiwiLTU3MjIyNi44MjIiLCIzLjQ5MTE0NDExRSs5IiwiMC4wMTA0NDAzNTYiLCIwIiwiNjAzNy4yODMxMCIsIjMuNTcyNzk0ODNFKzIxODYzMjQiKTsKKyAgbWF0aHRlc3QoNDk0LGRlZiwiLTY2Ljk1NTY2OTIiLCItNTMuODUxOTQwNCIsIi0xMjAuODA3NjEwIiwiLTEzLjEwMzcyODgiLCIzNjA1LjY5MjcxIiwiMS4yNDMzMjg4MSIsIjEiLCItMTMuMTAzNzI4OCIsIjIuNTU1NTQwODZFLTk5Iik7CisgIG1hdGh0ZXN0KDQ5NSxkZWYsIi05MjQ4Ni4wMjIyIiwiLTU5OTM1Ljg1NDQiLCItMTUyNDIxLjg3NyIsIi0zMjU1MC4xNjc4IiwiNS41NDMyMjg3NkUrOSIsIjEuNTQzMDgzNCIsIjEiLCItMzI1NTAuMTY3OCIsIjEuODMxNTI2NTZFLTI5NzY0NyIpOworICBtYXRodGVzdCg0OTYsZGVmLCI4NTIxMzYyMTkuRSs5MTc3ODczNTEiLCI5MjQ2MjIxLjkxIiwiOC41MjEzNjIxOUUrOTE3Nzg3MzU5IiwiOC41MjEzNjIxOUUrOTE3Nzg3MzU5IiwiNy44NzkwNDA1OEUrOTE3Nzg3MzY2IiwiOS4yMTYwNDc2N0UrOTE3Nzg3MzUyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ5NyxkZWYsIi0yMTIwMDk2LjE2RS0yNjkyNTM3MTgiLCI5NDM3LjAwNTE0IiwiOTQzNy4wMDUxNCIsIi05NDM3LjAwNTE0IiwiLTIuMDAwNzM1ODRFLTI2OTI1MzcwOCIsIi0yLjI0NjU3NzMxRS0yNjkyNTM3MTYiLCIwIiwiLTIuMTIwMDk2MTZFLTI2OTI1MzcxMiIsIiIpOworICBtYXRodGVzdCg0OTgsZGVmLCItNTI0NjUzLjE2OUUtODY1Nzg0MjI2IiwiMjI4MDU0LjY5OCIsIjIyODA1NC42OTgiLCItMjI4MDU0LjY5OCIsIi0xLjE5NjQ5NjIwRS04NjU3ODQyMTUiLCItMi4zMDA1NTg0OEUtODY1Nzg0MjI2IiwiMCIsIi01LjI0NjUzMTY5RS04NjU3ODQyMjEiLCIiKTsKKyAgbWF0aHRlc3QoNDk5LGRlZiwiLTI4ODE5MzEzMyIsIi0zMTIyNjg3MzcuIiwiLTYwMDQ2MTg3MCIsIjI0MDc1NjA0IiwiOC45OTkzNzA1N0UrMTYiLCIwLjkyMjkwMTAxMSIsIjAiLCItMjg4MTkzMTMzIiwiIik7CisgIG1hdGh0ZXN0KDUwMCxkZWYsIi0zNzM0ODQ3NTlFLTExMzU4OTk2NCIsIjg0NDEwMTk1OEUtODUyNTM4MjQwIiwiLTMuNzM0ODQ3NTlFLTExMzU4OTk1NiIsIi0zLjczNDg0NzU5RS0xMTM1ODk5NTYiLCItMy4xNTI1OTIxNkUtOTY2MTI4MTg3IiwiLTQuNDI0NjQwMzZFKzczODk0ODI3NSIsIiIsIiIsIjMuNzg2MDIxNDdFLTkwODcxOTY0NCIpOworICAKKyAgc3VtbWFyeSgiQXJpdGhtZXRpYyIpOworIH0KKworIC8qIG1hdGh0ZXN0IC0tIGdlbmVyYWwgYXJpdGhtZXRpYyB0ZXN0IHJvdXRpbmUKKyAgICBBcmcxICBpcyB0ZXN0IG51bWJlcgorICAgIEFyZzIgIGlzIE1hdGhDb250ZXh0CisgICAgQXJnMyAgaXMgbGVmdCBoYW5kIHNpZGUgKExIUykKKyAgICBBcmc0ICBpcyByaWdodCBoYW5kIHNpZGUgKFJIUykKKyAgICBBcmc1ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBhZGQKKyAgICBBcmc2ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzdWJ0cmFjdAorICAgIEFyZzcgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIG11bHRpcGx5CisgICAgQXJnOCAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgZGl2aWRlCisgICAgQXJnOSAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgaW50ZWdlckRpdmlkZQorICAgIEFyZzEwIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHJlbWFpbmRlcgorICAgIEFyZzExIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHBvd2VyCisgCisgIEZvciBwb3dlciBSSFMsIDAgaXMgYWRkZWQgdG8gdGhlIG51bWJlciwgYW55IGV4cG9uZW50IGlzIHJlbW92ZWQgYW5kCisgIHRoZSBudW1iZXIgaXMgdGhlbiByb3VuZGVkIHRvIGFuIGludGVnZXIsIHVzaW5nIGZvcm1hdChyaHMrMCwsMCkKKyAKKyAgSWYgYW4gZXJyb3Igc2hvdWxkIHJlc3VsdCBmb3IgYW4gb3BlcmF0aW9uLCB0aGUgJ2V4cGVjdGVkIHJlc3VsdCcgaXMKKyAgYW4gZW1wdHkgc3RyaW5nLgorICAqLworIAorIHByaXZhdGUgdm9pZCBtYXRodGVzdChpbnQgdGVzdCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jLGphdmEubGFuZy5TdHJpbmcgc2xocyxqYXZhLmxhbmcuU3RyaW5nIHNyaHMsamF2YS5sYW5nLlN0cmluZyBhZGQsamF2YS5sYW5nLlN0cmluZyBzdWIsamF2YS5sYW5nLlN0cmluZyBtdWwsamF2YS5sYW5nLlN0cmluZyBkaXYsamF2YS5sYW5nLlN0cmluZyBpZHYsamF2YS5sYW5nLlN0cmluZyByZW0samF2YS5sYW5nLlN0cmluZyBwb3cpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzOworICBqYXZhLmxhbmcuU3RyaW5nIHJlcz1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIHNuPW51bGw7CisgIGludCBlPTA7CisgIAorICAKKyAgCisgIGxocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNsaHMpOworICByaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcmhzKTsKKyAgCisgIHRyeXsKKyAgIHJlcz1saHMuYWRkKHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzNyl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsImFkZCIscmVzLGFkZCk7CisgIAorICB0cnl7CisgICByZXM9bGhzLnN1YnRyYWN0KHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzOCl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsInN1YiIscmVzLHN1Yik7CisgIAorICB0cnl7CisgICByZXM9bGhzLm11bHRpcGx5KHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzOSl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsIm11bCIscmVzLG11bCk7CisgIAorICB0cnl7CisgICByZXM9bGhzLmRpdmlkZShyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDApeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJkaXYiLHJlcyxkaXYpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5kaXZpZGVJbnRlZ2VyKHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDE0MSl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsImlkdiIscmVzLGlkdik7CisgIAorICB0cnl7CisgICByZXM9bGhzLnJlbWFpbmRlcihyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDIpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJyZW0iLHJlcyxyZW0pOworICAKKyAgdHJ5eworICAgLy8gcHJlcGFyZSBhbiBpbnRlZ2VyIGZyb20gdGhlIHJocworICAgLy8gaW4gUmV4eDoKKyAgIC8vICAgbj1yaHMrMAorICAgLy8gICBlPXBvcygnRScsIG4pCisgICAvLyAgIGlmIGU+MCB0aGVuIG49bGVmdChuLGUtMSkKKyAgIC8vICAgbj1mb3JtYXQobiwsMCkKKyAgIAorICAgc249cmhzLnBsdXMobWMpLnRvU3RyaW5nKCk7CisgICBlPXNuLmluZGV4T2YoIkUiLDApOworICAgaWYgKGU+MCkgCisgICAgc249c24uc3Vic3RyaW5nKDAsZSk7CisgICBzbj0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbikpLmZvcm1hdCgtMSwwKTsKKyAgIAorICAgcmVzPWxocy5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbiksbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDMpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJwb3ciLHJlcyxwb3cpOworICByZXR1cm47CisgIH0KKworIC8qIG1hdGh0ZXN0Y2hlY2sgLS0gY2hlY2sgZm9yIGdlbmVyYWwgbWF0aHRlc3QgZXJyb3IKKyAgICBBcmcxICBpcyB0ZXN0IG51bWJlcgorICAgIEFyZzIgIGlzIGxlZnQgaGFuZCBzaWRlIChMSFMpCisgICAgQXJnMyAgaXMgcmlnaHQgaGFuZCBzaWRlIChSSFMpCisgICAgQXJnNCAgaXMgdGhlIG9wZXJhdGlvbgorICAgIEFyZzUgIGlzIHRoZSBhY3R1YWwgcmVzdWx0CisgICAgQXJnNiAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdAorICAgIFNob3cgZXJyb3IgbWVzc2FnZSBpZiBhIHByb2JsZW0sIG90aGVyd2lzZSByZXR1cm4gcXVpZXRseQorICAgICovCisgCisgcHJpdmF0ZSB2b2lkIG1hdGh0ZXN0Y2hlY2soaW50IHRlc3QsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxocyxjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGphdmEubGFuZy5TdHJpbmcgb3AsamF2YS5sYW5nLlN0cmluZyBnb3QsamF2YS5sYW5nLlN0cmluZyB3YW50KXsKKyAgYm9vbGVhbiBmbGFnOworICBqYXZhLmxhbmcuU3RyaW5nIHRlc3RudW07CisgIAorICBmbGFnPXdhbnQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWdvdCk7CisgIAorICBpZiAoKCFmbGFnKSkgCisgICBzYXkoIj4iK3Rlc3QrIj4iKyIgIitsaHMudG9TdHJpbmcoKSsiICIrb3ArIiAiK3Jocy50b1N0cmluZygpKyIgIisiPSIrIiAiK3dhbnQrIiAiKyJbZ290IisiICIrZ290KyJdIik7CisgIAorICB0ZXN0bnVtPSJnZW4iK3JpZ2h0KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHRlc3QrMTAwMCkpLnRvU3RyaW5nKCksMyk7CisgIAorICAobmV3IFRlc3QodGVzdG51bSkpLm9rPWZsYWc7CisgIHJldHVybjsKKyAgfQorCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogU3VwcG9ydCByb3V0aW5lcyBhbmQgbWlub3IgY2xhc3NlcyBmb2xsb3cgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBNZXRob2QgY2FsbGVkIHRvIHN1bW1hcmlzZSBwZW5kaW5nIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQXJnMSBpcyBzZWN0aW9uIG5hbWUgKi8KKyAKKyBwcml2YXRlIHZvaWQgc3VtbWFyeShqYXZhLmxhbmcuU3RyaW5nIHNlY3Rpb24peworICBpbnQgYmFkOworICBpbnQgY291bnQ7CisgIGludCBpPTA7CisgIFRlc3QgaXRlbT1udWxsOworICBiYWQ9MDsKKyAgY291bnQ9VGVzdHMuc2l6ZSgpOworICB7aW50ICQxNDQ9Y291bnQ7aT0wO2k6Zm9yKDskMTQ0PjA7JDE0NC0tLGkrKyl7CisgICBpdGVtPShUZXN0KShUZXN0cy5lbGVtZW50QXQoaSkpOworICAgaWYgKCghaXRlbS5vaykpIAorICAgIHsKKyAgICAgYmFkKys7CisgICAgIGVycmxuKCJGYWlsZWQ6IisiICIraXRlbS5uYW1lKTsKKyAgICB9CisgICB9CisgIH0vKmkqLworICB0b3RhbGNvdW50PXRvdGFsY291bnQrY291bnQ7CisgIFRlc3RzPW5ldyBqYXZhLnV0aWwuVmVjdG9yKDEwMCk7IC8vIHJlaW5pdGlhbGl6ZQorICBpZiAoYmFkPT0wKSAKKyAgIHNheSgiT0siKyIgIitsZWZ0KHNlY3Rpb24sMTQpKyIgIityaWdodCgiWyIrY291bnQrIiAiKyJ0ZXN0c10iLDEyKSk7CisgIGVsc2UgCisgICB0aHJvdyBuZXcgRGlhZ0V4Y2VwdGlvbihzZWN0aW9uKyIgIisiW2ZhaWxlZCIrIiAiK2JhZCsiICIrIm9mIisiICIrY291bnQrIiAiKyJ0ZXN0c10iLGJhZCk7CisgfQorCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiByaWdodCAtIFV0aWxpdHkgdG8gZG8gYSAncmlnaHQnIG9uIGEgSmF2YSBTdHJpbmcgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQXJnMSBpcyBzdHJpbmcgdG8gcmlnaHQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHJpZ2h0KGphdmEubGFuZy5TdHJpbmcgcyxpbnQgbGVuKXsKKyAgaW50IHNsZW47CisgIHNsZW49cy5sZW5ndGgoKTsKKyAgaWYgKHNsZW49PWxlbikgCisgICByZXR1cm4gczsgLy8gbGVuZ3RoIGp1c3QgcmlnaHQKKyAgaWYgKHNsZW4+bGVuKSAKKyAgIHJldHVybiBzLnN1YnN0cmluZyhzbGVuLWxlbik7IC8vIHRydW5jYXRlIG9uIGxlZnQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiAobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKS5jb25jYXQocyk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogbGVmdCAtIFV0aWxpdHkgdG8gZG8gYSAnbGVmdCcgb24gYSBKYXZhIFN0cmluZyAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGxlZnQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGxlZnQoamF2YS5sYW5nLlN0cmluZyBzLGludCBsZW4peworICBpbnQgc2xlbjsKKyAgc2xlbj1zLmxlbmd0aCgpOworICBpZiAoc2xlbj09bGVuKSAKKyAgIHJldHVybiBzOyAvLyBsZW5ndGgganVzdCByaWdodAorICBpZiAoc2xlbj5sZW4pIAorICAgcmV0dXJuIHMuc3Vic3RyaW5nKDAsbGVuKTsgLy8gdHJ1bmNhdGUgb24gcmlnaHQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiBzLmNvbmNhdCgobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKSk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogc2F5IC0gVXRpbGl0eSB0byBkbyBhIGRpc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGRpc3BsYXksIG9taXR0ZWQgaWYgbm9uZSAqLworIC8qICAgICAgICAgW251bGwgb3Igb21pdHRlZCBnaXZlcyBibGFuayBsaW5lXSAqLworIC8vIHRoaXMgdmVyc2lvbiBkb2Vzbid0IGhlZWQgY29udGludWF0aW9uIGZpbmFsIGNoYXJhY3RlcgorIAorIHByaXZhdGUgdm9pZCBzYXkoKXsKKyAgc2F5KChqYXZhLmxhbmcuU3RyaW5nKW51bGwpO3JldHVybjsKKyAgfQorIHByaXZhdGUgdm9pZCBzYXkoamF2YS5sYW5nLlN0cmluZyBzKXsKKyAgaWYgKHM9PW51bGwpIAorICAgcz0iICAiOworICBsb2dsbihzKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFNjYWZmb2xkaW5nIGZvciBzdGFuZC1hbG9uZSBydW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiogRW50cnkgcG9pbnQgZm9yIHN0YW5kLWFsb25lIHJ1bi4gIEl0IGNvbnN0cnVjdHMgYQorICAqICA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGFuZCB0aGVuIGludm9rZXMgaXRzCisgICogIHtAbGluayAjZGlhZ3J1bihib29sZWFuKX0gbWV0aG9kIHRvIHJ1biB0aGUgdGVzdAorICAqICBzdWl0ZS4KKyAgKgorICAqIEBwYXJhbSBhcmdzIFRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgc3RyaW5nIGFycmF5LgorICAqICAgaWYgdGhlIGZpcnN0IHdvcmQgaXMgJzxjb2RlPmNvbnRpbnVlPC9jb2RlPicgdGhlbiB0cnkgYW5kIHJ1bgorICAqICAgYWxsIHRlc3RzLCBvdGhlcndpc2Ugc3RvcCBhZnRlciB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IGdyb3VwLgorICAqLworIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgbmV3IERpYWdCaWdEZWNpbWFsKCkucnVuKGFyZ3MpOworIH0KKyBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbCgpeworICAgICAgYm9vbGVhbiAkY29udGludWU7CisgICAgICBpbnQgZmFpbHM7CisgICAgICAkY29udGludWU9ZmFsc2U7CisgICAgICBmYWlscz1kaWFncnVuKCRjb250aW51ZSk7IC8vIGFuZCBydW4gdGhlIHRlc3RzCisgICAgICBpZihmYWlscyE9MCkgeworICAgICAgICAgZXJybG4oIkRpYWdub3N0aWMgVGVzdHMgZm9yIG1hdGggZmFpbGVkLiBOdW1iZXIgb2YgZXJyb3JzOiAiICtmYWlscyk7CisgICAgICB9CisgIH0KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBUZXN0IC0tIHJlcHJlc2VudHMgYSB0ZXN0IGFuZCBpdHMgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAxOTk4LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICovCisvKiBBdXRob3I6IE1pa2UgQ293bGlzaGF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogMTk5OC4wNy4xNSBJbml0aWFsIHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAzLjI3IENoYW5nZSB0byBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworLyoqCisgKiBUaGUgPGNvZGU+VGVzdDwvY29kZT4gY2xhc3MgaXMgdXNlZCB0byByZWNvcmQgYSBzcGVjaWZpYyB0ZXN0LgorICogV2hlbiBjb25zdHJ1Y3RlZCwgaXQgbm90ZXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgYW5kIGFkZHMgdGhlIHRlc3QKKyAqIHRvIHRoZSBsaXN0IG9mIHRlc3RzIGhlbGQgYnkgdGhlIHBhcmVudC4KKyAqCisgKiBJdHMgPGNvZGU+b2s8L2ZsYWc+IGlzIGFzc2lnbmVkIGRpcmVjdGx5IHRvIHJlY29yZCB3aGV0aGVyIHRoZQorICogdGVzdCBzdWNjZWVkZWQgKDEpIG9yIGZhaWxlZCAoMCkuCisgKgorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsCisgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKi8KKyAKKyBwdWJsaWMgY2xhc3MgVGVzdHsKKyAgcHJpdmF0ZSBmaW5hbCB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAgLyogcHJvcGVydGllcyBzaGFyZWQgdHJhbnNpZW50ICovCisgLyoqIFRoZSBuYW1lIG9mIHRoZSB0ZXN0LiAqLworICB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyBuYW1lOworIC8qKiBTdWNjZXNzIGZsYWc7IHdpbGwgYmUgc2V0IHRvIDEgKHRydWUpIGlmIHRoZSB0ZXN0IHN1Y2NlZWRlZCwgb3IgMAorICAqIChmYWxzZSkgaWYgdGhlIHRlc3QgZmFpbGVkLgorICAqLworICB0cmFuc2llbnQgYm9vbGVhbiBvazsKKworIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VGVzdDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAqCisgICogQHBhcmFtIHRlc3RuYW1lIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IG5hbWluZyB0aGUgdGVzdC4KKyAgKi8KKyAgCisgIHB1YmxpYyBUZXN0KGphdmEubGFuZy5TdHJpbmcgdGVzdG5hbWUpe3N1cGVyKCk7CisgICBuYW1lPXRlc3RuYW1lOyAvLyBzYXZlIHRoZSBuYW1lCisgICBEaWFnQmlnRGVjaW1hbC50aGlzLlRlc3RzLmFkZEVsZW1lbnQoKGphdmEubGFuZy5PYmplY3QpdGhpcyk7IC8vIGFuZCBhZGQgdG8gcGFyZW50J3MgbGlzdAorICB9CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIERpYWdFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMTk5NiwgMjAwMC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAqLworIC8qIEF1dGhvcjogTWlrZSBDb3dsaXNoYXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIDE5OTYuMDUuMjcgSW5pdGlhbCB2ZXJzaW9uIGluIE5ldFJleHggKGFzIERpYWdYKSAgICAgICAgICAgICAgICAgICAqLworIC8qIDE5OTguMDYuMjUgQ29waWVkIGZyb20gTmV0UmV4eCB0ZXN0IHN1aXRlICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIDE5OTkuMDcuMDMgQWRkIGZhaWwgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIDIwMDAuMDMuMjcgQ2hhbmdlIHRvIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIAorIC8qKgorICAqIFRoZSA8Y29kZT5EaWFnRXhjZXB0aW9uPC9jb2RlPiBjbGFzcyBpcyB1c2VkIHRvIHNpZ25hbCB0aGUgZmFpbHVyZQorICAqIG9mIGEgdGVzdCBncm91cC4gIEl0IHJlY29yZHMgdGhlIG51bWJlciBvZiBmYWlsdXJlcyBpbiB0aGUgZ3JvdXAuCisgICoKKyAgKiBAc2VlICAgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwKKyAgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICAqLworIAorIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGlhZ0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9ueworICBwcml2YXRlIGZpbmFsIHRyYW5zaWVudCBqYXZhLmxhbmcuU3RyaW5nICQwPSJEaWFnQmlnRGVjaW1hbC5ucngiOworIAorICAvKiBwcm9wZXJ0aWVzIHNoYXJlZCB0cmFuc2llbnQgKi8KKyAvKiogdGhlIGNvdW50IG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGUgZ3JvdXAgd2hpY2ggc2lnbmFsbGVkIHRoaXMKKyAgICogZXhjZXB0aW9uLgorICAgKi8KKyAgdHJhbnNpZW50IGludCBmYWlsY291bnQ9MDsKKyAvLyBudW1iZXIgb2YgdGVzdHMgd2hpY2ggZmFpbGVkCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5EaWFnRXhjZXB0aW9uPC9jb2RlPiB3aXRoIGEgbWVzc2FnZSBhbmQKKyAgKiBmYWlsdXJlIGNvdW50LiAgVGhpcyBpcyB0aHJvd24gd2hlbiBhIGdyb3VwIG9mIHRlc3RzIGZhaWxzLgorICAqCisgICogQHBhcmFtIG1lc3NhZ2UgVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBncm91cC4KKyAgKiBAcGFyYW0gZmFpbHMgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBudW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoZSAgZ3JvdXAuCisgICovCisgIAorICBwdWJsaWMgRGlhZ0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIG1lc3NhZ2UsaW50IGZhaWxzKXsKKyAgIHN1cGVyKG1lc3NhZ2UpOworICAgZmFpbGNvdW50PWZhaWxzOworICB9CisgfX0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDMyYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0FzdHJvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjkzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworLy8gQXN0cm9UZXN0CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXIuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisKKy8vIFRPRE86IHRyeSBmaW5kaW5nIG5leHQgbmV3IG1vb24gYWZ0ZXIgIDA3LzI4LzE5ODQgMTY6MDAgR01UCisKK3B1YmxpYyBjbGFzcyBBc3Ryb1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBBc3Ryb1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBQSSA9IE1hdGguUEk7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U29sYXJMb25naXR1ZGUoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIGZpbmFsIGRvdWJsZSB0ZXN0c1tdW10gPSB7CisgICAgICAgICAgICB7IDE5ODAsIDcsIDI3LCAwMCwgMDAsIDEyNC4xMTQzNDcgfSwKKyAgICAgICAgICAgIHsgMTk4OCwgNywgMjcsIDAwLCAwMCwgMTI0LjE4NzczMiB9LAorICAgICAgICB9OworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgICAgICBnYy5zZXQoKGludCl0ZXN0c1tpXVswXSwgKGludCl0ZXN0c1tpXVsxXS0xLCAoaW50KXRlc3RzW2ldWzJdLCAoaW50KXRlc3RzW2ldWzNdLCAoaW50KSB0ZXN0c1tpXVs0XSk7CisKKyAgICAgICAgICAgIGFzdHJvLnNldERhdGUoZ2MuZ2V0VGltZSgpKTsKKworICAgICAgICAgICAgZG91YmxlIGxvbmdpdHVkZSA9IGFzdHJvLmdldFN1bkxvbmdpdHVkZSgpOworICAgICAgICAgICAgbG9uZ2l0dWRlID0gMDsKKyAgICAgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZ2V0U3VuUG9zaXRpb24oKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0THVuYXJQb3NpdGlvbigpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgZmluYWwgZG91YmxlIHRlc3RzW11bXSA9IHsKKyAgICAgICAgICAgIHsgMTk3OSwgMiwgMjYsIDE2LCAwMCwgIDAsIDAgfSwKKyAgICAgICAgfTsKKyAgICAgICAgbG9nbG4oIiIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgICAgICBnYy5zZXQoKGludCl0ZXN0c1tpXVswXSwgKGludCl0ZXN0c1tpXVsxXS0xLCAoaW50KXRlc3RzW2ldWzJdLCAoaW50KXRlc3RzW2ldWzNdLCAoaW50KSB0ZXN0c1tpXVs0XSk7CisgICAgICAgICAgICBhc3Ryby5zZXREYXRlKGdjLmdldFRpbWUoKSk7CisKKyAgICAgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZ2V0TW9vblBvc2l0aW9uKCk7CisgICAgICAgICAgICByZXN1bHQgPSBudWxsOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29vcmRpbmF0ZXMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoMTM5LjY4NjExMSAqIFBJLyAxODAuMCwgNC44NzUyNzgqIFBJIC8gMTgwLjApOworICAgICAgICBsb2dsbigicmVzdWx0IGlzICIgKyByZXN1bHQgKyAiOyAgIiArIHJlc3VsdC50b0htc1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk1OCwgQ2FsZW5kYXIuQVVHVVNULCAxNSk7CisgICAgICAgIERhdGUgdGhlbiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcih0aGVuKTsKKworICAgICAgICAvL0xhdGl0dWRlOiAgMzQgZGVncmVlcyAwNScgTm9ydGgKKyAgICAgICAgLy9Mb25naXR1ZGU6ICAxMTggZGVncmVlcyAyMicgV2VzdAorICAgICAgICBkb3VibGUgbGFMYXQgPSAzNCArIDVkLzYwLCBsYUxvbmcgPSAzNjAgLSAoMTE4ICsgMjJkLzYwKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIG15YXN0cm8yID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcihsYUxvbmcsIGxhTGF0KTsKKworICAgICAgICBkb3VibGUgZWNsTGF0ID0gbGFMYXQgKiBNYXRoLlBJIC8gMzYwOworICAgICAgICBkb3VibGUgZWNsTG9uZyA9IGxhTG9uZyAqIE1hdGguUEkgLyAzNjA7CisgICAgICAgIEVjbGlwdGljIGVjbCA9IG5ldyBFY2xpcHRpYyhlY2xMYXQsIGVjbExvbmcpOworICAgICAgICBsb2dsbigiZWNsaXB0aWM6ICIgKyBlY2wpOworCisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvMyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgbXlhc3RybzMuc2V0SnVsaWFuRGF5KCg0NzEzICsgMjAwMCkgKiAzNjUuMjUpOworCisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lcltdIGFzdHJvbm9tZXJzID0geworICAgICAgICAgICAgbXlhc3RybywgbXlhc3RybzIsIG15YXN0cm8zLCBteWFzdHJvMiAvLyBjaGVjayBjYWNoZQorCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhc3Ryb25vbWVycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gYXN0cm9ub21lcnNbaV07CisKKyAgICAgICAgICAgIGxvZ2xuKCJhc3RybzogIiArIGFzdHJvKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICB0aW1lOiAiICsgYXN0cm8uZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBkYXRlOiAiICsgYXN0cm8uZ2V0RGF0ZSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBjZW50OiAiICsgYXN0cm8uZ2V0SnVsaWFuQ2VudHVyeSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBndyBzaWRlcmVhbDogIiArIGFzdHJvLmdldEdyZWVud2ljaFNpZGVyZWFsKCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIGxvYyBzaWRlcmVhbDogIiArIGFzdHJvLmdldExvY2FsU2lkZXJlYWwoKSk7CisgICAgICAgICAgICBsb2dsbigiICAgZXF1IGVjbDogIiArIGFzdHJvLmVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIGVxdSBsb25nOiAiICsgYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsTG9uZykpOworICAgICAgICAgICAgbG9nbG4oIiAgIGhvcml6OiAiICsgYXN0cm8uZWNsaXB0aWNUb0hvcml6b24oZWNsTG9uZykpOworICAgICAgICAgICAgbG9nbG4oIiAgIHN1bnJpc2U6ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRTdW5SaXNlU2V0KHRydWUpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgc3Vuc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldChmYWxzZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBtb29uIHBoYXNlOiAiICsgYXN0cm8uZ2V0TW9vblBoYXNlKCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIG1vb25yaXNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblJpc2VTZXQodHJ1ZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBtb29uc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblJpc2VTZXQoZmFsc2UpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgcHJldiBzdW1tZXIgc29sc3RpY2U6ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRTdW5UaW1lKENhbGVuZGFyQXN0cm9ub21lci5TVU1NRVJfU09MU1RJQ0UsIGZhbHNlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIG5leHQgc3VtbWVyIHNvbHN0aWNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuVGltZShDYWxlbmRhckFzdHJvbm9tZXIuU1VNTUVSX1NPTFNUSUNFLCB0cnVlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIHByZXYgZnVsbCBtb29uOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLkZVTExfTU9PTiwgZmFsc2UpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgbmV4dCBmdWxsIG1vb246ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRNb29uVGltZShDYWxlbmRhckFzdHJvbm9tZXIuRlVMTF9NT09OLCB0cnVlKSkpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBEQVlfTVMgPSAyNCo2MCo2MCoxMDAwTDsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdW5yaXNlVGltZXMoKSB7CisKKyAgICAgICAgLy8gICAgICAgIGxvZ2xuKCJTdW5yaXNlL1N1bnNldCB0aW1lcyBmb3IgU2FuIEpvc2UsIENhbGlmb3JuaWEsIFVTQSIpOworICAgICAgICAvLyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtMTIxLjU1LCAzNy4yMCk7CisgICAgICAgIC8vICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisKKyAgICAgICAgLy8gV2UnbGwgdXNlIGEgdGFibGUgZ2VuZXJhdGVkIGJ5IHRoZSBVTlNPIHdlYnNpdGUgYXMgb3VyIHJlZmVyZW5jZQorICAgICAgICAvLyBGcm9tOiBodHRwOi8vYWEudXNuby5uYXZ5Lm1pbC8KKyAgICAgICAgLy8tTG9jYXRpb246IFcwNzkgMjUsIE40MyA0MAorICAgICAgICAvLy1SaXNlIGFuZCBTZXQgZm9yIHRoZSBTdW4gZm9yIDIwMDEKKyAgICAgICAgLy8tWm9uZTogIDRoIFdlc3Qgb2YgR3JlZW53aWNoCisgICAgICAgIGludFtdIFVTTk8gPSB7CisgICAgICAgICAgICAgNiw1OSwgMTksNDUsCisgICAgICAgICAgICAgNiw1NywgMTksNDYsCisgICAgICAgICAgICAgNiw1NiwgMTksNDcsCisgICAgICAgICAgICAgNiw1NCwgMTksNDgsCisgICAgICAgICAgICAgNiw1MiwgMTksNDksCisgICAgICAgICAgICAgNiw1MCwgMTksNTEsCisgICAgICAgICAgICAgNiw0OCwgMTksNTIsCisgICAgICAgICAgICAgNiw0NywgMTksNTMsCisgICAgICAgICAgICAgNiw0NSwgMTksNTQsCisgICAgICAgICAgICAgNiw0MywgMTksNTUsCisgICAgICAgICAgICAgNiw0MiwgMTksNTcsCisgICAgICAgICAgICAgNiw0MCwgMTksNTgsCisgICAgICAgICAgICAgNiwzOCwgMTksNTksCisgICAgICAgICAgICAgNiwzNiwgMjAsIDAsCisgICAgICAgICAgICAgNiwzNSwgMjAsIDEsCisgICAgICAgICAgICAgNiwzMywgMjAsIDMsCisgICAgICAgICAgICAgNiwzMSwgMjAsIDQsCisgICAgICAgICAgICAgNiwzMCwgMjAsIDUsCisgICAgICAgICAgICAgNiwyOCwgMjAsIDYsCisgICAgICAgICAgICAgNiwyNywgMjAsIDcsCisgICAgICAgICAgICAgNiwyNSwgMjAsIDgsCisgICAgICAgICAgICAgNiwyMywgMjAsMTAsCisgICAgICAgICAgICAgNiwyMiwgMjAsMTEsCisgICAgICAgICAgICAgNiwyMCwgMjAsMTIsCisgICAgICAgICAgICAgNiwxOSwgMjAsMTMsCisgICAgICAgICAgICAgNiwxNywgMjAsMTQsCisgICAgICAgICAgICAgNiwxNiwgMjAsMTYsCisgICAgICAgICAgICAgNiwxNCwgMjAsMTcsCisgICAgICAgICAgICAgNiwxMywgMjAsMTgsCisgICAgICAgICAgICAgNiwxMSwgMjAsMTksCisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oIlN1bnJpc2UvU3Vuc2V0IHRpbWVzIGZvciBUb3JvbnRvLCBDYW5hZGEiKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtKDc5KzI1LzYwKSwgNDMrNDAvNjApOworCisgICAgICAgIC8vIEFzIG9mIElDVTRKIDIuOCB0aGUgSUNVNEogdGltZSB6b25lcyBpbXBsZW1lbnQgcGFzcy10aHJvdWdoCisgICAgICAgIC8vIHRvIHRoZSB1bmRlcmx5aW5nIEpESy4gIEJlY2F1c2Ugb2YgdmFyaWF0aW9uIGluIHRoZQorICAgICAgICAvLyB1bmRlcmx5aW5nIEpES3MsIHdlIGhhdmUgdG8gdXNlIGEgZml4ZWQtb2Zmc2V0CisgICAgICAgIC8vIFNpbXBsZVRpbWVab25lIHRvIGdldCBjb25zaXN0ZW50IGJlaGF2aW9yIGJldHdlZW4gSkRLcy4KKyAgICAgICAgLy8gVGhlIG9mZnNldCB3ZSB3YW50IGlzIFstMTgwMDAwMDAsIDM2MDAwMDBdIChyYXcsIGRzdCkuCisgICAgICAgIC8vIFthbGl1IDEwLzE1LzAzXQorCisgICAgICAgIC8vIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTW9udHJlYWwiKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTE4MDAwMDAwICsgMzYwMDAwMCwgIk1vbnRyZWFsKEZJWEVEKSIpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0eiwgTG9jYWxlLlVTKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0eiwgTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjAwMSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkFQUklMKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMik7IC8vIG11c3QgYmUgbmVhciBsb2NhbCBub29uIGZvciBnZXRTdW5SaXNlU2V0IHRvIHdvcmsKKworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZjIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIERhdGVGb3JtYXQgZGF5ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCAzMDsgaSsrKSB7CisgICAgICAgICAgICBhc3Ryby5zZXREYXRlKGNhbC5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBEYXRlIHN1bnJpc2UgPSBuZXcgRGF0ZShhc3Ryby5nZXRTdW5SaXNlU2V0KHRydWUpKTsKKyAgICAgICAgICAgIERhdGUgc3Vuc2V0ID0gbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldChmYWxzZSkpOworCisgICAgICAgICAgICBjYWwyLnNldFRpbWUoY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5TRUNPTkQsICAgICAgMCk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgICAgIGNhbDIuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCBVU05PWzQqaSswXSk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSU5VVEUsICAgICAgVVNOT1s0KmkrMV0pOworICAgICAgICAgICAgRGF0ZSBleHByaXNlID0gY2FsMi5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgVVNOT1s0KmkrMl0pOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAgICAgIFVTTk9bNCppKzNdKTsKKyAgICAgICAgICAgIERhdGUgZXhwc2V0ID0gY2FsMi5nZXRUaW1lKCk7CisgICAgICAgICAgICAvLyBDb21wdXRlIGRlbHRhIG9mIHdoYXQgd2UgZ290IHRvIHRoZSBVU05PIGRhdGEsIGluIHNlY29uZHMKKyAgICAgICAgICAgIGludCBkZWx0YXJpc2UgPSBNYXRoLmFicygoaW50KShzdW5yaXNlLmdldFRpbWUoKSAtIGV4cHJpc2UuZ2V0VGltZSgpKSAvIDEwMDApOworICAgICAgICAgICAgaW50IGRlbHRhc2V0ID0gTWF0aC5hYnMoKGludCkoc3Vuc2V0LmdldFRpbWUoKSAtIGV4cHNldC5nZXRUaW1lKCkpIC8gMTAwMCk7CisKKyAgICAgICAgICAgIC8vIEFsbG93IGEgZGV2aWF0aW9uIG9mIDAuLk1BWF9ERVYgc2Vjb25kcworICAgICAgICAgICAgLy8gSXQgd291bGQgYmUgbmljZSB0byBnZXQgZG93biB0byA2MCBzZWNvbmRzLCBidXQgYXQgdGhpcworICAgICAgICAgICAgLy8gcG9pbnQgdGhhdCBhcHBlYXJzIHRvIGJlIGltcG9zc2libGUgd2l0aG91dCBhIHJlZG8gb2YgdGhlCisgICAgICAgICAgICAvLyBhbGdvcml0aG0gdXNpbmcgc29tZXRoaW5nIG1vcmUgYWR2YW5jZWQgdGhhbiBEdWZmZXR0LVNtaXRoLgorICAgICAgICAgICAgZmluYWwgaW50IE1BWF9ERVYgPSAxODA7CisgICAgICAgICAgICBpZiAoZGVsdGFyaXNlID4gTUFYX0RFViB8fCBkZWx0YXNldCA+IE1BWF9ERVYpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVsdGFyaXNlID4gTUFYX0RFVikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5yaXNlOiAiICsgZGYyLmZvcm1hdChzdW5yaXNlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHByaXNlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZD0iICsgZGVsdGFyaXNlICsgInMpIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oZGF5LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnJpc2U6ICIgKyBkZi5mb3JtYXQoc3VucmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwcmlzZSkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZGVsdGFzZXQgPiBNQVhfREVWKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZGF5LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnNldDogIiArIGRmMi5mb3JtYXQoc3Vuc2V0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkPSIgKyBkZWx0YXNldCArICJzKSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5zZXQ6ICIgKyBkZi5mb3JtYXQoc3Vuc2V0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnJpc2U6ICIgKyBkZi5mb3JtYXQoc3VucmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHByaXNlKSArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgIiwgU3Vuc2V0OiAiICsgZGYuZm9ybWF0KHN1bnNldCkgKworICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIH0KKworLy8gICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtKDcxKzUvNjApLCA0MiszNy82MCk7CisvLyAgICAgICAgY2FsLmNsZWFyKCk7CisvLyAgICAgICAgY2FsLnNldChjYWwuWUVBUiwgMTk4Nik7CisvLyAgICAgICAgY2FsLnNldChjYWwuTU9OVEgsIGNhbC5NQVJDSCk7CisvLyAgICAgICAgY2FsLnNldChjYWwuREFURSwgMTApOworLy8gICAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDE5ODgpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuSlVMWSk7CisvLyAgICAgICAgY2FsLnNldChjYWwuREFURSwgMjcpOworLy8gICAgICAgIGEuc2V0RGF0ZShjYWwuZ2V0VGltZSgpKTsKKy8vICAgICAgICBsb25nIHIgPSBhLmdldFN1blJpc2VTZXQyKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpY3MoKSB7CisgICAgICAgIC8vIENoZWNrIHRoYXQgb3VyIEpEIGNvbXB1dGF0aW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBib29rJ3MgKHAuIDg4KQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwzID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkMyA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwzLCBEYXRlRm9ybWF0Lk1FRElVTSxEYXRlRm9ybWF0Lk1FRElVTSxMb2NhbGUuVVMpOworICAgICAgICBjYWwzLmNsZWFyKCk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLllFQVIsIDE5ODApOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVMWSk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLkRBVEUsIDI3KTsKKyAgICAgICAgYXN0cm8uc2V0RGF0ZShjYWwzLmdldFRpbWUoKSk7CisgICAgICAgIGRvdWJsZSBqZCA9IGFzdHJvLmdldEp1bGlhbkRheSgpIC0gMjQ0Nzg5MS41OworICAgICAgICBkb3VibGUgZXhwID0gLTM0NDQ7CisgICAgICAgIGlmIChqZCA9PSBleHApIHsKKyAgICAgICAgICAgIGxvZ2xuKGQzLmZvcm1hdChjYWwzLmdldFRpbWUoKSkgKyAiID0+ICIgKyBqZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGQzLmZvcm1hdChjYWwzLmdldFRpbWUoKSkgKyAiID0+ICIgKyBqZCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorCisKKy8vICAgICAgICBjYWwzLmNsZWFyKCk7CisvLyAgICAgICAgY2FsMy5zZXQoY2FsMy5ZRUFSLCAxOTkwKTsKKy8vICAgICAgICBjYWwzLnNldChjYWwzLk1PTlRILCBDYWxlbmRhci5KQU5VQVJZKTsKKy8vICAgICAgICBjYWwzLnNldChjYWwzLkRBVEUsIDEpOworLy8gICAgICAgIGNhbDMuYWRkKGNhbDMuREFURSwgLTEpOworLy8gICAgICAgIGFzdHJvLnNldERhdGUoY2FsMy5nZXRUaW1lKCkpOworLy8gICAgICAgIGFzdHJvLmZvbygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YzAxZWNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsMTkyMyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBAdGVzdCAxLjMyIDk5LzExLzE0CisgKiBAYnVnIDQwMzE1MDIgNDAzNTMwMSA0MDQwOTk2IDQwNTE3NjUgNDA1OTY1NCA0MDYxNDc2IDQwNzA1MDIgNDA3MTE5NyA0MDcxMzg1CisgKiA0MDczOTI5IDQwODMxNjcgNDA4NjcyNCA0MDkyMzYyIDQwOTU0MDcgNDA5NjIzMSA0MDk2NTM5IDQxMDAzMTEgNDEwMzI3MQorICogNDEwNjEzNiA0MTA4NzY0IDQxMTQ1NzggNDExODM4NCA0MTI1ODgxIDQxMjU4OTIgNDEzNjM5OSA0MTQxNjY1IDQxNDI5MzMKKyAqIDQxNDUxNTggNDE0NTk4MyA0MTQ3MjY5IDQxNDk2NzcgNDE2MjU4NyA0MTY1MzQzIDQxNjYxMDkgNDE2NzA2MCA0MTczNTE2CisgKiA0MTc0MzYxIDQxNzc0ODQgNDE5NzY5OSA0MjA5MDcxIDQyODg3OTIKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyUmVncmVzc2lvbiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ2FsZW5kYXJSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICAgICAiREFZX09GX01PTlRIIiwgIkRBWV9PRl9ZRUFSIiwgIkRBWV9PRl9XRUVLIiwKKyAgICAgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgICAgICJEU1RfT0ZGU0VUIiwgIllFQVJfV09ZIiwgIkRPV19MT0NBTCIsICJFWFRFTkRFRF9ZRUFSIiwKKyAgICAgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiCisgICAgICAgIH07CisKKworICAgIC8qCisgICAgICBTeW5vcHNpczogamF2YS5zcWwuVGltZXN0YW1wIGNvbnN0cnVjdG9yIHdvcmtzIHdyb25nIG9uIFdpbmRvd3MgOTUKKworICAgICAgPT09PSBIZXJlIGlzIHRoZSB0ZXN0ID09PT0gCisgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgeyAKKyAgICAgICAgamF2YS5zcWwuVGltZXN0YW1wIHQ9IG5ldyBqYXZhLnNxbC5UaW1lc3RhbXAoMCwxNSw1LDUsOCwxMywxMjM0NTY3MDApOyAKKyAgICAgICAgbG9nbG4oImV4cGVjdGVkPTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyIpOyAKKyAgICAgICAgbG9nbG4oIiByZXN1bHQ9Iit0KTsgCisgICAgICB9IAorICAgICAgCisgICAgICA9PT09IEhlcmUgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCBvbiBTb2xhcmlzIG9yIE5UID09PT0gCisgICAgICBleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjcgCisgICAgICByZXN1bHQ9MTkwMS0wNC0wNSAwNTowODoxMy4xMjM0NTY3IAorICAgICAgCisgICAgICA9PT09IEhlcmUgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCBvbiBXaW5kb3dzOTUgPT09PSAKKyAgICAgIGV4cGVjdGVkPTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyAKKyAgICAgIHJlc3VsdD0xOTAxLTA0LTA1IDA2OjA4OjEzLjEyMzQ1NjcgCisgICAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdDQwMzE1MDIoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vIFRoaXMgYnVnIGFjdHVhbGx5IG9jY3VycyBvbiBXaW5kb3dzIE5UIGFzIHdlbGwsIGFuZCBkb2Vzbid0CisgICAgICAgICAgICAvLyByZXF1aXJlIHRoZSBob3N0IHpvbmUgdG8gYmUgc2V0OyBpdCBjYW4gYmUgc2V0IGluIEphdmEuCisgICAgICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gYmFkID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8aWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKGlkc1tpXSk7CisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoMTkwMCwgMTUsIDUsIDUsIDgsIDEzKTsKKyAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5IT1VSKSAhPSA1KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS51c2VEYXlsaWdodFRpbWUoKSArICI7IERTVF9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgWk9ORV9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IGdldFJhd09mZnNldCgpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUuZ2V0UmF3T2Zmc2V0KCkgLyAoNjAqNjAqMTAwMC4wKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI7IEhPVVIgPSAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KDE5MDAsIDE1LCA1LCA1LCA4LCAxMyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkhPVVIpICE9IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUudXNlRGF5bGlnaHRUaW1lKCkgKyAiOyBEU1RfT0ZGU0VUID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBaT05FX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IGdldFJhd09mZnNldCgpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDAuMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgSE9VUiA9ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm1zID0gIiArIGNhbC5nZXRUaW1lKCkgKyAiICgiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhciBjYWwyID0gbmV3IGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcihqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRzW2ldKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiamF2YS51dGlsLkdDOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIjsgRFNUX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBaT05FX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgZ2V0UmF3T2Zmc2V0KCkgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDAuMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IEhPVVIgPSAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigibXMgPSAiICsgY2FsMi5nZXRUaW1lKCkgKyAiICgiICsgY2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmFsc2UpIHsgLy8gQ2hhbmdlIHRvIHRydWUgdG8gZGVidWcKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHpvbmUuZ2V0SUQoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgLyAoNjAqNjAqMTAwMCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS5nZXRSYXdPZmZzZXQoKSAvICg2MCo2MCoxMDAwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChiYWQpIGVycmxuKCJUaW1lWm9uZSBwcm9ibGVtcyB3aXRoIEdDIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGRhdGEuICIrIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDM1MzAxKCkgeworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoOTgsIDgsIDcpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcig5OCwgOCwgNyk7CisgICAgICAgICAgICBpZiAoYy5hZnRlcihkKSB8fAorICAgICAgICAgICAgICAgIGMuYWZ0ZXIoYykgfHwKKyAgICAgICAgICAgICAgICBjLmJlZm9yZShkKSB8fAorICAgICAgICAgICAgICAgIGMuYmVmb3JlKGMpIHx8CisgICAgICAgICAgICAgICAgIWMuZXF1YWxzKGMpIHx8CisgICAgICAgICAgICAgICAgIWMuZXF1YWxzKGQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGRhdGEuICIrIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDQwOTk2KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKC04ICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgcGR0ID0gbmV3IFNpbXBsZVRpbWVab25lKC04ICogNjAgKiA2MCAqIDEwMDAsIGlkc1swXSk7CisgICAgICAgICAgICBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgICAgICBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIocGR0KTsKKworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLk1PTlRILDMpOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwxOCk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuU0VDT05ELCAzMCk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICAgICAgICAgICAgbG9nbG4oIkRBWV9PRl9NT05USDogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgICAgICAgICAgICBsb2dsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworCisgICAgICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuU0VDT05ELDYpOworICAgICAgICAgICAgLy9UaGlzIHdpbGwgcHJpbnQgb3V0IHRvZGF5cyBkYXRlIGZvciBNT05USCBhbmQgREFZX09GX01PTlRICisgICAgICAgICAgICAvL2luc3RlYWQgb2YgdGhlIGRhdGUgaXQgd2FzIHNldCB0by4KKyAgICAgICAgICAgIC8vVGhpcyBoYXBwZW5zIHdoZW4gYWRkaW5nIE1JTExJU0VDT05EIG9yIE1JTlVURSBhbHNvCisgICAgICAgICAgICBsb2dsbigiTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJEQVlfT0ZfTU9OVEg6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICBsb2dsbigiTUlOVVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSkpOworICAgICAgICAgICAgbG9nbG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IDMgfHwKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxOCB8fAorICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpICE9IDM2KQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhci5hZGQgbWlzYmVoYXZlcyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MTc2NSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCAwKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogREFZX09GX1dFRUsgMCBzaG91bGQgYmUgZGlzYWxsb3dlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBVc2VyIGVycm9yIC0gbm8gYnVnIGhlcmUgcHVibGljIHZvaWQgVGVzdDQwNTk1MjQoKSB7IC8vIENyZWF0ZSBjYWxlbmRhcgorICAgICAqIGZvciBBcHJpbCAxMCwgMTk5NyBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOyAvLworICAgICAqIHByaW50IG91dCBhIGJ1bmNoIG9mIGludGVyZXN0aW5nIHRoaW5ncyBsb2dsbigiRVJBOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuRVJBKSk7IGxvZ2xuKCJZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuWUVBUikpOyBsb2dsbigiTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5NT05USCkpOyBsb2dsbigiV0VFS19PRl9ZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7IGxvZ2xuKCJXRUVLX09GX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9NT05USCkpOyBsb2dsbigiREFURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBVEUpKTsgbG9nbG4oIkRBWV9PRl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9NT05USCkpOyBsb2dsbigiREFZX09GX1lFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfWUVBUikpOyBsb2dsbigiREFZX09GX1dFRUs6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFSykpOyBsb2dsbigiREFZX09GX1dFRUtfSU5fTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCkpOyBsb2dsbigiQU1fUE06ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5BTV9QTSkpOyBsb2dsbigiSE9VUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVIpKTsgbG9nbG4oIkhPVVJfT0ZfREFZOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsgbG9nbG4oIk1JTlVURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTlVURSkpOyBsb2dsbigiU0VDT05EOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuU0VDT05EKSk7IGxvZ2xuKCJNSUxMSVNFQ09ORDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTExJU0VDT05EKSk7IGxvZ2xuKCJaT05FX09GRlNFVDogIiArCisgICAgICogKGNhbGVuZGFyLmdldChjYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IGxvZ2xuKCJEU1RfT0ZGU0VUOiAiICsKKyAgICAgKiAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyBjYWxlbmRhciA9IG5ldworICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsMywxMCk7IGNhbGVuZGFyLmdldFRpbWUoKTsgbG9nbG4oIkFwcmlsIDEwLAorICAgICAqIDE5OTciKTsgbG9nbG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5FUkEpKTsgbG9nbG4oIllFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5ZRUFSKSk7IGxvZ2xuKCJNT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1PTlRIKSk7IGxvZ2xuKCJXRUVLX09GX1lFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5XRUVLX09GX1lFQVIpKTsgbG9nbG4oIldFRUtfT0ZfTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5XRUVLX09GX01PTlRIKSk7IGxvZ2xuKCJEQVRFOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFURSkpOyBsb2dsbigiREFZX09GX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX01PTlRIKSk7IGxvZ2xuKCJEQVlfT0ZfWUVBUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7IGxvZ2xuKCJEQVlfT0ZfV0VFSzogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9XRUVLKSk7IGxvZ2xuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7IGxvZ2xuKCJBTV9QTTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkFNX1BNKSk7IGxvZ2xuKCJIT1VSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUikpOyBsb2dsbigiSE9VUl9PRl9EQVk6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5IT1VSX09GX0RBWSkpOyBsb2dsbigiTUlOVVRFOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTUlOVVRFKSk7IGxvZ2xuKCJTRUNPTkQ6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5TRUNPTkQpKTsgbG9nbG4oIk1JTExJU0VDT05EOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTUlMTElTRUNPTkQpKTsgbG9nbG4oIlpPTkVfT0ZGU0VUOiAiICsKKyAgICAgKiAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLlpPTkVfT0ZGU0VUKS8oNjAqNjAqMTAwMCkpKTsgLy8gaW4gaG91cnMKKyAgICAgKiBsb2dsbigiRFNUX09GRlNFVDogIiArIChjYWxlbmRhci5nZXQoY2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vCisgICAgICogaW4gaG91cnMgfQorICAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk2NTQoKSB7CisgICAvLyAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIHdvcmsgYXJvdW5kIGJ1ZyBmb3IgamRrMS40IG9uIHNvbGFyaXMgMi42LCB3aGljaCB1c2VzIGZ1bmt5CisgICAgICAgICAgICAvLyB0aW1lem9uZSBuYW1lcworICAgICAgICAgICAgLy8gamRrMS40LjEgd2lsbCBkcm9wIHN1cHBvcnQgZm9yIDIuNiBzbyB3ZSBzaG91bGQgYmUgb2sgd2hlbiBpdAorICAgICAgICAgICAgLy8gY29tZXMgb3V0CisgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgamF2YXpvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICAgICAgVGltZVpvbmUgaWN1em9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoaWN1em9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdjLnNldCgxOTk3LCAzLCAxLCAxNSwgMTYsIDE3KTsgLy8gQXByaWwgMSwgMTk5NworCisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuSE9VUiwgMCk7CisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuQU1fUE0sIENhbGVuZGFyLkFNKTsKKyAgICAgICAgICAgIGdjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICAgICAgZ2Muc2V0KENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgICAgICBEYXRlIGNkID0gZ2MuZ2V0VGltZSgpOworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqYXZhem9uZSk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NywgMywgMSwgMCwgMCwgMCk7CisgICAgICAgICAgICBEYXRlIGV4cCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoIWNkLmVxdWFscyhleHApKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhci5zZXQgYnJva2VuLiBHb3QgIiArIGNkICsgIiBXYW50ICIgKyBleHApOworICAgLy8gICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgLy8gICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAvLyAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MTQ3NigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGRNTU15eSIsIExvY2FsZS5VSyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IEdyZWdvcmlhbkNhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VSyk7CisgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICB0cnkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBmbXQucGFyc2UoIjI5TUFZOTciKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMyk7CisgICAgICAgIGxvZ2xuKCJIb3VyOiAiK2NhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5IT1VSX09GX0RBWSwgNik7CisgICAgICAgIGxvZ2xuKCJIb3VyOiAiK2NhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICE9IDE5KQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgMTkgR290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzA1MDIoKSB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgMCwgMzApOworICAgICAgICBEYXRlIGQgPSBnZXRBc3NvY2lhdGVkRGF0ZSh0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspID09IENhbGVuZGFyLlNBVFVSREFZIHx8CisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSA9PSBDYWxlbmRhci5TVU5EQVkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCB3ZWVrZGF5IEdvdCAiICsgZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBhc3NvY2lhdGVkIGRhdGUgc3RhcnRpbmcgZnJvbSBhIHNwZWNpZmllZCBkYXRlIE5PVEU6IHRoZQorICAgICAqIHVubmVjZXNzYXJ5ICJnZXRUaW1lKCkncyIgYmVsb3cgYXJlIGEgd29yay1hcm91bmQgZm9yIGEgYnVnIGluIGpkayAxLjEuMworICAgICAqIChhbmQgcHJvYmFibHkgZWFybGllciB2ZXJzaW9ucyBhbHNvKQorICAgICAqIDxwPgorICAgICAqIAorICAgICAqIEBwYXJhbSBkCisgICAgICogICAgICAgICAgICBUaGUgZGF0ZSB0byBzdGFydCBmcm9tCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEYXRlIGdldEFzc29jaWF0ZWREYXRlKERhdGUgZCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIC8vY2FsLmFkZChmaWVsZCwgYW1vdW50KTsgLy88LS0gUFJPQkxFTSBTRUVOIFdJVEggZmllbGQgPSBEQVRFLE1PTlRICisgICAgICAgIC8vIGNhbC5nZXRUaW1lKCk7IC8vIDwtLS0gUkVNT1ZFIFRISVMgVE8gU0VFIEJVRworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHdkID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBpZiAod2QgPT0gQ2FsZW5kYXIuU0FUVVJEQVkgfHwgd2QgPT0gQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgICAgICAgICAvLyBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYWwuZ2V0VGltZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMTk3KCkgeworICAgICAgICBkb3dUZXN0KGZhbHNlKTsKKyAgICAgICAgZG93VGVzdCh0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGRvd1Rlc3QoYm9vbGVhbiBsZW5pZW50KSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkFVR1VTVCwgMTIpOyAvLyBXZWRuZXNkYXkKKyAgICAgICAgLy8gY2FsLmdldFRpbWUoKTsgLy8gRm9yY2UgdXBkYXRlCisgICAgICAgIGNhbC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgICAgICBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAxKTsgLy8gU2V0IHRoZSBkYXRlIHRvIGJlIERlY2VtYmVyIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxOTk2CisgICAgICAgIGludCBkb3cgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1pbiA9IGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1heCA9IGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKG1pbiAhPSBDYWxlbmRhci5TVU5EQVkgfHwgbWF4ICE9IENhbGVuZGFyLlNBVFVSREFZKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1pbi9tYXggYmFkIik7CisgICAgICAgIGlmIChkb3cgPCBtaW4gfHwgZG93ID4gbWF4KSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayAiICsgZG93ICsgIiBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5TVU5EQVkpIAorICAgICAgICAgICAgZXJybG4oIkZBSUw6IERheSBvZiB3ZWVrIHNob3VsZCBiZSBTVU5EQVkgR290ICIgKyBkb3cpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMzg1KCkgeworICAgIC8vIHdvcmsgYXJvdW5kIGJ1ZyBmb3IgamRrMS40IG9uIHNvbGFyaXMgMi42LCB3aGljaCB1c2VzIGZ1bmt5IHRpbWV6b25lCisgICAgLy8gbmFtZXMKKyAgICAvLyBqZGsxLjQuMSB3aWxsIGRyb3Agc3VwcG9ydCBmb3IgMi42IHNvIHdlIHNob3VsZCBiZSBvayB3aGVuIGl0IGNvbWVzIG91dAorICAgIGphdmEudXRpbC5UaW1lWm9uZSBqYXZhem9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgVGltZVpvbmUgaWN1em9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShpY3V6b25lKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamF2YXpvbmUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpVTkUsIDI0KTsKKyAgICAgICAgY2FsLnNldFRpbWUodGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5OT1ZFTUJFUik7IC8vIGNoYW5nZSBhIGZpZWxkCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLk5PVkVNQkVSLCAyNCk7CisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHModGVtcGNhbC5nZXRUaW1lKCkpKQorICAgICAgICAgICAgZXJybG4oIkZhaWwiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MzkyOSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZm9vMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCA4LCAyNyk7CisgICAgICAgIGZvbzEuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgKzEpOworICAgICAgICBpbnQgdGVzdHllYXIgPSBmb28xLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IHRlc3Rtb250aCA9IGZvbzEuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgaW50IHRlc3RkYXkgPSBmb28xLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBpZiAodGVzdHllYXIgIT0gMTk5NyB8fAorICAgICAgICAgICAgdGVzdG1vbnRoICE9IDggfHwKKyAgICAgICAgICAgIHRlc3RkYXkgIT0gMjgpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FsZW5kYXIgbm90IGluaXRpYWxpemVkIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwODMxNjcoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOworICAgICAgICAgICAgRGF0ZSBmaXJzdERhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShmaXJzdERhdGUpOworICAgICAgICAgICAgbG9uZyBmaXJzdE1pbGxpc0luRGF5ID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiAzNjAwMDAwTCArCisgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICogNjAwMDBMICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKiAxMDAwTCArCisgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJDdXJyZW50IHRpbWU6ICIgKyBmaXJzdERhdGUudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGZvciAoaW50IHZhbGlkaXR5PTA7IHZhbGlkaXR5PDMwOyB2YWxpZGl0eSsrKSB7CisgICAgICAgICAgICAgICAgRGF0ZSBsYXN0RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF0ZS5nZXRUaW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyl2YWxpZGl0eSoxMDAwKjI0KjYwKjYwKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShsYXN0RGF0ZSk7CisgICAgICAgICAgICAgICAgbG9uZyBtaWxsaXNJbkRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogMzYwMDAwMEwgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKiA2MDAwMEwgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKiAxMDAwTCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdE1pbGxpc0luRGF5ICE9IG1pbGxpc0luRGF5KSAKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRheSBoYXMgc2hpZnRlZCAiICsgbGFzdERhdGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NjcyNCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkYXRlOworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlIHNhdmVMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVLKTsgCisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgICAgICBkYXRlPW5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZCBNTU0geXl5ICh6enp6KSAnaXMgaW4gd2Vlaycgd3ciKTsgCisgICAgICAgICAgICBDYWxlbmRhciBjYWw9Q2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgICAgICBjYWwuc2V0KDE5OTcsQ2FsZW5kYXIuU0VQVEVNQkVSLDMwKTsgCisgICAgICAgICAgICBEYXRlIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NyxDYWxlbmRhci5KQU5VQVJZLDEpOyAKKyAgICAgICAgICAgIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NyxDYWxlbmRhci5KQU5VQVJZLDgpOyAKKyAgICAgICAgICAgIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NixDYWxlbmRhci5ERUNFTUJFUiwzMSk7IAorICAgICAgICAgICAgbm93PWNhbC5nZXRUaW1lKCk7IAorICAgICAgICAgICAgbG9nbG4oZGF0ZS5mb3JtYXQobm93KSk7IAorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZUxvY2FsZSk7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiKioqIFRIRSBSRVNVTFRTIE9GIFRISVMgVEVTVCBNVVNUIEJFIFZFUklGSUVEIE1BTlVBTExZICoqKiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkyMzYyKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwxID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsIDEwLCAxMSwgMTAsIDIwLCA0MCk7IAorICAgICAgICAvKgorICAgICAgICAgKiBjYWwxLnNldCggQ2FsZW5kYXIuWUVBUiwgMTk5NyApOyBjYWwxLnNldCggQ2FsZW5kYXIuTU9OVEgsIDEwICk7CisgICAgICAgICAqIGNhbDEuc2V0KCBDYWxlbmRhci5EQVRFLCAxMSApOyBjYWwxLnNldCggQ2FsZW5kYXIuSE9VUiwgMTAgKTsKKyAgICAgICAgICogY2FsMS5zZXQoIENhbGVuZGFyLk1JTlVURSwgMjAgKTsgY2FsMS5zZXQoIENhbGVuZGFyLlNFQ09ORCwgNDAgKTsKKyAgICAgICAgICovCisKKyAgICAgICAgbG9nbG4oICIgQ2FsMSA9ICIgKyBjYWwxLmdldFRpbWUoKS5nZXRUaW1lKCkgKTsgCisgICAgICAgIGxvZ2xuKCAiIENhbDEgdGltZSBpbiBtcyA9ICIgKyBjYWwxLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgKTsgCisgICAgICAgIGZvciggaW50IGsgPSAwOyBrIDwgMTAwIDsgaysrICkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7IAorICAgICAgICB9CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCAxMCwgMTEsIDEwLCAyMCwgNDApOyAKKyAgICAgICAgLyoKKyAgICAgICAgICogY2FsMi5zZXQoIENhbGVuZGFyLllFQVIsIDE5OTcgKTsgY2FsMi5zZXQoIENhbGVuZGFyLk1PTlRILCAxMCApOworICAgICAgICAgKiBjYWwyLnNldCggQ2FsZW5kYXIuREFURSwgMTEgKTsgY2FsMi5zZXQoIENhbGVuZGFyLkhPVVIsIDEwICk7CisgICAgICAgICAqIGNhbDIuc2V0KCBDYWxlbmRhci5NSU5VVEUsIDIwICk7IGNhbDIuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDQwICk7CisgICAgICAgICAqLworCisgICAgICAgIGxvZ2xuKCAiIENhbDIgPSAiICsgY2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpICk7IAorICAgICAgICBsb2dsbiggIiBDYWwyIHRpbWUgaW4gbXMgPSAiICsgY2FsMi5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICk7IAorICAgICAgICBpZiggIWNhbDEuZXF1YWxzKCBjYWwyICkgKSAKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBNaWxsaXNlY29uZHMgcmFuZG9taXplZCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1NDA3KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBhID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsQ2FsZW5kYXIuTk9WRU1CRVIsIDEzKTsKKyAgICAgICAgaW50IGRvdyA9IGEuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5USFVSU0RBWSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50IFRIVVJTREFZIEdvdCAiICsgZG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NjIzMSgpIHsKKyAgICAgICAgVGltZVpvbmUgR01UID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBzZWMgPSAwLCBtaW4gPSAwLCBociA9IDAsIGRheSA9IDEsIG1vbnRoID0gMTAsIHllYXIgPSAxOTk3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBDYWxlbmRhciBjYWwxID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFBTVCk7CisgICAgICAgIGNhbDEuc2V0VGltZShuZXcgRGF0ZSg4ODA2OTg2MzkwMDBMKSk7CisgICAgICAgIGludCBwOworICAgICAgICBsb2dsbigiUFNUIDEgaXM6ICIgKyAocD1jYWwxLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpKTsKKyAgICAgICAgY2FsMS5zZXRUaW1lWm9uZShHTVQpOworICAgICAgICAvLyBJc3N1ZSAxOiBDaGFuZ2luZyB0aGUgdGltZXpvbmUgZG9lc24ndCBjaGFuZ2UgdGhlCisgICAgICAgIC8vICAgICAgICAgIHJlcHJlc2VudGVkIHRpbWUuCisgICAgICAgIGludCBoMSxoMjsKKyAgICAgICAgbG9nbG4oIkdNVCAxIGlzOiAiICsgKGgxPWNhbDEuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSkpOworICAgICAgICBjYWwxLnNldFRpbWUobmV3IERhdGUoODgwNjk4NjM5MDAwTCkpOworICAgICAgICBsb2dsbigiR01UIDIgaXM6ICIgKyAoaDI9Y2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSk7CisgICAgICAgIC8vIE5vdGU6IFRoaXMgdGVzdCBoYWQgYSBidWcgaW4gaXQuIEl0IHdhbnRlZCBoMSE9aDIsIHdoZW4KKyAgICAgICAgLy8gd2hhdCB3YXMgbWVhbnQgd2FzIGgxIT1wLiBGaXhlZCB0aGlzIGNvbmN1cnJlbnQgd2l0aCBmaXgKKyAgICAgICAgLy8gdG8gNDE3NzQ4NC4KKyAgICAgICAgaWYgKHAgPT0gaDEgfHwgaDEgIT0gaDIpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogSG91ciBzYW1lIGluIGRpZmZlcmVudCB6b25lcyIpOworCisgICAgICAgIENhbGVuZGFyIGNhbDIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoR01UKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsMyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihQU1QpOworICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBjYWwyLnNldChjYWwxLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLk1JTlVURSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworCisgICAgICAgIGxvbmcgdDEsdDIsdDMsdDQ7CisgICAgICAgIGxvZ2xuKCJSR01UIDEgaXM6ICIgKyAodDE9Y2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0KHllYXIsIG1vbnRoLCBkYXksIGhyLCBtaW4sIHNlYyk7CisgICAgICAgIGxvZ2xuKCJSUFNUIDEgaXM6ICIgKyAodDI9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0VGltZVpvbmUoR01UKTsKKyAgICAgICAgbG9nbG4oIlJHTVQgMiBpczogIiArICh0Mz1jYWwzLmdldFRpbWUoKS5nZXRUaW1lKCkpKTsKKyAgICAgICAgY2FsMy5zZXQoY2FsMS5nZXQoQ2FsZW5kYXIuWUVBUiksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5NSU5VVEUpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAgICAgICAgLy8gSXNzdWUgMjogQ2FsZW5kYXIgY29udGludWVzIHRvIHVzZSB0aGUgdGltZXpvbmUgaW4gaXRzCisgICAgICAgIC8vICAgICAgICAgIGNvbnN0cnVjdG9yIGZvciBzZXQoKSBjb252ZXJzaW9ucywgcmVnYXJkbGVzcworICAgICAgICAvLyAgICAgICAgICBvZiBjYWxscyB0byBzZXRUaW1lWm9uZSgpCisgICAgICAgIGxvZ2xuKCJSR01UIDMgaXM6ICIgKyAodDQ9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGlmICh0MSA9PSB0MiB8fAorICAgICAgICAgICAgdDEgIT0gdDQgfHwKKyAgICAgICAgICAgIHQyICE9IHQzKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbGVuZGFyIHpvbmUgYmVoYXZpb3IgZmF1bHR5Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTY1MzkoKSB7CisgICAgICAgIGludFtdIHkgPSB7MzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9OworCisgICAgICAgIGZvciAoaW50IHg9MDt4PDEyO3grKykgeworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgCisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5Nyx4LHlbeF0pOworICAgICAgICAgICAgaW50IG0xLG0yOworICAgICAgICAgICAgbG9nKChtMT1nYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKyIvIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpKyIvIitnYy5nZXQoQ2FsZW5kYXIuWUVBUikrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKyAxbW8gPSAiKTsKKworICAgICAgICAgICAgZ2MuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgIGxvZ2xuKChtMj1nYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKyIvIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuREFURSkrIi8iK2djLmdldChDYWxlbmRhci5ZRUFSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICBpbnQgbSA9IChtMSAlIDEyKSArIDE7CisgICAgICAgICAgICBpZiAobTIgIT0gbSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCAiICsgbSArICIgR290ICIgKyBtMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDAzMTEoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsgICAgICAgICAgICAgLy8gU2hvdWxkIGJlIEphbiAxCisgICAgICAgIGxvZ2xuKGQudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSAxKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERBWV9PRl9ZRUFSIG5vdCBzZXQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzI3MSgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOyAKKyAgICAgICAgaW50IG51bVllYXJzPTQwLCBzdGFydFllYXI9MTk5NywgbnVtRGF5cz0xNTsgCisgICAgICAgIFN0cmluZyBvdXRwdXQsIHRlc3REZXNjOyAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOyAKKyAgICAgICAgdGVzdENhbC5jbGVhcigpOworICAgICAgICBzZGYuc2V0Q2FsZW5kYXIodGVzdENhbCk7IAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJkIE1NTSB5eXl5Iik7IAorICAgICAgICBib29sZWFuIGZhaWwgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgZmlyc3REYXk9MTsgZmlyc3REYXk8PTI7IGZpcnN0RGF5KyspIHsgCisgICAgICAgICAgICBmb3IgKGludCBtaW5EYXlzPTE7IG1pbkRheXM8PTc7IG1pbkRheXMrKykgeyAKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsobWluRGF5cyk7IAorICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoZmlyc3REYXkpOyAKKyAgICAgICAgICAgICAgICB0ZXN0RGVzYyA9ICgiVGVzdCIgKyBTdHJpbmcudmFsdWVPZihmaXJzdERheSkgKyBTdHJpbmcudmFsdWVPZihtaW5EYXlzKSk7IAorICAgICAgICAgICAgICAgIGxvZ2xuKHRlc3REZXNjICsgIiA9PiAxc3QgZGF5IG9mIHdlZWs9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy52YWx1ZU9mKGZpcnN0RGF5KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIG1pbmltdW0gZGF5cyBpbiBmaXJzdCB3ZWVrPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcudmFsdWVPZihtaW5EYXlzKSk7IAorICAgICAgICAgICAgICAgIGZvciAoaW50IGo9c3RhcnRZZWFyOyBqPD1zdGFydFllYXIrbnVtWWVhcnM7IGorKykgeyAKKyAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoaiwxMSwyNSk7IAorICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxudW1EYXlzOyBpKyspIHsgCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmFkZChDYWxlbmRhci5EQVRFLDEpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjYWxXT1k7IAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjdFdPWSA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0V09ZIDwgMSB8fCBhY3RXT1kgPiA1MykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgZCA9IHRlc3RDYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxXT1kgPSBTdHJpbmcudmFsdWVPZihhY3RXT1kpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSB0ZXN0RGVzYyArICIgLSAiICsgc2RmLmZvcm1hdChkKSArICJcdCI7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCArICJcdCIgKyBjYWxXT1k7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG91dHB1dCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IAorCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAzLCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwKKyAgICAgICAgICAgICAgICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsICAxLAorICAgICAgICAgICAgICAgIDIsICAyLCAgMiwgIDIsICAyLCAgMiwgIDIsCisgICAgICAgICAgICA0LCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwKKyAgICAgICAgICAgICAgIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLAorICAgICAgICAgICAgICAgIDEsICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsCisgICAgICAgIH07CisgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPERBVEEubGVuZ3RoOyBqKz0yMikgeworICAgICAgICAgICAgbG9nbG4oIk1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrID0gIiArIERBVEFbal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIFdlZWsgc3RhcnRzIG9uIFN1bmRheSIpOworICAgICAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKERBVEFbal0pOworICAgICAgICAgICAgdGVzdENhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDIxKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwyMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHdveSA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgbG9nKHRlc3RDYWwuZ2V0VGltZSgpICsgIiAiICsgd295KTsKKyAgICAgICAgICAgICAgICBpZiAod295ICE9IERBVEFbaiArIDEgKyBpXSkgeworICAgICAgICAgICAgICAgICAgICBsb2coIiBFUlJPUiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9sb2dsbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSB0aW1lIGZyb20gdGhlIGZpZWxkcywgYW5kIG1ha2Ugc3VyZSB3ZQorICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgc2FtZSBhbnN3ZXIgYmFjay4gVGhpcyBpcyBhIHJvdW5kLXRyaXAgdGVzdC4KKyAgICAgICAgICAgICAgICBEYXRlIHNhdmUgPSB0ZXN0Q2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgREFUQVtqKzEraV0gPCAyNSA/IDE5OTggOiAxOTk3KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIERBVEFbaisxK2ldKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgKGklNykgKyBDYWxlbmRhci5TVU5EQVkpOworICAgICAgICAgICAgICAgIGlmICghdGVzdENhbC5nZXRUaW1lKCkuZXF1YWxzKHNhdmUpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIFBhcnNlIGZhaWxlZDogIiArIHRlc3RDYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbD0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWUoc2F2ZSk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIERhdGUgZFtdID0gbmV3IERhdGVbOF07CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDI4KTsKKyAgICAgICAgZFswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAxMCk7CisgICAgICAgIGRbMV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKTsKKyAgICAgICAgZFsyXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBUZXN0IGZpZWxkIGRpc2FtYmlndWF0aW9uIHdpdGggYSBmZXcgc3BlY2lhbCBoYXJkLWNvZGVkIGNhc2VzLgorICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBmYWlsIGlmIHRoZSBhYm92ZSBjYXNlcyBhcmVuJ3QgZmFpbGluZy4KKyAgICAgICAgT2JqZWN0W10gRElTQU0gPSB7CisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoMSksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLlNVTkRBWSksCisgICAgICAgICAgICAgICAgZFswXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcigyKSwgbmV3IEludGVnZXIoQ2FsZW5kYXIuU0FUVVJEQVkpLAorICAgICAgICAgICAgICAgIGRbMV0sCisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoNTMpLCBuZXcgSW50ZWdlcihDYWxlbmRhci5USFVSU0RBWSksCisgICAgICAgICAgICAgICAgZFsyXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcig1MyksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLkZSSURBWSksCisgICAgICAgICAgICAgICAgZFszXSwKKyAgICAgICAgfTsKKyAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDMpOworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxESVNBTS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIGludCB5ID0gKChJbnRlZ2VyKURJU0FNW2ldKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IHdveSA9ICgoSW50ZWdlcilESVNBTVtpKzFdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IGRvdyA9ICgoSW50ZWdlcilESVNBTVtpKzJdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgRGF0ZSBleHAgPSAoRGF0ZSlESVNBTVtpKzNdOworICAgICAgICAgICAgdGVzdENhbC5jbGVhcigpOworICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgeSk7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIHdveSk7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgZG93KTsKKyAgICAgICAgICAgIGxvZyh5ICsgIi1XIiArIHdveSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRE9XIiArIGRvdyArICIgZXhwZWN0OiIgKyBleHAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGdvdDoiICsgdGVzdENhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgaWYgKCF0ZXN0Q2FsLmdldFRpbWUoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZygiICBGQUlMIik7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL2xvZ2xuKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdHJ5IGFkZGluZyBhbmQgcm9sbGluZworICAgICAgICBPYmplY3QgQUREID0gbmV3IE9iamVjdCgpOworICAgICAgICBPYmplY3QgUk9MTCA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgZFswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5ERUNFTUJFUiwgMjgpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDQpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNyk7CisgICAgICAgIGRbNF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDI4KTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAyKTsKKyAgICAgICAgZFs2XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAzKTsKKyAgICAgICAgZFs3XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gQUREUk9MTCA9IHsKKyAgICAgICAgICAgIEFERCwgbmV3IEludGVnZXIoMSksIGRbMF0sIGRbMV0sCisgICAgICAgICAgICBBREQsIG5ldyBJbnRlZ2VyKDEpLCBkWzJdLCBkWzNdLAorICAgICAgICAgICAgUk9MTCwgbmV3IEludGVnZXIoMSksIGRbNF0sIGRbNV0sCisgICAgICAgICAgICBST0xMLCBuZXcgSW50ZWdlcigxKSwgZFs2XSwgZFs3XSwKKyAgICAgICAgfTsKKyAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDMpOworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxBRERST0xMLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgaW50IGFtb3VudCA9ICgoSW50ZWdlcilBRERST0xMW2krMV0pLmludFZhbHVlKCk7CisgICAgICAgICAgICBEYXRlIGJlZm9yZSA9IChEYXRlKUFERFJPTExbaSsyXTsKKyAgICAgICAgICAgIERhdGUgYWZ0ZXIgPSAoRGF0ZSlBRERST0xMW2krM107CisKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0VGltZShiZWZvcmUpOworICAgICAgICAgICAgaWYgKEFERFJPTExbaV0gPT0gQUREKSB0ZXN0Q2FsLmFkZChDYWxlbmRhci5XRUVLX09GX1lFQVIsIGFtb3VudCk7CisgICAgICAgICAgICBlbHNlIHRlc3RDYWwucm9sbChDYWxlbmRhci5XRUVLX09GX1lFQVIsIGFtb3VudCk7CisgICAgICAgICAgICBsb2coKEFERFJPTExbaV09PUFERD8iYWRkKFdPWSwiOiJyb2xsKFdPWSwiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCArICIpICIgKyBiZWZvcmUgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0ZXN0Q2FsLmdldFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBleHA6IiArIGFmdGVyICsgIiAgRkFJTCIpOworICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBsb2dsbigiIG9rIik7CisKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0VGltZShhZnRlcik7CisgICAgICAgICAgICBpZiAoQUREUk9MTFtpXSA9PSBBREQpIHRlc3RDYWwuYWRkKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgLWFtb3VudCk7CisgICAgICAgICAgICBlbHNlIHRlc3RDYWwucm9sbChDYWxlbmRhci5XRUVLX09GX1lFQVIsIC1hbW91bnQpOworICAgICAgICAgICAgbG9nKChBRERST0xMW2ldPT1BREQ/ImFkZChXT1ksIjoicm9sbChXT1ksIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLWFtb3VudCkgKyAiKSAiICsgYWZ0ZXIgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBpZiAoIWJlZm9yZS5lcXVhbHModGVzdENhbC5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZXhwOiIgKyBiZWZvcmUgKyAiICBGQUlMIik7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGxvZ2xuKCIgb2siKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWlsKSBlcnJsbigiRmFpbDogV2VlayBvZiB5ZWFyIG1pc2JlaGF2aW5nIik7CisgICAgfSAKKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2MTM2KCkgeworICAgICAgICBMb2NhbGUgc2F2ZUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyAiQ2FsZW5kYXIiLCAiRGF0ZUZvcm1hdCIsICJOdW1iZXJGb3JtYXQiIH07CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0geyBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkNISU5BIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIGludFtdIG4gPSB7CisgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGgKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxuLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuW2pdID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWVzW2pdICsgIiBoYXMgbm8gbG9jYWxlcyBmb3IgIiArIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVMb2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDg3NjQoKSB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMDAsIDAwKTsKKyAgICAgICAgRGF0ZSBkMDAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMDAsIDU2KTsKKyAgICAgICAgRGF0ZSBkMDEgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMzQsIDAwKTsKKyAgICAgICAgRGF0ZSBkMTAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMzQsIDU2KTsKKyAgICAgICAgRGF0ZSBkMTEgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMTUsIDEyLCAzNCwgNTYpOworICAgICAgICBEYXRlIGRNICA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBEYXRlIGVwb2NoID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgIGNhbC5zZXRUaW1lKGQxMSk7CisKKyAgICAgICAgY2FsLmNsZWFyKCBDYWxlbmRhci5NSU5VVEUgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQwMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZDExICsgIiBjbGVhcihNSU5VVEUpID0+IGV4cGVjdCAiICsKKyAgICAgICAgICAgICAgICAgIGQwMSArICIsIGdvdCAiICsgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDAgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQwMCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogc2V0KFNFQ09ORCwgMCkgYnJva2VuIik7CisKKyAgICAgICAgY2FsLnNldFRpbWUoZDExKTsKKyAgICAgICAgY2FsLnNldCggQ2FsZW5kYXIuU0VDT05ELCAwICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMTApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IHNldChTRUNPTkQsIDApIGJyb2tlbiAjMiIpOworCisgICAgICAgIGNhbC5jbGVhciggQ2FsZW5kYXIuTUlOVVRFICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMDApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IGNsZWFyKE1JTlVURSkgYnJva2VuICMyIik7CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZXBvY2gpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IGFmdGVyIGNsZWFyKCkgZXhwZWN0ICIgKyBlcG9jaCArICIsIGdvdCAiICsgY2FsLmdldFRpbWUoKSk7CisKKyAgICAgICAgY2FsLnNldFRpbWUoZDExKTsKKyAgICAgICAgY2FsLmNsZWFyKCBDYWxlbmRhci5NT05USCApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZE0pKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGQxMSArICIgY2xlYXIoTU9OVEgpID0+IGV4cGVjdCAiICsKKyAgICAgICAgICAgICAgICAgIGRNICsgIiwgZ290ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE0NTc4KCkgeworICAgICAgICBpbnQgT05FX0hPVVIgPSA2MCo2MCoxMDAwOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgCisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDUsIDEsIDApOworICAgICAgICBsb25nIG9uc2V0ID0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICsgT05FX0hPVVI7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDI1LCAwLCAwKTsKKyAgICAgICAgbG9uZyBjZWFzZSA9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSArIDIqT05FX0hPVVI7CisKKyAgICAgICAgYm9vbGVhbiBmYWlsID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgQUREID0gMTsKKyAgICAgICAgZmluYWwgaW50IFJPTEwgPSAyOworCisgICAgICAgIGxvbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gU3RhcnQgQWN0aW9uIEFtdCBFeHBlY3RlZF9jaGFuZ2UKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKERBVEFbaV0pOworICAgICAgICAgICAgaW50IGFtdCA9IChpbnQpIERBVEFbaSsyXTsKKyAgICAgICAgICAgIGxvbmcgZXhwZWN0ZWRDaGFuZ2UgPSBEQVRBW2krM107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZyhkYXRlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoKGludCkgREFUQVtpKzFdKSB7CisgICAgICAgICAgICBjYXNlIEFERDoKKyAgICAgICAgICAgICAgICBsb2coIiBhZGQgKEhPVVIsIiArIChhbXQ8MD8iIjoiKyIpK2FtdCArICIpPSAiKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkhPVVIsIGFtdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJPTEw6CisgICAgICAgICAgICAgICAgbG9nKCIgcm9sbChIT1VSLCIgKyAoYW10PDA/IiI6IisiKSthbXQgKyAiKT0gIik7CisgICAgICAgICAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgYW10KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGxvbmcgY2hhbmdlID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgIT0gZXhwZWN0ZWRDaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIEZBSUwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiBPSyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWwpIGVycmxuKCJGYWlsOiByb2xsL2FkZCBtaXNiZWhhdmVzIGFyb3VuZCBEU1Qgb25zZXQvY2Vhc2UiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgbWF4aW11bSBmb3IgSE9VUiBmaWVsZCBpcyAxMSwgbm90IDEyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE4Mzg0KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBpZiAoY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkhPVVIpICE9IDExKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IG1heGltdW0gb2YgSE9VUiBmaWVsZCBzaG91bGQgYmUgMTEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpc0xlYXBZZWFyIGZvciBCQyB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg4MSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIGQsIHl5eXkgRyIpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgZm9yIChpbnQgeT0tMjA7IHk8PTEwOyArK3kpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCB5IDwgMSA/IEdyZWdvcmlhbkNhbGVuZGFyLkJDIDogR3JlZ29yaWFuQ2FsZW5kYXIuQUQpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5IDwgMSA/IDEgLSB5IDogeSk7CisgICAgICAgICAgICBsb2dsbih5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuaXNMZWFwWWVhcih5KSk7CisgICAgICAgICAgICBpZiAoY2FsLmlzTGVhcFllYXIoeSkgIT0gKCh5KzQwKSU0ID09IDApKQorICAgICAgICAgICAgICAgIGVycmxuKCJMZWFwIHllYXJzIGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSSBhbSBkaXNhYmxpbmcgdGhpcyB0ZXN0IC0tIGl0IGlzIGN1cnJlbnRseSBmYWlsaW5nIGJlY2F1c2Ugb2YgYSBidWcKKyAgICAvLyBpbiBTdW4ncyBsYXRlc3QgY2hhbmdlIHRvIFNUWi5nZXRPZmZzZXQoKS4gSSBoYXZlIGZpbGVkIGEgU3VuIGJ1ZworICAgIC8vIGFnYWluc3QgdGhpcyBwcm9ibGVtLgorCisgICAgLy8gUmUtZW5hYmxlZCBhZnRlciAncG9ydGluZycgVFogYW5kIFNUWiBmcm9tIGphdmEudXRpbCB0byBjb20uaWJtLmljdS51dGlsLgorICAgIC8qKgorICAgICAqIFByb3ZlIHRoYXQgR3JlZ29yaWFuQ2FsZW5kYXIgaXMgcHJvbGVwdGljIChpdCB1c2VkIHRvIGN1dCBvZmYgYXQgNDUgQkMsCisgICAgICogYW5kIG5vdCBoYXZlIGxlYXAgeWVhcnMgYmVmb3JlIHRoZW4pLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI1ODkyKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpIENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIC8vRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NTSBkLCB5eXl5IEciKTsKKyAgICAgICAgLy9mbXQgPSBudWxsOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEdyZWdvcmlhbkNhbGVuZGFyLkJDKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCA4MSk7IC8vIDgxIEJDIGlzIGEgbGVhcCB5ZWFyIChwcm9sZXB0aWNhbGx5KQorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5GRUJSVUFSWSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFURSwgMjgpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVRFKSAhPSAyOSB8fAorICAgICAgICAgICAgIWNhbC5pc0xlYXBZZWFyKC04MCkpIC8vIC04MCA9PSA4MSBCQworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIG5vdCBwcm9sZXB0aWMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaENvZGUoKSBtZXRob2RzIG5lZWQgaW1wcm92ZW1lbnQuCisgICAgICogQ2FsZW5kYXIgbmVlZHMgYSBnb29kIGltcGxlbWVudGF0aW9uIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUsIGFuZAorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyIHNob3VsZCB1c2UgdGhhdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNjM5OSgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogTm90ZTogVGhpcyB0ZXN0IGlzIGFjdHVhbGx5IG1vcmUgc3RyaWN0IHRoYW4gaXQgaGFzIHRvIGJlLgorICAgICAgICAgKiBUZWNobmljYWxseSwgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhhdCB1bmVxdWFsIG9iamVjdHMgaGF2ZQorICAgICAgICAgKiB1bmVxdWFsIGhhc2hlcy4gV2Ugb25seSByZXF1aXJlIGVxdWFsIG9iamVjdHMgdG8gaGF2ZSBlcXVhbCBoYXNoZXMuCisgICAgICAgICAqIEl0IGlzIGRlc2lyYWJsZSBmb3IgdW5lcXVhbCBvYmplY3RzIHRvIGhhdmUgZGlzdHJpYnV0ZWQgaGFzaGVzLCBidXQKKyAgICAgICAgICogdGhlcmUgaXMgbm8gaGFyZCByZXF1aXJlbWVudCBoZXJlLgorICAgICAgICAgKiAKKyAgICAgICAgICogSW4gdGhpcyB0ZXN0IHdlIG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgY2VydGFpbiBhdHRyaWJ1dGVzIG9mIGNhbGVuZGFyCisgICAgICAgICAqIG9iamVjdHMgZ2V0dGluZyByZXByZXNlbnRlZCBpbiB0aGUgaGFzaCwgd2hpY2ggbmVlZCBub3QgYWx3YXlzIGJlIHRoZQorICAgICAgICAgKiBjYXNlIChhbHRob3VnaCBpdCBkb2VzIHdvcmsgY3VycmVudGx5IHdpdGggdGhlIGdpdmVuIHRlc3QpLgorICAgICAgICAgKi8KKyAgICAgICAgQ2FsZW5kYXIgYSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIENhbGVuZGFyIGIgPSAoQ2FsZW5kYXIpYS5jbG9uZSgpOworICAgICAgICBpZiAoYS5oYXNoQ29kZSgpICE9IGIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIGhhc2ggY29kZSB1bmVxdWFsIGZvciBjbG9uZWQgb2JqZWN0cyIpOworICAgICAgICB9CisgICAgICAgIFRpbWVab25lIGF0ejEgPSBhLmdldFRpbWVab25lKCk7CisgICAgICAgIFRpbWVab25lIGF0ejIgPSAoVGltZVpvbmUpYXR6MS5jbG9uZSgpOworICAgICAgICBpZighYXR6MS5lcXVhbHMoYXR6MikpeworICAgICAgICAJZXJybG4oIlRoZSBjbG9uZSB0aW1lem9uZXMgYXJlIG5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgICAgIGlmKGF0ejEuaGFzaENvZGUoKSE9YXR6Mi5oYXNoQ29kZSgpKXsKKyAgICAgICAgCWVycmxuKCJUaW1lWm9uZSBoYXNoIGNvZGUgdW5lcXVhbCBmb3IgY2xvbmVkIG9iamVjdHMiKTsKKyAgICAgICAgfQorICAgICAgICBiLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNyAtIGEuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhhLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisKKyAgICAgICAgYi5zZXRGaXJzdERheU9mV2VlaygoYS5nZXRGaXJzdERheU9mV2VlaygpICUgNykgKyAxKTsgLy8gTmV4dCBkYXkKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBmaXJzdCBkYXkgb2Ygd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0Rmlyc3REYXlPZldlZWsoYS5nZXRGaXJzdERheU9mV2VlaygpKTsKKworICAgICAgICBiLnNldExlbmllbnQoIWEuaXNMZW5pZW50KCkpOworICAgICAgICBpZiAoYS5oYXNoQ29kZSgpID09IGIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIGhhc2ggY29kZSBpZ25vcmVzIGxlbmllbnQgc2V0dGluZyIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TGVuaWVudChhLmlzTGVuaWVudCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFzc3VtZSBnZXRUaW1lWm9uZSgpIHJldHVybnMgYSByZWZlcmVuY2UsIG5vdCBhIGNsb25lCisgICAgICAgIC8vIG9mIGEgcmVmZXJlbmNlIC0tIHRoaXMgaXMgdHJ1ZSBhcyBvZiB0aGlzIHdyaXRpbmcKKyAgICAgICAgVGltZVpvbmUgYXR6ID0gYS5nZXRUaW1lWm9uZSgpOworICAgICAgICBUaW1lWm9uZSBidHogPSBiLmdldFRpbWVab25lKCk7CisKKyAgICAgICAgYnR6LnNldFJhd09mZnNldChhdHouZ2V0UmF3T2Zmc2V0KCkgKyA2MCo2MCoxMDAwKTsKKyAgICAgICAgaWYoYXR6Lmhhc2hDb2RlKCk9PSBidHouaGFzaENvZGUoKSl7CisgICAgICAgIAllcnJsbihhdHouaGFzaENvZGUoKSsiPT0iK2J0ei5oYXNoQ29kZSgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYS5nZXRUaW1lWm9uZSgpIT0gYi5nZXRUaW1lWm9uZSgpICYmIGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyB6b25lIik7CisgICAgICAgIH0KKyAgICAgICAgYi5nZXRUaW1lWm9uZSgpLnNldFJhd09mZnNldChhLmdldFRpbWVab25lKCkuZ2V0UmF3T2Zmc2V0KCkpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZCA9IChHcmVnb3JpYW5DYWxlbmRhciljLmNsb25lKCk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgIT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIHVuZXF1YWwgZm9yIGNsb25lcyBvYmplY3RzIik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZSBjdXRvdmVyID0gYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKTsKKyAgICAgICAgZC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoY3V0b3Zlci5nZXRUaW1lKCkgKyAyNCo2MCo2MCoxMDAwKSk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgPT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgY3V0b3ZlciIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5lcXVhbHMoKSBpZ25vcmVzIGN1dG92ZXIgZGF0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQxNjY1KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IChHcmVnb3JpYW5DYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgRGF0ZSBjdXQgPSBjYWwuZ2V0R3JlZ29yaWFuQ2hhbmdlKCk7CisgICAgICAgIERhdGUgY3V0MiA9IG5ldyBEYXRlKGN1dC5nZXRUaW1lKCkgKyAxMDAqMjQqNjAqNjAqMTAwMEwpOyAvLyAxMDAgZGF5cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGF0ZXIKKyAgICAgICAgaWYgKCFjYWwuZXF1YWxzKGNhbDIpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2xvbmVkIEdyZWdvcmlhbkNhbGVuZGFycyBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwyLnNldEdyZWdvcmlhbkNoYW5nZShjdXQyKTsKKyAgICAgICAgaWYgKGNhbC5lcXVhbHMoY2FsMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJHcmVnb3JpYW5DYWxlbmRhci5lcXVhbHMoKSBpZ25vcmVzIGN1dG92ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCdWcgc3RhdGVzIHRoYXQgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlzIHRocm93biBieQorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyLnJvbGwoKSB3aGVuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBzaG91bGQgYmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDI5MzMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjYWxlbmRhci5yb2xsKC0xLCB0cnVlKTsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCwgbm8gZXhjZXB0aW9uIHRyb3duIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBPSzogRG8gbm90aGluZworICAgICAgICAgICAgLy8gbG9nbG4oIlRlc3QgcGFzc2VkIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZC4gVW5leHBlY3RlZCBleGNlcHRpb24gaXMgdGhyb3duOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9IAorICAgIH0KKworICAgIC8qKgorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyIGhhbmRsaW5nIG9mIERhdGVzIExvbmcuTUlOX1ZBTFVFIGFuZCBMb25nLk1BWF9WQUxVRSBpcworICAgICAqIGNvbmZ1c2luZzsgdW5sZXNzIHRoZSB0aW1lIHpvbmUgaGFzIGEgcmF3IG9mZnNldCBvZiB6ZXJvLCBvbmUgb3IgdGhlCisgICAgICogb3RoZXIgb2YgdGhlc2Ugd2lsbCB3cmFwLiBXZSd2ZSBtb2RpZmllZCB0aGUgdGVzdCBnaXZlbiBpbiB0aGUgYnVnIHJlcG9ydAorICAgICAqIHRvIHRoZXJlZm9yZSBvbmx5IGNoZWNrIHRoZSBiZWhhdmlvciBvZiBhIGNhbGVuZGFyIHdpdGggYSB6ZXJvIHJhdyBvZmZzZXQKKyAgICAgKiB6b25lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ1MTU4KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkpOworICAgICAgICBpbnQgeWVhcjEgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBlcmExID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgIGludCB5ZWFyMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IGVyYTIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgCisgICAgICAgIGlmICh5ZWFyMSA9PSB5ZWFyMiAmJiBlcmExID09IGVyYTIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1JTl9WQUxVRSBvciBMb25nLk1BWF9WQUxVRSB3cmFwcGluZyBhcm91bmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWUgZm9yIFlFQVIgZmllbGQgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU5ODMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIERhdGVbXSBEQVRFUyA9IHsgbmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpLCBuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEVTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKERBVEVTW2ldKTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1heFllYXIgPSBjYWxlbmRhci5nZXRNYXhpbXVtKENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaWYgKHllYXIgPiBtYXhZZWFyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmb3IgIitEQVRFU1tpXS5nZXRUaW1lKCkrIiBtczogeWVhcj0iICsKKyAgICAgICAgICAgICAgICAgICAgICB5ZWFyICsgIiwgbWF4WWVhcj0iICsgbWF4WWVhcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgYnVnIGluIHRoZSB2YWxpZGF0aW9uIGNvZGUgb2YgR3JlZ29yaWFuQ2FsZW5kYXIuIEFzIHJlcG9ydGVkLAorICAgICAqIHRoZSBidWcgc2VlbXMgd29yc2UgdGhhbiBpdCByZWFsbHkgaXMsIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBidWcKKyAgICAgKiByZXBvcnQgdGVzdCB3YXMgd3JpdHRlbi4gSW4gcmVhbGl0eSB0aGUgYnVnIGlzIHJlc3RyaWN0ZWQgdG8gdGhlCisgICAgICogREFZX09GX1lFQVIgZmllbGQuIC0gbGl1IDYvMjkvOTgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzI2OSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuSkFOVUFSWSwgMyk7IC8vIEFyYml0cmFyeSBkYXRlCisgICAgICAgIERhdGUgZGF0ZSA9IHRlbXBjYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgZm9yIChpbnQgZmllbGQgPSAwOyBmaWVsZCA8IGNhbGVuZGFyLmdldEZpZWxkQ291bnQoKTsgZmllbGQrKykgeworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIC8vIE5vdGU6IEluIHRoZSBidWcgcmVwb3J0LCBnZXRBY3R1YWxNYXhpbXVtKCkgd2FzIGNhbGxlZCBpbnN0ZWFkCisgICAgICAgICAgICAvLyBvZiBnZXRNYXhpbXVtKCkgLS0gdGhpcyB3YXMgYW4gZXJyb3IuIFRoZSB2YWxpZGF0aW9uIGNvZGUgZG9lc24ndAorICAgICAgICAgICAgLy8gdXNlIGdldEFjdHVhbE1heGltdW0oKSwgc2luY2UgdGhhdCdzIHRvbyBjb3N0bHkuCisgICAgICAgICAgICBpbnQgbWF4ID0gY2FsZW5kYXIuZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBtYXgrMTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChmaWVsZCwgdmFsdWUpOyAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0VGltZSgpOyAvLyBGb3JjZSB0aW1lIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgLy8gV2UgZXhwZWN0IGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uIElmIHdlIGZhbGwgdGhyb3VnaAorICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXh0IGxpbmUsIHRoZW4gd2UgaGF2ZSBhIGJ1Zy4KKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBmaWVsZCAiICsgRklFTERfTkFNRVtmaWVsZF0gKworICAgICAgICAgICAgICAgICAgICAgICIsIGRhdGUgYmVmb3JlOiAiICsgZGF0ZSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF0ZSBhZnRlcjogIiArIGNhbGVuZGFyLmdldFRpbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgdmFsdWU6ICIgKyB2YWx1ZSArICIgKG1heCA9ICIgKyBtYXggKyIpIik7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydGVkIGJ1ZyBpcyB0aGF0IGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCBhIGN1dG92ZXIgb2YKKyAgICAgKiBEYXRlKExvbmcuTUFYX1ZBTFVFKSBkb2Vzbid0IGJlaGF2ZSBhcyBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLiBDQU5OT1QKKyAgICAgKiBSRVBST0RVQ0UgVEhJUyBCVUcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0OTY3NygpIHsKKyAgICAgICAgVGltZVpvbmVbXSB6b25lcyA9IHsgVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldFRpbWVab25lKCJFQVQiKSB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8em9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVzW2ldKTsKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGV4dHJlbWUgdmFsdWVzIGRvbid0IHdyYXAgYXJvdW5kCisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSkgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogTG9uZy5NSU5fVkFMVUUgbXMgaGFzIGFuIEFEIHllYXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1BWF9WQUxVRSBtcyBoYXMgYSBCQyB5ZWFyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICAgICAgLy8gdG8gb2J0YWluIGEgcHVyZSBKdWxpYW4gY2FsZW5kYXIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBpczEwMExlYXAgPSBjYWxlbmRhci5pc0xlYXBZZWFyKDEwMCk7CisgICAgICAgICAgICBpZiAoIWlzMTAwTGVhcCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0ZXN0IGZhaWxlZCB3aXRoIHpvbmUgIiArIHpvbmVzW2ldLmdldElEKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgY3V0b3ZlciBkYXRlIGlzIENhbGVuZGFyLk1BWF9EQVRFIik7CisgICAgICAgICAgICAgICAgZXJybG4oIiBpc0xlYXBZZWFyKDEwMCkgcmV0dXJuczogIiArIGlzMTAwTGVhcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgRGF0ZSBIT1VSIGJyb2tlbi4gSWYgSE9VUiBpcyBvdXQtb2YtcmFuZ2UsIENhbGVuZGFyIGFuZCBEYXRlCisgICAgICogY2xhc3NlcyB3aWxsIG1pc2JlaGF2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjU4NygpIHsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQodHopOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHopOworICAgICAgICBEYXRlIGQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGk8NTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaT4wKSBsb2dsbigiLS0tIik7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgaSwgMCk7CisgICAgICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBzMCA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIwICIgKyBpICsgIjogIiArIHMwKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA0LCBpKzI0LCAwKTsKKyAgICAgICAgICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgU3RyaW5nIHNQbHVzID0gZC50b1N0cmluZygpOworICAgICAgICAgICAgbG9nbG4oIisgIiArIGkgKyAiOiAiICsgc1BsdXMpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDYsIGktMjQsIDApOworICAgICAgICAgICAgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBTdHJpbmcgc01pbnVzID0gZC50b1N0cmluZygpOworICAgICAgICAgICAgbG9nbG4oIi0gIiArIGkgKyAiOiAiICsgc01pbnVzKTsKKworICAgICAgICAgICAgaWYgKCFzMC5lcXVhbHMoc1BsdXMpIHx8ICFzMC5lcXVhbHMoc01pbnVzKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBBbGwgdGhyZWUgbGluZXMgbXVzdCBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkaW5nIDEyIG1vbnRocyBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20gYWRkaW5nIDEgeWVhcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY1MzQzKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworICAgICAgICBEYXRlIHN0YXJ0ID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiaW5pdCBkYXRlOiAiICsgc3RhcnQpOworICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEyKTsgCisgICAgICAgIERhdGUgZGF0ZTEgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJhZnRlciBhZGRpbmcgMTIgbW9udGhzOiAiICsgZGF0ZTEpOworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKHN0YXJ0KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBEYXRlIGRhdGUyID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiYWZ0ZXIgYWRkaW5nIG9uZSB5ZWFyIDogIiArIGRhdGUyKTsKKyAgICAgICAgaWYgKGRhdGUxLmVxdWFscyhkYXRlMikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKCkgZG9lcyBub3QgYWNjb3VudCBmb3IgZmlyc3QgZGF5IG9mCisgICAgICogd2Vlay4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NjEwOSgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGVzdCBtb250aDoKKyAgICAgICAgICogCisgICAgICAgICAqIE1hcmNoIDE5OTggU3UgTW8gVHUgV2UgVGggRnIgU2EgMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMTQgMTUKKyAgICAgICAgICogMTYgMTcgMTggMTkgMjAgMjEgMjIgMjMgMjQgMjUgMjYgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgaW50IGZpZWxkID0gQ2FsZW5kYXIuV0VFS19PRl9NT05USDsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuVVMpOworICAgICAgICBjYWxlbmRhci5zZXQoMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBjYWxlbmRhci5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDEpOworICAgICAgICBsb2dsbigiRGF0ZTogICIgKyBjYWxlbmRhci5nZXRUaW1lKCkpOworCisgICAgICAgIGludCBmaXJzdEluTW9udGggPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKworICAgICAgICBmb3IgKGludCBmaXJzdEluV2VlayA9IENhbGVuZGFyLlNVTkRBWTsgZmlyc3RJbldlZWsgPD0gQ2FsZW5kYXIuU0FUVVJEQVk7IGZpcnN0SW5XZWVrKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0SW5XZWVrKTsKKyAgICAgICAgICAgIGludCByZXR1cm5lZCA9IGNhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gKDMxICsgKChmaXJzdEluTW9udGggLSBmaXJzdEluV2VlayArIDcpJSA3KSArIDYpIC8gNzsKKworICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRheSBvZiB3ZWVrID0gIiArIGZpcnN0SW5XZWVrICsKKyAgICAgICAgICAgICAgICAgICIgIGdldEFjdHVhbE1heGltdW0oV0VFS19PRl9NT05USCkgPSAiICsgcmV0dXJuZWQgKworICAgICAgICAgICAgICAgICAgIiAgZXhwZWN0ZWQgPSAiICsgZXhwZWN0ZWQgKworICAgICAgICAgICAgICAgICAgKChyZXR1cm5lZCA9PSBleHBlY3RlZCkgPyAiICBvayIgOiAiICBGQUlMIikpOworCisgICAgICAgICAgICBpZiAocmV0dXJuZWQgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3NlZCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKFlFQVIpIHdvcmtzIHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY3MDYwKCkgeworICAgICAgICBpbnQgZmllbGQgPSBDYWxlbmRhci5ZRUFSOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzIHp6eiB5eXl5IEciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSB7CisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTAwLCBDYWxlbmRhci5OT1ZFTUJFUiwgMSksCisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLTk5IC8qIDEwMEJDICovLCBDYWxlbmRhci5KQU5VQVJZLCAxKSwKKyAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGlkID0geyAiSHlicmlkIiwgIkdyZWdvcmlhbiIsICJKdWxpYW4iIH07CisKKyAgICAgICAgZm9yIChpbnQgaz0wOyBrPDM7ICsraykgeworICAgICAgICAgICAgbG9nbG4oIi0tLSAiICsgaWRba10gKyAiIC0tLSIpOworCisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8Y2FsZW5kYXJzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBjYWxlbmRhcnNbal07CisgICAgICAgICAgICAgICAgaWYgKGsgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGsgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3JtYXQuc2V0Q2FsZW5kYXIoKENhbGVuZGFyKWNhbGVuZGFyLmNsb25lKCkpOworCisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlQmVmb3JlID0gY2FsZW5kYXIuZ2V0VGltZSgpOworCisgICAgICAgICAgICAgICAgaW50IG1heFllYXIgPSBjYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBsb2dsbigibWF4WWVhcjogIiArIG1heFllYXIgKyAiIGZvciAiICsgZm9ybWF0LmZvcm1hdChjYWxlbmRhci5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGF0ZSBiZWZvcmU6ICIgKyBmb3JtYXQuZm9ybWF0KGRhdGVCZWZvcmUpKTsKKworICAgICAgICAgICAgICAgIGludCB5ZWFyc1tdID0gezIwMDAsIG1heFllYXItMSwgbWF4WWVhciwgbWF4WWVhcisxfTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeWVhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IHllYXJzW2ldIDw9IG1heFllYXI7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLnNldChmaWVsZCwgeWVhcnNbaV0pOworICAgICAgICAgICAgICAgICAgICBEYXRlIGRhdGVBZnRlciA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5ld1llYXIgPSBjYWxlbmRhci5nZXQoZmllbGQpOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKGRhdGVCZWZvcmUpOyAvLyByZXN0b3JlIGNhbGVuZGFyIGZvciBuZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZQorCisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgWWVhciAiICsgeWVhcnNbaV0gKyAodmFsaWQ/ICIgb2sgIiA6ICIgYmFkIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBmb3JtYXQuZm9ybWF0KGRhdGVBZnRlcikpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWQgJiYgbmV3WWVhciAhPSB5ZWFyc1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIiAgRkFJTDogIiArIG5ld1llYXIgKyAiIHNob3VsZCBiZSB2YWxpZDsgZGF0ZSwgbW9udGggYW5kIHRpbWUgc2hvdWxkbid0IGNoYW5nZSIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWxpZCAmJiBuZXdZZWFyID09IHllYXJzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBubyBsb25nZXIgcmVxdWlyZSBzdHJpY3QgeWVhciBtYXhpbWEuIFRoYXQgaXMsIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsZW5kYXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsZ29yaXRobSBtYXkgd29yayBmb3IgdmFsdWVzID4gdGhlIHN0YXRlZCBtYXhpbXVtLgorICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJsbigiIEZBSUw6ICIgKyBuZXdZZWFyICsgIiBzaG91bGQgYmUgaW52YWxpZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgTm90ZTogIiArIG5ld1llYXIgKyAiID4gbWF4aW11bSwgYnV0IHN0aWxsIHZhbGlkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhci5yb2xsIGJyb2tlbiBUaGlzIGJ1ZyByZWxpZXMgb24gdGhlIFRpbWVab25lIGJ1ZyA0MTczNjA0IHRvIGFsc28KKyAgICAgKiBiZSBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3MzUxNigpIHsKKyAgICAgICAgaW50IGZpZWxkc0xpc3RbXVtdID0geworICAgICAgICAgICAgeyAxOTk3LCBDYWxlbmRhci5GRUJSVUFSWSwgIDEsIDEwLCA0NSwgMTUsIDkwMCB9LAorICAgICAgICAgICAgeyAxOTk5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjIsIDIzLCA1OSwgNTksIDk5OSB9CisgICAgICAgIH07CisgICAgICAgIGludCBsaW1pdCA9IDQwOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZSgwKSk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsICAweDdGMDAwMDAwKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgLTB4N0YwMDAwMDApOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkhvdXIgcm9sbGluZyBicm9rZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IG9wPTA7IG9wPDI7ICsrb3ApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIEdyZWdvcmlhbkNhbGVuZGFyICIgKworICAgICAgICAgICAgICAgICAgKG9wPT0wID8gImFkZCIgOiAicm9sbCIpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGZpZWxkPTA7IGZpZWxkIDwgY2FsLmdldEZpZWxkQ291bnQoKTsgKytmaWVsZCkgeworICAgICAgICAgICAgICAgIGlmIChmaWVsZCAhPSBDYWxlbmRhci5aT05FX09GRlNFVCAmJgorICAgICAgICAgICAgICAgICAgICBmaWVsZCAhPSBDYWxlbmRhci5EU1RfT0ZGU0VUKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNMaXN0Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmllbGRzW10gPSBmaWVsZHNMaXN0W2pdOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgZmllbGRzWzRdLCBmaWVsZHNbNV0pOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgZmllbGRzWzZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMipsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmFkZChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwucm9sbChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSAhPSBmaWVsZHNbMF0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSBmaWVsZHNbMV0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICE9IGZpZWxkc1syXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICE9IGZpZWxkc1szXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSAhPSBmaWVsZHNbNF0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgIT0gZmllbGRzWzVdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gZmllbGRzWzZdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZpZWxkICIgKyBmaWVsZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIEZJRUxEX05BTUVbZmllbGRdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBGQUlMLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNbMF0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChmaWVsZHNbMV0gKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgZmllbGRzWzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBmaWVsZHNbM10gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGZpZWxkc1s0XSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgZmllbGRzWzVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBmaWVsZHNbNl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCAiICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoZmllbGRzWzBdLCBmaWVsZHNbMV0sIGZpZWxkc1syXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgZmllbGRzWzRdLCBmaWVsZHNbNV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIGZpZWxkc1s2XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlN0YXJ0IGRhdGU6ICIgKyBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwcmV2ID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyKmxpbWl0OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoZmllbGQsIGkgPCBsaW1pdCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwucm9sbChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHQgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IHQgLSBwcmV2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oKG9wID09IDAgPyAiYWRkKCIgOiAicm9sbCgiKSArIEZJRUxEX05BTUVbZmllbGRdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPCBsaW1pdCA/ICIsICsxKSA9PiAiIDogIiwgLTEpID0+ICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRlbHRhPSIgKyBkZWx0YSArICIgbXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NDM2MSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgMSwgMjkpOworCisgICAgICAgIGNhbGVuZGFyLmFkZChDYWxlbmRhci5NT05USCwgMTApOyAKKyAgICAgICAgLy9EYXRlIGRhdGUxID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICAvL2RhdGUxID0gbnVsbDsKKyAgICAgICAgaW50IGQxID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisKKyAgICAgICAgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgMSwgMjkpOworICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuTU9OVEgsIDExKTsgCisgICAgICAgIC8vRGF0ZSBkYXRlMiA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgLy9kYXRlMiA9IG51bGw7CisgICAgICAgIGludCBkMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworCisgICAgICAgIGlmIChkMSAhPSBkMikgeworICAgICAgICAgICAgZXJybG4oImFkZGluZyBtb250aHMgdG8gRmViIDI5IGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIgZG9lcyBub3QgdXBkYXRlIGZpZWxkIHZhbHVlcyB3aGVuIHNldFRpbWVab25lIGlzIGNhbGxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NzQ4NCgpIHsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZSBFU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoUFNULCBMb2NhbGUuVVMpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk5LCAzLCAyMSwgMTUsIDUsIDApOyAvLyBBcmJpdHJhcnkKKyAgICAgICAgaW50IGgxID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShFU1QpOworICAgICAgICBpbnQgaDIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgaWYgKGgxID09IGgyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRmllbGRzIG5vdCB1cGRhdGVkIGFmdGVyIHNldFRpbWVab25lIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZXRUaW1lKCkgbXVzdCBOT1QgY2hhbmdlIHdoZW4gdGltZSB6b25lIGlzIGNoYW5nZWQuCisgICAgICAgIC8vIGdldFRpbWUoKSByZXR1cm5zIHpvbmUtaW5kZXBlbmRlbnQgdGltZSBpbiBtcy4KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShQU1QpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMCk7CisgICAgICAgIERhdGUgcHN0MTAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoRVNUKTsKKyAgICAgICAgRGF0ZSBlc3QxMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICghcHN0MTAuZXF1YWxzKGVzdDEwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRpbWVab25lIGNoYW5nZWQgdGltZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV2VlayBvZiB5ZWFyIGlzIHdyb25nIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSB5ZWFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTk3Njk5KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLk1PTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDQpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGRkIE1NTSB5eXl5ICAnRE9ZPSdEICdXT1k9J3ciKTsKKyAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbCk7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIDIwMDAsICBDYWxlbmRhci5KQU5VQVJZLCAgIDEsICAgNTIsCisgICAgICAgICAgICAyMDAxLCAgQ2FsZW5kYXIuREVDRU1CRVIsICAzMSwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGNhbC5zZXQoREFUQVtpKytdLCBEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICBpbnQgZXhwV09ZID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGFjdFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChleHBXT1kgPT0gYWN0V09ZKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgV09ZPSIgKyBleHBXT1kpOworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwxNDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGVuZGFyIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkcy0+dGltZSBicm9rZW4uIFRoZSBwcm9ibGVtIGlzIGluIHRoZQorICAgICAqIGZpZWxkIGRpc2FtYmlndWF0aW9uIGNvZGUgaW4gR3JlZ29yaWFuQ2FsZW5kYXIuIFRoaXMgY29kZSBpcyBzdXBwb3NlZCB0bworICAgICAqIGNob29zZSB0aGUgbW9zdCByZWNlbnQgc2V0IG9mIGZpZWxkcyBhbW9uZyB0aGUgZm9sbG93aW5nOgorICAgICAqIAorICAgICAqIE1PTlRIICsgREFZX09GX01PTlRIIE1PTlRIICsgV0VFS19PRl9NT05USCArIERBWV9PRl9XRUVLIE1PTlRIICsKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLIERBWV9PRl9ZRUFSIFdFRUtfT0ZfWUVBUiArIERBWV9PRl9XRUVLCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMDkwNzEoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICAgICAgLy8gR2VuZXJhbCBmaWVsZCBzZXR0aW5nIHRlc3QKKyAgICAgICAgaW50IFkgPSAxOTk1OworICAgICAgICAKKyAgICAgICAgRGF0ZSBkW10gPSBuZXcgRGF0ZVsxM107CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDQpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDE4KTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAxOCk7CisgICAgICAgIGRbNF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWS0xLCBDYWxlbmRhci5ERUNFTUJFUiwgMjIpOworICAgICAgICBkWzVdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDI2KTsKKyAgICAgICAgZFs2XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAyNik7CisgICAgICAgIGRbN10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBkWzhdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk9DVE9CRVIsIDYpOworICAgICAgICBkWzldID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk9DVE9CRVIsIDEzKTsKKyAgICAgICAgZFsxMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuQVVHVVNULCAxMCk7CisgICAgICAgIGRbMTFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkRFQ0VNQkVSLCA3KTsKKyAgICAgICAgZFsxMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBPYmplY3RbXSBGSUVMRF9EQVRBID0geworICAgICAgICAgICAgLy8gQWRkIG5ldyB0ZXN0IGNhc2VzIGFzIG5lZWRlZC4KKworICAgICAgICAgICAgLy8gMAorICAgICAgICAgICAgbmV3IGludFtdIHt9LCBkWzBdLAorICAgICAgICAgICAgLy8gMQorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLk1BUkNIIH0sIGRbMV0sCisgICAgICAgICAgICAvLyAyCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZIH0sIGRbMl0sCisgICAgICAgICAgICAvLyAzCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LCB9LCBkWzNdLAorICAgICAgICAgICAgLy8gNAorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs0XSwKKyAgICAgICAgICAgIC8vIDUgKFdPTSAtMSBpcyBpbiBwcmV2aW91cyBtb250aCkKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs1XSwKKyAgICAgICAgICAgIC8vIDYKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5XRUVLX09GX01PTlRILCA0LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzZdLAorICAgICAgICAgICAgLy8gNyAoRElNIC0xIGlzIGluIHNhbWUgbW9udGgpCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzddLAorICAgICAgICAgICAgLy8gOAorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCA5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSwgfSwgZFs4XSwKKyAgICAgICAgICAgIC8vIDkKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuRlJJREFZLCB9LCBkWzldLAorICAgICAgICAgICAgLy8gMTAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5GUklEQVksIH0sIGRbMTBdLAorICAgICAgICAgICAgLy8gMTEKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAyMjIsIH0sIGRbMTFdLAorICAgICAgICAgICAgLy8gMTIKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5ERUNFTUJFUiwgfSwgZFsxMl0sCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEZJRUxEX0RBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpbnRbXSBmaWVsZHMgPSAoaW50W10pIEZJRUxEX0RBVEFbaV07CisgICAgICAgICAgICBEYXRlIGV4cCA9IChEYXRlKSBGSUVMRF9EQVRBW2krMV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCBZKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHMubGVuZ3RoOyBqKz0yKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZHNbal0sIGZpZWxkc1tqKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBhY3QgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFhY3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdCAiICsgKGkvMikgKyAiIGdvdCAiICsgYWN0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBleHAgKworICAgICAgICAgICAgICAgICAgICAgICIgKHNlZSB0ZXN0L2phdmEvdXRpbC9DYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgNSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkZFQlJVQVJZLCAyMyk7CisgICAgICAgIGRbMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDUpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCA4KTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBUZXN0IHNwZWNpZmljIGZhaWx1cmUgcmVwb3J0ZWQgaW4gYnVnCisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7IAorICAgICAgICAgICAgbmV3IEludGVnZXIoMSksIGRbMF0sIG5ldyBJbnRlZ2VyKDQpLCBkWzFdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoOCksIGRbMl0sIG5ldyBJbnRlZ2VyKC0xKSwgZFszXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC00KSwgZFs0XSwgbmV3IEludGVnZXIoLTgpLCBkWzVdLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwKKyAgICAgICAgICAgICAgICAgICAgKChOdW1iZXIpIERBVEFbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpBTlVBUlkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIERhdGUgYWN0dWFsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghYWN0dWFsLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN1bmRheSAiICsgREFUQVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiBvZiBKYW4gMTk5NyAtPiAiICsgYWN0dWFsICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBEQVRBW2krMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV0VFS19PRl9ZRUFSIGNvbXB1dGVkIGluY29ycmVjdGx5LiBBIGZhaWx1cmUgb2YgdGhpcyB0ZXN0IGNhbiBpbmRpY2F0ZSBhCisgICAgICogcHJvYmxlbSBpbiBzZXZlcmFsIGRpZmZlcmVudCBwbGFjZXMgaW4gdGhlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyODg3OTIoKSB0aHJvd3MgRXhjZXB0aW9uIAorICAgIHsKKyAgICBUaW1lWm9uZSBzYXZlZFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgCisgICAgZm9yIChpbnQgaSA9IDE5MDA7IGkgPCAyMTAwOyBpKyspIHsKKyAgICAgICAgZm9yIChpbnQgajEgPSAxOyBqMSA8PSA3OyBqMSsrKSB7CisgICAgICAgIC8vIExvb3AgZm9yIE1pbmltYWxEYXlzSW5GaXJzdFdlZWs6IDEuLjcKKyAgICAgICAgZm9yIChpbnQgaiA9IENhbGVuZGFyLlNVTkRBWTsgaiA8PSBDYWxlbmRhci5TQVRVUkRBWTsgaisrKSB7CisgICAgICAgICAgICAvLyBMb29wIGZvciBGaXJzdERheU9mV2VlazogU1VOREFZLi5TQVRVUkRBWQorICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhqMSk7CisgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoaik7CisgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgY2FsZW5kYXIgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbGFzdCB3ZWVrCisgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB5ZWFyLiBUaGlzIG1heSBvdmVybGFwIHNvbWUgb2YgdGhlIHN0YXJ0IG9mCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHllYXI7IHRoYXQgaXMsIHRoZSBsYXN0IHdlZWsgb2YgMTk5OSBtYXkKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5jbHVkZSBzb21lIG9mIEphbnVhcnkgMjAwMC4gVXNlIHRoZSBhZGQoKSBtZXRob2QKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWR2YW5jZSB0aHJvdWdoIHRoZSB3ZWVrLiBGb3IgZWFjaCBkYXksIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgLy8gZ2V0KFdFRUtfT0ZfWUVBUikuIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgd2hvbGUgd2Vlay4gTm90ZSB0aGF0IGEgYnVnIGluCisgICAgICAgICAgICAgICAgICAgIC8vIGdldEFjdHVhbE1heGltdW0oKSB3aWxsIGJyZWFrIHRoaXMgdGVzdC4KKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgaSk7CisgICAgICAgICAgICBpbnQgbWF4V2VlayA9IGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgbWF4V2Vlayk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBqKTsKKyAgICAgICAgICAgIGZvciAoaW50IGsgPSAxOyBrIDwgNzsgaysrKSB7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgaW50IFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChXT1kgIT0gbWF4V2VlaykgeworICAgICAgICAgICAgICAgIGVycmxuKGNhbC5nZXRUaW1lKCkgKyAiLGdvdD0iICsgV09ZCisgICAgICAgICAgICAgICAgICArICIsZXhwZWN0ZWQ9IiArIG1heFdlZWsgCisgICAgICAgICAgICAgICAgICArICIsbWluPSIgKyBqMSArICIsZmlyc3Q9IiArIGopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBOb3cgYWR2YW5jZSB0aGUgY2FsZW5kYXIgb25lIG1vcmUgZGF5LiBUaGlzIHNob3VsZAorICAgICAgICAgICAgICAgICAgICAvLyBwdXQgaXQgYXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhci4KKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICBpbnQgV09ZID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgaWYgKFdPWSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbihjYWwuZ2V0VGltZSgpICsgIixnb3Q9IiArIFdPWSAKKyAgICAgICAgICAgICAgICAgICsgIixleHBlY3RlZD0xLG1pbj0iICsgajEgKyAiLGZpcnN0IiArIGopOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlZFRaKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZpZWxkRGlmZmVyZW5jZSgpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKNDM4KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGludCBEQVRBW10gPSB7CisgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5KQU5VQVJZLCAyMCwgICAyMDEwLCBDYWxlbmRhci5KVU5FLCAxNSwKKyAgICAgICAgICAgIDIwMTAsIENhbGVuZGFyLkpVTkUsIDE1LCAgICAgIDIwMDAsIENhbGVuZGFyLkpBTlVBUlksIDIwLAorICAgICAgICAgICAgMTk2NCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA3LCAgMTk5OSwgQ2FsZW5kYXIuSlVORSwgNCwKKyAgICAgICAgICAgIDE5OTksIENhbGVuZGFyLkpVTkUsIDQsICAgICAgIDE5NjQsIENhbGVuZGFyLlNFUFRFTUJFUiwgNywKKyAgICAgICAgfTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz02KSB7CisgICAgICAgICAgICBpbnQgeTEgPSBEQVRBW2ldOworICAgICAgICAgICAgaW50IG0xID0gREFUQVtpKzFdOworICAgICAgICAgICAgaW50IGQxID0gREFUQVtpKzJdOworICAgICAgICAgICAgaW50IHkyID0gREFUQVtpKzNdOworICAgICAgICAgICAgaW50IG0yID0gREFUQVtpKzRdOworICAgICAgICAgICAgaW50IGQyID0gREFUQVtpKzVdOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeTEsIG0xLCBkMSk7CisgICAgICAgICAgICBEYXRlIGRhdGUxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeTIsIG0yLCBkMik7CisgICAgICAgICAgICBEYXRlIGRhdGUyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAgICAgICAgaW50IGR5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpbnQgZG0gPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBpbnQgZGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5EQVRFKTsKKworICAgICAgICAgICAgbG9nbG4oIiIgKyBkYXRlMiArICIgLSAiICsgZGF0ZTEgKyAiID0gIiArCisgICAgICAgICAgICAgICAgICBkeSArICJ5ICIgKyBkbSArICJtICIgKyBkZCArICJkIik7CisKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUxKTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgZHkpOworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgZG0pOworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCBkZCk7CisgICAgICAgICAgICBEYXRlIGRhdGUyMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoIWRhdGUyLmVxdWFscyhkYXRlMjIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkYXRlMSArICIgKyAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkeSArICJ5ICIgKyBkbSArICJtICIgKyBkZCArICJkID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgZGF0ZTIyICsgIiwgZXhwICIgKyBkYXRlMik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGRhdGUxICsgIiArICIgKworICAgICAgICAgICAgICAgICAgICAgIGR5ICsgInkgIiArIGRtICsgIm0gIiArIGRkICsgImQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkYXRlMjIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGJlaGF2aW9yIG9mIERTVF9PRkZTRVQgZmllbGQuIElDVTRKIEppdHRlcmJ1ZyA5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKOSgpIHsKKyAgICAgICAgaW50IEhPVVJTID0gNjAqNjAqMTAwMDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgZmluYWwgaW50IEVORF9GSUVMRFMgPSAweDEyMzQ7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFdpdGggbm8gZXhwbGljaXQgWk9ORS9EU1QgZXhwZWN0IDEyOjAwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAwLCAwLCAvLyBleHBlY3RlZCBob3VyLCBtaW4KKworICAgICAgICAgICAgLy8gTm9ybWFsIFpPTkUvRFNUIGZvciBKdW5lIDEgUGFjaWZpYyBpcyA4OjAwLzE6MDAKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIC04KkhPVVJTLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgODowMC8wOjMwIGV4cGVjdCB0aW1lIG9mIDEyOjMwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIENhbGVuZGFyLlpPTkVfT0ZGU0VULCAtOCpIT1VSUywKKyAgICAgICAgICAgIENhbGVuZGFyLkRTVF9PRkZTRVQsIEhPVVJTLzIsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorCisgICAgICAgICAgICAvLyBXaXRoIFpPTkUvRFNUIG9mIDg6MDAvVU5TRVQgZXhwZWN0IHRpbWUgb2YgMTowMCBhbQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUsCisgICAgICAgICAgICBDYWxlbmRhci5aT05FX09GRlNFVCwgLTgqSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMSwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgVU5TRVQvMDozMCBleHBlY3QgNDozMCBwbSAoZGF5IGJlZm9yZSkKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMvMiwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAxNiwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisKKyAgICAgICAgICAgIC8vIFNldCBmaWVsZHMKKyAgICAgICAgICAgIHdoaWxlIChEQVRBW2ldICE9IEVORF9GSUVMRFMpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraTsgLy8gc2tpcCBvdmVyIEVORF9GSUVMRFMKKworICAgICAgICAgICAgLy8gR2V0IGhvdXIvbWludXRlCisgICAgICAgICAgICBpbnQgaCA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgaW50IG0gPSBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrCisgICAgICAgICAgICBpZiAoaCAhPSBEQVRBW2ldIHx8IG0gIT0gREFUQVtpKzFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGV4cGVjdGVkICIgKyBEQVRBW2ldICsgIjoiICsgREFUQVtpKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBnb3QgIiArIGggKyAiOiIgKyBtICsgIiBhZnRlcjoiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoREFUQVtzdGFydF0gIT0gRU5EX0ZJRUxEUykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigic2V0KCIgKyBGSUVMRF9OQU1FW0RBVEFbc3RhcnQrK11dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIERBVEFbc3RhcnQrK10gKyAiKTsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGkgKz0gMjsgLy8gc2tpcCBvdmVyIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0ZUZvcm1hdCBjbGFzcyBtaXN0YWtlcyBkYXRlIHN0eWxlIGFuZCB0aW1lIHN0eWxlIGFzIGZvbGxvd3M6IC0KKyAgICAgKiBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UgdGFrZXMgZGF0ZSBzdHlsZSBhcyB0aW1lIHN0eWxlLCBhbmQgdGltZQorICAgICAqIHN0eWxlIGFzIGRhdGUgc3R5bGUgLSBJZiBhIENhbGVuZGFyIGlzIHBhc3NlZCB0bworICAgICAqIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlLCBpdCByZXR1cm5zIHRpbWUgaW5zdGFuY2UgLSBJZiBhIENhbGVuZGFyIGlzCisgICAgICogcGFzc2VkIHRvIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlLCBpdCByZXR1cm5zIGRhdGUgaW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdEZhY3RvcnlKMjYoKSB7CisgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jID0gTG9jYWxlLlVTOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpKTsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5BUFJJTCwgNSwgMTcsIDQzLCA1Myk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI0LzUvMDEiLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIjU6NDMgUE0iLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIlRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDMgUE0iLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI0LzUvMDEiLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI1OjQzIFBNIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiVGh1cnNkYXksIEFwcmlsIDUsIDIwMDEgNTo0MyBQTSIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2MpLAorICAgICAgICAgICAgICAgICJjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNC81LzAxIDU6NDM6NTMgUE0gUFQiLAorCisgICAgICAgICAgICAgICAgY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIlRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDMgUE0iLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSAoRGF0ZUZvcm1hdCkgREFUQVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVzYyA9IChTdHJpbmcpIERBVEFbaSsxXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwID0gKFN0cmluZykgREFUQVtpKzJdOworICAgICAgICAgICAgICAgIFN0cmluZyBnb3QgPSBkZi5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKGdvdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBkZXNjICsgIiA9PiAiICsgZ290KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRlc2MgKyAiID0+ICIgKyBnb3QgKyAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHpvbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdHJhdGlvbigpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogU2V0IG5hbWVzID0gQ2FsZW5kYXIuZ2V0Q2FsZW5kYXJGYWN0b3J5TmFtZXMoKTsKKyAgICAgICAgICogCisgICAgICAgICAqIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOyBMb2NhbGUgbG9jID0KKyAgICAgICAgICogTG9jYWxlLmdldERlZmF1bHQoKTsgSXRlcmF0b3IgaXRlciA9IG5hbWVzLml0ZXJhdG9yKCk7IHdoaWxlCisgICAgICAgICAqIChpdGVyLmhhc05leHQoKSkgeyBTdHJpbmcgbmFtZSA9IChTdHJpbmcpaXRlci5uZXh0KCk7IGxvZ2xuKCJUZXN0aW5nCisgICAgICAgICAqIGZhY3Rvcnk6ICIgKyBuYW1lKTsKKyAgICAgICAgICogCisgICAgICAgICAqIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBsb2MsIG5hbWUpOyBsb2dsbigiQ2FsZW5kYXIKKyAgICAgICAgICogY2xhc3M6ICIgKyBjYWwuZ2V0Q2xhc3MoKSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBEYXRlRm9ybWF0IGZtdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsCisgICAgICAgICAqIERhdGVGb3JtYXQuTE9ORywgbG9jKTsKKyAgICAgICAgICogCisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7IH0KKyAgICAgICAgICogIC8vIHJlZ2lzdGVyIG5ldyBkZWZhdWx0IGZvciBvdXIgbG9jYWxlIGxvZ2xuKCJcblRlc3RpbmcKKyAgICAgICAgICogcmVnaXN0cmF0aW9uIik7IGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIlVTIik7IE9iamVjdCBrZXkgPQorICAgICAgICAgKiBDYWxlbmRhci5yZWdpc3RlcihKYXBhbmVzZUNhbGVuZGFyLmZhY3RvcnkoKSwgbG9jLCB0cnVlKTsKKyAgICAgICAgICogCisgICAgICAgICAqIGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIlRFU1QiKTsgQ2FsZW5kYXIgY2FsID0KKyAgICAgICAgICogQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsgbG9nbG4oIkNhbGVuZGFyIGNsYXNzOiAiICsKKyAgICAgICAgICogY2FsLmdldENsYXNzKCkpOyBEYXRlRm9ybWF0IGZtdCA9CisgICAgICAgICAqIGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgbG9jKTsKKyAgICAgICAgICogbG9nbG4oIkRhdGU6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICogIC8vIGZvcmNlIHRvIHVzZSBvdGhlciBkZWZhdWx0IGFueXdheSBsb2dsbigiXG5PdmVycmlkZQorICAgICAgICAgKiByZWdpc3RyYXRpb24iKTsgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHosIGxvYywgIkdyZWdvcmlhbiIpOyBmbXQgPQorICAgICAgICAgKiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAqICAvLyB1bnJlZ2lzdGVyIGRlZmF1bHQgbG9nbG4oIlxuVW5yZWdpc3RyYXRpb24iKTsgbG9nbG4oIlVucmVnaXN0ZXIKKyAgICAgICAgICogcmV0dXJuZWQ6ICIgKyBDYWxlbmRhci51bnJlZ2lzdGVyKGtleSkpOyBjYWwgPQorICAgICAgICAgKiBDYWxlbmRhci5nZXRJbnN0YW5jZSh0eiwgbG9jLCAiR3JlZ29yaWFuIik7IGZtdCA9CisgICAgICAgICAqIGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgbG9jKTsKKyAgICAgICAgICogbG9nbG4oIkRhdGU6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICovCisgICAgfQorCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzAzODU5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclRlc3QuamF2YQpAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCisvKioKKyAqIEEgYmFzZSBjbGFzcyBmb3IgY2xhc3NlcyB0aGF0IHRlc3QgaW5kaXZpZHVhbCBDYWxlbmRhciBzdWJjbGFzc2VzLgorICogRGVmaW5lcyB2YXJpb3VzIHVzZWZ1bCB1dGlsaXR5IG1ldGhvZHMgYW5kIGNvbnN0YW50cworICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIC8vIENvbnN0YW50cyBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMsIHNvbGVseSB0byBzYXZlIHR5cGluZworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNVTiA9IENhbGVuZGFyLlNVTkRBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT04gPSBDYWxlbmRhci5NT05EQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVFVFID0gQ2FsZW5kYXIuVFVFU0RBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUQgPSBDYWxlbmRhci5XRURORVNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVID0gQ2FsZW5kYXIuVEhVUlNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJID0gQ2FsZW5kYXIuRlJJREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNBVCA9IENhbGVuZGFyLlNBVFVSREFZOworCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBICAgICA9IENhbGVuZGFyLkVSQTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSICAgID0gQ2FsZW5kYXIuWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USCAgID0gQ2FsZW5kYXIuTU9OVEg7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSAgICA9IENhbGVuZGFyLkRBVEU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUiAgICA9IENhbGVuZGFyLkhPVVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFICA9IENhbGVuZGFyLk1JTlVURTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkQgID0gQ2FsZW5kYXIuU0VDT05EOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERPWSAgICAgPSBDYWxlbmRhci5EQVlfT0ZfWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXT1kgICAgID0gQ2FsZW5kYXIuV0VFS19PRl9ZRUFSOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdPTSAgICAgPSBDYWxlbmRhci5XRUVLX09GX01PTlRIOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERPVyAgICAgPSBDYWxlbmRhci5EQVlfT0ZfV0VFSzsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1dNICAgID0gQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEg7CisgICAgCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTaW1wbGVUaW1lWm9uZSBVVEMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgICAgICAiSVNfTEVBUF9NT05USCIgLy8gKENoaW5lc2VDYWxlbmRhciBvbmx5KQorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBmaWVsZE5hbWUoaW50IGYpIHsKKyAgICAgICAgcmV0dXJuIChmPj0wICYmIGY8RklFTERfTkFNRS5sZW5ndGgpID8KKyAgICAgICAgICAgIEZJRUxEX05BTUVbZl0gOiAoIjxGaWVsZCAiICsgZiArICI+Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCBhIGxpc3Qgb2YgY2FsZW5kYXIgPGNvZGU+VGVzdENhc2U8L2NvZGU+IG9iamVjdHMgYW5kCisgICAgICogbWFrZXMgc3VyZSB0aGF0IHRoZSB0aW1lLXRvLWZpZWxkcyBhbmQgZmllbGRzLXRvLXRpbWUgY2FsY3VsYXRpb25zIHdvcmsKKyAgICAgKiBjb3JyZW5jdGx5IGZvciB0aGUgdmFsdWVzIGluIGVhY2ggdGVzdCBjYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvVGVzdENhc2VzKFRlc3RDYXNlW10gY2FzZXMsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShVVEMpOworICAgICAgICAKKyAgICAgICAgLy8gR2V0IGEgZm9ybWF0IHRvIHVzZSBmb3IgcHJpbnRpbmcgZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIHN5c3RlbSB3ZSdyZSB0ZXN0aW5nCisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5TSE9SVCwgLTEsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gKGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhcikgPworICAgICAgICAgICAgIkUgTU1sL2RkL3kgRyBISDptbTpzcy5TIHoiIDoKKyAgICAgICAgICAgICJFLCBNTS9kZC95eXl5IEcgSEg6bW06c3MuUyB6IjsKKyAgICAKKyAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworCisgICAgICAgIC8vIFRoaXMgZm9ybWF0IGlzIHVzZWQgZm9yIHByaW50aW5nIEdyZWdvcmlhbiBkYXRlcy4KKyAgICAgICAgRGF0ZUZvcm1hdCBncmVnRm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisgICAgICAgIGdyZWdGb3JtYXQuc2V0VGltZVpvbmUoVVRDKTsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBwdXJlR3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihVVEMpOworICAgICAgICBwdXJlR3JlZy5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBwdXJlR3JlZ0ZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIE0vZC95eXl5IEciKTsKKyAgICAgICAgcHVyZUdyZWdGbXQuc2V0Q2FsZW5kYXIocHVyZUdyZWcpOworICAgICAgICAKKyAgICAgICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCB0aGUgdGVzdCBjYXNlcyBhbmQgc2VlIHdoYXQgaGFwcGVucworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhc2VzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiXG50ZXN0IGNhc2U6ICIgKyBpKTsKKyAgICAgICAgICAgIFRlc3RDYXNlIHRlc3QgPSBjYXNlc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEZpcnN0IHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1pbGxpcyAtPiBmaWVsZHMgY2FsY3VsYXRpb24gd29ya3MKKyAgICAgICAgICAgIC8vIHRlc3QuYXBwbHlUaW1lIHdpbGwgY2FsbCBzZXRUaW1lKCkgb24gdGhlIGNhbGVuZGFyIG9iamVjdCwgYW5kCisgICAgICAgICAgICAvLyB0ZXN0LmZpZWxkc0VxdWFsIHdpbGwgcmV0cmlldmUgYWxsIG9mIHRoZSBmaWVsZCB2YWx1ZXMgYW5kIG1ha2Ugc3VyZQorICAgICAgICAgICAgLy8gdGhhdCB0aGV5J3JlIHRoZSBzYW1lIGFzIHRoZSBvbmVzIGluIHRoZSB0ZXN0Y2FzZQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIHRlc3QuYXBwbHlUaW1lKGNhbCk7CisgICAgICAgICAgICBpZiAoIXRlc3QuZmllbGRzRXF1YWwoY2FsLCB0aGlzKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAobWlsbGlzPT5maWVsZHMpICIgKworICAgICAgICAgICAgICAgICAgICAgIGdyZWdGb3JtYXQuZm9ybWF0KHRlc3QuZ2V0VGltZSgpKSArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHRlc3QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gSWYgdGhhdCB3YXMgT0ssIGNoZWNrIHRoZSBmaWVsZHMgLT4gbWlsbGlzIGNhbGN1bGF0aW9uCisgICAgICAgICAgICAvLyB0ZXN0LmFwcGx5RmllbGRzIHdpbGwgc2V0IGFsbCBvZiB0aGUgY2FsZW5kYXIncyBmaWVsZHMgdG8gCisgICAgICAgICAgICAvLyBtYXRjaCB0aG9zZSBpbiB0aGUgdGVzdCBjYXNlLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgdGVzdC5hcHBseUZpZWxkcyhjYWwpOworICAgICAgICAgICAgaWYgKCF0ZXN0LmVxdWFscyhjYWwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IChmaWVsZHM9Pm1pbGxpcykgIiArIHRlc3QgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHB1cmVHcmVnRm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHB1cmVHcmVnRm10LmZvcm1hdCh0ZXN0LmdldFRpbWUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgYm9vbGVhbiBST0xMID0gdHJ1ZTsKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGJvb2xlYW4gQUREID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0ZXN0IGNhc2VzIGZvciA8Y29kZT5hZGQ8L2NvZGU+IGFuZCA8Y29kZT5yb2xsPC9jb2RlPiBtZXRob2RzLgorICAgICAqIEVhY2ggdGVzdCBjYXNlIGlzIGFuIGFycmF5IG9mIGludGVnZXJzLCBhcyBmb2xsb3dzOgorICAgICAqIDx1bD4KKyAgICAgKiAgPGxpPjA6IGlucHV0IHllYXIKKyAgICAgKiAgPGxpPjE6ICAgICAgIG1vbnRoICAoemVyby1iYXNlZCkKKyAgICAgKiAgPGxpPjI6ICAgICAgIGRheQorICAgICAqICA8bGk+MzogZmllbGQgdG8gcm9sbCBvciBhZGQgdG8KKyAgICAgKiAgPGxpPjQ6IGFtb3VudCB0byByb2xsIG9yIGFkZAorICAgICAqICA8bGk+NTogcmVzdWx0IHllYXIKKyAgICAgKiAgPGxpPjY6ICAgICAgICBtb250aCAoemVyby1iYXNlZCkKKyAgICAgKiAgPGxpPjc6ICAgICAgICBkYXkKKyAgICAgKiA8L3VsPgorICAgICAqIEZvciBleGFtcGxlOgorICAgICAqIDxwcmU+CisgICAgICogICAvLyAgICAgICBpbnB1dCAgICAgICAgICAgICAgICBhZGQgYnkgICAgICAgICAgb3V0cHV0CisgICAgICogICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAgKiAgIHsgICA1NzU5LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgS0lTTEVWLCAgICAyIH0sCisgICAgICogPC9wcmU+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcm9sbCAgPGNvZGU+dHJ1ZTwvY29kZT4gb3IgPGNvZGU+Uk9MTDwvY29kZT4gdG8gdGVzdCB0aGUgPGNvZGU+cm9sbDwvY29kZT4gbWV0aG9kOworICAgICAqICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gb3IgPGNvZGU+QUREPC9jb2RlPiB0byB0ZXN0IHRoZSA8Y29kZT5hZGQ8L2NvZGUgbWV0aG9kCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9Sb2xsQWRkKGJvb2xlYW4gcm9sbCwgQ2FsZW5kYXIgY2FsLCBpbnRbXVtdIHRlc3RzKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSByb2xsID8gInJvbGxpbmciIDogImFkZGluZyI7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpbnRbXSB0ZXN0ID0gdGVzdHNbaV07CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgaWYgKGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhcikgeworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgdGVzdFswXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdGVzdFsxXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIHRlc3RbMl0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KHRlc3RbMF0sIHRlc3RbMV0sIHRlc3RbMl0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG91YmxlIGRheTAgPSBnZXRKdWxpYW5EYXkoY2FsKTsKKyAgICAgICAgICAgIGlmIChyb2xsKSB7CisgICAgICAgICAgICAgICAgY2FsLnJvbGwodGVzdFszXSwgdGVzdFs0XSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhbC5hZGQodGVzdFszXSwgdGVzdFs0XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoY2FsIGluc3RhbmNlb2YgQ2hpbmVzZUNhbGVuZGFyID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSIDogWUVBUik7CisgICAgICAgICAgICBpZiAoeSAhPSB0ZXN0WzVdIHx8IGNhbC5nZXQoTU9OVEgpICE9IHRlc3RbNl0KKyAgICAgICAgICAgICAgICAgICAgfHwgY2FsLmdldChEQVRFKSAhPSB0ZXN0WzddKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbmFtZSArICIgIisgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXSwgdGVzdFsyXSkKKyAgICAgICAgICAgICAgICAgICAgKyAiICgiICsgZGF5MCArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgIiArIEZJRUxEX05BTUVbdGVzdFszXV0gKyAiIGJ5ICIgKyB0ZXN0WzRdCisgICAgICAgICAgICAgICAgICAgICsgIjogZXhwZWN0ZWQgIiArIHltZFRvU3RyaW5nKHRlc3RbNV0sIHRlc3RbNl0sIHRlc3RbN10pCisgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyB5bWRUb1N0cmluZyhjYWwpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBuYW1lICsgIiAiKyB5bWRUb1N0cmluZyh0ZXN0WzBdLCB0ZXN0WzFdLCB0ZXN0WzJdKQorICAgICAgICAgICAgICAgICAgICArICIgKCIgKyBkYXkwICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiAiICsgRklFTERfTkFNRVt0ZXN0WzNdXSArICIgYnkgIiArIHRlc3RbNF0KKyAgICAgICAgICAgICAgICAgICAgKyAiOiBnb3QgIiArIHltZFRvU3RyaW5nKGNhbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZnVuY3Rpb25zIGdldFh4eE1pbmltdW0oKSBhbmQgZ2V0WHh4TWF4aW11bSgpIGJ5IG1hcmNoaW5nIGEKKyAgICAgKiB0ZXN0IGNhbGVuZGFyICdjYWwnIHRocm91Z2ggJ251bWJlck9mRGF5cycgc2VxdWVudGlhbCBkYXlzIHN0YXJ0aW5nCisgICAgICogd2l0aCAnc3RhcnREYXRlJy4gIEZvciBlYWNoIGRhdGUsIHJlYWQgYSBmaWVsZCB2YWx1ZSBhbG9uZyB3aXRoIGl0cworICAgICAqIHJlcG9ydGVkIGFjdHVhbCBtaW5pbXVtIGFuZCBhY3R1YWwgbWF4aW11bS4gIFRoZXNlIHZhbHVlcyBhcmUKKyAgICAgKiBjaGVja2VkIGFnYWluc3Qgb25lIGFub3RoZXIgYXMgd2VsbCBhcyBhZ2FpbnN0IGdldE1pbmltdW0oKSwKKyAgICAgKiBnZXRHcmVhdGVzdE1pbmltdW0oKSwgZ2V0TGVhc3RNYXhpbXVtKCksIGFuZCBnZXRNYXhpbXVtKCkuICBXZQorICAgICAqIGV4cGVjdCB0byBzZWU6CisgICAgICoKKyAgICAgKiAxLiBtaW5pbXVtIDw9IGFjdHVhbE1pbmltdW0gPD0gZ3JlYXRlc3RNaW5pbXVtIDw9CisgICAgICogICAgbGVhc3RNYXhpbXVtIDw9IGFjdHVhbE1heGltdW0gPD0gbWF4aW11bQorICAgICAqCisgICAgICogMi4gYWN0dWFsTWluaW11bSA8PSB2YWx1ZSA8PSBhY3R1YWxNYXhpbXVtCisgICAgICoKKyAgICAgKiBOb3RlOiBJbiBhZGRpdGlvbiB0byBvdXRyaWdodCBmYWlsdXJlcywgdGhpcyB0ZXN0IHJlcG9ydHMgc29tZQorICAgICAqIHJlc3VsdHMgYXMgd2FybmluZ3MuICBUaGVzZSBhcmUgbm90IGdlbmVyYWxseSBvZiBjb25jZXJuLCBidXQgdGhleQorICAgICAqIHNob3VsZCBiZSBldmFsdWF0ZWQgYnkgYSBodW1hbi4gIFRvIHNlZSB0aGVzZSwgcnVuIHRoaXMgdGVzdCBpbgorICAgICAqIHZlcmJvc2UgbW9kZS4KKyAgICAgKiBAcGFyYW0gY2FsIHRoZSBjYWxlbmRhciB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAcGFyYW0gZmllbGRzVG9UZXN0IGFuIGFycmF5IG9mIGZpZWxkIHZhbHVlcyB0byBiZSB0ZXN0ZWQsIGUuZy4sIG5ldworICAgICAqIGludFtdIHsgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkRBWV9PRl9NT05USCB9LiAgSXQgb25seSBtYWtlcworICAgICAqIHNlbnNlIHRvIHRlc3QgdGhlIGRheSBmaWVsZHM7IHRoZSB0aW1lIGZpZWxkcyBhcmUgbm90IHRlc3RlZCBieSB0aGlzCisgICAgICogbWV0aG9kLiAgSWYgbnVsbCwgdGhlbiB0ZXN0IGFsbCBzdGFuZGFyZCBmaWVsZHMuCisgICAgICogQHBhcmFtIHN0YXJ0RGF0ZSB0aGUgZmlyc3QgZGF0ZSB0byB0ZXN0CisgICAgICogQHBhcmFtIHRlc3REdXJhdGlvbiBpZiBwb3NpdGl2ZSwgdGhlIG51bWJlciBvZiBkYXlzIHRvIGJlIHRlc3RlZC4KKyAgICAgKiBJZiBuZWdhdGl2ZSwgdGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHJ1biB0aGUgdGVzdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0xpbWl0c1Rlc3QoQ2FsZW5kYXIgY2FsLCBpbnRbXSBmaWVsZHNUb1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgc3RhcnREYXRlLCBpbnQgdGVzdER1cmF0aW9uKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ3JlZy5zZXRUaW1lKHN0YXJ0RGF0ZSk7CisgICAgICAgIGxvZ2xuKCJTdGFydDogIiArIHN0YXJ0RGF0ZSk7CisKKyAgICAgICAgaWYgKGZpZWxkc1RvVGVzdCA9PSBudWxsKSB7CisgICAgICAgICAgICBmaWVsZHNUb1Rlc3QgPSBuZXcgaW50W10geworICAgICAgICAgICAgICAgIENhbGVuZGFyLkVSQSwgQ2FsZW5kYXIuWUVBUiwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBDYWxlbmRhci5XRUVLX09GX01PTlRILAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgQ2FsZW5kYXIuREFZX09GX1lFQVIsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIENhbGVuZGFyLllFQVJfV09ZLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkVYVEVOREVEX1lFQVIKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICAvLyBLZWVwIGEgcmVjb3JkIG9mIG1pbmltYSBhbmQgbWF4aW1hIHRoYXQgd2UgYWN0dWFsbHkgc2VlLgorICAgICAgICAvLyBUaGVzZSBhcmUga2VwdCBpbiBhbiBhcnJheSBvZiBhcnJheXMgb2YgaGFzaGVzLgorICAgICAgICBIYXNodGFibGVbXVtdIGxpbWl0cyA9IG5ldyBIYXNodGFibGVbZmllbGRzVG9UZXN0Lmxlbmd0aF1bMl07CisgICAgICAgIE9iamVjdCBudWIgPSBuZXcgT2JqZWN0KCk7IC8vIE1lYW5pbmdsZXNzIHBsYWNlaG9sZGVyCisKKyAgICAgICAgLy8gVGhpcyB0ZXN0IGNhbiBydW4gZm9yIGEgbG9uZyB0aW1lOyBzaG93IHByb2dyZXNzLgorICAgICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBsb25nIG1hcmsgPSBtaWxsaXMgKyA1MDAwOyAvLyA1IHNlYworICAgICAgICBtaWxsaXMgLT0gdGVzdER1cmF0aW9uICogMTAwMDsgLy8gc3RvcCB0aW1lIGlmIHRlc3REdXJhdGlvbjwwCisKKyAgICAgICAgZm9yIChpbnQgaT0wOworICAgICAgICAgICAgIHRlc3REdXJhdGlvbj4wID8gaTx0ZXN0RHVyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpPG1pbGxpczsKKyAgICAgICAgICAgICArK2kpIHsKKyAgICAgICAgICAgIGlmIChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSA+PSBtYXJrKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIigiICsgaSArICIgZGF5cykiKTsKKyAgICAgICAgICAgICAgICBtYXJrICs9IDUwMDA7IC8vIDUgc2VjCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKGdyZWcuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGZpZWxkc1RvVGVzdC5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGludCBmID0gZmllbGRzVG9UZXN0W2pdOworICAgICAgICAgICAgICAgIGludCB2ID0gY2FsLmdldChmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWluQWN0dWFsID0gY2FsLmdldEFjdHVhbE1pbmltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1heEFjdHVhbCA9IGNhbC5nZXRBY3R1YWxNYXhpbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtaW5Mb3cgPSBjYWwuZ2V0TWluaW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWluSGlnaCA9IGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1heExvdyA9IGNhbC5nZXRMZWFzdE1heGltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1heEhpZ2ggPSBjYWwuZ2V0TWF4aW11bShmKTsKKworICAgICAgICAgICAgICAgIC8vIEZldGNoIHRoZSBoYXNoIGZvciB0aGlzIGZpZWxkIGFuZCBrZWVwIHRyYWNrIG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIG1pbmltYSBhbmQgbWF4aW1hLgorICAgICAgICAgICAgICAgIEhhc2h0YWJsZVtdIGggPSBsaW1pdHNbal07CisgICAgICAgICAgICAgICAgaWYgKGhbMF0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBoWzBdID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgICAgICAgICBoWzFdID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBoWzBdLnB1dChuZXcgSW50ZWdlcihtaW5BY3R1YWwpLCBudWIpOworICAgICAgICAgICAgICAgIGhbMV0ucHV0KG5ldyBJbnRlZ2VyKG1heEFjdHVhbCksIG51Yik7CisKKyAgICAgICAgICAgICAgICBpZiAobWluQWN0dWFsIDwgbWluTG93IHx8IG1pbkFjdHVhbCA+IG1pbkhpZ2gpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyB5bWRUb1N0cmluZyhjYWwpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBSYW5nZSBmb3IgbWluIG9mICIgKyBGSUVMRF9OQU1FW2ZdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIj0iICsgbWluTG93ICsgIi4uIiArIG1pbkhpZ2ggKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBhY3R1YWxfbWluPSIgKyBtaW5BY3R1YWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobWF4QWN0dWFsIDwgbWF4TG93IHx8IG1heEFjdHVhbCA+IG1heEhpZ2gpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyB5bWRUb1N0cmluZyhjYWwpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBSYW5nZSBmb3IgbWF4IG9mICIgKyBGSUVMRF9OQU1FW2ZdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIj0iICsgbWF4TG93ICsgIi4uIiArIG1heEhpZ2ggKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBhY3R1YWxfbWF4PSIgKyBtYXhBY3R1YWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodiA8IG1pbkFjdHVhbCB8fCB2ID4gbWF4QWN0dWFsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgeW1kVG9TdHJpbmcoY2FsKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIEZJRUxEX05BTUVbZl0gKyAiPSIgKyB2ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsIHJhbmdlPSIgKyBtaW5BY3R1YWwgKyAiLi4iICsgbWF4QWN0dWFsICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWxsb3dlZD0oIiArIG1pbkxvdyArICIuLiIgKyBtaW5IaWdoICsgIikuLigiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TG93ICsgIi4uIiArIG1heEhpZ2ggKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdyZWcuYWRkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGFjdHVhbCBtYXhpbWEgYW5kIG1pbmltYSBzZWVuIGFnYWluc3QgcmFuZ2VzIHJldHVybmVkCisgICAgICAgIC8vIGJ5IEFQSS4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPGZpZWxkc1RvVGVzdC5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgaW50IGYgPSBmaWVsZHNUb1Rlc3Rbal07CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChGSUVMRF9OQU1FW2ZdKTsKKyAgICAgICAgICAgIEhhc2h0YWJsZVtdIGggPSBsaW1pdHNbal07CisgICAgICAgICAgICBib29sZWFuIGZ1bGxSYW5nZVNlZW4gPSB0cnVlOworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPDI7ICsraykgeworICAgICAgICAgICAgICAgIGludCByYW5nZUxvdyA9IChrPT0wKSA/CisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRNaW5pbXVtKGYpIDogY2FsLmdldExlYXN0TWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgcmFuZ2VIaWdoID0gKGs9PTApID8KKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldEdyZWF0ZXN0TWluaW11bShmKSA6IGNhbC5nZXRNYXhpbXVtKGYpOworICAgICAgICAgICAgICAgIC8vIElmIGVpdGhlciB0aGUgdG9wIG9mIHRoZSByYW5nZSBvciB0aGUgYm90dG9tIHdhcyBuZXZlcgorICAgICAgICAgICAgICAgIC8vIHNlZW4sIHRoZW4gdGhlcmUgbWF5IGJlIGEgcHJvYmxlbS4KKyAgICAgICAgICAgICAgICBpZiAoaFtrXS5nZXQobmV3IEludGVnZXIocmFuZ2VMb3cpKSA9PSBudWxsIHx8CisgICAgICAgICAgICAgICAgICAgIGhba10uZ2V0KG5ldyBJbnRlZ2VyKHJhbmdlSGlnaCkpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZnVsbFJhbmdlU2VlbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGs9PTAgPyAiIG1pbmltYSBzZWVuPSgiIDogIjsgbWF4aW1hIHNlZW49KCIpOworICAgICAgICAgICAgICAgIGZvciAoRW51bWVyYXRpb24gZT1oW2tdLmtleXMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB2ID0gKChJbnRlZ2VyKSBlLm5leHRFbGVtZW50KCkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiICsgdik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIikgcmFuZ2U9IiArIHJhbmdlTG93ICsgIi4uIiArIHJhbmdlSGlnaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZnVsbFJhbmdlU2VlbikgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBtYXkgb3IgbWF5IG5vdCBiZSBhbiBlcnJvciAtLSBpZiB0aGUgcmFuZ2Ugb2YgZGF0ZXMKKyAgICAgICAgICAgICAgICAvLyB3ZSBzY2FuIG92ZXIgZG9lc24ndCBoYXBwZW4gdG8gY29udGFpbiBhIG1pbmltdW0gb3IKKyAgICAgICAgICAgICAgICAvLyBtYXhpbXVtLCBpdCBkb2Vzbid0IG1lYW4gc29tZSBvdGhlciByYW5nZSB3b24ndC4KKyAgICAgICAgICAgICAgICBsb2dsbigiV2FybmluZzogIiArIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJFbmQ6ICIgKyBncmVnLmdldFRpbWUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB5ZWFyLG1vbnRoLGRheSB2YWx1ZXMgdG8gdGhlIGZvcm0gInllYXIvbW9udGgvZGF5Ii4KKyAgICAgKiBPbiBpbnB1dCB0aGUgbW9udGggdmFsdWUgaXMgemVyby1iYXNlZCwgYnV0IGluIHRoZSByZXN1bHQgc3RyaW5nIGl0IGlzIG9uZS1iYXNlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyB5bWRUb1N0cmluZyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KSB7CisgICAgICAgIHJldHVybiAiIiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB5ZWFyLG1vbnRoLGRheSB2YWx1ZXMgdG8gdGhlIGZvcm0gInllYXIvbW9udGgvZGF5Ii4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyB5bWRUb1N0cmluZyhDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgZG91YmxlIGRheSA9IGdldEp1bGlhbkRheShjYWwpOworICAgICAgICBpZiAoY2FsIGluc3RhbmNlb2YgQ2hpbmVzZUNhbGVuZGFyKSB7CisgICAgICAgICAgICByZXR1cm4gIiIgKyBjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKworICAgICAgICAgICAgICAgIChjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKT09MT8iKGxlYXApIjoiIikgKyAiLyIgKworICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICgiICsgZGF5ICsgIikiOworICAgICAgICB9CisgICAgICAgIHJldHVybiB5bWRUb1N0cmluZyhjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpLCBjYWwuZ2V0KERBVEUpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIGRheSArICIpIjsKKyAgICB9CisKKyAgICBzdGF0aWMgZG91YmxlIGdldEp1bGlhbkRheShDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgcmV0dXJuIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAtIEpVTElBTl9FUE9DSCkgLyBEQVlfTVM7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBEQVlfTVMgPSAyNCo2MCo2MCoxMDAwLjA7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgSlVMSUFOX0VQT0NIID0gLTIxMDg2Njc2MDAwMDAwMEw7ICAgLy8gMS8xLzQ3MTMgQkMgMTI6MDAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NoaW5lc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdiNzY3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNjAyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBUZXN0IG9mIENoaW5lc2VDYWxlbmRhci4KKyAqCisgKiBMZWFwIG1vbnRocyBpbiB0aGlzIGNlbnR1cnk6CisgKiBXZWQgTWF5IDIzIDIwMDEgPSA0NjM4LTA0Ki0wMSwgWWVhciAxOCwgQ3ljbGUgNzgKKyAqIFN1biBNYXIgMjEgMjAwNCA9IDQ2NDEtMDIqLTAxLCBZZWFyIDIxLCBDeWNsZSA3OAorICogVGh1IEF1ZyAyNCAyMDA2ID0gNDY0My0wNyotMDEsIFllYXIgMjMsIEN5Y2xlIDc4CisgKiBUdWUgSnVuIDIzIDIwMDkgPSA0NjQ2LTA1Ki0wMSwgWWVhciAyNiwgQ3ljbGUgNzgKKyAqIE1vbiBNYXkgMjEgMjAxMiA9IDQ2NDktMDQqLTAxLCBZZWFyIDI5LCBDeWNsZSA3OAorICogRnJpIE9jdCAyNCAyMDE0ID0gNDY1MS0wOSotMDEsIFllYXIgMzEsIEN5Y2xlIDc4CisgKiBTdW4gSnVsIDIzIDIwMTcgPSA0NjU0LTA2Ki0wMSwgWWVhciAzNCwgQ3ljbGUgNzgKKyAqIFNhdCBNYXkgMjMgMjAyMCA9IDQ2NTctMDQqLTAxLCBZZWFyIDM3LCBDeWNsZSA3OAorICogV2VkIE1hciAyMiAyMDIzID0gNDY2MC0wMiotMDEsIFllYXIgNDAsIEN5Y2xlIDc4CisgKiBGcmkgSnVsIDI1IDIwMjUgPSA0NjYyLTA2Ki0wMSwgWWVhciA0MiwgQ3ljbGUgNzgKKyAqIEZyaSBKdW4gMjMgMjAyOCA9IDQ2NjUtMDUqLTAxLCBZZWFyIDQ1LCBDeWNsZSA3OAorICogVHVlIEFwciAyMiAyMDMxID0gNDY2OC0wMyotMDEsIFllYXIgNDgsIEN5Y2xlIDc4CisgKiBUaHUgRGVjIDIyIDIwMzMgPSA0NjcwLTExKi0wMSwgWWVhciA1MCwgQ3ljbGUgNzgKKyAqIFdlZCBKdWwgMjMgMjAzNiA9IDQ2NzMtMDYqLTAxLCBZZWFyIDUzLCBDeWNsZSA3OAorICogV2VkIEp1biAyMiAyMDM5ID0gNDY3Ni0wNSotMDEsIFllYXIgNTYsIEN5Y2xlIDc4CisgKiBTYXQgTWFyIDIyIDIwNDIgPSA0Njc5LTAyKi0wMSwgWWVhciA1OSwgQ3ljbGUgNzgKKyAqIFR1ZSBBdWcgMjMgMjA0NCA9IDQ2ODEtMDcqLTAxLCBZZWFyIDAxLCBDeWNsZSA3OQorICogU3VuIEp1biAyMyAyMDQ3ID0gNDY4NC0wNSotMDEsIFllYXIgMDQsIEN5Y2xlIDc5CisgKiBUaHUgQXByIDIxIDIwNTAgPSA0Njg3LTAzKi0wMSwgWWVhciAwNywgQ3ljbGUgNzkKKyAqIE1vbiBTZXAgMjMgMjA1MiA9IDQ2ODktMDgqLTAxLCBZZWFyIDA5LCBDeWNsZSA3OQorICogU2F0IEp1bCAyNCAyMDU1ID0gNDY5Mi0wNiotMDEsIFllYXIgMTIsIEN5Y2xlIDc5CisgKiBXZWQgTWF5IDIyIDIwNTggPSA0Njk1LTA0Ki0wMSwgWWVhciAxNSwgQ3ljbGUgNzkKKyAqIFdlZCBBcHIgMjAgMjA2MSA9IDQ2OTgtMDMqLTAxLCBZZWFyIDE4LCBDeWNsZSA3OQorICogRnJpIEF1ZyAyNCAyMDYzID0gNDcwMC0wNyotMDEsIFllYXIgMjAsIEN5Y2xlIDc5CisgKiBXZWQgSnVuIDIzIDIwNjYgPSA0NzAzLTA1Ki0wMSwgWWVhciAyMywgQ3ljbGUgNzkKKyAqIFR1ZSBNYXkgMjEgMjA2OSA9IDQ3MDYtMDQqLTAxLCBZZWFyIDI2LCBDeWNsZSA3OQorICogVGh1IFNlcCAyNCAyMDcxID0gNDcwOC0wOCotMDEsIFllYXIgMjgsIEN5Y2xlIDc5CisgKiBUdWUgSnVsIDI0IDIwNzQgPSA0NzExLTA2Ki0wMSwgWWVhciAzMSwgQ3ljbGUgNzkKKyAqIFNhdCBNYXkgMjIgMjA3NyA9IDQ3MTQtMDQqLTAxLCBZZWFyIDM0LCBDeWNsZSA3OQorICogU2F0IEFwciAyMCAyMDgwID0gNDcxNy0wMyotMDEsIFllYXIgMzcsIEN5Y2xlIDc5CisgKiBNb24gQXVnIDI0IDIwODIgPSA0NzE5LTA3Ki0wMSwgWWVhciAzOSwgQ3ljbGUgNzkKKyAqIEZyaSBKdW4gMjIgMjA4NSA9IDQ3MjItMDUqLTAxLCBZZWFyIDQyLCBDeWNsZSA3OQorICogRnJpIE1heSAyMSAyMDg4ID0gNDcyNS0wNCotMDEsIFllYXIgNDUsIEN5Y2xlIDc5CisgKiBTdW4gU2VwIDI0IDIwOTAgPSA0NzI3LTA4Ki0wMSwgWWVhciA0NywgQ3ljbGUgNzkKKyAqIFRodSBKdWwgMjMgMjA5MyA9IDQ3MzAtMDYqLTAxLCBZZWFyIDUwLCBDeWNsZSA3OQorICogVHVlIE1heSAyMiAyMDk2ID0gNDczMy0wNCotMDEsIFllYXIgNTMsIEN5Y2xlIDc5CisgKiBTdW4gTWFyIDIyIDIwOTkgPSA0NzM2LTAyKi0wMSwgWWVhciA1NiwgQ3ljbGUgNzkKKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ2hpbmVzZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBiYXNpYyBtYXBwaW5nIHRvIGFuZCBmcm9tIEdyZWdvcmlhbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWFwcGluZygpIHsKKworICAgICAgICBmaW5hbCBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgLy8gKE5vdGU6IG1vbnRocyBhcmUgMS1iYXNlZCkKKyAgICAgICAgICAgIC8vIEdyZWdvcmlhbiAgICBDaGluZXNlCisgICAgICAgICAgICAxOTY0LCAgOSwgIDQsICAgNDYwMSwgIDcsMCwgMjgsCisgICAgICAgICAgICAxOTY0LCAgOSwgIDUsICAgNDYwMSwgIDcsMCwgMjksCisgICAgICAgICAgICAxOTY0LCAgOSwgIDYsICAgNDYwMSwgIDgsMCwgIDEsCisgICAgICAgICAgICAxOTY0LCAgOSwgIDcsICAgNDYwMSwgIDgsMCwgIDIsCisgICAgICAgICAgICAxOTYxLCAxMiwgMjUsICAgNDU5OCwgMTEsMCwgMTgsCisgICAgICAgICAgICAxOTk5LCAgNiwgIDQsICAgNDYzNiwgIDQsMCwgMjEsCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDE5OTAsICA1LCAyMywgICA0NjI3LCAgNCwwLCAyOSwKKyAgICAgICAgICAgIDE5OTAsICA1LCAyNCwgICA0NjI3LCAgNSwwLCAgMSwKKyAgICAgICAgICAgIDE5OTAsICA2LCAyMiwgICA0NjI3LCAgNSwwLCAzMCwKKyAgICAgICAgICAgIDE5OTAsICA2LCAyMywgICA0NjI3LCAgNSwxLCAgMSwKKyAgICAgICAgICAgIDE5OTAsICA3LCAyMCwgICA0NjI3LCAgNSwxLCAyOCwKKyAgICAgICAgICAgIDE5OTAsICA3LCAyMSwgICA0NjI3LCAgNSwxLCAyOSwKKyAgICAgICAgICAgIDE5OTAsICA3LCAyMiwgICA0NjI3LCAgNiwwLCAgMSwKKyAgICAgICAgfTsKKworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGxvZ2xuKCJHcmVnb3JpYW4gLT4gQ2hpbmVzZSIpOworICAgICAgICAvL2phdmEudXRpbC5DYWxlbmRhciBncmVnbyA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBncmVnbyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGdyZWdvLmNsZWFyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBncmVnby5zZXQoREFUQVtpKytdLCBEQVRBW2krK10tMSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGdyZWdvLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOworICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpOworICAgICAgICAgICAgaW50IG0gPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxOyAvLyAwLWJhc2VkIC0+IDEtYmFzZWQKKyAgICAgICAgICAgIGludCBMID0gY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCk7CisgICAgICAgICAgICBpbnQgZCA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIGludCB5RSA9IERBVEFbaSsrXTsgLy8gRXhwZWN0ZWQgeSwgbSwgaXNMZWFwTW9udGgsIGQKKyAgICAgICAgICAgIGludCBtRSA9IERBVEFbaSsrXTsgLy8gMS1iYXNlZAorICAgICAgICAgICAgaW50IExFID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGRFID0gREFUQVtpKytdOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZGF0ZSArICIgLT4gIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHkgKyAiLyIgKyBtICsgKEw9PTE/IihsZWFwKSI6IiIpICsgIi8iICsgZCk7CisgICAgICAgICAgICBpZiAoeSA9PSB5RSAmJiBtID09IG1FICYmIEwgPT0gTEUgJiYgZCA9PSBkRSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBidWYudG9TdHJpbmcoKSArICIsIGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgIHlFICsgIi8iICsgbUUgKyAoTEU9PTE/IihsZWFwKSI6IiIpICsgIi8iICsgZEUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkNoaW5lc2UgLT4gR3JlZ29yaWFuIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBncmVnby5zZXQoREFUQVtpKytdLCBEQVRBW2krK10tMSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIERhdGUgZGV4cCA9IGdyZWdvLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGludCBjeWVhciA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBjbW9udGggPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgY2lzbGVhcG1vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGNkYXlvZm1vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIGN5ZWFyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIGNtb250aC0xKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIGNpc2xlYXBtb250aCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgY2RheW9mbW9udGgpOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGN5ZWFyICsgIi8iICsgY21vbnRoICsKKyAgICAgICAgICAgICAgICAgICAgICAgKGNpc2xlYXBtb250aD09MT8iKGxlYXApIjoiIikgKyAiLyIgKyBjZGF5b2Ztb250aCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgLT4gIiArIGRhdGUpOworICAgICAgICAgICAgaWYgKGRhdGUuZXF1YWxzKGRleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGJ1Zi50b1N0cmluZygpICsgIiwgZXhwZWN0ZWQgIiArIGRleHApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIG5vIEdyZWdvcmlhbiBkYXRlcyBtYXAgdG8gQ2hpbmVzZSAxLWJhc2VkIGRheSBvZgorICAgICAqIG1vbnRoIHplcm8uICBUaGlzIHdhcyBhIHByb2JsZW0gd2l0aCBzb21lIG9mIHRoZSBhc3Ryb25vbWljYWwKKyAgICAgKiBuZXcgbW9vbiBkZXRlcm1pbmF0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0WmVyb0RPTSgpIHsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTg5LCBDYWxlbmRhci5TRVBURU1CRVIsIDEpOworICAgICAgICBsb2dsbigiU3RhcnQ6ICIgKyBncmVnLmdldFRpbWUoKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwxMDAwOyArK2kpIHsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoZ3JlZy5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGdyZWcuZ2V0VGltZSgpICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArCisgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpPT0xPyIobGVhcCkiOiIiKSArCisgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdyZWcuYWRkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiRW5kOiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbWluaW11bSBhbmQgbWF4aW11bSBmdW5jdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExpbWl0cygpIHsKKyAgICAgICAgLy8gVGhlIG51bWJlciBvZiBkYXlzIGFuZCB0aGUgc3RhcnQgZGF0ZSBjYW4gYmUgYWRqdXN0ZWQKKyAgICAgICAgLy8gYXJiaXRyYXJpbHkgdG8gZWl0aGVyIHNwZWVkIHVwIHRoZSB0ZXN0IG9yIG1ha2UgaXQgbW9yZQorICAgICAgICAvLyB0aG9yb3VnaCwgYnV0IHRyeSB0byB0ZXN0IGF0IGxlYXN0IGEgZnVsbCB5ZWFyLCBwcmVmZXJhYmx5IGEKKyAgICAgICAgLy8gZnVsbCBub24tbGVhcCBhbmQgYSBmdWxsIGxlYXAgeWVhci4KKworICAgICAgICAvLyBGaW5hbCBwYXJhbWV0ZXIgaXMgZWl0aGVyIG51bWJlciBvZiBkYXlzLCBpZiA+IDAsIG9yIHRlc3QKKyAgICAgICAgLy8gZHVyYXRpb24gaW4gc2Vjb25kcywgaWYgPCAwLgorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODksIENhbGVuZGFyLk5PVkVNQkVSLCAxKTsKKyAgICAgICAgZG9MaW1pdHNUZXN0KG5ldyBDaGluZXNlQ2FsZW5kYXIoKSwgbnVsbCwgdGVtcGNhbC5nZXRUaW1lKCksIC0xMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIHRocm91Z2ggc2V2ZXJhbCBzdGFuZGFyZCB0ZXN0cyBmcm9tIERlcnNob3dpdHogJiBSZWluZ29sZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SnVsaWFuRGF5TWFwcGluZygpIHsKKworICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RzID0geworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEZyb20gRGVyc2hvd2l0eiAmIFJlaW5nb2xkLCAiQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIi4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAqIEZhaWxpbmcgZmllbGRzLT5taWxsaXMKKyAgICAgICAgICAgIC8vICoqIE1pbGxpcy0+ZmllbGRzIGdpdmVzIDAtYmFzZWQgbW9udGggLTEKKyAgICAgICAgICAgIC8vIFRoZXNlIGZhaWx1cmVzIHdlcmUgZml4ZWQgYnkgY2hhbmdpbmcgdGhlIHN0YXJ0IHNlYXJjaCBkYXRlCisgICAgICAgICAgICAvLyBmb3IgdGhlIHdpbnRlciBzb2xzdGljZSBmcm9tIERlYyAxNSB0byBEZWMgMS4KKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICBKdWxpYW4gRGF5ICAgRXJhICBZZWFyIE1vbnRoICBMZWFwICAgRE9NIFdrRGF5CisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE1MDcyMzEuNSwgICAzNSwgICAxMSwgICAgNiwgZmFsc2UsICAgMTIsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNjYwMDM3LjUsICAgNDIsICAgIDksICAgMTAsIGZhbHNlLCAgIDI3LCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTc0Njg5My41LCAgIDQ2LCAgICA3LCAgICA4LCBmYWxzZSwgICAgNCwgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE3NzA2NDEuNSwgICA0NywgICAxMiwgICAgOCwgZmFsc2UsICAgIDksICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxODkyNzMxLjUsICAgNTIsICAgNDYsICAgMTEsIGZhbHNlLCAgIDIwLCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTkzMTU3OS41LCAgIDU0LCAgIDMzLCAgICA0LCBmYWxzZSwgICAgNSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE5NzQ4NTEuNSwgICA1NiwgICAzMSwgICAxMCwgZmFsc2UsICAgMTUsICBTQVQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMDkxMTY0LjUsICAgNjEsICAgNTAsICAgIDMsIGZhbHNlLCAgICA3LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjEyMTUwOS41LCAgIDYzLCAgIDEzLCAgICA0LCBmYWxzZSwgICAyNCwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxNTU3NzkuNSwgICA2NCwgICA0NywgICAgMiwgZmFsc2UsICAgIDksICBGUkkpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTc0MDI5LjUsICAgNjUsICAgMzcsICAgIDIsIGZhbHNlLCAgICA5LCAgU0FUKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjE5MTU4NC41LCAgIDY2LCAgIDI1LCAgICAyLCBmYWxzZSwgICAyMywgIEZSSSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxOTUyNjEuNSwgICA2NiwgICAzNSwgICAgMywgZmFsc2UsICAgIDksICBTVU4pLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjIyOTI3NC41LCAgIDY4LCAgICA4LCAgICA1LCBmYWxzZSwgICAgMiwgIFNVTiksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjQ1NTgwLjUsICAgNjgsICAgNTMsICAgIDEsIGZhbHNlLCAgICA4LCAgV0VEKSwgLy8qKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjY2MTAwLjUsICAgNjksICAgNDksICAgIDMsIGZhbHNlLCAgICA0LCAgU0FUKSwgCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyODg1NDIuNSwgICA3MCwgICA1MCwgICAgOCwgZmFsc2UsICAgIDIsICBTQVQpLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI5MDkwMS41LCAgIDcwLCAgIDU3LCAgICAxLCBmYWxzZSwgICAyOSwgIFNBVCksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzIzMTQwLjUsICAgNzIsICAgMjUsICAgIDQsICB0cnVlLCAgIDIwLCAgV0VEKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzMzQ4NDguNSwgICA3MiwgICA1NywgICAgNiwgZmFsc2UsICAgIDUsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzQ4MDIwLjUsICAgNzMsICAgMzMsICAgIDYsIGZhbHNlLCAgICA2LCAgRlJJKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM2Njk3OC41LCAgIDc0LCAgIDI1LCAgICA1LCBmYWxzZSwgICAgNSwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzODU2NDguNSwgICA3NSwgICAxNiwgICAgNiwgZmFsc2UsICAgMTIsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzkyODI1LjUsICAgNzUsICAgMzYsICAgIDIsIGZhbHNlLCAgIDEzLCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQxNjIyMy41LCAgIDc2LCAgIDQwLCAgICAzLCBmYWxzZSwgICAyMiwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MjU4NDguNSwgICA3NywgICAgNiwgICAgNywgZmFsc2UsICAgMjEsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDMwMjY2LjUsICAgNzcsICAgMTgsICAgIDgsIGZhbHNlLCAgICA5LCAgTU9OKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQzMDgzMy41LCAgIDc3LCAgIDIwLCAgICAzLCBmYWxzZSwgICAxNSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MzEwMDQuNSwgICA3NywgICAyMCwgICAgOSwgZmFsc2UsICAgIDksICBUSFUpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDQ4Njk4LjUsICAgNzgsICAgIDksICAgIDIsIGZhbHNlLCAgIDE0LCAgVFVFKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ1MDEzOC41LCAgIDc4LCAgIDEzLCAgICAxLCBmYWxzZSwgICAgNywgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0NjU3MzcuNSwgICA3OCwgICA1NSwgICAxMCwgZmFsc2UsICAgMTQsICBXRUQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDg2MDc2LjUsICAgNzksICAgNTEsICAgIDYsIGZhbHNlLCAgICA3LCAgU1VOKSwKKworICAgICAgICAgICAgLy8gQWRkaXRpb25hbCB0ZXN0cyBub3QgZnJvbSBEJlIKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ2NzQ5Ni41LCAgIDc4LCAgIDYwLCAgICA4LCBmYWxzZSwgICAgMiwgIEZSSSksIC8vIHllYXIgNjAKKyAgICAgICAgfTsKKworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIGNhbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3JtYXR0aW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGb3JtYXQoKSB7CisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuREVGQVVMVCwgRGF0ZUZvcm1hdC5ERUZBVUxUKTsKKworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICBEYXRlW10gREFUQSA9IG5ldyBEYXRlWzJdOworICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5NQVksIDIyKTsKKyAgICAgICAgREFUQVswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5NQVksIDIzKTsKKyAgICAgICAgREFUQVsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBXZWQgTWF5IDIzIDIwMDEgPSBNb250aCA0KGxlYXApLCBEYXkgMSwgWWVhciAxOCwgQ3ljbGUgNzgKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZSA9IGZtdC5wYXJzZShzKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5lcXVhbHMoREFUQVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtpXSArICIgLT4gIiArIHMgKyAiIC0+ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiAtPiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHMgKyAiIC0+IHBhcnNlIGZhaWx1cmUgYXQgIiArIGUuZ2V0RXJyb3JPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgZXJybG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBJU19MRUFQX01PTlRIIHBhcnRpY2lwYXRlcyBpbiBmaWVsZCByZXNvbHV0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNvbHV0aW9uKCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5ERUZBVUxUKTsKKworICAgICAgICAvLyBNYXkgMjIgMjAwMSA9IHk0NjM4IG00IGQzMCBkb3kxMTkKKyAgICAgICAgLy8gTWF5IDIzIDIwMDEgPSB5NDYzOCBtNCogZDEgZG95MTIwCisKKyAgICAgICAgZmluYWwgaW50IFRIRV9ZRUFSID0gNDYzODsKKyAgICAgICAgZmluYWwgaW50IEVORCA9IC0xOworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBGb3JtYXQ6CisgICAgICAgICAgICAvLyAoZmllbGQsIHZhbHVlKSssIEVORCwgZXhwLm1vbnRoLCBleHAuaXNMZWFwTW9udGgsIGV4cC5ET00KKyAgICAgICAgICAgIC8vIE5vdGU6IGV4cC5tb250aCBpcyBPTkUtQkFTRUQKKworICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IERBWV9PRl9ZRUFSIG9ubHksIHRoYXQgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgMSwwLDEsIC8vIEV4cGVjdCAxLTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IE1PTlRIIG9ubHksIHRoYXQgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMSwgLy8gRXhwZWN0IDQqLTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IHRoZSBET1kgbGFzdCwgdGhhdCBzaG91bGQgdGFrZSBwcmVjZWRlbmNlCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgMSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDEyMSwKKyAgICAgICAgICAgIEVORCwKKyAgICAgICAgICAgIDQsMSwyLCAvLyBFeHBlY3QgNCotMgorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBJJ3ZlIGRpc2FibGVkIHRoaXMgdGVzdCBiZWNhdXNlIGl0IGRvZXNuJ3Qgd29yayB0aGlzIHdheSwKKyAgICAgICAgICAgIC8vIG5vdCBldmVuIHdpdGggYSBHcmVnb3JpYW5DYWxlbmRhciEgIE1PTlRIIGFsb25lIGlzbid0IGVub3VnaAorICAgICAgICAgICAgLy8gdG8gc3VwZXJzZWRlIERBWV9PRl9ZRUFSLiAgU29tZSBvdGhlciBtb250aC1yZWxhdGVkIGZpZWxkIGlzCisgICAgICAgICAgICAvLyBhbHNvIHJlcXVpcmVkLiAtIExpdSAxMS8yOC8wMAorICAgICAgICAgICAgLy8hIC8vIElmIHdlIHNldCBNT05USCBsYXN0LCB0aGF0IHNob3VsZCB0YWtlIHByZWNlZGVuY2UKKyAgICAgICAgICAgIC8vISBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMSwKKyAgICAgICAgICAgIC8vISBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDUsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIC8vISBDYWxlbmRhci5NT05USCwgMywKKyAgICAgICAgICAgIC8vISBFTkQsCisgICAgICAgICAgICAvLyEgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBJU19MRUFQX01PTlRIIGxhc3QsIHRoYXQgc2hvdWxkIHRha2UgcHJlY2VkZW5jZQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgNSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMSwgLy8gRXhwZWN0IDQqLTEKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIFRIRV9ZRUFSKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJFWFRFTkRFRF9ZRUFSPSIgKyBUSEVfWUVBUik7CisgICAgICAgICAgICB3aGlsZSAoREFUQVtpXSAhPSBFTkQpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIGZpZWxkTmFtZShEQVRBW2ktMl0pICsgIj0iICsgREFUQVtpLTFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraTsgLy8gU2tpcCBvdmVyIEVORCBtYXJrCisgICAgICAgICAgICBpbnQgZXhwTW9udGggPSBEQVRBW2krK10tMTsKKyAgICAgICAgICAgIGludCBleHBJc0xlYXBNb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBleHBET00gPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgIGludCBpc0xlYXBNb250aCA9IGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpOworICAgICAgICAgICAgaW50IGRvbSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIGlmIChleHBNb250aCA9PSBtb250aCAmJiBleHBJc0xlYXBNb250aCA9PSBpc0xlYXBNb250aCAmJgorICAgICAgICAgICAgICAgIGRvbSA9PSBleHBET00pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYgKyAiID0+ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgVEhFX1lFQVIpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIGV4cE1vbnRoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCBleHBJc0xlYXBNb250aCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGV4cERPTSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBidWYgKyAiID0+ICIgKyBzICsKKyAgICAgICAgICAgICAgICAgICAgICAiPSIgKyAobW9udGgrMSkgKyAiLCIgKyBpc0xlYXBNb250aCArICIsIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICI9IiArIChleHBNb250aCsxKSArICIsIiArIGV4cElzTGVhcE1vbnRoICsgIiwiICsgZXhwRE9NKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJlaGF2aW9yIG9mIGZpZWxkcyB0aGF0IGFyZSBvdXQgb2YgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE91dE9mUmFuZ2UoKSB7CisgICAgICAgIGludFtdIERBVEEgPSBuZXcgaW50W10geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgT3V0cHV0CisgICAgICAgICAgICA0NjM4LCAxMywgIDEsICAgNDYzOSwgIDEsICAxLAorICAgICAgICAgICAgNDYzOCwgMTgsICAxLCAgIDQ2MzksICA2LCAgMSwKKyAgICAgICAgICAgIDQ2MzksICAwLCAgMSwgICA0NjM4LCAxMiwgIDEsCisgICAgICAgICAgICA0NjM5LCAtNiwgIDEsICAgNDYzOCwgIDYsICAxLAorICAgICAgICAgICAgNDYzOCwgIDEsIDMyLCAgIDQ2MzgsICAyLCAgMiwgLy8gMS00NjM4IGhhcyAzMCBkYXlzCisgICAgICAgICAgICA0NjM4LCAgMiwgLTEsICAgNDYzOCwgIDEsIDI5LAorICAgICAgICB9OworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IHkxID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG0xID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZDEgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgeTIgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgbTIgPSBEQVRBW2krK10tMTsKKyAgICAgICAgICAgIGludCBkMiA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCB5MSk7CisgICAgICAgICAgICBjYWwuc2V0KE1PTlRILCBtMSk7CisgICAgICAgICAgICBjYWwuc2V0KERBVEUsIGQxKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgICAgIGludCBtID0gY2FsLmdldChNT05USCk7CisgICAgICAgICAgICBpbnQgZCA9IGNhbC5nZXQoREFURSk7CisgICAgICAgICAgICBpZiAoeSE9eTIgfHwgbSE9bTIgfHwgZCE9ZDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHkxICsgIi8iICsgKG0xKzEpICsgIi8iICsgZDEgKyAiIHJlc29sdmVzIHRvICIgKworICAgICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5MiArICIvIiArIChtMisxKSArICIvIiArIGQyKTsKKyAgICAgICAgICAgIH0gZWxzZSAgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgeTEgKyAiLyIgKyAobTErMSkgKyAiLyIgKyBkMSArICIgcmVzb2x2ZXMgdG8gIiArCisgICAgICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBDaGluZXNlQ2FsZW5kYXIuYWRkKCkuICBUaGUgb25seSByZWFsCisgICAgICogbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQgYXJvdW5kIGxlYXAgbW9udGhzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBZGQoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyBNT05USFMgQVJFIDEtQkFTRUQgSEVSRQorICAgICAgICAgICAgLy8gaW5wdXQgICAgICAgICAgICAgICBhZGQgICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8geWVhciAgbW9uICAgIGRheSAgICBmaWVsZCBhbW91bnQgIHllYXIgIG1vbiAgICBkYXkKKyAgICAgICAgICAgIHsgIDQ2NDIsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjQyLCAgIDYsMCwgIDE1IH0sIC8vIG5vcm1hbAorICAgICAgICAgICAgeyAgNDYzOSwgIDEyLDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2NDAsICAgMSwwLCAgMTUgfSwgLy8gYWNyb3NzIHllYXIKKyAgICAgICAgICAgIHsgIDQ2NDAsICAgMSwwLCAgMTUsICAgTU9OVEgsICAtMSwgICA0NjM5LCAgMTIsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDMsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMSwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA1LDAsICAzMCB9LCAvLyBubyBkb20gcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDMsICAgNDYzOCwgICA2LDAsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICB9OworICAgICAgIAorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBkb1JvbGxBZGQoQURELCBjYWwsIHRlc3RzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBDaGluZXNlQ2FsZW5kYXIucm9sbCgpLiAgVGhlIG9ubHkgcmVhbAorICAgICAqIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkIGFyb3VuZCBsZWFwIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vIE1PTlRIUyBBUkUgMS1CQVNFRCBIRVJFCisgICAgICAgICAgICAvLyBpbnB1dCAgICAgICAgICAgICAgIGFkZCAgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyB5ZWFyICBtb24gICAgZGF5ICAgIGZpZWxkIGFtb3VudCAgeWVhciAgbW9uICAgIGRheQorICAgICAgICAgICAgeyAgNDY0MiwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2NDIsICAgNiwwLCAgMTUgfSwgLy8gbm9ybWFsCisgICAgICAgICAgICB7ICA0NjQyLCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgMTEsICAgNDY0MiwgICAyLDAsICAxNSB9LCAvLyBub3JtYWwKKyAgICAgICAgICAgIHsgIDQ2MzksICAxMiwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM5LCAgIDEsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjQwLCAgIDEsMCwgIDE1LCAgIE1PTlRILCAgLTEsICAgNDY0MCwgIDEyLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgMTYsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgIDI4LCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMTUsICAgTU9OVEgsIC0xMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMSwgIDE1LCAgIE1PTlRILCAtMjUsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgMTQsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgIDE1LCAgIDQ2MzgsICAgNSwwLCAgMzAgfSwgLy8gbm8gZG9tIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgLTEwLCAgIDQ2MzgsICAgNiwwLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgfTsKKyAgICAgICAKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZG9Sb2xsQWRkKFJPTEwsIGNhbCwgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGRvUm9sbEFkZChib29sZWFuIHJvbGwsIENoaW5lc2VDYWxlbmRhciBjYWwsIGludFtdW10gdGVzdHMpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSByb2xsID8gInJvbGxpbmciIDogImFkZGluZyI7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpbnRbXSB0ZXN0ID0gdGVzdHNbaV07CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgdGVzdFswXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdGVzdFsxXS0xKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCB0ZXN0WzJdKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgdGVzdFszXSk7CisgICAgICAgICAgICBpZiAocm9sbCkgeworICAgICAgICAgICAgICAgIGNhbC5yb2xsKHRlc3RbNF0sIHRlc3RbNV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKHRlc3RbNF0sIHRlc3RbNV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUikgIT0gdGVzdFs2XSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICE9ICh0ZXN0WzddLTEpIHx8CisgICAgICAgICAgICAgICAgY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkgIT0gdGVzdFs4XSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkgIT0gdGVzdFs5XSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbmFtZSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXS0xLCB0ZXN0WzJdLCB0ZXN0WzNdKQorICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZmllbGROYW1lKHRlc3RbNF0pICsgIiBieSAiICsgdGVzdFs1XQorICAgICAgICAgICAgICAgICAgICAgICsgIjogZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFs2XSwgdGVzdFs3XS0xLCB0ZXN0WzhdLCB0ZXN0WzldKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyB5bWRUb1N0cmluZyhjYWwpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBuYW1lICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5bWRUb1N0cmluZyh0ZXN0WzBdLCB0ZXN0WzFdLTEsIHRlc3RbMl0sIHRlc3RbM10pCisgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZmllbGROYW1lKHRlc3RbNF0pICsgIiBieSAiICsgdGVzdFs1XQorICAgICAgICAgICAgICAgICAgICArICI6IGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHllYXIsbW9udGgsZGF5IHZhbHVlcyB0byB0aGUgZm9ybSAieWVhci9tb250aC9kYXkiLgorICAgICAqIE9uIGlucHV0IHRoZSBtb250aCB2YWx1ZSBpcyB6ZXJvLWJhc2VkLCBidXQgaW4gdGhlIHJlc3VsdCBzdHJpbmcgaXQgaXMgb25lLWJhc2VkLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIHltZFRvU3RyaW5nKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBpc0xlYXBNb250aCwgaW50IGRheSkgeworICAgICAgICByZXR1cm4gIiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsKKyAgICAgICAgICAgICgoaXNMZWFwTW9udGghPTApPyIobGVhcCkiOiIiKSArCisgICAgICAgICAgICAiLyIgKyBkYXk7CisgICAgfQorCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0RmluZExlYXBNb250aHMoKSB7CisvLyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKy8vICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZSgyMDAwLTE5MDAsIENhbGVuZGFyLkpBTlVBUlksIDEpKTsKKy8vICAgICAgICBsb25nIGVuZCA9IG5ldyBEYXRlKDIxMDAtMTkwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSkuZ2V0VGltZSgpOworLy8gICAgICAgIENoaW5lc2VEYXRlRm9ybWF0IGZtdCA9IChDaGluZXNlRGF0ZUZvcm1hdCkgRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShjYWwpOworLy8gICAgICAgIGZtdC5hcHBseVBhdHRlcm4oInUtTU1sLWRkLCAnWWVhcicgeSwgJ0N5Y2xlJyBHIik7CisvLyAgICAgICAgd2hpbGUgKGNhbC5nZXRUaW1lSW5NaWxsaXMoKSA8IGVuZCkgeworLy8gICAgICAgICAgICBpZiAoY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkgIT0gMCkgeworLy8gICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworLy8gICAgICAgICAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKSArICIgPSAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisvLyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjkpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX1lFQVIsIDI1KTsKKy8vICAgICAgICB9CisvLyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShjYWwpOworICAgICAgICBpZighKGZvcm1hdCBpbnN0YW5jZW9mIENoaW5lc2VEYXRlRm9ybWF0KSl7CisgICAgICAgICAgICBlcnJsbigiRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgiK2NhbCsiKSBkaWQgbm90IHJldHVybiBhIENoaW5lc2VEYXRlRm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXQgZm10ID0gKENoaW5lc2VEYXRlRm9ybWF0KWZvcm1hdDsKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigibGx5eWxsIik7CisgICAgICAgIERhdGUgdGltZSA9IGdldERhdGUoMjEwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQuZm9ybWF0KHRpbWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBlID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbigiY2hpbmVzZSBjYWxlbmRhciB0aW1lOiAiICsgdGltZSArICIgcmVzdWx0OiAiICsgc3RyICsgIiAtLT4gIiArIGUpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZ2xuKGV4LmdldE1lc3NhZ2UoKSk7IC8vIGNoaW5lc2UgY2FsZW5kYXIgY2FuJ3QgcGFyc2UgdGhpcywgbm8gZXJyb3IgZm9yIG5vdworICAgICAgICB9CisKKyAgICAgICAgLy9uZXcgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lLFVMb2NhbGUpCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjY2FsMiA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZS5DSElOQSk7CisgICAgICAgIGlmKGNjYWwyPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENoaW5lc2VDYWxlbmRhciB3aXRoIFRpbWVab25lIFVMb2NhbGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZtdCA9IChDaGluZXNlRGF0ZUZvcm1hdClEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjY2FsMiwgRGF0ZUZvcm1hdC5ERUZBVUxULCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgIHRpbWUgPSBnZXREYXRlKDIwMDEsIENhbGVuZGFyLk1BWSwgMjMpOworICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCh0aW1lKTsKKyAgICAgICAgICAgIGxvZ2xuKCJDaGluZXNlIGNhbGVuZGFyIHRpbWU6ICIgKyB0aW1lICsgIiByZXN1bHQ6ICIgKyBzdHIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFNjcmF0Y2goKXsKKyAgICAgICAgU3RyaW5nW10gc3RyTW9udGhzID0geyJKYW51YXJpIiwgIlBlYnJ1YXJpIiwgIk1hcmV0IiwgIkFwcmlsIiwgIk1laSIsICJKdW5pIiwKKyAgICAgICAgICAgICAgICAiSnVsaSIsICJBZ3VzdHVzIiwgIlNlcHRlbWJlciIsICJPa3RvYmVyIiwgIk5vcGVtYmVyIiwgIkRlc2VtYmVyIn07CisgICAgICAgIFN0cmluZ1tdIHN0clNob3J0TW9udGhzID0geyJKYW4iLCAiUGViIiwgIk1hciIsICJBcHIiLCAiTWVpIiwgIkp1biIsCisgICAgICAgICAgICAgICAgICAgICAiSnVsIiwgIkFndCIsICJTZXAiLCAiT2t0IiwgIk5vcCIsICJEZXMifTsKKyAgICAgICAgU3RyaW5nW10gc3RyV2Vla3MgPSB7IiIsICJNaW5nZ3UiLCAiU2VuaW4iLCAiU2VsYXNhIiwgIlJhYnUiLCAiS2FtaXMiLCAiSnVtYXQiLCAiU2FidHUifTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzRGF0ZSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhuZXcgTG9jYWxlKCJpZCIsICJJRCIpKTsKKyAgICAgICAgZGZzRGF0ZS5zZXRNb250aHMoc3RyTW9udGhzKTsKKyAgICAgICAgZGZzRGF0ZS5zZXRTaG9ydE1vbnRocyhzdHJTaG9ydE1vbnRocyk7CisgICAgICAgIGRmc0RhdGUuc2V0V2Vla2RheXMoc3RyV2Vla3MpOworICAgICAgICBVTG9jYWxlIHVsb0luZCA9IGRmc0RhdGUuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSk7CisgICAgICAgIGlmKHVsb0luZD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih1bG9JbmQudG9TdHJpbmcoKSk7CisgICAgICAgIExvY2FsZSBsb2NJbmQgPSB1bG9JbmQudG9Mb2NhbGUoKTsKKyAgICAgICAgaWYobG9jSW5kPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0Iik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4obG9jSW5kLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbml0V2l0aEN1cnJlbnRUaW1lKCkgeworICAgICAgICAvLyBqYjQ1NTUKKyAgICAgICAgLy8gaWYgdGhlIGNoaW5lc2UgY2FsZW5kYXIgY3VycmVudCBtaWxsaXMgaXNuJ3QgY2FsbGVkLCB0aGUgZGVmYXVsdCB5ZWFyIGlzIHdyb25nLgorICAgICAgICAvLyB0aGlzIHRlc3QgaXMgYXNzdW1pbmcgdGhlICd5ZWFyJyBpcyB0aGUgY3VycmVudCBjeWNsZQorICAgICAgICAvLyBzbyB3aGVuIHdlIGNyb3NzIGEgY3ljbGUgYm91bmRhcnksIHRoZSB0YXJnZXQgd2lsbCBuZWVkIHRvIGNoYW5nZQorICAgICAgICAvLyB0aGF0IHNob3VsZG4ndCBiZSBmb3IgYXdoaWxlIHlldC4uLiAKKworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2MgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5ZRUFSLCAyMik7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5NT05USCwgMCk7CisgICAgICAgICAvLyBuZWVkIHRvIHNldCBsZWFwIG1vbnRoIGZsYWcgb2ZmLCBvdGhlcndpc2UsIHRoZSB0ZXN0IGNhc2UgYWx3YXlzIGZhaWxzIHdoZW4KKyAgICAgICAgIC8vIGN1cnJlbnQgdGltZSBpcyBpbiBhIGxlYXAgbW9udGgKKyAgICAgICAgY2Muc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAwKTsKKyAgICAgICAgY2Muc2V0KENhbGVuZGFyLkRBVEUsIDE5KTsKKyAgICAgICAgY2Muc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAwKTsKKyAgICAgICAgY2Muc2V0KENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIGNjLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAKKyAgICAgICAgRGF0ZSB0YXJnZXQgPSBuZXcgRGF0ZSgxMDUsIENhbGVuZGFyLkZFQlJVQVJZLCAyOCk7CisgICAgICAgIERhdGUgcmVzdWx0ID0gY2MuZ2V0VGltZSgpOworCisgICAgICAgIGFzc2VydEVxdWFscygiY2hpbmVzZSBhbmQgZ3JlZ29yaWFuIGRhdGUgc2hvdWxkIG1hdGNoIiwgdGFyZ2V0LCByZXN1bHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdENhc2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdENhc2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MjRiNmFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NoaW5lc2VUZXN0Q2FzZS5qYXZhCkBAIC0wLDAgKzEsNTMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK3B1YmxpYyBjbGFzcyBDaGluZXNlVGVzdENhc2UgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGFuIG9iamVjdCB1c2luZyBhIEp1bGlhbiBkYXkgbnVtYmVyIGFuZAorICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkcyBmb3IgdGhlIGNhbGVuZGFyIGJlaW5nIHRlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlcmEgdGhlIEVSQSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIEp1bGlhbgorICAgICAqIGRheQorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSBZRUFSIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4KKyAgICAgKiBKdWxpYW4gZGF5CisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBNT05USCAoMS1iYXNlZCkgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uCisgICAgICogdGhlIGdpdmVuIEp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gaXNMZWFwTW9udGggaWYgdHJ1ZSwgdHJlYXQgbW9udGggYXMgYSBsZWFwIG1vbnRoCisgICAgICogQHBhcmFtIGRheU9mTW9udGggdGhlIERBWV9PRl9NT05USCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlCisgICAgICogZ2l2ZW4gSnVsaWFuIGRheQorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgdGhlIERBWV9PRl9XRUVLIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiBnaXZlbgorICAgICAqIEp1bGlhbiBkYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZVRlc3RDYXNlKGRvdWJsZSBqdWxpYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0xlYXBNb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWspIHsKKworICAgICAgICBzZXRUaW1lKG5ldyBEYXRlKEpVTElBTl9FUE9DSCArIChsb25nKShPTkVfREFZICoganVsaWFuKSkpOworICAgICAgICAKKyAgICAgICAgc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICBzZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoIC0gMSk7CisgICAgICAgIHNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgaXNMZWFwTW9udGg/MTowKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgZGF5T2ZNb250aCk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgZGF5T2ZXZWVrKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0ZXN0IGNhc2UncyB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkb3dUb1N0cmluZyhnZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspKSArCisgICAgICAgICAgICBnZXQoQ2FsZW5kYXIuWUVBUikgKyAib2YiICsgZ2V0KENhbGVuZGFyLkVSQSkgKworICAgICAgICAgICAgIi8iICsgKGdldChDYWxlbmRhci5NT05USCkrMSkgKworICAgICAgICAgICAgKGdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCk9PTE/IihsZWFwKSI6IiIpICsgIi8iICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db21wYXRpYmlsaXR5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NvbXBhdGliaWxpdHlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmZhMTQ0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTExNSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIENvbXBhdGliaWxpdHlUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb21wYXRpYmlsaXR5VGVzdCgpLnJ1bihhcmd2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiB0aGUgR3JlZ29yaWFuQ2FsZW5kYXIgYXJvdW5kIHRoZSBjaGFuZ2VvdmVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVnb3JpYW5DaGFuZ2VvdmVyKCkgeworICAgIAorICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgamRrR01UID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGpka0NhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqZGtHTVQpOworICAgICAgICBqZGtDYWwuY2xlYXIoKTsKKyAgICAgICAgamRrQ2FsLnNldCgxNTgyLCBDYWxlbmRhci5PQ1RPQkVSLCAxNSk7CisgICAgICAgIAorLy8gICAgICAgIGlmKGpka0NhbCBpbnN0YW5jZW9mIGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcikgeworLy8gICAgICAgIAkJbG9nbG4oImpkayBJUyBncmVnbyIpOworLy8gICAgICAgIAkJamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyIGpka2djID0gKGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcikKKy8vCQkJCQkJamRrQ2FsOworLy8gICAgICAgIAkJbG9nbG4oImpkayBjaGFuZ2UgYXQ6ICIgKyBqZGtnYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKSArICIoIiArIGpka2djLmdldEdyZWdvcmlhbkNoYW5nZSgpLmdldFRpbWUoKSArIikiICk7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAJICAgIGxvZ2xuKCJqZGsgTk9UIGdyZWdvIik7CisvLyAgICAgICAgfQorICAgICAgCisgICAgICAgIGxvbmcgYSA9IGpka0NhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICBEYXRlIGMgPSBqZGtDYWwuZ2V0VGltZSgpOworICAgICAgICBjLnRvU3RyaW5nKCk7CisgICAgICAgIGxvbmcgYiA9IGMuZ2V0VGltZSgpOworICAgICAgICBpZihhIT1iKSB7CisgICAgICAgICAgICAgbG9nbG4oIiAiICsgYSArICIgIT0gIiArIGIpOworICAgICAgICAgICAgCWxvZ2xuKCJKREsgaGFzIEdyZWdvcmlhbiBjdXRvdmVyIGFub21hbHkgKDEuNT8pIC0gc2tpcHBpbmcgdGhpcyB0ZXN0LiIpOworICAgICAgICAgICAgCXJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGF0ZSBjbyA9IGpka0NhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJDaGFuZ2Ugb3ZlciAoT2N0IDE1IDE1ODIpID0gIiArIGNvICsgIiAoIiArIGNvLmdldFRpbWUoKSArICIpIik7CisgICAgICAgIGZpbmFsIGludCBPTkVfREFZID0gMjQqNjAqNjAqMTAwMDsKKyAgICAgICAgVGltZVpvbmUgZ210ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZ210KTsKKyAgICAgICAgLyoKKyAgICAgICAgICBDaGFuZ2VvdmVyIC03IGRheXM6IDE1ODIvOS8yOCBkb3c9NgorICAgICAgICAgIENoYW5nZW92ZXIgLTYgZGF5czogMTU4Mi85LzI5IGRvdz03CisgICAgICAgICAgQ2hhbmdlb3ZlciAtNSBkYXlzOiAxNTgyLzkvMzAgZG93PTEKKyAgICAgICAgICBDaGFuZ2VvdmVyIC00IGRheXM6IDE1ODIvMTAvMSBkb3c9MgorICAgICAgICAgIENoYW5nZW92ZXIgLTMgZGF5czogMTU4Mi8xMC8yIGRvdz0zCisgICAgICAgICAgQ2hhbmdlb3ZlciAtMiBkYXlzOiAxNTgyLzEwLzMgZG93PTQKKyAgICAgICAgICBDaGFuZ2VvdmVyIC0xIGRheXM6IDE1ODIvMTAvNCBkb3c9NQorICAgICAgICAgIENoYW5nZW92ZXIgKzAgZGF5czogMTU4Mi8xMC8xNSBkb3c9NgorICAgICAgICAgIENoYW5nZW92ZXIgKzEgZGF5czogMTU4Mi8xMC8xNiBkb3c9NworICAgICAgICAgIENoYW5nZW92ZXIgKzIgZGF5czogMTU4Mi8xMC8xNyBkb3c9MQorICAgICAgICAgIENoYW5nZW92ZXIgKzMgZGF5czogMTU4Mi8xMC8xOCBkb3c9MgorICAgICAgICAgIENoYW5nZW92ZXIgKzQgZGF5czogMTU4Mi8xMC8xOSBkb3c9MworICAgICAgICAgIENoYW5nZW92ZXIgKzUgZGF5czogMTU4Mi8xMC8yMCBkb3c9NAorICAgICAgICAgIENoYW5nZW92ZXIgKzYgZGF5czogMTU4Mi8xMC8yMSBkb3c9NQorICAgICAgICAgIENoYW5nZW92ZXIgKzcgZGF5czogMTU4Mi8xMC8yMiBkb3c9NgorICAgICAgICAgICovCisgICAgICAgIGludCBNT05bXSA9IHsgIDksICA5LCAgOSwxMCwxMCwxMCwxMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDEwIH07CisgICAgICAgIGludCBET01bXSA9IHsgMjgsIDI5LCAzMCwgMSwgMiwgMywgNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyIH07CisgICAgICAgIGludCBET1dbXSA9IHsgIDYsICA3LCAgMSwgMiwgMywgNCwgNSwgIDYsICA3LCAgMSwgIDIsICAzLCAgNCwgIDUsICA2IH07CisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gPC1DaGFuZ2VvdmVyIEZyaSBPY3QgMTUgMTU4MgorICAgICAgICBpbnQgaj0wOworICAgICAgICBmb3IgKGludCBpPS03OyBpPD03OyArK2ksICsraikgeworICAgICAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoY28uZ2V0VGltZSgpICsgaSpPTkVfREFZKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpLCBtb24gPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxLUNhbGVuZGFyLkpBTlVBUlksCisgICAgICAgICAgICAgICAgZG9tID0gY2FsLmdldChDYWxlbmRhci5EQVRFKSwgZG93ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBsb2dsbigiQ2hhbmdlb3ZlciAiICsgKGk+PTA/IisiOiIiKSArCisgICAgICAgICAgICAgICAgICBpICsgIiBkYXlzOiAiICsgeSArICIvIiArIG1vbiArICIvIiArIGRvbSArICIgZG93PSIgKyBkb3cpOworICAgICAgICAgICAgaWYgKHkgIT0gMTU4MiB8fCBtb24gIT0gTU9OW2pdIHx8IGRvbSAhPSBET01bal0gfHwgZG93ICE9IERPV1tqXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiIEZhaWw6IEFib3ZlIGxpbmUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG1hcHBpbmcgYmV0d2VlbiBtaWxsaXMgYW5kIGZpZWxkcy4gIEZvciB0aGUgcHVycG9zZXMKKyAgICAgKiBvZiB0aGlzIHRlc3QsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGltZXpvbmVzIGFuZCB3ZWVrIGRhdGEKKyAgICAgKiAoZmlyc3QgZGF5IG9mIHdlZWssIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWFwcGluZygpIHsKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBEYXRlIFBVUkVfR1JFR09SSUFOID0gbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICAgICAgRGF0ZSBQVVJFX0pVTElBTiA9IG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9CisgICAgICAgICAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJVVEMiKSk7CisgICAgICAgICAgICBmaW5hbCBpbnQgRVBPQ0hfSlVMSUFOID0gMjQ0MDU4ODsKKyAgICAgICAgICAgIGZpbmFsIGxvbmcgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDBMOworICAgICAgICAgICAgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGZtdCA9CisgICAgICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCB5eXl5IEciKTsKKyAgICAgICAgICAgICAgICAvKkhIOm1tOnNzLlNTUyB6Ki8KKworICAgICAgICAgICAgZm9yIChpbnQgdHlwZT0wOyB0eXBlPDI7ICsrdHlwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0eXBlPT0wID8gIkdyZWdvcmlhbiIgOiAiSnVsaWFuIik7CisgICAgICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZSh0eXBlPT0wID8gUFVSRV9HUkVHT1JJQU4gOiBQVVJFX0pVTElBTik7CisgICAgICAgICAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgICAgICAgICAgaW50W10gSiA9IHsKKyAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGRiwKKyAgICAgICAgICAgICAgICAgICAgMHg3RkZGRkZGMCwKKyAgICAgICAgICAgICAgICAgICAgMHg3RjAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHg3ODAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHg3MDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHg2MDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHg1MDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHgzMDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMCwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxKLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGxpbSA9IG5ldyBTdHJpbmdbMl07CisgICAgICAgICAgICAgICAgICAgIGxvbmdbXSBtcyA9IG5ldyBsb25nWzJdOworICAgICAgICAgICAgICAgICAgICBpbnQgamQgPSBKW2ldOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBzaWduPTA7IHNpZ248MjsgKytzaWduKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQganVsaWFuID0gamQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbj09MCkganVsaWFuID0gLWp1bGlhbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gKChsb25nKWp1bGlhbiAtIEVQT0NIX0pVTElBTikgKiBPTkVfREFZOworICAgICAgICAgICAgICAgICAgICAgICAgbXNbc2lnbl0gPSBtaWxsaXM7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbVtzaWduXSA9IGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJKRCArLy0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvbmcudG9TdHJpbmcoamQsIDE2KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiAiICsgbXNbMF0gKyAiLi4iICsgbXNbMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIGxpbVswXSArICIuLiIgKyBsaW1bMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOworICAgICAgICAgICAgLy9ORVdDQUwKKyAgICAgICAgICAgIERhdGUgUFVSRV9HUkVHT1JJQU4gPSBuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSk7CisgICAgICAgICAgICBEYXRlIFBVUkVfSlVMSUFOID0gbmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgRVBPQ0hfSlVMSUFOID0gMjQ0MDU4ODsKKyAgICAgICAgICAgIGZpbmFsIGxvbmcgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDBMOworICAgICAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgICAgICAvLyBKdWxpYW4jICAgWWVhciAgTW9udGggICAgICAgICAgICAgICBET00gICBKVUxJQU46WWVhciwgTW9udGgsICAgICAgIERPTQorICAgICAgICAgICAgICAgIDI0NDA1ODgsICAgICAxOTcwLCBDYWxlbmRhci5KQU5VQVJZLCAgIDEsICAgIDE5NjksIENhbGVuZGFyLkRFQ0VNQkVSLCAgMTksIAorICAgICAgICAgICAgICAgIDI0MTUwODAsICAgICAxOTAwLCBDYWxlbmRhci5NQVJDSCwgICAgIDEsICAgIDE5MDAsIENhbGVuZGFyLkZFQlJVQVJZLCAgMTcsCisgICAgICAgICAgICAgICAgMjQ1MTYwNCwgICAgIDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAgMjksICAgMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksICAxNiwKKyAgICAgICAgICAgICAgICAyNDUyMjY5LCAgICAgMjAwMSwgQ2FsZW5kYXIuREVDRU1CRVIsICAyNSwgICAyMDAxLCBDYWxlbmRhci5ERUNFTUJFUiwgIDEyLAorICAgICAgICAgICAgICAgIDI0MTY1MjYsICAgICAxOTA0LCBDYWxlbmRhci5GRUJSVUFSWSwgIDE1LCAgIDE5MDQsIENhbGVuZGFyLkZFQlJVQVJZLCAgMiwKKyAgICAgICAgICAgICAgICAyNDE2NjU2LCAgICAgMTkwNCwgQ2FsZW5kYXIuSlVORSwgICAgICAyNCwgICAxOTA0LCBDYWxlbmRhci5KVU5FLCAgICAgIDExLAorICAgICAgICAgICAgICAgIDE3MjE0MjYsICAgICAgICAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDEsICAgICAgIDEsIENhbGVuZGFyLkpBTlVBUlksICAgMywKKyAgICAgICAgICAgICAgICAyMDAwMDAwLCAgICAgIDc2MywgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxOCwgICAgNzYzLCBDYWxlbmRhci5TRVBURU1CRVIsIDE0LAorICAgICAgICAgICAgICAgIDQwMDAwMDAsICAgICA2MjM5LCBDYWxlbmRhci5KVUxZLCAgICAgIDEyLCAgIDYyMzksIENhbGVuZGFyLk1BWSwgICAgICAgMjgsCisgICAgICAgICAgICAgICAgODAwMDAwMCwgICAgMTcxOTEsIENhbGVuZGFyLkZFQlJVQVJZLCAgMjYsICAxNzE5MCwgQ2FsZW5kYXIuT0NUT0JFUiwgICAyMiwKKyAgICAgICAgICAgICAgICAxMDAwMDAwMCwgICAyMjY2NiwgQ2FsZW5kYXIuREVDRU1CRVIsICAyMCwgIDIyNjY2LCBDYWxlbmRhci5KVUxZLCAgICAgIDUsCisgICAgICAgICAgICB9OworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz03KSB7CisgICAgICAgICAgICAgICAgaW50IGp1bGlhbiA9IERBVEFbaV07CisgICAgICAgICAgICAgICAgaW50IHllYXIgPSBEQVRBW2krMV07CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gREFUQVtpKzJdOworICAgICAgICAgICAgICAgIGludCBkb20gPSBEQVRBW2krM107CisgICAgICAgICAgICAgICAgaW50IHllYXIyLCBtb250aDIsIGRvbTI7CisgICAgICAgICAgICAgICAgbG9uZyBtaWxsaXMgPSAoanVsaWFuIC0gRVBPQ0hfSlVMSUFOKSAqIE9ORV9EQVk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHM7CisKKyAgICAgICAgICAgICAgICAvLyBUZXN0IEdyZWdvcmlhbiBjb21wdXRhdGlvbgorICAgICAgICAgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UoUFVSRV9HUkVHT1JJQU4pOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRvbSk7CisgICAgICAgICAgICAgICAgbG9uZyBjYWxNaWxsaXMgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBsb25nIGRlbHRhID0gY2FsTWlsbGlzIC0gbWlsbGlzOworICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgICAgICAgICAgICAgIHllYXIyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgICAgICBtb250aDIgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgICAgICBkb20yID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIHMgPSAiRyAiICsgeWVhciArICItIiArIChtb250aCsxLUNhbGVuZGFyLkpBTlVBUlkpICsgIi0iICsgZG9tICsKKyAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgY2FsTWlsbGlzICsKKyAgICAgICAgICAgICAgICAgICAgIiAoIiArICgoZmxvYXQpZGVsdGEvT05FX0RBWSkgKyAiIGRheSBkZWx0YSkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgIHllYXIyICsgIi0iICsgKG1vbnRoMisxLUNhbGVuZGFyLkpBTlVBUlkpICsgIi0iICsgZG9tMjsKKyAgICAgICAgICAgICAgICBpZiAoZGVsdGEgIT0gMCB8fCB5ZWFyICE9IHllYXIyIHx8IG1vbnRoICE9IG1vbnRoMiB8fAorICAgICAgICAgICAgICAgICAgICBkb20gIT0gZG9tMikgZXJybG4ocyArICIgRkFJTCIpOworICAgICAgICAgICAgICAgIGVsc2UgbG9nbG4ocyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVGVzdCBKdWxpYW4gY29tcHV0YXRpb24KKyAgICAgICAgICAgICAgICB5ZWFyID0gREFUQVtpKzRdOworICAgICAgICAgICAgICAgIG1vbnRoID0gREFUQVtpKzVdOworICAgICAgICAgICAgICAgIGRvbSA9IERBVEFbaSs2XTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKFBVUkVfSlVMSUFOKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20pOworICAgICAgICAgICAgICAgIGNhbE1pbGxpcyA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIGRlbHRhID0gY2FsTWlsbGlzIC0gbWlsbGlzOworICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgICAgICAgICAgICAgIHllYXIyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgICAgICBtb250aDIgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgICAgICBkb20yID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIHMgPSAiSiAiICsgeWVhciArICItIiArIChtb250aCsxLUNhbGVuZGFyLkpBTlVBUlkpICsgIi0iICsgZG9tICsKKyAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgY2FsTWlsbGlzICsKKyAgICAgICAgICAgICAgICAgICAgIiAoIiArICgoZmxvYXQpZGVsdGEvT05FX0RBWSkgKyAiIGRheSBkZWx0YSkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgIHllYXIyICsgIi0iICsgKG1vbnRoMisxLUNhbGVuZGFyLkpBTlVBUlkpICsgIi0iICsgZG9tMjsKKyAgICAgICAgICAgICAgICBpZiAoZGVsdGEgIT0gMCB8fCB5ZWFyICE9IHllYXIyIHx8IG1vbnRoICE9IG1vbnRoMiB8fAorICAgICAgICAgICAgICAgICAgICBkb20gIT0gZG9tMikgZXJybG4ocyArICIgRkFJTCIpOworICAgICAgICAgICAgICAgIGVsc2UgbG9nbG4ocyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxNTgyLCBDYWxlbmRhci5PQ1RPQkVSLCAxNSk7CisgICAgICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGF1eE1hcHBpbmcoY2FsLCAxNTgyLCBDYWxlbmRhci5PQ1RPQkVSLCA0KTsKKyAgICAgICAgICAgIGF1eE1hcHBpbmcoY2FsLCAxNTgyLCBDYWxlbmRhci5PQ1RPQkVSLCAxNSk7CisgICAgICAgICAgICBhdXhNYXBwaW5nKGNhbCwgMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTYpOworICAgICAgICAgICAgZm9yIChpbnQgeT04MDA7IHk8MzAwMDsgeSs9MSsoaW50KSgxMDAqTWF0aC5yYW5kb20oKSkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBtPUNhbGVuZGFyLkpBTlVBUlk7IG08PUNhbGVuZGFyLkRFQ0VNQkVSOyArK20pIHsKKyAgICAgICAgICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIHksIG0sIDE1KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgYXV4TWFwcGluZyhDYWxlbmRhciBjYWwsIGludCB5LCBpbnQgbSwgaW50IGQpIHsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoeSwgbSwgZCk7CisgICAgICAgIGxvbmcgbWlsbGlzID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgICAgICBpbnQgeWVhcjIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBkb20yID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBpZiAoeSAhPSB5ZWFyMiB8fCBtICE9IG1vbnRoMiB8fCBkb20yICE9IGQpCisgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsdXJlOiAiICsgeSArICItIiArIChtKzEpICsgIi0iK2QrIiA9Pm1zPT4gIiArCisgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMSkgKyAiLSIgKyBkb20yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY0FQSSgpIHsKKyAgICAgICAgLy8gbm90IHVzZWQgU3RyaW5nIHN0cjsKKworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTAsIENhbGVuZGFyLkFQUklMLCAxNSk7CisgICAgICAgIERhdGUgd2hlbiA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIFN0cmluZyB0emlkID0gIlRlc3Rab25lIjsKKyAgICAgICAgaW50IHR6b2Zmc2V0ID0gMTIzNDAwOworCisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUodHpvZmZzZXQsIHR6aWQpOworICAgICAgICBDYWxlbmRhciBjYWwgPSAoQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKFNpbXBsZVRpbWVab25lKXpvbmUuY2xvbmUoKSk7CisKKyAgICAgICAgaWYgKCF6b25lLmVxdWFscyhjYWwuZ2V0VGltZVpvbmUoKSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5nZXRUaW1lWm9uZSBmYWlsZWQiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoY2FsLmdldFRpbWVab25lKCkpOworCisgICAgICAgIGNhbC5zZXRUaW1lKHdoZW4pOworICAgICAgICBjYWwyLnNldFRpbWUod2hlbik7CisKKyAgICAgICAgaWYgKCEoY2FsLmVxdWFscyhjYWwyKSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5vcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICAvLyBpZiAoKCpjYWwgIT0gKmNhbDIpKSAgZXJybG4oIkZBSUw6IENhbGVuZGFyLm9wZXJhdG9yIT0gZmFpbGVkIik7CisgICAgICAgIGlmICghY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmJlZm9yZShjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICBjYWwyLnNldFRpbWUobmV3IERhdGUod2hlbi5nZXRUaW1lKCkgKyAxMDAwKSk7CisgICAgICAgIGlmIChjYWwuZXF1YWxzKGNhbDIpIHx8CisgICAgICAgICAgICBjYWwyLmJlZm9yZShjYWwpIHx8CisgICAgICAgICAgICBjYWwuYWZ0ZXIoY2FsMikpIGVycmxuKCJGQUlMOiBlcXVhbHMvYmVmb3JlL2FmdGVyIGZhaWxlZCIpOworCisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLlNFQ09ORCwgdHJ1ZSk7CisgICAgICAgIGlmICghY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmJlZm9yZShjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICAvLyBSb2xsIGJhY2sgdG8gSmFudWFyeQorICAgICAgICBjYWwucm9sbChDYWxlbmRhci5NT05USCwgKGludCkoMSArIENhbGVuZGFyLkRFQ0VNQkVSIC0gY2FsLmdldChDYWxlbmRhci5NT05USCkpKTsKKyAgICAgICAgaWYgKGNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbDIuYmVmb3JlKGNhbCkgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgLy8gQysrIG9ubHkKKyAgICAgICAgLyogVGltZVpvbmUgeiA9IGNhbC5vcnBoYW5UaW1lWm9uZSgpOworICAgICAgICAgICBpZiAoei5nZXRJRChzdHIpICE9IHR6aWQgfHwKKyAgICAgICAgICAgei5nZXRSYXdPZmZzZXQoKSAhPSB0em9mZnNldCkKKyAgICAgICAgICAgZXJybG4oIkZBSUw6IG9ycGhhblRpbWVab25lIGZhaWxlZCIpOworICAgICAgICAgICAqLworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTwyOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gbGVuaWVudCA9ICggaSA+IDAgKTsKKyAgICAgICAgICAgIGNhbC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgICAgICAgICAgaWYgKGxlbmllbnQgIT0gY2FsLmlzTGVuaWVudCgpKSBlcnJsbigiRkFJTDogc2V0TGVuaWVudC9pc0xlbmllbnQgZmFpbGVkIik7CisgICAgICAgICAgICAvLyBMYXRlcjogQ2hlY2sgZm9yIGxlbmllbnQgYmVoYXZpb3IKKyAgICAgICAgfQorCisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9Q2FsZW5kYXIuU1VOREFZOyBpPD1DYWxlbmRhci5TQVRVUkRBWTsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkgIT0gaSkgZXJybG4oIkZBSUw6IHNldC9nZXRGaXJzdERheU9mV2VlayBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaT0xOyBpPD03OyArK2kpIHsKKyAgICAgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgIT0gaSkgZXJybG4oIkZBSUw6IHNldC9nZXRGaXJzdERheU9mV2VlayBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaT0wOyBpPGNhbC5nZXRGaWVsZENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbXVtKGkpICE9IGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE1pbmltdW0gZG9lc24ndCBtYXRjaCBnZXRHcmVhdGVzdE1pbmltdW0gZm9yIGZpZWxkICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TGVhc3RNYXhpbXVtKGkpID4gY2FsLmdldE1heGltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldExlYXN0TWF4aW11bSBsYXJnZXIgdGhhbiBnZXRNYXhpbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldE1pbmltdW0oaSkgPj0gY2FsLmdldE1heGltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE1pbmltdW0gbm90IGxlc3MgdGhhbiBnZXRNYXhpbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk4NCwgNSwgMjQpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODQsIDUsIDI0KTsKKyAgICAgICAgaWYgKGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyLnNldCgzIGFyZ3MpIGZhaWxlZCIpOworICAgICAgICAgICAgbG9nbG4oIiBHb3Q6ICIgKyBjYWwuZ2V0VGltZSgpICsgIiAgRXhwZWN0ZWQ6ICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTg1LCAzLCAyLCAxMSwgNDkpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODUsIDMsIDIsIDExLCA0OSk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoNSBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NSwgOSwgMTIsIDEsIDM5LCA1NSk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NSwgOSwgMTIsIDEsIDM5LCA1NSk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoNiBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gVGhpcyB0ZXN0IGlzIHN0cmFuZ2UgLS0gd2h5IGRvIHdlIGV4cGVjdCBjZXJ0YWluIGZpZWxkcyB0byBiZSBzZXQsIGFuZAorICAgICAgICAvLyBvdGhlcnMgbm90IHRvIGJlPyAgUmV2aXNpdCB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHRoaXMuICAtIEFsYW4gTkVXQ0FMCisgICAgICAgIGZvciAoaT0wOyBpPGNhbC5nZXRGaWVsZENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgc3dpdGNoKGkpIHsKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuWUVBUjogY2FzZSBDYWxlbmRhci5NT05USDogY2FzZSBDYWxlbmRhci5EQVRFOgorICAgICAgICAgICAgY2FzZSBDYWxlbmRhci5IT1VSX09GX0RBWTogY2FzZSBDYWxlbmRhci5NSU5VVEU6IGNhc2UgQ2FsZW5kYXIuU0VDT05EOgorICAgICAgICAgICAgY2FzZSBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSOgorICAgICAgICAgICAgICAgIGlmICghY2FsLmlzU2V0KGkpKSBlcnJsbigiRkFJTDogIiArIEZJRUxEX05BTUVbaV0gKyAiIGlzIG5vdCBzZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgaWYgKGNhbC5pc1NldChpKSkgZXJybG4oIkZBSUw6ICIgKyBGSUVMRF9OQU1FW2ldICsgIiBpcyBzZXQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbC5jbGVhcihpKTsKKyAgICAgICAgICAgIGlmIChjYWwuaXNTZXQoaSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5jbGVhci9pc1NldCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisgICAgICAgIC8vIGRlbGV0ZSBjYWwyOworCisgICAgICAgIExvY2FsZVtdIGxvYyA9IENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvYy5sZW5ndGg7CisgICAgICAgIGlmIChjb3VudCA8IDEgfHwgbG9jID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRBdmFpbGFibGVMb2NhbGVzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICAgICAgLy8gZGVsZXRlIGNhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAvLyBkZWxldGUgY2FsOworCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHpvbmUsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGNhbDsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5OCwgMTAsIDE0LCAyMSwgNDMpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDEwLCAxNCwgMjEsIDQzKTsKKyAgICAgICAgaWYgKGdjLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih5bWRobSkgZmFpbGVkIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk4LCAxMCwgMTQsIDIxLCA0MywgNTUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDEwLCAxNCwgMjEsIDQzLCA1NSk7CisgICAgICAgIGlmIChnYy5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoeW1kaG1zKSBmYWlsZWQiKTsKKworICAgICAgICAvLyBDKysgb25seToKKyAgICAgICAgLy8gR3JlZ29yaWFuQ2FsZW5kYXIgZ2MyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZ2MyID0gZ2M7CisgICAgICAgIC8vIGlmIChnYzIgIT0gZ2MgfHwgIShnYzIgPT0gZ2MpKSBlcnJsbigiRkFJTDogR3JlZ29yaWFuQ2FsZW5kYXIgYXNzaWdubWVudC9vcGVyYXRvcj09L29wZXJhdG9yIT0gZmFpbGVkIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKyAgICAgICAgLy8gZGVsZXRlIHo7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IFJvZ2VyIFdlYnN0ZXIncyBidWcKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9nKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGludCB5ZWFyID0gMTk5NywgbW9udGggPSBDYWxlbmRhci5BUFJJTCwgZGF0ZSA9IDE7CisgICAgICAgIGdjLnNldCh5ZWFyLCBtb250aCwgZGF0ZSk7IC8vIEFwcmlsIDEsIDE5OTcKKworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIzKTsKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGdjLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgOTsgaSsrLCBnYy5hZGQoQ2FsZW5kYXIuREFURSwgMSkpIHsKKyAgICAgICAgICAgIGlmIChnYy5nZXQoQ2FsZW5kYXIuWUVBUikgIT0geWVhciB8fAorICAgICAgICAgICAgICAgIGdjLmdldChDYWxlbmRhci5NT05USCkgIT0gbW9udGggfHwKKyAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuREFURSkgIT0gKGRhdGUgKyBpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZSAiICsgZ2MuZ2V0VGltZSgpICsgIiB3cm9uZyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmVyaWZ5IERBWV9PRl9XRUVLCisgICAgcHVibGljIHZvaWQgVGVzdERPVzk0MygpIHsKKyAgICAgICAgZG93VGVzdChmYWxzZSk7CisgICAgICAgIGRvd1Rlc3QodHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCBkb3dUZXN0KGJvb2xlYW4gbGVuaWVudCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BVUdVU1QsIDEyKTsgLy8gV2VkbmVzZGF5CisgICAgICAgIGNhbC5nZXRUaW1lKCk7IC8vIEZvcmNlIHVwZGF0ZQorICAgICAgICBjYWwuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgY2FsLnNldCgxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMSk7IC8vIFNldCB0aGUgZGF0ZSB0byBiZSBEZWNlbWJlciAxLCAxOTk2CisgICAgICAgIGludCBkb3cgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1pbiA9IGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1heCA9IGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaWYgKGRvdyA8IG1pbiB8fCBkb3cgPiBtYXgpIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayAiICsgZG93ICsgIiBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5TVU5EQVkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMMjogRGF5IG9mIHdlZWsgc2hvdWxkIGJlIFNVTkRBWTsgaXMgIiArIGRvdyArICI6ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluICE9IENhbGVuZGFyLlNVTkRBWSB8fCBtYXggIT0gQ2FsZW5kYXIuU0FUVVJEQVkpIGVycmxuKCJGQUlMOiBNaW4vbWF4IGJhZCIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjbG9uZSBtZXRob2QgcHJvZHVjZXMgZGlzdGluY3Qgb2JqZWN0cyB3aXRoIG5vCisgICAgLy8gdW5pbnRlbnRpb25hbGx5IHNoYXJlZCBmaWVsZHMuCisgICAgcHVibGljIHZvaWQgVGVzdENsb25lc1VuaXF1ZTkwOCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIENhbGVuZGFyIGQgPSAoQ2FsZW5kYXIpYy5jbG9uZSgpOworICAgICAgICBjLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMTIzKTsKKyAgICAgICAgZC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDQ1Nik7CisgICAgICAgIGlmIChjLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gMTIzIHx8CisgICAgICAgICAgICBkLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gNDU2KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2xvbmVzIHNoYXJlIGZpZWxkcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmVyaWZ5IGVmZmVjdCBvZiBHcmVnb3JpYW4gY3V0b2ZmIHZhbHVlCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWdvcmlhbkNoYW5nZTc2OCgpIHsKKyAgICAgICAgYm9vbGVhbiBiOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGxvZ2xuKCJXaXRoIGN1dG9mZiAiICsgYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKSk7CisgICAgICAgIGxvZ2xuKCIgaXNMZWFwWWVhcigxODAwKSA9ICIgKyAoYj1jLmlzTGVhcFllYXIoMTgwMCkpKTsKKyAgICAgICAgbG9nbG4oIiAoc2hvdWxkIGJlIEZBTFNFKSIpOworICAgICAgICBpZiAoYiAhPSBmYWxzZSkgZXJybG4oIkZBSUwiKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTAwLCAwLCAxKTsKKyAgICAgICAgYy5zZXRHcmVnb3JpYW5DaGFuZ2UodGVtcGNhbC5nZXRUaW1lKCkpOyAvLyBKYW4gMSAxOTAwCisgICAgICAgIGxvZ2xuKCJXaXRoIGN1dG9mZiAiICsgYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKSk7CisgICAgICAgIGxvZ2xuKCIgaXNMZWFwWWVhcigxODAwKSA9ICIgKyAoYj1jLmlzTGVhcFllYXIoMTgwMCkpKTsKKyAgICAgICAgbG9nbG4oIiAoc2hvdWxkIGJlIFRSVUUpIik7CisgICAgICAgIGlmIChiICE9IHRydWUpIGVycmxuKCJGQUlMIik7CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgY29ycmVjdCBiZWhhdmlvciBvZiB0aGUgZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtLgorICAgIHB1YmxpYyB2b2lkIFRlc3REaXNhbWJpZ3VhdGlvbjc2NSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBDYWxlbmRhciBjID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYy5zZXRMZW5pZW50KGZhbHNlKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIDMpOworCisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyB0aGlyZCBkYXkgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTkUsIDMpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBmaXJzdCBUdWVzZGF5IGluIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIC0xKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IGxhc3QgVHVlc2RheSBpbiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMjQpOworCisgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDApOworICAgICAgICAgICAgYy5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZSA9IGV4OworICAgICAgICB9CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyB6ZXJvLXRoIFR1ZXNkYXkgaW4gSnVuZSA9ICIsIGUsIGMpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX01PTlRILCAxKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxIG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgNSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgNSBvZiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVMWSwgMSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMCk7CisgICAgICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDAgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLk1BWSwgMjcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeGNlcHRpb24gc2VlbjoiKTsKKyAgICAgICAgICAgIC8vIGV4LnByaW50U3RhY2tUcmFjZShsb2cpOworICAgICAgICB9CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDEpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDEgb2YgeWVhciA9ICIsIGMsIDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDEwKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxMCBvZiB5ZWFyID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDQpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgMCk7CisgICAgICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDAgb2YgeWVhciA9ICIsIGMsIDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGYWlsOiBXRUVLX09GX1lFQVIgMCBzaG91bGQgYmUgaWxsZWdhbCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgdmVyaWZ5NzY1KFN0cmluZyBtc2csIENhbGVuZGFyIGMsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpIHsKKyAgICAgICAgaW50IGN5ID0gYy5nZXQoQ2FsZW5kYXIuWUVBUik7IC8vIE5FV0NBTAorICAgICAgICBpbnQgY20gPSBjLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBjZCA9IGMuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpZiAoY3kgPT0geWVhciAmJgorICAgICAgICAgICAgY20gPT0gbW9udGggJiYKKyAgICAgICAgICAgIGNkID09IGRheSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6ICIgKyBtc2cgKyBjLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArIGN5ICsgIi8iICsgKGNtKzEpICsgIi8iICsgY2QgKworICAgICAgICAgICAgICAgICAgIj0iICsgYy5nZXRUaW1lKCkgKworICAgICAgICAgICAgICAgICAgIjsgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBDYWxsZWQgd2hlbiBlIGV4cGVjdGVkIHRvIGJlIG5vbi1udWxsCisgICAgdm9pZCB2ZXJpZnk3NjUoU3RyaW5nIG1zZywgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUsIENhbGVuZGFyIGMpIHsKKyAgICAgICAgaWYgKGUgPT0gbnVsbCkgZXJybG4oIkZBSUw6IE5vIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgIiArIG1zZyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuZ2V0VGltZSgpKTsKKyAgICAgICAgZWxzZSBsb2dsbigiUEFTUzogIiArIG1zZyArICJJbGxlZ2FsQXJndW1lbnQgYXMgZXhwZWN0ZWQiKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBiZWhhdmlvciBvZiBHTVQgdnMuIGxvY2FsIHRpbWUKKyAgICBwdWJsaWMgdm9pZCBUZXN0R01UdnNMb2NhbDQwNjQ2NTQoKSB7CisgICAgICAgIC8vIFNhbXBsZSBvdXRwdXQgMToKKyAgICAgICAgLy8gJSAvdXNyL2xvY2FsL2phdmEvamRrMS4xLjMvc29sYXJpcy9iaW4vamF2YSB0ZXN0IDE5OTcgMSAxIDEyIDAgMAorICAgICAgICAvLyBkYXRlID0gV2VkIEphbiAwMSAwNDowMDowMCBQU1QgMTk5NworICAgICAgICAvLyBvZmZzZXQgZm9yIFdlZCBKYW4gMDEgMDQ6MDA6MDAgUFNUIDE5OTc9IC04aHIKKyAgICAgICAgYXV4NDA2NDY1NCgxOTk3LCAxLCAxLCAxMiwgMCwgMCk7CisKKyAgICAgICAgLy8gU2FtcGxlIG91dHB1dCAyOgorICAgICAgICAvLyAlIC91c3IvbG9jYWwvamF2YS9qZGsxLjEuMy9zb2xhcmlzL2Jpbi9qYXZhIHRlc3QgMTk5NyA0IDE2IDE4IDMwIDAKKyAgICAgICAgLy8gZGF0ZSA9IFdlZCBBcHIgMTYgMTA6MzA6MDAgUERUIDE5OTcKKyAgICAgICAgLy8gb2Zmc2V0IGZvciBXZWQgQXByIDE2IDEwOjMwOjAwIFBEVCAxOTk3PSAtN2hyCisKKyAgICAgICAgLy8gTm90ZSB0aGF0IGluIHNhbXBsZSBvdXRwdXQgMiBhY2NvcmRpbmcgdG8gdGhlIG9mZnNldCwgdGhlIGdtdCB0aW1lCisgICAgICAgIC8vIG9mIHRoZSByZXN1bHQgd291bGQgYmUgMTk5NyA0IDE2IDE3IDMwIDAgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gdGhlCisgICAgICAgIC8vIGlucHV0IG9mIDE5OTcgNCAxNiAxOCAzMCAwLgorICAgICAgICBhdXg0MDY0NjU0KDE5OTcsIDQsIDE2LCAxOCwgMzAsIDApOworICAgIH0KKyAgICB2b2lkIGF1eDQwNjQ2NTQoaW50IHlyLCBpbnQgbW8sIGludCBkdCwgaW50IGhyLCBpbnQgbW4sIGludCBzYykgeworICAgICAgICBEYXRlIGRhdGU7CisgICAgICAgIENhbGVuZGFyIGdtdGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGdtdGNhbC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQWZyaWNhL0Nhc2FibGFuY2EiKSk7CisgICAgICAgIGdtdGNhbC5zZXQoeXIsIG1vLTEsIGR0LCBociwgbW4sIHNjKTsKKyAgICAgICAgZ210Y2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgZGF0ZSA9IGdtdGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJkYXRlID0gIitkYXRlKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VscyIpKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgaW50IG9mZnNldCA9IGNhbC5nZXRUaW1lWm9uZSgpLmdldE9mZnNldChjYWwuZ2V0KENhbGVuZGFyLkVSQSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKworICAgICAgICBsb2dsbigib2Zmc2V0IGZvciAiK2RhdGUrIj0gIisob2Zmc2V0LzEwMDAvNjAvNjAuMCkgKyAiaHIiKTsKKworICAgICAgICBpbnQgdXRjID0gKChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkpICogMTAwMCArCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSAtIG9mZnNldDsKKworICAgICAgICBpbnQgZXhwZWN0ZWQgPSAoKGhyICogNjAgKyBtbikgKiA2MCArIHNjKSAqIDEwMDA7CisKKyAgICAgICAgaWYgKHV0YyAhPSBleHBlY3RlZCkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaXNjcmVwYW5jeSBvZiAiICsKKyAgICAgICAgICAgICAgICAgICh1dGMgLSBleHBlY3RlZCkgKyAiIG1pbGxpcyA9ICIgKworICAgICAgICAgICAgICAgICAgKCh1dGMtZXhwZWN0ZWQpLzEwMDAvNjAvNjAuMCkgKyAiIGhyIik7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgYWRkIGFuZCBzZXQgd29yayByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBpbiB3aGljaAorICAgIC8vIHRoZXkgYXJlIGNhbGxlZC4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkU2V0T3JkZXI2MjEoKSB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNCwgMTQsIDEzLCAyMywgNDUpOworICAgICAgICBEYXRlIGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSAoKTsKKyAgICAgICAgY2FsLnNldFRpbWUgKGQpOworICAgICAgICBjYWwuYWRkIChDYWxlbmRhci5EQVRFLCAtNSk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLkhPVVJfT0ZfREFZLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgLy8gbWEgZmViIDAzIDAwOjAwOjAwIEdNVCswMDowMCAxOTk3CisgICAgICAgIFN0cmluZyBzID0gY2FsLmdldFRpbWUgKCkudG9TdHJpbmcgKCk7CisKKyAgICAgICAgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UgKCk7CisgICAgICAgIGNhbC5zZXRUaW1lIChkKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBjYWwuYWRkIChDYWxlbmRhci5EQVRFLCAtNSk7CisgICAgICAgIC8vIG1hIGZlYiAwMyAxMzoxMTowNiBHTVQrMDA6MDAgMTk5NworICAgICAgICBTdHJpbmcgczIgPSBjYWwuZ2V0VGltZSAoKS50b1N0cmluZyAoKTsKKworICAgICAgICBpZiAocy5lcXVhbHMoczIpKQorICAgICAgICAgICAgbG9nbG4oIlBhc3M6ICIgKyBzICsgIiA9PSAiICsgczIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHMgKyAiICE9ICIgKyBzMik7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgYWRkIHdvcmtzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGQ1MjAoKSB7CisgICAgICAgIGludCB5ID0gMTk5NywgbSA9IENhbGVuZGFyLkZFQlJVQVJZLCBkID0gMTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgdGVtcCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggeSwgbSwgZCApOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuWUVBUiwgMSApOworICAgICAgICB5Kys7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCBDYWxlbmRhci5NT05USCwgMSApOworICAgICAgICBtKys7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCBDYWxlbmRhci5EQVRFLCAxICk7CisgICAgICAgIGQrKzsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIENhbGVuZGFyLkRBVEUsIDIgKTsKKyAgICAgICAgZCArPSAyOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuREFURSwgMjggKTsKKyAgICAgICAgZCA9IDE7ICsrbTsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisgICAgfQorICAgIHZvaWQgY2hlY2s1MjAoQ2FsZW5kYXIgYywgaW50IHksIGludCBtLCBpbnQgZCkgeworICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuWUVBUikgIT0geSB8fAorICAgICAgICAgICAgYy5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IG0gfHwKKyAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLkRBVEUpICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMVVJFOiBFeHBlY3RlZCBZRUFSL01PTlRIL0RBVEUgb2YgIiArCisgICAgICAgICAgICAgICAgICB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkICsKKyAgICAgICAgICAgICAgICAgICI7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIChjLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworICAgICAgICAgICAgICAgICAgYy5nZXQoQ2FsZW5kYXIuREFURSkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgbG9nbG4oIkNvbmZpcm1lZDogIiArCisgICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCk7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgc2V0dGluZyBmaWVsZHMgd29ya3MuICBUaGlzIHRlc3QgZmFpbHMgd2hlbiBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAgIHB1YmxpYyB2b2lkIFRlc3RGaWVsZFNldDQ3ODEoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBVVEMgdmFsdWUgaXMgc2V0LCB2YXJpb3VzIGZpZWxkcyBhcmUgbm90LgorICAgICAgICAgICAgLy8gTm93IHNldCB0byBub29uLgorICAgICAgICAgICAgZzIuc2V0KENhbGVuZGFyLkhPVVIsIDEyKTsKKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICAgICAgZzIuc2V0KENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBvYmplY3QgdGhpbmtzIFVUQyBpcyBOT1Qgc2V0LCBidXQgZmllbGRzIGFyZSBzZXQuCisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgd2lsbCByZXN1bHQgaW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGJlY2F1c2UKKyAgICAgICAgICAgIC8vIGl0IHRoaW5rcyB0aGUgWUVBUiBpcyBzZXQgYW5kIGl0IGlzIE5PVC4KKyAgICAgICAgICAgIGlmIChnMi5lcXVhbHMoZykpCisgICAgICAgICAgICAgICAgbG9nbG4oIlNhbWUiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2dsbigiRGlmZmVyZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gc2VlbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCBzZXJpYWxpemF0aW9uIG9mIGEgQ2FsZW5kYXIgb2JqZWN0CisgICAgcHVibGljIHZvaWQgVGVzdFNlcmlhbGl6ZTMzNygpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKworICAgICAgICBib29sZWFuIG9rID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBmID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0IHMgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGYpOworICAgICAgICAgICAgcy53cml0ZU9iamVjdChQUkVGSVgpOworICAgICAgICAgICAgcy53cml0ZU9iamVjdChjYWwpOworICAgICAgICAgICAgcy53cml0ZU9iamVjdChQT1NURklYKTsKKyAgICAgICAgICAgIGYuY2xvc2UoKTsKKworICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gaW4gPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZi50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIHQgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW4pOworICAgICAgICAgICAgU3RyaW5nIHByZSA9IChTdHJpbmcpdC5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBDYWxlbmRhciBjID0gKENhbGVuZGFyKXQucmVhZE9iamVjdCgpOworICAgICAgICAgICAgU3RyaW5nIHBvc3QgPSAoU3RyaW5nKXQucmVhZE9iamVjdCgpOworICAgICAgICAgICAgaW4uY2xvc2UoKTsKKworICAgICAgICAgICAgb2sgPSBwcmUuZXF1YWxzKFBSRUZJWCkgJiYKKyAgICAgICAgICAgICAgICBwb3N0LmVxdWFscyhQT1NURklYKSAmJgorICAgICAgICAgICAgICAgIGNhbC5lcXVhbHMoYyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeGNlcHRpb24gcmVjZWl2ZWQ6Iik7CisgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZShsb2cpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeGNlcHRpb24gcmVjZWl2ZWQ6Iik7CisgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZShsb2cpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvaykgZXJybG4oIlNlcmlhbGl6YXRpb24gb2YgQ2FsZW5kYXIgb2JqZWN0IGZhaWxlZC4iKTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQUkVGSVggPSAiYWJjIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFBPU1RGSVggPSAiZGVmIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEVOQU1FID0gInRtcDMzNy5iaW4iOworCisgICAgLy8gVHJ5IHRvIHplcm8gb3V0IHRoZSBzZWNvbmRzIGZpZWxkCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZHNaZXJvMTIxKCkgeworICAgICAgICBDYWxlbmRhciAgICAgICAgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIC8vIEluaXRpYWxpemUgd2l0aCBjdXJyZW50IGRhdGUvdGltZQorICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZSgpKTsKKyAgICAgICAgLy8gUm91bmQgZG93biB0byBtaW51dGUKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBEYXRlICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcgcyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKHMuaW5kZXhPZigiOjAwICIpIDwgMCkgZXJybG4oIkV4cGVjdGVkIHRvIHNlZSA6MDAgaW4gIiArIHMpOworICAgIH0KKworICAgIC8vIFRyeSB2YXJpb3VzIHNlcXVlbmNlcyBvZiBhZGQsIHNldCwgYW5kIGdldCBtZXRob2QgY2FsbHMuCisgICAgcHVibGljIHZvaWQgVGVzdEFkZFNldEdldDA2MTAoKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIEVycm9yIGNhc2UgMToKKyAgICAgICAgLy8gLSBVcG9uIGluaXRpYWxpemF0aW9uIGNhbGVuZGFyIGZpZWxkcywgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lCisgICAgICAgIC8vIC0gQWZ0ZXIgc2V0IGlzIGNhbGxlZCBmaWVsZHMgYXJlIGluaXRpYWxpemVkLCB0aW1lIGlzIG5vdAorICAgICAgICAvLyAtIEFkZGl0aW9uIHVzZXMgbWlsbGlzIHdoaWNoIGFyZSBzdGlsbCAqbm93KgorICAgICAgICAvLworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggKSA7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoIDE5OTMsIENhbGVuZGFyLkpBTlVBUlksIDQgKSA7CisgICAgICAgICAgICBsb2dsbiggIjFBKSAiICsgdmFsdWUoIGNhbGVuZGFyICkgKSA7CisgICAgICAgICAgICBjYWxlbmRhci5hZGQoIENhbGVuZGFyLkRBVEUsIDEgKSA7CisgICAgICAgICAgICBTdHJpbmcgdiA9IHZhbHVlKGNhbGVuZGFyKTsKKyAgICAgICAgICAgIGxvZ2xuKCAiMUIpICIgKyB2ICk7CisgICAgICAgICAgICBsb2dsbiggIi0tKSAxOTkzLzAvNSIgKSA7CisgICAgICAgICAgICBpZiAoIXYuZXF1YWxzKEVYUEVDVEVEXzA2MTApKSBlcnJsbigiRXhwZWN0ZWQgIiArIEVYUEVDVEVEXzA2MTAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyB2KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vCisgICAgICAgIC8vIEVycm9yIGNhc2UgMjoKKyAgICAgICAgLy8gLSBVcG9uIGluaXRpYWxpemF0aW9uIGNhbGVuZGFyIGZpZWxkcyBzZXQsIG1pbGxpcyA9IDAKKyAgICAgICAgLy8gLSBBZGRpdGlvbiB1c2VzIG1pbGxpcyB3aGljaCBhcmUgc3RpbGwgMTk3MCwgMCwgMQorICAgICAgICAvLworCisgICAgICAgIHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCAxOTkzLCBDYWxlbmRhci5KQU5VQVJZLCA0ICkgOworICAgICAgICAgICAgbG9nbG4oICIyQSkgIiArIHZhbHVlKCBjYWxlbmRhciApICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjJCKSAiICsgdiApOworICAgICAgICAgICAgbG9nbG4oICItLSkgMTk5My8wLzUiICkgOworICAgICAgICAgICAgaWYgKCF2LmVxdWFscyhFWFBFQ1RFRF8wNjEwKSkgZXJybG4oIkV4cGVjdGVkICIgKyBFWFBFQ1RFRF8wNjEwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgdik7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDM6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMsIG1pbGxpcyA9IDAKKyAgICAgICAgLy8gLSBnZXRUaW1lKCApIGlzIGNhbGxlZCB3aGljaCBmb3JjZXMgdGhlIG1pbGxpcyB0byBiZSBzZXQKKyAgICAgICAgLy8gLSBBZGRpdGlvbiB1c2VzIG1pbGxpcyB3aGljaCBhcmUgY29ycmVjdAorICAgICAgICAvLworCisgICAgICAgIHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCAxOTkzLCBDYWxlbmRhci5KQU5VQVJZLCA0ICkgOworICAgICAgICAgICAgbG9nbG4oICIzQSkgIiArIHZhbHVlKCBjYWxlbmRhciApICkgOworICAgICAgICAgICAgY2FsZW5kYXIuZ2V0VGltZSggKSA7CisgICAgICAgICAgICBjYWxlbmRhci5hZGQoIENhbGVuZGFyLkRBVEUsIDEgKSA7CisgICAgICAgICAgICBTdHJpbmcgdiA9IHZhbHVlKGNhbGVuZGFyKTsKKyAgICAgICAgICAgIGxvZ2xuKCAiM0IpICIgKyB2ICkgOworICAgICAgICAgICAgbG9nbG4oICItLSkgMTk5My8wLzUiICkgOworICAgICAgICAgICAgaWYgKCF2LmVxdWFscyhFWFBFQ1RFRF8wNjEwKSkgZXJybG4oIkV4cGVjdGVkICIgKyBFWFBFQ1RFRF8wNjEwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgdik7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB2YWx1ZSggQ2FsZW5kYXIgY2FsZW5kYXIgKSB7CisgICAgICAgIHJldHVybiggY2FsZW5kYXIuZ2V0KCBDYWxlbmRhci5ZRUFSICkgICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoIENhbGVuZGFyLk1PTlRIICkgKyAiLyIgKworICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldCggQ2FsZW5kYXIuREFURSApICkgOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIEVYUEVDVEVEXzA2MTAgPSAiMTk5My8wLzUiOworCisgICAgLy8gVGVzdCB0aGF0IGNlcnRhaW4gZmllbGRzIG9uIGEgY2VydGFpbiBkYXRlIGFyZSBhcyBleHBlY3RlZC4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmllbGRzMDYwKCkgeworICAgICAgICBpbnQgeWVhciA9IDE5OTc7CisgICAgICAgIGludCBtb250aCA9IGphdmEudXRpbC5DYWxlbmRhci5PQ1RPQkVSOyAgLy9vY3RvYmVyCisgICAgICAgIGludCBkRGF0ZSA9IDIyOyAgIC8vREFZT0ZXRUVLIHNob3VsZCByZXR1cm4gMyBmb3IgV2VkbmVzZGF5CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbnVsbDsKKworICAgICAgICBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggeWVhciwgbW9udGgsIGREYXRlKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEVYUEVDVEVEX0ZJRUxEUy5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IGZpZWxkID0gRVhQRUNURURfRklFTERTW2krK107CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSBFWFBFQ1RFRF9GSUVMRFNbaSsrXTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoZmllbGQpICE9IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkICIgKyBmaWVsZCArICIgdG8gaGF2ZSB2YWx1ZSAiICsgZXhwZWN0ZWQgKworICAgICAgICAgICAgICAgICAgICAgICI7IHJlY2VpdmVkICIgKyBjYWxlbmRhci5nZXQoZmllbGQpICsgIiBpbnN0ZWFkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIGludCBFWFBFQ1RFRF9GSUVMRFNbXSA9IHsKKyAgICAgICAgQ2FsZW5kYXIuWUVBUiwgMTk5NywKKyAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLk9DVE9CRVIsCisgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjIsCisgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5XRURORVNEQVksCisgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCA0LAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMjk1CisgICAgfTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBmaWVsZHMgYXJlIGFzIGV4cGVjdGVkIChtb3N0bHkgemVybykgYXQgdGhlIGVwb2NoIHN0YXJ0LgorICAgIC8vIE5vdGUgdGhhdCB3ZSBhZGp1c3QgZm9yIHRoZSBkZWZhdWx0IHRpbWV6b25lIHRvIGdldCBtb3N0IHRoaW5ncyB0byB6ZXJvLgorICAgIHB1YmxpYyB2b2lkIFRlc3RFcG9jaFN0YXJ0RmllbGRzKCkgeworICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBDYWxlbmRhciBjID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoLXouZ2V0UmF3T2Zmc2V0KCkpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkKSkgeworICAgICAgICAgICAgbG9nbG4oIldhcm5pbmc6IFNraXBwaW5nIHRlc3QgYmVjYXVzZSAiICsgZCArCisgICAgICAgICAgICAgICAgICAiIGlzIGluIERTVC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGMuc2V0VGltZShkKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxDYWxlbmRhci5aT05FX09GRlNFVDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGMuZ2V0KGkpICE9IEVQT0NIX0ZJRUxEU1tpXSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkICIgKyBpICsgIiB0byBoYXZlIHZhbHVlICIgKyBFUE9DSF9GSUVMRFNbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIGMuZ2V0KGkpICsgIiBpbnN0ZWFkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICE9IHouZ2V0UmF3T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkIFpPTkVfT0ZGU0VUIHRvIGhhdmUgdmFsdWUgIiArIHouZ2V0UmF3T2Zmc2V0KCkgKworICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgYy5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsgIiBpbnN0ZWFkIik7CisgICAgICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgIT0gMCkKKyAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgZmllbGQgRFNUX09GRlNFVCB0byBoYXZlIHZhbHVlIDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIGMuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpICsgIiBpbnN0ZWFkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gVGhlc2UgYXJlIHRoZSBmaWVsZHMgYXQgdGhlIGVwb2NoIHN0YXJ0CisgICAgc3RhdGljIGludCBFUE9DSF9GSUVMRFNbXSA9IHsgMSwgMTk3MCwgMCwgMSwgMSwgMSwgMSwgNSwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgLTI4ODAwMDAwLCAwIH07CisKKyAgICAvLyBWZXJpZnkgdGhhdCBhcyB5b3UgYWRkIGRheXMgdG8gdGhlIGNhbGVuZGFyIChlLmcuLCAyNCBkYXkgcGVyaW9kcyksCisgICAgLy8gdGhlIGRheSBvZiB0aGUgd2VlayBzaGlmdHMgaW4gdGhlIGV4cGVjdGVkIHBhdHRlcm4uCisgICAgcHVibGljIHZvaWQgVGVzdERPV1Byb2dyZXNzaW9uKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPQorICAgICAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5NzIsIENhbGVuZGFyLk9DVE9CRVIsIDI2KTsKKyAgICAgICAgbWFyY2hCeURlbHRhKGNhbCwgMjQpOyAvLyBMYXN0IHBhcmFtZXRlciBtdXN0IGJlICE9IDAgbW9kdWxvIDcKKyAgICB9CisKKyAgICAvLyBTdXBwbHkgYSBkZWx0YSB3aGljaCBpcyBub3QgYSBtdWx0aXBsZSBvZiA3LgorICAgIHZvaWQgbWFyY2hCeURlbHRhKENhbGVuZGFyIGNhbCwgaW50IGRlbHRhKSB7CisgICAgICAgIENhbGVuZGFyIGN1ciA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgaW50IGluaXRpYWxET1cgPSBjdXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IERPVywgbmV3RE9XID0gaW5pdGlhbERPVzsKKyAgICAgICAgZG8geworICAgICAgICAgICAgRE9XID0gbmV3RE9XOworICAgICAgICAgICAgbG9nbG4oIkRPVyA9ICIgKyBET1cgKyAiICAiICsgY3VyLmdldFRpbWUoKSk7CisKKyAgICAgICAgICAgIGN1ci5hZGQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRlbHRhKTsKKyAgICAgICAgICAgIG5ld0RPVyA9IGN1ci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgaW50IGV4cGVjdGVkRE9XID0gMSArIChET1cgKyBkZWx0YSAtIDEpICUgNzsKKyAgICAgICAgICAgIGlmIChuZXdET1cgIT0gZXhwZWN0ZWRET1cpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGF5IG9mIHdlZWsgc2hvdWxkIGJlICIgKyBleHBlY3RlZERPVyArCisgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIG9mICIgKyBuZXdET1cgKyAiIG9uICIgKyBjdXIuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKG5ld0RPVyAhPSBpbml0aWFsRE9XKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWN0dWFsTWluTWF4KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk2NywgQ2FsZW5kYXIuTUFSQ0gsIDEwKTsKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDMpOworCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWluaW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IDEpCisgICAgICAgICAgICBlcnJsbigiQWN0dWFsIG1pbmltdW0gZGF0ZSBmb3IgMy8xMC8xOTY3IHNob3VsZCBoYXZlIGJlZW4gMTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IDMxKQorICAgICAgICAgICAgZXJybG4oIkFjdHVhbCBtYXhpbXVtIGRhdGUgZm9yIDMvMTAvMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDMxOyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5GRUJSVUFSWSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IDI4KQorICAgICAgICAgICAgZXJybG4oIkFjdHVhbCBtYXhpbXVtIGRhdGUgZm9yIDIvMTAvMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDI4OyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSAzNjUpCisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIGRheXMgaW4gMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDM2NTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1lFQVIpKTsKKworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5NjgpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAyOSkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAyLzEwLzE5Njggc2hvdWxkIGhhdmUgYmVlbiAyOTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMzY2KQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiBkYXlzIGluIDE5Njggc2hvdWxkIGhhdmUgYmVlbiAzNjY7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgICAgICAgIC8vIFVzaW5nIHdlZWsgc2V0dGluZ3Mgb2YgU1VOREFZLzMgKHNlZSBhYm92ZSkKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikgIT0gNTIpCisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHdlZWtzIGluIDE5Njggc2hvdWxkIGhhdmUgYmVlbiA1MjsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTc2KTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkpOyAvLyBBZGRlZCAtIExpdSAxMS82LzAwCisgICAgICAgIC8vIFVzaW5nIHdlZWsgc2V0dGluZ3Mgb2YgU1VOREFZLzMgKHNlZSBhYm92ZSkKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikgIT0gNTMpCisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHdlZWtzIGluIDE5NzYgc2hvdWxkIGhhdmUgYmVlbiA1MzsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJvbGwoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCBDYWxlbmRhci5KQU5VQVJZLCAzMSk7CisKKyAgICAgICAgaW50W10gZGF5VmFsdWVzID0geyAzMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRheVZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgIGNhbDIucm9sbChDYWxlbmRhci5NT05USCwgaSk7CisgICAgICAgICAgICBpZiAoY2FsMi5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSBkYXlWYWx1ZXNbaV0pCisgICAgICAgICAgICAgICAgZXJybG4oIlJvbGxpbmcgdGhlIG1vbnRoIGluIDEvMzEvMTk5NyB1cCBieSAiICsgaSArICIgc2hvdWxkIGhhdmUgeWllbGRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyAoKGkgKyAxKSAlIDEyKSArICIvIiArIGRheVZhbHVlc1tpXSArICIvMTk5NywgYnV0IGFjdHVhbGx5IHlpZWxkZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgKChpICsgMSkgJSAxMikgKyAiLyIgKyBjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsgIi8xOTk3LiIpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLnNldCgxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworCisgICAgICAgIC8vaW50W10gbW9udGhWYWx1ZXMgPSB7IDEsIDIsIDIsIDIsIDEsIDIsIDIsIDIsIDEsIDIgfTsKKyAgICAgICAgLy9pbnRbXSBkYXlWYWx1ZXMyID0geyAyOSwgMSwgMSwgMSwgMjksIDEsIDEsIDEsIDI5LCAxIH07CisKKyAgICAgICAgLy8gSSd2ZSByZXZpc2VkIHRoZSBleHBlY3RlZCB2YWx1ZXMgdG8gbWFrZSBtb3JlIHNlbnNlIC0tIHJvbGxpbmcKKyAgICAgICAgLy8gdGhlIHllYXIgc2hvdWxkIHBpbiB0aGUgREFZX09GX01PTlRILiAtIExpdSAxMS82LzAwCisgICAgICAgIGludFtdIG1vbnRoVmFsdWVzID0geyAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxIH07CisgICAgICAgIGludFtdIGRheVZhbHVlczIgPSB7IDI5LCAyOCwgMjgsIDI4LCAyOSwgMjgsIDI4LCAyOCwgMjksIDI4IH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlWYWx1ZXMyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwyID0gKENhbGVuZGFyKWNhbC5jbG9uZSgpOworICAgICAgICAgICAgY2FsMi5yb2xsKENhbGVuZGFyLllFQVIsIGkpOworICAgICAgICAgICAgaWYgKGNhbDIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gZGF5VmFsdWVzMltpXSB8fCBjYWwyLmdldChDYWxlbmRhci5NT05USCkKKyAgICAgICAgICAgICAgICAhPSBtb250aFZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiUm9sbCAyLzI5LzE5OTYgYnkgIiArIGkgKyAiIHllYXI6IGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICArIChtb250aFZhbHVlc1tpXSArIDEpICsgIi8iICsgZGF5VmFsdWVzMltpXSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICsgKDE5OTYgKyBpKSArICIsIGdvdCAiCisgICAgICAgICAgICAgICAgICAgICAgKyAoY2FsMi5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgKyAiLyIgKyBjYWwyLmdldChDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHJvbGxpbmcgaG91ciBvZiBkYXkKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVJfT0ZfREFZLCAtMik7CisgICAgICAgIGludCBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChmICE9IDIyKSBlcnJsbigiUm9sbGluZyBIT1VSX09GX0RBWT0wIGRlbHRhPS0yIGdhdmUgIiArIGYgKyAiIFdhbnRlZCAyMiIpOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSX09GX0RBWSwgNSk7CisgICAgICAgIGYgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgaWYgKGYgIT0gMykgZXJybG4oIlJvbGxpbmcgSE9VUl9PRl9EQVk9MjIgZGVsdGE9NSBnYXZlICIgKyBmICsgIiBXYW50ZWQgMyIpOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSX09GX0RBWSwgMjEpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChmICE9IDApIGVycmxuKCJSb2xsaW5nIEhPVVJfT0ZfREFZPTMgZGVsdGE9MjEgZ2F2ZSAiICsgZiArICIgV2FudGVkIDAiKTsKKworICAgICAgICAvLyBUZXN0IHJvbGxpbmcgaG91cgorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAwKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgLTIpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMTApIGVycmxuKCJSb2xsaW5nIEhPVVI9MCBkZWx0YT0tMiBnYXZlICIgKyBmICsgIiBXYW50ZWQgMTAiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgNSk7CisgICAgICAgIGYgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpOworICAgICAgICBpZiAoZiAhPSAzKSBlcnJsbigiUm9sbGluZyBIT1VSPTEwIGRlbHRhPTUgZ2F2ZSAiICsgZiArICIgV2FudGVkIDMiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgOSk7CisgICAgICAgIGYgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpOworICAgICAgICBpZiAoZiAhPSAwKSBlcnJsbigiUm9sbGluZyBIT1VSPTMgZGVsdGE9OSBnYXZlICIgKyBmICsgIiBXYW50ZWQgMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wdXRlSnVsaWFuRGF5NDQwNigpIHsKKyAgICAgICAgLy8gamI0NDA2IGlzIHByb2JhYmx5IG5vdCBhIGJ1ZywgdGhpcyBpcyB0byBkb2N1bWVudCB0aGUgYmVoYXZpb3IKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGZpbmFsIGludCBNSUxMSVNfSU5fREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJqdWxpYW4gZGF5IHZhbHVlIGp1bXBzIGF0IGNoYW5nZW92ZXIiKTsKKyAgICAgICAgZm9yIChpbnQgZGF5ID0gMTI7IGRheSA8IDE4OyArK2RheSkgeworICAgICAgICAgICAgY2FsLnNldCgxNTgyLCA5LCBkYXkpOworICAgICAgICAgICAgbG9nbG4oIlsiICsgZGF5ICsgIl0gIiArIChjYWwuZ2V0VGltZUluTWlsbGlzKCkvTUlMTElTX0lOX0RBWSkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlxuanVsaWFuIGRheXMgbm90IGFjY3VyYXRlIGJlZm9yZSAxIE1hcmNoIDAwMDQiKTsKKyAgICAgICAgZm9yIChpbnQgZGF5ID0gMTsgZGF5IDwgMzsgKytkYXkpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoMSwgMCwgZGF5KTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGRheSArICJdICIgKyAoY2FsLmdldFRpbWVJbk1pbGxpcygpL01JTExJU19JTl9EQVkpKTsKKyAgICAgICAgfQorCisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgMCwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisKKyAgICAgICAgbG9nbG4oIlxuc3dpdGNob3ZlciBpbiAxNTgyIik7CisgICAgICAgIGNhbC5zZXQoMTU4MiwgOSwgNCk7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSlVMSUFOX0RBWSwgMTcyMTQyNik7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisKKyAgICAgICAgbG9nbG4oIlxubGF0ZSBzd2l0Y2hvdmVyIC0gcHJvbGVwdGljIEp1bGlhbiIpOworICAgICAgICBjYWwuc2V0KDE1ODIsIDksIDQpOworICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSlVMSUFOX0RBWSwgMTcyMTQyNik7CisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsKSk7CisKKyAgICAgICAgbG9nbG4oIlxuZWFybHkgc3dpdGNob3ZlciAtIHByb2xlcHRpYyBHcmVnb3JpYW4iKTsKKyAgICAgICAgY2FsLnNldCgxNTgyLCA5LCA0KTsKKyAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkpVTElBTl9EQVksIDE3MjE0MjYpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db3B0aWNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29wdGljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZGM4NjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29wdGljVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzEyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBDb3B0aWNUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IAoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29wdGljVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogQ29uc3RhbnRzIHRvIHNhdmUgdHlwaW5nLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPVVQgICAgICA9IENvcHRpY0NhbGVuZGFyLlRPVVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFCQSAgICAgID0gQ29wdGljQ2FsZW5kYXIuQkFCQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQVRPUiAgICAgPSBDb3B0aWNDYWxlbmRhci5IQVRPUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSUFISyAgICAgPSBDb3B0aWNDYWxlbmRhci5LSUFISzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT0JBICAgICAgPSBDb3B0aWNDYWxlbmRhci5UT0JBOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFNU0hJUiAgICA9IENvcHRpY0NhbGVuZGFyLkFNU0hJUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVJBTUhBVCAgPSBDb3B0aWNDYWxlbmRhci5CQVJBTUhBVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVJBTU9VREEgPSBDb3B0aWNDYWxlbmRhci5CQVJBTU9VREE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFTSEFOUyAgID0gQ29wdGljQ2FsZW5kYXIuQkFTSEFOUzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQU9OQSAgICAgPSBDb3B0aWNDYWxlbmRhci5QQU9OQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUEVQICAgICAgPSBDb3B0aWNDYWxlbmRhci5FUEVQOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FU1JBICAgICA9IENvcHRpY0NhbGVuZGFyLk1FU1JBOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BU0lFICAgICA9IENvcHRpY0NhbGVuZGFyLk5BU0lFOworCisgICAgLyogVGVzdCBkYXRlcyBmcm9tOgorICAgICAqICJUaGUgQW1oYXJpYyBMZXR0ZXJzIG9mIEVtcGVyb3IgVGhlb2RvcmUgb2YgRXRoaW9waWEgdG8gUXVlZW4gVmljdG9yaWEgYW5kCisgICAgICogSGVyIFNwZWNpYWwgRW52b3kiLCBEYXZpZCBBcHBsZXlhcmQsIEdpcm1hIFNlbGFzc2UgQXNmYXcsIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCAKKyAgICAgKiBKdW5lIDEgMTk3OSwgSVNCTjogMDg1NjcyNjYwNSwgTG9uZ3dvb2QgUHIgTHRkCisgICAgICogIAorICAgICAqIENvcHRpYyAgICAgICAgIEdyZWdvcmlhbiAgICBKRAorICAgICAqIDIwLzAyLzE1NzkgICAgIDI5LzEwLzE4NjIgIDI0MDE0NDMgCisgICAgICogMjkvMTAvMTU4MSAgICAgMDUvMDcvMTg2NSAgMjQwMjQyMworICAgICAqIDIyLzA1LzE1ODIgICAgIDI5LzAxLzE4NjYgIDI0MDI2MzEKKyAgICAgKiAxMC8wOC8xNTgyICAgICAxNy8wNC8xODY2ICAyNDAyNzA5CisgICAgICogMjgvMDQvMTU4MyAgICAgMDUvMDEvMTg2NyAgMjQwMjk3MgorICAgICAqIDA1LzA1LzE1ODQgICAgIDEzLzAxLzE4NjggIDI0MDMzNDUKKyAgICAgKiAKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqIAorICAgICAqIEZyb20gdGhlIENhbGVuZHJpY2EgYXBwbGV0OiAgaHR0cDovL2Vtci5jcy5paXQuZWR1L2hvbWUvcmVpbmdvbGQvY2FsZW5kYXItYm9vay9DYWxlbmRyaWNhLmh0bWwKKyAgICAgKiAKKyAgICAgKiBDb3B0aWMgICAgICAgICBHcmVnb3JpYW4gICAgSkQKKyAgICAgKiAwNy8wNS8tMjg0ICAgICAwMS8wMS8wMDAwICAxNzIxMDYwCisgICAgICogMDgvMDUvLTI4MyAgICAgMDEvMDEvMDAwMSAgMTcyMTQyNgorICAgICAqIDA2LzEzLy0xICAgICAgIDI5LzA4LzAyODMgIDE4MjQ2NjQKKyAgICAgKiAKKyAgICAgKiAwMS8wMS8wMDAwICAgICAzMC8wOC8wMjgzICAxODI0NjY1CisgICAgICogMDEvMDEvMDAwMSAgICAgMjkvMDgvMDI4NCAgMTgyNTAzMAorICAgICAqIDAxLzAxLzAwMDIgICAgIDI5LzA4LzAyODUgIDE4MjUzOTUKKyAgICAgKiAwMS8wMS8wMDAzICAgICAyOS8wOC8wMjg2ICAxODI1NzYwCisgICAgICogMDEvMDEvMDAwNCAgICAgMzAvMDgvMDI4NyAgMTgyNjEyNgorICAgICAqIDA1LzEzLzAwMDAgICAgIDI4LzA4LzAyODQgIDE4MjUwMjkgCisgICAgICogMDUvMTMvMDAwMSAgICAgMjgvMDgvMDI4NSAgMTgyNTM5NAorICAgICAqIDA1LzEzLzAwMDIgICAgIDI4LzA4LzAyODYgIDE4MjU3NTkKKyAgICAgKiAwNS8xMy8wMDAzICAgICAyOC8wOC8wMjg3ICAxODI2MTI0CisgICAgICogMDYvMTMvMDAwMyAgICAgMjkvMDgvMDI4NyAgMTgyNjEyNSAgZmlyc3QgY29wdGljIGxlYXAgeWVhcgorICAgICAqIDA1LzEzLzAwMDQgICAgIDI4LzA4LzAyODggIDE4MjY0OTAKKyAgICAgKiAKKyAgICAgKiAwNi8wMi8xMjk5ICAgICAxMy8xMC8xNTgyICAyMjk5MTU5CisgICAgICogMDcvMDIvMTI5OSAgICAgMTQvMTAvMTU4MiAgMjI5OTE2MCAgSnVsaWFuIDA0LzEwLzE1ODIKKyAgICAgKiAwOC8wMi8xMjk5ICAgICAxNS8xMC8xNTgyICAyMjk5MTYxCisgICAgICogMDkvMDIvMTI5OSAgICAgMTYvMTAvMTU4MiAgMjI5OTE2MgorICAgICAqIAorICAgICAqIDIzLzA0LzE2MTYgICAgIDAxLzAxLzE5MDAgIDI0MTUwMjEKKyAgICAgKiAyMy8wNC8xNzIxICAgICAwMS8wMS8yMDA1ICAyNDUzMzcyIAorICAgICAqIDA1LzEzLzIwMDAgICAgIDEyLzA5LzIyODQgIDI1NTU1MjkKKyAgICAgKi8KKworICAgIAorICAgIC8qKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEgaW4gdGhlIGNpdmlsIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlcygpCisgICAgeworICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RzID0geworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFRoZSBtb250aHMgaW4gdGhpcyB0YWJsZSBhcmUgMS1iYXNlZCByYXRoZXIgdGhhbiAwLWJhc2VkLAorICAgICAgICAgICAgLy8gYmVjYXVzZSBpdCdzIGVhc2llciB0byBlZGl0IHRoYXQgd2F5LgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgQ29wdGljCisgICAgICAgICAgICAvLyAgICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRGF0ZXMgZnJvbSAiRW1wb3JlciBUaGVvZG9yZS4uLiIKKworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDE0NDIuNSwgIDEsICAxNTc5LCAgICAyLCAgMjAsICBXRUQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjAvMTAvMTg2MgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI0MjIuNSwgIDEsICAxNTgxLCAgIDEwLCAgMjksICBXRUQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDUvMDcvMTg2NQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI2MzAuNSwgIDEsICAxNTgyLCAgICA1LCAgMjIsICBNT04sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDEvMTg2NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI3MDguNSwgIDEsICAxNTgyLCAgICA4LCAgMTAsICBUVUUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTcvMDQvMTg2NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI5NzEuNSwgIDEsICAxNTgzLCAgICA0LCAgMjgsICBTQVQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDUvMDEvMTg2NworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDMzNDQuNSwgIDEsICAxNTg0LCAgICA1LCAgIDUsICBNT04sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMDEvMTg2OAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjEwNTkuNSwgIDAsICAtMjg0LCAgICA1LCAgIDcsICBTQVQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMDAwMAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjE0MjUuNSwgIDAsICAtMjgzLCAgICA1LCAgIDgsICBNT04sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMDAwMQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjQ2NjMuNSwgIDAsICAgIC0xLCAgIDEzLCAgIDYsICBXRUQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDgvMDI4MworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjQ2NjQuNSwgIDEsICAgICAwLCAgICAxLCAgIDEsICBUSFUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMzAvMDgvMDI4MworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjUwMjkuNSwgIDEsICAgICAxLCAgICAxLCAgIDEsICBGUkksICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDgvMDI4NAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjUzOTQuNSwgIDEsICAgICAyLCAgICAxLCAgIDEsICBTQVQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDgvMDI4NQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjU3NTkuNSwgIDEsICAgICAzLCAgICAxLCAgIDEsICBTVU4sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDgvMDI4NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjYxMjUuNSwgIDEsICAgICA0LCAgICAxLCAgIDEsICBUVUUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMzAvMDgvMDI4NworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjUwMjguNSwgIDEsICAgICAwLCAgIDEzLCAgIDUsICBUSFUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4NAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjUzOTMuNSwgIDEsICAgICAxLCAgIDEzLCAgIDUsICBGUkksICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4NQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjU3NTguNSwgIDEsICAgICAyLCAgIDEzLCAgIDUsICBTQVQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjYxMjMuNSwgIDEsICAgICAzLCAgIDEzLCAgIDUsICBTVU4sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4NworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjYxMjQuNSwgIDEsICAgICAzLCAgIDEzLCAgIDYsICBNT04sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDgvMDI4NworICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhYm92ZSBpcyBmaXJzdCBjb3B0aWMgbGVhcCB5ZWFyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTgyNjQ4OS41LCAgMSwgICAgIDQsICAgMTMsICAgNSwgIFRVRSwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyOC8wOC8wMjg4CisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE1OC41LCAgMSwgIDEyOTksICAgIDIsICAgNiwgIFdFRCwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxMy8xMC8xNTgyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE1OS41LCAgMSwgIDEyOTksICAgIDIsICAgNywgIFRIVSwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNC8xMC8xNTgyCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTYwLjUsICAxLCAgMTI5OSwgICAgMiwgICA4LCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE1LzEwLzE1ODIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTYxLjUsICAxLCAgMTI5OSwgICAgMiwgICA5LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE2LzEwLzE1ODIKKworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MTUwMjAuNSwgIDEsICAxNjE2LCAgICA0LCAgMjMsICBNT04sICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMTkwMAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTMzNzEuNSwgIDEsICAxNzIxLCAgICA0LCAgMjMsICBTQVQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMjAwNQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI1NTU1MjguNSwgIDEsICAyMDAwLCAgIDEzLCAgIDUsICBGUkksICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTIvMDkvMjI4NAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgQ29wdGljQ2FsZW5kYXIgdGVzdENhbGVuZGFyID0gbmV3IENvcHRpY0NhbGVuZGFyKCk7CisgICAgICAgIHRlc3RDYWxlbmRhci5zZXRMZW5pZW50KHRydWUpOworICAgICAgICBkb1Rlc3RDYXNlcyh0ZXN0cywgdGVzdENhbGVuZGFyKTsKKyAgICB9CisKKyAgICAvLyBiYXNpYyBzYW5pdHkgY2hlY2sgdGhhdCB0aGUgY29udmVyc2lvbiBhbGdvcml0aG0gcm91bmQtdHJpcHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29wdGljVG9KRCgpIHsKKyAgICAgICAgZm9yIChpbnQgeSA9IC0yOyB5IDwgMzsgKyt5KSB7CisgICAgICAgICAgICBmb3IgKGludCBtID0gMDsgbSA8IDEyOyArK20pIHsgLy8gZG9uJ3QgdW5kZXJzdGFuZCBydWxlcyBmb3IgMTN0aCBtb250aAorICAgICAgICAgICAgICAgIGZvciAoaW50IGQgPSAxOyBkIDwgMjU7IGQgKz0gMykgeyAvLyBwbGF5IGl0IHNhZmUgb24gZGF5cyBwZXIgbW9udGgKKyAgICAgICAgICAgICAgICAgICAgaW50IGpkID0gQ29wdGljQ2FsZW5kYXIuY29wdGljVG9KRCh5LCBtLCBkKTsKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlcltdIHJlcyA9IENvcHRpY0NhbGVuZGFyLmdldERhdGVGcm9tSkQoamQpOworICAgICAgICAgICAgICAgICAgICBpZiAoISh5ID09IHJlc1swXS5pbnRWYWx1ZSgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0gPT0gcmVzWzFdLmludFZhbHVlKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9PSByZXNbMl0uaW50VmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ5OiAiICsgeSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG06ICIgKyBtICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGQ6ICIgKyBkICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiBqZDogIiArIGpkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgLS0+IHk6ICIgKyByZXNbMF0uaW50VmFsdWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG06ICIgKyByZXNbMV0uaW50VmFsdWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGQ6ICIgKyByZXNbMl0uaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBiYXNpYyBjaGVjayB0byBzZWUgdGhhdCB3ZSBwcmludCBvdXQgZXJhcyBvaworICAgIC8vIGV2ZW50dWFsbHkgc2hvdWxkIG1vZGlmeSB0byB1c2UgbG9jYWxlIHN0cmluZ3MgYW5kIGZvcm1hdHRlciBhcHByb3ByaWF0ZSB0byBjb3B0aWMgY2FsZW5kYXIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXJhU3RhcnQoKSB7CisgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcigwLCAwLCAxKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCwgeXl5eSBHRyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkNvcHRpYyBEYXRlIiwgIlRodSBKYW4gMDEsIDAwMDAgQUQiLCBmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkdyZWdvcmlhbiBEYXRlIiwgIlRodSBBdWcgMzAsIDAyODMgQUQiLCBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMDAwLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxMDAwLzAvMzAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSk7IAorICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihVTG9jYWxlKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUsIExvY2FsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSwgTG9jYWxlIik7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLCBVTG9jYWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUsIFVMb2NhbGUiKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKERhdGUpCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoMTk5NywgQ29wdGljQ2FsZW5kYXIuVE9VVCwgMSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoMTk5NywgQ29wdGljQ2FsZW5kYXIuVE9VVCwgMSwgMSwgMSwgMSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUsaG91cixtaW51dGUsc2Vjb25kIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZGF0YQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKDE5OTcsIENvcHRpY0NhbGVuZGFyLlRPVVQsIDEpOworICAgICAgICAgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworICAgICAgICAgICAgICAgICJhbV9FVCIsICJnZXpfRVQiLCAidGlfRVQiCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworICAgICAgICAgICAgICAgICJlbiIsICJhbSIsICJhbV9FVCIsICJnZXoiLCAidGkiCisgICAgICAgICAgICB9OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgICAgICAgICBMb2NhbGUgY2FsTG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShjYWxMb2NOYW1lKTsKKyAgICAgICAgICAgICAgICBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoY2FsTG9jYWxlKTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0WWVhcigpIHsKKyAgICAgICAgLy8gR3JlZ29yaWFuIENhbGVuZGFyCisgICAgICAgIENhbGVuZGFyIGdDYWw9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBEYXRlIGdUb2RheT1nQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgZ0NhbC5hZGQoR3JlZ29yaWFuQ2FsZW5kYXIuTU9OVEgsMik7CisgICAgICAgIERhdGUgZ0Z1dHVyZT1nQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBnREYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShnQ2FsLERhdGVGb3JtYXQuRlVMTCk7CisgICAgICAgIGxvZ2xuKCJncmVnb3JpYW4gY2FsZW5kYXI6ICIgKyBnREYuZm9ybWF0KGdUb2RheSkgKworICAgICAgICAgICAgICAiICsgMiBtb250aHMgPSAiICsgZ0RGLmZvcm1hdChnRnV0dXJlKSk7CisKKyAgICAgICAgLy8gQ29wdGljIENhbGVuZGFyCisgICAgICAgIENvcHRpY0NhbGVuZGFyIGNDYWw9IG5ldyBDb3B0aWNDYWxlbmRhcigpOworICAgICAgICBEYXRlIGNUb2RheT1jQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgY0NhbC5hZGQoQ29wdGljQ2FsZW5kYXIuTU9OVEgsMik7CisgICAgICAgIERhdGUgY0Z1dHVyZT1jQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBjREYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjQ2FsLERhdGVGb3JtYXQuRlVMTCk7CisgICAgICAgIGxvZ2xuKCJjb3B0aWMgY2FsZW5kYXI6ICIgKyBjREYuZm9ybWF0KGNUb2RheSkgKworICAgICAgICAgICAgICAiICsgMiBtb250aHMgPSAiICsgY0RGLmZvcm1hdChjRnV0dXJlKSk7CisKKyAgICAgICAgLy8gRXRoaW9waWNDYWxlbmRhcgorICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGVDYWw9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKCk7CisgICAgICAgIERhdGUgZVRvZGF5PWVDYWwuZ2V0VGltZSgpOworICAgICAgICBlQ2FsLmFkZChFdGhpb3BpY0NhbGVuZGFyLk1PTlRILDIpOyAvLyBhZGQgMiBtb250aHMKKyAgICAgICAgZUNhbC5zZXRBbWV0ZUFsZW1FcmEoZmFsc2UpOworICAgICAgICBEYXRlIGVGdXR1cmU9ZUNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgZURGID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZUNhbCxEYXRlRm9ybWF0LkZVTEwpOworICAgICAgICBsb2dsbigiZXRoaW9waWMgY2FsZW5kYXI6ICIgKyBlREYuZm9ybWF0KGVUb2RheSkgKworICAgICAgICAgICAgICAiICsgMiBtb250aHMgPSAiICsgZURGLmZvcm1hdChlRnV0dXJlKSk7CQkKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvRXRoaW9waWNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvRXRoaW9waWNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRlNTYzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9FdGhpb3BpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDM0NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgRXRoaW9waWNUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IAoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRXRoaW9waWNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKiBDb25zdGFudHMgdG8gc2F2ZSB0eXBpbmcuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVTS0VSRU0gPSBFdGhpb3BpY0NhbGVuZGFyLk1FU0tFUkVNOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFS0VNVCAgID0gRXRoaW9waWNDYWxlbmRhci5URUtFTVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVEQVIgICAgPSBFdGhpb3BpY0NhbGVuZGFyLkhFREFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBSFNBUyAgID0gRXRoaW9waWNDYWxlbmRhci5UQUhTQVM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVSICAgICAgPSBFdGhpb3BpY0NhbGVuZGFyLlRFUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUtBVElUICA9IEV0aGlvcGljQ2FsZW5kYXIuWUVLQVRJVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRUdBQklUICA9IEV0aGlvcGljQ2FsZW5kYXIuTUVHQUJJVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUFaSUEgICA9IEV0aGlvcGljQ2FsZW5kYXIuTUlBWklBOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkJPVCAgID0gRXRoaW9waWNDYWxlbmRhci5HRU5CT1Q7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VORSAgICAgPSBFdGhpb3BpY0NhbGVuZGFyLlNFTkU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFNTEUgICAgPSBFdGhpb3BpY0NhbGVuZGFyLkhBTUxFOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FSEFTU0UgID0gRXRoaW9waWNDYWxlbmRhci5ORUhBU1NFOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBR1VNRU4gID0gRXRoaW9waWNDYWxlbmRhci5QQUdVTUVOOworCisgICAgLyogRFlbMjAwNTA1MDddICBJIGRvbid0IGtub3cgd2hhdCB0aGlzIGlzIGZvciB5ZXQ6IAorICAgICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgcm9sbCBieSAgICAgICAgICBvdXRwdXQKKyAgICAgICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAKKyAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIG5vbi1sZWFwIHllYXJzCisgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICAwMDAxLCBNVUhBUlJBTSwgIDIgfSwKKyAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAtMSwgICAgIDAwMDEsIFNIQVdXQUwsICAgMiB9LAorICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAgMiwgICAgIE1PTlRILCAgMTMsICAgICAwMDAxLCBTQUZBUiwgICAgIDIgfSwKKworICAgICAgIHsgICAwMDAxLCBISUpKQUgsICAgIDEsICAgICBEQVRFLCAgIDMwLCAgICAgMDAwMSwgSElKSkFILCAgICAyIH0sICAgLy8gMjktZGF5IG1vbnRoCisgICAgICAgeyAgIDAwMDIsIEhJSkpBSCwgICAgMSwgICAgIERBVEUsICAgMzEsICAgICAwMDAyLCBISUpKQUgsICAgIDIgfSwgICAvLyAzMC1kYXkgbW9udGgKKworICAgICAgIC8vIFRyeSBzb21lIHJvbGxzIHRoYXQgcmVxdWlyZSBvdGhlciBmaWVsZHMgdG8gYmUgYWRqdXN0ZWQKKyAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sIDMwLCAgICAgTU9OVEgsICAgMSwgICAgIDAwMDEsIFNBRkFSLCAgICAyOSB9LAorICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgMDAwMSwgSElKSkFILCAgIDI5IH0sCisgICAgICAgfTsKKyAgICAgICAKKyAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ld0NpdmlsKCk7CisKKyAgICAgICBkb1JvbGxBZGQoUk9MTCwgY2FsLCB0ZXN0cyk7CisgICAgICAgfQorICAgICovCisKKyAgICAvKiBUZXN0IGRhdGVzIGZyb206CisgICAgICogIlRoZSBBbWhhcmljIExldHRlcnMgb2YgRW1wZXJvciBUaGVvZG9yZSBvZiBFdGhpb3BpYSB0byBRdWVlbiBWaWN0b3JpYSBhbmQKKyAgICAgKiBIZXIgU3BlY2lhbCBFbnZveSIsIERhdmlkIEFwcGxleWFyZCwgR2lybWEgU2VsYXNzZSBBc2ZhdywgT3hmb3JkIFVuaXZlcnNpdHkgUHJlc3MsIAorICAgICAqIEp1bmUgMSAxOTc5LCBJU0JOOiAwODU2NzI2NjA1LCBMb25nd29vZCBQciBMdGQKKyAgICAgKiAgCisgICAgICogRXRoaW9waWMgICAgICAgR3JlZ29yaWFuICAgIEpECisgICAgICogMjAvMDIvMTg1NSAgICAgMjkvMTAvMTg2MiAgMjQwMTQ0MworICAgICAqIDI5LzEwLzE4NTcgICAgIDA1LzA3LzE4NjUgIDI0MDI0MjMKKyAgICAgKiAyMi8wNS8xODU4ICAgICAyOS8wMS8xODY2ICAyNDAyNjMxCisgICAgICogMTAvMDgvMTg1OCAgICAgMTcvMDQvMTg2NiAgMjQwMjcwOQorICAgICAqIDI4LzA0LzE4NTkgICAgIDA1LzAxLzE4NjcgIDI0MDI5NzIKKyAgICAgKiAwNS8wNS8xODYwICAgICAxMy8wMS8xODY4ICAyNDAzMzQ1CisgICAgICogCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAKKyAgICAgKiBGcm9tIHRoZSBDYWxlbmRyaWNhIGFwcGxldDogIGh0dHA6Ly9lbXIuY3MuaWl0LmVkdS9ob21lL3JlaW5nb2xkL2NhbGVuZGFyLWJvb2svQ2FsZW5kcmljYS5odG1sCisgICAgICogCisgICAgICogRXRoaW9waWMgICAgICAgR3JlZ29yaWFuICAgIEpECisgICAgICogMDcvMDUvLTggICAgICAgMDEvMDEvMDAwMCAgMTcyMTA2MAorICAgICAqIDA4LzA1Ly03ICAgICAgIDAxLzAxLzAwMDEgIDE3MjE0MjYKKyAgICAgKiAwNi8xMy8tMSAgICAgICAyNy8wOC8wMDA3ICAxNzIzODU1CisgICAgICogCisgICAgICogMDEvMDEvMDAwMCAgICAgMjgvMDgvMDAwNyAgMTcyMzg1NgorICAgICAqIDAxLzAxLzAwMDEgICAgIDI3LzA4LzAwMDggIDE3MjQyMjEKKyAgICAgKiAwMS8wMS8wMDAyICAgICAyNy8wOC8wMDA5ICAxNzI0NTg2CisgICAgICogMDEvMDEvMDAwMyAgICAgMjcvMDgvMDAxMCAgMTcyNDk1MQorICAgICAqIDAxLzAxLzAwMDQgICAgIDI4LzA4LzAwMTEgIDE3MjQ1MzcKKyAgICAgKiAwNS8xMy8wMDAwICAgICAyNi8wOC8wMDA4ICAxNzI0MjIwCisgICAgICogMDUvMTMvMDAwMSAgICAgMjYvMDgvMDAwOSAgMTcyNDU4NQorICAgICAqIDA1LzEzLzAwMDIgICAgIDI2LzA4LzAwMTAgIDE3MjQ5NTAKKyAgICAgKiAwNS8xMy8wMDAzICAgICAyNi8wOC8wMDExICAxNzI1MzE1CisgICAgICogMDYvMTMvMDAwMyAgICAgMjcvMDgvMDAxMSAgMTcyNTMxNiAgZmlyc3QgZXRoaW9waWFuIGxlYXAgeWVhcgorICAgICAqIDA1LzEzLzAwMDQgICAgIDI2LzA4LzAwMTIgIDE3MjU1NjEKKyAgICAgKiAKKyAgICAgKiAwNi8wMi8xNTc1ICAgICAxMy8xMC8xNTgyICAyMjk5MTU5CisgICAgICogMDcvMDIvMTU3NSAgICAgMTQvMTAvMTU4MiAgMjI5OTE2MCAgSnVsaWFuIDA0LzEwLzE1ODIKKyAgICAgKiAwOC8wMi8xNTc1ICAgICAxNS8xMC8xNTgyICAyMjk5MTYxCisgICAgICogMDkvMDIvMTU3NSAgICAgMTYvMTAvMTU4MiAgMjI5OTE2MgorICAgICAqIAorICAgICAqIDIzLzA0LzE4OTIgICAgIDAxLzAxLzE5MDAgIDI0MTUwMjEKKyAgICAgKiAyMy8wNC8xOTk3ICAgICAwMS8wMS8yMDA1ICAyNDUzMzcyCisgICAgICogMDUvMTMvMjAwMCAgICAgMTAvMDkvMjAwOCAgMjQ1NDcyMAorICAgICAqLworICAgIAorICAgIC8qKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEgaW4gdGhlIGNpdmlsIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlcygpCisgICAgeworICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RzID0geworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFRoZSBtb250aHMgaW4gdGhpcyB0YWJsZSBhcmUgMS1iYXNlZCByYXRoZXIgdGhhbiAwLWJhc2VkLAorICAgICAgICAgICAgLy8gYmVjYXVzZSBpdCdzIGVhc2llciB0byBlZGl0IHRoYXQgd2F5LgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgRXRoaW9waWMKKyAgICAgICAgICAgIC8vICAgICAgICAgIEp1bGlhbiBEYXkgIEVyYSAgWWVhciAgTW9udGggRGF5ICBXa0RheSBIb3VyIE1pbiBTZWMKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBEYXRlcyBmcm9tICJFbXBvcmVyIFRoZW9kb3JlLi4uIgorCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMTQ0Mi41LCAgMSwgIDE4NTUsICAgIDIsICAyMCwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzEwLzE4NjIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNDIyLjUsICAxLCAgMTg1NywgICAxMCwgIDI5LCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDUvMDcvMTg2NQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI2MzAuNSwgIDEsICAxODU4LCAgICA1LCAgMjIsICBNT04sICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyOS8wMS8xODY2CisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMjcwOC41LCAgMSwgIDE4NTgsICAgIDgsICAxMCwgIFRVRSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE3LzA0LzE4NjYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyOTcxLjUsICAxLCAgMTg1OSwgICAgNCwgIDI4LCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDUvMDEvMTg2NworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDMzNDQuNSwgIDEsICAxODYwLCAgICA1LCAgIDUsICBNT04sICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxMy8wMS8xODY4CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1pc2NlbGxhbmVvdXM6CisgICAgICAgICAgICAvKiBTa2lwIHRoZXNlIHRlc3RzIHVudGlsIEpEIGJ1ZyBmaXhlZCBpbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyOgorICAgICAgICAgICAgICogaHR0cDovL3d3dy5qdGNzdi5jb20vY2dpYmluL2ljdS1idWdzL2luY29taW5nP2lkPTQ0MDY7cGFnZT0yO3VzZXI9Z3Vlc3QKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxMDU5LjUsICAwLCAgICAtOCwgICAgNSwgICA3LCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMDAwMAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxNDI1LjUsICAwLCAgICAtNywgICAgNSwgICA4LCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMDAwMQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIzODU0LjUsICAwLCAgICAtMSwgICAxMywgICA2LCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAwNworICAgICAgICAgICAgCisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjM4NTUuNSwgIDEsICAgICAwLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyOC8wOC8wMDA3CisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjQyMjAuNSwgIDEsICAgICAxLCAgICAxLCAgIDEsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyNy8wOC8wMDA4CisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjQ1ODUuNSwgIDEsICAgICAyLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyNy8wOC8wMDA5CisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjQ5NTAuNSwgIDEsICAgICAzLCAgICAxLCAgIDEsICBGUkksICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyNy8wOC8wMDEwCisKKyAgICAgICAgICAgIC8vIG5ldyBUZXN0Q2FzZSgxNzI0NTM2LjUsICAxLCAgICAgNCwgICAgMSwgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDAxMQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI1MzE2LjUsICAxLCAgICAgNCwgICAgMSwgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDAxMSAtIGRsZgorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0MjE5LjUsICAxLCAgICAgMCwgICAxMywgICA1LCAgVFVFLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAwOAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0NTg0LjUsICAxLCAgICAgMSwgICAxMywgICA1LCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAwOQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0OTQ5LjUsICAxLCAgICAgMiwgICAxMywgICA1LCAgVEhVLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI1MzE0LjUsICAxLCAgICAgMywgICAxMywgICA1LCAgRlJJLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI1MzE1LjUsICAxLCAgICAgMywgICAxMywgICA2LCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAxMSAtIGZpcnN0IGV0aGlvcGljIGxlYXAgeWVhcgorICAgICAgICAgICAgLy8gbmV3IFRlc3RDYXNlKDE3MjU1NjAuNSwgIDEsICAgICA0LCAgIDEzLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyNi8wOC8wMDEyIC0gZGxmCisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3MjU2ODAuNSwgIDEsICAgICA0LCAgIDEzLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyNi8wOC8wMDEyCisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTguNSwgIDEsICAxNTc1LCAgICAyLCAgIDYsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxMy8xMC8xNTgyICAKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE1OS41LCAgMSwgIDE1NzUsICAgIDIsICAgNywgIFRIVSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE0LzEwLzE1ODIgIEp1bGlhbiAwNC8xMC8xNTgyCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTYwLjUsICAxLCAgMTU3NSwgICAgMiwgICA4LCAgRlJJLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTUvMTAvMTU4MgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNjEuNSwgIDEsICAxNTc1LCAgICAyLCAgIDksICBTQVQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNi8xMC8xNTgyCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDE1MDIwLjUsICAxLCAgMTg5MiwgICAgNCwgIDIzLCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMTkwMAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTMzNzEuNSwgIDEsICAxOTk3LCAgICA0LCAgMjMsICBTQVQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAwMS8wMS8yMDA1CisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1NDcxOS41LCAgMSwgIDIwMDAsICAgMTMsICAgNSwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDEwLzA5LzIwMDgKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgdGVzdENhbGVuZGFyID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoKTsKKyAgICAgICAgdGVzdENhbGVuZGFyLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIGRvVGVzdENhc2VzKHRlc3RzLCB0ZXN0Q2FsZW5kYXIpOworICAgIH0KKworICAgIC8vIGJhc2ljIGNoZWNrIHRvIHNlZSB0aGF0IHdlIHByaW50IG91dCBlcmFzIG9rCisgICAgLy8gZXZlbnR1YWxseSBzaG91bGQgbW9kaWZ5IHRvIHVzZSBsb2NhbGUgc3RyaW5ncyBhbmQgZm9ybWF0dGVyIGFwcHJvcHJpYXRlIHRvIGNvcHRpYyBjYWxlbmRhcgorICAgIHB1YmxpYyB2b2lkIFRlc3RFcmFTdGFydCgpIHsKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigwLCAwLCAxKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCwgeXl5eSBHRyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkV0aGlvcGljIERhdGUiLCAiVHVlIEphbiAwMSwgMDAwMCBBRCIsIGZtdC5mb3JtYXQoY2FsKSk7CisKKyAgICAgICAgLy8gVGhlIGdyZWdvcmlhbiBjYWxlbmRhciBnZXRzIG9mZiBieSB0d28gZGF5cyB3aGVuCisgICAgICAgIC8vIHRoZSBkYXRlIGdldHMgbG93LCB1bmxlc3MgdGhlIGdyZWdvcmlhbiBjaGFuZ2VvdmVyIGlzIHNldCB0byAKKyAgICAgICAgLy8gdmVyeSBlYXJseS4gIFRoZSBmdW5ueSB0aGluZyBpcywgaXQncyBvayBmb3IgZGF0ZXMgaW4gdGhlIHllYXIKKyAgICAgICAgLy8gMjgzLCBidXQgbm90IGluIHRoZSB5ZWFyIDcsIGFuZCBpdCBjbGFpbXMgdG8gYmUgb2sgdW50aWwgdGhlIHllYXIgNC4KKyAgICAgICAgLy8gc2hvdWxkIHRyYWNrIGRvd24gd2hlbiB0aGUgZGF0ZXMgc3RhcnQgdG8gZGlmZmVyLi4uCisgICAgICAgIAorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBnYy5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsgLy8gYWN0IGxpa2UgcHJvbGVwdGljIEdyZWdvcmlhbgorICAgICAgICBnYy5zZXRUaW1lKGNhbC5nZXRUaW1lKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkdyZWdvcmlhbiBEYXRlIiwgIlR1ZSBBdWcgMjgsIDAwMDcgQUQiLCBmbXQuZm9ybWF0KGdjKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEwMDAsIDAsIDMwKTsKKyAgICAgICAgbG9nbG4oIjEwMDAvMC8zMC0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KFlFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgY2FsLmdldChNT05USCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgY2FsLmdldChEQVRFKSk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEsIDAsIDMwKTsKKyAgICAgICAgbG9nbG4oIjEvMC8zMCAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkQoKXsKKyAgICAgICAgaW50IGpkID0gRXRoaW9waWNDYWxlbmRhci5FdGhpb3BpY1RvSkQoMTU2Nyw4LDkpOworICAgICAgICBJbnRlZ2VyW10gbCA9IEV0aGlvcGljQ2FsZW5kYXIuZ2V0RGF0ZUZyb21KRChqZCk7CisgICAgICAgIGlmIChsWzBdLmludFZhbHVlKCkgPT0gMTU2NyAmJgorICAgICAgICAgICAgbFsxXS5pbnRWYWx1ZSgpID09IDggJiYKKyAgICAgICAgICAgIGxbMl0uaW50VmFsdWUoKSA9PSA5KXsKKyAgICAgICAgICAgIGxvZ2xuKCJFdGhpb3BpY0NhbGVuZGFyLmdldERhdGVGcm9tSkQgdGVzdGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRXRoaW9waWNDYWxlbmRhci5nZXREYXRlRnJvbUpEIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihMb2NhbGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lLCBMb2NhbGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIFRpbWVab25lLExvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoVGltZVpvbmUsIFVMb2NhbGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSxVTG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKERhdGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKG5ldyBEYXRlKCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMTk5NywgRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTSwgMSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigxOTk3LCBFdGhpb3BpY0NhbGVuZGFyLk1FU0tFUkVNLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlLGhvdXIsbWludXRlLHNlY29uZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gc2V0Q2l2aWwvaXNDaXZpbAorICAgICAgICAgICAgLy8gb3BlcmF0aW9ucyBvbiBub24tY2l2aWwgY2FsZW5kYXIKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3QW1ldGVBbGVtRXJhQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXRBbWV0ZUFsZW1FcmEoZmFsc2UpOworICAgICAgICAgICAgaWYgKGNhbC5pc0FtZXRlQWxlbUVyYSgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkV0aGlvcGljQ2FsZW5kYXIgY2FsZW5kYXIgaXMgb2xkIHN5c3RlbSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShub3cpOworCisgICAgICAgICAgICBEYXRlIHRoZW4gPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFub3cuZXF1YWxzKHRoZW4pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldC9zZXQgdGltZSBmYWlsZWQgd2l0aCBub24tY2l2aWwgRXRoaW9waWNDYWxlbmRhciBjYWxlbmRhciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbih0aGVuLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgMSk7CisKKyAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZGF0YQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigxOTk3LCBFdGhpb3BpY0NhbGVuZGFyLk1FU0tFUkVNLCAxKTsKKyAgICAgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiYW1fRVQiLCAiZ2V6X0VUIiwgInRpX0VUIgorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiZW4iLCAiYW0iLCAiZ2V6IiwgInRpIgorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgICAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgICAgICAgICAgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoY2FsTG9jYWxlKTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgRXRoaW9waWNDYWxlbmRhciBuZXdBbWV0ZUFsZW1FcmFDYWxlbmRhcigpIHsKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBhbGVtYXdpQ2FsZW5kYXIgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigpOworICAgICAgICBhbGVtYXdpQ2FsZW5kYXIuc2V0QW1ldGVBbGVtRXJhKHRydWUpOworICAgICAgICByZXR1cm4gYWxlbWF3aUNhbGVuZGFyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9IZWJyZXdUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSGVicmV3VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1MGUzMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSGVicmV3VGVzdC5qYXZhCkBAIC0wLDAgKzEsNDUxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSGVicmV3VGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBIZWJyZXdUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIENvbnN0YW50cyB0byBzYXZlIHR5cGluZy4KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSVNIUkkgID0gSGVicmV3Q2FsZW5kYXIuVElTSFJJOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFU0hWQU4gPSBIZWJyZXdDYWxlbmRhci5IRVNIVkFOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJU0xFViAgPSBIZWJyZXdDYWxlbmRhci5LSVNMRVY7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVWRVQgICA9IEhlYnJld0NhbGVuZGFyLlRFVkVUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIRVZBVCAgPSBIZWJyZXdDYWxlbmRhci5TSEVWQVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUl8xICA9IEhlYnJld0NhbGVuZGFyLkFEQVJfMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBREFSICAgID0gSGVicmV3Q2FsZW5kYXIuQURBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOSVNBTiAgID0gSGVicmV3Q2FsZW5kYXIuTklTQU47CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVlBUiAgICA9IEhlYnJld0NhbGVuZGFyLklZQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lWQU4gICA9IEhlYnJld0NhbGVuZGFyLlNJVkFOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTVVaICAgPSBIZWJyZXdDYWxlbmRhci5UQU1VWjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBViAgICAgID0gSGVicmV3Q2FsZW5kYXIuQVY7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUxVTCAgICA9IEhlYnJld0NhbGVuZGFyLkVMVUw7CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBIZWJyZXdDYWxlbmRhci5yb2xsCisgICAgICogVGhlIG9ubHkgcmVhbCBuYXN0aW5lc3Mgd2l0aCByb2xsIGlzIHRoZSBNT05USCBmaWVsZCwgc2luY2UgYSB5ZWFyIGNhbgorICAgICAqIGhhdmUgYSB2YXJpYWJsZSBudW1iZXIgb2YgbW9udGhzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgcm9sbCBieSAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vICB5ZWFyICBtb250aCAgICAgZGF5ICAgICBmaWVsZCBhbW91bnQgICAgeWVhciAgbW9udGggICAgIGRheQorICAgIAorICAgICAgICAgICAgeyAgIDU3NTksIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBLSVNMRVYsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAyLCAgICAgNTc1OSwgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NTksIFNIRVZBVCwgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIEFWLCAgICAgICAgMSwgICAgIE1PTlRILCAgMTIsICAgICA1NzU5LCBBViwgICAgICAgIDEgfSwgLy8gQWxhbgorCisgICAgICAgICAgICB7ICAgNTc1NywgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEtJU0xFViwgICAgMiB9LCAgIC8vIGxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1NywgQURBUl8xLCAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTcsIEFEQVIsICAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDMsICAgICA1NzU3LCBOSVNBTiwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEyLCAgICAgNTc1NywgVEVWRVQsICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMywgICAgIDU3NTcsIFNIRVZBVCwgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIEFWLCAgICAgICAgMSwgICAgIE1PTlRILCAgMTIsICAgICA1NzU3LCBUQU1VWiwgICAgIDEgfSwgLy8gQWxhbgorICAgICAgICAgICAgCisgICAgICAgICAgICB7ICAgNTc1NywgS0lTTEVWLCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDU3NTcsIEtJU0xFViwgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgICAgICAgeyAgIDU3NTgsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzEsICAgICA1NzU4LCBLSVNMRVYsICAgIDIgfSwgICAvLyAzMC1kYXkgbW9udGgKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVHJ5IHNvbWUgb3RoZXIgZmllbGRzIHRvbworICAgICAgICAgICAgeyAgIDU3NTcsIFRJU0hSSSwgICAgMSwgICAgIFlFQVIsICAgIDEsICAgICA1NzU4LCBUSVNIUkksICAgIDEgfSwKKyAgIAorCisgICAgICAgICAgICAvLyBUcnkgc29tZSByb2xscyB0aGF0IHJlcXVpcmUgb3RoZXIgZmllbGRzIHRvIGJlIGFkanVzdGVkCisgICAgICAgICAgICB7ICAgNTc1NywgVElTSFJJLCAgIDMwLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEhFU0hWQU4sICAyOSB9LAorICAgICAgICAgICAgeyAgIDU3NTgsIEtJU0xFViwgICAzMCwgICAgIFlFQVIsICAgLTEsICAgICA1NzU3LCBLSVNMRVYsICAgMjkgfSwKKyAgICAgICAgfTsKKy8vICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoVVRDLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAKKyAgICAgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAvLyAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKy8vICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworIC8vICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgSGVicmV3Q2FsZW5kYXIucm9sbAorICAgICAqIFRoZSBvbmx5IHJlYWwgbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQsIHNpbmNlIGEgeWVhciBjYW4KKyAgICAgKiBoYXZlIGEgdmFyaWFibGUgbnVtYmVyIG9mIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgYWRkIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgICAgICAgICB7ICAgNTc1OSwgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEtJU0xFViwgICAgMiB9LCAgIC8vIG5vbi1sZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEFEQVIsICAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICA1NzU5LCBOSVNBTiwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEyLCAgICAgNTc2MCwgU0hFVkFULCAgICAyIH0sCisKKyAgICAgICAgICAgIHsgICA1NzU3LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1NywgS0lTTEVWLCAgICAyIH0sICAgLy8gbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBBREFSXzEsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAyLCAgICAgNTc1NywgQURBUiwgICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMywgICAgIDU3NTcsIE5JU0FOLCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTIsICAgICA1NzU4LCBURVZFVCwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEzLCAgICAgNTc1OCwgU0hFVkFULCAgICAyIH0sCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHsgICA1NzYyLCBBViwgICAgICAgIDEsICAgICBNT05USCwgICAxLCAgICAgNTc2MiwgRUxVTCwgICAgICAxIH0sICAgLy8gSkIjMjMyNworICAgICAgICAgICAgeyAgIDU3NjIsIEFWLCAgICAgICAzMCwgICAgIERBVEUsICAgIDEsICAgICA1NzYyLCBFTFVMLCAgICAgIDEgfSwgICAvLyBKQiMyMzI3CisgICAgICAgICAgICB7ICAgNTc2MiwgRUxVTCwgICAgICAxLCAgICAgREFURSwgICAtMSwgICAgIDU3NjIsIEFWLCAgICAgICAzMCB9LCAgIC8vIEpCIzIzMjcKKyAgICAgICAgICAgIHsgICA1NzYyLCBFTFVMLCAgICAgIDEsICAgICBNT05USCwgIC0xLCAgICAgNTc2MiwgQVYsICAgICAgICAxIH0sICAgLy8gSkIjMjMyNworICAgICAgICAgICAgCisgICAgICAgICAgICB7ICAgNTc1NywgS0lTTEVWLCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDU3NTcsIFRFVkVULCAgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgICAgICAgeyAgIDU3NTgsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzEsICAgICA1NzU4LCBURVZFVCwgICAgIDIgfSwgICAvLyAzMC1kYXkgbW9udGgKKyAgICAgICAgfTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKFVUQywgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgCisgICAgICAgICAgICBkb1JvbGxBZGQoQURELCBjYWwsIHRlc3RzKTsKKyAgICAgICAgfWNhdGNoKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgaHVnZSBsaXN0IG9mIHRlc3QgY2FzZXMgdG8gbWFrZSBzdXJlIHRoYXQgY29tcHV0ZVRpbWUgYW5kIGNvbXB1dGVGaWVsZHMKKyAgICAgKiB3b3JrIHByb3Blcmx5IGZvciBhIHdpZGUgcmFuZ2Ugb2YgZGF0YS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZpbmFsIFRlc3RDYXNlW10gdGVzdENhc2VzID0geworICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAvLyBNb3N0IG9mIHRoZXNlIHRlc3QgY2FzZXMgd2VyZSB0YWtlbiBmcm9tIHRoZSBiYWNrIG9mCisgICAgICAgICAgICAgICAgICAgIC8vICJDYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnMiLCB3aXRoIHNvbWUgZXh0cmFzIGFkZGVkIHRvIGhlbHAKKyAgICAgICAgICAgICAgICAgICAgLy8gZGVidWcgYSBmZXcgb2YgdGhlIHByb2JsZW1zIHRoYXQgY3JvcHBlZCB1cCBpbiBkZXZlbG9wbWVudC4KKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1vbnRocyBpbiB0aGlzIHRhYmxlIGFyZSAxLWJhc2VkIHJhdGhlciB0aGFuIDAtYmFzZWQsCisgICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNTA3MjMxLjUsICAwLCAgMzE3NCwgICAxMiwgIDEwLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNjYwMDM3LjUsICAwLCAgMzU5MywgICAgMywgIDI1LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzQ2ODkzLjUsICAwLCAgMzgzMSwgICAgMSwgICAzLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzcwNjQxLjUsICAwLCAgMzg5NiwgICAgMSwgICA5LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODkyNzMxLjUsICAwLCAgNDIzMCwgICAgNCwgIDE4LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxOTMxNTc5LjUsICAwLCAgNDMzNiwgICAxMCwgICA0LCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxOTc0ODUxLjUsICAwLCAgNDQ1NSwgICAgMiwgIDEzLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMDkxMTY0LjUsICAwLCAgNDc3MywgICAgOSwgICA2LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTIxNTA5LjUsICAwLCAgNDg1NiwgICAgOSwgIDIzLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTU1Nzc5LjUsICAwLCAgNDk1MCwgICAgOCwgICA3LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTc0MDI5LjUsICAwLCAgNTAwMCwgICAgNywgICA4LCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTkxNTg0LjUsICAwLCAgNTA0OCwgICAgOCwgIDIxLCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTk1MjYxLjUsICAwLCAgNTA1OCwgICAgOSwgICA3LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjI5Mjc0LjUsICAwLCAgNTE1MSwgICAxMSwgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjQ1NTgwLjUsICAwLCAgNTE5NiwgICAgNSwgICA3LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjY2MTAwLjUsICAwLCAgNTI1MiwgICAgOCwgICAzLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjg4NTQyLjUsICAwLCAgNTMxNCwgICAgMSwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjkwOTAxLjUsICAwLCAgNTMyMCwgICAgNiwgIDI3LCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzIzMTQwLjUsICAwLCAgNTQwOCwgICAxMCwgIDIwLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NTUxLjUsICAwLCAgNTQ0MCwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NTgxLjUsICAwLCAgNTQ0MCwgICAgMiwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NjEwLjUsICAwLCAgNTQ0MCwgICAgMywgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NjM5LjUsICAwLCAgNTQ0MCwgICAgNCwgICAxLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NjY4LjUsICAwLCAgNTQ0MCwgICAgNSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0Njk4LjUsICAwLCAgNTQ0MCwgICAgNiwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NzI4LjUsICAwLCAgNTQ0MCwgICAgNywgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0NzU3LjUsICAwLCAgNTQ0MCwgICAgOCwgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0Nzg3LjUsICAwLCAgNTQ0MCwgICAgOSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0ODE2LjUsICAwLCAgNTQ0MCwgICAxMCwgICAxLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0ODQ2LjUsICAwLCAgNTQ0MCwgICAxMSwgICAxLCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0ODQ4LjUsICAwLCAgNTQ0MCwgICAxMSwgICAzLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0OTM0LjUsICAwLCAgNTQ0MSwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzQ4MDIwLjUsICAwLCAgNTQ3NiwgICAxMiwgICA1LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzY2OTc4LjUsICAwLCAgNTUyOCwgICAxMSwgICA0LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzg1NjQ4LjUsICAwLCAgNTU3OSwgICAxMiwgIDExLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzkyODI1LjUsICAwLCAgNTU5OSwgICAgOCwgIDEyLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDE2MjIzLjUsICAwLCAgNTY2MywgICAgOCwgIDIyLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDI1ODQ4LjUsICAwLCAgNTY4OSwgICAxMiwgIDE5LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMwMjY2LjUsICAwLCAgNTcwMiwgICAgMSwgICA4LCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMwODMzLjUsICAwLCAgNTcwMywgICAgOCwgIDE0LCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMxMDA0LjUsICAwLCAgNTcwNCwgICAgMSwgICA4LCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDQ4Njk4LjUsICAwLCAgNTc1MiwgICAgNywgIDEyLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUwMTM4LjUsICAwLCAgNTc1NiwgICAgNywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDY1NzM3LjUsICAwLCAgNTc5OSwgICAgMiwgIDEyLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDg2MDc2LjUsICAwLCAgNTg1NCwgICAxMiwgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRkaXRpb25hbCB0ZXN0IGNhc2VzIGZvciBidWdzIGZvdW5kIGR1cmluZyBkZXZlbG9wbWVudAorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgRy5ZWS9NTS9ERCAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTAxMywgOSwgOCwgMCwgIDQ3NzQsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTIzOSwgOSwgMSwgMCwgIDUwMDAsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTI0MCwgOSwxOCwgMCwgIDUwMDEsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorCisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgY2FzZXMgdGFrZW4gZnJvbSBhIHRhYmxlIG9mIDE0ICJ5ZWFyIHR5cGVzIiBpbiB0aGUgSGVscCBmaWxlCisgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBhcHBsaWNhdGlvbiAiSGVicmV3IENhbGVuZGFyIgorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1NjE4Ny41LCAgMCwgIDU3NzMsICAgIDEsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1OTExMS41LCAgMCwgIDU3ODEsICAgIDEsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MzY0Ny41LCAgMCwgIDU3NjYsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2MjAzNS41LCAgMCwgIDU3ODksICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1ODc1Ni41LCAgMCwgIDU3ODAsICAgIDEsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2MDU4Ni41LCAgMCwgIDU3ODUsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2Mzg2NC41LCAgMCwgIDU3OTQsICAgIDEsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2MzQ4MS41LCAgMCwgIDU3OTMsICAgIDEsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ3MDQyMS41LCAgMCwgIDU4MTIsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2MDIwMy41LCAgMCwgIDU3ODQsICAgIDEsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1OTQ2NC41LCAgMCwgIDU3ODIsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2NzE0Mi41LCAgMCwgIDU4MDMsICAgIDEsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1NTQ0OC41LCAgMCwgIDU3NzEsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IGNhc2VzIGZvciBKQiMyMzI3ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cDovL3d3dy5mb3VybWlsYWIuY29tL2RvY3VtZW50cy9jYWxlbmRhci8KKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cDovL3d3dy5jYWxlbmRhcmhvbWUuY29tL2NvbnZlcnRlci8KKy8vICAgICAgICAgICAgICAgIDI0NTI0NjUuNSwgMjAwMiwgSlVMWSwgMTAsIDU3NjIsIEFWLCAxLAorLy8gICAgICAgICAgICAgICAgMjQ1MjQ5NC41LCAyMDAyLCBBVUdVU1QsIDgsIDU3NjIsIEFWLCAzMCwKKy8vICAgICAgICAgICAgICAgIDI0NTI0OTUuNSwgMjAwMiwgQVVHVVNULCA5LCA1NzYyLCBFTFVMLCAxLAorLy8gICAgICAgICAgICAgICAgMjQ1MjUyMy41LCAyMDAyLCBTRVBURU1CRVIsIDYsIDU3NjIsIEVMVUwsIDI5LAorLy8gICAgICAgICAgICAgICAgMjQ1MjUyNC41LCAyMDAyLCBTRVBURU1CRVIsIDcsIDU3NjMsIFRJU0hSSSwgMSwKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNDY1LjUsICAwLCAgNTc2MiwgICAgQVYrMSwgIDEsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTI0OTQuNSwgIDAsICA1NzYyLCAgICBBVisxLCAzMCwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MjQ5NS41LCAgMCwgIDU3NjIsICBFTFVMKzEsICAxLCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNTIzLjUsICAwLCAgNTc2MiwgIEVMVUwrMSwgMjksICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTI1MjQuNSwgIDAsICA1NzYzLFRJU0hSSSsxLCAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9UZXN0Q2FzZXModGVzdENhc2VzLCBuZXcgSGVicmV3Q2FsZW5kYXIoKSk7CisgICAKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkdvdCBFeGNlcHRpb246ICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9ibGVtIHJlcG9ydGVkIGJ5IEFybWFuZCBCZW5kYW5hbiBpbiB3aGljaCBzZXR0aW5nIG9mIHRoZSBNT05USAorICAgICAqIGZpZWxkIGluIGEgSGVicmV3IGNhbGVuZGFyIGNhdXNlcyB0aGUgdGltZSBmaWVsZHMgdG8gZ28gbmVnYXRpdmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWVGaWVsZHMoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEhlYnJld0NhbGVuZGFyKDU3NjEsIDAsIDExLCAxMiwgMjgsIDE1KTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChDYWxlbmRhci5ZRUFSLCA1NzE3KTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChDYWxlbmRhci5NT05USCwgMik7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAyMyk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAhPSAxMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBIZWJyZXdDYWxlbmRhciBIT1VSX09GX0RBWSA9ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkdvdCBFeGNlcHRpb246ICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9ibGVtIHJlcG9ydGVkIGJ5IEFybWFuZCBCZW5kYW5hbiAoYXJtYW5kLmJlbmRhbmFuQGZyZWUuZnIpCisgICAgICogaW4gd2hpY2ggc2V0dGluZyBvZiB0aGUgTU9OVEggZmllbGQgaW4gYSBIZWJyZXcgY2FsZW5kYXIgdG8KKyAgICAgKiBFTFVMIG9uIG5vbiBsZWFwIHllYXJzIGNhdXNlcyB0aGUgZGF0ZSB0byBiZSBzZXQgb24gVElTSFJJIG5leHQgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RWx1bE1vbnRoKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKyAgICAgICAgICAgIC8vIExlYXAgeWVhcnMgYXJlOgorICAgICAgICAgICAgLy8gMyA2IDggMTEgMTQgMTcgMTkgKGFuZCBzbyBvbiAtIDE5LXllYXIgY3ljbGUpCisgICAgICAgICAgICBmb3IgKGludCB5ZWFyPTE7IHllYXI8NTA7IHllYXIrKykgeworICAgICAgICAgICAgICAgIC8vIEkgaG9wZSB0aGF0IHllYXIgPSAwIGRvZXMgbm90IGV4aXN0cworICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHRlc3QgZmFpbHMgZm9yIGl0ICEKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIEVMVUwpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgeWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgaW50IG1hY3QgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoeWVhciAhPSB5YWN0IHx8IEVMVUwgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIEVMVUwgKyAiLyIgKyB5ZWFyICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjdCArICIvIiArIHlhY3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkdvdCBFeGNlcHRpb246ICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBvZiB0aGUgYmVoYXZpb3Igb2YgdGhlIG1vbnRoIGZpZWxkLiAgVGhpcyByZXF1aXJlcyBzcGVjaWFsCisgICAgICogaGFuZGxpbmcgaW4gdGhlIEhlYnJldyBjYWxlbmRhciBiZWNhdXNlIG9mIHRoZSBwYXR0ZXJuIG9mIGxlYXAKKyAgICAgKiB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TW9udGhNb3ZlbWVudCgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgICAgICAvLyBMZWFwIHllYXJzIGFyZToKKyAgICAgICAgICAgIC8vIDMgNiA4IDExIDE0IDE3IDE5IChhbmQgc28gb24gLSAxOS15ZWFyIGN5Y2xlKQorICAgICAgICAgICAgLy8gV2UgY2FuJ3QgdGVzdCBjb21wbGV0ZSgpIG9uIHNvbWUgbGluZXMgYmVsb3cgYmVjYXVzZSBvZiBBREFSXzEgLS0gaWYKKyAgICAgICAgICAgIC8vIHRoZSBjYWxlbmRhciBpcyBzZXQgdG8gQURBUl8xIG9uIGEgbm9uLWxlYXAgeWVhciwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCisgICAgICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgICAgIC8vIG0xL3kxIC0gbW9udGgveWVhciBiZWZvcmUgKG1vbnRoIGlzIDEtYmFzZWQpIAorICAgICAgICAgICAgICAgIC8vIGRlbHRhIC0gYW1vdW50IHRvIGFkZCB0byBtb250aCBmaWVsZAorICAgICAgICAgICAgICAgIC8vIG0yL3kyIC0gbW9udGgveWVhciBhZnRlciBhZGQoTU9OVEgsIGRlbHRhKQorICAgICAgICAgICAgICAgIC8vIG0zL3kzIC0gbW9udGgveWVhciBhZnRlciBzZXQoTU9OVEgsIG0xK2RlbHRhKQorICAgICAgICAgICAgICAvL20xICB5MSBkZWx0YSAgbTIgIHkyICBtMyAgeTMKKyAgICAgICAgICAgICAgICAxMCwgIDIsICArMjQsICA5LCAgNCwgIDksICA0LAorICAgICAgICAgICAgICAgIDEwLCAgMiwgICs2MCwgIDgsICA3LCAgOCwgIDcsCisgICAgICAgICAgICAgICAgMSAsICAyLCAgKzEyLCAgMSwgIDMsIDEzLCAgMiwgLy8qc2V0ICE9IGFkZDsgYWxzbyBzZWUgJyonIGJlbG93CisgICAgICAgICAgICAgICAgMyAsIDE4LCAgLTI0LCAgNCwgMTYsICA0LCAxNiwKKyAgICAgICAgICAgICAgICAxICwgIDYsICAtMjQsICAxLCAgNCwgIDEsICA0LAorICAgICAgICAgICAgICAgIDQgLCAgMywgICArMiwgIDYsICAzLCAgNiwgIDMsIC8vIExlYXAgeWVhciAtIG5vIHNraXAgNCw1LDYsNyw4CisgICAgICAgICAgICAgICAgOCAsICAzLCAgIC0yLCAgNiwgIDMsICA2LCAgMywgLy8gTGVhcCB5ZWFyIC0gbm8gc2tpcAorICAgICAgICAgICAgICAgIDQgLCAgMiwgICArMiwgIDcsICAyLCAgNywgIDIsIC8vIFNraXAgbGVhcCBtb250aCA0LDUsKDYpLDcsOAorICAgICAgICAgICAgICAgIDggLCAgMiwgICAtMiwgIDUsICAyLCAgNywgIDIsIC8vKlNraXAgbGVhcCBtb250aCBnb2luZyBiYWNrd2FyZAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICAgICAgaW50IG0gPSBEQVRBW2krK10sIHkgPSBEQVRBW2krK107CisgICAgICAgICAgICAgICAgaW50IG1vbnRoRGVsdGEgPSBEQVRBW2krK107CisgICAgICAgICAgICAgICAgaW50IG0yID0gREFUQVtpKytdLCB5MiA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgICAgICBpbnQgbTMgPSBEQVRBW2krK10sIHkzID0gREFUQVtpKytdOworICAgICAgICAgICAgICAgIGludCBtYWN0LCB5YWN0OworICAgIAorICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgeSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgbS0xKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCBtb250aERlbHRhKTsKKyAgICAgICAgICAgICAgICB5YWN0ID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsgbWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoeTIgIT0geWFjdCB8fCBtMiAhPSBtYWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbSArICIvIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+IGFkZChNT05USCwgIiArIG1vbnRoRGVsdGEgKyAiKSAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjdCArICIvIiArIHlhY3QgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbTIgKyAiLyIgKyB5Mik7CisgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBtLTEpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiU3RhcnQ6ICIgKyBtICsgIi8iICsgeSk7CisgICAgICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IG1vbnRoRGVsdGEgPiAwID8gMSA6IC0xOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjPTA7IGMhPW1vbnRoRGVsdGE7IGMrPWRlbHRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCBkZWx0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiKyAiICsgZGVsdGEgKyAiIE1PTlRIIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLllFQVIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0gKyBtb250aERlbHRhIC0gMSk7CisgICAgICAgICAgICAgICAgeWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7IG1hY3QgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDE7CisgICAgICAgICAgICAgICAgaWYgKHkzICE9IHlhY3QgfHwgbTMgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIChtK21vbnRoRGVsdGEpICsgIi8iICsgeSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgLT4gY29tcGxldGUoKSAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjdCArICIvIiArIHlhY3QgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbTMgKyAiLyIgKyB5Myk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiR290IEV4Y2VwdGlvbjogIisgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2YgQURBUl8xLgorICAgICAqLworICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdEFkYXIxKCkgeworICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTkwMyk7IC8vIGxlYXAKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgSGVicmV3Q2FsZW5kYXIuQURBUl8xKTsKKyAgICAgICAgbG9nbG4oIjE5MDMobGVhcCkvQURBUl8xID0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKTsKKworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTA0KTsgLy8gbm9uLWxlYXAKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgSGVicmV3Q2FsZW5kYXIuQURBUl8xKTsKKyAgICAgICAgbG9nbG4oIjE5MDQobm9uLWxlYXApL0FEQVJfMSA9PiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSk7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBXaXRoIG5vIGZpZWxkcyBzZXQsIHRoZSBjYWxlbmRhciBzaG91bGQgdXNlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0RmllbGRWYWx1ZXMoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBsb2dsbigiY2FsLmNsZWFyKCkgLT4gIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gbmV3IEhlYnJld0NhbGVuZGFyKFRpbWVab25lKQorICAgICAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSGVicmV3Q2FsZW5kYXIgd2l0aCBUaW1lWm9uZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSGVicmV3Q2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG5ldyBIZWJyZXdDYWxlbmRhcihMb2NhbGUpCisgICAgICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSGVicmV3Q2FsZW5kYXIgd2l0aCBsb2NhbGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG5ldyBIZWJyZXdDYWxlbmRhcihEYXRlKQorICAgICAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggZGF0ZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gZGF0YQorICAgICAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcigyODAwLCBIZWJyZXdDYWxlbmRhci5TSEVWQVQsIDEpOworICAgICAgICAgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiaXdfSUwiCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiZW4iLCAiZmkiLCAiZnIiLCAiaHUiLCAiaXciLCAibmwiCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihjYWxMb2NhbGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGZvcm1hdExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhLiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSG9saWRheVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWRjOTkwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5FYXN0ZXJIb2xpZGF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Ib2xpZGF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VEYXRlUnVsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZURhdGVSdWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlSG9saWRheTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPkhvbGlkYXk8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSG9saWRheVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBIb2xpZGF5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoY2FsPT1udWxsKXsKKyAgICAgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxLCAwLCAxKTsKKyAgICAgICAgICAgIGxvbmdUaW1lQWdvID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljICBDYWxlbmRhciBjYWw7CisgICAgc3RhdGljICBEYXRlIGxvbmdUaW1lQWdvOworICAgIHN0YXRpYyAgRGF0ZSBub3c7CisgICAgc3RhdGljICBsb25nIGF3aGlsZSA9IDM2MDBMICogMjQgKiAyODsgLy8gMjggZGF5cworCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZ2V0SG9saWRheXMKKyAgICAgICAgICAgIEhvbGlkYXlbXSBob2xpZGF5cyA9IEhvbGlkYXkuZ2V0SG9saWRheXMoKTsKKyAgICAgICAgICAgIGV4ZXJjaXNlSG9saWRheXMoaG9saWRheXMsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZ2V0SG9saWRheXMoTG9jYWxlKQorICAgICAgICAgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJlbl9VUyIsCisgICAgICAgICAgICAgICAgImRhIiwKKyAgICAgICAgICAgICAgICAiZGFfREsiLAorICAgICAgICAgICAgICAgICJkZSIsCisgICAgICAgICAgICAgICAgImRlX0FUIiwKKyAgICAgICAgICAgICAgICAiZGVfREUiLAorICAgICAgICAgICAgICAgICJlbCIsCisgICAgICAgICAgICAgICAgImVsX0dSIiwKKyAgICAgICAgICAgICAgICAiZW4iLAorICAgICAgICAgICAgICAgICJlbl9DQSIsCisgICAgICAgICAgICAgICAgImVuX0dCIiwKKyAgICAgICAgICAgICAgICAiZXMiLAorICAgICAgICAgICAgICAgICJlc19NWCIsCisgICAgICAgICAgICAgICAgImZyIiwKKyAgICAgICAgICAgICAgICAiZnJfQ0EiLAorICAgICAgICAgICAgICAgICJmcl9GUiIsCisgICAgICAgICAgICAgICAgIml0IiwKKyAgICAgICAgICAgICAgICAiaXRfSVQiLAorICAgICAgICAgICAgICAgICJpdyIsCisgICAgICAgICAgICAgICAgIml3X0lMIiwKKyAgICAgICAgICAgICAgICAiamEiLAorICAgICAgICAgICAgICAgICJqYV9KUCIsCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jYWxlTmFtZXNbaV0pOworICAgICAgICAgICAgICAgIEhvbGlkYXlbXSBob2xpZGF5cyA9IEhvbGlkYXkuZ2V0SG9saWRheXMobG9jYWxlKTsKKyAgICAgICAgICAgICAgICBleGVyY2lzZUhvbGlkYXlzKGhvbGlkYXlzLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBleGVyY2lzZUhvbGlkYXlzKEhvbGlkYXlbXSBob2xpZGF5cywgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGhvbGlkYXlzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBleGVyY2lzZUhvbGlkYXkoaG9saWRheXNbaV0sIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGV4ZXJjaXNlSG9saWRheShIb2xpZGF5IGgsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgbG9nbG4oImhvbGlkYXk6ICIgKyBoLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICBsb2dsbigiaG9saWRheSBpbiAiICsgbG9jYWxlICsgIjogIiArIGguZ2V0RGlzcGxheU5hbWUobG9jYWxlKSk7CisKKyAgICAgICAgRGF0ZSBmaXJzdCA9IGguZmlyc3RBZnRlcihsb25nVGltZUFnbyk7CisgICAgICAgIGxvZ2xuKCJmaXJzdEFmdGVyOiAiICsgbG9uZ1RpbWVBZ28gKyAiIGlzICIgKyBmaXJzdCk7CisgICAgICAgIGlmIChmaXJzdCA9PSBudWxsKSB7CisgICAgICAgICAgICBmaXJzdCA9IGxvbmdUaW1lQWdvOworICAgICAgICB9CisgICAgICAgIGZpcnN0LnNldFRpbWUoZmlyc3QuZ2V0VGltZSgpICsgYXdoaWxlKTsKKworICAgICAgICBEYXRlIHNlY29uZCA9IGguZmlyc3RCZXR3ZWVuKGZpcnN0LCBub3cpOworICAgICAgICBsb2dsbigiZmlyc3RCZXR3ZWVuOiAiICsgZmlyc3QgKyAiIGFuZCAiICsgbm93ICsgIiBpcyAiICsgc2Vjb25kKTsKKyAgICAgICAgaWYgKHNlY29uZCA9PSBudWxsKSB7CisgICAgICAgICAgICBzZWNvbmQgPSBub3c7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiaXMgb24gIiArIGZpcnN0ICsgIjogIiArIGguaXNPbihmaXJzdCkpOworICAgICAgICBsb2dsbigiaXMgb24gIiArIG5vdyArICI6ICIgKyBoLmlzT24obm93KSk7CisgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgICAiaXMgYmV0d2VlbiAiCisgICAgICAgICAgICAgICsgZmlyc3QKKyAgICAgICAgICAgICAgKyAiIGFuZCAiCisgICAgICAgICAgICAgICsgbm93CisgICAgICAgICAgICAgICsgIjogIgorICAgICAgICAgICAgICArIGguaXNCZXR3ZWVuKGZpcnN0LCBub3cpKTsKKyAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAgICJpcyBiZXR3ZWVuICIKKyAgICAgICAgICAgICAgKyBmaXJzdAorICAgICAgICAgICAgICArICIgYW5kICIKKyAgICAgICAgICAgICAgKyBzZWNvbmQKKyAgICAgICAgICAgICAgKyAiOiAiCisgICAgICAgICAgICAgICsgaC5pc0JldHdlZW4oZmlyc3QsIHNlY29uZCkpOworCisgICAgICAgIC8vICAgICAgICBsb2dsbigicnVsZTogIiArIGguZ2V0UnVsZSgpLnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vICAgICAgICBoLnNldFJ1bGUoaC5nZXRSdWxlKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgSG9saWRheVtdIGggPSB7IG5ldyBFYXN0ZXJIb2xpZGF5KCJSYW0ncyBFYXN0ZXIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KDIsIDI5LCAwLCAiTGVhcCB5ZWFyIiwgMTkwMCwgMjEwMCl9OworICAgICAgICBleGVyY2lzZUhvbGlkYXlzKGgsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIFJhbmdlRGF0ZVJ1bGUgcmRyID0gbmV3IFJhbmdlRGF0ZVJ1bGUoKTsKKyAgICAgICAgcmRyLmFkZChuZXcgU2ltcGxlRGF0ZVJ1bGUoNywgMTApKTsKKyAgICAgICAgRGF0ZSBtYmQgPSBnZXREYXRlKDE5NTMsIENhbGVuZGFyLkpVTFksIDEwKTsKKyAgICAgICAgRGF0ZSBkYmQgPSBnZXREYXRlKDE5NTgsIENhbGVuZGFyLkFVR1VTVCwgMTUpOworICAgICAgICBEYXRlIG5iZCA9IGdldERhdGUoMTk5MCwgQ2FsZW5kYXIuREVDRU1CRVIsIDE3KTsKKyAgICAgICAgRGF0ZSBhYmQgPSBnZXREYXRlKDE5OTIsIENhbGVuZGFyLlNFUFRFTUJFUiwgMTYpOworICAgICAgICBEYXRlIHhiZCA9IGdldERhdGUoMTk3NiwgQ2FsZW5kYXIuSlVMWSwgNCk7CisgICAgICAgIERhdGUgeWJkID0gZ2V0RGF0ZSgyMDAzLCBDYWxlbmRhci5ERUNFTUJFUiwgOCk7CisgICAgICAgIHJkci5hZGQobmV3IFNpbXBsZURhdGVSdWxlKENhbGVuZGFyLkpVTFksIDEwLCBDYWxlbmRhci5NT05EQVksIGZhbHNlKSk7CisgICAgICAgIHJkci5hZGQoZGJkLCBuZXcgU2ltcGxlRGF0ZVJ1bGUoQ2FsZW5kYXIuQVVHVVNULCAxNSwgQ2FsZW5kYXIuV0VETkVTREFZLCB0cnVlKSk7CisgICAgICAgIHJkci5hZGQoeGJkLCBudWxsKTsKKyAgICAgICAgcmRyLmFkZChuYmQsIG5ldyBTaW1wbGVEYXRlUnVsZShDYWxlbmRhci5ERUNFTUJFUiwgMTcsIENhbGVuZGFyLk1PTkRBWSwgZmFsc2UpKTsKKyAgICAgICAgcmRyLmFkZCh5YmQsIG51bGwpOworCisgICAgICAgIGxvZ2xuKCJmaXJzdCBhZnRlciAiICsgbWJkICsgIiBpcyAiICsgcmRyLmZpcnN0QWZ0ZXIobWJkKSk7CisgICAgICAgIGxvZ2xuKCJmaXJzdCBiZXR3ZWVuICIgKyBtYmQgKyAiIGFuZCAiICsgZGJkICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihtYmQsIGRiZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgZGJkICsgIiBhbmQgIiArIG5iZCArICIgaXMgIiArIHJkci5maXJzdEJldHdlZW4oZGJkLCBuYmQpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIG5iZCArICIgYW5kICIgKyBhYmQgKyAiIGlzICIgKyByZHIuZmlyc3RCZXR3ZWVuKG5iZCwgYWJkKSk7CisgICAgICAgIGxvZ2xuKCJmaXJzdCBiZXR3ZWVuICIgKyBhYmQgKyAiIGFuZCAiICsgeGJkICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihhYmQsIHhiZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgYWJkICsgIiBhbmQgIiArIG51bGwgKyAiIGlzICIgKyByZHIuZmlyc3RCZXR3ZWVuKGFiZCwgbnVsbCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgeGJkICsgIiBhbmQgIiArIG51bGwgKyAiIGlzICIgKyByZHIuZmlyc3RCZXR3ZWVuKHhiZCwgbnVsbCkpOworICAgICAgICAKKyAgICAgICAgLy9nZXRSdWxlLCBzZXRSdWxlCisgICAgICAgIGxvZ2xuKCJUaGUgcnVsZSBpbiB0aGUgaG9saWRheTogIiArIGhbMV0uZ2V0UnVsZSgpKTsKKyAgICAgICAgZXhlcmNpc2VIb2xpZGF5KGhbMV0sIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBoWzFdLnNldFJ1bGUocmRyKTsKKyAgICAgICAgbG9nbG4oIlNldCB0aGUgbmV3IHJ1bGUgdG8gdGhlIFNpbXBsZUhvbGlkYXkgLi4uIik7CisgICAgICAgIGlmICghcmRyLmVxdWFscyhoWzFdLmdldFJ1bGUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRSdWxlIGFuZCBzZXRSdWxlIG5vdCBtYXRjaGVkLiIpOworICAgICAgICB9CisgICAgICAgIGV4ZXJjaXNlSG9saWRheShoWzFdLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SXNPbigpIHsKKyAgICAgICAgLy8gamIgMTkwMQorICAgICAgICBTaW1wbGVIb2xpZGF5IHNoID0gbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAxNSwgIkRvdWcncyBEYXkiLCAxOTU4LCAyMDU4KTsKKyAgICAgICAgCisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDAwKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuQVVHVVNUKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE1KTsKKyAgICAgICAgCisgICAgICAgIERhdGUgZDAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLlNFQ09ORCwgMSk7CisgICAgICAgIERhdGUgZDEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLlNFQ09ORCwgLTIpOworICAgICAgICBEYXRlIGQyID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICBEYXRlIGQzID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIDEpOworICAgICAgICBEYXRlIGQ0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIC0yKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTU3KTsKKyAgICAgICAgRGF0ZSBkNSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk1OCk7CisgICAgICAgIERhdGUgZDYgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDIwNTgpOworICAgICAgICBEYXRlIGQ3ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDU5KTsKKyAgICAgICAgRGF0ZSBkOCA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgRGF0ZVtdIGRhdGVzID0geyBkMCwgZDEsIGQyLCBkMywgZDQsIGQ1LCBkNiwgZDcsIGQ4IH07CisgICAgICAgIGJvb2xlYW5bXSBpc09ucyA9IHsgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgRGF0ZSBkID0gZGF0ZXNbaV07CisgICAgICAgICAgICBsb2dsbigiXG5kYXRlOiAiICsgZCk7CisgICAgICAgICAgICBib29sZWFuIGlzT24gPSBzaC5pc09uKGQpOworICAgICAgICAgICAgbG9nbG4oImlzT25EYXRlOiAiICsgaXNPbik7CisgICAgICAgICAgICBpZiAoaXNPbiAhPSBpc09uc1tpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJkYXRlOiAiICsgZCArICIgc2hvdWxkIGJlIG9uIERvdWcncyBEYXkhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBEYXRlIGggPSBzaC5maXJzdEFmdGVyKGQpOworICAgICAgICAgICAgbG9nbG4oImZpcnN0QWZ0ZXI6ICIgKyBoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9JQk1DYWxlbmRhclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9JQk1DYWxlbmRhclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNGE2Yjk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lCTUNhbGVuZGFyVGVzdC5qYXZhCkBAIC0wLDAgKzEsODQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuWm9uZU1ldGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFRlc3RzIG9mIG5ldyBmdW5jdGlvbmFsaXR5IGluIElCTUNhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBJQk1DYWxlbmRhclRlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJQk1DYWxlbmRhclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB3ZWVrZW5kIHN1cHBvcnQgaW4gSUJNQ2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBOT1RFOiBUaGlzIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHVwZGF0ZWQgd2hlbiB0aGUgaXNXZWVrZW5kKCkgZXRjLgorICAgICAqICAgICAgIEFQSSBpcyBmaW5hbGl6ZWQgbGF0ZXIuCisgICAgICoKKyAgICAgKiAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgdGVzdCB3aWxsIGhhdmUgdG8gYmUgcmV3cml0dGVuIHRvIGluc3RhbnRpYXRlCisgICAgICogICAgICAgYSBDYWxlbmRhciBpbiB0aGUgZ2l2ZW4gbG9jYWxlICh1c2luZyBnZXRJbnN0YW5jZSgpKSBhbmQgY2FsbAorICAgICAqICAgICAgIHRoYXQgQ2FsZW5kYXIncyBpc1dlZWtlbmQoKSBldGMuIG1ldGhvZHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdlZWtlbmQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQgeXl5eSBHIEhIOm1tOnNzLlNTUyIpOworCisgICAgICAgIC8vIE5PVEUKKyAgICAgICAgLy8gVGhpcyB0ZXN0IHRlc3RzIGZvciBzcGVjaWZpYyBsb2NhbGUgZGF0YS4gIFRoaXMgaXMgcHJvYmFibHkgb2theQorICAgICAgICAvLyBhcyBmYXIgYXMgVVMgZGF0YSBpcyBjb25jZXJuZWQsIGJ1dCBpZiB0aGUgQXJhYmljL0JhaHJhaW4gZGF0YQorICAgICAgICAvLyBjaGFuZ2VzLCB0aGlzIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgLy8gVGVzdCBzcGVjaWZpYyBkYXlzCisgICAgICAgIE9iamVjdFtdIERBVEExID0geworICAgICAgICAgICAgTG9jYWxlLlVTLCBuZXcgaW50W10geyAvLyBTYXR1cmRheTpTdW5kYXkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMCwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDAsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMSwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAxNSwgIDAsIDEsIC8vIFNhdCAxNTowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOSwgMjMsICAwLCAxLCAvLyBTdW4gMjM6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICAwLCAtMSwgMSwgLy8gU3VuIDIzOjU5OjU5Ljk5OQorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAyMCwgIDAsICAwLCAwLCAvLyBNb24gMDA6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICA4LCAgMCwgMCwgLy8gTW9uIDA4OjAwCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAyMywgIDAsIDAsIC8vIFdlZCAyMzowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgIDAsIC0xLCAwLCAvLyBXZWQgMjM6NTk6NTkuOTk5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE2LCAgMCwgIDAsIDEsIC8vIFRodSAwMDowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgMTUsICAwLCAxLCAvLyBUaHUgMTU6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMSwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDEsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMCwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgOCwgIDAsIDAsIC8vIFNhdCAwODowMAorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUZXN0IGRheXMgb2YgdGhlIHdlZWsKKyAgICAgICAgT2JqZWN0W10gREFUQTIgPSB7CisgICAgICAgICAgICBMb2NhbGUuVVMsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuTU9OREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU1VOREFZLCAgIENhbGVuZGFyLldFRUtFTkRfQ0VBU0UsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VETkVTREFZLENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtFTkRfQ0VBU0UsCisgICAgICAgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIC8vIFdlIG9ubHkgdGVzdCB0aGUgZ2V0RGF5T2ZXZWVrVHlwZSgpIGFuZCBpc1dlZWtlbmQoKSBBUElzLgorICAgICAgICAvLyBUaGUgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSBBUEkgaXMgdGVzdGVkIGluZGlyZWN0bHkgdmlhIHRoZQorICAgICAgICAvLyBpc1dlZWtlbmQoKSBBUEksIHdoaWNoIGNhbGxzIGl0LgorCisgICAgICAgIGZvciAoaW50IGkxPTA7IGkxPERBVEExLmxlbmd0aDsgaTErPTIpIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSAoTG9jYWxlKURBVEExW2kxXTsKKyAgICAgICAgICAgIGludFtdIGRhdGEgPSAoaW50W10pIERBVEExW2kxKzFdOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMb2NhbGU6ICIgKyBsb2MpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEubGVuZ3RoOyBpKz02KSB7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChkYXRhW2ldLCBkYXRhW2krMV0sIGRhdGFbaSsyXSwgZGF0YVtpKzNdLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YVtpKzRdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyBkYXRhW2krNF0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1dlZWtlbmQgPSBjYWwuaXNXZWVrZW5kKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvayA9IGlzV2Vla2VuZCA9PSAoZGF0YVtpKzVdICE9IDApOworICAgICAgICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArICghaXNXZWVrZW5kKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaTI9MDsgaTI8REFUQTIubGVuZ3RoOyBpMis9MikgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IChMb2NhbGUpREFUQTJbaTJdOworICAgICAgICAgICAgaW50W10gZGF0YSA9IChpbnRbXSkgREFUQTJbaTIrMV07CisgICAgICAgICAgICBsb2dsbigiTG9jYWxlOiAiICsgbG9jKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8ZGF0YS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGNhbC5nZXREYXlPZldlZWtUeXBlKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIGludCBleHAgID0gZGF0YVtpKzFdOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IGV4cCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIGEgdGVzdCBvZiBhIHF1YXNpLUdyZWdvcmlhbiBjYWxlbmRhci4gIFRoaXMgaXMgYSBjYWxlbmRhcgorICAgICAqIHRoYXQgYmVoYXZlcyBsaWtlIGEgR3JlZ29yaWFuIGJ1dCBoYXMgZGlmZmVyZW50IHllYXIvZXJhIG1hcHBpbmdzLgorICAgICAqIFRoZSBpbnRbXSBkYXRhIGFycmF5IHNob3VsZCBoYXZlIHRoZSBmb3JtYXQ6CisgICAgICoKKyAgICAgKiB7IGVyYSwgeWVhciwgZ3JlZ29yaWFuWWVhciwgbW9udGgsIGRheU9mTW9udGgsIC4uLiB9CisgICAgICovCisgICAgdm9pZCBxdWFzaUdyZWdvcmlhblRlc3QoQ2FsZW5kYXIgY2FsLCBpbnRbXSBkYXRhKSB7CisgICAgICAgIC8vIEFzIG9mIEpESyAxLjQuMV8wMSwgdXNpbmcgdGhlIFN1biBKREsgR3JlZ29yaWFuQ2FsZW5kYXIgYXMKKyAgICAgICAgLy8gYSByZWZlcmVuY2UgdGhyb3dzIHVzIG9mZiBieSBvbmUgaG91ci4gIFRoaXMgaXMgbW9zdCBsaWtlbHkKKyAgICAgICAgLy8gZHVlIHRvIHRoZSBKREsgMS40IGluY29ycG9yYXRpb24gb2YgaGlzdG9yaWNhbCB0aW1lIHpvbmVzLgorICAgICAgICAvL2phdmEudXRpbC5DYWxlbmRhciBncmVnbyA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBncmVnbyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBpbnQgZXJhID0gZGF0YVtpKytdOworICAgICAgICAgICAgaW50IHllYXIgPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgZ3JlZ29yaWFuWWVhciA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCBtb250aCA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF0YVtpKytdOworCisgICAgICAgICAgICBncmVnby5jbGVhcigpOworICAgICAgICAgICAgZ3JlZ28uc2V0KGdyZWdvcmlhblllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgRCA9IGdyZWdvLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRheU9mTW9udGgpOworICAgICAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmIChkLmVxdWFscyhEKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGVyYSArICI6IiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkYXlPZk1vbnRoICsKKyAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlcmEgKyAiOiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5T2ZNb250aCArCisgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZCArICIsIGV4cGVjdGVkICIgKyBEKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShEKTsKKyAgICAgICAgICAgIGludCBlID0gY2FsLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaWYgKHkgPT0geWVhciAmJiBlID09IGVyYSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIEQgKyAiID0+ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkVSQSkgKyAiOiIgKworICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRmFpbDogIiArIEQgKyAiID0+ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkVSQSkgKyAiOiIgKworICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBlcmEgKyAiOiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IEJ1ZGRoaXN0Q2FsZW5kYXIgc2hpZnRzIHllYXJzIHRvIEJ1ZGRoaXN0IEVyYSBidXQgb3RoZXJ3aXNlCisgICAgICogYmVoYXZlcyBsaWtlIEdyZWdvcmlhbkNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWRkaGlzdCgpIHsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBCdWRkaGlzdENhbGVuZGFyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJFIDI1NDIgPT0gMTk5OSBDRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDI1NDIsIDE5OTksIENhbGVuZGFyLkpVTkUsIDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWRkaGlzdENvdmVyYWdlKCkgeworICAgIHsKKyAgICAgICAgLy8gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLFVMb2NhbGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIFRpbWVab25lIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBhbmQgTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKERhdGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKDI1NDMsIENhbGVuZGFyLk1BWSwgMjIpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBCdWRkaGlzdENhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyLCAxLCAxLCAxKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSxob3VyLG1pbnV0ZSxzZWNvbmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gZGF0YQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKDI1NDMsIENhbGVuZGFyLk1BWSwgMjIpOworICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgInRoX1RIIgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICJlbiIsICJhciIsICJodSIsICJ0aCIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IEphcGFuZXNlQ2FsZW5kYXIgc2hpZnRzIHllYXJzIHRvIEJ1ZGRoaXN0IEVyYSBidXQgb3RoZXJ3aXNlCisgICAgICogYmVoYXZlcyBsaWtlIEdyZWdvcmlhbkNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKYXBhbmVzZSgpIHsKKyAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHRoaXMgdGVzdCB3b3JrcyBmb3IgR3JlZ29yaWFuQ2FsZW5kYXIKKyAgICAgICAgaW50W10gY29udHJvbCA9IHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxODY4LCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDgsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTg2OCwgMTg2OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA5LAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE4NjksIDE4NjksIENhbGVuZGFyLkpVTkUsIDQsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuSlVMWSwgMjksCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuSlVMWSwgMzAsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuQVVHVVNULCAxLAorICAgICAgICB9OworICAgICAgICBxdWFzaUdyZWdvcmlhblRlc3QobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIGNvbnRyb2wpOworCisgICAgICAgIGludFtdIGRhdGEgPSB7CisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDgsCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDksCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAyLCAxODY5LCBDYWxlbmRhci5KVU5FLCA0LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDUsIDE5MTIsIENhbGVuZGFyLkpVTFksIDI5LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkpVTFksIDMwLAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkFVR1VTVCwgMSwKKyAgICAgICAgfTsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBKYXBhbmVzZUNhbGVuZGFyKCksIGRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbGltaXRzIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWdvcmlhbkxpbWl0cygpIHsKKyAgICAgICAgLy8gRmluYWwgcGFyYW1ldGVyIGlzIGVpdGhlciBudW1iZXIgb2YgZGF5cywgaWYgPiAwLCBvciB0ZXN0CisgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29uZHMsIGlmIDwgMC4KKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldCgyMDA0LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZG9MaW1pdHNUZXN0KG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLCBudWxsLCBjYWwuZ2V0VGltZSgpLCAtMTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYmVoYXZpb3Igb2YgZmllbGREaWZmZXJlbmNlIGFyb3VuZCBsZWFwIHllYXJzLiAgQWxzbyB0ZXN0IGEgbGFyZ2UKKyAgICAgKiBmaWVsZCBkaWZmZXJlbmNlIHRvIGNoZWNrIGJpbmFyeSBzZWFyY2guCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExlYXBGaWVsZERpZmZlcmVuY2UoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMjAwNCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkYXRlMjAwNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkYXRlMjAwMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGludCB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwNCwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBkID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwNCwgQ2FsZW5kYXIuREFZX09GX1lFQVIpOworICAgICAgICBpZiAoZCA9PSAwKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IDIwMDQvRmViLzI5IC0gMjAwMC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMjAwNC9GZWIvMjkgLSAyMDAwL0ZlYi8yOSA9ICIgKyB5ICsgIiB5ZWFycywgIiArIGQgKyAiIGRheXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuc2V0VGltZShkYXRlMjAwNCk7CisgICAgICAgIHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyMDAwLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDAsIENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKyAgICAgICAgaWYgKGQgPT0gMCkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAyMDAwL0ZlYi8yOSAtIDIwMDQvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDIwMDAvRmViLzI5IC0gMjAwNC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGVzdCBsYXJnZSBkaWZmZXJlbmNlCisgICAgICAgIGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuQVBSSUwsIDUpOyAvLyAyNDUyMDA1CisgICAgICAgIERhdGUgYXlsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldCgxOTY0LCBDYWxlbmRhci5TRVBURU1CRVIsIDcpOyAvLyAyNDM4NjQ2CisgICAgICAgIERhdGUgYXNsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoYXlsLCBDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBjYWwuc2V0VGltZShheWwpOworICAgICAgICBpbnQgZDIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGFzbCwgQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgaWYgKGQgPT0gLWQyICYmIGQgPT0gMTMzNTkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogbGFyZ2UgZmllbGQgZGlmZmVyZW5jZSBzeW1tZXRyaWNhbCAiICsgZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiRkFJTDogbGFyZ2UgZmllbGQgZGlmZmVyZW5jZSBpbmNvcnJlY3QgIiArIGQgKyAiLCAiICsgZDIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ICsvLSAxMzM1OSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBtc19NWSAiTWFsYXkgKE1hbGF5c2lhKSIgbG9jYWxlLiAgQnVnIDE1NDMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hbGF5c2lhbkluc3RhbmNlKCkgeworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgibXMiLCAiTVkiKTsgIC8vIE1hbGF5IChNYWxheXNpYSkKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgTWFsYXlzaWFuIGluc3RhbmNlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBzZXRGaXJzdERheU9mV2VlayBhbmQgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBtYXkgY2hhbmdlIHRoZQorICAgICAqIGZpZWxkIDw9PiB0aW1lIG1hcHBpbmcsIHNpbmNlIHRoZXkgYWZmZWN0IHRoZSBpbnRlcnByZXRhdGlvbiBvZgorICAgICAqIHRoZSBXRUVLX09GX01PTlRIIG9yIFdFRUtfT0ZfWUVBUiBmaWVsZHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdlZWtTaGlmdCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoOTk3MjU3NjAwMDAwTCkpOyAvLyBXZWQgQXVnIDA4IDAxOjAwOjAwIFBEVCAyMDAxCisgICAgICAgIC8vIEluIHBhc3Mgb25lLCBjaGFuZ2UgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIHNvIHRoYXQgdGhlIHdlZWtzCisgICAgICAgIC8vIHNoaWZ0IGluIEF1Z3VzdCAyMDAxLiAgSW4gcGFzcyB0d28sIGNoYW5nZSB0aGUgbWluaW1hbCBkYXlzCisgICAgICAgIC8vIGluIHRoZSBmaXJzdCB3ZWVrIHNvIHRoYXQgdGhlIHdlZWtzIHNoaWZ0IGluIEF1Z3VzdCAyMDAxLgorICAgICAgICAvLyAgICAgQXVndXN0IDIwMDEKKyAgICAgICAgLy8gU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAgICAgICAgLy8gICAgICAgICAgIDEgIDIgIDMgIDQKKyAgICAgICAgLy8gIDUgIDYgIDcgIDggIDkgMTAgMTEKKyAgICAgICAgLy8gMTIgMTMgMTQgMTUgMTYgMTcgMTgKKyAgICAgICAgLy8gMTkgMjAgMjEgMjIgMjMgMjQgMjUKKyAgICAgICAgLy8gMjYgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgaWYgKHBhc3M9PTApIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuV0VETkVTREFZKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayg0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgICAgICAgICAgY2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOyAvLyBGb3JjZSByZWNhbGMKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTEpOworCisgICAgICAgICAgICBEYXRlIHRpbWUxID0gY2FsLmdldFRpbWUoKTsgLy8gR2V0IHRpbWUgLS0gc2hvdWxkIG5vdCBjaGFuZ2UKKworICAgICAgICAgICAgLy8gTm93IGNoYW5nZSBhIHdlZWsgcGFyYW1ldGVyIGFuZCB0aGVuIGZvcmNlIGEgcmVjYWxjLgorICAgICAgICAgICAgLy8gVGhlIGJ1ZyBpcyB0aGF0IHRoZSByZWNhbGMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgLS0KKyAgICAgICAgICAgIC8vIGNhbGVuZGFyIHNob3VsZCBkbyBzbyBhdXRvbWF0aWNhbGx5LgorICAgICAgICAgICAgaWYgKHBhc3M9PTApIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuVEhVUlNEQVkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayg1KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHdveTEgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBpbnQgd29tMSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCk7CisKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7IC8vIEZvcmNlIHJlY2FsYworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAtMSk7CisKKyAgICAgICAgICAgIGludCB3b3kyID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgaW50IHdvbTIgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgpOworCisgICAgICAgICAgICBEYXRlIHRpbWUyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgaWYgKCF0aW1lMS5lcXVhbHModGltZTIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNoaWZ0aW5nIHdlZWsgc2hvdWxkIG5vdCBhbHRlciB0aW1lIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKHRpbWUxLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHdveTEgPT0gd295MiAmJiB3b20xID09IHdvbTIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFdFRUtfT0ZfWUVBUjogIiArIHdveTEgKworICAgICAgICAgICAgICAgICAgICAgICIsIFdFRUtfT0ZfTU9OVEg6ICIgKyB3b20xKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdFRUtfT0ZfWUVBUjogIiArIHdveTEgKyAiID0+ICIgKyB3b3kyICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBXRUVLX09GX01PTlRIOiAiICsgd29tMSArICIgPT4gIiArIHdvbTIgKworICAgICAgICAgICAgICAgICAgICAgICIgYWZ0ZXIgd2VlayBzaGlmdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHRoYXQgd2hlbiBhZGRpbmcgYSBkYXksIHdlIGFjdHVhbGx5IHdpbmQgdXAgaW4gYQorICAgICAqIGRpZmZlcmVudCBkYXkuICBUaGUgRFNUIGFkanVzdG1lbnRzIHdlIHVzZSB0byBrZWVwIHRoZSBob3VyCisgICAgICogY29uc3RhbnQgYWNyb3NzIERTVCBjaGFuZ2VzIGNhbiBiYWNrZmlyZSBhbmQgY2hhbmdlIHRoZSBkYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWVab25lVHJhbnNpdGlvbkFkZCgpIHsKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IExvY2FsZS5VUzsgLy8gY291bGQgYWxzbyBiZSBDSElOQQorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXQgPQorICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0geiIsIGxvY2FsZSk7CisKKyAgICAgICAgU3RyaW5nIHR6W10gPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKworICAgICAgICBmb3IgKGludCB6PTA7IHo8dHoubGVuZ3RoOyArK3opIHsKKyAgICAgICAgICAgIFRpbWVab25lIHQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSh0elt6XSk7CisgICAgICAgICAgICBkYXRlRm9ybWF0LnNldFRpbWVab25lKHQpOworCisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0LCBsb2NhbGUpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAvLyBTY2FuIHRoZSB5ZWFyIDIwMDMsIG92ZXJsYXBwaW5nIHRoZSBlZGdlcyBvZiB0aGUgeWVhcgorICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDAyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkRFQ0VNQkVSKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAyNSk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwzNjUrMTA7ICsraSkgeworICAgICAgICAgICAgICAgIERhdGUgeWVzdGVyZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVzdGVyZGF5X2RheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICAgICAgaWYgKHllc3RlcmRheV9kYXkgPT0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKHR6W3pdICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdC5mb3JtYXQoeWVzdGVyZGF5KSArICIgKzFkPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjE2ODQoKSB7CisgICAgICAgIGNsYXNzIFRlc3REYXRhIHsKKyAgICAgICAgICAgIGludCB5ZWFyOworICAgICAgICAgICAgaW50IG1vbnRoOworICAgICAgICAgICAgaW50IGRhdGU7CisgICAgICAgICAgICBpbnQgd29teWVhcjsKKyAgICAgICAgICAgIGludCB3b21tb247CisgICAgICAgICAgICBpbnQgd29tOworICAgICAgICAgICAgaW50IGRvdzsKKyAgICAgICAgICAgIFN0cmluZyBkYXRhOworICAgICAgICAgICAgU3RyaW5nIG5vcm1hbGl6ZWQ7CisKKyAgICAgICAgICAgIHB1YmxpYyBUZXN0RGF0YShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd29teWVhciwgaW50IHdvbW1vbiwgaW50IHdvbSwgaW50IGRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSwgU3RyaW5nIG5vcm1hbGl6ZWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnllYXIgPSB5ZWFyOworICAgICAgICAgICAgICAgIHRoaXMubW9udGggPSBtb250aC0xOworICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7CisgICAgICAgICAgICAgICAgdGhpcy53b215ZWFyID0gd29teWVhcjsKKyAgICAgICAgICAgICAgICB0aGlzLndvbW1vbiA9IHdvbW1vbi0xOworICAgICAgICAgICAgICAgIHRoaXMud29tID0gd29tOworICAgICAgICAgICAgICAgIHRoaXMuZG93ID0gZG93OworICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7IC8vIHllYXIsIG1vbnRoLCB3ZWVrIG9mIG1vbnRoLCBkYXkKKyAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZWQgPSBkYXRhOworICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkICE9IG51bGwpIHRoaXMubm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyAgICAgIEp1bHkgMjAwMSAgICAgICAgICAgIEF1Z3VzdCAyMDAxICAgICAgICAgICBKYW51YXJ5IDIwMDIKKyAgICAgICAgLy8gU3UgTW8gVHUgV2UgVGggRnIgU2EgIFN1IE1vIFR1IFdlIFRoIEZyIFNhICBTdSBNbyBUdSBXZSBUaCBGciBTYQorICAgICAgICAvLyAgMSAgMiAgMyAgNCAgNSAgNiAgNyAgICAgICAgICAgIDEgIDIgIDMgIDQgICAgICAgICAxICAyICAzICA0ICA1CisgICAgICAgIC8vICA4ICA5IDEwIDExIDEyIDEzIDE0ICAgNSAgNiAgNyAgOCAgOSAxMCAxMSAgIDYgIDcgIDggIDkgMTAgMTEgMTIKKyAgICAgICAgLy8gMTUgMTYgMTcgMTggMTkgMjAgMjEgIDEyIDEzIDE0IDE1IDE2IDE3IDE4ICAxMyAxNCAxNSAxNiAxNyAxOCAxOQorICAgICAgICAvLyAyMiAyMyAyNCAyNSAyNiAyNyAyOCAgMTkgMjAgMjEgMjIgMjMgMjQgMjUgIDIwIDIxIDIyIDIzIDI0IDI1IDI2CisgICAgICAgIC8vIDI5IDMwIDMxICAgICAgICAgICAgICAyNiAyNyAyOCAyOSAzMCAzMSAgICAgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgVGVzdERhdGFbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LCAgNiwgIDIwMDEsOCwyLENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDggMDIgTW9uIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCwgIDcsICAyMDAxLDgsMixDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA4IDAyIFR1ZSIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsICA1LC8qMTIsKi8gMjAwMSw4LDIsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMSAwOCAwMiBTdW4iLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LDYsIC8qNywgIDMwLCovIDIwMDEsNyw2LENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDcgMDYgTW9uIiwgIjIwMDEgMDggMDIgTW9uIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCw3LCAvKjcsICAzMSwqLyAyMDAxLDcsNixDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA3IDA2IFR1ZSIsICIyMDAxIDA4IDAyIFR1ZSIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsICA1LCAgMjAwMSw3LDYsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMSAwNyAwNiBTdW4iLCAiMjAwMSAwOCAwMiBTdW4iKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA3LCAgMzAsIDIwMDEsOCwxLENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDggMDEgTW9uIiwgIjIwMDEgMDcgMDUgTW9uIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgNywgIDMxLCAyMDAxLDgsMSxDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA4IDAxIFR1ZSIsICIyMDAxIDA3IDA1IFR1ZSIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDcsMjksIC8qOCwgIDUsKi8gIDIwMDEsOCwxLENhbGVuZGFyLlNVTkRBWSwgICAgIjIwMDEgMDggMDEgU3VuIiwgIjIwMDEgMDcgMDUgU3VuIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgMTIsIDMxLCAyMDAxLDEyLDYsQ2FsZW5kYXIuTU9OREFZLCAgICIyMDAxIDEyIDA2IE1vbiIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDIsIDEsICAxLCAgMjAwMiwxLDEsQ2FsZW5kYXIuVFVFU0RBWSwgICAiMjAwMiAwMSAwMSBUdWUiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgMiwgIDIwMDIsMSwxLENhbGVuZGFyLldFRE5FU0RBWSwgIjIwMDIgMDEgMDEgV2VkIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMiwgMSwgIDMsICAyMDAyLDEsMSxDYWxlbmRhci5USFVSU0RBWSwgICIyMDAyIDAxIDAxIFRodSIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDIsIDEsICA0LCAgMjAwMiwxLDEsQ2FsZW5kYXIuRlJJREFZLCAgICAiMjAwMiAwMSAwMSBGcmkiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgNSwgIDIwMDIsMSwxLENhbGVuZGFyLlNBVFVSREFZLCAgIjIwMDIgMDEgMDEgU2F0IiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwxMiwzMCwgLyoyMDAyLCAxLCAgNiwqLyAgMjAwMiwxLDEsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMiAwMSAwMSBTdW4iLCAiMjAwMSAxMiAwNiBTdW4iKSwKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgcGFzcyA9IDAsIGVycm9yID0gMCwgd2FybmluZyA9IDA7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSAieXl5eSBNTSBXVyBFRUUiOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgc2RmLnNldENhbGVuZGFyKGNhbCk7CisKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDEpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRlc3REYXRhIHRlc3QgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgIGxvZygiXG4tLS0tLVxuVGVzdGluZyByb3VuZCB0cmlwIG9mICIgKyB0ZXN0LnllYXIgKworICAgICAgICAgICAgICAgICAgIiAiICsgKHRlc3QubW9udGggKyAxKSArCisgICAgICAgICAgICAgICAgICAiICIgKyB0ZXN0LmRhdGUgKworICAgICAgICAgICAgICAgICAgIiAod3JpdHRlbiBhcykgIiArIHRlc3QuZGF0YSk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCh0ZXN0LnllYXIsIHRlc3QubW9udGgsIHRlc3QuZGF0ZSk7CisgICAgICAgICAgICBEYXRlIG1zID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHRlc3Qud29teWVhcik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCB0ZXN0LndvbW1vbik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIHRlc3Qud29tKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIHRlc3QuZG93KTsKKyAgICAgICAgICAgIERhdGUgbXMyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgaWYgKCFtczIuZXF1YWxzKG1zKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5FcnJvcjogR3JlZ29yaWFuQ2FsZW5kYXIuRE9NIGdhdmUgIiArIG1zICsKKyAgICAgICAgICAgICAgICAgICAgIlxuICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyLldPTSBnYXZlICIgKyBtczIpOworICAgICAgICAgICAgICAgIGVycm9yKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3MrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbXMyID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbXMyID0gc2RmLnBhcnNlKHRlc3QuZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFtczIuZXF1YWxzKG1zKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5FcnJvcjogR3JlZ29yaWFuQ2FsZW5kYXIgZ2F2ZSAgICAgICIgKyBtcyArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICBTaW1wbGVEYXRlRm9ybWF0LnBhcnNlIGdhdmUgIiArIG1zMik7CisgICAgICAgICAgICAgICAgZXJyb3IrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzcysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc2RmLmZvcm1hdChtcyk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHModGVzdC5ub3JtYWxpemVkKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5XYXJuaW5nOiBmb3JtYXQgb2YgJyIgKyB0ZXN0LmRhdGEgKyAiJyBnYXZlIiArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICAgICAgICAgICAgICAnIiArIHJlc3VsdCArICInIiArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICAgICBleHBlY3RlZCAnIiArIHRlc3Qubm9ybWFsaXplZCArICInIik7CisgICAgICAgICAgICAgICAgd2FybmluZysrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXNzKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIERhdGUgbXMzID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbXMzID0gc2RmLnBhcnNlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBleGNlcHRpb24gMjogIiArIGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW1zMy5lcXVhbHMobXMpKSB7CisgICAgICAgICAgICAgICAgZXJyb3IrKzsKKyAgICAgICAgICAgICAgICBsb2coIlxuRXJyb3I6IFJlLXBhcnNlIG9mICciICsgcmVzdWx0ICsgIicgZ2F2ZSB0aW1lIG9mICIgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICIgKyBtczMgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgbm90ICIgKyBtcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3MrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaW5mbyA9ICJcblBhc3NlZDogIiArIHBhc3MgKyAiLCBXYXJuaW5nczogIiArIHdhcm5pbmcgKyAiLCBFcnJvcnM6ICIgKyBlcnJvcjsKKyAgICAgICAgaWYgKGVycm9yID4gMCkgeworICAgICAgICAgICAgZXJybG4oaW5mbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbihpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIFpvbmVNZXRhIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Wm9uZU1ldGEoKSB7CisgICAgICAgIC8vIFRlc3QgaW5kZXggYnkgY291bnRyeSBBUEkKKworICAgICAgICAvLyBGb3JtYXQ6IHtjb3VudHJ5LCB6b25lMSwgem9uZTIsIC4uLiwgem9uZU59CisgICAgICAgIFN0cmluZyBDT1VOVFJZW11bXSA9IHsgeyIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlVTIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiUFNUIn0gfTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPENPVU5UUlkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGEgPSBab25lTWV0YS5nZXRBdmFpbGFibGVJRHMoQ09VTlRSWVtpXVswXSk7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiQ291bnRyeSBcIiIgKyBDT1VOVFJZW2ldWzBdICsgIlwiOiBbIik7CisgICAgICAgICAgICAvLyBVc2UgYml0bWFzayB0byB0cmFjayB3aGljaCBvZiB0aGUgZXhwZWN0ZWQgem9uZXMgd2Ugc2VlCisgICAgICAgICAgICBpbnQgbWFzayA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChqIT0wKSBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYVtqXSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0xOyBrPENPVU5UUllbaV0ubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtYXNrICYgKDE8PGspKSA9PSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBhW2pdLmVxdWFscyhDT1VOVFJZW2ldW2tdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWFzayB8PSAoMTw8ayk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCJdIik7CisgICAgICAgICAgICBtYXNrID4+PSAxOworICAgICAgICAgICAgLy8gQ2hlY2sgYml0bWFzayB0byBzZWUgaWYgd2Ugc2F3IGFsbCBleHBlY3RlZCB6b25lcworICAgICAgICAgICAgaWYgKG1hc2sgPT0gKDEgPDwgKENPVU5UUllbaV0ubGVuZ3RoLTEpKS0xKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IGVxdWl2YWxlbnQgSURzIEFQSQorCisgICAgICAgIGludCBuID0gWm9uZU1ldGEuY291bnRFcXVpdmFsZW50SURzKCJQU1QiKTsKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICBidWYuYXBwZW5kKCJFcXVpdmFsZW50IHRvIFBTVDogIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IFpvbmVNZXRhLmdldEVxdWl2YWxlbnRJRCgiUFNUIiwgaSk7CisgICAgICAgICAgICBpZiAoaWQuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpIHsKKyAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSE9MCkgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaWQpOworICAgICAgICB9CisgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmFibGUoKSB7CisgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYzAgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICBHcmVnb3JpYW5DYWxlbmRhciBjMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgIGMxLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgIGlmIChjMC5jb21wYXJlVG8oYzEpID49IDApIHsKKyAgICAgICAgZXJybG4oImNhbGVuZGFyICIgKyBjMCArICIgbm90IDwgIiArIGMxKTsKKyAgICB9CisgICAgYzAuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICBpZiAoYzAuY29tcGFyZVRvKGMxKSA8PSAwKSB7CisgICAgICAgIGVycmxuKCJjYWxlbmRhciAiICsgYzAgKyAiIG5vdCA+ICIgKyBjMSk7CisgICAgfQorCisgICAgYzAuc2V0VGltZUluTWlsbGlzKGMxLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICBpZiAoYzAuY29tcGFyZVRvKGMxKSAhPSAwKSB7CisgICAgICAgIGVycmxuKCJjYWxlbmRhciAiICsgYzAgKyAiIG5vdCA9PSAiICsgYzEpOworICAgIH0KKworICAgIC8vIGNvdmVyYWdlCisgICAgdHJ5IHsKKyAgICAgICAgYzAuY29tcGFyZVRvKChPYmplY3QpbnVsbCk7CisgICAgICAgIGVycmxuKCJjYWxlbmRhci5jb21wYXJlVG8gZGlkbid0IG9iamVjdCB0byBudWxsIGFyZyIpOworICAgIH0KKyAgICBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gbnBlKSB7CisgICAgICAgIGxvZ2xuKCJQQVNTOiBjYWxlbmRhci5jb21wYXJlVG8gb2JqZWN0ZWQgdG8gbnVsbCBhcmciKTsKKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWlzY2VsbGFuZW91cyB0ZXN0cyB0byBpbmNyZWFzZSBjb3ZlcmFnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIC8vIEJ1ZGRoaXN0Q2FsZW5kYXIKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBiY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKTsKKyAgICAgICAgLyppbnQgaSA9Ki8gYmNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkVSQSk7CisgICAgICAgIGJjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBiY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIC8qRGF0ZSBkID0gKi9iY2FsLmdldFRpbWUoKTsKKworICAgICAgICAvLyBDYWxlbmRhckFzdHJvbm9tZXIKKyAgICAgICAgLy8gKFRoaXMgY2xhc3Mgc2hvdWxkIHByb2JhYmx5IGJlIG1hZGUgcGFja2FnZS1wcml2YXRlLikKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICAvKlN0cmluZyBzID0gKi9hc3Ryby5sb2NhbCgwKTsKKworICAgICAgICAvLyBDaGluZXNlQ2FsZW5kYXIKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBjY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIGNjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBjY2FsLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICBjY2FsLnJvbGwoQ2FsZW5kYXIuWUVBUiwgMSk7CisgICAgICAgIGNjYWwuZ2V0VGltZSgpOworCisgICAgICAgIC8vIElDVSAyLjYKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbG9nbG4oY2FsLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbihjYWwuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLlVTKSk7CisgICAgICAgIGludCB3ZWVrZW5kT25zZXQ9LTE7CisgICAgICAgIGludCB3ZWVrZW5kQ2Vhc2U9LTE7CisgICAgICAgIGZvciAoaW50IGk9Q2FsZW5kYXIuU1VOREFZOyBpPD1DYWxlbmRhci5TQVRVUkRBWTsgKytpKSB7CisgICAgICAgICAgICBpZiAoY2FsLmdldERheU9mV2Vla1R5cGUoaSkgPT0gQ2FsZW5kYXIuV0VFS0VORF9PTlNFVCkgeworICAgICAgICAgICAgICAgIHdlZWtlbmRPbnNldCA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2FsLmdldERheU9mV2Vla1R5cGUoaSkgPT0gQ2FsZW5kYXIuV0VFS0VORF9DRUFTRSkgeworICAgICAgICAgICAgICAgIHdlZWtlbmRDZWFzZSA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY2FuJ3QgY2FsbCB0aGlzIHVubGVzcyB3ZSBnZXQgYSB0cmFuc2l0aW9uIGRheSAodW51c3VhbCksCisgICAgICAgIC8vIGJ1dCBtYWtlIHRoZSBjYWxsIGFueXdheSBmb3IgY292ZXJhZ2UgcmVhc29ucworICAgICAgICB0cnkgeworICAgICAgICAgICAgLyppbnQgeD0qLyBjYWwuZ2V0V2Vla2VuZFRyYW5zaXRpb24od2Vla2VuZE9uc2V0KTsKKyAgICAgICAgICAgIC8qaW50IHg9Ki8gY2FsLmdldFdlZWtlbmRUcmFuc2l0aW9uKHdlZWtlbmRDZWFzZSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAvKmludCB4PSovIGNhbC5pc1dlZWtlbmQobmV3IERhdGUoKSk7CisKKyAgICAgICAgLy8gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihnY2FsPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNhbGVuZGFyIGRpc3BsYXkgbmFtZTogIiArIGdjYWwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5nZXREZWZhdWx0KCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vY292ZXIgZ2V0QXZhaWxhYmxlVUxvY2FsZXMKKyAgICAgICAgZmluYWwgVUxvY2FsZVtdIGxvY2FsZXMgPSBDYWxlbmRhci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGlmIChjb3VudCA9PSAwKQorICAgICAgICAgICAgZXJybG4oImdldEF2YWlsYWJsZVVMb2NhbGVzIHJldHVybiBlbXB0eSBsaXN0Iik7CisgICAgICAgIGxvZ2xuKCIiICsgY291bnQgKyAiIGF2YWlsYWJsZSB1bG9jYWxlcyBpbiBDYWxlbmRhci4iKTsKKworICAgICAgICAvLyBKaXR0ZXJidWcgNDQ1MSwgZm9yIGNvdmVyYWdlCisgICAgICAgIGNsYXNzIFN0dWJDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHtyZXR1cm4gMDt9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7cmV0dXJuIDA7fQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7cmV0dXJuIDA7fQorICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCl7CisgICAgICAgICAgICAgICAgaWYgKENhbGVuZGFyLmdyZWdvcmlhblByZXZpb3VzTW9udGhMZW5ndGgoMjAwMCwyKSAhPSAyOSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJZZWFyIDIwMDAgRmViIHNob3VsZCBoYXZlIDI5IGRheXMuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gQ2FsZW5kYXIuanVsaWFuRGF5VG9NaWxsaXMoQ2FsZW5kYXIuTUFYX0pVTElBTik7CisgICAgICAgICAgICAgICAgaWYobWlsbGlzICE9IENhbGVuZGFyLk1BWF9NSUxMSVMpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZyb20ganVsaWFuRGF5VG9NaWxsaXMuIEdvdDoiICsgbWlsbGlzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGhhbmRsZUdldERhdGVGb3JtYXQoIiIsTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoaGFuZGxlR2V0RGF0ZUZvcm1hdCgiIixVTG9jYWxlLmdldERlZmF1bHQoKSkpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJDYWxlbmRhci5oYW5kbGVHZXREYXRlRm9ybWF0KFN0cmluZywgTG9jYWxlKSBzaG91bGQgZGVsZWdhdGUgdG8gKCAsVUxvY2FsZSkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFnZXRUeXBlKCkuZXF1YWxzKCJncmVnb3JpYW4iKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuICgiQ2FsZW5kYXIuZ2V0VHlwZSgpIHNob3VsZCBiZSAnZ3JlZ29yaWFuJyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHViQ2FsZW5kYXIgc3R1YiA9IG5ldyBTdHViQ2FsZW5kYXIoKTsKKyAgICAgICAgc3R1Yi5ydW4oKTsKKyAgICB9CisKKyAgICAvLyBUZXN0cyBmb3IgamIgNDU0MQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQ1NDEoKSB7CisgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisKKyAgICAgICAgLy8gISEhIFNob3VsZG4ndCB3ZSBoYXZlIGFuIGFwaSBsaWtlIHRoaXM/CisgICAgICAgIC8vICEhISBRdWVzdGlvbjogc2hvdWxkIHRoaXMgcmVmbGVjdCB0aG9zZSBhY3R1YWxseSBhdmFpbGFibGUgaW4gdGhpcyBjb3B5IG9mIElDVSwgb3IgCisgICAgICAgIC8vIHRoZSBsaXN0IG9mIHR5cGVzIHdlIGFzc3VtZSBpcyBhdmFpbGFibGU/CisgICAgICAgIC8vIFN0cmluZ1tdIGNhbFR5cGVzID0gQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlVHlwZXMoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gY2FsVHlwZXMgPSB7CisgICAgICAgICAgICAiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAiZ3JlZ29yaWFuIiwgImhlYnJldyIsIAorICAgICAgICAgICAgImlzbGFtaWMiLCAiaXNsYW1pYy1jaXZpbCIsICJqYXBhbmVzZSIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAvLyBjb25zdHJ1Y3RpbmcgYSBEYXRlRm9ybWF0IHdpdGggYSBsb2NhbGUgaW5kaWNhdGluZyBhIGNhbGVuZGFyIHR5cGUgc2hvdWxkIGNvbnN0cnVjdCBhCisgICAgICAgIC8vIGRhdGUgZm9ybWF0IGFwcHJvcHJpYXRlIHRvIHRoYXQgY2FsZW5kYXIKKyAgICAgICAgZmluYWwgRGF0ZSB0aW1lID0gbmV3IERhdGUoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxUeXBlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVUxvY2FsZSBhTG9jID0gbG9jLnNldEtleXdvcmRWYWx1ZSgiY2FsZW5kYXIiLCBjYWxUeXBlc1tpXSk7CisgICAgICAgICAgICBsb2dsbigibG9jYWxlOiAiICsgYUxvYyk7CisKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LkZVTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFMb2MpOworCisgICAgICAgICAgICBsb2dsbigiZGYgdHlwZTogIiArIGRmLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiBsb2M6ICIgKyBkZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpKTsKKworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gZGYuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgICAgIC8vIHRvZG8sIHdoYXQgYWJvdXQgdmFyaWFudHMgb2YgY2FsZW5kYXJzLCB3ZSBoYXZlIGEgdHlwZSBmb3IgaXNsYW1pYy1jaXZpbCwgc2hvdWxkIHdlIGFsc28gaGF2ZSBhIHR5cGUKKyAgICAgICAgICAgIC8vIGZvciB2YXJpYW50cyBvZiBvdGhlciBjYWxlbmRhcnM/CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImNhbGVuZGFyIHR5cGVzIiwgY2FsLmdldFR5cGUoKSwgY2FsVHlwZXNbaV0uZXF1YWxzKCJpc2xhbWljLWNpdmlsIikgPyAiaXNsYW1pYyIgOiBjYWxUeXBlc1tpXSk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBsb2dsbigiZGYyIHR5cGU6ICIgKyBkZjIuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIGxvYzogIiArIGRmMi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IHJlc3VsdHMiLCBkZi5mb3JtYXQodGltZSksIGRmMi5mb3JtYXQodGltZSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZGF0ZUZvcm1hdC5zZXRDYWxlbmRhciBzaG91bGQgdGhyb3cgZXhjZXB0aW9uIGlmIHdyb25nIGZvcm1hdCBmb3IgY2FsZW5kYXIKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuRlVMTCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1jaGluZXNlIikpOworCisgICAgICAgICAgICBsb2dsbigiZGF0ZWZvcm1hdCB0eXBlOiAiICsgZGYuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworCisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgiZW5fVVNAY2FsZW5kYXI9Y2hpbmVzZSIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oImNhbGVuZGFyIHR5cGU6ICIgKyBjYWwuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lzbGFtaWNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSXNsYW1pY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNTEzNmQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lzbGFtaWNUZXN0LmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBJc2xhbWljVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJc2xhbWljVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogQ29uc3RhbnRzIHRvIHNhdmUgdHlwaW5nLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1VSEFSUkFNID0gSXNsYW1pY0NhbGVuZGFyLk1VSEFSUkFNOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNBRkFSID0gIElzbGFtaWNDYWxlbmRhci5TQUZBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUJJXzEgPSAgSXNsYW1pY0NhbGVuZGFyLlJBQklfMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUJJXzIgPSAgSXNsYW1pY0NhbGVuZGFyLlJBQklfMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVU1BREFfMSA9ICBJc2xhbWljQ2FsZW5kYXIuSlVNQURBXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVNQURBXzIgPSAgSXNsYW1pY0NhbGVuZGFyLkpVTUFEQV8yOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBSkFCID0gIElzbGFtaWNDYWxlbmRhci5SQUpBQjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFCQU4gPSAgSXNsYW1pY0NhbGVuZGFyLlNIQUJBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQU1BREFOID0gIElzbGFtaWNDYWxlbmRhci5SQU1BREFOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQVdXQUwgPSAgSXNsYW1pY0NhbGVuZGFyLlNIQVdXQUw7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUlEQUggPSAgSXNsYW1pY0NhbGVuZGFyLkRIVV9BTF9RSURBSDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISUpKQUggPSAgSXNsYW1pY0NhbGVuZGFyLkRIVV9BTF9ISUpKQUg7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAKKyAgICAgICAgICAgIHsgICAwMDAxLCBRSURBSCwgICAgIDIsICAgICBNT05USCwgICAxLCAgICAgMDAwMSwgSElKSkFILCAgICAyIH0sICAgLy8gbm9uLWxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICAwMDAxLCBRSURBSCwgICAgIDIsICAgICBNT05USCwgICAyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAtMSwgICAgIDAwMDEsIFNIQVdXQUwsICAgMiB9LAorICAgICAgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAgMiwgICAgIE1PTlRILCAgMTIsICAgICAwMDAxLCBNVUhBUlJBTSwgIDIgfSwKKyAgICAgICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEzLCAgICAgMDAwMSwgU0FGQVIsICAgICAyIH0sCisKKyAgICAgICAgICAgIHsgICAwMDAxLCBISUpKQUgsICAgIDEsICAgICBEQVRFLCAgIDMwLCAgICAgMDAwMSwgSElKSkFILCAgICAyIH0sICAgLy8gMjktZGF5IG1vbnRoCisgICAgICAgICAgICB7ICAgMDAwMiwgSElKSkFILCAgICAxLCAgICAgREFURSwgICAzMSwgICAgIDAwMDIsIEhJSkpBSCwgICAgMiB9LCAgIC8vIDMwLWRheSBtb250aAorCisgICAgICAgICAgICAvLyBUcnkgc29tZSByb2xscyB0aGF0IHJlcXVpcmUgb3RoZXIgZmllbGRzIHRvIGJlIGFkanVzdGVkCisgICAgICAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sIDMwLCAgICAgTU9OVEgsICAgMSwgICAgIDAwMDEsIFNBRkFSLCAgICAyOSB9LAorICAgICAgICAgICAgeyAgIDAwMDIsIEhJSkpBSCwgICAzMCwgICAgIFlFQVIsICAgLTEsICAgICAwMDAxLCBISUpKQUgsICAgMjkgfSwKKyAgICAgICAgfTsKKyAgICAgICAKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ld0NpdmlsKCk7CisKKyAgICAgICAgZG9Sb2xsQWRkKFJPTEwsIGNhbCwgdGVzdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgaHVnZSBsaXN0IG9mIHRlc3QgY2FzZXMgdG8gbWFrZSBzdXJlIHRoYXQgY29tcHV0ZVRpbWUgYW5kIGNvbXB1dGVGaWVsZHMKKyAgICAgKiB3b3JrIHByb3Blcmx5IGZvciBhIHdpZGUgcmFuZ2Ugb2YgZGF0YSBpbiB0aGUgY2l2aWwgY2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENpdmlsQ2FzZXMoKQorICAgIHsKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBNb3N0IG9mIHRoZXNlIHRlc3QgY2FzZXMgd2VyZSB0YWtlbiBmcm9tIHRoZSBiYWNrIG9mCisgICAgICAgICAgICAvLyAiQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIiwgd2l0aCBzb21lIGV4dHJhcyBhZGRlZCB0byBoZWxwCisgICAgICAgICAgICAvLyBkZWJ1ZyBhIGZldyBvZiB0aGUgcHJvYmxlbXMgdGhhdCBjcm9wcGVkIHVwIGluIGRldmVsb3BtZW50LgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFRoZSBtb250aHMgaW4gdGhpcyB0YWJsZSBhcmUgMS1iYXNlZCByYXRoZXIgdGhhbiAwLWJhc2VkLAorICAgICAgICAgICAgLy8gYmVjYXVzZSBpdCdzIGVhc2llciB0byBlZGl0IHRoYXQgd2F5LgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIElzbGFtaWMKKyAgICAgICAgICAgIC8vICAgICAgICAgIEp1bGlhbiBEYXkgIEVyYSAgWWVhciAgTW9udGggRGF5ICBXa0RheSBIb3VyIE1pbiBTZWMKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNTA3MjMxLjUsICAwLCAtMTI0NSwgICAxMiwgICA5LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTY2MDAzNy41LCAgMCwgIC04MTMsICAgIDIsICAyMywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3NDY4OTMuNSwgIDAsICAtNTY4LCAgICA0LCAgIDEsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzcwNjQxLjUsICAwLCAgLTUwMSwgICAgNCwgICA2LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTg5MjczMS41LCAgMCwgIC0xNTcsICAgMTAsICAxNywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE5MzE1NzkuNSwgIDAsICAgLTQ3LCAgICA2LCAgIDMsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxOTc0ODUxLjUsICAwLCAgICA3NSwgICAgNywgIDEzLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjA5MTE2NC41LCAgMCwgICA0MDMsICAgMTAsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxMjE1MDkuNSwgIDAsICAgNDg5LCAgICA1LCAgMjIsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTU1Nzc5LjUsICAwLCAgIDU4NiwgICAgMiwgICA3LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE3NDAyOS41LCAgMCwgICA2MzcsICAgIDgsICAgNywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxOTE1ODQuNSwgIDAsICAgNjg3LCAgICAyLCAgMjAsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTk1MjYxLjUsICAwLCAgIDY5NywgICAgNywgICA3LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjIyOTI3NC41LCAgMCwgICA3OTMsICAgIDcsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyNDU1ODAuNSwgIDAsICAgODM5LCAgICA3LCAgIDYsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjY2MTAwLjUsICAwLCAgIDg5NywgICAgNiwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI4ODU0Mi41LCAgMCwgICA5NjAsICAgIDksICAzMCwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTA5MDEuNSwgIDAsICAgOTY3LCAgICA1LCAgMjcsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzIzMTQwLjUsICAwLCAgMTA1OCwgICAgNSwgIDE4LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDg0OC41LCAgMCwgIDEwOTEsICAgIDYsICAgMiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzNDgwMjAuNSwgIDAsICAxMTI4LCAgICA4LCAgIDQsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzY2OTc4LjUsICAwLCAgMTE4MiwgICAgMiwgICAzLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM4NTY0OC41LCAgMCwgIDEyMzQsICAgMTAsICAxMCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzOTI4MjUuNSwgIDAsICAxMjU1LCAgICAxLCAgMTEsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDE2MjIzLjUsICAwLCAgMTMyMSwgICAgMSwgIDIxLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQyNTg0OC41LCAgMCwgIDEzNDgsICAgIDMsICAxOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzAyNjYuNSwgIDAsICAxMzYwLCAgICA5LCAgIDgsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMwODMzLjUsICAwLCAgMTM2MiwgICAgNCwgIDEzLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMTAwNC41LCAgMCwgIDEzNjIsICAgMTAsICAgNywgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NDg2OTguNSwgIDAsICAxNDEyLCAgICA5LCAgMTMsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUwMTM4LjUsICAwLCAgMTQxNiwgICAxMCwgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2NTczNy41LCAgMCwgIDE0NjAsICAgMTAsICAxMiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0ODYwNzYuNSwgIDAsICAxNTE4LCAgICAzLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjaXZpbENhbGVuZGFyID0gbmV3Q2l2aWwoKTsKKyAgICAgICAgY2l2aWxDYWxlbmRhci5zZXRMZW5pZW50KHRydWUpOworICAgICAgICBkb1Rlc3RDYXNlcyh0ZXN0cywgY2l2aWxDYWxlbmRhcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3Q2l2aWwoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTAwMCwgMCwgMzApOworICAgICAgICBsb2dsbigiMTAwMC8wLzMwIC0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KFlFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgY2FsLmdldChNT05USCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgY2FsLmdldChEQVRFKSk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEsIDAsIDMwKTsKKyAgICAgICAgbG9nbG4oIjEvMC8zMCAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoVGltZVpvbmUpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihMb2NhbGUpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihEYXRlKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlLGhvdXIsbWludXRlLHNlY29uZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBzZXRDaXZpbC9pc0NpdmlsCisgICAgICAgIC8vIG9wZXJhdGlvbnMgb24gbm9uLWNpdmlsIGNhbGVuZGFyCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKDgwMCwgSXNsYW1pY0NhbGVuZGFyLlJBTUFEQU4sIDEsIDEsIDEsIDEpOworICAgICAgICBjYWwuc2V0Q2l2aWwoZmFsc2UpOworICAgICAgICBpZiAoY2FsLmlzQ2l2aWwoKSkgeworICAgICAgICBlcnJsbigiaXNsYW1pYyBjYWxlbmRhciBpcyBjaXZpbCIpOworICAgICAgICB9CisKKyAgICAgICAgRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICBjYWwuc2V0VGltZShub3cpOworCisgICAgICAgIERhdGUgdGhlbiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICghbm93LmVxdWFscyh0aGVuKSkgeworICAgICAgICBlcnJsbigiZ2V0L3NldCB0aW1lIGZhaWxlZCB3aXRoIG5vbi1jaXZpbCBpc2xhbWljIGNhbGVuZGFyIik7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbih0aGVuLnRvU3RyaW5nKCkpOworCisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgMSk7CisKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgeworICAgICAgICAvLyBkYXRhCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKDgwMCwgSXNsYW1pY0NhbGVuZGFyLlJBTUFEQU4sIDEpOworICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgImFyX0FFIiwgImFyX0JIIiwgImFyX0RaIiwgImFyX0VHIiwgImFyX0pPIiwgImFyX0tXIiwgImFyX09NIiwgCisgICAgICAgICJhcl9RQSIsICJhcl9TQSIsICJhcl9TWSIsICJhcl9ZRSIsICJtc19NWSIKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworICAgICAgICAiZW4iLCAiYXIiLCAiZmkiLCAiZnIiLCAiaHUiLCAiaXciLCAibmwiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYWxMb2NOYW1lID0gY2FsZW5kYXJMb2NhbGVzW2ldOworICAgICAgICBMb2NhbGUgY2FsTG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShjYWxMb2NOYW1lKTsKKyAgICAgICAgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihjYWxMb2NhbGUpOworCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgTG9jYWxlIGZvcm1hdExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jTmFtZSk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBJc2xhbWljQ2FsZW5kYXIgbmV3Q2l2aWwoKSB7CisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjaXZpbENhbGVuZGFyID0gbmV3IElzbGFtaWNDYWxlbmRhcigpOworICAgICAgICBjaXZpbENhbGVuZGFyLnNldENpdmlsKHRydWUpOworICAgICAgICByZXR1cm4gY2l2aWxDYWxlbmRhcjsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSmFwYW5lc2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSmFwYW5lc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdlMGQyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9KYXBhbmVzZVRlc3QuamF2YQpAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBKYXBhbmVzZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSwgVUxvY2FsZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIFRpbWVab25lIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoRGF0ZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIERhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDMsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggZXJhLHllYXIsbW9udGgsZGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMSwgMSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUsaG91cixtaW4sc2Vjb25kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIGxpbWl0cworICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEphcGFuZXNlQ2FsZW5kYXIuTUVJSkkpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICBsb2dsbigibWluIGVyYTogIiArIGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkVSQSkpOworICAgICAgICBsb2dsbigibWluIHllYXI6ICIgKyBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuWUVBUikpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgIH0KKyAgICAKKyAgICB7CisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcigxODY4LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICJlbiIsICJqYV9KUCIKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworICAgICAgICAiZW4iLCAiamEiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYWxMb2NOYW1lID0gY2FsZW5kYXJMb2NhbGVzW2ldOworICAgICAgICBMb2NhbGUgY2FsTG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShjYWxMb2NOYW1lKTsKKyAgICAgICAgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoY2FsTG9jYWxlKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gZm9ybWF0TG9jYWxlc1tqXTsKKyAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgIGxvZ2xuKGNhbExvY05hbWUgKyAiLyIgKyBsb2NOYW1lICsgIiAtLT4gIiArIGZvcm1hdC5mb3JtYXQodGltZSkpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QzODYwKCkKKyAgICB7CisgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoImphX0pQQGNhbGVuZGFyPWphcGFuZXNlIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKGxvYyk7CisgICAgICAgIERhdGVGb3JtYXQgZW5qZm9ybWF0ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KDAsMCxuZXcgVUxvY2FsZSgiZW5fSlBAY2FsZW5kYXI9amFwYW5lc2UiKSk7CisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KDAsMCxsb2MpOworICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4oInkuTS5kIik7ICAvLyBOb3RlOiBqdXN0ICd5JyBkb2Vzbid0IHdvcmsgaGVyZS4KKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBhRGF0ZSA9IGZvcm1hdC5wYXJzZSgiMS4xLjkiLCBwb3MpOyAvLyBhZnRlciB0aGUgc3RhcnQgb2YgaGVpc2VpIGFjY2Vzc2lvbi4gIEphbiAxLCAxSCB3b3VsZG4ndCB3b3JrICBiZWNhdXNlIGl0IGlzIGFjdHVhbGx5IHNob3dhIDY0CisgICAgICAgIFN0cmluZyBpbkVuID0gZW5qZm9ybWF0LmZvcm1hdChhRGF0ZSk7CisgICAgICAgIAorICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoYURhdGUpOworICAgICAgICBpbnQgZ290WWVhciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBnb3RFcmEgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0WWVhciA9IDE7CisgICAgICAgIGludCBleHBlY3RFcmEgPSBKYXBhbmVzZUNhbGVuZGFyLkNVUlJFTlRfRVJBOworICAgICAgICAKKyAgICAgICAgaWYoKGdvdFllYXIgIT0gZXhwZWN0WWVhcikgfHwgKGdvdEVyYSAhPSBleHBlY3RFcmEpKSB7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgeWVhciAiICsgZXhwZWN0WWVhciArICIsIGVyYSAiICsgZXhwZWN0RXJhICsiLCBidXQgZ290IHllYXIgIiArIGdvdFllYXIgKyAiIGFuZCBlcmEgIiArIGdvdEVyYSArICIsID09ICIgKyBpbkVuKTsKKyAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgeWVhciAiICsgZ290WWVhciArICIgYW5kIGVyYSAiICsgZ290RXJhICsgIiwgPT0gIiArIGluRW4pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3Q1MzQ1cGFyc2UoKSB7CisgICAgICAgIC8vIFRlc3QgcGFyc2Ugd2l0aCBpbmNvbXBsZXRlIGluZm9ybWF0aW9uCisgICAgICAgIERhdGVGb3JtYXQgZm10Mj0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsgLy9EYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5VUyk7CisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgYyA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgbmV3IFVMb2NhbGUoImVuX1VTIikpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IChTaW1wbGVEYXRlRm9ybWF0KWMuZ2V0RGF0ZVRpbWVGb3JtYXQoMSwxLG5ldyBVTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1qYXBhbmVzZSIpKTsKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiRyB5Iik7CisgICAgICAgIGxvZ2xuKCJmbXQncyBsb2NhbGUgPSAiICsgZm10LmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpKTsKKyAgICAgICAgLy9TaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJHIHkiLCBuZXcgTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1qYXBhbmVzZSIpKTsKKyAgICAgICAgbG9uZyBhRGF0ZUxvbmcgPSAtMzE5NzEyMDQwMDAwMEwgCisgICAgICAgICAgICArIDM2MDAwMDBMOyAvLyBjb21wZW5zYXRlIGZvciBEU1QKKyAgICAgICAgRGF0ZSBhRGF0ZSA9IG5ldyBEYXRlKGFEYXRlTG9uZyk7IC8vMDggU2VwdCAxODY4CisgICAgICAgIGxvZ2xuKCJhRGF0ZTogIiArIGFEYXRlLnRvU3RyaW5nKCkgKyIsIGZyb20gIiArIGFEYXRlTG9uZyk7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIHN0ciA9IGZtdDIuZm9ybWF0KGFEYXRlKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgRGF0ZTogIiArIHN0cik7CisgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoYURhdGUpOworICAgICAgICBsb2dsbigiYXMgSmFwYW5lc2UgQ2FsZW5kYXI6ICIgKyBzdHIpOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiTWVpamkgMSI7CisgICAgICAgIGlmKCFzdHIuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgc3RyKTsKKyAgICAgICAgfQorICAgICAgICBEYXRlIG90aGVyRGF0ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG90aGVyRGF0ZSA9IGZtdC5wYXJzZShleHBlY3RlZCk7CisgICAgICAgICAgICBpZighb3RoZXJEYXRlLmVxdWFscyhhRGF0ZSkpIHsgCisgICAgICAgICAgICAgICAgU3RyaW5nIHN0cjM7CisgICAgLy8gICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwOworICAgICAgICAgICAgICAgIERhdGUgZGQgPSBmbXQucGFyc2UoZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIHN0cjMgPSBmbXQuZm9ybWF0KG90aGVyRGF0ZSk7CisgICAgICAgICAgICAgICAgbG9uZyBvTG9uZyA9IG90aGVyRGF0ZS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgbG9uZyBhTG9uZyA9IG90aGVyRGF0ZS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnNlIGluY29ycmVjdCBvZiAiICsgZXhwZWN0ZWQgKyAiOiAgd2FudGVkICIgKyBhRGF0ZSArICIgKCIrYUxvbmcrIiksIGJ1dCBnb3QgIiArICAiICIgKworICAgICAgICAgICAgICAgICAgICBvdGhlckRhdGUgKyAiICgiK29Mb25nKyIpID0gIiArIHN0cjMgKyAiIG5vdCAiICsgZGQudG9TdHJpbmcoKSApOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUGFyc2VkIE9LOiAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnNlRXhjZXB0aW9uOiAiICsgcGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBwZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrRXhwZWN0ZWQoQ2FsZW5kYXIgYywgaW50IGV4cGVjdGVkW10gKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICAgICAiRVJBIiwgIllFQVIiLCAiTU9OVEgiLCAiV0VFS19PRl9ZRUFSIiwgIldFRUtfT0ZfTU9OVEgiLAorICAgICAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICAgICAiTUlOVVRFIiwgIlNFQ09ORCIsICJNSUxMSVNFQ09ORCIsICJaT05FX09GRlNFVCIsCisgICAgICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IoaW50IGk9IDA7aTxleHBlY3RlZC5sZW5ndGg7aSArPSAyKSB7CisgICAgICAgICAgICBpbnQgZmllbGROdW0gPSBleHBlY3RlZFtpKzBdOworICAgICAgICAgICAgaW50IGV4cGVjdGVkVmFsID0gZXhwZWN0ZWRbaSsxXTsKKyAgICAgICAgICAgIGludCBhY3R1YWxWYWwgPSBjLmdldChmaWVsZE51bSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkVmFsID09IGFjdHVhbFZhbCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKEZJRUxEX05BTUVbZmllbGROdW1dKyI6ICIrIGFjdHVhbFZhbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiK0ZJRUxEX05BTUVbZmllbGROdW1dKyI6IGV4cGVjdGVkICIrIGV4cGVjdGVkVmFsICsgIiBnb3QgIiArICBhY3R1YWxWYWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDUzNDVjYWxlbmRhcigpIHsKKyAgICAgICAgbG9nbG4oIioqIHRlc3RJbmNvbXBsZXRlQ2FsZW5kYXIoKSIpOworICAgICAgICAvLyBUZXN0IGNhbGVuZGFyIHdpdGggaW5jb21wbGV0ZSBpbmZvcm1hdGlvbgorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGMgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICBsb2dsbigidGVzdCBjbGVhciIpOworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0ZWQwW10gPSB7ICAgQ2FsZW5kYXIuRVJBLCAwICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLllFQVIsIC02NDMgfTsKKyAgICAgICAgY2hlY2tFeHBlY3RlZChjLCBleHBlY3RlZDApOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0IHNldHRpbmcgZXJhIik7CisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0ZWRBW10gPSB7ICAgQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJIH07CisgICAgICAgIGNoZWNrRXhwZWN0ZWQoYywgZXhwZWN0ZWRBKTsKKyAgICAgICAgCisKKyAgICAgICAgbG9nbG4oInRlc3Qgc2V0dGluZyBlcmEgYW5kIHllYXIgYW5kIG1vbnRoIGFuZCBkYXRlIik7CisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KQU5VQVJZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdGVkQ1tdID0geyAgIENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSAtMX07CisgICAgICAgIGNoZWNrRXhwZWN0ZWQoYywgZXhwZWN0ZWRDKTsKKyAgICAgICAgCisKKyAgICAgICAgbG9nbG4oInRlc3Qgc2V0dGluZyAgeWVhciBhbmQgbW9udGggYW5kIGRhdGUgVEhFTiBlcmEiKTsKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpBTlVBUlkpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBjaGVja0V4cGVjdGVkKGMsIGV4cGVjdGVkQyk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgbG9nbG4oInRlc3Qgc2V0dGluZyBlcmEgYW5kIHllYXIiKTsKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuRVJBLCBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0ZWRCW10gPSB7IENhbGVuZGFyLkVSQSwgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5ZRUFSLCAxIH07CisgICAgICAgIGNoZWNrRXhwZWN0ZWQoYywgZXhwZWN0ZWRCKTsKKyAgICAgICAgCisgICAgfQorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMDc4NWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgY2FsZW5kYXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgIkFzdHJvVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ2FsZW5kYXJSZWdyZXNzaW9uIiwKKyAgICAgICAgICAgICAgICAgICJDb21wYXRpYmlsaXR5VGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29wdGljVGVzdCIsCisgICAgICAgICAgICAgICAgICAiRXRoaW9waWNUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJIZWJyZXdUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJQk1DYWxlbmRhclRlc3QiLAorICAgICAgICAgICAgICAgICAgIklzbGFtaWNUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJKYXBhbmVzZVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNoaW5lc2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJIb2xpZGF5VGVzdCIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkNhbGVuZGFycywgSG9saWRheSwgYW5kIEFzdHJvIHRlc3RzIgorICAgICAgICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIkNhbGVuZGFyIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0Q2FzZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RDYXNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmYwNjJkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0Q2FzZS5qYXZhCkBAIC0wLDAgKzEsMjQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIHBzZXVkbyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gdGhhdCBpcyB1c2VmdWwgZm9yIHRlc3RpbmcKKyAqIG5ldyBjYWxlbmRhcnMuICBBIDxjb2RlPlRlc3RDYXNlPC9jb2RlPiBvYmplY3QgaXMgdXNlZCB0byBob2xkIHRoZQorICogZmllbGQgYW5kIG1pbGxpc2Vjb25kIHZhbHVlcyB0aGF0IHRoZSBjYWxlbmRhciBzaG91bGQgaGF2ZSBhdCBvbmUKKyAqIHBhcnRpY3VsYXIgaW5zdGFudCBpbiB0aW1lLiAgVGhlIGFwcGx5RmllbGRzIGFuZCBhcHBseVRpbWUKKyAqIG1ldGhvZHMgYXJlIHVzZWQgdG8gYXBwbHkgdGhlc2Ugc2V0dGluZ3MgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCBiZWluZworICogdGVzdGVkLCBhbmQgdGhlIGVxdWFscyBhbmQgZmllbGRzRXF1YWwgbWV0aG9kcyBhcmUgdXNlZCB0byBlbnN1cmUKKyAqIHRoYXQgdGhlIGNhbGVuZGFyIGhhcyBlbmRlZCB1cCBpbiB0aGUgcmlnaHQgc3RhdGUuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Q2FzZSB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFBzZXVkby1DYWxlbmRhciBmaWVsZHMgYW5kIG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJvdGVjdGVkIGludFtdIGZpZWxkcyA9IG5ldyBpbnRbMzJdOworICAgIHByb3RlY3RlZCBib29sZWFuW10gaXNTZXQgPSBuZXcgYm9vbGVhblszMl07CisgICAgcHJvdGVjdGVkIGxvbmcgdGltZTsKKworICAgIHByb3RlY3RlZCB2b2lkIHNldChpbnQgZmllbGQsIGludCB2YWx1ZSkgeworICAgICAgICBmaWVsZHNbZmllbGRdID0gdmFsdWU7CisgICAgICAgIGlzU2V0W2ZpZWxkXSA9IHRydWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGludCBnZXQoaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBmaWVsZHNbZmllbGRdOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGlzU2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gaXNTZXRbZmllbGRdOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldFRpbWUoRGF0ZSBkKSB7CisgICAgICAgIHRpbWUgPSBkLmdldFRpbWUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0ZSBnZXRUaW1lKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUodGltZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGVzdCBjYXNlJ3MgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZG93VG9TdHJpbmcoZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSkgKyAiICIgKworICAgICAgICAgICAgZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsgKGdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworICAgICAgICAgICAgZ2V0KENhbGVuZGFyLkRBVEUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIERPV19OQU1FUyA9IHsKKyAgICAgICAgIlN1biIsICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZG93VG9TdHJpbmcoaW50IGRvdykgeworICAgICAgICAtLWRvdzsKKyAgICAgICAgcmV0dXJuIChkb3cgPCAwIHx8IGRvdyA+IDYpID8KKyAgICAgICAgICAgICgiPERPVyAiICsgZG93ICsgIj4iKSA6IERPV19OQU1FU1tkb3ddOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgYSBUZXN0Q2FzZSBvYmplY3QgdXNpbmcgYSBqdWxpYW4gZGF5IG51bWJlciBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgWUVBUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSBNT05USCAoMS1iYXNlZCkgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIGRheSAgICAgICBUaGUgREFZX09GX01PTlRIIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgVGhlIERBWV9PRl9XRUVLIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIEhPVVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIG1pbiAgICAgICBUaGUgTUlOVVRFIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBzZWMgICAgICAgVGhlIFNFQ09ORCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdENhc2UoZG91YmxlIGp1bGlhbiwKKyAgICAgICAgICAgICAgICAgICAgaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgaW50IGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgaW50IGhvdXIsIGludCBtaW4sIGludCBzZWMpCisgICAgeworICAgICAgICBzZXRUaW1lKG5ldyBEYXRlKEpVTElBTl9FUE9DSCArIChsb25nKShPTkVfREFZICoganVsaWFuKSkpOworICAgICAgICAKKyAgICAgICAgc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICBzZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoIC0gMSk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVRFLCBkYXkpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRheU9mV2Vlayk7CisgICAgICAgIHNldChDYWxlbmRhci5IT1VSLCBob3VyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1JTlVURSwgbWluKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLlNFQ09ORCwgc2VjKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGEgVGVzdENhc2Ugb2JqZWN0IHVzaW5nIGEgR3JlZ29yaWFuIHllYXIvbW9udGgvZGF5IGFuZAorICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkcyBmb3IgdGhlIGNhbGVuZGFyIGJlaW5nIHRlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBncmVnWWVhciAgVGhlIEdyZWdvcmlhbiB5ZWFyIG9mIHRoZSBkYXRlIHRvIGJlIHRlc3RlZAorICAgICAqIEBwYXJhbSBncmVnTW9udGggVGhlIEdyZWdvcmlhbiBtb250aCBvZiB0aGUgZGF0ZSB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAcGFyYW0gZ3JlZ0RheSAgIFRoZSBHcmVnb3JpYW4gZGF5IG9mIHRoZSBtb250aCBvZiB0aGUgZGF0ZSB0byBiZSB0ZXN0ZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBlcmEgICAgICAgVGhlIEVSQSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgWUVBUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgTU9OVEggKDAtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gZGF5ICAgICAgIFRoZSBEQVlfT0ZfTU9OVEggZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgVGhlIERBWV9PRl9XRUVLIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSBIT1VSIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gbWluICAgICAgIFRoZSBNSU5VVEUgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSBzZWMgICAgICAgVGhlIFNFQ09ORCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICovCisgICAgcHVibGljIFRlc3RDYXNlKGludCBncmVnWWVhciwgaW50IGdyZWdNb250aCwgaW50IGdyZWdEYXksCisgICAgICAgICAgICAgICAgICAgIGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgIGludCBob3VyLCBpbnQgbWluLCBpbnQgc2VjKQorICAgIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihVVEMsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBncmVnLmNsZWFyKCk7CisgICAgICAgIGdyZWcuc2V0KGdyZWdZZWFyLCBncmVnTW9udGgtMSwgZ3JlZ0RheSk7CisgICAgICAgIHNldFRpbWUoZ3JlZy5nZXRUaW1lKCkpOworICAgICAgICAKKyAgICAgICAgc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICBzZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoIC0gMSk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVRFLCBkYXkpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRheU9mV2Vlayk7CisgICAgICAgIHNldChDYWxlbmRhci5IT1VSLCBob3VyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1JTlVURSwgbWluKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLlNFQ09ORCwgc2VjKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRm9yIHN1YmNsYXNzZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIFRlc3RDYXNlKCkge30KKworICAgIC8qKgorICAgICAqIEFwcGx5IHRoaXMgdGVzdCBjYXNlJ3MgZmllbGQgdmFsdWVzIHRvIGFub3RoZXIgY2FsZW5kYXIKKyAgICAgKiBieSBjYWxsaW5nIGl0cyBzZXQgbWV0aG9kIGZvciBlYWNoIGZpZWxkLiAgVGhpcyBpcyB1c2VmdWwgaW4gY29tYmluYXRpb24KKyAgICAgKiB3aXRoIHRoZSBlcXVhbCBtZXRob2QuCisgICAgICoKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZXF1YWxzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlGaWVsZHMoQ2FsZW5kYXIgYykgeworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBjLmdldEZpZWxkQ291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNTZXQoaSkpIHsKKyAgICAgICAgICAgICAgICBjLnNldChpLCBnZXQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFwcGx5IHRoaXMgdGVzdCBjYXNlJ3MgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYW5vdGhlciBjYWxlbmRhcgorICAgICAqIGJ5IGNhbGxpbmcgaXRzIHNldFRpbWUgbWV0aG9kLiAgVGhpcyBpcyB1c2VmdWwgaW4gY29tYmluYXRpb24KKyAgICAgKiB3aXRoIGZpZWxkc0VxdWFsCisgICAgICoKKyAgICAgKiBAc2VlICNmaWVsZHNFcXVhbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5VGltZShDYWxlbmRhciBjKSB7CisgICAgICAgIGMuc2V0VGltZShuZXcgRGF0ZSh0aW1lKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZpZWxkcyBvZiB0aGlzIGNhbGVuZGFyCisgICAgICogYXJlIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIG90aGVyIGNhbGVuZGFyLiAgVGhpcyBtZXRob2QgaXMgdXNlZnVsCisgICAgICogZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIG90aGVyIGNhbGVuZGFyJ3MgY29tcHV0ZUZpZWxkcyBtZXRob2QKKyAgICAgKiB3b3JrcyBwcm9wZXJseS4gIEZvciBleGFtcGxlOgorICAgICAqIDxwcmU+CisgICAgICogICAgQ2FsZW5kYXIgdGVzdENhbGVuZGFyID0gLi4uCisgICAgICogICAgVGVzdENhc2UgY2FzZSA9IC4uLgorICAgICAqICAgIGNhc2UuYXBwbHlUaW1lKHRlc3RDYWxlbmRhcik7CisgICAgICogICAgaWYgKCFjYXNlLmZpZWxkc0VxdWFsKHRlc3RDYWxlbmRhcikpIHsKKyAgICAgKiAgICAgICAgLy8gRXJyb3IhCisgICAgICogICAgfQorICAgICAqIDwvcHJlPgorICAgICAqIAorICAgICAqIEBzZWUgI2FwcGx5VGltZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGZpZWxkc0VxdWFsKENhbGVuZGFyIGMsIFRlc3RMb2cgbG9nKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGMuZ2V0RmllbGRDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpc1NldChpKSAmJiBnZXQoaSkgIT0gYy5nZXQoaSkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIkZhaWw6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGkpICsgIiA9ICIgKyBjLmdldChpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBnZXQoaSkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxjLmdldEZpZWxkQ291bnQoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1NldChqKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldChqKSA9PSBjLmdldChqKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICBvazogIiArIENhbGVuZGFyVGVzdC5maWVsZE5hbWUoaikgKyAiID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuZ2V0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4gIGZhaWw6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGopICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldChqKSArICIsIGV4cGVjdGVkICIgKyBnZXQoaikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZy5lcnJsbihidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGltZSBpbiBtaWxsaXNlY29uZHMgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIG90aGVyIGNhbGVuZGFyLiAgVGhpcyBtZXRob2QgaXMgdXNlZnVsCisgICAgICogZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIG90aGVyIGNhbGVuZGFyJ3MgY29tcHV0ZVRpbWUgbWV0aG9kCisgICAgICogd29ya3MgcHJvcGVybHkuICBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgIENhbGVuZGFyIHRlc3RDYWxlbmRhciA9IC4uLgorICAgICAqICAgIFRlc3RDYXNlIGNhc2UgPSAuLi4KKyAgICAgKiAgICBjYXNlLmFwcGx5RmllbGRzKHRlc3RDYWxlbmRhcik7CisgICAgICogICAgaWYgKCFjYXNlLmVxdWFscyh0ZXN0Q2FsZW5kYXIpKSB7CisgICAgICogICAgICAgIC8vIEVycm9yIQorICAgICAqICAgIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNhcHBseUZpZWxkcworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIHJldHVybiB0aW1lID09ICgoQ2FsZW5kYXIpb2JqKS5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX1NFQ09ORCA9IDEwMDA7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9NSU5VVEUgPSA2MCpPTkVfU0VDT05EOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfSE9VUiAgID0gNjAqT05FX01JTlVURTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgT05FX0RBWSAgICA9IDI0Kk9ORV9IT1VSOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBKVUxJQU5fRVBPQ0ggPSAtMjEwODY2NzYwMDAwMDAwTDsgICAvLyAxLzEvNDcxMyBCQyAxMjowMAorCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTaW1wbGVUaW1lWm9uZSBVVEMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NiODg1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBjYWxlbmRhciBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGZmYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2hhcnNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgY29sbGF0aW9uIGFuZCBzZWFyY2ggdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgIlRlc3RDaGFyc2V0IiwKKyAgICAgICAgICAgICAgICAgICJUZXN0Q29udmVyc2lvbiIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkFsbCBJQ1UgQ2hhcnNldCBUZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDaGFyc2V0IjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldC9UZXN0Q2hhcnNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENoYXJzZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Njg4YjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENoYXJzZXQuamF2YQpAQCAtMCwwICsxLDE1MzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJhY3RlckNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LlVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LnNwaS5DaGFyc2V0UHJvdmlkZXI7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuY2hhcnNldC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK3B1YmxpYyBjbGFzcyBUZXN0Q2hhcnNldCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZyA9ICJVVEYtMTYiOworICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBudWxsOworICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBudWxsOworICAgIENoYXJzZXQgY2hhcnNldCA9bnVsbDsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHVuaXN0ciA9ICJhYmNkXHVkODAwXHVkYzAwXHUxMjM0XHUwMGE1XHUzMDAwXHJcbiI7CisgICAgc3RhdGljIGZpbmFsIGJ5dGVbXSBieXRlU3RyID17ICAgCisgICAgICAgICAgICAoYnl0ZSkgMHgwMCwoYnl0ZSkgJ2EnLAorICAgICAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpICdiJywKKyAgICAgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnYycsCisgICAgICAgICAgICAoYnl0ZSkgMHgwMCwoYnl0ZSkgJ2QnLAorICAgICAgICAgICAgKGJ5dGUpIDB4ZDgsKGJ5dGUpIDB4MDAsCisgICAgICAgICAgICAoYnl0ZSkgMHhkYywoYnl0ZSkgMHgwMCwKKyAgICAgICAgICAgIChieXRlKSAweDEyLChieXRlKSAweDM0LAorICAgICAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpIDB4YTUsCisgICAgICAgICAgICAoYnl0ZSkgMHgzMCwoYnl0ZSkgMHgwMCwKKyAgICAgICAgICAgIChieXRlKSAweDAwLChieXRlKSAweDBkLAorICAgICAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpIDB4MGEgfTsKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGV4cGVjdGVkQnl0ZVN0ciA9eworICAgICAgICAoYnl0ZSkgMHhGRSwoYnl0ZSkgMHhGRiwgICAgCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnYScsCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnYicsCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnYycsCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAnZCcsCisgICAgICAgIChieXRlKSAweGQ4LChieXRlKSAweDAwLAorICAgICAgICAoYnl0ZSkgMHhkYywoYnl0ZSkgMHgwMCwKKyAgICAgICAgKGJ5dGUpIDB4MTIsKGJ5dGUpIDB4MzQsCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAweGE1LAorICAgICAgICAoYnl0ZSkgMHgzMCwoYnl0ZSkgMHgwMCwKKyAgICAgICAgKGJ5dGUpIDB4MDAsKGJ5dGUpIDB4MGQsCisgICAgICAgIChieXRlKSAweDAwLChieXRlKSAweDBhIH07CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgICAgICAvL0NoYXJzZXQgY2hhcnNldCA9IENoYXJzZXRJQ1UuZm9yTmFtZShlbmNvZGluZyk7CisgICAgICAgICAgICBjaGFyc2V0ID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoZW5jb2RpbmcpOworICAgICAgICAgICAgZGVjb2RlciA9IChDaGFyc2V0RGVjb2RlcikgY2hhcnNldC5uZXdEZWNvZGVyKCk7CisgICAgICAgICAgICBlbmNvZGVyID0gKENoYXJzZXRFbmNvZGVyKSBjaGFyc2V0Lm5ld0VuY29kZXIoKTsgICAKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGNoYXJzZXQgZGF0YSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdENoYXJzZXQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVVEYxNkNvbnZlcnRlcigpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXIgaWN1ID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGNzMSA9IGljdS5jaGFyc2V0Rm9yTmFtZSgiVVRGLTE2Iik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGUxID0gY3MxLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZDEgPSBjczEubmV3RGVjb2RlcigpOworICAgICAgICAKKyAgICAgICAgQ2hhcnNldCBjczIgPSBpY3UuY2hhcnNldEZvck5hbWUoIlVURi0xNkxFIik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGUyID0gY3MyLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZDIgPSBjczIubmV3RGVjb2RlcigpOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTB4MDAwMDsgaTwweDEwRkZGRjsgaSs9MHhGRil7CisgICAgICAgICAgICBDaGFyQnVmZmVyIHVzID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSgweEZGKjIpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBiczEgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDB4RkYqOCk7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGJzMiA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoMHhGRio4KTsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8MHhGRjsgaisrKXsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IGkrajsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoKGM+PTB4ZDgwMCYmYzw9MHhkRkZGKXx8Yz4weDEwRkZGRil7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKGM+MHhGRkZGKXsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpOworICAgICAgICAgICAgICAgICAgICBpZighVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJsZWFkIGlzIG5vdCBsZWFkISIrbGVhZCsiIGZvciBjcDogXFxVIitJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigidHJhaWwgaXMgbm90IHRyYWlsISIrdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdXMucHV0KGxlYWQpOworICAgICAgICAgICAgICAgICAgICB1cy5wdXQodHJhaWwpOworICAgICAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKShsZWFkPj44KSk7CisgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKGxlYWQmMHhGRikpOworICAgICAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKSh0cmFpbD4+OCkpOworICAgICAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKSh0cmFpbCYweEZGKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKShsZWFkJjB4RkYpKTsKKyAgICAgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkobGVhZD4+OCkpOworICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKSh0cmFpbCYweEZGKSk7CisgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKHRyYWlsPj44KSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisKKyAgICAgICAgICAgICAgICAgICAgaWYoYzwweEZGKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpMHgwMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBiczEucHV0KChieXRlKShjKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKShjKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKTB4MDApOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKGM+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpKGMmMHhGRikpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKShjJjB4RkYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpKGM+PjgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1cy5wdXQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHVzLmxpbWl0KHVzLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgdXMucG9zaXRpb24oMCk7CisgICAgICAgICAgICBpZih1cy5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKworICAgICAgICAgICAgYnMxLmxpbWl0KGJzMS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGJzMS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgbmV3QlMgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGJzMS5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZFKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZGKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dChiczEpOyAgICAKKyAgICAgICAgICAgIGJzMS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQxLCAiVVRGLTE2IiwgYnMxLCB1cyk7CisgICAgICAgICAgICBzbUJ1ZkVuY29kZShlMSwgIlVURi0xNiIsIHVzLCBuZXdCUyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJzMi5saW1pdChiczIucG9zaXRpb24oKSk7CisgICAgICAgICAgICBiczIucG9zaXRpb24oMCk7CisgICAgICAgICAgICBuZXdCUy5jbGVhcigpOworICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4RkYpOworICAgICAgICAgICAgbmV3QlMucHV0KChieXRlKTB4RkUpOworICAgICAgICAgICAgbmV3QlMucHV0KGJzMik7ICAgICAKKyAgICAgICAgICAgIGJzMi5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQyLCAiVVRGMTYtTEUiLCBiczIsIHVzKTsKKyAgICAgICAgICAgIHNtQnVmRW5jb2RlKGUyLCAiVVRGLTE2TEUiLCB1cywgbmV3QlMpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVVEYzMkNvbnZlcnRlcigpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXIgaWN1ID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGNzMSA9IGljdS5jaGFyc2V0Rm9yTmFtZSgiVVRGLTMyIik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGUxID0gY3MxLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZDEgPSBjczEubmV3RGVjb2RlcigpOworICAgICAgICAKKyAgICAgICAgQ2hhcnNldCBjczIgPSBpY3UuY2hhcnNldEZvck5hbWUoIlVURi0zMkxFIik7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGUyID0gY3MyLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQ2hhcnNldERlY29kZXIgZDIgPSBjczIubmV3RGVjb2RlcigpOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTB4MWQ4Mjc7IGk8MHgxMEZGRkY7IGkrPTB4RkYpeworICAgICAgICAgICAgQ2hhckJ1ZmZlciB1cyA9IENoYXJCdWZmZXIuYWxsb2NhdGUoMHhGRioyKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnMxID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgweEZGKjgpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBiczIgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDB4RkYqOCk7CisgICAgICAgICAgICBmb3IoaW50IGo9MDtqPDB4RkY7IGorKyl7CisgICAgICAgICAgICAgICAgaW50IGMgPSBpK2o7CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKChjPj0weGQ4MDAmJmM8PTB4ZEZGRil8fGM+MHgxMEZGRkYpeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihjPjB4RkZGRil7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgbGVhZCA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjKTsKKworICAgICAgICAgICAgICAgICAgICB1cy5wdXQobGVhZCk7CisgICAgICAgICAgICAgICAgICAgIHVzLnB1dCh0cmFpbCk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHVzLnB1dCgoY2hhciljKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkgKGMgPj4+IDI0KSk7CisgICAgICAgICAgICAgICAgYnMxLnB1dCgoYnl0ZSkgKGMgPj4+IDE2KSk7IAorICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpIChjID4+PiA4KSk7IAorICAgICAgICAgICAgICAgIGJzMS5wdXQoKGJ5dGUpIChjICYgMHhGRikpOyAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnMyLnB1dCgoYnl0ZSkgKGMgJiAweEZGKSk7ICAKKyAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKSAoYyA+Pj4gOCkpOworICAgICAgICAgICAgICAgIGJzMi5wdXQoKGJ5dGUpIChjID4+PiAxNikpOyAKKyAgICAgICAgICAgICAgICBiczIucHV0KChieXRlKSAoYyA+Pj4gMjQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJzMS5saW1pdChiczEucG9zaXRpb24oKSk7CisgICAgICAgICAgICBiczEucG9zaXRpb24oMCk7CisgICAgICAgICAgICBiczIubGltaXQoYnMyLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgYnMyLnBvc2l0aW9uKDApOworICAgICAgICAgICAgdXMubGltaXQodXMucG9zaXRpb24oKSk7CisgICAgICAgICAgICB1cy5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGlmKHVzLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorCisgICAgICAgICAgICBCeXRlQnVmZmVyIG5ld0JTID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZShiczEuY2FwYWNpdHkoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweDAwKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweDAwKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZFKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZGKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dChiczEpOyAgICAKKyAgICAgICAgICAgIGJzMS5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQxLCAiVVRGLTMyIiwgYnMxLCB1cyk7CisgICAgICAgICAgICBzbUJ1ZkVuY29kZShlMSwgIlVURi0zMiIsIHVzLCBuZXdCUyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmV3QlMuY2xlYXIoKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZGKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweEZFKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweDAwKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dCgoYnl0ZSkweDAwKTsKKyAgICAgICAgICAgIG5ld0JTLnB1dChiczIpOyAgICAKKyAgICAgICAgICAgIGJzMi5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIHNtQnVmRGVjb2RlKGQyLCAiVVRGLTMyTEUiLCBiczIsIHVzKTsKKyAgICAgICAgICAgIHNtQnVmRW5jb2RlKGUyLCAiVVRGLTMyTEUiLCB1cywgbmV3QlMpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVNDSUlDb252ZXJ0ZXIoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVyIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBpY3VDaGFyID0gaWN1LmNoYXJzZXRGb3JOYW1lKCJBU0NJSSIpOworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gaWN1Q2hhci5uZXdFbmNvZGVyKCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBpY3VDaGFyLm5ld0RlY29kZXIoKTsKKworICAgICAgICBDaGFyQnVmZmVyIHVzID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSgweDkwKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBicyA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoMHg5MCk7CisgICAgICAgIGZvcihpbnQgaj0wO2o8PTB4N2Y7IGorKyl7CisgICAgICAgICAgIHVzLnB1dCgoY2hhcilqKTsKKyAgICAgICAgICAgYnMucHV0KChieXRlKWopOworICAgICAgICB9CisgICAgICAgIGJzLmxpbWl0KGJzLnBvc2l0aW9uKCkpOworICAgICAgICBicy5wb3NpdGlvbigwKTsKKyAgICAgICAgdXMubGltaXQodXMucG9zaXRpb24oKSk7CisgICAgICAgIHVzLnBvc2l0aW9uKDApOworICAgICAgICBzbUJ1ZkRlY29kZShkZWNvZGVyLCAiQVNDSUkiLCBicywgdXMpOworICAgICAgICBzbUJ1ZkVuY29kZShlbmNvZGVyLCAiQVNDSUkiLCB1cywgYnMpOworICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdDg4NTkxQ29udmVydGVyKCl7CisgICAgICAgIENoYXJzZXRQcm92aWRlciBpY3UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgaWN1Q2hhciA9IGljdS5jaGFyc2V0Rm9yTmFtZSgiaXNvLTg4NTktMSIpOworICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gaWN1Q2hhci5uZXdFbmNvZGVyKCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBpY3VDaGFyLm5ld0RlY29kZXIoKTsKKworICAgICAgICBDaGFyQnVmZmVyIHVzID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSgweDEwMCk7CisgICAgICAgIEJ5dGVCdWZmZXIgYnMgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDB4MTAwKTsKKyAgICAgICAgZm9yKGludCBqPTA7ajw9MHhGZjsgaisrKXsKKyAgICAgICAgICAgdXMucHV0KChjaGFyKWopOworICAgICAgICAgICBicy5wdXQoKGJ5dGUpaik7CisgICAgICAgIH0KKyAgICAgICAgYnMubGltaXQoYnMucG9zaXRpb24oKSk7CisgICAgICAgIGJzLnBvc2l0aW9uKDApOworICAgICAgICB1cy5saW1pdCh1cy5wb3NpdGlvbigpKTsKKyAgICAgICAgdXMucG9zaXRpb24oMCk7CisgICAgICAgIHNtQnVmRGVjb2RlKGRlY29kZXIsICJpc28tODg1OS0xIiwgYnMsIHVzKTsKKyAgICAgICAgc21CdWZFbmNvZGUoZW5jb2RlciwgImlzby04ODU5LTEiLCB1cywgYnMpOworICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJU2VtYW50aWNzKC8qU3RyaW5nIGVuY29kaW5nKi8pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBpbnQgcmM7CisgICAgICAgIEJ5dGVCdWZmZXIgYnllcyA9IEJ5dGVCdWZmZXIud3JhcChieXRlU3RyKTsKKyAgICAgICAgQ2hhckJ1ZmZlciB1bmlWYWwgPSBDaGFyQnVmZmVyLndyYXAodW5pc3RyKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBleHBlY3RlZCA9IEJ5dGVCdWZmZXIud3JhcChleHBlY3RlZEJ5dGVTdHIpOworICAgICAgICAKKyAgICAgICAgcmMgPSAwOworICAgICAgICBpZihkZWNvZGVyPT1udWxsKXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgZGVjb2Rlci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBkZWNvZGVyLnJlc2V0KCk7CisgICAgICAgIC8qIENvbnZlcnQgdGhlIHdob2xlIGJ1ZmZlciB0byBVbmljb2RlICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDaGFyQnVmZmVyIGNoYXJzID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSh1bmlzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUoYnllcywgY2hhcnMsIGZhbHNlKTsKKworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBlbmNvdW50ZXJlZCBFcnJvciIpOworICAgICAgICAgICAgICAgIHJjID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgZW5jb3VudGVyZWQgb3ZlcmZsb3cgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgcmMgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFlcXVhbHMoY2hhcnMsIHVuaXN0cikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHByaW50Y2hhcnMoY2hhcnMpOworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCA6ICIpOworICAgICAgICAgICAgICAgIHByaW50Y2hhcnModW5pc3RyKTsKKyAgICAgICAgICAgICAgICByYyA9IDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIC0gZXhjZXB0aW9uIGluIGJ1ZmZlciIpOworICAgICAgICAgICAgcmMgPSA1OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCBzaW5nbGUgYnl0ZXMgdG8gVW5pY29kZSAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2hhckJ1ZmZlciBjaGFycyA9IENoYXJCdWZmZXIuYWxsb2NhdGUodW5pc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYiA9IEJ5dGVCdWZmZXIud3JhcChieXRlU3RyKTsKKyAgICAgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdD1udWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gYnl0ZVN0ci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGIubGltaXQoaSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUoYiwgY2hhcnMsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZihyZXN1bHQuaXNPdmVyZmxvdygpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgc2luZ2xlIHRocmV3IGFuIG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBzaW5nbGUgdGhlIHJlc3VsdCBpcyBhbiBlcnJvciAiK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHVuaXN0ci5sZW5ndGgoKSAhPSAoY2hhcnMubGltaXQoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBzaW5nbGUgbGVuIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcmMgPSAzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFlcXVhbHMoY2hhcnMsIHVuaXN0cikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBzaW5nbGUgZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICBwcmludGNoYXJzKGNoYXJzKTsKKyAgICAgICAgICAgICAgICByYyA9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVG9DaGFycyAtIGV4Y2VwdGlvbiBpbiBzaW5nbGUiKTsKKyAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHJjID0gNjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgdGhlIGJ1ZmZlciBvbmUgYXQgYSB0aW1lIHRvIFVuaWNvZGUgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENoYXJCdWZmZXIgY2hhcnMgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKHVuaXN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICBkZWNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBieWVzLnJld2luZCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gYnl0ZVN0ci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGJ5ZXMubGltaXQoaSk7CisgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUoYnllcywgY2hhcnMsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igd2hpbGUgZGVjb2Rpbmc6ICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihyZXN1bHQuaXNPdmVyZmxvdygpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgU2ltcGxlIHRocmV3IGFuIG92ZXJmbG93IGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaGFycy5saW1pdCgpICE9IHVuaXN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb0NoYXJzIFNpbXBsZSBidWZmZXIgbGVuIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcmMgPSA3OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFlcXVhbHMoY2hhcnMsIHVuaXN0cikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9DaGFycyBTaW1wbGUgYnVmZmVyIGRvZXMgbm90IG1hdGNoIik7CisgICAgICAgICAgICAgICAgcHJpbnRjaGFycyhjaGFycyk7CisgICAgICAgICAgICAgICAgZXJyKCIgRXhwZWN0ZWQgOiAiKTsKKyAgICAgICAgICAgICAgICBwcmludGNoYXJzKHVuaXN0cik7CisgICAgICAgICAgICAgICAgcmMgPSA4OworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlRvQ2hhcnMgLSBleGNlcHRpb24gaW4gc2luZ2xlIGJ1ZmZlciIpOworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZShTeXN0ZW0uZXJyKTsKKyAgICAgICAgICAgIHJjID0gOTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmMgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgU2ltcGxlIFRvQ2hhcnMgZm9yIGVuY29kaW5nIDogRkFJTEVEIik7CisgICAgICAgIH0KKworICAgICAgICByYyA9IDA7CisgICAgICAgIC8qIENvbnZlcnQgdGhlIHdob2xlIGJ1ZmZlciBmcm9tIHVuaWNvZGUgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnl0ZXMgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGV4cGVjdGVkQnl0ZVN0ci5sZW5ndGgpOworICAgICAgICAgICAgZW5jb2Rlci5yZXNldCgpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUodW5pVmFsLCBieXRlcywgZmFsc2UpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIHJlcG9ydGVkIGVycm9yOiAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJjID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHJlc3VsdC5pc092ZXJmbG93KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgdGhyZXcgYW4gb3ZlcmZsb3cgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBieXRlcy5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGlmICghYnl0ZXMuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICBwcmludGJ5dGVzKGJ5dGVzKTsKKyAgICAgICAgICAgICAgICByYyA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIC0gZXhjZXB0aW9uIGluIGJ1ZmZlciIpOworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZShTeXN0ZW0uZXJyKTsKKyAgICAgICAgICAgIHJjID0gNTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgdGhlIGJ1ZmZlciBvbmUgY2hhciBhdCBhIHRpbWUgdG8gdW5pY29kZSAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBieXRlcyA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoZXhwZWN0ZWRCeXRlU3RyLmxlbmd0aCk7CisgICAgICAgICAgICBDaGFyQnVmZmVyIGMgPSBDaGFyQnVmZmVyLndyYXAodW5pc3RyKTsKKyAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdD0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHVuaXN0ci5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgYy5saW1pdChpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmVuY29kZShjLCBieXRlcywgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmKHJlc3VsdC5pc092ZXJmbG93KCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIHNpbmdsZSB0aHJldyBhbiBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYocmVzdWx0LmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2luZ2xlIHRocmV3IGFuIGVycm9yOiAiKyByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGV4cGVjdGVkQnl0ZVN0ci5sZW5ndGggIT0gYnl0ZXMubGltaXQoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2luZ2xlIGxlbiBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHJjID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnl0ZXMucG9zaXRpb24oMCk7CisgICAgICAgICAgICBpZiAoIWJ5dGVzLmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIHNpbmdsZSBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHByaW50Ynl0ZXMoYnl0ZXMpOworICAgICAgICAgICAgICAgIHJjID0gNDsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyAtIGV4Y2VwdGlvbiBpbiBzaW5nbGUiKTsKKyAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoU3lzdGVtLmVycik7CisgICAgICAgICAgICByYyA9IDY7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb252ZXJ0IG9uZSBjaGFyIGF0IGEgdGltZSB0byB1bmljb2RlICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGJ5dGVzID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZShleHBlY3RlZEJ5dGVTdHIubGVuZ3RoKTsKKyAgICAgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wID0gdW5pc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQ9bnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRlbXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB1bmlWYWwubGltaXQoaSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUodW5pVmFsLCBieXRlcywgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmKHJlc3VsdC5pc092ZXJmbG93KCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIHNpbXBsZSB0aHJldyBhbiBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYocmVzdWx0LmlzRXJyb3IoKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgc2ltcGxlIHRocmV3IGFuIGVycm9yOiAiKyByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ5dGVzLmxpbWl0KCkgIT0gZXhwZWN0ZWRCeXRlU3RyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGcm9tQ2hhcnMgU2ltcGxlIGxlbiBkb2VzIG5vdCBtYXRjaCIpOworICAgICAgICAgICAgICAgIHJjID0gNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYnl0ZXMuZXF1YWxzKGJ5ZXMpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZyb21DaGFycyBTaW1wbGUgZG9lcyBub3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICBwcmludGJ5dGVzKGJ5dGVzKTsKKyAgICAgICAgICAgICAgICByYyA9IDg7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRnJvbUNoYXJzIC0gZXhjZXB0aW9uIGluIHNpbmdsZSBidWZmZXIiKTsKKyAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoU3lzdGVtLmVycik7CisgICAgICAgICAgICByYyA9IDk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IFNpbXBsZSBGcm9tQ2hhcnMgIiArIGVuY29kaW5nICsgIiAtLUZBSUxFRCIpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBwcmludGNoYXJzKENoYXJCdWZmZXIgYnVmKSB7CisgICAgICAgIGludCBpOworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhcltidWYubGltaXQoKV07CisgICAgICAgIC8vc2F2ZSB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICBpbnQgcG9zID0gYnVmLnBvc2l0aW9uKCk7CisgICAgICAgIGJ1Zi5wb3NpdGlvbigwKTsKKyAgICAgICAgYnVmLmdldChjaGFycyk7CisgICAgICAgIC8vcmVzZXQgdG8gb2xkIHBvc2l0aW9uCisgICAgICAgIGJ1Zi5wb3NpdGlvbihwb3MpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGVycihoZXgoY2hhcnNbaV0pICsgIiAiKTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiIik7CisgICAgfQorICAgIHZvaWQgcHJpbnRjaGFycyhTdHJpbmcgc3RyKSB7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBlcnIoaGV4KGNoYXJzW2ldKSArICIgIik7CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIiIpOworICAgIH0KKyAgICB2b2lkIHByaW50Ynl0ZXMoQnl0ZUJ1ZmZlciBidWYpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2J1Zi5saW1pdCgpXTsKKyAgICAgICAgLy9zYXZlIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIGludCBwb3MgPSBidWYucG9zaXRpb24oKTsKKyAgICAgICAgYnVmLnBvc2l0aW9uKDApOworICAgICAgICBidWYuZ2V0KGJ5dGVzKTsKKyAgICAgICAgLy9yZXNldCB0byBvbGQgcG9zaXRpb24KKyAgICAgICAgYnVmLnBvc2l0aW9uKHBvcyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChoZXgoYnl0ZXNbaV0pICsgIiAiKTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKENoYXJCdWZmZXIgYnVmLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIHJldHVybiBlcXVhbHMoYnVmLCBzdHIudG9DaGFyQXJyYXkoKSk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhDaGFyQnVmZmVyIGJ1ZiwgQ2hhckJ1ZmZlciBzdHIpIHsKKyAgICAgICAgcmV0dXJuIGVxdWFscyhidWYuYXJyYXkoKSwgc3RyLmFycmF5KCkpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQ2hhckJ1ZmZlciBidWYsIGNoYXJbXSBjb21wYXJlVG8pIHsKKyAgICAgICAgY2hhcltdIGNoYXJzID0gbmV3IGNoYXJbYnVmLmxpbWl0KCldOworICAgICAgICAvL3NhdmUgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgICAgaW50IHBvcyA9IGJ1Zi5wb3NpdGlvbigpOworICAgICAgICBidWYucG9zaXRpb24oMCk7CisgICAgICAgIGJ1Zi5nZXQoY2hhcnMpOworICAgICAgICAvL3Jlc2V0IHRvIG9sZCBwb3NpdGlvbgorICAgICAgICBidWYucG9zaXRpb24ocG9zKTsKKyAgICAgICAgcmV0dXJuIGVxdWFscyhjaGFycywgY29tcGFyZVRvKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoY2hhcltdIGNoYXJzLCBjaGFyW10gY29tcGFyZVRvKSB7CisgICAgICAgIGlmIChjaGFycy5sZW5ndGggIT0gY29tcGFyZVRvLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgIkxlbmd0aCBkb2VzIG5vdCBtYXRjaCBjaGFyczogIgorICAgICAgICAgICAgICAgICAgICArIGNoYXJzLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICArICIgY29tcGFyZVRvOiAiCisgICAgICAgICAgICAgICAgICAgICsgY29tcGFyZVRvLmxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJzW2ldICE9IGNvbXBhcmVUb1tpXSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJHb3Q6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChjaGFyc1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChjb21wYXJlVG9baV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEF0OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhCeXRlQnVmZmVyIGJ1ZiwgYnl0ZVtdIGNvbXBhcmVUbykgeworICAgICAgICBieXRlW10gY2hhcnMgPSBuZXcgYnl0ZVtidWYubGltaXQoKV07CisgICAgICAgIC8vc2F2ZSB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICBpbnQgcG9zID0gYnVmLnBvc2l0aW9uKCk7CisgICAgICAgIGJ1Zi5wb3NpdGlvbigwKTsKKyAgICAgICAgYnVmLmdldChjaGFycyk7CisgICAgICAgIC8vcmVzZXQgdG8gb2xkIHBvc2l0aW9uCisgICAgICAgIGJ1Zi5wb3NpdGlvbihwb3MpOworICAgICAgICByZXR1cm4gZXF1YWxzKGNoYXJzLCBjb21wYXJlVG8pOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQnl0ZUJ1ZmZlciBidWYsIEJ5dGVCdWZmZXIgY29tcGFyZVRvKSB7CisgICAgICAgIHJldHVybiBlcXVhbHMoYnVmLmFycmF5KCksIGNvbXBhcmVUby5hcnJheSgpKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKGJ5dGVbXSBjaGFycywgYnl0ZVtdIGNvbXBhcmVUbykgeworICAgICAgICBpZiAoY2hhcnMubGVuZ3RoICE9IGNvbXBhcmVUby5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICJMZW5ndGggZG9lcyBub3QgbWF0Y2ggY2hhcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgKyBjaGFycy5sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgKyAiIGNvbXBhcmVUbzogIgorICAgICAgICAgICAgICAgICAgICArIGNvbXBhcmVUby5sZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChjaGFyc1tpXSAhPSBjb21wYXJlVG9baV0pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiR290OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoY2hhcnNbaV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoY29tcGFyZVRvW2ldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBBdDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKy8vICBUT0RPCisgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdENhbGxiYWNrKFN0cmluZyBlbmNvZGluZykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBieXRlW10gZ2JTb3VyY2UgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIChieXRlKSAweDgxLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM2LAorICAgICAgICAgICAgICAgIChieXRlKSAweERFLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM2LAorICAgICAgICAgICAgICAgIChieXRlKSAweDgxLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM2LAorICAgICAgICAgICAgICAgIChieXRlKSAweERFLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM3LAorICAgICAgICAgICAgICAgIChieXRlKSAweDgxLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM2LAorICAgICAgICAgICAgICAgIChieXRlKSAweERFLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM4LAorICAgICAgICAgICAgICAgIChieXRlKSAweGUzLAorICAgICAgICAgICAgICAgIChieXRlKSAweDMyLAorICAgICAgICAgICAgICAgIChieXRlKSAweDlhLAorICAgICAgICAgICAgICAgIChieXRlKSAweDM2IH07CisKKyAgICAgICAgY2hhcltdIHN1YkNoYXJzID0geyAnUCcsICdJJyB9OworCisgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKworICAgICAgICBkZWNvZGVyLnJlcGxhY2VXaXRoKG5ldyBTdHJpbmcoc3ViQ2hhcnMpKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBteVNvdXJjZSA9IEJ5dGVCdWZmZXIud3JhcChnYlNvdXJjZSk7CisgICAgICAgIENoYXJCdWZmZXIgbXlUYXJnZXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDUpOworCisgICAgICAgIGRlY29kZXIuZGVjb2RlKG15U291cmNlLCBteVRhcmdldCwgdHJ1ZSk7CisgICAgICAgIGNoYXJbXSBleHBlY3RlZFJlc3VsdCA9CisgICAgICAgICAgICB7ICdcdTIyQTYnLCAnXHUyMkE3JywgJ1x1MjJBOCcsICdcdTAwNTAnLCAnXHUwMDQ5JywgfTsKKworICAgICAgICBpZiAoIWVxdWFscyhteVRhcmdldCwgbmV3IFN0cmluZyhleHBlY3RlZFJlc3VsdCkpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBjYWxsYmFjayBHQjE4MDMwIHRvIFVuaWNvZGUgOiBGQUlMRUQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDYW5Db252ZXJ0KC8qU3RyaW5nIGVuY29kaW5nKi8pdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGNoYXJbXSBteVNvdXJjZSA9IHsgCisgICAgICAgICAgICAnXHVkODAwJywgJ1x1ZGMwMCcsLypzdXJyb2dhdGUgcGFpciAqLworICAgICAgICAgICAgJ1x1MjJBNicsJ1x1MjJBNycsJ1x1MjJBOCcsJ1x1MjJBOScsJ1x1MjJBQScsCisgICAgICAgICAgICAnXHUyMkFCJywnXHUyMkFDJywnXHUyMkFEJywnXHUyMkFFJywnXHUyMkFGJywKKyAgICAgICAgICAgICdcdTIyQjAnLCdcdTIyQjEnLCdcdTIyQjInLCdcdTIyQjMnLCdcdTIyQjQnLAorICAgICAgICAgICAgJ1x1ZDgwMCcsJ1x1ZGMwMCcsLypzdXJyb2dhdGUgcGFpciAqLworICAgICAgICAgICAgJ1x1MjJCNScsJ1x1MjJCNicsJ1x1MjJCNycsJ1x1MjJCOCcsJ1x1MjJCOScsCisgICAgICAgICAgICAnXHUyMkJBJywnXHUyMkJCJywnXHUyMkJDJywnXHUyMkJEJywnXHUyMkJFJyAKKyAgICAgICAgICAgIH07CisgICAgICAgIGlmKGVuY29kZXI9PW51bGwpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBlbmNvZGVyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKyAgICAgICAgaWYgKCFlbmNvZGVyLmNhbkVuY29kZShuZXcgU3RyaW5nKG15U291cmNlKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGNhbkNvbnZlcnQoKSAiICsgZW5jb2RpbmcgKyAiIGZhaWxlZC4gIitlbmNvZGVyKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RBdmFpbGFibGVDaGFyc2V0cygpIHsKKyAgICAgICAgU29ydGVkTWFwIG1hcCA9IENoYXJzZXQuYXZhaWxhYmxlQ2hhcnNldHMoKTsKKyAgICAgICAgU2V0IGtleVNldCA9IG1hcC5rZXlTZXQoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGtleVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZShpdGVyLmhhc05leHQoKSl7CisgICAgICAgICAgICBsb2dsbigiQ2hhcnNldCBuYW1lOiAiK2l0ZXIubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIE9iamVjdFtdIGNoYXJzZXRzID0gQ2hhcnNldFByb3ZpZGVySUNVLmdldEF2YWlsYWJsZU5hbWVzKCk7CisgICAgICAgIGludCBtYXBTaXplID0gbWFwLnNpemUoKTsKKyAgICAgICAgaWYobWFwU2l6ZSA8IGNoYXJzZXRzLmxlbmd0aCl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcnNldC5hdmFpbGFibGVDaGFyc2V0cygpIHJldHVybmVkIGEgbnVtYmVyIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHJldHVybmVkIGJ5IGljdS4gSUNVOiAiICsgY2hhcnNldHMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICsgIiBKREs6ICIgKyBtYXBTaXplKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiVG90YWwgTnVtYmVyIG9mIGNoYXNldHMgPSAiICsgbWFwLnNpemUoKSk7CisJfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RXaW5kb3dzOTM2KCl7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBpY3UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgY3MgPSBpY3UuY2hhcnNldEZvck5hbWUoIndpbmRvd3MtOTM2LTIwMDAiKTsKKyAgICAgICAgU3RyaW5nIGNhbm9uaWNhbE5hbWUgPSBjcy5uYW1lKCk7CisgICAgICAgIGlmKCFjYW5vbmljYWxOYW1lLmVxdWFscygiR0JLIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBjYW5vbmljYWwgbmFtZS4gR290OiAiK2Nhbm9uaWNhbE5hbWUpOyAvL2dldCB0aGUgY2Fub25pY2FsIG5hbWUKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUNVQXZhaWxhYmxlQ2hhcnNldHMoKSB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBpY3UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIE9iamVjdFtdIGNoYXJzZXRzID0gQ2hhcnNldFByb3ZpZGVySUNVLmdldEF2YWlsYWJsZU5hbWVzKCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Y2hhcnNldHMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBDaGFyc2V0IGNzID0gaWN1LmNoYXJzZXRGb3JOYW1lKChTdHJpbmcpY2hhcnNldHNbaV0pOworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBjcy5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgICAgICAgaWYoZW5jb2RlciE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJDcmVhdGlvbiBvZiBlbmNvZGVyIHN1Y2NlZWRlZC4gIitjcy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGluc3RhbnRpYXRlIGVuY29kZXIgZm9yICIrY2hhcnNldHNbaV0rIi4gRXJyb3I6ICIrZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGNzLm5ld0RlY29kZXIoKTsKKyAgICAgICAgICAgICAgICBpZihkZWNvZGVyIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkNyZWF0aW9uIG9mIGRlY29kZXIgc3VjY2VlZGVkLiAiK2NzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgaW5zdGFudGlhdGUgZGVjb2RlciBmb3IgIitjaGFyc2V0c1tpXSsiLiBFcnJvcjogIitleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBqaXR0ZXJidWcgNDMxMiAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbnN1cHBvcnRlZENoYXJzZXQoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVyIGljdSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKTsKKyAgICAgICAgQ2hhcnNldCBpY3VDaGFyID0gaWN1LmNoYXJzZXRGb3JOYW1lKCJpbXBvc3NpYmxlIik7CisgICAgICAgIGlmKGljdUNoYXIgIT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiSUNVIGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHNwZWMiKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgVGVzdEVuY29kZXJDcmVhdGlvbigpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBDaGFyc2V0IGNzID0gQ2hhcnNldC5mb3JOYW1lKCJHQl8yMzEyLTgwIik7CisgICAgICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmMgPSBjcy5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgICBpZihlbmMhPW51bGwgJiYgKGVuYyBpbnN0YW5jZW9mIENoYXJzZXRFbmNvZGVySUNVKSApeworICAgICAgICAgICAgICAgIGxvZ2xuKCJTdWNjZXNzZnVsbHkgY3JlYXRlZCB0aGUgZW5jb2RlcjogIisgZW5jKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBjaGFyc2V0IGVuY29kZXIuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIGNoYXJzZXQgZW5jb2Rlci4iKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJzZXQgY3MgPSBDaGFyc2V0LmZvck5hbWUoIngtaWJtLTk3MV9QMTAwLTE5OTUiKTsKKyAgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuYyA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgICAgIGlmKGVuYyE9bnVsbCAmJiAoZW5jIGluc3RhbmNlb2YgQ2hhcnNldEVuY29kZXJJQ1UpICl7CisgICAgICAgICAgICAgICAgbG9nbG4oIlN1Y2Nlc3NmdWxseSBjcmVhdGVkIHRoZSBlbmNvZGVyOiAiKyBlbmMpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIGNoYXJzZXQgZW5jb2Rlci4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgY3JlYXRpbmcgY2hhcnNldCBlbmNvZGVyLiIrIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFN1YkJ5dGVzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vY3JlYXRlIHV0Zi04IGRlY29kZXIKKyAgICAgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkuY2hhcnNldEZvck5hbWUoInV0Zi04IikubmV3RGVjb2RlcigpOworICAgIAorICAgICAgICAgICAgLy9jcmVhdGUgYSB2YWxpZCBieXRlIGFycmF5LCB3aGljaCBjYW4gYmUgZGVjb2RlZCB0byAiIGJ1ZmZlciIKKyAgICAgICAgICAgIGJ5dGVbXSB1bmlieXRlcyA9IG5ldyBieXRlW10geyAweDAwMjAsIDB4MDA2MiwgMHgwMDc1LCAweDAwNjYsIDB4MDA2NiwgMHgwMDY1LCAweDAwNzIgfTsKKyAgICAKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmZmVyID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgyMCk7CisgICAgCisgICAgICAgICAgICAvL2FkZCBhIGV2aWwgYnl0ZSB0byBtYWtlIHRoZSBieXRlIGJ1ZmZlciBiZSBtYWxmb3JtZWQgaW5wdXQKKyAgICAgICAgICAgIGJ1ZmZlci5wdXQoKGJ5dGUpMHhkOCk7CisgICAgCisgICAgICAgICAgICAvL3B1dCB0aGUgdmFsaWQgYnl0ZSBhcnJheQorICAgICAgICAgICAgYnVmZmVyLnB1dCh1bmlieXRlcyk7CisgICAgCisgICAgICAgICAgICAvL3Jlc2V0IHBvc3Rpb24KKyAgICAgICAgICAgIGJ1ZmZlci5mbGlwKCk7ICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICAgICAgQ2hhckJ1ZmZlciBvdXQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIlx1ZmZmZCBidWZmZXIiOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhuZXcgU3RyaW5nKG91dC5hcnJheSgpKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzdWJzdGl0dXRpb24gY2hhcnMuIEdvdDogIisKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhvdXQuYXJyYXkoKSkgKyAiKCIrIGhleChvdXQuYXJyYXkoKSkrIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJPdXRwdXQ6ICIrICBuZXcgU3RyaW5nKG91dC5hcnJheSgpKSArICIoIisgaGV4KG91dC5hcnJheSgpKSsiKSIpOworICAgICAgICB9Y2F0Y2ggKENoYXJhY3RlckNvZGluZ0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb246ICIrZXgudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW1wbEZsdXNoRmFpbHVyZSgpeworICAgCisgICAgICAgdHJ5eworICAgICAgICAgICBDaGFyQnVmZmVyIGluID0gQ2hhckJ1ZmZlci53cmFwKCJcdTMwMDVcdTMwMDZcdTMwMDdcdTMwRkNcdTIwMTVcdTIwMTBcdUZGMEYiKTsKKyAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKS5jaGFyc2V0Rm9yTmFtZSgiaXNvLTIwMjItanAiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgICAgIEJ5dGVCdWZmZXIgb3V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgzMCk7CisgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGluLCBvdXQsIHRydWUpOworICAgICAgICAgICBlbmNvZGVyLmZsdXNoKG91dCk7CisgICAgICAgICAgIGlmKG91dC5wb3NpdGlvbigpIT0gMjApeworICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBwb3NpdGlvbiBmcm9tIGZsdXNoIik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgCisgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZXgpeworICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNyZWF0ZSBlbmNvZGVyIGZvciAgaXNvLTIwMjItanAgZXhjZXB0aW9uOiAiK2V4LnRvU3RyaW5nKCkpOworICAgICAgIH0gCisgICAgfQorICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SVNPODg1OTEoKSB7CisgICAgICAgCisgICAgICAgIENoYXJzZXQgY3MgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkuY2hhcnNldEZvck5hbWUoImlzby04ODU5LTEiKTsKKyAgICAgICAgaWYoY3MhPW51bGwpeworICAgICAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgICAgIGlmKGVuY29kZXIhPW51bGwpeworICAgICAgICAgICAgICAgIGVuY29kZXIuY2FuRW5jb2RlKCJcdWMyYTMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIGVuY29kZXIgZm9yIGlzby04ODU5LTEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNyZWF0ZSBDaGFyc2V0IGZvciBpc28tODg1OS0xIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyAgdm9pZCBUZXN0VVRGOEVuY29kZSgpIHsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlcklDVSA9IG5ldyBDaGFyc2V0UHJvdmlkZXJJQ1UoKS5jaGFyc2V0Rm9yTmFtZSgidXRmLTgiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgIEJ5dGVCdWZmZXIgb3V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgzMCk7CisgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IGVuY29kZXJJQ1UuZW5jb2RlKENoYXJCdWZmZXIud3JhcCgiXHVkODAwIiksIG91dCwgdHJ1ZSk7CisgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNNYWxmb3JtZWQoKSkgeworICAgICAgICAgICAgbG9nbG4oIlxcdWQ4MDAgaXMgbWFsZm9ybWVkIGZvciBJQ1U0Sk5JIHV0Zi04IGVuY29kZXIiKTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuaXNVbmRlcmZsb3coKSkgeworICAgICAgICAgICAgZXJybG4oIlxcdWQ4MDAgaXMgT0sgZm9yIElDVTRKTkkgdXRmLTggZW5jb2RlciIpOworICAgICAgICB9CisKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlckpESyA9IENoYXJzZXQuZm9yTmFtZSgidXRmLTgiKS5uZXdFbmNvZGVyKCk7CisgICAgICAgIHJlc3VsdCA9IGVuY29kZXJKREsuZW5jb2RlKENoYXJCdWZmZXIud3JhcCgiXHVkODAwIiksIEJ5dGVCdWZmZXIKKyAgICAgICAgICAgICAgICAuYWxsb2NhdGUoMTApLCB0cnVlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc1VuZGVyZmxvdygpKSB7CisgICAgICAgICAgICBlcnJsbigiXFx1ZDgwMCBpcyBPSyBmb3IgSkRLIHV0Zi04IGVuY29kZXIiKTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuaXNNYWxmb3JtZWQoKSkgeworICAgICAgICAgICAgbG9nbG4oIlxcdWQ4MDAgaXMgbWFsZm9ybWVkIGZvciBKREsgdXRmLTggZW5jb2RlciIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50Q0IoQ2hhckJ1ZmZlciBidWYpeworICAgICAgICBidWYucmV3aW5kKCk7CisgICAgICAgIHdoaWxlKGJ1Zi5oYXNSZW1haW5pbmcoKSl7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGV4KGJ1Zi5nZXQoKSkpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5yZXdpbmQoKTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGOCgpIHRocm93cyBDaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb257CisgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXJJQ1UgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkuY2hhcnNldEZvck5hbWUoInV0Zi04IikubmV3RW5jb2RlcigpOworICAgICAgICAgICAgICAgZW5jb2RlcklDVS5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKCJcdWQ4MDAiKSk7CisgICAgICAgICAgICAgICBlcnJsbigiXFx1ZDgwMCBpcyBPSyBmb3IgSUNVNEpOSSB1dGYtOCBlbmNvZGVyIik7CisgICAgICAgICAgIH1jYXRjaCAoTWFsZm9ybWVkSW5wdXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgbG9nbG4oIlxcdWQ4MDAgaXMgbWFsZm9ybWVkIGZvciBKREsgdXRmLTggZW5jb2RlciIpOworICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgCisgICAgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXJKREsgPSBDaGFyc2V0LmZvck5hbWUoInV0Zi04IikubmV3RW5jb2RlcigpOworICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgZW5jb2RlckpESy5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKCJcdWQ4MDAiKSk7CisgICAgICAgICAgICAgICBlcnJsbigiXFx1ZDgwMCBpcyBPSyBmb3IgSkRLIHV0Zi04IGVuY29kZXIiKTsKKyAgICAgICAgICAgfSBjYXRjaCAoTWFsZm9ybWVkSW5wdXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgbG9nbG4oIlxcdWQ4MDAgaXMgbWFsZm9ybWVkIGZvciBKREsgdXRmLTggZW5jb2RlciIpOworICAgICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICB9ICAgICAgICAgCisgICAgfQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVURjE2Qm9tKCl7CisKKyAgICAgICAgQ2hhcnNldCBjcyA9IChuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCkpLmNoYXJzZXRGb3JOYW1lKCJVVEYtMTYiKTsKKyAgICAgICAgY2hhcltdIGluID0gbmV3IGNoYXJbXSB7IDB4MTEyMiwgMHgyMjExLCAweDMzNDQsIDB4NDQzMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NTY2LCAweDY2NTUsIDB4Nzc4OCwgMHg4ODc3LCAweDk5MDAgfTsKKyAgICAgICAgQ2hhckJ1ZmZlciBpbkJ1ZiA9IENoYXJCdWZmZXIuYWxsb2NhdGUoaW4ubGVuZ3RoKTsKKyAgICAgICAgaW5CdWYucHV0KGluKTsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBvdXRCdWYgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGluLmxlbmd0aCoyKTsKKyAgICAgICAgaW5CdWYucmV3aW5kKCk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGluQnVmLCBvdXRCdWYsIHRydWUpOworICAgICAgICBvdXRCdWYucmV3aW5kKCk7CisgICAgICAgIGlmKG91dEJ1Zi5yZW1haW5pbmcoKT4gaW4ubGVuZ3RoKjIpeworICAgICAgICAgICAgZXJybG4oIlRoZSBVVEYxNiBlbmNvZGVyIGFwcGVuZGVkIGJvbS4gTGVuZ3RoIHJldHVybmVkOiAiICsgb3V0QnVmLnJlbWFpbmluZygpKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZShvdXRCdWYuaGFzUmVtYWluaW5nKCkpeworICAgICAgICAgICAgbG9nbG4oIjB4IitoZXgob3V0QnVmLmdldCgpKSk7CisgICAgICAgIH0KKyAgICAgICAgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGNzLm5ld0RlY29kZXIoKTsKKyAgICAgICAgb3V0QnVmLnJld2luZCgpOworICAgICAgICBDaGFyQnVmZmVyIHJ0ID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShpbi5sZW5ndGgpOworICAgICAgICBkZWNvZGVyLmRlY29kZShvdXRCdWYsIHJ0LCB0cnVlKTsKKyAgICB9CisgICAgIAorICAgIHByaXZhdGUgdm9pZCBzbUJ1ZkRlY29kZShDaGFyc2V0RGVjb2RlciBkZWNvZGVyLCBTdHJpbmcgZW5jb2RpbmcsIEJ5dGVCdWZmZXIgc291cmNlLCBDaGFyQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIEJ5dGVCdWZmZXIgbXlTb3VyY2UgPSBzb3VyY2UuZHVwbGljYXRlKCk7CisgICAgICAgIENoYXJCdWZmZXIgbXlUYXJnZXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKHRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgeyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICAgICAgbXlUYXJnZXQubGltaXQodGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoc291cmNlLmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gQ29kZXJSZXN1bHQuVU5ERVJGTE9XOworICAgICAgICAgICAgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgY29tcGxldGUgYnVmZmVycyB3aGlsZSBkZWNvZGluZyBmYWlsZWQuICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgY29tcGxldGUgYnVmZmVycyB3aGlsZSBkZWNvZGluZyB0aHJldyBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBteVRhcmdldC5saW1pdChteVRhcmdldC5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgdGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1VuZGVyZmxvdygpJiYhZXF1YWxzKG15VGFyZ2V0LHRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgIiBUZXN0IGNvbXBsZXRlIGJ1ZmZlcnMgd2hpbGUgZGVjb2RpbmcgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBUTyBVbmljb2RlLS1mYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihpc1F1aWNrKCkpeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LmxpbWl0KHRhcmdldC5saW1pdCgpKTsKKyAgICAgICAgICAgIG15U291cmNlLmxpbWl0KHNvdXJjZS5saW1pdCgpKTsKKyAgICAgICAgICAgIG15U291cmNlLnBvc2l0aW9uKHNvdXJjZS5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LmNsZWFyKCk7CisgICAgICAgICAgICBteVRhcmdldC5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGlucHV0TGVuID0gbXlTb3VyY2UucmVtYWluaW5nKCk7CisKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IENvZGVyUmVzdWx0LlVOREVSRkxPVzsKKyAgICAgICAgICAgIGZvcihpbnQgaT0xOyBpPD1pbnB1dExlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoaSk7CisgICAgICAgICAgICAgICAgaWYoaT09aW5wdXRMZW4peworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmRlY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgaW5wdXQgYnVmZmVycyB3aGlsZSBkZWNvZGluZyBmYWlsZWQuICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgaW5wdXQgYnVmZmVycyB3aGlsZSBkZWNvZGluZyB0aHJldyBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgICAgICBteVRhcmdldC5saW1pdChteVRhcmdldC5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIG15VGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgdGFyZ2V0LnBvc2l0aW9uKDApOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1VuZGVyZmxvdygpJiYhZXF1YWxzKG15VGFyZ2V0LHRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgIlRlc3Qgc21hbGwgaW5wdXQgYnVmZmVycyB3aGlsZSBkZWNvZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICArIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICArICIgVE8gVW5pY29kZS0tZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICAgICAgbXlUYXJnZXQubGltaXQodGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoc291cmNlLmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbXlUYXJnZXQuY2xlYXIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IG15VGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgbXlUYXJnZXQubGltaXQoKytwb3MpOworICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IGRlY29kZXIuZGVjb2RlKG15U291cmNlLCBteVRhcmdldCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIG91dHB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nICIrIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG15U291cmNlLnBvc2l0aW9uKCk9PSBteVNvdXJjZS5saW1pdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZXIuZGVjb2RlKG15U291cmNlLCBteVRhcmdldCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBvdXRwdXQgYnVmZmVycyB3aGlsZSBkZWNvZGluZyAiK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBkZWNvZGVyLmZsdXNoKG15VGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIG91dHB1dCBidWZmZXJzIHdoaWxlIGRlY29kaW5nICIrIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LHRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBlbmNvZGluZworICAgICAgICAgICAgICAgICAgICAgICAgKyAiIFRPIFVuaWNvZGUgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc21CdWZFbmNvZGUoQ2hhcnNldEVuY29kZXIgZW5jb2RlciwgU3RyaW5nIGVuY29kaW5nLCBDaGFyQnVmZmVyIHNvdXJjZSwgQnl0ZUJ1ZmZlciB0YXJnZXQpIHsKKyAgICAgICAgbG9nbG4oIlJ1bm5pbmcgc21CdWZFbmNvZGUgZm9yICIrIGVuY29kaW5nICsgIiB3aXRoIGNsYXNzICIgKyBlbmNvZGVyKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBteVNvdXJjZSA9IHNvdXJjZS5kdXBsaWNhdGUoKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBteVRhcmdldCA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUodGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiUnVubmluZyB0ZXN0cyBvbiBzbWFsbCBpbnB1dCBidWZmZXJzIGZvciAiKyBlbmNvZGluZyk7CisgICAgICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBteVRhcmdldC5saW1pdCh0YXJnZXQubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5saW1pdChzb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICBteVNvdXJjZS5wb3NpdGlvbihzb3VyY2UucG9zaXRpb24oKSk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQ9bnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBjb21wbGV0ZSB3aGlsZSBlbmNvZGluZyBmYWlsZWQuICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdC5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBjb21wbGV0ZSB3aGlsZSBlbmNvZGluZyB0aHJldyBvdmVyZmxvdyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LHRhcmdldCkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IGNvbXBsZXRlIGJ1ZmZlcnMgd2hpbGUgZW5jb2RpbmcgZm9yICIrIGVuY29kaW5nKyAiIGZhaWxlZCIpOworCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdHMgY29tcGxldGUgYnVmZmVycyBmb3IgIisgZW5jb2RpbmcgKyIgcGFzc2VkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoaXNRdWljaygpKXsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiUnVubmluZyB0ZXN0cyBvbiBzbWFsbCBpbnB1dCBidWZmZXJzIGZvciAiKyBlbmNvZGluZyk7CisgICAgICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBteVRhcmdldC5jbGVhcigpOworICAgICAgICAgICAgbXlUYXJnZXQubGltaXQodGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoc291cmNlLmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgaW50IGlucHV0TGVuID0gbXlTb3VyY2UubGltaXQoKTsKKyAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdD1udWxsOworICAgICAgICAgICAgZm9yKGludCBpPTE7IGk8PWlucHV0TGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBteVNvdXJjZS5saW1pdChpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBlbmNvZGVyLmVuY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBpbnB1dCBidWZmZXJzIHdoaWxlIGVuY29kaW5nIGZhaWxlZC4gIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIGlucHV0IGJ1ZmZlcnMgd2hpbGUgZW5jb2RpbmcgdGhyZXcgb3ZlcmZsb3cgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFlcXVhbHMobXlUYXJnZXQsdGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIGlucHV0IGJ1ZmZlcnMgIisgZW5jb2RpbmcrICIgRnJvbSBVbmljb2RlIGZhaWxlZCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RzIG9uIHNtYWxsIGlucHV0IGJ1ZmZlcnMgZm9yICIrIGVuY29kaW5nICsiIHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJSdW5uaW5nIHRlc3RzIG9uIHNtYWxsIG91dHB1dCBidWZmZXJzIGZvciAiKyBlbmNvZGluZyk7CisgICAgICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBteVRhcmdldC5jbGVhcigpOworICAgICAgICAgICAgbXlUYXJnZXQubGltaXQodGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UubGltaXQoc291cmNlLmxpbWl0KCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oc291cmNlLnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbXlTb3VyY2UucG9zaXRpb24oMCk7CisgICAgICAgICAgICBteVRhcmdldC5wb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGxvZ2xuKCJteVRhcmdldC5saW1pdDogIiArIG15VGFyZ2V0LmxpbWl0KCkgKyAiIG15VGFyZ2V0LmNhcGNpdHk6ICIgKyBteVRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zID0gbXlUYXJnZXQucG9zaXRpb24oKTsKKworICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IGVuY29kZXIuZW5jb2RlKG15U291cmNlLCBteVRhcmdldCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJteVRhcmdldC5Qb3NpdGlvbjogIisgcG9zICsgIiBteVRhcmdldC5saW1pdDogIiArIG15VGFyZ2V0LmxpbWl0KCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJteVNvdXJjZS5wb3NpdGlvbjogIiArIG15U291cmNlLnBvc2l0aW9uKCkgKyAiIG15U291cmNlLmxpbWl0OiAiICsgbXlTb3VyY2UubGltaXQoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgd2hpbGUgZW5jb2RpbmcgIityZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChteVNvdXJjZS5wb3NpdGlvbigpID09IG15U291cmNlLmxpbWl0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5lbmNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IHNtYWxsIG91dHB1dCBidWZmZXJzIHdoaWxlIGVuY29kaW5nICIrcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBteVRhcmdldC5saW1pdChteVRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZW5jb2Rlci5mbHVzaChteVRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBzbWFsbCBvdXRwdXQgYnVmZmVycyB3aGlsZSBlbmNvZGluZyAiK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyh0YXJnZXQsbXlUYXJnZXQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3Qgc21hbGwgb3V0cHV0IGJ1ZmZlcnMgIisgZW5jb2RpbmcrICIgRnJvbSBVbmljb2RlIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0cyBvbiBzbWFsbCBvdXRwdXQgYnVmZmVycyBmb3IgIisgZW5jb2RpbmcgKyIgcGFzc2VkIik7CisKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBjb252ZXJ0QWxsVGVzdChCeXRlQnVmZmVyIGJTb3VyY2UsIENoYXJCdWZmZXIgdVNvdXJjZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGVjb2Rlci5yZXNldCgpOworICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgbXlTb3VyY2UgPSBiU291cmNlLmR1cGxpY2F0ZSgpOworICAgICAgICAgICAgICAgIENoYXJCdWZmZXIgbXlUYXJnZXQgPSBkZWNvZGVyLmRlY29kZShteVNvdXJjZSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVhbHMobXlUYXJnZXQsIHVTb3VyY2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKAorICAgICAgICAgICAgICAgICAgICAgICAgIi0tVGVzdCBjb252ZXJ0QWxsKCkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdG8gVW5pY29kZSAgLS1GQUlMRUQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgQ2hhckJ1ZmZlciBteVNvdXJjZSA9IENoYXJCdWZmZXIud3JhcCh1U291cmNlKTsKKyAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIG15VGFyZ2V0ID0gZW5jb2Rlci5lbmNvZGUobXlTb3VyY2UpOworICAgICAgICAgICAgICAgIGlmICghZXF1YWxzKG15VGFyZ2V0LCBiU291cmNlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICItLVRlc3QgY29udmVydEFsbCgpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHRvIFVuaWNvZGUgIC0tRkFJTEVEIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVuY29kZXIuZW5jb2RlKCkgZmFpbGVkICIrIGUuZ2V0TWVzc2FnZSgpKyIgIitlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisgICAgLy9UT0RPCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RyaW5nKEJ5dGVCdWZmZXIgYlNvdXJjZSwgQ2hhckJ1ZmZlciB1U291cmNlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG5ldyBTdHJpbmcodVNvdXJjZSk7CisgICAgICAgICAgICAgICAgYnl0ZVtdIHRhcmdldCA9IHNvdXJjZS5nZXRCeXRlcyhlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVhbHModGFyZ2V0LCBiU291cmNlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZW5jb2RlIHVzaW5nIHN0cmluZyBBUEkgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IG5ldyBTdHJpbmcoZ2V0Qnl0ZUFycmF5KGdiU291cmNlKSwgZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIGlmICghZXF1YWxzKHVTb3VyY2UsIHRhcmdldC50b0NoYXJBcnJheSgpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZGVjb2RlIHVzaW5nIHN0cmluZyBBUEkgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZyb21Vbmljb2RlVGVzdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgbG9nbG4oIkxvYWRlZCBDaGFyc2V0OiAiICsgY2hhcnNldC5nZXRDbGFzcygpLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbigiTG9hZGVkIENoYXJzZXRFbmNvZGVyOiAiICsgZW5jb2Rlci5nZXRDbGFzcygpLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbigiTG9hZGVkIENoYXJzZXREZWNvZGVyOiAiICsgZGVjb2Rlci5nZXRDbGFzcygpLnRvU3RyaW5nKCkpOworICAgICAgICAKKyAgICAgICAgQnl0ZUJ1ZmZlciBteVRhcmdldCA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoZ2JTb3VyY2UubGVuZ3RoKTsKKyAgICAgICAgbG9nbG4oIkNyZWF0ZWQgQnl0ZUJ1ZmZlciBvZiBsZW5ndGg6ICIgKyB1U291cmNlLmxlbmd0aCk7CisgICAgICAgIENoYXJCdWZmZXIgbXlTb3VyY2UgPSBDaGFyQnVmZmVyLndyYXAodVNvdXJjZSk7CisgICAgICAgIGxvZ2xuKCJXcmFwcGVkIEJ5dGVCdWZmZXIgd2l0aCBDaGFyQnVmZmVyICAiKTsKKyAgICAgICAgZW5jb2Rlci5yZXNldCgpOworICAgICAgICBsb2dsbigiVGVzdCBVbmljb2RlIHRvICIgKyBlbmNvZGluZyApOworICAgICAgICBlbmNvZGVyLmVuY29kZShteVNvdXJjZSwgbXlUYXJnZXQsIHRydWUpOworICAgICAgICBpZiAoIWVxdWFscyhteVRhcmdldCwgZ2JTb3VyY2UpKSB7CisgICAgICAgICAgICBlcnJsbigiLS1UZXN0IFVuaWNvZGUgdG8gIiArIGVuY29kaW5nICsgIjogRkFJTEVEIik7CisgICAgICAgIH0gCisgICAgICAgIGxvZ2xuKCJUZXN0IFVuaWNvZGUgdG8gIiArIGVuY29kaW5nICsiIHBhc3NlZCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1VuaWNvZGUoICkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBsb2dsbigiTG9hZGVkIENoYXJzZXQ6ICIgKyBjaGFyc2V0LmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJMb2FkZWQgQ2hhcnNldEVuY29kZXI6ICIgKyBlbmNvZGVyLmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJMb2FkZWQgQ2hhcnNldERlY29kZXI6ICIgKyBkZWNvZGVyLmdldENsYXNzKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBDaGFyQnVmZmVyIG15VGFyZ2V0ID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZSh1U291cmNlLmxlbmd0aCk7CisgICAgICAgIEJ5dGVCdWZmZXIgbXlTb3VyY2UgPSBCeXRlQnVmZmVyLndyYXAoZ2V0Qnl0ZUFycmF5KGdiU291cmNlKSk7CisgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKyAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUobXlTb3VyY2UsIG15VGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IFRvVW5pY29kZSAtLSBGQUlMRUQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWVxdWFscyhteVRhcmdldCwgdVNvdXJjZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCItLVRlc3QgIiArIGVuY29kaW5nICsgIiB0byBVbmljb2RlIDpGQUlMRUQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGdldEJ5dGVBcnJheShjaGFyW10gc291cmNlKSB7CisgICAgICAgIGJ5dGVbXSB0YXJnZXQgPSBuZXcgYnl0ZVtzb3VyY2UubGVuZ3RoXTsKKyAgICAgICAgaW50IGkgPSBzb3VyY2UubGVuZ3RoOworICAgICAgICBmb3IgKDsgLS1pID49IDA7KSB7CisgICAgICAgICAgICB0YXJnZXRbaV0gPSAoYnl0ZSkgc291cmNlW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIC8qCisgICAgcHJpdmF0ZSB2b2lkIHNtQnVmQ2hhcnNldChDaGFyc2V0IGNoYXJzZXQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYlRhcmdldCA9IGNoYXJzZXQuZW5jb2RlKENoYXJCdWZmZXIud3JhcCh1U291cmNlKSk7CisgICAgICAgICAgICBDaGFyQnVmZmVyIHVUYXJnZXQgPQorICAgICAgICAgICAgICAgIGNoYXJzZXQuZGVjb2RlKEJ5dGVCdWZmZXIud3JhcChnZXRCeXRlQXJyYXkoZ2JTb3VyY2UpKSk7CisKKyAgICAgICAgICAgIGlmICghZXF1YWxzKHVUYXJnZXQsIHVTb3VyY2UpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRlc3QgIiArIGNoYXJzZXQudG9TdHJpbmcoKSArICIgdG8gVW5pY29kZSA6RkFJTEVEIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVxdWFscyhiVGFyZ2V0LCBnYlNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCAiICsgY2hhcnNldC50b1N0cmluZygpICsgIiBmcm9tIFVuaWNvZGUgOkZBSUxFRCIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFbmNvdW50ZXJlZCBleGNlcHRpb24gaW4gc21CdWZDaGFyc2V0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE11bHRpdGhyZWFkZWQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZmluYWwgQ2hhcnNldCBjcyA9IENoYXJzZXQuZm9yTmFtZShlbmNvZGluZyk7CisgICAgICAgIGlmIChjcyA9PSBjaGFyc2V0KSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIG9iamVjdHMgYXJlIGVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgc21CdWZDaGFyc2V0KGNzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIFRocmVhZCB0MSA9IG5ldyBUaHJlYWQoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgICAgICAvLyBjb21tZW50ZWQgb3V0IHNpbmNlIHRoZSBtZWh0b2RzIG9uCisgICAgICAgICAgICAgICAgICAgIC8vIENoYXJzZXQgQVBJIGFyZSBzdXBwb3NlZCB0byBiZSB0aHJlYWQKKyAgICAgICAgICAgICAgICAgICAgLy8gc2FmZSAuLi4gdG8gdGVzdCBpdCB3ZSBkb250IHN5bmMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBzeW5jaHJvbml6ZWQoY2hhcnNldCl7CisgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFpbnRlcnJ1cHRlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtQnVmQ2hhcnNldChjcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gdWVFeCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHVlRXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZpbmFsIFRocmVhZCB0MiA9IG5ldyBUaHJlYWQoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3luY2hyb25pemVkKGNoYXJzZXQpeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWludGVycnVwdGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21CdWZDaGFyc2V0KGNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiB1ZUV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4odWVFeC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0MS5zdGFydCgpOworICAgICAgICAgICAgdDIuc3RhcnQoKTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDEwMDAwMDAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQxLmludGVycnVwdCgpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0Mi5pbnRlcnJ1cHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTeW5jaHJvbml6ZWRNdWx0aXRocmVhZGVkKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIE1ldGhvZHMgb24gQ2hhcnNldERlY29kZXIgYW5kIENoYXJzZXRFbmNvZGVyIGNsYXNzZXMKKyAgICAgICAgLy8gYXJlIGluaGVyZW50bHkgdW5zYWZlIGlmIGFjY2Vzc2VkIGJ5IG11bHRpcGxlIGNvbmN1cnJlbnQKKyAgICAgICAgLy8gdGhyZWFkIHNvIHdlIHN5bmNocm9uaXplIHRoZW0KKyAgICAgICAgZmluYWwgQ2hhcnNldCBjaGFyc2V0ID0gQ2hhcnNldC5mb3JOYW1lKGVuY29kaW5nKTsKKyAgICAgICAgZmluYWwgQ2hhcnNldERlY29kZXIgZGVjb2RlciA9IGNoYXJzZXQubmV3RGVjb2RlcigpOworICAgICAgICBmaW5hbCBDaGFyc2V0RW5jb2RlciBlbmNvZGVyID0gY2hhcnNldC5uZXdFbmNvZGVyKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBUaHJlYWQgdDEgPSBuZXcgVGhyZWFkKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFpbnRlcnJ1cHRlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAoZW5jb2RlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbUJ1ZkVuY29kZShlbmNvZGVyLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAoZGVjb2RlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbUJ1ZkRlY29kZShkZWNvZGVyLCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uIHVlRXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih1ZUV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgZmluYWwgVGhyZWFkIHQyID0gbmV3IFRocmVhZCgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICghaW50ZXJydXB0ZWQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKGVuY29kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21CdWZFbmNvZGUoZW5jb2RlciwgZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKGRlY29kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21CdWZEZWNvZGUoZGVjb2RlciwgZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkQ2hhcnNldEV4Y2VwdGlvbiB1ZUV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4odWVFeC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0MS5zdGFydCgpOworICAgICAgICAgICAgdDIuc3RhcnQoKTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDEwMDAwMDAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQxLmludGVycnVwdCgpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0Mi5pbnRlcnJ1cHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNQkNTKCl7ICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEVuY29kZXI6IGZyb20gVW5pY29kZSBjb252ZXJzaW9uCisgICAgICAgICAgICBDaGFyc2V0RW5jb2RlciBlbmNvZGVySUNVID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpLmNoYXJzZXRGb3JOYW1lKCJpYm0tOTcxIikubmV3RW5jb2RlcigpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBvdXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDYpOworICAgICAgICAgICAgZW5jb2RlcklDVS5vblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgICAgICBDb2RlclJlc3VsdCByZXN1bHQgPSBlbmNvZGVySUNVLmVuY29kZShDaGFyQnVmZmVyLndyYXAoIlx1MDEzMVx1MDA2MVx1MDBhMSIpLCBvdXQsIHRydWUpOworICAgICAgICAgICAgaWYoIXJlc3VsdC5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgIGJ5dGVbXSBleHBlY3RlZCA9IHsoYnl0ZSkweEE5LCAoYnl0ZSkweEE1LCAoYnl0ZSkweEFGLCAoYnl0ZSkweEZFLCAoYnl0ZSkweEEyLCAoYnl0ZSkweEFFfTsKKyAgICAgICAgICAgICAgICBpZighZXF1YWxzKGV4cGVjdGVkLCBvdXQuYXJyYXkoKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3Igc3Vic3RpdHV0aW9uIGJ5dGVzLiBHb3Q6ICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXgob3V0LmFycmF5KCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIk91dHB1dDogIisgIGhleChvdXQuYXJyYXkoKSkpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkVuY29kZSBvcGVyYXRpb24gZmFpbGVkIGZvciBlbmNvZGVyOiAiK2VuY29kZXJJQ1UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgLy8gRGVjb2RlcjogdG8gVW5pY29kZSBjb252ZXJzaW9uCisgICAgICAgICAgICBDaGFyc2V0RGVjb2RlciBkZWNvZGVySUNVID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpLmNoYXJzZXRGb3JOYW1lKCJpYm0tOTcxIikubmV3RGVjb2RlcigpOworICAgICAgICAgICAgQ2hhckJ1ZmZlciBvdXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDMpOworICAgICAgICAgICAgZGVjb2RlcklDVS5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2RlcklDVS5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKG5ldyBieXRlW10geyAoYnl0ZSkweEEyLCAoYnl0ZSkweEFFLCAoYnl0ZSkweDEyLCAoYnl0ZSkweDM0LCAoYnl0ZSkweEVGLCAoYnl0ZSkweERDIH0pLCBvdXQsIHRydWUpOworICAgICAgICAgICAgaWYoIXJlc3VsdC5pc0Vycm9yKCkpeworICAgICAgICAgICAgICAgIGNoYXJbXSBleHBlY3RlZCA9IHsnXHUwMGExJywgJ1x1ZmZmZCcsICdcdTY2NzYnfTsKKyAgICAgICAgICAgICAgICBpZighZXF1YWxzKGV4cGVjdGVkLCBvdXQuYXJyYXkoKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3Igc3Vic3RpdHV0aW9uIGNoYXJzLiBHb3Q6ICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXgob3V0LmFycmF5KCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIk91dHB1dDogIisgIGhleChvdXQuYXJyYXkoKSkpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRlY29kZSBvcGVyYXRpb24gZmFpbGVkIGZvciBlbmNvZGVyOiAiK2RlY29kZXJJQ1UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpCNDg5NygpeworICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgY2hhcnNldCA9IHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKCJ4LWFicmFjYWRhYnJhIik7ICAKKyAgICAgICAgaWYoY2hhcnNldCE9bnVsbCAmJiBjaGFyc2V0LmNhbkVuY29kZSgpPT0gdHJ1ZSl7CisgICAgICAgICAgICBlcnJsbigicHJvdmlkZXIuY2hhcnNldEZvck5hbWUoKSBkb2VzIG5vdCB2YWxpZGF0ZSB0aGUgY2hhcnNldCBuYW1lcyIgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjUwMjcoKSB7CisgICAgICAgIENoYXJzZXRQcm92aWRlcklDVSBwcm92aWRlcj0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworCisgICAgICAgIENoYXJzZXQgZmFrZSA9IHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKCJkb2VzTm90RXhpc3QiKTsKKyAgICAgICAgaWYoZmFrZSAhPSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJcImRvZXNOb3RFeGlzdFwiIHJldHVybmVkICIgKyBmYWtlKTsKKyAgICAgICAgfQorICAgICAgICBDaGFyc2V0IHhmYWtlID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIngtZG9lc05vdEV4aXN0Iik7CisgICAgICAgIGlmKHhmYWtlIT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJcIngtZG9lc05vdEV4aXN0XCIgcmV0dXJuZWQgIiArIHhmYWtlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3Rlc3QgdG8gbWFrZSBzdXJlIHRoYXQgbnVtYmVyIG9mIGFsaWFzZXMgYW5kIGNhbm9uaWNhbCBuYW1lcyBhcmUgaW4gdGhlIGNoYXJzZXRzIHRoYXQgYXJlIGluCisgICAgcHVibGljIHZvaWQgVGVzdEFsbE5hbWVzKCkgeworICAgICAgICAKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIHByb3ZpZGVyPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIE9iamVjdFtdIGF2YWlsYWJsZSA9IENoYXJzZXRQcm92aWRlcklDVS5nZXRBdmFpbGFibGVOYW1lcygpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxhdmFpbGFibGUubGVuZ3RoO2krKyl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNhbm9uICA9IENoYXJzZXRQcm92aWRlcklDVS5nZXRJQ1VDYW5vbmljYWxOYW1lKChTdHJpbmcpYXZhaWxhYmxlW2ldKTsKKworICAgICAgICAgICAgICAgIC8vICcsJyBpcyBub3QgYWxsb3dlZCBieSBKYXZhJ3MgY2hhcnNldCBuYW1lIGNoZWNrZXIKKyAgICAgICAgICAgICAgICBpZihjYW5vbi5pbmRleE9mKCcsJyk+PTApeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQ2hhcnNldCBjcyA9IHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKChTdHJpbmcpYXZhaWxhYmxlW2ldKTsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0W10gamF2YUFsaWFzZXMgPSAgY3MuYWxpYXNlcygpLnRvQXJyYXkoKTsKKyAgICAgICAgICAgICAgICAvL3NlYWNoIGZvciBJQ1UgY2Fub25pY2FsIG5hbWUgaW4gamF2YUFsaWFzZXMKKyAgICAgICAgICAgICAgICBib29sZWFuIGluQWxpYXNMaXN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8amF2YUFsaWFzZXMubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamF2YSA9IChTdHJpbmcpIGphdmFBbGlhc2VzW2pdOworICAgICAgICAgICAgICAgICAgICBpZihqYXZhLmVxdWFscyhjYW5vbikpeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImphdmFBbGlhczogIiArIGphdmEgKyAiIGNhbm9uOiAiICsgY2Fub24pOworICAgICAgICAgICAgICAgICAgICAgICAgaW5BbGlhc0xpc3QgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGluQWxpYXNMaXN0ID09IGZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBmaW5kIElDVSBjYW5vbmljYWwgbmFtZTogIitjYW5vbisgIiBmb3IgamF2YSBjYW5vbmljYWwgbmFtZTogIisgYXZhaWxhYmxlW2ldKyAiICIrIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBubyBsb2FkIGNoYXJzZXQgIisgYXZhaWxhYmxlW2ldKyIgIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWNvZGVySW1wbEZsdXNoKCkgeworICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgaWNzID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIlVURi0xNiIpOworICAgICAgICBDaGFyc2V0IGpjcyA9IENoYXJzZXQuZm9yTmFtZSgiVVRGLTE2Iik7IC8vIEphdmEncyBVVEYtMTYgY2hhcnNldAorICAgICAgICBleGVjRGVjb2RlcihqY3MpOworICAgICAgICBleGVjRGVjb2RlcihpY3MpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5jb2RlckltcGxGbHVzaCgpIHsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIHByb3ZpZGVyID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGljcyA9IHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKCJVVEYtMTYiKTsKKyAgICAgICAgQ2hhcnNldCBqY3MgPSBDaGFyc2V0LmZvck5hbWUoIlVURi0xNiIpOyAvLyBKYXZhJ3MgVVRGLTE2IGNoYXJzZXQKKyAgICAgICAgZXhlY0VuY29kZXIoamNzKTsKKyAgICAgICAgZXhlY0VuY29kZXIoaWNzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4ZWNEZWNvZGVyKENoYXJzZXQgY3MpeworICAgICAgICBDaGFyc2V0RGVjb2RlciBkZWNvZGVyID0gY3MubmV3RGVjb2RlcigpOworICAgICAgICBkZWNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKTsKKyAgICAgICAgZGVjb2Rlci5vblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBvdXQgPSBDaGFyQnVmZmVyLmFsbG9jYXRlKDEwKTsKKyAgICAgICAgQ29kZXJSZXN1bHQgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKG5ldyBieXRlW10geyAtMSwKKyAgICAgICAgICAgICAgICAtMiwgMzIsIDAsIDk4IH0pLCBvdXQsIGZhbHNlKTsKKyAgICAgICAgcmVzdWx0ID0gZGVjb2Rlci5kZWNvZGUoQnl0ZUJ1ZmZlci53cmFwKG5ldyBieXRlW10geyA5OCB9KSwgb3V0LCB0cnVlKTsKKworICAgICAgICBsb2dsbihjcy5nZXRDbGFzcygpLnRvU3RyaW5nKCkrICI6IiArcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gZGVjb2Rlci5mbHVzaChvdXQpOworICAgICAgICAgICAgbG9nbG4oY3MuZ2V0Q2xhc3MoKS50b1N0cmluZygpKyAiOiIgK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKyIgIitjcy5nZXRDbGFzcygpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBleGVjRW5jb2RlcihDaGFyc2V0IGNzKXsKKyAgICAgICAgQ2hhcnNldEVuY29kZXIgZW5jb2RlciA9IGNzLm5ld0VuY29kZXIoKTsKKyAgICAgICAgZW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgIGVuY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUE9SVCk7CisgICAgICAgIEJ5dGVCdWZmZXIgb3V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSgxMCk7CisgICAgICAgIENvZGVyUmVzdWx0IHJlc3VsdCA9IGVuY29kZXIuZW5jb2RlKENoYXJCdWZmZXIud3JhcChuZXcgY2hhcltdIHsgJ1x1RkZGRicsCisgICAgICAgICAgICAgICAgJ1x1MjM0NScsIDMyLCA5OCB9KSwgb3V0LCBmYWxzZSk7CisgICAgICAgIGxvZ2xuKGNzLmdldENsYXNzKCkudG9TdHJpbmcoKSsgIjoiICtyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdCA9IGVuY29kZXIuZW5jb2RlKENoYXJCdWZmZXIud3JhcChuZXcgY2hhcltdIHsgOTggfSksIG91dCwgdHJ1ZSk7CisKKyAgICAgICAgbG9nbG4oY3MuZ2V0Q2xhc3MoKS50b1N0cmluZygpKyAiOiIgK3Jlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGVuY29kZXIuZmx1c2gob3V0KTsKKyAgICAgICAgICAgIGxvZ2xuKGNzLmdldENsYXNzKCkudG9TdHJpbmcoKSsgIjoiICtyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSsiICIrY3MuZ2V0Q2xhc3MoKS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVjb2RlTWFsZm9ybWVkKCkgeworICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXQgaWNzID0gcHJvdmlkZXIuY2hhcnNldEZvck5hbWUoIlVURi0xNkJFIik7CisgICAgICAgIC8vVXNlIFNVTidzIGNoYXJzZXQKKyAgICAgICAgQ2hhcnNldCBqY3MgPSBDaGFyc2V0LmZvck5hbWUoIlVURi0xNiIpOworICAgICAgICBDb2RlclJlc3VsdCBpciA9IGV4ZWNNYWxmb3JtZWQoaWNzKTsKKyAgICAgICAgQ29kZXJSZXN1bHQganIgPSBleGVjTWFsZm9ybWVkKGpjcyk7CisgICAgICAgIGlmKGlyIT1qcil7CisgICAgICAgICAgICBlcnJsbigiSUNVJ3MgZGVjb2RlciBkaWQgbm90IHJldHVybiB0aGUgc2FtZSByZXN1bHQgYXMgU3VuLiBJQ1U6ICIraXIudG9TdHJpbmcoKSsiIFN1bjogIitqci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIENvZGVyUmVzdWx0IGV4ZWNNYWxmb3JtZWQoQ2hhcnNldCBjcyl7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBjcy5uZXdEZWNvZGVyKCk7CisgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5JR05PUkUpOworICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICBCeXRlQnVmZmVyIGluID0gQnl0ZUJ1ZmZlci53cmFwKG5ldyBieXRlW10geyAweDAwLCAweDQxLCAweDAwLCAweDQyLCAweDAxIH0pOworICAgICAgICBDaGFyQnVmZmVyIG91dCA9IENoYXJCdWZmZXIuYWxsb2NhdGUoMyk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShpbiwgb3V0LCB0cnVlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEphdmFVVEYxNkRlY29kZXIoKXsKKyAgICAgICAgQ2hhcnNldFByb3ZpZGVySUNVIHByb3ZpZGVyID0gbmV3IENoYXJzZXRQcm92aWRlcklDVSgpOworICAgICAgICBDaGFyc2V0IGljcyA9IHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKCJVVEYtMTZCRSIpOworICAgICAgICAvL1VzZSBTVU4ncyBjaGFyc2V0CisgICAgICAgIENoYXJzZXQgamNzID0gQ2hhcnNldC5mb3JOYW1lKCJVVEYtMTYiKTsKKyAgICAgICAgRXhjZXB0aW9uIGllID0gZXhlY0NvbnZlcnRBbGwoaWNzKTsKKyAgICAgICAgRXhjZXB0aW9uIGplID0gZXhlY0NvbnZlcnRBbGwoamNzKTsKKyAgICAgICAgaWYoaWUhPWplKXsKKyAgICAgICAgICAgIGVycmxuKCJJQ1UncyBkZWNvZGVyIGRpZCBub3QgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdCBhcyBTdW4uIElDVTogIitpZS50b1N0cmluZygpKyIgU3VuOiAiK2plLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgRXhjZXB0aW9uIGV4ZWNDb252ZXJ0QWxsKENoYXJzZXQgY3MpeworICAgICAgICBCeXRlQnVmZmVyIGluID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSg0MDApOworICAgICAgICBpbnQgaT0wOworICAgICAgICB3aGlsZShpbi5wb3NpdGlvbigpIT1pbi5jYXBhY2l0eSgpKXsKKyAgICAgICAgICAgIGluLnB1dCgoYnl0ZSkweEQ4KTsKKyAgICAgICAgICAgIGluLnB1dCgoYnl0ZSlpKTsKKyAgICAgICAgICAgIGluLnB1dCgoYnl0ZSkweERDKTsKKyAgICAgICAgICAgIGluLnB1dCgoYnl0ZSlpKTsKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpbi5saW1pdChpbi5wb3NpdGlvbigpKTsKKyAgICAgICAgaW4ucG9zaXRpb24oMCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBjcy5uZXdEZWNvZGVyKCk7CisgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5JR05PUkUpOworICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICB0cnl7CisgICAgICAgICAgICBDaGFyQnVmZmVyIG91dCA9IGRlY29kZXIuZGVjb2RlKGluKTsKKyAgICAgICAgICAgIGlmKG91dCE9bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oY3MudG9TdHJpbmcoKSsiIGVuY29pbmcgc3VjY2VlZGVkIGFzIGV4cGVjdGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2ggKCBFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgZW5jb2Rpbmc6ICIrY3MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXQvVGVzdENvbnZlcnNpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RDb252ZXJzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwNTMyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0L1Rlc3RDb252ZXJzaW9uLmphdmEKQEAgLTAsMCArMSwxMDgxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2hhcnNldDsKKworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kZXJSZXN1bHQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5jaGFyc2V0LkNoYXJzZXRQcm92aWRlcklDVTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLkRhdGFNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBUaGlzIG1hcHMgdG8gY29udnRlc3QuYyB3aGljaCB0ZXN0cyB0aGUgdGVzdCBmaWxlIGZvciBkYXRhLWRyaXZlbiBjb252ZXJzaW9uIHRlc3RzLiAKKyAqIAorICovCitwdWJsaWMgY2xhc3MgVGVzdENvbnZlcnNpb24gZXh0ZW5kcyBNb2R1bGVUZXN0IHsKKyAgICAvKioKKyAgICAgKiBUaGlzIG1hcHMgdG8gdGhlIEMgc3RydWN0IG9mIGNvbnZlcnNpb24gY2FzZSBpbiBjb252dGVzdC5oIHRoYXQgc3RvcmVzIHRoZQorICAgICAqIGRhdGEgZm9yIGEgY29udmVyc2lvbiB0ZXN0CisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBDb252ZXJzaW9uQ2FzZSB7CisgICAgICAgIGludCBjYXNlTnI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVzdGNhc2UgaW5kZXggICAKKyAgICAgICAgU3RyaW5nIG9wdGlvbiA9IG51bGw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxsYmFjayBvcHRpb25zCisgICAgICAgIENvZGluZ0Vycm9yQWN0aW9uIGNiRXJyb3JBY3Rpb24gPSBudWxsOyAgICAgICAgICAgICAgICAgLy8gY2FsbGJhY2sgYWN0aW9uIHR5cGUKKyAgICAgICAgQ2hhckJ1ZmZlciB0b1VuaWNvZGVSZXN1bHQgPSBudWxsOworICAgICAgICBCeXRlQnVmZmVyIGZyb21Vbmljb2RlUmVzdWx0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIC8vIGRhdGEgcmV0cmlldmVkIGZyb20gYSB0ZXN0IGNhc2UgY29udmVyc2lvbi50eHQKKyAgICAgICAgU3RyaW5nIGNoYXJzZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyc2V0CisgICAgICAgIFN0cmluZyB1bmljb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5pY29kZSBzdHJpbmcKKyAgICAgICAgQnl0ZUJ1ZmZlciBieXRlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlCisgICAgICAgIGludFtdIG9mZnNldHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0cworICAgICAgICBib29sZWFuIGZpbmFsRmx1c2g7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZsdXNoCisgICAgICAgIGJvb2xlYW4gZmFsbGJhY2tzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sKKyAgICAgICAgU3RyaW5nIG91dEVycm9yQ29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlcnJvckNvZGUKKyAgICAgICAgU3RyaW5nIGNib3B0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxsYmFjayAKKyAgICAgICAgCisgICAgICAgIC8vIFRlc3RHZXRVbmljb2RlU2V0IHZhcmlhYmxlcworICAgICAgICBTdHJpbmcgbWFwOworICAgICAgICBTdHJpbmcgbWFwbm90OworICAgICAgICBpbnQgd2hpY2g7CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdENvbnZlcnNpb24oKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RDb252ZXJzaW9uKCkgeworICAgICAgICBzdXBlcigiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiwgImNvbnZlcnNpb24iKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoaXMgbWV0aG9kIG1hcHMgdG8gdGhlIGNvbnZ0ZXN0LmNwcCBydW5JbmRleGVkVGVzdCgpIG1ldGhvZCB0byBydW4gZWFjaAorICAgICAqIHR5cGUgb2YgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzTW9kdWxlcygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCB0ZXN0RnJvbVVuaWNvZGUgPSAwOworICAgICAgICAgICAgaW50IHRlc3RUb1VuaWNvZGUgPSAwOworICAgICAgICAgICAgU3RyaW5nIHRlc3ROYW1lID0gdC5nZXROYW1lKCkudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFuZCBnZXQgZWFjaCBvZiB0aGUgdGVzdCBjYXNlIHRvIHByb2Nlc3MKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IHQuZ2V0RGF0YUl0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIERhdGFNYXAgdGVzdGNhc2UgPSAoRGF0YU1hcCkgaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgICAgICBpZiAodGVzdE5hbWUuZXF1YWxzSWdub3JlQ2FzZSgidG9Vbmljb2RlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdFRvVW5pY29kZSh0ZXN0Y2FzZSwgdGVzdFRvVW5pY29kZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RUb1VuaWNvZGUrKzsKKworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdE5hbWUuZXF1YWxzSWdub3JlQ2FzZSgiZnJvbVVuaWNvZGUiKSkgeworICAgICAgICAgICAgICAgICAgICBUZXN0RnJvbVVuaWNvZGUodGVzdGNhc2UsIHRlc3RGcm9tVW5pY29kZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcm9tVW5pY29kZSsrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdE5hbWUuZXF1YWxzSWdub3JlQ2FzZSgiZ2V0VW5pY29kZVNldCIpKSB7CisgICAgICAgICAgICAgICAgICAgIFRlc3RHZXRVbmljb2RlU2V0KHRlc3RjYXNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSB0ZXN0IGNhc2VzIGZvciBjb252ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAKKyAgICAvLyBmcm9tVW5pY29kZSB0ZXN0IHdvcmtlciBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAorICAgIHByaXZhdGUgdm9pZCBUZXN0RnJvbVVuaWNvZGUoRGF0YU1hcCB0ZXN0Y2FzZSwgaW50IGNhc2VOcikgeworCisgICAgICAgIENvbnZlcnNpb25DYXNlIGNjID0gbmV3IENvbnZlcnNpb25DYXNlKCk7CisgICAgICAgIGNjLmNhc2VOciA9IGNhc2VOcjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gcmV0cmlldmUgdGVzdCBjYXNlIGRhdGEKKyAgICAgICAgICAgIGNjLmNoYXJzZXQgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImNoYXJzZXQiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworICAgICAgICAgICAgY2MudW5pY29kZSA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgidW5pY29kZSIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBjYy5ieXRlcyA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiYnl0ZXMiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldEJpbmFyeSgpOworICAgICAgICAgICAgY2Mub2Zmc2V0cyA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgib2Zmc2V0cyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBjYy5maW5hbEZsdXNoID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJmbHVzaCIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0VUludCgpICE9IDA7CisgICAgICAgICAgICBjYy5mYWxsYmFja3MgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImZhbGxiYWNrcyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0VUludCgpICE9IDA7CisgICAgICAgICAgICBjYy5vdXRFcnJvckNvZGUgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZQorICAgICAgICAgICAgICAgICAgICAuZ2V0T2JqZWN0KCJlcnJvckNvZGUiKSkuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBjYy5jYm9wdCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiY2FsbGJhY2siKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiU2tpcHBpbmcgdGVzdDoiKTsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBwYXJzaW5nIGNvbnZlcnNpb24vdG9Vbmljb2RlIHRlc3QgY2FzZSAiICsgY2MuY2FzZU5yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIC0tLS1mb3IgZGVidWdnaW5nIG9ubHkKKyAgICAgICAgbG9nbG4oIlxuVGVzdEZyb21Vbmljb2RlWyIgKyBjYXNlTnIgKyAiXSAiICsgY2MuY2hhcnNldCArICIgIik7CisgICAgICAgIGxvZ2xuKCJVbmljb2RlOiAiICsgY2MudW5pY29kZSk7CisgICAgICAgIGxvZ2xuKCJCeXRlczoiKTsKKyAgICAgICAgcHJpbnRieXRlcyhjYy5ieXRlcywgY2MuYnl0ZXMubGltaXQoKSk7CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgbG9nbG4oIkNhbGxiYWNrOiAoIiArIGNjLmNib3B0ICsgIikiKTsKKyAgICAgICAgbG9nbG4oIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIik7CisKKyAgICAgICAgLy8gICAgICAgICAtLS0tZm9yIGRlYnVnZ2luZyBvbmx5CisgICAgICAgIC8vIFRPRE86ICoqKkN1cnJlbnRseSBza2lwcGluZyB0ZXN0IGZvciBjaGFyc2V0IGlibS0xMzkwLCBnYjE4MDMwLAorICAgICAgICAvLyBpYm0tOTMwIGR1ZSB0byBleHRlcm5hbCBtYXBwaW5nIG5lZWQgdG8gYmUgZml4CisgICAgICAgIGlmIChjYy5jaGFyc2V0LmVxdWFsc0lnbm9yZUNhc2UoImlibS0xMzkwIikKKyAgICAgICAgICAgICAgICB8fCBjYy5jaGFyc2V0LmVxdWFsc0lnbm9yZUNhc2UoImdiMTgwMzAiKQorICAgICAgICAgICAgICAgIHx8IGNjLmNoYXJzZXQuZXF1YWxzSWdub3JlQ2FzZSgiaWJtLTk3MCIpKSB7CisgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdDooIgorICAgICAgICAgICAgICAgICAgICArIGNjLmNoYXJzZXQKKyAgICAgICAgICAgICAgICAgICAgKyAiKSBkdWUgdG8gSUNVIENoYXJzZXQgZXh0ZXJuYWwgbWFwcGluZyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHJvY2VzcyB0aGUgcmV0cmlldmVkIHRlc3QgZGF0YSBjYXNlCisgICAgICAgIGlmIChjYy5vZmZzZXRzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBjYy5vZmZzZXRzID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIGlmIChjYy5vZmZzZXRzLmxlbmd0aCAhPSBjYy5ieXRlcy5saW1pdCgpKSB7CisgICAgICAgICAgICBlcnJsbigiZnJvbVVuaWNvZGVbIiArIGNjLmNhc2VOciArICJdIGJ5dGVzWyIgKyBjYy5ieXRlcworICAgICAgICAgICAgICAgICAgICArICJdIGFuZCBvZmZzZXRzWyIgKyBjYy5vZmZzZXRzLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICArICJdIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIHRoZSBjYWxsYmFjayByZXBsYWNlbWVudCB2YWx1ZQorICAgICAgICBpZiAoY2MuY2JvcHQubGVuZ3RoKCkgPiAwKSB7CisKKyAgICAgICAgICAgIHN3aXRjaCAoKGNjLmNib3B0KS5jaGFyQXQoMCkpIHsKKyAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnMCc6CisgICAgICAgICAgICAgICAgY2MuY2JFcnJvckFjdGlvbiA9IENvZGluZ0Vycm9yQWN0aW9uLklHTk9SRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJy4nOgorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICcmJzoKKyAgICAgICAgICAgICAgICBjYy5jYkVycm9yQWN0aW9uID0gQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBjYy5jYkVycm9yQWN0aW9uID0gbnVsbDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGFueSBvcHRpb25zIGZvciB0aGUgY2FsbGJhY2sgdmFsdWUgLS0gCisgICAgICAgICAgICBjYy5vcHRpb24gPSBjYy5jYkVycm9yQWN0aW9uID09IG51bGwgPyBjYy5jYm9wdCA6IGNjLmNib3B0CisgICAgICAgICAgICAgICAgICAgIC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICBpZiAoY2Mub3B0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjYy5vcHRpb24gPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUZXN0RnJvbVVuaWNvZGVbIiArIGNjLmNhc2VOciArICJdICIgKyBjYy5jaGFyc2V0KTsKKyAgICAgICAgRnJvbVVuaWNvZGVDYXNlKGNjKTsKKworICAgICAgICByZXR1cm47CisKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIEZyb21Vbmljb2RlQ2FzZShDb252ZXJzaW9uQ2FzZSBjYykgeworCisgICAgICAgIC8vIGNyZWF0ZSBjaGFyc2V0IGVuY29kZXIgZm9yIGNvbnZlcnNpb24gdGVzdAorICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXRFbmNvZGVyIGVuY29kZXIgPSBudWxsOworICAgICAgICBDaGFyc2V0IGNoYXJzZXQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY2hhcnNldCA9IChDaGFyc2V0KSBwcm92aWRlci5jaGFyc2V0Rm9yTmFtZShjYy5jaGFyc2V0KTsKKyAgICAgICAgICAgIGVuY29kZXIgPSAoQ2hhcnNldEVuY29kZXIpIGNoYXJzZXQubmV3RW5jb2RlcigpOworICAgICAgICAgICAgZW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICAgICAgZW5jb2Rlci5vblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKworICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3Q6KCIgKyBjYy5jaGFyc2V0CisgICAgICAgICAgICAgICAgICAgICsgIikgZHVlIHRvIElDVSBDaGFyc2V0IG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lIik7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCB0aGUgY2FsbGJhY2sgZm9yIHRoZSBlbmNvZGVyIAorICAgICAgICBpZiAoY2MuY2JFcnJvckFjdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICBlbmNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihjYy5jYkVycm9yQWN0aW9uKTsKKyAgICAgICAgICAgIGVuY29kZXIub25NYWxmb3JtZWRJbnB1dChjYy5jYkVycm9yQWN0aW9uKTsKKworICAgICAgICAgICAgLy8gaWYgYWN0aW9uIGhhcyBhbiBvcHRpb24sIHB1dCBpbiB0aGUgb3B0aW9uIGZvciB0aGUgY2FzZQorICAgICAgICAgICAgaWYgKGNjLm9wdGlvbi5lcXVhbHMoImkiKSkgeworICAgICAgICAgICAgICAgIGVuY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiBjYWxsYmFjayBhY3Rpb24gaXMgcmVwbGFjZSwgYW5kIHRoZXJlIGlzIGEgc3ViY2hhcgorICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgZGVjb2RlcidzIGRlZmF1bHQgcmVwbGFjZW1lbnQgdmFsdWUKKyAgICAgICAgICAgIC8vIGlmIHN1YnN0cmluZywgc2tpcCB0ZXN0IGR1ZSB0byBjdXJyZW50IGFwaSBub3Qgc3VwcG9ydGluZworICAgICAgICAgICAgLy8gc3Vic3RyaW5nCisgICAgICAgICAgICBpZiAoY2MuY2JFcnJvckFjdGlvbi5lcXVhbHMoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2MuY2JvcHQubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5sZW5ndGgoKSA+IDEgJiYgY2MuY2JvcHQuY2hhckF0KDEpID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgZHVlIHRvIGxpbWl0YXRpb24gaW4gSmF2YSBBUEkgLSBzdWJzdGl0dXRpb24gc3RyaW5nIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIC8vIHJlYWQgTlVMLXNlcGFyYXRlZCBzdWJjaGFyIGZpcnN0LCBpZiBhbnkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIHN1YmNoYXIgZnJvbSBMYXRpbi0xIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IGFmdGVyIHRoZSBOVUwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5jaGFyQXQoMSkgPT0gMHgwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmNib3B0ID0gY2MuY2JvcHQuc3Vic3RyaW5nKDIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rlci5yZXBsYWNlV2l0aCh0b0J5dGVBcnJheShjYy5jYm9wdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0IGR1ZSB0byBsaW1pdGF0aW9uIGluIEphdmEgQVBJIC0gc3Vic3RpdHV0aW9uIGNoYXJhY3RlciBzZXF1ZW5jZSBzaXplIGVycm9yIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBkbyBjaGFyc2V0IGVuY29kaW5nIGZyb20gdW5pY29kZQorCisgICAgICAgIC8vIHRlc3RpbmcgYnkgc3RlcHMgdXNpbmcgY2hhcnNldC5lbmNvZGVyKGluLG91dCxmbHVzaCkKKyAgICAgICAgaW50IHJlc3VsdExlbmd0aDsKKyAgICAgICAgYm9vbGVhbiBvazsKKyAgICAgICAgU3RyaW5nIHN0ZXBzW11bXSA9IHsgeyAiMCIsICJidWxrIiB9LCAvLyBtdXN0IGJlIGZpcnN0IGZvciBvZmZzZXRzIHRvIGJlIGNoZWNrZWQKKyAgICAgICAgICAgICAgICB7ICIxIiwgInN0ZXA9MSIgfSwgeyAiMyIsICJzdGVwPTMiIH0sIHsgIjciLCAic3RlcD03IiB9IH07CisgICAgICAgIGludCBpLCBzdGVwOworCisgICAgICAgIG9rID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RlcHMubGVuZ3RoICYmIG9rOyArK2kpIHsKKyAgICAgICAgICAgIHN0ZXAgPSBJbnRlZ2VyLnBhcnNlSW50KHN0ZXBzW2ldWzBdKTsKKworICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc3RlcDpbIiArIHN0ZXAgKyAiXSIpOworICAgICAgICAgICAgcmVzdWx0TGVuZ3RoID0gc3RlcEZyb21Vbmljb2RlKGNjLCBlbmNvZGVyLCBzdGVwKTsKKyAgICAgICAgICAgIG9rID0gY2hlY2tGcm9tVW5pY29kZShjYywgcmVzdWx0TGVuZ3RoKTsKKworICAgICAgICB9CisgICAgICAgIC8vIHRlc3RpbmcgYnkgd2hvbGUgYnVmZmVyIHVzaW5nIG91dCA9IGNoYXJzZXQuZW5jb2RlcihpbikKKyAgICAgICAgd2hpbGUgKG9rICYmIGNjLmZpbmFsRmx1c2gpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGphdmEgQVBJIGNoYXJzZXQuZW5jb2Rlcihpbik6Iik7CisgICAgICAgICAgICBjYy5mcm9tVW5pY29kZVJlc3VsdCA9IG51bGw7CisgICAgICAgICAgICBCeXRlQnVmZmVyIG91dCA9IG51bGw7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb3V0ID0gZW5jb2Rlci5lbmNvZGUoQ2hhckJ1ZmZlci53cmFwKGNjLnVuaWNvZGUudG9DaGFyQXJyYXkoKSkpOworICAgICAgICAgICAgICAgIG91dC5wb3NpdGlvbihvdXQubGltaXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKG91dC5saW1pdCgpICE9IG91dC5jYXBhY2l0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBvdXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHRlbXAgPSBvdXQuYXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0ID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSh0ZW1wLmxlbmd0aCAqIDQpOworICAgICAgICAgICAgICAgICAgICBvdXQucHV0KHRlbXApOworICAgICAgICAgICAgICAgICAgICBvdXQucG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBlbmNvZGVyLmZsdXNoKG91dCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc092ZXJmbG93KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPdmVyZmxvdyBlcnJvciB3aXRoIGZsdXNoaW5nIGVuY29kZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYy5mcm9tVW5pY29kZVJlc3VsdCA9IG91dDsKKworICAgICAgICAgICAgICAgIG9rID0gY2hlY2tGcm9tVW5pY29kZShjYywgb3V0LmxpbWl0KCkpOworICAgICAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2NoZWNrIHRoZSBlcnJvciBjb2RlIHRvIHNlZSBpZiBpdCBtYXRjaGVzIGNjLmVycm9yQ29kZQorICAgICAgICAgICAgICAgIGxvZ2xuKCJFbmNvZGVyIHJldHVybmVkIGFuIGVycm9yIGNvZGUiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3JDb2RlIGV4cGVjdGVkIGlzOiAiICsgY2Mub3V0RXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgUmVzdWx0IGlzOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuOworCisgICAgfQorICAgIHByaXZhdGUgaW50IHN0ZXBGcm9tVW5pY29kZShDb252ZXJzaW9uQ2FzZSBjYywgQ2hhcnNldEVuY29kZXIgZW5jb2RlciwKKyAgICAgICAgICAgIGludCBzdGVwKSB7CisKKyAgICAgICAgQ2hhckJ1ZmZlciBzb3VyY2U7CisgICAgICAgIEJ5dGVCdWZmZXIgdGFyZ2V0OworICAgICAgICBpbnQgc291cmNlTGVuOworICAgICAgICBib29sZWFuIGZsdXNoOworICAgICAgICBzb3VyY2UgPSBDaGFyQnVmZmVyLndyYXAoY2MudW5pY29kZS50b0NoYXJBcnJheSgpKTsKKyAgICAgICAgc291cmNlTGVuID0gY2MudW5pY29kZS5sZW5ndGgoKTsKKworICAgICAgICB0YXJnZXQgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKGNjLmJ5dGVzLmNhcGFjaXR5KCkgKyA0LyogZm9yIEJPTSAqLyk7CisgICAgICAgIHRhcmdldC5wb3NpdGlvbigwKTsKKyAgICAgICAgc291cmNlLnBvc2l0aW9uKDApOworICAgICAgICBjYy5mcm9tVW5pY29kZVJlc3VsdCA9IG51bGw7CisgICAgICAgIGVuY29kZXIucmVzZXQoKTsKKworICAgICAgICBpZiAoc3RlcCA+PSAwKSB7CisKKyAgICAgICAgICAgIGludCBpU3RlcCA9IHN0ZXA7CisgICAgICAgICAgICBpbnQgb1N0ZXAgPSBzdGVwOworCisgICAgICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdCgoaVN0ZXAgPCBzb3VyY2VMZW4pID8gaVN0ZXAgOiBzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQoKG9TdGVwIDwgdGFyZ2V0LmNhcGFjaXR5KCkpID8gb1N0ZXAgOiB0YXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FwYWNpdHkoKSk7CisgICAgICAgICAgICAgICAgICAgIGZsdXNoID0gKGNjLmZpbmFsRmx1c2ggJiYgc291cmNlLmxpbWl0KCkgPT0gc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KHRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2ggPSBjYy5maW5hbEZsdXNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IG51bGw7CisgICAgICAgICAgICAgICAgLy8gY29udmVydAorICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaGFzUmVtYWluaW5nKCkpIHsKKworICAgICAgICAgICAgICAgICAgICBjciA9IGVuY29kZXIuZW5jb2RlKHNvdXJjZSwgdGFyZ2V0LCBmbHVzaCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgcG9pbnRlcnMgYW5kIGVycm9ycworICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGFydGlhbCB0YXJnZXQgaXMgZmlsbGVkLCBzZXQgYSBuZXcgbGltaXQsIHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZXJyb3IgYW5kIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQoKCh0YXJnZXQucG9zaXRpb24oKSArIHN0ZXApIDwgdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXBhY2l0eSgpKSA/IHRhcmdldC5wb3NpdGlvbigpICsgc3RlcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhcmdldC5jYXBhY2l0eSgpKTsKKworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNyLmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgdGhlIGVycm9yIGNvZGUgdG8gc2VlIGlmIGl0IG1hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNjLmVycm9yQ29kZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVuY29kZXIgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yQ29kZSBleHBlY3RlZCBpczogIiArIGNjLm91dEVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgUmVzdWx0IGlzOiAiICsgY3IudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5saW1pdCgpID09IHNvdXJjZUxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBlbmNvZGVyLmVuY29kZShzb3VyY2UsIHRhcmdldCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxpbWl0KCkgIT0gdGFyZ2V0LmNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LmNhcGFjaXR5KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBlbmNvZGVyLmZsdXNoKHRhcmdldCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmx1c2ggb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaVN0ZXAgKz0gc3RlcDsKKyAgICAgICAgICAgICAgICBvU3RlcCArPSBzdGVwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNjLmZyb21Vbmljb2RlUmVzdWx0ID0gdGFyZ2V0OworICAgICAgICByZXR1cm4gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja0Zyb21Vbmljb2RlKENvbnZlcnNpb25DYXNlIGNjLCBpbnQgcmVzdWx0TGVuZ3RoKSB7CisKKyAgICAgICAgLy8gY2hlY2sgZXZlcnl0aGluZyB0aGF0IG1pZ2h0IGhhdmUgZ29uZSB3cm9uZworICAgICAgICBpZiAoY2MuYnl0ZXMubGltaXQoKSAhPSByZXN1bHRMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChjaGVja1Jlc3VsdHNGcm9tVW5pY29kZShjYywgY2MuYnl0ZXMsIGNjLmZyb21Vbmljb2RlUmVzdWx0KSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oImZyb21Vbmljb2RlWyIgKyBjYy5jYXNlTnIgKyAiXSgiICsgY2MuY2hhcnNldAorICAgICAgICAgICAgICAgICAgICArICIpIGNhbGxiYWNrOiIgKyBjYy5jYm9wdCArICIgZmFpbGVkOiArIgorICAgICAgICAgICAgICAgICAgICArICJ3cm9uZyByZXN1bHQgbGVuZ3RoIiArICJcbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghY2hlY2tSZXN1bHRzRnJvbVVuaWNvZGUoY2MsIGNjLmJ5dGVzLCBjYy5mcm9tVW5pY29kZVJlc3VsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJmcm9tVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0oIiArIGNjLmNoYXJzZXQKKyAgICAgICAgICAgICAgICAgICAgKyAiKSBjYWxsYmFjazoiICsgY2MuY2JvcHQgKyAiIGZhaWxlZDogKyIKKyAgICAgICAgICAgICAgICAgICAgKyAid3JvbmcgcmVzdWx0IHN0cmluZyIgKyAiXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIHRvVW5pY29kZSB0ZXN0IHdvcmtlciBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICBwcml2YXRlIHZvaWQgVGVzdFRvVW5pY29kZShEYXRhTWFwIHRlc3RjYXNlLCBpbnQgY2FzZU5yKSB7CisgICAgICAgIC8vIGNyZWF0ZSBDb252ZXJzaW9uIGNhc2UgdG8gc3RvcmUgdGhlIHRlc3QgY2FzZSBkYXRhCisgICAgICAgIENvbnZlcnNpb25DYXNlIGNjID0gbmV3IENvbnZlcnNpb25DYXNlKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIHJldHJpZXZlIHRlc3QgY2FzZSBkYXRhCisgICAgICAgICAgICBjYy5jYXNlTnIgPSBjYXNlTnI7CisgICAgICAgICAgICBjYy5jaGFyc2V0ID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJjaGFyc2V0IikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGNjLmJ5dGVzID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJieXRlcyIpKQorICAgICAgICAgICAgICAgICAgICAuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBjYy51bmljb2RlID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJ1bmljb2RlIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGNjLm9mZnNldHMgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoIm9mZnNldHMiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgY2MuZmluYWxGbHVzaCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiZmx1c2giKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFVJbnQoKSAhPSAwOworICAgICAgICAgICAgY2MuZmFsbGJhY2tzID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJmYWxsYmFja3MiKSkKKyAgICAgICAgICAgICAgICAgICAgLmdldFVJbnQoKSAhPSAwOworICAgICAgICAgICAgY2Mub3V0RXJyb3JDb2RlID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UKKyAgICAgICAgICAgICAgICAgICAgLmdldE9iamVjdCgiZXJyb3JDb2RlIikpLmdldFN0cmluZygpOworICAgICAgICAgICAgY2MuY2JvcHQgPSAoKElDVVJlc291cmNlQnVuZGxlKSB0ZXN0Y2FzZS5nZXRPYmplY3QoImNhbGxiYWNrIikpCisgICAgICAgICAgICAgICAgICAgIC5nZXRTdHJpbmcoKTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlNraXBwaW5nIHRlc3Q6IGVycm9yIHBhcnNpbmcgY29udmVyc2lvbi90b1VuaWNvZGUgdGVzdCBjYXNlICIKKyAgICAgICAgICAgICAgICAgICAgKworCisgICAgICAgICAgICAgICAgICAgIGNjLmNhc2VOcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyAtLS0tZm9yIGRlYnVnZ2luZyBvbmx5CisgICAgICAgIGxvZ2xuKCJcblRlc3RUb1VuaWNvZGVbIiArIGNhc2VOciArICJdICIgKyBjYy5jaGFyc2V0ICsgIiAiKTsKKyAgICAgICAgbG9nbG4oIkJ5dGVzOiIpOworICAgICAgICBwcmludGJ5dGVzKGNjLmJ5dGVzLCBjYy5ieXRlcy5saW1pdCgpKTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgICAgICBsb2dsbigiVW5pY29kZTogIiArIGhleChjYy51bmljb2RlKSk7CisgICAgICAgIGxvZ2xuKCJDYWxsYmFjazogKCIgKyBjYy5jYm9wdCArICIpIik7CisgICAgICAgIEJ5dGVCdWZmZXIgYyA9IEJ5dGVCdWZmZXIud3JhcChjYy5jYm9wdC5nZXRCeXRlcygpKTsKKyAgICAgICAgcHJpbnRieXRlcyhjLCBjLmxpbWl0KCkpOworICAgICAgICBsb2dsbigiXG4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiIpOworCisgICAgICAgIC8vIC0tLS1mb3IgZGVidWdnaW5nIG9ubHkKKworICAgICAgICAvLyBUT0RPOiBUaGlzIHRlc3QgY2FzZSBpcyBza2lwcGVkIGR1ZSB0byBsaW1pdGF0aW9uIGluIGphdmEncyBBUEkgZm9yCisgICAgICAgIC8vIGRlY29kZXIgcmVwbGFjZW1lbnQKKyAgICAgICAgLy8geyAiaWJtLTEzNjMiLCA6YmlueyBhMmFlYTIgfSwgIlx1MDBhMVx1MDAxYSIsIDppbnR2ZWN0b3J7IDAsIDIgfSwKKyAgICAgICAgLy8gOmludHsxfSwgOmludHswfSwgIiIsICI/IiwgOmJpbnsiIn0gfQorICAgICAgICBpZiAoY2MuY2FzZU5yID09IDYzKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdFRvVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0gIiArIGNjLmNoYXJzZXQpOworICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgZHVlIHRvIGxpbWl0YXRpb24gaW4gSmF2YSBBUEkgLSBjYWxsYmFjayByZXBsYWNlbWVudCB2YWx1ZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIHByb2Nlc3MgdGhlIHJldHJpZXZlZCB0ZXN0IGRhdGEgY2FzZQorICAgICAgICBpZiAoY2Mub2Zmc2V0cy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgY2Mub2Zmc2V0cyA9IG51bGw7CisgICAgICAgIH0gZWxzZSBpZiAoY2Mub2Zmc2V0cy5sZW5ndGggIT0gY2MudW5pY29kZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIlNraXBwaW5nIHRlc3Q6IHRvVW5pY29kZVsiICsgY2MuY2FzZU5yICsgIl0gdW5pY29kZVsiCisgICAgICAgICAgICAgICAgICAgICsgY2MudW5pY29kZS5sZW5ndGgoKSArICJdIGFuZCBvZmZzZXRzWyIKKyAgICAgICAgICAgICAgICAgICAgKyBjYy5vZmZzZXRzLmxlbmd0aCArICJdIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBjaGVjayBmb3IgdGhlIGNhbGxiYWNrIHJlcGxhY2VtZW50IHZhbHVlIGZvciB1bm1hcHBhYmxlCisgICAgICAgIC8vIGNoYXJhY3RlcnMgb3IgbWFsZm9ybWVkIGVycm9ycworICAgICAgICBpZiAoY2MuY2JvcHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBzd2l0Y2ggKChjYy5jYm9wdCkuY2hhckF0KDApKSB7CisgICAgICAgICAgICBjYXNlICc/JzogLy8gQ0FMTEJBQ0tfU1VCU1RJVFVURQorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnMCc6IC8vIENBTExCQUNLX1NLSVAKKyAgICAgICAgICAgICAgICBjYy5jYkVycm9yQWN0aW9uID0gQ29kaW5nRXJyb3JBY3Rpb24uSUdOT1JFOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnLic6IC8vIENBTExCQUNLX1NUT1AKKyAgICAgICAgICAgICAgICBjYy5jYkVycm9yQWN0aW9uID0gQ29kaW5nRXJyb3JBY3Rpb24uUkVQT1JUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnJic6IC8vIENBTExCQUNLX0VTQ0FQRQorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGNjLmNiRXJyb3JBY3Rpb24gPSBudWxsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIGZvciBhbnkgb3B0aW9ucyBmb3IgdGhlIGNhbGxiYWNrIHZhbHVlCisgICAgICAgIGNjLm9wdGlvbiA9IGNjLmNiRXJyb3JBY3Rpb24gPT0gbnVsbCA/IG51bGwgOiBjYy5jYm9wdC5zdWJzdHJpbmcoMSk7CisgICAgICAgIGlmIChjYy5vcHRpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgY2Mub3B0aW9uID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUZXN0VG9Vbmljb2RlWyIgKyBjYy5jYXNlTnIgKyAiXSAiICsgY2MuY2hhcnNldCk7CisgICAgICAgIFRvVW5pY29kZUNhc2UoY2MpOworCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIFRvVW5pY29kZUNhc2UoQ29udmVyc2lvbkNhc2UgY2MpIHsKKworICAgICAgICAvLyBjcmVhdGUgY29udmVydGVyIGZvciBjaGFyc2V0IGFuZCBkZWNvZGVyIGZvciBlYWNoIHRlc3QgY2FzZQorICAgICAgICBDaGFyc2V0UHJvdmlkZXJJQ1UgcHJvdmlkZXIgPSBuZXcgQ2hhcnNldFByb3ZpZGVySUNVKCk7CisgICAgICAgIENoYXJzZXREZWNvZGVyIGRlY29kZXIgPSBudWxsOworICAgICAgICBDaGFyc2V0IGNoYXJzZXQgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjaGFyc2V0ID0gKENoYXJzZXQpIHByb3ZpZGVyLmNoYXJzZXRGb3JOYW1lKGNjLmNoYXJzZXQpOworICAgICAgICAgICAgZGVjb2RlciA9IChDaGFyc2V0RGVjb2RlcikgY2hhcnNldC5uZXdEZWNvZGVyKCk7CisgICAgICAgICAgICBkZWNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdDooIiArIGNjLmNoYXJzZXQKKyAgICAgICAgICAgICAgICAgICAgKyAiKSBkdWUgdG8gSUNVIENoYXJzZXQgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCB0aGUgY2FsbGJhY2sgZm9yIHRoZSBkZWNvZGVyCisgICAgICAgIGlmIChjYy5jYkVycm9yQWN0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChjYy5jYkVycm9yQWN0aW9uKTsKKyAgICAgICAgICAgIGRlY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKGNjLmNiRXJyb3JBY3Rpb24pOworCisgICAgICAgICAgICAvLyBzZXQgdGhlIG9wdGlvbnMgKGlmIGFueTogU0tJUF9TVE9QX09OX0lMTEVHQUwpIGZvciBjYWxsYmFjaworICAgICAgICAgICAgaWYgKGNjLm9wdGlvbi5lcXVhbHMoImkiKSkgeworICAgICAgICAgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5SRVBPUlQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiBjYWxsYmFjayBhY3Rpb24gaXMgcmVwbGFjZSwgYW5kIHRoZXJlIGlzIGEgc3ViY2hhcgorICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgZGVjb2RlcidzIGRlZmF1bHQgcmVwbGFjZW1lbnQgdmFsdWUKKyAgICAgICAgICAgIC8vIGlmIHN1YnN0cmluZywgc2tpcCB0ZXN0IGR1ZSB0byBjdXJyZW50IGFwaSBub3Qgc3VwcG9ydGluZworICAgICAgICAgICAgLy8gc3Vic3RyaW5nIHJlcGxhY2VtZW50CisgICAgICAgICAgICBpZiAoY2MuY2JFcnJvckFjdGlvbi5lcXVhbHMoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2MuY2JvcHQubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYy5jYm9wdC5jaGFyQXQoMSkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgdGVzdCBkdWUgdG8gbGltaXRhdGlvbiBpbiBKYXZhIEFQSSAtIHN1YnN0aXR1dGlvbiBzdHJpbmcgbm90IHN1cHBvcnRlZCIpOworCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAvLyByZWFkIE5VTC1zZXBhcmF0ZWQgc3ViY2hhciBmaXJzdCwgaWYgYW55CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBzdWJjaGFyIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBhZnRlciB0aGUgTlVMCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2MuY2JvcHQuY2hhckF0KDEpID09IDB4MDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5jYm9wdCA9IGNjLmNib3B0LnN1YnN0cmluZygyKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZXIucmVwbGFjZVdpdGgoY2MuY2JvcHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGluZyB0ZXN0IGR1ZSB0byBsaW1pdGF0aW9uIGluIEphdmEgQVBJIC0gc3Vic3RpdHV0aW9uIGNoYXJhY3RlciBzZXF1ZW5jZSBzaXplIGVycm9yIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyAgICAgIENoZWNrIHRoZSBzdGVwIHRvIHVuaWNvZGUgICAgCisgICAgICAgIGJvb2xlYW4gb2s7CisgICAgICAgIGludCByZXN1bHRMZW5ndGg7CisKKyAgICAgICAgU3RyaW5nIHN0ZXBzW11bXSA9IHsgeyAiMCIsICJidWxrIiB9LCAvLyBtdXN0IGJlIGZpcnN0IGZvciBvZmZzZXRzIHRvIGJlIGNoZWNrZWQKKyAgICAgICAgICAgICAgICB7ICIxIiwgInN0ZXA9MSIgfSwgeyAiMyIsICJzdGVwPTMiIH0sIHsgIjciLCAic3RlcD03IiB9IH07CisgICAgICAgIC8qIFRPRE86IGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIHRlc3Qgc3RlcHMsIGdldE5leHQgQVBJIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdyAgCisgICAgICAgICB7ICItMSIsICJnZXROZXh0IiB9LAorICAgICAgICAgeyAiLTIiLCAidG9VKGJ1bGspK2dldE5leHQiIH0sCisgICAgICAgICB7ICItMyIsICJnZXROZXh0K3RvVShidWxrKSIgfSwKKyAgICAgICAgIHsgIi00IiwgInRvVSgxKStnZXROZXh0IiB9LAorICAgICAgICAgeyAiLTUiLCAiZ2V0TmV4dCt0b1UoMSkiIH0sCisgICAgICAgICB7ICItMTIiLCAidG9VKDUpK2dldE5leHQiIH0sCisgICAgICAgICB7ICItMTMiLCAiZ2V0TmV4dCt0b1UoNSkiIH19OyovCisKKyAgICAgICAgb2sgPSB0cnVlOworICAgICAgICBpbnQgc3RlcDsKKyAgICAgICAgLy8gdGVzdGluZyBieSBzdGVwcyB1c2luZyB0aGUgQ29kZXJSZXN1bHQgY3IgPSBjaGFyc2V0LmRlY29kZXIoaW4sb3V0LGZsdXNoKSBhcGkKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGVwcy5sZW5ndGggJiYgb2s7ICsraSkgeworICAgICAgICAgICAgc3RlcCA9IEludGVnZXIucGFyc2VJbnQoc3RlcHNbaV1bMF0pOworCisgICAgICAgICAgICBpZiAoc3RlcCA8IDAgJiYgIWNjLmZpbmFsRmx1c2gpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0ZXA6WyIgKyBzdGVwICsgIl0iKTsKKyAgICAgICAgICAgIHJlc3VsdExlbmd0aCA9IHN0ZXBUb1VuaWNvZGUoY2MsIGRlY29kZXIsIHN0ZXApOworICAgICAgICAgICAgb2sgPSBjaGVja1RvVW5pY29kZShjYywgcmVzdWx0TGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vdGVzdGluZyB0aGUgamF2YSdzIG91dCA9IGNoYXJzZXQuZGVjb2RlcihpbikgYXBpCisgICAgICAgIHdoaWxlIChvayAmJiBjYy5maW5hbEZsdXNoKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBqYXZhIGNoYXJzZXQuZGVjb2Rlcihpbik6Iik7CisgICAgICAgICAgICBjYy50b1VuaWNvZGVSZXN1bHQgPSBudWxsOworICAgICAgICAgICAgQ2hhckJ1ZmZlciBvdXQgPSBudWxsOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG91dCA9IGRlY29kZXIuZGVjb2RlKEJ5dGVCdWZmZXIud3JhcChjYy5ieXRlcy5hcnJheSgpKSk7CisgICAgICAgICAgICAgICAgb3V0LnBvc2l0aW9uKG91dC5saW1pdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAob3V0LmxpbWl0KCkgPCBjYy51bmljb2RlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBvdXQucG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRlbXAgPSBvdXQuYXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0ID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShjYy5ieXRlcy5saW1pdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnB1dCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnBvc2l0aW9uKHBvcyk7CisgICAgICAgICAgICAgICAgICAgIENvZGVyUmVzdWx0IGNyID0gZGVjb2Rlci5mbHVzaChvdXQpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiT3ZlcmZsb3cgZXJyb3Igd2l0aCBmbHVzaGluZyBkZWNvZGVyaW5nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjYy50b1VuaWNvZGVSZXN1bHQgPSBvdXQ7CisKKyAgICAgICAgICAgICAgICBvayA9IGNoZWNrVG9Vbmljb2RlKGNjLCBvdXQubGltaXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vY2hlY2sgdGhlIGVycm9yIGNvZGUgdG8gc2VlIGlmIGl0IG1hdGNoZXMgY2MuZXJyb3JDb2RlCisgICAgICAgICAgICAgICAgbG9nbG4oIkRlY29kZXIgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvckNvZGUgZXhwZWN0ZWQgaXM6ICIgKyBjYy5vdXRFcnJvckNvZGUpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm47CisgICAgfQorCisKKworICAgIAorICAgIHByaXZhdGUgaW50IHN0ZXBUb1VuaWNvZGUoQ29udmVyc2lvbkNhc2UgY2MsIENoYXJzZXREZWNvZGVyIGRlY29kZXIsCisgICAgICAgICAgICBpbnQgc3RlcCkKKworICAgIHsKKyAgICAgICAgQnl0ZUJ1ZmZlciBzb3VyY2U7CisgICAgICAgIENoYXJCdWZmZXIgdGFyZ2V0OworICAgICAgICBib29sZWFuIGZsdXNoID0gZmFsc2U7CisgICAgICAgIGludCBzb3VyY2VMZW47CisgICAgICAgIHNvdXJjZSA9IGNjLmJ5dGVzOworICAgICAgICBzb3VyY2VMZW4gPSBjYy5ieXRlcy5saW1pdCgpOworICAgICAgICBzb3VyY2UucG9zaXRpb24oMCk7CisgICAgICAgIHRhcmdldCA9IENoYXJCdWZmZXIuYWxsb2NhdGUoY2MudW5pY29kZS5sZW5ndGgoKSArIDQpOworICAgICAgICB0YXJnZXQucG9zaXRpb24oMCk7CisgICAgICAgIGNjLnRvVW5pY29kZVJlc3VsdCA9IG51bGw7CisgICAgICAgIGRlY29kZXIucmVzZXQoKTsKKworICAgICAgICBpZiAoc3RlcCA+PSAwKSB7CisKKyAgICAgICAgICAgIGludCBpU3RlcCA9IHN0ZXA7CisgICAgICAgICAgICBpbnQgb1N0ZXAgPSBzdGVwOworCisgICAgICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdCgoaVN0ZXAgPD0gc291cmNlTGVuKSA/IGlTdGVwIDogc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KChvU3RlcCA8PSB0YXJnZXQuY2FwYWNpdHkoKSkgPyBvU3RlcCA6IHRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2ggPSAoY2MuZmluYWxGbHVzaCAmJiBzb3VyY2UubGltaXQoKSA9PSBzb3VyY2VMZW4pOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy9idWxrIG1vZGUKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmxpbWl0KHNvdXJjZUxlbik7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCh0YXJnZXQuY2FwYWNpdHkoKSk7CisgICAgICAgICAgICAgICAgICAgIGZsdXNoID0gY2MuZmluYWxGbHVzaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gY29udmVydCAKKyAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNSZW1haW5pbmcoKSkgeworCisgICAgICAgICAgICAgICAgICAgIGNyID0gZGVjb2Rlci5kZWNvZGUoc291cmNlLCB0YXJnZXQsIGZsdXNoKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgcG9pbnRlcnMgYW5kIGVycm9ycworICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGFydGlhbCB0YXJnZXQgaXMgZmlsbGVkLCBzZXQgYSBuZXcgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb1N0ZXAgPSAodGFyZ2V0LnBvc2l0aW9uKCkgKyBzdGVwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdCgob1N0ZXAgPCB0YXJnZXQuY2FwYWNpdHkoKSkgPyBvU3RlcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhcmdldC5jYXBhY2l0eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGltaXQoKSA+IHRhcmdldC5jYXBhY2l0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90YXJnZXQgaGFzIHJlYWNoZWQgaXRzIGxpbWl0LCBhbiBlcnJvciBvY2N1cnJlZCBvciB0ZXN0IGNhc2UgaGFzIGFuIGVycm9yIGNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NoZWNrIGVycm9yIGNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiVW5FeHBlY3RlZCBlcnJvcjogVGFyZ2V0IEJ1ZmZlciBpcyBsYXJnZXIgdGhhbiBjYXBhY2l0eSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3IuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2NoZWNrIHRoZSBlcnJvciBjb2RlIHRvIHNlZSBpZiBpdCBtYXRjaGVzIGNjLmVycm9yQ29kZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRlY29kZXIgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yQ29kZSBleHBlY3RlZCBpczogIiArIGNjLm91dEVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgUmVzdWx0IGlzOiAiICsgY3IudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5saW1pdCgpID09IHNvdXJjZUxlbikgeworCisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGRlY29kZXIuZGVjb2RlKHNvdXJjZSwgdGFyZ2V0LCB0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy9kdWUgdG8gbGltaXRhdGlvbiBvZiB0aGUgQVBJIHdlIG5lZWQgdG8gY2hlY2sgZm9yIHRhcmdldCBsaW1pdCBmb3IgZXhwZWN0ZWQgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxpbWl0KCkgIT0gY2MudW5pY29kZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5saW1pdChjYy51bmljb2RlLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGRlY29kZXIuZmx1c2godGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGbHVzaCBvcGVyYXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaVN0ZXAgKz0gc3RlcDsKKyAgICAgICAgICAgICAgICBvU3RlcCArPSBzdGVwOworCisgICAgICAgICAgICB9CisKKyAgICAgICAgfS8vIGlmKHN0ZXAgPT0wKQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgZWxzZSAvKiBzdGVwPDAgKi97CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc3RlcD09LTE6IGNhbGwgb25seSB1Y252X2dldE5leHRVQ2hhcigpCisgICAgICAgICAgICAgKiBvdGhlcndpc2UgYWx0ZXJuYXRlIGJldHdlZW4gdWNudl90b1VuaWNvZGUoKSBhbmQgdWNudl9nZXROZXh0VUNoYXIoKQorICAgICAgICAgICAgICogICBpZiBzdGVwPT0tMiBvciAtMywgdGhlbiBnaXZlIHVjbnZfdG9Vbmljb2RlKCkgdGhlIHdob2xlIHJlbWFpbmluZyBpbnB1dCwKKyAgICAgICAgICAgICAqICAgZWxzZSBnaXZlIGl0IGF0IG1vc3QgKC1zdGVwLTIpLzIgYnl0ZXMKKyAgICAgICAgICAgICAqLworCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gY29udmVydAorICAgICAgICAgICAgICAgIGlmICgoc3RlcCAmIDEpICE9IDAgLyogb2RkOiAtMSwgLTMsIC01LCAuLi4gKi8pIHsKKworICAgICAgICAgICAgICAgICAgICB0YXJnZXQubGltaXQodGFyZ2V0LnBvc2l0aW9uKCkgPCB0YXJnZXQuY2FwYWNpdHkoKSA/IHRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wb3NpdGlvbigpICsgMSA6IHRhcmdldC5jYXBhY2l0eSgpKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBkZWNvZGUgYmVoYXZpb3IgaXMgcmV0dXJuIHRvIG91dHB1dCB0YXJnZXQgMSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgQ29kZXJSZXN1bHQgY3IgPSBudWxsOworCisgICAgICAgICAgICAgICAgICAgIC8vc2ltaWxhciB0byBnZXROZXh0VUNoYXIoKSAsIGlucHV0IGlzIHRoZSB3aG9sZSBzdHJpbmcsIHdoaWxlIG91dHB1dHMgb25seSAxIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRhcmdldC5wb3NpdGlvbigpICE9IHRhcmdldC5saW1pdCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc291cmNlLmhhc1JlbWFpbmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjciA9IGRlY29kZXIuZGVjb2RlKHNvdXJjZSwgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoKSA9PSBzb3VyY2VMZW4pOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNPdmVyZmxvdygpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxpbWl0KCkgPj0gdGFyZ2V0LmNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFyZ2V0IGhhcyByZWFjaGVkIGl0cyBsaW1pdCwgYW4gZXJyb3Igb2NjdXJyZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbkV4cGVjdGVkIGVycm9yOiBUYXJnZXQgQnVmZmVyIGlzIGxhcmdlciB0aGFuIGNhcGFjaXR5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vMSBjaGFyYWN0ZXIgaGFzIGJlZW4gY29uc3VtZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KHRhcmdldC5wb3NpdGlvbigpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3IuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRlY29kZXIgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvckNvZGUgZXhwZWN0ZWQgaXM6ICIgKyBjYy5vdXRFcnJvckNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBjci50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLnRvVW5pY29kZVJlc3VsdCA9IHRhcmdldDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBjaGFyYWN0ZXIgaGFzIGJlZW4gY29uc3VtZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxpbWl0KCkgPT0gdGFyZ2V0LnBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KHRhcmdldC5wb3NpdGlvbigpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UucG9zaXRpb24oKSA9PSBzb3VyY2VMZW4pIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVlIHRvIGxpbWl0YXRpb24gb2YgdGhlIEFQSSB3ZSBuZWVkIHRvIGNoZWNrCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGFyZ2V0IGxpbWl0IGZvciBleHBlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgY3IgPSBkZWNvZGVyLmRlY29kZShzb3VyY2UsIHRhcmdldCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LnBvc2l0aW9uKCkgIT0gY2MudW5pY29kZS5sZW5ndGgoKSkgeworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KGNjLnVuaWNvZGUubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyID0gZGVjb2Rlci5mbHVzaCh0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjci5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZsdXNoIG9wZXJhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBhbHRlcm5hdGUgYmV0d2VlbiAtbi0xIGFuZCAtbiBidXQgbGVhdmUgLTEgYWxvbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0ZXAgPCAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzdGVwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsvKiBzdGVwIGlzIGV2ZW4gKi8KKyAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgb25seSBvbmUgVUNoYXIgb3V0cHV0CisKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmxpbWl0KHRhcmdldC5wb3NpdGlvbigpIDwgdGFyZ2V0LmNhcGFjaXR5KCkgPyB0YXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAucG9zaXRpb24oKSArIDEgOiB0YXJnZXQuY2FwYWNpdHkoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGVwID09IC0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5saW1pdChzb3VyY2UucG9zaXRpb24oKSArICgtc3RlcCAtIDIpIC8gMik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxpbWl0KCkgPiBzb3VyY2VMZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubGltaXQoc291cmNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBDb2RlclJlc3VsdCBjciA9IGRlY29kZXIuZGVjb2RlKHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAubGltaXQoKSA9PSBzb3VyY2VMZW4pOworICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBwb2ludGVycyBhbmQgZXJyb3JzIAorICAgICAgICAgICAgICAgICAgICBpZiAoY3IuaXNPdmVyZmxvdygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgY2hhcmFjdGVyIGhhcyBiZWVuIGNvbnN1bWVkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmxpbWl0KCkgPj0gdGFyZ2V0LmNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXQgaGFzIHJlYWNoZWQgaXRzIGxpbWl0LCBhbiBlcnJvciBvY2N1cnJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbmV4cGVjdGVkIGVycm9yOiBUYXJnZXQgQnVmZmVyIGlzIGxhcmdlciB0aGFuIGNhcGFjaXR5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3IuaXNFcnJvcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGVjb2RlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3JDb2RlIGV4cGVjdGVkIGlzOiAiICsgY2Mub3V0RXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBSZXN1bHQgaXM6ICIgKyBjci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLS1zdGVwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjYy50b1VuaWNvZGVSZXN1bHQgPSB0YXJnZXQ7CisgICAgICAgIHJldHVybiB0YXJnZXQucG9zaXRpb24oKTsKKyAgICB9CisKKworICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrVG9Vbmljb2RlKENvbnZlcnNpb25DYXNlIGNjLCBpbnQgcmVzdWx0TGVuZ3RoKSB7CisKKyAgICAgICAgLy8gY2hlY2sgZXZlcnl0aGluZyB0aGF0IG1pZ2h0IGhhdmUgZ29uZSB3cm9uZworICAgICAgICBpZiAoY2MudW5pY29kZS5sZW5ndGgoKSAhPSByZXN1bHRMZW5ndGgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b1VuaWNvZGVbIiArIGNjLmNhc2VOciArICJdKCIgKyBjYy5jaGFyc2V0ICsgIikgY2FsbGJhY2s6IgorICAgICAgICAgICAgICAgICAgICArIGNjLmNib3B0ICsgIiBmYWlsZWQ6ICsiICsgIndyb25nIHJlc3VsdCBsZW5ndGgiICsgIlxuIik7CisgICAgICAgICAgICBjaGVja1Jlc3VsdHNUb1VuaWNvZGUoY2MsIGNjLnVuaWNvZGUsIGNjLnRvVW5pY29kZVJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFjaGVja1Jlc3VsdHNUb1VuaWNvZGUoY2MsIGNjLnVuaWNvZGUsIGNjLnRvVW5pY29kZVJlc3VsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b1VuaWNvZGVbIiArIGNjLmNhc2VOciArICJdKCIgKyBjYy5jaGFyc2V0ICsgIikgY2FsbGJhY2s6IgorICAgICAgICAgICAgICAgICAgICArIGNjLmNib3B0ICsgIiBmYWlsZWQ6ICsiICsgIndyb25nIHJlc3VsdCBzdHJpbmciICsgIlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBUZXN0R2V0VW5pY29kZVNldChEYXRhTWFwIHRlc3RjYXNlKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIGNoYXJzZXQgLSB3aWxsIGJlIG9wZW5lZCwgYW5kIHVjbnZfZ2V0VW5pY29kZVNldCgpIGNhbGxlZCBvbiBpdCAvLworICAgICAgICAgKiBtYXAgLSBzZXQgb2YgY29kZSBwb2ludHMgYW5kIHN0cmluZ3MgdGhhdCBtdXN0IGJlIGluIHRoZSByZXR1cm5lZCBzZXQgLy8KKyAgICAgICAgICogbWFwbm90IC0gc2V0IG9mIGNvZGUgcG9pbnRzIGFuZCBzdHJpbmdzIHRoYXQgbXVzdCAqbm90KiBiZSBpbiB0aGUgLy8KKyAgICAgICAgICogcmV0dXJuZWQgc2V0IC8vIHdoaWNoIC0gbnVtZXJpYyBVQ29udmVydGVyVW5pY29kZVNldCB2YWx1ZSBIZWFkZXJzIHsKKyAgICAgICAgICogImNoYXJzZXQiLCAibWFwIiwgIm1hcG5vdCIsICJ3aGljaCIgfQorICAgICAgICAgKi8KKyAgICAgICAgQ29udmVyc2lvbkNhc2UgY2MgPSBuZXcgQ29udmVyc2lvbkNhc2UoKTsKKyAgICAgICAgLy8gcmV0cmlldmUgdGVzdCBjYXNlIGRhdGEKKyAgICAgICAgY2MuY2hhcnNldCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgiY2hhcnNldCIpKQorICAgICAgICAgICAgICAgIC5nZXRTdHJpbmcoKTsKKyAgICAgICAgY2MubWFwID0gKChJQ1VSZXNvdXJjZUJ1bmRsZSkgdGVzdGNhc2UuZ2V0T2JqZWN0KCJtYXAiKSkuZ2V0U3RyaW5nKCk7CisgICAgICAgIGNjLm1hcG5vdCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgibWFwbm90IikpCisgICAgICAgICAgICAgICAgLmdldFN0cmluZygpOworICAgICAgICBjYy53aGljaCA9ICgoSUNVUmVzb3VyY2VCdW5kbGUpIHRlc3RjYXNlLmdldE9iamVjdCgid2hpY2giKSkuZ2V0VUludCgpOworCisgICAgICAgIC8vIGNyZWF0ZSBjaGFyc2V0IGFuZCBlbmNvZGVyIGZvciBlYWNoIHRlc3QgY2FzZQorICAgICAgICBsb2dsbigiVGVzdCBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZSIpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmb2xsb3dzIHVjbnYuYyBtZXRob2QgdWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKCkgdG8gZGV0ZWN0IHRoZQorICAgICAqIHN0YXJ0IG9mIHRoZSBzdHJlYW0gZm9yIGV4YW1wbGUgVStGRUZGICh0aGUgVW5pY29kZSBCT00vc2lnbmF0dXJlCisgICAgICogY2hhcmFjdGVyKSB0aGF0IGNhbiBiZSBpZ25vcmVkLgorICAgICAqIAorICAgICAqIERldGVjdHMgVW5pY29kZSBzaWduYXR1cmUgYnl0ZSBzZXF1ZW5jZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBieXRlIHN0cmVhbQorICAgICAqIGFuZCByZXR1cm5zIG51bWJlciBvZiBieXRlcyBvZiB0aGUgQk9NIG9mIHRoZSBpbmRpY2F0ZWQgVW5pY29kZSBjaGFyc2V0LgorICAgICAqIDAgaXMgcmV0dXJuZWQgd2hlbiBubyBVbmljb2RlIHNpZ25hdHVyZSBpcyByZWNvZ25pemVkLgorICAgICAqIAorICAgICAqLworCisgICAgcHJpdmF0ZSBTdHJpbmcgZGV0ZWN0VW5pY29kZVNpZ25hdHVyZShCeXRlQnVmZmVyIHNvdXJjZSkgeworICAgICAgICBpbnQgc2lnbmF0dXJlTGVuZ3RoID0gMDsgLy8gbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSBzaWduYXR1cmUKKyAgICAgICAgZmluYWwgaW50IFNJR19NQVhfTEVOID0gNTsKKyAgICAgICAgU3RyaW5nIHNpZ1VuaUNoYXJzZXQgPSBudWxsOyAvLyBzdGF0ZXMgd2hhdCB1bmljb2RlIGNoYXJzZXQgaXMgdGhlIEJPTQorICAgICAgICBpbnQgaSA9IDA7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogaW5pdGlhbCAweGE1IGJ5dGVzOiBtYWtlIHN1cmUgdGhhdCBpZiB3ZSByZWFkIDxTSUdfTUFYX0xFTiBieXRlcyB3ZQorICAgICAgICAgKiBkb24ndCBtaXNkZXRlY3Qgc29tZXRoaW5nCisgICAgICAgICAqLworICAgICAgICBieXRlIHN0YXJ0W10gPSB7IChieXRlKSAweGE1LCAoYnl0ZSkgMHhhNSwgKGJ5dGUpIDB4YTUsIChieXRlKSAweGE1LAorICAgICAgICAgICAgICAgIChieXRlKSAweGE1IH07CisKKyAgICAgICAgd2hpbGUgKGkgPCBzb3VyY2UucmVtYWluaW5nKCkgJiYgaSA8IFNJR19NQVhfTEVOKSB7CisgICAgICAgICAgICBzdGFydFtpXSA9IHNvdXJjZS5nZXQoaSk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnRbMF0gPT0gKGJ5dGUpIDB4RkUgJiYgc3RhcnRbMV0gPT0gKGJ5dGUpIDB4RkYpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDI7CisgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi0xNkJFIjsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzaWduYXR1cmVMZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRbMF0gPT0gKGJ5dGUpIDB4RkYgJiYgc3RhcnRbMV0gPT0gKGJ5dGUpIDB4RkUpIHsKKyAgICAgICAgICAgIGlmIChzdGFydFsyXSA9PSAoYnl0ZSkgMHgwMCAmJiBzdGFydFszXSA9PSAoYnl0ZSkgMHgwMCkgeworICAgICAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDQ7CisgICAgICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtMzJMRSI7CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDI7CisgICAgICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtMTZMRSI7CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRbMF0gPT0gKGJ5dGUpIDB4RUYgJiYgc3RhcnRbMV0gPT0gKGJ5dGUpIDB4QkIKKyAgICAgICAgICAgICAgICAmJiBzdGFydFsyXSA9PSAoYnl0ZSkgMHhCRikgeworICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gMzsKKyAgICAgICAgICAgIHNpZ1VuaUNoYXJzZXQgPSAiVVRGLTgiOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHgwMCAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHgwMAorICAgICAgICAgICAgICAgICYmIHN0YXJ0WzJdID09IChieXRlKSAweEZFICYmIHN0YXJ0WzNdID09IChieXRlKSAweEZGKSB7CisgICAgICAgICAgICBzaWduYXR1cmVMZW5ndGggPSA0OworICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtMzJCRSI7CisgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBzaWdVbmlDaGFyc2V0OworICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzBdID09IChieXRlKSAweDBFICYmIHN0YXJ0WzFdID09IChieXRlKSAweEZFCisgICAgICAgICAgICAgICAgJiYgc3RhcnRbMl0gPT0gKGJ5dGUpIDB4RkYpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDM7CisgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlNDU1UiOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHhGQiAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHhFRQorICAgICAgICAgICAgICAgICYmIHN0YXJ0WzJdID09IChieXRlKSAweDI4KSB7CisgICAgICAgICAgICBzaWduYXR1cmVMZW5ndGggPSAzOworICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJCT0NVLTEiOworICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHgyQiAmJiBzdGFydFsxXSA9PSAoYnl0ZSkgMHgyRgorICAgICAgICAgICAgICAgICYmIHN0YXJ0WzJdID09IChieXRlKSAweDc2KSB7CisKKyAgICAgICAgICAgIGlmIChzdGFydFszXSA9PSAoYnl0ZSkgMHgzOCAmJiBzdGFydFs0XSA9PSAoYnl0ZSkgMHgyRCkgeworICAgICAgICAgICAgICAgIHNpZ25hdHVyZUxlbmd0aCA9IDU7CisgICAgICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtNyI7CisgICAgICAgICAgICAgICAgc291cmNlLnBvc2l0aW9uKHNpZ25hdHVyZUxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0WzNdID09IChieXRlKSAweDM4IHx8IHN0YXJ0WzNdID09IChieXRlKSAweDM5CisgICAgICAgICAgICAgICAgICAgIHx8IHN0YXJ0WzNdID09IChieXRlKSAweDJCIHx8IHN0YXJ0WzNdID09IChieXRlKSAweDJGKSB7CisgICAgICAgICAgICAgICAgc2lnbmF0dXJlTGVuZ3RoID0gNDsKKyAgICAgICAgICAgICAgICBzaWdVbmlDaGFyc2V0ID0gIlVURi03IjsKKyAgICAgICAgICAgICAgICBzb3VyY2UucG9zaXRpb24oc2lnbmF0dXJlTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnVW5pQ2hhcnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGFydFswXSA9PSAoYnl0ZSkgMHhERCAmJiBzdGFydFsyXSA9PSAoYnl0ZSkgMHg3MworICAgICAgICAgICAgICAgICYmIHN0YXJ0WzJdID09IChieXRlKSAweDY2ICYmIHN0YXJ0WzNdID09IChieXRlKSAweDczKSB7CisgICAgICAgICAgICBzaWduYXR1cmVMZW5ndGggPSA0OworICAgICAgICAgICAgc2lnVW5pQ2hhcnNldCA9ICJVVEYtRUJDRElDIjsKKyAgICAgICAgICAgIHNvdXJjZS5wb3NpdGlvbihzaWduYXR1cmVMZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIHNpZ1VuaUNoYXJzZXQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBubyBrbm93biBVbmljb2RlIHNpZ25hdHVyZSBieXRlIHNlcXVlbmNlIHJlY29nbml6ZWQgKi8KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgdm9pZCBwcmludGJ5dGVzKEJ5dGVCdWZmZXIgYnVmLCBpbnQgcG9zKSB7CisgICAgICAgIGludCBjdXIgPSBidWYucG9zaXRpb24oKTsKKyAgICAgICAgbG9nKCIgKCIgKyBwb3MgKyAiKT09WyIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBvczsgaSsrKSB7CisgICAgICAgICAgICBsb2coIigiICsgaSArICIpIiArIGhleChidWYuZ2V0KGkpICYgMHhmZikgKyAiICIpOworICAgICAgICB9CisgICAgICAgIGxvZygiXSIpOworICAgICAgICBidWYucG9zaXRpb24oY3VyKTsKKyAgICB9CisKKyAgICB2b2lkIHByaW50Y2hhcihDaGFyQnVmZmVyIGJ1ZiwgaW50IHBvcykgeworICAgICAgICBpbnQgY3VyID0gYnVmLnBvc2l0aW9uKCk7CisgICAgICAgIGxvZygiICgiICsgcG9zICsgIik9PVsiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb3M7IGkrKykgeworICAgICAgICAgICAgbG9nKCIoIiArIGkgKyAiKSIgKyBoZXgoYnVmLmdldChpKSkgKyAiICIpOworICAgICAgICB9CisgICAgICAgIGxvZygiXSIpOworICAgICAgICBidWYucG9zaXRpb24oY3VyKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tSZXN1bHRzRnJvbVVuaWNvZGUoQ29udmVyc2lvbkNhc2UgY2MsCisgICAgICAgICAgICBCeXRlQnVmZmVyIHNvdXJjZSwKKworICAgICAgICAgICAgQnl0ZUJ1ZmZlciB0YXJnZXQpIHsKKworICAgICAgICBpbnQgbGVuID0gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgIHRhcmdldC5saW1pdChsZW4pOyAvL2FkZGVkIHRvIHN0b3Agd2hlcmUgZGF0YSBlbmRzCisgICAgICAgIHNvdXJjZS5yZXdpbmQoKTsKKyAgICAgICAgdGFyZ2V0LnJld2luZCgpOworCisgICAgICAgIC8vIHJlbW92ZSBhbnkgQk9NIHNpZ25hdHVyZSBiZWZvcmUgY2hlY2tpbmcKKyAgICAgICAgLyogU3RyaW5nIEJPTSA9Ki9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKHRhcmdldCk7CisKKyAgICAgICAgbGVuID0gbGVuIC0gdGFyZ2V0LnBvc2l0aW9uKCk7CisKKyAgICAgICAgaWYgKGxlbiAhPSBzb3VyY2UucmVtYWluaW5nKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZDogb3V0cHV0IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkXG4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0ICsgIlxub3V0cHV0PSIpOworICAgICAgICAgICAgcHJpbnRieXRlcyh0YXJnZXQsIGxlbik7CisgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc291cmNlLnJld2luZCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5yZW1haW5pbmcoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0LmdldCgpICE9IHNvdXJjZS5nZXQoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZDogb3V0cHV0IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkXG4iKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBjYy5jYXNlTnIgKyAiXToiICsgY2MuY2hhcnNldCArICJcbm91dHB1dD0iKTsKKyAgICAgICAgICAgICAgICBwcmludGJ5dGVzKHRhcmdldCwgbGVuKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJbIiArIGNjLmNhc2VOciArICJdOiIgKyBjYy5jaGFyc2V0KTsKKyAgICAgICAgbG9nKCJvdXRwdXQ9Iik7CisgICAgICAgIHByaW50Ynl0ZXModGFyZ2V0LCBsZW4pOworICAgICAgICBsb2dsbigiXG5QYXNzZWRcbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tSZXN1bHRzVG9Vbmljb2RlKENvbnZlcnNpb25DYXNlIGNjLCBTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgQ2hhckJ1ZmZlciB0YXJnZXQpIHsKKworICAgICAgICBpbnQgbGVuID0gdGFyZ2V0LnBvc2l0aW9uKCk7CisgICAgICAgIHRhcmdldC5yZXdpbmQoKTsKKworICAgICAgICAvLyB0ZXN0IHRvIHNlZSBpZiB0aGUgY29udmVyc2lvbiBtYXRjaGVzIGFjdHVhbCByZXN1bHRzCisgICAgICAgIGlmIChsZW4gIT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQ6IG91dHB1dCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZFxuIik7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBjYy5jYXNlTnIgKyAiXToiICsgY2MuY2hhcnNldCArICJcbm91dHB1dD0iKTsKKyAgICAgICAgICAgIHByaW50Y2hhcih0YXJnZXQsIGxlbik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCEoaGV4KHRhcmdldC5nZXQoaSkpLmVxdWFscyhoZXgoc291cmNlLmNoYXJBdChpKSkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZDogb3V0cHV0IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkXG4iKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBjYy5jYXNlTnIgKyAiXToiICsgY2MuY2hhcnNldCArICJcbm91dHB1dD0iKTsKKyAgICAgICAgICAgICAgICBwcmludGNoYXIodGFyZ2V0LCBsZW4pOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiWyIgKyBjYy5jYXNlTnIgKyAiXToiICsgY2MuY2hhcnNldCk7CisgICAgICAgIGxvZygib3V0cHV0PSIpOworICAgICAgICBwcmludGNoYXIodGFyZ2V0LCBsZW4pOworICAgICAgICBsb2dsbigiXG5QYXNzZWRcbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJ5dGVbXSB0b0J5dGVBcnJheShTdHJpbmcgc3RyKSB7CisgICAgICAgIGJ5dGVbXSByZXQgPSBuZXcgYnl0ZVtzdHIubGVuZ3RoKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJldC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgY2hhciBjaCA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoY2ggPD0gMHhGRikgeworICAgICAgICAgICAgICAgIHJldFtpXSA9IChieXRlKSBjaDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiIGJ5dGUgdmFsdWUgb3V0IG9mIHJhbmdlOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArIGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jaGFyc2V0ZGV0L0NoYXJzZXREZXRlY3Rpb25UZXN0cy54bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9DaGFyc2V0RGV0ZWN0aW9uVGVzdHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZGYwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9DaGFyc2V0RGV0ZWN0aW9uVGVzdHMueG1sCkBAIC0wLDAgKzEsNTUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorCis8IS0tIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkIC0tPgorPCEtLSBTZWUgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzIGZvciB0aGVpciBzcGVjaWZpYyBjb3B5cmlnaHQuIC0tPgorCis8Y2hhcnNldC1kZXRlY3Rpb24tdGVzdHM+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtYXIiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktNi9hciB3aW5kb3dzLTEyNTYvYXIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg2KPZiNix2YjYqNinLCDYqNix2YXYrNmK2KfYqiDYp9mE2K3Yp9iz2YjYqCArINin2YbYqtix2YbZitiqIDoKKyAgICDYqti12KjYrSDYudin2YTZhdmK2Kcg2YXYuSDZitmI2YbZitmD2YjYrworICAgIElVQzEwCisgICAg2KrYs9is2ZHZhCDYp9mE2KLZhiDZhNit2LbZiNixINin2YTZhdik2KrZhdixINin2YTYr9mI2YTZiiDYp9mE2LnYp9i02LEg2YTZitmI2YbZitmD2YjYrywg2KfZhNiw2Yog2LPZiti52YLYryDZgdmKIDEwLTEyINii2LDYp9ixIDE5OTcg2KjZhdiv2YrZhtipINmF2KfZitmG2KrYsywKKyAgICDYo9mE2YXYp9mG2YrYpy4g2YjYs9mK2KzZhdi5INin2YTZhdik2KrZhdixINio2YrZhiDYrtio2LHYp9ihINmF2YYg2YPYp9mB2Kkg2YLYt9in2LnYp9iqINin2YTYtdmG2KfYudipINi52YTZiSDYp9mE2LTYqNmD2Kkg2KfZhNi52KfZhNmF2YrYqSDYp9mG2KrYsdmG2YrYqiDZiNmK2YjZhtmK2YPZiNivLCDYrdmK2Ksg2LPYqtiq2YUsCisgICAg2LnZhNmJINin2YTYtdi52YrYr9mK2YYg2KfZhNiv2YjZhNmKINmI2KfZhNmF2K3ZhNmKINi52YTZiSDYrdivINiz2YjYp9ihINmF2YbYp9mC2LTYqSDYs9io2YQg2KfYs9iq2K7Yr9in2YUg2YrZiNmG2YPZiNivINmB2Yog2KfZhNmG2LjZhSDYp9mE2YLYp9im2YXYqSDZiNmB2YrZhdinINmK2K7YtSDYp9mE2KrYt9io2YrZgtin2KoKKyAgICDYp9mE2K3Yp9iz2YjYqNmK2KksINin2YTYrti32YjYtywg2KrYtdmF2YrZhSDYp9mE2YbYtdmI2LUg2YjYp9mE2K3ZiNiz2KjYqSDZhdiq2LnYr9iv2Kkg2KfZhNmE2LrYp9iqLiAKKworICAgIFVuaWNvZGUKKyAgICDYudmG2K/ZhdinINmK2LHZitivINin2YTYudin2YTZhSDYo9mGINmK2KrZg9mE2ZHZhSwg2YHZh9mIINmK2KrYrdiv2ZHYqyDYqNmE2LrYqSDZitmI2YbZitmD2YjYrworCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1kYS1RIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIHdpbmRvd3MtMTI1Mi9kYSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlICsgSW50ZXJuZXQ6CisgICAgQmxpdiBnbG9iYWwgbWVkIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluZHNrcml2IGRpZyBudSB0aWwgZGVuIHRpZW5kZSBpbnRlcm5hdGlvbmFsZSBVbmljb2RlLWtvbmZlcmVuY2UsIGRlciBob2xkZXMgZGVuIDEwLTEyCisgICAgbWFydHMgMTk5NyBpIE1haW56LCBUeXNrbGFuZC4gS29uZmVyZW5jZW4gc2FtbGVyIGVrc3BlcnRlciBmcmEgaGVsZSB2ZXJkZW4gaW5kZW4gZm9yIGRldAorICAgIGdsb2JhbGUgSW50ZXJuZXQgb2cgVW5pY29kZSwgaW50ZXJuYXRpb25hbGlzZXJpbmcgb2cgbG9rYWxpc2VyaW5nLCBpbXBsZW1lbnRlcmluZyBhZgorICAgIFVuaWNvZGUgaSBzdHlyZXN5c3RlbWVyIG9nIHByb2dyYW1tZXIsIHNrcmlmdHR5cGVyLCB0ZWtzdC1sYXlvdXQgb2cgZmxlcnNwcm9nZXQgZGF0YWJlaGFuZGxpbmcuCisKKyAgICBVbmljb2RlCisgICAgTsOlciB2ZXJkZW4gdmlsIHRhbGUsIHRhbGVyIGRlbiDigJxVbmljb2RlLuKAnQorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1kYSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2RhIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBJbnRlcm5ldDoKKyAgICBCbGl2IGdsb2JhbCBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgSW5kc2tyaXYgZGlnIG51IHRpbCBkZW4gdGllbmRlIGludGVybmF0aW9uYWxlIFVuaWNvZGUta29uZmVyZW5jZSwgZGVyIGhvbGRlcyBkZW4gMTAtMTIKKyAgICBtYXJ0cyAxOTk3IGkgTWFpbnosIFR5c2tsYW5kLiBLb25mZXJlbmNlbiBzYW1sZXIgZWtzcGVydGVyIGZyYSBoZWxlIHZlcmRlbiBpbmRlbiBmb3IgZGV0CisgICAgZ2xvYmFsZSBJbnRlcm5ldCBvZyBVbmljb2RlLCBpbnRlcm5hdGlvbmFsaXNlcmluZyBvZyBsb2thbGlzZXJpbmcsIGltcGxlbWVudGVyaW5nIGFmCisgICAgVW5pY29kZSBpIHN0eXJlc3lzdGVtZXIgb2cgcHJvZ3JhbW1lciwgc2tyaWZ0dHlwZXIsIHRla3N0LWxheW91dCBvZyBmbGVyc3Byb2dldCBkYXRhYmVoYW5kbGluZy4KKworICAgIFVuaWNvZGUKKyAgICBOw6VyIHZlcmRlbiB2aWwgdGFsZSwgdGFsZXIgZGVuIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWRlIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZGUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSArIGRhcyBJbnRlcm5ldDoKKyAgICBJbnRlcm5hdGlvbmFsIG1pdCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBNZWxkZW4gU2llIHNpY2ggamV0enQgZsO8ciBkaWUgMTAuIEludGVybmF0aW9uYWxlIFVuaWNvZGUgS29uZmVyZW56IGFuLCBkaWUgaW4gZGVyIFplaXQgdm9tIDEwLi0xMi4gTcOkcnogMTk5NyBpbgorICAgIE1haW56IHN0YXR0ZmluZGVuIHdpcmQuIERpZSBLb25mZXJlbnogaXN0IGVpbiBUcmVmZnB1bmt0IGbDvHIgQmV0cmllYnNleHBlcnRlbiBhdXMgZGVuIEJlcmVpY2hlbiBnbG9iYWxlcworICAgIEludGVybmV0IHVuZCBVbmljb2RlLCBJbnRlcm5hdGlvbmFsaXNpZXJ1bmcgdW5kIExva2FsaXNpZXJ1bmcsIGRpZSBJbXBsZW1lbnRpZXJ1bmcgdm9uIFVuaWNvZGUgaW4KKyAgICBCZXRyaWVic3N5c3RlbWVuIHVuZCBQcm9ncmFtbWVuLCBzb3dpZSBmw7xyIFNjaHJpZnRhcnRlbiwgVGV4dGxheW91dCB1bmQgbWVocnNwcmFjaGlnZSBDb21wdXRlcmFud2VuZHVuZ2VuLgorCisgICAgVW5pY29kZQorICAgIFdlbm4gZGllIFdlbHQgbWl0ZWluYW5kZXIgc3ByaWNodCwgc3ByaWNodCBzaWUgVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBVVEYtOCBpbiB0aGlzIHRlc3QgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIC0tPgorICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWVuIiBlbmNvZGluZ3M9IlVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZW4iPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BlLCBTb2Z0d2FyZSArIHRoZSBJbnRlcm5ldDoKKyAgICBHb2luZyBHbG9iYWwgd2l0aCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBSZWdpc3RlciBub3cgZm9yIHRoZSBUZW50aCBJbnRlcm5hdGlvbmFsIFVuaWNvZGUgQ29uZmVyZW5jZSwgdG8gYmUgaGVsZCBvbiBNYXJjaCAxMC0xMiwgMTk5NywKKyAgICBpbiBNYWlueiwgR2VybWFueS4gVGhlIENvbmZlcmVuY2Ugd2lsbCBicmluZyB0b2dldGhlciBpbmR1c3RyeS13aWRlIGV4cGVydHMgb24gdGhlIGdsb2JhbCBJbnRlcm5ldCBhbmQKKyAgICBVbmljb2RlLCBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9uLCBpbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlIGluIG9wZXJhdGluZyBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMsCisgICAgZm9udHMsIHRleHQgbGF5b3V0LCBhbmQgbXVsdGlsaW5ndWFsIGNvbXB1dGluZy4KKworICAgIFVuaWNvZGUKKyAgICBXaGVuIHRoZSB3b3JsZCB3YW50cyB0byB0YWxrLCBpdCBzcGVha3MgVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtZXMiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9lcyI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlICsgZWwgSW50ZXJuZXQ6CisgICAgTXVuZGlhbGl6YW5kbyBjb24gVW5pY29kZQorICAgIElVQzEwCisgICAgSW5zY3LDrWJhc2UgYWhvcmEgcGFyYSBsYSBEw6ljaW1hIENvbmZlcmVuY2lhIEludGVybmFjaW9uYWwgVW5pY29kZSwgcXVlIHRlbmRyw6EgbHVnYXIgZGVsIDEwIGFsIDEyIGRlIG1hcnpvIGRlCisgICAgMTk5NyBlbiBNYWd1bmNpYSwgQWxlbWFuaWEuIExhIENvbmZlcmVuY2lhIHJldW5pcsOhIGV4cGVydG9zIGRlIGxvcyBzZWN0b3JlcyBkZSBsYSBtdW5kaWFsaXphY2nDs24gZGVsIEludGVybmV0IHkKKyAgICBVbmljb2RlLCBsYSBpbnRlcm5hY2lvbmFsaXphY2nDs24geSBsb2NhbGl6YWNpw7NuLCBpbXBsZW1lbnRhY2nDs24gZGUgVW5pY29kZSBlbiBzaXN0ZW1hcyBvcGVyYXRpdm9zIHkgYXBsaWNhY2lvbmVzLAorICAgIHRpcG9zLCBjb21wb3NpY2nDs24gZGUgdGV4dG8gZSBpbmZvcm3DoXRpY2EgbXVsdGlsaW5nw7xlLgorCisgICAgVW5pY29kZQorICAgIEN1YW5kbyBlbCBtdW5kbyBxdWllcmUgY29udmVyc2FyLCBoYWJsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1mciIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2ZyIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEwnRXVyb3BlLCBsZSBsb2dpY2llbCBldCBsJ0ludGVybmV0IDoKKyAgICBsYSBtb25kaWFsaXNhdGlvbiBhdmVjIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluc2NyaXZlei12b3VzIGTDqHMgbWFpbnRlbmFudCDDoCBsYSBkaXhpw6htZSBDb25mw6lyZW5jZSBpbnRlcm5hdGlvbmFsZSBzdXIgVW5pY29kZSwgcXVpIHNlIHRpZW5kcmEgZHUgMTAgYXUgMTIKKyAgICBtYXJzIDE5OTcgw6AgTWF5ZW5jZSwgZW4gQWxsZW1hZ25lLiBDZXR0ZSBjb25mw6lyZW5jZSByYXNzZW1ibGVyYSBkZXMgZXhwZXJ0cyBkZSB0b3VzIGxlcyBob3Jpem9ucyBpbmR1c3RyaWVscworICAgIHN1ciBsZXMgc3VqZXRzIHN1aXZhbnRzIDogbCdJbnRlcm5ldCBtb25kaWFsIGV0IFVuaWNvZGUsIGwnaW50ZXJuYXRpb25hbGlzYXRpb24gZXQgbCdhZGFwdGF0aW9uIGxvY2FsZSwKKyAgICBsJ2ltcGzDqW1lbnRhdGlvbiBkJ1VuaWNvZGUgZGFucyBsZXMgc3lzdMOobWVzIGQnZXhwbG9pdGF0aW9uIGV0IGxlcyBhcHBsaWNhdGlvbnMsIGxlcyBwb2xpY2VzIGRlIGNhcmFjdMOocmVzLAorICAgIGxhIGRpc3Bvc2l0aW9uIGRlIHRleHRlLCBsJ2luZm9ybWF0aXF1ZSBwbHVyaWxpbmd1ZS4KKworICAgIFVuaWNvZGUKKyAgICBRdWFuZCBsZSBtb25kZSB2ZXV0IGNvbW11bmlxdWVyLCBpbCBwYXJsZSBlbiBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1oZSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS04L2hlIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgINeQ15nXqNeV16TXlCwg16rXldeb16DXlCDXldeU15DXmdeg15jXqNeg15g6CisgICAgVW5pY29kZSDXmdeV16bXkCDXnNep15XXpyDXlNei15XXnNee15kKKyAgICBJVUMxMAorICAgINeU15nXqNep157XlSDXm9ei16og15zXm9eg16EgVW5pY29kZSDXlNeR15nXoNec15DXldee15kg15TXotep15nXqNeZLCDXqdeZ15nXoteo15og15HXmdefINeU16rXkNeo15nXm9eZ150gMTItMTAg15HXnteo16UgMTk5Nywg15HXnteZ15nXoNelINep15HXkteo157XoNeZ15QuINeR15vXoNehCisgICAg15nXqdeq16rXpNeVINee15XXnteX15nXnSDXnteb15wg16LXoNek15kg15TXqtei16nXmdeZ15Qg15HXoNeV16nXkCDXlNeQ15nXoNeY16jXoNeYINeU16LXldec157XmSDXldeULVVuaWNvZGUsINeR15TXqteQ157XlCDXnNep15XXpyDXlNeR15nXoNec15DXldee15kg15XXlNee16fXldee15ksINeR15nXmdep15XXnQorICAgIFVuaWNvZGUg15HXntei16jXm9eV16og15TXpNei15zXlCDXldeR15nXmdep15XXnteZ150sINeR15LXldek16DXmdedLCDXkdek16jXmdeh16og15jXp9eh15gg15XXkdee15fXqdeV15Eg16jXkS3XnNep15XXoNeZLgorCisgICAgVW5pY29kZQorICAgINeb15DXqdeoINeU16LXldec150g16jXldem15Qg15zXk9eR16gsINeU15XXkCDXnteT15HXqCDXkS1Vbmljb2RlCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWhlLVEiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgd2luZG93cy0xMjU1L2hlIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgINeQ15nXqNeV16TXlCwg16rXldeb16DXlCDXldeU15DXmdeg15jXqNeg15g6CisgICAgVW5pY29kZSDXmdeV16bXkCDXnNep15XXpyDXlNei15XXnNee15kKKyAgICBJVUMxMAorICAgINeU15nXqNep157XlSDXm9ei16og15zXm9eg16EgVW5pY29kZSDXlNeR15nXoNec15DXldee15kg15TXotep15nXqNeZLCDXqdeZ15nXoteo15og15HXmdefINeU16rXkNeo15nXm9eZ150gMTItMTAg15HXnteo16UgMTk5Nywg15HXnteZ15nXoNelINep15HXkteo157XoNeZ15QuINeR15vXoNehCisgICAg15nXqdeq16rXpNeVINee15XXnteX15nXnSDXnteb15wg16LXoNek15kg15TXqtei16nXmdeZ15Qg15HXoNeV16nXkCDXlNeQ15nXoNeY16jXoNeYINeU16LXldec157XmSDXldeULVVuaWNvZGUsINeR15TXqteQ157XlCDXnNep15XXpyDXlNeR15nXoNec15DXldee15kg15XXlNee16fXldee15ksINeR15nXmdep15XXnQorICAgIFVuaWNvZGUg15HXntei16jXm9eV16og15TXpNei15zXlCDXldeR15nXmdep15XXnteZ150sINeR15LXldek16DXmdedLCDXkdek16jXmdeh16og15jXp9eh15gg15XXkdee15fXqdeV15Eg16jXkS3XnNep15XXoNeZLgorCisgICAgVW5pY29kZQorICAgINeb15DXqdeoINeU16LXldec150g16jXldem15Qg15zXk9eR16gsINeU15XXkCDXnteT15HXqCAt4oCcVW5pY29kZS7igJ0KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaHUiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMi9odSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXLDs3BhLCBhIFN6b2Z0dmVyIHMgYXogSW50ZXJuZXQgLQorICAgIEdsb2LDoWxpc3PDoSBWw6FsdG96aWsgYSBVbmljb2RlIMOBbHRhbAorICAgIElVQzEwCisgICAgSXJhdGtvenpvbiBtw6FyIG1vc3QgYSBUaXplZGlrIE5lbXpldGvDtnppIFVuaWNvZGUgS29uZmVyZW5jacOhcmEsIGFtZWx5IE3DoXJjaXVzIDEwLTEyIDE5OTcKKyAgICBsZXN6IG1lZ3RhcnR2YSwgTWVpbnotYmUsIE7DqW1ldG9yc3rDoWdiYS4gRWJiZW4gYSBLb25mZXJlbmNpw6FuIGF6IGlwYXLDoWcgc3plcnRlIHNvayBzemFrw6lydMWRCisgICAgZm9nIHLDqXN6dCB2ZW5uaTogYSBnbG9iw6FsaXMgSW50ZXJuZXQgcyBVbmljb2RlIG5lbXpldGvDtnppc8OtdMOpc2UgcyBsb2thbGl6w6Fsw6FzYSwgYQorICAgIFVuaWNvZGUgYmV0ZWxqZXPDrXTDqXNlIGEgbcWxa8O2ZMWRIHJlbmRzemVyZWtiZW4gcyBhbGthbG1hesOhc29rYmFuLCBmb250b2tiYSwgc3rDtnZlZworICAgIHTDqXJiZW9zenTDoXNiYSBzIHTDtmJibnllbHbFsSBjb21wdXRlcmVrYmVuLgorCisgICAgVW5pY29kZQorICAgIEhhIGEgdmlsw6FnIGJlc3rDqWxuaSBha2FyLCBhenQgVW5pY29kZS11bCBtb25kamEuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWh1LVEiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgd2luZG93cy0xMjUwL2h1Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1csOzcGEsIGEgU3pvZnR2ZXIgcyBheiBJbnRlcm5ldCAtCisgICAgR2xvYsOhbGlzc8OhIFbDoWx0b3ppayBhIFVuaWNvZGUgw4FsdGFsCisgICAgSVVDMTAKKyAgICBJcmF0a296em9uIG3DoXIgbW9zdCBhIFRpemVkaWsgTmVtemV0a8O2emkgVW5pY29kZSBLb25mZXJlbmNpw6FyYSwgYW1lbHkgTcOhcmNpdXMgMTAtMTIgMTk5NworICAgIGxlc3ogbWVndGFydHZhLCBNZWluei1iZSwgTsOpbWV0b3JzesOhZ2JhLiBFYmJlbiBhIEtvbmZlcmVuY2nDoW4gYXogaXBhcsOhZyBzemVydGUgc29rIHN6YWvDqXJ0xZEKKyAgICBmb2cgcsOpc3p0IHZlbm5pOiBhIGdsb2LDoWxpcyBJbnRlcm5ldCBzIFVuaWNvZGUgbmVtemV0a8O2emlzw610w6lzZSBzIGxva2FsaXrDoWzDoXNhLCBhCisgICAgVW5pY29kZSBiZXRlbGplc8OtdMOpc2UgYSBtxbFrw7ZkxZEgcmVuZHN6ZXJla2JlbiBzIGFsa2FsbWF6w6Fzb2tiYW4sIGZvbnRva2JhLCBzesO2dmVnCisgICAgdMOpcmJlb3N6dMOhc2JhIHMgdMO2YmJueWVsdsWxIGNvbXB1dGVyZWtiZW4uCisKKyAgICBVbmljb2RlCisgICAgSGEgYSB2aWzDoWcgYmVzesOpbG5pIGFrYXIsIGF6dCDigJxVbmljb2Rl4oCdLXVsIG1vbmRqYS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaXQiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9pdCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIHNvZnR3YXJlIGUgSW50ZXJuZXQ6CisgICAgR2xvYmFsaXp6YXppb25lIGNvbiBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJc2NyaXZldGV2aSBzdWJpdG8gYWxsYSBYIENvbmZlcmVuemEgSW50ZXJuYXppb25hbGUgc3UgVW5pY29kZSwgY2hlIHNpIHRlcnLDoCBkYWwgMTAgYWwgMTIgbWFyem8gMTk5NyBhCisgICAgTWFpbnogaW4gR2VybWFuaWEuIEFsbGEgQ29uZmVyZW56YSBwYXJ0ZWNpcGVyYW5ubyBlc3BlcnRpIGRpIHR1dHRpIGkgc2V0dG9yaSBwZXIgZGlzY3V0ZXJlIGRpIEludGVybmV0IGdsb2JhbGUgZQorICAgIFVuaWNvZGUsIGludGVybmF6aW9uYWxpenphemlvbmUgZSBsb2NhbGl6emF6aW9uZSwgaW1wbGVtZW50YXppb25lIGRpIFVuaWNvZGUgaW4gc2lzdGVtaSBvcGVyYXRpdmkgZSBhcHBsaWNhemlvbmksCisgICAgY2FyYXR0ZXJpLCBjb21wb3NpemlvbmUgZGVpIHRlc3RpIGVkIGVsYWJvcmF6aW9uZSBtdWx0aWxpbmd1ZS4KKworICAgIFVuaWNvZGUKKyAgICBRdWFuZG8gaWwgbW9uZG8gdnVvbGUgY29tdW5pY2FyZSwgcGFybGEgVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBFVUMtSlAgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXQgZGV0ZWN0cyBhcyBHQjE4MDMwIC0tPgorICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWpwIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIFNoaWZ0X0pJUyBJU08tMjAyMi1KUCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDjg6jjg7zjg63jg4Pjg5HjgIHjgr3jg5Xjg4jjgqbjgqfjgqLjgIHjgZ3jgZfjgabjgqTjg7Pjgr/jg7zjg43jg4Pjg4g6CisgICAgVW5pY29kZSDjgafjgrDjg63jg7zjg5Djg6vljJbjgpLni5njgaPjgaYKKyAgICBJVUMxMAorICAgIOesrCAxMCDlm57jga4gVW5pY29kZSDkvJrorbDjga8gMTk5NyDlubQgMyDmnIggMTAtMTLml6XjgIHjg4njgqTjg4Tjga7jg57jgqTjg7Pjg4TjgafplovjgYvjgozjgb7jgZnjgILlj4LliqDluIzmnJvjga7mlrnjga/ku4rjgZnjgZDnmbvpjLLjgZfjgabjgY/jgaDjgZXjgYTjgIIKKyAgICDjgZPjga7kvJrorbDjgafjga/jgIHjgrDjg63jg7zjg5Djg6vjgarjgqTjg7Pjgr/jg43jg4Pjg4jjgIFVbmljb2Rl44CB44K944OV44OI44Km44Kn44Ki44Gu5Zu96Zqb5YyW44GK44KI44Gz44Ot44O844Kr44Oq44K844O844K344On44Oz44CBT1Mg44GK44KI44Gz44Ki44OX44Oq44Kx44O844K344On44Oz44Gn44GuCisgICAgVW5pY29kZSDjga7jgqTjg7Pjg5fjg6rjg6Hjg7Pjg4bjg7zjgrfjg6fjg7PjgIHjg5Xjgqnjg7Pjg4jjgIHjg4bjgq3jgrnjg4jooajnpLrjgIHjg57jg6vjg4HoqIDoqp7jgrPjg7Pjg5Tjg6Xjg7zjg4bjgqPjg7PjgrDjgavjgYrjgZHjgovmpa3nlYzjga7lsILploDlrrbjgYzpm4bjgb7jgorjgb7jgZnjgIIKKworICAgIFVuaWNvZGUKKyAgICDkuJbnlYznmoTjgavoqbHjgZnjgarjgonjgIFVbmljb2RlIOOBp+OBmeOAggorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1rbyIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBFVUMtS1IgSVNPLTIwMjItS1IiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg7Jyg65+9LCDshoztlITtirjsm6jslrQg6re466as6rOgIOyduO2EsOuEtzoKKyAgICDsnKDri4jsvZTrk5zsmYAg7ZWo6ruYIOyEuOqzhOuhnAorICAgIElVQzEwCisgICAg7KCcMTDtmowg7Jyg64uI7L2U65OcIOq1reygnCDtmozsnZjqsIAgMTk5N+uFhCAz7JuUIDEw7J2867aA7YSwIDEy7J286rmM7KeAIOuPheydvOydmCDrp4jsnbjspojsl5DshJwg7Je066a964uI64ukLiDsp4DquIgg65Ox66Gd7ZWY7Iut7Iuc7JikLgorICAgIOydtCDtmozsnZjsl5DshJzripQg7JeF6rOEIOyghOuwmOydmCDsoITrrLjqsIDrk6TsnbQg7ZWo6ruYIOuqqOyXrCDri6TsnYzqs7wg6rCZ7J2AIOu2hOyVvOulvCDri6Tro7nri4jri6QuIC0g7J247YSw64S36rO8IOycoOuLiOy9lOuTnCwg6rWt7KCc7ZmU7JmAIOyngOyXre2ZlCwKKyAgICDsmrTsmIEg7LK07KCc7JmAIOydkeyaqSDtlITroZzqt7jrnqjsl5DshJwg7Jyg64uI7L2U65Oc7J2YIOq1rO2YhCwg6riA6ry0LCDrrLjsnpAg67Cw7Je0LCDri6Tqta3slrQg7Lu07ZOo7YyFLgorCisgICAgVW5pY29kZQorICAgIOyEuOqzhOulvCDtlqXtlZwg64yA7ZmULCDsnKDri4jsvZTrk5zroZwg7ZWY7Iut7Iuc7JikCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDwhLS0gTm8gVVRGLTggaW4gdGhpcyB0ZXN0IGJlY2F1c2UgdGhlcmUgYXJlIG5vIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiAtLT4KKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1ubCIgZW5jb2RpbmdzPSJVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL25sIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBoZXQgSW50ZXJuZXQ6CisgICAgd2VyZWxkd2lqZCBtZXQgVW5pY29kZQorICAgIElVQzEwCisgICAgTWVsZCB1IG51IGFhbiB2b29yIGRlIFRpZW5kZSBJbnRlcm5hdGlvbmFsZSBVbmljb2RlLWNvbmZlcmVudGllLCBkaWUgdmFuIDEwIHRvdCAxMiBtYWFydCAxOTk3IGluCisgICAgTWFpbnogKER1aXRzbGFuZCkgd29yZHQgZ2Vob3VkZW4uIERlIENvbmZlcmVudGllIGlzIGVlbiBvbnRtb2V0aW5nc3BsYWF0cyB2b29yIGV4cGVydHMgdWl0IGRlIGluZHVzdHJpZSBvcCBoZXQKKyAgICBnZWJpZWQgdmFuIGhldCB3ZXJlbGR3aWpkZSBJbnRlcm5ldCBlbiBVbmljb2RlLCBpbnRlcm5hdGlvbmFsaXNhdGllIGVuIGxvY2FsaXNhdGllLCBpbXBsZW1lbnRhdGllIHZhbiBVbmljb2RlIGluCisgICAgYmVzdHVyaW5nc3N5c3RlbWVuIGVuIGFwcGxpY2F0aWVzLCBsZXR0ZXJ0eXBlcywgdGVrc3RvcG1hYWsgZW4gbWVlcnRhbGlnIGNvbXB1dGVyZ2VicnVpay4KKworICAgIFVuaWNvZGUKKyAgICBBbHMgZGUgd2VyZWxkIHdpbCBwcmF0ZW4sIHNwcmVla3QgaGlqIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDwhLS0gTm8gbGFuZ3VhZ2UgZm9yIElTTy04ODU5LTEgaW4gdGhpcyB0ZXN0IGJlY2F1c2Ugbm8tQk8gaXMgcmVjb2dvbml6ZWQgYXMgRGFuaXNoLi4uIC0tPgorICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLW5vLUJPIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBQcm9ncmFtdmFyZSBvZyBJbnRlcm5ldDoKKyAgICBHbG9iYWwgZm9rdXMgbWVkIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIFJlZ2lzdHJlciBkZWcgc29tIGRlbHRhZ2VyIHDDpSBkZW4gdGllbmRlIGluZXJuYXNqb25hbGUgVW5pY29kZSBrb25mZXJhbnNlbiBpIE1haW56LCBUeXNrbGFuZCwgZnJhIDEwLiB0aWwgMTIuIG1hcnMsCisgICAgMTk5Ny4gS29uZmVyYW5zZW4gdmlsIHNhbWxlIGVrc3BlcnRlciBww6UgSW50ZXJuZXQsIFVuaWNvZGUsIGludGVybmFzam9uYWxpc2VyaW5nIG9nIGludGVncmFzam9uIGF2IFVuaWNvZGUgaQorICAgIG9wZXJhdGl2c3lzdGVtZXIgb2cgcHJvZ3JhbW1lciwgZm9udGVyLCB0ZWtzdCBsYXlvdXQgb2cgZmxlcnNwcsOla2xpZyBkYXRhYmVoYW5kbGluZy4KKworICAgIFVuaWNvZGUKKyAgICBOw6VyIHZlcmRlbiB2aWwgc25ha2tlLCBzbmFra2VyIGRlbiBVbmljb2RlCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLW5vLU5ZIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvbm8iPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBwcm9ncmFtdmFyZSBvZyBJbnRlcm5ldHQ6CisgICAgRmVtbiB2ZXJkYSBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgTWVsZCBkZWcgcMOlIGRlbiAxMC4gaW50ZXJuYXNqb25hbGUgVW5pY29kZS1rb25mZXJhbnNlbi4gSGFuIGfDpXIgZsO4cmUgc2VnIGkgTWFpbnogaSBUeXNrbGFuZCBpIGRhZ2FuZSAxMC4tLTEyLiBtYXJzCisgICAgMTk5Nywgb2cgc2FtbGFyIGZhZ2t1bm5pZ2UgaW5uYW4ga29uZmVyYW5zZXRlbWFldCBmcsOlIGhlaWxlIGRhdGFicmFuc2plbi4gVGVtYTogRGV0IGdsb2JhbGUgSW50ZXJuZXR0ZXQgb2cKKyAgICBVbmljb2RlLCBpbnRlcm5hc2pvbmFsaXNlcmluZyBvZyBuYXNqb25hbCB0aWxwYXNzaW5nLCBpbXBsZW1lbnRlcmluZyBhdiBVbmljb2RlIGkgb3BlcmF0aXZzeXN0ZW0gb2cgYnJ1a2FycHJvZ3JhbSwKKyAgICBza3JpZnRzbml0dCAoZm9udGFyKSwgdGVrc3R1dGxlZ2csIG9nIGZsZWlyc3Byw6VrbGVnIGRhdGFiZWhhbmRsaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpXIgdmVyZGEgw7huc2tqZXIgw6Ugc25ha2tlLCB0YWxhciBobyBVbmljb2RlCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXB0LUJSIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvcHQiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSBlIGEgSW50ZXJuZXQ6CisgICAgR2xvYmFsaXphw6fDo28gY29tIG8gVW5pY29kZQorICAgIElVQzEwCisgICAgSW5zY3JldmEtc2UgYWdvcmEgcGFyYSBhIETDqWNpbWEgQ29uZmVyw6puY2lhIEludGVybmFjaW9uYWwgU29icmUgTyBVbmljb2RlLCByZWFsaXphZGEgZW50cmUgb3MgZGlhcyAxMCBlIDEyIGRlCisgICAgbWFyw6dvIGRlIDE5OTcgZW0gTWFpbnogbmEgQWxlbWFuaGEuIEEgQ29uZmVyw6puY2lhIHJldW5pcsOhIHBlcml0b3MgZGUgdG9kYXMgYXMgw6FyZWFzIGRhIGluZMO6c3RyaWEgZXNwZWNpYWxpemFkb3MKKyAgICBlbSBhc3N1bnRvcyByZWxhY2lvbmFkb3MgY29tIGEgSW50ZXJuZXQgZ2xvYmFsIGUgbyBVbmljb2RlLCBpbnRlcm5hY2lvbmFsaXphw6fDo28gZSBsb2NhbGl6YcOnw6NvIGRlIHNvZnR3YXJlLAorICAgIGltcGxlbWVudGHDp8OjbyBkbyBVbmljb2RlIGVtIHNpc3RlbWFzIG9wZXJhY2lvbmFpcyBlIGFwbGljYXRpdm9zLCBmb250ZXMsIGxheW91dCBkZSB0ZXh0byBlIGluZm9ybcOhdGljYSBtdWx0aWzDrW5nw7xlLgorCisgICAgVW5pY29kZQorICAgIFF1YW5kbyBvIG11bmRvIHF1ZXIgZmFsYXIsIGZhbGEgVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtcHQtUFQiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9wdCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlIGUgYSBJbnRlcm5ldDoKKyAgICBHbG9iYWxpemHDp8OjbyBjb20gbyBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcmV2YS1zZSBhZ29yYSBwYXJhIGEgRMOpY2ltYSBDb25mZXLDqm5jaWEgSW50ZXJuYWNpb25hbCBTb2JyZSBPIFVuaWNvZGUsIGEgc2VyIHJlYWxpemFkYSBlbnRyZSBvcyBkaWFzIDEwIGUgMTIKKyAgICBkZSBNYXLDp28gZGUgMTk5NyBlbSBNYWlueiBuYSBBbGVtYW5oYS4gQSBDb25mZXLDqm5jaWEgcmV1bmlyw6EgcGVyaXRvcyBkZSB0b2RhcyBhcyDDoXJlYXMgZGEgaW5kw7pzdHJpYQorICAgIGVzcGVjaWFsaXphZG9zIGVtIGFzc3VudG9zIHJlbGFjaW9uYWRvcyBjb20gYSBJbnRlcm5ldCBnbG9iYWwgZSBvIFVuaWNvZGUsIGludGVybmFjaW9uYWxpemHDp8OjbyBlIGxvY2FsaXphw6fDo28gZGUKKyAgICBzb2Z0d2FyZSwgaW1wbGVtZW50YcOnw6NvIGRvIFVuaWNvZGUgZW0gc2lzdGVtYXMgb3BlcmF0aXZvcyBlIGFwbGljYcOnw7VlcywgdGlwb3MgZGUgbGV0cmEsIGVzcXVlbWF0aXphw6fDo28gZGUKKyAgICB0ZXh0byBlIGluZm9ybcOhdGljYSBtdWx0aWzDrW5ndWUuCisKKyAgICBVbmljb2RlCisgICAgUXVhbmRvIG8gbXVuZG8gcXVlciBmYWxhciwgZmFsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1ybyIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0yL3JvIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgxZ9pIEludGVybmV0OgorICAgIEdsb2JhbGl6YXJlYSBjdSBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcmllxaNpLXbEgyBhY3VtIGxhIGEgWmVjZWEgQ29uZmVyaW7Fo8SDIEludGVybmHFo2lvbmFsxIMgIlVuaWNvZGUiIGNlIHZhIGF2ZWEgbG9jIGluCisgICAgcGVyaW9hZGEgZGUgMTAtMTIgbWFydGllLCAxOTk3IMOubiBNYWlueiwgR2VybWFuaWEuIENvbmZlcmluxaNhIHZhIMOubnRydW5pIGV4cGVyxaNpIGRpbgorICAgIHZhcmlhdGUgZG9tZW5paTogSW50ZXJuZXQgZ2xvYmFsIMWfaSBVbmljb2RlLCBpbnRlcm5hxaNpb25hbGl6YXJlIMWfaSBsb2NhbGl6YXJlLAorICAgIGltcGxlbWVudGFyZWRlIFVuaWNvZGUgw65uIHNpc3RlbWUgZGUgb3BlcmFyZSDFn2kgYXBsaWNhxaNpaSwgZm9udHVyaSwgYXJhbmphcmUgZGUgdGV4dCDDrm4KKyAgICBwYWdpbsSDLCBjb21wdXRlcml6YXJlIG11bHRpbGluZ3VhbMSDLgorCisgICAgVW5pY29kZQorICAgIEPDom5kIGx1bWVhIHZyZWEgc8SDIGNvbXVuaWNlLCB2b3JiZcWfdGUgVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtcnUiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktNS9ydSB3aW5kb3dzLTEyNTEvcnUgS09JOC1SL3J1Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgINCV0LLRgNC+0L/QsCwg0J/RgNC+0LPRgNCw0LzQvNC90L7QtSDQvtCx0LXRgdC/0LXRh9C10L3QuNC1ICsg0JjQvdGC0LXRgNC90LXRgjoKKyAgICBVbmljb2RlINCyINCz0LvQvtCx0LDQu9GM0L3Ri9GFINC80LDRgdGI0YLQsNCx0LDRhQorICAgIElVQzEwCisgICAg0JfQsNGA0LXQs9C40YHRgtGA0LjRgNGD0LnRgtC10YHRjCDRgdC10LnRh9Cw0YEg0L3QsCDQlNC10YHRj9GC0YPRjiDQnNC10LbQtNGD0L3QsNGA0L7QtNC90YPRjiDQmtC+0L3RhNC10YDQtdC90YbQuNGOINC/0L4gVW5pY29kZSwg0LrQvtGC0L7RgNCw0Y8g0YHQvtGB0YLQvtC40YLRgdGPCisgICAgMTAtMTIg0LzQsNGA0YLQsCAxOTk3INCz0L7QtNCwINCyINCc0LDQudC90YbQtSDQsiDQk9C10YDQvNCw0L3QuNC4LiDQmtC+0L3RhNC10YDQtdC90YbQuNGPINGB0L7QsdC10YDQtdGCINGI0LjRgNC+0LrQuNC5INC60YDRg9CzINGN0LrRgdC/0LXRgNGC0L7QsiDQv9C+INC4CisgICAg0LLQvtC/0YDQvtGB0LDQvCDQs9C70L7QsdCw0LvRjNC90L7Qs9C+INCY0L3RgtC10YDQvdC10YLQsCDQuCBVbmljb2RlLCDQu9C+0LrQsNC70LjQt9Cw0YbQuNC4INC4INC40L3RgtC10YDQvdCw0YbQuNC+0L3QsNC70LjQt9Cw0YbQuNC4LCDQstC+0L/Qu9C+0YnQtdC90LjRjgorICAgINC/0YDQuNC80LXQvdC10L3QuNGOIFVuaWNvZGUg0LIg0YDQsNC30LvQuNGH0L3Ri9GFINC+0L/QtdGA0LDRhtC40L7QvdC90YvRhSDRgdC40YHRgtC10LzQsNGFINC4INC/0YDQvtCz0YDQsNC80LzQvdGL0YUg0L/RgNC40LvQvtC20LXQvdC40Y/RhSwKKyAgICDRiNGA0LjRhNGC0LDRhSwg0LLQtdGA0YHRgtC60LUg0Lgg0LzQvdC+0LPQvtGP0LfRi9GH0L3Ri9GFINC60L7QvNC/0YzRjtGC0LXRgNC90YvRhSDRgdC40YHRgtC10LzQsNGFLgorCisgICAgVW5pY29kZQorICAgINCa0L7Qs9C00LAg0LzQuNGAINC20LXQu9Cw0LXRgiDQvtCx0YnQsNGC0YzRgdGPLCDQvtC9INC+0LHRidCw0LXRgtGB0Y8g0L3QsCBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1zdiIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL3N2Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgcHJvZ3JhbXZhcmEgb2NoIEludGVybmV0OgorICAgIGdsb2JhbGlzZXJhIG1lZCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBBbm3DpGwgRGlnIHRpbGwgZGVuIHRpb25kZSBpbnRlcm5hdGlvbmVsbGEgVW5pY29kZS1rb25mZXJlbnNlbiwgc29tIGjDpWxscyBkZW4gMTAtMTIgbWFycyAxOTk3IGkgTWFpbnosCisgICAgVHlza2xhbmQuIFZpZCBrb25mZXJlbnNlbiBrb21tZXIgZXhwZXJ0ZXIgaW5vbSBmw7ZsamFuZGUgb21yw6VkZW4gYXR0IGRlbHRhOiBkZXQgZ2xvYmFsYSBJbnRlcm5ldCBvY2ggVW5pY29kZSwKKyAgICBpbnRlcm5hdGlvbmFsaXNlcmluZyBvY2ggbG9rYWxpc2VyaW5nLCBpbXBsZW1lbnRlcmluZyBhdiBVbmljb2RlIGkgb3BlcmF0aXZzeXN0ZW0sIHRpbGzDpG1wbmluZ2FyLCB0eXBzbml0dCwKKyAgICB0ZXh0bGF5b3V0IG9jaCBtw6VuZ3NwcsOla2xpZyBkYXRvcmFudsOkbmRuaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpHIgdsOkcmxkZW4gdmlsbCB0YWxhLCBzw6UgdGFsYXIgZGVuIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXlpIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgINeQ17LXqNeQ1rjXpNa816I6INek1rzXqNeQ1rjXkteo15DWt9ee17DXkNa316jXkiDXkNeV158g15PXmSDXsNei15zXmNeg16LXpToKKyAgICDXkNeV16DXmden15DWuNeTINeQ15nXkdei16gg15PXoteoINeS15DWuNeo16LXqCDXsNei15zXmAorICAgIElVQzEwCisgICAg16TWv9eQ1rfXqNep16jXsta315HXmCDXlteZ15og16nXsdefINeQ17HXoyDXk9ei16gg16bXoteg15jXoteoINeQ15nXoNeY16LXqNeg15DWt9em15nXkNa416DXkNa315zXoteoINeQ15XXoNeZ16fXkNa415Mt16fXkNa416DXpNa/16LXqNei16DXpSwg17DXkNa416Eg17DXoteYINek1r/XkNa416jXp9eV157XotefINeT16LXnQorICAgIDEw15jXnyDXkdeZ15bXnyAxMteY158g157XkNa316jXpSwgMTk5Nywg15DXmdefINee17LWt9eg16UsINeT17LWt9eY16nXnNeQ1rfXoNeTLiDXk9eZINen15DWuNeg16TWv9ei16jXoteg16Ug17DXoteYINem15XXlteQ1rfXntei16DXkdeo16LXoNeS158g157Xkda/15nXoNeZ150g16TWv9eV158g17DXotec15jXoNei16UsCisgICAgINeQ15XXoNeZ16fXkNa415MsINeQ15kg15DWt9ec17DXotec15jXnNei15vXnyDXkNeZINeh15HWv9eZ15HWv9eU15PXmden158g16TWvNeo15DWuNeS16jXkNa3157XsNeQ1rfXqNeSLCDXkNa316jXsta316DXqdeY16LXnNefINeQ15XXoNeZ16fXkNa415Mg15DXmdefINeQ1rjXpNa816LXqNeZ16gt16HXmdeh15jXotee16LXnyDXkNeV158KKyAgICDXkNa416DXsNei16DXk9eV16DXktei158sINep16jXmdek1r/XmNefLCDXmNei16fXodeYLdeQ17HXodep15jXotecLCDXkNeV158g157Xoteo16nXpNa816jXkNa315vXmden16Ig16fXkNa4157XpNa815nXldeY16LXqNey1rcuCisKKyAgICBVbmljb2RlCisgICAg15DWt9eWINeT15kg17DXotec15gg17DXmdecINeo16LXk9efLCDXqNei15PXmCDXlteZINeQ15XXoNeZ16fXkNa415MKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSB0ZXN0LWNhc2UgaWQ9IklVQzEwLXpoLUhhbnQiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTIwMjItQ04gR0IxODAzMCIgLS0+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICA8IS0tCisgICAg5q2Q5rSy77yM6Luf6auU5Y+K57ay6Zqb57ay6Lev77yaCisgICAg6K6T57Wx5LiA56K877yIVW5pY29kZe+8iemgmOS9oOmAsuWFpeWFqOS4lueVjAorICAgIElVQzEwCisgICAg5L2g54++5Zyo5bCx5oeJ5aCx5ZCN5bCH5Zyo77yR77yZ77yZ77yX5bm077yT5pyI77yR77yQ6Iez77yR77yS5pel5pa85b635ZyL576O5ae/5Z+O77yITWFpbnrvvInlj6zplovnmoTnrKzljYHlsYblnIvpmpvntbHkuIDnorznoJToqI7mnIPjgIIKKyAgICDmnKzmrKHnoJToqI7mnIPlsIfpgoDoq4vlpJrkvY3mpa3nlYzlsIjlrrbnoJToqI7pl5zmlrzlhajnkIPntrLpmpvntrLot6/lj4rntbHkuIDnorznmbzlsZXjgIHlnIvpmpvljJblj4rmnKzlnJ/ljJbjgIEKKyAgICDmlK/mj7TntbHkuIDnorznmoTkvZzmpa3ns7vntbHlj4rmh4nnlKjnqIvlvI/jgIHlrZflnovjgIHmloflrZfmjpLniYjjgIHpm7vohablpJrlnIvoqp7mlofljJbnrYnlpJrpoIXoqrLpoYzjgIIKKworICAgIFVuaWNvZGUKKyAgICDnlbbkuJbnlYzpnIDopoHmup3pgJrmmYLvvIzoq4vnlKjntbHkuIDnorzvvIhVbmljb2Rl77yJCisgICAgLS0+CisKKyAgICA8IS0tIC90ZXN0LWNhc2UgLS0+CisKKyAgICA8IS0tIE5vIElTTy0yMDIyLUNOIGluIHRoaXMgdGVzdCBiZWNhdXNlIEphdmEgZG9lc24ndCBzdXBwb3J0IGl0IGluIGJvdGggZGlyZWN0aW9ucyA6LSggLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtemgtSGFucyIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tMjAyMi1DTiBHQjE4MDMwIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIOasp+a0su+8jOi9r+S7tu+8i+S6kuiBlOe9kQorICAgIOeUqOe7n+S4gOeggSAoVW5pY29kZSkg6LWw6YGN5LiW55WMCisgICAgSVVDMTAKKyAgICDlsIbkuo4xOTk35bm0IDMg5pyIMTDml6XvvI0xMuaXpeWcqOW+t+WbvSBNYWlueiDluILkuL7ooYznmoTnrKzljYHlsYrnu5/kuIDnoIHlm73pmYXnoJTorqjkvJrnjrDlnKjlvIDlp4vms6jlhozjgIIKKyAgICDmnKzmrKHkvJrorq7lsIbmsYfpm4blkITmlrnpnaLnmoTkuJPlrrbjgILmtonlj4rnmoTpoobln5/ljIXmi6zvvJrlm73pmYXkupLogZTnvZHlkoznu5/kuIDnoIHvvIzlm73pmYXljJblkozmnKzlnLDljJbvvIwKKyAgICDnu5/kuIDnoIHlnKjmk43kvZzns7vnu5/lkozlupTnlKjova/ku7bkuK3nmoTlrp7njrDvvIzlrZflnovvvIzmlofmnKzmoLzlvI/ku6Xlj4rlpJrmlofnp43orqHnrpfnrYnjgIIKKworICAgIFVuaWNvZGUKKyAgICDlvZPkuJbnlYzpnIDopoHmsp/pgJrml7bvvIzor7fnlKhVbmljb2Rl77yBCisKK0NvbmZlcmVuY2UgUHJvZ3JhbQorICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLWN6IiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTIvY3MiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgQ28gamUgVW5pY29kZT8KKworICAgIFVuaWNvZGUgcMWZacWZYXp1amUga2HFvmTDqW11IHpuYWt1IGplZGluZcSNbsOpIMSNw61zbG8sCisgICAgbmV6w6F2aXNsZSBuYSBwbGF0Zm9ybcSbLAorICAgIG5lesOhdmlzbGUgbmEgcHJvZ3JhbXUsCisgICAgbmV6w6F2aXNsZSBuYSBqYXp5Y2UuCisKKyAgICBQb8SNw610YcSNZSwgemUgc3bDqSBwb2RzdGF0eSwgcHJhY3Vqw60gcG91emUgcyDEjcOtc2x5LiBQw61zbWVuYSBhIGRhbMWhw60gem5ha3kgdWtsw6FkYWrDrSB0YWssIMW+ZSBrYcW+ZMOpbXUgeiBuaWNoCisgICAgcMWZacWZYWTDrSDEjcOtc2xvLiBQxZllZCB2em5pa2VtIFVuaWNvZGUgZXhpc3RvdmFseSBzdG92a3kgcm96ZMOtbG7DvWNoIGvDs2RvdmFjw61jaCBzeXN0w6ltxa8gcHJvIHDFmWnFmWF6b3bDoW7DrSB0xJtjaHRvCisgICAgxI3DrXNlbC4gxb3DoWRuw6kgeiB0xJtjaHRvIGvDs2RvdsOhbsOtIG5lbW9obG8gb2JzYWhvdmF0IGRvc3RhdGVrIHpuYWvFrzogbmFwxZnDrWtsYWQgRXZyb3Bza8OhIHVuaWUgc2FtYSBwb3TFmWVidWplCisgICAgbsSba29saWsgcsWvem7DvWNoIGvDs2RvdsOhbsOtLCBhYnkgcG9rcnlsYSB2xaFlY2hueSBzdsOpIGphenlreS4gRG9rb25jZSBpIHBybyBqZWRlbiBqZWRpbsO9IGphenlrLCBqYWtvIGplIGFuZ2xpxI10aW5hLAorICAgIG5ldnlob3ZvdmFsbyDFvsOhZG7DqSBrw7Nkb3bDoW7DrSBwcm8gdsWhZWNobnkgcMOtc21lbmEsIGludGVycHVua2NpIGEgYsSbxb5uxJsgcG91xb7DrXZhbsOpIHRlY2huaWNrw6kgc3ltYm9seS4KKworICAgIFR5dG8ga8OzZG92YWPDrSBzeXN0w6lteSB0YWvDqSBieWx5IHYga29uZmxpa3R1IGplZGVuIHMgZHJ1aMO9bS4gVG8gem5hbWVuw6EsIMW+ZSBkdsSbIGvDs2RvdsOhbsOtIG1vaG91IHBvdcW+w612YXQKKyAgICBzdGVqbsOpIMSNw61zbG8gcHJvIGR2YSByxa96bsOpIHpuYWt5LCBuZWJvIHBvdcW+w612YXQgcsWvem7DoSDEjcOtc2xhIHBybyBzdGVqbsO9IHpuYWsuIEpha8O9a29saSBwb8SNw610YcSNICh6dmzDocWhdMSbIHNlcnZlcnkpCisgICAgbXVzw60gcG9kcG9yb3ZhdCBtbm9obyByxa96bsO9Y2gga8OzZG92w6Fuw607IHDFmWVzdG8sIGtkeWtvbGkganNvdSBkYXRhIHDFmWVkw6F2w6FuYSBtZXppIHLFr3puw71taSBrw7Nkb3bDoW7DrW1pIG5lYm8KKyAgICBwbGF0Zm9ybWFtaSwgaHJvesOtLCDFvmUgdGF0byBkYXRhIGJ1ZG91IHBvxaFrb3plbmEuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IldJVS1lbCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS03L2VsIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIM6kzrkgzrXOr869zrHOuSDPhM6/IFVuaWNvZGU7CisKKyAgICDOlyDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrrOsc65IM68zr/Ovc6xzrTOuc66z4wgzrHPgc65zrjOvM+MIM6zzrnOsSDOus6szrjOtSDPh86xz4HOsc66z4TOrs+BzrEsCisgICAgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOtc65z4TOv8+Fz4HOs865zrrPjCDPg8+Nz4PPhM63zrzOsSwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsCisgICAgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+EzrfOvSDOs867z47Pg8+DzrEuCisKKyAgICDOn865IM63zrvOtc66z4TPgc6/zr3Ouc66zr/OryDPhc+Azr/Ou86/zrPOuc+Dz4TOrc+CLCDPg861IM+EzrXOu865zrrOriDOsc69zqzOu8+Fz4POtywgz4fOtc65z4HOr862zr/Ovc+EzrHOuSDOsc+AzrvPjs+CIM6xz4HOuc64zrzOv8+Nz4IuIM6Rz4DOv864zrfOus61z43Ov8+Fzr0gzrPPgc6szrzOvM6xz4TOsSDOus6xzrkKKyAgICDOrM67zrvOv8+Fz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrHOvc+EzrnPg8+Ezr/Ouc+Hz47Ovc+EzrHPgiDPg8+Ezr8gzrrOsc64zq3Ovc6xIM+Ezr/Phc+CIM6xz4DPjCDOrc69zrHOvSDOsc+BzrnOuM68z4wgKM6/zr3Ov868zqzOts6/z4XOvM61IM68zq/OsSDPhM6tz4TOv865zrEgzrHOvc+EzrnPg8+Ezr/Ouc+Hzq/OsQorICAgIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSkuIM6gz4HOuc69IM+EzrfOvSDOtc+GzrXPjc+BzrXPg863IM+Ezr/PhSBVbmljb2RlLCDPhc+Azq7Pgc+HzrHOvSDOtc66zrHPhM6/zr3PhM6szrTOtc+CIM60zrnOsc+Gzr/Pgc61z4TOuc66zq3PgiDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgi4gzpvPjM6zz4kKKyAgICDPgM61z4HOuc6/z4HOuc+DzrzPjs69IM68zrXOs86tzrjOv8+Fz4Igz4zOvM+Jz4IsIM+DzrUgzrrOsc68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM+Hz4nPgc6/z43Pg86xzr0gzrHPgc66zrXPhM6/zq8gz4fOsc+BzrHOus+Ezq7Pgc61z4I6IM67z4zOs86/z4Ugz4fOrM+BzrnOvSwKKyAgICDOtyDOlc+Fz4HPic+AzrHPis66zq4gzojOvc+Jz4POtyDPh8+BzrXOuc6xzrbPjM+EzrHOvSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOtc+CIM+EzrnPgiDOs867z47Pg8+DzrXPgiDPhM+Jzr0KKyAgICDPh8+Jz4HPjs69Lc68zrXOu8+Ozr0gz4TOt8+CLiDOkc66z4zOvM6xIM66zrHOuSDOs865zrEgzrzOr86xIM66zrHOuSDOvM+Mzr3OtyDOs867z47Pg8+DzrEsIM+Mz4DPic+CIM+ALs+HLiDPhM6xIM6RzrPOs867zrnOus6sLCDOvM6vzrEgzrrPic60zrnOus6/z4POtc67zq/OtM6xIM60zrXOvQorICAgIM61z4DOsc+BzrrOv8+Nz4POtSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrEgz4TOsSDOs8+BzqzOvM68zrHPhM6xLCDPg863zrzOtc6vzrEgz4PPhM6vzr7Ot8+CIM66zrHOuSDPhM61z4fOvc65zrrOrCDPg8+NzrzOss6/zrvOsSDOtc+Fz4HOtc6vzrHPgiDPh8+Bzq7Pg863z4IuCisKKyAgICDOlc66z4TPjM+CIM6xz4XPhM6/z40sIM6/zrkgzrrPic60zrnOus6/z4POtc67zq/OtM61z4IgzrHPhc+Ezq3PgiDOtM65zrHPhs+Jzr3Ov8+Nz4POsc69IM68zrXPhM6xzr7PjSDPhM6/z4XPgi4gzojPhM+DzrksIM60z43OvyDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOvM+Azr/Pgc6/z43Pg86xzr0gzrrOrM67zrvOuc+Dz4TOsSDOvc6xCisgICAgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gz4TOv869IM6vzrTOuc6/IM6xz4HOuc64zrzPjCDOs865zrEgzrTPjc6/IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CLCDOriDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc69IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM6xz4HOuc64zrzOv8+Nz4IgzrPOuc6xCisgICAgz4TOv869IM6vzrTOuc6/IM+HzrHPgc6xzrrPhM6uz4HOsS4gzprOrM64zrUgz4XPgM6/zrvOv86zzrnPg8+Ezq7PgiAozrrOsc65IM65zrTOr8+Jz4IgzrXOrM69IM6uz4TOsc69IM60zrnOsc66zr/OvM65z4PPhM6uz4IpIM6tz4DPgc61z4DOtSDOvc6xIM+Fz4DOv8+Dz4TOt8+Bzq/Ots61zrkgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvQorICAgIM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM+EzrHPhc+Ez4zPh8+Bzr/Ovc6xIM66zqzOuM61IM+Gzr/Pgc6sIM+Azr/PhSDOtM61zrTOv868zq3Ovc6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOvSDOvM61z4TOsc6+z40gzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6uCisgICAgzrvOtc65z4TOv8+Fz4HOs865zrrPjs69IM+Dz4XPg8+EzrfOvM6sz4TPic69LCDPhM6xIM60zrXOtM6/zrzOrc69zrEgzrHPhc+EzqwgzrrOuc69zrTPjc69zrXPhc6xzr0gzr3OsSDOsc67zrvOv865z4nOuM6/z43OvS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLWVsLVEiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgd2luZG93cy0xMjUzL2VsIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIM6kzrkgzrXOr869zrHOuSDPhM6/IOKAnFVuaWNvZGXigJ07CisKKyAgICDOlyDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrrOsc65IM68zr/Ovc6xzrTOuc66z4wgzrHPgc65zrjOvM+MIM6zzrnOsSDOus6szrjOtSDPh86xz4HOsc66z4TOrs+BzrEsCisgICAgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOtc65z4TOv8+Fz4HOs865zrrPjCDPg8+Nz4PPhM63zrzOsSwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsCisgICAgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+EzrfOvSDOs867z47Pg8+DzrEuCisKKyAgICDOn865IM63zrvOtc66z4TPgc6/zr3Ouc66zr/OryDPhc+Azr/Ou86/zrPOuc+Dz4TOrc+CLCDPg861IM+EzrXOu865zrrOriDOsc69zqzOu8+Fz4POtywgz4fOtc65z4HOr862zr/Ovc+EzrHOuSDOsc+AzrvPjs+CIM6xz4HOuc64zrzOv8+Nz4IuIM6Rz4DOv864zrfOus61z43Ov8+Fzr0gzrPPgc6szrzOvM6xz4TOsSDOus6xzrkKKyAgICDOrM67zrvOv8+Fz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrHOvc+EzrnPg8+Ezr/Ouc+Hz47Ovc+EzrHPgiDPg8+Ezr8gzrrOsc64zq3Ovc6xIM+Ezr/Phc+CIM6xz4DPjCDOrc69zrHOvSDOsc+BzrnOuM68z4wgKM6/zr3Ov868zqzOts6/z4XOvM61IM68zq/OsSDPhM6tz4TOv865zrEgzrHOvc+EzrnPg8+Ezr/Ouc+Hzq/OsQorICAgIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSkuIM6gz4HOuc69IM+EzrfOvSDOtc+GzrXPjc+BzrXPg863IM+Ezr/PhSBVbmljb2RlLCDPhc+Azq7Pgc+HzrHOvSDOtc66zrHPhM6/zr3PhM6szrTOtc+CIM60zrnOsc+Gzr/Pgc61z4TOuc66zq3PgiDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgi4gzpvPjM6zz4kKKyAgICDPgM61z4HOuc6/z4HOuc+DzrzPjs69IM68zrXOs86tzrjOv8+Fz4Igz4zOvM+Jz4IsIM+DzrUgzrrOsc68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM+Hz4nPgc6/z43Pg86xzr0gzrHPgc66zrXPhM6/zq8gz4fOsc+BzrHOus+Ezq7Pgc61z4I6IM67z4zOs86/z4Ugz4fOrM+BzrnOvSwKKyAgICDOtyDOlc+Fz4HPic+AzrHPis66zq4gzojOvc+Jz4POtyDPh8+BzrXOuc6xzrbPjM+EzrHOvSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOtc+CIM+EzrnPgiDOs867z47Pg8+DzrXPgiDPhM+Jzr0KKyAgICDPh8+Jz4HPjs69Lc68zrXOu8+Ozr0gz4TOt8+CLiDOkc66z4zOvM6xIM66zrHOuSDOs865zrEgzrzOr86xIM66zrHOuSDOvM+Mzr3OtyDOs867z47Pg8+DzrEsIM+Mz4DPic+CIM+ALs+HLiDPhM6xIM6RzrPOs867zrnOus6sLCDOvM6vzrEgzrrPic60zrnOus6/z4POtc67zq/OtM6xIM60zrXOvQorICAgIM61z4DOsc+BzrrOv8+Nz4POtSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrEgz4TOsSDOs8+BzqzOvM68zrHPhM6xLCDPg863zrzOtc6vzrEgz4PPhM6vzr7Ot8+CIM66zrHOuSDPhM61z4fOvc65zrrOrCDPg8+NzrzOss6/zrvOsSDOtc+Fz4HOtc6vzrHPgiDPh8+Bzq7Pg863z4IuCisKKyAgICDOlc66z4TPjM+CIM6xz4XPhM6/z40sIM6/zrkgzrrPic60zrnOus6/z4POtc67zq/OtM61z4IgzrHPhc+Ezq3PgiDOtM65zrHPhs+Jzr3Ov8+Nz4POsc69IM68zrXPhM6xzr7PjSDPhM6/z4XPgi4gzojPhM+DzrksIM60z43OvyDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOvM+Azr/Pgc6/z43Pg86xzr0gzrrOrM67zrvOuc+Dz4TOsSDOvc6xCisgICAgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gz4TOv869IM6vzrTOuc6/IM6xz4HOuc64zrzPjCDOs865zrEgzrTPjc6/IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CLCDOriDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc69IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM6xz4HOuc64zrzOv8+Nz4IgzrPOuc6xCisgICAgz4TOv869IM6vzrTOuc6/IM+HzrHPgc6xzrrPhM6uz4HOsS4gzprOrM64zrUgz4XPgM6/zrvOv86zzrnPg8+Ezq7PgiAozrrOsc65IM65zrTOr8+Jz4IgzrXOrM69IM6uz4TOsc69IM60zrnOsc66zr/OvM65z4PPhM6uz4IpIM6tz4DPgc61z4DOtSDOvc6xIM+Fz4DOv8+Dz4TOt8+Bzq/Ots61zrkgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvQorICAgIM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM+EzrHPhc+Ez4zPh8+Bzr/Ovc6xIM66zqzOuM61IM+Gzr/Pgc6sIM+Azr/PhSDOtM61zrTOv868zq3Ovc6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOvSDOvM61z4TOsc6+z40gzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6uCisgICAgzrvOtc65z4TOv8+Fz4HOs865zrrPjs69IM+Dz4XPg8+EzrfOvM6sz4TPic69LCDPhM6xIM60zrXOtM6/zrzOrc69zrEgzrHPhc+EzqwgzrrOuc69zrTPjc69zrXPhc6xzr0gzr3OsSDOsc67zrvOv865z4nOuM6/z43OvS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLXBsIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTIvcGwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgQ3p5bSBqZXN0IFVuaWtvZCA/CisKKyAgICBVbmlrb2QgcHJ6eXBpc3VqZSB1bmlrYWxueSBudW1lciBrYcW8ZGVtdSB6bmFrb3dpLCBuaWV6YWxlxbxueSBvZCB1xbx5d2FuZWogcGxhdGZvcm15LCBwcm9ncmFtdSBjenkgasSZenlrYS4KKworICAgIFphc2Fkbmljem8sIGtvbXB1dGVyeSByb3p1bWllasSFIHR5bGtvIGxpY3pieS4gWmFwaXN1asSFIGxpdGVyeSBpIGlubmUgem5ha2kgcHJ6eXBpc3VqxIVjIGthxbxkZW11IHogbmljaCBsaWN6YsSZLgorICAgIE5pbSBwb3dzdGHFgiBVbmlrb2QsIGJ5xYJvIHdpZWxlIHLDs8W8bnljaCBzeXN0ZW3Ds3cga29kb3dhbmlhIHByenlwaXN1asSFY3ljaCB0ZSBsaWN6YnkuIEJyYWtvd2HFgm8gamVkbmVnbywKKyAgICBrdMOzcnkgbcOzZ8WCYnkgcG9taWXFm2NpxIcgd3lzdGFyY3phasSFY28gZHXFvMSFIGxpY3pixJkgem5ha8Ozdy4gUHJ6eWvFgmFkb3dvLCBzYW1hIFVuaWEgRXVyb3BlanNrYSBwb3RyemVib3dhxYJhCisgICAga2lsa3UgcsOzxbxueWNoIGtvZG93YcWELCBieSBtw7NjIHXFvHl3YcSHIHdzenlzdGtpY2ggdcW8eXdhbnljaCB3IG5pZWogasSZenlrw7N3LiBOYXdldCBkbGEgcG9qZWR5bmN6ZWdvIGrEmXp5a2EKKyAgICB0YWtpZWdvIGphayBucC4gYW5naWVsc2tpIGJyYWtvd2HFgm8gamVkbmVnbyBrb2Rvd2FuaWEsIGt0w7NyZSBiecWCb2J5IG9kcG93aWVkbmllIGRsYSB6YXByZXplbnRvd2FuaWEKKyAgICB3c3p5c3RraWNoIGxpdGVyLCB6bmFrw7N3IHByemVzdGFua293eWNoIGkgcG9wdWxhcm55Y2ggc3ltYm9saSB0ZWNobmljem55Y2guCisKKyAgICBJbm55bSBwcm9ibGVtZW0gYnnFgm8sIMW8ZSBrb2Rvd2FuaWEgdGUga29saWRvd2HFgnkgemUgc29ixIUuIER3YSwgcsOzxbxuZSBrb2Rvd2FuaWEgdcW8eXdhxYJ5IGplZG5laiBsaWN6YnkgZGxhIGR3dQorICAgIHLDs8W8bnljaCB6bmFrw7N3IGx1YiByw7PFvG55Y2ggbGljemIgZGxhIHRlZ28gc2FtZWdvIHpuYWt1LiBXc3p5c3RraWUga29tcHV0ZXJ5IChtacSZZHp5IGlubnltaSBzZXJ3ZXJ5KSBtdXN6xIUKKyAgICB3c3BpZXJhxIcgd3N6eXN0a2llIHRlIGtvZG93YW5pYSwgZ2R5xbwgZGFuZSBwcnplc3nFgmFuZSBtacSZZHp5IHLDs8W8bnltaSBzeXN0ZW1hbWkgb3BlcmFjeWpueW1pIHphd3N6ZQorICAgIG5hcmHFvG9uZSBzxIUgbmEgdXN6a29kemVuaWUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IldJVS10ciIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS05L3RyIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV2cmVuc2VsIEtvZCBOZWRpcj8KKworICAgIEV2cmVuc2VsIEtvZCBoZXIgeWF6xLEga2FyYWt0ZXJpIGnDp2luIGJpciB2ZSB5YWxuxLF6IGJpciBzYXnEsSDFn2FydCBrb8WfYXIsCisgICAgaGFuZ2kgYWx0eWFwxLEsCisgICAgaGFuZ2kgeWF6xLFsxLFtLAorICAgIGhhbmdpIGRpbCBvbHVyc2Egb2xzdW4uCisKKyAgICDEsGxrZSBvbGFyYWssIGJpbGdpc2F5YXJsYXIgc2FkZWNlIHNhecSxbGFybGEgacWfbGVtIHlhcGFybGFyLiBLZWxpbWVsZXJpbiB2ZSB5YXrEsSBrYXJha3RlcmxlcmluaW4gaGVyIGJpcmkgacOnaW4KKyAgICBiaXJlciBzYXnEsSBhdGFybGFyIHZlIGLDtnlsZSBzYWtsYXJsYXIuIEV2cmVuc2VsIEtvZCBrZcWfZmVkaWxtZWRlbiDDtm5jZSwgYnUgc2F5xLFsYXLEsSBhdGFtYWsgacOnaW4gYmlyw6dvayDFn2lmcmVsZW1lCisgICAgecO2bnRlbWkgdmFyZMSxLiBBbmNhaywgdMO8bSBidSBkaWxsZXJpIGfDtnN0ZXJlYmlsZWNlaywgw7ZybmXEn2luOyBBdnJ1cGEgVG9wbHVsdcSfdSBiw7xueWVzaW5kZWtpIHTDvG0gw7xsa2VsZXJpbiBkaWxsZXJpbmkKKyAgICBrYXBzYXlhY2FrIGJpciB0ZWsgxZ9pZnJlbGVtZSB5w7ZudGVtaSB5b2t0dS4gQnVudW4geWFuxLFzxLFyYSwgc2FkZWNlIMSwbmdpbGl6Y2VkZWtpIGhhcmZsZXJpLCBub2t0YWxhbWEKKyAgICBpxZ9hcmV0bGVyaW5pIHZlIHRla25payBzZW1ib2xsZXJpIGthcHNheWFuIHRlayBiaXIgxZ9pZnJlbGVtZSB5w7ZudGVtaSBkZSBidWx1bm1hbWFrdGF5ZMSxLgorCisgICAgQnUgxZ9pZnJlbGVtZSB5w7ZudGVtbGVyaSBrZW5kaSBhcmFsYXLEsW5kYSDDp2VsacWfbWVrdGVkaXIuIMSwa2kgZmFya2zEsSDFn2lmcmVsZW1lLCBheW7EsSBzYXnEsXnEsSBpa2kgZmFya2zEsSBrYXJha3RlcmUKKyAgICB2ZXJtacWfIG9sYWJpbGlyIHlhIGRhIGZhcmtsxLEgc2F5xLFsYXIgYXluxLEga2FyZWt0ZXJpIGtvZGxheWFiaWxpci4gQmlsZ2lzYXlhcmxhciwgw7Z6ZWxsaWtsZSBzdW51Y3VsYXIsIGJpcsOnb2sKKyAgICDFn2lmcmVsZW1leWkgZGVzdGVrbGVtZWsgem9ydW5kYWTEsXJsYXI7IHZlcmlsZXIsIGZhcmtsxLEgxZ9pZnJlbGVtZSB2ZSBhbHR5YXDEsWxhcmRhbiBnZcOnZXJrZW4gYm96dWxtYSByaXNraSB0YcWfxLFybGFyLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtdHItUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTQvdHIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg4oCcRXZyZW5zZWwgS29k4oCdIE5lZGlyPworCisgICAgRXZyZW5zZWwgS29kIGhlciB5YXrEsSBrYXJha3RlcmkgacOnaW4gYmlyIHZlIHlhbG7EsXogYmlyIHNhecSxIMWfYXJ0IGtvxZ9hciwKKyAgICBoYW5naSBhbHR5YXDEsSwKKyAgICBoYW5naSB5YXrEsWzEsW0sCisgICAgaGFuZ2kgZGlsIG9sdXJzYSBvbHN1bi4KKworICAgIMSwbGtlIG9sYXJhaywgYmlsZ2lzYXlhcmxhciBzYWRlY2Ugc2F5xLFsYXJsYSBpxZ9sZW0geWFwYXJsYXIuIEtlbGltZWxlcmluIHZlIHlhesSxIGthcmFrdGVybGVyaW5pbiBoZXIgYmlyaSBpw6dpbgorICAgIGJpcmVyIHNhecSxIGF0YXJsYXIgdmUgYsO2eWxlIHNha2xhcmxhci4gRXZyZW5zZWwgS29kIGtlxZ9mZWRpbG1lZGVuIMO2bmNlLCBidSBzYXnEsWxhcsSxIGF0YW1hayBpw6dpbiBiaXLDp29rIMWfaWZyZWxlbWUKKyAgICB5w7ZudGVtaSB2YXJkxLEuIEFuY2FrLCB0w7xtIGJ1IGRpbGxlcmkgZ8O2c3RlcmViaWxlY2VrLCDDtnJuZcSfaW47IEF2cnVwYSBUb3BsdWx1xJ91IGLDvG55ZXNpbmRla2kgdMO8bSDDvGxrZWxlcmluIGRpbGxlcmluaQorICAgIGthcHNheWFjYWsgYmlyIHRlayDFn2lmcmVsZW1lIHnDtm50ZW1pIHlva3R1LiBCdW51biB5YW7EsXPEsXJhLCBzYWRlY2UgxLBuZ2lsaXpjZWRla2kgaGFyZmxlcmksIG5va3RhbGFtYQorICAgIGnFn2FyZXRsZXJpbmkgdmUgdGVrbmlrIHNlbWJvbGxlcmkga2Fwc2F5YW4gdGVrIGJpciDFn2lmcmVsZW1lIHnDtm50ZW1pIGRlIGJ1bHVubWFtYWt0YXlkxLEuCisKKyAgICBCdSDFn2lmcmVsZW1lIHnDtm50ZW1sZXJpIGtlbmRpIGFyYWxhcsSxbmRhIMOnZWxpxZ9tZWt0ZWRpci4gxLBraSBmYXJrbMSxIMWfaWZyZWxlbWUsIGF5bsSxIHNhecSxecSxIGlraSBmYXJrbMSxIGthcmFrdGVyZQorICAgIHZlcm1pxZ8gb2xhYmlsaXIgeWEgZGEgZmFya2zEsSBzYXnEsWxhciBheW7EsSBrYXJla3Rlcmkga29kbGF5YWJpbGlyLiBCaWxnaXNheWFybGFyLCDDtnplbGxpa2xlIHN1bnVjdWxhciwgYmlyw6dvaworICAgIMWfaWZyZWxlbWV5aSBkZXN0ZWtsZW1layB6b3J1bmRhZMSxcmxhcjsgdmVyaWxlciwgZmFya2zEsSDFn2lmcmVsZW1lIHZlIGFsdHlhcMSxbGFyZGFuIGdlw6dlcmtlbiBib3p1bG1hIHJpc2tpIHRhxZ/EsXJsYXIuCisKKyAgICA8L3Rlc3QtY2FzZT4KKzwvY2hhcnNldC1kZXRlY3Rpb24tdGVzdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNGQ1OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9UZXN0Q2hhcnNldERldGVjdG9yLmphdmEKQEAgLTAsMCArMSwzNzUgQEAKKy8vIyNoZWFkZXIKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0ZGV0OworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUmVhZGVyOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVRGMzI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0RGV0ZWN0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0TWF0Y2g7CisKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworLy8jZW5kaWYKKworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLio7CitpbXBvcnQgb3JnLnczYy5kb20uKjsKKworCisvKioKKyAqIEBhdXRob3IgYW5keQorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFRlc3RDaGFyc2V0RGV0ZWN0b3IgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFRlc3RDaGFyc2V0RGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0Q2hhcnNldERldGVjdG9yIHRlc3QgPSBuZXcgVGVzdENoYXJzZXREZXRlY3RvcigpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIENoZWNrQXNzZXJ0KGJvb2xlYW4gZXhwKSB7CisgICAgICAgIGlmIChleHAgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2c7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICBTdGFja1RyYWNlRWxlbWVudCBmYWlsUG9pbnQgPSBlLmdldFN0YWNrVHJhY2UoKVsxXTsKKyAgICAgICAgICAgICAgICBtc2cgPSAiVGVzdCBmYWlsdXJlIGluIGZpbGUgIiArIGZhaWxQb2ludC5nZXRGaWxlTmFtZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhdCBsaW5lICIgKyBmYWlsUG9pbnQuZ2V0TGluZU51bWJlcigpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgbXNnID0gIlRlc3QgZmFpbHVyZSAgIiArIGUuZ2V0TWVzc2FnZSgpIDsKKy8vI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzdHJpbmdGcm9tUmVhZGVyKFJlYWRlciByZWFkZXIpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGNoYXJbXSBidWZmZXIgICA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICBpbnQgYnl0ZXNSZWFkICAgPSAwOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gcmVhZGVyLnJlYWQoYnVmZmVyLCAwLCAxMDI0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChidWZmZXIsIDAsIGJ5dGVzUmVhZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInN0cmluZ0Zyb21SZWFkZXIoKSBmYWlsZWQ6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrTWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCwgU3RyaW5nIHRlc3RTdHJpbmcsIFN0cmluZyBlbmNvZGluZywgU3RyaW5nIGxhbmd1YWdlLCBTdHJpbmcgaWQpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIENoYXJzZXRNYXRjaCBtID0gZGV0LmRldGVjdCgpOworICAgICAgICBTdHJpbmcgZGVjb2RlZDsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TmFtZSgpLmVxdWFscyhlbmNvZGluZykpIHsKKyAgICAgICAgICAgIGVycmxuKGlkICsgIjogZW5jb2RpbmcgZGV0ZWN0aW9uIGZhaWx1cmUgLSBleHBlY3RlZCAiICsgZW5jb2RpbmcgKyAiLCBnb3QgIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCEgKGxhbmd1YWdlID09IG51bGwgfHwgbS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsYW5ndWFnZSkpKSB7CisgICAgICAgICAgICBlcnJsbihpZCArICIsICIgKyBlbmNvZGluZyArICI6IGxhbmd1YWdlIGRldGVjdGlvbiBmYWlsdXJlIC0gZXhwZWN0ZWQgIiArIGxhbmd1YWdlICsgIiwgZ290ICIgKyBtLmdldExhbmd1YWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZW5jb2Rpbmcuc3RhcnRzV2l0aCgiVVRGLTMyIikpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGVjb2RlZCA9IG0uZ2V0U3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICBpZiAoISB0ZXN0U3RyaW5nLmVxdWFscyhkZWNvZGVkKSkgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiLCAiICsgZW5jb2RpbmcgKyAiOiBnZXRTdHJpbmcoKSBkaWRuJ3QgcmV0dXJuIHRoZSBvcmlnaW5hbCBzdHJpbmchIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRlY29kZWQgPSBzdHJpbmdGcm9tUmVhZGVyKG0uZ2V0UmVhZGVyKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgdGVzdFN0cmluZy5lcXVhbHMoZGVjb2RlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKGlkICsgIiwgIiArIGVuY29kaW5nICsgIjogZ2V0UmVhZGVyKCkgZGlkbid0IHlpZWxkIHRoZSBvcmlnaW5hbCBzdHJpbmchIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrRW5jb2RpbmcoU3RyaW5nIHRlc3RTdHJpbmcsIFN0cmluZyBlbmNvZGluZywgU3RyaW5nIGlkKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGVuYyA9IG51bGwsIGxhbmcgPSBudWxsOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgU3RyaW5nW10gc3BsaXQgPSBlbmNvZGluZy5zcGxpdCgiLyIpOworLy8jZWxzZQorLy8jIyAgICAgICAgU3RyaW5nW10gc3BsaXQgPSBVdGlsaXR5LnNwbGl0KGVuY29kaW5nLCcvJyk7CisvLyNlbmRpZgorICAgICAgICAKKyAgICAgICAgZW5jID0gc3BsaXRbMF07CisgICAgICAgIAorICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgbGFuZyA9IHNwbGl0WzFdOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChlbmMuc3RhcnRzV2l0aCgiVVRGLTMyIikpIHsKKyAgICAgICAgICAgICAgICBVVEYzMiB1dGYzMiA9IFVURjMyLmdldEluc3RhbmNlKGVuYyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnl0ZXMgPSB1dGYzMi50b0J5dGVzKHRlc3RTdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnJvbSA9IGVuYzsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyA9IHRlc3RTdHJpbmcuZ2V0Qnl0ZXMoZnJvbSk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHNvbWUgcnVudGltZXMsIHRoZSBJU08tMjAyMi1DTiBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGNvbnZlcnRzICp0byogVW5pY29kZSAtIHdlIGhhdmUgdG8gdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8geC1JU08tMjAyMi1DTi1HQiB0byBjb252ZXJ0ICpmcm9tKiBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb20uZXF1YWxzKCJJU08tMjAyMi1DTiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSA9ICJ4LUlTTy0yMDIyLUNOLUdCIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBvdGhlciBjb252ZXJ0ZXJzIHRoYXQgY2FuJ3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgZnJvbSBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHVlZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBlbmNvZGluZ3MgdGhhdCB0aGlzIHJ1bnRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgICAgIGNoZWNrTWF0Y2goZGV0LCB0ZXN0U3RyaW5nLCBlbmMsIGxhbmcsIGlkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGV0LnNldFRleHQobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBjaGVja01hdGNoKGRldCwgdGVzdFN0cmluZywgZW5jLCBsYW5nLCBpZCk7CisgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yICBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIGlmKGRldD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNvbnN0cnVjdCBhIGNoYXJzZXQgZGV0ZWN0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgW10gY2hhcnNldE5hbWVzID0gQ2hhcnNldERldGVjdG9yLmdldEFsbERldGVjdGFibGVDaGFyc2V0cygpOworICAgICAgICBDaGVja0Fzc2VydChjaGFyc2V0TmFtZXMubGVuZ3RoICE9IDApOworICAgICAgICBmb3IgKGk9MDsgaTxjaGFyc2V0TmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENoZWNrQXNzZXJ0KGNoYXJzZXROYW1lc1tpXS5lcXVhbHMoIiIpID09IGZhbHNlKTsgCisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIGNoYXJzZXROYW1lc1tpXSArICJcIiIpOworICAgICAgICB9CisgICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnB1dEZpbHRlcigpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gIjxhPiA8bG90PiA8b2Y+IDxFbmdsaXNoPiA8aW5zaWRlPiA8dGhlPiA8bWFya3VwPiBVbiB0clx1MDBFOHMgcGV0aXQgcGV1IGRlIEZyYW5cdTAwRTdhaXMuIDx0bz4gPGNvbmZ1c2U+IDx0aGU+IDxkZXRlY3Rvcj4iOworICAgICAgICBieXRlW10gYnl0ZXMgPSBzLmdldEJ5dGVzKCJJU08tODg1OS0xIik7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIENoYXJzZXRNYXRjaCBtOworICAgICAgICAKKyAgICAgICAgZGV0LmVuYWJsZUlucHV0RmlsdGVyKHRydWUpOworICAgICAgICBpZiAoIWRldC5pbnB1dEZpbHRlckVuYWJsZWQoKSl7CisgICAgICAgICAgICBlcnJsbigiaW5wdXQgZmlsdGVyIHNob3VsZCBiZSBlbmFibGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImZyIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbnB1dCBmaWx0ZXIgZGlkIG5vdCBzdHJpcCBtYXJrdXAhIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5lbmFibGVJbnB1dEZpbHRlcihmYWxzZSk7CisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImVuIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmZpbHRlcmVkIGlucHV0IGRpZCBub3QgZGV0ZWN0IGFzIEVuZ2xpc2ghIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVURjgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyAgcyA9ICJUaGlzIGlzIGEgc3RyaW5nIHdpdGggc29tZSBub24tYXNjaWkgY2hhcmFjdGVycyB0aGF0IHdpbGwgIiArCisgICAgICAgICAgICAgICAgICAgICJiZSBjb252ZXJ0ZWQgdG8gVVRGLTgsIHRoZW4gc2hvdmVkIHRocm91Z2ggdGhlIGRldGVjdGlvbiBwcm9jZXNzLiAgIiArCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTUiICsKKyAgICAgICAgICAgICAgICAgICAgIlN1cmUgd291bGQgYmUgbmljZSBpZiBvdXIgc291cmNlIGNvdWxkIGNvbnRhaW4gVW5pY29kZSBkaXJlY3RseSEiOworICAgICAgICBieXRlIFtdIGJ5dGVzID0gcy5nZXRCeXRlcygiVVRGLTgiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgU3RyaW5nIHJldHJpZXZlZFM7CisgICAgICAgIFJlYWRlciByZWFkZXI7CisgICAgICAgIAorICAgICAgICByZXRyaWV2ZWRTID0gZGV0LmdldFN0cmluZyhieXRlcywgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHJldHJpZXZlZFMpKTsKKyAgICAgICAgCisgICAgICAgIHJlYWRlciA9IGRldC5nZXRSZWFkZXIobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSwgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHN0cmluZ0Zyb21SZWFkZXIocmVhZGVyKSkpOworICAgICAgICBkZXQuc2V0RGVjbGFyZWRFbmNvZGluZygiVVRGLTgiKTsJLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGMTYoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBTdHJpbmcgc291cmNlID0gCisgICAgICAgICAgICAgICAgInUwNjIzXHUwNjQ4XHUwNjMxXHUwNjQ4XHUwNjI4XHUwNjI3LCBcdTA2MjhcdTA2MzFcdTA2NDVcdTA2MmNcdTA2NGFcdTA2MjdcdTA2MmEgIiArCisgICAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYyZFx1MDYyN1x1MDYzM1x1MDY0OFx1MDYyOCBcdTAwMmJcdTAwMjBcdTA2MjdcdTA2NDZcdTA2MmFcdTA2MzFcdTA2NDZcdTA2NGFcdTA2MmEiOworICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVCaWciKTsKKyAgICAgICAgYnl0ZVtdIGxlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVMaXR0bGUiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiZUJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TmFtZSgpLmVxdWFscygiVVRGLTE2QkUiKSkgeworICAgICAgICAgICAgZXJybG4oIkVuY29kaW5nIGRldGVjdGlvbiBmYWlsdXJlOiBleHBlY3RlZCBVVEYtMTZCRSwgZ290ICIgKyBtLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGxlQnl0ZXMpOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgbS5nZXROYW1lKCkuZXF1YWxzKCJVVEYtMTZMRSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRW5jb2RpbmcgZGV0ZWN0aW9uIGZhaWx1cmU6IGV4cGVjdGVkIFVURi0xNkxFLCBnb3QgIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgaW50IGNvbmZpZGVuY2UgPSBtLmdldENvbmZpZGVuY2UoKTsgCisgICAgICAgIGlmKGNvbmZpZGVuY2UgIT0gMTAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgY29uZmlkZW5jZSBsZXZlbCAiICsgY29uZmlkZW5jZSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IG1hdGNoVHlwZSA9IG0uZ2V0TWF0Y2hUeXBlKCk7CisgICAgICAgIGlmKG1hdGNoVHlwZSAhPSAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbWF0Y2hUeXBlIGxldmVsICIgKyBtYXRjaFR5cGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDMUJ5dGVzKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgU3RyaW5nIHNJU08gPQorICAgICAgICAgICAgIlRoaXMgaXMgYSBzbWFsbCBzYW1wbGUgb2Ygc29tZSBFbmdsaXNoIHRleHQuIEp1c3QgZW5vdWdoIHRvIGJlIHN1cmUgdGhhdCBpdCBkZXRlY3RzIGNvcnJlY3RseS4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHNXaW5kb3dzID0KKyAgICAgICAgICAgICJUaGlzIGlzIGFub3RoZXIgc21hbGwgc2FtcGxlIG9mIHNvbWUgRW5nbGlzaCB0ZXh0LiBKdXN0IGVub3VnaCB0byBiZSBzdXJlIHRoYXQgaXQgZGV0ZWN0cyBjb3JyZWN0bHkuIEl0IGFsc28gaW5jbHVkZXMgc29tZSBcdTIwMUNDMVx1MjAxRCBieXRlcy4iOworCisgICAgICAgIGJ5dGVbXSBiSVNPICAgICA9IHNJU08uZ2V0Qnl0ZXMoIklTTy04ODU5LTEiKTsKKyAgICAgICAgYnl0ZVtdIGJXaW5kb3dzID0gc1dpbmRvd3MuZ2V0Qnl0ZXMoIndpbmRvd3MtMTI1MiIpOworICAgICAgICAKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiV2luZG93cyk7CisgICAgICAgIG0gPSBkZXQuZGV0ZWN0KCk7CisgICAgICAgIAorICAgICAgICBpZiAobS5nZXROYW1lKCkgIT0gIndpbmRvd3MtMTI1MiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXh0IHdpdGggQzEgYnl0ZXMgbm90IGNvcnJlY3RseSBkZXRlY3RlZCBhcyB3aW5kb3dzLTEyNTIuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJJU08pOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG0uZ2V0TmFtZSgpICE9ICJJU08tODg1OS0xIikgeworICAgICAgICAgICAgZXJybG4oIlRleHQgd2l0aG91dCBDMSBieXRlcyBub3QgY29ycmVjdGx5IGRldGVjdGVkIGFzIElTTy04ODU5LTEuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERldGVjdGlvbigpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyAgT3BlbiBhbmQgcmVhZCB0aGUgdGVzdCBkYXRhIGZpbGUuCisgICAgICAgIC8vCisgICAgICAgIC8vSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IFRlc3RDaGFyc2V0RGV0ZWN0b3IuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIpOworICAgICAgICAgICAgaWYgKGlzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IG9wZW4gdGVzdCBkYXRhIGZpbGUgQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9pc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAKKworICAgICAgICAgICAgLy8gU2V0IHVwIGFuIHhtbCBwYXJzZXIuCisgICAgICAgICAgICBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5IGZhY3RvcnkgPSBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZhY3Rvcnkuc2V0SWdub3JpbmdDb21tZW50cyh0cnVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyIGJ1aWxkZXIgPSBmYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBQYXJzZSB0aGUgeG1sIGNvbnRlbnQgZnJvbSB0aGUgdGVzdCBjYXNlIGZpbGUuCisgICAgICAgICAgICBEb2N1bWVudCBkb2MgPSBidWlsZGVyLnBhcnNlKGlzLCBudWxsKTsKKyAgICAgICAgICAgIEVsZW1lbnQgcm9vdCA9IGRvYy5nZXREb2N1bWVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTm9kZUxpc3QgdGVzdENhc2VzID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGVzdC1jYXNlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgZWFjaCB0ZXN0IGNhc2UKKyAgICAgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgdGVzdENhc2VzLmdldExlbmd0aCgpOyBuICs9IDEpIHsKKyAgICAgICAgICAgICAgICBOb2RlIHRlc3RDYXNlID0gdGVzdENhc2VzLml0ZW0obik7CisgICAgICAgICAgICAgICAgTmFtZWROb2RlTWFwIGF0dHJzID0gdGVzdENhc2UuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgICAgIE5vZGVMaXN0IHRlc3REYXRhICA9IHRlc3RDYXNlLmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdFRleHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gYXR0cnMuZ2V0TmFtZWRJdGVtKCJpZCIpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBlbmNvZGluZ3MgPSBhdHRycy5nZXROYW1lZEl0ZW0oImVuY29kaW5ncyIpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIENvbGxlY3QgdGhlIHRlc3QgY2FzZSB0ZXh0LgorICAgICAgICAgICAgICAgIGZvciAoaW50IHQgPSAwOyB0IDwgdGVzdERhdGEuZ2V0TGVuZ3RoKCk7IHQgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBOb2RlIHRleHROb2RlID0gdGVzdERhdGEuaXRlbSh0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHRlc3RUZXh0LmFwcGVuZCh0ZXh0Tm9kZS5nZXROb2RlVmFsdWUoKSk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0ZXN0IHRleHQgd2l0aCBlYWNoIGVuY29kaW5nIC8gbGFuZ3VhZ2UgcGFpci4KKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9IHRlc3RUZXh0LnRvU3RyaW5nKCk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIFN0cmluZ1tdIGVuY29kaW5nTGlzdCA9IGVuY29kaW5ncy5zcGxpdCgiICIpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgICAgICBTdHJpbmdbXSBlbmNvZGluZ0xpc3QgPSBVdGlsaXR5LnNwbGl0KGVuY29kaW5ncywgJyAnKTsKKy8vI2VuZGlmCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgZSA9IDA7IGUgPCBlbmNvZGluZ0xpc3QubGVuZ3RoOyBlICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tFbmNvZGluZyh0ZXN0U3RyaW5nLCBlbmNvZGluZ0xpc3RbZV0sIGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJleGNlcHRpb24gd2hpbGUgcHJvY2Vzc2luZyB0ZXN0IGNhc2VzOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGMyZWUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNsZHI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIGNvbGxhdGlvbiBhbmQgc2VhcmNoIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJUZXN0Q0xEUlZzSUNVIiwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkFsbCBDbGRyIFZzIElDVSBUZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDbGRyIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2M2MTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdENMRFJWc0lDVS5qYXZhCkBAIC0wLDAgKzEsNTY1IEBACisvLyMjaGVhZGVyCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2xkcjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci51dGlsLkxhbmd1YWdlVGFnUGFyc2VyOworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci51dGlsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXI7CitpbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyRmFjdG9yeTsKKworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci50ZXN0LkNMRFJUZXN0OworLy9pbXBvcnQgb3JnLnVuaWNvZGUuY2xkci50b29sLkdlbmVyYXRlQ2xkclRlc3RzOworaW1wb3J0IG9yZy54bWwuc2F4LkF0dHJpYnV0ZXM7CitpbXBvcnQgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uOworaW1wb3J0IG9yZy54bWwuc2F4LmhlbHBlcnMuRGVmYXVsdEhhbmRsZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuQmFnRm9ybWF0dGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLlVPcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIFRoaXMgaXMgYSBmaWxlIHRoYXQgcnVucyB0aGUgQ0xEUiB0ZXN0cyBmb3IgSUNVNEosIHRvIHZlcmlmeSB0aGF0IElDVTRKIGltcGxlbWVudHMgdGhlbQorICogY29ycmVjdGx5LgorICogV0FSTklORzogCisgKiAxLiBmb3IgdGhpcyB0byB3b3JrIHJpZ2h0LCB5b3UgaGF2ZSB0byBoYXZlIGRvd25sb2FkZWQgdGhlIENMRFIgZGF0YSwgYW5kCisgKiB0aGVuIHNldCB0aGUgQ0xEUiBkaXJlY3RvcnkgY29ycmVjdGx5LCB1c2luZworICogLURDTERSX0RJUkVDVE9SWT08dG9wIGxldmVsIG9mIGNsZHI+CisgKiAyLiBZb3UgcHJvYmFibHkgYWxzbyBuZWVkIHRvIGluY3JlYXNlIG1lbW9yeSwgZWcgd2l0aCAtWG14NTEybQorICogMy4gRm9yIHNwZWVkLCB5b3Ugc2hvdWxkIGFsc28gdXNlIC1EQ0xEUl9EVERfQ0FDSEU9QzpcY2xkcmNhY2hlXCwgd2hlcmUKKyAqIEM6XGNsZHJjYWNoZVwgaXMgYSB0ZW1wIGRpcmVjdG9yeSB0byBrZWVwIHRoZSBwcm9ncmFtIGZyb20gaGl0dGluZyB0aGUgbmV0IGZvcgorICogZWFjaCBmaWxlIGFjY2Vzcy4KKyAqIDQuIFlvdSBtYXkgdXNlIG90aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBuYXJyb3cgd2hhdCB5b3UgdGVzdC4gRWcKKyAqIC1EWE1MX01BVENIPSIuKiIgLURURVNUX01BVENIPSJ6b25lLioiIC1EWk9ORV9NQVRDSD0iKD8hQW1lcmljYS9BcmdlbnRpbmEpLioiIAorICogICBhLiAtRFhNTF9NQVRDSD0iZGUuKiIgKG9yIHdoYXRldmVyIHJlZ2V4IHlvdSB3YW50KSB0byBqdXN0CisgKiAgIHRlc3QgY2VydGFpbiBsb2NhbGVzLgorICogICBiLiAtRFRFU1RfTUFUQ0g9InpvbmUuKiIgKG9yIHdoYXRldmVyIHJlZ2V4IHlvdSB3YW50KSB0byBqdXN0IHRlc3QgY29sbGF0aW9uLCBudW1iZXJzLCBldGMuCisgKiAgIGMuIC1EWk9ORV9NQVRDSD0iLipNb3Njb3cuKiIgKHRvIG9ubHkgdGVzdCBjZXJ0YWluIHpvbmVzKQorICogQGF1dGhvciBtZWRhdmlzCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Q0xEUlZzSUNVIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvL1VMb2NhbGUgdUxvY2FsZSA9IFVMb2NhbGUuRU5HTElTSDsKKyAgICAvL0xvY2FsZSBvTG9jYWxlID0gTG9jYWxlLkVOR0xJU0g7IC8vIFRPRE8gRHJvcCBvbmNlIElDVTRKIGhhcyBVTG9jYWxlIGV2ZXJ5d2hlcmUKKyAgICAvL3N0YXRpYyBQcmludFdyaXRlciBsb2c7CisgICAgU0FYUGFyc2VyIFNBWDsKKyAgICBzdGF0aWMgTWF0Y2hlciBMT0NBTEVfTUFUQ0gsIFRFU1RfTUFUQ0gsIFpPTkVfTUFUQ0g7CisgICAgc3RhdGljIFN0cmluZyBDTERSX0RJUkVDVE9SWTsKKyAgICBzdGF0aWMgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgTE9DQUxFX01BVENIID0gZ2V0RW52aXJvbm1lbnRSZWdleCgiWE1MX01BVENIIiwgIi4qIik7CisgICAgICAgIFRFU1RfTUFUQ0ggPSBnZXRFbnZpcm9ubWVudFJlZ2V4KCJURVNUX01BVENIIiwgIi4qIik7CisgICAgICAgIFpPTkVfTUFUQ0ggPSBnZXRFbnZpcm9ubWVudFJlZ2V4KCJaT05FX01BVENIIiwgIi4qIik7IC8vIGV4YW1wbGUKKworICAgICAgICAvLyBXQVJOSU5HOiBUSElTIElTIFRFTVBPUkFSWSBVTlRJTCBJIEdFVCBUSEUgRklMRVMgU1RSQUlHSFRFTkVEIE9VVAorICAgICAgICBDTERSX0RJUkVDVE9SWSA9IGdldEVudmlyb25tZW50U3RyaW5nKCJDTERSX0RJUkVDVE9SWSIsICJDOlxcVW5pY29kZS1DVlMyXFxjbGRyXFwiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgfQorICAgIAorICAgIC8qKgorCSAqIAorCSAqLworCXByaXZhdGUgc3RhdGljIE1hdGNoZXIgZ2V0RW52aXJvbm1lbnRSZWdleChTdHJpbmcga2V5LCBTdHJpbmcgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHJldHVybiBQYXR0ZXJuLmNvbXBpbGUoZ2V0RW52aXJvbm1lbnRTdHJpbmcoa2V5LCBkZWZhdWx0VmFsdWUpKS5tYXRjaGVyKCIiKTsKKwl9CisKKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RW52aXJvbm1lbnRTdHJpbmcoU3RyaW5nIGtleSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgeworCQlTdHJpbmcgdGVtcCA9IFN5c3RlbS5nZXRQcm9wZXJ0eShrZXkpOworICAgICAgICBpZiAodGVtcCA9PSBudWxsKSB0ZW1wID0gZGVmYXVsdFZhbHVlOworICAgICAgICBlbHNlIFN5c3RlbS5vdXQucHJpbnQoIi1EIiArIGtleSArICI9XCIiICsgdGVtcCArICJcIiAiKTsKKwkJcmV0dXJuIHRlbXA7CisJfQorCisJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAJbmV3IFRlc3RDTERSVnNJQ1UoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgIFNldCBhbGxMb2NhbGVzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RmlsZXMoKSB0aHJvd3MgU0FYRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgIAkvLyBvbmx5IGdldCBJQ1UncyBsb2NhbGVzCisgICAgICAgIFNldCBzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgYWRkTG9jYWxlcyhOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSwgcyk7CisgICAgICAgIGFkZExvY2FsZXMoRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpLCBzKTsKKyAgICAgICAgYWRkTG9jYWxlcyhDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpLCBzKTsKKyAgICAgICAgCisgICAgICAgIC8vIGZpbHRlciwgdG8gbWFrZSB0cmFja2luZyBkb3duIGJ1Z3MgZWFzaWVyCisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gcy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIAlTdHJpbmcgbG9jYWxlID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgIAlpZiAoIUxPQ0FMRV9NQVRDSC5yZXNldChsb2NhbGUpLm1hdGNoZXMoKSkgY29udGludWU7CisgICAgICAgICAgICBfdGVzdChsb2NhbGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZExvY2FsZXMoVUxvY2FsZVtdIGxpc3QsIENvbGxlY3Rpb24gcykgeworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAJCWFsbExvY2FsZXMuYWRkKGxpc3RbaV0udG9TdHJpbmcoKSk7CisgICAgCQlzLmFkZChsaXN0W2ldLmdldExhbmd1YWdlKCkpOworICAgIAl9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoVUxvY2FsZSB1TG9jYWxlKSB7CisgICAgCVN0cmluZyByZXN1bHQgPSB1TG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgCVN0cmluZyBzY3JpcHQgPSB1TG9jYWxlLmdldFNjcmlwdCgpOworICAgIAlpZiAoc2NyaXB0Lmxlbmd0aCgpICE9IDApIHJlc3VsdCArPSAiXyIgKyBzY3JpcHQ7CisgICAgCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgX3Rlc3QoU3RyaW5nIGxvY2FsZU5hbWUpIHRocm93cyBTQVhFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgLy91TG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlTmFtZSk7CisgICAgICAgIC8vb0xvY2FsZSA9IHVMb2NhbGUudG9Mb2NhbGUoKTsKKworCQkJRmlsZSBmID0gbmV3IEZpbGUoQ0xEUl9ESVJFQ1RPUlkgKyAiY29tbW9uXFx0ZXN0XFwiKyBsb2NhbGVOYW1lICsgIi54bWwiKTsKKwkJCWxvZ2xuKCJUZXN0aW5nICIgKyBmLmdldENhbm9uaWNhbFBhdGgoKSk7CisJCQlTQVgucGFyc2UoZiwgREVGQVVMVF9IQU5ETEVSKTsKKyAgICB9CisKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9Vbmljb2RlID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFueS1oZXgiKTsKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBzaG93U3RyaW5nKFN0cmluZyBpbikgeworICAgICAgICByZXR1cm4gIlx1MDBBQiIgKyBpbiArICJcdTAwQkIgKCIgKyB0b1VuaWNvZGUudHJhbnNsaXRlcmF0ZShpbikgKyAiKSI7CisgICAgfQorICAgIC8vID09PT09PT09PT09PSBTQVggSGFuZGxlciBJbmZyYXN0cnVjdHVyZSA9PT09PT09PT09PT0KKworICAgIGFic3RyYWN0IHB1YmxpYyBjbGFzcyBIYW5kbGVyIHsKKyAgICAgICAgTWFwIHNldHRpbmdzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIExpc3QgY3VycmVudExvY2FsZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGludCBmYWlsdXJlcyA9IDA7CisKKyAgICAgICAgdm9pZCBzZXROYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIHZvaWQgc2V0KFN0cmluZyBhdHRyaWJ1dGVOYW1lLCBTdHJpbmcgYXR0cmlidXRlVmFsdWUpIHsKKyAgICAgICAgICAgIC8vaWYgKERFQlVHKSBsb2dsbihhdHRyaWJ1dGVOYW1lICsgIiA9PiAiICsgYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgc2V0dGluZ3MucHV0KGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIGNoZWNrUmVzdWx0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKCJ0cnVlIi5lcXVhbHMoc2V0dGluZ3MuZ2V0KCJkcmFmdCIpKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsgLy8gc2tpcCBkcmFmdAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIAlpbnQgeCA9IDE7IC8vIGZvciBkZWJ1ZyBzdG9wcGluZworICAgICAgICAgICAgfQorICAgICAgICAJVUxvY2FsZSB1bCA9IG5ldyBVTG9jYWxlKCJ4eCIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRMb2NhbGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHVsID0gKFVMb2NhbGUpY3VycmVudExvY2FsZXMuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICAvL2xvZ2xuU0FYKCIgIENoZWNraW5nICIgKyB1bCArICIoIiArIHVsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiKSIgKyAiIGZvciAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlc3VsdCh1bCwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbHVyZXMgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlx0VG90YWwgRmFpbHVyZXM6ICIgKyBmYWlsdXJlcyArICJcdCIgKyB1bCArICIoIiArIHVsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlTdHJpbmdXcml0ZXIgc3cgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgICAgICAJUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKHB3KTsKKyAgICAgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246IExvY2FsZTogIiArIHVsICsgIixcdFZhbHVlOiA8IiArIHZhbHVlICsgIj5cclxuIiArIHN3LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGxvZ2xuU0FYKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IG1lc3NhZ2UgKyAiXHRbIiArIG5hbWU7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0dGluZ3Mua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IChTdHJpbmcpIHNldHRpbmdzLmdldChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgICAgICAgICB0ZW1wICs9ICIgIiArIGF0dHJpYnV0ZU5hbWUgKyAiPTwiICsgYXR0cmlidXRlVmFsdWUgKyAiPiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbih0ZW1wICsgIl0iKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbG9va3VwVmFsdWUoT2JqZWN0IHgsIE9iamVjdFtdIGxpc3QpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh4LmVxdWFscyhsaXN0W2ldKSkgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsblNBWCgiVW5rbm93biBTdHJpbmc6ICIgKyB4KTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBhYnN0cmFjdCB2b2lkIGhhbmRsZVJlc3VsdChVTG9jYWxlIGN1cnJlbnRMb2NhbGUsIFN0cmluZyB2YWx1ZSkgdGhyb3dzIEV4Y2VwdGlvbjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRBdHRyaWJ1dGVzKEF0dHJpYnV0ZXMgYXR0cmlidXRlcykgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZUxpc3QgPSBhdHRyaWJ1dGVzLmdldFZhbHVlKCJsb2NhbGVzIik7CisgICAgICAgICAgICBTdHJpbmdbXSBjdXJyZW50TG9jYWxlU3RyaW5nID0gbmV3IFN0cmluZ1s1MF07CisgICAgICAgICAgICBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuc3BsaXQobG9jYWxlTGlzdCwgJyAnLCBjdXJyZW50TG9jYWxlU3RyaW5nKTsKKyAgICAgICAgICAgIGN1cnJlbnRMb2NhbGVzLmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRMb2NhbGVTdHJpbmcubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudExvY2FsZVN0cmluZ1tpXS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYWxsTG9jYWxlcy5jb250YWlucygiIikpIHsKKyAgICAgICAgICAgICAgICAJbG9nbG4oIlNraXBwaW5nIGxvY2FsZSwgbm90IGluIElDVTRKOiAiICsgY3VycmVudExvY2FsZVN0cmluZ1tpXSk7CisgICAgICAgICAgICAgICAgCWNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50TG9jYWxlcy5hZGQobmV3IFVMb2NhbGUoY3VycmVudExvY2FsZVN0cmluZ1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiU2V0dGluZyBsb2NhbGVzOiAiICsgY3VycmVudExvY2FsZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEhhbmRsZXIgZ2V0SGFuZGxlcihTdHJpbmcgbmFtZSwgQXR0cmlidXRlcyBhdHRyaWJ1dGVzKSB7CisgICAgICAgIGlmIChERUJVRykgbG9nbG4oIkNyZWF0aW5nIEhhbmRsZXI6ICIgKyBuYW1lKTsKKyAgICAgICAgSGFuZGxlciByZXN1bHQgPSAoSGFuZGxlcikgUmVnaXN0ZXJlZEhhbmRsZXJzLmdldChuYW1lKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSBsb2dsbigiVW5leHBlY3RlZCB0ZXN0IHR5cGU6ICIgKyBuYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEhhbmRsZXIoU3RyaW5nIG5hbWUsIEhhbmRsZXIgaGFuZGxlcikgeworICAgICAgICBpZiAoIVRFU1RfTUFUQ0gucmVzZXQobmFtZSkubWF0Y2hlcygpKSBoYW5kbGVyID0gbmV3IE51bGxIYW5kbGVyKCk7CisgICAgICAgIGhhbmRsZXIuc2V0TmFtZShuYW1lKTsKKyAgICAgICAgUmVnaXN0ZXJlZEhhbmRsZXJzLnB1dChuYW1lLCBoYW5kbGVyKTsKKyAgICB9CisgICAgTWFwIFJlZ2lzdGVyZWRIYW5kbGVycyA9IG5ldyBIYXNoTWFwKCk7CisgICAgCisgICAgY2xhc3MgTnVsbEhhbmRsZXIgZXh0ZW5kcyBIYW5kbGVyIHsKKwkJdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBjdXJyZW50TG9jYWxlLCBTdHJpbmcgdmFsdWUpIHRocm93cyBFeGNlcHRpb24ge30gICAgICAgIAorICAgIH0KKworICAgIC8vID09PT09PT09PT09PSBTdGF0aWNzIGZvciBEYXRlL051bWJlciBTdXBwb3J0ID09PT09PT09PT09PQorCisgICAgc3RhdGljIFRpbWVab25lIHV0YyA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICBzdGF0aWMgRGF0ZUZvcm1hdCBpc28gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTS1kZCdUJ0hIOm1tOnNzJ1onIik7CisgICAgeworICAgICAgICBpc28uc2V0VGltZVpvbmUodXRjKTsKKyAgICB9CisgICAgc3RhdGljIGludFtdIERhdGVGb3JtYXRWYWx1ZXMgPSB7LTEsIERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuRlVMTH07CisgICAgc3RhdGljIFN0cmluZ1tdIERhdGVGb3JtYXROYW1lcyA9IHsibm9uZSIsICJzaG9ydCIsICJtZWRpdW0iLCAibG9uZyIsICJmdWxsIn07CisKKyAgICBzdGF0aWMgU3RyaW5nW10gTnVtYmVyTmFtZXMgPSB7InN0YW5kYXJkIiwgImludGVnZXIiLCAiZGVjaW1hbCIsICJwZXJjZW50IiwgInNjaWVudGlmaWMiLCAiR0JQIn07CisKKworICAgIC8vID09PT09PT09PT09PSBIYW5kbGVyIGZvciBDb2xsYXRpb24gPT09PT09PT09PT09IAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGNvbnRyb2xzQW5kU3BhY2UgPSBuZXcgVW5pY29kZVNldCgiWzpjYzpdIik7CisgICAgCisgICAgc3RhdGljIFN0cmluZyByZW1vdmUoU3RyaW5nIGluLCBVbmljb2RlU2V0IHRvUmVtb3ZlKSB7CisgICAgCWludCBjcDsKKyAgICAJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbi5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgCQljcCA9IFVURjE2LmNoYXJBdChpbiwgaSk7CisgICAgCQlpZiAoIXRvUmVtb3ZlLmNvbnRhaW5zKGNwKSkgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworICAgIAl9CisgICAgCXJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICB7CisJCWFkZEhhbmRsZXIoImNvbGxhdGlvbiIsIG5ldyBIYW5kbGVyKCkgeworCQkJcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgY3VycmVudExvY2FsZSwgU3RyaW5nIHZhbHVlKSB7CisJCQkJQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoY3VycmVudExvY2FsZSk7CisJCQkJU3RyaW5nIGxhc3RMaW5lID0gIiI7CisJCQkJaW50IGNvdW50ID0gMDsKKwkJCQlmb3IgKGludCBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGgoKTspIHsKKwkJCQkJaW50IG5leHRQb3MgPSB2YWx1ZS5pbmRleE9mKCdcbicsIHBvcyk7CisJCQkJCWlmIChuZXh0UG9zIDwgMCkKKwkJCQkJCW5leHRQb3MgPSB2YWx1ZS5sZW5ndGgoKTsKKwkJCQkJU3RyaW5nIGxpbmUgPSB2YWx1ZS5zdWJzdHJpbmcocG9zLCBuZXh0UG9zKTsKKwkJCQkJbGluZSA9IHJlbW92ZShsaW5lLCBjb250cm9sc0FuZFNwYWNlKTsgLy8gSEFDSyBmb3IgU0FYCisJCQkJCWlmIChsaW5lLnRyaW0oKS5sZW5ndGgoKSAhPSAwKSB7IC8vIEhBQ0sgZm9yIFNBWAorCQkJCQkJaW50IGNvbXAgPSBjb2wuY29tcGFyZShsYXN0TGluZSwgbGluZSk7CisJCQkJCQlpZiAoY29tcCA+IDApIHsKKwkJCQkJCQlmYWlsdXJlcysrOworCQkJCQkJCWVycmxuKCJcdExpbmUgIiArIChjb3VudCArIDEpICsgIlx0RmFpbHVyZTogIgorCQkJCQkJCQkJKyBzaG93U3RyaW5nKGxhc3RMaW5lKSArICIgc2hvdWxkIGJlIGxlcSAiCisJCQkJCQkJCQkrIHNob3dTdHJpbmcobGluZSkpOworCQkJCQkJfSBlbHNlIGlmIChERUJVRykgeworCQkJCQkJCWxvZ2xuKCJPSzogIiArIGxpbmUpOworCQkJCQkJfQorCQkJCQkJbGFzdExpbmUgPSBsaW5lOworCQkJCQl9CisJCQkJCXBvcyA9IG5leHRQb3MgKyAxOworCQkJCQljb3VudCsrOworCQkJCX0KKwkJCX0KKwkJfSk7CisgICAgICAgIAorICAgICAgICAvLyA9PT09PT09PT09PT0gSGFuZGxlciBmb3IgTnVtYmVycyA9PT09PT09PT09PT0gCisJCWFkZEhhbmRsZXIoIm51bWJlciIsIG5ldyBIYW5kbGVyKCkgeworCQkJcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbnVsbDsKKyAgICAgICAgICAgICAgICBkb3VibGUgdiA9IERvdWJsZS5OYU47CisgICAgICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHNldHRpbmdzLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IChTdHJpbmcpIHNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJpbnB1dCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gRG91YmxlLnBhcnNlRG91YmxlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIG11c3QgYmUgZWl0aGVyIG51bWJlclR5cGUgYXQgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBsb29rdXBWYWx1ZShhdHRyaWJ1dGVWYWx1ZSwgTnVtYmVyTmFtZXMpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGxvZ2xuKCJHZXR0aW5nIG51bWJlciBmb3JtYXQgZm9yICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOiBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMzogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICAgICAgCW5mLnNldEN1cnJlbmN5KEN1cnJlbmN5LmdldEluc3RhbmNlKGF0dHJpYnV0ZVZhbHVlKSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gbmYuZm9ybWF0KHYpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRyaW0oKTsgLy8gSEFDSyBiZWNhdXNlIG9mIFNBWAorICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOdW1iZXI6IExvY2FsZTogIiArIGxvY2FsZQorICAgICAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0VHlwZTogIiArIGF0dHJpYnV0ZVZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgXHREcmFmdDogIiArIHNldHRpbmdzLmdldCgiZHJhZnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Q0xEUjogPCIgKyByZXN1bHQgKyAiPiwgSUNVOiA8IiArIHRlbXAgKyAiPiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vID09PT09PT09PT09PSBIYW5kbGVyIGZvciBEYXRlcyA9PT09PT09PT09PT0KKyAgICAgICAgYWRkSGFuZGxlcigiZGF0ZSIsIG5ldyBIYW5kbGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICAgICAgICAgIGludCBkYXRlRm9ybWF0ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgdGltZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0dGluZ3Mua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlTmFtZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZhbHVlID0gKFN0cmluZykgc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGF0dHJpYnV0ZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImlucHV0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBpc28ucGFyc2UoYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBlaXRoZXIgZGF0ZVR5cGUgb3IgdGltZVR5cGUgYXQgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBsb29rdXBWYWx1ZShhdHRyaWJ1dGVWYWx1ZSwgRGF0ZUZvcm1hdE5hbWVzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJkYXRlVHlwZSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGluZGV4OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gaW5kZXg7CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkdCA9IGdldERhdGVGb3JtYXQobG9jYWxlLCBkYXRlRm9ybWF0LCB0aW1lRm9ybWF0KTsKKyAgICAgICAgICAgICAgICBkdC5zZXRUaW1lWm9uZSh1dGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gZHQuZm9ybWF0KGRhdGUpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJpbSgpOyAvLyBIQUNLIGJlY2F1c2Ugb2YgU0FYCisgICAgICAgICAgICAgICAgaWYgKCF0ZW1wLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlVGltZTogTG9jYWxlOiAiICsgbG9jYWxlIAorICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHREYXRlOiAiICsgRGF0ZUZvcm1hdE5hbWVzW2RhdGVGb3JtYXRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBcdFRpbWU6ICIgKyBEYXRlRm9ybWF0TmFtZXNbdGltZUZvcm1hdF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIFx0RHJhZnQ6ICIgKyBzZXR0aW5ncy5nZXQoImRyYWZ0IikKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Q0xEUjogPCIgKyByZXN1bHQgKyAiPiwgSUNVOiA8IiArIHRlbXAgKyAiPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworCQkJLyoqCisJCQkgKiAKKwkJCSAqLworCQkJcHJpdmF0ZSBTaW1wbGVEYXRlRm9ybWF0IGdldERhdGVGb3JtYXQoVUxvY2FsZSBsb2NhbGUsIGludCBkYXRlRm9ybWF0LCBpbnQgdGltZUZvcm1hdCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgbG9nbG4oIkdldHRpbmcgZGF0ZS90aW1lIGZvcm1hdCBmb3IgIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHICYmICJhcl9FRyIuZXF1YWxzKGxvY2FsZS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnIGhlcmUiKTsKKyAgICAgICAgICAgICAgICB9CisJCQkJRGF0ZUZvcm1hdCBkdDsKKwkJCQlpZiAoZGF0ZUZvcm1hdCA9PSAwKSB7CisJCQkJCWR0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdFZhbHVlc1t0aW1lRm9ybWF0XSwgbG9jYWxlKTsKKwkJCQkJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KCJnZXRUaW1lSW5zdGFuY2UiKTsKKwkJCQl9IGVsc2UgaWYgKHRpbWVGb3JtYXQgPT0gMCkgeworCQkJCQlkdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXRWYWx1ZXNbZGF0ZUZvcm1hdF0sIGxvY2FsZSk7CisJCQkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludCgiZ2V0RGF0ZUluc3RhbmNlIik7CisJCQkJfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAJZHQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdFZhbHVlc1tkYXRlRm9ybWF0XSwgRGF0ZUZvcm1hdFZhbHVlc1t0aW1lRm9ybWF0XSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KCJnZXREYXRlVGltZUluc3RhbmNlIik7CisJCQkJfQorCQkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcdGlucHV0Olx0IiArIGRhdGVGb3JtYXQgKyAiLCAiICsgdGltZUZvcm1hdCArICIgPT4gIiArICgoU2ltcGxlRGF0ZUZvcm1hdClkdCkudG9QYXR0ZXJuKCkpOworCQkJCXJldHVybiAoU2ltcGxlRGF0ZUZvcm1hdClkdDsKKwkJCX0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gPT09PT09PT09PT09IEhhbmRsZXIgZm9yIFpvbmVzID09PT09PT09PT09PQorICAgICAgICBhZGRIYW5kbGVyKCJ6b25lRmllbGRzIiwgbmV3IEhhbmRsZXIoKSB7CisgICAgICAgICAgICBTdHJpbmcgZGF0ZSA9ICIiOworICAgICAgICAgICAgU3RyaW5nIHpvbmUgPSAiIjsKKyAgICAgICAgICAgIFN0cmluZyBwYXJzZSA9ICIiOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzZXR0aW5ncy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlVmFsdWUgPSAoU3RyaW5nKSBzZXR0aW5ncy5nZXQoYXR0cmlidXRlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiZGF0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRlID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImZpZWxkIikpIHsKKyAgICAgICAgICAgICAgICAgICAgCXBhdHRlcm4gPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiem9uZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIAl6b25lID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoInBhcnNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgCXBhcnNlID0gYXR0cmlidXRlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFaT05FX01BVENILnJlc2V0KHpvbmUpLm1hdGNoZXMoKSkgcmV0dXJuOworICAgICAgICAgICAgICAgIERhdGUgZGF0ZVZhbHVlID0gaXNvLnBhcnNlKGRhdGUpOworICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZmllbGQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIGZpZWxkLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKHpvbmUpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGZpZWxkLmZvcm1hdChkYXRlVmFsdWUpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAvLyBTS0lQIFBBUlNFIEZPUiBOT1cKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJpbSgpOyAvLyBIQUNLIGJlY2F1c2Ugb2YgU0FYCisgICAgICAgICAgICAgICAgaWYgKCF0ZW1wLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBmaWVsZC5mb3JtYXQoZGF0ZVZhbHVlKS50cmltKCk7IC8vIGNhbGwgYWdhaW4gZm9yIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICBlcnJsbigiWm9uZSBGb3JtYXQ6IExvY2FsZTogIiArIGxvY2FsZSAKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Wm9uZTogIiArIHpvbmUKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0RGF0ZTogIiArIGRhdGUKKwkJCQkJCQkrICIsIFx0RmllbGQ6ICIgKyBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBcdERyYWZ0OiAiICsgc2V0dGluZ3MuZ2V0KCJkcmFmdCIpCisgICAgICAgICAgICAgICAgICAgIAkJKyAiLCBcdENMRFI6IDwiICsgcmVzdWx0CisJCQkJCQkJKyAiPiwgXHRJQ1U6IDwiICsgdGVtcCArICI+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT0gR29ycCBmb3IgU0FYID09PT09PT09PT09PQorCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU0FYUGFyc2VyRmFjdG9yeSBmYWN0b3J5ID0gU0FYUGFyc2VyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgZmFjdG9yeS5zZXRWYWxpZGF0aW5nKHRydWUpOworICAgICAgICAgICAgU0FYID0gZmFjdG9yeS5uZXdTQVhQYXJzZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IHN0YXJ0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBEZWZhdWx0SGFuZGxlciBERUZBVUxUX0hBTkRMRVIgPSBuZXcgRGVmYXVsdEhhbmRsZXIoKSB7CisgICAgICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciBsYXN0Q2hhcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4ganVzdFBvcHBlZCA9IGZhbHNlOworICAgICAgICBIYW5kbGVyIGhhbmRsZXI7CisKKyAgICAgICAgcHVibGljIHZvaWQgc3RhcnRFbGVtZW50KAorICAgICAgICAgICAgU3RyaW5nIHVyaSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbE5hbWUsCisgICAgICAgICAgICBTdHJpbmcgcU5hbWUsCisgICAgICAgICAgICBBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAvL2RhdGEucHV0KG5ldyBDb250ZXh0U3RhY2soY29udGV4dFN0YWNrKSwgbGFzdENoYXJzKTsKKyAgICAgICAgICAgICAgICAvL2xhc3RDaGFycyA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChxTmFtZS5lcXVhbHMoImNsZHJUZXN0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChxTmFtZS5lcXVhbHMoInJlc3VsdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMuZ2V0TGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIuc2V0KGF0dHJpYnV0ZXMuZ2V0UU5hbWUoaSksIGF0dHJpYnV0ZXMuZ2V0VmFsdWUoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGdldEhhbmRsZXIocU5hbWUsIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyLnNldCgibG9jYWxlIiwgdUxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL2lmIChERUJVRykgbG9nbG4oInN0YXJ0RWxlbWVudDpcdCIgKyBjb250ZXh0U3RhY2spOworICAgICAgICAgICAgICAgICAgICBqdXN0UG9wcGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGVuZEVsZW1lbnQoU3RyaW5nIHVyaSwgU3RyaW5nIGxvY2FsTmFtZSwgU3RyaW5nIHFOYW1lKQorICAgICAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoREVCVUcpIGxvZ2xuKCJlbmRFbGVtZW50Olx0IiArIGNvbnRleHRTdGFjayk7CisgICAgICAgICAgICAgICAgICAgIGlmIChxTmFtZS5lcXVhbHMoInJlc3VsdCIpKSBoYW5kbGVyLmNoZWNrUmVzdWx0KGxhc3RDaGFycy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocU5hbWUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2dsbigiVW5leHBlY3RlZCBjb250ZW50cyBvZjogIiArIHFOYW1lICsgIiwgPCIgKyBsYXN0Q2hhcnMgKyAiPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxhc3RDaGFycy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIGp1c3RQb3BwZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gSGF2ZSB0byBoYWNrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBjaGFyYWN0ZXIgZGF0YSBtaWdodCBiZSBpbiBwaWVjZXMKKyAgICAgICAgcHVibGljIHZvaWQgY2hhcmFjdGVycyhjaGFyW10gY2gsIGludCBzdGFydCwgaW50IGxlbmd0aCkKKyAgICAgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IG5ldyBTdHJpbmcoY2gsc3RhcnQsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiY2hhcmFjdGVyczpcdCIgKyB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RDaGFycy5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBqdXN0UG9wcGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZm9yIGRlYnVnZ2luZworCisgICAgICAgIHB1YmxpYyB2b2lkIG5vdGF0aW9uRGVjbCAoU3RyaW5nIG5hbWUsIFN0cmluZyBwdWJsaWNJZCwgU3RyaW5nIHN5c3RlbUlkKQorICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGxvZ2xuKCJub3RhdGlvbkRlY2w6ICIgKyBuYW1lCisgICAgICAgICAgICArICIsICIgKyBwdWJsaWNJZAorICAgICAgICAgICAgKyAiLCAiICsgc3lzdGVtSWQKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gKFN0cmluZyB0YXJnZXQsIFN0cmluZyBkYXRhKQorICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGxvZ2xuKCJwcm9jZXNzaW5nSW5zdHJ1Y3Rpb246ICIgKyB0YXJnZXQgKyAiLCAiICsgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBza2lwcGVkRW50aXR5IChTdHJpbmcgbmFtZSkKKyAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigic2tpcHBlZEVudGl0eTogIiArIG5hbWUKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB1bnBhcnNlZEVudGl0eURlY2wgKFN0cmluZyBuYW1lLCBTdHJpbmcgcHVibGljSWQsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3lzdGVtSWQsIFN0cmluZyBub3RhdGlvbk5hbWUpCisgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgbG9nbG4oInVucGFyc2VkRW50aXR5RGVjbDogIiArIG5hbWUKKyAgICAgICAgICAgICsgIiwgIiArIHB1YmxpY0lkCisgICAgICAgICAgICArICIsICIgKyBzeXN0ZW1JZAorICAgICAgICAgICAgKyAiLCAiICsgbm90YXRpb25OYW1lCisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICB9OworfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyMGQxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uQVBJVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvYXBpY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQVBJVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkFQSVRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vbmV3IENvbGxhdGlvbkFQSVRlc3QoKS5UZXN0R2V0VGFpbG9yZWRTZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgY29sbGF0aW9uIGtleSByZWxhdGVkIEFQSXMuCisgICAgICogLSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yCisgICAgICogLSBDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkKKyAgICAgKiAtID09IGFuZCAhPSBvcGVyYXRvcnMKKyAgICAgKiAtIGNvbXBhcmlzb24gYmV0d2VlbiBjb2xsYXRpb24ga2V5cworICAgICAqIC0gY3JlYXRpbmcgY29sbGF0aW9uIGtleSB3aXRoIGEgYnl0ZSBhcnJheSBhbmQgdmljZSB2ZXJzYQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRpb25LZXkoKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdGlvbktleSBiZWdpbnMuLi4iKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxID0gIkFiY2RhIjsKKyAgICAgICAgU3RyaW5nIHRlc3QyID0gImFiY2RhIjsKKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3Rpbmcgd2VpcmQgYXJndW1lbnRzIik7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0azEgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KCIiKTsKKyAgICAgICAgLy8ga2V5IGdldHMgcmVzZXQgaGVyZQorICAgICAgICBieXRlW10gYnl0ZXMgPSBzb3J0azEudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgZG9Bc3NlcnQoYnl0ZXMubGVuZ3RoID09IDMgJiYgYnl0ZXNbMF0gPT0gMSAmJiBieXRlc1sxXSA9PSAxIAorICAgICAgICAgICAgICAgICAmJiBieXRlc1syXSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgIkVtcHR5IHN0cmluZyBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IGNvbGxhdGlvbiBrZXkiKTsKKyAgICAgICAgLy8gYm9ndXMga2V5IHJldHVybmVkIGhlcmUKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleShudWxsKTsKKyAgICAgICAgZG9Bc3NlcnQoc29ydGsxID09IG51bGwsICJFcnJvciBjb2RlIHNob3VsZCByZXR1cm4gYm9ndXMgY29sbGF0aW9uIGtleSIpOworCisgICAgICAgIGxvZ2xuKCJVc2UgdGVydGlhcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0azIgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAgICAgT2JqZWN0IHNvcnRrMyA9IHNvcnRrMjsKKyAgICAgICAgZG9Bc3NlcnQoKHNvcnRrMS5jb21wYXJlVG8oc29ydGsyKSkgPiAwIAorICAgICAgICAgICAgICAgICAmJiAoc29ydGsxLmNvbXBhcmVUbyhzb3J0azMpKSA+IDAsICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA+Pj4gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIENvbGxhdGlvbktleSBzb3J0a05ldzsKKyAgICAgICAgc29ydGtOZXcgPSBzb3J0azE7CisgICAgICAgIGRvQXNzZXJ0KCEoc29ydGsxLmVxdWFscyhzb3J0azIpKSAmJiAhKHNvcnRrMS5lcXVhbHMoc29ydGszKSksIAorICAgICAgICAgICAgICAgICAiVGhlIHNvcnQga2V5cyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgIGRvQXNzZXJ0KChzb3J0azEuaGFzaENvZGUoKSAhPSBzb3J0azIuaGFzaENvZGUoKSksICJzb3J0IGtleSBoYXNoQ29kZSgpIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmVxdWFscyhzb3J0a05ldykpLCAiVGhlIHNvcnQga2V5cyBhc3NpZ25tZW50IGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmhhc2hDb2RlKCkgPT0gc29ydGtOZXcuaGFzaENvZGUoKSksICJzb3J0IGtleSBoYXNoQ29kZSgpIGZhaWxlZCIpOworCisgICAgICAgIC8vIGNoZWNrIGludmFsaWFkIGNvbXBhcmlzb25zCisgICAgICAgIE9iamVjdCBmYWtlID0gImZha2UiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc29ydGsxLmNvbXBhcmVUbyhmYWtlKTsKKyAgICAgICAgICAgIGVycmxuKCJOb24tQ29sbGF0aW9uS2V5IGNvbXBhcmlzb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogTm9uLUNvbGxhdGlvbktleSBjb21wYXJpc29uIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzb3J0azEuZXF1YWxzKGZha2UpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9uLUNvbGxhdGlvbktleSBjb21wYXJpc29uIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBvcnQgZnJvbSBhcGljb2xsCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yLmdldEluc3RhbmNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKXsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgdGVydGlhcnkgc3RyZW5ndGgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5lZWQgdG8gdXNlIGlkZW50aWNhbCBzdHJlbmd0aAorICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKworICAgICAgICBieXRlIGtleTJjb21wYXRbXSA9IHsKKyAgICAgICAgICAgIC8vIDMuNiBrZXksIFVDQSA1LjAKKyAgICAgICAgICAgIChieXRlKSAweDI5LCAoYnl0ZSkgMHgyYiwgKGJ5dGUpIDB4MmQsCisgICAgICAgICAgICAoYnl0ZSkgMHgyZiwgKGJ5dGUpIDB4MjksIChieXRlKSAweDAxLAorICAgICAgICAgICAgKGJ5dGUpIDB4MDksIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwOSwKKyAgICAgICAgICAgIChieXRlKSAweDAxLCAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MDEsCisgICAgICAgICAgICAoYnl0ZSkgMHg5MiwgKGJ5dGUpIDB4OTMsIChieXRlKSAweDk0LAorICAgICAgICAgICAgKGJ5dGUpIDB4OTUsIChieXRlKSAweDkyLCAoYnl0ZSkgMHgwMAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAzLjQga2V5IFVDQSA0LjEKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MmEsIChieXRlKSAweDJjLCAKKyAgICAgICAgICAgIChieXRlKSAweDJlLCAoYnl0ZSkgMHgyOCwgKGJ5dGUpIDB4MDEsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MDksIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwOSwgCisgICAgICAgICAgICAoYnl0ZSkgMHgwMSwgKGJ5dGUpIDB4MjcsIChieXRlKSAweDAxLCAKKyAgICAgICAgICAgIChieXRlKSAweDkyLCAoYnl0ZSkgMHg5MywgKGJ5dGUpIDB4OTQsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTUsIChieXRlKSAweDkyLCAoYnl0ZSkgMHgwMCAgICAgICAgCisgICAgICAgICAgICAqLyAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gICAgICAgICAgMi42LjEga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgyNiwgMHgyOCwgMHgyQSwgMHgyQywgMHgyNiwgMHgwMSwgCisgICAgICAgICAgICAweDA5LCAweDAxLCAweDA5LCAweDAxLCAweDI1LCAweDAxLCAKKyAgICAgICAgICAgIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTIsIDB4MDAgCisgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAyLjIga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxRCwgMHgxRiwgMHgyMSwgMHgyMywgMHgxRCwgMHgwMSwKKyAgICAgICAgICAgIDB4MDksIDB4MDEsIDB4MDksIDB4MDEsIDB4MUMsIDB4MDEsCisgICAgICAgICAgICAweDkyLCAweDkzLCAweDk0LCAweDk1LCAweDkyLCAweDAwCisgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAyLjAga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRiwgMHgxOSwKKyAgICAgICAgICAgIDB4MDEsIDB4MDksIDB4MDEsIDB4MDksIDB4MDEsCisgICAgICAgICAgICAweDE4LCAweDAxLAorICAgICAgICAgICAgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwgMHg5MiwKKyAgICAgICAgICAgIDB4MDAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIDEuOC4xIGtleS4KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAweDE5LCAweDFCLCAweDFELCAweDFGLCAweDE5LAorICAgICAgICAgICAgMHgwMSwgMHgwQSwgMHgwMSwgMHgwQSwgMHgwMSwKKyAgICAgICAgICAgIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTIsCisgICAgICAgICAgICAweDAwIAorICAgICAgICAgICAgKi8KKyAgICAgICAgfTsKKworICAgICAgICBDb2xsYXRpb25LZXkga2V5MSA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDEpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5MiA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5MyA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgIAorICAgICAgICBkb0Fzc2VydChrZXkxLmNvbXBhcmVUbyhrZXkyKSA+IDAsIAorICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPiBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoa2V5Mi5jb21wYXJlVG8oa2V5MSkgPCAwLAorICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJjZGFcIiA8IFwiQWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydChrZXkyLmNvbXBhcmVUbyhrZXkzKSA9PSAwLAorICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJjZGFcIiA9PSAgXCJhYmNkYVwiIik7CisgICAgIAorICAgICAgICBkb0Fzc2VydChBcnJheXMuZXF1YWxzKGtleTIudG9CeXRlQXJyYXkoKSwga2V5MmNvbXBhdCksCisgICAgICAgICAgICAgICAgICJCaW5hcnkgZm9ybWF0IGZvciAnYWJjZGEnIHNvcnRrZXkgZGlmZmVyZW50IGZvciBpZGVudGljYWwgc3RyZW5ndGghIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJVc2Ugc2Vjb25kYXJ5IGNvbXBhcmlzaW9uIGxldmVsIHRlc3RpbmcgLi4uIik7CisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBrZXkxID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIGtleTIgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAgICAga2V5MyA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgIAorICAgICAgICBkb0Fzc2VydChrZXkxLmNvbXBhcmVUbyhrZXkyKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KGtleTIuY29tcGFyZVRvKGtleTMpID09IDAsCisgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJhYmNkYVwiID09ICBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgYnl0ZSB0ZW1wa2V5W10gPSBrZXkyLnRvQnl0ZUFycmF5KCk7CisgICAgICAgIGJ5dGUgc3Via2V5MmNvbXBhdFtdID0gbmV3IGJ5dGVbdGVtcGtleS5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGtleTJjb21wYXQsIDAsIHN1YmtleTJjb21wYXQsIDAsIHRlbXBrZXkubGVuZ3RoKTsKKyAgICAgICAgc3Via2V5MmNvbXBhdFtzdWJrZXkyY29tcGF0Lmxlbmd0aCAtIDFdID0gMDsKKyAgICAgICAgZG9Bc3NlcnQoQXJyYXlzLmVxdWFscyh0ZW1wa2V5LCBzdWJrZXkyY29tcGF0KSwKKyAgICAgICAgICAgICAgICAgIkJpbmFyeSBmb3JtYXQgZm9yICdhYmNkYScgc29ydGtleSBkaWZmZXJlbnQgZm9yIHNlY29uZGFyeSBzdHJlbmd0aCEiKTsKKyAgICAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc29ydGtleSBlbmRzLi4uIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSYXdDb2xsYXRpb25LZXkoKQorICAgIHsKKyAgICAgICAgLy8gdGVzdGluZyBjb25zdHJ1Y3RvcnMKKyAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgaWYgKGtleS5ieXRlcyAhPSBudWxsIHx8IGtleS5zaXplICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIGV4cGVjdGVkIHRvIGxlYXZlIHRoZSBieXRlcyBudWxsICIKKyAgICAgICAgICAgICAgICAgICsgImFuZCBzaXplIDAiKTsgCisgICAgICAgIH0KKyAgICAgICAgYnl0ZSBhcnJheVtdID0gbmV3IGJ5dGVbMTI4XTsKKyAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleShhcnJheSk7CisgICAgICAgIGlmIChrZXkuYnl0ZXMgIT0gYXJyYXkgfHwga2V5LnNpemUgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHRha2luZyBhbiBhcnJheSBleHBlY3RlZCB0byBhZG9wdCBpdCBhbmQgIgorICAgICAgICAgICAgICAgICAgKyAicmV0YWluaW5nIGl0cyBzaXplIDAiKTsgCisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXksIDEyOSk7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGFuIGFycmF5IGFuZCBhIHNpemUgPiBhcnJheS5sZW5ndGggIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7IAorICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogQ29uc3RydWN0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXksIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB0YWtpbmcgYW4gYXJyYXkgYW5kIGEgc2l6ZSA8IDAgIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7IAorICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogQ29uc3RydWN0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleShhcnJheSwgYXJyYXkubGVuZ3RoID4+IDEpOworICAgICAgICBpZiAoa2V5LmJ5dGVzICE9IGFycmF5IHx8IGtleS5zaXplICE9IChhcnJheS5sZW5ndGggPj4gMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB0YWtpbmcgYW4gYXJyYXkgYW5kIGEgc2l6ZSwgIgorICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgdG8gYWRvcHQgaXQgYW5kIHRha2UgdGhlIHNpemUgc3BlY2lmaWVkIik7IAorICAgICAgICB9CisgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoMTApOworICAgICAgICBpZiAoa2V5LmJ5dGVzID09IG51bGwgfHwga2V5LmJ5dGVzLmxlbmd0aCAhPSAxMCB8fCBrZXkuc2l6ZSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGEgc3BlY2lmaWVkIGNhcGFjaXR5IGV4cGVjdGVkIHRvICIKKyAgICAgICAgICAgICAgICAgICsgImNyZWF0ZSBhIG5ldyBpbnRlcm5hbCBieXRlIGFycmF5IHdpdGggbGVuZ3RoIDEwIGFuZCAiCisgICAgICAgICAgICAgICAgICArICJyZXRhaW4gc2l6ZSAwIik7IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgZG9Bc3NlcnQoYm9vbGVhbiBjb25kaXRpb25zLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBpZiAoIWNvbmRpdGlvbnMpIHsKKyAgICAgICAgICAgIGVycmxuKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGNvbXBhcmlzb24gY29udmVuaWVuY2UgbWV0aG9kcyBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiAtIGdyZWF0ZXIgdGhhbgorICAgICAqIC0gZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogLSBlcXVhbCB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgeworICAgICAgICBsb2dsbigiVGhlIGNvbXBhcmUgdGVzdHMgYmVnaW4gOiAiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxID0gIkFiY2RhIjsKKyAgICAgICAgU3RyaW5nIHRlc3QyID0gImFiY2RhIjsKKyAgICAgICAgbG9nbG4oIlVzZSB0ZXJ0aWFyeSBjb21wYXJpc29uIGxldmVsIHRlc3RpbmcgLi4uLiIpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0IG9iajEgPSB0ZXN0MTsKKyAgICAgICAgT2JqZWN0IG9iajIgPSB0ZXN0MjsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKG9iajEsIG9iajIpID4gMCksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiAhPSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKCFjb2wuZXF1YWxzKHRlc3QxLCB0ZXN0MikgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiICE9IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA+IDAgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID4+PiBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGxvZ2xuKCJVc2Ugc2Vjb25kYXJ5IGNvbXBhcmlzb24gbGV2ZWwgdGVzdGluZyAuLi4uIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUob2JqMSwgb2JqMikgPT0gMCksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5lcXVhbHModGVzdDEsIHRlc3QyKSApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSh0ZXN0MSwgdGVzdDIpID09IDApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbG9nbG4oIlVzZSBwcmltYXJ5IGNvbXBhcmlzb24gbGV2ZWwgdGVzdGluZyAuLi4uIik7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUob2JqMSwgb2JqMikgPT0gMCApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZXF1YWxzKHRlc3QxLCB0ZXN0MikgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgbG9nbG4oIlRoZSBjb21wYXJlIHRlc3RzIGVuZC4iKTsKKyAgICAgICAgCisgICAgICAgIEludGVnZXIgZGllID0gbmV3IEludGVnZXIoMSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wuY29tcGFyZShkaWUsIHRlc3QxKTsKKyAgICAgICAgICAgIGVycmxuKCJOb24tU3RyaW5ncyBzaG91bGQgZmFpbCBjb2wuY29tcGFyZShPYmplY3QsIE9iamVjdCkiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogTm9uLVN0cmluZ3MgY29tcGFyaXNvbiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RzIGRlY29tcG9zaXRpb24gc2V0dGluZworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERlY29tcG9zaXRpb24oKSB7CisgICAgICAgIENvbGxhdG9yIGVuX1VTID0gbnVsbCwgZWxfR1IgPSBudWxsLCB2aV9WTiA9IG51bGw7CisKKyAgICAgICAgZW5fVVMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgZWxfR1IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbCIsICJHUiIpKTsKKyAgICAgICAgdmlfVk4gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ2aSIsICJWTiIpKTsKKworICAgICAgICAKKyAgICAgICAgLy8gdGhlcmUgaXMgbm8gcmVhc29uIHRvIGhhdmUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gaW4gZW5fVVMgT1IgZGVmYXVsdCBsb2NhbGUgKi8KKyAgICAgICAgaWYgKHZpX1ZOLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oInZpX1ZOIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uISIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVsX0dSLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oImVsX0dSIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uISIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVuX1VTLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiZW5fVVMgY29sbGF0aW9uIGhhZCBjYW5ub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG5vcm1hbGl6YXRpb24hIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgZHVwbGljYXRpb24gb2YgYSBjb2xsYXRvciBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1cGxpY2F0ZSgpIHsKKyAgICAgICAgLy9DbG9uZSBkb2VzIG5vdCBiZSBpbXBsZW1lbnRlZCAKKyAgICAgICAgQ29sbGF0b3IgY29sMSA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbGxhdG9yIGNvbDIgPSAoQ29sbGF0b3IpY29sMS5jbG9uZSgpOworICAgICAgICAvLyBkb0Fzc2VydChjb2wxLmVxdWFscyhjb2wyKSwgIkNsb25lZCBvYmplY3QgaXMgbm90IGVxdWFsIHRvIHRoZSBvcmdpbmFsIik7CisgICAgICAgIFN0cmluZyBydWxlc2V0ID0gIjwgYSwgQSA8IGIsIEIgPCBjLCBDIDwgZCwgRCwgZSwgRSI7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZToiICsgcnVsZXNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZG9Bc3NlcnQoIWNvbDEuZXF1YWxzKGNvbDMpLCAiQ2xvbmVkIG9iamVjdCBpcyBlcXVhbCB0byBzb21lIGR1bW15Iik7CisgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpY29sMTsKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5lcXVhbHMoY29sMyksICJDb3BpZWQgb2JqZWN0IGlzIG5vdCBlcXVhbCB0byB0aGUgb3JnaW5hbCIpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHJlbGF0ZWQgQVBJcy4KKyAgICAgKiAtIGNyZWF0aW9uIG9mIGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG9iamVjdAorICAgICAqIC0gPT0gYW5kICE9IG9wZXJhdG9ycworICAgICAqIC0gaXRlcmF0aW5nIGZvcndhcmQKKyAgICAgKiAtIHJlc2V0aW5nIHRoZSBpdGVyYXRvciBpbmRleAorICAgICAqIC0gcmVxdWVzdGluZyB0aGUgb3JkZXIgcHJvcGVydGllcyhwcmltYXJ5LCBzZWNvbmRhcnkgb3IgdGVydGlhcnkpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVsZW1JdGVyKCkgeworICAgICAgICAvLyBsb2dsbigidGVzdGluZyBzb3J0a2V5IGJlZ2lucy4uLiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nMSA9ICJYRklMRSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGhpZ2hlc3QgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW5nIHRoZSBtb3N0IGVycm9ycz8iOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZzIgPSAiWGZfaWxlIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgbG93ZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyB0aGUgbGVhc3QgZXJyb3JzPyI7CisgICAgICAgIC8vIGxvZ2xuKCJDb25zdHJ1Y3RvcnMgYW5kIGNvbXBhcmlzb24gdGVzdGluZy4uLi4iKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXJhdG9yMSA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdFN0cmluZzEpOworICAgICAgICAKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhcml0ZXI9bmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTdHJpbmcxKTsKKyAgICAgICAgLy8gY29weSBjdG9yCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvcjIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGNoYXJpdGVyKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFyaXRlcj1VQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGVzdFN0cmluZzIpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih1Y2hhcml0ZXIpOworICAgIAorICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IxLmdldE9mZnNldCgpOworICAgICAgICBpZiAob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBpbiBnZXRPZmZzZXQgZm9yIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3IxLnNldE9mZnNldCg2KTsKKyAgICAgICAgaXRlcmF0b3IxLnNldE9mZnNldCgwKTsKKyAgICAgICAgaW50IG9yZGVyMSwgb3JkZXIyLCBvcmRlcjM7CisgICAgICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOworICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMS5lcXVhbHMoaXRlcmF0b3IyKSksICJUaGUgZmlyc3QgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgb3JkZXIyID0gaXRlcmF0b3IyLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIHNlY29uZCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOyAKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSA9PSBvcmRlcjIpLCAiVGhlIG9yZGVyIHJlc3VsdCBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgc2Vjb25kYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIGlkZW50aWNhbCIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAvLyBpbnZhbGlkIHRlc3Qgd3JvbmcgaW4gVUNBCisgICAgICAgIC8vIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgLy8gICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOworICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChvcmRlcjEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiksICJVbmV4cGVjdGVkIGVuZCBvZiBpdGVyYXRvciByZWFjaGVkIik7CisgICAgCisgICAgICAgIGl0ZXJhdG9yMS5yZXNldCgpOyAKKyAgICAgICAgaXRlcmF0b3IyLnJlc2V0KCk7IAorICAgICAgICBpdGVyYXRvcjMucmVzZXQoKTsKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KCEoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBmaXJzdCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOworICAgICAgICAKKyAgICAgICAgb3JkZXIyID0gaXRlcmF0b3IyLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIHNlY29uZCBpdGVyYXRvciBhZHZhbmNlIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgob3JkZXIxID09IG9yZGVyMiksICJUaGUgb3JkZXIgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgIAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsgCisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIxKSA9PSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgcHJpbWFyeSBvcmRlcnMgc2hvdWxkIGJlIGlkZW50aWNhbCIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHRlcnRpYXJ5IG9yZGVycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjMgPSBpdGVyYXRvcjMubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gb2Jzb2xldGUgaW52YWxpZCB0ZXN0LCByZW1vdmVkCisgICAgICAgIC8vIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIxKSAhPSAKKyAgICAgICAgLy8gICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgob3JkZXIxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpLCAiVW5leHBlY3RlZCBlbmQgb2YgaXRlcmF0b3IgcmVhY2hlZCIpOworICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMi5lcXVhbHMoaXRlcmF0b3IzKSksICJUaGUgaXRlcmF0b3JzIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGVuZHMuLi4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgaGFzaENvZGUgbWV0aG9kIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgbG9nbG4oImhhc2hDb2RlIHRlc3RzIGJlZ2luLiIpOworICAgICAgICBDb2xsYXRvciBjb2wxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgIAorICAgICAgICBDb2xsYXRvciBjb2wyID0gbnVsbDsKKyAgICAgICAgTG9jYWxlIGRrID0gbmV3IExvY2FsZSgiZGEiLCAiREsiLCAiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZGspOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkRhbmlzaCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIybmQgZGVmYXVsdCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJDb2xsYXRvci5oYXNoQ29kZSgpIHRlc3RpbmcgLi4uIik7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydChjb2wxLmhhc2hDb2RlKCkgIT0gY29sMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0IiApOyAgICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KCEoY29sMS5oYXNoQ29kZSgpID09IGNvbDIuaGFzaENvZGUoKSksICJIYXNoIHRlc3QyIHJlc3VsdCBpbmNvcnJlY3QiICk7ICAgICAgICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5oYXNoQ29kZSgpID09IGNvbDMuaGFzaENvZGUoKSwgIkhhc2ggcmVzdWx0IG5vdCBlcXVhbCIgKTsgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgbG9nbG4oImhhc2hDb2RlIHRlc3RzIGVuZC4iKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJBYmNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25LZXkgc29ydGsxLCBzb3J0azIsIHNvcnRrMzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHNvcnRrMSA9IGNvbDMuZ2V0Q29sbGF0aW9uS2V5KHRlc3QxKTsKKyAgICAgICAgc29ydGsyID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgc29ydGszID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMS5oYXNoQ29kZSgpICE9IHNvcnRrMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0Iik7ICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMi5oYXNoQ29kZSgpID09IHNvcnRrMy5oYXNoQ29kZSgpLCAiSGFzaCByZXN1bHQgbm90IGVxdWFsIiApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIC0gY29uc3RydWN0b3IKKyAgICAgKiAtIGZhY3RvcnkgbWV0aG9kIGdldEluc3RhbmNlCisgICAgICogLSBjb21wYXJlIGFuZCBnZXRDb2xsYXRpb25LZXkKKyAgICAgKiAtIGdldC9zZXQgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBjb21wYXJpc29uIGxldmVsCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5KCkgeworICAgICAgICAvKiAKKyAgICAgICAgICBBbGwgdGhlIGNvbGxhdGlvbnMgaGF2ZSB0aGUgc2FtZSB2ZXJzaW9uIGluIGFuIElDVQorICAgICAgICAgIHZlcnNpb24uCisgICAgICAgICAgSUNVIDIuMCBjdXJyVmVyc2lvbkFycmF5ID0gezB4MTgsIDB4QzAsIDB4MDIsIDB4MDJ9OworICAgICAgICAgIElDVSAyLjEgY3VyclZlcnNpb25BcnJheSA9IHsweDE5LCAweDAwLCAweDAzLCAweDAzfTsKKyAgICAgICAgICBJQ1UgMi44IGN1cnJWZXJzaW9uQXJyYXkgPSB7MHgyOSwgMHg4MCwgMHgwMCwgMHgwNH07ICAgICAgICAgIAorICAgICAgICAqLyAgICAKKyAgICAgICAgbG9nbG4oIlRoZSBwcm9wZXJ0eSB0ZXN0cyBiZWdpbiA6ICIpOworICAgICAgICBsb2dsbigiVGVzdCBjdG9ycyA6ICIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisKKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgZ2V0VmVyc2lvbiIpOworICAgICAgICBWZXJzaW9uSW5mbyBleHBlY3RlZFZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgweDMxLCAweEMwLCAweDAwLCAweDA1KTsKKyAgICAgICAgZG9Bc3NlcnQoY29sLmdldFZlcnNpb24oKS5lcXVhbHMoZXhwZWN0ZWRWZXJzaW9uKSwgIkV4cGVjdGVkIHZlcnNpb24gIitleHBlY3RlZFZlcnNpb24udG9TdHJpbmcoKSsiIGdvdCAiK2NvbC5nZXRWZXJzaW9uKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCBnZXRVQ0FWZXJzaW9uIik7CisgICAgICAgIFZlcnNpb25JbmZvIGV4cGVjdGVkVUNBVmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDB4MDUsIDAsIDAsIDApOworICAgICAgICBkb0Fzc2VydChjb2wuZ2V0VUNBVmVyc2lvbigpLmVxdWFscyhleHBlY3RlZFVDQVZlcnNpb24pLCAiRXhwZWN0ZWQgVUNBIHZlcnNpb24gIitleHBlY3RlZFVDQVZlcnNpb24udG9TdHJpbmcoKSsiIGdvdCAiK2NvbC5nZXRVQ0FWZXJzaW9uKCkudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgImFiYyIpIDwgMCksICJhYiA8IGFiYyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgIkFCIikgPCAwKSwgImFiIDwgQUIgY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKCJibGFja2JpcmQiLCAiYmxhY2stYmlyZCIpID4gMCksICJibGFjay1iaXJkID4gYmxhY2tiaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiYmxhY2sgYmlyZCIsICJibGFjay1iaXJkIikgPCAwKSwgImJsYWNrIGJpcmQgPiBibGFjay1iaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiSGVsbG8iLCAiaGVsbG8iKSA+IDApLCAiSGVsbG8gPiBoZWxsbyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgIAorICAgICAgICBsb2dsbigiVGVzdCBjdG9ycyBlbmRzLiIpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0b3IuZ2V0U3RyZW5ndGgoKSBtZXRob2QgLi4uIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0IGhhcyB0aGUgd3Jvbmcgc3RyZW5ndGgiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldFN0cmVuZ3RoKCkgbWV0aG9kIC4uLiIpOworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBzZWNvbmRhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCBoYXMgdGhlIHdyb25nIHN0cmVuZ3RoIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldERlY29tcG9zaXRpb24oKSBtZXRob2QgLi4uIik7CisgICAgICAgIGNvbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXREZWNvbXBvc2l0aW9uKCkgPT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OIik7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkYSIsICJESyIpKTsKKyAgICAgICAgZG9Bc3NlcnQocmNvbC5nZXRSdWxlcygpLmxlbmd0aCgpICE9IDAsICJkYV9ESyBydWxlcyBkb2VzIG5vdCBoYXZlIGxlbmd0aCAwIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRvci5nZXRTdHJlbmd0aCgpIG1ldGhvZCBhZ2FpbiAuLi4iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QgaGFzIHRoZSB3cm9uZyBzdHJlbmd0aCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgbm90IHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIEZyZW5jaCBDb2xsYXRvci5zZXRTdHJlbmd0aCgpIG1ldGhvZCAuLi4iKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpID09IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBub3QgdGVydGlhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHNlY29uZGFyeSBkaWZmZXJlbmNlIik7CisgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKdW5rQ29sbGF0b3IoKXsKKyAgICAgICAgbG9nbG4oIkNyZWF0ZSBqdW5rIGNvbGxhdGlvbjogIik7CisgICAgICAgIExvY2FsZSBhYmNkID0gbmV3IExvY2FsZSgiYWIiLCAiQ0QiLCAiIik7CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBqdW5rID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoYWJjZCk7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisKKyAgICAKKyAgICAgICAgU3RyaW5nIGNvbHJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBqdW5rcnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWp1bmspLmdldFJ1bGVzKCk7CisgICAgICAgIGRvQXNzZXJ0KGNvbHJ1bGVzID09IGp1bmtydWxlcyB8fCBjb2xydWxlcy5lcXVhbHMoanVua3J1bGVzKSwgCisgICAgICAgICAgICAgICAgICAgIlRoZSBkZWZhdWx0IGNvbGxhdGlvbiBzaG91bGQgYmUgcmV0dXJuZWQuIik7CisgICAgICAgIENvbGxhdG9yIGZyQ29sID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZyQ29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdG9yIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkb0Fzc2VydCghKGZyQ29sLmVxdWFscyhqdW5rKSksICJUaGUganVuayBpcyB0aGUgc2FtZSBhcyB0aGUgRnJlbmNoIGNvbGxhdG9yLiIpOworICAgICAgICBsb2dsbigiQ29sbGF0b3IgcHJvcGVydHkgdGVzdCBlbmRlZC4iKTsKKyAgICAKKyAgICB9CisgICAgLyoqCisgICAgKiBUaGlzIHRlc3RzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICogLSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yCisgICAgKiAtIGdldFJ1bGVzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUJhc2VkQ29sbCgpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMSA9IG51bGwsIGNvbDIgPSBudWxsLCBjb2wzID0gbnVsbCwgY29sNCA9IG51bGw7CisgICAgCisgICAgICAgIFN0cmluZyBydWxlc2V0MSA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQzsgY2gsIGNILCBDaCwgQ0ggPCBkLCBELCBlLCBFIjsgCisgICAgICAgIFN0cmluZyBydWxlc2V0MiA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQyA8IGQsIEQsIGUsIEUiOworICAgICAgICBTdHJpbmcgcnVsZXNldDMgPSAiJiI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvbmx5IGZpcnN0IGVycm9yIG5lZWRzIHRvIGJlIGEgd2FybmluZyBzaW5jZSB3ZSBleGl0IGZ1bmN0aW9uIAorICAgICAgICAgICAgd2FybmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzZXQyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBlbXB0eSBydWxlcyBmYWlsCisgICAgICAgICAgICBjb2wzID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzZXQzKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBFbXB0eSBydWxlcyBmb3IgdGhlIGNvbGxhdG9yIHNob3VsZCBmYWlsIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEVtcHR5IHJ1bGVzIGZvciB0aGUgY29sbGF0b3IgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJhYSIsICJBQSIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhbGxiYWNrIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC46ICVzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC46ICVzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGUxID0gY29sMS5nZXRSdWxlcygpOyAKKyAgICAgICAgU3RyaW5nIHJ1bGUyID0gY29sMi5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgcnVsZTMgPSBjb2wzLmdldFJ1bGVzKCk7CisgICAgCisgICAgICAgIGRvQXNzZXJ0KCFydWxlMS5lcXVhbHMocnVsZTIpLCAiRGVmYXVsdCBjb2xsYXRvciBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIXJ1bGUyLmVxdWFscyhydWxlMyksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCghcnVsZTEuZXF1YWxzKHJ1bGUzKSwgIkRlZmF1bHQgY29sbGF0b3IgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sNCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlMik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcnVsZTQgPSBjb2w0LmdldFJ1bGVzKCk7CisgICAgICAgIGRvQXNzZXJ0KHJ1bGUyLmVxdWFscyhydWxlNCksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICAvLyB0ZXN0cyB0aGF0IG1vZGlmaWVyICEgaXMgYWx3YXlzIGlnbm9yZWQKKyAgICAgICAgU3RyaW5nIGV4Y2xhbWF0aW9ucnVsZXMgPSAiISZhPGIiOworICAgICAgICAvLyBqYXZhIGRvZXMgbm90IGFsbG93ICEgdG8gYmUgdGhlIHN0YXJ0IG9mIHRoZSBydWxlCisgICAgICAgIFN0cmluZyB0aGFpc3RyID0gIlx1MGU0MFx1MGUwMVx1MGUyZCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2w1ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGV4Y2xhbWF0aW9ucnVsZXMpOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5jb2wgPSAoUnVsZUJhc2VkQ29sbGF0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbDVpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbDUuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRoYWlzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGVuY29saXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBlbmNvbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhaXN0cik7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIHRlc3Rpbmcgd2l0aCBlbiBzaW5jZSB0aGFpIGhhcyBpdHMgb3duIHRhaWxvcmluZworICAgICAgICAgICAgICAgIGludCBjZSA9IGNvbDVpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpbnQgY2UyID0gZW5jb2xpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UyICE9IGNlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIhIG1vZGlmaWVyIHRlc3QgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkIGZvciAhIG1vZGlmaWVyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogVGhpcyB0ZXN0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAqIC0gZ2V0UnVsZXMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlcygpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCIiLCIiLCIiKSk7IC8vcm9vdAorICAgICAgICAgICAgLy8gbG9nbG4oIlBBU1M6IFJ1bGVCYXNlZCBDb2xsYXRvciBjcmVhdGlvbiBwYXNzZWQiKTsKKworICAgIAorICAgICAgICBTdHJpbmcgcnVsZXMgPSBjb2xsLmdldFJ1bGVzKCk7CisgICAgICAgIGlmIChydWxlcyAhPSBudWxsICYmIHJ1bGVzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJSb290IHRhaWxvcmVkIHJ1bGVzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTYWZlQ2xvbmUoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJhYkNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICAvLyBvbmUgZGVmYXVsdCBjb2xsYXRvciAmIHR3byBjb21wbGV4IG9uZXMgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDb2xsYXRvcnNbXSA9IHsKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCksCisgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLktPUkVBKSwKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pCisgICAgICAgIH07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDbG9uZWRDb2xsYXRvcnNbXSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvclszXTsKKyAgICAgICAgCisgICAgICAgIC8vIGNoYW5nZSBvcmlnICYgY2xvbmUgJiBtYWtlIHN1cmUgdGhleSBhcmUgaW5kZXBlbmRlbnQgCisgICAgCisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzb21lQ29sbGF0b3JzLmxlbmd0aDsgaW5kZXggKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipc29tZUNvbGxhdG9yc1tpbmRleF0uY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY2xvbmluZyBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBzb21lQ2xvbmVkQ29sbGF0b3JzW2luZGV4XS5zZXRDYXNlTGV2ZWwoZmFsc2UpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG9Bc3NlcnQoc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uY29tcGFyZSh0ZXN0MSwgdGVzdDIpID4gMCwgCisgICAgICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiQ2RhXCIgPj4+IFwiYWJjZGFcIiAiKTsKKyAgICAgICAgICAgIGRvQXNzZXJ0KHNvbWVDb2xsYXRvcnNbaW5kZXhdLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJDZGFcIiA9PSBcImFiY2RhXCIgIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VGFpbG9yZWRTZXQoKSAKKyAgICB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGdldFRhaWxvcmVkU2V0Li4uIik7CisgICAgICAgIFN0cmluZyBydWxlc1tdID0geworICAgICAgICAgICAgIiZhIDwgXHUyMTJiIiwgICAgICAgICAgICAgCisgICAgICAgICAgICAiJiBTIDwgXHUwMTYxIDw8PCBcdTAxNjAiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmcgZGF0YVtdW10gPSB7CisgICAgICAgICAgICB7ICJcdTIxMmIiLCAiQVx1MDMwYSIsICJcdTAwYzUiIH0sICAgICAgICAKKyAgICAgICAgICAgIHsgIlx1MDE2MSIsICJzXHUwMzBDIiwgIlx1MDE2MCIsICJTXHUwMzBDIiB9ICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgCisgICAgICAgIGludCBpID0gMCwgaiA9IDA7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsOworICAgICAgICBVbmljb2RlU2V0IHNldDsKKyAgICAgICAgCisgICAgICAgIGZvcihpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJJbnN0YW50aWF0aW5nIGEgY29sbGF0b3IgZnJvbSAiK3J1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICBzZXQgPSBjb2xsLmdldFRhaWxvcmVkU2V0KCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCBzZXQ6ICIrc2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICAgaWYoc2V0LnNpemUoKSAhPSBkYXRhW2ldLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGFpbG9yZWQgc2V0IHNpemUgZGlmZmVyZW50ICgiK3NldC5zaXplKCkrIikgdGhhbiBleHBlY3RlZCAoIitkYXRhW2ldLmxlbmd0aCsiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IoaiA9IDA7IGogPCBkYXRhW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJDaGVja2luZyB0byBzZWUgd2hldGhlciAiK2RhdGFbaV1bal0rIiBpcyBpbiBzZXQiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXNldC5jb250YWlucyhkYXRhW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRhaWxvcmVkIHNldCBkb2Vzbid0IGNvbnRhaW4gIitkYXRhW2ldW2pdKyIuLi4gSXQgc2hvdWxkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGRuJ3Qgb3BlbiBjb2xsYXRvciB3aXRoIHJ1bGVzICIrIHJ1bGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBTaW1wbGUgdGVzdCB0byBzZWUgaWYgQ29sbGF0b3IgaXMgc3ViY2xhc3NhYmxlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1YkNsYXNzKCkgCisgICAgeworICAgICAgICBjbGFzcyBUZXN0Q29sbGF0b3IgZXh0ZW5kcyBDb2xsYXRvcgorICAgICAgICB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcyA9PSB0aGF0OworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IGdldENvbGxhdGlvbktleShTdHJpbmcgc291cmNlKQorICAgICAgICAgICAgeyAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFJhd0NvbGxhdGlvbktleShzb3VyY2UsIG5ldyBSYXdDb2xsYXRpb25LZXkoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5IGdldFJhd0NvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSBrZXkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYnl0ZSB0ZW1wMVtdID0gc291cmNlLmdldEJ5dGVzKCk7CisgICAgICAgICAgICAgICAgYnl0ZSB0ZW1wMltdID0gbmV3IGJ5dGVbdGVtcDEubGVuZ3RoICsgMV07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wMSwgMCwgdGVtcDIsIDAsIHRlbXAxLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdGVtcDJbdGVtcDEubGVuZ3RoXSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5LmJ5dGVzID0gdGVtcDI7IAorICAgICAgICAgICAgICAgIGtleS5zaXplID0gdGVtcDIubGVuZ3RoOworICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFZhcmlhYmxlVG9wKGludCBjZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBzZXRWYXJpYWJsZVRvcChTdHJpbmcgc3RyKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGludCBnZXRWYXJpYWJsZVRvcCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFVDQVZlcnNpb24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorIAorICAgICAgICBDb2xsYXRvciBjb2wxID0gbmV3IFRlc3RDb2xsYXRvcigpOworICAgICAgICBDb2xsYXRvciBjb2wyID0gbmV3IFRlc3RDb2xsYXRvcigpOworICAgICAgICBpZiAoY29sMS5lcXVhbHMoY29sMikpIHsKKyAgICAgICAgICAgIGVycmxuKCIyIGRpZmZlcmVudCBpbnN0YW5jZSBvZiBUZXN0Q29sbGF0b3Igc2hvdWxkIGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sMS5oYXNoQ29kZSgpICE9IGNvbDIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkV2ZXJ5IFRlc3RDb2xsYXRvciBoYXMgdGhlIHNhbWUgaGFzaGNvZGUiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgYWJjID0gImFiYyI7CisgICAgICAgIFN0cmluZyBiY2QgPSAiYmNkIjsKKyAgICAgICAgaWYgKGNvbDEuY29tcGFyZShhYmMsIGJjZCkgIT0gYWJjLmNvbXBhcmVUbyhiY2QpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdENvbGxhdG9yIGNvbXBhcmUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0ICIgKworICAgICAgICAgICAgICAgICAgInN0cmluZyBjb21wYXJpc29uIik7CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IGNvbDEuZ2V0Q29sbGF0aW9uS2V5KGFiYyk7CisgICAgICAgIGJ5dGUgdGVtcDFbXSA9IGFiYy5nZXRCeXRlcygpOworICAgICAgICBieXRlIHRlbXAyW10gPSBuZXcgYnl0ZVt0ZW1wMS5sZW5ndGggKyAxXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wMSwgMCwgdGVtcDIsIDAsIHRlbXAxLmxlbmd0aCk7CisgICAgICAgIHRlbXAyW3RlbXAxLmxlbmd0aF0gPSAwOworICAgICAgICBpZiAoIWphdmEudXRpbC5BcnJheXMuZXF1YWxzKGtleS50b0J5dGVBcnJheSgpLCB0ZW1wMikgCisgICAgICAgICAgICB8fCAha2V5LmdldFNvdXJjZVN0cmluZygpLmVxdWFscyhhYmMpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdENvbGxhdG9yIGNvbGxhdGlvbmtleSBBUEkgaXMgcmV0dXJuaW5nIHdyb25nIHZhbHVlcyIpOworICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gY29sMS5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMobmV3IFVuaWNvZGVTZXQoMCwgMHgxMEZGRkYpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZGVmYXVsdCB0YWlsb3JlZCBzZXQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgLyoqIAorICAgICAqIFNpbXBsZSB0ZXN0IHRoZSBjb2xsYXRvciBzZXR0ZXIgYW5kIGdldHRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0R2V0KCkgCisgICAgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBpbnQgZGVjb21wID0gY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICBpbnQgc3RyZW5ndGggPSBjb2xsYXRvci5nZXRTdHJlbmd0aCgpOworICAgICAgICBib29sZWFuIGFsdCA9IGNvbGxhdG9yLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCk7CisgICAgICAgIGJvb2xlYW4gY2FzZWxldmVsID0gY29sbGF0b3IuaXNDYXNlTGV2ZWwoKTsKKyAgICAgICAgYm9vbGVhbiBmcmVuY2ggPSBjb2xsYXRvci5pc0ZyZW5jaENvbGxhdGlvbigpOworICAgICAgICBib29sZWFuIGhxdWFydCA9IGNvbGxhdG9yLmlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCk7CisgICAgICAgIGJvb2xlYW4gbG93ZXJjYXNlID0gY29sbGF0b3IuaXNMb3dlckNhc2VGaXJzdCgpOworICAgICAgICBib29sZWFuIHVwcGVyY2FzZSA9IGNvbGxhdG9yLmlzVXBwZXJDYXNlRmlyc3QoKTsKKyAgICAgICAgCisgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpZiAoY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBkZWNvbXBvc2l0aW9uIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBpZiAoY29sbGF0b3IuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5RVUFURVJOQVJZKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBzdHJlbmd0aCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoIWFsdCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpID09IGFsdCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgYWx0ZXJuYXRlIGhhbmRsaW5nIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbCghY2FzZWxldmVsKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzQ2FzZUxldmVsKCkgPT0gY2FzZWxldmVsKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBjYXNlIGxldmVsIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEZyZW5jaENvbGxhdGlvbighZnJlbmNoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzRnJlbmNoQ29sbGF0aW9uKCkgPT0gZnJlbmNoKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBmcmVuY2ggY29sbGF0aW9uIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEhpcmFnYW5hUXVhdGVybmFyeSghaHF1YXJ0KTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCkgPT0gaHF1YXJ0KSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBoaXJhZ2FuYSBxdWFydGVuYXJ5IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldExvd2VyQ2FzZUZpcnN0KCFsb3dlcmNhc2UpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNMb3dlckNhc2VGaXJzdCgpID09IGxvd2VyY2FzZSkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgbG93ZXIgY2FzZSBmaXJzdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRVcHBlckNhc2VGaXJzdCghdXBwZXJjYXNlKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzVXBwZXJDYXNlRmlyc3QoKSA9PSB1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIHVwcGVyIGNhc2UgZmlyc3QgZmFpbGVkIik7CisgICAgICAgIH0gICAKKyAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbkRlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKSAhPSBkZWNvbXApIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGRlY29tcG9zaXRpb24gZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aERlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldFN0cmVuZ3RoKCkgIT0gc3RyZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIHN0cmVuZ3RoIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpICE9IGFsdCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgYWx0ZXJuYXRlIGhhbmRsaW5nIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0Q2FzZUxldmVsRGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNDYXNlTGV2ZWwoKSAhPSBjYXNlbGV2ZWwpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGNhc2UgbGV2ZWwgZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb25EZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0ZyZW5jaENvbGxhdGlvbigpICE9IGZyZW5jaCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgZnJlbmNoIGhhbmRsaW5nIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5RGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNIaXJhZ2FuYVF1YXRlcm5hcnkoKSAhPSBocXVhcnQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIEhpcmFnYW5hIFF1YXJ0ZW5hcnkgZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRDYXNlRmlyc3REZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0xvd2VyQ2FzZUZpcnN0KCkgIT0gbG93ZXJjYXNlIAorICAgICAgICAgICAgfHwgY29sbGF0b3IuaXNVcHBlckNhc2VGaXJzdCgpICE9IHVwcGVyY2FzZSkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgY2FzZSBmaXJzdCBoYW5kbGluZyBkZWZhdWx0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZHMoKSAKKyAgICB7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJzaCIsICIiKSk7CisgICAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7ICJKb2huIFNtaXRoIiwgIkpPSE4gU01JVEgiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImpvaG4gU01JVEgiLCAialx1MDBGNmhuIHNtXHUwMEVGdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiSlx1MDBGNmhuIFNtXHUwMEVGdGgiLCAiSlx1MDBENkhOIFNNXHUwMENGVEgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiam9obiBzbWl0aHNvbmlhbiIsICJKb2huIFNtaXRoc29uaWFuIiwKKyAgICAgICAgfTsKKyAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFN0cltdID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIE1JSEFMSiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIE1JSEFMSiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgUElST1x1MDE2MEtBIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIEFORFJJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBMQUpPXHUwMTYwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIE1BUklKQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFJIFNURVZBTiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgQlJBTktPIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBNSUxFTktPIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIE1JUk9TTEFWIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBTSU1PIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIFNUQU5LTyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgVEFNQVJBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIFRPTUFcdTAxNjAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCREFSSVx1MDEwNiBOSUtPTEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJEQVJJXHUwMTA2IFpPUklDQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkkgTkFORE9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCT1ZJXHUwMTA2IE1JTEFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBBR05FWklKQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgSVZBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgSkVMRU5BIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBMSlVCSUNBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkFESSBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSREEgTUFSVElOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUklMTyBCT0dEQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIEJSQU5JU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJJTE8gTEFaQVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIExKVUJJQ0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIFNQQVNPSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQURFXHUwMTYwIFpERU5LQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBREVTS0kgQkxBR09KRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBRE9WU0tJIFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FHTEpFVklcdTAxMDYgVE9NQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBR09ST1ZJXHUwMTA2IFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FKQSBWQU5LQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBSklcdTAxMDYgQk9HT0xKVUIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUpJXHUwMTA2IEJPUklTTEFWIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FKSVx1MDEwNiBSQURPU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS1x1MDE2MElSQU4gTUlMQURJTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIEVVR0VOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gRVZHRU5JSkUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBJVkFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gSlVMSUpBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIE1JSEFKTE8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBTVEVWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBWTEFESU1JUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gVkxBRElNSVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBUkEgQU5BIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQVJFVklcdTAxMDYgTU9NSVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBUkVWSVx1MDEwNiBORURFTEpLTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgXHUwMTYwQU5ET1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIEFNQUxJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIEFORFJBXHUwMTYwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBMQURJU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgTEFKT1x1MDE2MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgTEFTTE8iIH07IAorICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHRlc3RLZXlbXSA9IG5ldyBDb2xsYXRpb25LZXlbdGVzdFN0ci5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RTdHIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0ZXN0S2V5W2ldID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdFN0cltpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFycmF5cy5zb3J0KHRlc3RLZXkpOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdGVzdEtleS5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgbG93ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRlc3RLZXlbaV0uZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5MT1dFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVzdEtleS5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkgdXBwZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRlc3RLZXlbal0uZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5VUFBFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSBpOyBrIDw9IGo7IGsgKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvd2VyLmNvbXBhcmVUbyh0ZXN0S2V5W2tdKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9ibGVtIHdpdGggbG93ZXIgYm91bmQgYXQgaSA9ICIgKyBpICsgIiBqID0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBqICsgIiBrID0gIiArIGspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh1cHBlci5jb21wYXJlVG8odGVzdEtleVtrXSkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByb2JsZW0gd2l0aCB1cHBlciBib3VuZCBhdCBpID0gIiArIGkgKyAiIGogPSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGogKyAiIGsgPSAiICsgayk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7IGkgKyspIAorICAgICAgICB7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdFtpXSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgbG93ZXIgPSBrZXkuZ2V0Qm91bmQoQ29sbGF0aW9uS2V5LkJvdW5kTW9kZS5MT1dFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHVwcGVyID0ga2V5LmdldEJvdW5kKENvbGxhdGlvbktleS5Cb3VuZE1vZGUuVVBQRVJfTE9ORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVzdC5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBrZXkgPSBjb2xsLmdldENvbGxhdGlvbktleSh0ZXN0W2pdKTsKKyAgICAgICAgICAgICAgICBpZiAobG93ZXIuY29tcGFyZVRvKGtleSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9ibGVtIHdpdGggbG93ZXIgYm91bmQgaSA9ICIgKyBpICsgIiBqID0gIiArIGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodXBwZXIuY29tcGFyZVRvKGtleSkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJvYmxlbSB3aXRoIHVwcGVyIGJvdW5kIGkgPSAiICsgaSArICIgaiA9ICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgVGVzdEdldEFsbCgpIHsKKyAgICAgICAgTG9jYWxlW10gbGlzdCA9IENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvZygiTG9jYWxlIG5hbWU6ICIpOworICAgICAgICAgICAgbG9nKGxpc3RbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2coIiAsIHRoZSBkaXNwbGF5IG5hbWUgaXMgOiAiKTsKKyAgICAgICAgICAgIGxvZ2xuKGxpc3RbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgICAgLi4uLi4uIE9yIGRpc3BsYXkgYXM6ICIgKyBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShsaXN0W2ldKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgICAgLi4uLi4uIGFuZCBkaXNwbGF5IGluIENoaW5lc2U6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShsaXN0W2ldLExvY2FsZS5DSElOQSkpOyAKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICBsb2dsbigiY291bGQgbm90IGdldCBkaXNwbGF5TmFtZSBmb3IgIiArIGxpc3RbaV0pOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoZXJyb3JDb3VudD4wKXsKKyAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4iKTsKKyAgICAgICAgfQorICAgIH0gICAgCisKKyAgICBwcml2YXRlIHZvaWQKKyAgICBkb1NldHNUZXN0KFVuaWNvZGVTZXQgcmVmLCBVbmljb2RlU2V0IHNldCwgU3RyaW5nIGluU2V0LCBTdHJpbmcgb3V0U2V0KSB7CisgICAgICAgIAorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybihpblNldCk7CisgICAgICAgIAorICAgICAgICBpZighcmVmLmNvbnRhaW5zQWxsKHNldCkpIHsKKyAgICAgICAgICAgIGVycigiU29tZSBzdHVmZiBmcm9tICIraW5TZXQrIiBpcyBub3QgcHJlc2VudCBpbiB0aGUgc2V0XG4iKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4ob3V0U2V0KTsKKyAgICAgICAgaWYoIXJlZi5jb250YWluc05vbmUoc2V0KSkgeworICAgICAgICAgICAgZXJyKCJTb21lIHN0dWZmIGZyb20gIitvdXRTZXQrIiBpcyBwcmVzZW50IGluIHRoZSBzZXRcbiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRDb250cmFjdGlvbnMoKXRocm93cyBFeGNlcHRpb24geworICAgICAgICAvKiAgICAgICAgc3RhdGljIHN0cnVjdCB7CisgICAgICAgICBjb25zdCBjaGFyKiBsb2NhbGU7CisgICAgICAgICBjb25zdCBjaGFyKiBpbkNvbnRzOworICAgICAgICAgY29uc3QgY2hhciogb3V0Q29udHM7CisgICAgICAgICBjb25zdCBjaGFyKiBpbkV4cDsKKyAgICAgICAgIGNvbnN0IGNoYXIqIG91dEV4cDsKKyAgICAgICAgIGNvbnN0IGNoYXIqIHVuc2FmZUNvZGVVbml0czsKKyAgICAgICAgIGNvbnN0IGNoYXIqIHNhZmVDb2RlVW5pdHM7CisgICAgICAgICB9CisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgdGVzdHNbXVtdID0geworICAgICAgICAgICAgICAgIHsgInJ1IiwgCisgICAgICAgICAgICAgICAgICAgICJbe1x1MDQ3NFx1MDMwRn17XHUwNDc1XHUwMzBGfXtcdTA0RDhcdTAzMDh9e1x1MDREOVx1MDMwOH17XHUwNEU4XHUwMzA4fXtcdTA0RTlcdTAzMDh9XSIsIAorICAgICAgICAgICAgICAgICAgICAiW3tcdTA0MzBcdTAzMDZ9e1x1MDQxMFx1MDMwNn17XHUwNDMwXHUwMzA4fXtcdTA0MTBcdTAzMDZ9e1x1MDQzM1x1MDMwMX17XHUwNDEzXHUwMzAxfV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTA0NzRcdTA0NzVcdTA0ZDhcdTA0ZDlcdTA0ZThcdTA0ZTldIiwKKyAgICAgICAgICAgICAgICAgICAgIlthQWJCXHUwNDMwXHUwNDEwXHUwNDMzXHUwNDEzXSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgInVrIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7XHUwNDc0XHUwMzBGfXtcdTA0NzVcdTAzMEZ9e1x1MDREOFx1MDMwOH17XHUwNEQ5XHUwMzA4fXtcdTA0RThcdTAzMDh9e1x1MDRFOVx1MDMwOH0iKyAKKyAgICAgICAgICAgICAgICAgICAgIntcdTA0MzBcdTAzMDZ9e1x1MDQxMFx1MDMwNn17XHUwNDMwXHUwMzA4fXtcdTA0MTBcdTAzMDZ9e1x1MDQzM1x1MDMwMX17XHUwNDEzXHUwMzAxfV0iLAorICAgICAgICAgICAgICAgICAgICAiW10iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTA0NzRcdTA0NzVcdTA0RDhcdTA0RDlcdTA0RThcdTA0RTlcdTA0MzBcdTA0MTBcdTA0MzNcdTA0MTNdIiwKKyAgICAgICAgICAgICAgICAgICAgIlthQWJCeHZdIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgInNoIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7Q1x1MDMwMX17Q1x1MDMwQ317Q1x1MDM0MX17RFpcdTAzMEN9e0R6XHUwMzBDfXtEXHUwMTdEfXtEXHUwMTdFfXtsan17bmp9XSIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MzA5ZFx1MzA5OX17XHUzMGZkXHUzMDk5fV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltubGNkek5MQ0RaXSIsCisgICAgICAgICAgICAgICAgICAgICJbamFidl0iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICJqYSIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MzA1M1x1MzA5OVx1MzA5RH17XHUzMDUzXHUzMDk5XHUzMDlEXHUzMDk5fXtcdTMwNTNcdTMwOTlcdTMwOUV9e1x1MzA1M1x1MzA5OVx1MzBGQ317XHUzMDUzXHUzMDlEfXtcdTMwNTNcdTMwOURcdTMwOTl9e1x1MzA1M1x1MzA5RX17XHUzMDUzXHUzMEZDfXtcdTMwQjNcdTMwOTlcdTMwRkN9e1x1MzBCM1x1MzA5OVx1MzBGRH17XHUzMEIzXHUzMDk5XHUzMEZEXHUzMDk5fXtcdTMwQjNcdTMwOTlcdTMwRkV9e1x1MzBCM1x1MzBGQ317XHUzMEIzXHUzMEZEfXtcdTMwQjNcdTMwRkRcdTMwOTl9e1x1MzBCM1x1MzBGRX1dIiwKKyAgICAgICAgICAgICAgICAgICAgIlt7XHUzMEZEXHUzMDk5fXtcdTMwOURcdTMwOTl9e1x1MzA1M1x1MzA5OX17XHUzMEIzXHUzMDk5fXtsan17bmp9XSIsCisgICAgICAgICAgICAgICAgICAgICJbXHUzMEZFXHUwMGU2XSIsCisgICAgICAgICAgICAgICAgICAgICJbYV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MzA5OV0iLAorICAgICAgICAgICAgICAgICAgICAiW10iCisgICAgICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGxvY2FsZTogIisgdGVzdHNbaV1bMF0pOworICAgICAgICAgICAgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSh0ZXN0c1tpXVswXSkpOworICAgICAgICAgICAgY29sbC5nZXRDb250cmFjdGlvbnNBbmRFeHBhbnNpb25zKGNvbnRzLCBleHAsIHRydWUpOworICAgICAgICAgICAgbG9nbG4oIkNvbnRyYWN0aW9ucyAiK2NvbnRzLnNpemUoKSsiOlxuIitjb250cy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgZG9TZXRzVGVzdChjb250cywgc2V0LCB0ZXN0c1tpXVsxXSwgdGVzdHNbaV1bMl0pOworICAgICAgICAgICAgbG9nbG4oIkV4cGFuc2lvbnMgIitleHAuc2l6ZSgpKyI6XG4iK2V4cC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgZG9TZXRzVGVzdChleHAsIHNldCwgdGVzdHNbaV1bM10sIHRlc3RzW2ldWzRdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm8gdW5zYWZlIHNldCBpbiBJQ1U0SgorICAgICAgICAgICAgLy9ub0NvbnRzID0gdWNvbF9nZXRVbnNhZmVTZXQoY29sbCwgY29udHMsICZzdGF0dXMpOworICAgICAgICAgICAgLy9kb1NldHNUZXN0KGNvbnRzLCBzZXQsIHRlc3RzW2ldWzVdLCB0ZXN0c1tpXVs2XSk7CisgICAgICAgICAgICAvL2xvZ192ZXJib3NlKCJVbnNhZmVzICIrY29udHMuc2l6ZSgpKyI6XG4iK2NvbnRzLnRvUGF0dGVybih0cnVlKSsiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgYmlnb25lID0gIk9uZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxpdHRsZW9uZSA9ICJvbmUiOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpIHsKKyAgICAgICAgbG9nbG4oIlxuaW5pdCBjMCIpOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjMC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGR1bXAoImMwIiwgYzApOworCisgICAgICAgIGxvZ2xuKCJcbmluaXQgYzEiKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzEgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYzEuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjMS5zZXRVcHBlckNhc2VGaXJzdCghYzEuaXNVcHBlckNhc2VGaXJzdCgpKTsKKyAgICAgICAgZHVtcCgiYzAiLCBjMCk7CisgICAgICAgIGR1bXAoImMxIiwgYzEpOworICAgICAgICB0cnl7CisgICAgICAgICAgICBsb2dsbigiXG5pbml0IGMyIik7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMiA9IChSdWxlQmFzZWRDb2xsYXRvciljMS5jbG9uZSgpOworICAgICAgICAgICAgYzIuc2V0VXBwZXJDYXNlRmlyc3QoIWMyLmlzVXBwZXJDYXNlRmlyc3QoKSk7CisgICAgICAgICAgICBkdW1wKCJjMCIsIGMwKTsKKyAgICAgICAgICAgIGR1bXAoImMxIiwgYzEpOworICAgICAgICAgICAgZHVtcCgiYzIiLCBjMik7CisgICAgICAgICAgICBpZihjMS5lcXVhbHMoYzIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGhlIGNsb25lZCBvYmplY3RzIHJlZmVyIHRvIHNhbWUgZGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjbG9uZSB0aGUgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkdW1wKFN0cmluZyBtc2csIFJ1bGVCYXNlZENvbGxhdG9yIGMpIHsKKyAgICAgICAgbG9nbG4obXNnICsgIiAiICsgYy5jb21wYXJlKGJpZ29uZSwgbGl0dGxlb25lKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHM6ICIgKyBjLmdldFN0cmVuZ3RoKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB1OiAiICsgYy5pc1VwcGVyQ2FzZUZpcnN0KCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DaGluZXNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkNoaW5lc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY3YmQxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DaGluZXNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblR1cmtpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90cmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQ2hpbmVzZVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uQ2hpbmVzZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25DaGluZXNlVGVzdCgpIAorICAgIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBpbllpbigpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHNlcVtdIAorICAgICAgICAgICAgPSB7Ilx1OTYzZiIsICJcdTU1NGEiLCAiXHU1NGNlIiwgIlx1NjM3MSIsICJcdTcyMzEiLCAiXHU5Zjk4IiwKKyAgICAgICAgICAgICAgICJcdTRlNWMiLCAiXHU4YmFhIiwgIlx1NGU0MiIsICJcdTUzYzgifTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICJQSU5ZSU4iKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiB6aF9fUElOWUlOIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VxLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGxhdG9yLCBzZXFbaV0sIHNlcVtpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY2YTAxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DdXJyZW5jeVRlc3QuamF2YQpAQCAtMCwwICsxLDE4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkN1cnJlbmN5VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvY3VycmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uQ3VycmVuY3lUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uQ3VycmVuY3lUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3koKSB7CisgICAgICAgIC8vIEFsbCB0aGUgY3VycmVuY3kgc3ltYm9scywgaW4gY29sbGF0aW9uIG9yZGVyCisgICAgICAgIGNoYXJbXVtdIGN1cnJlbmN5ID0geworICAgICAgICAgICAgeyAweDAwQTQgfSwgLyowMEE0OyBMOyBbMTQgMzYsIDAzLCAwM10gICAgIyBbMDgyQi4wMDIwLjAwMDJdICMgQ1VSUkVOQ1kgU0lHTiovCisgICAgICAgICAgICB7IDB4MDBBMiB9LCAvKjAwQTI7IEw7IFsxNCAzOCwgMDMsIDAzXSAgICAjIFswODJDLjAwMjAuMDAwMl0gIyBDRU5UIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTAgfSwgLypGRkUwOyBMOyBbMTQgMzgsIDAzLCAwNV0gICAgIyBbMDgyQy4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIENFTlQgU0lHTiovCisgICAgICAgICAgICB7IDB4MDAyNCB9LCAvKjAwMjQ7IEw7IFsxNCAzQSwgMDMsIDAzXSAgICAjIFswODJELjAwMjAuMDAwMl0gIyBET0xMQVIgU0lHTiovCisgICAgICAgICAgICB7IDB4RkYwNCB9LCAvKkZGMDQ7IEw7IFsxNCAzQSwgMDMsIDA1XSAgICAjIFswODJELjAwMjAuMDAwM10gIyBGVUxMV0lEVEggRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweEZFNjkgfSwgLypGRTY5OyBMOyBbMTQgM0EsIDAzLCAxRF0gICAgIyBbMDgyRC4wMDIwLjAwMEZdICMgU01BTEwgRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTMgfSwgLyowMEEzOyBMOyBbMTQgM0MsIDAzLCAwM10gICAgIyBbMDgyRS4wMDIwLjAwMDJdICMgUE9VTkQgU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFMSB9LCAvKkZGRTE7IEw7IFsxNCAzQywgMDMsIDA1XSAgICAjIFswODJFLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggUE9VTkQgU0lHTiovCisgICAgICAgICAgICB7IDB4MDBBNSB9LCAvKjAwQTU7IEw7IFsxNCAzRSwgMDMsIDAzXSAgICAjIFswODJGLjAwMjAuMDAwMl0gIyBZRU4gU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFNSB9LCAvKkZGRTU7IEw7IFsxNCAzRSwgMDMsIDA1XSAgICAjIFswODJGLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggWUVOIFNJR04qLworICAgICAgICAgICAgeyAweDA5RjIgfSwgLyowOUYyOyBMOyBbMTQgNDAsIDAzLCAwM10gICAgIyBbMDgzMC4wMDIwLjAwMDJdICMgQkVOR0FMSSBSVVBFRSBNQVJLKi8KKyAgICAgICAgICAgIHsgMHgwOUYzIH0sIC8qMDlGMzsgTDsgWzE0IDQyLCAwMywgMDNdICAgICMgWzA4MzEuMDAyMC4wMDAyXSAjIEJFTkdBTEkgUlVQRUUgU0lHTiovCisgICAgICAgICAgICB7IDB4MEUzRiB9LCAvKjBFM0Y7IEw7IFsxNCA0NCwgMDMsIDAzXSAgICAjIFswODMyLjAwMjAuMDAwMl0gIyBUSEFJIENVUlJFTkNZIFNZTUJPTCBCQUhUKi8KKyAgICAgICAgICAgIHsgMHgxN0RCIH0sIC8qMTdEQjsgTDsgWzE0IDQ2LCAwMywgMDNdICAgICMgWzA4MzMuMDAyMC4wMDAyXSAjIEtITUVSIENVUlJFTkNZIFNZTUJPTCBSSUVMKi8KKyAgICAgICAgICAgIHsgMHgyMEEwIH0sIC8qMjBBMDsgTDsgWzE0IDQ4LCAwMywgMDNdICAgICMgWzA4MzQuMDAyMC4wMDAyXSAjIEVVUk8tQ1VSUkVOQ1kgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBMSB9LCAvKjIwQTE7IEw7IFsxNCA0QSwgMDMsIDAzXSAgICAjIFswODM1LjAwMjAuMDAwMl0gIyBDT0xPTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEEyIH0sIC8qMjBBMjsgTDsgWzE0IDRDLCAwMywgMDNdICAgICMgWzA4MzYuMDAyMC4wMDAyXSAjIENSVVpFSVJPIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTMgfSwgLyoyMEEzOyBMOyBbMTQgNEUsIDAzLCAwM10gICAgIyBbMDgzNy4wMDIwLjAwMDJdICMgRlJFTkNIIEZSQU5DIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTQgfSwgLyoyMEE0OyBMOyBbMTQgNTAsIDAzLCAwM10gICAgIyBbMDgzOC4wMDIwLjAwMDJdICMgTElSQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE1IH0sIC8qMjBBNTsgTDsgWzE0IDUyLCAwMywgMDNdICAgICMgWzA4MzkuMDAyMC4wMDAyXSAjIE1JTEwgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNiB9LCAvKjIwQTY7IEw7IFsxNCA1NCwgMDMsIDAzXSAgICAjIFswODNBLjAwMjAuMDAwMl0gIyBOQUlSQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE3IH0sIC8qMjBBNzsgTDsgWzE0IDU2LCAwMywgMDNdICAgICMgWzA4M0IuMDAyMC4wMDAyXSAjIFBFU0VUQSBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE5IH0sIC8qMjBBOTsgTDsgWzE0IDU4LCAwMywgMDNdICAgICMgWzA4M0MuMDAyMC4wMDAyXSAjIFdPTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRkU2IH0sIC8qRkZFNjsgTDsgWzE0IDU4LCAwMywgMDVdICAgICMgWzA4M0MuMDAyMC4wMDAzXSAjIEZVTExXSURUSCBXT04gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBQSB9LCAvKjIwQUE7IEw7IFsxNCA1QSwgMDMsIDAzXSAgICAjIFswODNELjAwMjAuMDAwMl0gIyBORVcgU0hFUUVMIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUIgfSwgLyoyMEFCOyBMOyBbMTQgNUMsIDAzLCAwM10gICAgIyBbMDgzRS4wMDIwLjAwMDJdICMgRE9ORyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEFDIH0sIC8qMjBBQzsgTDsgWzE0IDVFLCAwMywgMDNdICAgICMgWzA4M0YuMDAyMC4wMDAyXSAjIEVVUk8gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRCB9LCAvKjIwQUQ7IEw7IFsxNCA2MCwgMDMsIDAzXSAgICAjIFswODQwLjAwMjAuMDAwMl0gIyBLSVAgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRSB9LCAvKjIwQUU7IEw7IFsxNCA2MiwgMDMsIDAzXSAgICAjIFswODQxLjAwMjAuMDAwMl0gIyBUVUdSSUsgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBRiB9IC8qMjBBRjsgTDsgWzE0IDY0LCAwMywgMDNdICAgICMgWzA4NDIuMDAyMC4wMDAyXSAjIERSQUNITUEgU0lHTiovCisgICAgICAgIH07CisgICAgCisgICAgICAgIGludCBpLCBqOworICAgICAgICBpbnQgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXBhcmUgZWFjaCBjdXJyZW5jeSBzeW1ib2wgYWdhaW5zdCBhbGwgdGhlCisgICAgICAgIC8vIGN1cnJlbmN5IHN5bWJvbHMsIGluY2x1ZGluZyBpdHNlbGYKKyAgICAgICAgU3RyaW5nIHNvdXJjZTsKKyAgICAgICAgU3RyaW5nIHRhcmdldDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdXJyZW5jeS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGN1cnJlbmN5Lmxlbmd0aDsgaiArPSAxKSB7CisgICAgICAgICAgICAgICAgc291cmNlID0gbmV3IFN0cmluZyhjdXJyZW5jeVtpXSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3IFN0cmluZyhjdXJyZW5jeVtqXSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA8IGopIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBpID09IGopIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSA9IG51bGw7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzb3VyY2VLZXkgPSBjLmdldENvbGxhdGlvbktleShzb3VyY2UpOworCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHRhcmdldEtleSA9IG51bGw7CisgICAgICAgICAgICAgICAgdGFyZ2V0S2V5ID0gYy5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGdldCBjb2xsYXRpb25LZXkgZm9yIHNvdXJjZSIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQga2V5UmVzdWx0ID0gc291cmNlS2V5LmNvbXBhcmVUbyh0YXJnZXRLZXkpOworCisgICAgICAgICAgICAgICAgcmVwb3J0Q1Jlc3VsdCggc291cmNlLCB0YXJnZXQsIHNvdXJjZUtleSwgdGFyZ2V0S2V5LCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIGV4cGVjdGVkUmVzdWx0ICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZTY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRHVtbXlUZXN0LmphdmEKQEAgLTAsMCArMSw1MTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25EdW1teVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2FsbGNvbGwuY3BwCisgKiAgICAgICAgICAgICAgJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9jaW50bHRzdC9jYWxsY29sbC5jCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25EdW1teVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25EdW1teVRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25EdW1teVRlc3QoKS5UZXN0VmFyaWFibGVUb3AoKTsKKyAgICB9CisgICAgCisgICAgLy90ZXN0U291cmNlQ2FzZXNbXVtdIGFuZCB0ZXN0VGFyZ2V0Q2FzZXNbXVtdLCB0ZXN0Q2FzZXNbXVtdIGFyZSBwb3J0ZWQgZnJvbSB0aGUgZmlsZSBjYWxsY29sbC5jIGluIGljdTRjCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg2MSwgMHg2MiwgMHgyNywgMHg2M30sCisgICAgICAgIHsweDYzLCAweDZmLCAweDJkLCAweDZmLCAweDcwfSwKKyAgICAgICAgezB4NjEsIDB4NjJ9LAorICAgICAgICB7MHg2MSwgMHg2ZCwgMHg3MCwgMHg2NSwgMHg3MiwgMHg3MywgMHg2MSwgMHg2NH0sCisgICAgICAgIHsweDYxLCAweDZjLCAweDZjfSwKKyAgICAgICAgezB4NjYsIDB4NmYsIDB4NzUsIDB4NzJ9LAorICAgICAgICB7MHg2NiwgMHg2OSwgMHg3NiwgMHg2NX0sCisgICAgICAgIHsweDMxfSwKKyAgICAgICAgezB4MzF9LAorICAgICAgICB7MHgzMX0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIHsweDMyfSwKKyAgICAgICAgezB4MzJ9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4M2MsIDB4NjJ9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwgIC8vICBzaW1wbGUgdGVzdCAKKyAgICAgICAgezB4NzAsIDB4MDBFQSwgMHg2MywgMHg2OCwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDAwRTYsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sICAvLyAgcHJpbWFyeSB0ZXN0IAorICAgICAgICB7MHg2MiwgMHg2YywgMHg2MSwgMHg2MywgMHg2Yn0sCisgICAgICAgIHsweDY2LCAweDZmLCAweDc1LCAweDcyfSwKKyAgICAgICAgezB4NjYsIDB4NjksIDB4NzYsIDB4NjV9LAorICAgICAgICB7MHgzMX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2MywgMHg0OH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NDgsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjUsIDB4MzB9LAorICAgICAgICB7MHgzMSwgMHgzMH0sCisgICAgICAgIHsweDcwLCAweDAwRUEsMHgzMH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzNyAgICAgCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Mjd9LAorICAgICAgICB7MHg0MywgMHg0ZiwgMHg0ZiwgMHg1MH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4MjZ9LAorICAgICAgICB7MHgyNn0sCisgICAgICAgIHsweDM0fSwKKyAgICAgICAgezB4MzV9LAorICAgICAgICB7MHg2ZiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDZlLCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NzAsIDB4NmUsIDB4NjV9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIHsweDc0LCAweDc3LCAweDZmfSwKKyAgICAgICAgezB4NzUsIDB4NzcsIDB4NmZ9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDNkLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgIC8vICBzaW1wbGUgdGVzdCAKKyAgICAgICAgezB4NzAsIDB4MDBFOSwgMHg2MywgMHg2OCwgMHgwMEU5fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MiwgMHg0M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAyMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Njh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2NH0sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHgwMEM2LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LCAgLy8gIHByaW1hcnkgdGVzdCAKKyAgICAgICAgezB4NjIsIDB4NmMsIDB4NjEsIDB4NjMsIDB4NmIsIDB4MmQsIDB4NjIsIDB4NjksIDB4NzIsIDB4NjR9LAorICAgICAgICB7MHgzNH0sCisgICAgICAgIHsweDM1fSwKKyAgICAgICAgezB4NmYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2MywgMHg2OH0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDY0fSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDM0IAorICAgICAgICB7MHg2MSwgMHg2MywgMHg2NSwgMHgzMH0sCisgICAgICAgIHsweDMxLCAweDMwfSwKKyAgICAgICAgezB4NzAsIDB4MDBFQiwweDMwfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDM3IAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdENhc2VzID0geworICAgICAgICB7MHg2MX0sCisgICAgICAgIHsweDQxfSwKKyAgICAgICAgezB4MDBlNH0sCisgICAgICAgIHsweDAwYzR9LAorICAgICAgICB7MHg2MSwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDQ1fSwKKyAgICAgICAgezB4NDEsIDB4NjV9LAorICAgICAgICB7MHg0MSwgMHg0NX0sCisgICAgICAgIHsweDAwZTZ9LAorICAgICAgICB7MHgwMGM2fSwKKyAgICAgICAgezB4NjJ9LAorICAgICAgICB7MHg2M30sCisgICAgICAgIHsweDdhfQorICAgIH07CisgICAgCisgICAgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAvL0NvbGxhdG9yOjpHUkVBVEVSLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTAgCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgIC8vICB0ZXN0IHByaW1hcnkgPiAxNyAKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgLy8gIHRlc3Qgc2Vjb25kYXJ5ID4gMjYgCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDMwIAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDM0IAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAtMSAKKyAgICB9OworICAgIAorICAgIGZpbmFsIGludCBNQVhfVE9LRU5fTEVOID0gMTY7CisgICAgCisgICAgcHVibGljIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uOworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25EdW1teVRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgcnVsZXNldCA9ICImIEMgPCBjaCwgY0gsIENoLCBDSCAmIEZpdmUsIDUgJiBGb3VyLCA0ICYgb25lLCAxICYgQW1wZXJzYW5kOyAnJicgJiBUd28sIDIgIjsKKyAgICAgICAgLy8gU3RyaW5nIHJ1bGVzZXQgPSAiJiBGb3VyLCA0IjsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBudWxsOworICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggdGVydGlhcnkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTcgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgIC8vIHByb2JsZW0gaW4gc3RyY29sbGluYyBmb3IgdW5maW5zaGVkIGNvbnRyYWN0aW9ucyAKKyAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE3OyBpIDwgMjYgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy9wZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZm9yIChpID0gMjY7IGkgPCAzNDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHRlc3RDYXNlcy5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW2ldLCB0ZXN0Q2FzZXNbal0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJZGVudGljYWwoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBmb3IgKGk9IDM0OyBpPDM3OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTgxKCkgeworICAgICAgICBTdHJpbmcgc291cmNlID0gIlRISVNJU0FURVNULiI7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiVGhpc2lzYXRlc3QuIjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgOiBlbl9VU1xuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgLy8gcmVzdWx0IGlzIDEsIHNlY29uZGFyeSBkaWZmZXJlbmNlcyBvbmx5IGZvciBpZ25vcmFibGUgc3BhY2UgY2hhcmFjdGVycworICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBvbmx5IHNlY29uZGFyeSBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUbyBjb21wYXJlIHRoZW0gd2l0aCBqdXN0IHByaW1hcnkgZGlmZmVyZW5jZXMgCisgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIC8vIHJlc3VsdCBpcyAwIAorICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBubyBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IAorICAgICAgICAgIAorICAgICAgICAvLyBOb3csIGRvIHRoZSBzYW1lIGNvbXBhcmlzb24gd2l0aCBrZXlzIAorICAgICAgICBDb2xsYXRpb25LZXkgc291cmNlS2V5T3V0LCB0YXJnZXRLZXlPdXQ7CisgICAgICAgIHNvdXJjZUtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIHRhcmdldEtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIHJlc3VsdCA9IHNvdXJjZUtleU91dC5jb21wYXJlVG8odGFyZ2V0S2V5T3V0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHR3byBzdHJpbmdzIHdpdGggc29ydCBrZXlzIGluIEMgZmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0U3Vycm9nYXRlcygpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RzIHN1cnJvZ2F0ZSBzdXBwb3J0LgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cnJvZ2F0ZXMoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICImejwnXHVkODAwXHVkYzAwJzwnXHVkODAwXHVkYzBhXHUwMzA4JzxBIjsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVtdID0geyJ6IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MDBcdURDMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwYVx1MDMwOCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAyIiAgICAKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0YXJnZXRbXSA9IHsiXHVEODAwXHVEQzAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMGFcdTAzMDgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMyIgICAgCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIHRoaXMgdGVzdCBpcyB0byB2ZXJpZnkgdGhlIHN1cHBsZW1lbnRhcnkgc29ydCBrZXkgb3JkZXIgaW4gdGhlIGVuZ2xpc2ggCisgICAgICAgIC8vIGNvbGxhdG9yCisgICAgICAgIENvbGxhdG9yIGVuQ29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW5Db2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZhaWxlZCB0byBjcmVhdGUgdGhlIGNvbGxhdG9yIGZvciBFTkdMSVNIIik7CisgICAgICAgICAgICByZXR1cm47ICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIC8vIGxvZ2xuKCJzdGFydCBvZiBlbmdsaXNoIGNvbGxhdGlvbiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdGVzdFxuIik7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDIpIHsKKyAgICAgICAgICAgIGRvVGVzdChlbkNvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgZG9UZXN0KGVuQ29sbGF0aW9uLCBzb3VyY2VbY291bnRdLCB0YXJnZXRbY291bnRdLCAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBsb2dsbigic3RhcnQgb2YgdGFpbG9yZWQgY29sbGF0aW9uIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0ZXN0XG4iKTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBDb2xsYXRvciBuZXdDb2xsYXRpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXdDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgcnVsZXMiKTsKKyAgICAgICAgICAgIHJldHVybjsgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RzIGdldHRpbmcgY29sbGF0aW9uIGVsZW1lbnRzIGZvciBzdXJyb2dhdGVzIGZvciB0YWlsb3JlZCBydWxlcyAKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCkgeworICAgICAgICAgICAgZG9UZXN0KG5ld0NvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdGVzdHMgdGhhdCBcdUQ4MDFcdURDMDEgc3RpbGwgaGFzIHRoZSBzYW1lIHZhbHVlLCBub3QgY2hhbmdlZCAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGVuS2V5ID0gZW5Db2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIENvbGxhdGlvbktleSBuZXdLZXkgPSBuZXdDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBlbktleS5jb21wYXJlVG8obmV3S2V5KTsKKyAgICAgICAgaWYoa2V5UmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgOiBub24tdGFpbG9yZWQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL1Rlc3RWYXJpYWJsZVRvcCgpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAvKioKKyAgICAqIFRlc3RzIHRoZSBbdmFyaWFibGUgdG9wXSB0YWcgaW4gcnVsZSBzeW50YXguIFNpbmNlIHRoZSBkZWZhdWx0IFthbHRlcm5hdGVdCisgICAgKiB0YWcgaGFzIHRoZSB2YWx1ZSBzaGlmdGVkLCBhbnkgY29kZXBvaW50cyBiZWZvcmUgW3ZhcmlhYmxlIHRvcF0gc2hvdWxkIGdpdmUKKyAgICAqIGEgcHJpbWFyeSBjZSBvZiAwLgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlVG9wKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICImeiA9IFt2YXJpYWJsZSB0b3BdIjsKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbDsKKyAgICAgICAgQ29sbGF0b3IgIGVuQ29sbDsKKyAgICAgICAgY2hhcltdIHNvdXJjZSA9IG5ldyBjaGFyWzFdOworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgZXhwZWN0ZWRbXSA9IHswfTsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGVuQ29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIEVOR0xJU0giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBydWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisgICAgICAgIGVuQ29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbXlDb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcillbkNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGlmKCgoUnVsZUJhc2VkQ29sbGF0b3IpZW5Db2xsKS5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQUxURVJOQVRFX0hBTkRMSU5HIHZhbHVlIGNhbiBub3QgYmUgc2V0IHRvIFNISUZURURcbiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzcGFjZSBpcyBzdXBwb3NlZCB0byBiZSBhIHZhcmlhYmxlIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gZW5Db2xsLmdldENvbGxhdGlvbktleSgiICIpOyAgIAorICAgICAgICBieXRlW10gcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7IAorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYocmVzdWx0W2ldIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgIGJyZWFrOyAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNoID0gJ2EnOworICAgICAgICB3aGlsZSAoY2ggPCAneicpIHsKKyAgICAgICAgICAgIHNvdXJjZVswXSA9IGNoOworICAgICAgICAgICAga2V5ID0gbXlDb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihyZXN1bHRbaV0hPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoICsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjE0MDEoKSB7CisgICAgICAgIENvbGxhdG9yICAgICBteUNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgY2hhcltdIE5GRF9VbnNhZmVTdGFydENoYXJzID0geworICAgICAgICAgICAgMHgwZjczLCAgICAgICAgICAvLyBUaWJldGFuIFZvd2VsIFNpZ24gSUkgCisgICAgICAgICAgICAweDBmNzUsICAgICAgICAgIC8vIFRpYmV0YW4gVm93ZWwgU2lnbiBVVSAKKyAgICAgICAgICAgIDB4MGY4MSwgICAgICAgICAgLy8gVGliZXRhbiBWb3dlbCBTaWduIFJldmVyc2VkIElJIAorICAgICAgICAgICAgMAorICAgICAgICB9OworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgRU5HTElTSCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaT0wOyA7IGkrKykgeworICAgICAgICAgICAgLy8gR2V0IHRoZSBuZXh0IGZ1bm55IGNoYXJhY3RlciB0byBiZSB0ZXN0ZWQsIGFuZCBzZXQgdXAgdGhlCisgICAgICAgICAgICAvLyB0aHJlZSB0ZXN0IHN0cmluZ3MgWCwgWSwgWiwgY29uc2lzdGluZyBvZiBhbiBBLWdyYXZlICsgdGVzdCBjaGFyLAorICAgICAgICAgICAgLy8gaW4gb3JpZ2luYWwgZm9ybSwgTkZELCBhbmQgdGhlbiBORkMgZm9ybS4KKyAgICAgICAgICAgIGNoYXIgYyA9IE5GRF9VbnNhZmVTdGFydENoYXJzW2ldOworICAgICAgICAgICAgaWYgKGM9PTApIHticmVhazt9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB4ID0gIlx1MDBDMCIgKyBjOyAgICAgICAvLyBcdTAwQzAgaXMgQSBHcmF2ZQorICAgICAgICAgICAgU3RyaW5nIHk7CisgICAgICAgICAgICBTdHJpbmcgejsKKyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB5ID0gTm9ybWFsaXplci5kZWNvbXBvc2UoeCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHogPSBOb3JtYWxpemVyLmRlY29tcG9zZSh5LCB0cnVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gbm9ybWFsaXplIHRlc3Qgb2YgY2hhcmFjdGVyIiArIGMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgICAgIC8vIENvbGxhdGlvbiB0ZXN0LiAgQWxsIHRocmVlIHN0cmluZ3Mgc2hvdWxkIGJlIGVxdWFsLgorICAgICAgICAgICAgLy8gZG9UZXN0IGRvZXMgYm90aCBzdHJjb2xsIGFuZCBzb3J0IGtleXMsIHdpdGggcGFyYW1zIGluIGJvdGggb3JkZXJzLgorICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHksIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHosIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHksIHosIDApOyAKKyAgICAKKyAgICAgICAgICAgIC8vIFJ1biBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMgb3ZlciB0aGUgdGhyZWUgc3RyaW5ncy4gIFJlc3VsdHMgc2hvdWxkIGJlIHNhbWUgZm9yIGVhY2guCisgICAgICAgICAgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNlaVgsIGNlaVksIGNlaVo7CisgICAgICAgICAgICAgICAgaW50IGNlWCwgY2VZLCBjZVo7CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgY2VpWCA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRvcikuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHgpOworICAgICAgICAgICAgICAgICAgICBjZWlZID0gKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdG9yKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoeSk7CisgICAgICAgICAgICAgICAgICAgIGNlaVogPSAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0b3IpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih6KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvciAoaj0wOzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlWCA9IGNlaVgubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VZID0gY2VpWS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZVogPSBjZWlaLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQgZmFpbGVkIGZvciBpdGVyYXRpb24gIiArIGopOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYICE9IGNlWSB8fCBjZVkgIT0gY2VaKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHVjb2xfbmV4dCBmYWlsZWQgZm9yIGl0ZXJhdGlvbiAiICsgaik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIG1haW4gdGVzdCBtZXRob2QgY2FsbGVkIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocywKKyAgICAvLyB0ZXN0cyBjb21wYXJpc29uIG9mIGN1c3R1bSBjb2xsYXRpb24gd2l0aCBkaWZmZXJlbnQgc3RyZW5ndGhzCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChDb2xsYXRvciBjb2xsYXRpb24sIGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3QgbWV0aG9kIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aHMsCisgICAgLy8gdGVzdHMgY29tcGFyaXNvbiBvZiBjdXN0dW0gY29sbGF0aW9uIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocworICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgY29sbGF0aW9uLFN0cmluZyBzLCBTdHJpbmcgdCwgaW50IHJlc3VsdCkgeworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VmFyaWFudChDb2xsYXRvciBjb2xsYXRpb24sIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBjb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzcmNrZXkgLCB0Z3RrZXk7CisgICAgICAgIHNyY2tleSA9IGNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgdGd0a2V5ID0gY29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc3Jja2V5LmNvbXBhcmVUbyh0Z3RrZXkpOworICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5UmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBrZXkgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25FbmdsaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNzMyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDQyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkVuZ2xpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9lbmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25FbmdsaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25FbmdsaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNDggLyogJ0gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNkYgLyogJ28nICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0MyAvKiAnQycgKi99LCAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyRCAvKiAnLScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMEM0LCAweDAwNDIgLyogJ0InICovLCAweDAzMDgsIDB4MDA0MyAvKiAnQycgKi8sIDB4MDMwOH0sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAzMDgsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDA3MiAvKiAncicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDc0IC8qICd0JyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDZEIC8qICdtJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZFIC8qICduJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovfSwgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjIgLyogJ2InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwRTYsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDMwMiwgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRUEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEU2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwRTYsIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMEU5fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi99LAorICAgICAgICB7MHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZGIC8qICdvJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0MyAvKiAnQycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNzMgLyogJ3MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MiAvKiAncicgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNDIgLyogJ0InICovLCAweDAzMDgsIDB4MDA0MyAvKiAnQycgKi8sIDB4MDMwOH0sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAzMDgsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA3MiAvKiAncicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDMwMiwgMHgwMDZDIC8qICdsJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwRTEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMEUxLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDU0IC8qICdUJyAqLywgMHgwMDQzIC8qICdDJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDZEIC8qICdtJyAqLywgMHgwMDcwIC8qICdwJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDUwIC8qICdQJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZFIC8qICduJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA0MiAvKiAnQicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDI2IC8qICcmJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwQzQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDAyMyAvKiAnIycgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwM0QgLyogJz0nICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MyAvKiAnQycgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFRSwgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwQzYsIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEM2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRUEsIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi99CisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgLy8tMTpMRVNTOyAwOkVRVUFMOyAxOkdSRUFURVIKKyAgICAgICAgLTEsIAorICAgICAgICAtMSwgLypDb2xsYXRvcjo6R1JFQVRFUiwqLworICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAgKi8KKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMCAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAvKiBUZXN0IFRlcnRpYXJ5ICA+IDI2ICovCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMwICovCisgICAgICAgIDEsCisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8qIHRlc3QgaWRlbnRpY2FsID4gMzYgKi8KKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLyogdGVzdCBwcmltYXJ5ID4gMzggKi8KKyAgICAgICAgMCwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA0MCAqLworICAgICAgICAtMSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLyogdGVzdCBzZWNvbmRhcnkgPiA0MyAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAtMSwgCisgICAgICAgIC0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBbXVtdIHRlc3RCdWdzID0geworICAgICAgICB7MHg2MX0sCisgICAgICAgIHsweDQxfSwKKyAgICAgICAgezB4NjV9LAorICAgICAgICB7MHg0NX0sCisgICAgICAgIHsweDAwZTl9LAorICAgICAgICB7MHgwMGU4fSwKKyAgICAgICAgezB4MDBlYX0sCisgICAgICAgIHsweDAwZWJ9LAorICAgICAgICB7MHg2NSwgMHg2MX0sCisgICAgICAgIHsweDc4fQorICAgIH07CisKKyAgICAvLyAweDAzMDAgaXMgZ3JhdmUsIDB4MDMwMSBpcyBhY3V0ZQorICAgIC8vIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGlzIGFycmF5IG11c3QgYmUgZGlmZmVyZW50IHRoYW4gdGhlIG9yZGVyIGluIENvbGxhdGlvbkZyZW5jaFRlc3QKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QWN1dGUgPSB7CisgICAgICAgIHsweDY1LCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHgwMzAwLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHgwMzAwLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjUsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDAzMDEsIDB4NjUsIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDAzMDEsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0TW9yZSA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7IDB4MDBFNn0sCisgICAgICAgIHsgMHgwMEM2fSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2NiAvKiAnZicgKi99LAorICAgICAgICB7MHgwMDZGIC8qICdvJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsgMHgwMTUzfSwKKyAgICAgICAgeyAweDAxNTJ9LAorICAgICAgICB7MHgwMDZGIC8qICdvJyAqLywgMHgwMDY2IC8qICdmJyAqL30sCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRW5nbGlzaFRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm1zIHRlc3Qgd2l0aCBzdHJlbmd0aCBQUklNQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpID0gMzg7IGkgPCA0MyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfSAgCisgICAgfQorICAgIAorICAgIC8vcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggU0VDT05EQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGZvciAoaSA9IDQzOyBpIDwgNDkgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3QgYWN1dGUgYW5kIGdyYXZlIG9yZGVyaW5nIChjb21wYXJlIHRvIGZyZW5jaCBjb2xsYXRpb24pCisgICAgICAgIGludCBqOworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0QWN1dGUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0ZXN0QWN1dGUubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiaSA9ICIgKyBpICsgIjsgaiA9ICIgKyBqKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA8ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPT0gaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgLy8gKGkgPiAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0QWN1dGVbaV0sIHRlc3RBY3V0ZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgLy9mb3IgKGkgPSAwOyBpIDwgMzggOyBpKyspICAvL2F0dGVudGlvbjogdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggMzYsIDM3LgorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMzggOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0gCisKKyAgICAgICAgaW50IGogPSAwOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChqID0gaSsxOyBqIDwgMTA7IGorKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEJ1Z3NbaV0sIHRlc3RCdWdzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3QgbW9yZSBpbnRlcmVzdGluZyBjYXNlcworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0TW9yZS5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHRlc3RNb3JlLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpIDwgIGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gLTE7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaSA9PSBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDA7CisgICAgICAgICAgICAgICAgZWxzZSAvLyAoaSA+ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RNb3JlW2ldLCB0ZXN0TW9yZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBkZWZpbmVkIGJ5IHRoZSAiZW4iIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSAgIC8vTEVTUworICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAwKSAgIC8vRVFVQUwKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IDEpICAgLy9HUkVBVEVSCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworCisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZpbm5pc2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5ZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uRmlubmlzaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2ZpY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkZpbm5pc2hUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRmlubmlzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NzcsIDB4NjEsIDB4NzR9LAorICAgICAgICB7MHg3NiwgMHg2MSwgMHg3NH0sCisgICAgICAgIHsweDYxLCAweDAwRkMsIDB4NjIsIDB4NjUsIDB4NjMsIDB4NmJ9LAorICAgICAgICB7MHg0YywgMHgwMEU1LCAweDc2LCAweDY5fSwKKyAgICAgICAgezB4NzcsIDB4NjEsIDB4NzR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NzYsIDB4NjEsIDB4NzR9LAorICAgICAgICB7MHg3NywgMHg2MSwgMHg3OX0sCisgICAgICAgIHsweDYxLCAweDc4LCAweDYyLCAweDY1LCAweDYzLCAweDZifSwKKyAgICAgICAgezB4NGMsIDB4MDBFNCwgMHg3NywgMHg2NX0sCisgICAgICAgIHsweDc2LCAweDYxLCAweDc0fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8vIHRlc3QgcHJpbWFyeSA+IDQKKyAgICAgICAgMCwgLy9jb2xsYXRpb24gcnVsZXMgZm9yIGZpbm5pc2ggaGF2ZSBjaGFuZ2VkIQorICAgIH07CisKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRmlubmlzaFRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZmkiLCAiRkkiKSk7CisgICAgfQorICAgICAKKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3RzIHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IoaSA9IDQ7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7ICAgIAorICAgICAgICB9ICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgNDsgaSsrICkgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIHRoZSBmaW5pc2ggbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KKyAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRnJlbmNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZyZW5jaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWYzYWNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZyZW5jaFRlc3QuamF2YQpAQCAtMCwwICsxLDI3OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkZyZW5jaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2ZyY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25GcmVuY2hUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25GcmVuY2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDAwNjEvKidhJyovLCAweDAwNjIvKidiJyovLCAweDAwNjMvKidjJyovfSwKKyAgICAgICAgezB4MDA0My8qJ0MnKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA1NC8qJ1QnKi8sIDB4MDA0NS8qJ0UnKi99LAorICAgICAgICB7MHgwMDYzLyonYycqLywgMHgwMDZmLyonbycqLywgMHgwMDJkLyonLScqLywgMHgwMDZmLyonbycqLywgMHgwMDcwLyoncCcqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEVBLCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNzIvKidyJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDcyLyoncicqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRTksIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDQ4LyonSCcqLywgMHgwMDY1LyonZScqLywgMHgwMDZjLyonbCcqLywgMHgwMDZjLyonbCcqLywgMHgwMDZmLyonbycqL30sCisgICAgICAgIHsweDAxZjF9LAorICAgICAgICB7MHhmYjAwfSwKKyAgICAgICAgezB4MDFmYX0sCisgICAgICAgIHsweDAxMDF9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4MDA0MS8qJ0EnKi8sIDB4MDA0Mi8qJ0InKi8sIDB4MDA0My8qJ0MnKi99LAorICAgICAgICB7MHgwMDYzLyonYycqLywgMHgwMGY0LCAweDAwNzQvKid0JyovLCAweDAwNjUvKidlJyovfSwKKyAgICAgICAgezB4MDA0My8qJ0MnKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA0Zi8qJ08nKi8sIDB4MDA1MC8qJ1AnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEU5LCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMEU5fSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFQSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDZjLyonbCcqLywgMHgwMDZjLyonbCcqLywgMHgwMDRmLyonTycqL30sCisgICAgICAgIHsweDAxZWV9LAorICAgICAgICB7MHgyNWNhfSwKKyAgICAgICAgezB4MDBlMH0sCisgICAgICAgIHsweDAxZGZ9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgIC0xLCAvKkNvbGxhdG9yOjpHUkVBVEVSLCovCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMQorICAgIH07CisKKyAgICAvLyAweDAzMDAgaXMgZ3JhdmUsIDB4MDMwMSBpcyBhY3V0ZQorICAgIC8vIHRoZSBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGlzIGFycmF5IG11c3QgYmUgZGlmZmVyZW50IHRoYW4gdGhlIG9yZGVyIGluIENvbGxhdGlvbkVuZ2xpc2hUZXN0CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEFjdXRlID0geworICAgIC8qMDAqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqL30sCisgICAgLyowMSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDIqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDMqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjA0Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjA1Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sIAorICAgIC8qMDYqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDF9LAorICAgIC8qMDcqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowOCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowOSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxfSwKKyAgICAvKjBhKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBiKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGMqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBkKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGUqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBmKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjEyKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjEzKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTQqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTUqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxNiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTcqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxOCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RCdWdzID0geworICAgICAgICB7MHgwMDYxLyonYScqL30sCisgICAgICAgIHsweDAwNDEvKidBJyovfSwKKyAgICAgICAgezB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDQ1LyonRScqL30sCisgICAgICAgIHsweDAwZTl9LAorICAgICAgICB7MHgwMGU4fSwKKyAgICAgICAgezB4MDBlYX0sCisgICAgICAgIHsweDAwZWJ9LAorICAgICAgICB7MHgwMDY1LyonZScqLywgMHgwMDYxLyonYScqL30sCisgICAgICAgIHsweDAwNzgvKid4JyovfQorICAgIH07CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkZyZW5jaFRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICB9CisgICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdHMgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0cyB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKSB7CisgICAgICAgIC8vdGVzdCBhY3V0ZSBhbmQgZ3JhdmUgb3JkZXJpbmcKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBpbnQgajsKKyAgICAgICAgaW50IGV4cGVjdGVkOworCisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdEFjdXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdGVzdEFjdXRlLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCAgaikgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0QWN1dGVbaV0sIHRlc3RBY3V0ZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA5IDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IDEwOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEJ1Z3NbaV0sIHRlc3RCdWdzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRpbnVhdGlvblJlb3JkZXJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJjB4MmYwMCA8PCAweDJmMDEiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24odHJ1ZSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5MSAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJhXHUwMzI1XHUyZjAwXHUyZjAxYlx1MDMyNSIpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleTIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJhXHUwMzI1XHUyZjAxXHUyZjAxYlx1MDMyNSIpOworICAgICAgICAgICAgaWYgKGtleTEuY29tcGFyZVRvKGtleTIpID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY29tcGFyaW5nIGNvbnRpbnVhdGlvbiBzdHJpbmdzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdCBydWxlcyBzcGVjaWZpYyB0byB0aGUgZnJlbmNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30gClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkdlcm1hblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25HZXJtYW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYxNjcxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25HZXJtYW5UZXN0LmphdmEKQEAgLTAsMCArMSwyMjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25HZXJtYW5UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kZWNvbGwuY3BwCisgKiovCisgCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKKyBpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKKyBpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorIHB1YmxpYyBjbGFzcyBDb2xsYXRpb25HZXJtYW5UZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IENvbGxhdGlvbkdlcm1hblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NDcsIDB4NzIsIDB4MDBGNiwgMHgwMERGLCAweDY1fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1NCwgMHgwMEY2LCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NTQsIDB4MDBGNiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDU0LCAweDAwRjYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4MDBFNCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1MywgMHg3NCwgMHg3MiwgMHg2MSwgMHgwMERGLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4NjYsIDB4Njd9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4MDBERiwgMHg2NX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHg0NywgMHg3MiwgMHg2ZiwgMHg3MywgMHg3MywgMHg2OSwgMHg3MywgMHg3NH0sCisgICAgICAgIHsweDYxLCAweDAzMDgsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1NCwgMHg2ZiwgMHg2ZX0sCisgICAgICAgIHsweDU0LCAweDZmLCAweDY0fSwKKyAgICAgICAgezB4NTQsIDB4NmYsIDB4NjYsIDB4NzV9LAorICAgICAgICB7MHg0MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4MDMwOCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDY1LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4NzMsIDB4NzMsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHg2NiwgMHg2N30sCisgICAgICAgIHsweDYxLCAweDY1LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4NzMsIDB4NzMsIDB4NjV9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCByZXN1bHRzW11bXSA9CisgICAgeworICAgICAgICAvLyAgUHJpbWFyeSAgVGVydGlhcnkKKyAgICAgICAgeyAtMSwgICAgICAgIC0xIH0sCisgICAgICAgIHsgMCwgICAgICAgICAtMSB9LAorICAgICAgICB7IDEsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAxLCAgICAgICAgICAxIH0sCisgICAgICAgIHsgMSwgICAgICAgICAgMSB9LAorICAgICAgICB7IDAsICAgICAgICAgLTEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAwIH0sCisgICAgICAgIHsgLTEsICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAwIH0sCisgICAgICAgIHsgLTEsICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDEgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkdlcm1hblRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkdFUk1BTik7CisgICAgICAgIGlmKG15Q29sbGF0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgR0VSTUFOIGxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUlRJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCl7CisgICAgICAgIGlmKG15Q29sbGF0aW9uID09IG51bGwgKSB7CisgICAgICAgICAgICBlcnJsbigiZGVjb2xsOiBjYW5ub3Qgc3RhcnQgdGVzdCwgY29sbGF0b3IgaXMgbnVsbFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMiA7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldWzFdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICAvL1RoaXMgbWV0aG9kIGluIGljdTRjIGhhcyBubyBpbXBsZW1lbnRhdGlvbi4KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCl7CisgICAgfQorICAgIAorICAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBQUklNQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKXsKKyAgICAgICAgaWYobXlDb2xsYXRpb24gPT0gbnVsbCApIHsKKyAgICAgICAgICAgIGVycmxuKCJkZWNvbGw6IGNhbm5vdCBzdGFydCB0ZXN0LCBjb2xsYXRvciBpcyBudWxsXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXVswXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLy9tYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gZ2VybWEgbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KXsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgICAvL0xFU1MKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMCkgICAvL0VRVUFMCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSAgIC8vR1JFQVRFUgorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25JdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25JdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWQ1Y2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsNjQ0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uSXRlcmF0b3JUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9pdGVyY29sbC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvbkl0ZXJhdG9yVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBTdHJpbmcgdGVzdDEgPSAiV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXM/IjsKKyAgICBTdHJpbmcgdGVzdDIgPSAiaGFzIHRoZSBoaWdoZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyI7CisgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IENvbGxhdGlvbkl0ZXJhdG9yVGVzdCgpLlRlc3ROb3JtYWxpemVkVW5pY29kZUNoYXIoKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBAYnVnIDQxNTcyOTkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xlYXJCdWZmZXJzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiZhIDwgYiA8IGMgJiBhYiA9IGQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGRuJ3QgY3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJhYmNkIjsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkgPSBjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBpbnQgZTAgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZTAgPSBpLm5leHQoKTsgICAgLy8gc2F2ZSB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgzKTsgICAgICAgIC8vIGdvIHRvIHRoZSBleHBhbmRpbmcgY2hhcmFjdGVyCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpLnNldE9mZnNldCgzKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLm5leHQoKTsgICAgICAgICAgICAgICAgLy8gYnV0IG9ubHkgdXNlIHVwIGhhbGYgb2YgaXQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgwKTsgICAgICAgIC8vIGdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5zZXRPZmZzZXQoMCkgZmFpbGVkLiAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGUgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZSA9IGkubmV4dCgpOyAgICAvLyBhbmQgZ2V0IHRoaXMgb25lIGFnYWluCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5uZXh0KCkgZmFpbGVkLiAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGUgIT0gZTApIHsKKyAgICAgICAgICAgIGVycmxuKCJnb3QgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhlKSArICIsIGV4cGVjdGVkIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoZTApKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogQGJ1ZyA0MTA4NzYyCisgICAgICogVGVzdCBmb3IgZ2V0TWF4RXhwYW5zaW9uKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWF4RXhwYW5zaW9uKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBpbnQgdW5hc3NpZ25lZCA9IDB4RUZGRkQ7CisgICAgICAgIFN0cmluZyBydWxlID0gIiZhIDwgYWIgPCBjL2FiYSA8IGQgPCB6IDwgY2giOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IDA7CisgICAgICAgIFN0cmluZyBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKGNoIDwgMHhGRkZGKSB7CisgICAgICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICAgICAgY2ggKys7CisgICAgICAgICAgICBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgIGludCBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAKKyAgICAgICAgICAgIC8vIHRoYWkgbWFuYWdlbWVudCAKKyAgICAgICAgICAgIGlmIChvcmRlciA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB3aGlsZSAoaXRlci5wcmV2aW91cygpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24ob3JkZXIpIDwgY291bnQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgIiArIGNoICsgIiwgbWF4aW11bSBleHBhbnNpb24gY291bnQgPCAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0aW5nIGZvciBleGFjdCBtYXggZXhwYW5zaW9uIAorICAgICAgICBjaCA9IDA7CisgICAgICAgIHdoaWxlIChjaCA8IDB4NjEpIHsKKyAgICAgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgaW50IG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24ob3JkZXIpICE9IDEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjaCkKKyAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPT0gMSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggKys7CisgICAgICAgIH0KKworICAgICAgICBjaCA9IDB4NjM7CisgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIGludCB0ZW1wb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKHRlbXBvcmRlcikgIT0gMykgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG1heGltdW0gZXhwYW5zaW9uIGNvdW50ID09IDMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoID0gMHg2NDsKKyAgICAgICAgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSAxIik7CisgICAgICAgIH0KKworICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHVuYXNzaWduZWQpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSAyIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vIHRlc3RpbmcgamFtbworICAgICAgICBjaCA9IDB4MTE2NTsKKyAgICAgICAgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpID4gMykgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPCAzIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0aW5nIHNwZWNpYWwgamFtbyAmYTxcdTExNjUKKyAgICAgICAgcnVsZSA9ICJcdTAwMjZcdTAwNzFcdTAwM2NcdTExNjVcdTAwMmZcdTAwNzFcdTAwNzFcdTAwNzFcdTAwNzEiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgIAorICAgICAgICB0ZW1wb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKHRlbXBvcmRlcikgIT0gNikgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSA2Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgZ2V0T2Zmc2V0KCkgYW5kIHNldE9mZnNldCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE9mZnNldCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOyAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEVOR0xJU0ggbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIC8vIHRlc3RpbmcgYm91bmRhcmllcworICAgICAgICBpdGVyLnNldE9mZnNldCgwKTsKKyAgICAgICAgaWYgKGl0ZXIucHJldmlvdXMoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEFmdGVyIHNldHRpbmcgb2Zmc2V0IHRvIDAsIHdlIHNob3VsZCBiZSBhdCB0aGUgZW5kICIKKyAgICAgICAgICAgICAgICAgICsgIm9mIHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRPZmZzZXQodGVzdDEubGVuZ3RoKCkpOworICAgICAgICBpZiAoaXRlci5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBBZnRlciBzZXR0aW5nIG9mZnNldCB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHdlICIgCisgICAgICAgICAgICAgICAgICArICJzaG91bGQgYmUgYXQgdGhlIGVuZCBvZiB0aGUgZm9yd2FyZHMgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gUnVuIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGl0ZXJhdG9yLCB0aGVuIGdldCB0aGUgb2Zmc2V0CisgICAgICAgIGludFtdIG9yZGVycyA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBsb2dsbigib3JkZXJzLmxlbmd0aCA9ICIgKyBvcmRlcnMubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGludCBvZmZzZXQgPSBpdGVyLmdldE9mZnNldCgpOworICAgIAorICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3QxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9ICJvZmZzZXQgYXQgZW5kICE9IGxlbmd0aDogIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIiB2cyAiOworICAgICAgICAgICAgZXJybG4obXNnMSArIG9mZnNldCArIG1zZzIgKyB0ZXN0MS5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTm93IHNldCB0aGUgb2Zmc2V0IGJhY2sgdG8gdGhlIGJlZ2lubmluZyBhbmQgc2VlIGlmIGl0IHdvcmtzCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmlzdGluZSA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoMCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJzZXRPZmZzZXQgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIsIHByaXN0aW5lKTsKKyAgICAKKyAgICAgICAgLy8gc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uCisgICAgICAgIFN0cmluZyBjb250cmFjdGlvbiA9ICJjaGFuZ2UiOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0YWlsb3JlZCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0YWlsb3JlZCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJiBhIDwgY2giKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogaW4gY3JlYXRpb24gb2YgU3BhbmlzaCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIGl0ZXIgPSB0YWlsb3JlZC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoY29udHJhY3Rpb24pOworICAgICAgICBpbnQgb3JkZXJbXSA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCgxKTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBjaAorICAgICAgICBpbnQgb3JkZXIyW10gPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG9yZGVyLCBvcmRlcjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiBzaG91bGQgYmUgdGhlIHNhbWUgYXMgc2V0dGluZyBpdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRyYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY29udHJhY3Rpb24gPSAicGVhY2hlIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihjb250cmFjdGlvbik7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDMpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCg0KTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBjaAorICAgICAgICBvcmRlcjIgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG9yZGVyLCBvcmRlcjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiBzaG91bGQgYmUgdGhlIHNhbWUgYXMgc2V0dGluZyBpdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRyYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgIFN0cmluZyBzdXJyb2dhdGUgPSAiXHVkODAwXHVkYzAwc3RyIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdXJyb2dhdGUpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCgxKTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBzdXJyb2dhdGUKKyAgICAgICAgb3JkZXIyID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciIpOworICAgICAgICB9CisgICAgICAgIHN1cnJvZ2F0ZSA9ICJzaW1wbGVcdWQ4MDBcdWRjMDBzdHIiOworICAgICAgICBpdGVyID0gdGFpbG9yZWQuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN1cnJvZ2F0ZSk7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDYpOworICAgICAgICBvcmRlciA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCg3KTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBzdXJyb2dhdGUKKyAgICAgICAgb3JkZXIyID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciIpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE86IHRyeSBpdGVyYXRpbmcgaGFsZndheSB0aHJvdWdoIGEgbWVzc3kgc3RyaW5nLgorICAgIH0KKyAgICAKKyAgICAKKworICAgIHZvaWQgYXNzZXJ0RXF1YWwoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIpIHsKKyAgICAgICAgaW50IGMxLCBjMiwgY291bnQgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjMSA9IGkxLm5leHQoKTsKKyAgICAgICAgICAgIGMyID0gaTIubmV4dCgpOworICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgICAiICsgY291bnQgKyAiOiBzdHJlbmd0aCgweCIgKyAKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjMSkgKyAiKSAhPSBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMyKSArICIpIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9IHdoaWxlIChjMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaTEpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpMik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmV2aW91cygpCisgICAgICoKKyAgICAgKiBAYnVnIDQxMDg3NTggLSBNYWtlIHN1cmUgaXQgd29ya3Mgd2l0aCBjb250cmFjdGluZyBjaGFyYWN0ZXJzCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgCisgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCB3aXRoIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyIHNlcXVlbmNlCisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSxBIDwgYixCIDwgYyxDLCBkLEQgPCB6LFogPCBjaCxjSCxDaCxDSCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYSBjb250cmFjdGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjaGRjYmEiOworICAgICAgICBpdGVyID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgIAorICAgICAgICAvLyBUZXN0IHdpdGggYW4gZXhwYW5kaW5nIGNoYXJhY3RlciBzZXF1ZW5jZQorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmEgPCBiIDwgYy9hYmQgPCBkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlICkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYW4gZXhwYW5kaW5nIHNlcXVlbmNlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHNvdXJjZSA9ICJhYmNkIjsKKyAgICAgICAgaXRlciA9IGMyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gTm93IHRyeSBib3RoCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMzID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSA8IGIgPCBjL2FiYSA8IGQgPCB6IDwgY2giKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBjcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIGJvdGggYW4gZXhwYW5kaW5nIGFuZCBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjZGJjaGRjIjsKKyAgICAgICAgaXRlciA9IGMzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgc291cmNlPSAiXHUwZTQxXHUwZTAyXHUwZTQxXHUwZTAyXHUwZTI3YWJjIjsKKyAgICAgICAgQ29sbGF0b3IgYzQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzQgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIGEgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpYzQpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAKKyAgICAgICAgc291cmNlPSAiXHUwMDYxXHUzMENGXHUzMDk5XHUzMEZDIjsKKyAgICAgICAgQ29sbGF0b3IgYzUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzUgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJqYSIsICJKUCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIEphcGFuZXNlIGNvbGxhdG9yXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvciljNSkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICB9CisgICAgCisgICAgCisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3Igc2V0VGV4dCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNldFRleHQoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMSA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMiA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Mik7CisgICAgCisgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBzZWNvbmQgaXRlcmF0b3IganVzdCB0byBleGVyY2lzZSBpdAorICAgICAgICBpbnQgYyA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgaW50IGkgPSAwOworICAgIAorICAgICAgICB3aGlsZSAoICsraSA8IDEwICYmIGMgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjID0gaXRlcjIubmV4dCgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiaXRlcjIubmV4dCgpIHJldHVybmVkIGFuIGVycm9yLiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE5vdyBzZXQgaXQgdG8gcG9pbnQgdG8gdGhlIHNhbWUgc3RyaW5nIGFzIHRoZSBmaXJzdCBpdGVyYXRvcgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlcjIuc2V0VGV4dCh0ZXN0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpdGVyMi0+c2V0VGV4dCh0ZXN0MSkgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIxLCBpdGVyMik7CisgICAgICAgIAorICAgICAgICBpdGVyMS5yZXNldCgpOworICAgICAgICAvL25vdyB1c2UgdGhlIG92ZXJsb2FkZWQgc2V0VGV4dChDaHJhY3Rlckl0ZXJhdG9yJiwgVUVycm9yQ29kZSkgZnVuY3Rpb24gdG8gc2V0IHRoZSB0ZXh0CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNoYXJpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIyLnNldFRleHQoY2hhcml0ZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGl0ZXIyLT5zZXRUZXh0KGNoYXJpdGVyKHRlc3QxKSkgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIxLCBpdGVyMik7CisgICAgICAgIAorICAgICAgICBpdGVyMS5yZXNldCgpOworICAgICAgICAvL25vdyB1c2UgdGhlIG92ZXJsb2FkZWQgc2V0VGV4dChDaHJhY3Rlckl0ZXJhdG9yJiwgVUVycm9yQ29kZSkgZnVuY3Rpb24gdG8gc2V0IHRoZSB0ZXh0CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGVzdDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaXRlcjIuc2V0VGV4dCh1Y2hhcml0ZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGl0ZXIyLT5zZXRUZXh0KHVjaGFyaXRlcih0ZXN0MSkpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyMSwgaXRlcjIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZUNoYXIoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyOworICAgICAgICBjaGFyIGNvZGVwb2ludDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgiXHUwZTRkXHUwZTRlXHUwZTRmIik7CisgICAgICAgIC8vIHNvdXJjZS5hcHBlbmQoIlx1MDRlOFx1MDRlOSIpOworICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgLy8gQSBiYXNpYyB0ZXN0IHRvIHNlZSBpZiBpdCdzIHdvcmtpbmcgYXQgYWxsIAorICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgZm9yIChjb2RlcG9pbnQgPSAxOyBjb2RlcG9pbnQgPCAweEZGRkU7KSB7CisgICAgICAgICAgICBzb3VyY2UuZGVsZXRlKDAsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICB3aGlsZSAoY29kZXBvaW50ICUgMHhGRiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY29kZXBvaW50ICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qaWYgKGNvZGVwb2ludCA+PSAweDA0ZmMpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvZGVwb2ludCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gc291cmNlLnN1YnN0cmluZygyMzAsIDIzMik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoc3RyKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb2RlcG9pbnQgIiArIEludGVnZXIudG9IZXhTdHJpbmcoY29kZXBvaW50KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAibGVuZ3RoICIgKyBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGl0ZXIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbCAKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycyB3aXRoIG5vcm1hbGl6YXRpb24gb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6ZWRVbmljb2RlQ2hhcigpCisgICAgeworICAgICAgICAvLyB0aGFpIHNob3VsZCBoYXZlIG5vcm1hbGl6YXRpb24gb24KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGhfdGggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGhfdGggPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBzb3VyY2UuYXBwZW5kKCdcdUZERkEnKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICA9IHRoX3RoLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgICAgICBmb3IgKGNoYXIgY29kZXBvaW50ID0gMHgxOyBjb2RlcG9pbnQgPCAweGZmZmU7KSB7CisgICAgICAgICAgICBzb3VyY2UuZGVsZXRlKDAsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICB3aGlsZSAoY29kZXBvaW50ICUgMHhGRiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY29kZXBvaW50ICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyppZiAoKChpbnQpY29kZXBvaW50KSA+PSAweGZlMDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gc291cmNlLnN1YnN0cmluZygxODUsIDE5MCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoc3RyKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb2RlcG9pbnQgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvZGVwb2ludCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImxlbmd0aCAiICsgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpdGVyID0gdGhfdGguZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgaXRlciA9IHRoX3RoLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAvLyBBIGJhc2ljIHRlc3QgdG8gc2VlIGlmIGl0J3Mgd29ya2luZyBhdCBhbGwgCisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGRpc2NvbnRpZ3VvdXMgY29udHJhY3Rpb25zCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzY29udGlndW91cygpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzdHIgPSImeiA8IEFCIDwgWFx1MDMwMCA8IEFCQyA8IFhcdTAzMDBcdTAzMTUiOworICAgICAgICBTdHJpbmcgc3JjW10gPSB7IkFEQiIsICJBREJDIiwgIkFcdTAzMTVCIiwgIkFcdTAzMTVCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWERcdTAzMDAiLCAiWERcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwIiwgIlhcdTAzMTlcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMTRcdTAzMDAiLCAiWFx1MDMxNFx1MDMwMFx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgICAgICJBQkRDIiwgIkFCXHUwMzE1QyIsIlhcdTAzMDBEXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJYXHUwMzAwXHUwMzFBXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwRCIsICJYXHUwMzE5XHUwMzAwXHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE5XHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBcdTAzMUFcdTAzMTVEIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgdGd0W10gPSB7Ly8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJBIEQgQiIsICJBIEQgQkMiLCAiQSBcdTAzMTUgQiIsICJBIFx1MDMxNSBCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWCBEIFx1MDMwMCIsICJYIEQgXHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBibG9ja2luZyBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBcdTAzMTkiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlggXHUwMzE0IFx1MDMwMCIsICJYIFx1MDMxNCBcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAiQUIgREMiLCAiQUIgXHUwMzE1IEMiLCJYXHUwMzAwIEQgXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLCAiWFx1MDMwMCBcdTAzMUEgXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxOUQiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTlEIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE1IFx1MDMxOUQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxQVx1MDMxNUQiCisgICAgICAgIH07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcmVzdWx0aXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsgICAgCisgICAgICAgICAgICB3aGlsZSAoY291bnQgPCBzcmMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHNyY1tjb3VudF0pOworICAgICAgICAgICAgICAgIGludCBzID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA8IHRndFtjb3VudF0ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGUgPSB0Z3RbY291bnRdLmluZGV4T2YoJyAnLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlID0gdGd0W2NvdW50XS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0c3RyID0gdGd0W2NvdW50XS5zdWJzdHJpbmcocywgZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdGl0ZXIuc2V0VGV4dChyZXN1bHRzdHIpOworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaXNjb250aWd1b3MgY29udHJhY3Rpb24gdGVzdCBtaXNtYXRjaCBhdCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzID0gZSArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgcnVubmluZyBkaXNjb250aWd1b3VzIHRlc3RzICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0IHRoZSBpbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXphdGlvbigpCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJmEgPCBcdTAzMDBcdTAzMTUgPCBBXHUwMzAwXHUwMzE1IDwgXHUwMzE2XHUwMzE1QiA8IFx1MDMxNlx1MDMwMFx1MDMxNSI7CisgICAgICAgIFN0cmluZyB0ZXN0ZGF0YVtdID0geyJcdTFFRDkiLCAib1x1MDMyM1x1MDMwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMFx1MDMxNSIsICJcdTAzMTVcdTAzMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBXHUwMzAwXHUwMzE1QiIsICJBXHUwMzE1XHUwMzAwQiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzAwXHUwMzE1IiwgIlx1MDMxNVx1MDMwMFx1MDMxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMDBcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMDBcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzE1XHUwMzAwIiwgIkFcdTAzMTZcdTAzMTVcdTAzMDBCIn07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3IgdXNpbmcgcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigidGVzdGluZyIpOworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgdGVzdGRhdGEubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHRlc3RkYXRhW2NvdW50XSk7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkthbmFUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwODQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uS2FuYVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2phY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25LYW5hVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25LYW5hVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweGZmOUV9LAorICAgICAgICB7MHgzMDQyfSwKKyAgICAgICAgezB4MzBBMn0sCisgICAgICAgIHsweDMwNDIsIDB4MzA0Mn0sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQ30sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQywgMHgzMEM4fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweEZGOUZ9LAorICAgICAgICB7MHgzMEEyfSwKKyAgICAgICAgezB4MzA0MiwgMHgzMDQyfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEZDfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEZDLCAweDMwQzh9LAorICAgICAgICB7MHgzMDQyLCAweDMwNDIsIDB4MzA2OH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgMCwgICAvL0NvbGxhdG9yOjpMRVNTLCAvKiBLYXRha2FuYXMgYW5kIEhpcmFnYW5hcyBhcmUgZXF1YWwgb24gdGVydGlhcnkgbGV2ZWwoSUNVIDIuMCkqLworICAgICAgICAtMSwKKyAgICAgICAgMSwgLy8gQ29sbGF0b3I6OkxFU1MsIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC0xLAorICAgICAgICAtMSwgICAgLy9Db2xsYXRvcjo6R1JFQVRFUiAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLy8qICA2ICovCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RCYXNlQ2FzZXMgPSB7CisgICAgICAgIHsweDMwQUJ9LAorICAgICAgICB7MHgzMEFCLCAweDMwQUR9LAorICAgICAgICB7MHgzMEFEfSwKKyAgICAgICAgezB4MzBBRCwgMHgzMEFEfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0UGxhaW5EYWt1dGVuSGFuZGFrdXRlbkNhc2VzID0geworICAgICAgICB7MHgzMENGLCAweDMwQUJ9LAorICAgICAgICB7MHgzMEQwLCAweDMwQUJ9LAorICAgICAgICB7MHgzMENGLCAweDMwQUR9LAorICAgICAgICB7MHgzMEQwLCAweDMwQUR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTbWFsbExhcmdlQ2FzZXMgPSB7CisgICAgICAgIHsweDMwQzMsIDB4MzBDRn0sCisgICAgICAgIHsweDMwQzQsIDB4MzBDRn0sCisgICAgICAgIHsweDMwQzMsIDB4MzBEMH0sCisgICAgICAgIHsweDMwQzQsIDB4MzBEMH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEthdGFrYW5hSGlyYWdhbmFDYXNlcyA9IHsKKyAgICAgICAgezB4MzA0MiwgMHgzMEMzfSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEMzfSwKKyAgICAgICAgezB4MzA0MiwgMHgzMEM0fSwKKyAgICAgICAgezB4MzBBMiwgMHgzMEM0fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0Q2hvb29uS2lnb29DYXNlcyA9IHsKKyAgICAgICAgLyowKi8gezB4MzBBQiwgMHgzMEZDLCAweDMwNDJ9LAorICAgICAgICAvKjEqLyB7MHgzMEFCLCAweDMwRkMsIDB4MzBBMn0sCisgICAgICAgIC8qMiovIHsweDMwQUIsIDB4MzBBNCwgMHgzMDQyfSwKKyAgICAgICAgLyozKi8gezB4MzBBQiwgMHgzMEE0LCAweDMwQTJ9LAorICAgICAgICAvKjYqLyB7MHgzMEFELCAweDMwRkMsIDB4MzA0Mn0sIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC8qNyovIHsweDMwQUQsIDB4MzBGQywgMHgzMEEyfSwgLyogUHJvbG9uZ2VkIHNvdW5kIG1hcmsgc29ydHMgQkVGT1JFIGVxdWl2YWxlbnQgdm93ZWwgKElDVSAyLjApKi8KKyAgICAgICAgLyo0Ki8gezB4MzBBRCwgMHgzMEE0LCAweDMwNDJ9LAorICAgICAgICAvKjUqLyB7MHgzMEFELCAweDMwQTQsIDB4MzBBMn0KKyAgICB9OworICAgICAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uS2FuYVRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257IAorICAgICAgICBpZihteUNvbGxhdGlvbj09bnVsbCl7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5KQVBBTkVTRSk7IAorICAgICAgICB9CisgICAgfQorICAgIC8vIHBlcmZvcm1zIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJJQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBUZXN0aW5nIGJhc2UgbGV0dGVycyAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNlKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdEJhc2VDYXNlc1tpXSwgdGVzdEJhc2VDYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIFRlc3RpbmcgcGxhaW4sIERha3UtdGVuLCBIYW5kYWt1LXRlbiBsZXR0ZXJzICovCisgICAgcHVibGljIHZvaWQgVGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW4oKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RQbGFpbkRha3V0ZW5IYW5kYWt1dGVuQ2FzZXNbaV0sIHRlc3RQbGFpbkRha3V0ZW5IYW5kYWt1dGVuQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiAKKyAgICAqIFRlc3QgU21hbGwsIExhcmdlIGxldHRlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTbWFsbExhcmdlKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNtYWxsTGFyZ2VDYXNlc1tpXSwgdGVzdFNtYWxsTGFyZ2VDYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgKiBUZXN0IEthdGFrYW5hLCBIaXJhZ2FuYSBsZXR0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2F0YWthbmFIaXJhZ2FuYSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXNbaV0sIHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICogVGVzdCBDaG9vLW9uIGtpZ29vCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hvb29uS2lnb28oKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDcgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0Q2hvb29uS2lnb29DYXNlc1tpXSwgdGVzdENob29vbktpZ29vQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gIkthbmEiIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTWlzY1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25NaXNjVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMGRhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTWlzY1Rlc3QuamF2YQpAQCAtMCwwICsxLDIyMTUgQEAKKyAvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNpbnRsdGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvY2ludGx0ZXN0L2Ntc2Njb2xsLmMKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW1wbGljaXRDRUdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25NaXNjVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTWlzY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25NaXNjVGVzdCgpLlRlc3RMb2NhbGVSdWxlQmFzZWRDb2xsYXRvcnMoKTsgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JNX0JVRkZFUl9URVNUX0xFTl8gPSAzMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUZXN0ZXIgCisgICAgeworICAgICAgICBpbnQgdTsKKyAgICAgICAgU3RyaW5nIE5GQzsKKyAgICAgICAgU3RyaW5nIE5GRDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBoYXNDb2xsYXRpb25FbGVtZW50cyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLGxvY2FsZSk7CisgICAgICAgIGlmIChyYiAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb2xsa2V5ID0gcmIuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsgCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgZWxlbWVudHMgPSByYi5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvIiArIGNvbGxrZXkpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zZURlY29tcG9zZSgpIAorICAgIHsKKyAgICAgICAgVGVzdGVyIHRbXSA9IG5ldyBUZXN0ZXJbMHgzMDAwMF07CisgICAgICAgIHRbMF0gPSBuZXcgVGVzdGVyKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIFVDQSBleHRlbnNpdmVseVxuIik7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3JcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBub0Nhc2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgdSA9IDA7IHUgPCAweDMwMDAwOyB1ICsrKSB7CisgICAgICAgICAgICBTdHJpbmcgY29tcCA9IFVURjE2LnZhbHVlT2YodSk7CisgICAgICAgICAgICBpbnQgbGVuID0gY29tcC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gTm9ybWFsaXplci5ub3JtYWxpemUodSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgdFtub0Nhc2VzXS5ORkQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh1LCBOb3JtYWxpemVyLk5GRCk7CisgICAgCisgICAgICAgICAgICBpZiAodFtub0Nhc2VzXS5ORkMubGVuZ3RoKCkgIT0gdFtub0Nhc2VzXS5ORkQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgfHwgKHRbbm9DYXNlc10uTkZDLmNvbXBhcmVUbyh0W25vQ2FzZXNdLk5GRCkgIT0gMCkgCisgICAgICAgICAgICAgICAgfHwgKGxlbiAhPSB0W25vQ2FzZXNdLk5GRC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgdFtub0Nhc2VzXS51ID0gdTsKKyAgICAgICAgICAgICAgICBpZiAobGVuICE9IHRbbm9DYXNlc10uTkZELmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gY29tcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbm9DYXNlcyArKzsKKyAgICAgICAgICAgICAgICB0W25vQ2FzZXNdID0gbmV3IFRlc3RlcigpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGludCB1ID0gMDsgdSA8IG5vQ2FzZXM7IHUgKyspIHsKKyAgICAgICAgICAgIGlmICghY29sbC5lcXVhbHModFt1XS5ORkMsIHRbdV0uTkZEKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcodFt1XS51KSAKKyAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgaW4gdGhlIFVDQSIpOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHRbdV0uTkZDLCB0W3VdLk5GRCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgbG9jYWxlcywgbnVtYmVyIG9mIGNhc2VzID0gIiArIG5vQ2FzZXMpOworICAgICAgICBMb2NhbGUgbG9jW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKGhhc0NvbGxhdGlvbkVsZW1lbnRzKGxvY1tpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBsb2NhbGUgIiArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IHUgPSAwOyB1IDwgbm9DYXNlczsgdSArKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGwuZXF1YWxzKHRbdV0uTkZDLCB0W3VdLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh0W3VdLnUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgZm9yIGxvY2FsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgdGVzdHMgZm9yIHRoZSBpdGVyYXRvcnMgdG9vCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCB0W3VdLk5GQywgdFt1XS5ORkQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVPcHRpb25zKCkgeworICAgICAgICAvLyB2YWx1ZXMgaGVyZSBhcmUgaGFyZGNvZGVkIGFuZCBhcmUgY29ycmVjdCBmb3IgdGhlIGN1cnJlbnQgVUNBIHdoZW4gCisgICAgICAgIC8vIHRoZSBVQ0EgY2hhbmdlcywgb25lIG1pZ2h0IGJlIGZvcmNlZCB0byBjaGFuZ2UgdGhlc2UgdmFsdWVzLiAKKyAgICAgICAgLy8gKFxcdTAyZDAsIFxcVTAwMDEwRkZGQyBldGMuLi4pIAorICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgIC8vIGNhbm5vdCB0ZXN0IHRoaXMgYW55bW9yZSwgYXMgW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdIGRvZXNuJ3QgCisgICAgICAgICAgICAvLyBoYXZlIGEgIGNvZGUgcG9pbnQgYXNzb2NpYXRlZCB0byBpdCBhbnltb3JlICAKKyAgICAgICAgICAgIC8vICImW2JlZm9yZSAzXVtsYXN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGsiLAorICAgICAgICAgICAgLy8gLSBhbGwgYmVmb3JlcyBoZXJlIGFtb3VudCB0byB6ZXJvICAgICAgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtsYXN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHNlY29uZGFyeSBpZ25vcmFibGVdPDw8YSIsCisgICAgICAgICAgICAiJltiZWZvcmUgM11bbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8PGEiLCAKKyAgICAgICAgICAgIC8vICdub3JtYWwnIGJlZm9yZXMgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGM8PDxiICZbZmlyc3QgcHJpbWFyeSBpZ25vcmFibGVdPGEiLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBhIGNvZGUgcG9pbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBwcmltYXJ5IAorICAgICAgICAgICAgLy8gaWdub3JhYmxlIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdPDw8Yzw8PGIgJltsYXN0IHByaW1hcnkgaWdub3JhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtmaXJzdCB2YXJpYWJsZV08PDxjPDw8YiAmW2ZpcnN0IHZhcmlhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2xhc3QgdmFyaWFibGVdPGEgJltiZWZvcmUgM11bbGFzdCB2YXJpYWJsZV08PDxjPDw8YiAiLAorICAgICAgICAgICAgIiZbZmlyc3QgcmVndWxhcl08YSAmW2JlZm9yZSAxXVtmaXJzdCByZWd1bGFyXTxiIiwgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bbGFzdCByZWd1bGFyXTxiICZbbGFzdCByZWd1bGFyXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtmaXJzdCBpbXBsaWNpdF08YiAmW2ZpcnN0IGltcGxpY2l0XTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtsYXN0IGltcGxpY2l0XTxiICZbbGFzdCBpbXBsaWNpdF08YSIsIAorICAgICAgICAgICAgIiZbbGFzdCB2YXJpYWJsZV08eiZbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV08eCZbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8eSZbbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdPDw8dyZbdG9wXTx1IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0geworICAgICAgICAgICAgLy8geyJrIiwgIlx1MjBlMyJ9LAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlIAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGUgCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMzMyIiwgImEifSwKKyAgICAgICAgICAgIHsiXFx1MDMzMiIsICJcXHUyMGUzIiwgImMiLCAiYiIsICJhIn0sCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMDA5IiwgImEiLCAiXFx1MDAwYSJ9LAorICAgICAgICAgICAgeyJjIiwgImIiLCAiXFx1RDgzNFxcdURGNzEiLCAiYSIsICJcXHUwMmQwIn0sCisgICAgICAgICAgICB7ImIiLCAiXFx1MDJkMCIsICJhIiwgIlxcdTAyZDEifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHVkODA4XFx1ZGY2ZSIsICJhIiwgIlxcdTRlMDAifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHU0ZTAwIiwgImEiLCAiXFx1NGUwMSJ9LAorICAgICAgICAgICAgeyJiIiwgIlxcVTAwMTBGRkZEIiwgImEifSwKKyAgICAgICAgICAgIHsiXHVmZmZiIiwgICJ3IiwgInkiLCAiXHUyMGUzIiwgIngiLCAiXHUxMzdjIiwgInoiLCAidSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzKSB7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXJXaXRoUmVzdWx0KHJ1bGVzLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY1J1bGVzU3RhcnRlcldpdGhSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGVzIHN0YXJ0ZXIgZm9yICIgKyBydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJVbmFibGUgdG8gb3BlbiBjb2xsYXRvciB3aXRoIHJ1bGVzICIgKyBydWxlcyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljUnVsZXNTdGFydGVyV2l0aE9wdGlvbnNBbmRSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBTdHJpbmdbXSBhdHRzLCBPYmplY3RbXSBhdHRWYWxzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3B0aW9uc1NldHRlcihjb2xsLCBhdHRzLCBhdHRWYWxzKTsKKyAgICAgICAgICAgIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KGNvbGwsIHMsIHJlc3VsdCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIHdpdGggcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KENvbGxhdG9yIGNvbGwsIFN0cmluZ1tdIHMsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHQxID0gIiI7CisgICAgICAgIFN0cmluZyB0MiA9ICIiOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHMubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaW50IGogPSBpKzE7IGogPCBzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgdDEgPSBVdGlsaXR5LnVuZXNjYXBlKHNbaV0pOworICAgICAgICAgICAgICAgIHQyID0gVXRpbGl0eS51bmVzY2FwZShzW2pdKTsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oaSArICIgIiArIGopOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCB0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHJlcG9ydENSZXN1bHQoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgLyogc3lud2VlIHRvIHVuZG8gJiYgIWlzVmVyYm9zZSgpKi8pIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICAvLyBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeyAgLy9MRVNTCisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7ICAvL0VRVUFMCisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeyAgLy9HUkVBVEVSCisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVmb3JlUHJlZml4RmFpbHVyZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICAgICAiJmcgPDw8IGEmW2JlZm9yZSAzXVx1ZmY0MSA8PDwgeCIsCisgICAgICAgICAgICAiJlx1MzBBNz1cdTMwQTc9XHUzMDQ3PVx1ZmY2YSZcdTMwQTg9XHUzMEE4PVx1MzA0OD1cdWZmNzQmW2JlZm9yZSAzXVx1MzBhNzw8PFx1MzBhOSIsCisgICAgICAgICAgICAiJltiZWZvcmUgM11cdTMwYTc8PDxcdTMwYTkmXHUzMEE3PVx1MzBBNz1cdTMwNDc9XHVmZjZhJlx1MzBBOD1cdTMwQTg9XHUzMDQ4PVx1ZmY3NCIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgIHsieCIsICJcdWZmNDEifSwKKyAgICAgICAgICAgIHsiXHUzMGE5IiwgIlx1MzBhNyJ9LAorICAgICAgICAgICAgeyJcdTMwYTkiLCAiXHUzMGE3In0sCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uQ2xvc3VyZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICAgICAiJmI9XHUwMGU0XHUwMGU0IiwKKyAgICAgICAgICAgICImYj1cdTAwQzUiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSB7CisgICAgICAgICAgICB7ICJiIiwgIlx1MDBlNFx1MDBlNCIsICJhXHUwMzA4YVx1MDMwOCIsICJcdTAwZTRhXHUwMzA4IiwgImFcdTAzMDhcdTAwZTQiIH0sCisgICAgICAgICAgICB7ICJiIiwgIlx1MDBDNSIsICJBXHUwMzBBIiwgIlx1MjEyQiIgfSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyV2l0aFJlc3VsdChydWxlc1tpXSwgZGF0YVtpXSwgMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFByZWZpeENvbXBvc2UoKSB7CisgICAgICAgIFN0cmluZyBydWxlMSA9ICImXHUzMGE3PDw8XHUzMGFifFx1MzBmYz1cdTMwYWN8XHUzMGZjIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBzdHJpbmcgPSBydWxlMTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Ioc3RyaW5nKTsKKyAgICAgICAgICAgIGxvZ2xuKCJydWxlOiIgKyBjb2xsLmdldFJ1bGVzKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBvcGVuIFJ1bGVCYXNlZENvbGxhdG9yIHJ1bGUgPSAiICsgc3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyQ29sbElkZW50aWNhbFByZWZpeCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJlx1ZDliMFx1ZGM3MD1cdWQ5YjBcdWRjNzEiOworICAgICAgICBTdHJpbmcgdGVzdFtdID0geworICAgICAgICAgICAgImFiXHVkOWIwXHVkYzcwIiwKKyAgICAgICAgICAgICJhYlx1ZDliMFx1ZGM3MSIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcldpdGhSZXN1bHQocnVsZSwgdGVzdCwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmVmaXgoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZ6IDw8PCB6fGEiLAorICAgICAgICAgICAgIiZ6IDw8PCB6fCAgIGEiLCAKKyAgICAgICAgICAgICJbc3RyZW5ndGggSV0mYT1cdWQ5MDBcdWRjMjUmejw8PFx1ZDkwMFx1ZGMyNXxhIiwgCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgIHsienoiLCAiemEifSwKKyAgICAgICAgICAgIHsienoiLCAiemEifSwKKyAgICAgICAgICAgIHsiYWEiLCAiYXoiLCAiXHVkOTAwXHVkYzI1eiIsICJcdWQ5MDBcdWRjMjVhIiwgInp6In0sCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3SmFwYW5lc2UoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdDFbXSA9IHsKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwZmNcdTMwZWMiLAorICAgICAgICAgICAgIlx1MzBiN1x1MzBlM1x1MzBhNCIsCisgICAgICAgICAgICAiXHUzMGI3XHUzMGU0XHUzMGEzIiwKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwZWMiLAorICAgICAgICAgICAgIlx1MzA2MVx1MzA4N1x1MzA1MyIsCisgICAgICAgICAgICAiXHUzMDYxXHUzMDg4XHUzMDUzIiwKKyAgICAgICAgICAgICJcdTMwYzFcdTMwZTdcdTMwYjNcdTMwZWNcdTMwZmNcdTMwYzgiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzBmY1x1MzA1ZiIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGZjXHUzMGJmIiwgCisgICAgICAgICAgICAiXHUzMGM2XHUzMGE3XHUzMGJmIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwNDhcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzA2N1x1MzBmY1x1MzA1ZiIsIAorICAgICAgICAgICAgIlx1MzBjN1x1MzBmY1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMGM3XHUzMGE3XHUzMGJmIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwNDhcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzBmY1x1MzA1Zlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGZjXHUzMGJmXHUzMGExIiwKKyAgICAgICAgICAgICJcdTMwYzZcdTMwYTdcdTMwYmZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzA0N1x1MzA1Zlx1MzA0MSIsCisgICAgICAgICAgICAiXHUzMDY2XHUzMDQ4XHUzMDVmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwZmNcdTMwNWZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBmY1x1MzBiZlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMGE3XHUzMDVmXHUzMGExIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwNDdcdTMwYmZcdTMwNDEiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBhOFx1MzBiZlx1MzBhMiIsCisgICAgICAgICAgICAiXHUzMDcyXHUzMDg2IiwKKyAgICAgICAgICAgICJcdTMwNzNcdTMwODVcdTMwNDIiLAorICAgICAgICAgICAgIlx1MzA3NFx1MzA4NVx1MzA0MiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMDQyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA3NFx1MzA4NVx1MzA0Mlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ0XHUzMGU1XHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDJcdTMwZTVcdTMwYTYiLAorICAgICAgICAgICAgIlx1MzBkMlx1MzBlNlx1MzBhNiIsCisgICAgICAgICAgICAiXHUzMGQ0XHUzMGU1XHUzMGE2XHUzMGEyIiwKKyAgICAgICAgICAgICJcdTMwNzNcdTMwODVcdTMwZmNcdTMwNDJcdTMwZmMiLCAKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwZmNcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkM1x1MzBlNVx1MzBhNlx1MzBhMlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDcyXHUzMDg1XHUzMDkzIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwOTMiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBmY1x1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGZjXHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwNDVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBhNVx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMGE1XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwYTZcdTMwZWEiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzBmY1x1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMGZjXHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwNDVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBhNVx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMDQ2XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwZDdcdTMwYTZcdTMwZWEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBmY1x1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE1XHUzMGVhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwYTVcdTMwOGFcdTMwYTMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzA0NVx1MzA4YVx1MzA0MyIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE2XHUzMGVhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwNDZcdTMwOGFcdTMwNDMiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBhNlx1MzBlYVx1MzBhNCIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMGZjXHUzMDhhXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwYTVcdTMwOGFcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA0Nlx1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGE2XHUzMGVhXHUzMGE0IiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwZmQiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzA5ZSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDlkIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwNzUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzBkNSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMDc1IiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwZDUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA5ZSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDc3IiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwNzciLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA5ZCIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGZkIiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwNzUiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QyW10gPSB7CisgICAgICAgICAgICAiXHUzMDZmXHUzMDlkIiwgLy8gSFx1MzA5ZCAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZmQiLCAvLyBLXHUzMGZkIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzA2ZiIsIC8vIEhIIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzBjZiIsIC8vIEhLIAorICAgICAgICAgICAgIlx1MzBjZlx1MzBjZiIsIC8vIEtLIAorICAgICAgICAgICAgIlx1MzA2Zlx1MzA5ZSIsIC8vIEhcdTMwOWUgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGZlIiwgLy8gS1x1MzBmZSAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNzAiLCAvLyBISFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZDAiLCAvLyBLS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNzEiLCAvLyBISFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwNzEiLCAvLyBLSFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwZDEiLCAvLyBLS1x1MzA5YyAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwOWQiLCAvLyBIXHUzMDliXHUzMDlkIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBmZCIsIC8vIEtcdTMwOWJcdTMwZmQgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDZmIiwgLy8gSFx1MzA5YkggCisgICAgICAgICAgICAiXHUzMGQwXHUzMGNmIiwgLy8gS1x1MzA5YksgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDllIiwgLy8gSFx1MzA5Ylx1MzA5ZSAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZmUiLCAvLyBLXHUzMDliXHUzMGZlIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA3MCIsIC8vIEhcdTMwOWJIXHUzMDliIAorICAgICAgICAgICAgIlx1MzBkMFx1MzA3MCIsIC8vIEtcdTMwOWJIXHUzMDliIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBkMCIsIC8vIEtcdTMwOWJLXHUzMDliIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA3MSIsIC8vIEhcdTMwOWJIXHUzMDljIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBkMSIsIC8vIEtcdTMwOWJLXHUzMDljIAorICAgICAgICAgICAgIlx1MzA3MVx1MzA5ZCIsIC8vIEhcdTMwOWNcdTMwOWQgCisgICAgICAgICAgICAiXHUzMGQxXHUzMGZkIiwgLy8gS1x1MzA5Y1x1MzBmZCAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNmYiLCAvLyBIXHUzMDljSCAKKyAgICAgICAgICAgICJcdTMwZDFcdTMwY2YiLCAvLyBLXHUzMDljSyAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNzAiLCAvLyBIXHUzMDljSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwZDAiLCAvLyBIXHUzMDljS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDFcdTMwZDAiLCAvLyBLXHUzMDljS1x1MzA5YgorICAgICAgICAgICAgIlx1MzA3MVx1MzA3MSIsIC8vIEhcdTMwOWNIXHUzMDljCisgICAgICAgICAgICAiXHUzMGQxXHUzMGQxIiwgLy8gS1x1MzA5Y0tcdTMwOWMKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGF0dCA9IHsgInN0cmVuZ3RoIiwgfTsKKyAgICAgICAgT2JqZWN0W10gdmFsID0geyBuZXcgSW50ZWdlcihDb2xsYXRvci5RVUFURVJOQVJZKSwgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGF0dFNoaWZ0ZWQgPSB7ICJzdHJlbmd0aCIsICJBbHRlcm5hdGVIYW5kbGluZyJ9OworICAgICAgICBPYmplY3QgdmFsU2hpZnRlZFtdID0geyBuZXcgSW50ZWdlcihDb2xsYXRvci5RVUFURVJOQVJZKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCb29sZWFuKHRydWUpIH07CisgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkpBUEFORVNFLCB0ZXN0MSwgYXR0LCB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5KQVBBTkVTRSwgdGVzdDIsIGF0dCwgdmFsKTsKKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkpBUEFORVNFLCB0ZXN0MSwgYXR0U2hpZnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxTaGlmdGVkKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhMb2NhbGUuSkFQQU5FU0UsIHRlc3QyLCBhdHRTaGlmdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbFNoaWZ0ZWQpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNMb2NhbGVTdGFydGVyKExvY2FsZSBsb2NhbGUsIFN0cmluZyBzW10pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiTG9jYWxlIHN0YXJ0ZXIgZm9yICIgKyBsb2NhbGUpOworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0KGNvbGwsIHMpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlIGxvY2FsZSwgU3RyaW5nW10gcywgU3RyaW5nW10gYXR0cnMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zQW5kUmVzdWx0KGxvY2FsZSwgcywgYXR0cnMsIHZhbHVlcywgLTEpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZ2VuZXJpY09wdGlvbnNTZXR0ZXIoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCwgU3RyaW5nW10gYXR0cnMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhdHRyc1tpXS5lcXVhbHMoInN0cmVuZ3RoIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKCgoSW50ZWdlcil2YWx1ZXNbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiZGVjb21wIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oKChJbnRlZ2VyKXZhbHVlc1tpXSkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoYXR0cnNbaV0uZXF1YWxzKCJBbHRlcm5hdGVIYW5kbGluZyIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKChCb29sZWFuKXZhbHVlc1tpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiTnVtZXJpY0NvbGxhdGlvbiIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXROdW1lcmljQ29sbGF0aW9uKCgoQm9vbGVhbil2YWx1ZXNbaV0pLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiVXBwZXJGaXJzdCIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRVcHBlckNhc2VGaXJzdCgoKEJvb2xlYW4pdmFsdWVzW2ldKS5ib29sZWFuVmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhdHRyc1tpXS5lcXVhbHMoIkxvd2VyRmlyc3QiKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0TG93ZXJDYXNlRmlyc3QoKChCb29sZWFuKXZhbHVlc1tpXSkuYm9vbGVhblZhbHVlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXR0cnNbaV0uZXF1YWxzKCJDYXNlTGV2ZWwiKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0Q2FzZUxldmVsKCgoQm9vbGVhbil2YWx1ZXNbaV0pLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9uc0FuZFJlc3VsdChMb2NhbGUgbG9jYWxlLCBTdHJpbmdbXSBzLCBTdHJpbmdbXSBhdHRycywgT2JqZWN0W10gdmFsdWVzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJVbmFibGUgdG8gb3BlbiBjb2xsYXRvciBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJMb2NhbGUgc3RhcnRlciBmb3IgIiArbG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIGxvZ2xuKCJTZXR0aW5nIGF0dHJpYnV0ZXMiKTsKKyAgICAgICAgZ2VuZXJpY09wdGlvbnNTZXR0ZXIoY29sbCwgYXR0cnMsIHZhbHVlcyk7CisgICAgICAgIAorICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNPcmRlcmluZ1Rlc3QoQ29sbGF0b3IgY29sbCwgU3RyaW5nW10gcykgeworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROb25DaGFycygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJcdTAwMDAiLAorICAgICAgICAgICAgIlx1RkZGRSIsICJcdUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDFGRkZFIiwgIlxcVTAwMDFGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDAyRkZGRSIsICJcXFUwMDAyRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwM0ZGRkUiLCAiXFxVMDAwM0ZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDRGRkZFIiwgIlxcVTAwMDRGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA1RkZGRSIsICJcXFUwMDA1RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwNkZGRkUiLCAiXFxVMDAwNkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDdGRkZFIiwgIlxcVTAwMDdGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA4RkZGRSIsICJcXFUwMDA4RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwOUZGRkUiLCAiXFxVMDAwOUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMEFGRkZFIiwgIlxcVTAwMEFGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBCRkZGRSIsICJcXFUwMDBCRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwQ0ZGRkUiLCAiXFxVMDAwQ0ZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMERGRkZFIiwgIlxcVTAwMERGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBFRkZGRSIsICJcXFUwMDBFRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwRkZGRkUiLCAiXFxVMDAwRkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMTBGRkZFIiwgIlxcVTAwMTBGRkZGIgorICAgICAgICB9OworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdCBub24gY2hhcmFjdGVycyIpOworICAgICAgICAKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdFdpdGhSZXN1bHQoY29sbCwgdGVzdCwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHRyZW1lQ29tcHJlc3Npb24oKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3QgPSBuZXcgU3RyaW5nWzRdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTw0OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAyMDQ3OyBqKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZCgnYScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcC5hcHBlbmQoKGNoYXIpKCdhJyArIGkpKTsKKyAgICAgICAgICAgIHRlc3RbaV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImVuIiwgIlVTIiksIHRlc3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RzIHN1cnJvZ2F0ZSBzdXBwb3J0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXJyb2dhdGVzKCkgeworICAgICAgICBTdHJpbmcgdGVzdFtdID0geyJ6IiwiXHVkOTAwXHVkYzI1IiwgIlx1ZDgwNVx1ZGM1MCIsICJcdWQ4MDBcdWRjMDB5IiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDByIiwgIlx1ZDgwMFx1ZGMwMGYiLCAiXHVkODAwXHVkYzAwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMGMiLCAiXHVkODAwXHVkYzAwYiIsICJcdWQ4MDBcdWRjMDBmYSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDBmYiIsICJcdWQ4MDBcdWRjMDBhIiwgImMiLCAiYiJ9OworCisgICAgICAgIFN0cmluZyBydWxlID0gIiZ6IDwgXHVkOTAwXHVkYzI1IDwgXHVkODA1XHVkYzUwIDwgXHVkODAwXHVkYzAweSAiCisgICAgICAgICAgICArICI8IFx1ZDgwMFx1ZGMwMHIgPCBcdWQ4MDBcdWRjMDBmIDw8IFx1ZDgwMFx1ZGMwMCAiCisgICAgICAgICAgICArICI8IFx1ZDgwMFx1ZGMwMGZhIDw8IFx1ZDgwMFx1ZGMwMGZiIDwgXHVkODAwXHVkYzAwYSAiIAorICAgICAgICAgICAgKyAiPCBjIDwgYiI7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZSwgdGVzdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCb2NzdUNvdmVyYWdlKCkgeworICAgICAgICBTdHJpbmcgdGVzdCA9ICJcdTAwNDFcdTA0NDFcdTQ0NDFcXFUwMDA0NDQ0MVx1NDQ0MVx1MDQ0MVx1MDA0MSI7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgIENvbGxhdGlvbktleSBrZXkgPSBjb2xsLmdldENvbGxhdGlvbktleSh0ZXN0KTsKKyAgICAgICAgbG9nbG4oInNvdXJjZToiICsga2V5LmdldFNvdXJjZVN0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEN5cmlsbGljVGFpbG9yaW5nKCkgeworICAgICAgICBTdHJpbmcgdGVzdFtdID0geworICAgICAgICAgICAgIlx1MDQxMGIiLAorICAgICAgICAgICAgIlx1MDQxMFx1MDMwNmEiLAorICAgICAgICAgICAgIlx1MDRkMEEiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImVuIiwgIiIpLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlx1MDQxMCA9IFx1MDQxMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImWiA8IFx1MDQxMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImXHUwNDEwID0gXHUwNDEwIDwgXHUwNGQwIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZaIDwgXHUwNDEwIDwgXHUwNGQwIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZcdTA0MTAgPSBcdTA0MTAgPCBcdTA0MTBcdTAzMDEiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlogPCBcdTA0MTAgPCBcdTA0MTBcdTAzMDEiLCB0ZXN0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcHJlc3NDb250cmFjdGlvbnMoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0Tm9Db250MltdID0geworICAgICAgICAgICAgIlx1MDQxMFx1MDMwMmEiLAorICAgICAgICAgICAgIlx1MDQxMFx1MDMwNmIiLAorICAgICAgICAgICAgIlx1MDQxMGMiICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyB0ZXN0Tm9Db250W10gPSB7CisgICAgICAgICAgICAiYVx1MDQxMCIsICAgICAgICAgICAgCisgICAgICAgICAgICAiQVx1MDQxMFx1MDMwNiIsCisgICAgICAgICAgICAiXHVGRjIxXHUwNDEwXHUwMzAyIgorICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltzdXBwcmVzc0NvbnRyYWN0aW9ucyBbXHUwNDAwLVx1MDQ3Zl1dIiwgdGVzdE5vQ29udCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltzdXBwcmVzc0NvbnRyYWN0aW9ucyBbXHUwNDAwLVx1MDQ3Zl1dIiwgdGVzdE5vQ29udDIpOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENhc2UoKSB7CisgICAgICAgIFN0cmluZyBnUnVsZXMgPSAiXHUwMDI2XHUwMDMwXHUwMDNDXHUwMDMxXHUwMDJDXHUyNDYwXHUwMDNDXHUwMDYxXHUwMDJDXHUwMDQxIjsKKyAgICAgICAgU3RyaW5nW10gdGVzdENhc2UgPSB7CisgICAgICAgICAgICAiMWEiLCAiMUEiLCAiXHUyNDYwYSIsICJcdTI0NjBBIgorICAgICAgICB9OworICAgICAgICBpbnRbXVtdIGNhc2VUZXN0UmVzdWx0cyA9IHsKKyAgICAgICAgICAgIHsgLTEsIC0xLCAtMSwgMCwgLTEsIC0xLCAwLCAwLCAtMSB9LAorICAgICAgICAgICAgeyAxLCAtMSwgLTEsIDAsIC0xLCAtMSwgMCwgMCwgMSB9LAorICAgICAgICAgICAgeyAtMSwgLTEsIC0xLCAwLCAxLCAtMSwgMCwgMCwgLTEgfSwKKyAgICAgICAgICAgIHsgMSwgLTEsIDEsIDAsIC0xLCAtMSwgMCwgMCwgMSB9CisgICAgCisgICAgICAgIH07CisgICAgICAgIGJvb2xlYW5bXVtdIGNhc2VUZXN0QXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgIHsgZmFsc2UsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgdHJ1ZSwgZmFsc2V9LAorICAgICAgICAgICAgeyBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICB7IHRydWUsIHRydWV9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBpbnQgaSxqLGs7CisgICAgICAgIENvbGxhdG9yICBteUNvbGxhdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBydWxlIGJhc2VkIGNvbGxhdG9yICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0aW5nIGRpZmZlcmVudCBjYXNlIHNldHRpbmdzIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgZm9yKGsgPSAwOyBrIDw0OyBrKyspIHsKKyAgICAgICAgICAgIGlmIChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRVcHBlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRMb3dlckNhc2VGaXJzdCh0cnVlKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLnNldENhc2VMZXZlbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVGVzdEF0dHJpYnV0ZXNba11bMV0pOworICAgICAgICAgIAorICAgICAgICAgICAgLy8gbG9nbG4oIkNhc2UgZmlyc3QgPSAiICsgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzBdICsgIiwgQ2FzZSBsZXZlbCA9ICIgKyBjYXNlVGVzdEF0dHJpYnV0ZXNba11bMV0pOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmb3IoaiA9IGkrMTsgajw0OyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlW2ldLCB0ZXN0Q2FzZVtqXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VUZXN0UmVzdWx0c1trXVszKmkrai0xXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihnUnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0aW5nIGRpZmZlcmVudCBjYXNlIHNldHRpbmdzIHdpdGggY3VzdG9tIHJ1bGVzIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgZm9yKGsgPSAwOyBrPDQ7IGsrKykgeworICAgICAgICAgICAgaWYgKGNhc2VUZXN0QXR0cmlidXRlc1trXVswXSA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0VXBwZXJDYXNlRmlyc3QodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRVcHBlckNhc2VGaXJzdChmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRDYXNlTGV2ZWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzFdKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZm9yKGogPSBpKzE7IGo8NDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZVtpXSwgdGVzdENhc2Vbal0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVGVzdFJlc3VsdHNba11bMyppK2otMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvd2VyRmlyc3QgPSB7CisgICAgICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgICAgICJIIiwKKyAgICAgICAgICAgICAgICAiY2giLAorICAgICAgICAgICAgICAgICJDaCIsCisgICAgICAgICAgICAgICAgIkNIIiwKKyAgICAgICAgICAgICAgICAiY2hhIiwKKyAgICAgICAgICAgICAgICAiY2hBIiwKKyAgICAgICAgICAgICAgICAiQ2hhIiwKKyAgICAgICAgICAgICAgICAiQ2hBIiwKKyAgICAgICAgICAgICAgICAiQ0hhIiwKKyAgICAgICAgICAgICAgICAiQ0hBIiwKKyAgICAgICAgICAgICAgICAiaSIsCisgICAgICAgICAgICAgICAgIkkiCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdXBwZXJGaXJzdCA9IHsKKyAgICAgICAgICAgICAgICAiSCIsCisgICAgICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgICAgICJDSCIsCisgICAgICAgICAgICAgICAgIkNoIiwKKyAgICAgICAgICAgICAgICAiY2giLAorICAgICAgICAgICAgICAgICJDSEEiLAorICAgICAgICAgICAgICAgICJDSGEiLAorICAgICAgICAgICAgICAgICJDaEEiLAorICAgICAgICAgICAgICAgICJDaGEiLAorICAgICAgICAgICAgICAgICJjaEEiLAorICAgICAgICAgICAgICAgICJjaGEiLAorICAgICAgICAgICAgICAgICJJIiwKKyAgICAgICAgICAgICAgICAiaSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAvLyBsb2dsbigibWl4ZWQgY2FzZSB0ZXN0Iik7CisgICAgICAgICAgICAvLyBsb2dsbigibG93ZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb2ZmIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbY2FzZWZpcnN0IGxvd2VyXSZIPGNoPDw8Q2g8PDxDSCIsIGxvd2VyRmlyc3QpOyAKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ1cHBlciBmaXJzdCwgY2FzZSBsZXZlbCBvZmYiKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltjYXNlZmlyc3QgdXBwZXJdJkg8Y2g8PDxDaDw8PENIIiwgdXBwZXJGaXJzdCk7CisgICAgICAgICAgICAvLyBsb2dsbigibG93ZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb24iKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltjYXNlZmlyc3QgbG93ZXJdW2Nhc2VsZXZlbCBvbl0mSDxjaDw8PENoPDw8Q0giLCBsb3dlckZpcnN0KTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ1cHBlciBmaXJzdCwgY2FzZSBsZXZlbCBvbiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCB1cHBlcl1bY2FzZWxldmVsIG9uXSZIPGNoPDw8Q2g8PDxDSCIsIHVwcGVyRmlyc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluY29tcGxldGVDbnQoKSB7CisgICAgICAgIFN0cmluZ1tdIGNudDEgPSB7CisgICAgICAgICAgICAiQUEiLAorICAgICAgICAgICAgIkFDIiwKKyAgICAgICAgICAgICJBWiIsCisgICAgICAgICAgICAiQVEiLAorICAgICAgICAgICAgIkFCIiwKKyAgICAgICAgICAgICJBQloiLAorICAgICAgICAgICAgIkFCUSIsCisgICAgICAgICAgICAiWiIsCisgICAgICAgICAgICAiQUJDIiwKKyAgICAgICAgICAgICJRIiwKKyAgICAgICAgICAgICJCIgorICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGNudDIgPSB7CisgICAgICAgICAgICAiREEiLAorICAgICAgICAgICAgIkRBRCIsCisgICAgICAgICAgICAiREFaIiwKKyAgICAgICAgICAgICJNQVIiLAorICAgICAgICAgICAgIloiLAorICAgICAgICAgICAgIkRBVklTIiwKKyAgICAgICAgICAgICJNQVJLIiwKKyAgICAgICAgICAgICJEQVYiLAorICAgICAgICAgICAgIkRBVkkiCisgICAgICAgIH07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSAgbnVsbDsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSAiICYgWiA8IEFCQyA8IFEgPCBCIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IodGVtcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBzaXplID0gY250MS5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY250MVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjbnQxW2pdOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wID0gIiAmIFogPCBEQVZJUyA8IE1BUksgPERBViI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHRlbXApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJmYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaXplID0gY250Mi5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY250MltpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjbnQyW2pdOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmxhY2tCaXJkKCkgeworICAgICAgICBTdHJpbmdbXSBzaGlmdGVkID0geworICAgICAgICAgICAgImJsYWNrIGJpcmQiLAorICAgICAgICAgICAgImJsYWNrLWJpcmQiLAorICAgICAgICAgICAgImJsYWNrYmlyZCIsCisgICAgICAgICAgICAiYmxhY2sgQmlyZCIsCisgICAgICAgICAgICAiYmxhY2stQmlyZCIsCisgICAgICAgICAgICAiYmxhY2tCaXJkIiwKKyAgICAgICAgICAgICJibGFjayBiaXJkcyIsCisgICAgICAgICAgICAiYmxhY2stYmlyZHMiLAorICAgICAgICAgICAgImJsYWNrYmlyZHMiCisgICAgICAgIH07CisgICAgICAgIGludFtdIHNoaWZ0ZWRUZXJ0ID0geworICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgLTEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIC0xLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gbm9uaWdub3JhYmxlID0geworICAgICAgICAgICAgImJsYWNrIGJpcmQiLAorICAgICAgICAgICAgImJsYWNrIEJpcmQiLAorICAgICAgICAgICAgImJsYWNrIGJpcmRzIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkIiwKKyAgICAgICAgICAgICJibGFjay1CaXJkIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkcyIsCisgICAgICAgICAgICAiYmxhY2tiaXJkIiwKKyAgICAgICAgICAgICJibGFja0JpcmQiLAorICAgICAgICAgICAgImJsYWNrYmlyZHMiCisgICAgICAgIH07CisgICAgICAgIGludCBpID0gMCwgaiA9IDA7CisgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICAvL3Vjb2xfc2V0QXR0cmlidXRlKGNvbGwsIFVDT0xfTk9STUFMSVpBVElPTl9NT0RFLCBVQ09MX09GRiwgJnN0YXR1cyk7CisgICAgICAgIC8vdWNvbF9zZXRBdHRyaWJ1dGUoY29sbCwgVUNPTF9BTFRFUk5BVEVfSEFORExJTkcsIFVDT0xfTk9OX0lHTk9SQUJMRSwgJnN0YXR1cyk7CisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICAgICAgc2l6ZSA9IG5vbmlnbm9yYWJsZS5sZW5ndGg7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemUtMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IG5vbmlnbm9yYWJsZVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBub25pZ25vcmFibGVbal07CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBzaXplID0gc2hpZnRlZC5sZW5ndGg7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemUtMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IHNoaWZ0ZWRbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gc2hpZnRlZFtqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHNpemUgPSBzaGlmdGVkLmxlbmd0aDsKKyAgICAgICAgZm9yKGkgPSAxOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdDEgPSBzaGlmdGVkW2ktMV07CisgICAgICAgICAgICBTdHJpbmcgdDIgPSBzaGlmdGVkW2ldOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdGVkVGVydFtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZ1bmt5QSgpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMwMSIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzAwXHUwMzE2IiwKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDBDMFx1MDMwMSIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwQzBcdTAzMTYiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJcdTAwQzAiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMTZcdTAzMDAiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwCisgICAgICAgIH07CisKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBzb21lIEEgbGV0dGVycywgZm9yIHNvbWUgcmVhc29uIik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNCA7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENoTW92ZSgpIHsKKyAgICAgICAgU3RyaW5nW10gY2hUZXN0ID0geworICAgICAgICAgICAgImMiLAorICAgICAgICAgICAgIkMiLAorICAgICAgICAgICAgImNhIiwgImNiIiwgImN4IiwgImN5IiwgIkNaIiwKKyAgICAgICAgICAgICJjXHUwMzBDIiwgIkNcdTAzMEMiLAorICAgICAgICAgICAgImgiLAorICAgICAgICAgICAgIkgiLAorICAgICAgICAgICAgImhhIiwgIkhhIiwgImhhcmx5IiwgImhiIiwgIkhCIiwgImh4IiwgIkhYIiwgImh5IiwgIkhZIiwKKyAgICAgICAgICAgICJjaCIsICJjSCIsICJDaCIsICJDSCIsCisgICAgICAgICAgICAiY2hhIiwgImNoYXJseSIsICJjaGUiLCAiY2hoIiwgImNoY2giLCAiY2hyIiwKKyAgICAgICAgICAgICJpIiwgIkkiLCAiaWFybHkiLAorICAgICAgICAgICAgInIiLCAiUiIsCisgICAgICAgICAgICAiclx1MDMwQyIsICJSXHUwMzBDIiwKKyAgICAgICAgICAgICJzIiwKKyAgICAgICAgICAgICJTIiwKKyAgICAgICAgICAgICJzXHUwMzBDIiwgIlNcdTAzMEMiLAorICAgICAgICAgICAgInoiLCAiWiIsCisgICAgICAgICAgICAielx1MDMwQyIsICJaXHUwMzBDIgorICAgICAgICB9OworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJjcyIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNhbm5vdCBjcmVhdGUgQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IGNoVGVzdC5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY2hUZXN0W2ldOworICAgICAgICAgICAgICAgIFN0cmluZyB0MiA9IGNoVGVzdFtqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEltcGxpY2l0VGFpbG9yaW5nKCkgeworICAgICAgICBTdHJpbmcgcnVsZXNbXSA9IHsgIiZbYmVmb3JlIDFdXHU0ZTAwIDwgYiA8IGMgJltiZWZvcmUgMV1cdTRlMDAgPCBkIDwgZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiJlx1NGUwMCA8IGEgPDw8IEEgPCBiIDw8PCBCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICImW2JlZm9yZSAxXVx1NGUwMCA8IFx1NGUwMSA8IFx1NGUwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiJltiZWZvcmUgMV1cdTRlMDEgPCBcdTRlMDIgPCBcdTRlMDMiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmcgY2FzZXNbXVtdID0geworICAgICAgICAgICAgeyAiZCIsICJlIiwgImIiLCAiYyIsICJcdTRlMDAifSwgCisgICAgICAgICAgICB7ICJcdTRlMDAiLCAiYSIsICJBIiwgImIiLCAiQiIsICJcdTRlMDEifSwKKyAgICAgICAgICAgIHsgIlx1NGUwMSIsICJcdTRlMDIiLCAiXHU0ZTAwIn0sCisgICAgICAgICAgICB7ICJcdTRlMDIiLCAiXHU0ZTAzIiwgIlx1NGUwMSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIGNhc2VzW2ldKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RkNEUHJvYmxlbSgpIHsKKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDQzMFx1MDMwNlx1MDMyNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTA0RDFcdTAzMjUiOworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDYW4ndCBjcmVhdGUgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgczEsIHMyLCAwKTsKKyAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHMxLCBzMiwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFbXB0eVJ1bGUoKSB7CisgICAgICAgIFN0cmluZyBydWxleiA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxleik7CisgICAgICAgICAgICBsb2dsbigicnVsZToiICsgY29sbC5nZXRSdWxlcygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogc3VwZXJzZWRlZCBieSBUZXN0QmVmb3JlUGlueWluLCBzaW5jZSBDaGluZXNlIGNvbGxhdGlvbiBydWxlcyBoYXZlIGNoYW5nZWQgKi8KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RKNzg0KCkgeworICAgICAgICBTdHJpbmdbXSBkYXRhID0geworICAgICAgICAgICAgIkEiLCAiXHUwMTAxIiwgIlx1MDBlMSIsICJcdTAxY2UiLCAiXHUwMGUwIiwKKyAgICAgICAgICAgICJFIiwgIlx1MDExMyIsICJcdTAwZTkiLCAiXHUwMTFiIiwgIlx1MDBlOCIsCisgICAgICAgICAgICAiSSIsICJcdTAxMmIiLCAiXHUwMGVkIiwgIlx1MDFkMCIsICJcdTAwZWMiLAorICAgICAgICAgICAgIk8iLCAiXHUwMTRkIiwgIlx1MDBmMyIsICJcdTAxZDIiLCAiXHUwMGYyIiwKKyAgICAgICAgICAgICJVIiwgIlx1MDE2YiIsICJcdTAwZmEiLCAiXHUwMWQ0IiwgIlx1MDBmOSIsCisgICAgICAgICAgICAiXHUwMGZjIiwgIlx1MDFkNiIsICJcdTAxZDgiLCAiXHUwMWRhIiwgIlx1MDFkYyIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCAiIiksIGRhdGEpOworICAgIH0KKyAgICAqLworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKODE1KCkgeworICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgImFhIiwKKyAgICAgICAgICAgICJBYSIsCisgICAgICAgICAgICAiYWIiLAorICAgICAgICAgICAgIkFiIiwKKyAgICAgICAgICAgICJhZCIsCisgICAgICAgICAgICAiQWQiLAorICAgICAgICAgICAgImFlIiwKKyAgICAgICAgICAgICJBZSIsCisgICAgICAgICAgICAiXHUwMGU2IiwKKyAgICAgICAgICAgICJcdTAwYzYiLAorICAgICAgICAgICAgImFmIiwKKyAgICAgICAgICAgICJBZiIsCisgICAgICAgICAgICAiYiIsCisgICAgICAgICAgICAiQiIKKyAgICAgICAgfTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiZnIiLCAiIiksIGRhdGEpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbYmFja3dhcmRzIDJdJkE8PFx1MDBlNi9lPDw8XHUwMGM2L0UiLCBkYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEozMDg3KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlW10gPSB7IiZoPEgmQ0g9XHUwNDI3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJkNIPVx1MDQyNyZoPEgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICImQ0g9XHUwNDI3In07IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciByYmMgPSBudWxsOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjE7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByYmMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZVtpXSk7IAorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGl0ZXIxID0gcmJjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiQ0giKTsgCisgICAgICAgICAgICBpdGVyMiA9IHJiYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIlx1MDQyNyIpOworICAgICAgICAgICAgaW50IGNlMSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICBpbnQgY2UyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIHdoaWxlIChjZTEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUgorICAgICAgICAgICAgICAgICAgICYmIGNlMiAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgY2UxID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgICAgIGNlMiA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UxICE9IGNlMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2VuZXJhdGluZyBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHRoZSBydWxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBydWxlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNIICE9IFxcdTA0MjciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgRG9udFRlc3RKODMxKCkgeyAvLyBMYXR2aWFuIGRvZXMgbm90IHVzZSB1cHBlciBmaXJzdAorICAgICAgICBTdHJpbmdbXSBkYXRhID0geworICAgICAgICAgICAgIkkiLAorICAgICAgICAgICAgImkiLAorICAgICAgICAgICAgIlkiLAorICAgICAgICAgICAgInkiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImx2IiwgIiIpLCBkYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJcdTAxMDEiLCAiXHUwMGUxIiwgIlx1MDFjZSIsICJcdTAwZTAiLCAiQSIsCisgICAgICAgICAgICAiXHUwMTEzIiwgIlx1MDBlOSIsICJcdTAxMWIiLCAiXHUwMGU4IiwgIkUiLAorICAgICAgICAgICAgIlx1MDEyYiIsICJcdTAwZWQiLCAiXHUwMWQwIiwgIlx1MDBlYyIsICJJIiwKKyAgICAgICAgICAgICJcdTAxNGQiLCAiXHUwMGYzIiwgIlx1MDFkMiIsICJcdTAwZjIiLCAiTyIsCisgICAgICAgICAgICAiXHUwMTZiIiwgIlx1MDBmYSIsICJcdTAxZDQiLCAiXHUwMGY5IiwgIlUiLAorICAgICAgICAgICAgIlx1MDFkNiIsICJcdTAxZDgiLCAiXHUwMWRhIiwgIlx1MDFkYyIsICJcdTAwZmMiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZbYmVmb3JlIDFdYTxcdTAxMDE8XHUwMGUxPFx1MDFjZTxcdTAwZTAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJltiZWZvcmUgMV1lPFx1MDExMzxcdTAwZTk8XHUwMTFiPFx1MDBlOCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICImW2JlZm9yZSAxXWk8XHUwMTJiPFx1MDBlZDxcdTAxZDA8XHUwMGVjIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiZbYmVmb3JlIDFdbzxcdTAxNGQ8XHUwMGYzPFx1MDFkMjxcdTAwZjIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJltiZWZvcmUgMV11PFx1MDE2YjxcdTAwZmE8XHUwMWQ0PFx1MDBmOSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICImdTxcdTAxZDY8XHUwMWQ4PFx1MDFkYTxcdTAxZGM8XHUwMGZjIiwgZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZHVuZGFudFJ1bGVzKCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgIC8vIiYgYSA8PDwgYiA8PDwgYyA8PCBkIDw8PCBlJiBbYmVmb3JlIDFdIGUgPDw8IHgiLAorICAgICAgICAgICAgIiYgYiA8PDwgYyA8PDwgZCA8PCBlIDw8PCBmJiBbYmVmb3JlIDNdIGYgPDw8IHgiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAxXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgYyA8IGQmIFtiZWZvcmUgMV0gYyA8IG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAzXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgMl0gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCBlIDw8PCBmIDwgZyYgW2JlZm9yZSAxXSBnIDwgeCIsCisgICAgICAgICAgICAiJiBhIDw8PCBiIDw8IGMgPCBkJiBhIDwgbSIsCisgICAgICAgICAgICAiJmE8Yjw8Ylx1MDMwMSAmejxiIiwKKyAgICAgICAgICAgICImejxtPDw8cTw8PG0iLAorICAgICAgICAgICAgIiZ6PDw8bTxxPDw8bSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBjIDwgbSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBhIDwgbSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkUnVsZXMgPSB7CisgICAgICAgICAgICAvLyImXHUyMDg5PDw8eCIsCisgICAgICAgICAgICAiJlx1MDI1Mjw8PHgiLAorICAgICAgICAgICAgIiYgYSA8PDwgeCA8IGIgPDw8IGMgPDwgZCA8PDwgZSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IG0gPCBjIDwgZCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCB4IDw8PCBlIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8PCB4IDw8IGQgPDw8IGUiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSA8PDwgZiA8IHggPCBnIiwKKyAgICAgICAgICAgICImIGEgPDw8IGIgPDwgYyA8IG0gPCBkIiwKKyAgICAgICAgICAgICImYTxiXHUwMzAxICZ6PGIiLAorICAgICAgICAgICAgIiZ6PHE8PDxtIiwKKyAgICAgICAgICAgICImejxxPDw8bSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGQmIHIgPCBjIiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgbSA8IGQiLAorICAgICAgICAgICAgIiYgYSA8IG0gPCBiIDwgYyA8IGQiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXVtdIHRlc3RkYXRhID0geworICAgICAgICAgICAgLy8gICAgICAgICAgICB7Ilx1MjA4OSIsICJ4In0sCisgICAgICAgICAgICB7Ilx1MDI1MiIsICJ4In0sCisgICAgICAgICAgICB7ImEiLCAieCIsICJiIiwgImMiLCAiZCIsICJlIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJtIiwgImMiLCAiZCJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJkIiwgIngiLCAiZSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJ4IiwgImQiLCAiZSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJ4IiwgImcifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAibSIsICJkIn0sCisgICAgICAgICAgICB7ImEiLCAiYlx1MDMwMSIsICJ6IiwgImIifSwKKyAgICAgICAgICAgIHsieiIsICJxIiwgIm0ifSwKKyAgICAgICAgICAgIHsieiIsICJxIiwgIm0ifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImQifSwKKyAgICAgICAgICAgIHsiciIsICJjIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgIm0iLCAiZCJ9LAorICAgICAgICAgICAgeyJhIiwgIm0iLCAiYiIsICJjIiwgImQifQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJseiA9ICIiOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbigidGVzdGluZyBydWxlICIgKyBydWxlc1tpXSArICIsIGV4cGVjdGVkIHRvIGJlIiArIGV4cGVjdGVkUnVsZXNbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBybHogPSBydWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVkdW5kYW50ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgcmx6ID0gZXhwZWN0ZWRSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVzdWx0aW5nID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVkdW5kYW50IFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3JlZHVuZGFudCkuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVzdWx0aW5nIFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3Jlc3VsdGluZykuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ2Fubm90IGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXN0QWdhaW5zdFVDQShjcmVzdWx0aW5nLCBjcmVkdW5kYW50LCAiZXhwZWN0ZWQiLCBUUlVFLCAmc3RhdHVzKTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ0ZXN0aW5nIHVzaW5nIGRhdGFcbiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgdGVzdGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBhbnNpb25TeW50YXgoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZBRSA8PDwgYSA8PCBiIDw8PCBjICZkIDw8PCBmIiwKKyAgICAgICAgICAgICImQUUgPDw8IGEgPDw8IGIgPDwgYyA8PCBkIDwgZSA8IGYgPDw8IGciLAorICAgICAgICAgICAgIiZBRSA8PDwgQiA8PDwgQyAvIEQgPDw8IEYiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBleHBlY3RlZFJ1bGVzID0geworICAgICAgICAgICAgIiZBIDw8PCBhIC8gRSA8PCBiIC8gRSA8PDwgYyAvRSAgJmQgPDw8IGYiLAorICAgICAgICAgICAgIiZBIDw8PCBhIC8gRSA8PDwgYiAvIEUgPDwgYyAvIEUgPDwgZCAvIEUgPCBlIDwgZiA8PDwgZyIsCisgICAgICAgICAgICAiJkEgPDw8IEIgLyBFIDw8PCBDIC8gRUQgPDw8IEYgLyBFIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgIHsiQUUiLCAiYSIsICJiIiwgImMifSwKKyAgICAgICAgICAgIHsiQUUiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyJ9LAorICAgICAgICAgICAgeyJBRSIsICJCIiwgIkMifSAvLyAvIEVEIDw8PCBGIC8gRSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oInRlc3RpbmcgcnVsZSAiICsgcnVsZXNbaV0gKyAiLCBleHBlY3RlZCB0byBiZSAiICsgZXhwZWN0ZWRSdWxlc1tpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBybHogPSBydWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVkdW5kYW50ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgcmx6ID0gZXhwZWN0ZWRSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRvciBjcmVzdWx0aW5nID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVkdW5kYW50IFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3JlZHVuZGFudCkuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBjcmVzdWx0aW5nIFJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpY3Jlc3VsdGluZykuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB0ZXN0QWdhaW5zdFVDQSBzdGlsbCBkb2Vzbid0IGhhbmRsZSBleHBhbnNpb25zIGNvcnJlY3RseSwgc28gdGhpcyBpcyBub3QgcnVuIAorICAgICAgICAgICAgLy8gYXMgYSBoYXJkIGVycm9yIHRlc3QsIGJ1dCBvbmx5IGluIGluZm9ybWF0aW9uIG1vZGUgCisgICAgICAgICAgICAvL3Rlc3RBZ2FpbnN0VUNBKGNyZXN1bHRpbmcsIGNyZWR1bmRhbnQsICJleHBlY3RlZCIsIEZBTFNFLCAmc3RhdHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbG9nbG4oInRlc3RpbmcgdXNpbmcgZGF0YSIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgdGVzdGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhhbmd1bFRhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nW10ga29yZWFuRGF0YSA9IHsKKyAgICAgICAgICAgICJcdWFjMDAiLCAiXHU0ZjNkIiwgIlx1NGY3MyIsICJcdTUwNDciLCAiXHU1MGY5IiwgIlx1NTJhMCIsICJcdTUzZWYiLCAiXHU1NDc1IiwKKyAgICAgICAgICAgICJcdTU0ZTUiLCAiXHU1NjA5IiwgIlx1NWFjMSIsICJcdTViYjYiLCAiXHU2Njg3IiwgIlx1NjdiNiIsICJcdTY3YjciLCAiXHU2N2VmIiwKKyAgICAgICAgICAgICJcdTZiNGMiLCAiXHU3M2MyIiwgIlx1NzVjMiIsICJcdTdhM2MiLCAiXHU4MmRiIiwgIlx1ODMwNCIsICJcdTg4NTciLCAiXHU4ODg4IiwKKyAgICAgICAgICAgICJcdThhMzYiLCAiXHU4Y2M4IiwgIlx1OGRjZiIsICJcdThlZmIiLCAiXHU4ZmU2IiwgIlx1OTlkNSIsCisgICAgICAgICAgICAiXHU0RUVFIiwgIlx1NTBBMiIsICJcdTU0OTYiLCAiXHU1NEZGIiwgIlx1NTc3NyIsICJcdTVCOEEiLCAiXHU2NTlEIiwgIlx1Njk4RSIsCisgICAgICAgICAgICAiXHU2QTlGIiwgIlx1NzNDOCIsICJcdTdCMzMiLCAiXHU4MDFFIiwgIlx1ODIzOCIsICJcdTg0NkQiLCAiXHU4QjBDIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0KKyAgICAgICAgICAgICImXHVhYzAwIDw8PCBcdTRmM2QgPDw8IFx1NGY3MyA8PDwgXHU1MDQ3IDw8PCBcdTUwZjkgPDw8IFx1NTJhMCA8PDwgXHU1M2VmIDw8PCBcdTU0NzUgIgorICAgICAgICAgICAgKyAiPDw8IFx1NTRlNSA8PDwgXHU1NjA5IDw8PCBcdTVhYzEgPDw8IFx1NWJiNiA8PDwgXHU2Njg3IDw8PCBcdTY3YjYgPDw8IFx1NjdiNyA8PDwgXHU2N2VmICIKKyAgICAgICAgICAgICsgIjw8PCBcdTZiNGMgPDw8IFx1NzNjMiA8PDwgXHU3NWMyIDw8PCBcdTdhM2MgPDw8IFx1ODJkYiA8PDwgXHU4MzA0IDw8PCBcdTg4NTcgPDw8IFx1ODg4OCAiCisgICAgICAgICAgICArICI8PDwgXHU4YTM2IDw8PCBcdThjYzggPDw8IFx1OGRjZiA8PDwgXHU4ZWZiIDw8PCBcdThmZTYgPDw8IFx1OTlkNSAiCisgICAgICAgICAgICArICI8PDwgXHU0RUVFIDw8PCBcdTUwQTIgPDw8IFx1NTQ5NiA8PDwgXHU1NEZGIDw8PCBcdTU3NzcgPDw8IFx1NUI4QSA8PDwgXHU2NTlEIDw8PCBcdTY5OEUgIgorICAgICAgICAgICAgKyAiPDw8IFx1NkE5RiA8PDwgXHU3M0M4IDw8PCBcdTdCMzMgPDw8IFx1ODAxRSA8PDwgXHU4MjM4IDw8PCBcdTg0NkQgPDw8IFx1OEIwQyI7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcmx6ID0gcnVsZXM7CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iocmx6KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3Igd2l0aCBydWxlcyIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIlVzaW5nIHN0YXJ0IG9mIGtvcmVhbiBydWxlc1xuIik7CisgICAgICAgIGdlbmVyaWNPcmRlcmluZ1Rlc3QoY29sbCwga29yZWFuRGF0YSk7CisgICAgICAgIC8vIGxvZ2xuKCJTZXR0aW5nIGphbW9TcGVjaWFsIHRvIFRSVUUgYW5kIHRlc3Rpbmcgb25jZSBtb3JlXG4iKTsKKyAgICAgICAgCisgICAgICAgIC8vIGNhbid0IHNldCBqYW1vIGluIGljdTRqIAorICAgICAgICAvLyAoKFVDQVRhYmxlSGVhZGVyICopY29sbC0+aW1hZ2UpLT5qYW1vU3BlY2lhbCA9IFRSVUU7IC8vIGRvbid0IHRyeSB0aGlzIGF0IGhvbWUKKyAgICAgICAgLy8gZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBrb3JlYW5EYXRhKTsKKyAgICAgICAgCisgICAgICAgIC8vIG5vIHN1Y2ggbG9jYWxlIGluIGljdTRqCisgICAgICAgIC8vIGxvZ2xuKCJVc2luZyBrb19fTE9UVVMgbG9jYWxlXG4iKTsKKyAgICAgICAgLy8gZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgia29fX0xPVFVTIiwgIiIpLCBrb3JlYW5EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5jcmVtZW50YWxOb3JtYWxpemUoKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgICBjb2xsID0gbnVsbDsKKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgMSAuLi4uIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIFRlc3QgMS4gIFJ1biB2ZXJ5IGxvbmcgdW5ub3JtYWxpemVkIHN0cmluZ3MsIHRvIGZvcmNlIG92ZXJmbG93IG9mKi8KKyAgICAgICAgICAgIC8qICAgICAgICAgIG1vc3QgYnVmZmVycyBhbG9uZyB0aGUgd2F5LiovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNhbm5vdCBnZXQgZGVmYXVsdCBpbnN0YW5jZSEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIGJhc2VBICAgICA9MHg0MTsKKyAgICAgICAgICAgIGNoYXIgY2NNaXhbXSAgID0gezB4MzE2LCAweDMyMSwgMHgzMDB9OworICAgICAgICAgICAgaW50ICAgICAgICAgIHNMZW47CisgICAgICAgICAgICBpbnQgICAgICAgICAgaTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJBID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ckIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc0xlbiA9IDEwMDA7IHNMZW48MTAwMTsgc0xlbisrKSB7CisgICAgICAgICAgICAgICAgc3RyQS5kZWxldGUoMCwgc3RyQS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgc3RyQS5hcHBlbmQoYmFzZUEpOworICAgICAgICAgICAgICAgIHN0ckIuZGVsZXRlKDAsIHN0ckIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0ckIuYXBwZW5kKGJhc2VBKTsKKyAgICAgICAgICAgICAgICBmb3IgKGk9MTsgaTwgc0xlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0ckEuYXBwZW5kKGNjTWl4W2kgJSAzXSk7CisgICAgICAgICAgICAgICAgICAgIHN0ckIuaW5zZXJ0KDEsIGNjTWl4W2kgJSAzXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOyAgIC8vIERvIHRlc3Qgd2l0aCBkZWZhdWx0IHN0cmVuZ3RoLCB3aGljaCBydW5zCisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ckEudG9TdHJpbmcoKSwgc3RyQi50b1N0cmluZygpLCAwKTsgICAgLy8gICBvcHRpbWl6ZWQgZnVuY3Rpb25zIGluIHRoZSBpbXBsCisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOyAgIC8vIERvIGFnYWluIHdpdGggdGhlIHNsb3csIGdlbmVyYWwgaW1wbC4KKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyQS50b1N0cmluZygpLCBzdHJCLnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qICBUZXN0IDI6ICBOb24tbm9ybWFsIHNlcXVlbmNlIGluIGEgc3RyaW5nIHRoYXQgZXh0ZW5kcyB0byB0aGUgbGFzdCBjaGFyYWN0ZXIqLworICAgICAgICAvKiAgICAgICAgIG9mIHRoZSBzdHJpbmcuICBDaGVja3MgYSBjb3VwbGUgb2YgZWRnZSBjYXNlcy4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCAyIC4uLi4iKTsgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHJBID0gIkFBXHUwMzAwXHUwMzE2IjsKKyAgICAgICAgICAgIFN0cmluZyBzdHJCID0gIkFcdTAwYzBcdTAzMTYiOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgc3RyQSwgc3RyQiwgMCk7CisgICAgICAgIH0KKyAgICAgICAgLyogIFRlc3QgMzogIE5vbi1ub3JtYWwgc2VxdWVuY2UgaXMgdGVybWluYXRlZCBieSBhIHN1cnJvZ2F0ZSBwYWlyLiovCisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDMgLi4uLiIpOworICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyQSA9ICJBQVx1MDMwMFx1MDMxNlx1RDgwMFx1REMwMSI7CisgICAgICAgICAgICBTdHJpbmcgc3RyQiA9ICJBXHUwMGMwXHUwMzE2XHVEODAwXHVEQzAwIjsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHN0ckEsIHN0ckIsIDEpOworICAgICAgICB9CisgICAgICAgIC8qICBUZXN0IDQ6ICBJbWJlZGRlZCBudWxscyBkbyBub3QgdGVybWluYXRlIGEgc3RyaW5nIHdoZW4gbGVuZ3RoIGlzIHNwZWNpZmllZC4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCA0IC4uLi4iKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogbm90IGEgdmFsaWQgdGVzdCBzaW5jZSBzdHJpbmcgYXJlIG51bGwtdGVybWluYXRlZCBpbiBqYXZheworICAgICAgICAgY2hhciBzdHJBW10gPSB7MHg0MSwgMHgwMCwgMHg0Mn07CisgICAgICAgICBjaGFyIHN0ckJbXSA9IHsweDQxLCAweDAwLCAweDAwfTsKKyAgICAgICAgICAgIAorICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEpLCBuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgMSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgMSkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMSBpbiB0ZXN0IDRcbiIpOworICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUEgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckEpKTsKKyAgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5QiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQikpOworICAgICAgICAgICAgCisgICAgICAgICBpbnQgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNCBpbiB0ZXN0IDRcbiIpOworICAgICAgICAgfQorICAgIAorICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgc29ydEtleUEgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckEpKTsKKyAgICAgICAgIHNvcnRLZXlCID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJCKSk7CisgICAgCisgICAgICAgICByID0gc29ydEtleUEuY29tcGFyZVRvKHNvcnRLZXlCKTsKKyAgICAgICAgIGlmIChyIDw9IDApIHsKKyAgICAgICAgIGVycmxuKCJFcnJvciA3IGluIHRlc3QgNFxuIik7CisgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvKiAgVGVzdCA1OiAgTnVsbCBjaGFyYWN0ZXJzIGluIG5vbi1ub3JtYWwgc291cmNlIHN0cmluZ3MuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgNSAuLi4uIik7CisgICAgICAgIC8qCisgICAgICAgICAqIG5vdCBhIHZhbGlkIHRlc3Qgc2luY2Ugc3RyaW5nIGFyZSBudWxsLXRlcm1pbmF0ZWQgaW4gamF2YXsKKyAgICAgICAgIHsKKyAgICAgICAgIGNoYXIgc3RyQVtdID0gezB4NDEsIDB4NDEsIDB4MzAwLCAweDMxNiwgMHgwMCwgMHg0Mix9OworICAgICAgICAgY2hhciBzdHJCW10gPSB7MHg0MSwgMHg0MSwgMHgzMDAsIDB4MzE2LCAweDAwLCAweDAwLH07CisgICAgICAgICAgIAorICAgIAorICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDYpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDYpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMSBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgNCksIG5ldyBTdHJpbmcoc3RyQiwgMCwgNCkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRVJST1IgMiBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgIAorICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgIGludCByID0gc29ydEtleUEuY29tcGFyZVRvKHNvcnRLZXlCKTsKKyAgICAgICAgIGlmIChyIDw9IDApIHsKKyAgICAgICAgIGVycmxuKCJFcnJvciA0IGluIHRlc3QgNVxuIik7CisgICAgICAgICB9CisgICAgCisgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICAKKyAgICAgICAgIHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBzb3J0S2V5QiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQikpOworICAgICAgICAgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNyBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLyogIFRlc3QgNjogIE51bGwgY2hhcmFjdGVyIGFzIGJhc2Ugb2YgYSBub24tbm9ybWFsIGNvbWJpbmluZyBzZXF1ZW5jZS4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCA2IC4uLi4iKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogbm90IGEgdmFsaWQgdGVzdCBzaW5jZSBzdHJpbmcgYXJlIG51bGwtdGVybWluYXRlZCBpbiBqYXZheworICAgICAgICAgeworICAgICAgICAgY2hhciBzdHJBW10gPSB7MHg0MSwgMHgwLCAweDMwMCwgMHgzMTYsIDB4NDEsIDB4MzAyLH07CisgICAgICAgICBjaGFyIHN0ckJbXSA9IHsweDQxLCAweDAsIDB4MzAyLCAweDMxNiwgMHg0MSwgMHgzMDAsfTsKKyAgICAKKyAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA1KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA1KSk7CisgICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgMSBpbiB0ZXN0IDZcbiIpOworICAgICAgICAgfQorICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgMSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgMSkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgMiBpbiB0ZXN0IDZcbiIpOworICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb24oKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3RydWxlcyA9IHsKKyAgICAgICAgICAgICImQSA9IEFCIC8gQiIsCisgICAgICAgICAgICAiJkEgPSBBXFx1MDMwNi9cXHUwMzA2IiwKKyAgICAgICAgICAgICImYyA9IGNoIC8gaCIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhID0geworICAgICAgICAgICAgIkFCIiwgIkFCIiwgIkFcdTAzMDYiLCAiY2giCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhMiA9IHsKKyAgICAgICAgICAgICJcdTAwNjNcdTAwNjciLAorICAgICAgICAgICAgIlx1MDA2M1x1MDA2OCIsCisgICAgICAgICAgICAiXHUwMDYzXHUwMDZDIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gdGVzdHJ1bGVzMyA9IHsKKyAgICAgICAgICAgICImeiA8IHh5eiAmeHl6dyA8PCBCIiwKKyAgICAgICAgICAgICImeiA8IHh5eiAmeHl6IDw8IEIgLyB3IiwKKyAgICAgICAgICAgICImeiA8IGNoICZhY2htIDw8IEIiLAorICAgICAgICAgICAgIiZ6IDwgY2ggJmEgPDwgQiAvIGNobSIsCisgICAgICAgICAgICAiJlx1ZDgwMFx1ZGMwMHcgPDwgQiIsCisgICAgICAgICAgICAiJlx1ZDgwMFx1ZGMwMCA8PCBCIC8gdyIsCisgICAgICAgICAgICAiJmFcdWQ4MDBcdWRjMDBtIDw8IEIiLAorICAgICAgICAgICAgIiZhIDw8IEIgLyBcdWQ4MDBcdWRjMDBtIiwKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgIGNvbGwgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RydWxlcy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMSA9IG51bGw7CisgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAvLyBsb2dsbigiUnVsZSAiICsgdGVzdHJ1bGVzW2ldICsgIiBmb3IgdGVzdGluZ1xuIik7CisgICAgICAgICAgICBTdHJpbmcgcnVsZSA9IHRlc3RydWxlc1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgIiArIHRlc3RydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyMSA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RkYXRhW2ldKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChqIDwgMikgeworICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMjsKKyAgICAgICAgICAgICAgICBpbnQgY2U7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcudmFsdWVPZih0ZXN0ZGF0YVtpXS5jaGFyQXQoaikpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcjEubmV4dCgpICE9IGNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uIGVsZW1lbnRzIGluIGNvbnRyYWN0aW9uIHNwbGl0IGRvZXMgbm90IG1hdGNoXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaiArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyMS5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gZWxlbWVudHMgbm90IGV4aGF1c3RlZFxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlID0gIiYgYSA8IGIgPCBjIDwgY2ggPCBkICYgYyA9IGNoIC8gaCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbm5vdCBjcmVhdGUgcnVsZWJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjb2xsLmNvbXBhcmUodGVzdGRhdGEyWzBdLCB0ZXN0ZGF0YTJbMV0pICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgIiArIHRlc3RkYXRhMlswXSArICIgPCAiICsgdGVzdGRhdGEyWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RkYXRhMlsxXSwgdGVzdGRhdGEyWzJdKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkICIgKyB0ZXN0ZGF0YTJbMV0gKyAiIDwgIiArIHRlc3RkYXRhMlsyXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciAgICAgICAgICBjb2xsMSwgY29sbDI7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEsIGl0ZXIyOworICAgICAgICAgICAgY2hhciAgICAgICAgICAgICAgIGNoID0gMHgwMDQyOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgY2U7CisgICAgICAgICAgICBydWxlID0gdGVzdHJ1bGVzM1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbDEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBjYW5ub3QgY3JlYXRlIHJ1bGViYXNlZCBjb2xsYXRvciwgcnVsZToiICsgcnVsZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZSA9IHRlc3RydWxlczNbaSArIDFdOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgdGVzdHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIxID0gY29sbDEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nLnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNlID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyMi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNFcyBkb2VzIG5vdCBtYXRjaFxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBpdGVyMS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXRlcjIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ0VzIG5vdCBleGhhdXN0ZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwYW5zaW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0cnVsZXMgPSB7CisgICAgICAgICAgICAiJkogPDwgSyAvIEIgJiBLIDw8IE0iLAorICAgICAgICAgICAgIiZKIDw8IEsgLyBCIDw8IE0iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhID0geworICAgICAgICAgICAgIkpBIiwgIk1BIiwgIktBIiwgIktDIiwgIkpDIiwgIk1DIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yICBjb2xsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGUgIiArIHRlc3RydWxlc1tpXSArICIgZm9yIHRlc3RpbmdcbiIpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSB0ZXN0cnVsZXNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkICIgKyB0ZXN0cnVsZXNbaV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA1OyBqICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RkYXRhW2pdLCB0ZXN0ZGF0YVtqICsgMV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb25FbmRDb21wYXJlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICImYj1jaCI7CisgICAgICAgIFN0cmluZyBzcmMgPSAiYmVjIjsKKyAgICAgICAgU3RyaW5nIHRndCA9ICJiZWNoIjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkICIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHNyYywgdGd0LCAxKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZVJ1bGVCYXNlZENvbGxhdG9ycygpIHsKKyAgICAgICAgaWYgKGdldEluY2x1c2lvbigpIDwgNSkgeworICAgICAgICAgICAgLy8gbm90IHNlcmlvdXMgZW5vdWdoIHRvIHJ1biB0aGlzCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlIGxvY2FsZVtdID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBTdHJpbmcgcHJldnJ1bGUgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIExvY2FsZSBsID0gbG9jYWxlW2ldOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsbCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbGxrZXkgPSByYi5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvZGVmYXVsdCIpOyAKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBlbGVtZW50cyA9IHJiLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy8iICsgY29sbGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBydWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgT2JqZWN0W11bXSBjb2xsZGF0YSA9IChPYmplY3RbXVtdKWVsZW1lbnRzOworICAgICAgICAgICAgICAgICAgLy8gJSVDb2xsYXRpb25CaW4KKyAgICAgICAgICAgICAgICAgIGlmIChjb2xsZGF0YVswXVsxXSBpbnN0YW5jZW9mIGJ5dGVbXSl7CisgICAgICAgICAgICAgICAgICBydWxlID0gKFN0cmluZyljb2xsZGF0YVsxXVsxXTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgcnVsZSA9IChTdHJpbmcpY29sbGRhdGFbMF1bMV07CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBydWxlID0gZWxlbWVudHMuZ2V0U3RyaW5nKCJTZXF1ZW5jZSIpOyAgIAorCisgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMSA9IAorICAgICAgICAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlLmVxdWFscyhjb2wxLmdldFJ1bGVzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJSdWxlcyBzaG91bGQgYmUgdGhlIHNhbWUgaW4gdGhlIFJ1bGVCYXNlZENvbGxhdG9yIGFuZCBMb2NhbGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUgIT0gbnVsbCAmJiBydWxlLmxlbmd0aCgpID4gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgIXJ1bGUuZXF1YWxzKHByZXZydWxlKSkgeworICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2wyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbDEuZXF1YWxzKGNvbDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUgcnVsZXMgZm9yICIgKyBsLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZXZydWxlID0gcnVsZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJFcnJvciByZXRyaWV2aW5nIHJlc291cmNlIGJ1bmRsZSBmb3IgdGVzdGluZzogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE9wdGltaXplKCkgeworICAgICAgICAvKiB0aGlzIGlzIG5vdCByZWFsbHkgYSB0ZXN0IC0ganVzdCB0cnlpbmcgb3V0IAorICAgICAgICAgKiB3aGV0aGVyIGNvcHlpbmcgb2YgVUNBIGNvbnRlbnRzIHdpbGwgZmFpbCAKKyAgICAgICAgICogQ2Fubm90IHJlYWxseSB0ZXN0LCBzaW5jZSB0aGUgZnVuY3Rpb25hbGl0eSAKKyAgICAgICAgICogcmVtYWlucyB0aGUgc2FtZS4KKyAgICAgICAgICovCisgICAgICAgIFN0cmluZyBydWxlc1tdID0geworICAgICAgICAgICAgIltvcHRpbWl6ZSBbXFx1QUMwMC1cXHVEN0ZGXV0iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyBkYXRhW11bXSA9IHsKKyAgICAgICAgICAgIHsgImEiLCAiYiJ9CisgICAgICAgIH07CisgICAgICAgIGludCBpID0gMDsKKyAgICAKKyAgICAgICAgZm9yKGkgPSAwOyBpPHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0gICAgCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdElkZW50aWNhbENvbXBhcmUoKSAKKyAgICB7ICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCAKKyAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJiBcdUQ4MDBcdURDMDAgPSBcdUQ4MDBcdURDMDEiKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJBID0gIkFBXHUwMzAwXHUwMzE2XHVEODAwXHVEQzAxIjsKKyAgICAgICAgICAgIFN0cmluZyBzdHJCID0gIkFcdTAwYzBcdTAzMTZcdUQ4MDBcdURDMDAiOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbCwgc3RyQSwgc3RyQiwgMSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNZXJnZVNvcnRLZXlzKCkgCisgICAgeworICAgICAgICBTdHJpbmcgY2FzZXNbXSA9IHsiYWJjIiwgImFiY2QiLCAiYWJjZGUifTsKKyAgICAgICAgU3RyaW5nIHByZWZpeCA9ICJmb28iOworICAgICAgICBTdHJpbmcgc3VmZml4ID0gImVnZyI7CisgICAgICAgIENvbGxhdGlvbktleSBtZXJnZWRQcmVmaXhLZXlzW10gPSBuZXcgQ29sbGF0aW9uS2V5W2Nhc2VzLmxlbmd0aF07CisgICAgICAgIENvbGxhdGlvbktleSBtZXJnZWRTdWZmaXhLZXlzW10gPSBuZXcgQ29sbGF0aW9uS2V5W2Nhc2VzLmxlbmd0aF07CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihMb2NhbGUuRU5HTElTSCwgY2FzZXMpOworICAgICAgICAKKyAgICAgICAgaW50IHN0cmVuZ3RoID0gQ29sbGF0b3IuUFJJTUFSWTsKKyAgICAgICAgd2hpbGUgKHN0cmVuZ3RoIDw9IENvbGxhdG9yLklERU5USUNBTCkgeworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChzdHJlbmd0aCk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgcHJlZml4S2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkocHJlZml4KTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBzdWZmaXhLZXkgPSBjb2xsLmdldENvbGxhdGlvbktleShzdWZmaXgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkoY2FzZXNbaV0pOworICAgICAgICAgICAgICAgIG1lcmdlZFByZWZpeEtleXNbaV0gPSBwcmVmaXhLZXkubWVyZ2Uoa2V5KTsKKyAgICAgICAgICAgICAgICBtZXJnZWRTdWZmaXhLZXlzW2ldID0gc3VmZml4S2V5Lm1lcmdlKGtleSk7CisgICAgICAgICAgICAgICAgaWYgKG1lcmdlZFByZWZpeEtleXNbaV0uZ2V0U291cmNlU3RyaW5nKCkgIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICB8fCBtZXJnZWRTdWZmaXhLZXlzW2ldLmdldFNvdXJjZVN0cmluZygpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk1lcmdlZCBzb3VyY2Ugc3RyaW5nIGVycm9yOiBleHBlY3RlZCBudWxsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkUHJlZml4S2V5c1tpLTFdLmNvbXBhcmVUbyhtZXJnZWRQcmVmaXhLZXlzW2ldKQorICAgICAgICAgICAgICAgICAgICAgICAgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHdoaWxlIGNvbXBhcmluZyBwcmVmaXhlZCBrZXlzIEAgc3RyZW5ndGggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHJlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmV0dGlmeShtZXJnZWRQcmVmaXhLZXlzW2ktMV0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHByZXR0aWZ5KG1lcmdlZFByZWZpeEtleXNbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkU3VmZml4S2V5c1tpLTFdLmNvbXBhcmVUbyhtZXJnZWRTdWZmaXhLZXlzW2ldKSAKKyAgICAgICAgICAgICAgICAgICAgICAgID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB3aGlsZSBjb21wYXJpbmcgc3VmZml4ZWQga2V5cyBAIHN0cmVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RyZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocHJldHRpZnkobWVyZ2VkU3VmZml4S2V5c1tpLTFdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmV0dGlmeShtZXJnZWRTdWZmaXhLZXlzW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuUVVBVEVSTkFSWSkgeworICAgICAgICAgICAgICAgIHN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0cmVuZ3RoICsrOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaWFibGVUb3AoKSAKKyAgICB7CisgICAgICAgIC8vIHBhcnNlTmV4dFRva2VuIGlzIG5vdCByZWxlYXNlZCBhcyBwdWJsaWMgc28gaSBjcmVhdGUgbXkgb3duIHJ1bGVzCisgICAgICAgIFN0cmluZyBydWxlcyA9ICImIGEgPCBiIDwgYyA8IGRlIDwgZmcgJiBoaSA9IGoiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBTdHJpbmcgdG9rZW5zW10gPSB7ImEiLCAiYiIsICJjIiwgImRlIiwgImZnIiwgImhpIiwgImoiLCAiYWIifTsKKyAgICAgICAgICAgIGNvbGwuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IHZhclRvcE9yaWdpbmFsID0gY29sbC5nZXRWYXJpYWJsZVRvcCgpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGludCB2YXJUb3AgPSBjb2xsLnNldFZhcmlhYmxlVG9wKHRva2Vuc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRva2VuICIgKyB0b2tlbnNbaV0gKyAiIGV4cGVjdGVkIHRvIGZhaWwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodmFyVG9wICE9IGNvbGwuZ2V0VmFyaWFibGVUb3AoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYW5kIGdldHRpbmcgdmFyaWFibGUgdG9wIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleTEgPSBjb2xsLmdldENvbGxhdGlvbktleSh0b2tlbnNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7IGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrZXkyID0gY29sbC5nZXRDb2xsYXRpb25LZXkodG9rZW5zW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkyLmNvbXBhcmVUbyhrZXkxKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU2V0dGluZyB2YXJpYWJsZSB0b3Agc2hvdWxkbid0IGNoYW5nZSB0aGUgY29tcGFyaXNvbiBzZXF1ZW5jZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBzb3J0b3JkZXJbXSA9IGtleTIudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3J0b3JkZXIubGVuZ3RoID4gMCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoa2V5Mi50b0J5dGVBcnJheSgpKVswXSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJpbWFyeSBzb3J0IG9yZGVyIHNob3VsZCBiZSAwIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodG9rZW5zW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgLyppbnQgY2UgPSovIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgY2UyID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjZTIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRva2VuICIgKyB0b2tlbnNbaV0gKyAiIG5vdCBleHBlY3RlZCB0byBmYWlsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGwuZ2V0VmFyaWFibGVUb3AoKSAhPSB2YXJUb3BPcmlnaW5hbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIldoZW4gZXhjZXB0aW9uIGlzIHRocm93biB2YXJpYWJsZSB0b3Agc2hvdWxkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIm5vdCBiZSBjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sbC5zZXRWYXJpYWJsZVRvcCh2YXJUb3BPcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgaWYgKHZhclRvcE9yaWdpbmFsICE9IGNvbGwuZ2V0VmFyaWFibGVUb3AoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgcmVzdG9yZSBvbGQgdmFyaWFibGUgdG9wXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRlc3RpbmcgY2FsbGluZyB3aXRoIGVycm9yIHNldAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldFZhcmlhYmxlVG9wKCIiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEVtcHR5IHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRWYXJpYWJsZVRvcChudWxsKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVDQVJ1bGVzKCkgCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gb25seSByb290IGxvY2FsZSBjYW4gaGF2ZSBlbXB0eSB0YWlsb3JpbmdzIC4uIG5vdCBFbmdsaXNoIQorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCAKKyAgICAgICAgICAgICAgICA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCIiLCIiLCIiKSk7CisgICAgICAgICAgICBTdHJpbmcgcnVsZSAKKyAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0UnVsZXMoZmFsc2UpOworICAgICAgICAgICAgaWYgKCFydWxlLmVxdWFscygiIikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW1wdHkgcnVsZSBzdHJpbmcgc2hvdWxkIGhhdmUgZW1wdHkgcnVsZXMgIiArIHJ1bGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZSA9IGNvbGwuZ2V0UnVsZXModHJ1ZSk7CisgICAgICAgICAgICBpZiAocnVsZS5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlVDQSBydWxlIHN0cmluZyBzaG91bGQgbm90IGJlIGVtcHR5Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBKaXR0ZXJidWcgMjcyNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTaGlmdGVkKCkKKyAgICB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsYXRvciwgIiBhIiwgImEiLCAwKTsgLy8gd29ya3MgcHJvcGVybHkKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbGF0b3IsICJhIiwgImEgIiwgMCk7IC8vIGluY29uc2lzdGVudCByZXN1bHRzCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBwcmV2aW91cyBhbmQgbmV4dCBmb3IgdGhlIHdob2xlIHNldCBvZgorICAgICAqIHVuaWNvZGUgY2hhcmFjdGVycyB3aXRoIG5vcm1hbGl6YXRpb24gb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE51bWVyaWNDb2xsYXRpb24oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGJhc2ljVGVzdFN0cmluZ3NbXSA9IHsiaGVsbG8xIiwgImhlbGxvMiIsICJoZWxsbzEyMzQ1NiJ9OworICAgICAgICBTdHJpbmcgcHJlWmVyb1Rlc3RTdHJpbmdzW10gPSB7ImF2ZXJ5MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnkwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnkwMDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5MDAwMSJ9OworICAgICAgICBTdHJpbmcgdGhpcnR5VHdvQml0TnVtZXJpY1N0cmluZ3NbXSA9IHsiYXZlcnk0Mjk0OTY3Mjk2MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdmVyeTQyOTQ5NjcyOTYxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5NDI5NDk2NzI5NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnk0Mjk0OTY3Mjk2MTAifTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHN1cHBsZW1lbnRhcnlEaWdpdHNbXSA9IHsiXHVEODM1XHVERkNFIiwgLy8gMCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkNGIiwgLy8gMSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQwIiwgLy8gMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQxIiwgLy8gMyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkNGXHVEODM1XHVERkNFIiwgLy8gMTAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZDRlx1RDgzNVx1REZDRiIsIC8vIDExIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGQ0ZcdUQ4MzVcdURGRDAiLCAvLyAxMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQwXHVEODM1XHVERkNFIiwgLy8gMjAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZEMFx1RDgzNVx1REZDRiIsIC8vIDIxIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGRDBcdUQ4MzVcdURGRDAiIC8vIDIyIAorICAgICAgICB9OworICAgIAorICAgICAgICBTdHJpbmcgZm9yZWlnbkRpZ2l0c1tdID0geyJcdTA2NjEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjJcdTA2NjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjNcdTA2NjMiCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIE9wZW4gb3VyIGNvbGxhdG9yLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsIAorICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBTdHJpbmcgYXR0W10gPSB7Ik51bWVyaWNDb2xsYXRpb24ifTsKKyAgICAgICAgQm9vbGVhbiB2YWxbXSA9IHtuZXcgQm9vbGVhbih0cnVlKX07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkVOR0xJU0gsIGJhc2ljVGVzdFN0cmluZ3MsIGF0dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlydHlUd29CaXROdW1lcmljU3RyaW5ncywgYXR0LCB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCBmb3JlaWduRGlnaXRzLCBhdHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCk7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkVOR0xJU0gsIHN1cHBsZW1lbnRhcnlEaWdpdHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dCwgdmFsKTsgICAgCisgICAgCisgICAgICAgIC8vIFNldHRpbmcgdXAgb3VyIGNvbGxhdG9yIHRvIGRvIGRpZ2l0cy4KKyAgICAgICAgY29sbC5zZXROdW1lcmljQ29sbGF0aW9uKHRydWUpOworICAgIAorICAgICAgICAvLyBUZXN0aW5nIHRoYXQgcHJlcGVuZGVkIHplcm9lcyBzdGlsbCB5aWVsZCB0aGUgY29ycmVjdCBjb2xsYXRpb24gCisgICAgICAgIC8vIGJlaGF2aW9yLiAKKyAgICAgICAgLy8gV2UgZXhwZWN0IHRoYXQgZXZlcnkgZWxlbWVudCBpbiBvdXIgc3RyaW5ncyBhcnJheSB3aWxsIGJlIGVxdWFsLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByZVplcm9UZXN0U3RyaW5ncy5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCBwcmVaZXJvVGVzdFN0cmluZ3MubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbCwgcHJlWmVyb1Rlc3RTdHJpbmdzW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVaZXJvVGVzdFN0cmluZ3Nbal0sMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL2NvdmVyIHNldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0LCBnZXROdW1lcmljQ29sbGF0aW9uCisgICAgICAgIGFzc2VydFRydWUoIlRoZSBOdW1lcmljIENvbGxhdGlvbiBzZXR0aW5nIGlzIG9uIiwgY29sbC5nZXROdW1lcmljQ29sbGF0aW9uKCkpOworICAgICAgICBjb2xsLnNldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0KCk7CisgICAgICAgIGxvZ2xuKCJBZnRlciBzZXQgTnVtZXJpYyB0byBkZWZhdWx0LCB0aGUgc2V0dGluZyBpczogIiArIGNvbGwuZ2V0TnVtZXJpY0NvbGxhdGlvbigpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDMyNDkoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJnggPCBhICZ6IDwgYSI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgaWYoY29sbCE9bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkNvbGxhdG9yIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIik7ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggIiArIHJ1bGUgKyAiIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaWJldGFuQ29uZm9ybWFuY2UoKSAKKyAgICB7ICAKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsiXHUwRkIyXHUwNTkxXHUwRjcxXHUwMDYxIiwgIlx1MEZCMlx1MEY3MVx1MDA2MSJ9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICAgICAgaWYgKGNvbGwuY29tcGFyZSh0ZXN0WzBdLCB0ZXN0WzFdKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpYmV0YW4gY29tcGFyaXNvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFswXSwgdGVzdFsxXSwgMCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFVDQSBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKMzM0NygpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvciljb2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgICAgICBpZiAoY29sbC5jb21wYXJlKCI2IiwgIiE2IikgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJKaXR0ZXJidWcgMzM0NyBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgY3JlYXRpbmcgVUNBIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBpbnlpblByb2JsZW0oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsgIlx1NEU1Nlx1NEU1Nlx1Nzc2MSIsICJcdTRFNTZcdTVCNjlcdTVCNTAiIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwgIiIsICJQSU5ZSU4iKSwgdGVzdCk7ICAgICAKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGxvbmcgdG9wQnl0ZSA9IDB4RkYwMDAwMDBMOworICAgIHN0YXRpYyBmaW5hbCBsb25nIGJvdHRvbUJ5dGUgPSAweEZGTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBmb3VyQnl0ZXMgPSAweEZGRkZGRkZGTDsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9JTlBVVCA9IDB4MjIwMDAxOyAvLyAyICogVW5pY29kZSByYW5nZSArIDIKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2hvdyhpbnQgaSwgSW1wbGljaXRDRUdlbmVyYXRvciBpbXApIHsKKyAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDw9IE1BWF9JTlBVVCkgeworICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5oZXgoaSkgKyAiXHQiICsgVXRpbGl0eS5oZXgoaW1wLmdldEltcGxpY2l0RnJvbVJhdyhpKSAmIGZvdXJCeXRlcykpOworICAgICAgICB9IAorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB0aHJvd0Vycm9yKFN0cmluZyB0aXRsZSwgaW50IGNwLCBJbXBsaWNpdENFR2VuZXJhdG9yIGltcCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRpdGxlICsgIlx0IiArIFV0aWxpdHkuaGV4KGNwLCA2KSArICJcdCIgKyBVdGlsaXR5LmhleChpbXAuZ2V0SW1wbGljaXRGcm9tUmF3KGNwKSAmIGZvdXJCeXRlcykpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGxvbmcgY2UpIHsKKyAgICAgICAgZXJybG4odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY2UgJiBmb3VyQnl0ZXMpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEltcGxpY2l0R2VuZXJhdGlvbigpCisgICAgeworICAgICAgICBsb2dsbigiU3RhcnQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEltcGxpY2l0Q0VHZW5lcmF0b3IgZm9vID0gbmV3IEltcGxpY2l0Q0VHZW5lcmF0b3IoMHhFMCwgMHhFNCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvL2ludCB4ID0gZm9vLmdldFJhd0ltcGxpY2l0KDB4RjgxMCk7CisgICAgICAgICAgICBmb28uZ2V0UmF3RnJvbUltcGxpY2l0KDB4RTIwMzAzRTcpOworCisgICAgICAgICAgICBpbnQgZ2FwNCA9IGZvby5nZXRHYXA0KCk7CisgICAgICAgICAgICBsb2dsbigiR2FwNDogIiArIGdhcDQpOyAKKyAgICAgICAgICAgIGludCBnYXAzID0gZm9vLmdldEdhcDMoKTsKKyAgICAgICAgICAgIGludCBtaW5UcmFpbCA9IGZvby5nZXRNaW5UcmFpbCgpOworICAgICAgICAgICAgaW50IG1heFRyYWlsID0gZm9vLmdldE1heFRyYWlsKCk7CisgICAgICAgICAgICBsb25nIGxhc3QgPSAwOworICAgICAgICAgICAgbG9uZyBjdXJyZW50OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gTUFYX0lOUFVUOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gZm9vLmdldEltcGxpY2l0RnJvbVJhdyhpKSAmIGZvdXJCeXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgaXQgcm91bmQtdHJpcHMgQU5EIHRoYXQgYWxsIGludGVydmVuaW5nIG9uZXMgYXJlIGlsbGVnYWwKKyAgICAgICAgICAgICAgICBpbnQgcm91bmR0cmlwID0gZm9vLmdldFJhd0Zyb21JbXBsaWNpdCgoaW50KWN1cnJlbnQpOworICAgICAgICAgICAgICAgIGlmIChyb3VuZHRyaXAgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKCJObyByb3VuZHRyaXAiLCBpLCBmb28pOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxvbmcgaiA9IGxhc3QgKyAxOyBqIDwgY3VycmVudDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByb3VuZHRyaXAgPSBmb28uZ2V0UmF3RnJvbUltcGxpY2l0KChpbnQpaik7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZSBhbiBlcnJvciBpZiBpdCAqZG9lc24ndCogZmluZCBhbiBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdW5kdHJpcCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoIkZhaWxzIHRvIHJlY29nbml6ZSBpbGxlZ2FsIiwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gbm93IGRvIG90aGVyIGNvbnNpc3RlbmN5IGNoZWNrcworICAgICAgICAgICAgICAgIGxvbmcgbGFzdEJvdHRvbSA9IGxhc3QgJiBib3R0b21CeXRlOworICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudEJvdHRvbSA9IGN1cnJlbnQgJiBib3R0b21CeXRlOworICAgICAgICAgICAgICAgIGxvbmcgbGFzdFRvcCA9IGxhc3QgJiB0b3BCeXRlOworICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudFRvcCA9IGN1cnJlbnQgJiB0b3BCeXRlOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZG8gc29tZSBjb25zaXN0ZW5jeSBjaGVja3MKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgbG9uZyBnYXAgPSBjdXJyZW50IC0gbGFzdDsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Qm90dG9tICE9IDApIHsgLy8gaWYgd2UgYXJlIGEgNC1ieXRlCisgICAgICAgICAgICAgICAgICAvLyBnYXAgaGFzIHRvIGJlIGF0IGxlYXN0IGdhcDQKKyAgICAgICAgICAgICAgICAgIC8vIGFuZCBnYXAgZnJvbSBtaW5UcmFpbCwgbWF4VHJhaWwgaGFzIHRvIGJlIGF0IGxlYXN0IGdhcDQKKyAgICAgICAgICAgICAgICAgIGlmIChnYXAgPD0gZ2FwNCkgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXA0IGJldHdlZW4iLCBpKTsKKyAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Qm90dG9tIDwgbWluVHJhaWwgKyBnYXA0KSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDQgYmVmb3JlIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEJvdHRvbSA+IG1heFRyYWlsIC0gZ2FwNCkgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXA0IGFmdGVyIiwgaSk7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyB3ZSBhcmUgYSB0aHJlZS1ieXRlCisgICAgICAgICAgICAgICAgICBnYXAgPSBnYXAgPj4gODsgLy8gbW92ZSBnYXAgZG93biBmb3IgY29tcGFyaXNvbi4KKyAgICAgICAgICAgICAgICAgIGxvbmcgY3VycmVudDNCb3R0b20gPSAoY3VycmVudCA+PiA4KSAmIGJvdHRvbUJ5dGU7CisgICAgICAgICAgICAgICAgICBpZiAoZ2FwIDw9IGdhcDMpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwMyBiZXR3ZWVuICIsIGkpOworICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQzQm90dG9tIDwgbWluVHJhaWwgKyBnYXAzKSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDMgYmVmb3JlIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudDNCb3R0b20gPiBtYXhUcmFpbCAtIGdhcDMpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwMyBhZnRlciIsIGkpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgb3V0IHNvbWUgdmFsdWVzIGZvciBzcG90LWNoZWNraW5nCisgICAgICAgICAgICAgICAgaWYgKGxhc3RUb3AgIT0gY3VycmVudFRvcCB8fCBpID09IDB4MTAwMDAgfHwgaSA9PSAweDExMDAwMCkgeworICAgICAgICAgICAgICAgICAgICBzaG93KGktMywgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdyhpLTIsIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIHNob3coaS0xLCBmb28pOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdEJvdHRvbSA9PSAwICYmIGN1cnJlbnRCb3R0b20gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIisgcHJpbWFyeSBib3VuZGFyeSwgNC1ieXRlIENFJ3MgYmVsb3ciKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0VG9wICE9IGN1cnJlbnRUb3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIrIHByaW1hcnkgYm91bmRhcnkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzaG93KGksIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIHNob3coaSsxLCBmb28pOworICAgICAgICAgICAgICAgICAgICBzaG93KGkrMiwgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIi4uLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAgICAgICAgICAgICAgICBpZihmb28uZ2V0Q29kZVBvaW50RnJvbVJhdyhmb28uZ2V0UmF3RnJvbUNvZGVQb2ludChpKSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm8gcmF3IDwtPiBjb2RlIHBvaW50IHJvdW5kdHJpcCBmb3IgIitVdGlsaXR5LmhleChpKSk7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaG93KE1BWF9JTlBVVC0yLCBmb28pOworICAgICAgICAgICAgc2hvdyhNQVhfSU5QVVQtMSwgZm9vKTsKKyAgICAgICAgICAgIHNob3coTUFYX0lOUFVULCBmb28pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBsb2dsbigiRW5kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBzdXBlcmNlZGVzIFRlc3RKNzg0ICovCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZVBpbnlpbigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gCisgICAgICAgICAgICAiJltiZWZvcmUgMl1BIDw8IFx1MDEwMSAgPDw8IFx1MDEwMCA8PCBcdTAwRTEgPDw8IFx1MDBDMSA8PCBcdTAxQ0UgPDw8IFx1MDFDRCA8PCBcdTAwRTAgPDw8IFx1MDBDMCIgKworICAgICAgICAgICAgIiZbYmVmb3JlIDJdZSA8PCBcdTAxMTMgPDw8IFx1MDExMiA8PCBcdTAwRTkgPDw8IFx1MDBDOSA8PCBcdTAxMUIgPDw8IFx1MDExQSA8PCBcdTAwRTggPDw8IFx1MDBDOCIgKworICAgICAgICAgICAgIiZbYmVmb3JlIDJdIGkgPDwgXHUwMTJCIDw8PCBcdTAxMkEgPDwgXHUwMEVEIDw8PCBcdTAwQ0QgPDwgXHUwMUQwIDw8PCBcdTAxQ0YgPDwgXHUwMEVDIDw8PCBcdTAwQ0MiICsKKyAgICAgICAgICAgICImW2JlZm9yZSAyXSBvIDw8IFx1MDE0RCA8PDwgXHUwMTRDIDw8IFx1MDBGMyA8PDwgXHUwMEQzIDw8IFx1MDFEMiA8PDwgXHUwMUQxIDw8IFx1MDBGMiA8PDwgXHUwMEQyIiArCisgICAgICAgICAgICAiJltiZWZvcmUgMl11IDw8IFx1MDE2QiA8PDwgXHUwMTZBIDw8IFx1MDBGQSA8PDwgXHUwMERBIDw8IFx1MDFENCA8PDwgXHUwMUQzIDw8IFx1MDBGOSA8PDwgXHUwMEQ5IiArCisgICAgICAgICAgICAiJlUgPDwgXHUwMUQ2IDw8PCBcdTAxRDUgPDwgXHUwMUQ4IDw8PCBcdTAxRDcgPDwgXHUwMURBIDw8PCBcdTAxRDkgPDwgXHUwMURDIDw8PCBcdTAxREIgPDwgXHUwMEZDIjsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJsXHUwMTAxIiwKKyAgICAgICAgICAgICJsYSIsCisgICAgICAgICAgICAibFx1MDEwMW4iLAorICAgICAgICAgICAgImxhbiAiLAorICAgICAgICAgICAgImxcdTAxMTMiLAorICAgICAgICAgICAgImxlIiwKKyAgICAgICAgICAgICJsXHUwMTEzbiIsCisgICAgICAgICAgICAibGVuIgorICAgICAgICB9OworICAgIAorICAgICAgICBTdHJpbmcgdGVzdDJbXSA9IHsKKyAgICAgICAgICAgICJ4XHUwMTAxIiwKKyAgICAgICAgICAgICJ4XHUwMTAwIiwKKyAgICAgICAgICAgICJYXHUwMTAxIiwKKyAgICAgICAgICAgICJYXHUwMTAwIiwKKyAgICAgICAgICAgICJ4XHUwMEUxIiwKKyAgICAgICAgICAgICJ4XHUwMEMxIiwKKyAgICAgICAgICAgICJYXHUwMEUxIiwKKyAgICAgICAgICAgICJYXHUwMEMxIiwKKyAgICAgICAgICAgICJ4XHUwMUNFIiwKKyAgICAgICAgICAgICJ4XHUwMUNEIiwKKyAgICAgICAgICAgICJYXHUwMUNFIiwKKyAgICAgICAgICAgICJYXHUwMUNEIiwKKyAgICAgICAgICAgICJ4XHUwMEUwIiwKKyAgICAgICAgICAgICJ4XHUwMEMwIiwKKyAgICAgICAgICAgICJYXHUwMEUwIiwKKyAgICAgICAgICAgICJYXHUwMEMwIiwKKyAgICAgICAgICAgICJ4YSIsCisgICAgICAgICAgICAieEEiLAorICAgICAgICAgICAgIlhhIiwKKyAgICAgICAgICAgICJYQSIsCisgICAgICAgICAgICAieFx1MDEwMXgiLAorICAgICAgICAgICAgInhcdTAxMDB4IiwKKyAgICAgICAgICAgICJ4XHUwMEUxeCIsCisgICAgICAgICAgICAieFx1MDBDMXgiLAorICAgICAgICAgICAgInhcdTAxQ0V4IiwKKyAgICAgICAgICAgICJ4XHUwMUNEeCIsCisgICAgICAgICAgICAieFx1MDBFMHgiLAorICAgICAgICAgICAgInhcdTAwQzB4IiwKKyAgICAgICAgICAgICJ4YXgiLAorICAgICAgICAgICAgInhBeCIKKyAgICAgICAgfTsKKyAgICAgICAgLyogVE9ETzogcG9ydCBidWlsZGVyIGZpeGVzIHRvIGJlZm9yZSAqLworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCIiLCIiKSwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXMsIHRlc3QyKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiemgiLCIiLCIiKSwgdGVzdDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVcHBlckZpcnN0UXVhdGVybmFyeSgpCisgICAgeworICAgICAgU3RyaW5nIHRlc3RzW10gPSB7ICJCIiwgImIiLCAiQmIiLCAiYkIiIH07CisgICAgICBTdHJpbmdbXSBhdHQgPSB7ICJzdHJlbmd0aCIsICJVcHBlckZpcnN0IiB9OworICAgICAgT2JqZWN0IGF0dFZhbHNbXSA9IHsgbmV3IEludGVnZXIoQ29sbGF0b3IuUVVBVEVSTkFSWSksIG5ldyBCb29sZWFuKHRydWUpIH07CisgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKG5ldyBMb2NhbGUoInJvb3QiLCIiLCIiKSwgdGVzdHMsIGF0dCwgYXR0VmFscyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKNDk2MCgpCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsgIlxcdTAwZTJUIiwgImFUIiB9OworICAgICAgICBTdHJpbmcgYXR0W10gPSB7ICJzdHJlbmd0aCIsICJDYXNlTGV2ZWwiIH07CisgICAgICAgIE9iamVjdCBhdHRWYWxzW10gPSB7IG5ldyBJbnRlZ2VyKENvbGxhdG9yLlBSSU1BUlkpLCBuZXcgQm9vbGVhbih0cnVlKSB9OworICAgICAgICBTdHJpbmcgdGVzdHMyW10gPSB7ICJhIiwgIkEiIH07CisgICAgICAgIFN0cmluZyBydWxlID0gIiZbZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlXT1BPWEiOworICAgICAgICBTdHJpbmcgYXR0MltdID0geyAiQ2FzZUxldmVsIiB9OyAgICAgICAgCisgICAgICAgIE9iamVjdCBhdHRWYWxzMltdID0geyBuZXcgQm9vbGVhbih0cnVlKSB9OworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgd2UgY29ycmVjdGx5IGlnbm9yZSBwcmltYXJ5IGlnbm9yYWJsZXMgb24gY2FzZSBsZXZlbCB3aGVuCisgICAgICAgIC8vIHdlIGhhdmUgb25seSBwcmltYXJ5ICYgY2FzZSBsZXZlbAorICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zQW5kUmVzdWx0KG5ldyBMb2NhbGUoInJvb3QiLCAiIiksIHRlc3RzLCBhdHQsIGF0dFZhbHMsIDApOworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgSUNVNEogd2lsbCBtYWtlIGNhc2UgbGV2ZWwgZm9yIHNvcnRrZXlzIHRoYXQgaGF2ZSBwcmltYXJ5IHN0cmVuZ3RoCisgICAgICAgIC8vIGFuZCBjYXNlIGxldmVsCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMobmV3IExvY2FsZSgicm9vdCIsICIiKSwgdGVzdHMyLCBhdHQsIGF0dFZhbHMpOworICAgICAgICAvLyBUZXN0IHdoZXRoZXIgY29tcGxldGVseSBpZ25vcmFibGUgbGV0dGVycyBoYXZlIGNhc2UgbGV2ZWwgaW5mbyAodGhleSBzaG91bGRuJ3QpCisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXJXaXRoT3B0aW9uc0FuZFJlc3VsdChydWxlLCB0ZXN0czIsIGF0dDIsIGF0dFZhbHMyLCAwKTsgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI1Mjk4KCl7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9nbG4oIk51bWJlciBvZiBjb2xsYXRvciBsb2NhbGVzIHJldHVybmVkIDogIiArIGxvY2FsZXMubGVuZ3RoKTsKKyAgICAgICAgLy8gZG91YmxlLWNoZWNrIGtleXdvcmRzCisgICAgICAgIFN0cmluZ1tdIGtleXdvcmRzID0gQ29sbGF0b3IuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgaWYgKGtleXdvcmRzLmxlbmd0aCAhPSAxIHx8ICFrZXl3b3Jkc1swXS5lcXVhbHMoImNvbGxhdGlvbiIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJpbnRlcm5hbCBjb2xsYXRpb24gZXJyb3IiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSBDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzKCJjb2xsYXRpb24iKTsKKyAgICAgICAgbG9nKCJDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzIHJldHVybmVkOiAiKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8dmFsdWVzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbG9nKHZhbHVlc1tpXSsiLCAiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGxvZ2xuKCJOdW1iZXIgb2YgY29sbGF0b3IgdmFsdWVzIHJldHVybmVkIDogIiArIHZhbHVlcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgU2V0IGZvdW5kVmFsdWVzID0gbmV3IFRyZWVTZXQoQXJyYXlzLmFzTGlzdCh2YWx1ZXMpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBVTG9jYWxlIHRyeUxvY2FsZSA9IHZhbHVlc1tqXS5lcXVhbHMoInN0YW5kYXJkIikgCisgICAgICAgICAgICA/IGxvY2FsZXNbaV0gOiBuZXcgVUxvY2FsZShsb2NhbGVzW2ldICsgIkBjb2xsYXRpb249IiArIHZhbHVlc1tqXSk7IAorICAgICAgICAgICAgLy8gb25seSBhcHBlbmQgaWYgbm90IHN0YW5kYXJkCisgICAgICAgICAgICBVTG9jYWxlIGNhbm9uID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoImNvbGxhdGlvbiIsdHJ5TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICghY2Fub24uZXF1YWxzKHRyeUxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gaGFzIGEgZGlmZmVyZW50IAorICAgICAgICAgICAgfWVsc2Ugey8vIGZ1bmN0aW9uYWwgZXF1aXZhbGVudCwgc28gc2tpcAorICAgICAgICAgICAgICAgIGxvZ2xuKHRyeUxvY2FsZSArICIgOiAiK2Nhbm9uKyIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGNhbiA9IGNhbm9uLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpbnQgaWR4ID0gY2FuLmluZGV4T2YoIkBjb2xsYXRpb249Iik7CisgICAgICAgICAgICBTdHJpbmcgdmFsID0gaWR4ID49IDAgPyBjYW4uc3Vic3RyaW5nKGlkeCsxMSwgY2FuLmxlbmd0aCgpKSA6ICIiOworICAgICAgICAgICAgaWYodmFsLmxlbmd0aCgpPjAgJiYgIWZvdW5kVmFsdWVzLmNvbnRhaW5zKHZhbCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJVbmtub3duIGNvbGxhdGlvbiBmb3VuZCAiKyBjYW4pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gICAgICAgIAorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIgIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQKKyAgICBUZXN0SjUzNjcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdCA9IHsgImEiLCAieSIgfTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIiZOeSA8PCBZICZbZmlyc3Qgc2Vjb25kYXJ5IGlnbm9yYWJsZV0gPDw8IGEiOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzLCB0ZXN0KTsgICAgICAgIAorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTW9ua2V5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1vbmtleVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDc4YjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1vbmtleVRlc3QuamF2YQpAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL0NvbGxhdGlvbk1vbmtleVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L21ua3l0c3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQ29sbGF0aW9uTW9ua2V5VGVzdCBpcyBhIHRoaXJkIGxldmVsIHRlc3QgY2xhc3MuICBUaGlzIHRlc3RzIHRoZSByYW5kb20gCisgKiBzdWJzdHJpbmdzIG9mIHRoZSBkZWZhdWx0IHRlc3Qgc3RyaW5ncyB0byB2ZXJpZnkgaWYgdGhlIGNvbXBhcmUgYW5kIAorICogc29ydCBrZXkgYWxnb3JpdGhtIHdvcmtzIGNvcnJlY3RseS4gIEZvciBleGFtcGxlLCBhbnkgc3RyaW5nIGlzIGFsd2F5cworICogbGVzcyB0aGFuIHRoZSBzdHJpbmcgaXRzZWxmIGFwcGVuZGVkIHdpdGggYW55IGNoYXJhY3Rlci4KKyAqLworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uTW9ua2V5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzb3VyY2UgPSAiLWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IyZeJEAiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTW9ua2V5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdGlvbktleSgpIHsKKyAgICAgICAgaWYoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb25Nb25rZXlUZXN0LlRlc3RDb2xsYXRpb25LZXkoKTogc291cmNlIGlzIGVtcHR5IC0gSUNVX0RBVEEgbm90IHNldCBvciBkYXRhIG1pc3Npbmc/Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0b3IgbXlDb2xsYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBSYW5kb20gcmFuZCA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICBpbnQgcyA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdCA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgc2xlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW4gPSBNYXRoLmFicyhyYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKSAtIHNvdXJjZS5sZW5ndGgoKSkgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZyBzdWJzID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbihzLCBzbGVuKSwgTWF0aC5taW4ocyArIHNsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgICAgICBTdHJpbmcgc3VidCA9IHNvdXJjZS5zdWJzdHJpbmcoTWF0aC5taW4odCwgdGxlbiksIE1hdGgubWluKHQgKyB0bGVuLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGNvbGxhdGlvbktleTEsIGNvbGxhdGlvbktleTI7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJ0KTsKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgaW50IHJldlJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgcmVwb3J0KCBzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3VidCk7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gU2Vjb25kYXJ5CisgICAgICAgIHJldlJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOyAgIC8vIFNlY29uZGFyeQorICAgICAgICByZXBvcnQoIHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3VidCk7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOyAgLy8gUHJpbWFyeQorICAgICAgICByZXZSZXN1bHQgPSBjb2xsYXRpb25LZXkyLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkxKTsgICAvLyBQcmltYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgU3RyaW5nIGFkZE9uZSA9IHN1YnMgKyBTdHJpbmcudmFsdWVPZigweEUwMDApOworICAgIAorICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShhZGRPbmUpOworICAgICAgICByZXN1bHQgPSBjb2xsYXRpb25LZXkxLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgbXNnICs9ICJDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIpIC5MVC4gQ29sbGF0aW9uS2V5KCI7CisgICAgICAgICAgICBtc2cgKz0gYWRkT25lOworICAgICAgICAgICAgbXNnICs9ICIpIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtc2cgPSAiIjsKKyAgICAgICAgcmVzdWx0ID0gY29sbGF0aW9uS2V5Mi5jb21wYXJlVG8oY29sbGF0aW9uS2V5MSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgICAgbXNnICs9ICJDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIikgLkdULiBDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIpIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtIG1vbmtleSB0ZXN0cyB1c2luZyBDb2xsYXRvci5jb21wYXJlCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmUoKSB7CisgICAgICAgIGlmKHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uTW9ua2V5VGVzdC5UZXN0Q29tcGFyZSgpOiBzb3VyY2UgaXMgZW1wdHkgLSBJQ1VfREFUQSBub3Qgc2V0IG9yIGRhdGEgbWlzc2luZz8iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgbXlDb2xsYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBTZWVkIHRoZSByYW5kb20tbnVtYmVyIGdlbmVyYXRvciB3aXRoIGN1cnJlbnQgdGltZSBzbyB0aGF0CisgICAgICAgICAqIHRoZSBudW1iZXJzIHdpbGwgYmUgZGlmZmVyZW50IGV2ZXJ5IHRpbWUgd2UgcnVuLgorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFJhbmRvbSByYW5kID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbSBzZWVkCisgICAgICAgIGludCBzID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0ID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCBzbGVuID0gTWF0aC5hYnMocmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCkgLSBzb3VyY2UubGVuZ3RoKCkpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdGxlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nIHN1YnMgPSBzb3VyY2Uuc3Vic3RyaW5nKE1hdGgubWluKHMsIHNsZW4pLCBNYXRoLm1pbihzICsgc2xlbiwgc291cmNlLmxlbmd0aCgpKSk7CisgICAgICAgIFN0cmluZyBzdWJ0ID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbih0LCB0bGVuKSwgTWF0aC5taW4odCArIHRsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgaW50IHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBzdWJ0KTsgIC8vIFRlcnRpYXJ5CisgICAgICAgIGludCByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBUZXJ0aWFyeQorICAgICAgICByZXBvcnQoc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBzdWJ0KTsgIC8vIFNlY29uZGFyeQorICAgICAgICByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBTZWNvbmRhcnkKKyAgICAgICAgcmVwb3J0KHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnMsIHN1YnQpOyAgLy8gUHJpbWFyeQorICAgICAgICByZXZSZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VidCwgc3Vicyk7ICAvLyBQcmltYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgU3RyaW5nIGFkZE9uZSA9IHN1YnMgKyBTdHJpbmcudmFsdWVPZigweEUwMDApOworICAgIAorICAgICAgICByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3VicywgYWRkT25lKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgbXNnICs9ICJUZXN0IDogIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIgLkxULiAiOworICAgICAgICAgICAgbXNnICs9IGFkZE9uZTsKKyAgICAgICAgICAgIG1zZyArPSAiIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtc2cgPSAiIjsKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKGFkZE9uZSwgc3Vicyk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMSkgeworICAgICAgICAgICAgbXNnICs9ICJUZXN0IDogIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIiAuR1QuICI7CisgICAgICAgICAgICBtc2cgKz0gc3ViczsKKyAgICAgICAgICAgIG1zZyArPSAiIEZhaWxlZC4iOworICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcG9ydChTdHJpbmcgcywgU3RyaW5nIHQsIGludCByZXN1bHQsIGludCByZXZSZXN1bHQpIHsKKyAgICAgICAgaWYgKHJldlJlc3VsdCAhPSAtcmVzdWx0KSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgICAgICBtc2cgKz0gczsgCisgICAgICAgICAgICBtc2cgKz0gIiBhbmQgIjsKKyAgICAgICAgICAgIG1zZyArPSB0OworICAgICAgICAgICAgbXNnICs9ICIgcm91bmQgdHJpcCBjb21wYXJpc29uIGZhaWxlZCI7CisgICAgICAgICAgICBtc2cgKz0gIiAocmVzdWx0ICIgKyByZXN1bHQgKyAiLCByZXZlcnNlIFJlc3VsdCAiICsgcmV2UmVzdWx0ICsgIikiOyAKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVzKCkgeworICAgICAgICBTdHJpbmcgdGVzdFNvdXJjZUNhc2VzW10gPSB7CisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDdhIiwgCisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDdhIiwgCisgICAgICAgIH07CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0VGFyZ2V0Q2FzZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwZTQiLAorICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA2MVx1MDMwOCIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBpbnQgaT0wOworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDEgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIHogPCAweDAwZTRcIiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgeiA8ICI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXMgKyBTdHJpbmcudmFsdWVPZigweDAwZTQpOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oICJEZW1vIFRlc3QgMSBUYWJsZSBDb2xsYXRpb24gb2JqZWN0IGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGk9MDsgaTwyOyBpKyspeworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgLTEpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMiA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgeiA8IGEgMHgwMzA4XCIiKTsKKyAgICAgICAgbmV3UnVsZXMgPSAiIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyAiICYgeiA8IGEiICsgU3RyaW5nLnZhbHVlT2YoMHgwMzA4KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCAiRGVtbyBUZXN0IDEgVGFibGUgQ29sbGF0aW9uIG9iamVjdCBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yKGk9MDsgaTwyOyBpKyspeworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgLTEpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgZG9UZXN0KFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uLCBTdHJpbmcgbXlzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJTb3J0S2V5IGdlbmVyYXRpb24gRmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQoIG15c291cmNlLCB0YXJnZXQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQgKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcmVwb3J0Q1Jlc3VsdChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsgIC8vTEVTUworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeyAgLy9FUVVBTAorICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsgIC8vR1JFQVRFUgorICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYmFjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDExOTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmVnY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25SZWdyZXNzaW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uUmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA0ODQ0NgorICAgIC8vCisgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnJlc2V0KCkgZG9lc24ndCB3b3JrCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA0ODQ0NigpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHRlc3QxID0gIlhGSUxFIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIG1vc3QgZXJyb3JzPyI7CisgICAgICAgIC8vZmluYWwgU3RyaW5nIHRlc3QyID0gIlhmX2lsZSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGxvd2VzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIGxlYXN0IGVycm9ycz8iOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpMSA9PSBudWxsIHx8IGkyID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcidzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgd2hpbGUgKGkxLm5leHQoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLworICAgICAgICB9CisgICAgCisgICAgICAgIGkxLnJlc2V0KCk7CisgICAgICAgIGFzc2VydEVxdWFsKGkxLCBpMik7CisgICAgfQorICAgIAorICAgIHZvaWQgYXNzZXJ0RXF1YWwoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIpIHsKKyAgICAgICAgaW50IGMxLCBjMiwgY291bnQgPSAwOworICAgIAorICAgICAgICBkbyB7CisgICAgICAgICAgICBjMSA9IGkxLm5leHQoKTsKKyAgICAgICAgICAgIGMyID0gaTIubmV4dCgpOworICAgIAorICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICIiOworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cxID0gIiAgICAiOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1zZyArPSBtc2cxICsgY291bnQ7CisgICAgICAgICAgICAgICAgbXNnICs9ICI6IHN0cmVuZ3RoKDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoYzEpOworICAgICAgICAgICAgICAgIG1zZyArPSAiKSAhPSBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMyKTsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIikiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9IHdoaWxlIChjMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDUxODY2CisgICAgLy8KKyAgICAvLyBDb2xsYXRvciAtPiBydWxlcyAtPiBDb2xsYXRvciByb3VuZC10cmlwIGJyb2tlbiBmb3IgZXhwYW5kaW5nIGNoYXJhY3RlcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUxODY2KCkgeworICAgICAgIFN0cmluZyBydWxlcyA9ICI8IG8gJiBvZSAsb1x1MzA4MCYgb2UgLFx1MTUzMCAsTyYgT0UgLE9cdTMwODAmIE9FICxcdTE1MjA8IHAgLFAiOworCisgICAgICAgIC8vIEJ1aWxkIGEgY29sbGF0b3IgY29udGFpbmluZyBleHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgYzEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIHJ1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBCdWlsZCBhbm90aGVyIHVzaW5nIHRoZSBydWxlcyBmcm9tICB0aGUgZmlyc3QKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzIgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoYzEuZ2V0UnVsZXMoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGV5J3JlIHRoZSBzYW1lCisgICAgICAgIGlmICghKGMxLmdldFJ1bGVzKCkuZXF1YWxzKGMyLmdldFJ1bGVzKCkpKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIlJ1bGVzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTM2MzYKKyAgICAvLworICAgIC8vIENvbGxhdG9yIHRoaW5rcyAiYmxhY2stYmlyZCIgPT0gImJsYWNrIgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTM2MzYoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoZW5fdXMuZXF1YWxzKCJibGFja19iaXJkIiwgImJsYWNrIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJibGFjay1iaXJkID09IGJsYWNrIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU0MjM4CisgICAgLy8KKyAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIGFzc29jaWF0ZWQKKyAgICAvLyBDb2xsYXRvciBvYmplY3QncyBtb2RlIGlzIGNoYW5nZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0MjM4KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBmaW5hbCBjaGFyW10gY2hhcnMzID0gezB4NjEsIDB4MDBGQywgMHg2MiwgMHg2NSwgMHg2MywgMHg2YiwgMHgyMCwgMHg0NywgMHg3MiwgMHgwMEY2LCAweDAwREYsIDB4NjUsIDB4MjAsIDB4NGMsIDB4MDBGQywgMHg2MiwgMHg2MywgMHg2YiwgMH07CisgICAgICAgIGZpbmFsIFN0cmluZyB0ZXN0MyA9IG5ldyBTdHJpbmcoY2hhcnMzKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgLy8gTk9URTogVGhlIEphdmEgY29kZSB1c2VzIGVuX3VzIHRvIGNyZWF0ZSB0aGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9ycworICAgICAgICAvLyBidXQgSSdtIHByZXR0eSBzdXJlIHRoYXQncyB3cm9uZywgc28gSSd2ZSBjaGFuZ2VkIHRoaXMgdG8gdXNlIGMuCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDMpOworICAgICAgICBsb2dsbigiT2Zmc2V0OiIgKyBpMS5nZXRPZmZzZXQoKSk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1NDczNAorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OklERU5USUNBTCBkb2N1bWVudGVkIGJ1dCBub3QgaW1wbGVtZW50ZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0NzM0KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAKKyAgICAgICAgICAgIC8vSGVyZSdzIHRoZSBvcmlnaW5hbCBKYXZhOgorICAgIAorICAgICAgICAgICAgU3RyaW5nW10gZGVjb21wID0geworICAgICAgICAgICAgICAgICJcdTAwMDEiLCAgICI8IiwgICAgIlx1MDAwMiIsCisgICAgICAgICAgICAgICAgIlx1MDAwMSIsICAgIj0iLCAgICAiXHUwMDAxIiwKKyAgICAgICAgICAgICAgICAiQVx1MDAwMSIsICAiPiIsICAgICJ+XHUwMDAyIiwgICAgICAvLyBFbnN1cmUgQSBhbmQgfiBhcmUgbm90IGNvbXBhcmVkIGJpdHdpc2UKKyAgICAgICAgICAgICAgICAiXHUwMEMwIiwgICAiPSIsICAgICJBXHUwMzAwIiwgICAgICAvLyBEZWNvbXAgc2hvdWxkIG1ha2UgdGhlc2UgZXF1YWwKKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIGRlY29tcCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGFyZUFycmF5KENvbGxhdG9yIGMsIFN0cmluZ1tdIHRlc3RzKSB7CisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gdGVzdHNbaV07CisgICAgICAgICAgICBTdHJpbmcgY29tcGFyaXNvbiA9IHRlc3RzW2kgKyAxXTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSB0ZXN0c1tpICsgMl07CisgICAgCisgICAgICAgICAgICBpZiAoY29tcGFyaXNvbi5lcXVhbHMoIjwiKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBhcmlzb24uZXF1YWxzKCI+IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBhcmlzb24uZXF1YWxzKCI9IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJCb2d1cyBjb21wYXJpc29uIHN0cmluZyBcIiIgKyBjb21wYXJpc29uICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oImkgPSAiICsgaSk7CisgICAgICAgICAgICBsb2dsbihzb3VyY2UpOworICAgICAgICAgICAgbG9nbG4odGFyZ2V0KTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29tcGFyZVJlc3VsdCA9IGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBDb2xsYXRpb25LZXkgc291cmNlS2V5ID0gbnVsbCwgdGFyZ2V0S2V5ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc291cmNlS2V5ID0gYy5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGdldCBjb2xsYXRpb25LZXkgZm9yIHNvdXJjZSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBjLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgZ2V0IGNvbGxhdGlvbktleSBmb3IgdGFyZ2V0Iik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQga2V5UmVzdWx0ID0gc291cmNlS2V5LmNvbXBhcmVUbyh0YXJnZXRLZXkpOworICAgICAgICAgICAgcmVwb3J0Q1Jlc3VsdCggc291cmNlLCB0YXJnZXQsIHNvdXJjZUtleSwgdGFyZ2V0S2V5LCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIGV4cGVjdGVkUmVzdWx0ICk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsgIC8vTEVTUworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeyAgLy9FUVVBTAorICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsgIC8vR1JFQVRFUgorICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU0NzM2CisgICAgLy8KKyAgICAvLyBGdWxsIERlY29tcG9zaXRpb24gbW9kZSBub3QgaW1wbGVtZW50ZWQKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU0NzM2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIAorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGVzdHMgPSB7ICJcdUZCNEYiLCAiXHUwMDNkIiwgIlx1MDVEMFx1MDVEQyIgfTsgIC8vIEFsZWYtTGFtZWQgdnMuIEFsZWYsIExhbWVkCisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0cyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1ODYxMworICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmNyZWF0ZUluc3RhbmNlKCkgY2F1c2VzIGFuIEFycmF5SW5kZXhPdXRvZkJvdW5kc0V4Y2VwdGlvbiBmb3IgS29yZWFuICAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU4NjEzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLyBDcmVhdGluZyBhIGRlZmF1bHQgY29sbGF0b3IgZG9lc24ndCB3b3JrIHdoZW4gS29yZWFuIGlzIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIGxvY2FsZQorICAgICAgICAKKyAgICAgICAgTG9jYWxlIG9sZERlZmF1bHQgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJrbyIsICIiKSk7CisgICAgCisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICAKKyAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgIAorICAgICAgICBpZiAoYyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNyZWF0ZSBhIEtvcmVhbiBjb2xsYXRvciIpOworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkRGVmYXVsdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNpbmNlIHRoZSBmaXggdG8gdGhpcyBidWcgd2FzIHRvIHR1cm4gb2ZmIGRlY29tcG9zaXRpb24gZm9yIEtvcmVhbiBjb2xsYXRvcnMsCisgICAgICAgIC8vIGVuc3VyZSB0aGF0J3Mgd2hhdCB3ZSBnb3QKKyAgICAgICAgaWYgKGMuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pIHsKKyAgICAgICAgICBlcnJsbigiRGVjb21wb3NpdGlvbiBpcyBub3Qgc2V0IHRvIE5PX0RFQ09NUE9TSVRJT04gZm9yIEtvcmVhbiBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgCisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG9sZERlZmF1bHQpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTk4MjAKKyAgICAvLworICAgIC8vIFJ1bGVCYXNlZENvbGxhdG9yLmdldFJ1bGVzIGRvZXMgbm90IHJldHVybiB0aGUgZXhhY3QgcGF0dGVybiBhcyBpbnB1dAorICAgIC8vIGZvciBleHBhbmRpbmcgY2hhcmFjdGVyIHNlcXVlbmNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk4MjAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiPCBhIDwgYiAsIGMvYSA8IGQgPCB6IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYnVpbGRpbmcgYSBjb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoIGMuZ2V0UnVsZXMoKS5pbmRleE9mKCJjL2EiKSA9PSAtMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oInJldHVybmVkIHJ1bGVzIGRvIG5vdCBjb250YWluICdjL2EnIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDYwMTU0CisgICAgLy8KKyAgICAvLyBNZXJnZUNvbGxhdGlvbjo6Zml4RW50cnkgYnJva2VuIGZvciAiJiBIIDwgXHUwMTMxLCBcdTAxMzAsIGksIEkiCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MDE1NCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0iPCBnLCBHIDwgaCwgSCA8IGksIEkgPCBqLCBKICYgSCA8IFx1MDEzMSwgXHUwMTMwLCBpLCBJIjsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgZXJybG4oImZhaWx1cmUgYnVpbGRpbmcgY29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXJ0aWFyeSA9IHsKKyAgICAgICAgICAgICJBIiwgICAgICAgICI8IiwgICAgIkIiLAorICAgICAgICAgICAgIkgiLCAgICAgICAgIjwiLCAgICAiXHUwMTMxIiwKKyAgICAgICAgICAgICJIIiwgICAgICAgICI8IiwgICAgIkkiLAorICAgICAgICAgICAgIlx1MDEzMSIsICAgIjwiLCAgICAiXHUwMTMwIiwKKyAgICAgICAgICAgICJcdTAxMzAiLCAgICI8IiwgICAgImkiLAorICAgICAgICAgICAgIlx1MDEzMCIsICAgIj4iLCAgICAiSCIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVydGlhcnkpOworICAgIAorICAgICAgICBTdHJpbmdbXSBzZWNvbmRhcnkgPSB7CisgICAgICAgICAgICAiSCIsICAgICAgICAiPCIsICAgICJJIiwKKyAgICAgICAgICAgICJcdTAxMzEiLCAgICI9IiwgICAgIlx1MDEzMCIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCBzZWNvbmRhcnkpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjI0MTgKKyAgICAvLworICAgIC8vIFNlY29uZGFyeS9UZXJ0aWFyeSBjb21wYXJpc29uIGluY29ycmVjdCBpbiBGcmVuY2ggU2Vjb25kYXJ5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MjQxOCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBMb2NhbGU6OkZSQU5DRSgpIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICAgICAicFx1MDBlYWNoZSIsICAgICI8IiwgICAgInBcdTAwZTljaFx1MDBlOSIsICAgIC8vIENvbXBhcmluZyBhY2NlbnRzIGZyb20gZW5kLCBwXHUwMGU5Y2hcdTAwZTkgaXMgZ3JlYXRlcgorICAgICAgICB9OworICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjU1NDAKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpjb21wYXJlKCkgbWV0aG9kIGJyb2tlbiBpZiBlaXRoZXIgc3RyaW5nIGNvbnRhaW5zIHNwYWNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjU1NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoZW5fdXMuY29tcGFyZSgiYWJjZCBlIiwgImFiY2QgZiIpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCInYWJjZCBlJyA9PSAnYWJjZCBmJyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjE4OQorICAgIC8vCisgICAgLy8gVW5pY29kZSBjaGFyYWN0ZXJzIG5lZWQgdG8gYmUgcmVjdXJzaXZlbHkgZGVjb21wb3NlZCB0byBnZXQgdGhlCisgICAgLy8gY29ycmVjdCByZXN1bHQuIEZvciBleGFtcGxlLAorICAgIC8vIHUxRUIxIC0+IFx1MDEwMyArIFx1MDMwMCAtPiBhICsgXHUwMzA2ICsgXHUwMzAwLgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjYxODkoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIGZpbmFsICBTdHJpbmcgdGVzdDEgPSAiXHUxRUIxIjsKKyAgICAgICAgZmluYWwgIFN0cmluZyB0ZXN0MiA9ICJcdTAwNjFcdTAzMDZcdTAzMDAiOworICAgIAorICAgICAgICAvLyBOT1RFOiBUaGUgamF2YSBjb2RlIHVzZWQgZW5fdXMgdG8gY3JlYXRlIHRoZQorICAgICAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Incy4gSSdtIHByZXR0eSBzdXJlIHRoYXQKKyAgICAgICAgLy8gd2FzIHdyb25nLCBzbyBJJ3ZlIGNoYW5nZSB0aGUgY29kZSB0byB1c2UgYzEgYW5kIGMyCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjMS5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMyLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMiA9IGMyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Mik7CisgICAgCisgICAgICAgIGFzc2VydEVxdWFsKGkxLCBpMik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjY5NgorICAgIC8vCisgICAgLy8gRnJlbmNoIHNlY29uZGFyeSBjb2xsYXRpb24gY2hlY2tpbmcgYXQgdGhlIGVuZCBvZiBjb21wYXJlIGl0ZXJhdGlvbiBmYWlscworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2OTYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgY3JlYXRpbmcgY29sbGF0b3IgZm9yIExvY2FsZTo6Z2V0RnJhbmNlKCkiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgCisgICAgICAgIFN0cmluZ1tdIHRlc3RzID0geworICAgICAgICAgICAgIlx1MDBlMCIsICAgIj4iLCAgICAgIlx1MDFmYSIsICAgICAgIC8vIGEtZ3JhdmUgPCAgQS1yaW5nLWFjdXRlCisgICAgICAgIH07ICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNzY2NzYKKyAgICAvLworICAgIC8vIEJhZCBjYW5vbmljYWxpemF0aW9uIG9mIHNhbWUtY2xhc3MgY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc2Njc2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLyBUaGVzZSBjb21iaW5pbmcgY2hhcmFjdGVycyBhcmUgYWxsIGluIHRoZSBzYW1lIGNsYXNzLCBzbyB0aGV5IHNob3VsZCBub3QKKyAgICAgICAgLy8gYmUgcmVvcmRlcmVkLCBhbmQgdGhleSBzaG91bGQgY29tcGFyZSBhcyB1bmVxdWFsLgorICAgICAgICBmaW5hbCBTdHJpbmcgczEgPSAiXHUwMDQxXHUwMzAxXHUwMzAyXHUwMzAwIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHMyID0gIlx1MDA0MVx1MDMwMlx1MDMwMFx1MDMwMSI7CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICBpZiAoYy5jb21wYXJlKHMxLHMyKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiU2FtZS1jbGFzcyBjb21iaW5pbmcgY2hhcnMgd2VyZSByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEBidWcgNDA3ODU4OAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgYnJlYWtzIG9uICI8IGEgPCBiYiIgcnVsZQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzg1ODgoLyogY2hhciAqcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJiYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYmMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIjwgYSA8IGJiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gcmJjLmNvbXBhcmUoImEiLCJiYiIpOworICAgIAorICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJlKGEsYmIpIHJldHVybmVkICIgKyByZXN1bHQgKyAiOyBleHBlY3RlZCAtMSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA3OTIzMQorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3I6Om9wZXJhdG9yPT0oTlVMTCkgdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3OTIzMSgvKiBjaGFyKiBwYXIgKi8pIHsgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGVuX3VzLmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlbl91cy5lcXVhbHMobnVsbCkgcmV0dXJuZWQgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImVuX3VzLmVxdWFscyhudWxsKSB0aHJldyAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODE4NjYKKyAgICAvLworICAgIC8vIENvbWJpbmluZyBjaGFyYWN0ZXJzIGluIGRpZmZlcmVudCBjbGFzc2VzIG5vdCByZW9yZGVyZWQgcHJvcGVybHkuCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4MTg2NigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gVGhlc2UgY29tYmluaW5nIGNoYXJhY3RlcnMgYXJlIGFsbCBpbiBkaWZmZXJlbnQgY2xhc3NlcywKKyAgICAgICAgLy8gc28gdGhleSBzaG91bGQgYmUgcmVvcmRlcmVkIGFuZCB0aGUgc3RyaW5ncyBzaG91bGQgY29tcGFyZSBhcyBlcXVhbC4KKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDA0MVx1MDMwMFx1MDMxNlx1MDMyN1x1MDMxNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTAwNDFcdTAzMjdcdTAzMTZcdTAzMTVcdTAzMDAiOworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0aGF0IHRoZSBkZWZhdWx0IGNvbGxhdG9ycyBhcmUgc2V0IHRvIE5PX0RFQ09NUE9TSVRJT04KKyAgICAgICAgLy8gKGFzIGEgcmVzdWx0IG9mIGZpeGluZyBidWcgNDExNDA3NyksIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkKKyAgICAgICAgLy8gd2hlbiB3ZSdyZSB0ZXN0aW5nIHJlb3JkZXJpbmcgYmVoYXZpb3IuICAtLSBsd2VybmVyLCA1LzUvOTgKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgaWYgKGMuY29tcGFyZShzMSxzMikgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbWJpbmluZyBjaGFycyB3ZXJlIG5vdCByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODcyNDEKKyAgICAvLworICAgIC8vIHN0cmluZyBjb21wYXJpc29uIGVycm9ycyBpbiBTY2FuZGluYXZpYW4gY29sbGF0b3JzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI0MSgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGRhX0RLID0gbmV3IExvY2FsZSgiZGEiLCAiREsiKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShkYV9ESyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZGFfREsgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwN2EiLCAgICAgICAiXHUwMDNjIiwgIlx1MDBFNiIsICAgICAgICAgICAgLy8geiAgICAgICAgPCBhZQorICAgICAgICAgICAgIlx1MDA2MVx1MDMwOCIsICJcdTAwM2MiLCAiXHUwMDYxXHUwMzBBIiwgICAgICAvLyBhLXVubGF1dCA8IGEtcmluZworICAgICAgICAgICAgIlx1MDA1OSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDc1XHUwMzA4IiwgICAgICAvLyBZICAgICAgICA8IHUtdW1sYXV0CisgICAgICAgIH07CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0cyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA4NzI0MworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uS2V5IHRha2VzIGlnbm9yYWJsZSBzdHJpbmdzIGludG8gYWNjb3VudCB3aGVuIGl0IHNob3VsZG4ndAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDMoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwMzFcdTAwMzJcdTAwMzMiLCAiXHUwMDNkIiwgIlx1MDAzMVx1MDAzMlx1MDAzM1x1MDAwMSIgICAgLy8gMSAyIDMgID0gIDEgMiAzIGN0cmwtQQorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTIyNjAKKyAgICAvLworICAgIC8vIE11L21pY3JvIGNvbmZsaWN0CisgICAgLy8gTWljcm8gc3ltYm9sIGFuZCBncmVlayBsb3dlcmNhc2UgbGV0dGVyIE11IHNob3VsZCBzb3J0IGlkZW50aWNhbGx5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjI2MCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGVsID0gbmV3IExvY2FsZSgiZWwiLCAiIik7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKGVsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBlbCBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwMEI1IiwgIlx1MDAzZCIsICJcdTAzQkMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTUzMTYKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1MzE2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBMb2NhbGUgZWxfR1IgPSBuZXcgTG9jYWxlKCJlbCIsICJHUiIpOworICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShlbF9HUik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZWxfR1IgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIC8vYy0+c2V0U3RyZW5ndGgoQ29sbGF0b3I6OlRFUlRJQVJZKTsKKyAgICAgICAgLy9jLT5zZXRBdHRyaWJ1dGUoVUNPTF9TVFJFTkdUSCwgVUNPTF9TRUNPTkRBUlksIHN0YXR1cyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwM0Q0IiwgIlx1MDAzZCIsICJcdTAzQUIiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMDE5NDAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAxOTQwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIjwgYSA8IGIiOworICAgICAgICBTdHJpbmcgbm90aGluZyA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iobm90aGluZyk7CisgICAgICAgIGkucmVzZXQoKTsKKyAgICAgICAgaWYgKGkubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVycmxuKCJuZXh0IGRpZCBub3QgcmV0dXJuIE5VTExPUkRFUiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEwMzQzNgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmNvbXBhcmUgbm90IGhhbmRsaW5nIHNwYWNlcyBwcm9wZXJseQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDM0MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjUiLCAiXHUwMDNjIiwgIlx1MDA2Nlx1MDA2OVx1MDA2Y1x1MDA2NVx1MDAyMFx1MDA2MVx1MDA2M1x1MDA2M1x1MDA2NVx1MDA3M1x1MDA3MyIsCisgICAgICAgICAgICAiXHUwMDY2XHUwMDY5XHUwMDZjXHUwMDY1IiwgIlx1MDAzYyIsICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjVcdTAwNjFcdTAwNjNcdTAwNjNcdTAwNjVcdTAwNzNcdTAwNzMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMTQwNzYKKyAgICAvLworICAgIC8vIENvbGxhdGlvbiBub3QgVW5pY29kZSBjb25mb3JtYW50IHdpdGggSGFuZ3VsIHN5bGxhYmxlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQwNzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICAvLworICAgICAgICAvLyBXaXRoIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBIYW5ndWwgc3lsbGFibGVzIHNob3VsZCBnZXQgZGVjb21wb3NlZAorICAgICAgICAvLyBpbnRvIEphbW8sIGJ1dCBKYW1vIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBiZSBkZWNvbXBvc2VkIGludG8KKyAgICAgICAgLy8gY29uam9pbmluZyBKYW1vCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1ZDRkYiIsICJcdTAwM2QiLCAiXHUxMTExXHUxMTcxXHUxMWI2IgorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdDEpOworICAgIAorICAgICAgICAvLyBGcm9tIFVUUiAjMTU6CisgICAgICAgIC8vICpJbiBlYXJsaWVyIHZlcnNpb25zIG9mIFVuaWNvZGUsIGphbW8gY2hhcmFjdGVycyBsaWtlIGtzZgorICAgICAgICAvLyAgaGFkIGNvbXBhdGliaWxpdHkgbWFwcGluZ3MgdG8ga2YgKyBzZi4gVGhlc2UgbWFwcGluZ3Mgd2VyZSAKKyAgICAgICAgLy8gIHJlbW92ZWQgaW4gVW5pY29kZSAyLjEuOSB0byBlbnN1cmUgdGhhdCBIYW5ndWwgc3lsbGFibGVzIGFyZSBtYWludGFpbmVkLikKKyAgICAgICAgLy8gVGhhdCBpcywgdGhlIGZvbGxvd2luZyB0ZXN0IGlzIG9ic29sZXRlIGFzIG9mIDIuMS45CisgICAgCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gV2l0aCBGdWxsIGRlY29tcG9zaXRpb24sIGl0IHNob3VsZCBnbyBhbGwgdGhlIHdheSBkb3duIHRvCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gY29uam9pbmluZyBKYW1vIGNoYXJhY3RlcnMuCisgICAgLy9vYnNvbGV0ZS0gICAgLy8KKyAgICAvL29ic29sZXRlLSAgICBzdGF0aWMgY29uc3QgVUNoYXIgdGVzdDJbXVtDb2xsYXRpb25SZWdyZXNzaW9uVGVzdDo6TUFYX1RPS0VOX0xFTl0gPQorICAgIC8vb2Jzb2xldGUtICAgIHsKKyAgICAvL29ic29sZXRlLSAgICAgICAgezB4ZDRkYiwgMH0sIHsweDNkLCAwfSwgezB4MTExMSwgMHgxMTZlLCAweDExNzUsIDB4MTFhZiwgMHgxMWMyLCAwfQorICAgIC8vb2Jzb2xldGUtICAgIH07CisgICAgLy9vYnNvbGV0ZS0KKyAgICAvL29ic29sZXRlLSAgICBjLT5zZXREZWNvbXBvc2l0aW9uKE5vcm1hbGl6ZXI6OkRFQ09NUF9DT01QQVQpOworICAgIC8vb2Jzb2xldGUtICAgIGNvbXBhcmVBcnJheSgqYywgdGVzdDIsIEFSUkFZX0xFTkdUSCh0ZXN0MikpOworICAgIH0KKworICAgIC8vIEBidWcgNDExNDA3NworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uIHdpdGggZGVjb21wb3NpdGlvbiBvZmYgZG9lc24ndCB3b3JrIGZvciBFdXJvcGUgCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDA3NygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgd2l0aCBkZWNvbXBvc2l0aW9uIG9mZgorICAgICAgICAvLyBhcyB3ZSBkbyB3aXRoIGl0IG9uLi4uLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMEMwIiwgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzZCIsICJcdTAwNDFcdTAzMDAiLCAgICAgICAgICAgIC8vIFNob3VsZCBiZSBlcXVpdmFsZW50CisgICAgICAgICAgICAiXHUwMDcwXHUwMGVhXHUwMDYzXHUwMDY4XHUwMDY1IiwgIlx1MDAzZSIsICJcdTAwNzBcdTAwZTlcdTAwNjNcdTAwNjhcdTAwZTkiLAorICAgICAgICAgICAgIlx1MDIwNCIsICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwM2QiLCAiXHUwMDQ1XHUwMzBGIiwKKyAgICAgICAgICAgICJcdTAxZmEiLCAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDNkIiwgIlx1MDA0MVx1MDMwYVx1MDMwMSIsICAgIC8vIGEtcmluZy1hY3V0ZSAtPiBhLXJpbmcsIGFjdXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtPiBhLCByaW5nLCBhY3V0ZQorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICAgICAgICAgICAgICJcdTAwM2MiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgICAgLy8gTm8gcmVvcmRlcmluZyAtLT4gdW5lcXVhbAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0MSk7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MltdID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICJcdTAwM2QiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgIC8vIFJlb3JkZXJpbmcgLS0+IGVxdWFsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0Mik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEyNDYzMgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmdldENvbGxhdGlvbktleSB3YXMgaGFuZ2luZyBvbiBjZXJ0YWluIGNoYXJhY3RlciBzZXF1ZW5jZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI0NjMyKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgY29sbGF0b3IgZm9yIExvY2FsZTo6SkFQQU4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdCA9ICJcdTAwNDFcdTAzMDhcdTAwNjJcdTAwNjMiOworICAgICAgICBDb2xsYXRpb25LZXkga2V5OworICAgICAgICB0cnkgeworICAgICAgICAgICAga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdCk7CisgICAgICAgICAgICBsb2dsbihrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbktleSBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMyNzM2CisgICAgLy8KKyAgICAvLyBzb3J0IG9yZGVyIG9mIGZyZW5jaCB3b3JkcyB3aXRoIG11bHRpcGxlIGFjY2VudHMgaGFzIGVycm9ycworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzI3MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBMb2NhbGU6OmdldEZyYW5jZSgpIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDY1XHUwMzAwXHUwMDY1XHUwMzAxIiwgIlx1MDAzYyIsICJcdTAwNjVcdTAzMDFcdTAwNjVcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDA2NVx1MDMwMFx1MDMwMSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDY1XHUwMzAxXHUwMzAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3QxKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMzNTA5CisgICAgLy8KKyAgICAvLyBUaGUgc29ydGluZyB1c2luZyBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IGlzIG5vdCBpbiB0aGUgZXhhY3Qgb3JkZXIKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTMzNTA5KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDQ1XHUwMDc4XHUwMDYzXHUwMDY1XHUwMDcwXHUwMDc0XHUwMDY5XHUwMDZmXHUwMDZlIiwgIlx1MDAzYyIsICJcdTAwNDVcdTAwNzhcdTAwNjNcdTAwNjVcdTAwNzBcdTAwNzRcdTAwNjlcdTAwNmZcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNjlcdTAwNzRcdTAwNjlcdTAwNjFcdTAwNmNcdTAwNjlcdTAwN2FcdTAwNjVcdTAwNzJcdTAwNDVcdTAwNzJcdTAwNzJcdTAwNmZcdTAwNzIiLAorICAgICAgICAgICAgIlx1MDA0N1x1MDA3Mlx1MDA2MVx1MDA3MFx1MDA2OFx1MDA2OVx1MDA2M1x1MDA3MyIsICAgICAgICJcdTAwM2MiLCAiXHUwMDQ3XHUwMDcyXHUwMDYxXHUwMDcwXHUwMDY4XHUwMDY5XHUwMDYzXHUwMDczXHUwMDQ1XHUwMDZlXHUwMDc2XHUwMDY5XHUwMDcyXHUwMDZmXHUwMDZlXHUwMDZkXHUwMDY1XHUwMDZlXHUwMDc0IiwKKyAgICAgICAgICAgICJcdTAwNTNcdTAwNzRcdTAwNzJcdTAwNjlcdTAwNmVcdTAwNjciLCAgICAgICAgICAgICAgICAgICAiXHUwMDNjIiwgIlx1MDA1M1x1MDA3NFx1MDA3Mlx1MDA2OVx1MDA2ZVx1MDA2N1x1MDA0Mlx1MDA3NVx1MDA2Nlx1MDA2Nlx1MDA2NVx1MDA3MiIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGNvbXBhcmVBcnJheShlbl91cywgdGVzdDEpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMzk1NzIKKyAgICAvLworICAgIC8vIGdldENvbGxhdGlvbktleSB0aHJvd3MgZXhjZXB0aW9uIGZvciBzcGFuaXNoIHRleHQgCisgICAgLy8gQ2Fubm90IHJlcHJvZHVjZSB0aGlzIGJ1ZyBvbiAxLjIsIGhvd2V2ZXIgaXQgRE9FUyBmYWlsIG9uIDEuMS42CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzOTU3MigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQ29kZSBwYXN0ZWQgc3RyYWlnaHQgZnJvbSB0aGUgYnVnIHJlcG9ydAorICAgICAgICAvLyAoYW5kIHRoZW4gdHJhbnNsYXRlZCB0byBDKysgOy0pCisgICAgICAgIC8vCisgICAgICAgIC8vIGNyZWF0ZSBzcGFuaXNoIGxvY2FsZSBhbmQgY29sbGF0b3IKKyAgICAgICAgTG9jYWxlIGwgPSBuZXcgTG9jYWxlKCJlcyIsICJlcyIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBlc19lcyBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IG51bGw7CisgICAgICAgIC8vIHRoaXMgc3BhbmlzaCBwaHJhc2Uga2lsbHMgaXQhCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KCJOb21icmUgRGUgT2JqZXRvIik7CisgICAgICAgICAgICBsb2dsbigic291cmNlOiIgKyBrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIENvbGxhdGlvbktleSBmb3IgXCJOb21icmUgRGUgT2piZXRvXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxNDE2NDAKKyAgICAvLworICAgIC8vIFN1cHBvcnQgZm9yIFN3ZWRpc2ggZ29uZSBpbiAxLjEuNiAoQ2FuJ3QgY3JlYXRlIFN3ZWRpc2ggY29sbGF0b3IpIAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDE2NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFJhdGhlciB0aGFuIGp1c3QgY3JlYXRpbmcgYSBTd2VkaXNoIGNvbGxhdG9yLCB3ZSBtaWdodCBhcyB3ZWxsCisgICAgICAgIC8vIHRyeSB0byBpbnN0YW50aWF0ZSBvbmUgZm9yIGV2ZXJ5IGxvY2FsZSBhdmFpbGFibGUgb24gdGhlIHN5c3RlbQorICAgICAgICAvLyBpbiBvcmRlciB0byBwcmV2ZW50IHRoaXMgc29ydCBvZiBidWcgZnJvbSBjcm9wcGluZyB1cCBpbiB0aGUgZnV0dXJlCisgICAgICAgIC8vCisgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgbG9nbG4oInNvdXJjZTogIiArIGMuZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIkNvdWxkIG5vdCBjcmVhdGUgY29sbGF0b3IgZm9yIGxvY2FsZSAiOworICAgICAgICAgICAgICAgIG1zZyArPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tMaXN0T3JkZXIoU3RyaW5nW10gc29ydGVkTGlzdCwgQ29sbGF0b3IgYykgeworICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIHVzZXMgdGhlIHNwZWNpZmllZCBDb2xsYXRvciB0byBtYWtlIHN1cmUgdGhlCisgICAgICAgIC8vIHBhc3NlZC1pbiBsaXN0IGlzIGFscmVhZHkgc29ydGVkIGludG8gYXNjZW5kaW5nIG9yZGVyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc29ydGVkTGlzdC5sZW5ndGggLSAxOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjLmNvbXBhcmUoc29ydGVkTGlzdFtpXSwgc29ydGVkTGlzdFtpICsgMV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGlzdCBvdXQgb2Ygb3JkZXIgYXQgZWxlbWVudCAjIiArIGkgKyAiOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHNvcnRlZExpc3RbaV0gKyAiID49ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgc29ydGVkTGlzdFtpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzE5NzQoKSB7CisgICAgICAgIC8vIHRlc3QgRnJlbmNoIGFjY2VudCBvcmRlcmluZyBtb3JlIHRob3JvdWdobHkKKyAgICAgICAgLypTdHJpbmdbXSBmcmVuY2hMaXN0ID0geworICAgICAgICAgICAgIlx1MDA3NVx1MDA3NSIsICAgICAvLyB1IHUKKyAgICAgICAgICAgICJcdTAwZmNcdTAwNzUiLCAgICAgLy8gdS11bWxhdXQgdQorICAgICAgICAgICAgIlx1MDFkNlx1MDA3NSIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdQorICAgICAgICAgICAgIlx1MDE2Ylx1MDA3NSIsICAgICAvLyB1LW1hY3JvbiB1CisgICAgICAgICAgICAiXHUxZTdiXHUwMDc1IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1CisgICAgICAgICAgICAiXHUwMDc1XHUwMGZjIiwgICAgIC8vIHUgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAxZDZcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMTZiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDA3NVx1MDFkNiIsICAgICAvLyB1IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDBmY1x1MDFkNiIsICAgICAvLyB1LXVtbGF1dCB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAxZDZcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDFkNiIsICAgICAvLyB1LW1hY3JvbiB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTFlN2JcdTAxZDYiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDA3NVx1MDE2YiIsICAgICAvLyB1IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMWQ2XHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDE2YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MWU3Ylx1MDE2YiIsICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAwNzVcdTFlN2IiLCAgICAgLy8gdSB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTFlN2IiLCAgICAgLy8gdS11bWxhdXQgdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMWQ2XHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAxNmJcdTFlN2IiLCAgICAgLy8gdS1tYWNyb24gdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUxZTdiIiAgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgZnJlbmNoID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRnJlbmNoIG9yZGVyLi4uIik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGZyZW5jaExpc3QsIGZyZW5jaCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRnJlbmNoIG9yZGVyIHdpdGhvdXQgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBmcmVuY2guc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgY2hlY2tMaXN0T3JkZXIoZnJlbmNoTGlzdCwgZnJlbmNoKTsqLworCisgICAgICAgIFN0cmluZ1tdIGVuZ2xpc2hMaXN0ID0geworICAgICAgICAgICAgIlx1MDA3NVx1MDA3NSIsICAgICAvLyB1IHUKKyAgICAgICAgICAgICJcdTAwNzVcdTAwZmMiLCAgICAgLy8gdSB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDA3NVx1MDFkNiIsICAgICAvLyB1IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDA3NVx1MDE2YiIsICAgICAvLyB1IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMDc1XHUxZTdiIiwgICAgIC8vIHUgdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMGZjXHUwMDc1IiwgICAgIC8vIHUtdW1sYXV0IHUKKyAgICAgICAgICAgICJcdTAwZmNcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwZmNcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUwMTZiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMGZjXHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDFkNlx1MDA3NSIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdQorICAgICAgICAgICAgIlx1MDFkNlx1MDBmYyIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAxZDZcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDFkNlx1MDE2YiIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAxZDZcdTFlN2IiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDE2Ylx1MDA3NSIsICAgICAvLyB1LW1hY3JvbiB1CisgICAgICAgICAgICAiXHUwMTZiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMTZiXHUwMWQ2IiwgICAgIC8vIHUtbWFjcm9uIHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MDE2YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDE2Ylx1MWU3YiIsICAgICAvLyB1LW1hY3JvbiB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTFlN2JcdTAwNzUiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUKKyAgICAgICAgICAgICJcdTFlN2JcdTAwZmMiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUwMWQ2IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTFlN2JcdTAxNmIiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUxZTdiXHUxZTdiIiAgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgZW5nbGlzaCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBFbmdsaXNoIG9yZGVyLi4uIik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGVuZ2xpc2hMaXN0LCBlbmdsaXNoKTsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBFbmdsaXNoIG9yZGVyIHdpdGhvdXQgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBlbmdsaXNoLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGVuZ2xpc2hMaXN0LCBlbmdsaXNoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTIxNigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAvLyB5b3UgY2FuIHBvc2l0aW9uIGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGluIHRoZSBtaWRkbGUgb2YKKyAgICAgICAgLy8gYSBjb250cmFjdGluZyBjaGFyYWN0ZXIgc2VxdWVuY2UsIHlpZWxkaW5nIGEgYm9ndXMgY29sbGF0aW9uCisgICAgICAgIC8vIGVsZW1lbnQKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGNvbGwuZ2V0UnVsZXMoKQorICAgICAgICAgICAgICAgICsgIiAmIEMgPCBjaCAsIGNIICwgQ2ggLCBDSCA8IGNhdCA8IGNydW5jaHkiKTsKKyAgICAgICAgU3RyaW5nIHRlc3RUZXh0ID0gImNodXJjaCBjaHVyY2ggY2F0Y2F0Y2hlciBydW5jcnVuY2h5bmNoeSI7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGVzdFRleHQpOworCisgICAgICAgIC8vIHRlc3QgdGhhdCB0aGUgImNoIiBjb21iaW5hdGlvbiB3b3JrcyBwcm9wZXJseQorICAgICAgICBpdGVyLnNldE9mZnNldCg0KTsKKyAgICAgICAgaW50IGVsdDQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIGludCBlbHQwID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNSk7CisgICAgICAgIGludCBlbHQ1ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaWYgKGVsdDQgIT0gZWx0MCB8fCBlbHQ1ICE9IGVsdDApCisgICAgICAgICAgICBlcnJsbigiVGhlIGNvbGxhdGlvbiBlbGVtZW50cyBhdCBwb3NpdGlvbnMgMCAoIiArIGVsdDAgKyAiKSwgNCAoIgorICAgICAgICAgICAgICAgICAgICArIGVsdDQgKyAiKSwgYW5kIDUgKCIgKyBlbHQ1ICsgIikgZG9uJ3QgbWF0Y2guIik7CisKKyAgICAgICAgLy8gdGVzdCB0aGF0IHRoZSAiY2F0IiBjb21iaW5hdGlvbiB3b3JrcyBwcm9wZXJseQorICAgICAgICBpdGVyLnNldE9mZnNldCgxNCk7CisgICAgICAgIGludCBlbHQxNCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE1KTsKKyAgICAgICAgaW50IGVsdDE1ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTYpOworICAgICAgICBpbnQgZWx0MTYgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnNldE9mZnNldCgxNyk7CisgICAgICAgIGludCBlbHQxNyA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE4KTsKKyAgICAgICAgaW50IGVsdDE4ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTkpOworICAgICAgICBpbnQgZWx0MTkgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpZiAoZWx0MTQgIT0gZWx0MTUgfHwgZWx0MTQgIT0gZWx0MTYgfHwgZWx0MTQgIT0gZWx0MTcKKyAgICAgICAgICAgICAgICB8fCBlbHQxNCAhPSBlbHQxOCB8fCBlbHQxNCAhPSBlbHQxOSkKKyAgICAgICAgICAgIGVycmxuKCJcImNhdFwiIGVsZW1lbnRzIGRvbid0IG1hdGNoOiBlbHQxNCA9ICIgKyBlbHQxNCArICIsIGVsdDE1ID0gIgorICAgICAgICAgICAgKyBlbHQxNSArICIsIGVsdDE2ID0gIiArIGVsdDE2ICsgIiwgZWx0MTcgPSAiICsgZWx0MTcKKyAgICAgICAgICAgICsgIiwgZWx0MTggPSAiICsgZWx0MTggKyAiLCBlbHQxOSA9ICIgKyBlbHQxOSk7CisKKyAgICAgICAgLy8gbm93IGdlbmVyYXRlIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnRzLAorICAgICAgICAvLyBmaXJzdCB1c2luZyBuZXh0KCkgYW5kIHRoZW4gdXNpbmcgc2V0T2Zmc2V0KCksIGFuZAorICAgICAgICAvLyBtYWtlIHN1cmUgYm90aCBpbnRlcmZhY2VzIHJldHVybiB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMKKyAgICAgICAgaXRlci5yZXNldCgpOworCisgICAgICAgIGludCBlbHQgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGVsdCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdbXSBuZXh0RWxlbWVudHMgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgU3RyaW5nW10gc2V0T2Zmc2V0RWxlbWVudHMgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgaW50IGxhc3RQb3MgPSAwOworCisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGVsdCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBuZXh0RWxlbWVudHNbY291bnQrK10gPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFBvcywgaXRlci5nZXRPZmZzZXQoKSk7CisgICAgICAgICAgICBsYXN0UG9zID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIGVsdCA9IGl0ZXIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0VGV4dC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChpKTsKKyAgICAgICAgICAgIGxhc3RQb3MgPSBpdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBzZXRPZmZzZXRFbGVtZW50c1tjb3VudCsrXSA9IHRlc3RUZXh0LnN1YnN0cmluZyhsYXN0UG9zLCBpdGVyLmdldE9mZnNldCgpKTsKKyAgICAgICAgICAgIGkgPSBpdGVyLmdldE9mZnNldCgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmV4dEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAobmV4dEVsZW1lbnRzW2ldLmVxdWFscyhzZXRPZmZzZXRFbGVtZW50c1tpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihuZXh0RWxlbWVudHNbaV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG5leHQoKSB5aWVsZGVkICIgKyBuZXh0RWxlbWVudHNbaV0gKyAiLCBidXQgc2V0T2Zmc2V0KCkgeWllbGRlZCAiCisgICAgICAgICAgICAgICAgICAgICsgc2V0T2Zmc2V0RWxlbWVudHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTYwMDYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gcnVsZSBwYXJzZXIgYmFyZnMgb24gIjxcdTAwZTA9YVx1MDMwMCIsIGFuZCBvbiBvdGhlciBjYXNlcworICAgICAgICAvLyB3aGVyZSB0aGUgc2FtZSB0b2tlbiAoYWZ0ZXIgbm9ybWFsaXphdGlvbikgYXBwZWFycyB0d2ljZSBpbiBhIHJvdworICAgICAgICBib29sZWFuIGNhdWdodEV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZHVtbXkgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIlx1MDBlMDxhXHUwMzAwIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFjYXVnaHRFeGNlcHRpb24pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIlwiYTxhXCIgY29sbGF0aW9uIHNlcXVlbmNlIGRpZG4ndCBjYXVzZSBwYXJzZSBlcnJvciEiKTsKKyAgICAgICAgfQorCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCI8XHUwMGUwPWFcdTAzMDAiKTsKKyAgICAgICAgLy9jb21tZW50ZWQgYnkgS2V2aW4gMjAwMy8xMC8yMSAKKyAgICAgICAgLy9mb3IgIkZVTExfREVDT01QT1NJVElPTiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIiBpbiBJQ1U0SiBET0MKKyAgICAgICAgLy9jb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisKKyAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisgICAgICAgICAgICAiYVx1MDMwMCIsICI9IiwgIlx1MDBlMCIsCisgICAgICAgICAgICAiXHUwMGUwIiwgICI9IiwgImFcdTAzMDAiCisgICAgICAgIH07CisKKyAgICAgICAgY29tcGFyZUFycmF5KGNvbGxhdG9yLCB0ZXN0cyk7CisgICAgfQorCisgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzIGJyb2tlbiBmb3IgZXhwYW5kaW5nIGNoYXIgc2VxdWVuY2VzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTY4NigpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENyZWF0ZSBhIGNvbGxhdG9yIHdpdGggYSBmZXcgZXhwYW5kaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMgaW4gaXQuLi4uCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fdXMuZ2V0UnVsZXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAmIGFlIDsgXHUwMGU0ICYgQUUgOyBcdTAwYzQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICYgb2UgOyBcdTAwZjYgJiBPRSA7IFx1MDBkNiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgJiB1ZSA7IFx1MDBmYyAmIFVFIDsgXHUwMGRjIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiVFx1MDBmNm5lIjsgLy8gby11bWxhdXQKKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgICAgICBWZWN0b3IgZWxlbWVudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGludCBlbGVtOworCisgICAgICAgIC8vIEl0ZXJhdGUgZm9yd2FyZCBhbmQgY29sbGVjdCBhbGwgb2YgdGhlIGVsZW1lbnRzIGludG8gYSBWZWN0b3IKKyAgICAgICAgd2hpbGUgKChlbGVtID0gaXRlci5uZXh0KCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVsZW1lbnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoZWxlbSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGl0ZXJhdGUgYmFja3dhcmQgYW5kIG1ha2Ugc3VyZSB0aGV5J3JlIHRoZSBzYW1lCisgICAgICAgIGludCBpbmRleCA9IGVsZW1lbnRzLnNpemUoKSAtIDE7CisgICAgICAgIHdoaWxlICgoZWxlbSA9IGl0ZXIucHJldmlvdXMoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaW50IGV4cGVjdCA9ICgoSW50ZWdlcillbGVtZW50cy5lbGVtZW50QXQoaW5kZXgpKS5pbnRWYWx1ZSgpOworCisgICAgICAgICAgICBpZiAoZWxlbSAhPSBleHBlY3QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTWlzbWF0Y2ggYXQgaW5kZXggIiArIGluZGV4CisgICAgICAgICAgICAgICAgICAgICAgKyAiOiBnb3QgIiArIEludGVnZXIudG9TdHJpbmcoZWxlbSwxNikKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGV4cGVjdGVkICIgKyBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdCwxNikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgtLTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzIDsKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBpZihlbl91cyA9PW51bGwpeworICAgICAgICAgICAgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI0NDg4NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoY29sbC5nZXRSdWxlcygpCisgICAgICAgICAgICAgICAgKyAiICYgQyA8IGNoICwgY0ggLCBDaCAsIENIIDwgY2F0IDwgY3J1bmNoeSIpOworCisgICAgICAgIFN0cmluZ1tdIHRlc3RTdHJpbmdzID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJjYXIiLAorICAgICAgICAgICAgImNhdmUiLAorICAgICAgICAgICAgImNsYW1wIiwKKyAgICAgICAgICAgICJjcmFtcCIsCisgICAgICAgICAgICAiY3phciIsCisgICAgICAgICAgICAiY2h1cmNoIiwKKyAgICAgICAgICAgICJjYXRhbG9ndWUiLAorICAgICAgICAgICAgImNydW5jaHkiLAorICAgICAgICAgICAgImRvZyIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRlc3RTdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RTdHJpbmdzW2kgLSAxXSwgdGVzdFN0cmluZ3NbaV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFwiIiArIHRlc3RTdHJpbmdzW2kgLSAxXQorICAgICAgICAgICAgICAgICAgICArICJcIiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gXCIiICsgdGVzdFN0cmluZ3NbaV0KKyAgICAgICAgICAgICAgICAgICAgKyAiXCIuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHNldCBkb2Vzbid0IHdvcmsgcHJvcGVydGx5IHdpdGggbmV4dC9wcmV2CisgICAgcHVibGljIHZvaWQgVGVzdDQ2NjMyMjAoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBzdHJpbmdJdGVyID0gbmV3IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiZm94Iik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cmluZ0l0ZXIpOworICAgIAorICAgICAgICBpbnRbXSBlbGVtZW50c19uZXh0ID0gbmV3IGludFszXTsKKyAgICAgICAgbG9nbG4oImNhbGxpbmcgbmV4dDoiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGkgKyAiXSAiICsgKGVsZW1lbnRzX25leHRbaV0gPSBpdGVyLm5leHQoKSkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGludFtdIGVsZW1lbnRzX2Z3ZCA9IG5ldyBpbnRbM107CisgICAgICAgIGxvZ2xuKCJjYWxsaW5nIHNldC9uZXh0OiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoaSk7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIChlbGVtZW50c19md2RbaV0gPSBpdGVyLm5leHQoKSkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudHNfbmV4dFtpXSAhPSBlbGVtZW50c19md2RbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibWlzbWF0Y2ggYXQgcG9zaXRpb24gIiArIGkgKyAKKyAgICAgICAgICAgICAgICAiOiAiICsgZWxlbWVudHNfbmV4dFtpXSArIAorICAgICAgICAgICAgICAgICIgIT0gIiArIGVsZW1lbnRzX2Z3ZFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogUnVsZUJhc2VkQ29sbGF0b3Igbm90IHN1YmNsYXNzYWJsZQorICAgICAqIEBidWcgNDE0NjE2MAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgZG9lc24ndCB1c2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGludGVybmFsbHkKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ2MTYwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBVc2UgYSBjdXN0b20gY29sbGF0b3IgY2xhc3Mgd2hvc2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICAgIC8vIG1ldGhvZHMgaW5jcmVtZW50IGEgY291bnQuLi4uCisgICAgICAgIC8vICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgTXk0MTQ2MTYwQ29sbGF0b3IgbWMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWMgPSBuZXcgTXk0MTQ2MTYwQ29sbGF0b3IoZW5fdXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG1jLmdldENvbGxhdGlvbktleSgiMSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgdG8gZ2V0IGEgQ29sbGF0aW9uS2V5IGZyb20gYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoTXk0MTQ2MTYwQ29sbGF0b3IuY291bnQgPCAxKSB7CisgICAgICAgICAgICBlcnJsbigiTXk0MTQ2MTYwQ29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG5vdCBjYWxsZWQgZm9yIGdldENvbGxhdGlvbktleSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgbWMuY29tcGFyZSgiMSIsICIyIik7CisgICAgCisgICAgICAgIGlmIChNeTQxNDYxNjBDb2xsYXRvci5jb3VudCA8IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNeTQxNDYxNjBDb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igbm90IGNhbGxlZCBmb3IgY29tcGFyZSIpOworICAgICAgICB9CisgICAgfSovCit9CisKKy8qIFJ1bGVCYXNlZENvbGxhdG9yIG5vdCBzdWJjbGFzc2FibGUKKyAqIGNsYXNzIE15NDE0NjE2MENvbGxhdG9yIGV4dGVuZHMgUnVsZUJhc2VkQ29sbGF0b3IgeworICAgIHN0YXRpYyBpbnQgY291bnQgPSAwOworCisgICAgcHVibGljIE15NDE0NjE2MENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyKHJiYy5nZXRSdWxlcygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KK30KKyovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNlcnZpY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU2VydmljZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTAxYTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNlcnZpY2VUZXN0LmphdmEKQEAgLTAsMCArMSw0MjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNvbGxhdG9yRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25TZXJ2aWNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBDb2xsYXRpb25TZXJ2aWNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0ZXIoKSB7CisgICAgICAgIC8vIHJlZ2lzdGVyIGEgc2luZ2xldG9uCisgICAgICAgIENvbGxhdG9yIGZyY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5GUkFOQ0UpOworICAgICAgICBDb2xsYXRvciB1c2NvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgCisgICAgICAgIHsgLy8gdHJ5IG92ZXJyaWRlIGVuX1VTIGNvbGxhdG9yCisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZShmcmNvbCwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBDb2xsYXRvciBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBpZiAoIWZyY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlciBvZiBmcmVuY2ggY29sbGF0b3IgZm9yIGVuX1VTIGZhaWxlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb3ZlcmFnZQorICAgICAgICAgICAgQ29sbGF0b3IgdGVzdCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7IC8vIENvbGxhdG9yRmFjdG9yeS5oYW5kbGVDcmVhdGUKKworICAgICAgICAgICAgaWYgKCFDb2xsYXRvci51bnJlZ2lzdGVyKGtleSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIHVucmVnaXN0ZXIgZnJlbmNoIGNvbGxhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBpZiAoIXVzY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb2xsYXRvciBhZnRlciB1bnJlZ2lzdGVyIGRvZXMgbm90IG1hdGNoIG9yaWdpbmFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVX0ZPTyIpOworCisgICAgICAgIHsgLy8gdHJ5IGNyZWF0ZSBjb2xsYXRvciBmb3IgbmV3IGxvY2FsZQorICAgICAgICAgICAgQ29sbGF0b3IgZnVjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVSk7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZShmcmNvbCwgZnVfRlUpOworICAgICAgICAgICAgQ29sbGF0b3IgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghZnJjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyIG9mIGZyIGNvbGxhdG9yIGZvciBmdV9GVSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGZ1X0ZVKSkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IGxvY2FsZSBmdV9GVSBub3QgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUpOworICAgICAgICAgICAgICAgIGlmICghImZ1IChGVSwgRk9PKSIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YS4iKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShmdV9GVSwgZnVfRlUpOworICAgICAgICAgICAgICAgIGlmICghImZ1IChGVSwgRk9PKSIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YS4iKTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byB1bnJlZ2lzdGVyIGZyZW5jaCBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghZnVjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbGxhdG9yIGFmdGVyIHVucmVnaXN0ZXIgZG9lcyBub3QgbWF0Y2ggb3JpZ2luYWwgZnVfRlUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIGFmdGVyIHJldHVybiB0byBkZWZhdWx0IAorICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIAorICAgICAgICAgICAgQ29sbGF0b3IgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdGVyRmFjdG9yeSgpIHsKKworICAgICAgICBjbGFzcyBDb2xsYXRvckluZm8geworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGU7CisgICAgICAgICAgICBDb2xsYXRvciBjb2xsYXRvcjsKKyAgICAgICAgICAgIE1hcCBkaXNwbGF5TmFtZXM7IC8vIGxvY2FsZSAtPiBzdHJpbmcKKworICAgICAgICAgICAgQ29sbGF0b3JJbmZvKFVMb2NhbGUgbG9jYWxlLCBDb2xsYXRvciBjb2xsYXRvciwgTWFwIGRpc3BsYXlOYW1lcykgeworICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgICAgIHRoaXMuY29sbGF0b3IgPSBjb2xsYXRvcjsKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOYW1lcyA9IGRpc3BsYXlOYW1lczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoZGlzcGxheU5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IChTdHJpbmcpZGlzcGxheU5hbWVzLmdldChkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuYW1lID0gbG9jYWxlLmdldERpc3BsYXlOYW1lKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgQ29sbGF0b3JGYWN0b3J5IHsKKyAgICAgICAgICAgIHByaXZhdGUgTWFwIG1hcDsKKyAgICAgICAgICAgIHByaXZhdGUgU2V0IGlkczsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVGVzdEZhY3RvcnkoQ29sbGF0b3JJbmZvW10gaW5mbykgeworICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmZvLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdG9ySW5mbyBjaSA9IGluZm9baV07CisgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoY2kubG9jYWxlLCBjaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRvckluZm8gY2kgPSAoQ29sbGF0b3JJbmZvKW1hcC5nZXQobG9jKTsKKyAgICAgICAgICAgICAgICBpZiAoY2kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2kuY29sbGF0b3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRvckluZm8gY2kgPSAoQ29sbGF0b3JJbmZvKW1hcC5nZXQob2JqZWN0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoY2kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2kuZ2V0RGlzcGxheU5hbWUoZGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZExvY2FsZUlEcygpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSGFzaFNldCBzZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbWFwLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSAoVUxvY2FsZSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IGxvY2FsZS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChpZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWRzID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBpZHM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2xhc3MgVGVzdEZhY3RvcnlXcmFwcGVyIGV4dGVuZHMgQ29sbGF0b3JGYWN0b3J5IHsKKyAgICAgICAgICAgIENvbGxhdG9yRmFjdG9yeSBkZWxlZ2F0ZTsKKyAgICAKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5V3JhcHBlcihDb2xsYXRvckZhY3RvcnkgZGVsZWdhdGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwdWJsaWMgQ29sbGF0b3IgY3JlYXRlQ29sbGF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuY3JlYXRlQ29sbGF0b3IobG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHVzZSBDb2xsYXRvckZhY3RvcnkgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSwgVUxvY2FsZSkgZm9yIGNvdmVyYWdlCisgICAgCisgICAgICAgICAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZExvY2FsZUlEcygpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0U3VwcG9ydGVkTG9jYWxlSURzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVIik7CisgICAgICAgIFVMb2NhbGUgZnVfRlVfRk9PID0gbmV3IFVMb2NhbGUoImZ1X0ZVX0ZPTyIpOworCisgICAgICAgIE1hcCBmdUZVTmFtZXMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBmdUZVTmFtZXMucHV0KGZ1X0ZVLCAiemUgbGVldGxlIGJ1bm55IEZ1LUZ1Iik7CisgICAgICAgIGZ1RlVOYW1lcy5wdXQoZnVfRlVfRk9PLCAiemVlIGxlZXRlbCBidW5ueSBGb28tRm9vIik7CisgICAgICAgIGZ1RlVOYW1lcy5wdXQoVUxvY2FsZS5VUywgImxpdHRsZSBidW5ueSBGb28gRm9vIik7CisKKyAgICAgICAgQ29sbGF0b3IgZnJjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLkZSQU5DRSk7CisgICAgICAgLyogQ29sbGF0b3IgdXNjb2wgPSAqL0NvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRvciBnZWNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIENvbGxhdG9yIGpwY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5KQVBBTik7CisgICAgICAgIENvbGxhdG9yIGZ1Y29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlUpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3JJbmZvW10gaW5mbyA9IHsKKyAgICAgICAgICAgIG5ldyBDb2xsYXRvckluZm8oVUxvY2FsZS5VUywgZnJjb2wsIG51bGwpLAorICAgICAgICAgICAgbmV3IENvbGxhdG9ySW5mbyhVTG9jYWxlLkZSQU5DRSwgZ2Vjb2wsIG51bGwpLAorICAgICAgICAgICAgbmV3IENvbGxhdG9ySW5mbyhmdV9GVSwganBjb2wsIGZ1RlVOYW1lcyksCisgICAgICAgIH07CisgICAgICAgIFRlc3RGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IFRlc3RGYWN0b3J5KGluZm8pOworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEuIik7IAorICAgICAgICB9CisgICAgICAgIC8vIGNvdmVyYWdlCisgICAgICAgIHsKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5V3JhcHBlciB3cmFwcGVyID0gbmV3IFRlc3RGYWN0b3J5V3JhcHBlcihmYWN0b3J5KTsgLy8gaW4gamF2YSwgZ2MgbGV0cyB1cyBlYXNpbHkgbXVsdGlwbHkgcmVmZXJlbmNlIQorICAgICAgICAgICAgT2JqZWN0IGtleSA9IENvbGxhdG9yLnJlZ2lzdGVyRmFjdG9yeSh3cmFwcGVyKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUsIGZ1X0ZVX0ZPTyk7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhLiIpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCIqKiogZGVmYXVsdCBuYW1lOiAiICsgbmFtZSk7CisgICAgICAgICAgICBDb2xsYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgCisgICAgICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgiYmFyX0JBUiIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuMSA9IGNoZWNrQXZhaWxhYmxlKCJiZWZvcmUgcmVnaXN0ZXJGYWN0b3J5Iik7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQ29sbGF0b3IucmVnaXN0ZXJGYWN0b3J5KGZhY3RvcnkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbjIgPSBjaGVja0F2YWlsYWJsZSgiYWZ0ZXIgcmVnaXN0ZXJGYWN0b3J5Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENvbGxhdG9yIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIGlmICghZnJjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyY29sbCBmb3IgZW5fVVMgZmFpbGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVV9GT08pOworICAgICAgICAgICAgaWYgKCFqcGNvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigianBjb2wgZm9yIGZ1X0ZVX0ZPTyBmYWlsZWQsIGdvdDogIiArIG5jb2wpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoZnVfRlUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXcgbG9jYWxlIGZ1X0ZVIG5vdCByZXBvcnRlZCBhcyBzdXBwb3J0ZWQgbG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUpOworICAgICAgICAgICAgaWYgKCEibGl0dGxlIGJ1bm55IEZvbyBGb28iLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5hbWUgPSBDb2xsYXRvci5nZXREaXNwbGF5TmFtZShmdV9GVSwgZnVfRlVfRk9PKTsKKyAgICAgICAgICAgIGlmICghInplZSBsZWV0ZWwgYnVubnkgRm9vLUZvbyIuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZvdW5kICIgKyBuYW1lICsgIiBmb3IgZnVfRlUgaW4gZnVfRlVfRk9PIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byB1bnJlZ2lzdGVyIGZhY3RvcnkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG4zID0gY2hlY2tBdmFpbGFibGUoImFmdGVyIHVucmVnaXN0ZXIiKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUoInJlZ2lzdGVyIGluY3JlYXNlcyBjb3VudCIsIG4yPm4xKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUoInVucmVnaXN0ZXIgcmVzdG9yZXMgY291bnQiLCBuMz09bjEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlUpOworICAgICAgICAgICAgaWYgKCFmdWNvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29sbGF0b3IgYWZ0ZXIgdW5yZWdpc3RlciBkb2VzIG5vdCBtYXRjaCBvcmlnaW5hbCBmdV9GVSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGludGVncml0eSBvZiB0aGUgcmVzdWx0cyBvZiBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpLgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGl0ZW1zIHJldHVybmVkLgorICAgICAqLworICAgIGludCBjaGVja0F2YWlsYWJsZShTdHJpbmcgbXNnKSB7CisgICAgICAgIExvY2FsZSBsb2NzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmICghYXNzZXJ0VHJ1ZSgiZ2V0QXZhaWxhYmxlTG9jYWxlcyAhPSBudWxsIiwgbG9jcyE9bnVsbCkpIHJldHVybiAtMTsKKyAgICAgICAgY2hlY2tBcnJheShtc2csIGxvY3MsIG51bGwpOworICAgICAgICBVTG9jYWxlIHVsb2NzW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBpZiAoIWFzc2VydFRydWUoImdldEF2YWlsYWJsZVVMb2NhbGVzICE9IG51bGwiLCB1bG9jcyE9bnVsbCkpIHJldHVybiAtMTsKKyAgICAgICAgY2hlY2tBcnJheShtc2csIHVsb2NzLCBudWxsKTsKKyAgICAgICAgLy8gVGhpcyBpcyBub3QgdHJ1ZSBiZWNhdXNlIHNpbmNlIFVMb2NhbGUgb2JqZWN0cyB3aXRoIHNjcmlwdCBjb2RlIGNhbm5vdCBiZSAKKyAgICAgICAgLy8gY29udmVydGVkIHRvIExvY2FsZSBvYmplY3RzCisgICAgICAgIC8vYXNzZXJ0VHJ1ZSgiZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aCA9PSBnZXRBdmFpbGFibGVVTG9jYWxlcygpLmxlbmd0aCIsIGxvY3MubGVuZ3RoID09IHVsb2NzLmxlbmd0aCk7CisgICAgICAgIHJldHVybiBsb2NzLmxlbmd0aDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEtXW10gPSB7CisgICAgICAgICJjb2xsYXRpb24iCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLV1ZBTFtdID0geworICAgICAgICAicGhvbmVib29rIiwKKyAgICAgICAgInN0cm9rZSIKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdFNlcGFyYXRlVHJlZXMoKSB7CisgICAgICAgIFN0cmluZyBrd1tdID0gQ29sbGF0b3IuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgaWYgKCFhc3NlcnRUcnVlKCJnZXRLZXl3b3JkcyAhPSBudWxsIiwga3chPW51bGwpKSByZXR1cm47CisgICAgICAgIGNoZWNrQXJyYXkoImdldEtleXdvcmRzIiwga3csIEtXKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBrd3ZhbFtdID0gQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcyhLV1swXSk7CisgICAgICAgIGlmICghYXNzZXJ0VHJ1ZSgiZ2V0S2V5d29yZFZhbHVlcyAhPSBudWxsIiwga3d2YWwhPW51bGwpKSByZXR1cm47CisgICAgICAgIGNoZWNrQXJyYXkoImdldEtleXdvcmRWYWx1ZXMiLCBrd3ZhbCwgS1dWQUwpOworCisgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlIGVxdWl2ID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoS1dbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZnIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXZhaWxhYmxlKTsKKyAgICAgICAgaWYgKGFzc2VydFRydWUoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGZyKSE9bnVsbCIsIGVxdWl2IT1udWxsKSkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcikiLCAiZnIiLCBlcXVpdi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcikuaXNBdmFpbGFibGU9PXRydWUiLAorICAgICAgICAgICAgICAgICAgIGlzQXZhaWxhYmxlWzBdID09IHRydWUpOworICAgICAgICAKKyAgICAgICAgZXF1aXYgPSBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChLV1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZnJfRlIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZSk7CisgICAgICAgIGlmIChhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcl9GUikhPW51bGwiLCBlcXVpdiE9bnVsbCkpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnJfRlIpIiwgImZyIiwgZXF1aXYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnJfRlIpLmlzQXZhaWxhYmxlPT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZVswXSA9PSB0cnVlKTsKKworICAgICAgICBlcXVpdiA9IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KEtXWzBdLCBuZXcgVUxvY2FsZSgiemhfSGFucyIpKTsKKyAgICAgICAgaWYgKGFzc2VydFRydWUoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KHpoX0hhbnMpIT1udWxsIiwgZXF1aXYhPW51bGwpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KHpoX0hhbnMpIiwgInpoIiwgZXF1aXYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KCkgeworICAgICAgICBTdHJpbmcga3dbXSA9IENvbGxhdG9yLmdldEtleXdvcmRzKCk7CisgICAgICAgIGZpbmFsIFN0cmluZyBEQVRBW10gPSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGUiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZUBjb2xsYXRpb249ZGlyZWN0IiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj1zdHJva2UiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZUBjb2xsYXRpb249cGlueWluIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPXBob25lYm9vayIsICJkZUBjb2xsYXRpb249cGhvbmVib29rIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPWJpZzVoYW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVCIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlX0FUQGNvbGxhdGlvbj1kaXJlY3QiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249dHJhZGl0aW9uYWwiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249Z2IyMzEyaGFuIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPXN0cm9rZSIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlX0FUQGNvbGxhdGlvbj1waW55aW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249cGhvbmVib29rIiwgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249YmlnNWhhbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5sIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubEBjb2xsYXRpb249ZGlyZWN0IiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRSIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPWRpcmVjdCIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249Z2IyMzEyaGFuIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249c3Ryb2tlIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249cGlueWluIiwgInJvb3QiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubF9CRUBjb2xsYXRpb249YmlnNWhhbiIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXBob25lYm9vayIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5fVVNfVkFMTEVZR0lSTCIsImVuIiwiZiIKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludCBEQVRBX0NPVU5UPShEQVRBLmxlbmd0aC8zKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaT0wO2k8REFUQV9DT1VOVDtpKyspIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgVUxvY2FsZSBpbnB1dCA9IG5ldyBVTG9jYWxlKERBVEFbKGkqMykrMF0pOworICAgICAgICAgICAgVUxvY2FsZSBleHBlY3QgPSBuZXcgVUxvY2FsZShEQVRBWyhpKjMpKzFdKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0QXZhaWxhYmxlID0gREFUQVsoaSozKSsyXS5lcXVhbHMoInQiKTsKKyAgICAgICAgICAgIFVMb2NhbGUgYWN0dWFsID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa3dbMF0saW5wdXQsaXNBdmFpbGFibGUpOworICAgICAgICAgICAgaWYoIWFjdHVhbC5lcXVhbHMoZXhwZWN0KSB8fCAoZXhwZWN0QXZhaWxhYmxlIT1pc0F2YWlsYWJsZVswXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiIyIgKyBpICsgIjogQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoIiArIGlucHV0ICsgIik9IiArIGFjdHVhbCArICIsIGF2YWlsICIgKyBuZXcgQm9vbGVhbihpc0F2YWlsYWJsZVswXSkgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAiICsgZXhwZWN0ICsgIiBhdmFpbCAiICsgbmV3IEJvb2xlYW4oZXhwZWN0QXZhaWxhYmxlKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIjIiArIGkgKyAiOiBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudCgiICsgaW5wdXQgKyAiKT0iICsgYWN0dWFsICsgIiwgYXZhaWwgIiArIG5ldyBCb29sZWFuKGlzQXZhaWxhYmxlWzBdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vICAgIHB1YmxpYyB2b2lkIFByaW50RnVuY3Rpb25hbEVxdWl2YWxlbnRMaXN0KCkgeworLy8gICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKy8vICAgICAgICBTdHJpbmdbXSBrZXl3b3JkcyA9IENvbGxhdG9yLmdldEtleXdvcmRzKCk7CisvLyAgICAgICAgbG9nbG4oIkNvbGxhdGlvbiIpOworLy8gICAgICAgIGxvZ2xuKCJQb3NzaWJsZSBrZXl3b3JkPXZhbHVlcyBwYWlyczoiKTsKKy8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENvbGxhdG9yLmdldEtleXdvcmRzKCkubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pOworLy8gICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyArK2opIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGtleXdvcmRzW2ldICsgIj0iICsgdmFsdWVzW2pdKTsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgbG9nbG4oIkRpZmZlcmluZyBDb2xsYXRvcnM6Iik7CisvLyAgICAgICAgYm9vbGVhbltdIGlzQXZhaWxhYmxlID0ge3RydWV9OworLy8gICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbG9jYWxlcy5sZW5ndGg7ICsraykgeworLy8gICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlc1trXS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIiBbIiArbG9jYWxlc1trXSArICJdIik7CisvLyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENvbGxhdG9yLmdldEtleXdvcmRzKCkubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBiYXNlID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa2V5d29yZHNbaV0sbG9jYWxlc1trXSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pOworLy8gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoa2V5d29yZHNbaV0pLmxlbmd0aDsrK2opIHsgICAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgb3RoZXIgPSBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChrZXl3b3Jkc1tpXSwgCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUxvY2FsZShsb2NhbGVzW2tdICsgIkAiICsga2V5d29yZHNbaV0gKyAiPSIgKyB2YWx1ZXNbal0pLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGUpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0F2YWlsYWJsZVswXSAmJiAhb3RoZXIuZXF1YWxzKGJhc2UpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiXHQiICsga2V5d29yZHNbaV0gKyAiPSIgKyB2YWx1ZXNbal0gKyAiO1x0IiArIGJhc2UgKyAiO1x0IiArIG90aGVyKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25TcGFuaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2E4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblNwYW5pc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9lc2NvbGwuY3BwCisgKiovCisgCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKKyBpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKKyBpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorIHB1YmxpYyBjbGFzcyBDb2xsYXRpb25TcGFuaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvblNwYW5pc2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NDUsIDB4NmMsIDB4NmMsIDB4NjksIDB4NmYsIDB4NzR9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg0OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2Zn0sCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NmMsIDB4NmMsIDB4NjksIDB4NjEsIDB4NzN9LAorICAgICAgICB7MHg0NSwgMHg2ZCwgMHg2OSwgMHg2ZiwgMHg3NH0sCisgICAgICAgIHsweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDRmfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDZjLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDY4LCAweDY1LCAweDZjLCAweDZjLCAweDRmfSwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC8vIHRlc3QgcHJpbWFyeSA+IDUKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAwCisgICAgfTsKKyAgICAKKyAgICAvL3N0YXRpYyBwdWJsaWMgQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uU3BhbmlzaFRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCl7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNSA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDU7IGkgPCA5OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gYW1pbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIHRoZSBzcGFuaXNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjM2Mzk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDQ2NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuTW9kdWxlVGVzdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5EYXRhTWFwOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SYXdDb2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVGVzdCBleHRlbmRzIE1vZHVsZVRlc3R7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBDb2xsYXRpb25UZXN0KCkgeworICAgICAgICBzdXBlcigiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiwgIkRhdGFEcml2ZW5Db2xsYXRpb25UZXN0Iik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NNb2R1bGVzKCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSB0LmdldFNldHRpbmdzSXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBEYXRhTWFwIHNldHRpbmcgPSAoRGF0YU1hcCkgaXRlci5uZXh0KCk7CisgICAgICAgICAgICBwcm9jZXNzU2V0dGluZyhzZXR0aW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgc3RhdGljIHZvaWQgZG9UZXN0KFRlc3RGbXdrIHRlc3QsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbCwgU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpCisgICAgeworICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgc291cmNlLCB0YXJnZXQsIHJlc3VsdCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQodGVzdCwgY29sLCB0YXJnZXQsIHNvdXJjZSwgMSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgdGFyZ2V0LCBzb3VyY2UsIC0xKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQodGVzdCwgY29sLCB0YXJnZXQsIHNvdXJjZSwgMCk7CisgICAgICAgIH0KKworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKHRlc3QsIGl0ZXIpOworICAgICAgICBpdGVyLnNldFRleHQodGFyZ2V0KTsKKyAgICAgICAgYmFja0FuZEZvcnRoKHRlc3QsIGl0ZXIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW50ZWdlciBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgY29sbGF0aW9uIG9yZGVycworICAgICAqIHJldHVybmVkIGJ5IGNhbGxzIHRvIG5leHQgb24gdGhlIHNwZWNpZmllZCBpdGVyYXRvcgorICAgICAqLworICAgIHN0YXRpYyBpbnRbXSBnZXRPcmRlcnMoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIpIAorICAgIHsKKyAgICAgICAgaW50IG1heFNpemUgPSAxMDA7CisgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgaW50W10gb3JkZXJzID0gbmV3IGludFttYXhTaXplXTsKKyAgICAgICAgCisgICAgICAgIGludCBvcmRlcjsKKyAgICAgICAgd2hpbGUgKChvcmRlciA9IGl0ZXIubmV4dCgpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAoc2l6ZSA9PSBtYXhTaXplKSB7CisgICAgICAgICAgICAgICAgbWF4U2l6ZSAqPSAyOworICAgICAgICAgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W21heFNpemVdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob3JkZXJzLCAwLCB0ZW1wLCAgMCwgc2l6ZSk7CisgICAgICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9yZGVyc1tzaXplKytdID0gb3JkZXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtYXhTaXplID4gc2l6ZSkgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXJzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBiYWNrQW5kRm9ydGgoVGVzdEZtd2sgdGVzdCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIpIAorICAgIHsKKyAgICAgICAgLy8gUnVuIHRocm91Z2ggdGhlIGl0ZXJhdG9yIGZvcndhcmRzIGFuZCBzdGljayBpdCBpbnRvIGFuIGFycmF5CisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgaW50W10gb3JkZXJzID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgIAorICAgICAgICAvLyBOb3cgZ28gdGhyb3VnaCBpdCBiYWNrd2FyZHMgYW5kIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIHNhbWUgdmFsdWVzCisgICAgICAgIGludCBpbmRleCA9IG9yZGVycy5sZW5ndGg7CisgICAgICAgIGludCBvOworICAgIAorICAgICAgICAvLyByZXNldCB0aGUgaXRlcmF0b3IKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgIAorICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGlmIChvICE9IG9yZGVyc1stLWluZGV4XSkgeworICAgICAgICAgICAgICAgIGlmIChvID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBvcmRlcnNbaW5kZXhdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IC0tOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBpZiAobyAhPSBvcmRlcnNbaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJNaXNtYXRjaCBhdCBpbmRleCAiICsgaW5kZXggKyAiOiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9yZGVyc1tpbmRleF0pICsgIiB2cyAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAwICYmIG9yZGVyc1tpbmRleCAtIDFdID09IDApIHsKKyAgICAgICAgICBpbmRleCAtLTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoaW5kZXggIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJEaWRuJ3QgZ2V0IGJhY2sgdG8gYmVnaW5uaW5nIC0gaW5kZXggaXMgIjsKKyAgICAgICAgICAgIHRlc3QuZXJybG4obXNnICsgaW5kZXgpOworICAgIAorICAgICAgICAgICAgaXRlci5yZXNldCgpOworICAgICAgICAgICAgdGVzdC5lcnIoIm5leHQ6ICIpOworICAgICAgICAgICAgd2hpbGUgKChvID0gaXRlci5uZXh0KCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGV4U3RyaW5nID0gIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobykgKyAiICI7CisgICAgICAgICAgICAgICAgdGVzdC5lcnIoaGV4U3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3QuZXJybG4oIiIpOworICAgICAgICAgICAgdGVzdC5lcnIoInByZXY6ICIpOworICAgICAgICAgICAgd2hpbGUgKChvID0gaXRlci5wcmV2aW91cygpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFN0cmluZyA9ICIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pICsgIiAiOworICAgICAgICAgICAgICAgICB0ZXN0LmVycihoZXhTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVzdC5lcnJsbigiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIG1fc2VxdWVuY2VfOworICAgIHByaXZhdGUgaW50IG1fc2VxdWVuY2VJbmRleF87CisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdGFyZ2V0XyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcml2YXRlIGludCBtX25leHRSZWxhdGlvbl87CisgICAgcHJpdmF0ZSBpbnQgbV9yZWxhdGlvbl87CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NTZXR0aW5nKERhdGFNYXAgc2V0dGluZ3MpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sID0gbnVsbDsKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIGxvY2FsZXMgZm9yIGVhY2ggdGVzdAorICAgICAgICBTdHJpbmcgbG9jYWxlID0gc2V0dGluZ3MuZ2V0U3RyaW5nKCJUZXN0TG9jYWxlIik7CisgICAgICAgIAorICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBjYXNlIHdoZXJlIHdlIGhhdmUgbG9jYWxlCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NhbGUpOworICAgICAgICAgICAgICAgIGNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsKTsKKyAgICAgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBjb2xsYXRvciBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgcHJvY2Vzc1NldHRpbmcyKHNldHRpbmdzLCBjb2wpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlcyA9IHNldHRpbmdzLmdldFN0cmluZygiUnVsZXMiKTsKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIHJ1bGVzIGZvciBlYWNoIHRlc3QKKyAgICAgICAgaWYgKHJ1bGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGhlcmUgd2UgZGVhbCB3aXRoIHJ1bGVzCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGE6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBjb2xsYXRvciBmb3IgcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb2Nlc3NTZXR0aW5nMihzZXR0aW5ncywgY29sKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzU2V0dGluZzIoRGF0YU1hcCBzZXR0aW5ncyxSdWxlQmFzZWRDb2xsYXRvciBjb2wpCisgICAgeworCisgICAgICAgIC8vIG9rIGkgaGF2ZSB0byBiZSBjYXJlZnVsIGhlcmUgc2luY2UgaXQgc2VlbXMgbGlrZSB3ZSBjYW4gaGF2ZQorICAgICAgICAvLyBtdWx0aXBsZSBydWxlcyBmb3IgZWFjaCB0ZXN0CisgICAgICAgIFN0cmluZyBhcmd1bWVudHMgPSBzZXR0aW5ncy5nZXRTdHJpbmcoIkFyZ3VtZW50cyIpOworICAgICAgICBpZiAoYXJndW1lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhhbmRsZUFyZ3VtZW50cyhjb2wsIGFyZ3VtZW50cyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvY2Vzc1Rlc3RDYXNlcyhjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWRzIHRoZSBvcHRpb25zIHN0cmluZyBhbmQgc2V0cyBhcHByb3ByaWF0ZSBhdHRyaWJ1dGVzIGluIGNvbGxhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZUFyZ3VtZW50cyhSdWxlQmFzZWRDb2xsYXRvciBjb2wsIFN0cmluZyBhcmd1bWVudCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGJvb2xlYW4gcHJpbnRJbmZvID0gZmFsc2U7CisgICAgICAgIHdoaWxlIChpIDwgYXJndW1lbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYXJndW1lbnQuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIC8vIGVhdCB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpICsrOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChpIDwgYXJndW1lbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIHNraXAgb3BlbmluZyAnWycKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5jaGFyQXQoaSkgPT0gJ1snKSB7CisgICAgICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmKCFpc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGluIGNvbGxhdGlvbiBhcmd1bWVudHMsIG1pc3NpbmcgWyIpOyAvLyBubyBvcGVuaW5nICdbJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyAhISEgZm9sbG93aW5nIGxpbmUgaGFzIG5vIGVmZmVjdAorICAgICAgICAgICAgICAgIHByaW50SW5mbz10cnVlOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHZhbHVlID0gYXJndW1lbnQuaW5kZXhPZignICcsIGkpOworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IGFyZ3VtZW50LnN1YnN0cmluZyhpLCB2YWx1ZSk7CisgICAgICAgICAgICBpID0gYXJndW1lbnQuaW5kZXhPZignXScsIHZhbHVlKTsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb252YWx1ZSA9IGFyZ3VtZW50LnN1YnN0cmluZyh2YWx1ZSArIDEsIGkpOworICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgIC8vIHNvbWUgb3B0aW9ucyBhcmUgbm90IGFkZGVkIGJlY2F1c2UgdGhleSBoYXZlIG5vIHB1YmxpYyBhcGlzIHlldAorICAgICAgICAgICAgLy8gVE9ETyBhZGQgdGhlIHJlc3Qgb2YgdGhlIG9wdGlvbnMKKyAgICAgICAgICAgIGlmIChvcHRpb24uZXF1YWxzSWdub3JlQ2FzZSgiYWx0ZXJuYXRlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgibm9uLWlnbm9yYWJsZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCJzdHJlbmd0aCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjEiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjIiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgiMyIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjQiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwcmludEluZm8pIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhLiBTa2lwcGluZy4uLiIpOworICAgICAgICB9CisgICAgICAgIC8vICEhISBlZmZlY3QgaXMgb2RkLCBpZiBubyBtb2R1bGFyIGJ1aWxkLCB0aGlzIGVtaXRzIG5vCisgICAgICAgIC8vIG1lc3NhZ2UgYXQgYWxsLiAgSG93IGNvbWU/ICBIbW1tLiAgcHJpbnRJbmZvIGlzIG5ldmVyCisgICAgICAgIC8vIHRydWUgaWYgd2UgZ2V0IGhlcmUsIHNvIHRoaXMgY29kZSBpcyBuZXZlciBleGVjdXRlZC4KKyAgICAgICAgLyoKKyAgICAgICAgaWYocHJpbnRJbmZvID09IHRydWUgJiYgaXNNb2R1bGFyQnVpbGQoKSl7CisgICAgICAgICAgICBpbmZvbG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4gU2tpcHBpbmcuLi4iKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzVGVzdENhc2VzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSB0LmdldERhdGFJdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIERhdGFNYXAgZTEgPSAgKERhdGFNYXApIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgcHJvY2Vzc1NlcXVlbmNlKGNvbCwgZTEuZ2V0U3RyaW5nKCJzZXF1ZW5jZSIpKTsKKyAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzU2VxdWVuY2UoUnVsZUJhc2VkQ29sbGF0b3IgY29sLCBTdHJpbmcgc2VxdWVuY2UpIHsKKyAgICAgICAgLy8gVE9ETzogaGF2ZSBhIHNtYXJ0ZXIgdGVzdGVyIHRoYXQgcmVtZW1iZXJzIHRoZSBzZXF1ZW5jZSBhbmQgZW5zdXJlcworICAgICAgICAvLyB0aGF0IHRoZSBjb21wbGV0ZSBzZXF1ZW5jZSBpcyBpbiBvcmRlci4gVGhhdCBpcyB3aHkgSSBoYXZlIG1hZGUgYQorICAgICAgICAvLyBjb25zdHJhaW50IGluIHRoZSBzZXF1ZW5jZSBmb3JtYXQuCisgICAgICAgIG1fc2VxdWVuY2VfID0gc2VxdWVuY2U7CisgICAgICAgIG1fc2VxdWVuY2VJbmRleF8gPSAwOworICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAtMTsKKyAgICAgICAgbV90YXJnZXRfLmRlbGV0ZSgwLCBtX3RhcmdldF8ubGVuZ3RoKCkpOworICAgICAgICBWZWN0b3IgdmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICBpbnQgbGFzdHNtYWxsZXJ0aGFuaW5kZXggPSAtMTsKKyAgICAgICAgZ2V0TmV4dEluU2VxdWVuY2UoKTsKKyAgICAgICAgd2hpbGUgKGdldE5leHRJblNlcXVlbmNlKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBtX3RhcmdldF8udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGRvVGVzdCh0aGlzLCBjb2wsIG1fc291cmNlXywgdGFyZ2V0LCBtX3JlbGF0aW9uXyk7CisgICAgICAgICAgICBpbnQgdnNpemUgPSB2ZWN0b3Iuc2l6ZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHZzaXplIC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpdmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IGxhc3RzbWFsbGVydGhhbmluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdCh0aGlzLCBjb2wsIHNvdXJjZSwgdGFyZ2V0LCBtX3JlbGF0aW9uXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3QodGhpcywgY29sLCBzb3VyY2UsIHRhcmdldCwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhcmdldCk7CisgICAgICAgICAgICBpZiAobV9yZWxhdGlvbl8gPCAwKSB7CisgICAgICAgICAgICAgICAgbGFzdHNtYWxsZXJ0aGFuaW5kZXggPSB2c2l6ZSAtIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIHNlcXVlbmNlIHRvIGJlIHRlc3RlZAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBnZXROZXh0SW5TZXF1ZW5jZSgpIHsKKyAgICAgICAgaWYgKG1fc2VxdWVuY2VJbmRleF8gPj0gbV9zZXF1ZW5jZV8ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gcXVvdGVkID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gcXVvdGVkc2luZ2xlID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgICAgICBpbnQgaSA9IG1fc2VxdWVuY2VJbmRleF87CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBtX3NvdXJjZV8gPSBtX3RhcmdldF8udG9TdHJpbmcoKTsKKyAgICAgICAgbV9yZWxhdGlvbl8gPSBtX25leHRSZWxhdGlvbl87CisgICAgICAgIG1fdGFyZ2V0Xy5kZWxldGUoMCwgbV90YXJnZXRfLmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKGkgPCBtX3NlcXVlbmNlXy5sZW5ndGgoKSAmJiAhZG9uZSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KG1fc2VxdWVuY2VfLCBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFxdW90ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNDIDogLy8gPAorICAgICAgICAgICAgICAgICAgICAgICAgbV9uZXh0UmVsYXRpb25fID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRCA6IC8vID0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dFJlbGF0aW9uXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRSA6IC8vID4KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dFJlbGF0aW9uXyA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyNyA6IC8vICcgdmVyeSBiYXNpYyBxdW90aW5nCisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkc2luZ2xlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwNWMgOiAvLyBcIHNpbmdsZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZHNpbmdsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2Lmluc2VydChtX3RhcmdldF8sIG9mZnNldCwgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMjcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pbnNlcnQobV90YXJnZXRfLCBvZmZzZXQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1b3RlZHNpbmdsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAocXVvdGVkID09IHRydWUpIHsKKyAgICAgICAgICAgICAgZXJybG4oIlF1b3RlIGluIHNlcXVlbmNlIG5vdCBjbG9zZWQhIik7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisKKworICAgICAgICAgIG1fc2VxdWVuY2VJbmRleF8gPSBpOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZG9UZXN0VmFyaWFudChUZXN0Rm13ayB0ZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpCisgICAgeworICAgICAgICBib29sZWFuIHByaW50SW5mbyA9IGZhbHNlOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCAgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQgIT0gcmVzdWx0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vICEhISBpZiBub3QgbW9kIGJ1aWxkLCBlcnJvciwgZWxzZSBub3RoaW5nLgorICAgICAgICAgICAgLy8gd2FybmxuIGlmIG5vdCBidWlsZCwgZXJyb3IsIGVsc2UgYWx3YXlzIHByaW50IHdhcm5pbmcuCisgICAgICAgICAgICAvLyBkbyB3ZSBuZWVkIGEgJ3F1aWV0IHdhcm5pbmc/JyAoZXJyIG9yIGxvZykuICBIbW1tLAorICAgICAgICAgICAgLy8gd291bGQgaXQgd29yayB0byBoYXZlIHRoZSAndmVyYm9zZScgZmxhZyBsZXQgeW91IAorICAgICAgICAgICAgLy8gc3VwcHJlc3Mgd2FybmluZ3M/ICBBcmUgdGhlcmUgZXZlciBzb21lIHdhcm5pbmdzIHlvdQorICAgICAgICAgICAgLy8gd2FudCB0byBzdXBwcmVzcywgYW5kIG90aGVycyB5b3UgZG9uJ3Q/CisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgXCIiICsgVXRpbGl0eS5oZXgoc291cmNlKSArICJcIiB3aXRoIFwiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh0YXJnZXQpICsgIlwiIGV4cGVjdGVkICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICIgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHByaW50SW5mbyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IHNzayA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25LZXkgdHNrID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIGNvbXBhcmVSZXN1bHQgPSBzc2suY29tcGFyZVRvKHRzayk7CisgICAgICAgIGlmIChjb21wYXJlUmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgQ29sbGF0aW9uS2V5cyBvZiBcIiIgKyBVdGlsaXR5LmhleChzb3VyY2UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgd2l0aCBcIiIgKyBVdGlsaXR5LmhleCh0YXJnZXQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgZXhwZWN0ZWQgIiArIHJlc3VsdCArICIgYnV0IGdvdCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBwcmludEluZm8gPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUmF3Q29sbGF0aW9uS2V5IHNyc2sgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgIG15Q29sbGF0aW9uLmdldFJhd0NvbGxhdGlvbktleShzb3VyY2UsIHNyc2spOworICAgICAgICBSYXdDb2xsYXRpb25LZXkgdHJzayA9IG5ldyBSYXdDb2xsYXRpb25LZXkoKTsKKyAgICAgICAgbXlDb2xsYXRpb24uZ2V0UmF3Q29sbGF0aW9uS2V5KHRhcmdldCwgdHJzayk7CisgICAgICAgIGNvbXBhcmVSZXN1bHQgPSBzc2suY29tcGFyZVRvKHRzayk7CisgICAgICAgIGlmIChjb21wYXJlUmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZighdGVzdC5pc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgICAgICB0ZXN0LmVycmxuKCJDb21wYXJpbmcgUmF3Q29sbGF0aW9uS2V5cyBvZiBcIiIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHNvdXJjZSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiB3aXRoIFwiIiArIFV0aWxpdHkuaGV4KHRhcmdldCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiBleHBlY3RlZCAiICsgcmVzdWx0ICsgIiBidXQgZ290ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNvbXBhcmVSZXN1bHQpOworICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIHByaW50SW5mbyA9IHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBobW1tLCBidXQgaGVyZSB3ZSBpc3N1ZSBhIHdhcm5pbmcKKyAgICAgICAgLy8gb25seSBkaWZmZXJlbmNlIGlzLCBvbmUgd2FybmluZyBvciB0d28sIGFuZCBkZXRhaWxlZCBpbmZvIG9yIG5vdD8KKyAgICAgICAgLy8gaG1tbSwgZG9lcyBzZWVtIHByZWZlcmFibGUgdG8gb21pdCBkZXRhaWwgaWYgd2Uga25vdyBpdCBpcyBkdWUgdG8gbWlzc2luZyByZXNvdXJjZSBkYXRhLgorICAgICAgICAvLyB3ZWxsLCBpZiB3ZSBsYWJlbCB0aGUgZXJyb3JzIGFzIHdhcm5pbmdzLCB3ZSBjYW4gbGV0IHBlb3BsZSBrbm93IHRoZSBkZXRhaWxzLCBidXQKKyAgICAgICAgLy8gYWxzbyBrbm93IHRoZXkgbWF5IGJlIGR1ZSB0byBtaXNzaW5nIHJlc291cmNlIGRhdGEuICBiYXNpY2FsbHkgdGhpcyBjb2RlIGlzIGFzc2VydGluZworICAgICAgICAvLyB0aGF0IHRoZSBlcnJvcnMgYXJlIGR1ZSB0byBtaXNzaW5nIHJlc291cmNlIGRhdGEsIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIHRydWUuCisgICAgICAgIGlmIChwcmludEluZm8pIHsKKyAgICAgICAgICAgIHRlc3Qud2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YSBza2lwcGluZy4iKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzljZjQ2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsODUwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblRlc3REYXRhIGV4dGVuZHMgSUNVTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgQ29sbGF0aW9uVGVzdERhdGEoKSB7CisgICAgICAgICAgc3VwZXIuY29udGVudHMgPSBkYXRhOworICAgIH0KKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlc2UgYXJlIHRoZSBkYXRhIGRyaXZlbiB0ZXN0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIZWFkZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcXVlbmNlIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb25nRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZm9sbG93aW5nIGVudHJpZXMgYXJlIHNlcGFyYXRlIHRlc3RzIGNvbnRhaW5pbmciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRlc3QgZGF0YSBmb3IgdmFyaW91cyBsb2NhbGVzLkVhY2ggZW50cnkgaGFzIHRoZSBmIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9sbG93aW5nIGZpZWxkczogSW5mby9EZXNjcmlwdGlvbiAtIHNob3J0IGRlc2NyaW9wdCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpb24gb2YgdGhlIHRlc3RTZXR0aW5ncyAtIHNldHRpbmdzIGZvciB0aGUgdGVzdC5TZXQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGluZ3MvVGVzdExvY2FsZSAtIGxvY2FsZSBmb3IgdGhlIGNvbGxhdG9yIE9SU2V0dGluIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdzL1J1bGVzIC0gcnVsZXMgZm9yIHRoZSBjb2xsYXRvciAoY2FuJ3QgaGF2ZSBib3RoKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncy9Bcmd1bWVudHMgLSBhcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIHRoZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGF0b3IgYmVmb3JlIHRlc3RpbmcuIFVzZSBydWxlIHN5bnRheC5DYXNlcyAtIHNlIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInQgb2YgdGVzdCBjYXNlcywgd2hpY2ggYXJlIHNlcXVlbmNlcyBvZiBzdHJpbmdzIHRoYSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0IHdpbGwgYmUgcGFyc2VkU2VxdWVuY2VzIG11c3Qgbm90IGNoYW5nZSB0aGUgc2lnbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2YgcmVsYXRpb24sIGkuZS4gd2UgY2FuIG9ubHkgaGF2ZSA8IGFuZCA9IG9yPiBhbmQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj0gaW4gc2luZ2xlIHNlcXVlbmNlLiBDYW5ub3QgbWl4IDwgYW5kID4gaW4gdGhlIHNhbSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlIHNlcXVlbmNlLiBXaGl0ZXNwYWNlIGlzaXMgaWdub3JlZCB1bmxlc3MgcXVvdGVkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiVGVzdERhdGEiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdEFsYmFuaWFuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN6PFx1MDBFNzxkPGR6PGRoPGU8ZXo8XHUwMEVCPGYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Z3o8Z2o8aDxsejxsbDxtPG56PG5qPG88cno8cnI8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiczxzejxzaDx0PHR6PHRoPHU8eHo8eGg8eTx6ejx6aCIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFsYmFuaWFuIHNvcnQgb3JkZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMb2NhbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0RXN0b25pYW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3k8XHUwMTYxPFx1MDE2MXk8ejx6eTxcdTAxN0U8diIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx3PHZhPFx1MDBGNTxcdTAwRjV5PFx1MDBFNDxcdTAwRTQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5PFx1MDBGNjxcdTAwRjZ5PFx1MDBGQzxcdTAwRkN5IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPHgiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFc3RvbmlhbiBzb3J0IG9yZGVyLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdEphdmFTdHlsZVJ1bGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSA9IGVxdWFsIDwgeiA8IHggPCB3IDwgYiA8IHkiCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImphdmEudGV4dCBhbGxvd3MgcnVsZXMgdG8gc3RhcnQgYXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInPDw8eDw8PHkuLi4nIHdlIGVtdWxhdGUgdGhpcyBieSBhcyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VtaW5nIGEgJltmaXJzdCB0ZXJ0aWFyeSBpZ25vcmFibGUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0gaW4gdGhpcyBjYXNlLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPWVxdWFsPDw8ejw8eDw8PHc8eSAmW2ZpcnN0IHRlciIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpYXJ5IGlnbm9yYWJsZV09YSAmW2ZpcnN0IHByaW0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcnkgaWdub3JhYmxlXT1iIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TGF0dmlhbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjejxcdTAxMEQ8ZDxnejxcdTAxMjM8aDxpejx5PGo8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia3o8XHUwMTM3PGw8bHo8XHUwMTNDPG08bno8XHUwMTQ2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPG88cno8XHUwMTU3PHM8c3o8XHUwMTYxPHQ8eno8XHUwMTdFIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGF0dmlhbiBzb3J0IG9yZGVyLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsdiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExpdGh1YW5pYW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3o8XHUwMTBEPGQ8aXo8eTxqPHN6PFx1MDE2MTx0PCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInp6PFx1MDE3RSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpdGh1YW5pYW4gc29ydCBvcmRlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3ROU2hpZnRlZElnbm9yYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhJyAnYjxBJyAnYjxhJyAnXHUwMzAxYjxBJyAnXHUwMzAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYjxhJyAnXHUwMzAwYjxBJyAnXHUwMzAwYjxhX2I8QSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9iPGFfXHUwMzAxYjxBX1x1MDMwMWI8YV9cdTAzMDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiPEFfXHUwMzAwYjxhXHUwMzAxYjxBXHUwMzAxYjxhIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzAwYjxBXHUwMzAwYjwiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZXcgVUNBIHN0YXRlcyB0aGF0IHByaW1hcnkgaWdub3JhYiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGVzIHNob3VsZCBiZSBjb21wbGV0ZWx5IGlnbm9yYWJsZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gZm9sbG93aW5nIGEgc2hpZnRlZCBjb2RlIHBvaW50IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW2FsdGVybmF0ZSBub24taWdub3JhYmxlXVtzdHJlbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImd0aCAzXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0U2FmZVN1cnJvZ2F0ZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYTx4XHVEODAwXHVEQzAwYiIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkl0IHR1cm5lZCBvdXQgdGhhdCBzdXJyb2dhdGVzIHdlcmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3Qgc2tpcHBlZCBwcm9wZXJseSB3aGVuIGl0ZXJhdGluZyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJhY2t3YXJkcyBpZiB0aGV5IHdlcmUgaW4gdGhlIG1pZGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxlIG9mIGEgY29udHJhY3Rpb24uIFRoaXMgdGVzdCBhc3N1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXMgdGhhdCB0aGlzIGlzIGZpeGVkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJmEgPCB4XHVEODAwXHVEQzAwYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFNoaWZ0ZWRJZ25vcmFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYScgJ2I9YScgJ1x1MDMwMGI9YScgJ1x1MDMwMWI8YSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9iPWFfXHUwMzAwYj1hX1x1MDMwMWI8QScgJ2I9QSciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgJ1x1MDMwMGI9QScgJ1x1MDMwMWI8QV9iPUFfXHUwMzAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYj1BX1x1MDMwMWI8YVx1MDMwMWI8QVx1MDMwMWI8YSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMGI8QVx1MDMwMGIiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZXcgVUNBIHN0YXRlcyB0aGF0IHByaW1hcnkgaWdub3JhYiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGVzIHNob3VsZCBiZSBjb21wbGV0ZWx5IGlnbm9yYWJsZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gZm9sbG93aW5nIGEgc2hpZnRlZCBjb2RlIHBvaW50IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW2FsdGVybmF0ZSBzaGlmdGVkXVtzdHJlbmd0aCA0XSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0U2ltcGxpZmllZENoaW5lc2VPcmRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTVGMjA8XHU1RjIwXHU0RTAwXHU4RTNGIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU29ydGVkIGZpbGUgaGFzIGRpZmZlcmVudCBvcmRlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbbm9ybWFsaXphdGlvbiBvbl0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFRoYWlQYXJ0aWFsU29ydEtleVByb2JsZW1zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUwMVx1MEUzOFx1MEUxOFx1MEUyMFx1MEUzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUxM1x1MEUxMVx1MEU0QzxcdTBFMDFcdTBFMDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMzhcdTBFMkFcdTBFMzFcdTBFMTlcdTBFNDJcdTBFMTgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUwN1x1MEUwMVx1MEUzMlx1MEUyMzwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMDdcdTBFNDJcdTBFMDFcdTBFNDkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUyM1x1MEUxOVx1MEUxN1x1MEUzMjwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMjNcdTBFMTlcdTBFMTlcdTBFNDBcdTBFMEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFNDlcdTBFMzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUyM1x1MEUzMFx1MEU0MFx1MEUwOFx1MEUzNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUyMlx1MEUyNzxcdTBFMDFcdTBFMjNcdTBFMzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFNDBcdTBFMDhcdTBFMzVcdTBFNEFcdTBFMjJcdTBFMjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUyM1x1MEUyM1x1MEU0MFx1MEUwQVx1MEUyRCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTBFMDFcdTBFMjNcdTBFMjNcdTBFNDBcdTBFMEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFNDlcdTBFMzIiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGVzZSBhcmUgZXhhbXBsZXMgb2Ygc3RyaW5ncyB0aGF0ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2F1c2VkIHRyb3VibGUgaW4gcGFydGlhbCBzb3J0IGtleSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RpbmcuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMb2NhbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoX1RIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0VGliZXRhbk5vcm1hbGl6ZWRJdGVyYXRpdmVDcmFzaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBGNzFcdTBGNzJcdTBGODBcdTBGNzFcdTBGNzI8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRjgwIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyBwcmV0dHkgbXVjaCBjcmFzaGVzLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0RGFuaXNoUHJpbWFyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMdmk8THdpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEU0dmk8TFx1MDBGNndpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEZDYmVjaz1MeWJlY2siLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHRlc3QgZ29lcyB0aHJvdWdoIHByaW1hcnkgc3RyZSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmd0aCBjYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltzdHJlbmd0aCAxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdERhbmlzaFRlcnRpYXJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkx1YzxsdWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsdWNrPExcdTAwRkNiZWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEZDYmVjaz5seWJlY2siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcdTAwRTR2aTxMXHUwMEY2d2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcdTAwRjZ3dzxtYXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBL1M8QU5EUkU8QU5EUlx1MDBDOTxBTkRSRUFTPEFTIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPENBPFx1MDBDN0E8Q0I8XHUwMEM3QzxELlMuQi48RCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkE8XHUwMEQwQTxEQjxcdTAwRDBDPERTQjxEU0M8RUsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVFJBX0FSQkVKREU8RUtTVFJBQlVEMDxIXHUwMEQ4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1Q8SEFBRzxIXHUwMEM1TkRCT0c8SEFBTkRWXHUwMEM2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUktTQkFOS0VOPEthcmw8a2FybDwnTklFTFMgSlx1MDBEOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJHRU4nPE5JRUxTLUpcdTAwRDhSR0VOPE5JRUxTRU4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8J1JcdTAwQzlFLCBBJzwnUkVFLCBCJzwnUlx1MDBDOSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkUsIEwnPCdSRUUsIFYnPCdTQ0hZVFQsIEInPCdTQ0giICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZVFQsIEgnPCdTQ0hcdTAwRENUVCwgSCc8J1NDSFlUIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVCwgTCc8J1NDSFx1MDBEQ1RULCBNJzxTUzxcdTAwREYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8U1NBPCdTVE9SRSBWSUxETU9TRSc8U1RPUkVLXHUwMEM2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUjA8J1NUT1JNIFBFVEVSU0VOJzxTVE9STUxZPFRITyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJWQUxEPFRIT1JWQVJEVVI8XHUwMEZFT1JWQVJcdTAwRDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVUjxUSFlHRVNFTjwnVkVTVEVSR1x1MDBDNVJELCBBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJzwnVkVTVEVSR0FBUkQsIEEnPCdWRVNURVJHXHUwMEM1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUkQsIEInPFx1MDBDNkJMRTxcdTAwQzRCTEU8XHUwMEQ4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQkVSRzxcdTAwRDZCRVJHIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRlcmU8Y2hhcXVlPGNoZW1pbjxjb3RlPGNvdFx1MDBFOSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxjXHUwMEY0dGU8Y1x1MDBGNHRcdTAwRTk8XHUwMTBEIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidVx1MDEwRFx1MDExM3Q8Q3plY2g8aGlcdTAxNjFhPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlyZGlzY2g8bGllPGxpcmU8bGxhbWE8bFx1MDBGNXUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnPGxcdTAwRjJ6YTxsdVx1MDEwRDxsdWNrPExcdTAwRkMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZWNrPGx5ZTxsXHUwMEU0dmk8TFx1MDBGNndlbjxtIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMEUwXHUwMTYxdGE8bVx1MDBFRXI8bXluZGlnPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1cdTAwRTRubmVyPG1cdTAwRjZjaHRlbjxwaVx1MDBGMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImE8cGludDxweWxvbjxcdTAxNjFcdTAwRTByYW48c2EiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2b2lyPFx1MDE2MGVyYlx1MDE2QnJhPFNpZXRsYTxcdTAxNUIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsdWI8c3VidGxlPHN5bWJvbDxzXHUwMEU0bXRsaWNoIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPHZlcmtlaHJ0PHZveDx2XHUwMEU0Z2E8d2FmZmxlPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndvb2Q8eWVuPHl1YW48eXVjY2E8XHUwMTdFYWw8XHUwMTdFIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5hPFx1MDE3RGVuXHUwMTEzdmE8em9vMDxadmllZCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJpamE8Wlx1MDBGQ3JpY2g8enlzazA8XHUwMEU0bmQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcmUiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHRlc3QgZ29lcyB0aHJvdWdoIHRlcnRpYXJ5IHN0ciIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5ndGggY2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbc3RyZW5ndGggM10iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3ROZXdIaW5kaVJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MDxcdTA5NjQ8XHUwOTY1PFx1MDk3MDxcdTA5NjYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTY3PFx1MDk2ODxcdTA5Njk8XHUwOTZBPFx1MDk2QiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5NkM8XHUwOTZEPFx1MDk2RTxcdTA5NkY8XHUwOTA1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkwNjxcdTA5MDc8XHUwOTA4PFx1MDkwOTxcdTA5MEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTBCPFx1MDk2MDxcdTA5MEM8XHUwOTYxPFx1MDkwRCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MEU8XHUwOTBGPFx1MDkxMDxcdTA5MTE8XHUwOTEyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxMzxcdTA5MTQ8XHUwOTE1PFx1MDkxNVx1MDkzQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1cdTA5NTg8XHUwOTE1XHUwOTAxPFx1MDkxNVx1MDkwMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTVcdTA5MDM8XHUwOTE1XHUwOTUxPFx1MDkxNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MjxcdTA5MTVcdTA5NTM8XHUwOTE1XHUwOTU0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNVx1MDkzRDxcdTA5MTVcdTA5NEQ8XHUwOTE1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNFPFx1MDkxNVx1MDkzRjxcdTA5MTVcdTA5NDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE1XHUwOTQxPFx1MDkxNVx1MDk0MjxcdTA5MTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDM8XHUwOTE1XHUwOTQ0PFx1MDkxNVx1MDk2MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTVcdTA5NjM8XHUwOTE1XHUwOTQ1PFx1MDkxNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NjxcdTA5MTVcdTA5NDc8XHUwOTE1XHUwOTQ4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNVx1MDk0OTxcdTA5MTVcdTA5NEE8XHUwOTE1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRCPFx1MDkxNVx1MDk0QzxcdTA5MTY8XHUwOTE2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNDID1cdTA5NTk8XHUwOTE2XHUwOTAxPFx1MDkxNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkwMjxcdTA5MTZcdTA5MDM8XHUwOTE2XHUwOTUxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNlx1MDk1MjxcdTA5MTZcdTA5NTM8XHUwOTE2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTU0PFx1MDkxNlx1MDkzRDxcdTA5MTZcdTA5NEQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE2XHUwOTNFPFx1MDkxNlx1MDkzRjxcdTA5MTYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDA8XHUwOTE2XHUwOTQxPFx1MDkxNlx1MDk0MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTZcdTA5NDM8XHUwOTE2XHUwOTQ0PFx1MDkxNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk2MjxcdTA5MTZcdTA5NjM8XHUwOTE2XHUwOTQ1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNlx1MDk0NjxcdTA5MTZcdTA5NDc8XHUwOTE2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ4PFx1MDkxNlx1MDk0OTxcdTA5MTZcdTA5NEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE2XHUwOTRCPFx1MDkxNlx1MDk0QzxcdTA5MTciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE3XHUwOTNDPVx1MDk1QTxcdTA5MTdcdTA5MDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE3XHUwOTAyPFx1MDkxN1x1MDkwMzxcdTA5MTciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTE8XHUwOTE3XHUwOTUyPFx1MDkxN1x1MDk1MyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTdcdTA5NTQ8XHUwOTE3XHUwOTNEPFx1MDkxNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0RDxcdTA5MTdcdTA5M0U8XHUwOTE3XHUwOTNGIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxN1x1MDk0MDxcdTA5MTdcdTA5NDE8XHUwOTE3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQyPFx1MDkxN1x1MDk0MzxcdTA5MTdcdTA5NDQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE3XHUwOTYyPFx1MDkxN1x1MDk2MzxcdTA5MTciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDU8XHUwOTE3XHUwOTQ2PFx1MDkxN1x1MDk0NyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTdcdTA5NDg8XHUwOTE3XHUwOTQ5PFx1MDkxNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0QTxcdTA5MTdcdTA5NEI8XHUwOTE3XHUwOTRDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxODxcdTA5MTk8XHUwOTFBPFx1MDkxQjxcdTA5MUMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTFDXHUwOTNDID1cdTA5NUI8XHUwOTFDXHUwOTAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxQ1x1MDkwMjxcdTA5MUNcdTA5MDM8XHUwOTFDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTUxPFx1MDkxQ1x1MDk1MjxcdTA5MUNcdTA5NTMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTFDXHUwOTU0PFx1MDkxQ1x1MDkzRDxcdTA5MUMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEQ8XHUwOTFDXHUwOTNFPFx1MDkxQ1x1MDkzRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MUNcdTA5NDA8XHUwOTFDXHUwOTQxPFx1MDkxQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0MjxcdTA5MUNcdTA5NDM8XHUwOTFDXHUwOTQ0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxQ1x1MDk2MjxcdTA5MUNcdTA5NjM8XHUwOTFDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ1PFx1MDkxQ1x1MDk0NjxcdTA5MUNcdTA5NDciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTFDXHUwOTQ4PFx1MDkxQ1x1MDk0OTxcdTA5MUMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEE8XHUwOTFDXHUwOTRCPFx1MDkxQ1x1MDk0QyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MUQ8XHUwOTFFPFx1MDkxRjxcdTA5MjA8XHUwOTIxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMVx1MDkzQz1cdTA5NUM8XHUwOTIxXHUwOTAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMVx1MDkwMjxcdTA5MjFcdTA5MDM8XHUwOTIxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTUxPFx1MDkyMVx1MDk1MjxcdTA5MjFcdTA5NTMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIxXHUwOTU0PFx1MDkyMVx1MDkzRDxcdTA5MjEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEQ8XHUwOTIxXHUwOTNFPFx1MDkyMVx1MDkzRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjFcdTA5NDA8XHUwOTIxXHUwOTQxPFx1MDkyMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0MjxcdTA5MjFcdTA5NDM8XHUwOTIxXHUwOTQ0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMVx1MDk2MjxcdTA5MjFcdTA5NjM8XHUwOTIxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ1PFx1MDkyMVx1MDk0NjxcdTA5MjFcdTA5NDciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIxXHUwOTQ4PFx1MDkyMVx1MDk0OTxcdTA5MjEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEE8XHUwOTIxXHUwOTRCPFx1MDkyMVx1MDk0QyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjI8XHUwOTIyXHUwOTNDPVx1MDk1RDxcdTA5MjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5MDE8XHUwOTIyXHUwOTAyPFx1MDkyMlx1MDkwMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjJcdTA5NTE8XHUwOTIyXHUwOTUyPFx1MDkyMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MzxcdTA5MjJcdTA5NTQ8XHUwOTIyXHUwOTNEIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMlx1MDk0RDxcdTA5MjJcdTA5M0U8XHUwOTIyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNGPFx1MDkyMlx1MDk0MDxcdTA5MjJcdTA5NDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIyXHUwOTQyPFx1MDkyMlx1MDk0MzxcdTA5MjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDQ8XHUwOTIyXHUwOTYyPFx1MDkyMlx1MDk2MyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjJcdTA5NDU8XHUwOTIyXHUwOTQ2PFx1MDkyMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NzxcdTA5MjJcdTA5NDg8XHUwOTIyXHUwOTQ5IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMlx1MDk0QTxcdTA5MjJcdTA5NEI8XHUwOTIyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRDPFx1MDkyMzxcdTA5MjQ8XHUwOTI1PFx1MDkyNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5Mjc8XHUwOTI4PFx1MDkyOFx1MDkzQyA9XHUwOTI5IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCBcdTA5MjhcdTA5MDE8XHUwOTI4XHUwOTAyPCBcdTA5MjgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5MDM8XHUwOTI4XHUwOTUxPFx1MDkyOFx1MDk1MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjhcdTA5NTM8XHUwOTI4XHUwOTU0PFx1MDkyOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzRDxcdTA5MjhcdTA5NEQ8XHUwOTI4XHUwOTNFIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyOFx1MDkzRjxcdTA5MjhcdTA5NDA8XHUwOTI4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQxPFx1MDkyOFx1MDk0MjxcdTA5MjhcdTA5NDMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTI4XHUwOTQ0PFx1MDkyOFx1MDk2MjxcdTA5MjgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NjM8XHUwOTI4XHUwOTQ1PFx1MDkyOFx1MDk0NiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjhcdTA5NDc8XHUwOTI4XHUwOTQ4PFx1MDkyOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0OTxcdTA5MjhcdTA5NEE8XHUwOTI4XHUwOTRCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyOFx1MDk0QzxcdTA5MkE8XHUwOTJCPFx1MDkyQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzQz1cdTA5NUU8XHUwOTJCXHUwOTAxPFx1MDkyQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkwMjxcdTA5MkJcdTA5MDM8XHUwOTJCXHUwOTUxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyQlx1MDk1MjxcdTA5MkJcdTA5NTM8XHUwOTJCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTU0PFx1MDkyQlx1MDkzRDxcdTA5MkJcdTA5NEQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJCXHUwOTNFPFx1MDkyQlx1MDkzRjxcdTA5MkIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDA8XHUwOTJCXHUwOTQxPFx1MDkyQlx1MDk0MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkJcdTA5NDM8XHUwOTJCXHUwOTQ0PFx1MDkyQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk2MjxcdTA5MkJcdTA5NjM8XHUwOTJCXHUwOTQ1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyQlx1MDk0NjxcdTA5MkJcdTA5NDc8XHUwOTJCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ4PFx1MDkyQlx1MDk0OTxcdTA5MkJcdTA5NEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJCXHUwOTRCPFx1MDkyQlx1MDk0QzxcdTA5MkMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJEPFx1MDkyRTxcdTA5MkY8XHUwOTJGXHUwOTNDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVx1MDk1RiA8XHUwOTJGXHUwOTAxPFx1MDkyRlx1MDkwMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkZcdTA5MDM8XHUwOTJGXHUwOTUxPFx1MDkyRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MjxcdTA5MkZcdTA5NTM8XHUwOTJGXHUwOTU0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyRlx1MDkzRDxcdTA5MkZcdTA5NEQ8XHUwOTJGIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNFPFx1MDkyRlx1MDkzRjxcdTA5MkZcdTA5NDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJGXHUwOTQxPFx1MDkyRlx1MDk0MjxcdTA5MkYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDM8XHUwOTJGXHUwOTQ0PFx1MDkyRlx1MDk2MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkZcdTA5NjM8XHUwOTJGXHUwOTQ1PFx1MDkyRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NjxcdTA5MkZcdTA5NDc8XHUwOTJGXHUwOTQ4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyRlx1MDk0OTxcdTA5MkZcdTA5NEE8XHUwOTJGIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRCPFx1MDkyRlx1MDk0QzxcdTA5MzA8XHUwOTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNDPVx1MDkzMTxcdTA5MzBcdTA5MDE8XHUwOTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTAyPFx1MDkzMFx1MDkwMzxcdTA5MzBcdTA5NTEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMwXHUwOTUyPFx1MDkzMFx1MDk1MzxcdTA5MzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTQ8XHUwOTMwXHUwOTNEPFx1MDkzMFx1MDk0RCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzBcdTA5M0U8XHUwOTMwXHUwOTNGPFx1MDkzMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0MDxcdTA5MzBcdTA5NDE8XHUwOTMwXHUwOTQyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzMFx1MDk0MzxcdTA5MzBcdTA5NDQ8XHUwOTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTYyPFx1MDkzMFx1MDk2MzxcdTA5MzBcdTA5NDUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMwXHUwOTQ2PFx1MDkzMFx1MDk0NzxcdTA5MzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDg8XHUwOTMwXHUwOTQ5PFx1MDkzMFx1MDk0QSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzBcdTA5NEI8XHUwOTMwXHUwOTRDPFx1MDkzMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzM8XHUwOTMzXHUwOTNDPVx1MDkzNDxcdTA5MzMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5MDE8XHUwOTMzXHUwOTAyPFx1MDkzM1x1MDkwMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzNcdTA5NTE8XHUwOTMzXHUwOTUyPFx1MDkzMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MzxcdTA5MzNcdTA5NTQ8XHUwOTMzXHUwOTNEIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzM1x1MDk0RDxcdTA5MzNcdTA5M0U8XHUwOTMzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTNGPFx1MDkzM1x1MDk0MDxcdTA5MzNcdTA5NDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMzXHUwOTQyPFx1MDkzM1x1MDk0MzxcdTA5MzMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDQ8XHUwOTMzXHUwOTYyPFx1MDkzM1x1MDk2MyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzNcdTA5NDU8XHUwOTMzXHUwOTQ2PFx1MDkzMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NzxcdTA5MzNcdTA5NDg8XHUwOTMzXHUwOTQ5IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzM1x1MDk0QTxcdTA5MzNcdTA5NEI8XHUwOTMzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRDPFx1MDkzNTxcdTA5MzY8XHUwOTM3PFx1MDkzOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5Mzk8XHUwOTNDPFx1MDkwMTxcdTA5MDI8XHUwOTAzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDk1MTxcdTA5NTI8XHUwOTUzPFx1MDk1NDxcdTA5M0QiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTREPFx1MDkzRTxcdTA5M0Y8XHUwOTQwPFx1MDk0MSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5NDI8XHUwOTQzPFx1MDk0NDxcdTA5NjI8XHUwOTYzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDk0NTxcdTA5NDY8XHUwOTQ3PFx1MDk0ODxcdTA5NDkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTRBPFx1MDk0QjxcdTA5NEMiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHRlc3QgZ29lcyB0aHJvdWdoIG5ldyBydWxlcyBhbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZCB0ZXN0cyBhZ2FpbnN0IG9sZCBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGhhaVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UaGFpVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZDQ3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGhhaVRlc3QuamF2YQpAQCAtMCwwICsxLDM1NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL0NvbGxhdGlvblJlZ3Jlc3Npb25UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9yZWdjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25UaGFpVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBmaW5hbCBpbnQgTUFYX0ZBSUxVUkVTX1RPX1NIT1cgPSAtMTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvblRoYWlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBPZGQgY29ybmVyIGNvbmRpdGlvbnMgdGFrZW4gZnJvbSAiSG93IHRvIFNvcnQgVGhhaSBXaXRob3V0IFJld3JpdGluZyBTb3J0IiwKKyAgICAgKiBieSBEb3VnIENvb3BlciwgaHR0cDovL3NlYXNyYy50aC5uZXQvcGFwZXIvdGhhaXNvcnQuemlwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvcm5lckNhc2VzKCkgeworICAgICAgICBTdHJpbmcgVEVTVFNbXSA9IHsKKyAgICAgICAgICAgIC8vIFNob3J0ZXIgd29yZHMgcHJlY2VkZSBsb25nZXIKKyAgICAgICAgICAgICJcdTBlMDEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMDEiLAorICAgIAorICAgICAgICAgICAgLy8gVG9uZSBtYXJrcyBhcmUgY29uc2lkZXJlZCBhZnRlciBsZXR0ZXJzIChpLmUuIGFyZSBwcmltYXJ5IGlnbm9yYWJsZSkKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGU0OVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBkaXR0byBmb3Igb3RoZXIgb3Zlci1tYXJrcworICAgICAgICAgICAgIlx1MGUwMVx1MGUzMiIsICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyXHUwZTRjIiwKKyAgICAKKyAgICAgICAgICAgIC8vIGNvbW1vbmx5IHVzZWQgbWFyay1pbi1jb250ZXh0IG9yZGVyLgorICAgICAgICAgICAgLy8gSW4gZWZmZWN0LCBtYXJrcyBhcmUgc29ydGVkIGFmdGVyIGVhY2ggc3lsbGFibGUuCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyXHUwZTAxXHUwZTQ5XHUwZTMyIiwgICAiPCIsICAgICJcdTBlMDFcdTBlNDhcdTBlMzJcdTBlMDFcdTBlNDlcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gSHlwaGVucyBhbmQgb3RoZXIgcHVuY3R1YXRpb24gZm9sbG93IHdoaXRlc3BhY2UgYnV0IGNvbWUgYmVmb3JlIGxldHRlcnMKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMi0iLAorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMi0iLCAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyXHUwZTAxXHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIERvdWJsZXIgZm9sbG93cyBhbiBpbmRlbnRpY2FsIHdvcmQgd2l0aG91dCB0aGUgZG91YmxlcgorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMiIsICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyXHUwZTQ2IiwKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzJcdTBlNDYiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyXHUwZTAxXHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIFx1MGU0NSBhZnRlciBlaXRoZXIgXHUwZTI0IG9yIFx1MGUyNiBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlCisgICAgICAgICAgICAvLyBjb21iaW5pbmcgY2hhcmFjdGVyLCBzaW1pbGFyIHRvICJjIDwgY2giIGluIHRyYWRpdGlvbmFsIHNwYW5pc2guCisgICAgICAgICAgICAvLyBUT0RPOiBiZWVmIHVwIHRoaXMgY2FzZQorICAgICAgICAgICAgIlx1MGUyNFx1MGUyOVx1MGUzNSIsICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMjRcdTBlNDVcdTBlMjlcdTBlMzUiLAorICAgICAgICAgICAgIlx1MGUyNlx1MGUyOVx1MGUzNSIsICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMjZcdTBlNDVcdTBlMjlcdTBlMzUiLAorICAgIAorICAgICAgICAgICAgLy8gVm93ZWxzIHJlb3JkZXIsIHNob3VsZCBjb21wYXJlIFx1MGUyZCBhbmQgXHUwZTM0CisgICAgICAgICAgICAiXHUwZTQwXHUwZTAxXHUwZTJkIiwgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGU0MFx1MGUwMVx1MGUzNCIsCisgICAgCisgICAgICAgICAgICAvLyBUb25lcyBhcmUgY29tcGFyZWQgYWZ0ZXIgdGhlIHJlc3Qgb2YgdGhlIHdvcmQgKGUuZy4gcHJpbWFyeSBpZ25vcmFibGUpCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyXHUwZTAxXHUwZTQ4XHUwZTMyIiwgICAiPCIsICAgICJcdTBlMDFcdTBlNDlcdTBlMzJcdTBlMDFcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gUGVyaW9kcyBhcmUgaWdub3JlZCBlbnRpcmVseQorICAgICAgICAgICAgIlx1MGUwMS5cdTBlMDEuIiwgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTMyIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IGdldFRoYWlDb2xsYXRvcigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgY29uc3RydWN0IFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlQXJyYXkoY29sbCwgVEVTVFMpOyAKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21wYXJlQXJyYXkoUnVsZUJhc2VkQ29sbGF0b3IgYywgU3RyaW5nW10gdGVzdHMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgaW50IGV4cGVjdCA9IDA7CisgICAgICAgICAgICBpZiAodGVzdHNbaSsxXS5lcXVhbHMoIjwiKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdCA9IC0xOworICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0c1tpKzFdLmVxdWFscygiPiIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdHNbaSsxXS5lcXVhbHMoIj0iKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdCA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGV4cGVjdCA9IEludGVnZXIuZGVjb2RlKHRlc3RzW2krMV0pLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yOiB1bmtub3duIG9wZXJhdG9yICIgKyB0ZXN0c1tpKzFdKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgczEgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBzMiA9IHRlc3RzW2krMl07CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjLCBzMSwgczIsIGV4cGVjdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaW50IHNpZ24oaW50IGkgKSB7CisgICAgICAgIGlmIChpIDwgMCkgcmV0dXJuIC0xOworICAgICAgICBpZiAoaSA+IDApIHJldHVybiAxOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZCB0aGUgZXh0ZXJuYWwgZGljdGlvbmFyeSBmaWxlLCB3aGljaCBpcyBhbHJlYWR5IGluIHByb3BlcgorICAgICAqIHNvcnRlZCBvcmRlciwgYW5kIGNvbmZpcm0gdGhhdCB0aGUgY29sbGF0b3IgY29tcGFyZXMgZWFjaCBsaW5lIGFzCisgICAgICogcHJlY2VkaW5nIHRoZSBmb2xsb3dpbmcgbGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGljdGlvbmFyeSgpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gZ2V0VGhhaUNvbGxhdG9yKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBjb25zdHJ1Y3QgVGhhaSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgIAorICAgICAgICAvLyBSZWFkIGluIGEgZGljdGlvbmFyeSBvZiBUaGFpIHdvcmRzCisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gInJpd29yZHMudHh0IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihmaWxlTmFtZSwgIlVURi04Iik7CisgICAgICAgIH0gY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiU2VjdXJpdHkgZXhjZXB0aW9uIGVuY291bnRlcmVkIHJlYWRpbmcgdGVzdCBkYXRhIGZpbGUuIik7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoaW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGlvZSkge30KKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogY291bGQgbm90IG9wZW4gdGVzdCBmaWxlOiAiICsgZmlsZU5hbWUgCisgICAgICAgICAgICAgICAgICArICIuIEFib3J0aW5nIHRlc3QuIik7CisgICAgICAgICAgICByZXR1cm47ICAgICAgICAKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLworICAgICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCB3b3JkIGluIHRoZSBkaWN0aW9uYXJ5IGFuZCBjb21wYXJlIGl0IHRvIHRoZSBwcmV2aW91cworICAgICAgICAvLyB3b3JkLiAgVGhleSBzaG91bGQgYmUgaW4gc29ydGVkIG9yZGVyLgorICAgICAgICAvLworICAgICAgICBTdHJpbmcgbGFzdFdvcmQgPSAiIjsKKyAgICAgICAgaW50IGxpbmUgPSAwOworICAgICAgICBpbnQgZmFpbGVkID0gMDsKKyAgICAgICAgaW50IHdvcmRDb3VudCA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgIFN0cmluZyB3b3JkID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgd2hpbGUgKHdvcmQgIT0gbnVsbCkgeworICAgICAgICAgICAgbGluZSsrOworICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2tpcCBjb21tZW50cyBhbmQgYmxhbmsgbGluZXMKKyAgICAgICAgICAgIGlmICh3b3JkLmxlbmd0aCgpID09IDAgfHwgd29yZC5jaGFyQXQoMCkgPT0gMHgyMykgeworICAgICAgICAgICAgICAgIHdvcmQgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gU2hvdyB0aGUgZmlyc3QgOCB3b3JkcyBiZWluZyBjb21wYXJlZCwgc28gd2UgY2FuIHNlZSB3aGF0J3MgaGFwcGVuaW5nCisgICAgICAgICAgICArK3dvcmRDb3VudDsKKyAgICAgICAgICAgIGlmICh3b3JkQ291bnQgPD0gOCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJXb3JkICIgKyB3b3JkQ291bnQgKyAiOiAiICsgd29yZCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAobGFzdFdvcmQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbCwgbGFzdFdvcmQsIHdvcmQsIC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKGxhc3RXb3JkLCB3b3JkKTsgCisgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBmYWlsZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1BWF9GQUlMVVJFU19UT19TSE9XIDwgMCB8fCBmYWlsZWQgPD0gTUFYX0ZBSUxVUkVTX1RPX1NIT1cpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGNvbXBhcmUoIiArIGxhc3RXb3JkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyB3b3JkICsgIikgcmV0dXJuZWQgIiArIHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBleHBlY3RlZCAtMVxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrMSwgazI7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsxID0gY29sbC5nZXRDb2xsYXRpb25LZXkobGFzdFdvcmQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsyID0gY29sbC5nZXRDb2xsYXRpb25LZXkod29yZCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnZXRDb2xsYXRpb25LZXkgcmV0dXJuZWQgIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9ICJrZXkxOiAiICsgcHJldHRpZnkoazEpICsgIlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAia2V5MjogIiArIHByZXR0aWZ5KGsyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0V29yZCA9IHdvcmQ7CisgICAgICAgICAgICB3b3JkID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiSU9FeGNlcHRpb24gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoZmFpbGVkICE9IDApIHsKKyAgICAgICAgICAgIGlmIChmYWlsZWQgPiBNQVhfRkFJTFVSRVNfVE9fU0hPVykgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb28gbWFueSBmYWlsdXJlczsgb25seSB0aGUgZmlyc3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgTUFYX0ZBSUxVUkVTX1RPX1NIT1cgKyAiIGZhaWx1cmVzIHdlcmUgc2hvd24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCJTdW1tYXJ5OiAiICsgZmFpbGVkICsgIiBvZiAiICsgKGxpbmUgLSAxKSArCisgICAgICAgICAgICAgICAgICAiIGNvbXBhcmlzb25zIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJXb3JkcyBjaGVja2VkOiAiICsgd29yZENvdW50KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEludmFsaWRUaGFpKCkgCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsgIlx1MEU0NFx1MEUwMVx1MEU0NFx1MEUwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTQ0XHUwRTAxXHUwRTAxXHUwRTQ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFNDRcdTBFMDFcdTBFNDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEUwMVx1MEUwMVx1MEU0NFx1MEU0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTQ0XHUwRTQ0XHUwRTAxXHUwRTAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFNDRcdTBFNDRcdTBFMDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcjsKKyAgICAgICAgU3RyQ21wIGNvbXBhcmF0b3I7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IGdldFRoYWlDb2xsYXRvcigpOworICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBTdHJDbXAoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGNvbnN0cnVjdCBUaGFpIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFycmF5cy5zb3J0KHRlc3RzLCBjb21wYXJhdG9yKTsKKyAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCB0ZXN0cy5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0b3IuY29tcGFyZSh0ZXN0c1tpXSwgdGVzdHNbal0pID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBpbmNvbnNpc3RlbmN5IG9yZGVyaW5nIGZvdW5kIQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiSW5jb25zaXN0ZW50IG9yZGVyaW5nIGJldHdlZW4gc3RyaW5ncyAiICsgaSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGFuZCAiICsgaik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXJhdG9yIAorICAgICAgICAgICAgICAgID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RzW2ldKTsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXJhdG9yKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVvcmRlcmluZygpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwRTQxY1x1MDMwMSIsICAgICAgIj0iLCAiXHUwRTQxXHUwMTA3IiwgLy8gY29tcG9zaXRpb24KKyAgICAgICAgICAgICJcdTBFNDFcdUQ4MzVcdURGQ0UiLCAiPCIsICJcdTBFNDFcdUQ4MzVcdURGQ0YiLCAvLyBzdXBwbGVtZW50YXJpZXMKKyAgICAgICAgICAgICJcdTBFNDFcdUQ4MzRcdURENUYiLCAiPSIsICJcdTBFNDFcdUQ4MzRcdURENThcdUQ4MzRcdURENjUiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgIlx1MEU0MVx1RDg3RVx1REMwMiIsICI9IiwgIlx1MEU0MVx1NEU0MSIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBCTVAKKyAgICAgICAgICAgICJcdTBFNDFcdTAzMDEiLCAgICAgICAiPSIsICJcdTBFNDFcdTAzMDEiLCAvLyB1bnNhZmUgKGp1c3QgY2hlY2tpbmcgYmFja3dhcmRzIGl0ZXJhdGlvbikKKyAgICAgICAgICAgICJcdTBFNDFcdTAzMDFcdTAzMTYiLCAiPSIsICJcdTBFNDFcdTAzMTZcdTAzMDEiLAorCisgICAgICAgICAgICAiYWJjXHUwRTQxY1x1MDMwMSIsICAgICAgIj0iLCAiYWJjXHUwRTQxXHUwMTA3IiwgLy8gY29tcG9zaXRpb24KKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4MzRcdURDMDAiLCAiPCIsICJhYmNcdTBFNDFcdUQ4MzRcdURDMDEiLCAvLyBzdXBwbGVtZW50YXJpZXMKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4MzRcdURENUYiLCAiPSIsICJhYmNcdTBFNDFcdUQ4MzRcdURENThcdUQ4MzRcdURENjUiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgImFiY1x1MEU0MVx1RDg3RVx1REMwMiIsICI9IiwgImFiY1x1MEU0MVx1NEU0MSIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBCTVAKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdTAzMDEiLCAgICAgICAiPSIsICJhYmNcdTBFNDFcdTAzMDEiLCAvLyB1bnNhZmUgKGp1c3QgY2hlY2tpbmcgYmFja3dhcmRzIGl0ZXJhdGlvbikKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdTAzMDFcdTAzMTYiLCAiPSIsICJhYmNcdTBFNDFcdTAzMTZcdTAzMDEiLAorCisgICAgICAgICAgICAiXHUwRTQxY1x1MDMwMWFiYyIsICAgICAgIj0iLCAiXHUwRTQxXHUwMTA3YWJjIiwgLy8gY29tcG9zaXRpb24KKyAgICAgICAgICAgICJcdTBFNDFcdUQ4MzRcdURDMDBhYmMiLCAiPCIsICJcdTBFNDFcdUQ4MzRcdURDMDFhYmMiLCAvLyBzdXBwbGVtZW50YXJpZXMKKyAgICAgICAgICAgICJcdTBFNDFcdUQ4MzRcdURENUZhYmMiLCAiPSIsICJcdTBFNDFcdUQ4MzRcdURENThcdUQ4MzRcdURENjVhYmMiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgIlx1MEU0MVx1RDg3RVx1REMwMmFiYyIsICI9IiwgIlx1MEU0MVx1NEU0MWFiYyIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBCTVAKKyAgICAgICAgICAgICJcdTBFNDFcdTAzMDFhYmMiLCAgICAgICAiPSIsICJcdTBFNDFcdTAzMDFhYmMiLCAvLyB1bnNhZmUgKGp1c3QgY2hlY2tpbmcgYmFja3dhcmRzIGl0ZXJhdGlvbikKKyAgICAgICAgICAgICJcdTBFNDFcdTAzMDFcdTAzMTZhYmMiLCAiPSIsICJcdTBFNDFcdTAzMTZcdTAzMDFhYmMiLAorCisgICAgICAgICAgICAiYWJjXHUwRTQxY1x1MDMwMWFiYyIsICAgICAgIj0iLCAiYWJjXHUwRTQxXHUwMTA3YWJjIiwgLy8gY29tcG9zaXRpb24KKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4MzRcdURDMDBhYmMiLCAiPCIsICJhYmNcdTBFNDFcdUQ4MzRcdURDMDFhYmMiLCAvLyBzdXBwbGVtZW50YXJpZXMKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4MzRcdURENUZhYmMiLCAiPSIsICJhYmNcdTBFNDFcdUQ4MzRcdURENThcdUQ4MzRcdURENjVhYmMiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgImFiY1x1MEU0MVx1RDg3RVx1REMwMmFiYyIsICI9IiwgImFiY1x1MEU0MVx1NEU0MWFiYyIsIC8vIHN1cHBsZW1lbnRhcnkgY29tcG9zaXRpb24gZGVjb21wcyB0byBCTVAKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdTAzMDFhYmMiLCAgICAgICAiPSIsICJhYmNcdTBFNDFcdTAzMDFhYmMiLCAvLyB1bnNhZmUgKGp1c3QgY2hlY2tpbmcgYmFja3dhcmRzIGl0ZXJhdGlvbikKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdTAzMDFcdTAzMTZhYmMiLCAiPSIsICJhYmNcdTBFNDFcdTAzMTZcdTAzMDFhYmMiLAorICAgICAgICB9OworCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZ2V0VGhhaUNvbGxhdG9yKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBjb25zdHJ1Y3QgVGhhaSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmVBcnJheShjb2xsYXRvciwgdGVzdHMpOworICAgIAorICAgICAgICBTdHJpbmcgcnVsZSA9ICImIGMgPCBhYiI7CisgICAgICAgIFN0cmluZyB0ZXN0Y29udHJhY3Rpb25bXSA9IHsgIlx1MEU0MWFiIiwgIj4iLCAiXHUwRTQxYyJ9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgY29sbGF0b3Igd2l0aCBydWxlICIgKyBydWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlQXJyYXkoY29sbGF0b3IsIHRlc3Rjb250cmFjdGlvbik7CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIAorICAgIAorICAgIAorICAgIAorICAgIAorICAgIAorCisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHJDbXAgaW1wbGVtZW50cyBDb21wYXJhdG9yIAorICAgIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBzdHJpbmcxLCBPYmplY3Qgc3RyaW5nMikgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb2xsYXRvci5jb21wYXJlKHN0cmluZzEsIHN0cmluZzIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJDbXAoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gZ2V0VGhhaUNvbGxhdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yIGNvbGxhdG9yOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBSdWxlQmFzZWRDb2xsYXRvciBnZXRUaGFpQ29sbGF0b3IoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAobV9jb2xsYXRvcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV9jb2xsYXRvcl8gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fY29sbGF0b3JfOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UdXJraXNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblR1cmtpc2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI4ZGQ2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UdXJraXNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uVHVya2lzaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3RyY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25UdXJraXNoVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25UdXJraXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg3MywgMHgwMzI3fSwKKyAgICAgICAgezB4NzYsIDB4MDBFNCwgMHg3NH0sCisgICAgICAgIHsweDZmLCAweDZjLCAweDY0fSwKKyAgICAgICAgezB4MDBGQywgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDY4LCAweDAxMUUsIDB4NjEsIDB4NmMsIDB4NzR9LAorICAgICAgICB7MHg3MywgMHg3NCwgMHg3MiwgMHg2NSwgMHg3MywgMHgwMTVFfSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4MDEzMSwgMHg2NH0sCisgICAgICAgIHsweDY5LCAweDY0LCAweDY1LCAweDYxfSwKKyAgICAgICAgezB4MDBGQywgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDAxMzEsIDB4NjR9LAorICAgICAgICB7MHg2OSwgMHg2NCwgMHg2NSwgMHg2MX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHg3NSwgMHgwMzA4fSwKKyAgICAgICAgezB4NzYsIDB4NjIsIDB4NzR9LAorICAgICAgICB7MHgwMEQ2LCAweDYxLCAweDc5fSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg2OCwgMHg2MSwgMHg2YywgMHg3NH0sCisgICAgICAgIHsweDAxNUUsIDB4NzQsIDB4NzIsIDB4NjUsIDB4MDE1RSwgMHg3M30sCisgICAgICAgIHsweDc2LCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NDksIDB4NjQsIDB4NjUsIDB4NjF9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NDksIDB4NjQsIDB4NjUsIDB4NjF9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgLy8gdGVzdCBwcmlhbXJ5ID4gOAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25UdXJraXNoVGVzdCgpIHsKKworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoInRyIiwgIiIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDggOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpID0gODsgaSA8IDExOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIHR1cmtpc2ggbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9HN0NvbGxhdGlvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9HN0NvbGxhdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWEzOGI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0c3Q29sbGF0aW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjk3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvRzdDb2xsYXRpb25UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9nN2NvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgRzdDb2xsYXRpb25UZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IEc3Q29sbGF0aW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IEc3Q29sbGF0aW9uVGVzdCgpLlRlc3REZW1vMygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7CisgICAgICAgICJibGFja2JpcmRzIiwgIlBhdCIsICJwXHUwMEU5Y2hcdTAwRTkiLCAicFx1MDBFQWNoZSIsICJwXHUwMEU5Y2hlciIsICAgICAgICAgICAgCisgICAgICAgICJwXHUwMEVBY2hlciIsICJUb2QiLCAiVFx1MDBGNm5lIiwgIlRvZnUiLCAiYmxhY2tiaXJkIiwgIlRvbiIsIAorICAgICAgICAiUEFUIiwgImJsYWNrLWJpcmQiLCAiYmxhY2stYmlyZHMiLCAicGF0IiwgLy8gMTQKKyAgICAgICAgLy8gQWRkaXRpb25hbCB0ZXN0cworICAgICAgICAiY3phciIsICJjaHVybyIsICJjYXQiLCAiZGFybiIsICI/IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE5ICovCisgICAgICAgICJxdWljayIsICIjIiwgIiYiLCAiYS1yZHZhcmsiLCAiYWFyZHZhcmsiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjMgKi8KKyAgICAgICAgImFiYm90IiwgImNvLXAiLCAiY29wIiwgImNvb3AiLCAiemVicmEiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdW10gcmVzdWx0cyA9IHsKKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZW5fVVMgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZW5fR0IgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZW5fQ0EgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMywgMiwgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZnJfRlIgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMywgMiwgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZnJfQ0EgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogZGVfREUgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogaXRfSVQgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgNiwgOCwgMTAsIDcsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgLyogamFfSlAgKi8KKyAgICAgICAgLyogbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzICImIFogPCBwLCBQIiAgbG9vcCB0byBGSVhFRFRFU1RTRVQgKi8KKyAgICAgICAgeyAxMiwgMTMsIDksIDAsIDYsIDgsIDEwLCA3LCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEgfSwgCisgICAgICAgIC8qIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyAiJiBDIDwgY2ggLCBjSCwgQ2gsIENIICIgbG9vcCB0byBUT1RBTFRFU1RTRVQgKi8KKyAgICAgICAgeyAxOSwgMjIsIDIxLCAyMywgMjQsIDI1LCAxMiwgMTMsIDksIDAsIDE3LCAyNiwgMjgsIDI3LCAxNSwgMTYsIDE4LCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDIwLCA2LCA4LCAxMCwgNywgMjkgfSwKKyAgICAgICAgLyogbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzICImIFF1ZXN0aW9uLW1hcmsgOyA/ICYgSGFzaC1tYXJrIDsgIyAmIEFtcGVyc2FuZCA7ICcmJyAgIiBsb29wIHRvIFRPVEFMVEVTVFNFVCAqLworICAgICAgICB7IDIzLCAyNCwgMjUsIDIyLCAxMiwgMTMsIDksIDAsIDE3LCAxNiwgMjYsIDI4LCAyNywgMTUsIDE4LCAyMSwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCAxOSwgMjAsIDYsIDgsIDEwLCA3LCAyOSB9LAorICAgICAgICAvKiBhbmFsb2dvdXMgdG8gSmFwYW5lc2UgcnVsZXMgIiAmIGFhIDsgYS0gJiBlZSA7IGUtICYgaWkgOyBpLSAmIG9vIDsgby0gJiB1dSA7IHUtICIgKi8gIC8qIGxvb3AgdG8gVE9UQUxURVNUU0VUICovCisgICAgICAgIHsgMTksIDIyLCAyMSwgMjQsIDIzLCAyNSwgMTIsIDEzLCA5LCAwLCAxNywgMTYsIDI4LCAyNiwgMjcsIDE1LCAxOCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCAyMCwgNiwgOCwgMTAsIDcsIDI5IH0KKyAgICB9OworICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9UT0tFTl9MRU4gPSAxNjsKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBURVNUTE9DQUxFUyA9IDEyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSVhFRFRFU1RTRVQgPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxURVNUU0VUID0gMzA7CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggYWRkZWQgcnVsZXMgIiAmIFogPCBwLCBQIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vMSgpIHsKKyAgICAgICAgbG9nbG4oIkRlbW8gVGVzdCAxIDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiJiBaIDwgcCwgUFwiIik7CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7ICAgIAorCisgICAgICAgIAorICAgICAgICBTdHJpbmcgYmFzZVJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBuZXdSdWxlcyA9ICIgJiBaIDwgcCwgUCI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXM7IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobXlDb2xsYXRpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkRlbW8gVGVzdCAyIFRhYmxlIENvbGxhdGlvbiBvYmplY3QgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IEZJWEVEVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBGSVhFRFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbOF1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1s4XVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8vIHBlcm9ybSB0ZXN0IHdpdGggYWRkZWQgcnVsZXMgIiYgQyA8IGNoICwgY0gsIENoLCBDSCIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVtbzIoKSB7CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMiA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgQyA8IGNoICwgY0gsIENoLCBDSFwiIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisKKworICAgICAgICBTdHJpbmcgYmFzZVJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBuZXdSdWxlcyA9ICImIEMgPCBjaCAsIGNILCBDaCwgQ0giOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOyAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBuZXdSdWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gIAorCisgICAgICAgIGludCBqLCBuOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgVE9UQUxURVNUU0VUOyBqKyspIHsKKyAgICAgICAgICAgIGZvciAobiA9IGorMTsgbiA8IFRPVEFMVEVTVFNFVDsgbisrKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0Q2FzZXNbcmVzdWx0c1s5XVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzWzldW25dXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggYWRkZWQgcnVsZXMgCisgICAgLy8gIiYgUXVlc3Rpb24nLSdtYXJrIDsgJz8nICYgSGFzaCctJ21hcmsgOyAnIycgJiBBbXBlcnNhbmQgOyAnJiciCisgICAgcHVibGljIHZvaWQgVGVzdERlbW8zKCkgeworICAgICAgICAvLyBsb2dsbigiRGVtbyBUZXN0IDMgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIFF1ZXN0aW9uJy0nbWFyayA7ICc/JyAmIEhhc2gnLSdtYXJrIDsgJyMnICYgQW1wZXJzYW5kIDsgJyYnXCIiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOyAgICAKKworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiJiBRdWVzdGlvbictJ21hcmsgOyAnPycgJiBIYXNoJy0nbWFyayA7ICcjJyAmIEFtcGVyc2FuZCA7ICcmJyI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXM7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKworICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IFRPVEFMVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBUT1RBTFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbMTBdW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbMTBdW25dXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggYWRkZWQgcnVsZXMgCisgICAgLy8gIiAmIGFhIDsgYSctJyAmIGVlIDsgZSctJyAmIGlpIDsgaSctJyAmIG9vIDsgbyctJyAmIHV1IDsgdSctJyAiCisgICAgcHVibGljIHZvaWQgVGVzdERlbW80KCkgeworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDQgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCIgJiBhYSA7IGEnLScgJiBlZSA7IGUnLScgJiBpaSA7IGknLScgJiBvbyA7IG8nLScgJiB1dSA7IHUnLScgXCIiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOyAgICAKKworICAgICAgICBTdHJpbmcgYmFzZVJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBuZXdSdWxlcyA9ICIgJiBhYSA7IGEnLScgJiBlZSA7IGUnLScgJiBpaSA7IGknLScgJiBvbyA7IG8nLScgJiB1dSA7IHUnLScgIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlczsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBuZXdSdWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gIAorCisgICAgICAgIGludCBqLCBuOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgVE9UQUxURVNUU0VUOyBqKyspIHsKKyAgICAgICAgICAgIGZvciAobiA9IGorMTsgbiA8IFRPVEFMVEVTVFNFVDsgbisrKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0Q2FzZXNbcmVzdWx0c1sxMV1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1sxMV1bbl1dLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEc3RGF0YSgpIHsKKyAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IHsKKyAgICAgICAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgTG9jYWxlLlVLLAorICAgICAgICAgICAgICAgIExvY2FsZS5DQU5BREEsCisgICAgICAgICAgICAgICAgTG9jYWxlLkZSQU5DRSwKKyAgICAgICAgICAgICAgICBMb2NhbGUuQ0FOQURBX0ZSRU5DSCwKKyAgICAgICAgICAgICAgICBMb2NhbGUuR0VSTUFOWSwKKyAgICAgICAgICAgICAgICBMb2NhbGUuSkFQQU4sCisgICAgICAgICAgICAgICAgTG9jYWxlLklUQUxZCisgICAgICAgICAgICB9OworICAgICAgICBpbnQgaSA9IDAsIGogPSAwOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQ29sbGF0b3IgbXlDb2xsYXRpb249IG51bGw7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0YmxDb2xsMSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgdGJsQ29sbDEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuZ2V0UnVsZXMoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJFeGNlcHRpb246ICIgKyBmb28uZ2V0TWVzc2FnZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBMb2NhbGUgOiAiICsgbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpICsgIiBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBGSVhFRFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IG4gPSBqKzE7IG4gPCBGSVhFRFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3QodGJsQ29sbDEsIHRlc3RDYXNlc1tyZXN1bHRzW2ldW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbaV1bbl1dLCAtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBjb21wYXJpc29ucyBmb3IgYSBzZXQgb2Ygc3RyaW5ncyBhZ2FpbnN0IHNldHMgb2YgZXhwZWN0ZWQgcmVzdWx0cworICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgbXlDb2xsYXRpb24sIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzb3VyY2UsIHRhcmdldCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCAKKyAgICAgICAgICAgICAgICAgICAgICBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTg4ZDZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0xvdHVzQ29sbGF0aW9uS29yZWFuVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9sY3Vrb2NvbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIExvdHVzQ29sbGF0aW9uS29yZWFuVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBMb3R1c0NvbGxhdGlvbktvcmVhblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4YWMwMH0KKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4YWMwMX0KKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uOworICAgIAorICAgIHB1YmxpYyBMb3R1c0NvbGxhdGlvbktvcmVhblRlc3QoKSB7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLktPUkVBTik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgIH0KKyAgICAvLyBwZXJmb3JtcyB0ZXN0IHdpdGggc3RyZW5ndGggVEVSSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gIktvcmVhbiIgbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdCggY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdCggcywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCApOyAKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9SYW5kb21Db2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1JhbmRvbUNvbGxhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE4N2YyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9SYW5kb21Db2xsYXRvci5qYXZhCkBAIC0wLDAgKzEsMjk2IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkJORjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkJhZ0Zvcm1hdHRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlF1b3RlcjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBjbGFzcyBSYW5kb21Db2xsYXRvciBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJhbmRvbUNvbGxhdG9yKCkucnVuKGFyZ3MpOworICAgICAgICAvL25ldyBDb2xsYXRpb25BUElUZXN0KCkuVGVzdEdldFRhaWxvcmVkU2V0KCk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBDT05TVFJVQ1RfUkFORE9NX0NPVU5UID0gMTAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFMX1RFU1RfQ09VTlQgPSAxMDAwOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgUE9TSVRJT04gPSAieyQkJH0iOworICAgIAorICAgIC8qCisgICAgY2xhc3MgU2hvd2VyIGV4dGVuZHMgQmFnRm9ybWF0dGVyLlNob3dlciB7CisgICAgICAgIHB1YmxpYyB2b2lkIHByaW50KFN0cmluZyBhcmcpIHsKKyAgICAgICAgICAgIGxvZyhhcmcpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTaG93ZXIgTE9HID0gbmV3IFNob3dlcigpOworICAgICovCisgICAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJhbmRvbSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgaW50IHllYXIgCisvLyAgICAgICAgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKS5nZXQoamF2YS51dGlsLkNhbGVuZGFyLllFQVIpOworLy8gICAgICAgIGlmICh5ZWFyIDwgMjAwNCkgeworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVGVzdFJhbmRvbSBza2lwcGVkIGZvciAyMDAzIik7CisvLyAgICAgICAgICAgIHJldHVybjsKKy8vICAgICAgICB9CisgICAgICAgIGlmKHNraXBJZkJlZm9yZUlDVSgzLDYpKSByZXR1cm47CisgICAgICAgIC8vU3RyaW5nIGZpbGVOYW1lOworICAgICAgICBQcmludFdyaXRlciBwdyA9IEJhZ0Zvcm1hdHRlci5vcGVuVVRGOFdyaXRlcihTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIikrRmlsZS5zZXBhcmF0b3IsICJSYW5kb21Db2xsYXRpb25UZXN0TG9nLnR4dCIpOworICAgICAgICBUZXN0Q29sbGF0b3IgdGMgPSBuZXcgVGVzdENvbGxhdG9yKGNoYXJzKTsKKyAgICAgICAgcHcucHJpbnRsbigiQ29sbGF0aW9uIFRlc3QgUnVuIik7CisgICAgICAgIHB3LnByaW50bG4oIk5vdGU6IEZvciBwYXJzZS1leGNlcHRpb24sICIgKyBQT1NJVElPTiArICIgaW5kaWNhdGVzIHRoZSBlcnJvck9mZnNldCIpOworICAgICAgICBwdy5wcmludGxuKCJSdWxlczoiKTsKKyAgICAgICAgcHcucHJpbnRsbihjdXJyZW50UnVsZXMpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiPHVua25vd24+IjsKKyAgICAgICAgaW50IHNDb3VudCA9IDA7CisgICAgICAgIGludCBwZUNvdW50ID0gMDsKKyAgICAgICAgaW50IG9lQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTlNUUlVDVF9SQU5ET01fQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBydWxlcyA9IGdldCgpOworICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBDb2xsYXRvciBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB0Yy50ZXN0KGMsIEZPUk1BTF9URVNUX0NPVU5UKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKHJ1bGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICAgICAgc0NvdW50Kys7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIHBlQ291bnQrKzsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI9PT09PT09PVBBUlNFIEVYQ0VQVElPTj09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgaW50IGVycm9yT2Zmc2V0ID0gcGUuZ2V0RXJyb3JPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludChydWxlcy5zdWJzdHJpbmcoMCxlcnJvck9mZnNldCkpOworICAgICAgICAgICAgICAgIHB3LnByaW50KFBPU0lUSU9OKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKHJ1bGVzLnN1YnN0cmluZyhlcnJvck9mZnNldCkpOworICAgICAgICAgICAgICAgIC8vcHcucHJpbnRsbigiPT09PT09PT1FUlJPUj09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgLy9wZS5wcmludFN0YWNrVHJhY2UocHcpOworICAgICAgICAgICAgICAgIC8vcHcucHJpbnRsbigiPT09PT09PT1FTkQ9PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZUV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBvZUNvdW50Kys7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPT09PT09PT1PVEhFUiBFWENFUFRJT049PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKHB3KTsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI9PT09PT09PVJVTEVTPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKHJ1bGVzKTsKKyAgICAgICAgICAgICAgICAvL3B3LnByaW50bG4oIj09PT09PT09RU5EPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2VFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCJTdWNjZXNzZnVsOiAiICsgc0NvdW50IAorICAgICAgICAgICAgKyAiLFx0UGFyc2VFeGNlcHRpb246ICIgKyBwZUNvdW50IAorICAgICAgICAgICAgKyAiLFx0T3RoZXIgRXhjZXB0aW9uOiAiICsgb2VDb3VudCk7CisgICAgICAgIGxvZ2xuKCJTdWNjZXNzZnVsOiAiICsgc0NvdW50IAorICAgICAgICAgICAgKyAiLFx0UGFyc2VFeGNlcHRpb246ICIgKyBwZUNvdW50IAorICAgICAgICAgICAgKyAiLFx0T3RoZXIgRXhjZXB0aW9uOiAiICsgb2VDb3VudCk7CisgICAgICAgIHB3LmNsb3NlKCk7CisKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBUZXN0Q29sbGF0b3IgZXh0ZW5kcyBUZXN0Q29tcGFyYXRvciB7CisgICAgICAgIEJORiByczsKKyAgICAgICAgCisgICAgICAgIFRlc3RDb2xsYXRvcihVbmljb2RlU2V0IGNoYXJzKSB7CisgICAgICAgICAgICBycyA9IG5ldyBCTkYobmV3IFJhbmRvbSgwKSwgbmV3IFF1b3Rlci5SdWxlUXVvdGVyKCkpCisgICAgICAgICAgICAuYWRkUnVsZXMoIiRyb290ID0gIiArIGNoYXJzICsgInsxLDh9OyIpLmNvbXBsZXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV3T2JqZWN0KE9iamVjdCBjKSB7CisgICAgICAgICAgICByZXR1cm4gcnMubmV4dCgpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KE9iamVjdCBjKSB7CisgICAgICAgICAgICByZXR1cm4gQmFnRm9ybWF0dGVyLmhleC50cmFuc2xpdGVyYXRlKGMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIEJORiBibmY7CisgICAgU3RyaW5nIGN1cnJlbnRSdWxlcyA9IG51bGw7CisgICAgVW5pY29kZVNldCBjaGFyczsKKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldCgpIHsKKyAgICAgICAgcmV0dXJuIGJuZi5uZXh0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBSYW5kb21Db2xsYXRvcigpIHsKKyAgICAgICAgCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIGluaXQoMSwxMCwgbmV3IFVuaWNvZGVTZXQoIltBWmEtejxcXCZcXFtcXF1dIikpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgaW5pdChpbnQgbWluUnVsZUNvdW50LCBpbnQgbWF4UnVsZUNvdW50LCBVbmljb2RlU2V0IGNoYXJzKSB7CisgICAgICAgIHRoaXMuY2hhcnMgPSBjaGFyczsKKyAgICAgICAgYm5mID0gbmV3IEJORihuZXcgUmFuZG9tKDApLCBuZXcgUXVvdGVyLlJ1bGVRdW90ZXIoKSkKKyAgICAgICAgLmFkZFNldCgiJGNoYXJzIiwgY2hhcnMpCisgICAgICAgIC5hZGRSdWxlcyhjb2xsYXRpb25CTkYpCisgICAgICAgIC5jb21wbGV0ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29sbGF0aW9uQk5GID0KKyAgICAgICAgIiRzID0gJyAnPyA1MCU7XHJcbiIgKworICAgICAgICAiJHJlbGF0aW9uTGlzdCA9ICgiICsgICAgICAgICIgICAnPCciICsgICAgICAgICIgfCAnICA8PCciICsgICAgICAgICIgfCAnICA7JyIgKworICAgICAgICAiIHwgJyAgICA8PDwnIiArICAgICAgICAiIHwgJyAgICAsJyIgKworICAgICAgICAiIHwgJyAgICAgID0nIiArICAgICAgICAiKTtcclxuIiArCisgICAgICAgICIkYWx0ZXJuYXRlT3B0aW9ucyA9IG5vbictJ2lnbm9yYWJsZSB8IHNoaWZ0ZWQ7XHJcbiIgKworICAgICAgICAiJGNhc2VGaXJzdE9wdGlvbnMgPSBvZmYgfCB1cHBlciB8IGxvd2VyO1xyXG4iICsKKyAgICAgICAgIiRzdHJlbmd0aE9wdGlvbnMgPSAnMScgfCAnMicgfCAnMycgfCAnNCcgfCAnSSc7XHJcbiIgKworICAgICAgICAiJGNvbW1hbmRMaXN0ID0gJ1snIiArICAgICAgICAiICggYWx0ZXJuYXRlICcgJyAkYWx0ZXJuYXRlT3B0aW9ucyIgKyAgICAgICAgIiB8IGJhY2t3YXJkcycgMiciICsgICAgICAgICIgfCBub3JtYWxpemF0aW9uICcgJyAkb25vZmYgIiArICAgICAgICAiIHwgY2FzZUxldmVsICcgJyAkb25vZmYgIiArICAgICAgICAiIHwgaGlyYWdhbmFRICcgJyAkb25vZmYiICsgICAgICAgICIgfCBjYXNlRmlyc3QgJyAnICRjYXNlRmlyc3RPcHRpb25zIiArICAgICAgICAiIHwgc3RyZW5ndGggJyAnICRzdHJlbmd0aE9wdGlvbnMiICsgICAgICAgICIgKSAnXSc7XHJcbiIgKworICAgICAgICAiJGlnbm9yYWJsZVR5cGVzID0gKHRlcnRpYXJ5IHwgc2Vjb25kYXJ5IHwgcHJpbWFyeSkgJyAnIGlnbm9yYWJsZTtcclxuIiArCisgICAgICAgICIkYWxsVHlwZXMgPSB2YXJpYWJsZSB8IHJlZ3VsYXIgfCBpbXBsaWNpdCB8IHRyYWlsaW5nIHwgJGlnbm9yYWJsZVR5cGVzO1xyXG4iICsKKyAgICAgICAgIiRvbm9mZiA9IG9uIHwgb2ZmO1xyXG4iICsKKyAgICAgICAgIiRwb3NpdGlvbkxpc3QgPSAnWycgKGZpcnN0IHwgbGFzdCkgJyAnICRhbGxUeXBlcyAnXSc7XHJcbiIgKyAgICAgICAgIiRiZWZvcmVMaXN0ID0gJ1tiZWZvcmUgJyAoJzEnIHwgJzInIHwgJzMnKSAnXSc7XHJcbiIgKyAgICAgICAgIiRzdHJpbmcgPSAkY2hhcnN7MSw1fX5AO1xyXG4iICsKKyAgICAgICAgIiRjcmxmID0gJ1xyXG4nO1xyXG4iICsKKyAgICAgICAgIiRyZWwxID0gJ1t2YXJpYWJsZSB0b3BdJyAkcyA7XHJcbiIgKworICAgICAgICAiJHAxID0gKCRzdHJpbmcgJHMgJ3wnICRzKT8gMjUlO1xyXG4iICsKKyAgICAgICAgIiRwMiA9ICgnXFwnICRzICRzdHJpbmcgJHMpPyAyNSU7XHJcbiIgKworICAgICAgICAiJHJlbDIgPSAkcDEgJHN0cmluZyAkcyAkcDI7XHJcbiIgKworICAgICAgICAiJHJlbGF0aW9uID0gJHJlbGF0aW9uTGlzdCAkcyAoJHJlbDEgfCAkcmVsMikgJGNybGY7XHJcbiIgKworICAgICAgICAiJGNvbW1hbmQgPSAkY29tbWFuZExpc3QgJGNybGY7XHJcbiIgKworICAgICAgICAiJHJlc2V0ID0gJyYnICRzICgkYmVmb3JlTGlzdCAkcyk/IDEwJSAoJHBvc2l0aW9uTGlzdCB8ICRzdHJpbmcgMTAlKSAkY3JsZjtcclxuIiArCisgICAgICAgICIkbW9zdFJ1bGVzID0gJGNvbW1hbmQgMSUgfCAkcmVzZXQgNSUgfCAkcmVsYXRpb24gMjUlO1xyXG4iICsKKyAgICAgICAgIiRyb290ID0gJGNvbW1hbmR7MCw1fSAkcmVzZXQgJG1vc3RSdWxlc3sxLDIwfTtcclxuIjsKKyAgICAKKyAgICAKKy8qICAgIAorICAgIAorICAgIAorICAgIGdjIDsgQyAgICAgICAgIDsgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDYyB8IENmIHwgQ24gfCBDbyB8IENzCisgICAgZ2MgOyBDYyAgICAgICAgOyBDb250cm9sCisgICAgZ2MgOyBDZiAgICAgICAgOyBGb3JtYXQKKyAgICBnYyA7IENuICAgICAgICA7IFVuYXNzaWduZWQKKyAgICBnYyA7IENvICAgICAgICA7IFByaXZhdGVfVXNlCisgICAgZ2MgOyBDcyAgICAgICAgOyBTdXJyb2dhdGUKKyAgICBnYyA7IEwgICAgICAgICA7IExldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTGwgfCBMbSB8IExvIHwgTHQgfCBMdQorICAgIGdjIDsgTEMgICAgICAgIDsgQ2FzZWRfTGV0dGVyICAgICAgICAgICAgICAgICAgICAgIyBMbCB8IEx0IHwgTHUKKyAgICBnYyA7IExsICAgICAgICA7IExvd2VyY2FzZV9MZXR0ZXIKKyAgICBnYyA7IExtICAgICAgICA7IE1vZGlmaWVyX0xldHRlcgorICAgIGdjIDsgTG8gICAgICAgIDsgT3RoZXJfTGV0dGVyCisgICAgZ2MgOyBMdCAgICAgICAgOyBUaXRsZWNhc2VfTGV0dGVyCisgICAgZ2MgOyBMdSAgICAgICAgOyBVcHBlcmNhc2VfTGV0dGVyCisgICAgZ2MgOyBNICAgICAgICAgOyBNYXJrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1jIHwgTWUgfCBNbgorICAgIGdjIDsgTWMgICAgICAgIDsgU3BhY2luZ19NYXJrCisgICAgZ2MgOyBNZSAgICAgICAgOyBFbmNsb3NpbmdfTWFyaworICAgIGdjIDsgTW4gICAgICAgIDsgTm9uc3BhY2luZ19NYXJrCisgICAgZ2MgOyBOICAgICAgICAgOyBOdW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE5kIHwgTmwgfCBObworICAgIGdjIDsgTmQgICAgICAgIDsgRGVjaW1hbF9OdW1iZXIKKyAgICBnYyA7IE5sICAgICAgICA7IExldHRlcl9OdW1iZXIKKyAgICBnYyA7IE5vICAgICAgICA7IE90aGVyX051bWJlcgorICAgIGdjIDsgUCAgICAgICAgIDsgUHVuY3R1YXRpb24gICAgICAgICAgICAgICAgICAgICAgIyBQYyB8IFBkIHwgUGUgfCBQZiB8IFBpIHwgUG8gfCBQcworICAgIGdjIDsgUGMgICAgICAgIDsgQ29ubmVjdG9yX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQZCAgICAgICAgOyBEYXNoX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQZSAgICAgICAgOyBDbG9zZV9QdW5jdHVhdGlvbgorICAgIGdjIDsgUGYgICAgICAgIDsgRmluYWxfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBpICAgICAgICA7IEluaXRpYWxfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBvICAgICAgICA7IE90aGVyX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQcyAgICAgICAgOyBPcGVuX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBTICAgICAgICAgOyBTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNjIHwgU2sgfCBTbSB8IFNvCisgICAgZ2MgOyBTYyAgICAgICAgOyBDdXJyZW5jeV9TeW1ib2wKKyAgICBnYyA7IFNrICAgICAgICA7IE1vZGlmaWVyX1N5bWJvbAorICAgIGdjIDsgU20gICAgICAgIDsgTWF0aF9TeW1ib2wKKyAgICBnYyA7IFNvICAgICAgICA7IE90aGVyX1N5bWJvbAorICAgIGdjIDsgWiAgICAgICAgIDsgU2VwYXJhdG9yICAgICAgICAgICAgICAgICAgICAgICAgIyBabCB8IFpwIHwgWnMKKyAgICBnYyA7IFpsICAgICAgICA7IExpbmVfU2VwYXJhdG9yCisgICAgZ2MgOyBacCAgICAgICAgOyBQYXJhZ3JhcGhfU2VwYXJhdG9yCisgICAgZ2MgOyBacyAgICAgICAgOyBTcGFjZV9TZXBhcmF0b3IKKyovCisKKyAgICAvKgorICAgIC8vIGVhY2ggcnVsZSBjYW4gYmU6CisgICAgLy8gIlsiIGNvbW1hbmQgIl0iCisgICAgLy8gIiYgWyIgcG9zaXRpb24gIl0iCisgICAgLy8gIiYiIGJlZm9yZSBjaGFycworICAgIC8vIHJlbGF0aW9uICJbdmFyaWFibGUgdG9wXSIKKyAgICAvLyByZWxhdGlvbiAoY2hhcnMgInwiKT8gY2hhcnMgKCIvIiBjaGFycyk/CisgICAgLy8gcGx1cywgYSByZXNldCBtdXN0IGNvbWUgYmVmb3JlIGEgcmVsYXRpb24KKyAgICAKKyAgICAvLyB0aGUgZm9sbG93aW5nIHJlZmxlY3RzIHRoZSBhYm92ZSBydWxlcywgcGx1cyBhbGxvd3Mgd2hpdGVzcGFjZS4KKyAgICBQaWNrIGNoYXJzID0gUGljay5zdHJpbmcoMSwgNSwgUGljay5jb2RlUG9pbnQodVNldCkpOyAvLyBpbnNlcnQgc29tZXRoaW5nIG5lZWRpbmcgcXVvdGVzCisgICAgUGljayBzID0gUGljay5tYXliZSgwLjgsIFBpY2sudW5xdW90ZWQoIiAiKSkubmFtZSgiU3BhY2UiKTsgICAgLy8gb3B0aW9uYWwgc3BhY2UKKyAgICBQaWNrIENSTEYgPSBQaWNrLnVucXVvdGVkKCJcclxuIik7CisgICAgICAgIAorICAgIFBpY2sgcmVsMSA9IFBpY2suYW5kKFBpY2sudW5xdW90ZWQoIlt2YXJpYWJsZSB0b3BdIikpLmFuZDIocyk7CisgICAgUGljayBwMSA9IFBpY2subWF5YmUoMC4yNSwgUGljay5hbmQoY2hhcnMpLmFuZDIocykuYW5kMigifCIpLmFuZDIocykpOworICAgIFBpY2sgcDIgPSBQaWNrLm1heWJlKDAuMjUsIFBpY2suYW5kKCIvIikuYW5kMihzKS5hbmQyKGNoYXJzKS5hbmQyKHMpKTsKKyAgICBQaWNrIHJlbDIgPSBQaWNrLmFuZChwMSkuYW5kMihjaGFycykuYW5kMihzKS5hbmQyKHAyKTsKKyAgICBQaWNrIHJlbGF0aW9uID0gUGljay5hbmQoUGljay5vcihyZWxhdGlvbkxpc3QpKS5hbmQyKHMpCisgICAgICAgIC5hbmQyKFBpY2sub3IoMSwgcmVsMSkub3IyKDEwLCByZWwyKSkKKyAgICAgICAgLmFuZDIoQ1JMRikubmFtZSgiUmVsYXRpb24iKTsKKyAgICAgICAgICAgIAorICAgIFBpY2sgY29tbWFuZCA9IFBpY2suYW5kKFBpY2sub3IoY29tbWFuZExpc3QpKS5hbmQyKENSTEYpLm5hbWUoIkNvbW1hbmQiKTsKKyAgICAgICAgCisgICAgUGljayByZXNldCA9IFBpY2suYW5kKCImIikuYW5kMihzKSAgICAgICAgICAgIAorICAgICAgICAuYW5kMigwLjEsIFBpY2sub3IoYmVmb3JlTGlzdCkpLmFuZDIocykgICAgICAgICAgICAKKyAgICAgICAgLmFuZDIoUGljay5vcigwLjEsIFBpY2sub3IocG9zaXRpb25MaXN0KSkub3IyKDEuMCwgY2hhcnMpKQorICAgICAgICAuYW5kMihDUkxGKS5uYW1lKCJSZXNldCIpOworICAgIFBpY2sgcnVsZSA9IFBpY2suYW5kKFBpY2sub3IoMSwgY29tbWFuZCkub3IyKDUsIHJlc2V0KS5vcjIoMjUsIHJlbGF0aW9uKSkubmFtZSgiUnVsZSIpOworICAgIFBpY2sgcnVsZXMyID0gUGljay5hbmQoUGljay5yZXBlYXQoMCw1LGNvbW1hbmQpKSAgICAgICAgICAgIAorICAgICAgICAuYW5kMihyZXNldCkgICAgICAgICAgICAKKyAgICAgICAgLmFuZDIoUGljay5yZXBlYXQoMSwyMCxydWxlKSkubmFtZSgiUnVsZXMiKTsKKyAgICBydWxlcyA9IFBpY2suVGFyZ2V0Lm1ha2UocnVsZXMyKTsKKyAgIAorICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHJlbGF0aW9uTGlzdCA9IHsiIDwiLCAiICA8PCIsICIgICAgPDw8IiwgIiAgICAgPSIsICIgIDsiLCAiICAgLCJ9OworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjb21tYW5kTGlzdCA9IHsKKyAgICAgICAgIlthbHRlcm5hdGUgbm9uLWlnbm9yYWJsZV0iLCAgICAgICAgIlthbHRlcm5hdGUgc2hpZnRlZF0iLAorICAgICAgICAiW2JhY2t3YXJkcyAyXSIsCisgICAgICAgICJbbm9ybWFsaXphdGlvbiBvZmZdIiwKKyAgICAgICAgIltub3JtYWxpemF0aW9uIG9uXSIsCisgICAgICAgICJbY2FzZUxldmVsIG9mZl0iLAorICAgICAgICAiW2Nhc2VMZXZlbCBvbl0iLAorICAgICAgICAiW2Nhc2VGaXJzdCBvZmZdIiwKKyAgICAgICAgIltjYXNlRmlyc3QgdXBwZXJdIiwKKyAgICAgICAgIltjYXNlRmlyc3QgbG93ZXJdIiwKKyAgICAgICAgIltzdHJlbmd0aCAxXSIsCisgICAgICAgICJbc3RyZW5ndGggMl0iLAorICAgICAgICAiW3N0cmVuZ3RoIDNdIiwKKyAgICAgICAgIltzdHJlbmd0aCA0XSIsCisgICAgICAgICJbc3RyZW5ndGggSV0iLAorICAgICAgICAiW2hpcmFnYW5hUSBvZmZdIiwKKyAgICAgICAgIltoaXJhZ2FuYVEgb25dIgorICAgIH07CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHBvc2l0aW9uTGlzdCA9IHsKKyAgICAgICAgIltmaXJzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltsYXN0IHRlcnRpYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2ZpcnN0IHNlY29uZGFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltsYXN0IHNlY29uZGFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltmaXJzdCBwcmltYXJ5IGlnbm9yYWJsZV0iLAorICAgICAgICAiW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltmaXJzdCB2YXJpYWJsZV0iLAorICAgICAgICAiW2xhc3QgdmFyaWFibGVdIiwKKyAgICAgICAgIltmaXJzdCByZWd1bGFyXSIsCisgICAgICAgICJbbGFzdCByZWd1bGFyXSIsCisgICAgICAgICJbZmlyc3QgaW1wbGljaXRdIiwKKyAgICAgICAgIltsYXN0IGltcGxpY2l0XSIsCisgICAgICAgICJbZmlyc3QgdHJhaWxpbmddIiwKKyAgICAgICAgIltsYXN0IHRyYWlsaW5nXSIKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBiZWZvcmVMaXN0ID0geworICAgICAgICAiW2JlZm9yZSAxXSIsIAorICAgICAgICAiW2JlZm9yZSAyXSIsCisgICAgICAgICJbYmVmb3JlIDNdIgorICAgIH07CisgICAgKi8KK30KKy8vI2VuZGlmCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0Zjk3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsNTYgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBjb2xsYXRpb24gYW5kIHNlYXJjaCB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uQVBJVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uQ3VycmVuY3lUZXN0IiwKKyAgICAgICAgICAgICAgICAgIC8vIkNvbGxhdGlvbkRhbmlzaFRlc3QiLCAvL0RhbmlzaCBpcyBhbHJlYWR5IHRlc3RlZCB0aHJvdWdoIGRhdGEgZHJpdmVuIHRlc3RzCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uRHVtbXlUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25FbmdsaXNoVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uRmlubmlzaFRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkZyZW5jaFRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkdlcm1hblRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkl0ZXJhdG9yVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uS2FuYVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbk1vbmtleVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblJlZ3Jlc3Npb25UZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25TcGFuaXNoVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uVGhhaVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblR1cmtpc2hUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJHN0NvbGxhdGlvblRlc3QiLAorICAgICAgICAgICAgICAgICAgIkxvdHVzQ29sbGF0aW9uS29yZWFuVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uTWlzY1Rlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkNoaW5lc2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25TZXJ2aWNlVGVzdCIsCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgICAgIlJhbmRvbUNvbGxhdG9yIiwKKy8vI2VuZGlmCisgICAgICAgICAgICAgICAgICAiVUNBQ29uZm9ybWFuY2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHRlc3QgU2VhcmNoIEFQSSB0d2ljZSEKKyAgICAgICAgICAgICAgICAgIC8vImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlYXJjaC5TZWFyY2hUZXN0IgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiQWxsIENvbGxhdGlvbiBUZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDb2xsYXRvciI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdENvbXBhcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9UZXN0Q29tcGFyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkM2YwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdENvbXBhcmF0b3IuamF2YQpAQCAtMCwwICsxLDc0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBUZXN0Q29tcGFyYXRvciB7CisKKyAgICAvLyB0ZXN0IHRoZSBzeW1tZXRyeSBhbmQgdHJhbnNpdGl2aXR5CisgICAgcHVibGljIHZvaWQgdGVzdChDb21wYXJhdG9yIGNvbXAsIGludCBjb3VudCkgeworICAgICAgICBPYmplY3QgYyA9IG51bGw7CisgICAgICAgIE9iamVjdCBiID0gbmV3T2JqZWN0KGMpOworICAgICAgICBPYmplY3QgYSA9IG5ld09iamVjdChiKTsKKyAgICAgICAgaW50IGNvbXBhYiA9IGNvbXAuY29tcGFyZShhLGIpOworICAgICAgICB3aGlsZSAoLS1jb3VudCA+PSAwKSB7CisgICAgICAgICAgICAvLyByb3RhdGUgb2xkIHZhbHVlcworICAgICAgICAgICAgYyA9IGI7CisgICAgICAgICAgICBiID0gYTsKKyAgICAgICAgICAgIGludCBjb21wYmMgPSBjb21wYWI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGFsbG9jYXRlIG5ldyBhbmQgZ2V0IGNvbXBhcmlzb25zCisgICAgICAgICAgICBhID0gbmV3T2JqZWN0KGIpOworICAgICAgICAgICAgY29tcGFiID0gY29tcC5jb21wYXJlKGEsYik7CisgICAgICAgICAgICBpbnQgY29tcGJhID0gY29tcC5jb21wYXJlKGIsYSk7CisgICAgICAgICAgICBpbnQgY29tcGFjID0gY29tcC5jb21wYXJlKGEsYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIHN5bW1ldHJ5CisgICAgICAgICAgICBpZiAoY29tcGFiICE9IC1jb21wYmEpIHsKKyAgICAgICAgICAgICAgICBsb2coIlN5bW1ldHJ5IEZhaWx1cmUiLCBuZXcgT2JqZWN0W10ge2EsIGJ9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgdHJhbnNpdGl2aXR5CisgICAgICAgICAgICBjaGVjayhhLCBiLCBjLCAgY29tcGFiLCAgY29tcGJjLCAgY29tcGFjKTsKKyAgICAgICAgICAgIGNoZWNrKGEsIGMsIGIsICBjb21wYWIsIC1jb21wYmMsICBjb21wYWIpOworICAgICAgICAgICAgY2hlY2soYiwgYSwgYywgLWNvbXBhYiwgIGNvbXBhYywgIGNvbXBiYyk7CisgICAgICAgICAgICBjaGVjayhiLCBjLCBhLCAgY29tcGJjLCAtY29tcGFjLCAtY29tcGFiKTsKKyAgICAgICAgICAgIGNoZWNrKGMsIGEsIGIsIC1jb21wYWMsICBjb21wYWIsIC1jb21wYmMpOworICAgICAgICAgICAgY2hlY2soYywgYiwgYSwgLWNvbXBiYywgLWNvbXBhYiwgLWNvbXBhYyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrKE9iamVjdCBhLCBPYmplY3QgYiwgT2JqZWN0IGMsIAorICAgICAgaW50IGNvbXBhYiwgaW50IGNvbXBiYywgaW50IGNvbXBhYykgeworICAgICAgICBpZiAoY29tcGFiIDw9IDAgJiYgY29tcGJjIDw9IDAgJiYgIShjb21wYWMgPD0gMCkpIHsKKyAgICAgICAgICAgIGxvZygiVHJhbnNpdGl2aXR5IEZhaWx1cmUiLCBuZXcgT2JqZWN0W10ge2EsIGIsIGN9KTsgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAKKyAgICBwdWJsaWMgT2JqZWN0IG5ld09iamVjdChPYmplY3QgYykgeworICAgICAgICAvLyByZXR1cm4gYSBuZXcgb2JqZWN0CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBmb3JtYXQoT2JqZWN0IGMpIHsKKyAgICAgICAgLy8gcmV0dXJuIGEgbmV3IG9iamVjdAorICAgICAgICByZXR1cm4gYy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBsb2coU3RyaW5nIHRpdGxlLCBPYmplY3RbXSBhcmd1bWVudHMpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHRpdGxlICsgIjogWyI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQgKz0gIiwgIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXQoYXJndW1lbnRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgKz0gIl0iOworICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihyZXN1bHQpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVUNBQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVUNBQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRkM2I1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9VQ0FDb25mb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDI0MiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDT1BZUklHSFQ6IAorICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogVUNBQ29uZm9ybWFuY2VUZXN0IHBlcmZvcm1zIGNvbmZvcm1hbmNlIHRlc3RzIGRlZmluZWQgaW4gdGhlIGRhdGEKKyAqIGZpbGVzLiBJQ1Ugc2hpcHMgd2l0aCBzdHViIGRhdGEgZmlsZXMsIGFzIHRoZSB3aG9sZSB0ZXN0IGFyZSB0b28gCisgKiBsb25nLiBUbyBkbyB0aGUgd2hvbGUgdGVzdCwgZG93bmxvYWQgdGhlIHRlc3QgZmlsZXMuCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgVUNBQ29uZm9ybWFuY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBhcmdzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVUNBQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVUNBQ29uZm9ybWFuY2VUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBVQ0EgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgicm9vdCIsICIiLCAiIikpOworCisgICAgICAgIGNvbXBhcmVyID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgIH0KKyAgICBSdWxlQmFzZWRDb2xsYXRvciBVQ0E7CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmJVQ0E7CisgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wYXJlcjsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGVOb25JZ25vcmFibGUoKSB7CisgICAgICAgIHNldENvbGxOb25JZ25vcmFibGUoVUNBKTsKKyAgICAgICAgb3BlblRlc3RGaWxlKCJOT05fSUdOT1JBQkxFIik7CisgICAgICAgIGNvbmZvcm1hbmNlVGVzdChVQ0EpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGVTaGlmdGVkKCkgeworICAgICAgICBzZXRDb2xsU2hpZnRlZChVQ0EpOworICAgICAgICBvcGVuVGVzdEZpbGUoIlNISUZURUQiKTsKKyAgICAgICAgY29uZm9ybWFuY2VUZXN0KFVDQSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlc05vbklnbm9yYWJsZSgpIHsKKyAgICAgICAgaW5pdFJiVUNBKCk7CisgICAgICAgIAorICAgICAgICBzZXRDb2xsTm9uSWdub3JhYmxlKHJiVUNBKTsKKyAgICAgICAgb3BlblRlc3RGaWxlKCJOT05fSUdOT1JBQkxFIik7CisgICAgICAgIGNvbmZvcm1hbmNlVGVzdChyYlVDQSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlc1NoaWZ0ZWQoKSB7CisgICAgICAgIGxvZ2xuKCJUaGlzIHRlc3QgaXMgY3VycmVudGx5IGRpc2FibGVkLCBhcyBpdCBpcyBpbXBvc3NpYmxlIHRvICIrCisgICAgICAgICJ3aG9sbHkgcmVwcmVzZW50IGZyYWN0aW9uYWwgVUNBIHVzaW5nIHRhaWxvcmluZyBydWxlcy4iKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgICAvKiAgICAgICAgaW5pdFJiVUNBKCk7CisgICAgICAgICAKKyAgICAgICAgIGlmKFVfU1VDQ0VTUyhzdGF0dXMpKSB7CisgICAgICAgICBzZXRDb2xsU2hpZnRlZChyYlVDQSk7CisgICAgICAgICBvcGVuVGVzdEZpbGUoIlNISUZURUQiKTsKKyAgICAgICAgIHRlc3RDb25mb3JtYW5jZShyYlVDQSk7CisgICAgICAgICB9CisgICAgICAgICAqLworICAgIH0KKyAgICBCdWZmZXJlZFJlYWRlciBpbjsKKyAgICBwcml2YXRlIHZvaWQgb3BlblRlc3RGaWxlKFN0cmluZyB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGNvbGxhdGlvblRlc3QgPSAiQ29sbGF0aW9uVGVzdF8iOworICAgICAgICBTdHJpbmcgZXh0ID0gIi50eHQiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYoaW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNsb3NlIHRoZSBvcGVuZWQgZmlsZSEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKGNvbGxhdGlvblRlc3QrdHlwZStleHQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoY29sbGF0aW9uVGVzdCt0eXBlKyJfU0hPUlQiK2V4dCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoY29sbGF0aW9uVGVzdCt0eXBlKyJfU1RVQiIrZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oICJJTkZPOiBXb3JraW5nIHdpdGggdGhlIHN0dWIgZmlsZS5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklmIHlvdSBuZWVkIHRoZSBmdWxsIGNvbmZvcm1hbmNlIHRlc3QsIHBsZWFzZVxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG93bmxvYWQgdGhlIGFwcHJvcHJpYXRlIGRhdGEgZmlsZXMgZnJvbTpcbiIrCisgICAgICAgICAgICAgICAgICAgICJodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL3VuaWNvZGV0b29scy9jb20vaWJtL3RleHQvZGF0YS8iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZTExKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGZpbmQgYW55IG9mIHRoZSB0ZXN0IGZpbGVzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSAgICAgICAgICAKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0Q29sbE5vbklnbm9yYWJsZShSdWxlQmFzZWRDb2xsYXRvciBjb2xsKSAKKyAgICB7CisgICAgICAgIGlmKGNvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKFJ1bGVCYXNlZENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIGNvbGwuc2V0TG93ZXJDYXNlRmlyc3QoZmFsc2UpOworICAgICAgICAgICAgY29sbC5zZXRDYXNlTGV2ZWwoZmFsc2UpOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChSdWxlQmFzZWRDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBjb2xsLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldENvbGxTaGlmdGVkKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwpIAorICAgIHsKKyAgICAgICAgaWYoY29sbCAhPSBudWxsKSB7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oUnVsZUJhc2VkQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICAgICAgY29sbC5zZXRMb3dlckNhc2VGaXJzdChmYWxzZSk7CisgICAgICAgICAgICBjb2xsLnNldENhc2VMZXZlbChmYWxzZSk7CisgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKFJ1bGVCYXNlZENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICAgICAgY29sbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGluaXRSYlVDQSgpIAorICAgIHsKKyAgICAgICAgLyogICAgICBpZighcmJVQ0EpIHsKKyAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgICAgICBVQ2hhciAgICAgICp1Y2FydWxlcyA9IGJ1ZmZlcjsKKyAgICAgICAgIGludDMyX3Qgc2l6ZSA9IHVjb2xfZ2V0UnVsZXNFeChVQ0EsIFVDT0xfRlVMTF9SVUxFUywgdWNhcnVsZXMsIAorICAgICAgICAgQlVGRkVSX1NJWkVfKTsKKyAgICAgICAgIGlmIChzaXplID4gQlVGRkVSX1NJWkVfKSB7CisgICAgICAgICB1Y2FydWxlcyA9IChVQ2hhciAqKW1hbGxvYyhzaXplICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgICBzaXplID0gdWNvbF9nZXRSdWxlc0V4KFVDQSwgVUNPTF9GVUxMX1JVTEVTLCB1Y2FydWxlcywgc2l6ZSk7CisgICAgICAgICB9CisgICAgICAgICByYlVDQSA9IHVjb2xfb3BlblJ1bGVzKHVjYXJ1bGVzLCBzaXplLCBVQ09MX0RFRkFVTFQsIFVDT0xfVEVSVElBUlksIAorICAgICAgICAgJnBhcnNlRXJyb3IsICZzdGF0dXMpOworICAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICBlcnJsbigiRmFpbHVyZSBjcmVhdGluZyBVQ0EgcnVsZS1iYXNlZCBjb2xsYXRvcjogJXMiLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgICovCisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHBhcnNlU3RyaW5nKFN0cmluZyBsaW5lKSB7CisgICAgICAgIGludCBpID0gMCwgdmFsdWU7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCksIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShsaW5lLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihsaW5lLmNoYXJBdChpKSA9PSAnOycgfHwgaSA9PSBsaW5lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChsaW5lLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGxpbmUuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiByZWFkIG9uZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICB2YWx1ZSA9IEludGVnZXIucGFyc2VJbnQoYnVmZmVyLnRvU3RyaW5nKCksIDE2KTsKKyAgICAgICAgICAgIGJ1ZmZlci5kZWxldGUoMCwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29uZm9ybWFuY2VUZXN0KFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwpIHsKKyAgICAgICAgaWYoaW4gPT0gbnVsbCB8fCBjb2xsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbmVObyA9IDA7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgbGluZSA9IG51bGwsIG9sZExpbmUgPSBudWxsLCBidWZmZXIgPSBudWxsLCBvbGRCID0gbnVsbDsKKyAgICAgICAgQ29sbGF0aW9uS2V5IG9sZFNrID0gbnVsbCwgbmV3U2sgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaW50IHJlcyA9IDAsIGNtcHJlcyA9IDAsIGNtcHJlczIgPSAwOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGluLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lTm8rKzsKKyAgICAgICAgICAgICAgICBpZihsaW5lLmxlbmd0aCgpIDwgMyB8fCBsaW5lLmNoYXJBdCgwKSA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHBhcnNlU3RyaW5nKGxpbmUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG5ld1NrID0gY29sbC5nZXRDb2xsYXRpb25LZXkoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBpZihvbGRTayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9sZFNrLmNvbXBhcmVUbyhuZXdTayk7CisgICAgICAgICAgICAgICAgICAgIGNtcHJlcyA9IGNvbGwuY29tcGFyZShvbGRCLCBidWZmZXIpOworICAgICAgICAgICAgICAgICAgICBjbXByZXMyID0gY29sbC5jb21wYXJlKGJ1ZmZlciwgb2xkQik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZihjbXByZXMgIT0gLWNtcHJlczIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb21wYXJlIHJlc3VsdCBub3Qgc3ltbWV0cmljYWwgb24gbGluZSAiK2xpbmVObyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoKChyZXMmMHg4MDAwMDAwMCkgIT0gKGNtcHJlcyYweDgwMDAwMDAwKSkgfHwgKHJlcyA9PSAwICYmIGNtcHJlcyAhPSAwKSB8fCAocmVzICE9IDAgJiYgY21wcmVzID09IDApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlmZmVyZW5jZSBiZXR3ZWVuIHVjb2xfc3RyY29sbCBhbmQgc29ydGtleSBjb21wYXJlIG9uIGxpbmUgIiArIGxpbmVObyk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvbGRMaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZihyZXMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGluZSAiICsgbGluZU5vICsgIiBpcyBub3QgZ3JlYXRlciBvciBlcXVhbCB0aGFuIHByZXZpb3VzIGxpbmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG9sZExpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4obGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbXByZXMgPSBjb2xsLmNvbXBhcmUob2xkQiwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHJlcyA9PSAwKSB7ICAvLyBlcXVhbCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGNvbXBhcmVyLmNvbXBhcmUob2xkQiwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9iYWJsZSBlcnJvciBpbiB0ZXN0IGZpbGUgb24gbGluZSAiICsgbGluZU5vICsiIChjb21wYXJpbmcgaWRlbnRpY2FsIHN0cmluZ3MpIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4ob2xkTGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4obGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU29ydGtleXMgYXJlIGlkZW50aWNhbCwgYnV0IGNvZGUgcG9pbnQgY29tYXBhcmUgZ2l2ZXMgPjAgb24gbGluZSAiICsgbGluZU5vKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvbGRMaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvbGRTayA9IG5ld1NrOworICAgICAgICAgICAgICAgIG9sZEIgPSBidWZmZXI7CisgICAgICAgICAgICAgICAgb2xkTGluZSA9IGxpbmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gIitlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9EZWNvbXByZXNzaW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0RlY29tcHJlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEzY2VhZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9EZWNvbXByZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb21wcmVzc2lvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZURlY29tcHJlc3NvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworcHVibGljIGNsYXNzIERlY29tcHJlc3Npb25UZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRGVjb21wcmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqIFByaW50IG91dCBhIHNlZ21lbnQgb2YgYSBjaGFyYWN0ZXIgYXJyYXksIGlmIGluIHZlcmJvc2UgbW9kZSAqLworICAgIHByaXZhdGUgdm9pZCBsb2coY2hhciBbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpIHsKKyAgICAgICAgbG9nKCJ8Iik7CisgICAgICAgIGZvcihpbnQgaSA9IHN0YXJ0OyBpIDwgc3RhcnQgKyBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBsb2coU3RyaW5nLnZhbHVlT2YoY2hhcnNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICBsb2coInwiKTsKKyAgICB9CisKKyAgICAvKiogUHJpbnQgb3V0IGEgc2VnbWVudCBvZiBhIGNoYXJhY3RlciBhcnJheSwgZm9sbG93ZWQgYnkgYSBuZXdsaW5lICovCisgICAgcHJpdmF0ZSB2b2lkIGxvZ2xuKGNoYXIgW10gY2hhcnMsIGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgbG9nKGNoYXJzLCBzdGFydCwgY291bnQpOworICAgICAgICBsb2dsbigiIik7CisgICAgfQorCisgICAgLyoqIERlY29tcHJlc3MgdGhlIHR3byBzZWdtZW50cyAqLworICAgIHByaXZhdGUgU3RyaW5nIGRlY29tcHJlc3NUZXN0KGJ5dGUgW10gc2VnbWVudDEsIGJ5dGUgW10gc2VnbWVudDIpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworCisgICAgICAgIGludCBbXSBieXRlc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICBjaGFyIFtdIGNoYXJCdWZmZXIgPSBuZXcgY2hhciBbMiooc2VnbWVudDEubGVuZ3RoICsgc2VnbWVudDIubGVuZ3RoKV07CisgICAgICAgIGludCBjb3VudDEgPSAwLCBjb3VudDIgPSAwOworCisgICAgICAgIGNvdW50MSA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3Moc2VnbWVudDEsIDAsIHNlZ21lbnQxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1JlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckJ1ZmZlciwgMCwgY2hhckJ1ZmZlci5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlNlZ21lbnQgMSAoIiArIHNlZ21lbnQxLmxlbmd0aCArICIgYnl0ZXMpICIgKworICAgICAgICAgICAgICAgICJkZWNvbXByZXNzZWQgaW50byAiICsgY291bnQxICArICIgY2hhcnMiKTsKKyAgICAgICAgbG9nbG4oIkJ5dGVzIGNvbnN1bWVkOiAiICsgYnl0ZXNSZWFkWzBdKTsKKworICAgICAgICBsb2dsbigiR290IGNoYXJzOiAiKTsKKyAgICAgICAgbG9nbG4oY2hhckJ1ZmZlciwgMCwgY291bnQxKTsKKyAgICAgICAgcy5hcHBlbmQoY2hhckJ1ZmZlciwgMCwgY291bnQxKTsKKworICAgICAgICBjb3VudDIgPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKHNlZ21lbnQyLCAwLCBzZWdtZW50Mi5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNSZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIGNvdW50MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckJ1ZmZlci5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlNlZ21lbnQgMiAoIiArIHNlZ21lbnQyLmxlbmd0aCArICIgYnl0ZXMpICIgKworICAgICAgICAgICAgICAgICJkZWNvbXByZXNzZWQgaW50byAiICsgY291bnQyICArICIgY2hhcnMiKTsKKyAgICAgICAgbG9nbG4oIkJ5dGVzIGNvbnN1bWVkOiAiICsgYnl0ZXNSZWFkWzBdKTsKKworICAgICAgICBsb2dsbigiR290IGNoYXJzOiAiKTsKKyAgICAgICAgbG9nbG4oY2hhckJ1ZmZlciwgY291bnQxLCBjb3VudDIpOworICAgICAgICAKKyAgICAgICAgcy5hcHBlbmQoY2hhckJ1ZmZlciwgY291bnQxLCBjb3VudDIpOworCisgICAgICAgIGxvZ2xuKCJSZXN1bHQ6ICIpOworICAgICAgICBsb2dsbihjaGFyQnVmZmVyLCAwLCBjb3VudDEgKyBjb3VudDIpOworICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKworICAgICAgICByZXR1cm4gcy50b1N0cmluZygpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgdGVzdERlY29tcHJlc3Npb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDsKKworICAgICAgICAvLyBjb21wcmVzc2VkIHNlZ21lbnQgYnJlYWtpbmcgb24gYSBkZWZpbmUgd2luZG93IHNlcXVlbmNlCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIEIgICAgIG8gICAgIG8gICAgIHQgICAgIGggICAgIFNEMSAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50MSA9IHsgMHg0MiwgMHg2ZiwgMHg2ZiwgMHg3NCwgMHg2OCwgMHgxOSB9OworCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbgorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBJRFggICAsICAgICAgICAgICBTICAgICAuICAgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDIgPSB7IDB4MDEsIDB4MmMsIDB4MjAsIDB4NTMsIDB4MmUgfTsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGRlY29tcHJlc3NUZXN0KHNlZ21lbnQxLCBzZWdtZW50Mik7CisgICAgICAgIGlmKCEgcmVzdWx0LmVxdWFscygiQm9vdGgsIFMuIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWNvbXByZXNzaW9uIHRlc3QgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBjb21wcmVzc2VkIHNlZ21lbnQgYnJlYWtpbmcgb24gYSBxdW90ZSB1bmljb2RlIHNlcXVlbmNlCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIEIgICAgIG8gICAgIG8gICAgIHQgICAgIFNRVSAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50MyA9IHsgMHg0MiwgMHg2ZiwgMHg2ZiwgMHg3NCwgMHgwZSwgMHgwMCB9OworCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbgorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBoICAgICAsICAgICAgICAgICBTICAgICAuICAgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDQgPSB7IDB4NjgsIDB4MmMsIDB4MjAsIDB4NTMsIDB4MmUgfTsKKworICAgICAgICByZXN1bHQgPSBkZWNvbXByZXNzVGVzdChzZWdtZW50Mywgc2VnbWVudDQpOworICAgICAgICBpZighIHJlc3VsdC5lcXVhbHMoIkJvb3RoLCBTLiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRGVjb21wcmVzc2lvbiB0ZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKworICAgICAgICAvLyBjb21wcmVzc2VkIHNlZ21lbnQgYnJlYWtpbmcgb24gYSBxdW90ZSB1bmljb2RlIHNlcXVlbmNlCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIFNDVSAgIFVRVSAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQ1ID0geyAweDBmLCAoYnl0ZSkweGYwLCAweDAwIH07CisKKyAgICAgICAgLy8gY29udGludWF0aW9uCisgICAgICAgIC8qICAgICAgICAgICAgICAgICAgIEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQ2ID0geyAweDQyIH07CisKKyAgICAgICAgcmVzdWx0ID0gZGVjb21wcmVzc1Rlc3Qoc2VnbWVudDUsIHNlZ21lbnQ2KTsKKyAgICAgICAgaWYoISByZXN1bHQuZXF1YWxzKCJCIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWNvbXByZXNzaW9uIHRlc3QgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9FeGhhdXN0aXZlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0V4aGF1c3RpdmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjIzMDAyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9FeGhhdXN0aXZlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTIyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb21wcmVzc2lvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZUNvbXByZXNzb3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlRGVjb21wcmVzc29yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgRXhoYXVzdGl2ZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBFeGhhdXN0aXZlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogVGVzdCBzaW1wbGUgY29tcHJlc3MvZGVjb21wcmVzcyBBUEksIHJldHVybmluZyAjIG9mIGVycm9ycyAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGZUZXN0Q2FzZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNpbXBsZVRlc3QoZlRlc3RDYXNlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHNpbXBsZVRlc3QoU3RyaW5nIHMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBieXRlIFtdIGNvbXByZXNzZWQgPSBVbmljb2RlQ29tcHJlc3Nvci5jb21wcmVzcyhzKTsKKyAgICAgICAgU3RyaW5nIHJlcyA9IFVuaWNvZGVEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhjb21wcmVzc2VkKTsKKyAgICAgICAgaWYgKGxvZ0RpZmZzKHMudG9DaGFyQXJyYXkoKSwgcy5sZW5ndGgoKSwgCisgICAgICAgICAgICAgICAgcmVzLnRvQ2hhckFycmF5KCksIHJlcy5sZW5ndGgoKSkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKHMubGVuZ3RoKCkgKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBjb21wcmVzc2VkLmxlbmd0aCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIHJlcy5sZW5ndGgoKSArICIgY2hhcnMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDb21wcmVzc2VkOiIpOworICAgICAgICAgICAgcHJpbnRCeXRlcyhjb21wcmVzc2VkLCBjb21wcmVzc2VkLmxlbmd0aCk7CisgICAgICAgICAgICBlcnJsbigidGVzdFNpbXBsZSBkaWQgbm90IGNvbXByZXNzIGNvcnJlY3RseSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJLCByZXR1cm5pbmcgIyBvZiBlcnJvcnMgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXRlcmF0aXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmVGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBteVRlc3QoZlRlc3RDYXNlc1tpXS50b0NoYXJBcnJheSgpLCBmVGVzdENhc2VzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgbXlUZXN0KGNoYXJbXSBjaGFycywgaW50IGxlbikgeworICAgICAgICBVbmljb2RlQ29tcHJlc3NvciBteUNvbXByZXNzb3IgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyAgICAgICAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisgICAgICAgIAorICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIG15IGNvbXByZXNzb3IKKyAgICAgICAgaW50IG15Qnl0ZUNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q2hhckNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCg1MTIsIDMqbGVuKTsKKyAgICAgICAgYnl0ZVtdIG15Q29tcHJlc3NlZCA9IG5ldyBieXRlW215Q29tcHJlc3NlZFNpemVdOworICAgICAgICBpbnQgbXlEZWNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoMiwgMiAqIGxlbik7CisgICAgICAgIGNoYXJbXSBteURlY29tcHJlc3NlZCA9IG5ldyBjaGFyW215RGVjb21wcmVzc2VkU2l6ZV07CisgICAgICAgIGludFtdIHVuaWNoYXJzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIGludFtdIGJ5dGVzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBteUJ5dGVDb3VudCA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgMCwgbGVuLCB1bmljaGFyc1JlYWQsCisgICAgICAgICAgICAgICAgbXlDb21wcmVzc2VkLCAwLCBteUNvbXByZXNzZWRTaXplKTsKKworICAgICAgICBteUNoYXJDb3VudCA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MobXlDb21wcmVzc2VkLCAwLCBteUJ5dGVDb3VudCwKKyAgICAgICAgICAgICAgICBieXRlc1JlYWQsIG15RGVjb21wcmVzc2VkLCAwLCBteURlY29tcHJlc3NlZFNpemUpOworCisgICAgICAgIGlmIChsb2dEaWZmcyhjaGFycywgbGVuLCBteURlY29tcHJlc3NlZCwgbXlDaGFyQ291bnQpID09IGZhbHNlKSB7CisgICAgICAgICAgICBsb2dsbihsZW4gKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBteUJ5dGVDb3VudCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIG15Q2hhckNvdW50ICsgIiBjaGFycyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNvbXByZXNzZWQ6Iik7CisgICAgICAgICAgICBwcmludEJ5dGVzKG15Q29tcHJlc3NlZCwgbXlCeXRlQ291bnQpOworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdGl2ZSB0ZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJICovCisgICAgcHVibGljIHZvaWQgdGVzdE11bHRpcGFzcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZlRlc3RDYXNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbXlNdWx0aXBhc3NUZXN0KGZUZXN0Q2FzZXNbaV0udG9DaGFyQXJyYXkoKSwgZlRlc3RDYXNlc1tpXS5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIG15TXVsdGlwYXNzVGVzdChjaGFyIFtdIGNoYXJzLCBpbnQgbGVuKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVW5pY29kZUNvbXByZXNzb3IgbXlDb21wcmVzc29yID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisgICAgICAgIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworICAgICAgICAKKyAgICAgICAgLy8gdmFyaWFibGVzIGZvciBteSBjb21wcmVzc29yCisgICAgICAgIAorICAgICAgICAvLyBmb3IgbG9vcGluZworICAgICAgICBpbnQgYnl0ZUJ1ZmZlclNpemUgPSA0Oy8vTWF0aC5tYXgoNCwgbGVuIC8gNCk7CisgICAgICAgIGJ5dGVbXSBieXRlQnVmZmVyID0gbmV3IGJ5dGUgW2J5dGVCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoNTEyLCAzICogbGVuKTsKKyAgICAgICAgYnl0ZVtdIGNvbXByZXNzZWQgPSBuZXcgYnl0ZVtjb21wcmVzc2VkU2l6ZV07CisKKyAgICAgICAgLy8gZm9yIGxvb3BpbmcKKyAgICAgICAgaW50IHVuaWNoYXJCdWZmZXJTaXplID0gMjsvL2J5dGVCdWZmZXJTaXplOworICAgICAgICBjaGFyW10gdW5pY2hhckJ1ZmZlciA9IG5ldyBjaGFyW3VuaWNoYXJCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGRlY29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCgyLCAyICogbGVuKTsKKyAgICAgICAgY2hhcltdIGRlY29tcHJlc3NlZCA9IG5ldyBjaGFyW2RlY29tcHJlc3NlZFNpemVdOworCisgICAgICAgIGludCBieXRlc1dyaXR0ZW4gPSAwOworICAgICAgICBpbnQgdW5pY2hhcnNXcml0dGVuID0gMDsKKworICAgICAgICBpbnRbXSB1bmljaGFyc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICBpbnRbXSBieXRlc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICAKKyAgICAgICAgaW50IHRvdGFsQ2hhcnNDb21wcmVzc2VkID0gMDsKKyAgICAgICAgaW50IHRvdGFsQnl0ZXNXcml0dGVuID0gMDsKKworICAgICAgICBpbnQgdG90YWxCeXRlc0RlY29tcHJlc3NlZCAgPSAwOworICAgICAgICBpbnQgdG90YWxDaGFyc1dyaXR0ZW4gPSAwOworCisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gZXJyID0gZmFsc2U7CisKKworICAgICAgICAvLyBwZXJmb3JtIHRoZSBjb21wcmVzc2lvbiBpbiBhIGxvb3AKKyAgICAgICAgZG8geworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBkbyB0aGUgY29tcHJlc3Npb24KKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgdG90YWxDaGFyc0NvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgIGxlbiwgdW5pY2hhcnNSZWFkLCBieXRlQnVmZmVyLCAwLCBieXRlQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGN1cnJlbnQgc2V0IG9mIGJ5dGVzIGludG8gdGhlIHRhcmdldCBidWZmZXIKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgMCwgY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgdG90YWxCeXRlc1dyaXR0ZW4sIGJ5dGVzV3JpdHRlbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJhY3RlcnMgY29tcHJlc3NlZAorICAgICAgICAgICAgdG90YWxDaGFyc0NvbXByZXNzZWQgKz0gdW5pY2hhcnNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiQ29tcHJlc3Npb24gcGFzcyBjb21wbGV0ZS4gIENvbXByZXNzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdW5pY2hhcnNSZWFkWzBdICsgIiBjaGFycyBpbnRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzV3JpdHRlbiArICIgYnl0ZXMuIik7Ki8KKyAgICAgICAgfSB3aGlsZSh0b3RhbENoYXJzQ29tcHJlc3NlZCA8IGxlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQ2hhcnNDb21wcmVzc2VkICE9IGxlbikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBOdW1iZXIgb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkKCIKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbENoYXJzQ29tcHJlc3NlZCArICIpICE9IGxlbigiICsgbGVuICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNUDogIiArIGxlbiArICIgY2hhcnMgPT09PiAiICsgdG90YWxCeXRlc1dyaXR0ZW4gKyAiIGJ5dGVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwZXJmb3JtIHRoZSBkZWNvbXByZXNzaW9uIGluIGEgbG9vcAorICAgICAgICBkbyB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGRvIHRoZSBkZWNvbXByZXNzaW9uCisgICAgICAgICAgICB1bmljaGFyc1dyaXR0ZW4gPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkLCB0b3RhbEJ5dGVzV3JpdHRlbiwgCisgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwgdW5pY2hhckJ1ZmZlciwgMCwgdW5pY2hhckJ1ZmZlclNpemUpOworCisgICAgICAgICAgICAvLyBjb3B5IHRoZSBjdXJyZW50IHNldCBvZiBjaGFycyBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHVuaWNoYXJCdWZmZXIsIDAsIGRlY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuLCB1bmljaGFyc1dyaXR0ZW4pOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyBkZWNvbXByZXNzZWQKKyAgICAgICAgICAgIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgKz0gYnl0ZXNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBjaGFycyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbENoYXJzV3JpdHRlbiArPSB1bmljaGFyc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiRGVjb21wcmVzc2lvbiBwYXNzIGNvbXBsZXRlLiAgRGVjb21wcmVzc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzUmVhZFswXSArICIgYnl0ZXMgaW50byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB1bmljaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOyovCisgICAgICAgIH0gd2hpbGUgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgPCB0b3RhbEJ5dGVzV3JpdHRlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgIT0gdG90YWxCeXRlc1dyaXR0ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogTnVtYmVyIG9mIGJ5dGVzIGRlY29tcHJlc3NlZCgiIAorICAgICAgICAgICAgICAgICAgICArIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICsgIikgIT0gdG90YWxCeXRlc1dyaXR0ZW4oIiAKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbEJ5dGVzV3JpdHRlbiArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiTVA6ICIgKyB0b3RhbEJ5dGVzV3JpdHRlbgorICAgICAgICAgICAgICAgICAgICArICIgYnl0ZXMgPT09PiAiICsgdG90YWxDaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobG9nRGlmZnMoY2hhcnMsIGxlbiwgZGVjb21wcmVzc2VkLCB0b3RhbENoYXJzV3JpdHRlbikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogYnVmZmVyIGNvbnRlbnRzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFByaW50IGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIGNoYXJhY3RlciBidWZmZXJzICovCisgICAgcHJpdmF0ZSBib29sZWFuIGxvZ0RpZmZzKGNoYXJbXSBzMSwgaW50IHMxbGVuLCBjaGFyW10gczIsIGludCBzMmxlbikgeworICAgICAgICBib29sZWFuIHJlc3VsdCAgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmKHMxbGVuICE9IHMybGVuKSB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMZW5ndGggZG9lc24ndCBtYXRjaDogZXhwZWN0ZWQgIiArIHMxbGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIHMybGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgIHByaW50Q2hhcnMoczEsIHMxbGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3Q6Iik7CisgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oczFsZW4sIHMybGVuKTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBpZihzMVtpXSAhPSBzMltpXSkgeworICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRpZmZlcmVuY2UgYXQgY2hhciAiICsgaSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkV4cC4gY2hhcjogIiArIEludGVnZXIudG9IZXhTdHJpbmcoczFbaV0pKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IGNoYXIgOiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzMltpXSkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMxLCBzMWxlbik7CisgICAgICAgICAgICAgICAgbG9nbG4oIkdvdDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIGdlbmVyYXRlIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMsIHdpdGggc2ltdWxhdGVkIHJ1bnMgb2YgY2hhcmFjdGVycworICAgIC8qcHJpdmF0ZSBzdGF0aWMgY2hhcltdIHJhbmRvbUNoYXJzKGludCBsZW4sIFJhbmRvbSByYW5kb20pIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyIFtsZW5dOworICAgICAgICBpbnQgcnVuTGVuID0gMDsKKyAgICAgICAgaW50IHVzZWQgPSAwOworICAgICAgICAKKyAgICAgICAgd2hpbGUodXNlZCA8IGxlbikgeworICAgICAgICAgICAgcnVuTGVuID0gKGludCkgKDMwICogcmFuZG9tLm5leHREb3VibGUoKSk7CisgICAgICAgICAgICBpZih1c2VkICsgcnVuTGVuID49IGxlbikgeworICAgICAgICAgICAgICAgIHJ1bkxlbiA9IGxlbiAtIHVzZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByYW5kb21SdW4ocmVzdWx0LCB1c2VkLCBydW5MZW4sIHJhbmRvbSk7CisgICAgICAgICAgICB1c2VkICs9IHJ1bkxlbjsKKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0qLworCisgICAgLy8gZ2VuZXJhdGUgYSBydW4gb2YgY2hhcmFjdGVycyBpbiBhICJ3aW5kb3ciCisgICAgLypwcml2YXRlIHN0YXRpYyB2b2lkIHJhbmRvbVJ1bihjaGFyW10gdGFyZ2V0LCBpbnQgcG9zLCBpbnQgbGVuLCBSYW5kb20gcmFuZG9tKSB7CisgICAgICAgIGludCBvZmZzZXQgPSAoaW50KSAoMHhGRkZGICogcmFuZG9tLm5leHREb3VibGUoKSk7CisKKyAgICAgICAgLy8gZG9uJ3Qgb3ZlcmZsb3cgMTYgYml0cworICAgICAgICBpZihvZmZzZXQgPiAweEZGODApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IDB4RkY4MDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpbnQgaSA9IHBvczsgaSA8IHBvcyArIGxlbjsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXRbaV0gPSAoY2hhcikob2Zmc2V0ICsgKDB4N0YgKiByYW5kb20ubmV4dERvdWJsZSgpKSk7CisgICAgICAgIH0KKyAgICB9Ki8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBbXSBmVGVzdENhc2VzID0geworICAgICAgICAiSGVsbG8gXHU5MjkyIFx1OTE5MiBXb3JsZCEiLAorICAgICAgICAiSGVsbFx1MDQyOW8gXHU5MjkyIFx1OTE5MiBXXHUwMDg0cmxkISIsCisgICAgICAgICJIZWxsXHUwNDI5byBcdTkyOTIgXHU5MjkyV1x1MDA4NHJsZCEiLAorCisgICAgICAgICJcdTA2NDhcdTA2YzgiLCAvLyBjYXRjaCBtaXNzaW5nIHJlc2V0CisgICAgICAgICJcdTA2NDhcdTA2YzgiLAorCisgICAgICAgICJcdTQ0NDRcdUUwMDEiLCAvLyBsb3dlc3QgcXVvdGFibGUKKyAgICAgICAgIlx1NDQ0NFx1ZjJGRiIsIC8vIGhpZ2hlc3QgcXVvdGFibGUKKyAgICAgICAgIlx1NDQ0NFx1ZjE4OFx1NDQ0NCIsCisgICAgICAgICJcdTQ0NDRcdWYxODhcdWYyODgiLAorICAgICAgICAiXHU0NDQ0XHVmMTg4YWJjXDA0MjlcdWYyODgiLAorICAgICAgICAiXHU5MjkyXHUyMjIyIiwKKyAgICAgICAgIkhlbGxcdTA0MjlcdTA0MjMwbyBcdTkyOTIgXHU5MjkyV1x1MDA4NFx1MDE5MnJsZCEiLAorICAgICAgICAiSGVsbFx1MDQyOW8gXHU5MjkyIFx1OTI5MldcdTAwODRybGQhIiwKKyAgICAgICAgIkhlbGxvIFdvcmxkITEyMzQ1NiIsCisgICAgICAgICJIZWxsbyBXXHUwMDgxXHUwMTFmXHUwMDgyISIsIC8vIExhdGluIDEgcnVuCisKKyAgICAgICAgImFiY1x1MDMwMVx1MDMwMiIsICAvLyB1c2VzIFNRbiBmb3IgdTMwMSB1MzAyCisgICAgICAgICJhYmNcdTQ0MTFkIiwgICAgICAvLyB1c2VzIFNRVQorICAgICAgICAiYWJjXHU0NDExXHU0NDEyZCIsLy8gdXNlcyBTQ1UKKyAgICAgICAgImFiY1x1MDQwMVx1MDQwMlx1MDQ3Zlx1MDBhNVx1MDQwNSIsIC8vIHVzZXMgU1FuIGZvciB1YTUKKyAgICAgICAgIlx1OTE5MVx1OTE5MVx1MzA0MVx1OTE5MVx1MzA0MVx1MzA0MVx1MzAwMCIsIC8vIFNKSVMgbGlrZSBkYXRhCisgICAgICAgICJcdTkyOTJcdTIyMjIiLAorICAgICAgICAiXHU5MTkxXHU5MTkxXHUzMDQxXHU5MTkxXHUzMDQxXHUzMDQxXHUzMDAwIiwKKyAgICAgICAgIlx1OTk5OVx1MzA1MVx1MzAwY1x1OTk5OVx1OTk5OVx1MzA2MFx1OTk5OVx1MzA2NVx1MzA2NVx1MzA2NVx1MzAwYyIsCisgICAgICAgICJcdTMwMDBcdTI2NmFcdTMwZWFcdTMwZjNcdTMwYjRcdTUzZWZcdTYxMWJcdTMwNDRcdTMwODRcdTUzZWZcdTYxMWJcdTMwNDRcdTMwODRcdTMwZWFcdTMwZjNcdTMwYjRcdTMwMDIiLAorCisgICAgICAgICIiLCAvLyBlbXB0eSBpbnB1dAorICAgICAgICAiXHUwMDAwIiwgLy8gc21hbGxlc3QgQk1QIGNoYXJhY3RlcgorICAgICAgICAiXHVGRkZGIiwgLy8gbGFyZ2VzdCBCTVAgY2hhcmFjdGVyCisKKyAgICAgICAgIlx1ZDgwMFx1ZGMwMCIsIC8vIHNtYWxsZXN0IHN1cnJvZ2F0ZQorICAgICAgICAiXHVkOGZmXHVkY2ZmIiwgLy8gbGFyZ2VzdCBzdXJyb2dhdGUgcGFpcgorICAgICAgICAKKyAgICAgICAgLy8gcmVncmVzc2lvbiB0ZXN0cworICAgICAgICAiXHU2NDQxXHViNDEzXHVhNzMzXHVmOGZlXHVlZWRiXHU1ODdmXHUxOTVmXHU0ODk5XHVmMjNkXHU0OWZkXHUwYWFjXHU1NzkyXHVmYzIyXHVmYzNjXHVmYzQ2XHUwMGFhIiwKKyAgICAgICAgIlx1MzBmOVx1ODMyMVx1MDVlNVx1MTgxY1x1ZDcyYlx1MjAxOVx1OTljOVx1MmYyZlx1YzEwY1x1ODJlMVx1MmM0ZFx1MWViY1x1NjAxM1x1NjZkY1x1YmJkZVx1OTRhNVx1NDcyNlx1NzRhZlx1MzA4M1x1NTViOVx1MDAwYyIsCisgICAgICAgICJcdTAwNDFcdTAwZGZcdTA0MDFcdTAxNWYiLAorICAgICAgICAiXHU5MDY2XHUyMTIzYWJjIiwKKyAgICAgICAgIlx1ZDI2Nlx1NDNkN1xcXHVlMzg2XHVjOWMwXHU0YTZiXHU5MjIyXHU5MDFmXHU3NDEwXHVhNjNmXHU1MzliXHU5NTk2XHU0ODJlXHU5ZDQ3XHVjZmU0XHU3YjcxXHVjMjgwXHVmMjZhXHU5ODJmXHU4NjJhXHU0ZWRkXHVmNTEzXHVmZGE2XHU4NjlkXHUyZWUwXHVhMjE2XHUzZmY2XHUzYzcwXHU4OWMwXHU5NTc2XHVkNWVjXHViZmRhXHU2Y2NhXHU1YmIzXHViY2VhXHU1NTRjXHU5MTRlXHVmYTRhXHVlZGUzXHUyOTkwXHVkMmY1XHUyNzI5XHU1MTQxXHUwZjI2XHVjY2Q4XHU1NDEzXHVkMTk2XHViYmUyXHU1MWI5XHU5YjQ4XHUwZGM4XHUyMTk1XHUyMWEyXHUyMWU5XHUwMGU0XHU5ZDkyXHUwYmMwXHUwNmM1IiwKKyAgICAgICAgIlx1Zjk1Ylx1MjQ1OFx1MjQ2OFx1MGUyMFx1ZjUxYlx1ZTM2ZVx1YmZjMVx1MDA4MFx1MDJkZFx1ZjFiNVx1MGNmM1x1NjA1OVx1NzQ4OSIKKworICAgIH07CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29tcHJlc3Npb24gbW9kZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNJTkdMRUJZVEVNT0RFICAgICAgICAgICAgICAgICA9IDA7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVOSUNPREVNT0RFICAgICAgICAgICAgICAgICAgICA9IDE7CisgICAgCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORVggICAgICAgICAgICAgICAgICAgPSAweDBCOworICAgIC8vcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNSRVNFUlZFRCAgICAgICAgICAgICAgICAgID0gMHgwQzsgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlc2VydmVkIHZhbHVlCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgID0gMHgwRTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSFUgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDE7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTEgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTMgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDQ7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTQgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDU7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTYgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDc7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTcgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDg7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDEgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDIgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDMgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMzsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDQgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDUgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDYgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDcgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNzsKKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE4OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMSAgICAgICAgICAgICAgICAgICAgICAgPSAweDE5OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMiAgICAgICAgICAgICAgICAgICAgICAgPSAweDFBOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMyAgICAgICAgICAgICAgICAgICAgICAgPSAweDFCOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNCAgICAgICAgICAgICAgICAgICAgICAgPSAweDFDOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNSAgICAgICAgICAgICAgICAgICAgICAgPSAweDFEOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNiAgICAgICAgICAgICAgICAgICAgICAgPSAweDFFOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNyAgICAgICAgICAgICAgICAgICAgICAgPSAweDFGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMCAgICAgICAgICAgICAgICAgICAgICAgPSAweEUwOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweEUxOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMiAgICAgICAgICAgICAgICAgICAgICAgPSAweEUyOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMyAgICAgICAgICAgICAgICAgICAgICAgPSAweEUzOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweEU0OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINSAgICAgICAgICAgICAgICAgICAgICAgPSAweEU1OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINiAgICAgICAgICAgICAgICAgICAgICAgPSAweEU2OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweEU3OworCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUwICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTg7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUxICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTk7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUE7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUzICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU0ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUM7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUQ7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUU7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU3ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUY7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVFVT1RFVSAgICAgICAgICAgICAgICAgICAgICAgID0gMHhGMDsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORVggICAgICAgICAgICAgICAgICAgICAgID0gMHhGMTsKKyAgICAvL3ByaXZhdGUgZmluYWwgc3RhdGljIGludCBVUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgICAgPSAweEYyOyAgICAgICAgIC8vIHRoaXMgaXMgYSByZXNlcnZlZCB2YWx1ZQorCisgICAgLyogUHJpbnQgb3V0IGFuIGFycmF5IG9mIGNoYXJhY3RlcnMsIHdpdGggbm9uLXByaW50YWJsZXMgKGZvciBtZSkgCisgICAgICAgZGlzcGxheWVkIGFzIGhleCB2YWx1ZXMgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJpbnRDaGFycyhjaGFyW10gY2hhcnMsIGludCBsZW4pIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYyA9IChpbnQpY2hhcnNbaV07CisgICAgICAgICAgICBpZihjIDwgMHgwMDIwIHx8IGMgPj0gMHg3ZikgeworICAgICAgICAgICAgICAgIGxvZygiWzB4Iik7CisgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgICAgIGxvZygiXSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2coU3RyaW5nLnZhbHVlT2YoKGNoYXIpYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRCeXRlcyhieXRlW10gYnl0ZUJ1ZmZlciwgaW50IGxlbikgeworICAgICAgICBpbnQgY3VyQnl0ZUluZGV4ID0gMDsKKyAgICAgICAgaW50IGJ5dGVCdWZmZXJMaW1pdCA9IGxlbjsKKyAgICAgICAgaW50IG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgaW50IGFCeXRlID0gMHgwMDsKKyAgICAgICAgCisgICAgICAgIGlmKGxlbiA+IGJ5dGVCdWZmZXIubGVuZ3RoKSB7CisgICAgICAgICAgICBsb2dsbigiV2FybmluZzogcHJpbnRCeXRlcyBjYWxsZWQgd2l0aCBsZW5ndGggdG9vIGxhcmdlLiBUcnVuY2F0aW5nIik7CisgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgPSBieXRlQnVmZmVyLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2hpbGUoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICBzd2l0Y2gobW9kZSkgeyAgCisgICAgICAgICAgICBjYXNlIFNJTkdMRUJZVEVNT0RFOgorICAgICAgICAgICAgICAgIHdoaWxlKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCAKKyAgICAgICAgICAgICAgICAgICAgICAmJiBtb2RlID09IFNJTkdMRUJZVEVNT0RFKSAgeworICAgICAgICAgICAgICAgICAgICBhQnl0ZSA9ICgoaW50KWJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkY7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGFCeXRlKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgdW5pY29kZQorICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVU9URVU6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNRVU9URVUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN3aXRjaCB0byBVbmljb2RlIG1vZGUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTU1dJVENIVToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU1NXSVRDSFUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gVU5JQ09ERU1PREU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBxdW90ZSB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1FVT1RFMDogY2FzZSBTUVVPVEUxOiBjYXNlIFNRVU9URTI6IGNhc2UgU1FVT1RFMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTUVVPVEU0OiBjYXNlIFNRVU9URTU6IGNhc2UgU1FVT1RFNjogY2FzZSBTUVVPVEU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTUVVPVEUiICsgKGFCeXRlIC0gU1FVT1RFMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIHN3aXRjaCB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1NXSVRDSDA6IGNhc2UgU1NXSVRDSDE6IGNhc2UgU1NXSVRDSDI6IGNhc2UgU1NXSVRDSDM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1NXSVRDSDQ6IGNhc2UgU1NXSVRDSDU6IGNhc2UgU1NXSVRDSDY6IGNhc2UgU1NXSVRDSDc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNTV0lUQ0giICsgKGFCeXRlIC0gU1NXSVRDSDApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBkZWZpbmUgdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkUwOiBjYXNlIFNERUZJTkUxOiBjYXNlIFNERUZJTkUyOiBjYXNlIFNERUZJTkUzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkU0OiBjYXNlIFNERUZJTkU1OiBjYXNlIFNERUZJTkU2OiBjYXNlIFNERUZJTkU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTREVGSU5FIiArIChhQnl0ZSAtIFNERUZJTkUwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZGVmaW5lIGV4dGVuZGVkIHRhZworICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkVYOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTREVGSU5FWCAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVTklDT0RFTU9ERToKKyAgICAgICAgICAgICAgICB3aGlsZShjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQgJiYgbW9kZSA9PSBVTklDT0RFTU9ERSkgeworICAgICAgICAgICAgICAgICAgICBhQnl0ZSA9ICgoaW50KWJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkY7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBkZWZpbmUgdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkUwOiBjYXNlIFVERUZJTkUxOiBjYXNlIFVERUZJTkUyOiBjYXNlIFVERUZJTkUzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkU0OiBjYXNlIFVERUZJTkU1OiBjYXNlIFVERUZJTkU2OiBjYXNlIFVERUZJTkU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVREVGSU5FIiArIChhQnl0ZSAtIFVERUZJTkUwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZGVmaW5lIGV4dGVuZGVkIHRhZworICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkVYOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVREVGSU5FWCAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBzd2l0Y2ggdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFVTV0lUQ0gwOiBjYXNlIFVTV0lUQ0gxOiBjYXNlIFVTV0lUQ0gyOiBjYXNlIFVTV0lUQ0gzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVTV0lUQ0g0OiBjYXNlIFVTV0lUQ0g1OiBjYXNlIFVTV0lUQ0g2OiBjYXNlIFVTV0lUQ0g3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVU1dJVENIIiArIChhQnl0ZSAtIFVTV0lUQ0gwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgdW5pY29kZQorICAgICAgICAgICAgICAgICAgICBjYXNlIFVRVU9URVU6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlVRVU9URVUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBhQnl0ZSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gLy8gZW5kIHN3aXRjaAorICAgICAgICAgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9IC8vIGVuZCBzd2l0Y2goIG1vZGUgKQorICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICAKKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0gICAgCit9CisKKworCisKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzM0MzViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb21wcmVzc2lvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJEZWNvbXByZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAiRXhoYXVzdGl2ZVRlc3QiLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDb21wcmVzc2lvbiI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjZiYzk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIGNvbXByZXNzaW9uIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0JpZ051bWJlckZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YjQ3MjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSw0NTEgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQHRlc3QKKyAqIEdlbmVyYWwgdGVzdCBvZiBCaWcgTnVtYmVyRm9ybWF0CisgKi8KK3B1YmxpYyBjbGFzcyBCaWdOdW1iZXJGb3JtYXRUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIGludCBJTExFR0FMID0gLTE7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEJpZ051bWJlckZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwb25lbnQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MSA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UwIiwgVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDIgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMC4jIyNFKzAiLCBVUyk7CisgICAgICAgIE51bWJlciBuID0gbmV3IExvbmcoMTIzNCk7CisgICAgICAgIGV4cGVjdChmbXQxLCBuLCAiMS4yMzRFMyIpOworICAgICAgICBleHBlY3QoZm10MiwgbiwgIjEuMjM0RSszIik7CisgICAgICAgIGV4cGVjdChmbXQxLCAiMS4yMzRFMyIsIG4pOworICAgICAgICBleHBlY3QoZm10MSwgIjEuMjM0RSszIiwgbik7IC8vIEVpdGhlciBmb3JtYXQgc2hvdWxkIHBhcnNlICJFKzMiCisgICAgICAgIGV4cGVjdChmbXQyLCAiMS4yMzRFKzMiLCBuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmdW5jdGlvbmluZyBvZiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnlHcm91cGluZygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMsIyMjIiwgVVMpOworICAgICAgICBleHBlY3QoZiwgbmV3IExvbmcoMTIzNDU2Nzg5KSwgIjEyLDM0LDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMsIyMjIik7CisgICAgICAgIGYuYXBwbHlQYXR0ZXJuKCIjLCMjIyIpOworICAgICAgICBmLnNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSg0KTsKKyAgICAgICAgZXhwZWN0KGYsIG5ldyBMb25nKDEyMzQ1Njc4OSksICIxMiwzNDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMjIywjIyMiKTsKKworICAgICAgICAvLyBPbiBTdW4gSkRLIDEuMi0xLjMsIHRoZSBoaV9JTiBsb2NhbGUgdXNlcyAnMCcgZm9yIGEgemVybyBkaWdpdCwKKyAgICAgICAgLy8gYnV0IG9uIElCTSBKREsgMS4yLTEuMywgdGhlIGxvY2FsZSB1c2VzIFUrMDk2Ni4KKyAgICAgICAgZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiaGkiLCAiSU4iKSk7CisgICAgICAgIFN0cmluZyBzdHIgPSB0cmFuc211dGUoIjEsODcsNjUsNDMsMjEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZ2V0WmVyb0RpZ2l0KCkpOworICAgICAgICBleHBlY3QoZiwgbmV3IExvbmcoMTg3NjU0MzIxMCksIHN0cik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIHBhdCwgaW50IHBvcykgeworICAgICAgICBleHBlY3RQYWQoZm10LCBwYXQsIHBvcywgMCwgKGNoYXIpMCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIHBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MsIGludCB3aWR0aCwgY2hhciBwYWQpIHsKKyAgICAgICAgaW50IGFwb3MgPSAwLCBhd2lkdGggPSAwOworICAgICAgICBjaGFyIGFwYWQgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgYXBvcyA9IGZtdC5nZXRQYWRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdpZHRoID0gZm10LmdldEZvcm1hdFdpZHRoKCk7CisgICAgICAgICAgICBhcGFkID0gZm10LmdldFBhZENoYXJhY3RlcigpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXBvcyA9IC0xOworICAgICAgICAgICAgYXdpZHRoID0gd2lkdGg7CisgICAgICAgICAgICBhcGFkID0gcGFkOworICAgICAgICB9CisgICAgICAgIGlmIChhcG9zID09IHBvcyAmJiBhd2lkdGggPT0gd2lkdGggJiYgYXBhZCA9PSBwYWQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHBhdCArICJcIiBwb3M9IiArIGFwb3MgKworICAgICAgICAgICAgICAgICAgKChwb3MgPT0gLTEpID8gIiIgOiAiIHdpZHRoPSIgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiIHBvcz0iICsgYXBvcyArCisgICAgICAgICAgICAgICAgICAiIHdpZHRoPSIgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcG9zICsgIiAiICsgd2lkdGggKyAiICIgKyBwYWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5zKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworCisgICAgICAgIGV4cGVjdFBhZChmbXQsICIqXiMiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYLCAxLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMiwgJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMqXiIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDEsICdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjJCpeIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfU1VGRklYLCAyLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeJCMiLCBJTExFR0FMKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4kIiwgSUxMRUdBTCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIncHJlJyMsIyMwKngncG9zdCciLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLAorICAgICAgICAgICAgICAgICAgMTIsICd4Jyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICInJyMwKngiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLAorICAgICAgICAgICAgICAgICAgMywgJ3gnKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidJJydsbCcqYSMjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwKKyAgICAgICAgICAgICAgICAgIDEwLCAnYScpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIkFBIywjIzAuMDBaWiIpOworICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKCdeJyk7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEwKTsKKworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1BSRUZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICIqXkFBIywjIzAuMDBaWiIpOworCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBIywjIzAuMDAqXlpaIik7CisKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwWloqXiIpOworCisgICAgICAgIC8vICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIKKyAgICAgICAgU3RyaW5nIGV4cCA9ICJBQSpeIywjIzAuMDBaWiI7CisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMik7CisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCBleHApOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMyk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjMKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIywjIzAuMDBaWiIpOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNCk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjLCMjMC4wMFpaIik7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE1KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQ1CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjIywjIzAuMDBaWiIpOyAvLyBUaGlzIGlzIHRoZSBpbnRlcmVzdGluZyBjYXNlCisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE2KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQ1NgorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMsIyMjLCMjMC4wMFpaIik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhdChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIGV4cCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBpZiAocGF0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHAgKyAnIicpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgdGhlIEFscGhhV29ya3MgQmlnRGVjaW1hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbHBoYUJpZ0RlY2ltYWwoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNjc4OTAxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEuMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjQ5OTkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ0LjUwMDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NUUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ2LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NkUzIik7CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNjaWVudGlmaWMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IERvdWJsZSgxMjM0NS42Nzg5MDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS42Nzg5MDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEuMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjM0NSksCisgICAgICAgICAgICAgICAiMTIuMzRFMyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzNDUuMDAwMDEpLAorICAgICAgICAgICAgICAgIjEyLjM1RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IEludGVnZXIoMTIzNDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoMTIzNDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS40OTk5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ0LjUwMDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NUUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNTAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0Ni41MDAwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxMi4zNDZFMyIpOworICAgICAgICAvKkZvciBJQ1UgY29tcGF0aWJpbGl0eSBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgZXhwZWN0KE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzQ1LjY3ODkwMSksCisgICAgICAgICAgICAgICAiMSwyMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSg3ODkuMTIzNDVlLTkpLAorICAgICAgICAgICAgICAgIjc4OS4xMkUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDc4MC5lLTkpLAorICAgICAgICAgICAgICAgIjc4MEUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoNDU2NzgpLAorICAgICAgICAgICAgICAgIi40NTdFNSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBMb25nKDApLAorICAgICAgICAgICAgICAgIi4wRTAiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0W10geyBuZXcgRGVjaW1hbEZvcm1hdCgiI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjBFMCIsIFVTKSwgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjAwRTAiLCBVUyksICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjAwMEUwIiwgVVMpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIG5ldyBMb25nKDQ1Njc4MDAwKSwKKyAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICI0LjU2NzhFNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDUuNjc4RTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1NjcuOEU0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1RTciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ2RTYiLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDU3RTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMDEyMyksICIxMi4zRS02IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4wMDAxMjMpLCAiMTIzRS02IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMC4wMDEyMyIpLCAiMS4yM0UtMyIsIC8vIENhZmUgVk0gbWVzc2VzIHVwIERvdWJsZSgwLjAwMTIzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAxMjMpLCAiMTIuM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMTIzKSwgIjEyM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMjMpLCAiMS4yM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIuMyksICIxMi4zRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMpLCAiMTIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMwKSwgIjEuMjNFMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAuI0UrMDAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMTIpLCAiMS4yRS0wNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9uZygxMjAwMCksICAgICAiMS4yRSswNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYWQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiKl4jIy4jIyIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICJeXl5eMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKC0xLjMpLCAiXi0xLjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjRTAqXyAnZy1tL3NeMiciLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgTG9uZygwKSwgICAgICAgIjAuMEUwX19fX19fIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAvMyksICIzMzMuMzMzRS0zXyBnLW0vc14yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjIypfICdnLW0vc14yJyIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICAiMC4wX19fX19fIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAvMyksICIwLjMzMzMzX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIqeCMsIyMjLCMjIywjIzAuMDA7KngoIywjIyMsIyMjLCMjMC4wMCkiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDApLCAgICAgICAgInh4eHh4eHh4KDEwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwKSwgICAgICAgInh4eHh4eCgxLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwKSwgICAgInh4KDEsMDAwLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwMDAwKSwgIigxLDAwMCwwMDAsMDAwLjAwKSIsCisgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBPYmplY3RbXSBkYXRhKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgZXhwZWN0KGZtdCwgKE51bWJlcikgZGF0YVtpXSwgKFN0cmluZykgZGF0YVtpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE9iamVjdCBmbXRvLCBPYmplY3QgbnVtbywgT2JqZWN0IGV4cG8pIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IG51bGwsIGZtdHNbXSA9IG51bGw7CisgICAgICAgIE51bWJlciBudW0gPSBudWxsLCBudW1zW10gPSBudWxsOworICAgICAgICBTdHJpbmcgZXhwID0gbnVsbCwgZXhwc1tdID0gbnVsbDsKKyAgICAgICAgaWYgKGZtdG8gaW5zdGFuY2VvZiBOdW1iZXJGb3JtYXRbXSkgeworICAgICAgICAgICAgZm10cyA9IChOdW1iZXJGb3JtYXRbXSkgZm10bzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZtdCA9IChOdW1iZXJGb3JtYXQpIGZtdG87CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bW8gaW5zdGFuY2VvZiBOdW1iZXJbXSkgeworICAgICAgICAgICAgbnVtcyA9IChOdW1iZXJbXSkgbnVtbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG51bSA9IChOdW1iZXIpIG51bW87CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cG8gaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgZXhwcyA9IChTdHJpbmdbXSkgZXhwbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGV4cCA9IChTdHJpbmcpIGV4cG87CisgICAgICAgIH0KKyAgICAgICAgaW50IG4gPSAxOworICAgICAgICBpZiAoZm10cyAhPSBudWxsKSB7CisgICAgICAgICAgICBuID0gTWF0aC5tYXgobiwgZm10cy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChudW1zICE9IG51bGwpIHsKKyAgICAgICAgICAgIG4gPSBNYXRoLm1heChuLCBudW1zLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cHMgIT0gbnVsbCkgeworICAgICAgICAgICAgbiA9IE1hdGgubWF4KG4sIGV4cHMubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBleHBlY3QoZm10cyA9PSBudWxsID8gZm10IDogZm10c1tpXSwKKyAgICAgICAgICAgICAgICAgICBudW1zID09IG51bGwgPyBudW0gOiBudW1zW2ldLAorICAgICAgICAgICAgICAgICAgIGV4cHMgPT0gbnVsbCA/IGV4cCA6IGV4cHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dOdW1iZXIoTnVtYmVyIG4pIHsKKyAgICAgICAgU3RyaW5nIGNscyA9IG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgICAgICAgICAgfHwgbiBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSkgeworICAgICAgICAgICAgaW50IGkgPSBjbHMubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgIGNscyA9IGNscy5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbi50b1N0cmluZygpICsgIiAoIiArIGNscyArICcpJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIFN0cmluZyBzYXcgPSBmbXQuZm9ybWF0KG4pOworICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAiICsgc2hvd051bWJlcihuKSArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIHNob3dOdW1iZXIobikgKyAiIHggIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIE51bWJlciBleHApIHsKKyAgICAgICAgTnVtYmVyIHNhdyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzYXcgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc2F3ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSArICIsIGV4cGVjdGVkICIgKyBzaG93TnVtYmVyKGV4cCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzdHJpbmcgY29tcG9zZWQgb2YgWzAtOV0gYW5kIG90aGVyIGNoYXJzLCBjb252ZXJ0IHRoZQorICAgICAqIFswLTldIGNoYXJzIHRvIGJlIG9mZnNldHMgMC4uOSBmcm9tICd6ZXJvJy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdHJhbnNtdXRlKFN0cmluZyBzdHIsIGNoYXIgemVybykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICBjID0gKGNoYXIpIChjIC0gJzAnICsgemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MTEwMCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBkb3VibGUgYSA9IC0wLjA5OworICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KGEpOworICAgICAgICBsb2dsbihhICsgIiB4ICIgKworICAgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpIGYpLnRvUGF0dGVybigpICsgIiA9ICIgKworICAgICAgICAgICAgICBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiLTAuMSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOworICAgICAgICB9CisgICAgfSAgICAgICAgCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbEoyOCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIxIiwgIjFFMCIsCisgICAgICAgICAgICAiLTEiLCAiLTFFMCIsCisgICAgICAgICAgICAiMCIsICIwRTAiLAorICAgICAgICAgICAgIjEyZTM0IiwgIjEuMkUzNSIsCisgICAgICAgICAgICAiLTEyLjNlLTQ1IiwgIi0xLjIzRS00NCIsCisgICAgICAgICAgICAiMC43M2UtNyIsICI3LjNFLTgiLAorICAgICAgICB9OworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiUGF0dGVybjogIiArICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBEQVRBW2ldOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBiZCA9IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW5wdXQpOworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IGZtdC5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJpbnB1dD0iICsgaW5wdXQgKyAiIG51bT0iICsgYmQgKyAiIG91dHB1dD0iICsgb3V0cHV0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0PSIgKyBpbnB1dCArICIgbnVtPSIgKyBiZCArICIgb3V0cHV0PSIgKyBvdXRwdXQgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHZvaWQgVGVzdEJpZ0RlY2ltYWxSb3VuZGluZygpIHsKKyAgICAgICAgLy8gamIgMzY1NworICAgICAgICBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCBqZGtGb3JtYXQ9bmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KCIjIyMsIyMjLCMjIywjIzAiKTsKKyAgICAgICAgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0IGljdUZvcm1hdD1uZXcgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0KCIjIyMsIyMjLCMjIywjIzAiKTsKKyAgICAgICAgU3RyaW5nW10gdmFsdWVzID0geworICAgICAgICAgICAgIi0xLjc0IiwgIi0xLjI0IiwgIi0wLjc0IiwgIi0wLjI0IiwgIjAuMjQiLCAiMC43NCIsICIxLjI0IiwgIjEuNzQiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsID0gdmFsdWVzW2ldOworICAgICAgICAgICAgamF2YS5tYXRoLkJpZ0RlY2ltYWwgYmQgPSBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwodmFsKTsKKyAgICAgICAgICAgIFN0cmluZyBqZGsgPSBqZGtGb3JtYXQuZm9ybWF0KGJkKTsKKyAgICAgICAgICAgIFN0cmluZyBpY3UgPSBpY3VGb3JtYXQuZm9ybWF0KGJkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXQgb2YgQmlnRGVjaW1hbCAiICsgdmFsICsgIiBieSBKREsgaXMgIiArIGpkayk7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0IG9mIEJpZ0RlY2ltYWwgIiArIHZhbCArICIgYnkgSUNVIGlzICIgKyBpY3UpOworICAgICAgICAgICAgaWYgKCFqZGsuZXF1YWxzKGljdSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQmlnRGVjaW1hbCBqZGs6ICIgKyBqZGsgKyAiICE9IGljdTogIiArIGljdSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvdWJsZSBkID0gYmQuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGpkayA9IGpka0Zvcm1hdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBpY3UgPSBpY3VGb3JtYXQuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCBvZiBkb3VibGUgIiArIHZhbCArICIgYnkgSkRLIGlzICIgKyBqZGspOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCBvZiBkb3VibGUgIiArIHZhbCArICIgYnkgSUNVIGlzICIgKyBpY3UpOworICAgICAgICAgICAgaWYgKCFqZGsuZXF1YWxzKGljdSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZG91YmxlIGpkazogIiArIGpkayArICIgIT0gaWN1OiAiICsgaWN1KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKy8vI2VuZGlmCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdE1pc2NUZXN0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlNmJiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YQpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IERhdGVGb3JtYXRNaXNjVGVzdHMKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L21pc2NkdGZtLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKiogCisgKiBQZXJmb3JtcyBtaXNjZWxsYW5lb3VzIHRlc3RzIGZvciBEYXRlRm9ybWF0LCBTaW1wbGVEYXRlRm9ybWF0LCBEYXRlRm9ybWF0U3ltYm9scworICoqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXRNaXNjVGVzdHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgRGF0ZUZvcm1hdE1pc2NUZXN0cygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBAYnVnIDQwOTc0NTAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NzQ1MCgpIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gRGF0ZSBwYXJzZSByZXF1aXJpbmcgNCBkaWdpdCB5ZWFyLgorICAgICAgICAvLworICAgICAgICBTdHJpbmcgZHN0cmluZ1tdID0geworICAgICAgICAgICAgIjk3IiwgIjE5OTciLCAiOTciLCAiMTk5NyIsICIwMSIsICIyMDAxIiwgIjAxIiwgIjIwMDEiLAorICAgICAgICAgICAgICIxIiwgIjEiLCAiMTEiLCAiMTEiLCAiMTExIiwgIjExMSJ9OyAKKyAgICAKKyAgICAgICAgU3RyaW5nIGRmb3JtYXRbXSA9IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJ5eSIsICJ5eSIsICJ5eXl5IiwgInl5eXkiLCAieXkiLCAieXkiLCAieXl5eSIsICJ5eXl5IiwgCisgICAgICAgICAgICAgICAgInl5IiwgInl5eXkiLCAieXkiLCAieXl5eSIsICJ5eSIsICJ5eXl5In07ICAgICAgICAgCisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHJlc3VsdEZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5Iik7CisgICAgICAgIGxvZ2xuKCJGb3JtYXRcdFNvdXJjZVx0UmVzdWx0Iik7CisgICAgICAgIGxvZ2xuKCItLS0tLS0tXHQtLS0tLS0tXHQtLS0tLS0tIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZHN0cmluZy5sZW5ndGggOyBpKyspIHsKKyAgICAgICAgICAgIGxvZyhkZm9ybWF0W2ldICsgIlx0IiArIGRzdHJpbmdbaV0gKyAiXHQiKTsKKyAgICAgICAgICAgIGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRmb3JtYXRbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBsb2dsbihyZXN1bHRGb3JtYXR0ZXIuZm9ybWF0KGZvcm1hdHRlci5wYXJzZShkc3RyaW5nW2ldKSwgc3RyLCBwb3MpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXhjZXB0aW9uIC0tPiAiICsgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBAQnVnIDQwOTk5NzUKKyAgICAgKiBTaW1wbGVEYXRlRm9ybWF0IGNvbnN0cnVjdG9yIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nLCBEYXRlRm9ybWF0U3ltYm9scykKKyAgICAgKiBzaG91bGQgY2xvbmUgdGhlIERhdGVGb3JtYXRTeW1ib2xzIHBhcmFtZXRlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk5OTc1bmV3KCkgeworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgpOworICAgICAgICAvL3Rlc3QgU2ltcGxlRGF0ZUZvcm1hdCBDb25zdHJ1Y3RvcgorICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkUgaGg6bW0iLCBzeW1ib2xzKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGZDbG9uZSA9IChTaW1wbGVEYXRlRm9ybWF0KSBkZi5jbG9uZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczAgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBTdHJpbmcgc19kZkNsb25lID0gZGZDbG9uZS5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN5bWJvbHMuc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoImFiY2RlZmdoaWprbG1vbnBxciIpOyAvLyBjaGFuZ2UgdmFsdWUgb2YgZmllbGQKKyAgICAgICAgICAgIGxvZ2xuKGRmLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IGRmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFzMS5lcXVhbHMoczApIHx8ICFzMS5lcXVhbHMoc19kZkNsb25lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvcjogdGhlIGZvcm1hdHMgYXJlIG5vdCBlcXVhbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGhlIENsb25lIE9iamVjdCBkb2VzIG5vdCBlcXVhbCB3aXRoIHRoZSBvcmlnbmFsIHNvdXJjZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vdGVzdCBTaW1wbGVEYXRlRm9ybWF0LnNldERhdGVGb3JtYXRTeW1ib2xzKCkKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGhoOm1tIik7CisgICAgICAgICAgICBkZi5zZXREYXRlRm9ybWF0U3ltYm9scyhzeW1ib2xzKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGZDbG9uZSA9IChTaW1wbGVEYXRlRm9ybWF0KSBkZi5jbG9uZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczAgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBTdHJpbmcgc19kZkNsb25lID0gZGZDbG9uZS5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN5bWJvbHMuc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoImFiY2RlZmdoaWprbG1vbnBxciIpOyAvLyBjaGFuZ2UgdmFsdWUgb2YgZmllbGQKKyAgICAgICAgICAgIGxvZ2xuKGRmLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IGRmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFzMS5lcXVhbHMoczApIHx8ICFzMS5lcXVhbHMoc19kZkNsb25lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzZXREYXRlRm9ybWF0U3ltYm9sczogdGhlIGZvcm1hdHMgYXJlIG5vdCBlcXVhbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGhlIENsb25lIE9iamVjdCBkb2VzIG5vdCBlcXVhbCB3aXRoIHRoZSBvcmlnbmFsIHNvdXJjZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQGJ1ZyA0MTE3MzM1CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTczMzUoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBiYyA9ICJcdTdEMDBcdTUxNDNcdTUyNEQiOworICAgICAgICBmaW5hbCBTdHJpbmcgYWQgPSAiXHU4OTdmXHU2NmE2IjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGpzdExvbmcgPSAiXHU2NWU1XHU2NzJjXHU2YTE5XHU2ZTk2XHU2NjQyIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGpkdExvbmcgPSAiXHU2NWU1XHU2NzJjXHU1OTBmXHU2NjQyXHU5NTkzIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGpzdFNob3J0ID0gIkpTVCI7CisgICAgICAgIGZpbmFsIFN0cmluZyBqZHRTaG9ydCA9ICJKRFQiOworICAgICAgICBmaW5hbCBTdHJpbmcgdHpJRCA9ICJBc2lhL1Rva3lvIjsKKworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5KQVBBTik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBzeW1ib2xzLmdldEVyYXMoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoIkJDID0iLCBiYywgZXJhc1swXSk7CisgICAgICAgIGFzc2VydEVxdWFscygiQUQgPSIsIGFkLCBlcmFzWzFdKTsKKworICAgICAgICAvLyBkb24ndCB1c2UgaGFyZC1jb2RlZCBpbmRleCEKKyAgICAgICAgZmluYWwgU3RyaW5nIHpvbmVzW11bXSA9IHN5bWJvbHMuZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICAgICAgaW50IGluZGV4ID0gLTE7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0eklELmVxdWFscyh6b25lc1tpXVswXSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZmluZCAiICsgdHpJRCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkxvbmcgem9uZSBuYW1lID0gIiwganN0TG9uZywgem9uZXNbaW5kZXhdWzFdKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiU2hvcnQgem9uZSBuYW1lID0gIiwganN0U2hvcnQsIHpvbmVzW2luZGV4XVsyXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkxvbmcgem9uZSBuYW1lICgzKSA9ICIsIGpkdExvbmcsIHpvbmVzW2luZGV4XVszXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlNob3J0IHpvbmUgbmFtZSAoNCkgPSAiLCBqZHRTaG9ydCwgem9uZXNbaW5kZXhdWzRdKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMzJiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtcmd0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJlZ3Jlc3Npb24gdGVzdCBmb3IgRGF0ZUZvcm1hdAorICoqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDAyOTE5NQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDI5MTk1KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIHRvZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oInRvZGF5OiAiICsgdG9kYXkpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgcGF0ID0gc2RmLnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigicGF0dGVybjogIiArIHBhdCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBmbXRkID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGZtdGQgPSBzZGYuZm9ybWF0KHRvZGF5LCBmbXRkLCBwb3MpOworICAgICAgICBsb2dsbigidG9kYXk6ICIgKyBmbXRkKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiRyB5eXl5IERERCIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdG9kYXlTID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIHRvZGF5UyA9IHNkZi5mb3JtYXQodG9kYXksIHRvZGF5UywgcG9zKTsKKyAgICAgICAgbG9nbG4oInRvZGF5OiAiICsgdG9kYXlTKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRvZGF5ID0gc2RmLnBhcnNlKHRvZGF5Uy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b2RheSBkYXRlOiAiICsgdG9kYXkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHJlcGFyc2luZyBkYXRlOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcnQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIHJ0ID0gc2RmLmZvcm1hdChzZGYucGFyc2UodG9kYXlTLnRvU3RyaW5nKCkpLCBydCwgcG9zKTsKKyAgICAgICAgICAgIGxvZ2xuKCJyb3VuZCB0cmlwOiAiICsgcnQpOworICAgICAgICAgICAgaWYgKCFydC50b1N0cmluZygpLmVxdWFscyh0b2RheVMudG9TdHJpbmcoKSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIHRvZGF5UyArICIgR290ICIgKyBydCk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA1MjQwOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyNDA4KCkgeworICAgIAorICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOyAKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoOTcgKyAxOTAwLCBDYWxlbmRhci5NQVksIDMsIDgsIDU1KTsKKyAgICAgICAgRGF0ZSBkdCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQuZm9ybWF0KGR0KTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3RyLmVxdWFscygiNS8zLzk3IDg6NTUgQU0iKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBUZXN0IGJyb2tlbjsgV2FudCA1LzMvOTcgODo1NSBBTSBHb3QgIiArIHN0cik7CisgICAgCisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geworICAgICAgICAgICAgIiIsIC8vIkVSQV9GSUVMRCIsCisgICAgICAgICAgICAiOTciLCAvLyJZRUFSX0ZJRUxEIiwKKyAgICAgICAgICAgICI1IiwgLy8iTU9OVEhfRklFTEQiLAorICAgICAgICAgICAgIjMiLCAvLyJEQVRFX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJIT1VSX09GX0RBWTFfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkhPVVJfT0ZfREFZMF9GSUVMRCIsCisgICAgICAgICAgICAiNTUiLCAvLyJNSU5VVEVfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIlNFQ09ORF9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iTUlMTElTRUNPTkRfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkRBWV9PRl9XRUVLX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJEQVlfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIldFRUtfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iV0VFS19PRl9NT05USF9GSUVMRCIsCisgICAgICAgICAgICAiQU0iLCAvLyJBTV9QTV9GSUVMRCIsCisgICAgICAgICAgICAiOCIsIC8vIkhPVVIxX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJIT1VSMF9GSUVMRCIsCisgICAgICAgICAgICAiIiAvLyJUSU1FWk9ORV9GSUVMRCIKKyAgICAgICAgICAgIH07ICAgICAgICAKKyAgICAgICAgU3RyaW5nIGZpZWxkTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICAgICAiRVJBX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIllFQVJfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFURV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJIT1VSX09GX0RBWTFfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUl9PRl9EQVkwX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIk1JTlVURV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJTRUNPTkRfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiTUlMTElTRUNPTkRfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1dFRUtfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1lFQVJfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiV0VFS19PRl9ZRUFSX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIldFRUtfT0ZfTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiQU1fUE1fRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUjFfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUjBfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiVElNRVpPTkVfRklFTEQifTsgCisgICAgCisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDE3OyArK2kpIHsKKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oaSk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBmbXQuZm9ybWF0KGR0LCBidWYsIHBvcyk7CisgICAgICAgICAgICAvL2NoYXJbXSBkc3QgPSBuZXcgY2hhcltwb3MuZ2V0RW5kSW5kZXgoKSAtIHBvcy5nZXRCZWdpbkluZGV4KCldOworICAgICAgICAgICAgU3RyaW5nIGRzdCA9IGJ1Zi5zdWJzdHJpbmcocG9zLmdldEJlZ2luSW5kZXgoKSwgcG9zLmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgc3RyID0gZHN0OworICAgICAgICAgICAgbG9nKGkgKyAiOiAiICsgZmllbGROYW1lc1tpXSArICIsIFwiIiArIHN0ciArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICArIHBvcy5nZXRCZWdpbkluZGV4KCkgKyAiLCAiICsgcG9zLmdldEVuZEluZGV4KCkpOyAKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBleHBlY3RlZFtpXTsKKyAgICAgICAgICAgIGlmICgoZXhwLmxlbmd0aCgpID09IDAgJiYgc3RyLmxlbmd0aCgpID09IDApIHx8IHN0ci5lcXVhbHMoZXhwKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiIG9rIik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3MpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRmllbGRQb3NpdGlvbiBub3Qgc2V0IHJpZ2h0IGJ5IERhdGVGb3JtYXQiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDU2NTkxCisgICAgICogVmVyaWZ5IHRoZSBmdW5jdGlvbiBvZiB0aGUgW3N8Z11ldDJEaWdpdFllYXJTdGFydCgpIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1NjU5MSgpIHsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5TU1kZCIsIExvY2FsZS5VUyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE4MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgICAgICBEYXRlIHN0YXJ0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGZtdC5zZXQyRGlnaXRZZWFyU3RhcnQoc3RhcnQpOworICAgICAgICAgICAgaWYgKChmbXQuZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgIT0gc3RhcnQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJnZXQyRGlnaXRZZWFyU3RhcnQgYnJva2VuIik7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTgwOSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgICAgIERhdGUgZDEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNCk7CisgICAgICAgICAgICBEYXRlIGQyID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxODA5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjYpOworICAgICAgICAgICAgRGF0ZSBkMyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTg2MSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgICAgIERhdGUgZDQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEYXRlIGRhdGVzW10gPSB7ZDEsIGQyLCBkMywgZDR9OworICAgIAorICAgICAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsiMDkxMjI1IiwgIjA5MTIyNCIsICIwOTEyMjYiLCAiNjExMjI1In07ICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gc3RyaW5nc1tpXTsKKyAgICAgICAgICAgICAgICBEYXRlIGV4cCA9IGRhdGVzW2ldOworICAgICAgICAgICAgICAgIERhdGUgZ290ID0gZm10LnBhcnNlKHMpOworICAgICAgICAgICAgICAgIGxvZ2xuKHMgKyAiIC4gIiArIGdvdCArICI7IGV4cCAiICsgZXhwKTsKKyAgICAgICAgICAgICAgICBpZiAoZ290LmdldFRpbWUoKSAhPSBleHAuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigic2V0MkRpZ2l0WWVhclN0YXJ0IGJyb2tlbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNTk5MTcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1OTkxNygpIHsgICAgICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdDsKKyAgICAgICAgU3RyaW5nIG15RGF0ZTsKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkvTU0vZGQiKTsKKyAgICAgICAgbXlEYXRlID0gIjE5OTcvMDEvMDEiOworICAgICAgICBhdXg5MTcoIGZtdCwgbXlEYXRlICk7ICAgICAgICAKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3MDEwMSI7CisgICAgICAgIGF1eDkxNyggZm10LCBteURhdGUgKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYXV4OTE3KFNpbXBsZURhdGVGb3JtYXQgZm10LCBTdHJpbmcgc3RyKSB7CisgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgbG9nbG4oInRlc3RJdDogcGF0dGVybj0iICsgcGF0ICsgIiBzdHJpbmc9IiArIHN0cik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE9iamVjdCBvID0gZm10LnBhcnNlT2JqZWN0KHN0ciwgcG9zKTsKKyAgICAgICAgLy9sb2dsbiggVW5pY29kZVN0cmluZygiUGFyc2VkIG9iamVjdDogIikgKyBvICk7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBmb3JtYXR0ZWQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3NzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGZvcm1hdHRlZCA9IGZtdC5mb3JtYXQobywgZm9ybWF0dGVkLCBwb3NzKTsKKyAgICAKKyAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCBzdHJpbmc6ICIgKyBmb3JtYXR0ZWQpOworICAgICAgICBpZiAoIWZvcm1hdHRlZC50b1N0cmluZygpLmVxdWFscyhzdHIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIHN0ciArICIgR290ICIgKyBmb3JtYXR0ZWQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjAyMTIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MDIxMigpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiMTk5NS0wNDAuMDU6MDE6MjkiOworICAgICAgICBsb2dsbigiZGF0ZVN0cmluZz0gIiArIGRhdGVTdHJpbmcpOworICAgICAgICBsb2dsbigiVXNpbmcgeXl5eS1EREQuaGg6bW06c3MiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1EREQuaGg6bW06c3MiKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkxPTkcpOyAKKyAgICAgICAgU3RyaW5nIG15U3RyaW5nID0gZm10LmZvcm1hdChteURhdGUpOworICAgICAgICBsb2dsbihteVN0cmluZyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZShteURhdGUpOworICAgICAgICBpZiAoKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDQwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBHb3QgIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICsgIiBXYW50IDQwIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJVc2luZyB5eXl5LWRkZC5oaDptbTpzcyIpOworICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1kZGQuaGg6bW06c3MiKTsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOworICAgICAgICBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgbXlTdHJpbmcgPSBmbXQuZm9ybWF0KG15RGF0ZSk7CisgICAgICAgIGxvZ2xuKG15U3RyaW5nKTsKKyAgICAgICAgY2FsLnNldFRpbWUobXlEYXRlKTsKKyAgICAgICAgaWYgKChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSA0MCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogR290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSArICIgV2FudCA0MCIpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjEyODcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MTI4NygpIHsKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC9NTS95eXl5Iik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihkZi5wYXJzZSgiMzUvMDEvMTk3MSIpLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBkZi5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYucGFyc2UoIjM1LzAxLzE5NzEiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgb2sgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICBlcnJsbigiRmFpbDogTGVuaWVudCBub3Qgd29ya2luZyIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjUyNDAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2NTI0MCgpIHsKKyAgICAgICAgRGF0ZSBjdXJEYXRlOworICAgICAgICBEYXRlRm9ybWF0IHNob3J0ZGF0ZSwgZnVsbGRhdGU7CisgICAgICAgIFN0cmluZyBzdHJTaG9ydERhdGUsIHN0ckZ1bGxEYXRlOworICAgICAgICBMb2NhbGUgc2F2ZUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlIGN1ckxvY2FsZSA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIik7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChjdXJMb2NhbGUpOworICAgICAgICAgICAgLy8ge3NmYn0gYWRvcHREZWZhdWx0IGluc3RlYWQgb2Ygc2V0RGVmYXVsdAorICAgICAgICAgICAgLy9UaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmNyZWF0ZVRpbWVab25lKCJFU1QiKSk7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKSk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDk4ICsgMTkwMCwgMCwgMSk7CisgICAgICAgICAgICBjdXJEYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIHNob3J0ZGF0ZSA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICAgICAgZnVsbGRhdGUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcpOworICAgICAgICAgICAgc3RyU2hvcnREYXRlID0gIlRoZSBjdXJyZW50IGRhdGUgKHNob3J0IGZvcm0pIGlzICI7CisgICAgICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgICAgIHRlbXAgPSBzaG9ydGRhdGUuZm9ybWF0KGN1ckRhdGUpOworICAgICAgICAgICAgc3RyU2hvcnREYXRlICs9IHRlbXA7CisgICAgICAgICAgICBzdHJGdWxsRGF0ZSA9ICJUaGUgY3VycmVudCBkYXRlIChsb25nIGZvcm0pIGlzICI7CisgICAgICAgICAgICBTdHJpbmcgdGVtcDIgPSBmdWxsZGF0ZS5mb3JtYXQoY3VyRGF0ZSk7CisgICAgICAgICAgICBzdHJGdWxsRGF0ZSArPSB0ZW1wMjsKKyAgICAKKyAgICAgICAgICAgIGxvZ2xuKHN0clNob3J0RGF0ZSk7CisgICAgICAgICAgICBsb2dsbihzdHJGdWxsRGF0ZSk7CisgICAgCisgICAgICAgICAgICAvLyB7c2ZifSBXaGF0IHRvIGRvIHdpdGggcmVzb3VyY2UgYnVuZGxlIHN0dWZmPz8/Pz8KKyAgICAKKyAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudDsgaWYgbm90LCB3ZSBjYW4ndCB0ZXN0CisgICAgICAgICAgICAvL1Jlc291cmNlQnVuZGxlIGJ1bmRsZSA9IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgICAgIC8vICAgIElDVUxvY2FsZURhdGEuZ2V0QnVuZGxlKCJEYXRlRm9ybWF0Wm9uZURhdGEiLCBjdXJMb2NhbGUpOyAKKyAgICAKKyAgICAgICAgICAgIC8vIHtzZmJ9IEFQSSBjaGFuZ2UgdG8gUmVzb3VyY2VCdW5kbGUgLS0gYWRkIGdldExvY2FsZSgpCisgICAgICAgICAgICAvKmlmIChidW5kbGUuZ2V0TG9jYWxlKCkuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImRlIikpIHsKKyAgICAgICAgICAgICAgICAvLyBVUERBVEUgVEhJUyBBUyBaT05FIE5BTUUgUkVTT1VSQ0UgRk9SIDxFU1Q+IGluIGRlX0RFIGlzIHVwZGF0ZWQKKyAgICAgICAgICAgICAgICBpZiAoIXN0ckZ1bGxEYXRlLmVuZHNXaXRoKCJHTVQtMDU6MDAiKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgR01ULTA1OjAwIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogVEVTVCBDT1VMRCBOT1QgQkUgQ09NUExFVEVEIEJFQ0FVU0UgRGF0ZUZvcm1hdFpvbmVEYXRhICoqKiIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogRk9SIExPQ0FMRSBkZSBPUiBkZV9ERSBJUyBNSVNTSU5HICoqKiIpOworICAgICAgICAgICAgfSovCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlTG9jYWxlKTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZVpvbmUpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qCisgICAgICBEYXRlRm9ybWF0LmVxdWFscyBpcyB0b28gbmFycm93bHkgZGVmaW5lZC4gIEFzIGEgcmVzdWx0LCBNZXNzYWdlRm9ybWF0CisgICAgICBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseS4gIERhdGVGb3JtYXQuZXF1YWxzIG5lZWRzIHRvIGJlIHdyaXR0ZW4gc28KKyAgICAgIHRoYXQgdGhlIENhbGVuZGFyIHN1Yi1vYmplY3QgaXMgbm90IGNvbXBhcmVkIHVzaW5nIENhbGVuZGFyLmVxdWFscywKKyAgICAgIGJ1dCByYXRoZXIgY29tcGFyZWQgZm9yIGVxdWl2YWxlbmN5LiAgVGhpcyBtYXkgbmVjZXNzaXRhdGUgYWRkaW5nIGEKKyAgICAgIChwYWNrYWdlIHByaXZhdGUpIG1ldGhvZCB0byBDYWxlbmRhciB0byB0ZXN0IGZvciBlcXVpdmFsZW5jeS4KKyAgICAgIAorICAgICAgQ3VycmVudGx5IHRoaXMgYnVnIGJyZWFrcyBNZXNzYWdlRm9ybWF0LnRvUGF0dGVybgorICAgICAgKi8KKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNzE0NDEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTQ0MSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXRBID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdEIgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgCisgICAgICAgIC8vIHtzZmJ9IElzIGl0IE9LIHRvIGNhc3QgYXdheSBjb25zdCBoZXJlPworICAgICAgICBDYWxlbmRhciBjYWxBID0gZm10QS5nZXRDYWxlbmRhcigpOworICAgICAgICBDYWxlbmRhciBjYWxCID0gZm10Qi5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWxBLmNsZWFyKCk7CisgICAgICAgIGNhbEEuc2V0KDE5MDAsIDAgLDApOworICAgICAgICBjYWxCLmNsZWFyKCk7CisgICAgICAgIGNhbEIuc2V0KDE5MDAsIDAsIDApOworICAgICAgICBpZiAoIWNhbEEuZXF1YWxzKGNhbEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbid0IGNvbXBsZXRlIHRlc3Q7IENhbGVuZGFyIGluc3RhbmNlcyB1bmVxdWFsIik7CisgICAgICAgIGlmICghZm10QS5lcXVhbHMoZm10QikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCB1bmVxdWFsIHdoZW4gQ2FsZW5kYXJzIGVxdWFsIik7CisgICAgICAgIGNhbEIuY2xlYXIoKTsKKyAgICAgICAgY2FsQi5zZXQoMTk2MSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgaWYgKGNhbEEuZXF1YWxzKGNhbEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbid0IGNvbXBsZXRlIHRlc3Q7IENhbGVuZGFyIGluc3RhbmNlcyBlcXVhbCIpOworICAgICAgICBpZiAoIWZtdEEuZXF1YWxzKGZtdEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERhdGVGb3JtYXQgdW5lcXVhbCB3aGVuIENhbGVuZGFycyBlcXVpdmFsZW50Iik7CisgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0LmVxdWFscyBvayIpOworICAgIH0KKyAgICAgICAgCisgICAgLyogVGhlIGphdmEudGV4dC5EYXRlRm9ybWF0LnBhcnNlKFN0cmluZykgbWV0aG9kIGV4cGVjdHMgZm9yIHRoZQorICAgICAgVVMgbG9jYWxlIGEgc3RyaW5nIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gbW0vZGQveXkgYW5kIHBhcnNlcyBpdAorICAgICAgY29ycmVjdGx5LgorICAgIAorICAgICAgV2hlbiBnaXZlbiBhIHN0cmluZyBtbS9kZC95eXl5IGl0IG9ubHkgcGFyc2VzIHVwIHRvIHRoZSBmaXJzdAorICAgICAgdHdvIHkncywgdHlwaWNhbGx5IHJlc3VsdGluZyBpbiBhIGRhdGUgaW4gdGhlIHllYXIgMTkxOS4KKyAgICAgIAorICAgICAgUGxlYXNlIGV4dGVuZCB0aGUgcGFyc2luZyBtZXRob2QocykgdG8gaGFuZGxlIHN0cmluZ3Mgd2l0aAorICAgICAgZm91ci1kaWdpdCB5ZWFyIHZhbHVlcyAocHJvYmFibHkgYWxzbyBhcHBsaWNhYmxlIHRvIHZhcmlvdXMKKyAgICAgIG90aGVyIGxvY2FsZXMuICAqLworICAgIC8qKgorICAgICAqIEBidWcgNDA3MzAwMworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczMDAzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7IjEyLzI1LzYxIiwgIjEyLzI1LzE5NjEiLCAiNC8zLzIwMTAiLCAiNC8zLzEwIn07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKz0gMikgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSh0ZXN0c1tpXSk7CisgICAgICAgICAgICAgICAgRGF0ZSBkZCA9IGZtdC5wYXJzZSh0ZXN0c1tpICsgMV0pOworICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczsKKyAgICAgICAgICAgICAgICBzcyA9IGZtdC5mb3JtYXQoZGQpOworICAgICAgICAgICAgICAgIGlmIChkLmdldFRpbWUoKSAhPSBkZC5nZXRUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZCArICIgIT0gIiArIGRkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKHNzKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBzICsgIiAhPSAiICsgc3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHMgKyAiICIgKyBkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0gICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA4OTEwNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg5MTA2KCkgeworICAgICAgICBUaW1lWm9uZSBkZWYgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKChpbnQpICgxLjI1ICogMzYwMDAwMCksICJGQUtFWk9ORSIpOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh6KTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgICAgICBpZiAoIWYuZ2V0VGltZVpvbmUoKS5lcXVhbHMoeikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFNpbXBsZVRpbWVab25lIHNob3VsZCB1c2UgVGltZVpvbmUuZ2V0RGVmYXVsdCgpIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGRlZik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAwMzAyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDAzMDIoKSB7CisgICAgICAgIAorICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0geworICAgICAgICAgICAgTG9jYWxlLkNBTkFEQSwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsIExvY2FsZS5DSElOQSwgCisgICAgICAgICAgICBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkVOR0xJU0gsIExvY2FsZS5GUkFOQ0UsIExvY2FsZS5GUkVOQ0gsIAorICAgICAgICAgICAgTG9jYWxlLkdFUk1BTiwgTG9jYWxlLkdFUk1BTlksIExvY2FsZS5JVEFMSUFOLCBMb2NhbGUuSVRBTFksIAorICAgICAgICAgICAgTG9jYWxlLkpBUEFOLCBMb2NhbGUuSkFQQU5FU0UsIExvY2FsZS5LT1JFQSwgTG9jYWxlLktPUkVBTiwgCisgICAgICAgICAgICBMb2NhbGUuUFJDLCBMb2NhbGUuU0lNUExJRklFRF9DSElORVNFLCBMb2NhbGUuVEFJV0FOLCAKKyAgICAgICAgICAgIExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBMb2NhbGUuVUssIExvY2FsZS5VU307IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjE7IGkrKykgeworICAgICAgICAgICAgICAgIEZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGxvY2FsZXNbaV0pOyAKKyAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGZvcm1hdCk7CisgICAgICAgICAgICAgICAgb29zLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgYmFvcy5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgbyA9IG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFmb3JtYXQuZXF1YWxzKG8pKSB7CisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgaW5zdGFuY2UgZm9yIGxvY2FsZSAiICsgbG9jYWxlc1tpXSArICIgaXMgaW5jb3JyZWN0bHkgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQuIik7IAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0IGluc3RhbmNlIGZvciBsb2NhbGUgIiArIGxvY2FsZXNbaV0gKyAiIGlzIE9LQVkuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFwYXNzKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEYXRlRm9ybWF0IHNlcmlhbGl6YXRpb24vZXF1YWxpdHkgYnVnIik7CisgICAgICAgIH0gY2F0Y2ggKE9wdGlvbmFsRGF0YUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAxNDgzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDE0ODMoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiLCBMb2NhbGUuVVMpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDkyMzQ1Njc4OTBMKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBzZGYuZm9ybWF0KGQsIGJ1ZiwgZnApOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KGQsIGJ1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbigiYmVnaW5JbmRleCA9ICIgKyBmcC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBsb2dsbigiZW5kSW5kZXggPSAiICsgZnAuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIGlmIChmcC5nZXRCZWdpbkluZGV4KCkgPT0gZnAuZ2V0RW5kSW5kZXgoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFbXB0eSBmaWVsZCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDMzNDAKKyAgICAgKiBAYnVnIDQxMzgyMDMKKyAgICAgKiBUaGlzIGJ1ZyByZWFsbHkgb25seSB3b3JrcyBpbiBMb2NhbGUuVVMsIHNpbmNlIHRoYXQncyB3aGF0IHRoZSBsb2NhbGUKKyAgICAgKiB1c2VkIGZvciBEYXRlLnRvU3RyaW5nKCkgaXMuICBCdWcgNDEzODIwMyByZXBvcnRzIHRoYXQgaXQgZmFpbHMgb24gS29yZWFuCisgICAgICogTlQ7IGl0IHdvdWxkIGFjdHVhbGx5IGhhdmUgZmFpbGVkIG9uIGFueSBub24tVVMgbG9jYWxlLiAgTm93IGl0IHNob3VsZAorICAgICAqIHdvcmsgb24gYWxsIGxvY2FsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMzNDAoKSB7CisgICAgCisgICAgICAgIC8vIGNob29zZSBhIGRhdGUgdGhhdCBpcyB0aGUgRklSU1Qgb2Ygc29tZSBtb250aCAKKyAgICAgICAgLy8gYW5kIHNvbWUgYXJiaXRyYXJ5IHRpbWUKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMywgMSwgMSwgMSwgMSk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7IAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTU0iLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgcyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHMyID0gZGYuZm9ybWF0KGQsIHMyLCBwb3MpOworICAgICAgICBsb2dsbigiRGF0ZT0iICsgcyk7IAorICAgICAgICBsb2dsbigiREY9IiArIHMyKTsKKyAgICAgICAgU3RyaW5nIHN1YnN0ciA9IHMyLnN1YnN0cmluZygwLDIpOworICAgICAgICBpZiAocy5pbmRleE9mKHN1YnN0cikgPT0gLTEpCisgICAgICAgICAgZXJybG4oIk1vbnRocyBzaG91bGQgbWF0Y2giKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAzMzQxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMzNDEoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8ge3NmYn0gY2hhbmdlZCBmcm9tIGFkb3B0RGVmYXVsdCB0byBzZXREZWZhdWx0CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJDU1QiKSk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNpbXBsZSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5IEhIOm1tIik7CisgICAgICAgICAgICBUaW1lWm9uZSB0ZW1wID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaWYgKCFzaW1wbGUuZ2V0VGltZVpvbmUoKS5lcXVhbHModGVtcCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFNpbXBsZURhdGVGb3JtYXQgbm90IHVzaW5nIGRlZmF1bHQgem9uZSIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTA0MTM2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDQxMzYoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiJ3RpbWUnIGhoOm1tIjsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsidGltZSAxMDozMCIsICJ0aW1lIDEwOngiLCAidGltZSAxMHgifTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zW10gPSB7bmV3IFBhcnNlUG9zaXRpb24oMTApLCBuZXcgUGFyc2VQb3NpdGlvbigwKSwgbmV3IFBhcnNlUG9zaXRpb24oMCl9OworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTcwLCBDYWxlbmRhci5KQU5VQVJZLCAxLCAxMCwgMzApOworICAgICAgICBEYXRlIGRhdGVzW10gPSB7Y2FsLmdldFRpbWUoKSwgbmV3IERhdGUoLTEpLCBuZXcgRGF0ZSgtMSl9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzdHJpbmdzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBmaW5pc2ggPSBwcG9zW2ldOworICAgICAgICAgICAgRGF0ZSBleHAgPSBkYXRlc1tpXTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBEYXRlIGQgPSBzZGYucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIpOworICAgICAgICAgICAgbG9nbG4oIiBpbmRleDogJWQiICsgcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgbG9nbG4oIiByZXN1bHQ6ICIgKyBkKTsKKyAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBmaW5pc2guZ2V0SW5kZXgoKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgcG9zICIgKyBmaW5pc2guZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBpZiAoISgoZCA9PSBudWxsICYmIGV4cC5lcXVhbHMobmV3IERhdGUoLTEpKSkgfHwgKGQuZXF1YWxzKGV4cCkpKSkKKyAgICAgICAgICAgICAgICBlcnJsbiggIkZhaWw6IEV4cGVjdGVkIHJlc3VsdCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDQ1MjIKKyAgICAgKiBDQU5OT1QgUkVQUk9EVUNFCisgICAgICogQWNjb3JkaW5nIHRvIHRoZSBidWcgcmVwb3J0LCB0aGlzIHRlc3Qgc2hvdWxkIHRocm93IGEKKyAgICAgKiBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGR1cmluZyB0aGUgc2Vjb25kIHBhcnNlLiAgSG93ZXZlciwKKyAgICAgKiB0aGlzIGlzIG5vdCBzZWVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA0NTIyKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gIid0aW1lJyBoaDptbSI7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBwYXR0ZXJuICsgIlwiIik7CisgICAgICAgIC8vIHdvcmtzIGNvcnJlY3RseQorICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRpbWUgIjsKKyAgICAgICAgRGF0ZSBkdCA9IHNkZi5wYXJzZSh0ZXh0LCBwcCk7CisgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIgKyAiIGRhdGU6ICIgKyBkdCk7CisgICAgICAgIC8vIHdvcmtzIHdyb25nCisgICAgICAgIHBwLnNldEluZGV4KDApOworICAgICAgICB0ZXh0ID0gInRpbWUiOworICAgICAgICBkdCA9IHNkZi5wYXJzZSh0ZXh0LCBwcCk7CisgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIgKyAiIGRhdGU6ICIgKyBkdCk7ICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDY4MDcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjgwNygpIHsKKyAgICAgICAgRGF0ZSBkdDsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZnNbXSA9IHsKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MiKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJ1onIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcycnIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcydhJydhJyIpLCAKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MgJSIpfTsgCisgICAgICAgIFN0cmluZyBzdHJpbmdzW10gPSB7CisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwYSIsIAorICAgICAgICAgICAgICAgICIxOTk4MDIxMTE0MDAwMCAifTsgCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIFRpbWVab25lIHRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBnbXQgPSAoVGltZVpvbmUpIHRpbWVab25lLmNsb25lKCk7CisgICAgICAgIGdtdC5zZXRSYXdPZmZzZXQoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IHNkZnNbaV07CisgICAgICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvcm1hdC5zZXRUaW1lWm9uZShnbXQpOworICAgICAgICAgICAgICAgIGR0ID0gZm9ybWF0LnBhcnNlKGRhdGVTdHJpbmcpOworICAgICAgICAgICAgICAgIC8vIHtzZmJ9IHNvbWUgb2YgdGhlc2UgcGFyc2VzIHdpbGwgZmFpbCBwdXJwb3NlbHkKKyAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZm10ZCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgZm10ZCA9IGRmLmZvcm1hdChkdCwgZm10ZCwgcG9zKTsKKyAgICAgICAgICAgICAgICBsb2dsbihmbXRkLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vbG9nbG4oZGYuZm9ybWF0KGR0KSk7IAorICAgICAgICAgICAgICAgIGdjLnNldFRpbWUoZHQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgZ2MuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgICAgICBzID0gZm9ybWF0LmZvcm1hdChkdCwgcywgcG9zKTsKKyAgICAgICAgICAgICAgICBsb2dsbihzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJObyB3YXkgSm9zZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICBTeW5vcHNpczogQ2hpbmVzZSB0aW1lIHpvbmUgQ1RUIGlzIG5vdCByZWNvZ29uaXplZCBjb3JyZWN0bHkuCisgICAgICBEZXNjcmlwdGlvbjogUGxhdGZvcm0gQ2hpbmVzZSBXaW5kb3dzIDk1IC0gKiogVGltZSB6b25lIHNldCB0byBDU1QgKiogCisgICAgICAqLworICAgIC8qKgorICAgICAqIEBidWcgNDEwODQwNworICAgICAqLworICAgIAorICAgIC8vIHtzZmJ9IHdoYXQgdG8gZG8gd2l0aCB0aGlzIG9uZSA/PyAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODQwNygpIHsKKyAgICAgICAgLyoKKyAgICAvLyBUT0RPIHVzZXIudGltZXpvbmUgaXMgYSBwcm90ZWN0ZWQgc3lzdGVtIHByb3BlcnR5LCBjYXRjaCBzZWN1cml0eWV4Y2VwdGlvbiBhbmQgd2FybgorICAgIC8vIGlmIHRoaXMgaXMgcmVlbmFibGVkCisgICAgICAgIGxvbmcgbCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOyAKKyAgICAgICAgbG9nbG4oInVzZXIudGltZXpvbmUgPSAiICsgU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLnRpbWV6b25lIiwgIj8iKSk7CisgICAgICAgIGxvZ2xuKCJUaW1lIFpvbmUgOiIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZ2V0VGltZVpvbmUoKS5nZXRJRCgpKTsgCisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IGZvcm1hdCA6IiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5mb3JtYXQobmV3IERhdGUobCkpKTsgCisgICAgICAgIGxvZ2xuKCJGdWxsIGZvcm1hdCA6IiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMKS5mb3JtYXQobmV3IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZShsKSkpOyAKKyAgICAgICAgbG9nbG4oIioqKiBTZXQgaG9zdCBUWiB0byBDU1QgKioqIik7CisgICAgICAgIGxvZ2xuKCIqKiogVEhFIFJFU1VMVFMgT0YgVEhJUyBURVNUIE1VU1QgQkUgVkVSSUZJRUQgTUFOVUFMTFkgKioqIik7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEzNDIwMworICAgICAqIFNpbXBsZURhdGVGb3JtYXQgd29uJ3QgcGFyc2UgIkdNVCIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNDIwMygpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVGb3JtYXQgPSAiTU0vZGQveXkgSEg6bW06c3Mgenp6IjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRlRm9ybWF0KTsKKyAgICAKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwMCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjAxLzIyLzkyIDA0OjUyOjAwIEdNVCIsIHAwKTsKKyAgICAgICAgbG9nbG4oZC50b1N0cmluZygpKTsKKyAgICAgICAgaWYocDAuZXF1YWxzKG5ldyBQYXJzZVBvc2l0aW9uKDApKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBmYWlsZWQgdG8gcGFyc2UgJ0dNVCciKTsKKyAgICAgICAgLy8gSW4gdGhlIGZhaWx1cmUgY2FzZSBhbiBleGNlcHRpb24gaXMgdGhyb3duIGJ5IHBhcnNlKCk7CisgICAgICAgIC8vIGlmIG5vIGV4Y2VwdGlvbiBpcyB0aHJvd24sIHRoZSB0ZXN0IHBhc3Nlcy4KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUxNjMxCisgICAgICogU2ltcGxlRGF0ZUZvcm1hdCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgMiBzaW5nbGUgcXVvdGVzIGluIGZvcm1hdCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE2MzEoKSB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gCisgICAgICAgICAgICAiJ1RPX0RBVEUoJycnZGQnLSdNTSctJ3l5eXkgSEg6bW06c3MnJycgLCAnJ0RELU1NLVlZWVkgSEg6TUk6U1MnJyknIjsgCisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuPSIgKyBwYXR0ZXJuKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpVTkUsIDMwLCAxMywgMzAsIDApOworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KGQsIHJlc3VsdCwgcG9zKTsgCisgICAgICAgIGlmICghcmVzdWx0LnRvU3RyaW5nKCkuZXF1YWxzKCJUT19EQVRFKCczMC0wNi0xOTk4IDEzOjMwOjAwJyAsICdERC1NTS1ZWVlZIEhIOk1JOlNTJykiKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IHJlc3VsdD0iICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiByZXN1bHQ9IiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUxNzA2CisgICAgICogJ3onIGF0IGVuZCBvZiBkYXRlIGZvcm1hdCB0aHJvd3MgaW5kZXggZXhjZXB0aW9uIGluIFNpbXBsZURhdGVGb3JtYXQKKyAgICAgKiBDQU5OT1QgUkVQUk9EVUNFIFRISVMgQlVHIE9OIDEuMkZDUworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTUxNzA2KCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICJUaHVyc2RheSwgMzEtRGVjLTk4IDIzOjAwOjAwIEdNVCI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRUUsIGRkLU1NTS15eSBISDptbTpzcyB6IiwgTG9jYWxlLlVTKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpLCBMb2NhbGUuVVMpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5ERUNFTUJFUiwgMzEsIDIzLCAwLCAwKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGQgPSBmbXQucGFyc2UoZGF0ZVN0cmluZyk7CisgICAgICAgICAgICAvLyB7c2ZifSB3aGF0IGFib3V0IG5leHQgdHdvIGxpbmVzPworICAgICAgICAgICAgaWYgKGQuZ2V0VGltZSgpICE9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgdmFsdWU6ICIgKyBkKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oZGF0ZVN0cmluZyArICIgLiAiICsgZm10LmZvcm1hdChkLCB0ZW1wLCBwb3MpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTYyMDcxCisgICAgICogQ2Fubm90IHJlcHJvZHVjZSB0aGlzIGJ1ZyB1bmRlciAxLjIgRkNTIC0tIGl0IG1heSBiZSBhIGNvbnZvbHV0ZWQgZHVwbGljYXRlCisgICAgICogb2Ygc29tZSBvdGhlciBidWcgdGhhdCBoYXMgYmVlbiBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjA3MSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiVGh1LCAzMC1KdWwtMTk5OSAxMTo1MToxNCBHTVQiOworICAgICAgICBTdHJpbmcgZm9ybWF0ID0gIkVFRScsICdkZC1NTU0teXl5eSBISDptbTpzcyB6IjsgLy8gUkZDIDgyMi8xMTIzCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChmb3JtYXQsIExvY2FsZS5VUyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIHggPSBkZi5wYXJzZShkYXRlU3RyaW5nKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgbG9nbG4oZGF0ZVN0cmluZyArICIgLT4gIiArIGRmLmZvcm1hdCh4LCB0ZW1wLCBwb3MpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSBmb3JtYXQgXCIiICsgZm9ybWF0ICsgIlwiIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRlRm9ybWF0IHNob3VsZG4ndCBwYXJzZSB5ZWFyICItMSIgYXMgYSB0d28tZGlnaXQgeWVhciAoZS5nLiwgIi0xIiAuIDE5OTkpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTgyMDY2KCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSIsIExvY2FsZS5VUyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGlzcEZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU0gZGQgeXl5eSBISDptbTpzcyBHRyIsIExvY2FsZS5VUyk7CisgICAgICAgIC8qIFdlIGV4cGVjdCAyLWRpZ2l0IHllYXIgZm9ybWF0cyB0byBwdXQgMi1kaWdpdCB5ZWFycyBpbiB0aGUgcmlnaHQKKyAgICAgICAgICogd2luZG93LiAgT3V0IG9mIHJhbmdlIHllYXJzLCB0aGF0IGlzLCBhbnl0aGluZyBsZXNzIHRoYW4gIjAwIiBvcgorICAgICAgICAgKiBncmVhdGVyIHRoYW4gIjk5IiwgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbCB5ZWFycy4gIFNvICIxLzIvMzQ1NiIKKyAgICAgICAgICogYmVjb21lcyAzNDU2IEFELiAgTGlrZXdpc2UsICIxLzIvLTMiIGJlY29tZXMgLTMgQUQgPT0gMiBCQy4KKyAgICAgICAgICovCisgICAgICAgIGZpbmFsIFN0cmluZyBTVFJJTkdTW10gPSAKKyAgICAgICAgICAgIHsiMDIvMjkvMDAiLCAiMDEvMjMvMDEiLCAiMDQvMDUvLTEiLCAiMDEvMjMvLTkiLCAiMTEvMTIvMTMxNCIsICIxMC8zMS8xIiwgIjA5LzEyLysxIiwgIjA5LzEyLzAwMSIsfTsgCisgICAgICAgIGludCBTVFJJTkdTX0NPVU5UID0gU1RSSU5HUy5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgRkFJTF9EQVRFID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDEsIENhbGVuZGFyLkpBTlVBUlksIDIzKTsKKyAgICAgICAgRGF0ZSBkMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KC0xLCBDYWxlbmRhci5BUFJJTCwgNSk7CisgICAgICAgIERhdGUgZDIgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgtOSwgQ2FsZW5kYXIuSkFOVUFSWSwgMjMpOworICAgICAgICBEYXRlIGQzID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTMxNCwgQ2FsZW5kYXIuTk9WRU1CRVIsIDEyKTsKKyAgICAgICAgRGF0ZSBkNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEsIENhbGVuZGFyLk9DVE9CRVIsIDMxKTsKKyAgICAgICAgRGF0ZSBkNSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOyAgICAgICAgCisgICAgICAgIGNhbC5zZXQoMSwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxMik7CisgICAgICAgIERhdGUgZDcgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlIERBVEVTW10gPSB7ZDAsIGQxLCBkMiwgZDMsIGQ0LCBkNSwgRkFJTF9EQVRFLCBkN307CisgICAgCisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTVFJJTkdTX0NPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBTVFJJTkdTW2ldOworICAgICAgICAgICAgRGF0ZSBleHBlY3RlZCA9IERBVEVTW2ldOyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBhY3R1YWwgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhY3R1YWwgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWwgPSBGQUlMX0RBVEU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgYWN0U3RyID0gIiI7CisgICAgICAgICAgICBpZiAoKGFjdHVhbC5nZXRUaW1lKCkpID09IEZBSUxfREFURS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgICAgICBhY3RTdHIgKz0gIm51bGwiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBZdWNrOiBTZWUgajI1CisgICAgICAgICAgICAgICAgYWN0U3RyID0gKChEYXRlRm9ybWF0KSBkaXNwRm10KS5mb3JtYXQoYWN0dWFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChleHBlY3RlZC5nZXRUaW1lKCkgPT0gKGFjdHVhbC5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgb3V0ICs9IHN0ciArICIgPT4gIiArIGFjdFN0ciArICJcbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBleHBTdHIgPSAiIjsKKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWQuZ2V0VGltZSgpID09IEZBSUxfREFURS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwU3RyICs9ICJudWxsIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBZdWNrOiBTZWUgajI1CisgICAgICAgICAgICAgICAgICAgIGV4cFN0ciA9ICgoRGF0ZUZvcm1hdCkgZGlzcEZtdCkuZm9ybWF0KGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0ICs9ICJGQUlMOiAiICsgc3RyICsgIiA9PiAiICsgYWN0U3RyICsgIiwgZXhwZWN0ZWQgIiArIGV4cFN0ciArICJcbiI7CisgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwYXNzKSB7CisgICAgICAgICAgICBsb2cob3V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycihvdXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIGozMiB7SkRLIEJ1ZyA0MjEwMjA5IDQyMDkyNzJ9CisgICAgICogRGF0ZUZvcm1hdCBjYW5ub3QgcGFyc2UgRmViIDI5IDIwMDAgd2hlbiBzZXRMZW5pZW50KGZhbHNlKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjEwMjA5KCkgeworICAgIAorICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJNTU0gZCwgeXl5eSI7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkaXNwID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEdHIiwgTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgQ2FsZW5kYXIgY2FseCA9IGZtdC5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWx4LnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldCgyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworICAgICAgICBEYXRlIGQgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgbG9nbG4oZGlzcC5mb3JtYXQoZCkgKyAiIGY+ICIgKyBwYXR0ZXJuICsgIiA9PiBcIiIgKyBzICsgIlwiIik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGQgPSBmbXQucGFyc2UocywgcG9zKTsKKyAgICAgICAgbG9nbG4oIlwiIiArIHMgKyAiXCIgcD4gIiArIHBhdHRlcm4gKyAiID0+ICIgKworICAgICAgICAgICAgICAoZCE9bnVsbD9kaXNwLmZvcm1hdChkKToibnVsbCIpKTsKKyAgICAgICAgbG9nbG4oIlBhcnNlIHBvcyA9ICIgKyBwb3MuZ2V0SW5kZXgoKSArICIsIGVycm9yIHBvcyA9ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFcnJvciBpbmRleCBzaG91bGQgYmUgLTEiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBUaGUgdW5kZXJseWluZyBidWcgaXMgaW4gR3JlZ29yaWFuQ2FsZW5kYXIuICBJZiB0aGUgZm9sbG93aW5nIGxpbmVzCisgICAgICAgIC8vIHN1Y2NlZWQsIHRoZSBidWcgaXMgZml4ZWQuICBJZiB0aGUgYnVnIGlzbid0IGZpeGVkLCB0aGV5IHdpbGwgdGhyb3cKKyAgICAgICAgLy8gYW4gZXhjZXB0aW9uLgorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgY2FsLnNldCgyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOyAvLyBUaGlzIHNob3VsZCB3b3JrIQorICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oIkF0dGVtcHQgdG8gc2V0IENhbGVuZGFyIHRvIEZlYiAyOSAyMDAwOiAiICsgZGlzcC5mb3JtYXQoZCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NzE0KCkgeworICAgICAgICAvL1RpbWVab25lIE9mZnNldAorICAgICAgICBUaW1lWm9uZSBkZWZhdWx0VFogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaW50IGRlZmF1bHRPZmZzZXQgPSBkZWZhdWx0VFouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIGludCBQU1RPZmZzZXQgPSBQU1QuZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDk3ODEwMzU0MzAwMGwgLSAoZGVmYXVsdE9mZnNldCAtIFBTVE9mZnNldCkpOworICAgICAgICBkID0gbmV3IERhdGUoZC5nZXRUaW1lKCkgLSAoZGVmYXVsdFRaLmluRGF5bGlnaHRUaW1lKGQpID8gMzYwMDAwMCA6IDApKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoLTEsIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgdGVzdHMgPSAiNzoyNTo0MyBBTSI7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscyh0ZXN0cykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgcyArICIgIT0gIiArIHRlc3RzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHMgKyAiID09ICIgKyB0ZXN0cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrQXJhYmljWmVybyA9IDB4MDY2MDsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrSGluZGlaZXJvICA9IDB4MDk2NjsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrTGF0aW5aZXJvICA9IDB4MDAzMDsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RIaW5kaUFyYWJpY0RpZ2l0cygpCisgICAgeworICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgY2hhciBmaXJzdDsKKyAgICAgICAgU3RyaW5nIHdoYXQ7CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIG5ldyBMb2NhbGUoImhpIiwiSU4iKSk7CisgICAgICAgICAgICB3aGF0ID0gIkdyZWdvcmlhbiBDYWxlbmRhciwgaGluZGkiOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIGxvZ2xuKHdoYXQgKyAiPSIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrSGluZGlaZXJvIHx8IGZpcnN0PihrSGluZGlaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICItIHdyb25nIGRpZ2l0LCAgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgSXNsYW1pY0NhbGVuZGFyKCksIG5ldyBMb2NhbGUoImFyIiwiSVEiKSk7CisgICAgICAgICAgICBzID0gZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsgLyogMjEvMTAvMTk4OSAqLworICAgICAgICAgICAgd2hhdCA9ICJJc2xhbWljIENhbGVuZGFyLCBBcmFiaWMiOworICAgICAgICAgICAgbG9nbG4od2hhdCArICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrQXJhYmljWmVybyB8fCBmaXJzdD4oa0FyYWJpY1plcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyBkaWdpdCwgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gIkdyZWdvcmlhbiwgIGFyX0lRLCBkZi5nZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0ICsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nICBkaWdpdCBidXQgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIG5ldyBMb2NhbGUoIm10IiwiTVQiKSk7CisgICAgICAgICAgICBzID0gZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsgLyogMzEvMTIvMTk2OSAqLworICAgICAgICAgICAgd2hhdCA9ICJHcmVnb3JpYW4sICBtdF9NVCwgZGYuZ2V0SW5zdGFuY2UiOworICAgICAgICAgICAgbG9nbG4od2hhdCArICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrTGF0aW5aZXJvIHx8IGZpcnN0PihrTGF0aW5aZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKG5ldyBJc2xhbWljQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gIklzbGFtaWMgY2FsZW5kYXIsIGFyX0lRLCBkZi5nZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0KyAiOiAiICsgcyk7CisgICAgICAgICAgICBmaXJzdCA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoZmlyc3Q8a0FyYWJpY1plcm8gfHwgZmlyc3Q+KGtBcmFiaWNaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5TSE9SVCwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gImFyX0lRLCBnZXREYXRlVGltZUluc3RhbmNlIjsKKyAgICAgICAgICAgIGxvZ2xuKHdoYXQrICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrQXJhYmljWmVybyB8fCBmaXJzdD4oa0FyYWJpY1plcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyAgZGlnaXQgYnV0IGdvdCAiICsgcyArICIgKGludGVnZXIgZGlnaXQgdmFsdWUgIiArIG5ldyBJbnRlZ2VyKChpbnQpZmlyc3QpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEphcGFuZXNlQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gImFyX0lRLCBKYXBhbmVzZSBDYWxlbmRhciwgZ2V0SW5zdGFuY2UiOworICAgICAgICAgICAgbG9nbG4od2hhdCsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nICBkaWdpdCBidXQgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEouamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0Si5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NDY0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEouamF2YQpAQCAtMCwwICsxLDI4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoKKyAqIE5ldyBhZGRlZCwgMjAwMS0xMC0xNyBbSmluZy9HQ0xdCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0SiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElNRV9TVFJJTkcgPSAiMjAwMC8xMS8xNyAwODowMTowMCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBVVENfTE9ORyA9IDk3NDQ3Njg2MDAwMEw7CisgICAgcHJpdmF0ZSBzdGF0aWMgU2ltcGxlRGF0ZUZvcm1hdCBzZGZfOworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIHNkZl8gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS9NTS9kZCBISDptbTpzcyIpOworICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvL1JldHVybiB2YWx1ZSBvZiBnZXRBbVBtU3RyaW5ncworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAzOTI2KCkgeworICAgICAgICBTdHJpbmcgYWN0X0FtcG1zW107CisgICAgICAgIFN0cmluZyBleHBfQW1wbXNbXT17IkFNIiwiUE0ifTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scygpOworICAgICAgICBhY3RfQW1wbXMgPSBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICAgICAgaWYoYWN0X0FtcG1zLmxlbmd0aCAhPSBleHBfQW1wbXMubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQhIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPTA7IGk8YWN0X0FtcG1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoIWFjdF9BbXBtc1tpXS5lcXVhbHMoZXhwX0FtcG1zW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRoZSByZXN1bHQgaXMgbm90IGV4cGVjdGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vTWlzc2luZyBkaWdpdCBpbiBtaWxsaXNlY29uZSBmb3JtYXQgaW4gU2ltcGxlRGF0ZUZvcm1hdCAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0ODE2OCgpIHsKKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDEwMDI3MDUyMTI5MDZsKTsgCisgICAgICAgICAgICBTdHJpbmdbXSBJU09QYXR0ZXJuID0geworICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MnJyIsICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1NTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MwMDAnJyJ9OworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBhU2ltcGxlREYgPSAoU2ltcGxlRGF0ZUZvcm1hdClEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8SVNPUGF0dGVybi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGFTaW1wbGVERi5hcHBseVBhdHRlcm4oIElTT1BhdHRlcm5baV0gKTsKKyAgICAgICAgICAgICAgICBsb2dsbiggIlBhdHRlcm4gPSAiICsgYVNpbXBsZURGLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBsb2dsbiggIkZvcm1hdCA9ICIgKyBhU2ltcGxlREYuZm9ybWF0KGQpKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9EYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQpLCBpbnZhbGlkIHN0eWxlcyBubyBleGNlcHRpb24KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxMzA4NigpIHsKKyAgICAgICAgRGF0ZSBzb21lRGF0ZSA9IG5ldyBEYXRlKCk7CisgICAgICAgIFN0cmluZyBkPW51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgyLCAtMik7CisgICAgICAgICAgICBkID0gZGYyLmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IDIiICsgIlx0IHRpbWVTdHlsZSA9IC0yIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYzID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDQsIDIpOworICAgICAgICAgICAgZCA9IGRmMy5mb3JtYXQoc29tZURhdGUpOworICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSA0IiArICJcdCB0aW1lU3R5bGUgPSAyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmNCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMTIsIC0xMik7CisgICAgICAgICAgICBkID0gZGY0LmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IC0xMiIgKyAiXHQgdGltZVN0eWxlID0gLTEyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGY1ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDIsIDEyMyk7CisgICAgICAgICAgICBkID0gZGY1LmZvcm1hdChzb21lRGF0ZSk7ICAgIAorICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSAyIiArICJcdCB0aW1lU3R5bGUgPSAxMjMiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICAgICAgbG9nbG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAgICAgLy9yZWFkIHRoZSB2YWx1ZSBpbiBkIHRvIGdldCByaWQgb2YgdGhlIHdhcm5pbmcKKyAgICAgICAgaWYoZCE9bnVsbCl7CisgICAgICAgICAgICBsb2dsbigiVGhlIHZhbHVlIG9mIGQ6ICIgKyBkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0RhdGVGb3JtYXQuZm9ybWF0IHdvcmtzIHdyb25nbHk/CisgICAgcHVibGljIHZvaWQgVGVzdDQyNTAzNTkoKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEwMSArIDE5MDAsIDksIDksIDE3LCA1Myk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgdGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgU3RyaW5nIGFjdF9yZXN1bHQgPSB0Zi5mb3JtYXQoZCk7CisgICAgICAgIFN0cmluZyBleHBfcmVzdWx0ID0gIjU6NTMgUE0iOworICAgICAgICAKKyAgICAgICAgaWYoIWFjdF9yZXN1bHQuZXF1YWxzKGV4cF9yZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcmVzdWx0IGlzIG5vdCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vcGF0dGVybiAicy5TLCBwYXJzZSAnMW1zJyIKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI1MzQ5MCgpIHsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoMTAwMjcwNTIxMjIzMWwpOworICAgIAorICAgICAgICBTdHJpbmdbXSBJU09QYXR0ZXJuID0geworICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1NTUycnIn07IAorICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGFTaW1wbGVERiA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJU09QYXR0ZXJuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhU2ltcGxlREYuYXBwbHlQYXR0ZXJuKElTT1BhdHRlcm5baV0pOworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm4gPSAiICsgYVNpbXBsZURGLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXQgPSAiICsgYVNpbXBsZURGLmZvcm1hdChkKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9hYm91dCByZWdyZXNzaW9uIHRlc3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI2NjQzMigpIHsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyBkYXRlRm9ybWF0ID0gIk1NL2RkL3l5IEhIOm1tOnNzIHp6eiI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZGF0ZUZvcm1hdCk7CisgICAgCisgICAgICAgIFBhcnNlUG9zaXRpb24gcDAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oIlVuZGVyICAiICsgbG9jICsiICBsb2NhbGUiKTsKKyAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwMS8yMi85MiAwNDo1MjowMCBHTVQiLCBwMCk7CisgICAgICAgIGxvZ2xuKGQudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIC8vU2ltcGxlRGF0ZUZvcm1hdCBpbmNvbnNpc3RlbnQgZm9yIG51bWJlciBvZiBkaWdpdHMgZm9yIHllYXJzCisgICAgcHVibGljIHZvaWQgVGVzdDQzNTg3MzAoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMSwxMSwxMCk7CisgICAgICAgIERhdGUgdG9kYXkgPSBjYWwuZ2V0VGltZSgpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5eXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5eXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5eXl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICB9CisgICAgCisgICAgLy9QYXJzZSBpbnZhbGlkIHN0cmluZworICAgIHB1YmxpYyB2b2lkIFRlc3Q0Mzc1Mzk5KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoInl5eXkuTU0uZGQgRyAnYXQnIGhoOm1tOnNzIHoiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuSkFQQU4pOworICAgICAgICB0cnl7CisgICAgICAgICAgICBEYXRlIGN1cnJlbnRUaW1lID0gc2RmLnBhcnNlKCJ2Z2dmIDIwICAwMS4wIDkuMjkgYXAuIEouLUMuIGF0IDA1OjI2OjMzIEdNVCswODowMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGlmKGN1cnJlbnRUaW1lID09bnVsbCkKKyAgICAgICAgICAgICAgICBsb2dsbigicGFyc2UgcmlnaHQiKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0NDA3MDQyKCkgeworICAgICAgICBEYXRlUGFyc2VUaHJlYWQgZDEgPSBuZXcgRGF0ZVBhcnNlVGhyZWFkKCk7CisgICAgICAgIERhdGVGb3JtYXRUaHJlYWQgZDIgPSBuZXcgRGF0ZUZvcm1hdFRocmVhZCgpOworICAgICAgICBkMS5zdGFydCgpOworICAgICAgICBkMi5zdGFydCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oInRlc3QiKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDAwKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgfSovCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDQ0Njg2NjMoKSB7CisgICAgICAgIERhdGUgZCA9bmV3IERhdGUoLTkzNzE2NjcxMTE1NzY3bCk7CisgICAgICAgIFN0cmluZyBvcmlnaW5fZCA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBuZXcgU3RyaW5nKCJFRUVFLCBNTU1NIGQsIHl5eXkiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKTsKKworICAgICAgICBpZiAoc2RmLmdldFRpbWVab25lKCkudXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJvcmlnaW5hbCBkYXRlOiAiICsgb3JpZ2luX2QudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBmb3JtYXQtLS0tLT4iICsgc3RyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZCA9IHNkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgcGFyc2UtLS0tLT4iICsgZC50b1N0cmluZygpKTsKKyAgICAKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIGZvcm1hdC0tLS0tPiIgKyBzdHIpOworICAgIAorICAgICAgICAgICAgZCA9IHNkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgcGFyc2UtLS0tLT4iICsgZC50b1N0cmluZygpKTsKKyAgICAKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIGZvcm1hdC0tLS0tPiIgKyBzdHIpOyAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9DbGFzcyB1c2VkIGJ5IFRlc3Q0NDA3MDQyCisgICAgY2xhc3MgRGF0ZVBhcnNlVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc2RmXy5jbG9uZSgpOworICAgICAgICAgICAgVGltZVpvbmUgZGVmYXVsdFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICAgICAgaW50IGRlZmF1bHRPZmZzZXQgPSBkZWZhdWx0VFouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgICAgICBpbnQgUFNUT2Zmc2V0ID0gUFNULmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGRlZmF1bHRPZmZzZXQgLSBQU1RPZmZzZXQ7CisgICAgICAgICAgICBsb25nIG1zID0gVVRDX0xPTkcgLSBvZmZzZXQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDEwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIERhdGUgZGF0ZSA9IHNkZi5wYXJzZShUSU1FX1NUUklORyk7CisgICAgICAgICAgICAgICAgICAgIGxvbmcgdCA9IGRhdGUuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IG1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIlBhcnNlIEVycm9yOiAiICsgaSArICIgKCIgKyBzZGYuZm9ybWF0KGRhdGUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgIiArIHQgKyAiICE9ICIgKyBtcywgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBlcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0NsYXNzIHVzZWQgYnkgVGVzdDQ0MDcwNDIKKyAgICBjbGFzcyBEYXRlRm9ybWF0VGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc2RmXy5jbG9uZSgpOworICAgICAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgd2hpbGUgKGkgPCAxMDAwMCkgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IHNkZi5mb3JtYXQobmV3IERhdGUoVVRDX0xPTkcpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKFRJTUVfU1RSSU5HKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRm9ybWF0IEVycm9yOiAiICsgaSArICIgIiArIHMgKyAiICE9ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFRJTUVfU1RSSU5HKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWY5NjY5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDI2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IERhdGVGb3JtYXRSb3VuZFRyaXBUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtdHJ0dHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCisvKiogCisgKiBQZXJmb3JtcyByb3VuZC10cmlwIHRlc3RzIGZvciBEYXRlRm9ybWF0CisgKiovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHVibGljIGJvb2xlYW4gSU5GSU5JVEUgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBxdWljayA9IHRydWU7CisgICAgcHJpdmF0ZSBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CisgICAgcHJpdmF0ZSBDYWxlbmRhciBnZXRGaWVsZENhbDsKKyAgICBwcml2YXRlIGludCBTUEFSU0VORVNTID0gMTg7CisgICAgcHJpdmF0ZSBpbnQgVFJJQUxTID0gNDsKKyAgICBwcml2YXRlIGludCBERVBUSCA9IDU7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0Um91bmRUcmlwVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRSb3VuZFRyaXAoKSB7CisgICAgICAgIGRhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCBISDptbTpzcy5TU1Mgenp6IHl5eXkgRyIpOworICAgICAgICBnZXRGaWVsZENhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgcmFuID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbSBzZWVkCisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gYXZhaWwgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGxvY0NvdW50ID0gYXZhaWwubGVuZ3RoOworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBhdmFpbGFibGUgbG9jYWxlczogIiArIGxvY0NvdW50KTsKKyAgICAgICAgaWYgKHF1aWNrKSB7CisgICAgICAgICAgICBpZiAobG9jQ291bnQgPiA1KQorICAgICAgICAgICAgICAgIGxvY0NvdW50ID0gNTsKKyAgICAgICAgICAgIGxvZ2xuKCJRdWljayBtb2RlOiBvbmx5IHRlc3RpbmcgZmlyc3QgNSBMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IFRpbWVab25lOiAgICAgICAgICAgICAiICsgdHouZ2V0SUQoKSk7CisgICAgCisgICAgICAgIGlmIChJTkZJTklURSkgeworICAgICAgICAgICAgLy8gU3BlY2lhbCBpbmZpbml0ZSBsb29wIHRlc3QgbW9kZSBmb3IgZmluZGluZyBoYXJkIHRvIHJlcHJvZHVjZSBlcnJvcnMKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgbG9nbG4oIkVOVEVSSU5HIElORklOSVRFIFRFU1QgTE9PUCBGT1IgTG9jYWxlOiAiICsgbG9jLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIF90ZXN0KGxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgX3Rlc3QoYXZhaWxbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgc3R5bGVOYW1lKGludCBzKSB7CisgICAgICAgIHN3aXRjaCAocykgeworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LlNIT1JUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlNIT1JUIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5NRURJVU0gOgorICAgICAgICAgICAgICAgIHJldHVybiAiTUVESVVNIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5MT05HIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxPTkciOworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LkZVTEwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlVMTCI7CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKCFJTkZJTklURSkgeworICAgICAgICAgICAgbG9nbG4oIkxvY2FsZTogIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUb3RhbCBwb3NzaWJpbGl0aWVzID0gMjQKKyAgICAgICAgLy8gIDQgZGF0ZQorICAgICAgICAvLyAgNCB0aW1lCisgICAgICAgIC8vICAxNiBkYXRlLXRpbWUKKyAgICAgICAgYm9vbGVhbltdIFRFU1RfVEFCTEUgPSBuZXcgYm9vbGVhblsyNF07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyArK2kpCisgICAgICAgICAgICBURVNUX1RBQkxFW2ldID0gdHJ1ZTsKKyAgICAKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBzb21lIHNwYXJzZW5lc3MsIGltcGxlbWVudCBpdCBoZXJlLiAgU3BhcnNlbmVzcyBkZWNyZWFzZXMKKyAgICAgICAgLy8gdGVzdCB0aW1lIGJ5IGVsaW1pbmF0aW5nIHNvbWUgdGVzdHMsIHVwIHRvIDIzLgorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgU1BBUlNFTkVTUzsgaSsrKSB7CisgICAgICAgICAgICBpbnQgcmFuZG9tID0gKGludCkgKHJhbi5uZXh0RG91YmxlKCkgKiAyNCk7CisgICAgICAgICAgICBpZiAocmFuZG9tID49IDAgJiYgcmFuZG9tIDwgMjQgJiYgVEVTVF9UQUJMRVtpXSkgeworICAgICAgICAgICAgICAgIFRFU1RfVEFCTEVbcmFuZG9tXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGl0YWJsZSA9IDA7CisgICAgICAgIGludCBzdHlsZSA9IDA7CisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsgCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0ICBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgZHN0eWxlID0gRGF0ZUZvcm1hdC5GVUxMOyBkc3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytkc3R5bGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IHRzdHlsZSA9IERhdGVGb3JtYXQuRlVMTDsgdHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrdHN0eWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKFRFU1RfVEFCTEVbaXRhYmxlKytdKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGRzdHlsZSAiICsgc3R5bGVOYW1lKGRzdHlsZSkgKyAiLCB0c3R5bGUgIiArIHN0eWxlTmFtZSh0c3R5bGUpKTsgCisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZHN0eWxlLCB0c3R5bGUsIGxvYyk7IAorICAgICAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChEYXRlRm9ybWF0IGZtdCwgYm9vbGVhbiB0aW1lT25seSkgeworICAgIAorICAgICAgICBpZiAoIShmbXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXQgd2Fzbid0IGEgU2ltcGxlRGF0ZUZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSAoKFNpbXBsZURhdGVGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKHBhdCk7CisgICAgCisgICAgICAgIC8vIE5PVEUgVE8gTUFJTlRBSU5FUgorICAgICAgICAvLyBUaGlzIGluZGV4T2YgY2hlY2sgaW50byB0aGUgcGF0dGVybiBuZWVkcyB0byBiZSByZWZpbmVkIHRvIGlnbm9yZQorICAgICAgICAvLyBxdW90ZWQgY2hhcmFjdGVycy4gIEN1cnJlbnRseSwgdGhpcyBpc24ndCBhIHByb2JsZW0gd2l0aCB0aGUgbG9jYWxlCisgICAgICAgIC8vIHBhdHRlcm5zIHdlIGhhdmUsIGJ1dCBpdCBtYXkgYmUgYSBwcm9ibGVtIGxhdGVyLgorICAgIAorICAgICAgICBib29sZWFuIGhhc0VyYSA9IChwYXQuaW5kZXhPZigiRyIpICE9IC0xKTsKKyAgICAgICAgYm9vbGVhbiBoYXNab25lID0gKHBhdC5pbmRleE9mKCJaIikgIT0gLTEpIHx8IChwYXQuaW5kZXhPZigieiIpICE9IC0xKTsKKyAgICAKKyAgICAgICAgLy8gQmVjYXVzZSBwYXR0ZXJucyBjb250YWluIGluY29tcGxldGUgZGF0YSByZXByZXNlbnRpbmcgdGhlIERhdGUsCisgICAgICAgIC8vIHdlIG11c3QgYmUgY2FyZWZ1bCBvZiBob3cgd2UgZG8gdGhlIHJvdW5kdHJpcC4gIFdlIHN0YXJ0IHdpdGgKKyAgICAgICAgLy8gYSByYW5kb21seSBnZW5lcmF0ZWQgRGF0ZSBiZWNhdXNlIHRoZXkncmUgZWFzaWVyIHRvIGdlbmVyYXRlLgorICAgICAgICAvLyBGcm9tIHRoaXMgd2UgZ2V0IGEgc3RyaW5nLiAgVGhlIHN0cmluZyBpcyBvdXIgcmVhbCBzdGFydGluZyBwb2ludCwKKyAgICAgICAgLy8gYmVjYXVzZSB0aGlzIHN0cmluZyBzaG91bGQgcGFyc2UgdGhlIHNhbWUgd2F5IGFsbCB0aGUgdGltZS4gIE5vdGUKKyAgICAgICAgLy8gdGhhdCBpdCB3aWxsIG5vdCBuZWNlc3NhcmlseSBwYXJzZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkYXRlIGJlY2F1c2UKKyAgICAgICAgLy8gb2YgaW5jb21wbGV0ZW5lc3MgaW4gcGF0dGVybnMuICBGb3IgZXhhbXBsZSwgYSB0aW1lLW9ubHkgcGF0dGVybiB3b24ndAorICAgICAgICAvLyBwYXJzZSBiYWNrIHRvIHRoZSBzYW1lIGRhdGUuCisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRSSUFMUzsgKytpKSB7CisgICAgICAgICAgICAgICAgRGF0ZVtdIGQgPSBuZXcgRGF0ZVtERVBUSF07CisgICAgICAgICAgICAgICAgU3RyaW5nW10gcyA9IG5ldyBTdHJpbmdbREVQVEhdOworICAgIAorICAgICAgICAgICAgICAgIGRbMF0gPSBnZW5lcmF0ZURhdGUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBnbyB0aHJvdWdoIHRoaXMgbG9vcCB1bnRpbCB3ZSBhY2hpZXZlIGEgbWF0Y2ggb3IgdW50aWwKKyAgICAgICAgICAgICAgICAvLyB0aGUgbWF4aW11bSBsb29wIGNvdW50IGlzIHJlYWNoZWQuICBXZSByZWNvcmQgdGhlIHBvaW50cyBhdAorICAgICAgICAgICAgICAgIC8vIHdoaWNoIHRoZSBkYXRlIGFuZCB0aGUgc3RyaW5nIHN0YXJ0cyB0byBtYXRjaC4gIE9uY2UgbWF0Y2hpbmcKKyAgICAgICAgICAgICAgICAvLyBzdGFydHMsIGl0IHNob3VsZCBjb250aW51ZS4KKyAgICAgICAgICAgICAgICBpbnQgbG9vcDsKKyAgICAgICAgICAgICAgICBpbnQgZG1hdGNoID0gMDsgLy8gZFtkbWF0Y2hdLmdldFRpbWUoKSA9PSBkW2RtYXRjaC0xXS5nZXRUaW1lKCkKKyAgICAgICAgICAgICAgICBpbnQgc21hdGNoID0gMDsgLy8gc1tzbWF0Y2hdLmVxdWFscyhzW3NtYXRjaC0xXSkKKyAgICAgICAgICAgICAgICBmb3IgKGxvb3AgPSAwOyBsb29wIDwgREVQVEg7ICsrbG9vcCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9vcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRbbG9vcF0gPSBmbXQucGFyc2Uoc1tsb29wIC0gMV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIHNbbG9vcF0gPSBmbXQuZm9ybWF0KGRbbG9vcF0pOworICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobG9vcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbWF0Y2ggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBzW2xvb3BdLmVxdWFscyhzW2xvb3AgLSAxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtYXRjaCA9IGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB7c2ZifSB3YXRjaCBvdXQgaGVyZSwgdGhpcyBtaWdodCBub3Qgd29yaworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBkW2xvb3BdLmdldFRpbWUoKSA9PSBkW2xvb3AgLSAxXS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRtYXRjaCA9IGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZSBtaXNtYXRjaCBhZnRlciBtYXRjaCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCAhPSAwICYmIGRtYXRjaCAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgbG9vcCA9PSBERVBUSCBpZiB3ZSd2ZSBmYWlsZWQsIG90aGVyd2lzZSBsb29wIGlzIHRoZQorICAgICAgICAgICAgICAgIC8vIG1heChzbWF0Y2gsIGRtYXRjaCksIHRoYXQgaXMsIHRoZSBpbmRleCBhdCB3aGljaCB3ZSBoYXZlIHN0cmluZyBhbmQKKyAgICAgICAgICAgICAgICAvLyBkYXRlIG1hdGNoaW5nLgorICAgIAorICAgICAgICAgICAgICAgIC8vIERhdGUgdXN1YWxseSBtYXRjaGVzIGluIDIuICBFeGNlcHRpb25zIGhhbmRsZWQgYmVsb3cuCisgICAgICAgICAgICAgICAgaW50IG1heERtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgaW50IG1heFNtYXRjaCA9IDE7CisgICAgICAgICAgICAgICAgaWYgKGRtYXRjaCA+IG1heERtYXRjaCB8fCBzbWF0Y2ggPiBtYXhTbWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9JZiB0aGUgRGF0ZSBpcyBCQworICAgICAgICAgICAgICAgICAgICBpZiAoIXRpbWVPbmx5ICYmICFoYXNFcmEgJiYgZ2V0RmllbGQoZFswXSwgQ2FsZW5kYXIuRVJBKSA9PSBHcmVnb3JpYW5DYWxlbmRhci5CQykgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4RG1hdGNoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFNtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1pvbmUgJiYgKGZtdC5nZXRUaW1lWm9uZSgpLmluRGF5bGlnaHRUaW1lKGRbMF0pIHx8IGZtdC5nZXRUaW1lWm9uZSgpLmluRGF5bGlnaHRUaW1lKGRbMV0pICkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFNtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZU9ubHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhEbWF0Y2ggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID4gbWF4RG1hdGNoIHx8IHNtYXRjaCA+IG1heFNtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUVFLCBNTU1NIGQsIHl5eXkgSEg6bW06c3MsIHogRyIsIExvY2FsZS5VUyk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGUgPSAiICsgc2RmLmZvcm1hdChkWzBdKSArICI7IG1zID0gIiArIGRbMF0uZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRtYXRjaDogIiArIGRtYXRjaCArICIgbWF4RDogIiArIG1heERtYXRjaCArICIgU21hdGNoOiIgKyBzbWF0Y2ggKyAiIG1heFM6IiArIG1heFNtYXRjaCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgcGF0ICsgIiBmYWlsZWQgdG8gbWF0Y2giICsgIjsgbXMgPSAiICsgZFswXS5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBsb29wICYmIGogPCBERVBUSDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKChqID4gMCA/ICIgUD4gIiA6ICIgICAgIikgKyBkYXRlRm9ybWF0LmZvcm1hdChkW2pdLCB0ZW1wLCBwb3MpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBGPiAiICsgc1tqXSArIChqID4gMCAmJiBkW2pdLmdldFRpbWUoKSA9PSBkW2ogLSAxXS5nZXRUaW1lKCkgPyAiIGQ9PSIgOiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChqID4gMCAmJiBzW2pdLmVxdWFscyhzW2ogLSAxXSkgPyAiIHM9PSIgOiAiIikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgbG9nbG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEZpZWxkKERhdGUgZCwgaW50IGYpIHsKKyAgICAgICAgZ2V0RmllbGRDYWwuc2V0VGltZShkKTsKKyAgICAgICAgaW50IHJldCA9IGdldEZpZWxkQ2FsLmdldChmKTsgICAgCisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBEYXRlIGdlbmVyYXRlRGF0ZSgpIHsKKyAgICAgICAgZG91YmxlIGEgPSByYW4ubmV4dERvdWJsZSgpOworICAgICAgICAvLyBOb3cgJ2EnIHJhbmdlcyBmcm9tIDAuLjE7IHNjYWxlIGl0IHRvIHJhbmdlIGZyb20gMCB0byA4MDAwIHllYXJzCisgICAgICAgIGEgKj0gODAwMDsKKyAgICAgICAgLy8gUmFuZ2UgZnJvbSAoNDAwMC0xOTcwKSBCQyB0byAoODAwMC0xOTcwKSBBRAorICAgICAgICBhIC09IDQwMDA7CisgICAgICAgIC8vIE5vdyBzY2FsZSB1cCB0byBtcworICAgICAgICBhICo9IDM2NS4yNSAqIDI0ICogNjAgKiA2MCAqIDEwMDA7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZSgobG9uZylhKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGY0ZDkyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDI3OTMgQEAKKyAvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm10dHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIERhdGVGb3JtYXRUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRGF0ZUZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIFRlc3Qgd3JpdHRlbiBieSBXYWxseSBXZWRlbCBhbmQgZW1haWxlZCB0byBtZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0V2FsbHlXZWRlbCgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5zdGFudGlhdGUgYSBUaW1lWm9uZSBzbyB3ZSBjYW4gZ2V0IHRoZSBpZHMuCisgICAgICAgICAqLworICAgICAgICAvL1RpbWVab25lIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKDcsICIiKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICAvKgorICAgICAgICAgKiBDb21wdXRhdGlvbmFsIHZhcmlhYmxlcy4KKyAgICAgICAgICovCisgICAgICAgIGludCBvZmZzZXQsIGhvdXJzLCBtaW51dGVzOworICAgICAgICAvKgorICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIFNpbXBsZURhdGVGb3JtYXQgc2V0IHVwIHRvIHByb2R1Y2UgYSBmdWxsIHRpbWUKKyAgICAgICAgIHpvbmUgbmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInp6enoiKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQSBTdHJpbmcgYXJyYXkgZm9yIHRoZSB0aW1lIHpvbmUgaWRzLgorICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIGludCBpZHNfbGVuZ3RoID0gaWRzLmxlbmd0aDsgLy93aGVuIGZpeGVkIHRoZSBidWcgc2hvdWxkIGNvbW1lbnQgaXQgb3V0CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIEhvdyBtYW55IGlkcyBkbyB3ZSBoYXZlPworICAgICAgICAgKi8KKyAgICAgICAgbG9nbG4oIlRpbWUgWm9uZSBJRHMgc2l6ZToiICsgaWRzX2xlbmd0aCk7CisgICAgICAgIC8qCisgICAgICAgICAqIENvbHVtbiBoZWFkaW5ncyAoc29ydCBvZikKKyAgICAgICAgICovCisgICAgICAgIGxvZ2xuKCJPcmRpbmFsIElEIG9mZnNldChoOm0pIG5hbWUiKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogTG9vcCB0aHJvdWdoIHRoZSB0enMuCisgICAgICAgICAqLworICAgICAgICBEYXRlIHRvZGF5ID0gbmV3IERhdGUoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZHNfbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKGkgKyAiICIgKyBpZHNbaV0pOworICAgICAgICAgICAgVGltZVpvbmUgdHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRzW2ldKTsKKyAgICAgICAgICAgIC8vIG9mZnNldCA9IHR0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0dHopOworICAgICAgICAgICAgY2FsLnNldFRpbWUodG9kYXkpOworICAgICAgICAgICAgb2Zmc2V0ID0gY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKyBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgLy8gbG9nbG4oaSArICIgIiArIGlkc1tpXSArICIgb2Zmc2V0ICIgKyBvZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHNpZ24gPSAiKyI7CisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHNpZ24gPSAiLSI7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGhvdXJzID0gb2Zmc2V0IC8gMzYwMDAwMDsKKyAgICAgICAgICAgIG1pbnV0ZXMgPSAob2Zmc2V0ICUgMzYwMDAwMCkgLyA2MDAwMDsKKyAgICAgICAgICAgIFN0cmluZyBkc3RPZmZzZXQgPSBzaWduICsgKGhvdXJzIDwgMTAgPyAiMCIgOiAiIikgKyBob3VycworICAgICAgICAgICAgICAgICAgICArICI6IiArIChtaW51dGVzIDwgMTAgPyAiMCIgOiAiIikgKyBtaW51dGVzOyAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIGRhdGUgc28gd2UgY2FuIGRpc3BsYXkgdGhlIHRpbWUgem9uZSBuYW1lLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHR6KTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGb3JtYXQgdGhlIG91dHB1dC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGZtdE9mZnNldCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXRPZmZzZXQgPSBzZGYuZm9ybWF0KHRvZGF5LCBmbXRPZmZzZXQsIHBvcyk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVW5pY29kZVN0cmluZyBmbXRPZmZzZXQgPSB0elMudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBmbXREc3RPZmZzZXQgPSBudWxsOworICAgICAgICAgICAgaWYgKGZtdE9mZnNldC50b1N0cmluZygpLnN0YXJ0c1dpdGgoIkdNVCIpKSB7CisgICAgICAgICAgICAgICAgLy9mbXREc3RPZmZzZXQgPSBmbXRPZmZzZXQuc3Vic3RyaW5nKDMpOworICAgICAgICAgICAgICAgIGZtdERzdE9mZnNldCA9IGZtdE9mZnNldC5zdWJzdHJpbmcoMywgZm10T2Zmc2V0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBTaG93IG91ciByZXN1bHQuCisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gb2sgPSBmbXREc3RPZmZzZXQgPT0gbnVsbCB8fCBmbXREc3RPZmZzZXQuZXF1YWxzKCIiKSB8fCBmbXREc3RPZmZzZXQuZXF1YWxzKGRzdE9mZnNldCk7CisgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbihpICsgIiAiICsgaWRzW2ldICsgIiAiICsgZHN0T2Zmc2V0ICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgKyBmbXRPZmZzZXQgKyAoZm10RHN0T2Zmc2V0ICE9IG51bGwgPyAiIG9rIiA6ICIgPyIpKTsgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKGkgKyAiICIgKyBpZHNbaV0gKyAiICIgKyBkc3RPZmZzZXQgKyAiICIgKyBmbXRPZmZzZXQgKyAiICoqKiBGQUlMICoqKiIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXF1YWxzKCkgeworICAgICAgICBEYXRlRm9ybWF0IGZtdEEgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuRlVMTCk7IAorICAgICAgICBEYXRlRm9ybWF0IGZtdEIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuRlVMTCk7IAorICAgICAgICBpZiAoIWZtdEEuZXF1YWxzKGZtdEIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHBhcnNpbmcgb2YgMi1kaWdpdCB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VHdvRGlnaXRZZWFyRFNUUGFyc2UoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZnVsbEZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzLlNTUyB6enogeXl5eSBHIik7IAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC1NTU0teXkgaDptbTpzcyAnbycnY2xvY2snIGEgeiIsIExvY2FsZS5FTkdMSVNIKTsgCisgICAgICAgIFN0cmluZyBzID0gIjAzLUFwci0wNCAyOjIwOjQ3IG8nY2xvY2sgQU0gUFNUIjsKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2NhbGUpIENvbnN0cnVjdCBhIFNpbXBsZURhdGVEYXRlRm9ybWF0IHVzaW5nCisgICAgICAgICAqIHRoZSBnaXZlbiBwYXR0ZXJuLCB0aGUgbG9jYWxlIGFuZCB1c2luZyB0aGUgVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgKiBTbyBpdCBuZWVkIHRvIGFkZCB0aGUgdGltZXpvbmUgb2Zmc2V0IG9uIGhvdXIgZmllbGQuIAorICAgICAgICAgKiBwcy4gdGhlIE1ldGhvZCBDYWxlbmRhci5nZXRUaW1lKCkgdXNlZCBieSBTaW1wbGVEYXRlRm9ybWF0LnBhcnNlKCkgYWx3YXlzIAorICAgICAgICAgKiByZXR1cm4gRGF0ZSB2YWx1ZSB3aXRoIFRpbWVab25lLmdldERlZmF1bHQoKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgVGltZVpvbmUgZGVmYXVsdFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBkZWZhdWx0T2Zmc2V0ID0gZGVmYXVsdFRaLmdldFJhd09mZnNldCgpOworICAgICAgICBpbnQgUFNUT2Zmc2V0ID0gUFNULmdldFJhd09mZnNldCgpOworICAgICAgICBpbnQgaG91ciA9IDIgKyAoZGVmYXVsdE9mZnNldCAtIFBTVE9mZnNldCkgLyAoNjAqNjAqMTAwMCk7CisgICAgICAgIC8vIGhvdXIgaXMgdGhlIGV4cGVjdGVkIGhvdXIgb2YgZGF5LCBpbiB1bml0cyBvZiBzZWNvbmRzCisgICAgICAgIGhvdXIgPSAoKGhvdXIgPCAwKSA/IGhvdXIgKyAyNCA6IGhvdXIpICogNjAqNjA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICAvL0RTVE9mZnNldAorICAgICAgICAgICAgaG91ciArPSBkZWZhdWx0VFouaW5EYXlsaWdodFRpbWUoZCkgPyAxIDogMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiArICgoRGF0ZUZvcm1hdCkgZnVsbEZtdCkuZm9ybWF0KGQpKTsKKyAgICAgICAgICAgIC8vIGhyIGlzIHRoZSBhY3R1YWwgaG91ciBvZiBkYXksIGluIHVuaXRzIG9mIHNlY29uZHMKKyAgICAgICAgICAgIC8vIGFkanVzdCBmb3IgRFNUCisgICAgICAgICAgICBpbnQgaHIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwKjYwIC0KKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gMTAwMDsKKyAgICAgICAgICAgIGlmIChociAhPSBob3VyKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIb3VyICgtRFNUKSA9ICIgKyBociAvICg2MCo2MC4wKSsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBleHBlY3RlZCAiICsgaG91ciAvICg2MCo2MC4wKSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSBFcnJvcjoiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IHJldHVybmVkIGZpZWxkIHBvc2l0aW9uIGluZGljZXMgYXJlIGNvcnJlY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIGludCBpLCBqLCBleHA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gVmVyaWZ5IGRhdGEKKyAgICAgICAgaWYgKFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgzLCA3KSkgPj0gMCkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgcm9vdFN5bXMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobmV3IExvY2FsZSgiIiwgIiIsICIiKSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhdHRlcm5DaGFycyIsIFBBVFRFUk5fQ0hBUlMsIHJvb3RTeW1zLmdldExvY2FsUGF0dGVybkNoYXJzKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhc3NlcnRUcnVlKCJEQVRFRk9STUFUX0ZJRUxEX05BTUVTIiwgREFURUZPUk1BVF9GSUVMRF9OQU1FUy5sZW5ndGggPT0gRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVCk7CisgICAgICAgIGlmKERhdGVGb3JtYXQuRklFTERfQ09VTlQgIT0gUEFUVEVSTl9DSEFSUy5sZW5ndGgoKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIERhdGVGb3JtYXQuRklFTERfQ09VTlQuIEV4cGVjdGVkOiAgIisgUEFUVEVSTl9DSEFSUy5sZW5ndGgoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDcmVhdGUgdGVzdCBmb3JtYXR0ZXJzCisgICAgICAgIGZpbmFsIGludCBDT1VOVCA9IDQ7CisgICAgICAgIERhdGVGb3JtYXRbXSBkYXRlRm9ybWF0cyA9IG5ldyBEYXRlRm9ybWF0W0NPVU5UXTsKKyAgICAgICAgZGF0ZUZvcm1hdHNbMF0gPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5VUyk7CisgICAgICAgIGRhdGVGb3JtYXRzWzFdID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgLy8gTWFrZSB0aGUgcGF0dGVybiAiRyB5IE0gZC4uLiIKKyAgICAgICAgYnVmLmFwcGVuZChQQVRURVJOX0NIQVJTKTsKKyAgICAgICAgZm9yIChqPWJ1Zi5sZW5ndGgoKS0xOyBqPj0wOyAtLWopIGJ1Zi5pbnNlcnQoaiwgJyAnKTsKKyAgICAgICAgZGF0ZUZvcm1hdHNbMl0gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChidWYudG9TdHJpbmcoKSwgTG9jYWxlLlVTKTsKKyAgICAgICAgLy8gTWFrZSB0aGUgcGF0dGVybiAiR0dHRyB5eXl5IE1NTU0gZGRkZC4uLiIKKyAgICAgICAgZm9yIChqPWJ1Zi5sZW5ndGgoKS0xOyBqPj0wOyBqLT0yKSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTwzOyArK2kpIHsKKyAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KGosIGJ1Zi5jaGFyQXQoaikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRhdGVGb3JtYXRzWzNdID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoYnVmLnRvU3RyaW5nKCksIExvY2FsZS5VUyk7CisKKyAgICAgICAgRGF0ZSBhdWcxMyA9IG5ldyBEYXRlKChsb25nKSA4NzE1MDgwNTI1MTMuMCk7CisKKyAgICAgICAgLy8gRXhwZWN0ZWQgb3V0cHV0IGZpZWxkIHZhbHVlcyBmb3IgYWJvdmUgRGF0ZUZvcm1hdHMgb24gYXVnMTMKKyAgICAgICAgLy8gRmllbGRzIGFyZSBnaXZlbiBpbiBvcmRlciBvZiBEYXRlRm9ybWF0IGZpZWxkIG51bWJlcgorICAgICAgICBmaW5hbCBTdHJpbmcgRVhQRUNURURbXSA9IHsKKyAgICAgICAgICAgICAiIiwgIjE5OTciLCAiQXVndXN0IiwgIjEzIiwgIiIsICIiLCAiMzQiLCAiMTIiLCAiIiwKKyAgICAgICAgICAgICJXZWRuZXNkYXkiLCAiIiwgIiIsICIiLCAiIiwgIlBNIiwgIjIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICJQVCIsIiIsIiIsIiIsIiIsCisKKyAgICAgICAgICAgICIiLCAiMTk5NyIsICJhb1x1MDBGQnQiLCAiMTMiLCAiIiwgIjE0IiwgIjM0IiwgIiIsICIiLAorICAgICAgICAgICAgIm1lcmNyZWRpIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICJIQVAgKFx1MDBDOVVBKSIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCIiLCIiLCIiLCIiLAorCisgICAgICAgICAgICAiQUQiLCAiMTk5NyIsICI4IiwgIjEzIiwgIjE0IiwgIjE0IiwgIjM0IiwgIjEyIiwgIjUiLAorICAgICAgICAgICAgIldlZCIsICIyMjUiLCAiMiIsICIzMyIsICIzIiwgIlBNIiwgIjIiLCAiMiIsICJQRFQiLCAiMTk5NyIsICI0IiwgIjE5OTciLCAiMjQ1MDY3NCIsICI1MjQ1MjUxMyIsICItMDcwMCIsICJQVCIsIjQiLCI4IiwiMyIsIjMiLAorCisgICAgICAgICAgICAiQW5ubyBEb21pbmkiLCAiMTk5NyIsICJBdWd1c3QiLCAiMDAxMyIsICIwMDE0IiwgIjAwMTQiLCAiMDAzNCIsICIwMDEyIiwgIjUxMzAiLAorICAgICAgICAgICAgIldlZG5lc2RheSIsICIwMjI1IiwgIjAwMDIiLCAiMDAzMyIsICIwMDAzIiwgIlBNIiwgIjAwMDIiLCAiMDAwMiIsICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCAiMTk5NyIsCisgICAgICAgICAgICAiMDAwNCIsICIxOTk3IiwgIjI0NTA2NzQiLCAiNTI0NTI1MTMiLCAiR01ULTA3OjAwIiwgIlBhY2lmaWMgVGltZSIsIldlZG5lc2RheSIsIkF1Z3VzdCIsICIzcmQgcXVhcnRlciIsICIzcmQgcXVhcnRlciIsCisgICAgICAgIH07CisKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiZGF0YSBzaXplIiwgRVhQRUNURUQubGVuZ3RoID09IENPVU5UICogRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVCk7CisKKyAgICAgICAgVGltZVpvbmUgUFQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworICAgICAgICBmb3IgKGogPSAwLCBleHAgPSAwOyBqIDwgQ09VTlQ7ICsraikgeworICAgICAgICAgIC8vICBTdHJpbmcgc3RyOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGRhdGVGb3JtYXRzW2pdOworICAgICAgICAgICAgZGYuc2V0VGltZVpvbmUoUFQpOworICAgICAgICAgICAgbG9nbG4oIiBQYXR0ZXJuID0gIiArICgoU2ltcGxlRGF0ZUZvcm1hdCkgZGYpLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgUmVzdWx0ID0gIiArIGRmLmZvcm1hdChhdWcxMykpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGUpOworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBEYXRlRm9ybWF0LkZJRUxEX0NPVU5UOyArK2ksICsrZXhwKSB7CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbihpKTsKKyAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGRmLmZvcm1hdChhdWcxMywgYnVmLCBwb3MpOyAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGQgPSBidWYuc3Vic3RyaW5nKHBvcy5nZXRCZWdpbkluZGV4KCksIHBvcy5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZpZWxkICMiICsgaSArICIgIiArIERBVEVGT1JNQVRfRklFTERfTkFNRVNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVEVEW2V4cF0sIGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBUaGlzIE1VU1QgYmUga2VwdCBpbiBzeW5jIHdpdGggRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFUVEVSTl9DSEFSUyA9ICJHeU1ka0htc1NFREZ3V2FoS3pZZXVnQVp2Y0xRcSI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiB0aGUgbmFtZXMgb2YgYWxsIHRoZSBmaWVsZHMgaW4gRGF0ZUZvcm1hdC4KKyAgICAgKiBUaGlzIE1VU1QgYmUga2VwdCBpbiBzeW5jIHdpdGggRGF0ZUZvcm1hdC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEVGT1JNQVRfRklFTERfTkFNRVNbXSA9IHsKKyAgICAgICAgIkVSQV9GSUVMRCIsCisgICAgICAgICJZRUFSX0ZJRUxEIiwKKyAgICAgICAgIk1PTlRIX0ZJRUxEIiwKKyAgICAgICAgIkRBVEVfRklFTEQiLAorICAgICAgICAiSE9VUl9PRl9EQVkxX0ZJRUxEIiwKKyAgICAgICAgIkhPVVJfT0ZfREFZMF9GSUVMRCIsCisgICAgICAgICJNSU5VVEVfRklFTEQiLAorICAgICAgICAiU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgIk1JTExJU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9XRUVLX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgIldFRUtfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICJXRUVLX09GX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgIkFNX1BNX0ZJRUxEIiwKKyAgICAgICAgIkhPVVIxX0ZJRUxEIiwKKyAgICAgICAgIkhPVVIwX0ZJRUxEIiwKKyAgICAgICAgIlRJTUVaT05FX0ZJRUxEIiwKKyAgICAgICAgIllFQVJfV09ZX0ZJRUxEIiwKKyAgICAgICAgIkRPV19MT0NBTF9GSUVMRCIsCisgICAgICAgICJFWFRFTkRFRF9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgIkpVTElBTl9EQVlfRklFTEQiLAorICAgICAgICAiTUlMTElTRUNPTkRTX0lOX0RBWV9GSUVMRCIsCisgICAgICAgICJUSU1FWk9ORV9SRkNfRklFTEQiLAorICAgICAgICAiR0VORVJJQ19USU1FWk9ORV9GSUVMRCIsCisgICAgICAgICJTVEFORF9BTE9ORV9EQVlfRklFTEQiLAorICAgICAgICAiU1RBTkRfQUxPTkVfTU9OVEhfRklFTEQiLAorICAgICAgICAiUVVBUlRFUl9GSUVMRCIsCisgICAgICAgICJTVEFORF9BTE9ORV9RVUFSVEVSX0ZJRUxEIiwKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYWwgcGFyc2UvZm9ybWF0IHRlc3RzLiAgQWRkIHRlc3QgY2FzZXMgYXMgbmVlZGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZW5lcmFsKCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzLlNTUyIsCisKKyAgICAgICAgICAgIC8vIE1pbGxpc2Vjb25kcyBhcmUgbGVmdC1qdXN0aWZpZWQsIHNpbmNlIHRoZXkgZm9ybWF0IGFzIGZyYWN0aW9ucyBvZiBhIHNlY29uZAorICAgICAgICAgICAgLy8gQm90aCBmb3JtYXQgYW5kIHBhcnNlIHNob3VsZCByb3VuZCBIQUxGX1VQCisgICAgICAgICAgICAieS9NL2QgSDptbTpzcy5TIiwgImZwIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS42IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNjAwIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlNTIiwgImZwIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NyIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU3MCIsCisgICAgICAgICAgICAieS9NL2QgSDptbTpzcy5TU1MiLCAiRiIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3IiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlNTU1MiLCAicGYiLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2NzkiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjgiLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2ODAiLAorICAgICAgICB9OworICAgICAgICBleHBlY3QoREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY1RpbWUoKSB7CisKKworICAgICAgICAvLyBhbnkgem9uZSBwYXR0ZXJuIHNob3VsZCBwYXJzZSBhbnkgem9uZQorICAgICAgICBMb2NhbGUgZW4gPSBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIik7CisgICAgICAgIFN0cmluZyBaREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW0genp6IiwKKyAgICAgICAgICAgIC8vIHJvdW5kIHRyaXAKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6enoiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2dnZ2IiwgIkYiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2IiwgIkYiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQVCIsCisgICAgICAgICAgICAvLyBub24tZ2VuZXJpYyB0aW1lem9uZSBzdHJpbmcgaW5mbHVlbmNlcyBkc3Qgb2Zmc2V0IGV2ZW4gaWYgd3JvbmcgZm9yIGRhdGUvdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUERUIiwgIjIwMDQgMDEgMDEgMDE6MDAgUERUIiwgIjIwMDQvMS8xIDA6MDAgUFNUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQRFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQRFQiLCAiMjAwNC8xLzEgMDowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvNy8xIDE6MDAgUFNUIiwgIjIwMDQgMDcgMDEgMDI6MDAgUERUIiwgIjIwMDQvNy8xIDI6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQU1QiLCAiMjAwNCAwNyAwMSAwMjowMCBQRFQiLCAiMjAwNC83LzEgMjowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgLy8gZ2VuZXJpYyB0aW1lem9uZSBnZW5lcmF0ZXMgZHN0IG9mZnNldCBhcHByb3ByaWF0ZSBmb3IgbG9jYWwgdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzEvMSAxOjAwIFBUIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIjIwMDQvMS8xIDE6MDAgUGFjaWZpYyBUaW1lIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQVCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAvLyBkYXlsaWdodCBzYXZpbmdzIHRpbWUgdHJhbnNpdGlvbiBlZGdlIGNhc2VzLgorICAgICAgICAgICAgLy8gdGltZSB0byBwYXJzZSBkb2VzIG5vdCByZWFsbHkgZXhpc3QsIFBUIGludGVycHJldGVkIGFzIGVhcmxpZXIgdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFNUIiwgIjIwMDUgMDQgMDMgMDM6MzAgUERUIiwgIjIwMDUvNC8zIDM6MzAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA1LzQvMyAyOjMwIFBEVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFNUIiwgIjIwMDUgMDQgMDMgMDM6MzAgUERUIiwgIjIwMDUvNC8zIDM6MzAgUFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA1LzQvMyAyOjMwIFBEVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIiwgInBmIiwgIjIwMDUvNC8zIDI6MzAiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCIsCisgICAgICAgICAgICAvLyB0aW1lIHRvIHBhcnNlIGlzIGFtYmlndW91cywgUFQgaW50ZXJwcmV0ZWQgYXMgZWFybGllciB0aW1lICg/KQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDE6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA1LzQvMyAxOjMwIFBUIiwgIjIwMDUgMDQgMDMgIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIiwgInBmIiwgIjIwMDUvNC8zIDE6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFNUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUERUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUERUIiwgIjIwMDQvMTAvMzEgMTozMCBQRFQiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHYiLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFNUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUERUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUERUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0iLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCIsCisgICAgICAgICAgICAgCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgQnVlbm9zIEFpcmVzIChBcmdlbnRpbmEpIiwgIjIwMDQgMTAgMzAgMjE6MzAgUERUIiwgIjIwMDQvMTAvMzEgMTozMCBCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLAorICAgICAgICB9OworICAgICAgICBleHBlY3QoWkRBVEEsIGVuKTsKKworICAgICAgICBsb2dsbigiY3Jvc3MgZm9ybWF0L3BhcnNlIHRlc3RzIik7CisgICAgICAgIGZpbmFsIFN0cmluZyBiYXNlcGF0ID0gInl5L01NL2RkIEg6bW0gIjsKKyAgICAgICAgZmluYWwgU2ltcGxlRGF0ZUZvcm1hdFtdIGZvcm1hdHMgPSB7IAorICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoYmFzZXBhdCArICJ2dnYiLCBlbiksCisgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiYXNlcGF0ICsgInZ2dnYiLCBlbiksCisgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiYXNlcGF0ICsgInp6eiIsIGVuKSwKKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJhc2VwYXQgKyAienp6eiIsIGVuKQorICAgICAgICB9OworCisgICAgICAgIGZpbmFsIFNpbXBsZURhdGVGb3JtYXQgdW5pdiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5IE1NIGRkIEhIOm1tIHp6eiIsIGVuKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGltZXMgPSB7ICIyMDA0IDAxIDAyIDAzOjA0IFBTVCIsICIyMDA0IDA3IDA4IDA5OjEwIFBEVCIgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSB1bml2LnBhcnNlKHRpbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBsb2dsbigidGltZTogIiArIGQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdCA9IGZvcm1hdHNbal0uZm9ybWF0KGQpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigidGVzdDogJyIgKyB0ZXN0ICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBmb3JtYXRzLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgdCA9IGZvcm1hdHNba10ucGFyc2UodGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkLmVxdWFscyh0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm9ybWF0ICIgKyBrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW5jb3JyZWN0bHkgcGFyc2VkIG91dHB1dCBvZiBmb3JtYXQgIiArIGogKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIHRlc3QgKyAiKSwgcmV0dXJuZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgKyAiIGluc3RlYWQgb2YgIiArIGQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQgIiArIGsgKyAiIHBhcnNlZCBvayIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImZvcm1hdCAiICsgayArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgY291bGQgbm90IHBhcnNlIG91dHB1dCBvZiBmb3JtYXQgIiArIGogKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgiICsgdGVzdCArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ1bml2IGNvdWxkIG5vdCBwYXJzZTogIiArIHRpbWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyaWNUaW1lWm9uZU9yZGVyKCkgeworICAgICAgICAvLyBnZW5lcmljIHRpbWVzIHNob3VsZCBwYXJzZSB0aGUgc2FtZSBubyBtYXR0ZXIgd2hhdCB0aGUgcGxhY2VtZW50IG9mIHRoZSB0aW1lIHpvbmUgc3RyaW5nCisgICAgICAgIC8vIHNob3VsZCB3b3JrIGZvciBzdGFuZGFyZCBhbmQgZGF5bGlnaHQgdGltZXMKKworICAgICAgICBTdHJpbmcgWERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tIHp6eiIsCisgICAgICAgICAgICAvLyBzdGFuZGFyZCB0aW1lLCBleHBsaWNpdCBkYXlsaWdodC9zdGFuZGFyZAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIHp6eiBIOm1tIiwgInBmIiwgIjIwMDQvMS8xIFBUIDE6MDAiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgUFNUIDE6MDAiLAorICAgICAgICAgICAgInp6eiB5L00vZCBIOm1tIiwgInBmIiwgIlBUIDIwMDQvMS8xIDE6MDAiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiUFNUIDIwMDQvMS8xIDE6MDAiLAorCisgICAgICAgICAgICAvLyBzdGFuZGFyZCB0aW1lLCBnZW5lcmljCisgICAgICAgICAgICAieS9NL2QgSDptbSB2dnZ2IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIHZ2dnYgSDptbSIsICJwZiIsICIyMDA0LzEvMSBQVCAxOjAwIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIjIwMDQvMS8xIFBhY2lmaWMgVGltZSAxOjAwIiwKKyAgICAgICAgICAgICJ2dnZ2IHkvTS9kIEg6bW0iLCAicGYiLCAiUFQgMjAwNC8xLzEgMTowMCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICJQYWNpZmljIFRpbWUgMjAwNC8xLzEgMTowMCIsCisKKyAgICAgICAgICAgIC8vIGRheWxpZ2h0IHRpbWUsIGV4cGxpY2l0IGRheWxpZ2h0L3N0YW5kYXJkCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQVCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSAxOjAwIFBEVCIsCisgICAgICAgICAgICAieS9NL2Qgenp6IEg6bW0iLCAicGYiLCAiMjAwNC83LzEgUFQgMTowMCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSBQRFQgMTowMCIsCisgICAgICAgICAgICAienp6IHkvTS9kIEg6bW0iLCAicGYiLCAiUFQgMjAwNC83LzEgMTowMCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICJQRFQgMjAwNC83LzEgMTowMCIsCisKKyAgICAgICAgICAgIC8vIGRheWxpZ2h0IHRpbWUsIGdlbmVyaWMKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQVCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgdnZ2diBIOm1tIiwgInBmIiwgIjIwMDQvNy8xIFBUIDE6MDAiLCAiMjAwNCAwNyAwMSAwMTowMCBQRFQiLCAiMjAwNC83LzEgUGFjaWZpYyBUaW1lIDE6MDAiLAorICAgICAgICAgICAgInZ2dnYgeS9NL2QgSDptbSIsICJwZiIsICJQVCAyMDA0LzcvMSAxOjAwIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIlBhY2lmaWMgVGltZSAyMDA0LzcvMSAxOjAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgTG9jYWxlIGVuID0gbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpOworICAgICAgICBleHBlY3QoWERBVEEsIGVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGltZVpvbmVEaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGxvbmcganVseURhdGUgPSBuZXcgRGF0ZSgyMDA0LCA2LCAxNSkuZ2V0VGltZSgpOworICAgICAgICBsb25nIGphbnVhcnlEYXRlID0gbmV3IERhdGUoMjAwNCwgMCwgMTUpLmdldFRpbWUoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZhbGxiYWNrVGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGluZm8gPSBmYWxsYmFja1Rlc3RzW2ldOworICAgICAgICAgICAgbG9nbG4oaW5mb1swXSArICI7IiArIGluZm9bMV0gKyAiOyIgKyBpbmZvWzJdICsgIjsiICsgaW5mb1szXSk7CisKKyAgICAgICAgICAgIFVMb2NhbGUgbCA9IG5ldyBVTG9jYWxlKGluZm9bMF0pOworICAgICAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpbmZvWzFdKTsKKyAgICAgICAgICAgIGxvbmcgdGltZSA9IGluZm9bMl0uZXF1YWxzKCIyMDA0LTA3LTE1VDAwOjAwOjAwWiIpIAorICAgICAgICAgICAgICAgID8ganVseURhdGUgCisgICAgICAgICAgICAgICAgOiBqYW51YXJ5RGF0ZTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoaW5mb1szXSwgbCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKHRpbWUpOworICAgICAgICAgICAgY2FsLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KGNhbCk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoaW5mb1s0XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihpbmZvWzBdICsgIjsiICsgaW5mb1sxXSArICI7IiArIGluZm9bMl0gKyAiOyIgKyBpbmZvWzNdICsgIiBleHBlY3RlZDogJyIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBpbmZvWzRdICsgIicgYnV0IGdvdDogJyIgKyByZXN1bHQgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBmYWxsYmFja1Rlc3RzICA9IHsKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiUFNUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA3OjAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiUERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlBUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJQYWNpZmljIFRpbWUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW5fR0IiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDEyOjAwOjAwWiIsICJ6IiwgIlBTVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmEpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmEpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQ3ViYSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJDdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEF1c3RyYWxpYSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEF1c3RyYWxpYSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdyZWVud2ljaCBNZWFuIFRpbWUiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMTowMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkJTVCIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiQnJpdGlzaCBTdW1tZXIgVGltZSIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgIC8vIGljdSBlbi50eHQgaGFzIGV4ZW1wbGFyIGNpdHkgZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJVbml0ZWQgS2luZ2RvbSIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiVW5pdGVkIEtpbmdkb20iLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorCisgICAgICAgIC8vIEpCIzUxNTAKKyAgICAgICAgeyAiZW4iLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImVuIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDU6MzAiLCAiKzA1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJlbiIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiSW5kaWEiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkluZGlhIiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIAorICAgICAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJMb3MgQW5nZWxlcyAoVmVyZWluaWd0ZSBTdGFhdGVuKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiTG9zIEFuZ2VsZXMgKFZlcmVpbmlndGUgU3RhYXRlbikiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKworICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluaWVuKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiS3ViYSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJLdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICAvLyBhZGRlZCB0byB0ZXN0IHByb3BlciBmYWxsYmFjayBvZiBjb3VudHJ5IG5hbWUKKyAgICAgICAgeyAiZGVfQ0giLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJLdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJkZV9DSCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkt1YmEiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQXVzdHJhbGllbikiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQXVzdHJhbGllbikiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiVmVyZWluaWd0ZXMgS1x1MDBmNm5pZ3JlaWNoIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJWZXJlaW5pZ3RlcyBLXHUwMGY2bmlncmVpY2giLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorCisgICAgICAgIC8vIEpCIzUxNTAKKyAgICAgICAgeyAiZGUiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDU6MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDU6MzAiLCAiKzA1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJkZSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiSW5kaWVuIiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIHsgImRlIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJJbmRpZW4iLCAiQXNpYS9DYWxjdXR0YSIgfSwKKworICAgICAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1NTkyYVx1NWU3M1x1NmQwYlx1NjgwN1x1NTFjNlx1NjVmNlx1OTVmNCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBEVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHU1OTJhXHU1ZTczXHU2ZDBiXHU1OTBmXHU0ZWU0XHU2NWY2XHU5NWY0IiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgLy8gaWN1IHpoLnR4dCBoYXMgZXhlbXBsYXIgY2l0eSBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NmQxYlx1Njc0OVx1NzdmNiAoXHU3ZjhlXHU1NmZkKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2ZDFiXHU2NzQ5XHU3N2Y2IChcdTdmOGVcdTU2ZmQpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSB6aC50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTVFMDNcdTVCOUNcdThCRkFcdTY1QUZcdTgyN0VcdTUyMjlcdTY1QUYgKFx1OTYzZlx1NjgzOVx1NWVmNykiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSB6aC50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTVFMDNcdTVCOUNcdThCRkFcdTY1QUZcdTgyN0VcdTUyMjlcdTY1QUYgKFx1OTYzZlx1NjgzOVx1NWVmNykiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTUzZTRcdTVkZjQiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU1M2U0XHU1ZGY0IiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgLy8gaWN1IHpoLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTYwODlcdTVDM0MgKFx1NmZiM1x1NTkyN1x1NTIyOVx1NGU5YSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTYwODlcdTVDM0MgKFx1NmZiM1x1NTkyN1x1NTIyOVx1NGU5YSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHU4MmYxXHU1NmZkIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTgyZjFcdTU2ZmQiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKworICAgICAgICAvLyBKQiM1MTUwCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDUzMCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgInpoIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NTM3MFx1NUVBNiIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICB7ICJ6aCIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU1MzcwXHU1RUE2IiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisKKyAgICAgICAgLy8gPT09PT09PT09PQorCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5NmU6XHUwOTY2XHUwOTY2IiwgIi04OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2ZTpcdTA5NjZcdTA5NjYiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTZlOlx1MDk2Nlx1MDk2NiIsICItODowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2ZDpcdTA5NjZcdTA5NjYiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZkOlx1MDk2Nlx1MDk2NiIsICItNzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5NmQ6XHUwOTY2XHUwOTY2IiwgIi03OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiTG9zIEFuZ2VsZXMgKFx1MDkzOFx1MDkwMlx1MDkyZlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkyNCBcdTA5MzBcdTA5M2VcdTA5MWNcdTA5NGRcdTA5MmYgXHUwOTA1XHUwOTJlXHUwOTMwXHUwOTNmXHUwOTE1XHUwOTNlKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiTG9zIEFuZ2VsZXMgKFx1MDkzOFx1MDkwMlx1MDkyZlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkyNCBcdTA5MzBcdTA5M2VcdTA5MWNcdTA5NGRcdTA5MmYgXHUwOTA1XHUwOTJlXHUwOTMwXHUwOTNmXHUwOTE1XHUwOTNlKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQnVlbm9zIEFpcmVzIChcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDdcdTA5MjhcdTA5NGRcdTA5MWZcdTA5NDBcdTA5MjhcdTA5M2UpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQnVlbm9zIEFpcmVzIChcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDdcdTA5MjhcdTA5NGRcdTA5MWZcdTA5NDBcdTA5MjhcdTA5M2UpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2YjpcdTA5NjZcdTA5NjYiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2YjpcdTA5NjZcdTA5NjYiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2YjpcdTA5NjZcdTA5NjYiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2YTpcdTA5NjZcdTA5NjYiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2YTpcdTA5NjZcdTA5NjYiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2YTpcdTA5NjZcdTA5NjYiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwOTE1XHUwOTRkXHUwOTJmXHUwOTQyXHUwOTJjXHUwOTNlIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDkxNVx1MDk0ZFx1MDkyZlx1MDk0Mlx1MDkyY1x1MDkzZSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKworICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChcdTA5MTFcdTA5MzhcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzJcdTA5M2ZcdTA5MmZcdTA5M2UpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKFx1MDkxMVx1MDkzOFx1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMFx1MDk0N1x1MDkzMlx1MDkzZlx1MDkyZlx1MDkzZSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2N1x1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2N1x1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChcdTA5MTFcdTA5MzhcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzJcdTA5M2ZcdTA5MmZcdTA5M2UpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImhpIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKFx1MDkxMVx1MDkzOFx1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMFx1MDk0N1x1MDkzMlx1MDkzZlx1MDkyZlx1MDkzZSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY2XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjZcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIiswOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2Nlx1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjZcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UK1x1MDk2Nlx1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrXHUwOTY2XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDkyQ1x1MDk0RFx1MDkzMFx1MDkzRlx1MDkyNFx1MDkyOCIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwOTJDXHUwOTREXHUwOTMwXHUwOTNGXHUwOTI0XHUwOTI4IiwgIkV1cm9wZS9Mb25kb24iIH0sCisKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJoaSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2Nlx1MDk2QjpcdTA5NjlcdTA5NjYiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJJU1QiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjRcdTA5NDBcdTA5MkYgXHUwOTM4XHUwOTJFXHUwOTJGIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJoaSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY2XHUwOTZCOlx1MDk2OVx1MDk2NiIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIklTVCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjRcdTA5NDBcdTA5MkYgXHUwOTM4XHUwOTJFXHUwOTJGIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJoaSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwOTJEXHUwOTNFXHUwOTMwXHUwOTI0IiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisgICAgICAgIHsgImhpIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjQiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKworICAgICAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3LTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQyMlx1MDQzOFx1MDQ0NVx1MDQzRVx1MDQzRVx1MDQzQVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0MzAgXHUwNDM3XHUwNDNFXHUwNDNEXHUwNDMwIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiUERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MjJcdTA0MzhcdTA0NDVcdTA0M0VcdTA0M0VcdTA0M0FcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDNCXHUwNDRGXHUwNDQyXHUwNDNEXHUwNDMwIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzMCBcdTA0MzdcdTA0M0VcdTA0M0RcdTA0MzAiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAvLyBpY3UgYmcudHh0IGhhcyBleGVtcGxhciBjaXR5IGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDFiXHUwNDNlXHUwNDQxIFx1MDQxMFx1MDQzZFx1MDQzNlx1MDQzNVx1MDQzYlx1MDQzOFx1MDQ0MSAoXHUwNDIxXHUwNDEwXHUwNDI5KSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDFiXHUwNDNlXHUwNDQxIFx1MDQxMFx1MDQzZFx1MDQzNlx1MDQzNVx1MDQzYlx1MDQzOFx1MDQ0MSAoXHUwNDIxXHUwNDEwXHUwNDI5KSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUwNDExXHUwNDQzXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxIFx1MDQxMFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQ0MSAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDExXHUwNDQzXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxIFx1MDQxMFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQ0MSAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBiZy50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxMVx1MDQ0M1x1MDQzNVx1MDQzRFx1MDQzRVx1MDQ0MSBcdTA0MTBcdTA0MzlcdTA0NDBcdTA0MzVcdTA0NDEgKFx1MDQxMFx1MDQ0MFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQzZFx1MDQzMCkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDExXHUwNDQzXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxIFx1MDQxMFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQ0MSAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxYVx1MDQ0M1x1MDQzMVx1MDQzMCIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MWFcdTA0NDNcdTA0MzFcdTA0MzAiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQyMVx1MDQzOFx1MDQzNFx1MDQzRFx1MDQzOCAoXHUwNDEwXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDIxXHUwNDM4XHUwNDM0XHUwNDNEXHUwNDM4IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQyMVx1MDQzOFx1MDQzNFx1MDQzRFx1MDQzOCAoXHUwNDEwXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDIxXHUwNDM4XHUwNDM0XHUwNDNEXHUwNDM4IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDNcdTA0MzhcdTA0NDcrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NyswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0RcdTA0NDNcdTA0MzhcdTA0NDcrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzOFx1MDQ0NyswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQzXHUwNDM4XHUwNDQ3KzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MWVcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0M2UgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNlIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MWVcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0M2UgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNlIiwgIkV1cm9wZS9Mb25kb24iIH0sCisKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisKKyAgICAgICAgLy8gSkIjNTE1MAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NyswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NyswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzA1MzAiLCAiKzA1OjMwIiB9LAorICAgICAgICB7ICJiZyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImJnIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0NEYiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgeyAiYmciLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQ0RiIsICJBc2lhL0NhbGN1dHRhIiB9LAorCisgICAgLy8gPT09PT09PT09PQorCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiUFNUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTU5MmFcdTVlNzNcdTZkMGJcdTZhMTlcdTZlOTZcdTY2NDIiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1NTkyYVx1NWU3M1x1NmQwYlx1NTkwZlx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgIC8vIGljdSBqYS50eHQgaGFzIGV4ZW1wbGFyIGNpdHkgZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwZWRcdTMwYjVcdTMwZjNcdTMwYmNcdTMwZWJcdTMwYjkgKFx1MzBBMlx1MzBFMVx1MzBFQVx1MzBBQlx1NTQwOFx1ODg0Nlx1NTZGRClcdTY2NDJcdTk1OTMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBlZFx1MzBiNVx1MzBmM1x1MzBiY1x1MzBlYlx1MzBiOSAoXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCXHU1NDA4XHU4ODQ2XHU1NkZEKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAvLyBpY3UgamEudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCL1x1MzBENlx1MzBBOFx1MzBDRVx1MzBCOVx1MzBBMlx1MzBBNFx1MzBFQ1x1MzBCOSAoXHUzMGEyXHUzMGViXHUzMGJjXHUzMGYzXHUzMGMxXHUzMGYzKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCL1x1MzBENlx1MzBBOFx1MzBDRVx1MzBCOVx1MzBBMlx1MzBBNFx1MzBFQ1x1MzBCOSAoXHUzMGEyXHUzMGViXHUzMGJjXHUzMGYzXHUzMGMxXHUzMGYzKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBqYS50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBBMlx1MzBFMVx1MzBFQVx1MzBBQi9cdTMwRDZcdTMwQThcdTMwQ0VcdTMwQjlcdTMwQTJcdTMwQTRcdTMwRUNcdTMwQjkgKFx1MzBhMlx1MzBlYlx1MzBiY1x1MzBmM1x1MzBjMVx1MzBmMylcdTY2NDJcdTk1OTMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCL1x1MzBENlx1MzBBOFx1MzBDRVx1MzBCOVx1MzBBMlx1MzBBNFx1MzBFQ1x1MzBCOSAoXHUzMGEyXHUzMGViXHUzMGJjXHUzMGYzXHUzMGMxXHUzMGYzKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBhZFx1MzBlNVx1MzBmY1x1MzBkMFx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwYWRcdTMwZTVcdTMwZmNcdTMwZDBcdTY2NDJcdTk1OTMiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAvLyBpY3UgamEudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBBQVx1MzBGQ1x1MzBCOVx1MzBDOFx1MzBFOVx1MzBFQVx1MzBBMi9cdTMwQjdcdTMwQzlcdTMwQ0JcdTMwRkMgKFx1MzBhYVx1MzBmY1x1MzBiOVx1MzBjOFx1MzBlOVx1MzBlYVx1MzBhMilcdTY2NDJcdTk1OTMiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBBQVx1MzBGQ1x1MzBCOVx1MzBDOFx1MzBFOVx1MzBFQVx1MzBBMi9cdTMwQjdcdTMwQzlcdTMwQ0JcdTMwRkMgKFx1MzBhYVx1MzBmY1x1MzBiOVx1MzBjOFx1MzBlOVx1MzBlYVx1MzBhMilcdTY2NDJcdTk1OTMiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEFBXHUzMEZDXHUzMEI5XHUzMEM4XHUzMEU5XHUzMEVBXHUzMEEyL1x1MzBCN1x1MzBDOVx1MzBDQlx1MzBGQyAoXHUzMGFhXHUzMGZjXHUzMGI5XHUzMGM4XHUzMGU5XHUzMGVhXHUzMGEyKVx1NjY0Mlx1OTU5MyIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJqYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMEFBXHUzMEZDXHUzMEI5XHUzMEM4XHUzMEU5XHUzMEVBXHUzMEEyL1x1MzBCN1x1MzBDOVx1MzBDQlx1MzBGQyAoXHUzMGFhXHUzMGZjXHUzMGI5XHUzMGM4XHUzMGU5XHUzMGVhXHUzMGEyKVx1NjY0Mlx1OTU5MyIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMGE0XHUzMGFlXHUzMGVhXHUzMGI5XHU2NjQyXHU5NTkzIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwYTRcdTMwYWVcdTMwZWFcdTMwYjlcdTY2NDJcdTk1OTMiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKworICAgICAgICAvLyBKQiM1MTUwCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1MzAiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDUzMCIsICIrMDU6MzAiIH0sCisgICAgICAgIHsgImphIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDUzMCIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBBNFx1MzBGM1x1MzBDOVx1NjY0Mlx1OTU5MyIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICB7ICJqYSIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMEE0XHUzMEYzXHUzMEM5XHU2NjQyXHU5NTkzIiwgIkFzaWEvQ2FsY3V0dGEiIH0sCisKKyAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJMb3MgQW5nZWxlcyAoVVMpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJMb3MgQW5nZWxlcyAoVVMpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKEFSKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQnVlbm9zIEFpcmVzIChBUikiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKEFSKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFSKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNTAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNDAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkNVIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkNVIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEFVKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBVSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChBVSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQVUpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJHQiIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR0IiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorCisgICAgICAgIC8vIEpCIzUxNTAKKyAgICAgICAgeyAiYXMiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwOUFEXHUwOUJFLiBcdTA5QjguIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwOUFEXHUwOUJFXHUwOUYwXHUwOUE0XHUwOUMwXHUwOUFGXHUwOUJDIFx1MDlCOFx1MDlBRVx1MDlBRlx1MDlCQyIsICIrNTozMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswNTMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzA1OjMwIiwgIis1OjMwIiB9LAorICAgICAgICB7ICJhcyIsICJBc2lhL0NhbGN1dHRhIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwOUFEXHUwOUJFLiBcdTA5QjguIiwgIiswNTozMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDlBRFx1MDlCRVx1MDlGMFx1MDlBNFx1MDlDMFx1MDlBRlx1MDlCQyBcdTA5QjhcdTA5QUVcdTA5QUZcdTA5QkMiLCAiKzU6MzAiIH0sCisgICAgICAgIHsgImFzIiwgIkFzaWEvQ2FsY3V0dGEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA5QURcdTA5QkVcdTA5RjBcdTA5QTQiLCAiQXNpYS9DYWxjdXR0YSIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXNpYS9DYWxjdXR0YSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MDlBRFx1MDlCRVx1MDlGMFx1MDlBNCIsICJBc2lhL0NhbGN1dHRhIiB9LAorICAgICAgICAKKyAgICB9OworCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoYXQgc3RyaW5ncyB3aGljaCBjb250YWluIGluY29tcGxldGUgc3BlY2lmaWNhdGlvbnMgYXJlIHBhcnNlZAorICAgICAqIGNvcnJlY3RseS4gIEluIHNvbWUgaW5zdGFuY2VzLCB0aGlzIG1lYW5zIG5vdCBiZWluZyBwYXJzZWQgYXQgYWxsLCBhbmQKKyAgICAgKiByZXR1cm5pbmcgYW4gYXBwcm9wcmlhdGUgZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnRpYWxQYXJzZTk5NCgpIHsKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMSAtIDEsIDE3LCAxMCwgMTEsIDQyKTsKKyAgICAgICAgRGF0ZSBkYXRlID0gbnVsbDsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAxMDoxMTo0MiIsIGNhbC5nZXRUaW1lKCkpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3IDEwOiIsIGRhdGUpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3IDEwIiwgZGF0ZSk7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTcgIiwgZGF0ZSk7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTciLCBkYXRlKTsKKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJuYWwgdGVzdCBzdWJyb3V0aW5lLCB1c2VkIGJ5IFRlc3RQYXJ0aWFsUGFyc2U5OTQKKyAgICBwdWJsaWMgdm9pZCB0cnlQYXQ5OTQoU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQsIFN0cmluZyBwYXQsIFN0cmluZyBzdHIsIERhdGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgRGF0ZSBOdWxsID0gbnVsbDsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgcGF0ICsgIlwiICAgU3RyaW5nIFwiIiArIHN0ciArICJcIiIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybWF0LmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gZm9ybWF0LnBhcnNlKHN0cik7ICAgIAorICAgICAgICAgICAgU3RyaW5nIGYgPSAoKERhdGVGb3JtYXQpIGZvcm1hdCkuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgbG9nbG4oIiBwYXJzZSgiICsgc3RyICsgIikgLT4gIiArIGRhdGUpOworICAgICAgICAgICAgbG9nbG4oIiBmb3JtYXQgLT4gIiArIGYpOworICAgICAgICAgICAgaWYgKGV4cGVjdGVkLmVxdWFscyhOdWxsKSB8fCAhZGF0ZS5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBudWxsIik7IC8vIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgIGlmICghZi5lcXVhbHMoc3RyKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIHN0cik7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXJzZUV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmICghKGV4cGVjdGVkID09TnVsbCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIEV4Y2VwdGlvbjoiKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBiZWhhdmlvciBvZiBwYXR0ZXJucyBpbiB3aGljaCBkaWdpdHMgZm9yIGRpZmZlcmVudCBmaWVsZHMgcnVuIHRvZ2V0aGVyCisgICAgICogd2l0aG91dCBpbnRlcnZlbmluZyBzZXBhcmF0b3JzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdW5Ub2dldGhlclBhdHRlcm45ODUoKSB7CisgICAgICAgIFN0cmluZyBmb3JtYXQgPSAieXl5eU1NZGRISG1tc3NTU1MiOworICAgICAgICBTdHJpbmcgbm93LCB0aGVuOworICAgICAgICAvL1VCb29sIGZsYWc7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZm9ybWF0KTsKKyAgICAgICAgRGF0ZSBkYXRlMSA9IG5ldyBEYXRlKCk7CisgICAgICAgIG5vdyA9ICgoRGF0ZUZvcm1hdCkgZm9ybWF0dGVyKS5mb3JtYXQoZGF0ZTEpOworICAgICAgICBsb2dsbihub3cpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIGRhdGUyID0gZm9ybWF0dGVyLnBhcnNlKG5vdywgcG9zKTsKKyAgICAgICAgaWYgKGRhdGUyID09IG51bGwpCisgICAgICAgICAgICB0aGVuID0gIlBhcnNlIHN0b3BwZWQgYXQgIiArIHBvcy5nZXRJbmRleCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGVuID0gKChEYXRlRm9ybWF0KSBmb3JtYXR0ZXIpLmZvcm1hdChkYXRlMik7CisgICAgICAgIGxvZ2xuKHRoZW4pOworICAgICAgICBpZiAoZGF0ZTIgPT0gbnVsbCB8fCAhZGF0ZTIuZXF1YWxzKGRhdGUxKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBiZWhhdmlvciBvZiBwYXR0ZXJucyBpbiB3aGljaCBkaWdpdHMgZm9yIGRpZmZlcmVudCBmaWVsZHMgcnVuIHRvZ2V0aGVyCisgICAgICogd2l0aG91dCBpbnRlcnZlbmluZyBzZXBhcmF0b3JzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdW5Ub2dldGhlclBhdHRlcm45MTcoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10OworICAgICAgICBTdHJpbmcgbXlEYXRlOworICAgICAgICBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS9NTS9kZCIpOworICAgICAgICBteURhdGUgPSAiMTk5Ny8wMi8wMyI7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIDIgLSAxLCAzKTsKKyAgICAgICAgX3Rlc3RJdDkxNyhmbXQsIG15RGF0ZSwgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZCIpOworICAgICAgICBteURhdGUgPSAiMTk5NzAzMDQiOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAzIC0gMSwgNCk7CisgICAgICAgIF90ZXN0SXQ5MTcoZm10LCBteURhdGUsIGNhbC5nZXRUaW1lKCkpOworICAgIAorICAgIH0KKyAgICAKKyAgICAvLyBpbnRlcm5hbCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdFJ1blRvZ2V0aGVyUGF0dGVybjkxNworICAgIHB1YmxpYyB2b2lkIF90ZXN0SXQ5MTcoU2ltcGxlRGF0ZUZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIERhdGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgbG9nbG4oInBhdHRlcm49IiArIGZtdC50b1BhdHRlcm4oKSArICIgICBzdHJpbmc9IiArIHN0cik7CisgICAgICAgIERhdGUgbyA9IG5ldyBEYXRlKCk7CisgICAgICAgIG8gPSAoRGF0ZSkgKChEYXRlRm9ybWF0KSBmbXQpLnBhcnNlT2JqZWN0KHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBsb2dsbigiUGFyc2VkIG9iamVjdDogIiArIG8pOworICAgICAgICBpZiAobyA9PSBudWxsIHx8ICFvLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgU3RyaW5nIGZvcm1hdHRlZCA9IG89PW51bGw/ICJudWxsIiA6ICgoRGF0ZUZvcm1hdCkgZm10KS5mb3JtYXQobyk7CisgICAgICAgIGxvZ2xuKCAiRm9ybWF0dGVkIHN0cmluZzogIiArIGZvcm1hdHRlZCk7CisgICAgICAgIGlmICghZm9ybWF0dGVkLmVxdWFscyhzdHIpKQorICAgICAgICAgICAgZXJybG4oICJGQUlMOiBFeHBlY3RlZCAiICsgc3RyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBoYW5kbGluZyBvZiBDemVjaCBKdW5lIGFuZCBKdWx5LCB3aGljaCBoYXZlIHRoZSB1bmlxdWUgYXR0cmlidXRlIHRoYXQKKyAgICAgKiBvbmUgaXMgYSBwcm9wZXIgcHJlZml4IHN1YnN0cmluZyBvZiB0aGUgb3RoZXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEN6ZWNoTW9udGhzNDU5KCkgeworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgbmV3IExvY2FsZSgiY3MiLCAiIiwgIiIpKTsgCisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuICIgKyAoKFNpbXBsZURhdGVGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCkpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KVU5FLCAxNSk7CisgICAgICAgIERhdGUganVuZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpVTFksIDE1KTsKKyAgICAgICAgRGF0ZSBqdWx5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIGp1bmVTdHIgPSBmbXQuZm9ybWF0KGp1bmUpOworICAgICAgICBTdHJpbmcganVseVN0ciA9IGZtdC5mb3JtYXQoanVseSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0KEp1bmUgMTUgMTk5NykgPSAiICsganVuZVN0cik7CisgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoanVuZVN0cik7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBpbnQgbW9udGgsIHlyLCBkYXksIGhyLCBtaW4sIHNlYzsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICAgICAgeXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpIC0gMTkwMDsKKyAgICAgICAgICAgIG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGhyID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgICAgICBtaW4gPSBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisgICAgICAgICAgICBzZWMgPSBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCk7CisgICAgICAgICAgICBsb2dsbigiICAuIHBhcnNlIC4gIiArIHMgKyAiIChtb250aCA9ICIgKyBtb250aCArICIpIik7CisgICAgICAgICAgICBpZiAobW9udGggIT0gQ2FsZW5kYXIuSlVORSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTW9udGggc2hvdWxkIGJlIEp1bmUiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQoSnVseSAxNSAxOTk3KSA9ICIgKyBqdWx5U3RyKTsKKyAgICAgICAgICAgIGQgPSBmbXQucGFyc2UoanVseVN0cik7CisgICAgICAgICAgICBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICAgICAgeXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpIC0gMTkwMDsKKyAgICAgICAgICAgIG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGhyID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgICAgICBtaW4gPSBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisgICAgICAgICAgICBzZWMgPSBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCk7CisgICAgICAgICAgICBsb2dsbigiICAuIHBhcnNlIC4gIiArIHMgKyAiIChtb250aCA9ICIgKyBtb250aCArICIpIik7CisgICAgICAgICAgICBpZiAobW9udGggIT0gQ2FsZW5kYXIuSlVMWSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTW9udGggc2hvdWxkIGJlIEp1bHkiKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGhhbmRsaW5nIG9mICdEJyBpbiBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TGV0dGVyRFBhdHRlcm4yMTIoKSB7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gIjE5OTUtMDQwLjA1OjAxOjI5IjsKKyAgICAgICAgU3RyaW5nIGJpZ0QgPSAieXl5eS1EREQuaGg6bW06c3MiOworICAgICAgICBTdHJpbmcgbGl0dGxlRCA9ICJ5eXl5LWRkZC5oaDptbTpzcyI7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTUsIDAsIDEsIDUsIDEsIDI5KTsKKyAgICAgICAgRGF0ZSBleHBMaXR0bGVEID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZSBleHBCaWdEID0gbmV3IERhdGUoKGxvbmcpIChleHBMaXR0bGVELmdldFRpbWUoKSArIDM5ICogMjQgKiAzNjAwMDAwLjApKTsKKyAgICAgICAgZXhwTGl0dGxlRCA9IGV4cEJpZ0Q7IC8vIEV4cGVjdCB0aGUgc2FtZSwgd2l0aCBkZWZhdWx0IGxlbmllbnQgcGFyc2luZworICAgICAgICBsb2dsbigiZGF0ZVN0cmluZz0gIiArIGRhdGVTdHJpbmcpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJpZ0QpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIG15RGF0ZSA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICAgICAgICBsb2dsbigiVXNpbmcgIiArIGJpZ0QgKyAiIC4gIiArIG15RGF0ZSk7CisgICAgICAgIGlmICghbXlEYXRlLmVxdWFscyhleHBCaWdEKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwQmlnRCk7CisgICAgICAgIGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGxpdHRsZUQpOworICAgICAgICBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgbXlEYXRlID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJVc2luZyAiICsgbGl0dGxlRCArICIgLiAiICsgbXlEYXRlKTsKKyAgICAgICAgaWYgKCFteURhdGUuZXF1YWxzKGV4cExpdHRsZUQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBMaXR0bGVEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZGF5IG9mIHllYXIgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF5T2ZZZWFyUGF0dGVybjE5NSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZSB0b2RheSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGludCB5ZWFyLG1vbnRoLGRheTsgCisgICAgICAgIHllYXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBtb250aCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkYXkpOworICAgICAgICBEYXRlIGV4cGVjdGVkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgRGF0ZTogIiArIHRvZGF5KTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdClEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICAgICAgICB0cnlQYXR0ZXJuKHNkZiwgdG9kYXksIG51bGwsIGV4cGVjdGVkKTsKKyAgICAgICAgdHJ5UGF0dGVybihzZGYsIHRvZGF5LCAiRyB5eXl5IERERCIsIGV4cGVjdGVkKTsKKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0RGF5T2ZZZWFyUGF0dGVybjE5NQorICAgIHB1YmxpYyB2b2lkIHRyeVBhdHRlcm4oU2ltcGxlRGF0ZUZvcm1hdCBzZGYsIERhdGUgZCwgU3RyaW5nIHBhdHRlcm4sIERhdGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgaWYgKHBhdHRlcm4gIT0gbnVsbCkKKyAgICAgICAgICAgIHNkZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiAiICsgc2RmLnRvUGF0dGVybigpKTsKKyAgICAgICAgU3RyaW5nIGZvcm1hdFJlc3VsdCA9ICgoRGF0ZUZvcm1hdCkgc2RmKS5mb3JtYXQoZCk7CisgICAgICAgIGxvZ2xuKCIgZm9ybWF0IC0+ICIgKyBmb3JtYXRSZXN1bHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBkMiA9IHNkZi5wYXJzZShmb3JtYXRSZXN1bHQpOworICAgICAgICAgICAgbG9nbG4oIiBwYXJzZSgiICsgZm9ybWF0UmVzdWx0ICsgIikgLT4gIiArIGQyKTsKKyAgICAgICAgICAgIGlmICghZDIuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgIFN0cmluZyBmb3JtYXQyID0gKChEYXRlRm9ybWF0KSBzZGYpLmZvcm1hdChkMik7CisgICAgICAgICAgICBsb2dsbigiIGZvcm1hdCAtPiAiICsgZm9ybWF0Mik7CisgICAgICAgICAgICBpZiAoIWZvcm1hdFJlc3VsdC5lcXVhbHMoZm9ybWF0MikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFJvdW5kIHRyaXAgZHJpZnQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBoYW5kbGluZyBvZiBzaW5nbGUgcXVvdGVzIGluIHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RRdW90ZVBhdHRlcm4xNjEoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgJ2F0JyBoaDptbTpzcyBhIHp6eiIsIExvY2FsZS5VUyk7IAorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BVUdVU1QsIDEzLCAxMCwgNDIsIDI4KTsKKyAgICAgICAgRGF0ZSBjdXJyZW50VGltZV8xID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAoKERhdGVGb3JtYXQpIGZvcm1hdHRlcikuZm9ybWF0KGN1cnJlbnRUaW1lXzEpOworICAgICAgICBTdHJpbmcgZXhwID0gIjA4LzEzLzE5OTcgYXQgMTA6NDI6MjggQU0gIjsKKyAgICAgICAgbG9nbG4oImZvcm1hdCgiICsgY3VycmVudFRpbWVfMSArICIpID0gIiArIGRhdGVTdHJpbmcpOworICAgICAgICBpZiAoIWRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGV4cC5sZW5ndGgoKSkuZXF1YWxzKGV4cCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cCk7CisgICAgCisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvcnJlY3QgYmVoYXZpb3Igd2hlbiBoYW5kbGluZyBpbnZhbGlkIGlucHV0IHN0cmluZ3MuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJhZElucHV0MTM1KCkgeworICAgICAgICBpbnQgbG9va3NbXSA9IHtEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkZVTEx9OyAKKyAgICAgICAgaW50IGxvb2tzX2xlbmd0aCA9IGxvb2tzLmxlbmd0aDsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RyaW5ncyA9IHsiTWFyIDE1IiwgIk1hciAxNSAxOTk3IiwgImFzZGYiLCAiMy8xLzk3IDE6MjM6IiwgIjMvMS8wMCAxOjIzOjQ1IEFNIn07IAorICAgICAgICBpbnQgc3RyaW5nc19sZW5ndGggPSBzdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgRGF0ZUZvcm1hdCBmdWxsID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuVVMpOyAKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIk1hcmNoIDEsIDIwMDAgMToyMzo0NSBBTSAiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0cmluZ3NfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyB0ZXh0ID0gc3RyaW5nc1tpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbG9va3NfbGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpbnQgZGF0ZUxvb2sgPSBsb29rc1tqXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGxvb2tzX2xlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0aW1lTG9vayA9IGxvb2tzW2tdOworICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVMb29rLCB0aW1lTG9vaywgTG9jYWxlLlVTKTsgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwcmVmaXggPSB0ZXh0ICsgIiwgIiArIGRhdGVMb29rICsgIi8iICsgdGltZUxvb2sgKyAiOiAiOyAKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgd2hlbiA9IGRmLnBhcnNlKHRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdoZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHByZWZpeCArICJTSE9VTEQgTk9UIEhBUFBFTjogcGFyc2UgcmV0dXJuZWQgbnVsbC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdoZW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmb3JtYXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gZnVsbC5mb3JtYXQod2hlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4ocHJlZml4ICsgIk9LOiAiICsgZm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvcm1hdC5zdWJzdHJpbmcoMCwgZXhwZWN0ZWQubGVuZ3RoKCkpLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gcGFyc2luZyBhbiBhcnJheSBvZiBpbnB1dHMgYWdhaW5zdCBhbgorICAgICAqIGFycmF5IG9mIHBhdHRlcm5zLCB3aXRoIGtub3duIHJlc3VsdHMuICBUaGUgcmVzdWx0cyBhcmUgZW5jb2RlZCBhZnRlcgorICAgICAqIHRoZSBpbnB1dCBzdHJpbmdzIGluIGVhY2ggcm93LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYWRJbnB1dDEzNWEoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGF0ZVBhcnNlID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIiIsIExvY2FsZS5VUyk7CisgICAgICAgIGZpbmFsIFN0cmluZyBzczsKKyAgICAgICAgRGF0ZSBkYXRlOworICAgICAgICBTdHJpbmdbXSBwYXJzZUZvcm1hdHMgPXsiTU1NTSBkLCB5eXl5IiwgIk1NTU0gZCB5eXl5IiwgIk0vZC95eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkIE1NTU0sIHl5eXkiLCAiZCBNTU1NIHl5eXkiLCAgImQgTU1NTSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNTU1NIGQiLCAieXl5eSIsICJoOm1tIGEgTU1NTSBkLCB5eXl5IiB9OworICAgICAgICBTdHJpbmdbXSBpbnB1dFN0cmluZ3MgPSB7CisgICAgICAgICAgICAiYm9ndXMgc3RyaW5nIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiQXByaWwgMSwgMTk5NyIsICJBcHJpbCAxLCAxOTk3IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIkFwcmlsIDEiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgICJKYW4gMSwgMTk3MCIsICJKYW51YXJ5IDEsIDE5NzAiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiSmFudWFyeSAxIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiSmFuIDEgMjAzNyIsIG51bGwsICJKYW51YXJ5IDEgMjAzNyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJKYW51YXJ5IDEiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgICIxLzEvNzAiLCBudWxsLCBudWxsLCAiMS8xLzcwIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjAwMDEiLCBudWxsLAorICAgICAgICAgICAgICAgICI1IE1heSAxOTk3IiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIjUgTWF5IDE5OTciLCAiNSBNYXkiLCBudWxsLCAiMDAwNSIsIG51bGwsCisgICAgICAgICAgICAgICAgIjE2IE1heSIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIxNiBNYXkiLCBudWxsLCAiMDAxNiIsIG51bGwsCisgICAgICAgICAgICAgICAgIkFwcmlsIDMwIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIkFwcmlsIDMwIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMTk5OCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIxOTk4IiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMSIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIwMDAxIiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMzowMCBwbSBKYW4gMSwgMTk5NyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIwMDAzIiwgIjM6MDAgUE0gSmFudWFyeSAxLCAxOTk3IiwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICBmaW5hbCBpbnQgUEZfTEVOR1RIID0gcGFyc2VGb3JtYXRzLmxlbmd0aDsKKyAgICAgICAgZmluYWwgaW50IElOUFVUX0xFTkdUSCA9IGlucHV0U3RyaW5ncy5sZW5ndGg7CisgICAgCisgICAgICAgIGRhdGVQYXJzZS5hcHBseVBhdHRlcm4oImQgTU1NTSwgeXl5eSIpOworICAgICAgICBkYXRlUGFyc2Uuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc3MgPSAibm90IHBhcnNlYWJsZSI7CisgICAgICAgIC8vICAgIFN0cmluZyB0aGVQYXQ7CisgICAgICAgIGxvZ2xuKCJUcnlpbmcgdG8gcGFyc2UgXCIiICsgc3MgKyAiXCIgd2l0aCAiICsgZGF0ZVBhcnNlLnRvUGF0dGVybigpKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRhdGUgPSBkYXRlUGFyc2UucGFyc2Uoc3MpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJGQUlMOiIgKyBleCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlBVVF9MRU5HVEg7IGkgKz0gKFBGX0xFTkdUSCArIDEpKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24gPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gaW5wdXRTdHJpbmdzW2ldOworICAgICAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IFBGX0xFTkdUSDsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBleHBlY3RlZCA9IGlucHV0U3RyaW5nc1tpICsgMSArIGluZGV4XTsKKyAgICAgICAgICAgICAgICBkYXRlUGFyc2UuYXBwbHlQYXR0ZXJuKHBhcnNlRm9ybWF0c1tpbmRleF0pOworICAgICAgICAgICAgICAgIGRhdGVQYXJzZS5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlUGFyc2UucGFyc2UocywgcGFyc2VQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHMxLCBzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMxID0gcy5zdWJzdHJpbmcoMCwgcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMyID0gcy5zdWJzdHJpbmcocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpLCBzLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IG51bGwgcmVzdWx0IGZtdD1cIiIgKyBwYXJzZUZvcm1hdHNbaW5kZXhdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiBwb3M9IiArIHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBzMSArICJ8IiArIHMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICgoRGF0ZUZvcm1hdCkgZGF0ZVBhcnNlKS5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBhcnNlZCBcIiIgKyBzICsgIlwiIHVzaW5nIFwiIiArIGRhdGVQYXJzZS50b1BhdHRlcm4oKSArICJcIiB0bzogIiArIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBwYXJzZSBmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiBmcm9tIFwiIiArIHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiIHdpdGggXCIiICsgZGF0ZVBhcnNlLnRvUGF0dGVybigpKyAiXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkZBSUw6IiArIGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgcGFyc2luZyBvZiB0d28tZGlnaXQgeWVhcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFR3b0RpZ2l0WWVhcigpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMTcgKyAxOTAwLCBDYWxlbmRhci5KVU5FLCA1KTsKKyAgICAgICAgcGFyc2UyRGlnaXRZZWFyKGZtdCwgIjYvNS8xNyIsIGNhbC5nZXRUaW1lKCkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgzNCArIDE5MDAsIENhbGVuZGFyLkpVTkUsIDQpOworICAgICAgICBwYXJzZTJEaWdpdFllYXIoZm10LCAiNi80LzM0IiwgY2FsLmdldFRpbWUoKSk7CisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0VHdvRGlnaXRZZWFyCisgICAgcHVibGljIHZvaWQgcGFyc2UyRGlnaXRZZWFyKERhdGVGb3JtYXQgZm10LCBTdHJpbmcgc3RyLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXJzaW5nIFwiIisgc3RyKyAiXCIgd2l0aCAiKyAoKFNpbXBsZURhdGVGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCkKKyAgICAgICAgICAgICAgICAgICAgKyAiICA9PiAiKyBkKTsgCisgICAgICAgICAgICBpZiAoIWQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBlcnJsbiggIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmb3JtYXR0aW5nIG9mIHRpbWUgem9uZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRab25lMDYxKCkgeworICAgICAgICBEYXRlIGRhdGU7CisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBkYXRlID0gbmV3IERhdGUoODU5MjQ4MDAwMDAwbCk7CisgICAgICAgIGxvZ2xuKCJEYXRlIDE5OTcvMy8yNSAwMDowMCBHTVQ6ICIgKyBkYXRlKTsKKyAgICAgICAgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkLU1NTS15eXl5eSBISDptbSIsIExvY2FsZS5VSyk7CisgICAgICAgIGZvcm1hdHRlci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworICAgICAgICBTdHJpbmcgdGVtcCA9IGZvcm1hdHRlci5mb3JtYXQoZGF0ZSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgaW4gR01UIHRvOiAiICsgdGVtcCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIHRlbXBEYXRlID0gZm9ybWF0dGVyLnBhcnNlKHRlbXApOworICAgICAgICAgICAgbG9nbG4oIlBhcnNlZCB0bzogIiArIHRlbXBEYXRlKTsKKyAgICAgICAgICAgIGlmICghdGVtcERhdGUuZXF1YWxzKGRhdGUpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZGF0ZSArICIgR290OiAiICsgdGVtcERhdGUpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZvcm1hdHRpbmcgb2YgdGltZSB6b25lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdFpvbmUxNDYoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVEZWZhdWx0ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIAorICAgICAgICAvL3RyeSB7CisgICAgICAgIFRpbWVab25lIHRoZWRlZmF1bHQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQodGhlZGVmYXVsdCk7CisgICAgICAgIC8vIGphdmEudXRpbC5Mb2NhbGUuc2V0RGVmYXVsdChuZXcgamF2YS51dGlsLkxvY2FsZSgiYXIiLCAiIiwgIiIpKTsKKyAgICAKKyAgICAgICAgLy8gY2hlY2sgdG8gYmUgc3VyZS4uLiBpdHMgR01UIGFsbCByaWdodAorICAgICAgICBUaW1lWm9uZSB0ZXN0ZGVmYXVsdCA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIHRlc3R0aW1lem9uZSA9IHRlc3RkZWZhdWx0LmdldElEKCk7CisgICAgICAgIGlmICh0ZXN0dGltZXpvbmUuZXF1YWxzKCJHTVQiKSkKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHRpbWV6b25lID0gIiArIHRlc3R0aW1lem9uZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IHRpbWV6b25lIHNob3VsZCBiZSBHTVQsIG5vdCAiICsgdGVzdHRpbWV6b25lKTsKKyAgICAKKyAgICAgICAgLy8gbm93IHRyeSB0byB1c2UgdGhlIGRlZmF1bHQgR01UIHRpbWUgem9uZQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBncmVlbndpY2hjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCAzLCA0LCAyMywgMCk7CisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKipncmVlbndpY2hjYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICAvL2dyZWVud2ljaGNhbGVuZGFyLnNldCgxOTk3LCAzLCA0LCAyMywgMCk7CisgICAgICAgIC8vIHRyeSBhbnl0aGluZyB0byBzZXQgaG91ciB0byAyMzowMCAhISEKKyAgICAgICAgZ3JlZW53aWNoY2FsZW5kYXIuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyMyk7CisgICAgICAgIC8vIGdldCB0aW1lCisgICAgICAgIERhdGUgZ3JlZW53aWNoZGF0ZSA9IGdyZWVud2ljaGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgLy8gZm9ybWF0IGV2ZXJ5IHdheQorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgICAgICJzaW1wbGUgZm9ybWF0OiAgIiwgIjA0LzA0Lzk3IDIzOjAwIEdNVCswMDowMCIsIAorICAgICAgICAgICAgICAgICJNTS9kZC95eSBISDptbSB6enoiLCAiZnVsbCBmb3JtYXQ6ICAgICIsIAorICAgICAgICAgICAgICAgICJGcmlkYXksIEFwcmlsIDQsIDE5OTcgMTE6MDA6MDAgbydjbG9jayBQTSBHTVQrMDA6MDAiLCAKKyAgICAgICAgICAgICAgICAiRUVFRSwgTU1NTSBkLCB5eXl5IGg6bW06c3MgJ28nJ2Nsb2NrJyBhIHp6eiIsIAorICAgICAgICAgICAgICAgICJsb25nIGZvcm1hdDogICAgIiwgIkFwcmlsIDQsIDE5OTcgMTE6MDA6MDAgUE0gR01UKzAwOjAwIiwgCisgICAgICAgICAgICAgICAgIk1NTU0gZCwgeXl5eSBoOm1tOnNzIGEgeiIsICJkZWZhdWx0IGZvcm1hdDogIiwgCisgICAgICAgICAgICAgICAgIjA0LUFwci05NyAxMTowMDowMCBQTSIsICJkZC1NTU0teXkgaDptbTpzcyBhIiwgCisgICAgICAgICAgICAgICAgInNob3J0IGZvcm1hdDogICAiLCAiNC80Lzk3IDExOjAwIFBNIiwgCisgICAgICAgICAgICAgICAgIk0vZC95eSBoOm1tIGEifTsgCisgICAgICAgIGludCBEQVRBX2xlbmd0aCA9IERBVEEubGVuZ3RoOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IERBVEFfbGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoREFUQVtpICsgMl0sIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihncmVlbndpY2hjYWxlbmRhcik7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm10LmZvcm1hdChncmVlbndpY2hkYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKERBVEFbaV0gKyByZXN1bHQpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKERBVEFbaSArIDFdKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIERBVEFbaSArIDFdICsgIiwgZ290ICIgKyByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIC8vfQorICAgICAgICAvL2ZpbmFsbHkgeworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVEZWZhdWx0KTsKKyAgICAgICAgLy99CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZvcm1hdHRpbmcgb2YgZGF0ZXMgaW4gZGlmZmVyZW50IGxvY2FsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZURhdGVGb3JtYXQoKSB7CisgICAgCisgICAgICAgIERhdGUgdGVzdERhdGUgPSBuZXcgRGF0ZSg4NzQzMDY4MDAwMDBsKTsgLy9Nb24gU2VwIDE1IDAwOjAwOjAwIFBEVCAxOTk3CisgICAgICAgIERhdGVGb3JtYXQgZGZGcmVuY2ggPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5GUkVOQ0gpOworICAgICAgICBEYXRlRm9ybWF0IGRmVVMgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5VUyk7CisgICAgICAgIC8vU2V0IFRpbWVab25lID0gUERUCisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBkZkZyZW5jaC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIGRmVVMuc2V0VGltZVpvbmUodHopOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRGUkVOQ0hfSkRLMTIgPSAibHVuZGkgMTUgc2VwdGVtYnJlIDE5OTcgMDAgaCAwMCBIQVAgKFx1MDBDOVVBKSI7CisgICAgICAgIC8vU3RyaW5nIGV4cGVjdGVkRlJFTkNIID0gImx1bmRpIDE1IHNlcHRlbWJyZSAxOTk3IDAwIGggMDAgUERUIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkVVMgPSAiTW9uZGF5LCBTZXB0ZW1iZXIgMTUsIDE5OTcgMTI6MDA6MDAgQU0gUFQiOworICAgICAgICBsb2dsbigiRGF0ZSBzZXQgdG8gOiAiICsgdGVzdERhdGUpOworICAgICAgICBTdHJpbmcgb3V0ID0gZGZGcmVuY2guZm9ybWF0KHRlc3REYXRlKTsKKyAgICAgICAgbG9nbG4oIkRhdGUgRm9ybWF0ZWQgd2l0aCBGcmVuY2ggTG9jYWxlICIgKyBvdXQpOworICAgICAgICAvL2ZpeCB0aGUgamRrIHJlc291cmNlcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGpkayAxLjIgYW5kIGpkayAxLjMKKyAgICAgICAgLyogb3VyIG93biBkYXRhIG9ubHkgaGFzIEdNVC14eHh4IGluZm9ybWF0aW9uIGhlcmUKKyAgICAgICAgU3RyaW5nIGphdmFWZXJzaW9uID0gU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlcnNpb24iKTsKKyAgICAgICAgaWYgKGphdmFWZXJzaW9uLnN0YXJ0c1dpdGgoIjEuMiIpKSB7CisgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWRGUkVOQ0hfSkRLMTIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRGUkVOQ0hfSkRLMTIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkRlJFTkNIKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkRlJFTkNIKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWRGUkVOQ0hfSkRLMTIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZEZSRU5DSF9KREsxMik7CisgICAgICAgIG91dCA9IGRmVVMuZm9ybWF0KHRlc3REYXRlKTsKKyAgICAgICAgbG9nbG4oIkRhdGUgRm9ybWF0ZWQgd2l0aCBVUyBMb2NhbGUgIiArIG91dCk7CisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZFVTKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRVUyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBEYXRlRm9ybWF0KENhbGVuZGFyKSBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdENhbGVuZGFyKCkgeworICAgICAgICBEYXRlRm9ybWF0IGRhdGU9bnVsbCwgdGltZT1udWxsLCBmdWxsPW51bGw7CisgICAgICAgIENhbGVuZGFyIGNhbD1udWxsOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICBEYXRlIHdoZW47CisKKyAgICAgICAgLyogQ3JlYXRlIGEgZm9ybWF0dGVyIGZvciBkYXRlIGZpZWxkcy4gKi8KKyAgICAgICAgZGF0ZSA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIExvY2FsZS5VUyk7CisgICAgICAgIGlmIChkYXRlID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREYXRlSW5zdGFuY2UgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiBDcmVhdGUgYSBmb3JtYXR0ZXIgZm9yIHRpbWUgZmllbGRzLiAqLworICAgICAgICB0aW1lID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKHRpbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFRpbWVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGZ1bGwgZm9ybWF0IGZvciBvdXRwdXQgKi8KKyAgICAgICAgZnVsbCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuVVMpOworICAgICAgICBpZiAoZnVsbCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0SW5zdGFuY2UgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiBDcmVhdGUgYSBjYWxlbmRhciAqLworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoY2FsID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5nZXRJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFBhcnNlIHRoZSBkYXRlICovCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBzdHIgPSAiNC81LzIwMDEiOworICAgICAgICBwb3Muc2V0SW5kZXgoMCk7CisgICAgICAgIGRhdGUucGFyc2Uoc3RyLCBjYWwsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0LnBhcnNlKDQvNS8yMDAxKSBmYWlsZWQgYXQgIiArCisgICAgICAgICAgICAgICAgICBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiBQYXJzZSB0aGUgdGltZSAqLworICAgICAgICBzdHIgPSAiNTo0NSBQTSI7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgdGltZS5wYXJzZShzdHIsIGNhbCwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQucGFyc2UoMTc6NDUpIGZhaWxlZCBhdCAiICsKKyAgICAgICAgICAgICAgICAgIHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBDaGVjayByZXN1bHQgKi8KKyAgICAgICAgd2hlbiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHN0ciA9IGZ1bGwuZm9ybWF0KHdoZW4pOworICAgICAgICAvLyBUaHVyc2RheSwgQXByaWwgNSwgMjAwMSA1OjQ1OjAwIFBNIFBEVCA5ODY1MTc5MDAwMDAKKyAgICAgICAgaWYgKHdoZW4uZ2V0VGltZSgpID09IDk4NjUxNzkwMDAwMC4wKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IFBhcnNlZCByZXN1bHQ6ICIgKyBzdHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnNlZCByZXN1bHQ6ICIgKyBzdHIgKyAiLCBleHAgNC81LzIwMDEgNTo0NSBQTSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBEYXRlRm9ybWF0J3MgcGFyc2luZyBvZiBzcGFjZSBjaGFyYWN0ZXJzLiAgU2VlIGppdHRlcmJ1ZyAxOTE2LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGFjZVBhcnNpbmcoKSB7CisKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIiwKKworICAgICAgICAgICAgLy8gcGF0dGVybiwgaW5wdXQsIGV4cGVjdGVkIG91dHB1dCAoaW4gcXVvdGVzKQorICAgICAgICAgICAgIk1NTU0gZCB5eSIsICIgMDQgMDUgMDYiLCAgbnVsbCwgLy8gTU1NTSB3YW50cyBBcHIvQXByaWwKKyAgICAgICAgICAgIG51bGwsICAgICAgICAiMDQgMDUgMDYiLCAgIG51bGwsCisgICAgICAgICAgICAiTU0gZCB5eSIsICAgIiAwNCAwNSAwNiIsICAiMjAwNiAwNCAwNSIsCisgICAgICAgICAgICBudWxsLCAgICAgICAgIjA0IDA1IDA2IiwgICAiMjAwNiAwNCAwNSIsCisgICAgICAgICAgICAiTU1NTSBkIHl5IiwgIiBBcHIgMDUgMDYiLCAiMjAwNiAwNCAwNSIsCisgICAgICAgICAgICBudWxsLCAgICAgICAgIkFwciAwNSAwNiIsICAiMjAwNiAwNCAwNSIsCisgICAgICAgIH07CisKKyAgICAgICAgZXhwZWN0UGFyc2UoREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGhhbmRsaW5nIG9mICJISG1tc3MiIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEV4YWN0Q291bnRGb3JtYXQoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbTpzcyIsCisKKyAgICAgICAgICAgIC8vIHBhdHRlcm4sIGlucHV0LCBleHBlY3RlZCBwYXJzZSBvciBudWxsIGlmIGV4cGVjdCBwYXJzZSBmYWlsdXJlCisgICAgICAgICAgICAiSEhtbXNzIiwgIjEyMzQ1NiIsICIxOTcwIDAxIDAxIDEyOjM0OjU2IiwKKyAgICAgICAgICAgIG51bGwsICAgICAiMTIzNDUiLCAgIjE5NzAgMDEgMDEgMDE6MjM6NDUiLAorICAgICAgICAgICAgbnVsbCwgICAgICIxMjM0IiwgICBudWxsLAorICAgICAgICAgICAgbnVsbCwgICAgICIwMC0wNSIsICBudWxsLAorICAgICAgICAgICAgbnVsbCwgICAgICIxMi0zNCIsICBudWxsLAorICAgICAgICAgICAgbnVsbCwgICAgICIwMCswNSIsICBudWxsLAorICAgICAgICAgICAgImFoaG1tIiwgICJQTTczMCIsICAiMTk3MCAwMSAwMSAxOTozMDowMCIsCisgICAgICAgIH07CisKKyAgICAgICAgZXhwZWN0UGFyc2UoREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGhhbmRsaW5nIG9mIHdoaXRlIHNwYWNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RXaGl0ZVNwYWNlUGFyc2luZygpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIiwKKworICAgICAgICAgICAgLy8gcGF0dGVybiwgaW5wdXQsIGV4cGVjdGVkIHBhcnNlIG9yIG51bGwgaWYgZXhwZWN0IHBhcnNlIGZhaWx1cmUKKworICAgICAgICAgICAgLy8gUGF0dGVybiBzcGFjZSBydW4gc2hvdWxkIHBhcnNlIGlucHV0IHRleHQgc3BhY2UgcnVuCisgICAgICAgICAgICAiTU0gICBkIHl5IiwgICAiIDA0IDAxIDAzIiwgICAgIjIwMDMgMDQgMDEiLAorICAgICAgICAgICAgbnVsbCwgICAgICAgICAgIiAwNCAgMDEgICAwMyAiLCAiMjAwMyAwNCAwMSIsCisgICAgICAgIH07CisKKyAgICAgICAgZXhwZWN0UGFyc2UoREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZFBhdHRlcm4oKSB7CisgICAgICAgIEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIlllc3RlcmRheSIpOworICAgICAgICAgICAgb3V0ID0gZi5mb3JtYXQobmV3IERhdGUoMCkpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGUgPSBlMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZSAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IFJlY2VpdmVkICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgZXhjZXB0aW9uLCBnb3QgIiArIGYudG9QYXR0ZXJuKCkgKworICAgICAgICAgICAgICAgICAgIjsgIiArIG91dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R3JlZWtNYXkoKSB7CisgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKC05ODk2MDgwODQ4MDAwTCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRUUsIGRkIE1NTU0geXl5eSBoOm1tOnNzIGEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsICIiLCAiIikpOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdChkYXRlKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBkMiA9IGZtdC5wYXJzZShzdHIsIHBvcyk7CisgICAgICAgIGlmICghZGF0ZS5lcXVhbHMoZDIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdW5hYmxlIHRvIHBhcnNlIHN0cmluZ3Mgd2hlcmUgY2FzZS1mb2xkaW5nIGNoYW5nZXMgbGVuZ3RoIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RXJyb3JDaGVja2luZygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgc2RmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKC0xLCAtMSwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBleGNlcHRpb24gZm9yIGdldERhdGVUaW1lSW5zdGFuY2UoLTEsIC0xLCBMb2NhbGUpIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJvbmUgb2siKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFeHBlY3RlZCBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGdvdDogIiArIGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJhYWJiY2NjIik7CisgICAgICAgICAgICBkZi5mb3JtYXQobmV3IERhdGUoKSk7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBmb3JtYXQgd2l0aCBiYWQgcGF0dGVybiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgbG9nbG4oInR3byBvayIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkV4cGVjdGVkIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgZ290OiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkL01NL3l5Iik7IC8vIG9wcG9zaXRlIG9mIHRleHQKKyAgICAgICAgICAgIGZtdC5zZXQyRGlnaXRZZWFyU3RhcnQoZ2V0RGF0ZSgyMDAzLCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjEyLzI1LzAzIjsKKyAgICAgICAgICAgIENhbGVuZGFyIHhjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIHhjYWwuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBmbXQucGFyc2UodGV4dCwgeGNhbCwgcHApOyAvLyBzaG91bGQgZ2V0IHBhcnNlIGVycm9yIG9uIHNlY29uZCBmaWVsZCwgbm90IGxlbmllbnQKKyAgICAgICAgICAgIGlmIChwcC5nZXRFcnJvckluZGV4KCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgcGFyc2UgZXJyb3IiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInRocmVlIG9rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hpbmVzZURhdGVGb3JtYXRMb2NhbGl6ZWRQYXR0ZXJuQ2hhcnMoKSB7CisgICAgICAgIC8vIGpiIDQ5MDQKKyAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGNhbiBkaXNwbGF5IGxvY2FsaXplZCB2ZXJzaW9ucyBvZiB0aGUgY2hhcnMgdXNlZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAvLyBjaGluZXNlIGRhdGUgZm9ybWF0IHBhdHRlcm5zCisgICAgICAgIENhbGVuZGFyIGNoaW5lc2VDYWxlbmRhciA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgY2hpbmVzZUNhbGVuZGFyLnNldFRpbWVJbk1pbGxpcygobmV3IERhdGUoKSkuZ2V0VGltZSgpKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBsb25nQ2hpbmVzZURhdGVGb3JtYXQgPSAKKyAgICAgICAgICAgIChTaW1wbGVEYXRlRm9ybWF0KWNoaW5lc2VDYWxlbmRhci5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLkNISU5BICk7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoIGNoaW5lc2VDYWxlbmRhciwgTG9jYWxlLkNISU5BICk7CisgICAgICAgIGxvbmdDaGluZXNlRGF0ZUZvcm1hdC5zZXREYXRlRm9ybWF0U3ltYm9scyggZGZzICk7CisgICAgICAgIC8vIFRoaXMgbmV4dCBsaW5lIHRocm93cyB0aGUgZXhjZXB0aW9uCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgbG9uZ0Zvcm1hdFBhdHRlcm4gPSBsb25nQ2hpbmVzZURhdGVGb3JtYXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGxvY2FsaXplZCBwYXR0ZXJuOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpOworICAgICAgICBsb2dsbigidGltZTogIiArIGYuZm9ybWF0KG5vdykpOworCisgICAgICAgIGludCBoYXNoID0gZi5oYXNoQ29kZSgpOyAvLyBzaWdoLCBldmVyeW9uZSBvdmVycmlkZXMgdGhpcworICAgICAgICAKKyAgICAgICAgZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoY2FsKTsKKyAgICAgICAgaWYoaGFzaCA9PSBmLmhhc2hDb2RlKCkpeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGhhc2hDb2RlIGVxdWFsIGZvciBpbmVxdWFsIG9iamVjdHMiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigidGltZSBhZ2FpbjogIiArIGYuZm9ybWF0KG5vdykpOworCisgICAgICAgIGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCk7CisgICAgICAgIGxvZ2xuKCJ0aW1lIHlldCBhZ2FpbjogIiArIGYuZm9ybWF0KG5vdykpOworCisgICAgICAgIGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICAgICAgICBsb2dsbigidGltZSB5ZXQgYWdhaW46ICIgKyBmLmZvcm1hdChub3cpKTsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwiZGVfREUiKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKHJiLCBMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bTIgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpc3ltLmNsb25lKCk7CisgICAgICAgIGlmIChzeW0uaGFzaENvZGUoKSAhPSBzeW0yLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsLCBkYXRlIGZvcm1hdCBzeW1ib2xzIGhhc2hjb2RlIG5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgICAgIGlmICghc3ltLmVxdWFscyhzeW0yKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWwsIGRhdGUgZm9ybWF0IHN5bWJvbHMgbm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIExvY2FsZSBmb28gPSBuZXcgTG9jYWxlKCJmdSIsICJGVSIsICJCQVIiKTsKKyAgICAgICAgcmIgPSBudWxsOworICAgICAgICBzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoR3JlZ29yaWFuQ2FsZW5kYXIuY2xhc3MsIGZvbyk7CisgICAgICAgIHN5bS5lcXVhbHMobnVsbCk7CisgICAgICAgIAorICAgICAgICBzeW0gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIHN5bSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMobmV3IENoaW5lc2VDYWxlbmRhcigpLCBmb28pOworICAgICAgICAvLyBjb3ZlciBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyLCBVTG9jYWxlKQorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2NhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgc3ltID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhjY2FsLCBVTG9jYWxlLkNISU5BKTsgLy9nY2xzaDEgYWRkCisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAKKyAgICAgICAgZi5mb3JtYXQoKE9iamVjdCljYWwsIGJ1ZiwgcG9zKTsKKyAgICAgICAgZi5mb3JtYXQoKE9iamVjdClub3csIGJ1ZiwgcG9zKTsKKyAgICAgICAgZi5mb3JtYXQoKE9iamVjdCluZXcgTG9uZyhub3cuZ2V0VGltZSgpKSwgYnVmLCBwb3MpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZi5mb3JtYXQoKE9iamVjdCkiSG93ZHkiLCBidWYsIHBvcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBmLmdldE51bWJlckZvcm1hdCgpOworICAgICAgICBmLnNldE51bWJlckZvcm1hdChuZik7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGxlbmllbnQgPSBmLmlzTGVuaWVudCgpOworICAgICAgICBmLnNldExlbmllbnQobGVuaWVudCk7CisgICAgICAgIAorICAgICAgICBVTG9jYWxlIHVsb2MgPSBmLmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpOworICAgICAgICAKKyAgICAgICAgaW50IGhhc2hDb2RlID0gZi5oYXNoQ29kZSgpOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBlcSA9IGYuZXF1YWxzKGYpOworICAgICAgICBlcSA9IGYuZXF1YWxzKG51bGwpOworICAgICAgICBlcSA9IGYuZXF1YWxzKG5ldyBTaW1wbGVEYXRlRm9ybWF0KCkpOworICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXQgZm10ID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0KCJ5eW1tIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIyIik7IC8vIGZld2VyIHN5bWJvbHMgdGhhbiByZXF1aXJlZCAyCisgICAgICAgICAgICAgICAgZXJybG4oIndob29wcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjIyNTUiKTsgLy8gc2hvdWxkIHN1Y2NlZWQgd2l0aCBvYmV5Y291bnQKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIndob29wcyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgibmkgaGFvIik7IC8vIG5vdCBhIG51bWJlciwgc2hvdWxkIGZhaWwKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIG5pIGhhbyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2sgbmkgaGFvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgeGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgeGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiayIpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHhidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZwb3MgPSBuZXcgRmllbGRQb3NpdGlvbihDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgICAgICBmbXQuZm9ybWF0KHhjYWwsIHhidWYsIGZwb3MpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoeGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB4YnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICB4Y2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMjUpOworICAgICAgICAgICAgICAgIGZtdC5mb3JtYXQoeGNhbCwgeGJ1ZiwgZnBvcyk7CisgICAgICAgICAgICAgICAgRGF0ZSBkMiA9IGZtdC5wYXJzZSh4YnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBhZ2FpbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGNvdmVyIGdtdCtoaDptbQorICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXkgeiIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCsxMDowMCIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgR01UKzEwOjAwIGZvciBwYXR0ZXJuIE1NL2RkL3l5IHoiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgaW52YWxpZCBzZXBhcmF0b3IgYWZ0ZXIgR01UCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjA3LzEwLzUzIEdNVD0xMDowMCI7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKHRleHQsIHBwKTsKKyAgICAgICAgICAgICAgICBpZihwcC5nZXRJbmRleCgpIT0xMil7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQ9MTA6MDAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiUGFyc2luZyBvZiB0aGUgdGV4dCBzdG9wcGVkIGF0IHBvczogIiArIHBwLmdldEluZGV4KCkgKyAiIGFzIGV4cGVjdGVkIGFuZCBsZW5ndGggaXMgIit0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgYmFkIHRleHQgYWZ0ZXIgR01UKy4KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrYmxlY2NoIik7CisgICAgICAgICAgICAgICAgZXJybG4oIndob29wcyBHTVQrYmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBHTVQrYmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIGJhZCB0ZXh0IGFmdGVyIEdNVCtoaDouCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzA3OmJsZWNjaCIpOworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMgR01UK3h4OmJsZWNjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2sgR01UK3h4OmJsZWNjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBubyAnOicgR01UKyMsICMgPCAyNCAoaGgpCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzA3Iik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQrMDcgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBubyAnOicgR01UKyMsICMgPiAyNCAoaGhtbSkKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrMDczMCIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgR01UKzA3MzAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBubyAnOicgR01UKyMsICMgPiAyNDAwICh0aGlzIHNob3VsZCBmYWlsLCBpIHN1c3BlY3QsIGJ1dCBkb2Vzbid0KQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCswNzMwMCIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJzaG91bGQgR01UKzk5OTkgZmFpbD8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rLCBJIGd1ZXNzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIHJhdyBkaWdpdHMgd2l0aCBubyBsZWFkaW5nIHNpZ24gKGJhZCBSRkM4MjIpIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIDA3Iik7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIDA3IGZvciBwYXR0ZXJuIE1NL2RkL3l5IHogcGFzc2VkISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgcmF3IGRpZ2l0cyAoUkZDODIyKSAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyArMDciKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzICswNyBmb3IgcGF0dGVybiBNTS9kZC95eSB6IGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciByYXcgZGlnaXRzIChSRkM4MjIpIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIC0wNzMwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyAtMDA3MzAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgcmF3IGRpZ2l0cyAoUkZDODIyKSBpbiBEU1QKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10LnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJQRFQiKSk7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyAtMDczMCIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgLTA3MzAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0b0xvY2FsaXplZFBhdHRlcm4KKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJhYWJiY2MiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzLCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGFibGUgdG8gbG9jYWxpemUgYWFiYmNjIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiYWFiYmNjIGxvY2FsaXplIG9rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCInYWFiYmNjIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgZXJybG4oIndob29wcywgbG9jYWxpemUgdW5jbG9zZWQgcXVvdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJsb2NhbGl6ZSB1bmNsb3NlZCBxdW90ZSBvayIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5IHoiKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjA4LzE1LzU4IERCRFkiOyAvLyBib2d1cyB0aW1lIHpvbmUKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10LnBhcnNlKHRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJyZWNvZ25pemVkIGJvZ3VzIHRpbWUgem9uZSBEQkRZIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0aW1lIHpvbmUgZXggb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZm9yY2UgZmFsbGJhY2sgdG8gZGVmYXVsdCB0aW1lem9uZSB3aGVuIGZtdCB0aW1lem9uZSAKKyAgICAgICAgICAgIC8vIGlzIG5vdCBuYW1lZAorICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXkgeiIpOworICAgICAgICAgICAgLy8gZm9yY2UgZmFsbGJhY2sgdG8gZGVmYXVsdCB0aW1lIHpvbmUsIHN0aWxsIGZhaWxzCisgICAgICAgICAgICBmbXQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCswMTQ3IikpOyAvLyBub3QgaW4gZXF1aXZhbGVuY3kgZ3JvdXAKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjA4LzE1LzU4IERCRFkiOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIERCRFkgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBwYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInRpbWUgem9uZSBleDIgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZm9yY2Ugc3VjY2VzcyBvbiBmYWxsYmFjaworICAgICAgICAgICAgdGV4dCA9ICIwOC8xNS81OCAiICsgVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZm91bmQgZGVmYXVsdCB0eiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzLCBnb3QgcGFyc2UgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGZvcmNlIGZhbGxiYWNrIHRvIHN5bWJvbHMgbGlzdCBvZiB0aW1lem9uZXMgd2hlbiBuZWl0aGVyIAorICAgICAgICAgICAgLy8gZm10IGFuZCBkZWZhdWx0IHRpbWV6b25lIGlzIG5hbWVkCisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSB6Iik7CisgICAgICAgICAgICBUaW1lWm9uZSBvbGR0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIFRpbWVab25lIG5ld3R6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCswMTM3Iik7IC8vIG5vbnN0YW5kYXJkIHR6CisgICAgICAgICAgICBmbXQuc2V0VGltZVpvbmUobmV3dHopOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChuZXd0eik7IC8vIHRvZG86IGZpeCBzZWN1cml0eSBpc3N1ZQorCisgICAgICAgICAgICAvLyBmYWxsYmFjayB0byBzeW1ib2wgbGlzdCwgYnV0IGZhaWwKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjA4LzE1LzU4IERCRFkiOyAvLyB0cnkgdG8gcGFyc2UgdGhlIGJvZ3VzIHRpbWUgem9uZQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIERCRFkgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBwYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInRpbWUgem9uZSBleDMgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vIGhtbW0uLi4gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLiAgZG9uJ3Qgd2FudCB0byBleGl0IHRoaXMKKyAgICAgICAgICAgICAgICAvLyBmbiB3aXRoIHRpbWV6b25lIGltcHJvcGVybHkgc2V0LCBzbyBqdXN0IGluIGNhc2UKKyAgICAgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG9sZHR6KTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY3JlYXRlIERGUyB0aGF0IHJlY29nbml6ZXMgb3VyIGJvZ3VzIHRpbWUgem9uZSwgc29ydG9mCisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyB4c3ltID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgICAgICBTdHJpbmdbXVtdIHR6aWRzID0geHN5bS5nZXRab25lU3RyaW5ncygpOworICAgICAgICAgICAgaWYgKHR6aWRzLmxlbmd0aCA+IDApIHsgLy8gbGV0J3MgaG9wZSEKKyAgICAgICAgICAgICAgICB0emlkc1swXVsxXSA9ICJEQkRZIjsgLy8gY2hhbmdlIGEgbG9jYWwgbmFtZQorICAgICAgICAgICAgICAgIGxvZ2xuKCJyZXBsYWNlZCAnIiArIHR6aWRzWzBdWzBdICsgIicgd2l0aCBEQkRZIik7CisKKyAgICAgICAgICAgICAgICB4c3ltLnNldFpvbmVTdHJpbmdzKHR6aWRzKTsKKyAgICAgICAgICAgICAgICBmbXQuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoeHN5bSk7CisKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBmbXQucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJ3ZSBwYXJzZWQgREJEWSAoYXMgR01ULCBidXQgc3RpbGwuLi4pIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoZXksIHN0aWxsIGRpZG4ndCByZWNvZ25pemUgREJEWSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChvbGR0eik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy9jb3ZlciBnZXRBdmFpbGFibGVVTG9jYWxlcworICAgICAgICAgICAgZmluYWwgVUxvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgICAgICBpZiAoY291bnQ9PTApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiIGdvdCBhIGVtcHR5IGxpc3QgZm9yIGdldEF2YWlsYWJsZVVMb2NhbGVzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiIiArIGNvdW50ICsgIiBhdmFpbGFibGUgdWxvY2FsZXMiKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy9jb3ZlciBEYXRlRm9ybWF0U3ltYm9scy5nZXREYXRlRm9ybWF0QnVuZGxlCisgICAgICAgICAgICBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgbXlzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoY2FsLCBsb2MpOworICAgICAgICAgICAgaWYgKG15c3ltID09IG51bGwpIAorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3RzIERhdGVGb3JtYXRTeW1ib2xzIHdpdGggY2FsZW5kYXIgYW5kIGxvY2FsZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdWxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmVzYiA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLCBsb2MpOworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmVzYjIgPSBEYXRlRm9ybWF0U3ltYm9scy5nZXREYXRlRm9ybWF0QnVuZGxlKGNhbCwgdWxvYyk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiMyA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLmdldENsYXNzKCksIGxvYyk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiNCA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLmdldENsYXNzKCksIHVsb2MpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiAoVG9EbykgTm90IHN1cmUgaG93IHRvIGNvbnN0cnVjdCByZXNvdXJjZUJ1bmRsZSBmb3IgdGhpcyB0ZXN0CisgICAgICAgICAgICAgICAgU28gY29tbWVudCBvdXQgdGhlIHZlcmlmeWluZyBjb2RlLiAKKyAgICAgICAgICAgIGlmICghcmVzYi5lcXVhbHMocmVzYjIpIHx8IAorICAgICAgICAgICAgICAgICFyZXNiLmVxdWFscyhyZXNiMykgfHwKKyAgICAgICAgICAgICAgICAhcmVzYi5lcXVhbHMocmVzYjQpICkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0RGF0ZUZvcm1hdEJ1bmRsZSBmYWlsZWQhIik7ICAgICAgICAgICAgCisgICAgICAgICAgICAqLworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN0YW5kQWxvbmVNb250aHMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIEVOX0RBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzIiwKKworICAgICAgICAgICAgInl5eXkgTExMTCBkZCBIOm1tOnNzIiwgImZwIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEiLCAiMjAwNCBNYXJjaCAxMCAxNjozNjozMSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTCBkZCBIOm1tOnNzIiwgICJmcCIsICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwgIjIwMDQgTWFyIDEwIDE2OjM2OjMxIiwgICAiMjAwNCAwMyAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAieXl5eSBMTExMIGRkIEg6bW06c3MiLCAiRiIsICAiMjAwNCAwMyAxMCAxNjozNjozMSIsICIyMDA0IE1hcmNoIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTCBkZCBIOm1tOnNzIiwgICJwZiIsICIyMDA0IE1hciAxMCAxNjozNjozMSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxIiwgIjIwMDQgTWFyIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIkphbnVhcnkiLCAgICIxOTcwIDAxIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwMiAwMSAwOjAwOjAwIiwgIkZlYnJ1YXJ5IiwgICIxOTcwIDAyIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwgIk1hcmNoIiwgICAgICIxOTcwIDAzIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgIkFwcmlsIiwgICAgICIxOTcwIDA0IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNSAwMSAwOjAwOjAwIiwgIk1heSIsICAgICAgICIxOTcwIDA1IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwgIkp1bmUiLCAgICAgICIxOTcwIDA2IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIkp1bHkiLCAgICAgICIxOTcwIDA3IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwOCAwMSAwOjAwOjAwIiwgIkF1Z3VzdCIsICAgICIxOTcwIDA4IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwOSAwMSAwOjAwOjAwIiwgIlNlcHRlbWJlciIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIk9jdG9iZXIiLCAgICIxOTcwIDEwIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAxMSAwMSAwOjAwOjAwIiwgIk5vdmVtYmVyIiwgICIxOTcwIDExIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwgIkRlY2VtYmVyIiwgICIxOTcwIDEyIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJKYW4iLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwMiAwMSAwOjAwOjAwIiwgIkZlYiIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDAzIDAxIDA6MDA6MDAiLCAiTWFyIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDQgMDEgMDowMDowMCIsICJBcHIiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNSAwMSAwOjAwOjAwIiwgIk1heSIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA2IDAxIDA6MDA6MDAiLCAiSnVuIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDcgMDEgMDowMDowMCIsICJKdWwiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwOCAwMSAwOjAwOjAwIiwgIkF1ZyIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLCAiU2VwIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMTAgMDEgMDowMDowMCIsICJPY3QiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAxMSAwMSAwOjAwOjAwIiwgIk5vdiIsICIxOTcwIDExIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDEyIDAxIDA6MDA6MDAiLCAiRGVjIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgQ1NfREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MiLAorCisgICAgICAgICAgICAieXl5eSBMTExMIGRkIEg6bW06c3MiLCAiZnAiLCAiMjAwNCAwNCAxMCAxNjozNjozMSIsICIyMDA0IGR1YmVuIDEwIDE2OjM2OjMxIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTU1NTSBkZCBIOm1tOnNzIiwgImZwIiwgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkdWJuYSAxMCAxNjozNjozMSIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTCBkZCBIOm1tOnNzIiwgICJmcCIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgNC4gMTAgMTY6MzY6MzEiLCAgICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICJ5eXl5IExMTEwgZGQgSDptbTpzcyIsICJGIiwgICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZHViZW4gMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTU1NTSBkZCBIOm1tOnNzIiwgIkYiLCAgIjIwMDQgMDQgMTAgMTY6MzY6MzEiLCAiMjAwNCBkdWJuYSAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAieXl5eSBMTExMIGRkIEg6bW06c3MiLCAicGYiLCAiMjAwNCBkdWJlbiAxMCAxNjozNjozMSIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZHViZW4gMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgInl5eXkgTU1NTSBkZCBIOm1tOnNzIiwgInBmIiwgIjIwMDQgZHVibmEgMTAgMTY6MzY6MzEiLCAiMjAwNCAwNCAxMCAxNjozNjozMSIsICIyMDA0IGR1Ym5hIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgImxlZGVuIiwgICAgICAgICAgICAgICAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDIgMDEgMDowMDowMCIsICJcdTAwRkFub3IiLCAgICAgICAgICAgIjE5NzAgMDIgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDAzIDAxIDA6MDA6MDAiLCAiYlx1MDE1OWV6ZW4iLCAgICAgICAgICIxOTcwIDAzIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgImR1YmVuIiwgICAgICAgICAgICAgICAiMTk3MCAwNCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDUgMDEgMDowMDowMCIsICJrdlx1MDExQnRlbiIsICAgICAgICAgIjE5NzAgMDUgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA2IDAxIDA6MDA6MDAiLCAiXHUwMTBEZXJ2ZW4iLCAgICAgICAgICIxOTcwIDA2IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIlx1MDEwRGVydmVuZWMiLCAgICAgICAiMTk3MCAwNyAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMDggMDEgMDowMDowMCIsICJzcnBlbiIsICAgICAgICAgICAgICAgIjE5NzAgMDggMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLCAielx1MDBFMVx1MDE1OVx1MDBFRCIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTEwiLCAiZnAiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIlx1MDE1OVx1MDBFRGplbiIsICAgICAiMTk3MCAxMCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTExMIiwgImZwIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsICJsaXN0b3BhZCIsICAgICAgICAgICAgIjE5NzAgMTEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMTCIsICJmcCIsICIxOTcwIDEyIDAxIDA6MDA6MDAiLCAicHJvc2luZWMiLCAgICAgICAgICAgICIxOTcwIDEyIDAxIDA6MDA6MDAiLAorCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICIxLiIsICAiMTk3MCAwMSAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwMiAwMSAwOjAwOjAwIiwgIjIuIiwgICIxOTcwIDAyIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDAzIDAxIDA6MDA6MDAiLCAiMy4iLCAgIjE5NzAgMDMgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDQgMDEgMDowMDowMCIsICI0LiIsICAiMTk3MCAwNCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwNSAwMSAwOjAwOjAwIiwgIjUuIiwgICIxOTcwIDA1IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA2IDAxIDA6MDA6MDAiLCAiNi4iLCAgIjE5NzAgMDYgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMDcgMDEgMDowMDowMCIsICI3LiIsICAiMTk3MCAwNyAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAwOCAwMSAwOjAwOjAwIiwgIjguIiwgICIxOTcwIDA4IDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLCAiOS4iLCAgIjE5NzAgMDkgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiTExMIiwgImZwIiwgIjE5NzAgMTAgMDEgMDowMDowMCIsICIxMC4iLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwKKyAgICAgICAgICAgICJMTEwiLCAiZnAiLCAiMTk3MCAxMSAwMSAwOjAwOjAwIiwgIjExLiIsICIxOTcwIDExIDAxIDA6MDA6MDAiLAorICAgICAgICAgICAgIkxMTCIsICJmcCIsICIxOTcwIDEyIDAxIDA6MDA6MDAiLCAiMTIuIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBleHBlY3QoRU5fREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICAgICAgZXhwZWN0KENTX0RBVEEsIG5ldyBMb2NhbGUoImNzIiwgIiIsICIiKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdGFuZEFsb25lRGF5cygpCisgICAgeworICAgICAgICBTdHJpbmcgRU5fREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MiLAorCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA0IDA6MDA6MDAiLCAiU3VuZGF5IiwgICAgIjE5NzAgMDEgMDQgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAiTW9uZGF5IiwgICAgIjE5NzAgMDEgMDUgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLCAiVHVlc2RheSIsICAgIjE5NzAgMDEgMDYgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLCAiV2VkbmVzZGF5IiwgIjE5NzAgMDEgMDcgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiVGh1cnNkYXkiLCAgIjE5NzAgMDEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAiRnJpZGF5IiwgICAgIjE5NzAgMDEgMDIgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDAzIDA6MDA6MDAiLCAiU2F0dXJkYXkiLCAgIjE5NzAgMDEgMDMgMDowMDowMCIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIlN1biIsICIxOTcwIDAxIDA0IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjYyIsICJmcCIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAiTW9uIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJUdWUiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwgIldlZCIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjYyIsICJmcCIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiVGh1IiwgIjE5NzAgMDEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJGcmkiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMyAwOjAwOjAwIiwgIlNhdCIsICIxOTcwIDAxIDAzIDA6MDA6MDAiLAorICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgIFN0cmluZyBDU19EQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCBISDptbTpzcyIsCisKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJuZWRcdTAxMUJsZSIsICAgICAgICIxOTcwIDAxIDA0IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjY2MiLCAiZnAiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwgInBvbmRcdTAxMUJsXHUwMEVEIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLCAiXHUwMEZBdGVyXHUwMEZEIiwgICAiMTk3MCAwMSAwNiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJzdFx1MDE1OWVkYSIsICAgICAgICIxOTcwIDAxIDA3IDA6MDA6MDAiLAorICAgICAgICAgICAgImNjY2MiLCAiZnAiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIlx1MDEwRHR2cnRlayIsICAgICAgIjE5NzAgMDEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjYyIsICJmcCIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAicFx1MDBFMXRlayIsICAgICAgICAiMTk3MCAwMSAwMiAwOjAwOjAwIiwKKyAgICAgICAgICAgICJjY2NjIiwgImZwIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJzb2JvdGEiLCAgICAgICAgICAgICIxOTcwIDAxIDAzIDA6MDA6MDAiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJuZSIsICAgICAgIjE5NzAgMDEgMDQgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsICJwbyIsICAgICAgIjE5NzAgMDEgMDUgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJcdTAwRkF0IiwgIjE5NzAgMDEgMDYgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJzdCIsICAgICAgIjE5NzAgMDEgMDcgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJcdTAxMER0IiwgIjE5NzAgMDEgMDEgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsICJwXHUwMEUxIiwgIjE5NzAgMDEgMDIgMDowMDowMCIsCisgICAgICAgICAgICAiY2NjIiwgImZwIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJzbyIsICAgICAgIjE5NzAgMDEgMDMgMDowMDowMCIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBleHBlY3QoRU5fREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICAgICAgZXhwZWN0KENTX0RBVEEsIG5ldyBMb2NhbGUoImNzIiwgIiIsICIiKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROYXJyb3dOYW1lcygpCisgICAgeworICAgICAgICBTdHJpbmcgRU5fREFUQVtdID0geworICAgICAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzIiwKKworICAgICAgICAgICAgICAgICJ5eXl5IE1NTU1NIGRkIEg6bW06c3MiLCAiMjAwNCAwMyAxMCAxNjozNjozMSIsICIyMDA0IE0gMTAgMTY6MzY6MzEiLAorICAgICAgICAgICAgICAgICJ5eXl5IExMTExMIGRkIEg6bW06c3MiLCAgIjIwMDQgMDMgMTAgMTY6MzY6MzEiLCAiMjAwNCBNIDEwIDE2OjM2OjMxIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiRiIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICJNIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgIkEiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiTSIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICJKIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAiQSIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIk8iLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAiTiIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICJEIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiRiIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICJNIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgIkEiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiTSIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICJKIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNyAwMSAwOjAwOjAwIiwgIkoiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAiQSIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIk8iLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAiTiIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICJEIiwKKworICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA0IDA6MDA6MDAiLCAiUyIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDUgMDowMDowMCIsICJNIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwNiAwOjAwOjAwIiwgIlQiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLCAiVyIsCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJUIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwgIkYiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDAzIDA6MDA6MDAiLCAiUyIsCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwgIk0iLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLCAiVCIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDcgMDowMDowMCIsICJXIiwKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgIlQiLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAiRiIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBDU19EQVRBW10gPSB7CisgICAgICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MiLAorCisgICAgICAgICAgICAgICAgInl5eXkgTExMTEwgZGQgSDptbTpzcyIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZCAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAgICAgInl5eXkgTU1NTU0gZGQgSDptbTpzcyIsICIyMDA0IDA0IDEwIDE2OjM2OjMxIiwgIjIwMDQgZCAxMCAxNjozNjozMSIsCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJsIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwMiAwMSAwOjAwOjAwIiwgIlx1MDBGQSIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDMgMDEgMDowMDowMCIsICJiIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwNCAwMSAwOjAwOjAwIiwgImQiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA1IDAxIDA6MDA6MDAiLCAiayIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMDYgMDEgMDowMDowMCIsICJcdTAxMEQiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA3IDAxIDA6MDA6MDAiLCAiXHUwMTBEIiwKKyAgICAgICAgICAgICAgICAiTU1NTU0iLCAiMTk3MCAwOCAwMSAwOjAwOjAwIiwgInMiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDA5IDAxIDA6MDA6MDAiLCAieiIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMTAgMDEgMDowMDowMCIsICJcdTAxNTkiLAorICAgICAgICAgICAgICAgICJNTU1NTSIsICIxOTcwIDExIDAxIDA6MDA6MDAiLCAibCIsCisgICAgICAgICAgICAgICAgIk1NTU1NIiwgIjE5NzAgMTIgMDEgMDowMDowMCIsICJwIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwMSAwMSAwOjAwOjAwIiwgImwiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDAyIDAxIDA6MDA6MDAiLCAiXHUwMEZBIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwMyAwMSAwOjAwOjAwIiwgImIiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA0IDAxIDA6MDA6MDAiLCAiZCIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDUgMDEgMDowMDowMCIsICJrIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAwNiAwMSAwOjAwOjAwIiwgIlx1MDEwRCIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDcgMDEgMDowMDowMCIsICJcdTAxMEQiLAorICAgICAgICAgICAgICAgICJMTExMTCIsICIxOTcwIDA4IDAxIDA6MDA6MDAiLCAicyIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMDkgMDEgMDowMDowMCIsICJ6IiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAxMCAwMSAwOjAwOjAwIiwgIlx1MDE1OSIsCisgICAgICAgICAgICAgICAgIkxMTExMIiwgIjE5NzAgMTEgMDEgMDowMDowMCIsICJsIiwKKyAgICAgICAgICAgICAgICAiTExMTEwiLCAiMTk3MCAxMiAwMSAwOjAwOjAwIiwgInAiLAorCisgICAgICAgICAgICAgICAgIkVFRUVFIiwgIjE5NzAgMDEgMDQgMDowMDowMCIsICJOIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwNSAwOjAwOjAwIiwgIlAiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDA2IDA6MDA6MDAiLCAiXHUwMERBIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwNyAwOjAwOjAwIiwgIlMiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDAxIDA6MDA6MDAiLCAiXHUwMTBDIiwKKyAgICAgICAgICAgICAgICAiRUVFRUUiLCAiMTk3MCAwMSAwMiAwOjAwOjAwIiwgIlAiLAorICAgICAgICAgICAgICAgICJFRUVFRSIsICIxOTcwIDAxIDAzIDA6MDA6MDAiLCAiUyIsCisKKyAgICAgICAgICAgICAgICAiY2NjY2MiLCAiMTk3MCAwMSAwNCAwOjAwOjAwIiwgIk4iLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDA1IDA6MDA6MDAiLCAiUCIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDYgMDowMDowMCIsICJcdTAwREEiLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDA3IDA6MDA6MDAiLCAiUyIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDEgMDowMDowMCIsICJcdTAxMEMiLAorICAgICAgICAgICAgICAgICJjY2NjYyIsICIxOTcwIDAxIDAyIDA6MDA6MDAiLCAiUCIsCisgICAgICAgICAgICAgICAgImNjY2NjIiwgIjE5NzAgMDEgMDMgMDowMDowMCIsICJTIiwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGV4cGVjdEZvcm1hdChFTl9EQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgICAgICAgICAgZXhwZWN0Rm9ybWF0KENTX0RBVEEsIG5ldyBMb2NhbGUoImNzIiwgIiIsICIiKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFcmFzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBFTl9EQVRBW10gPSB7CisgICAgICAgICAgICAieXl5eSBNTSBkZCIsCisKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgRyIsICAgICJmcCIsICIxOTUxIDA3IDE3IiwgIkp1bHkgMTcgMTk1MSBBRCIsICAgICAgICAgICIxOTUxIDA3IDE3IiwKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgR0ciLCAgICJmcCIsICIxOTUxIDA3IDE3IiwgIkp1bHkgMTcgMTk1MSBBRCIsICAgICAgICAgICIxOTUxIDA3IDE3IiwKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgR0dHIiwgICJmcCIsICIxOTUxIDA3IDE3IiwgIkp1bHkgMTcgMTk1MSBBRCIsICAgICAgICAgICIxOTUxIDA3IDE3IiwKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgR0dHRyIsICJmcCIsICIxOTUxIDA3IDE3IiwgIkp1bHkgMTcgMTk1MSBBbm5vIERvbWluaSIsICIxOTUxIDA3IDE3IiwKKworICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHIiwgICAgImZwIiwgIi00MzggMDcgMTciLCAiSnVseSAxNyAwNDM5IEJDIiwgICAgICAgICAgICAiLTQzOCAwNyAxNyIsCisgICAgICAgICAgICAiTU1NTSBkZCB5eXl5IEdHIiwgICAiZnAiLCAiLTQzOCAwNyAxNyIsICJKdWx5IDE3IDA0MzkgQkMiLCAgICAgICAgICAgICItNDM4IDA3IDE3IiwKKyAgICAgICAgICAgICJNTU1NIGRkIHl5eXkgR0dHIiwgICJmcCIsICItNDM4IDA3IDE3IiwgIkp1bHkgMTcgMDQzOSBCQyIsICAgICAgICAgICAgIi00MzggMDcgMTciLAorICAgICAgICAgICAgIk1NTU0gZGQgeXl5eSBHR0dHIiwgImZwIiwgIi00MzggMDcgMTciLCAiSnVseSAxNyAwNDM5IEJlZm9yZSBDaHJpc3QiLCAiLTQzOCAwNyAxNyIsCisgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdChFTl9EQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKy8qICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RRdWFydGVycygpCisgICAgeworICAgICAgICBTdHJpbmcgRU5fREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQiLAorCisgICAgICAgICAgICAiUSIsICAgICJmcCIsICIxOTcwIDAxIDAxIiwgIjEiLCAgICAgICAgICAgIjE5NzAgMDEgMDEiLAorICAgICAgICAgICAgIlFRIiwgICAiZnAiLCAiMTk3MCAwNCAwMSIsICIwMiIsICAgICAgICAgICIxOTcwIDA0IDAxIiwKKyAgICAgICAgICAgICJRUVEiLCAgImZwIiwgIjE5NzAgMDcgMDEiLCAiUTMiLCAgICAgICAgICAiMTk3MCAwNyAwMSIsCisgICAgICAgICAgICAiUVFRUSIsICJmcCIsICIxOTcwIDEwIDAxIiwgIjR0aCBxdWFydGVyIiwgIjE5NzAgMTAgMDEiLAorCisgICAgICAgICAgICAicSIsICAgICJmcCIsICIxOTcwIDAxIDAxIiwgIjEiLCAgICAgICAgICAgIjE5NzAgMDEgMDEiLAorICAgICAgICAgICAgInFxIiwgICAiZnAiLCAiMTk3MCAwNCAwMSIsICIwMiIsICAgICAgICAgICIxOTcwIDA0IDAxIiwKKyAgICAgICAgICAgICJxcXEiLCAgImZwIiwgIjE5NzAgMDcgMDEiLCAiUTMiLCAgICAgICAgICAiMTk3MCAwNyAwMSIsCisgICAgICAgICAgICAicXFxcSIsICJmcCIsICIxOTcwIDEwIDAxIiwgIjR0aCBxdWFydGVyIiwgIjE5NzAgMTAgMDEiLAorICAgICAgIH07CisgICAgICAgIAorICAgICAgICBleHBlY3QoRU5fREFUQSwgbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpKTsKKyAgICB9CisqLyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhcnNpbmcuICBJbnB1dCBpcyBhbiBhcnJheSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBoZWFkZXI6CisgICAgICoKKyAgICAgKiBbMF0gICA9IHBhdHRlcm4gc3RyaW5nIHRvIHBhcnNlIFtpKzJdIHdpdGgKKyAgICAgKgorICAgICAqIGZvbGxvd2VkIGJ5IHRlc3QgY2FzZXMsIGVhY2ggb2Ygd2hpY2ggaXMgMyBhcnJheSBlbGVtZW50czoKKyAgICAgKgorICAgICAqIFtpXSAgID0gcGF0dGVybiwgb3IgbnVsbCB0byByZXVzZSBwcmlvciBwYXR0ZXJuCisgICAgICogW2krMV0gPSBpbnB1dCBzdHJpbmcKKyAgICAgKiBbaSsyXSA9IGV4cGVjdGVkIHBhcnNlIHJlc3VsdCAocGFyc2VkIHdpdGggcGF0dGVybiBbMF0pCisgICAgICoKKyAgICAgKiBJZiBleHBlY3QgcGFyc2UgZmFpbHVyZSwgdGhlbiBbaSsyXSBzaG91bGQgYmUgbnVsbC4KKyAgICAgKi8KKyAgICB2b2lkIGV4cGVjdFBhcnNlKFN0cmluZ1tdIGRhdGEsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgRGF0ZSBGQUlMID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIEZBSUxfU1RSID0gInBhcnNlIGZhaWx1cmUiOworICAgICAgICBpbnQgaSA9IDA7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiIiwgbG9jKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZWYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRhW2krK10sIGxvYyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZ290Zm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkcgeXl5eSBNTSBkZCBISDptbTpzcyB6IiwgbG9jKTsKKworICAgICAgICBTdHJpbmcgY3VycmVudFBhdCA9IG51bGw7CisgICAgICAgIHdoaWxlIChpPGRhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBkYXRhW2krK107CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgICAgPSBkYXRhW2krK107CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBkYXRhW2krK107CisKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgPSBwYXR0ZXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGdvdHN0ciA9IEZBSUxfU1RSOworICAgICAgICAgICAgRGF0ZSBnb3Q7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGdvdCA9IGZtdC5wYXJzZShpbnB1dCk7CisgICAgICAgICAgICAgICAgZ290c3RyID0gZ290Zm10LmZvcm1hdChnb3QpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICBnb3QgPSBGQUlMOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBEYXRlIGV4cCA9IEZBSUw7CisgICAgICAgICAgICBTdHJpbmcgZXhwc3RyID0gRkFJTF9TVFI7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGV4cHN0ciA9IGV4cGVjdGVkOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGV4cCA9IHJlZi5wYXJzZShleHBzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ290ID09IGV4cCB8fCAoZ290ICE9IG51bGwgJiYgZ290LmVxdWFscyhleHApKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlucHV0ICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgKyAiID0+ICIgKyBnb3RzdHIpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpbnB1dCArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGF0ICsgIiA9PiAiICsgZ290c3RyICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgZXhwc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3JtYXR0aW5nLiAgSW5wdXQgaXMgYW4gYXJyYXkgb2YgU3RyaW5nIHRoYXQgc3RhcnRzCisgICAgICogd2l0aCBhIHNpbmdsZSAnaGVhZGVyJyBlbGVtZW50CisgICAgICoKKyAgICAgKiBbMF0gICA9IHJlZmVyZW5jZSBkYXRlZm9ybWF0IHBhdHRlcm4gc3RyaW5nIChyZWYpCisgICAgICoKKyAgICAgKiBmb2xsb3dlZCBieSB0ZXN0IGNhc2VzLCBlYWNoIG9mIHdoaWNoIGlzIDQgb3IgNSBlbGVtZW50czoKKyAgICAgKgorICAgICAqIFtpXSAgID0gdGVzdCBkYXRlZm9ybWF0IHBhdHRlcm4gc3RyaW5nICh0ZXN0KSwgb3IgbnVsbCB0byByZXVzZSBwcmlvciB0ZXN0IHBhdHRlcm4KKyAgICAgKiBbaSsxXSA9IGRhdGEgc3RyaW5nIEEKKyAgICAgKiBbaSsyXSA9IGRhdGEgc3RyaW5nIEIKKyAgICAgKgorICAgICAqIEZvcm1hdHMgYSBkYXRlLCBjaGVja3MgdGhlIHJlc3VsdC4KKyAgICAgKgorICAgICAqIEV4YW1wbGVzOgorICAgICAqICJ5L00vZCBIOm1tOnNzLlNTUyIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3IgorICAgICAqIC0tIHJlZi5wYXJzZSBBLCBnZXQgdDAKKyAgICAgKiAtLSB0ZXN0LmZvcm1hdCB0MCwgZ2V0IHIwCisgICAgICogLS0gY29tcGFyZSByMCB0byBCLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqLworICAgIHZvaWQgZXhwZWN0Rm9ybWF0KFN0cmluZ1tdIGRhdGEsIExvY2FsZSBsb2MpCisgICAgeworICAgICAgICBpbnQgaSA9IDE7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgdW5pdiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRSBHIHl5eXkgTU0gZGQgSEg6bW06c3MuU1NTIHp6eiIsIGxvYyk7CisgICAgICAgIFN0cmluZyBjdXJyZW50UGF0ID0gbnVsbDsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZWYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRhWzBdLCBsb2MpOworCisgICAgICAgIHdoaWxlIChpPGRhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCIiLCBsb2MpOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gID0gZGF0YVtpKytdOworICAgICAgICAgICAgaWYgKHBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICAgICAgY3VycmVudFBhdCA9IHBhdHRlcm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBkYXRlc3RyID0gZGF0YVtpKytdOworICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG51bGw7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0ZSA9IHJlZi5wYXJzZShkYXRlc3RyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW50ZXJuYWwgdGVzdCBlcnJvcjsgY2FuJ3QgcGFyc2UgIiArIGRhdGVzdHIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIGN1cnJlbnRQYXQgKyAiXCIuZm9ybWF0KCIgKyBkYXRlc3RyICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbXQuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZm9ybWF0dGluZyBhbmQgcGFyc2luZy4gIElucHV0IGlzIGFuIGFycmF5IG9mIFN0cmluZyB0aGF0IHN0YXJ0cworICAgICAqIHdpdGggYSBzaW5nbGUgJ2hlYWRlcicgZWxlbWVudAorICAgICAqCisgICAgICogWzBdICAgPSByZWZlcmVuY2UgZGF0ZWZvcm1hdCBwYXR0ZXJuIHN0cmluZyAocmVmKQorICAgICAqCisgICAgICogZm9sbG93ZWQgYnkgdGVzdCBjYXNlcywgZWFjaCBvZiB3aGljaCBpcyA0IG9yIDUgZWxlbWVudHM6CisgICAgICoKKyAgICAgKiBbaV0gICA9IHRlc3QgZGF0ZWZvcm1hdCBwYXR0ZXJuIHN0cmluZyAodGVzdCksIG9yIG51bGwgdG8gcmV1c2UgcHJpb3IgdGVzdCBwYXR0ZXJuCisgICAgICogW2krMV0gPSBjb250cm9sIHN0cmluZywgZWl0aGVyICJmcCIsICJwZiIsIG9yICJGIi4KKyAgICAgKiBbaSsyXSA9IGRhdGEgc3RyaW5nIEEKKyAgICAgKiBbaSszXSA9IGRhdGEgc3RyaW5nIEIKKyAgICAgKiBbaSs0XSA9IGRhdGEgc3RyaW5nIEMgKG5vdCBwcmVzZW50IGZvciAnRicgY29udHJvbCBzdHJpbmcpCisgICAgICoKKyAgICAgKiBOb3RlOiB0aGUgbnVtYmVyIG9mIGRhdGEgc3RyaW5ncyBkZXBlbmRzIG9uIHRoZSBjb250cm9sIHN0cmluZy4KKyAgICAgKgorICAgICAqIGZwIGZvcm1hdHMgYSBkYXRlLCBjaGVja3MgdGhlIHJlc3VsdCwgdGhlbiBwYXJzZXMgdGhlIHJlc3VsdCBhbmQgY2hlY2tzIGFnYWluc3QgYSAocG9zc2libHkgZGlmZmVyZW50KSBkYXRlCisgICAgICogcGYgcGFyc2VzIGEgc3RyaW5nLCBjaGVja3MgdGhlIHJlc3VsdCwgdGhlbiBmb3JtYXRzIHRoZSByZXN1bHQgYW5kIGNoZWNrcyBhZ2FpbnN0IGEgKHBvc3NpYmx5IGRpZmZlcmVudCkgc3RyaW5nCisgICAgICogRiBpcyBhIHNob3J0aGFuZCBmb3IgZnAgd2hlbiB0aGUgc2Vjb25kIGRhdGUgaXMgdGhlIHNhbWUgYXMgdGhlIGZpcnN0CisgICAgICogUCBpcyBhIHNob3J0aGFuZCBmb3IgcGYgd2hlbiB0aGUgc2Vjb25kIHN0cmluZyBpcyB0aGUgc2FtZSBhcyB0aGUgZmlyc3QKKyAgICAgKgorICAgICAqIEV4YW1wbGVzOgorICAgICAqIChmcCkgInkvTS9kIEg6bW06c3MuU1MiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTYwIiwKKyAgICAgKiAtLSByZWYucGFyc2UgQSwgZ2V0IHQwCisgICAgICogLS0gdGVzdC5mb3JtYXQgdDAsIGdldCByMAorICAgICAqIC0tIGNvbXBhcmUgcjAgdG8gQiwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKiAtLSB0ZXN0LnBhcnNlIEIsIGdldCB0MQorICAgICAqIC0tIHJlZi5wYXJzZSBDLCBnZXQgdDIKKyAgICAgKiAtLSBjb21wYXJlIHQxIGFuZCB0MiwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKgorICAgICAqIChGKSAieS9NL2QgSDptbTpzcy5TU1MiLCAiRiIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3IgorICAgICAqIC0tIHJlZi5wYXJzZSBBLCBnZXQgdDAKKyAgICAgKiAtLSB0ZXN0LmZvcm1hdCB0MCwgZ2V0IHIwCisgICAgICogLS0gY29tcGFyZSByMCB0byBCLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqIC0tIHRlc3QucGFyc2UgQiwgZ2V0IHQxCisgICAgICogLS0gY29tcGFyZSB0MSBhbmQgdDAsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICoKKyAgICAgKiAocGYpICJ5L00vZCBIOm1tOnNzLlNTU1MiLCAicGYiLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2NzkiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2NzAiLAorICAgICAqIC0tIHRlc3QucGFyc2UgQSwgZ2V0IHQwCisgICAgICogLS0gcmVmLnBhcnNlIEIsIGdldCB0MQorICAgICAqIC0tIGNvbXBhcmUgdDAgdG8gdDEsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICogLS0gdGVzdC5mb3JtYXQgdDEsIGdldCByMAorICAgICAqIC0tIGNvbXBhcmUgcjAgYW5kIEMsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICoKKyAgICAgKiAoUCkgInkvTS9kIEg6bW06c3MuU1NTUyIsICJQIiwgIjIwMDQvMy8xMCAxNjozNjozMS41Njc5IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiIsCisgICAgICogLS0gdGVzdC5wYXJzZSBBLCBnZXQgdDAKKyAgICAgKiAtLSByZWYucGFyc2UgQiwgZ2V0IHQxCisgICAgICogLS0gY29tcGFyZSB0MCB0byB0MSwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKiAtLSB0ZXN0LmZvcm1hdCB0MSwgZ2V0IHIwCisgICAgICogLS0gY29tcGFyZSByMCBhbmQgQSwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKi8KKyAgICB2b2lkIGV4cGVjdChTdHJpbmdbXSBkYXRhLCBMb2NhbGUgbG9jKSB7CisgICAgICAgIGludCBpID0gMTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCB1bml2ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFIEcgeXl5eSBNTSBkZCBISDptbTpzcy5TU1Mgenp6IiwgbG9jKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnRQYXQgPSBudWxsOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHJlZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRhdGFbMF0sIGxvYyk7CisKKyAgICAgICAgd2hpbGUgKGk8ZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIiIsIGxvYyk7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBkYXRhW2krK107CisgICAgICAgICAgICBpZiAocGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50UGF0ID0gcGF0dGVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGNvbnRyb2wgPSBkYXRhW2krK107CisKKyAgICAgICAgICAgIGlmIChjb250cm9sLmVxdWFscygiZnAiKSB8fCBjb250cm9sLmVxdWFscygiRiIpKSB7CisgICAgICAgICAgICAgICAgLy8gJ2YnCisgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGVzdHIgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGF0ZXN0cjIgPSBkYXRlc3RyOworICAgICAgICAgICAgICAgIGlmIChjb250cm9sLmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZXN0cjIgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIERhdGUgZGF0ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHJlZi5wYXJzZShkYXRlc3RyKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yOyBjYW4ndCBwYXJzZSAiICsgZGF0ZXN0cik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIGN1cnJlbnRQYXQgKyAiXCIuZm9ybWF0KCIgKyBkYXRlc3RyICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdC5mb3JtYXQoZGF0ZSkpOworICAgICAgICAgICAgICAgIC8vICdwJworICAgICAgICAgICAgICAgIGlmICghZGF0ZXN0cjIuZXF1YWxzKGRhdGVzdHIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRlID0gcmVmLnBhcnNlKGRhdGVzdHIyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yOyBjYW4ndCBwYXJzZSAiICsgZGF0ZXN0cjIpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBwYXJzZWRhdGUgPSBmbXQucGFyc2Uoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcIiIgKyBjdXJyZW50UGF0ICsgIlwiLnBhcnNlKCIgKyBzdHJpbmcgKyAiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2LmZvcm1hdChkYXRlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXYuZm9ybWF0KHBhcnNlZGF0ZSkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUzKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBcIiIgKyBjdXJyZW50UGF0ICsgIlwiLnBhcnNlKCIgKyBzdHJpbmcgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZTMpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjb250cm9sLmVxdWFscygicGYiKSB8fCBjb250cm9sLmVxdWFscygiUCIpKSB7CisgICAgICAgICAgICAgICAgLy8gJ3AnCisgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGF0ZXN0ciA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IHN0cmluZzsKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbC5sZW5ndGgoKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZzIgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBkYXRlID0gcmVmLnBhcnNlKGRhdGVzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludGVybmFsIHRlc3QgZXJyb3I7IGNhbid0IHBhcnNlICIgKyBkYXRlc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIERhdGUgcGFyc2VkYXRlID0gZm10LnBhcnNlKHN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiXCIiICsgY3VycmVudFBhdCArICJcIi5wYXJzZSgiICsgc3RyaW5nICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdi5mb3JtYXQoZGF0ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2LmZvcm1hdChwYXJzZWRhdGUpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogXCIiICsgY3VycmVudFBhdCArICJcIi5wYXJzZSgiICsgc3RyaW5nICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGUyKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICdmJworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiXCIiICsgY3VycmVudFBhdCArICJcIi5mb3JtYXQoIiArIGRhdGVzdHIgKyAiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdC5mb3JtYXQoZGF0ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludmFsaWQgY29udHJvbCBzdHJpbmcgIiArIGNvbnRyb2wpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQ3NTcoKXsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBVTG9jYWxlLlJPT1QpOworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlVGltZUdlbmVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZVRpbWVHZW5lcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFkNzViMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZVRpbWVHZW5lcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwyMTYgQEAKKy8vIyNoZWFkZXIKKy8vI2hlYWRlcgorLy8jaWZuZGVmIEZPVU5EQVRJT04KKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBHb29nbGUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5QYXR0ZXJuVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVUaW1lUGF0dGVybkdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgRGF0ZVRpbWVHZW5lcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBHRU5FUkFURV9URVNUX0RBVEEgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIkdFTkVSQVRFX1RFU1RfREFUQSIpICE9IG51bGw7CisgICAgcHVibGljIHN0YXRpYyBpbnQgUkFORE9NX0NPVU5UID0gMTAwMDsKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERhdGVUaW1lR2VuZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5QYXJzZXIoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFBhdHRlcm5Ub2tlbml6ZXIgcHAgPSBuZXcgUGF0dGVyblRva2VuaXplcigpCisgICAgICAgIC5zZXRJZ25vcmFibGVDaGFyYWN0ZXJzKG5ldyBVbmljb2RlU2V0KCJbLV0iKSkKKyAgICAgICAgLnNldFN5bnRheENoYXJhY3RlcnMobmV3IFVuaWNvZGVTZXQoIlthLXpBLVpdIikpCisgICAgICAgIC5zZXRFc2NhcGVDaGFyYWN0ZXJzKG5ldyBVbmljb2RlU2V0KCJbYiNdIikpCisgICAgICAgIC5zZXRVc2luZ1F1b3RlKHRydWUpOworICAgICAgICBsb2dsbigiVXNpbmcgUXVvdGUiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXR0ZXJuVGVzdERhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuVGVzdCA9IChTdHJpbmcpIHBhdHRlcm5UZXN0RGF0YVtpXTsKKyAgICAgICAgICAgIENoZWNrUGF0dGVybihidWZmZXIsIHBwLCBwYXR0ZXJuVGVzdCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gcmFuZG9tU2V0ID0geyJhYmNkZWYiLCAiJDEyIUAjLSIsICInXFwifTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSQU5ET01fQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm5UZXN0ID0gZ2V0UmFuZG9tU3RyaW5nKHJhbmRvbVNldCwgMCwgMTApOworICAgICAgICAgICAgQ2hlY2tQYXR0ZXJuKGJ1ZmZlciwgcHAsIHBhdHRlcm5UZXN0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiVXNpbmcgQmFja3NsYXNoIik7CisgICAgICAgIHBwLnNldFVzaW5nUXVvdGUoZmFsc2UpLnNldFVzaW5nU2xhc2godHJ1ZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVyblRlc3REYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVyblRlc3QgPSAoU3RyaW5nKSBwYXR0ZXJuVGVzdERhdGFbaV07CisgICAgICAgICAgICBDaGVja1BhdHRlcm4oYnVmZmVyLCBwcCwgcGF0dGVyblRlc3QpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUkFORE9NX0NPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuVGVzdCA9IGdldFJhbmRvbVN0cmluZyhyYW5kb21TZXQsIDAsIDEwKTsKKyAgICAgICAgICAgIENoZWNrUGF0dGVybihidWZmZXIsIHBwLCBwYXR0ZXJuVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgUmFuZG9tIHJhbmRvbSA9IG5ldyBqYXZhLnV0aWwuUmFuZG9tKC0xKTsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRSYW5kb21TdHJpbmcoU3RyaW5nW10gcmFuZG9tTGlzdCwgaW50IG1pbkxlbiwgaW50IG1heExlbikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbGVuID0gcmFuZG9tLm5leHRJbnQobWF4TGVuICsgMSAtIG1pbkxlbikgKyBtaW5MZW47CisgICAgICAgIGZvciAoaW50IGkgPSBtaW5MZW47IGkgPCBsZW47ICsrIGkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSByYW5kb21MaXN0W3JhbmRvbS5uZXh0SW50KHJhbmRvbUxpc3QubGVuZ3RoKV07IC8vIGRvbid0IGJvdGhlciB3aXRoIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2UuY2hhckF0KHJhbmRvbS5uZXh0SW50KHNvdXJjZS5sZW5ndGgoKSkpOworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY2gpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIENoZWNrUGF0dGVybihTdHJpbmdCdWZmZXIgYnVmZmVyLCBQYXR0ZXJuVG9rZW5pemVyIHBwLCBTdHJpbmcgcGF0dGVyblRlc3QpIHsKKyAgICAgICAgcHAuc2V0UGF0dGVybihwYXR0ZXJuVGVzdCk7CisgICAgICAgIGlmIChERUJVRyAmJiBpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgc2hvd0l0ZW1zKGJ1ZmZlciwgcHAsIHBhdHRlcm5UZXN0KTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgbm9ybWFsaXplZCA9IHBwLnNldFN0YXJ0KDApLm5vcm1hbGl6ZSgpOworICAgICAgICBsb2dsbigiaW5wdXQ6XHQ8IiArIHBhdHRlcm5UZXN0ICsgIj4iICsgIlx0bm9ybWFsaXplZDpcdDwiICsgbm9ybWFsaXplZCArICI+Iik7CisgICAgICAgIFN0cmluZyBkb3VibGVOb3JtYWxpemVkID0gcHAuc2V0UGF0dGVybihub3JtYWxpemVkKS5ub3JtYWxpemUoKTsKKyAgICAgICAgaWYgKCFub3JtYWxpemVkLmVxdWFscyhkb3VibGVOb3JtYWxpemVkKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6YXRpb24gbm90IGlkZW1wb3RlbnQ6XHQiICsgcGF0dGVyblRlc3QgKyAiXHRub3JtYWxpemVkOiAiICsgbm9ybWFsaXplZCArICAiXHRub3JtYWxpemVkMjogIiArIGRvdWJsZU5vcm1hbGl6ZWQpOworICAgICAgICAgICAgLy8gYWxsb3cgZm9yIGRlYnVnZ2luZyBhdCB0aGUgcG9pbnQgb2YgZmFpbHVyZQorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgcHAuc2V0UGF0dGVybihwYXR0ZXJuVGVzdCk7CisgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IHBwLnNldFN0YXJ0KDApLm5vcm1hbGl6ZSgpOworICAgICAgICAgICAgICAgIHBwLnNldFBhdHRlcm4obm9ybWFsaXplZCk7CisgICAgICAgICAgICAgICAgc2hvd0l0ZW1zKGJ1ZmZlciwgcHAsIG5vcm1hbGl6ZWQpOworICAgICAgICAgICAgICAgIGRvdWJsZU5vcm1hbGl6ZWQgPSBwcC5ub3JtYWxpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzaG93SXRlbXMoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgUGF0dGVyblRva2VuaXplciBwcCwgU3RyaW5nIHBhdHRlcm5UZXN0KSB7CisgICAgICAgIGxvZ2xuKCJpbnB1dDpcdDwiICsgcGF0dGVyblRlc3QgKyAiPiIpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGludCBzdGF0dXMgPSBwcC5uZXh0KGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAoc3RhdHVzID09IHBwLkRPTkUpIGJyZWFrOworICAgICAgICAgICAgU3RyaW5nIGxpdCA9ICIiOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBwcC5TWU5UQVggKSB7CisgICAgICAgICAgICAgICAgbGl0ID0gIlx0PCIgKyBwcC5xdW90ZUxpdGVyYWwoYnVmZmVyKSArICI+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBzdGF0dXNOYW1lW3N0YXR1c10gKyAiXHQ8IiArIGJ1ZmZlciArICI+IiArIGxpdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHN0YXR1c05hbWUgPSB7IkRPTkUiLCAiU1lOVEFYIiwgIkxJVEVSQUwiLCAiQlJPS0VOX1FVT1RFIiwgIkJST0tFTl9FU0NBUEUiLCAiVU5LTk9XTiJ9OworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgVUxvY2FsZSB1TG9jYWxlID0gbnVsbDsKKyAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIGR0ZmcgPSBudWxsOworICAgICAgICBEYXRlIGRhdGUgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGVUZXN0RGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGRhdGVUZXN0RGF0YVtpXSBpbnN0YW5jZW9mIFVMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICB1TG9jYWxlID0gKFVMb2NhbGUpIGRhdGVUZXN0RGF0YVtpXTsKKyAgICAgICAgICAgICAgICBkdGZnID0gRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmdldEluc3RhbmNlKHVMb2NhbGUpOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURV9URVNUX0RBVEEpIGxvZ2xuKCJuZXcgVUxvY2FsZShcIiIgKyB1TG9jYWxlLnRvU3RyaW5nKCkgKyAiXCIpLCIpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRlVGVzdERhdGFbaV0gaW5zdGFuY2VvZiBEYXRlKSB7CisgICAgICAgICAgICAgICAgZGF0ZSA9IChEYXRlKSBkYXRlVGVzdERhdGFbaV07CisgICAgICAgICAgICAgICAgaWYgKEdFTkVSQVRFX1RFU1RfREFUQSkgbG9nbG4oIm5ldyBEYXRlKCIgKyBkYXRlLmdldFllYXIoKSArICIsICIgKyBkYXRlLmdldE1vbnRoKCkgKyAiLCAiICsgZGF0ZS5nZXREYXRlKCkgKyAiLCAiICsgZGF0ZS5nZXRIb3VycygpICsgIiwgIiArIGRhdGUuZ2V0TWludXRlcygpICsgIiwgIiArIGRhdGUuZ2V0U2Vjb25kcygpKyAiKSwiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0ZVRlc3REYXRhW2ldIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RTa2VsZXRvbiA9IChTdHJpbmcpIGRhdGVUZXN0RGF0YVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGR0ZmcuZ2V0QmVzdFBhdHRlcm4odGVzdFNrZWxldG9uKTsKKyAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIHVMb2NhbGUpOworICAgICAgICAgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBzZGYuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURV9URVNUX0RBVEEpIGxvZ2xuKCJuZXcgU3RyaW5nW10ge1wiIiArIHRlc3RTa2VsZXRvbiArICJcIiwgXCIiICsgVXRpbGl0eS5lc2NhcGUoZm9ybWF0dGVkKSArICJcIn0sIik7CisgICAgICAgICAgICAgICAgLy9sb2dsbih1TG9jYWxlICsgIlx0IiArIHRlc3RTa2VsZXRvbiArICJcdCIgKyBwYXR0ZXJuICsgIlx0IiArIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB0ZXN0UGFpciA9IChTdHJpbmdbXSkgZGF0ZVRlc3REYXRhW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0U2tlbGV0b24gPSB0ZXN0UGFpclswXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdEZvcm1hdHRlZCA9IHRlc3RQYWlyWzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gZHRmZy5nZXRCZXN0UGF0dGVybih0ZXN0U2tlbGV0b24pOworICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgdUxvY2FsZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZvcm1hdHRlZCA9IHNkZi5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKEdFTkVSQVRFX1RFU1RfREFUQSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigibmV3IFN0cmluZ1tdIHtcIiIgKyB0ZXN0U2tlbGV0b24gKyAiXCIsIFwiIiArIFV0aWxpdHkuZXNjYXBlKGZvcm1hdHRlZCkgKyAiXCJ9LCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZvcm1hdHRlZC5lcXVhbHModGVzdEZvcm1hdHRlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4odUxvY2FsZSArICJcdGZvcm1hdHRlZCBzdHJpbmcgZG9lc24ndCBtYXRjaCB0ZXN0IGNhc2U6ICIgKyB0ZXN0U2tlbGV0b24gKyAiXHQgZ2VuZXJhdGVkOiAiICsgIHBhdHRlcm4gKyAiXHQgZXhwZWN0ZWQ6ICIgKyB0ZXN0Rm9ybWF0dGVkICsgIlx0IGdvdDogIiArIGZvcm1hdHRlZCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7IC8vIGRlYnVnCisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gZHRmZy5nZXRCZXN0UGF0dGVybih0ZXN0U2tlbGV0b24pOworICAgICAgICAgICAgICAgICAgICAgICAgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgdUxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgPSBzZGYuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vbG9nbG4odUxvY2FsZSArICJcdCIgKyB0ZXN0U2tlbGV0b24gKyAiXHQiICsgcGF0dGVybiArICJcdCIgKyBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W10gcGF0dGVyblRlc3REYXRhID0geworICAgICAgICAiJyRmJycjYyIsCisgICAgICAgICInJyAnYSIsCisgICAgICAgICInLicnLiciLAorICAgICAgICAiXFx1MDA2MVxcXFwiLAorICAgICAgICAibW0uZGQgJ2RkICcgeCIsCisgICAgICAgICInJyAnJyIsCisgICAgfTsKKyAgICAKKyAgICAvLyBjYW4gYmUgZ2VuZXJhdGVkIGJ5IHVzaW5nIEdFTkVSQVRFX1RFU1RfREFUQS4gTXVzdCBiZSByZXZpZXdlZCBiZWZvcmUgYWRkaW5nCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIGRhdGVUZXN0RGF0YSA9IHsKKyAgICAgICAgbmV3IERhdGUoOTksIDAsIDEzLCAyMywgNTgsIDU5KSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImVuX1VTIiksCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNIiwgIjEvMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TU1NIiwgIkphbiAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNZCIsICIxLzEzLzE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTWQiLCAiSmFuLzEzLzE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTWQiLCAiMS8xMyJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJNTU1kIiwgIkphbiAxMyJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5UVFRIiwgIlExIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiaGhtbSIsICIxMTo1OCBQTSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJISG1tIiwgIjIzOjU4In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Im1tc3MiLCAiNTg6NTkifSwKKyAgICAgICAgbmV3IFVMb2NhbGUoInpoX0hhbnNfQ04iKSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU0iLCAiMTk5OS0xIn0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNTU0iLCAiMTk5OS1cdTRFMDBcdTY3MDgifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1kIiwgIjE5OTlcdTVFNzQxXHU2NzA4MTNcdTY1RTUifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTWQiLCAiMTk5OVx1NUU3NFx1NEUwMFx1NjcwOFx1NjcwODEzXHU2NUU1In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Ik1kIiwgIjEtMTMifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTU1NZCIsICJcdTRFMDBcdTY3MDgtMTMifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieVFRUSIsICIxXHU1QjYzIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiaGhtbSIsICJcdTRFMEJcdTUzNDgxMTo1OCJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJISG1tIiwgIlx1NEUwQlx1NTM0ODExOjU4In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Im1tc3MiLCAiNTg6NTkifSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImRlX0RFIiksCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNIiwgIjEuMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TU1NIiwgIkphbiAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNZCIsICIxMy4xLjE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsieU1NTWQiLCAiMTMuIEphbiAxOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Ik1kIiwgIjEzLjEifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTU1NZCIsICIxMy4gSmFuIn0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlRUVEiLCAiUTEgMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJoaG1tIiwgIjExOjU4IG5hY2htLiJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJISG1tIiwgIjIzOjU4In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7Im1tc3MiLCAiNTg6NTkifSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImZpIiksCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNIiwgIjEuMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TU1NIiwgInRhbW1pdGEgMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJ5TWQiLCAiMTMuMS4xOTk5In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlNTU1kIiwgIjEzLiB0YW1taXRhIDE5OTkifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsiTWQiLCAiMTMuMSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJNTU1kIiwgIjEzLiB0YW1taXRhIn0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7InlRUVEiLCAiMS4gbmVsai4gMTk5OSJ9LAorICAgICAgICBuZXcgU3RyaW5nW10geyJoaG1tIiwgIjIzLjU4In0sCisgICAgICAgIG5ldyBTdHJpbmdbXSB7IkhIbW0iLCAiMjMuNTgifSwKKyAgICAgICAgbmV3IFN0cmluZ1tdIHsibW1zcyIsICI1OC41OSJ9LAorICAgIH07Cit9CisvLyNlbmRpZgorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQxZjFlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTU2MiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXM7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKworCitwdWJsaWMgY2xhc3MgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdCgpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworICAgICAgICBVTG9jYWxlIGRlZkxvY2FsZSA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworICAgICAgICBVTG9jYWxlIGRlZkZhbGxiYWNrTG9jYWxlID0gbmV3IFVMb2NhbGUoImVuIik7CisKKyAgICAgICAgaWYgKCFkZWZMb2NhbGUuZXF1YWxzKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKSkgeworICAgICAgICAgICAgLy8gTG9jYWxlLlVTIGlzIGFsd2F5cyB1c2VkIGFzIHRoZSBkZWZhdWx0IGxvY2FsZSBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAgLy8gSWYgbm90LCBzb21lIHRlc3QgY2FzZXMgd2lsbCBmYWlsLi4uCisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGRlZmF1bHQgbG9jYWxlIG9mIHRoZSB0ZXN0IGVudmlyb25tZW50IG11c3QgYmUgZW5fVVMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgbG9jYWxlOiAiICsgZGVmTG9jYWxlLnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vIEZpcnN0IGxvY2FsZSBpcyBlbl9VUworICAgICAgICBVTG9jYWxlIGdwTG9jYWxlMCA9IGdwLmdldExvY2FsZSgwKTsKKyAgICAgICAgbG9nbG4oIlByaW1hcnkgbG9jYWxlOiAiICsgZ3BMb2NhbGUwLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWdwTG9jYWxlMC5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBwcmltYXJ5IGxvY2FsZSBpcyBub3QgZW5fVVMiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlY29uZCBsb2NhbGUgaXMgZW4KKyAgICAgICAgVUxvY2FsZSBncExvY2FsZTEgPSBncC5nZXRMb2NhbGUoMSk7CisgICAgICAgIGxvZ2xuKCJTZWNvbmRhcnkgbG9jYWxlOiAiICsgZ3BMb2NhbGUxLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWdwTG9jYWxlMS5lcXVhbHMoZGVmRmFsbGJhY2tMb2NhbGUpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIHNlY29uZGFyeSBsb2NhbGUgaXMgbm90IGVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlyZCBsb2NhbGUgaXMgbnVsbAorICAgICAgICBVTG9jYWxlIGdwTG9jYWxlMiA9IGdwLmdldExvY2FsZSgyKTsKKyAgICAgICAgaWYgKGdwTG9jYWxlMiAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIG9mIGxvY2FsZXMgbXVzdCBiZSAyIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIENhbGVuZGFyIGxvY2FsZQorICAgICAgICBDYWxlbmRhciBjYWwgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBVTG9jYWxlIGNhbExvY2FsZSA9IGNhbC5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBsb2dsbigiQ2FsZW5kYXIgbG9jYWxlOiAiICsgY2FsTG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWNhbExvY2FsZS5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBjYWxlbmRhciBsb2NhbGUgbXVzdCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IEpWTSBsb2NhbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbGxhdG9yIGxvY2FsZQorICAgICAgICBDb2xsYXRvciBjb2xsID0gZ3AuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgVUxvY2FsZSBjb2xsTG9jYWxlID0gY29sbC5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBsb2dsbigiQ29sbGF0b3IgbG9jYWxlOiAiICsgY29sbExvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFjb2xsTG9jYWxlLmVxdWFscyhkZWZMb2NhbGUpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGNvbGxhdG9yIGxvY2FsZSBtdXN0IG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgSlZNIGxvY2FsZSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQnJlYWtJdGVyYXRvciBsb2NhbGUKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmsgPSBncC5nZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9DSEFSQUNURVIpOworICAgICAgICBVTG9jYWxlIGJya0xvY2FsZSA9IGJyay5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBsb2dsbigiQnJlYWtJdGVyYXRvciBsb2NhbGU6ICIgKyBicmtMb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghYnJrTG9jYWxlLmVxdWFscyhkZWZMb2NhbGUpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBtdXN0IG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgSlZNIGxvY2FsZSIpOworICAgICAgICB9CisKKyAgICAgICAgLyogU2tpcCAtIEJ1ZyM1MjA5CisgICAgICAgIC8vIERhdGVGb3JtYXQgbG9jYWxlCisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBncC5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIFVMb2NhbGUgZGZMb2NhbGUgPSBkZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBsb2NhbGU6ICIgKyBkZkxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFkZkxvY2FsZS5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBkYXRlIGZvcm1hdCBsb2NhbGUgbXVzdCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IEpWTSBsb2NhbGUiKTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIC8vIE51bWJlckZvcm1hdCBsb2NhbGUKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9OVU1CRVIpOworICAgICAgICBVTG9jYWxlIG5mTG9jYWxlID0gbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgbG9nbG4oIk51bWJlckZvcm1hdCBsb2NhbGU6ICIgKyBuZkxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFuZkxvY2FsZS5lcXVhbHMoZGVmTG9jYWxlKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBudW1iZXIgZm9ybWF0IGxvY2FsZSBtdXN0IG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgSlZNIGxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyZWV6YWJsZSgpIHsKKyAgICAgICAgbG9nbG4oIkNyZWF0ZSBhIG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZSBvYmplY3QiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworICAgICAgICBpZiAoZ3AuaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoaXMgb2JqZWN0IGlzIG5vdCB5ZXQgZnJvemVuIik7CisgICAgICAgIH0gICAgICAgIAorCisgICAgICAgIGxvZ2xuKCJDYWxsIHJlc2V0KCkiKTsKKyAgICAgICAgYm9vbGVhbiBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgYlNldCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghYlNldCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHJlc2V0KCkgbXVzdCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIGJlZm9yZSBmcm96ZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZyZWV6ZSB0aGUgb2JqZWN0CisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhlIG9iamVjdCIpOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgaWYgKCFncC5pc0Zyb3plbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhpcyBvYmplY3QgaXMgYWxyZWFkeSBmcm9uemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNldCgpCisgICAgICAgIGxvZ2xuKCJDYWxsIHJlc2V0KCkgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIGJTZXQgPSB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBiU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiByZXNldCgpIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldExvY2FsZXMoVUxvY2FsZVtdKQorICAgICAgICBsb2dsbigiQ2FsbCBzZXRMb2NhbGVzKFVMb2NhbGVbXSkgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIGJTZXQgPSB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0TG9jYWxlcyhuZXcgVUxvY2FsZVtdIHtuZXcgVUxvY2FsZSgiZnJfRlIiKX0pOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYlNldCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldExvY2FsZXMoVUxvY2FsZVtdKSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXRMb2NhbGVzKFVMb2NhbGVbXSkKKyAgICAgICAgbG9nbG4oIkNhbGwgc2V0TG9jYWxlcyhMaXN0KSBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgYlNldCA9IHRydWU7CisgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgbGlzdC5hZGQobmV3IFVMb2NhbGUoImZyX0ZSIikpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0TG9jYWxlcyhsaXN0KTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBiU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRMb2NhbGVzKExpc3QpIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAvLyBzZXRMb2NhbGVzKFN0cmluZykKKyAgICAgICAgbG9nbG4oIkNhbGwgc2V0TG9jYWxlcyhTdHJpbmcpIGFmdGVyIGZyb3plbiIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZXMoInB0LUJSLGVzO3E9MC43Iik7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgYlNldCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChiU2V0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0TG9jYWxlcyhTdHJpbmcpIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorLy8jZW5kaWYKKworICAgICAgICAvLyBzZXRMb2NhbGUoVUxvY2FsZSkKKyAgICAgICAgbG9nbG4oIkNhbGwgc2V0TG9jYWxlKFVMb2NhbGUpIGFmdGVyIGZyb3plbiIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiZmlfRkkiKSk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgYlNldCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChiU2V0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0TG9jYWxlKFVMb2NhbGUpIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc2V0VGVycml0b3J5KFN0cmluZykKKyAgICAgICAgbG9nbG4oIkNhbGwgc2V0VGVycml0b3J5KFN0cmluZykgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIGJTZXQgPSB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0VGVycml0b3J5KCJBVSIpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYlNldCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRlcnJpdG9yeShTdHJpbmcpIG11c3QgYmUgYmxvY2tlZCBhZnRlciBmcm96ZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1vZGlmaWFibGUgY2xvbmUKKyAgICAgICAgbG9nbG4oIkNyZWF0ZSBhIG1vZGlmaWFibGUgY2xvbmUiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworCisgICAgICAgIGlmIChncDEuaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBvYmplY3QgcmV0dXJuZWQgYnkgY2xvbmVBc1RoYXdlZCgpIG11c3Qgbm90IGJlIGZyb3plbiB5ZXQiKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgLy8gc2V0TG9jYWxlKFVMb2NhbGUpCisgICAgICAgIGxvZ2xuKCJDYWxsIHNldExvY2FsZShVTG9jYWxlKSBvZiB0aGUgbW9kaWZpYWJsZSBjbG9uZSIpOworICAgICAgICBiU2V0ID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwMS5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImZyX0ZSIikpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGJTZXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJTZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRMb2NhbGVzKFVMb2NhbGUpIG11c3Qgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBiZWZvcmUgZnJvemVuIik7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdbXVtdIElOUFVUX0xPQ0FMRUlEUyA9IHsKKyAgICAgICAgeyJlbl9VUyJ9LAorICAgICAgICB7ImZyX0NBIiwgImZyIn0sCisgICAgICAgIHsiZnIiLCAiZnJfQ0EifSwKKyAgICAgICAgeyJlcyIsICJmciIsICJlbl9VUyJ9LAorICAgICAgICB7InpoX0NOIiwgInpoX0hhbnMiLCAiemhfSGFuc19DTiJ9CisgICAgfTsKKworICAgIHN0YXRpYyBTdHJpbmdbXSBBQ0NFUFRfTEFOR1VBR0VTID0geworICAgICAgICAiZW4tVVMiLAorICAgICAgICAiZnItQ0EsZnI7cT0wLjUiLAorICAgICAgICAiZnJfQ0E7cT0wLjUsZnIiLAorICAgICAgICAiZXMsZnI7cT0wLjc2LGVuX1VTO3E9MC43NSIsCisgICAgICAgICJ6aC1DTix6aC1IYW5zO3E9MC41LHpoLUhhbnMtQ047cT0wLjEiCisgICAgfTsKKworICAgIHN0YXRpYyBTdHJpbmdbXVtdIFJFU1VMVFNfTE9DQUxFSURTID0geworICAgICAgICB7ImVuX1VTIiwgImVuIn0sCisgICAgICAgIHsiZnJfQ0EiLCAiZnIifSwKKyAgICAgICAgeyJmcl9DQSIsICJmciJ9LAorICAgICAgICB7ImVzIiwgImZyIiwgImVuX1VTIiwgImVuIn0sCisgICAgICAgIHsiemhfSGFuc19DTiIsICJ6aF9DTiIsICJ6aF9IYW5zIiwgInpoIn0KKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdFNldExvY2FsZXMoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBzZXRMb2NhbGVzKExpc3QpCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5QVVRfTE9DQUxFSURTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVTdHJpbmdzID0gSU5QVVRfTE9DQUxFSURTW2ldOworICAgICAgICAgICAgQXJyYXlMaXN0IGxvY2FsZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZVN0cmluZ3MubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVzLmFkZChuZXcgVUxvY2FsZShsb2NhbGVTdHJpbmdzW2pdKSk7CisgICAgICAgICAgICAgICAgaWYgKGogIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNiLmFwcGVuZChsb2NhbGVTdHJpbmdzW2pdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJJbnB1dCBsb2NhbGVzOiAiICsgc2IudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMpOworCisgICAgICAgICAgICBMaXN0IHJlc3VsdExvY2FsZXMgPSBncC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBpZiAocmVzdWx0TG9jYWxlcy5zaXplKCkgIT0gUkVTVUxUU19MT0NBTEVJRFNbaV0ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBvZiBsb2NhbGVzIG1pc21hdGNoIC0gR1A6IiArIHJlc3VsdExvY2FsZXMuc2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6IiArIFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUkVTVUxUU19MT0NBTEVJRFNbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2MgPSBncC5nZXRMb2NhbGUoaik7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJMb2NhbGVbIiArIGogKyAiXTogIiArIGxvYy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFncC5nZXRMb2NhbGUoaikudG9TdHJpbmcoKS5lcXVhbHMoUkVTVUxUU19MT0NBTEVJRFNbaV1bal0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTG9jYWxlIGluZGV4KCIgKyBqICsgIikgZG9lcyBub3QgbWF0Y2ggLSBHUDoiICsgbG9jLnRvU3RyaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBSRVNVTFRTX0xPQ0FMRUlEU1tpXVtqXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzZXRMb2NhbGVzKFVMb2NhbGVbXSkKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlBVVF9MT0NBTEVJRFMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZVN0cmluZ3MgPSBJTlBVVF9MT0NBTEVJRFNbaV07CisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlQXJyYXkgPSBuZXcgVUxvY2FsZVtJTlBVVF9MT0NBTEVJRFNbaV0ubGVuZ3RoXTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbG9jYWxlU3RyaW5ncy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIGxvY2FsZUFycmF5W2pdID0gbmV3IFVMb2NhbGUobG9jYWxlU3RyaW5nc1tqXSk7CisgICAgICAgICAgICAgICAgaWYgKGogIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNiLmFwcGVuZChsb2NhbGVTdHJpbmdzW2pdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJJbnB1dCBsb2NhbGVzOiAiICsgc2IudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZUFycmF5KTsKKworICAgICAgICAgICAgTGlzdCByZXN1bHRMb2NhbGVzID0gZ3AuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgaWYgKHJlc3VsdExvY2FsZXMuc2l6ZSgpICE9IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgb2YgbG9jYWxlcyBtaXNtYXRjaCAtIEdQOiIgKyByZXN1bHRMb2NhbGVzLnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBSRVNVTFRTX0xPQ0FMRUlEU1tpXS5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gZ3AuZ2V0TG9jYWxlKGopOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTG9jYWxlWyIgKyBqICsgIl06ICIgKyBsb2MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZ3AuZ2V0TG9jYWxlKGopLnRvU3RyaW5nKCkuZXF1YWxzKFJFU1VMVFNfTE9DQUxFSURTW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IExvY2FsZSBpbmRleCgiICsgaiArICIpIGRvZXMgbm90IG1hdGNoIC0gR1A6IiArIGxvYy50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeHBlY3RlZDoiICsgUkVTVUxUU19MT0NBTEVJRFNbaV1bal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAvLyBzZXRMb2NhbGVzKFN0cmluZykKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBBQ0NFUFRfTEFOR1VBR0VTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgYWNjZXB0TGFuZ3VhZ2UgPSBBQ0NFUFRfTEFOR1VBR0VTW2ldOworICAgICAgICAgICAgbG9nbG4oIkFjY2VwdCBsYW5ndWFnZTogIiArIGFjY2VwdExhbmd1YWdlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgICAgIGdwLnNldExvY2FsZXMoYWNjZXB0TGFuZ3VhZ2UpOworCisgICAgICAgICAgICBMaXN0IHJlc3VsdExvY2FsZXMgPSBncC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBpZiAocmVzdWx0TG9jYWxlcy5zaXplKCkgIT0gUkVTVUxUU19MT0NBTEVJRFNbaV0ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBvZiBsb2NhbGVzIG1pc21hdGNoIC0gR1A6IiArIHJlc3VsdExvY2FsZXMuc2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6IiArIFJFU1VMVFNfTE9DQUxFSURTW2ldLmxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUkVTVUxUU19MT0NBTEVJRFNbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2MgPSBncC5nZXRMb2NhbGUoaik7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJMb2NhbGVbIiArIGogKyAiXTogIiArIGxvYy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFncC5nZXRMb2NhbGUoaikudG9TdHJpbmcoKS5lcXVhbHMoUkVTVUxUU19MT0NBTEVJRFNbaV1bal0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTG9jYWxlIGluZGV4KCIgKyBqICsgIikgZG9lcyBub3QgbWF0Y2ggLSBHUDoiICsgbG9jLnRvU3RyaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBSRVNVTFRTX0xPQ0FMRUlEU1tpXVtqXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICAvLyBhY2NlcHQtbGFuZ3VhZ2Ugd2l0aG91dCBxLXZhbHVlCisgICAgICAgIGxvZ2xuKCJTZXQgYWNjZXB0LWxhbmd1YWdlIC0gZGUsZGUtQVQiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcygiZGUsZGUtQVQiKTsKKyAgICAgICAgaWYgKCFncC5nZXRMb2NhbGUoMCkudG9TdHJpbmcoKS5lcXVhbHMoImRlX0FUIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRMb2NhbGUoMCkgcmV0dXJucyAiICsgZ3AuZ2V0TG9jYWxlKDApLnRvU3RyaW5nKCkgKyAiIEV4cGVjdGVkOiBkZV9BVCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBJbnZhbGlkIGFjY2VwdC1sYW5ndWFnZQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGtvX0tSIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgia29fS1IiKSk7CisgICAgICAgIGJvb2xlYW4gYkV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oIlNldCBpbnZsYWlkIGFjY2VwdC1sYW5ndWFnZSAtIGtvPTEwMCIpOworICAgICAgICAgICAgZ3Auc2V0TG9jYWxlcygia289MTAwIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2FzIHRocm93biIpOworICAgICAgICAgICAgYkV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFiRXhjZXB0aW9uKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdhcyBub3QgdGhyb3duIGZvciBpbGxlZ2FsIGFjY2VwdC1sYW5ndWFnZSAtIGtvPTEwMCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZ3AuZ2V0TG9jYWxlKDApLnRvU3RyaW5nKCkuZXF1YWxzKCJrb19LUiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogUHJldmlvdXMgdmFsaWQgbG9jYWxlIGxpc3QgaGFkIGdvbmUiKTsKKyAgICAgICAgfQorLy8jZW5kaWYKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzb3VyY2VCdW5kbGUoKSB7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZSA9ICJjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXMuVGVzdERhdGFFbGVtZW50cyI7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJiOworCisgICAgICAgIGxvZ2xuKCJHZXQgYSByZXNvdXJjZSBidW5kbGUgIiArIGJhc2VOYW1lICsgCisgICAgICAgICAgICAgICAgIiB1c2luZyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZWQgYnkgbG9jYWxlcyAtIGVuX0dCLCBlbl9VUyIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbMl07CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiZW5fR0IiKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYiA9IGdwLmdldFJlc291cmNlQnVuZGxlKGJhc2VOYW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSByYi5nZXRTdHJpbmcoImZyb21fZW5fVVMiKTsKKyAgICAgICAgICAgIGlmICghc3RyLmVxdWFscygiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fVVMiKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmcm9tX2VuX1VTIGlzIG5vdCBmcm9tIGVuX1VTIGJ1bmRsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbXJlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTWlzc2luZyByZXNvdWNlcyIpOworICAgICAgICB9CisKKyAgICAgICAgZ3AucmVzZXQoKTsKKworICAgICAgICBsb2dsbigiR2V0IGEgcmVzb3VyY2UgYnVuZGxlICIgKyBiYXNlTmFtZSArIAorICAgICAgICAiIHVzaW5nIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBpbml0aWFsaXplZCBieSBsb2NhbGVzIC0gamEsIGVuX1VTX0NhbGlmb3JuaWEiKTsKKworICAgICAgICBsb2NhbGVzID0gbmV3IFVMb2NhbGVbMl07CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiamEiKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJlbl9VU19DYWxpZm9ybmlhIik7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlcyk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmIgPSBncC5nZXRSZXNvdXJjZUJ1bmRsZShiYXNlTmFtZSwgVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKSk7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gcmIuZ2V0U3RyaW5nKCJmcm9tX2VuX1VTIik7CisgICAgICAgICAgICBpZiAoIXN0ci5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX1VTIikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZnJvbV9lbl9VUyBpcyBub3QgZnJvbSBlbl9VUyBidW5kbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG1yZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1pc3NpbmcgcmVzb3VjZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJHZXQgYSByZXNvdXJjZSBidW5kbGUgd2hpY2ggZG9lcyBub3QgZXhpc3QiKTsKKyAgICAgICAgYm9vbGVhbiBiRXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYiA9IGdwLmdldFJlc291cmNlQnVuZGxlKCJmb28uYmFyLlhYWCIpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbXJlKSB7CisgICAgICAgICAgICBsb2dsbigiTWlzc2luZyByZXNvdXJjZSBleGNlcHRpb24gZm9yIGdldHRpbmcgcmVzb3VyY2UgYnVuZGxlIC0gZm9vLmJhci5YWFgiKTsKKyAgICAgICAgICAgIGJFeGNlcHRpb24gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghYkV4Y2VwdGlvbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtdXN0IGJlIHRocm93biBmb3IgUkIgLSBmb28uYmFyLlhYWCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnJpdG9yeSgpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgIC8vIFRlcnJpdG9yeSBmb3IgdW5zdXBwb3J0ZWQgbGFuZ3VhZ2UgbG9jYWxlCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gYW5nIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiYW5nIikpOworICAgICAgICBTdHJpbmcgdGVycml0b3J5ID0gZ3AuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiVVMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyAiICsgdGVycml0b3J5ICsgIiAtIEV4cGVjdGVkOiBVUyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVycml0b3J5IGZvciBsYW5ndWFnZSBvbmx5IGxvY2FsZSAiZnIiCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gZnIiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJmciIpKTsKKyAgICAgICAgdGVycml0b3J5ID0gZ3AuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiRlIiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyAiICsgdGVycml0b3J5ICsgIiAtIEV4cGVjdGVkOiBGUiIpOworICAgICAgICB9CisKKworICAgICAgICAvLyBTZXQgZXhwbGljaXR5IHRlcnJpdG9yeQorICAgICAgICBsb2dsbigiU2V0IGV4cGxpY2l0IHRlcnJpdG9yeSAtIENBIik7CisgICAgICAgIGdwLnNldFRlcnJpdG9yeSgiQ0EiKTsKKyAgICAgICAgdGVycml0b3J5ID0gZ3AuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiQ0EiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyAiICsgdGVycml0b3J5ICsgIiAtIEV4cGVjdGVkOiBDQSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnJlZXplCisgICAgICAgIGxvZ2xuKCJGcmVlemUgdGhpcyBvYmplY3QiKTsKKyAgICAgICAgZ3AuZnJlZXplKCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGJGcm96ZW4gPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldFRlcnJpdG9yeSgiRlIiKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0VGVycml0b3J5IGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGJGcm96ZW4gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghYkZyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRlcnJpdG9yeSBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKyAgICAgICAgdGVycml0b3J5ID0gZ3AuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiQ0EiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyBub3QgQ0EiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNhZmUgY2xvbmUKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworICAgICAgICB0ZXJyaXRvcnkgPSBncDEuZ2V0VGVycml0b3J5KCk7CisgICAgICAgIGlmICghdGVycml0b3J5LmVxdWFscygiQ0EiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBpcyAiICsgdGVycml0b3J5ICsgIiAtIEV4cGVjdGVkOiBDQSIpOworICAgICAgICB9CisKKyAgICAgICAgZ3AxLnJlc2V0KCk7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbMl07CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiamEiKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW50X1RXIik7CisgCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlcyAtIGphLCB6aF9IYW50X1RXIik7CisgICAgICAgIGdwMS5zZXRMb2NhbGVzKGxvY2FsZXMpOworCisgICAgICAgIHRlcnJpdG9yeSA9IGdwMS5nZXRUZXJyaXRvcnkoKTsKKyAgICAgICAgaWYgKCF0ZXJyaXRvcnkuZXF1YWxzKCJUVyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVycml0b3J5IGlzICIgKyB0ZXJyaXRvcnkgKyAiIC0gRXhwZWN0ZWQ6IFRXIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3koKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBTZXQgbGFuZ3VhZ2Ugb25seSBsb2NhbGUgLSBqYQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGphIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiamEiKSk7CisgICAgICAgIEN1cnJlbmN5IGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIFN0cmluZyBjb2RlID0gY3VyLmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICBpZiAoIWNvZGUuZXF1YWxzKCJKUFkiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEN1cnJlbmN5IGlzICIgKyBjb2RlICsgIiAtIEV4cGVjdGVkOiBKUFkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIC8vIFNldCBsb2NhbGVzIHdpdGggdGVycml0b3J5CisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlIC0gamFfVVMiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJqYV9VUyIpKTsKKyAgICAgICAgY3VyID0gZ3AuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiVVNEIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogVVNEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgbG9jYWxlcyB3aXRoIHRlcnJpdG9yeSBpbiB0aGUgc2Vjb25kIGxvY2FsZQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZXMgLSBpdCwgZW5fVVMiKTsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBuZXcgVUxvY2FsZVsyXTsKKyAgICAgICAgbG9jYWxlc1swXSA9IG5ldyBVTG9jYWxlKCJpdCIpOworICAgICAgICBsb2NhbGVzWzFdID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlcyk7CisgICAgICAgIGN1ciA9IGdwLmdldEN1cnJlbmN5KCk7CisgICAgICAgIGNvZGUgPSBjdXIuZ2V0Q3VycmVuY3lDb2RlKCk7CisgICAgICAgIGlmICghY29kZS5lcXVhbHMoIlVTRCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgaXMgIiArIGNvZGUgKyAiIC0gRXhwZWN0ZWQ6IFVTRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IHRlcnJpdG9yeQorICAgICAgICBsb2dsbigiU2V0IHRlcnJpdG9yeSAtIERFIik7CisgICAgICAgIGdwLnNldFRlcnJpdG9yeSgiREUiKTsKKyAgICAgICAgY3VyID0gZ3AuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiRVVSIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogRVVSIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgY3VycmVuY3kKKyAgICAgICAgQ3VycmVuY3kgZWN1ciA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJCUkwiKTsKKyAgICAgICAgZ3Auc2V0Q3VycmVuY3koZWN1cik7CisgICAgICAgIGxvZ2xuKCJTZXQgZXhwbGljaXQgY3VycmVuY3kgLSBCUkwiKTsKKyAgICAgICAgY3VyID0gZ3AuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiQlJMIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogQlJMIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgdGVycml0b3J5IGFnYWluCisgICAgICAgIGxvZ2xuKCJTZXQgdGVycml0b3J5IC0gSlAiKTsKKyAgICAgICAgY3VyID0gZ3AuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiQlJMIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogQlJMIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBDdXJyZW5jeSBlY3VyMiA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJDSEYiKTsKKyAgICAgICAgYm9vbGVhbiBiRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0Q3VycmVuY3koZWN1cjIpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXRDdXJyZW5jeSBpcyBibG9ja2VkIik7CisgICAgICAgICAgICBiRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWJGcm96ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDdXJyZW5jeSBtdXN0IGJlIGJsb2NrZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNhZmUgY2xvbmUKKyAgICAgICAgbG9nbG4oImNsb25lQXNUaGF3ZWQiKTsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwMSA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpZ3AuY2xvbmVBc1RoYXdlZCgpOworICAgICAgICBjdXIgPSBncC5nZXRDdXJyZW5jeSgpOworICAgICAgICBjb2RlID0gY3VyLmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICBpZiAoIWNvZGUuZXF1YWxzKCJCUkwiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEN1cnJlbmN5IGlzICIgKyBjb2RlICsgIiAtIEV4cGVjdGVkOiBCUkwiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBlY3BsaWNpdCBjdXJyZW5jeQorICAgICAgICBncDEuc2V0Q3VycmVuY3koZWN1cjIpOworICAgICAgICBjdXIgPSBncDEuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgY29kZSA9IGN1ci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgaWYgKCFjb2RlLmVxdWFscygiQ0hGIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBpcyAiICsgY29kZSArICIgLSBFeHBlY3RlZDogQ0hGIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsZW5kYXIoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gcHRfQlIKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBwdCIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoInB0IikpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBTdHJpbmcgY2FsVHlwZSA9IGNhbC5nZXRUeXBlKCk7CisgICAgICAgIGlmICghY2FsVHlwZS5lcXVhbHMoImdyZWdvcmlhbiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgdHlwZSBpcyAiICsgY2FsVHlwZSArICIgRXhwZWN0ZWQ6IGdyZWdvcmlhbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGEgbGlzdCBvZiBsb2NhbGVzCisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlcyAtIGVuLCBlbl9KUCwgZW5fR0IiKTsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBuZXcgVUxvY2FsZVszXTsKKyAgICAgICAgbG9jYWxlc1swXSA9IG5ldyBVTG9jYWxlKCJlbiIpOworICAgICAgICBsb2NhbGVzWzFdID0gbmV3IFVMb2NhbGUoImVuX0pQIik7CisgICAgICAgIGxvY2FsZXNbMl0gPSBuZXcgVUxvY2FsZSgiZW5fR0IiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzKTsKKworICAgICAgICBjYWwgPSBncC5nZXRDYWxlbmRhcigpOworICAgICAgICBVTG9jYWxlIGNhbExvY2FsZSA9IGNhbC5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBpZiAoIWNhbExvY2FsZS5lcXVhbHMobG9jYWxlc1syXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhciBsb2NhbGUgaXMgIiArIGNhbExvY2FsZS50b1N0cmluZygpICsgIiAtIEV4cGVjdGVkOiBlbl9HQiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGVjcGxpY2l0IGNhbGVuZGFyCisgICAgICAgIGxvZ2xuKCJTZXQgSmFwYW5lc2UgY2FsZW5kYXIgdG8gdGhpcyBvYmplY3QiKTsKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBqY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZ3Auc2V0Q2FsZW5kYXIoamNhbCk7CisgICAgICAgIGNhbCA9IGdwLmdldENhbGVuZGFyKCk7CisgICAgICAgIGNhbFR5cGUgPSBjYWwuZ2V0VHlwZSgpOworICAgICAgICBpZiAoIWNhbFR5cGUuZXF1YWxzKCJqYXBhbmVzZSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgdHlwZSBpcyAiICsgY2FsVHlwZSArICIgRXhwZWN0ZWQ6IGphcGFuZXNlIik7CisgICAgICAgIH0KKworICAgICAgICBqY2FsLnNldEZpcnN0RGF5T2ZXZWVrKDMpOworICAgICAgICBpZiAoY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkgPT0gamNhbC5nZXRGaXJzdERheU9mV2VlaygpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgcmV0dXJuZWQgYnkgZ2V0Q2FsZW5kYXIgbXVzdCBiZSBhIHNhZmUgY29weSIpOworICAgICAgICB9CisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlaygzKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsMSA9IGdwLmdldENhbGVuZGFyKCk7CisgICAgICAgIGlmIChjYWwxLmdldEZpcnN0RGF5T2ZXZWVrKCkgPT0gY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhciByZXR1cm5lZCBieSBnZXRDYWxlbmRhciBtdXN0IGJlIGEgc2FmZSBjb3B5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBJc2xhbWljQ2FsZW5kYXIgaWNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgYm9vbGVhbiBiRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0Q2FsZW5kYXIoaWNhbCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgbG9nbG4oInNldENhbGVuZGFyIGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGJGcm96ZW4gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghYkZyb3plbikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldENhbGVuZGFyIG11c3QgYmUgYmxvY2tlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2FmZSBjbG9uZQorICAgICAgICBsb2dsbigiY2xvbmVBc1RoYXdlZCIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIGNhbCA9IGdwLmdldENhbGVuZGFyKCk7CisgICAgICAgIGNhbFR5cGUgPSBjYWwuZ2V0VHlwZSgpOworICAgICAgICBpZiAoIWNhbFR5cGUuZXF1YWxzKCJqYXBhbmVzZSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgdHlwZSBhZnRlIGNsb25lIGlzICIgKyBjYWxUeXBlICsgIiBFeHBlY3RlZDogamFwYW5lc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJTZXQgaXNsYW1pYyBjYWxlbmRhciIpOworICAgICAgICBncDEuc2V0Q2FsZW5kYXIoaWNhbCk7CisgICAgICAgIGNhbCA9IGdwMS5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWxUeXBlID0gY2FsLmdldFR5cGUoKTsKKyAgICAgICAgaWYgKCFjYWxUeXBlLmVxdWFscygiaXNsYW1pYyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIgdHlwZSBhZnRlIGNsb25lIGlzICIgKyBjYWxUeXBlICsgIiBFeHBlY3RlZDogaXNsYW1pYyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWVab25lKCkgeworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZSAtIHpoX0NOIAorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIHpoX0NOIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiemhfQ04iKSk7CisgICAgICAgIFRpbWVab25lIHR6ID0gZ3AuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgU3RyaW5nIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKCJBc2lhL1NoYW5naGFpIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaW1lIHpvbmUgSUQgaXMgIiArIHR6aWQgKyAiIEV4cGVjdGVkOiBBc2lhL1NoYW5naGFpIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gZW4KKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBlbiIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImVuIikpOworICAgICAgICB0eiA9IGdwLmdldFRpbWVab25lKCk7CisgICAgICAgIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKCJBbWVyaWNhL05ld19Zb3JrIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaW1lIHpvbmUgSUQgaXMgIiArIHR6aWQgKyAiIEV4cGVjdGVkOiBBbWVyaWNhL05ld19Zb3JrIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdGVycml0b3J5IC0gR0IKKyAgICAgICAgbG9nbG4oIlNldCB0ZXJyaXRvcnkgLSBHQiIpOworICAgICAgICBncC5zZXRUZXJyaXRvcnkoIkdCIik7CisgICAgICAgIHR6ID0gZ3AuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgdHppZCA9IHR6LmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkV1cm9wZS9Mb25kb24iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWUgem9uZSBJRCBpcyAiICsgdHppZCArICIgRXhwZWN0ZWQ6IEV1cm9wZS9Mb25kb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIGdldFRpbWVab25lIHJldHVybnMgYSBzYWZlIGNsb25lCisgICAgICAgIHR6LnNldElEKCJCYWRfSUQiKTsKKyAgICAgICAgdHogPSBncC5nZXRUaW1lWm9uZSgpOworICAgICAgICB0emlkID0gdHouZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiRXVyb3BlL0xvbmRvbiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZSB6b25lIElEIGlzICIgKyB0emlkICsgIiBFeHBlY3RlZDogRXVyb3BlL0xvbmRvbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGV4cGxpY2l0IHRpbWUgem9uZQorICAgICAgICBUaW1lWm9uZSBqc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQXNpYS9Ub2t5byIpOworICAgICAgICBTdHJpbmcgY3VzdG9tSnN0SWQgPSAiSmFwYW5fU3RhbmRhcmRfVGltZSI7CisgICAgICAgIGpzdC5zZXRJRChjdXN0b21Kc3RJZCk7CisgICAgICAgIGdwLnNldFRpbWVab25lKGpzdCk7CisgICAgICAgIHR6ID0gZ3AuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgdHppZCA9IHR6LmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoY3VzdG9tSnN0SWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZSB6b25lIElEIGlzICIgKyB0emlkICsgIiBFeHBlY3RlZDogIiArIGN1c3RvbUpzdElkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZyZWV6ZQorICAgICAgICBsb2dsbigiRnJlZXplIHRoaXMgb2JqZWN0Iik7CisgICAgICAgIFRpbWVab25lIGNzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJFdXJvcGUvUGFyaXMiKTsKKyAgICAgICAgYm9vbGVhbiBiRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0VGltZVpvbmUoY3N0KTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gdW9lKSB7CisgICAgICAgICAgICBsb2dsbigic2V0VGltZVpvbmUgaXMgYmxvY2tlZCIpOworICAgICAgICAgICAgYkZyb3plbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFiRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0VGltZVpvbmUgbXVzdCBiZSBibG9ja2VkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb2RpZmlhYmxlIGNsb25lCisgICAgICAgIGxvZ2xuKCJjbG9uZUFzVGhhd2VkIik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKyAgICAgICAgdHogPSBncDEuZ2V0VGltZVpvbmUoKTsKKyAgICAgICAgdHppZCA9IHR6LmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoY3VzdG9tSnN0SWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZSB6b25lIElEIGlzICIgKyB0emlkICsgIiBFeHBlY3RlZDogIiArIGN1c3RvbUpzdElkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBleHBsaWNpdCB0aW1lIHpvbmUKKyAgICAgICAgZ3AxLnNldFRpbWVab25lKGNzdCk7CisgICAgICAgIHR6ID0gZ3AxLmdldFRpbWVab25lKCk7CisgICAgICAgIHR6aWQgPSB0ei5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKGNzdC5nZXRJRCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWUgem9uZSBJRCBpcyAiICsgdHppZCArICIgRXhwZWN0ZWQ6ICIgKyBjc3QuZ2V0SUQoKSk7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRvcigpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgIC8vIFNldCBsb2NhbGUgLSB0cgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIHRyIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgidHIiKSk7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBncC5nZXRDb2xsYXRvcigpOworICAgICAgICBTdHJpbmcgbG9jU3RyID0gY29sbC5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygidHIiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvbGxhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogdHIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVuc3VwcG9ydGVkIGNvbGxhdG9yIGxvY2FsZSAtIHp1bgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIHp1biIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoInp1biIpKTsKKyAgICAgICAgY29sbCA9IGdwLmdldENvbGxhdG9yKCk7CisgICAgICAgIGxvY1N0ciA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoInJvb3QiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvbGxhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogcm9vdCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IGxvY2FsZXMgLSBlbl9KUCwgZnIsIGVuX1VTLCBmcl9GUgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGVuX0pQLCBmciwgZW5fVVMsIGZyX0ZSIik7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbNF07CisgICAgICAgIGxvY2FsZXNbMF0gPSBuZXcgVUxvY2FsZSgiZW5fSlAiKTsKKyAgICAgICAgbG9jYWxlc1sxXSA9IG5ldyBVTG9jYWxlKCJmciIpOworICAgICAgICBsb2NhbGVzWzJdID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisgICAgICAgIGxvY2FsZXNbM10gPSBuZXcgVUxvY2FsZSgiZnJfRlIiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzKTsKKyAgICAgICAgY29sbCA9IGdwLmdldENvbGxhdG9yKCk7CisgICAgICAgIGxvY1N0ciA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImZyX0ZSIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb2xsYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGZyX0ZSIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgQ29sbGF0b3IKKyAgICAgICAgQ29sbGF0b3IgY29sbDEgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgiaXQiKSk7CisgICAgICAgIGNvbGwxLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBsb2dsbigiU2V0IGNvbGxhdG9yIGZvciBpdCBpbiBjYW5vbmljYWwgZGVjb25wb3NpdGlvbiBtb2RlIik7CisgICAgICAgIGdwLnNldENvbGxhdG9yKGNvbGwxKTsKKyAgICAgICAgY29sbDEuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgY29sbCA9IGdwLmdldENvbGxhdG9yKCk7CisgICAgICAgIGxvY1N0ciA9IGNvbGwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoIml0IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb2xsYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbGwxLmVxdWFscyhjb2xsKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldENvbGxhdG9yIG11c3QgdXNlIGEgc2FmZSBjb3B5IG9mIGEgQ29sbGF0b3IiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZyZWV6ZQorICAgICAgICBsb2dsbigiRnJlZXplIHRoaXMgb2JqZWN0Iik7CisgICAgICAgIGJvb2xlYW4gaXNGcm96ZW4gPSBmYWxzZTsKKyAgICAgICAgZ3AuZnJlZXplKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXRDb2xsYXRvcihjb2xsMSk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgbG9nbG4oInNldENvbGxhdG9yIGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGlzRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0Q29sbGF0b3IgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyZWV6ZSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW9kaWZpYWJsZSBjbG9uZQorICAgICAgICBsb2dsbigiY2xvbmVBc1RoYXdlZCIpOworICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIGNvbGwgPSBncDEuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgbG9jU3RyID0gY29sbC5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiaXQiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvbGxhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogaXQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sbC5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEZWNvbXBvc2l0aW9uIG1vZGUgaXMgbm90IENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgY3VzdG9tIGNvbGxhdG9yIGFnYWluCisgICAgICAgIGdwMS5zZXRDb2xsYXRvcihjb2xsMSk7CisgICAgICAgIGNvbGwgPSBncDEuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgaWYgKGNvbGwuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5JREVOVElDQUwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdHJlbmd0aCBpcyBub3QgSURFTlRJQ0FMIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvcigpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgIC8vIFVuc3VwcG9ydGVkIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSAtIGFhcgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGFhciIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImFhciIpKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmsgPSBncC5nZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9MSU5FKTsKKyAgICAgICAgU3RyaW5nIGxvY1N0ciA9IGJyay5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygicm9vdCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTGluZSBicmVhayBpdGVyYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IHJvb3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBsb2NhbGUgLSBlcworICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGVzIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiZXMiKSk7CisgICAgICAgIGJyayA9IGdwLmdldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX0NIQVJBQ1RFUik7CisgICAgICAgIC8qIFRPRE86IEpCIzUzODMKKyAgICAgICAgbG9jU3RyID0gYnJrLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJlcyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogZXMiKTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIC8vIFNldCBleHBsaWNpdCBicmVhayBzZW50ZW5jZSBpdGVyYXRvcgorICAgICAgICBsb2dsbigiU2V0IGJyZWFrIGl0ZXJhdG9yIGZvciBzZW50ZW5jZSB1c2luZyBsb2NhbGUgaHVfSFUiKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmsxID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKG5ldyBVTG9jYWxlKCJodV9IVSIpKTsKKyAgICAgICAgZ3Auc2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfU0VOVEVOQ0UsIGJyazEpOworCisgICAgICAgIGJyayA9IGdwLmdldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1NFTlRFTkNFKTsKKyAgICAgICAgLyogVE9ETzogSkIjNTIxMAorICAgICAgICBsb2NTdHIgPSBicmsuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImh1X0hVIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTZW50ZW5jZSBicmVhayBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGh1X0hVIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgYnJrLnNldFRleHQoIlRoaXMgaXMgYSB0ZXN0IGNhc2UuICBJcyB0aGlzIGEgbmV3IGluc3RhbmNlPyIpOworICAgICAgICBicmsubmV4dCgpOworICAgICAgICBpZiAoYnJrMS5jdXJyZW50KCkgPT0gYnJrLmN1cnJlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEJyZWFrSXRlcmF0b3IgbXVzdCByZXR1cm4gYSBuZXcgaW5zdGFuY2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElsbGVnYWwgYXJndW1lbnQKKyAgICAgICAgbG9nbG4oIkdldCBicmVhayBpdGVyYXRvciB0eXBlIDEwMCIpOworICAgICAgICBib29sZWFuIGlsbGVnYWxBcmcgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJyayA9IGdwLmdldEJyZWFrSXRlcmF0b3IoMTAwKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIkJyZWFrIGl0ZXJhdG9yIHR5cGUgMTAwIGlzIGlsbGVnYWwiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEJyZWFrSXRlcmF0b3IgbXVzdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIHR5cGUgMTAwIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlNldCBicmVhayBpdGVyYXRvciB0eXBlIC0xIik7CisgICAgICAgIGlsbGVnYWxBcmcgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdwLnNldEJyZWFrSXRlcmF0b3IoLTEsIGJyazEpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiQnJlYWsgaXRlcmF0b3IgdHlwZSAtMSBpcyBpbGxlZ2FsIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRCcmVha0l0ZXJhdG9yIG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciB0eXBlIC0xIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyazIgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UobmV3IFVMb2NhbGUoImVzX01YIikpOworICAgICAgICBib29sZWFuIGlzRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfVElUTEUsIGJyazIpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXRCcmVha0l0ZXJhdG9yIGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGlzRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0QnJlYWtJdGVyYXRvciBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb2RpZmlhYmxlIGNsb25lCisgICAgICAgIGxvZ2xuKCJjbG9uZUFzVGhhd2VkIik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKyAgICAgICAgYnJrID0gZ3AxLmdldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX1dPUkQpOworICAgICAgICAvKiBUT0RPOiBKQiM1MzgzCisgICAgICAgIGxvY1N0ciA9IGJyay5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiZXMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdvcmQgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBlcyIpOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgVUxvY2FsZSBmckZSID0gbmV3IFVMb2NhbGUoImZyX0ZSIik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrQyA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoZnJGUik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJrVyA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKGZyRlIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJya0wgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShmckZSKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmtTID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKGZyRlIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJya1QgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoZnJGUik7CisKKyAgICAgICAgZ3AxLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX0NIQVJBQ1RFUiwgYnJrQyk7CisgICAgICAgIGdwMS5zZXRCcmVha0l0ZXJhdG9yKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5CSV9XT1JELCBicmtXKTsKKyAgICAgICAgZ3AxLnNldEJyZWFrSXRlcmF0b3IoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkJJX0xJTkUsIGJya0wpOworICAgICAgICBncDEuc2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfU0VOVEVOQ0UsIGJya1MpOworICAgICAgICBncDEuc2V0QnJlYWtJdGVyYXRvcihHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQklfVElUTEUsIGJya1QpOworCisgICAgICAgIC8qIFRPRE86IEpCIzUyMTAKKyAgICAgICAgbG9jU3RyID0gYnJrQy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiamFfSlAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENoYXJhY3RlciBicmVhayBpdGVyYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGZyX0ZSIik7CisgICAgICAgIH0KKyAgICAgICAgbG9jU3RyID0gYnJrVy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghbG9jU3RyLmVxdWFscygiamFfSlAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdvcmQgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBmcl9GUiIpOworICAgICAgICB9CisgICAgICAgIGxvY1N0ciA9IGJya0wuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImphX0pQIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMaW5lIGJyZWFrIGl0ZXJhdG9yIGxvY2FsZSBpcyAiICsgbG9jU3RyICsgIiBFeHBlY3RlZDogZnJfRlIiKTsKKyAgICAgICAgfQorICAgICAgICBsb2NTdHIgPSBicmtTLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFsb2NTdHIuZXF1YWxzKCJqYV9KUCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU2VudGVuY2UgYnJlYWsgaXRlcmF0b3IgbG9jYWxlIGlzICIgKyBsb2NTdHIgKyAiIEV4cGVjdGVkOiBmcl9GUiIpOworICAgICAgICB9CisgICAgICAgIGxvY1N0ciA9IGJya1QuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpOworICAgICAgICBpZiAoIWxvY1N0ci5lcXVhbHMoImphX0pQIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaXRsZSBicmVhayBpdGVyYXRvciBsb2NhbGUgaXMgIiArIGxvY1N0ciArICIgRXhwZWN0ZWQ6IGZyX0ZSIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICBVTG9jYWxlIGxvY19mcl9GUl9QYXJpcyA9IG5ldyBVTG9jYWxlKCJmcl9GUl9QYXJpcyIpOworICAgICAgICBVTG9jYWxlIGxvY19wZW8gPSBuZXcgVUxvY2FsZSgicGVvIik7CisKKyAgICAgICAgLy8gTG9jYWxlIGxpc3QgLSBmcl9GUl9QYXJpcworICAgICAgICBBcnJheUxpc3QgbG9jYWxlczEgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICBsb2NhbGVzMS5hZGQobG9jX2ZyX0ZSX1BhcmlzKTsKKworICAgICAgICAvLyBMb2NhbGUgbGlzdCAtIGFpbiwgZnJfRlJfUGFyaXMKKyAgICAgICAgQXJyYXlMaXN0IGxvY2FsZXMyID0gbmV3IEFycmF5TGlzdCgyKTsKKyAgICAgICAgbG9jYWxlczIuYWRkKGxvY19wZW8pOworICAgICAgICBsb2NhbGVzMi5hZGQobG9jX2ZyX0ZSX1BhcmlzKTsKKworICAgICAgICBsb2dsbigiTG9jYWxlczogPGRlZmF1bHQ+IHwgPGZyX0ZSX1BhcmlzPiB8IDxhaW4sIGZyX0ZSX1BhcmlzPiIpOworCisgICAgICAgIC8vIElEX0xPQ0FMRQorICAgICAgICBTdHJpbmcgaWQgPSAiemhfSGFudF9ISyI7CisgICAgICAgIFN0cmluZyBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfTE9DQUxFKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIFN0cmluZyBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfTE9DQUxFKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIFN0cmluZyBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfTE9DQUxFKTsKKworICAgICAgICBsb2dsbigiTG9jYWxlW3poX0hhbnRfSEtdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTG9jYWxlIElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJRF9MQU5HVUFHRQorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJmciI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9MQU5HVUFHRSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfTEFOR1VBR0UpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMyKTsKKyAgICAgICAgbmFtZTMgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0xBTkdVQUdFKTsKKworICAgICAgICBsb2dsbigiTGFuZ3VhZ2VbZnJdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTGFuZ3VhZ2UgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX1NDUklQVAorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJjeXJsIjsKKyAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1NDUklQVCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfU0NSSVBUKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIG5hbWUzID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9TQ1JJUFQpOworCisgICAgICAgIGxvZ2xuKCJTY3JpcHRbY3lybF06ICIgKyBuYW1lMSArICIgfCAiICsgbmFtZTIgKyAiIHwgIiArIG5hbWUzKTsKKyAgICAgICAgaWYgKG5hbWUxLmVxdWFscyhuYW1lMikgfHwgIW5hbWUyLmVxdWFscyhuYW1lMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTY3JpcHQgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElEX1RFUlJJVE9SWQorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJKUCI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9URVJSSVRPUlkpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1RFUlJJVE9SWSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVEVSUklUT1JZKTsKKworICAgICAgICBsb2dsbigiVGVycml0b3J5W0pQXTogIiArIG5hbWUxICsgIiB8ICIgKyBuYW1lMiArICIgfCAiICsgbmFtZTMpOworICAgICAgICBpZiAobmFtZTEuZXF1YWxzKG5hbWUyKSB8fCAhbmFtZTIuZXF1YWxzKG5hbWUzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlcnJpdG9yeSBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfVkFSSUFOVAorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJORURJUyI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9WQVJJQU5UKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9WQVJJQU5UKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIG5hbWUzID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9WQVJJQU5UKTsKKworICAgICAgICBsb2dsbigiVmFyaWFudFtORURJU106ICIgKyBuYW1lMSArICIgfCAiICsgbmFtZTIgKyAiIHwgIiArIG5hbWUzKTsKKyAgICAgICAgaWYgKG5hbWUxLmVxdWFscyhuYW1lMikgfHwgIW5hbWUyLmVxdWFscyhuYW1lMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBWYXJpYW50IElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJRF9LRVlXT1JECisgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIGlkID0gImNvbGxhdGlvbiI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9LRVlXT1JEKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9LRVlXT1JEKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIG5hbWUzID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9LRVlXT1JEKTsKKworICAgICAgICBsb2dsbigiS2V5d29yZFtjb2xsYXRpb25dOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogS2V5d29yZCBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfS0VZV09SRF9WQUxVRQorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJjb2xsYXRpb249dHJhZGl0aW9uYWwiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRF9WQUxVRSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczEpOworICAgICAgICBuYW1lMiA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRF9WQUxVRSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfS0VZV09SRF9WQUxVRSk7CisKKyAgICAgICAgbG9nbG4oIktleXdvcmQgdmFsdWVbdHJhZGl0aW9uYWxdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogS2V5d29yZCB2YWx1ZSBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfQ1VSUkVOQ1lfU1lNQk9MCisgICAgICAgIGdwLnJlc2V0KCk7CisgICAgICAgIGlkID0gIlVTRCI7CisgICAgICAgIG5hbWUxID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9DVVJSRU5DWV9TWU1CT0wpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0NVUlJFTkNZX1NZTUJPTCk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfQ1VSUkVOQ1lfU1lNQk9MKTsKKworICAgICAgICBsb2dsbigiQ3VycmVuY3kgc3ltYm9sW1VTRF06ICIgKyBuYW1lMSArICIgfCAiICsgbmFtZTIgKyAiIHwgIiArIG5hbWUzKTsKKyAgICAgICAgU3RyaW5nIGRvbGxhciA9ICIkIjsKKyAgICAgICAgaWYgKCFuYW1lMS5lcXVhbHMoZG9sbGFyKSB8fCAhbmFtZTIuZXF1YWxzKGRvbGxhcikgfHwgIW5hbWUzLmVxdWFscyhkb2xsYXIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3VycmVuY3kgc3ltYm9sIElEIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJRF9DVVJSRU5DWQorICAgICAgICBncC5yZXNldCgpOworICAgICAgICBpZCA9ICJVU0QiOworICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfQ1VSUkVOQ1kpOworICAgICAgICBncC5zZXRMb2NhbGVzKGxvY2FsZXMxKTsKKyAgICAgICAgbmFtZTIgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX0NVUlJFTkNZKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMik7CisgICAgICAgIG5hbWUzID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9DVVJSRU5DWSk7CisKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5W1VTRF06ICIgKyBuYW1lMSArICIgfCAiICsgbmFtZTIgKyAiIHwgIiArIG5hbWUzKTsKKyAgICAgICAgaWYgKG5hbWUxLmVxdWFscyhuYW1lMikgfHwgIW5hbWUyLmVxdWFscyhuYW1lMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDdXJyZW5jeSBJRCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSURfVElNRVpPTkUKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgaWQgPSAiRXVyb3BlL1BhcmlzIjsKKyAgICAgICAgbmFtZTEgPSBncC5nZXREaXNwbGF5TmFtZShpZCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLklEX1RJTUVaT05FKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsb2NhbGVzMSk7CisgICAgICAgIG5hbWUyID0gZ3AuZ2V0RGlzcGxheU5hbWUoaWQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5JRF9USU1FWk9ORSk7CisgICAgICAgIGdwLnNldExvY2FsZXMobG9jYWxlczIpOworICAgICAgICBuYW1lMyA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuSURfVElNRVpPTkUpOworCisgICAgICAgIGxvZ2xuKCJUaW1lem9uZVtFdXJvcGUvUGFyaXNdOiAiICsgbmFtZTEgKyAiIHwgIiArIG5hbWUyICsgIiB8ICIgKyBuYW1lMyk7CisgICAgICAgIGlmIChuYW1lMS5lcXVhbHMobmFtZTIpIHx8ICFuYW1lMi5lcXVhbHMobmFtZTMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGltZXpvbmUgSUQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElsbGVnYWwgSUQKKyAgICAgICAgZ3AucmVzZXQoKTsKKyAgICAgICAgYm9vbGVhbiBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCAtMSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsIHR5cGUgLTEiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERpc3BsYXlOYW1lIG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciB0eXBlIC0xIik7CisgICAgICAgIH0KKworICAgICAgICBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuYW1lMSA9IGdwLmdldERpc3BsYXlOYW1lKGlkLCAxMDApOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiSWxsZWdhbCB0eXBlIDEwMCIpOworICAgICAgICAgICAgaWxsZWdhbEFyZyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbGxlZ2FsQXJnKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0RGlzcGxheU5hbWUgbXVzdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIHR5cGUgMTAwIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgIFN0cmluZyBwYXR0ZXJuOworICAgICAgICBEYXRlRm9ybWF0IGRmOworCisgICAgICAgIC8vIFNldCB1bnN1cHBvcnRlZCBsb2NhbGUgLSBhY2gKKyAgICAgICAgbG9nbG4oIlNldCBsb2NhbGUgLSBhY2giKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlKG5ldyBVTG9jYWxlKCJhY2giKSk7CisKKyAgICAgICAgLy8gRGF0ZSAtIHNob3J0CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfU0hPUlQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIC8vIHJvb3QgcGF0dGVybiBtdXN0IGJlIHVzZWQKKyAgICAgICAgaWYgKCFwYXR0ZXJuLmVxdWFscygieXkvTU0vZGQiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFNIT1JUIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IHl5L01NL2RkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgbG9jYWxlIC0gZnIsIGZyX0NBLCBmcl9GUgorICAgICAgICBBcnJheUxpc3QgbGNscyA9IG5ldyBBcnJheUxpc3QoMyk7CisgICAgICAgIGxjbHMuYWRkKG5ldyBVTG9jYWxlKCJmciIpKTsKKyAgICAgICAgbGNscy5hZGQobmV3IFVMb2NhbGUoImZyX0NBIikpOworICAgICAgICBsY2xzLmFkZChuZXcgVUxvY2FsZSgiZnJfRlIiKSk7CisgICAgICAgIGxvZ2xuKCJTZXQgbG9jYWxlcyAtIGZyLCBmcl9DQSwgZnJfRlIiKTsKKyAgICAgICAgZ3Auc2V0TG9jYWxlcyhsY2xzKTsKKyAgICAgICAgLy8gRGF0ZSAtIHNob3J0CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfU0hPUlQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIC8vIGZyX0NBIHBhdHRlcm4gbXVzdCBiZSB1c2VkCisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoInl5LU1NLWRkIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGVUxMIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IHl5LU1NLWRkIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vIFNldCBsb2NhbGUgLSBlbl9HQgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGVuX0dCIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiZW5fR0IiKSk7CisgICAgICAgIAorICAgICAgICAvLyBEYXRlIC0gZnVsbAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0ZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkVFRUUsIGQgTU1NTSB5eXl5IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGVUxMIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IEVFRUUsIGQgTU1NTSB5eXl5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBEYXRlIC0gbG9uZworICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0xPTkcsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoImQgTU1NTSB5eXl5IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMT05HIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IGQgTU1NTSB5eXl5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBEYXRlIC0gbWVkaXVtCisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTUVESVVNLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIHBhdHRlcm4gPSAoKFNpbXBsZURhdGVGb3JtYXQpZGYpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdHRlcm4uZXF1YWxzKCJkIE1NTSB5eXl5IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNRURJVU0gZGF0ZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogZCBNTU0geXl5eSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGF0ZSAtIHNob3J0CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfU0hPUlQsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoImRkL01NL3l5eXkiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFNIT1JUIGRhdGUgcGF0dGVybiBpcyAiICsgcGF0dGVybiArICIgRXhwZWN0ZWQ6IGRkL01NL3l5eXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRpbWUgLSBmdWxsCisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0ZVTEwpOworICAgICAgICBwYXR0ZXJuID0gKChTaW1wbGVEYXRlRm9ybWF0KWRmKS50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKCFwYXR0ZXJuLmVxdWFscygiSEg6bW06c3MgeiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRlVMTCB0aW1lIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBISDptbTpzcyB6Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaW1lIC0gbG9uZworICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9MT05HKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkhIOm1tOnNzIHoiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExPTkcgdGltZSBwYXR0ZXJuIGlzICIgKyBwYXR0ZXJuICsgIiBFeHBlY3RlZDogSEg6bW06c3MgeiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGltZSAtIG1lZGl1bQorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9NRURJVU0pOworICAgICAgICBwYXR0ZXJuID0gKChTaW1wbGVEYXRlRm9ybWF0KWRmKS50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKCFwYXR0ZXJuLmVxdWFscygiSEg6bW06c3MiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1FRElVTSB0aW1lIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBISDptbTpzcyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGltZSAtIHNob3J0CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JUKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkhIOm1tIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTSE9SVCB0aW1lIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBISDptbSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGF0ZS9UaW1lIC0gZnVsbAorICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0ZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9GVUxMKTsKKyAgICAgICAgcGF0dGVybiA9ICgoU2ltcGxlRGF0ZUZvcm1hdClkZikudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0dGVybi5lcXVhbHMoIkVFRUUsIGQgTU1NTSB5eXl5IEhIOm1tOnNzIHoiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZVTEwgZGF0ZS90aW1lIHBhdHRlcm4gaXMgIiArIHBhdHRlcm4gKyAiIEV4cGVjdGVkOiBFRUVFLCBkIE1NTU0geXl5eSBISDptbTpzcyB6Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbnZhbGlkIHN0eWxlCisgICAgICAgIGJvb2xlYW4gaWxsZWdhbEFyZyA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYgPSBncC5nZXREYXRlRm9ybWF0KC0xLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsIGRhdGUgc3R5bGUgLTEiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERhdGVGb3JtYXQoKSBtdXN0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgZGF0ZVN0eWxlIC0xIik7CisgICAgICAgIH0KKworICAgICAgICBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIklsbGVnYWwgc3R5bGUgLSBkYXRlU3R5bGU6REZfTk9ORSAvIHRpbWVTdHlsZTpERl9OT05FIik7CisgICAgICAgICAgICBpbGxlZ2FsQXJnID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlsbGVnYWxBcmcpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREYXRlRm9ybWF0KCkgbXVzdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIGRhdGVTdHlsZTpERl9OT05FL3RpbWVTdHlsZTpERl9OT05FIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgdGltZSB6b25lCisgICAgICAgIGxvZ2xuKCJTZXQgdGltZXpvbmUgLSBBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICBncC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTE9ORywgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX01FRElVTSk7CisgICAgICAgIFN0cmluZyB0emlkID0gZGYuZ2V0VGltZVpvbmUoKS5nZXRJRCgpOworICAgICAgICBpZiAoIXR6aWQuZXF1YWxzKCJBbWVyaWNhL1Nhb19QYXVsbyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIERhdGVGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgdGltZXpvbmUgQW1lcmljYS9TYW9fUGF1bG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBleHBsaWNpdCBjYWxlbmRhcgorICAgICAgICBsb2dsbigiU2V0IGNhbGVuZGFyIC0gamFwYW5lc2UiKTsKKyAgICAgICAgQ2FsZW5kYXIgamNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIGpjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvVG9reW8iKSk7CisgICAgICAgIGdwLnNldENhbGVuZGFyKGpjYWwpOworICAgICAgICBkZiA9IGdwLmdldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JULCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfU0hPUlQpOworICAgICAgICBDYWxlbmRhciBkZkNhbCA9IGRmLmdldENhbGVuZGFyKCk7CisgICAgICAgIGlmICghKGRmQ2FsIGluc3RhbmNlb2YgSmFwYW5lc2VDYWxlbmRhcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBKYXBhbmVzZSBjYWxlbmRhciIpOworICAgICAgICB9CisgICAgICAgIC8vIFRpbWVab25lIG11c3QgYmUgc3RpbGwgQW1lcmljYS9TYW9fUGF1bG8KKyAgICAgICAgdHppZCA9IGRmLmdldFRpbWVab25lKCkuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQW1lcmljYS9TYW9fUGF1bG8iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIHRpbWV6b25lIEFtZXJpY2EvU2FvX1BhdWxvIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgRGF0ZUZvcm1hdAorICAgICAgICBsb2dsbigiU2V0IGV4cGxpY2l0IGRhdGUgZm9ybWF0IC0gZnVsbCBkYXRlIik7CisgICAgICAgIERhdGVGb3JtYXQgY3VzdG9tRkQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShuZXcgSXNsYW1pY0NhbGVuZGFyKCksIERhdGVGb3JtYXQuRlVMTCwgbmV3IFVMb2NhbGUoImFyX1NBIikpOworICAgICAgICBjdXN0b21GRC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQXNpYS9SaXlhZGgiKSk7CisgICAgICAgIGdwLnNldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0ZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FLCBjdXN0b21GRCk7CisgICAgICAgIGRmID0gZ3AuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfRlVMTCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUpOworICAgICAgICBkZkNhbCA9IGRmLmdldENhbGVuZGFyKCk7CisgICAgICAgIGlmICghKGRmQ2FsIGluc3RhbmNlb2YgSXNsYW1pY0NhbGVuZGFyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIElzbGFtaWMgY2FsZW5kYXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaW1lWm9uZSBpbiB0aGUgY3VzdG9tIERhdGVGb3JtYXQgaXMgb3ZlcnJpZGRlbiBieSBHUCdzIHRpbWV6b25lIHNldHRpbmcKKyAgICAgICAgdHppZCA9IGRmLmdldFRpbWVab25lKCkuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQW1lcmljYS9TYW9fUGF1bG8iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIHRpbWV6b25lIEFtZXJpY2EvU2FvX1BhdWxvIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBncC5mcmVlemUoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBjdXN0b21MRCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKG5ldyBCdWRkaGlzdENhbGVuZGFyKCksIERhdGVGb3JtYXQuTE9ORywgbmV3IFVMb2NhbGUoInRoIikpOworICAgICAgICBjdXN0b21MRC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQXNpYS9CYW5na29rIikpOworICAgICAgICBib29sZWFuIGlzRnJvemVuID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBncC5zZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9MT05HLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTk9ORSwgY3VzdG9tTEQpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXREYXRlRm9ybWF0IGlzIGJsb2NrZWQiKTsKKyAgICAgICAgICAgIGlzRnJvemVuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzRnJvemVuKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogc2V0RGF0ZUZvcm1hdCBtdXN0IGJlIGJsb2NrZWQgYWZ0ZXIgZnJvemVuIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNb2RpZmlhYmxlIGNsb25lCisgICAgICAgIGxvZ2xuKCJjbG9uZUFzVGhhd2VkIik7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncDEgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKWdwLmNsb25lQXNUaGF3ZWQoKTsKKyAgICAgICAgZ3AxLnNldERhdGVGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX0xPTkcsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9OT05FLCBjdXN0b21MRCk7CisgICAgICAgIAorICAgICAgICBkZiA9IGdwMS5nZXREYXRlRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ERl9TSE9SVCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX1NIT1JUKTsKKyAgICAgICAgZGZDYWwgPSBkZi5nZXRDYWxlbmRhcigpOworICAgICAgICBpZiAoIShkZkNhbCBpbnN0YW5jZW9mIEphcGFuZXNlQ2FsZW5kYXIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIERhdGVGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgSmFwYW5lc2UgY2FsZW5kYXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaW1lWm9uZSBtdXN0IGJlIHN0aWxsIEFtZXJpY2EvU2FvX1BhdWxvCisgICAgICAgIHR6aWQgPSBkZi5nZXRUaW1lWm9uZSgpLmdldElEKCk7CisgICAgICAgIGlmICghdHppZC5lcXVhbHMoIkFtZXJpY2EvU2FvX1BhdWxvIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSB0aW1lem9uZSBBbWVyaWNhL1Nhb19QYXVsbyIpOworICAgICAgICB9CisKKyAgICAgICAgZGYgPSBncDEuZ2V0RGF0ZUZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuREZfTE9ORywgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkRGX05PTkUpOworICAgICAgICBkZkNhbCA9IGRmLmdldENhbGVuZGFyKCk7CisgICAgICAgIGlmICghKGRmQ2FsIGluc3RhbmNlb2YgQnVkZGhpc3RDYWxlbmRhcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgRGF0ZUZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBCdWRkaGlzdCBjYWxlbmRhciIpOworICAgICAgICB9CisgICAgICAgIC8vIFRpbWVab25lIG11c3QgYmUgc3RpbGwgQW1lcmljYS9TYW9fUGF1bG8KKyAgICAgICAgdHppZCA9IGRmLmdldFRpbWVab25lKCkuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCF0emlkLmVxdWFscygiQW1lcmljYS9TYW9fUGF1bG8iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBEYXRlRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIHRpbWV6b25lIEFtZXJpY2EvU2FvX1BhdWxvIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBncCA9IG5ldyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMoKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgbmY7CisgICAgICAgIFN0cmluZyBudW1TdHI7CisgICAgICAgIGRvdWJsZSBudW0gPSAxMjM0NTYuNzg5OworCisgICAgICAgIC8vIFNldCB1bnN1cHBvcnRlZCBsb2NhbGUgd2l0aCBzdXBwb3J0ZWQgdGVycml0b3J5IGFuZ19LUgorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGFuZ19LUiIpOworICAgICAgICBncC5zZXRMb2NhbGUobmV3IFVMb2NhbGUoImFuZ19LUiIpKTsKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0NVUlJFTkNZKTsKKyAgICAgICAgbnVtU3RyID0gbmYuZm9ybWF0KG51bSk7CisgICAgICAgIGlmICghbnVtU3RyLmVxdWFscygiS1JXIDEyMyw0NTciKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IEtSVyAxMjMsNDU3Iik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNldCBsb2NhbGUgLSBkZV9ERQorICAgICAgICBsb2dsbigiU2V0IGxvY2FsZSAtIGRlX0RFIik7CisgICAgICAgIGdwLnNldExvY2FsZShuZXcgVUxvY2FsZSgiZGVfREUiKSk7CisKKyAgICAgICAgLy8gTkZfTlVNQkVSCisgICAgICAgIGxvZ2xuKCJOVU1CRVIgdHlwZSIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfTlVNQkVSKTsKKyAgICAgICAgbnVtU3RyID0gbmYuZm9ybWF0KG51bSk7CisgICAgICAgIGlmICghbnVtU3RyLmVxdWFscygiMTIzLjQ1Niw3ODkiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IDEyMy40NTYsNzg5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBORl9DVVJSRU5DWQorICAgICAgICBsb2dsbigiQ1VSUkVOQ1kgdHlwZSIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfQ1VSUkVOQ1kpOworICAgICAgICBudW1TdHIgPSBuZi5mb3JtYXQobnVtKTsKKyAgICAgICAgaWYgKCFudW1TdHIuZXF1YWxzKCIxMjMuNDU2LDc5IFx1MjBBQyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIHN0cmluZyBpcyAiICsgbnVtU3RyICsgIiBFeHBlY3RlZDogMTIzLjQ1Niw3OSBcdTIwQUMiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5GX1BFUkNFTlQKKyAgICAgICAgbG9nbG4oIlBFUkNFTlQgdHlwZSIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfUEVSQ0VOVCk7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIjEyLjM0NS42NzklIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgc3RyaW5nIGlzICIgKyBudW1TdHIgKyAiIEV4cGVjdGVkOiAxMi4zNDUuNjc5JSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTkZfU0NJRU5USUZJQworICAgICAgICBsb2dsbigiU0NJRU5USUZJQyB0eXBlIik7CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9TQ0lFTlRJRklDKTsKKyAgICAgICAgbnVtU3RyID0gbmYuZm9ybWF0KG51bSk7CisgICAgICAgIGlmICghbnVtU3RyLmVxdWFscygiMSwyMzQ1Njc4OUU1IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdW1iZXIgc3RyaW5nIGlzICIgKyBudW1TdHIgKyAiIEV4cGVjdGVkOiAxLDIzNDU2Nzg5RTUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5GX0lOVEVHRVIKKyAgICAgICAgbG9nbG4oIklOVEVHRVIgdHlwZSIpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfSU5URUdFUik7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIjEyMy40NTciKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bWJlciBzdHJpbmcgaXMgIiArIG51bVN0ciArICIgRXhwZWN0ZWQ6IDEyMy40NTciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEludmFsaWQgbnVtYmVyIHR5cGUKKyAgICAgICAgbG9nbG4oIklOVkFMSUQgdHlwZSIpOworICAgICAgICBib29sZWFuIGlsbGVnYWxBcmcgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KDEwMCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsIG51bWJlciBmb3JtYXQgdHlwZSAxMDAiKTsKKyAgICAgICAgICAgIGlsbGVnYWxBcmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaWxsZWdhbEFyZykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE51bWJlckZvcm1hdCBtdXN0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgdHlwZSAxMDAiKTsKKyAgICAgICAgfQorICAgICAgICBpbGxlZ2FsQXJnID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdCgtMSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbGxlZ2FsIG51bWJlciBmb3JtYXQgdHlwZSAtMSIpOworICAgICAgICAgICAgaWxsZWdhbEFyZyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbGxlZ2FsQXJnKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0TnVtYmVyRm9ybWF0IG11c3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciB0eXBlIC0xIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNldCBleHBsaWNpdCB0ZXJyaXRvcnkKKyAgICAgICAgbG9nbG4oIlNldCB0ZXJyaXRvcnkgLSBVUyIpOworICAgICAgICBncC5zZXRUZXJyaXRvcnkoIlVTIik7CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9DVVJSRU5DWSk7CisgICAgICAgIG51bVN0ciA9IG5mLmZvcm1hdChudW0pOworICAgICAgICBpZiAoIW51bVN0ci5lcXVhbHMoIjEyMy40NTYsNzkgJCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIHN0cmluZyBpcyAiICsgbnVtU3RyICsgIiBFeHBlY3RlZDogMTIzLjQ1Niw3OSAkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgZXhwbGljaXQgY3VycmVuY3kKKyAgICAgICAgbG9nbG4oIlNldCBjdXJyZW5jeSAtIEdCUCIpOworICAgICAgICBncC5zZXRDdXJyZW5jeShDdXJyZW5jeS5nZXRJbnN0YW5jZSgiR0JQIikpOworICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfQ1VSUkVOQ1kpOworICAgICAgICBudW1TdHIgPSBuZi5mb3JtYXQobnVtKTsKKyAgICAgICAgaWYgKCFudW1TdHIuZXF1YWxzKCIxMjMuNDU2LDc5IFx1MDBBMyIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVtYmVyIHN0cmluZyBpcyAiICsgbnVtU3RyICsgIiBFeHBlY3RlZDogMTIzLjQ1Niw3OSBcdTAwQTMiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBleGxpcGxpY2l0IE51bWJlckZvcm1hdAorICAgICAgICBsb2dsbigiU2V0IGV4cGxpY2l0IE51bWJlckZvcm1hdCBvYmplY3RzIik7CisgICAgICAgIE51bWJlckZvcm1hdCBjdXN0b21OdW0gPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UobmV3IFVMb2NhbGUoImhlX0lMIikpOworICAgICAgICBncC5zZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUiwgY3VzdG9tTnVtKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1c3RvbUN1ciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKG5ldyBVTG9jYWxlKCJ6aF9DTiIpKTsKKyAgICAgICAgZ3Auc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9DVVJSRU5DWSwgY3VzdG9tQ3VyKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1c3RvbVBjdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobmV3IFVMb2NhbGUoImVsX0dSIikpOworICAgICAgICBncC5zZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX1BFUkNFTlQsIGN1c3RvbVBjdCk7CisgICAgICAgIE51bWJlckZvcm1hdCBjdXN0b21TY2kgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKG5ldyBVTG9jYWxlKCJydV9SVSIpKTsKKyAgICAgICAgZ3Auc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9TQ0lFTlRJRklDLCBjdXN0b21TY2kpOworICAgICAgICBOdW1iZXJGb3JtYXQgY3VzdG9tSW50ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShuZXcgVUxvY2FsZSgicHRfUFQiKSk7CisgICAgICAgIGdwLnNldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfSU5URUdFUiwgY3VzdG9tSW50KTsKKworICAgICAgICAKKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUik7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygiaGVfSUwiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIGhlX0lMIik7CisgICAgICAgIH0KKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX0NVUlJFTkNZKTsKKyAgICAgICAgaWYgKCFuZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCkuZXF1YWxzKCJ6aF9DTiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIE51bWJlckZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBsb2NhbGUgemhfQ04iKTsKKyAgICAgICAgfQorICAgICAgICBuZiA9IGdwLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfUEVSQ0VOVCk7CisgICAgICAgIGlmICghbmYuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKS50b1N0cmluZygpLmVxdWFscygiZWxfR1IiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBOdW1iZXJGb3JtYXQgaW5zdGFuY2UgbXVzdCB1c2UgbG9jYWxlIGVsX0dSIik7CisgICAgICAgIH0KKyAgICAgICAgbmYgPSBncC5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX1NDSUVOVElGSUMpOworICAgICAgICBpZiAoIW5mLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkudG9TdHJpbmcoKS5lcXVhbHMoInJ1X1JVIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgTnVtYmVyRm9ybWF0IGluc3RhbmNlIG11c3QgdXNlIGxvY2FsZSBydV9SVSIpOworICAgICAgICB9CisgICAgICAgIG5mID0gZ3AuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9JTlRFR0VSKTsKKyAgICAgICAgaWYgKCFuZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCkuZXF1YWxzKCJwdF9QVCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIE51bWJlckZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBsb2NhbGUgcHRfUFQiKTsKKyAgICAgICAgfQorCisgICAgICAgIE51bWJlckZvcm1hdCBjdXN0b21OdW0xID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKG5ldyBVTG9jYWxlKCJoaV9JTiIpKTsKKworICAgICAgICAvLyBGcmVlemUKKyAgICAgICAgbG9nbG4oIkZyZWV6ZSB0aGlzIG9iamVjdCIpOworICAgICAgICBib29sZWFuIGlzRnJvemVuID0gZmFsc2U7CisgICAgICAgIGdwLmZyZWV6ZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ3Auc2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5ORl9OVU1CRVIsIGN1c3RvbU51bTEpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiB1b2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzZXROdW1iZXJGb3JtYXQgaXMgYmxvY2tlZCIpOworICAgICAgICAgICAgaXNGcm96ZW4gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghaXNGcm96ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXROdW1iZXJGb3JtYXQgbXVzdCBiZSBibG9ja2VkIGFmdGVyIGZyb3plbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ3JlYXRlIGEgbW9kaWZpYWJsZSBjbG9uZQorICAgICAgICBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgZ3AxID0gKEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcylncC5jbG9uZUFzVGhhd2VkKCk7CisKKyAgICAgICAgLy8gTnVtYmVyIHR5cGUgZm9ybWF0J3MgbG9jYWxlIGlzIHN0aWxsIGhlX0lMCisgICAgICAgIG5mID0gZ3AxLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfTlVNQkVSKTsKKyAgICAgICAgaWYgKCFuZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCkuZXF1YWxzKCJoZV9JTCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIE51bWJlckZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBsb2NhbGUgaGVfSUwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJTZXQgY3VzdG9tIG51bWJlciBmb3JtYXQgdXNpbmcgbG9jYWxlIGhpX0lOIik7CisgICAgICAgIGdwMS5zZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5GX05VTUJFUiwgY3VzdG9tTnVtMSk7CisgICAgICAgIG5mID0gZ3AxLmdldE51bWJlckZvcm1hdChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTkZfTlVNQkVSKTsKKyAgICAgICAgaWYgKCFuZi5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpLnRvU3RyaW5nKCkuZXF1YWxzKCJoaV9JTiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIE51bWJlckZvcm1hdCBpbnN0YW5jZSBtdXN0IHVzZSBsb2NhbGUgaGlfSU4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogSkIjNTM4MCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMjZ2V0Q2FsZW5kYXIoKSBzaG91bGQgcmV0dXJuIGEgQ2FsZW5kYXIgb2JqZWN0CisgICAgICogaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY3VycmVudCB0aW1lCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTM4MCgpIHsKKyAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGdwID0gbmV3IEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcygpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisKKyAgICAgICAgLy8gc2V0IHdheSBvbGQgZGF0ZQorICAgICAgICBnY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTUwKTsKKworICAgICAgICAvLyBzZXQgY2FsZW5kYXIgdG8gR1AKKyAgICAgICAgZ3Auc2V0Q2FsZW5kYXIoZ2NhbCk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gZ3AuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgLy8gQ2FsZW5kYXIgaW5zdGFuY2UgcmV0dXJuZWQgZnJvbSBHUCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQKKyAgICAgICAgLy8gYnkgdGhlIGN1cnJlbnQgdGltZQorICAgICAgICBsb25nIHRpbWVEaWZmID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBncC5nZXRDYWxlbmRhcigpLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICBpZiAoTWF0aC5hYnModGltZURpZmYpID4gMTAwMCkgeworICAgICAgICAgICAgLy8gaWYgZGlmZmVyZW5jZSBpcyBtb3JlIHRoYW4gMSBzZWNvbmQuLgorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBDYWxlbmRhciB3YXMgbm90IGluaXRpYWxpemVkIGJ5IGN1cnJlbnQgdGltZSAtIGRpZmZlcmVuY2U6IiArIHRpbWVEaWZmKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5NjA0OTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMjY1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERhdGVGb3JtYXQKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdC5qYXZhCisgKiovCisKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIERhdGUgRm9ybWF0CisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3REYXRlRm9ybWF0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIC8vIFZhbHVlcyBpbiBtaWxsaXNlY29uZHMgKD09IERhdGUpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVTRUNPTkQgPSAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT05FTUlOVVRFID0gNjAgKiBPTkVTRUNPTkQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVIT1VSID0gNjAgKiBPTkVNSU5VVEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVEQVkgPSAyNCAqIE9ORUhPVVI7CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgT05FWUVBUiA9IDM2NS4yNSAqIE9ORURBWTsgLy8gQXBwcm94aW1hdGUgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgLy8gRU1vZGVzCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEdFTkVSSUMgPSAwOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBUSU1FID0gR0VORVJJQyArIDE7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFURSA9IFRJTUUgKyAxOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEVfVElNRSA9IERBVEUgKyAxOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisKKyAgICBwcml2YXRlIERhdGVGb3JtYXQgZkZvcm1hdCA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmcgZlRlc3ROYW1lID0gbmV3IFN0cmluZygiZ2V0SW5zdGFuY2UiKTsKKyAgICBwcml2YXRlIGludCBmTGltaXQgPSAzOyAvLyBIb3cgbWFueSBpdGVyYXRpb25zIGl0IHNob3VsZCB0YWtlIHRvIHJlYWNoIGNvbnZlcmdlbmNlCisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOyAvLyBpbml0aWFsaXplZCBpbiByYW5kRG91YmxlCisKKyAgICBwdWJsaWMgSW50bFRlc3REYXRlRm9ybWF0KCkgeworICAgICAgICAvL0NvbnN0cnVjdHVyZQorICAgIH0gCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZGb3JtYXQgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVTG9jYWxlKCkgeworICAgICAgICBsb2NhbGVUZXN0KFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCAiRGVmYXVsdCBMb2NhbGUiKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgZG9lcyByb3VuZC10cmlwIHRlc3RpbmcgKGZvcm1hdCAtPiBwYXJzZSAtPiBmb3JtYXQgLT4gcGFyc2UgLT4gZXRjLikgb2YgRGF0ZUZvcm1hdC4KKyAgICBwdWJsaWMgdm9pZCBsb2NhbGVUZXN0KGZpbmFsIFVMb2NhbGUgbG9jYWxlLCBmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpbnQgdGltZVN0eWxlLCBkYXRlU3R5bGU7CisKKyAgICAgICAgLy8gRm9yIHBhdHRlcm5zIGluY2x1ZGluZyBvbmx5IHRpbWUgaW5mb3JtYXRpb24gYW5kIGEgdGltZXpvbmUsIGl0IG1heSB0YWtlCisgICAgICAgIC8vIHVwIHRvIHRocmVlIGl0ZXJhdGlvbnMsIHNpbmNlIHRoZSB0aW1lem9uZSBtYXkgc2hpZnQgYXMgdGhlIHllYXIgbnVtYmVyCisgICAgICAgIC8vIGlzIGRldGVybWluZWQuICBGb3Igb3RoZXIgcGF0dGVybnMsIDIgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZS4KKyAgICAgICAgZkxpbWl0ID0gMzsKKworICAgICAgICBmb3IodGltZVN0eWxlID0gMDsgdGltZVN0eWxlIDwgNDsgdGltZVN0eWxlKyspIHsKKyAgICAgICAgICAgIGZUZXN0TmFtZSA9IG5ldyBTdHJpbmcoIlRpbWUgdGVzdCAiICsgdGltZVN0eWxlICsgIiAoIiArIGxvY2FsZU5hbWUgKyAiKSIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UodGltZVN0eWxlLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGxvY2FsZVRlc3QgdGltZSBnZXRUaW1lSW5zdGFuY2UgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRlc3RGb3JtYXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZMaW1pdCA9IDI7CisKKyAgICAgICAgZm9yKGRhdGVTdHlsZSA9IDA7IGRhdGVTdHlsZSA8IDQ7IGRhdGVTdHlsZSsrKSB7CisgICAgICAgICAgICBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJEYXRlIHRlc3QgIiArIGRhdGVTdHlsZSArICIgKCIgKyBsb2NhbGVOYW1lICsgIikiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGRhdGVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBsb2NhbGVUZXN0IGRhdGUgZ2V0VGltZUluc3RhbmNlIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUZXN0Rm9ybWF0KCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IoZGF0ZVN0eWxlID0gMDsgZGF0ZVN0eWxlIDwgNDsgZGF0ZVN0eWxlKyspIHsKKyAgICAgICAgICAgIGZvcih0aW1lU3R5bGUgPSAwOyB0aW1lU3R5bGUgPCA0OyB0aW1lU3R5bGUrKykgeworICAgICAgICAgICAgICAgIGZUZXN0TmFtZSA9IG5ldyBTdHJpbmcoIkRhdGVUaW1lIHRlc3QgIiArIGRhdGVTdHlsZSArICIvIiArIHRpbWVTdHlsZSArICIgKCIgKyBsb2NhbGVOYW1lICsgIikiKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBmRm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGxvY2FsZVRlc3QgZGF0ZS90aW1lIGdldERhdGVUaW1lSW5zdGFuY2UgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFRlc3RGb3JtYXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGb3JtYXQoKSB7CisgICAgICAgIGlmIChmRm9ybWF0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0IGNyZWF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vICAgICAgICBsb2dsbigiVGVzdEZvcm1hdDogIiArIGZUZXN0TmFtZSk7CisgICAgICAgIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZSgwKSk7CisgICAgICAgIHRyeURhdGUobmV3IERhdGUoKGxvbmcpIDEyNzgxNjE4MDE3NzguMCkpOworICAgICAgICB0cnlEYXRlKG5vdyk7CisgICAgICAgIC8vIFNoaWZ0IDYgbW9udGhzIGludG8gdGhlIGZ1dHVyZSwgQVQgVEhFIFNBTUUgVElNRSBPRiBEQVkuCisgICAgICAgIC8vIFRoaXMgd2lsbCB0ZXN0IHRoZSBEU1QgaGFuZGxpbmcuCisgICAgICAgIHRyeURhdGUobmV3IERhdGUobm93LmdldFRpbWUoKSArIDYqMzAqT05FREFZKSk7CisKKyAgICAgICAgRGF0ZSBsaW1pdCA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKiAxMCk7IC8vIEFyYml0cmFyeSBsaW1pdAorICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKQorICAgICAgICAgICAgLy8gICAgICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKGZsb29yKHJhbmREb3VibGUoKSAqIGxpbWl0KSkpOworICAgICAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZSgobG9uZykgKHJhbmREb3VibGUoKSAqIGxpbWl0LmdldFRpbWUoKSkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZGVzY3JpYmVUZXN0KCkgeworICAgICAgICBpZiAoZkZvcm1hdCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogbm8gRGF0ZUZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXNzdW1lIGl0J3MgYSBTaW1wbGVEYXRlRm9ybWF0IGFuZCBnZXQgc29tZSBpbmZvCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcyA9IChTaW1wbGVEYXRlRm9ybWF0KSBmRm9ybWF0OworICAgICAgICBsb2dsbihmVGVzdE5hbWUgKyAiIFBhdHRlcm4gIiArIHMudG9QYXR0ZXJuKCkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdHJ5RGF0ZShEYXRlIHRoZURhdGUpIHsKKyAgICAgICAgZmluYWwgaW50IERFUFRIID0gMTA7CisgICAgICAgIERhdGVbXSBkYXRlID0gbmV3IERhdGVbREVQVEhdOworICAgICAgICBTdHJpbmdCdWZmZXJbXSBzdHJpbmcgPSBuZXcgU3RyaW5nQnVmZmVyW0RFUFRIXTsKKworICAgICAgICBpbnQgZGF0ZU1hdGNoID0gMDsKKyAgICAgICAgaW50IHN0cmluZ01hdGNoID0gMDsKKyAgICAgICAgYm9vbGVhbiBkdW1wID0gZmFsc2U7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MDsgaTxERVBUSDsgKytpKSBzdHJpbmdbaV0gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaT0wOyBpPERFUFRIOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpID09IDApIGRhdGVbaV0gPSB0aGVEYXRlOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZVtpXSA9IGZGb3JtYXQucGFyc2Uoc3RyaW5nW2ktMV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nW2ktMV0gKyAiIGZhaWxlZCBmb3IgbG9jYWxlOiAiK2ZGb3JtYXQuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3NpdGlvbiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgZkZvcm1hdC5mb3JtYXQoZGF0ZVtpXSwgc3RyaW5nW2ldLCBwb3NpdGlvbik7CisgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZGF0ZU1hdGNoID09IDAgJiYgZGF0ZVtpXSA9PSBkYXRlW2ktMV0pIGRhdGVNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0ZU1hdGNoID4gMCAmJiBkYXRlW2ldICE9IGRhdGVbaS0xXSkgeworICAgICAgICAgICAgICAgICAgICBkZXNjcmliZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogRGF0ZSBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nTWF0Y2ggPT0gMCAmJiBzdHJpbmdbaV0gPT0gc3RyaW5nW2ktMV0pIHN0cmluZ01hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJpbmdNYXRjaCA+IDAgJiYgc3RyaW5nW2ldICE9IHN0cmluZ1tpLTFdKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBTdHJpbmcgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGF0ZU1hdGNoID4gMCAmJiBzdHJpbmdNYXRjaCA+IDApIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IERFUFRIKSAtLWk7CisKKyAgICAgICAgaWYgKHN0cmluZ01hdGNoID4gZkxpbWl0IHx8IGRhdGVNYXRjaCA+IGZMaW1pdCkgeworICAgICAgICAgICAgZGVzY3JpYmVUZXN0KCk7CisgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBObyBzdHJpbmcgYW5kL29yIGRhdGUgbWF0Y2ggd2l0aGluICIgKyBmTGltaXQgKyAiIGl0ZXJhdGlvbnMuIik7CisgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkdW1wKSB7CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8PWk7ICsraykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgayArICI6ICIgKyBkYXRlW2tdICsgIiBGPiAiICsgc3RyaW5nW2tdICsgIiBQPiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFJldHVybiBhIHJhbmRvbSBkb3VibGUgZnJvbSAwLjAxIHRvIDEsIGluY2x1c2l2ZQorICAgIHByaXZhdGUgZG91YmxlIHJhbmREb3VibGUoKSB7CisgICAgaWYgKHJhbmRvbSA9PSBudWxsKSB7CisgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOworICAgIH0KKyAgICAgICAgLy8gQXNzdW1lIDgtYml0IChvciBsYXJnZXIpIHJhbmQgdmFsdWVzLiAgQWxzbyBhc3N1bWUKKyAgICAgICAgLy8gdGhhdCB0aGUgc3lzdGVtIHJhbmQoKSBmdW5jdGlvbiBpcyB2ZXJ5IHBvb3IsIHdoaWNoIGl0IGFsd2F5cyBpcy4KKyAgICAgICAgLy8gICAgICAgIGRvdWJsZSBkOworICAgICAgICAvLyAgICAgICAgaW50IGk7CisgICAgICAgIC8vICAgICAgICBkbyB7CisgICAgICAgIC8vICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBzaXplb2YoZG91YmxlKTsgKytpKQorICAgICAgICAvLyAgICAgICAgICAgIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgY2hhciBwb2tlID0gKGNoYXIqKSZkOworICAgICAgICAvLyAgICAgICAgICAgICAgICBwb2tlW2ldID0gKHJhbmQoKSAmIDB4RkYpOworICAgICAgICAvLyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIH0gd2hpbGUgKFRQbGF0Zm9ybVV0aWxpdGllcy5pc05hTihkKSB8fCBUUGxhdGZvcm1VdGlsaXRpZXMuaXNJbmZpbml0ZShkKSk7CisKKyAgICAgICAgLy8gICAgICAgIGlmIChkIDwgMC4wKSBkID0gLWQ7CisgICAgICAgIC8vICAgICAgICBpZiAoZCA+IDAuMCkKKyAgICAgICAgLy8gICAgICAgIHsKKyAgICAgICAgLy8gICAgICAgICAgICBkb3VibGUgZSA9IGZsb29yKGxvZzEwKGQpKTsKKyAgICAgICAgLy8gICAgICAgICAgICBpZiAoZSA8IC0yLjApIGQgKj0gcG93KDEwLjAsIC1lLTIpOworICAgICAgICAvLyAgICAgICAgICAgIGVsc2UgaWYgKGUgPiAtMS4wKSBkIC89IHBvdygxMC4wLCBlKzEpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgcmV0dXJuIGQ7CisgICAgICAgIHJldHVybiByYW5kb20ubmV4dERvdWJsZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBsb2dsbigiIiArIGNvdW50ICsgIiBhdmFpbGFibGUgbG9jYWxlcyIpOworICAgICAgICBpZiAobG9jYWxlcyAhPSBudWxsICAmJiAgY291bnQgIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsbCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkhPTApIGFsbC5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgYWxsLmFwcGVuZChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oYWxsLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgZXJybG4oIioqKioqKioqKiogRkFJTDogWmVybyBhdmFpbGFibGUgbG9jYWxlcyBvciBudWxsIGFycmF5IHBvaW50ZXIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TW9uc3RlcigpIHsKKyAgICAgICAgaWYgKGlzUXVpY2soKSkgeworICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgKHVzZSAtZSBmb3IgZXhoYXVzdGl2ZSkiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBpZiAobG9jYWxlcyAhPSBudWxsICAmJiAgY291bnQgIT0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgbmFtZSArICIuLi4iKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVUZXN0KGxvY2FsZXNbaV0sIG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdE1vbnN0ZXIgbG9jYWxlVGVzdCBleGNlcHRpb24iICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJmZWE2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKQEAgLTAsMCArMSwxOTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhhdCB0aGUgZXF1YWxzIG1ldGhvZCB3b3JrcyBjb3JyZWN0bHkuCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpCisgICAgeworICAgICAgICAvLyBDcmVhdGUgdHdvIG9iamVjdHMgYXQgZGlmZmVyZW50IHN5c3RlbSB0aW1lcworICAgICAgICBEYXRlRm9ybWF0IGEgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgc3RhcnQgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpLmdldFRpbWUoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIGNoYW5nZWQgdG8gcmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmdzLgorICAgICAgICAgICAgaWYgKCFzdGFydC5lcXVhbHMoQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdhaXQgZm9yIHRpbWUgdG8gY2hhbmdlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRGF0ZUZvcm1hdCBiID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworCisgICAgICAgIGlmICghKGEuZXF1YWxzKGIpKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0IG9iamVjdHMgY3JlYXRlZCBhdCBkaWZmZXJlbnQgdGltZXMgYXJlIHVuZXF1YWwuIik7CisKKyAgICAgICAgLy8gV2h5IGhhcyB0aGlzIHRlc3QgYmVlbiBkaXNhYmxlZD8/PyAtIGFsaXUKKy8vICAgICAgICBpZiAoYiBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICAvL2RvdWJsZSBPTkVfWUVBUiA9IDM2NSoyNCo2MCo2MCoxMDAwLjA7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKy8vICAgICAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdCliKS5zZXRUd29EaWdpdFN0YXJ0RGF0ZShzdGFydC5nZXRUaW1lKCkgKyA1MCpPTkVfWUVBUik7CisvLyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpCisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQgb2JqZWN0cyB3aXRoIGRpZmZlcmVudCB0d28gZGlnaXQgc3RhcnQgZGF0ZXMgYXJlIGVxdWFsLiIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFR3b0RpZ2l0U3RhcnREYXRlIGZhaWxlZC4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgZ2VuZXJpYyBBUEkgbWV0aG9kcyBpbiBEYXRlRm9ybWF0IHRvIGFjaGlldmUgMTAwJSBBUEkgY292ZXJhZ2UuCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpCisgICAgeworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBBUEkgdGVzdC0tLSIpOyBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEYXRlRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERhdGVGb3JtYXQgZGVmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZyID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBpdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuSVRBTElBTik7CisgICAgICAgIERhdGVGb3JtYXQgZGUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5HRVJNQU4pOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVxdWFsaXR5IG9wZXJhdG9yIik7CisKKyAgICAgICAgaWYoIGZyLmVxdWFscyhpdCkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGVxdWFscyBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgobG9uZyk4MzcwMzk5MjgwNDYuMCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgcmVzMyA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBmci5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IGl0LmZvcm1hdChkLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gZGUuZm9ybWF0KGQpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiMDIvMDMvNzYgMjo1MCBBTSwgQ1NUIik7CisgICAgICAgIE9iamVjdCByZXN1bHQxID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQyID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQzID0gbmV3IERhdGUoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MwMSA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIHJlc3VsdDEgPSBkZWYucGFyc2VPYmplY3QodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdDEgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZU9iamVjdCgpIGZhaWxlZCBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyAoKERhdGUpcmVzdWx0MSkuZ2V0VGltZSgpKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0MiA9IGRlZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyByZXN1bHQyLmdldFRpbWUoKSk7CisKKyAgICAgICAgcmVzdWx0MyA9IGRlZi5wYXJzZSh0ZXh0LCBwb3MwMSk7CisgICAgICAgIGlmIChyZXN1bHQzID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0My5nZXRUaW1lKCkpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCJHb3QgIiArIGNvdW50ICsgIiBsb2NhbGVzIiApOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICBuYW1lID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9nbG4obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRMZW5pZW50KGl0LmlzTGVuaWVudCgpKTsKKyAgICAgICAgaWYoZnIuaXNMZW5pZW50KCkgIT0gaXQuaXNMZW5pZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TGVuaWVudCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgQ2FsZW5kYXIgY2FsID0gZGVmLmdldENhbGVuZGFyKCk7CisgICAgICAgIENhbGVuZGFyIG5ld0NhbCA9IChDYWxlbmRhcikgY2FsLmNsb25lKCk7CisgICAgICAgIGRlLnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGl0LnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGlmKCAhIGRlLmdldENhbGVuZGFyKCkuZXF1YWxzKGl0LmdldENhbGVuZGFyKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBDYWxlbmRhcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgTnVtYmVyRm9ybWF0IG5mID0gZGVmLmdldE51bWJlckZvcm1hdCgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmV3TmYgPSAoTnVtYmVyRm9ybWF0KSBuZi5jbG9uZSgpOworICAgICAgICBkZS5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpdC5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpZiggISBkZS5nZXROdW1iZXJGb3JtYXQoKS5lcXVhbHMoaXQuZ2V0TnVtYmVyRm9ybWF0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBOdW1iZXJGb3JtYXQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFRpbWVab25lIHR6ID0gZGVmLmdldFRpbWVab25lKCk7CisgICAgICAgIFRpbWVab25lIG5ld1R6ID0gKFRpbWVab25lKSB0ei5jbG9uZSgpOworICAgICAgICBkZS5zZXRUaW1lWm9uZShuZXdUeik7CisgICAgICAgIGl0LnNldFRpbWVab25lKG5ld1R6KTsKKyAgICAgICAgaWYoICEgZGUuZ2V0VGltZVpvbmUoKS5lcXVhbHMoaXQuZ2V0VGltZVpvbmUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IFRpbWVab25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIERhdGVGb3JtYXQgdGVzdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERhdGVGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTQ2N2M2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERhdGVGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm1hcHRzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworLyoKKyAqIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisgKiB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKyAqIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KKyAqLworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdEFQSUMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJQygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBoaWRpbmcgb2YgcGFyc2UoKSBhbmQgZm9ybWF0KCkgQVBJcyBpbiB0aGUgRm9ybWF0IGhpZXJhcmNoeS4KKyAgICAgKiBXZSB0ZXN0IHRoZSBlbnRpcmUgaGllcmFyY2h5LCBldmVuIHRob3VnaCB0aGlzIHRlc3QgaXMgbG9jYXRlZCBpbgorICAgICAqIHRoZSBEYXRlRm9ybWF0IEFQSSB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lSGlkaW5nKCkgeworICAgIAorICAgICAgICAvLyBOLkIuOiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IENPTVBJTEVTLCBzaW5jZSBpdCdzIGEgdGVzdCBvZgorICAgICAgICAvLyBjb21waWxlLXRpbWUgbmFtZSBoaWRpbmcuCisgICAgCisgICAgICAgIERhdGUgZGF0ZU9iaiA9IG5ldyBEYXRlKDApOworICAgICAgICBOdW1iZXIgbnVtT2JqID0gbmV3IERvdWJsZSgzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUpOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAKKyAgICAgICAgLy8gRGF0ZUZvcm1hdCBjYWxsaW5nIEZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGF0ZUZtdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGlmIChkYXRlRm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqKTsKKyAgICAgICAgICAgICAgICBzdHJCdWZmZXIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FuJ3QgY3JlYXRlIERhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBTaW1wbGVEYXRlRm9ybWF0IGNhbGxpbmcgRm9ybWF0ICYgRGF0ZUZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlNpbXBsZURhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBzZGYuZm9ybWF0KGRhdGVPYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICAvLyBEYXRlRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyQnVmZmVyID0gc2RmLmZvcm1hdChuZXcgRGF0ZSgwKSwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQobmV3IERhdGUoMCkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyLCBwcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTnVtYmVyRm9ybWF0IGNhbGxpbmcgRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBpZiAoZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChudW1PYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYW4ndCBjcmVhdGUgTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBjYWxsaW5nIEZvcm1hdCAmIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQiKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQobnVtT2JqKTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQobnVtT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgLy8gTnVtYmVyRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCgyLjcxODI4KTsKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMTIzNDU2Nyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDEuNDE0MjEsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDk4NzY1NDMsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBOdW1iZXIgb2JqID0gZm10LnBhcnNlKHN0ciwgcHBvcyk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG9iaiA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgICAgIGlmKG9iaj09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgZm9ybWF0IG9iamVjdCBjb3VsZCBub3QgcGFyc2UgdGhlIHN0cmluZyA6ICIrc3RyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL0lDVTRKIGhhdmUgbm90IHRoZSBjbGFzc2VzIENob2ljZUZvcm1hdCBhbmQgTWVzc2FnZUZvcm1hdAorICAgICAgICAvKgorICAgICAgICAvLyBDaG9pY2VGb3JtYXQgY2FsbGluZyBGb3JtYXQgJiBOdW1iZXJGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDaG9pY2VGb3JtYXQiKTsKKyAgICAgICAgICAgIENob2ljZUZvcm1hdCBmbXQgPSBuZXcgQ2hvaWNlRm9ybWF0KCIwI2Zvb3wxI2Zvb3N8MiNmb29zIik7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KG51bU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIC8vIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMi43MTgyOCk7CisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KDEyMzQ1NjcpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCgxLjQxNDIxLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCg5ODc2NTQzLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgTnVtYmVyIG9iaiA9IGZtdC5wYXJzZShzdHIsIHBwb3MpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvYmogPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgCisgICAgICAgIC8vIE1lc3NhZ2VGb3JtYXQgY2FsbGluZyBGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNZXNzYWdlRm9ybWF0Iik7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIC8vIFdlIHVzZSBkYXRlT2JqLCB3aGljaCBNZXNzYWdlRm9ybWF0IHNob3VsZCByZWplY3QuCisgICAgICAgICAgICAvLyBXZSdyZSB0ZXN0aW5nIG5hbWUgaGlkaW5nLCBub3QgdGhlIGZvcm1hdCBtZXRob2QuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDg4MmYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSw0NzkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgU3ltYm9scworKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGdldE1vbnRocworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRNb250aHMoKQorICAgIHsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGg7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKworICAgICAgICBzeW1ib2w9bmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIG1vbnRoPXN5bWJvbC5nZXRNb250aHMoKTsKKyAgICAgICAgaW50IGNudCA9IG1vbnRoLmxlbmd0aDsKKworICAgICAgICBsb2dsbigic2l6ZSA9ICIgKyBjbnQpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjbnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4obW9udGhbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldE1vbnRoczIoKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9sOworICAgICAgICBzeW1ib2w9bmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGludFtdIGNvbnRleHQgPSB7RGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSwgRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFUfTsKKyAgICAgICAgaW50W10gd2lkdGggPSB7RGF0ZUZvcm1hdFN5bWJvbHMuV0lERSwgRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQsIERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPV307CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRleHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgd2lkdGgubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBtb250aCA9c3ltYm9sLmdldE1vbnRocyhjb250ZXh0W2ldLHdpZHRoW2pdKTsKKyAgICAgICAgICAgICAgICBpbnQgY250ID0gbW9udGgubGVuZ3RoOworCisgICAgICAgICAgICAgICAgbG9nbG4oInNpemUgPSAiICsgY250KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbW9udGgubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4obW9udGhba10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0V2Vla2RheXMyKCl7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBpbnRbXSBjb250ZXh0ID0ge0RhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsIERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVH07CisgICAgICAgIGludFtdIHdpZHRoID0ge0RhdGVGb3JtYXRTeW1ib2xzLldJREUsIERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVELCBEYXRlRm9ybWF0U3ltYm9scy5OQVJST1d9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZXh0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHdpZHRoLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gd2QgPXN5bWJvbC5nZXRXZWVrZGF5cyhjb250ZXh0W2ldLHdpZHRoW2pdKTsKKyAgICAgICAgICAgICAgICBpbnQgY250ID0gd2QubGVuZ3RoOworCisgICAgICAgICAgICAgICAgbG9nbG4oInNpemUgPSAiICsgY250KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgd2QubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4od2Rba10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldEVyYU5hbWVzKCl7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgU3RyaW5nW10gcyA9IHN5bWJvbC5nZXRFcmFOYW1lcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKHNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIC8vIFRlc3QgdGhlIEFQSSBvZiBEYXRlRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGZyID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBmcjIgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZW4gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIGlmKGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRW5nbGlzaCBEYXRlRm9ybWF0U3ltYm9scyBlcXVhbCB0byBGcmVuY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZG8gc29tZSBWRVJZIGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGdldC9zZXQgd29yaworCisgICAgICAgIGxvbmcgY291bnQ7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBlbi5nZXRFcmFzKCk7CisgICAgICAgIGZyLnNldEVyYXMoZXJhcyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMxID0gZnIuZ2V0RXJhcygpOworICAgICAgICBjb3VudCA9IGVyYXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gZXJhczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGVyYXNbaV0uZXF1YWxzKGVyYXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGhzID0gZW4uZ2V0TW9udGhzKCk7CisgICAgICAgIGZyLnNldE1vbnRocyhtb250aHMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBtb250aHMxID0gZnIuZ2V0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gbW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IG1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgbW9udGhzW2ldLmVxdWFscyhtb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRNb250aHMgPSBlbi5nZXRTaG9ydE1vbnRocygpOworICAgICAgICBmci5zZXRTaG9ydE1vbnRocyhzaG9ydE1vbnRocyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHNob3J0TW9udGhzMSA9IGZyLmdldFNob3J0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gc2hvcnRNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc2hvcnRNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc2hvcnRNb250aHNbaV0uZXF1YWxzKHNob3J0TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2lkZU1vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZyMi5zZXRNb250aHMod2lkZU1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdpZGVNb250aHMxID0gZnIyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gd2lkZU1vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSB3aWRlTW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHdpZGVNb250aHNbaV0uZXF1YWxzKHdpZGVNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyTW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyMi5zZXRNb250aHMoYWJick1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyTW9udGhzMSA9IGZyMi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBhYmJyTW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IGFiYnJNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGFiYnJNb250aHNbaV0uZXF1YWxzKGFiYnJNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93TW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmci5zZXRNb250aHMobmFycm93TW9udGhzLERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYXJyb3dNb250aHMxID0gZnIuZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBjb3VudCA9IG5hcnJvd01vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBuYXJyb3dNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBuYXJyb3dNb250aHNbaV0uZXF1YWxzKG5hcnJvd01vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU1vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmci5zZXRNb250aHMoc3RhbmRhbG9uZU1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTW9udGhzMSA9IGZyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZU1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZU1vbnRoc1tpXS5lcXVhbHMoc3RhbmRhbG9uZU1vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKFNUQU5EQUxPTkUsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBlbi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyLnNldE1vbnRocyhzdGFuZGFsb25lU2hvcnRNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydE1vbnRoczEgPSBmci5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVNob3J0TW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVTaG9ydE1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVTaG9ydE1vbnRoc1tpXS5lcXVhbHMoc3RhbmRhbG9uZVNob3J0TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoU1RBTkRBTE9ORSxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTmFycm93TW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0TW9udGhzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTmFycm93TW9udGhzMSA9IGZyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZU5hcnJvd01vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lTmFycm93TW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKFNUQU5EQUxPTkUsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVOYXJyb3dNb250aHNbaV0uZXF1YWxzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3ZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKCk7CisgICAgICAgIGZyLnNldFdlZWtkYXlzKHdlZWtkYXlzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2Vla2RheXMxID0gZnIuZ2V0V2Vla2RheXMoKTsKKyAgICAgICAgY291bnQgPSB3ZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSB3ZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISB3ZWVrZGF5c1tpXS5lcXVhbHMod2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzaG9ydFdlZWtkYXlzID0gZW4uZ2V0U2hvcnRXZWVrZGF5cygpOworICAgICAgICBmci5zZXRTaG9ydFdlZWtkYXlzKHNob3J0V2Vla2RheXMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzaG9ydFdlZWtkYXlzMSA9IGZyLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICAgICAgY291bnQgPSBzaG9ydFdlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHNob3J0V2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzaG9ydFdlZWtkYXlzW2ldLmVxdWFscyhzaG9ydFdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlV2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZyMi5zZXRXZWVrZGF5cyh3aWRlV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlV2Vla2RheXMxID0gZnIyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgY291bnQgPSB3aWRlV2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2lkZVdlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgd2lkZVdlZWtkYXlzW2ldLmVxdWFscyh3aWRlV2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFiYnJXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyMi5zZXRXZWVrZGF5cyhhYmJyV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYWJicldlZWtkYXlzMSA9IGZyMi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBjb3VudCA9IGFiYnJXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBhYmJyV2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgYWJicldlZWtkYXlzW2ldLmVxdWFscyhhYmJyV2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYXJyb3dXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmci5zZXRXZWVrZGF5cyhuYXJyb3dXZWVrZGF5cyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93V2Vla2RheXMxID0gZnIuZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGNvdW50ID0gbmFycm93V2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gbmFycm93V2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIG5hcnJvd1dlZWtkYXlzW2ldLmVxdWFscyhuYXJyb3dXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lV2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmci5zZXRXZWVrZGF5cyhzdGFuZGFsb25lV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVdlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVdlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzdGFuZGFsb25lV2Vla2RheXNbaV0uZXF1YWxzKHN0YW5kYWxvbmVXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoU1RBTkRBTE9ORSxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzID0gZW4uZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyLnNldFdlZWtkYXlzKHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5czEgPSBmci5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbaV0uZXF1YWxzKHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhTVEFOREFMT05FLEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0V2Vla2RheXMoc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lTmFycm93V2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoU1RBTkRBTE9ORSxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzW2ldLmVxdWFscyhzdGFuZGFsb25lTmFycm93V2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdpZGVRdWFydGVycyA9IGVuLmdldFF1YXJ0ZXJzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZnIyLnNldFF1YXJ0ZXJzKHdpZGVRdWFydGVycyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdpZGVRdWFydGVyczEgPSBmcjIuZ2V0UXVhcnRlcnMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHdpZGVRdWFydGVycy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSB3aWRlUXVhcnRlcnMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRRdWFydGVycyhGT1JNQVQsIFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgd2lkZVF1YXJ0ZXJzW2ldLmVxdWFscyh3aWRlUXVhcnRlcnMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKEZPUk1BVCwgV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyUXVhcnRlcnMgPSBlbi5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmcjIuc2V0UXVhcnRlcnMoYWJiclF1YXJ0ZXJzLERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFiYnJRdWFydGVyczEgPSBmcjIuZ2V0UXVhcnRlcnMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBhYmJyUXVhcnRlcnMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gYWJiclF1YXJ0ZXJzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UXVhcnRlcnMoRk9STUFULCBBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBhYmJyUXVhcnRlcnNbaV0uZXF1YWxzKGFiYnJRdWFydGVyczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UXVhcnRlcnMoRk9STUFULCBBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lUXVhcnRlcnMgPSBlbi5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmci5zZXRRdWFydGVycyhzdGFuZGFsb25lUXVhcnRlcnMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVF1YXJ0ZXJzMSA9IGZyLmdldFF1YXJ0ZXJzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVF1YXJ0ZXJzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVRdWFydGVyczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKFNUQU5EQUxPTkUsIFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZVF1YXJ0ZXJzW2ldLmVxdWFscyhzdGFuZGFsb25lUXVhcnRlcnMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFF1YXJ0ZXJzKFNUQU5EQUxPTkUsIFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVNob3J0UXVhcnRlcnMgPSBlbi5nZXRRdWFydGVycyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZnIuc2V0UXVhcnRlcnMoc3RhbmRhbG9uZVNob3J0UXVhcnRlcnMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzMSA9IGZyLmdldFF1YXJ0ZXJzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UXVhcnRlcnMoU1RBTkRBTE9ORSwgQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZVNob3J0UXVhcnRlcnNbaV0uZXF1YWxzKHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRRdWFydGVycyhTVEFOREFMT05FLCBBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhbXBtcyA9IGVuLmdldEFtUG1TdHJpbmdzKCk7CisgICAgICAgIGZyLnNldEFtUG1TdHJpbmdzKGFtcG1zKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYW1wbXMxID0gZnIuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICAgICAgY291bnQgPSBhbXBtcy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBhbXBtczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEFtUG1TdHJpbmdzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBhbXBtc1tpXS5lcXVhbHMoYW1wbXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEFtUG1TdHJpbmdzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHJvd0NvdW50ID0gMCwgY29sdW1uQ291bnQgPSAwOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIHN0cmluZ3MgPSBlbi5nZXRab25lU3RyaW5ncygpOworICAgICAgICBmci5zZXRab25lU3RyaW5ncyhzdHJpbmdzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBzdHJpbmdzMSA9IGZyLmdldFpvbmVTdHJpbmdzKCk7CisgICAgICAgIHJvd0NvdW50ID0gc3RyaW5ncy5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByb3dDb3VudDsgaSsrKSB7CisgICAgICAgICAgICBjb2x1bW5Db3VudCA9IHN0cmluZ3NbaV0ubGVuZ3RoOworICAgICAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IGNvbHVtbkNvdW50OyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiggc3RyaW5nc1tpXVtqXSAhPSBzdHJpbmdzMVtpXVtqXSApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRab25lU3RyaW5ncygpIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisvLyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBEYXRlRm9ybWF0U3ltYm9scy5nZXRQYXR0ZXJuQ2hhcnMoKTsKKworICAgICAgICBTdHJpbmcgbG9jYWxQYXR0ZXJuOyAvLyBwYXQxLCBwYXQyOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIGxvY2FsUGF0dGVybiA9IGVuLmdldExvY2FsUGF0dGVybkNoYXJzKCk7CisgICAgICAgIGZyLnNldExvY2FsUGF0dGVybkNoYXJzKGxvY2FsUGF0dGVybik7CisgICAgICAgIGlmKCEgZW4uZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKS5lcXVhbHMoZnIuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy9EYXRlRm9ybWF0U3ltYm9scyBmb28gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgICAgIGVuID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmci5jbG9uZSgpOworCisgICAgICAgIGlmKCEgZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxYTVmMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCkBAIC0wLDAgKzEsMjY5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCisgKiovCisgCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBEZWNpbWFsIEZvcm1hdCBBUEkKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSSgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJvYmxlbSAxOiBzaW1wbHkgcnVubmluZyAKKyAgICAgKiBkZWNGNC5zZXRSb3VuZGluZ01vZGUoamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCkgZG9lcyBub3Qgd29yayAKKyAgICAgKiBhcyBkZWNGNC5zZXRSb3VuZGluZ0luY3JlbWVudCguMDAwMSkgbXVzdCBhbHNvIGJlIHJ1bi4KKyAgICAgKiBQcm9ibGVtIDI6IGRlY0Y0LmZvcm1hdCg4Ljg4ODg1KSBkb2VzIG5vdCByZXR1cm4gOC44ODg5IGFzIGV4cGVjdGVkLiAKKyAgICAgKiBZb3UgbXVzdCBydW4gZGVjRjQuZm9ybWF0KG5ldyBCaWdEZWNpbWFsKERvdWJsZS52YWx1ZU9mKDguODg4ODUpKSkgaW4gCisgICAgICogb3JkZXIgZm9yIHRoaXMgdG8gd29yayBhcyBleHBlY3RlZC4KKyAgICAgKiBQcm9ibGVtIDM6IFRoZXJlIHNlZW1zIHRvIGJlIG5vIHdheSB0byBzZXQgaGFsZiB1cCB0byBiZSB0aGUgZGVmYXVsdCAKKyAgICAgKiByb3VuZGluZyBtb2RlLgorICAgICAqIFdlIHNvbHZlZCB0aGUgcHJvYmxlbSB3aXRoIHRoZSBjb2RlIGF0IHRoZSBib3R0b20gb2YgdGhpcyBwYWdlIGhvd2V2ZXIgCisgICAgICogdGhpcyBpcyBub3QgcXVpdGUgZ2VuZXJhbCBwdXJwb3NlIGVub3VnaCB0byBpbmNsdWRlIGluIGljdTRqLiBBIHN0YXRpYworICAgICAqIHNldERlZmF1bHRSb3VuZGluZ01vZGUgZnVuY3Rpb24gd291bGQgc29sdmUgdGhlIHByb2JsZW0gbmljZWx5LiBBbHNvIAorICAgICAqIGRlY2ltYWwgcGxhY2VzIHBhc3QgMjAgYXJlIG5vdCBoYW5kbGVkIHByb3Blcmx5LiBBIHNtYWxsIGFtbW91bnQgb2Ygd29yayAKKyAgICAgKiB3b3VsZCBtYWtlIGJyaW5nIHRoaXMgdXAgdG8gc251ZmYuCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEpCMTg3MSgpCisgICAgeworICAgICAgICAvLyBwcm9ibGVtIDIKKyAgICAgICAgZG91YmxlIG51bWJlciA9IDguODg4ODU7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICI4Ljg4ODkiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHBhdCA9ICIsIyMwLjAwMDAiOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRlYyA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgZG91YmxlIHJvdW5kaW5naW5jID0gMC4wMDAxOworICAgICAgICBkZWMuc2V0Um91bmRpbmdJbmNyZW1lbnQocm91bmRpbmdpbmMpOworICAgICAgICBTdHJpbmcgc3RyID0gZGVjLmZvcm1hdChudW1iZXIpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG51bWJlciArICIgeCBcIiIgKyBwYXQgKyAiXCIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc3RyICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICB9ICAgCisKKyAgICAgICAgcGF0ID0gIiwjIzAuMDAwMSI7CisgICAgICAgIGRlYyA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgc3RyID0gZGVjLmZvcm1hdChudW1iZXIpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG51bWJlciArICIgeCBcIiIgKyBwYXQgKyAiXCIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc3RyICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICB9ICAKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RpbmcgMjAgZGVjaW1hbCBwbGFjZXMKKyAgICAgICAgcGF0ID0gIiwjIzAuMDAwMDAwMDAwMDAwMDAwMDAwMDEiOworICAgICAgICBkZWMgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQpOworICAgICAgICBCaWdEZWNpbWFsIGJpZ251bWJlciA9IG5ldyBCaWdEZWNpbWFsKCI4Ljg4ODg4ODg4ODg4ODg4ODg4ODg4NSIpOworICAgICAgICBleHBlY3RlZCA9ICI4Ljg4ODg4ODg4ODg4ODg4ODg4ODg5IjsKKyAgICAgICAgCisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgc3RyID0gZGVjLmZvcm1hdChiaWdudW1iZXIpOyAKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBiaWdudW1iZXIgKyAiIHggXCIiICsgcGF0ICsgIlwiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHN0ciArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICB9CisKKyAgICAvKiogCisgICAgICogVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIAorICAgICAqIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIERlY2ltYWxGb3JtYXQgY29uc3RydWN0b3JzIik7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZWYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiIywjIzAuIyBGRiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBEZWNpbWFsRm9ybWF0IChwYXR0ZXJuKSIpOworICAgICAgICB9CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEZWNpbWFsRm9ybWF0IGN1c3QxID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCksIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNsb25lKCkgYW5kIGVxdWFsaXR5IG9wZXJhdG9ycyIpOworCisgICAgICAgIEZvcm1hdCBjbG9uZSA9IChGb3JtYXQpIGRlZi5jbG9uZSgpOworICAgICAgICBpZiggISBkZWYuZXF1YWxzKGNsb25lKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKy8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xLjA0NTYwMDM3ZS00OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEuMDQ1NjAwMzcwMDAwMDAwMkUtNCBvbiBOVAorICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3MDAwMDAwMDAwMDsgLy8gdGhpcyB3b3JrcyEKKyAgICAgICAgZmluYWwgbG9uZyBsID0gMTAwMDAwMDAwOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGlzIHRoZSBkb3VibGUgdmFsdWUiKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczMgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3M0ID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMxKTsKKworICAgICAgICByZXMyID0gcGF0LmZvcm1hdChsLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworCisgICAgICAgIHJlczMgPSBjdXN0MS5mb3JtYXQoZCwgcmVzMywgcG9zMyk7CisgICAgICAgIGxvZ2xuKCIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKworICAgICAgICByZXM0ID0gY3VzdDEuZm9ybWF0KGwsIHJlczQsIHBvczQpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHBhcnNlKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCItMTAsNDU2LjAwMzciKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHBhdHQgPSBuZXcgU3RyaW5nKCIjLCMjMC4jIik7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocGF0dCk7CisgICAgICAgIGRvdWJsZSBkMiA9IHBhdC5wYXJzZSh0ZXh0LCBwb3MpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmKGQyICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCIgKyBkMiArICIgIT0gIiArIGQgKyAiKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgKGxvbmcpIGQyKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0dGVycyBhbmQgc2V0dGVycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKworICAgICAgICBmaW5hbCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1zID0gcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGRlZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgaWYoICEgcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBwb3NQcmVmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBwb3NQcmVmaXggPSBwYXQuZ2V0UG9zaXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHByZWZpeCAoc2hvdWxkIGJlICspOiAiICsgcG9zUHJlZml4KTsKKyAgICAgICAgaWYocG9zUHJlZml4ICE9ICIrIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQb3NpdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5lZ1ByZWZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlUHJlZml4KCItIik7CisgICAgICAgIG5lZ1ByZWZpeCA9IHBhdC5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgcHJlZml4IChzaG91bGQgYmUgLSk6ICIgKyBuZWdQcmVmaXgpOworICAgICAgICBpZihuZWdQcmVmaXggIT0gIi0iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE5lZ2F0aXZlUHJlZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcG9zU3VmZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVTdWZmaXgoIl8iKTsKKyAgICAgICAgcG9zU3VmZml4ID0gcGF0LmdldFBvc2l0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBzdWZmaXggKHNob3VsZCBiZSBfKTogIiArIHBvc1N1ZmZpeCk7CisgICAgICAgIGlmKHBvc1N1ZmZpeCAhPSAiXyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdTdWZmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVN1ZmZpeCgifiIpOworICAgICAgICBuZWdTdWZmaXggPSBwYXQuZ2V0TmVnYXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIH4pOiAiICsgbmVnU3VmZml4KTsKKyAgICAgICAgaWYobmVnU3VmZml4ICE9ICJ+IikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVN1ZmZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBtdWx0aXBsaWVyID0gMDsKKyAgICAgICAgcGF0LnNldE11bHRpcGxpZXIoOCk7CisgICAgICAgIG11bHRpcGxpZXIgPSBwYXQuZ2V0TXVsdGlwbGllcigpOworICAgICAgICBsb2dsbigiTXVsdGlwbGllciAoc2hvdWxkIGJlIDgpOiAiICsgbXVsdGlwbGllcik7CisgICAgICAgIGlmKG11bHRpcGxpZXIgIT0gOCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNdWx0aXBsaWVyKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ3JvdXBpbmdTaXplID0gMDsKKyAgICAgICAgcGF0LnNldEdyb3VwaW5nU2l6ZSgyKTsKKyAgICAgICAgZ3JvdXBpbmdTaXplID0gcGF0LmdldEdyb3VwaW5nU2l6ZSgpOworICAgICAgICBsb2dsbigiR3JvdXBpbmcgc2l6ZSAoc2hvdWxkIGJlIDIpOiAiICsgKGxvbmcpIGdyb3VwaW5nU2l6ZSk7CisgICAgICAgIGlmKGdyb3VwaW5nU2l6ZSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nU2l6ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0LnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYm9vbGVhbiB0ZiA9IHBhdC5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpOworICAgICAgICBsb2dsbigiRGVjaW1hbFNlcGFyYXRvcklzQWx3YXlzU2hvd24gKHNob3VsZCBiZSB0cnVlKSBpcyAiICsgICh0ZiA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICAgICAgaWYodGYgIT0gdHJ1ZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBmdW5reVBhdDsKKyAgICAgICAgZnVua3lQYXQgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIGlzICIgKyBmdW5reVBhdCk7CisKKyAgICAgICAgU3RyaW5nIGxvY1BhdDsKKyAgICAgICAgbG9jUGF0ID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiTG9jYWxpemVkIHBhdHRlcm4gaXMgIiArIGxvY1BhdCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGFwcGx5UGF0dGVybigpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgYXBwbHlQYXR0ZXJuKCkiKTsKKworICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIzsoIywjIzAuMCMpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYoICEgczIuZXF1YWxzKHAxKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9QYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcDIgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIyBGRjsoIywjIzAuMCMgRkYpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMik7CisgICAgICAgIHBhdC5hcHBseUxvY2FsaXplZFBhdHRlcm4ocDIpOworICAgICAgICBTdHJpbmcgczM7CisgICAgICAgIHMzID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMzKTsKKyAgICAgICAgaWYoICEgczMuZXF1YWxzKHAyKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjQ5OTFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSw1MTcgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2RjZm1hcHRzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CisKKy8vIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisvLyB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKy8vIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisKKyAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQgQVBJIHRlc3QtLS0iKTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIERlY2ltYWxGb3JtYXQgY29uc3RydWN0b3JzIik7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZWYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiIywjIzAuIyBGRiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBEZWNpbWFsRm9ybWF0IChwYXR0ZXJuKSIpOworICAgICAgICB9CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEZWNpbWFsRm9ybWF0IGN1c3QxID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCksIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNsb25lKCkgYW5kIGVxdWFsaXR5IG9wZXJhdG9ycyIpOworCisgICAgICAgIEZvcm1hdCBjbG9uZSA9IChGb3JtYXQpIGRlZi5jbG9uZSgpOworICAgICAgICBpZiAoIWRlZi5lcXVhbHMoY2xvbmUpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IENsb25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzIik7CisKKyAgICAgICAgLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzc7IC8vIHRoaXMgYXBwZWFycyBhcyAtMTA0NTYuMDAzNzAwMDAwMDAxIG9uIE5UCisgICAgICAgIC8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xLjA0NTYwMDM3ZS00OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEuMDQ1NjAwMzcwMDAwMDAwMkUtNCBvbiBOVAorICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3MDAwMDAwMDAwMDsgLy8gdGhpcyB3b3JrcyEKKyAgICAgICAgZmluYWwgbG9uZyBsID0gMTAwMDAwMDAwOworICAgICAgICBsb2dsbigiIiArIERvdWJsZS50b1N0cmluZyhkKSArICIgaXMgdGhlIGRvdWJsZSB2YWx1ZSIpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MyID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczQgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKworICAgICAgICByZXMxID0gZGVmLmZvcm1hdChkLCByZXMxLCBwb3MxKTsKKyAgICAgICAgbG9nbG4oIiIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IHBhdC5mb3JtYXQobCwgcmVzMiwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gY3VzdDEuZm9ybWF0KGQsIHJlczMsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIERvdWJsZS50b1N0cmluZyhkKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKworICAgICAgICByZXM0ID0gY3VzdDEuZm9ybWF0KGwsIHJlczQsIHBvczQpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHBhcnNlKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCItMTAsNDU2LjAwMzciKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHBhdHQgPSBuZXcgU3RyaW5nKCIjLCMjMC4jIik7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocGF0dCk7CisgICAgICAgIGRvdWJsZSBkMiA9IHBhdC5wYXJzZSh0ZXh0LCBwb3MpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmIChkMiAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgiICsgRG91YmxlLnRvU3RyaW5nKGQyKSArICIgIT0gIiArIERvdWJsZS50b1N0cmluZyhkKSArICIpKSBmb3IgIiArIHRleHQpOyAKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgKGxvbmcpIGQyKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0dGVycyBhbmQgc2V0dGVycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKworICAgICAgICBmaW5hbCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1zID0gcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGRlZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgaWYgKCFwYXQuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKS5lcXVhbHMoZGVmLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBEZWNpbWFsRm9ybWF0U3ltYm9scygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHBvc1ByZWZpeDsKKyAgICAgICAgcGF0LnNldFBvc2l0aXZlUHJlZml4KCIrIik7CisgICAgICAgIHBvc1ByZWZpeCA9IHBhdC5nZXRQb3NpdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiUG9zaXRpdmUgcHJlZml4IChzaG91bGQgYmUgKyk6ICIgKyBwb3NQcmVmaXgpOworICAgICAgICBpZiAocG9zUHJlZml4ICE9ICIrIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQb3NpdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5lZ1ByZWZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlUHJlZml4KCItIik7CisgICAgICAgIG5lZ1ByZWZpeCA9IHBhdC5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgcHJlZml4IChzaG91bGQgYmUgLSk6ICIgKyBuZWdQcmVmaXgpOworICAgICAgICBpZiAobmVnUHJlZml4ICE9ICItIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHBvc1N1ZmZpeDsKKyAgICAgICAgcGF0LnNldFBvc2l0aXZlU3VmZml4KCJfIik7CisgICAgICAgIHBvc1N1ZmZpeCA9IHBhdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpOworICAgICAgICBsb2dsbigiUG9zaXRpdmUgc3VmZml4IChzaG91bGQgYmUgXyk6ICIgKyBwb3NTdWZmaXgpOworICAgICAgICBpZiAocG9zU3VmZml4ICE9ICJfIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQb3NpdGl2ZVN1ZmZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5lZ1N1ZmZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlU3VmZml4KCJ+Iik7CisgICAgICAgIG5lZ1N1ZmZpeCA9IHBhdC5nZXROZWdhdGl2ZVN1ZmZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgc3VmZml4IChzaG91bGQgYmUgfik6ICIgKyBuZWdTdWZmaXgpOworICAgICAgICBpZiAobmVnU3VmZml4ICE9ICJ+IikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVN1ZmZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBtdWx0aXBsaWVyID0gMDsKKyAgICAgICAgcGF0LnNldE11bHRpcGxpZXIoOCk7CisgICAgICAgIG11bHRpcGxpZXIgPSBwYXQuZ2V0TXVsdGlwbGllcigpOworICAgICAgICBsb2dsbigiTXVsdGlwbGllciAoc2hvdWxkIGJlIDgpOiAiICsgbXVsdGlwbGllcik7CisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TXVsdGlwbGllcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdyb3VwaW5nU2l6ZSA9IDA7CisgICAgICAgIHBhdC5zZXRHcm91cGluZ1NpemUoMik7CisgICAgICAgIGdyb3VwaW5nU2l6ZSA9IHBhdC5nZXRHcm91cGluZ1NpemUoKTsKKyAgICAgICAgbG9nbG4oIkdyb3VwaW5nIHNpemUgKHNob3VsZCBiZSAyKTogIiArIChsb25nKSBncm91cGluZ1NpemUpOworICAgICAgICBpZiAoZ3JvdXBpbmdTaXplICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0R3JvdXBpbmdTaXplKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBwYXQuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICAgICAgICBib29sZWFuIHRmID0gcGF0LmlzRGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCk7CisgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgIkRlY2ltYWxTZXBhcmF0b3JJc0Fsd2F5c1Nob3duIChzaG91bGQgYmUgdHJ1ZSkgaXMgIiArICh0ZiA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsgCisgICAgICAgIGlmICh0ZiAhPSB0cnVlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGZ1bmt5UGF0OworICAgICAgICBmdW5reVBhdCA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gaXMgIiArIGZ1bmt5UGF0KTsKKworICAgICAgICBTdHJpbmcgbG9jUGF0OworICAgICAgICBsb2NQYXQgPSBwYXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJMb2NhbGl6ZWQgcGF0dGVybiBpcyAiICsgbG9jUGF0KTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgYXBwbHlQYXR0ZXJuKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBhcHBseVBhdHRlcm4oKSIpOworCisgICAgICAgIFN0cmluZyBwMSA9IG5ldyBTdHJpbmcoIiMsIyMwLjAjOygjLCMjMC4wIykiKTsKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAxKTsKKyAgICAgICAgcGF0LmFwcGx5UGF0dGVybihwMSk7CisgICAgICAgIFN0cmluZyBzMjsKKyAgICAgICAgczIgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJFeHRyYWN0ZWQgcGF0dGVybiBpcyAiICsgczIpOworICAgICAgICBpZiAoIXMyLmVxdWFscyhwMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9QYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcDIgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIyBGRjsoIywjIzAuMCMgRkYpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMik7CisgICAgICAgIHBhdC5hcHBseUxvY2FsaXplZFBhdHRlcm4ocDIpOworICAgICAgICBTdHJpbmcgczM7CisgICAgICAgIHMzID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMzKTsKKyAgICAgICAgaWYgKCFzMy5lcXVhbHMocDIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvTG9jYWxpemVkUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisgICAgICAgIC8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworICAgICAgICAvLyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8gICAgICAgICAgIE51bWJlckZvcm1hdCB0ZXN0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworICAgICAgICAvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworICAgICAgICAvLyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgRGVjaW1hbEZvcm1hdCIpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZGluZygpIHsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyID0gMi41NTsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyMSA9IC0yLjU1OworICAgICAgICAvLysyLjU1IHJlc3VsdHMgICAtMi41NSByZXN1bHRzCisgICAgICAgIGRvdWJsZSByZXN1bHRbXSA9IHsKKyAgICAgICAgICAgIDMsIC0zLCAgIAorICAgICAgICAgICAgMiwgLTIsIAorICAgICAgICAgICAgMywgLTIsIAorICAgICAgICAgICAgMiwgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMgCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHMgPSAiIjsKKyAgICAgICAgcyA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gPSAiICsgcyk7CisgICAgICAgIGludCBtb2RlOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyOworICAgICAgICBmb3IgKG1vZGUgPSAwOyBtb2RlIDwgNzsgbW9kZSsrKSB7CisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdNb2RlKG1vZGUpOworICAgICAgICAgICAgaWYgKHBhdC5nZXRSb3VuZGluZ01vZGUoKSAhPSBtb2RlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAiU2V0Um91bmRpbmdNb2RlIG9yIEdldFJvdW5kaW5nTW9kZSBmYWlsZWQgZm9yIG1vZGU9IiArIG1vZGUpOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9mb3IgKzIuNTUgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjAKKyAgICAgICAgICAgIHBhdC5zZXRSb3VuZGluZ0luY3JlbWVudCgxLjApOworICAgICAgICAgICAgcmVzdWx0U3RyID0gcGF0LmZvcm1hdChSb3VuZGluZ251bWJlcik7CisgICAgICAgICAgICBtZXNzYWdlID0gInJvdW5kKCIgKyAoZG91YmxlKSBSb3VuZGluZ251bWJlcgorICAgICAgICAgICAgICAgICAgICArICIsIiArIG1vZGUgKyAiLEZBTFNFKSB3aXRoIFJvdW5kaW5nSW5jcmVtZW50PTEuMD09PiI7IAorICAgICAgICAgICAgdmVyaWZ5KG1lc3NhZ2UsIHJlc3VsdFN0ciwgcmVzdWx0W2krK10pOworICAgICAgICAgICAgbWVzc2FnZSA9ICIiOworICAgICAgICAgICAgcmVzdWx0U3RyID0gIiI7CisKKyAgICAgICAgICAgIC8vZm9yIC0yLjU1IHdpdGggUm91bmRpbmdJbmNyZW1lbnQ9MS4wCisgICAgICAgICAgICByZXN1bHRTdHIgPSBwYXQuZm9ybWF0KFJvdW5kaW5nbnVtYmVyMSk7CisgICAgICAgICAgICBtZXNzYWdlID0gInJvdW5kKCIgKyAoZG91YmxlKSBSb3VuZGluZ251bWJlcjEKKyAgICAgICAgICAgICAgICAgICAgKyAiLCIgKyBtb2RlICsgIixGQUxTRSkgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjA9PT4iOyAKKyAgICAgICAgICAgIHZlcmlmeShtZXNzYWdlLCByZXN1bHRTdHIsIHJlc3VsdFtpKytdKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9ICIiOworICAgICAgICB9CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yKCkgeworCisgICAgICAgIE51bWJlciBudW1iZXIgPSBuZXcgRG91YmxlKDM1MC43Nik7CisgICAgICAgIE51bWJlciBuZWdhdGl2ZU51bWJlciA9IG5ldyBEb3VibGUoLTM1MC43Nik7CisKKyAgICAgICAgTG9jYWxlIHVzID0gTG9jYWxlLlVTOworICAgICAgICBMb2NhbGUgdHIgPSBuZXcgTG9jYWxlKCJ0ciIsICJUUiIpOworCisgICAgICAgIC8vIHRlc3QgbnVtYmVyIGluc3RhbmNlCisgICAgICAgIHRfRm9ybWF0KDEsIG51bWJlciwgTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKHVzKSwKKyAgICAgICAgICAgICAgICBnZXROdW1iZXJWZWN0b3JVUygpKTsKKworLy8gICAgICAgIC8vIHRlc3QgcGVyY2VudCBpbnN0YW5jZQorICAgICAgICB0X0Zvcm1hdCgzLCBudW1iZXIsIE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UodXMpLAorICAgICAgICAgICAgICAgIGdldFBlcmNlbnRWZWN0b3JVUygpKTsKKy8vCisvLyAgICAgICAgLy8gdGVzdCBwZXJtaWxsZSBwYXR0ZXJuCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIzAuIyNcdTIwMzAiKTsKKy8vICAgICAgICB0X0Zvcm1hdCg0LCBudW1iZXIsIGZvcm1hdCwgZ2V0UGVybWlsbGVWZWN0b3IoKSk7CisKKyAgICAgICAgLy8gdGVzdCBleHBvbmVudGlhbCBwYXR0ZXJuIHdpdGggcG9zaXRpdmUgZXhwb25lbnQKKyAgICAgICAgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwLjAjRTAiKTsKKyAgICAgICAgdF9Gb3JtYXQoNSwgbnVtYmVyLCBmb3JtYXQsIGdldFBvc2l0aXZlRXhwb25lbnRWZWN0b3IoKSk7CisKKy8vICAgICAgICAvLyB0ZXN0IGV4cG9uZW50aWFsIHBhdHRlcm4gd2l0aCBuZWdhdGl2ZSBleHBvbmVudAorICAgICAgICBmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMDAwMC4wI0UwIik7CisgICAgICAgIHRfRm9ybWF0KDYsIG51bWJlciwgZm9ybWF0LCBnZXROZWdhdGl2ZUV4cG9uZW50VmVjdG9yKCkpOworCisgICAgICAgIC8vIHRlc3QgY3VycmVuY3kgaW5zdGFuY2Ugd2l0aCBVUyBMb2NhbGUKKyAgICAgICAgdF9Gb3JtYXQoNywgbnVtYmVyLCBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSh1cyksCisgICAgICAgICAgICAgICAgZ2V0UG9zaXRpdmVDdXJyZW5jeVZlY3RvclVTKCkpOworCisvLyAgICAgICAgLy8gdGVzdCBuZWdhdGl2ZSBjdXJyZW5jeSBpbnN0YW5jZSB3aXRoIFVTIExvY2FsZQorICAgICAgICB0X0Zvcm1hdCg4LCBuZWdhdGl2ZU51bWJlciwgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UodXMpLAorICAgICAgICAgICAgICAgIGdldE5lZ2F0aXZlQ3VycmVuY3lWZWN0b3JVUygpKTsKKworLy8gICAgICAgIC8vIHRlc3QgbXVsdGlwbGUgZ3JvdXBpbmcgc2VwZXJhdG9ycworICAgICAgICBudW1iZXIgPSBuZXcgTG9uZygxMDAzMDA0MDApOworICAgICAgICB0X0Zvcm1hdCgxMSwgbnVtYmVyLCBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UodXMpLAorICAgICAgICAgICAgICAgIGdldE51bWJlclZlY3RvcjJVUygpKTsKKworLy8gICAgICAgIC8vIHRlc3QgMAorICAgICAgICBudW1iZXIgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgdF9Gb3JtYXQoMTIsIG51bWJlciwgTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKHVzKSwKKyAgICAgICAgICAgICAgICBnZXRaZXJvVmVjdG9yKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXROdW1iZXJWZWN0b3JVUygpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCAzLCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMywgNCwgTnVtYmVyRm9ybWF0LkZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig0LCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuRlJBQ1RJT04pKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRQb3NpdGl2ZUN1cnJlbmN5VmVjdG9yVFIoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgMywgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDQsIDYsIE51bWJlckZvcm1hdC5GaWVsZC5DVVJSRU5DWSkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0TmVnYXRpdmVDdXJyZW5jeVZlY3RvclRSKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDEsIE51bWJlckZvcm1hdC5GaWVsZC5TSUdOKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigxLCA0LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNSwgNywgTnVtYmVyRm9ybWF0LkZpZWxkLkNVUlJFTkNZKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRQb3NpdGl2ZUN1cnJlbmN5VmVjdG9yVVMoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgMSwgTnVtYmVyRm9ybWF0LkZpZWxkLkNVUlJFTkNZKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigxLCA0LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNCwgNSwgTnVtYmVyRm9ybWF0LkZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig1LCA3LCBOdW1iZXJGb3JtYXQuRmllbGQuRlJBQ1RJT04pKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldE5lZ2F0aXZlQ3VycmVuY3lWZWN0b3JVUygpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigxLCAyLCBOdW1iZXJGb3JtYXQuRmllbGQuQ1VSUkVOQ1kpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDIsIDUsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig1LCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuREVDSU1BTF9TRVBBUkFUT1IpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDYsIDgsIE51bWJlckZvcm1hdC5GaWVsZC5GUkFDVElPTikpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0UGVyY2VudFZlY3RvclVTKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDIsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigyLCAzLCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMiwgMywgTnVtYmVyRm9ybWF0LkZpZWxkLkdST1VQSU5HX1NFUEFSQVRPUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMywgNiwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDYsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5QRVJDRU5UKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRQZXJtaWxsZVZlY3RvcigpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCA2LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNiwgNywgTnVtYmVyRm9ybWF0LkZpZWxkLlBFUk1JTExFKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXROZWdhdGl2ZUV4cG9uZW50VmVjdG9yKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDQsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig0LCA1LCBOdW1iZXJGb3JtYXQuRmllbGQuREVDSU1BTF9TRVBBUkFUT1IpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDUsIDYsIE51bWJlckZvcm1hdC5GaWVsZC5GUkFDVElPTikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNiwgNywgTnVtYmVyRm9ybWF0LkZpZWxkLkVYUE9ORU5UX1NZTUJPTCkpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNywgOCwgTnVtYmVyRm9ybWF0LkZpZWxkLkVYUE9ORU5UX1NJR04pKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDgsIDksIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0UG9zaXRpdmVFeHBvbmVudFZlY3RvcigpIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigwLCAyLCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMiwgMywgTnVtYmVyRm9ybWF0LkZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigzLCA1LCBOdW1iZXJGb3JtYXQuRmllbGQuRlJBQ1RJT04pKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDUsIDYsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVF9TWU1CT0wpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDYsIDcsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZ2V0TnVtYmVyVmVjdG9yMlVTKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDAsIDMsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigzLCA0LCBOdW1iZXJGb3JtYXQuRmllbGQuR1JPVVBJTkdfU0VQQVJBVE9SKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigzLCA0LCBOdW1iZXJGb3JtYXQuRmllbGQuSU5URUdFUikpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoNCwgNywgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDcsIDgsIE51bWJlckZvcm1hdC5GaWVsZC5HUk9VUElOR19TRVBBUkFUT1IpKTsKKyAgICAgICAgdi5hZGQobmV3IEZpZWxkQ29udGFpbmVyKDcsIDgsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSKSk7CisgICAgICAgIHYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcig4LCAxMSwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldFplcm9WZWN0b3IoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICB2LmFkZChuZXcgRmllbGRDb250YWluZXIoMCwgMSwgTnVtYmVyRm9ybWF0LkZpZWxkLklOVEVHRVIpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfSAgICAKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdF9Gb3JtYXQoaW50IGNvdW50LCBPYmplY3Qgb2JqZWN0LCBGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgVmVjdG9yIGV4cGVjdGVkUmVzdWx0cykgeworICAgICAgICBWZWN0b3IgcmVzdWx0cyA9IGZpbmRGaWVsZHMoZm9ybWF0LmZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3Iob2JqZWN0KSk7CisgICAgICAgIGFzc2VydFRydWUoIlRlc3QgIiArIGNvdW50CisgICAgICAgICAgICAgICAgKyAiOiBGb3JtYXQgcmV0dXJuZWQgaW5jb3JyZWN0IENoYXJhY3Rlckl0ZXJhdG9yIGZvciAiCisgICAgICAgICAgICAgICAgKyBmb3JtYXQuZm9ybWF0KG9iamVjdCksIGNvbXBhcmUocmVzdWx0cywgZXhwZWN0ZWRSZXN1bHRzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogY29tcGFyZXMgdHdvIHZlY3RvcnMgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgb2YgdGhlaXIgZWxlbWVudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGNvbXBhcmUoVmVjdG9yIHZlY3RvcjEsIFZlY3RvciB2ZWN0b3IyKSB7CisgICAgICAgIHJldHVybiB2ZWN0b3IxLnNpemUoKSA9PSB2ZWN0b3IyLnNpemUoKSAmJiB2ZWN0b3IxLmNvbnRhaW5zQWxsKHZlY3RvcjIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBmaW5kcyBhdHRyaWJ1dGVzIHdpdGggcmVnYXJkcyB0byBjaGFyIGluZGV4IGluIHRoaXMKKyAgICAgKiBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IsIGFuZCBwdXRzIHRoZW0gaW4gYSB2ZWN0b3IKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIGEgdmVjdG9yLCBlYWNoIGVudHJ5IGluIHRoaXMgdmVjdG9yIGFyZSBvZiB0eXBlIEZpZWxkQ29udGFpbmVyICwKKyAgICAgKiAgICAgICAgIHdoaWNoIHN0b3JlcyBzdGFydCBhbmQgZW5kIGluZGV4ZXMgYW5kIGFuIGF0dHJpYnV0ZSB0aGlzIHJhbmdlCisgICAgICogICAgICAgICBoYXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgZmluZEZpZWxkcyhBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IpIHsKKyAgICAgICAgVmVjdG9yIHJlc3VsdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLmdldEluZGV4KCkgIT0gaXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaXRlcmF0b3IuZ2V0UnVuU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBpdGVyYXRvci5nZXRSdW5MaW1pdCgpOworCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGl0ZXJhdG9yLmdldEF0dHJpYnV0ZXMoKS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlID0gKEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUpIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAubmV4dCgpOworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGl0ZXJhdG9yLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQobmV3IEZpZWxkQ29udGFpbmVyKHN0YXJ0LCBlbmQsIGF0dHJpYnV0ZSwgdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oc3RhcnQgKyAiICIgKyBlbmQgKyAiOiAiICsgYXR0cmlidXRlICsgIiwKKyAgICAgICAgICAgICAgICAvLyAiICsgdmFsdWUgKTsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oInYuYWRkKG5ldyBGaWVsZENvbnRhaW5lcigiICsgc3RhcnQgKyIsIiArCisgICAgICAgICAgICAgICAgLy8gZW5kICsiLCIgKyBhdHRyaWJ1dGUrICIsIiArIHZhbHVlKyAiKSk7Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyYXRvci5zZXRJbmRleChlbmQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHByb3RlY3RlZCBzdGF0aWMgY2xhc3MgRmllbGRDb250YWluZXIgeworICAgICAgICBpbnQgc3RhcnQsIGVuZDsKKworICAgICAgICBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlIGF0dHJpYnV0ZTsKKworICAgICAgICBPYmplY3QgdmFsdWU7CisKKy8vICAgICAgICAgY2FsbGVkIGZyb20gc3VwcG9ydF9kZWNpbWFsZm9ybWF0IGFuZCBzdXBwb3J0X3NpbXBsZWRhdGVmb3JtYXQgdGVzdHMKKyAgICAgICAgcHVibGljIEZpZWxkQ29udGFpbmVyKGludCBzdGFydCwgaW50IGVuZCwKKyAgICAgICAgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHRoaXMoc3RhcnQsIGVuZCwgYXR0cmlidXRlLCBhdHRyaWJ1dGUpOworICAgICAgICB9CisKKy8vICAgICAgICAgY2FsbGVkIGZyb20gc3VwcG9ydF9tZXNzYWdlZm9ybWF0IHRlc3RzCisgICAgICAgIHB1YmxpYyBGaWVsZENvbnRhaW5lcihpbnQgc3RhcnQsIGludCBlbmQsIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgdGhpcyhzdGFydCwgZW5kLCBhdHRyaWJ1dGUsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgICAgIH0KKworLy8gICAgICAgICBjYWxsZWQgZnJvbSBzdXBwb3J0X21lc3NhZ2Vmb3JtYXQgdGVzdHMKKyAgICAgICAgcHVibGljIEZpZWxkQ29udGFpbmVyKGludCBzdGFydCwgaW50IGVuZCwgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUsCisgICAgICAgIE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRoaXMuZW5kID0gZW5kOworICAgICAgICB0aGlzLmF0dHJpYnV0ZSA9IGF0dHJpYnV0ZTsKKyAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgRmllbGRDb250YWluZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRmllbGRDb250YWluZXIgZmMgPSAoRmllbGRDb250YWluZXIpIG9iajsKKyAgICAgICAgcmV0dXJuIChzdGFydCA9PSBmYy5zdGFydCAmJiBlbmQgPT0gZmMuZW5kCisgICAgICAgICYmIGF0dHJpYnV0ZSA9PSBmYy5hdHRyaWJ1dGUgJiYgdmFsdWUuZXF1YWxzKGZjLnZhbHVlKSk7CisgICAgICAgIH0KKyAgICB9IAorLy8jZW5kaWYKKworICAgIC8qSGVscGVyIGZ1bmN0aW9ucyAqLworICAgIHB1YmxpYyB2b2lkIHZlcmlmeShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGdvdCwgZG91YmxlIGV4cGVjdGVkKSB7CisgICAgICAgIGxvZ2xuKG1lc3NhZ2UgKyBnb3QgKyAiIEV4cGVjdGVkIDogIiArIChsb25nKWV4cGVjdGVkKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkU3RyID0gIiI7CisgICAgICAgIGV4cGVjdGVkU3RyPWV4cGVjdGVkU3RyICsgKGxvbmcpZXhwZWN0ZWQ7CisgICAgICAgIGlmKCFnb3QuZXF1YWxzKGV4cGVjdGVkU3RyKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmQoKSBmYWlsZWQ6ICAiICsgbWVzc2FnZSArIGdvdCArICIgIEV4cGVjdGVkIDogIiArIGV4cGVjdGVkU3RyKTsKKyAgICAgICAgfQorICAgIH0KK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlNGMzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDE1MiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scworICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCisgKiovCisgCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBEZWNpbWFsIEZvcm1hdCBTeW1ib2xzCisqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhlIEFQSSBvZiBEZWNpbWFsRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZyID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGVuID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICBpZihlbi5lcXVhbHMoZnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEVuZ2xpc2ggRGVjaW1hbEZvcm1hdFN5bWJvbHMgZXF1YWwgdG8gRnJlbmNoIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBqdXN0IGRvIHNvbWUgVkVSWSBiYXNpYyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBnZXQvc2V0IHdvcmsKKworICAgICAgICBjaGFyIHplcm8gPSBlbi5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgZnIuc2V0WmVyb0RpZ2l0KHplcm8pOworICAgICAgICBpZihmci5nZXRaZXJvRGlnaXQoKSAhPSBlbi5nZXRaZXJvRGlnaXQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFplcm9EaWdpdCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgc2lnRGlnaXQgPSBlbi5nZXRTaWduaWZpY2FudERpZ2l0KCk7CisgICAgICAgIGZyLnNldFNpZ25pZmljYW50RGlnaXQoc2lnRGlnaXQpOyAKKyAgICAgICAgaWYoZnIuZ2V0U2lnbmlmaWNhbnREaWdpdCgpICE9IGVuLmdldFNpZ25pZmljYW50RGlnaXQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFNpZ25pZmljYW50RGlnaXQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBDdXJyZW5jeSBjdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJVU0QiKTsKKyAgICAgICAgZnIuc2V0Q3VycmVuY3koY3VycmVuY3kpOworICAgICAgICBpZiAoIWZyLmdldEN1cnJlbmN5KCkuZXF1YWxzKGN1cnJlbmN5KSl7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgQ3VycmVuY3kgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjaGFyIGdyb3VwID0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdTZXBhcmF0b3IoZ3JvdXApOworICAgICAgICBpZihmci5nZXRHcm91cGluZ1NlcGFyYXRvcigpICE9IGVuLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBHcm91cGluZ1NlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgZGVjaW1hbCA9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0RGVjaW1hbFNlcGFyYXRvcihkZWNpbWFsKTsKKyAgICAgICAgaWYoZnIuZ2V0RGVjaW1hbFNlcGFyYXRvcigpICE9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IERlY2ltYWxTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBlck1pbGwgPSBlbi5nZXRQZXJNaWxsKCk7CisgICAgICAgIGZyLnNldFBlck1pbGwocGVyTWlsbCk7CisgICAgICAgIGlmKGZyLmdldFBlck1pbGwoKSAhPSBlbi5nZXRQZXJNaWxsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJNaWxsIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwZXJjZW50ID0gZW4uZ2V0UGVyY2VudCgpOworICAgICAgICBmci5zZXRQZXJjZW50KHBlcmNlbnQpOworICAgICAgICBpZihmci5nZXRQZXJjZW50KCkgIT0gZW4uZ2V0UGVyY2VudCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGVyY2VudCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgZGlnaXQgPSBlbi5nZXREaWdpdCgpOworICAgICAgICBmci5zZXREaWdpdChkaWdpdCk7CisgICAgICAgIGlmKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwYXR0ZXJuU2VwYXJhdG9yID0gZW4uZ2V0UGF0dGVyblNlcGFyYXRvcigpOworICAgICAgICBmci5zZXRQYXR0ZXJuU2VwYXJhdG9yKHBhdHRlcm5TZXBhcmF0b3IpOworICAgICAgICBpZihmci5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkgIT0gZW4uZ2V0UGF0dGVyblNlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGF0dGVyblNlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBpbmZpbml0eSA9IGVuLmdldEluZmluaXR5KCk7CisgICAgICAgIGZyLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICAgICAgU3RyaW5nIGluZmluaXR5MiA9IGZyLmdldEluZmluaXR5KCk7CisgICAgICAgIGlmKCEgaW5maW5pdHkuZXF1YWxzKGluZmluaXR5MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBJbmZpbml0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuYW4gPSBlbi5nZXROYU4oKTsKKyAgICAgICAgZnIuc2V0TmFOKG5hbik7CisgICAgICAgIFN0cmluZyBuYW4yID0gZnIuZ2V0TmFOKCk7CisgICAgICAgIGlmKCEgbmFuLmVxdWFscyhuYW4yKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE5hTiBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgbWludXNTaWduID0gZW4uZ2V0TWludXNTaWduKCk7CisgICAgICAgIGZyLnNldE1pbnVzU2lnbihtaW51c1NpZ24pOworICAgICAgICBpZihmci5nZXRNaW51c1NpZ24oKSAhPSBlbi5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1pbnVzU2lnbiBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgcGx1c1NpZ24gPSBlbi5nZXRQbHVzU2lnbigpOworICAgICAgICBmci5zZXRQbHVzU2lnbihwbHVzU2lnbik7CisgICAgICAgIGlmKGZyLmdldFBsdXNTaWduKCkgIT0gZW4uZ2V0UGx1c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBsdXNTaWduIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwYWRFc2NhcGUgPSBlbi5nZXRQYWRFc2NhcGUoKTsKKyAgICAgICAgZnIuc2V0UGFkRXNjYXBlKHBhZEVzY2FwZSk7CisgICAgICAgIGlmKGZyLmdldFBhZEVzY2FwZSgpICE9IGVuLmdldFBhZEVzY2FwZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGFkRXNjYXBlIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGV4cG9uZW50aWFsID0gZW4uZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0RXhwb25lbnRTZXBhcmF0b3IoZXhwb25lbnRpYWwpOworICAgICAgICBpZihmci5nZXRFeHBvbmVudFNlcGFyYXRvcigpICE9IGVuLmdldEV4cG9uZW50U2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBFeHBvbmVudGlhbCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgICAgICBlbiA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgZnIuY2xvbmUoKTsKKworICAgICAgICBpZighIGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGVzdENvdmVyYWdlKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZjIgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpZGYuY2xvbmUoKTsKKyAgICAgICAgaWYgKCFkZi5lcXVhbHMoZGYyKSB8fCBkZi5oYXNoQ29kZSgpICE9IGRmMi5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiZGVjaW1hbCBmb3JtYXQgc3ltYm9scyBjbG9uZSwgZXF1YWxzLCBvciBoYXNoQ29kZSBmYWlsZWQiKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0MuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Zjc4MmEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQy5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scworICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHNkY2Ztc3kuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogVGVzdHMgZm9yIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKiovCitwdWJsaWMgY2xhc3MgSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0MgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBBUEkgb2YgRGVjaW1hbEZvcm1hdFN5bWJvbHM7IHByaW1hcmlseSBhIHNpbXBsZSBnZXQvc2V0IHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9scygpIHsgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZyID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZW4gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpOworICAgIAorICAgICAgICBpZiAoZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBFbmdsaXNoIERlY2ltYWxGb3JtYXRTeW1ib2xzIGVxdWFsIHRvIEZyZW5jaCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGp1c3QgZG8gc29tZSBWRVJZIGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGdldC9zZXQgd29yaworICAgIAorICAgICAgICBjaGFyIHplcm8gPSBlbi5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgZnIuc2V0WmVyb0RpZ2l0KHplcm8pOworICAgICAgICBpZiAoZnIuZ2V0WmVyb0RpZ2l0KCkgIT0gZW4uZ2V0WmVyb0RpZ2l0KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBaZXJvRGlnaXQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBncm91cCA9IGVuLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldEdyb3VwaW5nU2VwYXJhdG9yKGdyb3VwKTsKKyAgICAgICAgaWYgKGZyLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkgIT0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEdyb3VwaW5nU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgZGVjaW1hbCA9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0RGVjaW1hbFNlcGFyYXRvcihkZWNpbWFsKTsKKyAgICAgICAgaWYgKGZyLmdldERlY2ltYWxTZXBhcmF0b3IoKSAhPSBlbi5nZXREZWNpbWFsU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBEZWNpbWFsU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgcGVyTWlsbCA9IGVuLmdldFBlck1pbGwoKTsKKyAgICAgICAgZnIuc2V0UGVyTWlsbChwZXJNaWxsKTsKKyAgICAgICAgaWYgKGZyLmdldFBlck1pbGwoKSAhPSBlbi5nZXRQZXJNaWxsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJNaWxsIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgcGVyY2VudCA9IGVuLmdldFBlcmNlbnQoKTsKKyAgICAgICAgZnIuc2V0UGVyY2VudChwZXJjZW50KTsKKyAgICAgICAgaWYgKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgZGlnaXQgPSBlbi5nZXREaWdpdCgpOworICAgICAgICBmci5zZXREaWdpdChkaWdpdCk7CisgICAgICAgIGlmIChmci5nZXRQZXJjZW50KCkgIT0gZW4uZ2V0UGVyY2VudCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGVyY2VudCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjaGFyIHBhdHRlcm5TZXBhcmF0b3IgPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldFBhdHRlcm5TZXBhcmF0b3IocGF0dGVyblNlcGFyYXRvcik7CisgICAgICAgIGlmIChmci5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkgIT0gZW4uZ2V0UGF0dGVyblNlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGF0dGVyblNlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgaW5maW5pdHkgPSBlbi5nZXRJbmZpbml0eSgpOworICAgICAgICBmci5zZXRJbmZpbml0eShpbmZpbml0eSk7CisgICAgICAgIFN0cmluZyBpbmZpbml0eTIgPSBmci5nZXRJbmZpbml0eSgpOworICAgICAgICBpZiAoIWluZmluaXR5LmVxdWFscyhpbmZpbml0eTIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgSW5maW5pdHkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIG5hbiA9IGVuLmdldE5hTigpOworICAgICAgICBmci5zZXROYU4obmFuKTsKKyAgICAgICAgU3RyaW5nIG5hbjIgPSBmci5nZXROYU4oKTsKKyAgICAgICAgaWYgKCFuYW4uZXF1YWxzKG5hbjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTmFOIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgbWludXNTaWduID0gZW4uZ2V0TWludXNTaWduKCk7CisgICAgICAgIGZyLnNldE1pbnVzU2lnbihtaW51c1NpZ24pOworICAgICAgICBpZiAoZnIuZ2V0TWludXNTaWduKCkgIT0gZW4uZ2V0TWludXNTaWduKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBNaW51c1NpZ24gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gICAgICAgIGNoYXIgZXhwb25lbnRpYWwgPSBlbi5nZXRFeHBvbmVudGlhbFN5bWJvbCgpOworICAgICAgICAvLyAgICAgICAgZnIuc2V0RXhwb25lbnRpYWxTeW1ib2woZXhwb25lbnRpYWwpOworICAgICAgICAvLyAgICAgICAgaWYoZnIuZ2V0RXhwb25lbnRpYWxTeW1ib2woKSAhPSBlbi5nZXRFeHBvbmVudGlhbFN5bWJvbCgpKSB7CisgICAgICAgIC8vICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEV4cG9uZW50aWFsIGZhaWxlZCIpOworICAgICAgICAvLyAgICAgICAgfQorICAgIAorICAgICAgICAvL0RlY2ltYWxGb3JtYXRTeW1ib2xzIGZvbyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgCisgICAgICAgIGVuID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBmci5jbG9uZSgpOworICAgIAorICAgICAgICBpZiAoIWVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgIAorICAgICAgICB2ZXJpZnkoMzQuNSwgIjAwLjAwIiwgc3ltLCAiMzQuNTAiKTsKKyAgICAgICAgc3ltLnNldERlY2ltYWxTZXBhcmF0b3IoJ1MnKTsKKyAgICAgICAgdmVyaWZ5KDM0LjUsICIwMC4wMCIsIHN5bSwgIjM0UzUwIik7CisgICAgICAgIHN5bS5zZXRQZXJjZW50KCdQJyk7CisgICAgICAgIHZlcmlmeSgzNC41LCAiMDAgJSIsIHN5bSwgIjM0NTAgUCIpOworICAgICAgICBzeW0uc2V0Q3VycmVuY3lTeW1ib2woIkQiKTsKKyAgICAgICAgdmVyaWZ5KDM0LjUsICJcdTAwYTQjIy4jIyIsIHN5bSwgIkQzNC41Iik7CisgICAgICAgIHN5bS5zZXRHcm91cGluZ1NlcGFyYXRvcignfCcpOworICAgICAgICB2ZXJpZnkoMzQ1Ni41LCAiMCwwMDAuIyMiLCBzeW0sICIzfDQ1NlM1Iik7CisgICAgfQorICAgIAorICAgIC8qKiBoZWxwZXIgZnVuY3Rpb25zKiovCisgICAgcHVibGljIHZvaWQgdmVyaWZ5KGRvdWJsZSB2YWx1ZSwgU3RyaW5nIHBhdHRlcm4sIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSwgU3RyaW5nIGV4cGVjdGVkKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuLCBzeW0pOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oLTEpOworICAgICAgICBidWZmZXIgPSBkZi5mb3JtYXQodmFsdWUsIGJ1ZmZlciwgcG9zKTsKKyAgICAgICAgaWYoIWJ1ZmZlci50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmb3JtYXQgZmFpbGVkIGFmdGVyIHNldFN5bWJvbHMoKVxuIEV4cGVjdGVkIiArIAorICAgICAgICAgICAgICAgIGV4cGVjdGVkICsgIiwgR290ICIgKyBidWZmZXIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjc4NDUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMjg5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3ROdW1iZXJGb3JtYXQKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3Rzbm1mbXQuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUaGlzIHRlc3QgZG9lcyByb3VuZC10cmlwIHRlc3RpbmcgKGZvcm1hdCAtPiBwYXJzZSAtPiBmb3JtYXQgLT4gcGFyc2UgLT4gZXRjLikgb2YKKyAqIE51bWJlckZvcm1hdC4KKyAqLworcHVibGljIGNsYXNzIEludGxUZXN0TnVtYmVyRm9ybWF0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgZk51bWJlckZvcm1hdDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3ROdW1iZXJGb3JtYXQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIHVzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBsb2NhbGUgKyAiICgiICsgbG9jYWxlLmdldERpc3BsYXlOYW1lKCkgKyAiKSI7CisgICAgICAgICAgICAKKyAgICAgICAgbG9nbG4oIk51bWJlciB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIAorICAgICAgICBsb2dsbigiQ3VycmVuY3kgdGVzdCAiICsgbG9jYWxlTmFtZSk7CisgICAgICAgIGZOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIAorICAgICAgICBsb2dsbigiUGVyY2VudCB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgX3Rlc3RGb3JtYXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogY2FsbCBfdGVzdEZvcm1hdCBmb3IgY3VycmVuY3ksIHBlcmNlbnQgYW5kIHBsYWluIG51bWJlciBpbnN0YW5jZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlKCkgeworICAgICAgICBMb2NhbGUgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBsb2NhbGUgKyAiICgiICsgbG9jYWxlLmdldERpc3BsYXlOYW1lKCkgKyAiKSI7CisgICAgICAgICAgICAKKyAgICAgICAgbG9nbG4oIk51bWJlciB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIAorICAgICAgICBsb2dsbigiQ3VycmVuY3kgdGVzdCAiICsgbG9jYWxlTmFtZSk7CisgICAgICAgIGZOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIAorICAgICAgICBsb2dsbigiUGVyY2VudCB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgX3Rlc3RGb3JtYXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogY2FsbCB0cnlJdCB3aXRoIG1hbnkgdmFyaWF0aW9ucywgY2FsbGVkIGJ5IHRlc3RMb2NhbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdEZvcm1hdCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmTnVtYmVyRm9ybWF0ID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogTnVsbCBmb3JtYXQgcmV0dXJuZWQgYnkgY3JlYXRlWHh4SW5zdGFuY2UuIik7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIERlY2ltYWxGb3JtYXQgcyA9IChEZWNpbWFsRm9ybWF0KWZOdW1iZXJGb3JtYXQ7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuIDoiICsgcy50b1BhdHRlcm4oKSk7CisgICAgCisgICAgICAgIHRyeUl0KC0yLjAyMTQ3MzA0ODQwMTMyZS02OCk7CisgICAgICAgIHRyeUl0KDMuODgwNTc4NTk1ODg4MTdlLTY4KTsgCisgICAgICAgIHRyeUl0KC0yLjY0NjUxMTEwNDg1OTQ1ZSs2NSk7CisgICAgICAgIHRyeUl0KDkuMjk1MjY4MTk0ODgzMzhlKzY0KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTIuMDIxNDczMDQ4NDAxMzJlLTEwMCk7CisgICAgICAgIHRyeUl0KDMuODgwNTc4NTk1ODg4MTdlLTA5Nik7IAorICAgICAgICB0cnlJdCgtMi42NDY1MTExMDQ4NTk0NWUrMzA2KTsKKyAgICAgICAgdHJ5SXQoOS4yOTUyNjgxOTQ4ODMzOGUrMjUwKTsgCisgICAgCisgICAgICAgIHRyeUl0KC05LjE4MjI4MDU0NDk2NDAyZSs2NCk7CisgICAgICAgIHRyeUl0KC05LjY5NDEzMDM0NDU0MTkxZSs2NCk7CisgICAgCisgICAgICAgIHRyeUl0KC05LjE4MjI4MDU0NDk2NDAyZSsyNTUpOworICAgICAgICB0cnlJdCgtOS42OTQxMzAzNDQ1NDE5MWUrMjczKTsKKyAgICAKKyAgICAKKyAgICAgICAgdHJ5SXQoMS4yMzRlLTIwMCk7CisgICAgICAgIHRyeUl0KC0yLjNlLTE2OCk7CisgICAgCisgICAgICAgIHRyeUl0KERvdWJsZS5OYU4pOworICAgICAgICB0cnlJdChEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICB0cnlJdChEb3VibGUuTkVHQVRJVkVfSU5GSU5JVFkpOworICAgIAorICAgICAgICB0cnlJdCgyNTE4ODc1MzEpOworICAgICAgICB0cnlJdCg1ZS0yMCAvIDkpOworICAgICAgICB0cnlJdCg1ZTIwIC8gOSk7CisgICAgICAgIHRyeUl0KDEuMjM0ZS01MCk7CisgICAgICAgIHRyeUl0KDkuOTk5OTk5OTk5OTk5OTYpOworICAgICAgICB0cnlJdCg5Ljk5OTk5OTk5OTk5OTk5Nik7CisgICAgCisgICAgICAgIHRyeUl0KEludGVnZXIuTUlOX1ZBTFVFKTsKKyAgICAgICAgdHJ5SXQoSW50ZWdlci5NQVhfVkFMVUUpOworICAgICAgICB0cnlJdCgoZG91YmxlKUludGVnZXIuTUlOX1ZBTFVFKTsKKyAgICAgICAgdHJ5SXQoKGRvdWJsZSlJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NSU5fVkFMVUUgLSAxLjApOworICAgICAgICB0cnlJdCgoZG91YmxlKUludGVnZXIuTUFYX1ZBTFVFICsgMS4wKTsKKyAgICAKKyAgICAgICAgdHJ5SXQoNS4wIC8gOS4wICogMWUtMjApOworICAgICAgICB0cnlJdCg0LjAgLyA5LjAgKiAxZS0yMCk7CisgICAgICAgIHRyeUl0KDUuMCAvIDkuMCAqIDFlKzIwKTsKKyAgICAgICAgdHJ5SXQoNC4wIC8gOS4wICogMWUrMjApOworICAgIAorICAgICAgICB0cnlJdCgyMTQ3NDgzNjQ3Lik7CisgICAgICAgIHRyeUl0KDApOworICAgICAgICB0cnlJdCgwLjApOworICAgICAgICB0cnlJdCgxKTsKKyAgICAgICAgdHJ5SXQoMTApOworICAgICAgICB0cnlJdCgxMDApOworICAgICAgICB0cnlJdCgtMSk7CisgICAgICAgIHRyeUl0KC0xMCk7CisgICAgICAgIHRyeUl0KC0xMDApOworICAgICAgICB0cnlJdCgtMTkxMzg2MDM1Mik7CisgICAgCisgICAgICAgIFJhbmRvbSByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsgLy8gdXNlIHRlc3QgZnJhbWV3b3JrJ3MgcmFuZG9tIHNlZWQKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDsgaisrKSB7CisgICAgICAgICAgICBkb3VibGUgZCA9IHJhbmRvbS5uZXh0RG91YmxlKCkqMmUxMCAtIDFlMTA7CisgICAgICAgICAgICB0cnlJdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFBlcmZvcm0gdGVzdHMgdXNpbmcgYU51bWJlciBhbmQgZk51bWJlckZvcm1hdCwgY2FsbGVkIGluIG1hbnkgdmFyaWF0aW9ucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRyeUl0KGRvdWJsZSBhTnVtYmVyKSB7ICAgIAorICAgICAgICBmaW5hbCBpbnQgREVQVEggPSAxMDsKKyAgICAgICAgZG91YmxlW10gbnVtYmVyID0gbmV3IGRvdWJsZVtERVBUSF07CisgICAgICAgIFN0cmluZ1tdIHN0cmluZyA9IG5ldyBTdHJpbmdbREVQVEhdOworICAgICAgICBpbnQgbnVtYmVyTWF0Y2ggPSAwOworICAgICAgICBpbnQgc3RyaW5nTWF0Y2ggPSAwOworICAgICAgICBib29sZWFuIGR1bXAgPSBmYWxzZTsKKyAgICAgICAgaW50IGk7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBERVBUSDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyW2ldID0gYU51bWJlcjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyW2kgLSAxXSA9IGZOdW1iZXJGb3JtYXQucGFyc2Uoc3RyaW5nW2kgLSAxXSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nW2ktMV0gKyAiIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0cmluZ1tpXSA9IGZOdW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlcltpXSk7CisgICAgICAgICAgICBpZiAoaSA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKG51bWJlck1hdGNoID09IDAgJiYgbnVtYmVyW2ldID09IG51bWJlcltpLTFdKQorICAgICAgICAgICAgICAgICAgICBudW1iZXJNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAobnVtYmVyTWF0Y2ggPiAwICYmIG51bWJlcltpXSAhPSBudW1iZXJbaS0xXSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IE51bWVyaWMgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0cmluZ01hdGNoID09IDAgJiYgc3RyaW5nW2ldID09IHN0cmluZ1tpLTFdKQorICAgICAgICAgICAgICAgICAgICBzdHJpbmdNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RyaW5nTWF0Y2ggPiAwICYmIHN0cmluZ1tpXSAhPSBzdHJpbmdbaS0xXSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFN0cmluZyBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXJNYXRjaCA+IDAgJiYgc3RyaW5nTWF0Y2ggPiAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgIAorICAgICAgICAgICAgaWYgKGkgPT0gREVQVEgpCisgICAgICAgICAgICAtLWk7CisgICAgCisgICAgICAgIGlmIChzdHJpbmdNYXRjaCA+IDIgfHwgbnVtYmVyTWF0Y2ggPiAyKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBObyBzdHJpbmcgYW5kL29yIG51bWJlciBtYXRjaCB3aXRoaW4gMiBpdGVyYXRpb25zLiIpOworICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGR1bXApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazw9aTsgKytrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxvZ2xuKGsgKyAiOiAiICsgbnVtYmVyW2tdICsgIiBGPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdba10gKyAiIFA+ICIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIHBlcmZvcm0gdGVzdHMgdXNpbmcgYU51bWJlciBhbmQgZk51bWJlckZvcm1hdCwgY2FsbGVkIGluIG1hbnkgdmFyaWF0aW9ucworICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCB0cnlJdChpbnQgYU51bWJlcikgeworICAgICAgICBsb25nIG51bWJlcjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBzdHJpbmdOdW0gPSBmTnVtYmVyRm9ybWF0LmZvcm1hdChhTnVtYmVyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG51bWJlciA9IGZOdW1iZXJGb3JtYXQucGFyc2Uoc3RyaW5nTnVtKS5sb25nVmFsdWUoKTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nTnVtICsgIiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKG51bWJlciAhPSBhTnVtYmVyKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nTnVtICsgIiBmYWlsZWQuIEdvdDoiICsgbnVtYmVyCisgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBhTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIHRlc3QgTnVtYmVyRm9ybWF0OjpnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKGNvdW50ICsgIiBhdmFpbGFibGUgbG9jYWxlcyIpOworICAgICAgICBpZiAoY291bnQgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGFsbCA9ICIiOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8IGNvdW50OyArK2kpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGkhPTApCisgICAgICAgICAgICAgICAgICAgIGFsbCArPSAiLCAiOworICAgICAgICAgICAgICAgIGFsbCArPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbihhbGwpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFplcm8gYXZhaWxhYmxlIGxvY2FsZXMgb3IgbnVsbCBhcnJheSBwb2ludGVyIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqICBjYWxsIHRlc3RMb2NhbGUgZm9yIGFsbCBsb2NhbGVzCisgICAgICoqLyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TW9uc3RlcigpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIFNFUCA9ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7CisgICAgICAgIGludCBjb3VudDsKKyAgICAgICAgZmluYWwgTG9jYWxlW10gYWxsTG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBhbGxMb2NhbGVzOworICAgICAgICBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBpZiAoY291bnQgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGdldEluY2x1c2lvbigpIDwgMTAgJiYgY291bnQgPiA2KSB7CisgICAgICAgICAgICAgICAgY291bnQgPSA2OworICAgICAgICAgICAgICAgIGxvY2FsZXMgPSBuZXcgTG9jYWxlWzZdOworICAgICAgICAgICAgICAgIGxvY2FsZXNbMF0gPSBhbGxMb2NhbGVzWzBdOworICAgICAgICAgICAgICAgIGxvY2FsZXNbMV0gPSBhbGxMb2NhbGVzWzFdOworICAgICAgICAgICAgICAgIGxvY2FsZXNbMl0gPSBhbGxMb2NhbGVzWzJdOworICAgICAgICAgICAgICAgIC8vIEluIGEgcXVpY2sgdGVzdCwgbWFrZSBzdXJlIHdlIHRlc3QgbG9jYWxlcyB0aGF0IHVzZQorICAgICAgICAgICAgICAgIC8vIGN1cnJlbmN5IHByZWZpeCwgY3VycmVuY3kgc3VmZml4LCBhbmQgY2hvaWNlIGN1cnJlbmN5CisgICAgICAgICAgICAgICAgLy8gbG9naWMuICBPdGhlcndpc2UgYnVncyBpbiB0aGVzZSBhcmVhcyBjYW4gc2xpcCB0aHJvdWdoLgorICAgICAgICAgICAgICAgIGxvY2FsZXNbM10gPSBuZXcgTG9jYWxlKCJhciIsICJBRSIsICIiKTsKKyAgICAgICAgICAgICAgICBsb2NhbGVzWzRdID0gbmV3IExvY2FsZSgiY3MiLCAiQ1oiLCAiIik7CisgICAgICAgICAgICAgICAgbG9jYWxlc1s1XSA9IG5ldyBMb2NhbGUoImVuIiwgIklOIiwgIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICAgICAgbG9nbG4oU0VQKTsKKyAgICAgICAgICAgICAgICBfdGVzdExvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbihTRVApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZTNmNTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhCkBAIC0wLDAgKzEsMjI0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdE51bWJlckZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkuamF2YQorICoqLworCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBOdW1iZXIgRm9ybWF0IEFQSQorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdE51bWJlckZvcm1hdEFQSSBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdE51bWJlckZvcm1hdEFQSSgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgZ2VuZXJpYyBBUEkgbWV0aG9kcyBpbiBEZWNpbWFsRm9ybWF0IHRvIGFjaGlldmUgMTAwJSBBUEkgY292ZXJhZ2UuCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpCisgICAgeworICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0IEFQSSB0ZXN0LS0tIik7IGxvZ2xuKCIiKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBOdW1iZXJGb3JtYXQgY29uc3RydWN0b3JzIik7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGRlZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworCisgICAgICAgIE51bWJlckZvcm1hdCBmciA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgY3VyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgY3VyX2ZyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IHBlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgcGVyX2ZyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBpbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGludF9mciA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIAorICAgICAgICAvL0ZpeCAiVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQiIGNvbXBpbGF0aW9uIHdhcm5pbmdzCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeSA6ICIgKyBjdXIuZm9ybWF0KDEyMzQuNSkpOworICAgICAgICBsb2dsbigiUGVyY2VudCA6ICIgKyBwZXIuZm9ybWF0KDEyMzQuNSkpOworICAgICAgICBsb2dsbigiSW50ZWdlciA6ICIgKyBpbnRlZ2VyLmZvcm1hdCgxMjM0LjUpKTsKKyAgICAgICAgbG9nbG4oIkludF9mciA6ICIgKyBpbnRfZnIuZm9ybWF0KDEyMzQuNSkpOworICAgICAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGVxdWFsaXR5CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZXF1YWxpdHkgb3BlcmF0b3IiKTsKKworICAgICAgICBpZiggcGVyX2ZyLmVxdWFscyhjdXJfZnIpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiA9PSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzc7IC8vIHRoaXMgYXBwZWFycyBhcyAtMTA0NTYuMDAzNzAwMDAwMDAxIG9uIE5UCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMS4wNDU2MDAzN2UtNDsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xLjA0NTYwMDM3MDAwMDAwMDJFLTQgb24gTlQKKyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzAwMDAwMDAwMDA7IC8vIHRoaXMgd29ya3MhCisgICAgICAgIGZpbmFsIGxvbmcgbCA9IDEwMDAwMDAwMDsKKworICAgICAgICBTdHJpbmcgcmVzMSA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHJlczIgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM2ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MyID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczQgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKworICAgICAgICByZXMxID0gY3VyX2ZyLmZvcm1hdChkKTsKKyAgICAgICAgbG9nbG4oICIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMxKTsKKworICAgICAgICByZXMyID0gY3VyX2ZyLmZvcm1hdChsKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworCisgICAgICAgIHJlczMgPSBjdXJfZnIuZm9ybWF0KGQsIHJlczMsIHBvczEpOworICAgICAgICBsb2dsbiggIiIgKyBkICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczMpOworCisgICAgICAgIHJlczQgPSBjdXJfZnIuZm9ybWF0KGwsIHJlczQsIHBvczIpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNCk7CisKKyAgICAgICAgcmVzNSA9IGN1cl9mci5mb3JtYXQoZCwgcmVzNSwgcG9zMyk7CisgICAgICAgIGxvZ2xuKCIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXM1KTsKKworICAgICAgICByZXM2ID0gY3VyX2ZyLmZvcm1hdChsLCByZXM2LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczYpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHBhcnNlKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisKKy8vICAgICAgICBTdHJpbmcgdGV4dCA9IG5ldyBTdHJpbmcoIi0xMCw0NTYuMDAzNyIpOworICAgICAgICBTdHJpbmcgdGV4dCA9IG5ldyBTdHJpbmcoIi0xMDQ1NiwwMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zMDEgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgZG91YmxlIGQxID0gKChOdW1iZXIpZnIucGFyc2VPYmplY3QodGV4dCwgcG9zKSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgaWYoZDEgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgZDEpOworCisgICAgICAgIGRvdWJsZSBkMiA9IGZyLnBhcnNlKHRleHQsIHBvczAxKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZihkMiAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgpKSBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyBkMik7CisKKyAgICAgICAgZG91YmxlIGQzID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGQzID0gZnIucGFyc2UodGV4dCkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGlmKGQzICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCkpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIGQzKTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZ2V0dGVycyBhbmQgc2V0dGVycyIpOworCisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCJHb3QgIiArIGNvdW50ICsgIiBsb2NhbGVzIiApOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICBuYW1lID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9nbG4obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRQYXJzZUludGVnZXJPbmx5KCBkZWYuaXNQYXJzZUludGVnZXJPbmx5KCkgKTsKKyAgICAgICAgaWYoZnIuaXNQYXJzZUludGVnZXJPbmx5KCkgIT0gZGVmLmlzUGFyc2VJbnRlZ2VyT25seSgpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UGFyc2VJbnRlZ2VyT25seSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdVc2VkKCBkZWYuaXNHcm91cGluZ1VzZWQoKSApOworICAgICAgICBpZihmci5pc0dyb3VwaW5nVXNlZCgpICE9IGRlZi5pc0dyb3VwaW5nVXNlZCgpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0R3JvdXBpbmdVc2VkKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyggZGVmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgKTsKKyAgICAgICAgaWYoZnIuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSAhPSBkZWYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyggZGVmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKTsKKyAgICAgICAgaWYoZnIuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSAhPSBkZWYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoIGRlZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSBkZWYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyggZGVmLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICk7CisgICAgICAgIGlmKGZyLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICE9IGRlZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBOdW1iZXJGb3JtYXQgdGVzdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBEZWNpbWFsRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERlY2ltYWxGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgY2xhc3MgU3R1Yk51bWJlckZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpeworICAgICAgICAgICAgICAgIFN0cmluZyBwID0gTnVtYmVyRm9ybWF0LmdldFBhdHRlcm4oVUxvY2FsZS5nZXREZWZhdWx0KCkudG9Mb2NhbGUoKSwwKTsKKyAgICAgICAgICAgICAgICBpZiAoIXAuZXF1YWxzKE51bWJlckZvcm1hdC5nZXRQYXR0ZXJuKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLDApKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOdW1iZXJGb3JtYXQuZ2V0UGF0dGVybihMb2NhbGUsIGludCkgc2hvdWxkIGRlbGVnYXRlIHRvIChVTG9jYWxlLCkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7cmV0dXJuIG51bGw7fQorICAgICAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHtyZXR1cm4gbnVsbDt9CisgICAgICAgIH0KKyAgICAgICAgbmV3IFN0dWJOdW1iZXJGb3JtYXQoKS5ydW4oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjc1OTBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDE4MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAoQykgQ29weXJpZ2h0IFRhbGlnZW50LCBJbmMuIDE5OTYsIDE5OTcgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk2LTIwMDUgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisgKgorICogICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIGlzIGNvcHlyaWdodGVkIGFuZAorICogb3duZWQgYnkgVGFsaWdlbnQsIEluYy4sIGEgd2hvbGx5LW93bmVkIHN1YnNpZGlhcnkgb2YgSUJNLiBUaGVzZSBtYXRlcmlhbHMgYXJlCisgKiBwcm92aWRlZCB1bmRlciB0ZXJtcyBvZiBhIExpY2Vuc2UgQWdyZWVtZW50IGJldHdlZW4gVGFsaWdlbnQgYW5kIFN1bi4gVGhpcworICogdGVjaG5vbG9neSBpcyBwcm90ZWN0ZWQgYnkgbXVsdGlwbGUgVVMgYW5kIEludGVybmF0aW9uYWwgcGF0ZW50cy4gVGhpcyBub3RpY2UgYW5kCisgKiBhdHRyaWJ1dGlvbiB0byBUYWxpZ2VudCBtYXkgbm90IGJlIHJlbW92ZWQuCisgKiAgIFRhbGlnZW50IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgVGFsaWdlbnQsIEluYy4KKyAqKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgU2ltcGxlIERhdGUgRm9ybWF0IEFQSQorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSSBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIlNpbXBsZURhdGVGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworCisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY29uc3RydWN0b3JzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgU2ltcGxlRGF0ZUZvcm1hdCBjb25zdHJ1Y3RvcnMiKTsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRlZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBuZXcgU3RyaW5nKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyB6Iik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcGF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBwYXRfZnIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgY3VzdDEgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY2xvbmUoKSBhbmQgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpLCBhc3NpZ25tZW50IGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKworICAgICAgICBGb3JtYXQgY2xvbmUgPSAoRm9ybWF0KSBkZWYuY2xvbmUoKTsKKyAgICAgICAgaWYoICEgY2xvbmUuZXF1YWxzKGRlZikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZvcm1hdCBjbG9uZSBvciBlcXVhbHMgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzIik7CisKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKGxvbmcpODM3MDM5OTI4MDQ2LjApOworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBkZWYuZm9ybWF0KGQsIHJlczEsIHBvczEpOworICAgICAgICBsb2dsbiggIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMxKTsKKworICAgICAgICByZXMyID0gY3VzdDEuZm9ybWF0KGQsIHJlczIsIHBvczIpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiMDIvMDMvNzYgMjo1MCBBTSwgQ1NUIik7CisgICAgICAgIERhdGUgcmVzdWx0MSA9IG5ldyBEYXRlKCk7CisgICAgICAgIERhdGUgcmVzdWx0MiA9IG5ldyBEYXRlKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0MSA9IGRlZi5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0MSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdDIgPSBkZWYucGFyc2UodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0Mik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREYXRlRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIHBhdF9mci5zZXREYXRlRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgaWYoICEgcGF0LmdldERhdGVGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREYXRlRm9ybWF0U3ltYm9scygpKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IERhdGVGb3JtYXRTeW1ib2xzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBoYXMgbm90IHRoZSBtZXRob2QgZ2V0VHdvRGlnaXRTdGFydERhdGUoKTsKKyAgICAgICAgLy9EYXRlIHN0YXJ0RGF0ZSA9IG51bGw7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgc3RhcnREYXRlID0gcGF0LmdldFR3b0RpZ2l0U3RhcnREYXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldFR3b0RpZ2l0U3RhcnREYXRlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBwYXRfZnIuc2V0VHdvRGlnaXRTdGFydERhdGUoc3RhcnREYXRlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0VHdvRGlnaXRTdGFydERhdGUoKSBmYWlsZWQiKTsKKyAgICAgICAgfSovCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGFwcGx5UGF0dGVybigpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgYXBwbHlQYXR0ZXJuKCkiKTsKKworICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyB6Iik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworCisgICAgICAgIFN0cmluZyBzMiA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMik7CisgICAgICAgIGlmKCAhIHMyLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAxKTsKKyAgICAgICAgcGF0LmFwcGx5TG9jYWxpemVkUGF0dGVybihwMSk7CisgICAgICAgIFN0cmluZyBzMyA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMyk7CisgICAgICAgIGlmKCAhIHMzLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvTG9jYWxpemVkUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZiIpOworCisvLyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgRGF0ZUZvcm1hdCB0ZXN0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKworLy8gICAgICAgICAgICBpZiAoISAodGVzdCBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluc3RhbmNlb2YgZmFpbGVkIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgU2ltcGxlRGF0ZUZvcm1hdCIpOworLy8gICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpeworICAgICAgICBjbGFzcyBTdHViRGF0ZUZvcm1hdCBleHRlbmRzIFNpbXBsZURhdGVGb3JtYXR7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKXsKKyAgICAgICAgICAgICAgICBpZiAoIXplcm9QYWRkaW5nTnVtYmVyKDEyLCA0LCA2KS5lcXVhbHMoIjAwMTIiKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTaW1wbGVEYXRlRm9ybWF0KHplcm9QYWRkaW5nTnVtYmVyKGxvbmcgLCBpbnQgLCBpbnQgKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBuZXcgU3R1YkRhdGVGb3JtYXQoKS5ydW4oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L01lc3NhZ2VSZWdyZXNzaW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L01lc3NhZ2VSZWdyZXNzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFmNmYxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTWVzc2FnZVJlZ3Jlc3Npb24uamF2YQpAQCAtMCwwICsxLDYyOSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDEyLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworLyoqCisgKiBNZXNzYWdlUmVncmVzc2lvbi5qYXZhCisgKgorICogQHRlc3QgMS4yOSAwMS8wMy8xMgorICogQGJ1ZyA0MDMxNDM4IDQwNTg5NzMgNDA3NDc2NCA0MDk0OTA2IDQxMDQ5NzYgNDEwNTM4MCA0MTA2NjU5IDQxMDY2NjAgNDEwNjY2MQorICogNDExMTczOSA0MTEyMTA0IDQxMTMwMTggNDExNDczOSA0MTE0NzQzIDQxMTY0NDQgNDExODU5MiA0MTE4NTk0IDQxMjA1NTIKKyAqIDQxNDI5MzggNDE2OTk1OSA0MjMyMTU0IDQyOTMyMjkKKyAqIEBzdW1tYXJ5IFJlZ3Jlc3Npb24gdGVzdHMgZm9yIE1lc3NhZ2VGb3JtYXQgYW5kIGFzc29jaWF0ZWQgY2xhc3NlcworICovCisvKgorKEMpIENvcHlyaWdodCBUYWxpZ2VudCwgSW5jLiAxOTk2IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5NiAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKworICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIGlzIGNvcHlyaWdodGVkIGFuZAorb3duZWQgYnkgVGFsaWdlbnQsIEluYy4sIGEgd2hvbGx5LW93bmVkIHN1YnNpZGlhcnkgb2YgSUJNLiBUaGVzZSBtYXRlcmlhbHMgYXJlCitwcm92aWRlZCB1bmRlciB0ZXJtcyBvZiBhIExpY2Vuc2UgQWdyZWVtZW50IGJldHdlZW4gVGFsaWdlbnQgYW5kIFN1bi4gVGhpcwordGVjaG5vbG9neSBpcyBwcm90ZWN0ZWQgYnkgbXVsdGlwbGUgVVMgYW5kIEludGVybmF0aW9uYWwgcGF0ZW50cy4gVGhpcyBub3RpY2UgYW5kCithdHRyaWJ1dGlvbiB0byBUYWxpZ2VudCBtYXkgbm90IGJlIHJlbW92ZWQuCisgIFRhbGlnZW50IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgVGFsaWdlbnQsIEluYy4KKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKKworcHVibGljIGNsYXNzIE1lc3NhZ2VSZWdyZXNzaW9uIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBNZXNzYWdlUmVncmVzc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiBAYnVnIDQwNzQ3NjQKKyAgICAgKiBOdWxsIGV4Y2VwdGlvbiB3aGVuIGZvcm1hdHRpbmcgcGF0dGVybiB3aXRoIE1lc3NhZ2VGb3JtYXQKKyAgICAgKiB3aXRoIG5vIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzQ3NjQoKSB7CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm4gPSB7Ik1lc3NhZ2Ugd2l0aG91dCBwYXJhbSIsCisgICAgICAgICJNZXNzYWdlIHdpdGggcGFyYW06ezB9IiwKKyAgICAgICAgIkxvbmdlciBNZXNzYWdlIHdpdGggcGFyYW0gezB9In07CisgICAgICAgIC8vZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gcGFyYW0gc3RyaW5ncyBhcmUgdGhhdAorICAgICAgICAvL2luIHRoZSBmaXJzdCBvbmUsIHRoZSBwYXJhbSBwb3NpdGlvbiBpcyB3aXRoaW4gdGhlCisgICAgICAgIC8vbGVuZ3RoIG9mIHRoZSBzdHJpbmcgd2l0aG91dCBwYXJhbSB3aGlsZSBpdCBpcyBub3Qgc28KKyAgICAgICAgLy9pbiB0aGUgb3RoZXIgY2FzZS4KKworICAgICAgICBNZXNzYWdlRm9ybWF0IG1lc3NhZ2VGb3JtYXR0ZXIgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vQXBwbHkgcGF0dGVybiB3aXRoIHBhcmFtIGFuZCBwcmludCB0aGUgcmVzdWx0CisgICAgICAgICAgICBtZXNzYWdlRm9ybWF0dGVyLmFwcGx5UGF0dGVybihwYXR0ZXJuWzFdKTsKKyAgICAgICAgICAgIE9iamVjdFtdIHBhcmFtcyA9IHtuZXcgU3RyaW5nKCJCVUciKSwgbmV3IERhdGUoKX07CisgICAgICAgICAgICBTdHJpbmcgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KHBhcmFtcyk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJNZXNzYWdlIHdpdGggcGFyYW06QlVHIikpCisgICAgICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQgd2l0aCBvbmUgcGFyYW0gdGVzdCBmYWlsZWQuIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggb25lIGV4dHJhIHBhcmFtIDogIiArIHRlbXBCdWZmZXIpOworCisgICAgICAgICAgICAvL0FwcGx5IHBhdHRlcm4gd2l0aG91dCBwYXJhbSBhbmQgcHJpbnQgdGhlIHJlc3VsdAorICAgICAgICAgICAgbWVzc2FnZUZvcm1hdHRlci5hcHBseVBhdHRlcm4ocGF0dGVyblswXSk7CisgICAgICAgICAgICB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQobnVsbCk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJNZXNzYWdlIHdpdGhvdXQgcGFyYW0iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdCB3aXRoIG5vIHBhcmFtIHRlc3QgZmFpbGVkLiIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIG5vIHBhcmFtcyA6ICIgKyB0ZW1wQnVmZmVyKTsKKworICAgICAgICAgICAgIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChwYXJhbXMpOworICAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIk1lc3NhZ2Ugd2l0aG91dCBwYXJhbSIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGb3JtYXR0ZWQgd2l0aCBhcmd1bWVudHMgPiBzdWJzaXR1dGlvbiBmYWlsZWQuIHJlc3VsdCA9ICIgKyB0ZW1wQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBleHRyYSBwYXJhbXMgOiAiICsgdGVtcEJ1ZmZlcik7CisgICAgICAgICAgICAvL1RoaXMgc3RhdGVtZW50IGdpdmVzIGFuIGV4Y2VwdGlvbiB3aGlsZSBmb3JtYXR0aW5nLi4uCisgICAgICAgICAgICAvL0lmIHdlIHVzZSBwYXR0ZXJuWzFdIGZvciB0aGUgbWVzc2FnZSB3aXRoIHBhcmFtLAorICAgICAgICAgICAgLy93ZSBnZXQgYW4gTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gTWVzc2FnZUZvcm1hdC5qYXZhKDYxNykKKyAgICAgICAgICAgIC8vSWYgd2UgdXNlIHBhdHRlcm5bMl0gZm9yIHRoZSBtZXNzYWdlIHdpdGggcGFyYW0sCisgICAgICAgICAgICAvL3dlIGdldCBhbiBTdHJpbmdBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gTWVzc2FnZUZvcm1hdC5qYXZhKDYxNCkKKyAgICAgICAgICAgIC8vQm90aCBhcmUgZHVlIHRvIG1heE9mZnNldCBub3QgYmVpbmcgcmVzZXQgdG8gLTEKKyAgICAgICAgICAgIC8vaW4gYXBwbHlQYXR0ZXJuKCkgd2hlbiB0aGUgcGF0dGVybiBkb2VzIG5vdAorICAgICAgICAgICAgLy9jb250YWluIGFueSBwYXJhbS4KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbiB3aGVuIGZvcm1hdHRpbmcgd2l0aCBubyBwYXJhbXMuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBAYnVnIDQwNTg5NzMKKyAgICAgKiBNZXNzYWdlRm9ybWF0LnRvUGF0dGVybiBoYXMgd2VpcmQgcm91bmRpbmcgYmVoYXZpb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTg5NzMoKSB7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiezAsY2hvaWNlLDAjbm8gZmlsZXN8MSNvbmUgZmlsZXwxPCB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9Iik7CisgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmICghcGF0LmVxdWFscygiezAsY2hvaWNlLDAuMCNubyBmaWxlc3wxLjAjb25lIGZpbGV8MS4wPCB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0LnRvUGF0dGVybiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBAYnVnIDQwMzE0MzgKKyAgICAgKiBNb3JlIHJvYnVzdCBtZXNzYWdlIGZvcm1hdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwMzE0MzgoKSB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuMSA9ICJJbXBvc3NpYmxlIHsxfSBoYXMgb2NjdXJyZWQgLS0gc3RhdHVzIGNvZGUgaXMgezB9IGFuZCBtZXNzYWdlIGlzIHsyfS4iOworICAgICAgICBTdHJpbmcgcGF0dGVybjIgPSAiRG91YmxlICcnIFF1b3RlcyB7MH0gdGVzdCBhbmQgcXVvdGVkICd7MX0nIHRlc3QgcGx1cyAnb3RoZXIgezJ9IHN0dWZmJy4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWVzc2FnZUZvcm1hdHRlciA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oIkFwcGx5IHdpdGggcGF0dGVybiA6ICIgKyBwYXR0ZXJuMSk7CisgICAgICAgICAgICBtZXNzYWdlRm9ybWF0dGVyLmFwcGx5UGF0dGVybihwYXR0ZXJuMSk7CisgICAgICAgICAgICBPYmplY3RbXSBwYXJhbXMgPSB7bmV3IEludGVnZXIoNyl9OworICAgICAgICAgICAgU3RyaW5nIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChwYXJhbXMpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiSW1wb3NzaWJsZSB7MX0gaGFzIG9jY3VycmVkIC0tIHN0YXR1cyBjb2RlIGlzIDcgYW5kIG1lc3NhZ2UgaXMgezJ9LiIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0cyBhcmd1bWVudHMgPCBzdWJzdGl0dXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggNyA6ICIgKyB0ZW1wQnVmZmVyKTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gc3RhdHVzID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBPYmplY3RbXSBvYmpzID0gbWVzc2FnZUZvcm1hdHRlci5wYXJzZSh0ZW1wQnVmZmVyLCBzdGF0dXMpOworICAgICAgICAgICAgaWYgKG9ianNbcGFyYW1zLmxlbmd0aF0gIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2UgZmFpbGVkIHdpdGggbW9yZSB0aGFuIGV4cGVjdGVkIGFyZ3VtZW50cyIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvYmpzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKG9ianNbaV0gIT0gbnVsbCAmJiAhb2Jqc1tpXS50b1N0cmluZygpLmVxdWFscyhwYXJhbXNbaV0udG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIGZhaWxlZCBvbiBvYmplY3QgIiArIG9ianNbaV0gKyAiIGF0IGluZGV4IDogIiArIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChudWxsKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIkltcG9zc2libGUgezF9IGhhcyBvY2N1cnJlZCAtLSBzdGF0dXMgY29kZSBpcyB7MH0gYW5kIG1lc3NhZ2UgaXMgezJ9LiIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJUZXN0cyB3aXRoIG5vIGFyZ3VtZW50cyBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBudWxsIDogIiArIHRlbXBCdWZmZXIpOworICAgICAgICAgICAgbG9nbG4oIkFwcGx5IHdpdGggcGF0dGVybiA6ICIgKyBwYXR0ZXJuMik7CisgICAgICAgICAgICBtZXNzYWdlRm9ybWF0dGVyLmFwcGx5UGF0dGVybihwYXR0ZXJuMik7CisgICAgICAgICAgICB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQocGFyYW1zKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIkRvdWJsZSAnIFF1b3RlcyA3IHRlc3QgYW5kIHF1b3RlZCB7MX0gdGVzdCBwbHVzIG90aGVyIHsyfSBzdHVmZi4iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigicXVvdGUgZm9ybWF0IHRlc3QgKHcvIHBhcmFtcykgZmFpbGVkLiIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIHBhcmFtcyA6ICIgKyB0ZW1wQnVmZmVyKTsKKyAgICAgICAgICAgIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChudWxsKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIkRvdWJsZSAnIFF1b3RlcyB7MH0gdGVzdCBhbmQgcXVvdGVkIHsxfSB0ZXN0IHBsdXMgb3RoZXIgezJ9IHN0dWZmLiIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJxdW90ZSBmb3JtYXQgdGVzdCAody8gbnVsbCkgZmFpbGVkLiIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIG51bGwgOiAiICsgdGVtcEJ1ZmZlcik7CisgICAgICAgICAgICBsb2dsbigidG9QYXR0ZXJuIDogIiArIG1lc3NhZ2VGb3JtYXR0ZXIudG9QYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICB3YXJubG4oIkV4Y2VwdGlvbiB3aGVuIGZvcm1hdHRpbmcgaW4gYnVnIDQwMzE0MzguICIrZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdDQwNTIyMjMoKQorICAgIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXggaW5pdGlhbGl6YXRpb24gZmFpbGVkLiIpOworICAgICAgICB9CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gYXBwbGVzIGdyb3dpbmcgb24gdGhlIHsxfSB0cmVlLiIpOworICAgICAgICBTdHJpbmcgc3RyID0gbmV3IFN0cmluZygiVGhlcmUgaXMgb25lIGFwcGxlIGdyb3dpbmcgb24gdGhlIHBlYWNoIHRyZWUuIik7CisgICAgICAgIE9iamVjdFtdIG9ianMgPSBmbXQucGFyc2Uoc3RyLCBwb3MpOworICAgICAgICBsb2dsbigidW5wYXJzYWJsZSBzdHJpbmcgLCBzaG91bGQgZmFpbCBhdCAiICsgcG9zLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpID09IC0xKQorICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDUyMjIzIGZhaWxlZCA6IHBhcnNpbmcgc3RyaW5nICIgKyBzdHIpOworICAgICAgICBwb3Muc2V0RXJyb3JJbmRleCg0KTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gNCkKKyAgICAgICAgICAgIGVycmxuKCJzZXRFcnJvckluZGV4IGZhaWxlZCwgZ290ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpICsgIiBpbnN0ZWFkIG9mIDQiKTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGYgPSBuZXcgQ2hvaWNlRm9ybWF0KAorICAgICAgICAgICAgIi0xI2FyZSBuZWdhdGl2ZXwwI2FyZSBubyBvciBmcmFjdGlvbnwxI2lzIG9uZXwxLjA8aXMgMSt8MiNhcmUgdHdvfDI8YXJlIG1vcmUgdGhhbiAyLiIpOworICAgICAgICBwb3Muc2V0SW5kZXgoMCk7IHBvcy5zZXRFcnJvckluZGV4KC0xKTsKKyAgICAgICAgTnVtYmVyIG9iaiA9IGYucGFyc2UoImFyZSBuZWdhdGl2ZSIsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpICE9IC0xICYmIG9iai5kb3VibGVWYWx1ZSgpID09IC0xLjApCisgICAgICAgICAgICBlcnJsbigiUGFyc2Ugd2l0aCBcImFyZSBuZWdhdGl2ZVwiIGZhaWxlZCwgYXQgIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgICAgICBwb3Muc2V0SW5kZXgoMCk7IHBvcy5zZXRFcnJvckluZGV4KC0xKTsKKyAgICAgICAgb2JqID0gZi5wYXJzZSgiYXJlIG5vIG9yIGZyYWN0aW9uICIsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpICE9IC0xICYmIG9iai5kb3VibGVWYWx1ZSgpID09IDAuMCkKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSB3aXRoIFwiYXJlIG5vIG9yIGZyYWN0aW9uXCIgZmFpbGVkLCBhdCAiICsgcG9zLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsgcG9zLnNldEVycm9ySW5kZXgoLTEpOworICAgICAgICBvYmogPSBmLnBhcnNlKCJnbyBwb3N0YWwiLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSA9PSAtMSAmJiAhRG91YmxlLmlzTmFOKG9iai5kb3VibGVWYWx1ZSgpKSkKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSB3aXRoIFwiZ28gcG9zdGFsXCIgZmFpbGVkLCBhdCAiICsgcG9zLmdldEVycm9ySW5kZXgoKSk7CisgICAgfQorICAgIC8qIEBidWcgNDEwNDk3NgorICAgICAqIENob2ljZUZvcm1hdC5lcXVhbHMobnVsbCkgdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDQ5NzYoKQorICAgIHsKKyAgICAgICAgZG91YmxlW10gbGltaXRzID0gezEsIDIwfTsKKyAgICAgICAgU3RyaW5nW10gZm9ybWF0cyA9IHsieHl6IiwgImFiYyJ9OworICAgICAgICBDaG9pY2VGb3JtYXQgY2YgPSBuZXcgQ2hvaWNlRm9ybWF0KGxpbWl0cywgZm9ybWF0cyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2coIkNvbXBhcmVzIHRvIG51bGwgaXMgYWx3YXlzIGZhbHNlLCByZXR1cm5lZCA6ICIpOworICAgICAgICAgICAgbG9nbG4oY2YuZXF1YWxzKG51bGwpID8gIlRSVUUiIDogIkZBTFNFIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJDaG9pY2VGb3JtYXQuZXF1YWxzKG51bGwpIHRocm93cyBleGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQGJ1ZyA0MTA2NjU5CisgICAgICogQ2hvaWNlRm9ybWF0LmN0b3IoZG91YmxlW10sIFN0cmluZ1tdKSBkb2Vzbid0IGNoZWNrCisgICAgICogd2hldGhlciBsZW5ndGhzIG9mIGlucHV0IGFycmF5cyBhcmUgZXF1YWwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NTkoKQorICAgIHsKKyAgICAgICAgZG91YmxlW10gbGltaXRzID0gezEsIDIsIDN9OworICAgICAgICBTdHJpbmdbXSBmb3JtYXRzID0geyJvbmUiLCAidHdvIn07CisgICAgICAgIENob2ljZUZvcm1hdCBjZiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjZiA9IG5ldyBDaG9pY2VGb3JtYXQobGltaXRzLCBmb3JtYXRzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgbG9nbG4oIkNob2ljZUZvcm1hdCBjb25zdHJ1Y3RvciBzaG91bGQgY2hlY2sgZm9yIHRoZSBhcnJheSBsZW5ndGhzIik7CisgICAgICAgICAgICBjZiA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNmICE9IG51bGwpIGVycmxuKGNmLmZvcm1hdCg1KSk7CisgICAgfQorCisgICAgLyogQGJ1ZyA0MTA2NjYwCisgICAgICogQ2hvaWNlRm9ybWF0LmN0b3IoZG91YmxlW10sIFN0cmluZ1tdKSBhbGxvd3MgdW5vcmRlcmVkIGRvdWJsZSBhcnJheS4KKyAgICAgKiBUaGlzIGlzIG5vdCBhIGJ1ZywgYWRkZWQgamF2YWRvYyB0byBlbXBoYXNpemUgdGhlIHVzZSBvZiBsaW1pdAorICAgICAqIGFycmF5IG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjYwKCkKKyAgICB7CisgICAgICAgIGRvdWJsZVtdIGxpbWl0cyA9IHszLCAxLCAyfTsKKyAgICAgICAgU3RyaW5nW10gZm9ybWF0cyA9IHsiVGhyZWUiLCAiT25lIiwgIlR3byJ9OworICAgICAgICBDaG9pY2VGb3JtYXQgY2YgPSBuZXcgQ2hvaWNlRm9ybWF0KGxpbWl0cywgZm9ybWF0cyk7CisgICAgICAgIGRvdWJsZSBkID0gNS4wOworICAgICAgICBTdHJpbmcgc3RyID0gY2YuZm9ybWF0KGQpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoIlR3byIpKQorICAgICAgICAgICAgZXJybG4oImZvcm1hdCgiICsgZCArICIpID0gIiArIGNmLmZvcm1hdChkKSk7CisgICAgfQorCisgICAgLyogQGJ1ZyA0MTExNzM5CisgICAgICogTWVzc2FnZUZvcm1hdCBpcyBpbmNvcnJlY3RseSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMTczOSgpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdDEgPSBudWxsOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdDIgPSBudWxsOworICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb3N0cmVhbSA9IG51bGw7CisgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zID0gbnVsbDsKKyAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaXN0cmVhbSA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBvc3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgfSBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdDEgPSBuZXcgTWVzc2FnZUZvcm1hdCgicGF0dGVybnswfSIpOworICAgICAgICAgICAgb3N0cmVhbS53cml0ZU9iamVjdChmb3JtYXQxKTsKKyAgICAgICAgICAgIG9zdHJlYW0uZmx1c2goKTsKKworICAgICAgICAgICAgYnl0ZSBieXRlc1tdID0gYmFvcy50b0J5dGVBcnJheSgpOworCisgICAgICAgICAgICBpc3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgZm9ybWF0MiA9IChNZXNzYWdlRm9ybWF0KWlzdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFmb3JtYXQxLmVxdWFscyhmb3JtYXQyKSkgeworICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXRzIGJlZm9yZSBhbmQgYWZ0ZXIgc2VyaWFsaXphdGlvbiBhcmUgbm90IiArCisgICAgICAgICAgICAgICAgIiBlcXVhbFxuZm9ybWF0MSA9ICIgKyBmb3JtYXQxICsgIigiICsgZm9ybWF0MS50b1BhdHRlcm4oKSArICIpXG5mb3JtYXQyID0gIiArCisgICAgICAgICAgICAgICAgZm9ybWF0MiArICIoIiArIGZvcm1hdDIudG9QYXR0ZXJuKCkgKyAiKSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlNlcmlhbGl6YXRpb24gZm9yIE1lc3NhZ2VGb3JtYXQgaXMgT0suIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQGJ1ZyA0MTE0NzQzCisgICAgICogTWVzc2FnZUZvcm1hdC5hcHBseVBhdHRlcm4gYWxsb3dzIGlsbGVnYWwgcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQ3NDMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG9yaWdpbmFsUGF0dGVybiA9ICJpbml0aWFsIHBhdHRlcm4iOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQob3JpZ2luYWxQYXR0ZXJuKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBpbGxlZ2FsUGF0dGVybiA9ICJhYiB7ICd9JyBkZSI7CisgICAgICAgICAgICBtZi5hcHBseVBhdHRlcm4oaWxsZWdhbFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oImlsbGVnYWwgcGF0dGVybjogXCIiICsgaWxsZWdhbFBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgaWYgKCFvcmlnaW5hbFBhdHRlcm4uZXF1YWxzKG1mLnRvUGF0dGVybigpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigicGF0dGVybiBhZnRlcjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEBidWcgNDExNjQ0NAorICAgICAqIE1lc3NhZ2VGb3JtYXQucGFyc2UgaGFzIGRpZmZlcmVudCBiZWhhdmlvciBpbiBjYXNlIG9mIG51bGwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTY0NDQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nW10gcGF0dGVybnMgPSB7IiIsICJvbmUiLCAiezAsZGF0ZSxzaG9ydH0ifTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm5zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHBhdHRlcm5zW2ldOworICAgICAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBPYmplY3RbXSBhcnJheSA9IG1mLnBhcnNlKG51bGwsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgcGF0dGVybiArICJcIiIpOworICAgICAgICAgICAgICAgIGxvZygiIHBhcnNlZE9iamVjdHM6ICIpOworICAgICAgICAgICAgICAgIGlmIChhcnJheSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygieyIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlbal0gIT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIoIlwiIiArIGFycmF5W2pdLnRvU3RyaW5nKCkgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coIm51bGwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqIDwgYXJyYXkubGVuZ3RoIC0gMSkgbG9nKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9nKCJ9IikgOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygibnVsbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXR0ZXJuOiBcIiIgKyBwYXR0ZXJuICsgIlwiIik7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgRXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisgICAgLyogQGJ1ZyA0MTE0NzM5IChGSVggYW5kIGFkZCBqYXZhZG9jKQorICAgICAqIE1lc3NhZ2VGb3JtYXQuZm9ybWF0IGhhcyB1bmRvY3VtZW50ZWQgYmVoYXZpb3IgYWJvdXQgZW1wdHkgZm9ybWF0IG9iamVjdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQ3MzkoKQorICAgIHsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoIjx7MH0+Iik7CisgICAgICAgIE9iamVjdFtdIG9ianMxID0gbnVsbDsKKyAgICAgICAgT2JqZWN0W10gb2JqczIgPSB7fTsKKyAgICAgICAgT2JqZWN0W10gb2JqczMgPSB7bnVsbH07CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGxvZygiZm9ybWF0KG51bGwpIDogIik7CisgICAgICAgICAgICBsb2dsbigiXCIiICsgbWYuZm9ybWF0KG9ianMxKSArICJcIiIpOworICAgICAgICAgICAgbG9nKCJmb3JtYXQoe30pICAgOiAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcIiIgKyBtZi5mb3JtYXQob2JqczIpICsgIlwiIik7CisgICAgICAgICAgICBsb2coImZvcm1hdCh7bnVsbH0pIDoiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcIiIgKyBtZi5mb3JtYXQob2JqczMpICsgIlwiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXhjZXB0aW9uIHRocm93biBmb3IgbnVsbCBhcmd1bWVudCB0ZXN0cy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEBidWcgNDExMzAxOAorICAgICAqIE1lc3NhZ2VGb3JtYXQuYXBwbHlQYXR0ZXJuIHdvcmtzIHdyb25nIHdpdGggaWxsZWdhbCBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMzAxOCgpCisgICAgeworICAgICAgICBTdHJpbmcgb3JpZ2luYWxQYXR0ZXJuID0gImluaXRpYWwgcGF0dGVybiI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChvcmlnaW5hbFBhdHRlcm4pOworICAgICAgICBTdHJpbmcgaWxsZWdhbFBhdHRlcm4gPSAiZm9ybWF0OiB7MCwgeHh4WVlZfSI7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuIGJlZm9yZTogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oImlsbGVnYWwgcGF0dGVybjogXCIiICsgaWxsZWdhbFBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1mLmFwcGx5UGF0dGVybihpbGxlZ2FsUGF0dGVybik7CisgICAgICAgICAgICBlcnJsbigiU2hvdWxkIGhhdmUgdGhyb3duIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgcGF0dGVybiA6ICIgKyBpbGxlZ2FsUGF0dGVybik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoIW9yaWdpbmFsUGF0dGVybi5lcXVhbHMobWYudG9QYXR0ZXJuKCkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJwYXR0ZXJuIGFmdGVyOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qIEBidWcgNDEwNjY2MQorICAgICAqIENob2ljZUZvcm1hdCBpcyBzaWxlbnQgYWJvdXQgdGhlIHBhdHRlcm4gdXNhZ2UgaW4gamF2YWRvYy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY2MSgpCisgICAgeworICAgICAgICBDaG9pY2VGb3JtYXQgZm10ID0gbmV3IENob2ljZUZvcm1hdCgKKyAgICAgICAgICAiLTEjYXJlIG5lZ2F0aXZlfCAwI2FyZSBubyBvciBmcmFjdGlvbiB8IDEjaXMgb25lIHwxLjA8aXMgMSsgfDIjYXJlIHR3byB8MjxhcmUgbW9yZSB0aGFuIDIuIik7CisgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZXIgUGF0dGVybiA6ICIgKyBmbXQudG9QYXR0ZXJuKCkpOworCisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAtSU5GIDogIiArIGZtdC5mb3JtYXQoRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAtMS4wIDogIiArIGZtdC5mb3JtYXQoLTEuMCkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMCA6ICIgKyBmbXQuZm9ybWF0KDApKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDAuOSA6ICIgKyBmbXQuZm9ybWF0KDAuOSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMS4wIDogIiArIGZtdC5mb3JtYXQoMSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMS41IDogIiArIGZtdC5mb3JtYXQoMS41KSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAyIDogIiArIGZtdC5mb3JtYXQoMikpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMi4xIDogIiArIGZtdC5mb3JtYXQoMi4xKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCBOYU4gOiAiICsgZm10LmZvcm1hdChEb3VibGUuTmFOKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCArSU5GIDogIiArIGZtdC5mb3JtYXQoRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKSk7CisgICAgfQorICAgIC8qIEBidWcgNDA5NDkwNgorICAgICAqIENob2ljZUZvcm1hdCBzaG91bGQgYWNjZXB0IFx1MjIxRSBhcyBlcS4gdG8gSU5GLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk0OTA2KCkKKyAgICB7CisgICAgICAgIENob2ljZUZvcm1hdCBmbXQgPSBuZXcgQ2hvaWNlRm9ybWF0KAorICAgICAgICAgICItXHUyMjFFPGFyZSBuZWdhdGl2ZXwwPGFyZSBubyBvciBmcmFjdGlvbnwxI2lzIG9uZXwxLjA8aXMgMSt8XHUyMjFFPGFyZSBtYW55LiIpOworICAgICAgICBpZiAoIWZtdC50b1BhdHRlcm4oKS5zdGFydHNXaXRoKCItXHUyMjFFPGFyZSBuZWdhdGl2ZXwwLjA8YXJlIG5vIG9yIGZyYWN0aW9ufDEuMCNpcyBvbmV8MS4wPGlzIDErfFx1MjIxRTxhcmUgbWFueS4iKSkKKyAgICAgICAgICAgIGVycmxuKCJGb3JtYXR0ZXIgUGF0dGVybiA6ICIgKyBmbXQudG9QYXR0ZXJuKCkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggLUlORiA6ICIgKyBmbXQuZm9ybWF0KERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggLTEuMCA6ICIgKyBmbXQuZm9ybWF0KC0xLjApKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDAgOiAiICsgZm10LmZvcm1hdCgwKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAwLjkgOiAiICsgZm10LmZvcm1hdCgwLjkpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDEuMCA6ICIgKyBmbXQuZm9ybWF0KDEpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDEuNSA6ICIgKyBmbXQuZm9ybWF0KDEuNSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMiA6ICIgKyBmbXQuZm9ybWF0KDIpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoICtJTkYgOiAiICsgZm10LmZvcm1hdChEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpKTsKKyAgICB9CisKKyAgICAvKiBAYnVnIDQxMTg1OTIKKyAgICAgKiBNZXNzYWdlRm9ybWF0LnBhcnNlIGZhaWxzIHdpdGggQ2hvaWNlRm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE4NTkyKCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInswLGNob2ljZSwxI1lFU3wyI05PfSI7CisgICAgICAgIFN0cmluZyBwcmVmaXggPSAiIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBwcmVmaXggKyAiWUVTIjsKKyAgICAgICAgICAgIG1mLmFwcGx5UGF0dGVybihwcmVmaXggKyBwYXR0ZXJuKTsKKyAgICAgICAgICAgIHByZWZpeCArPSAieCI7CisgICAgICAgICAgICBPYmplY3RbXSBvYmpzID0gbWYucGFyc2UoZm9ybWF0dGVkLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgICAgICBsb2dsbihpICsgIi4gcGF0dGVybiA6XCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGxvZygiIFwiIiArIGZvcm1hdHRlZCArICJcIiBwYXJzZWQgYXMgIik7CisgICAgICAgICAgICBpZiAob2JqcyA9PSBudWxsKSBsb2dsbigiICBudWxsIik7CisgICAgICAgICAgICBlbHNlIGxvZ2xuKCIgICIgKyBvYmpzWzBdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBAYnVnIDQxMTg1OTQKKyAgICAgKiBNZXNzYWdlRm9ybWF0LnBhcnNlIGZhaWxzIGZvciBzb21lIHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE4NTk0KCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiezB9LCB7MH0sIHswfSIpOworICAgICAgICBTdHJpbmcgZm9yUGFyc2luZyA9ICJ4LCB5LCB6IjsKKyAgICAgICAgT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvclBhcnNpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCJ0ZXh0IGZvciBwYXJzaW5nOiBcIiIgKyBmb3JQYXJzaW5nICsgIlwiIik7CisgICAgICAgIGlmICghb2Jqc1swXS50b1N0cmluZygpLmVxdWFscygieiIpKQorICAgICAgICAgICAgZXJybG4oImFyZ3VtZW50MDogXCIiICsgb2Jqc1swXSArICJcIiIpOworICAgICAgICBtZi5zZXRMb2NhbGUoTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKCJ7MCxudW1iZXIsIy4jI30sIHswLG51bWJlciwjLiN9Iik7CisgICAgICAgIE9iamVjdFtdIG9sZG9ianMgPSB7bmV3IERvdWJsZSgzLjE0MTUpfTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG1mLmZvcm1hdCggb2xkb2JqcyApOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oInRleHQgZm9yIHBhcnNpbmc6IFwiIiArIHJlc3VsdCArICJcIiIpOworICAgICAgICAvLyByZXN1bHQgbm93IGVxdWFscyAiMy4xNCwgMy4xIgorICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoIjMuMTQsIDMuMSIpKQorICAgICAgICAgICAgZXJybG4oInJlc3VsdCA9ICIgKyByZXN1bHQpOworICAgICAgICBPYmplY3RbXSBuZXdvYmpzID0gbWYucGFyc2UocmVzdWx0LCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIC8vIG5ld29ianMgbm93IGVxdWFscyB7bmV3IERvdWJsZSgzLjEpfQorICAgICAgICBpZiAoKChOdW1iZXIpbmV3b2Jqc1swXSkuZG91YmxlVmFsdWUoKSAhPSAzLjEpIC8vIHdhcyAoRG91YmxlKSBbYWxhbl0KKyAgICAgICAgICAgIGVycmxuKCAibmV3b2Jqc1swXSA9ICIgKyBuZXdvYmpzWzBdKTsKKyAgICB9CisgICAgLyogQGJ1ZyA0MTA1MzgwCisgICAgICogV2hlbiB1c2luZyBDaG9pY2VGb3JtYXQsIE1lc3NhZ2VGb3JtYXQgaXMgbm90IGdvb2QgZm9yIEkxOG4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDUzODAoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5UZXh0MSA9ICJUaGUgZGlzayBcInsxfVwiIGNvbnRhaW5zIHswfS4iOworICAgICAgICBTdHJpbmcgcGF0dGVyblRleHQyID0gIlRoZXJlIGFyZSB7MH0gb24gdGhlIGRpc2sgXCJ7MX1cIiI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybTEgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuVGV4dDEpOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm0yID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVyblRleHQyKTsKKyAgICAgICAgZG91YmxlW10gZmlsZWxpbWl0cyA9IHswLDEsMn07CisgICAgICAgIFN0cmluZ1tdIGZpbGVwYXJ0ID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICAgICAgICBDaG9pY2VGb3JtYXQgZmlsZWZvcm0gPSBuZXcgQ2hvaWNlRm9ybWF0KGZpbGVsaW1pdHMsIGZpbGVwYXJ0KTsKKyAgICAgICAgZm9ybTEuc2V0Rm9ybWF0KDEsIGZpbGVmb3JtKTsKKyAgICAgICAgZm9ybTIuc2V0Rm9ybWF0KDAsIGZpbGVmb3JtKTsKKyAgICAgICAgT2JqZWN0W10gdGVzdEFyZ3MgPSB7bmV3IExvbmcoMTIzNzMpLCAiTXlEaXNrIn07CisgICAgICAgIGxvZ2xuKGZvcm0xLmZvcm1hdCh0ZXN0QXJncykpOworICAgICAgICBsb2dsbihmb3JtMi5mb3JtYXQodGVzdEFyZ3MpKTsKKyAgICB9CisgICAgLyogQGJ1ZyA0MTIwNTUyCisgICAgICogTWVzc2FnZUZvcm1hdC5wYXJzZSBpbmNvcnJlY3RseSBzZXRzIGVycm9ySW5kZXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMjA1NTIoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJwYXR0ZXJuIik7CisgICAgICAgIFN0cmluZyB0ZXh0c1tdID0geyJwYXR0ZXJuIiwgInBhdCIsICIxMjM0In07CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBPYmplY3RbXSBvYmpzID0gbWYucGFyc2UodGV4dHNbaV0sIHBwKTsKKyAgICAgICAgICAgIGxvZygiICB0ZXh0IGZvciBwYXJzaW5nOiBcIiIgKyB0ZXh0c1tpXSArICJcIiIpOworICAgICAgICAgICAgaWYgKG9ianMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIChpbmNvcnJlY3RseSBmb3JtYXR0ZWQgc3RyaW5nKSIpOworICAgICAgICAgICAgICAgIGlmIChwcC5nZXRFcnJvckluZGV4KCkgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgZXJyb3IgaW5kZXg6ICIgKyBwcC5nZXRFcnJvckluZGV4KCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICAoY29ycmVjdGx5IGZvcm1hdHRlZCBzdHJpbmcpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNDI5MzgKKyAgICAgKiBNZXNzYWdlRm9ybWF0IGhhbmRsZXMgc2luZ2xlIHF1b3RlcyBpbiBwYXR0ZXJuIHdyb25nLgorICAgICAqIFRoaXMgaXMgYWN0dWFsbHkgYSBwcm9ibGVtIGluIENob2ljZUZvcm1hdDsgaXQgZG9lc24ndAorICAgICAqIHVuZGVyc3RhbmQgc2luZ2xlIHF1b3Rlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MjkzOCgpIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9ICInJ1ZvdXMnJyB7MCxjaG9pY2UsMCNuJyd8MSN9YXZleiBzXHUwMEU5bGVjdGlvbm5lXHUwMEU5ICIgKyAKKyAgICAgICAgICAgICJ7MCxjaG9pY2UsMCNhdWN1bnwxI3swfX0gY2xpZW50ezAsY2hvaWNlLDAjc3wxI3wyI3N9ICIgKyAKKyAgICAgICAgICAgICJwZXJzb25uZWx7MCxjaG9pY2UsMCNzfDEjfDIjc30uIjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdCk7CisKKyAgICAgICAgU3RyaW5nW10gUFJFRklYID0geworICAgICAgICAgICAgIidWb3VzJyBuJ2F2ZXogc1x1MDBFOWxlY3Rpb25uZVx1MDBFOSBhdWN1biBjbGllbnRzIHBlcnNvbm5lbHMuIiwKKyAgICAgICAgICAgICInVm91cycgYXZleiBzXHUwMEU5bGVjdGlvbm5lXHUwMEU5ICIsCisgICAgICAgICAgICAiJ1ZvdXMnIGF2ZXogc1x1MDBFOWxlY3Rpb25uZVx1MDBFOSAiCisgICAgICAgIH07ICAKKyAgICAgICAgU3RyaW5nW10gU1VGRklYID0geworICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICIgY2xpZW50IHBlcnNvbm5lbC4iLAorICAgICAgICAgICAgIiBjbGllbnRzIHBlcnNvbm5lbHMuIgorICAgICAgICB9OworICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGk8MzsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgb3V0ID0gbWYuZm9ybWF0KG5ldyBPYmplY3RbXXtuZXcgSW50ZWdlcihpKX0pOworICAgICAgICAgICAgaWYgKFNVRkZJWFtpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKCFvdXQuZXF1YWxzKFBSRUZJWFtpXSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIiICsgaSArICI6IEdvdCBcIiIgKyBvdXQgKyAiXCI7IFdhbnQgXCIiICsgUFJFRklYW2ldICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIW91dC5zdGFydHNXaXRoKFBSRUZJWFtpXSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIW91dC5lbmRzV2l0aChTVUZGSVhbaV0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiIiArIGkgKyAiOiBHb3QgXCIiICsgb3V0ICsgIlwiOyBXYW50IFwiIiArIFBSRUZJWFtpXSArICJcIi4uLlwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIFNVRkZJWFtpXSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTQyOTM4CisgICAgICogVGVzdCB0aGUgYXBwbHlQYXR0ZXJuIGFuZCB0b1BhdHRlcm4gaGFuZGxpbmcgb2Ygc2luZ2xlIHF1b3RlcworICAgICAqIGJ5IENob2ljZUZvcm1hdC4gIChUaGlzIGlzIGluIGhlcmUgYmVjYXVzZSB0aGlzIHdhcyBhIGJ1ZyByZXBvcnRlZAorICAgICAqIGFnYWluc3QgTWVzc2FnZUZvcm1hdC4pICBUaGUgc2luZ2xlIHF1b3RlIGlzIHVzZWQgdG8gcXVvdGUgdGhlCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXJzICd8JywgJyMnLCAnPCcsIGFuZCAnXHUyMjY0Jy4gIFR3byBxdW90ZXMgaW4gYSByb3cKKyAgICAgKiBpcyBhIHF1b3RlIGxpdGVyYWwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENob2ljZVBhdHRlcm5RdW90ZSgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFBhdHRlcm4gICAgICAgICAgICAgICAgICAwIHZhbHVlICAgICAgICAgICAxIHZhbHVlCisgICAgICAgICAgICAiMCNjYW4nJ3R8MSNjYW4iLCAgICAgICAgICAgImNhbid0IiwgICAgICAgICAgImNhbiIsCisgICAgICAgICAgICAiMCMncG91bmQoIyk9JycjJycnfDEjeHl6IiwgInBvdW5kKCMpPScjJyIsICAgInh5eiIsCisgICAgICAgICAgICAiMCMnMTwyIHwgMVx1MjI2NDEnfDEjJyciLCAgIjE8MiB8IDFcdTIyNjQxIiwgIiciLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbmV3IENob2ljZUZvcm1hdChEQVRBW2ldKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8PTE7ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgb3V0ID0gY2YuZm9ybWF0KGopOworICAgICAgICAgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoREFUQVtpKzEral0pKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFBhdHRlcm4gXCIiICsgREFUQVtpXSArICJcIiB4ICIraisiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0ICsgIjsgd2FudCBcIiIgKyBEQVRBW2krMStqXSArICciJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBjZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0MiA9IG5ldyBDaG9pY2VGb3JtYXQocGF0KS50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhdC5lcXVhbHMocGF0MikpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBQYXR0ZXJuIFwiIiArIERBVEFbaV0gKyAiXCIgeCB0b1BhdHRlcm4gLT4gXCIiICsgcGF0ICsgJyInKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogUGF0dGVybiBcIiIgKyBEQVRBW2ldICsgIlwiIHggdG9QYXR0ZXJuIC0+IFwiIiArIHBhdCArICciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogUGF0dGVybiBcIiIgKyBEQVRBW2ldICsgIlwiIC0+ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDExMjEwNAorICAgICAqIE1lc3NhZ2VGb3JtYXQuZXF1YWxzKG51bGwpIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uLiAgVGhlIEpMUyBzdGF0ZXMKKyAgICAgKiB0aGF0IGl0IHNob3VsZCByZXR1cm4gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTIxMDQoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIiIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgTk9UIHRocm93IGFuIGV4Y2VwdGlvbgorICAgICAgICAgICAgaWYgKGZvcm1hdC5lcXVhbHMobnVsbCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJdCBhbHNvIHNob3VsZCByZXR1cm4gZmFsc2UKKyAgICAgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdC5lcXVhbHMobnVsbCkgcmV0dXJucyBmYWxzZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdC5lcXVhbHMobnVsbCkgdGhyb3dzICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE2OTk1OQorICAgICAqIE1lc3NhZ2VGb3JtYXQgZG9lcyBub3QgZm9ybWF0IG51bGwgb2JqZWN0cy4gQ0FOTk9UIFJFUFJPRFVDRSBUSElTIEJVRy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2OTk1OSgpIHsKKyAgICAgICAgLy8gVGhpcyB3b3JrcworICAgICAgICBsb2dsbihNZXNzYWdlRm9ybWF0LmZvcm1hdCggIlRoaXMgd2lsbCB7MH0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdeyJ3b3JrIn0gKSApOworICAgICAgICAKKyAgICAgICAgLy8gVGhpcyBmYWlscworICAgICAgICBsb2dsbihNZXNzYWdlRm9ybWF0LmZvcm1hdCggIlRoaXMgd2lsbCB7MH0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeyBudWxsIH0gKSApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0NDIzMjE1NCgpIHsKKyAgICAgICAgYm9vbGVhbiBnb3RFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZSBkYXRlIGlzIHswOmRhdGV9Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBnb3RFeGNlcHRpb24gPSB0cnVlOworICAgICAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiZ290IHdyb25nIGV4Y2VwdGlvbiB0eXBlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoImFyZ3VtZW50IG51bWJlciB0b28gbGFyZ2UgYXQgIi5lcXVhbHMoZS5nZXRNZXNzYWdlKCkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oImdvdCB3cm9uZyBleGNlcHRpb24gbWVzc2FnZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghZ290RXhjZXB0aW9uKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiZGlkbid0IGdldCBleGNlcHRpb24gZm9yIGludmFsaWQgaW5wdXQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0NDI5MzIyOSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiJycneycwfScnICcnJ3swfScnJyIpOworICAgICAgICBPYmplY3RbXSBhcmdzID0geyBudWxsIH07CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICInezB9JyAnezB9JyI7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KGFyZ3MpOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigid3JvbmcgZm9ybWF0IHJlc3VsdCAtIGV4cGVjdGVkIFwiIiArCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkICsgIlwiLCBnb3QgXCIiICsgcmVzdWx0ICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVnaXN0cmF0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDExYWZiMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVnaXN0cmF0aW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0UmVnaXN0cmF0aW9uVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IE51bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdHJhdGlvbigpIHsKKyAgICAgICAgZmluYWwgVUxvY2FsZSBTUkNfTE9DID0gVUxvY2FsZS5GUkFOQ0U7CisgICAgICAgIGZpbmFsIFVMb2NhbGUgU1dBUF9MT0MgPSBVTG9jYWxlLlVTOworCisgICAgICAgIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgY3VycmVuY3lTdHlsZTsKKworICAgICAgICAgICAgVGVzdEZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgdGhpcyhTUkNfTE9DLCBTV0FQX0xPQyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5KFVMb2NhbGUgc3JjTG9jLCBVTG9jYWxlIHN3YXBMb2MpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihzcmNMb2MpOworICAgICAgICAgICAgICAgIGN1cnJlbmN5U3R5bGUgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHN3YXBMb2MpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChVTG9jYWxlIGxvYywgaW50IGZvcm1hdFR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0VHlwZSA9PSBGT1JNQVRfQ1VSUkVOQ1kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmN5U3R5bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY292ZXJhZ2UgYmVmb3JlIHJlZ2lzdHJhdGlvbgorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKG51bGwpOworICAgICAgICAgICAgICAgIGVycmxuKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBudWxsIHVucmVnaXN0ZXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCWxvZ2xuKCJQQVNTOiBudWxsIHVucmVnaXN0ZXIgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LnJlZ2lzdGVyRmFjdG9yeShudWxsKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbnVsbCByZWdpc3RlciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgcmVnaXN0ZXIgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gaWYgbm8gTkYgaGFzIGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIHNoaW0gaXMgbnVsbCwgc28gdGhpcyBzaWxlbnRseQorICAgICAgICAgICAgICAgIC8vIHJldHVybnMgZmFsc2UuICBpZiwgb24gdGhlIG90aGVyIGhhbmQsIGEgTkYgaGFzIGJlZW4gcmVnaXN0ZXJlZCwKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgdHJ5IHRvIGNhc3QgdGhlIGFyZ3VtZW50IHRvIGEgRmFjdG9yeSwgYW5kIHRocm93CisgICAgICAgICAgICAgICAgLy8gYW4gZXhjZXB0aW9uLgorICAgICAgICAgICAgICAgIGlmIChOdW1iZXJGb3JtYXQudW5yZWdpc3RlcigiIikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInVucmVnaXN0ZXIgb2YgZW1wdHkgc3RyaW5nIGtleSBzdWNjZWVkZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFVMb2NhbGUgZnVfRlUgPSBuZXcgVUxvY2FsZSgiZnVfRlUiKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYwID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTV0FQX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdCBmMSA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdCBmMiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBPYmplY3Qga2V5ID0gTnVtYmVyRm9ybWF0LnJlZ2lzdGVyRmFjdG9yeShuZXcgVGVzdEZhY3RvcnkoKSk7CisgICAgICAgIE9iamVjdCBrZXkyID0gTnVtYmVyRm9ybWF0LnJlZ2lzdGVyRmFjdG9yeShuZXcgVGVzdEZhY3RvcnkoZnVfRlUsIFVMb2NhbGUuR0VSTUFOWSkpOworICAgICAgICBpZiAoIUFycmF5cy5hc0xpc3QoTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCkpLmNvbnRhaW5zKGZ1X0ZVKSkgeworICAgICAgICAgICAgZXJybG4oImRpZCBub3QgbGlzdCBmdV9GVSIpOworICAgICAgICB9CisgICAgICAgIE51bWJlckZvcm1hdCBmMyA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjQgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQudW5yZWdpc3RlcihrZXkpOyAvLyByZXN0b3JlIGZvciBvdGhlciB0ZXN0cworICAgICAgICBOdW1iZXJGb3JtYXQgZjUgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQudW5yZWdpc3RlcihrZXkyKTsKKworICAgICAgICBmbG9hdCBuID0gMTIzNC41NjdmOworICAgICAgICBsb2dsbigiZjAgc3dhcCBpbnQ6ICIgKyBmMC5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjEgc3JjIGludDogIiArIGYxLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMiBzcmMgY3VyOiAiICsgZjIuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYzIHJlZyBjdXI6ICIgKyBmMy5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjQgcmVnIGludDogIiArIGY0LmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmNSB1bnJlZyBjdXI6ICIgKyBmNS5mb3JtYXQobikpOworCisgICAgICAgIGlmICghZjMuZm9ybWF0KG4pLmVxdWFscyhmMC5mb3JtYXQobikpKSB7CisgICAgICAgICAgICBlcnJsbigicmVnaXN0ZXJlZCBzZXJ2aWNlIGRpZCBub3QgbWF0Y2giKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWY0LmZvcm1hdChuKS5lcXVhbHMoZjEuZm9ybWF0KG4pKSkgeworICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IGluaGVyaXQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWY1LmZvcm1hdChuKS5lcXVhbHMoZjIuZm9ybWF0KG4pKSkgeworICAgICAgICAgICAgZXJybG4oInVucmVnaXN0ZXJlZCBzZXJ2aWNlIGRpZCBub3QgbWF0Y2ggb3JpZ2luYWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvdmVyYWdlCisgICAgICAgIE51bWJlckZvcm1hdCBmNiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShmdV9GVSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3ZDg5ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKQEAgLTAsMCArMSwxODUgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBOdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbnVtcmd0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqIAorICogUGVyZm9ybXMgcmVncmVzc2lvbiB0ZXN0IGZvciBNZXNzYWdlRm9ybWF0CisgKiovCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IE51bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBhbHBoYVdvcmtzIHVwZ3JhZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MTEwMCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIG5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygxKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBkb3VibGUgYSA9IC0wLjA5OworICAgICAgICBTdHJpbmcgcyA9IG5mLmZvcm1hdChhKTsKKyAgICAgICAgbG9nbG4oYSArICIgeCAiICsKKyAgICAgICAgICAgICAgKChEZWNpbWFsRm9ybWF0KSBuZikudG9QYXR0ZXJuKCkgKyAiID0gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCItMC4xIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGF0ZUZvcm1hdCBzaG91bGQgY2FsbCBzZXRJbnRlZ2VyUGFyc2VPbmx5KFRSVUUpIG9uIGFkb3B0ZWQKKyAgICAgKiBOdW1iZXJGb3JtYXQgb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjY5MSgpIHsKKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2MgPSBuZXcgTG9jYWxlKCJmciIsICJDSCIpOworICAgIAorICAgICAgICAvLyBzZXQgdXAgdGhlIGlucHV0IGRhdGUgc3RyaW5nICYgZXhwZWN0ZWQgb3V0cHV0CisgICAgICAgIFN0cmluZyB1ZHQgPSAiMTEuMTAuMjAwMCI7CisgICAgICAgIFN0cmluZyBleHAgPSAiMTEuMTAuMDAiOworICAgIAorICAgICAgICAvLyBjcmVhdGUgYSBDYWxlbmRhciBmb3IgdGhpcyBsb2NhbGUKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAKKyAgICAgICAgLy8gY3JlYXRlIGEgTnVtYmVyRm9ybWF0IGZvciB0aGlzIGxvY2FsZQorICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAKKyAgICAgICAgLy8gKioqIEhlcmUncyB0aGUga2V5OiBXZSBkb24ndCB3YW50IHRvIGhhdmUgdG8gZG8gVEhJUzoKKyAgICAgICAgLy9uZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgIAorICAgICAgICAvLyBjcmVhdGUgdGhlIERhdGVGb3JtYXQKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYyk7CisgICAgCisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIGRmLnNldE51bWJlckZvcm1hdChuZik7CisgICAgCisgICAgICAgIC8vIHNldCBwYXJzaW5nIHRvIGxlbmllbnQgJiBwYXJzZQorICAgICAgICBEYXRlIHVsb2NkYXQgPSBuZXcgRGF0ZSgpOworICAgICAgICBkZi5zZXRMZW5pZW50KHRydWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdWxvY2RhdCA9IGRmLnBhcnNlKHVkdCk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgZXJybG4ocGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3JtYXQgYmFjayB0byBhIHN0cmluZworICAgICAgICBTdHJpbmcgb3V0U3RyaW5nID0gZGYuZm9ybWF0KHVsb2NkYXQpOworICAgIAorICAgICAgICBpZiAoIW91dFN0cmluZy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB1ZHQgKyAiID0+ICIgKyBvdXRTdHJpbmcpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQ0MDgwNjYoKSB7CisgICAgICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgbmYxID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuQ0hJTkEpOworICAgIAorICAgICAgICAvL3Rlc3QgaXNQYXJzZUludGVnZXJPbmx5CisgICAgICAgIGlmICghbmYxLmlzUGFyc2VJbnRlZ2VyT25seSgpIHx8ICFuZjIuaXNQYXJzZUludGVnZXJPbmx5KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgOiBJbnRlZ2VyIE51bWJlciBGb3JtYXQgSW5zdGFuY2Ugc2hvdWxkIHNldCBzZXRQYXJzZUludGVnZXJPbmx5KHRydWUpIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy9UZXN0IGZvcm1hdAorICAgICAgICB7CisgICAgICAgICAgICBkb3VibGVbXSBkYXRhID0geworICAgICAgICAgICAgICAgIC0zLjc1LCAtMi41LCAtMS41LCAKKyAgICAgICAgICAgICAgICAtMS4yNSwgMCwgICAgMS4wLCAKKyAgICAgICAgICAgICAgICAxLjI1LCAgMS41LCAgMi41LCAKKyAgICAgICAgICAgICAgICAzLjc1LCAgMTAuMCwgMjU1LjUKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgIi00IiwgIi0yIiwgIi0yIiwKKyAgICAgICAgICAgICAgICAiLTEiLCAiMCIsICAiMSIsCisgICAgICAgICAgICAgICAgIjEiLCAgIjIiLCAgIjIiLAorICAgICAgICAgICAgICAgICI0IiwgICIxMCIsICIyNTYiCisgICAgICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBuZjEuZm9ybWF0KGRhdGFbaV0pOworICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCA9PiBTb3VyY2U6ICIgKyBEb3VibGUudG9TdHJpbmcoZGF0YVtpXSkgCisgICAgICAgICAgICAgICAgICAgICAgICArICI7Rm9ybWF0dGVkIDogIiArIHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiO2J1dCBleHBlY3R0ZWQ6ICIgKyBleHBlY3RlZFtpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vVGVzdCBwYXJzZSwgUGFyc2luZyBzaG91bGQgc3RvcCBhdCAiLiIKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICAgICAiLTMuNzUiLCAiLTIuNSIsICItMS41IiwgCisgICAgICAgICAgICAgICAgIi0xLjI1IiwgIjAiLCAgICAiMS4wIiwgCisgICAgICAgICAgICAgICAgIjEuMjUiLCAgIjEuNSIsICAiMi41IiwgCisgICAgICAgICAgICAgICAgIjMuNzUiLCAgIjEwLjAiLCAiMjU1LjUiCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGxvbmdbXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICAgICAtMywgLTIsIC0xLAorICAgICAgICAgICAgICAgIC0xLCAwLCAgMSwKKyAgICAgICAgICAgICAgICAxLCAgMSwgIDIsCisgICAgICAgICAgICAgICAgMywgIDEwLCAyNTUKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IG5mMS5wYXJzZShkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBMb25nKSB8fCAobiBpbnN0YW5jZW9mIEludGVnZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IEludGVnZXIgTnVtYmVyIEZvcm1hdCBzaG91bGQgcGFyc2Ugc3RyaW5nIHRvIExvbmcvSW50ZWdlciIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobi5sb25nVmFsdWUoKSAhPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkPT4gU291cmNlOiAiICsgZGF0YVtpXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtyZXN1bHQgOiAiICsgbi50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICArICI7ZXhwZWN0ZWQgOiIgKyBMb25nLnRvU3RyaW5nKGV4cGVjdGVkW2ldKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVGVzdCBOZXcgc2VyaWFsaXplZCBEZWNpbWFsRm9ybWF0KDIuMCkgcmVhZCBvbGQgc2VyaWFsaXplZCBmb3JtcyBvZiBEZWNpbWFsRm9ybWF0KDEuMy4xLjEpCisgICAgcHVibGljIHZvaWQgVGVzdFNlcmlhbGl6YXRpb24oKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb257CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBieXRlW11bXSBjb250ZW50cyA9IE51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmdldENvbnRlbnQoKTsKKyAgICAgICAgZG91YmxlIGRhdGEgPSAxMjM0LjU2OworICAgICAgICBTdHJpbmdbXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICIxLDIzNC41NiIsICIkMSwyMzQuNTYiLCAiMTIzLDQ1NiUiLCAiMS4yMzQ1NkUzIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGNvbnRlbnRzW2ldKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KGRhdGEpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6IERlc2VyaWFsaXplZCBib2d1cyBOdW1iZXJGb3JtYXQobmV3IHZlcnNpb24gcmVhZCBvbGQgdmVyc2lvbikiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogdGhlIHRlc3QgZGF0YSBmb3JtYXRzIGFyZSBub3QgZXVxYWwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiRkFJTDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLy8jZW5kaWYKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyNjkxMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydGluZyBGcm9tOiBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9ubWZtdHJ0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJvdW5kLXRyaXAgdGVzdHMgZm9yIE51bWJlckZvcm1hdAorICoqLworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIGRvdWJsZSBNQVhfRVJST1IgPSAxZS0xNDsKKyAgICBwdWJsaWMgZG91YmxlIG1heF9udW1lcmljX2Vycm9yID0gMC4wOworICAgIHB1YmxpYyBkb3VibGUgbWluX251bWVyaWNfZXJyb3IgPSAxLjA7CisgICAgcHVibGljIGJvb2xlYW4gdmVyYm9zZSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIFNUUklOR19DT01QQVJFID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gRVhBQ1RfTlVNRVJJQ19DT01QQVJFID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBxdWljayA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVtYmVyRm9ybWF0Um91bmRUcmlwKCkgeworICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gbnVsbDsKKyAgICAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgTG9jYWxlIik7CisgICAgICAgIAorICAgICAgICBsb2dsbigiRGVmYXVsdCBOdW1iZXIgZm9ybWF0Iik7CisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgICAgICBsb2dsbigiQ3VycmVuY3kgRm9ybWF0Iik7CisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCk7CisgICAgICAgIF90ZXN0KGZtdCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IEZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIF90ZXN0KGZtdCk7CisgICAgCisgICAgCisgICAgICAgIGludCBsb2NDb3VudCA9IDA7CisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvYyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmKHF1aWNrKSB7CisgICAgICAgICAgICBpZihsb2NDb3VudCA+IDUpCisgICAgICAgICAgICAgICAgbG9jQ291bnQgPSA1OworICAgICAgICAgICAgbG9nbG4oIlF1aWNrIG1vZGU6IG9ubHkgX3Rlc3RpbmcgZmlyc3QgNSBMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxvY0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAKKyAgICAgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICBfdGVzdChmbXQpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJOdW1lcmljIGVycm9yICIgKyBtaW5fbnVtZXJpY19lcnJvciArICIgdG8gIiArIG1heF9udW1lcmljX2Vycm9yKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcmFuZG9tIHZhbHVlIGZyb20gLXJhbmdlLi4rcmFuZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOworICAgIHB1YmxpYyBkb3VibGUgcmFuZG9tRG91YmxlKGRvdWJsZSByYW5nZSkgeworICAgICAgICBpZiAocmFuZG9tID09IG51bGwpIHsKKyAgICAgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICB9CisgICAgICAgIHJldHVybiAgcmFuZG9tLm5leHREb3VibGUoKSAqIHJhbmdlOworICAgIH0gCisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTnVtYmVyRm9ybWF0IGZtdCkgeworICAgIAorICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5OYU4pOworICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIF90ZXN0KGZtdCwgRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgICAKKyAgICAgICAgX3Rlc3QoZm10LCA1MDApOworICAgICAgICBfdGVzdChmbXQsIDApOworICAgICAgICBfdGVzdChmbXQsIC0wKTsKKyAgICAgICAgX3Rlc3QoZm10LCAwLjApOworICAgICAgICBkb3VibGUgbmVnWmVybyA9IDAuMDsKKyAgICAgICAgbmVnWmVybyAvPSAtMS4wOworICAgICAgICBfdGVzdChmbXQsIG5lZ1plcm8pOworICAgICAgICBfdGVzdChmbXQsIDkyMjMzNzIwMzY4NTQ3NzU4MDguMGQpOworICAgICAgICBfdGVzdChmbXQsIC05MjIzMzcyMDM2ODU0Nzc1ODA5LjBkKTsKKyAgICAgICAgLy9fdGVzdChmbXQsIDYuOTM2MDY1ODc2MTAwNDkzRTc0ZCk7CisgICAgICAgIAorICAgIC8vICAgIF90ZXN0KGZtdCwgNi4yMTIxMjI4NDUyODE5MDlFNDhkKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDEwMDAwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIE1hdGguZmxvb3IoKHJhbmRvbURvdWJsZSgxMDAwMCkpKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTUwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS01MCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUxMDApKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNzUpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlMzA4KSAvICgoRGVjaW1hbEZvcm1hdCkgZm10KS5nZXRNdWx0aXBsaWVyKCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWU3NSkgLyAoKERlY2ltYWxGb3JtYXQpIGZtdCkuZ2V0TXVsdGlwbGllcigpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNjUpIC8gKChEZWNpbWFsRm9ybWF0KSBmbXQpLmdldE11bHRpcGxpZXIoKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0yOTIpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTc4KSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0zMjMpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTEwMCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtNzgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgRG91YmxlKHZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KE51bWJlckZvcm1hdCBmbXQsIGxvbmcgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgTG9uZyh2YWx1ZSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBOdW1iZXIgdmFsdWUpIHsKKyAgICAgICAgbG9nbG4oInRlc3QgZGF0YSA9ICIgKyB2YWx1ZSk7CisgICAgICAgIGZtdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoOTk5KTsKKyAgICAgICAgU3RyaW5nIHMsIHMyOworICAgICAgICBpZiAodmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQodmFsdWUuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KHZhbHVlLmxvbmdWYWx1ZSgpKTsKKyAgICAKKyAgICAgICAgTnVtYmVyIG4gPSBuZXcgRG91YmxlKDApOworICAgICAgICBib29sZWFuIHNob3cgPSB2ZXJib3NlOworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigKKyAgICAgICAgICAgIC8qdmFsdWUuZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG4gPSBmbXQucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiAvKisgbi5nZXRTdHJpbmcodGVtcCkqLyk7CisgICAgCisgICAgICAgIGlmICh2YWx1ZS5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHNJZ25vcmVDYXNlKCJqYXZhLmxhbmcuRG91YmxlIikpCisgICAgICAgICAgICBzMiA9IGZtdC5mb3JtYXQobi5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgczIgPSBmbXQuZm9ybWF0KG4ubG9uZ1ZhbHVlKCkpOworICAgIAorICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigvKm4uZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgICAgIGlmIChTVFJJTkdfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIFNUUklORyBFUlJPUiBcIiIgKyBzICsgIlwiICE9IFwiIiArIHMyICsgIlwiIik7CisgICAgICAgICAgICAgICAgc2hvdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKEVYQUNUX05VTUVSSUNfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKHZhbHVlICE9IG4pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENvbXB1dGUgcHJvcG9ydGlvbmFsIGVycm9yCisgICAgICAgICAgICBkb3VibGUgZXJyb3IgPSBwcm9wb3J0aW9uYWxFcnJvcih2YWx1ZSwgbik7CisgICAgCisgICAgICAgICAgICBpZiAoZXJyb3IgPiBNQVhfRVJST1IpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IgIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmIChlcnJvciA+IG1heF9udW1lcmljX2Vycm9yKQorICAgICAgICAgICAgICAgIG1heF9udW1lcmljX2Vycm9yID0gZXJyb3I7CisgICAgICAgICAgICBpZiAoZXJyb3IgPCBtaW5fbnVtZXJpY19lcnJvcikKKyAgICAgICAgICAgICAgICBtaW5fbnVtZXJpY19lcnJvciA9IGVycm9yOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChzaG93KQorICAgICAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAvKnZhbHVlLmdldFN0cmluZyh0ZW1wKSArKi8gdmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzICsgIiBQPiAiICsKKyAgICAgICAgICAgIC8qbi5nZXRTdHJpbmcodGVtcCkgKyovIG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZG91YmxlIHByb3BvcnRpb25hbEVycm9yKE51bWJlciBhLCBOdW1iZXIgYikgeworICAgICAgICBkb3VibGUgYWEsYmI7CisgICAgICAgIAorICAgICAgICBpZihhLmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoImphdmEubGFuZy5Eb3VibGUiKSkKKyAgICAgICAgICAgIGFhID0gYS5kb3VibGVWYWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhYSA9IGEubG9uZ1ZhbHVlKCk7CisgICAgCisgICAgICAgIGlmKGEuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgYmIgPSBiLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJiID0gYi5sb25nVmFsdWUoKTsKKyAgICAKKyAgICAgICAgZG91YmxlIGVycm9yID0gYWEgLSBiYjsKKyAgICAgICAgaWYoYWEgIT0gMCAmJiBiYiAhPSAwKSAKKyAgICAgICAgICAgIGVycm9yIC89IGFhOworICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKGVycm9yKTsKKyAgICB9ICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjNkN2E0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDMwNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YSB7CisgICAgLy9nZXQgQ29udGVudAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdW10gZ2V0Q29udGVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjb250ZW50OworICAgIH0KKworICAgIC8vTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIGdlbmVyYWxJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMywgMTI3LCAwLCAwLCAwLCAzLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgNiwgMCwgMCwgMCwgMiwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDAsIAorICAgICAgICAxMTYsIDAsIDAsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExMiwgMTE1LCAxMTQsIDAsIDM3LCA5OSwgMTExLCAxMDksIAorICAgICAgICA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgCisgICAgICAgIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAyOSwgMjMsIC0xMDMsIDgsIDEwNCwgCisgICAgICAgIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgCisgICAgICAgIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIAorICAgICAgICAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDEsIDExMiwgCisgICAgICAgIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA2NywgMCwgCisgICAgICAgIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgCisgICAgICAgIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgCisgICAgICAgIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA3NywgMTA1LCAxMDgsIDEwOCwgNjcsIAorICAgICAgICAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIDExNSwgODMsIDEwNSwgMTAzLCAxMTAsIAorICAgICAgICA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIAorICAgICAgICAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgNzYsIDAsIDMsIDc4LCAKKyAgICAgICAgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAxMTAsIDk5LCAxMjEsIDgzLCAxMjEsIAorICAgICAgICAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDgsIDEwNSwgMTEwLCAxMDIsIAorICAgICAgICAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIDExNiwgMTA4LCA2NywgMTE3LCAxMTQsIAorICAgICAgICAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDEyMCwgMTEyLCAwLCA0NiwgCisgICAgICAgIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCA0OCwgMCwgMzcsIDAsIDQzLCAKKyAgICAgICAgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAxLCA2OSwgCisgICAgICAgIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIC8vTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gY3VycmVuY3lJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMiwgMTI3LCAwLCAwLCAwLCAyLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDIsIDEsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgNiwgMCwgMCwgMCwgMiwgMCwgMTE2LCAwLCAzLCA0MCwgLTYyLCAtOTIsIDExNiwgMCwgMSwgNDEsIDExNiwgMCwgMiwgNDAsIAorICAgICAgICAzNiwgMTE2LCAwLCAxLCA0MSwgMTE2LCAwLCAyLCAtNjIsIC05MiwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDM2LCAxMTYsIDAsIDAsIAorICAgICAgICAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgCisgICAgICAgIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAKKyAgICAgICAgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIAorICAgICAgICA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgCisgICAgICAgIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIAorICAgICAgICAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAKKyAgICAgICAgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIAorICAgICAgICAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAKKyAgICAgICAgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIAorICAgICAgICAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAKKyAgICAgICAgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgCisgICAgICAgIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgCisgICAgICAgIDAsIDEsIDc2LCAwLCA4LCAxMDUsIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAKKyAgICAgICAgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAKKyAgICAgICAgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgCisgICAgICAgIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgCisgICAgICAgIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgICAgIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gcGVyY2VudEluc3RhbmNlID0gbmV3IGJ5dGVbXXsgCisgICAgICAgIC04NCwgLTE5LCAwLCA1LCAxMTUsIDExNCwgMCwgMzAsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAxMSwgLTEsIAorICAgICAgICAzLCA5OCwgLTQwLCAxMTQsIDQ4LCA1OCwgMiwgMCwgMjIsIDkwLCAwLCAyNywgMTAwLCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgODMsIAorICAgICAgICAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA5MCwgCisgICAgICAgIDAsIDIzLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwNSwgMTAzLCAxMTAsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCAKKyAgICAgICAgODMsIDEwNCwgMTExLCAxMTksIDExMCwgNzMsIDAsIDExLCAxMDIsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDg3LCAxMDUsIDEwMCwgMTE2LCAxMDQsIDY2LCAKKyAgICAgICAgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNjYsIDAsIDEzLCAxMDMsIDExNCwgMTExLCAKKyAgICAgICAgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA1MCwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA2OSwgMTIwLCAxMTIsIDExMSwgCisgICAgICAgIDExMCwgMTAxLCAxMTAsIDExNiwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMTAsIDEwOSwgMTE3LCAxMDgsIDExNiwgMTA1LCAxMTIsIDEwOCwgCisgICAgICAgIDEwNSwgMTAxLCAxMTQsIDY3LCAwLCAzLCAxMTIsIDk3LCAxMDAsIDczLCAwLCAxMSwgMTEyLCA5NywgMTAwLCA4MCwgMTExLCAxMTUsIDEwNSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNzMsIDAsIDEyLCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzcsIDExMSwgMTAwLCAxMDEsIDczLCAwLCAKKyAgICAgICAgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCAKKyAgICAgICAgOTcsIDEwOSwgOTAsIDAsIDIyLCAxMTcsIDExNSwgMTAxLCA2OSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDc4LCAKKyAgICAgICAgMTExLCAxMTYsIDk3LCAxMTYsIDEwNSwgMTExLCAxMTAsIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTE2LCAwLCAxOCwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDgsIDk3LCAxMTAsIDEwMywgNDcsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwNSwgMTEwLCAxMDMsIDU5LCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAxMTYsIDEwNSwgCisgICAgICAgIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAKKyAgICAgICAgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTYsIDExMiwgMTExLCAKKyAgICAgICAgMTE1LCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgCisgICAgICAgIDAsIDE2LCAxMTIsIDExMSwgMTE1LCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgCisgICAgICAgIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAKKyAgICAgICAgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAKKyAgICAgICAgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3MywgMTEwLCAKKyAgICAgICAgOTksIDExNCwgMTAxLCAxMDksIDEwMSwgMTEwLCAxMTYsIDExNiwgMCwgMjIsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA5LCA5NywgMTE2LCAxMDQsIAorICAgICAgICA0NywgNjYsIDEwNSwgMTAzLCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDU5LCA3NiwgMCwgNywgMTE1LCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCAxMTYsIDAsIDM5LCA3NiwgOTksIDExMSwgMTA5LCA0NywgMTA1LCA5OCwgMTA5LCA0NywgMTA1LCA5OSwgMTE3LCA0NywgMTE2LCAxMDEsIAorICAgICAgICAxMjAsIDExNiwgNDcsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIAorICAgICAgICAxMTEsIDEwOCwgMTE1LCA1OSwgMTIwLCAxMTQsIDAsIDI5LCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzgsIDExNywgMTA5LCA5OCwgMTAxLCAxMTQsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtMzMsIC0xMCwgLTc3LCAKKyAgICAgICAgLTY1LCAxOSwgMTI1LCA3LCAtMjQsIDMsIDAsIDExLCA5MCwgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4NSwgCisgICAgICAgIDExNSwgMTAxLCAxMDAsIDY2LCAwLCAxNywgMTA5LCA5NywgMTIwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAKKyAgICAgICAgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDk3LCAxMjAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgCisgICAgICAgIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgCisgICAgICAgIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIAorICAgICAgICAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCAxMDUsIDExMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgCisgICAgICAgIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCAKKyAgICAgICAgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgCisgICAgICAgIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA5MCwgMCwgMTYsIDExMiwgOTcsIAorICAgICAgICAxMTQsIDExNSwgMTAxLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNzksIDExMCwgMTA4LCAxMjEsIDczLCAwLCAyMSwgMTE1LCAxMDEsIDExNCwgCisgICAgICAgIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCA5NywgMTA5LCAxMjAsIDExNCwgCisgICAgICAgIDAsIDE2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC01LCAtNDAsIAorICAgICAgICAtNjgsIDE4LCAtMjMsIDE1LCAyNCwgNjcsIDIsIDAsIDAsIDEyMCwgMTEyLCAxLCAwLCAxMjcsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICAxLCA1MywgMCwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMTIwLCAwLCAwLCAKKyAgICAgICAgMCwgMCwgMCwgMCwgMywgMCwgMCwgMCwgMCwgMCwgMTAwLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMSwgMzcsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgCisgICAgICAgIDEsIDM3LCAxMTYsIDAsIDAsIDExMywgMCwgMTI2LCAwLCA4LCAxMTYsIDAsIDAsIDExNiwgMCwgMSwgMzcsIDExMiwgMTE1LCAxMTQsIAorICAgICAgICAwLCAzNywgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIAorICAgICAgICAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAKKyAgICAgICAgMjksIDIzLCAtMTAzLCA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgCisgICAgICAgIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgCisgICAgICAgIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAKKyAgICAgICAgMTA1LCAxMDMsIDExMCwgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAKKyAgICAgICAgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCAKKyAgICAgICAgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIAorICAgICAgICAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAKKyAgICAgICAgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDc2LCAwLCAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAKKyAgICAgICAgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgCisgICAgICAgIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCA4LCAxMDUsIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIAorICAgICAgICAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIAorICAgICAgICAxLCAxMjAsIDExMiwgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCAKKyAgICAgICAgNDgsIDAsIDM3LCAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAKKyAgICAgICAgMzYsIDExNiwgMCwgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIC8vTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgc3RhdGljIGJ5dGVbXSBzY2llbnRpZmljSW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDEsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTE2LCAwLCAwLCAxMTMsIDAsIDEyNiwgMCwgOCwgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExMiwgMTE1LCAxMTQsIDAsIDM3LCA5OSwgCisgICAgICAgIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgCisgICAgICAgIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIDExMSwgMTA4LCAxMTUsIDgwLCAyOSwgMjMsIC0xMDMsIAorICAgICAgICA4LCAxMDQsIC0xMDksIC0xMDAsIDIsIDAsIDE4LCA2NywgMCwgMTYsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAxMDEsIDExMiwgCisgICAgICAgIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNSwgMTAwLCAxMDUsIDEwMywgMTA1LCAxMTYsIDY3LCAwLCAxMSwgMTAxLCAxMjAsIDExMiwgCisgICAgICAgIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDY3LCAwLCAxNywgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgOSwgMTA5LCAxMDUsIDExMCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCAKKyAgICAgICAgNjcsIDAsIDE3LCAxMDksIDExMSwgMTEwLCAxMDEsIDExNiwgOTcsIDExNCwgMTIxLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAKKyAgICAgICAgNjcsIDAsIDksIDExMiwgOTcsIDEwMCwgNjksIDExNSwgOTksIDk3LCAxMTIsIDEwMSwgNjcsIDAsIDE2LCAxMTIsIDk3LCAxMTYsIDExNiwgMTAxLCAKKyAgICAgICAgMTE0LCAxMTAsIDgzLCAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA3NywgMTA1LCAxMDgsIAorICAgICAgICAxMDgsIDY3LCAwLCA3LCAxMTIsIDEwMSwgMTE0LCA5OSwgMTAxLCAxMTAsIDExNiwgNjcsIDAsIDgsIDExMiwgMTA4LCAxMTcsIDExNSwgODMsIDEwNSwgCisgICAgICAgIDEwMywgMTEwLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgNjcsIDAsIDksIDEyMiwgMTAxLCAxMTQsIDExMSwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgNzYsIDAsIAorICAgICAgICAzLCA3OCwgOTcsIDc4LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCA5OSwgMTE3LCAxMTQsIDExNCwgMTAxLCAxMTAsIDk5LCAxMjEsIAorICAgICAgICA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgCisgICAgICAgIDExMCwgMTE2LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDgsIDEwNSwgCisgICAgICAgIDExMCwgMTAyLCAxMDUsIDExMCwgMTA1LCAxMTYsIDEyMSwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxOCwgMTA1LCAxMTAsIDExNiwgMTA4LCA2NywgCisgICAgICAgIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTEzLCAwLCAxMjYsIDAsIDEsIDEyMCwgMTEyLCAKKyAgICAgICAgMCwgNDYsIDAsIDM1LCAwLCAwLCAwLCA0NCwgMCwgNDUsIDAsIDQ2LCAwLCA0MiwgMCwgNTksIDMyLCA0OCwgMCwgMzcsIAorICAgICAgICAwLCA0MywgMCwgMCwgMCwgMiwgMCwgNDgsIDExNiwgMCwgMywgLTE3LCAtNjUsIC02NywgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAKKyAgICAgICAgMSwgNjksIDExNiwgMCwgMywgLTMwLCAtMTIwLCAtOTgsIDExNiwgMCwgMywgODUsIDgzLCA2OCwgCisgICAgfTsKKworICAgIGZpbmFsIHN0YXRpYyBieXRlW11bXSBjb250ZW50ID0ge2dlbmVyYWxJbnN0YW5jZSwgY3VycmVuY3lJbnN0YW5jZSwgcGVyY2VudEluc3RhbmNlLCBzY2llbnRpZmljSW5zdGFuY2V9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzZlYTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSwxNzQ4IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbnVtZm10c3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLmRhdGEuUmVzb3VyY2VSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5kYXRhLlRva2VuSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKKworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFVVJPID0gJ1x1MjBhYyc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE51bWJlckZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgdmFyaW91cyBwYXR0ZXJucworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJucygpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGZpbmFsIFN0cmluZyBwYXRbXSAgICA9IHsgIiMuIyIsICIjLiIsICIuIyIsICIjIiB9OworICAgICAgICBpbnQgcGF0X2xlbmd0aCA9IHBhdC5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZyBuZXdwYXRbXSA9IHsgIiMwLiMiLCAiIzAuIiwgIiMuMCIsICIjIiB9OworICAgICAgICBmaW5hbCBTdHJpbmcgbnVtW10gICAgPSB7ICIwIiwgICAiMC4iLCAiLjAiLCAiMCIgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdF9sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXRbaV0sIHN5bSk7CisgICAgICAgICAgICBTdHJpbmcgbmV3cCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIGlmICghbmV3cC5lcXVhbHMobmV3cGF0W2ldKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiAiICsgcGF0W2ldICsgIiBzaG91bGQgdHJhbnNtdXRlIHRvICIgKyBuZXdwYXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICI7ICIgKyBuZXdwICsgIiBzZWVuIGluc3RlYWQiKTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZyBzID0gKChOdW1iZXJGb3JtYXQpZm10KS5mb3JtYXQoMCk7CisgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKG51bVtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhdHRlcm4gIiArIHBhdFtpXSArICIgc2hvdWxkIGZvcm1hdCB6ZXJvIGFzICIgKyBudW1baV0gKworICAgICAgICAgICAgICAgICAgICAgICI7ICIgKyBzICsgIiBzZWVuIGluc3RlYWQiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiTWluIGludGVnZXIgZGlnaXRzID0gIiArIGZtdC5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IGV4cG9uZW50aWFsIHBhdHRlcm4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwb25lbnRpYWwoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0W10gPSB7ICIwLiMjIyNFMCIsICIwMC4wMDBFMDAiLCAiIyMwLiMjIyMjI0UwMDAiLCAiMC4jIyNFMDtbMC4jIyNFMF0iIH07CisgICAgICAgIGludCBwYXRfbGVuZ3RoID0gcGF0Lmxlbmd0aDsKKyAgICAKKyAgICAgICAgZG91YmxlIHZhbFtdID0geyAwLjAxMjM0LCAxMjM0NTY3ODksIDEuMjNlMzAwLCAtMy4xNDE1OTI2NTNlLTI3MSB9OworICAgICAgICBpbnQgdmFsX2xlbmd0aCA9IHZhbC5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZyB2YWxGb3JtYXRbXSA9IHsKKyAgICAgICAgICAgIC8vIDAuIyMjI0UwCisgICAgICAgICAgICAiMS4yMzRFLTIiLCAiMS4yMzQ2RTgiLCAiMS4yM0UzMDAiLCAiLTMuMTQxNkUtMjcxIiwKKyAgICAgICAgICAgIC8vIDAwLjAwMEUwMAorICAgICAgICAgICAgIjEyLjM0MEUtMDMiLCAiMTIuMzQ2RTA3IiwgIjEyLjMwMEUyOTkiLCAiLTMxLjQxNkUtMjcyIiwKKyAgICAgICAgICAgIC8vICMjMC4jIyMjIyNFMDAwCisgICAgICAgICAgICAiMTIuMzRFLTAwMyIsICIxMjMuNDU2OEUwMDYiLCAiMS4yM0UzMDAiLCAiLTMxNC4xNTkzRS0yNzMiLAorICAgICAgICAgICAgLy8gMC4jIyNFMDtbMC4jIyNFMF0KKyAgICAgICAgICAgICIxLjIzNEUtMiIsICIxLjIzNUU4IiwgIjEuMjNFMzAwIiwgIlszLjE0MkUtMjcxXSIgfTsKKyAgICAgICAgLypkb3VibGUgdmFsUGFyc2VbXSA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgMC4wMTIzNCwgMTIzNDYwMDAwLCAxLjIzRTMwMCwgLTMuMTQxNkUtMjcxLAorICAgICAgICAgICAgICAgIDAuMDEyMzQsIDEyMzQ2MDAwMCwgMS4yM0UzMDAsIC0zLjE0MTZFLTI3MSwKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM0NTY4MDAsIDEuMjNFMzAwLCAtMy4xNDE1OTNFLTI3MSwKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM1MDAwMDAsIDEuMjNFMzAwLCAtMy4xNDJFLTI3MSwKKyAgICAgICAgICAgIH07Ki8gLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgIAorICAgICAgICBpbnQgbHZhbFtdID0geyAwLCAtMSwgMSwgMTIzNDU2Nzg5IH07CisgICAgICAgIGludCBsdmFsX2xlbmd0aCA9IGx2YWwubGVuZ3RoOworICAgICAgICBmaW5hbCBTdHJpbmcgbHZhbEZvcm1hdFtdID0geworICAgICAgICAgICAgLy8gMC4jIyMjRTAKKyAgICAgICAgICAgICIwRTAiLCAiLTFFMCIsICIxRTAiLCAiMS4yMzQ2RTgiLAorICAgICAgICAgICAgLy8gMDAuMDAwRTAwCisgICAgICAgICAgICAiMDAuMDAwRTAwIiwgIi0xMC4wMDBFLTAxIiwgIjEwLjAwMEUtMDEiLCAiMTIuMzQ2RTA3IiwKKyAgICAgICAgICAgIC8vICMjMC4jIyMjIyNFMDAwCisgICAgICAgICAgICAiMEUwMDAiLCAiLTFFMDAwIiwgIjFFMDAwIiwgIjEyMy40NTY4RTAwNiIsCisgICAgICAgICAgICAvLyAwLiMjI0UwO1swLiMjI0UwXQorICAgICAgICAgICAgIjBFMCIsICJbMUUwXSIsICIxRTAiLCAiMS4yMzVFOCIgfTsKKyAgICAgICAgaW50IGx2YWxQYXJzZVtdID0gCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ2MDAwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ2MDAwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzQ1NjgwMCwgCisgICAgICAgICAgICAgICAgMCwgLTEsIDEsIDEyMzUwMDAwMCwgCisgICAgICAgICAgICB9OworICAgICAgICBpbnQgaXZhbCA9IDAsIGlsdmFsID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IDA7IHAgPCBwYXRfbGVuZ3RoOyArK3ApIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0W3BdLCBzeW0pOworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgcGF0W3BdICsgIlwiIC10b1BhdHRlcm4tPiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGludCB2OworICAgICAgICAgICAgZm9yICh2ID0gMDsgdiA8IHZhbF9sZW5ndGg7ICsrdikgeworICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQodmFsW3ZdKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICIgKyB2YWxbdl0gKyAiIC1mb3JtYXQtPiAiICsgcyk7CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyh2YWxGb3JtYXRbdiArIGl2YWxdKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyB2YWxGb3JtYXRbdiArIGl2YWxdKTsKKyAgICAKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gZm10LnBhcnNlKHMsIHBvcykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAtcGFyc2UtPiAiICsgRG91YmxlLnRvU3RyaW5nKGEpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGVwc2lsb24gY29tcGFyaXNvbiBhcyBuZWNlc3NhcnkKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnRpYWwgcGFyc2UgKCIgKyBwb3MuZ2V0SW5kZXgoKSArICIgY2hhcnMpIC0+ICIgKyBhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodiA9IDA7IHYgPCBsdmFsX2xlbmd0aDsgKyt2KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHM7CisgICAgICAgICAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KSBmbXQpLmZvcm1hdChsdmFsW3ZdKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICIgKyBsdmFsW3ZdICsgIkwgLWZvcm1hdC0+ICIgKyBzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKGx2YWxGb3JtYXRbdiArIGlsdmFsXSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRXhwZWN0ZWQgIiArIGx2YWxGb3JtYXRbdiArIGlsdmFsXSArICIgR290OiAiICsgcyk7CisgICAgCisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBsb25nIGEgPSAwOworICAgICAgICAgICAgICAgIE51bWJlciBBID0gZm10LnBhcnNlKHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKEEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhID0gQS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIC1wYXJzZS0+ICIgKyBhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhICE9IGx2YWxQYXJzZVt2ICsgaWx2YWxdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgbHZhbFBhcnNlW3YgKyBpbHZhbF0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXJ0aWFsIHBhcnNlICgiICsgcG9zLmdldEluZGV4KCkgKyAiIGNoYXJzKSAtPiAiICsgTG9uZy50b1N0cmluZyhhKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gcGFyc2UgdGhlIHN0cmluZzogIiArIHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGl2YWwgKz0gdmFsX2xlbmd0aDsKKyAgICAgICAgICAgIGlsdmFsICs9IGx2YWxfbGVuZ3RoOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgaGFuZGxpbmcgb2YgcXVvdGVzCisgICAgcHVibGljIHZvaWQgVGVzdFF1b3RlcygpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHBhdDsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoImEnZm8nJ28nYiMiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdClmbXQpLmZvcm1hdCgxMjMpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgMTIzIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCJhZm8nb2IxMjMiKSkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYWZvJ29iMTIzIik7CisgICAgICAgIAorICAgICAgICBzID0iIjsKKyAgICAgICAgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiYScnYiMiKTsKKyAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LnRvU3RyaW5nKCksIHN5bSk7CisgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdClmbXQpLmZvcm1hdCgxMjMpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgMTIzIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCJhJ2IxMjMiKSkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYSdiMTIzIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJzZUN1cnJlbmN5VHJhaWxpbmdTeW1ib2woKSB7CisgICAgICAgIC8vIHNlZSBzdW4gYnVnIDQ3MDk4NDAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgZmxvYXQgdmFsID0gMTIzNDUuNjdmOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdCh2YWwpOworICAgICAgICBsb2dsbigidmFsOiAiICsgdmFsICsgIiBzdHI6ICIgKyBzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4oIm51bTogIiArIG51bSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBvZiAnIiArIHN0ciArICInIHRocmV3IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgdGhlIGN1cnJlbmN5IHN5bWJvbCBpbiBwYXR0ZXJucy4KKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5U2lnbigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgY2hhciBjdXJyZW5jeSA9IDB4MDBBNDsKKyAgICAgICAgLy8gIlx4QTQjLCMjMC4wMDstXHhBNCMsIyMwLjAwIgorICAgICAgICBwYXQuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiMsIyMwLjAwOy0iKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZCgiIywjIzAuMDAiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoMTIzNC41Nik7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIDEyMzQuNTYgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCIkMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAkMSwyMzQuNTYiKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KC0xMjM0LjU2KTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygtMTIzNC41NikgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCItJDEsMjM0LjU2IikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgLSQxLDIzNC41NiIpOworICAgIAorICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgLy8gIlx4QTRceEE0ICMsIyMwLjAwO1x4QTRceEE0IC0jLCMjMC4wMCIKKyAgICAgICAgcGF0LmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiAjLCMjMC4wMDsiKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKCIgLSMsIyMwLjAwIik7IAorICAgICAgICBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KDEyMzQuNTYpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygxMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgCisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAxLDIzNC41NiIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIFVTRCAxLDIzNC41NiIpOworICAgICAgICBzID0gIiI7CisgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoLTEyMzQuNTYpOworICAgICAgICBsb2dsbigiIEZvcm1hdCAiICsgRG91YmxlLnRvU3RyaW5nKC0xMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAtMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBVU0QgLTEsMjM0LjU2Iik7CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgbG9jYWxpemVkIGN1cnJlbmN5IHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeSgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJmciIsICJDQSIsICIiLCAiMSw1MCAkIiwKKyAgICAgICAgICAgICJkZSIsICJERSIsICIiLCAiMSw1MCBcdTIwQUMiLAorICAgICAgICAgICAgImRlIiwgIkRFIiwgIlBSRUVVUk8iLCAiMSw1MCBETSIsCisgICAgICAgICAgICAiZnIiLCAiRlIiLCAiIiwgIjEsNTAgXHUyMEFDIiwKKyAgICAgICAgICAgICJmciIsICJGUiIsICJQUkVFVVJPIiwgIjEsNTAgRiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gbmV3IExvY2FsZShEQVRBW2ldLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdCgxLjUwKTsKKyAgICAgICAgICAgIGlmIChzLmVxdWFscyhEQVRBW2krM10pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAxLjUwIHggIiArIGxvY2FsZSArICIgPT4gIiArIHMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRkFJTDogMS41MCB4ICIgKyBsb2NhbGUgKyAiID0+ICIgKyBzICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgREFUQVtpKzNdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZm9ybWF0IGN1cnJlbmN5IHdpdGggQ3VycmVuY3lBbW91bnQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gbmV3IExvY2FsZShEQVRBW2ldLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEN1cnJlbmN5IGN1cnIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgbG9nbG4oIlxuTmFtZSBvZiB0aGUgY3VycmVuY3kgaXM6ICIgKyBjdXJyLmdldE5hbWUobG9jYWxlLCBDdXJyZW5jeS5MT05HX05BTUUsIG5ldyBib29sZWFuW10ge2ZhbHNlfSkpOworICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQgY0FtdCA9IG5ldyBDdXJyZW5jeUFtb3VudCgxLjUsIGN1cnIpOworICAgICAgICAgICAgbG9nbG4oIkN1cnJlbmN5QW1vdW50IG9iamVjdCdzIGhhc2hDb2RlIGlzOiAiICsgY0FtdC5oYXNoQ29kZSgpKTsgLy9jb3ZlciBoYXNoQ29kZQorICAgICAgICAgICAgCisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBzQ3VyciA9IGZtdC5mb3JtYXQoY0FtdCk7CisgICAgICAgICAgICBpZiAoc0N1cnIuZXF1YWxzKERBVEFbaSszXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IDEuNTAgeCAiICsgbG9jYWxlICsgIiA9PiAiICsgc0N1cnIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMS41MCB4ICIgKyBsb2NhbGUgKyAiID0+ICIgKyBzQ3VyciArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSszXSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vQ292ZXIgTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdCgpCisgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgIE1lYXN1cmVGb3JtYXQgY3VyRm10ID0gTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdCgpOworICAgICAgICAvL05vdCBrbm93aW5nIGhvdyB0byB0ZXN0IHRoaXMgZmFjdG9yeSBtZXRob2QsCisgICAgICAgIC8vICBiZWNhdXNlIHRoZSBjb25jcmVhdCBjbGFzcyBvZiBNZWFzdXJlRm9ybWF0IC0KKyAgICAgICAgLy8gIEN1cnJlbmN5Rm9ybWF0IGlzIGp1c3QgZm9yIGludGVybmFsIHVzZS4KKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KHNhdmUpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgQ3VycmVuY3kgb2JqZWN0IGhhbmRsaW5nLCBuZXcgYXMgb2YgSUNVIDIuMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lPYmplY3QoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSAKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIG51bGwsIDEyMzQuNTYsICIkMSwyMzQuNTYiKTsKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiXHUyMEFDMSwyMzQuNTYiKTsgLy8gRXVybworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIlx1MDBBNTEsMjM1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiU3dGMSwyMzQuNTUiKTsgLy8gMC4wNSByb3VuZGluZworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIiQxLDIzNC41NiIpOworCisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBudWxsLCAxMjM0LjU2LCAiMSAyMzQsNTYgXHUyMEFDIik7CisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzUgXHUwMEE1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTUgc0ZyLiIpOyAvLyAwLjI1IHJvdW5kaW5nCisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTYgJCIpOworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksCisgICAgICAgICAgICAgICAgICAgICAgIDEyMzQuNTYsICIxIDIzNCw1NiBcdTIwQUMiKTsgLy8gRXVybworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lQYXR0ZXJucygpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIExvY2FsZVtdIGxvY3MgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxsb2NzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NzW2ldKTsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBjdXJyZW5jeSBmb3JtYXRzIGRvIG5vdCBoYXZlIGEgdmFyaWFibGUgbnVtYmVyCisgICAgICAgICAgICAvLyBvZiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGludCBtaW4gPSBuZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGludCBtYXggPSBuZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGlmIChtaW4gIT0gbWF4KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSBuZi5mb3JtYXQoMS4wKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IG5mLmZvcm1hdCgxLjEyNSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsb2NzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiIG1pbiBmcmFjdGlvbiBkaWdpdHMgIT0gbWF4IGZyYWN0aW9uIGRpZ2l0czsgIisKKyAgICAgICAgICAgICAgICAgICAgICAieCAxLjAgPT4gIiArIGEgKworICAgICAgICAgICAgICAgICAgICAgICI7IHggMS4xMjUgPT4gIiArIGIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIEVVUk8gY3VycmVuY3kgZm9ybWF0cyBoYXZlIGV4YWN0bHkgMiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGlmIChuZiBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBDdXJyZW5jeSBjdXJyID0gKChEZWNpbWFsRm9ybWF0KSBuZikuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VyciAhPSBudWxsICYmICJFVVIiLmVxdWFscyhjdXJyLmdldEN1cnJlbmN5Q29kZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobWluICE9IDIgfHwgbWF4ICE9IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhID0gbmYuZm9ybWF0KDEuMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxvY3NbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpcyBhIEVVUk8gZm9ybWF0IGJ1dCBpdCBkb2VzIG5vdCBoYXZlIDIgZnJhY3Rpb24gZGlnaXRzOyAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInggMS4wID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBydWRpbWVudGFyeSB0ZXN0aW5nIG9mIHBhcnNpbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkgeworICAgICAgICBTdHJpbmcgYXJnID0gIjAuMCI7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwIik7CisgICAgICAgIGRvdWJsZSBhTnVtYmVyID0gMGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhTnVtYmVyID0gZm9ybWF0LnBhcnNlKGFyZykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJwYXJzZSgiICsgYXJnICsgIikgPSAiICsgYU51bWJlcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgcHJvcGVyIHJvdW5kaW5nIGJ5IHRoZSBmb3JtYXQgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZGluZzQ4NygpIHsKKyAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMC4wMDE1OTk5OSwgNCwgIjAuMDAxNiIpOworICAgICAgICByb3VuZGluZ1Rlc3QobmYsIDAuMDA5OTUsIDQsICIwLjAxIik7CisgICAgCisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMTIuMzk5NSwgMywgIjEyLjQiKTsKKyAgICAKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAxMi40OTk5LCAwLCAiMTIiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAtIDE5LjUsIDAsICItMjAiKTsKKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZnVuY3Rpb25pbmcgb2YgdGhlIHNlY29uZGFyeSBncm91cGluZyB2YWx1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5R3JvdXBpbmcoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjLCMjIyIsIFVTKTsKKyAgICAKKyAgICAgICAgZXhwZWN0KGYsIDEyMzQ1Njc4OUwsICIxMiwzNCw1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjLCMjIyIpOworICAgICAgICBmLmFwcGx5UGF0dGVybigiIywjIyMiKTsKKyAgICAKKyAgICAgICAgZi5zZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoNCk7CisgICAgICAgIGV4cGVjdChmLCAxMjM0NTY3ODlMLCAiMTIsMzQ1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjIyMsIyMjIik7CisgICAgICAgIE51bWJlckZvcm1hdCBnID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImhpIiwgIklOIikpOworICAgIAorICAgICAgICBTdHJpbmcgb3V0ID0gIiI7CisgICAgICAgIGxvbmcgbCA9IDE4NzY1NDMyMTBMOworICAgICAgICBvdXQgPSBnLmZvcm1hdChsKTsKKyAgICAKKyAgICAgICAgLy8gZXhwZWN0ICIxLDg3LDY1LDQzLDIxMCIsIGJ1dCB3aXRoIEhpbmRpIGRpZ2l0cworICAgICAgICAvLyAgICAgICAgIDAxMjM0NTY3ODkwMTIzCisgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICBpZiAob3V0Lmxlbmd0aCgpICE9IDE0KSB7CisgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0R3JvdXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxIDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA0IDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA3IDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMCA6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RHcm91cCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gTGF0ZXIgLS0gZml4IHRoaXMgdG8gZ2V0IHRoZSBhY3R1YWwgZ3JvdXBpbmcKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlLgorICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNHcm91cCA9IChvdXQuY2hhckF0KGkpID09IDB4MDAyQyk7CisgICAgICAgICAgICAgICAgaWYgKGlzR3JvdXAgIT0gZXhwZWN0R3JvdXApIHsKKyAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICBFeHBlY3RlZCAiKyBsICsgIiB4IGhpX0lOIC4gXCIxLDg3LDY1LDQzLDIxMFwiICh3aXRoIEhpbmRpIGRpZ2l0cyksIGdvdCBcIiIKKyAgICAgICAgICAgICAgICAgICAgKyBvdXQgKyAiXCIiKTsgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAgIiArIGwgKyAiIHggaGlfSU4gLiBcIiIgKyBvdXQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCByb3VuZGluZ1Rlc3QoTnVtYmVyRm9ybWF0IG5mLCBkb3VibGUgeCwgaW50IG1heEZyYWN0aW9uRGlnaXRzLCBmaW5hbCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKG1heEZyYWN0aW9uRGlnaXRzKTsKKyAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdCh4KTsKKyAgICAgICAgbG9nbG4oeCArICIgZm9ybWF0cyB3aXRoICIgKyBtYXhGcmFjdGlvbkRpZ2l0cyArICIgZnJhY3Rpb25hbCBkaWdpdHMgdG8gIiArIG91dCk7IAorICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZ3JhZGUgdG8gYWxwaGFXb3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBvbmVudCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjRTAiLCBVUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UrMCIsIFVTKTsKKyAgICAgICAgaW50IG4gPSAxMjM0OworICAgICAgICBleHBlY3QyKGZtdDEsIG4sICIxLjIzNEUzIik7CisgICAgICAgIGV4cGVjdDIoZm10MiwgbiwgIjEuMjM0RSszIik7CisgICAgICAgIGV4cGVjdChmbXQxLCAiMS4yMzRFKzMiLCBuKTsgLy8gRWl0aGVyIGZvcm1hdCBzaG91bGQgcGFyc2UgIkUrMyIKKworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpYygpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCBwYXR0ZXJuIHJvdW5kLXRyaXAKKyAgICAgICAgZmluYWwgU3RyaW5nIFBBVFtdID0geyAiI0UwIiwgIjAuIyMjI0UwIiwgIjAwLjAwMEUwMCIsICIjIzAuIyMjI0UwMDAiLCAiMC4jIyNFMDtbMC4jIyNFMF0iIH07CisgICAgICAgIGludCBQQVRfbGVuZ3RoID0gUEFULmxlbmd0aDsKKyAgICAgICAgaW50IERJR0lUU1tdID0geworICAgICAgICAgICAgLy8gbWluIGludCwgbWF4IGludCwgbWluIGZyYWMsIG1heCBmcmFjCisgICAgICAgICAgICAwLCAxLCAwLCAwLCAvLyAiI0UwIgorICAgICAgICAgICAgMSwgMSwgMCwgNCwgLy8gIjAuIyMjI0UwIgorICAgICAgICAgICAgMiwgMiwgMywgMywgLy8gIjAwLjAwMEUwMCIKKyAgICAgICAgICAgIDEsIDMsIDAsIDQsIC8vICIjIzAuIyMjI0UwMDAiCisgICAgICAgICAgICAxLCAxLCAwLCAzLCAvLyAiMC4jIyNFMDtbMC4jIyNFMF0iCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUEFUX2xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0ID0gUEFUW2ldOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCwgVVMpOworICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIGlmIChwYXQuZXF1YWxzKHBhdDIpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rICAgUGF0dGVybiBydCBcIiIgKyBwYXQgKyAiXCIgLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFBhdHRlcm4gcnQgXCIiICsgcGF0ICsgIlwiIC4gXCIiICsgcGF0MiArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGRpZ2l0IGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdAorICAgICAgICAgICAgaWYgKGRmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpXQorICAgICAgICAgICAgICAgIHx8IGRmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpICsgMV0KKyAgICAgICAgICAgICAgICB8fCBkZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSBESUdJVFNbNCAqIGkgKyAyXQorICAgICAgICAgICAgICAgIHx8IGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICE9IERJR0lUU1s0ICogaSArIDNdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiKyBwYXQrICJcIiBtaW4vbWF4IGludDsgbWluL21heCBmcmFjID0gIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIGRmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgKyAiOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgKyAiLCBleHBlY3QgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGldICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIERJR0lUU1s0ICogaSArIDFdICsgIjsiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGkgKyAyXSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGkgKyAzXSk7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiNFMCIsIFVTKSwgMTIzNDUuMCwgIjEuMjM0NUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCAxMjM0NS4wLCAiMUU0Iik7CisgICAgCisgICAgICAgIC8vIHBhdHRlcm4gb2YgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpID0gIjAuIyMjIyMjRTAiIG5vdCAiI0UwIgorICAgICAgICAvLyBzbyByZXN1bHQgPSAxLjIzNDU2OEU0IG5vdCAxLjIzNDU2Nzg5MDFFNAorICAgICAgICAvL3doZW4gdGhlIHBhdHRlcm4gcHJvYmxlbSBpcyBmaW5hbGl6ZWQsIGRlbGV0ZSBjb21tZW50IG1hcmsnLy8nIAorICAgICAgICAvL29mIHRoZSBmb2xsb3dpbmcgY29kZQorICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSwgMTIzNDUuNjc4OTAxLCAiMS4yMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlKSAuLi4iKTsgCisgICAgICAgIGV4cGVjdDIoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlLlVTKSwgMTIzNDUuNjc4OTAxLCAiMS4yMzQ1Njc4OTAxRTQiKTsgICAgICAgIAorICAgIAorICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyNFMCIsIFVTKSwgMTIzNDUuMCwgIjEyLjM0RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksIDEyMzQ1LjAwMDAxLCAiMTIuMzVFMyIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCAxMjM0NSwgIjEyLjM0NUUzIik7CisgICAgCisgICAgICAgIC8vIHBhdHRlcm4gb2YgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpID0gIjAuIyMjIyMjRTAiIG5vdCAiI0UwIgorICAgICAgICAvLyBzbyByZXN1bHQgPSAxLjIzNDU2OEU0IG5vdCAxLjIzNDU2Nzg5MDFFNAorICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksIDEyMzQ1LjY3ODkwMSwgIjEsMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSkgLi4uIik7CisgICAgICAgIGV4cGVjdDIoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlLkZSQU5DRSksIDEyMzQ1LjY3ODkwMSwgIjEsMjM0NTY3ODkwMUU0Iik7ICAgICAgICAKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCA3ODkuMTIzNDVlLTksICI3ODkuMTJFLTkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwgNzgwLmUtOSwgIjc4MEUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwgNDU2NzguMCwgIi40NTdFNSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIuIyMjRTAiLCBVUyksIDAsICIuMEUwIik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdFtdIHsgbmV3IERlY2ltYWxGb3JtYXQoIiNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwRTAiLCBVUyksICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMEUwIiwgVVMpLCAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMDBFMCIsIFVTKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICBuZXcgTG9uZyg0NTY3ODAwMCksCisgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiNC41Njc4RTciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1LjY3OEU2IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTY3LjhFNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNUU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NkU2IiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1N0U1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNC41Njc4RTciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyNFMCIsIFVTKSwgNDU2NzgwMDAsICI0NS42NzhFNiIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDU2Ny44RTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNUU3Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMDBFMCIsIFVTKSwgNDU2NzgwMDAsICI0NkU2Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMDAwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDU3RTUiKTsKKyAgICAgICAgLyoKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTLCBzdGF0dXMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDAxMjMpLCAiMTIuM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDAwMTIzKSwgIjEyM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDAxMjMpLCAiMS4yM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDEyMyksICIxMi4zRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4xMjMpLCAiMTIzRS0zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMS4yMyksICIxLjIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMi4zKSwgIjEyLjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMyksICIxMjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzApLCAiMS4yM0UzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICEKKyAgICAgICAgISBVbnJvbGwgdGhpcyB0ZXN0IGludG8gaW5kaXZpZHVhbCB0ZXN0cyBiZWxvdy4uLgorICAgICAgICAhCisgICAgICAgICovCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAwMDAxMjMsICIxMi4zRS02Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAwMDEyMywgIjEyM0UtNiIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMC4wMDEyMywgIjEuMjNFLTMiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDEyMywgIjEyLjNFLTMiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMTIzLCAiMTIzRS0zIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxLjIzLCAiMS4yM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMi4zLCAiMTIuM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMjMuMCwgIjEyM0UwIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMjMwLjAsICIxLjIzRTMiKTsKKyAgICAgICAgLyoKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMsIHN0YXR1cyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMTIpLCAiMS4yRS0wNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9uZygxMjAwMCksICAgICAiMS4yRSswNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLCAwLjAwMDEyLCAiMS4yRS0wNCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLCAxMjAwMCwgIjEuMkUrMDQiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhZCgpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiKl4jIy4jIyIsIFVTKSwgMCwgIl5eXl4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksIC0xLjMsICJeLTEuMyIpOworICAgICAgICBleHBlY3QyKAorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjI0UwKl8gJ2ctbS9zXjInIiwgVVMpLCAKKyAgICAgICAgICAgIDAsIAorICAgICAgICAgICAgIjAuMEUwX19fX19fIGctbS9zXjIiKTsgCisgICAgICAgIGV4cGVjdCgKKyAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyNFMCpfICdnLW0vc14yJyIsIFVTKSwgCisgICAgICAgICAgICAxLjAgLyAzLCAKKyAgICAgICAgICAgICIzMzMuMzMzRS0zXyBnLW0vc14yIik7IAorICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyMqXyAnZy1tL3NeMiciLCBVUyksIDAsICIwLjBfX19fX18gZy1tL3NeMiIpOworICAgICAgICBleHBlY3QoCisgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjKl8gJ2ctbS9zXjInIiwgVVMpLCAKKyAgICAgICAgICAgIDEuMCAvIDMsIAorICAgICAgICAgICAgIjAuMzMzMzNfXyBnLW0vc14yIik7IAorICAgIAorICAgICAgICAvLyBUZXN0IHBhZGRpbmcgYmVmb3JlIGEgc2lnbgorICAgICAgICBmaW5hbCBTdHJpbmcgZm9ybWF0U3RyID0gIip4IywjIyMsIyMjLCMjMC4wIzsqeCgjIyMsIyMjLCMjMC4wIykiOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTAsICJ4eHh4eHh4eHh4KDEwLjApIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAwLCAieHh4eHh4eCgxLDAwMC4wKSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTAwMDAwMCwgInh4eCgxLDAwMCwwMDAuMCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwMC4zNywgInh4eHh4eHh4KDEwMC4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwNDU2LjM3LCAieHh4eHgoMTAsNDU2LjM3KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTEyMDQ1Ni4zNywgInh4KDEsMTIwLDQ1Ni4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTExMjA0NTYwMC4zNywgIigxMTIsMDQ1LDYwMC4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEyNTIwNDU2MDAuMzcsICIoMSwyNTIsMDQ1LDYwMC4zNykiKTsKKyAgICAKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTAsICJ4eHh4eHh4eHh4eHgxMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMDAsICJ4eHh4eHh4eHgxLDAwMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMDAwMDAsICJ4eHh4eDEsMDAwLDAwMC4wIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMC4zNywgInh4eHh4eHh4eHgxMDAuMzciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTA0NTYuMzcsICJ4eHh4eHh4MTAsNDU2LjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDExMjA0NTYuMzcsICJ4eHh4MSwxMjAsNDU2LjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDExMjA0NTYwMC4zNywgInh4MTEyLDA0NSw2MDAuMzciKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTAyNTIwNDU2MDAuMzcsICIxMCwyNTIsMDQ1LDYwMC4zNyIpOworICAgIAorICAgICAgICAvLyBUZXN0IHBhZGRpbmcgYmV0d2VlbiBhIHNpZ24gYW5kIGEgbnVtYmVyCisgICAgICAgIGZpbmFsIFN0cmluZyBmb3JtYXRTdHIyID0gIiMsIyMjLCMjIywjIzAuMCMqeDsoIyMjLCMjIywjIzAuMCMqeCkiOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwLCAiKDEwLjB4eHh4eHh4eHh4KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwMDAsICIoMSwwMDAuMHh4eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTAwMDAwMCwgIigxLDAwMCwwMDAuMHh4eCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMDAuMzcsICIoMTAwLjM3eHh4eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTA0NTYuMzcsICIoMTAsNDU2LjM3eHh4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTEyMDQ1Ni4zNywgIigxLDEyMCw0NTYuMzd4eCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMTIwNDU2MDAuMzcsICIoMTEyLDA0NSw2MDAuMzcpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTI1MjA0NTYwMC4zNywgIigxLDI1MiwwNDUsNjAwLjM3KSIpOyAKKyAgICAKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDEwLCAiMTAuMHh4eHh4eHh4eHh4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwMCwgIjEsMDAwLjB4eHh4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDEwMDAwMDAsICIxLDAwMCwwMDAuMHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDAuMzcsICIxMDAuMzd4eHh4eHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDQ1Ni4zNywgIjEwLDQ1Ni4zN3h4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDExMjA0NTYuMzcsICIxLDEyMCw0NTYuMzd4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMTIwNDU2MDAuMzcsICIxMTIsMDQ1LDYwMC4zN3h4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDI1MjA0NTYwMC4zNywgIjEwLDI1MiwwNDUsNjAwLjM3Iik7CisgICAgCisgICAgICAgIC8vdGVzdGluZyB0aGUgc2V0UGFkQ2hhcmFjdGVyKFVuaWNvZGVTdHJpbmcpIGFuZCBnZXRQYWRDaGFyYWN0ZXJTdHJpbmcoKQorICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgICAgICBjaGFyIHBhZFN0cmluZyA9ICdQJzsKKyAgICAgICAgZm10LnNldFBhZENoYXJhY3RlcihwYWRTdHJpbmcpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiKlAjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDUsIHBhZFN0cmluZyk7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsICdeJyk7CisgICAgICAgIC8vY29tbWVudGVkIHVudGlsbCBpbXBsZW1lbnRhdGlvbiBpcyBjb21wbGV0ZQorICAgICAgICAvKiAgZm10LnNldFBhZENoYXJhY3RlcigoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeXl4jIiwgRGVjaW1hbEZvcm1hdC5rUGFkQmVmb3JlUHJlZml4LCAzLCAoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgcGFkU3RyaW5nLnJlbW92ZSgpOworICAgICAgICAgIHBhZFN0cmluZy5hcHBlbmQoKFVDaGFyKTB4MDA2MSk7CisgICAgICAgICAgcGFkU3RyaW5nLmFwcGVuZCgoVUNoYXIpMHgwMzAyKTsKKyAgICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKHBhZFN0cmluZyk7CisgICAgICAgICAgVUNoYXIgcGF0dGVybkNoYXJzW109ezB4MDAyYSwgMHgwMDYxLCAweDAzMDIsIDB4MDA2MSwgMHgwMzAyLCAweDAwMjMsIDB4MDAwMH07CisgICAgICAgICAgVW5pY29kZVN0cmluZyBwYXR0ZXJuKHBhdHRlcm5DaGFycyk7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0dGVybiAsIERlY2ltYWxGb3JtYXQua1BhZEJlZm9yZVByZWZpeCwgNCwgcGFkU3RyaW5nKTsKKyAgICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgIAorICAgICAgICBjaGFyIGhhdCA9IDB4MDA1RTsgLypeKi8KKyAgICAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4jIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYLCAyLCBoYXQpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIypeIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMSwgaGF0KTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4iLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgsIDIsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4kIyIsIC0xKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4kIiwgLTEpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJ3ByZScjLCMjMCp4J3Bvc3QnIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMTIsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIicnIzAqeCIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDMsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidJJydsbCcqYSMjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMTAsIChjaGFyKSAweDAwNjEgLyphKi8pOyAKKyAgICAKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiQUEjLCMjMC4wMFpaIik7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoaGF0KTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEwKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiKl5BQSMsIyMwLjAwWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMCpeWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwWloqXiIpOworICAgIAorICAgICAgICAvLyAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyCisgICAgICAgIFN0cmluZyBleHAgPSAiQUEqXiMsIyMwLjAwWloiOworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTIpOworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgZXhwKTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEzKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNCk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNSk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0NQorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIyMsIyMwLjAwWloiKTsgLy8gVGhpcyBpcyB0aGUgaW50ZXJlc3RpbmcgY2FzZQorICAgIAorICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTYpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDU2CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIywjIyMsIyMwLjAwWloiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0cmF0aW9uKCkgeworICAgICAgICBmaW5hbCBVTG9jYWxlIFNSQ19MT0MgPSBVTG9jYWxlLkZSQU5DRTsKKyAgICAgICAgZmluYWwgVUxvY2FsZSBTV0FQX0xPQyA9IFVMb2NhbGUuVVM7CisKKyAgICAgICAgY2xhc3MgVGVzdEZhY3RvcnkgZXh0ZW5kcyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBjdXJyZW5jeVN0eWxlOworCisgICAgICAgICAgICBUZXN0RmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihTUkNfTE9DLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBjdXJyZW5jeVN0eWxlID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTV0FQX0xPQyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KFVMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRUeXBlID09IEZPUk1BVF9DVVJSRU5DWSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVuY3lTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBmMCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1dBUF9MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjEgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgT2JqZWN0IGtleSA9IE51bWJlckZvcm1hdC5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RGYWN0b3J5KCkpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjMgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY0ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIoa2V5KTsgLy8gcmVzdG9yZSBmb3Igb3RoZXIgdGVzdHMKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY1ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisKKyAgICAgICAgZmxvYXQgbiA9IDEyMzQuNTY3ZjsKKyAgICAgICAgbG9nbG4oImYwIHN3YXAgaW50OiAiICsgZjAuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYxIHNyYyBpbnQ6ICIgKyBmMS5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjIgc3JjIGN1cjogIiArIGYyLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMyByZWcgY3VyOiAiICsgZjMuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImY0IHJlZyBpbnQ6ICIgKyBmNC5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjUgdW5yZWcgY3VyOiAiICsgZjUuZm9ybWF0KG4pKTsKKworICAgICAgICBpZiAoIWYzLmZvcm1hdChuKS5lcXVhbHMoZjAuZm9ybWF0KG4pKSkgeworICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNC5mb3JtYXQobikuZXF1YWxzKGYxLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBpbmhlcml0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNS5mb3JtYXQobikuZXF1YWxzKGYyLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIG9yaWdpbmFsIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpYzIoKSB7CisgICAgICAgIC8vIGpiIDI1NTIKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworICAgICAgICBOdW1iZXIgbnVtID0gbmV3IERvdWJsZSgxMi4zNCk7CisgICAgICAgIGV4cGVjdChmbXQsIG51bSwgIiQxMi4zNCIpOworICAgICAgICBmbXQuc2V0U2NpZW50aWZpY05vdGF0aW9uKHRydWUpOworICAgICAgICBleHBlY3QoZm10LCBudW0sICIkMS4yM0UxIik7CisgICAgICAgIGZtdC5zZXRTY2llbnRpZmljTm90YXRpb24oZmFsc2UpOworICAgICAgICBleHBlY3QoZm10LCBudW0sICIkMTIuMzQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NpZW50aWZpY0dyb3VwaW5nKCkgeworICAgICAgICAvLyBqYiAyNTUyCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIy4jI0UwIik7CisgICAgICAgIGV4cGVjdChmbXQsIC4wMTIzNCwgIjEyLjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgLjEyMzQsICIxMjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMS4yMzQsICIxLjIzRTAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMTIuMzQsICIxMi4zRTAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMTIzLjQsICIxMjNFMCIpOworICAgICAgICBleHBlY3QoZm10LCAxMjM0LCAiMS4yM0UzIik7CisgICAgfQorCisgICAgLy8gYWRkaXRpb25hbCBjb3ZlcmFnZSB0ZXN0cworICAgIAorICAgIC8vIHNpZ2gsIGNhbid0IGhhdmUgc3RhdGljIGlubmVyIGNsYXNzZXMsIHdoeSBub3Q/CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgUEkgZXh0ZW5kcyBOdW1iZXIgeworICAgICAgICBwcml2YXRlIFBJKCkge30KKyAgICAgICAgcHVibGljIGludCBpbnRWYWx1ZSgpIHsgcmV0dXJuIChpbnQpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgbG9uZyBsb25nVmFsdWUoKSB7IHJldHVybiAobG9uZylNYXRoLlBJOyB9CisgICAgICAgIHB1YmxpYyBmbG9hdCAgZmxvYXRWYWx1ZSgpIHsgcmV0dXJuIChmbG9hdClNYXRoLlBJOyB9CisgICAgICAgIHB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKSB7IHJldHVybiAoZG91YmxlKU1hdGguUEk7IH0KKyAgICAgICAgcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gKGJ5dGUpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgc2hvcnQgc2hvcnRWYWx1ZSgpIHsgcmV0dXJuIChzaG9ydClNYXRoLlBJOyB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBOdW1iZXIgSU5TVEFOQ0UgPSBuZXcgUEkoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKTsgLy8gZGVmYXVsdCBsb2NhbGUKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChuZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5MDk4NzY1NDMyMTIzNDU2Nzg5MDk4NzY1NDMyMSIsIDEwKSkpOworCisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoKTsgLy8gZGVmYXVsdCBsb2NhbGUKKworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KFBJLklOU1RBTkNFKSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoIjEyMzQ1IikpOworICAgICAgICAgICAgZXJybG4oIm51bWJlcmZvcm1hdCBvZiBzdHJpbmcgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBudW1iZXJmb3JtYXQgb2Ygc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGhhc2ggPSBmbXQuaGFzaENvZGUoKTsKKworICAgICAgICBsb2dsbigiY29tcGFyZSB0byBzdHJpbmcgcmV0dXJuczogIiArIGZtdC5lcXVhbHMoIiIpKTsKKworICAgICAgICAvLyBGb3IgSUNVIDIuNiAtIGFsYW4KKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCInKiYnJyAnXHUwMEE0JyAnJyYqJyAjLCMjMC4wMCIsIFVTKTsKKyAgICAgICAgZGYuc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIklOUiIpKTsKKyAgICAgICAgZXhwZWN0MihkZiwgMS4wLCAiKiYnIFJlLiAnJiogMS4wMCIpOworICAgICAgICBleHBlY3QyKGRmLCAtMi4wLCAiLSomJyBScy4gJyYqIDIuMDAiKTsKKyAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIjLCMjMC4wMCAnKiYnJyAnXHUwMEE0JyAnJyYqJyIpOworICAgICAgICBleHBlY3QyKGRmLCAyLjAsICIyLjAwIComJyBScy4gJyYqIik7CisgICAgICAgIGV4cGVjdDIoZGYsIC0xLjAsICItMS4wMCAqJicgUmUuICcmKiIpOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbCByID0gZGYuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByID0gZGYuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKTsKKy8vI2VuZGlmCisgICAgICAgIGlmIChyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiByb3VuZGluZyA9ICIgKyByICsgIiwgZXhwZWN0IG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGRmLmlzU2NpZW50aWZpY05vdGF0aW9uKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpc1NjaWVudGlmaWNOb3RhdGlvbiA9IHRydWUsIGV4cGVjdCBmYWxzZSIpOworICAgICAgICB9CisKKyAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIwLjAwMDAwIik7CisgICAgICAgIGRmLnNldFNjaWVudGlmaWNOb3RhdGlvbih0cnVlKTsKKyAgICAgICAgaWYgKCFkZi5pc1NjaWVudGlmaWNOb3RhdGlvbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaXNTY2llbnRpZmljTm90YXRpb24gPSBmYWxzZSwgZXhwZWN0IHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBkZi5zZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKGJ5dGUpMik7CisgICAgICAgIGlmIChkZi5nZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzID0gIiArCisgICAgICAgICAgICAgICAgICBkZi5nZXRNaW5pbXVtRXhwb25lbnREaWdpdHMoKSArICIsIGV4cGVjdCAyIik7CisgICAgICAgIH0KKyAgICAgICAgZGYuc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGlmICghZGYuaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaXNFeHBvbmVudFNpZ25BbHdheXNTaG93biA9IGZhbHNlLCBleHBlY3QgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIGRmLnNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgwKTsKKyAgICAgICAgaWYgKGRmLmdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRTZWNvbmRhcnlHcm91cGluZ1NpemUgPSAiICsKKyAgICAgICAgICAgICAgICAgIGRmLmdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSgpICsgIiwgZXhwZWN0IDAiKTsKKyAgICAgICAgfQorICAgICAgICBleHBlY3QyKGRmLCAzLjE0MTU5LCAiMy4xNDE1OUUrMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0V2hpdGVTcGFjZVBhcnNpbmcoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoImEgIGIjMGMgICIsIFVTKTsKKyAgICAgICAgaW50IG4gPSAxMjM0OworICAgICAgICBleHBlY3QoZm10LCAiYSBiMTIzNGMgIiwgbik7CisgICAgICAgIGV4cGVjdChmbXQsICJhICAgYjEyMzRjICAgIiwgbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXJyZW5jaWVzIHdob3NlIGRpc3BsYXkgbmFtZSBpcyBhIENob2ljZUZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGxleEN1cnJlbmN5KCkgeworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiSU4iLCAiIik7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2MpOworCisgICAgICAgIGV4cGVjdDIoZm10LCAxLjAsICJSZS4gMS4wMCIpOworICAgICAgICBleHBlY3QoZm10LCAxLjAwMSwgIlJlLiAxLjAwIik7IC8vIHRyaWNreQorICAgICAgICBleHBlY3QyKGZtdCwgMTIzNDU2NzguMCwgIlJzLiAxLDIzLDQ1LDY3OC4wMCIpOworICAgICAgICBleHBlY3QyKGZtdCwgMC41LCAiUnMuIDAuNTAiKTsKKyAgICAgICAgZXhwZWN0MihmbXQsIC0xLjAsICItUmUuIDEuMDAiKTsKKyAgICAgICAgZXhwZWN0MihmbXQsIC0xMC4wLCAiLVJzLiAxMC4wMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeUtleXdvcmQoKSB7CisgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZSgidGhfVEhAY3VycmVuY3k9UVFRIik7CisgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoMTIuMzRmKTsKKyAgICBpZiAoISJRUVExMi4zNCIuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgZXJybG4oImdvdCB1bmV4cGVjdGVkIGN1cnJlbmN5OiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaHJlYWRlZEZvcm1hdCgpIHsKKworICAgICAgICBjbGFzcyBGb3JtYXRUYXNrIGltcGxlbWVudHMgUnVubmFibGUgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQ7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmOworICAgICAgICAgICAgYm9vbGVhbiBpbmM7CisgICAgICAgICAgICBmbG9hdCBudW07CisKKyAgICAgICAgICAgIEZvcm1hdFRhc2soRGVjaW1hbEZvcm1hdCBmbXQsIGludCBpbmRleCkgeworICAgICAgICAgICAgICAgIHRoaXMuZm10ID0gZm10OworICAgICAgICAgICAgICAgIHRoaXMuYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHRoaXMuaW5jID0gKGluZGV4ICYgMHgxKSA9PSAwOworICAgICAgICAgICAgICAgIHRoaXMubnVtID0gaW5jID8gMCA6IDEwMDAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgIGlmIChpbmMpIHsKKyAgICAgICAgICAgIHdoaWxlIChudW0gPCAxMDAwMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChmbXQuZm9ybWF0KG51bSkgKyAiXG4iKTsKKyAgICAgICAgICAgIG51bSArPSAzLjE0MTU5OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKG51bSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm10LmZvcm1hdChudW0pICsgIlxuIik7CisgICAgICAgICAgICBudW0gLT0gMy4xNDE1OTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHJlc3VsdCgpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjIyIpOworICAgICAgICBGb3JtYXRUYXNrW10gdGFza3MgPSBuZXcgRm9ybWF0VGFza1s4XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YXNrcy5sZW5ndGg7ICsraSkgeworICAgICAgICB0YXNrc1tpXSA9IG5ldyBGb3JtYXRUYXNrKGZtdCwgaSk7CisgICAgfQorCisgICAgVGVzdFV0aWwucnVuVW50aWxEb25lKHRhc2tzKTsKKworICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8IHRhc2tzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIFN0cmluZyBzdHIxID0gdGFza3NbaV0ucmVzdWx0KCk7CisgICAgICAgIFN0cmluZyBzdHIyID0gdGFza3NbaS0yXS5yZXN1bHQoKTsKKyAgICAgICAgICAgIGlmICghc3RyMS5lcXVhbHMoc3RyMikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pc21hdGNoIGF0ICIgKyBpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RyMSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0cjIpOworICAgICAgICAgICAgICAgIGVycmxuKCJkZWNpbWFsIGZvcm1hdCB0aHJlYWQgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cjEgPSBzdHIyOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBlck1pbGwoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjIy4jIyNcdTIwMzAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIwLjQ4NTcgeCAjIyMuIyMjXHUyMDMwIiwKKyAgICAgICAgICAgICAgICAgICAgICI0ODUuN1x1MjAzMCIsIGZtdC5mb3JtYXQoMC40ODU3KSk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgc3ltLnNldFBlck1pbGwoJ20nKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQyID0gbmV3IERlY2ltYWxGb3JtYXQoIiIsIHN5bSk7CisgICAgICAgIGZtdDIuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCIjIyMuIyMjbSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjAuNDg1NyB4ICMjIy4jIyNtIiwKKyAgICAgICAgICAgICAgICAgICAgICI0ODUuN20iLCBmbXQyLmZvcm1hdCgwLjQ4NTcpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SWxsZWdhbFBhdHRlcm5zKCkgeworICAgICAgICAvLyBUZXN0IGNhc2VzOgorICAgICAgICAvLyBQcmVmaXggd2l0aCAiLToiIGZvciBpbGxlZ2FsIHBhdHRlcm5zCisgICAgICAgIC8vIFByZWZpeCB3aXRoICIrOiIgZm9yIGxlZ2FsIHBhdHRlcm5zCisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBVbnF1b3RlZCBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIHN1ZmZpeCBhcmUgaWxsZWdhbAorICAgICAgICAgICAgIi06MDAwLjAwMHwjIyMiLAorICAgICAgICAgICAgIis6MDAwLjAwMCd8IyMjJyIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0PURBVEFbaV07CisgICAgICAgICAgICBib29sZWFuIHZhbGlkID0gcGF0LmNoYXJBdCgwKSA9PSAnKyc7CisgICAgICAgICAgICBwYXQgPSBwYXQuc3Vic3RyaW5nKDIpOworICAgICAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBsb2NhbGUgZG9lc24ndCBtYXR0ZXIgaGVyZQorICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICBlID0gZTE7CisgICAgICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgZSA9IGUxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIG1zZyA9IChlPT1udWxsKSA/ICJzdWNjZXNzIiA6IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgaWYgKChlPT1udWxsKSA9PSB2YWxpZCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogcGF0dGVybiBcIiIgKyBwYXQgKyAiXCI6ICIgKyBtc2cpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogcGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgc2hvdWxkIGhhdmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkPyJzdWNjZWVkZWQiOiJmYWlsZWQiKSArICI7IGdvdCAiICsgbXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgQ3VycmVuY3lBbW91bnQgdXNpbmcgdGhlIGdpdmVuIE51bWJlckZvcm1hdCwgd2l0aAorICAgICAqIHRoZSAnZGVsaW0nIGNoYXJhY3RlciBzZXBhcmF0aW5nIHRoZSBudW1iZXIgYW5kIHRoZSBjdXJyZW5jeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBDdXJyZW5jeUFtb3VudCBwYXJzZUN1cnJlbmN5QW1vdW50KFN0cmluZyBzdHIsIE51bWJlckZvcm1hdCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlbGltKSAKKyAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGkgPSBzdHIuaW5kZXhPZihkZWxpbSk7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3lBbW91bnQoZm10LnBhcnNlKHN0ci5zdWJzdHJpbmcoMCxpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3RyLnN1YnN0cmluZyhpKzEpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBuZXh0IHRva2VuIGZyb20gdGhpcworICAgICAqIGl0ZXJhdG9yLiAgVGhlIGludGVnZXIgd2lsbCBiZSBhbiBpbmRleCBpbnRvIHRoZSBnaXZlbiBsaXN0LCBvcgorICAgICAqIC0xIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRva2Vucywgb3IgLTIgaWYgdGhlIHRva2VuIGlzIG5vdCBvbgorICAgICAqIHRoZSBsaXN0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBrZXl3b3JkSW5kZXgoU3RyaW5nIHRvaykgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8S0VZV09SRFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0b2suZXF1YWxzKEtFWVdPUkRTW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZV09SRFNbXSA9IHsKKyAgICAgICAgLyowKi8gInJlZj0iLCAvLyA8cmVmZXJlbmNlIHBhdHRlcm4gdG8gcGFyc2UgbnVtYmVycz4KKyAgICAgICAgLyoxKi8gImxvYz0iLCAvLyA8bG9jYWxlIGZvciBmb3JtYXRzPgorICAgICAgICAvKjIqLyAiZjoiLCAgIC8vIDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPgorICAgICAgICAvKjMqLyAiZnA6IiwgIC8vIDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgIC8qNCovICJydDoiLCAgLy8gPHBhdHRlcm4gb3IgJy0nPiA8KGV4cC4pIG51bWJlcj4gPChleHAuKSBzdHJpbmc+CisgICAgICAgIC8qNSovICJwOiIsICAgLy8gPHBhdHRlcm4gb3IgJy0nPiA8c3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgIC8qNiovICJwZXJyOiIsIC8vIDxwYXR0ZXJuIG9yICctJz4gPGludmFsaWQgc3RyaW5nPgorICAgICAgICAvKjcqLyAicGF0OiIsIC8vIDxwYXR0ZXJuIG9yICctJz4gPGV4cC4gdG9QYXR0ZXJuIG9yICctJyBvciAnZXJyJz4KKyAgICAgICAgLyo4Ki8gImZwYzoiLCAvLyA8bG9jIG9yICctJz4gPGN1cnIuYW10PiA8ZXhwLiBzdHJpbmc+IDxleHAuIGN1cnIuYW10PgorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKSB7CisgICAgICAgIFN0cmluZyBjYXNlRmlsZU5hbWUgPSAiTnVtYmVyRm9ybWF0VGVzdENhc2VzLnR4dCI7CisgICAgICAgIGphdmEuaW8uSW5wdXRTdHJlYW0gaXMgPSBOdW1iZXJGb3JtYXRUZXN0LmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oY2FzZUZpbGVOYW1lKTsKKworICAgICAgICBSZXNvdXJjZVJlYWRlciByZWFkZXIgPSBuZXcgUmVzb3VyY2VSZWFkZXIoaXMsIGNhc2VGaWxlTmFtZSk7CisgICAgICAgIFRva2VuSXRlcmF0b3IgdG9rZW5zID0gbmV3IFRva2VuSXRlcmF0b3IocmVhZGVyKTsKKworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgcmVmID0gbnVsbCwgZm10ID0gbnVsbDsKKyAgICAgICAgTWVhc3VyZUZvcm1hdCBtZm10ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHBhdCA9IG51bGwsIHN0ciA9IG51bGwsIG1sb2MgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRvayA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRvayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgd2hlcmUgPSAiKCIgKyB0b2tlbnMuZ2V0TGluZU51bWJlcigpICsgIikgIjsKKyAgICAgICAgICAgICAgICBpbnQgY21kID0ga2V5d29yZEluZGV4KHRvayk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjbWQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlZj0gPHJlZmVyZW5jZSBwYXR0ZXJuPgorICAgICAgICAgICAgICAgICAgICByZWYgPSBuZXcgRGVjaW1hbEZvcm1hdCh0b2tlbnMubmV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9jPSA8bG9jYWxlPgorICAgICAgICAgICAgICAgICAgICBsb2MgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKHRva2Vucy5uZXh0KCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDI6IC8vIGY6CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBmcDoKKyAgICAgICAgICAgICAgICBjYXNlIDQ6IC8vIHJ0OgorICAgICAgICAgICAgICAgIGNhc2UgNTogLy8gcDoKKyAgICAgICAgICAgICAgICAgICAgdG9rID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2suZXF1YWxzKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdCA9IHRvazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAiUGF0dGVybiBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlhZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOyAvLyBjb25zdW1lIHJlbWFpbmluZyB0b2tlbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgPT0gMykgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdHIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCA9PSAyIHx8IGNtZCA9PSAzIHx8IGNtZCA9PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZjogPHBhdHRlcm4gb3IgJy0nPiA8bnVtYmVyPiA8ZXhwLiBzdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnA6IDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPiA8ZXhwLiBudW1iZXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnQ6IDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPHN0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbnVtID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciBuID0gKE51bWJlcikgcmVmLnBhcnNlKG51bSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgJyInICsgcGF0ICsgIlwiLmZvcm1hdCgiICsgbnVtICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIsIGZtdC5mb3JtYXQobikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgPT0gMykgeyAvLyBmcDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9IChOdW1iZXIpIHJlZi5wYXJzZSh0b2tlbnMubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCAhPSAyKSB7IC8vICE9IGY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKyAiXCIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sIGZtdC5wYXJzZShzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcDogPHBhdHRlcm4gb3IgJy0nPiA8c3RyaW5nIHRvIHBhcnNlPiA8ZXhwLiBudW1iZXI+CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciBleHAgPSAoTnVtYmVyKSByZWYucGFyc2UoZXhwc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMod2hlcmUgKyAnIicgKyBwYXQgKyAiXCIucGFyc2UoXCIiICsgc3RyICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cCwgZm10LnBhcnNlKHN0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiKSB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgICAgICAvLyBwZXJyOiA8cGF0dGVybiBvciAnLSc+IDxpbnZhbGlkIHN0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVuZGVyIGNvbnN0cnVjdGlvbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAvLyBwYXQ6IDxwYXR0ZXJuPiA8ZXhwLiB0b1BhdHRlcm4sIG9yICctJyBvciAnZXJyJz4KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RwYXQgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwcGF0ICA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXJyICAgID0gZXhwcGF0LmVxdWFscygiZXJyIik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0cGF0LmVxdWFscygiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgY29tbWFuZCBcInBhdDogLSBlcnJcIiBhdCAiICsgIHRva2Vucy5kZXNjcmliZVBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHBhdCA9IHBhdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZXhwcGF0LmVxdWFscygiLSIpKSBleHBwYXQgPSB0ZXN0cGF0OworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0cGF0ID09IHBhdCkgeyAvLyBbc2ljXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBmbXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBuZXcgRGVjaW1hbEZvcm1hdCh0ZXN0cGF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJJbnZhbGlkIHBhdHRlcm4gXCIiICsgdGVzdHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIHdhcyBhY2NlcHRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMod2hlcmUgKyAnIicgKyB0ZXN0cGF0ICsgIlwiLnRvUGF0dGVybigpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcGF0LCBmLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB3aGVyZSArICJJbnZhbGlkIHBhdHRlcm4gXCIiICsgdGVzdHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJWYWxpZCBwYXR0ZXJuIFwiIiArIHRlc3RwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYWUyLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgODogLy8gZnBjOgorICAgICAgICAgICAgICAgICAgICB0b2sgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvay5lcXVhbHMoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWxvYyA9IHRvazsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbCA9IG5ldyBVTG9jYWxlKG1sb2MpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm10ID0gTWVhc3VyZUZvcm1hdC5nZXRDdXJyZW5jeUZvcm1hdChsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICJMb2MgXCIiICsgdG9rICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsgLy8gY29uc3VtZSByZW1haW5pbmcgdG9rZW5zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0ciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcGM6IDxsb2Mgb3IgJy0nPiA8Y3Vyci5hbXQ+IDxleHAuIHN0cmluZz4gPGV4cC4gY3Vyci5hbXQ+CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VyckFtdCA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQgbiA9IHBhcnNlQ3VycmVuY3lBbW91bnQoY3VyckFtdCwgcmVmLCAnLycpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgImdldEN1cnJlbmN5Rm9ybWF0KCIgKyBtbG9jICsgIikuZm9ybWF0KCIgKyBjdXJyQW10ICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciwgbWZtdC5mb3JtYXQobikpOworICAgICAgICAgICAgICAgICAgICAgICAgbiA9IHBhcnNlQ3VycmVuY3lBbW91bnQodG9rZW5zLm5leHQoKSwgcmVmLCAnLycpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgImdldEN1cnJlbmN5Rm9ybWF0KCIgKyBtbG9jICsgIikucGFyc2UoXCIiICsgc3RyICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwgKEN1cnJlbmN5QW1vdW50KSBtZm10LnBhcnNlT2JqZWN0KHN0cikpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbih3aGVyZSArICciJyArIHBhdCArICJcIi5wYXJzZShcIiIgKyBzdHIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiKSB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAtMToKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVua25vd24gY29tbWFuZCBcIiIgKyB0b2sgKyAiXCIgYXQgIiArIHRva2Vucy5kZXNjcmliZVBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChqYXZhLmlvLklPRXhjZXB0aW9uIGUpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRpbmcoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSAoRGVjaW1hbEZvcm1hdCkgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoVUxvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgaWYgKGZhbHNlKSB7IC8vIGZvciBkZWJ1Z2dpbmcgc3BlY2lmaWMgdmFsdWUKKyAgICAgICAgICAgIG5mLnNldFJvdW5kaW5nTW9kZShCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApOworICAgICAgICAgICAgY2hlY2tSb3VuZGluZyhuZiwgbmV3IEJpZ0RlY2ltYWwoIjMwMC4wMzAwMDAwMDAwIiksIDAsIG5ldyBCaWdEZWNpbWFsKCIwLjAyMDAwMDAwMCIpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmdWxsIHRlc3RzCisgICAgICAgIGludFtdIHJvdW5kaW5nSW5jcmVtZW50cyA9IHsxLCAyLCA1LCAyMCwgNTAsIDEwMH07CisgICAgICAgIGludFtdIHRlc3RWYWx1ZXMgPSB7MCwgMzAwfTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0VmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBmb3IgKGludCBtb2RlID0gQmlnRGVjaW1hbC5ST1VORF9VUDsgbW9kZSA8IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOyArK21vZGUpIHsgCisgICAgICAgICAgICAgICAgbmYuc2V0Um91bmRpbmdNb2RlKG1vZGUpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGluY3JlbWVudCA9IDA7IGluY3JlbWVudCA8IHJvdW5kaW5nSW5jcmVtZW50cy5sZW5ndGg7ICsraW5jcmVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmFzZSA9IG5ldyBCaWdEZWNpbWFsKHRlc3RWYWx1ZXNbal0pOworICAgICAgICAgICAgICAgICAgICBCaWdEZWNpbWFsIHJJbmMgPSBuZXcgQmlnRGVjaW1hbChyb3VuZGluZ0luY3JlbWVudHNbaW5jcmVtZW50XSk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrUm91bmRpbmcobmYsICBiYXNlLCAyMCwgckluYyk7CisgICAgICAgICAgICAgICAgICAgIHJJbmMgPSBuZXcgQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAiKS5kaXZpZGUockluYyk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrUm91bmRpbmcobmYsICBiYXNlLCAyMCwgckluYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjaGVja1JvdW5kaW5nKERlY2ltYWxGb3JtYXQgbmYsIEJpZ0RlY2ltYWwgYmFzZSwgaW50IGl0ZXJhdGlvbnMsIEJpZ0RlY2ltYWwgaW5jcmVtZW50KSB7CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgICAgICBuZi5zZXRSb3VuZGluZ0luY3JlbWVudChpbmNyZW1lbnQpOworLy8jZWxzZQorICAgICAgICBuZi5zZXRSb3VuZGluZ0luY3JlbWVudChpbmNyZW1lbnQudG9CaWdEZWNpbWFsKCkpOworLy8jZW5kaWYKKyAgICAgICAgQmlnRGVjaW1hbCBsYXN0UGFyc2VkID0gbmV3IEJpZ0RlY2ltYWwoSW50ZWdlci5NSU5fVkFMVUUpOyAvLyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHJvdW5kaW5nIGlzIG1vbm90b25pYworICAgICAgICBmb3IgKGludCBpID0gLWl0ZXJhdGlvbnM7IGkgPD0gaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGlWYWx1ZSA9IGJhc2UuYWRkKGluY3JlbWVudC5tdWx0aXBseShuZXcgQmlnRGVjaW1hbChpKSkubW92ZVBvaW50TGVmdCgxKSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIHNtYWxsSW5jcmVtZW50ID0gbmV3IEJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKTsKKyAgICAgICAgICAgIGlmIChpVmFsdWUuc2lnbnVtKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHNtYWxsSW5jcmVtZW50Lm11bHRpcGx5KGlWYWx1ZSk7IC8vIHNjYWxlIHVubGVzcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBub3Qgb25seSB0ZXN0IHRoZSB2YWx1ZSwgYnV0IHNvbWUgdmFsdWVzIGluIGEgc21hbGwgcmFuZ2UgYXJvdW5kIGl0LgorICAgICAgICAgICAgbGFzdFBhcnNlZCA9IGNoZWNrUm91bmQobmYsIGlWYWx1ZS5zdWJ0cmFjdChzbWFsbEluY3JlbWVudCksIGxhc3RQYXJzZWQpOworICAgICAgICAgICAgbGFzdFBhcnNlZCA9IGNoZWNrUm91bmQobmYsIGlWYWx1ZSwgbGFzdFBhcnNlZCk7CisgICAgICAgICAgICBsYXN0UGFyc2VkID0gY2hlY2tSb3VuZChuZiwgaVZhbHVlLmFkZChzbWFsbEluY3JlbWVudCksIGxhc3RQYXJzZWQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBCaWdEZWNpbWFsIGNoZWNrUm91bmQoRGVjaW1hbEZvcm1hdCBuZiwgQmlnRGVjaW1hbCBpVmFsdWUsIEJpZ0RlY2ltYWwgbGFzdFBhcnNlZCkgeworICAgICAgICBTdHJpbmcgZm9ybWF0ZWRCaWdEZWNpbWFsID0gbmYuZm9ybWF0KGlWYWx1ZSk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZWREb3VibGUgPSBuZi5mb3JtYXQoaVZhbHVlLmRvdWJsZVZhbHVlKCkpOworICAgICAgICBpZiAoIWVxdWFsQnV0Rm9yVHJhaWxpbmdaZXJvcyhmb3JtYXRlZEJpZ0RlY2ltYWwsIGZvcm1hdHRlZERvdWJsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0OiAiICsgaVZhbHVlICsgIiAoIiArIGlWYWx1ZS5kb3VibGVWYWx1ZSgpICsgIikiCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlZhbHVlOiAiICsgaVZhbHVlCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBOdW1iZXIgc2hvdWxkIGhhdmUgY29tcGFyZVRvKC4uLikKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgcGFyc2VkID0gdG9CaWdEZWNpbWFsKG5mLnBhcnNlKGZvcm1hdGVkQmlnRGVjaW1hbCkpOworICAgICAgICAgICAgaWYgKGxhc3RQYXJzZWQuY29tcGFyZVRvKHBhcnNlZCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kaW5nIHdyb25nIGRpcmVjdGlvbiE6ICIgKyBsYXN0UGFyc2VkICsgIiA+ICIgKyBwYXJzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFBhcnNlZCA9IHBhcnNlZDsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIEZhaWx1cmUgd2l0aDogIiArIGZvcm1hdGVkQmlnRGVjaW1hbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3RQYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKE51bWJlciBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlciBpbnN0YW5jZW9mIEJpZ0RlY2ltYWwgPyAoQmlnRGVjaW1hbCkgbnVtYmVyCisgICAgICAgICAgICA6IG51bWJlciBpbnN0YW5jZW9mIEJpZ0ludGVnZXIgPyBuZXcgQmlnRGVjaW1hbCgoQmlnSW50ZWdlciludW1iZXIpCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgOiBudW1iZXIgaW5zdGFuY2VvZiBqYXZhLm1hdGguQmlnRGVjaW1hbCA/IG5ldyBCaWdEZWNpbWFsKChqYXZhLm1hdGguQmlnRGVjaW1hbCludW1iZXIpCisvLyNlbmRpZgorICAgICAgICAgICAgOiBudW1iZXIgaW5zdGFuY2VvZiBEb3VibGUgPyBuZXcgQmlnRGVjaW1hbChudW1iZXIuZG91YmxlVmFsdWUoKSkKKyAgICAgICAgICAgIDogbnVtYmVyIGluc3RhbmNlb2YgRmxvYXQgPyBuZXcgQmlnRGVjaW1hbChudW1iZXIuZmxvYXRWYWx1ZSgpKQorICAgICAgICAgICAgOiBuZXcgQmlnRGVjaW1hbChudW1iZXIubG9uZ1ZhbHVlKCkpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdbXSByb3VuZGluZ01vZGVOYW1lcyA9IHsKKyAgICAgICAgIlJPVU5EX1VQIiwgIlJPVU5EX0RPV04iLCAiUk9VTkRfQ0VJTElORyIsICJST1VORF9GTE9PUiIsCisgICAgICAgICJST1VORF9IQUxGX1VQIiwgIlJPVU5EX0hBTEZfRE9XTiIsICJST1VORF9IQUxGX0VWRU4iLAorICAgICAgICAiUk9VTkRfVU5ORUNFU1NBUlkiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZXF1YWxCdXRGb3JUcmFpbGluZ1plcm9zKFN0cmluZyBmb3JtYXR0ZWQxLCBTdHJpbmcgZm9ybWF0dGVkMikgeworICAgICAgICBpZiAoZm9ybWF0dGVkMS5sZW5ndGgoKSA9PSBmb3JtYXR0ZWQyLmxlbmd0aCgpKSByZXR1cm4gZm9ybWF0dGVkMS5lcXVhbHMoZm9ybWF0dGVkMik7CisgICAgICAgIHJldHVybiBzdHJpcEZpbmFsWmVyb3MoZm9ybWF0dGVkMSkuZXF1YWxzKHN0cmlwRmluYWxaZXJvcyhmb3JtYXR0ZWQyKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHN0cmlwRmluYWxaZXJvcyhTdHJpbmcgZm9ybWF0dGVkKSB7CisgICAgICAgIGludCBsZW4xID0gZm9ybWF0dGVkLmxlbmd0aCgpOworICAgICAgICBjaGFyIGNoOworICAgICAgICB3aGlsZSAobGVuMSA+IDAgJiYgKChjaCA9IGZvcm1hdHRlZC5jaGFyQXQobGVuMS0xKSkgPT0gJzAnIHx8IGNoID09ICcuJykpIC0tbGVuMTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZC5zdWJzdHJpbmcoMCxsZW4xKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdDIoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgLy8gRG9uJ3Qgcm91bmQtdHJpcCBmb3JtYXQgdGVzdCwgc2luY2Ugd2UgZXhwbGljaXRseSBkbyBpdAorICAgICAgICBleHBlY3QoZm10LCBuLCBleHAsIGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgZXhwLCBuKTsKKyAgICB9CisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0MihOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QyKGZtdCwgbmV3IERvdWJsZShuKSwgZXhwKTsKKyAgICB9CisKKyAgICAvLyBGb3JtYXQtUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0MihOdW1iZXJGb3JtYXQgZm10LCBsb25nIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgZXhwZWN0MihmbXQsIG5ldyBMb25nKG4pLCBleHApOworICAgIH0KKworICAgIC8vIEZvcm1hdCB0ZXN0CisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwLCBib29sZWFuIHJ0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYXcgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7IAorICAgICAgICBmbXQuZm9ybWF0KG4sIHNhdywgcG9zKTsKKyAgICAgICAgU3RyaW5nIHBhdCA9ICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LnRvU3RyaW5nKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgICIgKyBuICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9IFwiIiArCisgICAgICAgICAgICAgICAgICBzYXcgKyAiXCIiKTsKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBiZSBhYmxlIHRvIHJvdW5kLXRyaXAgdGhlIGZvcm1hdHRlZCBzdHJpbmcgPT4KKyAgICAgICAgICAgIC8vIG51bWJlciA9PiBzdHJpbmcgKGJ1dCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQ6IG51bWJlcgorICAgICAgICAgICAgLy8gPT4gc3RyaW5nID0+IG51bWJlcjIsIG1pZ2h0IGhhdmUgbnVtYmVyMiAhPSBudW1iZXIpOgorICAgICAgICAgICAgaWYgKHJ0KSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgTnVtYmVyIG4yID0gZm10LnBhcnNlKGV4cCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYXcyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICBmbXQuZm9ybWF0KG4yLCBzYXcyLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNhdzIudG9TdHJpbmcoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgZXhwICsgIlwiID0+ICIgKyBuMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+IFwiIiArIHNhdzIgKyAnIicpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgbiArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc2F3ICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHAgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBGb3JtYXQgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIGV4cGVjdChmbXQsIG4sIGV4cCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gRm9ybWF0IHRlc3QgKGNvbnZlbmllbmNlKQorICAgIHB1YmxpYyB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QoZm10LCBuZXcgRG91YmxlKG4pLCBleHApOworICAgIH0KKyAgICAKKyAgICAvLyBGb3JtYXQgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIGxvbmcgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QoZm10LCBuZXcgTG9uZyhuKSwgZXhwKTsKKyAgICB9CisgICAgCisgICAgLy8gUGFyc2UgdGVzdAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBTdHJpbmcgc3RyLCBOdW1iZXIgbikgeworICAgICAgICBOdW1iZXIgbnVtID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG51bSA9IChOdW1iZXIpIGZtdC5wYXJzZShzdHIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhdCA9ICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpOworICAgICAgICAvLyBBIGxpdHRsZSB0cmlja3kgaGVyZSAtLSBtYWtlIHN1cmUgRG91YmxlKDEyMzQ1LjApIGFuZAorICAgICAgICAvLyBMb25nKDEyMzQ1KSBtYXRjaC4KKyAgICAgICAgaWYgKG51bS5lcXVhbHMobikgfHwgbnVtLmRvdWJsZVZhbHVlKCkgPT0gbi5kb3VibGVWYWx1ZSgpKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIG51bSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIG51bSArICIsIGV4cGVjdGVkICIgKyBuKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBQYXJzZSB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgZG91YmxlIG4pIHsKKyAgICAgICAgZXhwZWN0KGZtdCwgc3RyLCBuZXcgRG91YmxlKG4pKTsKKyAgICB9CisgICAgCisgICAgLy8gUGFyc2UgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIGxvbmcgbikgeworICAgICAgICBleHBlY3QoZm10LCBzdHIsIG5ldyBMb25nKG4pKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEN1cnJlbmN5KE51bWJlckZvcm1hdCBuZiwgQ3VycmVuY3kgY3VyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlLCBTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIG5mOworICAgICAgICBpZiAoY3VyciAhPSBudWxsKSB7CisgICAgICAgICAgICBmbXQuc2V0Q3VycmVuY3koY3Vycik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KHZhbHVlKS5yZXBsYWNlKCdcdTAwQTAnLCAnICcpOworCisgICAgICAgIGlmIChzLmVxdWFscyhzdHJpbmcpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIFN0cmluZyBwYXQsIGludCBwb3MpIHsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0LCBwb3MsIDAsIChjaGFyKTApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIGZpbmFsIFN0cmluZyBwYXQsIGludCBwb3MsIGludCB3aWR0aCwgZmluYWwgY2hhciBwYWQpIHsKKyAgICAgICAgaW50IGFwb3MgPSAwLCBhd2lkdGggPSAwOworICAgICAgICBjaGFyIGFwYWRTdHI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBhcG9zID0gZm10LmdldFBhZFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2lkdGggPSBmbXQuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAgICAgICAgIGFwYWRTdHIgPSBmbXQuZ2V0UGFkQ2hhcmFjdGVyKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhcG9zID0gLTE7CisgICAgICAgICAgICBhd2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIGFwYWRTdHIgPSBwYWQ7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGFwb3MgPT0gcG9zICYmIGF3aWR0aCA9PSB3aWR0aCAmJiBhcGFkU3RyID09IHBhZCkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgXCIiICsgcGF0ICsgIlwiIHBvcz0iCisgICAgICAgICAgICAgICAgICAgICsgYXBvcyArICgocG9zID09IC0xKSA/ICIiIDogIiB3aWR0aD0iICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWRTdHIpKTsgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBwYXQgKyAiXCIgcG9zPSIgKyBhcG9zICsgIiB3aWR0aD0iCisgICAgICAgICAgICAgICAgICAgICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWRTdHIgKyAiLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICsgcG9zICsgIiAiICsgd2lkdGggKyAiICIgKyBwYWQpOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGV4cGVjdFBhdChEZWNpbWFsRm9ybWF0IGZtdCwgZmluYWwgU3RyaW5nIGV4cCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBpZiAocGF0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHBhdCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpCMzgzMigpeworICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKCJwdF9QVEBjdXJyZW5jeT1QVEUiKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIEN1cnJlbmN5IGN1cnIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBsb2dsbigiXG5OYW1lIG9mIHRoZSBjdXJyZW5jeSBpczogIiArIGN1cnIuZ2V0TmFtZShsb2NhbGUsIEN1cnJlbmN5LkxPTkdfTkFNRSwgbmV3IGJvb2xlYW5bXSB7ZmFsc2V9KSk7CisgICAgICAgIEN1cnJlbmN5QW1vdW50IGNBbXQgPSBuZXcgQ3VycmVuY3lBbW91bnQoMTE1MC41MCwgY3Vycik7CisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeUFtb3VudCBvYmplY3QncyBoYXNoQ29kZSBpczogIiArIGNBbXQuaGFzaENvZGUoKSk7IC8vY292ZXIgaGFzaENvZGUKKyAgICAgICAgU3RyaW5nIHN0ciA9IGZvcm1hdC5mb3JtYXQoY0FtdCk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICIxLDE1MCQ1MCBFc2MuIjsKKyAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhzdHIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IEV4cGVjdGVkOiAiK2V4cGVjdGVkKyIgR290OiAiKyBzdHIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpY3RQYXJzZSgpIHsKKyAgICAgICAgU3RyaW5nW10gcGFzcyA9IHsKKyAgICAgICAgICAgICIwIiwgICAgICAgICAgIC8vIHNpbmdsZSB6ZXJvIGJlZm9yZSBlbmQgb2YgdGV4dCBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAgIiwgICAgICAgICAgLy8gc2luZ2xlIHplcm8gYXQgZW5kIG9mIG51bWJlciBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuIiwgICAgICAgICAgLy8gc2luZ2xlIHplcm8gYmVmb3JlIHBlcmlvZCAob3IgZGVjaW1hbCwgaXQncyBhbWJpZ3VvdXMpIGlzIG5vdCBsZWFkaW5nCisgICAgICAgICAgICAiMCwiLCAgICAgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgY29tbWEgKG5vdCBncm91cCBzZXBhcmF0b3IpIGlzIG5vdCBsZWFkaW5nCisgICAgICAgICAgICAiMC4wIiwgICAgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgZGVjaW1hbCBmb2xsb3dlZCBieSBkaWdpdCBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuICIsICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBiZWZvcmUgcGVyaW9kIChvciBkZWNpbWFsKSBpcyBub3QgbGVhZGluZworICAgICAgICAgICAgIjAuMTAwLDUiLCAgICAgLy8gY29tbWEgc3RvcHMgcGFyc2Ugb2YgZGVjaW1hbCAobm8gZ3JvdXBpbmcpCisgICAgICAgICAgICAiLjAwIiwgICAgICAgICAvLyBsZWFkaW5nIGRlY2ltYWwgaXMgb2ssIGV2ZW4gd2l0aCB6ZXJvcworICAgICAgICAgICAgIjEyMzQ1NjciLCAgICAgLy8gZ3JvdXAgc2VwYXJhdG9ycyBhcmUgbm90IHJlcXVpcmVkCisgICAgICAgICAgICAiMTIzNDUsICIsICAgICAvLyBjb21tYSBub3QgZm9sbG93ZWQgYnkgZGlnaXQgaXMgbm90IGEgZ3JvdXAgc2VwYXJhdG9yLCBidXQgZW5kIG9mIG51bWJlcgorICAgICAgICAgICAgIjEsMjM0LCAiLCAgICAgLy8gaWYgZ3JvdXAgc2VwYXJhdG9yIGlzIHByZXNlbnQsIGdyb3VwIHNpemVzIG11c3QgYmUgYXBwcm9wcmlhdGUKKyAgICAgICAgICAgICIxLDIzNCw1NjciLCAgIC8vIC4uLnNlY29uZGFyeSB0b28KKyAgICAgICAgICAgICIwRSIsICAgICAgICAgIC8vIGFuIGV4cG9ubmVudCBub3QgZm9sbG93ZWQgYnkgemVybyBvciBkaWdpdHMgaXMgbm90IGFuIGV4cG9uZW50IAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBmYWlsID0geworICAgICAgICAgICAgIjAwIiwgICAgICAgIC8vIGxlYWRpbmcgemVybyBiZWZvcmUgemVybworICAgICAgICAgICAgIjAxMiIsICAgICAgIC8vIGxlYWRpbmcgemVybyBiZWZvcmUgZGlnaXQKKyAgICAgICAgICAgICIwLDQ1NiIsICAgICAvLyBsZWFkaW5nIHplcm8gYmVmb3JlIGdyb3VwIHNlcGFyYXRvcgorICAgICAgICAgICAgIjEsMiIsICAgICAgIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgICAgICAiLDAiLCAgICAgICAgLy8gbGVhZGluZyBncm91cCBzZXBhcmF0b3IgYmVmb3JlIHplcm8KKyAgICAgICAgICAgICIsMSIsICAgICAgICAvLyBsZWFkaW5nIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGlnaXQKKyAgICAgICAgICAgICIsLjAyIiwgICAgICAvLyBsZWFkaW5nIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGVjaW1hbAorICAgICAgICAgICAgIjEsLjAyIiwgICAgIC8vIGdyb3VwIHNlcGFyYXRvciBiZWZvcmUgZGVjaW1hbAorICAgICAgICAgICAgIjEsLDIwMCIsICAgIC8vIG11bHRpcGxlIGdyb3VwIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICIxLDQ1IiwgICAgICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxLDQ1IHRoYXQiLCAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxLDQ1LjM0IiwgICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHByaW1hcnkgZ3JvdXAKKyAgICAgICAgICAgICIxMjM0LDU2NyIsICAvLyB3cm9uZyBudW1iZXIgb2YgZGlnaXRzIGluIHNlY29uZGFyeSBncm91cAorICAgICAgICAgICAgIjEyLDM0LDU2NyIsIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgaW4gc2Vjb25kYXJ5IGdyb3VwCisgICAgICAgICAgICAiMSwyMyw0NTYsNzg5MCIsIC8vIHdyb25nIG51bWJlciBvZiBkaWdpdHMgaW4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGdyb3VwcworICAgICAgICB9OworCisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSAoRGVjaW1hbEZvcm1hdCkgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgcnVuU3RyaWN0UGFyc2VCYXRjaChuZiwgcGFzcywgZmFpbCk7CisKKyAgICAgICAgU3RyaW5nW10gc2NpZW50aWZpY1Bhc3MgPSB7CisgICAgICAgICAgICAiMEUyIiwgICAgICAvLyBzaW5nbGUgemVybyBiZWZvcmUgZXhwb25lbnQgaXMgb2sKKyAgICAgICAgICAgICIxMjM0RTIiLCAgIC8vIGFueSBudW1iZXIgb2YgZGlnaXRzIGJlZm9yZSBleHBvbmVudCBpcyBvaworICAgICAgICAgICAgIjEsMjM0RSIsICAgLy8gYW4gZXhwb25lbnQgc3RyaW5nIG5vdCBmb2xsb3dlZCBieSB6ZXJvIG9yIGRpZ2l0cyBpcyBub3QgYW4gZXhwb25lbnQKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gc2NpZW50aWZpY0ZhaWwgPSB7CisgICAgICAgICAgICAiMDBFMiIsICAgICAvLyBkb3VibGUgemVyb3MgZmFpbAorICAgICAgICAgICAgIjEsMjM0RTIiLCAgLy8gZ3JvdXAgc2VwYXJhdG9ycyB3aXRoIGV4cG9uZW50IGZhaWwKKyAgICAgICAgfTsKKworICAgICAgICBuZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBydW5TdHJpY3RQYXJzZUJhdGNoKG5mLCBzY2llbnRpZmljUGFzcywgc2NpZW50aWZpY0ZhaWwpOworCisgICAgICAgIFN0cmluZ1tdIG1peGVkUGFzcyA9IHsKKyAgICAgICAgICAgICIxMiwzNCw1NjciLAorICAgICAgICAgICAgIjEyLDM0LDU2NywiLAorICAgICAgICAgICAgIjEyLDM0LDU2NywgdGhhdCIsCisgICAgICAgICAgICAiMTIsMzQsNTY3IHRoYXQiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBtaXhlZEZhaWwgPSB7CisgICAgICAgICAgICAiMTIsMzQsNTYiLAorICAgICAgICAgICAgIjEyLDM0LDU2LCIsCisgICAgICAgICAgICAiMTIsMzQsNTYsIHRoYXQgIiwKKyAgICAgICAgICAgICIxMiwzNCw1NiB0aGF0IiwKKyAgICAgICAgfTsKKworICAgICAgICBuZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjLCMjMC4jIik7CisgICAgICAgIHJ1blN0cmljdFBhcnNlQmF0Y2gobmYsIG1peGVkUGFzcywgbWl4ZWRGYWlsKTsKKyAgICB9CisKKyAgICB2b2lkIHJ1blN0cmljdFBhcnNlQmF0Y2goRGVjaW1hbEZvcm1hdCBuZiwgU3RyaW5nW10gcGFzcywgU3RyaW5nW10gZmFpbCkgeworICAgICAgICBuZi5zZXRQYXJzZVN0cmljdChmYWxzZSk7CisgICAgICAgIHJ1blN0cmljdFBhcnNlVGVzdHMoInNob3VsZCBwYXNzIiwgbmYsIHBhc3MsIHRydWUpOworICAgICAgICBydW5TdHJpY3RQYXJzZVRlc3RzKCJzaG91bGQgYWxzbyBwYXNzIiwgbmYsIGZhaWwsIHRydWUpOworICAgICAgICBuZi5zZXRQYXJzZVN0cmljdCh0cnVlKTsKKyAgICAgICAgcnVuU3RyaWN0UGFyc2VUZXN0cygic2hvdWxkIHN0aWxsIHBhc3MiLCBuZiwgcGFzcywgdHJ1ZSk7CisgICAgICAgIHJ1blN0cmljdFBhcnNlVGVzdHMoInNob3VsZCBmYWlsIiwgbmYsIGZhaWwsIGZhbHNlKTsKKyAgICB9CisKKyAgICB2b2lkIHJ1blN0cmljdFBhcnNlVGVzdHMoU3RyaW5nIG1zZywgRGVjaW1hbEZvcm1hdCBuZiwgU3RyaW5nW10gdGVzdHMsIGJvb2xlYW4gcGFzcykgeworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiAnIiArIG5mLnRvUGF0dGVybigpICsgIiciKTsKKyAgICAgICAgbG9nbG4obXNnKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlc3RzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgTnVtYmVyIG4gPSBuZi5wYXJzZShzdHIsIHBwKTsKKyAgICAgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBuICE9IG51bGwgPyBuZi5mb3JtYXQobikgOiAibnVsbCI7CisgICAgICAgICAgICBTdHJpbmcgZXJyID0gcHAuZ2V0RXJyb3JJbmRleCgpID09IC0xID8gIiIgOiAiKGVycm9yIGF0ICIgKyBwcC5nZXRFcnJvckluZGV4KCkgKyAiKSI7CisgICAgICAgICAgICBpZiAoKGVyci5sZW5ndGgoKSA9PSAwKSAhPSBwYXNzKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiciICsgc3RyICsgIicgcGFyc2VkICciICsgCisgICAgICAgICAgICAgICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBwcC5nZXRJbmRleCgpKSArIAorICAgICAgICAgICAgICAgICAgICAgICInIHJldHVybmVkICIgKyBuICsgIiBmb3JtYXRzIHRvICciICsgCisgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkICsgIicgIiArIGVycik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChlcnIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVyciA9ICJnb3QgZXhwZWN0ZWQgIiArIGVycjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIiciICsgc3RyICsgIicgcGFyc2VkICciICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHIuc3Vic3RyaW5nKDAsIHBwLmdldEluZGV4KCkpICsgCisgICAgICAgICAgICAgICAgICAgICAgIicgcmV0dXJuZWQgIiArIG4gKyAiIGZvcm1hdHMgdG8gJyIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgKyAiJyAiICsgZXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI1MjUxKCl7CisgICAgICAgIC8vc2F2ZSBkZWZhdWx0IGxvY2FsZQorICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG5ldyBVTG9jYWxlKCJxcl9RUiIpKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mMSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICAvL3Jlc2V0IGRlZmF1bHQgbG9jYWxlCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2VSZXR1cm5UeXBlKCkgeworICAgICAgICBTdHJpbmdbXSBkZWZhdWx0Tm9uQmlnRGVjaW1hbHMgPSB7CisgICAgICAgICAgICAiMTIzIiwgICAgICAvLyBMb25nCisgICAgICAgICAgICAiMTIzLjAiLCAgICAvLyBMb25nCisgICAgICAgICAgICAiMC4wIiwgICAgICAvLyBMb25nCisgICAgICAgICAgICAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiICAgICAgLy8gQmlnSW50ZWdlcgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGRvdWJsZXMgPSB7CisgICAgICAgICAgICAiLTAuMCIsCisgICAgICAgICAgICAiTmFOIiwKKyAgICAgICAgICAgICJcdTIyMUUiICAgIC8vIEluZmluaXR5CisgICAgICAgIH07CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIiwgc3ltKTsKKworICAgICAgICBpZiAobmYuaXNQYXJzZUJpZ0RlY2ltYWwoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlzUGFyc2VEZWNpbWFsKCkgbXVzdCByZXR1cm4gZmFsc2UgYnkgZGVmYXVsdCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaXNQYXJzZUJpZ0RlY2ltYWwoKSBpcyBmYWxzZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHROb25CaWdEZWNpbWFscy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRlZmF1bHROb25CaWdEZWNpbWFsc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKG4gaW5zdGFuY2VvZiBCaWdEZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSByZXR1cm5zIEJpZ0RlY2ltYWwgaW5zdGFuY2UiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlIG9mICciICsgZGVmYXVsdE5vbkJpZ0RlY2ltYWxzW2ldICsgIicgdGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gcGFyc2UgcmVzdWx0cyBmb3IgZG91YmxzIG11c3QgYmUgYWx3YXlzIERvdWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvdWJsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG4gPSBuZi5wYXJzZShkb3VibGVzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgRG91YmxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogcGFyc2UgZG9lcyBub3QgcmV0dXJuIERvdWJsZSBpbnN0YW5jZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyBkb3VibGVzW2ldICsgIicgdGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmb3JjZSB0aGlzIERlY2ltYWxGb3JtYXQgdG8gcmV0dXJuIEJpZ0RlY2ltYWwKKyAgICAgICAgbmYuc2V0UGFyc2VCaWdEZWNpbWFsKHRydWUpOworICAgICAgICBpZiAoIW5mLmlzUGFyc2VCaWdEZWNpbWFsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpc1BhcnNlQmlnRGVjaW1hbCgpIG11c3QgcmV0dXJuIHRydWUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlzUGFyc2VCaWdEZWNpbWFsKCkgaXMgdHJ1ZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHROb25CaWdEZWNpbWFscy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRlZmF1bHROb25CaWdEZWNpbWFsc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIEJpZ0RlY2ltYWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSBkb2VzIG5vdCByZXR1cm4gQmlnRGVjaW1hbCBpbnN0YW5jZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyBkZWZhdWx0Tm9uQmlnRGVjaW1hbHNbaV0gKyAiJyB0aHJldyBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBwYXJzZSByZXN1bHRzIGZvciBkb3VibHMgbXVzdCBiZSBhbHdheXMgRG91YmxlCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG91Ymxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG5mLnBhcnNlKGRvdWJsZXNbaV0pOworICAgICAgICAgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBEb3VibGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZSBkb2VzIG5vdCByZXR1cm4gRG91YmxlIGluc3RhbmNlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBvZiAnIiArIGRvdWJsZXNbaV0gKyAiJyB0aHJldyBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjUzNTgoKSB7CisgICAgICAgIGludCBudW1UaHJlYWRzID0gMTA7CisgICAgICAgIFN0cmluZyBudW1zdHIgPSAiMTIzNDUiOworICAgICAgICBkb3VibGUgZXhwZWN0ZWQgPSAxMjM0NTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMuIyIsIHN5bSk7CisgICAgICAgIEFycmF5TGlzdCBlcnJvcnMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgUGFyc2VUaHJlYWRKQjUzNThbXSB0aHJlYWRzID0gbmV3IFBhcnNlVGhyZWFkSkI1MzU4W251bVRocmVhZHNdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVRocmVhZHM7IGkrKykgeworICAgICAgICAgICAgdGhyZWFkc1tpXSA9IG5ldyBQYXJzZVRocmVhZEpCNTM1OCgoRGVjaW1hbEZvcm1hdClmbXQuY2xvbmUoKSwgbnVtc3RyLCBleHBlY3RlZCwgZXJyb3JzKTsKKyAgICAgICAgICAgIHRocmVhZHNbaV0uc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVRocmVhZHM7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0aHJlYWRzW2ldLmpvaW4oKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGllKSB7CisgICAgICAgICAgICAgICAgaWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycm9ycy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGVyckJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXJyb3JzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgZXJyQnVmLmFwcGVuZCgoU3RyaW5nKWVycm9ycy5nZXQoaSkpOworICAgICAgICAgICAgICAgIGVyckJ1Zi5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVyckJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBjbGFzcyBQYXJzZVRocmVhZEpCNTM1OCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdCBkZWNmbXQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG51bXN0cjsKKyAgICAgICAgcHJpdmF0ZSBkb3VibGUgZXhwZWN0OworICAgICAgICBwcml2YXRlIEFycmF5TGlzdCBlcnJvcnM7CisKKyAgICAgICAgcHVibGljIFBhcnNlVGhyZWFkSkI1MzU4KERlY2ltYWxGb3JtYXQgZGVjZm10LCBTdHJpbmcgbnVtc3RyLCBkb3VibGUgZXhwZWN0LCBBcnJheUxpc3QgZXJyb3JzKSB7CisgICAgICAgICAgICB0aGlzLmRlY2ZtdCA9IGRlY2ZtdDsKKyAgICAgICAgICAgIHRoaXMubnVtc3RyID0gbnVtc3RyOworICAgICAgICAgICAgdGhpcy5leHBlY3QgPSBleHBlY3Q7CisgICAgICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE51bWJlciBuID0gZGVjZm10LnBhcnNlKG51bXN0cik7CisgICAgICAgICAgICAgICAgICAgIGlmIChuLmRvdWJsZVZhbHVlKCkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQoZXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFkZChuZXcgU3RyaW5nKCJCYWQgcGFyc2UgcmVzdWx0IC0gZXhwZWN0ZWQ6IiArIGV4cGVjdCArICIgYWN0dWFsOiIgKyBuLmRvdWJsZVZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZChlcnJvcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hZGQobmV3IFN0cmluZyh0LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAtICIgKyB0LmdldE1lc3NhZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzN2Y1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3RDYXNlcy50eHQKQEAgLTAsMCArMSw4NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEF1dGhvcjogQWxhbiBMaXUKKyMgQ3JlYXRlZDogTWFyY2ggMTUgMjAwNAorIyBTaW5jZTogSUNVIDMuMAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCityZWY9ICIjLiMiCisKK3J0OiAgIjAuIyMjIiAgMS4wICAgICAgICAgIjEiICAgICAgICAgCisKKyMgQmFzaWNzCitmcDogICIwLiMjIyMiIDAuMTAwMDUgICAgICIwLjEiICAgICAgICAwLjEKK2ZwOiAgLSAgICAgICAgMC4xMDAwNiAgICAgIjAuMTAwMSIgICAgIDAuMTAwMQorcGF0OiAtICAgICAgICAiIzAuIyMjIyIKK2ZwOiAgIiMuIyMjIyIgMC4xMDAwNSAgICAgIjAuMSIgICAgICAgIDAuMQorcGF0OiAtICAgICAgICAiIzAuIyMjIyIKKworcnQ6ICAiMCIgICAgICAxMjM0ICAgICAgICAiMTIzNCIKK3BhdDogLSAgICAgICAgIiMwIgorCisjIFNpZ25pZmljYW50IGRpZ2l0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitmcDogICJAQEAiICAgIDEuMjM0NTY3ICAgICIxLjIzIiAgICAgICAxLjIzCitmcDogIC0gICAgICAgIDEyMzQ1NjcgICAgICIxMjMwMDAwIiAgICAxMjMwMDAwCitmcDogIC0gICAgICAgIDAuMDEyMzQ1ICAgICIwLjAxMjMiICAgICAwLjAxMjMKK3BhdDogLSAgICAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorZnA6ICAiIyxAQEAiICAxMjM0NTY3ICAgICAiMSwyMzAsMDAwIiAgMTIzMDAwMAorcGF0OiAtICAgICAgICAiIyxAQEAiCitydDogICJAQEBAIiAgIDAuMDAxMiAgICAgICIwLjAwMTIwMCIgIAorZnA6ICAtICAgICAgICAwLjk5OTk5ICAgICAiMS4wMDAiICAgICAgMQorcGF0OiAtICAgICAgICAtCitydDogICJAIyMjIiAgIDAuMDAxMjMgICAgICIwLjAwMTIzIiAgIAorcnQ6ICAtICAgICAgICAxMjMwMDAgICAgICAiMTIzMDAwIiAgICAKK2ZwOiAgLSAgICAgICAgMTIzNDU2ICAgICAgIjEyMzUwMCIgICAgIDEyMzUwMAorZnA6ICAtICAgICAgICAxMi4zNDU2ICAgICAiMTIuMzUiICAgICAgMTIuMzUKK2ZwOiAgLSAgICAgICAgMC4wMTIzNDU2ICAgIjAuMDEyMzUiICAgIDAuMDEyMzUKK3BhdDogLSAgICAgICAgLQorZnA6ICAiQCwjIyMiICAyNzE4MiAgICAgICAiMjcsMTgwIiAgICAgMjcxODAKK3J0OiAgLSAgICAgICAgMTIzMDAwICAgICAgIjEyMywwMDAiICAgCitmcDogIC0gICAgICAgIDAuOTk5OTkgICAgICIxIiAgICAgICAgICAxCitydDogIC0gICAgICAgIDAuOTk5OSAgICAgICIwLjk5OTkiICAgIAorcGF0OiAtICAgICAgICAtCitydDogICJAIyNFMCIgIDIwMDAwICAgICAgICIyRTQiCitydDogIC0gICAgICAgIDI3MDAwICAgICAgICIyLjdFNCIgICAgIAorcnQ6ICAtICAgICAgICAyNzEwMCAgICAgICAiMi43MUU0IgorZnA6ICAtICAgICAgICAyNzE4MiAgICAgICAiMi43MkU0IiAgICAgMjcyMDAKK3BhdDogLSAgICAgICAgLQorcnQ6ICAiQEBARTAiICAyMDAwMCAgICAgICAiMi4wMEU0IgorcnQ6ICAtICAgICAgICAyNzAwMCAgICAgICAiMi43MEU0IiAgICAKK3J0OiAgLSAgICAgICAgMjcxMDAgICAgICAgIjIuNzFFNCIKK2ZwOiAgLSAgICAgICAgMjcxODIgICAgICAgIjIuNzJFNCIgICAgIDI3MjAwCitwYXQ6IC0gICAgICAgIC0KK2ZwOiAgIiMsQEAjIyIgMzE0MTU2ICAgICAgIjMxLDQyMDAiICAgIDMxNDIwMAorcnQ6ICAtICAgICAgICAzICAgICAgICAgICAiMy4wIiAgICAgICAKK3J0OiAgLSAgICAgICAgNTAwMCAgICAgICAgIjUwMDAiICAgICAgCitydDogIC0gICAgICAgIDAuMDA1ICAgICAgICIwLjAwNTAiICAgIAorcGF0OiAtICAgICAgICAtCitmcDogICJAQEBAQEAiIDEyMzQ1Ni43ICAgICIxMjM0NTciICAgICAxMjM0NTcKK3BhdDogLSAgICAgICAgLQorCitwYXQ6ICIjIyxAQCMjIiAiIyxAQCMjIgorcGF0OiAiIyNAQCMjIiAgIkBAIyMiCisKK3BhdDogIkBALkBAIiAgZXJyICAjIGRlY2ltYWwgc2VwLiBkaXNhbGxvd2VkIGluIHNpZy4gZGlnaXRzCitwYXQ6ICJAI0AiICAgIGVyciAgIyBvbmx5IG9uZSBjbHVzdGVyIG9mIHNpZy4gZGlnaXRzCitwYXQ6ICJAQDAiICAgIGVyciAgIyBlaXRoZXIgQCBvciAwLCBub3QgYm90aAorCisjIE51bWJlclJlZ3Jlc3Npb24vVGVzdDQxNDAwMDkKK3J0OiAgIiIgICAgICAgMTIzLjQ1NiAgICAgIjEyMy40NTYiCitydDogICIiICAgICAgIC0xMjMuNDU2ICAgICItMTIzLjQ1NiIKKworIyBDdXJyZW5jeQorZnBjOiAiZW5fVVMiICAgICAgICAxMjM0LjU2L1VTRCAgIiQxLDIzNC41NiIgICAgMTIzNC41Ni9VU0QKK2ZwYzogLSAgICAgICAgICAgICAgMTIzNC41Ni9KUFkgICJcdTAwQTUxLDIzNSIgIDEyMzUvSlBZCisjIElTTyBjb2RlcyB0aGF0IG92ZXJsYXAgZGlzcGxheSBuYW1lcyAoUVFRIHZzLiBRKQorZnBjOiAtICAgICAgICAgICAgICAxMjMvUVFRICAgICAgIlFRUTEyMy4wMCIgICAgMTIzL1FRUSAgICMgUVFRIGlzIGZha2UKK2ZwYzogLSAgICAgICAgICAgICAgMTIzL0dUUSAgICAgICJRMTIzLjAwIiAgICAgIDEyMy9HVFEKKyMgQ2hvaWNlRm9ybWF0LWJhc2VkIGRpc3BsYXkgbmFtZXMKK2ZwYzogLSAgICAgICAgICAgICAgMS9JTlIgICAgICAgICJSZS4xLjAwIiAgICAgIDEvSU5SCitmcGM6IC0gICAgICAgICAgICAgIDIvSU5SICAgICAgICAiUnMuMi4wMCIgICAgICAyL0lOUgorIyBEaXNwbGF5IG5hbWVzIHdpdGggc2hhcmVkIHByZWZpeCAoWUREIHZzLiBZKQorZnBjOiAtICAgICAgICAgICAgICAxMDAvWUREICAgICAgIllERDEwMC4wMCIgICAgMTAwL1lERAorZnBjOiAtICAgICAgICAgICAgICAxMDAvQ05ZICAgICAgIlkxMDAuMDAiICAgICAgMTAwL0NOWQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTQ4MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSwxODUwIEBACisvLyMjaGVhZGVyCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0Lk51bWJlclJlZ3Jlc3Npb24KKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQorICoqLworIAorLyoqCisgKiBAdGVzdCAxLjQ5IDAxLzA1LzIxCisgKiBAYnVnIDQwNTIyMjMgNDA1OTg3MCA0MDYxMzAyIDQwNjI0ODYgNDA2NjY0NiA0MDY4NjkzIDQwNzA3OTggNDA3MTAwNSA0MDcxMDE0CisgKiA0MDcxNDkyIDQwNzE4NTkgNDA3NDQ1NCA0MDc0NjIwIDQwNzU3MTMgNDA4MzAxOCA0MDg2NTc1IDQwODcyNDQgNDA4NzI0NQorICogNDA4NzI1MSA0MDg3NTM1IDQwODgxNjEgNDA4ODUwMyA0MDkwNDg5IDQwOTA1MDQgNDA5MjQ4MCA0MDkyNTYxIDQwOTU3MTMKKyAqIDQwOTg3NDEgNDA5OTQwNCA0MTAxNDgxIDQxMDY2NTggNDEwNjY2MiA0MTA2NjY0IDQxMDg3MzggNDExMDkzNiA0MTIyODQwCisgKiA0MTI1ODg1IDQxMzQwMzQgNDEzNDMwMCA0MTQwMDA5IDQxNDE3NTAgNDE0NTQ1NyA0MTQ3Mjk1IDQxNDc3MDYgNDE2MjE5OAorICogNDE2Mjg1MiA0MTY3NDk0IDQxNzA3OTggNDE3NjExNCA0MTc5ODE4IDQxODU3NjEgNDIxMjA3MiA0MjEyMDczIDQyMTY3NDIKKyAqIDQyMTc2NjEgNDI0MzAxMSA0MjQzMTA4IDQzMzAzNzcgNDIzMzg0MAorICogQHN1bW1hcnkgUmVncmVzc2lvbiB0ZXN0cyBmb3IgTnVtYmVyRm9ybWF0IGFuZCBhc3NvY2lhdGVkIGNsYXNzZXMKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIE51bWJlclJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE51bWJlclJlZ3Jlc3Npb24oKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFVVJPID0gJ1x1MjBhYyc7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQuZXF1YWxzIGNvbXBhcmluZyB3aXRoIG51bGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzU3MTMoKXsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IHRtcCA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgICAgIGlmICghdG1wLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0LmVxdWFscyBwYXNzZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIihuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCkpLmVxdWFscyhudWxsKSB0aHJvd3MgdW5leHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5lcXVhbHMgY29tcGFyaW5nIHR3byBvYmogZXF1YWwgZXZlbiB0aGUgc2V0R3JvdXBpbmdVc2VkCisgICAgICogZmxhZyBpcyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzQ2MjAoKSB7CisKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMSA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMiA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKworICAgICAgICBuZjEuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgbmYyLnNldEdyb3VwaW5nVXNlZCh0cnVlKTsKKworICAgICAgICBpZiAobmYxLmVxdWFscyhuZjIpKSBlcnJsbigiVGVzdCBmb3IgYnVnIDQwNzQ2MjAgZmFpbGVkIik7CisgICAgICAgIGVsc2UgbG9nbG4oIlRlc3QgZm9yIGJ1ZyA0MDc0NjIwIHBhc3NlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSB1c2VzIG1heEZyYWN0aW9uRGlnaXRzIHNldHRpbmcuCisgICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODE2MSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRvdWJsZSBkID0gMTAwOworICAgICAgICBkZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMSA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgbG9nbG4oIm1heEZyYWN0aW9uRGlnaXRzID0gIiArIGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbG9nbG4oIiBmb3JtYXQoZCkgPSAnIiArIGRmLmZvcm1hdChkLCBzQnVmMSwgZnAxKSArICInIik7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigibWF4RnJhY3Rpb25EaWdpdHMgPSAiICsgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICBkZi5mb3JtYXQoZCwgc0J1ZjIsIGZwMik7CisgICAgICAgIGlmICghc0J1ZjIudG9TdHJpbmcoKS5lcXVhbHMoIjEwMCIpKQorICAgICAgICAgICAgZXJybG4oIiBmb3JtYXQoZCkgPSAnIiArIHNCdWYyICsgIiciKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdFN5bWJvbHMgc2hvdWxkIGJlIGNsb25lZCBpbiB0aGUgY3RvciBEZWNpbWFsRm9ybWF0LgorICAgICAqIERlY2ltYWxGb3JtYXQoU3RyaW5nLCBEZWNpbWFsRm9ybWF0U3ltYm9scykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDUgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wIiwgc3ltYm9scyk7CisgICAgICAgIGxvbmcgbiA9IDEyMzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZjEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigiZm9ybWF0KCIgKyBuICsgIikgPSAiICsKKyAgICAgICAgZGYuZm9ybWF0KG4sIGJ1ZjEsIG5ldyBGaWVsZFBvc2l0aW9uKDApKSk7CisgICAgICAgIHN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcigncCcpOyAvLyBjaGFuZ2UgdmFsdWUgb2YgZmllbGQKKyAgICAgICAgbG9nbG4oImZvcm1hdCgiICsgbiArICIpID0gIiArCisgICAgICAgIGRmLmZvcm1hdChuLCBidWYyLCBuZXcgRmllbGRQb3NpdGlvbigwKSkpOworICAgICAgICBpZiAoIWJ1ZjEudG9TdHJpbmcoKS5lcXVhbHMoYnVmMi50b1N0cmluZygpKSkKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4NzI0NSBmYWlsZWQiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSBmb3JtYXRzIDAuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3NTM1ICgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoMCk7CisKKyAgICAgICAgZG91YmxlIG4gPSAwOworICAgICAgICBTdHJpbmcgYnVmZmVyID0gbmV3IFN0cmluZygpOworICAgICAgICBidWZmZXIgPSBkZi5mb3JtYXQobik7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGVycmxuKG4gKyAiOiAnIiArIGJ1ZmZlciArICInIik7CisgICAgICAgIG4gPSAwLjE7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdChuKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgZXJybG4obiArICI6ICciICsgYnVmZmVyICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCBmYWlscyB3aGVuIGdyb3VwaW5nU2l6ZSBpcyBzZXQgdG8gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODUwMyAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldEdyb3VwaW5nU2l6ZSgwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYuZm9ybWF0KDEyMywgc0J1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmb3IgYnVnIDQwODg1MDMgZmFpbGVkLiIpOworICAgICAgICB9CisKKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UgaXMgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2NDYgKCkgeworICAgICAgICAvL2Zsb2F0IHJldHVybmZsb2F0ID0gMC4wZjsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDIuMDRmKTsKKyAgICAgICAgYXNzaWduRmxvYXRWYWx1ZSgyLjAzZik7CisgICAgICAgIGFzc2lnbkZsb2F0VmFsdWUoMi4wMmYpOworICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDAuMGYpOworICAgIH0KKworICAgIHB1YmxpYyBmbG9hdCBhc3NpZ25GbG9hdFZhbHVlKGZsb2F0IHJldHVybmZsb2F0KQorICAgIHsKKyAgICAgICAgbG9nbG4oIiBWQUxVRSAiICsgcmV0dXJuZmxvYXQpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZjb21tb24gPSAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbmZjb21tb24uc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKworICAgICAgICBTdHJpbmcgc3RyaW5nVmFsdWUgPSBuZmNvbW1vbi5mb3JtYXQocmV0dXJuZmxvYXQpLnN1YnN0cmluZygxKTsKKyAgICAgICAgaWYgKEZsb2F0LnZhbHVlT2Yoc3RyaW5nVmFsdWUpLmZsb2F0VmFsdWUoKSAhPSByZXR1cm5mbG9hdCkKKyAgICAgICAgICAgIGVycmxuKCIgRElTUExBWVZBTFVFICIgKyBzdHJpbmdWYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1cm5mbG9hdDsKKyAgICB9IC8vIEVuZCBPZiBhc3NpZ25GbG9hdFZhbHVlKCkKKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHBhcnNpbmcgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk4NzAoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihmb3JtYXQucGFyc2UoIjAiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDU5ODcwIGZhaWxlZCA6ICIgKyBlKTsgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0U3ltYm9sLmVxdWFscyBzaG91bGQgYWx3YXlzIHJldHVybiBmYWxzZSB3aGVuCisgICAgICogY29tcGFyaW5nIHdpdGggbnVsbC4KKyAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDgzMDE4ICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmICghZGZzLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdCBQYXNzZWQhIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4MzAxOCBmYWlsZWQgPT4gTWVzc2FnZSA6ICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGRvZXMgbm90IHJvdW5kIHVwIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTQ5MiAoKXsKKyAgICAgICAgZG91YmxlIHggPSAwLjAwMTU5OTk5OworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBTdHJpbmcgb3V0ID0gbmYuZm9ybWF0KHgpOworICAgICAgICBsb2dsbigiMC4wMDE1OTk5OSBmb3JtYXRzIHdpdGggNCBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIjAuMDAxNiI7CisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHNwYWNlIGFzIGEgZ3JvdXAgc2VwYXJhdG9yIGZvciBsb2NhbGl6ZWQgcGF0dGVybiBjYXVzZXMKKyAgICAgKiB3cm9uZyBmb3JtYXQuICBXb3JrQXJvdW5kIDogdXNlIG5vbi1icmVha2luZyBzcGFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NjU3NSgpIHsKKworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgLy8gTm8gZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgIGxvZ2xuKCIuLi5hcHBseUxvY2FsaXplZFBhdHRlcm4gIyMjLDAwOygjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiIyMjLDAwOygjIyMsMDApIik7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgbG9nbG4oIm5mOiAiICsgbmYuZm9ybWF0KDEyMzQpKTsgLy8gMTIzNCwwMAorICAgICAgICBsb2dsbigibmY6ICIgKyBuZi5mb3JtYXQoLTEyMzQpKTsgLy8gKDEyMzQsMDApCisKKyAgICAgICAgLy8gU3BhY2UgYXMgZ3JvdXAgc2VwYXJhdG9yCisKKyAgICAgICAgbG9nbG4oIi4uLmFwcGx5TG9jYWxpemVkUGF0dGVybiAjICMjIywwMDsoIyAjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiI1x1MDBhMCMjIywwMDsoI1x1MDBhMCMjIywwMCkiKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvUGF0dGVybigpKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvTG9jUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgU3RyaW5nIGJ1ZmZlciA9IG5mLmZvcm1hdCgxMjM0KTsKKyAgICAgICAgaWYgKCFidWZmZXIuZXF1YWxzKCIxXHUwMGEwMjM0LDAwIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0IDEgMjM0LDAwCisgICAgICAgIGJ1ZmZlciA9IG5mLmZvcm1hdCgtMTIzNCk7CisgICAgICAgIGlmICghYnVmZmVyLmVxdWFscygiKDFcdTAwYTAyMzQsMDApIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0ICgxIDIzNCwwMCkKKworICAgICAgICAvLyBFcnJvbmVvdXNseSBwcmludHM6CisgICAgICAgIC8vIDEyMzQsMDAgLAorICAgICAgICAvLyAoMTIzNCwwMCAsKQorCisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgcmV0dXJucyB3cm9uZyB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY4NjkzKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCItLS0tLSBUZXN0IEFwcGxpY2F0aW9uIC0tLS0tIik7CisgICAgICAgIC8vUGFyc2VQb3NpdGlvbiBwb3M7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBOdW1iZXIgZCA9IGRmLnBhcnNlKCIxMjMuNTU0NTYiLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghZC50b1N0cmluZygpLmVxdWFscygiMTIzLjU1NDU2IikpIHsKKyAgICAgICAgICAgIGVycmxuKCJSZXN1bHQgLT4gIiArIGQuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBidWdzIDQwNjk3NTQsIDQwNjc4NzgKKyAgICAgKiBudWxsIHBvaW50ZXIgdGhyb3duIHdoZW4gYWNjZXNzaW5nIGEgZGVzZXJpYWxpemVkIERlY2ltYWxGb3JtYXQKKyAgICAgKiBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjk3NTQoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAgICAgbXlmb3JtYXQgaXQgPSBuZXcgbXlmb3JtYXQoKTsKKyAgICAgICAgICAgIGxvZ2xuKGl0Lk5vdygpKTsKKyAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChpdCk7CisgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgIGxvZ2xuKCJTYXZlIE9LISIpOworICAgICAgICAgICAgYnl0ZSBbXSBieXRlcyA9IGJhb3MudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgIG15Zm9ybWF0IG8gPSAobXlmb3JtYXQpb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIG9pcy5jbG9zZSgpOworICAgICAgICAgICAgaXQuTm93KCk7CisgICAgICAgICAgICBsb2dsbigiTG9hZCBPSyEiKTsKKyAgICAgICAgICAgIGlmICghby5fZGF0ZUZvcm1hdC5lcXVhbHMoaXQuX2RhdGVGb3JtYXQpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVGhlIHNhdmVkIGFuZCBsb2FkZWQgb2JqZWN0IGFyZSBub3QgZXF1YWxzISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIkNvbXBhcmUgT0shIik7CisgICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgLy9lcnJsbigiVGVzdCBmb3IgYnVnIDQwNjk3NTQgb3IgNDA1Nzg3OCBmYWlsZWQgPT4gRXhjZXB0aW9uOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIC8vfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuKFN0cmluZykgYWxsb3dzIGlsbGVnYWwgcGF0dGVybnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI1MSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZi5hcHBseVBhdHRlcm4oIiMuIy4jIik7CisgICAgICAgICAgICBsb2dsbigidG9QYXR0ZXJuKCkgcmV0dXJucyBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgZXJybG4oImFwcGx5UGF0dGVybihcIiMuIy4jXCIpIGRvZXNuJ3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiQ2F1Z2h0IElsbGVnYWwgQXJndW1lbnQgRXJyb3IgISIpOworICAgICAgICB9CisgICAgICAgIC8vIFNlY29uZCB0ZXN0OyBhZGRlZCA1LzExLzk4IHdoZW4gcmVwb3J0ZWQgdG8gZmFpbCBvbiAxLjJiMworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIjMC4wIzAjMCIpOworICAgICAgICAgICAgbG9nbG4oInRvUGF0dGVybigpIHJldHVybnMgXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGVycmxuKCJhcHBseVBhdHRlcm4oXCIjMC4wIzAjMFwiKSBkb2Vzbid0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9rIC0gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZvciAjMC4wIzAjMCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBsb3NlcyBwcmVjaXNpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MDQ4OSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygxMCk7CisgICAgICAgIGRmLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIGRvdWJsZSBkID0gMS4wMDAwMDAwMDAwMDAwMDFFNzsKKyAgICAgICAgQmlnRGVjaW1hbCBiZCA9IG5ldyBCaWdEZWNpbWFsKGQpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgbG9nbG4oIkJpZ0RlY2ltYWwudG9TdHJpbmcoKTogICIgKyBiZC50b1N0cmluZygpKTsKKyAgICAgICAgZGYuZm9ybWF0KGQsIHNiLCBmcCk7CisgICAgICAgIGlmICghc2IudG9TdHJpbmcoKS5lcXVhbHMoIjEwMDAwMDAwLjAwMDAwMDAxMDAiKSkgeworICAgICAgICAgICAgZXJybG4oIkRlY2ltYWxGb3JtYXQuZm9ybWF0KCk6ICIgKyBzYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgbG9zZXMgcHJlY2lzaW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTA1MDQgKCkKKyAgICB7CisgICAgICAgIGRvdWJsZSBkID0gMTsKKyAgICAgICAgbG9nbG4oImQgPSAiICsgZCk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2I7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTc7IGkgPD0gMjA7IGkrKykgeworICAgICAgICAgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpKTsKKyAgICAgICAgICAgICAgICBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPSAiICsgaSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZm9ybWF0ZWQ6ICIgKyBkZi5mb3JtYXQoZCwgc2IsIGZwKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5MDUwNCByZWdyZXNzaW9uIHRlc3QgZmFpbGVkLiBNZXNzYWdlIDogIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UoU3RyaW5nIHN0ciwgUGFyc2VQb3NpdGlvbiBwcCkgbG9zZXMgcHJlY2lzaW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTU3MTMgKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgc3RyID0gIjAuMTIzNCI7CisgICAgICAgIERvdWJsZSBkMSA9IG5ldyBEb3VibGUoc3RyKTsKKyAgICAgICAgTnVtYmVyIGQyID0gZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGxvZ2xuKGQxLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZDIuZG91YmxlVmFsdWUoKSAhPSBkMS5kb3VibGVWYWx1ZSgpKQorICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDk1NzEzIHRlc3QgZmFpbGVkLCBuZXcgZG91YmxlIHZhbHVlIDogIiArIGQyLmRvdWJsZVZhbHVlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UoKSBmYWlscyB3aGVuIG11bHRpcGxpZXIgaXMgbm90IHNldCB0byAxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTI1NjEgKCkKKyAgICB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgc3RyID0gTG9uZy50b1N0cmluZyhMb25nLk1JTl9WQUxVRSk7CisgICAgICAgIGxvZ2xuKCJMb25nLk1JTl9WQUxVRSA6ICIgKyBkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKS50b1N0cmluZygpKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcigxMDApOworICAgICAgICBOdW1iZXIgbnVtID0gZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmIChudW0uZG91YmxlVmFsdWUoKSAhPSAtOS4yMjMzNzIwMzY4NTQ3NzZFMTYpIHsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5MjU2MSB0ZXN0IGZhaWxlZCB3aGVuIG11bHRpcGxpZXIgaXMgc2V0IHRvIG5vdCAxLiIpOworICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0OiBOZWdhdGl2ZSBmb3JtYXQgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjQ4MCAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZkZvbyA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMDAiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGZGb28uYXBwbHlQYXR0ZXJuKCIwMDAwOy0wMDAiKTsKKyAgICAgICAgICAgIGlmICghZGZGb28udG9QYXR0ZXJuKCkuZXF1YWxzKCIjMDAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisgICAgICAgICAgICBkZkZvby5hcHBseVBhdHRlcm4oIjAwMDstMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwOy0wMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwMDstMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMDAiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZGZGb28udG9QYXR0ZXJuIDogIiArIGRmRm9vLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCg0MikpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KC00MikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZSAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoKSBwcm9kdWNlcyBmb3JtYXQgdGhhdCB1c2VzCisgICAgICogZGVjaW1hbCBzZXBhcmF0b3IgaW5zdGVhZCBvZiBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIFJld3JvdGUgdGhpcyB0ZXN0IG5vdCB0byBkZXBlbmQgb24gdGhlIGFjdHVhbCBwYXR0ZXJuLiAgUGF0dGVybiBzaG91bGQKKyAgICAgKiBuZXZlciBjb250YWluIHRoZSBtb25ldGFyeSBzZXBhcmF0b3IhICBEZWNpbWFsIHNlcGFyYXRvciBpbiBwYXR0ZXJuIGlzCisgICAgICogaW50ZXJwcmV0ZWQgYXMgbW9uZXRhcnkgc2VwYXJhdG9yIGlmIGN1cnJlbmN5IHN5bWJvbCBpcyBzZWVuIQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3MjQ0ICgpIHsKKyAgICAgICAgTG9jYWxlIGRlID0gbmV3IExvY2FsZSgicHQiLCAiUFQiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShkZSk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IGRmLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIHN5bS5zZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoJyQnKTsKKyAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBjaGFyIGRlY1NlcCA9IHN5bS5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGNoYXIgbW9uU2VwID0gc3ltLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAvL2NoYXIgemVybyA9IHN5bS5nZXRaZXJvRGlnaXQoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBpZiAoZGVjU2VwID09IG1vblNlcCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIHRlc3Q6IHdhbnQgZGVjaW1hbCBzZXAgIT0gbW9uZXRhcnkgc2VwIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygxKTsKKyAgICAgICAgICAgIGRmLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygyKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBkZi5mb3JtYXQoMS4yMyk7CisgICAgICAgICAgICBTdHJpbmcgbW9uU3RyID0gIjEiICsgbW9uU2VwICsgIjIzIjsKKyAgICAgICAgICAgIFN0cmluZyBkZWNTdHIgPSAiMSIgKyBkZWNTZXAgKyAiMjMiOworICAgICAgICAgICAgaWYgKHN0ci5pbmRleE9mKG1vblN0cikgPj0gMCAmJiBzdHIuaW5kZXhPZihkZWNTdHIpIDwgMCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogMS4yMyAtPiBcIiIgKyBzdHIgKyAiXCIgY29udGFpbnMgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICBtb25TdHIgKyAiXCIgYW5kIG5vdCBcIiIgKyBkZWNTdHIgKyAnIicpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMS4yMyAtPiBcIiIgKyBzdHIgKyAiXCIsIHNob3VsZCBjb250YWluIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgbW9uU3RyICsKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgYW5kIG5vdCBcIiIgKyBkZWNTdHIgKyAnIicpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlciBmb3JtYXQgZGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIGxvY2FsZSBGUgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcwNzk4ICgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgICAgIC8qIFVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01XHUwMGEwNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjVcdTAwYTA3ODksOTggRiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OFx1MDBhMDk5OCUiOworICAgICAgICAqLworICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01XHUwMGEwNzg5LDk4OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjVcdTAwYTA3ODksOTkgIiArIEVVUk87IC8vIGV1cm8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4XHUwMGEwOTk5XHUwMGEwJSI7CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzA3OTggZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIDU3ODkuOTg3NiApOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzA3OTggY3VycmVuY3kgdGVzdCBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZEN1cnJlbmN5ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MDc5OCBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIEZyZW5jaCAoQ2FuYWRhKSBsb2NhbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTAwNSAoKSB7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgLyogdXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUgNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjUgNzg5LDk4ICQiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzggOTk4JSI7CisgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNVx1MDBhMDc4OSw5ODgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1XHUwMGEwNzg5LDk5ICQiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzhcdTAwYTA5OTlcdTAwQTAlIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIDU3ODkuOTg3NiApIDsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRDdXJyZW5jeSkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IGN1cnJlbmN5IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkQ3VycmVuY3kgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkUGVyY2VudCkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDA1IHBlcmNlbnRhZ2UgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQZXJjZW50ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGEgcm91bmRpbmcgZXJyb3JzIGZvciBHZXJtYW4gKEdlcm1hbnkpIGxvY2FsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMDE0ICgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgICAgIC8qIHVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01Ljc4OSw5ODciOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1Ljc4OSw5OCBETSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTglIjsKKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNS43ODksOTkgIiArIEVVUk87CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTklIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMTQgZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCggNTc4OS45ODc2ICkgOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMTQgY3VycmVuY3kgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAxNCBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgIH0KKyAgICAvKioKKyAgICAgKiBEYXRhIHJvdW5kaW5nIGVycm9ycyBmb3IgSXRhbGlhbiBsb2NhbGUgbnVtYmVyIGZvcm1hdHMKKyAgICAgKiBOb3RlLSB3aXRoIHRoZSBFdXJvLCB0aGVyZSBpcyBubyBuZWVkIGZvciBjdXJyZW5jeSByb3VuZGluZyBhbnltb3JlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzE4NTkgKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTdHJpbmcgdGVtcFN0cmluZzsKKyAgICAgICAgLyogdXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUuNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIi1MLiA1Ljc4OSw5OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTglIjsKKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiLSIgKyBFVVJPICsgIiA1Ljc4OSw5OSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OC45OTklIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLklUQUxZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxODU5IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiYSkgRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5JVEFMWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KCAtNTc4OS45ODc2ICkgOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzE4NTkgY3VycmVuY3kgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiYikgRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5JVEFMWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRQZXJjZW50KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzE4NTkgcGVyY2VudGFnZSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJjKSBGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZFBlcmNlbnQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICB9CisgICAgLyogYnVnIDQwNzE4NTkKKyAgICAgKiBUZXN0IHJvdW5kaW5nIGZvciBuZWFyZXN0IGV2ZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTM2MTAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjMC4jIik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuMzUsICIxMi40Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNDUsICIxMi40Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNDUyLCIxMi41Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNTUsICIxMi42Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNjUsICIxMi42Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNjUyLCIxMi43Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNzUsICIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuNzUyLCIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuODUsICIxMi44Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuODUyLCIxMi45Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuOTUsICIxMyIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjk1MiwiMTMiKTsKKworICAgIH0KKyAgICB2b2lkIHJvdW5kaW5nVGVzdChEZWNpbWFsRm9ybWF0IGRmLCBkb3VibGUgeCwgU3RyaW5nIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG91dCA9IGRmLmZvcm1hdCh4KTsKKyAgICAgICAgbG9nbG4oIiIgKyB4ICsgIiBmb3JtYXRzIHdpdGggMSBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkKSkgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIHRoZSBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMgbGltaXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTg3NDEoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIwKTsKKyAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoLjAwMSkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICB3YXJubG4oIkJ1ZyA0MDk4NDcxIGZhaWxlZCB3aXRoIGV4Y2VwdGlvbiB0aHJvd24gOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgaWxsZWdhbCBwYXR0ZXJuIGV4Y2VwdGlvbi4KKyAgICAgKiBGaXggY29tbWVudCA6IEhTaGloIEEzMSBQYXJ0MSB3aWxsIG5vdCBiZSBmaXhlZCBhbmQgamF2YWRvYyBuZWVkcyB0byBiZSB1cGRhdGVkLgorICAgICAqIFBhcnQyIGhhcyBiZWVuIGZpeGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc0NDU0KCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMDstIy4jIik7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0IDM0NTYuNzg6ICIgKyBmbXQuZm9ybWF0KDM0NTYuNzgpKTsgLy9maXggIlRoZSB2YXJpYWJsZSAnZm10JyBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgbG9nbG4oIkluY29uc2lzdGVudCBuZWdhdGl2ZSBwYXR0ZXJuIGlzIGZpbmUuIik7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG5ld0ZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMCBwJydpZWNlczstIywjMDAuMDAgcCcnaWVjZXMiKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nID0gbmV3Rm10LmZvcm1hdCgzNDU2Ljc4KTsKKyAgICAgICAgICAgIGlmICghdGVtcFN0cmluZy5lcXVhbHMoIjMsNDU2Ljc4IHAnaWVjZXMiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkISAgMzQ1Ni43OCBwJ2llY2VzIGV4cGVjdGVkLCBidXQgZ290IDogIiArIHRlbXBTdHJpbmcpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICB3YXJubG4oIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGZvciBhbnkgaW5jb25zaXN0ZW50IG5lZ2F0aXZlIHBhdHRlcm4uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgYWxsIGRpZmZlcmVudCBjb21tZW50cy4KKyAgICAgKiBSZXNwb25zZSB0byBzb21lIGNvbW1lbnRzIDoKKyAgICAgKiBbMV0gRGVjaW1hbEZvcm1hdC5wYXJzZSBBUEkgZG9jdW1lbnRhdGlvbiBpcyBtb3JlIHRoYW4ganVzdCBvbmUgbGluZS4KKyAgICAgKiBUaGlzIGlzIG5vdCBhIHJlcHJvZHVjYWJsZSBkb2MgZXJyb3IgaW4gMTE2IHNvdXJjZSBjb2RlLgorICAgICAqIFsyXSBTZWUgdXBkYXRlZCBqYXZhZG9jLgorICAgICAqIFszXSBGaXhlZC4KKyAgICAgKiBbNF0gTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikgOiBJZiBwYXJzaW5nIGZhaWxzLAorICAgICAqIGEgbnVsbCBvYmplY3Qgd2lsbCBiZSByZXR1cm5lZC4gIFRoZSB1bmNoYW5nZWQgcGFyc2UgcG9zaXRpb24gYWxzbworICAgICAqIHJlZmxlY3RzIGFuIGVycm9yLgorICAgICAqIE51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcpIDogSWYgcGFyc2luZyBmYWlscywgYW4gUGFyc2VFeGNlcHRpb24KKyAgICAgKiB3aWxsIGJlIHRocm93bi4KKyAgICAgKiBTZWUgdXBkYXRlZCBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogWzVdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzZdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzddIFRoaXMgaXMgYSBjb3JyZWN0IGJlaGF2aW9yIGlmIHRoZSBEYXRlRm9ybWF0IG9iamVjdCBpcyBsaW5pZW50LgorICAgICAqIE90aGVyd2lzZSwgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIHdoZW4gZm9ybWF0dGluZworICAgICAqICJKYW51YXJ5IDM1Ii4gIFNlZSBHcmVnb3JpYW5DYWxlbmRhciBjbGFzcyBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTk0MDQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwMC4wIzAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQgMzQ1Ni43ODogIiArIGZtdC5mb3JtYXQoMzQ1Ni43OCkpOyAvL2ZpeCAiVGhlIHZhcmlhYmxlICdmbXQnIGlzIG5ldmVyIHVzZWQiCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTk0MDQgZmFpbGVkIGFwcGx5aW5nIGlsbGVnYWwgcGF0dGVybiBcIjAwMC4wIzBcIiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQnVnIDQwOTk0MDQgcGF0dGVybiBcIjAwMC4wIzBcIiBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMCMwLjAwMCIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAzNDU2Ljc4OiAiICsgZm10LmZvcm1hdCgzNDU2Ljc4KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgJ2ZtdCcgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5OTQwNCBmYWlsZWQgYXBwbHlpbmcgaWxsZWdhbCBwYXR0ZXJuIFwiMCMwLjAwMFwiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGxvZ2xuKCJCdWcgNDA5OTQwNCBwYXR0ZXJuIFwiMCMwLjAwMFwiIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuIGRvZXNuJ3Qgc2V0IG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTQ4MSgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IHNkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMCIpOworICAgICAgICBpZiAoc2RmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMSkKKyAgICAgICAgICAgIGVycmxuKCJNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgUGFyc2VQb3NpdGlvbi5zZXRFcnJvclBvc2l0aW9uKCkgYW5kIFBhcnNlUG9zaXRpb24uZ2V0RXJyb3JQb3NpdGlvbigpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyMjIzKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMCIpOworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdC5wYXJzZSgiYWJjMyIpOworICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDUyMjIzIGZhaWxlZCA6IGNhbid0IHBhcnNlIHN0cmluZyBcImFcIi4gIEdvdCAiICsgbnVtKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQ2F1Z2h0IGV4cGVjdGVkIFBhcnNlRXhjZXB0aW9uIDogIiArIGZvby5nZXRNZXNzYWdlKCkgKyAiIGF0IGluZGV4IDogIiArIGZvby5nZXRFcnJvck9mZnNldCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEE5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYxMzAyKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBTdHJpbmcgY3VycmVuY3kgPSBmbXQuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgU3RyaW5nIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgY2hhciBtb25EZWNTZXBhcmF0b3IgPSBmbXQuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGlmIChjdXJyZW5jeS5lcXVhbHMoIiIpIHx8CisgICAgICAgICAgICBpbnRsQ3VycmVuY3kuZXF1YWxzKCIiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDdXJyZW5jeVN5bWJvbHMgZmFpbGVkLCBnb3QgZW1wdHkgc3RyaW5nLiIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJCZWZvcmUgc2V0ID09PiBDdXJyZW5jeSA6ICIgKyBjdXJyZW5jeSArICIgSW50bCBDdXJyZW5jeSA6ICIgKyBpbnRsQ3VycmVuY3kgKyAiIE1vbmV0YXJ5IERlY2ltYWwgU2VwYXJhdG9yIDogIiArIG1vbkRlY1NlcGFyYXRvcik7CisgICAgICAgIGZtdC5zZXRDdXJyZW5jeVN5bWJvbCgiWFlaIik7CisgICAgICAgIGZtdC5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woIkFCQyIpOworICAgICAgICBmbXQuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCcqJyk7CisgICAgICAgIGN1cnJlbmN5ID0gZm10LmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgbW9uRGVjU2VwYXJhdG9yID0gZm10LmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBpZiAoIWN1cnJlbmN5LmVxdWFscygiWFlaIikgfHwKKyAgICAgICAgICAgICFpbnRsQ3VycmVuY3kuZXF1YWxzKCJBQkMiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yICE9ICcqJykgeworICAgICAgICAgICAgZXJybG4oInNldEN1cnJlbmN5U3ltYm9scyBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkFmdGVyIHNldCA9PT4gQ3VycmVuY3kgOiAiICsgY3VycmVuY3kgKyAiIEludGwgQ3VycmVuY3kgOiAiICsgaW50bEN1cnJlbmN5ICsgIiBNb25ldGFyeSBEZWNpbWFsIFNlcGFyYXRvciA6ICIgKyBtb25EZWNTZXBhcmF0b3IpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEEyMy4gRmllbGRQb3NpdGlvbi5nZXRCZWdpbkluZGV4IGFuZAorICAgICAqIEZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjI0ODYoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuMDAiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZvcm1hdHRlZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBEb3VibGUgbnVtID0gbmV3IERvdWJsZSgxMjM0LjUpOworICAgICAgICBmbXQuZm9ybWF0KG51bSwgZm9ybWF0dGVkLCBmaWVsZCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gMCAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDUpCisgICAgICAgICAgICBlcnJsbigiRm9ybWF0IDEyMzQuNSBmYWlsZWQuIEJlZ2luIGluZGV4OiAiICsgZmllbGQuZ2V0QmVnaW5JbmRleCgpICsgIiBFbmQgaW5kZXg6ICIgKyBmaWVsZC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgZmllbGQuc2V0QmVnaW5JbmRleCg3KTsKKyAgICAgICAgZmllbGQuc2V0RW5kSW5kZXgoNCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gNyAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDQpCisgICAgICAgICAgICBlcnJsbigiU2V0IGJlZ2luL2VuZCBmaWVsZCBpbmRleGVzIGZhaWxlZC4gQmVnaW4gaW5kZXg6ICIgKyBmaWVsZC5nZXRCZWdpbkluZGV4KCkgKyAiIEVuZCBpbmRleDogIiArIGZpZWxkLmdldEVuZEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgaW5jb3JyZWN0bHkgd29ya3Mgd2l0aCBhIGdyb3VwIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODczOCgpCisgICAgeworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMjIiwgbmV3CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzKGphdmEudXRpbC5Mb2NhbGUuVVMpKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiMS4yMjIsMTExIjsKKyAgICAgICAgTnVtYmVyIG51bSA9IGRmLnBhcnNlKHRleHQsbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIW51bS50b1N0cmluZygpLmVxdWFscygiMS4yMjIiKSkKKyAgICAgICAgICAgIGVycmxuKCJcIiIgKyB0ZXh0ICsgIlwiICBpcyBwYXJzZWQgYXMgIiArIG51bSk7CisgICAgICAgIHRleHQgPSAiMS4yMjJ4MTExIjsKKyAgICAgICAgbnVtID0gZGYucGFyc2UodGV4dCxuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghbnVtLnRvU3RyaW5nKCkuZXF1YWxzKCIxLjIyMiIpKQorICAgICAgICAgICAgZXJybG4oIlwiIiArIHRleHQgKyAiXCIgIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGluY29ycmVjdGx5IGZvcm1hdHMgbmVnYXRpdmUgZG91Ymxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY1OCgpCisgICAgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICBkb3VibGUgZDEgPSAtMC4wOworICAgICAgICBkb3VibGUgZDIgPSAtMC4wMDAxOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgZGYuZm9ybWF0KGQxLCBidWZmZXIsIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFidWZmZXIudG9TdHJpbmcoKS5lcXVhbHMoIi0wIikpIHsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICAgICAgZXJybG4oZDEgKyAiICAgICAgaXMgZm9ybWF0dGVkIGFzICIgKyBidWZmZXIpOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGRmLmZvcm1hdChkMiwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQyICsgIiAgICAgIGlzIGZvcm1hdHRlZCBhcyAiICsgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlZExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSByZXR1cm5zIDAgaWYgc3RyaW5nIHBhcmFtZXRlciBpcyBpbmNvcnJlY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NjIoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gIngiOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvczEgPSBuZXcgUGFyc2VQb3NpdGlvbigwKSwgcG9zMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBOdW1iZXIgbnVtID0gZGYucGFyc2UodGV4dCwgcG9zMSk7CisgICAgICAgIGlmIChudW0gIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgRmFpbGVkOiBcIiIgKyB0ZXh0ICsgIlwiIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICAgICAgfQorICAgICAgICBkZiA9IG51bGw7CisgICAgICAgIGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiQjIyMuMDAiKTsKKyAgICAgICAgbnVtID0gZGYucGFyc2UoIiQiLCBwb3MyKTsKKyAgICAgICAgaWYgKG51bSAhPSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IEZhaWxlZDogXCIkXCIgaXMgcGFyc2VkIGFzICIgKyBudW0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LnBhcnNlIGRvZXNuJ3QgcmV0dXJuIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDYzOSgpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRpbWUgMTA6eCI7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oOCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBmb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSBlcnJsbigiU2hvdWxkIHJldHVybiBudWxsIGJ1dCBnb3QgOiAiICsgcmVzdWx0KTsgLy8gU2hvdWxkIGJlIG51bGw7IGl0IGlzbid0CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQobG9uZyBuKSBmYWlscyBpZiBuICogbXVsdGlwbGllciA+IE1BWF9MT05HLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY0KCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBsb25nIG4gPSAxMjM0NTY3ODkwMTIzNDU2TDsKKyAgICAgICAgaW50IG0gPSAxMjM0NTY3ODsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdOID0gQmlnSW50ZWdlci52YWx1ZU9mKG4pOworICAgICAgICBiaWdOID0gYmlnTi5tdWx0aXBseShCaWdJbnRlZ2VyLnZhbHVlT2YobSkpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKG0pOworICAgICAgICBkZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBsb2dsbigiZm9ybWF0ZWQ6ICIgKworICAgICAgICAgICAgZGYuZm9ybWF0KG4sIG5ldyBTdHJpbmdCdWZmZXIoKSwgbmV3IEZpZWxkUG9zaXRpb24oMCkpKTsKKyAgICAgICAgbG9nbG4oImV4cGVjdGVkOiAiICsgYmlnTi50b1N0cmluZygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQgaW5jb3JyZWN0bHkgZm9ybWF0cyAtMC4wLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY3KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBkb3VibGUgZCA9IC0wLjA7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBkZi5mb3JtYXQoZCwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQgKyAiICBpcyBmb3JtYXR0ZWQgYXMgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB3b3JrcyBpbmNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMDkzNigpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoMTI4KTsKKyAgICAgICAgbG9nbG4oInNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDEyOCkiKTsKKyAgICAgICAgaWYgKG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMTI4KQorICAgICAgICAgICAgZXJybG4oImdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICBuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9jYWxlIGRhdGEgc2hvdWxkIHVzZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbAorICAgICAqCisgICAgICogMSkgTWFrZSBzdXJlIHRoYXQgYWxsIGN1cnJlbmN5IGZvcm1hdHMgdXNlIHRoZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgKiAyKSBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgdXNpbmcgdGhlIGdlbmVyaWMgc3ltYm9sIG9yIGEKKyAgICAgKiAgICBoYXJkLWNvZGVkIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyMjg0MCgpCisgICAgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsbG9jYWxlc1tpXSk7CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbmN5IHBhdHRlcm4gZm9yIHRoaXMgbG9jYWxlLiAgV2UgaGF2ZSB0byBmaXNoIGl0CisgICAgICAgICAgICAvLyBvdXQgb2YgdGhlIFJlc291cmNlQnVuZGxlIGRpcmVjdGx5LCBzaW5jZSBEZWNpbWFsRm9ybWF0LnRvUGF0dGVybgorICAgICAgICAgICAgLy8gd2lsbCByZXR1cm4gdGhlIGxvY2FsaXplZCBzeW1ib2wsIG5vdCBcMDBhNAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG51bVBhdHRlcm5zID0gcmIuZ2V0KCJOdW1iZXJQYXR0ZXJucyIpOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBudW1QYXR0ZXJucy5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuLmluZGV4T2YoJ1x1MDBBNCcpID09IC0xICkgeyAvLyAneCcgbm90ICJ4IiAtLSB3b3JrYXJvdW5kIGJ1ZyBpbiBJQk0gSkRLIDEuNC4xCisgICAgICAgICAgICAgICAgZXJybG4oIkN1cnJlbmN5IGZvcm1hdCBmb3IgIiArIGxvY2FsZXNbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiBkb2VzIG5vdCBjb250YWluIGdlbmVyaWMgY3VycmVuY3kgc3ltYm9sOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IHVzaW5nIHRoZSBwYXR0ZXJuIHdlIGdvdCBhbmQgZm9ybWF0IGEgbnVtYmVyCisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQxID0gZm10MS5mb3JtYXQoMS4xMTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm93IHN1YnN0aXR1dGUgaW4gdGhlIGxvY2FsZSdzIGN1cnJlbmN5IHN5bWJvbCBhbmQgY3JlYXRlIGFub3RoZXIKKyAgICAgICAgICAgIC8vIHBhdHRlcm4uICBSZXBsYWNlIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIHRoZSBtb25ldGFyeSBzZXBhcmF0b3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9jaGFyIGRlY1NlcCA9IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgICAgICBjaGFyIG1vblNlcCA9IHN5bWJvbHMuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgYnVmLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmNoYXJBdChqKSA9PSAnXHUwMGE0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VyID0gIiciICsgc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpICsgIiciOworICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShqLCBqKzEsIGN1cik7IAorICAgICAgICAgICAgICAgICAgICBqICs9IGN1ci5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ltYm9scy5zZXREZWNpbWFsU2VwYXJhdG9yKG1vblNlcCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDIgPSBuZXcgRGVjaW1hbEZvcm1hdChidWYudG9TdHJpbmcoKSwgc3ltYm9scyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQyID0gZm10Mi5mb3JtYXQoMS4xMTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOT1RFOiBlbl9JTiBpcyBhIHNwZWNpYWwgY2FzZSAoQ2hvaWNlRm9ybWF0IGN1cnJlbmN5IGRpc3BsYXkgbmFtZSkKKyAgICAgICAgICAgIGlmICghcmVzdWx0MS5lcXVhbHMocmVzdWx0MikgJiYKKyAgICAgICAgICAgICAgICAhbG9jYWxlc1tpXS50b1N0cmluZygpLmVxdWFscygiZW5fSU4iKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXN1bHRzIGZvciAiICsgbG9jYWxlc1tpXSArICIgZGlmZmVyOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxICsgIiB2cyAiICsgcmVzdWx0Mik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgZGVsaXZlcnMgd3Jvbmcgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI1ODg1KCkKKyAgICB7CisgICAgICAgIGRvdWJsZSByYXRlID0gMTIuMzQ7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0RGVjID0gbmV3IERlY2ltYWxGb3JtYXQgKCIwMDAuMDAiKTsKKyAgICAgICAgbG9nbG4oInRvUGF0dGVybjogIiArIGZvcm1hdERlYy50b1BhdHRlcm4oKSk7CisgICAgICAgIFN0cmluZyByYXRlU3RyaW5nPSBmb3JtYXREZWMuZm9ybWF0KHJhdGUpOworICAgICAgICBpZiAoIXJhdGVTdHJpbmcuZXF1YWxzKCIwMTIuMzQiKSkKKyAgICAgICAgICAgIGVycmxuKCJyZXN1bHQgOiAiICsgcmF0ZVN0cmluZyArICIgZXhwZWN0ZWQgOiAwMTIuMzQiKTsKKyAgICAgICAgcmF0ZSA9IDAuMTIzNDsKKyAgICAgICAgZm9ybWF0RGVjID0gbnVsbDsKKyAgICAgICAgZm9ybWF0RGVjID0gbmV3IERlY2ltYWxGb3JtYXQgKCIrMDAwLjAwJTstMDAwLjAwJSIpOworICAgICAgICBsb2dsbigidG9QYXR0ZXJuOiAiICsgZm9ybWF0RGVjLnRvUGF0dGVybigpKTsKKyAgICAgICAgcmF0ZVN0cmluZz0gZm9ybWF0RGVjLmZvcm1hdChyYXRlKTsKKyAgICAgICAgaWYgKCFyYXRlU3RyaW5nLmVxdWFscygiKzAxMi4zNCUiKSkKKyAgICAgICAgICAgIGVycmxuKCJyZXN1bHQgOiAiICsgcmF0ZVN0cmluZyArICIgZXhwZWN0ZWQgOiArMDEyLjM0JSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqKgorICAgICAqIERlY2ltYWxGb3JtYXQgcHJvZHVjZXMgZXh0cmEgemVyb3Mgd2hlbiBmb3JtYXR0aW5nIG51bWJlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzQwMzQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgbmYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyMsIyMjLCMjIy4wMCIpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGYgPSBuZi5mb3JtYXQoOS4wMik7CisgICAgICAgIGlmIChmLmVxdWFscygiOS4wMiIpKSBsb2dsbihmICsgIiBvayIpOyBlbHNlIGVycmxuKCI5LjAyIC0+ICIgKyBmICsgIjsgd2FudCA5LjAyIik7CisKKyAgICAgICAgZiA9IG5mLmZvcm1hdCgwKTsKKyAgICAgICAgaWYgKGYuZXF1YWxzKCIuMDAiKSkgbG9nbG4oZiArICIgb2siKTsgZWxzZSBlcnJsbigiMCAtPiAiICsgZiArICI7IHdhbnQgLjAwIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ0FOTk9UIFJFUFJPRFVDRSAtIFRoaXMgYnVnIGNvdWxkIG5vdCBiZSByZXByb2R1Y2VkLiAgSXQgbWF5IGJlCisgICAgICogYSBkdXBsaWNhdGUgb2YgNDEzNDAzNC4KKyAgICAgKgorICAgICAqIEpESyAxLjEuNiBCdWcsIGRpZCBOT1Qgb2NjdXIgaW4gMS4xLjUKKyAgICAgKiBQb3NzaWJseSByZWxhdGVkIHRvIGJ1ZyA0MTI1ODg1LgorICAgICAqIAorICAgICAqIFRoaXMgY2xhc3MgZGVtb25zdHJhdGVzIGEgcmVncmVzc2lvbiBpbiB2ZXJzaW9uIDEuMS42CisgICAgICogb2YgRGVjaW1hbEZvcm1hdCBjbGFzcy4KKyAgICAgKiAKKyAgICAgKiAxLjEuNiBSZXN1bHRzCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjLjAwIFJlc3VsdCAnMDEuMjAnICEhIXdyb25nCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAwLjAwIFJlc3VsdCAnMDAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMDAuMDAgUmVzdWx0ICcwMDAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMCMgUmVzdWx0ICcxLjInCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjMC4wMCBSZXN1bHQgJzAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiAKKyAgICAgKiAxLjEuNSBSZXN1bHRzCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAuMDAgUmVzdWx0ICcxLjIwJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMDAuMDAgUmVzdWx0ICcwMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAjIFJlc3VsdCAnMS4yJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMDAgUmVzdWx0ICcxLjIwJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTM0MzAwKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgLy8gUGF0dGVybiAgICAgIEV4cGVjdGVkIHN0cmluZworICAgICAgICAgICAgIiMuMDAiLCAgICAgICIxLjIwIiwKKyAgICAgICAgICAgICIwLjAwIiwgICAgICAiMS4yMCIsCisgICAgICAgICAgICAiMDAuMDAiLCAgICAgIjAxLjIwIiwKKyAgICAgICAgICAgICIjMC4wIyIsICAgICAiMS4yIiwKKyAgICAgICAgICAgICIjMC4wMCIsICAgICAiMS4yMCIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5ldyBEZWNpbWFsRm9ybWF0KERBVEFbaV0pLmZvcm1hdCgxLjIpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogMS4yIHggIiArIERBVEFbaV0gKyAiID0gIiArIHJlc3VsdCArCisgICAgICAgICAgICAgICAgICAgICAgIjsgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogMS4yIHggIiArIERBVEFbaV0gKyAiID0gIiArIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBwYXR0ZXJuIHByb2R1Y2VzIGRvdWJsZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDAwMDkoKSB7CisgICAgICAgIGZpbmFsIGRvdWJsZSBJTltdICA9IHsgIDEyMy40NTYsICAgLTEyMy40NTYgIH07CisgICAgICAgIGZpbmFsIFN0cmluZyBPVVRbXSA9IHsgIjEyMy40NTYiLCAiLTEyMy40NTYiIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwyOyArK2kpIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG51bGw7CisgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCkpOworICAgICAgICAgICAgICAgIGYuYXBwbHlQYXR0ZXJuKCIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwyOyArK2opIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIjxlbXB0eSBwYXQgIiArIGkgKyAiPi5mb3JtYXQoIiArIElOW2pdICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVRbal0sIGYuZm9ybWF0KElOW2pdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogQmlnRGVjaW1hbCBudW1iZXJzIGdldCB0aGVpciBmcmFjdGlvbnMgdHJ1bmNhdGVkIGJ5IE51bWJlckZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MTc1MCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSAiMTIzNDUuNjciOworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZCA9IG5ldyBCaWdEZWNpbWFsKHN0cik7CisgICAgICAgICAgICBTdHJpbmcgc2QgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKS5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKCFzZC5lbmRzV2l0aCgiNjciKSkgZXJybG4oIkZhaWw6ICIgKyBzdHIgKyAiIHggZm9ybWF0IC0+ICIgKyBzZCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHRvUGF0dGVybigpIGRvZXNuJ3QgcXVvdGUgc3BlY2lhbCBjaGFyYWN0ZXJzIG9yIGhhbmRsZQorICAgICAqIHNpbmdsZSBxdW90ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU0NTcoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICAgICAgc3ltLnNldERlY2ltYWxTZXBhcmF0b3IoJ1wnJyk7CisgICAgICAgICAgICBuZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICAgICAgZG91YmxlIHBpID0gMy4xNDE1OTsKKworICAgICAgICAgICAgU3RyaW5nW10gUEFUUyA9IHsgIiMuMDAgJ251bScnYmVyJyIsICInJyMuMDAnJyIgfTsKKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPFBBVFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4oUEFUU1tpXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IG5mLnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGRvdWJsZSB2YWwgPSBuZi5wYXJzZShvdXQpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0MiA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBuZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgdmFsMiA9IG5mLnBhcnNlKG91dDIpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXBhdC5lcXVhbHMocGF0MikpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIHdpdGggXCIiICsgUEFUU1tpXSArICJcIjogUGF0dGVybnMgc2hvdWxkIGNvbmN1ciwgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0ICsgIlwiIHZzLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2sgXCIiICsgUEFUU1tpXSArICJcIiB0b1BhdHRlcm4oKSAtPiBcIiIgKyBwYXQgKyAnIicpOworCisgICAgICAgICAgICAgICAgaWYgKHZhbCA9PSB2YWwyICYmIG91dC5lcXVhbHMob3V0MikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oKSBzZXRzIG1pbmltdW0gaW50ZWdlciBkaWdpdHMgaW5jb3JyZWN0bHkuCisgICAgICogQ0FOTk9UIFJFUFJPRFVDRQorICAgICAqIFRoaXMgYnVnIGlzIGEgZHVwbGljYXRlIG9mIDQxMzkzNDQsIHdoaWNoIGlzIGEgZHVwbGljYXRlIG9mIDQxMzQzMDAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzI5NSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIjLCMjIyI7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuIFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgaW50IG1pbkludERpZyA9IHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICBpZiAobWluSW50RGlnICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgZXJybG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgICAgICBlcnJsbigiIG5ldyBwYXR0ZXJuOiAiICsgc2RmLnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICAgICAgbG9nbG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgLTAuMCBhcyArMC4wCisgICAgICogU2VlIGFsc28gb2xkZXIgcmVsYXRlZCBidWcgNDEwNjY1OCwgNDEwNjY2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ3NzA2KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAjIyIpOworICAgICAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgZG91YmxlIGQxID0gLTAuMDsKKyAgICAgICAgZG91YmxlIGQyID0gLTAuMDAwMTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYxID0gZGYuZm9ybWF0KGQxLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYyID0gZGYuZm9ybWF0KGQyLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFmMS50b1N0cmluZygpLmVxdWFscygiLTAuMCIpKSB7CisgICAgICAgICAgICBlcnJsbihkMSArICIgeCBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiBpcyBmb3JtYXR0ZWQgYXMgXCIiICsgZjEgKyAnIicpOworICAgICAgICB9CisgICAgICAgIGlmICghZjIudG9TdHJpbmcoKS5lcXVhbHMoIi0wLjAiKSkgeworICAgICAgICAgICAgZXJybG4oZDIgKyAiIHggXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIgaXMgZm9ybWF0dGVkIGFzIFwiIiArIGYyICsgJyInKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdCBjYW5ub3QgZm9ybWF0IERvdWJsZS5NQVhfVkFMVUUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjE5OCgpIHsKKyAgICAgICAgZG91YmxlIGRibCA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIE51bWJlckZvcm1hdCBmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKEludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZGJsKTsKKyAgICAgICAgbG9nbG4oIlRoZSBudW1iZXIgIiArIGRibCArICIgZm9ybWF0dGVkIHRvICIgKyBzKTsKKyAgICAgICAgTnVtYmVyIG4gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbiA9IGYucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUaGUgc3RyaW5nICIgKyBzICsgIiBwYXJzZWQgYXMgIiArIG4pOworICAgICAgICBpZiAobi5kb3VibGVWYWx1ZSgpICE9IGRibCkgeworICAgICAgICAgICAgZXJybG4oIlJvdW5kIHRyaXAgZmFpbHVyZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0IGRvZXMgbm90IHBhcnNlIG5lZ2F0aXZlIHplcm8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI4NTIoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZiA9IChpID09IDApID8gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkKKyAgICAgICAgICAgICAgICA6IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGRvdWJsZSBkID0gLTAuMDsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBkb3VibGUgZSA9IGYucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIiICsKKyAgICAgICAgICAgICAgICAgIGQgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgJyInICsgcyArICciJyArICIgLT4gIiArCisgICAgICAgICAgICAgIGUpOworICAgICAgICAgICAgaWYgKGUgIT0gMC4wIHx8IDEuMC9lID4gMC4wKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkZhaWxlZCB0byBwYXJzZSBuZWdhdGl2ZSB6ZXJvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQgdHJ1bmNhdGVzIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NzQ5NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgYSA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChhKTsKKyAgICAgICAgZG91YmxlIGIgPSBmbXQucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgYm9vbGVhbiBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICBsb2dsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIG9rIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIEZBSUwiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGRvbid0IHRlc3QgRG91YmxlLk1JTl9WQUxVRSBiZWNhdXNlIHRoZSBsb2NhbGUgZGF0YSBmb3IgdGhlIFVTCisgICAgICAgIC8vIGN1cnJlbnRseSBkb2Vzbid0IHNwZWNpZnkgZW5vdWdoIGRpZ2l0cyB0byBkaXNwbGF5IERvdWJsZS5NSU5fVkFMVUUuCisgICAgICAgIC8vIFRoaXMgaXMgY29ycmVjdCBmb3Igbm93OyBob3dldmVyLCB3ZSBsZWF2ZSB0aGlzIGhlcmUgYXMgYSByZW1pbmRlcgorICAgICAgICAvLyBpbiBjYXNlIHdlIHdhbnQgdG8gYWRkcmVzcyB0aGlzIGxhdGVyLgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIGEgPSBEb3VibGUuTUlOX1ZBTFVFOworICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoYSk7CisgICAgICAgICAgICBiID0gZm10LnBhcnNlKHMpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgYSArICIgLT4gXCIiICsgcyArICJcIiAtPiAiICsgYiArICIgb2siKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBhICsgIiAtPiBcIiIgKyBzICsgIlwiIC0+ICIgKyBiICsgIiBGQUlMIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlKCkgZmFpbHMgd2hlbiBQYXJzZUludGVnZXJPbmx5IHNldCB0byB0cnVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzA3OTgoKSB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICBOdW1iZXIgbiA9IGRmLnBhcnNlKCItMC4wIiwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgRG91YmxlKQorICAgICAgICAgICAgfHwgbi5pbnRWYWx1ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZShcIi0wLjBcIikgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICAgIG4gKyAiICgiICsgbi5nZXRDbGFzcygpLmdldE5hbWUoKSArICcpJyk7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIHRvUGF0dGVybiBvbmx5IHB1dHMgdGhlIGZpcnN0IGdyb3VwaW5nIHNlcGFyYXRvciBpbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NjExNCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIwMCIsICIjMDAiLAorICAgICAgICAgICAgIjAwMCIsICIjMDAwIiwgLy8gTm8gZ3JvdXBpbmcKKyAgICAgICAgICAgICIjMDAwIiwgIiMwMDAiLCAvLyBObyBncm91cGluZworICAgICAgICAgICAgIiMsIyMwIiwgIiMsIyMwIiwKKyAgICAgICAgICAgICIjLDAwMCIsICIjLDAwMCIsCisgICAgICAgICAgICAiMCwwMDAiLCAiIzAsMDAwIiwKKyAgICAgICAgICAgICIwMCwwMDAiLCAiIzAwLDAwMCIsCisgICAgICAgICAgICAiMDAwLDAwMCIsICIjLDAwMCwwMDAiLAorICAgICAgICAgICAgIjAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAiIzAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAvLyBSZXBvcnRlZAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdChEQVRBW2ldKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiwgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgaXMgaW5jb3JyZWN0bHkgcm91bmRpbmcgbnVtYmVycyBsaWtlIDEuMjUwMSB0byAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTgxOCgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICBQYXR0ZXJuICBFeHBlY3RlZCBvdXRwdXQKKyAgICAgICAgICAgICIxLjI1MTEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIxLjI1MDEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIwLjk5OTkiLCAiIyIsICAgICAiMSIsCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMiLAorICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBkb3VibGUgaW4gPSBEb3VibGUudmFsdWVPZihEQVRBW2ldKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBTdHJpbmcgb3V0ID0gZm10LmZvcm1hdChpbik7CisgICAgICAgICAgICBpZiAob3V0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaW4gKyAiIHggIiArIHBhdCArICIgPSAiICsgb3V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpbiArICIgeCAgIiArIHBhdCArICIgPSAiICsgb3V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTg1NzYxKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICAvLyBTZXQgc3BlY2lhbCB2YWx1ZXMgd2UgYXJlIGdvaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIG91dHB1dCBieXRlIHN0cmVhbQorICAgIC8vIFRoZXNlIGFyZSBhbGwgbGVnYWwgdmFsdWVzLgorICAgICAgICBuZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygweDExMSk7IC8vIEtlZXAgdW5kZXIgMzA5CisgICAgICAgIG5mLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDB4MTEyKTsgLy8gS2VlcCB1bmRlciAzMDkKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDB4MTEzKTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDB4MTE0KTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgCisgICAgICAgIG9vcy53cml0ZU9iamVjdChuZik7CisgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICBieXRlW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisKKyAgICAvLyBTY2FuIGZvciBsb2NhdGlvbnMgb2YgbWluL21heCBpbnQvZnJhY3QgdmFsdWVzIGluIHRoZSBieXRlIGFycmF5LgorICAgIC8vIEF0IHRoZSBtb21lbnQgKElDVTRKIDIuMSksIHRoZXJlIGlzIG9ubHkgb25lIGluc3RhbmNlIG9mIGVhY2ggdGFyZ2V0IHBhaXIKKyAgICAvLyBpbiB0aGUgYnl0ZSBzdHJlYW0sIHNvIGFzc3VtZSBmaXJzdCBtYXRjaCBpcyBpdC4gIE5vdGUgdGhpcyBpcyBub3QgZW50aXJlbHkKKyAgICAvLyBmYWlsc2FmZSwgYW5kIG5lZWRzIHRvIGJlIGNoZWNrZWQgaWYgd2UgY2hhbmdlIHRoZSBwYWNrYWdlIG9yIHN0cnVjdHVyZSBvZgorICAgIC8vIHRoaXMgY2xhc3MuCisgICAgLy8gQ3VycmVudCBwb3NpdGlvbnMgYXJlIDg5MCwgODgwLCA4ODYsIDg3NgorICAgICAgICBpbnRbXSBvZmZzZXRzID0gbmV3IGludFs0XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGggLSAxOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChieXRlc1tpXSA9PSAweDAxKSB7IC8vIGhpZ2ggYnl0ZQorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgb2Zmc2V0cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG9mZnNldHNbal0gPT0gMCkgJiYgKGJ5dGVzW2krMV0gPT0gKDB4MTEgKyBqKSkpIHsgLy8gbG93IGJ5dGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbal0gPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBPYmplY3QgbyA9IG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFuZi5lcXVhbHMobykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGJ1ZyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGlzIE9LQVkuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIC8vIENoYW5nZSB0aGUgdmFsdWVzIGluIHRoZSBieXRlIHN0cmVhbSBzbyB0aGF0IG1pbiA+IG1heC4KKyAgICAvLyBOdW1iZXJmb3JtYXQgc2hvdWxkIGNhdGNoIHRoaXMgYW5kIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBieXRlc1tvZmZzZXRzW2ldXSA9IChieXRlKSg0IC0gaSk7CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQ6ICIgKyBmb3JtYXQuZm9ybWF0KDEyMzQuNTYpKTsgLy9maXggIlRoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0IHdpdGggbWluWERpZ2l0cyA+IG1heFhEaWdpdHMiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEludmFsaWRPYmplY3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgLy8gU2V0IHZhbHVlcyBzbyB0aGV5IGFyZSB0b28gaGlnaCwgYnV0IG1pbiA8PSBtYXgKKyAgICAvLyBGb3JtYXQgc2hvdWxkIHBhc3MgdGhlIG1pbiA8PSBtYXggdGVzdCwgYW5kIERlY2ltYWxGb3JtYXQgc2hvdWxkIHJlc2V0IHRvIGN1cnJlbnQgbWF4aW11bQorICAgIC8vIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHZlcnNpb25zIHN0cmVhbWVkIG91dCBiZWZvcmUgdGhlIG1heGltdW1zIHdlcmUgaW1wb3NlZCkuCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnl0ZXNbb2Zmc2V0c1tpXV0gPSA0OworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IChOdW1iZXJGb3JtYXQpIG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAvL0ZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgdmVyc2lvbgorICAgICAgICAgICAgaWYgKChmb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSAhPSAzMDkpIAorICAgICAgICAgICAgICAgIHx8IGZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSAzNDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGVzZXJpYWxpemVkIGJvZ3VzIE51bWJlckZvcm1hdCB3aXRoIHZhbHVlcyBvdXQgb2YgcmFuZ2UsIiArCisgICAgICAgICAgICAgICAgICAgICAgIiBpbnRNaW46ICIgKyBmb3JtYXQuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBpbnRNYXg6ICIgKyBmb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBmcmFjTWluOiAiICsgZm9ybWF0LmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGZyYWNNYXg6ICIgKyBmb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IERpZ2l0IGNvdW50IG91dCBvZiByYW5nZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTb21lIERlY2ltYWxGb3JtYXRTeW1ib2xzIGNoYW5nZXMgYXJlIG5vdCBwaWNrZWQgdXAgYnkgRGVjaW1hbEZvcm1hdC4KKyAgICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBtaW51cyBzaWduLCBjdXJyZW5jeSBzeW1ib2wsIGludGVybmF0aW9uYWwgY3VycmVuY3kKKyAgICAgKiBzeW1ib2wsIHBlcmNlbnQsIGFuZCBwZXJtaWxsZS4gIFRoaXMgaXMgZmlsZWQgYXMgYnVncyA0MjEyMDcyIGFuZAorICAgICAqIDQyMTIwNzMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTIwNzIoKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyIsIHN5bSk7CisKKyAgICAgICAgc3ltLnNldE1pbnVzU2lnbignXicpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KC0xKS5lcXVhbHMoIl4xIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAtMSB4IChtaW51cz1eKSAtPiAiICsgZm10LmZvcm1hdCgtMSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIF4xIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0TmVnYXRpdmVQcmVmaXgoKS5lcXVhbHMoIl4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChtaW51cz1eKS5nZXROZWdhdGl2ZVByZWZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXROZWdhdGl2ZVByZWZpeCgpICsgIiwgZXhwIF4iKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0TWludXNTaWduKCctJyk7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiIyUiKTsKKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJ14nKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgwLjI1KS5lcXVhbHMoIjI1XiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMC4yNSB4IChwZXJjZW50PV4pIC0+ICIgKyBmbXQuZm9ybWF0KDAuMjUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCAyNV4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpLmVxdWFscygiXiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKHBlcmNlbnQ9XikuZ2V0UG9zaXRpdmVTdWZmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVTdWZmaXgoKSArICIsIGV4cCBeIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJyUnKTsKKyAgICAgICAgCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIiNcdTIwMzAiKTsKKyAgICAgICAgc3ltLnNldFBlck1pbGwoJ14nKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgwLjI1KS5lcXVhbHMoIjI1MF4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDAuMjUgeCAocGVybWlsbD1eKSAtPiAiICsgZm10LmZvcm1hdCgwLjI1KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgMjUwXiIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldFBvc2l0aXZlU3VmZml4KCkuZXF1YWxzKCJeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAocGVybWlsbD1eKS5nZXRQb3NpdGl2ZVN1ZmZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpICsgIiwgZXhwIF4iKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0UGVyTWlsbCgnXHUyMDMwJyk7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiXHUwMEE0Iy4wMCIpOworICAgICAgICBzeW0uc2V0Q3VycmVuY3lTeW1ib2woInVzZCIpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KDEyLjUpLmVxdWFscygidXNkMTIuNTAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDEyLjUgeCAoY3VycmVuY3k9dXNkKSAtPiAiICsgZm10LmZvcm1hdCgxMi41KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgdXNkMTIuNTAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpLmVxdWFscygidXNkIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoY3VycmVuY3k9dXNkKS5nZXRQb3NpdGl2ZVByZWZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpICsgIiwgZXhwIHVzZCIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgiJCIpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIlx1MDBBNFx1MDBBNCMuMDAiKTsKKyAgICAgICAgc3ltLnNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgiRE9MIik7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoMTIuNSkuZXF1YWxzKCJET0wxMi41MCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIuNSB4IChpbnRsY3VycmVuY3k9RE9MKSAtPiAiICsgZm10LmZvcm1hdCgxMi41KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgRE9MMTIuNTAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpLmVxdWFscygiRE9MIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoaW50bGN1cnJlbmN5PURPTCkuZ2V0UG9zaXRpdmVQcmVmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVQcmVmaXgoKSArICIsIGV4cCBET0wiKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCJVU0QiKTsKKworICAgICAgICBpZiAoVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04gPT0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoMiwyKSkgeworICAgICAgICAgICAgLy8gYnVnIGluIDIuMiB0aGF0IGZhaWxzIHRoaXMgdGVzdAorICAgICAgICAgICAgLy8gdG8gYmUgZml4ZWQgaW4gdGhlIGxhdGVyIHZlcnNpb25zCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuICAgICAgICBUZXN0IHNraXBwZWQgZm9yIHJlbGVhc2UgMi4yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNpbmNlIHRoZSBwYXR0ZXJuIGxvZ2ljIGhhcyBjaGFuZ2VkLCBtYWtlIHN1cmUgdGhhdCBwYXR0ZXJucyByb3VuZAorICAgICAgICAvLyB0cmlwIHByb3Blcmx5LiAgVGVzdCBzdHJlYW0gaW4vb3V0IGludGVncml0eSB0b28uCisgICAgICAgIExvY2FsZVtdIGF2YWlsID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGF2YWlsLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mOworICAgICAgICAgICAgICAgIHN3aXRjaCAoaikgeworICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIG5mID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoYXZhaWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IChEZWNpbWFsRm9ybWF0KSBuZjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUZXN0IHRvUGF0dGVybi9hcHBseVBhdHRlcm4gcm91bmQgdHJpcAorICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1iID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGYyID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBzeW1iKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhmMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhdmFpbFtpXSArICIgIyIgKyBqICsgIiAtPiBcIiIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgZjIudG9QYXR0ZXJuKCkgKyAnIicpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdG9Mb2NhbGl6ZWRQYXR0ZXJuL2FwcGx5TG9jYWxpemVkUGF0dGVybiByb3VuZCB0cmlwCisgICAgICAgICAgICAgICAgcGF0ID0gZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBmMi5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzMSA9IGYyLmZvcm1hdCgxMjM0NTYpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgczIgPSBkZi5mb3JtYXQoMTIzNDU2KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIXMxLmVxdWFscyhzMikpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhdmFpbFtpXSArICIgIyIgKyBqICsgIiAtPiBsb2NhbGl6ZWQgXCIiICsgczIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgczIgKyAnIicrICIgaW4gbG9jYWxlICIrZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhmMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgYXZhaWxbaV0gKyAiICMiICsgaiArICIgLT4gbG9jYWxpemVkIFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgZjIudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgKyAnIicrICIgaW4gbG9jYWxlICIrZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInMxOiAiK3MxKyIgczI6ICIrczIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGV4LmdldE1lc3NhZ2UoKSsiIGZvciBsb2NhbGUgIisgZGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIC8vIFRlc3Qgd3JpdGVPYmplY3QvcmVhZE9iamVjdCByb3VuZCB0cmlwCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGRmKTsKKyAgICAgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgICAgICBmMiA9IChEZWNpbWFsRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGYyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyZWFtIGluL291dCAiICsgYXZhaWxbaV0gKyAiIC0+IFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGYyICE9IG51bGwgPyAoIlwiIitmMi50b1BhdHRlcm4oKSsnIicpIDogIm51bGwiKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBAc2luY2UgSUNVIDIuNAorICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLCB3aGVuIHF1b3RlZCBpbiBhIHN1ZmZpeCBvcgorICAgICAgICAvLyBwcmVmaXgsIGxvc2UgdGhlaXIgc3BlY2lhbCBtZWFuaW5nLgorICAgICAgICBjaGFyW10gU1BFQ0lBTFMgPSB7ICcwJywgJywnLCAnLicsICdcdTIwMzAnLCAnJScsICcjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOycsICdFJywgJyonLCAnKycsICctJyB9OworICAgICAgICBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPFNQRUNJQUxTLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjaGFyIHNwZWNpYWwgPSBTUEVDSUFMU1tqXTsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSAiJyIgKyBzcGVjaWFsICsgIicjMCciICsgc3BlY2lhbCArICInIjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBzeW0pOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQyID0gZm10LnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGlmICghcGF0LmVxdWFscyhwYXQyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgPT4gdG9QYXR0ZXJuKCkgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0MiArICJcIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoMTIzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwID0gIiIgKyBzcGVjaWFsICsgIjEyMyIgKyBzcGVjaWFsOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIzIHggXCIiICsgcGF0ICsgIlwiID0+IFwiIiArIHMgKyAiXCIsIGV4cCBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBleHAgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXR0ZXJuIFwiIiArIHBhdCArICJcIiA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSgpIGZhaWxzIGZvciBtdWxpcGxpZXJzIDJebi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxNjc0MigpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb25nW10gREFUQSA9IHsgTG9uZy5NSU5fVkFMVUUsIExvbmcuTUFYX1ZBTFVFLCAtMTAwMDAwMDAwTCwgMTAwMDAwMDAwTH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gTG9uZy50b1N0cmluZyhEQVRBW2ldKTsKKyAgICAgICAgICAgIGZvciAoaW50IG0gPSAxOyBtIDw9IDEwMDsgbSsrKSB7CisgICAgICAgICAgICAgICAgZm10LnNldE11bHRpcGxpZXIobSk7CisgICAgICAgICAgICAgICAgbG9uZyBuID0gKChOdW1iZXIpIGZtdC5wYXJzZShzdHIpKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobiA+IDAgIT0gREFUQVtpXSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIHN0ciArICJcIiBwYXJzZSh4ICIgKyBmbXQuZ2V0TXVsdGlwbGllcigpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgPT4gIiArIG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgZm9ybWF0cyAxLjAwMSB0byAiMS4wMCIgaW5zdGVhZCBvZiAiMSIgd2l0aCAyIGZyYWN0aW9uCisgICAgICogZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjE3NjYxKCkgeworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMSksICIwIiwKKyAgICAgICAgICAgIG5ldyBEb3VibGUoMS4wMDEpLCAiMSIsCisgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDA2KSwgIjAuMDEiLAorICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAwNiksICIxLjAxIiwKKyAgICAgICAgfTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIpOyAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoKChEb3VibGUpIERBVEFbaV0pLmRvdWJsZVZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEdvdCAiICsgcyArICIsIGV4cCAiICsgREFUQVtpKzFdKTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MzAxMTogRm9ybWF0dGluZyAuNSByb3VuZHMgdG8gIjEiIGluc3RlYWQgb2YgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyNDMwMTEoKSB7CisgICAgICAgIGRvdWJsZSBEQVRBW10gPSB7MC41LCAxLjUsIDIuNSwgMy41LCA0LjV9OworICAgICAgICBTdHJpbmcgRVhQRUNURURbXSA9IHsiMC4iLCAiMi4iLCAiMi4iLCAiNC4iLCAiNC4ifTsKKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgREFUQS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhFWFBFQ1RFRFtpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MjQzMTA4OiBmb3JtYXQoMC4wKSBnaXZlcyAiMC4xIiBpZiBwcmVjZWRlZCBieSBwYXJzZSgiOTkuOTkiKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjQzMTA4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIik7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBmLmZvcm1hdCgwLjApOworICAgICAgICBpZiAocmVzdWx0LmVxdWFscygiMCIpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRvdWJsZSBkUmVzdWx0ID0gZi5wYXJzZSgiOTkuOTkiKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGRSZXN1bHQgPT0gOTkuOTkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgZFJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIGRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGYuZm9ybWF0KDAuMCk7CisgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKCIwIikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogZ290ICIgKyByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MzMwMzc3OiBEZWNpbWFsRm9ybWF0IGVuZ2luZWVyaW5nIG5vdGF0aW9uIGdpdmVzIGluY29ycmVjdCByZXN1bHRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdDQzMzAzNzcoKSB7CisgICAgICAgIC8qCisgICAgICAgIGRvdWJsZVtdIGlucHV0ID0gezUwMDAuMCwgNTAwLjAsIDUwLjAsIDUuMCwgMC41LCAwLjA1LCAwLjAwNSwgMC4wMDA1LAorICAgICAgICAgICAgICAgNTA1MC4wLCA1MDUuMCwgNTAuNSwgNS4wNSwgMC41MDUsIDAuMDUwNSwgMC4wMDUwNSwgMC4wMDA1MDV9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geyIwMDAuI0UwIiwgIiMjMC4jRTAiLCAiIzAwLiNFMCJ9OworICAgICAgICBTdHJpbmdbXVtdIGV4cGVjdGVkID0geworICAgICAgICAgICAgLy8gaXQncyBxdWVzdGlvbmFibGUgd2hldGhlciAiIzAwLiNFMCIgc2hvdWxkIHJlc3VsdCBpbiBwb3N0LWRlY2ltYWwKKyAgICAgICAgICAgIC8vIHplcm9lcywgaS5lLiwgd2hldGhlciAiNS4wRTMiLCAiNS4wRTAiLCAiNS4wRS0zIiBhcmUgcmVhbGx5IGdvb2QKKyAgICAgICAgICAgIHsiNTAwRTEiLCAiNUUzIiwgIjUuMEUzIn0sCisgICAgICAgICAgICB7IjUwMEUwIiwgIjUwMEUwIiwgIjUwMEUwIn0sCisgICAgICAgICAgICB7IjUwMEUtMSIsICI1MEUwIiwgIjUwRTAifSwKKyAgICAgICAgICAgIHsiNTAwRS0yIiwgIjVFMCIsICI1LjBFMCJ9LAorICAgICAgICAgICAgeyI1MDBFLTMiLCAiNTAwRS0zIiwgIjUwMEUtMyJ9LAorICAgICAgICAgICAgeyI1MDBFLTQiLCAiNTBFLTMiLCAiNTBFLTMifSwKKyAgICAgICAgICAgIHsiNTAwRS01IiwgIjVFLTMiLCAiNS4wRS0zIn0sCisgICAgICAgICAgICB7IjUwMEUtNiIsICI1MDBFLTYiLCAiNTAwRS02In0sCisgICAgICAgICAgICB7IjUwNUUxIiwgIjUuMDVFMyIsICI1LjA1RTMifSwKKyAgICAgICAgICAgIHsiNTA1RTAiLCAiNTA1RTAiLCAiNTA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0xIiwgIjUwLjVFMCIsICI1MC41RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0yIiwgIjUuMDVFMCIsICI1LjA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0zIiwgIjUwNUUtMyIsICI1MDVFLTMifSwKKyAgICAgICAgICAgIHsiNTA1RS00IiwgIjUwLjVFLTMiLCAiNTAuNUUtMyJ9LAorICAgICAgICAgICAgeyI1MDVFLTUiLCAiNS4wNUUtMyIsICI1LjA1RS0zIn0sCisgICAgICAgICAgICB7IjUwNUUtNiIsICI1MDVFLTYiLCAiNTA1RS02In0KKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwYXR0ZXJuLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuW2pdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5wdXQ6ICIgKyBpbnB1dFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRbaV1bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdDogIiArIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDQyMzM4NDA6IE51bWJlckZvcm1hdCBkb2VzIG5vdCByb3VuZCBjb3JyZWN0bHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0NDIzMzg0MCgpIHsKKyAgICAgICAgZmxvYXQgZiA9IDAuMDA5OWY7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgIAorICAgIFN0cmluZyByZXN1bHQgPSBuZi5mb3JtYXQoZik7CisgICAgCisgICAgaWYgKCFyZXN1bHQuZXF1YWxzKCIwLjAxIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgZiArICIsIGV4cGVjdGVkOiAwLjAxLCBnb3Q6ICIgKyByZXN1bHQpOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MTg4MDogRGVjaW1hbCBmb3JtYXQgZG9lc250IHJvdW5kIGEgZG91YmxlIHByb3Blcmx5IHdoZW4gdGhlIG51bWJlciBpcyBsZXNzIHRoYW4gMQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3Q0MjQxODgwKCkgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBkb3VibGVbXSBpbnB1dCA9IHsKKyAgICAgICAgICAgICAgICAuMDE5LCAuMDA5LCAuMDE1LCAuMDE2LCAuMDE0LAorICAgICAgICAgICAgICAgIC4wMDQsIC4wMDUsIC4wMDYsIC4wMDcsIC4wMDgsCisgICAgICAgICAgICAgICAgLjUsIDEuNSwgLjA1LCAuMTUsIC4wMDUsCisgICAgICAgICAgICAgICAgLjAxNSwgLjAwMDUsIC4wMDE1LAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geworICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjLCMjMCIsICIjLCMjMCIsICIjLCMjMC4wIiwgIiMsIyMwLjAiLCAiIywjIzAuMDAiLAorICAgICAgICAgICAgICAgICIjLCMjMC4wMCIsICIjLCMjMC4wMDAiLCAiIywjIzAuMDAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgIjIlIiwgIjElIiwgIjIlIiwgIjIlIiwgIjElIiwKKyAgICAgICAgICAgICAgICAiMCUiLCAiMCUiLCAiMSUiLCAiMSUiLCAiMSUiLAorICAgICAgICAgICAgICAgICIwIiwgIjIiLCAiMC4wIiwgIjAuMiIsICIwLjAwIiwKKyAgICAgICAgICAgICAgICAiMC4wMiIsICIwLjAwMCIsICIwLjAwMiIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybltpXSk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgaW5wdXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5baV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Q6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9Cit9CisKK2NsYXNzIG15Zm9ybWF0IGltcGxlbWVudHMgU2VyaWFsaXphYmxlCit7CisgICAgRGF0ZUZvcm1hdCBfZGF0ZUZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisKKyAgICBwdWJsaWMgU3RyaW5nIE5vdygpCisgICAgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBEYXRlIHQgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBub3dTdHIgPSBfZGF0ZUZvcm1hdC5mb3JtYXQodCk7CisgICAgICAgIHJldHVybiBub3dTdHI7CisgICAgfQorfQorCitjbGFzcyBNeU51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBOdW1iZXJGb3JtYXQgeworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbmV3IEludGVnZXIoMCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SQk5GUGFyc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2YzkzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBSQk5GUGFyc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBuZXcgUkJORlBhcnNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkgeworCisgICAgLy8gdGhlc2UgcnVsZXMgbWFrZSBubyBzZW5zZSBidXQgYmVoYXZlIHJhdGlvbmFsbHkKKyAgICBTdHJpbmdbXSBva3J1bGVzID0geworICAgICAgInJhbmRvbSB0ZXh0IiwKKyAgICAgICIlZm9vOmJhciIsCisgICAgICAiJWZvbzogYmFyIiwKKyAgICAgICIwOiIsCisgICAgICAiMDo6IiwKKyAgICAgICIlJWZvbzo7IiwKKyAgICAgICItIiwKKyAgICAgICItMSIsCisgICAgICAiLToiLAorICAgICAgIi4iLAorICAgICAgIi4xIiwKKyAgICAgICJbIiwKKyAgICAgICJdIiwKKyAgICAgICJbXSIsCisgICAgICAiW2Zvb10iLAorICAgICAgIltbXSIsCisgICAgICAiW11dIiwKKyAgICAgICJbW11dIiwKKyAgICAgICJbXVtdIiwKKyAgICAgICI8IiwKKyAgICAgICI+IiwKKyAgICAgICI9IiwKKyAgICAgICI9PSIsCisgICAgICAiPT09IiwKKyAgICAgICI9Zm9vPSIsCisgICAgfTsKKworICAgIFN0cmluZ1tdIGV4Y2VwdHJ1bGVzID0geworICAgICAgIiIsCisgICAgICAiOyIsCisgICAgICAiOzsiLAorICAgICAgIjoiLAorICAgICAgIjo6IiwKKyAgICAgICI6MSIsCisgICAgICAiOjsiLAorICAgICAgIjo7OjsiLAorICAgICAgIjw8IiwKKyAgICAgICI8PDwiLAorICAgICAgIjEwOjs5OjsiLAorICAgICAgIj4+IiwKKyAgICAgICI+Pj4iLAorICAgICAgIjEwOiIsIC8vIGZvcm1hdHRpbmcgYW55IHZhbHVlIHdpdGggYSBvbmUncyBkaWdpdCB3aWxsIGZhaWwKKyAgICAgICIxMTogPDwgeCIsIC8vIGZvcm1hdGluZyBhIG11bHRpcGxlIG9mIDEwIGNhdXNlcyByb2xsYmFjayBydWxlIHRvIGZhaWwKKyAgICAgICIlJWZvbzogMCBmb287IDEwOiA9JSViYXI9OyAlJWJhcjogMDogYmFyOyAxMDogPSUlZm9vPTsiLAorICAgIH07CisKKyAgICBTdHJpbmdbXVtdIGFsbHJ1bGVzID0geworICAgICAgb2tydWxlcywKKyAgICAgIGV4Y2VwdHJ1bGVzLAorICAgIH07CisKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGFsbHJ1bGVzLmxlbmd0aDsgKytqKSB7CisgICAgICBTdHJpbmdbXSB0ZXN0cyA9IGFsbHJ1bGVzW2pdOworICAgICAgYm9vbGVhbiBleGNlcHQgPSB0ZXN0cyA9PSBleGNlcHRydWxlczsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICBsb2dsbigiLS0tLS0tLS0tLSIpOworICAgIGxvZ2xuKCJydWxlczogJyIgKyB0ZXN0c1tpXSArICInIik7CisgICAgYm9vbGVhbiBjYXVnaHRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodGVzdHNbaV0sIExvY2FsZS5VUyk7CisgICAgICBsb2dsbigiMS4yMzogIiArIGZtdC5mb3JtYXQoMjApKTsKKyAgICAgIGxvZ2xuKCItMTIzOiAiICsgZm10LmZvcm1hdCgtMTIzKSk7CisgICAgICBsb2dsbigiLjEyMzogIiArIGZtdC5mb3JtYXQoLjEyMykpOworICAgICAgbG9nbG4oIiAxMjM6ICIgKyBmbXQuZm9ybWF0KDEyMykpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGlmICghZXhjZXB0KSB7CisgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNhdWdodEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICB9CisgICAgfQorICAgIGlmIChleGNlcHQgJiYgIWNhdWdodEV4Y2VwdGlvbikgeworICAgICAgZXJybG4oImV4cGVjdGVkIGV4Y2VwdGlvbiBidXQgZGlkbid0IGdldCBvbmUhIik7CisgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmZDViMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZSb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwyMTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFJibmZSb3VuZFRyaXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mUm91bmRUcmlwVGVzdCB0ZXN0ID0gbmV3IFJibmZSb3VuZFRyaXBUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRW5nbGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmdsaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgZHVyYXRpb24tZm9ybWF0dGluZyBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REdXJhdGlvbnNSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFNwYW5pc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3BhbmlzaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJlcyIsICJlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRnJlbmNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZyZW5jaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAtMTIzNDU2NzgsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZnIiLCAiQ0giLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuSVRBTElBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTk5OTk5OSwgOTk5OTk5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBHZXJtYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VybWFuU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgU3dlZGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTd2VkaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoInN2IiwgIlNFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRHV0Y2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHV0Y2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgibmwiLCAiTkwiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEphcGFuZXNlIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEphcGFuZXNlU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5KQVBBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFJ1c3NpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVzc2lhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJydSIsICJSVSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEdyZWVrIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVsIiwgIkdSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgdm9pZCBkb1Rlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwgIGxvbmcgbG93TGltaXQsCisgICAgICAgICAgICAgICAgICAgIGxvbmcgaGlnaExpbWl0KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb25nIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGxvbmcgaW5jcmVtZW50ID0gMTsKKyAgICAgICAgICAgIGZvciAobG9uZyBpID0gbG93TGltaXQ7IGkgPD0gaGlnaExpbWl0OyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIGlmIChjb3VudCAlIDEwMDAgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oTG9uZy50b1N0cmluZyhpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoaSkgPCA1MDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAxOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKE1hdGguYWJzKGkpIDwgNTAwMDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAyNzM3OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMjY3NDM3OworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBmb3JtYXR0ZXIuZm9ybWF0KGkpOworICAgICAgICAgICAgICAgIGxvbmcgcnQgPSBmb3JtYXR0ZXIucGFyc2UodGV4dCkubG9uZ1ZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAocnQgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsZWQ6ICIgKyBpICsgIiAtPiAiICsgdGV4dCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxvd0xpbWl0IDwgMCkgeworICAgICAgICAgICAgICAgIGRvdWJsZSBkID0gMS4yMzQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGQgPCAxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZm9ybWF0dGVyLmZvcm1hdChkKTsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIHJ0ID0gZm9ybWF0dGVyLnBhcnNlKHRleHQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ0ICE9IGQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJSb3VuZC10cmlwIGZhaWxlZDogIiArIGQgKyAiIC0+ICIgKyB0ZXh0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZCAqPSAxMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhZjlhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZUZXN0LmphdmEKQEAgLTAsMCArMSwxMDU4IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKKworcHVibGljIGNsYXNzIFJibmZUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk5IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mVGVzdCB0ZXN0ID0gbmV3IFJibmZUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIFN0cmluZyBmcmFjUnVsZXMgPSAKKyAgICAgICAgIiVtYWluOlxuIiArCisgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyAxIG9yIG1vcmUuICBJdCBmb3JtYXRzCisgICAgICAgIC8vIHRoZSBpbnRlZ3JhbCBwYXJ0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIiMsIyMwIiBwdXRzCisgICAgICAgIC8vIHRob3VzYW5kcyBzZXBhcmF0b3JzIGluIHRoZSByaWdodCBwbGFjZXMpIGFuZCB0aGUgZnJhY3Rpb25hbAorICAgICAgICAvLyBwYXJ0IHVzaW5nICUlZnJhYy4gIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwgaXQKKyAgICAgICAgLy8ganVzdCBzaG93cyB0aGUgaW50ZWdyYWwgcGFydC4KKyAgICAgICAgIiAgICB4LjA6IDwjLCMjMDxbID4lJWZyYWM+XTtcbiIgKworICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgbnVtYmVyIGlmIGl0J3MgYmV0d2VlbiAwIGFuZCAxLiAgSXQKKyAgICAgICAgLy8gc2hvd3Mgb25seSB0aGUgZnJhY3Rpb25hbCBwYXJ0ICgwLjUgc2hvd3MgdXAgYXMgIjEvMiwiIG5vdAorICAgICAgICAvLyAiMCAxLzIiKQorICAgICAgICAiICAgIDAueDogPiUlZnJhYz47XG4iICsKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgdGhlIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gcHJlY2VkaW5nIGV4YW1wbGU6IFdlIG11bHRpcGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlcgorICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgdXNlIHRoZSBydWxlIHRoYXQKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIDAgKG9yIHRoZSBmaXJzdCBydWxlIHRoYXQgcHJvZHVjZXMgMCkuCisgICAgICAgIC8vIFNpbmNlIHdlIG9ubHkgcHJvdmlkZSBydWxlcyBmb3IgdGhlIG51bWJlcnMgZnJvbSAyIHRvIDEwLCB3ZSBrbm93CisgICAgICAgIC8vIHdlJ2xsIGdldCBhIGZyYWN0aW9uIHdpdGggYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAgICAvLyAiPDA8IiBjYXVzZXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gdG8gYmUgZm9ybWF0dGVkCisgICAgICAgIC8vIHVzaW5nIG51bWVyYWxzCisgICAgICAgICIlJWZyYWM6XG4iICsKKyAgICAgICAgIiAgICAyOiAxLzI7XG4iICsKKyAgICAgICAgIiAgICAzOiA8MDwvMztcbiIgKworICAgICAgICAiICAgIDQ6IDwwPC80O1xuIiArCisgICAgICAgICIgICAgNTogPDA8LzU7XG4iICsKKyAgICAgICAgIiAgICA2OiA8MDwvNjtcbiIgKworICAgICAgICAiICAgIDc6IDwwPC83O1xuIiArCisgICAgICAgICIgICAgODogPDA8Lzg7XG4iICsKKyAgICAgICAgIiAgICA5OiA8MDwvOTtcbiIgKworICAgICAgICAiICAgMTA6IDwwPC8xMDtcbiI7CisKKyAgICBzdGF0aWMgeworICAgICAgICAvLyBtb25kbyBoYWNrCisgICAgY2hhcltdIGZyYWNSdWxlc0FyciA9IGZyYWNSdWxlcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgbGVuID0gZnJhY1J1bGVzQXJyLmxlbmd0aDsKKyAgICAgICAgaW50IGNoYW5nZSA9IDI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBmcmFjUnVsZXNBcnJbaV07CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJykgeworICAgICAgICAgICAgICAgIGNoYW5nZSA9IDI7IC8vIGNoYW5nZSBvaworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnOicpIHsKKyAgICAgICAgICAgICAgICBjaGFuZ2UgPSAxOyAvLyBjaGFuZ2UsIGJ1dCBvbmNlIHdlIGhpdCBhIG5vbi1zcGFjZSBjaGFyLCBkb24ndCBjaGFuZ2UKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZyYWNSdWxlc0FycltpXSA9IChjaGFyKTB4MjAwZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIGZyYWNSdWxlcyA9IG5ldyBTdHJpbmcoZnJhY1J1bGVzQXJyKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMgPQorICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAic2Vjb25kIgorICAgICAgICArICIgICAgMCBzZWNvbmRzOyAxIHNlY29uZDsgPTA9IHNlY29uZHM7XG4iCisgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MC82MDogPCUlbWluPFssID4+XTtcbiIKKyAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAvLyAodGhlICI+Pj4iIGJlbG93IGNhdXNlcyB1cyB0byBzZWUgdGhlIG51bWJlciBvZiBtaW51dGVzCisgICAgICAgIC8vIHdoZW4gd2hlbiB0aGVyZSBhcmUgemVybyBtaW51dGVzKQorICAgICAgICArICIgICAgMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJtaW51dGUiCisgICAgICAgICsgIiUlbWluOlxuIgorICAgICAgICArICIgICAgMCBtaW51dGVzOyAxIG1pbnV0ZTsgPTA9IG1pbnV0ZXM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAiaG91ciIKKyAgICAgICAgKyAiJSVocjpcbiIKKyAgICAgICAgKyAiICAgIDAgaG91cnM7IDEgaG91cjsgPTA9IGhvdXJzO1xuIgorCisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgNjAgc2Vjb25kcyBhcmUgc2hvd24gd2l0aCAic2VjLiIKKyAgICAgICAgKyAiICAgID0wPSBzZWMuO1xuIgorICAgICAgICAvLyBoaWdoZXIgdmFsdWVzIGFyZSBzaG93biB3aXRoIGNvbG9uczogJSVtaW4tc2VjIGlzIHVzZWQgZm9yCisgICAgICAgIC8vIHZhbHVlcyBiZWxvdyAzLDYwMCBzZWNvbmRzLi4uCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYz07XG4iCisgICAgICAgIC8vIC4uLmFuZCAlJWhyLW1pbi1zZWMgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIHNlY29uZHMKKyAgICAgICAgLy8gYW5kIGFib3ZlCisgICAgICAgICsgIiAgICAzNjAwOiA9JSVoci1taW4tc2VjPTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIGNhdXNlcyB2YWx1ZXMgb2YgbGVzcyB0aGFuIDEwIG1pbnV0ZXMgdG8gc2hvdyB3aXRob3V0CisgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvCisgICAgICAgICsgIiUlbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwPD4+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBvciBtb3JlLiAgTWludXRlcyBhcmUgYWx3YXlzCisgICAgICAgIC8vIHNob3duLCBhbmQgYWx3YXlzIHNob3duIHdpdGggdHdvIGRpZ2l0cworICAgICAgICArICIlJWhyLW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDA8Pj47XG4iCisgICAgICAgICsgIiAgICAzNjAwLzYwOiA8IywjIzA8Oj4+PjtcbiIKKyAgICAgICAgLy8gdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYWxsb3cgc2V2ZXJhbCBkaWZmZXJlbnQgY2hhcmFjdGVycyB0byBiZSB1c2VkCisgICAgICAgIC8vIGFzIGRlbGltaXRlcnMgYmV0d2VlbiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiA6ID0gLiA9ICcgJyA9IC07XG4iOworCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBleHRyYSBjYWxscyB0byBib29zdCBjb3ZlcmFnZSBudW1iZXJzCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQwID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MSA9IChSdWxlQmFzZWROdW1iZXJGb3JtYXQpZm10MC5jbG9uZSgpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgaWYgKCFmbXQwLmVxdWFscyhmbXQwKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDEpKSB7CisgICAgICAgICAgICBlcnJsbigiY2xvbmUgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDIpKSB7CisgICAgICAgICAgICBlcnJsbigiZHVwbGljYXRlIGVxdWFsaXR5IGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN0ciA9IGZtdDAudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MyA9ICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMpOworCisgICAgICAgIGlmIChmbXQwLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oIm5vbmVxdWFsIGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQzLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWwgMiBmYWlscyIpOworICAgICAgICB9CisgICAgICAgIHN0ciA9IGZtdDMudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGZtdDMuZ2V0UnVsZVNldE5hbWVzKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQobnVsbCk7CisgICAgICAgICAgICBmbXQzLnNldERlZmF1bHRSdWxlU2V0KCIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQoIiVib2d1cyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJWJvZ3VzIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsICIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oImZvcm1hdCBkb3VibGUgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ciA9IGZtdDMuZm9ybWF0KDEyM0wsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgxMjNMLCAiJSVmb28iKTsKKyAgICAgICAgICAgIGVycmxuKCJmb3JtYXQgZG91YmxlICUlZm9vIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQ0ID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmcmFjUnVsZXMsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDUgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBzdHIgPSBmbXQ0LnRvU3RyaW5nKCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIGlmICghZm10NC5lcXVhbHMoZm10NSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkdXBsaWNhdGUgMiBlcXVhbGl0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzdHIgPSBmbXQ0LmZvcm1hdCgxMjNMKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQ0LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbihudW0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigicGFyc2UgY2F1Z2h0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyID0gZm10NC5mb3JtYXQoLjAwMDEyMyk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXIgbnVtID0gZm10NC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4obnVtLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInBhcnNlIGNhdWdodCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ciA9IGZtdDQuZm9ybWF0KDQ1Ni4wMDAxMjMpOworICAgICAgICBsb2dsbihzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdDQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKG51bS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBjYXVnaHQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5kZWZpbmVkU3BlbGxvdXQoKSB7CisgICAgICAgIExvY2FsZSBncmVlayA9IG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0W10gZm9ybWF0dGVycyA9IHsKKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZ3JlZWssIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7CisgICAgICAgICAgICAiMCIsCisgICAgICAgICAgICAiMSIsCisgICAgICAgICAgICAiMTUiLAorICAgICAgICAgICAgIjIwIiwKKyAgICAgICAgICAgICIyMyIsCisgICAgICAgICAgICAiNzMiLAorICAgICAgICAgICAgIjg4IiwKKyAgICAgICAgICAgICIxMDAiLAorICAgICAgICAgICAgIjEwNiIsCisgICAgICAgICAgICAiMTI3IiwKKyAgICAgICAgICAgICIyMDAiLAorICAgICAgICAgICAgIjU3OSIsCisgICAgICAgICAgICAiMSwwMDAiLAorICAgICAgICAgICAgIjIsMDAwIiwKKyAgICAgICAgICAgICIzLDAwNCIsCisgICAgICAgICAgICAiNCw1NjciLAorICAgICAgICAgICAgIjE1LDk0MyIsCisgICAgICAgICAgICAiMTA1LDAwMCIsCisgICAgICAgICAgICAiMiwzNDUsNjc4IiwKKyAgICAgICAgICAgICItMzYiLAorICAgICAgICAgICAgIi0zNi45MTIxNSIsCisgICAgICAgICAgICAiMjM0LjU2Nzg5IgorICAgICAgICB9OworCisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXR0ZXJzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXJzW2pdOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdHRlclsiICsgaiArICJdIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChkZWNGb3JtYXQucGFyc2UoZGF0YVtpXSkpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIGRhdGFbaV0gKyAiID09PiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXR0ZXJbIiArIGogKyAiXSwgZGF0YVsiICsgaSArICJdICIgKyBkYXRhW2ldICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgIm9uZSIgfSwKKyAgICAgICAgICAgIHsgIjE1IiwgImZpZnRlZW4iIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ0d2VudHkiIH0sCisgICAgICAgICAgICB7ICIyMyIsICJ0d2VudHktdGhyZWUiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXZlbnR5LXRocmVlIiB9LAorICAgICAgICAgICAgeyAiODgiLCAiZWlnaHR5LWVpZ2h0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgIm9uZSBodW5kcmVkIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgIm9uZSBodW5kcmVkIGFuZCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAib25lIGh1bmRyZWQgYW5kIHR3ZW50eS1zZXZlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ0d28gaHVuZHJlZCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmaXZlIGh1bmRyZWQgYW5kIHNldmVudHktbmluZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAwIiwgIm9uZSB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgInR3byB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjMsMDA0IiwgInRocmVlIHRob3VzYW5kIGFuZCBmb3VyIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiZm91ciB0aG91c2FuZCBmaXZlIGh1bmRyZWQgYW5kIHNpeHR5LXNldmVuIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZpZnRlZW4gdGhvdXNhbmQgbmluZSBodW5kcmVkIGFuZCBmb3J0eS10aHJlZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ0d28gbWlsbGlvbiwgdGhyZWUgaHVuZHJlZCBhbmQgZm9ydHktZml2ZSAiCisgICAgICAgICAgICAgICsgInRob3VzYW5kLCBzaXggaHVuZHJlZCBhbmQgc2V2ZW50eS1laWdodCIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtaW51cyB0aGlydHktc2l4IiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJ0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZml2ZSBzaXggc2V2ZW4iIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIkZPdXJodW5kcmVkICAgICB0aGlSVFkgc2l4IiwgIjQzNiIgfSwKKyAgICAgICAgICAgIC8vIHRlc3Qgc3BhY2VzIGJlZm9yZSBmaWZ0eS03IGNhdXNpbmcgbGVuaWVudCBwYXJzZSBtYXRjaCBvZiAiZmlmdHktIiB0byAiIGZpZnR5IgorICAgICAgICAgICAgLy8gbGVhdmluZyAiLTciIGZvciByZW1haW5pbmcgcGFyc2UsIHJlc3VsdGluZyBpbiAyNjQzIGFzIHRoZSBwYXJzZSByZXN1bHQuCisgICAgICAgICAgICB7ICJmaWZ0eS03IiwgIjU3IiB9LAorICAgICAgICAgICAgeyAiIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIgIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIyIHRob3VzYW5kIHNpeCBIVU5EUkVEICAgZmlmdHktNyIsICIyLDY1NyIgfSwKKyAgICAgICAgICAgIHsgImZpZnRlZW4gaHVuZHJlZCBhbmQgemVybyIsICIxLDUwMCIgfQorICAgICAgICB9OworICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggb3JkaW5hbC1hYmJyZXZpYXRpb24gcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3JkaW5hbEFiYnJldmlhdGlvbnMoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0Lk9SRElOQUwpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICIxc3QiIH0sCisgICAgICAgICAgICB7ICIyIiwgIjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMiLCAiM3JkIiB9LAorICAgICAgICAgICAgeyAiNCIsICI0dGgiIH0sCisgICAgICAgICAgICB7ICI3IiwgIjd0aCIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIjEwdGgiIH0sCisgICAgICAgICAgICB7ICIxMSIsICIxMXRoIiB9LAorICAgICAgICAgICAgeyAiMTMiLCAiMTN0aCIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgIjIwdGgiIH0sCisgICAgICAgICAgICB7ICIyMSIsICIyMXN0IiB9LAorICAgICAgICAgICAgeyAiMjIiLCAiMjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgIjIzcmQiIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNHRoIiB9LAorICAgICAgICAgICAgeyAiMzMiLCAiMzNyZCIgfSwKKyAgICAgICAgICAgIHsgIjEwMiIsICIxMDJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMxMiIsICIzMTJ0aCIgfSwKKyAgICAgICAgICAgIHsgIjEyLDM0NSIsICIxMiwzNDV0aCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBkdXJhdGlvbi1mb3JtYXR0aW5nIHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1cmF0aW9ucygpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwgICAgICAgICAgICAgLy9tb3ZlIG1lIGFuZCBJIGZhaWwKKyAgICAgICAgICAgIHsgIjAiLCAiMCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiMSIsICIxIHNlYy4iIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiNjAiLCAiMTowMCIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgIjE6MTMiIH0sCisgICAgICAgICAgICB7ICIxNDUiLCAiMjoyNSIgfSwKKyAgICAgICAgICAgIHsgIjY2NiIsICIxMTowNiIgfSwKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwKKyAgICAgICAgICAgIHsgIjMsNzQwIiwgIjE6MDI6MjAiIH0sCisgICAgICAgICAgICB7ICIxMCwyOTMiLCAiMjo1MTozMyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMi01MS0zMyIsICIxMCwyOTMiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTcGFuaXNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYW5pc2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVzIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiNiIsICJzZWlzIiB9LAorICAgICAgICAgICAgeyAiMTYiLCAiZGllY2lzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZWludGUiIH0sCisgICAgICAgICAgICB7ICIyNCIsICJ2ZWludGljdWF0cm8iIH0sCisgICAgICAgICAgICB7ICIyNiIsICJ2ZWludGlzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXRlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjg4IiwgIm9jaGVudGEgeSBvY2hvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNpZW4iIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2llbnRvIHNlaXMiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2llbnRvIHZlaW50aXNpZXRlIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRvc2NpZW50b3MiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAicXVpbmllbnRvcyBzZXRlbnRhIHkgbnVldmUiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWwiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkb3MgbWlsIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlcyBtaWwgY3VhdHJvIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiY3VhdHJvIG1pbCBxdWluaWVudG9zIHNlc2VudGEgeSBzaWV0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluY2UgbWlsIG5vdmVjaWVudG9zIGN1YXJlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJkb3MgbWlsbFx1MDBmM24gdHJlc2NpZW50b3MgY3VhcmVudGEgeSBjaW5jbyBtaWwgIgorICAgICAgICAgICAgICArICJzZWlzY2llbnRvcyBzZXRlbnRhIHkgb2NobyJ9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1lbm9zIHRyZWludGEgeSBzZWlzIiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJkb3NjaWVudG9zIHRyZWludGEgeSBjdWF0cm8gcHVudG8gY2luY28gc2VpcyBzaWV0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEZyZW5jaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic29peGFudGUtZGl4IiB9LAorICAgICAgICAgICAgeyAiNzEiLCAic29peGFudGUgZXQgb256ZSIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNvaXhhbnRlLXRyZWl6ZSIgfSwKKyAgICAgICAgICAgIHsgIjgwIiwgInF1YXRyZS12aW5ndHMiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJxdWF0cmUtdmluZ3QtaHVpdCIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJjZW50IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnQgc2l4IiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnQgdmluZ3Qtc2VwdCIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJkZXV4IGNlbnRzIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnEgY2VudHMgc29peGFudGUtZGl4LW5ldWYiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWxsZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTIzIiwgIm9uemUgY2VudHMgdmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICIxLDU5NCIsICJtaWxsZSBjaW5xIGNlbnRzIHF1YXRyZS12aW5ndC1xdWF0b3J6ZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNvaXhhbnRlLWRpeC1odWl0IiB9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1vaW5zIHRyZW50ZS1zaXgiIH0sCisgICAgICAgICAgICB7ICIyMzQuNTY3IiwgImRldXggY2VudHMgdHJlbnRlLXF1YXRyZSB2aXJndWxlIGNpbnEgc2l4IHNlcHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgInRyZW50ZS11biIsICIzMSIgfSwKKyAgICAgICAgICAgIHsgInVuIGNlbnRzIHF1YXRyZSB2aW5ndCBkaXggaHVpdCIsICIxOTgiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImZyIiwgIkNIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic2VwdGFudGUiIH0sCisgICAgICAgICAgICB7ICI3MSIsICJzZXB0YW50ZS1ldC11biIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNlcHRhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiODAiLCAiaHVpdGFudGUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJodWl0YW50ZS1odWl0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2VudCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2VudCB2aW5ndC1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRldXggY2VudHMiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAiY2lucSBjZW50cyBzZXB0YW50ZS1uZXVmIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIxLDEyMyIsICJvbnplIGNlbnRzIHZpbmd0LXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMSw1OTQiLCAibWlsbGUgY2lucSBjZW50cyBub25hbnRlLXF1YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNlcHRhbnRlLWh1aXQiIH0sCisgICAgICAgICAgICB7ICItMzYiLCAibW9pbnMgdHJlbnRlLXNpeCIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZGV1eCBjZW50cyB0cmVudGUtcXVhdHJlIHZpcmd1bGUgY2lucSBzaXggc2VwdCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiMTUiLCAicXVpbmRpY2kiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZW50aSIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgInZlbnRpdHJlIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic2V0dGFudGF0cmUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJvdHRhbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnRvIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnRvc2VpIiB9LAorICAgICAgICAgICAgeyAiMTA4IiwgImNlbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnRvdmVudGlzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE4MSIsICJjZW50b3R0YW50dW5vIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImR1ZWNlbnRvIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnF1ZWNlbnRvc2V0dGFudGFub3ZlIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkdWVtaWxhIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlbWlsYXF1YXR0cm8iIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0dHJvbWlsYWNpbnF1ZWNlbnRvc2Vzc2FudGFzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluZGljaW1pbGFub3ZlY2VudG9xdWFyYW50YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtZW5vIHRyZW50aXNlaSIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZHVlY2VudG90cmVudGlxdWF0dHJvIHZpcmdvbGEgY2lucXVlIHNlaSBzZXR0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEdlcm1hbiBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXJtYW5TcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgImVpbnMiIH0sCisgICAgICAgICAgICB7ICIxNSIsICJmXHUwMGZjbmZ6ZWhuIiB9LAorICAgICAgICAgICAgeyAiMjAiLCAiendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgImRyZWl1bmR6d2FuemlnIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAiZHJlaXVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICI4OCIsICJhY2h0dW5kYWNodHppZyIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJodW5kZXJ0IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImh1bmRlcnRzZWNocyIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJodW5kZXJ0c2llYmVudW5kendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ6d2VpaHVuZGVydCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmXHUwMGZjbmZodW5kZXJ0bmV1bnVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJ0YXVzZW5kIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAiendlaXRhdXNlbmQiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJkcmVpdGF1c2VuZHZpZXIiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJ2aWVydGF1c2VuZGZcdTAwZmNuZmh1bmRlcnRzaWViZW51bmRzZWNoemlnIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZcdTAwZmNuZnplaG50YXVzZW5kbmV1bmh1bmRlcnRkcmVpdW5kdmllcnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ6d2VpIE1pbGxpb25lbiBkcmVpaHVuZGVydGZcdTAwZmNuZnVuZHZpZXJ6aWd0YXVzZW5kIgorICAgICAgICAgICAgICArICJzZWNoc2h1bmRlcnRhY2h0dW5kc2llYnppZyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiZWluIFRhdXNlbmQgc2VjaHMgSHVuZGVydCBmdWVuZnVuZGRyZWlzc2lnIiwgIjEsNjM1IiB9CisgICAgICAgIH07CisgICAgICAgIGRvTGVuaWVudFBhcnNlVGVzdChmb3JtYXR0ZXIsIGxwVGVzdERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgVGhhaSBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpU3BlbGxvdXQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMCIsICJcdTBlMjhcdTBlMzlcdTBlMTlcdTBlMjJcdTBlNGMiIH0sCisgICAgICAgICAgICB7ICIxIiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwNyIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIlx1MGUyYVx1MGUzNFx1MGUxYSIgfSwKKyAgICAgICAgICAgIHsgIjExIiwgIlx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgIlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjEwMSIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMjNcdTBlNDlcdTBlMmRcdTBlMjJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDciIH0sCisgICAgICAgICAgICB7ICIxLjIzNCIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMmFcdTBlMzVcdTBlNDgiIH0sCisgICAgICAgICAgICB7ICIyMS40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTRcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMi40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMy40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIxMjMuNDUiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3XHUwZTIzXHUwZTQ5XHUwZTJkXHUwZTIyXHUwZTIyXHUwZTM1XHUwZTQ4XHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTA4XHUwZTM4XHUwZTE0XHUwZTJhXHUwZTM1XHUwZTQ4XHUwZTJiXHUwZTQ5XHUwZTMyIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LjY3OCIsICJcdTBFMkJcdTBFMTlcdTBFMzZcdTBFNDhcdTBFMDdcdTBFMkJcdTBFMjFcdTBFMzdcdTBFNDhcdTBFMTlcdTBFMkFcdTBFMkRcdTBFMDdcdTBFMUVcdTBFMzFcdTBFMTlcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMjNcdTBFNDlcdTBFMkRcdTBFMjJcdTBFMkFcdTBFMzVcdTBFNDhcdTBFMkFcdTBFMzRcdTBFMUFcdTBFMkJcdTBFNDlcdTBFMzJcdTBFMDhcdTBFMzhcdTBFMTRcdTBFMkJcdTBFMDFcdTBFNDBcdTBFMDhcdTBFNDdcdTBFMTRcdTBFNDFcdTBFMUJcdTBFMTQiIH0sCisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworCisgICAgICAgIC8qCisgICAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgIHsgImVpbiBUYXVzZW5kIHNlY2hzIEh1bmRlcnQgZnVlbmZ1bmRkcmVpc3NpZyIsICIxLDYzNSIgfQorICAgICAgICAgIH07CisgICAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgICAgICovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyYWN0aW9uYWxSdWxlU2V0KCkgeworCisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9CisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIjAiIH0sCisgICAgICAgICAgICB7ICIxIiwgIjEiIH0sCisgICAgICAgICAgICB7ICIxMCIsICIxMCIgfSwKKyAgICAgICAgICAgIHsgIi4xIiwgIjEvMTAiIH0sCisgICAgICAgICAgICB7ICIuMTEiLCAiMS85IiB9LAorICAgICAgICAgICAgeyAiLjEyNSIsICIxLzgiIH0sCisgICAgICAgICAgICB7ICIuMTQyOCIsICIxLzciIH0sCisgICAgICAgICAgICB7ICIuMTY2NyIsICIxLzYiIH0sCisgICAgICAgICAgICB7ICIuMiIsICIxLzUiIH0sCisgICAgICAgICAgICB7ICIuMjUiLCAiMS80IiB9LAorICAgICAgICAgICAgeyAiLjMzMyIsICIxLzMiIH0sCisgICAgICAgICAgICB7ICIuNSIsICIxLzIiIH0sCisgICAgICAgICAgICB7ICIxLjEiLCAiMSAxLzEwIiB9LAorICAgICAgICAgICAgeyAiMi4xMSIsICIyIDEvOSIgfSwKKyAgICAgICAgICAgIHsgIjMuMTI1IiwgIjMgMS84IiB9LAorICAgICAgICAgICAgeyAiNC4xNDI4IiwgIjQgMS83IiB9LAorICAgICAgICAgICAgeyAiNS4xNjY3IiwgIjUgMS82IiB9LAorICAgICAgICAgICAgeyAiNi4yIiwgIjYgMS81IiB9LAorICAgICAgICAgICAgeyAiNy4yNSIsICI3IDEvNCIgfSwKKyAgICAgICAgICAgIHsgIjguMzMzIiwgIjggMS8zIiB9LAorICAgICAgICAgICAgeyAiOS41IiwgIjkgMS8yIiB9LAorICAgICAgICAgICAgeyAiLjIyMjIiLCAiMi85IiB9LAorICAgICAgICAgICAgeyAiLjQ0NDQiLCAiNC85IiB9LAorICAgICAgICAgICAgeyAiLjU1NTUiLCAiNS85IiB9LAorICAgICAgICAgICAgeyAiMS4yODU2IiwgIjEgMi83IiB9CisgICAgICAgIH07CisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7IC8vIGV4YWN0IHZhbHVlcyBhcmVuJ3QgcGFyc2FibGUgZnJvbSBmcmFjdGlvbnMKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dlZGlzaFNwZWxsb3V0KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIik7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhRGVmYXVsdCA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRlbiIgfSwKKyAgICAgICAgICAgIHsgIjEyMyIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxLDEwMCIsICJldHR1c2VuIGV0dGh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImV0dHVzZW4gZXR0aHVuZHJhXHUwMGFkZW4iIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJldHR1c2VuIHR2XHUwMGU1aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxMSwwMDAiLCAiZWx2YVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMDAwIiwgInRvbHZcdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwLDAwMCIsICJ0anVnb1x1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMjEsMDAwIiwgInRqdWdvZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIxLDAwMSIsICJ0anVnb2VuXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIyMDAsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkdHVzZW4iIH0sCisgICAgICAgICAgICB7ICIyMDEsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCwyMDAiLCAidHZcdTAwZTVodW5kcmFcdTAwYWR0dXNlbiB0dlx1MDBlNWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAyLDAwMCIsICJ0dlx1MDBlNSBtaWxqb25lciB0dlx1MDBlNVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LDY3OCIsICJ0b2x2IG1pbGpvbmVyIHRyZWh1bmRyYVx1MDBhZGZ5cnRpb2ZlbVx1MDBhZHR1c2VuIHNleGh1bmRyYVx1MDBhZHNqdXR0aW9cdTAwZTV0dGEiIH0sCisgICAgICAgICAgICB7ICIxMjMsNDU2Ljc4OSIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZVx1MDBhZHR1c2VuIGZ5cmFodW5kcmFcdTAwYWRmZW10aW9zZXgga29tbWEgc2p1IFx1MDBlNXR0YSBuaW8iIH0sCisgICAgICAgICAgICB7ICItMTIsMzQ1LjY3OCIsICJtaW51cyB0b2x2XHUwMGFkdHVzZW4gdHJlaHVuZHJhXHUwMGFkZnlydGlvZmVtIGtvbW1hIHNleCBzanUgXHUwMGU1dHRhIiB9CisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YURlZmF1bHQsIHRydWUpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGFOZXV0cnVtID0geworICAgICAgICAgICAgeyAiMTAxIiwgImV0dGh1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDEiLCAiZXR0dXNlbiBldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMjEsMDAxIiwgInRqdWdvZW5cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiVuZXV0cnVtIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIG5ldXRydW0gcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFOZXV0cnVtLCB0cnVlKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhWWVhciA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICI5MDAiLCAibmlvaHVuZHJhIiB9LAorICAgICAgICAgICAgeyAiMSwwMDEiLCAidGlvaHVuZHJhXHUwMGFkZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDAiLCAiZWx2YWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImVsdmFodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJ0b2x2aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIyLDAwMSIsICJ0anVnb2h1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEwLDAwMSIsICJ0aW9cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiV5ZWFyIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHllYXIgcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFZZWFyLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnTnVtYmVycygpIHsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdJID0gbmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OTAiLCAxMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIGZtdC5mb3JtYXQoYmlnSSwgYnVmLCBudWxsKTsKKyAgICAgICAgbG9nbG4oImJpZyBpbnQ6ICIgKyBidWYudG9TdHJpbmcoKSk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIEJpZ0RlY2ltYWwgYmlnRCA9IG5ldyBCaWdEZWNpbWFsKGJpZ0kpOworICAgICAgICBmbXQuZm9ybWF0KGJpZ0QsIGJ1ZiwgbnVsbCk7CisgICAgICAgIGxvZ2xuKCJiaWcgZGVjOiAiICsgYnVmLnRvU3RyaW5nKCkpOworLy8jZW5kaWYKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFRyYWlsaW5nU2VtaWNvbG9uKCkgeworICAgIFN0cmluZyB0aGFpUnVsZXMgPSAKKyAgICAgICAgIiVkZWZhdWx0OlxuIiArCisgICAgICAgICIgIC14OiBcdTBlMjVcdTBlMWE+PjtcbiIgKworICAgICAgICAiICB4Lng6IDw8XHUwZTA4XHUwZTM4XHUwZTE0Pj4+O1xuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YzsgXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3OyBcdTBlMmFcdTBlMmRcdTBlMDc7IFx1MGUyYVx1MGUzMlx1MGUyMTtcbiIgKworICAgICAgICAiICBcdTBlMmFcdTBlMzVcdTBlNDg7IFx1MGUyYlx1MGU0OVx1MGUzMjsgXHUwZTJiXHUwZTAxOyBcdTBlNDBcdTBlMDhcdTBlNDdcdTBlMTQ7IFx1MGU0MVx1MGUxYlx1MGUxNDtcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMDFcdTBlNDlcdTBlMzI7IFx1MGUyYVx1MGUzNFx1MGUxYTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUyZFx1MGUwNzsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzNVx1MGU0ODsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJiXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYlx1MGUwMTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTA4XHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MVx1MGUxYlx1MGUxNDsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIDIwOiBcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICAzMDogXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNDA6IFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDUwOiBcdTBlMmJcdTBlNDlcdTBlMzJcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA2MDogXHUwZTJiXHUwZTAxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNzA6IFx1MGU0MFx1MGUwOFx1MGU0N1x1MGUxNFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDgwOiBcdTBlNDFcdTBlMWJcdTBlMTRcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA5MDogXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgMTAwOiA8PFx1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMls+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEwMDAwOiA8PFx1MGUyYlx1MGUyMVx1MGUzN1x1MGU0OFx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDAwOiA8PFx1MGU0MVx1MGUyYVx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlcdTBlMjVcdTBlNDlcdTBlMzJcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIiArCisgICAgICAgICIlJWFsdC1vbmVzOlxuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YztcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTQ7XG4iICsKKyAgICAgICAgIiAgPSVkZWZhdWx0PTtcbiA7IDs7ICI7CisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHRoYWlSdWxlcywgbmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIlx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YyIgfSwKKyAgICAgICAgICAgIHsgIjEiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3IiB9LAorICAgICAgICAgICAgeyAiMTIzLjQ1IiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwN1x1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzMlx1MGUyMVx1MGUwOFx1MGUzOFx1MGUxNFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYlx1MGU0OVx1MGUzMiIgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTbWFsbFZhbHVlcygpIHsKKyAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICB7ICIwLjAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDAyIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB0d28iIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAiLCAidGVuIG1pbGxpb24iIH0sCisgICAgICAgIHsgIjEsMjM0LDU2Nyw4OTAuMDk4NzY1NCIsICJvbmUgYmlsbGlvbiwgdHdvIGh1bmRyZWQgYW5kIHRoaXJ0eS1mb3VyIG1pbGxpb24sIGZpdmUgaHVuZHJlZCBhbmQgc2l4dHktc2V2ZW4gdGhvdXNhbmQsIGVpZ2h0IGh1bmRyZWQgYW5kIG5pbmV0eSBwb2ludCB6ZXJvIG5pbmUgZWlnaHQgc2V2ZW4gc2l4IGZpdmUgZm91ciIgfSwKKyAgICAgICAgeyAiMTIzLDQ1Niw3ODkuOTg3NjU0MyIsICJvbmUgaHVuZHJlZCBhbmQgdHdlbnR5LXRocmVlIG1pbGxpb24sIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHRob3VzYW5kLCBzZXZlbiBodW5kcmVkIGFuZCBlaWdodHktbmluZSBwb2ludCBuaW5lIGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUiIH0sCisgICAgICAgIHsgIjEyLDM0NSw2NzguODc2NTQzMjEiLCAidHdlbHZlIG1pbGxpb24sIHRocmVlIGh1bmRyZWQgYW5kIGZvcnR5LWZpdmUgdGhvdXNhbmQsIHNpeCBodW5kcmVkIGFuZCBzZXZlbnR5LWVpZ2h0IHBvaW50IGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMSwyMzQsNTY3Ljc2NTQzMjEiLCAib25lIG1pbGxpb24sIHR3byBodW5kcmVkIGFuZCB0aGlydHktZm91ciB0aG91c2FuZCwgZml2ZSBodW5kcmVkIGFuZCBzaXh0eS1zZXZlbiBwb2ludCBzZXZlbiBzaXggZml2ZSBmb3VyIHRocmVlIHR3byBvbmUiIH0sCisgICAgICAgIHsgIjEyMyw0NTYuNjU0MzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgdGhvdXNhbmQsIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHBvaW50IHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMTIsMzQ1LjU0MzIxIiwgInR3ZWx2ZSB0aG91c2FuZCB0aHJlZSBodW5kcmVkIGFuZCBmb3J0eS1maXZlIHBvaW50IGZpdmUgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxLDIzNC40MzIxIiwgIm9uZSB0aG91c2FuZCB0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxMjMuMzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgcG9pbnQgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDExNzU0OTQ0IiwgInplcm8gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSBvbmUgc2V2ZW4gZml2ZSBmb3VyIG5pbmUgZm91ciBmb3VyIiB9LAorICAgICAgICB7ICIwLjAwMDAwMTE3NTQ5NDM1MSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUgb25lIHNldmVuIGZpdmUgZm91ciBuaW5lIGZvdXIgdGhyZWUgZml2ZSBvbmUiIH0sCisgICAgfTsKKworICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVTZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMgPSBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAvKiBwdWJsaWMgcnVsZSBzZXRzKi8KKyAgICAgICAgICAgIHsiJXNpbXBsaWZpZWQiLCAiJWRlZmF1bHQiLCAiJW9yZGluYWwifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gImVuX1VTIiBsb2NhbGUqLworICAgICAgICAgICAgeyJlbl9VUyIsICJTaW1wbGlmaWVkIiwgIkRlZmF1bHQiLCAiT3JkaW5hbCJ9LAorICAgICAgICAgICAgLyogZGlzcGxheSBuYW1lcyBpbiAiemhfSGFucyIgbG9jYWxlKi8KKyAgICAgICAgICAgIHsiemhfSGFucyIsICJcdTdCODBcdTUzMTYiLCAiXHU3RjNBXHU3NzAxIiwgICJcdTVFOEZcdTUyMTcifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gYSBmYWtlIGxvY2FsZSovCisgICAgICAgICAgICB7ImZvb19CYXJfQkFaIiwgIlNpbXBsaWZpZWQiLCAiRGVmYXVsdCIsICJPcmRpbmFsIn0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIC8vQ29uc3RydWN0IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBieSBydWxlIHNldHMgYW5kIGxvY2FsaXphdGlvbnMgbGlzdAorICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWtFbmdsaXNoLCBsb2NhbGl6YXRpb25zLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGYyPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVrRW5nbGlzaCwgbG9jYWxpemF0aW9ucyk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHRoZSB0d28gZm9ybWF0dGVycycgZXF1YWxpdHkiLCBmb3JtYXR0ZXIuZXF1YWxzKGYyKSk7ICAgICAgICAKKworICAgICAgICAvL2dldCBkaXNwbGF5TmFtZSBieSBuYW1lCisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHJ1bGVTZXROYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oIlJ1bGUgc2V0IG5hbWU6ICIgKyBydWxlU2V0TmFtZXNbaV0pOworICAgICAgICAgICAgU3RyaW5nIFJTTmFtZV9kZWZMb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lKHJ1bGVTZXROYW1lc1tpXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkRpc3BsYXkgbmFtZSBpbiBkZWZhdWx0IGxvY2FsZSIsIGxvY2FsaXphdGlvbnNbMV1baSsxXSwgUlNOYW1lX2RlZkxvYyk7CisgICAgICAgICAgICBTdHJpbmcgUlNOYW1lX2xvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWVzW2ldLCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiRGlzcGxheSBuYW1lIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZV9sb2MpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGdldERlZmF1bHRSdWxlU2V0TmFtZQorICAgICAgICBTdHJpbmcgZGVmYXVsdFJTID0gZm9ybWF0dGVyLmdldERlZmF1bHRSdWxlU2V0TmFtZSgpOworICAgICAgICAvL3lvdSBrbm93IHRoYXQgdGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgJXNpbXBsaWZpZWQgYWNjb3JkaW5nIHRvIHJ1bGUgc2V0cyBzdHJpbmcgdWtFbmdsaXNoCisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RGVmYXVsdFJ1bGVTZXROYW1lIiwgIiVzaW1wbGlmaWVkIiwgZGVmYXVsdFJTKTsKKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGxvY2FsZXMgb2YgbG9jYWxpemF0aW9ucworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGRpc3BsYXlOYW1lcworICAgICAgICBTdHJpbmdbXSBSU05hbWVzX2RlZkxvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2RlZkxvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGRlZmF1bHQgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1sxXVtpKzFdLCBSU05hbWVzX2RlZkxvY1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VSyk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIEVuZ2xpc2giLCBsb2NhbGl6YXRpb25zWzFdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5DSElOQSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgUlNOYW1lc19sb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhuZXcgVUxvY2FsZSgiZm9vX0Jhcl9CQVoiKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGZha2UgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1szXVtpKzFdLCBSU05hbWVzX2xvY1tpXSk7CisgICAgICAgIH0gICAgICAgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGxMb2NhbGVzKCkgeworCVN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCVVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisJUmFuZG9tIHIgPSBjcmVhdGVSYW5kb20oKTsKKwlTdHJpbmdbXSBuYW1lcyA9IHsKKwkgICAgIiAoc3BlbGxvdXQpICIsCisJICAgICIgKG9yZGluYWwpICAiLAorCSAgICAiIChkdXJhdGlvbikgIgorCX07CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisJICAgIFVMb2NhbGUgbG9jID0gbG9jYWxlc1tpXTsKKwkgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opIHsKKwkJdHJ5IHsKKwkJICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvYywgaisxKTsKKwkJICAgIGZsb2F0IG4gPSAoKGludCkoci5uZXh0SW50KDEwMDApIC0gMzAwKSkgLyAxNmY7CisJCSAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQobik7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJzdWNjZXNzOiAiICsgbiArICIgLT4gIiArIHMpOworCQkgICAgfQorCQl9CisJCWNhdGNoIChFeGNlcHRpb24gZSkgeworCQkgICAgU3RyaW5nIG1zZyA9IGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJFUlJPUjoiICsgZS5nZXRNZXNzYWdlKCk7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKG1zZyk7CisJCSAgICB9CisJCSAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKwkJCWVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJICAgIH0KKwkJICAgIGVycm9ycy5hcHBlbmQoIlxuIiArIG1zZyk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoZXJyb3JzICE9IG51bGwpIHsKKwkgICAgZXJybG4oZXJyb3JzLnRvU3RyaW5nKCkpOworCX0KKyAgICB9CisKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmdbXVtdIHRlc3REYXRhLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gdGVzdFBhcnNpbmcpIHsKKyAgICAvLyAgICAgICAgTnVtYmVyRm9ybWF0IGRlY0ZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIyMuIyMjIyMjIyMjIyMjIyMjIyIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBudW1iZXIgPSB0ZXN0RGF0YVtpXVswXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRXb3JkcyA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0WyIgKyBpICsgIl0gbnVtYmVyOiAiICsgbnVtYmVyICsgIiB0YXJnZXQ6ICIgKyBleHBlY3RlZFdvcmRzKTsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbnVtID0gZGVjRm10LnBhcnNlKG51bWJlcik7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFjdHVhbFdvcmRzID0gZm9ybWF0dGVyLmZvcm1hdChudW0pOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxXb3Jkcy5lcXVhbHMoZXhwZWN0ZWRXb3JkcykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgZm9ybWF0IGZhaWxlZDogZm9yICIgKyBudW1iZXIgKyAiLCBleHBlY3RlZFxuICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBleHBlY3RlZFdvcmRzICsgIiwgYnV0IGdvdFxuICAgICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxXb3Jkcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlc3RQYXJzaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyc2UoYWN0dWFsV29yZHMpKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbE51bWJlci5lcXVhbHMobnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgcGFyc2UgZmFpbGVkOiBmb3IgIiArIGFjdHVhbFdvcmRzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBudW1iZXIgKyAiLCBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBkb0xlbmllbnRQYXJzZVRlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB3b3JkcyA9IHRlc3REYXRhW2ldWzBdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZE51bWJlciA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlci5wYXJzZSh3b3JkcykpOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxOdW1iZXIuZXF1YWxzKGV4cGVjdGVkTnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuaWVudC1wYXJzZSBzcG90IGNoZWNrIGZhaWxlZDogZm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyB3b3JkcyArICIsIGV4cGVjdGVkICIgKyBleHBlY3RlZE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGJ1dCBnb3QgIiArIGFjdHVhbE51bWJlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLksuIEVuZ2xpc2guICAKKyAgICAgKiBJIGJvcnJvdyB0aGUgcnVsZSBzZXRzIGZvciBUZXN0UnVsZVNldERpc3BsYXlOYW1lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1a0VuZ2xpc2ggPQorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjc2MDhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCisKK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCRSQk5GIiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE51bWJlckZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCREYXRlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE1lc3NhZ2VGb3JtYXQiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5CaWdOdW1iZXJGb3JtYXRUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdCIsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJGb3JtYXR0aW5nIFRlc3RzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSQk5GIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICAgICAgcHVibGljIFJCTkYoKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJSYm5mVGVzdCIsCisgICAgICAgICAgICAgICAgIlJibmZSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgIlJCTkZQYXJzZVRlc3QiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE51bWJlckZvcm1hdCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJJbnRsVGVzdE51bWJlckZvcm1hdCIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0TnVtYmVyRm9ybWF0QVBJIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyRm9ybWF0VGVzdCIsCisgICAgICAgICAgICAgICAgIk51bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QiLAorICAgICAgICAgICAgICAgICJOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUmVncmVzc2lvbiIsCisgICAgICAgICAgICAgICAgIk51bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0IiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQyIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQyIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0ZUZvcm1hdCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgICAgIHB1YmxpYyBEYXRlRm9ybWF0KCkgeworICAgICAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdE1pc2NUZXN0cyIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSb3VuZFRyaXBUZXN0IiwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdFRlc3QiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXQiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXRBUEkiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERhdGVGb3JtYXRBUElDIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scyIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSSIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEoiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1lc3NhZ2VGb3JtYXQgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgICAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdCgpIHsKKyAgICAgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgIlRlc3RNZXNzYWdlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAiTWVzc2FnZVJlZ3Jlc3Npb24iLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJGb3JtYXQiOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RNZXNzYWdlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RNZXNzYWdlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcyYjRkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvVGVzdE1lc3NhZ2VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDkzNiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgNiwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS50ZXh0LkNob2ljZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFRlc3RNZXNzYWdlRm9ybWF0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0TWVzc2FnZUZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnMygpCisgICAgeworICAgICAgICBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNDU2OworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm0gPSBudWxsOworICAgICAgICBMb2NhbGUgbG9jYWxlW10gPSB7CisgICAgICAgICAgICBuZXcgTG9jYWxlKCJhciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJiZSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJiZyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJjYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJjcyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkZSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkZSIsICJBVCIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImRlIiwgIkNIIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLCAgICAgICAvLyAxMAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiQ0EiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbiIsICJHQiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVuIiwgIklFIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlcyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJldCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmaSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICJCRSIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNBIiwgIiIpLCAgICAgLy8gMjAKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaGUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaHIiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaHUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXMiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXQiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiaXQiLCAiQ0giLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJqYSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJrbyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJsdCIsICIiLCAiIiksICAgICAgIC8vIDMwCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJsdiIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJtayIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJubCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJubCIsICJCRSIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIm5vIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInBsIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInB0IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInJvIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInJ1IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNoIiwgIiIsICIiKSwgICAgICAgLy8gNDAKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNrIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNsIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNxIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInNyIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInN2IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInRyIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInVrIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIlRXIiwgIiIpICAgICAgLy8gNDkKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPSAwOyBpIDwgNDk7IGkrKykgeworICAgIC8vICAgICAgICBmb3JtID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlW2ldKTsKKyAgICAgICAgICAgIGZvcm0gPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jYWxlW2ldKTsKKyAgICAgICAgICAgIGlmIChmb3JtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtYmVyIGZvcm1hdCBjcmVhdGlvbiBmYWlsZWQgZm9yICIgKyBsb2NhbGVbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvcm0uZm9ybWF0KG15TnVtYmVyLCBidWZmZXIsIHBvcyk7CisgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBmb3JtLnBhcnNlKGJ1ZmZlci50b1N0cmluZygpLCBwYXJzZVBvcyk7CisgICAgICAgICAgICBsb2dsbihsb2NhbGVbaV0uZ2V0RGlzcGxheU5hbWUoKSArICIgLT4gIiArIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3MuZ2V0SW5kZXgoKSAhPSBidWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtYmVyIGZvcm1hdCBwYXJzZSBmYWlsZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnMSgpCisgICAgeworICAgICAgICBmaW5hbCBkb3VibGUgbGltaXRbXSA9IHswLjAsIDEuMCwgMi4wfTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGZvcm1hdHNbXSA9IHsiMC4wPD1Bcmc8MS4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS4wPD1Bcmc8Mi4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMi4wPC1BcmcifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbmV3IENob2ljZUZvcm1hdChsaW1pdCwgZm9ybWF0cyk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gc3RhdHVzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiQ2hvaWNlRm9ybWF0LmZvcm1hdCIsIGZvcm1hdHNbMV0sIGNmLmZvcm1hdCgxKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzIoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDsKKyAgICAgICAgLy8ge3NmYn0gdXNlIGRvdWJsZSBmb3JtYXQgaW4gcGF0dGVybiwgc28gcmVzdWx0IHdpbGwgbWF0Y2ggKG5vdCBzdHJpY3RseSBuZWNlc3NhcnkpCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gIlRoZXJlIHswLGNob2ljZSwwLjAjYXJlIG5vIGZpbGVzfDEuMCNpcyBvbmUgZmlsZXwxLjA8YXJlIHswLCBudW1iZXJ9IGZpbGVzfSBvbiBkaXNrIHsxfS4gIjsKKyAgICAgICAgbG9nbG4oIlRoZSBpbnB1dCBwYXR0ZXJuIDogIiArIHBhdHRlcm4pOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygidG9QYXR0ZXJuIiwgcGF0dGVybiwgZm10LnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IHBhdHRlcm4gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm4oKSAvLyBha2EgUGF0dGVyblRlc3QoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzW10gPSB7CisgICAgICAgICAgICBuZXcgRG91YmxlKDEpLCBuZXcgRG91YmxlKDM0NTYpLAorICAgICAgICAgICAgIkRpc2siLCBuZXcgRGF0ZSgxMDAwMDAwMDAwTCkKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHRlc3RDYXNlc1tdID0geworICAgICAgICAgICAiUXVvdGVzICcnLCAneycsICdhJyB7MH0gJ3swfSciLAorICAgICAgICAgICAiUXVvdGVzICcnLCAneycsICdhJyB7MCxudW1iZXJ9ICd7MH0nIiwKKyAgICAgICAgICAgIid7JzEsbnVtYmVyLCcjJywjI30gezEsbnVtYmVyLCcjJywjI30iLAorICAgICAgICAgICAiVGhlcmUgYXJlIHsxfSBmaWxlcyBvbiB7Mn0gYXQgezN9LiIsCisgICAgICAgICAgICJPbiB7Mn0sIHRoZXJlIGFyZSB7MX0gZmlsZXMsIHdpdGggezAsbnVtYmVyLGN1cnJlbmN5fS4iLAorICAgICAgICAgICAiJ3sxLG51bWJlcixwZXJjZW50fScsIHsxLG51bWJlcixwZXJjZW50fSwiLAorICAgICAgICAgICAiJ3sxLGRhdGUsZnVsbH0nLCB7MSxkYXRlLGZ1bGx9LCIsCisgICAgICAgICAgICInezMsZGF0ZSxmdWxsfScsIHszLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgIid7MSxudW1iZXIsIywjI30nIHsxLG51bWJlciwjLCMjfSIsCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIHRlc3RSZXN1bHRQYXR0ZXJuc1tdID0geworICAgICAgICAgICAgIlF1b3RlcyAnJywgJ3snLCBhIHswfSAneycwfSIsCisgICAgICAgICAgICAiUXVvdGVzICcnLCAneycsIGEgezAsbnVtYmVyfSAneycwfSIsCisgICAgICAgICAgICAiJ3snMSxudW1iZXIsIywjI30gezEsbnVtYmVyLCcjJyMsIyN9IiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgezF9IGZpbGVzIG9uIHsyfSBhdCB7M30uIiwKKyAgICAgICAgICAgICJPbiB7Mn0sIHRoZXJlIGFyZSB7MX0gZmlsZXMsIHdpdGggezAsbnVtYmVyLGN1cnJlbmN5fS4iLAorICAgICAgICAgICAgIid7JzEsbnVtYmVyLHBlcmNlbnR9LCB7MSxudW1iZXIscGVyY2VudH0sIiwKKyAgICAgICAgICAgICIneycxLGRhdGUsZnVsbH0sIHsxLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgICIneyczLGRhdGUsZnVsbH0sIHszLGRhdGUsZnVsbH0sIiwKKyAgICAgICAgICAgICIneycxLG51bWJlciwjLCMjfSB7MSxudW1iZXIsIywjI30iCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIHRlc3RSZXN1bHRTdHJpbmdzW10gPSB7CisgICAgICAgICAgICAiUXVvdGVzICcsIHssIGEgMSB7MH0iLAorICAgICAgICAgICAgIlF1b3RlcyAnLCB7LCBhIDEgezB9IiwKKyAgICAgICAgICAgICJ7MSxudW1iZXIsIywjI30gIzM0LDU2IiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgMyw0NTYgZmlsZXMgb24gRGlzayBhdCAxLzEyLzcwIDU6NDYgQU0uIiwKKyAgICAgICAgICAgICJPbiBEaXNrLCB0aGVyZSBhcmUgMyw0NTYgZmlsZXMsIHdpdGggJDEuMDAuIiwKKyAgICAgICAgICAgICJ7MSxudW1iZXIscGVyY2VudH0sIDM0NSw2MDAlLCIsCisgICAgICAgICAgICAiezEsZGF0ZSxmdWxsfSwgV2VkbmVzZGF5LCBEZWNlbWJlciAzMSwgMTk2OSwiLAorICAgICAgICAgICAgInszLGRhdGUsZnVsbH0sIE1vbmRheSwgSmFudWFyeSAxMiwgMTk3MCwiLAorICAgICAgICAgICAgInsxLG51bWJlciwjLCMjfSAzNCw1NiIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDk7ICsraSkgeworICAgICAgICAgICAgLy9pdF9vdXQgPDwgIlxuUGF0IGluOiAgIiA8PCB0ZXN0Q2FzZXNbaV0pOworCisgICAgICAgICAgICBTdHJpbmcgYnVmZmVyOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KHRlc3RDYXNlc1tpXSwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IGZvciAiICsgdGVzdENhc2VzW2ldICsgIiBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIHRlc3RDYXNlc1tpXSArICJcIi50b1BhdHRlcm4oKSIsIHRlc3RSZXN1bHRQYXR0ZXJuc1tpXSwgZm9ybS50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgICAgIC8vaXRfb3V0IDw8ICJQYXQgb3V0OiAiIDw8IGZvcm0udG9QYXR0ZXJuKGJ1ZmZlcikpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDQ7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJncywgcmVzdWx0LCBmaWVsZHBvcyk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIHRlc3RSZXN1bHRTdHJpbmdzW2ldLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIC8vaXRfb3V0IDw8ICJSZXN1bHQ6ICAiIDw8IHJlc3VsdCk7CisgICAgLy8jaWYgMAorICAgIC8vICAgICAgICAvKiBUT0RPOiBMb29rIGF0IHRoaXMgdGVzdCBhbmQgc2VlIGlmIHRoaXMgaXMgc3RpbGwgYSB2YWxpZCB0ZXN0ICovCisgICAgLy8gICAgICAgIGxvZ2xuKCItLS0tLS0tLS0tLS0tLS0tIHRlc3QgcGFyc2UgLS0tLS0tLS0tLS0tLS0tLSIpOworICAgIC8vCisgICAgLy8gICAgICAgIGZvcm0udG9QYXR0ZXJuKGJ1ZmZlcik7CisgICAgLy8gICAgICAgIGxvZ2xuKCJNU0cgcGF0dGVybiBmb3IgcGFyc2U6ICIgKyBidWZmZXIpOworICAgIC8vCisgICAgLy8gICAgICAgIGludCBwYXJzZUNvdW50ID0gMDsKKyAgICAvLyAgICAgICAgRm9ybWF0dGFibGUqIHZhbHVlcyA9IGZvcm0ucGFyc2UocmVzdWx0LCBwYXJzZUNvdW50LCBzdWNjZXNzKTsKKyAgICAvLyAgICAgICAgaWYgKFVfRkFJTFVSRShzdWNjZXNzKSkgeworICAgIC8vICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQgZmFpbGVkIHRlc3QgIzUiKTsKKyAgICAvLyAgICAgICAgICAgIGxvZ2xuKFN0cmluZygiTWVzc2FnZUZvcm1hdCBmYWlsZWQgdGVzdCAjNSB3aXRoIGVycm9yIGNvZGUgIikrKGludClzdWNjZXNzKTsKKyAgICAvLyAgICAgICAgfSBlbHNlIGlmIChwYXJzZUNvdW50ICE9IGNvdW50KSB7CisgICAgLy8gICAgICAgICAgICBlcnJsbigiTVNHIGNvdW50IG5vdCAlZCBhcyBleHBlY3RlZC4gR290ICVkIiwgY291bnQsIHBhcnNlQ291bnQpOworICAgIC8vICAgICAgICB9CisgICAgLy8gICAgICAgIFVCb29sIGZhaWxlZCA9IEZBTFNFOworICAgIC8vICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHBhcnNlQ291bnQ7ICsraikgeworICAgIC8vICAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0gMCB8fCB0ZXN0QXJnc1tqXSAhPSB2YWx1ZXNbal0pIHsKKyAgICAvLyAgICAgICAgICAgICAgICBlcnJsbigoKFN0cmluZykiTVNHIHRlc3RhcmdzWyIpICsgaiArICJdOiAiICsgdG9TdHJpbmcodGVzdEFyZ3Nbal0pKTsKKyAgICAvLyAgICAgICAgICAgICAgICBlcnJsbigoKFN0cmluZykiTVNHIHZhbHVlc1siKSArIGogKyAiXSAgOiAiICsgdG9TdHJpbmcodmFsdWVzW2pdKSk7CisgICAgLy8gICAgICAgICAgICAgICAgZmFpbGVkID0gVFJVRTsKKyAgICAvLyAgICAgICAgICAgICB9CisgICAgLy8gICAgICAgIH0KKyAgICAvLyAgICAgICAgaWYgKGZhaWxlZCkKKyAgICAvLyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IGZhaWxlZCB0ZXN0ICM2Iik7CisgICAgLy8jZW5kaWYKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTYW1wbGUoKSAvLyBha2Egc2FtcGxlKCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJTYW1wbGUgbWVzc2FnZSBmb3JtYXQgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczFbXSA9IHsgImFiYyIsICJkZWYiIH07CisgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgICAgICAgICAgIlRoZXJlIGFyZSBhYmMgZmlsZXMgb24gZGVmIiwKKyAgICAgICAgICAgICAgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMSwgYnVmZmVyMiwgZmllbGRwb3MpLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdGF0aWNGb3JtYXQoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0geworICAgICAgICAgICAgbmV3IEludGVnZXIoNyksCisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKSwKKyAgICAgICAgICAgICJhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSIKKyAgICAgICAgfTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsCisgICAgICAgICAgICAiQXQgMTI6MjA6MDAgUE0gb24gQXVnIDgsIDE5OTcsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlIGluIHRoZSBGb3JjZSBvbiBwbGFuZXQgNy4iLAorICAgICAgICAgICAgTWVzc2FnZUZvcm1hdC5mb3JtYXQoIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cykpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgRmllbGRQb3NpdGlvbl9ET05UX0NBUkUgPSAtMTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTaW1wbGVGb3JtYXQoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMVtdID0ge25ldyBJbnRlZ2VyKDApLCAiTXlEaXNrIn07CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczJbXSA9IHtuZXcgSW50ZWdlcigxKSwgIk15RGlzayJ9OworICAgICAgICBPYmplY3QgdGVzdEFyZ3MzW10gPSB7bmV3IEludGVnZXIoMTIpLCAiTXlEaXNrIn07CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgICAgICAgICAgICAiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0gZmlsZShzKS4iKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyaW5nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSA9IG5ldyBGaWVsZFBvc2l0aW9uKEZpZWxkUG9zaXRpb25fRE9OVF9DQVJFKTsKKyAgICAgICAgZm9ybS5mb3JtYXQodGVzdEFyZ3MxLCBzdHJpbmcsIGlnbm9yZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIDAgZmlsZShzKS4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworCisgICAgICAgIHN0cmluZy5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMiwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyAxIGZpbGUocykuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy50b1N0cmluZygpKTsKKworICAgICAgICBzdHJpbmcuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczMsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaXNrIFwiTXlEaXNrXCIgY29udGFpbnMgMTIgZmlsZShzKS4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNc2dGb3JtYXRDaG9pY2UoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9LiIpOworICAgICAgICBkb3VibGUgZmlsZWxpbWl0c1tdID0gezAsMSwyfTsKKyAgICAgICAgU3RyaW5nIGZpbGVwYXJ0W10gPSB7Im5vIGZpbGVzIiwib25lIGZpbGUiLCJ7MCxudW1iZXJ9IGZpbGVzIn07CisgICAgICAgIENob2ljZUZvcm1hdCBmaWxlZm9ybSA9IG5ldyBDaG9pY2VGb3JtYXQoZmlsZWxpbWl0cywgZmlsZXBhcnQpOworICAgICAgICBmb3JtLnNldEZvcm1hdCgxLCBmaWxlZm9ybSk7IC8vIE5PVCB6ZXJvLCBzZWUgYmVsb3cKKworICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSA9IG5ldyBGaWVsZFBvc2l0aW9uKEZpZWxkUG9zaXRpb25fRE9OVF9DQVJFKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMVtdID0ge25ldyBJbnRlZ2VyKDApLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMSwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMxIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIG5vIGZpbGVzLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3RyaW5nLnNldExlbmd0aCgwKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzMltdID0ge25ldyBJbnRlZ2VyKDEpLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMiwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMyIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIG9uZSBmaWxlLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3RyaW5nLnNldExlbmd0aCgwKTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzM1tdID0ge25ldyBJbnRlZ2VyKDEyNzMpLCAiTXlEaXNrIn07CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMywgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCMzIiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIDEsMjczIGZpbGVzLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyAgQVBJIFRlc3RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB6ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9IGNyZWF0ZWQiKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbnVsbDsKKyAgICAgICAgeSA9IChNZXNzYWdlRm9ybWF0KXguY2xvbmUoKTsKKyAgICAgICAgaWYgKHguZXF1YWxzKHkpICYmCisgICAgICAgICAgICAheC5lcXVhbHMoeikgJiYKKyAgICAgICAgICAgICF5LmVxdWFscyh6KSApCisgICAgICAgICAgICBsb2dsbigiRmlyc3QgdGVzdCAob3BlcmF0b3IgPT0pOiBQYXNzZWQhIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZpcnN0IHRlc3QgKG9wZXJhdG9yID09KTogRmFpbGVkISIpOworICAgICAgICB9CisgICAgICAgIGlmICgoeC5lcXVhbHMoeSkgJiYgeS5lcXVhbHMoeCkpICYmCisgICAgICAgICAgICAoIXguZXF1YWxzKHopICYmICF6LmVxdWFscyh4KSkgJiYKKyAgICAgICAgICAgICgheS5lcXVhbHMoeikgJiYgIXouZXF1YWxzKHkpKSApCisgICAgICAgICAgICBsb2dsbigiU2Vjb25kIHRlc3QgKGVxdWFscyk6IFBhc3NlZCEiKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHRlc3QgKGVxdWFscyk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIGlmICgheC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaXJzdCB0ZXN0IChvcGVyYXRvciA9PSk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vdEVxdWFscygpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIHkuc2V0TG9jYWxlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaXJzdCB0ZXN0IChvcGVyYXRvciAhPSk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorICAgICAgICB5ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIHkuYXBwbHlQYXR0ZXJuKCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSB0aGUgZGlzayIpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgdGVzdCAob3BlcmF0b3IgIT0pOiBGYWlsZWQhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgVUxvY2FsZSBzYXZlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLlVTKTsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IHggPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB6ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeSA9IG51bGw7CisgICAgICAgIHkgPSAoTWVzc2FnZUZvcm1hdCl4LmNsb25lKCk7CisgICAgICAgIGlmICh4Lmhhc2hDb2RlKCkgIT0geS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlkZW50aWNhbCBvYmplY3RzIGhhdmUgZGlmZmVyZW50IGhhc2hjb2RlcyIpOworICAgICAgICBpZiAoeC5oYXNoQ29kZSgpICE9IHouaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpZGVudGljYWwgb2JqZWN0cyBoYXZlIGRpZmZlcmVudCBoYXNoY29kZXMiKTsKKworICAgIC8qIFRoZXNlIGFyZSBub3QgZXJyb3JzCisgICAgICAgIHkuc2V0TG9jYWxlKFVMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSA9PSB5Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2Rlcy4gTG9jYWxlIGlnbm9yZWQiKTsKKworICAgICAgICB6LmFwcGx5UGF0dGVybigiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0gdGhlIGRpc2siKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSA9PSB6Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2Rlcy4gUGF0dGVybiBpZ25vcmVkIik7CisgICAgKi8KKworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoc2F2ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNldExvY2FsZSgpCisgICAgeworICAgICAgICBPYmplY3QgYXJndW1lbnRzW10gPSB7CisgICAgICAgICAgICBuZXcgRG91YmxlKDQ1Ni44MyksCisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKSwKKyAgICAgICAgICAgICJkZXBvc2l0IgorICAgICAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vU3RyaW5nIGZvcm1hdFN0ciA9ICJBdCB7MSx0aW1lfSBvbiB7MSxkYXRlfSwgeW91IG1hZGUgYSB7Mn0gb2YgezAsbnVtYmVyLGN1cnJlbmN5fS4iOworICAgICAgICBTdHJpbmcgZm9ybWF0U3RyID0gIkF0IDx0aW1lPiBvbiB7MSxkYXRlfSwgeW91IG1hZGUgYSB7Mn0gb2YgezAsbnVtYmVyLGN1cnJlbmN5fS4iOworICAgICAgICAvLyB7c2ZifSB0byBnZXQgJCwgd291bGQgbmVlZCBMb2NhbGU6OlVTLCBub3QgTG9jYWxlOjpFTkdMSVNICisgICAgICAgIC8vIEp1c3QgdXNlIHVubG9jYWxpemVkIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgICAgLy9TdHJpbmcgY29tcGFyZVN0ckVuZyA9ICJBdCA8dGltZT4gb24gQXVnIDgsIDE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAkNDU2LjgzLiI7CisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyRW5nID0gIkF0IDx0aW1lPiBvbiBBdWcgOCwgMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHJFbmcgKz0gJ1x1MDBhNCc7CisgICAgICAgIGNvbXBhcmVTdHJFbmcgKz0gIjQ1Ni44My4iOworICAgICAgICAvLyB7c2ZifSB0byBnZXQgRE0sIHdvdWxkIG5lZWQgTG9jYWxlOjpHRVJNQU5ZLCBub3QgTG9jYWxlOjpHRVJNQU4KKyAgICAgICAgLy8gSnVzdCB1c2UgdW5sb2NhbGl6ZWQgY3VycmVuY3kgc3ltYm9sLgorICAgICAgICAvL1N0cmluZyBjb21wYXJlU3RyR2VyID0gIkF0IDx0aW1lPiBvbiAwOC4wOC4xOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgNDU2LDgzIERNLiI7CisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyR2VyID0gIkF0IDx0aW1lPiBvbiAwOC4wOC4xOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgIjsKKyAgICAgICAgY29tcGFyZVN0ckdlciArPSAnXHUwMGE0JzsKKyAgICAgICAgY29tcGFyZVN0ckdlciArPSAiIDQ1Niw4My4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHJFbmcsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICBtc2cuc2V0TG9jYWxlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRMb2NhbGUiLCBMb2NhbGUuRU5HTElTSCwgbXNnLmdldExvY2FsZSgpKTsKKworICAgICAgICBtc2cuc2V0TG9jYWxlKExvY2FsZS5HRVJNQU4pOworICAgICAgICBhc3NlcnRFcXVhbHMoImdldExvY2FsZSIsIExvY2FsZS5HRVJNQU4sIG1zZy5nZXRMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLmFwcGx5UGF0dGVybihmb3JtYXRTdHIpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgYXJndW1lbnRzLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgcG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBjb21wYXJlU3RyR2VyLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgLy9Db3ZlciBnZXRVTG9jYWxlKCkKKyAgICAgICAgbG9nbG4oIlRlc3Rpbmcgc2V0L2dldCBVTG9jYWxlIC4uLiIpOworICAgICAgICBtc2cuc2V0TG9jYWxlKFVMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0VUxvY2FsZSIsIFVMb2NhbGUuRU5HTElTSCwgbXNnLmdldFVMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLnNldExvY2FsZShVTG9jYWxlLkdFUk1BTik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0VUxvY2FsZSIsIFVMb2NhbGUuR0VSTUFOLCBtc2cuZ2V0VUxvY2FsZSgpKTsKKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKGZvcm1hdFN0cik7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHJHZXIsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkKKyAgICB7CisgICAgICAgIGZpbmFsIE9iamVjdCBmdF9hcnJbXSA9CisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyBEYXRlKDg3MTA2ODAwMDAwMEwpCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvL1N0cmluZyBmb3JtYXRTdHIgPSAiQXQgezEsdGltZX0gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ciA9ICJPbiB7MCxkYXRlfSwgaXQgYmVnYW4uIjsKKyAgICAgICAgU3RyaW5nIGNvbXBhcmVTdHIgPSAiT24gQXVnIDgsIDE5OTcsIGl0IGJlZ2FuLiI7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChmb3JtYXRTdHIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1zZy5mb3JtYXQobmV3IERhdGUoODcxMDY4MDAwMDAwTCksCisgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgZnApOworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgZm9ybWF0IHdpdGhvdXQgZXhwZWN0ZWQgZXJyb3IgY29kZS4iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgZnRfYXJyLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgZnApOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHIsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2UoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG1zZ0Zvcm1hdFN0cmluZyA9ICJ7MH0gPXNlcD0gezF9IjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChtc2dGb3JtYXRTdHJpbmcpOworICAgICAgICBTdHJpbmcgc291cmNlID0gImFiYyA9c2VwPSBkZWYiOworICAgICAgICBTdHJpbmcgdG1wMSwgdG1wMjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0W10gZm10X2FyciA9IG1zZy5wYXJzZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgY291bnQsIGVycikgY291bnQgZXJyLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZm10X2Fyci5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgcGFyc2Vwb3MuLCBjb3VudCkgY291bnQgZXJyLiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVswXSIsICJhYmMiLCBmbXRfYXJyWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwYXJzZSgpWzFdIiwgImRlZiIsIGZtdF9hcnJbMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBjb3VudCwgZXJyKSBlcnJvci4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKworICAgICAgICBPYmplY3RbXSBmbXRfYXJyID0gbXNnLnBhcnNlKHNvdXJjZSwgcHApOworICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKT09MCB8fCBmbXRfYXJyPT1udWxsKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgcGFyc2Vwb3MuLCBjb3VudCkgZXJyb3IuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZm10X2Fyci5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBwYXJzZXBvcy4sIGNvdW50KSBjb3VudCBlcnIuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVswXSIsICJhYmMiLCBmbXRfYXJyWzBdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMV0iLCAiZGVmIiwgZm10X2FyclsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgT2JqZWN0W10gZm10YTsKKworICAgICAgICBmbXRhID0gKE9iamVjdFtdKSBtc2cucGFyc2VPYmplY3QoIHNvdXJjZSwgcHAgKTsKKyAgICAgICAgaWYgKHBwLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIE9iamVjdCwgcGFyc2Vwb3MgKSBlcnJvci4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmbXRhLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIGNvdW50LCBlcnIpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIHBhcnNlcG9zLiwgY291bnQpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMF0iLCAiYWJjIiwgZm10X2FyclswXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVsxXSIsICJkZWYiLCBmbXRfYXJyWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPZiBjb3Vyc2UsIGluIEphdmEgdGhlcmUgaXMgbm8gYWRvcHQsIGJ1dCB3ZSByZXRhaW4gdGhlIHNhbWUKKyAgICAgKiBtZXRob2QgbmFtZS4gW2FsYW5dCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkb3B0KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBmb3JtYXRTdHIgPSAiezAsZGF0ZX0sezF9LHsyLG51bWJlcn0iOworICAgICAgICBTdHJpbmcgZm9ybWF0U3RyQ2hhbmdlID0gInswLG51bWJlcn0sezEsbnVtYmVyfSx7MixkYXRlfSI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2dDbXAgPSBuZXcgTWVzc2FnZUZvcm1hdChmb3JtYXRTdHIpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0gbXNnLmdldEZvcm1hdHMoKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0c0NtcCA9IG1zZ0NtcC5nZXRGb3JtYXRzKCk7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHNDaGcgPSBudWxsOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzQWN0ID0gbnVsbDsKKyAgICAgICAgRm9ybWF0IGEgPSBudWxsOworICAgICAgICBGb3JtYXQgYiA9IG51bGw7CisgICAgICAgIFN0cmluZyBwYXRDbXA7CisgICAgICAgIFN0cmluZyBwYXRBY3Q7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHNUb0Fkb3B0ID0gbnVsbDsKKworICAgICAgICBpZiAoZm9ybWF0cz09bnVsbCB8fCBmb3JtYXRzQ21wPT1udWxsIHx8IChmb3JtYXRzLmxlbmd0aCA8PSAwKSB8fCAoZm9ybWF0cy5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYSA9IGZvcm1hdHNbaV07CisgICAgICAgICAgICBiID0gZm9ybWF0c0NtcFtpXTsKKyAgICAgICAgICAgIGlmICgoYSAhPSBudWxsKSAmJiAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImEgIT0gYiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1zZy5hcHBseVBhdHRlcm4oIGZvcm1hdFN0ckNoYW5nZSApOyAvL3NldCBtc2cgZm9ybWF0cyB0byBzb21ldGhpbmcgZGlmZmVyZW50CisgICAgICAgIGZvcm1hdHNDaGcgPSBtc2cuZ2V0Rm9ybWF0cygpOyAvLyB0ZXN0ZWQgZnVuY3Rpb24KKyAgICAgICAgaWYgKGZvcm1hdHNDaGc9PW51bGwgfHwgKGZvcm1hdHNDaGcubGVuZ3RoICE9IGZvcm1hdHMubGVuZ3RoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgRm9ybWF0cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBkaWZmOworICAgICAgICBkaWZmID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzQ2hnW2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImZvcm1hdHNDaGcgPT0gZm9ybWF0c0NtcCBhdCBpbmRleCAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFkaWZmKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBnZXRGb3JtYXRzIGRpZmYgZXJyLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIk1TRyBnZXRGb3JtYXRzIHRlc3RlZC4iKTsKKworICAgICAgICBtc2cuc2V0Rm9ybWF0cyggZm9ybWF0c0NtcCApOyAvL3Rlc3RlZCBmdW5jdGlvbgorCisgICAgICAgIGZvcm1hdHNBY3QgPSBtc2cuZ2V0Rm9ybWF0cygpOworICAgICAgICBpZiAoZm9ybWF0c0FjdD09bnVsbCB8fCAoZm9ybWF0c0FjdC5sZW5ndGggPD0wKSB8fCAoZm9ybWF0c0FjdC5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnRFcXVhbHMoIm1zZ0NtcC50b1BhdHRlcm4oKSIsIGZvcm1hdFN0ciwgbXNnQ21wLnRvUGF0dGVybigpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2cudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZy50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHNBY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzQWN0W2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXRzQWN0ICE9IGZvcm1hdHNDbXAgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTVNHIHNldEZvcm1hdHMgdGVzdGVkLiIpOworCisgICAgICAgIC8vLS0tLQorCisgICAgICAgIG1zZy5hcHBseVBhdHRlcm4oIGZvcm1hdFN0ckNoYW5nZSApOyAvL3NldCBtc2cgZm9ybWF0cyB0byBzb21ldGhpbmcgZGlmZmVyZW50CisKKyAgICAgICAgZm9ybWF0c1RvQWRvcHQgPSBuZXcgRm9ybWF0W2Zvcm1hdHNDbXAubGVuZ3RoXTsKKyAgICAgICAgaWYgKGZvcm1hdHNUb0Fkb3B0PT1udWxsKSB7CisgICAgICAgICAgICBlcnJsbigibWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzQ21wLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoZm9ybWF0c0NtcFtpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1RvQWRvcHRbaV0gPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzVG9BZG9wdFtpXSA9IChGb3JtYXQpIGZvcm1hdHNDbXBbaV0uY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0c1RvQWRvcHRbaV09PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNhbid0IGNsb25lIGZvcm1hdCBhdCBpbmRleCAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbXNnLnNldEZvcm1hdHMoIGZvcm1hdHNUb0Fkb3B0ICk7IC8vIGZ1bmN0aW9uIHRvIHRlc3QKKworICAgICAgICBhc3NlcnRFcXVhbHMoIm1zZ0NtcC50b1BhdHRlcm4oKSIsIGZvcm1hdFN0ciwgbXNnQ21wLnRvUGF0dGVybigpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2cudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZy50b1BhdHRlcm4oKSk7CisKKyAgICAgICAgZm9ybWF0c0FjdCA9IG1zZy5nZXRGb3JtYXRzKCk7CisgICAgICAgIGlmIChmb3JtYXRzQWN0PT1udWxsIHx8IChmb3JtYXRzQWN0Lmxlbmd0aCA8PTApIHx8IChmb3JtYXRzQWN0Lmxlbmd0aCAhPSBmb3JtYXRzQ21wLmxlbmd0aCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIEZvcm1hdHMiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzQWN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhID0gZm9ybWF0c0FjdFtpXTsKKyAgICAgICAgICAgIGIgPSBmb3JtYXRzQ21wW2ldOworICAgICAgICAgICAgaWYgKChhICE9IG51bGwpICYmIChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhLmVxdWFscyhiKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiYSAhPSBiIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKChhICE9IG51bGwpIHx8IChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIihhICE9IG51bGwpIHx8IChiICE9IG51bGwpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJNU0cgYWRvcHRGb3JtYXRzIHRlc3RlZC4iKTsKKworICAgICAgICAvLy0tLS0gYWRvcHRGb3JtYXQKKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKCBmb3JtYXRTdHJDaGFuZ2UgKTsgLy9zZXQgbXNnIGZvcm1hdHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudAorCisgICAgICAgIGZvcm1hdHNUb0Fkb3B0ID0gbmV3IEZvcm1hdFtmb3JtYXRzQ21wLmxlbmd0aF07CisgICAgICAgIGlmIChmb3JtYXRzVG9BZG9wdD09bnVsbCkgeworICAgICAgICAgICAgZXJybG4oIm1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0NtcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGZvcm1hdHNDbXBbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNUb0Fkb3B0W2ldID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1RvQWRvcHRbaV0gPSAoRm9ybWF0KSBmb3JtYXRzQ21wW2ldLmNsb25lKCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHNUb0Fkb3B0W2ldPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDYW4ndCBjbG9uZSBmb3JtYXQgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBmb3JtYXRzQ21wLmxlbmd0aDsgaSsrICkgeworICAgICAgICAgICAgbXNnLnNldEZvcm1hdCggaSwgZm9ybWF0c1RvQWRvcHRbaV0gKTsgLy8gZnVuY3Rpb24gdG8gdGVzdAorICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2dDbXAudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZ0NtcC50b1BhdHRlcm4oKSk7CisgICAgICAgIGFzc2VydEVxdWFscygibXNnLnRvUGF0dGVybigpIiwgZm9ybWF0U3RyLCBtc2cudG9QYXR0ZXJuKCkpOworCisgICAgICAgIGZvcm1hdHNBY3QgPSBtc2cuZ2V0Rm9ybWF0cygpOworICAgICAgICBpZiAoZm9ybWF0c0FjdD09bnVsbCB8fCAoZm9ybWF0c0FjdC5sZW5ndGggPD0wKSB8fCAoZm9ybWF0c0FjdC5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0FjdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYSA9IGZvcm1hdHNBY3RbaV07CisgICAgICAgICAgICBiID0gZm9ybWF0c0NtcFtpXTsKKyAgICAgICAgICAgIGlmICgoYSAhPSBudWxsKSAmJiAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImEgIT0gYiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTVNHIGFkb3B0Rm9ybWF0IHRlc3RlZC4iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBNZXNzYWdlRm9ybWF0IGFjY29tb2RhdGVzIG1vcmUgdGhhbiAxMCBhcmd1bWVudHMgYW5kCisgICAgICogbW9yZSB0aGFuIDEwIHN1YmZvcm1hdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVubGltaXRlZEFyZ3NBbmRTdWJmb3JtYXRzKCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9CisgICAgICAgICAgICAiT24gezAsZGF0ZX0gKGFrYSB7MCxkYXRlLHNob3J0fSwgYWthIHswLGRhdGUsbG9uZ30pICIrCisgICAgICAgICAgICAiYXQgezAsdGltZX0gKGFrYSB7MCx0aW1lLHNob3J0fSwgYWthIHswLHRpbWUsbG9uZ30pICIrCisgICAgICAgICAgICAidGhlcmUgd2VyZSB7MSxudW1iZXJ9IHdlcmplcyAiKworICAgICAgICAgICAgIihhIHszLG51bWJlcixwZXJjZW50fSBpbmNyZWFzZSBvdmVyIHsyLG51bWJlcn0pICIrCisgICAgICAgICAgICAiZGVzcGl0ZSB0aGUgezR9JydzIGVmZm9ydHMgIisKKyAgICAgICAgICAgICJhbmQgdG8gZGVsaWdodCBvZiB7NX0sIHs2fSwgezd9LCB7OH0sIHs5fSwgYW5kIHsxMH0gezExfS4iOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBtc2cgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKworICAgICAgICAgICAgZmluYWwgT2JqZWN0IEFSR1NbXSA9IHsKKyAgICAgICAgICAgICAgICBuZXcgRGF0ZSgxMDAwMDAwMDAwMDAwMEwpLAorICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEzMDMpLAorICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEyMDIpLAorICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTMwMy4wLzEyMDIgLSAxKSwKKyAgICAgICAgICAgICAgICAiR2xpbW11bmciLAorICAgICAgICAgICAgICAgICJ0aGUgcHJpbnRlcnMiLAorICAgICAgICAgICAgICAgICJOaWNrIiwKKyAgICAgICAgICAgICAgICAiaGlzIGZhdGhlciIsCisgICAgICAgICAgICAgICAgImhpcyBtb3RoZXIiLAorICAgICAgICAgICAgICAgICJ0aGUgc3BpZGRsZXMiLAorICAgICAgICAgICAgICAgICJvZiBjb3Vyc2UiLAorICAgICAgICAgICAgICAgICJIb3JhY2UiCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPQorICAgICAgICAgICAgICAgICJPbiBOb3YgMjAsIDIyODYgKGFrYSAxMS8yMC84NiwgYWthIE5vdmVtYmVyIDIwLCAyMjg2KSAiKworICAgICAgICAgICAgICAgICJhdCA5OjQ2OjQwIEFNIChha2EgOTo0NiBBTSwgYWthIDk6NDY6NDAgQU0gUFNUKSAiKworICAgICAgICAgICAgICAgICJ0aGVyZSB3ZXJlIDEsMzAzIHdlcmplcyAiKworICAgICAgICAgICAgICAgICIoYSA4JSBpbmNyZWFzZSBvdmVyIDEsMjAyKSAiKworICAgICAgICAgICAgICAgICJkZXNwaXRlIHRoZSBHbGltbXVuZydzIGVmZm9ydHMgIisKKyAgICAgICAgICAgICAgICAiYW5kIHRvIGRlbGlnaHQgb2YgdGhlIHByaW50ZXJzLCBOaWNrLCBoaXMgZmF0aGVyLCAiKworICAgICAgICAgICAgICAgICJoaXMgbW90aGVyLCB0aGUgc3BpZGRsZXMsIGFuZCBvZiBjb3Vyc2UgSG9yYWNlLiI7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBleHBlY3RlZCwgbXNnLmZvcm1hdChBUkdTKSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gdGVzdCBSQk5GIGV4dGVuc2lvbnMgdG8gbWVzc2FnZSBmb3JtYXQKKyAgICBwdWJsaWMgdm9pZCBUZXN0UkJORigpIHsKKyAgICAgICAgLy8gV0FSTklORzogdGhpcyBkZXBlbmRzIG9uIHRoZSBSQk5GIGZvcm1hdHMgZm9yIGVuX1VTCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGUuVVM7CisgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9IHsKKyAgICAgICAgICAgIC8vIGRlY2ltYWwgdmFsdWVzIGRvIG5vdCBmb3JtYXQgY29tcGxldGVseSBmb3Igb3JkaW5hbCBvciBkdXJhdGlvbiwgYW5kCisgICAgICAgICAgICAvLyBkbyBub3QgYWx3YXlzIHBhcnNlLCBzbyBkbyBub3QgaW5jbHVkZSB0aGVtCisgICAgICAgICAgICAiMCIsICIxIiwgIjEyIiwgIjEwMCIsICIxMjMiLCAiMTAwMSIsICIxMjMsNDU2IiwgIi0xNyIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIGZvcm1hdHMgPSB7CisgICAgICAgICAgICAiVGhlcmUgYXJlIHswLHNwZWxsb3V0fSBmaWxlcyB0byBzZWFyY2guIiwKKyAgICAgICAgICAgICJUaGVyZSBhcmUgezAsc3BlbGxvdXQsJXNpbXBsaWZpZWR9IGZpbGVzIHRvIHNlYXJjaC4iLAorICAgICAgICAgICAgIlRoZSBib2d1cyBzcGVsbG91dCB7MCxzcGVsbG91dCwlQk9HVVN9IGZpbGVzIGJlaGF2ZXMgbGlrZSB0aGUgZGVmYXVsdC4iLAorICAgICAgICAgICAgIlRoaXMgaXMgdGhlIHswLG9yZGluYWx9IGZpbGUgdG8gc2VhcmNoLiIsIC8vIFRPRE8gZml4IGJ1Zywgb3JkaW5hbCBkb2VzIG5vdCBwYXJzZQorICAgICAgICAgICAgIlNlYXJjaGluZyB0aGlzIGZpbGUgd2lsbCB0YWtlIHswLGR1cmF0aW9ufSB0byBjb21wbGV0ZS4iLAorICAgICAgICAgICAgIlNlYXJjaGluZyB0aGlzIGZpbGUgd2lsbCB0YWtlIHswLGR1cmF0aW9uLCV3aXRoLXdvcmRzfSB0byBjb21wbGV0ZS4iLAorICAgICAgICB9OworICAgICAgICBmaW5hbCBOdW1iZXJGb3JtYXQgbnVtRm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIE9iamVjdFtdIGFyZ3MgPSBuZXcgT2JqZWN0WzFdOworICAgICAgICBOdW1iZXIgbnVtID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KGZvcm1hdHNbaV0sIGxvY2FsZSk7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBmb3JtYXQgcGF0dGVybjogJyIgKyBmb3JtYXRzW2ldICsgIiciKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbnVtID0gbnVtRm10LnBhcnNlKHZhbHVlc1tqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJmYWlsZWQgdG8gcGFyc2UgdGVzdCBhcmd1bWVudCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcmdzWzBdID0gbnVtOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KGFyZ3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ2YWx1ZTogIiArIG51bSArICIgLS0+ICIgKyByZXN1bHQpOworCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMykgeyAvLyBUT0RPOiBmaXggdGhpcywgZm9yIG5vdyBza2lwIG9yZGluYWwgcGFyc2luZyAoZm9ybWF0IHN0cmluZyBhdCBpbmRleCAzKQorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gcGFyc2VkQXJncyA9IGZtdC5wYXJzZShyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZEFyZ3MubGVuZ3RoICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyc2UgcmV0dXJuZWQgIiArIHBhcnNlZEFyZ3MubGVuZ3RoICsgIiBhcmdzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJzZWRBcmdzWzBdLmVxdWFscyhudW0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlZCBhcmd1bWVudCAiICsgcGFyc2VkQXJnc1swXSArICIgIT0gIiArIG51bSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyByZXN1bHQgKyAiIHJldHVybmVkIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRHZXRGb3JtYXRzKCkKKyAgICB7CisgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHsKKyAgICAgICAgICAgIG5ldyBEb3VibGUoNDU2LjgzKSwKKyAgICAgICAgICAgIG5ldyBEYXRlKDg3MTA2ODAwMDAwMEwpLAorICAgICAgICAgICAgImRlcG9zaXQiCisgICAgICAgICAgICB9OworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ciA9ICJBdCA8dGltZT4gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgLy8gb3JpZ2luYWwgZXhwZWN0ZWQgZm9ybWF0IHJlc3VsdAorICAgICAgICBTdHJpbmcgY29tcGFyZVN0ciA9ICJBdCA8dGltZT4gb24gQXVnIDgsIDE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAkNDU2LjgzLiI7CisgICAgICAgIC8vIHRoZSBkYXRlIGJlaW5nIEdlcm1hbi1zdHlsZSwgYnV0IHRoZSBjdXJyZW5jeSBiZWluZyBFbmdsaXNoLXN0eWxlCisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyMiA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHIyICs9ICdcdTAwYTQnOworICAgICAgICBjb21wYXJlU3RyMiArPSAiNDU2LjgzLiI7CisgICAgICAgIC8vIGJvdGggZGF0ZSBhbmQgY3VycmVuY3kgZm9ybWF0cyBhcmUgR2VybWFuLXN0eWxlCisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyMyA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHIzICs9ICdcdTAwYTQnOworICAgICAgICBjb21wYXJlU3RyMyArPSAiIDQ1Niw4My4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0ciwgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vIGNvbnN0cnVjdHMgYSBGb3JtYXQgYXJyYXkgd2l0aCBhIEVuZ2xpc2gtc3R5bGUgQ3VycmVuY3kgZm9ybWF0dGVyCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhIEdlcm1hbi1zdHlsZSBEYXRlIGZvcm1hdHRlcgorICAgICAgICAvLyAgICAgIG1pZ2h0IG5vdCBtZWFuaW5nZnVsLCBqdXN0IGZvciB0ZXN0aW5nIHNldEZvcm1hdHNCeUFyZ0luZGV4CisgICAgICAgIEZvcm1hdFtdIGZtdHMgPSBuZXcgRm9ybWF0W10geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZS5FTkdMSVNIKSwKKyAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgVUxvY2FsZS5HRVJNQU4pCisgICAgICAgICAgICB9OworCisgICAgICAgIG1zZy5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KGZtdHMpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0cjIsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBHZXJtYW4tc3R5bGUgQ3VycmVuY3kgZm9ybWF0dGVyLCByZXBsYWNlIHRoZSBjb3JyZXNwb25kaW5nIG9uZQorICAgICAgICAvLyBUaHVzIGJvdGggZm9ybWF0dGVycyBzaG91bGQgZm9ybWF0IG9iamVjdHMgd2l0aCBHZXJtYW4tc3R5bGUKKyAgICAgICAgRm9ybWF0IG5ld0ZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUuR0VSTUFOKTsKKyAgICAgICAgbXNnLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBuZXdGbXQpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0cjMsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAvLyB2ZXJpZnkgZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleAorICAgICAgICAvLyAgIHlvdSBzaG91bGQgZ290IHRocmVlIGZvcm1hdHMgYnkgdGhhdAorICAgICAgICAvLyAgICAgICAgICAtIERlY2ltYWxGb3JtYXQgICAgIGxvY2FsZTogZGUKKyAgICAgICAgLy8gICAgICAgICAgLSBTaW1wbGVEYXRlRm9ybWF0ICBsb2NhbGU6IGRlCisgICAgICAgIC8vICAgICAgICAgIC0gbnVsbAorICAgICAgICBGb3JtYXRbXSBmbXRzMiA9IG1zZy5nZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMXN0IHN1YmZvcm1tYXRlcjogRm9ybWF0IENsYXNzIiwgImNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdCIsIGZtdHMyWzBdLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxc3Qgc3ViZm9ybW1hdGVyOiBpdHMgTG9jYWxlIiwgVUxvY2FsZS5HRVJNQU4sICgoVUZvcm1hdClmbXRzMlswXSkuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMm5kIHN1YmZvcm1hdHRlcjogRm9ybWF0IENsYXNzIiwgImNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCIsIGZtdHMyWzFdLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIybmQgc3ViZm9ybW1hdGVyOiBpdHMgTG9jYWxlIiwgVUxvY2FsZS5HRVJNQU4sICgoVUZvcm1hdClmbXRzMlsxXSkuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSk7CisgICAgICAgIGFzc2VydFRydWUoIlRoZSB0aGlyZCBzdWJGb3JtYXR0ZXIgaXMgbnVsbCIsIG51bGwgPT0gZm10czJbMl0pOworICAgIH0KKworICAgIC8vIFRlc3QgdGhlIGZpeCBwYXR0ZXJuIGFwaQorICAgIHB1YmxpYyB2b2lkIFRlc3RBdXRvUXVvdGVBcG9zdHJvcGhlKCkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSBwYXR0ZXJucyA9IHsgLy8gbmV3IHBhdHRlcm4sIGV4cGVjdGVkIHBhdHRlcm4KKyAgICAgICAgICAgICInIiwgIicnIiwKKyAgICAgICAgICAgICInJyIsICInJyIsCisgICAgICAgICAgICAiJ3siLCAiJ3snIiwKKyAgICAgICAgICAgICInIHsiLCAiJycgeyIsCisgICAgICAgICAgICAiJ2EiLCAiJydhIiwKKyAgICAgICAgICAgICIneydhIiwgIid7J2EiLAorICAgICAgICAgICAgIid7YSciLCAiJ3thJyIsCisgICAgICAgICAgICAiJ3t9IiwgIid7fSciLAorICAgICAgICAgICAgInsnIiwgInsnIiwKKyAgICAgICAgICAgICJ7J2EiLCAieydhIiwKKyAgICAgICAgICAgICJ7J2F7fSdhfSdhIiwgInsnYXt9J2F9JydhIiwKKwkgICAgIid9JyIsICInfSciLAorCSAgICAiJ30gJ3snfSciLCAiJ30gJ3snfScnIiwKKwkgICAgIid9IHt7eycnIiwgIid9IHt7eycnJyIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybnMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiWyIgKyAoaS8yKSArICJdIFwiIiArIHBhdHRlcm5zW2ldICsgIlwiIiwgcGF0dGVybnNbaSsxXSwgTWVzc2FnZUZvcm1hdC5hdXRvUXVvdGVBcG9zdHJvcGhlKHBhdHRlcm5zW2ldKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1RpbWVab25lQWxpYXNlcy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1RpbWVab25lQWxpYXNlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDlmZmVhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvVGltZVpvbmVBbGlhc2VzLnR4dApAQCAtMCwwICsxLDE2NSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBbWVyaWNhL0F0a2EgOyBBbWVyaWNhL0FkYWsKK0FtZXJpY2EvRW5zZW5hZGEgOyBBbWVyaWNhL1RpanVhbmEKK0FtZXJpY2EvRm9ydF9XYXluZSA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK0FtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSA7IEFtZXJpY2EvTG91aXN2aWxsZQorQW1lcmljYS9Lbm94X0lOIDsgQW1lcmljYS9JbmRpYW5hL0tub3gKK0FtZXJpY2EvUG9ydG9fQWNyZSA7IEFtZXJpY2EvUmlvX0JyYW5jbworQW1lcmljYS9Sb3NhcmlvIDsgQW1lcmljYS9Db3Jkb2JhCitBbWVyaWNhL1NoaXByb2NrIDsgQW1lcmljYS9EZW52ZXIKK0FtZXJpY2EvVmlyZ2luIDsgQW1lcmljYS9TdF9UaG9tYXMKK0FudGFyY3RpY2EvU291dGhfUG9sZSA7IEFudGFyY3RpY2EvTWNNdXJkbworQXJjdGljL0xvbmd5ZWFyYnllbiA7IEV1cm9wZS9Pc2xvCitBc2lhL0FzaGtoYWJhZCA7IEFzaWEvQXNoZ2FiYXQKK0FzaWEvQ2h1bmdraW5nIDsgQXNpYS9DaG9uZ3FpbmcKK0FzaWEvRGFjY2EgOyBBc2lhL0RoYWthCitBc2lhL0lzdGFuYnVsIDsgRXVyb3BlL0lzdGFuYnVsCitBc2lhL01hY2FvIDsgQXNpYS9NYWNhdQorQXNpYS9UZWxfQXZpdiA7IEFzaWEvSmVydXNhbGVtCitBc2lhL1RoaW1idSA7IEFzaWEvVGhpbXBodQorQXNpYS9VanVuZ19QYW5kYW5nIDsgQXNpYS9NYWthc3NhcgorQXNpYS9VbGFuX0JhdG9yIDsgQXNpYS9VbGFhbmJhYXRhcgorI0F0bGFudGljL0phbl9NYXllbiA7IEV1cm9wZS9Pc2xvCitBdXN0cmFsaWEvQUNUIDsgQXVzdHJhbGlhL1N5ZG5leQorQXVzdHJhbGlhL0NhbmJlcnJhIDsgQXVzdHJhbGlhL1N5ZG5leQorQXVzdHJhbGlhL0xISSA7IEF1c3RyYWxpYS9Mb3JkX0hvd2UKK0F1c3RyYWxpYS9OU1cgOyBBdXN0cmFsaWEvU3lkbmV5CitBdXN0cmFsaWEvTm9ydGggOyBBdXN0cmFsaWEvRGFyd2luCitBdXN0cmFsaWEvUXVlZW5zbGFuZCA7IEF1c3RyYWxpYS9CcmlzYmFuZQorQXVzdHJhbGlhL1NvdXRoIDsgQXVzdHJhbGlhL0FkZWxhaWRlCitBdXN0cmFsaWEvVGFzbWFuaWEgOyBBdXN0cmFsaWEvSG9iYXJ0CitBdXN0cmFsaWEvVmljdG9yaWEgOyBBdXN0cmFsaWEvTWVsYm91cm5lCitBdXN0cmFsaWEvV2VzdCA7IEF1c3RyYWxpYS9QZXJ0aAorQXVzdHJhbGlhL1lhbmNvd2lubmEgOyBBdXN0cmFsaWEvQnJva2VuX0hpbGwKK0JyYXppbC9BY3JlIDsgQW1lcmljYS9Qb3J0b19BY3JlCitCcmF6aWwvRGVOb3JvbmhhIDsgQW1lcmljYS9Ob3JvbmhhCitCcmF6aWwvRWFzdCA7IEFtZXJpY2EvU2FvX1BhdWxvCitCcmF6aWwvV2VzdCA7IEFtZXJpY2EvTWFuYXVzCitDU1Q2Q0RUIDsgQW1lcmljYS9DaGljYWdvCitDYW5hZGEvQXRsYW50aWMgOyBBbWVyaWNhL0hhbGlmYXgKK0NhbmFkYS9DZW50cmFsIDsgQW1lcmljYS9XaW5uaXBlZworQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIDsgQW1lcmljYS9SZWdpbmEKK0NhbmFkYS9FYXN0ZXJuIDsgQW1lcmljYS9Ub3JvbnRvCitDYW5hZGEvTW91bnRhaW4gOyBBbWVyaWNhL0VkbW9udG9uCitDYW5hZGEvTmV3Zm91bmRsYW5kIDsgQW1lcmljYS9TdF9Kb2hucworQ2FuYWRhL1BhY2lmaWMgOyBBbWVyaWNhL1ZhbmNvdXZlcgorQ2FuYWRhL1Nhc2thdGNoZXdhbiA7IEFtZXJpY2EvUmVnaW5hCitDYW5hZGEvWXVrb24gOyBBbWVyaWNhL1doaXRlaG9yc2UKK0NoaWxlL0NvbnRpbmVudGFsIDsgQW1lcmljYS9TYW50aWFnbworQ2hpbGUvRWFzdGVySXNsYW5kIDsgUGFjaWZpYy9FYXN0ZXIKK0N1YmEgOyBBbWVyaWNhL0hhdmFuYQorRVNUIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK0VTVDVFRFQgOyBBbWVyaWNhL05ld19Zb3JrCitFZ3lwdCA7IEFmcmljYS9DYWlybworRWlyZSA7IEV1cm9wZS9EdWJsaW4KK0V0Yy9HTVQrMCA7IEV0Yy9HTVQKK0V0Yy9HTVQtMCA7IEV0Yy9HTVQKK0V0Yy9HTVQwIDsgRXRjL0dNVAorRXRjL0dyZWVud2ljaCA7IEV0Yy9HTVQKK0V0Yy9Vbml2ZXJzYWwgOyBFdGMvVVRDCitFdGMvWnVsdSA7IEV0Yy9VVEMKKyNFdXJvcGUvQnJhdGlzbGF2YSA7IEV1cm9wZS9QcmFndWUKKyNFdXJvcGUvTGp1YmxqYW5hIDsgRXVyb3BlL0JlbGdyYWRlCitFdXJvcGUvTmljb3NpYSA7IEFzaWEvTmljb3NpYQorI0V1cm9wZS9TYW5fTWFyaW5vIDsgRXVyb3BlL1JvbWUKKyNFdXJvcGUvU2FyYWpldm8gOyBFdXJvcGUvQmVsZ3JhZGUKKyNFdXJvcGUvU2tvcGplIDsgRXVyb3BlL0JlbGdyYWRlCitFdXJvcGUvVGlyYXNwb2wgOyBFdXJvcGUvQ2hpc2luYXUKKyNFdXJvcGUvVmF0aWNhbiA7IEV1cm9wZS9Sb21lCisjRXVyb3BlL1phZ3JlYiA7IEV1cm9wZS9CZWxncmFkZQorR0IgOyBFdXJvcGUvTG9uZG9uCitHQi1FaXJlIDsgRXVyb3BlL0xvbmRvbgorR01UIDsgRXRjL0dNVAorR01UKzAgOyBFdGMvR01UKzAKK0dNVC0wIDsgRXRjL0dNVC0wCitHTVQwIDsgRXRjL0dNVDAKK0dyZWVud2ljaCA7IEV0Yy9HcmVlbndpY2gKK0hTVCA7IFBhY2lmaWMvSG9ub2x1bHUKK0hvbmdrb25nIDsgQXNpYS9Ib25nX0tvbmcKK0ljZWxhbmQgOyBBdGxhbnRpYy9SZXlramF2aWsKK0lyYW4gOyBBc2lhL1RlaHJhbgorSXNyYWVsIDsgQXNpYS9KZXJ1c2FsZW0KK0phbWFpY2EgOyBBbWVyaWNhL0phbWFpY2EKK0phcGFuIDsgQXNpYS9Ub2t5bworS3dhamFsZWluIDsgUGFjaWZpYy9Ld2FqYWxlaW4KK0xpYnlhIDsgQWZyaWNhL1RyaXBvbGkKK01TVCA7IEFtZXJpY2EvUGhvZW5peAorTVNUN01EVCA7IEFtZXJpY2EvRGVudmVyCitNZXhpY28vQmFqYU5vcnRlIDsgQW1lcmljYS9UaWp1YW5hCitNZXhpY28vQmFqYVN1ciA7IEFtZXJpY2EvTWF6YXRsYW4KK01leGljby9HZW5lcmFsIDsgQW1lcmljYS9NZXhpY29fQ2l0eQorTWlkZWFzdC9SaXlhZGg4NyA7IEFzaWEvUml5YWRoODcKK01pZGVhc3QvUml5YWRoODggOyBBc2lhL1JpeWFkaDg4CitNaWRlYXN0L1JpeWFkaDg5IDsgQXNpYS9SaXlhZGg4OQorTlogOyBQYWNpZmljL0F1Y2tsYW5kCitOWi1DSEFUIDsgUGFjaWZpYy9DaGF0aGFtCitOYXZham8gOyBBbWVyaWNhL0RlbnZlcgorUFJDIDsgQXNpYS9TaGFuZ2hhaQorUFNUOFBEVCA7IEFtZXJpY2EvTG9zX0FuZ2VsZXMKK1BhY2lmaWMvU2Ftb2EgOyBQYWNpZmljL1BhZ29fUGFnbworUG9sYW5kIDsgRXVyb3BlL1dhcnNhdworUG9ydHVnYWwgOyBFdXJvcGUvTGlzYm9uCitST0MgOyBBc2lhL1RhaXBlaQorUk9LIDsgQXNpYS9TZW91bAorU2luZ2Fwb3JlIDsgQXNpYS9TaW5nYXBvcmUKK1N5c3RlbVYvQVNUNCA7IEFtZXJpY2EvUHVlcnRvX1JpY28KK1N5c3RlbVYvQVNUNEFEVCA7IEFtZXJpY2EvSGFsaWZheAorU3lzdGVtVi9DU1Q2IDsgQW1lcmljYS9SZWdpbmEKK1N5c3RlbVYvQ1NUNkNEVCA7IEFtZXJpY2EvQ2hpY2FnbworU3lzdGVtVi9FU1Q1IDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK1N5c3RlbVYvRVNUNUVEVCA7IEFtZXJpY2EvTmV3X1lvcmsKK1N5c3RlbVYvSFNUMTAgOyBQYWNpZmljL0hvbm9sdWx1CitTeXN0ZW1WL01TVDcgOyBBbWVyaWNhL1Bob2VuaXgKK1N5c3RlbVYvTVNUN01EVCA7IEFtZXJpY2EvRGVudmVyCitTeXN0ZW1WL1BTVDggOyBQYWNpZmljL1BpdGNhaXJuCitTeXN0ZW1WL1BTVDhQRFQgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitTeXN0ZW1WL1lTVDkgOyBQYWNpZmljL0dhbWJpZXIKK1N5c3RlbVYvWVNUOVlEVCA7IEFtZXJpY2EvQW5jaG9yYWdlCitUdXJrZXkgOyBFdXJvcGUvSXN0YW5idWwKK1VDVCA7IEV0Yy9VQ1QKK1VTL0FsYXNrYSA7IEFtZXJpY2EvQW5jaG9yYWdlCitVUy9BbGV1dGlhbiA7IEFtZXJpY2EvQWRhaworVVMvQXJpem9uYSA7IEFtZXJpY2EvUGhvZW5peAorVVMvQ2VudHJhbCA7IEFtZXJpY2EvQ2hpY2FnbworVVMvRWFzdC1JbmRpYW5hIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK1VTL0Vhc3Rlcm4gOyBBbWVyaWNhL05ld19Zb3JrCitVUy9IYXdhaWkgOyBQYWNpZmljL0hvbm9sdWx1CitVUy9JbmRpYW5hLVN0YXJrZSA7IEFtZXJpY2EvSW5kaWFuYS9Lbm94CitVUy9NaWNoaWdhbiA7IEFtZXJpY2EvRGV0cm9pdAorVVMvTW91bnRhaW4gOyBBbWVyaWNhL0RlbnZlcgorVVMvUGFjaWZpYyA7IEFtZXJpY2EvTG9zX0FuZ2VsZXMKK1VTL1BhY2lmaWMtTmV3IDsgQW1lcmljYS9Mb3NfQW5nZWxlcworVVMvU2Ftb2EgOyBQYWNpZmljL1BhZ29fUGFnbworVVRDIDsgRXRjL1VUQworVW5pdmVyc2FsIDsgRXRjL1VuaXZlcnNhbAorVy1TVSA7IEV1cm9wZS9Nb3Njb3cKK1p1bHUgOyBFdGMvWnVsdQorQUNUIDsgQXVzdHJhbGlhL0RhcndpbgorQUVUIDsgQXVzdHJhbGlhL1N5ZG5leQorQUdUIDsgQW1lcmljYS9CdWVub3NfQWlyZXMKK0FSVCA7IEFmcmljYS9DYWlybworQVNUIDsgQW1lcmljYS9BbmNob3JhZ2UKK0JFVCA7IEFtZXJpY2EvU2FvX1BhdWxvCitCU1QgOyBBc2lhL0RoYWthCitDQVQgOyBBZnJpY2EvSGFyYXJlCitDTlQgOyBBbWVyaWNhL1N0X0pvaG5zCitDU1QgOyBBbWVyaWNhL0NoaWNhZ28KK0NUVCA7IEFzaWEvU2hhbmdoYWkKK0VBVCA7IEFmcmljYS9BZGRpc19BYmFiYQorRUNUIDsgRXVyb3BlL1BhcmlzCitJRVQgOyBBbWVyaWNhL0luZGlhbmFwb2xpcworSVNUIDsgQXNpYS9DYWxjdXR0YQorSlNUIDsgQXNpYS9Ub2t5bworTUlUIDsgUGFjaWZpYy9BcGlhCitORVQgOyBBc2lhL1llcmV2YW4KK05TVCA7IFBhY2lmaWMvQXVja2xhbmQKK1BMVCA7IEFzaWEvS2FyYWNoaQorUE5UIDsgQW1lcmljYS9QaG9lbml4CitQUlQgOyBBbWVyaWNhL1B1ZXJ0b19SaWNvCitQU1QgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitTU1QgOyBQYWNpZmljL0d1YWRhbGNhbmFsCitWU1QgOyBBc2lhL1NhaWdvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9Xcml0ZU51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFiNTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBAdmVyc2lvbiAgICAgMS4wCisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKi8KK3B1YmxpYyBjbGFzcyBXcml0ZU51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGhlYWRlcj0iLypcbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICpcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICovXG5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0O1xuXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHVibGljIGNsYXNzIE51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhIHtcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvL2dldCBDb250ZW50XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcHVibGljIHN0YXRpYyBieXRlW11bXSBnZXRDb250ZW50KCkge1xuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgfVxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgZm9vdGVyID0iXG4gICAgZmluYWwgc3RhdGljIGJ5dGVbXVtdIGNvbnRlbnQgPSB7Z2VuZXJhbEluc3RhbmNlLCBjdXJyZW5jeUluc3RhbmNlLCBwZXJjZW50SW5zdGFuY2UsIHNjaWVudGlmaWNJbnN0YW5jZX07XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifVxuIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mICAgICA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZjICAgID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mcCAgICAgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZnNwICAgICA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZmlsZSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKCJOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIik7CisgICAgICAgICAgICBmaWxlLndyaXRlKGhlYWRlci5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZiwiZ2VuZXJhbEluc3RhbmNlIiwgIi8vTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZmMsImN1cnJlbmN5SW5zdGFuY2UiLCIvL051bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIHdyaXRlKGZpbGUsKE9iamVjdCluZnAsInBlcmNlbnRJbnN0YW5jZSIsIi8vTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuVVMpIik7CisgICAgICAgICAgICB3cml0ZShmaWxlLChPYmplY3QpbmZzcCwic2NpZW50aWZpY0luc3RhbmNlIiwiLy9OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUykiKTsKKyAgICAgICAgICAgIGZpbGUud3JpdGUoZm9vdGVyLmdldEJ5dGVzKCkpOyAgICAgICAgICAgIAorICAgICAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgd3JpdGUoRmlsZU91dHB1dFN0cmVhbSBmaWxlLE9iamVjdCBvICxTdHJpbmcgbmFtZSxTdHJpbmcgY29tbWVudCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBidHMgPSAgbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShidHMpOyAgICAKKyAgICAgICAgICAgIG9zLndyaXRlT2JqZWN0KChPYmplY3Qpbyk7CisgICAgICAgICAgICBvcy5mbHVzaCgpOworICAgICAgICAgICAgb3MuY2xvc2UoKTsKKyAgICAgICAgICAgIGJ5dGVbXSBteUFyciA9IGJ0cy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgLy9TdHJpbmcgdGVtcCA9IG5ldyBTdHJpbmcobXlBcnIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIitjb21tZW50KyAiIDoiKTsKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5wcmludGxuKCJtaW5pbXVtSW50ZWdlckRpZ2l0cyA6ICIgICsgKHRlbXAuaW5kZXhPZigibWluaW11bUludGVnZXJEaWdpdHMiKSsibWluaW11bUludGVnZXJEaWdpdHMiLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1JbnRlZ2VyRGlnaXRzIDogIiAgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtSW50ZWdlckRpZ2l0cyIpKyJtYXhpbXVtSW50ZWdlckRpZ2l0cyIubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWluaW11bUZyYWN0aW9uRGlnaXRzIDogIiArICh0ZW1wLmluZGV4T2YoIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIpKyJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1GcmFjdGlvbkRpZ2l0cyA6ICIgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiKSsibWF4aW11bUZyYWN0aW9uRGlnaXRzIi5sZW5ndGgoKSkpOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vZmlsZS53cml0ZShteUFycik7CisgICAgICAgICAgICBmaWxlLndyaXRlKCgiXG4gICAgIitjb21tZW50KS5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIGZpbGUud3JpdGUobmV3IFN0cmluZygiXG4gICAgc3RhdGljIGJ5dGVbXSAiK25hbWUrIiA9IG5ldyBieXRlW117IFxuIikuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICAgICAgZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPG15QXJyLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBmaWxlLndyaXRlKFN0cmluZy52YWx1ZU9mKChpbnQpbXlBcnJbaV0pLmdldEJ5dGVzKCkpOworICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoICIsICIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICAgICAgaWYoKGkrMSklMjAgPT0gMCl7CisgICAgICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoIlxuIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaWxlLndyaXRlKG5ldyBTdHJpbmcoIlxuICAgIH07XG4iKS5nZXRCeXRlcygiVVRGLTgiKSk7CisgICAgICAgIH1jYXRjaCggRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaW1wbC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaW1wbC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM5MmUwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pbXBsL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigiY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbCIsCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiSUNVU2VydmljZVRlc3QiLAorICAgICAgICAgICAgICAgICAgIklDVVNlcnZpY2VUaHJlYWRUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJQ1VCaW5hcnlUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJMUlVNYXBUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJUZXh0VHJpZU1hcFRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJUZXN0IG1pc2NlbGxhbmVvdXMgaW1wbGVtZW50YXRpb24gdXRpbGl0aWVzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiSW1wbCI7Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2l0ZXJhdG9yL1Rlc3RVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg1OGVmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw0ODQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5pdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciBleHRlbmRzIFRlc3RGbXdreworCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgeworICAgIH0KKyAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBUZXN0aW5nIGNsb25pbmcKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSgidGVzdGluZyIpOworICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lZCA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICAgIGludCBjb21wbGV0ZWQgPSAwOworICAgICAgICAgd2hpbGUgKGNvbXBsZXRlZCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgY29tcGxldGVkID0gaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgaWYgKGNvbXBsZXRlZCAhPSBjbG9uZWQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNsb25lZCBvcGVyYXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGdldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgcmVzdWx0KXsKKyAgICAgICAgLyogdGVzdCBnZXRUZXh0ICovCisgICAgICAgIGNoYXJbXSBidWY9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLmdldFRleHQoYnVmKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGJ1ZiA9IG5ldyBjaGFyW2l0ZXJhdG9yLmdldExlbmd0aCgpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihyZXN1bHQuY29tcGFyZVRvKG5ldyBTdHJpbmcoYnVmLDAsaXRlcmF0b3IuZ2V0TGVuZ3RoKCkpKSE9MCl7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGV4dCBmYWlsZWQgZm9yIGl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRlcmF0aW9uKCkKKyAgICB7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciAgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfKTsKKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9TdGFydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyYXRvci5jdXJyZW50KCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KDApKSB7CisgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgZmlyc3QgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9MaW1pdCgpOyAKKyAgICAgICAgaWYgKGl0ZXJhdG9yLnByZXZpb3VzKCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkgLSAxKSkgeworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCByZXRyaWV2aW5nIGxhc3QgY2hhcmFjdGVyIik7CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlcmF0b3IuZ2V0TGVuZ3RoKCkgIT0gSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBmYWlsZWQgZGV0ZXJtaW5pbmcgYmVnaW4gYW5kIGVuZCBpbmRleCIpOworICAgICAgICB9ICAKKyAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KDApOworICAgICAgICBpdGVyYXRvci5zZXRJbmRleCgwKTsKKyAgICAgICAgaW50IGNoID0gMDsKKyAgICAgICAgd2hpbGUgKGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNoID0gaXRlcmF0b3IyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLm5leHQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgY2ggIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIG5leHQoKSBhbmQgbmV4dENvZGVQb2ludCgpIik7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5uZXh0KCkgfHwKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gbmV4dCBhbmQgbmV4dENvZGVQb2ludCBmb3IgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICBpdGVyYXRvcjIuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICB3aGlsZSAoY2ggIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IGl0ZXJhdG9yMi5nZXRJbmRleCgpOworICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLnByZXZpb3VzKCkgJiYgCisgICAgICAgICAgICAgICAgICAgIGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cygpIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29kZVBvaW50KCkiKTsgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmdldExlYWRTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLnByZXZpb3VzKCkgfHwgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cyBhbmQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2aW91c0NvZGVQb2ludCBmb3Igc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yIHRlc3QgPSBuZXcgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0cyBmb3IgbmV3IEFQSSBmb3IgdXRmLTE2IHN1cHBvcnQgCisgICAgcHVibGljIHZvaWQgVGVzdEl0ZXJhdGlvblVDaGFyMzIoKSB7CisgICAgICAgIFN0cmluZyB0ZXh0PSJcdTAwNjFcdTAwNjJcdWQ4NDFcdWRjMDJcdTIwYWNcdWQ3ZmZcdWQ4NDJcdWRjMDZcdWQ4MDFcdWRjMDBcdTAwNjEiOworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGk7CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgIAorICAgICAgICAgICAgU3RyaW5nIGl0ZXJUZXh0ID0gaXRlci5nZXRUZXh0KCk7CisgICAgICAgICAgICBpZiAoIWl0ZXJUZXh0LmVxdWFscyh0ZXh0KSkKKyAgICAgICAgICAgICAgZXJybG4oIml0ZXIuZ2V0VGV4dCgpIGZhaWxlZCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdGVyLnNldEluZGV4KDEpOworICAgICAgICAgICAgaWYgKGl0ZXIuY3VycmVudENvZGVQb2ludCgpICE9IFVURjE2LmNoYXJBdCh0ZXh0LDEpKQorICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBkaWRuJ3Qgc3RhcnQgb3V0IGluIHRoZSByaWdodCBwbGFjZS4iKTsKKyAgICAKKyAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIGk9aXRlci5tb3ZlQ29kZVBvaW50SW5kZXgoMSk7CisgICAgICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSB8fCBpIT0xKQorICAgICAgICAgICAgICAgIGVycmxuKCJtb3ZlQ29kZVBvaW50SW5kZXgoMSkgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsMSkpICsgIiBpPSAiICsgaSk7CisgICAgCisgICAgICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KDIpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsNCkgfHwgaSE9NCkKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KDIpIGRpZG4ndCB3b3JrIGNvcnJlY3RseSBleHBlY3RlZCAiKyBoZXgoYykgKyIgZ290ICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LDQpKSArICIgaT0gIiArIGkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgtMik7CisgICAgICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSB8fCBpIT0xKQorICAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KC0yKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCwxKSkgKyAiIGk9ICIgKyBpKTsKKworICAgICAgICAgICAgaXRlci5zZXRUb0xpbWl0KCk7CisgICAgICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KC0yKTsKKyAgICAgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZihjICE9IFVURjE2LmNoYXJBdCh0ZXh0LCh0ZXh0Lmxlbmd0aCgpLTMpKSB8fCBpIT0odGV4dC5sZW5ndGgoKS0zKSkKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KC0yKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCwodGV4dC5sZW5ndGgoKS0zKSkgKSArICIgaT0gIiArIGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGMgPSBpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGkgPSAwOworICAgIAorICAgICAgICAgICAgLy90ZXN0aW5nIGZpcnN0MzJQb3N0SW5jLCBuZXh0Q29kZVBvaW50UG9zdEluYywgc2V0VG9zdGFydAorICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGMgPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZmlyc3QzMlBvc3RJbmMgZmFpbGVkLiAgRXhwZWN0ZWQtPiIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LGkpKSsiIEdvdC0+ICIraGV4KGMpKTsKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSAhPSBVVEYxNi5nZXRDaGFyQ291bnQoYykgKyBpKQorICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbmRleCgpIGFmdGVyIGZpcnN0MzJQb3N0SW5jKCkgZmFpbGVkIik7CisgICAgCisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIGlmIChpdGVyLmdldEluZGV4KCkgIT0gMCkKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0VG9TdGFydCBmYWlsZWQiKTsKKyAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlmIChjICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgICAgICAgICBjID0gaXRlci5uZXh0Q29kZVBvaW50KCk7CisgICAgCisgICAgICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlciBtaXNtYXRjaCBhdCBwb3NpdGlvbiAiK2krIiwgaXRlcmF0b3IgaGFzICIraGV4KGMpKyIsIHN0cmluZyBoYXMgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsaSkpKTsKKyAgICAKKyAgICAgICAgICAgICAgICBpKz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaWYoaXRlci5nZXRJbmRleCgpICE9IGkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbmRleCgpIGFmdHIgbmV4dENvZGVQb2ludFBvc3RJbmMoKSBpc24ndCB3b3JraW5nIHJpZ2h0Iik7CisgICAgICAgICAgICAgICAgYyA9IGl0ZXIuY3VycmVudENvZGVQb2ludCgpOyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiggYyE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgYyAhPSBVVEYxNi5jaGFyQXQodGV4dCxpKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImN1cnJlbnQoKSBhZnRlciBuZXh0Q29kZVBvaW50UG9zdEluYygpIGlzbid0IHdvcmtpbmcgcmlnaHQiKTsKKworICAgICAgICAgICAgfSB3aGlsZSAoYyE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpOworICAgICAgICAgICAgYz1pdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dENvZGVQb2ludFBvc3RJbmMoKSBkaWRuJ3QgcmV0dXJuIERPTkUgYXQgdGhlIGJlZ2lubmluZyIpOworICAgIAorICAgIAorICAgICAgICB9CisgICAgfSAgCisgICAgCisgICAgY2xhc3MgVUNoYXJJdGVyYXRvciB7CisgICAgCisgICAgICAgcHVibGljIFVDaGFySXRlcmF0b3IoaW50W10gc3JjLCBpbnQgbGVuLCBpbnQgaW5kZXgpeworICAgICAgICAgICAgCisgICAgICAgICAgICBzPXNyYzsKKyAgICAgICAgICAgIGxlbmd0aD1sZW47CisgICAgICAgICAgICBpPWluZGV4OworICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbaSsrXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgICAgICBpZihpPjApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1stLWldOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgCisgICAgICAgIHByaXZhdGUgaW50W10gczsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoLCBpOworICAgIH0KKyAgICAvLyBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisgICAgcHJpdmF0ZSBmaW5hbCBjaGFyIHNyY1tdPXsKKyAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDJmOTk5KSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgyZjk5OSksCisgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxZDE1ZiksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MWQxNWYpLAorICAgICAgICAweGM0LAorICAgICAgICAweDFlZDAKKyAgICB9OworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmV2aW91c05leHQoKXsKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMSA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgUmVwbGFjZWFibGVTdHJpbmcobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMiA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMvKmNoYXIgYXJyYXkqLyk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMyA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyNCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXcgU3RyaW5nQnVmZmVyKG5ldyBTdHJpbmcoc3JjKSkpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjEpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjIpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjMpOworICAgICAgICBwcmV2aW91c05leHQoaXRlcjQpOworICAgICAgICBnZXRUZXh0KGl0ZXIxLG5ldyBTdHJpbmcoc3JjKSk7CisgICAgICAgIGdldFRleHQoaXRlcjIsbmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgZ2V0VGV4dChpdGVyMyxuZXcgU3RyaW5nKHNyYykpOworICAgICAgICAvKiBnZXRDaGFyYWN0ZXJJdGVyYXRvciAqLworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjEgPSBpdGVyMS5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjIgPSBpdGVyMi5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaXRlcjMgPSBpdGVyMy5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBpZihjaXRlcjEuZmlyc3QoKSAhPWl0ZXIxLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0Q2hhcmFjdGVySXRlcmF0b3IgZm9yIGl0ZXIxIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGlmKGNpdGVyMi5maXJzdCgpICE9aXRlcjIuY3VycmVudCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgaXRlcjIgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2l0ZXIzLmZpcnN0KCkgIT1pdGVyMy5jdXJyZW50KCkpeworICAgICAgICAgICAgZXJybG4oImdldENoYXJhY3Rlckl0ZXJhdG9yIGZvciBpdGVyMyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAvKiBUZXN0IGNsb25lKCkgICYmIG1vdmVJbmRleCgpKi8KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lMSA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcjEuY2xvbmUoKTsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZTIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIyLmNsb25lKCk7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY2xvbmUzID0gKFVDaGFyYWN0ZXJJdGVyYXRvcilpdGVyMy5jbG9uZSgpOworICAgICAgICAgICAgaWYoY2xvbmUxLm1vdmVJbmRleCgzKSE9aXRlcjEubW92ZUluZGV4KDMpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUluZGV4IGZvciBpdGVyMSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNsb25lMi5tb3ZlSW5kZXgoMykhPWl0ZXIyLm1vdmVJbmRleCgzKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVJbmRleCBmb3IgaXRlcjIgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjbG9uZTMubW92ZUluZGV4KDMpIT1pdGVyMy5tb3ZlSW5kZXgoMykpeworICAgICAgICAgICAgICAgIGVycmxuKCJtb3ZlSW5kZXggZm9yIGl0ZXIxIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY2xvbmUgdGhlIGl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgcHJldmlvdXNOZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaW50IGV4cGVjdFtdPXsKKyAgICAgICAgICAgIDB4MmY5OTksCisgICAgICAgICAgICAweDFkMTVmLAorICAgICAgICAgICAgMHhjNCwKKyAgICAgICAgICAgIDB4MWVkMAorICAgICAgICB9OworICAgIAorICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsMCwKKyAgICAgICAgICAgIDEsMSwKKyAgICAgICAgICAgIDIsCisgICAgICAgICAgICAzLAorICAgICAgICAgICAgNCAvL25lZWRlZCAKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgLy8gaW5pdGlhbCBpbmRleGVzIGludG8gdGhlIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBTUkNfTUlERExFPTQ7CisgICAgICAgIGZpbmFsIGludCBFWFBFQ1RfTUlERExFPTI7CisgICAgICAgIAorICAgIAorICAgICAgICAvLyBtb3ZlbWVudCB2ZWN0b3IKKyAgICAgICAgLy8gLSBmb3IgcHJldmlvdXMoKSwgMCBmb3IgY3VycmVudCgpLCArIGZvciBuZXh0KCkKKyAgICAgICAgLy8gbm90IGNvbnN0IHNvIHRoYXQgd2UgY2FuIHRlcm1pbmF0ZSBpdCBiZWxvdyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgU3RyaW5nIG1vdmVzPSIwKzArMC0tMC0wLSsrKzAtLSsrKysrKyswLS0tLS0tLS0iOworICAgIAorICAgICAgICAKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTUlERExFKTsKKyAgICAKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworICAgIAorICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4KFNSQ19NSURETEUpOworICAgIAorICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAgey8vIG09PScrJyAKKyAgICAgICAgICAgICAgICBjMT1pdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGV4cGVjdEluZGV4W2l0ZXIuZ2V0SW5kZXgoKV0hPWl0ZXIzMi5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcigpeworICAgICAgICBTdHJpbmcgc291cmNlID0iYXNkZmFzZGZqb2l1eW9pdXkyMzQxMjM1Njc5ODg2NzY1IjsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNvdXJjZSk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHdyYXBfY2kgPSBpdC5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgICAgICB3cmFwX2NpLnNldEluZGV4KDEwKTsKKyAgICAgICAgY2kuc2V0SW5kZXgoMTApOworICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSsrKyswMDAwLS0tLTAtIjsKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9Y2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1jaS5jdXJyZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgIHsvLyBtPT0nKycgCisgICAgICAgICAgICAgICAgYzE9d3JhcF9jaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgYzI9Y2kubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKHdyYXBfY2kuZ2V0SW5kZXgoKSE9Y2kuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGluZGV4IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAraGlzdG9yeSsgIiA6ICIrICJOb3JtYWxpemVyIGluZGV4ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICsiIGV4cGVjdGVkICIrIGNpLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGNpLmZpcnN0KCkhPXdyYXBfY2kuZmlyc3QoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmZpcnN0KCkgZmFpbGVkLiBleHBlY3RlZDogIiArIGNpLmZpcnN0KCkgKyAiIGdvdDogIiArd3JhcF9jaS5maXJzdCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaS5sYXN0KCkhPXdyYXBfY2kubGFzdCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIubGFzdCgpIGZhaWxlZCBleHBlY3RlZDogIiArIGNpLmxhc3QoKSArICIgZ290OiAiICt3cmFwX2NpLmxhc3QoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2kuZ2V0QmVnaW5JbmRleCgpIT13cmFwX2NpLmdldEJlZ2luSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEJlZ2luSW5kZXgoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgKyBjaS5nZXRCZWdpbkluZGV4KCkgKyAiIGdvdDogIiArd3JhcF9jaS5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIGlmKGNpLmdldEVuZEluZGV4KCkhPXdyYXBfY2kuZ2V0RW5kSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEVuZEluZGV4KCkgZmFpbGVkIGV4cGVjdGVkOiAiICsgY2kuZ2V0RW5kSW5kZXgoKSArICIgZ290OiAiICt3cmFwX2NpLmdldEVuZEluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNsb25lV0NJID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB3cmFwX2NpLmNsb25lKCk7CisgICAgICAgICAgICBpZih3cmFwX2NpLmdldEluZGV4KCkhPWNsb25lV0NJLmdldEluZGV4KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuY2xvbmUoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKSArICIgZ290OiAiICsgY2xvbmVXQ0kuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3Rlckl0ZXJhdG9yLmNsb25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElURVJBVElPTl9TVFJJTkdfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVggPSAxNDsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Sml0dGVyYnVnMTk1MigpeworICAgICAgICAvL3Rlc3QgcHJldmlvdXMgY29kZSBwb2ludAorICAgICAgICBjaGFyW10gc3JjID0gbmV3IGNoYXJbXXsgJ1x1REMwMCcsJ1x1RDgwMCcsJ1x1REMwMScsJ1x1RDgwMicsJ1x1REMwMicsJ1x1REMwMyd9OworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICBpdGVyLnNldEluZGV4KDEpOworICAgICAgICBpbnQgY2g7CisgICAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGdvIGludG8gYSBpbmZpbml0ZSBsb29wCisgICAgICAgIC8vIGlmIGl0IGRvZXMgdGhlbiB3ZSBoYXZlIGEgcHJvYmxlbQorICAgICAgICB3aGlsZSgoY2g9aXRlci5wcmV2aW91c0NvZGVQb2ludCgpKSE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2ghPTB4RGMwMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpdGVyLnNldEluZGV4KDUpOworICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0Q29kZVBvaW50KCkpICE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2ghPSAweERDMDMpeworICAgICAgICAgICAgICAgIGVycmxuKCJpdGVyLm5leHRDb2RlUG9pbnQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0gICAgICAKKyAgICB9CisgICAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNzJmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBjaGFyYWN0ZXIgcHJvcGVydHkgdGVzdHMuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICJUZXN0Q2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAiVGVzdFVTY3JpcHQiLCAKKyAgICAgICAgICAgICAgICAgICJUZXN0VVNjcmlwdFJ1biIgCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJDaGFyYWN0ZXIgYW5kIFNjcmlwdCBUZXN0cyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlByb3BlcnR5IjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RDaGFyYWN0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RDaGFyYWN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzMyMDIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdENoYXJhY3Rlci5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKK3B1YmxpYyBjbGFzcyBUZXN0Q2hhcmFjdGVyIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0Q2hhcmFjdGVyKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0Q2hhcmFjdGVyKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAiVUNoYXJhY3RlclRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyQ2FzZVRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVySXRlcmF0b3JUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0IiwgCisgICAgICAgICAgICAgICAgICAiVUNoYXJhY3RlckRpcmVjdGlvblRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVUHJvcGVydHlBbGlhc2VzVGVzdCIsCisgICAgICAgICAgICAgICAgICAiVVRGMTZUZXN0IiwKKyAgICAgICAgICAiVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJDaGFyYWN0ZXIgUHJvcGVydHkgYW5kIFVURjE2IFRlc3RzIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWVmZDY4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0LmphdmEKQEAgLTAsMCArMSwzOTggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0VVNjcmlwdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBUZXN0VVNjcmlwdCgpCisgICAgeworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdFVTY3JpcHQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGVHZXRDb2RlKCl7CisgICAgICAgIGZpbmFsIFVMb2NhbGVbXSB0ZXN0TmFtZXM9eworICAgICAgICAvKiB0ZXN0IGxvY2FsZSAqLworICAgICAgICBuZXcgVUxvY2FsZSgiZW4iKSwgbmV3IFVMb2NhbGUoImVuX1VTIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJzciIpLCBuZXcgVUxvY2FsZSgidGEiKSAsCisgICAgICAgIG5ldyBVTG9jYWxlKCJ0ZV9JTiIpLAorICAgICAgICBuZXcgVUxvY2FsZSgiaGkiKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImhlIiksIG5ldyBVTG9jYWxlKCJhciIpLAorICAgICAgICBuZXcgVUxvY2FsZSgiYWJjZGUiKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoImFiY2RlX2NkZWYiKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoIml3IikKKyAgICAgICAgfTsKKyAgICAgICAgZmluYWwgaW50W10gZXhwZWN0ZWQgPXsKKyAgICAgICAgICAgICAgICAvKiBsb2NhbGVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgICAgICBVU2NyaXB0LkxBVElOLCBVU2NyaXB0LkxBVElOLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsIFVTY3JpcHQuVEFNSUwsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsVVNjcmlwdC5ERVZBTkFHQVJJLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSEVCUkVXLCBVU2NyaXB0LkFSQUJJQywKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOVkFMSURfQ09ERSxVU2NyaXB0LklOVkFMSURfQ09ERSwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhFQlJFVworICAgICAgICB9OworICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgaW50IG51bUVycm9ycyA9MDsKKworICAgICAgICBmb3IoIDsgaTx0ZXN0TmFtZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZSh0ZXN0TmFtZXNbaV0pOworCisgICAgICAgICAgICBpZihjb2RlPT1udWxsKXsKKyAgICAgICAgICAgICAgICBpZihleHBlY3RlZFtpXSE9VVNjcmlwdC5JTlZBTElEX0NPREUpeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6IG51bGwiICsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRbaV0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZ2V0Q29kZSByZXR1cm5zIG51bGwgaWYgdGhlIGNvZGUgY291bGQgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoY29kZVswXSAhPSBleHBlY3RlZFtpXSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogIiArY29kZVswXSArICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkW2ldICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXBvcnREYXRhRXJyb3JzKG51bUVycm9ycyk7CisgICAgICAgIAorICAgICAgICAvLyAKKyAgICAgICAgVUxvY2FsZSBkZWZhdWx0TG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7IAorICAgICAgICBVTG9jYWxlIGVzcGFyYW50byA9IG5ldyBVTG9jYWxlKCJlb19ERSIpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoZXNwYXJhbnRvKTsKKyAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZShlc3BhcmFudG8pOyAKKyAgICAgICAgaWYoY29kZSAhPSBudWxsKXsKKyAgICAgICAgICAgIGlmKCBjb2RlWzBdICE9IFVTY3JpcHQuTEFUSU4peworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc2NyaXB0IGNvZGUgZm9yIEVzcGFyYW50byIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhLiIpOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0RGF0YUVycm9ycyhpbnQgbnVtRXJyb3JzKSB7CisgICAgICAgIGlmIChudW1FcnJvcnMgPjApIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBtaXNzaW5nIGxvY2FsZSBkYXRhLCBzbyBub3QgYW4gZXJyb3IsIGp1c3QgYSB3YXJuaW5nCisgICAgICAgICAgICBpZiAoaXNNb2R1bGFyQnVpbGQoKSB8fCBub0RhdGEoKSkgeworICAgICAgICAgICAgICAgIC8vIGlmIG5vZGF0YSBpcyBzZXQgZG9uJ3QgZXZlbiB3YXJuCisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCBsb2NhbGUgZGF0YSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZW5jb3VudGVyZWQgIiArIG51bUVycm9ycyArICIgZXJyb3JzLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE11bHRpcGxlQ29kZSgpeworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0ZXN0TmFtZXMgPSB7ICJqYSIgLCJrb19LUiIsInpoIiwiemhfVFcifTsKKyAgICAgICAgZmluYWwgaW50W11bXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1VTY3JpcHQuS0FUQUtBTkEsVVNjcmlwdC5ISVJBR0FOQSxVU2NyaXB0LkhBTn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVU2NyaXB0LkhBTkdVTCwgVVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5IQU4sVVNjcmlwdC5CT1BPTU9GT30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgaW50IG51bUVycm9ycyA9IDA7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHRlc3ROYW1lcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIGludFtdIGV4cHQgPSAoaW50W10pIGV4cGVjdGVkW2ldOworICAgICAgICAgICAgaWYoY29kZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgZm9yKGludCBqID0wOyBqPCBjb2RlLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgICAgICBpZihjb2RlW2pdIT1leHB0W2pdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiAiICtjb2RlW2pdICsgIiBFeHBlY3RlZDogIiArZXhwdFtqXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwb3J0RGF0YUVycm9ycyhudW1FcnJvcnMpOworICAgICAgICAKKyAgICAgICAgLy9jb3ZlciBVU2NyaXB0LmdldENvZGUoTG9jYWxlKQorICAgICAgICBMb2NhbGVbXSB0ZXN0TG9jYWxlcyA9IG5ldyBMb2NhbGVbXSB7CisgICAgICAgICAgICBMb2NhbGUuSkFQQU5FU0UsCisgICAgICAgICAgICBMb2NhbGUuS09SRUEsCisgICAgICAgICAgICBMb2NhbGUuQ0hJTkVTRSwKKyAgICAgICAgICAgIExvY2FsZS5UQUlXQU4gfTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgVVNjcmlwdC5nZXRDb2RlKExvY2FsZSkgLi4uIik7CisgICAgICAgIG51bUVycm9ycyA9IDA7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHRlc3ROYW1lcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGxvZ2xuKCIgIFRlc3RpbmcgbG9jYWxlOiAiICsgdGVzdExvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKHRlc3RMb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIGludFtdIGV4cHQgPSAoaW50W10pIGV4cGVjdGVkW2ldOworICAgICAgICAgICAgaWYoY29kZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgZm9yKGludCBqID0wOyBqPCBjb2RlLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgICAgICBpZihjb2RlW2pdIT1leHB0W2pdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbal0gKyAiIEV4cGVjdGVkOiAiICtleHB0W2pdICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIEVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcG9ydERhdGFFcnJvcnMobnVtRXJyb3JzKTsgICAgICAgICAgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRDb2RlKCl7CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGVzdE5hbWVzPXsKKyAgICAgICAgICAgIC8qIHRlc3QgbG9jYWxlICovCisgICAgICAgICAgICAiZW4iLCAiZW5fVVMiLCAic3IiLCAidGEiLCAiZ3UiLCAidGVfSU4iLCAKKyAgICAgICAgICAgICJoaSIsICJoZSIsICJhciIsCisgICAgICAgICAgICAvKiB0ZXN0IGFiYnIgKi8KKyAgICAgICAgICAgICJIYW5pIiwgIkhhbmciLCJIZWJyIiwiSGlyYSIsCisgICAgICAgICAgICAiS25kYSIsIkthbmEiLCJLaG1yIiwiTGFvIiwKKyAgICAgICAgICAgICJMYXRuIiwvKiJMYXRmIiwiTGF0ZyIsKi8KKyAgICAgICAgICAgICJNbHltIiwgIk1vbmciLAorCisgICAgICAgICAgICAvKiB0ZXN0IG5hbWVzICovCisgICAgICAgICAgICAiQ1lSSUxMSUMiLCJERVNFUkVUIiwiREVWQU5BR0FSSSIsIkVUSElPUElDIiwiR0VPUkdJQU4iLAorICAgICAgICAgICAgIkdPVEhJQyIsICAiR1JFRUsiLCAgIkdVSkFSQVRJIiwgIkNPTU1PTiIsICJJTkhFUklURUQiLAorICAgICAgICAgICAgLyogdGVzdCBsb3dlciBjYXNlIG5hbWVzICovCisgICAgICAgICAgICAibWFsYXlhbGFtIiwgIm1vbmdvbGlhbiIsICJteWFubWFyIiwgIm9naGFtIiwgIm9sZC1pdGFsaWMiLAorICAgICAgICAgICAgIm9yaXlhIiwgICAgICJydW5pYyIsICAgICAic2luaGFsYSIsICJzeXJpYWMiLCJ0YW1pbCIsCisgICAgICAgICAgICAidGVsdWd1IiwgICAgInRoYWFuYSIsICAgICJ0aGFpIiwgICAgInRpYmV0YW4iLAorICAgICAgICAgICAgLyogdGVzdCB0aGUgYm91bmRzKi8KKyAgICAgICAgICAgICJDYW5zIiwgImFyYWJpYyIsIllpIiwiWnl5eSIKKyAgICAgICAgfTsKKyAgICAgICAgZmluYWwgaW50W10gZXhwZWN0ZWQgPXsKKyAgICAgICAgICAgIC8qIGxvY2FsZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsIFVTY3JpcHQuVEFNSUwsIFVTY3JpcHQuR1VKQVJBVEksCisgICAgICAgICAgICBVU2NyaXB0LlRFTFVHVSxVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5BUkFCSUMsCisgICAgICAgICAgICAvKiBhYmJyIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuSEFOLCBVU2NyaXB0LkhBTkdVTCwgVVNjcmlwdC5IRUJSRVcsIFVTY3JpcHQuSElSQUdBTkEsCisgICAgICAgICAgICBVU2NyaXB0LktBTk5BREEsIFVTY3JpcHQuS0FUQUtBTkEsIFVTY3JpcHQuS0hNRVIsIFVTY3JpcHQuTEFPLAorICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwvKiBVU2NyaXB0LkxBVElOLCBVU2NyaXB0LkxBVElOLCovCisgICAgICAgICAgICBVU2NyaXB0Lk1BTEFZQUxBTSwgVVNjcmlwdC5NT05HT0xJQU4sCisgICAgICAgICAgICAvKiBuYW1lcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLCBVU2NyaXB0LkRFU0VSRVQsIFVTY3JpcHQuREVWQU5BR0FSSSwgVVNjcmlwdC5FVEhJT1BJQywgVVNjcmlwdC5HRU9SR0lBTiwKKyAgICAgICAgICAgIFVTY3JpcHQuR09USElDLCBVU2NyaXB0LkdSRUVLLCBVU2NyaXB0LkdVSkFSQVRJLCBVU2NyaXB0LkNPTU1PTiwgVVNjcmlwdC5JTkhFUklURUQsCisgICAgICAgICAgICAvKiBsb3dlciBjYXNlIG5hbWVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwgVVNjcmlwdC5NWUFOTUFSLCBVU2NyaXB0Lk9HSEFNLCBVU2NyaXB0Lk9MRF9JVEFMSUMsCisgICAgICAgICAgICBVU2NyaXB0Lk9SSVlBLCBVU2NyaXB0LlJVTklDLCBVU2NyaXB0LlNJTkhBTEEsIFVTY3JpcHQuU1lSSUFDLCBVU2NyaXB0LlRBTUlMLAorICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsIFVTY3JpcHQuVEhBQU5BLCBVU2NyaXB0LlRIQUksIFVTY3JpcHQuVElCRVRBTiwKKyAgICAgICAgICAgIC8qIGJvdW5kcyAqLworICAgICAgICAgICAgVVNjcmlwdC5DQU5BRElBTl9BQk9SSUdJTkFMLCBVU2NyaXB0LkFSQUJJQywgVVNjcmlwdC5ZSSwgVVNjcmlwdC5DT01NT04KKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBudW1FcnJvcnMgPTA7CisKKyAgICAgICAgZm9yKCA7IGk8dGVzdE5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIGlmKGNvZGUgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgaWYoZXhwZWN0ZWRbaV09PVVTY3JpcHQuSU5WQUxJRF9DT0RFKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gZ2V0Q29kZSByZXR1cm5zIG51bGwgaWYgdGhlIGNvZGUgY291bGQgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgY29tbWVudGVkIG91dCB1bnRpbCBqaXR0ZXJidWcjMjY3OCBpcyBmaXhlZAorICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogbnVsbCIgKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZFtpXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoY29kZVswXSAhPSBleHBlY3RlZFtpXSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogIiArY29kZVswXSArICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkW2ldICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXBvcnREYXRhRXJyb3JzKG51bUVycm9ycyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldE5hbWUoKXsKKworICAgICAgICBmaW5hbCBpbnRbXSB0ZXN0Q29kZXM9eworICAgICAgICAgICAgLyogbmFtZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5ERVNFUkVULCBVU2NyaXB0LkRFVkFOQUdBUkksIFVTY3JpcHQuRVRISU9QSUMsIFVTY3JpcHQuR0VPUkdJQU4sCisgICAgICAgICAgICBVU2NyaXB0LkdPVEhJQywgVVNjcmlwdC5HUkVFSywgVVNjcmlwdC5HVUpBUkFUSSwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBleHBlY3RlZE5hbWVzPXsKKworICAgICAgICAgICAgLyogdGVzdCBuYW1lcyAqLworICAgICAgICAgICAgIkN5cmlsbGljIiwiRGVzZXJldCIsIkRldmFuYWdhcmkiLCJFdGhpb3BpYyIsIkdlb3JnaWFuIiwKKyAgICAgICAgICAgICJHb3RoaWMiLCAgIkdyZWVrIiwgICJHdWphcmF0aSIsCisgICAgICAgIH07CisgICAgICAgIGludCBpID0wOworICAgICAgICBpbnQgbnVtRXJyb3JzPTA7CisgICAgICAgIHdoaWxlKGk8IHRlc3RDb2Rlcy5sZW5ndGgpeworICAgICAgICAgICAgU3RyaW5nIHNjcmlwdE5hbWUgID0gVVNjcmlwdC5nZXROYW1lKHRlc3RDb2Rlc1tpXSk7CisgICAgICAgICAgICBpZighZXhwZWN0ZWROYW1lc1tpXS5lcXVhbHMoc2NyaXB0TmFtZSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIGFiYnJldmlhdGlvbnMgR290OiAiICtzY3JpcHROYW1lICsiIEV4cGVjdGVkOiAiK2V4cGVjdGVkTmFtZXNbaV0pOworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGlmKG51bUVycm9ycyA+MCApeworICAgICAgICAgICAgd2FybmxuKCJlbmNvdW50ZXJlZCAiICsgbnVtRXJyb3JzICsgIiBlcnJvcnMgaW4gVVNjcmlwdC5nZXROYW1lKCkiKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTaG9ydE5hbWUoKXsKKyAgICAgICAgZmluYWwgaW50W10gdGVzdENvZGVzPXsKKyAgICAgICAgICAgIC8qIGFiYnIgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5IQU4sIFVTY3JpcHQuSEFOR1VMLCBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5ISVJBR0FOQSwKKyAgICAgICAgICAgIFVTY3JpcHQuS0FOTkFEQSwgVVNjcmlwdC5LQVRBS0FOQSwgVVNjcmlwdC5LSE1FUiwgVVNjcmlwdC5MQU8sCisgICAgICAgICAgICBVU2NyaXB0LkxBVElOLAorICAgICAgICAgICAgVVNjcmlwdC5NQUxBWUFMQU0sIFVTY3JpcHQuTU9OR09MSUFOLAorICAgICAgICB9OworCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGV4cGVjdGVkQWJicj17CisgICAgICAgICAgICAgIC8qIHRlc3QgYWJiciAqLworICAgICAgICAgICAgIkhhbmkiLCAiSGFuZyIsIkhlYnIiLCJIaXJhIiwKKyAgICAgICAgICAgICJLbmRhIiwiS2FuYSIsIktobXIiLCJMYW9vIiwKKyAgICAgICAgICAgICJMYXRuIiwKKyAgICAgICAgICAgICJNbHltIiwgIk1vbmciLAorICAgICAgICB9OworICAgICAgICBpbnQgaT0wOworICAgICAgICBpbnQgbnVtRXJyb3JzPTA7CisgICAgICAgIHdoaWxlKGk8dGVzdENvZGVzLmxlbmd0aCl7CisgICAgICAgICAgICBTdHJpbmcgIHNob3J0TmFtZSA9IFVTY3JpcHQuZ2V0U2hvcnROYW1lKHRlc3RDb2Rlc1tpXSk7CisgICAgICAgICAgICBpZighZXhwZWN0ZWRBYmJyW2ldLmVxdWFscyhzaG9ydE5hbWUpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBhYmJyZXZpYXRpb25zIEdvdDogIiArc2hvcnROYW1lKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZEFiYnJbaV0pOworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGlmKG51bUVycm9ycyA+MCApeworICAgICAgICAgICAgd2FybmxuKCJlbmNvdW50ZXJlZCAiICsgbnVtRXJyb3JzICsgIiBlcnJvcnMgaW4gVVNjcmlwdC5nZXRTaG9ydE5hbWUoKSIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTY3JpcHQoKXsKKyAgICAgICAgaW50IGNvZGVwb2ludHNbXVtdID0gbmV3IGludFtdW10geworICAgICAgICAgICAgICAgIHsweDAwMDBGRjlELCBVU2NyaXB0LktBVEFLQU5BIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMEZGQkUsIFVTY3JpcHQuSEFOR1VMIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMEZGQzcsIFVTY3JpcHQuSEFOR1VMIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMEZGQ0YsIFVTY3JpcHQuSEFOR1VMIH0sCisgICAgICAgICAgICAgICAgezB4MDAwMEZGRDcsIFVTY3JpcHQuSEFOR1VMfSwgCisgICAgICAgICAgICAgICAgezB4MDAwMEZGREMsIFVTY3JpcHQuSEFOR1VMfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxMDMwMCwgVVNjcmlwdC5PTERfSVRBTElDfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxMDMzMCwgVVNjcmlwdC5HT1RISUN9LAorICAgICAgICAgICAgICAgIHsweDAwMDEwMzRBLCBVU2NyaXB0LkdPVEhJQ30sCisgICAgICAgICAgICAgICAgezB4MDAwMTA0MDAsIFVTY3JpcHQuREVTRVJFVH0sCisgICAgICAgICAgICAgICAgezB4MDAwMTA0MjgsIFVTY3JpcHQuREVTRVJFVH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxNjcsIFVTY3JpcHQuSU5IRVJJVEVEfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDE3QiwgVVNjcmlwdC5JTkhFUklURUR9LAorICAgICAgICAgICAgICAgIHsweDAwMDFEMTg1LCBVU2NyaXB0LklOSEVSSVRFRH0sCisgICAgICAgICAgICAgICAgezB4MDAwMUQxQUEsIFVTY3JpcHQuSU5IRVJJVEVEfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAyMDAwMCwgVVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgIHsweDAwMDAwRDAyLCBVU2NyaXB0Lk1BTEFZQUxBTX0sCisgICAgICAgICAgICAgICAgezB4MDAwMDBEMDAsIFVTY3JpcHQuVU5LTk9XTn0sCisgICAgICAgICAgICAgICAgezB4MDAwMDAwMDAsIFVTY3JpcHQuQ09NTU9OfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDE2OSwgVVNjcmlwdC5JTkhFUklURUQgfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDE4MiwgVVNjcmlwdC5JTkhFUklURUQgfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDE4QiwgVVNjcmlwdC5JTkhFUklURUQgfSwKKyAgICAgICAgICAgICAgICB7MHgwMDAxRDFBRCwgVVNjcmlwdC5JTkhFUklURUQgfSwKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgaW50IGNvZGUgPSBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgYm9vbGVhbiBwYXNzZWQgPSB0cnVlOworCisgICAgICAgIHdoaWxlKGk8IGNvZGVwb2ludHMubGVuZ3RoKXsKKyAgICAgICAgICAgIGNvZGUgPSBVU2NyaXB0LmdldFNjcmlwdChjb2RlcG9pbnRzW2ldWzBdKTsKKworICAgICAgICAgICAgaWYoY29kZSAhPSBjb2RlcG9pbnRzW2ldWzFdKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiVVNjcmlwdC5nZXRTY3JpcHQgZm9yIGNvZGVwb2ludCAweCIrIGhleChjb2RlcG9pbnRzW2ldWzBdKSsiIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgaWYoIXBhc3NlZCl7CisgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFNjcmlwdE5hbWVzKCl7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFVTY3JpcHQuQ09ERV9MSU1JVDtpKyspeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVU2NyaXB0LmdldE5hbWUoaSk7CisgICAgICAgICAgICBpZihuYW1lLmVxdWFscygiIikgKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBnZXROYW1lIGZvciBjb2RlIDogIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzaG9ydE5hbWU9IFVTY3JpcHQuZ2V0U2hvcnROYW1lKGkpOworICAgICAgICAgICAgaWYoc2hvcnROYW1lLmVxdWFscygiIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IGdldE5hbWUgZm9yIGNvZGUgOiAiK2kpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RBbGxDb2RlcG9pbnRzKCl7CisgICAgICAgIGludCBjb2RlOworICAgICAgICAvL1N0cmluZyBvbGRJZD0iIjsKKyAgICAgICAgLy9TdHJpbmcgb2xkQWJicklkPSIiOworICAgICAgICBmb3IoIGludCBpID0wOyBpIDw9IDB4MTBmZmZmOyBpKyspeworICAgICAgICAgIGNvZGUgPVVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICAgIGNvZGUgPSBVU2NyaXB0LmdldFNjcmlwdChpKTsKKyAgICAgICAgICBpZihjb2RlPT1VU2NyaXB0LklOVkFMSURfQ09ERSl7CisgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoaSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgU3RyaW5nIGlkID1VU2NyaXB0LmdldE5hbWUoY29kZSk7CisgICAgICAgICAgaWYoaWQuaW5kZXhPZigiSU5WQUxJRCIpPj0wKXsKKyAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoaSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgU3RyaW5nIGFiYnIgPSBVU2NyaXB0LmdldFNob3J0TmFtZShjb2RlKTsKKyAgICAgICAgICBpZihhYmJyLmluZGV4T2YoIklOViIpPj0wKXsKKyAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoaSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdE5ld0NvZGUoKXsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlc2Ugc2NyaXB0IGNvZGVzIHdlcmUgb3JpZ2luYWxseSBhZGRlZCB0byBJQ1UgcHJlLTMuNiwgc28gdGhhdCBJQ1Ugd291bGQKKyAgICAgICAgICogaGF2ZSBhbGwgSVNPIDE1OTI0IHNjcmlwdCBjb2Rlcy4gSUNVIHdhcyB0aGVuIGJhc2VkIG9uIFVuaWNvZGUgNC4xLgorICAgICAgICAgKiBUaGVzZSBzY3JpcHQgY29kZXMgd2VyZSBhZGRlZCB3aXRoIG9ubHkgc2hvcnQgbmFtZXMgYmVjYXVzZSB3ZSBkb24ndAorICAgICAgICAgKiB3YW50IHRvIGludmVudCBsb25nIG5hbWVzIG91cnNlbHZlcy4KKyAgICAgICAgICogVW5pY29kZSA1IGFuZCBsYXRlciBlbmNvZGUgc29tZSBvZiB0aGVzZSBzY3JpcHRzIGFuZCBnaXZlIHRoZW0gbG9uZyBuYW1lcy4KKyAgICAgICAgICogV2hlbmV2ZXIgdGhpcyBoYXBwZW5zLCB0aGUgbG9uZyBzY3JpcHQgbmFtZXMgaGVyZSBuZWVkIHRvIGJlIHVwZGF0ZWQuCisgICAgICAgICAqLworICAgICAgICBTdHJpbmdbXSBleHBlY3RlZExvbmcgPSBuZXcgU3RyaW5nW117CisgICAgICAgICAgICAiQmFsaW5lc2UiLCAiQmF0ayIsICJCbGlzIiwgIkJyYWgiLCAiQ2hhbSIsICJDaXJ0IiwgIkN5cnMiLCAiRWd5ZCIsICJFZ3loIiwgIkVneXAiLCAKKyAgICAgICAgICAgICJHZW9rIiwgIkhhbnMiLCAiSGFudCIsICJIbW5nIiwgIkh1bmciLCAiSW5kcyIsICJKYXZhIiwgIkthbGkiLCAiTGF0ZiIsICJMYXRnIiwgCisgICAgICAgICAgICAiTGVwYyIsICJMaW5hIiwgIk1hbmQiLCAiTWF5YSIsICJNZXJvIiwgIk5rbyIsICJPcmtoIiwgIlBlcm0iLCAiUGhhZ3NfUGEiLCAiUGhvZW5pY2lhbiIsIAorICAgICAgICAgICAgIlBscmQiLCAiUm9ybyIsICJTYXJhIiwgIlN5cmUiLCAiU3lyaiIsICJTeXJuIiwgIlRlbmciLCAiVmFpaSIsICJWaXNwIiwgIkN1bmVpZm9ybSIsIAorICAgICAgICAgICAgIlp4eHgiLCAiVW5rbm93biIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkU2hvcnQgPSBuZXcgU3RyaW5nW117CisgICAgICAgICAgICAiQmFsaSIsICJCYXRrIiwgIkJsaXMiLCAiQnJhaCIsICJDaGFtIiwgIkNpcnQiLCAiQ3lycyIsICJFZ3lkIiwgIkVneWgiLCAiRWd5cCIsIAorICAgICAgICAgICAgIkdlb2siLCAiSGFucyIsICJIYW50IiwgIkhtbmciLCAiSHVuZyIsICJJbmRzIiwgIkphdmEiLCAiS2FsaSIsICJMYXRmIiwgIkxhdGciLCAKKyAgICAgICAgICAgICJMZXBjIiwgIkxpbmEiLCAiTWFuZCIsICJNYXlhIiwgIk1lcm8iLCAiTmtvbyIsICJPcmtoIiwgIlBlcm0iLCAiUGhhZyIsICJQaG54IiwgCisgICAgICAgICAgICAiUGxyZCIsICJSb3JvIiwgIlNhcmEiLCAiU3lyZSIsICJTeXJqIiwgIlN5cm4iLCAiVGVuZyIsICJWYWlpIiwgIlZpc3AiLCAiWHN1eCIsIAorICAgICAgICAgICAgIlp4eHgiLCAiWnp6eiIsCisgICAgICAgIH07CisgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IoaT1VU2NyaXB0LkJBTElORVNFOyBpPFVTY3JpcHQuQ09ERV9MSU1JVDsgaSsrLCBqKyspeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVU2NyaXB0LmdldE5hbWUoaSk7CisgICAgICAgICAgICBpZihuYW1lPT1udWxsIHx8ICFuYW1lLmVxdWFscyhleHBlY3RlZExvbmdbal0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXROYW1lIGZhaWxlZCBmb3IgY29kZSIrIGkgKyBuYW1lICsiIT0iICtleHBlY3RlZExvbmdbal0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmFtZSA9IFVTY3JpcHQuZ2V0U2hvcnROYW1lKGkpOworICAgICAgICAgICAgaWYobmFtZT09bnVsbCB8fCAhbmFtZS5lcXVhbHMoZXhwZWN0ZWRTaG9ydFtqXSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNob3J0TmFtZSBmYWlsZWQgZm9yIGNvZGUiKyBpICsgbmFtZSArIiE9IiArZXhwZWN0ZWRTaG9ydFtqXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yKGk9MDsgaTxleHBlY3RlZExvbmcubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaW50W10gcmV0ID0gVVNjcmlwdC5nZXRDb2RlKGV4cGVjdGVkU2hvcnRbaV0pOworICAgICAgICAgICAgaWYocmV0Lmxlbmd0aD4xKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRDb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIG51bWJlciBvZiBjb2RlcyBmb3Igc2NyaXB0IisgZXhwZWN0ZWRTaG9ydFtpXSsiLiBFWFBFQ1RFRDogMSBHT1Q6ICIrIHJldC5sZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYocmV0WzBdIT0gKFVTY3JpcHQuQkFMSU5FU0UraSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldENvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgY29kZSBmb3Igc2NyaXB0IisgZXhwZWN0ZWRTaG9ydFtpXSsiLiBFWFBFQ1RFRDogIisgKFVTY3JpcHQuQkFMSU5FU0UraSkrIiBHT1Q6ICVpXG4iKyByZXRbMF0gKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyB9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTA4YjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YQpAQCAtMCwwICsxLDQwMiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5OS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0UnVuOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgVGVzdFVTY3JpcHRSdW4gZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHB1YmxpYyBUZXN0VVNjcmlwdFJ1bigpCisgICAgeworICAgICAgICAvLyBub3RoaW5nCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdFVTY3JpcHRSdW4oKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUnVuVGVzdERhdGEKKyAgICB7CisgICAgICAgIFN0cmluZyBydW5UZXh0OworICAgICAgICBpbnQgICAgcnVuU2NyaXB0OworICAgICAgICAKKyAgICAgICAgcHVibGljIFJ1blRlc3REYXRhKFN0cmluZyB0aGVUZXh0LCBpbnQgdGhlU2NyaXB0Q29kZSkKKyAgICAgICAgeworICAgICAgICAgICAgcnVuVGV4dCAgID0gdGhlVGV4dDsKKyAgICAgICAgICAgIHJ1blNjcmlwdCA9IHRoZVNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUnVuVGVzdERhdGFbXVtdIHRlc3REYXRhID0geworICAgICAgICB7CisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MDAyMFx1MDk0Nlx1MDkzOVx1MDkzRlx1MDkyOFx1MDk0RFx1MDkyNlx1MDk0MFx1MDAyMCIsIFVTY3JpcHQuREVWQU5BR0FSSSksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0QVx1MDYyOVx1MDAyMCIsIFVTY3JpcHQuQVJBQklDKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUwNDIwXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5XHUwMDIwIiwgVVNjcmlwdC5DWVJJTExJQyksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIkVuZ2xpc2ggKCIsIFVTY3JpcHQuTEFUSU4pLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTBFNDRcdTBFMTdcdTBFMjIiLCBVU2NyaXB0LlRIQUkpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCIpICIsIFVTY3JpcHQuTEFUSU4pLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTZGMjJcdTVCNzUiLCBVU2NyaXB0LkhBTiksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MzA2OFx1MzA3Mlx1MzA4OVx1MzA0Q1x1MzA2QVx1MzA2OCIsIFVTY3JpcHQuSElSQUdBTkEpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTMwQUJcdTMwQkZcdTMwQUJcdTMwQ0EiLCBVU2NyaXB0LktBVEFLQU5BKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHVEODAxXHVEQzAwXHVEODAxXHVEQzAxXHVEODAxXHVEQzAyXHVEODAxXHVEQzAzIiwgVVNjcmlwdC5ERVNFUkVUKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCIoKCgoKCgoKCgoYWJjKSkpKSkpKSkpKSIsIFVTY3JpcHQuTEFUSU4pCisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBwYWRkaW5nID0gIlRoaXMgc3RyaW5nIGlzIHVzZWQgZm9yIHBhZGRpbmcuLi4iOworICAgIAorICAgIHByaXZhdGUgdm9pZCBDaGVja1NjcmlwdFJ1bnMoVVNjcmlwdFJ1biBzY3JpcHRSdW4sIGludFtdIHJ1blN0YXJ0cywgUnVuVGVzdERhdGFbXSB0ZXN0RGF0YSkKKyAgICB7CisgICAgICAgIGludCBydW4sIHJ1blN0YXJ0LCBydW5MaW1pdDsKKyAgICAgICAgaW50IHJ1blNjcmlwdDsKKworICAgICAgICAvKiBpdGVyYXRlIG92ZXIgYWxsIHRoZSBydW5zICovCisgICAgICAgIHJ1biA9IDA7CisgICAgICAgIHdoaWxlIChzY3JpcHRSdW4ubmV4dCgpKSB7CisgICAgICAgICAgICBydW5TdGFydCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0U3RhcnQoKTsKKyAgICAgICAgICAgIHJ1bkxpbWl0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRMaW1pdCgpOworICAgICAgICAgICAgcnVuU2NyaXB0ID0gc2NyaXB0UnVuLmdldFNjcmlwdENvZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJ1blN0YXJ0ICE9IHJ1blN0YXJ0c1tydW5dKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdGFydCBvZmZzZXQgZm9yIHJ1biAiICsgcnVuICsgIjogZXhwZWN0ZWQgIiArIHJ1blN0YXJ0c1tydW5dICsgIiwgZ290ICIgKyBydW5TdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChydW5MaW1pdCAhPSBydW5TdGFydHNbcnVuICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IGxpbWl0IG9mZnNldCBmb3IgcnVuICIgKyBydW4gKyAiOiBleHBlY3RlZCAiICsgcnVuU3RhcnRzW3J1biArIDFdICsgIiwgZ290ICIgKyBydW5MaW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChydW5TY3JpcHQgIT0gdGVzdERhdGFbcnVuXS5ydW5TY3JpcHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHNjcmlwdCBmb3IgcnVuICIgKyBydW4gKyAiOiBleHBlY3RlZCBcIiIgKyBVU2NyaXB0LmdldE5hbWUodGVzdERhdGFbcnVuXS5ydW5TY3JpcHQpICsgIlwiLCBnb3QgXCIiICsgVVNjcmlwdC5nZXROYW1lKHJ1blNjcmlwdCkgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcnVuICs9IDE7CisKKyAgICAgICAgICAgIC8qIHN0b3Agd2hlbiB3ZSd2ZSBzZWVuIGFsbCB0aGUgcnVucyB3ZSBleHBlY3QgdG8gc2VlICovCisgICAgICAgICAgICBpZiAocnVuID49IHRlc3REYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogQ29tcGxhaW4gaWYgd2UgZGlkbid0IHNlZSB0aGVuIG51bWJlciBvZiBydW5zIHdlIGV4cGVjdGVkICovCisgICAgICAgIGlmIChydW4gIT0gdGVzdERhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IG51bWJlciBvZiBydW5zOiBleHBlY3RlZCAiICsgdGVzdERhdGEubGVuZ3RoICsgIiwgZ290ICIgKyBydW4pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRzdHJ1Y3Rpb24oKQorICAgIHsKKyAgICAgICAgVVNjcmlwdFJ1biBzY3JpcHRSdW4gPSBudWxsOworICAgICAgICBjaGFyW10gbnVsbENoYXJzICA9IG51bGwsIGR1bW15Q2hhcnMgID0geydkJywgJ3UnLCAnbScsICdtJywgJ3knfTsKKyAgICAgICAgU3RyaW5nIG51bGxTdHJpbmcgPSBudWxsLCBkdW1teVN0cmluZyA9IG5ldyBTdHJpbmcoZHVtbXlDaGFycyk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMCwgMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAxMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAxMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMCwgMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIDEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAxMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIDYpOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCA2LCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXksIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgNik7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgNikgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCA2LCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCA2LCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9Y2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoc2NyaXB0UnVuIT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJlc2V0KCkKKyAgICB7CisgICAgICAgIFVTY3JpcHRSdW4gc2NyaXB0UnVuID0gbnVsbDsKKyAgICAgICAgY2hhcltdIGR1bW15ID0geydkJywgJ3UnLCAnbScsICdtJywgJ3knfTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bigpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoMCwgMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoMCwgMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgNik7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCA2LCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDYsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH1jYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIGR1bW15Lmxlbmd0aCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIGR1bW15Lmxlbmd0aCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgwLCA2KTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoMCwgNikgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCg2LCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVucygpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3REYXRhLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBSdW5UZXN0RGF0YVtdIHRlc3QgPSB0ZXN0RGF0YVtpXTsKKyAgICAgICAgICAgIGludCBzdHJpbmdMaW1pdCA9IDA7CisgICAgICAgICAgICBpbnRbXSBydW5TdGFydHMgPSBuZXcgaW50W3Rlc3QubGVuZ3RoICsgMV07CisgICAgICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICIiOworICAgICAgICAgICAgVVNjcmlwdFJ1biBzY3JpcHRSdW4gPSBudWxsOworICAgICAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGaWxsIGluIHRoZSB0ZXN0IHN0cmluZyBhbmQgdGhlIHJ1blN0YXJ0cyBhcnJheS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yIChpbnQgcnVuID0gMDsgcnVuIDwgdGVzdC5sZW5ndGg7IHJ1biArPSAxKSB7CisgICAgICAgICAgICAgICAgcnVuU3RhcnRzW3J1bl0gPSBzdHJpbmdMaW1pdDsKKyAgICAgICAgICAgICAgICBzdHJpbmdMaW1pdCArPSB0ZXN0W3J1bl0ucnVuVGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0ZXN0U3RyaW5nICArPSB0ZXN0W3J1bl0ucnVuVGV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogVGhlIGxpbWl0IG9mIHRoZSBsYXN0IHJ1biAqLyAKKyAgICAgICAgICAgIHJ1blN0YXJ0c1t0ZXN0Lmxlbmd0aF0gPSBzdHJpbmdMaW1pdDsKKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgpIG9uIGEgdmFsaWQgVVNjcmlwdFJ1biBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bih0ZXN0U3RyaW5nLnRvQ2hhckFycmF5KCkpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KCkgb24gYSB2YWxpZCBVU2NyaXB0UnVuIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0UnVuLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLm5leHQoKSBvbiBhbiBlbXB0eSBVU2NyaXB0UnVuIHJldHVybmVkIHRydWUhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bigpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCh0ZXN0U3RyaW5nLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZywgMCwgdGVzdFN0cmluZy5sZW5ndGgpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgcGFkZGVkVGVzdFN0cmluZyA9IHBhZGRpbmcgKyB0ZXN0U3RyaW5nICsgcGFkZGluZzsKKyAgICAgICAgICAgIGludCBzdGFydE9mZnNldCA9IHBhZGRpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBydW4gPSAwOyBydW4gPCBydW5TdGFydHMubGVuZ3RoOyBydW4gKz0gMSkgeworICAgICAgICAgICAgICAgIHJ1blN0YXJ0c1tydW5dICs9IHN0YXJ0T2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChwYWRkZWRUZXN0U3RyaW5nLCBzdGFydE9mZnNldCwgY291bnQpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChwYWRkZWRUZXN0U3RyaW5nLCBzdGFydE9mZnNldCwgY291bnQpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQocGFkZGVkVGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCBzdGFydE9mZnNldCwgY291bnQpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChwYWRkZWRUZXN0U3RyaW5nLnRvQ2hhckFycmF5KCksIHN0YXJ0T2Zmc2V0LCBjb3VudCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhc2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2FzZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjhmN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhc2VUZXN0LmphdmEKQEAgLTAsMCArMSw4NDQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisKKy8qKgorKiA8cD5UZXN0aW5nIGNoYXJhY3RlciBjYXNpbmc8L3A+CisqIDxwPk1vc3RseSBmb2xsb3dpbmcgdGhlIHRlc3QgY2FzZXMgaW4gc3RyY2FzZS5jcHAgZm9yIElDVTwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG1hcmNoIDE0IDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlckNhc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgVUNoYXJhY3RlckNhc2VUZXN0KCkKKyAgICB7CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBVQ2hhcmFjdGVyQ2FzZVRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVyQ2FzZVRlc3QoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgZnVuY3Rpb24gb2YgVUNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyYWN0ZXIoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDSEFSQUNURVJfTE9XRVJfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoQ0hBUkFDVEVSX0xPV0VSX1tpXSkgJiYKKyAgICAgICAgICAgICAgICAhVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShDSEFSQUNURVJfTE9XRVJfW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGlzTG93ZXJDYXNlIHRlc3QgZm9yIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChDSEFSQUNURVJfTE9XRVJfW2ldKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihDSEFSQUNURVJfVVBQRVJfW2ldKSAmJgorICAgICAgICAgICAgICAgICEoVUNoYXJhY3Rlci5pc1VwcGVyQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSB8fAorICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1RpdGxlQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpc1VwcGVyQ2FzZSB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKENIQVJBQ1RFUl9MT1dFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pIHx8CisgICAgICAgICAgICAgICAgKENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKENIQVJBQ1RFUl9MT1dFUl9baV0pICYmCisgICAgICAgICAgICAgICAgQ0hBUkFDVEVSX1VQUEVSX1tpXSAhPQorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgY2FzZSBjb252ZXJzaW9uIHRlc3QgZm9yIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSArCisgICAgICAgICAgICAgICAgICAgICAgIiB0byBcXHUiICsgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChDSEFSQUNURVJfTE9XRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShDSEFSQUNURVJfTE9XRVJfW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGxvd2VyIGNhc2UgY29udmVyc2lvbiB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pICYmCisgICAgICAgICAgICAgICAgQ0hBUkFDVEVSX1VQUEVSX1tpXSAhPQorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCB1cHBlciBjYXNlIGNvbnZlcnNpb24gdGVzdCBmb3IgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9VUFBFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJPayAgICBcXHUiICsgaGV4KENIQVJBQ1RFUl9VUFBFUl9baV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZvbGRpbmcoKQorICAgIHsKKyAgICAgICAgLy8gdGVzdCBzaW1wbGUgY2FzZSBmb2xkaW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRk9MRElOR19TSU1QTEVfLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIHRydWUpICE9CisgICAgICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIHRydWUpIHNob3VsZCBiZSBcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpICsgMV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfU0lNUExFX1tpXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpIHNob3VsZCBiZSBcXHUiIAorICAgICAgICAgICAgICAgICAgICAgICsgaGV4KEZPTERJTkdfU0lNUExFX1tpICsgMV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfU0lNUExFX1tpXSwgZmFsc2UpICE9CisgICAgICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGZhbHNlKSBzaG91bGQgYmUgXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDJdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGT0xESU5HX1NJTVBMRV9baSArIDJdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKFxcdSIgKyBoZXgoRk9MRElOR19TSU1QTEVfW2ldKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpIHNob3VsZCBiZSBcXHUiIAorICAgICAgICAgICAgICAgICAgICAgICsgaGV4KEZPTERJTkdfU0lNUExFX1tpICsgMl0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgZnVsbCBzdHJpbmcgY2FzZSBmb2xkaW5nIHdpdGggZGVmYXVsdCBvcHRpb24gYW5kIHNlcGFyYXRlCisgICAgICAgIC8vIGJ1ZmZlcnMKKyAgICAgICAgaWYgKCFGT0xESU5HX0RFRkFVTFRfWzBdLmVxdWFscyhVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCB0cnVlKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICIsIHRydWUpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCB0cnVlKSkgKworICAgICAgICAgICAgICAgICAgIiBzaG91bGQgYmUgIiArIHByZXR0aWZ5KEZPTERJTkdfREVGQVVMVF9bMF0pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFGT0xESU5HX0RFRkFVTFRfWzBdLmVxdWFscyhVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1swXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgYmUgIiArIHByZXR0aWZ5KEZPTERJTkdfREVGQVVMVF9bMF0pKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgaWYgKCFGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1swXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgZmFsc2UpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1swXSkgKworICAgICAgICAgICAgICAgICAgIiwgZmFsc2UpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCBmYWxzZSkpCisgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1swXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIUZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzBdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICIsIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpKQorICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0pKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghRk9MRElOR19ERUZBVUxUX1sxXS5lcXVhbHMoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgdHJ1ZSkpKSB7CisgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMV0pICsKKyAgICAgICAgICAgICAgICAgIiwgdHJ1ZSk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIHRydWUpKQorICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzFdKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUZPTERJTkdfREVGQVVMVF9bMV0uZXF1YWxzKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1sxXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICIsIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzFdKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGFsdGVybmF0ZSBoYW5kbGluZyBmb3IgZG90dGVkIEkvZG90bGVzcyBpIChVKzAxMzAsIFUrMDEzMSkKKyAgICAgICAgaWYgKCFGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1sxXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBmYWxzZSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzFdKSArCisgICAgICAgICAgICAgICAgICAiLCBmYWxzZSk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIGZhbHNlKSkKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgYmUgIiArIHByZXR0aWZ5KEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzFdKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzFdKSArCisgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSkKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgKyBwcmV0dGlmeShGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1sxXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgc3RyaW5ncyBjYXNlIG1hcHBpbmcgbWV0aG9kcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVcHBlcigpCisgICAgeworICAgICAgICAvLyB1cHBlcmNhc2Ugd2l0aCByb290IGxvY2FsZSBhbmQgaW4gdGhlIHNhbWUgYnVmZmVyCisgICAgICAgIGlmICghVVBQRVJfUk9PVF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVBQRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgVVBQRVJfQkVGT1JFXyArICIgYWZ0ZXIgdXBwZXJjYXNlIHNob3VsZCBiZSAiICsKKyAgICAgICAgICAgICAgICAgIFVQUEVSX1JPT1RfICsgIiBpbnN0ZWFkIGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVBQRVJfQkVGT1JFXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdXBwZXJjYXNlIHdpdGggdHVya2lzaCBsb2NhbGUgYW5kIHNlcGFyYXRlIGJ1ZmZlcnMKKyAgICAgICAgaWYgKCFVUFBFUl9UVVJLSVNIXy5lcXVhbHMoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUFBFUl9CRUZPUkVfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsICIgKyBVUFBFUl9CRUZPUkVfICsKKyAgICAgICAgICAgICAgICAgICIgYWZ0ZXIgdHVya2lzaC1zZW5zaXRpdmUgdXBwZXJjYXNlIHNob3VsZCBiZSAiICsKKyAgICAgICAgICAgICAgICAgIFVQUEVSX1RVUktJU0hfICsgIiBpbnN0ZWFkIG9mICIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sIFVQUEVSX0JFRk9SRV8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHVwcGVyY2FzZSBhIHNob3J0IHN0cmluZyB3aXRoIHJvb3QgbG9jYWxlCisgICAgICAgIGlmICghVVBQRVJfTUlOSV9VUFBFUl8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVBQRVJfTUlOSV8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIHRvVXBwZXIocm9vdCBsb2NhbGUpPVwiIiArIFVQUEVSX01JTklfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBVUFBFUl9NSU5JX1VQUEVSXyArICJcIiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX1RPUEtBUF8uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFNIQVJFRF9MT1dFUkNBU0VfVE9QS0FQXykpKSB7CisgICAgICAgICAgICBlcnJsbigidG9VcHBlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArCisgICAgICAgICAgICAgICAgICBTSEFSRURfVVBQRVJDQVNFX1RPUEtBUF8gKyAiXCIsIGdvdCBcIiIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX1RVUktJU0hfLmVxdWFscygKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pKSkgeworICAgICAgICAgICAgZXJybG4oInRvVXBwZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXyArICJcIiwgZ290IFwiIiArCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX0dFUk1BTl8uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfTE9XRVJDQVNFX0dFUk1BTl8pKSkgeworICAgICAgICAgICAgZXJybG4oInRvVXBwZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBTSEFSRURfVVBQRVJDQVNFX0dFUk1BTl8KKyAgICAgICAgICAgICAgICAgICsgIlwiLCBnb3QgXCIiICsgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShHRVJNQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfTE9XRVJDQVNFX0dFUk1BTl8pICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX0dSRUVLXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX0dSRUVLXykpKSB7CisgICAgICAgICAgICBlcnJsbigidG9Mb3dlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfICsKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18pICsgIlwiLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExvd2VyKCkKKyAgICB7CisgICAgICAgIGlmICghTE9XRVJfUk9PVF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTE9XRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgTE9XRVJfQkVGT1JFXyArICIgYWZ0ZXIgbG93ZXJjYXNlIHNob3VsZCBiZSAiICsKKyAgICAgICAgICAgICAgICAgIExPV0VSX1JPT1RfICsgIiBpbnN0ZWFkIG9mICIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMT1dFUl9CRUZPUkVfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBsb3dlcmNhc2Ugd2l0aCB0dXJraXNoIGxvY2FsZQorICAgICAgICBpZiAoIUxPV0VSX1RVUktJU0hfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT1dFUl9CRUZPUkVfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsICIgKyBMT1dFUl9CRUZPUkVfICsKKyAgICAgICAgICAgICAgICAgICIgYWZ0ZXIgdHVya2lzaC1zZW5zaXRpdmUgbG93ZXJjYXNlIHNob3VsZCBiZSAiICsKKyAgICAgICAgICAgICAgICAgIExPV0VSX1RVUktJU0hfICsgIiBpbnN0ZWFkIG9mICIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sIExPV0VSX0JFRk9SRV8pKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVNIQVJFRF9MT1dFUkNBU0VfSVNUQU5CVUxfLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoU0hBUkVEX1VQUEVSQ0FTRV9JU1RBTkJVTF8pKSkgeworICAgICAgICAgICAgZXJybG4oIjEuIHRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9JU1RBTkJVTF8gKyAiXCIsIGdvdCBcIiIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykpKSB7CisgICAgICAgICAgICBlcnJsbigiMi4gdG9Mb3dlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArCisgICAgICAgICAgICAgICAgICBTSEFSRURfTE9XRVJDQVNFX1RVUktJU0hfICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTSEFSRURfTE9XRVJDQVNFX0dSRUVLXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShHUkVFS19MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18pKSkgeworICAgICAgICAgICAgZXJybG4oInRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBTSEFSRURfTE9XRVJDQVNFX0dSRUVLXyArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdSRUVLX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18pICsgIlwiLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRpdGxlKCkKKyAgICB7CisgICAgICAgICB0cnl7IAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUSVRMRV9EQVRBXy5sZW5ndGg7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3QgPSBUSVRMRV9EQVRBX1tpKytdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IFRJVExFX0RBVEFfW2krK107CisgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZShUSVRMRV9EQVRBX1tpKytdKTsKKyAgICAgICAgICAgICAgICBpbnQgYnJlYWtUeXBlID0gSW50ZWdlci5wYXJzZUludChUSVRMRV9EQVRBX1tpKytdKTsKKyAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGl0ZXIgPQorICAgICAgICAgICAgICAgICAgICBicmVha1R5cGUgPj0gMCA/CisgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldEJyZWFrSW5zdGFuY2UobG9jYWxlLCBicmVha1R5cGUpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UobG9jYWxlLCB0ZXN0LCBpdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0aXRsZWNhc2luZyBmb3IgIiArIHByZXR0aWZ5KHRlc3QpICsgIiBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXR0aWZ5KGV4cGVjdGVkKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldHRpZnkocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCBkYXRhIGZvciBCcmVha0l0ZXJhdG9ycyIpOworICAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGVjaWFsKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU1BFQ0lBTF9MT0NBTEVTXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGludCAgICBqICAgICAgPSBpICogMzsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBTUEVDSUFMX0xPQ0FMRVNfW2ldOworICAgICAgICAgICAgU3RyaW5nIHN0ciAgICA9IFNQRUNJQUxfREFUQV9bal07CisgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoIVNQRUNJQUxfREFUQV9baiArIDFdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG9jYWxlLCBzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgbG93ZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBoZXgoU1BFQ0lBTF9EQVRBX1tqICsgMV0pCisgICAgICAgICAgICAgICAgICAgICAgICArICIgZm9yIGxvY2FsZSAiICsgbG9jYWxlLnRvU3RyaW5nKCkgKyAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAyXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIHVwcGVyY2FzaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChzdHIpICsgIiBleHBlY3RlZCAiICsgU1BFQ0lBTF9EQVRBX1tqICsgMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBmb3IgbG9jYWxlICIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmICghU1BFQ0lBTF9EQVRBX1tqICsgMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgbG93ZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAyXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIHVwcGVyY2FzaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChzdHIpICsgIiBleHBlY3RlZCAiICsgU1BFQ0lBTF9EQVRBX1tqICsgMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdHVya2lzaCAmIGF6ZXJiYWlqYW5pIGRvdGxlc3MgaSAmIGRvdHRlZCBJCisgICAgICAgIC8vIHJlbW92ZSBkb3QgYWJvdmUgaWYgdGhlcmUgd2FzIGEgY2FwaXRhbCBJIGJlZm9yZSBhbmQgdGhlcmUgYXJlIG5vCisgICAgICAgIC8vIG1vcmUgYWNjZW50cyBhYm92ZQorICAgICAgICBpZiAoIVNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRVUktJU0hfTE9DQUxFXywgU1BFQ0lBTF9ET1RURURfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIodHIpPVwiIiArIFNQRUNJQUxfRE9UVEVEXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RURURfTE9XRVJfVFVSS0lTSF8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RURURfKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTUEVDSUFMX0RPVFRFRF9MT1dFUl9HRVJNQU5fLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VSTUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UVEVEXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGRlKT1cIiIgKyBTUEVDSUFMX0RPVFRFRF8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UVEVEX0xPV0VSX0dFUk1BTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVFRFRF8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpdGh1YW5pYW4gZG90IGFib3ZlIGluIHVwcGVyY2FzaW5nCisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfTElUSFVBTklBTl8uZXF1YWxzKAorICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoTElUSFVBTklBTl9MT0NBTEVfLCBTUEVDSUFMX0RPVF9BQk9WRV8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9VcHBlcihsdCk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXyArCisgICAgICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV8pKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0dFUk1BTl8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VSTUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UX0FCT1ZFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b1VwcGVyKGRlKT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0dFUk1BTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpdGh1YW5pYW4gYWRkcyBkb3QgYWJvdmUgdG8gaSBpbiBsb3dlcmNhc2luZyBpZiB0aGVyZSBhcmUgbW9yZQorICAgICAgICAvLyBhYm92ZSBhY2NlbnRzCisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfTElUSFVBTklBTl8uZXF1YWxzKAorICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGx0KT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0xJVEhVQU5JQU5fICsKKyAgICAgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExJVEhVQU5JQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpOworICAgICAgICB9CisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfR0VSTUFOXy5lcXVhbHMoCisgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9Mb3dlcihkZSk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9HRVJNQU5fICsKKyAgICAgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyBmb3IgY2FzZSBtYXBwaW5nIGluIHRoZSBmaWxlIFNwZWNpYWxDYXNpbmcudHh0CisgICAgICogVGhpcyBtZXRob2QgcmVhZHMgaW4gU3BlY2lhbENhc2luZy50eHQgZmlsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyAgICAgKiBBIGRlZmF1bHQgcGF0aCBpcyBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc3JjIHBhdGgsIGhvd2V2ZXIgdGhlIHVzZXIKKyAgICAgKiBjb3VsZCBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisgICAgICogZS5nLiBqYXZhIC1EVW5pY29kZURhdGE9ImRhdGFfZGlyX3BhdGgiIGNvbS5pYm0uZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVyVGVzdAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGVjaWFsQ2FzaW5nVHh0KCkKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICAvLyByZWFkaW5nIGluIHRoZSBTcGVjaWFsQ2FzaW5nIGZpbGUKKyAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGlucHV0ID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUvU3BlY2lhbENhc2luZy50eHQiKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwIHx8IHMuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2hzdHJbXSA9IGdldFVuaWNvZGVTdHJpbmdzKHMpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmZXIgICA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbMF0pOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsb3dlcmJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbMV0pOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB1cHBlcmJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoY2hzdHJbM10pOworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBudWxsOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSA0OyBpIDwgY2hzdHIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb25kaXRpb24gPSBjaHN0cltpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaHN0cltpXS5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNoc3RyW2ldLCAiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29uZGl0aW9uLmNvbXBhcmVUb0lnbm9yZUNhc2UoIk5vdF9CZWZvcmVfRG90IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR1cm5zIEkgaW50byBkb3RsZXNzIGkKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3JlX0Fib3ZlIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5hcHBlbmQoKGNoYXIpMHgzMDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyYnVmZmVyLmFwcGVuZCgoY2hhcikweDMwMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuYXBwZW5kKChjaGFyKTB4MzAwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZnRlcl9Tb2Z0X0RvdHRlZCIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFuZy5lcXVhbHMoInRyIikgfHwgbGFuZy5lcXVhbHMoImF6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBiZSByZW1vdmVkIHdoZW4gNC4wIGRhdGEgY29tZXMgb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB1cHBlcmJ1ZmZlci5pbnNlcnQgdW5jb21tZW50ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGppdHRlcmJ1ZyAyMzQ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyW2ldID0gIkFmdGVyX0kiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuZGVsZXRlQ2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5kZWxldGVDaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgLS07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ1x1MDEzMCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbmFsX1NpZ21hIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ0MnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgiQWZ0ZXJfSSIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuaW5zZXJ0KDAsICdpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFuZy5lcXVhbHMoInRyIikgfHwgbGFuZy5lcXVhbHMoImF6IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoc3RyWzBdID0gc3RyYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY2hzdHJbMV0gPSBsb3dlcmJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGNoc3RyWzNdID0gdXBwZXJidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoc3RyWzBdKS5lcXVhbHMoY2hzdHJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b0xvd2VyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clsxXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoc3RyWzBdKS5lcXVhbHMoY2hzdHJbM10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b1VwcGVyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clszXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIGNoc3RyWzBdKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b0xvd2VyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clsxXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBjaHN0clswXSkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyWzNdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocyk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogdG9VcHBlckNhc2UgZm9yIGNoYXJhY3RlciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzBdKSArICIsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5lc2NhcGUoY2hzdHJbM10pICsgIiBidXQgcmVzdWx0ZWQgaW4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbMF0pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VXBwZXJMb3dlcigpCisgICAgeworICAgICAgICBpbnQgdXBwZXJbXSA9IHsweDAwNDEsIDB4MDA0MiwgMHgwMGIyLCAweDAxYzQsIDB4MDFjNiwgMHgwMWM5LCAweDAxYzgsCisgICAgICAgICAgICAgICAgICAgICAgICAweDAxYzksIDB4MDAwY307CisgICAgICAgIGludCBsb3dlcltdID0gezB4MDA2MSwgMHgwMDYyLCAweDAwYjIsIDB4MDFjNiwgMHgwMWM2LCAweDAxYzksIDB4MDFjOSwKKyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOSwgMHgwMDBjfTsKKyAgICAgICAgU3RyaW5nIHVwcGVyVGVzdCA9ICJhYmNkZWZnMTIzaGlqLj86a2xtbm8iOworICAgICAgICBTdHJpbmcgbG93ZXJUZXN0ID0gIkFCQ0RFRkcxMjNISUouPzpLTE1OTyI7CisKKyAgICAgICAgLy8gQ2hlY2tzIExldHRlckxpa2UgU3ltYm9scyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgYSBzb3VyY2Ugb2YKKyAgICAgICAgLy8gY29uZnVzaW9uIFtCZXJ0cmFuZCBBLiBELiAwMi8wNC85OF0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MjEwMDsgaSA8IDB4MjEzODsgaSArKykgeworICAgICAgICAgICAgLyogVW5pY29kZSA1LjAgYWRkcyBsb3dlcmNhc2UgVSsyMTRFIChUVVJORUQgU01BTEwgRikgdG8gVSsyMTMyIChUVVJORUQgQ0FQSVRBTCBGKSAqLworICAgICAgICAgICAgaWYgKGkgIT0gMHgyMTI2ICYmIGkgIT0gMHgyMTJhICYmIGkgIT0gMHgyMTJiICYmIGkhPTB4MjEzMikgeworICAgICAgICAgICAgICAgIGlmIChpICE9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpIHsgLy8gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChpLCA0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpICE9IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBjYXNlIGNvbnZlcnNpb24gd2l0aCBpdHNlbGY6IFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGksIDQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cHBlci5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHVwcGVyW2ldKSAhPSBsb3dlcltpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQgVUNoYXJhY3Rlci50b2xvd2VyKCkgZm9yIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJbaV0sIDQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQgXFx1IiArIFV0aWxpdHkuaGV4KGxvd2VyW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEdvdCBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UodXBwZXJbaV0pLCA0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oInRlc3RpbmcgdXBwZXIgbG93ZXIiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cHBlclRlc3QubGVuZ3RoKCk7IGkgKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHRvIHVwcGVyIHRvIGxvd2VyIik7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcih1cHBlclRlc3QuY2hhckF0KGkpKSAmJgorICAgICAgICAgICAgICAgICFVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKHVwcGVyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBpc0xvd2VyQ2FzZSB0ZXN0IGF0IFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihsb3dlclRlc3QuY2hhckF0KGkpKQorICAgICAgICAgICAgICAgICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNVcHBlckNhc2UobG93ZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGlzVXBwZXJDYXNlIHRlc3QgYXQgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgobG93ZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodXBwZXJUZXN0LmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UobG93ZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGNhc2UgY29udmVyc2lvbiBmcm9tIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgobG93ZXJUZXN0LmNoYXJBdChpKSwgNCkgKyAiIFRvIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodXBwZXJUZXN0LmNoYXJBdChpKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobG93ZXJUZXN0LmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKHVwcGVyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBjYXNlIGNvbnZlcnNpb24gOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSksIDQpICsgIiBUbyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSksIDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHVwcGVyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZSh1cHBlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGxvd2VyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb3dlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiZG9uZSB0ZXN0aW5nIHVwcGVyIExvd2VyIik7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLSB0ZXN0IGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBUVVJLSVNIX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJ0ciIsICJUUiIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBHRVJNQU5fTE9DQUxFXyA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEdSRUVLX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJlbCIsICJHUiIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBFTkdMSVNIX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBMSVRIVUFOSUFOX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJsdCIsICJMVCIpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9VUFBFUl9bXSA9CisgICAgICAgICAgICAgICAgICAgICAgezB4NDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgMHgwMDQ2LCAweDAwNDcsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMSwgMHgwMGIyLCAweGIzLCAweDAwNDgsIDB4MDA0OSwgMHgwMDRhLCAweDAwMmUsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZiwgMHgwMDNhLCAweDAwNGIsIDB4MDA0YywgMHg0ZCwgMHgwMDRlLCAweDAwNGYsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjNCwgMHgwMWM4LCAweDAwMGMsIDB4MDAwMH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9MT1dFUl9bXSA9CisgICAgICAgICAgICAgICAgICAgICAgezB4NjEsIDB4MDA2MiwgMHgwMDYzLCAweDAwNjQsIDB4MDA2NSwgMHgwMDY2LCAweDAwNjcsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBiMSwgMHgwMGIyLCAweGIzLCAweDAwNjgsIDB4MDA2OSwgMHgwMDZhLCAweDAwMmUsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzZiwgMHgwMDNhLCAweDAwNmIsIDB4MDA2YywgMHg2ZCwgMHgwMDZlLCAweDAwNmYsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjNiwgMHgwMWM5LCAweDAwMGMsIDB4MDAwMH07CisKKyAgICAvKgorICAgICAqIENhc2VGb2xkaW5nLnR4dCBzYXlzIGFib3V0IGkgYW5kIGl0cyBjb3VzaW5zOgorICAgICAqICAgMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgICogICAwMDQ5OyBUOyAwMTMxOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgKgorICAgICAqICAgMDEzMDsgRjsgMDA2OSAwMzA3OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgKiAgIDAxMzA7IFQ7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAqIFRoYXQncyBhbGwuCisgICAgICogU2VlIENhc2VGb2xkaW5nLnR4dCBhbmQgdGhlIFVuaWNvZGUgU3RhbmRhcmQgZm9yIGhvdyB0byBhcHBseSB0aGUgY2FzZSBmb2xkaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9MRElOR19TSU1QTEVfW10gPSB7CisgICAgICAgIC8vIGlucHV0LCBkZWZhdWx0LCBleGNsdWRlIHNwZWNpYWwgaQorICAgICAgICAweDYxLCAgIDB4NjEsICAweDYxLAorICAgICAgICAweDQ5LCAgIDB4NjksICAweDEzMSwKKyAgICAgICAgMHgxMzAsICAweDEzMCwgMHg2OSwKKyAgICAgICAgMHgxMzEsICAweDEzMSwgMHgxMzEsCisgICAgICAgIDB4ZGYsICAgMHhkZiwgIDB4ZGYsCisgICAgICAgIDB4ZmIwMywgMHhmYjAzLCAweGZiMDMsCisgICAgICAgIDB4MTA0MGUsMHgxMDQzNiwweDEwNDM2LAorICAgICAgICAweDVmZmZmLDB4NWZmZmYsMHg1ZmZmZgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTERJTkdfTUlYRURfW10gPQorICAgICAgICAgICAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDA0Mlx1MDEzMFx1MDA0OVx1MDEzMVx1MDNkMFx1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiQVx1MDBkZlx1MDBiNVx1ZmIwM1x1RDgwMVx1REMwQ1x1MDEzMFx1MDEzMSJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT0xESU5HX0RFRkFVTFRfW10gPQorICAgICAgICAgeyJcdTAwNjFcdTAwNjJcdTAwNjlcdTAzMDdcdTAwNjlcdTAxMzFcdTAzYjJcdTAwNzNcdTAwNzNcdTAwNjZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICJhc3NcdTAzYmNmZmlcdUQ4MDFcdURDMzRpXHUwMzA3XHUwMTMxIn07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfW10gPQorICAgICAgICAgeyJcdTAwNjFcdTAwNjJcdTAwNjlcdTAxMzFcdTAxMzFcdTAzYjJcdTAwNzNcdTAwNzNcdTAwNjZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICJhc3NcdTAzYmNmZmlcdUQ4MDFcdURDMzRpXHUwMTMxIn07CisgICAgLyoqCisgICAgICogIklFU1VTIENIUklTVE9TIgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX0dSRUVLXyA9CisgICAgICAgICJcdTAzOTlcdTAzOTVcdTAzYTNcdTAzYTVcdTAzYTNcdTAwMjBcdTAzYTdcdTAzYTFcdTAzOTlcdTAzYTNcdTAzYTRcdTAzOWZcdTAzYTMiOworICAgIC8qKgorICAgICAqICJpZXN1cyBjaHJpc3RvcyIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18gPQorICAgICAgICAiXHUwM2I5XHUwM2I1XHUwM2MzXHUwM2M1XHUwM2MyXHUwMDIwXHUwM2M3XHUwM2MxXHUwM2I5XHUwM2MzXHUwM2M0XHUwM2JmXHUwM2MyIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXyA9CisgICAgICAgICJcdTAwNjlcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNjJcdTAwNzVcdTAwNmNcdTAwMmNcdTAwMjBcdTAwNmVcdTAwNmZcdTAwNzRcdTAwMjBcdTAwNjNcdTAwNmZcdTAwNmVcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNzRcdTAxMzFcdTAwNmVcdTAwNmZcdTAwNzBcdTAwNmNcdTAwNjVcdTAwMjEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX1RVUktJU0hfID0KKyAgICAgICAgIlx1MDA1NFx1MDA0Zlx1MDA1MFx1MDA0Ylx1MDA0MVx1MDA1MFx1MDA0OVx1MDAyMFx1MDA1MFx1MDA0MVx1MDA0Y1x1MDA0MVx1MDA0M1x1MDA0NVx1MDAyY1x1MDAyMFx1MDEzMFx1MDA1M1x1MDA1NFx1MDA0MVx1MDA0ZVx1MDA0Mlx1MDA1NVx1MDA0YyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMzBTVEFOQlVMLCBOT1QgQ09OU1RBTlRJTk9QTEUhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9JU1RBTkJVTF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlcdTAzMDdzdGFuYnVsLCBub3QgY29uc3RhbnRpbm9wbGUhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b3BrYXBcdTAxMzEgcGFsYWNlLCBpc3RhbmJ1bCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9VUFBFUkNBU0VfVE9QS0FQXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVE9QS0FQSSBQQUxBQ0UsIElTVEFOQlVMIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTXHUwMEZDXHUwMERGbWF5cnN0cmFcdTAwREZlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTXHUwMERDU1NNQVlSU1RSQVNTRSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfQkVGT1JFXyA9CisgICAgICAgICAiXHUwMDYxXHUwMDQyXHUwMDY5XHUwM2MyXHUwMGRmXHUwM2MzXHUwMDJmXHVmYjAzXHVmYjAzXHVmYjAzXHVkOTNmXHVkZmZmIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfUk9PVF8gPQorICAgICAgICAgIlx1MDA0MVx1MDA0Mlx1MDA0OVx1MDNhM1x1MDA1M1x1MDA1M1x1MDNhM1x1MDAyZlx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1ZDkzZlx1ZGZmZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX1RVUktJU0hfID0KKyAgICAgICAgICJcdTAwNDFcdTAwNDJcdTAxMzBcdTAzYTNcdTAwNTNcdTAwNTNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9NSU5JXyA9ICJcdTAwZGZcdTAwNjEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9NSU5JX1VQUEVSXyA9ICJcdTAwNTNcdTAwNTNcdTAwNDEiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPV0VSX0JFRk9SRV8gPQorICAgICAgICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNDJcdTAwNDlcdTAzYTNcdTAwZGZcdTAzYTNcdTAwMmZcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMT1dFUl9ST09UXyA9CisgICAgICAgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDBkZlx1MDNjMlx1MDAyZlx1ZDkzZlx1ZGZmZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPV0VSX1RVUktJU0hfID0gCisgICAgICAgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDBkZlx1MDNjMlx1MDAyZlx1ZDkzZlx1ZGZmZiI7CisKKyAgICAvKioKKyAgICAgKiBlYWNoIGl0ZW0gaXMgYW4gYXJyYXkgd2l0aCBpbnB1dCBzdHJpbmcsIHJlc3VsdCBzdHJpbmcsIGxvY2FsZSBJRCwgYnJlYWsgaXRlcmF0b3IKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3BlY2lmaWVkIGFzIGFuIGludCwgc2FtZSBhcyBpbiBCcmVha0l0ZXJhdG9yLktJTkRfKjoKKyAgICAgKiAwPUtJTkRfQ0hBUkFDVEVSICAxPUtJTkRfV09SRCAgMj1LSU5EX0xJTkUgIDM9S0lORF9TRU5URU5DRSAgND1LSU5EX1RJVExFICAtMT1kZWZhdWx0CisgICAgICogc2VlIElDVTRDIHNvdXJjZS90ZXN0L3Rlc3RkYXRhL2Nhc2luZy50eHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElUTEVfREFUQV9bXSA9IHsKKyAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDAyMFx1MDA2OVx1MDNjMlx1MDAyMFx1MDBkZlx1MDNjM1x1MDAyZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICJcdTAwNDFcdTAwNDJcdTAwMjBcdTAwNDlcdTAzYTNcdTAwMjBcdTAwNTNcdTAwNzNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAiIiwKKyAgICAgICAgIjAiLAorCisgICAgICAgICJcdTAwNjFcdTAwNDJcdTAwMjBcdTAwNjlcdTAzYzJcdTAwMjBcdTAwZGZcdTAzYzNcdTAwMmZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMDIwXHUwMDQ5XHUwM2MyXHUwMDIwXHUwMDUzXHUwMDczXHUwM2MzXHUwMDJmXHUwMDQ2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgIiIsCisgICAgICAgICIxIiwKKworICAgICAgICAiXHUwMmJiYU1lTGlrQSBodUkgUFx1MDE2YiBcdTAyYmJcdTAyYmJcdTAyYmJpQSIsICJcdTAyYmJBbWVsaWthIEh1aSBQXHUwMTZiIFx1MDJiYlx1MDJiYlx1MDJiYklhIiwgLy8gdGl0bGVjYXNlIGZpcnN0IF9jYXNlZF8gbGV0dGVyLCBqNDkzMworICAgICAgICAiIiwKKyAgICAgICAgIi0xIiwKKworICAgICAgICAiIHRIZSBRVUljSyBiUm9XbiIsICIgVGhlIFF1aWNrIEJyb3duIiwKKyAgICAgICAgIiIsCisgICAgICAgICI0IiwKKworICAgICAgICAiXHUwMWM0XHUwMWM1XHUwMWM2XHUwMWM3XHUwMWM4XHUwMWM5XHUwMWNhXHUwMWNiXHUwMWNjIiwgCisgICAgICAgICJcdTAxYzVcdTAxYzVcdTAxYzVcdTAxYzhcdTAxYzhcdTAxYzhcdTAxY2JcdTAxY2JcdTAxY2IiLCAvLyBVQlJLX0NIQVJBQ1RFUgorICAgICAgICAiIiwKKyAgICAgICAgIjAiLAorCisgICAgICAgICJcdTAxYzl1YmF2IGxqdWJhdiIsICJcdTAxYzh1YmF2IExqdWJhdiIsIC8vIExqIHZzLiBMK2oKKyAgICAgICAgIiIsCisgICAgICAgICItMSIsCisKKyAgICAgICAgIidvSCBkT24nVCB0SXRMZUNhU2UgQWZUZVIgbEV0VGVSKyciLCAgIidPaCBEb24ndCBUaXRsZWNhc2UgQWZ0ZXIgTGV0dGVyKyciLAorICAgICAgICAiIiwKKyAgICAgICAgIi0xIgorICAgIH07CisKKworICAgIC8qKgorICAgICAqIDxwPmJhc2ljIHN0cmluZywgbG93ZXIgc3RyaW5nLCB1cHBlciBzdHJpbmcsIHRpdGxlIHN0cmluZzwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9EQVRBX1tdID0geworICAgICAgICBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpICsgVVRGMTYudmFsdWVPZigweDEwNDE0KSwKKyAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDNDKSArIFVURjE2LnZhbHVlT2YoMHgxMDQzQyksCisgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQxNCkgKyBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpLAorICAgICAgICAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpLAorICAgICAgICAiYWInY2QgXHVGQjAwaVx1MDEzMWlpXHUwMzA3IFx1MDFDOVx1MDFDOVx1MDFDOSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpLAorICAgICAgICAiQUInQ0QgRkZJSUlcdTAxMzAgXHUwMUM3XHUwMUM3XHUwMUM3ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDE0KSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisgICAgICAgIC8vIHNpZ21hcyBmb2xsb3dlZC9wcmVjZWRlZCBieSBjYXNlZCBsZXR0ZXJzCisgICAgICAgICJpXHUwMzA3XHUwM2EzXHUwMzA4aiBcdTAzMDdcdTAzYTNcdTAzMDhqIGlcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIsCisgICAgICAgICJpXHUwMzA3XHUwM2MzXHUwMzA4aiBcdTAzMDdcdTAzYzNcdTAzMDhqIGlcdTAwYWRcdTAzYzJcdTAzMDggXHUwMzA3XHUwM2MzXHUwMzA4ICIsCisgICAgICAgICJJXHUwMzA3XHUwM2EzXHUwMzA4SiBcdTAzMDdcdTAzYTNcdTAzMDhKIElcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBTUEVDSUFMX0xPQ0FMRVNfW10gPSB7CisgICAgICAgIG51bGwsCisgICAgICAgIEVOR0xJU0hfTE9DQUxFXywKKyAgICAgICAgbnVsbCwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UVEVEXyA9CisgICAgICAgICAgICAiSSBcdTAxMzAgSVx1MDMwNyBJXHUwMzI3XHUwMzA3IElcdTAzMDFcdTAzMDcgSVx1MDMyN1x1MDMwN1x1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfID0KKyAgICAgICAgICAgICJcdTAxMzEgaSBpIGlcdTAzMjcgXHUwMTMxXHUwMzAxXHUwMzA3IGlcdTAzMjdcdTAzMDEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVFRFRF9MT1dFUl9HRVJNQU5fID0KKyAgICAgICAgICAgICJpIGlcdTAzMDcgaVx1MDMwNyBpXHUwMzI3XHUwMzA3IGlcdTAzMDFcdTAzMDcgaVx1MDMyN1x1MDMwN1x1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFXyA9CisgICAgICAgICAgICAiYVx1MDMwNyBcdTAzMDcgaVx1MDMwNyBqXHUwMzI3XHUwMzA3IGpcdTAzMDFcdTAzMDciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXyA9CisgICAgICAgICAgICAiQVx1MDMwNyBcdTAzMDcgSSBKXHUwMzI3IEpcdTAzMDFcdTAzMDciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9HRVJNQU5fID0KKyAgICAgICAgICAgICJBXHUwMzA3IFx1MDMwNyBJXHUwMzA3IEpcdTAzMjdcdTAzMDcgSlx1MDMwMVx1MDMwNyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXyA9CisgICAgICAgICAgICAiSSBJXHUwMzAxIEogSlx1MDMwMSBcdTAxMmUgXHUwMTJlXHUwMzAxIFx1MDBjY1x1MDBjZFx1MDEyOCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0xJVEhVQU5JQU5fID0KKyAgICAgICAgICAgICJpIGlcdTAzMDdcdTAzMDEgaiBqXHUwMzA3XHUwMzAxIFx1MDEyZiBcdTAxMmZcdTAzMDdcdTAzMDEgaVx1MDMwN1x1MDMwMGlcdTAzMDdcdTAzMDFpXHUwMzA3XHUwMzAzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfR0VSTUFOXyA9CisgICAgICAgICAgICAiaSBpXHUwMzAxIGogalx1MDMwMSBcdTAxMmYgXHUwMTJmXHUwMzAxIFx1MDBlY1x1MDBlZFx1MDEyOSI7CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydGluZyB0aGUgaGV4IG51bWJlcnMgcmVwcmVzZW50ZWQgYmV0d2VlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICc7JyB0byBVbmljb2RlIHN0cmluZ3MKKyAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBicmVhayB1cCBpbnRvIFVuaWNvZGUgc3RyaW5ncworICAgICAqIEByZXR1cm4gYXJyYXkgb2YgVW5pY29kZSBzdHJpbmdzIGVuZGluZyB3aXRoIGEgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gZ2V0VW5pY29kZVN0cmluZ3MoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigxMCk7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGZvciAoaW50IGNhc2Vjb3VudCA9IDQ7IGNhc2Vjb3VudCA+IDA7IGNhc2Vjb3VudCAtLSkgeworICAgICAgICAgICAgaW50IGVuZCA9IHN0ci5pbmRleE9mKCI7ICIsIHN0YXJ0KTsKKyAgICAgICAgICAgIFN0cmluZyBjYXNlc3RyID0gc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgc3BhY2VvZmZzZXQgPSAwOworICAgICAgICAgICAgd2hpbGUgKHNwYWNlb2Zmc2V0IDwgY2FzZXN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGludCBuZXh0c3BhY2UgPSBjYXNlc3RyLmluZGV4T2YoJyAnLCBzcGFjZW9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRzcGFjZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0c3BhY2UgPSBjYXNlc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUludGVnZXIucGFyc2VJbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXN0ci5zdWJzdHJpbmcoc3BhY2VvZmZzZXQsIG5leHRzcGFjZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNikpOworICAgICAgICAgICAgICAgIHNwYWNlb2Zmc2V0ID0gbmV4dHNwYWNlICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gZW5kICsgMjsKKyAgICAgICAgICAgIHYuYWRkKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgY29tbWVudHMgPSBzdHIuaW5kZXhPZigiICMiLCBzdGFydCk7CisgICAgICAgIGlmIChjb21tZW50cyAhPSAtMSAmJiBjb21tZW50cyAhPSBzdGFydCkgeworICAgICAgICAgICAgaWYgKHN0ci5jaGFyQXQoY29tbWVudHMgLSAxKSA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBjb21tZW50cyAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBjb25kaXRpb25zID0gc3RyLnN1YnN0cmluZyhzdGFydCwgY29tbWVudHMpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgY29uZGl0aW9ucy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGludCBzcGFjZW9mZnNldCA9IGNvbmRpdGlvbnMuaW5kZXhPZignICcsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKHNwYWNlb2Zmc2V0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHNwYWNlb2Zmc2V0ID0gY29uZGl0aW9ucy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdi5hZGQoY29uZGl0aW9ucy5zdWJzdHJpbmcob2Zmc2V0LCBzcGFjZW9mZnNldCkpOworICAgICAgICAgICAgICAgIG9mZnNldCA9IHNwYWNlb2Zmc2V0ICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IHYuc2l6ZSgpOworICAgICAgICBTdHJpbmcgcmVzdWx0W10gPSBuZXcgU3RyaW5nW3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IChTdHJpbmcpdi5lbGVtZW50QXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmOGUxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0LmphdmEKQEAgLTAsMCArMSw4NiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworCisvKioKKyogVGVzdGluZyBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIEFwcmlsIDAyIDIwMDIKKyovCitwdWJsaWMgY2xhc3MgVUNoYXJhY3RlckNhdGVnb3J5VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKSAgCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlckNhdGVnb3J5VGVzdCgpOworICAgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgY2F0ZWdvcnkKKyAgICAqIEByZXR1cm5zIGNhdGVnb3J5IG5hbWUKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1N0cmluZygpCisgICAgeworICAgICAgICAgIFN0cmluZyBuYW1lW10gPSB7IlVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgVXBwZXJjYXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXR0ZXIsIExvd2VyY2FzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGV0dGVyLCBUaXRsZWNhc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgT3RoZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIE5vbi1TcGFjaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYXJrLCBFbmNsb3NpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIFNwYWNpbmcgQ29tYmluaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIERlY2ltYWwgRGlnaXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk51bWJlciwgTGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIFNwYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIExpbmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlcGFyYXRvciwgUGFyYWdyYXBoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgQ29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIEZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIFByaXZhdGUgVXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgU3Vycm9nYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgRGFzaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBDbG9zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIENvbm5lY3RvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTeW1ib2wsIE1hdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgQ3VycmVuY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgT3RoZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRDsgCisgICAgICAgICAgICAgICAgIGkgPCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckNhdGVnb3J5LnRvU3RyaW5nKGkpLmVxdWFscyhuYW1lW2ldKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGNhdGVnb3J5ICIgKyBpICsgIiBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNvbXBhcmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjUyMDZmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKQEAgLTAsMCArMSwzMDggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGphdmEuaW8uRmlsZVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworCisvKioKKyogQSBjbGFzcyB0byBjb21wYXJlIHRoZSBkaWZmZXJlbmNlIGluIG1ldGhvZHMgYmV0d2VlbiBqYXZhLmxhbmcuQ2hhcmFjdGVyIGFuZAorKiBVQ2hhcmFjdGVyCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBvY3QgMDYgMjAwMAorKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcgorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDb21wYXJlCit7IAorICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBtX2hhc2h0YWJsZV8gPSBuZXcgSGFzaHRhYmxlKCk7CisgIAorICAvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIE1haW4gdGVzdGluZyBtZXRob2QKKyAgKi8KKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKQorICB7CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0aW5nIGNoYXJhY3RlciBjb21wYXJlIik7CisgICAgdHJ5CisgICAgeworICAgICAgRmlsZVdyaXRlciBmOworICAgICAgaWYgKGFyZy5sZW5ndGggPT0gMCkKKyAgICAgICAgZiA9IG5ldyBGaWxlV3JpdGVyKCJjb21wYXJlLnR4dCIpOworICAgICAgZWxzZQorICAgICAgICBmID0gbmV3IEZpbGVXcml0ZXIoYXJnWzBdKTsKKyAgICAgIFByaW50V3JpdGVyIHAgPSBuZXcgUHJpbnRXcml0ZXIoZik7CisgICAgICBwLnByaW50KCJjaGFyICBjaGFyYWN0ZXIgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik7CisgICAgICBwLnByaW50bG4oIm1ldGhvZCBuYW1lICAgICAgICAgICAgICAgdWNoYXJhY3RlciBjaGFyYWN0ZXIiKTsKKyAgICAgIGZvciAoY2hhciBpID0gQ2hhcmFjdGVyLk1JTl9WQUxVRTsgaSA8IENoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICB7CisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyYWN0ZXIgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoaSkgIT0gQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSkKKyAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzRGVmaW5lZCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSAhPSBDaGFyYWN0ZXIuZGlnaXQoaSwgMTApKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJkaWdpdCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5kaWdpdChpLCAxMCkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKSAhPSBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXROdW1lcmljVmFsdWUoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKTsKKyAgICAgICAgICBpZiAoIWNvbXBhcmVUeXBlKFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwgQ2hhcmFjdGVyLmdldFR5cGUoaSkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXRUeXBlKCkiLCAiIiArIFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5nZXRUeXBlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGkpICE9IENoYXJhY3Rlci5pc0RpZ2l0KGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0RpZ2l0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0RpZ2l0KGkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc0RpZ2l0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lTT0NvbnRyb2woaSkgIT0gQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNJU09Db250cm9sKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xldHRlcigpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNMZXR0ZXJPckRpZ2l0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xvd2VyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSkgIT0gQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNXaGl0ZXNwYWNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSkgIT0gQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1NwYWNlQ2hhcigpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSAhPSBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVGl0bGVDaGFyKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGkpICE9IAorICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSAhPSAKKyAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkgIT0gCisgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzSWRlbnRpZmllcklnbm9yYWJsZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1VwcGVyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShpKSAhPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvTG93ZXJDYXNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLmVxdWFscyhuZXcgQ2hhcmFjdGVyKGkpLnRvU3RyaW5nKCkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1N0cmluZygpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXIoaSkudG9TdHJpbmcoKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1RpdGxlQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1VwcGVyQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHN1bW1hcnkocCk7CisgICAgICBwLmNsb3NlKCk7CisgICAgfSAKKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9CisgIH0KKyAgCisgIC8vIHByaXZhdGUgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIENvbXBhcmluZyB0eXBlcworICAqIEBwYXJhbSB1Y2hhcnR5cGUgVUNoYXJhY3RlciB0eXBlCisgICogQHBhcmFtIGpjaGFydHlwZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHR5cGUKKyAgKi8KKyAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb21wYXJlVHlwZShpbnQgdWNoYXJ0eXBlLCBpbnQgamNoYXJ0eXBlKQorICB7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk1PRElGSUVSX0xFVFRFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUkspCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkNMT1NJTkdfTUFSSyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTUJJTklOR19TUEFDSU5HX01BUksgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTEVUVEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTElORV9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTElORV9TRVBBUkFUT1IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUEFSQUdSQVBIX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OVFJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05UUk9MKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkZPUk1BVCkKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1VSUk9HQVRFKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREFTSF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5EQVNIX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVEFSVF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5TVEFSVF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5EX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkVORF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTk5FQ1RPUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05ORUNUT1JfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTUFUSF9TWU1CT0wgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTUFUSF9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNVUlJFTkNZX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DVVJSRU5DWV9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5NT0RJRklFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LklOSVRJQUxfUFVOQ1RVQVRJT04gJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1RBUlRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GSU5BTF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIC8qaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5HRU5FUkFMX09USEVSX1RZUEVTKQorICAgICAgcmV0dXJuIHRydWU7Ki8KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRGlmZmVyZW5jZSB3cml0aW5nIHRvIGZpbGUKKyAgICAqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICogQHBhcmFtIG1ldGhvZCBmb3IgdGVzdGluZworICAgICogQHBhcmFtIHVjaGFydmFsIFVDaGFyYWN0ZXIgdmFsdWUgYWZ0ZXIgcnVubmluZyBtZXRob2QKKyAgICAqIEBwYXJhbSBjaGFydmFsIENoYXJhY3RlciB2YWx1ZSBhZnRlciBydW5uaW5nIG1ldGhvZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0cmFja0RpZmZlcmVuY2UoUHJpbnRXcml0ZXIgZiwgaW50IGNoLCBTdHJpbmcgbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1Y2hhcnZhbCwgU3RyaW5nIGNoYXJ2YWwpCisgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgaWYgKG1faGFzaHRhYmxlXy5jb250YWluc0tleShtZXRob2QpKQorICAgICAgeworICAgICAgICBJbnRlZ2VyIHZhbHVlID0gKEludGVnZXIpbV9oYXNodGFibGVfLmdldChtZXRob2QpOworICAgICAgICBtX2hhc2h0YWJsZV8ucHV0KG1ldGhvZCwgbmV3IEludGVnZXIodmFsdWUuaW50VmFsdWUoKSArIDEpKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgbV9oYXNodGFibGVfLnB1dChtZXRob2QsIG5ldyBJbnRlZ2VyKDEpKTsKKyAgICAgIAorICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKTsKKyAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcih0ZW1wKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNiAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisgICAgICAgIHMuYXBwZW5kKCcgJyk7CisgICAgICB0ZW1wID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY2gpOworICAgICAgaWYgKHRlbXAgPT0gbnVsbCkKKyAgICAgICAgdGVtcCA9ICIgIjsKKyAgICAgIHMuYXBwZW5kKHRlbXApOworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA3MyAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisgICAgICAgIHMuYXBwZW5kKCcgJyk7CisgICAgICAKKyAgICAgIHMuYXBwZW5kKG1ldGhvZCk7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI3IC0gbWV0aG9kLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgcy5hcHBlbmQodWNoYXJ2YWwpOworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMSAtIHVjaGFydmFsLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgcy5hcHBlbmQoY2hhcnZhbCk7CisgICAgICBmLnByaW50bG4ocy50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBEb2VzIHVwIGEgc3VtbWFyeSBvZiB0aGUgZGlmZmVyZW5jZXMKKyAgICAqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN1bW1hcnkoUHJpbnRXcml0ZXIgZikKKyAgICB7CisgICAgICBmLnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICBmLnByaW50bG4oIlN1bW1hcnkgb2YgZGlmZmVyZW5jZXMiKTsKKyAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IG1faGFzaHRhYmxlXy5rZXlzKCkgOyBlLmhhc01vcmVFbGVtZW50cygpIDspIAorICAgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgbWV0aG9kID0gbmV3IFN0cmluZ0J1ZmZlcigoU3RyaW5nKWUubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIGludCBjb3VudCA9ICgoSW50ZWdlciltX2hhc2h0YWJsZV8uZ2V0KG1ldGhvZC50b1N0cmluZygpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDMwIC0gbWV0aG9kLmxlbmd0aCgpOyBpID4gMDsgaSAtLSkKKyAgICAgICAgICBtZXRob2QuYXBwZW5kKCcgJyk7CisgICAgICBmLnByaW50bG4obWV0aG9kICsgIiAgIiArIGNvdW50KTsKKyAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzIzOWU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDc3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckRpcmVjdGlvbjsKKworLyoqCisqIFRlc3RpbmcgVUNoYXJhY3RlckRpcmVjdGlvbgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgSnVseSAyMiAyMDAyCisqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgICAgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpICAKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCB0ZXN0ID0gbmV3IFVDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNhdGVnb3J5CisgICAgKiBAcmV0dXJucyBjYXRlZ29yeSBuYW1lCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWVbXSA9IHsiTGVmdC10by1SaWdodCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkV1cm9wZWFuIE51bWJlciBUZXJtaW5hdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQXJhYmljIE51bWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbW1vbiBOdW1iZXIgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYWdyYXBoIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlNlZ21lbnQgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGVzcGFjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIE5ldXRyYWxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTGVmdC10by1SaWdodCBFbWJlZGRpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICJMZWZ0LXRvLVJpZ2h0IE92ZXJyaWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmlnaHQtdG8tTGVmdCBBcmFiaWMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSaWdodC10by1MZWZ0IEVtYmVkZGluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQgT3ZlcnJpZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJQb3AgRGlyZWN0aW9uYWwgRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLVNwYWNpbmcgTWFyayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkJvdW5kYXJ5IE5ldXRyYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFzc2lnbmVkIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQ7IAorICAgICAgICAgICAgICAgICBpIDwgVUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckRpcmVjdGlvbi50b1N0cmluZyhpKS5lcXVhbHMobmFtZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGRpcmVjdGlvbiAiICsgaSArICIgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NTY0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVySXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFVDaGFyYWN0ZXJJdGVyYXRvcgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgYXByaWwgMDIgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICAgIHB1YmxpYyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0KCkKKyAgICAgIHsKKyAgICAgIH0KKyAgCisgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAgIC8qKgorICAgICAgKiBUZXN0aW5nIGNsb25pbmcKKyAgICAgICovCisgICAgLyoKKyAgICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpCisgICAgICB7CisgICAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yID0gbmV3IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcigidGVzdGluZyIpOworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZWQgPSAoVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgICAgY2hhciBjb21wbGV0ZWQgPSAwOworICAgICAgICAgIHdoaWxlIChjb21wbGV0ZWQgIT0gVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgY29tcGxldGVkID0gaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgICBpZiAoY29tcGxldGVkICE9IGNsb25lZC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJDbG9uZWQgb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgfQorICAgICoKKyAgICAgIAorICAgICAgLyoqCisgICAgICAgKiBUZXN0aW5nIGl0ZXJhdGlvbgorICAgICAgICovCisgICAgLyoKKyAgICAgIHB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb24oKQorICAgICAgeworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciAgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjIgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICAgIGlmIChpdGVyYXRvci5maXJzdCgpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgZmlyc3QgY2hhcmFjdGVyIik7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChpdGVyYXRvci5sYXN0KCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkgLSAxKSkgeworICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgbGFzdCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICBpZiAoaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpICE9IDAgfHwgCisgICAgICAgICAgICAgIGl0ZXJhdG9yLmdldEVuZEluZGV4KCkgIT0gSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCBkZXRlcm1pbmluZyBiZWdpbiBhbmQgZW5kIGluZGV4Iik7CisgICAgICAgICAgfSAgCisgICAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KDApOworICAgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KDApOworICAgICAgICAgIGludCBjaCA9IDA7CisgICAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIubmV4dENvZGVQb2ludCgpOworICAgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLm5leHQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICBjaCAhPSBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuRE9ORV9DT0RFUE9JTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gbmV4dCgpIGFuZCBuZXh0Q29kZVBvaW50KCkiKTsgCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IubmV4dCgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBuZXh0IGFuZCBuZXh0Q29kZVBvaW50IGZvciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICAgIGl0ZXJhdG9yMi5zZXRJbmRleChJVEVSQVRJT05fU1RSSU5HXy5sZW5ndGgoKSk7CisgICAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IElURVJBVElPTl9TVVBQTEVNRU5UQVJZX0lOREVYKSB7CisgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5wcmV2aW91cygpICYmIAorICAgICAgICAgICAgICAgICAgICAgIGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cygpIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQoKSIpOyAKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpIHx8IAorICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIHByZXZpb3VzIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgfQorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvclRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJVEVSQVRJT05fU1RSSU5HXyA9CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCA9IDE0OyAgICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOGVhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKQEAgLTAsMCArMSw0MTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUZXN0IEpESyAxLjUgY292ZXIgQVBJcy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVCbG9ja0Zvck5hbWUoKSB7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiIsCisgICAgICAgICAgICAgICAgIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiLCAiU3VwcGxlbWVudGFsIEFycm93cy1CIiwKKyAgICAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBQcml2YXRlIFVzZSBBcmVhLUIiLAorICAgICAgICAgICAgICAgICJzdXBwbGVtZW50YXJ5X1ByaXZhdGVfVXNlX0FyZWEtYiIsCisgICAgICAgICAgICAgICAgInN1cHBsZW1lbnRhcnlfUFJJVkFURV9Vc2VfQXJlYV9iIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgYiA9IFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAuZm9yTmFtZShuYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbG9nbG4oImZvdW5kOiAiICsgYiArICIgZm9yIG5hbWU6ICIgKyBuYW1lc1tpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZmluZCBibG9jayBmb3IgbmFtZTogIiArIG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1ZhbGlkQ29kZVBvaW50KCkgeworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNWYWxpZENvZGVQb2ludCgwKSkKKyAgICAgICAgICAgIGVycmxuKCIwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQpKQorICAgICAgICAgICAgZXJybG4oIjB4MTBmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVmFsaWRDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCArIDEpKQorICAgICAgICAgICAgZXJybG4oIjB4MTEwMDAwIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzU3VwcGxlbWVudGFyeUNvZGVQb2ludCgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoMCkpCisgICAgICAgICAgICBlcnJsbigiMCIpOworICAgICAgICBpZiAoVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UIC0gMSkpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmICghVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UKSkKKyAgICAgICAgICAgIGVycmxuKCIweDEwMDAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCkpCisgICAgICAgICAgICBlcnJsbigiMHgxMGZmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKSkKKyAgICAgICAgICAgIGVycmxuKCIweDExMDAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0hpZ2hTdXJyb2dhdGUoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDdmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAiKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGMwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0xvd1N1cnJvZ2F0ZSgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGJmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYzAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGRmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZTAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1N1cnJvZ2F0ZVBhaXIoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcigKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkN2ZmLDB4ZGMwMCIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cnJvZ2F0ZVBhaXIoCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSAtIDEpKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAsMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcihVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgKyAxKSkpCisgICAgICAgICAgICBlcnJsbigiMHhkODAwLDB4ZTAwMCIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckNvdW50KCkgeworICAgICAgICBVQ2hhcmFjdGVyLmNoYXJDb3VudCgtMSk7CisgICAgICAgIFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCAtIDEpICE9IDEpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNoYXJDb3VudChVQ2hhcmFjdGVyLk1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpICE9IDIpCisgICAgICAgICAgICBlcnJsbigiMHgwMTAwMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9Db2RlUG9pbnQoKSB7CisgICAgICAgIGZpbmFsIGNoYXJbXSBwYWlycyA9IHsoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfSElHSF9TVVJST0dBVEUgLSAwKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgLSAwKSx9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KHBhaXJzW2ldLCBwYWlyc1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHBhaXJzW2ldICE9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApCisgICAgICAgICAgICAgICAgICAgIHx8IHBhaXJzW2kgKyAxXSAhPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKEludGVnZXIudG9IZXhTdHJpbmcocGFpcnNbaV0pICsgIiwgIiArIHBhaXJzW2kgKyAxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29kZVBvaW50QXRCZWZvcmUoKSB7CisgICAgICAgIFN0cmluZyBzID0gIiIgKyBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIGlzb2xhdGVkIGhpZ2gKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIHBhaXIKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURTsgLy8gaXNvbGF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG93CisgICAgICAgIGNoYXJbXSBjID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnRbXSBhdmFsdWVzID0geworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Db2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFLCBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFfTsKKyAgICAgICAgaW50W10gYnZhbHVlcyA9IHsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSx9OworICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQocywgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGF0OiAiICsgaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5jb2RlUG9pbnRBdChjLCBpKSAhPSBhdmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBhdDogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYiwgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGF0OiAiICsgaSk7CisKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShzLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGJlZm9yZTogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QmVmb3JlKGMsIGkgKyAxKSAhPSBidmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBiZWZvcmU6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShiLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGJlZm9yZTogIiArIGkpOworICAgICAgICB9CisKKyAgICAgICAgLy9jb3ZlciBjb2RlUG9pbnRBdEJlZm9yZSB3aXRoIGxpbWl0CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNvZGVQb2ludEF0QmVmb3JlIHdpdGggbGltaXQgLi4uIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYywgaSwgNCkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYXQ6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShjLCBpICsgMSwgMCkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYmVmb3JlOiAiICsgaSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb0NoYXJzKCkgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhclszXTsKKyAgICAgICAgaW50IGNwID0gVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKTsKKyAgICAgICAgVUNoYXJhY3Rlci50b0NoYXJzKGNwLCBjaGFycywgMSk7CisgICAgICAgIGlmIChjaGFyc1sxXSAhPSBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURQorICAgICAgICAgICAgICAgIHx8IGNoYXJzWzJdICE9IFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpIHsKKworICAgICAgICAgICAgZXJybG4oImZhaWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJzID0gVUNoYXJhY3Rlci50b0NoYXJzKGNwKTsKKyAgICAgICAgaWYgKGNoYXJzWzBdICE9IFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFCisgICAgICAgICAgICAgICAgfHwgY2hhcnNbMV0gIT0gVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkgeworCisgICAgICAgICAgICBlcnJsbigiZmFpbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludENvdW50KCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYocz09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHM9IiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAiY29kZVBvaW50Q291bnQoJyIgKyBVdGlsaXR5LmVzY2FwZShzKSArICInICIgKyBzdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgbGltaXQgKyAiKSI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgdGVzdChTdHJpbmcgcywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGludCB2YWwxID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLnRvQ2hhckFycmF5KCksIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOworICAgICAgICAgICAgICAgIGludCB2YWwyID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjaGFyW10gIiArIHN0cihzLCBzdGFydCwgbGltaXQpICsgIigiICsgdmFsMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgIT0gIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbDIgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0cmluZyAiICsgc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiKCIgKyB2YWwyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiID09ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0LCBDbGFzcyBleGMpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmNvZGVQb2ludENvdW50KHMsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ1bmV4cGVjdGVkIHN1Y2Nlc3MgIiArIHN0cihzLCBzdGFydCwgbGltaXQpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Yy5pc0luc3RhbmNlKGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oImJhZCBleGNlcHRpb24gIiArIHN0cihzLCBzdGFydCwgbGltaXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUZXN0IHRlc3QgPSBuZXcgVGVzdCgpOworICAgICAgICB0ZXN0LmZhaWwobnVsbCwgMCwgMSwgTnVsbFBvaW50ZXJFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAtMSwgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYSIsIDEsIDIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAxLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAxLCAzLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAxLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0T2Zmc2V0QnlDb2RlUG9pbnRzKCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIm9mZnNldEJ5Q29kZVBvaW50cygnIiArIFV0aWxpdHkuZXNjYXBlKHMpICsgIicgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBzdGFydCArICIsICIgKyBjb3VudCArICIsICIgKyBpbmRleCArICIsICIgKyBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHRlc3QoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCwgYm9vbGVhbiBmbGlwKSB7CisgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBzLnN1YnN0cmluZyhzdGFydCwgc3RhcnQgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDIgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhzdHJpbmcsIGluZGV4IC0gc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXJ0OworCisgICAgICAgICAgICAgICAgaWYgKHZhbDEgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNoYXJbXSAiICsgc3RyKHMsIHN0YXJ0LCBjb3VudCwgaW5kZXgsIG9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHZhbDEgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsMiAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIgKyBzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsMiArICIpICE9ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbihzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIgPT0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmbGlwKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLCAtb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgdmFsMiA9IFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHN0cmluZywgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHN0YXJ0LCAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiY2hhcltdICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwxICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwyICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwyICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBjb3VudCwgZXhwZWN0ZWQsIC1vZmZzZXQpICsgIiA9PSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoY2hhcltdIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIHN0YXJ0LCBjb3VudCwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInVuZXhwZWN0ZWQgc3VjY2VzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIobmV3IFN0cmluZyh0ZXh0KSwgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cihuZXcgU3RyaW5nKHRleHQpLCBzdGFydCwgY291bnQsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCkgKyBlLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmYWlsKFN0cmluZyB0ZXh0LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIGluZGV4LCBvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigidW5leHBlY3RlZCBzdWNjZXNzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCBpbmRleCwgb2Zmc2V0LCAwLCB0ZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCAwLCB0ZXh0Lmxlbmd0aCgpLCBpbmRleCwgb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGVzdCB0ZXN0ID0gbmV3IFRlc3QoKTsKKworICAgICAgICB0ZXN0LnRlc3QoIlx1ZDgwMFx1ZDgwMFx1ZGMwMCIsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworCisgICAgICAgIHRlc3QuZmFpbCgoY2hhcltdKSBudWxsLCAwLCAxLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgoU3RyaW5nKSBudWxsLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYWJjIiwgLTEsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDQsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDEsIC0yLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKCJhYmMiLCAyLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgY2hhcltdIGFiYyA9ICJhYmMiLnRvQ2hhckFycmF5KCk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIC0xLCAyLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMiwgMiwgMywgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDEsIC0xLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMSwgMiwgLTIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoYWJjLCAxLCAxLCAxLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMiwgMSwgMywgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDAsIDIsIDIsIC0zLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwLCAwLCAwLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkODAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkYzAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisKKyAgICAgICAgU3RyaW5nIHMgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKworICAgICAgICBzID0gIlx1ZGMwMFx1ZDgwMCI7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAxLCAwLCAxLCAxLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMiwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDEsIDEsIDEsIDIsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAwLCAyLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAyLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDEsIDEsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMSwgMSwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAxLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDIsIDEsIDMsIGZhbHNlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkYzAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDAsIDIsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMSwgMiwgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMiwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMiwgMSwgMiwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAyLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzdhYTE0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKQEAgLTAsMCArMSwyMzgyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVTZXJpYWxpemVkU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVUNoYXJhY3RlcgorKiBNb3N0bHkgZm9sbG93aW5nIHRoZSB0ZXN0IGNhc2VzIGZvciBJQ1UKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG5vdiAwNCAyMDAwCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogSUNVNEogZGF0YSB2ZXJzaW9uIG51bWJlcgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBWZXJzaW9uSW5mbyBWRVJTSU9OXyA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCI1LjAuMC4wIik7CisKKyAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlclRlc3QoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGxldHRlciBhbmQgbnVtYmVyIGRldGVybWluYXRpb24gaW4gVUNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlck51bWJlcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMHgwMDQxOyBpIDwgMHgwMDVCOyBpICsrKQorICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGxldHRlciIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAweDA2NjA7IGkgPCAweDA2NkE7IGkgKyspCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgbGV0dGVyIik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDY2MDsgaSA8IDB4MDY2QTsgaSArKykKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzRGlnaXQoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGRpZ2l0Iik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSArKykKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgZGlnaXQiKTsKKworICAgICAgICBmb3IgKGludCBpID0gMHgwNjYwOyBpIDwgMHgwNjZBOyBpICsrKQorICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIHRvIGJlIGVpdGhlciBhIGxldHRlciBvciBhIGRpZ2l0Iik7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGZvbGxvd2luZyBjaGVja3Mgd29yayBvbmx5IHN0YXJ0aW5nIGZyb20gVW5pY29kZSA0LjAuCisgICAgICAgICAqIENoZWNrIHRoZSB2ZXJzaW9uIG51bWJlciBoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgVmVyc2lvbkluZm8gdmVyc2lvbiA9ICAgIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYodmVyc2lvbi5nZXRNYWpvcigpPDQgfHwgdmVyc2lvbi5lcXVhbHMoVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoNCwgMCwgMSkpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworCisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2FuaXR5IGNoZWNrOgorICAgICAgICAgKiBWZXJpZnkgdGhhdCBleGFjdGx5IHRoZSBkaWdpdCBjaGFyYWN0ZXJzIGhhdmUgZGVjaW1hbCBkaWdpdCB2YWx1ZXMuCisgICAgICAgICAqIFRoaXMgYXNzdW1wdGlvbiBpcyB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB1X2RpZ2l0KCkKKyAgICAgICAgICogKHdoaWNoIGNoZWNrcyBudD1kZSkKKyAgICAgICAgICogY29tcGFyZWQgd2l0aCB0aGUgcGFyYWxsZWwgamF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdCgpCisgICAgICAgICAqICh3aGljaCBjaGVja3MgTmQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHdhcyBub3QgdHJ1ZSBpbiBVbmljb2RlIDMuMiBhbmQgZWFybGllci4KKyAgICAgICAgICogVW5pY29kZSA0LjAgZml4ZWQgZGlzY3JlcGFuY2llcy4KKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZS1pbnRyb2R1Y2VkIHByb2JsZW1zIGluIHRoaXMgYXJlYSBkdWUgdG8gYW4KKyAgICAgICAgICogdW5pbnRlbnRpb25hbGx5IGluY29tcGxldGUgbGFzdC1taW51dGUgY2hhbmdlLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGRpZ2l0c1BhdHRlcm4gPSAiWzpOZDpdIjsKKyAgICAgICAgU3RyaW5nIGRlY2ltYWxWYWx1ZXNQYXR0ZXJuID0gIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSI7CisKKyAgICAgICAgVW5pY29kZVNldCBkaWdpdHMsIGRlY2ltYWxWYWx1ZXM7CisKKyAgICAgICAgZGlnaXRzPSBuZXcgVW5pY29kZVNldChkaWdpdHNQYXR0ZXJuKTsKKyAgICAgICAgZGVjaW1hbFZhbHVlcz1uZXcgVW5pY29kZVNldChkZWNpbWFsVmFsdWVzUGF0dGVybik7CisKKworICAgICAgICBjb21wYXJlVVNldHMoZGlnaXRzLCBkZWNpbWFsVmFsdWVzLCAiWzpOZDpdIiwgIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSIsIHRydWUpOworCisKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RzIGZvciBzcGFjZSBkZXRlcm1pbmF0aW9uIGluIFVDaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGFjZXMoKQorICAgIHsKKyAgICAgICAgaW50IHNwYWNlc1tdID0gezB4MDAyMCwgMHgwMDAwYTAsIDB4MDAyMDAwLCAweDAwMjAwMSwgMHgwMDIwMDV9OworICAgICAgICBpbnQgbm9uc3BhY2VzW10gPSB7MHg2MSwgMHgwMDYyLCAweDAwNjMsIDB4MDA2NCwgMHgwMDc0fTsKKyAgICAgICAgaW50IHdoaXRlc3BhY2VzW10gPSB7MHgyMDA4LCAweDAwMjAwOSwgMHgwMDIwMGEsIDB4MDAwMDFjLCAweDAwMDAwY307CisgICAgICAgIGludCBub253aGl0ZXNwYWNlc1tdID0gezB4NjEsIDB4MDA2MiwgMHgwMDNjLCAweDAwMjgsIDB4MDAzZn07CisKKyAgICAgICAgaW50IHNpemUgPSBzcGFjZXMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1NwYWNlQ2hhcihzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBzcGFjZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIobm9uc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnNwYWNlc1tpXSkgKworICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKHdoaXRlc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgd2hpdGUgc3BhY2UgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2Uobm9ud2hpdGVzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9ud2hpdGVzcGFjZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgaGV4KG5vbnNwYWNlc1tpXSkgKyAiIGFuZCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAiIGFuZCBcXHUiICsgaGV4KG5vbndoaXRlc3BhY2VzW2ldKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVsZXdoaXRlc3BhY2VbXSA9IHsweDksIDB4ZCwgMHgyMCwgMHg4NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDBlLCAweDIwMGYsIDB4MjAyOCwgMHgyMDI5fTsKKyAgICAgICAgaW50IG5vbnJ1bGV3aGl0ZXNwYWNlW10gPSB7MHg4LCAweGUsIDB4MjEsIDB4ODYsIDB4YTAsIDB4YTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY4MCwgMHgxNjgxLCAweDE4MGUsIDB4MTgwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGLCAweDIwMDAsIDB4MjAwYSwgMHgyMDBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAsIDB4MjAyZiwgMHgyMDMwLCAweDIwNWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2MCwgMHgzMDAwLCAweDMwMDF9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShydWxld2hpdGVzcGFjZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiXFx1IiArIFV0aWxpdHkuaGV4KHJ1bGV3aGl0ZXNwYWNlW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCB0byBiZSBhIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5vbnJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKG5vbnJ1bGV3aGl0ZXNwYWNlW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJcXHUiICsgVXRpbGl0eS5oZXgobm9ucnVsZXdoaXRlc3BhY2VbaV0sIDQpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHRvIGJlIGEgbm9uIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIGRlZmluZWQgYW5kIHVuZGVmaW5lZCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmaW5lZCgpCisgICAgeworICAgICAgICBpbnQgdW5kZWZpbmVkW10gPSB7MHhmZmYxLCAweGZmZjcsIDB4ZmE2Yn07CisgICAgICAgIGludCBkZWZpbmVkW10gPSB7MHg1MjNFLCAweDAwNGY4OCwgMHgwMGZmZmR9OworCisgICAgICAgIGludCBzaXplID0gdW5kZWZpbmVkLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQodW5kZWZpbmVkW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHVuZGVmaW5lZFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0RlZmluZWQoZGVmaW5lZFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkZWZpbmVkW2ldKSArICIgZXhwZWN0ZWQgZGVmaW5lZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgYmFzZSBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjZWxsd2lkdGgKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNlKCkKKyAgICB7CisgICAgICAgIGludCBiYXNlW10gPSB7MHgwMDYxLCAweDAwMDAzMSwgMHgwMDAzZDJ9OworICAgICAgICBpbnQgbm9uYmFzZVtdID0gezB4MDAyQiwgMHgwMDAwMjAsIDB4MDAyMDNCfTsKKyAgICAgICAgaW50IHNpemUgPSBiYXNlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKG5vbmJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9uYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgYmFzZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKGJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBiYXNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgZGlnaXQgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpZ2l0cygpCisgICAgeworICAgICAgICBpbnQgZGlnaXRzW10gPSB7MHgwMDMwLCAweDAwMDY2MiwgMHgwMDBGMjMsIDB4MDAwRUQ1LCAweDAwMjE2MH07CisKKyAgICAgICAgLy9zcGVjaWFsIGNoYXJhY3RlcnMgbm90IGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlCisgICAgICAgIGludCBkaWdpdHMyW10gPSB7MHgzMDA3LCAweDAwNGUwMCwgMHgwMDRlOGMsIDB4MDA0ZTA5LCAweDAwNTZkOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGU5NCwgMHgwMDUxNmQsIDB4NGUwMywgMHgwMDUxNmIsIDB4MDA0ZTVkfTsKKyAgICAgICAgaW50IG5vbmRpZ2l0c1tdID0gezB4MDAxMCwgMHgwMDAwNDEsIDB4MDAwMTIyLCAweDAwNjhGRX07CisKKyAgICAgICAgaW50IGRpZ2l0dmFsdWVzW10gPSB7MCwgMiwgMywgNSwgMX07CisgICAgICAgIGludCBkaWdpdHZhbHVlczJbXSA9IHswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5fTsKKworICAgICAgICBpbnQgc2l6ZSAgPSBkaWdpdHMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQoZGlnaXRzW2ldKSAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZGlnaXQoZGlnaXRzW2ldKSAhPSBkaWdpdHZhbHVlc1tpXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGRpZ2l0c1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBkaWdpdCB3aXRoIHZhbHVlICIgKyBkaWdpdHZhbHVlc1tpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2l6ZSA9IG5vbmRpZ2l0cy5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQobm9uZGlnaXRzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbmRpZ2l0c1tpXSkgKyAiIGV4cGVjdGVkIG5vbmRpZ2l0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc2l6ZSA9IGRpZ2l0czIubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGRpZ2l0czJbaV0pICYmCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5kaWdpdChkaWdpdHMyW2ldKSAhPSBkaWdpdHZhbHVlczJbaV0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkaWdpdHMyW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgZGlnaXQgd2l0aCB2YWx1ZSAiICsgZGlnaXR2YWx1ZXMyW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogIFRlc3RzIGZvciBudW1lcmljIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljKCkKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZSgweDAwQkMpICE9IC0yKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAweDAwQkMgZXhwZWN0ZWQgdG8gYmUgLTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAnMCc7IGkgPCAnOSc7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBuMSA9IFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgZG91YmxlIG4yID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgaWYgKG4xICE9IG4yIHx8ICBuMSAhPSAoaSAtICcwJykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAiICsgKGNoYXIpaSArICIgZXhwZWN0ZWQgdG8gYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgKGkgLSAnMCcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gJ0EnOyBpIDwgJ0YnOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gJ0EnICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gJ0EnICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMHhGRjIxOyBpIDwgMHhGRjI2OyBpICsrKSB7CisgICAgICAgICAgICAvLyB0ZXN0aW5nIGZ1bGwgd2lkZXRoIGxhdGluIGNoYXJhY3RlcnMgQS1GCisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gMHhGRjIxICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gMHhGRjIxICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0aW5nIGhhbiBudW1iZXJzCisgICAgICAgIGludCBoYW5bXSA9IHsweDk2ZjYsIDAsIDB4NThmOSwgMSwgMHg4Y2IzLCAyLCAweDUzYzMsIDMsCisgICAgICAgICAgICAgICAgICAgICAweDgwODYsIDQsIDB4NGYwZCwgNSwgMHg5Njc4LCA2LCAweDY3ZDIsIDcsCisgICAgICAgICAgICAgICAgICAgICAweDYzNGMsIDgsIDB4NzM5NiwgOSwgMHg1MzQxLCAxMCwgMHg2MmZlLCAxMCwKKyAgICAgICAgICAgICAgICAgICAgIDB4NzY3ZSwgMTAwLCAweDRmNzAsIDEwMCwgMHg1MzQzLCAxMDAwLCAweDRlZGYsIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAweDgyNGMsIDEwMDAwLCAweDUxMDQsIDEwMDAwMDAwMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGFuLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRIYW5OdW1lcmljVmFsdWUoaGFuW2ldKSAhPSBoYW5baSArIDFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhoYW5baV0pICsgIiBleHBlY3RlZCB0byBiZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoYW5baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIHZlcnNpb24KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJzaW9uKCkKKyAgICB7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpLmVxdWFscyhWRVJTSU9OXykpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZDogIiArIFZFUlNJT05fICsgImdvdDogIiArIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SVNPQ29udHJvbCgpCisgICAgeworICAgICAgICBpbnQgY29udHJvbFtdID0gezB4MDAxYiwgMHgwMDAwOTcsIDB4MDAwMDgyfTsKKyAgICAgICAgaW50IG5vbmNvbnRyb2xbXSA9IHsweDYxLCAweDAwMDAzMSwgMHgwMDAwZTJ9OworCisgICAgICAgIGludCBzaXplID0gY29udHJvbC5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjb250cm9sW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvbnRyb2xbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKG5vbmNvbnRyb2xbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBub3QgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbigiT2sgICAgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjb250cm9sW2ldKSArICIgYW5kIDB4IiArCisgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBTdXBwbGVtZW50YXJ5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnkoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweDEwMDAwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29kZXBvaW50IFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBzdXBwbGVtZW50YXJ5Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwRkZGRjsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2RlcG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgc3VwcGxlbWVudGFyeSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBtaXJyb3JpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWlycm9yKCkKKyAgICB7CisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI4KSAmJiBVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHhiYikgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjA0NSkgJiYgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjMyYSkKKyAgICAgICAgICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI3KSAmJgorICAgICAgICAgICAgICAhVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4NjEpICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgyODQpCisgICAgICAgICAgICAgICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgzNDAwKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJpc01pcnJvcmVkKCkgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4M2MpID09IDB4M2UgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHg1ZCkgPT0gMHg1YiAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDIwOGQpID09IDB4MjA4ZSAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMTcpID09IDB4MzAxNiAmJgorCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4YmIpID09IDB4YWIgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyMjE1KSA9PSAweDI5RjUgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyOUY1KSA9PSAweDIyMTUgJiYgLyogbGFyZ2UgZGVsdGEgYmV0d2VlbiB0aGUgY29kZSBwb2ludHMgKi8KKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDJlKSA9PSAweDJlICYmCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4NmYzKSA9PSAweDZmMyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMWMpID09IDB4MzAxYyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweGE0YWIpID09IDB4YTRhYikpIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRNaXJyb3IoKSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSIpOworICAgICAgICB9CisKKyAgICAgICAgLyogdmVyaWZ5IHRoYXQgQmlkaV9NaXJyb3JpbmdfR2x5cGggcm91bmR0cmlwcyAqLworICAgICAgICBVbmljb2RlU2V0IHNldD1uZXcgVW5pY29kZVNldCgiWzpCaWRpX01pcnJvcmVkOl0iKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXI9bmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgICAgICBpbnQgc3RhcnQsIGVuZCwgYzIsIGMzOworICAgICAgICB3aGlsZShpdGVyLm5leHRSYW5nZSgpICYmIChzdGFydD1pdGVyLmNvZGVwb2ludCk+PTApIHsKKyAgICAgICAgICAgIGVuZD1pdGVyLmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBjMj1VQ2hhcmFjdGVyLmdldE1pcnJvcihzdGFydCk7CisgICAgICAgICAgICAgICAgYzM9VUNoYXJhY3Rlci5nZXRNaXJyb3IoYzIpOworICAgICAgICAgICAgICAgIGlmKGMzIT1zdGFydCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWlycm9yKCkgZG9lcyBub3Qgcm91bmR0cmlwOiBVKyIraGV4KHN0YXJ0KSsiLT5VKyIraGV4KGMyKSsiLT5VKyIraGV4KGMzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZSgrK3N0YXJ0PD1lbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmludCgpCisgICAgeworICAgICAgICBpbnQgcHJpbnRhYmxlW10gPSB7MHgwMDQyLCAweDAwMDA1ZiwgMHgwMDIwMTR9OworICAgICAgICBpbnQgbm9ucHJpbnRhYmxlW10gPSB7MHgyMDBjLCAweDAwMDA5ZiwgMHgwMDAwMWJ9OworCisgICAgICAgIGludCBzaXplID0gcHJpbnRhYmxlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNQcmludGFibGUocHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgcHJpbnRhYmxlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUobm9ucHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSBwcmludGFibGUgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiT2sgICAgXFx1IiArIGhleChwcmludGFibGVbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub25wcmludGFibGVbaV0pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYWxsIElTTyA4IGNvbnRyb2xzCisgICAgICAgIGZvciAoaW50IGNoID0gMDsgY2ggPD0gMHg5ZjsgKysgY2gpIHsKKyAgICAgICAgICAgIGlmIChjaCA9PSAweDIwKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBBU0NJSSBncmFwaGljIGNoYXJhY3RlcnMgYW5kIGNvbnRpbnVlIHdpdGggREVMCisgICAgICAgICAgICAgICAgY2ggPSAweDdmOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUoY2gpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAiIGlzIGEgSVNPIDggY29udHJvbCBjaGFyYWN0ZXIgaGVuY2Ugbm90IHByaW50YWJsZVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0IGFsbCBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVycyAqLworICAgICAgICBmb3IgKGludCBjaCA9IDB4MjA7IGNoIDw9IDB4ZmY7ICsrIGNoKSB7CisgICAgICAgICAgICBpZiAoY2ggPT0gMHg3ZikgeworICAgICAgICAgICAgICAgIGNoID0gMHhhMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ByaW50YWJsZShjaCkKKyAgICAgICAgICAgICAgICAmJiBjaCAhPSAweDAwQUQvKiBVbmljb2RlIDQuMCBjaGFuZ2VkIHRoZSBkZWZpbnRpb24gb2Ygc29mdCBoeXBoZW4gdG8gYmUgYSBDZiovKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgYSBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyBmb3IgaWRlbnRpZmllciBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SWRlbnRpZmllcigpCisgICAgeworICAgICAgICBpbnQgdW5pY29kZWlkc3RhcnRbXSA9IHsweDAyNTAsIDB4MDAwMGUyLCAweDAwMDA2MX07CisgICAgICAgIGludCBub251bmljb2RlaWRzdGFydFtdID0gezB4MjAwMCwgMHgwMDAwMGEsIDB4MDAyMDE5fTsKKyAgICAgICAgaW50IHVuaWNvZGVpZHBhcnRbXSA9IHsweDAwNWYsIDB4MDAwMDMyLCAweDAwMDA0NX07CisgICAgICAgIGludCBub251bmljb2RlaWRwYXJ0W10gPSB7MHgyMDMwLCAweDAwMDBhMywgMHgwMDAwMjB9OworICAgICAgICBpbnQgaWRpZ25vcmVbXSA9IHsweDAwMDYsIDB4MDAxMCwgMHgyMDZifTsKKyAgICAgICAgaW50IG5vbmlkaWdub3JlW10gPSB7MHgwMDc1LCAweDAwMDBhMywgMHgwMDAwNjF9OworCisgICAgICAgIGludCBzaXplID0gdW5pY29kZWlkc3RhcnQubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQodW5pY29kZWlkc3RhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBhIHVuaWNvZGUgaWRlbnRpZmllciBzdGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChub251bmljb2RlaWRzdGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgc3RhcnQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQodW5pY29kZWlkcGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleCh1bmljb2RlaWRwYXJ0W2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KG5vbnVuaWNvZGVpZHBhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9udW5pY29kZWlkcGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaWRpZ25vcmVbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWRpZ25vcmVbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBpZ25vcmFibGUgdW5pY29kZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShub25pZGlnbm9yZVtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIGlnbm9yYWJsZSB1bmljb2RlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKyAiIGFuZCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgaGV4KHVuaWNvZGVpZHBhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRwYXJ0W2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgICBoZXgoaWRpZ25vcmVbaV0pICsgIiBhbmQgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgdGhlIGNoYXJhY3RlciB0eXBlcywgZGlyZWN0aW9uLjxicj4KKyAgICAqIFRoaXMgbWV0aG9kIHJlYWRzIGluIFVuaWNvZGVEYXRhLnR4dCBmaWxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBBCisgICAgKiBkZWZhdWx0IHBhdGggaXMgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNyYyBwYXRoLCBob3dldmVyIHRoZSB1c2VyCisgICAgKiBjb3VsZCBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisgICAgKiBlLmcuIGphdmEgLURVbmljb2RlRGF0YT0iZGF0YV9kaXJlY3RvcnlfcGF0aCIKKyAgICAqIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlclRlc3QKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlRGF0YSgpCisgICAgeworICAgICAgICAvLyB0aGlzIGlzIHRoZSAyIGNoYXIgY2F0ZWdvcnkgdHlwZXMgdXNlZCBpbiB0aGUgVW5pY29kZURhdGEgZmlsZQorICAgICAgICBmaW5hbCBTdHJpbmcgVFlQRSA9CisgICAgICAgICAgICAiTHVMbEx0TG1Mb01uTWVNY05kTmxOb1pzWmxacENjQ2ZDb0NzUGRQc1BlUGNQb1NtU2NTa1NvUGlQZiI7CisKKyAgICAgICAgLy8gZGlyZWN0b3J5IHR5cGVzIHVzZWQgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyAgICAgICAgLy8gcGFkZGVkIGJ5IHNwYWNlcyB0byBtYWtlIGVhY2ggdHlwZSBzaXplIDQKKyAgICAgICAgZmluYWwgU3RyaW5nIERJUiA9CisgICAgICAgICAgICAiTCAgIFIgICBFTiAgRVMgIEVUICBBTiAgQ1MgIEIgICBTICAgV1MgIE9OICBMUkUgTFJPIEFMICBSTEUgUkxPIFBERiBOU00gQk4gICI7CisKKyAgICAgICAgZmluYWwgaW50IExBU1RVTklDT0RFQ0hBUiA9IDB4RkZGRDsKKyAgICAgICAgaW50IGNoID0gMCwKKyAgICAgICAgICAgIGluZGV4ID0gMCwKKyAgICAgICAgICAgIHR5cGUgPSAwLAorICAgICAgICAgICAgZGlyID0gMDsKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUvVW5pY29kZURhdGEudHh0Iik7CisgICAgICAgICAgICBpbnQgbnVtRXJyb3JzID0gMDsKKworICAgICAgICAgICAgd2hpbGUgKGNoICE9IExBU1RVTklDT0RFQ0hBUikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYocy5sZW5ndGgoKTw0IHx8IHMuc3RhcnRzV2l0aCgiIyIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBnZXRpbmcgdGhlIHVuaWNvZGUgY2hhcmFjdGVyLCBpdHMgdHlwZSBhbmQgaXRzIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgIGNoID0gSW50ZWdlci5wYXJzZUludChzLnN1YnN0cmluZygwLCA0KSwgMTYpOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7JywgNSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQgPSBzLnN1YnN0cmluZyhpbmRleCArIDEsIGluZGV4ICsgMyk7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gNDsKKyAgICAgICAgICAgICAgICBpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnQgY2MgPSBJbnRlZ2VyLnBhcnNlSW50KHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCkpOworICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgaSArKykgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4ICsgMSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNraXBwaW5nIHRvIHRoZSAxMXRoIGZpZWxkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlzbyBjb21tZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlzb2NvbW1lbnQgPSBzLnN1YnN0cmluZyhvbGRpbmRleCwgaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIHVwcGVyY2FzZQorICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyB1cHBlciA9IHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gbG93ZXJjYXNlCisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvd2VyID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyB0aXRsZWNhc2UgbGFzdCBlbGVtZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gcy5zdWJzdHJpbmcob2xkaW5kZXgpOworCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgY2F0ZWdvcnkKKyAgICAgICAgICAgICAgICAvLyB3ZSBvdmVycmlkZSB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBvZiBzb21lIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgdHlwZSA9IFRZUEUuaW5kZXhPZih0KTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA8IDApCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICh0eXBlID4+IDEpICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNoKSAhPSB0eXBlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldEludFByb3BlcnR5VmFsdWUoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgIT0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRNYXNrKGdldFR5cGUoY2gpKSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpICE9IGNjKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIGNvbWJpbmluZyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xhc3MgIiArIGNjKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgaWYgKGQubGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgZCA9IGQgKyAiICAgIjsKKworICAgICAgICAgICAgICAgIGRpciA9IERJUi5pbmRleE9mKGQpID4+IDI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGNoKSAhPSBkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbiAiICsgZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbihjaCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBieXRlIGJkaXIgPSAoYnl0ZSlkaXI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uYWxpdHkoY2gpICE9IGJkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbmFsaXR5ICIgKyBiZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbmFsaXR5KGNoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgaXNvIGNvbW1lbnQKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tZW50ID0gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGNoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghY29tbWVudC5lcXVhbHMoaXNvY29tbWVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGlzbyBjb21tZW50ICIgKyBpc29jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZS5nZXRNZXNzYWdlKCkuaW5kZXhPZigidW5hbWVzLmljdSIpID49IDApeworICAgICAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCB0ZW1wY2hhciA9IGNoOworICAgICAgICAgICAgICAgIGlmICh1cHBlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBJbnRlZ2VyLnBhcnNlSW50KHVwcGVyLCAxNik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSAhPSB0ZW1wY2hhcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgVXRpbGl0eS5oZXgoY2gsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHVwcGVyY2FzZSBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh0ZW1wY2hhciwgNCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBjaDsKKyAgICAgICAgICAgICAgICBpZiAobG93ZXIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gSW50ZWdlci5wYXJzZUludChsb3dlciwgMTYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkgIT0gdGVtcGNoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIFV0aWxpdHkuaGV4KGNoLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCBsb3dlcmNhc2UgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodGVtcGNoYXIsIDQpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gY2g7CisgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wY2hhciA9IEludGVnZXIucGFyc2VJbnQodGl0bGUsIDE2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoY2gpICE9IHRlbXBjaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgdGl0bGVjYXNlIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHRlbXBjaGFyLCA0KSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICBpZihudW1FcnJvcnMgPiAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5vZigweDAwNDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQkFTSUNfTEFUSU4KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZSgweDQxLCBVUHJvcGVydHkuQkxPQ0spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5CQVNJQ19MQVRJTi5nZXRJRCgpKSB7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoXFx1MDA0MSkgcHJvcGVydHkgZmFpbGVkISAiCisgICAgICAgICAgICAgICAgICAgICsgIkV4cGVjdGVkIDogIgorICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJBU0lDX0xBVElOLmdldElEKCkgKyAiIGdvdCAiCisgICAgICAgICAgICAgICAgICAgICsgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoMHgwMDQxKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzYW5pdHkgY2hlY2sgb24gcmVwZWF0ZWQgcHJvcGVydGllcworICAgICAgICBmb3IgKGNoID0gMHhmZmZlOyBjaCA8PSAweDEwZmZmZjspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAocmV0dXJucyAiCisgICAgICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXJDYXRlZ29yeS50b1N0cmluZyhVQ2hhcmFjdGVyLmdldFR5cGUoY2gpKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChjaCAmIDB4ZmZmZikgPT0gMHhmZmZlKSB7CisgICAgICAgICAgICAgICAgKysgY2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaCArPSAweGZmZmY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHRoYXQgUFVBIGlzIG5vdCAidW5hc3NpZ25lZCIKKyAgICAgICAgZm9yKGNoID0gMHhlMDAwOyBjaCA8PSAweDEwZmZmZDspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldFR5cGUoXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBVQSBvdmVycmlkZTogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGNoLCA0KSArICIpPSIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA9PSAweGY4ZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IDB4ZjAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjaCA9PSAweGZmZmZkKSB7CisgICAgICAgICAgICAgICAgY2ggPSAweDEwMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICsrIGNoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAqIFRlc3QgZm9yIHRoZSBjaGFyYWN0ZXIgbmFtZXMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lcygpCisgICAgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVUNoYXJhY3Rlck5hbWUuZ2V0SW5zdGFuY2UoKS5nZXRNYXhDaGFyTmFtZUxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbmd0aCA8IDgzKSB7IC8vIFVuaWNvZGUgMy4yIG1heCBjaGFyIG5hbWUgbGVuZ3RoCisgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoICsgIiBpcyB0b28gc2hvcnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICMjIyBUT0RPIHNhbWUgdGVzdHMgZm9yIG1heCBJU08gY29tbWVudCBsZW5ndGggYXMgZm9yIG1heCBuYW1lIGxlbmd0aAorCisgICAgICAgICAgICBpbnQgY1tdID0gezB4MDA2MSwgICAgICAgICAgICAgICAgLy9MQVRJTiBTTUFMTCBMRVRURVIgQQorICAgICAgICAgICAgICAgICAgICAgICAweDAwMDI4NCwgICAgICAgICAgICAgIC8vTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSworICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQwMSwgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTM0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdmZWQsICAgICAgICAgICAgICAvL0NKSyBVTklGSUVEIElERU9HUkFQSC03RkVECisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYzAwLCAgICAgICAgICAgICAgLy9IQU5HVUwgU1lMTEFCTEUgR0EKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ3YTMsICAgICAgICAgICAgICAvL0hBTkdVTCBTWUxMQUJMRSBISUgKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4MDAsIDB4MDBkYzAwLCAgICAvL0xJTkVBUiBCIFNZTExBQkxFIEIwMDggQQorICAgICAgICAgICAgICAgICAgICAgICAweGZmMDgsICAgICAgICAgICAgICAgIC8vRlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVMKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZmZTUsICAgICAgICAgICAgICAvL0ZVTExXSURUSCBZRU4gU0lHTgorICAgICAgICAgICAgICAgICAgICAgICAweDAwZmZmZiwgICAgICAgICAgICAgIC8vbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAweDAwMjM0NTYgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2CisgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBTdHJpbmcgbmFtZVtdID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgR0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEhJSCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBZRU4gU0lHTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nIG9sZG5hbWVbXSA9IHsiIiwgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0siLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgIiIsICIiLCAiIiwgIkZVTExXSURUSCBPUEVOSU5HIFBBUkVOVEhFU0lTIiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsICIifTsKKyAgICAgICAgICAgIFN0cmluZyBleHRlbmRlZG5hbWVbXSA9IHsiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0UgQU5EIEhPT0siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0zNDAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEdBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgSElIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bGVhZCBzdXJyb2dhdGUtRDgwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0cmFpbCBzdXJyb2dhdGUtREMwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR04iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxub25jaGFyYWN0ZXItRkZGRj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiJ9OworCisgICAgICAgICAgICBpbnQgc2l6ZSA9IGMubGVuZ3RoOworICAgICAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgICAgIGludCB1YzsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG1vZGVybiBVbmljb2RlIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXROYW1lKGNbaV0pOworICAgICAgICAgICAgICAgIGlmICgoc3RyID09IG51bGwgJiYgbmFtZVtpXS5sZW5ndGgoKSA+IDApIHx8CisgICAgICAgICAgICAgICAgICAgIChzdHIgIT0gbnVsbCAmJiAhc3RyLmVxdWFscyhuYW1lW2ldKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyAxLjAgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZQorICAgICAgICAgICAgICAgIHN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChjW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoKHN0ciA9PSBudWxsICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgPiAwKSB8fAorICAgICAgICAgICAgICAgICAgICAoc3RyICE9IG51bGwgJiYgIXN0ci5lcXVhbHMob2xkbmFtZVtpXSkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgMS4wIG5hbWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGV4dGVuZGVkIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKHN0ciA9PSBudWxsIHx8ICFzdHIuZXF1YWxzKGV4dGVuZGVkbmFtZVtpXSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBleHRlbmRlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZGVkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHJldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSBtb2Rlcm4gbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbU5hbWUobmFtZVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKHVjICE9IGNbaV0gJiYgbmFtZVtpXS5sZW5ndGgoKSAhPSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIG5hbWVbaV0gKyAiIGV4cGVjdGVkIGNoYXJhY3RlciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4KGNbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy9yZXRyaWV2aW5nIHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gMS4wIG5hbWUKKyAgICAgICAgICAgICAgICB1YyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lMV8wKG9sZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgIT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBvbGRuYW1lW2ldICsgIiBleHBlY3RlZCAxLjAgY2hhcmFjdGVyIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBoZXgoY1tpXSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvL3JldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShleHRlbmRlZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIGkgIT0gMCAmJiAoaSA9PSAxIHx8IGkgPT0gNikpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgZXh0ZW5kZWRuYW1lW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBleHRlbmRlZCBjaGFyYWN0ZXIgXFx1IiArIGhleChjW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGVzdCBnZXROYW1lIHdvcmtzIHdpdGggbWl4ZWQtY2FzZSBuYW1lcyAobmV3IGluIDIuMCkKKyAgICAgICAgICAgIGlmICgweDYxICE9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKCJMQVRpbiBzbUFMbCBsZXRURVIgQSIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICdMQVRpbiBzbUFMbCBsZXRURVIgQScgc2hvdWxkIHJlc3VsdCBpbiBjaGFyYWN0ZXIgIgorICAgICAgICAgICAgICAgICAgICAgICsgIlUrMDA2MSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPj0gNSkgeworICAgICAgICAgICAgICAgIC8vIGV4dHJhIHRlc3RpbmcgZGlmZmVyZW50IGZyb20gaWN1CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLmdldE5hbWUoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHIgIT0gbnVsbCAmJiBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZShzdHIpICE9IGkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiICIgKyBzdHIgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXRyaWV2YWwgb2YgbmFtZSBhbmQgdmljZSB2ZXJzYSIgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUZXN0IGdldENoYXJOYW1lQ2hhcmFjdGVycworICAgICAgICAgICAgaWYgKGdldEluY2x1c2lvbigpID49IDEwKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXBbXSA9IG5ldyBib29sZWFuWzI1Nl07CisKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KDEsIDApOyAvLyBlbXB0eSBzZXQKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGR1bWIgPSBuZXcgVW5pY29kZVNldCgxLCAwKTsgLy8gZW1wdHkgc2V0CisKKyAgICAgICAgICAgICAgICAvLyB1cHJ2X2dldENoYXJOYW1lQ2hhcmFjdGVycygpIHdpbGwgbGlrZWx5IHJldHVybiBtb3JlIGxvd2VyY2FzZQorICAgICAgICAgICAgICAgIC8vIGxldHRlcnMgdGhhbiBhY3R1YWwgY2hhcmFjdGVyIG5hbWVzIGNvbnRhaW4gYmVjYXVzZQorICAgICAgICAgICAgICAgIC8vIGl0IGluY2x1ZGVzIGFsbCB0aGUgY2hhcmFjdGVycyBpbiBsb3dlcmNhc2VkIG5hbWVzIG9mCisgICAgICAgICAgICAgICAgLy8gZ2VuZXJhbCBjYXRlZ29yaWVzLCBmb3IgdGhlIGZ1bGwgcG9zc2libGUgc2V0IG9mIGV4dGVuZGVkIG5hbWVzLgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKHNldCk7CisKKyAgICAgICAgICAgICAgICAvLyBidWlsZCBzZXQgdGhlIGR1bWIgKGJ1dCBzdXJlLWZpcmUpIHdheQorICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKG1hcCwgZmFsc2UpOworCisgICAgICAgICAgICAgICAgaW50IG1heExlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8IDB4MTEwMDAwOyArKyBjcCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGNwKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IG4ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aCA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gbi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcFtjaCAmIDB4ZmZdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtYi5hZGQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtjaCAmIDB4ZmZdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxlbmd0aCA9IFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICE9IG1heExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkaWZmZXJzIGZyb20gdGhlIG1heGltdW0gbGVuZ3RoICIgKyBtYXhMZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG9mIGFsbCBleHRlbmRlZCBuYW1lcyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhlIHNldHMuICBXaGVyZSBpcyBteSB1c2V0X2VxdWFscz8hIQorICAgICAgICAgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoaSkgIT0gZHVtYi5jb250YWlucyhpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDB4NjEgPD0gaSAmJiBpIDw9IDB4N2EgLy8gYS16CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2V0LmNvbnRhaW5zKGkpICYmICFkdW1iLmNvbnRhaW5zKGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIGxvd2VyY2FzZSBhLXogdGhhdCBhcmUgaW4gc2V0IGJ1dCBub3QgaW4gZHVtYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybjEgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuMiA9IGR1bWIudG9QYXR0ZXJuKHRydWUpOworCisgICAgICAgICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKCkgcmV0dXJuZWQgIiArIHBhdHRlcm4xCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAiICsgcGF0dGVybjIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICh0b28gbWFueSBsb3dlcmNhc2UgYS16IGFyZSBvaykiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGdldENoYXJOYW1lQ2hhcmFjdGVycygpIHJldHVybmVkICIgKyBwYXR0ZXJuMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW1wcm92ZSBjb2RlIGNvdmVyYWdlCisgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJMQVRJTiBTTUFMTCBMRVRURVIgQXxMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMXxDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRHxIQU5HVUwgU1lMTEFCTEUgR0F8IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhBTkdVTCBTWUxMQUJMRSBISUh8TElORUFSIEIgU1lMTEFCTEUgQjAwOCBBfEZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR058IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm51bGx8IisgLy8gZ2V0TmFtZSByZXR1cm5zIG51bGwgYmVjYXVzZSAweEZGRkYgZG9lcyBub3QgaGF2ZSBhIG5hbWUsIGJ1dCBoYXMgYW4gZXh0ZW5kZWQgbmFtZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiI7CisgICAgICAgICAgIFN0cmluZyBzZXBhcmF0b3I9ICJ8IjsKKyAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IFV0aWxpdHkudmFsdWVPZihjKTsKKyAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVDaGFyYWN0ZXIuZ2V0TmFtZShzb3VyY2UsIHNlcGFyYXRvcik7CisgICAgICAgICAgIGlmKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROYW1lIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCByZXN1bHQuXG5cdCBFeHBlY3RlZDogIisgZXhwZWN0ZWQrIlxuXHQgR290OiAiKyByZXN1bHQpOworICAgICAgICAgICB9CisKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUuZ2V0TWVzc2FnZSgpLmluZGV4T2YoInVuYW1lcy5pY3UiKSA+PSAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworCisgICAgLyoqCisgICAgKiBUZXN0aW5nIG5hbWUgaXRlcmF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZUl0ZXJhdGlvbigpdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBvbGQgICAgID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgICAgLy8gdGVzdGluZyBzdWJyYW5nZQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoLTEwLCAtNSk7CisgICAgICAgICAgICBpZiAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsLCBleHBlY3RlZCBpdGVyYXRvciB0byByZXR1cm4gZmFsc2Ugd2hlbiByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMTAwMDAsIDB4MTExMTExKTsKKyAgICAgICAgICAgIGlmIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiBmYWxzZSB3aGVuIHJhbmdlIGlzIHNldCBvdXRzaWRlIHRoZSBtZWFuaW5nZnVsIHJhbmdlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKDUwLCAxMCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGVuY291bnRlcmVkIGludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKC0xMCwgMTApOworICAgICAgICAgICAgaWYgKCFpdGVyYXRvci5uZXh0KGVsZW1lbnQpIHx8IGVsZW1lbnQuaW50ZWdlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAwIHdoZW4gcmFuZ2Ugc3RhcnQgbGltaXQgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMEZGRkUsIDB4MjAwMDAwKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgbGFzdCA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0ICE9IDB4MTBGRkZGKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAweDEwRkZGRiB3aGVuIHJhbmdlIGVuZCBsaW1pdCBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgweEYsIDB4NDUpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyIDw9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBsZXNzIGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgdGhhbiBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikuZXF1YWxzKGVsZW1lbnQudmFsdWUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDB4MjApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCByZXNldCBpbiBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgwLCAweDExMDAwMCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmludGVnZXIgIT0gMCAmJiBlbGVtZW50LmludGVnZXIgPD0gb2xkLmludGVnZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCByZXR1cm5lZCBhIGxlc3MgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiB0aGFuIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoZWxlbWVudC52YWx1ZSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG9lcyBub3QgaGF2ZSB0aGUgZXhwZWN0ZWQgbmFtZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikgKyAiIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiBoYXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkLmludGVnZXIgPSBlbGVtZW50LmludGVnZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpOworICAgICAgICAgICAgb2xkLmludGVnZXIgPSAwOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDAgJiYgZWxlbWVudC5pbnRlZ2VyICE9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRpZmZlcmVudCBmcm9tIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgbmFtZSBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZC5pbnRlZ2VyKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaW50ZWdlciAhPSAwICYmIGVsZW1lbnQuaW50ZWdlciA8PSBvbGQuaW50ZWdlcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IHJldHVybmVkIGEgbGVzcyBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAiIHRoYW4gXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUuZXF1YWxzKFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW50ZWdlcikpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBuYW1lIGNhbm5vdCBiZSBudWxsIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUxXzAoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSArICIgYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgaGFzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAvLyAhISEgd291bGRuJ3QgcHJlZmxpZ2h0aW5nIGJlIHNpbXBsZXI/ICBUaGlzIGxvb2tzIGxpa2UKKyAgICAgICAgICAgIC8vIGl0IGlzIGVmZmVjdGl2ZWx5IGJlIGRvaW5nIHRoYXQuICBJdCBzZWVtcyB0aGF0IGZvciBldmVyeQorICAgICAgICAgICAgLy8gdHJ1ZSBlcnJvciB0aGUgY29kZSB3aWxsIGNhbGwgZXJybG4sIHdoaWNoIHdpbGwgdGhyb3cgdGhlIGVycm9yLCB3aGljaAorICAgICAgICAgICAgLy8gdGhpcyB3aWxsIGNhdGNoLCB3aGljaCB0aGlzIHdpbGwgdGhlbiByZXRocm93IHRoZSBlcnJvci4gIEp1c3Qgc2VlbXMKKyAgICAgICAgICAgIC8vIGN1bWJlcnNvbWUuCisgICAgICAgICAgICBpZihlLmdldE1lc3NhZ2UoKS5pbmRleE9mKCJ1bmFtZXMuaWN1IikgPj0gMCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCB1bmFtZXMuaWN1Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyB0aGUgZm9yIGlsbGVnYWwgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdElzTGVnYWwoKQorICAgIHsKKyAgICAgICAgaW50IGlsbGVnYWxbXSA9IHsweEZGRkUsIDB4MDBGRkZGLCAweDAwNUZGRkUsIDB4MDA1RkZGRiwgMHgwMDEwRkZGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZGLCAweDExMDAwMCwgMHgwMEZERDAsIDB4MDBGRERGLCAweDAwRkRFMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkRFRiwgMHhEODAwLCAweERDMDAsIC0xfTsKKyAgICAgICAgaW50IGxlZ2FsW10gPSB7MHg2MSwgMHgwMEZGRkQsIDB4MDAxMDAwMCwgMHgwMDVGRkZELCAweDAwNjAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMEZGRkQsIDB4RkRDRiwgMHgwMEZERjB9OworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgaWxsZWdhbC5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKGlsbGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWxsZWdhbFtjb3VudF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaXMgbm90IGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwobGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobGVnYWxbY291bnRdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlzIGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgaWxsZWdhbFN0ciA9ICJUaGlzIGlzIGFuIGlsbGVnYWwgc3RyaW5nICI7CisgICAgICAgIFN0cmluZyBsZWdhbFN0ciA9ICJUaGlzIGlzIGEgbGVnYWwgc3RyaW5nICI7CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGlsbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoaWxsZWdhbFN0cik7CisgICAgICAgICAgICBpZiAoaWxsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilpbGxlZ2FsW2NvdW50XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGlsbGVnYWxbY291bnRdKTsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoaWxsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKHN0ci50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBoZXgoc3RyLnRvU3RyaW5nKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBhIGxlZ2FsIHN0cmluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGxlZ2FsLmxlbmd0aDsgY291bnQgKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKGxlZ2FsU3RyKTsKKyAgICAgICAgICAgIGlmIChsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChzdHIudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgaGV4KHN0ci50b1N0cmluZygpKSArICIgaXMgYSBsZWdhbCBzdHJpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZ2V0Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludCgpCisgICAgeworICAgICAgICBpbnQgY2ggPSAweDEwMDAwOworICAgICAgICBmb3IgKGNoYXIgaSA9IDB4RDgwMDsgaSA8IDB4REMwMDsgaSArKykgeworICAgICAgICAgICAgZm9yIChjaGFyIGogPSAweERDMDA7IGogPD0gMHhERkZGOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KGksIGopICE9IGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGNvZGVwb2ludCBmb3Igc3Vycm9nYXRlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVycyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpMHhEN2ZmLCAoY2hhcikweERDMDApOworICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBmb3JtIGEgIiArCisgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgMHhGRkZGOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDB4RkZGRSB8fAorICAgICAgICAgICAgICAgIChpID49IDB4RDgwMCAmJiBpIDw9IDB4REZGRikgfHwKKyAgICAgICAgICAgICAgICAoaSA+PSAweEZERDAgJiYgaSA8PSAweEZERUYpKSB7CisgICAgICAgICAgICAgICAgLy8gbm90IGEgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3QgYSBjaGFyYWN0ZXIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQSB2YWxpZCBjb2RlcG9pbnQgc2hvdWxkIHJldHVybiBpdHNlbGYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRoaXMgbWV0aG9kIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gdGhlIHR5cGUgdGVzdCBpbiBpY3U0Yy4KKyAgICAqIEJ1dCBjb21iaW5lZCB3aXRoIHRlc3RVbmljb2RlRGF0YSwgdGhleSBiYXNpY2FsbHkgZG8gdGhlIHNhbWUgdGhpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRlcmF0aW9uKCkKKyAgICB7CisgICAgICAgIGludCBsaW1pdCAgICAgPSAwOworICAgICAgICBpbnQgcHJldnR5cGUgID0gLTE7CisgICAgICAgIGludCBzaG91bGRCZURpcjsKKyAgICAgICAgaW50IHRlc3RbXVtdPXt7MHg0MSwgVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4MzA4LCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSS30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhmZmZlLCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFU30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlMDA0MSwgVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlZmZmZiwgVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUR9fTsKKworICAgICAgICAvLyBkZWZhdWx0IEJpZGkgY2xhc3NlcyBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAgICBpbnQgZGVmYXVsdEJpZGlbXVtdPXt7IDB4MDU5MCwgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUIH0sCisgICAgICAgICAgICB7IDB4MDYwMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDdDMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA5MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZCMUQsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweEZCNTAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZFMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhGRTcwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQgfSwKKyAgICAgICAgICAgIHsgMHhGRjAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MTA4MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweDExMDAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMTAwMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9fTsKKworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydCAhPSBsaW1pdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVQ2hhcmFjdGVySXRlcmF0aW9uIGZhaWxlZDogUmFuZ2VzIG5vdCBjb250aW51b3VzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbWl0ID0gcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBwcmV2dHlwZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUeXBlIG9mIHRoZSBuZXh0IHNldCBvZiBlbnVtZXJhdGlvbiBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2dHlwZSA9IHJlc3VsdC52YWx1ZTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdC5zdGFydDsgaSA8IGxpbWl0OyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wdHlwZSAhPSByZXN1bHQudmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVDaGFyYWN0ZXJJdGVyYXRpb24gZmFpbGVkOiBDb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgc2hvdWxkIGJlIG9mIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcHR5cGUgKyAiIG5vdCAiICsgcmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0IDw9IHRlc3RbaV1bMF0gJiYgdGVzdFtpXVswXSA8IHJlc3VsdC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IHRlc3RbaV1bMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0VHlwZXMoKSBoYXMgcmFuZ2UgWyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIl0gd2l0aCB0eXBlICIgKyByZXN1bHQudmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIFsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVswXSkgKyAiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVsxXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBMaW5lQnJlYWsudHh0IHNwZWNpZmllczoKKyAgICAgICAgICAgIC8vICAgIyAgLSBBc3NpZ25lZCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgZXhwbGljaXRseSBhcmUgZ2l2ZW4gdGhlIHZhbHVlCisgICAgICAgICAgICAvLyAgICMgICAgIkFMIi4KKyAgICAgICAgICAgIC8vICAgIyAgLSBVbmFzc2lnbmVkIGNoYXJhY3RlcnMgYXJlIGdpdmVuIHRoZSB2YWx1ZSAiWFgiLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFBVQSBjaGFyYWN0ZXJzIGFyZSBsaXN0ZWQgZXhwbGljaXRseSB3aXRoICJYWCIuCisgICAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBubyBhc3NpZ25lZCBjaGFyYWN0ZXIgaGFzICJYWCIuCisgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVECisgICAgICAgICAgICAgICAgJiYgcmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeworICAgICAgICAgICAgICAgIGludCBjID0gcmVzdWx0LnN0YXJ0OworICAgICAgICAgICAgICAgIHdoaWxlIChjIDwgcmVzdWx0LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgwID09IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkxJTkVfQlJFQUspKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiZXJyb3IgVVByb3BlcnR5LkxJTkVfQlJFQUsoYXNzaWduZWQgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjLCA0KSArICIpPVhYIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysgYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBWZXJpZnkgZGVmYXVsdCBCaWRpIGNsYXNzZXMuCisgICAgICAgICAgICAgKiBGb3IgcmVjZW50IFVuaWNvZGUgdmVyc2lvbnMsIHNlZSBVQ0QuaHRtbC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgVW5pY29kZSB2ZXJzaW9uczoKKyAgICAgICAgICAgICAqIFNlZSB0YWJsZSAzLTcgIkJpZGlyZWN0aW9uYWwgQ2hhcmFjdGVyIFR5cGVzIiBpbiBVQVggIzkuCisgICAgICAgICAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHI5LworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFNlZSBhbHNvIERlcml2ZWRCaWRpQ2xhc3MudHh0IGZvciBDbiBjb2RlIHBvaW50cyEKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBVbmljb2RlIDQuMC4xL1B1YmxpYyBSZXZpZXcgSXNzdWUgIzI4IChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCkKKyAgICAgICAgICAgICAqIGNoYW5nZWQgc29tZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgICAgICAgICAqIEluIHBhcnRpY3VsYXIsIG5vbi1jaGFyYWN0ZXJzIGFuZCB1bmFzc2lnbmVkIERlZmF1bHQgSWdub3JhYmxlIENvZGUgUG9pbnRzCisgICAgICAgICAgICAgKiBjaGFuZ2UgZnJvbSBMIHRvIEJOLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFVDRC5odG1sIHZlcnNpb24gNC4wLjEgZG9lcyBub3QgeWV0IHJlZmxlY3QgdGhlc2UgY2hhbmdlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRAorICAgICAgICAgICAgICAgIHx8IHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHJlc3VsdC5zdGFydDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHRCaWRpLmxlbmd0aCAmJiBjIDwgcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgICAgICAgICAgKysgaSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IGRlZmF1bHRCaWRpW2ldWzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYyA8IHJlc3VsdC5saW1pdCAmJiBjIDwgZGVmYXVsdEJpZGlbaV1bMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGNoYW5nZSB0byBwdWJsaWMgVUNoYXJhY3Rlci5pc05vbkNoYXJhY3RlcihjKSBvbmNlIGl0J3MgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyVXRpbGl0eS5pc05vbkNoYXJhY3RlcihjKSB8fCBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZURpcj1VQ2hhcmFjdGVyLkJPVU5EQVJZX05FVVRSQUw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVEaXI9ZGVmYXVsdEJpZGlbaV1bMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGMpICE9IHNob3VsZEJlRGlyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5CSURJX0NMQVNTKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBzaG91bGRCZURpcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldERpcmVjdGlvbih1bmFzc2lnbmVkL1BVQSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2hvdWxkQmVEaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArKyBjOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSA9PSBmYWxzZSB8fCByZXN1bHQuc3RhcnQgIT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXN1bHQgIiArIHJlc3VsdC5zdGFydCk7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlckl0ZXJhdGlvbiByZXNldCgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBnZXRBZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QWdlKCkKKyAgICB7CisgICAgICAgIGludCBhZ2VzW10gPSB7MHg0MSwgICAgMSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweGZmZmYsICAxLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjBhYiwgIDIsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgyZmZmZSwgMiwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDIwYWMsICAyLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4ZmIxZCwgIDMsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgzZjQsICAgMywgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDEwMzAwLCAzLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjIwLCAgIDMsIDIsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHhmZjYwLCAgMywgMiwgMCwgMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWdlcy5sZW5ndGg7IGkgKz0gNSkgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gYWdlID0gVUNoYXJhY3Rlci5nZXRBZ2UoYWdlc1tpXSk7CisgICAgICAgICAgICBpZiAoYWdlICE9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGFnZXNbaSArIDFdLCBhZ2VzW2kgKyAyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgM10sIGFnZXNbaSArIDRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0QWdlKFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGFnZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiKSA9PSAiICsgYWdlLnRvU3RyaW5nKCkgKyAiIGluc3RlYWQgb2YgIiArCisgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgMV0gKyAiLiIgKyBhZ2VzW2kgKyAyXSArICIuIiArIGFnZXNbaSArIDNdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBhZ2VzW2kgKyA0XSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGJpbmFyeSBub24gY29yZSBwcm9wZXJ0aWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkZGl0aW9uYWxQcm9wZXJ0aWVzKCkKKyAgICB7CisgICAgICAgIC8vIHRlc3QgZGF0YSBmb3IgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBpbnQgcHJvcHNbXVtdID0geyAvLyBjb2RlIHBvaW50LCBwcm9wZXJ0eQorICAgICAgICAgICAgeyAweDA2MjcsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MTAzNGEsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyOCwgVVByb3BlcnR5LkFMUEhBQkVUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwNjYsIFVQcm9wZXJ0eS5BU0NJSV9IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDY3LCBVUHJvcGVydHkuQVNDSUlfSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMDJjLCBVUHJvcGVydHkuQklESV9DT05UUk9MLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyZiwgVVByb3BlcnR5LkJJRElfQ09OVFJPTCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAzYywgVVByb3BlcnR5LkJJRElfTUlSUk9SRUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDNkLCBVUHJvcGVydHkuQklESV9NSVJST1JFRCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDU4YSwgVVByb3BlcnR5LkRBU0gsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdlLCBVUHJvcGVydHkuREFTSCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGM0ZCwgVVByb3BlcnR5LkRJQUNSSVRJQywgMSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5ESUFDUklUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDBlNDYsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4ZmIxZCwgVVByb3BlcnR5LkZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxNWYsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMSB9LAorICAgICAgICAgICAgeyAweGZiMWUsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTEwYSwgVVByb3BlcnR5Lk5GRF9JTkVSVCwgMSB9LCAgICAgIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5ORkRfSU5FUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5ORktEX0lORVJULCAxIH0sICAgICAvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHgxZDc5ZCwgVVByb3BlcnR5Lk5GS0RfSU5FUlQsIDAgfSwgICAvKiBtYXRoIGNvbXBhdCB2ZXJzaW9uIG9mIHhpICovCisKKyAgICAgICAgICAgIHsgMHgwMDIxLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogISAqLworICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEgKi8KKyAgICAgICAgICAgIHsgMHgwMGU0LCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBhLXVtbGF1dCAqLworICAgICAgICAgICAgeyAweDAxMDIsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEtYnJldmUgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBIYW5ndWwgTFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFkLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MWQ3OWQsIFVQcm9wZXJ0eS5ORktDX0lORVJULCAwIH0sICAgLyogbWF0aCBjb21wYXQgdmVyc2lvbiBvZiB4aSAqLworICAgICAgICAgICAgeyAweDJhNmQ2LCBVUHJvcGVydHkuTkZLQ19JTkVSVCwgMSB9LCAgICAvKiBIYW4sIGxhc3Qgb2YgQ0pLIGV4dC4gQiAqLworCisgICAgICAgICAgICB7IDB4MDBlNCwgVVByb3BlcnR5LlNFR01FTlRfU1RBUlRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwKKyAgICAgICAgICAgIHsgMHgxMTBhLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEhhbmd1bCBMViAqLworICAgICAgICAgICAgeyAweGFjMWQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDEgfSwgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MDA0NCwgVVByb3BlcnR5LkhFWF9ESUdJVCwgMSB9LAorICAgICAgICAgICAgeyAweGZmNDYsIFVQcm9wZXJ0eS5IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ3LCBVUHJvcGVydHkuSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgzMGZiLCBVUHJvcGVydHkuSFlQSEVOLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmU1OCwgVVByb3BlcnR5LkhZUEhFTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MjE3MiwgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDMwNywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA1YywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMTcyLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdhLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDM5LCBVUHJvcGVydHkuSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDRkYjUsIFVQcm9wZXJ0eS5JREVPR1JBUEhJQywgMSB9LAorICAgICAgICAgICAgeyAweDJmOTk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyZjk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDIwMGMsIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0wsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMDI5LCBVUHJvcGVydHkuSk9JTl9DT05UUk9MLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdiYywgVVByb3BlcnR5LkxPV0VSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5MT1dFUkNBU0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDMwLCBVUHJvcGVydHkuTE9XRVJDQVNFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdhOSwgVVByb3BlcnR5Lk1BVEgsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMTM1LCBVUHJvcGVydHkuTUFUSCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjIsIFVQcm9wZXJ0eS5NQVRILCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhmZGUxLCBVUHJvcGVydHkuTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweDEwZmZmZCwgVVByb3BlcnR5Lk5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5ULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDIyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhmZjYyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhkODQwLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDAgfSwKKworICAgICAgICAgICAgeyAweDA2MWYsIFVQcm9wZXJ0eS5URVJNSU5BTF9QVU5DVFVBVElPTiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMDNmLCBVUHJvcGVydHkuVEVSTUlOQUxfUFVOQ1RVQVRJT04sIDAgfSwKKworICAgICAgICAgICAgeyAweDFkNDRhLCBVUHJvcGVydHkuVVBQRVJDQVNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MjE2MiwgVVByb3BlcnR5LlVQUEVSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5VUFBFUkNBU0UsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMmYsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDMwMDEsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDcxMSwgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMSB9LAorICAgICAgICAgICAgeyAweDFkMWFhLCBVUHJvcGVydHkuWElEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA3YywgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTZlZSwgVVByb3BlcnR5LlhJRF9TVEFSVCwgMSB9LAorICAgICAgICAgICAgeyAweDIzNDU2LCBVUHJvcGVydHkuWElEX1NUQVJULCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxYWEsIFVQcm9wZXJ0eS5YSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFZlcnNpb24gYnJlYWs6CisgICAgICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIG9ubHkgc3VwcG9ydGVkIHN0YXJ0aW5nIHdpdGggdGhlCisgICAgICAgICAgICAgKiBVbmljb2RlIHZlcnNpb24gaW5kaWNhdGVkIGluIHRoZSBzZWNvbmQgZmllbGQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHsgLTEsIDB4MzIwLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxODBjLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDIsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5ULCAxIH0sCisgICAgICAgICAgICB7IDB4MTgwMSwgVVByb3BlcnR5LkRFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDAzNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAxIH0sCisgICAgICAgICAgICB7IDB4ZTAwNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMGEwLCBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRSwgMSB9LAorICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9CQVNFLCAwIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0JBU0UsIDEgfSwgICAgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworCisgICAgICAgICAgICB7IDB4MDMwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0VYVEVORCwgMSB9LAorICAgICAgICAgICAgeyAweGZmOWYsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworICAgICAgICAgICAgeyAweDA2MDMsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwKKworICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0xJTkssIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjcsIFVQcm9wZXJ0eS5JRFNfQklOQVJZX09QRVJBVE9SLCAxIH0sCisgICAgICAgICAgICB7IDB4MmZmMywgVVByb3BlcnR5LklEU19CSU5BUllfT1BFUkFUT1IsIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMSB9LAorICAgICAgICAgICAgeyAweDJmMDMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGVjMSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4ZGNiYSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyZTliLCBVUHJvcGVydHkuUkFESUNBTCwgMSB9LAorICAgICAgICAgICAgeyAweDRlMDAsIFVQcm9wZXJ0eS5SQURJQ0FMLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMTJmLCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ5LCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDAgfSwKKworICAgICAgICAgICAgeyAweGZhMTEsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMSB9LAorICAgICAgICAgICAgeyAweGZhMTIsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMCB9LAorCisgICAgICAgICAgICB7IC0xLCAweDQwMSwgMCB9LCAvKiB2ZXJzaW9uIGJyZWFrIGZvciBVbmljb2RlIDQuMC4xICovCisKKyAgICAgICAgICAgIHsgMHgwMDJlLCBVUHJvcGVydHkuU19URVJNLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA2MSwgVVByb3BlcnR5LlNfVEVSTSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTgwYywgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDMsIFVQcm9wZXJ0eS5WQVJJQVRJT05fU0VMRUNUT1IsIDEgfSwKKyAgICAgICAgICAgIHsgMHhlMDFlZiwgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMjAwLCBVUHJvcGVydHkuVkFSSUFUSU9OX1NFTEVDVE9SLCAwIH0sCisKKyAgICAgICAgICAgIC8qIGVudW0vaW50ZWdlciB0eXBlIHByb3BlcnRpZXMgKi8KKyAgICAgICAgICAgIC8qIHRlc3QgZGVmYXVsdCBCaWRpIGNsYXNzZXMgZm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgIHsgMHgwNTkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDVjZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDA1ZWQsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgwN2YyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5ESVJfTk9OX1NQQUNJTkdfTUFSSyB9LCAvKiBOa28sIG5ldyBpbiBVbmljb2RlIDUuMCAqLworICAgICAgICAgICAgeyAweDA3ZmUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwgLyogdW5hc3NpZ25lZCBSICovCisgICAgICAgICAgICB7IDB4MDhiYSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweGZiMzcsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHhmYjQyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MTA4MDYsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMDkwOSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDEwZmU0LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisKKyAgICAgICAgICAgIHsgMHgwNjA2LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA2MWMsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MDYzZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHgwNzBlLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA3NzUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4ZmJjMiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhmZDkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweGZlZmUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisKKyAgICAgICAgICAgIHsgMHgwMkFGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLklQQV9FWFRFTlNJT05TLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgwQzRFLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlRFTFVHVS5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgxNTVBLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MuZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweDE3MTcsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVEFHQUxPRy5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MTkwMCwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5MSU1CVS5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MUFGRiwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5OT19CTE9DSy5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgzMDQwLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkhJUkFHQU5BLmdldElEKCl9LAorICAgICAgICAgICAgeyAweDFEMEZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJZWkFOVElORV9NVVNJQ0FMX1NZTUJPTFMuZ2V0SUQoKX0sCisgICAgICAgICAgICB7IDB4NTAwMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suTk9fQkxPQ0suZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweEVGRkZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLk5PX0JMT0NLLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgxMEQwRkYsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0IuZ2V0SUQoKSB9LAorCisgICAgICAgICAgICAvKiBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB0ZXN0ZWQgZm9yIGFzc2lnbmVkIGNoYXJhY3RlcnMgaW4gVGVzdFVuaWNvZGVEYXRhKCkgKi8KKyAgICAgICAgICAgIHsgMHhkN2Q3LCBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUywgMCB9LAorCisgICAgICAgICAgICB7IDB4MDBBMCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT0JSRUFLIH0sCisgICAgICAgICAgICB7IDB4MDBBOCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT01QQVQgfSwKKyAgICAgICAgICAgIHsgMHgwMGJmLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgwMGMwLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkNBTk9OSUNBTCB9LAorICAgICAgICAgICAgeyAweDFFOUIsIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUsIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuQ0FOT05JQ0FMIH0sCisgICAgICAgICAgICB7IDB4QkNERSwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DQU5PTklDQUwgfSwKKyAgICAgICAgICAgIHsgMHhGQjVELCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTCB9LAorICAgICAgICAgICAgeyAweDFENzM2LCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZPTlQgfSwKKyAgICAgICAgICAgIHsgMHhlMDAzMywgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT05FIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDA5LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguTkFSUk9XIH0sCisgICAgICAgICAgICB7IDB4MDBCMSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MjBBOSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguSEFMRldJRFRIIH0sCisgICAgICAgICAgICB7IDB4MkZGQiwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkZVTExXSURUSCB9LAorICAgICAgICAgICAgeyAweDM1YmIsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHg1OGJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4RDdBMywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweEVFRUUsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkFNQklHVU9VUyB9LAorICAgICAgICAgICAgeyAweDFEMTk4LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MjAwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHgyRjhDNywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDNhNWJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4NWE1YmQsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLk5FVVRSQUwgfSwKKyAgICAgICAgICAgIHsgMHhGRUVFRSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MTBFRUVFLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5BTUJJR1VPVVMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkgdGVzdGVkIGZvciBhc3NpZ25lZCBjaGFyYWN0ZXJzIGluIFRlc3RVbmljb2RlRGF0YSgpICovCisgICAgICAgICAgICB7IDB4ZDdkNywgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlksIDAgfSwKKworICAgICAgICAgICAgeyAweDA0NDQsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5OT19KT0lOSU5HX0dST1VQIH0sCisgICAgICAgICAgICB7IDB4MDYzOSwgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVAsIFVDaGFyYWN0ZXIuSm9pbmluZ0dyb3VwLkFJTiB9LAorICAgICAgICAgICAgeyAweDA3MkEsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5EQUxBVEhfUklTSCB9LAorICAgICAgICAgICAgeyAweDA2NDcsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5IRUggfSwKKyAgICAgICAgICAgIHsgMHgwNkMxLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEVIX0dPQUwgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEFNWkFfT05fSEVIX0dPQUwgfSwKKworICAgICAgICAgICAgeyAweDIwMEMsIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuTk9OX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgyMDBELCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkpPSU5fQ0FVU0lORyB9LAorICAgICAgICAgICAgeyAweDA2MzksIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuRFVBTF9KT0lOSU5HIH0sCisgICAgICAgICAgICB7IDB4MDY0MCwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5KT0lOX0NBVVNJTkcgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlJJR0hUX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgwMzAwLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisgICAgICAgICAgICB7IDB4MDcwRiwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5UUkFOU1BBUkVOVCB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisKKyAgICAgICAgICAgIC8qIFRlc3RVbmljb2RlRGF0YSgpIHZlcmlmaWVzIHRoYXQgbm8gYXNzaWduZWQgY2hhcmFjdGVyIGhhcyAiWFgiICh1bmtub3duKSAqLworICAgICAgICAgICAgeyAweGU3ZTcsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5VTktOT1dOIH0sCisgICAgICAgICAgICB7IDB4MTBmZmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuVU5LTk9XTiB9LAorICAgICAgICAgICAgeyAweDAwMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MjMyQSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNMT1NFX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MzQwMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4NGUwMiwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4MjAwMDQsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGY5MDUsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGRiN2UsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5TVVJST0dBVEUgfSwKKyAgICAgICAgICAgIHsgMHhkYmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuU1VSUk9HQVRFIH0sCisgICAgICAgICAgICB7IDB4ZGZmYywgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLlNVUlJPR0FURSB9LAorICAgICAgICAgICAgeyAweDI3NjIsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5FWENMQU1BVElPTiB9LAorICAgICAgICAgICAgeyAweDAwMkYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5CUkVBS19TWU1CT0xTIH0sCisgICAgICAgICAgICB7IDB4MUQ0OUMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5BTFBIQUJFVElDIH0sCisgICAgICAgICAgICB7IDB4MTczMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkFMUEhBQkVUSUMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5Lk5VTUVSSUNfVFlQRSB0ZXN0ZWQgaW4gVGVzdE51bWVyaWNQcm9wZXJ0aWVzKCkgKi8KKworICAgICAgICAgICAgLyogVVByb3BlcnR5LlNDUklQVCB0ZXN0ZWQgaW4gVGVzdFVTY3JpcHRDb2RlQVBJKCkgKi8KKworICAgICAgICAgICAgeyAweDExMDAsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisgICAgICAgICAgICB7IDB4MTExMSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MRUFESU5HX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTU5LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxFQURJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisKKyAgICAgICAgICAgIHsgMHgxMTYwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTYxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTcyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMWEyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKworICAgICAgICAgICAgeyAweDExYTgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYjgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYzgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExZjksIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorCisgICAgICAgICAgICB7IDB4MTE1YSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTE1ZSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhMywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhNywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmYSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmZiwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVl9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGM1ZWMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhkNzg4LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGFjMWIsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxZCwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVlRfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhjNWVlLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGQ3YTMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhkN2E0LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIDAgfSwKKworICAgICAgICAgICAgeyAtMSwgMHg0MTAsIDAgfSwgLyogdmVyc2lvbiBicmVhayBmb3IgVW5pY29kZSA0LjEgKi8KKworICAgICAgICAgICAgeyAweDAwZDcsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweGZlNDUsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDg1LCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMGYsIFVQcm9wZXJ0eS5QQVRURVJOX1dISVRFX1NQQUNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDBhMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDAgfSwKKyAgICAgICAgICAgIHsgMHgzMDAwLCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MWQyMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OX0lEIH0sCisgICAgICAgICAgICB7IDB4MmM4ZSwgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09QVElDX0lEIH0sCisgICAgICAgICAgICB7IDB4ZmUxNywgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVkVSVElDQUxfRk9STVNfSUQgfSwKKworICAgICAgICAgICAgeyAweDFhMDAsICBVUHJvcGVydHkuU0NSSVBULCBVU2NyaXB0LkJVR0lORVNFIH0sCisgICAgICAgICAgICB7IDB4MmNlYSwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuQ09QVElDIH0sCisgICAgICAgICAgICB7IDB4YTgyYiwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuU1lMT1RJX05BR1JJIH0sCisgICAgICAgICAgICB7IDB4MTAzZDAsIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuT0xEX1BFUlNJQU4gfSwKKworICAgICAgICAgICAgeyAweGNjMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMiB9LAorICAgICAgICAgICAgeyAweGNjMjksIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweGFjMDMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KTCB9LAorICAgICAgICAgICAgeyAweDExYWEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KVCB9LAorICAgICAgICAgICAgeyAweDExYTEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KViB9LAorCisgICAgICAgICAgICB7IDB4YjJjOSwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuTFZUIH0sCisgICAgICAgICAgICB7IDB4MDM2ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuRVhURU5EIH0sCisgICAgICAgICAgICB7IDB4MDAwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuQ09OVFJPTCB9LAorICAgICAgICAgICAgeyAweDExNjAsIFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLLCBVQ2hhcmFjdGVyLkdyYXBoZW1lQ2x1c3RlckJyZWFrLlYgfSwKKworICAgICAgICAgICAgeyAweDA1ZjQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSURMRVRURVIgfSwKKyAgICAgICAgICAgIHsgMHg0ZWYwLCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuT1RIRVIgfSwKKyAgICAgICAgICAgIHsgMHgxOWQ5LCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIwNDQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSUROVU0gfSwKKworICAgICAgICAgICAgeyAweGZmZmQsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLk9USEVSIH0sCisgICAgICAgICAgICB7IDB4MWZmYywgVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLLCBVQ2hhcmFjdGVyLlNlbnRlbmNlQnJlYWsuVVBQRVIgfSwKKyAgICAgICAgICAgIHsgMHhmZjYzLCBVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUssIFVDaGFyYWN0ZXIuU2VudGVuY2VCcmVhay5DTE9TRSB9LAorICAgICAgICAgICAgeyAweDIwMjgsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLlNFUCB9LAorCisgICAgICAgICAgICAvKiB1bmRlZmluZWQgVVByb3BlcnR5IHZhbHVlcyAqLworICAgICAgICAgICAgeyAweDYxLCAweDRhNywgMCB9LAorICAgICAgICAgICAgeyAweDIzNGJjLCAweDE1ZWQsIDAgfQorICAgICAgICB9OworCisKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShVUHJvcGVydHkuREFTSCkgIT0gMAorICAgICAgICAgICAgfHwgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5CSURJX0NMQVNTKSAhPSAwCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LkJMT0NLKSE9IDAgIC8qIGoyNDc4ICovCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LlNDUklQVCkhPSAwIC8qIEpCIzI0MTAgKi8KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSgweDIzNDUpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKCkgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkRBU0gpIT0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuREFTSCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LklEX0NPTlRJTlVFKSE9MSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LklEX0NPTlRJTlVFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklOQVJZX0xJTUlULTEpIT0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklOQVJZX0xJTUlULTEpIHdyb25nXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkJJRElfQ0xBU1MpIT1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5ULTEgKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklESV9DTEFTUykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkJMT0NLKSE9VUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09VTlQtMSApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5CTE9DSykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTElORV9CUkVBSykhPVVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPVU5ULTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5MSU5FX0JSRUFLKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQpIT1VU2NyaXB0LkNPREVfTElNSVQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LlNDUklQVCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTlVNRVJJQ19UWVBFKSE9VUNoYXJhY3Rlci5OdW1lcmljVHlwZS5DT1VOVC0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTlVNRVJJQ19UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZKSE9VUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkpIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZihVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKSE9VUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLKSE9VUNoYXJhY3Rlci5HcmFwaGVtZUNsdXN0ZXJCcmVhay5DT1VOVC0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSykgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUspIT1VQ2hhcmFjdGVyLlNlbnRlbmNlQnJlYWsuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5XT1JEX0JSRUFLKSE9VUNoYXJhY3Rlci5Xb3JkQnJlYWsuQ09VTlQtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LldPUkRfQlJFQUspIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICAvKkpCIzI0MTAqLworICAgICAgICBpZiggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKDB4MjM0NSkhPS0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgweDIzNDUpIHdyb25nXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUpICE9ICAoVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT1VOVCAtIDEpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgIT0gICAoVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuQ09VTlQgLTEpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkgIT0gIChVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkNPVU5UIC0xKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkgd3JvbmdcbiIpOworICAgICAgICB9CisgICAgICAgIGlmKCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgpICE9ICAoVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5DT1VOVCAtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIKSB3cm9uZ1xuIik7CisgICAgICAgIH0KKworICAgICAgICBWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworCisgICAgICAgIC8vIHRlc3QgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgaWYgKHByb3BzW2ldWzBdIDwgMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShwcm9wc1tpXVsxXSA+PiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wc1tpXVsxXSA+PiA0KSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wc1tpXVsxXSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChwcm9wc1tpXVsyXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJvcHNbaV1bMV0gPCBVUHJvcGVydHkuSU5UX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkocHJvcHNbaV1bMF0sIHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAhPSBleHBlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIGhhcyBhbiBlcnJvciBleHBlY3RlZCAiICsgcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHJldFZhbCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShwcm9wc1tpXVswXSwgcHJvcHNbaV1bMV0pOworICAgICAgICAgICAgaWYgKHJldFZhbCAhPSBwcm9wc1tpXVsyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KHByb3BzW2ldWzBdLCA0KSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIHByb3BzW2ldWzFdICsgIiBpcyB3cm9uZywgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICAgICArIHByb3BzW2ldWzJdICsgIiBub3QgIiArIHJldFZhbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRlc3Qgc2VwYXJhdGUgZnVuY3Rpb25zLCB0b28KKyAgICAgICAgICAgIHN3aXRjaCAocHJvcHNbaV1bMV0pIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFMUEhBQkVUSUM6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYyhwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFOgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VMb3dlcmNhc2UoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgaXMgd3JvbmcgZXhwZWN0ZWQgIiArcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRToKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VVcHBlcmNhc2UocHJvcHNbaV1bMF0pICE9IGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuaXNVVXBwZXJjYXNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuV0hJVEVfU1BBQ0U6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljUHJvcGVydGllcygpCisgICAgeworICAgICAgICAvLyBzZWUgVW5pY29kZURhdGEudHh0LCBEZXJpdmVkTnVtZXJpY1ZhbHVlcy50eHQKKyAgICAgICAgaW50IHRlc3R2YXJbXVtdID0geworICAgICAgICAgICAgeyAweDBGMzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDBDNjYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNTksIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwQkQsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwMzEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDEwMzIwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwRjJCLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwMEIyLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLkRJR0lUIH0sIC8qIFVuaWNvZGUgNC4wIGNoYW5nZSAqLworICAgICAgICAgICAgeyAweDE4MTMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI3OEUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuRElHSVQgfSwKKyAgICAgICAgICAgIHsgMHgxRDdGMiwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ERUNJTUFMIH0sCisgICAgICAgICAgICB7IDB4MjQ3QSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ESUdJVCB9LAorICAgICAgICAgICAgeyAweDEzNzIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIxNkIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDE2RUUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI0OUEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMwM0EsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMyQjIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEzNzUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEwMzIzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwQkYxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTdFLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgxMzdDLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg2MSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MzAwMCwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4ZmZmZSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MTAzMDEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgLyogVW5pY29kZSA0LjAgQ2hhbmdlcyAqLworICAgICAgICAgICAgeyAweDk2ZjYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTAwLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NThmMSwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDVmMTAsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1ZjBlLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4ODA4NiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDczOTYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1MzQ1LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4OTY0YywgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDRlZGYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTA3LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NGViZiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDUxNDYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfQorICAgICAgICB9OworCisgICAgICAgIGRvdWJsZSBleHBlY3RlZFtdID0gey0xLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS8oZG91YmxlKTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEvKGRvdWJsZSkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDAwMDAuMDAKKyAgICAgICAgfTsKKworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHZhci5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBjID0gdGVzdHZhcltpXVswXTsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuTlVNRVJJQ19UWVBFKTsKKyAgICAgICAgICAgIGRvdWJsZSBudiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjKTsKKworICAgICAgICAgICAgaWYgKHR5cGUgIT0gdGVzdHZhcltpXVsxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVUHJvcGVydHkuTlVNRVJJQ19UWVBFKFxcdSIgKyBVdGlsaXR5LmhleChjLCA0KQorICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIHR5cGUgKyAiIHNob3VsZCBiZSAiICsgdGVzdHZhcltpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoMC4wMDAwMDEgPD0gTWF0aC5hYnMobnYgLSBleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoXFx1IiArIFV0aWxpdHkuaGV4KGMsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIG52ICsgIiBzaG91bGQgYmUgIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHByb3BlcnR5IHZhbHVlcyBBUEkuICBTZWUgSkIjMjQxMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlWYWx1ZXMoKSB7CisgICAgICAgIGludCBpLCBwLCBtaW4sIG1heDsKKworICAgICAgICAvKiBNaW4gc2hvdWxkIGJlIDAgZm9yIGV2ZXJ5dGhpbmcuICovCisgICAgICAgIC8qIFVudGlsIEpCIzI0NzggaXMgZml4ZWQsIHRoZSBvbmUgZXhjZXB0aW9uIGlzIFVQcm9wZXJ0eS5CTE9DSy4gKi8KKyAgICAgICAgZm9yIChwPVVQcm9wZXJ0eS5JTlRfU1RBUlQ7IHA8VVByb3BlcnR5LklOVF9MSU1JVDsgKytwKSB7CisgICAgICAgICAgICBtaW4gPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocCk7CisgICAgICAgICAgICBpZiAobWluICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQkxPQ0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBpcyBva2F5Li4uZm9yIG5vdy4gIFNlZSBKQiMyNDg3LgorICAgICAgICAgICAgICAgICAgICAgICBUT0RPIFVwZGF0ZSB0aGlzIGZvciBKQiMyNDg3LiAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgICAgICAgICBuYW1lID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUocCwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoIiArIG5hbWUgKyAiKSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gKyAiLCBleHAuIDAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spCisgICAgICAgICAgICAhPSAwCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spCisgICAgICAgICAgICAgICAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluL01heFZhbHVlKCIKKyAgICAgICAgICAgICAgICAgICsgIlVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIGlzIHdyb25nIik7CisgICAgICAgIH0KKworICAgICAgICAvKiBNYXggc2hvdWxkIGJlIC0xIGZvciBpbnZhbGlkIHByb3BlcnRpZXMuICovCisgICAgICAgIG1heCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgtMSk7CisgICAgICAgIGlmIChtYXggIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoLTEpID0gIiArCisgICAgICAgICAgICAgICAgICBtYXggKyAiLCBleHAuIC0xIik7CisgICAgICAgIH0KKworICAgICAgICAvKiBTY3JpcHQgc2hvdWxkIHJldHVybiAwIGZvciBhbiBpbnZhbGlkIGNvZGUgcG9pbnQuIElmIHRoZSBBUEkKKyAgICAgICAgICAgdGhyb3dzIGFuIGV4Y2VwdGlvbiB0aGVuIHRoYXQncyBmaW5lIHRvby4gKi8KKyAgICAgICAgZm9yIChpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSAwOworICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjID0gbnVsbDsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVTY3JpcHQuZ2V0U2NyaXB0KC0xKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzYyA9ICJVU2NyaXB0LmdldFNjcmlwdCgtMSkiOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZSgtMSwgVVByb3BlcnR5LlNDUklQVCk7CisgICAgICAgICAgICAgICAgICAgIGRlc2MgPSAiVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKC0xLCBVUHJvcGVydHkuU0NSSVBUKSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkZXNjICsgIiA9ICIgKyBzY3JpcHQgKyAiLCBleHAuIDAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkge30KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0JNUCgpCisgICAgeworICAgICAgICBpbnQgY2hbXSA9IHsweDAsIC0xLCAweGZmZmYsIDB4MTBmZmZmLCAweGZmLCAweDFmZmZmfTsKKyAgICAgICAgYm9vbGVhbiBmbGFnW10gPSB7dHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2gubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0JNUChjaFtpXSkgIT0gZmxhZ1tpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBcXHUiICsgVXRpbGl0eS5oZXgoY2hbaV0sIDgpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGZhaWxlZCBhdCBVQ2hhcmFjdGVyLmlzQk1QIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBhZGQgY2hhcmFjdGVycyBmcm9tIGEgc2VyaWFsaXplZCBzZXQgdG8gYSBub3JtYWwgb25lICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfc2V0QWRkU2VyaWFsaXplZChVbmljb2RlU2V0IHNldCwgVVNlcmlhbGl6ZWRTZXQgc3NldCkgeworICAgICAvLyAgaW50IHN0YXJ0LCBlbmQ7CisgICAgICAgaW50IGksIGNvdW50OworCisgICAgICAgY291bnQ9c3NldC5jb3VudFJhbmdlcygpOworICAgICAgIGludFtdIHJhbmdlID0gbmV3IGludFsyXTsKKyAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgc3NldC5nZXRSYW5nZShpLHJhbmdlKTsKKyAgICAgICAgICAgc2V0LmFkZChyYW5nZVswXSxyYW5nZVsxXSk7CisgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93QURpZmZCKFVuaWNvZGVTZXQgYSwgVW5pY29kZVNldCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhX25hbWUsIFN0cmluZyBiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleHBlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkaWZmSXNFcnJvcil7CisgICAgICAgIGludCBpLCBzdGFydCwgZW5kLCBsZW5ndGg7CisgICAgICAgIGJvb2xlYW4gZXF1YWw7CisgICAgICAgIGVxdWFsPXRydWU7CisgICAgICAgIGk9MDsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBzdGFydCAgPSBhLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBsZW5ndGggPSAoaSA8IGEuZ2V0UmFuZ2VDb3VudCgpKSA/IDAgOiBhLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgIGVuZCAgICA9IGEuZ2V0UmFuZ2VFbmQoaSk7CisKKyAgICAgICAgICAgIGlmKGxlbmd0aCE9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlcXVhbDsgLyogZG9uZSB3aXRoIGNvZGUgcG9pbnRzLCBnb3QgYSBzdHJpbmcgb3IgLTEgKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZXhwZWN0IT1iLmNvbnRhaW5zKHN0YXJ0LCBlbmQpKSB7CisgICAgICAgICAgICAgICAgZXF1YWw9ZmFsc2U7CisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZihleHBlY3QhPWIuY29udGFpbnMoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihkaWZmSXNFcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6ICIrIGFfbmFtZSArIiBjb250YWlucyAiKyBoZXgoc3RhcnQpKyIgYnV0ICIrIGJfbmFtZSArIiBkb2VzIG5vdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogIithX25hbWUgKyIgYW5kICIrIGJfbmFtZSsiIGJvdGggY29udGFpbiAiK2hleChzdGFydCkgKyIgYnV0IHNob3VsZCBub3QgaW50ZXJzZWN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihleHBlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86ICIrYV9uYW1lICsiIGNvbnRhaW5zICIraGV4KHN0YXJ0KSsgImJ1dCAiICsgYl9uYW1lICsiIGRvZXMgbm90Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86ICIrYV9uYW1lICsiIGFuZCAiK2JfbmFtZSsiIGJvdGggY29udGFpbiAiK2hleChzdGFydCkrIiBidXQgc2hvdWxkIG5vdCBpbnRlcnNlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICsraTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd0FNaW51c0IoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFfbmFtZSwgU3RyaW5nIGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRpZmZJc0Vycm9yKSB7CisKKyAgICAgICAgcmV0dXJuIHNob3dBRGlmZkIoYSwgYiwgYV9uYW1lLCBiX25hbWUsIHRydWUsIGRpZmZJc0Vycm9yKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd0FJbnRlcnNlY3RCKFVuaWNvZGVTZXQgYSwgVW5pY29kZVNldCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYV9uYW1lLCBTdHJpbmcgYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRpZmZJc0Vycm9yKSB7CisgICAgICAgIHJldHVybiBzaG93QURpZmZCKGEsIGIsIGFfbmFtZSwgYl9uYW1lLCBmYWxzZSwgZGlmZklzRXJyb3IpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXJlVVNldHMoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhX25hbWUsIFN0cmluZyBiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZGlmZklzRXJyb3IpIHsKKyAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBzaG93QU1pbnVzQihhLCBiLCBhX25hbWUsIGJfbmFtZSwgZGlmZklzRXJyb3IpICYmCisgICAgICAgICAgICBzaG93QU1pbnVzQihiLCBhLCBiX25hbWUsIGFfbmFtZSwgZGlmZklzRXJyb3IpOworICAgIH0KKworICAgLyogdmFyaW91cyB0ZXN0cyBmb3IgY29uc2lzdGVuY3kgb2YgVUNEIGRhdGEgYW5kIEFQSSBiZWhhdmlvciAqLworICAgcHVibGljIHZvaWQgVGVzdENvbnNpc3RlbmN5KCkgeworICAgICAgIGNoYXJbXSBidWZmZXIxNiA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgY2hhcltdIGJ1ZmZlciAgID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICBVbmljb2RlU2V0IHNldDEsIHNldDIsIHNldDMsIHNldDQ7CisKKyAgICAgICBVU2VyaWFsaXplZFNldCBzc2V0OworICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgIGludCBpLCBsZW5ndGg7CisKKyAgICAgICBTdHJpbmcgaHlwaGVuUGF0dGVybiA9ICJbOkh5cGhlbjpdIjsKKyAgICAgICBTdHJpbmcgZGFzaFBhdHRlcm4gPSAiWzpEYXNoOl0iOworICAgICAgIFN0cmluZyBsb3dlclBhdHRlcm4gPSAiWzpMb3dlcmNhc2U6XSI7CisgICAgICAgU3RyaW5nIGZvcm1hdFBhdHRlcm4gPSAiWzpDZjpdIjsKKyAgICAgICBTdHJpbmcgYWxwaGFQYXR0ZXJuICA9ICAiWzpBbHBoYWJldGljOl0iOworCisgICAgICAgLyoKKyAgICAgICAgKiBJdCB1c2VkIHRvIGJlIHRoYXQgVUNELmh0bWwgYW5kIGl0cyBwcmVjdXJzb3JzIHNhaWQKKyAgICAgICAgKiAiVGhvc2UgZGFzaGVzIHVzZWQgdG8gbWFyayBjb25uZWN0aW9ucyBiZXR3ZWVuIHBpZWNlcyBvZiB3b3JkcywKKyAgICAgICAgKiAgcGx1cyB0aGUgS2F0YWthbmEgbWlkZGxlIGRvdC4iCisgICAgICAgICoKKyAgICAgICAgKiBVbmljb2RlIDQgY2hhbmdlZCAwMEFEIFNvZnQgSHlwaGVuIHRvIENmIGFuZCByZW1vdmVkIGl0IGZyb20gRGFzaAorICAgICAgICAqIGJ1dCBub3QgZnJvbSBIeXBoZW4uCisgICAgICAgICogVVRDIDk0ICgyMDAzbWFyKSBkZWNpZGVkIHRvIGxlYXZlIGl0IHRoYXQgd2F5IGFuZCB0byBjaGFuZ2VkIFVDRC5odG1sLgorICAgICAgICAqIFRoZXJlZm9yZSwgZG8gbm90IHNob3cgZXJyb3JzIHdoZW4gdGVzdGluZyB0aGUgSHlwaGVuIHByb3BlcnR5LgorICAgICAgICAqLworICAgICAgIGxvZ2xuKCJTdGFydGluZyB3aXRoIFVuaWNvZGUgNCwgaW5jb25zaXN0ZW5jaWVzIHdpdGggWzpIeXBoZW46XSBhcmVcbiIKKyAgICAgICAgICAgICAgICAgICArICJrbm93biB0byB0aGUgVVRDIGFuZCBub3QgY29uc2lkZXJlZCBlcnJvcnMuXG4iKTsKKworICAgICAgIHNldDE9bmV3IFVuaWNvZGVTZXQoaHlwaGVuUGF0dGVybik7CisgICAgICAgc2V0Mj1uZXcgVW5pY29kZVNldChkYXNoUGF0dGVybik7CisKKyAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBLYXRha2FuYSBtaWRkbGUgZG90KHMpIGZyb20gc2V0MSAqLworICAgICAgICAgICBzZXQxLnJlbW92ZSgweDMwZmIpOworICAgICAgICAgICBzZXQyLnJlbW92ZSAoMHhmZjY1KTsgLyogaGFsZndpZHRoIHZhcmlhbnQgKi8KKyAgICAgICAgICAgc2hvd0FNaW51c0Ioc2V0MSwgc2V0MiwgIls6SHlwaGVuOl0iLCAiWzpEYXNoOl0iLCBmYWxzZSk7CisKKworICAgICAgIC8qIGNoZWNrIHRoYXQgQ2YgaXMgbmVpdGhlciBIeXBoZW4gbm9yIERhc2ggbm9yIEFscGhhYmV0aWMgKi8KKyAgICAgICBzZXQzPW5ldyBVbmljb2RlU2V0KGZvcm1hdFBhdHRlcm4pOworICAgICAgIHNldDQ9bmV3IFVuaWNvZGVTZXQoYWxwaGFQYXR0ZXJuKTsKKworICAgICAgIHNob3dBSW50ZXJzZWN0QihzZXQzLCBzZXQxLCAiWzpDZjpdIiwgIls6SHlwaGVuOl0iLCBmYWxzZSk7CisgICAgICAgc2hvd0FJbnRlcnNlY3RCKHNldDMsIHNldDIsICJbOkNmOl0iLCAiWzpEYXNoOl0iLCB0cnVlKTsKKyAgICAgICBzaG93QUludGVyc2VjdEIoc2V0Mywgc2V0NCwgIls6Q2Y6XSIsICJbOkFscGhhYmV0aWM6XSIsIHRydWUpOworICAgICAgIC8qCisgICAgICAgICogQ2hlY2sgdGhhdCBlYWNoIGxvd2VyY2FzZSBjaGFyYWN0ZXIgaGFzICJzbWFsbCIgaW4gaXRzIG5hbWUKKyAgICAgICAgKiBhbmQgbm90ICJjYXBpdGFsIi4KKyAgICAgICAgKiBUaGVyZSBhcmUgc29tZSBzdWNoIGNoYXJhY3RlcnMsIHNvbWUgb2Ygd2hpY2ggc2VlbSBvZGQuCisgICAgICAgICogVXNlIHRoZSB2ZXJib3NlIGZsYWcgdG8gc2VlIHRoZXNlIG5vdGljZXMuCisgICAgICAgICovCisgICAgICAgc2V0MT1uZXcgVW5pY29kZVNldChsb3dlclBhdHRlcm4pOworCisgICAgICAgZm9yKGk9MDs7ICsraSkgeworLy8gICAgICAgICAgICAgICB0cnl7CisvLyAgICAgICAgICAgICAgICAgICBsZW5ndGg9c2V0MS5nZXRJdGVtKHNldDEsIGksICZzdGFydCwgJmVuZCwgTlVMTCwgMCwgJmVycm9yQ29kZSk7CisvLyAgICAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisvLyAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBzZXQxLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBlbmQgPSBzZXQxLmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgbGVuZ3RoID0gaTxzZXQxLmdldFJhbmdlQ291bnQoKSA/IHNldDEuZ2V0UmFuZ2VDb3VudCgpIDogMDsKKyAgICAgICAgICAgaWYobGVuZ3RoIT0wKSB7CisgICAgICAgICAgICAgICBicmVhazsgLyogZG9uZSB3aXRoIGNvZGUgcG9pbnRzLCBnb3QgYSBzdHJpbmcgb3IgLTEgKi8KKyAgICAgICAgICAgfQorCisgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgIFN0cmluZyBuYW1lPVVDaGFyYWN0ZXIuZ2V0TmFtZShzdGFydCk7CisKKyAgICAgICAgICAgICAgIGlmKCAobmFtZS5pbmRleE9mKCJTTUFMTCIpPCAwIHx8IG5hbWUuaW5kZXhPZigiQ0FQSVRBTCIpPC0xKSAmJgorICAgICAgICAgICAgICAgICAgIG5hbWUuaW5kZXhPZigiU01BTEwgQ0FQSVRBTCIpPT0tMQorICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgbG9nbG4oImluZm86IFs6TG93ZXJjYXNlOl0gY29udGFpbnMgVSsiK2hleChzdGFydCkgKyAiIHdob3NlIG5hbWUgZG9lcyBub3Qgc3VnZ2VzdCBsb3dlcmNhc2U6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworICAgICAgIC8qCisgICAgICAgICogVGVzdCBmb3IgYW4gZXhhbXBsZSB0aGF0IHVub3JtX2dldENhbm9uU3RhcnRTZXQoKSBkZWxpdmVycworICAgICAgICAqIGFsbCBjaGFyYWN0ZXJzIHRoYXQgY29tcG9zZSBmcm9tIHRoZSBpbnB1dCBvbmUsCisgICAgICAgICogZXZlbiBpbiBtdWx0aXBsZSBzdGVwcy4KKyAgICAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIHNldCBmb3IgIkkiICgwMDQ5KSBzaG91bGQgY29udGFpbiBib3RoCisgICAgICAgICogSS1kaWFlcmVzaXMgKDAwQ0YpIGFuZCBJLWRpYWVyZXNpcy1hY3V0ZSAoMUUyRSkuCisgICAgICAgICogSW4gZ2VuZXJhbCwgdGhlIHNldCBmb3IgdGhlIG1pZGRsZSBzdWNoIGNoYXJhY3RlciBzaG91bGQgYmUgYSBzdWJzZXQKKyAgICAgICAgKiBvZiB0aGUgc2V0IGZvciB0aGUgZmlyc3QuCisgICAgICAgICovCisgICAgICAgc2V0MT1uZXcgVW5pY29kZVNldCgpOworICAgICAgIHNldDI9bmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICBzc2V0ID0gbmV3IFVTZXJpYWxpemVkU2V0KCk7CisgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldCgweDQ5LHNzZXQpOworICAgICAgIF9zZXRBZGRTZXJpYWxpemVkKHNldDEsIHNzZXQpOworCisgICAgICAgLyogZW51bWVyYXRlIGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIHBsYXVzaWJsZSB0byBiZSBsYXRpbiBsZXR0ZXJzICovCisgICAgICAgZm9yKHN0YXJ0PTB4YTA7IHN0YXJ0PDB4MjAwMDsgKytzdGFydCkgeworICAgICAgICAgICBpZihOb3JtYWxpemVySW1wbC5nZXREZWNvbXBvc2l0aW9uKHN0YXJ0LCBmYWxzZSwgYnVmZmVyMTYsMCxidWZmZXIxNi5sZW5ndGgpID4gMSAmJiBidWZmZXJbMF09PTB4MDA0OSkgeworICAgICAgICAgICAgICAgc2V0Mi5hZGQoc3RhcnQpOworICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgY29tcGFyZVVTZXRzKHNldDEsIHNldDIsCisgICAgICAgICAgICAgICAgICAgICJbY2Fub24gc3RhcnQgc2V0IG9mIDAwNDldIiwgIlthbGwgYyB3aXRoIGNhbm9uIGRlY29tcCB3aXRoIDAwNDldIiwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworCisgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIC8vY292ZXIgZm9yRGlnaXQKKyAgICAgICAgY2hhciBjaDEgPSBVQ2hhcmFjdGVyLmZvckRpZ2l0KDcsIDExKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJVQ2hhcmFjdGVyLmZvckRpZ2l0ICIsICI3IiwgU3RyaW5nLnZhbHVlT2YoY2gxKSk7CisgICAgICAgIGNoYXIgY2gyID0gVUNoYXJhY3Rlci5mb3JEaWdpdCgxNywgMjApOworICAgICAgICBhc3NlcnRFcXVhbHMoIlVDaGFyYWN0ZXIuZm9yRGlnaXQgIiwgImgiLCBTdHJpbmcudmFsdWVPZihjaDIpKTsKKworICAgICAgICAvL0ppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNKYXZhTGV0dGVyKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiIGV4cGVjdGVkIHRvIGJlIGEgbGV0dGVyIik7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0KGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiIGV4cGVjdGVkIHRvIGJlIGEgSmF2YSBpZGVudGlmaWVyIHN0YXJ0IGNoYXJhY3RlciIpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSmF2YUxldHRlck9yRGlnaXQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgSmF2YSBsZXR0ZXIiKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIEphdmEgaWRlbnRpZmllciBwYXJ0IGNoYXJhY3RlciIpOworICAgICAgICB9CisgICAgICAgIGNoYXJbXSBzcGFjZXMgPSB7J1x0JywnXG4nLCdcZicsJ1xyJywnICd9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNwYWNlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNTcGFjZShzcGFjZXNbaV0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBKYXZhIHNwYWNlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmdldFN0cmluZ1Byb3BlcnR5VmFsdWUoVVByb3BlcnR5LkFHRSwnXHUzNDAwJywwKS5lcXVhbHMoIjMuMC4wLjAiKSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUzNDAwIGV4cGVjdGVkIHRvIGJlIDMuMC4wLjAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlUHJvcHNEdW1teSgpIHsKKyAgICAgICAgLy8gY29kZSBjb3ZlcmFnZSBmb3IgVUNhc2VQcm9wcy5nZXREdW1teSgpIAorICAgICAgICBpZihVQ2FzZVByb3BzLmdldER1bW15KCkudG9sb3dlcigweDQxKSE9MHg0MSkgeworICAgICAgICAgICAgZXJybG4oIlVDYXNlUHJvcHMuZ2V0RHVtbXkoKS50b2xvd2VyKDB4NDEpIT0weDQxIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlEaVByb3BzRHVtbXkoKSB7CisgICAgICAgIC8vIGNvZGUgY292ZXJhZ2UgZm9yIFVCaURpUHJvcHMuZ2V0RHVtbXkoKSAKKyAgICAgICAgaWYoVUJpRGlQcm9wcy5nZXREdW1teSgpLmdldENsYXNzKDB4MjApIT0wKSB7CisgICAgICAgICAgICBlcnJsbigiVUJpRGlQcm9wcy5nZXREdW1teSgpLmdldENsYXNzKDB4MjApIT0wIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VUHJvcGVydHlBbGlhc2VzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVByb3BlcnR5QWxpYXNlc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDgyZTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVByb3BlcnR5QWxpYXNlc1Rlc3QuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworcHVibGljIGNsYXNzIFVQcm9wZXJ0eUFsaWFzZXNUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAKKyAgICBwdWJsaWMgVVByb3BlcnR5QWxpYXNlc1Rlc3QoKSB7fQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVVByb3BlcnR5QWxpYXNlc1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgcHJvcGVydHkgbmFtZXMgYW5kIHByb3BlcnR5IHZhbHVlIG5hbWVzIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlOYW1lcygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGludCBwLCB2LCBjaG9pY2UsIHJldjsKKyAgICAgICAgZm9yIChwPTA7IDsgKytwKSB7CisgICAgICAgICAgICBib29sZWFuIHNhd1Byb3AgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoY2hvaWNlPTA7IDsgKytjaG9pY2UpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHAsIGNob2ljZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2F3UHJvcCkgbG9nKCJwcm9wICIgKyBwICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG4gPSAobmFtZSAhPSBudWxsKSA/ICgiXCIiICsgbmFtZSArICciJykgOiAibnVsbCI7CisgICAgICAgICAgICAgICAgICAgIGxvZygiICIgKyBjaG9pY2UgKyAiPSIgKyBuKTsKKyAgICAgICAgICAgICAgICAgICAgc2F3UHJvcCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNob2ljZSA+IDApIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRlc3QgcmV2ZXJzZSBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIHJldiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKG5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV2ICE9IHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9wZXJ0eSByb3VuZC10cmlwIGZhaWx1cmU6ICIgKyBwICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAiIC0+ICIgKyByZXYpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNhd1Byb3ApIHsKKyAgICAgICAgICAgICAgICAvKiBsb29rcyBsaWtlIGEgdmFsaWQgcHJvcGVydHk7IGNoZWNrIHRoZSB2YWx1ZXMgKi8KKyAgICAgICAgICAgICAgICBTdHJpbmcgcG5hbWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShwLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSAyNTU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogaXQncyBmYXIgdG9vIHNsb3cgdG8gaXRlcmF0ZSBhbGwgdGhlIHdheSB1cCB0bworICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVhbCBtYXgsIFVfR0NfUF9NQVNLICovCisgICAgICAgICAgICAgICAgICAgIG1heCA9IDB4MTAwMDsgLy8gVV9HQ19OTF9NQVNLOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocCA9PSBVUHJvcGVydHkuQkxPQ0spIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVUJsb2NrQ29kZXMsIHVubGlrZSBvdGhlciB2YWx1ZXMsIHN0YXJ0IGF0IDEgKi8KKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgICAgIGZvciAodj0tMTsgOyArK3YpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzYXdWYWx1ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNob2ljZT0wOyA7ICsrY2hvaWNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdm5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocCwgdiwgY2hvaWNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9ICh2bmFtZSAhPSBudWxsKSA/ICgiXCIiICsgdm5hbWUgKyAnIicpIDogIm51bGwiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2F3VmFsdWUpIGxvZygiICIgKyBwbmFtZSArICIsIHZhbHVlICIgKyB2ICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coIiAiICsgY2hvaWNlICsgIj0iICsgbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F3VmFsdWUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNob2ljZT4wKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2bmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGVzdCByZXZlcnNlIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHZuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV2ICE9IHYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlZhbHVlIHJvdW5kLXRyaXAgZmFpbHVyZSAoIiArIHBuYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik6ICIgKyB2ICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5hbWUgKyAiIC0+ICIgKyByZXYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc2F3VmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXNhd1ZhbHVlICYmIHY+PW1heCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzYXdQcm9wKSB7CisgICAgICAgICAgICAgICAgaWYgKHA+PVVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwPj1VUHJvcGVydHkuRE9VQkxFX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuU1RSSU5HX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5NQVNLX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuRE9VQkxFX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5NQVNLX1NUQVJUIC0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5JTlRfU1RBUlQgLSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGkgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yICg7IGkgPD0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpOworICAgICAgICAgICAgICAgICBpICsrKSB7ICAgCisgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAKKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSAKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgaGF2ZSBhIG51bGwgcHJvcGVydHkgdmFsdWUgbmFtZSIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVRGMTZUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VVEYxNlRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xN2Q1MWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVRGMTZUZXN0LmphdmEKQEAgLTAsMCArMSwxNjQ0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVVRGMTZVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVVRGMTYKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIGZlYiAwOSAyMDAxCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqLworICAgIHB1YmxpYyBVVEYxNlRlc3QoKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBhcHBlbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QXBwZW5kKCkKKyAgICB7CisgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCJ0aGlzIGlzIGEgc3RyaW5nICIpOworICAgICAgICAgIGNoYXIgYXJyYXlbXSA9IG5ldyBjaGFyW1VDaGFyYWN0ZXIuTUFYX1ZBTFVFID4+IDJdOworICAgICAgICAgIGludCBzdHJzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAgICAgICBpbnQgYXJyYXlzaXplID0gc3Ryc2l6ZTsKKworICAgICAgICAgIFV0aWxpdHkuZ2V0Q2hhcnMoc3RyYnVmZiwgMCwgc3Ryc2l6ZSwgYXJyYXksIDApOworICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKz0gMTAwKSB7CisgICAgICAgIFVURjE2LmFwcGVuZChzdHJidWZmLCBpKTsKKyAgICAgICAgYXJyYXlzaXplID0gVVRGMTYuYXBwZW5kKGFycmF5LCBhcnJheXNpemUsIGkpOworCisgICAgICAgIFN0cmluZyBhcnJheXN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIGFycmF5c2l6ZSk7CisgICAgICAgIGlmICghYXJyYXlzdHIuZXF1YWxzKHN0cmJ1ZmYudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgQ29tcGFyaW5nIGNoYXIgYXJyYXkgYXBwZW5kIGFuZCBzdHJpbmcgYXBwZW5kICIgKworICAgICAgICAgICAgICAid2l0aCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoaXMgaXMgdG8gY2F0ZXIgZm9yIHRoZSBjb21iaW5hdGlvbiBvZiAweERCWFggMHhEQzUwIHdoaWNoCisgICAgICAgIC8vIGZvcm1zIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGkgPT0gMHhEQzUxKSB7CisgICAgICAgIHN0cnNpemUgLS07CisgICAgICAgIH0KKworICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gc3Ryc2l6ZSArIChpIC8gMTAwKSArIDEpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgQ291bnRpbmcgY29kZSBwb2ludHMgaW4gc3RyaW5nIGFwcGVuZGVkIHdpdGggIiArCisgICAgICAgICAgICAgICIgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSk7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY292ZXJhZ2UgZm9yIG5ldyAxLjUgLSBjb3ZlciBvbmx5IHNvIG5vIHJlYWwgdGVzdAorICAgIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgVVRGMTYuYXBwZW5kQ29kZVBvaW50KHN0cmJ1ZmYsIDB4MTAwMDApOworICAgIGlmIChzdHJidWZmLmxlbmd0aCgpICE9IDIpIHsKKyAgICAgICAgZXJybG4oImZhaWwgYXBwZW5kQ29kZVBvaW50Iik7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBib3VuZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Qm91bmRzKCkKKyAgICB7CisgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPQorICAgICAgICAgICAgICAgICAgICAgICAgLy8wICAgICAxMjM0NSAgICAgNiAgICAgNyAgICAgOCAgICAgOQorICAgICAgICBuZXcgU3RyaW5nQnVmZmVyKCJcdWRjMDAwMTIzXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxXHVkODAyIik7CisgICAgICAgICAgU3RyaW5nIHN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICBpbnQgYm91bmR0eXBlW10gPSB7VVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWX07CisgICAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSArKykgeworICAgICAgICBpZiAoVVRGMTYuYm91bmRzKHN0ciwgaSkgIT0gYm91bmR0eXBlW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBjaGVja2luZyBib3VuZCB0eXBlIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuYm91bmRzKHN0cmJ1ZmYsIGkpICE9IGJvdW5kdHlwZVtpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgY2hlY2tpbmcgYm91bmQgdHlwZSBhdCBpbmRleCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgMCwgbGVuZ3RoLCBpKSAhPSBib3VuZHR5cGVbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGNoZWNraW5nIGJvdW5kIHR5cGUgYXQgaW5kZXggIiArIGkpOworICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIC8vIGRvZXMgbm90IHN0cmFkZGxlIGJldHdlZW4gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICBpbnQgc3RhcnQgPSA0OworICAgICAgICAgIGludCBsaW1pdCA9IDk7CisgICAgICAgICAgaW50IHN1YmJvdW5kdHlwZTFbXSA9IHtVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZfTsKKyAgICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5ib3VuZHMoYXJyYXksIHN0YXJ0LCBsaW1pdCwgLTEpOworICAgICAgICBlcnJsbigiRkFJTCBPdXQgb2YgYm91bmRzIGluZGV4IGluIGJvdW5kcyBzaG91bGQgZmFpbCIpOworICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIGdldHRpbmcgcmlkIG9mIHdhcm5pbmdzCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgIH0KKworICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQgLSBzdGFydDsgaSArKykgeworICAgICAgICBpZiAoVVRGMTYuYm91bmRzKGFycmF5LCBzdGFydCwgbGltaXQsIGkpICE9IHN1YmJvdW5kdHlwZTFbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQgU3ViYXJyYXkgYm91bmRzIGluIFsiICsgc3RhcnQgKyAiLCAiICsgbGltaXQgKworICAgICAgICAgICAgICAiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlMVtpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8vIHN0YXJ0cyBmcm9tIHRoZSBtaWQgb2YgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgIGludCBzdWJib3VuZHR5cGUyW10gPSB7VVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZfTsKKworICAgICAgICAgIHN0YXJ0ID0gNjsKKyAgICAgICAgICBsaW1pdCA9IDk7CisgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdCAtIHN0YXJ0OyBpICsrKSB7CisgICAgICAgIGlmIChVVEYxNi5ib3VuZHMoYXJyYXksIHN0YXJ0LCBsaW1pdCwgaSkgIT0gc3ViYm91bmR0eXBlMltpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUxFRCBTdWJhcnJheSBib3VuZHMgaW4gWyIgKyBzdGFydCArICIsICIgKyBsaW1pdCArCisgICAgICAgICAgICAgICJdIGV4cGVjdGVkICIgKyBzdWJib3VuZHR5cGUyW2ldICsgIiBhdCBvZmZzZXQgIiArIGkpOworICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gZW5kcyBpbiB0aGUgbWlkIG9mIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICBpbnQgc3ViYm91bmR0eXBlM1tdID0ge1VURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWX07CisgICAgICAgICAgc3RhcnQgPSA1OworICAgICAgICAgIGxpbWl0ID0gODsKKyAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUzW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgIl0gZXhwZWN0ZWQgIiArIHN1YmJvdW5kdHlwZTNbaV0gKyAiIGF0IG9mZnNldCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNoYXJBdCBhbmQgY2hhckF0Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENoYXJBdCgpCisgICAgeworICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0KKyAgICAgICAgbmV3IFN0cmluZ0J1ZmZlcigiMTIzNDVcdWQ4MDBcdWRjMDE2Nzg5MFx1ZDgwMFx1ZGMwMiIpOworICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQoc3RyYnVmZiwgMCkgIT0gJzEnIHx8IFVURjE2LmNoYXJBdChzdHJidWZmLCAyKSAhPSAnMycKKyAgICAgICAgICAgICAgfHwgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDUpICE9IDB4MTAwMDEgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDYpICE9IDB4MTAwMDEgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChzdHJidWZmLCAxMykgIT0gMHgxMDAwMikgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIGNoYXJhY3RlciBmcm9tIHN0cmluZyBidWZmZXIgZXJyb3IiICk7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChzdHIsIDApICE9ICcxJyB8fCBVVEYxNi5jaGFyQXQoc3RyLCAyKSAhPSAnMycgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0ciwgNSkgIT0gMHgxMDAwMSB8fCBVVEYxNi5jaGFyQXQoc3RyLCA2KSAhPSAweDEwMDAxCisgICAgICAgIHx8IFVURjE2LmNoYXJBdChzdHIsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChzdHIsIDEzKSAhPSAweDEwMDAyKQorICAgICAgICB7CisgICAgICAgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgY2hhcmFjdGVyIGZyb20gc3RyaW5nIGVycm9yIiApOworICAgICAgICB9CisgICAgICAgICAgY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICBpbnQgbGltaXQgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAwKSAhPSAnMScgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDIpICE9ICczJyB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNSkgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNikgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMTIpICE9IDB4MTAwMDIgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDEzKSAhPSAweDEwMDAyKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgY2hhcmFjdGVyIGZyb20gYXJyYXkgZXJyb3IiICk7CisgICAgICAgICAgfQorICAgICAgICAgIC8vIGNoZWNrIHRoZSBzdWIgYXJyYXkgaGVyZS4KKyAgICAgICAgICBzdGFydCA9IDY7CisgICAgICAgICAgbGltaXQgPSAxMzsKKyAgICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgLTEpOworICAgICAgICBlcnJsbigiRkFJTCBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgfQorICAgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA4KTsKKyAgICAgICAgZXJybG4oIkZBSUwgb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDApICE9IDB4ZGMwMSkgeworICAgICAgICBlcnJsbigiRkFJTCBFeHBlY3RlZCByZXN1bHQgaW4gc3ViYXJyYXkgMHhkYzAxIik7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNikgIT0gMHhkODAwKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEV4cGVjdGVkIHJlc3VsdCBpbiBzdWJhcnJheSAweGQ4MDAiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcmVwbGFjZWFibGUgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3RyKTsKKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAwKSAhPSAnMScgfHwKKyAgICAgICAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAyKSAhPSAnMycgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCA1KSAhPSAweDEwMDAxIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgNikgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDEyKSAhPSAweDEwMDAyIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgMTMpICE9IDB4MTAwMDIpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSByZXBsYWNlYWJsZSBlcnJvciIgKTsKKyAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNvdW50Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdW50Q29kZVBvaW50KCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIGNoYXIgICAgICAgICBhcnJheVtdID0gbnVsbDsKKyAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoIiIpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksMCAsMCkgIT0gMCkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBmb3IgZW1wdHkgc3RyaW5ncyIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoaXMgaXMgYSBzdHJpbmcgIik7CisgICAgICAgIFN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgIGFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworCisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgMCkgIT0gMCkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBmb3IgMCBvZmZzZXQgYXJyYXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gc2l6ZSB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSkgIT0gc2l6ZSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisKKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIDB4MTAwMDApOworICAgICAgICBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgIGFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplICsgMSkgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAyKSAhPSBzaXplICsgMSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChzdHJidWZmLCAweDYxKTsKKyAgICAgICAgc3RyID0gc3RyYnVmZi50b1N0cmluZygpOworICAgICAgICBhcnJheSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyKSAhPSBzaXplICsgMiB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChzdHJidWZmKSAhPSBzaXplICsgMiB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDEpICE9IHNpemUgKyAxIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplICsgMikgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAzKSAhPSBzaXplICsgMikgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGRlbGV0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REZWxldGUoKQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8wMTIzNDU2Nzg5MDEyMzQ1NgorICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoZXNlIGFyZSBzdHJpbmdzIik7CisgICAgICAgIGludCBzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAgICAgY2hhciBhcnJheVtdID0gc3RyYnVmZi50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIHN0cmJ1ZmYubGVuZ3RoKCkpOworICAgICAgICBlcnJsbigiRkFJTCBkZWxldGluZyBvdXQgb2YgYm91bmRzIGNoYXJhY3RlciBzaG91bGQgZmFpbCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgc3RyYnVmZi5sZW5ndGgoKSAtIDEpOworICAgICAgICBpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoInRoZSBzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyAiICsKKyAgICAgICAgICAiXCJ0aGUgc3RyaW5nXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgc2l6ZSk7CisgICAgICAgIGVycmxuKCJGQUlMIGRlbGV0aW5nIG91dCBvZiBib3VuZHMgY2hhcmFjdGVyIHNob3VsZCBmYWlsIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIHNpemUgLSAxKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIHNpemUpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoInRoZSBzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyAiICsKKyAgICAgICAgICAiXCJ0aGUgc3RyaW5nXCIiKTsKKyAgICAgICAgfQorICAgIC8vMDEyMzQ1Njc4ICAgICA5ICAgICAwMSAgICAgMiAgICAgIDMgICAgIDQKKyAgICAgICAgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInN0cmluZzogXHVkODAwXHVkYzAwIFx1ZDgwMVx1ZGMwMSBcdWQ4MDFcdWRjMDEiKTsKKyAgICAgICAgc2l6ZSA9IHN0cmJ1ZmYubGVuZ3RoKCk7CisgICAgICAgIGFycmF5ID0gc3RyYnVmZi50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOCk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA5KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOSk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA2KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDYpOworICAgICAgICBpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoInN0cmluZyIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzIFwic3RyaW5nXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA4KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOSk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA5KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgNik7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDYpOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBzaXplKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCJzdHJpbmciKSkgeworICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyBcInN0cmluZ1wiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50IGFuZCBmaW5kQ29kZVBvaW50T2Zmc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdGZpbmRPZmZzZXQoKQorICAgIHsKKyAgICAgICAgLy8gaml0dGVyYnVnIDQ3CisgICAgICAgIFN0cmluZyBzdHIgPSAiYVx1RDgwMFx1REMwMGIiOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyKTsKKyAgICAgICAgY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludCBsaW1pdCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgaWYgKFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDApICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyYnVmZiwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMCwgbGltaXQsIDApICE9IDApIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgZmlyc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMSkgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMSkgIT0gMSkgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBzZWNvbmQgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDIpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAyKSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMikgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAyKSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAyKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMikgIT0gMykgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSB0aGlyZCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgMykgIT0gMiB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHIsIDMpICE9IDQgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAzKSAhPSAyIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDMpICE9IDQgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDMpICE9IDIgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAzKSAhPSA0KSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGxhc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDQpICE9IDMgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCA0KSAhPSAzIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCA0KSAhPSAzKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGxlbmd0aCBvZmZzZXQgdG8gYSBzdHJpbmcgd2l0aCAiICsKKyAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDUpOworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICBsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgNCk7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIGxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCA1KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCA0KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgNSk7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIGxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCA0KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAxLCAzLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAxLCAzLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDEsIDMsIDEpICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMSwgMywgMikgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMSwgMywgMSkgIT0gMikgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHZhbGlkIGNvZGVwb2ludCBvZmZzZXQgaW4gc3ViIGFycmF5Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgZ2V0Q2hhckNvdW50LCAqU3Vycm9nYXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdldENoYXJDb3VudFN1cnJvZ2F0ZSgpCisgICAgeworICAgICAgICBpZiAoVVRGMTYuZ2V0Q2hhckNvdW50KDB4NjEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZ2V0Q2hhckNvdW50KDB4MTAwMDApICE9IDIpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgZ2V0Q2hhckNvdW50IHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHg2MSkgIT0gMCB8fAorICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDYxKSAhPSAweDYxIHx8CisgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikweDYxKSB8fAorICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKTB4NjEpIHx8CisgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxMDAwMCkgIT0gMHhkODAwIHx8CisgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MTAwMDApICE9IDB4ZGMwMCB8fAorICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpMHhkODAwKSAhPSB0cnVlIHx8CisgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHhkODAwKSB8fAorICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpMHhkYzAwKSB8fAorICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKTB4ZGMwMCkgIT0gdHJ1ZSkgeworICAgICAgICBlcnJsbigiRkFJTCAqU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpMHg2MSkgfHwgIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKTB4ZDgwMCkKKyAgICAgICAgICAgIHx8ICFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhcikweGRjMDApKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGlzU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZCBpbnNlcnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5zZXJ0KCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiMDEyMzQ1Njc4OSIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDEwOworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDUsICdzJyk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCA1LCAnZScpOworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygiMDEyMzR0ZXN0NTY3ODkiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgaW5zZXJ0aW5nIFwidGVzdFwiIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICd0Jyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA1LCAncycpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNSwgJ2UnKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICd0Jyk7CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHIuZXF1YWxzKCIwMTIzNHRlc3Q1Njc4OSIpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBpbnNlcnRpbmcgXCJ0ZXN0XCIiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgMCwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCAxMSwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCBzdHJidWZmLmxlbmd0aCgpLCAweDEwMDAwKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMDAxMjM0dGVzdFx1ZDgwMFx1ZGMwMDU2Nzg5XHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGluc2VydGluZyBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgMCwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAxMSwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCBsZW5ndGgsIDB4MTAwMDApOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHIuZXF1YWxzKAorICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAwMTIzNHRlc3RcdWQ4MDBcdWRjMDA1Njc4OVx1ZDgwMFx1ZGMwMCIpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBpbnNlcnRpbmcgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDY0LCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUwgaW52YWxpZCBpbnNlcnRpb24gb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAtMSwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNjQsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8gZXhjZWVkZWQgYXJyYXkgc2l6ZQorICAgICAgICBVVEYxNi5pbnNlcnQoYXJyYXksIGFycmF5Lmxlbmd0aCwgNjQsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3RpbmcgbW92ZUNvZGVQb2ludE9mZnNldCBBUElzCisgICAgICovCisKKyAgICAvLworICAgIC8vICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgLy8gICAgICBSdW4gYSBzaW5nbGUgdGVzdCBjYXNlIHRocm91Z2ggZWFjaCBvZiB0aGUgbW92ZUNvZGVQb2ludE9mZnNldCgpIGZ1bmN0aW9ucy4KKyAgICAvLyAgICAgICAgICBQYXJhbWV0ZXJzIC0KKyAgICAvLyAgICAgICAgICAgICAgcyAgICAgICAgICAgICAgIFRoZSBzdHJpbmcgdG8gd29yayBpbi4KKyAgICAvLyAgICAgICAgICAgICAgc3RhcnRJZHggICAgICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiB3aXRoaW4gdGhlIHN0cmluZy4KKyAgICAvLyAgICAgICAgICAgICAgYW1vdW50ICAgICAgICAgIFRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gbW92ZS4KKyAgICAvLyAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgIFRoZSBzdHJpbmcgaW5kZXggYWZ0ZXIgdGhlIG1vdmUsIG9yIC0xIGlmIHRoZQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICBwcml2YXRlIHZvaWQgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZyBzLCBpbnQgc3RhcnRJZHgsIGludCBhbW91bnQsIGludCBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICAvLyBUZXN0IHdpdGggdGhlIFN0cmluZyBmbGF2b3Igb2YgbW92ZUNvZGVQb2ludE9mZnNldAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQocywgc3RhcnRJZHgsIGFtb3VudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCAiICArIHJlc3VsdCArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRSZXN1bHQ9PS0xID8gImV4Y2VwdGlvbiIgOiBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZyBcIiIgKyBzICsgIlwiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3Qgd2l0aCB0aGUgU3RyaW5nQnVmZmVyIGZsYXZvciBvZiBtb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzYiwgc3RhcnRJZHgsIGFtb3VudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCAiICArIHJlc3VsdCArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRSZXN1bHQ9PS0xID8gImV4Y2VwdGlvbiIgOiBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZ0J1ZmZlciBcIiIgKyBzICsgIlwiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3Qgd2l0aCB0aGUgY2hhcltdIGZsYXZvciBvZiBtb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgICAgIGNoYXIgY2FbXSA9IHMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNhLCAwLCBzLmxlbmd0aCgpLCBzdGFydElkeCwgYW1vdW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjaGFyW10gXCIiICsgcyArICJcIiwgMCwgIiArIHMubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiIHJldHVybmVkICIgICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZFJlc3VsdD09LTEgPyAiZXhjZXB0aW9uIiA6IEludGVnZXIudG9TdHJpbmcoZXhwZWN0ZWRSZXN1bHQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2hhcltdIFwiIiArIHMgKyAiXCIsIDAsICIgKyBzLmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCBleGNlcHRpb24iICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUHV0IHRoZSB0ZXN0IHN0cmluZyBpbnRvIHRoZSBpbnRlcmlvciBvZiBhIGNoYXIgYXJyYXksCisgICAgICAgIC8vICAgcnVuIHRlc3Qgb24gdGhlIHN1YnNlY3Rpb24gb2YgdGhlIGFycmF5LgorICAgICAgICBjaGFyIGNhMltdID0gbmV3IGNoYXJbcy5sZW5ndGgoKSsyXTsKKyAgICAgICAgY2EyWzBdID0gKGNoYXIpMHhkODAwOworICAgICAgICBjYTJbcy5sZW5ndGgoKSsxXSA9IChjaGFyKTB4ZDhmZjsKKyAgICAgICAgcy5nZXRDaGFycygwLCBzLmxlbmd0aCgpLCBjYTIsIDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2EyLCAxLCBzLmxlbmd0aCgpKzEsIHN0YXJ0SWR4LCBhbW91bnQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNoYXJbXSBcIiIgKyAiLiIgKyBzICsgIi5cIiwgMSwgIiArIChzLmxlbmd0aCgpKzEpCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgIiAgKyByZXN1bHQgKyAiLCBleHBlY3RlZCByZXN1bHQgd2FzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkUmVzdWx0PT0tMSA/ICJleGNlcHRpb24iIDogSW50ZWdlci50b1N0cmluZyhleHBlY3RlZFJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjaGFyW10gXCIiICsgIi4iICsgcyArICIuXCIsIDEsICIgKyAocy5sZW5ndGgoKSsxKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgZXhjZXB0aW9uIiArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TW92ZUNvZGVQb2ludE9mZnNldCgpCisgICAgeworICAgICAgICAvLyBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nLCBzdGFydEluZGV4LCBhbW91bnQsIGV4cGVjdGVkICk7ICBleHBlY3RlZD0tMSBmb3IgZXhjZXB0aW9uLgorCisgICAgICAgIC8vIE5vIFN1cHBsZW1lbnRhcnkgY2hhcnMKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAxLCAgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDEsIC0yLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgIDIsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDEsICAzLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgIDAsIDEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMywgMCwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgNCwgMCwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDAsIDAsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIC0xLCAwLCAtMSk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCIiLCAwLCAwLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCIiLCAwLCAtMSwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIiIsIDAsIDEsIC0xKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImEiLCAwLCAwLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhIiwgMSwgMCwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYSIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImEiLCAxLCAtMSwgMCk7CisKKworICAgICAgICAvLyBTdXBwbGVtZW50YXJ5IGluIG1pZGRsZSBvZiBzdHJpbmcKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwXHVkYzAwYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgMCwgMiwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCAwLCAzLCA0KTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwXHVkYzAwYiIsIDAsIDQsIC0xKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTIsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTMsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgNCwgLTQsIC0xKTsKKworICAgICAgICAvLyBTdXBwbGVtZW50YXJ5IGF0IHN0YXJ0IG9mIHN0cmluZworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMCwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBcdWRjMDBhYiIsIDIsIDEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMiwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMCwgLTEsIC0xKTsKKworCisgICAgICAgIC8vIFN1cHBsZW1lbnRhcnkgYXQgZW5kIG9mIHN0cmluZworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMSwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAyLCAxLCA0KTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZDgwMFx1ZGMwMCIsIDMsIDEsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgNCwgMSwgLTEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCA1LCAtMiwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgNCwgLTEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMywgLTEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMSwgLTEsIDApOworCisgICAgICAgIC8vIFVucGFpcmVkIHN1cnJvZ2F0ZSBpbiBtaWRkbGUKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMSwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAyLCAxLCAzKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBiIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDIsIDEsIDMpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMFx1ZDgwMGIiLCAwLCAxLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDEsIDEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMiwgMSwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMFx1ZDgwMGIiLCAzLCAxLCA0KTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMywgLTEsIDIpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAzLCAtMSwgMik7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDEsIC0xLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDIsIC0xLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDMsIC0xLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDQsIC0xLCAzKTsKKworICAgICAgICAvLyBVbnBhaXJlZCBzdXJyb2dhdGUgYXQgc3RhcnQKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWRjMDBhYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMGFiIiwgMCwgMiwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkODAwYWIiLCAwLCAzLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWRjMDBcdWRjMDBhYiIsIDAsIDQsIDQpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkYzAwYWIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwYWIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwYWIiLCAxLCAtMiwgLTEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZDgwMGFiIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMFx1ZGMwMGFiIiwgMiwgLTIsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMFx1ZGMwMGFiIiwgMiwgLTMsIC0xKTsKKworICAgICAgICAvLyBVbnBhaXJlZCBzdXJyb2dhdGUgYXQgZW5kCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDMsIDEsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCAyLCAxLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgMSwgMSwgMik7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgNCwgLTEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCAzLCAtMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDIsIC0xLCAxKTsKKworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8wMTIzNDU2Nzg5MCAgICAgMSAgICAgMiAgICAgMyAgICAgNDU2Nzg5MDEyMzQKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoIjAxMjM0NTY3ODlcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEwMTIzNDU2Nzg5Iik7CisgICAgICAgIGludCBtb3ZlMVtdID0geyAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLAorICAgICAgICAgICAgICAgICAgICAgICAxMiwgMTIsIDE0LCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwKKyAgICAgICAgICAgICAgICAgICAgICAgMjEsIDIyLCAyMywgMjR9OworICAgICAgICBpbnQgbW92ZTJbXSA9IHsgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMiwKKyAgICAgICAgICAgICAgICAgICAgICAgMTQsIDE0LCAxNSwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsCisgICAgICAgICAgICAgICAgICAgICAgIDIyLCAyMywgMjQsIC0xfTsKKyAgICAgICAgaW50IG1vdmUzW10gPSB7IDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMiwgMTQsCisgICAgICAgICAgICAgICAgICAgICAgIDE1LCAxNSwgMTYsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLAorICAgICAgICAgICAgICAgICAgICAgICAyMywgMjQsIC0xLCAtMX07CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDEsIG1vdmUxW2ldKTsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDIsIG1vdmUyW2ldKTsKKyAgICAgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDMsIG1vdmUzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgc3RyYXJyYXlbXSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHJhcnJheSwgOSwgMTMsIDAsIDIpICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0IDAgYnkgMiBjb2RlcG9pbnQgaW4gc3ViYXJyYXkgWzksIDEzXSAiICsKKyAgICAgICAgICAgICJleHBlY3RlZCByZXN1bHQgMyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmFycmF5LCA5LCAxMywgMSwgMikgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMSBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbOSwgMTNdICIgKworICAgICAgICAgICAgImV4cGVjdGVkIHJlc3VsdCA0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYXJyYXksIDExLCAxNCwgMCwgMikgIT0gMykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMCBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbMTEsIDE0XSAiCisgICAgICAgICAgICAgICAgICAgICsgImV4cGVjdGVkIHJlc3VsdCAzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgc2V0Q2hhckF0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNldENoYXJBdCgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoIjAxMjM0NSIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDY7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCBpLCAnMCcpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgaSwgJzAnKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygiMDAwMDAwIikpIHx8CisgICAgICAgICEoc3RyLmVxdWFscygiMDAwMDAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvICcwJyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMCwgMHgxMDAwMCk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCA0LCAweDEwMDAwKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDcsIDB4MTAwMDApOworICAgICAgICBpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwMDBcdWQ4MDBcdWRjMDAwXHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvIDB4MTAwMDAgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDAsIDB4MTAwMDApOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNCwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA3LCAweDEwMDAwKTsKKyAgICAgICAgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCEoc3RyLmVxdWFscygiXHVkODAwXHVkYzAwMDBcdWQ4MDBcdWRjMDAwXHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXRDaGFyIHRvIDB4MTAwMDAgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDAsICcwJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCAxLCAnMScpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMiwgJzInKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDQsICczJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCA0LCAnNCcpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNSwgJzUnKTsKKyAgICAgICAgaWYgKCFzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCIwMTIzNDUiKSkgeworICAgICAgICBlcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBTdHJpbmdCdWZmZXIgdG8gQk1QICIgKworICAgICAgICAgICJjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDAsICcwJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCAxLCAnMScpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgMiwgJzInKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDQsICczJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA0LCAnNCcpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNSwgJzUnKTsKKyAgICAgICAgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCIwMTIzNDUiKSkgeworICAgICAgICBlcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBhcnJheSB0byBCTVAgIiArCisgICAgICAgICAgImNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICBlcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIC0xLCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldHRpbmcgY2hhcmFjdGVyIGF0IGludmFsaWQgb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCBsZW5ndGgsIDApOworICAgICAgICBlcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIGxlbmd0aCwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXR0aW5nIGNoYXJhY3RlciBhdCBpbnZhbGlkIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgdmFsdWVvZiBBUElzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhbHVlT2YoKQorICAgIHsKKyAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoJ1x1ZDgwMCcsJ1x1ZGMwMCcpIT0weDEwMDAwKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRDb2RlUG9pbnQoJ1x1ZDgwMCcsJ1x1ZGMwMCcpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFVVEYxNi52YWx1ZU9mKDB4NjEpLmVxdWFscygiYSIpIHx8CisgICAgICAgICFVVEYxNi52YWx1ZU9mKDB4MTAwMDApLmVxdWFscygiXHVkODAwXHVkYzAwIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IHZhbHVlb2YoY2hhcjMyKSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKCIwMTIzNFx1ZDgwMFx1ZGMwMDU2Nzg5Iik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsiMCIsICIxIiwgIjIiLCAiMyIsICI0IiwgIlx1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5In07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIGlmICghVVRGMTYudmFsdWVPZihzdHIsIGkpLmVxdWFscyhleHBlY3RlZFtpXSkgfHwKKyAgICAgICAgICAgICAgICAhVVRGMTYudmFsdWVPZihzdHJidWZmLCBpKS5lcXVhbHMoZXhwZWN0ZWRbaV0pIHx8CisgICAgICAgICAgICAgICAgIVVURjE2LnZhbHVlT2YoYXJyYXksIDAsIGxlbmd0aCwgaSkuZXF1YWxzKGV4cGVjdGVkW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB2YWx1ZU9mKCkgZXhwZWN0ZWQgIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyLCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgLTEpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCBsZW5ndGgsIC0xKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihzdHIsIGxlbmd0aCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgbGVuZ3RoKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihhcnJheSwgMCwgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVVURjE2LnZhbHVlT2YoYXJyYXksIDYsIGxlbmd0aCwgMCkuZXF1YWxzKCJcdWRjMDAiKSB8fAorICAgICAgICAhVVRGMTYudmFsdWVPZihhcnJheSwgMCwgNiwgNSkuZXF1YWxzKCJcdWQ4MDAiKSkgeworICAgICAgICBlcnJsbigiRkFJTDogZXJyb3IgZ2V0dGluZyBwYXJ0aWFsIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihhcnJheSwgMywgNSwgLTEpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAzLCA1LCAzKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5kZXhPZigpCisgICAgeworICAgIC8vMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1CisgICAgICAgIFN0cmluZyB0ZXN0MSAgICAgPSAidGVzdCB0ZXN0IHR0ZXN0IHRldGVzdCB0ZXN0ZXN0ZXN0c3R0IjsKKyAgICAgICAgU3RyaW5nIHRlc3QyICAgICA9ICJ0ZXN0IjsKKyAgICAgICAgaW50ICAgIHRlc3RDaGFyMSA9IDB4NzQ7CisgICAgICAgIGludCAgICB0ZXN0Q2hhcjIgPSAweDIwNDAyOworICAgICAgICAvLyBpbnQgICAgdGVzdENoYXIzID0gMHhkYzAyOworICAgICAgICAvLyBpbnQgICAgdGVzdENoYXI0ID0gMHhkODQxOworICAgICAgICBTdHJpbmcgdGVzdDMgICAgID0gIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1MDA3Mlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MyI7CisgICAgICAgIFN0cmluZyB0ZXN0NCAgICAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHRlc3RDaGFyMik7CisKKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyKSAhPSAwIHx8CisgICAgICAgICAgICBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0MiwgMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kICciICsgdGVzdDIgKworICAgICAgICAgICAgICAgICAgIicgYXQgcG9zaXRpb24gMCBpbiB0ZXh0ICciICsgdGVzdDEgKyAiJyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEpICE9IDAgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSwgMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMSkgKworICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMikgIT0gMCB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCAwKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIyKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDAgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRlc3Q1ID0gIlx1ZDg0MVx1ZDg0MVx1ZGMwMiI7CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKHRlc3Q1LCB0ZXN0Q2hhcjIpICE9IDEgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YodGVzdDUsIHRlc3RDaGFyMiwgMCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKworICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyBVdGlsaXR5LmhleCh0ZXN0MykgKyAiJyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIpICE9IDI5IHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIsIHRlc3QxLmxlbmd0aCgpKSAhPSAyOSkgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAnIiArIHRlc3QyICsKKyAgICAgICAgICAgICAgICAgICInIGF0IHBvc2l0aW9uIDI5IGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEpICE9IDM1IHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCB0ZXN0MS5sZW5ndGgoKSkgIT0gMzUpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIxKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDM1IGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIpICE9IDEzIHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCB0ZXN0My5sZW5ndGgoKSkgIT0gMTMpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKworICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyh0ZXN0Q2hhcjIpICsKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMTMgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAwOyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykKKyAgICAgICAgeworICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgIGlmIChzdGFydFBvcyA+PSAwKSB7CisgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIHN0YXJ0UG9zICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDYgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDEwOyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykKKyAgICAgICAgeworICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgIGlmIChzdGFydFBvcyA+PSAwKSB7CisgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIHN0YXJ0UG9zICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBzdGFydGluZyBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7CisgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAxMDsKKyAgICAgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDIgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7CisgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDE2KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMTYgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDEwOworICAgICAgICAgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0MS5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAxMikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDEyIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMDsKKyAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDU7IHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMykgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCAmIGVuZCBvZmZzZXRzIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAyIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDMyOyBzdGFydFBvcyAhPSAtMTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3QyLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyAtPSA1OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA2KSB7CisgICAgICAgICAgICBlcnJsbigibGFzdEluZGV4T2Ygd2l0aCBzdGFydGluZyBhbmQgZW5kaW5nIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAzMjsgc3RhcnRQb3MgIT0gLTE7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zIC09IDU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDcpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDExIG9jY3VycmVuY2VzLCBmb3VuZCAiCisgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICAvL3Rlc3RpbmcgVUNoYXIzMgorICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gdGVzdDMubGVuZ3RoKCk7IHN0YXJ0UG9zICE9IC0xOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCBzdGFydFBvcyAtIDUpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDMgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3Rpbmcgc3VwcGxlbWVudGFyeQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgaW50IGNoID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfW2ldOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXS5sZW5ndGg7CisgICAgICAgICBqICsrKSB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBleHBlY3RlZCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqXTsKKyAgICAgICAgaWYgIChqID4gMCkgeworICAgICAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl9JTkRFWF9baV1baiAtIDFdICsgMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgY2gsIGluZGV4KSAhPQorICAgICAgICAgICAgZXhwZWN0ZWQgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18sCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSwgaW5kZXgpICE9CisgICAgICAgICAgICBleHBlY3RlZCkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IDB4IiArCisgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpKTsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLmxlbmd0aCgpOworICAgICAgICBpZiAoaiA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXS5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqICsgMV0gLSAxOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgY2gsCisgICAgICAgICAgICAgICAgICAgICAgaW5kZXgpICE9IGV4cGVjdGVkIHx8CisgICAgICAgICAgICBVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSwgaW5kZXgpCisgICAgICAgICAgICAhPSBleHBlY3RlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgZmluZGluZyBsYXN0IGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBleHBlY3RlZCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfSU5ERVhfW2ldOworICAgICAgICBpZiAgKGkgPiAwKSB7CisgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baSAtIDFdICsgMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgIElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfLCBpbmRleCkgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IHN0cmluZyAiICsKKyAgICAgICAgICAgICAgaGV4KElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfKSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGkgPCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYXy5sZW5ndGggLSAxKSB7CisgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baSArIDFdIC0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSXywgaW5kZXgpICE9IGV4cGVjdGVkKSB7CisgICAgICAgIGVycmxuKCJGYWlsZWQgZmluZGluZyBsYXN0IGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IHN0cmluZyAiICsKKyAgICAgICAgICAgICAgaGV4KElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXBsYWNlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJPbmUgcG90YXRvLCB0d28gcG90YXRvLCB0aHJlZSBwb3RhdG8sIGZvdXJcbiI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJwb3RhdG8iOworICAgICAgICBTdHJpbmcgdGVzdDMgPSAiTUlTU0lTU0lQUEkiOworCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCB0ZXN0MiwgdGVzdDMpOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRWYWx1ZSA9CisgICAgICAgICAgICAiT25lIE1JU1NJU1NJUFBJLCB0d28gTUlTU0lTU0lQUEksIHRocmVlIE1JU1NJU1NJUFBJLCBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgdGVzdDMsIHRlc3QyKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9IHRlc3QxOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsICdlJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiT25lIHBvdGF0b2UgdHdvIHBvdGF0b2UgdGhyZWUgcG90YXRvZSBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsIDB4MTAwMDApOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIk9uZSBwb3RhdG9cdWQ4MDBcdWRjMDAgdHdvIHBvdGF0b1x1ZDgwMFx1ZGMwMCB0aHJlZSBwb3RhdG9cdWQ4MDBcdWRjMDAgZm91clxuIjsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkVmFsdWUpKSB7CisgICAgICAgICAgICBlcnJsbigiZmluZEFuZFJlcGxhY2UgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBleHBlY3RlZFZhbHVlICsKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgInBvdGF0byIsICJcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEiKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJPbmUgXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0d28gXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0aHJlZSBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEsIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB0ZXN0NCA9ICJcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDBcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGQ4MDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiQVx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMEFcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGRDMDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiXHVkODAwXHVkODAwXHVkYzAwXHVkODAwXHVkYzAwQVx1ZDgwMFx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMEEiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweDEwMDAwLCAnQScpOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIlx1ZDgwMEFBXHVkYzAwXHVkODAwQUFcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmV2ZXJzZSgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgImJhY2t3YXJkcyB3b3JkcyBzYXkgdG8gdXNlZCBJIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IFVURjE2LnJldmVyc2UodGVzdCk7CisgICAgICAgIGlmICghcmVzdWx0LnRvU3RyaW5nKCkuZXF1YWxzKCJJIGRlc3Ugb3QgeWFzIHNkcm93IHNkcmF3a2NhYiIpKSB7CisgICAgICAgICAgICBlcnJsbigicmV2ZXJzZSgpIGZhaWxlZDogIEV4cGVjdGVkIFwiSSBkZXN1IG90IHlhcyBzZHJvdyBzZHJhd2tjYWJcIixcbiBnb3QgXCIiCisgICAgICAgICAgKyByZXN1bHQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RidWZmZXIsIDB4MmY5OTkpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZDE1Zik7CisgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0YnVmZmVyLCAweDAwYzQpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZWQwKTsKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmV2ZXJzZSh0ZXN0YnVmZmVyKTsKKyAgICAgICAgaWYgKHJlc3VsdC5jaGFyQXQoMCkgIT0gMHgxZWQwIHx8CisgICAgICAgICAgICByZXN1bHQuY2hhckF0KDEpICE9IDB4YzQgfHwKKyAgICAgICAgICAgIFVURjE2LmNoYXJBdChyZXN1bHQsIDIpICE9IDB4MWQxNWYgfHwKKyAgICAgICAgICAgIFVURjE2LmNoYXJBdChyZXN1bHQsIDQpIT0weDJmOTk5KSB7CisgICAgICAgICAgICBlcnJsbigicmV2ZXJzZSgpIGZhaWxlZCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgc2V0dGVyIGFuZCBnZXR0ZXIgYXBpcyBmb3IgU3RyaW5nQ29tcGFyYXRvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpbmdDb21wYXJhdG9yKCkKKyAgICB7CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcGFyZSA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIGlmIChjb21wYXJlLmdldENvZGVQb2ludENvbXBhcmUoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgc3RyaW5nIGNvbXBhcmF0b3Igc2hvdWxkIGJlIGNvZGUgdW5pdCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBzdHJpbmcgY29tcGFyYXRvciBzaG91bGQgYmUgY2FzZSBzZW5zaXRpdmUgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgc3RyaW5nIGNvbXBhcmF0b3Igc2hvdWxkIGhhdmUgZm9sZCBjYXNlIGRlZmF1bHQgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0Q29kZVBvaW50Q29tcGFyZSh0cnVlKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0Q29kZVBvaW50Q29tcGFyZSgpICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNvZGUgcG9pbnQgY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0Q29kZVBvaW50Q29tcGFyZShmYWxzZSk7CisgICAgICAgIGlmIChjb21wYXJlLmdldENvZGVQb2ludENvbXBhcmUoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY29kZSBwb2ludCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gdHJ1ZQorICAgICAgICAgICAgfHwgY29tcGFyZS5nZXRJZ25vcmVDYXNlT3B0aW9uKCkKKyAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgaWdub3JlIGNhc2UgYW5kIG9wdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UoZmFsc2UsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgaWdub3JlIGNhc2UgYW5kIG9wdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gdHJ1ZQorICAgICAgICAgICAgfHwgY29tcGFyZS5nZXRJZ25vcmVDYXNlT3B0aW9uKCkKKyAgICAgICAgIT0gVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGlnbm9yZSBjYXNlIGFuZCBvcHRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKGZhbHNlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZSgpICE9IGZhbHNlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBpZ25vcmUgY2FzZSBhbmQgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludENvbXBhcmUoKQorICAgIHsKKyAgICAgICAgLy8gdGhlc2Ugc3RyaW5ncyBhcmUgaW4gYXNjZW5kaW5nIG9yZGVyCisgICAgICAgIFN0cmluZyBzdHJbXSA9IHsiXHUwMDYxIiwgIlx1MjBhY1x1ZDgwMSIsICJcdTIwYWNcdWQ4MDBcdWRjMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMCIsICJcdWQ4MDBcdWZmNjEiLCAiXHVkZmZmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdWZmNjFcdWRmZmYiLCAiXHVmZjYxXHVkODAwXHVkYzAyIiwgIlx1ZDgwMFx1ZGMwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODRkXHVkYzU2In07CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY3Bjb21wYXJlCisgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY3Vjb21wYXJlCisgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyLmxlbmd0aCAtIDE7ICsrIGkpIHsKKyAgICAgICAgICAgIGlmIChjcGNvbXBhcmUuY29tcGFyZShzdHJbaV0sIHN0cltpICsgMV0pID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGNvbXBhcmUoKSBpbiBjb2RlIHBvaW50IG9yZGVyIGZhaWxzIGZvciBzdHJpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyW2ldKSArICIgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHN0cltpICsgMV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHRlc3QgY29kZSB1bml0IGNvbXBhcmUKKyAgICAgICAgICAgIGlmIChjdWNvbXBhcmUuY29tcGFyZShzdHJbaV0sIHN0cltpICsgMV0pCisgICAgICAgICAgICAgICAgIT0gc3RyW2ldLmNvbXBhcmVUbyhzdHJbaSArIDFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogY29tcGFyZSgpIGluIGNvZGUgdW5pdCBvcmRlciBmYWlscyBmb3Igc3RyaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHN0cltpXSkgKyAiIGFuZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzdHJbaSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZUNvbXBhcmUoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG1peGVkID0gIlx1MDA2MVx1MDA0Mlx1MDEzMVx1MDNhM1x1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiI7CisgICAgICAgIFN0cmluZyBvdGhlckRlZmF1bHQgPSAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZmIjsKKyAgICAgICAgU3RyaW5nIG90aGVyRXhjbHVkZVNwZWNpYWxJID0gIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA1M1x1MDA3M1x1MDA2Nlx1MDA0Nlx1MDA2OVx1ZDkzZlx1ZGZmZiI7CisgICAgICAgIFN0cmluZyBkaWZmZXJlbnQgPSAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZkIjsKKworICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXBhcmUgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcigpOworICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIC8vIHRlc3QgdV9zdHJjYXNlY21wKCkKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZCwgb3RoZXJEZWZhdWx0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCwgb3RoZXIpID0gIiArIHJlc3VsdAorICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdCB1X3N0cmNhc2VjbXAoKSAtIGV4Y2x1ZGUgc3BlY2lhbCBpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICByZXN1bHQgPSBjb21wYXJlLmNvbXBhcmUobWl4ZWQsIG90aGVyRXhjbHVkZVNwZWNpYWxJKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGV4Y2x1ZGVfaSBjb21wYXJlKG1peGVkLCBvdGhlcikgPSAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHVfc3RyY2FzZWNtcCgpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZCwgZGlmZmVyZW50KTsKKyAgICAgICAgaWYgKHJlc3VsdCA8PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCwgZGlmZmVyZW50KSA9ICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIHBvc2l0aXZlIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHN1YnN0cmluZ3MgLSBzdG9wIGJlZm9yZSB0aGUgc2hhcnAgcyAoVSswMGRmKQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICByZXN1bHQgPSBjb21wYXJlLmNvbXBhcmUobWl4ZWQuc3Vic3RyaW5nKDAsIDQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW50LnN1YnN0cmluZygwLCA0KSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImVycm9yOiBkZWZhdWx0IGNvbXBhcmUobWl4ZWQgc3Vic3RyaW5nLCBkaWZmZXJlbnQgc3Vic3RyaW5nKSA9ICIKKyAgICAgICAgICArIHJlc3VsdCArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBzdWJzdHJpbmdzIC0gc3RvcCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzaGFycCBzIChVKzAwZGYpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZC5zdWJzdHJpbmcoMCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQuc3Vic3RyaW5nKDAsIDUpKTsKKyAgICAgICAgaWYgKHJlc3VsdCA8PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCBzdWJzdHJpbmcsIGRpZmZlcmVudCBzdWJzdHJpbmcpID0gIgorICAgICAgICAgICsgcmVzdWx0ICsgIiBpbnN0ZWFkIG9mIHBvc2l0aXZlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzTW9yZUNvZGVQb2ludHNUaGFuKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiXHUwMDYxXHUwMDYyXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxXHUwMDYzXHVkODAyXHUwMDY0IgorICAgICAgICArICJcdWRjMDNcdTAwNjVcdTAwNjZcdWQ4MDRcdWRjMDRcdWQ4MDVcdWRjMDVcdTAwNjciOworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAobGVuZ3RoID49IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gc3RyLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBudW1iZXIgPSAtMTsgbnVtYmVyIDw9ICgobGVuZ3RoIC0gaSkgKyAyKTsgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzLCBudW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZyAhPSAoVVRGMTYuY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKCIgKyBVdGlsaXR5LmhleChzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgbnVtYmVyICsgIikgPSAiICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3RpbmcgZm9yIG51bGwgYmFkIGlucHV0CisgICAgICAgIGZvcihsZW5ndGggPSAtMTsgbGVuZ3RoIDw9IDE7ICsrIGxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTI7IG51bWJlciA8PSAyOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKChTdHJpbmcpbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludCgoU3RyaW5nKW51bGwpID4gbnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihudWxsLCAiICsgbnVtYmVyICsgIikgPSAiCisgICAgICAgICAgICAgICAgICArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIHdoaWxlIChsZW5ndGggPj0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5zdWJzdHJpbmcoMCwgaSkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IG51bWJlciA9IC0xOyBudW1iZXIgPD0gKChsZW5ndGggLSBpKSArIDIpOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKHMsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludChzKSA+IG51bWJlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oIiArIFV0aWxpdHkuaGV4KHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBudW1iZXIgKyAiKSA9ICIgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgbnVsbCBiYWQgaW5wdXQKKyAgICAgICAgZm9yIChsZW5ndGggPSAtMTsgbGVuZ3RoIDw9IDE7ICsrIGxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTI7IG51bWJlciA8PSAyOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nQnVmZmVyKW51bGwsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnCisgICAgICAgICAgICAgICAgICAgICAgICAhPSAoVVRGMTYuY291bnRDb2RlUG9pbnQoKFN0cmluZ0J1ZmZlciludWxsKSA+IG51bWJlcikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihudWxsLCAiICsgbnVtYmVyICsgIikgPSAiCisgICAgICAgICAgICAgICAgICArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY2hhciBzdHJhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIHdoaWxlIChsZW5ndGggPj0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgbGltaXQgPSAwOyBsaW1pdCA8PSBsZW5ndGg7ICsrIGxpbWl0KSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8PSBsaW1pdDsgKysgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTE7IG51bWJlciA8PSAoKGxpbWl0IC0gc3RhcnQpICsgMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZsYWcgPSBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBsaW1pdCwgbnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludChzdHJhcnJheSwgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpID4gbnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyLnN1YnN0cmluZyhzdGFydCwgbGltaXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsgIiwgIiArIG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgPSAiICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3RpbmcgZm9yIG51bGwgYmFkIGlucHV0CisgICAgICAgIGZvciAobGVuZ3RoID0gLTE7IGxlbmd0aCA8PSAxOyArKyBsZW5ndGgpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IG51bWJlciA9IC0yOyBudW1iZXIgPD0gMjsgKysgbnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZ0J1ZmZlciludWxsLCBudW1iZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZworICAgICAgICAgICAgICAgICAgICAgICAgIT0gKFVURjE2LmNvdW50Q29kZVBvaW50KChTdHJpbmdCdWZmZXIpbnVsbCkgPiBudW1iZXIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4obnVsbCwgIiArIG51bWJlciArICIpID0gIgorICAgICAgICAgICAgICAgICAgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGJhZCBpbnB1dAorICAgICAgICB0cnkgeworICAgICAgICAgICAgVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKHN0cmFycmF5LCAtMiwgLTEsIDUpOworICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihjaGFyYXJyYXkpIHdpdGggbmVnYXRpdmUgaW5kZXhlcyBoYXMgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksIDUsIDIsIDUpOworICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihjaGFyYXJyYXkpIHdpdGggbGltaXQgbGVzcyB0aGFuIHN0YXJ0IGluZGV4IGhhcyB0byB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksIC0yLCAyLCA1KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oY2hhcmFycmF5KSB3aXRoIG5lZ2F0aXZlIHN0YXJ0IGluZGV4ZXMgY2FuJ3QgcmV0dXJuIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXdTdHJpbmcoKSB7CisgICAgZmluYWwgaW50W10gY29kZVBvaW50cyA9IHsKKyAgICAgICAgVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwgVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSksCisgICAgICAgIFVDaGFyYWN0ZXIudG9Db2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfSElHSF9TVVJST0dBVEUsIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpLAorICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgJ0EnLAorICAgICAgICAtMSwKKyAgICB9OworCisgICAgZmluYWwgU3RyaW5nIGNwU3RyaW5nID0gIiIgKworICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgKworICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUgKworICAgICAgICBVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArCisgICAgICAgICdBJzsKKworICAgIGZpbmFsIGludFtdW10gdGVzdHMgPSB7CisgICAgICAgIHsgMCwgMSwgMCwgMiB9LAorICAgICAgICB7IDAsIDIsIDAsIDQgfSwKKyAgICAgICAgeyAxLCAxLCAyLCAyIH0sCisgICAgICAgIHsgMSwgMiwgMiwgMyB9LAorICAgICAgICB7IDEsIDMsIDIsIDQgfSwKKyAgICAgICAgeyAyLCAyLCA0LCAyIH0sCisgICAgICAgIHsgMiwgMywgMCwgLTEgfSwKKyAgICAgICAgeyA0LCA1LCAwLCAtMSB9LAorICAgICAgICB7IDMsIC0xLCAwLCAtMSB9CisgICAgfTsKKworICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGludFtdIHQgPSB0ZXN0c1tpXTsKKyAgICAgICAgaW50IHMgPSB0WzBdOworICAgICAgICBpbnQgYyA9IHRbMV07CisgICAgICAgIGludCBycyA9IHRbMl07CisgICAgICAgIGludCByYyA9IHRbM107CisKKyAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYubmV3U3RyaW5nKGNvZGVQb2ludHMsIHMsIGMpOworICAgICAgICBpZiAocmMgPT0gLTEgfHwgIXN0ci5lcXVhbHMoY3BTdHJpbmcuc3Vic3RyaW5nKHJzLCBycytyYykpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIGNvZGVQb2ludHMgaXRlcjogIiArIGkgKyAiIHN0YXJ0OiAiICsgcyArICIgbGVuOiAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgZSA9IGUxOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgZSA9IGUyOworICAgICAgICB9CisgICAgICAgIGlmIChyYyAhPSAtMSkgeworICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgVVRGMTZUZXN0IHRlc3QgPSBuZXcgVVRGMTZUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIC8vIHRlc3QuVGVzdENhc2VDb21wYXJlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZyBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXyA9CisgICAgICAgICJcdWQ4NDFcdWRjMDJcdTAwNzFcdWRjMDJcdWQ4NDFcdTAwNzFcdWQ4NDFcdWRjMDJcdTAwNzFcdTAwNzIiICsKKyAgICAgICAgIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MyI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX1tdID0KKyAgICB7MHg3MSwgMHhkODQxLCAweGRjMDIsCisgICAgIFVURjE2VXRpbC5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKTB4ZDg0MSwKKyAgICAgICAgICAgICAgICAgKGNoYXIpMHhkYzAyKX07CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tdW10gPQorICAgIHt7MiwgNSwgOCwgMTIsIDE1fSwKKyAgICAgezQsIDE3fSwKKyAgICAgezMsIDE2fSwKKyAgICAgezAsIDYsIDEwLCAxM30KKyAgICB9OworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZyBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSXyA9ICJcdWRjMDJcdWQ4NDEiOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tdID0KKyAgICB7MywgMTZ9OworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbWFuaWZlc3QudGVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L21hbmlmZXN0LnRlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWFkNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L21hbmlmZXN0LnRlc3Quc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NsYXNzLVBhdGg6IGljdTRqLmphcgorTWFpbi1DbGFzczogY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbAorCitOYW1lOiBjb20vaWJtL2ljdS8KK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBUZXN0cworU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjQKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgZm9yIEphdmEKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNC4wCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9CYXNpY1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1ZjRlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9CYXNpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDI5MzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVTZXJpYWxpemVkU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworCitwdWJsaWMgY2xhc3MgQmFzaWNUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQmFzaWNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIFN0cmluZ1tdW10gY2Fub25UZXN0cyA9IHsKKyAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiY2F0IiwgICAgICAgICAgICAgICAgImNhdCIsICAgICAgICAgICAgICAgICAgImNhdCIgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICJcdTAwZTBhcmR2YXJrIiwgICAgICAiYVx1MDMwMGFyZHZhcmsiLCAgICAgICAiXHUwMGUwYXJkdmFyayIsICAgIH0sCisKKyAgICAgICAgeyAiXHUxZTBhIiwgICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICAgIlx1MWUwYSIgICAgICAgICAgICB9LCAvLyBELWRvdF9hYm92ZQorICAgICAgICB7ICJEXHUwMzA3IiwgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQgZG90X2Fib3ZlCisKKyAgICAgICAgeyAiXHUxZTBjXHUwMzA3IiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9iZWxvdyBkb3RfYWJvdmUKKyAgICAgICAgeyAiXHUxZTBhXHUwMzIzIiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9hYm92ZSBkb3RfYmVsb3cKKyAgICAgICAgeyAiRFx1MDMwN1x1MDMyMyIsICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBEIGRvdF9iZWxvdyBkb3RfYWJvdmUKKworICAgICAgICB7ICJcdTFlMTBcdTAzMDdcdTAzMjMiLCAiRFx1MDMyN1x1MDMyM1x1MDMwNyIsICAiXHUxZTEwXHUwMzIzXHUwMzA3In0sIC8vIEQgZG90X2JlbG93IGNlZGlsbGEgZG90X2Fib3ZlCisgICAgICAgIHsgIkRcdTAzMDdcdTAzMjhcdTAzMjMiLCJEXHUwMzI4XHUwMzIzXHUwMzA3IiwgICJcdTFlMGNcdTAzMjhcdTAzMDcifSwgLy8gRCBkb3RfYWJvdmUgb2dvbmVrIGRvdF9iZWxvdworCisgICAgICAgIHsgIlx1MUUxNCIsICAgICAgICAgICAgICJFXHUwMzA0XHUwMzAwIiwgICAgICAgICJcdTFFMTQiICAgICAgICAgICAgfSwgLy8gRS1tYWNyb24tZ3JhdmUKKyAgICAgICAgeyAiXHUwMTEyXHUwMzAwIiwgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3JvbiArIGdyYXZlCisgICAgICAgIHsgIlx1MDBjOFx1MDMwNCIsICAgICAgICJFXHUwMzAwXHUwMzA0IiwgICAgICAgICJcdTAwYzhcdTAzMDQiICAgICAgfSwgLy8gRS1ncmF2ZSArIG1hY3JvbgorCisgICAgICAgIHsgIlx1MjEyYiIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gYW5nc3Ryb21fc2lnbgorICAgICAgICB7ICJcdTAwYzUiLCAgICAgICAgICAgICAiQVx1MDMwYSIsICAgICAgICAgICAgICAiXHUwMGM1IiAgICAgICAgICAgIH0sIC8vIEEtcmluZworCisgICAgICAgIHsgIlx1MDBjNGZmaW4iLCAgICAgICAgICJBXHUwMzA4ZmZpbiIsICAgICAgICAgICJcdTAwYzRmZmluIiAgICAgICAgfSwKKyAgICAgICAgeyAiXHUwMGM0XHVGQjAzbiIsICAgICAgIkFcdTAzMDhcdUZCMDNuIiwgICAgICAgIlx1MDBjNFx1RkIwM24iICAgICB9LAorCisgICAgICAgIHsgIlx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy91cGRhdGVkIHdpdGggMy4wCisgICAgICAgIHsgIlx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxXHVGQjAzbiIsICAgICAgICJcdTAwZmRcdUZCMDNuIiAgICAgfSwgLy91cGRhdGVkIHdpdGggMy4wCisKKyAgICAgICAgeyAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorICAgICAgICB7ICJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgXHUyMTYzIiwgICAgICAgICAiSGVucnkgXHUyMTYzIiAgICAgIH0sCisKKyAgICAgICAgeyAiXHUzMEFDIiwgICAgICAgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBnYSAoS2F0YWthbmEpCisgICAgICAgIHsgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyB0ZW4KKyAgICAgICAgeyAiXHVGRjc2XHVGRjlFIiwgICAgICAgIlx1RkY3Nlx1RkY5RSIsICAgICAgICAgIlx1RkY3Nlx1RkY5RSIgICAgICB9LCAvLyBod19rYSArIGh3X3RlbgorICAgICAgICB7ICJcdTMwQUJcdUZGOUUiLCAgICAgICAiXHUzMEFCXHVGRjlFIiwgICAgICAgICAiXHUzMEFCXHVGRjlFIiAgICAgIH0sIC8vIGthICsgaHdfdGVuCisgICAgICAgIHsgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdUZGNzZcdTMwOTkiLCAgICAgICAgICJcdUZGNzZcdTMwOTkiICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICB7ICJBXHUwMzAwXHUwMzE2IiwgIkFcdTAzMTZcdTAzMDAiLCAiXHUwMEMwXHUwMzE2IiB9LAorICAgICAgICB7IlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIiwiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1IiwgIlxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1XFxVMDAwMUQxNTdcXFUwMDAxRDE2NSJ9LAorICAgIH07CisKKyAgICBTdHJpbmdbXVtdIGNvbXBhdFRlc3RzID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiY2F0IiwgICAgICAgICAgICAgICAgICJjYXQiLCAgICAgICAgICAgICAgICAgICAgICJjYXQiICAgICAgICAgICB9LAorICAgICAgICB7ICJcdUZCNGYiLCAgICAgICAgICAgICAiXHUwNUQwXHUwNURDIiwgICAgICAgICAiXHUwNUQwXHUwNURDIiwgICAgIH0sIC8vIEFsZWYtTGFtZWQgdnMuIEFsZWYsIExhbWVkCisKKyAgICAgICAgeyAiXHUwMEM0ZmZpbiIsICAgICAgICAgIkFcdTAzMDhmZmluIiwgICAgICAgICAgIlx1MDBDNGZmaW4iICAgICAgICB9LAorICAgICAgICB7ICJcdTAwQzRcdUZCMDNuIiwgICAgICAiQVx1MDMwOGZmaW4iLCAgICAgICAgICAiXHUwMEM0ZmZpbiIgICAgICAgIH0sIC8vIGZmaSBsaWdhdHVyZSAtPiBmICsgZiArIGkKKworICAgICAgICB7ICJcdTAwZmRmZmluIiwgICAgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sICAgICAgICAvL3VwZGF0ZWQgZm9yIDMuMAorICAgICAgICB7ICJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sIC8vIGZmaSBsaWdhdHVyZSAtPiBmICsgZiArIGkKKworICAgICAgICB7ICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgIHsgIkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKworICAgICAgICB7ICJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgeyAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorCisgICAgICAgIHsgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICAvKiBUaGVzZSB0d28gYXJlIGJyb2tlbiBpbiBVbmljb2RlIDIuMS4yIGJ1dCBmaXhlZCBpbiAyLjEuNSBhbmQgbGF0ZXIqLworICAgICAgICB7ICJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGh3X2thICsgaHdfdGVuCisgICAgICAgIHsgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyBod190ZW4KKworICAgIH07CisKKyAgICAvLyBXaXRoIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBIYW5ndWwgc3lsbGFibGVzIHNob3VsZCBnZXQgZGVjb21wb3NlZAorICAgIC8vIGludG8gSmFtbywgYnV0IEphbW8gY2hhcmFjdGVycyBzaG91bGQgbm90IGJlIGRlY29tcG9zZWQgaW50bworICAgIC8vIGNvbmpvaW5pbmcgSmFtbworICAgIFN0cmluZ1tdW10gaGFuZ3VsQ2Fub24gPSB7CisgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgIHsgIlx1ZDRkYiIsICAgICAgICAgICAgICJcdTExMTFcdTExNzFcdTExYjYiLCAgICJcdWQ0ZGIiICAgICAgICB9LAorICAgICAgICB7ICJcdTExMTFcdTExNzFcdTExYjYiLCAiXHUxMTExXHUxMTcxXHUxMWI2IiwgICAiXHVkNGRiIiAgICAgICAgfSwKKyAgICB9OworCisgICAgLy8gV2l0aCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gdHVybmVkIG9uLAorICAgIC8vIGl0IHNob3VsZCBnbyBhbGwgdGhlIHdheSBkb3duIHRvIGNvbmpvaW5pbmcgSmFtbyBjaGFyYWN0ZXJzLgorICAgIC8vIFRISVMgSVMgTk8gTE9OR0VSIFRSVUUgSU4gVU5JQ09ERSB2Mi4xLjgsIFNPIFRISVMgVEVTVCBJUyBPQlNPTEVURQorICAgIFN0cmluZ1tdW10gaGFuZ3VsQ29tcGF0ID0geworICAgICAgICAvLyBJbnB1dCAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgLy8geyAiXHVkNGRiIiwgICAgICJcdTExMTFcdTExNmVcdTExNzVcdTExYWZcdTExYzIiLCAgICJcdWQ0NzhcdTExNzVcdTExYWZcdTExYzIiICB9LAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsQ29tcG9zZSgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBjb21wb3NpdGlvbiBtZXRob2RzIHdvcmsKKyAgICAgICAgbG9nbG4oIkNhbm9uaWNhbCBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBoYW5ndWxDYW5vbiwgIDIpOworICAgICAgICBsb2dsbigiQ29tcGF0aWJpbGl0eSBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLQywgaGFuZ3VsQ29tcGF0LCAyKTsKKyAgICAgICAgLy8gTm93IHRyeSBpdGVyYXRpdmUgY29tcG9zaXRpb24uLi4uCisgICAgICAgIGxvZ2xuKCJJdGVyYXRpdmUgY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBoYW5ndWxDYW5vbiwgMik7CisKKyAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENvbXBhdCwgMik7CisKKyAgICAgICAgLy8gQW5kIGZpbmFsbHksIG1ha2Ugc3VyZSB5b3UgY2FuIGRvIGl0IGluIHJldmVyc2UgdG9vCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORkMpOworICAgICAgICBiYWNrQW5kRm9ydGgobm9ybSwgaGFuZ3VsQ2Fub24pOworICAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsRGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBkZWNvbXBvc2l0aW9uIG1ldGhvZHMgd29yaworICAgICAgICBsb2dsbigiQ2Fub25pY2FsIGRlY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GRCwgaGFuZ3VsQ2Fub24sICAxKTsKKyAgICAgICAgbG9nbG4oIkNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCwgaGFuZ3VsQ29tcGF0LCAxKTsKKworICAgICAgICAgLy8gTm93IHRoZSBpdGVyYXRpdmUgZGVjb21wb3NpdGlvbiBtZXRob2RzLi4uCisgICAgICAgIGxvZ2xuKCJJdGVyYXRpdmUgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENhbm9uLCAxKTsKKworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgaGFuZ3VsQ29tcGF0LCAxKTsKKworICAgICAgICAvLyBBbmQgZmluYWxseSwgbWFrZSBzdXJlIHlvdSBjYW4gZG8gaXQgaW4gcmV2ZXJzZSB0b28KKyAgICAgICAgbG9nbG4oIlJldmVyc2UgaXRlcmF0aW9uLi4uIik7CisgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIGJhY2tBbmRGb3J0aChub3JtLCBoYW5ndWxDYW5vbik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3ROb25lKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTk9ORSwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY2Fub25UZXN0cywgMCk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5OT05FLCBjYW5vblRlc3RzLCAwKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlY29tcCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY2Fub25UZXN0cywgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uVGVzdHMsIDEpOworICAgICAgICBkZWNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZELCBjYW5vblRlc3RzLCAxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGF0RGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZLRCwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY29tcGF0VGVzdHMsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCxjb21wYXRUZXN0cywgMSk7CisgICAgICAgIGRlY29tcG9zZVRlc3QoTm9ybWFsaXplci5ORktELGNvbXBhdFRlc3RzLCAxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25Db21wb3NlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjYW5vblRlc3RzLCAyKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GQywgY2Fub25UZXN0cywgMik7CisgICAgICAgIGNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjYW5vblRlc3RzLCAyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGF0Q29tcG9zZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNvbXBhdFRlc3RzLCAyKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgICAgICBjb21wb3NlVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBsb2RpbmdCYXNlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gXHUwMTdmIC0gTGF0aW4gc21hbGwgbGV0dGVyIGxvbmcgcworICAgICAgICAvLyBcdTAzMDcgLSBjb21iaW5pbmcgZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU2MSAtIExhdGluIHNtYWxsIGxldHRlciBzIHdpdGggZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU5YiAtIExhdGluIHNtYWxsIGxldHRlciBsb25nIHMgd2l0aCBkb3QgYWJvdmUKKyAgICAgICAgU3RyaW5nW11bXSBjYW5vbiA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7ICJUc2NodVx1MDE3ZiIsICAgICAgICAiVHNjaHVcdTAxN2YiLCAgICAgICAgICAiVHNjaHVcdTAxN2YiICAgIH0sCisgICAgICAgICAgICB7ICJUc2NodVx1MWU5YiIsICAgICAgICAiVHNjaHVcdTAxN2ZcdTAzMDciLCAgICAiVHNjaHVcdTFlOWIiICAgIH0sCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gY29tcGF0ID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsgIlx1MDE3ZiIsICAgICAgICAicyIsICAgICAgICAgICAgICAicyIgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJcdTFlOWIiLCAgICAgICAgInNcdTAzMDciLCAgICAgICAgIlx1MWU2MSIgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uLCAgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGNhbm9uLCAgMik7CisKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0QsIGNvbXBhdCwgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktDLCBjb21wYXQsIDIpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIFRpYmV0YW4gdm93ZWwgc2lnbiBBQSwgMGY3MSwgd2FzIG1lc3NlZCB1cCBwcmlvciB0bworICAgICAqIFVuaWNvZGUgdmVyc2lvbiAyLjEuOS4KKyAgICAgKiBPbmNlIDIuMS45IG9yIDMuMCBpcyByZWxlYXNlZCwgdW5jb21tZW50IHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGliZXRhbigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdW10gZGVjb21wID0geworICAgICAgICAgICAgeyAiXHUwZjc3IiwgIlx1MGY3NyIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBjb21wb3NlID0geworICAgICAgICAgICAgeyAiXHUwZmIyXHUwZjcxXHUwZjgwIiwgIlx1MGZiMlx1MGY3MVx1MGY4MCIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZELCBkZWNvbXAsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCxkZWNvbXAsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjb21wb3NlLCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcG9zZSwgMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGNoYXJhY3RlcnMgaW4gdGhlIENvbXBvc2l0aW9uRXhjbHVzaW9uLnR4dCBsaXN0IGRvIG5vdCBnZXQKKyAgICAgKiBjb21wb3NlZCB0by4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zaXRpb25FeGNsdXNpb24oKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIC8vIFRoaXMgbGlzdCBpcyBnZW5lcmF0ZWQgZnJvbSBDb21wb3NpdGlvbkV4Y2x1c2lvbi50eHQuCisgICAgICAgIC8vIFVwZGF0ZSB3aGVuZXZlciB0aGUgbm9ybWFsaXplciB0YWJsZXMgYXJlIHVwZGF0ZWQuICBOb3RlCisgICAgICAgIC8vIHRoYXQgd2UgdGVzdCBhbGwgY2hhcmFjdGVycyBsaXN0ZWQsIGV2ZW4gdGhvc2UgdGhhdCBjYW4gYmUKKyAgICAgICAgLy8gZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlIERCIGFuZCBhcmUgdGhlcmVmb3JlIGNvbW1lbnRlZAorICAgICAgICAvLyBvdXQuCisgICAgICAgIFN0cmluZyBFWENMVURFRCA9CisgICAgICAgICAgICAiXHUwMzQwXHUwMzQxXHUwMzQzXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4IiArCisgICAgICAgICAgICAiXHUwOTU5XHUwOTVBXHUwOTVCXHUwOTVDXHUwOTVEXHUwOTVFXHUwOTVGXHUwOURDIiArCisgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAiXHUwQjVDXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5IiArCisgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyIiArCisgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAiXHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJFXHUxRkM5XHUxRkNCXHUxRkQzXHUxRkRCIiArCisgICAgICAgICAgICAiXHUxRkUzXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwIiArCisgICAgICAgICAgICAiXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5XHUyMzJBXHVGOTAwXHVGQTEwIiArCisgICAgICAgICAgICAiXHVGQTEyXHVGQTE1XHVGQTIwXHVGQTIyXHVGQTI1XHVGQTI2XHVGQTJBXHVGQjFGIiArCisgICAgICAgICAgICAiXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFXHVGQjJGXHVGQjMwXHVGQjMxIiArCisgICAgICAgICAgICAiXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2XHVGQjM4XHVGQjM5XHVGQjNBIiArCisgICAgICAgICAgICAiXHVGQjNCXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2IiArCisgICAgICAgICAgICAiXHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCXHVGQjRDXHVGQjREXHVGQjRFIjsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEVYQ0xVREVELmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoRVhDTFVERUQuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIFN0cmluZyBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIFN0cmluZyBjID0gTm9ybWFsaXplci5ub3JtYWxpemUoYiwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgaWYgKGMuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGhleChhKSArICIgeCBERUNPTVBfQ09NUEFUID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChiKSArICIgeCBDT01QT1NFID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChjKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2Qgd29ya3MgdG9vLCBidXQgaXQgaXMgc29tZXdoYXQKKyAgICAgICAgLy8gaW5jZXN0dW91cy4gIEl0IHVzZXMgVUluZm8sIHdoaWNoIGlzIHRoZSBzYW1lIGRhdGFiYXNlIHRoYXQKKyAgICAgICAgLy8gTm9ybWFsaXplckJ1aWxkZXIgdXNlcywgc28gaWYgc29tZXRoaW5nIGlzIHdyb25nIHdpdGgKKyAgICAgICAgLy8gVUluZm8sIHRoZSBmb2xsb3dpbmcgdGVzdCB3b24ndCBzaG93IGl0LiAgQWxsIGl0IHdpbGwgc2hvdworICAgICAgICAvLyBpcyB0aGF0IE5vcm1hbGl6ZXJCdWlsZGVyIGhhcyBiZWVuIHJ1biB3aXRoIHdoYXRldmVyIHRoZQorICAgICAgICAvLyBjdXJyZW50IFVJbmZvIGlzLgorICAgICAgICAvLworICAgICAgICAvLyBXZSBjb21tZW50IHRoaXMgb3V0IGluIGZhdm9yIG9mIHRoZSB0ZXN0IGFib3ZlLCB3aGljaAorICAgICAgICAvLyBwcm92aWRlcyBpbmRlcGVuZGVudCB2ZXJpZmljYXRpb24gKGJ1dCBhbHNvIHJlcXVpcmVzCisgICAgICAgIC8vIGluZGVwZW5kZW50IHVwZGF0aW5nKS4KKy8vICAgICAgbG9nbG4oIi0tLSIpOworLy8gICAgICBVSW5mbyB1aW5mbyA9IG5ldyBVSW5mbygpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8PTB4RkZGRjsgKytpKSB7CisvLyAgICAgICAgICBpZiAoIXVpbmZvLmlzRXhjbHVkZWRDb21wb3NpdGlvbigoY2hhcilpKSB8fAorLy8gICAgICAgICAgICAgICghdWluZm8uaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbigoY2hhcilpKSAmJgorLy8gICAgICAgICAgICAgICAhdWluZm8uaGFzQ29tcGF0aWJpbGl0eURlY29tcG9zaXRpb24oKGNoYXIpaSkpKSBjb250aW51ZTsKKy8vICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoKGNoYXIpaSk7CisvLyAgICAgICAgICBTdHJpbmcgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULDApOworLy8gICAgICAgICAgU3RyaW5nIGMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiLE5vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKy8vICAgICAgICAgIGlmIChjLmVxdWFscyhhKSkgeworLy8gICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IERFQ09NUF9DT01QQVQgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGIpICsgIiB4IENPTVBPU0UgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGMpKTsKKy8vICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKy8vICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworLy8gICAgICAgICAgfQorLy8gICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIHRoYXQgc2hvd2VkIHVwIGp1c3QgYmVmb3JlIElDVSAxLjYgcmVsZWFzZQorICAgICAqIGhhdmluZyB0byBkbyB3aXRoIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHdpdGggYW4gaW5kZXggb2YgemVyby4KKyAgICAgKiBTdWNoIGNoYXJhY3RlcnMgZG8gbm90IHBhcnRpY2lwYXRlIGluIGFueSBjYW5vbmljYWwKKyAgICAgKiBkZWNvbXBvc2l0aW9ucy4gIEhvd2V2ZXIsIGhhdmluZyBhbiBpbmRleCBvZiB6ZXJvIG1lYW5zIHRoYXQKKyAgICAgKiB0aGV5IGFsbCBzaGFyZSBvbmUgdHlwZU1hc2tbXSBlbnRyeSwgdGhhdCBpcywgdGhleSBhbGwgaGF2ZSB0bworICAgICAqIG1hcCB0byB0aGUgc2FtZSBjYW5vbmljYWwgY2xhc3MsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZSwgaW4KKyAgICAgKiByZWFsaXR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RaZXJvSW5kZXgoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBFeHBlY3QgY29sMSB4IENPTVBPU0VfQ09NUEFUID0+IGNvbDIKKyAgICAgICAgICAgIC8vIEV4cGVjdCBjb2wyIHggREVDT01QID0+IGNvbDMKKyAgICAgICAgICAgICJBXHUwMzE2XHUwMzAwIiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzAwXHUwMzE2IiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzI3XHUwMzAwIiwgIlx1MDBDMFx1MDMyNyIsICJBXHUwMzI3XHUwMzAwIiwKKyAgICAgICAgICAgICJjXHUwMzIxXHUwMzI3IiwgImNcdTAzMjFcdTAzMjciLCAiY1x1MDMyMVx1MDMyNyIsCisgICAgICAgICAgICAiY1x1MDMyN1x1MDMyMSIsICJcdTAwRTdcdTAzMjEiLCAiY1x1MDMyN1x1MDMyMSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IERBVEFbaV07CisgICAgICAgICAgICBTdHJpbmcgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzFdOworICAgICAgICAgICAgaWYgKGIuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggQ09NUE9TRV9DT01QQVQgPT4gIiArIGhleChiKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IENPTVBPU0VfQ09NUEFUID0+ICIgKyBoZXgoYikgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGIsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGV4cCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaGV4KGIpICsgIiB4IERFQ09NUCA9PiAiICsgaGV4KGEpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYikgKyAiIHggREVDT01QID0+ICIgKyBoZXgoYSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIGZvdW5kIGJ5IFZlcmlzaWduLiAgUHJvYmxlbSBpcyB0aGF0CisgICAgICogY2hhcmFjdGVycyBhdCB0aGUgc3RhcnQgb2YgYSBzdHJpbmcgYXJlIG5vdCBwdXQgaW4gY2Fub25pY2FsCisgICAgICogb3JkZXIgY29ycmVjdGx5IGJ5IGNvbXBvc2UoKSBpZiB0aGVyZSBpcyBubyBzdGFydGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJpc2lnbigpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gaW5wdXRzID0geworICAgICAgICAgICAgIlx1MDViOFx1MDViOVx1MDViMVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNTkyXHUwNWI3XHUwNWJjXHUwNWE1XHUwNWIwXHUwNWMwXHUwNWM0XHUwNWFkIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBvdXRwdXRzID0geworICAgICAgICAgICAgIlx1MDViMVx1MDViOFx1MDViOVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNWIwXHUwNWI3XHUwNWJjXHUwNWE1XHUwNTkyXHUwNWMwXHUwNWFkXHUwNWM0IgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBpbnB1dHNbaV07CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gb3V0cHV0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwgZmFsc2UpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKG91dHB1dCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpbnB1dDogIiArIGhleChpbnB1dCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgZGVjb21wb3NlOiAiICsgaGV4KHJlc3VsdCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgIGV4cGVjdGVkOiAiICsgaGV4KG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMob3V0cHV0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGlucHV0OiAiICsgaGV4KGlucHV0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgIGNvbXBvc2U6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgZXhwZWN0ZWQ6ICIgKyBoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCAgVGVzdFF1aWNrQ2hlY2tSZXN1bHROTygpCisgICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkRbXSA9IHsweDAwQzUsIDB4MDQwNywgMHgxRTAwLCAweDFGNTcsIDB4MjIwQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMEFFLCAweEFDMDAsIDB4RDdBMywgMHhGQjM2LCAweEZCNEV9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZDW10gPSB7MHgwMzQwLCAweDBGOTMsIDB4MUY3NywgMHgxRkJCLCAweDFGRUIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCwgMHgyMzJBLCAweEY5MDAsIDB4RkExRSwgMHhGQjRFfTsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GS0RbXSA9IHsweDAwQTAsIDB4MDJFNCwgMHgxRkRCLCAweDI0RUEsIDB4MzJGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhBQzAwLCAweEZCNEUsIDB4RkExMCwgMHhGRjNGLCAweEZBMkR9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLQ1tdID0gezB4MDBBMCwgMHgwMTdGLCAweDIwMDAsIDB4MjRFQSwgMHgzMkZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzRkUsIDB4RkI0RSwgMHhGQTEwLCAweEZGM0YsIDB4RkEyRH07CisKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworCisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGZvciAoOyBjb3VudCA8IFNJWkU7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELDApICE9IE5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBhdCBVKyIgKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkNbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApICE9Tm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLRFtjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsMCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKSAhPU5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3IgaW1wcm92aW5nIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MpICE9Tm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgVGVzdFF1aWNrQ2hlY2tSZXN1bHRZRVMoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkRbXSA9IHsweDAwQzYsIDB4MDE3RiwgMHgwRjc0LCAweDEwMDAsIDB4MUU5QSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMjYxLCAweDMwNzUsIDB4NDAwMCwgMHg1MDAwLCAweEYwMDB9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZDW10gPSB7MHgwNDAwLCAweDA1NDAsIDB4MDkwMSwgMHgxMDAwLCAweDE1MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUU5QSwgMHgzMDAwLCAweDQwMDAsIDB4NTAwMCwgMHhGMDAwfTsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GS0RbXSA9IHsweDAwQUIsIDB4MDJBMCwgMHgxMDAwLCAweDEwMjcsIDB4MkZGQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRkZGLCAweDRGRkYsIDB4QTAwMCwgMHhGMDAwLCAweEZBMjd9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLQ1tdID0gezB4MDBCMCwgMHgwMTAwLCAweDAyMDAsIDB4MEEwMiwgMHgxMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAsIDB4MzAzMCwgMHg0MDAwLCAweEEwMDAsIDB4RkEwRX07CisKKyAgICAgICAgZmluYWwgaW50IFNJWkUgPSAxMDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICBjaGFyIGNwID0gMDsKKyAgICAgICAgd2hpbGUgKGNwIDwgMHhBMCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihjcCksIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GQywwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihjcCksIE5vcm1hbGl6ZXIuTkZLRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0QgcXVpY2sgY2hlY2sgYXQgVSsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORktDLDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGltcHJvdmUgdGhlIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORktDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjcCsrOworICAgICAgICB9CisKKyAgICAgICAgZm9yICg7IGNvdW50IDwgU0laRTsgY291bnQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkRbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkNbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GS0RbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktELDApIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGltcHJvdmUgdGhlIGNvdmVyYWdlCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MpIT1Ob3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEJlbmdhbGkoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgaW5wdXQgPSAiXHUwOWJjXHUwOWJlXHUwOWNkXHUwOWJlIjsKKyAgICAgICAgU3RyaW5nIG91dHB1dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCxOb3JtYWxpemVyLk5GQyk7CisgICAgICAgIGlmKCFpbnB1dC5lcXVhbHMob3V0cHV0KSl7CisgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBvZiBzdHJpbmciKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1Jlc3VsdE1BWUJFKCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworCisgICAgICAgIGZpbmFsIGNoYXJbXSBDUE5GQyA9IHsweDAzMDYsIDB4MDY1NCwgMHgwQkJFLCAweDEwMkUsIDB4MTE2MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTZBLCAweDExNzMsIDB4MTE3NSwgMHgzMDk5LCAweDMwOUF9OworICAgICAgICBmaW5hbCBjaGFyW10gQ1BORktDID0gezB4MDMwMCwgMHgwNjU0LCAweDA2NTUsIDB4MDlENywgMHgwQjNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBEQ0YsIDB4RERGLCAweDEwMkUsIDB4MTFBOCwgMHgzMDk5fTsKKworCisgICAgICAgIGZpbmFsIGludCBTSVpFID0gMTA7CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvKiBORkQgYW5kIE5GS0QgZG9lcyBub3QgaGF2ZSBhbnkgTUFZQkUgY29kZXBvaW50cyAqLworICAgICAgICBmb3IgKDsgY291bnQgPCBTSVpFOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApIT1Ob3JtYWxpemVyLk1BWUJFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORkNbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywwKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORktDW2NvdW50XX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORktDW2NvdW50XX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5PTkUsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1N0cmluZ1Jlc3VsdCgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBTdHJpbmcgZDsKKyAgICAgICAgU3RyaW5nIGM7CisKKyAgICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY2Fub25UZXN0cy5sZW5ndGg7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBkID0gY2Fub25UZXN0c1tjb3VudF1bMV07CisgICAgICAgICAgICBjID0gY2Fub25UZXN0c1tjb3VudF1bMl07CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGQsTm9ybWFsaXplci5ORkQsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGMsIE5vcm1hbGl6ZXIuTkZDLDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY29tcGF0VGVzdHMubGVuZ3RoOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgZCA9IGNvbXBhdFRlc3RzW2NvdW50XVsxXTsKKyAgICAgICAgICAgIGMgPSBjb21wYXRUZXN0c1tjb3VudF1bMl07CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGQsIE5vcm1hbGl6ZXIuTkZLRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGMsICBOb3JtYWxpemVyLk5GS0MsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgZm9yIHN0cmluZyBhdCBjb3VudCAiICsgY291bnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcWNUb0ludChOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcWMpIHsKKyAgICAgICAgaWYocWM9PU5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYocWM9PU5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIC8qIE5vcm1hbGl6ZXIuTUFZQkUgKi8geworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1BlckNQKCkgeworICAgICAgICBpbnQgYywgbGVhZCwgdHJhaWw7CisgICAgICAgIFN0cmluZyBzLCBuZmQ7CisgICAgICAgIGludCBsY2NjMSwgbGNjYzIsIHRjY2MxLCB0Y2NjMjsKKyAgICAgICAgaW50IHFjMSwgcWMyOworCisgICAgICAgIGlmKAorICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0spIT0xIHx8IC8vIFlFUworICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORktEX1FVSUNLX0NIRUNLKSE9MSB8fAorICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0spIT0yIHx8IC8vIE1BWUJFCisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0spIT0yIHx8CisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykhPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgfHwKKyAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykhPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykKKyAgICAgICAgKSB7CisgICAgICAgICAgICBlcnJsbigid3JvbmcgcmVzdWx0IGZyb20gb25lIG9mIHRoZSB1X2dldEludFByb3BlcnR5TWF4VmFsdWUoVUNIQVJfTkYqX1FVSUNLX0NIRUNLKSBvciBVQ0hBUl8qX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIGNvbXBhcmUgdGhlIHF1aWNrIGNoZWNrIHByb3BlcnR5IHZhbHVlcyBmb3Igc29tZSBjb2RlIHBvaW50cworICAgICAgICAgKiB0byB0aGUgcXVpY2sgY2hlY2sgcmVzdWx0cyBmb3IgY2hlY2tpbmcgc2FtZS1jb2RlIHBvaW50IHN0cmluZ3MKKyAgICAgICAgICovCisgICAgICAgIGM9MDsKKyAgICAgICAgd2hpbGUoYzwweDExMDAwMCkgeworICAgICAgICAgICAgcz1VVEYxNi52YWx1ZU9mKGMpOworCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0spOworICAgICAgICAgICAgcWMyPXFjVG9JbnQoTm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuTkZDKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GQyk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZDKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0spOworICAgICAgICAgICAgcWMyPXFjVG9JbnQoTm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuTkZEKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GRCk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZEKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORktDX1FVSUNLX0NIRUNLKTsKKyAgICAgICAgICAgIHFjMj1xY1RvSW50KE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLk5GS0MpKTsKKyAgICAgICAgICAgIGlmKHFjMSE9cWMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEludFByb3BlcnR5VmFsdWUoTkZLQyk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZLQykgZm9yIFUrIitJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcWMxPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSyk7CisgICAgICAgICAgICBxYzI9cWNUb0ludChOb3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORktEKSk7CisgICAgICAgICAgICBpZihxYzEhPXFjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKE5GS0QpPSIrcWMxKyIgIT0gIitxYzIrIj1xdWlja0NoZWNrKE5GS0QpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5mZD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBsZWFkPVVURjE2LmNoYXJBdChuZmQsIDApOworICAgICAgICAgICAgdHJhaWw9VVRGMTYuY2hhckF0KG5mZCwgbmZkLmxlbmd0aCgpLTEpOworCisgICAgICAgICAgICBsY2NjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyk7CisgICAgICAgICAgICBsY2NjMj1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGxlYWQpOworICAgICAgICAgICAgdGNjYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKTsKKyAgICAgICAgICAgIHRjY2MyPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3ModHJhaWwpOworCisgICAgICAgICAgICBpZihsY2NjMSE9bGNjYzIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW50UHJvcGVydHlWYWx1ZShsY2NjKT0iK2xjY2MxKyIgIT0gIitsY2NjMisiPWdldENvbWJpbmluZ0NsYXNzKGxlYWQpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZih0Y2NjMSE9dGNjYzIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW50UHJvcGVydHlWYWx1ZSh0Y2NjKT0iK3RjY2MxKyIgIT0gIit0Y2NjMisiPWdldENvbWJpbmluZ0NsYXNzKHRyYWlsKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBza2lwIHNvbWUgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgIGM9KDIwKmMpLzE5KzE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIHV0aWxpdGllcworICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcm5hbCB1dGlsaXRpZXMKKyAgICAvLworCisgICAgcHJpdmF0ZSB2b2lkIGJhY2tBbmRGb3J0aChOb3JtYWxpemVyIGl0ZXIsIFN0cmluZyBpbnB1dCkKKyAgICB7CisgICAgICAgIGl0ZXIuc2V0VGV4dChpbnB1dCk7CisKKyAgICAgICAgLy8gUnVuIHRocm91Z2ggdGhlIGl0ZXJhdG9yIGZvcndhcmRzIGFuZCBzdGljayBpdCBpbnRvIGEgU3RyaW5nQnVmZmVyCisgICAgICAgIFN0cmluZ0J1ZmZlciBmb3J3YXJkID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmZpcnN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsgY2ggPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgZm9yd2FyZC5hcHBlbmQoY2gpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGRvIGl0IGJhY2t3YXJkcworICAgICAgICBTdHJpbmdCdWZmZXIgcmV2ZXJzZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOyBjaCA9IGl0ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgcmV2ZXJzZS5pbnNlcnQoMCwgY2gpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFmb3J3YXJkLnRvU3RyaW5nKCkuZXF1YWxzKHJldmVyc2UudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGb3J3YXJkL3JldmVyc2UgbWlzbWF0Y2ggZm9yIGlucHV0ICIgKyBoZXgoaW5wdXQpCisgICAgICAgICAgICAgICAgICArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkgKyAiLCBiYWNrd2FyZDogIitoZXgocmV2ZXJzZSkpOworICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IEZvcndhcmQvcmV2ZXJzZSBmb3IgaW5wdXQgIiArIGhleChpbnB1dCkKKyAgICAgICAgICAgICAgICAgICsgIiwgZm9yd2FyZDogIiArIGhleChmb3J3YXJkKSArICIsIGJhY2t3YXJkOiAiK2hleChyZXZlcnNlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYmFja0FuZEZvcnRoKE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nW11bXSB0ZXN0cykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXN0c1tpXVswXSk7CisKKyAgICAgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBpdGVyYXRvciBmb3J3YXJkcyBhbmQgc3RpY2sgaXQgaW50byBhCisgICAgICAgICAgICAvLyBTdHJpbmdCdWZmZXIKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBmb3J3YXJkID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNoID0gaXRlci5maXJzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7IGNoID0gaXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBmb3J3YXJkLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdyBkbyBpdCBiYWNrd2FyZHMKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXZlcnNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOyBjaCA9IGl0ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgIHJldmVyc2UuaW5zZXJ0KDAsIGNoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmb3J3YXJkLnRvU3RyaW5nKCkuZXF1YWxzKHJldmVyc2UudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRm9yd2FyZC9yZXZlcnNlIG1pc21hdGNoIGZvciBpbnB1dCAiCisgICAgICAgICAgICAgICAgICAgICsgaGV4KHRlc3RzW2ldWzBdKSArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBiYWNrd2FyZDogIiArIGhleChyZXZlcnNlKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBGb3J3YXJkL3JldmVyc2UgZm9yIGlucHV0ICIgKyBoZXgodGVzdHNbaV1bMF0pCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBmb3J3YXJkOiAiICsgaGV4KGZvcndhcmQpICsgIiwgYmFja3dhcmQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChyZXZlcnNlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc3RhdGljVGVzdCAoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCwgbW9kZSk7CisKKyAgICAgICAgICAgIGlmICghb3V0cHV0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG91dHB1dCArICInICgiICsgaGV4KG91dHB1dCkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID1VdGlsaXR5LnVuZXNjYXBlKCB0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCxvdXRwdXQsIG1vZGUsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCAgICApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRlY29tcG9zZVRlc3QoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktEKTsKKworICAgICAgICAgICAgaWYgKCFvdXRwdXQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgb3V0cHV0ICsgIicgKCIgKyBoZXgob3V0cHV0KSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoYXJbXSBvdXRwdXQgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChuZXcgU3RyaW5nKGlucHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LG91dHB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktELDApOworICAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWV4cGVjdC5lcXVhbHMobmV3IFN0cmluZyhvdXRwdXQsMCxyZXFMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBuZXcgU3RyaW5nKG91dHB1dCkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworICAgIAorICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwwLGlucHV0Lmxlbmd0aCxvdXRwdXQsMCxvdXRwdXQubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QsMCk7CisgICAgICAgICAgICAgICAgICAgaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoICl7CisgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBjaGFyW10gb3V0cHV0MiA9IG5ldyBjaGFyW3JlcUxlbmd0aCAqIDJdOworICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG91dHB1dCwgMCwgb3V0cHV0MiwgMCwgcmVxTGVuZ3RoKTsKKyAgICAgICAgICAgaW50IHJldExlbmd0aCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LDAsaW5wdXQubGVuZ3RoLCBvdXRwdXQyLCByZXFMZW5ndGgsIG91dHB1dDIubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgIGlmKHJldExlbmd0aCAhPSByZXFMZW5ndGgpeworICAgICAgICAgICAgICAgbG9nbG4oIkZBSUw6IE5vcm1hbGl6ZXIuY29tcG9zZSBkaWQgbm90IHJldHVybiB0aGUgZXhwZWN0ZWQgbGVuZ3RoLiBFeHBlY3RlZDogIiArcmVxTGVuZ3RoICsgIiBHb3Q6ICIgKyByZXRMZW5ndGgpOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29tcG9zZVRlc3QoTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdW10gdGVzdHMsIGludCBvdXRDb2wpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLQyk7CisKKyAgICAgICAgICAgIGlmICghb3V0cHV0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG91dHB1dCArICInICgiICsgaGV4KG91dHB1dCkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsb3V0cHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgbmV3IFN0cmluZyhpbnB1dCkgKyAiJyAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgICBpbnQgcmVxTGVuZ3RoPTA7CisgICAgICAgICAgICB3aGlsZSh0cnVlKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIHJlcUxlbmd0aD1Ob3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsMCxpbnB1dC5sZW5ndGgsIG91dHB1dCwgMCwgb3V0cHV0Lmxlbmd0aCwgbW9kZT09Tm9ybWFsaXplci5ORktDLDApOworICAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWV4cGVjdC5lcXVhbHMobmV3IFN0cmluZyhvdXRwdXQsMCxyZXFMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBuZXcgU3RyaW5nKG91dHB1dCkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gb3V0cHV0MiA9IG5ldyBjaGFyW3JlcUxlbmd0aCAqIDJdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShvdXRwdXQsIDAsIG91dHB1dDIsIDAsIHJlcUxlbmd0aCk7CisgICAgICAgICAgICBpbnQgcmV0TGVuZ3RoID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LDAsaW5wdXQubGVuZ3RoLCBvdXRwdXQyLCByZXFMZW5ndGgsIG91dHB1dDIubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgICBpZihyZXRMZW5ndGggIT0gcmVxTGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRkFJTDogTm9ybWFsaXplci5jb21wb3NlIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCBsZW5ndGguIEV4cGVjdGVkOiAiICtyZXFMZW5ndGggKyAiIEdvdDogIiArIHJldExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGl0ZXJhdGVUZXN0KE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCl7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bMF0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIGlucHV0ICsgIicgKCIgKyBoZXgoaW5wdXQpICsgIikiICk7CisKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChpbnB1dCk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbChleHBlY3QsIGl0ZXIsICJjYXNlICIgKyBpICsgIiAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhc3NlcnRFcXVhbChTdHJpbmcgZXhwZWN0ZWQsIE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nIG1zZykKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNJdGVyID0gIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShleHBlY3RlZCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoKGNoPWl0ZXIubmV4dCgpKSE9IE5vcm1hbGl6ZXIuRE9ORSl7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArICJVbmV4cGVjdGVkIGNoYXJhY3RlciAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgd2FudCA9IFVURjE2LmNoYXJBdChleHBlY3RlZCxpbmRleCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4Kz0gIFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4IDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgIk9ubHkgZ290ICIgKyBpbmRleCArICIgY2hhcnMsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjSXRlci5zZXRUb0xpbWl0KCk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLnByZXZpb3VzKCkpIT1Ob3JtYWxpemVyLkRPTkUpeworICAgICAgICAgICAgaW50IHdhbnQgPSBjSXRlci5wcmV2aW91c0NvZGVQb2ludCgpOworICAgICAgICAgICAgaWYgKGNoICE9IHdhbnQgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBOT1RFOiBUaGVzZSB0ZXN0cyBhcmUgdXNlZCBmb3IgcXVpY2sgZGVidWdnaW5nIHNvIGFyZSBub3QgcG9ydGVkCisgICAgLy8gdG8gSUNVNEMgdHNub3JtLmNwcCBpbiBpbnRsdGVzdAorICAgIC8vCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVidWdTdGF0aWMoKXsKKyAgICAgICAgU3RyaW5nIGluID0gVXRpbGl0eS51bmVzY2FwZSgiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NSIpOworICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoaW4sTm9ybWFsaXplci5ORkMsMCkpeworICAgICAgICAgICAgZXJybG4oImlzTm9ybWFsaXplZCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBpbnB1dCAgPSAgIlx1QUQ4Qlx1QUQ4Qlx1QUQ4Qlx1QUQ4QiIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWF6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKworICAgICAgICAgICAgImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAiXHVBRDhCXHVBRDhCXHVBRDhCXHVBRDhCIisKKyAgICAgICAgICAgICJkXHUwMzFCXHUwMzA3XHUwMzIzIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdCA9ICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NWFhYWFhYWFhYWFhYWFhYWFhYXp6enp6eiIrCisgICAgICAgICAgICAgICAgICAgICAgICAienp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enoiKworICAgICAgICAgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyIrCisgICAgICAgICAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgICAgICAgICAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1MDA2NFx1MDMxQlx1MDMyM1x1MDMwNyI7CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoVXRpbGl0eS51bmVzY2FwZShpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYoIWV4cGVjdC5lcXVhbHMob3V0cHV0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgZXhwZWN0ZWQ6ICIraGV4KGV4cGVjdCkgKyAiIGdvdDogIitoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisKKworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z0l0ZXIoKXsKKyAgICAgICAgU3RyaW5nIHNyYyA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihVdGlsaXR5LnVuZXNjYXBlKHNyYykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5OT05FLDApOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjSXRlciA9ICBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoZXhwZWN0ZWQpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKChjaD1pdGVyLm5leHQoKSkhPSBOb3JtYWxpemVyLkRPTkUpeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB3YW50ID0gVVRGMTYuY2hhckF0KGV4cGVjdGVkLGluZGV4KTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4Kz0gIFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4IDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY0l0ZXIuc2V0VG9MaW1pdCgpOworICAgICAgICB3aGlsZSgoY2g9aXRlci5wcmV2aW91cygpKSE9Tm9ybWFsaXplci5ET05FKXsKKyAgICAgICAgICAgIGludCB3YW50ID0gY0l0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50ICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgImdvdCAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIHdhbnQgKyAiJyAoIiArIGhleCh3YW50KSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlYnVnSXRlck9sZCgpeworICAgICAgICBTdHJpbmcgaW5wdXQgPSAiXFxVMDAwMUQxNUUiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmV2ZXJzZSA9ICJcdUQ4MzRcdURENjVcdUQ4MzRcdURENTciOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihVdGlsaXR5LnVuZXNjYXBlKGlucHV0KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBnb3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoY2ggPSBpdGVyLmZpcnN0KCk7Y2ghPU5vcm1hbGl6ZXIuRE9ORTtjaD1pdGVyLm5leHQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2ggKworICAgICAgICAgICAgICAgICAgICAgICAiJyAoIiArIGhleChjaCkgKyAiKSIgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3QuYXBwZW5kKFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFleHBlY3RlZC5lcXVhbHMoZ290LnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArZ290KyAiJyAoIiArIGhleChnb3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgZXhwZWN0ZWQgKyAiJyAoIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoZXhwZWN0ZWQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ290Lmxlbmd0aCgpIDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIEl0ZXJhdGlvblxuIik7CisgICAgICAgIGl0ZXIuc2V0SW5kZXhPbmx5KGl0ZXIuZW5kSW5kZXgoKSk7CisgICAgICAgIGdvdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvcihjaD1pdGVyLnByZXZpb3VzKCk7Y2ghPU5vcm1hbGl6ZXIuRE9ORTtjaD1pdGVyLnByZXZpb3VzKCkpeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIiArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdC5hcHBlbmQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgICAgICB9CisgICAgICAgIGlmICghZXhwZWN0ZWRSZXZlcnNlLmVxdWFscyhnb3QudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiZ290ICciICtnb3QrICInICgiICsgaGV4KGdvdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGV4cGVjdGVkKSArICIpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGdvdC5sZW5ndGgoKSA8IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiT25seSBnb3QgIiArIGluZGV4ICsgIiBjaGFycywgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisKKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGhlbHBlciBjbGFzcyBmb3IgVGVzdFByZXZpb3VzTmV4dCgpCisgICAgLy8gc2ltcGxlIFVURi0zMiBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICBjbGFzcyBVQ2hhckl0ZXJhdG9yIHsKKworICAgICAgIHB1YmxpYyBVQ2hhckl0ZXJhdG9yKGludFtdIHNyYywgaW50IGxlbiwgaW50IGluZGV4KXsKKworICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICBsZW5ndGg9bGVuOworICAgICAgICAgICAgaT1pbmRleDsKKyAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICAgICAgaWYoaTxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1tpKytdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICAgICAgaWYoaT4wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbLS1pXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSBzOworICAgICAgICBwcml2YXRlIGludCBsZW5ndGgsIGk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmV2aW91c05leHQoKSB7CisgICAgICAgIC8vIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICAgICAgY2hhciBzcmNbXT17CisgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKDB4MmY5OTkpLCBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDJmOTk5KSwKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxZDE1ZiksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MWQxNWYpLAorICAgICAgICAgICAgMHhjNCwKKyAgICAgICAgICAgIDB4MWVkMAorICAgICAgICB9OworICAgICAgICBpbnQgZXhwZWN0W109eworICAgICAgICAgICAgMHg4MzFkLAorICAgICAgICAgICAgMHgxZDE1OCwgMHgxZDE2NSwKKyAgICAgICAgICAgIDB4NDEsIDB4MzA4LAorICAgICAgICAgICAgMHg0ZiwgMHgzMDIsIDB4MzAxCisgICAgICAgIH07CisKKyAgICAgICAgLy8gZXhwZWN0ZWQgc3JjIGluZGV4ZXMgY29ycmVzcG9uZGluZyB0byBleHBlY3QgaW5kZXhlcworICAgICAgICBpbnQgZXhwZWN0SW5kZXhbXT17CisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMiwgMiwKKyAgICAgICAgICAgIDQsIDQsCisgICAgICAgICAgICA1LCA1LCA1LAorICAgICAgICAgICAgNiAvLyBiZWhpbmQgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgfTsKKworICAgICAgICAvLyBpbml0aWFsIGluZGV4ZXMgaW50byB0aGUgc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworCisgICAgICAgIGZpbmFsIGludCBTUkNfTUlERExFPTQ7CisgICAgICAgIGZpbmFsIGludCBFWFBFQ1RfTUlERExFPTM7CisKKworICAgICAgICAvLyBtb3ZlbWVudCB2ZWN0b3IKKyAgICAgICAgLy8gLSBmb3IgcHJldmlvdXMoKSwgMCBmb3IgY3VycmVudCgpLCArIGZvciBuZXh0KCkKKyAgICAgICAgLy8gbm90IGNvbnN0IHNvIHRoYXQgd2UgY2FuIHRlcm1pbmF0ZSBpdCBiZWxvdyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgU3RyaW5nIG1vdmVzPSIwKzArMC0tMC0wLSsrKzAtLSsrKysrKyswLS0tLS0tLS0iOworCisgICAgICAgIC8vIGl0ZXJhdG9ycworICAgICAgICBOb3JtYWxpemVyIGl0ZXIgPSBuZXcgTm9ybWFsaXplcihuZXcgU3RyaW5nKHNyYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGNoYXIgbTsKKworICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4T25seShTUkNfTUlERExFKTsKKworICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAvKiBtPT0nKycgKi8geworICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgcmVzdWx0cworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIitoaXN0b3J5KyI6ICIKKyAgICAgICAgICAgICAgICAgICAgICArImdvdCBjMT0gIiArIGhleChjMSkgKyIgIT0gZXhwZWN0ZWQgYzI9ICIrIGhleChjMikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSE9ZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBPbmx5IGluIElDVTRqCisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dEpDSSgpIHsKKyAgICAgICAgLy8gc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICBjaGFyIHNyY1tdPXsKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgyZjk5OSksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MmY5OTkpLAorICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgICAgIGludCBleHBlY3RbXT17CisgICAgICAgICAgICAweDgzMWQsCisgICAgICAgICAgICAweDFkMTU4LCAweDFkMTY1LAorICAgICAgICAgICAgMHg0MSwgMHgzMDgsCisgICAgICAgICAgICAweDRmLCAweDMwMiwgMHgzMDEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAyLCAyLAorICAgICAgICAgICAgNCwgNCwKKyAgICAgICAgICAgIDUsIDUsIDUsCisgICAgICAgICAgICA2IC8vIGJlaGluZCBsYXN0IGNoYXJhY3RlcgorICAgICAgICB9OworCisgICAgICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MzsKKworCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgTm9ybWFsaXplciBpdGVyID0gbmV3IE5vcm1hbGl6ZXIodGV4dCxOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGNoYXIgbTsKKworICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4T25seShTUkNfTUlERExFKTsKKworICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAvKiBtPT0nKycgKi8geworICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgcmVzdWx0cworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIitoaXN0b3J5KyI6ICIKKyAgICAgICAgICAgICAgICAgICAgICArImdvdCBjMT0gIiArIGhleChjMSkgKyIgIT0gZXhwZWN0ZWQgYzI9ICIrIGhleChjMikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSE9ZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHRlc3QgQVBJcyB0aGF0IGFyZSBub3Qgb3RoZXJ3aXNlIHVzZWQgLSBpbXByb3ZlIHRlc3QgY292ZXJhZ2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXplckFQSSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICB0cnl7CisgICAgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhIE5vcm1hbGl6ZXIgZnJvbSBhIENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICAgICAgICBTdHJpbmcgcz1VdGlsaXR5LnVuZXNjYXBlKCJhXHUwMzA4XHVhYzAwXFxVMDAwMmY4MDAiKTsKKyAgICAgICAgICAgIC8vIG1ha2UgcyBhIGJpdCBsb25nZXIgYW5kIG1vcmUgaW50ZXJlc3RpbmcKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMrcyk7CisgICAgICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcihpdGVyLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgIGlmKG5vcm0ubmV4dCgpIT0weGU0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpLm5leHQoKSIpOworICAgICAgICAgICAgfSAgIAorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBjbG9uZSgpLCA9PSwgYW5kIGhhc2hDb2RlKCkKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIgY2xvbmU9KE5vcm1hbGl6ZXIpbm9ybS5jbG9uZSgpOworICAgICAgICAgICAgaWYoY2xvbmUuZXF1YWxzKG5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkhPW5vcm0iKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoY2xvbmUuZ2V0TGVuZ3RoKCkhPSBub3JtLmdldExlbmd0aCgpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldEJlZ2luSW5kZXgoKSIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIC8vIGNsb25lIG11c3QgaGF2ZSB0aGUgc2FtZSBoYXNoQ29kZSgpCisgICAgICAgICAgICAvL2lmKGNsb25lLmhhc2hDb2RlKCkhPW5vcm0uaGFzaENvZGUoKSkgeworICAgICAgICAgICAgLy8gICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkuaGFzaENvZGUoKSE9Y29weS5oYXNoQ29kZSgpIik7CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIGlmKGNsb25lLm5leHQoKSE9MHhhYzAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLm5leHQoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGNoID0gY2xvbmUubmV4dCgpOworICAgICAgICAgICAgaWYoY2ghPTB4NGUzZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpKS5jbG9uZSgpLm5leHQoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcG9zaXRpb24gY2hhbmdlZCwgbXVzdCBjaGFuZ2UgaGFzaENvZGUoKQorICAgICAgICAgICAgaWYoY2xvbmUuaGFzaENvZGUoKT09bm9ybS5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkubmV4dCgpLmhhc2hDb2RlKCk9PWNvcHkuaGFzaENvZGUoKSIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBjb21wb3NlKCkgYW5kIGRlY29tcG9zZSgpCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVsOworICAgICAgICAgICAgU3RyaW5nIG5ma2MsIG5ma2Q7CisgICAgICAgICAgICB0ZWw9bmV3IFN0cmluZ0J1ZmZlcigiXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxXHUyMTIxIik7CisgICAgICAgICAgICB0ZWwuaW5zZXJ0KDEsKGNoYXIpMHgwMzAxKTsKKyAgICAKKyAgICAgICAgICAgIG5ma2M9Tm9ybWFsaXplci5jb21wb3NlKHRlbC50b1N0cmluZygpLCB0cnVlKTsKKyAgICAgICAgICAgIG5ma2Q9Tm9ybWFsaXplci5kZWNvbXBvc2UodGVsLnRvU3RyaW5nKCksIHRydWUpOworICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgIW5ma2MuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoIlRFXHUwMTM5VEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMIikpfHwKKyAgICAgICAgICAgICAgICAhbmZrZC5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZSgiVEVMXHUwMzAxVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMIikpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcjo6KGRlKWNvbXBvc2UoKTogd3JvbmcgcmVzdWx0KHMpIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IHNldEluZGV4KCkKKy8vICAgICAgICAgICAgY2g9bm9ybS5zZXRJbmRleCgzKTsKKy8vICAgICAgICAgICAgaWYoY2ghPTB4NGUzZCkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpLnNldEluZGV4KDMpIik7CisvLyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3Qgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvcikgYW5kIGdldFRleHQoKQorICAgICAgICAgICAgU3RyaW5nIG91dCwgb3V0MjsKKyAgICAgICAgICAgIGNsb25lLnNldFRleHQoaXRlcik7CisgICAgCisgICAgICAgICAgICBvdXQgPSBjbG9uZS5nZXRUZXh0KCk7CisgICAgICAgICAgICBvdXQyID0gaXRlci5nZXRUZXh0KCk7CisgICAgICAgICAgICBpZiggIW91dC5lcXVhbHMob3V0MikgfHwKKyAgICAgICAgICAgICAgICBjbG9uZS5zdGFydEluZGV4KCkhPTB8fAorICAgICAgICAgICAgICAgIGNsb25lLmVuZEluZGV4KCkhPWl0ZXIuZ2V0TGVuZ3RoKCkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRUZXh0KCkgb3IgTm9ybWFsaXplcjo6Z2V0VGV4dCgpIik7CisgICAgICAgICAgICB9CisgICAgIAorICAgICAgICAgICAgY2hhcltdIGZpbGxJbjEgPSBuZXcgY2hhcltjbG9uZS5nZXRMZW5ndGgoKV07CisgICAgICAgICAgICBjaGFyW10gZmlsbEluMiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAgICAgICAgaW50IGxlbiA9IGNsb25lLmdldFRleHQoZmlsbEluMSk7CisgICAgICAgICAgICBpdGVyLmdldFRleHQoZmlsbEluMiwwKTsKKyAgICAgICAgICAgIGlmKCFVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhmaWxsSW4xLDAsZmlsbEluMiwwLGxlbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldFRleHQoKS4gTm9ybWFsaXplcjogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgobmV3IFN0cmluZyhmaWxsSW4xKSkrIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEl0ZXI6ICIgKyBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjIpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsb25lLnNldFRleHQoZmlsbEluMSk7CisgICAgICAgICAgICBsZW4gPSBjbG9uZS5nZXRUZXh0KGZpbGxJbjIpOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlSZWdpb25NYXRjaGVzKGZpbGxJbjEsMCxmaWxsSW4yLDAsbGVuKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuc2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXIuZ2V0VGV4dCgpIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgobmV3IFN0cmluZyhmaWxsSW4xKSkrIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEl0ZXI6ICIgKyBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjIpKSk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IHNldFRleHQoVUNoYXIgKiksIGdldFVNb2RlKCkgYW5kIHNldE1vZGUoKQorICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChzKTsKKyAgICAgICAgICAgIGNsb25lLnNldEluZGV4T25seSgxKTsKKyAgICAgICAgICAgIGNsb25lLnNldE1vZGUoTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYoY2xvbmUuZ2V0TW9kZSgpIT1Ob3JtYWxpemVyLk5GRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRNb2RlKCkgb3IgTm9ybWFsaXplcjo6Z2V0TW9kZSgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjbG9uZS5uZXh0KCkhPTB4MzA4IHx8IGNsb25lLm5leHQoKSE9MHgxMTAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldFRleHQoKSBvciBOb3JtYWxpemVyOjpzZXRNb2RlKCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3QgbGFzdCgpL3ByZXZpb3VzKCkgd2l0aCBhbiBpbnRlcm5hbCBidWZmZXIgb3ZlcmZsb3cKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJhYWFhYWFhYWFhIik7CisgICAgICAgICAgICBidWYuc2V0Q2hhckF0KDEwLTEsJ1x1MDMwOCcpOworICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChidWYpOworICAgICAgICAgICAgaWYoY2xvbmUubGFzdCgpIT0weDMwOCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKDEwKlUrMDMwOCkubGFzdCgpIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IFVOT1JNX05PTkUKKyAgICAgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5PTkUpOworICAgICAgICAgICAgaWYobm9ybS5maXJzdCgpIT0weDYxIHx8IG5vcm0ubmV4dCgpIT0weDMwOCB8fCBub3JtLmxhc3QoKSE9MHgyZjgwMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKFVOT1JNX05PTkUpLmZpcnN0KCkvbmV4dCgpL2xhc3QoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0PU5vcm1hbGl6ZXIubm9ybWFsaXplKHMsIE5vcm1hbGl6ZXIuTk9ORSk7CisgICAgICAgICAgICBpZighb3V0LmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpub3JtYWxpemUoVU5PUk1fTk9ORSkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gMHgxRDE1RTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSAiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NSI7CisgICAgICAgICAgICBTdHJpbmcgbnMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjaCxOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICBpZighbnMuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoZXhwKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnQsTW9kZSkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5zID0gTm9ybWFsaXplci5ub3JtYWxpemUoY2gsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgICAgICBpZighbnMuZXF1YWxzKFV0aWxpdHkudW5lc2NhcGUoZXhwKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnQsTW9kZSxpbnQpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25jYXRlbmF0ZSgpIHsKKworICAgICAgICBPYmplY3RbXVtdY2FzZXM9bmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAvKiBtb2RlLCBsZWZ0LCByaWdodCwgcmVzdWx0ICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsCisgICAgICAgICAgICAgICAgInJlIiwKKyAgICAgICAgICAgICAgICAiXHUwMzAxc3VtXHUwMGU5IiwKKyAgICAgICAgICAgICAgICAiclx1MDBlOXN1bVx1MDBlOSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsCisgICAgICAgICAgICAgICAgImFcdTExMDAiLAorICAgICAgICAgICAgICAgICJcdTExNjFiY2RlZmdoaWprIiwKKyAgICAgICAgICAgICAgICAiYVx1YWMwMGJjZGVmZ2hpamsiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLyogIyMjIFRPRE86IGFkZCBtb3JlIGludGVyZXN0aW5nIGNhc2VzICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsCisgICAgICAgICAgICAgICAgIlx1MDM0MFx1MDM0MVx1MDM0M1x1MDM0NFx1MDM3NFx1MDM3RVx1MDM4N1x1MDk1OCIgKworICAgICAgICAgICAgICAgICJcdTA5NTlcdTA5NUFcdTA5NUJcdTA5NUNcdTA5NURcdTA5NUVcdTA5NUZcdTA5REMiICsKKyAgICAgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAgICAgIlx1MEI1Q1x1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OSIgKworICAgICAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTIiICsKKyAgICAgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAgICAgIlx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MUZEQiIsCisKKyAgICAgICAgICAgICAgICAiXHUxRkUzXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwIiArCisgICAgICAgICAgICAgICAgIlx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOVx1MjMyQVx1RjkwMFx1RkExMCIgKworICAgICAgICAgICAgICAgICJcdUZBMTJcdUZBMTVcdUZBMjBcdUZBMjJcdUZBMjVcdUZBMjZcdUZBMkFcdUZCMUYiICsKKyAgICAgICAgICAgICAgICAiXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFXHVGQjJGXHVGQjMwXHVGQjMxIiArCisgICAgICAgICAgICAgICAgIlx1RkIzMlx1RkIzM1x1RkIzNFx1RkIzNVx1RkIzNlx1RkIzOFx1RkIzOVx1RkIzQSIgKworICAgICAgICAgICAgICAgICJcdUZCM0JcdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYiICsKKyAgICAgICAgICAgICAgICAiXHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCXHVGQjRDXHVGQjREXHVGQjRFIiwKKworICAgICAgICAgICAgICAgICJcdTAzNDBcdTAzNDFcdTAzNDNcdTAzNDRcdTAzNzRcdTAzN0VcdTAzODdcdTA5NTgiICsKKyAgICAgICAgICAgICAgICAiXHUwOTU5XHUwOTVBXHUwOTVCXHUwOTVDXHUwOTVEXHUwOTVFXHUwOTVGXHUwOURDIiArCisgICAgICAgICAgICAgICAgIlx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1RSIgKworICAgICAgICAgICAgICAgICJcdTBCNUNcdTBCNURcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjkiICsKKyAgICAgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyIiArCisgICAgICAgICAgICAgICAgIlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OSIgKworICAgICAgICAgICAgICAgICJcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkVcdTFGQzlcdTFGQ0JcdTFGRDNcdTAzOTkiICsKKyAgICAgICAgICAgICAgICAiXHUwMzAxXHUwM0M1XHUwMzA4XHUwMzAxXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5IiArCisgICAgICAgICAgICAgICAgIlx1MUZGQlx1MUZGRFx1MjAwMFx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOSIgKworICAgICAgICAgICAgICAgICJcdTIzMkFcdUY5MDBcdUZBMTBcdUZBMTJcdUZBMTVcdUZBMjBcdUZBMjJcdUZBMjUiICsKKyAgICAgICAgICAgICAgICAiXHVGQTI2XHVGQTJBXHVGQjFGXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFIiArCisgICAgICAgICAgICAgICAgIlx1RkIyRlx1RkIzMFx1RkIzMVx1RkIzMlx1RkIzM1x1RkIzNFx1RkIzNVx1RkIzNiIgKworICAgICAgICAgICAgICAgICJcdUZCMzhcdUZCMzlcdUZCM0FcdUZCM0JcdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDEiICsKKyAgICAgICAgICAgICAgICAiXHVGQjQzXHVGQjQ0XHVGQjQ2XHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCIiArCisgICAgICAgICAgICAgICAgIlx1RkI0Q1x1RkI0RFx1RkI0RSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmcgbGVmdCwgcmlnaHQsIGV4cGVjdCwgcmVzdWx0OworICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogdGVzdCBjb25jYXRlbmF0aW9uICovCisgICAgICAgIGZvcihpPTA7IGk8Y2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1vZGUgPSAoTm9ybWFsaXplci5Nb2RlKWNhc2VzW2ldWzBdOworCisgICAgICAgICAgICBsZWZ0PShTdHJpbmcpY2FzZXNbaV1bMV07CisgICAgICAgICAgICByaWdodD0oU3RyaW5nKWNhc2VzW2ldWzJdOworICAgICAgICAgICAgZXhwZWN0PShTdHJpbmcpY2FzZXNbaV1bM107CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuY29uY2F0ZW5hdGUobGVmdCwgcmlnaHQsIG1vZGUsMCk7CisgICAgICAgICAgICAgICAgaWYoIHJlc3VsdC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5jb25jYXRlbmF0ZSgpLCBjYXNlc1tdIGZhaWxlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyIsIHJlc3VsdD09ZXhwZWN0OiBleHBlY3RlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChleHBlY3QpKyIgPT09PT09PT09PiBnb3Q6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLmNvbmNhdGVuYXRlKGxlZnQudG9DaGFyQXJyYXkoKSwgcmlnaHQudG9DaGFyQXJyYXkoKSwgbW9kZSwwKTsKKyAgICAgICAgICAgICAgICBpZiggcmVzdWx0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmNvbmNhdGVuYXRlKCksIGNhc2VzW10gZmFpbGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIiwgcmVzdWx0PT1leHBlY3Q6IGV4cGVjdGVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgaGV4KGV4cGVjdCkrIiA9PT09PT09PT0+IGdvdDogIiArIGhleChyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgUkFORF9NQVggPSAweDdmZmY7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hlY2tGQ0QoKQorICAgIHsKKyAgICAgIGNoYXJbXSBGQVNUID0gezB4MDAwMSwgMHgwMDAyLCAweDAwMDMsIDB4MDAwNCwgMHgwMDA1LCAweDAwMDYsIDB4MDAwNywKKyAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCwgMHgwMDA5LCAweDAwMEF9OworCisgICAgICBjaGFyW10gRkFMU0UgPSB7MHgwMDAxLCAweDAwMDIsIDB4MDJFQSwgMHgwM0VCLCAweDAzMDAsIDB4MDMwMSwKKyAgICAgICAgICAgICAgICAgICAgICAweDAyQjksIDB4MDMxNCwgMHgwMzE1LCAweDAzMTZ9OworCisgICAgICBjaGFyW10gVFJVRSA9IHsweDAwMzAsIDB4MDA0MCwgMHgwNDQwLCAweDA1NkQsIDB4MDY0RiwgMHgwNkU3LAorICAgICAgICAgICAgICAgICAgICAgMHgwMDUwLCAweDA3MzAsIDB4MDlFRSwgMHgxRTEwfTsKKworICAgICAgY2hhcltdW10gZGF0YXN0cj0geyB7MHgwMDYxLCAweDAzMEEsIDB4MUUwNSwgMHgwMzAyLCAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgezB4MDA2MSwgMHgwMzBBLCAweDAwRTIsIDB4MDMyMywgMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsweDAwNjEsIDB4MDMyMywgMHgwMEUyLCAweDAzMjMsIDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7MHgwMDYxLCAweDAzMjMsIDB4MUUwNSwgMHgwMzAyLCAwfQorICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCByZXN1bHRbXSA9IHtOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTywgTm9ybWFsaXplci5OTywgTm9ybWFsaXplci5ZRVN9OworCisgICAgICBjaGFyW10gZGF0YWNoYXI9IHsgICAgICAgIDB4NjAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZTAsIDB4ZTEsIDB4ZTIsIDB4ZTMsIDB4ZTQsIDB4ZTUsIDB4ZTYsIDB4ZTcsIDB4ZTgsIDB4ZTksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMCwgMHgwMzAxLCAweDAzMDIsIDB4MDMwMywgMHgwMzA0LCAweDAzMDUsIDB4MDMwNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzA3LCAweDAzMDgsIDB4MDMwOSwgMHgwMzBhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjAsIDB4MDMyMSwgMHgwMzIyLCAweDAzMjMsIDB4MDMyNCwgMHgwMzI1LCAweDAzMjYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyNywgMHgwMzI4LCAweDAzMjksIDB4MDMyYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTAwLCAweDFlMDEsIDB4MWUwMiwgMHgxZTAzLCAweDFlMDQsIDB4MWUwNSwgMHgxZTA2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDcsIDB4MWUwOCwgMHgxZTA5LCAweDFlMGEKKyAgICAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQVNULDAsRkFTVC5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNELDApICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCB2YWx1ZSBmb3IgZmFzdCBOb3JtYWxpemVyLnF1aWNrQ2hlY2sgaXMgTm9ybWFsaXplci5ZRVNcbiIpOworICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQUxTRSwwLCBGQUxTRS5sZW5ndGgsTm9ybWFsaXplci5GQ0QsMCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgdmFsdWUgZm9yIGVycm9yIE5vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOb3JtYWxpemVyLk5PXG4iKTsKKyAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soVFJVRSwwLFRSVUUubGVuZ3RoLE5vcm1hbGl6ZXIuRkNELDApICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCB2YWx1ZSBmb3IgY29ycmVjdCBOb3JtYWxpemVyLnF1aWNrQ2hlY2sgaXMgTm9ybWFsaXplci5ZRVNcbiIpOworCisKKyAgICAgIHdoaWxlIChjb3VudCA8IDQpCisgICAgICB7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBmY2RyZXN1bHQgPSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZGF0YXN0cltjb3VudF0sMCxkYXRhc3RyW2NvdW50XS5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNELDApOworICAgICAgICBpZiAocmVzdWx0W2NvdW50XSAhPSBmY2RyZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkNEKSBmYWlsZWQ6IERhdGEgc2V0ICIrIGNvdW50CisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCB2YWx1ZSAiKyByZXN1bHRbY291bnRdKTsKKyAgICAgICAgfQorICAgICAgICBjb3VudCArKzsKKyAgICAgIH0KKworICAgICAgLyogcmFuZG9tIGNoZWNrcyBvZiBsb25nIHN0cmluZ3MgKi8KKyAgICAgIC8vc3JhbmQoKHVuc2lnbmVkKXRpbWUoIE5VTEwgKSk7CisgICAgICBSYW5kb20gcmFuZCA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20KKworICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgNTA7IGNvdW50ICsrKQorICAgICAgeworICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCB0ZXN0cmVzdWx0ID0gTm9ybWFsaXplci5ZRVM7CisgICAgICAgIGNoYXJbXSBkYXRhPSBuZXcgY2hhclsyMF07CisgICAgICAgIGNoYXJbXSBub3JtPSBuZXcgY2hhclsxMDBdOworICAgICAgICBjaGFyW10gbmZkID0gbmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50IG5vcm1TdGFydCA9IDA7CisgICAgICAgIGludCBuZmRzaXplID0gMDsKKyAgICAgICAgd2hpbGUgKHNpemUgIT0gMTkpIHsKKyAgICAgICAgICBkYXRhW3NpemVdID0gZGF0YWNoYXJbcmFuZC5uZXh0SW50KFJBTkRfTUFYKSo1MC9SQU5EX01BWF07CisgICAgICAgICAgbG9nbG4oIjB4IitkYXRhW3NpemVdKTsKKyAgICAgICAgICBub3JtU3RhcnQgKz0gTm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSxzaXplLHNpemUrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtLG5vcm1TdGFydCwxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgc2l6ZSArKzsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiXG4iKTsKKworICAgICAgICBuZmRzaXplID0gTm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSwwLHNpemUsIG5mZCwwLG5mZC5sZW5ndGgsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIC8vICAgIG5mZHNpemUgPSB1bm9ybV9ub3JtYWxpemUoZGF0YSwgc2l6ZSwgVU5PUk1fTkZELCBVQ09MX0lHTk9SRV9IQU5HVUwsCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIG5mZCwgMTAwLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKG5mZHNpemUgIT0gbm9ybVN0YXJ0IHx8IFV0aWxpdHkuYXJyYXlSZWdpb25NYXRjaGVzKG5mZCwwLCBub3JtLDAsbmZkc2l6ZSkgPT1mYWxzZSkgeworICAgICAgICAgIHRlc3RyZXN1bHQgPSBOb3JtYWxpemVyLk5POworICAgICAgICB9CisgICAgICAgIGlmICh0ZXN0cmVzdWx0ID09IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgbG9nbG4oInJlc3VsdCBOb3JtYWxpemVyLllFU1xuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgbG9nbG4oInJlc3VsdCBOb3JtYWxpemVyLk5PXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soZGF0YSwwLGRhdGEubGVuZ3RoLCBOb3JtYWxpemVyLkZDRCwwKSAhPSB0ZXN0cmVzdWx0KSB7CisgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgIisgdGVzdHJlc3VsdCArIiBmb3IgcmFuZG9tIGRhdGE6ICIraGV4KG5ldyBTdHJpbmcoZGF0YSkpICk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKworICAgIC8vIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBOb3JtYWxpemVyOjpjb21wYXJlCisgICAgcHJpdmF0ZSBpbnQgcmVmX25vcm1fY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgU3RyaW5nIHQxLCB0MixyMSxyMjsKKworICAgICAgICBpbnQgbm9ybU9wdGlvbnM9KGludCkob3B0aW9ucz4+Tm9ybWFsaXplci5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCk7CisgICAgICAgIAorICAgICAgICBpZigob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSB7CisgICAgICAgICAgICAvLyBORkQodG9DYXNlZm9sZChORkQoWCkpKSA9IE5GRCh0b0Nhc2Vmb2xkKE5GRChZKSkpCisgICAgICAgICAgICByMSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMxLGZhbHNlLG5vcm1PcHRpb25zKTsKKyAgICAgICAgICAgIHIyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoczIsZmFsc2Usbm9ybU9wdGlvbnMpOworICAgICAgICAgICAgcjEgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHIxLG9wdGlvbnMpOworICAgICAgICAgICAgcjIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHIyLG9wdGlvbnMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHIxID0gczE7CisgICAgICAgICAgICByMiA9IHMyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0MSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHIxLCBmYWxzZSwgbm9ybU9wdGlvbnMpOworICAgICAgICB0MiA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHIyLCBmYWxzZSwgbm9ybU9wdGlvbnMpOworCisgICAgICAgIGlmKChvcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSKSE9MCkgeworICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wIAorICAgICAgICAgICAgICAgICAgICA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKHRydWUsIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wLmNvbXBhcmUodDEsdDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHQxLmNvbXBhcmVUbyh0Mik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHRlc3Qgd3JhcHBlciBmb3IgTm9ybWFsaXplcjo6Y29tcGFyZSwgc2V0cyBVTk9STV9JTlBVVF9JU19GQ0QgYXBwcm9wcmlhdGVseQorICAgIHByaXZhdGUgaW50IG5vcm1fY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50IG5vcm1PcHRpb25zPShpbnQpKG9wdGlvbnM+Pk5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQpOworCisgICAgICAgIGlmKCBOb3JtYWxpemVyLllFUz09Tm9ybWFsaXplci5xdWlja0NoZWNrKHMxLE5vcm1hbGl6ZXIuRkNELG5vcm1PcHRpb25zKSAmJgorICAgICAgICAgICAgTm9ybWFsaXplci5ZRVM9PU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzMixOb3JtYWxpemVyLkZDRCxub3JtT3B0aW9ucykpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuY29tcGFyZShzMSwgczIsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8vIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZQorICAgIHByaXZhdGUgaW50IHJlZl9jYXNlX2NvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKSB7CisgICAgICAgIFN0cmluZyB0MSwgdDI7CisKKyAgICAgICAgdDE9czE7CisgICAgICAgIHQyPXMyOworCisgICAgICAgIHQxID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MSwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisgICAgICAgIHQyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MiwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisKKyAgICAgICAgaWYoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKSB7CisgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXAgCisgICAgICAgICAgICAgICAgICAgID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wLmNvbXBhcmUodDEsdDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHQxLmNvbXBhcmVUbyh0Mik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHJlZHVjZSBhbiBpbnRlZ2VyIHRvIC0xLzAvMQorICAgIHByaXZhdGUgc3RhdGljIGludCBzaWduKGludCB2YWx1ZSkgeworICAgICAgICBpZih2YWx1ZT09MCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKHZhbHVlPj4zMSl8MTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2lnblN0cmluZyhpbnQgdmFsdWUpIHsKKyAgICAgICAgaWYodmFsdWU8MCkgeworICAgICAgICAgICAgcmV0dXJuICI8MCI7CisgICAgICAgIH0gZWxzZSBpZih2YWx1ZT09MCkgeworICAgICAgICAgICAgcmV0dXJuICI9MCI7CisgICAgICAgIH0gZWxzZSAvKiB2YWx1ZT4wICovIHsKKyAgICAgICAgICAgIHJldHVybiAiPjAiOworICAgICAgICB9CisgICAgfQorICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZSBhbmQgdW5vcm1fY29tcGFyZSAodGhpbmx5IHdyYXBwZWQgYnkgdGhlIGZvcm1lcikKKyAgICAvLyBieSBjb21wYXJpbmcgaXQgd2l0aCBpdHMgc2VtYW50aWMgZXF1aXZhbGVudAorICAgIC8vIHNpbmNlIHdlIHRydXN0IHRoZSBwaWVjZXMsIHRoaXMgaXMgc3VmZmljaWVudAorCisgICAgLy8gdGVzdCBlYWNoIHN0cmluZyB3aXRoIGl0c2VsZiBhbmQgZWFjaCBvdGhlcgorICAgIC8vIGVhY2ggdGltZSB3aXRoIGFsbCBvcHRpb25zCisgICAgcHJpdmF0ZSAgU3RyaW5nIHN0cmluZ3NbXT1uZXcgU3RyaW5nW117CisgICAgICAgICAgICAgICAgLy8gc29tZSBjYXNlcyBmcm9tIE5vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgICAgICAgICAgICAgIC8vIDAuLjMKKyAgICAgICAgICAgICAgICAiRFx1MDMxQlx1MDMwN1x1MDMyMyIsCisgICAgICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgICAgICAgICAgIkRcdTAzMUJcdTAzMjNcdTAzMDciLAorICAgICAgICAgICAgICAgICJkXHUwMzFCXHUwMzIzXHUwMzA3IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gNC4uNgorICAgICAgICAgICAgICAgICJcdTAwRTQiLAorICAgICAgICAgICAgICAgICJhXHUwMzA4IiwKKyAgICAgICAgICAgICAgICAiQVx1MDMwOCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEFuZ3N0cm9tIHNpZ24gPSBBIHJpbmcKKyAgICAgICAgICAgICAgICAvLyA3Li4xMAorICAgICAgICAgICAgICAgICJcdTIxMkIiLAorICAgICAgICAgICAgICAgICJcdTAwQzUiLAorICAgICAgICAgICAgICAgICJBXHUwMzBBIiwKKyAgICAgICAgICAgICAgICAiYVx1MDMwQSIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIDExLjE0CisgICAgICAgICAgICAgICAgImFcdTA1OUFcdTAzMTZcdTMwMkFcdTAzMkZiIiwKKyAgICAgICAgICAgICAgICAiYVx1MzAyQVx1MDMxNlx1MDMyRlx1MDU5QWIiLAorICAgICAgICAgICAgICAgICJhXHUzMDJBXHUwMzE2XHUwMzJGXHUwNTlBYiIsCisgICAgICAgICAgICAgICAgIkFcdTA1OUFcdTAzMTZcdTMwMkFcdTAzMkZiIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZnJvbSBJQ1UgY2FzZSBmb2xkaW5nIHRlc3RzCisgICAgICAgICAgICAgICAgLy8gMTUuLjIwCisgICAgICAgICAgICAgICAgIkFcdTAwZGZcdTAwYjVcdWZiMDNcXFUwMDAxMDQwY1x1MDEzMSIsCisgICAgICAgICAgICAgICAgImFzc1x1MDNiY2ZmaVxcVTAwMDEwNDM0aSIsCisgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDEzMVx1MDNhM1x1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA1M1x1MDA3M1x1MDA2Nlx1MDA0Nlx1MDA2OVx1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vICAgICBVK2Q4MDAgVSsxMDAwMSAgIHNlZSBpbXBsZW1lbnRhdGlvbiBjb21tZW50IGluIHVub3JtX2NtcEVxdWl2Rm9sZAorICAgICAgICAgICAgICAgIC8vIHZzLiBVKzEwMDAwICAgICAgICAgIGF0IGJvdHRvbSAtIGNvZGUgcG9pbnQgb3JkZXIKKyAgICAgICAgICAgICAgICAvLyAyMS4uMjIKKyAgICAgICAgICAgICAgICAiXHVkODAwXHVkODAwXHVkYzAxIiwKKyAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgY29kZSBwb2ludCBvcmRlciB0ZXN0cyBmcm9tIHVzdHJ0ZXN0LmNwcAorICAgICAgICAgICAgICAgIC8vIDIzLi4zMQorICAgICAgICAgICAgICAgICJcdTIwYWNcdWQ4MDEiLAorICAgICAgICAgICAgICAgICJcdTIwYWNcdWQ4MDBcdWRjMDAiLAorICAgICAgICAgICAgICAgICJcdWQ4MDAiLAorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWZmNjEiLAorICAgICAgICAgICAgICAgICJcdWRmZmYiLAorICAgICAgICAgICAgICAgICJcdWZmNjFcdWRmZmYiLAorICAgICAgICAgICAgICAgICJcdWZmNjFcdWQ4MDBcdWRjMDIiLAorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDIiLAorICAgICAgICAgICAgICAgICJcdWQ4NGRcdWRjNTYiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBsb25nIHN0cmluZ3MsIHNlZSBjbm9ybXRzdC5jL1Rlc3ROb3JtQ292ZXJhZ2UoKQorICAgICAgICAgICAgICAgIC8vIGVxdWl2YWxlbnQgaWYgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICAgICAgICAgIC8vIDMyLi4zMworICAgICAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiYWFhYWFhYWFhYWFhYWFhYWFhenp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enoiKworICAgICAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIrCisgICAgICAgICAgICAgICAgImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQiKworICAgICAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgICAgICJkXHUwMzFCXHUwMzA3XHUwMzIzIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgIlx1MTEwMFx1MTE2Zlx1MTFhYVx1QUQ4Qlx1QUQ4Qlx1MTEwMFx1MTE2Zlx1MTFhYSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJhYWFhYWFhYWFhQUFBQUFBQUFaWlpaWlpaWlpaWlpaWlpaenp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgIlx1MTEwMFx1MTE2Zlx1MTFhYVx1QUQ4Qlx1QUQ4Qlx1MTEwMFx1MTE2Zlx1MTFhYSIrCisgICAgICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNvbWUgc3RyaW5ncyB0aGF0IG1heSBtYWtlIGEgZGlmZmVyZW5jZSB3aGV0aGVyIHRoZSBjb21wYXJlIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgLy8gY2FzZS1mb2xkcyBvciBkZWNvbXBvc2VzIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gMzQuLjQxCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MDM0NVx1MDMzNCIsCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MDNiOVx1MDMzNCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTFmODBcdTAzMzQiLAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTAzYjFcdTAzMTNcdTAzYjlcdTAzMzQiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUxZmZjXHUwMzM0IiwKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUwM2M5XHUwM2I5XHUwMzM0IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgImFcdTAzNjBcdTAzNDVcdTAzNjBcdTAzNDViIiwKKyAgICAgICAgICAgICAgICAiYVx1MDM0NVx1MDM2MFx1MDM0NVx1MDM2MGIiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcmVzdGluZyBjYXNlcyBmb3IgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoIHdpdGggdHVya2ljIGkgaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAvLyA0Mi4uNDMKKyAgICAgICAgICAgICAgICAiXHUwMGNjIiwKKyAgICAgICAgICAgICAgICAiXHUwMDY5XHUwMzAwIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyB3aXRoIHBvc3QtVW5pY29kZSAzLjIgbm9ybWFsaXphdGlvbiBvciBub3JtYWxpemF0aW9uIGNvcnJlY3Rpb25zCisgICAgICAgICAgICAgICAgLy8gNDQuLjQ1CisgICAgICAgICAgICAgICAgIlx1MDBlNFx1MTkzYlxcVTAwMDJmODY4IiwKKyAgICAgICAgICAgICAgICAiXHUwMDYxXHUxOTNiXHUwMzA4XHUzNmZjIiwKKworCisgICAgfTsKKworICAgIC8vIGFsbCBjb21iaW5hdGlvbnMgb2Ygb3B0aW9ucworICAgIC8vIFVOT1JNX0lOUFVUX0lTX0ZDRCBpcyBzZXQgYXV0b21hdGljYWxseSBpZiBib3RoIGlucHV0IHN0cmluZ3MgZnVsZmlsbCBGQ0QgY29uZGl0aW9ucworICAgIGZpbmFsIGNsYXNzIFRlbXAgeworICAgICAgICBpbnQgb3B0aW9uczsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIHB1YmxpYyBUZW1wKGludCBvcHQsU3RyaW5nIHN0cil7CisgICAgICAgICAgICBvcHRpb25zID1vcHQ7CisgICAgICAgICAgICBuYW1lID0gc3RyOworICAgICAgICB9CisKKyAgICB9CisgICAgLy8gc2V0IFVOT1JNX1VOSUNPREVfM18yIGluIG9uZSBhZGRpdGlvbmFsIGNvbWJpbmF0aW9uCisgIAorICAgIHByaXZhdGUgVGVtcFtdIG9wdCA9IG5ldyBUZW1wW117CisgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKDAsImRlZmF1bHQiKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIsICJjb2RlIHBvaW50IG9yZGVyIiApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UsICJpZ25vcmUgY2FzZSIgKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVJ8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFLCAiY29kZSBwb2ludCBvcmRlciAmIGlnbm9yZSBjYXNlIiApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJpZ25vcmUgY2FzZSAmIHNwZWNpYWwgaSIpLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUnxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJjb2RlIHBvaW50IG9yZGVyICYgaWdub3JlIGNhc2UgJiBzcGVjaWFsIGkiKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5VTklDT0RFXzNfMiA8PCBOb3JtYWxpemVyLkNPTVBBUkVfTk9STV9PUFRJT05TX1NISUZULCAiVW5pY29kZSAzLjIiKQorICAgICAgICAgICAgfTsKKworCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmVEZWJ1ZygpeworCisgICAgICAgIFN0cmluZ1tdIHMgPSBuZXcgU3RyaW5nWzEwMF07IC8vIGF0IGxlYXN0IGFzIG1hbnkgaXRlbXMgYXMgaW4gc3RyaW5nc1tdICEKKworCisgICAgICAgIGludCBpLCBqLCBrLCBjb3VudD1zdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgaW50IHJlc3VsdCwgcmVmUmVzdWx0OworCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgVW5pY29kZVN0cmluZ3MKKyAgICAgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzW2ldPVV0aWxpdHkudW5lc2NhcGUoc3RyaW5nc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAvLyB0ZXN0IHRoZW0gZWFjaCB3aXRoIGVhY2ggb3RoZXIKKworICAgICAgICBpID0gNDI7CisgICAgICAgIGogPSA0MzsKKyAgICAgICAgayA9IDI7CisgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorICAgICAgICByZXN1bHQ9bm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgcmVmUmVzdWx0PXJlZl9ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiICtrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IFVuaWNvZGVTdHJpbmc6OmNhc2VDb21wYXJlIC0gc2FtZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbgorICAgICAgICAgaWYoMCE9KG9wdFtrXS5vcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkpIHsKKyAgICAgICAgLy8gICAgcmVzdWx0PXNbaV0uIChzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICBpZiAoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpID09IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0PWNvbXAuY29tcGFyZShzW2ldLHNbal0pOworICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9jYXNlX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6Y29tcGFyZSggIiArIGkgKyIsICIraiArICIsICIraysiKCAiICtvcHRba10ubmFtZSsiKSk9IiArIHJlc3VsdCArIiBzaG91bGQgYmUgc2FtZSBzaWduIGFzICIgKyByZWZSZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdmFsdWUxID0gIlx1MDBkYXRlclx1MDBmZCI7CisgICAgICAgIFN0cmluZyB2YWx1ZTIgPSAiXHUwMGZhdGVyXHUwMGZkIjsKKyAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsMCkhPTApeworICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKT09MCl7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgeworCisgICAgICAgIFN0cmluZ1tdIHMgPSBuZXcgU3RyaW5nWzEwMF07IC8vIGF0IGxlYXN0IGFzIG1hbnkgaXRlbXMgYXMgaW4gc3RyaW5nc1tdICEKKworICAgICAgICBpbnQgaSwgaiwgaywgY291bnQ9c3RyaW5ncy5sZW5ndGg7CisgICAgICAgIGludCByZXN1bHQsIHJlZlJlc3VsdDsKKworICAgICAgICAvLyBjcmVhdGUgdGhlIFVuaWNvZGVTdHJpbmdzCisgICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgc1tpXT1VdGlsaXR5LnVuZXNjYXBlKHN0cmluZ3NbaV0pOworICAgICAgICB9CisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcCA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIC8vIHRlc3QgdGhlbSBlYWNoIHdpdGggZWFjaCBvdGhlcgorICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGZvcihqPWk7IGo8Y291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIGZvcihrPTA7IGs8b3B0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQ9bm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiICtrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFVuaWNvZGVTdHJpbmc6OmNhc2VDb21wYXJlIC0gc2FtZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgaWYoMCE9KG9wdFtrXS5vcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIHJlc3VsdD1zW2ldLiAoc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0Q29kZVBvaW50Q29tcGFyZSgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikgIT0gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQ9Y29tcC5jYXNlQ29tcGFyZShzW2ldLHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1jb21wLmNvbXBhcmUoc1tpXSxzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfY2FzZV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNpZ24ocmVzdWx0KSE9c2lnbihyZWZSZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmNvbXBhcmUoICIgKyBpICsiLCAiK2ogKyAiLCAiK2srIiggIiArb3B0W2tdLm5hbWUrIikpPSIgKyByZXN1bHQgKyIgc2hvdWxkIGJlIHNhbWUgc2lnbiBhcyAiICsgcmVmUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGNhc2VzIHdpdGggaSBhbmQgSSB0byBtYWtlIHN1cmUgVHVya2ljIHdvcmtzCisgICAgICAgIGNoYXJbXSBpST0gbmV3IGNoYXJbXXsgMHg0OSwgMHg2OSwgMHgxMzAsIDB4MTMxIH07CisgICAgICAgIFVTZXJpYWxpemVkU2V0IHNzZXQ9bmV3IFVTZXJpYWxpemVkU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHMxLCBzMjsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgCisgICAgICAgIC8vIGNvbGxlY3QgYWxsIHNldHMgaW50byBvbmUgZm9yIGNvbnRpZ3VvdXMgb3V0cHV0CisgICAgICAgIGludFtdIHN0YXJ0RW5kID0gbmV3IGludFsyXTsKKyAgICAgICAgZm9yKGk9MDsgaTxpSS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYoTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldChpSVtpXSwgc3NldCkpIHsKKyAgICAgICAgICAgICAgICBjb3VudD1zc2V0LmNvdW50UmFuZ2VzKCk7CisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxjb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHNzZXQuZ2V0UmFuZ2Uoaiwgc3RhcnRFbmQpOworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKHN0YXJ0RW5kWzBdLCBzdGFydEVuZFsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdCBhbGwgb2YgdGhlc2UgcHJlY29tcG9zZWQgY2hhcmFjdGVycworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgICAgIHdoaWxlKGl0Lm5leHRSYW5nZSgpICYmIGl0LmNvZGVwb2ludCE9VW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgc3RhcnQ9aXQuY29kZXBvaW50OworICAgICAgICAgICAgZW5kPWl0LmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgICBzMSA9IEludGVnZXIudG9TdHJpbmcoc3RhcnQpOworICAgICAgICAgICAgICAgIHMyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoczEsIGZhbHNlLCAwKTsKKy8vICAgICAgICAgICAgICAgIGlmKFVfRkFJTFVSRShlcnJvckNvZGUpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXI6OmRlY29tcG9zZShVKyUwNHgpIGZhaWxlZDogJXMiLCBzdGFydCwgdV9lcnJvck5hbWUoZXJyb3JDb2RlKSk7CisvLyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvcihrPTA7IGs8b3B0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgTm9ybWFsaXplcjo6Y29tcGFyZQorCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0gbm9ybV9jb21wYXJlKHMxLCBzMiwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX25vcm1fY29tcGFyZShzMSwgczIsIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoVSsiK2hleChzdGFydCkrIiB3aXRoIGl0cyBORkQsICIrb3B0W2tdLm5hbWUrIikiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaWduU3RyaW5nKHJlc3VsdCkrIiBzaG91bGQgYmUgIitzaWduU3RyaW5nKHJlZlJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgVW5pY29kZVN0cmluZzo6Y2FzZUNvbXBhcmUgLSBzYW1lIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgIGlmKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnNldENvZGVQb2ludENvbXBhcmUoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpICE9IDApOworICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9Y29tcC5jb21wYXJlKHMxLHMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfY2FzZV9jb21wYXJlKHMxLCBzMiwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVRGMTYuY29tcGFyZShVKyIraGV4KHN0YXJ0KSsiIHdpdGggaXRzIE5GRCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtvcHRba10ubmFtZSsiKSIrc2lnblN0cmluZyhyZXN1bHQpICsiIHNob3VsZCBiZSAiK3NpZ25TdHJpbmcocmVmUmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gdmVyaWZ5IHRoYXQgY2FzZS1mb2xkaW5nIGRvZXMgbm90IHVuLUZDRCBzdHJpbmdzCisgICAgaW50IGNvdW50Rm9sZEZDREV4Y2VwdGlvbnMoaW50IGZvbGRpbmdPcHRpb25zKSB7CisgICAgICAgIFN0cmluZyBzLCBkOworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2MsIHRyYWlsQ0MsIGZvbGRDQywgZm9sZFRyYWlsQ0M7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBxY1Jlc3VsdDsKKyAgICAgICAgaW50IGNhdGVnb3J5OworICAgICAgICBib29sZWFuIGlzTkZEOworCisKKyAgICAgICAgbG9nbG4oIlRlc3QgaWYgY2FzZSBmb2xkaW5nIG1heSB1bi1GQ0QgYSBzdHJpbmcgKGZvbGRpbmcgb3B0aW9ucyAweCkiK2hleChmb2xkaW5nT3B0aW9ucykpOworCisgICAgICAgIGNvdW50PTA7CisgICAgICAgIGZvcihjPTA7IGM8PTB4MTBmZmZmOyArK2MpIHsKKyAgICAgICAgICAgIGNhdGVnb3J5PVVDaGFyYWN0ZXIuZ2V0VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGNhdGVnb3J5PT1VQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTB4YWMwMCkgeworICAgICAgICAgICAgICAgIGM9MHhkN2EzOyAvLyBza2lwIEhhbmd1bCAtIG5vIGNhc2UgZm9sZGluZyB0aGVyZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2tpcCBIYW4gYmxvY2tzIC0gbm8gY2FzZSBmb2xkaW5nIHRoZXJlIGVpdGhlcgorICAgICAgICAgICAgaWYoYz09MHgzNDAwKSB7CisgICAgICAgICAgICAgICAgYz0weDRkYjU7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPT0weDRlMDApIHsKKyAgICAgICAgICAgICAgICBjPTB4OWZhNTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTB4MjAwMDApIHsKKyAgICAgICAgICAgICAgICBjPTB4MmE2ZDY7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHM9IFVURjE2LnZhbHVlT2YoYyk7CisKKyAgICAgICAgICAgIC8vIGdldCBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYyBmb3IgYworICAgICAgICAgICAgZD0gTm9ybWFsaXplci5kZWNvbXBvc2UocyxmYWxzZSk7CisgICAgICAgICAgICBpc05GRD0gcz09ZDsKKyAgICAgICAgICAgIGNjPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsMCkpOworICAgICAgICAgICAgdHJhaWxDQz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLGQubGVuZ3RoKCktMSkpOworCisgICAgICAgICAgICAvLyBnZXQgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2MgZm9yIHRoZSBjYXNlLWZvbGRpbmcgb2YgYworICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShzLChmb2xkaW5nT3B0aW9ucz09MCkpOworICAgICAgICAgICAgZCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMsIGZhbHNlKTsKKyAgICAgICAgICAgIGZvbGRDQz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLDApKTsKKyAgICAgICAgICAgIGZvbGRUcmFpbENDPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsZC5sZW5ndGgoKS0xKSk7CisKKyAgICAgICAgICAgIHFjUmVzdWx0PU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLkZDRCwwKTsKKworCisgICAgICAgICAgICAvLyBiYWQ6CisgICAgICAgICAgICAvLyAtIGNoYXJhY3RlciBtYXBzIHRvIGVtcHR5IHN0cmluZzogYWRqYWNlbnQgY2hhcmFjdGVycyBtYXkgdGhlbiBuZWVkIHJlb3JkZXJpbmcKKyAgICAgICAgICAgIC8vIC0gZm9sZGluZyBoYXMgZGlmZmVyZW50IGxlYWRpbmcvdHJhaWxpbmcgY2MncywgYW5kIHRoZXkgZG9uJ3QgYmVjb21lIGp1c3QgMAorICAgICAgICAgICAgLy8gLSBmb2xkaW5nIGl0c2VsZiBpcyBub3QgRkNECisgICAgICAgICAgICBpZiggcWNSZXN1bHQhPU5vcm1hbGl6ZXIuWUVTIHx8CisgICAgICAgICAgICAgICAgcy5sZW5ndGgoKT09MCB8fAorICAgICAgICAgICAgICAgIChjYyE9Zm9sZENDICYmIGZvbGRDQyE9MCkgfHwgKHRyYWlsQ0MhPWZvbGRUcmFpbENDICYmIGZvbGRUcmFpbENDIT0wKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBlcnJsbigiVSsiK2hleChjKSsiOiBjYXNlLWZvbGRpbmcgbWF5IHVuLUZDRCBhIHN0cmluZyAoZm9sZGluZyBvcHRpb25zIDB4IitoZXgoZm9sZGluZ09wdGlvbnMpKyIpIik7CisgICAgICAgICAgICAgICAgLy9lcnJsbigiICBjYyAlMDJ4IHRyYWlsQ0MgJTAyeCAgICBmb2xkQ0MoVSslMDRseCkgJTAyeCBmb2xkVHJhaWxDQyhVKyUwNGx4KSAlMDJ4ICAgcXVpY2tDaGVjayhmb2xkZWQpPSVkIiwgY2MsIHRyYWlsQ0MsIFVURjE2LmNoYXJBdChkLDApLCBmb2xkQ0MsIFVURjE2LmNoYXJBdChkLGQubGVuZ3RoKCktMSksIGZvbGRUcmFpbENDLCBxY1Jlc3VsdCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFsc28gYmFkOgorICAgICAgICAgICAgLy8gaWYgYSBjb2RlIHBvaW50IGlzIGluIE5GRCBidXQgaXRzIGNhc2UgZm9sZGluZyBpcyBub3QsIHRoZW4KKyAgICAgICAgICAgIC8vIHVub3JtX2NvbXBhcmUgd2lsbCBhbHNvIGZhaWwKKyAgICAgICAgICAgIGlmKGlzTkZEICYmIE5vcm1hbGl6ZXIuWUVTIT1Ob3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORkQsMCkpIHsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgIGVycmxuKCJVKyIraGV4KGMpKyI6IGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgiK2hleChmb2xkaW5nT3B0aW9ucykrIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUaGVyZSBhcmUgIitoZXgoY291bnQpKyIgY29kZSBwb2ludHMgZm9yIHdoaWNoIGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMiK2ZvbGRpbmdPcHRpb25zKyJ4KSIgKTsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGaW5kRm9sZEZDREV4Y2VwdGlvbnMoKSB7CisgICAgICAgIGludCBjb3VudDsKKworICAgICAgICBjb3VudD1jb3VudEZvbGRGQ0RFeGNlcHRpb25zKDApOworICAgICAgICBjb3VudCs9Y291bnRGb2xkRkNERXhjZXB0aW9ucyhOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIC8vKgorICAgICAgICAgICAgLy8qIElmIGNhc2UtZm9sZGluZyB1bi1GQ0RzIGFueSBzdHJpbmdzLCB0aGVuIHVub3JtX2NvbXBhcmUoKSBtdXN0IGJlCisgICAgICAgICAgICAvLyogcmUtaW1wbGVtZW50ZWQuCisgICAgICAgICAgICAvLyogSXQgY3VycmVudGx5IGFzc3VtZXMgdGhhdCBvbmUgY2FuIGNoZWNrIGZvciBGQ0QgdGhlbiBjYXNlLWZvbGQKKyAgICAgICAgICAgIC8vKiBhbmQgdGhlbiBzdGlsbCBoYXZlIEZDRCBzdHJpbmdzIGZvciByYXcgZGVjb21wb3NpdGlvbiB3aXRob3V0IHJlb3JkZXJpbmcuCisgICAgICAgICAgICAvLyoKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVGhlcmUgYXJlICIrY291bnQrIiBjb2RlIHBvaW50cyBmb3Igd2hpY2ggY2FzZS1mb2xkaW5nIisKKyAgICAgICAgICAgICAgICAgICIgbWF5IHVuLUZDRCBhIHN0cmluZyBmb3IgYWxsIGZvbGRpbmcgb3B0aW9ucy5cbiBTZWUgY29tbWVudCIrCisgICAgICAgICAgICAgICAgICAiIGluIEJhc2ljTm9ybWFsaXplclRlc3Q6OkZpbmRGb2xkRkNERXhjZXB0aW9ucygpISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21iaW5pbmdNYXJrcygpeworICAgICAgICBTdHJpbmcgc3JjID0gIlx1MGY3MVx1MGY3Mlx1MGY3M1x1MGY3NFx1MGY3NSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJcdTBGNzFcdTBGNzFcdTBGNzFcdTBGNzJcdTBGNzJcdTBGNzRcdTBGNzQiOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc3JjLGZhbHNlKTsKKyAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhyZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJSZW9yZGVyaW5nIG9mIGNvbWJpbmluZyBtYXJrcyBmYWlsZWQuIEV4cGVjdGVkOiAiK1V0aWxpdHkuaGV4KGV4cGVjdGVkKSsiIEdvdDogIisgVXRpbGl0eS5oZXgocmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlLWVuYWJsZSB0aGlzIHRlc3Qgd2hlbiBVVEMgZml4ZXMgVUFYIDIxCisgICAgcHVibGljIHZvaWQgVGVzdFVBWDIxRmFpbHVyZSgpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIGNhc2VzID0gbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNDVcdTAwNjIiLCAiXHUwMDYxXHUwMzYwXHUwMzQ1XHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNDVcdTAzNjBcdTAwNjIiLCAiXHUwMDYxXHUwMzYwXHUwMzQ1XHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAzNjBcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNjBcdTAzNDVcdTAzNjBcdTAzNjJcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAzNjFcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYwXHUwMzYxXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAzNjFcdTAzNDVcdTAzNjBcdTAzNjJcdTAwNjIiLCAiXHUwMDYxXHUwMzYyXHUwMzYxXHUwMzYwXHUwMzQ1XHUwMDYyIn0sCisgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IGNhc2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9Y2FzZXNbMF1bMF07IAorICAgICAgICAgICAgU3RyaW5nIHMyID0gY2FzZXNbMF1bMV07CisgICAgICAgICAgICBpZiggKE5vcm1hbGl6ZXIuY29tcGFyZShzMSxzMixOb3JtYWxpemVyLkZPTERfQ0FTRV9ERUZBVUxUID09MCkvL2Nhc2Ugc2Vuc2l0aXZlIGNvbXBhcmUKKyAgICAgICAgICAgICAgICAmJgorICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLmNvbXBhcmUoczEsczIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSE9MCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoKSBmYWlsZWQgZm9yIHMxOiAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzMSkgKyIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZDTkZLQ0Nsb3N1cmUoKSB7CisgICAgICAgIGZpbmFsIGNsYXNzIFRlc3RTdHJ1Y3R7CisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgVGVzdFN0cnVjdChpbnQgY3AsIFN0cmluZyBzcmMpeworICAgICAgICAgICAgICAgIGM9Y3A7CisgICAgICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRlc3RTdHJ1Y3RbXSB0ZXN0cz0gbmV3IFRlc3RTdHJ1Y3RbXXsKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDAzN0EsICJcdTAwMjBcdTAzQjkiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgwM0QyLCAiXHUwM0M1IiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjBBOCwgIlx1MDA3Mlx1MDA3MyIgKSAsCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTBCLCAiXHUwMDY4IiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjEwQywgIlx1MDA2OCIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDIxMjEsICJcdTAwNzRcdTAwNjVcdTAwNkMiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTIyLCAiXHUwMDc0XHUwMDZEIiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjEyOCwgIlx1MDA3QSIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDFENURCLCJcdTAwNjgiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgxRDVFRCwiXHUwMDdBIiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MDA2MSwgIiIgKQorICAgICAgICB9OworICAgIAorCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQ9Tm9ybWFsaXplci5nZXRGQ19ORktDX0Nsb3N1cmUodGVzdHNbaV0uYyk7CisgICAgICAgICAgICBpZighcmVzdWx0LmVxdWFscyhuZXcgU3RyaW5nKHRlc3RzW2ldLnMpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRGQ19ORktDX0Nsb3N1cmUoVSsiK0ludGVnZXIudG9IZXhTdHJpbmcodGVzdHNbaV0uYykrIikgaXMgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBlcnJvciBoYW5kbGluZyAqLworCisgICAgICAgIGludCBsZW5ndGg9Tm9ybWFsaXplci5nZXRGQ19ORktDX0Nsb3N1cmUoMHg1YywgbnVsbCk7CisgICAgICAgIGlmKGxlbmd0aCE9MCl7CisgICAgICAgICAgICBlcnJsbigiZ2V0RkNfTkZLQ19DbG9zdXJlIGRpZCBub3QgcGVyZm9ybSBlcnJvciBoYW5kbGluZyBjb3JyZWN0bHkiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnSjIzMjQoKXsKKyAgICAgICAvKiBTdHJpbmdbXSBpbnB1dCA9IG5ldyBTdHJpbmdbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyJcdTMwRkRcdTMwOTkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkFcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkJcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkNcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkVcdTMwOUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkRcdTMwOUEiLAorCisgICAgICAgIH07Ki8KKyAgICAgICAgU3RyaW5nIHRyb3VibGVzb21lID0gIlx1MzA5QSI7CisgICAgICAgIGZvcihpbnQgaT0weDMwMDA7IGk8MHgzMTAwO2krKyl7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSAoKGNoYXIpaSkrdHJvdWJsZXNvbWU7CisgICAgICAgICAgICB0cnl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAvKiAgU3RyaW5nIHJlc3VsdCA9Ki8gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LGZhbHNlKTsKKyAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb21wb3NlKCkgZmFpbGVkIGZvciBpbnB1dDogIiArIFV0aWxpdHkuaGV4KGlucHV0KSArICIgRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgIH0KKworICAgICBzdGF0aWMgZmluYWwgaW50IEQgPSAwLCBDID0gMSwgS0Q9IDIsIEtDID0gMywgRkNEPTQsIE5PTkU9NTsgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0W10gaW5pdFNraXBwYWJsZXMoVW5pY29kZVNldFtdIHNraXBTZXRzKXsKKyAgICAgICAgaWYoIHNraXBTZXRzLmxlbmd0aCA8IDQgKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHNraXBTZXRzW0RdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXlxcdTAwQzAtXFx1MDBDNVxcdTAwQzctXFx1MDBDRlxcdTAwRDEtXFx1MDBENlxcdTAwRDktXFx1MDBERCIKKyAgICAgICAgICArICJcXHUwMEUwLVxcdTAwRTVcXHUwMEU3LVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY5LVxcdTAwRkQiCisgICAgICAgICAgKyAiXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwXFx1MDEzNC1cXHUwMTM3IgorICAgICAgICAgICsgIlxcdTAxMzktXFx1MDEzRVxcdTAxNDMtXFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTQtXFx1MDE2NSIKKyAgICAgICAgICArICJcXHUwMTY4LVxcdTAxN0VcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwXFx1MDFDRC1cXHUwMURDIgorICAgICAgICAgICsgIlxcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGMFxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDMwMC1cXHUwMzRFXFx1MDM1MC1cXHUwMzZGIgorICAgICAgICAgICsgIlxcdTAzNzRcXHUwMzdFXFx1MDM4NS1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtIgorICAgICAgICAgICsgIlxcdTAzQjBcXHUwM0NBLVxcdTAzQ0VcXHUwM0QzXFx1MDNENFxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDciCisgICAgICAgICAgKyAiXFx1MDQwQy1cXHUwNDBFXFx1MDQxOVxcdTA0MzlcXHUwNDUwXFx1MDQ1MVxcdTA0NTNcXHUwNDU3XFx1MDQ1QyIKKyAgICAgICAgICArICItXFx1MDQ1RVxcdTA0NzZcXHUwNDc3XFx1MDQ4My1cXHUwNDg2XFx1MDRDMVxcdTA0QzJcXHUwNEQwLSIKKyAgICAgICAgICArICJcXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLVxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLSIKKyAgICAgICAgICArICJcXHUwNEY1XFx1MDRGOFxcdTA0RjlcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0IgorICAgICAgICAgICsgIlxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMi1cXHUwNjI2XFx1MDY0Qi1cXHUwNjVFIgorICAgICAgICAgICsgIlxcdTA2NzBcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTQiCisgICAgICAgICAgKyAiXFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi0iCisgICAgICAgICAgKyAiXFx1MDdGM1xcdTA5MjlcXHUwOTMxXFx1MDkzNFxcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OCIKKyAgICAgICAgICArICItXFx1MDk1RlxcdTA5QkNcXHUwOUNCLVxcdTA5Q0RcXHUwOURDXFx1MDlERFxcdTA5REZcXHUwQTMzIgorICAgICAgICAgICsgIlxcdTBBMzZcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0MiCisgICAgICAgICAgKyAiXFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNUNcXHUwQjVEXFx1MEI5NFxcdTBCQ0EtXFx1MEJDRCIKKyAgICAgICAgICArICJcXHUwQzQ4XFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MENCQ1xcdTBDQzBcXHUwQ0M3XFx1MENDOFxcdTBDQ0EiCisgICAgICAgICAgKyAiXFx1MENDQlxcdTBDQ0RcXHUwRDRBLVxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERSIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUI4XFx1MEVCOVxcdTBFQzgtXFx1MEVDQiIKKyAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgKyAiXFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzZcXHUwRjc4XFx1MEY3QS1cXHUwRjdEXFx1MEY4MC0iCisgICAgICAgICAgKyAiXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyXFx1MTdERCIKKyAgICAgICAgICArICJcXHUxOEE5XFx1MTkzOS1cXHUxOTNCXFx1MUExN1xcdTFBMThcXHUxQjA2XFx1MUIwOFxcdTFCMEFcXHUxQjBDIgorICAgICAgICAgICsgIlxcdTFCMEVcXHUxQjEyXFx1MUIzNFxcdTFCM0JcXHUxQjNEXFx1MUI0MFxcdTFCNDFcXHUxQjQzXFx1MUI0NCIKKyAgICAgICAgICArICJcXHUxQjZCLVxcdTFCNzNcXHUxREMwLVxcdTFEQ0FcXHUxREZFLVxcdTFFOTlcXHUxRTlCXFx1MUVBMC0iCisgICAgICAgICAgKyAiXFx1MUVGOVxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtIgorICAgICAgICAgICsgIlxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0QiCisgICAgICAgICAgKyAiXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzEtXFx1MUZDNFxcdTFGQzYtIgorICAgICAgICAgICsgIlxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkRELVxcdTFGRUZcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LSIKKyAgICAgICAgICArICJcXHUxRkZEXFx1MjAwMFxcdTIwMDFcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVGIgorICAgICAgICAgICsgIlxcdTIxMjZcXHUyMTJBXFx1MjEyQlxcdTIxOUFcXHUyMTlCXFx1MjFBRVxcdTIxQ0QtXFx1MjFDRlxcdTIyMDQiCisgICAgICAgICAgKyAiXFx1MjIwOVxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyNDFcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwIgorICAgICAgICAgICsgIlxcdTIyNjJcXHUyMjZELVxcdTIyNzFcXHUyMjc0XFx1MjI3NVxcdTIyNzhcXHUyMjc5XFx1MjI4MFxcdTIyODEiCisgICAgICAgICAgKyAiXFx1MjI4NFxcdTIyODVcXHUyMjg4XFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFMyIKKyAgICAgICAgICArICJcXHUyMkVBLVxcdTIyRURcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDRDIgorICAgICAgICAgICsgIlxcdTMwNEVcXHUzMDUwXFx1MzA1MlxcdTMwNTRcXHUzMDU2XFx1MzA1OFxcdTMwNUFcXHUzMDVDXFx1MzA1RSIKKyAgICAgICAgICArICJcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzBcXHUzMDcxXFx1MzA3M1xcdTMwNzQiCisgICAgICAgICAgKyAiXFx1MzA3NlxcdTMwNzdcXHUzMDc5XFx1MzA3QVxcdTMwN0NcXHUzMDdEXFx1MzA5NFxcdTMwOTlcXHUzMDlBIgorICAgICAgICAgICsgIlxcdTMwOUVcXHUzMEFDXFx1MzBBRVxcdTMwQjBcXHUzMEIyXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQSIKKyAgICAgICAgICArICJcXHUzMEJDXFx1MzBCRVxcdTMwQzBcXHUzMEMyXFx1MzBDNVxcdTMwQzdcXHUzMEM5XFx1MzBEMFxcdTMwRDEiCisgICAgICAgICAgKyAiXFx1MzBEM1xcdTMwRDRcXHUzMEQ2XFx1MzBEN1xcdTMwRDlcXHUzMERBXFx1MzBEQ1xcdTMwRERcXHUzMEY0IgorICAgICAgICAgICsgIlxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHVBODA2XFx1QUMwMC1cXHVEN0EzXFx1RjkwMC1cXHVGQTBEIgorICAgICAgICAgICsgIlxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEiCisgICAgICAgICAgKyAiLVxcdUZBMkRcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLSIKKyAgICAgICAgICArICJcXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2IgorICAgICAgICAgICsgIi1cXHVGQjRFXFx1RkUyMC1cXHVGRTIzXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEiCisgICAgICAgICAgKyAiMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICArICJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtIgorICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDIiCisgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisKKyAgICAgIHNraXBTZXRzW0NdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQThcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDZcXHUwMEQ4LSIKKyAgICAgICAgICArICJcXHUwMEREXFx1MDBFMC1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOC1cXHUwMEZEXFx1MDBGRi0iCisgICAgICAgICAgKyAiXFx1MDEwM1xcdTAxMDYtXFx1MDEwRlxcdTAxMTItXFx1MDExN1xcdTAxMUEtXFx1MDEyMVxcdTAxMjQiCisgICAgICAgICAgKyAiXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTM5XFx1MDEzQVxcdTAxM0RcXHUwMTNFXFx1MDE0MyIKKyAgICAgICAgICArICJcXHUwMTQ0XFx1MDE0N1xcdTAxNDhcXHUwMTRDLVxcdTAxNTFcXHUwMTU0XFx1MDE1NVxcdTAxNTgtIgorICAgICAgICAgICsgIlxcdTAxNURcXHUwMTYwXFx1MDE2MVxcdTAxNjRcXHUwMTY1XFx1MDE2OC1cXHUwMTcxXFx1MDE3NC0iCisgICAgICAgICAgKyAiXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjBcXHUwMUI3XFx1MDFDRC1cXHUwMURDXFx1MDFERSIKKyAgICAgICAgICArICItXFx1MDFFMVxcdTAxRTYtXFx1MDFFQlxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMUZCXFx1MDIwMC0iCisgICAgICAgICAgKyAiXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDI5MlxcdTAzMDAtXFx1MDM0RSIKKyAgICAgICAgICArICJcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3RVxcdTAzODdcXHUwMzkxXFx1MDM5NVxcdTAzOTdcXHUwMzk5IgorICAgICAgICAgICsgIlxcdTAzOUZcXHUwM0ExXFx1MDNBNVxcdTAzQTlcXHUwM0FDXFx1MDNBRVxcdTAzQjFcXHUwM0I1XFx1MDNCNyIKKyAgICAgICAgICArICJcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS1cXHUwM0NCXFx1MDNDRVxcdTAzRDJcXHUwNDA2IgorICAgICAgICAgICsgIlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4XFx1MDQxQVxcdTA0MUVcXHUwNDIzXFx1MDQyN1xcdTA0MkIiCisgICAgICAgICAgKyAiXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQVxcdTA0M0VcXHUwNDQzXFx1MDQ0NyIKKyAgICAgICAgICArICJcXHUwNDRCXFx1MDQ0RFxcdTA0NTZcXHUwNDc0XFx1MDQ3NVxcdTA0ODMtXFx1MDQ4NlxcdTA0RDhcXHUwNEQ5IgorICAgICAgICAgICsgIlxcdTA0RThcXHUwNEU5XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzUiCisgICAgICAgICAgKyAiXFx1MDVDN1xcdTA2MTAtXFx1MDYxNVxcdTA2MjJcXHUwNjIzXFx1MDYyN1xcdTA2NDhcXHUwNjRBLSIKKyAgICAgICAgICArICJcXHUwNjVFXFx1MDY3MFxcdTA2QzFcXHUwNkQyXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0IgorICAgICAgICAgICsgIlxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItIgorICAgICAgICAgICsgIlxcdTA3RjNcXHUwOTI4XFx1MDkzMFxcdTA5MzNcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgiCisgICAgICAgICAgKyAiLVxcdTA5NUZcXHUwOUJDXFx1MDlCRVxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERiIKKyAgICAgICAgICArICJcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEIgorICAgICAgICAgICsgIlxcdTBCM0NcXHUwQjNFXFx1MEI0N1xcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI5MiIKKyAgICAgICAgICArICJcXHUwQkJFXFx1MEJDNlxcdTBCQzdcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTYiCisgICAgICAgICAgKyAiXFx1MENCQ1xcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFIgorICAgICAgICAgICsgIlxcdTBENDZcXHUwRDQ3XFx1MEQ0RFxcdTBENTdcXHUwRENBXFx1MERDRlxcdTBERDlcXHUwRERDXFx1MERERiIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUI4XFx1MEVCOVxcdTBFQzgtXFx1MEVDQiIKKyAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgKyAiXFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzZcXHUwRjc4XFx1MEY3QS1cXHUwRjdEXFx1MEY4MC0iCisgICAgICAgICAgKyAiXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTEwMC1cXHUxMTEyXFx1MTE2MS0iCisgICAgICAgICAgKyAiXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REXFx1MThBOSIKKyAgICAgICAgICArICJcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMDVcXHUxQjA3XFx1MUIwOVxcdTFCMEJcXHUxQjBEIgorICAgICAgICAgICsgIlxcdTFCMTFcXHUxQjM0XFx1MUIzNVxcdTFCM0FcXHUxQjNDXFx1MUIzRVxcdTFCM0ZcXHUxQjQyXFx1MUI0NCIKKyAgICAgICAgICArICJcXHUxQjZCLVxcdTFCNzNcXHUxREMwLVxcdTFEQ0FcXHUxREZFLVxcdTFFMDNcXHUxRTBBLVxcdTFFMEYiCisgICAgICAgICAgKyAiXFx1MUUxMi1cXHUxRTFCXFx1MUUyMC1cXHUxRTI3XFx1MUUyQS1cXHUxRTQxXFx1MUU0NC1cXHUxRTUzIgorICAgICAgICAgICsgIlxcdTFFNTgtXFx1MUU3RFxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5OSIKKyAgICAgICAgICArICJcXHUxRUEwLVxcdTFFRjNcXHUxRUY2LVxcdTFFRjlcXHUxRjAwLVxcdTFGMTFcXHUxRjE4XFx1MUYxOSIKKyAgICAgICAgICArICJcXHUxRjIwLVxcdTFGMzFcXHUxRjM4XFx1MUYzOVxcdTFGNDBcXHUxRjQxXFx1MUY0OFxcdTFGNDlcXHUxRjUwIgorICAgICAgICAgICsgIlxcdTFGNTFcXHUxRjU5XFx1MUY2MC1cXHUxRjcxXFx1MUY3My1cXHUxRjc1XFx1MUY3N1xcdTFGNzkiCisgICAgICAgICAgKyAiXFx1MUY3Qi1cXHUxRjdEXFx1MUY4MFxcdTFGODFcXHUxRjg4XFx1MUY4OVxcdTFGOTBcXHUxRjkxXFx1MUY5OCIKKyAgICAgICAgICArICJcXHUxRjk5XFx1MUZBMFxcdTFGQTFcXHUxRkE4XFx1MUZBOVxcdTFGQjNcXHUxRkI2XFx1MUZCQlxcdTFGQkMiCisgICAgICAgICAgKyAiXFx1MUZCRVxcdTFGQkZcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCXFx1MUZDQ1xcdTFGRDNcXHUxRkRCIgorICAgICAgICAgICsgIlxcdTFGRTNcXHUxRkVCXFx1MUZFRVxcdTFGRUZcXHUxRkYzXFx1MUZGNlxcdTFGRjlcXHUxRkZCLVxcdTFGRkUiCisgICAgICAgICAgKyAiXFx1MjAwMFxcdTIwMDFcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVGXFx1MjEyNiIKKyAgICAgICAgICArICJcXHUyMTJBXFx1MjEyQlxcdTIxOTBcXHUyMTkyXFx1MjE5NFxcdTIxRDBcXHUyMUQyXFx1MjFENFxcdTIyMDMiCisgICAgICAgICAgKyAiXFx1MjIwOFxcdTIyMEJcXHUyMjIzXFx1MjIyNVxcdTIyM0NcXHUyMjQzXFx1MjI0NVxcdTIyNDhcXHUyMjREIgorICAgICAgICAgICsgIlxcdTIyNjFcXHUyMjY0XFx1MjI2NVxcdTIyNzJcXHUyMjczXFx1MjI3NlxcdTIyNzdcXHUyMjdBLVxcdTIyN0QiCisgICAgICAgICAgKyAiXFx1MjI4MlxcdTIyODNcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMlxcdTIyQThcXHUyMkE5IgorICAgICAgICAgICsgIlxcdTIyQUJcXHUyMkIyLVxcdTIyQjVcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkYiCisgICAgICAgICAgKyAiXFx1MzA0NlxcdTMwNEJcXHUzMDREXFx1MzA0RlxcdTMwNTFcXHUzMDUzXFx1MzA1NVxcdTMwNTdcXHUzMDU5IgorICAgICAgICAgICsgIlxcdTMwNUJcXHUzMDVEXFx1MzA1RlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MiIKKyAgICAgICAgICArICJcXHUzMDc1XFx1MzA3OFxcdTMwN0JcXHUzMDk5XFx1MzA5QVxcdTMwOURcXHUzMEE2XFx1MzBBQlxcdTMwQUQiCisgICAgICAgICAgKyAiXFx1MzBBRlxcdTMwQjFcXHUzMEIzXFx1MzBCNVxcdTMwQjdcXHUzMEI5XFx1MzBCQlxcdTMwQkRcXHUzMEJGIgorICAgICAgICAgICsgIlxcdTMwQzFcXHUzMEM0XFx1MzBDNlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDVcXHUzMEQ4XFx1MzBEQiIKKyAgICAgICAgICArICJcXHUzMEVGLVxcdTMwRjJcXHUzMEZEXFx1QTgwNlxcdUFDMDBcXHVBQzFDXFx1QUMzOFxcdUFDNTRcXHVBQzcwIgorICAgICAgICAgICsgIlxcdUFDOENcXHVBQ0E4XFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2QyIKKyAgICAgICAgICArICJcXHVBRDg4XFx1QURBNFxcdUFEQzBcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjgiCisgICAgICAgICAgKyAiXFx1QUU4NFxcdUFFQTBcXHVBRUJDXFx1QUVEOFxcdUFFRjRcXHVBRjEwXFx1QUYyQ1xcdUFGNDhcXHVBRjY0IgorICAgICAgICAgICsgIlxcdUFGODBcXHVBRjlDXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MCIKKyAgICAgICAgICArICJcXHVCMDdDXFx1QjA5OFxcdUIwQjRcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUMiCisgICAgICAgICAgKyAiXFx1QjE3OFxcdUIxOTRcXHVCMUIwXFx1QjFDQ1xcdUIxRThcXHVCMjA0XFx1QjIyMFxcdUIyM0NcXHVCMjU4IgorICAgICAgICAgICsgIlxcdUIyNzRcXHVCMjkwXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NCIKKyAgICAgICAgICArICJcXHVCMzcwXFx1QjM4Q1xcdUIzQThcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTAiCisgICAgICAgICAgKyAiXFx1QjQ2Q1xcdUI0ODhcXHVCNEE0XFx1QjRDMFxcdUI0RENcXHVCNEY4XFx1QjUxNFxcdUI1MzBcXHVCNTRDIgorICAgICAgICAgICsgIlxcdUI1NjhcXHVCNTg0XFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OCIKKyAgICAgICAgICArICJcXHVCNjY0XFx1QjY4MFxcdUI2OUNcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDQiCisgICAgICAgICAgKyAiXFx1Qjc2MFxcdUI3N0NcXHVCNzk4XFx1QjdCNFxcdUI3RDBcXHVCN0VDXFx1QjgwOFxcdUI4MjRcXHVCODQwIgorICAgICAgICAgICsgIlxcdUI4NUNcXHVCODc4XFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQyIKKyAgICAgICAgICArICJcXHVCOTU4XFx1Qjk3NFxcdUI5OTBcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzgiCisgICAgICAgICAgKyAiXFx1QkE1NFxcdUJBNzBcXHVCQThDXFx1QkFBOFxcdUJBQzRcXHVCQUUwXFx1QkFGQ1xcdUJCMThcXHVCQjM0IgorICAgICAgICAgICsgIlxcdUJCNTBcXHVCQjZDXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMCIKKyAgICAgICAgICArICJcXHVCQzRDXFx1QkM2OFxcdUJDODRcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkMiCisgICAgICAgICAgKyAiXFx1QkQ0OFxcdUJENjRcXHVCRDgwXFx1QkQ5Q1xcdUJEQjhcXHVCREQ0XFx1QkRGMFxcdUJFMENcXHVCRTI4IgorICAgICAgICAgICsgIlxcdUJFNDRcXHVCRTYwXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNCIKKyAgICAgICAgICArICJcXHVCRjQwXFx1QkY1Q1xcdUJGNzhcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjAiCisgICAgICAgICAgKyAiXFx1QzAzQ1xcdUMwNThcXHVDMDc0XFx1QzA5MFxcdUMwQUNcXHVDMEM4XFx1QzBFNFxcdUMxMDBcXHVDMTFDIgorICAgICAgICAgICsgIlxcdUMxMzhcXHVDMTU0XFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOCIKKyAgICAgICAgICArICJcXHVDMjM0XFx1QzI1MFxcdUMyNkNcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTQiCisgICAgICAgICAgKyAiXFx1QzMzMFxcdUMzNENcXHVDMzY4XFx1QzM4NFxcdUMzQTBcXHVDM0JDXFx1QzNEOFxcdUMzRjRcXHVDNDEwIgorICAgICAgICAgICsgIlxcdUM0MkNcXHVDNDQ4XFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQyIKKyAgICAgICAgICArICJcXHVDNTI4XFx1QzU0NFxcdUM1NjBcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDgiCisgICAgICAgICAgKyAiXFx1QzYyNFxcdUM2NDBcXHVDNjVDXFx1QzY3OFxcdUM2OTRcXHVDNkIwXFx1QzZDQ1xcdUM2RThcXHVDNzA0IgorICAgICAgICAgICsgIlxcdUM3MjBcXHVDNzNDXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMCIKKyAgICAgICAgICArICJcXHVDODFDXFx1QzgzOFxcdUM4NTRcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkMiCisgICAgICAgICAgKyAiXFx1QzkxOFxcdUM5MzRcXHVDOTUwXFx1Qzk2Q1xcdUM5ODhcXHVDOUE0XFx1QzlDMFxcdUM5RENcXHVDOUY4IgorICAgICAgICAgICsgIlxcdUNBMTRcXHVDQTMwXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNCIKKyAgICAgICAgICArICJcXHVDQjEwXFx1Q0IyQ1xcdUNCNDhcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjAiCisgICAgICAgICAgKyAiXFx1Q0MwQ1xcdUNDMjhcXHVDQzQ0XFx1Q0M2MFxcdUNDN0NcXHVDQzk4XFx1Q0NCNFxcdUNDRDBcXHVDQ0VDIgorICAgICAgICAgICsgIlxcdUNEMDhcXHVDRDI0XFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOCIKKyAgICAgICAgICArICJcXHVDRTA0XFx1Q0UyMFxcdUNFM0NcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTQiCisgICAgICAgICAgKyAiXFx1Q0YwMFxcdUNGMUNcXHVDRjM4XFx1Q0Y1NFxcdUNGNzBcXHVDRjhDXFx1Q0ZBOFxcdUNGQzRcXHVDRkUwIgorICAgICAgICAgICsgIlxcdUNGRkNcXHVEMDE4XFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQyIKKyAgICAgICAgICArICJcXHVEMEY4XFx1RDExNFxcdUQxMzBcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDgiCisgICAgICAgICAgKyAiXFx1RDFGNFxcdUQyMTBcXHVEMjJDXFx1RDI0OFxcdUQyNjRcXHVEMjgwXFx1RDI5Q1xcdUQyQjhcXHVEMkQ0IgorICAgICAgICAgICsgIlxcdUQyRjBcXHVEMzBDXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMCIKKyAgICAgICAgICArICJcXHVEM0VDXFx1RDQwOFxcdUQ0MjRcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0MiCisgICAgICAgICAgKyAiXFx1RDRFOFxcdUQ1MDRcXHVENTIwXFx1RDUzQ1xcdUQ1NThcXHVENTc0XFx1RDU5MFxcdUQ1QUNcXHVENUM4IgorICAgICAgICAgICsgIlxcdUQ1RTRcXHVENjAwXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNCIKKyAgICAgICAgICArICJcXHVENkUwXFx1RDZGQ1xcdUQ3MThcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEIgorICAgICAgICAgICsgIlxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEiCisgICAgICAgICAgKyAiLVxcdUZBMkRcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLSIKKyAgICAgICAgICArICJcXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2IgorICAgICAgICAgICsgIi1cXHVGQjRFXFx1RkUyMC1cXHVGRTIzXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEiCisgICAgICAgICAgKyAiMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICArICJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtIgorICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDIiCisgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAKKyAgICAgICAgc2tpcFNldHNbS0RdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXlxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjVcXHUwMEI4LVxcdTAwQkEiCisgICAgICAgICAgKyAiXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICsgIlxcdTAwRDktXFx1MDBERFxcdTAwRTAtXFx1MDBFNVxcdTAwRTctXFx1MDBFRlxcdTAwRjEtXFx1MDBGNiIKKyAgICAgICAgICArICJcXHUwMEY5LVxcdTAwRkRcXHUwMEZGLVxcdTAxMEZcXHUwMTEyLVxcdTAxMjVcXHUwMTI4LVxcdTAxMzAiCisgICAgICAgICAgKyAiXFx1MDEzMi1cXHUwMTM3XFx1MDEzOS1cXHUwMTQwXFx1MDE0My1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICsgIlxcdTAxNTQtXFx1MDE2NVxcdTAxNjgtXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjAiCisgICAgICAgICAgKyAiXFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUzXFx1MDFFNi1cXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDJCMC1cXHUwMkI4XFx1MDJEOC1cXHUwMkREIgorICAgICAgICAgICsgIlxcdTAyRTAtXFx1MDJFNFxcdTAzMDAtXFx1MDM0RVxcdTAzNTAtXFx1MDM2RlxcdTAzNzRcXHUwMzdBIgorICAgICAgICAgICsgIlxcdTAzN0VcXHUwMzg0LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzkwXFx1MDNBQS1cXHUwM0IwIgorICAgICAgICAgICsgIlxcdTAzQ0EtXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICsgIlxcdTAzRjlcXHUwNDAwXFx1MDQwMVxcdTA0MDNcXHUwNDA3XFx1MDQwQy1cXHUwNDBFXFx1MDQxOVxcdTA0MzkiCisgICAgICAgICAgKyAiXFx1MDQ1MFxcdTA0NTFcXHUwNDUzXFx1MDQ1N1xcdTA0NUMtXFx1MDQ1RVxcdTA0NzZcXHUwNDc3XFx1MDQ4MyIKKyAgICAgICAgICArICItXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLSIKKyAgICAgICAgICArICJcXHUwNERGXFx1MDRFMi1cXHUwNEU3XFx1MDRFQS1cXHUwNEY1XFx1MDRGOFxcdTA0RjlcXHUwNTg3IgorICAgICAgICAgICsgIlxcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA2MTAiCisgICAgICAgICAgKyAiLVxcdTA2MTVcXHUwNjIyLVxcdTA2MjZcXHUwNjRCLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4IgorICAgICAgICAgICsgIlxcdTA2QzBcXHUwNkMyXFx1MDZEM1xcdTA2RDYtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNFxcdTA2RTciCisgICAgICAgICAgKyAiXFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwN0VCLVxcdTA3RjMiCisgICAgICAgICAgKyAiXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICArICJcXHUwOTVGXFx1MDlCQ1xcdTA5Q0ItXFx1MDlDRFxcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2IgorICAgICAgICAgICsgIlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCNDgiCisgICAgICAgICAgKyAiXFx1MEI0Qi1cXHUwQjREXFx1MEI1Q1xcdTBCNURcXHUwQjk0XFx1MEJDQS1cXHUwQkNEXFx1MEM0OCIKKyAgICAgICAgICArICJcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENDMFxcdTBDQzdcXHUwQ0M4XFx1MENDQVxcdTBDQ0IiCisgICAgICAgICAgKyAiXFx1MENDRFxcdTBENEEtXFx1MEQ0RFxcdTBEQ0FcXHUwRERBXFx1MEREQy1cXHUwRERFXFx1MEUzMyIKKyAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOFxcdTBFQjlcXHUwRUM4LSIKKyAgICAgICAgICArICJcXHUwRUNCXFx1MEVEQ1xcdTBFRERcXHUwRjBDXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzkiCisgICAgICAgICAgKyAiXFx1MEY0M1xcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5XFx1MEY3MS1cXHUwRjdEXFx1MEY4MCIKKyAgICAgICAgICArICItXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMEZDXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMiIKKyAgICAgICAgICArICJcXHUxN0REXFx1MThBOVxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIwNlxcdTFCMDhcXHUxQjBBIgorICAgICAgICAgICsgIlxcdTFCMENcXHUxQjBFXFx1MUIxMlxcdTFCMzRcXHUxQjNCXFx1MUIzRFxcdTFCNDBcXHUxQjQxXFx1MUI0MyIKKyAgICAgICAgICArICJcXHUxQjQ0XFx1MUI2Qi1cXHUxQjczXFx1MUQyQy1cXHUxRDJFXFx1MUQzMC1cXHUxRDNBXFx1MUQzQy0iCisgICAgICAgICAgKyAiXFx1MUQ0RFxcdTFENEYtXFx1MUQ2QVxcdTFENzhcXHUxRDlCLVxcdTFEQ0FcXHUxREZFLVxcdTFFOUIiCisgICAgICAgICAgKyAiXFx1MUVBMC1cXHUxRUY5XFx1MUYwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1IgorICAgICAgICAgICsgIlxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtIgorICAgICAgICAgICsgIlxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQzRcXHUxRkM2LVxcdTFGRDNcXHUxRkQ2LSIKKyAgICAgICAgICArICJcXHUxRkRCXFx1MUZERC1cXHUxRkVGXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZFXFx1MjAwMC0iCisgICAgICAgICAgKyAiXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRlxcdTIwMzNcXHUyMDM0XFx1MjAzNiIKKyAgICAgICAgICArICJcXHUyMDM3XFx1MjAzQ1xcdTIwM0VcXHUyMDQ3LVxcdTIwNDlcXHUyMDU3XFx1MjA1RlxcdTIwNzBcXHUyMDcxIgorICAgICAgICAgICsgIlxcdTIwNzQtXFx1MjA4RVxcdTIwOTAtXFx1MjA5NFxcdTIwQThcXHUyMEQwLVxcdTIwRENcXHUyMEUxIgorICAgICAgICAgICsgIlxcdTIwRTUtXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtXFx1MjEwN1xcdTIxMDktXFx1MjExMyIKKyAgICAgICAgICArICJcXHUyMTE1XFx1MjExNlxcdTIxMTktXFx1MjExRFxcdTIxMjAtXFx1MjEyMlxcdTIxMjRcXHUyMTI2IgorICAgICAgICAgICsgIlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzFcXHUyMTMzLVxcdTIxMzlcXHUyMTNCLSIKKyAgICAgICAgICArICJcXHUyMTQwXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGXFx1MjE5QVxcdTIxOUJcXHUyMUFFIgorICAgICAgICAgICsgIlxcdTIxQ0QtXFx1MjFDRlxcdTIyMDRcXHUyMjA5XFx1MjIwQ1xcdTIyMjRcXHUyMjI2XFx1MjIyQ1xcdTIyMkQiCisgICAgICAgICAgKyAiXFx1MjIyRlxcdTIyMzBcXHUyMjQxXFx1MjI0NFxcdTIyNDdcXHUyMjQ5XFx1MjI2MFxcdTIyNjJcXHUyMjZELSIKKyAgICAgICAgICArICJcXHUyMjcxXFx1MjI3NFxcdTIyNzVcXHUyMjc4XFx1MjI3OVxcdTIyODBcXHUyMjgxXFx1MjI4NFxcdTIyODUiCisgICAgICAgICAgKyAiXFx1MjI4OFxcdTIyODlcXHUyMkFDLVxcdTIyQUZcXHUyMkUwLVxcdTIyRTNcXHUyMkVBLVxcdTIyRUQiCisgICAgICAgICAgKyAiXFx1MjMyOVxcdTIzMkFcXHUyNDYwLVxcdTI0RUFcXHUyQTBDXFx1MkE3NC1cXHUyQTc2XFx1MkFEQyIKKyAgICAgICAgICArICJcXHUyRDZGXFx1MkU5RlxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGIgorICAgICAgICAgICsgIlxcdTMwMzZcXHUzMDM4LVxcdTMwM0FcXHUzMDRDXFx1MzA0RVxcdTMwNTBcXHUzMDUyXFx1MzA1NFxcdTMwNTYiCisgICAgICAgICAgKyAiXFx1MzA1OFxcdTMwNUFcXHUzMDVDXFx1MzA1RVxcdTMwNjBcXHUzMDYyXFx1MzA2NVxcdTMwNjdcXHUzMDY5IgorICAgICAgICAgICsgIlxcdTMwNzBcXHUzMDcxXFx1MzA3M1xcdTMwNzRcXHUzMDc2XFx1MzA3N1xcdTMwNzlcXHUzMDdBXFx1MzA3QyIKKyAgICAgICAgICArICJcXHUzMDdEXFx1MzA5NFxcdTMwOTktXFx1MzA5Q1xcdTMwOUVcXHUzMDlGXFx1MzBBQ1xcdTMwQUVcXHUzMEIwIgorICAgICAgICAgICsgIlxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkVcXHUzMEMwXFx1MzBDMiIKKyAgICAgICAgICArICJcXHUzMEM1XFx1MzBDN1xcdTMwQzlcXHUzMEQwXFx1MzBEMVxcdTMwRDNcXHUzMEQ0XFx1MzBENlxcdTMwRDciCisgICAgICAgICAgKyAiXFx1MzBEOVxcdTMwREFcXHUzMERDXFx1MzBERFxcdTMwRjRcXHUzMEY3LVxcdTMwRkFcXHUzMEZFXFx1MzBGRiIKKyAgICAgICAgICArICJcXHUzMTMxLVxcdTMxOEVcXHUzMTkyLVxcdTMxOUZcXHUzMjAwLVxcdTMyMUVcXHUzMjIwLVxcdTMyNDMiCisgICAgICAgICAgKyAiXFx1MzI1MC1cXHUzMjdFXFx1MzI4MC1cXHUzMkZFXFx1MzMwMC1cXHUzM0ZGXFx1QTgwNlxcdUFDMDAtIgorICAgICAgICAgICsgIlxcdUQ3QTNcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMlxcdUZBMTUtXFx1RkExRVxcdUZBMjAiCisgICAgICAgICAgKyAiXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC1cXHVGQTZBXFx1RkE3MC0iCisgICAgICAgICAgKyAiXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNlxcdUZCMzgtIgorICAgICAgICAgICsgIlxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMiCisgICAgICAgICAgKyAiLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkNcXHVGRTEwLSIKKyAgICAgICAgICArICJcXHVGRTE5XFx1RkUyMC1cXHVGRTIzXFx1RkUzMC1cXHVGRTQ0XFx1RkU0Ny1cXHVGRTUyXFx1RkU1NC0iCisgICAgICAgICAgKyAiXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkMiCisgICAgICAgICAgKyAiXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3IgorICAgICAgICAgICsgIlxcdUZGREEtXFx1RkZEQ1xcdUZGRTAtXFx1RkZFNlxcdUZGRTgtXFx1RkZFRVxcVTAwMDEwQTBEXFxVMDAwMTAiCisgICAgICAgICAgKyAiQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0FcXFUwMDAxMEEzRlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5IgorICAgICAgICAgICsgIlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMSIKKyAgICAgICAgICArICJEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMUQ0MDAtXFxVMDAwMUQ0NTRcXFUwMDAxRDQ1Ni1cXFUwMDAxRDQ5QyIKKyAgICAgICAgICArICJcXFUwMDAxRDQ5RVxcVTAwMDFENDlGXFxVMDAwMUQ0QTJcXFUwMDAxRDRBNVxcVTAwMDFENEE2XFxVMDAwMUQ0IgorICAgICAgICAgICsgIkE5LVxcVTAwMDFENEFDXFxVMDAwMUQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxRDRCQlxcVTAwMDFENEJELSIKKyAgICAgICAgICArICJcXFUwMDAxRDRDM1xcVTAwMDFENEM1LVxcVTAwMDFENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxIgorICAgICAgICAgICsgIkQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxRDUxNi1cXFUwMDAxRDUxQ1xcVTAwMDFENTFFLVxcVTAwMDFENTM5IgorICAgICAgICAgICsgIlxcVTAwMDFENTNCLVxcVTAwMDFENTNFXFxVMDAwMUQ1NDAtXFxVMDAwMUQ1NDRcXFUwMDAxRDU0NlxcVTAwMDEiCisgICAgICAgICAgKyAiRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDFENTUyLVxcVTAwMDFENkE1XFxVMDAwMUQ2QTgtXFxVMDAwMUQ3Q0IiCisgICAgICAgICAgKyAiXFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkZcXFUwMDAyRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAKKyAgICAgICAgc2tpcFNldHNbS0NdLmFwcGx5UGF0dGVybigKKyAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjUiCisgICAgICAgICAgKyAiXFx1MDBCOC1cXHUwMEJBXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICsgIlxcdTAwRDgtXFx1MDBERFxcdTAwRTAtXFx1MDBFRlxcdTAwRjEtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRCIKKyAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjEiCisgICAgICAgICAgKyAiXFx1MDEyNFxcdTAxMjVcXHUwMTI4LVxcdTAxMkRcXHUwMTMwXFx1MDEzMlxcdTAxMzNcXHUwMTM5XFx1MDEzQSIKKyAgICAgICAgICArICJcXHUwMTNELVxcdTAxNDBcXHUwMTQzXFx1MDE0NFxcdTAxNDctXFx1MDE0OVxcdTAxNEMtXFx1MDE1MSIKKyAgICAgICAgICArICJcXHUwMTU0XFx1MDE1NVxcdTAxNTgtXFx1MDE1RFxcdTAxNjBcXHUwMTYxXFx1MDE2NFxcdTAxNjVcXHUwMTY4IgorICAgICAgICAgICsgIi1cXHUwMTcxXFx1MDE3NC1cXHUwMTdGXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMFxcdTAxQjciCisgICAgICAgICAgKyAiXFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGMS1cXHUwMUY1IgorICAgICAgICAgICsgIlxcdTAxRjgtXFx1MDFGQlxcdTAyMDAtXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzIgorICAgICAgICAgICsgIlxcdTAyOTJcXHUwMkIwLVxcdTAyQjhcXHUwMkQ4LVxcdTAyRERcXHUwMkUwLVxcdTAyRTRcXHUwMzAwLSIKKyAgICAgICAgICArICJcXHUwMzRFXFx1MDM1MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0FcXHUwMzdFXFx1MDM4NFxcdTAzODVcXHUwMzg3IgorICAgICAgICAgICsgIlxcdTAzOTFcXHUwMzk1XFx1MDM5N1xcdTAzOTlcXHUwMzlGXFx1MDNBMVxcdTAzQTVcXHUwM0E5XFx1MDNBQyIKKyAgICAgICAgICArICJcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3XFx1MDNCOVxcdTAzQkZcXHUwM0MxXFx1MDNDNVxcdTAzQzktIgorICAgICAgICAgICsgIlxcdTAzQ0JcXHUwM0NFXFx1MDNEMC1cXHUwM0Q2XFx1MDNGMC1cXHUwM0YyXFx1MDNGNFxcdTAzRjUiCisgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDZcXHUwNDEwXFx1MDQxM1xcdTA0MTUtXFx1MDQxOFxcdTA0MUFcXHUwNDFFXFx1MDQyMyIKKyAgICAgICAgICArICJcXHUwNDI3XFx1MDQyQlxcdTA0MkRcXHUwNDMwXFx1MDQzM1xcdTA0MzUtXFx1MDQzOFxcdTA0M0FcXHUwNDNFIgorICAgICAgICAgICsgIlxcdTA0NDNcXHUwNDQ3XFx1MDQ0QlxcdTA0NERcXHUwNDU2XFx1MDQ3NFxcdTA0NzVcXHUwNDgzLVxcdTA0ODYiCisgICAgICAgICAgKyAiXFx1MDREOFxcdTA0RDlcXHUwNEU4XFx1MDRFOVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMSIKKyAgICAgICAgICArICJcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMlxcdTA2MjNcXHUwNjI3IgorICAgICAgICAgICsgIlxcdTA2NDhcXHUwNjRBLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4XFx1MDZDMVxcdTA2RDIiCisgICAgICAgICAgKyAiXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RUQiCisgICAgICAgICAgKyAiXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItXFx1MDdGM1xcdTA5MjhcXHUwOTMwXFx1MDkzMyIKKyAgICAgICAgICArICJcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgtXFx1MDk1RlxcdTA5QkNcXHUwOUJFIgorICAgICAgICAgICsgIlxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQyIKKyAgICAgICAgICArICJcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3IgorICAgICAgICAgICsgIlxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI5MlxcdTBCQkVcXHUwQkM2XFx1MEJDNyIKKyAgICAgICAgICArICJcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENCRlxcdTBDQzIiCisgICAgICAgICAgKyAiXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFXFx1MEQ0NlxcdTBENDdcXHUwRDREIgorICAgICAgICAgICsgIlxcdTBENTdcXHUwRENBXFx1MERDRlxcdTBERDlcXHUwRERDXFx1MERERlxcdTBFMzNcXHUwRTM4LVxcdTBFM0EiCisgICAgICAgICAgKyAiXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQyIKKyAgICAgICAgICArICJcXHUwRUREXFx1MEYwQ1xcdTBGMThcXHUwRjE5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY0M1xcdTBGNEQiCisgICAgICAgICAgKyAiXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3RFxcdTBGODAtXFx1MEY4NCIKKyAgICAgICAgICArICJcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzYiCisgICAgICAgICAgKyAiXFx1MTAyNVxcdTEwMkVcXHUxMDM3XFx1MTAzOVxcdTEwRkNcXHUxMTAwLVxcdTExMTJcXHUxMTYxLSIKKyAgICAgICAgICArICJcXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMlxcdTE3RERcXHUxOEE5IgorICAgICAgICAgICsgIlxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIwNVxcdTFCMDdcXHUxQjA5XFx1MUIwQlxcdTFCMEQiCisgICAgICAgICAgKyAiXFx1MUIxMVxcdTFCMzRcXHUxQjM1XFx1MUIzQVxcdTFCM0NcXHUxQjNFXFx1MUIzRlxcdTFCNDJcXHUxQjQ0IgorICAgICAgICAgICsgIlxcdTFCNkItXFx1MUI3M1xcdTFEMkMtXFx1MUQyRVxcdTFEMzAtXFx1MUQzQVxcdTFEM0MtXFx1MUQ0RCIKKyAgICAgICAgICArICJcXHUxRDRGLVxcdTFENkFcXHUxRDc4XFx1MUQ5Qi1cXHUxRENBXFx1MURGRS1cXHUxRTAzXFx1MUUwQS0iCisgICAgICAgICAgKyAiXFx1MUUwRlxcdTFFMTItXFx1MUUxQlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtIgorICAgICAgICAgICsgIlxcdTFFNTNcXHUxRTU4LVxcdTFFN0RcXHUxRTgwLVxcdTFFODdcXHUxRThFLVxcdTFFOTFcXHUxRTk2LSIKKyAgICAgICAgICArICJcXHUxRTlCXFx1MUVBMC1cXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOCIKKyAgICAgICAgICArICJcXHUxRjE5XFx1MUYyMC1cXHUxRjMxXFx1MUYzOFxcdTFGMzlcXHUxRjQwXFx1MUY0MVxcdTFGNDhcXHUxRjQ5IgorICAgICAgICAgICsgIlxcdTFGNTBcXHUxRjUxXFx1MUY1OVxcdTFGNjAtXFx1MUY3MVxcdTFGNzMtXFx1MUY3NVxcdTFGNzciCisgICAgICAgICAgKyAiXFx1MUY3OVxcdTFGN0ItXFx1MUY3RFxcdTFGODBcXHUxRjgxXFx1MUY4OFxcdTFGODlcXHUxRjkwXFx1MUY5MSIKKyAgICAgICAgICArICJcXHUxRjk4XFx1MUY5OVxcdTFGQTBcXHUxRkExXFx1MUZBOFxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkItIgorICAgICAgICAgICsgIlxcdTFGQzFcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCLVxcdTFGQ0ZcXHUxRkQzXFx1MUZEQlxcdTFGREQiCisgICAgICAgICAgKyAiLVxcdTFGREZcXHUxRkUzXFx1MUZFQlxcdTFGRUQtXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOSIKKyAgICAgICAgICArICJcXHUxRkZCLVxcdTFGRkVcXHUyMDAwLVxcdTIwMEFcXHUyMDExXFx1MjAxN1xcdTIwMjQtXFx1MjAyNiIKKyAgICAgICAgICArICJcXHUyMDJGXFx1MjAzM1xcdTIwMzRcXHUyMDM2XFx1MjAzN1xcdTIwM0NcXHUyMDNFXFx1MjA0Ny1cXHUyMDQ5IgorICAgICAgICAgICsgIlxcdTIwNTdcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMDkwLVxcdTIwOTQiCisgICAgICAgICAgKyAiXFx1MjBBOFxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUZcXHUyMTAwLVxcdTIxMDMiCisgICAgICAgICAgKyAiXFx1MjEwNS1cXHUyMTA3XFx1MjEwOS1cXHUyMTEzXFx1MjExNVxcdTIxMTZcXHUyMTE5LVxcdTIxMUQiCisgICAgICAgICAgKyAiXFx1MjEyMC1cXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi0iCisgICAgICAgICAgKyAiXFx1MjEzMVxcdTIxMzMtXFx1MjEzOVxcdTIxM0ItXFx1MjE0MFxcdTIxNDUtXFx1MjE0OVxcdTIxNTMtIgorICAgICAgICAgICsgIlxcdTIxN0ZcXHUyMTkwXFx1MjE5MlxcdTIxOTRcXHUyMUQwXFx1MjFEMlxcdTIxRDRcXHUyMjAzXFx1MjIwOCIKKyAgICAgICAgICArICJcXHUyMjBCXFx1MjIyM1xcdTIyMjVcXHUyMjJDXFx1MjIyRFxcdTIyMkZcXHUyMjMwXFx1MjIzQ1xcdTIyNDMiCisgICAgICAgICAgKyAiXFx1MjI0NVxcdTIyNDhcXHUyMjREXFx1MjI2MVxcdTIyNjRcXHUyMjY1XFx1MjI3MlxcdTIyNzNcXHUyMjc2IgorICAgICAgICAgICsgIlxcdTIyNzdcXHUyMjdBLVxcdTIyN0RcXHUyMjgyXFx1MjI4M1xcdTIyODZcXHUyMjg3XFx1MjI5MVxcdTIyOTIiCisgICAgICAgICAgKyAiXFx1MjJBMlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MjQ2MCIKKyAgICAgICAgICArICItXFx1MjRFQVxcdTJBMENcXHUyQTc0LVxcdTJBNzZcXHUyQURDXFx1MkQ2RlxcdTJFOUZcXHUyRUYzIgorICAgICAgICAgICsgIlxcdTJGMDAtXFx1MkZENVxcdTMwMDBcXHUzMDJBLVxcdTMwMkZcXHUzMDM2XFx1MzAzOC1cXHUzMDNBIgorICAgICAgICAgICsgIlxcdTMwNDZcXHUzMDRCXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OSIKKyAgICAgICAgICArICJcXHUzMDVCXFx1MzA1RFxcdTMwNUZcXHUzMDYxXFx1MzA2NFxcdTMwNjZcXHUzMDY4XFx1MzA2RlxcdTMwNzIiCisgICAgICAgICAgKyAiXFx1MzA3NVxcdTMwNzhcXHUzMDdCXFx1MzA5OS1cXHUzMDlEXFx1MzA5RlxcdTMwQTZcXHUzMEFCXFx1MzBBRCIKKyAgICAgICAgICArICJcXHUzMEFGXFx1MzBCMVxcdTMwQjNcXHUzMEI1XFx1MzBCN1xcdTMwQjlcXHUzMEJCXFx1MzBCRFxcdTMwQkYiCisgICAgICAgICAgKyAiXFx1MzBDMVxcdTMwQzRcXHUzMEM2XFx1MzBDOFxcdTMwQ0ZcXHUzMEQyXFx1MzBENVxcdTMwRDhcXHUzMERCIgorICAgICAgICAgICsgIlxcdTMwRUYtXFx1MzBGMlxcdTMwRkRcXHUzMEZGXFx1MzEzMS1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGIgorICAgICAgICAgICsgIlxcdTMyMDAtXFx1MzIxRVxcdTMyMjAtXFx1MzI0M1xcdTMyNTAtXFx1MzI3RVxcdTMyODAtXFx1MzJGRSIKKyAgICAgICAgICArICJcXHUzMzAwLVxcdTMzRkZcXHVBODA2XFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDIgorICAgICAgICAgICsgIlxcdUFDQThcXHVBQ0M0XFx1QUNFMFxcdUFDRkNcXHVBRDE4XFx1QUQzNFxcdUFENTBcXHVBRDZDXFx1QUQ4OCIKKyAgICAgICAgICArICJcXHVBREE0XFx1QURDMFxcdUFERENcXHVBREY4XFx1QUUxNFxcdUFFMzBcXHVBRTRDXFx1QUU2OFxcdUFFODQiCisgICAgICAgICAgKyAiXFx1QUVBMFxcdUFFQkNcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwIgorICAgICAgICAgICsgIlxcdUFGOUNcXHVBRkI4XFx1QUZENFxcdUFGRjBcXHVCMDBDXFx1QjAyOFxcdUIwNDRcXHVCMDYwXFx1QjA3QyIKKyAgICAgICAgICArICJcXHVCMDk4XFx1QjBCNFxcdUIwRDBcXHVCMEVDXFx1QjEwOFxcdUIxMjRcXHVCMTQwXFx1QjE1Q1xcdUIxNzgiCisgICAgICAgICAgKyAiXFx1QjE5NFxcdUIxQjBcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0IgorICAgICAgICAgICsgIlxcdUIyOTBcXHVCMkFDXFx1QjJDOFxcdUIyRTRcXHVCMzAwXFx1QjMxQ1xcdUIzMzhcXHVCMzU0XFx1QjM3MCIKKyAgICAgICAgICArICJcXHVCMzhDXFx1QjNBOFxcdUIzQzRcXHVCM0UwXFx1QjNGQ1xcdUI0MThcXHVCNDM0XFx1QjQ1MFxcdUI0NkMiCisgICAgICAgICAgKyAiXFx1QjQ4OFxcdUI0QTRcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4IgorICAgICAgICAgICsgIlxcdUI1ODRcXHVCNUEwXFx1QjVCQ1xcdUI1RDhcXHVCNUY0XFx1QjYxMFxcdUI2MkNcXHVCNjQ4XFx1QjY2NCIKKyAgICAgICAgICArICJcXHVCNjgwXFx1QjY5Q1xcdUI2QjhcXHVCNkQ0XFx1QjZGMFxcdUI3MENcXHVCNzI4XFx1Qjc0NFxcdUI3NjAiCisgICAgICAgICAgKyAiXFx1Qjc3Q1xcdUI3OThcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDIgorICAgICAgICAgICsgIlxcdUI4NzhcXHVCODk0XFx1QjhCMFxcdUI4Q0NcXHVCOEU4XFx1QjkwNFxcdUI5MjBcXHVCOTNDXFx1Qjk1OCIKKyAgICAgICAgICArICJcXHVCOTc0XFx1Qjk5MFxcdUI5QUNcXHVCOUM4XFx1QjlFNFxcdUJBMDBcXHVCQTFDXFx1QkEzOFxcdUJBNTQiCisgICAgICAgICAgKyAiXFx1QkE3MFxcdUJBOENcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwIgorICAgICAgICAgICsgIlxcdUJCNkNcXHVCQjg4XFx1QkJBNFxcdUJCQzBcXHVCQkRDXFx1QkJGOFxcdUJDMTRcXHVCQzMwXFx1QkM0QyIKKyAgICAgICAgICArICJcXHVCQzY4XFx1QkM4NFxcdUJDQTBcXHVCQ0JDXFx1QkNEOFxcdUJDRjRcXHVCRDEwXFx1QkQyQ1xcdUJENDgiCisgICAgICAgICAgKyAiXFx1QkQ2NFxcdUJEODBcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0IgorICAgICAgICAgICsgIlxcdUJFNjBcXHVCRTdDXFx1QkU5OFxcdUJFQjRcXHVCRUQwXFx1QkVFQ1xcdUJGMDhcXHVCRjI0XFx1QkY0MCIKKyAgICAgICAgICArICJcXHVCRjVDXFx1QkY3OFxcdUJGOTRcXHVCRkIwXFx1QkZDQ1xcdUJGRThcXHVDMDA0XFx1QzAyMFxcdUMwM0MiCisgICAgICAgICAgKyAiXFx1QzA1OFxcdUMwNzRcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4IgorICAgICAgICAgICsgIlxcdUMxNTRcXHVDMTcwXFx1QzE4Q1xcdUMxQThcXHVDMUM0XFx1QzFFMFxcdUMxRkNcXHVDMjE4XFx1QzIzNCIKKyAgICAgICAgICArICJcXHVDMjUwXFx1QzI2Q1xcdUMyODhcXHVDMkE0XFx1QzJDMFxcdUMyRENcXHVDMkY4XFx1QzMxNFxcdUMzMzAiCisgICAgICAgICAgKyAiXFx1QzM0Q1xcdUMzNjhcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDIgorICAgICAgICAgICsgIlxcdUM0NDhcXHVDNDY0XFx1QzQ4MFxcdUM0OUNcXHVDNEI4XFx1QzRENFxcdUM0RjBcXHVDNTBDXFx1QzUyOCIKKyAgICAgICAgICArICJcXHVDNTQ0XFx1QzU2MFxcdUM1N0NcXHVDNTk4XFx1QzVCNFxcdUM1RDBcXHVDNUVDXFx1QzYwOFxcdUM2MjQiCisgICAgICAgICAgKyAiXFx1QzY0MFxcdUM2NUNcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwIgorICAgICAgICAgICsgIlxcdUM3M0NcXHVDNzU4XFx1Qzc3NFxcdUM3OTBcXHVDN0FDXFx1QzdDOFxcdUM3RTRcXHVDODAwXFx1QzgxQyIKKyAgICAgICAgICArICJcXHVDODM4XFx1Qzg1NFxcdUM4NzBcXHVDODhDXFx1QzhBOFxcdUM4QzRcXHVDOEUwXFx1QzhGQ1xcdUM5MTgiCisgICAgICAgICAgKyAiXFx1QzkzNFxcdUM5NTBcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0IgorICAgICAgICAgICsgIlxcdUNBMzBcXHVDQTRDXFx1Q0E2OFxcdUNBODRcXHVDQUEwXFx1Q0FCQ1xcdUNBRDhcXHVDQUY0XFx1Q0IxMCIKKyAgICAgICAgICArICJcXHVDQjJDXFx1Q0I0OFxcdUNCNjRcXHVDQjgwXFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JGMFxcdUNDMEMiCisgICAgICAgICAgKyAiXFx1Q0MyOFxcdUNDNDRcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4IgorICAgICAgICAgICsgIlxcdUNEMjRcXHVDRDQwXFx1Q0Q1Q1xcdUNENzhcXHVDRDk0XFx1Q0RCMFxcdUNEQ0NcXHVDREU4XFx1Q0UwNCIKKyAgICAgICAgICArICJcXHVDRTIwXFx1Q0UzQ1xcdUNFNThcXHVDRTc0XFx1Q0U5MFxcdUNFQUNcXHVDRUM4XFx1Q0VFNFxcdUNGMDAiCisgICAgICAgICAgKyAiXFx1Q0YxQ1xcdUNGMzhcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDIgorICAgICAgICAgICsgIlxcdUQwMThcXHVEMDM0XFx1RDA1MFxcdUQwNkNcXHVEMDg4XFx1RDBBNFxcdUQwQzBcXHVEMERDXFx1RDBGOCIKKyAgICAgICAgICArICJcXHVEMTE0XFx1RDEzMFxcdUQxNENcXHVEMTY4XFx1RDE4NFxcdUQxQTBcXHVEMUJDXFx1RDFEOFxcdUQxRjQiCisgICAgICAgICAgKyAiXFx1RDIxMFxcdUQyMkNcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwIgorICAgICAgICAgICsgIlxcdUQzMENcXHVEMzI4XFx1RDM0NFxcdUQzNjBcXHVEMzdDXFx1RDM5OFxcdUQzQjRcXHVEM0QwXFx1RDNFQyIKKyAgICAgICAgICArICJcXHVENDA4XFx1RDQyNFxcdUQ0NDBcXHVENDVDXFx1RDQ3OFxcdUQ0OTRcXHVENEIwXFx1RDRDQ1xcdUQ0RTgiCisgICAgICAgICAgKyAiXFx1RDUwNFxcdUQ1MjBcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0IgorICAgICAgICAgICsgIlxcdUQ2MDBcXHVENjFDXFx1RDYzOFxcdUQ2NTRcXHVENjcwXFx1RDY4Q1xcdUQ2QThcXHVENkM0XFx1RDZFMCIKKyAgICAgICAgICArICJcXHVENkZDXFx1RDcxOFxcdUQ3MzRcXHVENzUwXFx1RDc2Q1xcdUQ3ODhcXHVGOTAwLVxcdUZBMERcXHVGQTEwIgorICAgICAgICAgICsgIlxcdUZBMTJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS0iCisgICAgICAgICAgKyAiXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtIgorICAgICAgICAgICsgIlxcdUZCMTdcXHVGQjFELVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDEiCisgICAgICAgICAgKyAiXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEYiCisgICAgICAgICAgKyAiXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZDXFx1RkUxMC1cXHVGRTE5XFx1RkUyMC1cXHVGRTIzIgorICAgICAgICAgICsgIlxcdUZFMzAtXFx1RkU0NFxcdUZFNDctXFx1RkU1MlxcdUZFNTQtXFx1RkU2NlxcdUZFNjgtXFx1RkU2QiIKKyAgICAgICAgICArICJcXHVGRTcwLVxcdUZFNzJcXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi0iCisgICAgICAgICAgKyAiXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ1xcdUZGRTAtIgorICAgICAgICAgICsgIlxcdUZGRTZcXHVGRkU4LVxcdUZGRUVcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTAiCisgICAgICAgICAgKyAiQTNBXFxVMDAwMTBBM0ZcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyIgorICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQxQURcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMSIKKyAgICAgICAgICArICJENDAwLVxcVTAwMDFENDU0XFxVMDAwMUQ0NTYtXFxVMDAwMUQ0OUNcXFUwMDAxRDQ5RVxcVTAwMDFENDlGIgorICAgICAgICAgICsgIlxcVTAwMDFENEEyXFxVMDAwMUQ0QTVcXFUwMDAxRDRBNlxcVTAwMDFENEE5LVxcVTAwMDFENEFDXFxVMDAwMUQiCisgICAgICAgICAgKyAiNEFFLVxcVTAwMDFENEI5XFxVMDAwMUQ0QkJcXFUwMDAxRDRCRC1cXFUwMDAxRDRDM1xcVTAwMDFENEM1LSIKKyAgICAgICAgICArICJcXFUwMDAxRDUwNVxcVTAwMDFENTA3LVxcVTAwMDFENTBBXFxVMDAwMUQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxIgorICAgICAgICAgICsgIkQ1MTYtXFxVMDAwMUQ1MUNcXFUwMDAxRDUxRS1cXFUwMDAxRDUzOVxcVTAwMDFENTNCLVxcVTAwMDFENTNFIgorICAgICAgICAgICsgIlxcVTAwMDFENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDEiCisgICAgICAgICAgKyAiRDU1Mi1cXFUwMDAxRDZBNVxcVTAwMDFENkE4LVxcVTAwMDFEN0NCXFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkYiCisgICAgICAgICAgKyAiXFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgCisgICAgICAgIHJldHVybiBza2lwU2V0czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2tpcHBhYmxlKCkgeworICAgICAgIFVuaWNvZGVTZXQgc3RhcnRzOworICAgICAgIFVuaWNvZGVTZXRbXSBza2lwU2V0cyA9IG5ldyBVbmljb2RlU2V0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwgLy9ORkQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLCAvL05GQworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTkZLQworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTkZLRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vRkNECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwgLy9OT05FCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgVW5pY29kZVNldFtdIGV4cGVjdFNldHMgPSBuZXcgVW5pY29kZVNldFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgIFN0cmluZ0J1ZmZlciBzLCBwYXR0ZXJuOworICAgICAgIGludCBzdGFydCwgbGltaXQsIHJhbmdlRW5kOworICAgICAgIGludCBpLCByYW5nZSwgY291bnQ7CisgICAgICAgc3RhcnRzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAvKgorICAgICAgIC8vW1x1MDM1MC1cdTAzNTdcdTAzNUQtXHUwMzVGXHUwNjEwLVx1MDYxNVx1MDY1Ni1cdTA2NThcdTBDQkNcdTE3RERcdTE5MzktXHUxOTNCXQorICAgICAgIGZvcihpbnQgY2g9MDtjaDw9MHgxMEZGRkY7Y2grKyl7CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZEKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0RdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZLRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tLRF0uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjaCwgTm9ybWFsaXplci5ORkMpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbQ10uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjaCwgTm9ybWFsaXplci5ORktDKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0tDXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNoLCBOb3JtYWxpemVyLkZDRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tGQ0RdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTk9ORSkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tOT05FXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAqLworICAgICAgIC8vIGJ1aWxkIE5GKlNraXBwYWJsZSBzZXRzIGZyb20gcnVudGltZSBkYXRhIAorICAgICAgIE5vcm1hbGl6ZXJJbXBsLmFkZFByb3BlcnR5U3RhcnRzKHN0YXJ0cyk7CisgICAgICAgY291bnQ9c3RhcnRzLmdldFJhbmdlQ291bnQoKTsKKyAgIAorICAgICAgIHN0YXJ0PWxpbWl0PTA7CisgICAgICAgcmFuZ2VFbmQ9MDsKKyAgICAgICByYW5nZT0wOworICAgICAgIGZvcig7OykgeworICAgICAgICAgICBpZihzdGFydDxsaW1pdCkgeworICAgICAgICAgICAgICAgLy8gZ2V0IHByb3BlcnRpZXMgZm9yIHN0YXJ0IGFuZCBhcHBseSB0aGVtIHRvIFtzdGFydC4ubGltaXRbIAorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tEXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GS0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbS0RdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoc3RhcnQsIE5vcm1hbGl6ZXIuTkZDKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0NdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoc3RhcnQsIE5vcm1hbGl6ZXIuTkZLQykpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tLQ10uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShzdGFydCwgTm9ybWFsaXplci5GQ0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbRkNEXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5PTkUpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbTk9ORV0uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICB9CisgICAKKyAgICAgICAgICAgLy8gZ28gdG8gbmV4dCByYW5nZSBvZiBzYW1lIHByb3BlcnRpZXMgCisgICAgICAgICAgIHN0YXJ0PWxpbWl0OworICAgICAgICAgICBpZigrK2xpbWl0PnJhbmdlRW5kKSB7CisgICAgICAgICAgICAgICBpZihyYW5nZTxjb3VudCkgeworICAgICAgICAgICAgICAgICAgIGxpbWl0PXN0YXJ0cy5nZXRSYW5nZVN0YXJ0KHJhbmdlKTsKKyAgICAgICAgICAgICAgICAgICByYW5nZUVuZD1zdGFydHMuZ2V0UmFuZ2VFbmQocmFuZ2UpOworICAgICAgICAgICAgICAgICAgICsrcmFuZ2U7CisgICAgICAgICAgICAgICB9IGVsc2UgaWYocmFuZ2U9PWNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbCByYW5nZSB0byBjb21wbGV0ZSB0aGUgVW5pY29kZSBjb2RlIHNwYWNlIAorICAgICAgICAgICAgICAgICAgIGxpbWl0PXJhbmdlRW5kPTB4MTEwMDAwOworICAgICAgICAgICAgICAgICAgICsrcmFuZ2U7CisgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorICAgCisgICAgICAgZXhwZWN0U2V0cyA9IGluaXRTa2lwcGFibGVzKGV4cGVjdFNldHMpOworICAgICAgIGlmKGV4cGVjdFNldHNbRF0uY29udGFpbnMoMHgwMzUwKSl7CisgICAgICAgICAgICBlcnJsbigiZXhwZWN0U2V0c1tEXSBjb250YWlucyAweDAzNTAiKTsKKyAgICAgICB9CisgICAgICAgLy9leHBlY3RTZXRzLmxlbmd0aCBmb3Igbm93IGRvIG5vdCB0ZXN0IEZDRCBhbmQgTk9ORSBzaW5jZSB0aGVyZSBpcyBubyBkYXRhCisgICAgICAgZm9yKGk9MDsgaTwgNDsgKytpKSB7CisKKyAgICAgICAgICAgaWYoIXNraXBTZXRzW2ldLmVxdWFscyhleHBlY3RTZXRzW2ldKSkgeworICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBUZXN0U2tpcHBhYmxlIHNraXBTZXRzWyIraSsiXSE9ZXhwZWN0ZWRTZXRzWyIraSsiXVxuIisKKyAgICAgICAgICAgICAgICAgICAgICJNYXkgbmVlZCB0byB1cGRhdGUgaGFyZGNvZGVkIFVuaWNvZGVTZXQgcGF0dGVybnMgaW4gY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5CYXNpY1Rlc3QuamF2YVxuIisKKyAgICAgICAgICAgICAgICAgICAgICJTZWUgSUNVNEogLSB1bmljb2RldG9vbHMuY29tLmlibS50ZXh0LlVDRC5ORlNraXBwYWJsZVxuIiArCisgICAgICAgICAgICAgICAgICAgICAiUnVuIGNvbS5pYm0udGV4dC5VQ0QuTWFpbiB3aXRoIHRoZSBvcHRpb24gTkZTa2lwcGFibGUuIik7CisgICAKKyAgICAgICAgICAgICAgIHM9bmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbnNraXA9ICAgICAgICIpOworICAgICAgICAgICAgICAgcy5hcHBlbmQoc2tpcFNldHNbaV0udG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuIik7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJza2lwLWV4cGVjdD0iKTsgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigoKFVuaWNvZGVTZXQpc2tpcFNldHNbaV0uY2xvbmUoKSkucmVtb3ZlQWxsKGV4cGVjdFNldHNbaV0pLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZChwYXR0ZXJuKTsKKyAgIAorICAgICAgICAgICAgICAgcGF0dGVybi5kZWxldGUoMCxwYXR0ZXJuLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuZXhwZWN0LXNraXA9Iik7CisgICAgICAgICAgICAgICBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigoKFVuaWNvZGVTZXQpZXhwZWN0U2V0c1tpXS5jbG9uZSgpKS5yZW1vdmVBbGwoc2tpcFNldHNbaV0pLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZChwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuIik7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHBhdHRlcm4uZGVsZXRlKDAscGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbmludGVyc2VjdGlvbihleHBlY3Qsc2tpcCk9Iik7CisgICAgICAgICAgICAgICBVbmljb2RlU2V0IGludGVyc2VjdGlvbiAgPSAoKFVuaWNvZGVTZXQpIGV4cGVjdFNldHNbaV0uY2xvbmUoKSkucmV0YWluQWxsKHNraXBTZXRzW2ldKTsKKyAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKGludGVyc2VjdGlvbi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgcy5hcHBlbmQocGF0dGVybik7CisgICAgICAgICAgICAgICBzLmFwcGVuZCgiXG5cbiIpOworICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgZXJybG4ocy50b1N0cmluZygpKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgfQorICAgICAKKyAgICAgcHVibGljIHZvaWQgVGVzdEJ1Z0oyMDY4KCl7CisgICAgICAgIFN0cmluZyBzYW1wbGUgPSAiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2ciOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzYW1wbGUpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcih0ZXh0LE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICB0ZXh0LnNldEluZGV4KDQpOworICAgICAgICBpZih0ZXh0LmN1cnJlbnQoKSA9PSBub3JtLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBpcyBub3QgY2xvbmluZyB0aGUgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICAgfSAgIAorICAgICBwdWJsaWMgdm9pZCBUZXN0R2V0Q29tYmluaW5nQ2xhc3MoKXsKKyAgICAgICAgZm9yKGludCBpPTA7aTwweDEwRkZGRjtpKyspeworICAgICAgICAgICAgaW50IGNjID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhpKTsKKyAgICAgICAgICAgIGlmKDB4RDgwMDw9IGkgJiYgaTw9MHhERkZGICYmIGNjID4wICl7CisgICAgICAgICAgICAgICAgY2MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGkpOworICAgICAgICAgICAgICAgIGVycmxuKCJDQzogIisgY2MgKyAiIGZvciBjb2RlcG9pbnQ6ICIgK1V0aWxpdHkuaGV4KGksOCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0gIAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXROWCgpeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IE5vcm1hbGl6ZXJJbXBsLmdldE5YKDEgLypOb3JtYWxpemVySW1wbC5OWF9IQU5HVUwqLyk7CisgICAgICAgIGlmKCFzZXQuY29udGFpbnMoMHhhYzAxKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0TlggZGlkIG5vdCByZXR1cm4gY29ycmVjdCBzZXQgZm9yIE5YX0hBTkdVTCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXQgPSBOb3JtYWxpemVySW1wbC5nZXROWCgyLypOb3JtYWxpemVySW1wbC5OWF9DSktfQ09NUEFUKi8pOworICAgICAgICBpZighc2V0LmNvbnRhaW5zKCdcdUZBMjAnKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0TlggZGlkIG5vdCByZXR1cm4gY29ycmVjdCBzZXQgZm9yIE5YX0NKS19DT01QQVQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VyaWFsaXplZFNldCgpeworICAgICAgICBVU2VyaWFsaXplZFNldCBzc2V0PW5ldyBVU2VyaWFsaXplZFNldCgpOworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBzdGFydCwgZW5kOworICAgIAorICAgICAgICAvLyBjb2xsZWN0IGFsbCBzZXRzIGludG8gb25lIGZvciBjb250aWd1b3VzIG91dHB1dAorICAgICAgICBpbnRbXSBzdGFydEVuZCA9IG5ldyBpbnRbMl07CisKKyAgICAgICAgaWYoTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldCgweDAxMzAsIHNzZXQpKSB7CisgICAgICAgICAgICBpbnQgY291bnQ9c3NldC5jb3VudFJhbmdlcygpOworICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8Y291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIHNzZXQuZ2V0UmFuZ2Uoaiwgc3RhcnRFbmQpOworICAgICAgICAgICAgICAgIHNldC5hZGQoc3RhcnRFbmRbMF0sIHN0YXJ0RW5kWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgIAorCisgICAgICAgIC8vIHRlc3QgYWxsIG9mIHRoZXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgICAgICB3aGlsZShpdC5uZXh0UmFuZ2UoKSAmJiBpdC5jb2RlcG9pbnQhPVVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgIHN0YXJ0PWl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgIGVuZD1pdC5jb2RlcG9pbnRFbmQ7CisgICAgICAgICAgICB3aGlsZShzdGFydDw9ZW5kKSB7CisgICAgICAgICAgICAgICAgaWYoIXNzZXQuY29udGFpbnMoc3RhcnQpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTZXJpYWxpemVkU2V0LmNvbnRhaW5zIGZhaWxlZCBmb3IgIitVdGlsaXR5LmhleChzdGFydCw4KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXR1cm5GYWlsdXJlKCl7CisgICAgICAgIGNoYXJbXSB0ZXJtID0geydyJywnXHUwMGU5JywncycsJ3UnLCdtJywnXHUwMGU5JyB9OworICAgICAgICBjaGFyW10gZGVjb21wb3NlZF90ZXJtID0gbmV3IGNoYXJbMTAgKyB0ZXJtLmxlbmd0aCArIDJdOworICAgICAgICBpbnQgcmMgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXJtLDAsdGVybS5sZW5ndGgsIGRlY29tcG9zZWRfdGVybSwwLGRlY29tcG9zZWRfdGVybS5sZW5ndGgsdHJ1ZSwgMCk7CisgICAgICAgIGludCByYzEgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXJtLDAsdGVybS5sZW5ndGgsIGRlY29tcG9zZWRfdGVybSwxMCxkZWNvbXBvc2VkX3Rlcm0ubGVuZ3RoLHRydWUsIDApOyAKKyAgICAgICAgaWYocmMhPXJjMSl7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBkZWNvbXBvc2UgZGlkIG5vdCByZXR1cm4gY29ycmVjdCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGNsYXNzIFRlc3RDb21wb3NpdGlvbkNhc2UgeworICAgICAgICBwdWJsaWMgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisgICAgICAgIHB1YmxpYyBpbnQgb3B0aW9uczsKKyAgICAgICAgcHVibGljIFN0cmluZyBpbnB1dCwgZXhwZWN0OworICAgICAgICBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTW9kZSBtb2RlLCBpbnQgb3B0aW9ucywgU3RyaW5nIGlucHV0LCBTdHJpbmcgZXhwZWN0KSB7CisgICAgICAgICAgICB0aGlzLm1vZGU9bW9kZTsKKyAgICAgICAgICAgIHRoaXMub3B0aW9ucz1vcHRpb25zOworICAgICAgICAgICAgdGhpcy5pbnB1dD1pbnB1dDsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0PWV4cGVjdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGlvbigpIHsKKyAgICAgICAgZmluYWwgVGVzdENvbXBvc2l0aW9uQ2FzZSBjYXNlc1tdPW5ldyBUZXN0Q29tcG9zaXRpb25DYXNlW117CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc3BlY2lhbCBjYXNlcyBmb3IgVUFYICMxNSBidWcKKyAgICAgICAgICAgICAqIHNlZSBVbmljb2RlIFB1YmxpYyBSZXZpZXcgSXNzdWUgIzI5CisgICAgICAgICAgICAgKiBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCNwcmkyOQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgMCwgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIsICAgICAgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIDAsICJcdTExMDBcdTAzMDBcdTExNjFcdTAzMjdcdTExYTgiLCJcdTExMDBcdTAzMDBcdTExNjFcdTAzMjdcdTExYTgiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCAwLCAiXHVhYzAwXHUwMzAwXHUwMzI3XHUxMWE4IiwgICAgICAiXHVhYzAwXHUwMzI3XHUwMzAwXHUxMWE4IiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgMCwgIlx1MGI0N1x1MDMwMFx1MGIzZSIsICAgICAgICAgICAgIlx1MGI0N1x1MDMwMFx1MGIzZSIpLAorCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSwgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyNyIsICAgICAgICJcdWFjMDBcdTAzMDBcdTAzMjciKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVySW1wbC5CRUZPUkVfUFJJXzI5LCAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3XHUxMWE4IiwgIlx1YWMwMVx1MDMwMFx1MDMyNyIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXJJbXBsLkJFRk9SRV9QUklfMjksICJcdWFjMDBcdTAzMDBcdTAzMjdcdTExYTgiLCAgICAgICAiXHVhYzAxXHUwMzI3XHUwMzAwIiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSwgIlx1MGI0N1x1MDMwMFx1MGIzZSIsICAgICAgICAgICAgICJcdTBiNGJcdTAzMDAiKQorCisgICAgICAgICAgICAvKiBUT0RPOiBhZGQgdGVzdCBjYXNlcyBmb3IgVU5PUk1fRkNDIGhlcmUgKGoyMTUxKSAqLworICAgICAgICB9OworCisgICAgICAgIFN0cmluZyBvdXRwdXQ7CisgICAgICAgIGludCBpLCBsZW5ndGg7CisKKyAgICAgICAgZm9yKGk9MDsgaTxjYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgb3V0cHV0PU5vcm1hbGl6ZXIubm9ybWFsaXplKGNhc2VzW2ldLmlucHV0LCBjYXNlc1tpXS5tb2RlLCBjYXNlc1tpXS5vcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCFvdXRwdXQuZXF1YWxzKGNhc2VzW2ldLmV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidW5leHBlY3RlZCByZXN1bHQgZm9yIGNhc2UgIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0NvbmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTk0MGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0NvbmZvcm1hbmNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIENvbmZvcm1hbmNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIE5vcm1hbGl6ZXIgbm9ybWFsaXplcjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29uZm9ybWFuY2VUZXN0KCkgeworICAgICAgICAvLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBzdHJpbmcgYW5kIG1vZGUgYXJlOyB3ZSdsbCBjaGFuZ2UKKyAgICAgICAgLy8gdGhlbSBsYXRlciBhcyBuZWVkZWQuCisgICAgICAgIG5vcm1hbGl6ZXIgPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMsIDApOworICAgIH0KKyAgICAvLyBtb3JlIGludGVyZXN0aW5nIGNvbmZvcm1hbmNlIHRlc3QgY2FzZXMsIG5vdCBpbiB0aGUgdW5pY29kZS5vcmcgTm9ybWFsaXphdGlvblRlc3QudHh0CisgICAgc3RhdGljICBTdHJpbmdbXSBtb3JlQ2FzZXMgPXsKKyAgICAgICAgLy8gTWFya3VzIDIwMDFhdWczMAorICAgICAgICAiMDA2MSAwMzMyIDAzMDg7MDBFNCAwMzMyOzAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODsgIyBNYXJrdXMgMCIsCisgICAgCisgICAgICAgIC8vIE1hcmt1cyAyMDAxb2N0MjYgLSB0ZXN0IGVkZ2UgY2FzZSBmb3IgaXRlcmF0aW9uOiBVKzBmNzMuY2M9PTAgYnV0IGRlY29tcG9zaXRpb24ubGVhZC5jYz09MTI5CisgICAgICAgICIwMDYxIDAzMDEgMEY3MzswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOzAwRTEgMEY3MSAwRjcyOzAwNjEgMEY3MSAwRjcyIDAzMDE7ICMgTWFya3VzIDEiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNvbmZvcm1hbmNlIG9mIE5vcm1hbGl6ZXIgdG8KKyAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1L2NvbmZvcm1hbmNlL0RyYWZ0LVRlc3RTdWl0ZS50eHQuKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBL05vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgICAqIFRoaXMgZmlsZSBtdXN0IGJlIGxvY2F0ZWQgYXQgdGhlIHBhdGggc3BlY2lmaWVkIGFzIFRFU1RfU1VJVEVfRklMRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBydW5Db25mb3JtYW5jZSgidW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQiLDApOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2VfM18yKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgcnVuQ29uZm9ybWFuY2UoInVuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0IixOb3JtYWxpemVyLlVOSUNPREVfM18yKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcnVuQ29uZm9ybWFuY2UoU3RyaW5nIGZpbGVOYW1lLCBpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBudWxsOworICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgIFN0cmluZ1tdIGZpZWxkcyA9IG5ldyBTdHJpbmdbNV07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBwYXNzQ291bnQgPSAwOworICAgICAgICBpbnQgZmFpbENvdW50ID0gMDsKKyAgICAgICAgVW5pY29kZVNldCBvdGhlciA9IG5ldyBVbmljb2RlU2V0KDAsIDB4MTBmZmZmKTsKKyAgICAgICAgaW50IGM9MDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlucHV0ID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihmaWxlTmFtZSk7CisgICAgICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7OysrY291bnQpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vcmVhZCB0aGUgZXh0cmEgdGVzdCBjYXNlcworICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA+IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvdW50ID09IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbW9yZUNhc2VzW2NvdW50KytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIEV4cGVjdCA1IGNvbHVtbnMgb2YgdGhpcyBmb3JtYXQ6CisgICAgICAgICAgICAgICAgLy8gMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsgIyA8Y29tbWVudHM+CisKKyAgICAgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICcjJyAgfHwgbGluZS5jaGFyQXQoMCk9PSdAJykgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICAgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gdGhlICJvdGhlciIgVW5pY29kZVNldAorICAgICAgICAgICAgICAgIGlmKGZpZWxkc1swXS5sZW5ndGgoKT09VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChmaWVsZHNbMF0sMCwgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZmllbGRzWzBdLDApOyAKKyAgICAgICAgICAgICAgICAgICAgaWYoMHhhYzIwPD1jICYmIGM8PTB4ZDczZikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IGFuIGV4aGF1c3RpdmUgdGVzdCBydW46IHNraXAgbW9zdCBIYW5ndWwgc3lsbGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjPT0weGFjMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5yZW1vdmUoMHhhYzIwLCAweGQ3M2YpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3RoZXIucmVtb3ZlKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUsb3B0aW9ucykpIHsKKyAgICAgICAgICAgICAgICAgICAgKytwYXNzQ291bnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgKytmYWlsQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoY291bnQgJSAxMDAwKSA9PSA5OTkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkxpbmUgIiArIChjb3VudCsxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb3VsZG4ndCByZWFkIGZpbGUgIgorICAgICAgICAgICAgICArIGV4LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAiICsgZXguZ2V0TWVzc2FnZSgpCisgICAgICAgICAgICAgICsgIiBsaW5lID0gIiArIGxpbmUKKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWlsQ291bnQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlRvdGFsOiAiICsgZmFpbENvdW50ICsgIiBsaW5lcyBmYWlsZWQsICIgKworICAgICAgICAgICAgICAgICAgcGFzc0NvdW50ICsgIiBsaW5lcyBwYXNzZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUb3RhbDogIiArIHBhc3NDb3VudCArICIgbGluZXMgcGFzc2VkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb25mb3JtYW5jZSBvZiB0aGUgZ2l2ZW4gbGluZSBvZiB0aGUgVW5pY29kZQorICAgICAqIG5vcm1hbGl6YXRpb24gKFVUUiAxNSkgdGVzdCBzdWl0ZSBmaWxlLiAgRm9yIGVhY2ggbGluZSwKKyAgICAgKiB0aGVyZSBhcmUgZml2ZSBjb2x1bW5zLCBjb3JyZXNwb25kaW5nIHRvIGZpZWxkWzBdLi5maWVsZFs0XS4KKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50IGltcGxlbWVudGF0aW9ucworICAgICAqICBjMiA9PSBORkMoYzEpID09IE5GQyhjMikgPT0gTkZDKGMzKQorICAgICAqICBjMyA9PSBORkQoYzEpID09IE5GRChjMikgPT0gTkZEKGMzKQorICAgICAqICBjNCA9PSBORktDKGMxKSA9PSBORktDKGMyKSA9PSBORktDKGMzKSA9PSBORktDKGM0KSA9PSBORktDKGM1KQorICAgICAqICBjNSA9PSBORktEKGMxKSA9PSBORktEKGMyKSA9PSBORktEKGMzKSA9PSBORktEKGM0KSA9PSBORktEKGM1KQorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSA1IGNvbHVtbnMKKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgc291cmNlIGxpbmUgZnJvbSB0aGUgdGVzdCBzdWl0ZSBmaWxlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IHBhc3NlcworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja0NvbmZvcm1hbmNlKFN0cmluZ1tdIGZpZWxkLCBTdHJpbmcgbGluZSwgaW50IG9wdGlvbnMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7IC8vIHNjcmF0Y2gKKyAgICAgICAgU3RyaW5nIG91dCxmY2Q7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGZvciAoaT0wOyBpPDU7ICsraSkgeworICAgICAgICAgICAgaWYgKGk8MykgeworICAgICAgICAgICAgICAgIG91dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GQywgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZDLCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkMoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKworICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjcm9zcyhmaWVsZFsyXSAvKk5GRCBTdHJpbmcqLywgZmllbGRbMV0vKk5GQyBTdHJpbmcqLywgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIGNyb3NzKGZpZWxkWzFdIC8qTkZDIFN0cmluZyovLCBmaWVsZFsyXS8qTkZEIFN0cmluZyovLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktDLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0MiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktDLCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAKKworICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEIiwgZmllbGRbaV0sIG91dCwgZmllbGRbNF0sICJjNSE9S0QoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY3Jvc3MoZmllbGRbNF0gLypORktEIFN0cmluZyovLCBmaWVsZFszXS8qTkZLQyBTdHJpbmcqLywgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGNyb3NzKGZpZWxkWzNdIC8qTkZLQyBTdHJpbmcqLywgZmllbGRbNF0vKk5GS0QgU3RyaW5nKi8sIE5vcm1hbGl6ZXIuTkZLRCk7CisgIAorICAgICAgICB9CisgICAgICAgIGNvbXBhcmUoZmllbGRbMV0sZmllbGRbMl0pOworICAgICAgICBjb21wYXJlKGZpZWxkWzBdLGZpZWxkWzFdKTsKKyAgICAgICAgY29tcGFyZShmaWVsZFswXSxmaWVsZFsyXSk7CisgICAgICAgICAvLyB0ZXN0IHF1aWNrIGNoZWNrcworICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFsxXSwgTm9ybWFsaXplci5ORkMsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GQyhzKSwgTm9ybWFsaXplci5ORkMpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFsyXSwgTm9ybWFsaXplci5ORkQsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GRChzKSwgTm9ybWFsaXplci5ORkQpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFszXSwgTm9ybWFsaXplci5ORktDLG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORktDKHMpLCBOb3JtYWxpemVyLk5GS0MpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFs0XSwgTm9ybWFsaXplci5ORktELG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORktEKHMpLCBOb3JtYWxpemVyLk5GS0QpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbMV0sIE5vcm1hbGl6ZXIuTkZDLCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChORkMocyksIE5vcm1hbGl6ZXIuTkZDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFmaWVsZFswXS5lcXVhbHMoZmllbGRbMV0pICYmIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzBdLCBOb3JtYWxpemVyLk5GQywgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQocywgTm9ybWFsaXplci5ORkMpIGlzIFRSVUUiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbM10sIE5vcm1hbGl6ZXIuTkZLQywgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZLQyhzKSwgTm9ybWFsaXplci5ORktDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFmaWVsZFswXS5lcXVhbHMoZmllbGRbM10pICYmIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzBdLCBOb3JtYWxpemVyLk5GS0MsIG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKHMsIE5vcm1hbGl6ZXIuTkZLQykgaXMgVFJVRSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgYXBpIHRoYXQgdGFrZXMgYSBjaGFyW10KKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzFdLnRvQ2hhckFycmF5KCksMCxmaWVsZFsxXS5sZW5ndGgoKSwgTm9ybWFsaXplci5ORkMsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZDKHMpLCBOb3JtYWxpemVyLk5GQykgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGFwaSB0aGF0IHRha2VzIGEgY29kZXBvaW50CisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChVVEYxNi5jaGFyQXQoZmllbGRbMV0sMCksIE5vcm1hbGl6ZXIuTkZDLG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKE5GQyhzKSwgTm9ybWFsaXplci5ORkMpIGlzIGZhbHNlIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBGQ0QgcXVpY2sgY2hlY2sgYW5kICJtYWtlRkNEIgorICAgICAgICBmY2Q9Tm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbMF0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmNkLCBOb3JtYWxpemVyLkZDRCxvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soRkNEKHMpLCBOb3JtYWxpemVyLkZDRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIEZDRCByZXR1cm4gbGVuZ3RoCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXJbXSBmY2QyID0gbmV3IGNoYXJbIGZjZC5sZW5ndGgoKSAqIDIgXTsKKyAgICAgICAgICAgIGNoYXJbXSBzcmMgPSBmaWVsZFswXS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW50IGZjZExlbiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNyYywgMCwgc3JjLmxlbmd0aCwgZmNkMiwgZmNkLmxlbmd0aCgpLCBmY2QyLmxlbmd0aCxOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICBpZihmY2RMZW4gIT0gZmNkLmxlbmd0aCgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigibWFrZUZDRCBkaWQgbm90IHJldHVybiB0aGUgY29ycmVjdCBsZW5ndGgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmY2QsIE5vcm1hbGl6ZXIuRkNELCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soRkNEKHMpLCBOb3JtYWxpemVyLkZDRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzJdLCBOb3JtYWxpemVyLkZDRCwgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GRChzKSwgTm9ybWFsaXplci5GQ0QpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzRdLCBOb3JtYWxpemVyLkZDRCwgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GS0QocyksIE5vcm1hbGl6ZXIuRkNEKSBpcyBOb3JtYWxpemVyLk5PIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzBdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzBdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFsyXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFsyXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbNF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbNF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgCisgICAgICAgIG91dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShmY2QsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgaWYoIW91dC5lcXVhbHMoZmllbGRbMl0pKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogTkZEKEZDRChzKSkhPU5GRChzKSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9ICAgIAorICAgICAgICBpZiAoIXBhc3MpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGluZSk7CisgICAgICAgIH0gICAgIAorICAgICAgICBpZihmaWVsZFswXSE9ZmllbGRbMl0pIHsKKyAgICAgICAgICAgIC8vIHR3byBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgbXVzdCB0ZXN0CisgICAgICAgICAgICAvLyBlcXVhbCB1bmRlciBhIGNhbm9uaWNhbCBjYXNlbGVzcyBtYXRjaAorICAgICAgICAgICAgLy8gc2VlIFVBWCAjMjEgQ2FzZSBNYXBwaW5ncyBhbmQgSml0dGVyYnVnIDIwMjEgYW5kCisgICAgICAgICAgICAvLyBVbmljb2RlIFRlY2huaWNhbCBDb21taXR0ZWUgbWVldGluZyBjb25zZW5zdXMgOTItQzMxCisgICAgICAgICAgICBpbnQgcmM7CisgICAgICAgICAgICBpZigocmMgPSBOb3JtYWxpemVyLmNvbXBhcmUoZmllbGRbMF0sIGZpZWxkWzJdLCAob3B0aW9uczw8Tm9ybWFsaXplci5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCl8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSkhPTApeworICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIuY29tcGFyZShvcmlnaW5hbCwgTkZELCBjYXNlLWluc2Vuc2l0aXZlKSByZXR1cm5lZCAiK3JjKyIgaW5zdGVhZCBvZiAwIGZvciBlcXVhbCIpOworICAgICAgICAgICAgICAgcGFzcz1mYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhc3M7CisgICAgfQorICAgIC8vIHR3byBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgbXVzdCB0ZXN0CisgICAgLy8gZXF1YWwgdW5kZXIgYSBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2gKKyAgICAvLyBzZWUgVUFYICMyMSBDYXNlIE1hcHBpbmdzIGFuZCBKaXR0ZXJidWcgMjAyMSBhbmQKKyAgICAvLyBVbmljb2RlIFRlY2huaWNhbCBDb21taXR0ZWUgbWVldGluZyBjb25zZW5zdXMgOTItQzMxCisgICAgcHJpdmF0ZSB2b2lkIGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIpeworICAgICAgICBpZihzMS5sZW5ndGgoKT09MSAmJiBzMi5sZW5ndGgoKT09MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLFVURjE2LmNoYXJBdChzMiwwKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGludCxpbnQpIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoczEubGVuZ3RoKCk9PTEgJiYgczIubGVuZ3RoKCk+MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLHMyLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoaW50LFN0cmluZykgZmFpbGVkIGZvciBzMTogIgorICAgICAgICAgICAgICAgICAgICAgICAgK1V0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfQorICAgICAgICBpZihzMS5sZW5ndGgoKT4xICYmIHMyLmxlbmd0aCgpPjEpeworICAgICAgICAgICAgLy8gVE9ETzogUmUtZW5hYmxlIHRoaXMgdGVzdHMgYWZ0ZXIgVVRDIGZpeGVzIFVBWCAyMQorICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHMxLnRvQ2hhckFycmF5KCksczIudG9DaGFyQXJyYXkoKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGNoYXJbXSxjaGFyW10pIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0gICAgCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjcm9zcyhTdHJpbmcgczEsIFN0cmluZyBzMixOb3JtYWxpemVyLk1vZGUgbW9kZSl7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzMSxtb2RlKTsKKyAgICAgICAgaWYoIXJlc3VsdC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgIGVycmxuKCJjcm9zcyB0ZXN0IGZhaWxlZCBzMTogIiArIFV0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgCisgICAgICAgICAgICAgICAgICAgICAgICArVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEbyBhIG5vcm1hbGl6YXRpb24gdXNpbmcgdGhlIGl0ZXJhdGl2ZSBBUEkgaW4gdGhlIGdpdmVuIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICogQHBhcmFtIGRpciBlaXRoZXIgKzEgb3IgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpdGVyYXRpdmVOb3JtKFN0cmluZyBzdHIsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGRpciAsaW50IG9wdGlvbnMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0VGV4dChzdHIpOworICAgICAgICBub3JtYWxpemVyLnNldE1vZGUobW9kZSk7CisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0T3B0aW9uKC0xLCBmYWxzZSk7ICAgICAgLy8gcmVzZXQgYWxsIG9wdGlvbnMKKyAgICAgICAgbm9ybWFsaXplci5zZXRPcHRpb24ob3B0aW9ucywgdHJ1ZSk7ICAvLyBzZXQgZGVzaXJlZCBvcHRpb25zCisKKyAgICAgICAgaW50IGNoOworICAgICAgICBpZiAoZGlyID4gMCkgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIuZmlyc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVVEYxNi52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGNoID0gbm9ybWFsaXplci5sYXN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAgICAgICAgICAgICAgY2ggPSBub3JtYWxpemVyLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KDAsIFVURjE2LnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERvIGEgbm9ybWFsaXphdGlvbiB1c2luZyB0aGUgaXRlcmF0aXZlIEFQSSBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBzdHIgYSBKYXZhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBkaXIgZWl0aGVyICsxIG9yIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgaXRlcmF0aXZlTm9ybShTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBzdHIsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGRpcixpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbm9ybWFsaXplci5zZXRUZXh0KHN0cik7CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0TW9kZShtb2RlKTsKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRPcHRpb24oLTEsIGZhbHNlKTsgICAgICAvLyByZXNldCBhbGwgb3B0aW9ucworICAgICAgICBub3JtYWxpemVyLnNldE9wdGlvbihvcHRpb25zLCB0cnVlKTsgIC8vIHNldCBkZXNpcmVkIG9wdGlvbnMKKworICAgICAgICBpbnQgY2g7CisgICAgICAgIGlmIChkaXIgPiAwKSB7CisgICAgICAgICAgICBmb3IgKGNoID0gbm9ybWFsaXplci5maXJzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFVURjE2LnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoY2ggPSBub3JtYWxpemVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoMCwgVVRGMTYudmFsdWVPZihjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gb3AgbmFtZSBvZiBub3JtYWxpemF0aW9uIGZvcm0sIGUuZy4sICJLQyIKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBnb3QgdmFsdWUgcmVjZWl2ZWQKKyAgICAgKiBAcGFyYW0gZXhwIGV4cGVjdGVkIHZhbHVlCisgICAgICogQHBhcmFtIG1zZyBkZXNjcmlwdGlvbiBvZiB0aGlzIHRlc3QKKyAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGdvdCA9PSBleHAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU3RyaW5nIG9wLCBTdHJpbmcgcywgU3RyaW5nIGdvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCwgU3RyaW5nIG1zZykgeworICAgICAgICBpZiAoZXhwLmVxdWFscyhnb3QpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigoIiAgICAgICIgKyBtc2cgKyAiKSAiICsgb3AgKyAiKCIgKyBzICsgIik9IiArIGhleChnb3QpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwLiAiICsgaGV4KGV4cCkpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkZWxpbWl0ZXIKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGVuLCBwYXJzZSB0aGUgcmVzdWx0YW50IGZpZWxkcyBmcm9tIGhleCBpbnRvCisgICAgICogY2hhcmFjdGVycy4gIFRoYXQgaXMsICIwMDQwIDA0MDA7MEMwMDswODk5IiAtPiBuZXcgU3RyaW5nW10geworICAgICAqICJcdTAwNDBcdTA0MDAiLCAiXHUwQzAwIiwgIlx1MDg5OSIgfS4gIFRoZSBvdXRwdXQgaXMgYXNzdW1lZCB0bworICAgICAqIGJlIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIGFscmVhZHksIGFuZCBleGFjdGx5IG91dHB1dC5sZW5ndGgKKyAgICAgKiBmaWVsZHMgYXJlIHBhcnNlZC4gIElmIHRoZXJlIGFyZSB0b28gZmV3IGFuIGV4Y2VwdGlvbiBpcworICAgICAqIHRocm93bi4gIElmIHRoZXJlIGFyZSB0b28gbWFueSB0aGUgZXh0cmFzIGFyZSBpZ25vcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaGV4c3BsaXQoU3RyaW5nIHMsIGNoYXIgZGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3V0cHV0LCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZm9yIChpPTA7IGk8b3V0cHV0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZGVsaW0gPSBzLmluZGV4T2YoZGVsaW1pdGVyLCBwb3MpOworICAgICAgICAgICAgaWYgKGRlbGltIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1pc3NpbmcgZmllbGQgaW4gIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gT3VyIGZpZWxkIGlzIGZyb20gcG9zLi5kZWxpbS0xLgorICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRvSGV4ID0gcy5zdWJzdHJpbmcocG9zLGRlbGltKTsKKyAgICAgICAgICAgIHBvcyA9IGRlbGltOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBsZW4gPSB0b0hleC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlKGluZGV4PCBsZW4peworICAgICAgICAgICAgICAgIGlmKHRvSGV4LmNoYXJBdChpbmRleCk9PScgJyl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGludCBzcGFjZVBvcyA9IHRvSGV4LmluZGV4T2YoJyAnLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHNwYWNlUG9zPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCxsZW4pLHMpOworICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VQb3MgPSBsZW47CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1Zix0b0hleC5zdWJzdHJpbmcoaW5kZXgsIHNwYWNlUG9zKSxzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHNwYWNlUG9zKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IGZpZWxkICIgKyBpICsgIiBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXRbaV0gPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICsrcG9zOyAvLyBTa2lwIG92ZXIgZGVsaW0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzdHJUb0hleCwgU3RyaW5nIHMpeworICAgICAgICBpbnQgaGV4ID0gSW50ZWdlci5wYXJzZUludChzdHJUb0hleCwxNik7CisgICAgICAgIGlmIChoZXggPCAwICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT3V0IG9mIHJhbmdlIGhleCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCArICIgaW4gIiArIHMpOworICAgICAgICB9ZWxzZSBpZiAoaGV4ID4gMHhGRkZGKXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXg+PjEwKSsweGQ3YzApKTsgCisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSgoaGV4JjB4M2ZmKXwweGRjMDApKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSBoZXgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgLy8gU3BlY2lmaWMgdGVzdHMgZm9yIGRlYnVnZ2luZy4gIFRoZXNlIGFyZSBnZW5lcmFsbHkgZmFpbHVyZXMKKyAgICAvLyB0YWtlbiBmcm9tIHRoZSBjb25mb3JtYW5jZSBmaWxlLCBidXQgY3VsbGVkIG91dCB0byBtYWtlCisgICAgLy8gZGVidWdnaW5nIGVhc2llci4gIFRoZXNlIGNhbiBiZSBlbGltaW5hdGVkIHdpdGhvdXQgYWZmZWN0aW5nCisgICAgLy8gY292ZXJhZ2UuCisKKyAgICBwdWJsaWMgdm9pZCBfaGlkZVRlc3RDYXNlNihpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgX3Rlc3RPbmVMaW5lKCIwMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOyIsb3B0aW9ucyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgX3Rlc3RPbmVMaW5lKFN0cmluZyBsaW5lLGludCBvcHRpb25zKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdbXSBmaWVsZHMgPSBuZXcgU3RyaW5nWzVdOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICBoZXhzcGxpdChsaW5lLCAnOycsIGZpZWxkcywgYnVmKTsKKyAgICAgICAgY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUsb3B0aW9ucyk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRIYXNodGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludEhhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4OWJlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRIYXNodGFibGUuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSW50ZWdlciBoYXNoIHRhYmxlLiBVc2VzIEphdmEgSGFzaHRhYmxlIGZvciBub3cuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqLworIAorcHVibGljIGNsYXNzIEludEhhc2h0YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisgICAgCisgICAgcHVibGljIEludEhhc2h0YWJsZSAoaW50IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHV0KGludCBrZXksIGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICB0YWJsZS5yZW1vdmUobmV3IEludGVnZXIoa2V5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YWJsZS5wdXQobmV3IEludGVnZXIoa2V5KSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldChpbnQga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHRhYmxlLmdldChuZXcgSW50ZWdlcihrZXkpKTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJldHVybiAoKEludGVnZXIpdmFsdWUpLmludFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGRlZmF1bHRWYWx1ZTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRTdHJpbmdIYXNodGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludFN0cmluZ0hhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmN2RlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9JbnRTdHJpbmdIYXNodGFibGUuamF2YQpAQCAtMCwwICsxLDM4IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSW50ZWdlci1TdHJpbmcgaGFzaCB0YWJsZS4gVXNlcyBKYXZhIEhhc2h0YWJsZSBmb3Igbm93LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKi8KKyAKK3B1YmxpYyBjbGFzcyBJbnRTdHJpbmdIYXNodGFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworICAgIAorICAgIHB1YmxpYyBJbnRTdHJpbmdIYXNodGFibGUgKFN0cmluZyBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHB1dChpbnQga2V5LCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlID09IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICAgICAgdGFibGUucmVtb3ZlKG5ldyBJbnRlZ2VyKGtleSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGFibGUucHV0KG5ldyBJbnRlZ2VyKGtleSksIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHRhYmxlLmdldChuZXcgSW50ZWdlcihrZXkpKTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJldHVybiAoU3RyaW5nKXZhbHVlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBkZWZhdWx0VmFsdWU7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTG9uZ0hhc2h0YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTG9uZ0hhc2h0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNWViMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Mb25nSGFzaHRhYmxlLmphdmEKQEAgLTAsMCArMSw0MCBAQAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIFVuaWNvZGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEhhc2h0YWJsZSBzdG9yaW5nIGludHMgYWRkcmVzc2VkIGJ5IGxvbmdzLiBVc2VkCisgKiBmb3Igc3RvcmluZyBvZiBjb21wb3NpdGlvbiBkYXRhLiBVc2VzIEphdmEgSGFzaHRhYmxlCisgKiBmb3Igbm93LgorICogQGF1dGhvciBWbGFkaW1pciBXZWluc3RlaW4KKyAqLworcHVibGljIGNsYXNzIExvbmdIYXNodGFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMjAwMi0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworICAgIAorICAgIHB1YmxpYyBMb25nSGFzaHRhYmxlIChpbnQgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwdXQobG9uZyBrZXksIGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICB0YWJsZS5yZW1vdmUobmV3IExvbmcoa2V5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YWJsZS5wdXQobmV3IExvbmcoa2V5KSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldChsb25nIGtleSkgeworICAgICAgICBPYmplY3QgdmFsdWUgPSB0YWJsZS5nZXQobmV3IExvbmcoa2V5KSk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXZhbHVlKS5pbnRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBkZWZhdWx0VmFsdWU7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6YXRpb25Nb25rZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemF0aW9uTW9ua2V5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNmJhYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemF0aW9uTW9ua2V5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgaW50IGxvb3BDb3VudCA9IDEwMDsKKyAgICBpbnQgbWF4Q2hhckNvdW50ID0gMjA7CisgICAgaW50IG1heENvZGVQb2ludCA9IDB4MTBmZmZmOworICAgIFJhbmRvbSByYW5kb20gPSBudWxsOyAvLyBpbml0aWFsaXplZCBpbiBnZXRUZXN0U291cmNlCisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORkQ7CisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORkM7CisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORktEOworICAgIFVuaWNvZGVOb3JtYWxpemVyIHVuaWNvZGVfTkZLQzsKKyAgICAKKyAgICBwdWJsaWMgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QoKSB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTm9ybWFsaXphdGlvbk1vbmtleVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemUoKSB7CisgICAgICAgIGlmICh1bmljb2RlX05GRCA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZEID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLkQsIHRydWUpOworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZDID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLkMsIHRydWUpOworICAgICAgICAgICAgICAgIHVuaWNvZGVfTkZLRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5LRCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdW5pY29kZV9ORktDID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLktDLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiTm9ybWFsaXphdGlvbiB0ZXN0cyBjb3VsZCBub3QgYmUgcnVuOiAiICsgZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTW9kdWxhckJ1aWxkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKG1zZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAoaSA8IGxvb3BDb3VudCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IGdldFRlc3RTb3VyY2UoKTsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHNvdXJjZToiICsgc291cmNlKTsKKyAgICAgICAgICAgIC8vTkZECisgICAgICAgICAgICBTdHJpbmcgdW5jb2RlTm9ybSA9IHVuaWNvZGVfTkZELm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgU3RyaW5nIGljdU5vcm0gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GRChVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZEKGljdTRqKSAgOiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICBpZiAoIXVuY29kZU5vcm0uZXF1YWxzKGljdU5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk5GRDogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORkMKKyAgICAgICAgICAgIHVuY29kZU5vcm0gPSB1bmljb2RlX05GQy5ub3JtYWxpemUoc291cmNlKTsKKyAgICAgICAgICAgIGljdU5vcm0gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GQyhVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZDKGljdTRqKSAgOiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICBpZiAoIXVuY29kZU5vcm0uZXF1YWxzKGljdU5vcm0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk5GQzogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORktECisgICAgICAgICAgICB1bmNvZGVOb3JtID0gdW5pY29kZV9ORktELm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0QoVW5pY29kZSk6ICIgKyB1bmNvZGVOb3JtKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0QoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZLRDogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9ORktDCisgICAgICAgICAgICB1bmNvZGVOb3JtID0gdW5pY29kZV9ORktDLm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0MoVW5pY29kZSk6ICIgKyB1bmNvZGVOb3JtKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdE5GS0MoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZLQzogVW5pY29kZSBzYW1wbGUgb3V0cHV0ID0+ICIgKyB1bmNvZGVOb3JtICsgIjsgaWN1NGogb3V0cHV0PT4gIiArIGljdU5vcm0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGdldFRlc3RTb3VyY2UoKSB7CisgICAgaWYgKHJhbmRvbSA9PSBudWxsKSB7CisgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgIH0KKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICIiOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgKHJhbmRvbS5uZXh0SW50KG1heENoYXJDb3VudCkgKyAxKSkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IHJhbmRvbS5uZXh0SW50KG1heENvZGVQb2ludCk7CisgICAgICAgICAgICAvL0VsaW1hdGUgdW5hc3NpZ25lZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICB3aGlsZSAoVUNoYXJhY3Rlci5nZXRUeXBlKGNvZGVwb2ludCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSByYW5kb20ubmV4dEludChtYXhDb2RlUG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlID0gc291cmNlICsgVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpOworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI4ZmY5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw1MDcgQEAKKy8qKgorICogQnVpbGRzIHRoZSBub3JtYWxpemF0aW9uIHRhYmxlcy4gVGhpcyBpcyBhIHNlcGFyYXRlIGNsYXNzIHNvIHRoYXQgaXQKKyAqIGNhbiBiZSB1bmxvYWRlZCBvbmNlIG5vdCBuZWVkZWQuPGJyPgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIFVuaWNvZGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48YnI+CisgKiBUaGUgVW5pY29kZSBDb25zb3J0aXVtIG1ha2VzIG5vIGV4cHJlc3NlZCBvciBpbXBsaWVkIHdhcnJhbnR5IG9mIGFueQorICoga2luZCwgYW5kIGFzc3VtZXMgbm8gbGlhYmlsaXR5IGZvciBlcnJvcnMgb3Igb21pc3Npb25zLgorICogTm8gbGlhYmlsaXR5IGlzIGFzc3VtZWQgZm9yIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcworICogaW4gY29ubmVjdGlvbiB3aXRoIG9yIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGhlcmUuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIFVwZGF0ZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHM6CisgKiBWbGFkaW1pciBXZWluc3RlaW4gJiBNYXJrdXMgU2NoZXJlcgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLkJpdFNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlVURjE2VXRpbDsKKworY2xhc3MgTm9ybWFsaXplckJ1aWxkZXIgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIFVuaWNvZGUsIEluYy4iOworCisgICAgLyoqCisgICAgICogVGVzdGluZyBmbGFncworICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gR0VORVJBVElORyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnRzIGZvciB0aGUgZGF0YSBmaWxlIHZlcnNpb24gdG8gdXNlLgorICAgICAqLworICAgIC8qc3RhdGljIGZpbmFsIGJvb2xlYW4gTkVXX1ZFUlNJT04gPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBESVIgPSAiRDpcXFVuaWNvZGVEYXRhXFwiICsgKE5FV19WRVJTSU9OID8gIldvcmtpbmdHcm91cHNcXCIgOiAiIik7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFVOSURBVEFfVkVSU0lPTiA9IE5FV19WRVJTSU9OID8gIjMuMC4wZDEyIiA6ICIyLjEuOSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBFWENMVVNJT05TX1ZFUlNJT04gPSBORVdfVkVSU0lPTiA/ICIxZDQiIDogIjEiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5JQ09ERV9EQVRBID0gRElSICsgIlVuaWNvZGVEYXRhLSIgKyBVTklEQVRBX1ZFUlNJT04gKyAiLnR4dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NUE9TSVRJT05fRVhDTFVTSU9OUyA9IERJUiArICJDb21wb3NpdGlvbkV4Y2x1c2lvbnMtIiArIEVYQ0xVU0lPTlNfVkVSU0lPTiArIi50eHQiOworICAgICovCisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgZXhhY3RseSBvbmNlIGJ5IE5vcm1hbGl6ZXJEYXRhIHRvIGJ1aWxkIHRoZSBzdGF0aWMgZGF0YQorICAgICAqLworCisgICAgc3RhdGljIE5vcm1hbGl6ZXJEYXRhIGJ1aWxkKGJvb2xlYW4gZnVsbERhdGEpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEludEhhc2h0YWJsZSBjYW5vbmljYWxDbGFzcyA9IG5ldyBJbnRIYXNodGFibGUoMCk7CisgICAgICAgICAgICBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlID0gbmV3IEludFN0cmluZ0hhc2h0YWJsZShudWxsKTsKKyAgICAgICAgICAgIExvbmdIYXNodGFibGUgY29tcG9zZSA9IG5ldyBMb25nSGFzaHRhYmxlKE5vcm1hbGl6ZXJEYXRhLk5PVF9DT01QT1NJVEUpOworICAgICAgICAgICAgQml0U2V0IGlzQ29tcGF0aWJpbGl0eSA9IG5ldyBCaXRTZXQoKTsKKyAgICAgICAgICAgIEJpdFNldCBpc0V4Y2x1ZGVkID0gbmV3IEJpdFNldCgpOworICAgICAgICAgICAgaWYgKGZ1bGxEYXRhKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIE5vcm1hbGl6ZXIgRGF0YSBmcm9tIGZpbGUuIik7CisgICAgICAgICAgICAgICAgcmVhZEV4Y2x1c2lvbkxpc3QoaXNFeGNsdWRlZCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oaXNFeGNsdWRlZC5nZXQoMHgwMEMwKSk7CisgICAgICAgICAgICAgICAgYnVpbGREZWNvbXBvc2l0aW9uVGFibGVzKGNhbm9uaWNhbENsYXNzLCBkZWNvbXBvc2UsIGNvbXBvc2UsCisgICAgICAgICAgICAgICAgICBpc0NvbXBhdGliaWxpdHksIGlzRXhjbHVkZWQpOworICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gZm9yIHVzZSBpbiBBcHBsZXRzCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIGFicmlkZ2VkIGRhdGEuIik7CisgICAgICAgICAgICAgICAgc2V0TWluaW1hbERlY29tcChjYW5vbmljYWxDbGFzcywgZGVjb21wb3NlLCBjb21wb3NlLAorICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmlsaXR5LCBpc0V4Y2x1ZGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgTm9ybWFsaXplckRhdGEoY2Fub25pY2FsQ2xhc3MsIGRlY29tcG9zZSwgY29tcG9zZSwKKyAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJpbGl0eSwgaXNFeGNsdWRlZCk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYW4ndCBsb2FkIGRhdGEgZmlsZS4iICsgZSArICIsICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQnVpbGRpbmcgRGVjb21wb3NpdGlvbiBUYWJsZXMKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJlYWRzIGV4Y2x1c2lvbiBsaXN0IGFuZCBzdG9yZXMgdGhlIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJlYWRFeGNsdXNpb25MaXN0KEJpdFNldCBpc0V4Y2x1ZGVkKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkaW5nIEV4Y2x1c2lvbnMiKTsKKworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoInVuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCIpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyByZWFkIGEgbGluZSwgZGlzY2FyZGluZyBjb21tZW50cyBhbmQgYmxhbmsgbGluZXMKKworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpbnQgY29tbWVudCA9IGxpbmUuaW5kZXhPZignIycpOyAgICAgICAgICAgICAgICAgICAgLy8gc3RyaXAgY29tbWVudHMKKyAgICAgICAgICAgIGlmIChjb21tZW50ICE9IC0xKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCxjb21tZW50KTsKKyAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgYmxhbmtzCisgICAgICAgICAgICBpZihsaW5lLmluZGV4T2YoJyAnKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBsaW5lLmluZGV4T2YoJyAnKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBzdG9yZSAtMSBpbiB0aGUgZXhjbHVkZWQgdGFibGUgZm9yIGVhY2ggY2hhcmFjdGVyIGhpdAorCisgICAgICAgICAgICBpbnQgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KGxpbmUsMTYpOworICAgICAgICAgICAgaXNFeGNsdWRlZC5zZXQodmFsdWUpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkV4Y2x1ZGluZyAiICsgaGV4KHZhbHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUgcmVhZGluZyBFeGNsdXNpb25zIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVpbGRzIGEgZGVjb21wb3NpdGlvbiB0YWJsZSBmcm9tIGEgVW5pY29kZURhdGEgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYnVpbGREZWNvbXBvc2l0aW9uVGFibGVzKAorICAgICAgSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzLCBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlLAorICAgICAgTG9uZ0hhc2h0YWJsZSBjb21wb3NlLCBCaXRTZXQgaXNDb21wYXRpYmlsaXR5LCBCaXRTZXQgaXNFeGNsdWRlZCkKKyAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWRpbmcgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UiKTsKKyAgICAgICAgLy9CdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgRmlsZVJlYWRlcihVTklDT0RFX0RBVEEpLCA2NCoxMDI0KTsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJ1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJGYWlsZWQgdG8gcmVhZCBVbmljb2RlRGF0YS50eHQiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBsb25nIHBhaXI7CisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKworICAgICAgICAgICAgLy8gcmVhZCBhIGxpbmUsIGRpc2NhcmRpbmcgY29tbWVudHMgYW5kIGJsYW5rIGxpbmVzCisKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaW50IGNvbW1lbnQgPSBsaW5lLmluZGV4T2YoJyMnKTsgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlwIGNvbW1lbnRzCisgICAgICAgICAgICBpZiAoY29tbWVudCAhPSAtMSkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsY29tbWVudCk7CisgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ZXIgJiAweEZGKSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50bG4oIkF0OiAiICsgbGluZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZpbmQgdGhlIHZhbHVlcyBvZiB0aGUgcGFydGljdWxhciBmaWVsZHMgdGhhdCB3ZSBuZWVkCisgICAgICAgICAgICAvLyBTYW1wbGUgbGluZTogMDBDMDtMQVRJTiAuLi5BIEdSQVZFO0x1OzA7TDswMDQxIDAzMDA7Ozs7TjtMQVRJTiAuLi4gR1JBVkU7OzswMEUwOworCisgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgaW50IGVuZCA9IGxpbmUuaW5kZXhPZignOycpOyAvLyBjb2RlCisgICAgICAgICAgICB2YWx1ZSA9IEludGVnZXIucGFyc2VJbnQobGluZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSwxNik7CisgICAgICAgICAgICBpZiAodHJ1ZSAmJiB2YWx1ZSA9PSAnXHUwMGMwJykgeworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZzogIiArIGxpbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kID0gbGluZS5pbmRleE9mKCc7JyxzdGFydD1lbmQrMSk7IC8vIG5hbWUKKyAgICAgICAgICAgIC8qU3RyaW5nIG5hbWUgPSBsaW5lLnN1YnN0cmluZyhzdGFydCxlbmQpOyovCisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gZ2VuZXJhbCBjYXRlZ29yeQorICAgICAgICAgICAgZW5kID0gbGluZS5pbmRleE9mKCc7JyxzdGFydD1lbmQrMSk7IC8vIGNhbm9uaWNhbCBjbGFzcworCisgICAgICAgICAgICAvLyBjaGVjayBjb25zaXN0ZW5jeTogY2Fub25pY2FsIGNsYXNzZXMgbXVzdCBiZSBmcm9tIDAgdG8gMjU1CisKKyAgICAgICAgICAgIGludCBjYyA9IEludGVnZXIucGFyc2VJbnQobGluZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgICAgICAgICAgICBpZiAoY2MgIT0gKGNjICYgMHhGRikpIFN5c3RlbS5lcnIucHJpbnRsbigiQmFkIGNhbm9uaWNhbCBjbGFzcyBhdDogIiArIGxpbmUpOworICAgICAgICAgICAgY2Fub25pY2FsQ2xhc3MucHV0KHZhbHVlLGNjKTsKKyAgICAgICAgICAgIGVuZCA9IGxpbmUuaW5kZXhPZignOycsc3RhcnQ9ZW5kKzEpOyAvLyBCSURJCisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gZGVjb21wCisKKyAgICAgICAgICAgIC8vIGRlY29tcCByZXF1aXJlcyBtb3JlIHByb2Nlc3NpbmcuCisgICAgICAgICAgICAvLyBzdG9yZSB3aGV0aGVyIGl0IGlzIGNhbm9uaWNhbCBvciBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAgLy8gc3RvcmUgdGhlIGRlY29tcCBpbiBvbmUgdGFibGUsIGFuZCB0aGUgcmV2ZXJzZSBtYXBwaW5nIChmcm9tIHBhaXJzKSBpbiBhbm90aGVyCisKKyAgICAgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc2VnbWVudCA9IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gY29tcGF0ID0gc2VnbWVudC5jaGFyQXQoMCkgPT0gJzwnOworICAgICAgICAgICAgICAgIGlmIChjb21wYXQpIGlzQ29tcGF0aWJpbGl0eS5zZXQodmFsdWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBmcm9tSGV4KHNlZ21lbnQpOworCisgICAgICAgICAgICAgICAgLy8gYSBzbWFsbCBzbmlwcGV0IG9mIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIEFwcGxldCBkYXRhCisKKyAgICAgICAgICAgICAgICAvKmlmIChHRU5FUkFUSU5HKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDB4RkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCJcXHUiICsgaGV4KChjaGFyKXZhbHVlKSArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiXFx1IiArIGhleChkZWNvbXAsICJcXHUiKSArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNvbXBhdCA/ICJcIktcIiwiIDogIlwiXCIsIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIvLyAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Ki8KKworICAgICAgICAgICAgICAgIC8vIGNoZWNrIGNvbnNpc3RlbmN5OiBhbGwgY2Fub24gZGVjb21wcyBtdXN0IGJlIHNpbmdsZXMgb3IgcGFpcnMhCisgICAgICAgICAgICAgICAgaW50IGRlY29tcExlbiA9IFVURjE2VXRpbC5jb3VudENvZGVQb2ludChkZWNvbXApOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBMZW4gPCAxIHx8IGRlY29tcExlbiA+IDIgJiYgIWNvbXBhdCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkJhZCBkZWNvbXAgYXQ6ICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVjb21wb3NlLnB1dCh2YWx1ZSwgZGVjb21wKTsKKworICAgICAgICAgICAgICAgIC8vIG9ubHkgY29tcG9zaXRpb25zIGFyZSBjYW5vbmljYWwgcGFpcnMKKyAgICAgICAgICAgICAgICAvLyBza2lwIGlmIHNjcmlwdCBleGNsdXNpb24KKworICAgICAgICAgICAgICAgIGlmICghY29tcGF0ICYmICFpc0V4Y2x1ZGVkLmdldCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0ID0gJ1x1MDAwMCc7CisgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsIDApOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVjb21wTGVuID4gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBzZWNvbmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChmaXJzdCkpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RvcmUgY29tcG9zaXRpb24gcGFpciBpbiBzaW5nbGUgaW50ZWdlcgorCisgICAgICAgICAgICAgICAgICAgIHBhaXIgPSAoKGxvbmcpZmlyc3QgPDwgMzIpIHwgc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcgJiYgdmFsdWUgPT0gJ1x1MDBDMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGVidWcyOiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNsdWRpbmc6ICIgKyBkZWNvbXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSByZWFkaW5nIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIik7CisKKyAgICAgICAgLy8gYWRkIGFsZ29yaXRobWljIEhhbmd1bCBkZWNvbXBvc2l0aW9ucworICAgICAgICAvLyB0aGlzIGlzIG1vcmUgY29tcGFjdCBpZiBkb25lIGF0IHJ1bnRpbWUsIGJ1dCBmb3Igc2ltcGxpY2l0eSB3ZQorICAgICAgICAvLyBkbyBpdCB0aGlzIHdheS4KKworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nIEhhbmd1bCIpOworCisgICAgICAgIGZvciAoaW50IFNJbmRleCA9IDA7IFNJbmRleCA8IFNDb3VudDsgKytTSW5kZXgpIHsKKyAgICAgICAgICAgIGludCBUSW5kZXggPSBTSW5kZXggJSBUQ291bnQ7CisgICAgICAgICAgICBjaGFyIGZpcnN0LCBzZWNvbmQ7CisgICAgICAgICAgICBpZiAoVEluZGV4ICE9IDApIHsgLy8gdHJpcGxlCisgICAgICAgICAgICAgICAgZmlyc3QgPSAoY2hhcikoU0Jhc2UgKyBTSW5kZXggLSBUSW5kZXgpOworICAgICAgICAgICAgICAgIHNlY29uZCA9IChjaGFyKShUQmFzZSArIFRJbmRleCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpcnN0ID0gKGNoYXIpKExCYXNlICsgU0luZGV4IC8gTkNvdW50KTsKKyAgICAgICAgICAgICAgICBzZWNvbmQgPSAoY2hhcikoVkJhc2UgKyAoU0luZGV4ICUgTkNvdW50KSAvIFRDb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYWlyID0gKChsb25nKWZpcnN0IDw8IDMyKSB8IHNlY29uZDsKKyAgICAgICAgICAgIHZhbHVlID0gU0luZGV4ICsgU0Jhc2U7CisgICAgICAgICAgICBkZWNvbXBvc2UucHV0KHZhbHVlLCBTdHJpbmcudmFsdWVPZihmaXJzdCkgKyBzZWNvbmQpOworICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIGFkZGluZyBIYW5ndWwiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5ndWwgY29tcG9zaXRpb24gY29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBTQmFzZSA9IDB4QUMwMCwgTEJhc2UgPSAweDExMDAsIFZCYXNlID0gMHgxMTYxLCBUQmFzZSA9IDB4MTFBNywKKyAgICAgICAgTENvdW50ID0gMTksIFZDb3VudCA9IDIxLCBUQ291bnQgPSAyOCwKKyAgICAgICAgTkNvdW50ID0gVkNvdW50ICogVENvdW50LCAgIC8vIDU4OAorICAgICAgICBTQ291bnQgPSBMQ291bnQgKiBOQ291bnQ7ICAgLy8gMTExNzIKKworICAgIC8qKgorICAgICAqIEZvciB1c2UgaW4gYW4gYXBwbGV0OiBqdXN0IGxvYWQgYSBtaW5pbWFsIHNldCBvZiBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc2V0TWluaW1hbERlY29tcChJbnRIYXNodGFibGUgY2Fub25pY2FsQ2xhc3MsIEludFN0cmluZ0hhc2h0YWJsZSBkZWNvbXBvc2UsCisgICAgICBMb25nSGFzaHRhYmxlIGNvbXBvc2UsIEJpdFNldCBpc0NvbXBhdGliaWxpdHksIEJpdFNldCBpc0V4Y2x1ZGVkKSB7CisgICAgICAgIFN0cmluZ1tdIGRlY29tcG9zZURhdGEgPSB7CisgICAgICAgICAgICAiXHUwMDVFIiwgIlx1MDAyMFx1MDMwMiIsICJLIiwKKyAgICAgICAgICAgICJcdTAwNUYiLCAiXHUwMDIwXHUwMzMyIiwgIksiLAorICAgICAgICAgICAgIlx1MDA2MCIsICJcdTAwMjBcdTAzMDAiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEEwIiwgIlx1MDAyMCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQTgiLCAiXHUwMDIwXHUwMzA4IiwgIksiLAorICAgICAgICAgICAgIlx1MDBBQSIsICJcdTAwNjEiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEFGIiwgIlx1MDAyMFx1MDMwNCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjIiLCAiXHUwMDMyIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCMyIsICJcdTAwMzMiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEI0IiwgIlx1MDAyMFx1MDMwMSIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjUiLCAiXHUwM0JDIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCOCIsICJcdTAwMjBcdTAzMjciLCAiSyIsCisgICAgICAgICAgICAiXHUwMEI5IiwgIlx1MDAzMSIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQkEiLCAiXHUwMDZGIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCQyIsICJcdTAwMzFcdTIwNDRcdTAwMzQiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEJEIiwgIlx1MDAzMVx1MjA0NFx1MDAzMiIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQkUiLCAiXHUwMDMzXHUyMDQ0XHUwMDM0IiwgIksiLAorICAgICAgICAgICAgIlx1MDBDMCIsICJcdTAwNDFcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzEiLCAiXHUwMDQxXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEMyIiwgIlx1MDA0MVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBDMyIsICJcdTAwNDFcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzQiLCAiXHUwMDQxXHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEM1IiwgIlx1MDA0MVx1MDMwQSIsICIiLAorICAgICAgICAgICAgIlx1MDBDNyIsICJcdTAwNDNcdTAzMjciLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzgiLCAiXHUwMDQ1XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEM5IiwgIlx1MDA0NVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBDQSIsICJcdTAwNDVcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0IiLCAiXHUwMDQ1XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMENDIiwgIlx1MDA0OVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBDRCIsICJcdTAwNDlcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0UiLCAiXHUwMDQ5XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMENGIiwgIlx1MDA0OVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBEMSIsICJcdTAwNEVcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDIiLCAiXHUwMDRGXHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEQzIiwgIlx1MDA0Rlx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBENCIsICJcdTAwNEZcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDUiLCAiXHUwMDRGXHUwMzAzIiwgIiIsCisgICAgICAgICAgICAiXHUwMEQ2IiwgIlx1MDA0Rlx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBEOSIsICJcdTAwNTVcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwREEiLCAiXHUwMDU1XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMERCIiwgIlx1MDA1NVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBEQyIsICJcdTAwNTVcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwREQiLCAiXHUwMDU5XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEUwIiwgIlx1MDA2MVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBFMSIsICJcdTAwNjFcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTIiLCAiXHUwMDYxXHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEUzIiwgIlx1MDA2MVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBFNCIsICJcdTAwNjFcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTUiLCAiXHUwMDYxXHUwMzBBIiwgIiIsCisgICAgICAgICAgICAiXHUwMEU3IiwgIlx1MDA2M1x1MDMyNyIsICIiLAorICAgICAgICAgICAgIlx1MDBFOCIsICJcdTAwNjVcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTkiLCAiXHUwMDY1XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVBIiwgIlx1MDA2NVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBFQiIsICJcdTAwNjVcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUMiLCAiXHUwMDY5XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVEIiwgIlx1MDA2OVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBFRSIsICJcdTAwNjlcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUYiLCAiXHUwMDY5XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEYxIiwgIlx1MDA2RVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBGMiIsICJcdTAwNkZcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjMiLCAiXHUwMDZGXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEY0IiwgIlx1MDA2Rlx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBGNSIsICJcdTAwNkZcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjYiLCAiXHUwMDZGXHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEY5IiwgIlx1MDA3NVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBGQSIsICJcdTAwNzVcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRkIiLCAiXHUwMDc1XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEZDIiwgIlx1MDA3NVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBGRCIsICJcdTAwNzlcdTAzMDEiLCAiIiwKKy8vIEVYVFJBUywgb3V0c2lkZSBvZiBMYXRpbiAxCisgICAgICAgICAgICAiXHUxRUE0IiwgIlx1MDBDMlx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MUVBNSIsICJcdTAwRTJcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTFFQTYiLCAiXHUwMEMyXHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUxRUE3IiwgIlx1MDBFMlx1MDMwMCIsICIiLAorICAgICAgICB9OworCisgICAgICAgIGludFtdIGNsYXNzRGF0YSA9IHsKKyAgICAgICAgICAgIDB4MDMwMCwgMjMwLAorICAgICAgICAgICAgMHgwMzAxLCAyMzAsCisgICAgICAgICAgICAweDAzMDIsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwMywgMjMwLAorICAgICAgICAgICAgMHgwMzA0LCAyMzAsCisgICAgICAgICAgICAweDAzMDUsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwNiwgMjMwLAorICAgICAgICAgICAgMHgwMzA3LCAyMzAsCisgICAgICAgICAgICAweDAzMDgsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwOSwgMjMwLAorICAgICAgICAgICAgMHgwMzBBLCAyMzAsCisgICAgICAgICAgICAweDAzMEIsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwQywgMjMwLAorICAgICAgICAgICAgMHgwMzBELCAyMzAsCisgICAgICAgICAgICAweDAzMEUsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwRiwgMjMwLAorICAgICAgICAgICAgMHgwMzEwLCAyMzAsCisgICAgICAgICAgICAweDAzMTEsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxMiwgMjMwLAorICAgICAgICAgICAgMHgwMzEzLCAyMzAsCisgICAgICAgICAgICAweDAzMTQsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxNSwgMjMyLAorICAgICAgICAgICAgMHgwMzE2LCAyMjAsCisgICAgICAgICAgICAweDAzMTcsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxOCwgMjIwLAorICAgICAgICAgICAgMHgwMzE5LCAyMjAsCisgICAgICAgICAgICAweDAzMUEsIDIzMiwKKyAgICAgICAgICAgIDB4MDMxQiwgMjE2LAorICAgICAgICAgICAgMHgwMzFDLCAyMjAsCisgICAgICAgICAgICAweDAzMUQsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxRSwgMjIwLAorICAgICAgICAgICAgMHgwMzFGLCAyMjAsCisgICAgICAgICAgICAweDAzMjAsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyMSwgMjAyLAorICAgICAgICAgICAgMHgwMzIyLCAyMDIsCisgICAgICAgICAgICAweDAzMjMsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyNCwgMjIwLAorICAgICAgICAgICAgMHgwMzI1LCAyMjAsCisgICAgICAgICAgICAweDAzMjYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyNywgMjAyLAorICAgICAgICAgICAgMHgwMzI4LCAyMDIsCisgICAgICAgICAgICAweDAzMjksIDIyMCwKKyAgICAgICAgICAgIDB4MDMyQSwgMjIwLAorICAgICAgICAgICAgMHgwMzJCLCAyMjAsCisgICAgICAgICAgICAweDAzMkMsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyRCwgMjIwLAorICAgICAgICAgICAgMHgwMzJFLCAyMjAsCisgICAgICAgICAgICAweDAzMkYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzMCwgMjIwLAorICAgICAgICAgICAgMHgwMzMxLCAyMjAsCisgICAgICAgICAgICAweDAzMzIsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzMywgMjIwLAorICAgICAgICAgICAgMHgwMzM0LCAxLAorICAgICAgICAgICAgMHgwMzM1LCAxLAorICAgICAgICAgICAgMHgwMzM2LCAxLAorICAgICAgICAgICAgMHgwMzM3LCAxLAorICAgICAgICAgICAgMHgwMzM4LCAxLAorICAgICAgICAgICAgMHgwMzM5LCAyMjAsCisgICAgICAgICAgICAweDAzM0EsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzQiwgMjIwLAorICAgICAgICAgICAgMHgwMzNDLCAyMjAsCisgICAgICAgICAgICAweDAzM0QsIDIzMCwKKyAgICAgICAgICAgIDB4MDMzRSwgMjMwLAorICAgICAgICAgICAgMHgwMzNGLCAyMzAsCisgICAgICAgICAgICAweDAzNDAsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0MSwgMjMwLAorICAgICAgICAgICAgMHgwMzQyLCAyMzAsCisgICAgICAgICAgICAweDAzNDMsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0NCwgMjMwLAorICAgICAgICAgICAgMHgwMzQ1LCAyNDAsCisgICAgICAgICAgICAweDAzNjAsIDIzNCwKKyAgICAgICAgICAgIDB4MDM2MSwgMjM0CisgICAgICAgIH07CisKKyAgICAgICAgLy8gYnVpbGQgdGhlIHNhbWUgdGFibGVzIHdlIHdvdWxkIG90aGVyd2lzZSBnZXQgZnJvbSB0aGUKKyAgICAgICAgLy8gVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UsIGp1c3Qgd2l0aCBsaW1pdGVkIGRhdGEKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcG9zZURhdGEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBjaGFyIHZhbHVlID0gZGVjb21wb3NlRGF0YVtpXS5jaGFyQXQoMCk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gZGVjb21wb3NlRGF0YVtpKzFdOworICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBkZWNvbXBvc2VEYXRhW2krMl0uZXF1YWxzKCJLIik7CisgICAgICAgICAgICBpZiAoY29tcGF0KSBpc0NvbXBhdGliaWxpdHkuc2V0KHZhbHVlKTsKKyAgICAgICAgICAgIGRlY29tcG9zZS5wdXQodmFsdWUsIGRlY29tcCk7CisgICAgICAgICAgICBpZiAoIWNvbXBhdCkgeworICAgICAgICAgICAgICAgIGludCBmaXJzdCA9ICdcdTAwMDAnOworICAgICAgICAgICAgICAgIGludCBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsIDApOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXAubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGZpcnN0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvbmcgcGFpciA9IChmaXJzdCA8PCAxNikgfCBzZWNvbmQ7CisgICAgICAgICAgICAgICAgY29tcG9zZS5wdXQocGFpciwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc0RhdGEubGVuZ3RoOykgeworICAgICAgICAgICAgY2Fub25pY2FsQ2xhc3MucHV0KGNsYXNzRGF0YVtpKytdLCBjbGFzc0RhdGFbaSsrXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5OiBQYXJzZXMgYSBzZXF1ZW5jZSBvZiBoZXggVW5pY29kZSBjaGFyYWN0ZXJzIHNlcGFyYXRlZCBieSBzcGFjZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBmcm9tSGV4KFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICBjYXNlICcgJzogYnJlYWs7IC8vIGlnbm9yZQorICAgICAgICAgICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6CisgICAgICAgICAgICAgIGNhc2UgJzgnOiBjYXNlICc5JzogY2FzZSAnQSc6IGNhc2UgJ0InOiBjYXNlICdDJzogY2FzZSAnRCc6IGNhc2UgJ0UnOiBjYXNlICdGJzoKKyAgICAgICAgICAgICAgY2FzZSAnYSc6IGNhc2UgJ2InOiBjYXNlICdjJzogY2FzZSAnZCc6IGNhc2UgJ2UnOiBjYXNlICdmJzoKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoaSwgaSArIDQpICsgIioqKioqKioqKioqKiIgKyBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBlbmQgPSBzb3VyY2UuaW5kZXhPZignICcsaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KHNvdXJjZS5zdWJzdHJpbmcoaSwgZW5kKSwxNik7CisgICAgICAgICAgICAgICAgICAgIFVURjE2VXRpbC5hcHBlbmRDb2RlUG9pbnQocmVzdWx0LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpOiAiICsgaSArICI7ZW5kOiIgKyBlbmQgKyAic291cmNlOiIgKyBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKGksIGkgKyA0KSArICIqKioqKioqKioqKioiICsgc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vaSs9IDM7IC8vIHNraXAgcmVzdCBvZiBudW1iZXIKKyAgICAgICAgICAgICAgICBpID0gZW5kOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlICc8JzogaW50IGogPSBzb3VyY2UuaW5kZXhPZignPicsaSk7IC8vIHNraXAgPC4uLj4KKyAgICAgICAgICAgICAgICBpZiAoaiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gLy8gZWxzZSBmYWxsIHRocm91Z2gtLWVycm9yCisgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGhleCB2YWx1ZSBpbiAiICsgc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eTogU3VwcGxpZXMgYSB6ZXJvLXBhZGRlZCBoZXggcmVwcmVzZW50YXRpb24gb2YgYW4gaW50ZWdlciAod2l0aG91dCAweCkKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBoZXgoaW50IGkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IExvbmcudG9TdHJpbmcoaSAmIDB4RkZGRkZGRkZMLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwMDAwMCIuc3Vic3RyaW5nKHJlc3VsdC5sZW5ndGgoKSw4KSArIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5OiBTdXBwbGllcyBhIHplcm8tcGFkZGVkIGhleCByZXByZXNlbnRhdGlvbiBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyICh3aXRob3V0IDB4LCBcXHUpCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaGV4KGNoYXIgaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gSW50ZWdlci50b1N0cmluZyhpLCAxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwIi5zdWJzdHJpbmcocmVzdWx0Lmxlbmd0aCgpLDQpICsgcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHk6IFN1cHBsaWVzIGEgemVyby1wYWRkZWQgaGV4IHJlcHJlc2VudGF0aW9uIG9mIGEgVW5pY29kZSBjaGFyYWN0ZXIgKHdpdGhvdXQgMHgsIFxcdSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXApIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoc2VwKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KHMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxODI4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTM1IEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVVRGMTZVdGlsOworCisvKioKKyAqIEFjY2Vzc2VzIHRoZSBOb3JtYWxpemF0aW9uIERhdGEgdXNlZCBmb3IgRm9ybXMgQyBhbmQgRC48YnI+CisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLjxicj4KKyAqIFRoZSBVbmljb2RlIENvbnNvcnRpdW0gbWFrZXMgbm8gZXhwcmVzc2VkIG9yIGltcGxpZWQgd2FycmFudHkgb2YgYW55CisgKiBraW5kLCBhbmQgYXNzdW1lcyBubyBsaWFiaWxpdHkgZm9yIGVycm9ycyBvciBvbWlzc2lvbnMuCisgKiBObyBsaWFiaWxpdHkgaXMgYXNzdW1lZCBmb3IgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzCisgKiBpbiBjb25uZWN0aW9uIHdpdGggb3IgYXJpc2luZyBvdXQgb2YgdGhlIHVzZSBvZiB0aGUgaW5mb3JtYXRpb24gaGVyZS4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICogVXBkYXRlcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50czoKKyAqIFZsYWRpbWlyIFdlaW5zdGVpbiAmIE1hcmt1cyBTY2hlcmVyCisgKi8KK3B1YmxpYyBjbGFzcyBOb3JtYWxpemVyRGF0YSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisKKyAgICAvKioKKyAgICAqIENvbnN0YW50IGZvciB1c2UgaW4gZ2V0UGFpcndpc2VDb21wb3NpdGlvbgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9UX0NPTVBPU0lURSA9ICdcdUZGRkYnOworCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgYSBjaGFyYWN0ZXIgZnJvbSB0aGUKKyAgICAqIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorICAgICogQHBhcmFtICAgY2ggICAgICB0aGUgc291cmNlIGNoYXJhY3RlcgorICAgICogQHJldHVybiAgICAgICAgICB2YWx1ZSBmcm9tIDAgdG8gMjU1CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENhbm9uaWNhbENsYXNzKGludCBjaCkgeworICAgICAgICByZXR1cm4gY2Fub25pY2FsQ2xhc3MuZ2V0KGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGNvbXBvc2l0ZSBvZiB0aGUgdHdvIGNoYXJhY3RlcnMuIElmIHRoZSB0d28KKyAgICAqIGNoYXJhY3RlcnMgZG9uJ3QgY29tYmluZSwgcmV0dXJucyBOT1RfQ09NUE9TSVRFLgorICAgICogQHBhcmFtICAgZmlyc3QgICBmaXJzdCBjaGFyYWN0ZXIgKGUuZy4gJ2MnKQorICAgICogQHBhcmFtICAgc2Vjb25kICBzZWNvbmQgY2hhcmFjdGVyIChlLmcuIFx1MDMyNyBjZWRpbGxhKQorICAgICogQHJldHVybiAgICAgICAgICBjb21wb3NpdGUgKGUuZy4gXHUwMEM3IGMgY2VkaWxsYSkKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UGFpcndpc2VDb21wb3NpdGlvbihpbnQgZmlyc3QsIGludCBzZWNvbmQpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBvc2UuZ2V0KCgobG9uZylmaXJzdCA8PCAzMikgfCBzZWNvbmQpOworICAgIH0KKworCisgICAgLyoqCisgICAgKiBHZXRzIHJlY3Vyc2l2ZSBkZWNvbXBvc2l0aW9uIG9mIGEgY2hhcmFjdGVyIGZyb20gdGhlCisgICAgKiBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyAgICAqIEBwYXJhbSAgIGNhbm9uaWNhbCAgICBJZiB0cnVlCisgICAgKiAgICAgICAgICAgICAgICAgIGJpdCBpcyBvbiBpbiB0aGlzIGJ5dGUsIHRoZW4gc2VsZWN0cyB0aGUgcmVjdXJzaXZlCisgICAgKiAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBvdGhlcndpc2Ugc2VsZWN0cworICAgICogICAgICAgICAgICAgICAgICB0aGUgcmVjdXJzaXZlIGNvbXBhdGliaWxpdHkgYW5kIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICAgICogQHBhcmFtICAgY2ggICAgICB0aGUgc291cmNlIGNoYXJhY3RlcgorICAgICogQHBhcmFtICAgYnVmZmVyICBidWZmZXIgdG8gYmUgZmlsbGVkIHdpdGggdGhlIGRlY29tcG9zaXRpb24KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldFJlY3Vyc2l2ZURlY29tcG9zaXRpb24oYm9vbGVhbiBjYW5vbmljYWwsIGludCBjaCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBTdHJpbmcgZGVjb21wID0gZGVjb21wb3NlLmdldChjaCk7CisgICAgICAgIGlmIChkZWNvbXAgIT0gbnVsbCAmJiAhKGNhbm9uaWNhbCAmJiBpc0NvbXBhdGliaWxpdHkuZ2V0KGNoKSkpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyBpKz1VVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKSkgeworICAgICAgICAgICAgICAgIGNoID0gVVRGMTZVdGlsLm5leHRDb2RlUG9pbnQoZGVjb21wLCBpKTsKKyAgICAgICAgICAgICAgICBnZXRSZWN1cnNpdmVEZWNvbXBvc2l0aW9uKGNhbm9uaWNhbCwgY2gsIGJ1ZmZlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAvLyBpZiBubyBkZWNvbXAsIGFwcGVuZAorICAgICAgICAgICAgVVRGMTZVdGlsLmFwcGVuZENvZGVQb2ludChidWZmZXIsIGNoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyAgICAgICAgICAgICAgICAgICBQUklWQVRFUworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIE9ubHkgYWNjZXNzZWQgYnkgTm9ybWFsaXplckJ1aWxkZXIuCisgICAgICovCisgICAgTm9ybWFsaXplckRhdGEoSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzLCBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlLAorICAgICAgTG9uZ0hhc2h0YWJsZSBjb21wb3NlLCBCaXRTZXQgaXNDb21wYXRpYmlsaXR5LCBCaXRTZXQgaXNFeGNsdWRlZCkgeworICAgICAgICB0aGlzLmNhbm9uaWNhbENsYXNzID0gY2Fub25pY2FsQ2xhc3M7CisgICAgICAgIHRoaXMuZGVjb21wb3NlID0gZGVjb21wb3NlOworICAgICAgICB0aGlzLmNvbXBvc2UgPSBjb21wb3NlOworICAgICAgICB0aGlzLmlzQ29tcGF0aWJpbGl0eSA9IGlzQ29tcGF0aWJpbGl0eTsKKyAgICAgICAgdGhpcy5pc0V4Y2x1ZGVkID0gaXNFeGNsdWRlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIGJvb2xlYW4gZ2V0RXhjbHVkZWQgKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGlzRXhjbHVkZWQuZ2V0KGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIFN0cmluZyBnZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyAoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gZGVjb21wb3NlLmdldChjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGb3Igbm93LCBqdXN0IHVzZSBJbnRIYXNodGFibGUKKyAgICAqIFR3by1zdGFnZSB0YWJsZXMgd291bGQgYmUgdXNlZCBpbiBhbiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb24uCisgICAgKi8KKyAgICBwcml2YXRlIEludEhhc2h0YWJsZSBjYW5vbmljYWxDbGFzczsKKworICAgIC8qKgorICAgICogVGhlIG1haW4gZGF0YSB0YWJsZSBtYXBzIGNoYXJzIHRvIGEgMzItYml0IGludC4KKyAgICAqIEl0IGhvbGRzIGVpdGhlciBhIHBhaXI6IHRvcCA9IGZpcnN0LCBib3R0b20gPSBzZWNvbmQKKyAgICAqIG9yIHNpbmdsZXRvbjogdG9wID0gMCwgYm90dG9tID0gc2luZ2xlLgorICAgICogSWYgdGhlcmUgaXMgbm8gZGVjb21wb3NpdGlvbiwgdGhlIHZhbHVlIGlzIDAuCisgICAgKiBUd28tc3RhZ2UgdGFibGVzIHdvdWxkIGJlIHVzZWQgaW4gYW4gb3B0aW1pemVkIGltcGxlbWVudGF0aW9uLgorICAgICogQW4gb3B0aW1pemF0aW9uIGNvdWxkIGFsc28gbWFwIGNoYXJzIHRvIGEgc21hbGwgaW5kZXgsIHRoZW4gdXNlIHRoYXQKKyAgICAqIGluZGV4IGluIGEgc21hbGwgYXJyYXkgb2YgaW50cy4KKyAgICAqLworICAgIHByaXZhdGUgSW50U3RyaW5nSGFzaHRhYmxlIGRlY29tcG9zZTsKKworICAgIC8qKgorICAgICogTWFwcyBmcm9tIHBhaXJzIG9mIGNoYXJhY3RlcnMgdG8gc2luZ2xlLgorICAgICogSWYgdGhlcmUgaXMgbm8gZGVjb21wb3NpdGlvbiwgdGhlIHZhbHVlIGlzIE5PVF9DT01QT1NJVEUuCisgICAgKi8KKyAgICBwcml2YXRlIExvbmdIYXNodGFibGUgY29tcG9zZTsKKworICAgIC8qKgorICAgICogVGVsbHMgd2hldGhlciBkZWNvbXBvc2l0aW9uIGlzIGNhbm9uaWNhbCBvciBub3QuCisgICAgKi8KKyAgICBwcml2YXRlIEJpdFNldCBpc0NvbXBhdGliaWxpdHkgPSBuZXcgQml0U2V0KCk7CisKKyAgICAvKioKKyAgICAqIFRlbGxzIHdoZXRoZXIgY2hhcmFjdGVyIGlzIHNjcmlwdC1leGNsdWRlZCBvciBub3QuCisgICAgKiBVc2VkIG9ubHkgd2hpbGUgYnVpbGRpbmcsIGFuZCBmb3IgdGVzdGluZy4KKyAgICAqLworCisgICAgcHJpdmF0ZSBCaXRTZXQgaXNFeGNsdWRlZCA9IG5ldyBCaXRTZXQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NThlNjc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cy5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKKworcHVibGljIGNsYXNzIE5vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOb3JtYWxpemVyUmVncmVzc2lvblRlc3RzKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQ0NzIoKSB7CisgICAgICAgIC8vIHN1Ym1pdHRlcidzIHRlc3QgY2FzZQorICAgICAgICBTdHJpbmcgdGFtaWwgPSAiXHUwYjg3XHUwYmE4XHUwYmNkXHUwYmE0XHUwYmJmXHUwYmFmXHUwYmJlIjsKKyAgICAgICAgbG9nbG4oIk5vcm1hbGl6ZWQ6ICIgKyBOb3JtYWxpemVyLmlzTm9ybWFsaXplZCh0YW1pbCwgTm9ybWFsaXplci5ORkMsIDApKTsKKworICAgICAgICAvLyBtYXJrdXMncyB0ZXN0IGNhc2UKKyAgICAgICAgLy8gdGhlIGNvbWJpbmluZyBjZWRpbGxhIGNhbid0IGJlIGFwcGxpZWQgdG8gJ2InLCBzbyB0aGlzIGlzIGluIG5vcm1hbGl6ZWQgZm9ybS4KKyAgICAgICAgLy8gYnV0IHRoZSBpc05vcm1hbGl6ZWQgdGVzdCBpZGVudGlmaWVzIHRoZSBjZWRpbGxhIGFzIGEgJ21heWJlJyBhbmQgc28gdHJpZXMKKyAgICAgICAgLy8gdG8gbm9ybWFsaXplIHRoZSByZWxldmFudCBzdWJzdHJpbmcgKCJiXHUwMzI3IilhbmQgY29tcGFyZSB0aGUgcmVzdWx0IHRvIHRoZQorICAgICAgICAvLyBvcmlnaW5hbC4gIHRoZSBvcmlnaW5hbCBjb2RlIHdhcyBwYXNzaW5nIGluIHRoZSBzdGFydCBhbmQgbGVuZ3RoIG9mIHRoZQorICAgICAgICAvLyBzdWJzdHJpbmcgKDMsIDUtMyA9IDIpIGJ1dCB0aGUgY2FsbGVkIGNvZGUgd2FzIGV4cGVjdGluZyBzdGFydCBhbmQgbGltaXQuCisgICAgICAgIC8vIGl0IHN1YnRyYWN0ZWQgdGhlIHN0YXJ0IGFnYWluIHRvIGdldCB3aGF0IGl0IHRob3VnaHQgd2FzIHRoZSBsZW5ndGgsIGJ1dAorICAgICAgICAvLyBlbmRlZCB1cCB3aXRoIC0xLiAgdGhlIGxvb3Agd2FzIGluY3JlbWVudGluZyBhbiBpbmRleCBmcm9tIDAgYW5kIHRlc3RpbmcKKyAgICAgICAgLy8gYWdhaW5zdCBsZW5ndGgsIGJ1dCAwIHdhcyBuZXZlciA9PSAtMSBiZWZvcmUgaXQgd2Fsa2VkIG9mZiB0aGUgYXJyYXkgZW5kLgorCisgICAgICAgIC8vIGEgd29ya2Fyb3VuZCBpbiBsaWV1IG9mIHRoaXMgcGF0Y2ggaXMgdG8gY2F0Y2ggdGhlIGV4Y2VwdGlvbiBhbmQgYWx3YXlzCisgICAgICAgIC8vIG5vcm1hbGl6ZS4KKworICAgICAgICAvLyB0aGlzIHNob3VsZCByZXR1cm4gdHJ1ZSwgc2luY2UgdGhlIHN0cmluZyBpcyBub3JtYWxpemVkIChhbmQgaXQgc2hvdWxkCisgICAgICAgIC8vIG5vdCB0aHJvdyBhbiBleGNlcHRpb24hKQorICAgICAgICBTdHJpbmcgc2FtcGxlID0gImFhYWJcdTAzMjciOworICAgICAgICBsb2dsbigiTm9ybWFsaXplZDogIiArIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKHNhbXBsZSwgTm9ybWFsaXplci5ORkMsIDApKTsKKworICAgICAgICAvLyB0aGlzIHNob3VsZCByZXR1cm4gZmFsc2UsIHNpbmNlIHRoZSBzdHJpbmcgaXMgX25vdF8gbm9ybWFsaXplZCAoYW5kIGl0IHNob3VsZAorICAgICAgICAvLyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uISkKKyAgICAgICAgU3RyaW5nIHNhbXBsZTIgPSAiYWFhY1x1MDMyNyI7CisgICAgICAgIGxvZ2xuKCJOb3JtYWxpemVkOiAiICsgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoc2FtcGxlMiwgTm9ybWFsaXplci5ORkMsIDApKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAxZWU5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIG5vcm1hbGl6ZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJCYXNpY1Rlc3QiLAorICAgICAgICAgICAgIkNvbmZvcm1hbmNlVGVzdCIsCisgICAgICAgICAgICAiVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJIiwKKyAgICAgICAgICAgICJUZXN0Q2Fub25pY2FsSXRlcmF0b3IiLAorICAgICAgICAgICAgIk5vcm1hbGl6YXRpb25Nb25rZXlUZXN0IiwKKwkgICAgIk5vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMiLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJOb3JtYWxpemVyIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdENhbm9uaWNhbEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmExY2VhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRTZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2Fub25pY2FsSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKworLy8gVE9ETzogZml0IGludG8gdGVzdCBmcmFtZXdvcmsKKworcHVibGljIGNsYXNzIFRlc3RDYW5vbmljYWxJdGVyYXRvciBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XX05BTUVTID0gZmFsc2U7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RDYW5vbmljYWxJdGVyYXRvcigpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXN0QXJyYXlbXVtdID0geworICAgICAgICB7Ilx1MDBDNWRcdTAzMDdcdTAzMjciLCAiQVx1MDMwQWRcdTAzMDdcdTAzMjcsIEFcdTAzMEFkXHUwMzI3XHUwMzA3LCBBXHUwMzBBXHUxRTBCXHUwMzI3LCAiCisgICAgICAgICAgICArICJBXHUwMzBBXHUxRTExXHUwMzA3LCBcdTAwQzVkXHUwMzA3XHUwMzI3LCBcdTAwQzVkXHUwMzI3XHUwMzA3LCAiCisgICAgICAgICAgICArICJcdTAwQzVcdTFFMEJcdTAzMjcsIFx1MDBDNVx1MUUxMVx1MDMwNywgXHUyMTJCZFx1MDMwN1x1MDMyNywgIgorICAgICAgICAgICAgKyAiXHUyMTJCZFx1MDMyN1x1MDMwNywgXHUyMTJCXHUxRTBCXHUwMzI3LCBcdTIxMkJcdTFFMTFcdTAzMDcifSwKKyAgICAgICAgeyJcdTAxMGRcdTAxN0UiLCAiY1x1MDMwQ3pcdTAzMEMsIGNcdTAzMENcdTAxN0UsIFx1MDEwRHpcdTAzMEMsIFx1MDEwRFx1MDE3RSJ9LAorICAgICAgICB7InhcdTAzMDdcdTAzMjciLCAieFx1MDMwN1x1MDMyNywgeFx1MDMyN1x1MDMwNywgXHUxRThCXHUwMzI3In0sCisgICAgfTsKKyAgICAKKyAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEV4aGF1c3RpdmUoKSB7CisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgaW50IG1peGVkQ291bnRlciA9IDA7CisgICAgICAgIGludCBsYXN0TWl4ZWRDb3VudGVyID0gLTE7CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgLyoKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3Igc2xvd0l0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgc2xvd0l0LlNLSVBfWkVST1MgPSBmYWxzZTsKKyAgICAgICAgKi8KKyAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdGXSBuYW1lIik7CisgICAgICAgIC8vU2V0IGl0U2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgLy9TZXQgc2xvd0l0U2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gc2tpcCBjaGFyYWN0ZXJzIHdlIGtub3cgZG9uJ3QgaGF2ZSBkZWNvbXBzCisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IHR5cGUgPT0gQ2hhcmFjdGVyLlBSSVZBVEVfVVNFCisgICAgICAgICAgICAgICAgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuU1VSUk9HQVRFKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoKytjb3VudGVyICUgNTAwMCkgPT0gMCkgbG9nbG4oIlRlc3RpbmcgIiArIFV0aWxpdHkuaGV4KGksMCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcyA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghIHNraXBJZkJlZm9yZUlDVSgzLCA0KSkgeworICAgICAgICAgICAgICAgIGNoYXJhY3RlclRlc3QocywgaSwgaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyYWN0ZXJUZXN0KHMgKyAiXHUwMzQ1IiwgaSwgaXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgVGVzdFNwZWVkKCkgeworICAgICAgICAgLy8gc2tpcCB1bmxlc3MgdmVyYm9zZQorICAgICAgICBpZiAoIWlzVmVyYm9zZSgpKSByZXR1cm4gMDsKKworICAgICAgICAgICBTdHJpbmcgcyA9ICJcdUFDMDFcdTAzNDUiOworICAgICAgICAgICAKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3Iocyk7CisgICAgICAgIGRvdWJsZSBzdGFydCwgZW5kOworICAgICAgICBpbnQgeCA9IDA7IC8vIGp1c3QgdG8ga2VlcCBjb2RlIGZyb20gb3B0aW1pemluZyBhd2F5LgorICAgICAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDAwOworICAgICAgICBkb3VibGUgc2xvd0RlbHRhID0gMDsKKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIHNsb3dJdCA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcihzKTsKKyAgICAgICAgc2xvd0l0LlNLSVBfWkVST1MgPSBmYWxzZTsKKworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgc2xvd0l0LnNldFNvdXJjZShzKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSBzbG93SXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHggKz0gaXRlbS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZG91YmxlIHNsb3dEZWx0YSA9IChlbmQtc3RhcnQpIC8gaXRlcmF0aW9uczsKKyAgICAgICAgbG9nbG4oIlNsb3cgaXRlcmF0aW9uOiAiICsgc2xvd0RlbHRhKTsKKyAgICAgICAgKi8KKworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgaXQuc2V0U291cmNlKHMpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICB4ICs9IGl0ZW0ubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGRvdWJsZSBmYXN0RGVsdGEgPSAoZW5kLXN0YXJ0KSAvIGl0ZXJhdGlvbnM7CisgICAgICAgIGxvZ2xuKCJGYXN0IGl0ZXJhdGlvbjogIiArIGZhc3REZWx0YSArIChzbG93RGVsdGEgIT0gMCA/ICIsICIgKyAoZmFzdERlbHRhL3Nsb3dEZWx0YSkgOiAiIikpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHJldHVybiB4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisvLyAgICAgIFRoaXMgaXMgbm90IGludGVyZXN0aW5nIGFueW1vcmUgYXMgdGhlIGRhdGEgaXMgYWxyZWFkeSBidWlsdCAKKy8vICAgICAgYmVmb3JlaGFuZAorCisvLyAgICAgICAgY2hlY2sgYnVpbGQKKy8vICAgICAgICBVbmljb2RlU2V0IHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U2FmZVN0YXJ0KCk7CisvLyAgICAgICAgbG9nbG4oIlNhZmUgU3RhcnQ6ICIgKyBzcy50b1BhdHRlcm4odHJ1ZSkpOworLy8gICAgICAgIHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U3RhcnRzKCdhJyk7CisvLyAgICAgICAgZXhwZWN0RXF1YWwoIkNoYXJhY3RlcnMgd2l0aCAnYScgYXQgdGhlIHN0YXJ0IG9mIHRoZWlyIGRlY29tcG9zaXRpb246ICIsICIiLCBDYW5vbmljYWxJdGVyYXRvci5nZXRTdGFydHMoJ2EnKSwKKy8vICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTAwRTAtXHUwMEU1XHUwMTAxXHUwMTAzXHUwMTA1XHUwMUNFXHUwMURGXHUwMUUxXHUwMUZCIgorLy8gICAgICAgICAgICArICJcdTAyMDFcdTAyMDNcdTAyMjdcdTFFMDFcdTFFQTFcdTFFQTNcdTFFQTVcdTFFQTdcdTFFQTlcdTFFQUJcdTFFQURcdTFFQUZcdTFFQjFcdTFFQjNcdTFFQjVcdTFFQjddIikKKy8vICAgICAgICAgICAgICAgICk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBwZXJtdXRlCisgICAgICAgIC8vIE5PVEU6IHdlIHVzZSBhIFRyZWVTZXQgYmVsb3cgdG8gc29ydCB0aGUgb3V0cHV0LCB3aGljaCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBzb3J0ZWQhCisgICAgICAgIAorICAgICAgICBTZXQgcmVzdWx0cyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLnBlcm11dGUoIkFCQyIsIGZhbHNlLCByZXN1bHRzKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlNpbXBsZSBwZXJtdXRhdGlvbiAiLCAiIiwgY29sbGVjdGlvblRvU3RyaW5nKHJlc3VsdHMpLCAiQUJDLCBBQ0IsIEJBQywgQkNBLCBDQUIsIENCQSIpOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHNhbXBsZXMKKyAgICAgICAgU29ydGVkU2V0IHNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdEFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvL2xvZ2xuKCJSZXN1bHRzIGZvcjogIiArIG5hbWUudHJhbnNsaXRlcmF0ZSh0ZXN0QXJyYXlbaV0pKTsKKyAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKHRlc3RBcnJheVtpXVswXSk7CisgICAgICAgICAgIC8vIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICAgICAgU3RyaW5nIGZpcnN0ID0gbnVsbDsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZihmaXJzdD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHNldC5hZGQocmVzdWx0KTsgLy8gc29ydCB0aGVtCisgICAgICAgICAgICAgICAgLy9sb2dsbigrK2NvdW50ZXIgKyAiOiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiID0gIiArIG5hbWUudHJhbnNsaXRlcmF0ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdEVxdWFsKGkgKyAiOiAiLCB0ZXN0QXJyYXlbaV1bMF0sIGNvbGxlY3Rpb25Ub1N0cmluZyhzZXQpLCB0ZXN0QXJyYXlbaV1bMV0pOworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGlmKCFpdC5uZXh0KCkuZXF1YWxzKGZpcnN0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbm9uaWNhbEl0ZXJhdG9yLnJlc2V0KCkgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZighaXQuZ2V0U291cmNlKCkuZXF1YWxzKE5vcm1hbGl6ZXIubm9ybWFsaXplKHRlc3RBcnJheVtpXVswXSxOb3JtYWxpemVyLk5GRCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U291cmNlKCkgZG9lcyBub3QgcmV0dXJuIE5GRCBvZiBpbnB1dCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RFcXVhbChTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGl0ZW0sIE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1lc3NhZ2UgKyBnZXRSZWFkYWJsZShpdGVtKSk7CisgICAgICAgICAgICBlcnJsbigiXHQiICsgZ2V0UmVhZGFibGUoYSkpOworICAgICAgICAgICAgZXJybG4oIlx0IiArIGdldFJlYWRhYmxlKGIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDaGVja2VkOiAiICsgbWVzc2FnZSArIGdldFJlYWRhYmxlKGl0ZW0pKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBnZXRSZWFkYWJsZShhKSk7CisgICAgICAgICAgICBsb2dsbigiXHQiICsgZ2V0UmVhZGFibGUoYikpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVHJhbnNsaXRlcmF0b3IgbmFtZSA9IG51bGw7CisgICAgLy9UcmFuc2xpdGVyYXRvciBoZXggPSBudWxsOworICAgICAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlYWRhYmxlKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gIm51bGwiOworICAgICAgICBTdHJpbmcgcyA9IG9iai50b1N0cmluZygpOworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgIC8vIHNldCB1cCBmb3IgcmVhZGFibGUgZGlzcGxheQorICAgICAgICAvL2lmIChuYW1lID09IG51bGwpIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXCAtXFx1MDA3Rl0gbmFtZSIpOworICAgICAgICAvL2lmIChoZXggPT0gbnVsbCkgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFwgLVxcdTAwN0ZdIGhleCIpOworICAgICAgICByZXR1cm4gIlsiICsgKFNIT1dfTkFNRVMgPyBoZXgocykgKyAiOyAiIDogIiIpICsgaGV4KHMpICsgIl0iOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGFyYWN0ZXJUZXN0KFN0cmluZyBzLCBpbnQgY2gsIENhbm9uaWNhbEl0ZXJhdG9yIGl0KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ZXIgPSAwOworICAgICAgICBpbnQgbWl4ZWRDb3VudGVyID0gMDsKKyAgICAgICAgaW50IGxhc3RNaXhlZENvdW50ZXIgPSAtMTsKKyAgICAgICAgYm9vbGVhbiBnb3REZWNvbXAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBnb3RDb21wID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZ290U291cmNlID0gZmFsc2U7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzLCBmYWxzZSk7CisgICAgICAgIFN0cmluZyBjb21wID0gTm9ybWFsaXplci5jb21wb3NlKHMsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNraXAgY2hhcmFjdGVycyB0aGF0IGRvbid0IGhhdmUgZWl0aGVyIGRlY29tcC4KKyAgICAgICAgLy8gbmVlZCBxdWljayB0ZXN0IGZvciB0aGlzIQorICAgICAgICBpZiAocy5lcXVhbHMoZGVjb21wKSAmJiBzLmVxdWFscyhjb21wKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgaXQuc2V0U291cmNlKHMpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKHMpKSBnb3RTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKGRlY29tcCkpIGdvdERlY29tcCA9IHRydWU7CisgICAgICAgICAgICBpZiAoaXRlbS5lcXVhbHMoY29tcCkpIGdvdENvbXAgPSB0cnVlOworICAgICAgICAgICAgaWYgKChtaXhlZENvdW50ZXIgJiAweDdGKSA9PSAwICYmIChjaCA8IDB4QUQwMCB8fCBjaCA+IDB4QUMwMCArIDExMTcyKSkgeworICAgICAgICAgICAgICAgIGlmIChsYXN0TWl4ZWRDb3VudGVyICE9IG1peGVkQ291bnRlcikgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICAgICAgICAgIGxhc3RNaXhlZENvdW50ZXIgPSBtaXhlZENvdW50ZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBtaXhlZENvdW50ZXIgKyAiXHQiICsgaGV4KGl0ZW0pCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMocykgPyAiXHQoKm9yaWdpbmFsKikiIDogIiIpCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMoZGVjb21wKSA/ICJcdCgqZGVjb21wKikiIDogIiIpCisgICAgICAgICAgICAgICAgKyAoaXRlbS5lcXVhbHMoY29tcCkgPyAiXHQoKmNvbXAqKSIgOiAiIikKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGNoZWNrIHRoYXQgemVyb3Mgb3B0aW1pemF0aW9uIGRvZXNuJ3QgbWVzcyB1cC4KKyAgICAgICAgLyoKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICBpdFNldC5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBpdFNldC5hZGQoaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzbG93SXQuc2V0U291cmNlKHMpOworICAgICAgICAgICAgc2xvd0l0U2V0LmNsZWFyKCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gc2xvd0l0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBzbG93SXRTZXQuYWRkKGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpdFNldC5lcXVhbHMoc2xvd0l0U2V0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJaZXJvIG9wdGltaXphdGlvbiBmYWlsdXJlIHdpdGggIiArIGdldFJlYWRhYmxlKHMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgbWl4ZWRDb3VudGVyKys7CisgICAgICAgIGlmICghZ290U291cmNlIHx8ICFnb3REZWNvbXAgfHwgIWdvdENvbXApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIENhbm9uaWNhbEl0ZXJhdG9yOiAiICsgcyArICIgZGVjb21wOiAiICtkZWNvbXArIiBjb21wOiAiK2NvbXApOworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGZvcihTdHJpbmcgaXRlbT1pdC5uZXh0KCk7aXRlbSE9bnVsbDtpdGVtPWl0Lm5leHQoKSl7CisgICAgICAgICAgICAgICAgZXJyKGl0ZW0gKyAiICAgICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIiIpOyAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgY29sbGVjdGlvblRvU3RyaW5nKENvbGxlY3Rpb24gY29sKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gY29sLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDc5MTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJLmphdmEKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db21wb3NlZENoYXJJdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJIGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gdGVtcEFyZ3MgPSBuZXcgU3RyaW5nW2FyZ3MubGVuZ3RoXTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvLyBBbGxvdyB0aGUgdGVzdCB0byBiZSBwb2ludGVkIGF0IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgVW5pY29kZSBkYXRhYmFzZQorICAgICAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykKKyAgICAgICAgLy97CisgICAgICAgIC8vICAgIGlmIChhcmdzW2ldLmVxdWFscygiLWRhdGEiKSkgeworICAgICAgICAvLyAgICAgICAgdGVtcEluZm8gPSBuZXcgVUluZm8oYXJnc1srK2ldLCBhcmdzWysraV0pOworICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAvLyAgICAgICAgdGVtcEFyZ3NbY291bnQrK10gPSBhcmdzW2ldOworICAgICAgICAvLyAgICB9CisgICAgICAgIC8vfQorCisgICAgICAgIGFyZ3MgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wQXJncywgMCwgYXJncywgMCwgY291bnQpOworCisKKworICAgICAgICBuZXcgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVyQVBJKCl7CisgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhIE5vcm1hbGl6ZXIgZnJvbSBhIENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICAgIFN0cmluZyBzPVV0aWxpdHkudW5lc2NhcGUoImFcdTAzMDhcdWFjMDBcXFUwMDAyZjgwMCIpOworICAgICAgICAvLyBtYWtlIHMgYSBiaXQgbG9uZ2VyIGFuZCBtb3JlIGludGVyZXN0aW5nCisgICAgICAgIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHMrcyk7CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIGNvbnN0cnVjdG9ycworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcihpdGVyLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgTm9ybWFsaXplciBub3JtMiA9IG5ldyBOb3JtYWxpemVyKHMsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgIGlmKG5vcm0ubmV4dCgpIT0weGU0KSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikubmV4dCgpIik7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIC8vIHRlc3QgY2xvbmUoKSwgPT0sIGFuZCBoYXNoQ29kZSgpCisgICAgICAgIE5vcm1hbGl6ZXIgY2xvbmU9KE5vcm1hbGl6ZXIpbm9ybS5jbG9uZSgpOworICAgICAgICBpZihjbG9uZS5nZXRCZWdpbkluZGV4KCkhPSBub3JtLmdldEJlZ2luSW5kZXgoKSl7CisgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmdldEJlZ2luSW5kZXgoKSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihjbG9uZS5nZXRFbmRJbmRleCgpIT0gbm9ybS5nZXRFbmRJbmRleCgpKXsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0RW5kSW5kZXgoKSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3Qgc2V0T3B0aW9uKCkgYW5kIGdldE9wdGlvbigpCisgICAgICAgIGNsb25lLnNldE9wdGlvbigweGFhMDAwMCwgdHJ1ZSk7CisgICAgICAgIGNsb25lLnNldE9wdGlvbigweDIwMDAwLCBmYWxzZSk7CisgICAgICAgIGlmKGNsb25lLmdldE9wdGlvbigweDg4MDAwMCkgPT0wfHwgY2xvbmUuZ2V0T3B0aW9uKDB4MjAwMDApPT0xKSB7CisgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjpzZXRPcHRpb24oKSBvciBOb3JtYWxpemVyOjpnZXRPcHRpb24oKSIpOworICAgICAgICB9CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIG5vcm1hbGl6ZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUocyxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgY29tcG9zZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5jb21wb3NlKHMsZmFsc2UsMCk7CisgICAgICAgIC8vdGVzdCBkZXByZWNhdGVkIGRlY29tcG9zZSBtZXRob2QKKyAgICAgICAgTm9ybWFsaXplci5kZWNvbXBvc2UocyxmYWxzZSwwKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0aHJvdWdoIGFsbCBvZiB0aGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSBhIGNvbXBvc2VkLWNoYXIgaXRlcmF0b3IKKyAgICAgKiBhbmQgbWFrZSBzdXJlIHRoYXQ6CisgICAgICogPHVsPgorICAgICAqIDxsaT5hKSBUaGV5IGRvIGluZGVlZCBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDxsaT5iKSBUaGUgZGVjb21wb3NpdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGl0ZXJhdG9yIGlzIHRoZSBzYW1lIGFzCisgICAgICogICAgICAgICAgcmV0dXJuZWQgYnkgTm9ybWFsaXplci5kZWNvbXBvc2UoKS4KKyAgICAgKiA8bGk+YykgQWxsIGNoYXJhY3RlcnMgPGVtPm5vdDwvZW0+IHJldHVybmVkIGJ5IHRoZSBpdGVyYXRvciBkbyBub3QKKyAgICAgKiAgICAgICAgICBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2VkQ2hhckl0ZXIoKSB7CisgICAgICAgIGRvVGVzdENvbXBvc2VkQ2hhcnMoZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRvVGVzdENvbXBvc2VkQ2hhcnMoYm9vbGVhbiBjb21wYXQpIHsKKyAgICAgICAgaW50IG9wdGlvbnMgPSBOb3JtYWxpemVyLklHTk9SRV9IQU5HVUw7CisgICAgICAgIENvbXBvc2VkQ2hhckl0ZXIgaXRlciA9IG5ldyBDb21wb3NlZENoYXJJdGVyKGNvbXBhdCwgb3B0aW9ucyk7CisKKyAgICAgICAgY2hhciBsYXN0Q2hhciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgbGFzdCBvbmUgYW5kIHRoaXMgb25lIHRvIG1ha2UKKyAgICAgICAgICAgIC8vIHN1cmUgdGhhdCB0aGV5IGRvbid0IGhhdmUgZGVjb21wb3NpdGlvbnMKKyAgICAgICAgICAgIGFzc2VydE5vRGVjb21wKGxhc3RDaGFyLCBjaCwgY29tcGF0LCBvcHRpb25zKTsKKyAgICAgICAgICAgIGxhc3RDaGFyID0gY2g7CisKKyAgICAgICAgICAgIC8vIE5vdyBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb21wb3NpdGlvbnMgZm9yIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBtYWtlIHNlbnNlCisgICAgICAgICAgICBTdHJpbmcgY2hTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoY2gpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgaXRlckRlY29tcCA9IGl0ZXIuZGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgU3RyaW5nIG5vcm1EZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShjaFN0cmluZywgY29tcGF0KTsKKworICAgICAgICAgICAgaWYgKGl0ZXJEZWNvbXAuZXF1YWxzKGNoU3RyaW5nKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogIiArIGhleChjaCkgKyAiIGhhcyBpZGVudGljYWwgZGVjb21wIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICghaXRlckRlY29tcC5lcXVhbHMobm9ybURlY29tcCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IE5vcm1hbGl6ZXIgZGVjb21wIGZvciAiICsgaGV4KGNoKSArICIgKCIgKyBoZXgobm9ybURlY29tcCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiICE9IGl0ZXIgZGVjb21wICgiICsgaGV4KGl0ZXJEZWNvbXApICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0Tm9EZWNvbXAobGFzdENoYXIsICdcdUZGRkYnLCBjb21wYXQsIG9wdGlvbnMpOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0Tm9EZWNvbXAoY2hhciBzdGFydCwgY2hhciBsaW1pdCwgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgZm9yIChjaGFyIHggPSArK3N0YXJ0OyB4IDwgbGltaXQ7IHgrKykgeworICAgICAgICAgICAgU3RyaW5nIHhTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoeCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh4U3RyaW5nLCBjb21wYXQpOworICAgICAgICAgICAgaWYgKCFkZWNvbXAuZXF1YWxzKHhTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiAiICsgaGV4KHgpICsgIiBoYXMgZGVjb21wb3NpdGlvbiAoIiArIGhleChkZWNvbXApICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgd2FzIG5vdCByZXR1cm5lZCBieSBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkgeworICAgICAgICBpbnQgb3B0aW9ucyA9IE5vcm1hbGl6ZXIuSUdOT1JFX0hBTkdVTDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBmYWxzZTsKKworICAgICAgICBDb21wb3NlZENoYXJJdGVyIGl0ZXIgPSBuZXcgQ29tcG9zZWRDaGFySXRlcihmYWxzZSwgb3B0aW9ucyk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgY2hhciBjaCA9IGl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCkuYXBwZW5kKGNoKS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGNoU3RyLCBjb21wYXQpOworICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UoZGVjb21wLCBjb21wYXQpOworCisgICAgICAgICAgICBpbnQgY0NsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgIGNDbGFzcyA9IDA7CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVySW1wbC5pc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihjaCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBlZCBleGNsdWRlZCBjaGFyICIgKyBoZXgoY2gpICsgIiAoIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShjaCkgKyAiKSIgKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXZvaWQgZGlzcGFyYWdlZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpZiAoZ2V0RGVjb21wb3NpdGlvbihjaCxjb21wYXQpLmxlbmd0aCgpID09IDQpIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoIWNvbXAuZXF1YWxzKGNoU3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmQgdHJpcCBpbnZhbGlkOiAiICsgaGV4KGNoU3RyKSArICIgLS0+ICIgKyBoZXgoZGVjb21wKQorICAgICAgICAgICAgICAgICAgICArICIgLS0+ICIgKyBoZXgoY29tcCkpOworCisgICAgICAgICAgICAgICAgZXJybG4oIiAgY2hhciBkZWNvbXAgaXMgJyIgKyBnZXREZWNvbXBvc2l0aW9uKGNoLGNvbXBhdCkgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdldERlY29tcG9zaXRpb24oY2hhciBjaCwgYm9vbGVhbiBjb21wYXQpeworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyWzEwXTsgICAKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oY2gsY29tcGF0LGRlc3QsMCxkZXN0Lmxlbmd0aCk7ICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsMCxsZW5ndGgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NjBkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplci5qYXZhCkBAIC0wLDAgKzEsMTg1IEBACisvKioKKyAqIEltcGxlbWVudHMgVW5pY29kZSBOb3JtYWxpemF0aW9uIEZvcm1zIEMsIEQsIEtDLCBLRC48YnI+CisgKiBTZWUgVVRSIzE1IGZvciBkZXRhaWxzLjxicj4KKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDAzIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBVbmljb2RlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPGJyPgorICogVGhlIFVuaWNvZGUgQ29uc29ydGl1bSBtYWtlcyBubyBleHByZXNzZWQgb3IgaW1wbGllZCB3YXJyYW50eSBvZiBhbnkKKyAqIGtpbmQsIGFuZCBhc3N1bWVzIG5vIGxpYWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucy4KKyAqIE5vIGxpYWJpbGl0eSBpcyBhc3N1bWVkIGZvciBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMKKyAqIGluIGNvbm5lY3Rpb24gd2l0aCBvciBhcmlzaW5nIG91dCBvZiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlLgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBVcGRhdGVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzOgorICogVmxhZGltaXIgV2VpbnN0ZWluICYgTWFya3VzIFNjaGVyZXIKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5VVEYxNlV0aWw7CisKK3B1YmxpYyBjbGFzcyBVbmljb2RlTm9ybWFsaXplciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBub3JtYWxpemVyIGZvciBhIGdpdmVuIGZvcm0uCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVOb3JtYWxpemVyKGJ5dGUgZm9ybSwgYm9vbGVhbiBmdWxsRGF0YSkgeworICAgICAgICB0aGlzLmZvcm0gPSBmb3JtOworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSBkYXRhID0gTm9ybWFsaXplckJ1aWxkZXIuYnVpbGQoZnVsbERhdGEpOyAvLyBsb2FkIDFzdCB0aW1lCisgICAgfQorCisgICAgLyoqCisgICAgKiBNYXNrcyBmb3IgdGhlIGZvcm0gc2VsZWN0b3IKKyAgICAqLworICAgIHN0YXRpYyBmaW5hbCBieXRlCisgICAgICAgIENPTVBBVElCSUxJVFlfTUFTSyA9IDEsCisgICAgICAgIENPTVBPU0lUSU9OX01BU0sgPSAyOworCisgICAgLyoqCisgICAgKiBOb3JtYWxpemF0aW9uIEZvcm0gU2VsZWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZQorICAgICAgICBEID0gMCAsCisgICAgICAgIEMgPSBDT01QT1NJVElPTl9NQVNLLAorICAgICAgICBLRCA9IENPTVBBVElCSUxJVFlfTUFTSywKKyAgICAgICAgS0MgPSAoYnl0ZSkoQ09NUEFUSUJJTElUWV9NQVNLICsgQ09NUE9TSVRJT05fTUFTSyk7CisKKyAgICAvKioKKyAgICAqIE5vcm1hbGl6ZXMgdGV4dCBhY2NvcmRpbmcgdG8gdGhlIGNob3NlbiBmb3JtLAorICAgICogcmVwbGFjaW5nIGNvbnRlbnRzIG9mIHRoZSB0YXJnZXQgYnVmZmVyLgorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHBhcmFtICAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgbm9ybWFsaXplKFN0cmluZyBzb3VyY2UsIFN0cmluZ0J1ZmZlciB0YXJnZXQpIHsKKworICAgICAgICAvLyBGaXJzdCBkZWNvbXBvc2UgdGhlIHNvdXJjZSBpbnRvIHRhcmdldCwKKyAgICAgICAgLy8gdGhlbiBjb21wb3NlIGlmIHRoZSBmb3JtIHJlcXVpcmVzLgorCisgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgaW50ZXJuYWxEZWNvbXBvc2Uoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgaWYgKChmb3JtICYgQ09NUE9TSVRJT05fTUFTSykgIT0gMCkgeworICAgICAgICAgICAgICAgIGludGVybmFsQ29tcG9zZSh0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBOb3JtYWxpemVzIHRleHQgYWNjb3JkaW5nIHRvIHRoZSBjaG9zZW4gZm9ybQorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHJldHVybiAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzb3VyY2UsIG5ldyBTdHJpbmdCdWZmZXIoKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vICAgICAgICAgICAgICAgICAgUFJJVkFURVMKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhlIGN1cnJlbnQgZm9ybS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgZm9ybTsKKworICAgIC8qKgorICAgICogRGVjb21wb3NlcyB0ZXh0LCBlaXRoZXIgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHksCisgICAgKiByZXBsYWNpbmcgY29udGVudHMgb2YgdGhlIHRhcmdldCBidWZmZXIuCisgICAgKiBAcGFyYW0gICBmb3JtICAgICAgICB0aGUgbm9ybWFsaXphdGlvbiBmb3JtLiBJZiBDT01QQVRJQklMSVRZX01BU0sKKyAgICAqICAgICAgICAgICAgICAgICAgICAgIGJpdCBpcyBvbiBpbiB0aGlzIGJ5dGUsIHRoZW4gc2VsZWN0cyB0aGUgcmVjdXJzaXZlCisgICAgKiAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24sIG90aGVyd2lzZSBzZWxlY3RzCisgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVjdXJzaXZlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLgorICAgICogQHBhcmFtICAgc291cmNlICAgICAgdGhlIG9yaWdpbmFsIHRleHQsIHVubm9ybWFsaXplZAorICAgICogQHBhcmFtICAgdGFyZ2V0ICAgICAgdGhlIHJlc3VsdGluZyBub3JtYWxpemVkIHRleHQKKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbnRlcm5hbERlY29tcG9zZShTdHJpbmcgc291cmNlLCBTdHJpbmdCdWZmZXIgdGFyZ2V0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gY2Fub25pY2FsID0gKGZvcm0gJiBDT01QQVRJQklMSVRZX01BU0spID09IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgY2ggPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChzb3VyY2UsIGkpOworICAgICAgICAgICAgaSs9VVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChjaCk7CisgICAgICAgICAgICBkYXRhLmdldFJlY3Vyc2l2ZURlY29tcG9zaXRpb24oY2Fub25pY2FsLCBjaCwgYnVmZmVyKTsKKworICAgICAgICAgICAgLy8gYWRkIGFsbCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZGVjb21wb3NpdGlvbi4KKyAgICAgICAgICAgIC8vIChtYXkgYmUganVzdCB0aGUgb3JpZ2luYWwgY2hhcmFjdGVyLCBpZiB0aGVyZSB3YXMKKyAgICAgICAgICAgIC8vIG5vIGRlY29tcG9zaXRpb24gbWFwcGluZykKKworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBidWZmZXIubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICAgICAgY2ggPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChidWZmZXIsIGopOworICAgICAgICAgICAgICAgIGorPVVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gpOworICAgICAgICAgICAgICAgIGludCBjaENsYXNzID0gZGF0YS5nZXRDYW5vbmljYWxDbGFzcyhjaCk7CisgICAgICAgICAgICAgICAgaW50IGsgPSB0YXJnZXQubGVuZ3RoKCk7IC8vIGluc2VydGlvbiBwb2ludAorICAgICAgICAgICAgICAgIGlmIChjaENsYXNzICE9IDApIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBidWJibGUtc29ydCBjb21iaW5pbmcgbWFya3MgYXMgbmVjZXNzYXJ5CisKKyAgICAgICAgICAgICAgICAgICAgaW50IGNoMjsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7IGsgPiAwOyBrIC09IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2gyID0gVVRGMTZVdGlsLnByZXZDb2RlUG9pbnQodGFyZ2V0LCBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmdldENhbm9uaWNhbENsYXNzKGNoMikgPD0gY2hDbGFzcykgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTZVdGlsLmluc2VydENvZGVQb2ludCh0YXJnZXQsIGssIGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogQ29tcG9zZXMgdGV4dCBpbiBwbGFjZS4gVGFyZ2V0IG11c3QgYWxyZWFkeQorICAgICogaGF2ZSBiZWVuIGRlY29tcG9zZWQuCisgICAgKiBAcGFyYW0gICB0YXJnZXQgICAgICBpbnB1dDogZGVjb21wb3NlZCB0ZXh0LgorICAgICogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0OiB0aGUgcmVzdWx0aW5nIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbnRlcm5hbENvbXBvc2UoU3RyaW5nQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIGludCBzdGFydGVyUG9zID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ZXJDaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KHRhcmdldCwwKTsKKyAgICAgICAgaW50IGNvbXBQb3MgPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKHN0YXJ0ZXJDaCk7CisgICAgICAgIGludCBsYXN0Q2xhc3MgPSBkYXRhLmdldENhbm9uaWNhbENsYXNzKHN0YXJ0ZXJDaCk7CisgICAgICAgIGlmIChsYXN0Q2xhc3MgIT0gMCkgbGFzdENsYXNzID0gMjU2OyAvLyBmaXggZm9yIGlycmVndWxhciBjb21iaW5pbmcgc2VxdWVuY2UKKworICAgICAgICAvLyBMb29wIG9uIHRoZSBkZWNvbXBvc2VkIGNoYXJhY3RlcnMsIGNvbWJpbmluZyB3aGVyZSBwb3NzaWJsZQorCisgICAgICAgIGZvciAoaW50IGRlY29tcFBvcyA9IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoc3RhcnRlckNoKTsgZGVjb21wUG9zIDwgdGFyZ2V0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KHRhcmdldCwgZGVjb21wUG9zKTsKKyAgICAgICAgICAgIGRlY29tcFBvcyArPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKTsKKyAgICAgICAgICAgIGludCBjaENsYXNzID0gZGF0YS5nZXRDYW5vbmljYWxDbGFzcyhjaCk7CisgICAgICAgICAgICBpbnQgY29tcG9zaXRlID0gZGF0YS5nZXRQYWlyd2lzZUNvbXBvc2l0aW9uKHN0YXJ0ZXJDaCwgY2gpOworICAgICAgICAgICAgaWYgKGNvbXBvc2l0ZSAhPSBOb3JtYWxpemVyRGF0YS5OT1RfQ09NUE9TSVRFCisgICAgICAgICAgICAmJiAobGFzdENsYXNzIDwgY2hDbGFzcyB8fCBsYXN0Q2xhc3MgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICBVVEYxNlV0aWwuc2V0Q29kZVBvaW50QXQodGFyZ2V0LCBzdGFydGVyUG9zLCBjb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHN0YXJ0ZXJDaCA9IGNvbXBvc2l0ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNoQ2xhc3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydGVyUG9zID0gY29tcFBvczsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRlckNoICA9IGNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0Q2xhc3MgPSBjaENsYXNzOworICAgICAgICAgICAgICAgIGRlY29tcFBvcyArPSBVVEYxNlV0aWwuc2V0Q29kZVBvaW50QXQodGFyZ2V0LCBjb21wUG9zLCBjaCk7CisgICAgICAgICAgICAgICAgY29tcFBvcyArPSBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0YXJnZXQuc2V0TGVuZ3RoKGNvbXBQb3MpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29udGFpbnMgbm9ybWFsaXphdGlvbiBkYXRhIGZyb20gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorICAgICogdXNlIGZhbHNlIGZvciB0aGUgbWluaW1hbCBzZXQsIHRydWUgZm9yIHRoZSByZWFsIHNldC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE5vcm1hbGl6ZXJEYXRhIGRhdGEgPSBudWxsOworCisgICAgLyoqCisgICAgKiBKdXN0IGFjY2Vzc2libGUgZm9yIHRlc3RpbmcuCisgICAgKi8KKyAgICBib29sZWFuIGdldEV4Y2x1ZGVkIChjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBkYXRhLmdldEV4Y2x1ZGVkKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIFN0cmluZyBnZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyAoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gZGF0YS5nZXRSYXdEZWNvbXBvc2l0aW9uTWFwcGluZyhjaCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NTk2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Vbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworCitwdWJsaWMgY2xhc3MgVW5pY29kZU5vcm1hbGl6ZXJDb25mb3JtYW5jZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBVbmljb2RlTm9ybWFsaXplciBub3JtYWxpemVyX0MsIG5vcm1hbGl6ZXJfRCwgbm9ybWFsaXplcl9LQywgbm9ybWFsaXplcl9LRDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVW5pY29kZU5vcm1hbGl6ZXJDb25mb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdCgpIHsKKyAgICAgICAgLy8gRG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgc3RyaW5nIGFuZCBtb2RlIGFyZTsgd2UnbGwgY2hhbmdlCisgICAgICAgIC8vIHRoZW0gbGF0ZXIgYXMgbmVlZGVkLgorICAgICAgICBub3JtYWxpemVyX0MgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuQywgdHJ1ZSk7CisgICAgICAgIG5vcm1hbGl6ZXJfRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5ELCBmYWxzZSk7CisgICAgICAgIG5vcm1hbGl6ZXJfS0MgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuS0MsIGZhbHNlKTsKKyAgICAgICAgbm9ybWFsaXplcl9LRCA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5LRCwgZmFsc2UpOworICAgICAgICAKKyAgICB9CisgICAgLy8gbW9yZSBpbnRlcmVzdGluZyBjb25mb3JtYW5jZSB0ZXN0IGNhc2VzLCBub3QgaW4gdGhlIHVuaWNvZGUub3JnIE5vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgIHN0YXRpYyAgU3RyaW5nW10gbW9yZUNhc2VzID17CisgICAgICAgIC8vIE1hcmt1cyAyMDAxYXVnMzAKKyAgICAgICAgIjAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODswMEU0IDAzMzI7MDA2MSAwMzMyIDAzMDg7ICMgTWFya3VzIDAiLAorICAgIAorICAgICAgICAvLyBNYXJrdXMgMjAwMW9jdDI2IC0gdGVzdCBlZGdlIGNhc2UgZm9yIGl0ZXJhdGlvbjogVSswZjczLmNjPT0wIGJ1dCBkZWNvbXBvc2l0aW9uLmxlYWQuY2M9PTEyOQorICAgICAgICAiMDA2MSAwMzAxIDBGNzM7MDBFMSAwRjcxIDBGNzI7MDA2MSAwRjcxIDBGNzIgMDMwMTswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOyAjIE1hcmt1cyAxIgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBjb25mb3JtYW5jZSBvZiBOZXdOb3JtYWxpemVyIHRvCisgICAgICogaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS9jb25mb3JtYW5jZS9EcmFmdC1UZXN0U3VpdGUudHh0LgorICAgICAqIFRoaXMgZmlsZSBtdXN0IGJlIGxvY2F0ZWQgYXQgdGhlIHBhdGggc3BlY2lmaWVkIGFzIFRFU1RfU1VJVEVfRklMRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uZm9ybWFuY2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbnB1dCA9IG51bGw7CisgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW10gZmllbGRzID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHBhc3NDb3VudCA9IDA7CisgICAgICAgIGludCBmYWlsQ291bnQgPSAwOworICAgICAgICBVbmljb2RlU2V0IG90aGVyID0gbmV3IFVuaWNvZGVTZXQoMCwgMHgxMGZmZmYpOworICAgICAgICBpbnQgYz0wOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJ1bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dCIpOworICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOzsrK2NvdW50KSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvL3JlYWQgdGhlIGV4dHJhIHRlc3QgY2FzZXMKKyAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPiBtb3JlQ2FzZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb3VudCA9PSBtb3JlQ2FzZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgZG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IG1vcmVDYXNlc1tjb3VudCsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBFeHBlY3QgNSBjb2x1bW5zIG9mIHRoaXMgZm9ybWF0OgorICAgICAgICAgICAgICAgIC8vIDFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7ICMgPGNvbW1lbnRzPgorCisgICAgICAgICAgICAgICAgLy8gU2tpcCBjb21tZW50cworICAgICAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PSAnIycgIHx8IGxpbmUuY2hhckF0KDApPT0nQCcpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gUGFyc2Ugb3V0IHRoZSBmaWVsZHMKKyAgICAgICAgICAgICAgICBoZXhzcGxpdChsaW5lLCAnOycsIGZpZWxkcywgYnVmKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSZW1vdmUgYSBzaW5nbGUgY29kZSBwb2ludCBmcm9tIHRoZSAib3RoZXIiIFVuaWNvZGVTZXQKKyAgICAgICAgICAgICAgICBpZihmaWVsZHNbMF0ubGVuZ3RoKCk9PVVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoZmllbGRzWzBdLDAsIDEpKSB7CisgICAgICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KGZpZWxkc1swXSwwKTsgCisgICAgICAgICAgICAgICAgICAgIGlmKDB4YWMyMDw9YyAmJiBjPD0weGQ3M2YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBhbiBleGhhdXN0aXZlIHRlc3QgcnVuOiBza2lwIG1vc3QgSGFuZ3VsIHN5bGxhYmxlcworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09MHhhYzIwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIucmVtb3ZlKDB4YWMyMCwgMHhkNzNmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG90aGVyLnJlbW92ZShjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoZWNrQ29uZm9ybWFuY2UoZmllbGRzLCBsaW5lKSkgeworICAgICAgICAgICAgICAgICAgICArK3Bhc3NDb3VudDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK2ZhaWxDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAlIDEwMDApID09IDk5OSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTGluZSAiICsgKGNvdW50KzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvdWxkbid0IHJlYWQgZmlsZSAiCisgICAgICAgICAgICAgICsgZXguZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyBleC5nZXRNZXNzYWdlKCkKKyAgICAgICAgICAgICAgKyAiIGxpbmUgPSAiICsgbGluZQorICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWxDb3VudCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVG90YWw6ICIgKyBmYWlsQ291bnQgKyAiIGxpbmVzIGZhaWxlZCwgIiArCisgICAgICAgICAgICAgICAgICBwYXNzQ291bnQgKyAiIGxpbmVzIHBhc3NlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlRvdGFsOiAiICsgcGFzc0NvdW50ICsgIiBsaW5lcyBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvbmZvcm1hbmNlIG9mIHRoZSBnaXZlbiBsaW5lIG9mIHRoZSBVbmljb2RlCisgICAgICogbm9ybWFsaXphdGlvbiAoVVRSIDE1KSB0ZXN0IHN1aXRlIGZpbGUuICBGb3IgZWFjaCBsaW5lLAorICAgICAqIHRoZXJlIGFyZSBmaXZlIGNvbHVtbnMsIGNvcnJlc3BvbmRpbmcgdG8gZmllbGRbMF0uLmZpZWxkWzRdLgorICAgICAqCisgICAgICogVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisgICAgICogIGMyID09IE5GQyhjMSkgPT0gTkZDKGMyKSA9PSBORkMoYzMpCisgICAgICogIGMzID09IE5GRChjMSkgPT0gTkZEKGMyKSA9PSBORkQoYzMpCisgICAgICogIGM0ID09IE5GS0MoYzEpID09IE5GS0MoYzIpID09IE5GS0MoYzMpID09IE5GS0MoYzQpID09IE5GS0MoYzUpCisgICAgICogIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIDUgY29sdW1ucworICAgICAqIEBwYXJhbSBsaW5lIHRoZSBzb3VyY2UgbGluZSBmcm9tIHRoZSB0ZXN0IHN1aXRlIGZpbGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgcGFzc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrQ29uZm9ybWFuY2UoU3RyaW5nW10gZmllbGQsIFN0cmluZyBsaW5lKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgIC8vIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7IC8vIHNjcmF0Y2gKKyAgICAgICAgU3RyaW5nIG91dDsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgZm9yIChpPTA7IGk8NTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaTwzKSB7CisgICAgICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9DLm5vcm1hbGl6ZShmaWVsZFtpXSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IG5vcm1hbGl6ZXJfRC5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9LQy5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0MiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKworICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9LRC5ub3JtYWxpemUoZmllbGRbaV0pOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghcGFzcykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsaW5lKTsKKyAgICAgICAgfSAgICAgCisgICAgICAgCisgICAgICAgIHJldHVybiBwYXNzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gb3AgbmFtZSBvZiBub3JtYWxpemF0aW9uIGZvcm0sIGUuZy4sICJLQyIKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBnb3QgdmFsdWUgcmVjZWl2ZWQKKyAgICAgKiBAcGFyYW0gZXhwIGV4cGVjdGVkIHZhbHVlCisgICAgICogQHBhcmFtIG1zZyBkZXNjcmlwdGlvbiBvZiB0aGlzIHRlc3QKKyAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGdvdCA9PSBleHAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU3RyaW5nIG9wLCBTdHJpbmcgcywgU3RyaW5nIGdvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCwgU3RyaW5nIG1zZykgeworICAgICAgICBpZiAoZXhwLmVxdWFscyhnb3QpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigoIiAgICAgICIgKyBtc2cgKyAiKSAiICsgb3AgKyAiKCIgKyBzICsgIik9IiArIGhleChnb3QpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwLiAiICsgaGV4KGV4cCkpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkZWxpbWl0ZXIKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGVuLCBwYXJzZSB0aGUgcmVzdWx0YW50IGZpZWxkcyBmcm9tIGhleCBpbnRvCisgICAgICogY2hhcmFjdGVycy4gIFRoYXQgaXMsICIwMDQwIDA0MDA7MEMwMDswODk5IiAtPiBuZXcgU3RyaW5nW10geworICAgICAqICJcdTAwNDBcdTA0MDAiLCAiXHUwQzAwIiwgIlx1MDg5OSIgfS4gIFRoZSBvdXRwdXQgaXMgYXNzdW1lZCB0bworICAgICAqIGJlIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIGFscmVhZHksIGFuZCBleGFjdGx5IG91dHB1dC5sZW5ndGgKKyAgICAgKiBmaWVsZHMgYXJlIHBhcnNlZC4gIElmIHRoZXJlIGFyZSB0b28gZmV3IGFuIGV4Y2VwdGlvbiBpcworICAgICAqIHRocm93bi4gIElmIHRoZXJlIGFyZSB0b28gbWFueSB0aGUgZXh0cmFzIGFyZSBpZ25vcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZiBzY3JhdGNoIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaGV4c3BsaXQoU3RyaW5nIHMsIGNoYXIgZGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3V0cHV0LCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZm9yIChpPTA7IGk8b3V0cHV0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZGVsaW0gPSBzLmluZGV4T2YoZGVsaW1pdGVyLCBwb3MpOworICAgICAgICAgICAgaWYgKGRlbGltIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1pc3NpbmcgZmllbGQgaW4gIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gT3VyIGZpZWxkIGlzIGZyb20gcG9zLi5kZWxpbS0xLgorICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRvSGV4ID0gcy5zdWJzdHJpbmcocG9zLGRlbGltKTsKKyAgICAgICAgICAgIHBvcyA9IGRlbGltOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBsZW4gPSB0b0hleC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlKGluZGV4PCBsZW4peworICAgICAgICAgICAgICAgIGlmKHRvSGV4LmNoYXJBdChpbmRleCk9PScgJyl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGludCBzcGFjZVBvcyA9IHRvSGV4LmluZGV4T2YoJyAnLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHNwYWNlUG9zPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCxsZW4pLHMpOworICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2VQb3MgPSBsZW47CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1Zix0b0hleC5zdWJzdHJpbmcoaW5kZXgsIHNwYWNlUG9zKSxzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHNwYWNlUG9zKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IGZpZWxkICIgKyBpICsgIiBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXRbaV0gPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICsrcG9zOyAvLyBTa2lwIG92ZXIgZGVsaW0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzdHJUb0hleCwgU3RyaW5nIHMpeworICAgICAgICBpbnQgaGV4ID0gSW50ZWdlci5wYXJzZUludChzdHJUb0hleCwxNik7CisgICAgICAgIGlmIChoZXggPCAwICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT3V0IG9mIHJhbmdlIGhleCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhleCArICIgaW4gIiArIHMpOworICAgICAgICB9ZWxzZSBpZiAoaGV4ID4gMHhGRkZGKXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXg+PjEwKSsweGQ3YzApKTsgCisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSgoaGV4JjB4M2ZmKXwweGRjMDApKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSBoZXgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgLy8gU3BlY2lmaWMgdGVzdHMgZm9yIGRlYnVnZ2luZy4gIFRoZXNlIGFyZSBnZW5lcmFsbHkgZmFpbHVyZXMKKyAgICAvLyB0YWtlbiBmcm9tIHRoZSBjb25mb3JtYW5jZSBmaWxlLCBidXQgY3VsbGVkIG91dCB0byBtYWtlCisgICAgLy8gZGVidWdnaW5nIGVhc2llci4gIFRoZXNlIGNhbiBiZSBlbGltaW5hdGVkIHdpdGhvdXQgYWZmZWN0aW5nCisgICAgLy8gY292ZXJhZ2UuCisKKyAgICBwdWJsaWMgdm9pZCBfaGlkZVRlc3RDYXNlNigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIF90ZXN0T25lTGluZSgiMDM4NTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdE9uZUxpbmUoU3RyaW5nIGxpbmUpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIGZpZWxkcyA9IG5ldyBTdHJpbmdbNV07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIFBhcnNlIG91dCB0aGUgZmllbGRzCisgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICBjaGVja0NvbmZvcm1hbmNlKGZpZWxkcywgbGluZSk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdhOTI3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgTm9ybWFsaXplci4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTM3MGJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitTaGFyZWQgdXRpbGl0aWVzIGZvciB0ZXN0cy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL0NvbGxhdGlvblBlcmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczZjY4MzE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSwxMjYyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHVzYWdlU3RyaW5nID0gCisgICAgICAgICJ1c2FnZTogIGNvbGxwZXJmIG9wdGlvbnMuLi5cbiIKKyAgICAgICAgKyAiLWhlbHAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIG1lc3NhZ2UuXG4iCisgICAgICAgICsgIi1maWxlIGZpbGVfbmFtZSAgICAgICAgICAgIHV0Zi0xNiBmb3JtYXQgZmlsZSBvZiBuYW1lcy5cbiIKKyAgICAgICAgKyAiLWxvY2FsZSBuYW1lICAgICAgICAgICAgICAgSUNVIGxvY2FsZSB0byB1c2UuICBEZWZhdWx0IGlzIGVuX1VTXG4iCisgICAgICAgICsgIi1ydWxlcyBmaWxlX25hbWUgICAgICAgICAgIENvbGxhdGlvbiBydWxlcyBmaWxlIChvdmVycmlkZXMgbG9jYWxlKVxuIgorICAgICAgICAvLysgIi1sYW5naWQgMHgxMjM0ICAgICAgICAgICAgIFdpbmRvd3MgTGFuZ3VhZ2UgSUQgbnVtYmVyLiAgRGVmYXVsdCB0byB2YWx1ZSBmb3IgLWxvY2FsZSBvcHRpb25cbiIKKyAgICAgICAgLy8rICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9saWJyYXJ5L3BzZGsvd2luYmFzZS9ubHNfOHhvMy5odG1cbiIKKyAgICAgICAgLy8rICItd2luICAgICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdCB1c2luZyBXaW5kb3dzIG5hdGl2ZSBzZXJ2aWNlcy4gIChJQ1UgaXMgZGVmYXVsdClcbiIKKyAgICAgICAgLy8rICItdW5peCAgICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdCB1c2luZyBVbml4IHN0cnhmcm0sIHN0cmNvbGwgc2VydmljZXMuXG4iCisgICAgICAgIC8vKyAiLXVzZWxlbiAgICAgICAgICAgICAgICAgICAgVXNlIEFQSSB3aXRoIHN0cmluZyBsZW5ndGhzLiAgRGVmYXVsdCBpcyBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nc1xuIgorICAgICAgICArICItdXNla2V5cyAgICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgc29ydGtleXMgcmF0aGVyIHRoYW4gc3RyY29sbFxuIgorICAgICAgICArICItc3RyY21wICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgdV9zdHJjbXAgcmF0aGVyIHRoYW4gc3RyY29sbFxuIgorICAgICAgICArICItc3RyY21wQ1BPICAgICAgICAgICAgICAgICBSdW4gdGVzdHMgdXNpbmcgdV9zdHJjbXBDb2RlUG9pbnRPcmRlciByYXRoZXIgdGhhbiBzdHJjb2xsXG4iCisgICAgICAgICsgIi1sb29wIG5ubm4gICAgICAgICAgICAgICAgIExvb3Bjb3VudCBmb3IgdGVzdC4gIEFkanVzdCBmb3IgcmVhc29uYWJsZSB0b3RhbCBydW5uaW5nIHRpbWUuXG4iCisgICAgICAgICsgIi1pbG9vcCBuICAgICAgICAgICAgICAgICAgIElubmVyIExvb3AgQ291bnQuICBEZWZhdWx0ID0gMS4gIE51bWJlciBvZiBjYWxscyB0byBmdW5jdGlvblxuIgorICAgICAgICArICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXIgdGVzdCBhdCBlYWNoIGNhbGwgcG9pbnQuICBGb3IgbWVhc3VyaW5nIHRlc3Qgb3ZlcmhlYWQuXG4iCisgICAgICAgICsgIi10ZXJzZSAgICAgICAgICAgICAgICAgICAgIFRlcnNlIG51bWJlcnMtb25seSBvdXRwdXQuICBJbnRlbmRlZCBmb3IgdXNlIGJ5IHNjcmlwdHMuXG4iCisgICAgICAgICsgIi1mcmVuY2ggICAgICAgICAgICAgICAgICAgIEZyZW5jaCBhY2NlbnQgb3JkZXJpbmdcbiIKKyAgICAgICAgKyAiLWZyZW5jaG9mZiAgICAgICAgICAgICAgICAgTm8gRnJlbmNoIGFjY2VudCBvcmRlcmluZyAoZm9yIHVzZSB3aXRoIEZyZW5jaCBsb2NhbGVzLilcbiIKKyAgICAgICAgKyAiLW5vcm0gICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXppbmcgbW9kZSBvblxuIgorICAgICAgICArICItc2hpZnRlZCAgICAgICAgICAgICAgICAgICBTaGlmdGVkIG1vZGVcbiIKKyAgICAgICAgKyAiLWxvd2VyICAgICAgICAgICAgICAgICAgICAgTG93ZXIgY2FzZSBmaXJzdFxuIgorICAgICAgICArICItdXBwZXIgICAgICAgICAgICAgICAgICAgICBVcHBlciBjYXNlIGZpcnN0XG4iCisgICAgICAgICsgIi1jYXNlICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBzZXBhcmF0ZSBjYXNlIGxldmVsXG4iCisgICAgICAgICsgIi1sZXZlbCBuICAgICAgICAgICAgICAgICAgIFNvcnQgbGV2ZWwsIDEgdG8gNSwgZm9yIFByaW1hcnksIFNlY25kYXJ5LCBUZXJ0aWFyeSwgUXVhdGVybmFyeSwgSWRlbnRpY2FsXG4iCisgICAgICAgICsgIi1rZXloaXN0ICAgICAgICAgICAgICAgICAgIFByb2R1Y2UgYSB0YWJsZSBzb3J0IGtleSBzaXplIHZzLiBzdHJpbmcgbGVuZ3RoXG4iCisgICAgICAgICsgIi1iaW5zZWFyY2ggICAgICAgICAgICAgICAgIEJpbmFyeSBTZWFyY2ggdGltaW5nIHRlc3RcbiIKKyAgICAgICAgKyAiLWtleWdlbiAgICAgICAgICAgICAgICAgICAgU29ydCBLZXkgR2VuZXJhdGlvbiB0aW1pbmcgdGVzdFxuIgorICAgICAgICArICItcXNvcnQgICAgICAgICAgICAgICAgICAgICBRdWlja3NvcnQgdGltaW5nIHRlc3RcbiIKKyAgICAgICAgKyAiLWl0ZXIgICAgICAgICAgICAgICAgICAgICAgSXRlcmF0aW9uIFBlcmZvcm1hbmNlIFRlc3RcbiIKKyAgICAgICAgKyAiLWR1bXAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBzdHJpbmdzLCBzb3J0IGtleXMgYW5kIENFcy5cbiIKKyAgICAgICAgKyAiLWphdmEgICAgICAgICAgICAgICAgICAgICAgUnVuIHRlc3QgdXNpbmcgamF2YS50ZXh0LkNvbGxhdG9yLlxuIjsKKyAgICAKKyAgICAvL2VudW0ge0ZMQUcsIE5VTSwgU1RSSU5HfSB0eXBlOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfZk5hbWUgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfbG9jYWxlICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoImVuX1VTIik7CisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2xhbmdpZCAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIwIik7ICAgICAgICAgLy8gRGVmYXVsdHMgdG8gdmFsdWUgY29ycmVzcG9uZGluZyB0byBvcHRfbG9jYWxlLgorICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfcnVsZXMgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaGVscCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfbG9vcENvdW50ICA9IG5ldyBTdHJpbmdCdWZmZXIoIjEiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2lMb29wQ291bnQgPSBuZXcgU3RyaW5nQnVmZmVyKCIxIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF90ZXJzZSAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiZmFsc2UiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3Fzb3J0ICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2JpbnNlYXJjaCAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2ljdSAgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCJ0cnVlIik7CisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIG9wdF93aW4gICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7ICAgICAgLy8gUnVuIHdpdGggV2luZG93cyBuYXRpdmUgZnVuY3Rpb25zLgorICAgIC8vc3RhdGljIFN0cmluZ0J1ZmZlciBvcHRfdW5peCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOyAgICAgIC8vIFJ1biB3aXRoIFVOSVggc3RyY29sbCwgc3RyeGZybSBmdW5jdGlvbnMuCisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIG9wdF91c2VsZW4gICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF91c2VrZXlzICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zdHJjbXAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zdHJjbXBDUE8gID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9ub3JtICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9rZXlnZW4gICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9mcmVuY2ggICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9mcmVuY2hvZmYgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9zaGlmdGVkICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sb3dlciAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF91cHBlciAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9jYXNlICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sZXZlbCAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiMCIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfa2V5aGlzdCAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaXRlcnRlc3QgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfZHVtcCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfamF2YSAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIAorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgICBvcHRfZk5hbWUgICAgICA9ICIiOworICAgIHN0YXRpYyBTdHJpbmcgICBvcHRfbG9jYWxlICAgICA9ICJlbl9VUyI7CisgICAgLy9zdGF0aWMgaW50ICAgICAgb3B0X2xhbmdpZCAgICAgPSAwOyAgICAgICAgIC8vIERlZmF1bHRzIHRvIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gb3B0X2xvY2FsZS4KKyAgICBzdGF0aWMgU3RyaW5nICAgb3B0X3J1bGVzICAgICAgPSAiIjsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2hlbHAgICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgaW50ICAgICAgb3B0X2xvb3BDb3VudCAgPSAxOworICAgIHN0YXRpYyBpbnQgICAgICBvcHRfaUxvb3BDb3VudCA9IDE7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF90ZXJzZSAgICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9xc29ydCAgICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9iaW5zZWFyY2ggID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9pY3UgICAgICAgID0gdHJ1ZTsKKyAgICAvL3N0YXRpYyBib29sZWFuICBvcHRfd2luICAgICAgICA9IGZhbHNlOyAgICAgIC8vIFJ1biB3aXRoIFdpbmRvd3MgbmF0aXZlIGZ1bmN0aW9ucy4KKyAgICAvL3N0YXRpYyBib29sZWFuICBvcHRfdW5peCAgICAgICA9IGZhbHNlOyAgICAgIC8vIFJ1biB3aXRoIFVOSVggc3RyY29sbCwgc3RyeGZybSBmdW5jdGlvbnMuCisgICAgLy9zdGF0aWMgYm9vbGVhbiAgb3B0X3VzZWxlbiAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3VzZWtleXMgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3N0cmNtcCAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3N0cmNtcENQTyAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X25vcm0gICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2tleWdlbiAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2ZyZW5jaCAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2ZyZW5jaG9mZiAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3NoaWZ0ZWQgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2xvd2VyICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3VwcGVyICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2Nhc2UgICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgaW50ICAgICAgb3B0X2xldmVsICAgICAgPSAwOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfa2V5aGlzdCAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfaXRlcnRlc3QgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfZHVtcCAgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfamF2YSAgICAgICA9IGZhbHNlOworCisgICAgc3RhdGljIE9wdGlvblNwZWNbXSBvcHRpb25zID0geworICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWZpbGUiLCAyLCB0ZW1wX29wdF9mTmFtZSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbG9jYWxlIiwgMiwgdGVtcF9vcHRfbG9jYWxlKSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLWxhbmdpZCIsIDEsIHRlbXBfb3B0X2xhbmdpZCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItcnVsZXMiLCAyLCB0ZW1wX29wdF9ydWxlcyksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItcXNvcnQiLCAwLCB0ZW1wX29wdF9xc29ydCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItYmluc2VhcmNoIiwgMCwgdGVtcF9vcHRfYmluc2VhcmNoKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1pdGVyIiwgMCwgdGVtcF9vcHRfaXRlcnRlc3QpLAorICAgICAgICAvL25ldyBPcHRpb25TcGVjKCItd2luIiwgMCwgdGVtcF9vcHRfd2luKSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLXVuaXgiLCAwLCB0ZW1wX29wdF91bml4KSwKKyAgICAgICAgLy9uZXcgT3B0aW9uU3BlYygiLXVzZWxlbiIsIDAsIHRlbXBfb3B0X3VzZWxlbiksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItdXNla2V5cyIsIDAsIHRlbXBfb3B0X3VzZWtleXMpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXN0cmNtcCIsIDAsIHRlbXBfb3B0X3N0cmNtcCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItc3RyY21wQ1BPIiwgMCwgdGVtcF9vcHRfc3RyY21wQ1BPKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1ub3JtIiwgMCwgdGVtcF9vcHRfbm9ybSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItZnJlbmNoIiwgMCwgdGVtcF9vcHRfZnJlbmNoKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1mcmVuY2hvZmYiLCAwLCB0ZW1wX29wdF9mcmVuY2hvZmYpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXNoaWZ0ZWQiLCAwLCB0ZW1wX29wdF9zaGlmdGVkKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1sb3dlciIsIDAsIHRlbXBfb3B0X2xvd2VyKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi11cHBlciIsIDAsIHRlbXBfb3B0X3VwcGVyKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1jYXNlIiwgMCwgdGVtcF9vcHRfY2FzZSksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbGV2ZWwiLCAxLCB0ZW1wX29wdF9sZXZlbCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCIta2V5aGlzdCIsIDAsIHRlbXBfb3B0X2tleWhpc3QpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWtleWdlbiIsIDAsIHRlbXBfb3B0X2tleWdlbiksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItbG9vcCIsIDEsIHRlbXBfb3B0X2xvb3BDb3VudCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItaWxvb3AiLCAxLCB0ZW1wX29wdF9pTG9vcENvdW50KSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi10ZXJzZSIsIDAsIHRlbXBfb3B0X3RlcnNlKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1kdW1wIiwgMCwgdGVtcF9vcHRfZHVtcCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItaGVscCIsIDAsIHRlbXBfb3B0X2hlbHApLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLT8iLCAwLCB0ZW1wX29wdF9oZWxwKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1qYXZhIiwgMCwgdGVtcF9vcHRfamF2YSksCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgamF2YS50ZXh0LkNvbGxhdG9yIGphdmFDb2wgPSBudWxsOworICAgIHN0YXRpYyBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yIGljdUNvbCA9IG51bGw7CisgICAgc3RhdGljIE51bWJlckZvcm1hdCBuZiA9IG51bGw7CisgICAgc3RhdGljIE51bWJlckZvcm1hdCBwZXJjZW50ID0gbnVsbDsKKyAgICBBcnJheUxpc3QgbGlzdCA9IG51bGw7CisgICAgU3RyaW5nW10gdGVzdHMgPSBudWxsOworICAgIGludCBnbG9iYWxDb3VudCA9IDA7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBDb2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgY29sbFBlcmYgPSBuZXcgQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0KCk7CisgICAgICAgIGlmICggIUNvbGxhdGlvblBlcmZvcm1hbmNlVGVzdC5wcm9jZXNzT3B0aW9ucyhhcmdzKSB8fCBvcHRfaGVscCB8fCBvcHRfZk5hbWUubGVuZ3RoKCk9PTApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih1c2FnZVN0cmluZyk7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgICAgICBwZXJjZW50ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICAKKyAgICAgICAgY29sbFBlcmYuc2V0T3B0aW9ucygpOworICAgICAgICBjb2xsUGVyZi5yZWFkRGF0YUxpbmVzKCk7CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2R1bXApIHsKKyAgICAgICAgICAgIGNvbGxQZXJmLmRvRHVtcCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X3Fzb3J0KSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb1FTb3J0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfYmluc2VhcmNoKSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0JpbmFyeVNlYXJjaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2tleWdlbikgeworICAgICAgICAgICAgY29sbFBlcmYuZG9LZXlHZW4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9rZXloaXN0KSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0tleUhpc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9pdGVydGVzdCkgeworICAgICAgICAgICAgY29sbFBlcmYuZG9JdGVyVGVzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvL0R1bXAgZmlsZSBsaW5lcywgQ0VzLCBTb3J0IEtleXMgaWYgcmVxdWVzdGVkCisgICAgdm9pZCBkb0R1bXAoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAvL3ByaW50IHRoZSBsaW5lCisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoKFN0cmluZylsaXN0LmdldChpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGluZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgQ0VzOiAgIik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgQ0VpdGVyID0gKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGxpbmUpOworICAgICAgICAgICAgaW50IGNlOworICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgY2UgPSBDRWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0U3RyID0gSW50ZWdlci50b0hleFN0cmluZyhjZSk7IAorICAgICAgICAgICAgICAgIGZvciAoaW50IGxlbiA9IDA7IGxlbiA8IDggLSBvdXRTdHIubGVuZ3RoKCk7IGxlbisrKSB7CisgICAgICAgICAgICAgICAgICAgIG91dFN0ciA9JzAnICsgb3V0U3RyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG91dFN0ciArICIgICIpOworICAgICAgICAgICAgICAgIGlmKCsraiA+OCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiAgICAgICAgIik7CisgICAgICAgICAgICAgICAgICAgIGogPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgSUNVIFNvcnQgS2V5OiAiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBjayA9ICgoY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbktleShsaW5lKTsKKyAgICAgICAgICAgIGJ5dGVbXSBja3MgPSBjay50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgaiA9IDA7CisgICAgICAgICAgICBmb3IoaW50IGsgPSAwOyBrIDwgY2tzLmxlbmd0aDsgaysrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dFN0ciA9IEludGVnZXIudG9IZXhTdHJpbmcoY2tzW2tdKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG91dFN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgMTogICAgIG91dFN0ciA9ICcwJyArIG91dFN0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDg6ICAgICBvdXRTdHIgPSBvdXRTdHIuc3Vic3RyaW5nKDYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChvdXRTdHIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIik7CisgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIGlmKGogPiAwICYmIGogJSAyMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgICAgICAgICAgICAgICAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgIGRvUVNvcnQoKSAgICBUaGUgcXVpY2sgc29ydCB0aW1pbmcgdGVzdC4KKyAgICAgKgorICAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICovCisgICAgdm9pZCBkb1FTb3J0KCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgLy9TdHJpbmdbXSBzb3J0VGVzdHMgPSAoU3RyaW5nW10pIHRlc3RzLmNsb25lKCk7CisgICAgICAgIC8vQWRqdXN0IGxvb3AgY291bnQgdG8gY29tcGVuc2F0ZSBmb3IgZmlsZSBzaXplLiBRU29ydCBzaG91bGQgYmUgbmxvZyhuKSAKKyAgICAgICAgZG91YmxlIGRMb29wQ291bnQgPSBvcHRfbG9vcENvdW50ICogMzAwMCAvICgoTWF0aC5sb2codGVzdHMubGVuZ3RoKSAvIE1hdGgubG9nKDEwKSogdGVzdHMubGVuZ3RoKSk7CisgCisgICAgICAgIGlmKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBkTG9vcENvdW50ICo9IDU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBhZGpfbG9vcENvdW50ID0gKGludClkTG9vcENvdW50OworICAgICAgICBpZihhZGpfbG9vcENvdW50IDwgMSkgeworICAgICAgICAgICAgYWRqX2xvb3BDb3VudCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdsb2JhbENvdW50ID0gMDsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSAwOworICAgICAgICBsb25nIGVuZFRpbWUgPSAwOworICAgICAgICBpZiAob3B0X2ljdSAmJiBvcHRfdXNla2V5cykgeworICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBxU29ydEltcGxfaWN1X3VzZWtleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgaWN1Q29sKTsKKyAgICAgICAgICAgIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3B0X2ljdSAmJiAhb3B0X3VzZWtleXMpeworICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBxU29ydEltcGxfbm9rZXlzKHRlc3RzLCAwLCB0ZXN0cy5sZW5ndGggLTEsIGljdUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wdF9qYXZhICYmIG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9qYXZhX3VzZWtleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgamF2YUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wdF9qYXZhICYmICFvcHRfdXNla2V5cyl7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9ub2tleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgamF2YUNvbCk7CisgICAgICAgICAgICBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBlbGFwc2VkVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgIGludCBucyA9IChpbnQpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChnbG9iYWxDb3VudCArIDAuMCkpOworICAgICAgICBpZiAoIW9wdF90ZXJzZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJxc29ydDogIHRvdGFsICMgb2Ygc3RyaW5nIGNvbXBhcmVzID0gIiArIGdsb2JhbENvdW50KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicXNvcnQ6ICB0aW1lIHBlciBjb21wYXJlID0gIiArIG5zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihucyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgICBkb0JpbmFyeVNlYXJjaCgpICAgIEJpbmFyeSBTZWFyY2ggdGltaW5nIHRlc3QuICBFYWNoIG5hbWUgZnJvbSB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgbG9va2VkIHVwIGluIHRoZSBmdWxsIHNvcnRlZCBsaXN0IG9mIG5hbWVzLgorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvQmluYXJ5U2VhcmNoKCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgaW50IGdDb3VudCA9IDA7CisgICAgICAgIGludCBsb29wcyA9IDA7CisgICAgICAgIGRvdWJsZSBkTG9vcENvdW50ID0gb3B0X2xvb3BDb3VudCAqIDMwMDAgLyAoTWF0aC5sb2codGVzdHMubGVuZ3RoKSAvIE1hdGgubG9nKDEwKSogdGVzdHMubGVuZ3RoKTsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSAwOworICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBkTG9vcENvdW50ICo9IDU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGFkal9sb29wQ291bnQgPSAoaW50KWRMb29wQ291bnQ7CisgICAgICAgIGlmKGFkal9sb29wQ291bnQgPCAxKSB7CisgICAgICAgICAgICBhZGpfbG9vcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9pbnQgb3B0MiA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IoOzspIHsgICAvL25vdCByZWFsbHkgYSBsb29wLCBqdXN0IGFsbG93cyAiYnJlYWsiIHRvIHdvcmssIHRvIHNpbXBsaWZ5IAorICAgICAgICAgICAgICAgICAgICAvL2luYWR2ZXJ0YW50bHkgcnVubmluZyBtb3JlIHRoYW4gb25lIHRlc3QgdGhyb3VnaCBoZXJlCisgICAgICAgICAgICBpZihvcHRfc3RyY21wKSB7CisgICAgICAgICAgICAgICAgaW50IHIgPSAwOworICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgICAgIGZvcihsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3Vlc3MgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmV3R3Vlc3MgPT0gZ3Vlc3MpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3MgPSBuZXdHdWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gdGVzdHNbal0uY29tcGFyZVRvKHRlc3RzW2d1ZXNzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYociA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGkgPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbyA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob3B0X3N0cmNtcENQTykgeworICAgICAgICAgICAgICAgIGludCByID0gMDsKKyAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBmb3IobG9vcHMgPSAwOyBsb29wcyA8IGFkal9sb29wQ291bnQ7IGxvb3BzKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0cy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhpID0gdGVzdHMubGVuZ3RoLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGd1ZXNzID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3R3Vlc3MgPSAoaGkgKyBsbykgLyAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5ld0d1ZXNzID09IGd1ZXNzKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzID0gbmV3R3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5jb21wYXJlKHRlc3RzW2pdLCB0ZXN0c1tndWVzc10sIE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaSA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvcHRfaWN1KSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgZm9yIChsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGggLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBndWVzcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0d1ZXNzID09IGd1ZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzcyA9IG5ld0d1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRfdXNla2V5cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3J0S2V5MSA9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3J0S2V5MiA9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gaWN1Q29sLmNvbXBhcmUodGVzdHNbal0sIHRlc3RzW2d1ZXNzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGkgPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbyA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9wdF9qYXZhKSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgZm9yIChsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGggLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBndWVzcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0d1ZXNzID09IGd1ZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzcyA9IG5ld0d1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRfdXNla2V5cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkxID0gamF2YUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkyID0gamF2YUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gamF2YUNvbC5jb21wYXJlKHRlc3RzW2pdLCB0ZXN0c1tndWVzc10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG8gPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgfQorICAgICAgICBpbnQgbnMgPSAoaW50KSgoZmxvYXQpKDEwMDAwMDApICogKGZsb2F0KWVsYXBzZWRUaW1lIC8gKGZsb2F0KWdDb3VudCk7CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJpbmFyeSBzZWFyY2g6ICB0b3RhbCAjIG9mIHN0cmluZyBjb21wYXJlcyA9ICIgKyBnQ291bnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiaW5hcnkgc2VhcmNoOiAgY29tcGFyZXMgcGVyIGxvb3AgPSAiICsgZ0NvdW50IC8gbG9vcHMpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiaW5hcnkgc2VhcmNoOiAgdGltZSBwZXIgY29tcGFyZSA9ICIgKyBucyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obnMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogICBkb0tleUdlbigpICAgICBLZXkgR2VuZXJhdGlvbiBUaW1pbmcgVGVzdAorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvS2V5R2VuKCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFkanVzdCBsb29wIGNvdW50IHRvIGNvbXBlbnNhdGUgZm9yIGZpbGUgc2l6ZS4gICBTaG91bGQgYmUgb3JkZXIgbgorICAgICAgICBkb3VibGUgZExvb3BDb3VudCA9IG9wdF9sb29wQ291bnQgKiAoMTAwMC4wIC8gIChkb3VibGUpbGlzdC5zaXplKCkpOworICAgICAgICBpbnQgYWRqX2xvb3BDb3VudCA9IChpbnQpZExvb3BDb3VudDsKKyAgICAgICAgaWYgKGFkal9sb29wQ291bnQgPCAxKSBhZGpfbG9vcENvdW50ID0gMTsKKworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIGxvbmcgdG90YWxLZXlMZW4gPSAwOworICAgICAgICBsb25nIHRvdGFsQ2hhcnMgPSAwOworICAgICAgICBpZiAob3B0X2phdmEpIHsKKyAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgZm9yIChpbnQgbG9vcHM9MDsgbG9vcHM8YWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGxpbmU9MDsgbGluZSA8IHRlc3RzLmxlbmd0aDsgbGluZSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlMb29wPTA7IGlMb29wIDwgb3B0X2lMb29wQ291bnQ7IGlMb29wKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgKz0gdGVzdHNbbGluZV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gc29ydEtleSA9IGphdmFDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2xpbmVdKS50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxLZXlMZW4gKz0gc29ydEtleS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGxvb3BzPTA7IGxvb3BzPGFkal9sb29wQ291bnQ7IGxvb3BzKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsaW5lPTA7IGxpbmUgPCB0ZXN0cy5sZW5ndGg7IGxpbmUrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpTG9vcD0wOyBpTG9vcCA8IG9wdF9pTG9vcENvdW50OyBpTG9vcCsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzICs9IHRlc3RzW2xpbmVdLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHNvcnRLZXkgPSBpY3VDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2xpbmVdKS50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxLZXlMZW4gKz0gc29ydEtleS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvbmcgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgbG9uZyBucyA9IChsb25nKSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoYWRqX2xvb3BDb3VudCAqIHRlc3RzLmxlbmd0aCArIDAuMCkpOworICAgICAgICBpZiAoIW9wdF90ZXJzZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTb3J0IEtleSBHZW5lcmF0aW9uOiAgdG90YWwgIyBvZiBrZXlzID0iICsgYWRqX2xvb3BDb3VudCAqIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvcnQgS2V5IEdlbmVyYXRpb246ICB0aW1lIHBlciBrZXkgPSAiICsgbnMgKyAiIG5zIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIktleSBMZW5ndGggLyBjaGFyYWN0ZXIgPSAiICsgbmYuZm9ybWF0KHRvdGFsS2V5TGVuIC8gKHRvdGFsQ2hhcnMgKyAwLjApKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG5zICsgIiwgICIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG5mLmZvcm1hdCh0b3RhbEtleUxlbiAvICh0b3RhbENoYXJzICsgMC4wKSkgKyAiLCAiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqICAgIGRvS2V5SGlzdCgpICAgICAgIE91dHB1dCBhIHRhYmxlIG9mIGRhdGEgZm9yIGF2ZXJhZ2Ugc29ydCBrZXkgc2l6ZSB2cy4gc3RyaW5nIGxlbmd0aC4KKyAgICAgKgorICAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICovCisgICAgdm9pZCBkb0tleUhpc3QoKSB7CisgICAgICAgIGNhbGxHQygpOworICAgICAgICBpbnQgICAgIG1heExlbiA9IDA7CisKKyAgICAgICAgLy8gRmluZCB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0ZXN0c1tpXS5sZW5ndGgoKSA+IG1heExlbikgbWF4TGVuID0gdGVzdHNbaV0ubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludFtdIGFjY3VtdWxhdGVkTGVuICA9IG5ldyBpbnRbbWF4TGVuICsgMV07CisgICAgICAgIGludFtdIG51bUtleXNPZlNpemUgICA9IG5ldyBpbnRbbWF4TGVuICsgMV07CisgICAgICAgIAorICAgICAgICAvLyBGaWxsIHRoZSBhcnJheXMuLi4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50IGxlbiA9IHRlc3RzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRMZW5bbGVuXSArPSBpY3VDb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3RzW2ldKS50b0J5dGVBcnJheSgpLmxlbmd0aDsKKyAgICAgICAgICAgIG51bUtleXNPZlNpemVbbGVuXSAgKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQW5kIHdyaXRlIG91dCBhdmVyYWdlcworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyBMZW5ndGgsICBBdmcgS2V5IExlbmd0aCwgIEF2ZyBLZXkgTGVuIHBlciBjaGFyIik7CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1heExlbjsgaSsrKSB7CisgICAgICAgICAgICBpZiAobnVtS2V5c09mU2l6ZVtpXSA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICIsICIgKyBuZi5mb3JtYXQoYWNjdW11bGF0ZWRMZW5baV0gLyAobnVtS2V5c09mU2l6ZVtpXSsgMC4wKSkgKyAiLCAiIAorICAgICAgICAgICAgICAgICAgICArIG5mLmZvcm1hdChhY2N1bXVsYXRlZExlbltpXSAvIChudW1LZXlzT2ZTaXplW2ldICogaSArIDAuMCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgdm9pZCBkb0ZvcndhcmRJdGVyVGVzdCgpIHsKKyAgICAgICAgY2FsbEdDKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG5QZXJmb3JtaW5nIGZvcndhcmQgaXRlcmF0aW9uIHBlcmZvcm1hbmNlIHRlc3Qgd2l0aCAiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwZXJmb3JtYW5jZSB0ZXN0IG9uIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIAorICAgICAgICBpbnQgZ0NvdW50ID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGxpbmVjb3VudCA9IDA7CisgICAgICAgICAgICB3aGlsZSAobGluZWNvdW50IDwgdGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlc3RzW2xpbmVjb3VudF07CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lICsgIiBtcyIpOworICAgICAgICAKKyAgICAgICAgLy8gZW1wdHkgbG9vcCByZWNhbGN1bGF0aW9uCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsgCisgICAgICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBlbGFwc2VkVGltZSAtPSAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKworICAgICAgICBpbnQgbnMgPSAoaW50KSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoZ0NvdW50ICsgMC4wKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgbnVtYmVyIG9mIHN0cmluZ3MgY29tcGFyZWQgIiArIHRlc3RzLmxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJpbiAiICsgb3B0X2xvb3BDb3VudCArICIgbG9vcHMiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBdmVyYWdlIHRpbWUgcGVyIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5uZXh0KCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBza2lwcGVkLTUgY29uY2F0ZW5hdGVkIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdG90YWxTdHIgPSAiIjsKKyAgICAgICAgaW50ICAgIHN0cmxlbiA9IDA7CisgICAgICAgIC8vIGFwcGVuZGluZyBhbGwgdGhlIHN0cmluZ3MKKyAgICAgICAgaW50IGxpbmVjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRvdGFsU3RyICs9IHRlc3RzW2xpbmVjb3VudF07CisgICAgICAgICAgICBzdHJsZW4gKz0gdGVzdHNbbGluZWNvdW50XS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIHNpemUgb2Ygc3RyaW5ncyAiICsgc3RybGVuKTsKKyAgICAgICAgCisgICAgICAgIGdDb3VudCA9IDA7CisgICAgICAgIGNvdW50ICA9IDA7CisgICAgICAgIGl0ZXIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRvdGFsU3RyKTsKKyAgICAgICAgc3RybGVuIC09IDU7IC8vIGFueSBsZWZ0IG92ZXIgY2hhcmFjdGVycyBhcmUgbm90IGl0ZXJhdGVkLAorICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhlIGJhY2t3YXJkcyBhbmQgZm9yd2FyZHMgaXRlcmF0b3JzCisgICAgICAgICAgICAgICAgICAgICAvLyBnZXRzIHRoZSBzYW1lIHBvc2l0aW9uCisgICAgICAgIGludCBzdHJpbmRleCA9IDA7CisgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgY291bnQ1ID0gNTsKKyAgICAgICAgICAgIHN0cmluZGV4ID0gMDsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZXIubmV4dCgpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgIGNvdW50NSAtLTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmRleCA+IHN0cmxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjb3VudDUgPSA1OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBpbnQgdGVtcGdDb3VudCA9IDA7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBjb3VudDUgPSA1OworICAgICAgICAgICAgc3RyaW5kZXggPSAwOworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICB0ZW1wZ0NvdW50ICsrOworICAgICAgICAgICAgICAgIGNvdW50NSAtLTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmRleCA+IHN0cmxlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjb3VudDUgPSA1OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnQ291bnQgIiArIGdDb3VudCk7CisgICAgICAgIG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdDb3VudCArIDAuMCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQoKSBuYW5vIHNlY29uZHMgIiArIG5zKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBkb0JhY2t3YXJkSXRlclRlc3QoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuXG5QZXJmb3JtaW5nIGJhY2t3YXJkIGl0ZXJhdGlvbiBwZXJmb3JtYW5jZSB0ZXN0IHdpdGggIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBzdHJpbmdzIGZyb20gZmlsZSAtLS0tLS0tLS0tLVxuIik7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIiIpOworICAgICAgICAKKyAgICAgICAgaW50IGdDb3VudCA9IDA7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBsaW5lY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSB0ZXN0c1tsaW5lY291bnRdOworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLnByZXZpb3VzKCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBlbGFwc2VkVGltZSAtPSAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVsYXBzZWRUaW1lICIgKyBlbGFwc2VkVGltZSArICIgbXMiKTsKKyAgICAgICAgCisgICAgICAgIGludCBucyA9IChpbnQpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChnQ291bnQgKyAwLjApKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2Ygc3RyaW5ncyBjb21wYXJlZCAiICsgdGVzdHMubGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImluICIgKyBvcHRfbG9vcENvdW50ICsgIiBsb29wcyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzKCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicGVyZm9ybWFuY2UgdGVzdCBvbiBza2lwcGVkLTUgY29uY2F0ZW5hdGVkIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tIik7CisgICAgCisgICAgICAgIFN0cmluZyB0b3RhbFN0ciA9ICIiOworICAgICAgICBpbnQgICAgc3RybGVuID0gMDsKKyAgICAgICAgLy8gYXBwZW5kaW5nIGFsbCB0aGUgc3RyaW5ncworICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgdG90YWxTdHIgKz0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgIHN0cmxlbiArPSB0ZXN0c1tsaW5lY291bnRdLmxlbmd0aCgpOworICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgc2l6ZSBvZiBzdHJpbmdzICIgKyBzdHJsZW4pOworICAgICAgICAKKyAgICAgICAgZ0NvdW50ID0gMDsKKyAgICAgICAgY291bnQgID0gMDsKKyAgICAKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodG90YWxTdHIpOworICAgICAgICBpbnQgc3RyaW5kZXggPSAwOworICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGNvdW50NSA9IDU7CisgICAgICAgICAgICBzdHJpbmRleCA9IDU7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGlmIChpdGVyLnByZXZpb3VzKCkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZGV4ICs9IDEwOworICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgCisgICAgICAgIC8vIGVtcHR5IGxvb3AgcmVjYWxjdWxhdGlvbgorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGludCB0ZW1wZ0NvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBjb3VudDUgPSA1OworICAgICAgICAgICAgc3RyaW5kZXggPSA1OworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgdGVtcGdDb3VudCArKzsKKyAgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgICBpZiAoY291bnQ1ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZGV4ICs9IDEwOworICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lKTsKKyAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnQ291bnQgIiArIGdDb3VudCk7CisgICAgICAgIG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdDb3VudCArIDAuMCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzKCkgbmFubyBzZWNvbmRzICIgKyBucyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogICAgZG9JdGVyVGVzdCgpICAgICAgIEl0ZXJhdGlvbiB0ZXN0CisgICAgICoKKyAgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqLworICAgIHZvaWQgZG9JdGVyVGVzdCgpIHsKKyAgICAgICAgZG9Gb3J3YXJkSXRlclRlc3QoKTsKKyAgICAgICAgZG9CYWNrd2FyZEl0ZXJUZXN0KCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0T3B0aW9ucygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfamF2YSkgeworICAgICAgICAgICAgb3B0X2ljdSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X3J1bGVzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWN1Q29sID0gbmV3IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IoZ2V0Q29sbGF0aW9uUnVsZXMob3B0X3J1bGVzKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2Fubm90IG9wZW4gcnVsZXM6IiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGljdUNvbCA9IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUob3B0X2xvY2FsZSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBqYXZhQ29sID0gamF2YS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKG9wdF9sb2NhbGUpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfbm9ybSkgeworICAgICAgICAgICAgamF2YUNvbC5zZXREZWNvbXBvc2l0aW9uKGphdmEudGV4dC5Db2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICBpY3VDb2wuc2V0RGVjb21wb3NpdGlvbihjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9mcmVuY2ggJiYgb3B0X2ZyZW5jaG9mZikgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogc3BlY2lmaWVkIGJvdGggLWZyZW5jaCBhbmQgLWZyZW5jaG9mZiBvcHRpb25zLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2ZyZW5jaCkgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0RnJlbmNoQ29sbGF0aW9uKHRydWUpOworICAgICAgICB9CisgICAgICAgIGlmIChvcHRfZnJlbmNob2ZmKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRGcmVuY2hDb2xsYXRpb24oZmFsc2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2xvd2VyKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRMb3dlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF91cHBlcikgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0VXBwZXJDYXNlRmlyc3QodHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfc2hpZnRlZCkgeworICAgICAgICAgICAgKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2xldmVsICE9IDApIHsKKyAgICAgICAgICAgIHN3aXRjaCAob3B0X2xldmVsKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmFDb2wuc2V0U3RyZW5ndGgoamF2YS50ZXh0LkNvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDIgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGljdUNvbC5zZXRTdHJlbmd0aChjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDMgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGljdUNvbC5zZXRTdHJlbmd0aChjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA1IDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmFDb2wuc2V0U3RyZW5ndGgoamF2YS50ZXh0LkNvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpY3VDb2wuc2V0U3RyZW5ndGgoY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCItbGV2ZWwgcGFyYW0gbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDVcbiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBsb2FkIGNsYXNzZXMgYXQgbGVhc3Qgb25jZSBiZWZvcmUgc3RhcnRpbmcKKyAgICAgICAgamF2YUNvbC5jb21wYXJlKCJhIiwgImIiKTsKKyAgICAgICAgaWN1Q29sLmNvbXBhcmUoImEiLCAiYiIpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiBwcm9jZXNzT3B0aW9ucyhTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBhcmdOdW07CisgICAgICAgIGZvciAoYXJnTnVtID0wOyBhcmdOdW0gPCBhcmdzLmxlbmd0aDsgYXJnTnVtKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChhcmdzW2FyZ051bV0uZXF1YWxzSWdub3JlQ2FzZShvcHRpb25zW2ldLm5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uc1tpXS50eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0udmFsdWUuZGVsZXRlKDAsIG9wdGlvbnNbaV0udmFsdWUuY2FwYWNpdHkoKSkuYXBwZW5kKCJ0cnVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdOdW0rKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChhcmdOdW0gPj0gYXJncy5sZW5ndGgpIHx8IChhcmdzW2FyZ051bV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInZhbHVlIGV4cGVjdGVkIGZvciIrIG9wdGlvbnNbaV0ubmFtZSArIm9wdGlvbi5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGludCB2YWx1ZSA9Ki8gSW50ZWdlci5wYXJzZUludChhcmdzW2FyZ051bV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXS52YWx1ZS5kZWxldGUoMCwgb3B0aW9uc1tpXS52YWx1ZS5jYXBhY2l0eSgpKS5hcHBlbmQoYXJnc1thcmdOdW1dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhwZWN0ZWQ6IGEgbnVtYmVyIHZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdOdW0rKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChhcmdOdW0gPj0gYXJncy5sZW5ndGgpIHx8IChhcmdzW2FyZ051bV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInZhbHVlIGV4cGVjdGVkIGZvciIrIG9wdGlvbnNbaV0ubmFtZSArIm9wdGlvbi5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbaV0udmFsdWUuZGVsZXRlKDAsIG9wdGlvbnNbaV0udmFsdWUuY2FwYWNpdHkoKSkuYXBwZW5kKGFyZ3NbYXJnTnVtXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJPcHRpb24gdHlwZSBlcnJvcjoge0ZMQUc9MCwgTlVNPTEsIFNUUklORz0yfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9wdF9mTmFtZSAgICAgID0gdGVtcF9vcHRfZk5hbWUudG9TdHJpbmcoKTsKKyAgICAgICAgb3B0X2xvY2FsZSAgICAgPSB0ZW1wX29wdF9sb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgb3B0X3J1bGVzICAgICAgPSB0ZW1wX29wdF9ydWxlcy50b1N0cmluZygpOworICAgICAgICBpZiAodGVtcF9vcHRfaGVscC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2hlbHAgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG9wdF9sb29wQ291bnQgID0gSW50ZWdlci5wYXJzZUludCh0ZW1wX29wdF9sb29wQ291bnQudG9TdHJpbmcoKSk7CisgICAgICAgIG9wdF9pTG9vcENvdW50ID0gSW50ZWdlci5wYXJzZUludCh0ZW1wX29wdF9pTG9vcENvdW50LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAodGVtcF9vcHRfdGVyc2UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF90ZXJzZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3Fzb3J0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfcXNvcnQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9iaW5zZWFyY2gudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9iaW5zZWFyY2ggPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9pY3UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9pY3UgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF91c2VrZXlzLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfdXNla2V5cyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3N0cmNtcC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3N0cmNtcCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3N0cmNtcENQTy50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3N0cmNtcENQTyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2tleWdlbi50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2tleWdlbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X25vcm0udG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9ub3JtID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfZnJlbmNoLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZnJlbmNoID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfZnJlbmNob2ZmLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZnJlbmNob2ZmID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfc2hpZnRlZC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3NoaWZ0ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9sb3dlci50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2xvd2VyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfdXBwZXIudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF91cHBlciA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2Nhc2UudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9jYXNlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBvcHRfbGV2ZWwgICAgICA9IEludGVnZXIucGFyc2VJbnQodGVtcF9vcHRfbGV2ZWwudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICh0ZW1wX29wdF9rZXloaXN0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfa2V5aGlzdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2l0ZXJ0ZXN0LnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfaXRlcnRlc3QgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9kdW1wLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfZHVtcCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2phdmEudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9qYXZhID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEludm9rZSB0aGUgcnVudGltZSdzIGdhcmJhZ2UgY29sbGVjdGlvbiBwcm9jZWR1cmUgcmVwZWF0ZWRseQorICAgICAqIHVudGlsIHRoZSBhbW91bnQgb2YgZnJlZSBtZW1vcnkgc3RhYmlsaXplcyB0byB3aXRoaW4gMTAlLgorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2FsbEdDKCkgeworICAgICAgICAvLyBGcm9tICJKYXZhIFBsYXRmb3JtIFBlcmZvcm1hbmNlIi4gIFRoaXMgaXMgdGhlIHByb2NlZHVyZQorICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBKYXZhc29mdC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgICAgICBTeXN0ZW0ucnVuRmluYWxpemF0aW9uKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBuZWVkQ1JMRiA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBpbnQgRE9UTUFTSyA9IDB4N0ZGOworIAorICAgIHZvaWQgZG90KGludCBpKSB7CisgICAgICAgIGlmICgoaSAlIERPVE1BU0spID09IDApIHsKKyAgICAgICAgICAgIG5lZWRDUkxGID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIEkgZG8gbm90IGtub3cgd2h5IHByaW50IHRoZSBkb3QgaGVyZQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KCcuJyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIHJlYWREYXRhTGluZShCdWZmZXJlZFJlYWRlciBicikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbExpbmUgPSAiIjsKKyAgICAgICAgU3RyaW5nIGxpbmUgPSAiIjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsaW5lID0gb3JpZ2luYWxMaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09IDB4RkVGRikgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgaW50IGNvbW1lbnRQb3MgPSBsaW5lLmluZGV4T2YoJyMnKTsKKyAgICAgICAgICAgIGlmIChjb21tZW50UG9zID49IDApIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBjb21tZW50UG9zKTsKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkxpbmUgXCJ7MH1cIiwgIFwiezF9XCIiICsgb3JpZ2luYWxMaW5lICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGluZSArICIgIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorICAgIAorICAgIHZvaWQgcmVhZERhdGFMaW5lcygpIHsKKyAgICAgICAgLy8gUmVhZCBpbiAgdGhlIGlucHV0IGZpbGUuCisgICAgICAgIC8vICAgRmlsZSBhc3N1bWVkIHRvIGJlIHV0Zi0xNi4KKyAgICAgICAgLy8gICBMaW5lcyBnbyBvbnRvIGhlYXAgYnVmZmVycy4gIEdsb2JhbCBpbmRleCBhcnJheSB0byBsaW5lIHN0YXJ0cyBpcyBjcmVhdGVkLgorICAgICAgICAvLyAgIExpbmVzIHRoZW1zZWx2ZXMgYXJlIG51bGwgdGVybWluYXRlZC4KKyAgICAgICAgLy8KKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0ob3B0X2ZOYW1lKTsKKyAgICAgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsICJVVEYtOCIpOworICAgICAgICAgICAgYnI9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IsIDMyKjEwMjQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogRmlsZSBhY2Nlc3MgZXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiISIpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBjb3VudGVyID0gMDsKKyAgICAgICAgCisgICAgICAgIGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxpbmUgPSByZWFkRGF0YUxpbmUoYnIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYWQgRmlsZSBFcnJvciIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBkb3QoY291bnRlcisrKTsKKyAgICAgICAgICAgIGxpc3QuYWRkKGxpbmUpOworICAgICAgICB9CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWQgIiArIGNvdW50ZXIgKyAiIGxpbmVzIGluIGZpbGUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHNpemUgPSBsaXN0LnNpemUoKTsKKyAgICAgICAgdGVzdHMgPSBuZXcgU3RyaW5nIFtzaXplXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICB0ZXN0c1tpXSA9IChTdHJpbmcpIGxpc3QuZ2V0KGkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgQ29sbGF0b3IgUnVsZXMKKyAgICAgKiBUaGUgUnVsZSBGaWxlIGZvcm1hdDoKKyAgICAgKiAxLiBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlcyB3aWxsIGJlIG9taXR0ZWQKKyAgICAgKiAyLiBsaW5lcyB3aXRoIHRoZSBsZWFkaW5nIGNoYXJhY3RlciAnIycgd2lsbCBiZSB0cmVhdGVkIGFzIGNvbW1lbnRzCisgICAgICogMy4gRmlsZSBlbmNvZGluZyBpcyBJU08tODg1OS0xCisgICAgICovCisgICAgU3RyaW5nIGdldENvbGxhdGlvblJ1bGVzKFN0cmluZyBydWxlRmlsZU5hbWUpIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0ob3B0X3J1bGVzKTsKKyAgICAgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsIklTTy04ODU5LTEiKTsKKyAgICAgICAgICAgIGJyPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6IEZpbGUgYWNjZXNzIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlcyA9ICIiOworICAgICAgICBTdHJpbmcgbGluZSA9ICIiOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBsaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYWQgRmlsZSBFcnJvciIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgY29tbWVudFBvcyA9IGxpbmUuaW5kZXhPZignIycpOworICAgICAgICAgICAgaWYgKGNvbW1lbnRQb3MgPj0gMCkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbW1lbnRQb3MpOworICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOworICAgICAgICAgICAgcnVsZXMgPSBydWxlcyArIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVzOworICAgIH0KKyAgICAKKyAgICAvL0ltcGxlbWVudGluZyBxc29ydAorICAgIHZvaWQgcVNvcnRJbXBsX2phdmFfdXNla2V5cyhTdHJpbmcgc3JjW10sIGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBqYXZhLnRleHQuQ29sbGF0b3IgYykgeworICAgICAgICBpbnQgbG93ID0gZnJvbUluZGV4OworICAgICAgICBpbnQgaGlnaCA9IHRvSW5kZXg7CisgICAgICAgIFN0cmluZyBtaWRkbGUgPSAiIjsKKyAgICAgICAgaWYgKGhpZ2ggPiBsb3cpIHsKKyAgICAgICAgICAgIG1pZGRsZSA9IHNyY1sgKGxvdyArIGhpZ2gpIC8gMiBdOworICAgICAgICAgICAgd2hpbGUobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSgobG93IDwgdG9JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2xvd10pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2hpZ2hdKSwgYy5nZXRDb2xsYXRpb25LZXkobWlkZGxlKSkgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzd2FwID0gc3JjW2xvd107CisgICAgICAgICAgICAgICAgICAgIHNyY1tsb3ddID0gc3JjW2hpZ2hdOworICAgICAgICAgICAgICAgICAgICBzcmNbaGlnaF0gPSBzd2FwOworICAgICAgICAgICAgICAgICAgICArK2xvdzsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGZyb21JbmRleCA8IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfamF2YV91c2VrZXlzKHNyYywgZnJvbUluZGV4LCBoaWdoLCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG93IDwgdG9JbmRleCkgeworICAgICAgICAgICAgICAgIHFTb3J0SW1wbF9qYXZhX3VzZWtleXMoc3JjLCBsb3csIHRvSW5kZXgsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgcVNvcnRJbXBsX2ljdV91c2VrZXlzKFN0cmluZyBzcmNbXSwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IgYykgeworICAgICAgICBpbnQgbG93ID0gZnJvbUluZGV4OworICAgICAgICBpbnQgaGlnaCA9IHRvSW5kZXg7CisgICAgICAgIFN0cmluZyBtaWRkbGUgPSAiIjsKKyAgICAgICAgaWYgKGhpZ2ggPiBsb3cpIHsKKyAgICAgICAgICAgIG1pZGRsZSA9IHNyY1sgKGxvdyArIGhpZ2gpIC8gMiBdOworICAgICAgICAgICAgd2hpbGUobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSgobG93IDwgdG9JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2xvd10pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoYy5nZXRDb2xsYXRpb25LZXkoc3JjW2hpZ2hdKSwgYy5nZXRDb2xsYXRpb25LZXkobWlkZGxlKSkgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzd2FwID0gc3JjW2xvd107CisgICAgICAgICAgICAgICAgICAgIHNyY1tsb3ddID0gc3JjW2hpZ2hdOworICAgICAgICAgICAgICAgICAgICBzcmNbaGlnaF0gPSBzd2FwOworICAgICAgICAgICAgICAgICAgICArK2xvdzsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGZyb21JbmRleCA8IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfaWN1X3VzZWtleXMoc3JjLCBmcm9tSW5kZXgsIGhpZ2gsIGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihsb3cgPCB0b0luZGV4KSB7CisgICAgICAgICAgICAgICAgcVNvcnRJbXBsX2ljdV91c2VrZXlzKHNyYywgbG93LCB0b0luZGV4LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHFTb3J0SW1wbF9ub2tleXMoU3RyaW5nIHNyY1tdLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgQ29tcGFyYXRvciBjKSB7CisgICAgICAgIGludCBsb3cgPSBmcm9tSW5kZXg7CisgICAgICAgIGludCBoaWdoID0gdG9JbmRleDsKKyAgICAgICAgU3RyaW5nIG1pZGRsZSA9ICIiOworICAgICAgICBpZiAoaGlnaCA+IGxvdykgeworICAgICAgICAgICAgbWlkZGxlID0gc3JjWyAobG93ICsgaGlnaCkgLyAyIF07CisgICAgICAgICAgICB3aGlsZShsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgIHdoaWxlKChsb3cgPCB0b0luZGV4KSAmJiAoY29tcGFyZShzcmNbbG93XSwgbWlkZGxlLCBjKSA8IDApKSB7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSgoaGlnaCA+IGZyb21JbmRleCkgJiYgKGNvbXBhcmUoc3JjW2hpZ2hdLCBtaWRkbGUsIGMpID4gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3dhcCA9IHNyY1tsb3ddOworICAgICAgICAgICAgICAgICAgICBzcmNbbG93XSA9IHNyY1toaWdoXTsKKyAgICAgICAgICAgICAgICAgICAgc3JjW2hpZ2hdID0gc3dhcDsKKyAgICAgICAgICAgICAgICAgICAgKytsb3c7CisgICAgICAgICAgICAgICAgICAgIC0taGlnaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihmcm9tSW5kZXggPCBoaWdoKSB7CisgICAgICAgICAgICAgICAgcVNvcnRJbXBsX25va2V5cyhzcmMsIGZyb21JbmRleCwgaGlnaCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvdyA8IHRvSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfbm9rZXlzKHNyYywgbG93LCB0b0luZGV4LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpbnQgY29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb21wYXJhdG9yIGMpIHsKKyAgICAgICAgZ2xvYmFsQ291bnQrKzsKKyAgICAgICAgcmV0dXJuIGMuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorICAgIAorICAgIGludCBjb21wYXJlKGphdmEudGV4dC5Db2xsYXRpb25LZXkgc291cmNlLCBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICBnbG9iYWxDb3VudCsrOworICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgIH0KKyAgICAKKyAgICBpbnQgY29tcGFyZShjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleSBzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICBnbG9iYWxDb3VudCsrOworICAgICAgICByZXR1cm4gc291cmNlLmNvbXBhcmVUbyh0YXJnZXQpOworICAgIH0gCisgICAgCisgICAgLy9DbGFzcyBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbgorICAgIHN0YXRpYyBjbGFzcyBPcHRpb25TcGVjIHsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIGludCB0eXBlOworICAgICAgICBTdHJpbmdCdWZmZXIgdmFsdWU7CisgICAgICAgIHB1YmxpYyBPcHRpb25TcGVjKFN0cmluZyBuYW1lLCBpbnQgdHlwZSwgU3RyaW5nQnVmZmVyIHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9EYXRhc2V0LnBtIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvRGF0YXNldC5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTA4ZWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvRGF0YXNldC5wbQpAQCAtMCwwICsxLDg2IEBACisjLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KK3BhY2thZ2UgRGF0YXNldDsKK3VzZSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTsKK3VzZSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOwordXNlIHN0cmljdDsKKworIyBDcmVhdGUgYSBuZXcgRGF0YXNldCB3aXRoIHRoZSBnaXZlbiBkYXRhLgorc3ViIG5ldyB7CisgICAgbXkgKCRjbGFzcykgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IGJsZXNzIHsKKyAgICAgICAgX2RhdGEgPT4gXEBfLAorICAgICAgICBfc2NhbGUgPT4gMS4wLAorICAgICAgICBfbWVhbiA9PiAwLjAsCisgICAgICAgIF9lcnJvciA9PiAwLjAsCisgICAgfSwgJGNsYXNzOworCisgICAgbXkgJG4gPSBAXzsKKyAgICAKKyAgICBpZiAoJG4gPj0gMSkgeworICAgICAgICBteSAkc3RhdHMgPSBTdGF0aXN0aWNzOjpEZXNjcmlwdGl2ZTo6RnVsbC0+bmV3KCk7CisgICAgICAgICRzdGF0cy0+YWRkX2RhdGEoQHskc2VsZi0+e19kYXRhfX0pOworICAgICAgICAkc2VsZi0+e19tZWFufSA9ICRzdGF0cy0+bWVhbigpOworCisgICAgICAgIGlmICgkbiA+PSAyKSB7CisgICAgICAgICAgICAjIFVzZSBhIHQgZGlzdHJpYnV0aW9uIHJhdGhlciB0aGFuIEdhdXNzaWFuIGJlY2F1c2UgKGEpIHdlCisgICAgICAgICAgICAjIGFzc3VtZSBhbiB1bmRlcmx5aW5nIG5vcm1hbCBkaXN0LCAoYikgd2UgZG8gbm90IGtub3cgdGhlCisgICAgICAgICAgICAjIHN0YW5kYXJkIGRldmlhdGlvbiAtLSB3ZSBlc3RpbWF0ZSBpdCBmcm9tIHRoZSBkYXRhLCBhbmQgKGMpCisgICAgICAgICAgICAjIHdlIE1BWSBoYXZlIGEgc21hbGwgc2FtcGxlIHNpemUgKGFsc28gd29ya3MgZm9yIGxhcmdlIG4pLgorICAgICAgICAgICAgbXkgJHQgPSBTdGF0aXN0aWNzOjpEaXN0cmlidXRpb25zOjp0ZGlzdHIoJG4tMSwgMC4wMDUpOworICAgICAgICAgICAgJHNlbGYtPntfZXJyb3J9ID0gJHQgKiAkc3RhdHMtPnN0YW5kYXJkX2RldmlhdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgJHNlbGY7Cit9CisKKyMgU2V0IGEgc2NhbGluZyBmYWN0b3IgZm9yIGFsbCBkYXRhOyAxLjAgbWVhbnMgbm8gc2NhbGluZy4KKyMgU2NhbGUgbXVzdCBiZSA+IDAuCitzdWIgc2V0U2NhbGUgeworICAgIG15ICgkc2VsZiwgJHNjYWxlKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSA9ICRzY2FsZTsKK30KKworIyBNdWx0aXBseSB0aGUgc2NhbGluZyBmYWN0b3IgYnkgYSB2YWx1ZS4KK3N1YiBzY2FsZUJ5IHsKKyAgICBteSAoJHNlbGYsICRhKSA9IEBfOworICAgICRzZWxmLT57X3NjYWxlfSAqPSAkYTsKK30KKworIyBSZXR1cm4gdGhlIG1lYW4uCitzdWIgZ2V0TWVhbiB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfbWVhbn0gKiAkc2VsZi0+e19zY2FsZX07Cit9CisKKyMgUmV0dXJuIGEgOTklIGVycm9yIGJhc2VkIG9uIHRoZSB0IGRpc3RyaWJ1dGlvbi4gIFRoZSBkYXRhc2V0CisjIGlzIGRlc3JpYmVkIGFzIGdldE1lYW4oKSArLy0gZ2V0RXJyb3IoKS4KK3N1YiBnZXRFcnJvciB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntfZXJyb3J9ICogJHNlbGYtPntfc2NhbGV9OworfQorCisjIERpdmlkZSB0d28gRGF0YXNldHMgYW5kIHJldHVybiBhIG5ldyBvbmUsIG1haW50YWluaW5nIHRoZQorIyBtZWFuKy8tZXJyb3IuICBUaGUgbmV3IERhdGFzZXQgaGFzIG5vIGRhdGEgcG9pbnRzLgorc3ViIGRpdmlkZSB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcmhzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJG1pbnJhdGlvID0gKCRzZWxmLT57X21lYW59IC0gJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gKyAkcmhzLT57X2Vycm9yfSk7CisgICAgbXkgJG1heHJhdGlvID0gKCRzZWxmLT57X21lYW59ICsgJHNlbGYtPntfZXJyb3J9KSAvCisgICAgICAgICAgICAgICAgICAgKCRyaHMtPntfbWVhbn0gLSAkcmhzLT57X2Vycm9yfSk7CisKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICgkbWlucmF0aW8gKyAkbWF4cmF0aW8pIC8gMjsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRyZXN1bHQtPntfbWVhbn0gLSAkbWlucmF0aW87CisgICAgJHJlc3VsdC0+e19zY2FsZX0gPSAkc2VsZi0+e19zY2FsZX0gLyAkcmhzLT57X3NjYWxlfTsKKyAgICAkcmVzdWx0OworfQorCisxOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OTk2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Ob3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSw2NTEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIE5vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QgZXh0ZW5kcyBQZXJmVGVzdCB7CisgICAgCisgICAgU3RyaW5nW10gTkZERmlsZUxpbmVzOworICAgIFN0cmluZ1tdIE5GQ0ZpbGVMaW5lczsKKyAgICBTdHJpbmdbXSBmaWxlTGluZXM7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOb3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGlmKGJ1bGtfbW9kZSA9PSBsaW5lX21vZGUpeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9CisgICAgICAgIGlmIChmaWxlTmFtZS5lcXVhbHNJZ25vcmVDYXNlKCIiKSl7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZmlsZUxpbmVzID0gcmVhZExpbmVzKGZpbGVOYW1lLCBlbmNvZGluZywgYnVsa19tb2RlKTsKKyAgICAgICAgTkZERmlsZUxpbmVzID0gbm9ybWFsaXplSW5wdXQoZmlsZUxpbmVzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIE5GQ0ZpbGVMaW5lcyA9IG5vcm1hbGl6ZUlucHV0KGZpbGVMaW5lcywgTm9ybWFsaXplci5ORkMpOworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GQyBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZDX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkNfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GQ19PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkRfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKy8qKiBJIHJlYWxseSB3aXNoIHRoZXJlIHdhcyBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbiBKYXZhICAgICAgCisgICAgICAgIC8vIFRlc3QgTkZDIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkNfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZDX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gc3VuLnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoTkZDRmlsZUxpbmVzW2ldLCBzdW4udGV4dC5Ob3JtYWxpemVyLkNPTVBPU0UsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5mYyA9IHN1bi50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgc3VuLnRleHQuTm9ybWFsaXplci5DT01QT1NFLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IE5GRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gc3VuLnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoTkZERmlsZUxpbmVzW2ldLCBzdW4udGV4dC5Ob3JtYWxpemVyLkRFQ09NUCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkRfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkNGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuREVDT01QLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SkRLX05GRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShmaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuREVDT01QLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAvLyBUZXN0IEZDRCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gTm9ybWFsaXplci5ub3JtYWxpemUoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorKiovICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfRkNEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9GQ0RfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCBRdWljayBDaGVjayBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19ORkNfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZDX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX05GQ19PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX05GRF9ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19GQ0RfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX0ZDRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCBpc05vcm1hbGl6ZWQgUGVyZm9ybWFuY2UKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SXNOb3JtYWxpemVkX05GQ19ORkRfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMsIDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SXNOb3JtYWxpemVkX05GQ19ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfRkNEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QsIDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAgIAorICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiAiICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgW09QVElPTlNdIGZpbGVOYW1lXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQtZiBvciAtLWZpbGVOYW1lICBcdGZpbGUgdG8gYmUgdXNlZCBhcyB0ZXN0IGRhdGFcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdC1zIG9yIC0tc291cmNlRGlyIFx0c291cmNlIGRpcmVjdG9yeSBmb3IgZmlsZXMgZm9sbG93ZWQgYnkgcGF0aFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LWUgb3IgLS1lbmNvZGluZyAgXHRlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXNcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdC1iIG9yIC0tYnVsa01vZGUgIFx0bm9ybWFsaXplIHdob2xlIGZpbGUgYXQgb25jZVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LWwgb3IgLS1saW5lTW9kZSAgXHRub3JtYWxpemUgZmlsZSBvbmUgbGluZSBhdCBhIHRpbWVcbiIKKyAgICAgICAgICAgICk7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KKyAgICBTdHJpbmdbXSBub3JtYWxpemVJbnB1dChTdHJpbmdbXSBzcmMsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIFN0cmluZ1tdIGRlc3QgPSBuZXcgU3RyaW5nW3NyYy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZGVzdFtpXSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNyY1tpXSwgbW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1BlcmZUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9QZXJmVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZTEzODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9QZXJmVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzU0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLlVPcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCisvKioKKyAqIEJhc2UgY2xhc3MgZm9yIHBlcmZvcm1hbmNlIHRlc3RpbmcgZnJhbWV3b3JrLiBUbyB1c2UsIHRoZSBzdWJjbGFzcyBjYW4gc2ltcGx5CisgKiBkZWZpbmUgb25lIG9yIG1vcmUgaW5zdGFuY2UgbWV0aG9kcyB3aXRoIG5hbWVzIGJlZ2lubmluZyB3aXRoICJ0ZXN0IiAoY2FzZQorICogaWdub3JlZCkuIFRoZSBwcm90b3R5cGUgb2YgdGhlIG1ldGhvZCBpcworICogCisgKiBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0VGhlTmFtZSgpCisgKiAKKyAqIFRoZSBhY3R1YWwgcGVyZm9ybWFuY2UgdGVzdCB3aWxsIGV4ZWN1dGUgb24gdGhlIHJldHVybmVkIENvbW1vbmQgb2JqZWN0CisgKiAocmVmZXIgdG8gQ29tbWFuZCBQYXR0ZXJuKS4gVG8gY2FsbCBhIHRlc3QgZnJvbSBjb21tYW5kIGxpbmUsIHRoZSAndGVzdCcKKyAqIHByZWZpeCBvZiB0aGUgdGVzdCBtZXRob2QgbmFtZSBjYW4gYmUgaWdub3JlZC9yZW1vdmVkLgorICogCisgKiBJbiBhZGRpdGlvbiwgdGhlIHN1YmNsYXNzIHNob3VsZCBkZWZpbmUgYSBtYWluKCkgbWV0aG9kIHRoYXQgY2FsbHMKKyAqIFBlcmZUZXN0LnJ1bigpIGFzIGRlZmluZWQgaGVyZS4KKyAqIAorICogSWYgdGhlIHN1YmNsYXNzZXMgdXNlcyBhbnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyAoYmV5b25kIHRob3NlIGhhbmRsZWQKKyAqIGF1dG9tYXRpY2FsbHkgYnkgdGhpcyBjYWxzcykgdGhlbiBpdCBzaG91bGQgb3ZlcnJpZGUgUGVyZlRlc3Quc2V0dXAoKSB0bworICogaGFuZGxlIGl0cyBhcmd1bWVudHMuIElmIHRoZSBzdWJjbGFzc2UgbmVlZHMgbW9yZSBzb3BoaXN0aWNhdGVkIG1hbmFnZW1lbnQKKyAqIGZvciBjb250cm9sbGluZyBmaW5kaW5nL2NhbGxpbmcgdGVzdCBtZXRob2QsIGl0IGNhbiByZXBsYWNlIHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBmb3IgUGVyZlRlc3QudGVzdFByb3ZpZGVyIGJlZm9yZSBjYWxsaW5nIFBlcmZUZXN0LnJ1bigpLgorICogCisgKiBFeGFtcGxlIGludm9jYXRpb246IGphdmEgLWNwIGNsYXNzZXMgLXZlcmJvc2U6Z2MKKyAqIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuVW5pY29kZVNldFBlcmYgLS1nYyAtLXBhc3NlcyA0IC0taXRlcmF0aW9ucyAxMDAKKyAqIFVuaWNvZGVTZXRBZGQgW1s6bDpdWzpjOl1dCisgKiAKKyAqIEV4YW1wbGUgb3V0cHV0OiBbR0MgNTExSy0+MTkySygxOTg0SyksIDAuMDA4NjE3MCBzZWNzXSBbR0MgNzA0Sy0+MzUzSygxOTg0SyksCisgKiAwLjAwNTk2MTkgc2Vjc10gW0Z1bGwgR0MgNjE4Sy0+MzcxSygxOTg0SyksIDAuMDI0Mjc3OSBzZWNzXSBbRnVsbCBHQworICogMzcxSy0+MzcxSygxOTg0SyksIDAuMDIyODY0OSBzZWNzXSA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5NzcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTIwNDcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5ODcgMTEwOTA0NCA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMCA9CisgKiB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTE5NzggMTEwOTA0NAorICogCisgKiBUaGUgW10gbGluZXMgYXJlIGVtaXR0ZWQgYnkgdGhlIEpWTSBhcyBhIHJlc3VsdCBvZiB0aGUgLXZlcmJvc2U6Z2Mgc3dpdGNoLgorICogCisgKiBMaW5lcyBiZWdpbm5pbmcgd2l0aCAnPScgYXJlIGVtaXR0ZWQgYnkgUGVyZlRlc3Q6ID0gdGVzdFVuaWNvZGVTZXRBZGQgYmVnaW4KKyAqIDEwMCBBICdiZWdpbicgc3RhdGVtZW50IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBzZXR1cCBtZXRob2QsIHdoaWNoCisgKiBkZXRlcm1pbmVzIHdoYXQgdGVzdCBmdW5jdGlvbiBpcyBtZWFzdXJlcywgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0aGF0CisgKiB3aWxsIGJlIHRpbWVzLiA9IHRlc3RVbmljb2RlU2V0QWRkIGVuZCAxMjA0NyAxMTA5MDQ0IEFuICdlbmQnIHN0YXRlbWVudCBnaXZlcworICogdGhlIG5hbWUgb2YgdGhlIHNldHVwIG1ldGhvZCBhZ2FpbiwgYW5kIHRoZW4gdHdvIGludGVnZXJzLiBUaGUgZmlyc3QgaXMgdGhlCisgKiB0b3RhbCBlbGFwc2VkIHRpbWUgaW4gbWlsbGlzZWNvbmRzLCBhbmQgdGhlIHNlY29uZCBpcyB0aGUgbnVtYmVyIG9mIGV2ZW50cworICogcGVyIGl0ZXJhdGlvbi4gSW4gdGhpcyBleGFtcGxlLCB0aGUgdGltZSBwZXIgZXZlbnQgaXMgMTIwNDcgLyAoMTAwICogMTEwOTA0NCkKKyAqIG9yIDEwOC42IG5zL2V2ZW50LgorICogCisgKiBSYXcgdGltZXMgYXJlIGdpdmVuIGFzIGludGVnZXIgbXMsIGJlY2F1c2UgdGhpcyBpcyB3aGF0IHRoZSBzeXN0ZW0gbWVhc3VyZXMuCisgKiAKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBQZXJmVGVzdHsKKyAgICAvLyBDb21tYW5kLWxpbmUgb3B0aW9ucyBzZXQgdGhlc2U6CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHZlcmJvc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyAgICAgICAgIHNvdXJjZURpcjsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZmlsZU5hbWU7CisgICAgLy9wcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgcmVzb2x2ZWRGaWxlTmFtZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZW5jb2Rpbmc7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHVzZWxlbjsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgaXRlcmF0aW9uczsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgcGFzc2VzOworICAgIHByb3RlY3RlZCBpbnQgICAgICAgICAgICB0aW1lOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBsaW5lX21vZGU7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIGJ1bGtfbW9kZTsKKyAgICBwcm90ZWN0ZWQgTG9jYWxlICAgICAgICAgbG9jYWxlOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBkb1ByaW9yR0M7CisgICAgcHJvdGVjdGVkIFRlc3RDbWRQcm92aWRlciB0ZXN0UHJvdmlkZXIgPSBuZXcgVGVzdFByZWZpeFByb3ZpZGVyKHRoaXMpOworICAgIAorICAgIHN0YXRpYyBpbnRlcmZhY2UgVGVzdENtZFByb3ZpZGVyIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEByZXR1cm4gVGhlIG5hbWVzIGZvciBhbGwgYXZhaWxhYmxlIHRlc3QuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2V0IGdldEFsbFRlc3RDbWROYW1lcygpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBuYW1lCisgICAgICAgICAqIEByZXR1cm4gV2hldGhlciB0aGUgZ2l2ZW4gbmFtZSBpcyBhIHRlc3QgbmFtZS4gVGhlIGltcGxlbWVudGF0aW9uIG1heQorICAgICAgICAgKiAgICAgICAgIGhhdmUgbW9yZSBzb3BoaXN0aWNhdGVkIG5hbWluZyBjb250cm9sIGhlcmUuCisgICAgICAgICAqICAgICAgICAgVGVzdENtZFByb3ZpZGVyLmlzVGVzdENtZCgpICE9IFNldC5jb250YWlucygpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1Rlc3RDbWQoU3RyaW5nIG5hbWUpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSBuYW1lCisgICAgICAgICAqIEByZXR1cm4gdGhlIHRlc3QgQ29tbWFuZCBvciBudWxsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUGVyZlRlc3QuRnVuY3Rpb24gZ2V0VGVzdENtZChTdHJpbmcgbmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRyZWF0IGFsbCBtZXRob2QgYmVnaW5uaW5nIHdpdGggJ3Rlc3QnIHByZWZpeCAoaWdub3JpbmcgY2FzZSkKKyAgICAgKiBmb3IgZ2l2ZW4gb2JqZWN0IGFzIHRoZSB0ZXN0IG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFRlc3RQcmVmaXhQcm92aWRlciBpbXBsZW1lbnRzIFRlc3RDbWRQcm92aWRlcnsKKyAgICAgICAgcHJpdmF0ZSBNYXAgdGhlVGVzdHMgPSBudWxsOyAvLyBNYXA8c3RyaW5nKG5vIGNhc2UpLCBzdHJpbmcod2l0aCBjYXNlKT4gCisgICAgICAgIHByaXZhdGUgU2V0IG9yZ05hbWVzID0gbnVsbDsgLy8gc2hhZG93IHJlZmVyZW5jZSwgPT10aGVUZXN0cywgZm9yIGJldHRlciBvdXRwdXQKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVmZXI7CisgICAgICAgIAorICAgICAgICBUZXN0UHJlZml4UHJvdmlkZXIoT2JqZWN0IHRoZVByb3ZpZGVyKXsKKyAgICAgICAgICAgIHJlZmVyID0gdGhlUHJvdmlkZXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0QWxsVGVzdENtZE5hbWVzKCkgeworICAgICAgICAgICAgaWYgKHRoZVRlc3RzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aGVUZXN0cyA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgb3JnTmFtZXMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIE1ldGhvZFtdIG1ldGhvZHMgPSByZWZlci5nZXRDbGFzcygpLmdldERlY2xhcmVkTWV0aG9kcygpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvcmcgPSBtZXRob2RzW2ldLmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBvcmcudG9Mb3dlckNhc2UoKTsgICAgLy8gaWdub3JpbmcgY2FzZQorICAgICAgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgd2l0aCAndGVzdCcKKyAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogbWV0aG9kcyBuYW1lZCAndGVzdCgpJyBhcmUgaWdub3JlZAorICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDQgJiYgbmFtZS5zdGFydHNXaXRoKCJ0ZXN0IikpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhlVGVzdHMuY29udGFpbnNLZXkobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkR1cGxpY2F0ZSBtZXRob2QgbmFtZSBpZ25vcmluZyBjYXNlOiAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0aGVUZXN0cy5wdXQobmFtZSxvcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgb3JnTmFtZXMuYWRkKG9yZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb3JnTmFtZXM7IC8vIGJlZ2dpbmluZyB3aXRoICd0ZXN0Jywga2VlcGluZyBjYXNlCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZ2l2ZW4gbmFtZSB3aWxsIG1hcCB0byBhIG1ldGhvZCBvZiB0aGUgc2FtZSBuYW1lLCBvciBhIG1ldGhvZAorICAgICAgICAgKiBuYW1lZCAidGVzdCIgKyBuYW1lLiBDYXNlIGlzIGlnbm9yZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBpc1Rlc3RDbWRfaW1wbChTdHJpbmcgbmFtZSl7CisgICAgICAgICAgICBnZXRBbGxUZXN0Q21kTmFtZXMoKTsKKyAgICAgICAgICAgIFN0cmluZyB0bjEgPSBuYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBTdHJpbmcgdG4yID0gInRlc3QiICsgdG4xOworICAgICAgICAgICAgaWYgKHRoZVRlc3RzLmNvbnRhaW5zS2V5KHRuMSkpeworICAgICAgICAgICAgICAgIHJldHVybiB0bjE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRoZVRlc3RzLmNvbnRhaW5zS2V5KHRuMikpeworICAgICAgICAgICAgICAgIHJldHVybiB0bjI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNUZXN0Q21kKFN0cmluZyBuYW1lKXsKKyAgICAgICAgICAgIHJldHVybiBpc1Rlc3RDbWRfaW1wbChuYW1lKSE9bnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIEZ1bmN0aW9uIGdldFRlc3RDbWQoU3RyaW5nIGFuYW1lKXsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgdGhlVGVzdHMuZ2V0KGlzVGVzdENtZF9pbXBsKGFuYW1lKSk7CisgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBNZXRob2QgbSA9IHJlZmVyLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRNZXRob2QobmFtZSxudWxsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKEZ1bmN0aW9uKSBtLmludm9rZShyZWZlciwgbmV3IE9iamVjdFtde30pOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3RQcmVmaXhQcm92aWRlciBpbXBsZW1lbnRhdGlvbiBlcnJvci4gRmluZGluZzogIiArIG5hbWUsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworICAgIAorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBvZiBQZXJmVGVzdCB3aWxsIG5lZWQgdG8gY3JlYXRlIHN1YmNsYXNzZXMgb2YKKyAgICAgKiBGdW5jdGlvbiB0aGF0IGRlZmluZSBhIGNhbGwoKSBtZXRob2Qgd2hpY2ggY29udGFpbnMgdGhlIGNvZGUgdG8KKyAgICAgKiBiZSB0aW1lZC4gIFRoZXkgdGhlbiBjYWxsIHNldFRlc3RGdW5jdGlvbigpIGluIHRoZWlyICJUZXN0Li4uIgorICAgICAqIG1ldGhvZCB0byBlc3RhYmxpc2ggdGhpcyBhcyB0aGUgY3VycmVudCB0ZXN0IGZ1bmN0b3IuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBGdW5jdGlvbiB7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gZG8gdGhlIGFjdGlvbiB0byBiZQorICAgICAgICAgKiBtZWFzdXJlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGNhbGwoKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViY2xhc3NlcyBtYXkgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHJldHVybiBwb3NpdGl2ZQorICAgICAgICAgKiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBvcGVyYXRpb25zIGluIGEgc2luZ2xlCisgICAgICAgICAqIGNhbGwgdG8gdGhpcyBvYmplY3QncyBjYWxsKCkgbWV0aG9kLiAgSWYgc3ViY2xhc3NlcyBkbyBub3QKKyAgICAgICAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QsIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGVpdGhlciBwb3NpdGl2ZQorICAgICAgICAgKiBvciBuZWdhdGl2ZSBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBldmVudHMgaW4gYSBzaW5nbGUKKyAgICAgICAgICogY2FsbCB0byB0aGlzIG9iamVjdCdzIGNhbGwoKSBtZXRob2QuICBJZiBzdWJjbGFzc2VzIGRvIG5vdAorICAgICAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyAtMSwKKyAgICAgICAgICogaW5kaWNhdGluZyB0aGF0IGV2ZW50cyBhcmUgbm90IGFwcGxpY2FibGUgdG8gdGhpcyB0ZXN0LgorICAgICAgICAgKiBlLmc6IE51bWJlciBvZiBicmVha3MgLyBpdGVyYXRpb25zIGZvciBicmVhayBpdGVyYXRvcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGxvbmcgZ2V0RXZlbnRzUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhbGwgY2FsbCgpIG4gdGltZXMgaW4gYSB0aWdodCBsb29wIGFuZCByZXR1cm4gdGhlIGVsYXBzZWQKKyAgICAgICAgICogbWlsbGlzZWNvbmRzLiAgSWYgbiBpcyBzbWFsbCBhbmQgY2FsbCgpIGlzIGZhc3QgdGhlIHJldHVybgorICAgICAgICAgKiByZXN1bHQgbWF5IGJlIHplcm8uICBTbWFsbCByZXR1cm4gdmFsdWVzIGhhdmUgbGltaXRlZAorICAgICAgICAgKiBtZWFuaW5nZnVsbmVzcywgZGVwZW5kaW5nIG9uIHRoZSB1bmRlcmx5aW5nIFZNIGFuZCBPUy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBsb25nIHRpbWUobG9uZyBuKSB7CisgICAgICAgICAgICBsb25nIHN0YXJ0LCBzdG9wOworICAgICAgICAgICAgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChuLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgY2FsbCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RvcCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgcmV0dXJuIHN0b3AgLSBzdGFydDsgLy8gbXMKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0aW5nIGEgdXNhZ2UgZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBVc2FnZUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBVc2FnZUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICAgICAgc3VwZXIobWVzc2FnZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVXNhZ2VFeGNlcHRpb24oKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHJvdGVjdGVkIFBlcmZUZXN0KCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHBhcnNlIGFueQorICAgICAqIGV4dHJhIGFyZ3VtZW50cy4gIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgdG8gcGFyc2UgZXh0cmEKKyAgICAgKiBhcmd1bWVudHMuICBTdWJjbGFzcyBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIE5PVCBjYWxsIHRoZSBiYXNlCisgICAgICogY2xhc3MgaW1wbGVtZW50YXRpb24uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRXh0cmEgYXJndW1lbnRzIHJlY2VpdmVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGdldE9wdGlvbnMoKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IEhFTFAxID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEhFTFAyID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IFZFUkJPU0UgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU09VUkNFRElSID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IEVOQ09ESU5HID0gNDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFVTRUxFTiA9IDU7CisgICAgc3RhdGljIGZpbmFsIGludCBGSUxFX05BTUUgPSA2OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUEFTU0VTID0gNzsKKyAgICBzdGF0aWMgZmluYWwgaW50IElURVJBVElPTlMgPSA4OworICAgIHN0YXRpYyBmaW5hbCBpbnQgVElNRSA9IDk7CisgICAgc3RhdGljIGZpbmFsIGludCBMSU5FX01PREUgPSAxMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEJVTEtfTU9ERSA9IDExOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTE9DQUxFID0gMTI7CisgICAgLy8gT3B0aW9ucyBhYm92ZSBoZXJlIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgaW4gQzsga2VlcCBpbiBzeW5jIHdpdGggQworICAgIC8vIE9wdGlvbnMgYmVsb3cgaGVyZSBhcmUgdW5pcXVlIHRvIEphdmE7IHNoaWZ0IGRvd24gYXMgbmVjZXNzYXJ5CisgICAgc3RhdGljIGZpbmFsIGludCBHQVJCQUdFX0NPTExFQ1QgPSAxMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IExJU1QgPSAxNDsKKworICAgIFVPcHRpb25bXSBnZXRPcHRpb25zKCkgeworICAgICAgICByZXR1cm4gbmV3IFVPcHRpb25bXSB7CisgICAgICAgICAgICBVT3B0aW9uLkhFTFBfSCgpLAorICAgICAgICAgICAgVU9wdGlvbi5IRUxQX1FVRVNUSU9OX01BUksoKSwKKyAgICAgICAgICAgIFVPcHRpb24uVkVSQk9TRSgpLAorICAgICAgICAgICAgVU9wdGlvbi5TT1VSQ0VESVIoKSwKKyAgICAgICAgICAgIFVPcHRpb24uRU5DT0RJTkcoKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAidXNlbGVuIiwgICAgICAgICd1JywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJmaWxlLW5hbWUiLCAgICAgJ2YnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggInBhc3NlcyIsICAgICAgICAncCcsIFVPcHRpb24uUkVRVUlSRVNfQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAiaXRlcmF0aW9ucyIsICAgICdpJywgVU9wdGlvbi5SRVFVSVJFU19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJ0aW1lIiwgICAgICAgICAgJ3QnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImxpbmUtbW9kZSIsICAgICAnbCcsIFVPcHRpb24uTk9fQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAiYnVsay1tb2RlIiwgICAgICdiJywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJsb2NhbGUiLCAgICAgICAgJ0wnLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisKKyAgICAgICAgICAgIC8vIE9wdGlvbnMgYWJvdmUgaGVyZSBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIGluIEM7IGtlZXAgaW4gc3luYworICAgICAgICAgICAgLy8gT3B0aW9ucyBiZWxvdyBoZXJlIGFyZSB1bmlxdWUgdG8gSmF2YQorCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImdjIiwgICAgICAgICAgICAnZycsIFVPcHRpb24uTk9fQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAibGlzdCIsICAgICAoY2hhciktMSwgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgaW4gdGhlaXIgbWFpbigpLiAgcnVuKCkgd2lsbAorICAgICAqIGluIHR1cm4gY2FsbCBzZXR1cCgpIHdpdGggYW55IGFyZ3VtZW50cyBpdCBkb2VzIG5vdCBwYXJzZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBwYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBhbmQgcnVucyB0aGUgdGVzdHMgZ2l2ZW4gb24KKyAgICAgKiB0aGUgY29tbWFuZCBsaW5lLCB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgU2VlIHRoZSBjbGFzcworICAgICAqIGRlc2NyaXB0aW9uIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHJ1bihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU2V0IHRlc3RMaXN0ID0gcGFyc2VPcHRpb25zKGFyZ3MpOworCisgICAgICAgIC8vIFJ1biB0aGUgdGVzdHMKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdGVyID0gdGVzdExpc3QuaXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBTdHJpbmcgbWV0aCA9IChTdHJpbmcpIGl0ZXIubmV4dCgpOworCisgICAgICAgICAgICAvLyBDYWxsIG1ldGggdG8gc2V0IHVwIHRoZSB0ZXN0CisgICAgICAgICAgIC8vIGxvbmcgZXZlbnRzUGVyQ2FsbCA9IC0xOworICAgICAgICAgICAgRnVuY3Rpb24gdGVzdEZ1bmN0aW9uID0gdGVzdFByb3ZpZGVyLmdldFRlc3RDbWQobWV0aCk7CisgICAgICAgICAgICBpZiAodGVzdEZ1bmN0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihtZXRoICsgIiBmYWlsZWQgdG8gcmV0dXJuIGEgdGVzdCBmdW5jdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWV0aCArICIgcmV0dXJuZWQgYW4gaWxsZWdhbCBvcGVyYXRpb25zL2l0ZXJhdGlvbigpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvbmcgdDsKKyAgICAgICAgICAgIC8vbG9uZyBiID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBsb25nIGxvb3BzID0gZ2V0SXRlcmF0aW9uKG1ldGgsIHRlc3RGdW5jdGlvbik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVGhlIGd1ZXNzIGNvc3Q6ICIgKyAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBiKS8xMDAwLiArICIgcy4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHBhc3NlczsgKytqKSB7CisgICAgICAgICAgICAgICAgbG9uZyBldmVudHMgPSAtMTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcmF0aW9ucyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgYmVnaW4gIiArIGl0ZXJhdGlvbnMpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBiZWdpbiAiICsgdGltZSArICIgc2Vjb25kcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBiZWdpbiAiICk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdCA9IHRlc3RGdW5jdGlvbi50aW1lKGxvb3BzKTsgICAvL21zCisgICAgICAgICAgICAgICAgZXZlbnRzID0gdGVzdEZ1bmN0aW9uLmdldEV2ZW50c1Blckl0ZXJhdGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50cyA9PSAtMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGggKyAiIGVuZCAiICsgKHQvMTAwMC4wKSArICIgbG9vcHM6ICIgKyBsb29wcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG9wZXJhdGlvbnM6ICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiBsb29wczogIiArIGxvb3BzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgb3BlcmF0aW9uczogIiArIHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgKyIgZXZlbnRzOiAiICsgZXZlbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudHMgPT0gLTEpeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoICsgIiBlbmQgIiArICh0LzEwMDAuMCkgKyAiICIgKyBsb29wcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aCArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiAiICsgbG9vcHMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgdGVzdEZ1bmN0aW9uLmdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSArICIgIiArIGV2ZW50cyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcmdzCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgICAgIHRoZSBtZXRob2QgbGlzdCB0byBjYWxsCisgICAgICogQHRocm93cyBVc2FnZUV4Y2VwdGlvbgorICAgICAqLworICAgIHByaXZhdGUgU2V0IHBhcnNlT3B0aW9ucyhTdHJpbmdbXSBhcmdzKSB0aHJvd3MgVXNhZ2VFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgZG9QcmlvckdDID0gZmFsc2U7CisgICAgICAgIGVuY29kaW5nID0gIiI7CisgICAgICAgIHVzZWxlbiA9IGZhbHNlOworICAgICAgICBmaWxlTmFtZSA9IG51bGw7CisgICAgICAgIHNvdXJjZURpciA9IG51bGw7CisgICAgICAgIC8vbGluZXMgPSBudWxsOworICAgICAgICBsaW5lX21vZGUgPSBmYWxzZTsKKyAgICAgICAgLy9idWZmZXIgPSBudWxsOworICAgICAgICAvL2J1ZmZlckxlbiA9IDA7CisgICAgICAgIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAgICAgYnVsa19tb2RlID0gZmFsc2U7CisgICAgICAgIHBhc3NlcyA9IGl0ZXJhdGlvbnMgPSB0aW1lID0gLTE7CisgICAgICAgIGxvY2FsZSA9IG51bGw7CisKKyAgICAgICAgVU9wdGlvbltdIG9wdGlvbnMgPSBnZXRPcHRpb25zKCk7CisgICAgICAgIGludCByZW1haW5pbmdBcmdjID0gVU9wdGlvbi5wYXJzZUFyZ3MoYXJncywgb3B0aW9ucyk7CisKKyAgICAgICAgaWYoYXJncy5sZW5ndGg9PTAgfHwgb3B0aW9uc1tIRUxQMV0uZG9lc09jY3VyIHx8IG9wdGlvbnNbSEVMUDJdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1ZFUkJPU0VdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdmVyYm9zZSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1NPVVJDRURJUl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBzb3VyY2VEaXIgPSBvcHRpb25zW1NPVVJDRURJUl0udmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0VOQ09ESU5HXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGVuY29kaW5nID0gb3B0aW9uc1tFTkNPRElOR10udmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1VTRUxFTl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB1c2VsZW4gPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYob3B0aW9uc1tGSUxFX05BTUVdLmRvZXNPY2N1cil7CisgICAgICAgICAgICBmaWxlTmFtZSA9IG9wdGlvbnNbRklMRV9OQU1FXS52YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpb25zW1RJTUVdLmRvZXNPY2N1ciAmJiBvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCJDYW5ub3Qgc3BlY2lmeSBib3RoICctdCB0aW1lJyBhbmQgJy1pIGl0ZXJhdGlvbnMnIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnNbVElNRV0uZG9lc09jY3VyICYmICFvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCJFaXRoZXIgJy10IHRpbWUnIG9yICctaSBpdGVyYXRpb24nIG11c3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKG9wdGlvbnNbUEFTU0VTXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHBhc3NlcyA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tQQVNTRVNdLnZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVc2FnZUV4Y2VwdGlvbigiJy1wIHBhc3MnIG11c3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0lURVJBVElPTlNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgaXRlcmF0aW9ucyA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tJVEVSQVRJT05TXS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW1RJTUVdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGltZSA9IEludGVnZXIucGFyc2VJbnQob3B0aW9uc1tUSU1FXS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW9uc1tMSU5FX01PREVdLmRvZXNPY2N1ciAmJiBvcHRpb25zW0JVTEtfTU9ERV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVXNhZ2VFeGNlcHRpb24oIkNhbm5vdCBzcGVjaWZ5IGJvdGggbGluZSBtb2RlIGFuZCBidWxrIG1vZGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbTElORV9NT0RFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGxpbmVfbW9kZSA9IHRydWU7CisgICAgICAgICAgICBidWxrX21vZGUgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbQlVMS19NT0RFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGJ1bGtfbW9kZSA9IHRydWU7CisgICAgICAgICAgICBsaW5lX21vZGUgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbTE9DQUxFXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUob3B0aW9uc1tMT0NBTEVdLnZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbR0FSQkFHRV9DT0xMRUNUXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGRvUHJpb3JHQyA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW9uc1tMSVNUXS5kb2VzT2NjdXIpeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJBdmFpbGFibGUgdGVzdHM6Iik7CisgICAgICAgICAgICBTZXQgdGVzdE5hbWVzID0gdGVzdFByb3ZpZGVyLmdldEFsbFRlc3RDbWROYW1lcygpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdGVyID0gdGVzdE5hbWVzLml0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgIiArIG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKworICAgICAgICBTZXQgdGVzdExpc3QgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgZm9yIChpPTA7IGk8cmVtYWluaW5nQXJnYzsgKytpKSB7CisKKyAgICAgICAgICAgIC8vIGlzIGFyZ3NbaV0gYSBtZXRob2QgbmFtZT8KKyAgICAgICAgICAgIGlmICh0ZXN0UHJvdmlkZXIuaXNUZXN0Q21kKGFyZ3NbaV0pKXsKKyAgICAgICAgICAgICAgICB0ZXN0TGlzdC5hZGQoYXJnc1tpXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFyZ3NbaV0gaXMgbmVpdGhlciBhIG1ldGhvZCBuYW1lIG5vciBhIG51bWJlci4gIFBhc3MKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIGZyb20gaGVyZSBvbiB0aHJvdWdoIHRvIHRoZSBzdWJjbGFzcyB2aWEKKyAgICAgICAgICAgICAgICAvLyBzZXR1cCgpLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RMaXN0LnNpemUoKSA8IDEpIHsgLy8gcnVuIGFsbCB0ZXN0cworICAgICAgICAgICAgU2V0IHRlc3ROYW1lcyA9IHRlc3RQcm92aWRlci5nZXRBbGxUZXN0Q21kTmFtZXMoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IHRlc3ROYW1lcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RMaXN0LmFkZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhc3MgcmVtYWluaW5nIGFyZ3VtZW50cywgaWYgYW55LCB0aHJvdWdoIHRvIHRoZSBzdWJjbGFzcworICAgICAgICAvLyB2aWEgc2V0dXAoKSBtZXRob2QuCisgICAgICAgIFN0cmluZ1tdIHN1YmNsYXNzQXJncyA9IG5ldyBTdHJpbmdbcmVtYWluaW5nQXJnYyAtIGldOworICAgICAgICBmb3IgKGo9MDsgaTxyZW1haW5pbmdBcmdjOyArK2opIHsKKyAgICAgICAgICAgIHN1YmNsYXNzQXJnc1tqXSA9IGFyZ3NbaSsrXTsKKyAgICAgICAgfQorICAgICAgICBzZXR1cChzdWJjbGFzc0FyZ3MpOworCisgICAgICAgIGlmIChkb1ByaW9yR0MpIHsKKyAgICAgICAgICAgIC8vIFB1dCB0aGUgaGVhcCBpbiBhIGNvbnNpc3RlbnQgc3RhdGUKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RMaXN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGF0ZSAnLXQgdGltZScgdG8gaXRlcmF0aW9ucyAob3IganVzdCByZXR1cm4gJy1pIGl0ZXJhdGlvbicpCisgICAgICogCisgICAgICogQHBhcmFtIG1ldGgKKyAgICAgKiBAcGFyYW0gZm4KKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGdldEl0ZXJhdGlvbihTdHJpbmcgbWV0aE5hbWUsIEZ1bmN0aW9uIGZuKSB7CisgICAgICAgIGxvbmcgaXRlciA9IDA7CisgICAgICAgIGlmKHRpbWUgPCAwKSB7IC8vICYmIGl0ZXJhdGlvbnMgPiAwCisgICAgICAgICAgICBpdGVyID0gaXRlcmF0aW9uczsKKyAgICAgICAgfSBlbHNlIHsgIC8vICYmIGl0ZXJhdGlvbnMgPCAwCisgICAgICAgICAgICAvLyBUcmFuc2xhdGUgdGltZSB0byBpdGVyYXRpb24KKyAgICAgICAgICAgIC8vIEFzc3VtaW5nIHRoZXJlIGlzIGEgbGluZWFyIHJlbGF0aW9uIGJldHdlZW4gdGltZSBhbmQgaXRlcmF0aW9ucworCisgICAgICAgICAgICBpZih2ZXJib3NlKXsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGhOYW1lICsgIiBjYWxpYnJhdGluZyAiICsgdGltZSArICIgc2Vjb25kcyIgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9uZyBiYXNlID0gdGltZSAqIDEwMDA7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYmFzZSA6IiArIGJhc2UpOworICAgICAgICAgICAgbG9uZyBzZWVkID0gMTsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgdD0wOworICAgICAgICAgICAgd2hpbGUgKHQgPCBiYXNlICogMC45IHx8IGJhc2UgKiAxLjEgPCB0KSB7IC8vICsgLSAxMCUgIAorICAgICAgICAgICAgICAgIGlmIChpdGVyID09IDAgfHwgdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIgPSBzZWVkOyAgICAvLyBzdGFydCB1cCBmcm9tIDEKKyAgICAgICAgICAgICAgICAgICAgc2VlZCAqPSAxMDA7ICAgIC8vIGlmIHRoZSBtZXRob2QgaXMgdG9vIGZhc3QgKHQgPT0gMCksIG11bHRpcGx5IDEwMCB0aW1lcworICAgICAgICAgICAgICAgICAgICAvLyAxMDAgaXMgcmF0aW9uYWwgYmVjYXVzZSAnYmFzZScgaXMgYWx3YXlzIGxhcmdlciB0aGFuIDEwMDAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiAndCcgaXMgbGFyZ2UgZW5vdWdoLCB1c2UgbGluZWFyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBuZXcgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyBpdGVyKGJhc2UpICAgIG9sZCBpdGVyCisgICAgICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tID0gLS0tLS0tLS0gPSBrCisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyB0aW1lICAgICAgICAgIG9sZCB0aW1lCisgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiZWZvcmUgZ3Vlc3MgdDogIiArIHQpOworLy8gICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYmVmb3JlIGd1ZXNzIGl0ZXI6ICIgKyBpdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlciA9IChsb25nKSAoKGRvdWJsZSlpdGVyIC8gdCAqIGJhc2UpIDsgIC8vIGF2b2lkIGxvbmcgY3V0LCBlZy4gMS8xMCA9PSAwCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJVbmFibGUgdG8gY29udmVyZ2Ugb24gZGVzaXJlZCBkdXJhdGlvbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHQgPSBmbi50aW1lKGl0ZXIpOworICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbmFsIHQgOiAiICsgdCk7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmluYWwgaSA6ICIgKyBpdGVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlcjsgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogSW52b2tlIHRoZSBydW50aW1lJ3MgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2NlZHVyZSByZXBlYXRlZGx5CisgICAgICogdW50aWwgdGhlIGFtb3VudCBvZiBmcmVlIG1lbW9yeSBzdGFiaWxpemVzIHRvIHdpdGhpbiAxMCUuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZ2MoKSB7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgbG9uZyBsYXN0OworICAgICAgICAgICAgbG9uZyBmcmVlID0gMTsKKyAgICAgICAgICAgIFJ1bnRpbWUgcnVudGltZSA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIHJ1bnRpbWUuZ2MoKTsKKyAgICAgICAgICAgICAgICBsYXN0ID0gZnJlZTsKKyAgICAgICAgICAgICAgICBmcmVlID0gcnVudGltZS5mcmVlTWVtb3J5KCk7CisgICAgICAgICAgICB9IHdoaWxlICgoKGRvdWJsZSlNYXRoLmFicyhmcmVlIC0gbGFzdCkpIC8gZnJlZSA+IDAuMSk7CisgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgY2hhbmdlIGluIGZyZWUgbWVtb3J5IHRvIGRyb3AgdW5kZXIgMTAlCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgY2FsbHMuCisgICAgICAgIH0KKworICAgICAgICAvLyBGcm9tICJKYXZhIFBsYXRmb3JtIFBlcmZvcm1hbmNlIi4gIFRoaXMgaXMgdGhlIHByb2NlZHVyZQorICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBKYXZhc29mdC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgICAgICBTeXN0ZW0ucnVuRmluYWxpemF0aW9uKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKworICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUHJpdmF0ZSB1dGlsaXR5IHRvIGNvbnZlcnQgYSBMaXN0IG9mIEludGVnZXIgb2JqZWN0cyB0byBpbnRbXS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSB0b0ludEFycmF5KExpc3QgbGlzdCkgeworICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W2xpc3Quc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9ICgoSW50ZWdlcikgbGlzdC5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBjaGFyW10gcmVhZFRvRU9TKElucHV0U3RyZWFtUmVhZGVyIHN0cmVhbSkgeworICAgICAgICBBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZmluYWwgaW50IE1BWExFTkdUSCA9IDB4ODAwMDsgLy8gbWF4IGJ1ZmZlciBzaXplIC0gMzJLCisgICAgICAgIGludCBsZW5ndGggPSAweDgwOyAvLyBzdGFydCB3aXRoIHNtYWxsIGJ1ZmZlcnMgYW5kIHdvcmsgdXAKKyAgICAgICAgZG8geworICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCA+PSBNQVhMRU5HVEggPyBNQVhMRU5HVEggOiBsZW5ndGggKiAyOworICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG4gPSBzdHJlYW0ucmVhZChidWZmZXIsIHBvcywgbGVuZ3RoIC0gcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IG47CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ZWMuYWRkKGJ1ZmZlcik7CisgICAgICAgICAgICBjb3VudCArPSBwb3M7CisgICAgICAgIH0gd2hpbGUgKHBvcyA9PSBsZW5ndGgpOworCisgICAgICAgIGNoYXJbXSBkYXRhID0gbmV3IGNoYXJbY291bnRdOworICAgICAgICBwb3MgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlYy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgY2hhcltdIGJ1ZiA9IChjaGFyW10pdmVjLmdldChpKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBNYXRoLm1pbihidWYubGVuZ3RoLCBjb3VudCAtIHBvcyk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZiwgMCwgZGF0YSwgcG9zLCBsZW4pOworICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBieXRlW10gcmVhZFRvRU9TKElucHV0U3RyZWFtIHN0cmVhbSkgeworCisgICAgICAgIEFycmF5TGlzdCB2ZWMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBmaW5hbCBpbnQgTUFYTEVOR1RIID0gMHg4MDAwOyAvLyBtYXggYnVmZmVyIHNpemUgLSAzMksKKyAgICAgICAgaW50IGxlbmd0aCA9IDB4ODA7IC8vIHN0YXJ0IHdpdGggc21hbGwgYnVmZmVycyBhbmQgd29yayB1cAorICAgICAgICBkbyB7CisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgbGVuZ3RoID0gbGVuZ3RoID49IE1BWExFTkdUSCA/IE1BWExFTkdUSCA6IGxlbmd0aCAqIDI7CisgICAgICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHN0cmVhbS5yZWFkKGJ1ZmZlciwgcG9zLCBsZW5ndGggLSBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3MgKz0gbjsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChwb3MgPCBsZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZlYy5hZGQoYnVmZmVyKTsKKyAgICAgICAgICAgIGNvdW50ICs9IHBvczsKKyAgICAgICAgfSB3aGlsZSAocG9zID09IGxlbmd0aCk7CisKKworICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2NvdW50XTsKKyAgICAgICAgcG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBidWYgPSAoYnl0ZVtdKXZlYy5nZXQoaSk7CisgICAgICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgY291bnQgLSBwb3MpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKyAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIHJlYWRMaW5lcyhTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBlbmNvZGluZywgYm9vbGVhbiBidWxrTW9kZSkgeworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbnVsbDsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlTmFtZSk7CisgICAgICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlzLCBlbmNvZGluZyk7CisgICAgICAgICAgICBicj0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiBGaWxlIGFjY2VzcyBleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHJlYWREYXRhTGluZShicik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVhZCBGaWxlIEVycm9yIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBsaXN0LmFkZChsaW5lKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzaXplID0gbGlzdC5zaXplKCk7CisgICAgICAgIFN0cmluZ1tdIGxpbmVzID0gbnVsbDsKKworICAgICAgICBpZiAoYnVsa01vZGUpIHsKKyAgICAgICAgICAgIGxpbmVzID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoU3RyaW5nKSBsaXN0LmdldChpKSk7CisgICAgICAgICAgICAgICAgLyppZiAoaSA8IChzaXplIC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXHJcbiIpOworICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGluZXNbMF0gPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVzID0gbmV3IFN0cmluZyBbc2l6ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIGxpbmVzW2ldID0gKFN0cmluZykgbGlzdC5nZXQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZXM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkRGF0YUxpbmUoQnVmZmVyZWRSZWFkZXIgYnIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgb3JpZ2luYWxMaW5lID0gIiI7CisgICAgICAgIFN0cmluZyBsaW5lID0gIiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsaW5lID0gb3JpZ2luYWxMaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09IDB4RkVGRikgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgaW50IGNvbW1lbnRQb3MgPSBsaW5lLmluZGV4T2YoJyMnKTsKKyAgICAgICAgICAgIGlmIChjb21tZW50UG9zID49IDApIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBjb21tZW50UG9zKTsKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkxpbmUgXCJ7MH1cIiwgIFwiezF9XCIiICsgb3JpZ2luYWxMaW5lICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGluZSArICIgIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9SQkJJUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUkJCSVBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjAzMjg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUkJCSVBlcmYuamF2YQpAQCAtMCwwICsxLDE1NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKKworLyoqCisgKiBBIGNsYXNzIGZvciB0ZXN0aW5nIFVuaWNvZGVTZXQgcGVyZm9ybWFuY2UuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHNpbmNlIElDVSAyLjQKKyAqLworcHVibGljIGNsYXNzIFJCQklQZXJmIGV4dGVuZHMgUGVyZlRlc3QgeworCisgICAgU3RyaW5nICAgICAgICAgICAgICAgICAgZGF0YUZpbGVOYW1lOworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgIGJpOworICAgIEJyZWFrSXRlcmF0b3IgICAgICAgICAgIGpka2JpOworICAgIFN0cmluZyAgICAgICAgICAgICAgICAgIHRlc3RTdHJpbmc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJCQklQZXJmKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gV2Ugb25seSB0YWtlIG9uZSBhcmd1bWVudCwgdGhlIHBhdHRlcm4KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJSQkJJVGVzdCBwYXJhbXM6ICBkYXRhX2ZpbGVfbmFtZSBicmVha19pdGVyYXRvcl90eXBlICIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRhdGFGaWxlTmFtZSA9IGFyZ3NbMF07CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgIHRlc3RGaWxlQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGRhdGFGaWxlTmFtZSk7CisgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBjID0gaXNyLnJlYWQoKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0RmlsZUJ1ZiwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0U3RyaW5nID0gdGVzdEZpbGVCdWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS50b1N0cmluZygpKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzFdLmVxdWFscygiY2hhciIpKSB7CisgICAgICAgICAgICAgICAgYmkgID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7ICAKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoIndvcmQiKSkgeworICAgICAgICAgICAgICAgIGJpICA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKWNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoImxpbmUiKSkgeworICAgICAgICAgICAgICAgIGJpICA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKWNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHMoImpka2xpbmUiKSkgeworICAgICAgICAgICAgICAgIGpka2JpICA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJpIT1udWxsICkgeworICAgICAgICAgICAgYmkuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoamRrYmkgIT0gbnVsbCkgeworICAgICAgICAgICAgamRrYmkuc2V0VGV4dCh0ZXN0U3RyaW5nKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0UkJCSU5leHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IG47CisgICAgICAgICAgICAgICAgaWYgKGJpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IGJpLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBqZGtiaS5maXJzdCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbiAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IG49amRrYmkubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCBuOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGJpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChuPWJpLmZpcnN0KCk7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWJpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAobj1qZGtiaS5maXJzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1qZGtiaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0UkJCSVByZXZpb3VzKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGJpLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgaW50IG49MDsKKyAgICAgICAgICAgICAgICBmb3IgKG49YmkubGFzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IG47CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKG49YmkubGFzdCgpOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1iaS5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RSQkJJSXNCb3VuZGFyeSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgbj10ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG47IGkrKykgeworICAgICAgICAgICAgICAgICAgICBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisKKyAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1Jlc291cmNlQnVuZGxlUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUmVzb3VyY2VCdW5kbGVQZXJmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhZTgwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1Jlc291cmNlQnVuZGxlUGVyZi5qYXZhCkBAIC0wLDAgKzEsMzY3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CisKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VCdW5kbGVQZXJmIGV4dGVuZHMgUGVyZlRlc3QgeworICAgIAorICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgaWN1UmVzICA9IG51bGw7CisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBqYXZhUmVzID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBvcmdfYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICBuZXcgUmVzb3VyY2VCdW5kbGVQZXJmKCkucnVuKG9yZ19hcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICBpY3VSZXMgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsICJ0ZXN0dHlwZXMiKTsKKyAgICAgICAgamF2YVJlcyA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3R0eXBlcyIpOworICAgIH0gICAgCisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UmVzb3VyY2VCdW5kbGVDb25zdHJ1Y3Rpb25KYXZhKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJjb20uaWJtLmljdS5kZXYuZGF0YSIsIlRlc3REYXRhRWxlbWVudHMiLCJ0ZXN0dHlwZXMiKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgfQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RSZXNvdXJjZUJ1bmRsZUNvbnN0cnVjdGlvbklDVSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsICJ0ZXN0dHlwZXMiKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgIAorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0RW1wdHlBcnJheUphdmEoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKXsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKXsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzID0gamF2YVJlcy5nZXRTdHJpbmdBcnJheSgiZW1wdHlhcnJheSIpOworICAgICAgICAgICAgICAgIGlmIChzLmxlbmd0aCAhPSAwKSB0aHJvdyBuZXcgRXJyb3IgKCJub3QgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUFycmF5SUNVKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCl7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCl7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gcyA9IGljdVJlcy5nZXRTdHJpbmdBcnJheSgiZW1wdHlhcnJheSIpOworICAgICAgICAgICAgICAgIGlmIChzLmxlbmd0aCAhPSAwKSB0aHJvdyBuZXcgRXJyb3IgKCJub3QgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRTdHJpbmdKYXZhIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ7CisgICAgICAgIEdldFN0cmluZ0phdmEoU3RyaW5nIGtleSwgU3RyaW5nIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBqYXZhUmVzLmdldFN0cmluZyhrZXkpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhleHBlY3RlZCkpIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY2xhc3MgR2V0U3RyaW5nSWN1IGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ7CisgICAgICAgIEdldFN0cmluZ0ljdShTdHJpbmcga2V5LCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5leHBlY3RlZCA9IGV4cGVjdGVkOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGljdVJlcy5nZXRTdHJpbmcoa2V5KTsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMoZXhwZWN0ZWQpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RaZXJvVGVzdEphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdKYXZhKCJ6ZXJvdGVzdCIsICJhYmNcdTAwMDBkZWYiKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0WmVyb1Rlc3RJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdJY3UoInplcm90ZXN0IiwgImFiY1x1MDAwMGRlZiIpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IEdldFN0cmluZ0phdmEoImVtcHR5ZXhwbGljaXRzdHJpbmciLCAiIik7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0U3RyaW5nSWN1KCJlbXB0eWV4cGxpY2l0c3RyaW5nIiwgIiIpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RFbXB0eVN0cmluZ0phdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRTdHJpbmdKYXZhKCJlbXB0eXN0cmluZyIsICIiKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEVtcHR5U3RyaW5nSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0U3RyaW5nSWN1KCJlbXB0eXN0cmluZyIsICIiKTsKKyAgICB9CisKKyAgICBjbGFzcyBHZXRJbnRKYXZhIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnQgZXhwZWN0ZWQ7CisgICAgICAgIEdldEludEphdmEoU3RyaW5nIGtleSwgaW50IGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSW50ZWdlciB0ID0gKEludGVnZXIpIGphdmFSZXMuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgICAgICBpZiAodC5pbnRWYWx1ZSgpICE9IGV4cGVjdGVkKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIEdldEludEljdSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBHZXRJbnRJY3UoU3RyaW5nIGtleSwgaW50IGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVtcCA9IGljdVJlcy5nZXQoa2V5KTsKKyAgICAgICAgICAgIGludCB0ID0gdGVtcC5nZXRJbnQoKTsKKyAgICAgICAgICAgIGlmICh0ICE9IGV4cGVjdGVkKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldDEyM0phdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJvbmVodW5kcmVkdHdlbnR5dGhyZWUiLCAxMjMpOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0MTIzSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJvbmVodW5kcmVkdHdlbnR5dGhyZWUiLCAxMjMpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRFbXB0eUludEphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJlbXB0eWludCIsIDApOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlJbnRJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRJY3UoImVtcHR5aW50IiwgMCk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE9uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJvbmUiLCAxKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE9uZUlDVSgpeworICAgICAgICByZXR1cm4gbmV3IEdldEludEljdSgib25lIiwgMSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNaW51c09uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJtaW51c29uZSIsIC0xKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1pbnVzT25lSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJtaW51c29uZSIsIC0xKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0UGx1c09uZUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJbnRKYXZhKCJwbHVzb25lIiwgMSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRQbHVzT25lSUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SW50SWN1KCJwbHVzb25lIiwgMSk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1pbnVzT25lVWludEphdmEoKXsgLy8gVE9ETzogbm8gZXF1aXZhbGVuY2U/CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKXsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKXsKKyAgICAgICAgICAgICAgICBJbnRlZ2VyIHQgPSAoSW50ZWdlcikgamF2YVJlcy5nZXRPYmplY3QoIm1pbnVzb25lIik7CisgICAgICAgICAgICAgICAgaWYgKHQuaW50VmFsdWUoKSAhPSAtMSApIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNaW51c09uZVVpbnRJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGljdVJlcy5nZXQoIm1pbnVzb25lIik7CisgICAgICAgICAgICAgICAgaW50IHQgPSBzdWIuZ2V0VUludCgpOworICAgICAgICAgICAgICAgIGlmICh0ICE9IDB4RkZGRkZGRikgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisKKyAgICBjbGFzcyBHZXRJdkphdmEgIGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnRbXSBleHBlY3RlZDsKKyAgICAgICAgR2V0SXZKYXZhKFN0cmluZyBrZXksIGludFtdIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgSW50ZWdlcltdIGl2ID0gKEludGVnZXJbXSkgamF2YVJlcy5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXYubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZFtpXSAhPSBpdltpXS5pbnRWYWx1ZSgpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRJdkljdSAgZXh0ZW5kcyBQZXJmVGVzdC5GdW5jdGlvbiB7CisgICAgICAgIFN0cmluZyBrZXk7CisgICAgICAgIGludFtdIGV4cGVjdGVkOworICAgICAgICBHZXRJdkljdShTdHJpbmcga2V5LCBpbnRbXSBleHBlY3RlZCkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkID0gZXhwZWN0ZWQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSBpY3VSZXMuZ2V0KGtleSk7CisgICAgICAgICAgICBpbnRbXSBpdiA9IHRlbXAuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl2Lmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRbaV0gIT0gaXZbaV0pIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEludGVnZXJBcnJheUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJdkphdmEoImludGVnZXJhcnJheSIsIG5ldyBpbnRbXXsxLDIsMywtMyw0LDUsNiw3fSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRJbnRlZ2VyQXJyYXlJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRJdkljdSgiaW50ZWdlcmFycmF5IiwgbmV3IGludFtdezEsMiwzLC0zLDQsNSw2LDd9KTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlJbnRlZ2VyQXJyYXlKYXZhKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SXZKYXZhKCJlbXB0eWludHYiLCBuZXcgaW50WzBdKTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEVtcHR5SW50ZWdlckFycmF5SUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0SXZJY3UoImVtcHR5aW50diIsIG5ldyBpbnRbMF0pOworICAgIH0KKworICAgIAorICAgIGNsYXNzIEdldEJpbmFyeUljdSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgaW50IGV4cGVjdGVkX2xlbjsKKyAgICAgICAgR2V0QmluYXJ5SWN1KFN0cmluZyBrZXksIGludCBleHBlY3RlZF9sZW4pIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5leHBlY3RlZF9sZW4gPSBleHBlY3RlZF9sZW47CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSBpY3VSZXMuZ2V0KGtleSk7CisgICAgICAgICAgICBCeXRlQnVmZmVyIGdvdCA9IHRlbXAuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBpZihnb3QucmVtYWluaW5nKCkgIT0gZXhwZWN0ZWRfbGVuKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCB0aGUgZXhwZWN0ZWQgbGVuIik7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgZ290LnJlbWFpbmluZygpOyBpKyspeworICAgICAgICAgICAgICBieXRlIGIgPSBnb3QuZ2V0KCk7CisgICAgICAgICAgICAgIGlmIChpICE9IGIpIHRocm93IG5ldyBFcnJvcigibm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldEJpbmFyeVRlc3RJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRCaW5hcnlJY3UoImJpbmFyeXRlc3QiLCAxNSk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRCaW5hcnlUZXN0SmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCl7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCl7CisgICAgICAgICAgICAgICAgYnl0ZVtdIHQgPSAoYnl0ZVtdKSBqYXZhUmVzLmdldE9iamVjdCgiYmluYXJ5dGVzdCIpOworICAgICAgICAgICAgICAgIGlmICh0Lmxlbmd0aCE9MTUgKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlCaW5hcnlJQ1UoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBHZXRCaW5hcnlJY3UoImVtcHR5YmluIiwgMCk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRFbXB0eUJpbmFyeUphdmEoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpeworICAgICAgICAgICAgICAgIGJ5dGVbXSB0ID0gKGJ5dGVbXSkgamF2YVJlcy5nZXRPYmplY3QoImVtcHR5YmluIik7CisgICAgICAgICAgICAgICAgaWYgKHQubGVuZ3RoIT0wICkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBjbGFzcyBHZXRNZW51SmF2YSBleHRlbmRzIFBlcmZUZXN0LkZ1bmN0aW9uIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQ7CisgICAgICAgIEdldE1lbnVKYXZhKFN0cmluZyBrZXksIFN0cmluZ1tdIGV4cGVjdGVkKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgT2JqZWN0W11bXSBtZW51cyA9IChPYmplY3RbXVtdKSBqYXZhUmVzLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgaW50IHNpemVpID0gbWVudXMubGVuZ3RoOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNpemVpOyBpKyspeworICAgICAgICAgICAgICAgIFN0cmluZyBtZW51X25hbWUgPSAoU3RyaW5nKSBtZW51c1tpXVswXTsKKyAgICAgICAgICAgICAgICBPYmplY3RbXVtdIG1lbnVfaXRlbXMgPSAoT2JqZWN0W11bXSkgbWVudXNbaV1bMV07CisgICAgICAgICAgICAgICAgaWYgKCFleHBlY3RlZFtwKytdLmVxdWFscyhtZW51X25hbWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBzaXplaiA9IG1lbnVfaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwgc2l6ZWo7IGorKyl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBtZW51X2l0ZW1zW2pdWzBdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBtZW51X2l0ZW1zW2pdWzFdOworICAgICAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWRbcCsrXS5lcXVhbHMoa2V5KSkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoIWV4cGVjdGVkW3ArK10uZXF1YWxzKHZhbHVlKSkgdGhyb3cgbmV3IEVycm9yKCJub3QgZXF1YWwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBHZXRNZW51SWN1IGV4dGVuZHMgUGVyZlRlc3QuRnVuY3Rpb24geworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBTdHJpbmdbXSBleHBlY3RlZDsKKyAgICAgICAgR2V0TWVudUljdShTdHJpbmcga2V5LCBTdHJpbmdbXSBleHBlY3RlZCkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkID0gZXhwZWN0ZWQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnVzID0gaWN1UmVzLmdldChrZXkpOworICAgICAgICAgICAgaW50IHNpemVpID0gbWVudXMuZ2V0U2l6ZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNpemVpOyBpKyspeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnUgPSBtZW51cy5nZXQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lbnVfbmFtZSA9IG1lbnUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgaWYgKCFleHBlY3RlZFtwKytdLmVxdWFscyhtZW51X25hbWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBzaXplaiA9IG1lbnUuZ2V0U2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwgc2l6ZWo7IGorKyl7CisgICAgICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG1lbnVfaXRlbSA9IG1lbnUuZ2V0KGopOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbWVudV9pdGVtLmdldEtleSgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBtZW51X2l0ZW0uZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKCFleHBlY3RlZFtwKytdLmVxdWFscyhrZXkpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWRbcCsrXS5lcXVhbHModmFsdWUpKSB0aHJvdyBuZXcgRXJyb3IoIm5vdCBlcXVhbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEdldE1lbnVKYXZhKCl7CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0gbmV3IFN0cmluZ1tdeyJmaWxlIiwgImV4aXQiLCAiRXhpdCIsICJvcGVuIiwgIk9wZW4iLCAic2F2ZSIsICJTYXZlIn07CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUphdmEoIm1lbnUiLCBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RHZXRNZW51SUNVKCl7CisgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0gbmV3IFN0cmluZ1tdeyJmaWxlIiwgImV4aXQiLCAiRXhpdCIsICJvcGVuIiwgIk9wZW4iLCAic2F2ZSIsICJTYXZlIn07CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUljdSgibWVudSIsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlNZW51SmF2YSgpeworICAgICAgICByZXR1cm4gbmV3IEdldE1lbnVKYXZhKCJlbXB0eXRhYmxlIiwgbmV3IFN0cmluZ1tde30pOworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0R2V0RW1wdHlNZW51SUNVKCl7CisgICAgICAgIHJldHVybiBuZXcgR2V0TWVudUljdSgiZW1wdHl0YWJsZSIsIG5ldyBTdHJpbmdbXXt9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9VQ2hhcmFjdGVyUGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVUNoYXJhY3RlclBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWFiNTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVUNoYXJhY3RlclBlcmYuamF2YQpAQCAtMCwwICsxLDUzMyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBCYXNlIHBlcmZvcm1hbmNlIHRlc3QgdGhhdCB0YWtlcyBpbiBhIG1ldGhvZCBuYW1lIGZvciB0ZXN0aW5nIHdpdGggSkRLLgorICogVG8gdXNlIAorICogPGNvZGU+CisgKiBqYXZhIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuVUNoYXJhY3RlclBlcmYgJE1ldGhvZE5hbWUgJExvb3BDb3VudCAtIAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNUQVJUX1RFU1RfQ0hBUkFDVEVSICRFTkRfVEVTVF9DSEFSQUNURVIKKyAqIDwvY29kZT4KKyAqIHdoZXJlICQqX1RFU1RfQ0hBUkFDVEVSIGFyZSBpbiBoZXggZGVjaW1hbHMgd2l0aCBhIGxlYWRpbmcgMHgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJQZXJmIGV4dGVuZHMgUGVyZlRlc3QgCit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsgICAKKyAgICAgICAgbmV3IFVDaGFyYWN0ZXJQZXJmKCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgVUNoYXJhY3RlclBlcmYoKS5UZXN0UGVyZm9ybWFuY2UoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICAvLyBXZSBvbmx5IHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgcGF0dGVybgorICAgICAgICBNSU5fID0gQ2hhcmFjdGVyLk1JTl9WQUxVRTsKKyAgICAgICAgTUFYXyA9IENoYXJhY3Rlci5NQVhfVkFMVUU7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAxKSB7CisgICAgICAgICAgICBNSU5fID0gSW50ZWdlci5wYXJzZUludChhcmdzWzBdLCAxNik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIE1BWF8gPSBJbnRlZ2VyLnBhcnNlSW50KGFyZ3NbMV0sIDE2KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0RGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCAxMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtEaWdpdCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZGlnaXQoY2gsIDEwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEdldE51bWVyaWNWYWx1ZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLR2V0TnVtZXJpY1ZhbHVlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAKKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtHZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNEZWZpbmVkKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0RlZmluZWQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzRGVmaW5lZCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNEZWZpbmVkKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzRGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzRGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNJZGVudGlmaWVySWdub3JhYmxlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzSWRlbnRpZmllcklnbm9yYWJsZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzSVNPQ29udHJvbCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzSVNPQ29udHJvbCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNJU09Db250cm9sKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzTGV0dGVyKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0xldHRlcihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0xldHRlcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNMZXR0ZXIoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNMZXR0ZXJPckRpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNMZXR0ZXJPckRpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc0xvd2VyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzTG93ZXJDYXNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNTcGFjZUNoYXIoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1NwYWNlQ2hhcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1RpdGxlQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNUaXRsZUNhc2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1VuaWNvZGVJZGVudGlmaWVyUGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVW5pY29kZUlkZW50aWZpZXJQYXJ0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVW5pY29kZUlkZW50aWZpZXJTdGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1VwcGVyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVXBwZXJDYXNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1VwcGVyQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAgICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc1doaXRlU3BhY2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1doaXRlU3BhY2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIGNvZGVwb2ludCB0byBkbyB0ZXN0LiBUZXN0IGlzIHJhbiBmcm9tIE1JTl8gdG8gTUFYXworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBNSU5fOworICAgIC8qKgorICAgICAqIE1pbmltdW0gY29kZXBvaW50IHRvIGRvIHRlc3QuIFRlc3QgaXMgcmFuIGZyb20gTUlOXyB0byBNQVhfCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IE1BWF87Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Vbmljb2RlU2V0UGVyZi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVW5pY29kZVNldFBlcmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjlmYTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVW5pY29kZVNldFBlcmYuamF2YQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKKy8qKgorICogQSBjbGFzcyBmb3IgdGVzdGluZyBVbmljb2RlU2V0IHBlcmZvcm1hbmNlLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0UGVyZiBleHRlbmRzIFBlcmZUZXN0IHsKKworICAgIFN0cmluZyBwYXR0ZXJuOworICAgIFVuaWNvZGVTZXQgdGVzdENoYXJzOworICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdDsKKyAgICBVbmljb2RlU2V0IHVzOworICAgIEhhc2hTZXQgaHM7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFVuaWNvZGVTZXRQZXJmKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gV2Ugb25seSB0YWtlIG9uZSBhcmd1bWVudCwgdGhlIHBhdHRlcm4KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJQbGVhc2Ugc3VwcGx5IFVuaWNvZGVTZXQgcGF0dGVybiIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0dGVybiA9IGFyZ3NbMF07CisgICAgICAgIHRlc3RDaGFycyA9IG5ldyBVbmljb2RlU2V0KHBhdHRlcm4pOworICAgICAgICBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IodGVzdENoYXJzKTsKKyAgICAgICAgdXMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBocyA9IG5ldyBIYXNoU2V0KCk7CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdFVuaWNvZGVTZXRBZGQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIHVzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBpbnQgbj0wOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjcCA9IGl0LmNvZGVwb2ludDsgY3AgPD0gaXQuY29kZXBvaW50RW5kOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1cy5hZGQoY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0Q2hhcnMuc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RIYXNoU2V0QWRkKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBocy5jbGVhcigpOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgaW50IG49MDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSBpdC5jb2RlcG9pbnQ7IGNwIDw9IGl0LmNvZGVwb2ludEVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaHMuYWRkKG5ldyBJbnRlZ2VyKGNwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RDaGFycy5zaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdFVuaWNvZGVTZXRDb250YWlucygpIHsKKyAgICAgICAgdXMuY2xlYXIoKTsKKyAgICAgICAgdXMuc2V0KHRlc3RDaGFycyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSAweDEwRkZGRjsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodXMuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wICs9IGNwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiAweDExMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SGFzaFNldENvbnRhaW5zKCkgeworICAgICAgICBocy5jbGVhcigpOworICAgICAgICBpdC5yZXNldCgpOworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICBocy5hZGQobmV3IEludGVnZXIoaXQuY29kZXBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhzLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGNwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgKz0gY3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTEwMDAwOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RVbmljb2RlU2V0SXRlcmF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1aXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRlc3RDaGFycyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHVpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCArPSB1aXQuY29kZXBvaW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVzdENoYXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SGFzaFNldEl0ZXJhdGUoKSB7CisgICAgICAgIGhzLmNsZWFyKCk7CisgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgIGhzLmFkZChuZXcgSW50ZWdlcihpdC5jb2RlcG9pbnQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IDA7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBocy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCArPSAoKEludGVnZXIpaXQubmV4dCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVzdENoYXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9jb2xsYXRpb25wZXJmLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvY29sbGF0aW9ucGVyZi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjA1NDhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvY29sbGF0aW9ucGVyZi5wbApAQCAtMCwwICsxLDEyNiBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisjCisjICBJQ1UgYW5kIFdpbmRvd3MgQ29sbGF0aW9uIHBlcmZvcm1hbmNlIHRlc3Qgc2NyaXB0CisjICAgICAgVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjb2xscGVyZiB0ZXN0IHByb2dyYW0uCisjICAgICAgVGhpcyBzY3JpcHQgZGVmaW5lcyB0aGUgbG9jYWxlcyBhbmQgZGF0YSBmaWxlcyB0byBiZSB0ZXN0ZWQsCisjICAgICAgICBydW5zIHRoZSBjb2xscGVyZiBwcm9ncmFtLCBhbmQgZm9ybWF0cyBhbmQgcHJpbnRzIHRoZSByZXN1bHRzLgorIworIyAgICAgICAgNyBKdW5lIDIwMDEgICBBbmR5IEhlbmluZ2VyCisjCisjICBJQ1U0SiBhbmQgSmF2YSBDb2xsYXRvciBwZXJmb3JtYW5jZSB0ZXN0IHNjcmlwdAorIyAgMjAwMi0wOS0yNSBtb2RpZmllZCBieSBSaWNoYXJkIExpYW5nCisKK3ByaW50ICJUbyBydW4gdGhpcyBwZXJmb3JtYW5jZSB0ZXN0XG4iOworcHJpbnQgImNkIHRvIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeSwgb25lIGRpcmVjdG9yeSBiZWxvdyBzcmNcbiI7CitwcmludCAicnVuIHBlcmwgc3JjXFxjb21cXGlibVxcaWN1XFxkZXZcXHRlc3RcXHBlcmZcXGNvbGxhdGlvbnBlcmYucGxcbiI7CisKKyMKKyMgTWFwIGRlZmluZXMgdGhlIHNldCBvZiBkYXRhIGZpbGVzIHRvIHJ1biBpbiBlYWNoIGxvY2FsZQorIworJWRhdGFGaWxlcyA9ICgKKyAgICJlbl9VUyIsICAgICAgICAgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImRhX0RLIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCIsCisgICAiZGVfREUiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IiwKKyAgICJkZV9fUEhPTkVCT09LIiwgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImZyX0ZSIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCIsCisgICAiamFfSlAiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCBUZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQgVGVzdE5hbWVzX0FzaWFuLnR4dCIsCisgICAiemhfQ04iLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAiemhfVFciLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAiemhfX1BJTllJTiIsICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19DaGluZXNlLnR4dCIsCisgICAicnVfUlUiLCAJICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19SdXNzaWFuLnR4dCIsCisgICAidGgiLCAgICAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19UaGFpLnR4dCIsCisgICAia29fS1IiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IFRlc3ROYW1lc19Lb3JlYW4udHh0IiwKKyAgICk7CisKKworIworIyAgT3V0ZXIgbG9vcCBydW5zIHRocm91Z2ggdGhlIGxvY2FsZXMgdG8gdGVzdAorIyAgICAgKEVkaXQgdGhpcyBsaXN0IGRpcmN0bHkgdG8gbWFrZSBjaGFuZ2VzKQorIworICAgZm9yZWFjaCAkbG9jYWxlICgKKwkgICAiZW5fVVMiLAorCSAgICJkYV9ESyIsCisJICAgImRlX0RFIiwKKwkgICAiZGVfX1BIT05FQk9PSyIsCisJICAgImZyX0ZSIiwKKwkgICAiamFfSlAiLAorICAgICAgICJ6aF9DTiIsCisJICAgInpoX1RXIiwKKwkgICAiemhfX1BJTllJTiIsCisgICAgICAgImtvX0tSIiwKKwkgICAicnVfUlUiLAorCSAgICJ0aCIsCisgICAgICAgICAgICAgICAgICAgKQorICAgICAgIHsKKyAgICAgICAjCisgICAgICAgIyBJbm5lciBsb29wIHJ1bnMgb3ZlciB0aGUgc2V0IG9mIGRhdGEgZmlsZXMgc3BlY2lmaWVkIGZvciBlYWNoIGxvY2FsZS4KKyAgICAgICAjICAgIChFZGl0IHRoZSAlZGF0YWZpbGVzIGluaXRpYWxpemF0aW9uLCBhYm92ZSwgdG8gbWFrZSBjaGFuZ2VzLgorICAgICAgICMKKyAgICAgICAkZmYgPSAkZGF0YUZpbGVzeyRsb2NhbGV9OworICAgICAgIEBmZiA9IHNwbGl0KC9bXHNdKy8sICRmZik7CisgICAgICAgZm9yZWFjaCAkZGF0YSAoQGZmKSB7CisKKyAgICAgICAgICAjCisgICAgICAgICAgIyBSdW4gSUNVIFRlc3QgZm9yIHRoaXMgKGxvY2FsZSwgZGF0YSBmaWxlKSBwYWlyLgorICAgICAgICAgICMKKyAgICAgICAgICAkaVN0ckNvbCA9IGBqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLkNvbGxhdGlvblBlcmZvcm1hbmNlVGVzdCAtdGVyc2UgLWZpbGUgc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vJGRhdGEgLWxvY2FsZSAkbG9jYWxlIC1sb29wIDEwMDAgLWJpbnNlYXJjaGA7CisgICAgICAgICAgJGlTdHJDb2wgPX5zL1ssXHNdKi8vZzsgICMgd2hhY2sgb2ZmIHRoZSBsZWFkaW5nICIgICwiIGluIHRoZSByZXR1cm5lZCByZXN1bHQuCisgICAgICAgICAgZG9LZXlUaW1lcygiamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgLXRlcnNlIC1maWxlIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uLyRkYXRhIC1sb2NhbGUgJGxvY2FsZSAtbG9vcCAxMDAwIC1rZXlnZW4iLAorICAgICAgICAgICAgICAgICAgICAgJGlLZXlHZW4sICRpS2V5TGVuKTsKKworCisgICAgICAgICAgIworICAgICAgICAgICMgUnVuIFdpbmRvd3MgdGVzdCBmb3IgdGhpcyAobG9jYWxlLCBkYXRhIGZpbGUpIHBhaXIuICBPbmx5IGRvIGlmCisgICAgICAgICAgIyAgICB3ZSBhcmUgbm90IG9uIFdpbmRvd3MgOTgvTUUgYW5kIHdlIGhhdmEgYSB3aW5kb3dzIGxhbmdJRAorICAgICAgICAgICMgICAgZm9yIHRoZSBsb2NhbGUuCisgICAgICAgICAgIworICAgICAgICAgICR3U3RyQ29sID0gJHdLZXlHZW4gPSAkd0tleUxlbiA9IDA7CisgICAgICAgICAgJHdTdHJDb2wgPSBgamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgLXRlcnNlIC1maWxlIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uLyRkYXRhIC1sb2NhbGUgJGxvY2FsZSAtbG9vcCAxMDAwIC1iaW5zZWFyY2ggLWphdmFgOworICAgICAgICAgICR3U3RyQ29sID1+cy9bLFxzXSovL2c7ICAjIHdoYWNrIG9mZiB0aGUgbGVhZGluZyAiICAsIiBpbiB0aGUgcmV0dXJuZWQgcmVzdWx0LgorICAgICAgICAgIGRvS2V5VGltZXMoImphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IC10ZXJzZSAtZmlsZSBzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi8kZGF0YSAtbG9jYWxlICRsb2NhbGUgLWxvb3AgMTAwMCAta2V5Z2VuIC1qYXZhIiwKKyAgICAgICAgICAgICAgICAgICAgICR3S2V5R2VuLCAkd0tleUxlbik7CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAkY29sbERpZmYgPSAka2V5R2VuRGlmZiA9ICRrZXlMZW5EaWZmID0gMDsKKyAgICAgICAgICBpZiAoJHdLZXlMZW4gPiAwKSB7CisgICAgICAgICAgICAgICRjb2xsRGlmZiAgID0gKCgkd1N0ckNvbCAtICRpU3RyQ29sKSAvICRpU3RyQ29sKSAqIDEwMDsKKyAgICAgICAgICAgICAgJGtleUdlbkRpZmYgPSAoKCR3S2V5R2VuIC0gJGlLZXlHZW4pIC8gJGlLZXlHZW4pICogMTAwOworICAgICAgICAgICAgICAka2V5TGVuRGlmZiA9ICgoJHdLZXlMZW4gLSAkaUtleUxlbikgLyAkaUtleUxlbikgKiAxMDA7CisgICAgICAgICAgfQorCisgICAgICAgICAjCisgICAgICAgICAjICBXcml0ZSB0aGUgbGluZSBvZiByZXN1bHRzIGZvciB0aGlzIChsb2NhbGUsIGRhdGEgZmlsZSkuCisgICAgICAgICAjCisgICAgICAgICB3cml0ZTsKKyAgICB9CisgfQorCisjCisjICBkb0tleUdlblRpbWVzKCRDb21tYW5kX3RvX3J1biwgJHRpbWUsICRrZXlfbGVuZ3RoKQorIyAgICAgICBEbyBhIGtleS1nZW5lcmF0aW9uIHRlc3QgYW5kIHJldHVybiB0aGUgdGltZSBhbmQga2V5IGxlbmd0aC9jaGFyIHZhbHVlcy4KKyMKK3N1YiBkb0tleVRpbWVzKCQkJCkgeworICAgIyBwcmludCAiJF9bMF0iOworICAgbG9jYWwoJHgpID0gYCRfWzBdYDsgICAgICAgICAgICAgICAgICAjIGV4ZWN1dGUgdGhlIGNvbGxwZXJmIGNvbW1hbmQuCisgICAoJF9bMV0sICRfWzJdKSA9IHNwbGl0KC9cLC8sICR4KTsgICAgICMgY29sbHBlcmYgcmV0dXJucyAidGltZSwga2V5bGVuZ3RoIiBzdHJpbmcuCit9CisKKworIworIyAgT3V0cHV0IEZvcm1hdHMgLi4uCisjCisjCitmb3JtYXQgU1RET1VUX1RPUCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tIElDVSAtLS0tLS0tLSAgIC0tLS0tLSBKQVZBIC0tLS0tLS0gICAgICAoSkFWQSAtIElDVSkvSUNVCitMb2NhbGUgICAgIERhdGEgZmlsZSAgICAgICAgICAgICAgICAgIHN0cmNvbGwga2V5Z2VuICBrZXlsZW4gIHN0cmNvbGwga2V5Z2VuICBrZXlsZW4gICAgY29sbCAga2V5Z2VuICBrZXlsZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLgorCitmb3JtYXQgU1RET1VUID0KK0A8PDw8PDw8PDwgQDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PHwgQCMjIyMjIyAgQCMjIyMgICBAIy4jIyAgfEAjIyMjIyBAIyMjIyMgICBAIy4jIyB8IEAjIyMlICBAIyMjJSAgIEAjIyMlCiskbG9jYWxlLCAkZGF0YSwgJGlTdHJDb2wsICRpS2V5R2VuLCAkaUtleUxlbiwgJHdTdHJDb2wsICR3S2V5R2VuLCAkd0tleUxlbiwgJGNvbGxEaWZmLCAka2V5R2VuRGlmZiwgJGtleUxlbkRpZmYKKy4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Bc2lhbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYjhmODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0CkBAIC0wLDAgKzEsMTAwMDggQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor44GC44GN44KC44GoLOOChOOBmeOBig0KK+OBguOBhOOBi+OCjyzjga7jgorjgYoNCivjgYLjgYvjgaTjgYss44GL44Ga44Gy44GTDQor44GC44KP44GaLOOBguOBjeOCiQ0KK+OBguOBleOBrizjgojjgZfjgoQNCivjgYLjgonjgY0s44KI44GX44GL44GaDQor44GE44Gu44GG44GILOOBsuOCjeOBsuOBqA0KK+OBi+OBqOOBhizjgb7jgZXjgajjgZcNCivjgarjgYvjgoDjgoks44GR44GE44Ge44GGDQor44G144GY44KP44KJLOOBn+OBi+OBkw0KK+OChOOBquOBjuOBr+OCiSzjgb/jganjgooNCivjgYvjgo/jgaAs44Gq44GK44GTDQor44GE44GX44GuLOOBjeOCiOOBquOBjA0KK+OBlOOBqOOBhizjgYvjgaTjga7jgooNCivjgYTjgZfjgZjjgb4s44KK44KH44GG44G444GEDQor44GC44Go44GGLOOBvuOBleOBruOCig0KK+OBv+OBl+OBvizjgZ/jgYvjgobjgY0NCivjgb/jgojjgZcs44Gu44G244G+44GVDQor44Gf44Gh44GuLOOBmOOCheOCkw0KK+OBiuOBiuOBrizjgYvjgZrjgYoNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gf44GLDQor44G144KL44GV44KPLOOBleOBqOOBlw0KK+OBiuOBiuOBr+OBlyzjgbLjgajjgZcNCivjgojjgZfjgYvjgo8s44Go44GX44KG44GNDQor44GL44KP44GELOOBqOOBl+OBig0KK+OBhOOBl+OBqCzjgZPjgYbjgY0NCivjgYTjgb7jgYQs44Gf44GL44KG44GNDQor44KE44G+44Gq44GLLOOBleOBpOOBvw0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgb8NCivjgZnjgZrjgY0s44GX44KF44KT44GYDQor44GC44KP44GILOOBguOBpOOBlw0KK+OBquOBjOOBmyzjgZ/jgYvjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GE44GhDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgYvjgZoNCivjgZnjgb/jgZ8s44GL44GK44KLDQor44Gb44GN44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjgabjgovjgbLjgZUNCivjgbLjgonjga4s44Gf44GL44GXDQor44Gv44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBleOBi+OBjOOBvyzjga7jgorjgYvjgZoNCivjgZPjgbDjgoTjgZcs44KE44GZ44GXDQor44Gf44GN44KC44GoLOOBruOCiuOBkw0KK+OBu+OBlyzjgbLjgo3jgbXjgb8NCivjgYrjgYrjgZ/jgYss44KG44GG44GTDQor44GZ44GO44KA44KJLOOBl+OBkuOBig0KK+OBguOBiuOBjSzjgb7jgZXjgosNCivjgarjgYvjga/jgoks44KG44GG44Ge44GGDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBvuOBiOOBleOBiyzjgajjgoLjgb/jgaQNCivjgbXjgZjjgZ/jgass44GL44Ga44Gy44GTDQor44G744Gj44GfLOOBl+OBkuOBsuOBqA0KK+OBguOBjeOChOOBvizjgobjgZ/jgYsNCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44Go44KI44Gq44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgYoNCivjga7jgoDjgoks44GX44GS44GKDQor44GL44KP44GX44G+LOOBn+OBi+OBkw0KK+OCgOOCjeOChCzjgabjgaTjgYoNCivjgYLjgZfjgYvjgo8s44KE44GZ44GX44GSDQor44Gv44KE44GXLOOBn+OBi+OBig0KK+OBv+OChOOBjOOCjyzjgbXjgb/jga7jgooNCivjgYrjgZDjgoks44KE44GZ44Gy44KNDQor44KI44GX44GgLOOBqOOBl+OBsuOBkw0KK+OBj+OBqeOBhizjgbLjgo3jgZcNCivjgY/jgb7jgYzjgYQs44Gf44GL44KG44GNDQor44Gr44GX44GKLOOBsuOBp+OBjQ0KK+OBiuOBiuOBhOOChOOBvizjga7jgbzjgosNCivjgZ/jgZHjgZ/jgass44G144Go44GXDQor44GE44GX44GgLOOBi+OBpOOChA0KK+OBiuOBhOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgZ/jgYvjga/jgZcs44Gb44GE44GYDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjga/jgoTjgZcs44GX44KT44Gh44KH44GGDQor44GP44KN44GL44KPLOOBvuOBleOBguOBjQ0KK+OChOOBmOOBvizjgajjgYrjgosNCivjgYvjgaTjgonjgYQs44KP44Gf44KLDQor44GC44GL44KKLOOCiuOCh+OBhuOBmA0KK+OBguOBmuOBvizjga7jgbbjgobjgY0NCivjgYLjgaTjgb8s44GX44KF44GG44GYDQor44G+44KL44GKLOOCiOOBl+OChuOBjQ0KK+OBhOOBkeOBiizjgb/jga7jgosNCivjgajjgorjgoTjgb4s44KK44Gk44GKDQor44Gv44G+44GuLOOCiOOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZ/jgo3jgYYNCivjgZPjgYbjgaEs44KG44GG44GZ44GRDQor44Gq44GL44GY44G+LOOBruOCiuOBsuOBkw0KK+OBguOCiSzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44G+44GV44Gy44KNDQor44GE44Ga44G/LOOBi+OBreOBv+OBpA0KK+OBguOCj+OBmCzjgYLjgaTjgYoNCivjgb/jgZrjgbLjgY0s44KI44GX44GKDQor44GK44Gg44GY44G+LOOBquOBu+OBvw0KK+OBteOCi+OBi+OCjyzjgZfjgZLjgYoNCivjgb/jgZrjgZDjgaEs44GY44KN44GGDQor44GE44Go44GGLOOBsuOCjeOBlw0KK+OBteOBj+OBhCzjgZXjgajjgZcNCivjgbXjgZjjga/jgoks44Gf44GR44Gy44GoDQor44KE44GuLOOChuOBhuOBmA0KK+OBr+OChOOBl+OBkOOBoSzjgbLjgo3jgZcNCivjgbvjgoos44Go44GX44KG44GNDQor44KI44GX44GELOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjga/jgZ8s44GT44GG44GE44GhDQor44GT44Gw44KKLOOBsuOBp+OChuOBjQ0KK+OBiuOBoOOBl+OBvizjgYvjgaTjgo3jgYYNCivjgYbjgYjjgoTjgb4s44G/44Gk44Gq44KKDQor44KA44GfLOOBvuOBquOBtg0KK+OBn+OBquOBiyzjgZfjgZLjgYoNCivjgZPjgpPjga4s44KG44GG44GTDQor44G144GY44KP44KJLOOBqOOBl+OBr+OCiw0KK+OBv+OChOOBjSzjgobjgZ/jgYsNCivjga/jgarjgo8s44G+44GV44Gy44KNDQor44Gm44GY44G+LOOBguOBjeOCiQ0KK+OBj+OBvCzjgYLjgaTjgZcNCivjgYrjgYrjgbAs44GX44KT44GUDQor44GT44KT44GuLOOBn+OBj+OChA0KK+OBvuOBpOOBsOOCiSzjgbLjgafjgYoNCivjga/jgZfjgoLjgags44GZ44G/44GTDQor44KP44Gf44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBk+OBn+OBjSzjgabjgaTjgoQNCivjgbXjgYvjgoQs44KC44KC44GNDQor44G+44Gk44GG44KJLOOBpuOBo+OBuuOBhA0KK+OBteOBquOBoCzjgYvjgZrjgbLjgZMNCivjgbLjgYzjgZfjgaAs44Go44GX44KG44GNDQor44GE44Gu44G+44GfLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgYTjgajjgYYs44Gf44Gk44GXDQor44G/44Gf44KA44KJLOOBvuOChuOBvw0KK+OBmeOBjOOBr+OCiSzjgb/jgaTjgosNCivjgZ/jgYvjgb/jgoQs44Gy44Gn44Gu44G2DQor44KE44G+44GQ44GhLOOBk+OBmeOBkQ0KK+OBiuOBnyzjgaTjgojjgZcNCivjgZvjga7jgYos44Gv44GY44KBDQor44GX44Gw44GW44GNLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgbXjgZjjgYvjgo8s44Gy44KN44KG44GNDQor44GC44KJ44GELOOCiuOCheOBhuOBmA0KK+OBiuOBiuOBj+OCiSzjgbLjgZXjga7jgooNCivjgb7jgaTjgbAs44GX44GS44KLDQor44Gf44KB44Gy44KNLOOCguOBqOOBkw0KK+OBvuOCk+OBvSzjgYvjgaTjgb8NCivjgZPjgZDjgaEs44Gf44GL44GXDQor44Gf44Gr44GQ44GhLOOBquOBiuOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgbLjgonjgoLjgags44Gy44Gn44GC44GNDQor44GC44KT44KJ44GPLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjga7jgorjgZMNCivjgaHjgoPjgY0s44GX44GS44Gy44GnDQor44GV44GL44GELOOBoeOBr+OCiw0KK+OBhOOBquOBiuOBiyzjgbLjgo3jgYvjgZoNCivjgYbjgZfjgZjjgb4s44GX44KT44GE44GhDQor44GT44GR44GkLOOBguOBjeOBsuOBlQ0KK+OCgOOCieOBnyzjgbLjgajjgZcNCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GX44KT44Gf44GrLOOCiuOCheOBhuOBmA0KK+OBiuOBiuOBr+OBnyzjga7jgbbjgYLjgY0NCivjgZ/jgbbjgaEs44KG44Gf44GLDQor44GZ44G/44GgLOOBjeOCiOOBlw0KK+OBv+OBhuOCiSzjgarjgarjgZMNCivjgorjgoXjgYbjgags44Gy44KN44G/DQor44GE44GR44GgLOOBsuOCjeOBquOCig0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgbXjgb8NCivjgYjjgpPjgaks44GR44KT44GE44GhDQor44GK44GX44GL44KPLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgbLjgafjgobjgY0NCivjgoTjgb7jgaAs44GE44KP44GKDQor44GK44GgLOOBvuOBleOBig0KK+OBn+OBjeOBluOCjyzjgYLjgaTjgZcNCivjgoLjgoos44KE44GZ44Gu44KKDQor44GL44Gq44GW44KPLOOBn+OBpOOChuOBjQ0KK+OBiuOBiuOBnyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgaQs44Gm44Gk44KN44GGDQor44G144GY44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOBi+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgajjgYYs44GT44GG44GYDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBhuOBiOOBrizjgojjgZfjgbLjgZMNCivjgYrjgYrjgYvjgo8s44GV44GL44GIDQor44G+44KL44GELOOBmOOCheOCk+OBkw0KK+OBhOOCj+OBiizjgZfjgoXjgYbjgZgNCivjgYbjgoHjgaAs44GL44Ga44KEDQor44KB44GL44GfLOOBvuOBleOCiw0KK+OBpOOBmCzjgaTjgZDjgbLjgZMNCivjgZ/jgZQs44Gy44KN44GXDQor44KE44G+44GX44GfLOOBvuOBleOBqA0KK+OBmeOBjuOChOOBvizjgbLjgo3jgobjgY0NCivjgbXjgZ/jgbAs44Go44GX44GC44GNDQor44G/44KE44Gy44KJLOOBv+OBoeOBguOBjQ0KK+OBq+OBl+OBluOBjSzjgZnjgZnjgoANCivjgZ/jgarjgYss44GP44Gr44GTDQor44KA44KJ44KC44GoLOOBqOOCguOBguOBjQ0KK+OBvuOBiOOBoCzjgbLjgZXjgYvjgZoNCivjgb/jgoTjgZEs44GC44Gk44GXDQor44Go44GG44GY44G+LOOBn+OBpOOBsuOCjQ0KK+OBiuOBiuOChCzjgb7jgZXjgosNCivjgYbjgYjjga4s44Go44KC44Gy44KNDQor44Gf44GL44GV44GNLOOChOOBmeOBsuOBlQ0KK+OBk+OCk+OBrizjgojjgZfjgbLjgZUNCivjgZ/jgZHjgYos44Gu44KK44GL44GaDQor44GL44Gq44KE44G+LOOChOOBmeOBsuOBkw0KK+OBiuOBiuOBiuOBiyzjgajjgZfjgo3jgYYNCivjgZPjgbDjgoTjgZcs44GX44KF44GGDQor44Gr44GX44GW44GLLOOBv+OBiw0KK+OBvuOBmeOBv+OBoCzjgajjgoLjgbLjgZMNCivjgaTjgbzjgYQs44KE44GZ44GKDQor44Gf44GM44G/LOOBvuOBleOCiw0KK+OBiuOBi+OBoCzjgabjgovjgYoNCivjgYvjgZ/jgY7jgoos44GV44Go44GXDQor44GL44KP44GmLOOBn+OBi+OBlw0KK+OBv+OBmuOBhCzjgYLjgoTjgYoNCivjgYvjgZXjgYrjgYss44Go44GX44Gy44GTDQor44Gy44GM44GX44Gf44GrLOOBsuOBp+OBteOBvw0KK+OBhuOBl+OBjSzjgYvjgZrjgYTjgaENCivjgbLjgonjgZXjgo8s44Gq44GM44GTDQor44Gq44KK44GfLOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBoOOBvizjgYvjgZrjgbLjgo0NCivjgYTjga7jgb7jgZ8s44Gy44KN44G/DQor44GN44KA44KJLOOBl+OCh+OBhuOBlA0KK+OBhOOBqOOBhizjgbXjgb/jgYoNCivjgo/jgZ/jgarjgbks44Gm44KL44GC44GNDQor44Gm44KJ44GV44KPLOOBv+OBpOOBig0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYLjgZXjgY/jgoks44GX44KT44KEDQor44KE44G+44GNLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYjjga7jgoLjgags44Gy44KN44G/44GhDQor44GL44G+44GfLOOBn+OBi+OBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgarjgYrjgY0NCivjgYLjgonjgYQs44KI44GX44G/DQor44GL44KK44KELOOBn+OBi+OBsuOBkw0KK+OBk+OCk+OBqSzjgojjgZfjgY0NCivjgb7jgZnjgaAs44Gy44KN44GKDQor44GE44Go44GGLOOBkeOBhOOBmeOBkQ0KK+OBiuOBiyzjgb/jgaHjga/jgosNCivjgYrjgYrjgaTjgYss44Gy44Gn44GNDQor44G+44Gk44GKLOOBk+OBhuOBmA0KK+OBguOBnSzjgabjgovjgYvjgZoNCivjgYvjgb/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44GL44Gw44Gf44GRLOOBl+OBkuOBruOCig0KK+OBteOBj+OBoCzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44GR44KT44GoDQor44GE44KP44GNLOOBvuOBk+OBqA0KK+OBmeOCkyzjgajjgojjgobjgY0NCivjgYLjgpPjganjgYYs44KI44GX44GKDQor44Gv44GX44KC44GoLOOBi+OBqg0KK+OChOOBr+OBnyzjgbLjgafjgYoNCivjgbXjgZjjgY0s44GR44KT44GYDQor44G+44Gk44GKLOOBleOBqOOBlw0KK+OBguOBiuOBjSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgZTjgajjgYYs44GX44KT44GYDQor44Gr44GX44GL44KPLOOBsuOBqOOBlw0KK+OBmeOBv+OBqCzjgb7jgZXjgbXjgb8NCivjgbLjgonjga4s44GT44GG44GYDQor44GE44Go44GGLOOBkeOBhA0KK+OBk+OBhOOBmuOBvyzjga7jgorjgZMNCivjgYvjgo/jgbDjgZ8s44Gu44Ge44G/DQor44KA44Go44GGLOOBi+OBpOOBruOCig0KK+OBguOBoOOBoSzjgb7jgZXjgZcNCivjgY3jgoks44G+44GV44GXDQor44GC44KE44GuLOOBk+OBhuOBjQ0KK+OBn+OCi+OBhCzjgojjgZfjgYoNCivjga/jgoTjgZcs44GN44KH44GG44GTDQor44GE44GR44GgLOOBmOOCheOCkw0KK+OBu+OCiuOBv+OBnizjgZHjgYTjgZnjgZENCivjgbXjgovjgarjgYws44Gv44KL44Gy44GTDQor44GK44GX44G+LOOBquOBmeOBig0KK+OBr+OChOOBlyzjgbLjgajjgZcNCivjgavjgZcs44KG44GN44G/44GkDQor44GT44KA44KNLOOBi+OBquOCgQ0KK+OBsuOCjeOBn+OBqyzjgojjgZfjgYoNCivjgZnjgYws44Gy44KN44GXDQor44Gk44KL44G/LOOBguOBjeOBsuOBlQ0KK+OBqOOBv+OChOOBvizjgYvjgZrjgb/jgaQNCivjgoTjgb7jgZbjgY0s44KI44GG44GTDQor44GE44GX44GgLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBhuOBoeOBqOOBvyzjgYLjgY3jgokNCivjgYrjgYrjgZXjgo8s44KI44GX44GL44GaDQor44KE44Gq44GOLOOBsuOBp+OBsuOCjQ0KK+OBv+OChOOBl+OBnyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Go44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgZfjgZLjgosNCivjgYbjgYjjgoDjgoks44Gf44GR44GXDQor44GC44GV44GuLOOChuOBhuOBhOOBoQ0KK+OBiuOBiuOChOOBvizjgZHjgpPjgZgNCivjgYvjgo/jga4s44GI44GE44GTDQor44Gw44GwLOOBsuOBqOOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYbjgYjjga4s44Gu44G244KG44GNDQor44GX44KJ44GELOOBkeOCk+OBl+OCkw0KK+OBhOOBi+OBvyzjga/jgovjgYoNCivjgYvjgo/jgZfjgb4s44Go44KC44KG44GNDQor44G/44KE44GRLOOBn+OBi+OBsuOCjQ0KK+OBleOBj+OCieOBhCzjgZHjgpPjgZgNCivjgZ/jgZHjga7jgZfjgZ8s44GX44KF44GG44G444GEDQor44Gr44GX44GK44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBj+OCjeOBjSzjgb7jgZXjgojjgZcNCivjgZ/jgarjgYss44G/44Gu44KLDQor44GE44GE44GY44G+LOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgbLjgo3jgYLjgY0NCivjgZXjgY/jgonjgYQs44GL44Ga44GX44GSDQor44KE44Gq44GO44GV44KPLOOBruOBtuOBig0KK+OBhuOBoeOChOOBvizjgZfjgZLjgojjgZcNCivjgYrjgY/jgaQs44GL44Ga44Go44GXDQor44Gr44GX44KE44G+LOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgZ/jgYvjgZMNCivjgbXjgorjga/jgoks44GL44Ga44GKDQor44KE44G244GNLOOBvuOBleOBsuOCjQ0KK+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgojjgZfjgYrjgYss44GL44Ga44KEDQor44KC44Gh44Ga44GNLOOBn+OBi+OChuOBjQ0KK+OBmeOBjuOChOOBvizjgbLjgafjgbLjgo0NCivjgYTjgo/jgarjgYws44GR44GE44GE44GhDQor44G/44KPLOOBr+OCi+OBi+OBmg0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgY0NCivjgZ/jgYvjgaAs44GT44GG44GYDQor44GE44GX44G+44KLLOOBl+OBkuOChOOBmQ0KK+OBiuOCgOOCiSzjgbLjgafjgYoNCivjgY3jgZ/jgoDjgoks44KK44GLDQor44GZ44GO44GNLOOBn+OBi+OBjQ0KK+OBq+OBl+OCgOOCiSzjgaHjgYjjgZMNCivjgarjgYvjga/jgoks44GT44GG44GE44GhDQor44G+44Gk44KC44GoLOOBguOBjeOCiQ0KK+OBteOBj+OBl+OBvizjgb7jgZXjgosNCivjgYvjgZjjgYrjgYss44GC44GN44Gy44GoDQor44Gq44GL44GW44KPLOOBruOBvOOCiw0KK+OBvuOBmeOBluOBjSzjgZ/jgYvjgZcNCivjgarjgYss44Go44GX44Gf44GLDQor44GK44GV44GgLOOBr+OBmOOCgQ0KK+OBi+OCj+OBnyzjgarjgYrjgb8NCivjgojjgZfjgaAs44GT44GG44GYDQor44Gq44GLLOOBqOOBl+OBsuOCjQ0KK+OBiOOBhOOBqeOCgSzjgbLjgafjgYvjgZoNCivjgb7jgaTjgoLjgags44KI44GX44G+44GVDQor44Gq44GM44GV44GLLOOCiOOBl+OBguOBjQ0KK+OBteOBmOOBleOCjyzjgYvjgaTjgbLjgZMNCivjgY3jgojjgZ/jgass44Gk44Go44KADQor44GC44KK44KC44GoLOOBm+OBhOOBkw0KK+OBiOOBnuOBiCzjgZHjgYTjgYTjgaENCivjgaTjgaHjgoQs44GL44Ga44KEDQor44G144GY44GK44GLLOOChOOBmeOBkw0KK+OBpOOBi+OCguOBqCzjgbXjgb/jgYoNCivjgZ/jgYvjga/jgZcs44Go44KI44Gy44GTDQor44GV44GL44GE44GgLOOChOOBmeOBsuOCjQ0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgYrjgZfjgb4s44KE44GZ44Go44GXDQor44G+44GN44GG44GhLOOBn+OBj+OChA0KK+OBr+OCieOBoCzjgbLjgZXjgYvjgZoNCivjgb7jgZXjgY0s44GC44GN44KJDQor44GK44GM44KPLOOBruOBtuOBguOBjQ0KK+OBhuOBl+OBvuOCiyzjgZHjgpMNCivjgYTjgZfjgaAs44Gu44G244Gf44GLDQor44Gv44Gq44G244GVLOOBguOBpOOBkw0KK+OCiOOBl+OCgOOCiSzjgojjgZfjgbLjgZUNCivjgZ/jgavjgYzjgo8s44G+44KK44GKDQor44GV44Go44GGLOOBn+OBpOOBlw0KK+OBi+OBpCzjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44Gy44KN44GNDQor44Gv44GP44Gh44KH44GGLOOBhOOBleOBig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgYvjgYQs44GL44Ga44Gu44KKDQor44Gf44KT44GULOOBsuOBp+OBig0KK+OBk+OBhOOBmuOBvyzjgZHjgpPjgZnjgZENCivjgo/jgYvjgZnjgY4s44Gf44Gg44Gf44GLDQor44GG44GI44GuLOOBl+OCk+OBhOOBoQ0KK+OBhuOBiOOBoCzjgajjgoLjgY0NCivjgZnjgZrjgY0s44Gy44GV44GIDQor44GK44GK44GuLOOCiOOBl+OBruOCig0KK+OBguOBuSzjgZHjgpPjgYTjgaENCivjgZfjgYTjgY0s44Gy44KN44GXDQor44GC44KJ44GNLOOBjeOCiOOBr+OCiw0KK+OBguOBmuOBvizjgbLjgo3jgojjgZcNCivjgafjgZDjgaEs44Gy44KN44Gu44KKDQor44GI44KK44GL44KPLOOChuOBhuOBkw0KK+OBteOBi+OChOOBvizjga7jgbbjgobjgY0NCivjgbXjgarjgY0s44GV44GL44GIDQor44GE44Gh44KA44KJLOOBvuOBk+OBqA0KK+OBr+OBl+OCguOBqCzjga7jgorjgYLjgY0NCivjgbLjgYzjgZcs44GN44KI44Gf44GLDQor44Gy44KN44GV44KPLOOBguOBpOOBlw0KK+OBu+OCiuOBkOOBoSzjgobjgYbjgYTjgaENCivjgYTjgbDjgonjgY0s44KG44GG44GE44GhDQor44GE44Gq44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBi+OCjyzjgb/jgY3jgYoNCivjgYTjgajjgYQs44Gf44Gg44GXDQor44GL44Gq44GW44GXLOOBruOCiuOBkw0KK+OBi+OBn+OBjuOBlyzjgb7jgZXjgZcNCivjgYvjgajjgYYs44KE44GZ44GXDQor44GL44KP44GgLOOBkeOCk+OBmeOBkQ0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GL44Gk44Gu44KKDQor44GT44G+44GkLOOChOOBmeOBn+OBiw0KK+OBk+OBn+OBqyzjgbLjgafjgY0NCivjgY/jgo3jgZss44GK44GV44KADQor44G+44GI44GgLOOChuOBhuOBmA0KK+OBvuOCk+OBn+OBqyzjgojjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44KE44GZ44GC44GNDQor44G/44KA44KJLOOBl+OBkuOBruOBtg0KK+OBv+OCjyzjgb7jgZXjgbLjgo0NCivjgoLjgorjgZ8s44GC44GN44Gy44GTDQor44KA44Gt44KA44KJLOOBqOOBl+OBv+OBpA0KK+OBquOBjOOBnyzjgZHjgpPjgZgNCivjgarjgYvjgZPjgZgs44Gf44Gk44KEDQor44Gq44GL44KA44KJLOOCiOOBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgZ/jgYvjgZcNCivjgavjgoDjgoks44GZ44GZ44KADQor44KE44GY44G+LOOCiOOBl+OBiA0KK+OBruOBvizjgajjgojjgb8NCivjgazjgY3jgYQs44GL44Gk44G/DQor44GK44GM44GV44KP44KJLOOBl+OCheOBhuOBmA0KK+OBiuOBiuOBleOCjyzjgbLjgafjgZ/jgYsNCivjgb7jgaTjgarjgYws44KI44GX44GC44GNDQor44GK44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBleOBoCzjgoDjgaTjgb8NCivjgZXjgYTjgajjgYYs44GC44GN44Gy44KNDQor44GV44GP44KJ44GELOOBl+OBkuOBruOCig0KK+OBleOBqOOBhizjgojjgZfjga7jgooNCivjgZvjgZbjgYQs44GL44Ga44KE44GZDQor44GX44G/44GaLOOBguOBjeOBqOOBlw0KK+OBl+OCh+OBhuOBv+OBpCzjgojjgZfjgbLjgo0NCivjgZnjgY7jgZXjgo8s44Gu44G244KG44GNDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgobjgYbjgZMNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44Gf44GL44GV44GLLOOBr+OBmOOCgQ0KK+OBteOBmOOBhCzjgYLjgaTjgZMNCivjgZ/jgb7jgY0s44GV44Go44GTDQor44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBqOOBjeOBnuOBrizjgZfjgZLjgYoNCivjgajjgorjgZbjgo8s44GI44G/DQor44Gk44KL44GL44KPLOOBiOOBhOOBmA0KK+OBhuOBoCzjgbLjgZXjgojjgZcNCivjgYbjgoHjgoDjgoks44GN44G/44Gy44KNDQor44KP44Gf44KKLOOChOOBmeOCiOOBlw0KK+OChOOBvuOCguOBqCzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44G+44GV44KI44GXDQor44KE44GuLOOChuOBjeOBig0KK+OCiOOBoCzjgYTjgZXjgYoNCivjgoTjgb7jgZDjgaEs44GL44Ga44KI44GXDQor44G7LOOBguOBjeOCiQ0KK+OBvuOBpOOBv+OChCzjgobjgYbjgYTjgaENCivjgZXjgo/jgaAs44Gy44KN44GXDQor44GT44Gv44KJLOOBvuOBleOBruOCig0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgoTjga4s44G/44Gk44GKDQor44G144GY44KC44KKLOOBruOCiuOBkw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgaAs44Gf44GL44GXDQor44G144GY44GfLOOBqOOBl+OBjQ0KK+OBjeOCgOOCiSzjgZ/jgZHjgYoNCivjga/jgoTjgZcs44G+44GV44Gy44KNDQor44G+44GI44GW44KPLOOBhOOBmuOBvw0KK+OBl+OBtuOBi+OCjyzjgY3jgojjgbLjgZUNCivjgb/jgbss44G+44GV44Gu44KKDQor44GZ44GO44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBteOCi+OBi+OCjyzjgojjgZfjgbXjgb8NCivjga7jgaHjgZss44GL44Ga44Gy44GTDQor44G+44Gk44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBiuOBj+OBrizjgobjgY3jgYoNCivjgoTjgb7jgZbjgY0s44KE44GZ44Gy44KNDQor44GE44GX44GSLOOBguOBjeOBkw0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgZ7jgYYNCivjgbDjgbAs44Gf44GP44KEDQor44KC44Gh44Ga44GNLOOBiOOBv+OBkw0KK+OBqOOBj+OBquOBjCzjgbXjgb/jgbLjgagNCivjgY/jgo3jgYvjgo8s44Gy44KN44GXDQor44GE44GR44GuLOOCgeOBkOOBvw0KK+OChOOBvuOBi+OBkizjgojjgYbjgZgNCivjgoTjgY7jga/jgZcs44GX44KF44GG44GE44GhDQor44GN44KI44G/44GkLOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgYjjgYTjgZjjgoUNCivjgYrjgYrjgaTjgYss44Gy44Gn44Gy44GTDQor44GK44KE44G+44GgLOOBn+OBi+OBlw0KK+OBguOBkuOBnyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgoLjgYYs44GC44GN44GKDQor44GC44KJ44GL44KPLOOBsuOBp+OBlw0KK+OBsOOCk+OBrizjgb7jgZXjgY3jgogNCivjgYjjgZXjgY0s44GX44KT44GE44GhDQor44G144GL44GW44KPLOOBqOOCguOBsuOBqA0KK+OBteOBquOBsOOBlyzjgb7jgZXjgobjgY0NCivjga/jgarjgaAs44GL44Gk44Gu44KKDQor44Gv44GX44KC44GoLOOBiOOBv+OBkw0KK+OBsuOBmOOBj+OCjSzjgarjgYrjgobjgY0NCivjgbvjgYbjgoQs44GL44Ga44Gy44GTDQor44G744Gd44GgLOOBoeOBiOOBvw0KK+OBhOOBkeOBluOCjyzjga7jgbbjgoTjgZkNCivjgYTjgazjgaTjgYss44Gq44GK44GNDQor44GL44GY44Gf44GrLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgaHjgY/jgZUNCivjgYTjgo/jgZfjgZ8s44GX44GTDQor44GL44G/44KELOOBj+OBq+OBguOBjQ0KK+OBi+OBmeOChCzjgYLjgY3jgokNCivjgYvjgo/jgbDjgZ8s44Gg44GEDQor44GL44KP44GP44G8LOOBi+OBmuOBqOOBlw0KK+OBjeOBsOOBlyzjgbLjgafjgbLjgZMNCivjgY3jgorjgZXjgo8s44GE44Gh44KN44GGDQor44GT44Gg44G+LOOBiuOBleOCgA0KK+OBqOOBhuOBqeOBhizjgZPjgYbjgZgNCivjgZPjgoTjgYTjgZcs44G/44GLDQor44GP44KJ44GfLOOBk+OBmeOBkQ0KK+OBj+OCj+OBrizjgbLjgo3jgZ/jgYsNCivjgb7jgZnjgaAs44GY44KF44KTDQor44G+44Gk44GX44GfLOOBn+OBoOOBlw0KK+OBv+OChOOBkSzjgYLjgaTjgZcNCivjgb/jgojjgaAs44Gf44GL44Gy44GVDQor44G/44Ga44Gf44GrLOOBpOOCiOOBlw0KK+OCguOCiuOCj+OBjSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoDjgajjgYYs44GL44Gk44GNDQor44Gq44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBvizjgbLjgZXjgojjgZcNCivjgavjgZfjgaAs44Gy44KN44KI44GXDQor44Gr44GX44GKLOOBvuOBleOBqA0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjgYrjgaDjgYrjgYrjga/jgoks44GX44KT44GUDQor44GK44GK44Gy44KJLOOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBrOOBvizjgarjgovjgZcNCivjgYrjgYrjgoTjgY4s44G+44GV44Gy44KNDQor44GK44GL44GtLOOBn+OBi+OBlw0KK+OBiuOBj+OBrizjgYvjgaTjgZcNCivjgZXjgYTjgajjgYYs44KI44GX44G/DQor44GV44GL44GG44GILOOChOOBmeOChuOBjQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgZvjgY3jgoLjgags44Go44GX44KG44GNDQor44GX44GE44GqLOOBteOBv+OBr+OCiw0KK+OBl+OBv+OBmizjgbLjgafjgajjgZcNCivjgZfjgonjgZXjgY0s44KI44GG44GTDQor44GZ44Gp44GGLOOBleOBqOOBkw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44KG44KKDQor44KE44G+44GW44GNLOOBquOBiuOBjQ0KK+OBn+OBi+OBmSzjgYvjgZrjgogNCivjgZ/jgZHjgaAs44Gy44KN44KG44GNDQor44Gf44G+44Gf44GrLOOBi+OBmuOBguOBjQ0KK+OBn+OBq+OCguOBqCzjgZfjgpPjgYTjgaENCivjgajjgb/jgarjgYws44Gy44KN44Gy44GVDQor44Gk44GL44GgLOOBsuOBp+OBjQ0KK+OBhuOCieOBi+OCjyzjgobjgYbjgZgNCivjgo/jgZ/jgoos44GT44GG44GYDQor44KE44G+44KC44GoLOOBguOBpOOBlw0KK+OChOOBvuOBl+OBnyzjgajjgZfjgbLjgacNCivjgoTjgZbjgY0s44Gf44GR44GXDQor44KI44GT44GfLOOChuOBhuOBkw0KK+OCiOOBl+OBi+OCjyzjgb/jgaTjgbLjgo0NCivjgYLjgZXjga4s44G/44Gh44GTDQor44GK44GP44GgLOOBsuOBleOBkw0KK+OBhOOBquOBoCzjgb7jgZXjgaTjgaoNCivjgZfjgoLjgYvjgo8s44G144G/44Gy44GTDQor44Gk44G844GfLOOBruOCiuOBig0KK+OBiuOBiuOBj+OBvCzjgZ/jgZHjgZcNCivjgZXjgYTjgajjgYYs44GX44KF44GG44GE44GhDQor44G144GY44GfLOOBpOOBreOBig0KK+OBvuOBjeOCgOOCiSzjgZ/jgZHjgYoNCivjgavjga7jgb/jgoQs44GL44Ga44GKDQor44Gf44Gw44GfLOOCiOOBl+OBn+OBiw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgY0NCivjgYTjgb7jgavjgZcs44Gf44GR44GKDQor44Gf44GN44GM44KPLOOBl+OBkuOCiOOBlw0KK+OBiuOCk+OBmuOBiyzjgbLjgo3jgZcNCivjgajjga7jgYvjgo8s44Gf44GR44GXDQor44GE44GR44GgLOOBqOOBjeOBig0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZ3jgaAs44GR44KT44GYDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OBn+OCk+OBrizjgYjjgYTjgYTjgaENCivjgZTjgYbjgaAs44GN44KH44GG44GTDQor44KE44G+44GQ44GhLOOBsuOCjeOBi+OBmg0KK+OBiuOBleOBquOBhCzjgYLjgaTjgZcNCivjgbLjgYzjgZcs44GX44KH44GG44GTDQor44KE44G+44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgYoNCivjgb/jgZ7jgZDjgaEs44Go44GX44KG44GNDQor44GN44Gf44GM44KPLOOBsuOCjeOBlw0KK+OBiuOBiuOBq+OBlyzjgZ3jgYbjgYTjgaENCivjgYLjgYTjga/jgoks44Gy44Gn44GKDQor44GC44GN44GwLOOBpOOBqOOCgA0KK+OBguOBvuOBrizjgajjgYrjgosNCivjgYLjgYrjgoTjgY4s44Gf44GL44GKDQor44GC44KJLOOBguOBjeOBig0KK+OBguOBleOBrizjgojjgZfjgbLjgo0NCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44GI44Gz44Gs44G+LOOBguOBkeOBvw0KK+OBteOBmOOBiOOBoCzjgZjjgoXjgpMNCivjgbXjgZjjgYQs44GX44GS44Gu44KKDQor44GK44GQ44KJLOOBguOChOOBkw0KK+OBteOBi+OBiizjgb/jgaTjgbLjgo0NCivjgbXjgY/jgaAs44G/44GLDQor44G144GP44GK44GLLOOBl+OCk+OBlA0KK+OBlOOBhuOBoCzjgojjgorjgZMNCivjga/jgY7jgo/jgoks44GN44GP44GKDQor44Gv44Gq44G/44GkLOOCiOOBl+OBn+OBiw0KK+OBr+OCiSzjgb/jgobjgY0NCivjga/jgaTjgZfjgb4s44GR44KTDQor44Gv44Gj44Go44KKLOOCiOOBl+OBruOCig0KK+OBr+OChOOBlyzjgYvjgaTjgb8NCivjgbLjgarjgZ8s44GY44KF44KTDQor44Gy44KJ44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBsuOCjeOBmyzjgbLjgZXjgobjgY0NCivjgZnjgY7jgoLjgags44Gb44GE44GE44GhDQor44G744KKLOOBi+OBmuOBig0KK+OBu+OBnSzjgYvjgZrjgb8NCivjgYTjgafjgYQs44G+44GV44GL44GaDQor44GE44GE44KA44KJLOOCiOOBl+OBruOBtg0KK+OBhOOBkeOBoCzjgY/jgavjgbLjgo0NCivjgYTjgb7jgYQs44Gf44Gg44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OBkOOCjSzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KI44GG44GTDQor44GE44GX44KP44GfLOOBquOBiuOBsuOBlQ0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GE44KP44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgbLjgZMNCivjgYvjgYzjgb8s44GX44GS44KI44GXDQor44GL44G+44KC44GoLOOBn+OBiOOBkw0KK+OBi+OBvyzjgb7jgZPjgagNCivjgYvjgarjgZbjgo8s44GV44Gg44GE44GhDQor44GL44Gt44GTLOOChOOBiA0KK+OBi+OBl+OCj+OBjizjgbLjgo3jgZcNCivjgYvjgZ/jgYrjgYss44GC44Gk44GXDQor44GU44Go44GGLOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBr+OCiSzjgbLjgo3jgYLjgY0NCivjgYvjgo/jgY3jgZ8s44KE44GZ44GTDQor44GN44GgLOOCiOOBl+OBteOBvw0KK+OBjeOCgOOCiSzjgb/jga7jgosNCivjgYrjgYvjgZbjgY0s44Gf44GR44GKDQor44GN44Gf44KA44KJLOOBguOBjeOBig0KK+OBk+OBsOOChOOBlyzjgb/jgojjgZMNCivjgbLjgo3jgZss44Gv44KL44GKDQor44GT44GV44GLLOOCiOOBl+OChuOBjQ0KK+OBk+OBj+OBvuOBhCzjgb/jgYjjgZMNCivjgZPjgoLjgYrjgYss44G144G/44GKDQor44GT44KT44Gp44GGLOOBn+OBpOOBqA0KK+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgY/jgb7jgoLjgags44GC44GN44Gy44GTDQor44GP44KK44KE44G+LOOChuOBjeOBiA0KK+OBj+OBl+OBoCzjgo/jgZ/jgosNCivjgb7jgYjjgYvjgo8s44Gy44Gn44Gf44GLDQor44G+44GZ44GgLOOBv+OBjeOBig0KK+OBvuOBpOOBoCzjgZfjgZLjgYoNCivjgYvjga7jgYYs44Gy44KN44KG44GNDQor44G+44Gk44Gq44G/LOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBluOBjSzjgZ/jgaDjgZcNCivjgb/jgoLjgoos44Gy44KN44GXDQor44G/44GG44KJLOOCiOOBhuOBhOOBoQ0KK+OBv+OChOOBr+OBlyzjgY3jgofjgYbjgZMNCivjgb/jgoTjgZ/jgZEs44GX44GS44G/DQor44G/44Ga44GT44GXLOOBqOOBl+OBig0KK+OCguOCiuOBjSzjgoTjgZnjgbLjgo0NCivjgoLjgoos44GV44Go44KLDQor44KA44GL44GELOOBn+OBpOOBvw0KK+OCgOOCieOBnyzjgZXjgajjgZcNCivjgoDjgaTjgZfjgYss44GI44GE44GE44GhDQor44Gq44GM44GV44KPLOOBi+OBmuOBqA0KK+OBquOBjOOBiCzjgZ/jgYvjgobjgY0NCivjgarjgYvjgZjjgb4s44GL44Gk44Go44KCDQor44Gq44GL44G+44GfLOOBruOCiuOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjga/jgZjjgoENCivjgYrjgYrjgavjgZcs44G+44GV44Gu44KKDQor44Gq44GL44GuLOOCguOBiOOBkw0KK+OBquOBi+OBnyzjgZfjgZLjgZMNCivjgarjgYvjgoTjgb4s44GL44Gk44Gy44GTDQor44Gq44Gk44KE44G+LOOChuOBhuOBkw0KK+OCguOCiizjgobjgY3jgZMNCivjgavjgo8s44G+44GV44GNDQor44Gu44G+LOOBleOBqOOBlw0KK+OBruOCiuOBi+OBrSzjgb7jgZXjgosNCivjgYrjgaDjga0s44KI44GX44GL44GaDQor44GK44GK44Gw44KE44GXLOOChOOBmeOChuOBjQ0KK+OBiuOBjSzjgojjgZfjgobjgY0NCivjgYrjgonjgYQs44GZ44GZ44KADQor44GK44GK44Go44KCLOOBguOBjeOBig0KK+OBiuOBsuOCgyzjgY/jgavjgbLjgZMNCivjgYrjgYvjgoLjgags44KI44GX44GKDQor44GG44GI44GgLOOBqOOCiOOBi+OBmg0KK+OBq+OBlyzjgYLjgaTjgY0NCivjgZ/jgaAs44Gf44GL44KG44GNDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OBleOBleOCguOCiizjgobjgZ/jgYsNCivjga/jgZvjgYzjgo8s44Go44KC44KG44GNDQor44GE44G+44GELOOBv+OChuOBjQ0KK+OCiOOBk+OChOOBvizjgZHjgpPjgZgNCivjgZnjgY7jgoTjgb4s44KI44GX44G+44GVDQor44GC44KJ44GELOOBqOOCguOBkw0KK+OBguOBvuOBjOOChCzjgobjgoHjga4NCivjgaTjgoss44G/44Gu44KLDQor44KE44GE44GfLOOBvuOBjQ0KK+OBm+OBjSzjgb7jgooNCivjga/jgoks44KI44GX44Gu44KKDQor44G/44GG44KJLOOBmeOBmeOCgA0KK+OBleOBlSzjgobjgY3jgZMNCivjgZ/jgYvjgZXjgY0s44G+44GN44GTDQor44Gv44KJ44GgLOOBiOOBv+OBkw0KK+OBj+OCieOBnyzjgoTjgZnjgbLjgo0NCivjgYLjgZLjgb7jgaQs44Gy44KN44G/44GhDQor44G144GP44KC44GoLOOBv+OBjeOBig0KK+OBiuOBj+OCgOOCiSzjgaDjgYQNCivjgYrjgZ3jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44GV44GE44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZXjgYvjgoos44Gu44G244Gy44KNDQor44GV44GuLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgojjgZfjgbLjgZMNCivjgZXjgajjgYYs44GC44GN44GKDQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBm+OBjeOBi+OCjyzjgYLjgY3jgokNCivjgZvjgZfjgoIs44GT44GG44GYDQor44GX44G244KELOOBvuOBleOBruOCig0KK+OBl+OBvuOCguOCiizjgb7jgZXjgbLjgZMNCivjgZfjgoLjgaAs44GR44GE44G/44KTDQor44GX44KT44Gf44GrLOOChuOBhuOBmA0KK+OBl+OCieOBhCzjgZfjgZLjgY0NCivjgZfjgoXjgYYs44GU44GE44GhDQor44GZ44GgLOOBquOBiuOBjQ0KK+OBmeOBjuOBnyzjgobjgYbjgYTjgaHjgo0NCivjgZnjgZbjgY0s44Gm44Gk44KEDQor44GZ44Ga44GNLOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjga7jgorjgobjgY0NCivjgZ/jgYzjgYQs44KE44GZ44GXDQor44Gf44GL44GOLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgZMNCivjgZ/jgYvjgYTjgZcs44Go44KC44GC44GNDQor44Gf44GL44GK44GLLOOBn+OBi+OBjQ0KK+OBn+OBi+OChOOBvizjgZfjgpPjgYTjgaENCivjgZ/jgZHjgoLjgags44Gu44Ge44G/DQor44Gf44G+44GhLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgbLjgo3jgbXjgb8NCivjgZ/jgass44Gy44KN44G244G/DQor44Gm44KJ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBjizjga7jgorjgbLjgZUNCivjgajjgojjgZXjgags44Gy44KN44GXDQor44Gk44GY44KC44GoLOOChuOBjeOBig0KK+OBpOOCi+OBnyzjgZfjga7jgbYNCivjgYbjgaHjgoTjgb4s44Gf44GR44GXDQor44GN44GN44KH44GGLOOCiOOBl+OBn+OBiw0KK+OBhuOBiOOBrizjgojjgZfjgZMNCivjgarjgYzjgZ8s44Gu44KK44GTDQor44KP44GgLOOBl+OBmuOBig0KK+OBhOOBqOOBhCzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgarjgbks44Gy44Gn44Go44GXDQor44KE44G244GG44GhLOOBl+OCh+OBhuOBuOOBhA0KK+OChOOBvuOBoCzjgYLjgY3jgYoNCivjgoTjgb7jgoLjgags44GC44GN44Gy44KNDQor44KE44G+44KC44GoLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBl+OBnyzjgaTjgajjgoANCivjgoTjgb7jgZfjgZ8s44GC44GN44KJDQor44KE44GuLOOBqOOCguOChuOBjQ0KK+OCiOOBk+OBnyzjgb/jgarjgZMNCivjgojjga3jgoDjgoks44Gf44Gg44GXDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgbvjgZ3jgoQs44GX44KH44GG44GYDQor44G/44KE44GX44GfLOOBl+OBkuOBqOOCgg0KK+OBl+OBjCzjgb7jgZXjgb/jgaQNCivjgoTjgb7jgaAs44KG44GG44GE44GhDQor44Gv44KE44GXLOOBleOBu+OCig0KK+OBhOOBkeOBoCzjgaTjgojjgZcNCivjgYbjgYjjga4s44GL44Ga44Gf44GLDQor44GV44GE44Go44GGLOOBpuOCi+OCiOOBlw0KK+OBquOBjOOChOOBmSzjgZPjgYbjgZgNCivjga/jgY7jgYos44Go44KC44Gy44GTDQor44Gv44G+44GgLOOBvuOBleOBmA0KK+OCgOOCieOBi+OBvyzjga7jgorjgbLjgo0NCivjgYLjgbks44GX44KF44KT44GYDQor44GC44GN44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBguOCk+OBqeOBhizjgabjgpPjgZvjgYQNCivjgYLjgonjgY0s44GX44GS44G/44GkDQor44GC44GdLOOBj+OBq+OBi+OBmg0KK+OBsOOBsCzjgobjgYbjgZnjgZENCivjgYjjgbPjgZXjgo8s44Gy44KN44GXDQor44G144GY44GELOOCiOOBl+OBruOCig0KK+OBteOBmOOBhCzjgZ/jgaTjgoQNCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44G144GY44KP44KJLOOBsuOCjeOCgA0KK+OBteOBj+OBoCzjgZjjgoXjgpMNCivjgbXjgY/jgYrjgYss44GE44GV44GKDQor44G144KL44KELOOBqOOBl+OChuOBjQ0KK+OBjOOBqSzjgbLjgZXjgZcNCivjga/jgYws44GC44Gk44GXDQor44Gv44G+44GX44G+LOOChuOBvw0KK+OBr+OBmyzjgobjgZ/jgYsNCivjga/jgZfjgZrjgoEs44Gq44GK44GNDQor44Gk44GgLOOBsuOCjeOBkw0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjgbLjgonjgYQs44KG44GG44GE44GhDQor44Gy44KJ44GV44GLLOOBsuOCjeOChuOBjQ0KK+OBsuOCjeOCj+OBn+OCiizjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44G744Gd44G/LOOBsuOCjeOBguOBjQ0KK+OBhOOBoCzjgaHjga/jgosNCivjgYTjgYzjgonjgZcs44KG44GN44KEDQor44GE44GE44GY44G+LOOBn+OBkeOBlw0KK+OBhOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjgYTjgozjgYQs44G+44GV44KLDQor44GE44GX44GELOOBqOOCguOChuOBjQ0KK+OBhOOBneOBrizjgb/jgaTjgajjgZcNCivjgYTjgajjgYYs44KI44GX44G+44GVDQor44GE44KP44GVLOOBqOOBl+OBvw0KK+OBhOOBmuOBv+OBleOCjyzjgZvjgYTjgZgNCivjgYvjgYTjgaAs44GT44GG44GYDQor44GL44G+44GfLOOBqOOBl+OBiA0KK+OBi+OCk+OBuSzjgZ/jgYvjgbLjgo0NCivjgYvjga3jgZMs44GC44GN44KJDQor44KI44Gt44KC44GhLOOBquOBiuOBlw0KK+OBi+OBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgYvjgajjgYYs44KE44GZ44Gy44KNDQor44GL44Go44GGLOOChuOBhuOBmA0KK+OBn+OBvuOBjOOCjyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgovjgZEs44Gf44GL44GXDQor44GN44GpLOOBn+OBi+OBteOBvw0KK+OBjeOBj+OCiSzjgYvjgaTjgb8NCivjgY3jgoDjgoks44G+44GV44GNDQor44GN44Gu44GX44GfLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBguOBjSzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBqOOBl+OBjQ0KK+OBk+OCk+OBrizjgojjgYYNCivjgZPjgb/jgoTjgb4s44KI44GX44Gy44KNDQor44GT44Gr44GXLOOBguOBjeOBruOCig0KK+OBk+OChOOBvizjgbLjgo3jgb8NCivjgY/jganjgYYs44GY44KF44KTDQor44GP44KK44KELOOChuOBhuOBhOOBoQ0KK+OCiOOBl+OBoCzjgZXjgajjgosNCivjgb7jgY3jga4s44Go44GX44GKDQor44G+44GV44GNLOOBsuOBp+OCiA0KK+OBvuOBpOOBhCzjgoTjgZnjgbLjgo0NCivjgb7jgaTjgoLjgags44Gf44GR44GXDQor44G+44Gk44KE44G+LOOBmOOCheOCkw0KK+OBv+OBn+OCgOOCiSzjgZjjgoXjgpMNCivjgb/jgo/jgZ8s44Gq44GK44GNDQor44G/44KE44KC44GoLOOBsuOBqOOBvw0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgYbjgYTjgaENCivjgoLjgoos44G+44GV44KG44GNDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OCguOCiuOCj+OBjSzjga7jgbbjgobjgY0NCivjgoDjgonjgYvjgb8s44Gf44GR44GKDQor44KA44KJ44KE44G+LOOBleOBqOOBlw0KK+OBquOBjOOBl+OBvizjgb/jgaHjga7jgooNCivjgYbjgaHjgZ7jga4s44Gf44GL44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44KI44GX44Gy44GTDQor44Gq44GL44GX44G+LOOBruOCiuOBig0KK+OBquOCieOBr+OCiSzjgZXjgajjgZcNCivjgavjgZfjgbYs44GC44KE44GTDQor44Gr44GX44KC44GoLOOBquOBiuOBkw0KK+OBq+OBl+OBluOCjyzjgaDjgYTjgZnjgZENCivjga7jgZjjgb4s44Gu44KK44GKDQor44Gs44KPLOOBn+OBkeOBlw0KK+OBiuOBjOOCjyzjgZHjgpPjgYTjgaENCivjgYrjgYrjgYzjgY0s44GL44Ga44Gy44KNDQor44GK44GNLOOBvuOBleOBsuOBkw0KK+OBiuOBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgYrjgYrjgazjgb4s44G+44GV44GKDQor44GK44GK44Gf44GRLOOBleOBiOOBkw0KK+OBleOBk+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYvjgaAs44Gm44Gk44GYDQor44GK44GN44GfLOOBleOBqOOBkw0KK+OBiuOBiuOBrizjgZ/jgYvjgZcNCivjgYrjgorjgYQs44GX44KF44KT44GYDQor44GK44GW44KPLOOChOOBmeOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgZHjgYTjgZgNCivjgZXjgYvjgoLjgags44KI44GX44GKDQor44GV44GL44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBquOBjizjgojjgZfjgY0NCivjgZXjgZXjgY0s44Gq44GM44G+44GVDQor44GV44Go44GGLOOBvuOCguOCiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZvjgY3jga4s44Gu44KK44Gy44KNDQor44GX44G+44GgLOOBguOBpOOBlw0KK+OBl+OBv+OBmizjgZ/jgYvjgYLjgY0NCivjgZfjgoLjgaAs44Gy44KN44KG44GNDQor44GX44Gu44GW44GNLOOBguOBpOOBlw0KK+OBl+OCh+OBhuOBoCzjgZHjgpPjgZgNCivjgZnjgYzjga4s44Gy44KN44KG44GNDQor44GZ44GO44GV44GNLOOCiOOBhuOBkw0KK+OBmeOBjuOChOOBvizjgZ/jgZHjgZcNCivjgZnjgZrjgY0s44Gy44Gn44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBruOCig0KK+OBn+OBkOOBoSzjgZfjgpMNCivjgZ/jgYvjga/jgZcs44GL44Ga44Gu44KKDQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjgoTjgarjgY4s44GX44GS44KLDQor44Gf44GR44GELOOBruOBtuOBig0KK+OBn+OBkeOBl+OBvizjgYvjgaTjgZfjgo3jgYYNCivjgZ/jgoDjgoks44GX44KH44GG44GE44GhDQor44Gf44Gq44GLLOOChOOBmeOBmA0KK+OBleOBrizjgbLjgo3jgbXjgb8NCivjgabjgonjgb7jgYgs44G+44GNDQor44Go44GQ44GhLOOBn+OBkeOBlw0KK+OBqOOBv+OBhCzjgb7jgZXjgbLjgo0NCivjgajjgaPjgajjgoos44GC44GN44Gy44GTDQor44Gk44GYLOOBvuOBleOBsuOBkw0KK+OBpOOBjeOBluOCjyzjgZPjgYbjgZgNCivjgaTjgovjgZ8s44Gu44KK44GTDQor44GG44Gh44GgLOOBl+OCh+OBhuOBkw0KK+OBhuOBiOOBoCzjgojjgYbjgZnjgZENCivjgYbjgYjjga4s44GY44KF44KT44GYDQor44GI44GM44GX44KJLOOBn+OBoOOBlw0KK+OBjeOBn+OCj+OBjSzjgZvjgYTjgY0NCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OCieOBhCzjgZjjgo3jgYYNCivjgoTjgb7jgaAs44GC44Gk44GXDQor44G144GY44GfLOOBvuOBleOBqOOBlw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgoTjgb7jga0s44G/44Gh44KLDQor44KE44G+44GX44GfLOOBl+OBkuOBvw0KK+OChOOBvuOBluOBjSzjgZ/jgaDjgZcNCivjgojjgaAs44GX44KF44KT44GZ44GRDQor44KI44GX44GgLOOBi+OBmuOCiOOBlw0KK+OCiOOBl+OCgOOCiSzjgZXjgajjgosNCivjgYrjgZbjgo8s44GL44Gk44KG44GNDQor44KE44G+44GgLOOBjeOCiOOBlw0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgYLjgZzjgYzjgb8s44GX44GS44GL44GaDQor44G144GP44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgo0NCivjgYTjgZ3jgaAs44GT44GG44GE44GhDQor44GL44G+44GfLOOBn+OBpOOChA0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GS44KTDQor44GP44G+44GV44GNLOOCiOOBl+OBguOBjQ0KK+OBv+OBj+OBqyzjgajjgb/jgYoNCivjgYjjgaAs44Gf44GL44GXDQor44Gt44KC44GoLOOBvuOBleOChuOBjQ0KK+OBiuOBrizjgZ/jgY/jgZgNCivjgZXjgYjjgY0s44Gu44KK44KG44GNDQor44Gb44GNLOOChuOBjeOBig0KK+OBmeOChOOBvizjgbLjgo3jgZMNCivjgZ/jgarjgYss44GR44KT44GUDQor44Gf44GW44KPLOOBv+OBjeOBig0KK+OBiOOCk+OBqSzjgZjjgoXjgpPjgZMNCivjgoTjgb7jgZDjgaEs44Gu44KK44GKDQor44KE44GZ44GgLOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgbLjgo3jga/jgZcs44KE44GZ44GKDQor44GL44Go44GGLOOBsuOCjeOCiOOBlw0KK+OBhuOBiOOBr+OBvizjgb/jga7jgosNCivjgb7jgajjgbAs44Gh44Gy44KNDQor44KP44Gf44Gq44G5LOOBqOOBiuOCiw0KK+OBi+OCj+OBl+OBvizjgabjgaTjgYoNCivjgbXjgZjjgYvjgZ8s44G/44Gk44GKDQor44GT44GE44GRLOOBiuOBleOCgA0KK+OBn+OBquOBiyzjgorjgofjgYbjgZ7jgYYNCivjgaDjgZHjgoTjgb4s44Gy44KN44KG44GNDQor44GP44GX44Gz44GNLOOBmeOBkeOBsuOBpw0KK+OBmeOBjOOBr+OCiSzjgabjgaTjgYoNCivjgbLjgYzjgZcs44G144G/44Gy44KNDQor44G744GLLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOCj+OBnyzjgZ/jgYvjgobjgY0NCivjgZnjgYzjgo/jgoks44G+44GZ44GTDQor44GZ44GoLOOBvuOBleOBvw0KK+OBvuOBpOOBluOBjSzjgb7jgZXjga7jgooNCivjgYLjgYvjgb7jgoss44GK44GV44KADQor44GC44G544GL44KPLOOCjOOBhOOBmA0KK+OCiOOBreOBoCzjgb7jgZXjgYoNCivjgZ3jgYzjgbks44KG44GN44GKDQor44KP44GL44Gw44KE44GXLOOBr+OCjOOBig0KK+OBmeOBv+OBnyzjgabjgaTjgoQNCivjgYTjga7jgYbjgYgs44Gf44GL44KI44GXDQor44G/44KE44KC44GoLOOBpOOBqOOCgA0KK+OBteOBmOOBi+OCjyzjgarjgYrjgagNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjga7jgZDjgaEs44GX44GS44GC44GNDQor44GL44KP44Gq44G/LOOBvuOBleOBguOBjQ0KK+OBteOBj+OBl+OBvizjgYLjgY3jgokNCivjgYrjgaDjgo/jgoks44G/44Gh44GKDQor44GK44GK44GfLOOCiOOBhuOBmA0KK+OBi+OCj+OBrizjgZ/jgaDjgojjgZcNCivjgY/jgavjgobjgY0s44KE44GZ44Gy44KNDQor44GX44G+44GgLOOBv+OBpOOCiw0KK+OBn+OBi+OBl+OBvizjgb/jgaTjgY4NCivjgaTjgoQs44G+44GT44GoDQor44Gq44GL44GX44G+LOOBvuOBleOBig0KK+OChOOBjuOBl+OBnyzjgajjgZfjgYoNCivjgY3jgZfjgoLjgags44G+44GT44GoDQor44GP44GSLOOBkeOCk+OBmA0KK+OBguOBleOBrizjgojjgZfjgYLjgY0NCivjgYvjgo/jgYvjgb8s44Gk44Gt44GKDQor44GX44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBteOBmOOBhCzjgZfjgoXjgpPjgYTjgaENCivjgbLjgYws44GY44KF44KT44GNDQor44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBj+OCieOChCzjgY3jgbjjgYQNCivjgarjgYvjgZbjgo8s44G+44GV44Gy44GoDQor44GC44KP44GfLOOBl+OBkuOCiw0KK+OBmOOBoCzjgYLjgY3jgYoNCivjgbvjgZ3jgYvjgo8s44Go44GX44GKDQor44GX44G244KELOOCiOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZcNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gm44KLDQor44G/44Ga44Gf44GrLOOBguOBjeOCiQ0KK+OBn+OBi+OBmyzjgajjgZfjgYoNCivjgb/jgoTjgoDjgoks44Go44GK44KLDQor44KI44GT44Gv44GfLOOBqOOBl+OBsuOBkw0KK+OBquOCiuOBnyzjgb/jgaTjgojjgZcNCivjgYLjgbks44GV44Gg44Gy44KNDQor44Gq44G+44GILOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgarjgZTjgZcs44Gy44Gn44GC44GNDQor44Go44G/44Gq44GLLOOCiOOBl+OBig0KK+OBquOBi+OBrizjgaTjgoLjgosNCivjgYrjgYrjgZXjgY8s44GL44Ga44GKDQor44Gv44KE44GXLOOBl+OBkuOBguOBjQ0KK+OBiuOBiuOBlSzjgZ/jgYvjgZcNCivjgoTjgb7jgYbjgaEs44GYDQor44GK44GgLOOCiuOCh+OBhuOBmA0KK+OCgeOBkOOCjSzjgbLjgo3jgojjgZcNCivjgYvjgarjgZXjgY0s44Go44G/44GKDQor44GK44GL44GuLOOChOOBmeOBig0KK+OBj+OBleOBi+OCjyzjgarjgYrjgY0NCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44KE44GgLOOBi+OBmuOBiuOBvw0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgYoNCivjgZnjgZrjgY0s44KG44GG44GYDQor44Gf44GN44KC44GoLOOBj+OBq+OBig0KK+OBsuOBjOOBl+OBsOOBnyzjgbLjgafjgYoNCivjgYTjgYTjgaAs44GR44KT44GXDQor44GL44KT44GuLOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgYTjgY/jgZ8s44KE44GZ44Gy44GVDQor44GV44GuLOOBsuOBp+OBvuOBlQ0KK+OBmeOBjOOCj+OCiSzjgoTjgZnjgbLjgo0NCivjgarjgYzjgZ8s44KG44GN44GKDQor44GG44KJ44GuLOOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgYvjgaTjgobjgY0NCivjgYrjgYvjgbks44G144G/44GKDQor44GT44GE44GnLOOBn+OBi+OBlw0KK+OBhOOBl+OBn+OBqyzjgZXjgajjgZcNCivjgoLjgoos44GI44GE44GYDQor44GN44Gf44KA44KJLOOBn+OBi+OBlw0KK+OBhOOCj+OBvyzjgoTjgZnjgYoNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44GG44GI44GgLOOChuOBhuOBmA0KK+OBteOCi+OBn+OBqyzjgZ/jgYvjgb7jgZUNCivjganjgYQs44Gf44GL44GXDQor44Gq44GM44GuLOOBqOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgYvjganjgoQs44KG44GG44GUDQor44GK44GK44GfLOOBj+OBq+OBig0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgajjgY/jgoLjgags44Gf44GL44GC44GNDQor44GE44Go44GGLOOBl+OBteOBvw0KK+OChOOBvuOBluOBjSzjgajjgY3jgYoNCivjgYLjgYrjgY0s44KI44GX44G/DQor44Gh44GO44KKLOOBiOOBhOOBmOOCjeOBhg0KK+OCiOOBl+OBquOBjCzjgaHjgYvjgYgNCivjgbLjgonjgbDjgoTjgZcs44Gy44KN44GL44GaDQor44Gq44GL44Gv44KJLOOBkeOCk+OBmA0KK+OBsuOCjeOChCzjga7jgorjgbLjgo0NCivjgYvjgarjgYQs44GL44KT44Gb44GEDQor44Go44GK44KE44G+LOOBn+OBi+OBlw0KK+OBhuOBrizjgY3jgpPjgZQNCivjgZfjgbDjgZ8s44Go44GX44GKDQor44GN44Gf44GM44KPLOOBjeOBr+OBoeOCjeOBhg0KK+OBr+OCieOBoCzjgbLjgafjgobjgY0NCivjgoTjgb7jgoDjgoks44GR44KT44GYDQor44GP44G+44G/LOOChuOBhuOBnuOBhg0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgobjgY0NCivjgZfjgbDjgZ8s44Gv44KL44GNDQor44GV44GP44KE44G+LOOBi+OBmuOBig0KK+OBhOOBkeOBoCzjgZvjgYTjgYTjgaENCivjgZ/jgZHjgoLjgags44GL44Ga44GKDQor44Gf44KC44GoLOOBqOOBv+OBig0KK+OBk+OCgOOCjSzjgorjgofjgYbjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Go44GXDQor44GL44G+44GgLOOBsuOCjeOBlw0KK+OBn+OBsOOBnyzjgZHjgYTjgYTjgaENCivjgbLjgonjgYvjgZ8s44GL44Ga44GKDQor44Gf44GR44GG44GhLOOBpuOBpOOBig0KK+OBhOOBvuOBmizjgoTjgZnjgZ/jgaANCivjgbXjgZjjgZ8s44Go44GX44G/44GhDQor44KE44G+44KC44GoLOOBpOOBqOOCgA0KK+OChOOBvuOBjSzjgobjgYbjgZgNCivjgZfjgonjgYTjgaEs44G+44GV44KLDQor44GV44GV44GNLOOCgOOBpOOBvw0KK+OBv+OChOOBi+OCjyzjgb7jgZXjgZ/jgYsNCivjgY/jganjgYYs44GR44GE44GTDQor44GC44KJ44G+44GNLOOBruOBtuOBig0KK+OBjeOBr+OCiSzjgarjgYrjgY0NCivjgYrjgYss44GN44KH44GGDQor44GT44Gr44GXLOOBl+OBkuOBvw0KK+OBn+OBkeOBhuOBoSzjgZXjgaHjgZMNCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44GV44GL44KC44GoLOOBvuOCguOCiw0KK+OBvuOBpOOBoOOBhOOCiSzjgYjjgYTjgZgNCivjgYTjga4s44Gf44Gk44KN44GGDQor44GK44Gw44GqLOOBl+OBkuOChOOBmQ0KK+OBiuOBiuOBj+OCjyzjgY3jgojjgZcNCivjgZTjgajjgYYs44GX44KT44GYDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBq+OBl+OBiuOBiyzjgZXjgbbjgo3jgYYNCivjgZXjgZXjgY0s44Gy44Gn44GKDQor44Gv44KJLOOBhOOBj+OBig0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44Gy44Go44GXDQor44G144GY44GfLOOBl+OCheOCk+OBmeOBkQ0KK+OBleOBi+OBnyzjgZPjgYbjgYTjgaENCivjgb7jgYjjgZbjgY0s44GE44GV44GKDQor44GX44GK44G/LOOBv+OBpOOBig0KK+OBn+OBi+OBj+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgZfjga/jgoks44Gh44GI44GTDQor44GT44GP44G8LOOBkeOBhOOBkw0KK+OBv+OChOOBluOBjSzjgZfjgZLjgYoNCivjgYLjgorjgb4s44GR44GE44GTDQor44GG44Gh44KE44G+LOOBn+OBi+OBlw0KK+OBquOBl+OBjSzjgYvjgYrjgosNCivjgbXjgZjjgZ8s44KG44G/44GTDQor44Gf44GL44GO44KPLOOBhOOBleOCgA0KK+OBq+OBl+OBoCzjgbLjgajjgZcNCivjgY3jgY/jgaEs44Gy44Gn44G144G/DQor44Gq44GL44GELOOBvuOBleOBvw0KK+OBhOOBhOOBoCzjgoTjgZnjgZcNCivjgoTjgb7jgZDjgaEs44Gu44G244Gy44KNDQor44KE44GuLOOChuOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgbLjgZXjgZcNCivjgbvjgorjgoDjgY0s44KI44GX44G+DQor44GC44Gg44GhLOOBteOBv+OBruOCig0KK+OBhuOCieOBrizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgaAs44G/44Gh44GTDQor44GV44GE44Go44GGLOOBsuOCjeOBpOOBkA0KK+OBl+OBvuOCgOOCiSzjgZPjgYbjgZgNCivjgbXjgY/jgaAs44Gk44KI44GXDQor44GN44KA44KJLOOBiOOBhOOBkw0KK+OChOOBvuOCguOBqCzjgYjjgorjgZMNCivjgZfjgZLjgoTjgZks44GI44GE44GE44GhDQor44GL44Gu44GGLOOBsuOCjeOBguOBjQ0KK+OBmeOCjyzjgbXjgb/jgYoNCivjgYrjgYvjgZbjgY0s44Gu44KK44GKDQor44G144GL44KELOOBvuOBleOBsuOCjQ0KK+OBk+OBluOBhCzjgb/jgaTjgosNCivjgbvjganjgoTjgb4s44Gy44Gn44GKDQor44GP44G844GfLOOBjeOCiOOBlw0KK+OBhOOBhOOBmuOBiyzjgorjgofjgYbjgZMNCivjgZ/jgYvjgY4s44Gf44GR44Gu44KKDQor44GE44KP44GKLOOBvuOBleOBlw0KK+OBhOOBl+OBhCzjgYTjgZXjgoANCivjgo/jgYvjgbDjgoTjgZcs44Go44GX44Gy44GnDQor44Gc44KT44GRLOOBqOOBl+OBig0KK+OCj+OBn+OBuSzjgojjgZfjgb8NCivjgb7jgaTjgoLjgags44Gy44KN44GX44GSDQor44G+44KL44KE44G+LOOBkeOBhOOBmA0KK+OBquOBi+OBrizjgbLjgafjga7jgooNCivjgYrjgYrjgY/jgbws44GL44Ga44Gv44KLDQor44GP44G844GfLOOBvuOBleOBqA0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgZcNCivjgavjgaPjgZ8s44G144G/44GTDQor44GE44GX44GgLOOBsuOBp+OBsuOBkw0KK+OBi+OBvuOBmSzjgZHjgpPjgZ7jgYYNCivjgYvjgZLjgoTjgb4s44G/44Gu44KLDQor44G+44Gk44KA44KJLOOBqOOBl+OBv+OBoQ0KK+OBleOBleOBjSzjgZnjgZnjgoANCivjgbLjgonjga4s44KI44GX44GL44GaDQor44GZ44Ga44GNLOOBhOOBoeOCjeOBhg0KK+OBq+OBl+OBr+OCiSzjgZHjgYQNCivjgY/jgo3jgYTjgo8s44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBkeOBhuOBoSzjgbLjgafjgYLjgaQNCivjgZfjgb/jgZos44GC44GN44Gy44GnDQor44GV44Gf44GRLOOBl+OCk+OBmA0KK+OBk+OBn+OBqyzjgZ/jgY/jgoLjgooNCivjgZPjgafjgoks44G+44GV44GoDQor44Gv44G+44GuLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgobjgYLjgZUs44GR44KT44GYDQor44GK44GL44GgLOOCiOOBl+OBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgbXjgY/jgaAs44GY44KF44KT44GE44GhDQor44GL44G/44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBvuOBoCzjgb7jgZXjgbLjgo0NCivjgZ3jga0s44G144G/44GKDQor44G/44Gu44GQ44GhLOOCiOOBl+OBruOCig0KK+OBj+OBoOOBquOBvyzjgb7jgZXjgobjgY0NCivjgYTjga7jgYbjgYgs44G/44Gp44KKDQor44GG44GI44KA44KJLOOBruOBvOOCiw0KK+OBv+OBhuOCiSzjgYrjgZXjgoANCivjgZnjgYzjgo/jgoks44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBquOBiuOChuOBjQ0KK+OBq+OBl+OCj+OBjSzjgojjgYbjgZgNCivjgYrjgYrjgZ/jgass44G+44GV44GC44GNDQor44GP44KN44GL44KPLOOBjeOCiOOBlw0KK+OBj+OBvOOBnyzjga7jgbbjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GTDQor44GI44Gz44Gv44KJLOOBjeOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgoTjgb7jga0s44KI44GX44GoDQor44GC44GV44G+LOOBvuOBleOBsuOCjQ0KK+OBv+OBhuOCiSzjgoTjgZnjga7jgbYNCivjgYLjgonjgYvjgo8s44GX44KT44GYDQor44GT44GY44G+LOOCiOOBl+OBguOBjQ0KK+OBleOBi+OBnyzjgZPjgYbjgbjjgYQNCivjgZPjgbDjgoTjgZcs44GK44GV44G144G/DQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgb/jgaTjgYQs44GR44GE44GE44GhDQor44Gm44GX44G+LOOBi+OBmuOBvuOBlQ0KK+OBguOBnSzjgbLjgo3jgYTjgaENCivjgoLjgorjgoQs44Gy44Go44GXDQor44KE44GqLOOBi+OBmuOBig0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgaHjgY0s44Gy44KN44GXDQor44GK44GK44GfLOOBsuOCjeOBlw0KK+OBu+OCiuOBhuOBoSzjgZHjgYTjgYTjgaENCivjgZ/jgavjgZDjgaEs44KI44GX44GKDQor44Gr44GX44GuLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBteOCi+OBr+OBlyzjgZPjgYbjgZ7jgYYNCivjgYLjgY3jgZ8s44Go44GX44GKDQor44GK44GP44GX44G+LOOBn+OBi+OBlw0KK+OBiuOBiuOBn+OBqyzjgZ/jgaDjgbLjgo0NCivjgYvjgoHjgYrjgYss44KI44GX44GKDQor44Gv44KJ44GK44GLLOOBi+OBpOOChOOBmQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgYLjgonjgZfjgb4s44KG44GN44GKDQor44Gq44GM44GV44KPLOOCiOOBl+OCjeOBhg0KK+OChOOBvuOBiuOBiyzjgY3jgojjgZcNCivjga/jgZss44G+44GV44GL44GkDQor44GN44GX44KC44GoLOOBj+OBq+OBig0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgYvjgoHjgoQs44GL44Gk44G/DQor44G+44GZ44GgLOOBvuOBleOBr+OCiw0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaENCivjgZXjgY/jgonjgYQs44Gf44GL44GC44GNDQor44G144KL44GX44KH44GGLOOBteOBmOOBig0KK+OBhuOBl+OBjSzjgYvjgZrjgb8NCivjgZPjgYTjgZEs44Gy44KN44GXDQor44Go44GG44G+LOOBleOBoeOBsuOCjQ0KK+OBquOBi+OBluOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgYrjgYss44KI44GX44Gu44G2DQor44Gq44GL44GtLOOBruOBtuOBr+OCiw0KK+OBqOOBv+OBnyzjga7jgorjgYvjgZoNCivjgZXjgajjgoDjgoks44GR44GE44GYDQor44Gy44GV44G+44GkLOOBqOOCiOOBqOOBlw0KK+OBiuOBjOOCjyzjgb7jgZXjgagNCivjgZXjgYvjgYQs44Gf44GR44GXDQor44Gq44GL44GOLOOChuOBvw0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgY/jgasNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44G144KL44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBteOBn+OBvyzjgY3jgojjgZcNCivjgZ/jgarjgYss44G144GP44KADQor44Gy44Gz44GuLOOBsuOCjeOBlw0KK+OBmeOBquOBr+OCiSzjgZfjgofjgYbjgZgNCivjgYTjgZHjgaAs44Gf44GL44GXDQor44GU44Go44GGLOOBruOBtuOChuOBjQ0KK+OBhOOBl+OBrizjgaTjgajjgoANCivjgY3jgoDjgoks44GX44GS44KLDQor44KE44G+44GgLOOBv+OBpOOBig0KK+OCguOCiuOCguOBqCzjgb7jgZXjgosNCivjgYrjgYvjgoLjgags44G+44Gk44GKDQor44Gq44GL44GY44G+LOOBleOBi+OBiA0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgb8NCivjgarjgYvjgYTjgZcs44Gf44GR44KG44GNDQor44KP44GVLOOBsuOBp+OBig0KK+OBk+OBl+OCgOOCiSzjgb7jgZXjgZcNCivjgbLjgarjgZ8s44GN44KH44GG44G444GEDQor44Gq44GL44KA44KJLOOBruOBtuOBig0KK+OBteOBj+OBhCzjgZ/jgaTjgbLjgZMNCivjgZ/jgYvjgaAs44GL44Ga44GKDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OChOOBvizjgb7jgZXjgbLjgo0NCivjgarjgYvjgoTjgb4s44Gf44GL44KE44GZDQor44Gv44KK44GM44KELOOBsuOCjeOBguOBjQ0KK+OBvuOBmeOCguOBqCzjgojjgZfjgYoNCivjgabjgonjgavjgZcs44G+44GV44Gu44G2DQor44Gq44GM44GP44G8LOOBiuOBleOCgA0KK+OCiOOBl+OBrizjgZ/jgYvjgZcNCivjgoLjgorjgZ8s44Gu44G844KLDQor44Gm44KJ44GKLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgZgNCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44G+44Gk44KC44GoLOOBjeOCiOOBlw0KK+OBiuOBluOBjSzjgojjgZfjgYLjgY0NCivjgbLjgZDjgaEs44G144GY44GNDQor44G/44KE44KC44GoLOOBv+OBleOBig0KK+OChOOBvuOBkOOBoSzjgb7jgZnjgb8NCivjgoTjgb7jgoLjgags44GI44Gk44GTDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OBhCzjgYvjgZrjgb8NCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44GZ44GM44KP44KJLOOBk+OBhuOBmOOCh+OBhg0KK+OBhOOBl+OBluOBjSzjgZ/jgYvjgobjgY0NCivjgZ/jgaTjgb8s44KI44GX44GC44GNDQor44Gq44GL44GX44GfLOOBvuOBk+OBqA0KK+OBiuOBmOOBvizjgbLjgo3jgYLjgY0NCivjgYLjgZXjgZfjgZ8s44G+44GV44G144G/DQor44G744KK44GELOOBv+OCiOOBlw0KK+OBhOOCiizjgZHjgpPjgYTjgaENCivjgbXjgZjjgb7jgY0s44Gf44Gg44GC44GNDQor44GL44GY44KP44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYoNCivjgbXjgarjgoTjgb4s44GI44Gk44GKDQor44GN44Gv44KJLOOBn+OBi+OBlw0KK+OBn+OBkeOBoCzjgZHjgYTjgZMNCivjgYTjgYTjgaAs44GL44Gq44GIDQor44G144KL44GpLOOBvuOBleOBig0KK+OCguOCiizjgZfjgoXjgYbjgYTjgaENCivjgbXjgY/jgags44Gq44GK44KEDQor44GK44GK44Gv44GXLOOBguOBjeOBsuOBqA0KK+OBguOBiuOBjSzjgbLjgafjgZcNCivjgZ/jgZjjgb4s44Gy44KN44GXDQor44GK44GK44Gk44GLLOOBqOOCguOBsuOCjQ0KK+OBguOBiuOBrizjgZjjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GI44KT44GpLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYvjgaQNCivjgYjjgpPjgaks44GC44GN44GKDQor44GL44KP44GELOOBv+OBoeOCiw0KK+OBguOBhOOBluOCjyzjgbXjgajjgZcNCivjgZPjgYTjgZ/jgbDjgZcs44GN44KI44Gy44KNDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBi+OBruOBhizjgZfjgZLjgY0NCivjgYbjgYjjgoDjgoks44G+44GV44Go44GXDQor44GZ44G/44KI44GXLOOBsuOBp+OBig0KK+OBsuOCjeOBnyzjgZXjgajjgosNCivjgYTjgarjgajjgb8s44GL44Ga44KI44GXDQor44GE44Go44GGLOOBruOCiuOBi+OBpA0KK+OBj+OBvCzjgbLjgafjgYLjgY0NCivjgYvjgbbjgonjgY4s44Go44GX44Gy44KNDQor44GE44GR44GgLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgZXjgYvjgYQs44G+44GV44Gy44KNDQor44GL44Go44GGLOOChOOBmeOBj+OBqw0KK+OBn+OBkeOBhCzjgoTjgZnjgobjgY0NCivjga/jgpPjgaAs44Go44GK44KLDQor44Gq44GM44KELOOBi+OBpOOBvw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jga7jgooNCivjgZfjgb/jgZos44KI44GX44Gq44GKDQor44GE44G+44Gr44GXLOOBvuOBleOBqA0KK+OBj+OBvuOBuSzjgb7jgZXjgYoNCivjgb7jgaHjgaAs44Gk44GL44GVDQor44KE44GOLOOBoeOBr+OCiw0KK+OBiuOBoOOBvizjgobjgY3jgYoNCivjgY3jgZ/jgZjjgb4s44GY44KF44KT44GTDQor44Gf44Gh44Gw44GqLOOBn+OBj+OCjeOBhg0KK+OBteOBmOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgb/jgZrjga4s44GE44GP44GKDQor44GI44GQ44GhLOOBi+OBpOOBvw0KK+OBi+OCj+OBuSzjgZXjgaTjgZMNCivjgarjgYvjgoDjgoks44Gh44GC44GNDQor44GC44GZ44G+LOOBjeOCiOOBi+OBmg0KK+OBr+OCgOOCiSzjgaTjgajjgoANCivjgYTjgajjgYYs44KG44GG44GYDQor44GE44GR44GW44GNLOOBn+OBkeOBlw0KK+OChOOBvuOBleOBjSzjga7jgorjgobjgY0NCivjgavjgZfjgZbjgo8s44Gd44GG44GYDQor44Gr44KPLOOBiOOBhOOBsuOBkw0KK+OBv+OBhuOCiSzjgbLjgZXjgZcNCivjgYvjgZ/jgYrjgYss44GC44GR44G/DQor44Gv44KE44GXLOOBvuOBjeOBkw0KK+OBv+OBleOBjSzjgZ/jgZHjgZcNCivjgYrjgaDjgY/jgoks44Gy44KN44G/44GhDQor44G144GX44G/LOOBoeOBi+OBqA0KK+OBsuOCjeOBnyzjgZ/jgYvjgZcNCivjga/jgZ/jgoQs44Go44GX44KG44GNDQor44GV44GL44GELOOChuOBhuOBmA0KK+OBhOOBoCzjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44Gf44Gg44GXDQor44G744GX44GuLOOBruOBvOOCiw0KK+OBiuOBjOOCjyzjgarjgaTjgYLjgY0NCivjgbXjgY/jgZbjgags44KK44KF44GG44GE44GhDQor44Gf44Gq44GLLOOBm+OBhOOBmA0KK+OBleOBleOBjSzjgY3jgofjgYbjgZMNCivjgYrjgZrjgaEs44G/44Gk44GKDQor44G144KN44KC44GoLOOBv+OBruOCiw0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgoQNCivjgZ/jgZHjgaAs44Go44G/44GTDQor44Gf44GR44Go44G/LOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OBoCzjgb/jgaHjgYoNCivjgb7jgags44GL44Ga44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OCgOOBi+OBhCzjgojjgYbjgYTjgaENCivjgZPjgYws44KE44GZ44GKDQor44GL44Go44GGLOOBi+OBmuOBvw0KK+OCiOOBk+OBhCzjgbXjgb/jgajjgZcNCivjgYbjgZfjgZTjgoEs44G+44GV44Gf44GLDQor44GT44G+44GkLOOCiOOBl+OBn+OBiw0KK+OBhOOBqOOBhizjgbLjgZXjgYLjgY0NCivjgZXjgajjgYYs44GX44KF44KT44GZ44GRDQor44Gy44KN44GbLOOBruOCiuOCiOOBlw0KK+OBlOOBvyzjgZjjgoXjgpMNCivjgZ/jgarjgYss44Gf44Gk44GKDQor44G+44Gk44KC44GoLOOBn+OBhOOBhOOBoQ0KK+OBr+OChOOBlyzjgZvjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GL44Gk44Gy44KNDQor44GC44KJ44GELOOBqOOBl+OChuOBjQ0KK+OBu+OBlyzjgY3jgojjgZcNCivjgabjgonjgaAs44GX44GS44KLDQor44GE44Ga44GvLOOBr+OCi+OBig0KK+OBmeOBquOBoCzjgoTjgZnjgZjjgo3jgYYNCivjgYTjgZjjgb4s44G144G/44GKDQor44Gf44GL44GgLOOBqOOBl+OBr+OCiw0KK+OCj+OBi+OBvuOBpCzjgZPjgYbjgZgNCivjgaTjgaAs44Go44GX44KG44GNDQor44G744GX44GP44G+LOOBvuOBleOBr+OCiw0KK+OBu+OCk+OBoCzjgbLjgo3jgb8NCivjgYvjgb7jgaAs44GI44GE44GYDQor44Gv44KE44GXLOOBv+OBpOOBsuOCjQ0KK+OBhOOBvuOBhCzjgZ/jgaTjgosNCivjgaTjgaHjgoQs44GE44Ga44G/DQor44KP44GgLOOBhOOBj+OBqA0KK+OCiOOBl+OBoCzjgY3jgb/jgbLjgo0NCivjgaDjgaYs44GY44KF44KTDQor44Gv44GZ44GTLOOCiOOBl+OBruOCig0KK+OBn+OBkeOBquOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgY/jgaAs44GL44Ga44GKDQor44G744GXLOOChuOBhuOBmeOBkQ0KK+OBi+OCgeOBoCzjgYvjgYrjgosNCivjgbLjgZfjgazjgb4s44Gy44KN44G144G/DQor44GK44GK44Gr44GXLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgYLjgY0NCivjgbvjgZ3jgYvjgo8s44GC44GN44KJDQor44KI44GX44GW44KPLOOBsuOBp+OBig0KK+OBr+OCieOBoCzjgojjgZfjgZ/jgYsNCivjgZXjgZXjgY0s44Go44KC44KG44GNDQor44GE44GE44GgLOOBsuOBp+OBvw0KK+OBjeOBjOOCjyzjgZPjgYbjgYTjgaENCivjgYTjgZHjgYos44Gy44KN44KG44GNDQor44GC44KJ44GELOOChOOBmeOBig0KK+OBi+OBjeOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgZTjgajjgYYs44GP44Gr44Go44GXDQor44G/44KE44GT44GXLOOChOOBmeOBiA0KK+OBteOBmOOBnyzjgYLjgaTjgb8NCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44KC44KK44GK44GLLOOChuOBv+OBkw0KK+OChOOBvuOBhuOCiSzjgoTjgZnjgojjgZcNCivjgY/jgo3jga8s44KI44GG44GTDQor44GE44Ga44Gv44KJLOOBquOBiuOBi+OBmg0KK+OBl+OBkuOBqOOCgSzjgojjgZfjgYLjgY0NCivjgavjgZcs44KE44GZ44G144G/DQor44GC44GN44KE44G+LOOBqOOBv+OBig0KK+OBhOOBkeOBoCzjgYvjgZrjgY3jgaENCivjgoLjgoos44KE44GZ44G/DQor44Gy44KN44GL44KPLOOChuOBhuOBmA0KK+OBneOCgeOChCzjgYLjgY3jgYoNCivjgZXjgY/jgonjgYQs44GI44G/44GTDQor44G/44Ga44GuLOOBhOOBleOCgA0KK+OBpuOCieOBoCzjgajjgZfjgYvjgZoNCivjgbLjgonjgb7jgaQs44GX44GS44KLDQor44GK44GK44GfLOOBlOOCjeOBhg0KK+OBsuOCieOBvuOBpCzjgYjjgaTjgYoNCivjgavjgZfjgaAs44KG44GN44GKDQor44KA44KJ44GfLOOBsuOBp+OChuOBjQ0KK+OBv+OBmuOBk+OBlyzjgZHjgpPjgYTjgaENCivjgajjgb/jgZ8s44Gf44GL44GKDQor44GL44KP44G/LOOBm+OBhOOBhOOBoQ0KK+OBl+OBhOOBrizjgZfjgZLjgYoNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBi+OBreOBn+OBkSzjgYvjgarjgoENCivjgYrjgZfjgZIs44Gf44GE44GhDQor44GT44GY44G+LOOChuOBhuOBnuOBhg0KK+OBqOOBsCzjgb7jgZPjgagNCivjgYTjgo/jgZ8s44Gy44Gn44GC44GNDQor44GK44GuLOOBkeOCk+OBmA0KK+OBk+OBleOBiyzjgbLjgZXjgZ/jgZENCivjgYvjgpPjga4s44GC44GN44GKDQor44GE44Go44GGLOOBqOOBl+OBpOOBkA0KK+OBn+OBi+OBjizjgb/jgaHjgZMNCivjgZ/jgYvjga4s44GX44KT44GE44GhDQor44GE44Gq44GM44GNLOOBpuOBpOOBig0KK+OBruOBluOBjSzjgZjjgoXjgpMNCivjgZ/jgZHjgaAs44G144G/44GTDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBu+OCiuOBi+OCjyzjgYvjgZrjgbLjgo0NCivjgZnjgY7jgoLjgags44KK44KH44GGDQor44GC44KJ44GELOOBm+OBhOOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgafjgZnjgY4NCivjgojjgZfjgaAs44GX44KF44GG44GE44GhDQor44GK44GX44G+LOOBn+OBkeOBlw0KK+OBlOOBqOOBhizjgaDjgYTjgZjjgo3jgYYNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Go44KCDQor44GE44KP44G244GhLOOBvuOBleOBpOOBkA0KK+OBhOOBvuOBjeOBnyzjgZfjgofjgYbjgZgNCivjgoDjgonjgZ8s44GX44KH44GG44GTDQor44GX44KC44GuLOOBi+OBmuOBsuOCjQ0KK+OBlOOBi+OBhOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gu44G844KLDQor44Gq44GM44GX44G+LOOBmOOCjeOBhg0KK+OBv+OBl+OBvizjgojjgZfjgbLjgo0NCivjgoTjgZnjgarjgYws44GL44Gk44G/DQor44GK44G144GhLOOBmOOCjeOBhg0KK+OBk+OCgOOBi+OBhCzjgY3jgojjgb8NCivjgarjgYzjgZXjgo8s44Gf44GE44Gb44GEDQor44GN44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBr+OCiSzjgYvjgZrjgoQNCivjgbXjgYvjgaAs44Gu44KK44G144G/DQor44GN44Gf44GM44KPLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOCguOCiizjgozjgYTjgZMNCivjga/jgbbjgaEs44Gy44Gn44GL44GaDQor44G/44KE44GW44GNLOOBsuOCjeOCgA0KK+OBl+OCjeOBnyzjgb7jgZXjgobjgY0NCivjgZPjgb/jgoQs44GT44GG44GYDQor44Gm44KJ44GKLOOBmOOCjeOBhg0KK+OBq+OBl+OBkOOBoSzjgajjgZfjgYLjgY0NCivjgYvjga3jgZrjgYss44Gy44KN44GC44GNDQor44GZ44GO44KE44G+LOOBpuOBpOOBmA0KK+OBn+OBoeOBsOOBquOBjSzjga/jgovjgYLjgY0NCivjgoLjgorjgYrjgYss44G+44GV44GL44GaDQor44KI44Gu44KC44GoLOOBsuOBp+OBjQ0KK+OBj+OBmeOBoCzjgYvjgZrjgYTjgaENCivjgYLjgorjgoTjgZks44GI44Gk44GKDQor44Gk44GY44KC44GoLOOBsuOBleOBqA0KK+OBteOBi+OBvyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgY3jgoTjgb4s44GN44KI44GXDQor44KC44Gh44Ga44GNLOOCiOOBl+OBn+OBiw0KK+OBruOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgo/jgaAs44GN44KI44GXDQor44GK44GhLOOBsuOCjeOBlw0KK+OCgOOCieOBvuOBpCzjgaHjgYjjgZMNCivjgoTjga4s44GK44GV44KADQor44KC44Gh44Ga44GNLOOBjeOCiOOBlw0KK+OBsuOCieOBnyzjgarjgYrjgY0NCivjgo/jgYvjgb7jgaQs44Go44GX44GV44GgDQor44GV44GL44KC44KKLOOBi+OCiOOBkw0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgYTjgb7jgoDjgoks44KI44GX44Gy44KNDQor44GK44GK44GZ44GMLOOBi+OBiOOBpw0KK+OBn+OBi+OChOOBvizjgZ/jgYvjgajjgokNCivjgY3jgZ/jgb8s44Gy44KN44Gy44GnDQor44G+44GI44GgLOOBn+OBiOOBkw0KK+OBqOOCguOBrizjgZHjgpPjgYTjgaENCivjgYvjgbbjgonjgY4s44G+44GV44KG44GNDQor44Gt44GO44GXLOOBkeOBhOOBnuOBhg0KK+OCj+OBoCzjgobjgb/jgZMNCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44GV44Gq44GILOOBi+OBmuOBvuOBlQ0KK+OBrizjgZ/jgaTjgoQNCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44KE44G+44GX44GfLOOBpOOBreOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgo0NCivjgb/jgoTjgo/jgY0s44Go44GX44Gy44GTDQor44G+44Gk44GG44KJLOOCiOOBl+OBguOBjQ0KK+OBjeOBn+OChOOBvizjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44GY44KF44KT44GYDQor44Gr44GX44KE44G+LOOBi+OBpOOBmA0KK+OBi+OCj+OBsOOBnyzjgb7jgZXjgbLjgZMNCivjgb/jgYvjgb8s44GY44KF44KTDQor44GZ44GO44KE44G+LOOBhOOBleOBig0KK+OBjeOBmOOBvizjga7jgorjgYoNCivjgbLjgYzjgZcs44GX44KF44GG44GYDQor44GC44G5LOOBvuOBleOBqA0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgbXjgYvjgaAs44GC44GN44GKDQor44KA44KJ44G+44GkLOOBmOOCheOCkw0KK+OBsuOCieOBsOOCiyzjgZ/jgZHjgYoNCivjgaHjgofjgYbjgarjgpMs44KI44GX44G+44KNDQor44GL44KP44KA44KNLOOBleOBqOOBlw0KK+OBpOOBj+OBoCzjgb/jga7jgosNCivjgb/jgoTjgoLjgags44Go44GX44Gy44KNDQor44GZ44GI44Gy44KNLOOBmOOCheOCk+OBhOOBoQ0KK+OBl+OCieOBi+OCjyzjgZPjgYbjgZgNCivjgZ/jgarjgYss44GR44GE44GXDQor44KE44GZ44GELOOCiOOBl+OBruOBtg0KK+OBjeOCgOOCiSzjgYvjgaTjgZMNCivjgarjgYvjgYzjgo8s44GL44Gk44KI44GXDQor44GP44GV44GuLOOBqOOBl+OBsuOCjQ0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgarjgYvjgajjgoIs44KA44Gk44G/DQor44G+44GZ44KC44GoLOOBpOOBqOOCgA0KK+OCj+OBn+OBrOOBjSzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GL44Gk44GYDQor44GT44G844KKLOOBv+OBjeOBig0KK+OBiuOBjOOCjyzjgZPjgYbjgYTjgaENCivjgbXjgZjjgoLjgoos44G/44GN44GKDQor44GE44Gv44KJLOOBiOOBvw0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZMNCivjgYbjgonjgbks44GE44GV44KADQor44G/44GG44KJLOOBv+OBpOOCiw0KK+OBquOBi+OBhCzjgZHjgYTjgYTjgaENCivjgo/jgonjgZfjgaos44GX44GS44KLDQor44G144GP44Gq44GMLOOCiOOBl+OBi+OBmg0KK+OBiuOBiuOBpOOBvCzjgojjgZfjgYLjgY0NCivjgojjgZfjgaAs44G/44Gu44KLDQor44Gv44KE44G/LOOBi+OBpOOBsuOBkw0KK+OBruOCgOOCiSzjgb7jgZXjgYvjgZoNCivjgbLjgonjgYQs44KI44GX44KG44GNDQor44GX44G+44GgLOOBvuOBleOBiA0KK+OBmeOBmuOBjSzjgarjgYrjgajjgZcNCivjgabjgonjgZfjgb4s44GN44G/44Gy44GTDQor44GX44Ga44Gv44KJLOOCjOOBhOOBkw0KK+OChOOBvuOBqOOChCzjgYvjgZrjgbLjgZMNCivjgYrjgY7jga4s44Gy44KN44GKDQor44G+44Gk44GQ44G+LOOBl+OBkuOBuw0KK+OBjeOBn+OBhCzjgajjgZfjgbLjgZMNCivjgYLjgYvjgaAs44GX44Ga44GKDQor44Gf44GR44KI44GXLOOBm+OBhOOBruOBmeOBkQ0KK+OBsuOCjeOBrizjgZ3jgYrjgZjjgoMNCivjgZfjgb7jgoDjgoks44Go44G+44GVDQor44KK44KF44GG44GULOOBl+OCheOCk+OBhOOBoQ0KK+OBj+OBq+OBiOOBoCzjgb7jgY3jgYoNCivjgYrjgYrjgaTjgYss44G744GT44GPDQor44GE44GR44GM44G/LOOBsuOBp+OBqOOBlw0KK+OBi+OBreOBvuOBpCzjgYvjga3jgbLjgacNCivjgYrjgYrjgYzjgo/jgoks44KI44GX44Gu44G2DQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBpuOCieOBoCzjgZvjgaTjgZMNCivjgYvjgo/jgZXjgY0s44Gm44Gk44GYDQor44GK44GX44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBi+OCj+OBi+OBvyzjgZfjgZLjgY0NCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44G/44Gf44GrLOOBqOOBl+OBsuOBkw0KK+OBk+OBvuOBpCzjgbLjgo3jgZ/jgYsNCivjgYLjgYvjgYTjgo8s44Go44GX44Gy44GTDQor44GE44Gh44GELOOBteOBv+OChA0KK+OBteOBj+OChOOBvizjgb7jgZXjgYLjgY0NCivjgY/jganjgYYs44KI44GX44Gm44KLDQor44G+44Gk44GX44GfLOOBl+OCk+OBmA0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgbLjgo0NCivjgYLjgb7jgYzjgb8s44GX44KTDQor44KE44GX44GNLOOBguOBhOOBhOOBoeOCjeOBhg0KK+OCj+OBoCzjgYLjgaTjgZMNCivjgb7jgZnjgaAs44Go44KC44GTDQor44KI44GX44KA44KJLOOChuOBhuOBmA0KK+OBiuOBoCzjgZfjgpPjgZgNCivjgojjgZPjgoTjgb4s44Gf44GL44G144G/DQor44GE44Go44GELOOChuOCiuOBkw0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgo0NCivjgarjgYzjga/jgb4s44Gy44KN44KG44GNDQor44KE44GW44GNLOOBpuOBhOOBnuOBhg0KK+OChOOBmOOBvizjgY3jgojjgZcNCivjgoDjgYvjgYjjgaAs44GV44Go44KLDQor44Gq44GL44KA44KJLOOBn+OBpOOBguOBjQ0KK+OChOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjga7jgoLjgags44Go44GX44KG44GNDQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBleOBqOOBhizjgajjgZfjgoQNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBquOBi+OBq+OBlyzjga/jgovjgbLjgZUNCivjgYbjgYjjgaAs44Gy44KN44G/DQor44GC44GE44GW44KPLOOBguOBjeOBig0KK+OBguOCieOBhCzjgajjgoLjgarjgooNCivjgarjgYzjgYTjgZcs44GL44Gk44G/DQor44Gv44GT44GELOOBvuOBleOBig0KK+OBj+OBmeOCguOBqCzjgZ/jgYvjgojjgZcNCivjgYLjgorjgajjgb8s44GY44Gk44KN44GGDQor44Gv44KJLOOBn+OBv+OBig0KK+OBu+OCk+OBvizjgb7jgZXjga/jgosNCivjga/jgZfjgoLjgags44G/44Gh44Gv44KLDQor44Gv44GX44KC44GoLOOBvuOBleOBig0KK+OBiuOBiuOBrOOBvizjgYTjgZXjgYoNCivjga/jgarjgY0s44GX44KT44GE44Gh44KN44GGDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBleOBj+OCieOBluOCjyzjgbLjgafjgajjgZcNCivjgYLjgYvjgY4s44KE44GZ44Gy44GoDQor44GC44GN44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgY0NCivjgYLjgonjgYQs44Gf44G+44GKDQor44GC44GV44KA44KJLOOBi+OBpOOBvw0KK+OBoeOBsCzjgYLjgZMNCivjgYjjgZDjgaEs44KG44GN44Gf44GLDQor44G144Gh44GuLOOBqOOBiuOCiw0KK+OBteOBmOOBvuOCiyzjgbLjgZXjgagNCivjgbXjgZjjgZXjgo8s44Gu44KK44GKDQor44G144GL44GgLOOBteOBv+OBsuOCjQ0KK+OBteOBj+OBhCzjgbLjgo3jgZcNCivjgbXjgY/jgajjgb8s44KK44KF44GG44GV44GPDQor44GO44G+LOOBi+OBmuOCiOOBlw0KK+OBr+OBjuOCj+OCiSzjgYTjgaHjgo3jgYYNCivjga/jgoks44GN44KI44Gf44GLDQor44Gv44KL44GqLOOBn+OBi+OBguOBjQ0KK+OBr+OBpOOBvyzjgYLjgZrjgZUNCivjga/jgoTjgZss44GX44KT44GUDQor44Gv44KE44GkLOOBsuOCjeOBlw0KK+OBsuOCieOBiuOBiyzjgb7jgobjgb8NCivjgbLjgo3jgZcs44Gu44G244GTDQor44G744GX44GTLOOBvuOBleOBsuOCjQ0KK+OBhOOBoeOBi+OCjyzjgb7jgZXjgosNCivjgYTjgYzjgo8s44GN44KI44GXDQor44GE44GE44Ga44GLLOOBguOCiuOBlQ0KK+OBv+OBpOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgYTjgb7jgoDjgoks44Gy44KN44KG44GNDQor44GE44Gq44G/LOOBsuOCjeOBv+OBoQ0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjgZss44KG44GN44GKDQor44GZ44GO44Gv44KJLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OCguOBqCzjgZHjgpPjgZgNCivjgYTjgZfjgZrjgYss44Go44GK44KLDQor44GE44Go44GGLOOCiOOBhuOBmA0KK+OBi+OBv+OBi+OCjyzjgZ/jgaDjgb/jgaQNCivjgYTjgo/jgZXjgY0s44GR44GE44GTDQor44GE44Ga44G/LOOBv+OCjw0KK+OBi+OBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G/44GNDQor44Gu44KA44KJLOOBiOOBv+OBkw0KK+OBi+OBn+OBrizjgabjgovjgbLjgZUNCivjgYvjgajjgYYs44Gf44GL44GXDQor44GL44KP44GgLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OBhCzjgoTjgZnjgY0NCivjgYvjgo/jgZfjgb4s44GI44GE44GTDQor44GN44GP44GL44KPLOOChuOBi+OCig0KK+OBjeOBlyzjgZ/jgY/jgZcNCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBk+OChOOBvizjgYLjgY3jgokNCivjgZPjgY/jgbws44KI44GG44GTDQor44GT44KT44GpLOOBv+OBiA0KK+OBk+OBl+OBiizjgb7jgZXjgajjgZcNCivjgY/jgbws44Gk44Go44KADQor44G744GX44GuLOOBqOOBl+OChA0KK+OBj+OBleOBi+OCjyzjgZHjgYTjgYTjgaENCivjgY/jgZnjgb8s44KG44Gf44GLDQor44G+44GN44GuLOOBoeOBsuOCjQ0KK+OBvuOCi+OChOOBvizjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44Gh44Go44GbDQor44G+44Gk44KC44GoLOOBguOBpOOBlw0KK+OCgeOBluOCjyzjgbLjgajjgZcNCivjgb/jga0s44G+44GV44KE44GZDQor44G/44GoLOOBruOBtuOBig0KK+OBv+OChOOCguOBqCzjgZfjgZLjgosNCivjgb/jgoTjgZbjgo8s44GL44Gk44G/DQor44G/44Ga44GfLOOBkeOCk+OBmA0KK+OCguOCiizjga/jgZrjgY0NCivjgoLjgorjgoLjgags44G+44Gq44G2DQor44KC44KN44GK44GLLOOBv+OBpOOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgYTjgo/jgYoNCivjgb/jgofjgYbjgYws44Gf44GL44KG44GNDQor44Gq44GM44GKLOOBguOBjeOBsuOCjQ0KK+OBquOBjOOBmyzjgZnjgZnjgoANCivjgarjgYTjgajjgYYs44GV44Gg44G/44GkDQor44Gq44GL44GY44G+LOOBqOOBiuOCiw0KK+OBquOBi+OBvuOCiyzjgajjgZfjgZMNCivjgarjgYvjgoDjgoks44KK44KF44GG44GE44GhDQor44Gq44GL44Gr44GXLOOBsuOBp+OBqA0KK+OBquOBi+OBrizjgaTjgYvjgZUNCivjgZfjgarjgaAs44GC44GN44KJDQor44Gq44KK44GfLOOBn+OBj+OBmA0KK+OBq+OBhOOChOOBvizjgbLjgo3jgZcNCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44Ga44GLLOOBqOOBl+OChA0KK+OBsuOBrizjgYvjgZrjgobjgY0NCivjga/jgZvjgYzjgo8s44G/44Gk44GC44GNDQor44GK44GM44GfLOOBsuOBqOOBlw0KK+OCgOOBleOBlyzjgb/jgaTjgosNCivjgYrjgYrjgY/jgbws44Gv44KL44GXDQor44GK44GK44GV44KPLOOBsuOBp+OBjQ0KK+OBiuOBiuOBnyzjgZfjgpPjgZgNCivjgYrjgYrjgo/jgaAs44Gy44KN44Gu44KKDQor44GK44GL44GgLOOBn+OBi+OCiOOBlw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgZcNCivjgYrjgY3jgoLjgags44G+44GV44Gy44GTDQor44GK44Gr44Gk44GLLOOBvuOBleOBguOBjQ0KK+OBiuOBleOBjSzjgZ/jgYvjgZcNCivjgZXjgYjjgY0s44KI44GX44Gy44KNDQor44GV44GL44GELOOCiuOCh+OBhuOBmA0KK+OBleOBi+OBjSzjgY3jgofjgYbjgZMNCivjgZXjgYvjgYbjgYgs44Gf44GL44KG44GNDQor44GV44GuLOOBqOOBl+OBteOBvw0KK+OBleOBqOOBhizjgoTjgZnjgZcNCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44KP44GELOOBv+OBoeOBsuOCjQ0KK+OBm+OBjeOBr+OCiSzjgYLjgY3jgokNCivjgZvjgZfjgoIs44GX44KF44GG44GE44GhDQor44GX44Gw44GfLOOBpuOBpOOCjeOBhg0KK+OCgOOCieOBnyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjgb/jgZos44Gv44KE44Go44GXDQor44GX44KC44GK44GVLOOBn+OBkeOBlw0KK+OBl+OBruOBoCzjga/jgaTjgYgNCivjgZfjgonjgYQs44GL44Ga44Gy44GTDQor44GZ44Gp44GGLOOCguOBqOOChuOBjQ0KK+OBmeOBjuOBl+OBvizjgb7jgZXjgosNCivjgZnjgoTjgb4s44Go44KC44Gu44KKDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OBl+OCheOBj+OChCzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgZDjgaEs44Gq44GK44KG44GNDQor44G/44KE44KC44GoLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgorjgoXjgYYNCivjgZ/jgYvjga/jgZcs44KG44GN44GIDQor44Gf44GL44Gv44GXLOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBmyzjgZfjgZLjgY0NCivjgb/jgYvjgb8s44GR44GE44GZ44GRDQor44Gf44GR44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gy44KN44GTDQor44Gf44Gq44GLLOOBruOCiuOBguOBjQ0KK+OBn+OBq+OBkOOBoSzjgZjjgoXjgpPjgZMNCivjgZ/jgabjgYTjgZcs44Gq44GK44KEDQor44Gm44KL44GN44GqLOOBguOBjeOCiA0KK+OBqOOBv+OBiuOBiyzjgarjgYrjgY0NCivjgajjgojjgaAs44G+44GV44Gy44GTDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBpOOBmCzjgbLjgo3jgZcNCivjgaTjga7jgYzjgYQs44KE44GZ44Gu44KKDQor44GG44Gh44GgLOOBvuOBleOBteOBvw0KK+OBhuOBoCzjgZHjgYTjgZgNCivjgYbjgYjjga/jgoks44GX44KT44GYDQor44GG44GI44GuLOOChuOBhuOBmA0KK+OBhuOCgeOBr+OCiSzjgb7jgZPjgagNCivjgYbjgZnjgYQs44GT44GG44G444GEDQor44KP44GgLOOCiOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZXjgajjgZcNCivjgoTjga/jgY4s44Gq44GK44G144G/DQor44KE44G+44GgLOOBqOOBl+OBig0KK+OChOOBvuOBkOOBoSzjgajjgoLjgYvjgZoNCivjgoTjgb7jgoLjgags44GR44KT44GY44KN44GGDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OChOOBvuOBl+OBnyzjgorjgpPjgZjjgoUNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44GZ44GgLOOBvuOBleOBvw0KK+OCiOOBqeOBjOOCjyzjga7jgorjgYoNCivjgojjgo3jgZrjgoQs44Gq44GK44Gy44GVDQor44KI44GX44G+44GkLOOBoeOBr+OCiw0KK+OBiOOBoOOBsuOCjSzjgb/jganjgooNCivjgZPjgZjjgb4s44KE44GZ44Gy44GVDQor44GK44GM44KPLOOCgeOBkOOBvw0KK+OBn+OBi+OBmyzjgb7jgb/jgZMNCivjgbXjgY/jgZ8s44GL44Ga44G/DQor44Gf44GQ44GhLOOBsuOCjeOCgA0KK+OBguOBleOBrizjgajjgZfjgbLjgZMNCivjgbXjgZjjgYQs44GR44KT44GYDQor44G144GY44KP44KJLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgbLjgo3jgYvjgZoNCivjga/jgoTjgZcs44Go44GX44GC44GNDQor44Gy44KJ44GELOOBsuOCjeOBn+OBiw0KK+OBhOOBoeOBhCzjgZfjgZLjgobjgY0NCivjgYTjgZHjgaAs44GE44GP44GY44KN44GGDQor44GE44GX44G+44KLLOOBv+OCjw0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYvjgZLjgoTjgb4s44Gk44KI44GXDQor44GL44GV44G+LOOBruOCiuOBvuOBlQ0KK+OBi+OBqOOBhizjgZPjgYbjgZ8NCivjgY3jgY/jgaEs44Go44KC44GC44GNDQor44GN44Gf44GM44KPLOOBv+OBoeOBr+OCiw0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZ/jgo3jgYYNCivjgZPjgpPjgaks44Gu44KK44GTDQor44GP44Gp44GGLOOBr+OChOOBqA0KK+OBj+OBleOBteOBiyzjgZfjga7jgbYNCivjgb7jgaTjgaDjgYTjgoks44G+44GNDQor44G/44GP44GrLOOChOOBmeOBlw0KK+OBv+OChOOBoSzjgZ/jgYvjgbXjgb8NCivjgb/jgoTjgZbjgo8s44Gy44KN44GNDQor44KC44KK44GfLOOBj+OCi+OBvw0KK+OCgOOCjeOBnuOBrizjgbLjgo3jgYLjgY0NCivjgarjgYvjgb/jgaEs44GX44KH44GGDQor44Gr44GX44KA44KJLOOBl+OCk+OChA0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgYrjgYgs44G+44GV44G/44GhDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBi+OChOOBvizjgb/jgaTjgojjgooNCivjgZXjgYTjgajjgYYs44Gf44GL44Gu44G2DQor44GV44GuLOOBn+OBj+OChA0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZfjgYQs44G/44GV44GTDQor44GX44KT44GN44KF44GGLOOBvuOBleOChuOBjQ0KK+OBmeOBjuOChOOBvizjgY3jgojjgZ/jgYsNCivjgZ/jgYvjgY4s44KI44GX44GKDQor44Gf44GR44GG44GhLOOBi+OBu+OCiw0KK+OBn+OBquOBiyzjga7jgbbjgZMNCivjgZ/jgovjgZXjgo8s44GC44GN44GTDQor44Go44KC44GuLOOBi+OBmuOBvw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Gy44Gn44GoDQor44KE44G+44GW44GNLOOBteOBv+OBrg0KK+OCiOOBreOBv+OBpCzjgb7jgZPjgagNCivjgobjgoos44Go44KC44GKDQor44G+44Gk44GQ44G+LOOBteOBv+OBkw0KK+OBguOBmOOBvizjgoTjgZnjgYLjgY0NCivjgYLjgb7jga4s44Gh44GC44GNDQor44GC44GK44GNLOOCiOOBl+OBkw0KK+OBguOBiuOBjSzjgarjgYrjgbLjgZUNCivjgYLjgonjgY0s44GL44Gk44GYDQor44GC44GV44GP44KJLOOBn+OBpOOBig0KK+OBguOBmuOBvizjgorjgYgNCivjgZXjgZ/jgZEs44GR44GE44GTDQor44Gg44GE44GKLOOBsuOBp+OBjQ0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZMNCivjgbXjgZjjgYQs44Gf44Gk44Gu44KKDQor44G144GY44GK44GLLOOBpuOBpOOCjeOBhg0KK+OBteOBj+OBhCzjgZPjgYbjgZgNCivjgbXjgarjgaAs44KG44GG44GTDQor44GU44Go44GGLOOBi+OBhOOBoeOCjeOBhg0KK+OBr+OBvuOBoCzjgojjgZfjgb8NCivjgZXjgajjgYYs44Gb44GE44GUDQor44Gv44KK44G+LOOBquOBiuOBjQ0KK+OBr+OBm+OBjOOCjyzjgYLjgY3jgbLjgZMNCivjga/jgZ8s44GX44KT44GE44Gh44KN44GGDQor44Gv44Gj44Go44KKLOOChuOBjQ0KK+OBr+OChOOBvyzjgZnjgb/jgbLjgagNCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gy44GI44GgLOOBv+OBoeOBi+OBmg0KK+OBsuOBiuOBjSzjgajjgYbjgoHjgYQNCivjgbvjgaAs44Gy44KN44GNDQor44Gy44KN44GZ44GILOOBmOOCheOCk+OBkw0KK+OBsuOBl+OBoCzjgbLjgo3jgZcNCivjgbvjgpPjgZTjgYYs44G+44GV44GoDQor44G744KK44GILOOBguOBjeOBruOCig0KK+OBu+OBl+OBqizjgZPjgYbjgYTjgaENCivjgYTjgaHjgYvjgo8s44Gy44Go44GXDQor44GE44GM44GfLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBhOOBhOOBmuOBiyzjgb7jgZPjgagNCivjgYTjgZHjgaAs44Gf44GL44KG44GNDQor44G744Gd44GELOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBrizjgZjjgoXjgpMNCivjgYTjga7jgYbjgYgs44G144G/44Gu44KKDQor44GK44GK44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYQs44KE44GZ44GXDQor44GE44GX44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBneOBjOOBhCzjgobjgYbjgZMNCivjgYTjgajjgYYs44GV44Go44GXDQor44GE44KP44Gv44GXLOOChuOBhuOBkw0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgYvjgYzjgbYs44GX44KT44GY44KN44GGDQor44GL44G+44G744KKLOOBqOOCguOBsuOBkw0KK+OBi+OBv+OChCzjga7jgbbjgobjgY0NCivjgYvjgarjgYQs44Gu44KK44GTDQor44GL44KT44GgLOOBoeOBiA0KK+OBi+OBruOBhizjgZ/jgZHjgZcNCivjgZ/jgb7jgZ/jgass44GX44G+DQor44GL44Go44GGLOOBsuOCjeOBjQ0KK+OBi+OBqOOBhizjgZjjgoXjgpPjgZMNCivjgYvjgo/jgZDjgaEs44GT44GG44GYDQor44GL44KP44KA44KJLOOBl+OCheOBhuOBmA0KK+OBi+OCj+OBl+OBvizjga7jgbbjgZMNCivjgY3jgY/jgaEs44GE44Gh44KN44GGDQor44GN44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBjeOBlyzjgarjgYrjgY0NCivjgY3jgZ/jgYzjgo8s44Gq44GK44G/DQor44GN44KI44Gv44KJLOOBpOOBqOOCgA0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgaDjgb4s44KE44GZ44Gy44KNDQor44GT44GE44KPLOOBqOOCguOChuOBjQ0KK+OBk+OBmOOBvizjgZXjgajjgZcNCivjgZPjgpPjgaks44GR44KT44GE44GhDQor44GP44G8LOOBquOBiuOBjQ0KK+OBj+OBvuOBj+OCiSzjgZHjgpPjgYTjgaENCivjgbLjgonjgYQs44GT44GG44GYDQor44GP44KN44GgLOOBguOBpOOBlw0KK+OBj+OCjeOBleOCjyzjgYjjgYTjgZjjgo3jgYYNCivjgb7jgYjjgaAs44GV44Go44GXDQor44GX44G244Gf44GrLOOBk+OBhuOBmA0KK+OBvuOBmeOBoCzjgobjgYbjgZMNCivjga/jgoks44GR44KT44GYDQor44G+44Gk44GELOOBl+OCk+OBmA0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZcNCivjgb7jgaTjgarjgb8s44KI44GX44GTDQor44G+44Gk44GK44GLLOOBl+OCk+OBlA0KK+OBvuOBpOOChOOBvizjgYLjgY3jgokNCivjgb/jgYvjgb8s44Gy44Gn44GKDQor44G/44Gq44G/LOOBguOBjeOCiQ0KK+OBv+OBn+OCgOOCiSzjgb7jgZXjgajjgZcNCivjgb/jgaTjgb4s44GL44Ga44Gy44GoDQor44G/44KE44GX44GfLOOBsuOCjeOChuOBjQ0KK+OBr+OBl+OBkOOBoSzjgZfjgZLjgY0NCivjgb/jgZrjga4s44Go44GX44KG44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgorjgoQs44KA44Gk44GKDQor44KA44Gt44GL44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBnyzjgobjgY3jgoLjgagNCivjgb/jgofjgYbjgZjjgpMs44G/44Gh44GKDQor44Gq44GM44GX44G+LOOCiOOBl+OBi+OBmg0KK+OBquOBhOOBqOOBhizjgb7jgZXjgY0NCivjgarjgYvjgZjjgb4s44Gm44KL44G/DQor44Gq44GL44KC44GoLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZgNCivjgarjgYvjgoDjgoks44GR44KT44GfDQor44Gq44GL44KELOOCj+OBn+OCiw0KK+OBquOCkyzjgZHjgYTjgZnjgZENCivjgarjgajjgoos44GR44KT44KEDQor44Gr44GE44GW44KPLOOCiOOBl+OBruOCig0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgaos44GN44KI44GXDQor44Gr44GX44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBruOBjOOCjyzjgbLjgo3jgoQNCivjga7jgoDjgoks44G+44GV44Gy44KNDQor44GK44GM44GV44KP44KJLOOBi+OBmuOBpuOCiw0KK+OBiuOBjOOCjyzjgoTjgZnjga7jgooNCivjgYrjga/jgZcs44GV44Go44GXDQor44GK44GK44GuLOOBsuOCjeOChOOBmQ0KK+OBiuOBl+OBvizjgaTjgajjgoANCivjgYrjgYrjgZ/jgY0s44G144Go44GXDQor44GK44GK44Gk44GLLOOBiOOBhOOBjQ0KK+OBiuOBiuOChCzjgoDjga3jgYoNCivjgYrjgYvjgaAs44Gy44KN44KG44GNDQor44GK44GL44GW44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBiuOBvyzjgYLjgoTjgZMNCivjgYrjga7jgafjgoks44G+44GV44Gy44GTDQor44GK44GuLOOBn+OBi+OBguOBjQ0KK+OBiuOBluOBjSzjgojjgZfjgb7jgZUNCivjgZXjgYTjgaAs44KC44KC44GTDQor44GV44GL44GQ44GhLOOBk+OBhuOBmA0KK+OBleOBi+OBhCzjgarjgYrjgY0NCivjgZXjgZMs44GC44GL44GXDQor44GV44KT44G5LOOBvuOBk+OBqA0KK+OBleOBleOBjSzjgobjgZ/jgYsNCivjgZXjgZ/jgZEs44Go44GX44GNDQor44GV44Go44GGLOOChuOBjeOBn+OBiw0KK+OBsuOCieOBrizjgbLjgo3jgYLjgY0NCivjgZXjgo/jgoDjgoks44Gy44KN44GXDQor44Gb44GN44GtLOOBi+OBmuOBguOBjQ0KK+OBl+OBsOOBr+OCiSzjgYvjgZrjga4NCivjgZfjgbDjgZbjgY0s44G+44GV44GTDQor44GX44G+LOOBk+OBmeOBkQ0KK+OBl+OBv+OBmizjgZHjgYTjgZnjgZENCivjgZfjgoLjgYvjgo/jgbks44GC44GN44Gy44KNDQor44GX44Gu44GW44GNLOOBsuOCjeOBlw0KK+OBl+OCieOBr+OBvizjgb/jgaHjgbLjgZUNCivjgZfjgofjgYbjgarjgZQs44Gf44GL44GX44GSDQor44GZ44GgLOOCgeOBhOOBmOOCjeOBhg0KK+OBmeOBjuOCguOBqCzjgb/jgYsNCivjgZnjgY7jgZ8s44Gf44GL44KG44GNDQor44GZ44G/44GgLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgb7jgZXjgbXjgb8NCivjgZnjgZrjgY0s44GX44GS44KLDQor44GZ44Ga44GuLOOBi+OBpOOBteOBvw0KK+OBn+OBkOOBoSzjgb/jgobjgY0NCivjgZ/jgYvjgY4s44Go44GX44GL44GaDQor44Gf44GL44Gv44GXLOOBsuOCjeOBv+OBoQ0KK+OBn+OBi+OBr+OBlyzjgbLjgafjga7jgooNCivjgZ/jgYvjga/jgZcs44GR44KT44GE44GhDQor44Gf44GL44GuLOOBv+OBjeOBkw0KK+OBn+OBi+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgZHjgaAs44GE44Ga44G/DQor44Gf44GR44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOChOOBmSzjgozjgYTjgZgNCivjgZ/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgZ/jgYvjgojjgZcNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gr44GQ44GhLOOBi+OBpOOBsuOBkw0KK+OBpuOCieOBvuOBiCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgajjgY3jgo8s44Gh44GI44GTDQor44Go44KK44GU44GILOOBleOBoOOChuOBjQ0KK+OBpOOBoeOBn+OBqyzjgbLjgafjgY0NCivjgaTjgZjjgoDjgoks44Gf44GL44GXDQor44Gk44GL44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBpOOBpOOBvyzjgb7jgZXjga7jgooNCivjgYbjgaHjga4s44GV44Go44GXDQor44Gt44GaLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOBpOOBvCzjgojjgZfjgZ/jgYsNCivjgYbjgYrjgZrjgb8s44GV44KT44G644GEDQor44KP44GgLOOBv+OBpOOBruOCig0KK+OCj+OBn+OBquOBuSzjgojjgZfjgY0NCivjgoTjgbYs44GT44GG44GYDQor44KE44G+44GgLOOChuOBhuOBkw0KK+OBsuOBleOBrizjgorjgYsNCivjgoTjgb7jgZDjgaEs44Gu44KK44KG44GNDQor44KE44G+44GL44KPLOOChuOBjeOBkw0KK+OChOOBvuOCguOBqCzjgarjgYrjgagNCivjgoTjgb7jgoLjgags44GX44KT44GE44GhDQor44KE44G+44GG44GhLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBluOBjSzjgZ/jgYvjgYoNCivjga/jgY7jgo/jgoks44G/44GN44GKDQor44KI44Gt44GW44KPLOOBiOOCig0KK+OCiOOBl+OBoCzjgZXjgaHjgZMNCivjgojjgZfjgb7jgaQs44GR44KT44Gf44KN44GGDQor44Ga44GXLOOChuOBjeOBig0KK+OBhOOCj+OBi+OCjyzjgZ3jgYbjgZ/jgo3jgYYNCivjgYTjgZfjgb7jgaQs44Gy44KN44KE44GZDQor44GC44G5LOOBiOOBhOOBhOOBoQ0KK+OBguOBi+OBhOOBlyzjgYjjgYTjgaENCivjgYLjgb7jgYzjgZ8s44Gf44GL44GXDQor44GC44KT44GW44GELOOBvuOBleOBsuOBpw0KK+OBguOCieOBjSzjgajjgZfjgb/jgaQNCivjgYLjgZfjgaAs44GV44Go44GXDQor44Gh44KH44GGLOOBiOOBhOOBmA0KK+OBqeOBhCzjgZHjgpPjgYTjgaENCivjgYjjga7jgoLjgags44GN44KI44G/DQor44G144GY44GELOOBleOBpOOBjQ0KK+OBteOBmOOBnyzjgZ/jgYvjgZcNCivjgbXjgY/jgoDjgo0s44Gf44GL44GXDQor44G144Gq44GNLOOBquOBiuOBjQ0KK+OBteOCi+OChCzjgajjgoLjgoQNCivjgYTjgo/jgZXjgY0s44GV44GI44GTDQor44GE44Go44GGLOOBl+OCjeOBhg0KK+OBr+OBoCzjgbLjgafjgYLjgY0NCivjga/jgarjgaks44G/44Gu44KLDQor44Gv44KJ44GgLOOBn+OBkeOBlw0KK+OBr+OCieOBnuOBrizjga7jgbbjgbLjgo0NCivjga/jgZfjgoLjgags44GV44Go44GXDQor44Gv44Gj44Go44KKLOOBvuOBk+OBqA0KK+OBr+OChOOBlyzjgZ/jgYvjgojjgZcNCivjgbLjgYzjgZcs44GL44Ga44GKDQor44Gy44KJ44GuLOOBsuOCjeOBkw0KK+OBsuOCiuOBjSzjgZHjgpPjgYTjgaHjgo0NCivjgbvjgpPjgaAs44GV44Gq44GIDQor44G744GX44KE44G+LOOBv+OBjuOBteOBvw0KK+OBhOOBoeOBr+OCiSzjgZ/jgYvjgZcNCivjgYTjgYzjgonjgZcs44GL44Gk44Gu44G2DQor44GE44GR44GgLOOCiuOCh+OBhg0KK+OBhOOBvuOCgOOCiSzjgYrjgZXjgoANCivjgYTjgarjgoDjgoks44Go44KC44Gu44KKDQor44GE44Gu44GG44GILOOChOOBmeOBsuOCjQ0KK+OBhOOBleOBiyzjgZfjgZLjgosNCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GELOOBruOBvOOCiw0KK+OBhOOBl+OBmuOBiyzjgobjgY3jgYoNCivjgYTjgajjgYYs44GX44KH44GG44GTDQor44GE44Go44GGLOOBvuOBleOBvw0KK+OBhOOBqOOBhizjgYjjgYTjgZgNCivjgYTjgo/jgarjgYws44Gq44GK44GTDQor44GY44KT44GwLOOBpOOBreOBruOCig0KK+OBi+OBmOOCguOBqCzjgZ/jgY/jgoQNCivjgYvjgZMs44Go44GX44Gy44GTDQor44GL44KTLOOBn+OBj+OChA0KK+OBi+OBruOBhizjgb7jgobjgb8NCivjgYvjgZnjgoQs44G+44GV44Gq44KKDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBuSzjgojjgZfjgobjgY0NCivjgYvjgo/jgYvjgb8s44GR44KT44GE44GhDQor44GL44KP44GuLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBl+OBvizjgoTjgZnjga7jgbYNCivjgY3jgY/jgaEs44G+44KC44KLDQor44GN44KA44KJLOOBguOBpOOBlw0KK+OBjeOBrizjgYLjgY0NCivjgY3jgZ/jgYzjgo8s44GK44GV44KADQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OBhOOBqOOBhizjgZfjgpPjgZgNCivjgZPjgY/jgZfjgofjgYYs44G+44GV44KLDQor44GT44KT44GpLOOBvuOBleOChuOBjQ0KK+OBk+OChOOBvizjgbLjgo3jgZ/jgYsNCivjgY/jgozjgb7jgaQs44Gf44GL44Gy44GnDQor44GP44KK44KF44GGLOOCiOOBl+OBiA0KK+OBvuOBoeOBnyzjgb7jgZXjgY0NCivjgb7jgovjgYTjgaEs44G+44GV44KG44GNDQor44G+44GZ44GgLOOChuOBjeOBkw0KK+OBvuOBpOOBhCzjgbLjgafjgZcNCivjgb7jgaTjgoLjgags44KI44GX44GNDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjgZ/jgZHjgZcNCivjgb7jgaTjgoTjgb4s44GT44GG44Gf44KN44GGDQor44G/44GX44G+LOOBi+OBmuOBvw0KK+OBv+OBpOOCguOBqCzjgY3jgojjgb8NCivjgb/jgoTjgoLjgags44Go44GX44GC44GNDQor44GG44Gh44KE44G+LOOBv+OBjeOBkw0KK+OBv+OBmuOBrizjgb7jgZXjgojjgZcNCivjgoLjgY4s44KC44KG44KLDQor44KC44KKLOOBvuOBleOBsuOCjQ0KK+OCguOCiuOBnyzjgYvjgZrjgbLjgZUNCivjgoLjgajjgbDjgoTjgZcs44GV44Go44KLDQor44KA44KJ44GL44G/LOOBsuOCjeOBguOBjQ0KK+OCgOOCieOBnyzjgajjgoLjga7jgooNCivjgarjgbAs44Gy44KN44KG44GNDQor44Gq44GM44GK44GRLOOBleOBqOOBlw0KK+OBquOBjOOBnyzjgZfjgofjgYbjgbjjgYQNCivjgarjgYvjgYzjgo8s44KI44GX44KG44GNDQor44Gq44GL44GY44G+LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgarjgYvjgavjgZcs44GE44Ga44KLDQor44Gq44GL44GKLOOBguOBjeOBkw0KK+OBquOBi+OChOOBvizjgbXjgb/jgYoNCivjga3jgoLjgags44G/44Gk44GC44GNDQor44Gr44GX44GgLOOCiOOBl+OChA0KK+OBq+OBl+OCgOOCiSzjgY3jgo/jgoANCivjga7jgbbjga/jgoks44GT44GG44GYDQor44Gu44Ge44GILOOBr+OBmOOCgQ0KK+OBiuOBiuOBjizjgZ/jgZHjgZcNCivjgYrjgYrjgYgs44KI44GG44GE44GhDQor44GK44GK44GP44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOCguOCiizjgarjgYrjgY0NCivjgYrjga4s44GC44GN44KJDQor44GK44GK44GfLOOBguOBleOBkw0KK+OBiuOBiuOBn+OBqyzjgoTjgZnjgbLjgo0NCivjgYrjgYss44G144G/44GTDQor44GK44GL44G+44GkLOOBn+OBi+OBsuOCjQ0KK+OBiuOBi+OCguOBqCzjga7jgorjgYoNCivjgYrjgYrjga4s44Gq44GK44GNDQor44Go44GP44G/44KELOOBpuOBpOOChA0KK+OBleOBhOOBqOOBhizjgobjgZ/jgYsNCivjgZXjgYvjgY3jgbDjgoks44Gf44GL44GKDQor44G/44Gf44GrLOOBkeOCk+OBhOOBoQ0KK+OBleOBrizjgZfjgoXjgYbjgZ7jgYYNCivjgZXjgZXjgY0s44Gb44GE44GYDQor44GV44Go44GGLOOBn+OBi+OBi+OBmg0KK+OBleOBqOOBhizjga7jgbzjgosNCivjgZXjgajjgYYs44Go44KC44GNDQor44GV44KE44GuLOOBhOOBj+OChA0KK+OBm+OCk+OBqizjgajjgZfjgb/jgaQNCivjgZfjgbbjgZ/jgass44GN44KH44GG44GTDQor44GX44G+44KA44KJLOOCiOOBl+OBv+OBpA0KK+OBl+OBquOBoCzjgYvjgaTjgb8NCivjgZfjgonjga/jgb4s44Gf44KN44GGDQor44GX44KF44Go44GGLOOChuOBv+OBkw0KK+OBmeOBoCzjgarjgYrjgbLjgo0NCivjgZnjgY7jgoTjgb4s44Gy44Gn44G+44GVDQor44GZ44G/44GK44GLLOOBqOOCguOChA0KK+OBmeOBmuOBjSzjgbLjgafjgbLjgo0NCivjgZ/jgbDjgZMs44GP44G/44GTDQor44Gf44GM44KPLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgoQNCivjgo/jgZ/jgarjgbks44G+44GNDQor44Gf44GL44GP44KJLOOBkeOCk+OBmeOBkQ0KK+OBn+OBi+OBiuOBiyzjgZTjgYYNCivjgZ/jgZHjga/jgaos44G+44GV44GL44GkDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gf44Gq44GLLOOBruOCiuOBsuOCjQ0KK+OBn+OBq+OBhCzjgobjgorjgZMNCivjgZ/jgZfjgo0s44GR44KT44GE44GhDQor44Gm44KJ44KC44GoLOOBiOOBhOOBmA0KK+OBqOOBjeOBiuOBiyzjgZ/jgYvjgZfjgZINCivjgajjgb/jgYvjgo8s44Gu44KK44GTDQor44Go44KK44GL44GELOOBquOBiuOBjQ0KK+OBpOOBoCzjgZPjgYbjgYTjgaENCivjgZXjgYvjgYQs44G/44G744GTDQor44GG44GgLOOBguOBpOOBkw0KK+OBhuOBiOOBrizjgYrjgZXjgoANCivjgYbjgoHjga/jgoks44Go44GX44GKDQor44GG44GX44GwLOOBv+OBruOCiw0KK+OCj+OBi+OBiizjgZHjgYTjgZgNCivjgo/jgZ/jgbks44G+44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBoOOBhOOBoQ0KK+OBqOOBv+OChOOBmSzjgajjgZfjgbLjgZUNCivjgoTjgb7jgaAs44G+44GNDQor44KE44G+44GT44GXLOOBoOOBhOOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpMNCivjgoTjgb7jgZfjgZ8s44Gq44GK44GTDQor44KE44Gq44GOLOOBqOOBl+OBguOBjQ0KK+OCiOOBk+OBleOCjyzjgZ/jgY/jgoQNCivjgojjgZPjgoTjgb4s44GL44Ga44Gu44G2DQor44KI44GX44GgLOOBquOBiuOBqA0KK+OCiOOBl+OBvyzjgZ/jgYTjgY0NCivjgojjgZfjgZbjgo8s44Go44GX44GL44GkDQor44GE44G+LOOBvuOBleOBsuOCjQ0KK+OBj+OBvCzjgb7jgZXjgbLjgZMNCivjgarjgYvjga/jgoks44Gf44GP44KEDQor44GK44GQ44KJLOOBqOOBiuOCiw0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44KA44Gt44Gy44KNDQor44GC44GE44GwLOOBleOBqOOBlw0KK+OBguOBvuOBrizjgarjgYrjgZMNCivjgYLjgorjgZ8s44Gy44Gn44GC44GNDQor44GC44Gf44GQ44GhLOOBsuOCjeOBlw0KK+OBoOOBpizjgZfjgZLjgbLjgZMNCivjgYjjgZbjgo8s44Gq44KK44Gy44GnDQor44G144GY44KC44GoLOOBv+OBjeOBig0KK+OBteOBj+OBqeOCgSzjgZ/jgYvjgZcNCivjgbXjgovjgYvjgo8s44GC44GR44G/DQor44Gv44GO44KP44KJLOOCiuOCheOBhuOBnw0KK+OBr+OBquOBnyzjgbLjgonjgY8NCivjga/jgZvjgYzjgo8s44KG44Gf44GLDQor44GL44GY44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgobjgY0NCivjgbLjgYzjgZcs44KK44KF44GG44GZ44GRDQor44Gy44KJ44GKLOOBvuOBleOChuOBjQ0KK+OBsuOCjeOBmyzjgb/jgaTjgosNCivjgbvjgpPjgb4s44Gf44GR44GXDQor44G144GP44KN44GELOOBkeOCk+OBmA0KK+OBhOOBoeOBruOBm+OBjSzjgajjgZfjgbLjgo0NCivjgYTjgZHjgaAs44KG44Gf44GLDQor44GE44G+44KA44KJLOOBkeOCk+OBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgYoNCivjgYTjgZfjgaAs44GT44GG44GYDQor44GE44GX44GL44KPLOOBguOBjeOCiQ0KK+OBhOOCj+OBleOBjSzjgZ/jgZHjgZcNCivjgYvjgYTjgZrjgYss44Gy44KN44GTDQor44GL44G/44GM44GNLOOBruOCiuOBsuOBpw0KK+OBi+OBreOBkyzjgY/jgavjgbLjgZMNCivjgYvjgZ/jgY7jgoos44Gq44GK44KG44GNDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBi+OBvyzjgZPjgYbjgZgNCivjgYvjgaTjgY0s44GC44GN44Go44KCDQor44GN44KA44KJLOOBleOBqOOCiw0KK+OBjeOBruOBl+OBnyzjgobjgYvjgooNCivjgY3jgZ/jgoTjgb4s44Gh44Gy44KNDQor44GC44KB44GX44GfLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgbLjgo0NCivjgZPjgYws44Gu44KK44KG44GNDQor44GT44GE44GRLOOBguOBjeOBig0KK+OBk+OCk+OBqSzjgajjgoLjga7jgooNCivjgY/jgbzjgY0s44GE44GP44GTDQor44GP44KJ44GX44GqLOOBi+OBpOOBsuOBqA0KK+OBj+OCjeOBjSzjgaTjgojjgZcNCivjgb7jgYjjgaAs44KE44GZ44Gy44KNDQor44G+44GV44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBoCzjgarjgYrjgb8NCivjgb7jgaTjgoLjgags44GX44KF44GG44GE44GhDQor44KB44GL44GfLOOBsuOCjeOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgoLjgoos44KG44GLDQor44KC44KK44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgYLjgY0NCivjgoDjgZ8s44Gy44GV44GXDQor44Gq44GM44KE44G+LOOBpuOBpOOChA0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjgZMNCivjgarjgYvjgoDjgoks44GC44GN44Gu44G2DQor44Gq44GL44KA44KJLOOBvuOCig0KK+OBquOBi+OBnyzjgZPjgYbjgYTjgaENCivjgarjgYvjgZbjgo8s44GR44GE44GZ44GRDQor44Gr44GXLOOBi+OBreOBruOBtg0KK+OBq+OBl+OChOOBvizjgb/jgarjgZMNCivjga7jgags44GY44KF44KT44GE44GhDQor44GK44GM44KPLOOCiOOBhuOBmA0KK+OBiuOBiuOBsCzjgb7jgZXjgbLjgacNCivjgYrjgoDjgoks44G+44KGDQor44GE44GR44G+44GkLOOBn+OBi+OBkw0KK+OBiuOBhOOBoCzjgbLjgajjgZcNCivjgYrjgYvjgZbjgo8s44Gy44Go44GXDQor44GK44GuLOOBquOBiuOBvw0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgZUNCivjgZXjgYvjgYQs44Gu44G244KE44GZDQor44GV44GP44GfLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44GT44GG44GYDQor44GV44KP44Gv44GXLOOBn+OBpOOChuOBjQ0KK+OBl+OBsOOBnyzjgYLjgoTjgZMNCivjgZfjgb/jgZos44GL44Gk44KG44GNDQor44GX44GK44G/LOOBl+OCk+OBmA0KK+OBl+OBn+OCiSzjgbLjgZXjgZcNCivjgZnjgY7jgZ8s44GL44Gk44Gy44GTDQor44GZ44GR44GM44KPLOOBruOBtuOCiOOBlw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgo0NCivjgZfjgofjgYYs44GX44KH44GG44Gf44KN44GGDQor44Gf44GELOOBvuOBleOBpuOCiw0KK+OBn+OBi+OBjizjgabjgaTjgo3jgYYNCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44Gf44GL44KE44G+LOOBsuOBp+OBpOOBkA0KK+OBn+OBkeOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgZ/jgZMs44KI44GX44GNDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBuOOBhA0KK+OBn+OBqyzjgYvjgZrjgarjgooNCivjgZ/jgZrjgZEs44Gb44GE44GE44GhDQor44Go44KC44Go44GXLOOBkeOCk+OBmA0KK+OBpOOBoeOCguOBqCzjgbXjgb/jgYoNCivjgaTjga7jgaAs44GX44KH44GG44GYDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBiOOBoCzjgYLjgY3jga7jgooNCivjgYbjga7jgY0s44Gu44G244Gy44GTDQor44KP44GgLOOBsuOCjeOBn+OBpA0KK+OCj+OBl+OBmizjgZfjgofjgYYNCivjgo/jgZ/jgarjgbks44GT44GG44Gb44GEDQor44KE44G+44GgLOOBn+OBi+OBqA0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZgNCivjgoTjgb7jgoLjgags44G/44Gk44Ge44GGDQor44KE44G+44GqLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OChOOBl+OCjSzjgZ/jgZHjgZcNCivjgojjgZPjgoTjgb4s44G+44GV44Gy44GTDQor44KI44GX44GgLOOBqOOCguOBvw0KK+OChuOBjSzjgZvjgaTjgZMNCivjgbLjgonjgYvjgo8s44G+44Gq44G2DQor44KC44KK44GE44GhLOOBiOOBhOOBmOOCjeOBhg0KK+OBl+OBv+OBmizjgZHjgYQNCivjgbXjgZjjgoXjgYYs44GX44KT44GE44GhDQor44Gv44GM44KPLOOBn+OBi+OBlw0KK+OBr+OBm+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgbLjgonjga4s44Gf44GP44KEDQor44G744KT44GU44GGLOOBpuOCi+OBsuOBkw0KK+OBhOOBkeOBoCzjgajjgZfjgobjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GNDQor44GE44Go44GGLOOCiOOBl+OBvw0KK+OBi+OBquOChOOBvizjgZPjgYbjgZgNCivjgYvjgZ/jgY7jgoos44GX44KT44GZ44GRDQor44GN44KC44GoLOOBn+OBj+OChA0KK+OBjeOChOOBvizjgZvjgYTjgZgNCivjgZPjgZjjgaos44GR44KTDQor44GT44KT44GpLOOBsuOCjeOBsuOBkw0KK+OBj+OCiuOBnyzjgZXjgajjgZcNCivjgb7jgZnjgaAs44Gg44GE44GhDQor44G/44GL44G/LOOBv+OBpOOBig0KK+OBv+OCjyzjgZ/jgYvjga7jgbYNCivjgoLjgaHjgZrjgY0s44Gu44G244KG44GNDQor44KC44KK44KE44G+LOOBqOOBl+OBig0KK+OBquOBjOOBteOBmCzjgY3jgb/jgbLjgagNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOBleOBqA0KK+OBquOBmeOBrizjgarjgYrjgY0NCivjga7jgaAs44KG44GG44GTDQor44GK44GM44KPLOOCiuOCh+OBhuOBkw0KK+OBiuOBiuOBi+OCjyzjgZjjgoXjgpPjgZMNCivjgYrjgYrjgZ/jgass44GR44KTDQor44GK44GP44KA44KJLOOBvuOBquOBvw0KK+OBhOOBjizjgYLjgY3jga7jgooNCivjgZXjgarjgaAs44KI44GX44Gy44KNDQor44GV44Go44GGLOOBsuOBp+OBsuOBlQ0KK+OBm+OBjSzjgojjgYbjgYTjgaENCivjgZfjgbDjgZ8s44KG44GN44Gu44KKDQor44GX44G+44GL44KPLOOBl+OBkuOCiw0KK+OBl+OBiuOBmOOCiizjgbLjgo3jgZcNCivjgZnjgaAs44Go44KC44Gv44KLDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBn+OBi+OBoCzjgZ/jgYvjga7jgooNCivjgZ/jgYvjga/jgZcs44GN44KH44GG44GTDQor44Gf44GL44GZLOOBpOOCiOOBlw0KK+OBn+OBq+OBkOOBoSzjgarjgYrjgY0NCivjgaTjga3jgYvjgo8s44Gy44KN44G144G/DQor44GG44GI44Gv44KJLOOBsuOBp+OBguOBjQ0KK+OChOOBjuOCguOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgZDjgaEs44Go44KC44GTDQor44KE44G+44GX44GfLOOBi+OBmuOBjQ0KK+OChOOBluOBjSzjgarjgYrjgY0NCivjgojjgZfjgaAs44Gv44KL44Gy44GTDQor44GC44GE44GL44KPLOOBsuOCjeOBteOBvw0KK+OBoeOBi+OBr+OCiSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44Gf44GL44GIDQor44Gu44GW44GNLOOBpuOCi+OBguOBjQ0KK+OBguOBi+OBq+OBlyzjgarjgYrjgbLjgo0NCivjgZfjgb7jgoLjgags44GC44Go44KADQor44GC44Gq44GW44KPLOOBv+OBruOCiw0KK+OBhOOBhuOBoSzjgb7jgZPjgagNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44GE44Gh44GL44KPLOOBneOCiA0KK+OBhOOBvuOBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYbjgaHjgoTjgb4s44KI44GX44Gf44GLDQor44GK44GG44GV44GLLOOBvuOBleOBn+OBiw0KK+OBiuOBiuOBn+OBqyzjgbLjgafjgY0NCivjgYrjgYrjgbDjgoTjgZcs44GX44KT44GYDQor44GK44GQ44KJLOOBsuOCjeOBkw0KK+OBi+OBjeOCguOBqCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44GX44GS44Gu44KKDQor44GL44G/44KE44G+LOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBmyzjgarjgYrjgY0NCivjgY3jgZ/jgZjjgb4s44GC44GN44Gy44KNDQor44GP44GV44GL44G5LOOBvuOBiOOBkw0KK+OBk+OBhOOBpyzjgbLjgafjgY0NCivjgZPjgb7jgaQs44GR44GE44GE44GhDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBqOOBhizjgZjjgoXjgpMNCivjgZfjgoXjgYYs44G+44GV44KEDQor44GX44Gu44GgLOOBvuOBmeOBvw0KK+OBl+OBv+OBmizjgZXjgajjgZcNCivjgZnjgYzjgo/jgoks44GX44GS44G144G/DQor44GZ44G/44GL44KPLOOBi+OBpOOBguOBjQ0KK+OBn+OBi+OBmyzjgY3jgojjgZ/jgYsNCivjgZ/jgZHjgaAs44GR44GE44GE44GhDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBn+OBsOOBnyzjgb/jgo/jgZMNCivjgaTjgaHjga/jgZcs44KA44Gt44Gy44KNDQor44Go44KA44KNLOOBquOBpOOBsuOBkw0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZMNCivjgarjgZks44Gy44KN44GXDQor44Gr44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBruOCgOOCiSzjgYvjgZrjgbLjgZMNCivjga/jgZvjgYzjgo8s44GR44KT44GE44GhDQor44Gv44KJ44GgLOOBqOOCguOBkw0KK+OBsuOBmOOCiizjgYjjgooNCivjgbXjgZjjgZ8s44Gu44G244GTDQor44G744Gd44GL44KPLOOBn+OBpOOBig0KK+OBvuOBmeOBtuOBoSzjgZ/jgYvjgZcNCivjgb7jgaTjgarjgYws44KG44GNDQor44G+44Gk44KE44G+LOOBpuOBpOOChA0KK+OBv+OBnyzjgb/jga7jgosNCivjgb/jgojjgZcs44KI44GG44GTDQor44KA44KJ44KE44G+LOOBvuOBk+OBqA0KK+OCguOCiuOBl+OBnyzjgYvjgZrjgbLjgo0NCivjgoTjgZjjgb4s44Gq44GK44GTDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgY0NCivjgojjgZPjgoTjgb4s44KI44GG44GTDQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOBqA0KK+OBj+OCj+OBl+OBvizjgZnjgZDjgosNCivjgZXjgYvjgoLjgags44Gy44Gn44Gu44G2DQor44GE44Go44GGLOOBn+OBoOOBsuOCjQ0KK+OBhuOCgeOBquOBhCzjgZnjgZnjgoANCivjgYrjgYvjgZfjgo0s44GX44KN44GGDQor44GL44KP44GK44GLLOOBsuOBp+OBjQ0KK+OBj+OBsCzjgZ/jgYvjgZcNCivjgZPjgYbjgaAs44G+44GV44Gf44GRDQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBguOBuSzjgb7jgZXjga/jgosNCivjgZ/jgYvjga/jgZcs44Gy44GV44G/DQor44Gf44Gw44GfLOOBi+OBpOOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgZPjgYbjgYTjgaENCivjga/jgZfjgoLjgags44Go44GK44KLDQor44Gy44KJ44GuLOOBvuOBleOBn+OBiw0KK+OBu+OBneOBrizjgYLjgY3jgbLjgagNCivjgoDjgonjgYvjgb8s44GR44GE44GTDQor44KI44GX44KA44KJLOOBiOOCig0KK+OBguOBvuOChCzjgb7jgZXjgosNCivjgaHjgofjgYYs44Gg44GE44GZ44GRDQor44GU44GG44GgLOOBjeOCiOOBruOBtg0KK+OBr+OChOOBi+OCjyzjgbLjgo3jgY0NCivjgbXjgovjgZ8s44Gq44KL44GNDQor44GE44GE44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOBl+OCj+OBn+OCiizjgbLjgo3jgYvjgaQNCivjgYvjgbDjgoTjgb4s44G+44GV44GNDQor44GL44KT44GgLOOChOOBmeOBsuOBqA0KK+OBjeOBn+OCgOOCiSzjgojjgZfjgYoNCivjgZPjgpPjga4s44GT44GG44GE44GhDQor44G+44Gh44GgLOOBr+OCi+OBvw0KK+OBvuOBpOOBhCzjgZ/jgZHjgZcNCivjgb/jgYbjgoks44GR44GE44GUDQor44Gf44Gv44KJLOOBruOCiuOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgZMNCivjgarjgYvjgb/jga0s44G+44KC44KLDQor44Gq44GL44GW44KPLOOBjeOCiOOBlw0KK+OBiuOBiuOBnyzjgZfjgZLjgYLjgY0NCivjgYTjgZfjgYvjgo8s44KI44GGDQor44GE44Go44GGLOOBqOOCguOChA0KK+OBleOBqOOBhizjgaTjgZDjgbLjgacNCivjgZfjgbDjgZ8s44Gq44GK44GNDQor44Gd44KB44KELOOBguOBjeOBsuOBkw0KK+OBn+OBkeOBoCzjgYLjgY3jgokNCivjgZ/jgarjgYss44GT44GG44GE44Gh44KN44GGDQor44Gf44Gr44GX44GfLOOBteOBv+OBrg0KK+OBpOOBoeOChCzjgojjgZfjgZMNCivjgo/jgZjjgb4s44KK44GTDQor44KE44G+44GgLOOBsuOCjeOBjQ0KK+OChOOBvuOBluOBjSzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44GC44KT44Gp44GGLOOChuOBjQ0KK+OBhOOBl+OCguOBqCzjgorjgofjgYbjgZnjgZENCivjgYTjgo/jgZXjgY0s44G/44Ga44G+44GVDQor44GG44KB44Gv44KJLOOBn+OBi+OBlw0KK+OBiuOBjOOBnyzjgoTjgZnjgZcNCivjgYrjgavjgZbjgo8s44GX44GS44GNDQor44GL44GYLOOBiuOBleOCgA0KK+OBi+OBreOBkyzjga7jgbbjgYvjgaQNCivjgYvjgo/jgb7jgZ8s44Gy44KN44GNDQor44GP44G8LOOBqOOCguOBruOCig0KK+OBk+OBhuOBleOBjSzjgZPjgYbjgYTjgaENCivjgZXjgYTjgbss44Gq44KL44Gy44KNDQor44GV44Gq44GgLOOBiuOBleOCgA0KK+OBl+OBl+OBqSzjgY/jgavjgYoNCivjgZnjgY7jga/jgoks44GN44KI44GX44GSDQor44Gf44GL44GK44GLLOOChuOBvw0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgarjgYvjgYos44GX44KT44GYDQor44Gq44GL44GuLOOBmA0KK+OBq+OBl+OBi+OBhCzjgajjgZfjgb/jgaQNCivjga3jgo3jgoEs44Gy44KN44GXDQor44Gv44G2LOOBvuOBk+OBqA0KK+OBsuOCieOBhCzjgYvjgYrjgooNCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G744KT44G+LOOChuOBjeOBruOBtg0KK+OBvuOBpOOBluOCjyzjgaHjgYvjgokNCivjgb/jgoTjgoLjgags44KE44GZ44GYDQor44KC44KK44KELOOBu+OBvuOCjA0KK+OChOOBrizjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44G+44GE44GTDQor44KI44GgLOOBn+OBi+OBsuOCjQ0KK+OCj+OBn+OBuSzjgZ/jgYvjgZcNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44G5LOOBvuOChuOBvw0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYTjgZfjgoDjgoks44KG44G/44GTDQor44GE44Go44GGLOOBvuOBleOCiw0KK+OBhOOBvuOBhCzjgZ/jgZHjgZcNCivjgYbjgYjjga/jgoks44KC44Go44GTDQor44GG44KB44GkLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgobjgY0NCivjgYrjgYrjgYTjgZcs44G+44GV44Gv44KLDQor44GK44GL44GuLOOChuOBjQ0KK+OBiuOBjOOCjyzjgajjgYrjgosNCivjgYvjgYzjgb8s44GI44KK44GLDQor44GL44Gf44KE44G+LOOBv+OBpOOBkw0KK+OBi+OBvyzjgojjgZfjgabjgosNCivjgYvjgo/jgZXjgY0s44Gy44Go44GXDQor44GL44KP44KC44GoLOOBv+OBoeOBig0KK+OBjeOBn+OCguOBqCzjgaTjgajjgoANCivjgY7jgofjgYbjgbYs44Gy44KN44GTDQor44GT44GE44GR44GgLOOBn+OBpOOCjeOBhg0KK+OBk+OBoOOBvizjgZ/jgYTjgaHjgo3jgYYNCivjgZPjgbDjgoTjgZcs44Gy44Gn44Gy44GoDQor44GV44GE44GU44GGLOOBv+OCj+OBkw0KK+OBleOBi+OBjOOBvyzjgYTjgaHjgo3jgYYNCivjgZXjgZXjgY0s44Gq44Gq44GIDQor44GV44KPLOOBkeOCk+OBlA0KK+OBl+OBv+OBmizjgobjgY3jgYoNCivjgZfjgofjgYbjgaAs44GX44GS44Gu44KKDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCiQ0KK+OBhOOBl+OBr+OBvizjgZHjgpPjgagNCivjgZ/jgYvjga/jgZcs44G+44GN44GTDQor44Gf44GR44KPLOOBl+OCk+OBmA0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgaTjgaTjgb8s44G+44GT44GoDQor44Gq44GE44Go44GGLOOBk+OBhuOBmA0KK+OBquOBi+OBmOOBvizjga7jgZ7jgoANCivjgarjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44GE44GR44GgLOOBvuOBleOBn+OBiw0KK+OBq+OBlyzjgaTjga3jgYLjgY0NCivjga7jga7jgYTjgaHjgoQs44G+44GZ44GKDQor44Gv44GX44Ga44KBLOOChuOBhuOBkw0KK+OBr+OBo+OBqOOCiizjgobjgYYNCivjgYTjga7jgZDjgaEs44GL44Gk44G144G/DQor44Gy44G+44GNLOOBqOOCguOBruOCig0KK+OBteOBi+OBluOCjyzjgorjgYgNCivjgbXjgZjjgarjgYws44G144G/44GTDQor44G144KL44KELOOBvuOCiuOBkw0KK+OBu+OCiuOBi+OCjyzjgajjgoLjgbLjgo0NCivjgYTjgZDjgaEs44Gf44GL44Gy44KNDQor44G/44Gk44Gv44GXLOOBiOOBhOOBhOOBoQ0KK+OBv+OChOOBl+OBnyzjgojjgYbjgZMNCivjgoDjgonjgb7jgaQs44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBguOBjeOBruOCig0KK+OChOOBrizjgZ/jgaDjgZ/jgYsNCivjgoTjgb7jgaAs44Gf44Gk44GKDQor44KE44G+44KC44GoLOOCgOOBreOBn+OBiw0KK+OCiOOBl+OBoCzjgorjgofjgYYNCivjgo/jgZ/jgarjgbks44Gy44Gn44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBl+OBiA0KK+OBk+OBhuOBoCzjgZXjgajjgosNCivjgYrjgYzjgo8s44Gy44KN44GC44GNDQor44GC44GN44KC44GoLOOBmeOBmeOCgA0KK+OBguOBleOBrizjgajjgoLjgbLjgZMNCivjgYLjgbks44G+44GV44GK44G/DQor44GE44Gk44GuLOOBv+OBjeOBig0KK+OBhOOBoeOBruOBmyzjgZPjgZrjgYgNCivjgYTjgorjgZ8s44KE44GZ44GC44GNDQor44GE44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBhOOBoeOBjSzjgb7jgZXjgagNCivjgYTjga/jgoks44GN44KI44Gf44GLDQor44GE44G+44GaLOOBpOOCiOOBlw0KK+OBhOOCj+OBmeOBjizjgb/jgYsNCivjgYbjgZnjgYQs44G+44GV44Gy44KNDQor44GI44Go44GGLOOBkeOCk+OBmA0KK+OBiuOBhizjgojjgZfjgbLjgo0NCivjgYTjgo/jgY3jgoos44KP44Gf44KLDQor44GK44GK44Gk44GNLOOBmOOCheOCkw0KK+OBiuOCgOOCiSzjgY/jgb8NCivjgYrjgYvjgZbjgY0s44Go44KC44G/44GhDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBjeOBn+OCgOOCiSzjgb7jgorjgZMNCivjgYrjgYrjgoTjgb4s44Gh44Ga44KLDQor44GL44GV44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBpOOBrizjgZ/jgYvjga7jgooNCivjgYvjgajjgoos44GR44KT44GYDQor44GM44G/LOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgb8NCivjgYvjgo/jgb8s44GX44KT44GYDQor44GN44Gf44GX44KNLOOBi+OBmuOCiOOBlw0KK+OBjeOCgOOCiSzjgZfjgZLjgosNCivjgY/jgZjjgonjgYrjgYss44Gg44GE44GNDQor44GE44GX44GQ44KNLOOBn+OCjeOBhg0KK+OBhOOBquOBqOOBvyzjgaDjgYTjgZnjgZENCivjgZPjgZrjgb4s44G+44GE44GTDQor44GT44GX44GELOOBqOOCguOBsuOCjQ0KK+OBk+OBq+OBlyzjgZ/jgaDjgZcNCivjgZPjgbDjgoTjgZcs44KI44GX44GKDQor44GV44GE44Go44GGLOOBqOOCguOBiA0KK+OBleOBi+OBhCzjgb/jga3jgYoNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBhOOBl+OBkOOCjSzjgbLjgafjgZ/jgYsNCivjgZfjgarjgaAs44KI44GX44GTDQor44GX44G+44GgLOOCiOOBl+OBleOBoA0KK+OBhOOBqOOBhizjgY3jgofjgYbjgZMNCivjgZnjgY7jgoTjgb4s44GL44Ga44GqDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBm+OBjeOBkOOBoSzjgZHjgYTjgZMNCivjgYvjgb/jgoQs44GL44GZ44G/DQor44Gf44GL44GuLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgYvjgb/jgZbjgo8s44KK44KF44GG44GNDQor44Gf44GR44GG44GhLOOBn+OBi+OBjeOCiA0KK+OBn+OBkeOCguOBqCzjgYvjgZrjgbLjgZMNCivjgZ/jgaHjgbDjgaos44GC44KE44GTDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBn+OBquOBvyzjgaTjga3jgYoNCivjgZ/jga7jgYrjgYss44G/44GI44GTDQor44Gh44KF44GGLOOBleOChOOBiw0KK+OBpOOBoeOChCzjgZvjgozjgaoNCivjgajjgZgs44G+44GV44GTDQor44Go44KI44GgLOOBn+OBj+OChA0KK+OBquOBi+OBmOOBvizjgajjgoLjgZMNCivjgarjgYzjgZ8s44KI44GX44Gy44GTDQor44Gq44GM44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYvjgaQNCivjgavjgZfjgYvjgo8s44GE44KP44GKDQor44Gr44KPLOOChuOBjeOBiA0KK+OBruOBjOOBvyzjgobjgYsNCivjga/jgZfjgZrjgoEs44Gf44GL44GXDQor44Gv44Gb44G5LOOCiOOBhuOBuOOBhA0KK+OBr+OBquOBtuOBlSzjgYrjgZXjgoANCivjga/jgoTjgZcs44G+44GT44GoDQor44Gv44KL44Gf44GrLOOBn+OBi+OBsuOCjQ0KK+OBsuOCh+OBhuOBiCzjgajjgoLjgbLjgo0NCivjgbLjgonjgazjgb4s44GL44Ga44GKDQor44G144GP44GgLOOBn+OBi+OBsuOCjQ0KK+OBteOBmOOBiizjgZ/jgYvjgobjgY0NCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44G144KL44GL44KPLOOBvuOBleOBv+OBpA0KK+OBteOCjyzjgb/jgYoNCivjgb7jgYjjgYvjgo8s44KL44G/DQor44G+44GN44GfLOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOBhuOCiSzjgYjjgorjgZMNCivjgb7jgaTjgaAs44Gf44GL44GXDQor44G+44Gk44G/44KELOOBkeOCk+OBhOOBoQ0KK+OBvuOBquOBuSzjgorjgofjgYbjgZnjgZENCivjgb/jgarjgags44Gy44KN44KG44GNDQor44KA44KJ44GL44G/LOOBvuOBleOBvw0KK+OCguOBqOOCiOOBlyzjgb7jgZPjgagNCivjgoLjgorjgZ8s44GR44KT44GYDQor44KE44GOLOOBkeOBhOOBmeOBkQ0KK+OBjOOCkyzjga/jgarjgYgNCivjgoTjgb7jgZDjgaEs44KE44GZ44G+44GVDQor44KE44G+44GV44GNLOOBmOOCheOCkw0KK+OChOOBvuOBoCzjgZ/jgaTjgZgNCivjgoTjgb7jgavjgZcs44Gq44GK44GNDQor44KI44GT44GfLOOBqOOCguOBteOBvw0KK+OCiOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgojjgZfjgoDjgoks44GP44Gr44Gy44GTDQor44KP44GN44GfLOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgZ3jgYYNCivjgYLjgb7jgZMs44KI44GX44GKDQor44G+44GuLOOBguOBjQ0KK+OBhuOBoeOCgOOCiSzjgaHjgarjgaQNCivjgZXjgY/jgonjgYQs44G+44G/DQor44GX44KJ44GELOOChuOBn+OBiw0KK+OBpuOCieOBj+OCiSzjgojjgYbjgZgNCivjgYrjgYvjgaAs44Gf44Gk44GXDQor44GU44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBpOOBsOOBjSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjgarjgYzjgY0s44Gy44Gn44Go44GXDQor44G744KK44G5LOOCguOBqOOBmA0KK+OBi+OBhCzjgojjgZfjgYgNCivjgZ/jgYvjgaAs44Go44GP44Gy44GTDQor44GT44Gf44GrLOOBteOBv+OBsuOBkw0KK+OBhOOBr+OCiSzjgZHjgYTjgZMNCivjgYLjgY3jga/jgoks44GX44KF44KT44GZ44GRDQor44GC44G5LOOChuOBjQ0KK+OBguOCieOBjSzjgbLjgo3jgZcNCivjgYTjgZfjgYQs44Gu44G244KE44GZDQor44GE44GX44Gc44GNLOOBoOOBhOOBmeOBkQ0KK+OBhOOBn+OBqyzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GX44Ga44GTDQor44GE44GuLOOBv+OBjQ0KK+OBhOOCj+OBluOBjSzjgbLjgo3jgZ/jgYsNCivjgYbjgYjjga4s44GR44KT44GYDQor44GG44KB44Gv44KJLOOBquOBpOOBkw0KK+OBiuOBiuOBiCzjgaDjgYTjgZnjgZENCivjgYrjgYrjgaQs44Gh44GIDQor44GK44GK44Gk44G8LOOBvuOBleOBv+OBpA0KK+OBiuOBi+OBoCzjgZ/jgaTjgoQNCivjgYrjgYvjgoLjgags44Gy44GV44GXDQor44GK44GP44Gq44GLLOOBm+OBhOOBlw0KK+OBiuOBsOOCiSzjgobjgorjgZMNCivjgYvjgZjjgarjgYws44KG44Gf44GLDQor44GL44Go44GGLOOCiuOCh+OBhg0KK+OBi+OBqOOBhizjgo/jgZ/jgosNCivjgYvjgo/jgYQs44GT44GG44GYDQor44GL44KP44GQ44GhLOOBmeOBmeOCgA0KK+OBjeOBlyzjgozjgYTjgZMNCivjgY3jganjgZPjgo0s44GC44Gk44GXDQor44GP44G844GfLOOBvuOChuOBvw0KK+OBj+OCj+OBsOOCiSzjgobjgYvjgooNCivjgZPjgY/jgbws44KC44KC44GIDQor44GU44Go44GGLOOBkeOBhOOBkw0KK+OBk+OBv+OChOOBvizjgb7jgZXjgojjgZcNCivjgZXjgYTjgajjgYYs44GX44GS44KLDQor44GV44GL44KC44GoLOOBoeOBi+OCiQ0KK+OBleOBleOBrizjgYLjgYvjgY4NCivjgZXjgarjgaAs44G+44GV44KG44GNDQor44GX44G+44GgLOOBn+OBkeOBlw0KK+OBl+OCguOBteOBmCzjga7jgbbjgbLjgZMNCivjgZfjgo8s44GR44KT44GE44GhDQor44GZ44GO44Gv44KJLOOBsuOCjeOBruOBtg0KK+OBmeOBmuOBjSzjgb7jgZXjgoQNCivjgZvjgY0s44GC44Gk44Gq44KKDQor44Gf44GL44GOLOOBi+OCiA0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgarjgYoNCivjgZ/jgY3jgZbjgo8s44GV44Go44GXDQor44Gf44GR44GgLOOChuOBhuOBhOOBoeOCjQ0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgavjgYvjgo8s44KI44GX44Gk44GQDQor44Gf44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBpOOBi+OBoCzjgorjgYgNCivjgaTjgbzjgZ8s44G+44GV44KEDQor44Go44GG44GL44GE44KK44KTLOOChuOBvw0KK+OBqOOBruOBhCzjgYLjgY3jgZMNCivjgarjgYvjgYzjgo8s44KI44GX44Gu44KKDQor44Gq44GM44GuLOOCiuOCh+OBhuOBnw0KK+OBquOBi+OChOOBvizjgajjgoLjgbLjgo0NCivjgavjgZfjgYrjgYss44GX44KT44GE44GhDQor44Gt44GO44GXLOOCiuOBiw0KK+OBruOBluOBjSzjgaDjgYTjgZnjgZENCivjga/jgZfjgZDjgaEs44Go44GX44Gy44KNDQor44Gv44Gj44Go44KKLOOChuOBhuOBhOOBoQ0KK+OBr+OBvuOBoCzjgaDjgYTjgZgNCivjgbLjgZfjgazjgb4s44GC44Gk44GXDQor44Gy44KJ44GfLOOBvuOBv+OBkw0KK+OBteOBj+OBoCzjgZ/jgYvjgZcNCivjgbXjgZjjgYjjgaAs44Gy44GV44GL44GaDQor44G144GY44KP44KJLOOBn+OBj+OBqA0KK+OBu+OCiuOBi+OCjyzjgZfjgoXjgYbjgZgNCivjgb7jgaTjgYos44Gy44Gn44Gu44KKDQor44G+44Gk44KE44G+LOOBv+OBpOOBpuOCiw0KK+OBv+OChCzjgYLjgY3jgokNCivjgb/jgoTjgoLjgags44GP44Gr44GTDQor44KA44KJ44GL44G/LOOBn+OBpOOBsuOCjQ0KK+OCguOCiuOBnyzjgb7jgb8NCivjgoTjgZDjgoks44GX44KT44GYDQor44KE44G+44GgLOOBv+OBmuOBuw0KK+OChuOCiSzjgZHjgpPjgYTjgaENCivjgojjgZfjgZbjgo8s44KG44GG44GTDQor44KN44GPLOOBguOBjeOBkw0KK+OCj+OCieOBsyzjgbLjgo3jga7jgooNCivjgb/jgbLjgoks44KK44KH44GG44G444GEDQor44G/44GO44GfLOOBvuOBqg0KK+OBn+OBkeOBhuOBoSzjgorjgofjgYYNCivjgYrjga7jgafjgoks44GP44Gr44Gy44KNDQor44GC44GL44GM44KPLOOCguOBqOOBkw0KK+OBguOBleOBrOOBvizjgYLjgoQNCivjgYLjgonjgYQs44Gk44KI44GXDQor44GE44GW44KPLOOBoeOBr+OCiw0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgobjgY0NCivjgYTjgacs44Gq44KL44G/DQor44GE44Gu44GG44GILOOBvuOBk+OBqA0KK+OBhOOBvuOBnOOBjSzjgY/jgb/jgZMNCivjgYTjgo/jgZ8s44GT44GG44GYDQor44GG44GV44G/LOOBvuOCiuOBkw0KK+OBiOOBruOBjeOBqSzjgojjgorjgZMNCivjgYrjgY3jgZ8s44KG44GN44Gu44KKDQor44GK44GK44Gk44GLLOOCguOBqOOBhA0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYvjgaAs44GL44Ga44Gy44KNDQor44GK44GP44GP44G8LOOBn+OBi+OBlw0KK+OBi+OBquOBhCzjgZHjgpPjgYTjgaENCivjgYvjgb/jgoQs44GV44Gh44GTDQor44GL44KP44GV44GNLOOBsuOCjeOBjQ0KK+OBjeOBoCzjgYjjgYTjgZnjgZENCivjgY3jgoDjgoks44G144G/44GoDQor44GP44KB44GG44GhLOOBkeOCk+OBmA0KK+OBj+OCj+OBr+OCiSzjgZfjga4NCivjgZPjgYws44Gf44GP44GYDQor44GT44Gw44KE44GXLOOBguOCk+OBqg0KK+OBleOBhOOBqOOBhizjgZHjgpPjgYTjgaENCivjgZXjgZXjgY0s44Gv44Gq44GTDQor44GV44Go44GGLOOBv+OBjQ0KK+OBleOBr+OCiSzjgZ/jgYvjgbXjgb8NCivjgZfjgaAs44KI44GX44Gy44KNDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBl+OCguOBluOBjSzjgZ/jgaTjgbLjgZMNCivjgZnjgY7jgYbjgoks44G+44GV44Gu44G2DQor44GZ44GoLOOBleOBqOOBlw0KK+OBm+OBqCzjgZHjgYTjgZgNCivjgZ/jgYvjgY4s44Gu44KK44KG44GNDQor44Gf44GL44Gv44GXLOOBv+OBiw0KK+OBn+OBkeOBoCzjgobjgYbjgZgNCivjgZ/jgaAs44KI44GX44Gf44GLDQor44Gf44Gr44GQ44GhLOOBn+OBi+OBruOCig0KK+OBn+OCgOOCiSzjgZHjgYTjgZMNCivjgaTjgYvjga/jgoks44G/44Ga44G7DQor44Gk44G844GG44GhLOOBguOBjeOBteOBvw0KK+OBpuOCieOBoCzjgojjgZfjgY0NCivjgajjgb/jgYQs44GY44KF44KT44GTDQor44Gq44GE44Go44GGLOOBn+OBi+OBig0KK+OBquOBjOOBleOBiyzjgZPjgYbjgZgNCivjgarjgYzjga4s44KE44GZ44GKDQor44Gq44GL44KA44KJLOOBiOOBhOOBmA0KK+OBq+OBlyzjgarjgYrjgobjgY0NCivjgavjgZfjgaAs44KK44KH44GG44G444GE44GfDQor44Gu44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBruOCgOOCiSzjgYvjgZrjgYoNCivjga/jgaPjgajjgoos44GV44Go44G/DQor44Gv44KE44GL44KPLOOChuOBjQ0KK+OBr+OCieOBoCzjgb/jgYgNCivjgbLjgafjgZfjgb4s44G/44GN44GTDQor44G144GL44GKLOOBv+OChuOBjQ0KK+OBteOBj+OBr+OCiSzjgobjgY3jgZMNCivjgbXjgZjjgoLjgags44GI44KK44GTDQor44G744GX44GuLOOBmeOBv+OBig0KK+OBu+OCiuOBkOOBoSzjgZjjgoXjgpPjgYTjgaENCivjgb7jgY3jga4s44Gf44GR44GKDQor44GT44G/44KELOOBruOBvOOCiw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgYvjgb/jgY/jgbws44GR44KT44GYDQor44G+44Gk44GKLOOBjeOCiOOBlw0KK+OBquOBi+OBoSzjgY3jgojjgZcNCivjgZPjgZnjgY4s44KI44GX44G/DQor44GL44Gk44G+44GfLOOBqOOBl+OBi+OBmg0KK+OBi+OBjOOChOOBvizjgb7jgZXjga/jgosNCivjgY/jgZws44G/44GN44GKDQor44GP44G+44GgLOOBvuOBleOBguOBjQ0KK+OBk+OBmOOCh+OBhizjgZXjgarjgYgNCivjgYvjgZfjgY/jgb4s44GR44KT44Ge44GGDQor44GN44GP44GhLOOCiOOBl+OBsuOBlQ0KK+OBj+OBvuOBrizjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GX44KF44KT44GYDQor44GT44Gw44KE44GXLOOBruOBtuOBkw0KK+OBk+OBq+OBlyzjgZHjgpPjgYTjgaENCivjgZPjgbDjgZfjgYzjgo8s44Gy44Go44GXDQor44GL44GE44GpLOOBv+OBuw0KK+OBj+OCjeOBjSzjgZjjgoXjgpMNCivjgYvjgarjgZ/jgass44KK44GIDQor44GN44Gf44GM44KPLOOBquOBiuOBn+OBiw0KK+OBv+OBmuOCguOBqCzjgarjgovjgY0NCivjgb/jgoTjgYrjgYss44GR44KT44KN44GGDQor44KA44KJ44GfLOOBkeOCk+OBmA0KK+OCguOCiuOBnyzjgbLjgafjgajjgoINCivjgoTjgarjgY7jgaAs44GI44KK44GTDQor44KE44G+44GW44GNLOOBkeOCkw0KK+OChOOBvuOCguOBqCzjgoTjgZnjga7jgooNCivjgojjgZQs44Go44KC44Gu44KKDQor44KI44Gt44GgLOOChuOBv+OBkw0KK+OCj+OBkyzjgorjgYgNCivjgYLjgYvjga/jga0s44Gy44KN44GC44GNDQor44GC44GV44G5LOOBi+OCiA0KK+OBguOCieOBhCzjgbLjgafjgYoNCivjgYTjgZHjgaAs44KI44GX44Gf44GLDQor44GE44GX44GpLOOChuOBjeOBkw0KK+OBhOOBmuOBrizjgb/jgaTjgbLjgo0NCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Gu44GG44GILOOBruOBtuOBn+OBiw0KK+OBhOOCj+OBnyzjgojjgZfjgbLjgo0NCivjgYbjgYvjgYQs44Gy44GV44Gq44GMDQor44GI44Go44GGLOOBsuOCjeOBjQ0KK+OBiuOBiuOBleOBiyzjgZ/jgabjgY0NCivjgYrjgYrjgavjgZcs44G/44Gk44KLDQor44GK44KA44KJLOOBqOOCguOBkw0KK+OBiuOBi+OBrizjgoTjgZnjgbXjgb8NCivjgYrjgYzjgo8s44Gf44GP44KEDQor44GK44GW44GNLOOBn+OBi+OChuOBjQ0KK+OBiuOBqOOBjOOCjyzjgorjgofjgYbjgZMNCivjgYvjgZXjgYQs44Gq44GK44GTDQor44GL44GZ44GMLOOBleOBquOBkw0KK+OBi+OBqOOBhizjgZHjgpPjgYTjgaHjgo0NCivjgYvjgoHjgZ/jgYss44Gf44GE44GZ44GRDQor44GL44KP44GQ44GhLOOBguOChuOBvw0KK+OBi+OCj+OBsOOBnyzjgYLjgobjgb8NCivjgY3jgZ/jgYzjgo8s44Gf44GR44GXDQor44GN44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBjeOCiuOBleOBkyzjgabjgaPjgbrjgYQNCivjgY/jgonjga/jgZcs44Gf44GL44GC44GNDQor44GU44GG44GgLOOBn+OBkeOBsuOCjQ0KK+OBk+OBpuOCiSzjgY3jgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gq44Gk44GTDQor44GT44G+44Gk44Gw44KJLOOBqOOCguOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgabjgovjgbLjgZUNCivjgZXjgYvjgYQs44Gf44GL44KG44GNDQor44GV44GP44KJ44GELOOBleOBoOOCiOOBlw0KK+OBleOBqOOBhizjgYLjgY0NCivjgZXjgo/jgZXjgY0s44Gf44GL44GXDQor44GX44G+44GuLOOBqOOBl+OBguOBjQ0KK+OBl+OCh+OBhuOBoCzjgY/jgb8NCivjgZfjgpPjgZ/jgass44GR44KT44GfDQor44GZ44GO44KE44G+LOOBn+OBi+OBrQ0KK+OBm+OBjeOCguOBqCzjgYvjgaTjgYLjgY0NCivjgZ/jgYvjga/jgZcs44KM44GEDQor44Gf44GQ44GhLOOCj+OBn+OCiw0KK+OBn+OBoeOBsOOBqizjgarjgYrjgagNCivjgZ/jgarjgYss44GV44Gh44GIDQor44Gf44G+44GNLOOBquOBiuOBkw0KK+OBpOOBi+OBoCzjgabjgaTjgoQNCivjgaTjgbzjgY/jgoks44Gf44GP44KEDQor44Gp44GELOOBruOBtuOBn+OBiw0KK+OBqOOBoCzjgZfjgoXjgpPjgZnjgZENCivjgarjgYzjgZXjgYss44G/44Gh44GTDQor44Gq44GL44GX44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBq+OBlyzjgb/jganjgooNCivjgarjgYvjgoDjgoks44G+44KGDQor44Gq44GL44KE44G+LOOBn+OBkeOBlw0KK+OBq+OBl+OBrizjgobjgYsNCivjga7jgY/jgYos44GL44GK44KKDQor44Gw44GT44GXLOOBl+OCk+OBlA0KK+OBr+OBn+OBrizjgojjgYbjgZMNCivjga/jgoTjgZcs44GV44Go44GTDQor44Gv44KJ44GgLOOBguOBpOOBlw0KK+OBsuOCieOBhCzjgobjgYbjgZnjgZENCivjgbLjgo3jgYgs44GC44Gk44GXDQor44G144GP44GgLOOBleOChOOBiw0KK+OBteOBmOOCgOOCiSzjgYLjgY3jgZMNCivjgbXjgovjgYvjgo8s44Gy44KN44GTDQor44G744Gd44GgLOOBl+OCheOCk+OBlA0KK+OBvuOBiOOBi+OCjyzjgb/jgo8NCivjgb7jgZXjgajjgYbjgb8s44G+44GE44GTDQor44G+44Gk44GK44GLLOOBqOOCguOBkw0KK+OBvuOBpOOBsOOCiSzjgYLjgY3jgZMNCivjgb/jgYbjgoks44GN44KI44G+44GVDQor44G/44Ge44Gv44GfLOOBoeOBiA0KK+OBv+OBr+OCiSzjgb7jgZXjgY0NCivjgb/jgoTjgoDjgoks44GC44KEDQor44KA44KJ44GfLOOBj+OBv+OBkw0KK+OCguOCiizjgY/jgb/jgZMNCivjgoLjgo3jgYgs44Gy44KN44GL44GaDQor44KE44Gq44GO44GV44KPLOOBkeOBhOOBmeOBkQ0KK+OChOOBvuOBjOOBnyzjgb7jgZPjgagNCivjgoTjgb7jgaAs44Gu44G244GTDQor44KE44G+44KC44GoLOOBpuOCi+OBsuOBkw0KK+OChOOBvuOCguOBqCzjgo/jgZ/jgosNCivjgojjgZPjgoTjgb4s44GC44KG44G/DQor44KI44GX44GgLOOBquOBiuOBkw0KK+OCiOOBl+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgo/jgaAs44GE44GV44KADQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBleOBleOBrizjgZnjgZnjgoANCivjgZPjgaDjgb4s44Gf44GL44Gy44GTDQor44GL44KP44GX44G+LOOBvuOBleOBquOCig0KK+OBi+OCj+OBrizjgZPjgYbjgYTjgaENCivjgYvjgb/jgYbjgoks44GL44Ga44Gy44GnDQor44GT44KT44GuLOOBsuOBp+OBjQ0KK+OBj+OChOOBvizjgZ/jgZHjgZcNCivjgZPjgYQs44Gb44GE44GE44Gh44KN44GGDQor44GL44GV44GY44G+LOOBsuOCjeOBteOBvw0KK+OBi+OBqOOBhizjgajjgoLjgb8NCivjgY/jgbzjgZ8s44Gy44KN44KG44GNDQor44GR44GM44GV44KPLOOBsuOBleOBlw0KK+OBi+OCj+OBjuOBlyzjgbLjgo3jgZcNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44GN44GP44GhLOOBiuOBleOCgA0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgZMNCivjgb7jgaHjgaAs44GL44Ga44GKDQor44KA44KJ44GV44GNLOOBqOOBl+OBig0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgYTjgaENCivjgb7jgZXjgY0s44GN44GP44GKDQor44G/44Ga44Gf44GrLOOBquOBiuOBsuOBkw0KK+OBvuOCi+OChOOBvizjgZvjgYTjgZgNCivjgoDjgonjgZfjgb4s44Gf44Gg44GKDQor44G/44Ga44GfLOOCiOOBl+OBig0KK+OCguOCiuOBhCzjgY7jgofjgZgNCivjgb/jgoTjgZbjgo8s44KI44GX44GKDQor44G/44Ga44GuLOOChuOCiuOBkw0KK+OCgOOCieOBhOOBlyzjgb7jgoLjgosNCivjgoDjgonjgYvjgb8s44GL44Ga44GKDQor44KA44KJ44G+44GkLOOBguOBpOOBlw0KK+OBv+OBn+OBjyzjgZHjgYTjgZ7jgYYNCivjgb7jgYjjgaAs44GC44GN44GKDQor44KA44KJ44GELOOBqOOCiOOBvw0KK+OBvuOBpOOBoCzjgZXjgajjgZcNCivjgb/jgabjgoks44KE44GZ44GKDQor44KC44KKLOOBpOOBqOOCgA0KK+OBvuOBpOOBhCzjgZ/jgYvjgZcNCivjgb/jgYbjgoks44GP44Gr44GKDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBvuOBpOOBluOCjyzjgojjgZfjgYoNCivjgb/jgYvjgb8s44Gv44KL44GNDQor44Gf44G244GhLOOBkeOCk+OBmA0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgo0NCivjgarjgYTjgajjgYYs44Gf44GR44GKDQor44Gr44GX44GqLOOBjeOBv+OBsuOBqA0KK+OBquOBi+OBjOOBvyzjgZfjgoXjgYbjgYTjgaENCivjgarjgYvjga/jgZ8s44GL44Ga44Go44GXDQor44Gr44GX44GK44GLLOOBsuOCjeOBlw0KK+OBq+OBl+OBoCzjgojjgZfjgo3jgYYNCivjga7jgoDjgoks44GP44Gr44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBquOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgavjgaPjgZ8s44KG44Gf44GLDQor44Gq44GL44GY44G+LOOBi+OBpOOBig0KK+OBquOBi+OBmyzjgajjgZfjgYLjgY0NCivjgarjgYvjgYzjgo8s44Gu44G244GKDQor44Gq44GL44GY44G+LOOCgOOBreOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgbvjgZrjgb8NCivjgarjgYzjgZfjgb4s44Gq44GK44GYDQor44GK44GNLOOBmeOBv+OBig0KK+OBiuOBj+OBoCzjgajjgZfjgYoNCivjgYrjgYrjga/jgZcs44Gy44KN44GXDQor44GK44GM44KPLOOBqOOBiuOCiw0KK+OBiuOBluOCjyzjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44KG44Gf44GLDQor44GK44GK44GuLOOBv+OBpOOBig0KK+OBiuOBiuOBhOOBlyzjgZgNCivjgYrjgYrjgYvjgo8s44GL44GK44KLDQor44GK44KK44GM44GVLOOChOOBmeOBn+OBkQ0KK+OBiuOBiuOBnyzjgojjgZfjgbLjgZMNCivjgYrjgZbjgY0s44GY44KF44KT44GE44GhDQor44GK44Gg44GX44G+LOOBn+OBoOOBlw0KK+OBiuOBiuOBsuOCiSzjgZvjgaTjgZgNCivjgYrjgYrjgoQs44Gy44Gn44G7DQor44GK44GL44GuLOOBguOBjeOBkw0KK+OBiuOBkOOBlyzjgYLjgZHjgb8NCivjgYrjgYrjgYTjgYzjgo8s44Gf44GL44Gv44KLDQor44Gq44GL44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBl+OCieOBiuOBjOOCjyzjgonjgYTjgZ8NCivjgarjgYvjgoDjgoks44Go44GX44G/44GkDQor44GC44G5LOOBiOOBv+OBkw0KK+OBi+OCj+OBhuOBoSzjgb7jgorjgYgNCivjgYTjgajjgYYs44GR44KT44Gd44GGDQor44GT44GE44Ga44G/LOOBn+OBj+OChA0KK+OBi+OBquOBiuOBiyzjgbLjgo3jgZcNCivjgYLjgorjgb4s44KE44KI44GEDQor44GG44G+44KE44Gv44KJLOOChOOBmeOBvw0KK+OBi+OBreOBvuOBpCzjgZXjgY3jgZMNCivjgbXjgYvjgoQs44GP44Gr44GC44GNDQor44GU44Go44GGLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBmeOBjuOCguOBqCzjgY/jgavjgYoNCivjgY/jgorjga/jgoks44Go44KI44Gy44GTDQor44GK44GK44GfLOOChuOBjeOBkw0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgojjgZfjgaAs44GL44Ga44Go44GXDQor44Gv44Gj44Go44KKLOOBsuOCjeOBlw0KK+OBi+OBqeOBnyzjgYLjgY3jgbLjgo0NCivjgYTjgZfjgZbjgo8s44KG44Ga44GNDQor44G/44KE44KC44GoLOOBv+OBqeOCig0KK+OBiuOBmCzjgoTjgZnjgbLjgo0NCivjgYLjgonjgYQs44Go44GX44GC44GNDQor44GN44Gf44KA44KJLOOCiuOBi+OBkw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgZPjgbDjgoTjgZcs44GN44KH44GG44Ge44GGDQor44Gr44GX44GL44KPLOOBqOOCguOBvw0KK+OBn+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgZrjgZcs44KE44GZ44GKDQor44GC44KJ44GELOOBl+OCh+OBhuOBuOOBhA0KK+OBvuOBiOOBp+OCiSzjgabjgovjgobjgY0NCivjgZPjgpPjgaks44Gq44GKDQor44Gq44GM44G744KKLOOChuOBjeOBkw0KK+OBhOOCj+OBleOBjSzjgb/jgoTjgbMNCivjgarjgYvjgZ/jgass44Gf44GL44GXDQor44Gq44GL44GM44GNLOOBkeOBhOOBkw0KK+OBj+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgZnjgZrjgY0s44KG44GNDQor44Gf44GgLOOBiOOBhOOBjQ0KK+OCj+OBoCzjgarjgYrjgZMNCivjgZXjga4s44Gy44KN44GXDQor44Go44GN44GfLOOBquOBpOOBkw0KK+OBk+OBleOBhCzjgobjgYbjgZMNCivjgZvjgZTjgYgs44GV44Go44GTDQor44Gq44GL44GELOOBguOBpOOBvw0KK+OBr+OCieOBoCzjgajjgZfjgb7jgZUNCivjgY3jga7jgZfjgZ8s44G/44Gh44GKDQor44G/44KE44GW44GNLOOBi+OBmuOBvw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgYLjgY0NCivjgZXjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44G/44Ga44GX44G+LOOBn+OBkeOCiw0KK+OBn+OBq+OBkOOBoSzjga/jgovjgb8NCivjgb7jgaTjgZfjgZ8s44Gf44GL44GXDQor44GZ44GO44GG44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBq+OBjOOBjSzjgZvjgYTjgZMNCivjgZXjgajjgYYs44GX44GS44GKDQor44KE44G+44GL44KPLOOBleOBoOOBr+OCiw0KK+OBmeOBmuOBjSzjgZfjgZLjgbLjgo0NCivjgajjgY/jgaAs44G+44KT44Gq44KKDQor44GE44KP44G+LOOBruOBtuOBguOBjQ0KK+OBiuOBiuOBr+OCiSzjgobjgY3jgarjgYoNCivjgZfjgYrjgazjgb4s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OBmeOBmuOBjSzjgojjgZfjgZMNCivjgZnjgZrjgY0s44Gu44G244GC44GNDQor44Gb44GNLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgaTjgajjgoANCivjgZnjgYzjgYos44Gm44Gk44GYDQor44GZ44Ga44GNLOOBkeOBhOOBn+OCjeOBhg0KK+OBleOBqeOBqOOCgizjgYLjgY3jgokNCivjgZfjgb4s44G/44Gu44KLDQor44GV44GE44Go44GGLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44KG44GN44GKDQor44Gd44G+LOOBiuOBleOCgA0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgZfjgo3jgZXjgY0s44KI44GG44GE44GhDQor44GZ44Ga44GNLOOCiOOBhuOBmOOCjeOBhg0KK+OBmeOBmuOBjSzjgabjgaTjgo3jgYYNCivjgZnjgY7jgoLjgags44G+44GV44GKDQor44GV44GL44GELOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgYvjgZrjgobjgY0NCivjgZXjgajjgYYs44Gf44Gk44GYDQor44GX44GK44GfLOOBqOOCiOOBig0KK+OBneOBvizjgYvjgpPjgZgNCivjgZfjgoXjganjgYYs44Gf44GL44GKDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBneOBhuOChCzjgZvjgYTjgZgNCivjgZXjgo/jgoDjgoks44Gq44KL44G/DQor44Gb44GKLOOChuOBhuOBmA0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgY3jgoLjgoos44GE44KP44GKDQor44GV44GE44Go44GGLOOBsuOBleOBig0KK+OBl+OBv+OBmizjgYjjgYTjgZ7jgYYNCivjgZfjgYrjga7jgoQs44GN44KI44GL44GaDQor44Gf44GL44GOLOOBsuOBp+OBig0KK+OBn+OBjeOBhOOBlyzjgorjgofjgYbjgZgNCivjgajjgbAs44G+44GV44GXDQor44Gf44GQ44GhLOOBvuOBleOBig0KK+OBn+OBi+OBrizjgoDjga3jgYoNCivjgZ/jgYvjgoTjgZks44Go44KI44G/DQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OBn+OBi+OBr+OBvizjgojjgZfjgYLjgY0NCivjgaTjgaHjgaAs44G+44KC44KLDQor44Gf44GL44GKLOOBvuOBmeOBvw0KK+OBn+OBq+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgaTjgZjjgYvjgo8s44KG44GG44GE44GhDQor44KI44GX44GW44KPLOOBvuOBleOBr+OCiw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZ7jgYYNCivjgZ/jgb7jgoss44G+44GV44G/DQor44Gf44GL44GOLOOBjeOCh+OBhuOBkw0KK+OBpOOBreOBsuOCjSzjgZjjgoXjgpPjgZgNCivjgZ/jgYvjga/jgZcs44Go44GX44GC44GNDQor44GC44GV44GELOOChuOBhuOBmA0KK+OBn+OBi+OBleOBjSzjgYLjgY3jgokNCivjgZ/jgYvjgarjgb8s44G+44GV44KLDQor44Go44KC44Gq44GMLOOBpOOBreOBi+OBmg0KK+OBn+OBi+OBjizjgYTjgaTjgYoNCivjgaTjgYvjgoLjgags44GC44GN44GKDQor44Gm44KJ44GG44GhLOOBleOBoOOChuOBjQ0KK+OBn+OBruOBiuOBiyzjgZnjgZnjgoANCivjgYbjgZnjgY4s44GL44Ga44Gy44KNDQor44GG44Gk44GNLOOBpuOBpOOBig0KK+OBhuOBoeOBoCzjgZHjgpPjgZnjgZENCivjgYbjgoHjgoDjgoks44Go44GX44GKDQor44GG44GuLOOBqOOBl+OBsuOBpw0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44KP44Gf44Gq44G5LOOBk+OCk+OBlOOBhg0KK+OCj+OBoCzjgZ/jgZHjgb/jgaQNCivjgYrjgYrjgZ8s44G+44GT44GoDQor44Gq44GL44GY44G+LOOBkeOBhOOBhOOBoQ0KK+OBteOCi+OBleOCjyzjgaTjgojjgZcNCivjgYvjgZfjgo/jgY4s44GTDQor44Gv44GfLOOBl+OCh+OBhuOBmeOBkQ0KK+OBhuOBl+OBmOOBvizjgb7jgZXjgYvjgZoNCivjgb7jgaTjgYQs44GC44GN44KJDQor44GL44KP44GqLOOBoOOBhOOBmOOCjeOBhg0KK+OBv+OChOOCguOBqCzjgZ/jgYvjgbLjgZUNCivjgojjgZfjgaAs44GZ44G/44KG44GNDQor44GK44GK44GL44KP44KJLOOBkuOCk+OBn+OCjeOBhg0KK+OBmeOChOOBvizjgY/jgpPjgo3jgYYNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GP44Gr44GO44GfLOOCiOOBhuOBhOOBoQ0KK+OBjeOBqSzjgb7jgZXjgZcNCivjgYTjgZfjgYQs44Gh44GL44Go44GXDQor44GG44GI44GgLOOBn+OBi+OBlw0KK+OBhOOBoeOBi+OCjyzjgYvjgZrjgYoNCivjgYrjgZXjgZjjgb4s44Go44GX44KEDQor44GG44GI44KA44KJLOOBqOOBl+OBsuOBpw0KK+OBjeOCgOOCiSzjgajjgY3jgaENCivjgojjgZPjgoTjgb4s44Gy44GV44GKDQor44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBuSzjgYvjgZrjgagNCivjgZ/jgb7jgYQs44GL44Ga44G/44GhDQor44GT44KKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOCj+OBleOCjyzjgb7jgarjgbYNCivjgojjgZfjgoTjgZks44GU44GGDQor44G+44Gf44GNLOOBl+OCk+OBlA0KK+OChOOBvuOCguOCiizjgYvjgaTjgYoNCivjgZ/jgYvjgZ8s44Gu44KK44GKDQor44GZ44Gp44GGLOOBl+OCh+OBhuOBkw0KK+OBhuOBiOOCgOOCiSzjgobjgZ/jgYsNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBguOCieOBjSzjgZvjgY3jga0NCivjgYvjgaAs44GC44GN44KJDQor44Gr44GX44KI44KKLOOBv+OBruOCiw0KK+OBhOOBquOBsCzjgYvjgZrjgagNCivjgbvjgorjgYQs44Gk44Gt44GKDQor44GZ44Gp44GGLOOBvuOBleOBsuOBkw0KK+OBl+OCjeOChOOBvizjgZMNCivjgabjgonjgYQs44GC44GN44GTDQor44G+44Gk44KC44GoLOOBquOBiuOBn+OBkQ0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgZ3jgajjgoTjgb4s44GL44Gk44Gu44KKDQor44Gy44KJ44GK44GLLOOChOOBmeOBlw0KK+OBsuOCieOBjSzjgZ/jgoLjgaQNCivjgZ/jgarjgbks44KG44GG44GY44KN44GGDQor44Gf44KB44Gh44GLLOOBn+OBpuOBig0KK+OCiOOBreOBoCzjgajjgZfjgbLjgacNCivjgYjjgZjjgb4s44Go44KC44Gu44KKDQor44Gf44GL44Gv44GXLOOBv+OBleOBkw0KK+OBpuOCieOBiizjgbLjgo3jgbLjgZUNCivjgbvjgpPjgaAs44KG44G/DQor44GK44Gh44KKLOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBhCzjgarjgYrjgb8NCivjgYvjgo/jgYQs44G/44Gu44KLDQor44KA44KJ44GL44G/LOOBv+OCiOOBlw0KK+OBquOBi+OBmOOBvizjgbLjgajjgZcNCivjgYTjgZfjga/jgoks44G144G/44Gf44GLDQor44GC44GL44G744KKLOOBv+OBpOOBruOBtg0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgojjgZPjgZss44Go44KC44GX44GSDQor44KI44GX44GL44KPLOOBqOOBl+OCjeOBhg0KK+OChOOBvuOBkOOBoSzjgb/jga7jgosNCivjgojjgZfjgoDjgoks44G+44GV44Gy44GTDQor44KI44Gt44GgLOOBi+OBiuOCiw0KK+OChOOBvuOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgoTjgb7jgaAs44GI44GE44Ge44GGDQor44KE44G+44GW44GNLOOBmeOBmeOCgA0KK+OCiOOBl+OBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZ/jgass44Gy44KN44Gk44GQDQor44KE44G+44GtLOOCiOOBreOBn+OBiw0KK+OChOOBvuOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44GV44GNLOOBruOCiuOBig0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgojjgZPjgZ8s44GI44GE44GE44GhDQor44KE44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OCiOOBl+OBrizjgaDjgYTjgZnjgZENCivjgojjgZfjgaAs44KA44Gk44GKDQor44Gu44KA44KJLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBoCzjgZXjgajjgosNCivjgYTjgZfjgYvjgo8s44Gh44KI44Gf44GRDQor44GZ44Ga44GNLOOBsuOCjeOBteOBvw0KK+OBvuOBmeOBoCzjgZHjgpPjgZgNCivjgYTjgb7jgYQs44G+44GV44Ge44GGDQor44GN44KF44GG44Gd44GY44KTLOOBkeOCk+OBmeOBkQ0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgbLjgonjga4s44Gf44GE44GNDQor44Gq44GL44Gr44GXLOOBi+OBmuOBl+OBkg0KK+OBn+OBpOOBnyzjgZfjgZLjgosNCivjgb/jgoDjgoks44G+44GV44GKDQor44Gy44KJ44G+44GkLOOBleOBoOOBig0KK+OBqOOBv+OBnyzjgb7jgZXjgbLjgo0NCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44Gf44GR44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBrizjga7jgorjgZMNCivjgYTjgZfjgYQs44GN44KH44GG44GTDQor44GE44GnLOOBleOBjeOBkw0KK+OBiuOBi+OBoCzjgorjgYjjgZMNCivjgbLjgonjgYTjgZcs44G+44KKDQor44KI44GX44KC44GoLOOBsuOCjeOBkw0KK+OBi+OCj+OBl+OBvizjgb7jgobjgb8NCivjgajjgbDjgZ8s44Gu44KK44GL44GaDQor44Gf44Gq44GLLOOBsuOBi+OCiw0KK+OBguOCk+OBuSzjgb7jgarjgb8NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44KNDQor44Go44G/44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBn+OBi+OChOOBvizjgajjgZfjgobjgY0NCivjgb/jgoTjgZfjgZ8s44G/44Gu44KLDQor44Gv44GX44KC44GoLOOBv+OBjeOBig0KK+OBqOOBjOOCgSzjgb/jgo/jgZMNCivjga7jgZDjgaEs44GL44Ga44G+44GVDQor44Gu44GQ44GhLOOBguOBjeOCiQ0KK+OBneOBhuOBv+OChCzjgZHjgpPjgZgNCivjgY3jgoDjgoks44KI44GG44GYDQor44GL44Go44GGLOOBqOOCguOChuOBjQ0KK+OBmeOBmuOBjSzjgZHjgpPjgZgNCivjgYrjgYvjgaAs44Gy44KN44G/DQor44KE44GuLOOBmOOCheOCk+OBkw0KK+OBiuOBruOBleOBqCzjga/jgpMNCivjgb7jgaTjgaAs44KI44GX44GC44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBn+OCgOOCiSzjgajjgoLjga7jgooNCivjgYvjgajjgYYs44Go44GX44KEDQor44GE44Gs44G+44KLLOOBsuOCjeOBmA0KK+OBiuOBruOBp+OCiSzjgarjgYrjgZMNCivjgZnjgZrjgY0s44Gh44Gv44KLDQor44Gf44Gr44GL44KPLOOBu+OBmuOBiA0KK+OBleOBj+OBvizjgZfjgb4NCivjgYTjgb7jgoDjgoks44KL44KK44GTDQor44GI44GE44Gp44KBLOOChuOBjQ0KK+OCiOOBl+OBhCzjgZ/jgaDjgbLjgo0NCivjgYrjgYrjgZ/jgY0s44KG44G/44GTDQor44GP44GZ44KC44GoLOOBhOOBleOBig0KK+OBv+OChOOBl+OBnyzjgobjgY3jgYoNCivjgb7jgaHjgYQs44GL44Ga44Gy44KNDQor44Gv44KE44GX44GgLOOBn+OBi+OBqOOBlw0KK+OBr+OCi+OBr+OCiSzjgZ/jgYvjgZcNCivjgabjgonjgoLjgags44KG44GG44GY44KN44GGDQor44G+44Gk44KC44KKLOOBi+OBmuOBig0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYvjga3jgZMs44KE44GZ44GXDQor44GK44KK44GM44GVLOOBvuOBpOOBruOCig0KK+OBpOOBi+OCguOBqCzjgbLjgo3jgb/jgaENCivjgojjgZfjgaAs44G/44GqDQor44Gr44GX44GgLOOBsuOBleOBiA0KK+OBteOCi+OBi+OCjyzjgorjgYgNCivjgoDjgonjgYvjgb8s44Gf44GL44GKDQor44GK44GK44Gw44KE44GXLOOBk+OBhuOBjeOBoQ0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgoTjgb4s44G144G/44GTDQor44G/44KE44GfLOOBn+OBi+OBpuOCiw0KK++XvuiZueWmgg0KK+S4geW/g+W1kA0KK+S4geW/l+Wujw0KK+S4geW7uuaWhw0KK+S4geWBieawkQ0KK+S4geeUpuWNlw0KK+S4gee2uuaFpw0KK+S4geitveeQsw0KK+S6juengOe+jg0KK+S6juauv+iBlg0KK+WwueWxheaJjQ0KK+WwueabieaBqQ0KK+WtlOe5gemclg0KK+WwpOiJrw0KK+WwpOaYn+etlg0KK+WwpOebn+iytA0KK+WwpOiSlOiQsQ0KK+aWh+WEgOipoA0KK+aWueaWh+mLkg0KK+aWueW/l+aYjg0KK+aWueW5uOWunA0KK+aWueS/iumbhA0KK+aWueW9peeoiw0KK+aWueiLpeePig0KK+aWueWBpeWJmw0KK+aWuea3keWEkg0KK+aWueetluawkQ0KK+aWueijleasvQ0KK+aWueaFp+eQtA0KK+aWuem6l+mbhQ0KK+avm+S9qeWonw0KK+avm+a8ouaihQ0KK+eOi+S4gOePjQ0KK+eOi+S4iue2rQ0KK+eOi+Wkp+aYjA0KK+eOi+WtkOeGmQ0KK+eOi+S4reaGkw0KK+eOi+S7geWulw0KK+eOi+WPi+W/lw0KK+eOi+W/g+W/oA0KK+eOi+aWh+W5sw0KK+eOi+aWh+mDgQ0KK+eOi+aWh+m0uw0KK+eOi+S4luWuhw0KK+eOi+S4luW7ow0KK+eOi+W8mOavhQ0KK+eOi+awuOS7gQ0KK+eOi+eOieaWhw0KK+eOi+eUn+WLsw0KK+eOi+WFiem6gw0KK+eOi+Wuh+a4hQ0KK+eOi+acieasig0KK+eOi+S8r+mAuA0KK+eOi+WtneWQmw0KK+eOi+Wuj+WYiQ0KK+eOi+W/l+aWhw0KK+eOi+W/l+WzsA0KK+eOi+W/l+asvQ0KK+eOi+W/l+mKmA0KK+eOi+engOiKrA0KK+eOi+iCsuW+tw0KK+eOi+S+nemfuw0KK+eOi+S9qQ0KK+eOi+WdpOizog0KK+eOi+WyoemZtQ0KK+eOi+aAoeaWhw0KK+eOi+aAoea4hQ0KK+eOi+aAoeiYiw0KK+eOi+aYjuePig0KK+eOi+aso+S5iw0KK+eOi+ayu+mCpg0KK+eOi+mHkeiPrw0KK+eOi+S/oeS7gQ0KK+eOi+S/oeijlQ0KK+eOi+S/iuW9pQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iui2hQ0KK+eOi+S/nuaWhw0KK+eOi+WJh+WLnQ0KK+eOi+WllemIng0KK+eOi+WogeiDvQ0KK+eOi+W7uuaWhw0KK+eOi+W7uumbhA0KK+eOi+W9peaZug0KK+eOi+aAnea9lA0KK+eOi+aYreS6ug0KK+eOi+aYseWHsQ0KK+eOi+afj+Wgrw0KK+eOi+eCuuiSqA0KK+eOi+ebiOWCkQ0KK+eOi+e0gA0KK+eOi+e+jua3kQ0KK+eOi+e+juaHvw0KK+eOi+iLseiTiQ0KK+eOi+mDgeasow0KK+eOi+mDgeePug0KK+eOi+WTsuiBsA0KK+eOi+aCheWmgg0KK+eOi+aZguiUmg0KK+eOi+a1qeWAqw0KK+eOi+e0oOWNvw0KK+eOi+WBieW3ng0KK+eOi+WBpeawkQ0KK+eOi+Wci+W9pQ0KK+eOi+Wft+S/oQ0KK+eOi+W0kem+jQ0KK+eOi+WVn+Wulw0KK+eOi+aVj+mKkw0KK+eOi+a4hem0uw0KK+eOi+a3keeciQ0KK+eOi+a3kembrw0KK+eOi+a3qOeRqQ0KK+eOi+iOieaxtg0KK+eOi+WCkeeriw0KK+eOi+WHseiSgg0KK+eOi+WNmuaWhw0KK+eOi+WvjOaYjA0KK+eOi+aDoOeOsg0KK+eOi+aVpuatow0KK+eOi+aZr+aziQ0KK+eOi+aZuumztA0KK+eOi+acnemNtQ0KK+eOi+eQqg0KK+eOi+e/lOWvpw0KK+eOi+iPgeiYrQ0KK+eOi+mAuOS/rg0KK+eOi+mbheS8tg0KK+eOi+mbhembrw0KK+eOi+mbrw0KK+eOi+WLpOWWhA0KK+eOi+aEm+WYiQ0KK+eOi+avk+iPgQ0KK+eOi+eRnuWQnw0KK+eOi+eRnumgpA0KK+eOi+iBlg0KK+eOi+iBluajiw0KK+eOi+ijleatow0KK+eOi+ipqeWptw0KK+eOi+mJhee/lA0KK+eOi+WYieWQmw0KK+eOi+WYiei+sg0KK+eOi+WYiem9oQ0KK+eOi+edv+WQmw0KK+eOi+e2reWmgg0KK+eOi+e/oOiPrw0KK+eOi+mKmOaihQ0KK+eOi+W+t+eakw0KK+eOi+aFp+iLsQ0KK+eOi+aFp+mdnA0KK+eOi+WEkumahg0KK+eOi+abiembrw0KK+eOi+iIiOmCpg0KK+eOi+mMpuaFpw0KK+eOi+eIteaakA0KK+eOi+ismee2rQ0KK+eOi+emruismQ0KK+eOi+eTiuePrg0KK+eOi+mfu+a3kQ0KK+eOi+m6l+iKrA0KK+eOi+m6l+mbrw0KK+eOi+iAgOaaiQ0KK+eOi+mQmOmKmA0KK+eOi+m9oeaikw0KK+eOi+i6jemclg0KK+eOi+a1n+e+jg0KK+eOi+ajqOW+tw0KK+eOi+Wrhuajuw0KK+eOi+etseiQsQ0KK+eOi+iWj+mbrw0KK+S4mOecn+e2ug0KK+WMheWurue2rQ0KK+WPpOeOiemzsw0KK+WPpOaYjuaZnw0KK+WPpOahguiPig0KK+WPpOaZuuWBiQ0KK+WPpOS/tue2ug0KK+WPsuaYjuWOnw0KK+WPsuabnOW9sA0KK+eUmOawuOijlQ0KK+eUmOmciOmclg0KK+eUsOaykOaBqQ0KK+eUsOiKs+iMuQ0KK+eUsOa3keWQmw0KK+eUsOeSp+iPgA0KK+eZveWkp+WwuQ0KK+eZveS9s+a4nQ0KK+eZveaMr+a6kA0KK+eZveWWnOaWhw0KK+eZveamruS/rg0KK+efs+S5g+Wmgg0KK+efs+iCsueOnw0KK+efs+aYjuWRqA0KK+efs+Wzu+W5sw0KK+efs+WCkeWuhw0KK+efs+mMpuiIqg0KK+S8jeS4luaPmg0KK+S8jeWutuiqvA0KK+S7u+aJjeS/ig0KK+S7u+aWsOiYrQ0KK+WQkeilv+mZvQ0KK+aIkOS4ueeOsg0KK+acseaWh+eipw0KK+acseeOieaxtg0KK+acseWmjeWmgg0KK+acseaym+aAoQ0KK+acseWul+iUmg0KK+acseadseaHiQ0KK+acseS/iuelpQ0KK+acseW7uuazsA0KK+acseePjeaFpw0KK+acsemDgeW6rQ0KK+acseWutuasow0KK+acseWzsOiqvA0KK+acseePruWEgA0KK+acseWBieWCkQ0KK+acseW6t+mKmA0KK+acseWvk+eQhg0KK+acsembhemItA0KK+acsemBlOaYjg0KK+acsemzs+iWhw0KK+acsemdnOaWhw0KK+acseiKruWunA0KK+axn+S4reWBpQ0KK+axn+aWh+eTig0KK+axn+eri+WzsA0KK+axn+WRiOmZvQ0KK+axn+engOeOsg0KK+axn+S9s+mclg0KK+axn+WNlOWLhw0KK+axn+Wul+WTsg0KK+axn+WyqemBlA0KK+axn+aYjOm0uw0KK+axn+aYjueSiw0KK+axn+aso+WuuQ0KK+axn+mVt+WjvQ0KK+axn+S/iuiIiA0KK+axn+W7uumKmA0KK+axn+aUv+WEkg0KK+axn+eOsuaFpw0KK+axn+ihjem+jQ0KK+axn+aMr+Wuhw0KK+axn+e0lOeOqw0KK+axn+WVn+S7sg0KK+axn+ebm+m+jQ0KK+axn+aZuue2rQ0KK+axn+mbheaDoA0KK+axn+WYieWAqw0KK+axn+WvrOaFiA0KK+axn+aGtumbrw0KK+axn+iVvg0KK+axn+Wqng0KK+eJn+aYlQ0KK+S9leS7geeUsA0KK+S9leS4lumbhA0KK+S9leS6meW9rA0KK+S9leWQm+iQjQ0KK+S9leiCsuadsA0KK+S9leS9s+iejQ0KK+S9leWFtua+pA0KK+S9leWto+enpg0KK+S9leWul+empw0KK+S9leaAoeWQmw0KK+S9leaYjuWulw0KK+S9leaYh+WEkg0KK+S9leenieasow0KK+S9leS/iuW7tw0KK+S9leWGoOmclg0KK+S9leW9pemnkg0KK+S9leeCs+izog0KK+S9leiLpeeRnA0KK+S9leWzu+adsA0KK+S9lee0oOWQmw0KK+S9leaVj+iPgQ0KK+S9lea2tQ0KK+S9leaDoOmIug0KK+S9lembheeQqg0KK+S9leWYieWxlQ0KK+S9lemKmOWujw0KK+S9leWtuOWOmg0KK+S9lemdnOWEgA0KK+S9leaXu+mcnA0KK+S9meW/g+i+sg0KK+S9meWQieelpQ0KK+S9meS9s+mfsw0KK+S9meWdquiKsw0KK+S9meWum+WEkg0KK+S9meaYjuWonw0KK+S9memHkeWFuA0KK+S9meS/iuWEkg0KK+S9meW9pemclg0KK+S9meebiOmLkg0KK+S9meazsOeUtw0KK+S9meWpieiQjQ0KK+S9meaDoOaWhw0KK+S9meeRnuiQjQ0KK+S9mem9iuWogQ0KK+S9meisnei8nQ0KK+WIqeengOiYrQ0KK+WQs+Wkp+e2rQ0KK+WQs+S7geS9kQ0KK+WQs+WFg+WriA0KK+WQs+aWh+eOiQ0KK+WQs+aWh+eZvA0KK+WQs+aWh+aWjA0KK+WQs+S4lumBlA0KK+WQs+W5s+WSjA0KK+WQs+awuOaYjA0KK+WQs+eOieiMuQ0KK+WQs+eri+awkQ0KK+WQs+WFhuaWhw0KK+WQs+WuiemCpg0KK+WQs+ihjOS4rQ0KK+WQs+WmmeWAqw0KK+WQs+W/l+Wujw0KK+WQs+W/l+a8og0KK+WQs+aym+aZgw0KK+WQs+engOe0iw0KK+WQs+iCsumclg0KK+WQs+S+neiTkw0KK+WQs+S9s+WNlw0KK+WQs+S9s+WuuQ0KK+WQs+S9s+iTiQ0KK+WQs+S9s+epjg0KK+WQs+S9s+m0uw0KK+WQs+S9qeePig0KK+WQs+S9qee0lA0KK+WQs+S9qeirrQ0KK+WQs+WFtumclg0KK+WQs+WdpOm0uw0KK+WQs+Wtn+Wulw0KK+WQs+Wtn+Wonw0KK+WQs+Wtn+aGsg0KK+WQs+Wul+WysQ0KK+WQs+Wul+mahg0KK+WQs+Wul+e/sA0KK+WQs+WunOiKsw0KK+WQs+WunOephg0KK+WQs+Wum+e4iA0KK+WQs+WyoeWEkg0KK+WQs+W5uOecnw0KK+WQs+W/oOmclg0KK+WQs+aAoeiQjQ0KK+WQs+aAoeaGsg0KK+WQs+aJv+eSiw0KK+WQs+aYjOW6rQ0KK+WQs+aYjg0KK+WQs+aYjuWTsg0KK+WQs+aYjumBlA0KK+WQs+aYjuabhA0KK+WQs+aYleWnvw0KK+WQs+adsemclg0KK+WQs+aso+aAoQ0KK+WQs+aso+WEkg0KK+WQs+ayu+iLsQ0KK+WQs+enieWLsw0KK+WQs+iKs+eRnA0KK+WQs+mHkeeOiQ0KK+WQs+mbqOWTsg0KK+WQs+S6reiqvA0KK+WQs+S/oei8nQ0KK+WQs+S/iuWlhw0KK+WQs+S/iuWEgA0KK+WQs+S/iue3rw0KK+WQs+S/iuirug0KK+WQs+WGoOe+pA0KK+WQs+WTgeiTiQ0KK+WQs+Wnv+WEgA0KK+WQs+Wuo+mLkg0KK+WQs+W7uuiKnQ0KK+WQs+W7uuWLsw0KK+WQs+W+i+mKmA0KK+WQs+aAneepjg0KK+WQs+aUv+W9rA0KK+WQs+aUv+epjg0KK+WQs+aYpee3qQ0KK+WQs+aYrem+jQ0KK+WQs+afj+WEgA0KK+WQs+eCq+Wulw0KK+WQs+eah+asow0KK+WQs+eni+e+jg0KK+WQs+e+jueOsg0KK+WQs+e+juaFpw0KK+WQs+iHtOmKmA0KK+WQs+iLsem0uw0KK+WQs+mHjeavhQ0KK+WQs+WOn+Wuhw0KK+WQs+WutuaYjg0KK+WQs+WutuaFpw0KK+WQs+aMr+aIkA0KK+WQs+aZj+W5sw0KK+WQs+azsOaYjA0KK+WQs+ePruemjg0KK+WQs+e0lOasow0KK+WQs+WBieiqoA0KK+WQs+Wci+WBiQ0KK+WQs+WgheeRiw0KK+WQs+Wpieathg0KK+WQs+aCoA0KK+WQs+aVj+ecnw0KK+WQs+a3keWmgg0KK+WQs+a3keaVjw0KK+WQs+a2teWunA0KK+WQs+mbquWmrg0KK+WQs+WLneelug0KK+WQs+aDoOWQmw0KK+WQs+aWr+eHuw0KK+WQs+eKgOmdiA0KK+WQs+ipoOWuuA0KK+WQs+mInuWptw0KK+WQs+mbheW1kA0KK+WQs+mbsumppQ0KK+WQs+avk+ecnw0KK+WQs+eRnuWTsg0KK+WQs+iBluWogQ0KK+WQs+m8juWBiQ0KK+WQs+WYieWLnQ0KK+WQs+Wvp+eRhA0KK+WQs+emj+mHjw0KK+WQs+iCh+mosA0KK+WQs+mKk+WPiw0KK+WQs+aFtuaWhw0KK+WQs+aFp+aVjw0KK+WQs+iznOW/oA0KK+WQs+abiemdkg0KK+WQs+abieiWhw0KK+WQs+iVmee0iw0KK+WQs+mMpumOsA0KK+WQs+mdnOiKsw0KK+WQs+e4veaIkA0KK+WQs+m0u+aYjA0KK+WQs+ixkOWQiQ0KK+WQs+mfu+WNiQ0KK+WQs+mmqOaAoQ0KK+WQs+S9vOS9vA0KK+WQs+aYtuiRsw0KK+WQs+eRi+eQsw0KK+WRguWtkOixqg0KK+WRguaWh+WwiA0KK+WRguato+WuiQ0KK+WRguiHqumBlA0KK+WRguiCsuiKsw0KK+WRguS9s+WuuQ0KK+WRguS9qee0lA0KK+WRguWul+mKmA0KK+WRguWunOmclg0KK+WRguaAoeaFpw0KK+WRguaYjuazsA0KK+WRguiKs+S/ig0KK+WRguS/neWyuA0KK+WRguWNl+eVvw0KK+WRguW7uumLkg0KK+WRguaYreWEgA0KK+WRgueni+mbsg0KK+WRguiLseeRiw0KK+WRguagvOixqg0KK+WRguWci+WfuQ0KK+WRgua3keWNvw0KK+WRgue0ueamrg0KK+WRguipoOecnw0KK+WRgumbr+athg0KK+WRguWYieWFgw0KK+WRgumKmOaZug0KK+WRguWtuOWPoQ0KK+WRgumdnOiTiQ0KK+WRguW7s+WatA0KK+Wui+W/g+aFpw0KK+Wui+S8r+eRnA0KK+Wui+S9qeePig0KK+Wui+aYjOmclg0KK+Wui+WlleWEkg0KK+Wui+emueeRqQ0KK+Wui+iIq+iHow0KK+Wui+WWrOeOiQ0KK+Wui+eip+eQsw0KK+Wui+erhA0KK+W3q+aIjuaAoQ0KK+W3q+aYjue/sA0KK+W3q+aMr+WYiQ0KK+W3q+WYieiIiA0KK+adjuS5g+aWhw0KK+adjuS4reS7uw0KK+adjuS7geWHsQ0KK+adjuWFg+ijlQ0KK+adjuW/g+S7gQ0KK+adjuaWh+W/lw0KK+adjuaWh+aDoA0KK+adjuaWh+mBlA0KK+adjuaciOaYnw0KK+adjuS4luWvrA0KK+adjuW3p+eQsw0KK+adjuato+W9pQ0KK+adjuawuOaYjA0KK+adjueOieWNvw0KK+adjueri+S7gQ0KK+adjuS7sueOhA0KK+adjuWFhuaWjA0KK+adjuWmguePjQ0KK+adjuWuieeQsw0KK+adjue+vQ0KK+adjuWQm+W9pQ0KK+adjuWuj+aWhw0KK+adjuW/l+aIkA0KK+adjuW/l+WBiQ0KK+adjuaym+adsA0KK+adjuengOeOsg0KK+adjuengOiYhQ0KK+adjuiCsueRqQ0KK+adjuS6nuWAqw0KK+adjuS+neaBgg0KK+adjuS9s+iKsw0KK+adjuS9s+ePjQ0KK+adjuS9s+aZgw0KK+adjuS9s+mbrw0KK+adjuS9s+WEkg0KK+adjuS9s+mclg0KK+adjuS9s+iTgQ0KK+adjuS9qeiKnQ0KK+adjuS9qeeOsg0KK+adjuS9qeWEgA0KK+adjuS9qeWsrA0KK+adjuWHveiKrA0KK+adjuWdpOa6kA0KK+adjuWlh+e/sA0KK+adjuWtn+WTsg0KK+adjuWtn+epjg0KK+adjuWul+WdpA0KK+adjuWul+e+qQ0KK+adjuWul+epjg0KK+adjuWul+m0uw0KK+adjuWunOa0sg0KK+adjuWunOWzuw0KK+adjuWunOaoug0KK+adjuWum+eOsg0KK+adjuWwmuizog0KK+adjuWys+WzsA0KK+adjuW5uOWonw0KK+adjuW/oOepjg0KK+adjuaAoeeOsg0KK+adjuaAoeaFpw0KK+adjuaAoeaXuw0KK+adjuaYk+S/rg0KK+adjuaYhuWujw0KK+adjuaYjuWIqQ0KK+adjuaYjuW9pQ0KK+adjuaYjumHlw0KK+adjuaYjuWLsw0KK+adjuaYjumcng0KK+adjuaYh+e/sA0KK+adjuadsem+jQ0KK+adjuaso+aAoQ0KK+adjuaso+mBlA0KK+adjuazlea8og0KK+adjueOpeeRqQ0KK+adjuiKs+Wcuw0KK+adjuiKnee2vg0KK+adjumHkemItA0KK+adjumVt+amrg0KK+adjumdkumZvQ0KK+adjuS/oeW+tw0KK+adjuS/iuWujw0KK+adjuS/iuW9pQ0KK+adjuS/iuW+tw0KK+adjuS/iuizog0KK+adjuS/nuaFpw0KK+adjuWGoOeRqQ0KK+adjuWNl+WsjA0KK+adjuWnv+WEgA0KK+adjuWogeW+tw0KK+adjuW7uuawkQ0KK+adjuW7uuaYjg0KK+adjuW7uuizog0KK+adjuW7uuiIiA0KK+adjuW9peWunA0KK+adjuW9pemclg0KK+adjuaAneiQsQ0KK+adjuaAneirrQ0KK+adjuaUv+WTsg0KK+adjuaUv+m+jQ0KK+adjuaYree+jg0KK+adjuaYseaYpQ0KK+adjuafj+iTiQ0KK+adjuePiuePig0KK+adjuebiOa9lA0KK+adjueni+aihQ0KK+adjue+jueOiQ0KK+adjue+juWEgA0KK+adjuiDpOeRpA0KK+adjuiLseW/lw0KK+adjuiynuWunA0KK+adjumDgeWBiQ0KK+adjuWAqQ0KK+adjuWTsue3rw0KK+adjuWutuixqg0KK+adjuWuueWptw0KK+adjuaMr+aYjA0KK+adjuaZieixqg0KK+adjuazsOmclg0KK+adjuePrueQsw0KK+adjuelluePjQ0KK+adjuiok+WEhA0KK+adjuWBieaEtw0KK+adjuWBpea6kA0KK+adjuWci+W8tw0KK+adjuWci+e2rQ0KK+adjuWfuuW8mA0KK+adjuWpieeRng0KK+adjuW6t+atow0KK+adjuaVj+WQiQ0KK+adjua4heWQnw0KK+adjua3keiyng0KK+adjua3keiPrw0KK+adjuelpeeRng0KK+adjumAo+WzsA0KK+adjuWHsealqA0KK+adjuaDoOiKrA0KK+adjuaDoOmbrw0KK+adjuaZuuW8tw0KK+adjua5mOaoug0KK+adjuipoOeniw0KK+adjumAsuemjw0KK+adjumbheeOsg0KK+adjumbheaDoA0KK+adjumbheeHlQ0KK+adjuaEj+mbrw0KK+adjuavk+ecnw0KK+adjueRnuiPrw0KK+adjuiBlueQsA0KK+adjumBk+aelw0KK+adjuWYieWHjA0KK+adjuWYiem0uw0KK+adjuamrummsw0KK+adjuemj+iTiQ0KK+adjue2realqA0KK+adjumKmOavkw0KK+adjuW7o+elgQ0KK+adjuaFtuiPrw0KK+adjuaFp+ePoA0KK+adjuizoua3pg0KK+adjuabieWmrg0KK+adjuabieiPgQ0KK+adjueSn+mDgQ0KK+adjuiVmeWmgg0KK+adjumMpuaYhw0KK+adjumdnOaAoQ0KK+adjum+jeeUnw0KK+adjuiBsOWysw0KK+adjum0u+mBlA0KK+adjumOlOmYoQ0KK+adjum6l+ePoA0KK+adjummqOaAoQ0KK+adjuWKrei7jQ0KK+adjuiLueaFiA0KK+adjue1nA0KK+adjumIuumbrw0KK+adjuaBkuWQmw0KK+adnOW/l+izog0KK+adnOWum+irrQ0KK+adnOiKs+aUvw0KK+adnOW9pemclg0KK+adnOePruipqQ0KK+adnOmZveWckw0KK+adnOeHleiPrw0KK+ayiOWjq+WCkQ0KK+ayiOato+W+tw0KK+ayiOS9kee/sA0KK+ayiOW/l+m+jQ0KK+ayiOS9s+aFpw0KK+ayiOWul+aFtg0KK+ayiOaYjOaYjg0KK+ayiOenieiqvA0KK+ayiOWGoOWujw0KK+ayiOW7uuW+tw0KK+ayiOafj+WvrA0KK+ayiOmDgeW6tw0KK+ayiOebiuaJvw0KK+ayiOaZqOmQmA0KK+ayiOiIkueQsw0KK+ayiOeRnuasvQ0KK+ayiOe2reavkw0KK+ayiOiVmeWQmw0KK+ayiOetsembsg0KK+axquengOeHlQ0KK+axqumdkuiTiQ0KK+axquWutueRqQ0KK+axqumdluWciw0KK+iwt+azk+mBkw0KK+i+m+WlleaIkA0KK+mCouiDveaWhw0KK+mYruS/oeaGsg0KK+mYruaWkOeRnA0KK+mYrum1rOeiqQ0KK+WNk+W/l+W/oA0KK+WNk+iKs+Wmgg0KK+WNk+iLseWTsg0KK+WNk+a3keWqmw0KK+WNk+iqjOmahg0KK+WRqOWjq+WCkQ0KK+WRqOS4reiIiA0KK+WRqOaWh+mbhQ0KK+WRqOS7o+WwiQ0KK+WRqOeOieiTrg0KK+WRqOWQiem+jQ0KK+WRqOS9keemjg0KK+WRqOWtneiKsw0KK+WRqOW/l+a4hQ0KK+WRqOengOaZjw0KK+WRqOS6nuasow0KK+WRqOS9qeWunA0KK+WRqOWlh+iTiQ0KK+WRqOWunOiKsw0KK+WRqOaAoeS8tg0KK+WRqOaYjuW8mA0KK+WRqOadsA0KK+WRqOeOn+iQsQ0KK+WRqOmHkeeHlQ0KK+WRqOS/iuixqg0KK+WRqOWogeWRiA0KK+WRqOW9peWykQ0KK+WRqOafj+eUqw0KK+WRqOeni+iQjQ0KK+WRqOmDgeaWhw0KK+WRqOWon+Wmgg0KK+WRqOaMr+WHsQ0KK+WRqOePruWmgg0KK+WRqOWBieiMuQ0KK+WRqOaVj+mIug0KK+WRqOaDoOiTrg0KK+WRqOipoOiokw0KK+WRqOmbsuajoA0KK+WRqOeFjOiAvw0KK+WRqOijleixkA0KK+WRqOWYieaFtg0KK+WRqOe/oOiKrA0KK+WRqOizouW+tw0KK+WRqOeHleebiA0KK+WRqOiBsOWuhw0KK+WRqOiYreiKsw0KK+WRqOmIuue/lA0KK+Wto+iCsua+pA0KK+WumOiKs+Wmgg0KK+WwmuabuA0KK+aWvOWutuePjQ0KK+aYjOWtn+e/sA0KK+ael+S4iuW/lw0KK+ael+S6juemjg0KK+ael+Wjq+WKmw0KK+ael+Wjq+WCkQ0KK+ael+Wjq+i+sg0KK+ael+Wls+a7vw0KK+ael+WtkOWCkQ0KK+ael+WtkOWLpA0KK+ael+Wwj+eQqg0KK+ael+S5i+iPgQ0KK+ael+S7i+S4gA0KK+ael+WkqeawkQ0KK+ael+aWh+S4rQ0KK+ael+aWh+Wwhw0KK+ael+aWh+aWrw0KK+ael+aWh+W+tw0KK+ael+acqOiIiA0KK+ael+S4luiKsw0KK+ael+S4lua3hw0KK+ael+S4u+aBqQ0KK+ael+WPr+mIng0KK+ael+W5s+iLkQ0KK+ael+ato+S4gA0KK+ael+ato+WBiQ0KK+ael+awuOaYjA0KK+ael+awuOelpQ0KK+ael+awuOaZnw0KK+ael+eOieeOsg0KK+ael+eOieiPgQ0KK+ael+efs+mahg0KK+ael+eri+WBiQ0KK+ael+S7sOacmw0KK+ael+WQjuWUrw0KK+ael+WuiOW+tw0KK+ael+eZvuaPmg0KK+ael+S9keePig0KK+ael+S8r+Wysw0KK+ael+S8tuiyng0KK+ael+WRiOS7uw0KK+ael+WQm+e/sA0KK+ael+WmmeWQmw0KK+ael+WtneWFqA0KK+ael+Wuj+mfiw0KK+ael+Wuj+WEkg0KK+ael+W7t+WQiQ0KK+ael+W/l+aIkA0KK+ael+W/l+adsA0KK+ael+W/l+eahw0KK+ael+W/l+WghQ0KK+ael+W/l+ixqg0KK+ael+W/l+epjg0KK+ael+W/l+m0uw0KK+ael+adkOS/ig0KK+ael+eBvOm+jQ0KK+ael+engOeOsg0KK+ael+engOecnw0KK+ael+engOepjg0KK+ael+iCsuawkQ0KK+ael+iCsuWQjQ0KK+ael+iCsuWujw0KK+ael+iCsumAsg0KK+ael+iCsuaFpw0KK+ael+iCsum6nw0KK+ael+iwt+WzsA0KK+ael+S6q+eHgQ0KK+ael+S9s+eUnw0KK+ael+S9s+aAoQ0KK+ael+S9s+ebiA0KK+ael+S9s+e2ug0KK+ael+S9s+aFtg0KK+ael+S9s+a9lA0KK+ael+S9s+aoug0KK+ael+S9s+m0uw0KK+ael+S9qeaAoQ0KK+ael+S9qembrw0KK+ael+S9qeaFpw0KK+ael+S+kemdkg0KK+ael+WNlOadkQ0KK+ael+WdpOmfiw0KK+ael+Wlh+aooQ0KK+ael+Wtn+iQsQ0KK+ael+Wtn+epjg0KK+ael+Wto+eHgQ0KK+ael+Wul+aFtg0KK+ael+Wul+a+pA0KK+ael+WunOWQmw0KK+ael+WunOiBlg0KK+ael+WunOaoug0KK+ael+WunOiTgQ0KK+ael+Wum+aoug0KK+ael+WyseiTiQ0KK+ael+W5uOiTiQ0KK+ael+W/oOWysw0KK+ael+aAoeaxnQ0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWdhw0KK+ael+aAoeiKsw0KK+ael+aAoeiQsQ0KK+ael+aAoeekvQ0KK+ael+aWvOWmrg0KK+ael+aYjOizog0KK+ael+aYjueUnw0KK+ael+aYjuadsA0KK+ael+aYjualkw0KK+ael+aYjuavhQ0KK+ael+aYjueSsA0KK+ael+aYh+m+jQ0KK+ael+adsOasow0KK+ael+aso+aAoQ0KK+ael+aso+aFiA0KK+ael+aso+avhQ0KK+ael+aso+m6lw0KK+ael+eJp+WPsA0KK+ael+eOq+WQmw0KK+ael+enieeRqQ0KK+ael+iKs+Wmgg0KK+ael+iKs+WEgA0KK+ael+iKrOiKsw0KK+ael+mHkeS7lQ0KK+ael+mHkem+jQ0KK+ael+mdkuW/lw0KK+ael+S6ruS7gQ0KK+ael+S/oeWujw0KK+ael+S/neaIkA0KK+ael+S/iuS9kQ0KK+ael+S/iuWujw0KK+ael+S/iueUtw0KK+ael+S/iumAuA0KK+ael+S/iumtgQ0KK+ael+S/kOS6rQ0KK+ael+WGoOWQnw0KK+ael+WGoOWEkg0KK+ael+WTgeWunA0KK+ael+WlleengA0KK+ael+Wnv+WQvg0KK+ael+WogeWQjQ0KK+ael+WogeiJrw0KK+ael+W7uuS4gA0KK+ael+W7uuWQvg0KK+ael+W7uuW7tw0KK+ael+W7uuiJrw0KK+ael+W7uuiPrw0KK+ael+W9peaWhw0KK+ael+W9peS8tg0KK+ael+W9peeUqw0KK+ael+W9peiIiA0KK+ael+aBhueiqQ0KK+ael+aUv+iJrw0KK+ael+aUv+WEgA0KK+ael+aYpeW5tA0KK+ael+aYreW/lw0KK+ael+aYn+aZqA0KK+ael+afkeadjw0KK+ael+afj+adkQ0KK+ael+afj+e/sA0KK+ael+eCuuaWhw0KK+ael+eOsuiHsw0KK+ael+ebiOWQmw0KK+ael+eliOWdhw0KK+ael+eni+aDoA0KK+ael+e+juWmgg0KK+ael+e+juWQnw0KK+ael+e+jueOsg0KK+ael+e+juiPrw0KK+ael+iHtOWQmw0KK+ael+iLseeUtw0KK+ael+iZueWmgg0KK+ael+iynuW7tg0KK+ael+mDgeaVjw0KK+ael+mDgeiYrQ0KK+ael+mfi+WYiQ0KK+ael+WAqeWmgg0KK+ael+WOn+WQiA0KK+ael+WTsuWujw0KK+ael+Won+Wmgg0KK+ael+WutueUnw0KK+ael+WutuWLhw0KK+ael+WutuiBlg0KK+ael+WutuaFtg0KK+ael+WuueS7nw0KK+ael+Wzu+aaiQ0KK+ael+W6reeRiw0KK+ael+aMr+a1qQ0KK+ael+aZieWFqA0KK+ael+aZj+eomg0KK+ael+abuOaltw0KK+ael+ahguePoA0KK+ael+azsOe2rQ0KK+ael+ePruWmgg0KK+ael+ebiuW8mA0KK+ael+elkOemvg0KK+ael+eqiOaEjw0KK+ael+e0oOiPrw0KK+ael+iAmOW+tw0KK+ael+i1t+e/jg0KK+ael+WBieawkQ0KK+ael+WBieW+tw0KK+ael+Wci+asow0KK+ael+WfueWgrw0KK+ael+WpieeRnA0KK+ael+W6t+Wvpw0KK+ael+aVj+ijlQ0KK+ael+a4hembsg0KK+ael+a3keeOsg0KK+ael+a3keWopQ0KK+ael+a3keiQjQ0KK+ael+a3keWEgA0KK+ael+ebm+WCkQ0KK+ael+mbquiQjQ0KK+ael+WNmumahg0KK+ael+aDoOaWhw0KK+ael+aDoOaVjw0KK+ael+aDoOeQhw0KK+ael+aZuuiDvQ0KK+ael+acnw0KK+ael+a5mOaDoA0KK+ael+e0q+iPgQ0KK+ael+imluWwig0KK+ael+mAuOaYgA0KK+ael+mAuOWEkg0KK+ael+mbheWQmw0KK+ael+mbheWAqw0KK+ael+mbheaDoA0KK+ael+mbheiPrw0KK+ael+mbheismQ0KK+ael+mghuWuiQ0KK+ael+W1qeWxsQ0KK+ael+aVrOaWhw0KK+ael+aWsOWHoQ0KK+ael+aloOajiw0KK+ael+avk+i2hQ0KK+ael+eFjOi7kg0KK+ael+eRnuWutg0KK+ael+eRnuiYrQ0KK+ael+eluuWLmw0KK+ael+e+qeWCkQ0KK+ael+e+pOWzsA0KK+ael+iBluaBqQ0KK+ael+iBlumIng0KK+ael+ijleWghQ0KK+ael+ipqeWHoQ0KK+ael+ipqembrw0KK+ael+mbjee/lA0KK+ael+m8juakjQ0KK+ael+WYieePjQ0KK+ael+WYiee+pA0KK+ael+amruasvQ0KK+ael+edv+aamA0KK+ael+eyvua5mw0KK+ael+e/oOiQjQ0KK+ael+mKmOeFjA0KK+ael+m9iuiUmg0KK+ael+W7o+e+qQ0KK+ael+aFp+WQmw0KK+ael+aFp+e+jg0KK+ael+aFp+iQjQ0KK+ael+aFp+m6lw0KK+ael+eRvuiYrQ0KK+ael+izouW+lw0KK+ael+WtuOmahg0KK+ael+abieWQmw0KK+ael+abieiPrw0KK+ael+a+pOe+qQ0KK+ael+epjg0KK+ael+iIiOmHlw0KK+ael+mMpumahg0KK+ael+mdnOWunA0KK+ael+mdnOiKrA0KK+ael+aHi+W3ng0KK+ael+mnv+mAuA0KK+ael+m0u+mBlA0KK+ael+ixkOiInA0KK+ael+m6l+WQmw0KK+ael+m6l+iPrw0KK+ael+e5vOW5sw0KK+ael+W3jem+jQ0KK+ael+iKiuS6qA0KK+ael+WnneWdhw0KK+ael+WArOS4lg0KK+ael+eQrumWlA0KK+ael+eFkum0uw0KK+ael+etseiPgQ0KK+ael+mIuuWHsQ0KK+ael+mppw0KK+elgee+qeWciw0KK+WIneiLpeWHoQ0KK+mCteWllemIng0KK+mCteaHt+W+tw0KK+mCseWNg+e2ug0KK+mCseWtkOalkw0KK+mCseWkqeWujw0KK+mCseaWh+m0uw0KK+mCseW5vOWqmg0KK+mCseeOieeOsg0KK+mCseWuieWPsA0KK+mCseW/l+WFiQ0KK+mCseengOiLsQ0KK+mCseS9s+advg0KK+mCseW7tum9oQ0KK+mCseaYjOijlQ0KK+mCseazk+W9sA0KK+mCseS/oeebig0KK+mCseS/iuamrg0KK+mCseWTgeiPrw0KK+mCseWlleedvw0KK+mCseW7uuiqoA0KK+mCseaUv+a5pw0KK+mCseafj+eRnA0KK+mCseebiOajoA0KK+mCseiHtOepjg0KK+mCsemHjeaGsg0KK+mCseaMr+WzsA0KK+mCseePrue2ug0KK+mCseWci+aBrQ0KK+mCseWpieWshQ0KK+mCsea4hem+jQ0KK+mCsea3keaFpw0KK+mCseWJteWEiQ0KK+mCseaDoOipqQ0KK+mCsea5mOmbsg0KK+mCsembheiKrA0KK+mCsembheiMnA0KK+mCseavk+eOsg0KK+mCseebn+eQhw0KK+mCseipqeeQgQ0KK+mCseWYieaFpw0KK+mCsemftueRqQ0KK+mCseaFp+Wptw0KK+mCsemdnOWunA0KK+mCseixkOelpQ0KK+mCsemfu+Wvpw0KK+mCsee5vOeRqQ0KK+mCsemhr+ahkw0KK+mCseeQrOa3kQ0KK+mCsemIuuaWkA0KK+mHkeaYjui8nQ0KK+mHkeWLpA0KK+S+r+aWh+WTsg0KK+S+r+Wuj+aYjA0KK+S+r+Wys+Wujw0KK+S+r+S/oeWuhw0KK+S+r+afj+mdkg0KK+S+r+a3temKmA0KK+S+r+mbhembrw0KK+S+r+mdnOaxnQ0KK+S/nuS9s+WHoQ0KK+S/nuiKiuiWiA0KK+WnnOWuj+amrg0KK+WnnOiKneaAoQ0KK+WnnOWHseWCkQ0KK+WnnOWinueCqw0KK+WnnOaXu+WnjQ0KK+Wnmueri+S4iQ0KK+WnmuS9s+aFpw0KK+WnmuWogeWuhw0KK+WnmuWHseaWhw0KK+WnmuW+t+m6nw0KK+W+i+aMr+aPmg0KK+aWveWPr+mahg0KK+aWveWuh+mnvw0KK+aWveWtneW+tw0KK+aWveiCsueRnA0KK+aWveS9qeiPrw0KK+aWveWum+ebtA0KK+aWveaYjuWmjQ0KK+aWveS/iuWQjQ0KK+aWveW7uuWuhw0KK+aWveafj+Wmgg0KK+aWvemDgeiVmQ0KK+aWveaVj+eUtw0KK+aWveWNmuWFgw0KK+aWveaZuuWLhw0KK+aWvembheWonw0KK+aWveWYieeQqg0KK+aWveaFp+WQmw0KK+aWvemdnOaAoQ0KK+aWveeRi+eRnA0KK+afr+aWh+elpQ0KK+afr+WFqOebig0KK+afr+W/l+aYjg0KK+afr+S9qeWQmw0KK+afr+Wum+WQmw0KK+afr+aso+WEgA0KK+afr+S/iumahg0KK+afr+ebiOWmgg0KK+afr+aVj+ebmw0KK+afr+WNmuWFgw0KK+afr+aji+ajow0KK+afr+avk+iQjQ0KK+afr+mzs+WEgA0KK+afr+eTiumOow0KK+afs+S9qeWQmw0KK+afs+aji+WFgw0KK+auteaYjuWujw0KK+a0quWKm+WjuQ0KK+a0quWjq+iCsg0KK+a0quWtkOWptw0KK+a0quaWh+aYjg0KK+a0quS4luWYiQ0KK+a0quawuOaYjA0KK+a0queOieiSqA0KK+a0quWQjeihoQ0KK+a0quWQm+elpQ0KK+a0quW/l+aYjg0KK+a0quadkemKmA0KK+a0quiJr+asow0KK+a0quWdpOmMoQ0KK+a0quWunOiJrw0KK+a0quaAoeecnw0KK+a0quaYjum+jQ0KK+a0quS/iumbhA0KK+a0quaUv+mciA0KK+a0que+juiQjQ0KK+a0qumHjeWNvw0KK+a0quaMr+ebig0KK+a0quePruiKsw0KK+a0quWBieWTsg0KK+a0quabvOePig0KK+a0quWci+e/lA0KK+a0quWpiee0iw0KK+a0quW+oeW9lw0KK+a0qua4heWBpQ0KK+a0qua3kea3qQ0KK+a0qumbquiKsw0KK+a0quaDoOajiw0KK+a0quiPgemahg0KK+a0qumbheiLkw0KK+a0quaFiOS8tg0KK+a0queFjOWHsQ0KK+a0queRnum0uw0KK+a0quiQsemLkg0KK+a0qumdluWHsQ0KK+a0quWYieiTrg0KK+a0quamrui8nQ0KK+a0que2ug0KK+a0quiCh+W9pQ0KK+a0qumKmOmNvg0KK+a0quaFtumKmA0KK+a0queRqeePjQ0KK+a0qumdnOaAoQ0KK+a0quiXneiPgQ0KK+a0que5vOizog0KK+a0quaZouaDhw0KK+a0qumIuuaruw0KK+e0gOaWh+asvQ0KK+e0gOW/l+mclg0KK+e0gOaAoeWptw0KK+e0gOebiOW3ng0KK+e0gOWNmuaVjw0KK+e0gOmghuiIiA0KK+e0gOiYrea9lA0KK+iDoeaWh+eRnA0KK+iDoeeOieaFpw0KK+iDoeW7t+WogQ0KK+iDoeWumuWuhw0KK+iDoeiKs+aFiA0KK+iDoeeOsuWpiQ0KK+iDoeWutuamrg0KK+iDoee0lOiPgQ0KK+iDoea3keWQmw0KK+iDoeWNmuehrw0KK+iDoeaZuumKmA0KK+iDoembheaZug0KK+iDoeeRnua0mQ0KK+iDoeeip+WqnA0KK+iDoemdnOiLkQ0KK+iDoeaHv+W/gw0KK+iMg+aWh+aUvw0KK+iMg+WQieaFtg0KK+iMg+aYjuS4rQ0KK+iMg+WnnOaFp+aAoQ0KK+iMg+WutuiqoA0KK+iMg+iAlemtgQ0KK+iMg+WNmuW9sA0KK+iMg+aZuuasvQ0KK+iMg+eRnuelpQ0KK+iMg+e2seizog0KK+iMg+iAgOiBsA0KK+ioiOerueWuhw0KK+mfi+ahguS7gQ0KK+WAquWogemBoA0KK+WAqueRnuacnw0KK+WHjOaYjuW+tw0KK+WUkOWNg+aDoA0KK+WUkOmCpuazsA0KK+WUkOiLseWonA0KK+WUkOa3keiKrA0KK+WUkOe+qeWgrw0KK+WUkOitveeOqw0KK+Wkj+aYpemmmQ0KK+Wkj+aFp+m9oQ0KK+Wtq+WFg+S/ig0KK+Wtq+awuOS/oQ0KK+Wtq+S8r+S4rQ0KK+Wtq+WNlOijlQ0KK+Wtq+W7uuW0tA0KK+Wtq+aMr+a2vA0KK+Wtq+Wci+abuA0KK+Wtq+a3keiKrA0KK+Wtq+WCs+WHsQ0KK+Wtq+mBk+mahg0KK+Wtq+ixquW/lw0KK+Wtq+WtuOWEgA0KK+Wtq+eRgA0KK+W+kOS5meWPrw0KK+W+kOWjq+WLmw0KK+W+kOS7geS5vg0KK+W+kOaWh+ebig0KK+W+kOS7leazkw0KK+W+kOawuOWFiQ0KK+W+kOeri+mBlA0KK+W+kOWmguaYhw0KK+W+kOWFi+mIng0KK+W+kOW/l+WBiQ0KK+W+kOiCsuaFiA0KK+W+kOS9qemMpg0KK+W+kOaYhue+vw0KK+W+kOadvum0uw0KK+W+kOS/oeS4rQ0KK+W+kOaAnee2rQ0KK+W+kOe+juiPrw0KK+W+kOWutualtw0KK+W+kOa1muWCkQ0KK+W+kOWBieWzuw0KK+W+kOWci+WAqw0KK+W+kOWpieWEgA0KK+W+kOaVj+iKsw0KK+W+kOa3keWonw0KK+W+kOiOieecnw0KK+W+kOaOjOeRmw0KK+W+kOipoOWqmw0KK+W+kOmghuWujw0KK+W+kOeRnuaBrQ0KK+W+kOijleW9rA0KK+W+kOWYieWujw0KK+W+kOWkoum6nw0KK+W+kOe2reaPmg0KK+W+kOmKmOismQ0KK+W+kOaFp+W/gw0KK+W+kOmch+adsQ0KK+W+kOm0u+S7gQ0KK+W+kOe5vOaUvw0KK+W+kOiPoeempw0KK+W+kOmIuue2vg0KK+aftOWtuOiInA0KK+aut+iCh+mZvQ0KK+elluabiemzsw0KK+enpuaik+mKmA0KK+e/geS6jueQqg0KK+e/geaWh+iMuQ0KK+e/geS7suizog0KK+e/geiCsueolA0KK+e/geaYjuWuiQ0KK+e/geafj+iBlg0KK+e/geePruaAoQ0KK+e/geW0h+W6rQ0KK+e/gea3keiPrw0KK+e/gemAuOi7kg0KK+e/gee+qeWulw0KK+e/geWkouWQmw0KK+e/gemKmOmBnA0KK+e/gemdnOeRnA0KK+e/gemdmuaZjw0KK+iigeWmguWyoQ0KK+iigeWBieWAqw0KK+iigeamrueHpg0KK+mmrOS4gOaWhw0KK+mmrOeOieWonw0KK+mmrOS9s+S8tg0KK+mmrOiLseWCkQ0KK+mmrOaZuuWQmw0KK+mmrOe3kuW3nQ0KK+mrmOS4gOmKmA0KK+mrmOWwj+aWhw0KK+mrmOS4luaYjA0KK+mrmOato+Wciw0KK+mrmOS8iuS/ig0KK+mrmOWuj+mKmA0KK+mrmOengOmItA0KK+mrmOWmrueRiw0KK+mrmOaYjg0KK+mrmOWSuOWvpg0KK+mrmOe+juiKsw0KK+mrmOWzsA0KK+mrmOWBpQ0KK+mrmOWfueecnw0KK+mrmOaVj+WoiQ0KK+mrmOesmei8lA0KK+mrmOeQquiIkg0KK+mrmOmbheiFuQ0KK+mrmOeFp+mWlA0KK+mrmOipqeWoiQ0KK+mrmOW9sOmahg0KK+mrmOe/oOe/jg0KK+mrmOmKmOeQhw0KK+mrmOaFp+iQjQ0KK+mrmOitnOWAqw0KK+mrmOaWjOmRqw0KK+WVhuW8mOaYkw0KK+W0lOWAqeiLkw0KK+W6t+S5g+aciA0KK+W6t+aUuOiPrw0KK+W6t+e+jueOsg0KK+W6t+WCkeawkQ0KK+W6t+mbheWptw0KK+W6t+abieiVmQ0KK+W8teS4gOm0uw0KK+W8teWKm+Wkqw0KK+W8teWNg+mHjA0KK+W8teWwj+iQjQ0KK+W8teS7geadsA0KK+W8teWFg+mahg0KK+W8teWkqemzsw0KK+W8teW/g+eRnA0KK+W8teaWh+W9pQ0KK+W8teaWh+asvQ0KK+W8teaWh+ixqg0KK+W8teaWh+mosA0KK+W8teS4luaYjg0KK+W8teS4luWEkg0KK+W8teS7leiCsg0KK+W8teWPr+asow0KK+W8teW8mOazsA0KK+W8teato+W/oA0KK+W8teato+ihmw0KK+W8teawuOS/ig0KK+W8teeOhOm0uw0KK+W8teeOieeQqg0KK+W8teeri+aWhw0KK+W8teS6puWvpw0KK+W8teWFieS7gQ0KK+W8teWMoeadsA0KK+W8teWmgueRqQ0KK+W8teaXreWulw0KK+W8teiHs+edvw0KK+W8teS9kee+pA0KK+W8teWFi+WBiQ0KK+W8teWmmeaFpw0KK+W8teWuj+eRng0KK+W8teW/lw0KK+W8teW/l+aYjg0KK+W8teW/l+elpQ0KK+W8teW/l+mBlA0KK+W8teW/l+ixqg0KK+W8teayheeSvQ0KK+W8teengOeQqg0KK+W8teiCsuW0pw0KK+W8teiCsuiqoA0KK+W8teiCsueRiw0KK+W8teS6numKnA0KK+W8teS9s+aDoA0KK+W8teS9qeeRmw0KK+W8teWtn+Wptw0KK+W8teWunOaWsA0KK+W8teW/teaFiA0KK+W8teaYhueFjA0KK+W8teaYjueFpw0KK+W8teael+iKrA0KK+W8teayu+Wciw0KK+W8teiKneWPiw0KK+W8temHkemzsw0KK+W8teS/iuWBiQ0KK+W8teWGoOiPrw0KK+W8teW7uuixqg0KK+W8teaBhueRiw0KK+W8teaflOaYjg0KK+W8teeVjOiBsA0KK+W8tee0gOWQmw0KK+W8tee+jumbrw0KK+W8teiMgumGkg0KK+W8temmmeeSvQ0KK+W8teWAq+eRiw0KK+W8teWTsuWBpQ0KK+W8teWTsue2rQ0KK+W8teWutuaMrw0KK+W8teWutuiPsQ0KK+W8teWutue+pA0KK+W8teWutue2ug0KK+W8teWutuixqg0KK+W8teWutumKmA0KK+W8teWutueRiw0KK+W8teWzu+WYiQ0KK+W8teW6rea6kA0KK+W8teaMr+a6kA0KK+W8teaZieixqg0KK+W8teabuOe2rQ0KK+W8teabuOmmqA0KK+W8teahgumzsw0KK+W8teePruaAoQ0KK+W8teebiue2rQ0KK+W8teenpuiKuA0KK+W8tee0lOebig0KK+W8teiAv+W0mg0KK+W8temrmOeRng0KK+W8teWBpeiJrw0KK+W8teWci+Wqmw0KK+W8teWpieaahA0KK+W8teaDn+aNtw0KK+W8teaiheWQmw0KK+W8tea4heWHsQ0KK+W8tea3keePjQ0KK+W8tea3keiMuQ0KK+W8tea3kembhQ0KK+W8tea3teWvjA0KK+W8teiOieiMuQ0KK+W8teWHseWuhw0KK+W8teWHseeQsw0KK+W8teWLneWCkQ0KK+W8teWNmuWLmw0KK+W8teWWrOe/lA0KK+W8teWvjOa3sw0KK+W8teaDoOWonw0KK+W8teaDoOiPgQ0KK+W8teaVpue+qQ0KK+W8teaZr+a4vg0KK+W8teaZuua4hQ0KK+W8teaZuue/lA0KK+W8teaZuuismQ0KK+W8tea5mOaAoQ0KK+W8teeZu+e/lA0KK+W8tee0q+mItA0KK+W8teiInOiPrw0KK+W8teiovOiNgw0KK+W8temAuOe+pA0KK+W8temInuiyvQ0KK+W8tembheWnjQ0KK+W8tembheaVjw0KK+W8tembheWptw0KK+W8tembheaDoA0KK+W8tembheeQtA0KK+W8tembhemItA0KK+W8tembr+WEgA0KK+W8teWXo+aWhw0KK+W8teaWsOWujw0KK+W8teavk+WAqw0KK+W8teeRmuePig0KK+W8teeRnuiKuA0KK+W8teeRnuawtg0KK+W8teeluuaYhw0KK+W8teiBluiOiQ0KK+W8teipqeaAoQ0KK+W8temdluaAoQ0KK+W8teWYieatow0KK+W8teWYieiKrA0KK+W8teWYieaZiQ0KK+W8teWYieaDoA0KK+W8teWYieiBsg0KK+W8teamleWuuQ0KK+W8teedv+epjg0KK+W8teeiqeahkw0KK+W8tee2teiKsw0KK+W8tee2reWTsg0KK+W8tee/oOaWhw0KK+W8teiTk+iQsQ0KK+W8temKmOWulw0KK+W8temzs+W5sw0KK+W8teaFtuaAoQ0KK+W8teaFp+Wonw0KK+W8teeRqeePig0KK+W8teaGtuWQmw0KK+W8teabieiPgQ0KK+W8tee/sOaWhw0KK+W8temdnOWmgg0KK+W8teeSsOS8ig0KK+W8tem0u+aZug0KK+W8teewoeaso+iPrw0KK+W8teixkOeSuA0KK+W8teeTiuaWhw0KK+W8teiXnemmqA0KK+W8teWvtuS6kQ0KK+W8teiAgOS6kQ0KK+W8teiAgOiBsg0KK+W8temmqOaWhw0KK+W8teW3jeiAgA0KK+W8teiKgw0KK+W8teeQh+mWlA0KK+W8teeQrOiPgQ0KK+W8teeRi+iKuA0KK+W8teetsembrw0KK+W8teemleWAqw0KK+W8teaBkuS4rQ0KK+abueWjq+aVjw0KK+abueiBv+eUtw0KK+abueaYjOeUtw0KK+abueWTsuWYiQ0KK+abuea3keWqmw0KK+abueeak+mbsg0KK+abueWYieaWhw0KK+abueeSveepoA0KK+aigeaWh+WuiQ0KK+aigeato+W/oA0KK+aigeaxneiInA0KK+aigeW/l+mKmA0KK+aigeadseaelw0KK+aigeW9peixqg0KK+aigeWutuaYjg0KK+aigeaZiemtgQ0KK+aigeWVn+eOhA0KK+aigeWLnemKmA0KK+aigeacneWHsQ0KK+aigeaEt+iKuA0KK+aigeWYieePjQ0KK+aigeaFp+iPrw0KK+aigeeTiuS4uQ0KK+aiheWFieWuhw0KK+ebm+W/gw0KK+iOq+aYn+Wuhw0KK+iOiuWjq+Wciw0KK+iOiuaWh+aYrQ0KK+iOiuW8mOS7uw0KK+iOiueOiem6nw0KK+iOiuW/l+amrg0KK+iOiuS+neWptw0KK+iOiuWdpOWTsg0KK+iOiuWul+WLsw0KK+iOiuaAoei7kg0KK+iOiuadseaYjg0KK+iOiumHkemdnA0KK+iOiuaUv+aGsg0KK+iOiuWAieadsA0KK+iOiuWzu+amlQ0KK+iOiue0lOe0lA0KK+iOiuWfuemRqw0KK+iOiua3keiKrA0KK+iOiua3keePug0KK+iOiuWLneWIqQ0KK+iOiuW+qeiytA0KK+iOiuaDoOiTiQ0KK+iOiuaZuua2tQ0KK+iOiueZu+eZvA0KK+iOiumbheW/gw0KK+iOiumbheaDoA0KK+iOiumbr+mbrw0KK+iOiuijleaWhw0KK+iOiumKmOaZrw0KK+iOiuaoueWujw0KK+iOiumdnOaAoQ0KK+iOiumOlOeSng0KK+iOiuaHv+W8tw0KK+iOiuetseWptw0KK+ioseWPiOS7gQ0KK+ioseWjrOiAgA0KK+ioseaWh+WOmg0KK+ioseaWh+ixqg0KK+ioseS4luawkQ0KK+ioseWKoOWujw0KK+ioseato+W/oA0KK+ioseawuOavhQ0KK+ioseeOieWsiw0KK+ioseWQjeS4lg0KK+ioseaxjuepjg0KK+ioseWFi+S7sg0KK+ioseWuj+W+tw0KK+ioseW/l+W0hw0KK+ioseW/l+mBoA0KK+ioseengOePig0KK+ioseiJrw0KK+ioseS9s+mbrw0KK+ioseWtn+e/lA0KK+ioseaAoeePrg0KK+ioseadvuetiQ0KK+ioseiKs+mKmA0KK+ioseS/oeamrg0KK+ioseaBrOe2vg0KK+ioseePiueRnA0KK+iosee+juiPrw0KK+iosemDgeaVjw0KK+ioseWTsueRng0KK+ioseWTsueRiw0KK+ioseWutuaamA0KK+ioseWutuixqg0KK+ioseWzu+WTsg0KK+ioseW6reeRiw0KK+ioseaZieeGkg0KK+ioseabuOmKkw0KK+ioseePruWYiQ0KK+iosee0oOiPgQ0KK+ioseiyoeW+lw0KK+ioseWpieiMuQ0KK+ioseaiheiPgQ0KK+iosea3keiKrA0KK+iosea3keaDoA0KK+ioseiOieiOiQ0KK+ioseWLneWLmw0KK+ioseWgoeWmgg0KK+ioseaDoOWmgg0KK+ioseaDoOmbrw0KK+ioseaZr+mIng0KK+ioseaZuuWHsQ0KK+ioseaZuuW+tw0KK+ioseero+iDvQ0KK+ioseiPr+WAmg0KK+iosemAuOeroA0KK+iosembheeOsg0KK+iosembheaDoA0KK+iosembhembgQ0KK+iosembr+eQsw0KK+iosealqOelpQ0KK+ioseeRng0KK+ioseeRnuWEgA0KK+ioseiBluadsA0KK+ioseWYieWFgw0KK+ioseWYieePrg0KK+ioseamlQ0KK+ioseeiqeS/rg0KK+iosee2reecnw0KK+iosemKmOS7gQ0KK+iosemWo+aWhw0KK+ioseaFp+iyng0KK+ioseaGtuiKsw0KK+iosemMpuaWhw0KK+ioseW2uOS7gQ0KK+ioseeTiuaWhw0KK+iosem6l+iPrw0KK+iosemmqOS7gQ0KK+ioseaYtuiPrw0KK+ioseetseiQjQ0KK+ioseaBkumBlA0KK+mAo+S9keS7gQ0KK+mAo+W7uuaZug0KK+mAo+ahguWujw0KK+mAo+WVn+aZug0KK+mAo+WYiee0lA0KK+mDreS5g+amrg0KK+mDreS6juemjg0KK+mDreWtkOeriw0KK+mDreS7geWTsg0KK+mDreaWh+aDoA0KK+mDreS4luiYrQ0KK+mDreawuOaYjg0KK+mDreS7sua3tQ0KK+mDreW5tOecnw0KK+mDreWQm+aAoQ0KK+mDreW/l+Wujw0KK+mDreiCsuWFiA0KK+mDremCpuW9pQ0KK+mDreS9s+mRqw0KK+mDreWtn+iTiQ0KK+mDreaAoeS8tg0KK+mDreaAoeengA0KK+mDreaYjuWulw0KK+mDreaYjueRiw0KK+mDreeOpeWmpg0KK+mDreiKneedvw0KK+mDreS/neWQmw0KK+mDreS/iuWEhA0KK+mDreWTgeengA0KK+mDreWogeW/lw0KK+mDreW7uuiJrw0KK+mDreaAneWunA0KK+mDreaYreWuiQ0KK+mDreafj+engA0KK+mDreebiOWQmw0KK+mDree+juWWhA0KK+mDreiynuWtjQ0KK+mDreWHjOW/lw0KK+mDreWutuelpQ0KK+mDreWuuOaYgA0KK+mDreaMr+a8og0KK+mDreahgumzsw0KK+mDree0oOe2vg0KK+mDreWci+atow0KK+mDrea3u+aWsA0KK+mDrea3keaFpw0KK+mDreaDoOmdkg0KK+mDreaZuueRiw0KK+mDremAsuaYjA0KK+mDrembheiPsQ0KK+mDreeRnuasvQ0KK+mDreWYieWBiQ0KK+mDreeip+Wonw0KK+mDreaFtueUnw0KK+mDreWEkuismQ0KK+mDreeHleeOsg0KK+mDremdnOe+jg0KK+mDremOruWFgw0KK+mDreeNu+aWhw0KK+mDreexoOaFtg0KK+mDreaakA0KK+mZs+S4gOiPrw0KK+mZs+S5g+amrg0KK+mZs+WPiOaYlQ0KK+mZs+WNg+mMpg0KK+mZs+WtkOW9pQ0KK+mZs+W3seWNhw0KK+mZs+S7geWulw0KK+mZs+WFg+mdlg0KK+mZs+Wkqeizng0KK+mZs+W/g+a9lA0KK+mZs+aWh+W/oA0KK+mZs+aWh+a2kw0KK+mZs+aWh+asvQ0KK+mZs+aWh+W+tw0KK+mZs+aWh+mIug0KK+mZs+S4luWulw0KK+mZs+S4luaUvw0KK+mZs+S4lueroA0KK+mZs+S4lua+pA0KK+mZs+S7pemdnA0KK+mZs+S7leWPoQ0KK+mZs+WPr+asow0KK+mZs+W3p+ePig0KK+mZs+W5vOasow0KK+mZs+W8mOiokw0KK+mZs+acreWfuQ0KK+mZs+ato+WzsA0KK+mZs+ato+ixqg0KK+mZs+awuA0KK+mZs+awuOmdkg0KK+mZs+awuOiqjA0KK+mZs+eOieaWhw0KK+mZs+eOieiKrA0KK+mZs+eOieePoA0KK+mZs+eOieiPgQ0KK+mZs+eOieeSmA0KK+mZs+efs+iCsg0KK+mZs+eri+WAqw0KK+mZs+eri+e2rQ0KK+mZs+S8iuWAqw0KK+mZs+WFieeUqw0KK+mZs+WQkeamrg0KK+mZs+WmguiYiw0KK+mZs+WuieS9kQ0KK+mZs+axn+eriw0KK+mZs+iHs+WHsQ0KK+mZs+S9keW6rQ0KK+mZs+S8r+iSvA0KK+mZs+WQm+iIqg0KK+mZs+Wdh+eiqQ0KK+mZs+WmjeengA0KK+mZs+Wuj+S7gQ0KK+mZs+Wuj+e+jg0KK+mZs+Wuj+mBlA0KK+mZs+Wuj+eFkg0KK+mZs+W/l+W5sw0KK+mZs+W/l+aymw0KK+mZs+W/l+aYjg0KK+mZs+W/l+W9pQ0KK+mZs+W/l+elpQ0KK+mZs+W/l+a6kA0KK+mZs+W/l+e2rQ0KK+mZs+W/l+ixqg0KK+mZs+W/l+epjg0KK+mZs+aUuOWptw0KK+mZs+axtua0pQ0KK+mZs+engOiKnQ0KK+mZs+engOaDoA0KK+mZs+engOaFpw0KK+mZs+iCsuS9kA0KK+mZs+iCsuipqQ0KK+mZs+iJr+aUvw0KK+mZs+mFieiMuQ0KK+mZs+S+nee/lA0KK+mZs+S9s+WQnw0KK+mZs+S9s+eOpQ0KK+mZs+S9s+aDoA0KK+mZs+S9s+mbrw0KK+mZs+S9s+eSmA0KK+mZs+S+g+Wptw0KK+mZs+S9qeS9qQ0KK+mZs+S9qeeQsw0KK+mZs+WFtumIng0KK+mZs+WdpOS9kA0KK+mZs+WnlOaJvw0KK+mZs+Wtn+WBiQ0KK+mZs+Wtn+i8nQ0KK+mZs+Wul+W/lw0KK+mZs+Wul+aXlw0KK+mZs+WunOW5sw0KK+mZs+WunOWnvw0KK+mZs+WunOeSiw0KK+mZs+WwmuaWhw0KK+mZs+W5uOi2sw0KK+mZs+W/oOiJrw0KK+mZs+aAoeaWhw0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeeruQ0KK+mZs+aAoeS8tg0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeaYjA0KK+mZs+aAoeecnw0KK+mZs+aAoeeQtA0KK+mZs+aAoeiqoA0KK+mZs+aAoea9lA0KK+mZs+aAoemdnA0KK+mZs+aAoeWPoQ0KK+mZs+aYjOaWhw0KK+mZs+aYjuatow0KK+mZs+aYjuadkA0KK+mZs+aYjuePoA0KK+mZs+aYjualtw0KK+mZs+aYjuixkA0KK+mZs+adseiPrw0KK+mZs+aso+Wmgg0KK+mZs+aso+aAoQ0KK+mZs+aso+iYrQ0KK+mZs+azk+e/lA0KK+mZs+aziui+sA0KK+mZs+eOn+eRmw0KK+mZs+eOq+iHuw0KK+mZs+enieaWjA0KK+mZs+iKneWAqQ0KK+mZs+mHkeiJrw0KK+mZs+mVt+aFtg0KK+mZs+S6reWQmw0KK+mZs+S6ruepjg0KK+mZs+S/oeWQnw0KK+mZs+S/oeeUqw0KK+mZs+S/oeijlQ0KK+mZs+S/neWFgw0KK+mZs+S/iuS7sA0KK+mZs+S/iuWuhw0KK+mZs+S/iuaXrQ0KK+mZs+S/iuWujw0KK+mZs+S/iuW7tw0KK+mZs+S/iuiJrw0KK+mZs+S/iumDjg0KK+mZs+S/iuiPrw0KK+mZs+S/iuamlQ0KK+mZs+S/iumKmA0KK+mZs+S/iuaoug0KK+mZs+S/kOWuiQ0KK+mZs+S/nuS7sg0KK+mZs+WGoOWkqw0KK+mZs+WGoOWuhw0KK+mZs+WGoOWujw0KK+mZs+WGoOWCkQ0KK+mZs+WGoOmKmA0KK+mZs+WLh+WcqA0KK+mZs+WLgeWQvg0KK+mZs+WTgeWFiA0KK+mZs+WlleS4rQ0KK+mZs+WlleW7tw0KK+mZs+Wlleepjg0KK+mZs+Wnv+aWhw0KK+mZs+Wnv+WQnw0KK+mZs+Wnv+epjg0KK+mZs+WogeWFqA0KK+mZs+WogeWKqQ0KK+mZs+WogemCkQ0KK+mZs+WogeWEkg0KK+mZs+Wuo+avjw0KK+mZs+W4peWQjQ0KK+mZs+W7uuS7uw0KK+mZs+W7uuWuiQ0KK+mZs+W7uuaXrQ0KK+mZs+W7uuWujw0KK+mZs+W7uuW7tw0KK+mZs+W7uueUqw0KK+mZs+W7uumCpg0KK+mZs+W7uuaPmg0KK+mZs+W7uumBlA0KK+mZs+W7uui8lA0KK+mZs+W7uueSiw0KK+mZs+W7uueDnA0KK+mZs+W9peS7uw0KK+mZs+W9peW4hg0KK+mZs+W9peWQmw0KK+mZs+W9peW7tw0KK+mZs+W9peaYjA0KK+mZs+W9pee2uA0KK+mZs+W9peWLsw0KK+mZs+aAneW5tA0KK+mZs+aAnea6kA0KK+mZs+aAneepjg0KK+mZs+aUv+aWhw0KK+mZs+aUv+ijlQ0KK+mZs+aYpeWmgw0KK+mZs+aYreaWhw0KK+mZs+aYreWBiQ0KK+mZs+aYreeRiw0KK+mZs+aYoOWEkg0KK+mZs+aYseS4ng0KK+mZs+aYseeUqw0KK+mZs+aflOWuiQ0KK+mZs+afj+S7vQ0KK+mZs+afj+W5tA0KK+mZs+afj+W/lw0KK+mZs+afj+WzsA0KK+mZs+afj+Wvpw0KK+mZs+afj+i8rw0KK+mZs+eCq+WQmw0KK+mZs+eCs+mMlQ0KK+mZs+ePjeeRqQ0KK+mZs+ebiOWFqA0KK+mZs+ebiOWuiQ0KK+mZs+ebiOWtnA0KK+mZs+ebiOWptw0KK+mZs+ebiOeShw0KK+mZs+emuem9ig0KK+mZs+eni+W4hg0KK+mZs+eni+iQjQ0KK+mZs+e0gOi2sw0KK+mZs+e+juWmgg0KK+mZs+e+juWQmw0KK+mZs+e+juiKnQ0KK+mZs+e+jue0lA0KK+mZs+e+jueQtA0KK+mZs+e+juaFpw0KK+mZs+e+v+iwtw0KK+mZs+iHtOemjw0KK+mZs+iMgumbhA0KK+mZs+iLseWCkQ0KK+mZs+iZueabsg0KK+mZs+ihjeiHsw0KK+mZs+iynuWmpA0KK+mZs+mDgeaWhw0KK+mZs+mDgeiPgQ0KK+mZs+mHjeW7tw0KK+mZs+mfi+S8tg0KK+mZs+mfsw0KK+mZs+mmmeWQnw0KK+mZs+WAlue/oA0KK+mZs+WTsuW8tw0KK+mZs+WutuePjQ0KK+mZs+Wutumbrw0KK+mZs+WutuaFpw0KK+mZs+WuueiQsQ0KK+mZs+aMr+adsQ0KK+mZs+aZguebnw0KK+mZs+ahgueOiQ0KK+mZs+azsOWzsA0KK+mZs+a1qeiMuQ0KK+mZs+ePruePrg0KK+mZs+ebiuijlQ0KK+mZs+e0oOWopQ0KK+mZs+iAmOWvrA0KK+mZs+S5vua3pg0KK+mZs+WBieiOiQ0KK+mZs+WBpemclg0KK+mZs+Wci+WzsA0KK+mZs+Wci+amrg0KK+mZs+Wfueerrw0KK+mZs+WpieiPgQ0KK+mZs+W0kemKmA0KK+mZs+WVn+WtmA0KK+mZs+aVj+aWsA0KK+mZs+a4heWlhw0KK+mZs+a3keWQmw0KK+mZs+a3keiKrA0KK+mZs+a3keWonw0KK+mZs+a3kee+mg0KK+mZs+a3kembhQ0KK+mZs+a3kemdnA0KK+mZs+e0ueW6rQ0KK+mZs+ioseawkQ0KK+mZs+WCkeijlQ0KK+mZs+WLneWYiQ0KK+mZs+Wpt+eOnw0KK+mZs+aDoOaWhw0KK+mZs+aDoOeOsg0KK+mZs+aDoOiQjQ0KK+mZs+aDoOm9oQ0KK+mZs+aZr+azsA0KK+mZs+aZuuWBiQ0KK+mZs+acneeGmQ0KK+mZs+a5mOeQtA0KK+mZs+eQpueQsw0KK+mZs+iCheasig0KK+mZs+ipoOS6rg0KK+mZs+mAuOW5sw0KK+mZs+mAuOiPgQ0KK+mZs+mAsumahg0KK+mZs+mahuaWjA0KK+mZs+mbheiKrA0KK+mZs+mbheiLkw0KK+mZs+mbheaDoA0KK+mZs+mbheeQtA0KK+mZs+mbhembrw0KK+mZs+mbhemfuw0KK+mZs+mghueZvA0KK+mZs+aEj+mbrw0KK+mZs+aVrOaWhw0KK+mZs+amhua2tQ0KK+mZs+avk+mIng0KK+mZs+eFp+aFiA0KK+mZs+eRnuWIqQ0KK+mZs+eRnueRnA0KK+mZs+eRnOipqQ0KK+mZs+e+qeW/oA0KK+mZs+iBluWunA0KK+mZs+icgueBnQ0KK+mZs+ijleaZug0KK+mZs+ipqeWptw0KK+mZs+mBi+W+tQ0KK+mZs+m8juS7gQ0KK+mZs+WYieWujw0KK+mZs+WYieWzsA0KK+mZs+WYiembgQ0KK+mZs+WYieeRqQ0KK+mZs+aXl+aYjA0KK+mZs+amrueHvw0KK+mZs+eip+e0hQ0KK+mZs+emj+aelw0KK+mZs+e2reWTsg0KK+mZs+iCh+m0uw0KK+mZs+mKmOaziQ0KK+mZs+mKmOiAgA0KK+mZs+WEgA0KK+mZs+W7o+m6nw0KK+mZs+W+t+mBoA0KK+mZs+aFtuiPrw0KK+mZs+aFtum0uw0KK+mZs+aFp+iKnQ0KK+mZs+aFp+e+jg0KK+mZs+aFp+e0lA0KK+mZs+aFp+mbrw0KK+mZs+aFleWEkg0KK+mZs+a9lOmfsw0KK+mZs+eRqeeRhA0KK+mZs+iqvOiKsw0KK+mZs+m7juahgg0KK+mZs+aGsuWEgA0KK+mZs+abiemdkg0KK+mZs+abieetoA0KK+mZs+aoueW5tA0KK+mZs+eHleiPgQ0KK+mZs+epjuelpQ0KK+mZs+iVmeiKsw0KK+mZs+mMpuengA0KK+mZs+mMpum0uw0KK+mZs+mdnOaAoQ0KK+mZs+mdnOa3kQ0KK+mZs+mdnOaFpw0KK+mZs+m+jeWvrA0KK+mZs+iWhw0KK+mZs+mnv+aPmg0KK+mZs+m0u+a4hQ0KK+mZs+eSv+Wmgg0KK+mZs+eTiua3hw0KK+mZs+i0iuS4rQ0KK+mZs+mfu+Wmgg0KK+mZs+mfu+eruQ0KK+mZs+m6kuWFgw0KK+mZs+m6l+Wmgg0KK+mZs+m6l+iKrA0KK+mZs+m6l+Wptw0KK+mZs+WvtueOiQ0KK+mZs+iAgOesmQ0KK+mZs+aru+WuuQ0KK+mZs+iJt+mItA0KK+mZs+aXu+aUvw0KK+mZs+WnteWmgg0KK+mZs+aYtuaYsQ0KK+mZs+WgnA0KK+mZs+eQrOiPgQ0KK+mZs+eRi+WFuA0KK+mZs+etseiKsw0KK+mZs+mIuueOqw0KK+mZs+mKmuiMuQ0KK+mZs+eAheWmgg0KK+mZs+Wsv+S8tg0KK+mZuOato+e+qQ0KK+mZuOa0peiPrw0KK+mZuOmzs+eOsg0KK+eroOaWh+iKnQ0KK+eroOe/lA0KK+m6peebp+WvtuWFqA0KK+WCheaWh+mAsg0KK+WCheS6nuWHoQ0KK+WCheW7uuWciw0KK+WCheePrua3hw0KK+WChea3kembrw0KK+WChemJm+aWhw0KK+WCheeQrg0KK+WWrOWul+Wgrw0KK+W9reS7geW/lw0KK+W9reaWh+aFpw0KK+W9reeOieiPrw0KK+W9reaIkOWCkQ0KK+W9reS9s+WBiQ0KK+W9reaci+mbjQ0KK+W9reS/iuemjw0KK+W9reW7uuamrg0KK+W9reiLpeaFiA0KK+W9rea1qeWAqw0KK+W9reW0h+S/oQ0KK+W9reebmw0KK+W9rea7i+iQjQ0KK+W9rembhee1uQ0KK+W9reiBluiQjQ0KK+W9reaFp+Wmgg0KK+W9remMpueCqw0KK+W9remmqOaFpw0KK+aZr+mbqOeniw0KK+abvuWjq+i7kg0KK+abvuWwj+eOsg0KK+abvuWtlOmIug0KK+abvuaWh+W9rA0KK+abvuS7pOeRnA0KK+abvueOieWmgg0KK+abvuS7suebnw0KK+abvue+veW2ug0KK+abvuW/l+WCkQ0KK+abvuiCsuiPgQ0KK+abvuWto+athg0KK+abvuaJv+W/lw0KK+abvuiKneiYrQ0KK+abvuS/iuaZug0KK+abvuWGoOaoug0KK+abvuW7uuWSjA0KK+abvuW7uumclg0KK+abvuaAnee2rQ0KK+abvuaYoOm9oQ0KK+abvueni+aVjw0KK+abvue+jum9oQ0KK+abvumDgeepjg0KK+abvuePrueQsw0KK+abvuWBiee/lA0KK+abvuWci+abuA0KK+abvuWpieaDoA0KK+abvua3keiKsw0KK+abvua2teWJrw0KK+abvuWHseaCjA0KK+abvuaDoOeOsg0KK+abvuaZuuelug0KK+abvuiPr+m9oQ0KK+abvumbhemdkg0KK+abvuaEj+aWhw0KK+abvua6peWFgw0KK+abvueRm+eQsw0KK+abvuijleWHsQ0KK+abvuWYieiLsQ0KK+abvue2ree+pA0KK+abvuaFtueRhA0KK+abvuaGsuW/oA0KK+abvue5gemdkg0KK+abvueTiuaFpw0KK+abvuWvtuejgQ0KK+abvummqOWEgA0KK+abvuaakOa4hQ0KK+abvueejQ0KK+a4uOWkp+e3rw0KK+a4uOS4luaWjA0KK+a4uOWFhuWQmw0KK+a4uOadjumbhA0KK+a4uOS9qeWLsw0KK+a4uOaYjOe/sA0KK+a4uOmdkumcjw0KK+a4uOeni+aAoQ0KK+a4uOWutuixqg0KK+a4uOWpiemdkg0KK+a4uOa3keaDoA0KK+a4uOWWrOaZug0KK+a4uOaZuui2hQ0KK+a4uOmAsuWvjA0KK+a4uOmbheetoA0KK+a4uOamruiPrw0KK+a4uOmMq+Wulw0KK+a4uOeNu+e+pA0KK+a5r+S4gOePig0KK+a5r+W/l+W/oA0KK+a5r+Wutuixqg0KK+a5r+WvjOajiw0KK+a5r+aFtumMmg0KK+eoi+S5i+Wvpw0KK+eoi+WwmuWJhw0KK+eoi+W7uue/sA0KK+eoi+WBieaUvw0KK+eoi+mbheaDoA0KK+eoi+eTiuiQsQ0KK+erpeW8mA0KK+erpee+jua7vw0KK+erpemfu+Wmgg0KK+iPr+Wci+mLkg0KK+izgOWOmuW5sw0KK+i+nOS/oeemjw0KK+mWlOS7u+mBoA0KK+mgiOS4iuiLkQ0KK+mmruawuOeAhQ0KK+mmrumVt+m+jQ0KK+mmruW9qeWonw0KK+mmrueRnumZvQ0KK+mmruiAgOaWhw0KK+m7g+WKm+iogA0KK+m7g+S6juiKrA0KK+m7g+S6juecnw0KK+m7g+WNg+WHjA0KK+m7g+Wjq+WOnw0KK+m7g+Wjq+WYiQ0KK+m7g+Wkp+WAqw0KK+m7g+WtkOWNvw0KK+m7g+Wwj+Wonw0KK+m7g+S4reWBiQ0KK+m7g+S7geiJrw0KK+m7g+WFg+mahg0KK+m7g+WkqeWBpQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+Wnrg0KK+m7g+aWh+aAoQ0KK+m7g+aWh+eOsg0KK+m7g+aWh+mahg0KK+m7g+aWh+eSiw0KK+m7g+aciOeRvg0KK+m7g+S4luaciw0KK+m7g+S4luWYiQ0KK+m7g+S7peWWrA0KK+m7g+W3p+Wptw0KK+m7g+W8mOavhQ0KK+m7g+ato+S9qQ0KK+m7g+awuOS7gQ0KK+m7g+awuOa8og0KK+m7g+eOiembqA0KK+m7g+eOieiPgQ0KK+m7g+eri+iKrA0KK+m7g+S6puiQsQ0KK+m7g+S7u+W7tg0KK+m7g+WFhuaVjw0KK+m7g+WkmeaFpw0KK+m7g+Wuh+W7tw0KK+m7g+aXreW8mA0KK+m7g+iBv+WQmw0KK+m7g+S8r+W5tA0KK+m7g+WmmeiKrA0KK+m7g+Wuj+mAsg0KK+m7g+W/l+aIkA0KK+m7g+W/l+W8tw0KK+m7g+W/l+WYiQ0KK+m7g+W/l+m+jQ0KK+m7g+engOWuuQ0KK+m7g+iCsuS/oQ0KK+m7g+S+neaWhw0KK+m7g+S9s+Wqmw0KK+m7g+S9qeS/kA0KK+m7g+WdpOW+tw0KK+m7g+Wul+Wfug0KK+m7g+W5uOWEgA0KK+m7g+aAoeePig0KK+m7g+aAoeiPgQ0KK+m7g+aAoee2rQ0KK+m7g+aYjuW/lw0KK+m7g+aYjueRng0KK+m7g+adsea1tw0KK+m7g+aso+aEiQ0KK+m7g+eOn+eRvg0KK+m7g+iKt+mbsg0KK+m7g+mVt+a+pA0KK+m7g+S/oeaNtw0KK+m7g+S/oeW9sA0KK+m7g+S/oeaWjA0KK+m7g+S/iuWTsg0KK+m7g+S/iuWCkQ0KK+m7g+S/iuiInA0KK+m7g+S/iuWYiQ0KK+m7g+S/iuizog0KK+m7g+S/nuaWkA0KK+m7g+WGoOmbhQ0KK+m7g+WLh+aFpw0KK+m7g+WTgeavhQ0KK+m7g+Wnv+e2vg0KK+m7g+Wuo+WHsQ0KK+m7g+W7uuaWhw0KK+m7g+W7uueoiw0KK+m7g+W7uuW9sA0KK+m7g+W7uuWLsw0KK+m7g+W9peWkqg0KK+m7g+W9peeRnA0KK+m7g+W9peaWjA0KK+m7g+aAneizog0KK+m7g+aUv+aPmg0KK+m7g+aYreaZug0KK+m7g+aYseS4rQ0KK+m7g+afj+WFgw0KK+m7g+afj+e/lA0KK+m7g+afj+e/sA0KK+m7g+eCs+aGsg0KK+m7g+ebiOaDoA0KK+m7g+eni+iQjQ0KK+m7g+e+jueOiQ0KK+m7g+e+jue+mg0KK+m7g+e+juiTiQ0KK+m7g+iLpeiWhw0KK+m7g+iLseWCkQ0KK+m7g+iynuepjg0KK+m7g+mDgeePig0KK+m7g+mDgembrw0KK+m7g+mfi+eQqg0KK+m7g+WAieW9pQ0KK+m7g+Wutumahg0KK+m7g+W6remIug0KK+m7g+aMr+iqoA0KK+m7g+abuOmIug0KK+m7g+a1qemIng0KK+m7g+ePruiIkg0KK+m7g+elluizog0KK+m7g+iDveixkA0KK+m7g+WBieWzsA0KK+m7g+WBiemKmA0KK+m7g+WBpea6og0KK+m7g+Wci+iKsw0KK+m7g+Wci+i7kg0KK+m7g+Wci+ijlQ0KK+m7g+Wci+mQmA0KK+m7g+Wpieiyng0KK+m7g+W0h+iokw0KK+m7g+W9qemKmA0KK+m7g+WVn+S/rg0KK+m7g+aVj+S/rg0KK+m7g+aiheeOsg0KK+m7g+a4hem6nw0KK+m7g+a3keeOsg0KK+m7g+a3keaihQ0KK+m7g+a3keiPrw0KK+m7g+a3kemdnA0KK+m7g+elpeaWjA0KK+m7g+iOieWonw0KK+m7g+mAlOW3lg0KK+m7g+WHseWogQ0KK+m7g+WLneijlQ0KK+m7g+Wgr+WBiQ0KK+m7g+WvjOipsw0KK+m7g+aDoOiKrA0KK+m7g+aDoOeQtA0KK+m7g+aDoOmcng0KK+m7g+aZr+ijlQ0KK+m7g+aZuuW6tw0KK+m7g+acneeQtA0KK+m7g+a5mOW3pw0KK+m7g+eQquWptw0KK+m7g+ero+WNlw0KK+m7g+iIkuW9pQ0KK+m7g+iPiuiLsQ0KK+m7g+mAuA0KK+m7g+mWlOi+sg0KK+m7g+mbhea0pQ0KK+m7g+mbhea3kQ0KK+m7g+mbheeQqg0KK+m7g+mbheiQsQ0KK+m7g+mbhem9oQ0KK+m7g+mghuWQiQ0KK+m7g+aEj+i2hQ0KK+m7g+aVrOaWjA0KK+m7g+amhuWptw0KK+m7g+a6kOeSiw0KK+m7g+eRnuS8tg0KK+m7g+eRnumZvQ0KK+m7g+ebn+WHsQ0KK+m7g+e+qeWQmw0KK+m7g+iBluWTsg0KK+m7g+iBlum0uw0KK+m7g+ijleebmw0KK+m7g+ipqeiKuA0KK+m7g+ipqembrw0KK+m7g+mItOeQqg0KK+m7g+mdluaDoA0KK+m7g+WYieWLhw0KK+m7g+WYieiQsQ0KK+m7g+amrumghg0KK+m7g+edv+S8uA0KK+m7g+e2reaZug0KK+m7g+mKmOWBiQ0KK+m7g+WEgOWQmw0KK+m7g+aFtuiPrw0KK+m7g+aFp+iMuQ0KK+m7g+a+hOWBiQ0KK+m7g+mch+Wuhw0KK+m7g+abieS9qQ0KK+m7g+eHleWopQ0KK+m7g+mMmuaaiQ0KK+m7g+mdnOWunA0KK+m7g+aHieeSvw0KK+m7g+mnv+mBlA0KK+m7g+iWsOeRqQ0KK+m7g+eAmuW+tw0KK+m7g+eTiuWEgA0KK+m7g+eTiuiqvA0KK+m7g+mfu+Wmgg0KK+m7g+m6l+Wmgw0KK+m7g+m6l+iTiQ0KK+m7g+WvtuWEgA0KK+m7g+e5vOWing0KK+m7g+iAgOeRqQ0KK+m7g+mQmOiRpg0KK+m7g+mmqOaFpw0KK+m7g+m9oeiQsQ0KK+m7g+iJt+eOiQ0KK+m7g+aYtuaWjA0KK+m7g+e/iuWuuA0KK+m7g+eQrOWQmw0KK+m7g+iPgOmItA0KK+m7g+eRi+Wvpw0KK+m7g+etsembgQ0KK+m7g+mIuuWptw0KK+m7g+mJpumWlA0KK+m7g+isteiqqg0KK+Whl+aZgumbqA0KK+aliuS4ieizog0KK+aliuWjq+W8mA0KK+aliuWjq+izog0KK+aliuWtkOavhQ0KK+aliuS5i+aFpw0KK+aliuWFgeS4rQ0KK+aliuaWh+Wujw0KK+aliuaWh+eRng0KK+aliuS4luWHsQ0KK+aliuWPr+athg0KK+aliuato+W9rA0KK+aliueOiem8jg0KK+aliuS7suawkQ0KK+aliuWuiOWfjg0KK+aliuS8tuaFpw0KK+aliuW/l+iDvQ0KK+aliuW/l+mbjQ0KK+aliuengOePoA0KK+aliuiCsuWEkg0KK+aliuS9s+iPgQ0KK+aliuS9qeePig0KK+aliuWdpOiLsQ0KK+aliuWtn+iTiQ0KK+aliuWul+Wgrw0KK+aliuWul+e/sA0KK+aliuWunOeSiw0KK+aliuWyseWEkg0KK+aliuaAoeiKsw0KK+aliuaJv+eGuQ0KK+aliuaYhumclg0KK+aliuaYjuWvsA0KK+aliuadseaVjw0KK+aliuaso+ePrg0KK+aliueniemghg0KK+aliumVt+a9lA0KK+aliuS/iui8nQ0KK+aliuaAnembiw0KK+aliuaYrei8nQ0KK+aliue0gOiKuA0KK+aliue+juiXnQ0KK+aliuWTsuWuiQ0KK+aliuWutumKmA0KK+aliuaMr+Wulw0KK+aliuabuOixqg0KK+aliuePrueQpg0KK+aliuiZlOmbhQ0KK+aliuWBpeWciw0KK+aliuWfueaBqQ0KK+aliuaDn+eZvQ0KK+aliua3s+ehrw0KK+aliua3keS9sw0KK+aliua3keaVjw0KK+aliua3keaFpw0KK+aliuebm+aWjA0KK+aliuWHseS7sg0KK+aliuWLneWuhw0KK+aliuWNmuasvQ0KK+aliuWpt+mIng0KK+aliuW+quWptw0KK+aliuaDoOWptw0KK+aliuaWr+WHsQ0KK+aliuaZr+mbrw0KK+aliuaZuuWCkQ0KK+aliuaZuumIng0KK+aliuajrueZvA0KK+aliueak+eRiw0KK+aliuiIkuW4hg0KK+aliuiPgeiKrA0KK+aliuiytOWqmw0KK+aliumWlOe/lA0KK+aliumbheWAqw0KK+aliumbheW1kA0KK+aliumbhee/lA0KK+aliumbhembsg0KK+aliumbsue/lA0KK+aliueFpeeroA0KK+aliuijlQ0KK+aliuWYieeOsg0KK+aliuankOmnkg0KK+aliui2memKmA0KK+aliuaFtumahg0KK+aliueSiw0KK+aliuabieiPgQ0KK+aliuiVmeiKsw0KK+aliumdnOWmgg0KK+aliuaItOW3ng0KK+aliuekjumBoA0KK+aliuixkOmKmA0KK+aliueTiuiPrw0KK+aliuabpueQsw0KK+aliueQh+Wmgg0KK+aliueQrOWptw0KK+aliumOp+S8ig0KK+a6q+iHs+S7uw0KK+a6q+aJv+e/sA0KK+a6q+iLpeWptw0KK+a6q+Wfuemdkg0KK+a6q+mbhea4hQ0KK+a6q+abieiPrw0KK+iQrOS9s+aYlQ0KK+iQrOabieaYjg0KK+iRieWPiOWYiQ0KK+iRieWkp+iRpg0KK+iRieWkqeWwhw0KK+iRieS7o+asig0KK+iRieS6puebmw0KK+iRieWmgumbrw0KK+iRieWuj+WCkQ0KK+iRieengOaihQ0KK+iRieS9s+asow0KK+iRieS9qeecnw0KK+iRieWul+aZug0KK+iRieaAoeWQmw0KK+iRieaYjOWAqw0KK+iRieaYjumRqw0KK+iRieeOn+WQmw0KK+iRiemVt+mdkg0KK+iRieS/iuWujw0KK+iRieS/nuadiQ0KK+iRieW7uuWQmw0KK+iRieaAneWEgA0KK+iRieaYseW/lw0KK+iRieeni+aciA0KK+iRiemDgeiPgQ0KK+iRieWutuWuhw0KK+iRieWzu+izkw0KK+iRieabuOeRiw0KK+iRieiAv+m9ig0KK+iRieW8teW7ug0KK+iRiea3kemItA0KK+iRieaDoOemjg0KK+iRieipoOaZtA0KK+iRiembhembrw0KK+iRiee+qeadvg0KK+iRiemKmOaYjA0KK+iRiea9lOaBqQ0KK+iRieiVmeiKsw0KK+iRiemnv+mAuA0KK+iRiemosOmBoA0KK+iRieeQpOaAoQ0KK+iRm+WAqeWmgg0KK+iRo+W3p+eOsg0KK+iRo+aAoeWQmw0KK+iRo+W9peWujw0KK+iRo+aMr+mbhA0KK+iRo+aFp+e+jg0KK+ijmOWFg+aEtw0KK+ipueWtkOawkQ0KK+ipueS4luWCkQ0KK+ipueWuj+W9rA0KK+ipueS9s+aMrw0KK+ipueWtn+aZgw0KK+ipueW/oOamrg0KK+ipuemdkuiJtw0KK+ipuee+juePjQ0KK+ipuea1muaYhw0KK+ipueiMl+iKuA0KK+ipuea3keiQjQ0KK+ipueWLneasvQ0KK+ipueaZr+Wgrw0KK+ipueiovOWvjA0KK+ipuembhemWlA0KK+ipueWYieeSvw0KK+ipueepjuiQjQ0KK+ipueeOk+eRiw0KK+iziOayu+Wciw0KK+mEkuS4gOS7sg0KK+mEkuadjuaYjA0KK+mEkumHkeW+tw0KK+mEkuaWsOWFqA0KK+mbjeaVpuWFgw0KK+mbt+mbheiPgQ0KK+W7luS6juaWhw0KK+W7luWkp+aonw0KK+W7luWFg+WIqQ0KK+W7luaWh+iplQ0KK+W7luaciOingA0KK+W7luato+WBiQ0KK+W7luS4nuaZng0KK+W7luWQq+a9lA0KK+W7luW/l+WBiQ0KK+W7luiCsuiJrw0KK+W7luS9qeWmgg0KK+W7luaAoeeOsg0KK+W7luaYjuWEgA0KK+W7luiKneWghQ0KK+W7luS/iuasvQ0KK+W7luWnv+avkw0KK+W7luW9peWHsQ0KK+W7luaYseaouQ0KK+W7lue+jueOsg0KK+W7luiLseeUtw0KK+W7lui/sOiMgg0KK+W7luWNv+aDoA0KK+W7luWutueRqQ0KK+W7luaBqeaFiA0KK+W7luabuOePrg0KK+W7luePrueOqw0KK+W7lue0oOWNvw0KK+W7luWBieaIkA0KK+W7luWBiem0uw0KK+W7luWci+WLmw0KK+W7luWfueeRnA0KK+W7luWvhOiQjQ0KK+W7luaDh+ayuw0KK+W7luaik+iMnA0KK+W7lua3keaDoA0KK+W7luiyq+ePrg0KK+W7luaDoOWonw0KK+W7lumAsuW5sw0KK+W7lualt+aWhw0KK+W7luWXvg0KK+W7lumKmOS7gQ0KK+W7lueRqeeShw0KK+W7lumMpueRnA0KK+W7lum6kumWlA0KK+W7luaWjOWCkQ0KK+eGiueri+aWsA0KK+eGiuW0h+e3rw0KK+euoeW5vOS7sg0KK+iHuuaWh+eFpw0KK+ijtOWBieeoiw0KK+ikmuWutuW+tw0KK+i2meS7geS9kQ0KK+i2meaWh+W/oA0KK+i2meW/heaYjA0KK+i2meWQm+adsA0KK+i2meS9qeiKrA0KK+i2meaYjui8nQ0KK+i2meWTgeW9pQ0KK+i2meeCq+WLmw0KK+i2meWutuiJrw0KK+i2meahgumdkg0KK+i2meWBieW7tw0KK+i2meWfuemclg0KK+i2meeajuWQmw0KK+i2memInuW/lw0KK+i2meW7o+WFgw0KK+i2membmemnvw0KK+mEnuixqui8nQ0KK+WKieS5g+iQsQ0KK+WKieWKm+ixqg0KK+WKieWNg+eRnA0KK+WKieWkp+amrg0KK+WKieWtkOmgjg0KK+WKieS7geatow0KK+WKieW/g+WEgA0KK+WKieaWh+WLnQ0KK+WKieaXpemghg0KK+WKieS4luaFtg0KK+WKieato+aysw0KK+WKieeOieaWhw0KK+WKieeOieeQhw0KK+WKieS7sua2tQ0KK+WKieWFqOW9rA0KK+WKieWmguiWsA0KK+WKieaXreiKrA0KK+WKieWQm+elug0KK+WKieW7t+altw0KK+WKieW/l+a6kA0KK+WKieengOmDgQ0KK+WKieiCsuWulw0KK+WKieiCsuepjg0KK+WKieS6nuiKuA0KK+WKieS9s+iKsw0KK+WKieS9s+mBlA0KK+WKieS9qemdkg0KK+WKieWdpOepjg0KK+WKieWul+aAoQ0KK+WKieWunOaYhg0KK+WKieWyoemZtQ0KK+WKieaAoeS8tg0KK+WKieaAoeWSjA0KK+WKieaAoemdnA0KK+WKieaYjOiqoA0KK+WKieaYjuWTsg0KK+WKieaenOePjQ0KK+WKieaso+iMuQ0KK+WKieeOq+Wvpw0KK+WKieiKs+iYrQ0KK+WKiemHkemzsw0KK+WKieS/oeiJrw0KK+WKieS/iuW7tw0KK+WKieS/iuW3lg0KK+WKieWGoOiJrw0KK+WKieWTgeWunA0KK+WKieWnv+WQnw0KK+WKieW7uuWujw0KK+WKieW7uuiJrw0KK+WKieW7uueUug0KK+WKieW9peWNmg0KK+WKieaBquS6ug0KK+WKieaYoOengA0KK+WKieafj+m6nw0KK+WKieebiOWmgg0KK+WKieeni+aIkA0KK+WKiee+juS+lg0KK+WKiee+v+axnQ0KK+WKiei7jeavhQ0KK+WKieS/ruaYjg0KK+WKieWTsueRiw0KK+WKieWutuaYhw0KK+WKieWutumzsw0KK+WKieWzu+S8tg0KK+WKieaMr+S4rQ0KK+WKieabuOWujw0KK+WKiea1mumKmA0KK+WKieebiuemjg0KK+WKiee0lOadjw0KK+WKieWBieiqoA0KK+WKieWci+m+jQ0KK+WKieW6t+alnQ0KK+WKieaVj+eQqg0KK+WKiea3keiOiQ0KK+WKieelpeawkQ0KK+WKieWNmuaWhw0KK+WKieaPmumKmA0KK+WKieacneiTrg0KK+WKieiIkuaFiA0KK+WKiemWlOe1kA0KK+WKiembheiQjQ0KK+WKieWLpOe2kw0KK+WKiea6kOWAqw0KK+WKiee2k+e2uA0KK+WKieWYieiCsg0KK+WKieWYieaoug0KK+WKieeGmeaFpw0KK+WKieiCh+m1rA0KK+WKieW+t+atow0KK+WKieaFp+eOsg0KK+WKieeRqeWonw0KK+WKieabieiKrA0KK+WKieaoueiVmQ0KK+WKieepjuiSqA0KK+WKiemMpuWggg0KK+WKiem+jeWxsQ0KK+WKiem0u+mclg0KK+WKieeAmumZvQ0KK+WKieWvtuWptw0KK+WKieaHv+aFpw0KK+WKieWnteWYiQ0KK+WKieeRi+eOsg0KK+WOsuaWjOS4rQ0KK+atkOWjq+a6kA0KK+atkOW/l+ebiA0KK+atkOaAoeengA0KK+atkOW7uuawkQ0KK+atkOWoieWmpg0KK+atkOmAuOmdkg0KK+atkOmZveaDoOWmgg0KK+atkOepjuWQmw0KK+a9mOWFgeS7gQ0KK+a9mOeOieaDoA0KK+a9mOWuj+Wulw0KK+a9mOS9qeWQmw0KK+a9mOaAoeWQmw0KK+a9mOeOn+aoug0KK+a9mOWGoOWujw0KK+a9mOW7uuaIkA0KK+a9mOaUv+e3rw0KK+a9mOe+jueOsg0KK+a9mOiDveWTsg0KK+a9mOaDoOWonw0KK+a9mOeRnummmQ0KK+a9mOWEgOaBrA0KK+a9mOm0u+mKmA0KK+a9mOmIuuaflA0KK+iUo+S4reihjQ0KK+iUo+ayhuelpQ0KK+iUo+WunOmdnA0KK+iUo+mVt+aXuw0KK+iUo+a3keaFpw0KK+iUo+a/seW3ng0KK+iUoeWjq+aXug0KK+iUoeS7geWBiQ0KK+iUoeWkqeelug0KK+iUoeaWh+WNmg0KK+iUoeaWh+m0uw0KK+iUoeS4lum0uw0KK+iUoeato+Wulw0KK+iUoeeOieeniw0KK+iUoeS6pumbrw0KK+iUoeWQjeabuA0KK+iUoeaXreabnA0KK+iUoeS8r+m0uw0KK+iUoeWuj+WfuQ0KK+iUoeW/l+aYjg0KK+iUoeW/l+m0uw0KK+iUoeaxtum0uw0KK+iUoeiCsuatow0KK+iUoeiCsuWLsw0KK+iUoeS+neWuuQ0KK+iUoeS9s+Wujw0KK+iUoeS9s+iKrA0KK+iUoeS9s+WuuQ0KK+iUoeS9s+iTiQ0KK+iUoeS9s+mclg0KK+iUoeS9qeWQmw0KK+iUoeS9qeePig0KK+iUoeS9qeWopQ0KK+iUoeS9qeepjg0KK+iUoeWFtuePrg0KK+iUoeWdpOmbhA0KK+iUoeWlh+mclg0KK+iUoeWtn+iKsw0KK+iUoeWtn+ecnw0KK+iUoeWtn+irrQ0KK+iUoeWul+W/lw0KK+iUoeWul+mBlA0KK+iUoeWul+e/sA0KK+iUoeWunOW7tw0KK+iUoeWunOWAqQ0KK+iUoeWunOmclg0KK+iUoeWwmuWysw0KK+iUoeWys+abuA0KK+iUoeW5uOa3sw0KK+iUoeW/oOepjg0KK+iUoeaJv+eSiw0KK+iUoeaYk+mZng0KK+iUoeaYjOWEkg0KK+iUoeaYjuaxjg0KK+iUoeaYjuiKsw0KK+iUoeaYjuWzsA0KK+iUoeaYjuiSsg0KK+iUoeaYjum+jQ0KK+iUoeaYh+epjg0KK+iUoeadsOW/lw0KK+iUoeaso+aAoQ0KK+iUoeatpuirug0KK+iUoeenieaYhg0KK+iUoeiKs+a0tQ0KK+iUoemHkem+jQ0KK+iUoeS/oeiJrw0KK+iUoeWTgeWEgA0KK+iUoeaAneaNtw0KK+iUoeaUv+WTsg0KK+iUoeaUv+m+jQ0KK+iUoeeOsua0pQ0KK+iUoee+juiKnQ0KK+iUoemDgeWQmw0KK+iUoeWon+Wonw0KK+iUoeaCheeOnw0KK+iUoeePruaAoQ0KK+iUoeWBieadsA0KK+iUoeWfueitrw0KK+iUoea3u+aWhw0KK+iUoea3keeOsg0KK+iUoea3keiWhw0KK+iUoeWLnembhA0KK+iUoeWvjOiytA0KK+iUoeaDoOeHlQ0KK+iUoeaZuuaakA0KK+iUoeiIkuWuhw0KK+iUoemAuOePig0KK+iUoembheiKrA0KK+iUoembheiPgQ0KK+iUoeWCs+W+tw0KK+iUoeeRnuaWhw0KK+iUoeijleWBpQ0KK+iUoeWYieaBhg0KK+iUoeamruaYjA0KK+iUoeeip+WuuQ0KK+iUoeijtOS8tg0KK+iUoemKmOizog0KK+iUoeaFp+awkQ0KK+iUoeizoueahw0KK+iUoeabieeEtg0KK+iUoee/sOeGig0KK+iUoemdnOWunA0KK+iUoem0u+awkQ0KK+iUoeixkOaWhw0KK+iUoem1keW9jA0KK+iUoem6l+aDoA0KK+iUoemmqOWEgA0KK+iUoeaXu+aGsg0KK+iUoeeRi+erkQ0KK+mEreS4gOWHoQ0KK+mEreWKm+S7gQ0KK+mEreWtkOimiw0KK+mEreS7geWvjA0KK+mEreW/g+Wmgg0KK+mEreaWh+WvjA0KK+mEreS4luaYjA0KK+mEreW3p+mdkg0KK+mEreeOieS8tg0KK+mEreeri+S6qw0KK+mEreS7suWujw0KK+mEreWFiea3sw0KK+mEreWQj+WtnA0KK+mEreWmguasow0KK+mEreWuh+a3qA0KK+mEreaIkOajoA0KK+mEreeZvuWptw0KK+mEreS8r+WNlw0KK+mEreW/l+WKnw0KK+mEreengOWonw0KK+mEreiyneWmgg0KK+mEreS9s+WEgA0KK+mEreWtn+eOsg0KK+mEreaAoeWQmw0KK+mEreaYjuW/oA0KK+mEreaso+amrg0KK+mEreS/iuWujw0KK+mEreW9pemBlA0KK+mEree+jueOiQ0KK+mErei/quWFgQ0KK+mEreaMr+WunA0KK+mEreelkOmYoQ0KK+mEreWBieePig0KK+mEreWfueiBsA0KK+mEreaiheWQmw0KK+mErea3keexsw0KK+mErea3keeHlQ0KK+mEreiOiembrw0KK+mEreWHseaWhw0KK+mEreWLneaXrQ0KK+mEreWWrOmKmA0KK+mEreaDoOaWhw0KK+mEreaDoOmcnA0KK+mEreaZr+aWhw0KK+mEreaZuuWFgw0KK+mEreacneeHnw0KK+mEreeak+S6kQ0KK+mEree/lOm+jQ0KK+mEreiplOismQ0KK+mErembheWPiw0KK+mErembheiKrA0KK+mErembheeUhA0KK+mEreaEj+S4rQ0KK+mEreeRnOeQsw0KK+mEreijleW5tA0KK+mEreWYieaPmg0KK+mEreiCh+W/gw0KK+mEreaFtuWTsg0KK+mEreiUmuifrA0KK+mEreabieiWhw0KK+mEremdnOiKsw0KK+mErem0u+a6kA0KK+mEreeNu+aWhw0KK+mEreWftQ0KK+mEremdiw0KK+mEp+awuOW/oA0KK+mEp+aXreaVpg0KK+mEp+aYjuiKsw0KK+mEp+aMr+iLsQ0KK+mEp+WNmuS7gQ0KK+mEp+e/lOS7gQ0KK+mEp+emj+mahg0KK+mEp+WKpuWRiA0KK+m7juS4luW7iQ0KK+m7juS/kOWdhw0KK+m7jumKmOS7gQ0KK+ebp+S7geadsA0KK+ebp+W8mOa1tw0KK+ebp+WQieWLhw0KK+ebp+iCsuiBlg0KK+ebp+WumuWdhw0KK+ebp+aAoea2tQ0KK+ebp+mbqOa2tQ0KK+ebp+S/iuWEkg0KK+ebp+Wogemclg0KK+ebp+aAnea6kA0KK+ebp+e+juWmgg0KK+ebp+WutumIug0KK+ebp+a3kem6lw0KK+ebp+aEt+iOiQ0KK+ebp+aFp+WunA0KK+ebp+m+jeeUnw0KK+ebp+etseeRqQ0KK+iVreWwueiyng0KK+iVreaWh+ethg0KK+iVreS7peS6rg0KK+iVreeOieiyng0KK+iVreWFhueQsw0KK+iVreWmguePig0KK+iVreacieWujw0KK+iVreWuj+ijlQ0KK+iVreiCsumahg0KK+iVreWto+iWhw0KK+iVreaYhuW7tw0KK+iVremdkuiQjQ0KK+iVree+juWonw0KK+iVreaMr+WuiQ0KK+iVreWci+atow0KK+iVrea4heeHlQ0KK+iVrembquWQnw0KK+iVreWNmuS7sA0KK+iVreaDoOiKsw0KK+iVreaZuuaihQ0KK+iVreipoOaWuQ0KK+iVrembheaWhw0KK+iVreaEm+eOsg0KK+iVreipqeeShw0KK+iVree2reWAqQ0KK+iVreaFp+aAoQ0KK+iVremdnOWunA0KK+iVrem2tOi7kg0KK+iztOS5g+mgjA0KK+iztOWkqem0uw0KK+iztOS4lue2rQ0KK+iztOato+mHjg0KK+iztOeOiemcnA0KK+iztOaXreW9pQ0KK+iztOW7t+emuQ0KK+iztOW/l+e2sQ0KK+iztOiCsuW7tw0KK+iztOS9s+asow0KK+iztOWtn+iPrw0KK+iztOWxheatow0KK+iztOaAoeWQmw0KK+iztOaYjuWujw0KK+iztOaso+WunA0KK+iztOiKs+W7tg0KK+iztOS/oeiqoA0KK+iztOS/iumBlA0KK+iztOWLh+W/lw0KK+iztOWogeWdhw0KK+iztOW7uuS9kQ0KK+iztOW9peS9kA0KK+iztOaAnemclg0KK+iztOaYrem+jQ0KK+iztOafj+m+jQ0KK+iztOe0hemcng0KK+iztOiMguW7tw0KK+iztOmDgembrw0KK+iztOa1qeixkA0KK+iztOWci+aBqQ0KK+iztOa3keaAoQ0KK+iztOiOiembrw0KK+iztOiytOe+qQ0KK+iztOmghuaMrw0KK+iztOiRpuW4hg0KK+iztOamrueSiQ0KK+iztOaFtumKmA0KK+iztOmLkg0KK+iztOmMpuWEhA0KK+iztOm6lw0KK+iztOafiuajiw0KK+mBsuWwmuasig0KK+mMouaso+WunA0KK+mMouW+t+S/ig0KK+mcjeiOmOeRnA0KK+mnseiKs+aipw0KK+mnseWYieaFtg0KK+m+jeaYn+WFhg0KK+aItOS5meiPgQ0KK+aItOaWh+mbhA0KK+aItOWFqOWIqQ0KK+aItOWuj+S4ng0KK+aItOS9s+W5sw0KK+aItOaYjuePoA0KK+aItOaMr+mBoA0KK+aItOiOiQ0KK+aItOWCs+Wutg0KK+aItOWYieWujw0KK+aItOizouelpQ0KK+aItOiWj+ePig0KK+iWm+S4ueahgg0KK+iWm+WFieeoiw0KK+iWm+S+neiSqA0KK+iWm+Wllem+jQ0KK+iWm+WBieS8rw0KK+iWm+aZr+aWhw0KK+iWm+eRnuePjQ0KK+iWm+WEkumcmQ0KK+isneS6juaruw0KK+isneW/g+mbhQ0KK+isneaWh+eRnA0KK+isneW8mOS6rg0KK+isneeOieePoA0KK+isneWmgum0uw0KK+isneS9kOWunA0KK+isneWuj+W/oA0KK+isneW/l+aYjg0KK+isneaJtumMpg0KK+isneiCsuWonw0KK+isneS+neWAqw0KK+isneS9s+WAqQ0KK+isneS9s+epjg0KK+isneS9qeiKsw0KK+isneS9qeecnw0KK+isneWRqOeGvg0KK+isneWtn+iKuA0KK+isneWtn+iKqQ0KK+isneWul+izog0KK+isneWunOiKsw0KK+isneWunOiHuw0KK+isneWwmuWEkg0KK+isneaAoeWptw0KK+isneaYk+mclg0KK+isneaYjuWujw0KK+isneaYjuWAqw0KK+isneaYjuaGsg0KK+isneaYh+WTsg0KK+isneadvuaGsg0KK+isneaso+mHlw0KK+isneenieirug0KK+isnemVt+WOnw0KK+isneS/iuWujw0KK+isneW9peWQjw0KK+isneafj+iInw0KK+isnee+jueOsg0KK+isneWutuiPsQ0KK+isnee0oOiPsQ0KK+isneWci+W9rA0KK+isneaik+m6nw0KK+isnea3keWonw0KK+isneWHseWBiQ0KK+isneW1kOWxjw0KK+isneaZr+S7gQ0KK+isneeak+aZug0KK+isnembhembqg0KK+isnemghumahg0KK+isneiQrOm+jQ0KK+isneWYiemKmA0KK+isnee/oOeSsA0KK+isnemzs+eOsg0KK+isneaFp+eTig0KK+isneeHleeOsg0KK+isnemdnOWunA0KK+isnem0u+mnvw0KK+isneeTiuaWhw0KK+isnemhr+mKmA0KK+isneeFkumguw0KK+mNvuWFg+aMrw0KK+mNvuaciOWckw0KK+mNvuWFhuawkQ0KK+mNvuWtneWFtg0KK+mNvuengOiKsw0KK+mNvuS9s+epjg0KK+mNvuWNk+WEkg0KK+mNvuWunOiIiA0KK+mNvuaJv+eSiw0KK+mNvuaYjuaGsg0KK+mNvuenieirug0KK+mNvuaUv+awkQ0KK+mNvue+jueQsw0KK+mNvuWVhumnvw0KK+mNvua3keiQjQ0KK+mNvuaZuuWCkQ0KK+mNvumbsuWFiQ0KK+mNvuemjuWFgw0KK+mNvuaoguWQnw0KK+mNvuiWsOWrug0KK+meoOWyseeQpg0KK+mfk+S9qeWKrQ0KK+mfk+ebuOWunA0KK+mfk+WYiemnvw0KK+ewoeWjq+ebig0KK+ewoeaWh+S6qA0KK+ewoeW3p+Wptw0KK+ewoeeri+S6ug0KK+ewoeWuh+Wxjw0KK+ewoeS8tuWonw0KK+ewoeWuj+WAqw0KK+ewoeW/l+mbhA0KK+ewoeengOe0lA0KK+ewoeS9qeeQqg0KK+ewoeaYjumbgQ0KK+ewoeaYreiQuA0KK+ewoeWutuaWsA0KK+ewoeWci+aWjA0KK+ewoea3keWptw0KK+ewoeajruS5mQ0KK+ewoemghueriw0KK+ewoeeRnuajuw0KK+ewoeWYieWujw0KK+ewoeemjuS9kQ0KK+ewoemKmOi+sA0KK+ewoeaGtuWmgg0KK+ewoempqua9lA0KK+iBtuadseWNlw0KK+iXjeWFg+eakw0KK+iXjeS7suWBiQ0KK+iXjeaYpeeZvA0KK+iXjeWci+iPrw0KK+iXjembhem9oQ0KK+iXjem7m+eRqQ0KK+mXlemAouavhQ0KK+mhj+Wkp+emjw0KK+mhj+W8mOelpQ0KK+mhj+WmgueOiQ0KK+mhj+WRiOaXrQ0KK+mhj+Wuj+WPoQ0KK+mhj+W/l+m6nw0KK+mhj+Wul+W5sw0KK+mhj+WlleS7gQ0KK+mhj+Wutuelug0KK+mhj+WwieWHsQ0KK+mhj+iPr+aIkA0KK+mhj+eRnuaWhw0KK+mhj+WYieaIkA0KK+mhj+emj+mghg0KK+mhj+a+pOWuhw0KK+mhj+mIuuiKuA0KK+mtj+S7geWogQ0KK+mtj+S7u+W7tw0KK+mtj+eZvuebmw0KK+mtj+WtneWvrA0KK+mtj+engOaBrA0KK+mtj+aYjueroA0KK+mtj+iLsemOrg0KK+mtj+W0h+ahkw0KK+mtj+acneS/oQ0KK+mtj+etoOaWhw0KK+mtj+WrpuWmnQ0KK+mtj+aFleW4hg0KK+mtj+eRhOiqvA0KK+e+heWtkOi7kg0KK+e+heWFg+eUqw0KK+e+heW/g+Wxjw0KK+e+heaciOWHsA0KK+e+heW3p+iOiQ0KK+e+heeOieiQjQ0KK+e+heWFhue2rQ0KK+e+heWuj+S4gA0KK+e+heS6nuWvpw0KK+e+heaAoeaDoA0KK+e+heiKt+mdkg0KK+e+hee+juiTrg0KK+e+heaMr+W7tw0KK+e+hee0oOiKsQ0KK+e+heWci+iPrw0KK+e+heW8tw0KK+e+hea3h+aWhw0KK+e+heWCkQ0KK+e+heaDoOiYrQ0KK+e+heiPr+a/gw0KK+e+hembr+eQtA0KK+e+heiBlueQsw0KK+e+hemam+W3nQ0KK+e+heabieWogQ0KK+e+hemmqOWunA0KK+itmuWFieiPrw0KK+itmuirpg0KK+mXnOa3kembsg0KK+WatOWPr+WQmw0KK+WatOWpieeOsg0KK+WatOe2reW+tw0KK+iXuuW/g+aAoQ0KK+iYh+WtkOe/lA0KK+iYh+aWh+Wonw0KK+iYh+W3p+Wvpw0KK+iYh+eOieS/rg0KK+iYh+erueWuiQ0KK+iYh+W/l+WghQ0KK+iYh+iCsuW8mA0KK+iYh+S9s+i2sw0KK+iYh+aAoeWmgg0KK+iYh+aAoemmqA0KK+iYh+atpum+jQ0KK+iYh+mdkuWmmQ0KK+iYh+S/iumKmA0KK+iYh+WlleWCkQ0KK+iYh+W7uuW/lw0KK+iYh+aBhuiHsw0KK+iYh+afj+W3ng0KK+iYh+eah+WOnw0KK+iYh+e+jueOsg0KK+iYh+iynueHlQ0KK+iYh+WAieawuA0KK+iYh+WutuS/oQ0KK+iYh+W6reeRpA0KK+iYh+ebiuelvw0KK+iYh+i7kuawkQ0KK+iYh+Wgguixqg0KK+iYh+a4heWuiQ0KK+iYh+WNmueOhA0KK+iYh+a5mOaAoQ0KK+iYh+mbheWQmw0KK+iYh+mghuiqoA0KK+iYh+eMt+e/lA0KK+iYh+iBlua2tQ0KK+iYh+mdluW1kA0KK+iYh+iBnuisuQ0KK+iYh+aFp+Wonw0KK+iYh+abieiKgw0KK+iYh+iBsuaMrw0KK+iYh+aXu+WQmw0KK+iYh+eRi+eQsw0KK+mQmOWjq+asvQ0KK+mQmOS9s+e1uQ0KK+mQmOaVj+aEqw0KK+mQmOeip+iYrQ0KK+mlkuS6rg0KK+m7qOS4gOeCug0KK+mhp+WAqeWmgg0KK+m+lOS6juePig0KK+m+lOS9qeWQmw0KK+m+lOabuOiBlg0KK+m+lOmdluipkg0KK+S9mOWwmum0uw0KK+a2guS4luWSjA0KK+a2guaUv+eUtw0KK+a2guWvjOaYnw0KK+a2guaFp+ePjQ0KK+eymOiCsueRiw0KK+mElOW/g+aAoQ0KK+askuWto+W8tw0KK+6AgOmKmOa6kA0KK+OCouOCreODouODiCzjg6TjgrnjgqoNCivjgqLjgqTjgqvjg68s44OO44Oq44KqDQor44Ki44Kr44OE44KrLOOCq+OCuuODkuOCsw0KK+OCouODr+OCuizjgqLjgq3jg6kNCivjgqLjgrXjg44s44Oo44K344OkDQor44Ki44Op44KtLOODqOOCt+OCq+OCug0KK+OCpOODjuOCpuOCqCzjg5Ljg63jg5Ljg4gNCivjgqvjg4jjgqYs44Oe44K144OI44K3DQor44OK44Kr44Og44OpLOOCseOCpOOCvuOCpg0KK+ODleOCuOODr+ODqSzjgr/jgqvjgrMNCivjg6Tjg4rjgq7jg4/jg6ks44Of44OJ44OqDQor44Kr44Ov44OALOODiuOCquOCsw0KK+OCpOOCt+ODjizjgq3jg6jjg4rjgqwNCivjgrTjg4jjgqYs44Kr44OE44OO44OqDQor44Kk44K344K444OeLOODquODp+OCpuODmOOCpA0KK+OCouODiOOCpizjg57jgrXjg47jg6oNCivjg5/jgrfjg54s44K/44Kr44Om44KtDQor44Of44Oo44K3LOODjuODluODnuOCtQ0KK+OCv+ODgeODjizjgrjjg6Xjg7MNCivjgqrjgqrjg44s44Kr44K644KqDQor44Kt44K/44Ks44OvLOODqOOCt+OCv+OCqw0KK+ODleODq+OCteODryzjgrXjg4jjgrcNCivjgqrjgqrjg4/jgrcs44OS44OI44K3DQor44Oo44K344Kr44OvLOODiOOCt+ODpuOCrQ0KK+OCq+ODr+OCpCzjg4jjgrfjgqoNCivjgqTjgrfjg4gs44Kz44Km44KtDQor44Kk44Oe44KkLOOCv+OCq+ODpuOCrQ0KK+ODpOODnuODiuOCqyzjgrXjg4Tjg58NCivjg5vjg6rjgqvjg68s44Kr44OE44OfDQor44K544K644KtLOOCt+ODpeODs+OCuA0KK+OCouODr+OCqCzjgqLjg4TjgrcNCivjg4rjgqzjgrss44K/44Kr44OS44OtDQor44Kz44OQ44Ok44K3LOOCuOODpeODs+OCpOODgQ0KK+ODnuOCqOODgCzjg5Ljg63jgrcNCivjgqvjg4jjgqYs44Oe44K144Kr44K6DQor44K544Of44K/LOOCq+OCquODqw0KK+OCu+OCreOCsOODgSzjgr/jgqvjg6bjgq0NCivjgr/jg4rjgqss44OG44Or44OS44K1DQor44OS44Op44OOLOOCv+OCq+OCtw0KK+ODj+ODnuOCsOODgSzjgrfjg7PjgrgNCivjgrXjgqvjgqzjg58s44OO44Oq44Kr44K6DQor44Kz44OQ44Ok44K3LOODpOOCueOCtw0KK+OCv+OCreODouODiCzjg47jg6rjgrMNCivjg5vjgrcs44OS44Ot44OV44OfDQor44Kq44Kq44K/44KrLOODpuOCpuOCsw0KK+OCueOCruODoOODqSzjgrfjgrLjgqoNCivjgqLjgqrjgq0s44Oe44K144OrDQor44OK44Kr44OP44OpLOODpuOCpuOCvuOCpg0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjg57jgqjjgrXjgqss44OI44Oi44Of44OEDQor44OV44K444K/44OLLOOCq+OCuuODkuOCsw0KK+ODm+ODg+OCvyzjgrfjgrLjg5Ljg4gNCivjgqLjgq3jg6Tjg54s44Om44K/44KrDQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+ODiOODqOODiuOCrCzjg6Tjgrnjg5Ljg60NCivjg4/jg4Pjg4jjg6os44Oe44K144KqDQor44OO44Og44OpLOOCt+OCsuOCqg0KK+OCq+ODr+OCt+ODnizjgr/jgqvjgrMNCivjg6Djg63jg6Qs44OG44OE44KqDQor44Ki44K344Kr44OvLOODpOOCueOCt+OCsg0KK+ODj+ODpOOCtyzjgr/jgqvjgqoNCivjg5/jg6Tjgqzjg68s44OV44Of44OO44OqDQor44Kq44Kw44OpLOODpOOCueODkuODrQ0KK+ODqOOCt+ODgCzjg4jjgrfjg5LjgrMNCivjgq/jg4njgqYs44OS44Ot44K3DQor44Kv44Oe44Ks44KkLOOCv+OCq+ODpuOCrQ0KK+ODi+OCt+OCqizjg5Ljg4fjgq0NCivjgqrjgqrjgqTjg6Tjg54s44OO44Oc44OrDQor44K/44Kx44K/44OLLOODleODiOOCtw0KK+OCpOOCt+ODgCzjgqvjg4Tjg6QNCivjgqrjgqTjgqvjg68s44OO44OW44Ki44KtDQor44K/44Kr44OP44K3LOOCu+OCpOOCuA0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjgrnjgrrjgq0s44K544K544OgDQor44OP44Ok44K3LOOCt+ODs+ODgeODp+OCpg0KK+OCr+ODreOCq+ODryzjg57jgrXjgqLjgq0NCivjg6Tjgrjjg54s44OI44Kq44OrDQor44Kr44OE44Op44KkLOODr+OCv+ODqw0KK+OCouOCq+ODqizjg6rjg6fjgqbjgrgNCivjgqLjgrrjg54s44OO44OW44Om44KtDQor44Ki44OE44OfLOOCt+ODpeOCpuOCuA0KK+ODnuODq+OCqizjg6jjgrfjg6bjgq0NCivjgqTjgrHjgqos44Of44OO44OrDQor44OI44Oq44Ok44OeLOODquODhOOCqg0KK+ODj+ODnuODjizjg6jjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Kz44Km44K/44Ot44KmDQor44Kz44Km44OBLOODpuOCpuOCueOCsQ0KK+ODiuOCq+OCuOODnizjg47jg6rjg5LjgrMNCivjgqLjg6ks44OS44Ot44K3DQor44Ob44K944Kr44OvLOODnuOCteODkuODrQ0KK+OCpOOCuuODnyzjgqvjg43jg5/jg4QNCivjgqLjg6/jgrgs44Ki44OE44KqDQor44Of44K644OS44KtLOODqOOCt+OCqg0KK+OCquODgOOCuOODnizjg4rjg5vjg58NCivjg5Xjg6vjgqvjg68s44K344Ky44KqDQor44Of44K644Kw44OBLOOCuOODreOCpg0KK+OCpOODiOOCpizjg5Ljg63jgrcNCivjg5Xjgq/jgqQs44K144OI44K3DQor44OV44K444OP44OpLOOCv+OCseODkuODiA0KK+ODpOODjizjg6bjgqbjgrgNCivjg4/jg6TjgrfjgrDjg4Es44OS44Ot44K3DQor44Ob44OqLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+OCpCzjgr/jgqvjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44OP44K/LOOCs+OCpuOCpOODgQ0KK+OCs+ODkOODqizjg5Ljg4fjg6bjgq0NCivjgqrjg4Djgrfjg54s44Kr44OE44Ot44KmDQor44Km44Ko44Ok44OeLOODn+ODhOODiuODqg0KK+ODoOOCvyzjg57jg4rjg5YNCivjgr/jg4rjgqss44K344Ky44KqDQor44Kz44Oz44OOLOODpuOCpuOCsw0KK+ODleOCuOODr+ODqSzjg4jjgrfjg4/jg6sNCivjg5/jg6Tjgq0s44Om44K/44KrDQor44OP44OK44OvLOODnuOCteODkuODrQ0KK+ODhuOCuOODnizjgqLjgq3jg6kNCivjgq/jg5ws44Ki44OE44K3DQor44Kq44Kq44OQLOOCt+ODs+OCtA0KK+OCs+ODs+ODjizjgr/jgq/jg6QNCivjg57jg4Tjg5Djg6ks44OS44OH44KqDQor44OP44K344Oi44OILOOCueODn+OCsw0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5Ljg60NCivjgrPjgr/jgq0s44OG44OE44OkDQor44OV44Kr44OkLOODouODouOCrQ0KK+ODnuODhOOCpuODqSzjg4bjg4Pjg5rjgqQNCivjg5Xjg4rjg4As44Kr44K644OS44KzDQor44OS44Ks44K344OALOODiOOCt+ODpuOCrQ0KK+OCpOODjuODnuOCvyzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44OS44Ot44OfDQor44Kk44OI44KmLOOCv+ODhOOCtw0KK+ODn+OCv+ODoOODqSzjg57jg6bjg58NCivjgrnjgqzjg4/jg6ks44Of44OE44OrDQor44K/44Kr44Of44OkLOODkuODh+ODjuODlg0KK+ODpOODnuOCsOODgSzjgrPjgrnjgrENCivjgqrjgr8s44OE44Oo44K3DQor44K744OO44KqLOODj+OCuOODoQ0KK+OCt+ODkOOCtuOCrSzjgqLjg4TjgrcNCivjg4rjgqvjg6Djg6ks44Ok44K544OS44OtDQor44OV44K444Kr44OvLOODkuODreODpuOCrQ0KK+OCouODqeOCpCzjg6rjg6XjgqbjgrgNCivjgqrjgqrjgq/jg6ks44OS44K144OO44OqDQor44Oe44OE44OQLOOCt+OCsuODqw0KK+OCv+ODoeODkuODrSzjg6Ljg4jjgrMNCivjg57jg7Pjg50s44Kr44OE44OfDQor44Kz44Kw44OBLOOCv+OCq+OCtw0KK+OCv+ODi+OCsOODgSzjg4rjgqrjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K/44Kr44OS44OtDQor44OS44Op44Oi44OILOODkuODh+OCouOCrQ0KK+OCouODs+ODqeOCryzjgr/jgqvjgrcNCivjgr/jg4rjgqss44OO44Oq44KzDQor44OB44Oj44KtLOOCt+OCsuODkuODhw0KK+OCteOCq+OCpCzjg4Hjg4/jg6sNCivjgqTjg4rjgqrjgqss44OS44Ot44Kr44K6DQor44Km44K344K444OeLOOCt+ODs+OCpOODgQ0KK+OCs+OCseODhCzjgqLjgq3jg5LjgrUNCivjg6Djg6njgr8s44OS44OI44K3DQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+OCt+ODs+OCv+ODiyzjg6rjg6XjgqbjgrgNCivjgqrjgqrjg4/jgr8s44OO44OW44Ki44KtDQor44K/44OW44OBLOODpuOCv+OCqw0KK+OCueODn+ODgCzjgq3jg6jjgrcNCivjg5/jgqbjg6ks44OK44OK44KzDQor44Oq44Ol44Km44OILOODkuODreODnw0KK+OCpOOCseODgCzjg5Ljg63jg4rjg6oNCivjgr/jgqvjg6Tjg4rjgq4s44OS44Ot44OV44OfDQor44Ko44Oz44OJLOOCseODs+OCpOODgQ0KK+OCquOCt+OCq+ODryzjgrfjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44OS44OH44Om44KtDQor44Ok44Oe44OALOOCpOODr+OCqg0KK+OCquODgCzjg57jgrXjgqoNCivjgr/jgq3jgrbjg68s44Ki44OE44K3DQor44Oi44OqLOODpOOCueODjuODqg0KK+OCq+ODiuOCtuODryzjgr/jg4Tjg6bjgq0NCivjgqrjgqrjgr8s44K/44Kr44Ki44KtDQor44Kq44Kq44OELOODhuODhOODreOCpg0KK+ODleOCuOODouODiCzjgqvjgrrjg5Ljg60NCivjg6Ljg6rjgqvjg68s44Oe44K144OO44OWDQor44Kk44OI44KmLOOCs+OCpuOCuA0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgqbjgqjjg44s44Oo44K344OS44KzDQor44Kq44Kq44Kr44OvLOOCteOCq+OCqA0KK+ODnuODq+OCpCzjgrjjg6Xjg7PjgrMNCivjgqTjg6/jgqos44K344Ol44Km44K4DQor44Km44Oh44OALOOCq+OCuuODpA0KK+ODoeOCq+OCvyzjg57jgrXjg6sNCivjg4Tjgrgs44OE44Kw44OS44KzDQor44K/44K0LOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg57jgrXjg4gNCivjgrnjgq7jg6Tjg54s44OS44Ot44Om44KtDQor44OV44K/44OQLOODiOOCt+OCouOCrQ0KK+ODn+ODpOODkuODqSzjg5/jg4HjgqLjgq0NCivjg4vjgrfjgrbjgq0s44K544K544OgDQor44K/44OK44KrLOOCr+ODi+OCsw0KK+ODoOODqeODouODiCzjg4jjg6LjgqLjgq0NCivjg57jgqjjg4As44OS44K144Kr44K6DQor44Of44Ok44KxLOOCouODhOOCtw0KK+ODiOOCpuOCuOODnizjgr/jg4Tjg5Ljg60NCivjgqrjgqrjg6Qs44Oe44K144OrDQor44Km44Ko44OOLOODiOODouODkuODrQ0KK+OCv+OCq+OCteOCrSzjg6Tjgrnjg5LjgrUNCivjgrPjg7Pjg44s44Oo44K344OS44K1DQor44K/44Kx44KqLOODjuODquOCq+OCug0KK+OCq+ODiuODpOODnizjg6Tjgrnjg5LjgrMNCivjgqrjgqrjgqrjgqss44OI44K344Ot44KmDQor44Kz44OQ44Ok44K3LOOCt+ODpeOCpg0KK+ODi+OCt+OCtuOCqyzjg5/jgqsNCivjg57jgrnjg5/jg4As44OI44Oi44OS44KzDQor44OE44Oc44KkLOODpOOCueOCqg0KK+OCv+OCrOODnyzjg57jgrXjg6sNCivjgqrjgqvjg4As44OG44Or44KqDQor44Kr44K/44Ku44OqLOOCteODiOOCtw0KK+OCq+ODr+ODhizjgr/jgqvjgrcNCivjg5/jgrrjgqQs44Ki44Ok44KqDQor44Kr44K144Kq44KrLOODiOOCt+ODkuOCsw0KK+ODkuOCrOOCt+OCv+ODiyzjg5Ljg4fjg5Xjg58NCivjgqbjgrfjgq0s44Kr44K644Kk44OBDQor44OS44Op44K144OvLOODiuOCrOOCsw0KK+ODiuODquOCvyzjgrfjg6XjgqbjgqTjg4ENCivjgrPjg4Djg54s44Kr44K644OS44OtDQor44Kk44OO44Oe44K/LOODkuODreODnw0KK+OCreODoOODqSzjgrfjg6fjgqbjgrQNCivjgqTjg4jjgqYs44OV44Of44KqDQor44Ov44K/44OK44OZLOODhuODq+OCouOCrQ0KK+ODhuODqeOCteODryzjg5/jg4TjgqoNCivjg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Ki44K144Kv44OpLOOCt+ODs+ODpA0KK+ODpOODnuOCrSzjgrPjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44K344Oz44Kk44OB44Ot44KmDQor44Ko44OO44Oi44OILOODkuODreODn+ODgQ0KK+OCq+ODnuOCvyzjgr/jgqvjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44OK44Kq44KtDQor44Ki44Op44KkLOODqOOCt+ODnw0KK+OCq+ODquODpCzjgr/jgqvjg5LjgrMNCivjgrPjg7Pjg4ks44Oo44K344KtDQor44Oe44K544OALOODkuODreOCqg0KK+OCpOODiOOCpizjgrHjgqTjgrnjgrENCivjgqrjgqss44Of44OB44OP44OrDQor44Kq44Kq44OE44KrLOODkuODh+OCrQ0KK+ODnuODhOOCqizjgrPjgqbjgrgNCivjgqLjgr0s44OG44Or44Kr44K6DQor44Kr44Of44Og44OpLOODkuODreODpuOCrQ0KK+OCv+OCq+ODkOOCv+OCsSzjgrfjgrLjg47jg6oNCivjg5Xjgq/jg4As44OS44Ot44Om44KtDQor44K/44Kr44OP44K3LOOCseODs+ODiA0KK+OCpOODr+OCrSzjg57jgrPjg4gNCivjgrnjg7Ms44OI44Oo44Om44KtDQor44Ki44Oz44OJ44KmLOODqOOCt+OCqg0KK+ODj+OCt+ODouODiCzjgqvjg4oNCivjg6Tjg4/jgr8s44OS44OH44KqDQor44OV44K444KtLOOCseODs+OCuA0KK+ODnuODhOOCqizjgrXjg4jjgrcNCivjgqLjgqrjgq0s44Oo44Km44Kk44OB44Ot44KmDQor44K044OI44KmLOOCt+ODs+OCuA0KK+ODi+OCt+OCq+ODryzjg5Ljg4jjgrcNCivjgrnjg5/jg4gs44Oe44K144OV44OfDQor44OS44Op44OOLOOCs+OCpuOCuA0KK+OCpOODiOOCpizjgrHjgqQNCivjgrPjgqTjgrrjg58s44OO44Oq44KzDQor44Kr44Ov44OQ44K/LOODjuOCvuODnw0KK+ODoOODiOOCpizjgqvjg4Tjg47jg6oNCivjgqLjg4Djg4Es44Oe44K144K3DQor44Kt44OpLOODnuOCteOCtw0KK+OCouODpOODjizjgrPjgqbjgq0NCivjgr/jg6vjgqQs44Oo44K344KqDQor44OP44Ok44K3LOOCreODp+OCpuOCsw0KK+OCpOOCseODgCzjgrjjg6Xjg7MNCivjg5vjg6rjg5/jgr4s44Kx44Kk44K544KxDQor44OV44Or44OK44KsLOODj+ODq+ODkuOCsw0KK+OCquOCt+ODnizjg4rjgrnjgqoNCivjg4/jg6Tjgrcs44OS44OI44K3DQor44OL44K3LOODpuOCreODn+ODhA0KK+OCs+ODoOODrSzjgqvjg4rjg6ENCivjg5Ljg63jgr/jg4ss44Oo44K344KqDQor44K544KsLOODkuODreOCtw0KK+ODhOODq+ODnyzjgqLjgq3jg5LjgrUNCivjg4jjg5/jg6Tjg54s44Kr44K644Of44OEDQor44Ok44Oe44K244KtLOODqOOCpuOCsw0KK+OCpOOCt+ODgCzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqbjg4Hjg4jjg58s44Ki44Kt44OpDQor44Kq44Kq44K144OvLOODqOOCt+OCq+OCug0KK+ODpOODiuOCrizjg5Ljg4fjg5Ljg60NCivjg5/jg6Tjgrfjgr8s44OS44OH44KtDQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+ODiOOCrOODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjg6Djg6ks44K344Ky44OrDQor44Km44Ko44Og44OpLOOCv+OCseOCtw0KK+OCouOCteODjizjg6bjgqbjgqTjg4ENCivjgqrjgqrjg6Tjg54s44Kx44Oz44K4DQor44Kr44Ov44OOLOOCqOOCpOOCsw0KK+ODkOODkCzjg5Ljg4jjgrcNCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Km44Ko44OOLOODjuODluODpuOCrQ0KK+OCt+ODqeOCpCzjgrHjg7Pjgrfjg7MNCivjgqTjgqvjg58s44OP44Or44KqDQor44Kr44Ov44K344OeLOODiOODouODpuOCrQ0KK+ODn+ODpOOCsSzjgr/jgqvjg5Ljg60NCivjgrXjgq/jg6njgqQs44Kx44Oz44K4DQor44K/44Kx44OO44K344K/LOOCt+ODpeOCpuODmOOCpA0KK+ODi+OCt+OCquOCqyzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgq/jg63jgq0s44Oe44K144Oo44K3DQor44K/44OK44KrLOODn+ODjuODqw0KK+OCpOOCpOOCuOODnizjgr/jgqvjgrcNCivjgrXjg4jjgqYs44OS44Ot44Ki44KtDQor44K144Kv44Op44KkLOOCq+OCuuOCt+OCsg0KK+ODpOODiuOCruOCteODryzjg47jg5bjgqoNCivjgqbjg4Hjg6Tjg54s44K344Ky44Oo44K3DQor44Kq44Kv44OELOOCq+OCuuODiOOCtw0KK+ODi+OCt+ODpOODnizjgrvjgqTjgrgNCivjgr/jgrHjg4As44K/44Kr44KzDQor44OV44Oq44OP44OpLOOCq+OCuuOCqg0KK+ODpOODluOCrSzjg57jgrXjg5Ljg60NCivjg4rjgqss44Kr44K644OS44OtDQor44Oo44K344Kq44KrLOOCq+OCuuODpA0KK+ODouODgeOCuuOCrSzjgr/jgqvjg6bjgq0NCivjgrnjgq7jg6Tjg54s44OS44OH44OS44OtDQor44Kk44Ov44OK44KsLOOCseOCpOOCpOODgQ0KK+ODn+ODryzjg4/jg6vjgqvjgroNCivjg5vjg6rjgqvjg68s44Kr44OE44KtDQor44K/44Kr44OALOOCs+OCpuOCuA0KK+OCpOOCt+ODnuODqyzjgrfjgrLjg6TjgrkNCivjgqrjg6Djg6ks44OS44OH44KqDQor44Kt44K/44Og44OpLOODquOCqw0KK+OCueOCruOCrSzjgr/jgqvjgq0NCivjg4vjgrfjg6Djg6ks44OB44Ko44KzDQor44OK44Kr44OP44OpLOOCs+OCpuOCpOODgQ0KK+ODnuODhOODouODiCzjgqLjgq3jg6kNCivjg5Xjgq/jgrfjg54s44Oe44K144OrDQor44Kr44K444Kq44KrLOOCouOCreODkuODiA0KK+ODiuOCq+OCtuODryzjg47jg5zjg6sNCivjg57jgrnjgrbjgq0s44K/44Kr44K3DQor44OK44KrLOODiOOCt+OCv+OCqw0KK+OCquOCteODgCzjg4/jgrjjg6ENCivjgqvjg6/jgr8s44OK44Kq44OfDQor44Oo44K344OALOOCs+OCpuOCuA0KK+ODiuOCqyzjg4jjgrfjg5Ljg60NCivjgqjjgqTjg4njg6Es44OS44OH44Kr44K6DQor44Oe44OE44Oi44OILOODqOOCt+ODnuOCtQ0KK+ODiuOCrOOCteOCqyzjg6jjgrfjgqLjgq0NCivjg5XjgrjjgrXjg68s44Kr44OE44OS44KzDQor44Kt44Oo44K/44OLLOODhOODiOODoA0KK+OCouODquODouODiCzjgrvjgqTjgrMNCivjgqjjgr7jgqgs44Kx44Kk44Kk44OBDQor44OE44OB44OkLOOCq+OCuuODpA0KK+ODleOCuOOCquOCqyzjg6TjgrnjgrMNCivjg4Tjgqvjg6Ljg4gs44OV44Of44KqDQor44K/44Kr44OP44K3LOODiOODqOODkuOCsw0KK+OCteOCq+OCpOODgCzjg6Tjgrnjg5Ljg60NCivjgrnjgrrjgq0s44Kz44Km44K4DQor44Kq44K344OeLOODpOOCueODiOOCtw0KK+ODnuOCreOCpuODgSzjgr/jgq/jg6QNCivjg4/jg6njg4As44OS44K144Kr44K6DQor44Oe44K144KtLOOCouOCreODqQ0KK+OCquOCrOODryzjg47jg5bjgqLjgq0NCivjgqbjgrfjg57jg6ss44Kx44OzDQor44Kk44K344OALOODjuODluOCv+OCqw0KK+ODj+ODiuODluOCtSzjgqLjg4TjgrMNCivjg6jjgrfjg6Djg6ks44Oo44K344OS44K1DQor44K/44OL44Ks44OvLOODnuODquOCqg0KK+OCteODiOOCpizjgr/jg4TjgrcNCivjgqvjg4Qs44K/44Kr44K3DQor44Ok44Oe44Kw44OBLOODkuODreOCrQ0KK+ODj+OCr+ODgeODp+OCpizjgqTjgrXjgqoNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44K144Kr44KkLOOCq+OCuuODjuODqg0KK+OCv+ODs+OCtCzjg5Ljg4fjgqoNCivjgrPjgqTjgrrjg58s44Kx44Oz44K544KxDQor44Ov44Kr44K544KuLOOCv+ODgOOCv+OCqw0KK+OCpuOCqOODjizjgrfjg7PjgqTjg4ENCivjgqbjgqjjg4As44OI44Oi44KtDQor44K544K644KtLOODkuOCteOCqA0KK+OCquOCquODjizjg6jjgrfjg47jg6oNCivjgqLjg5ks44Kx44Oz44Kk44OBDQor44K344Kk44KtLOODkuODreOCtw0KK+OCouODqeOCrSzjgq3jg6jjg4/jg6sNCivjgqLjgrrjg54s44OS44Ot44Oo44K3DQor44OH44Kw44OBLOODkuODreODjuODqg0KK+OCqOODquOCq+ODryzjg6bjgqbjgrMNCivjg5Xjgqvjg6Tjg54s44OO44OW44Om44KtDQor44OV44OK44KtLOOCteOCq+OCqA0KK+OCpOODgeODoOODqSzjg57jgrPjg4gNCivjg4/jgrfjg6Ljg4gs44OO44Oq44Ki44KtDQor44OS44Ks44K3LOOCreODqOOCv+OCqw0KK+ODkuODreOCteODryzjgqLjg4TjgrcNCivjg5vjg6rjgrDjg4Es44Om44Km44Kk44OBDQor44Kk44OQ44Op44KtLOODpuOCpuOCpOODgQ0KK+OCpOODiuODoOODqSzjgrPjgqbjgqTjg4ENCivjgqTjgrfjgqvjg68s44Of44Kt44KqDQor44Kk44OI44KkLOOCv+ODgOOCtw0KK+OCq+ODiuOCtuOCtyzjg47jg6rjgrMNCivjgqvjgr/jgq7jgrcs44Oe44K144K3DQor44Kr44OI44KmLOODpOOCueOCtw0KK+OCq+ODr+ODgCzjgrHjg7PjgrnjgrENCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kz44OQ44Ok44K3LOOCq+ODhOODjuODqg0KK+OCs+ODnuODhCzjg6Tjgrnjgr/jgqsNCivjgrPjgr/jg4ss44OS44OH44KtDQor44Kv44Ot44K7LOOCquOCteODoA0KK+ODnuOCqOODgCzjg6bjgqbjgrgNCivjg57jg7Pjgr/jg4ss44Oo44Km44Kk44OBDQor44Oe44OE44Oi44OILOODpOOCueOCouOCrQ0KK+ODn+ODoOODqSzjgrfjgrLjg47jg5YNCivjg5/jg68s44Oe44K144OS44OtDQor44Oi44Oq44K/LOOCouOCreODkuOCsw0KK+ODoOODjeODoOODqSzjg4jjgrfjg5/jg4QNCivjg4rjgqzjgr8s44Kx44Oz44K4DQor44OK44Kr44Kz44K4LOOCv+ODhOODpA0KK+ODiuOCq+ODoOODqSzjg6jjgqbjgqTjg4ENCivjg4rjgqvjg6Tjg54s44K/44Kr44K3DQor44OL44Og44OpLOOCueOCueODoA0KK+ODpOOCuOODnizjg6jjgrfjgqgNCivjg47jg54s44OI44Oo44OfDQor44OM44Kt44KkLOOCq+ODhOODnw0KK+OCquOCrOOCteODr+ODqSzjgrfjg6XjgqbjgrgNCivjgqrjgqrjgrXjg68s44OS44OH44K/44KrDQor44Oe44OE44OK44KsLOODqOOCt+OCouOCrQ0KK+OCquOCq+ODouODiCzjg5Ljg63jg6bjgq0NCivjgqrjgrXjg4As44Og44OE44OfDQor44K144Kk44OI44KmLOOCouOCreODkuODrQ0KK+OCteOCr+ODqeOCpCzjgrfjgrLjg47jg6oNCivjgrXjg4jjgqYs44Oo44K344OO44OqDQor44K744K244KkLOOCq+OCuuODpOOCuQ0KK+OCt+ODn+OCuizjgqLjgq3jg4jjgrcNCivjgrfjg6fjgqbjg5/jg4Qs44Oo44K344OS44OtDQor44K544Ku44K144OvLOODjuODluODpuOCrQ0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgrnjgrrjgq0s44Om44Km44KzDQor44K/44Kr44OP44K3LOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+OCteOCqyzjg4/jgrjjg6ENCivjg5XjgrjjgqQs44Ki44OE44KzDQor44K/44Oe44KtLOOCteODiOOCsw0KK+OCv+ODiyzjgqvjgrrjg5LjgrMNCivjg4jjgq3jgr7jg44s44K344Ky44KqDQor44OI44Oq44K244OvLOOCqOODnw0KK+ODhOODq+OCq+ODryzjgqjjgqTjgrgNCivjgqbjg4As44OS44K144Oo44K3DQor44Km44Oh44Og44OpLOOCreODn+ODkuODrQ0KK+ODr+OCv+ODqizjg6Tjgrnjg6jjgrcNCivjg6Tjg57jg6Ljg4gs44OG44OE44OkDQor44Ok44Oe44Oi44OILOODnuOCteODqOOCtw0KK+ODpOODjizjg6bjgq3jgqoNCivjg6jjg4As44Kk44K144KqDQor44Ok44Oe44Kw44OBLOOCq+OCuuODqOOCtw0KK+ODmyzjgqLjgq3jg6kNCivjg57jg4Tjg5/jg6Qs44Om44Km44Kk44OBDQor44K144Ov44OALOODkuODreOCtw0KK+OCs+ODj+ODqSzjg57jgrXjg47jg6oNCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44Ok44OOLOODn+ODhOOCqg0KK+ODleOCuOODouODqizjg47jg6rjgrMNCivjg6Tjg57jgrDjg4Es44Ok44K544OS44OtDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODleOCuOOCvyzjg4jjgrfjgq0NCivjgq3jg6Djg6ks44K/44Kx44KqDQor44OP44Ok44K3LOODnuOCteODkuODrQ0KK+ODnuOCqOOCtuODryzjgqTjgrrjg58NCivjgrfjg5bjgqvjg68s44Kt44Oo44OS44K1DQor44Of44ObLOODnuOCteODjuODqg0KK+OCueOCruODpOODnizjgrfjg7PjgqTjg4ENCivjg5Xjg6vjgqvjg68s44Oo44K344OV44OfDQor44OO44OB44K7LOOCq+OCuuODkuOCsw0KK+ODnuODhOODouODiCzjg5Ljg4fjgqLjgq0NCivjgqrjgq/jg44s44Om44Kt44KqDQor44Ok44Oe44K244KtLOODpOOCueODkuODrQ0KK+OCpOOCt+OCsizjgqLjgq3jgrMNCivjg5/jgqbjg6ks44Oq44Ol44Km44K+44KmDQor44OQ44OQLOOCv+OCr+ODpA0KK+ODouODgeOCuuOCrSzjgqjjg5/jgrMNCivjg4jjgq/jg4rjgqws44OV44Of44OS44OIDQor44Kv44Ot44Kr44OvLOODkuODreOCtw0KK+OCpOOCseODjizjg6HjgrDjg58NCivjg6Tjg57jgqvjgrIs44Oo44Km44K4DQor44Ok44Ku44OP44K3LOOCt+ODpeOCpuOCpOODgQ0KK+OCreODqOODn+ODhCzjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44Ko44Kk44K444OlDQor44Kq44Kq44OE44KrLOODkuODh+ODkuOCsw0KK+OCquODpOODnuODgCzjgr/jgqvjgrcNCivjgqLjgrLjgr8s44K444Ol44Oz44Kk44OBDQor44Ki44Oi44KmLOOCouOCreOCqg0KK+OCouODqeOCq+ODryzjg5Ljg4fjgrcNCivjg5Djg7Pjg44s44Oe44K144Kt44OoDQor44Ko44K144KtLOOCt+ODs+OCpOODgQ0KK+ODleOCq+OCtuODryzjg4jjg6Ljg5Ljg4gNCivjg5Xjg4rjg5Djgrcs44Oe44K144Om44KtDQor44OP44OK44OALOOCq+ODhOODjuODqg0KK+ODj+OCt+ODouODiCzjgqjjg5/jgrMNCivjg5Ljgrjjgq/jg60s44OK44Kq44Om44KtDQor44Ob44Km44OkLOOCq+OCuuODkuOCsw0KK+ODm+OCveODgCzjg4Hjgqjjg58NCivjgqTjgrHjgrbjg68s44OO44OW44Ok44K5DQor44Kk44OM44OE44KrLOODiuOCquOCrQ0KK+OCq+OCuOOCv+ODiyzjgqrjgrXjg6ANCivjgqTjg4jjgqYs44OB44Kv44K1DQor44Kk44Ov44K344K/LOOCt+OCsw0KK+OCq+ODn+ODpCzjgq/jg4vjgqLjgq0NCivjgqvjgrnjg6Qs44Ki44Kt44OpDQor44Kr44Ov44OQ44K/LOODgOOCpA0KK+OCq+ODr+OCr+ODnCzjgqvjgrrjg4jjgrcNCivjgq3jg5Djgrcs44OS44OH44OS44KzDQor44Kt44Oq44K144OvLOOCpOODgeODreOCpg0KK+OCs+ODgOODnizjgqrjgrXjg6ANCivjg4jjgqbjg4njgqYs44Kz44Km44K4DQor44Kz44Ok44Kk44K3LOODn+OCqw0KK+OCr+ODqeOCvyzjgrPjgrnjgrENCivjgq/jg6/jg44s44OS44Ot44K/44KrDQor44Oe44K544OALOOCuOODpeODsw0KK+ODnuODhOOCt+OCvyzjgr/jg4DjgrcNCivjg5/jg6TjgrEs44Ki44OE44K3DQor44Of44Oo44OALOOCv+OCq+ODkuOCtQ0KK+ODn+OCuuOCv+ODiyzjg4Tjg6jjgrcNCivjg6Ljg6rjg6/jgq0s44K344Oz44Kk44OB44Ot44KmDQor44Og44OI44KmLOOCq+ODhOOCrQ0KK+ODiuOCrOODryzjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrfjg54s44OS44K144Oo44K3DQor44OL44K344OALOODkuODreODqOOCtw0KK+ODi+OCt+OCqizjg57jgrXjg4gNCivjg47jg6Djg6ks44OG44OE44OkDQor44Kq44OA44Kq44Kq44OP44OpLOOCt+ODs+OCtA0KK+OCquOCquODkuODqSzjgqTjg4Hjg63jgqYNCivjgqrjgqrjg4zjg54s44OK44Or44K3DQor44Kq44Kq44Ok44KuLOODnuOCteODkuODrQ0KK+OCquOCq+ODjSzjgr/jgqvjgrcNCivjgqrjgq/jg44s44Kr44OE44K3DQor44K144Kk44OI44KmLOODqOOCt+ODnw0KK+OCteOCq+OCpuOCqCzjg6Tjgrnjg6bjgq0NCivjgrXjg4jjgqYs44K/44Kx44K3DQor44K744Kt44Oi44OILOODiOOCt+ODpuOCrQ0KK+OCt+OCpOODiizjg5Xjg5/jg4/jg6sNCivjgrfjg5/jgros44OS44OH44OI44K3DQor44K344Op44K144KtLOODqOOCpuOCsw0KK+OCueODieOCpizjgrXjg4jjgrMNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Ob44K944Kr44OvLOODpuODqg0KK+ODpOODnuOCtuOCrSzjg4rjgqrjgq0NCivjgr/jgqvjgrks44Kr44K644OoDQor44K/44Kx44OALOODkuODreODpuOCrQ0KK+OCv+ODnuOCv+ODiyzjgqvjgrrjgqLjgq0NCivjgr/jg4vjg6Ljg4gs44K344Oz44Kk44OBDQor44OI44Of44OK44KsLOODkuODreODkuOCtQ0KK+ODhOOCq+ODgCzjg5Ljg4fjgq0NCivjgqbjg6njgqvjg68s44Om44Km44K4DQor44Ov44K/44OqLOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjgqLjg4TjgrcNCivjg6Tjg57jgrfjgr8s44OI44K344OS44OHDQor44Ok44K244KtLOOCv+OCseOCtw0KK+ODqOOCs+OCvyzjg6bjgqbjgrMNCivjg6jjgrfjgqvjg68s44Of44OE44OS44OtDQor44Ki44K144OOLOODn+ODgeOCsw0KK+OCquOCr+ODgCzjg5LjgrXjgrMNCivjgqTjg4rjg4As44Oe44K144OE44OKDQor44K344Oi44Kr44OvLOODleODn+ODkuOCsw0KK+ODhOODnOOCvyzjg47jg6rjgqoNCivjgqrjgqrjgq/jg5ws44K/44Kx44K3DQor44K144Kk44OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+ODleOCuOOCvyzjg4Tjg43jgqoNCivjg57jgq3jg6Djg6ks44K/44Kx44KqDQor44OL44OO44Of44OkLOOCq+OCuuOCqg0KK+OCv+ODkOOCvyzjg6jjgrfjgr/jgqsNCivjg6Djg6njgqvjg58s44OS44Ot44KtDQor44Kk44Oe44OL44K3LOOCv+OCseOCqg0KK+OCv+OCreOCrOODryzjgrfjgrLjg6jjgrcNCivjgqrjg7Pjgrrjgqss44OS44Ot44K3DQor44OI44OO44Kr44OvLOOCv+OCseOCtw0KK+OCpOOCseODgCzjg4jjgq3jgqoNCivjgrTjg4jjgqYs44Kr44K644OkDQor44K944OALOOCseODs+OCuA0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjgr/jg7Pjg44s44Ko44Kk44Kk44OBDQor44K044Km44OALOOCreODp+OCpuOCsw0KK+ODpOODnuOCsOODgSzjg5Ljg63jgqvjgroNCivjgqrjgrXjg4rjgqQs44Ki44OE44K3DQor44OS44Ks44K3LOOCt+ODp+OCpuOCsw0KK+ODpOODnuODouODiCzjg5Ljg4fjgqLjgq0NCivjgrXjg4jjgqYs44K/44Kr44KqDQor44Of44K+44Kw44OBLOODiOOCt+ODpuOCrQ0KK+OCreOCv+OCrOODryzjg5Ljg63jgrcNCivjgqrjgqrjg4vjgrcs44K944Km44Kk44OBDQor44Ki44Kk44OP44OpLOODkuODh+OCqg0KK+OCouOCreODkCzjg4Tjg4jjg6ANCivjgqLjg57jg44s44OI44Kq44OrDQor44Ki44Kq44Ok44KuLOOCv+OCq+OCqg0KK+OCouODqSzjgqLjgq3jgqoNCivjgqLjgrXjg44s44Oo44K344OS44OtDQor44OQ44OzLOOCs+OCpuOCv+ODreOCpg0KK+OCqOODk+ODjOODnizjgqLjgrHjg58NCivjg5Xjgrjjgqjjg4As44K444Ol44OzDQor44OV44K444KkLOOCt+OCsuODjuODqg0KK+OCquOCsOODqSzjgqLjg6TjgrMNCivjg5Xjgqvjgqos44Of44OE44OS44OtDQor44OV44Kv44OALOODn+OCqw0KK+ODleOCr+OCquOCqyzjgrfjg7PjgrQNCivjgrTjgqbjg4As44Oo44Oq44KzDQor44OP44Ku44Ov44OpLOOCreOCr+OCqg0KK+ODj+ODiuODn+ODhCzjg6jjgrfjgr/jgqsNCivjg4/jg6ks44Of44Om44KtDQor44OP44OE44K344OeLOOCseODsw0KK+ODj+ODg+ODiOODqizjg6jjgrfjg47jg6oNCivjg4/jg6Tjgrcs44Kr44OE44OfDQor44OS44OK44K/LOOCuOODpeODsw0KK+ODkuODqeOCteODryzjgqvjgrrjg5Ljg60NCivjg5Ljg63jgrss44OS44K144Om44KtDQor44K544Ku44Oi44OILOOCu+OCpOOCpOODgQ0KK+ODm+ODqizjgqvjgrrjgqoNCivjg5vjgr0s44Kr44K644OfDQor44Kk44OH44KkLOODnuOCteOCq+OCug0KK+OCpOOCpOODoOODqSzjg6jjgrfjg47jg5YNCivjgqTjgrHjg4As44Kv44OL44OS44OtDQor44Kk44Oe44KkLOOCv+ODgOOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgr/jgqsNCivjgqTjgrfjgrDjg60s44OS44Ot44K3DQor44Kk44K344Kr44OvLOODqOOCpuOCsw0KK+OCpOOCt+ODr+OCvyzjg4rjgqrjg5LjgrUNCivjgqTjg4jjgqYs44OG44OE44OkDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCpOODr+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgqTjg6/jgrXjgq0s44K/44OE44OS44KzDQor44Kr44Ks44OfLOOCt+OCsuODqOOCtw0KK+OCq+ODnuODouODiCzjgr/jgqjjgrMNCivjgqvjg58s44Oe44Kz44OIDQor44Kr44OK44K244OvLOOCteODgOOCpOODgQ0KK+OCq+ODjeOCsyzjg6TjgqgNCivjgqvjgrfjg6/jgq4s44OS44Ot44K3DQor44Kr44K/44Kq44KrLOOCouODhOOCtw0KK+OCtOODiOOCpizjg5Ljg63jgqvjgroNCivjgqvjg6/jg4/jg6ks44OS44Ot44Ki44KtDQor44Kr44Ov44Kt44K/LOODpOOCueOCsw0KK+OCreODgCzjg6jjgrfjg5Xjg58NCivjgq3jg6Djg6ks44Of44OO44OrDQor44Kq44Kr44K244KtLOOCv+OCseOCqg0KK+OCreOCv+ODoOODqSzjgqLjgq3jgqoNCivjgrPjg5Djg6Tjgrcs44Of44Oo44KzDQor44OS44Ot44K7LOODj+ODq+OCqg0KK+OCs+OCteOCqyzjg6jjgrfjg6bjgq0NCivjgrPjgq/jg57jgqQs44Of44Ko44KzDQor44Kz44Oi44Kq44KrLOODleODn+OCqg0KK+OCs+ODs+ODieOCpizjgr/jg4Tjg4gNCivjgq/jg5ws44K/44Kr44Om44KtDQor44Kv44Oe44Oi44OILOOCouOCreODkuOCsw0KK+OCr+ODquODpOODnizjg6bjgq3jgqgNCivjgq/jgrfjg4As44Ov44K/44OrDQor44Oe44Ko44Kr44OvLOODkuODh+OCv+OCqw0KK+ODnuOCueODgCzjg5/jgq3jgqoNCivjg57jg4Tjg4As44K344Ky44KqDQor44Kr44OO44KmLOODkuODreODpuOCrQ0KK+ODnuODhOODiuODnyzjg5Ljg63jg6bjgq0NCivjg57jg4Tjgrbjgq0s44K/44OA44K3DQor44Of44Oi44OqLOODkuODreOCtw0KK+ODn+OCpuODqSzjg6jjgqbjgqTjg4ENCivjg5/jg6Tjg4/jgrcs44Kt44On44Km44KzDQor44Of44Ok44K/44KxLOOCt+OCsuODnw0KK+ODn+OCuuOCs+OCtyzjg4jjgrfjgqoNCivjg6Ljg6rjgq0s44Ok44K544OS44OtDQor44Oi44OqLOOCteODiOODqw0KK+ODoOOCq+OCpCzjgr/jg4Tjg58NCivjg6Djg6njgr8s44K144OI44K3DQor44Og44OE44K344KrLOOCqOOCpOOCpOODgQ0KK+ODiuOCrOOCteODryzjgqvjgrrjg4gNCivjg4rjgqzjgqgs44K/44Kr44Om44KtDQor44OK44Kr44K444OeLOOCq+ODhOODiOODog0KK+ODiuOCq+ODnuOCvyzjg47jg6rjg5Ljg60NCivjg4rjgqvjg6Djg6ks44OP44K444OhDQor44Kq44Kq44OL44K3LOODnuOCteODjuODqg0KK+ODiuOCq+ODjizjg6LjgqjjgrMNCivjg4rjgqvjgr8s44K344Ky44KzDQor44OK44Kr44Ok44OeLOOCq+ODhOODkuOCsw0KK+ODiuODhOODpOODnizjg6bjgqbjgrMNCivjg6Ljg6os44Om44Kt44KzDQor44OL44OvLOODnuOCteOCrQ0KK+ODjuODnizjgrXjg4jjgrcNCivjg47jg6rjgqvjg40s44Oe44K144OrDQor44Kq44OA44ONLOODqOOCt+OCq+OCug0KK+OCquOCquODkOODpOOCtyzjg6Tjgrnjg6bjgq0NCivjgqrjgq0s44Oo44K344Om44KtDQor44Kq44Op44KkLOOCueOCueODoA0KK+OCquOCquODiOODoizjgqLjgq3jgqoNCivjgqrjg5Ljg6Ms44Kv44OL44OS44KzDQor44Kq44Kr44Oi44OILOODqOOCt+OCqg0KK+OCpuOCqOODgCzjg4jjg6jjgqvjgroNCivjg4vjgrcs44Ki44OE44KtDQor44K/44OALOOCv+OCq+ODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgrHjg7PjgrgNCivjgrXjgrXjg6Ljg6os44Om44K/44KrDQor44OP44K744Ks44OvLOODiOODouODpuOCrQ0KK+OCpOODnuOCpCzjg5/jg6bjgq0NCivjg6jjgrPjg6Tjg54s44Kx44Oz44K4DQor44K544Ku44Ok44OeLOODqOOCt+ODnuOCtQ0KK+OCouODqeOCpCzjg4jjg6LjgrMNCivjgqLjg57jgqzjg6Qs44Om44Oh44OODQor44OE44OrLOODn+ODjuODqw0KK+ODpOOCpOOCvyzjg57jgq0NCivjgrvjgq0s44Oe44OqDQor44OP44OpLOODqOOCt+ODjuODqg0KK+ODn+OCpuODqSzjgrnjgrnjg6ANCivjgrXjgrUs44Om44Kt44KzDQor44K/44Kr44K144KtLOODnuOCreOCsw0KK+ODj+ODqeODgCzjgqjjg5/jgrMNCivjgq/jg6njgr8s44Ok44K544OS44OtDQor44Ki44Ky44Oe44OELOODkuODreODn+ODgQ0KK+ODleOCr+ODouODiCzjg5/jgq3jgqoNCivjgqrjgq/jg6Djg6ks44OA44KkDQor44Kq44K944Ko44Ks44OvLOODpOOCueODiuODqg0KK+OCteOCpOOCvyzjg57jgrXjg5Ljg60NCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K144Kr44OqLOODjuODluODkuODrQ0KK+OCteODjizjg6bjgr/jgqsNCivjgrXjg4jjgqYs44Oo44K344OS44KzDQor44K144OI44KmLOOCouOCreOCqg0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgrvjgq3jgqvjg68s44Ki44Kt44OpDQor44K744K344OiLOOCs+OCpuOCuA0KK+OCt+ODluODpCzjg57jgrXjg47jg6oNCivjgrfjg57jg6Ljg6os44Oe44K144OS44KzDQor44K344Oi44OALOOCseOCpOODn+ODsw0KK+OCt+ODs+OCv+ODiyzjg6bjgqbjgrgNCivjgrfjg6njgqQs44K344Ky44KtDQor44K344Ol44KmLOOCtOOCpOODgQ0KK+OCueODgCzjg4rjgqrjgq0NCivjgrnjgq7jgr8s44Om44Km44Kk44OB44OtDQor44K544K244KtLOODhuODhOODpA0KK+OCueOCuuOCrSzjg4jjgrfjg6QNCivjgrnjgrrjgq0s44OO44Oq44Om44KtDQor44K/44Ks44KkLOODpOOCueOCtw0KK+OCv+OCq+OCrizjgrHjg7Pjgr/jg63jgqYNCivjgr/jgqvjg4/jgrcs44Oe44K144KzDQor44K/44Kr44Kk44K3LOODiOODouOCouOCrQ0KK+OCv+OCq+OCquOCqyzjgr/jgqvjgq0NCivjgr/jgqvjg6Tjg54s44K344Oz44Kk44OBDQor44K/44Kx44Oi44OILOODjuOCvuODnw0KK+OCv+ODnuODgSzjg5Ljg63jgrcNCivjgr/jg4rjgqss44OS44Ot44OV44OfDQor44K/44OLLOODkuODreODluODnw0KK+ODhuODqeOCteOCrSzjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgq4s44OO44Oq44OS44K1DQor44OI44Oo44K144OILOODkuODreOCtw0KK+ODhOOCuOODouODiCzjg6bjgq3jgqoNCivjg4Tjg6vjgr8s44K344OO44OWDQor44Km44OB44Ok44OeLOOCv+OCseOCtw0KK+OCreOCreODp+OCpizjg6jjgrfjgr/jgqsNCivjgqbjgqjjg44s44Oo44K344KzDQor44OK44Ks44K/LOODjuODquOCsw0KK+ODr+ODgCzjgrfjgrrjgqoNCivjgqTjg4jjgqQs44Oo44K344OS44K1DQor44Ov44K/44OK44OZLOODkuODh+ODiOOCtw0KK+ODpOODluOCpuODgSzjgrfjg6fjgqbjg5jjgqQNCivjg6Tjg57jg4As44Ki44Kt44KqDQor44Ok44Oe44Oi44OILOOCouOCreODkuODrQ0KK+ODpOODnuODouODiCzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrfjgr8s44OE44OI44OgDQor44Ok44Oe44K344K/LOOCouOCreODqQ0KK+ODpOODjizjg4jjg6Ljg6bjgq0NCivjg6jjgrPjgr8s44Of44OK44KzDQor44Oo44ON44Og44OpLOOCv+ODgOOCtw0KK+ODqOOCt+ODoOODqSzjg5Ljg63jg58NCivjg57jg4Tjg4As44Oo44K344OE44KwDQor44Ob44K944OkLOOCt+ODp+OCpuOCuA0KK+ODn+ODpOOCt+OCvyzjgrfjgrLjg4jjg6INCivjgrfjgqws44Oe44K144Of44OEDQor44Ok44Oe44OALOODpuOCpuOCpOODgQ0KK+ODj+ODpOOCtyzjgrXjg5vjg6oNCivjgqTjgrHjg4As44OE44Oo44K3DQor44Km44Ko44OOLOOCq+OCuuOCv+OCqw0KK+OCteOCpOODiOOCpizjg4bjg6vjg6jjgrcNCivjg4rjgqzjg6Tjgrks44Kz44Km44K4DQor44OP44Ku44KqLOODiOODouODkuOCsw0KK+ODj+ODnuODgCzjg57jgrXjgrgNCivjg6Djg6njgqvjg58s44OO44Oq44OS44OtDQor44Ki44OZLOOCt+ODpeODs+OCuA0KK+OCouOCreODpOODnizjg4jjgrfjg6bjgq0NCivjgqLjg7Pjg4njgqYs44OG44Oz44K744KkDQor44Ki44Op44KtLOOCt+OCsuODn+ODhA0KK+OCouOCvSzjgq/jg4vjgqvjgroNCivjg5Djg5As44Om44Km44K544KxDQor44Ko44OT44K144OvLOODkuODreOCtw0KK+ODleOCuOOCpCzjg6jjgrfjg47jg6oNCivjg5XjgrjjgqQs44K/44OE44OkDQor44OV44K444K/LOODkuODreOCtw0KK+ODleOCuOODr+ODqSzjg5Ljg63jg6ANCivjg5Xjgq/jg4As44K444Ol44OzDQor44OV44Kv44Kq44KrLOOCpOOCteOCqg0KK+ODleODq+ODpCzjg4jjgrfjg6bjgq0NCivjgqzjg4ks44OS44K144K3DQor44OP44KsLOOCouODhOOCtw0KK+ODj+ODnuOCt+ODnizjg6bjg58NCivjg4/jgrss44Om44K/44KrDQor44OP44K344K644OhLOODiuOCquOCrQ0KK+ODhOODgCzjg5Ljg63jgrMNCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OS44Op44KkLOODpuOCpuOCpOODgQ0KK+ODkuODqeOCteOCqyzjg5Ljg63jg6bjgq0NCivjg5Ljg63jg6/jgr/jg6os44K/44Kr44OS44OtDQor44K544K644KtLOODkuODh+OCrQ0KK+ODm+OCveODnyzjg5Ljg63jgqLjgq0NCivjgqTjg4As44OB44OP44OrDQor44Kk44Ks44Op44K3LOODpuOCreODpA0KK+OCpOOCpOOCuOODnizjgr/jgrHjgrcNCivjgqTjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44Kk44Os44KkLOODnuOCteODqw0KK+OCpOOCt+OCpCzjg4jjg6Ljg6bjgq0NCivjgqTjgr3jg44s44Of44OE44OI44K3DQor44Kk44OI44KmLOODqOOCt+ODnuOCtQ0KK+OCpOODr+OCtSzjg4jjgrfjg58NCivjgqTjgrrjg5/jgrXjg68s44K744Kk44K4DQor44Kr44Kk44OALOOCs+OCpuOCuA0KK+OCq+ODnuOCvyzjg4jjgrfjgqgNCivjgqvjg7Pjg5ks44K/44Kr44OS44OtDQor44Kr44ON44KzLOOCouOCreODqQ0KK+ODqOODjeODouODgSzjg4rjgqrjgrcNCivjgqvjgr/jgqrjgqss44Kr44K644OS44KzDQor44Kr44OI44KmLOODpOOCueODkuODrQ0KK+OCq+ODiOOCpizjg6bjgqbjgrgNCivjgr/jg57jgqzjg68s44Kz44Km44Kk44OB44Ot44KmDQor44OK44Or44KxLOOCv+OCq+OCtw0KK+OCreODiSzjgr/jgqvjg5Xjg58NCivjgq3jgq/jg6ks44Kr44OE44OfDQor44Kt44Og44OpLOODnuOCteOCrQ0KK+OCreODjuOCt+OCvyzjg6Tjgrnjg5Ljg60NCivjgq3jgr/jgqLjgq0s44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4jjgrfjgq0NCivjgrPjg7Pjg44s44Oo44KmDQor44Kz44Of44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCs+ODi+OCtyzjgqLjgq3jg47jg6oNCivjgrPjg6Tjg54s44OS44Ot44OfDQor44Kv44OJ44KmLOOCuOODpeODsw0KK+OCr+ODquODpCzjg6bjgqbjgqTjg4ENCivjg6jjgrfjg4As44K144OI44OrDQor44Oe44Kt44OOLOODiOOCt+OCqg0KK+ODnuOCteOCrSzjg5Ljg4fjg6gNCivjg57jg4TjgqQs44Ok44K544OS44OtDQor44Oe44OE44Oi44OILOOCv+OCseOCtw0KK+ODnuODhOODpOODnizjgrjjg6Xjg7MNCivjg5/jgr/jg6Djg6ks44K444Ol44OzDQor44Of44Ov44K/LOODiuOCquOCrQ0KK+ODn+ODpOODouODiCzjg5Ljg4jjg58NCivjg6Ljg4Hjgrrjgq0s44K344Ol44Km44Kk44OBDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg6Ljg6rjg6/jgq0s44OO44OW44Om44KtDQor44Og44Op44Kr44OfLOOCv+OCseOCqg0KK+ODoOODqeODpOODnizjgrXjg4jjgrcNCivjg4rjgqzjgrfjg54s44Of44OB44OO44OqDQor44Km44OB44K+44OOLOOCv+OCq+OCtw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOODqOOCt+ODkuOCsw0KK+ODiuOCq+OCt+ODnizjg47jg6rjgqoNCivjg4rjg6njg4/jg6ks44K144OI44K3DQor44OL44K344OWLOOCouODpOOCsw0KK+ODi+OCt+ODouODiCzjg4rjgqrjgrMNCivjg4vjgrfjgrbjg68s44OA44Kk44K544KxDQor44OO44K444OeLOODjuODquOCqg0KK+ODjOODryzjgr/jgrHjgrcNCivjgqrjgqzjg68s44Kx44Oz44Kk44OBDQor44Kq44Kq44Ks44KtLOOCq+OCuuODkuODrQ0KK+OCquOCrSzjg57jgrXjg5LjgrMNCivjgqrjgqrjg6Ljg6os44OS44Ot44Ki44KtDQor44Kq44Kq44OM44OeLOODnuOCteOCqg0KK+OCquOCquOCv+OCsSzjgrXjgqjjgrMNCivjgrXjgrPjg4As44K344Ol44Km44Kk44OBDQor44Kq44Kr44OALOODhuODhOOCuA0KK+OCquOCreOCvyzjgrXjg4jjgrMNCivjgqrjgqrjg44s44K/44Kr44K3DQor44Kq44Oq44KkLOOCt+ODpeODs+OCuA0KK+OCquOCtuODryzjg6Tjgrnjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kx44Kk44K4DQor44K144Kr44Oi44OILOODqOOCt+OCqg0KK+OCteOCq+OCvyzjg57jgrXjg5Ljg60NCivjgrXjg4rjgq4s44Oo44K344KtDQor44K144K144KtLOODiuOCrOODnuOCtQ0KK+OCteODiOOCpizjg57jg6Ljg6sNCivjgrXjg4jjgqYs44OS44OH44KtDQor44K744Kt44OOLOODjuODquODkuODrQ0KK+OCt+ODnuODgCzjgqLjg4TjgrcNCivjgrfjg5/jgros44K/44Kr44Ki44KtDQor44K344Oi44OALOODkuODreODpuOCrQ0KK+OCt+ODjuOCtuOCrSzjgqLjg4TjgrcNCivjgrfjg6fjgqbjg4As44Kx44Oz44K4DQor44K544Ks44OOLOODkuODreODpuOCrQ0KK+OCueOCruOCteOCrSzjg6jjgqbjgrMNCivjgrnjgq7jg6Tjg54s44K/44Kx44K3DQor44K544K644KtLOODkuODh+ODpuOCrQ0KK+OCueOCuuOCrSzjg57jgrXjg47jg6oNCivjgr/jgrDjg4Es44K344OzDQor44K/44Kr44OP44K3LOOCq+OCuuODjuODqg0KK+OCv+OCq+ODj+OCtyzjgqrjgrXjg6ANCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44Ok44OK44KuLOOCt+OCsuODqw0KK+OCv+OCseOCpCzjg47jg5bjgqoNCivjgr/jgrHjgrfjg54s44Kr44OE44K344Ot44KmDQor44K/44Og44OpLOOCt+ODp+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg6TjgrnjgrgNCivjgrXjg44s44OS44Ot44OV44OfDQor44OG44Op44Oe44KoLOODnuOCrQ0KK+ODiOOCsOODgSzjgr/jgrHjgrcNCivjg4jjg5/jgqQs44Oe44K144OS44OtDQor44OI44OD44OI44OqLOOCouOCreODkuOCsw0KK+ODhOOCuCzjg57jgrXjg5LjgrMNCivjg4Tjgq3jgrbjg68s44Kz44Km44K4DQor44OE44Or44K/LOODjuODquOCsw0KK+OCpuODgeODgCzjgrfjg6fjgqbjgrMNCivjgqbjgqjjg4As44Oo44Km44K544KxDQor44Km44Ko44OOLOOCuOODpeODs+OCuA0KK+OCqOOCrOOCt+ODqSzjgr/jg4DjgrcNCivjgq3jgr/jg6/jgq0s44K744Kk44KtDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg6njgqQs44K444Ot44KmDQor44Ok44Oe44OALOOCouODhOOCtw0KK+ODleOCuOOCvyzjg57jgrXjg4jjgrcNCivjg6Tjg57jg6Ljg4gs44Ok44K544K3DQor44Ok44Oe44ONLOODn+ODgeODqw0KK+ODpOODnuOCt+OCvyzjgrfjgrLjg58NCivjg6Tjg57jgrbjgq0s44K/44OA44K3DQor44Oo44OALOOCt+ODpeODs+OCueOCsQ0KK+ODqOOCt+ODgCzjgqvjgrrjg6jjgrcNCivjg6jjgrfjg6Djg6ks44K144OI44OrDQor44Kq44K244OvLOOCq+ODhOODpuOCrQ0KK+ODpOODnuODgCzjgq3jg6jjgrcNCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44Ki44K844Ks44OfLOOCt+OCsuOCq+OCug0KK+ODleOCr+ODj+ODqSzjg47jg5bjg6bjgq0NCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44OtDQor44Kk44K944OALOOCs+OCpuOCpOODgQ0KK+OCq+ODnuOCvyzjgr/jg4Tjg6QNCivjgq3jg6Djg6ks44Oo44K344OS44OtDQor44Kz44OQ44Ok44K3LOOCsuODsw0KK+OCr+ODnuOCteOCrSzjg6jjgrfjgqLjgq0NCivjg5/jgq/jg4ss44OI44Of44KqDQor44Ko44OALOOCv+OCq+OCtw0KK+ODjeODouODiCzjg57jgrXjg6bjgq0NCivjgqrjg44s44K/44Kv44K4DQor44K144Ko44KtLOODjuODquODpuOCrQ0KK+OCu+OCrSzjg6bjgq3jgqoNCivjgrnjg6Tjg54s44OS44Ot44KzDQor44K/44OK44KrLOOCseODs+OCtA0KK+OCv+OCtuODryzjg5/jgq3jgqoNCivjgqjjg7Pjg4ks44K444Ol44Oz44KzDQor44Ok44Oe44Kw44OBLOODjuODquOCqg0KK+ODpOOCueODgCzjgrXjg4jjgrcNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44OS44Ot44OP44K3LOODpOOCueOCqg0KK+OCq+ODiOOCpizjg5Ljg63jg6jjgrcNCivjgqbjgqjjg4/jg54s44Of44OO44OrDQor44Oe44OI44OQLOODgeODkuODrQ0KK+ODr+OCv+ODiuODmSzjg4jjgqrjg6sNCivjgqvjg6/jgrfjg54s44OG44OE44KqDQor44OV44K444Kr44K/LOODn+ODhOOCqg0KK+OCs+OCpOOCsSzjgqrjgrXjg6ANCivjgr/jg4rjgqss44Oq44On44Km44K+44KmDQor44OA44Kx44Ok44OeLOODkuODreODpuOCrQ0KK+OCr+OCt+ODk+OCrSzjgrnjgrHjg5Ljg4cNCivjgrnjgqzjg4/jg6ks44OG44OE44KqDQor44OS44Ks44K3LOODleODn+ODkuODrQ0KK+ODm+OCqyzjgrHjg7Pjgr/jg63jgqYNCivjgqTjg6/jgr8s44K/44Kr44Om44KtDQor44K544Ks44Ov44OpLOODnuOCueOCsw0KK+OCueODiCzjg57jgrXjg58NCivjg57jg4Tjgrbjgq0s44Oe44K144OO44OqDQor44Ki44Kr44Oe44OrLOOCquOCteODoA0KK+OCouODmeOCq+ODryzjg6zjgqTjgrgNCivjg6jjg43jg4As44Oe44K144KqDQor44K944Ks44OZLOODpuOCreOCqg0KK+ODr+OCq+ODkOODpOOCtyzjg4/jg6zjgqoNCivjgrnjg5/jgr8s44OG44OE44OkDQor44Kk44OO44Km44KoLOOCv+OCq+ODqOOCtw0KK+ODn+ODpOODouODiCzjg4Tjg4jjg6ANCivjg5Xjgrjjgqvjg68s44OK44Kq44OIDQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCv+ODiuODmSzjgrHjg7PjgrgNCivjgrfjg5/jgros44K744Kk44K4DQor44OO44Kw44OBLOOCt+OCsuOCouOCrQ0KK+OCq+ODr+ODiuODnyzjg57jgrXjgqLjgq0NCivjg5Xjgq/jgrfjg54s44Ki44Kt44OpDQor44Kq44OA44Ov44OpLOODn+ODgeOCqg0KK+OCquOCquOCvyzjg6jjgqbjgrgNCivjgqvjg6/jg44s44K/44OA44Oo44K3DQor44Kv44OL44Om44KtLOODpOOCueODkuODrQ0KK+OCt+ODnuODgCzjg5/jg4Tjg6sNCivjgr/jgqvjgrfjg54s44Of44OE44KuDQor44OE44OkLOODnuOCs+ODiA0KK+ODiuOCq+OCt+ODnizjg57jgrXjgqoNCivjg6Tjgq7jgrfjgr8s44OI44K344KqDQor44Kt44K344Oi44OILOODnuOCs+ODiA0KK+OCr+OCsizjgrHjg7PjgrgNCivjgqLjgrXjg44s44Oo44K344Ki44KtDQor44Kr44Ov44Kr44OfLOODhOODjeOCqg0KK+OCt+ODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg5XjgrjjgqQs44K344Ol44Oz44Kk44OBDQor44OS44KsLOOCuOODpeODs+OCrQ0KK+OCv+ODiuODmSzjgqLjgq3jg6kNCivjgq/jg6njg6Qs44Kt44OY44KkDQor44OK44Kr44K244OvLOODnuOCteODkuODiA0KK+OCouODr+OCvyzjgrfjgrLjg6sNCivjgrjjg4As44Ki44Kt44KqDQor44Ob44K944Kr44OvLOODiOOCt+OCqg0KK+OCt+ODluODpCzjg6jjgrfjgqvjgroNCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K3DQor44Kt44K/44Ks44OvLOODqOOCt+ODhuODqw0KK+ODn+OCuuOCv+ODiyzjgqLjgq3jg6kNCivjgr/jgqvjgrss44OI44K344KqDQor44Of44Ok44Og44OpLOODiOOCquODqw0KK+ODqOOCs+ODj+OCvyzjg4jjgrfjg5LjgrMNCivjg4rjg6rjgr8s44Of44OE44Oo44K3DQor44Ki44OZLOOCteODgOODkuODrQ0KK+ODiuODnuOCqCzjgrHjg7PjgrgNCivjgq3jg6Djg6ks44Om44K/44KrDQor44OK44K044K3LOODkuODh+OCouOCrQ0KK+ODiOODn+ODiuOCqyzjg6jjgrfjgqoNCivjg4rjgqvjg44s44OE44Oi44OrDQor44Kq44Kq44K144KvLOOCq+OCuuOCqg0KK+ODj+ODpOOCtyzjgrfjgrLjgqLjgq0NCivjgqrjgqrjgrUs44K/44Kr44K3DQor44Ok44Oe44Km44OBLOOCuA0KK+OCquODgCzjg6rjg6fjgqbjgrgNCivjg6HjgrDjg60s44OS44Ot44Oo44K3DQor44Kr44OK44K144KtLOODiOODn+OCqg0KK+OCquOCq+ODjizjg6TjgrnjgqoNCivjgq/jgrXjgqvjg68s44OK44Kq44KtDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+ODpOODgCzjgqvjgrrjgqrjg58NCivjg57jg4Tjgqrjgqss44Om44Kt44KqDQor44K544K644KtLOODpuOCpuOCuA0KK+OCv+OCreODouODiCzjgq/jg4vjgqoNCivjg5Ljgqzjgrfjg5Djgr8s44OS44OH44KqDQor44Kk44Kk44OALOOCseODs+OCtw0KK+OCq+ODs+ODjizjg57jgrXjg5Ljg60NCivjgr/jg4rjgqss44K344Ky44OrDQor44Kk44Kv44K/LOODpOOCueODkuOCtQ0KK+OCteODjizjg5Ljg4fjg57jgrUNCivjgrnjgqzjg6/jg6ks44Ok44K544OS44OtDQor44OK44Ks44K/LOODpuOCreOCqg0KK+OCpuODqeODjizjgrXjg4jjgrcNCivjgrnjgq7jg6Tjg54s44Kr44OE44Om44KtDQor44Kq44Kr44OZLOODleODn+OCqg0KK+OCs+OCpOODhyzjgr/jgqvjgrcNCivjgqTjgrfjgr/jg4ss44K144OI44K3DQor44Oi44OqLOOCqOOCpOOCuA0KK+OCreOCv+ODoOODqSzjgr/jgqvjgrcNCivjgqTjg6/jg58s44Ok44K544KqDQor44OV44Kr44OALOOCv+OCq+OCtw0KK+OCpuOCqOODgCzjg6bjgqbjgrgNCivjg5Xjg6vjgr/jg4ss44K/44Kr44Oe44K1DQor44OJ44KkLOOCv+OCq+OCtw0KK+ODiuOCrOODjizjg4jjgrfjg47jg6oNCivjgq3jg6Djg6ks44Ki44Kt44OpDQor44Kr44OJ44OkLOODpuOCpuOCtA0KK+OCquOCquOCvyzjgq/jg4vjgqoNCivjgr/jgrHjgqbjg4Es44Kx44Oz44Kk44OB44OtDQor44OI44Kv44Oi44OILOOCv+OCq+OCouOCrQ0KK+OCpOODiOOCpizjgrfjg5Xjg58NCivjg6Tjg57jgrbjgq0s44OI44Kt44KqDQor44Ki44Kq44KtLOODqOOCt+ODnw0KK+ODgeOCruODqizjgqjjgqTjgrjjg63jgqYNCivjg6jjgrfjg4rjgqws44OB44Kr44KoDQor44OS44Op44OQ44Ok44K3LOODkuODreOCq+OCug0KK+ODiuOCq+ODj+ODqSzjgrHjg7PjgrgNCivjg5Ljg63jg6Qs44OO44Oq44OS44OtDQor44Kr44OK44KkLOOCq+ODs+OCu+OCpA0KK+ODiOOCquODpOODnizjgr/jgqvjgrcNCivjgqbjg44s44Kt44Oz44K0DQor44K344OQ44K/LOODiOOCt+OCqg0KK+OCreOCv+OCrOODryzjgq3jg4/jg4Hjg63jgqYNCivjg4/jg6njg4As44OS44OH44Om44KtDQor44Ok44Oe44Og44OpLOOCseODs+OCuA0KK+OCr+ODnuODnyzjg6bjgqbjgr7jgqYNCivjgqTjgrfjg5Djgrcs44OI44K344Om44KtDQor44K344OQ44K/LOODj+ODq+OCrQ0KK+OCteOCr+ODpOODnizjgqvjgrrjgqoNCivjgqTjgrHjg4As44K744Kk44Kk44OBDQor44K/44Kx44Oi44OILOOCq+OCuuOCqg0KK+OCv+ODouODiCzjg4jjg5/jgqoNCivjgrPjg6Djg60s44Oq44On44Km44Kk44OBDQor44K/44OK44KrLOODnuOCteODiOOCtw0KK+OCq+ODnuODgCzjg5Ljg63jgrcNCivjgr/jg5Djgr8s44Kx44Kk44Kk44OBDQor44OS44Op44Kr44K/LOOCq+OCuuOCqg0KK+OCv+OCseOCpuODgSzjg4bjg4TjgqoNCivjgqTjg57jgros44Ok44K544K/44OADQor44OV44K444K/LOODiOOCt+ODn+ODgQ0KK+ODpOODnuODouODiCzjg4Tjg4jjg6ANCivjg6Tjg57jgq0s44Om44Km44K4DQor44K344Op44Kk44OBLOODnuOCteODqw0KK+OCteOCteOCrSzjg6Djg4Tjg58NCivjg5/jg6Tjgqvjg68s44Oe44K144K/44KrDQor44Kv44OJ44KmLOOCseOCpOOCsw0KK+OCouODqeODnuOCrSzjg47jg5bjgqoNCivjgq3jg4/jg6ks44OK44Kq44KtDQor44Kq44KrLOOCreODp+OCpg0KK+OCs+ODi+OCtyzjgrfjgrLjg58NCivjgr/jgrHjgqbjg4Es44K144OB44KzDQor44K/44OK44KrLOOCt+ODs+OCpOODgeODreOCpg0KK+OCteOCq+ODouODiCzjg57jg6Ljg6sNCivjg57jg4Tjg4DjgqTjg6ks44Ko44Kk44K4DQor44Kk44OOLOOCv+ODhOODreOCpg0KK+OCquODkOODiizjgrfjgrLjg6TjgrkNCivjgqrjgqrjgq/jg68s44Kt44Oo44K3DQor44K044OI44KmLOOCt+ODs+OCuA0KK+OCueOCuuOCrSzjgq3jg6jjgrcNCivjg4vjgrfjgqrjgqss44K144OW44Ot44KmDQor44K144K144KtLOODkuODh+OCqg0KK+ODj+ODqSzjgqTjgq/jgqoNCivjgrvjgq0s44OS44Ot44K3DQor44K144Kk44OI44KmLOODkuODiOOCtw0KK+ODleOCuOOCvyzjgrfjg6Xjg7PjgrnjgrENCivjgrXjgqvjgr8s44Kz44Km44Kk44OBDQor44Oe44Ko44K244KtLOOCpOOCteOCqg0KK+OCt+OCquODnyzjg5/jg4TjgqoNCivjgr/jgqvjgq/jg68s44Oe44K144OO44OWDQor44Kk44K344OP44OpLOODgeOCqOOCsw0KK+OCs+OCr+ODnCzjgrHjgqTjgrMNCivjg5/jg6Tjgrbjgq0s44K344Ky44KqDQor44Ki44Oq44OeLOOCseOCpOOCsw0KK+OCpuODgeODpOODnizjgr/jgqvjgrcNCivjg4rjgrfjgq0s44Kr44Kq44OrDQor44OV44K444K/LOODpuODn+OCsw0KK+OCv+OCq+OCruODryzjgqTjgrXjg6ANCivjg4vjgrfjg4As44OS44OI44K3DQor44Kt44Kv44OBLOODkuODh+ODleODnw0KK+ODiuOCq+OCpCzjg57jgrXjg58NCivjgqTjgqTjg4As44Ok44K544K3DQor44Ok44Oe44Kw44OBLOODjuODluODkuODrQ0KK+ODpOODjizjg6bjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44OS44K144K3DQor44Ob44Oq44Og44KtLOODqOOCt+ODng0KK+OCouODgOODgSzjg5Xjg5/jg47jg6oNCivjgqbjg6njg44s44Kz44Km44Kk44OBDQor44K/44Kx44OALOODn+ODgeOCsw0KK+OCteOCpOODiOOCpizjg5Ljg63jg4TjgrANCivjgrfjg57jg6Djg6ks44Kz44Km44K4DQor44OV44Kv44OALOODhOODqOOCtw0KK+OCreODoOODqSzjgqjjgqTjgrMNCivjg6Tjg57jg6Ljg4gs44Ko44Oq44KzDQor44K344Ky44Ok44K5LOOCqOOCpOOCpOODgQ0KK+OCq+ODjuOCpizjg5Ljg63jgqLjgq0NCivjgrnjg68s44OV44Of44KqDQor44Kq44Kr44K244KtLOODjuODquOCqg0KK+ODleOCq+ODpCzjg57jgrXjg5Ljg60NCivjgrPjgrbjgqQs44Of44OE44OrDQor44Ob44OJ44Ok44OeLOODkuODh+OCqg0KK+OCr+ODnOOCvyzjgq3jg6jjgrcNCivjgqTjgqTjgrrjgqss44Oq44On44Km44KzDQor44K/44Kr44KuLOOCv+OCseODjuODqg0KK+OCpOODr+OCqizjg57jgrXjgrcNCivjgqTjgrfjgqQs44Kk44K144OgDQor44Ov44Kr44OQ44Ok44K3LOODiOOCt+ODkuODhw0KK+OCvOODs+OCsSzjg4jjgrfjgqoNCivjg6/jgr/jg5ks44Oo44K344OfDQor44Oe44OE44Oi44OILOODkuODreOCt+OCsg0KK+ODnuODq+ODpOODnizjgrHjgqTjgrgNCivjg4rjgqvjg44s44OS44OH44OO44OqDQor44Kq44Kq44Kv44OcLOOCq+OCuuODj+ODqw0KK+OCr+ODnOOCvyzjg57jgrXjg4gNCivjg4vjgrfjgqvjg68s44OS44Ot44K3DQor44OL44OD44K/LOODleODn+OCsw0KK+OCpOOCt+ODgCzjg5Ljg4fjg5LjgrMNCivjgqvjg57jgrks44Kx44Oz44K+44KmDQor44Kr44Ky44Ok44OeLOODn+ODjuODqw0KK+ODnuODhOODoOODqSzjg4jjgrfjg5/jg4ENCivjgrXjgrXjgq0s44K544K544OgDQor44OS44Op44OOLOODqOOCt+OCq+OCug0KK+OCueOCuuOCrSzjgqTjg4Hjg63jgqYNCivjg4vjgrfjg4/jg6ks44Kx44KkDQor44Kv44Ot44Kk44OvLOOCv+OCq+OCtw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgrHjgqbjg4Es44OS44OH44Ki44OEDQor44K344Of44K6LOOCouOCreODkuODhw0KK+OCteOCv+OCsSzjgrfjg7PjgrgNCivjgrPjgr/jg4ss44K/44Kv44Oi44OqDQor44Kz44OH44OpLOODnuOCteODiA0KK+ODj+ODnuODjizjg5/jg4HjgqoNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44Om44Ki44K1LOOCseODs+OCuA0KK+OCquOCq+ODgCzjg6jjgrfjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44Oo44K344OP44OrDQor44OV44Kv44OALOOCuOODpeODs+OCpOODgQ0KK+OCq+ODn+ODoOODqSzjgr/jgqvjgrcNCivjgqTjg57jg4As44Oe44K144OS44OtDQor44K944ONLOODleODn+OCqg0KK+ODn+ODjuOCsOODgSzjg6jjgrfjg47jg6oNCivjgq/jg4Djg4rjg58s44Oe44K144Om44KtDQor44Kk44OO44Km44KoLOODn+ODieODqg0KK+OCpuOCqOODoOODqSzjg47jg5zjg6sNCivjg5/jgqbjg6ks44Kq44K144OgDQor44K544Ks44Ov44OpLOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg4rjgqrjg6bjgq0NCivjg4vjgrfjg6/jgq0s44Oo44Km44K4DQor44Kq44Kq44K/44OLLOODnuOCteOCouOCrQ0KK+OCr+ODreOCq+ODryzjgq3jg6jjgrcNCivjgq/jg5zjgr8s44OO44OW44KqDQor44K/44Og44OpLOODkuODreODkuOCsw0KK+OCqOODk+ODj+ODqSzjgq3jgqTjg4ENCivjg4rjgqvjg6Djg6ks44Oo44Km44KzDQor44Ok44Oe44ONLOODqOOCt+ODiA0KK+OCouOCteODnizjg57jgrXjg5Ljg60NCivjg5/jgqbjg6ks44Ok44K544OO44OWDQor44Ki44Op44Kr44OvLOOCt+ODs+OCuA0KK+OCs+OCuOODnizjg6jjgrfjgqLjgq0NCivjgrXjgqvjgr8s44Kz44Km44OY44KkDQor44Kz44OQ44Ok44K3LOOCquOCteODleODnw0KK+OCquOCrOODryzjg6jjgrfjgqoNCivjgqvjg4jjgqYs44K/44Kr44Om44KtDQor44Of44OE44KkLOOCseOCpOOCpOODgQ0KK+ODhuOCt+ODnizjgqvjgrrjg57jgrUNCivjgqLjgr0s44OS44Ot44Kk44OBDQor44Oi44Oq44OkLOODkuODiOOCtw0KK+ODpOODiizjgqvjgrrjgqoNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OB44KtLOODkuODreOCtw0KK+OCquOCquOCvyzjg5Ljg63jgrcNCivjg5vjg6rjgqbjg4Es44Kx44Kk44Kk44OBDQor44K/44OL44Kw44OBLOODqOOCt+OCqg0KK+ODi+OCt+ODjizjgr3jgqbjgqTjg4Hjg63jgqYNCivjg5Xjg6vjg4/jgrcs44Kz44Km44K+44KmDQor44Ki44Kt44K/LOODiOOCt+OCqg0KK+OCquOCr+OCt+ODnizjgr/jgqvjgrcNCivjgqrjgqrjgr/jg4ss44K/44OA44OS44OtDQor44Kr44Oh44Kq44KrLOODqOOCt+OCqg0KK+ODj+ODqeOCquOCqyzjgqvjg4Tjg6TjgrkNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44Ki44Op44K344OeLOODpuOCreOCqg0KK+ODiuOCrOOCteODryzjg6jjgrfjg63jgqYNCivjg6Tjg57jgqrjgqss44Kt44Oo44K3DQor44OP44K7LOODnuOCteOCq+ODhA0KK+OCreOCt+ODouODiCzjgq/jg4vjgqoNCivjgrnjgrrjgq0s44Oo44K344KqDQor44Kr44Oh44OkLOOCq+ODhOODnw0KK+ODnuOCueODgCzjg57jgrXjg4/jg6sNCivjgqjjg7Pjg4ks44Kx44Oz44Kk44OBDQor44K144Kv44Op44KkLOOCv+OCq+OCouOCrQ0KK+ODleODq+OCt+ODp+OCpizjg5XjgrjjgqoNCivjgqbjgrfjgq0s44Kr44K644OfDQor44Kz44Kk44KxLOODkuODreOCtw0KK+ODiOOCpuODnizjgrXjg4Hjg5Ljg60NCivjg4rjgqvjgrbjg4gs44OS44Ot44K3DQor44Ok44Oe44Kq44KrLOODqOOCt+ODjuODlg0KK+ODiuOCq+ODjSzjg47jg5bjg4/jg6sNCivjg4jjg5/jgr8s44OO44Oq44Kr44K6DQor44K144OI44Og44OpLOOCseOCpOOCuA0KK+ODkuOCteODnuODhCzjg4jjg6jjg4jjgrcNCivjgqrjgqzjg68s44Oe44K144OIDQor44K144Kr44KkLOOCv+OCseOCtw0KK+ODiuOCq+OCrizjg6bjg58NCivjgrXjg6/jgrDjg4Es44Oe44K144Kv44OLDQor44Oe44OE44Oi44OILOODiOOCt+OCqg0KK+ODleODq+OCq+ODryzjgrPjgqbjgqTjg4ENCivjg5Xjgr/jg58s44Kt44Oo44K3DQor44K/44OK44KrLOODleOCr+ODoA0KK+ODkuODk+ODjizjg5Ljg63jgrcNCivjgrnjg4rjg4/jg6ks44K344On44Km44K4DQor44Kk44Kx44OALOOCv+OCq+OCtw0KK+OCtOODiOOCpizjg47jg5bjg6bjgq0NCivjgqTjgrfjg44s44OE44OI44OgDQor44Kt44Og44OpLOOCt+OCsuODqw0KK+ODpOODnuODgCzjg5/jg4TjgqoNCivjg6Ljg6rjg6Ljg4gs44Oe44K144OrDQor44Kq44Kr44Oi44OILOODnuODhOOCqg0KK+ODiuOCq+OCuOODnizjgrXjgqvjgqgNCivjgq3jgr/jg6Djg6ks44Oe44K544OfDQor44OK44Kr44Kk44K3LOOCv+OCseODpuOCrQ0KK+ODr+OCtSzjg5Ljg4fjgqoNCivjgrPjgrfjg6Djg6ks44Oe44K144K3DQor44OS44OK44K/LOOCreODp+OCpuODmOOCpA0KK+ODiuOCq+ODoOODqSzjg47jg5bjgqoNCivjg5Xjgq/jgqQs44K/44OE44OS44KzDQor44K/44Kr44OALOOCq+OCuuOCqg0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg4vjgrfjg6Tjg54s44Oe44K144OS44OtDQor44OK44Kr44Ok44OeLOOCv+OCq+ODpOOCuQ0KK+ODj+ODquOCrOODpCzjg5Ljg63jgqLjgq0NCivjg57jgrnjg6Ljg4gs44Oo44K344KqDQor44OG44Op44OL44K3LOODnuOCteODjuODlg0KK+ODiuOCrOOCr+ODnCzjgqrjgrXjg6ANCivjg6jjgrfjg44s44K/44Kr44K3DQor44Oi44Oq44K/LOODjuODnOODqw0KK+ODhuODqeOCqizjg5/jg4Tjg5Ljg60NCivjg6jjgrfjg6Djg6ks44Kt44Oo44K4DQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjgq3jg6jjgrcNCivjgqrjgrbjgq0s44Oo44K344Ki44KtDQor44OS44Kw44OBLOODleOCuOOCrQ0KK+ODn+ODpOODouODiCzjg5/jgrXjgqoNCivjg6Tjg57jgrDjg4Es44Oe44K544OfDQor44Ok44Oe44Oi44OILOOCqOODhOOCsw0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjg4rjgqvjgqQs44Kr44K644OfDQor44OV44K444K/LOODkuODreOCtw0KK+OCueOCrOODr+ODqSzjgrPjgqbjgrjjg6fjgqYNCivjgqTjgrfjgrbjgq0s44K/44Kr44Om44KtDQor44K/44OE44OfLOODqOOCt+OCouOCrQ0KK+ODiuOCq+OCt+OCvyzjg57jgrPjg4gNCivjgqrjgrjjg54s44OS44Ot44Ki44KtDQor44Ki44K144K344K/LOODnuOCteODleODnw0KK+ODm+ODquOCpCzjg5/jg6jjgrcNCivjgqTjg6os44Kx44Oz44Kk44OBDQor44OV44K444Oe44KtLOOCv+ODgOOCouOCrQ0KK+OCq+OCuOODr+ODqSzjgrfjg6XjgqbjgqTjg4ENCivjg4/jgrvjgqzjg68s44Of44OE44KqDQor44OV44OK44Ok44OeLOOCqOODhOOCqg0KK+OCreODj+ODqSzjgr/jgqvjgrcNCivjgr/jgrHjg4As44Kx44Kk44KzDQor44Kk44Kk44OALOOCq+ODiuOCqA0KK+ODleODq+ODiSzjg57jgrXjgqoNCivjg6Ljg6os44K344Ol44Km44Kk44OBDQor44OV44Kv44OILOODiuOCquODpA0KK+OCquOCquODj+OCtyzjgqLjgq3jg5Ljg4gNCivjgqLjgqrjgq0s44OS44OH44K3DQor44K/44K444OeLOODkuODreOCtw0KK+OCquOCquODhOOCqyzjg4jjg6Ljg5Ljg60NCivjgqLjgqrjg44s44K444Oz44Kk44OBDQor44Kk44OO44Km44KoLOODkuODiOOCtw0KK+OCqOODs+ODiSzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrss44Oo44K344Kr44OEDQor44Ko44Oz44OJLOOCouOCreOCqg0KK+OCq+ODr+OCpCzjg5/jg4Hjg6sNCivjgqLjgqTjgrbjg68s44OV44OI44K3DQor44Kz44Kk44K/44OQ44K3LOOCreODqOODkuODrQ0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgqvjg47jgqYs44K344Ky44KtDQor44Km44Ko44Og44OpLOODnuOCteODiOOCtw0KK+OCueODn+ODqOOCtyzjg5Ljg4fjgqoNCivjg5Ljg63jgr8s44K144OI44OrDQor44Kk44OK44OI44OfLOOCq+OCuuODqOOCtw0KK+OCpOODiOOCpizjg47jg6rjgqvjg4QNCivjgq/jg5ws44OS44OH44Ki44KtDQor44Kr44OW44Op44KuLOODiOOCt+ODkuODrQ0KK+OCpOOCseODgCzjg6jjgrfjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44K144Kr44KkLOODnuOCteODkuODrQ0KK+OCq+ODiOOCpizjg6Tjgrnjgq/jg4sNCivjgr/jgrHjgqQs44Ok44K544Om44KtDQor44OP44Oz44OALOODiOOCquODqw0KK+ODiuOCrOODpCzjgqvjg4Tjg58NCivjg4/jg4Pjg4jjg6os44OS44Ot44OO44OqDQor44K344Of44K6LOODqOOCt+ODiuOCqg0KK+OCpOODnuODi+OCtyzjg57jgrXjg4gNCivjgq/jg57jg5ks44Oe44K144KqDQor44Oe44OB44OALOODhOOCq+OCtQ0KK+ODpOOCrizjg4Hjg4/jg6sNCivjgqrjg4Djg54s44Om44Kt44KqDQor44Kt44K/44K444OeLOOCuOODpeODs+OCsw0KK+OCv+ODgeODkOODiizjgr/jgq/jg63jgqYNCivjg5Xjgrjjg6Ljg4gs44K344Ol44Km44K4DQor44Of44K644OOLOOCpOOCr+OCqg0KK+OCqOOCsOODgSzjgqvjg4Tjg58NCivjgqvjg6/jg5ks44K144OE44KzDQor44OK44Kr44Og44OpLOODgeOCouOCrQ0KK+OCouOCueODnizjgq3jg6jjgqvjgroNCivjg4/jg6Djg6ks44OE44OI44OgDQor44Kk44OI44KmLOODpuOCpuOCuA0KK+OCpOOCseOCtuOCrSzjgr/jgrHjgrcNCivjg6Tjg57jgrXjgq0s44OO44Oq44Om44KtDQor44OL44K344K244OvLOOCveOCpuOCuA0KK+ODi+ODryzjgqjjgqTjg5LjgrMNCivjg5/jgqbjg6ks44OS44K144K3DQor44Kr44K/44Kq44KrLOOCouOCseODnw0KK+ODj+ODpOOCtyzjg57jgq3jgrMNCivjg5/jgrXjgq0s44K/44Kx44K3DQor44Kq44OA44Kv44OpLOODkuODreODn+ODgQ0KK+ODleOCt+ODnyzjg4Hjgqvjg4gNCivjg5Ljg63jgr8s44K/44Kr44K3DQor44OP44K/44OkLOODiOOCt+ODpuOCrQ0KK+OCteOCq+OCpCzjg6bjgqbjgrgNCivjgqTjg4As44Kk44OB44Ot44KmDQor44K144OI44KmLOOCv+ODgOOCtw0KK+ODm+OCt+ODjizjg47jg5zjg6sNCivjgqrjgqzjg68s44OK44OE44Ki44KtDQor44OV44Kv44K244OILOODquODpeOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgrvjgqTjgrgNCivjgrXjgrXjgq0s44Kt44On44Km44KzDQor44Kq44K644OBLOODn+ODhOOCqg0KK+ODleODreODouODiCzjg5/jg47jg6sNCivjg4vjgrfjg6Djg6ks44K344Oz44OkDQor44K/44Kx44OALOODiOODn+OCsw0KK+OCv+OCseODiOODnyzjgrPjgqbjgqTjg4ENCivjgqrjgqvjg4As44Of44OB44KqDQor44Oe44OILOOCq+OCuuODpuOCrQ0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjg6DjgqvjgqQs44Oo44Km44Kk44OBDQor44Kz44KsLOODpOOCueOCqg0KK+OCq+ODiOOCpizjgqvjgrrjg58NCivjg6jjgrPjgqQs44OV44Of44OI44K3DQor44Km44K344K044OhLOODnuOCteOCv+OCqw0KK+OCs+ODnuODhCzjg6jjgrfjgr/jgqsNCivjgqTjg4jjgqYs44OS44K144Ki44KtDQor44K144OI44KmLOOCt+ODpeODs+OCueOCsQ0KK+ODkuODreOCuyzjg47jg6rjg6jjgrcNCivjgrTjg58s44K444Ol44OzDQor44K/44OK44KrLOOCv+ODhOOCqg0KK+ODnuODhOODouODiCzjgr/jgqTjgqTjg4ENCivjg4/jg6Tjgrcs44K744Kk44K4DQor44K/44Kr44OP44K3LOOCq+ODhOODkuODrQ0KK+OCouODqeOCpCzjg4jjgrfjg6bjgq0NCivjg5vjgrcs44Kt44Oo44K3DQor44OG44Op44OALOOCt+OCsuODqw0KK+OCpOOCuuODjyzjg4/jg6vjgqoNCivjgrnjg4rjg4As44Ok44K544K444Ot44KmDQor44Kk44K444OeLOODleODn+OCqg0KK+OCv+OCq+ODgCzjg4jjgrfjg4/jg6sNCivjg6/jgqvjg57jg4Qs44Kz44Km44K4DQor44OE44OALOODiOOCt+ODpuOCrQ0KK+ODm+OCt+OCr+ODnizjg57jgrXjg4/jg6sNCivjg5vjg7Pjg4As44OS44Ot44OfDQor44Kr44Oe44OALOOCqOOCpOOCuA0KK+ODj+ODpOOCtyzjg5/jg4Tjg5Ljg60NCivjgqTjg57jgqQs44K/44OE44OrDQor44OE44OB44OkLOOCpOOCuuODnw0KK+ODr+ODgCzjgqTjgq/jg4gNCivjg6jjgrfjg4As44Kt44Of44OS44OtDQor44OA44OGLOOCuOODpeODsw0KK+ODj+OCueOCsyzjg6jjgrfjg47jg6oNCivjgr/jgrHjg4rjgqss44OS44Ot44Ki44KtDQor44Kq44Kv44OALOOCq+OCuuOCqg0KK+ODm+OCtyzjg6bjgqbjgrnjgrENCivjgqvjg6Hjg4As44Kr44Kq44OrDQor44OS44K344OM44OeLOODkuODreODleODnw0KK+OCquOCquODi+OCtyzjg5Ljg63jgqLjgq0NCivjgrXjg4jjgqYs44Oe44K144Ki44KtDQor44Ob44K944Kr44OvLOOCouOCreODqQ0KK+ODqOOCt+OCtuODryzjg5Ljg4fjgqoNCivjg4/jg6njg4As44Oo44K344K/44KrDQor44K144K144KtLOODiOODouODpuOCrQ0KK+OCpOOCpOODgCzjg5Ljg4fjg58NCivjgq3jgqzjg68s44Kz44Km44Kk44OBDQor44Kk44Kx44KqLOODkuODreODpuOCrQ0KK+OCouODqeOCpCzjg6TjgrnjgqoNCivjgqvjgq3jgqvjg68s44K444Ol44Oz44Kk44OBDQor44K044OI44KmLOOCr+ODi+ODiOOCtw0KK+ODn+ODpOOCs+OCtyzjg6TjgrnjgqgNCivjg5Xjgrjjgr8s44Ki44OE44OfDQor44Kv44Op44K/LOODkuODreODpuOCrQ0KK+ODouODquOCquOCqyzjg6bjg5/jgrMNCivjg6Tjg57jgqbjg6ks44Ok44K544Oo44K3DQor44Kv44Ot44OPLOODqOOCpuOCsw0KK+OCpOOCuuODj+ODqSzjg4rjgqrjgqvjgroNCivjgrfjgrLjg4jjg6Es44Oo44K344Ki44KtDQor44OL44K3LOODpOOCueODleODnw0KK+OCouOCreODpOODnizjg4jjg5/jgqoNCivjgqTjgrHjg4As44Kr44K644Kt44OBDQor44Oi44OqLOODpOOCueODnw0KK+ODkuODreOCq+ODryzjg6bjgqbjgrgNCivjgr3jg6Hjg6Qs44Ki44Kt44KqDQor44K144Kv44Op44KkLOOCqOODn+OCsw0KK+ODn+OCuuODjizjgqTjgrXjg6ANCivjg4bjg6njg4As44OI44K344Kr44K6DQor44OS44Op44Oe44OELOOCt+OCsuODqw0KK+OCquOCquOCvyzjgrTjg63jgqYNCivjg5Ljg6njg57jg4Qs44Ko44OE44KqDQor44OL44K344OALOODpuOCreOCqg0KK+ODoOODqeOCvyzjg5Ljg4fjg6bjgq0NCivjg5/jgrrjgrPjgrcs44Kx44Oz44Kk44OBDQor44OI44Of44K/LOOCv+OCq+OCqg0KK+OCq+ODr+ODnyzjgrvjgqTjgqTjg4ENCivjgrfjgqTjg44s44K344Ky44KqDQor44OK44Kr44Og44OpLOODjuODluOCqg0KK+OCpOOCt+OCq+ODryzjgrPjgqbjgqTjg4ENCivjgqvjg43jgr/jgrEs44Kr44OK44OhDQor44Kq44K344KyLOOCv+OCpOODgQ0KK+OCs+OCuOODnizjg6bjgqbjgr7jgqYNCivjg4jjg5As44Oe44Kz44OIDQor44Kk44Ov44K/LOODkuODh+OCouOCrQ0KK+OCquODjizjgrHjg7PjgrgNCivjgrPjgrXjgqss44OS44K144K/44KxDQor44Kr44Oz44OOLOOCouOCreOCqg0KK+OCpOODiOOCpizjg4jjgrfjg4TjgrANCivjgr/jgqvjgq4s44Of44OB44KzDQor44K/44Kr44OOLOOCt+ODs+OCpOODgQ0KK+OCpOODiuOCrOOCrSzjg4bjg4TjgqoNCivjg47jgrbjgq0s44K444Ol44OzDQor44K/44Kx44OALOODleODn+OCsw0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjg5vjg6rjgqvjg68s44Kr44K644OS44OtDQor44K544Ku44Oi44OILOODquODp+OCpg0KK+OCouODqeOCpCzjgrvjgqTjgrgNCivjg5Xjgrjjg6/jg6ks44OS44OH44K544KuDQor44Oo44K344OALOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCt+ODnizjgr/jgrHjgrcNCivjgrTjg4jjgqYs44OA44Kk44K444Ot44KmDQor44Kk44K644Of44K144OvLOODqOOCt+ODiOODog0KK+OCpOODr+ODluODgSzjg57jgrXjg4TjgrANCivjgqTjg57jgq3jgr8s44K344On44Km44K4DQor44Og44Op44K/LOOCt+ODp+OCpuOCsw0KK+OCt+ODouODjizjgqvjgrrjg5Ljg60NCivjgrTjgqvjgqTjg4Es44Kz44Km44K4DQor44Ok44Oe44Oi44OILOODjuODnOODqw0KK+ODiuOCrOOCt+ODnizjgrjjg63jgqYNCivjg5/jgrfjg54s44Oo44K344OS44OtDQor44Ok44K544OK44KsLOOCq+ODhOODnw0KK+OCquODleODgSzjgrjjg63jgqYNCivjgrPjg6DjgqvjgqQs44Kt44Oo44OfDQor44OK44Ks44K144OvLOOCv+OCpOOCu+OCpA0KK+OCreOCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjg4/jg6ks44Kr44K644OkDQor44OV44Kr44OALOODjuODquODleODnw0KK+OCreOCv+OCrOODryzjgr/jgqvjgqLjgq0NCivjgqrjgqrjg6Ljg6os44Os44Kk44KzDQor44OP44OW44OBLOODkuODh+OCq+OCug0KK+ODn+ODpOOCtuOCrSzjg5Ljg63jg6ANCivjgrfjg63jgr8s44Oe44K144Om44KtDQor44Kz44Of44OkLOOCs+OCpuOCuA0KK+ODhuODqeOCqizjgrjjg63jgqYNCivjg4vjgrfjgrDjg4Es44OI44K344Ki44KtDQor44Kr44ON44K644KrLOODkuODreOCouOCrQ0KK+OCueOCruODpOODnizjg4bjg4TjgrgNCivjgr/jg4Hjg5Djg4rjgq0s44OP44Or44Ki44KtDQor44Oi44Oq44Kq44KrLOODnuOCteOCq+OCug0KK+ODqOODjuODouODiCzjg5Ljg4fjgq0NCivjgq/jgrnjg4As44Kr44K644Kk44OBDQor44Ki44Oq44Ok44K5LOOCqOODhOOCqg0KK+ODhOOCuOODouODiCzjg5LjgrXjg4gNCivjg5Xjgqvjg58s44K444Ol44Oz44Kk44OBDQor44Ki44Kt44Ok44OeLOOCreODqOOCtw0KK+ODouODgeOCuuOCrSzjg6jjgrfjgr/jgqsNCivjg47jg6Djg6ks44K344Ol44Oz44K4DQor44Ov44OALOOCreODqOOCtw0KK+OCquODgSzjg5Ljg63jgrcNCivjg6Djg6njg57jg4Qs44OB44Ko44KzDQor44Ok44OOLOOCquOCteODoA0KK+ODouODgeOCuuOCrSzjgq3jg6jjgrcNCivjg5Ljg6njgr8s44OK44Kq44KtDQor44Ov44Kr44Oe44OELOODiOOCt+OCteODgA0KK+OCteOCq+ODouODqizjgqvjg6jjgrMNCivjgrPjg5Djg6Tjgrcs44Ki44Kt44OS44KzDQor44Kk44Oe44Og44OpLOODqOOCt+ODkuODrQ0KK+OCquOCquOCueOCrCzjgqvjgqjjg4cNCivjgr/jgqvjg6Tjg54s44K/44Kr44OI44OpDQor44Kt44K/44OfLOODkuODreODkuODhw0KK+ODnuOCqOODgCzjgr/jgqjjgrMNCivjg4jjg6Ljg44s44Kx44Oz44Kk44OBDQor44Kr44OW44Op44KuLOODnuOCteODpuOCrQ0KK+ODjeOCruOCtyzjgrHjgqTjgr7jgqYNCivjg6/jg4As44Om44Of44KzDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCteODiuOCqCzjgqvjgrrjg57jgrUNCivjg44s44K/44OE44OkDQor44Kk44K344OQ44K3LOODkuODreODpuOCrQ0KK+ODpOODnuOCt+OCvyzjg4Tjg43jgqoNCivjgrnjgrrjgq0s44Kr44K644OS44OtDQor44Of44Ok44Ov44KtLOODiOOCt+ODkuOCsw0KK+ODnuODhOOCpuODqSzjg6jjgrfjgqLjgq0NCivjgq3jgr/jg6Tjg54s44Oo44K344OS44OtDQor44Ok44Oe44Kw44OBLOOCuOODpeODs+OCuA0KK+ODi+OCt+ODpOODnizjgqvjg4TjgrgNCivjgqvjg6/jg5Djgr8s44Oe44K144OS44KzDQor44Of44Kr44OfLOOCuOODpeODsw0KK+OCueOCruODpOODnizjgqTjgrXjgqoNCivjgq3jgrjjg54s44OO44Oq44KqDQor44OS44Ks44K3LOOCt+ODpeOCpuOCuA0KK+OCouODmSzjg57jgrXjg4gNCivjgqTjg47jgqbjgqgs44Oo44Km44KzDQor44OV44Kr44OALOOCouOCreOCqg0KK+ODoOODqeODnuODhCzjgrjjg6Xjg7MNCivjg5Ljg6njg5Djg6ss44K/44Kx44KqDQor44OB44On44Km44OK44OzLOODqOOCt+ODnuODrQ0KK+OCq+ODr+ODoOODrSzjgrXjg4jjgrcNCivjg4Tjgq/jg4As44Of44OO44OrDQor44Of44Ok44Oi44OILOODiOOCt+ODkuODrQ0KK+OCueOCqOODkuODrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrfjg6njgqvjg68s44Kz44Km44K4DQor44K/44OK44KrLOOCseOCpOOCtw0KK+ODpOOCueOCpCzjg6jjgrfjg47jg5YNCivjgq3jg6Djg6ks44Kr44OE44KzDQor44OK44Kr44Ks44OvLOOCq+ODhOODqOOCtw0KK+OCr+OCteODjizjg4jjgrfjg5Ljg60NCivjgqLjg4Djg4Es44Oo44K344OS44OtDQor44OK44Kr44OI44OiLOODoOODhOODnw0KK+ODnuOCueODouODiCzjg4Tjg4jjg6ANCivjg6/jgr/jg4zjgq0s44Ok44K544OS44OtDQor44K/44Kr44OP44K3LOOCq+ODhOOCuA0KK+OCs+ODnOODqizjg5/jgq3jgqoNCivjgqrjgqzjg68s44Kz44Km44Kk44OBDQor44OV44K444Oi44OqLOODn+OCreOCqg0KK+OCpOODj+ODqSzjgqjjg58NCivjg6/jgr/jg4rjg5ks44Om44Km44KzDQor44Km44Op44OZLOOCpOOCteODoA0KK+ODn+OCpuODqSzjg5/jg4Tjg6sNCivjg4rjgqvjgqQs44Kx44Kk44Kk44OBDQor44Ov44Op44K344OKLOOCt+OCsuODqw0KK+ODleOCr+ODiuOCrCzjg6jjgrfjgqvjgroNCivjgqrjgqrjg4Tjg5ws44Oo44K344Ki44KtDQor44Oo44K344OALOODn+ODjuODqw0KK+ODj+ODpOODnyzjgqvjg4Tjg5LjgrMNCivjg47jg6Djg6ks44Oe44K144Kr44K6DQor44OS44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCt+ODnuODgCzjg57jgrXjgqgNCivjgrnjgrrjgq0s44OK44Kq44OI44K3DQor44OG44Op44K344OeLOOCreODn+ODkuOCsw0KK+OCt+OCuuODj+ODqSzjg6zjgqTjgrMNCivjg6Tjg57jg4jjg6Qs44Kr44K644OS44KzDQor44Kq44Ku44OOLOODkuODreOCqg0KK+ODnuODhOOCsOODnizjgrfjgrLjg5sNCivjgq3jgr/jgqQs44OI44K344OS44KzDQor44Ki44Kr44OALOOCt+OCuuOCqg0KK+OCv+OCseODqOOCtyzjgrvjgqTjg47jgrnjgrENCivjg5Ljg63jg44s44K944Kq44K444OjDQor44K344Oe44Og44OpLOODiOODnuOCtQ0KK+ODquODpeOCpuOCtCzjgrfjg6Xjg7PjgqTjg4ENCivjgq/jg4vjgqjjg4As44Oe44Kt44KqDQor44Kq44Kq44OE44KrLOODm+OCs+OCrw0KK+OCpOOCseOCrOODnyzjg5Ljg4fjg4jjgrcNCivjgqvjg43jg57jg4Qs44Kr44ON44OS44OHDQor44Kq44Kq44Ks44Ov44OpLOODqOOCt+ODjuODlg0KK+OCueOCuuOCrSzjgr/jgqvjgrcNCivjg4bjg6njg4As44K744OE44KzDQor44Kr44Ov44K144KtLOODhuODhOOCuA0KK+OCquOCt+ODpOODnizjg6jjgrfjg5LjgrUNCivjgqvjg6/jgqvjg58s44K344Ky44KtDQor44OK44Kr44Og44OpLOODiOOCt+OCouOCrQ0KK+ODn+OCv+ODiyzjg4jjgrfjg5LjgrMNCivjgrPjg57jg4Qs44OS44Ot44K/44KrDQor44Ki44Kr44Kk44OvLOODiOOCt+ODkuOCsw0KK+OCpOODgeOCpCzjg5Xjg5/jg6QNCivjg5Xjgq/jg6Tjg54s44Oe44K144Ki44KtDQor44Kv44OJ44KmLOODqOOCt+ODhuODqw0KK+ODnuODhOOCt+OCvyzjgrfjg7PjgrgNCivjg4vjgrfjgqvjg68s44Om44Kt44OS44OtDQor44Ki44Oe44Ks44OfLOOCt+ODsw0KK+ODpOOCt+OCrSzjgqLjgqTjgqTjg4Hjg63jgqYNCivjg6/jg4As44Ki44OE44KzDQor44Oe44K544OALOODiOODouOCsw0KK+ODqOOCt+ODoOODqSzjg6bjgqbjgrgNCivjgqrjg4As44K344Oz44K4DQor44Oo44Kz44Ok44OeLOOCv+OCq+ODleODnw0KK+OCpOODiOOCpCzjg6bjg6rjgrMNCivjgrnjgrrjgq0s44Kr44OE44OS44OtDQor44OK44Ks44OP44OeLOODkuODreODpuOCrQ0KK+ODpOOCtuOCrSzjg4bjgqTjgr7jgqYNCivjg6Tjgrjjg54s44Kt44Oo44K3DQor44Og44Kr44Ko44OALOOCteODiOODqw0KK+ODiuOCq+ODoOODqSzjgr/jg4TjgqLjgq0NCivjg6Tjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44OO44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgrXjg4jjgqYs44OI44K344OkDQor44Kk44OO44Km44KoLOODkuODreODpuOCrQ0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjg4rjgqvjg4vjgrcs44OP44Or44OS44K1DQor44Km44Ko44OALOODkuODreODnw0KK+OCouOCpOOCtuODryzjgqLjgq3jgqoNCivjgqLjg6njgqQs44OI44Oi44OK44OqDQor44OK44Ks44Kk44K3LOOCq+ODhOODnw0KK+ODj+OCs+OCpCzjg57jgrXjgqoNCivjgq/jgrnjg6Ljg4gs44K/44Kr44Oo44K3DQor44Ki44Oq44OI44OfLOOCuOODhOODreOCpg0KK+ODj+ODqSzjgr/jg5/jgqoNCivjg5vjg7Pjg54s44Oe44K144OP44OrDQor44OP44K344Oi44OILOODn+ODgeODj+ODqw0KK+ODj+OCt+ODouODiCzjg57jgrXjgqoNCivjgqrjgqrjg4zjg54s44Kk44K144KqDQor44OP44OK44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+OCt+ODouODiCzjgqLjgq3jgrMNCivjgrXjgq/jg6njgrbjg68s44OS44OH44OI44K3DQor44Ki44Kr44KuLOODpOOCueODkuODiA0KK+OCouOCreOCuuOCrSzjg57jgrXjg4jjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44KtDQor44Ki44Op44KkLOOCv+ODnuOCqg0KK+OCouOCteODoOODqSzjgqvjg4Tjg58NCivjg4Hjg5As44Ki44KzDQor44Ko44Kw44OBLOODpuOCreOCv+OCqw0KK+ODleODgeODjizjg4jjgqrjg6sNCivjg5Xjgrjjg57jg6ss44OS44K144OIDQor44OV44K444K144OvLOODjuODquOCqg0KK+ODleOCq+ODgCzjg5Xjg5/jg5Ljg60NCivjg5Xjgq/jgqQs44OS44Ot44K3DQor44OV44Kv44OI44OfLOODquODpeOCpuOCteOCrw0KK+OCruODnizjgqvjgrrjg6jjgrcNCivjg4/jgq7jg6/jg6ks44Kk44OB44Ot44KmDQor44OP44OpLOOCreODqOOCv+OCqw0KK+ODj+ODq+ODiizjgr/jgqvjgqLjgq0NCivjg4/jg4Tjg58s44Ki44K644K1DQor44OP44Ok44K7LOOCt+ODs+OCtA0KK+ODj+ODpOODhCzjg5Ljg63jgrcNCivjg5Ljg6njgqrjgqss44Oe44Om44OfDQor44OS44Ot44K3LOODjuODluOCsw0KK+ODm+OCt+OCsyzjg57jgrXjg5Ljg60NCivjgqTjg4Hjgqvjg68s44Oe44K144OrDQor44Kk44Ks44OvLOOCreODqOOCtw0KK+OCpOOCpOOCuuOCqyzjgqLjg6rjgrUNCivjg5/jg4Tjg6Ljg4gs44OS44Ot44K/44KrDQor44Kk44Oe44Og44OpLOODkuODreODpuOCrQ0KK+OCpOODiuODnyzjg5Ljg63jg5/jg4ENCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44K7LOODpuOCreOCqg0KK+OCueOCruODj+ODqSzjg5Ljg63jgr/jgqsNCivjgqTjgrfjg6Ljg4gs44Kx44Oz44K4DQor44Kk44K344K644KrLOODiOOCquODqw0KK+OCpOODiOOCpizjg6jjgqbjgrgNCivjgqvjg5/jgqvjg68s44K/44OA44Of44OEDQor44Kk44Ov44K144KtLOOCseOCpOOCsw0KK+OCpOOCuuODnyzjg5/jg68NCivjgqvjg57jg4As44K/44Kr44OS44OtDQor44K/44Kx44Km44OBLOODn+OCrQ0KK+ODjuODoOODqSzjgqjjg5/jgrMNCivjgqvjgr/jg44s44OG44Or44OS44K1DQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+OCq+ODr+ODgCzjg5Ljg63jg6bjgq0NCivjgqTjgrfjgqQs44Ok44K544KtDQor44Kr44Ov44K344OeLOOCqOOCpOOCsw0KK+OCreOCr+OCq+ODryzjg6bjgqvjg6oNCivjgq3jgrcs44K/44Kv44K3DQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgrPjg6Tjg54s44Ki44Kt44OpDQor44Kz44Kv44OcLOODqOOCpuOCsw0KK+OCs+ODs+ODiSzjg5/jgqgNCivjgrPjgrfjgqos44Oe44K144OI44K3DQor44Kv44OcLOODhOODiOODoA0KK+ODm+OCt+ODjizjg4jjgrfjg6QNCivjgq/jgrXjgqvjg68s44Kx44Kk44Kk44OBDQor44Kv44K544OfLOODpuOCv+OCqw0KK+ODnuOCreODjizjg4Hjg5Ljg60NCivjg57jg6vjg6Tjg54s44Oe44Kz44OIDQor44OK44Kr44Og44OpLOODgeODiOOCuw0KK+ODnuODhOODouODiCzjgqLjg4TjgrcNCivjg6Hjgrbjg68s44OS44OI44K3DQor44Of44ONLOODnuOCteODpOOCuQ0KK+ODn+ODiCzjg47jg5bjgqoNCivjg5/jg6Tjg6Ljg4gs44K344Ky44OrDQor44Of44Ok44K244OvLOOCq+ODhOODnw0KK+ODn+OCuuOCvyzjgrHjg7PjgrgNCivjg6Ljg6os44OP44K644KtDQor44Oi44Oq44Oi44OILOODnuODiuODlg0KK+ODouODreOCquOCqyzjg5/jg4Tjg5Ljg60NCivjgqLjg7Pjg4njgqYs44Kk44Ov44KqDQor44Of44On44Km44KsLOOCv+OCq+ODpuOCrQ0KK+ODiuOCrOOCqizjgqLjgq3jg5Ljg60NCivjg4rjgqzjgrss44K544K544OgDQor44OK44Kk44OI44KmLOOCteODgOODn+ODhA0KK+ODiuOCq+OCuOODnizjg4jjgqrjg6sNCivjg4rjgqvjg57jg6ss44OI44K344KzDQor44OK44Kr44Og44OpLOODquODpeOCpuOCpOODgQ0KK+ODiuOCq+ODi+OCtyzjg5Ljg4fjg4gNCivjg4rjgqvjg44s44OE44Kr44K1DQor44K344OK44OALOOCouOCreODqQ0KK+ODiuODquOCvyzjgr/jgq/jgrgNCivjg4vjgqTjg6Tjg54s44OS44Ot44K3DQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCuuOCqyzjg4jjgrfjg6QNCivjg5Ljg44s44Kr44K644Om44KtDQor44OP44K744Ks44OvLOODn+ODhOOCouOCrQ0KK+OCquOCrOOCvyzjg5Ljg4jjgrcNCivjg6DjgrXjgrcs44Of44OE44OrDQor44Kq44Kq44Kv44OcLOODj+ODq+OCtw0KK+OCquOCquOCteODryzjg5Ljg4fjgq0NCivjgqrjgqrjgr8s44K344Oz44K4DQor44Kq44Kq44Ov44OALOODkuODreODjuODqg0KK+OCquOCq+ODgCzjgr/jgqvjg6jjgrcNCivjgqrjgqvjg6Ljg4gs44OS44Ot44K3DQor44Kq44Kt44Oi44OILOODnuOCteODkuOCsw0KK+OCquODi+ODhOOCqyzjg57jgrXjgqLjgq0NCivjgqrjgrXjgq0s44K/44Kr44K3DQor44K144Ko44KtLOODqOOCt+ODkuODrQ0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrgNCivjgrXjgqvjgq0s44Kt44On44Km44KzDQor44K144Kr44Km44KoLOOCv+OCq+ODpuOCrQ0KK+OCteODjizjg4jjgrfjg5Xjg58NCivjgrXjg4jjgqYs44Ok44K544K3DQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODr+OCpCzjg5/jg4Hjg5Ljg60NCivjgrvjgq3jg4/jg6ks44Ki44Kt44OpDQor44K744K344OiLOOCt+ODpeOCpuOCpOODgQ0KK+OCt+ODkOOCvyzjg4bjg4Tjg63jgqYNCivjg6Djg6njgr8s44Oq44Ol44Km44K/44Ot44KmDQor44K344Of44K6LOODj+ODpOODiOOCtw0KK+OCt+ODouOCquOCtSzjgr/jgrHjgrcNCivjgrfjg47jg4As44OP44OE44KoDQor44K344Op44KkLOOCq+OCuuODkuOCsw0KK+OCueODieOCpizjg6Ljg4jjg6bjgq0NCivjgrnjgq7jgrfjg54s44Oe44K144OrDQor44K544Ok44OeLOODiOODouODjuODqg0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjgrfjg6Xjgq/jg6Qs44K444Ol44Oz44Kk44OBDQor44K/44Kw44OBLOODiuOCquODpuOCrQ0KK+ODn+ODpOODouODiCzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44Kx44Oz44Oq44Ol44KmDQor44K/44Kr44OP44K3LOODpuOCreOCqA0KK+OCv+OCq+ODj+OCtyzjgqTjg4Hjg63jgqYNCivjgr/jgqvjgrss44K344Ky44KtDQor44Of44Kr44OfLOOCseOCpOOCueOCsQ0KK+OCv+OCseODpOODnizjg4jjgrfjgqLjgq0NCivjgr/jg4rjg5ks44OS44Ot44Om44KtDQor44K/44OK44KrLOODkuODreOCsw0KK+OCv+ODiuOCqyzjg47jg6rjgqLjgq0NCivjgr/jg4vjgrDjg4Es44K444Ol44Oz44KzDQor44K/44OG44Kk44K3LOODiuOCquODpA0KK+ODhuODq+OCreODiizjgqLjgq3jg6gNCivjg4jjg5/jgqrjgqss44OK44Kq44KtDQor44OI44Oo44OALOODnuOCteODkuOCsw0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjg4Tjgrgs44OS44Ot44K3DQor44OE44OO44Ks44KkLOODpOOCueODjuODqg0KK+OCpuODgeODgCzjg57jgrXjg5Xjg58NCivjgqbjg4As44Kx44Kk44K4DQor44Km44Ko44OP44OpLOOCt+ODs+OCuA0KK+OCpuOCqOODjizjg6bjgqbjgrgNCivjgqbjg6Hjg4/jg6ks44Oe44Kz44OIDQor44Km44K544KkLOOCs+OCpuODmOOCpA0KK+ODr+ODgCzjg6jjgrfjgqLjgq0NCivjg6/jgr/jg4rjg5ks44K144OI44K3DQor44Ok44OP44KuLOODiuOCquODleODnw0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg6Tjg57jgrDjg4Es44OI44Oi44Kr44K6DQor44Ok44Oe44Oi44OILOOCseODs+OCuOODreOCpg0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Tjg57jgrfjgr8s44Oq44Oz44K444OlDQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOOCueODgCzjg57jgrXjg58NCivjg6jjg4njgqzjg68s44OO44Oq44KqDQor44Oo44Ot44K644OkLOODiuOCquODkuOCtQ0KK+ODqOOCt+ODnuODhCzjg4Hjg4/jg6sNCivjgqjjg4Djg5Ljg60s44Of44OJ44OqDQor44Kz44K444OeLOODpOOCueODkuOCtQ0KK+OCquOCrOODryzjg6HjgrDjg58NCivjgr/jgqvjgrss44Oe44Of44KzDQor44OV44Kv44K/LOOCq+OCuuODnw0KK+OCv+OCsOODgSzjg5Ljg63jg6ANCivjgqLjgrXjg44s44OI44K344OS44KzDQor44OV44K444KkLOOCseODs+OCuA0KK+ODleOCuOODr+ODqSzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44OS44Ot44Kr44K6DQor44OP44Ok44K3LOODiOOCt+OCouOCrQ0KK+ODkuODqeOCpCzjg5Ljg63jgr/jgqsNCivjgqTjg4HjgqQs44K344Ky44Om44KtDQor44Kk44Kx44OALOOCpOOCr+OCuOODreOCpg0KK+OCpOOCt+ODnuODqyzjg5/jg68NCivjgqTjg4jjgqYs44OG44OE44OkDQor44Kr44Ky44Ok44OeLOODhOODqOOCtw0KK+OCq+OCteODnizjg47jg6rjg57jgrUNCivjgqvjg4jjgqYs44Kz44Km44K/DQor44Kt44Kv44OBLOODiOODouOCouOCrQ0KK+OCreOCv+OCrOODryzjg5/jg4Hjg4/jg6sNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K/44Ot44KmDQor44Kz44Oz44OJLOODjuODquOCsw0KK+OCr+ODieOCpizjg4/jg6Tjg4gNCivjgq/jgrXjg5Xjgqss44K344OO44OWDQor44Oe44OE44OA44Kk44OpLOODnuOCrQ0KK+ODn+OCr+ODiyzjg6TjgrnjgrcNCivjg5/jg6Tjg4Es44K/44Kr44OV44OfDQor44Of44Ok44K244OvLOODkuODreOCrQ0KK+ODouODquOCvyzjgq/jg6vjg58NCivjg6Djg63jgr7jg44s44OS44Ot44Ki44KtDQor44OK44Kr44Of44OBLOOCt+ODp+OCpg0KK+ODi+OCt+ODoOODqSzjgrfjg7Pjg6QNCivjgqrjgqzjg68s44K/44Kr44K3DQor44Kq44Kq44KoLOODnuOCteODn+ODgQ0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqvjg6Tjg54s44Of44OE44Oo44OqDQor44K144Kk44OI44KmLOOCv+OCq+ODjuODlg0KK+OCteODjizjgr/jgq/jg6QNCivjgrXjg4jjgqYs44K/44Kr44K3DQor44K344KkLOODn+OCteOCsw0KK+OCt+ODs+OCreODpeOCpizjg57jgrXjg6bjgq0NCivjgrnjgq7jg6Tjg54s44Kt44Oo44K/44KrDQor44K/44Kr44KuLOODqOOCt+OCqg0KK+OCv+OCseOCpuODgSzjgqvjg5vjg6sNCivjgr/jg4rjgqss44OO44OW44KzDQor44K/44Or44K144OvLOOCouOCreOCsw0KK+ODiOODouODjizjgqvjgrrjg58NCivjg6/jgr/jg4rjg5ks44Oe44K144OI44K3DQor44Ok44Oe44Oi44OILOODkuODh+ODiA0KK+ODpOODnuOCtuOCrSzjg5Xjg5/jg44NCivjg6jjg43jg5/jg4Qs44Oe44Kz44OIDQor44Om44OqLOODiOODouOCqg0KK+ODnuODhOOCsOODnizjg5Xjg5/jgrMNCivjgqLjgrjjg54s44Ok44K544Ki44KtDQor44Ki44Oe44OOLOODgeOCouOCrQ0KK+OCouOCquOCrSzjg6jjgrfjgrMNCivjgqLjgqrjgq0s44OK44Kq44OS44K1DQor44Ki44Op44KtLOOCq+ODhOOCuA0KK+OCouOCteOCr+ODqSzjgr/jg4TjgqoNCivjgqLjgrrjg54s44Oq44KoDQor44K144K/44KxLOOCseOCpOOCsw0KK+ODgOOCpOOCqizjg5Ljg4fjgq0NCivjg4rjgqvjg6Djg6ks44K/44Kr44KzDQor44OV44K444KkLOOCv+ODhOODjuODqg0KK+ODleOCuOOCquOCqyzjg4bjg4Tjg63jgqYNCivjg5Xjgq/jgqQs44Kz44Km44K4DQor44OV44OK44OALOODpuOCpuOCsw0KK+OCtOODiOOCpizjgqvjgqTjg4Hjg63jgqYNCivjg4/jg57jg4As44Oo44K344OfDQor44K144OI44KmLOOCu+OCpOOCtA0KK+ODj+ODquODnizjg4rjgqrjgq0NCivjg4/jgrvjgqzjg68s44Ki44Kt44OS44KzDQor44OP44K/LOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+ODg+ODiOODqizjg6bjgq0NCivjg4/jg6Tjg58s44K544Of44OS44OIDQor44OP44Ok44K3LOODnuOCteODjuODqg0KK+ODkuOCqOODgCzjg5/jg4HjgqvjgroNCivjg5Ljgqrjgq0s44OI44Km44Oh44KkDQor44Ob44OALOODkuODreOCrQ0KK+ODkuODreOCueOCqCzjgrjjg6Xjg7PjgrMNCivjg5Ljgrfjg4As44OS44Ot44K3DQor44Ob44Oz44K044KmLOODnuOCteODiA0KK+ODm+ODquOCqCzjgqLjgq3jg47jg6oNCivjg5vjgrfjg4os44Kz44Km44Kk44OBDQor44Kk44OB44Kr44OvLOODkuODiOOCtw0KK+OCpOOCrOOCvyzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgqTjgqTjgrrjgqss44Oe44Kz44OIDQor44Kk44Kx44OALOOCv+OCq+ODpuOCrQ0KK+ODm+OCveOCpCzjgrHjg7Pjgr/jg63jgqYNCivjgqTjg44s44K444Ol44OzDQor44Kk44OO44Km44KoLOODleODn+ODjuODqg0KK+OCquOCquODouODqizjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrfjgqQs44Kx44Kk44K444Ot44KmDQor44Kk44K344KkLOODpOOCueOCtw0KK+OCpOOCt+ODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgr3jgqzjgqQs44Om44Km44KzDQor44Kk44OI44KmLOOCteODiOOCtw0KK+OCpOODr+ODj+OCtyzjg6bjgqbjgrMNCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44Kr44Ks44OWLOOCt+ODs+OCuOODreOCpg0KK+OCq+ODnuODm+ODqizjg4jjg6Ljg5LjgrMNCivjgqvjg5/jg6Qs44OO44OW44Om44KtDQor44Kr44OK44KkLOODjuODquOCsw0KK+OCq+ODs+ODgCzjg4HjgqgNCivjgqvjg47jgqYs44K/44Kx44K3DQor44K/44Oe44K/44OLLOOCt+ODng0KK+OCq+ODiOOCpizjg5Ljg63jgq0NCivjgqvjg4jjgqYs44K444Ol44Oz44KzDQor44Kr44Ov44Kw44OBLOOCs+OCpuOCuA0KK+OCq+ODr+ODoOODqSzjgrfjg6XjgqbjgrgNCivjgqvjg6/jgrfjg54s44OO44OW44KzDQor44Kt44Kv44OBLOOCpOODgeODreOCpg0KK+OCreODoOODqSzjgr/jgqvjg5LjgrUNCivjgq3jgrcs44OK44Kq44KtDQor44Kt44K/44Ks44OvLOODiuOCquODnw0KK+OCreODqOODj+ODqSzjg4Tjg4jjg6ANCivjgrPjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kz44OA44OeLOODpOOCueODkuODrQ0KK+OCs+OCpOODryzjg4jjg6Ljg6bjgq0NCivjgrPjgrjjg54s44K144OI44K3DQor44Kz44Oz44OJLOOCseODs+OCpOODgQ0KK+OCr+ODnCzjg4rjgqrjgq0NCivjgq/jg57jgq/jg6ks44Kx44Oz44Kk44OBDQor44OS44Op44KkLOOCs+OCpuOCuA0KK+OCr+ODreODgCzjgqLjg4TjgrcNCivjgq/jg63jgrXjg68s44Ko44Kk44K444Ot44KmDQor44Oe44Ko44OALOOCteODiOOCtw0KK+OCt+ODluOCv+ODiyzjgrPjgqbjgrgNCivjg57jgrnjg4As44Om44Km44KzDQor44OP44OpLOOCseODs+OCuA0KK+ODnuODhOOCpCzjgrfjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44OS44Ot44K3DQor44Oe44OE44OK44OfLOODqOOCt+OCsw0KK+ODnuODhOOCquOCqyzjgrfjg7PjgrQNCivjg57jg4Tjg6Tjg54s44Ki44Kt44OpDQor44Of44Kr44OfLOODkuODh+OCqg0KK+ODn+ODiuODnyzjgqLjgq3jg6kNCivjg5/jgr/jg6Djg6ks44Oe44K144OI44K3DQor44Of44OE44OeLOOCq+OCuuODkuODiA0KK+ODn+ODpOOCt+OCvyzjg5Ljg63jg6bjgq0NCivjg4/jgrfjgrDjg4Es44K344Ky44KtDQor44Of44K644OOLOODiOOCt+ODpuOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44Oq44OkLOODoOODhOOCqg0KK+ODoOODjeOCq+OCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgr8s44Om44Kt44Oi44OIDQor44Of44On44Km44K444OzLOODn+ODgeOCqg0KK+ODiuOCrOOCt+ODnizjg6jjgrfjgqvjgroNCivjg4rjgqTjg4jjgqYs44Oe44K144KtDQor44OK44Kr44K444OeLOODhuODq+ODnw0KK+ODiuOCq+ODouODiCzjg5Ljg63jgqvjgroNCivjg4rjgqvjg6Djg6ks44Om44Km44K4DQor44OK44Kr44Og44OpLOOCseODs+OCvw0KK+ODiuOCq+ODpCzjg6/jgr/jg6sNCivjg4rjg7Ms44Kx44Kk44K544KxDQor44OK44OI44OqLOOCseODs+ODpA0KK+ODi+OCpOOCtuODryzjg6jjgrfjg47jg6oNCivjg4vjgrfjg4As44Ok44K544KqDQor44OL44K344OKLOOCreODqOOCtw0KK+ODi+OCt+OCtuODryzjg6jjgrfjg5Ljg60NCivjg47jgqzjg68s44OS44Ot44OkDQor44OO44Og44OpLOODnuOCteODkuODrQ0KK+OCquOCrOOCteODr+ODqSzjgqvjgrrjg4bjg6sNCivjgqrjgqzjg68s44Ok44K544OO44OqDQor44Kq44OP44K3LOOCteODiOOCtw0KK+OCquOCquODjizjg5Ljg63jg6TjgrkNCivjgqrjgrfjg54s44OE44OI44OgDQor44Kq44Kq44K/44KtLOODleODiOOCtw0KK+OCquOCquODhOOCqyzjgqjjgqTjgq0NCivjgqrjgqrjg6Qs44Og44ON44KqDQor44Kq44Kr44OALOODkuODreODpuOCrQ0KK+OCquOCq+OCtuOCrSzjgrPjgqbjgr/jg63jgqYNCivjgqrjgqrjg58s44Ki44Ok44KzDQor44Kq44OO44OH44OpLOODnuOCteODkuOCsw0KK+OCquODjizjgr/jgqvjgqLjgq0NCivjgqrjgrbjgq0s44Oo44K344Oe44K1DQor44K144Kk44OALOODouODouOCsw0KK+OCteOCq+OCsOODgSzjgrPjgqbjgrgNCivjgrXjgqvjgqQs44OK44Kq44KtDQor44K144KzLOOCouOCq+OCtw0KK+OCteODs+ODmSzjg57jgrPjg4gNCivjgrXjgrXjgq0s44Om44K/44KrDQor44K144K/44KxLOODiOOCt+OCrQ0KK+OCteODiOOCpizjg6bjgq3jgr/jgqsNCivjg5Ljg6njg44s44OS44Ot44Ki44KtDQor44K144Ov44Og44OpLOODkuODreOCtw0KK+OCu+OCreODjSzjgqvjgrrjgqLjgq0NCivjgrfjg5Djg4/jg6ks44Kr44K644OODQor44K344OQ44K244KtLOODnuOCteOCsw0KK+OCt+ODnizjgrPjgrnjgrENCivjgrfjg5/jgros44Kx44Kk44K544KxDQor44K344Oi44Kr44Ov44OZLOOCouOCreODkuODrQ0KK+OCt+ODjuOCtuOCrSzjg5Ljg63jgrcNCivjgrfjg6njg4/jg54s44Of44OB44OS44K1DQor44K344On44Km44OK44K0LOOCv+OCq+OCt+OCsg0KK+OCueODgCzjg6HjgqTjgrjjg63jgqYNCivjgrnjgq7jg6Ljg4gs44Of44KrDQor44K544Ku44K/LOOCv+OCq+ODpuOCrQ0KK+OCueODn+ODgCzjgqLjg4TjgrcNCivjgrnjgrrjgq0s44Oe44K144OV44OfDQor44K544K644KtLOOCt+OCsuODqw0KK+OCueOCuuODjizjgqvjg4Tjg5Xjg58NCivjgr/jgrDjg4Es44Of44Om44KtDQor44K/44Kr44KuLOODiOOCt+OCq+OCug0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg5/jg4ENCivjgr/jgqvjg4/jgrcs44OS44OH44OO44OqDQor44K/44Kr44OP44K3LOOCseODs+OCpOODgQ0KK+OCv+OCq+ODjizjg5/jgq3jgrMNCivjgr/jgqvjgrfjg54s44K/44OA44K3DQor44K/44Kx44OALOOCpOOCuuODnw0KK+OCv+OCseODiuOCqyzjgrHjg7PjgqTjg4ENCivjgr/jgrHjg6Tjgrks44Os44Kk44K4DQor44K/44Og44OpLOODkuODreODpuOCrQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44K/44Kr44Oo44K3DQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODi+OCsOODgSzjgqvjg4Tjg5LjgrMNCivjg4bjg6njg57jgqgs44K744Kk44Kk44OB44Ot44KmDQor44OI44Kt44OvLOODgeOCqOOCsw0KK+ODiOODquOCtOOCqCzjgrXjg4Djg6bjgq0NCivjg4Tjg4Hjgr/jg4ss44OS44OH44KtDQor44OE44K444Og44OpLOOCv+OCq+OCtw0KK+ODhOOCq+ODouODiCzjgrHjg7Pjgr/jg63jgqYNCivjg4Tjg4Tjg58s44Oe44K144OO44OqDQor44Km44OB44OOLOOCteODiOOCtw0KK+ODjeOCuizjg4jjgrfjgqLjgq0NCivjgqbjgqjjg4Tjg5ws44Oo44K344K/44KrDQor44Km44Kq44K644OfLOOCteODs+ODmuOCpA0KK+ODr+ODgCzjg5/jg4Tjg47jg6oNCivjg6/jgr/jg4rjg5ks44Oo44K344KtDQor44Ok44OWLOOCs+OCpuOCuA0KK+ODpOODnuODgCzjg6bjgqbjgrMNCivjg5LjgrXjg44s44Oq44KrDQor44Ok44Oe44Kw44OBLOODjuODquODpuOCrQ0KK+ODpOODnuOCq+ODryzjg6bjgq3jgrMNCivjg6Tjg57jg6Ljg4gs44OK44Kq44OIDQor44Ok44Oe44Oi44OILOOCt+ODs+OCpOODgQ0KK+ODpOODnuOCpuODgSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrbjgq0s44K/44Kr44KqDQor44OP44Ku44Ov44OpLOODn+OCreOCqg0KK+ODqOODjeOCtuODryzjgqjjg6oNCivjg6jjgrfjg4As44K144OB44KzDQor44Oo44K344Oe44OELOOCseODs+OCv+ODreOCpg0KK+OCuuOCtyzjg6bjgq3jgqoNCivjgqTjg6/jgqvjg68s44K944Km44K/44Ot44KmDQor44Kk44K344Oe44OELOODkuODreODpOOCuQ0KK+OCouODmSzjgqjjgqTjgqTjg4ENCivjgqLjgqvjgqTjgrcs44Ko44Kk44OBDQor44Ki44Oe44Ks44K/LOOCv+OCq+OCtw0KK+OCouODs+OCtuOCpCzjg57jgrXjg5Ljg4cNCivjgqLjg6njgq0s44OI44K344Of44OEDQor44Ki44K344OALOOCteODiOOCtw0KK+ODgeODp+OCpizjgqjjgqTjgrgNCivjg4njgqQs44Kx44Oz44Kk44OBDQor44Ko44OO44Oi44OILOOCreODqOODnw0KK+ODleOCuOOCpCzjgrXjg4Tjgq0NCivjg5Xjgrjjgr8s44K/44Kr44K3DQor44OV44Kv44Og44OtLOOCv+OCq+OCtw0KK+ODleODiuOCrSzjg4rjgqrjgq0NCivjg5Xjg6vjg6Qs44OI44Oi44OkDQor44Kk44Ov44K144KtLOOCteOCqOOCsw0KK+OCpOODiOOCpizjgrfjg63jgqYNCivjg4/jg4As44OS44OH44Ki44KtDQor44OP44OK44OJLOODn+ODjuODqw0KK+ODj+ODqeODgCzjgr/jgrHjgrcNCivjg4/jg6njgr7jg44s44OO44OW44OS44OtDQor44OP44K344Oi44OILOOCteODiOOCtw0KK+ODj+ODg+ODiOODqizjg57jgrPjg4gNCivjg4/jg6Tjgrcs44K/44Kr44Oo44K3DQor44OS44Ks44K3LOOCq+OCuuOCqg0KK+ODkuODqeODjizjg5Ljg63jgrMNCivjg5Ljg6rjgq0s44Kx44Oz44Kk44OB44OtDQor44Ob44Oz44OALOOCteODiuOCqA0KK+ODm+OCt+ODpOODnizjg5/jgq7jg5Xjg58NCivjgqTjg4Hjg4/jg6ks44K/44Kr44K3DQor44Kk44Ks44Op44K3LOOCq+ODhOODjuODlg0KK+OCpOOCseODgCzjg6rjg6fjgqYNCivjgqTjg57jg6Djg6ks44Kq44K144OgDQor44Kk44OK44Og44OpLOODiOODouODjuODqg0KK+OCpOODjuOCpuOCqCzjg6Tjgrnjg5Ljg60NCivjgqTjgrXjgqss44K344Ky44OrDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCpCzjg47jg5zjg6sNCivjgqTjgrfjgrrjgqss44Om44Kt44KqDQor44Kk44OI44KmLOOCt+ODp+OCpuOCsw0KK+OCpOODiOOCpizjg57jgrXjg58NCivjgqTjg4jjgqYs44Ko44Kk44K4DQor44Kk44Ov44OK44KsLOODiuOCquOCsw0KK+OCuOODs+ODkCzjg4Tjg43jg47jg6oNCivjgqvjgrjjg6Ljg4gs44K/44Kv44OkDQor44Kr44KzLOODiOOCt+ODkuOCsw0KK+OCq+ODsyzjgr/jgq/jg6QNCivjgqvjg47jgqYs44Oe44Om44OfDQor44Kr44K544OkLOODnuOCteODiuODqg0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jg5ks44Oo44K344Om44KtDQor44Kr44Ov44Kr44OfLOOCseODs+OCpOODgQ0KK+OCq+ODr+ODjizjg57jgrXjg5LjgrMNCivjgqvjg6/jgrfjg54s44Ok44K544OO44OWDQor44Kt44Kv44OBLOODnuODouODqw0KK+OCreODoOODqSzjgqLjg4TjgrcNCivjgq3jg44s44Ki44KtDQor44Kt44K/44Ks44OvLOOCquOCteODoA0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjgqTjg4jjgqYs44K344Oz44K4DQor44Kz44Kv44K344On44KmLOODnuOCteODqw0KK+OCs+ODs+ODiSzjg57jgrXjg6bjgq0NCivjgrPjg6Tjg54s44OS44Ot44K/44KrDQor44Kv44Os44Oe44OELOOCv+OCq+ODkuODhw0KK+OCr+ODquODpeOCpizjg6jjgrfjgqgNCivjg57jg4Hjgr8s44Oe44K144KtDQor44Oe44Or44Kk44OBLOODnuOCteODpuOCrQ0KK+ODnuOCueODgCzjg6bjgq3jgrMNCivjg57jg4TjgqQs44OS44OH44K3DQor44Oe44OE44Oi44OILOODqOOCt+OCrQ0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjgqrjgqss44K/44Kx44K3DQor44Oe44OE44Ok44OeLOOCs+OCpuOCv+ODreOCpg0KK+ODn+OCt+ODnizjgqvjgrrjg58NCivjg5/jg4Tjg6Ljg4gs44Kt44Oo44OfDQor44Of44Ok44Oi44OILOODiOOCt+OCouOCrQ0KK+OCpuODgeODpOODnizjg5/jgq3jgrMNCivjg5/jgrrjg44s44Oe44K144Oo44K3DQor44Oi44KuLOODouODpuODqw0KK+ODouODqizjg57jgrXjg5Ljg60NCivjg6Ljg6rjgr8s44Kr44K644OS44K1DQor44Oi44OI44OQ44Ok44K3LOOCteODiOODqw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jgqLjgq0NCivjg6Djg6njgr8s44OI44Oi44OO44OqDQor44OK44OQLOODkuODreODpuOCrQ0KK+ODiuOCrOOCquOCsSzjgrXjg4jjgrcNCivjg4rjgqzjgr8s44K344On44Km44OY44KkDQor44OK44Kr44Ks44OvLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+OCuOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44K/44OE44OkDQor44OK44Kr44OL44K3LOOCpOOCuuODqw0KK+ODiuOCq+OCqizjgqLjgq3jgrMNCivjg4rjgqvjg6Tjg54s44OV44Of44KqDQor44ON44Oi44OILOODn+ODhOOCouOCrQ0KK+ODi+OCt+ODgCzjg6jjgrfjg6QNCivjg4vjgrfjg6Djg6ks44Kt44Ov44OgDQor44OO44OW44OP44OpLOOCs+OCpuOCuA0KK+ODjuOCvuOCqCzjg4/jgrjjg6ENCivjgqrjgqrjgq4s44K/44Kx44K3DQor44Kq44Kq44KoLOODqOOCpuOCpOODgQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjg6Ljg6os44OK44Kq44KtDQor44Kq44OOLOOCouOCreODqQ0KK+OCquOCquOCvyzjgqLjgrXjgrMNCivjgqrjgqrjgr/jg4ss44Ok44K544OS44OtDQor44Kq44KrLOODleODn+OCsw0KK+OCquOCq+ODnuODhCzjgr/jgqvjg5Ljg60NCivjgqrjgqvjg6Ljg4gs44OO44Oq44KqDQor44Kq44Kq44OOLOODiuOCquOCrQ0KK+ODiOOCr+ODn+ODpCzjg4bjg4Tjg6QNCivjgrXjgqTjg4jjgqYs44Om44K/44KrDQor44K144Kr44Kt44OQ44OpLOOCv+OCq+OCqg0KK+ODn+OCv+ODiyzjgrHjg7PjgqTjg4ENCivjgrXjg44s44K344Ol44Km44K+44KmDQor44K144K144KtLOOCu+OCpOOCuA0KK+OCteODiOOCpizjgr/jgqvjgqvjgroNCivjgrXjg4jjgqYs44OO44Oc44OrDQor44K144OI44KmLOODiOODouOCrQ0KK+OCteODpOODjizjgqTjgq/jg6QNCivjgrvjg7Pjg4os44OI44K344Of44OEDQor44K344OW44K/44OLLOOCreODp+OCpuOCsw0KK+OCt+ODnuODoOODqSzjg6jjgrfjg5/jg4QNCivjgrfjg4rjg4As44Kr44OE44OfDQor44K344Op44OP44OeLOOCv+ODreOCpg0KK+OCt+ODpeODiOOCpizjg6bjg5/jgrMNCivjgrnjg4As44OK44Kq44OS44OtDQor44K544Ku44Ok44OeLOODkuODh+ODnuOCtQ0KK+OCueODn+OCquOCqyzjg4jjg6Ljg6QNCivjgrnjgrrjgq0s44OS44OH44OS44OtDQor44K/44OQ44KzLOOCr+ODn+OCsw0KK+OCv+OCrOODryzjg57jgrPjg4gNCivjgr/jgqvjg4/jgrcs44K344Oz44OkDQor44Ov44K/44OK44OZLOODnuOCrQ0KK+OCv+OCq+OCr+ODqSzjgrHjg7PjgrnjgrENCivjgr/jgqvjgqrjgqss44K044KmDQor44K/44Kx44OP44OKLOODnuOCteOCq+ODhA0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgr/jg4rjgqss44Kx44Oz44K/44Ot44KmDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCv+ODiuOCqyzjg47jg6rjg5Ljg60NCivjgr/jg4vjgqQs44Om44Oq44KzDQor44K/44K344OtLOOCseODs+OCpOODgQ0KK+ODhuODqeODouODiCzjgqjjgqTjgrgNCivjg4jjgq3jgqrjgqss44K/44Kr44K344KyDQor44OI44Of44Kr44OvLOODjuODquOCsw0KK+ODiOODquOCq+OCpCzjg4rjgqrjgq0NCivjg4Tjg4As44Kz44Km44Kk44OBDQor44K144Kr44KkLOODn+ODm+OCsw0KK+OCpuODgCzjgqLjg4TjgrMNCivjgqbjgqjjg44s44Kq44K144OgDQor44Km44Oh44OP44OpLOODiOOCt+OCqg0KK+OCpuOCt+ODkCzjg5/jg47jg6sNCivjg6/jgqvjgqos44Kx44Kk44K4DQor44Ov44K/44OZLOODnuOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg4DjgqTjg4ENCivjg4jjg5/jg6Tjgrks44OI44K344OS44K1DQor44Ok44Oe44OALOODnuOCrQ0KK+ODpOODnuOCs+OCtyzjg4DjgqTjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K444Ol44OzDQor44Ok44Oe44K344K/LOODiuOCquOCsw0KK+ODpOODiuOCrizjg4jjgrfjgqLjgq0NCivjg6jjgrPjgrXjg68s44K/44Kv44OkDQor44Oo44Kz44Ok44OeLOOCq+OCuuODjuODlg0KK+ODqOOCt+ODgCzjg4rjgqrjg4gNCivjg6jjgrfjg58s44K/44Kk44KtDQor44Oo44K344K244OvLOODiOOCt+OCq+ODhA0KK+OCpOODnizjg57jgrXjg5Ljg60NCivjgq/jg5ws44Oe44K144OS44KzDQor44OK44Kr44OP44OpLOOCv+OCr+ODpA0KK+OCquOCsOODqSzjg4jjgqrjg6sNCivjgr/jgqvjg57jg4Qs44Kx44Oz44Kk44OBDQor44Kk44OO44Km44KoLOODoOODjeODkuODrQ0KK+OCouOCpOODkCzjgrXjg4jjgrcNCivjgqLjg57jg44s44OK44Kq44KzDQor44Ki44Oq44K/LOODkuODh+OCouOCrQ0KK+OCouOCv+OCsOODgSzjg5Ljg63jgrcNCivjg4Djg4Ys44K344Ky44OS44KzDQor44Ko44K244OvLOODiuODquODkuODhw0KK+ODleOCuOODouODiCzjg5/jgq3jgqoNCivjg5Xjgq/jg4njg6Es44K/44Kr44K3DQor44OV44Or44Kr44OvLOOCouOCseODnw0KK+ODj+OCruODr+ODqSzjg6rjg6Xjgqbjgr8NCivjg4/jg4rjgr8s44OS44Op44KvDQor44OP44K744Ks44OvLOODpuOCv+OCqw0KK+OCq+OCuOODr+ODqSzjg6jjgrfjgrMNCivjg4/jg4Pjg4jjg6os44K/44Kr44Om44KtDQor44OS44Ks44K3LOODquODpeOCpuOCueOCsQ0KK+ODkuODqeOCqizjg57jgrXjg6bjgq0NCivjg5Ljg63jgrss44Of44OE44OrDQor44Ob44Oz44OeLOOCv+OCseOCtw0KK+ODleOCr+ODreOCpCzjgrHjg7PjgrgNCivjgqTjg4Hjg47jgrvjgq0s44OI44K344OS44OtDQor44Kk44Kx44OALOODpuOCv+OCqw0KK+OCpOODnuODoOODqSzjgrHjg7PjgrnjgrENCivjgqTjg47jgqbjgqgs44Kr44K644KqDQor44Kk44K344OALOOCs+OCpuOCuA0KK+OCpOOCt+OCq+ODryzjgqLjgq3jg6kNCivjgqTjg6/jgrXjgq0s44K/44Kx44K3DQor44Kr44Kk44K644KrLOODkuODreOCsw0KK+OCq+ODn+OCrOOCrSzjg47jg6rjg5Ljg4cNCivjgqvjg43jgrMs44Kv44OL44OS44KzDQor44Kr44K/44Ku44OqLOODiuOCquODpuOCrQ0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jgqvjg58s44Kz44Km44K4DQor44Kr44OE44KtLOOCouOCreODiOODog0KK+OCreODoOODqSzjgrXjg4jjg6sNCivjgq3jg47jgrfjgr8s44Om44Kr44OqDQor44Kt44K/44Ok44OeLOODgeODkuODrQ0KK+OCouODoeOCt+OCvyzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44K/44Kr44OS44OtDQor44Kz44KsLOODjuODquODpuOCrQ0KK+OCs+OCpOOCsSzjgqLjgq3jgqoNCivjgrPjg7Pjg4ks44OI44Oi44OO44OqDQor44Kv44Oc44KtLOOCpOOCr+OCsw0KK+OCr+ODqeOCt+ODiizjgqvjg4Tjg5Ljg4gNCivjgq/jg63jgq0s44OE44Oo44K3DQor44Oe44Ko44OALOODpOOCueODkuODrQ0KK+ODnuOCteODgCzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg4As44OK44Kq44OfDQor44Oe44OE44Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODoeOCq+OCvyzjg5Ljg63jgq0NCivjg5/jg6Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44Oi44OqLOODpuOCqw0KK+ODouODquOCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgqvjg58s44Oe44K144Ki44KtDQor44Og44K/LOODkuOCteOCtw0KK+ODiuOCrOODpOODnizjg4bjg4Tjg6QNCivjg4rjgqvjg4/jg6ks44K/44Kr44KzDQor44OK44Kr44Og44OpLOOCouOCreODjuODlg0KK+ODiuOCq+ODoOODqSzjg57jg6oNCivjg4rjgqvjgr8s44Kz44Km44Kk44OBDQor44OK44Kr44K244OvLOOCseOCpOOCueOCsQ0KK+ODi+OCtyzjgqvjg43jg47jg5YNCivjg4vjgrfjg6Tjg54s44Of44OK44KzDQor44OO44OILOOCuOODpeODs+OCpOODgQ0KK+OCquOCrOODryzjg6jjgqbjgrgNCivjgqrjgqrjg5As44Oe44K144OS44OHDQor44Kq44Og44OpLOODnuODpg0KK+OCpOOCseODnuODhCzjgr/jgqvjgrMNCivjgqrjgqTjg4As44OS44OI44K3DQor44Kq44Kr44K244OvLOODkuODiOOCtw0KK+OCquODjizjg4rjgqrjg58NCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44K1DQor44K144Kr44KkLOODjuODluODpOOCuQ0KK+OCteOCr+OCvyzjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44Oe44K144OS44KzDQor44K144OI44KmLOOCs+OCpuOCuA0KK+OCteODr+ODj+OCtyzjgr/jg4Tjg6bjgq0NCivjgrfjg5Djgr8s44Ki44Ok44KzDQor44K344Of44K6LOOCq+ODhOODpuOCrQ0KK+OCt+OCquODnyzjgrfjg7PjgrgNCivjgrfjgr/jg6ks44OS44K144K3DQor44K544Ku44K/LOOCq+ODhOODkuOCsw0KK+OCueOCseOCrOODryzjg47jg5bjg6jjgrcNCivjgrnjgrrjgq0s44Ki44Kt44OS44OtDQor44K344On44KmLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCv+OCpCzjg57jgrXjg4bjg6sNCivjgr/jgqvjgq4s44OG44OE44Ot44KmDQor44K/44Kr44OP44K3LOODiOOCt+OCqg0KK+OCv+OCq+ODpOODnizjg5Ljg4fjg4TjgrANCivjgr/jgrHjgrfjgr8s44K344On44Km44K+44KmDQor44K/44KzLOODqOOCt+OCrQ0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjg5jjgqQNCivjgr/jg4ss44Kr44K644OK44OqDQor44K/44K644KxLOOCu+OCpOOCpOODgQ0KK+ODiOODouODiOOCtyzjgrHjg7PjgrgNCivjg4Tjg4Hjg6Ljg4gs44OV44Of44KqDQor44OE44OO44OALOOCt+ODp+OCpuOCuA0KK+OCpuODgeODgCzjgrXjg4jjg6sNCivjgqbjgqjjg4As44Ki44Kt44OO44OqDQor44Km44OO44KtLOODjuODluODkuOCsw0KK+ODr+ODgCzjg5Ljg63jgr/jg4QNCivjg6/jgrfjgros44K344On44KmDQor44Ov44K/44OK44OZLOOCs+OCpuOCu+OCpA0KK+ODpOODnuODgCzjgr/jgqvjg4gNCivjg6Tjg57jgrDjg4Es44Oo44Km44K4DQor44Ok44Oe44Oi44OILOODn+ODhOOCvuOCpg0KK+ODpOODnuODiizjgrvjgqTjgqTjg4Hjg63jgqYNCivjg6Tjgrfjg60s44K/44Kx44K3DQor44Oo44Kz44Ok44OeLOODnuOCteODkuOCsw0KK+ODqOOCt+ODgCzjg4jjg6Ljg58NCivjg6bjgq0s44K744OE44KzDQor44OS44Op44Kr44OvLOODnuODiuODlg0KK+ODouODquOCpOODgSzjgqjjgqTjgrjjg63jgqYNCivjgrfjg5/jgros44Kx44KkDQor44OV44K444Ol44KmLOOCt+ODs+OCpOODgQ0KK+ODj+OCrOODryzjgr/jgqvjgrcNCivjg4/jgrvjgqzjg68s44OS44OH44Ki44KtDQor44OS44Op44OOLOOCv+OCr+ODpA0KK+ODm+ODs+OCtOOCpizjg4bjg6vjg5LjgrMNCivjgqTjgrHjg4As44OI44K344Om44KtDQor44Kk44K344Kr44OvLOODkuODreOCrQ0KK+OCpOODiOOCpizjg6jjgrfjg58NCivjgqvjg4rjg6Tjg54s44Kz44Km44K4DQor44Kr44K/44Ku44OqLOOCt+ODs+OCueOCsQ0KK+OCreODouODiCzjgr/jgq/jg6QNCivjgq3jg6Tjg54s44K744Kk44K4DQor44Kz44K444OKLOOCseODsw0KK+OCs+ODs+ODiSzjg5Ljg63jg5LjgrMNCivjgq/jg6rjgr8s44K144OI44K3DQor44Oe44K544OALOODgOOCpOODgQ0KK+ODn+OCq+ODnyzjg5/jg4TjgqoNCivjg5/jg68s44K/44Kr44OO44OWDQor44Oi44OB44K644KtLOODjuODluODpuOCrQ0KK+ODouODquODpOODnizjg4jjgrfjgqoNCivjg4rjgqzjg5Xjgrgs44Kt44Of44OS44OIDQor44OK44Kr44K444OeLOODnuOCteODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5LjgrXjg4gNCivjg4rjgrnjg44s44OK44Kq44KtDQor44OO44OALOODpuOCpuOCsw0KK+OCquOCrOODryzjg6rjg6fjgqbjgrMNCivjgqrjgqrjgqvjg68s44K444Ol44Oz44KzDQor44Kq44Kq44K/44OLLOOCseODsw0KK+OCquOCr+ODoOODqSzjg57jg4rjg58NCivjgqTjgq4s44Ki44Kt44OO44OqDQor44K144OK44OALOODqOOCt+ODkuODrQ0KK+OCteODiOOCpizjg5Ljg4fjg5LjgrUNCivjgrvjgq0s44Oo44Km44Kk44OBDQor44K344OQ44K/LOODpuOCreODjuODqg0KK+OCt+ODnuOCq+ODryzjgrfjgrLjg6sNCivjgrfjgqrjgrjjg6os44OS44Ot44K3DQor44K544OALOODiOODouODj+ODqw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgr/jgqvjg4As44K/44Kr44OO44OqDQor44K/44Kr44OP44K3LOOCreODp+OCpuOCsw0KK+OCv+OCq+OCuSzjg4Tjg6jjgrcNCivjgr/jg4vjgrDjg4Es44OK44Kq44KtDQor44OE44ON44Kr44OvLOODkuODreODleODnw0KK+OCpuOCqOODj+ODqSzjg5Ljg4fjgqLjgq0NCivjg6Tjgq7jg6Ljg4gs44OS44Ot44K3DQor44Ok44Oe44Kw44OBLOODiOODouOCsw0KK+ODpOODnuOCt+OCvyzjgqvjgrrjgq0NCivjg6Tjgrbjgq0s44OK44Kq44KtDQor44Oo44K344OALOODj+ODq+ODkuOCsw0KK+OCouOCpOOCq+ODryzjg5Ljg63jg5Xjg58NCivjg4Hjgqvjg4/jg6ks44Kq44K144OgDQor44Ov44K/44OK44OZLOOCv+OCq+OCqA0KK+ODjuOCtuOCrSzjg4bjg6vjgqLjgq0NCivjgqLjgqvjg4vjgrcs44OK44Kq44OS44OtDQor44K344Oe44Oi44OILOOCouODiOODoA0KK+OCouODiuOCtuODryzjg5/jg47jg6sNCivjgqTjgqbjg4Es44Oe44Kz44OIDQor44Kk44K344Kr44OvLOOCs+OCpuOCpOODgQ0KK+OCpOODgeOCq+ODryzjgr3jg6gNCivjgqTjg57jg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Km44OB44Ok44OeLOODqOOCt+OCv+OCqw0KK+OCquOCpuOCteOCqyzjg57jgrXjgr/jgqsNCivjgqrjgqrjgr/jg4ss44OS44OH44KtDQor44Kq44Kq44OQ44Ok44K3LOOCt+ODs+OCuA0KK+OCquOCsOODqSzjg5Ljg63jgrMNCivjgqvjgq3jg6Ljg4gs44OS44Ot44K3DQor44Kr44OI44KmLOOCt+OCsuODjuODqg0KK+OCq+ODn+ODpOODnizjg5Ljg63jgqvjgroNCivjgqvjg6/jgrss44OK44Kq44KtDQor44Kt44K/44K444OeLOOCouOCreODkuODrQ0KK+OCr+OCteOCq+ODmSzjg57jgqjjgrMNCivjgrPjgqTjg4cs44OS44OH44KtDQor44Kz44Oe44OELOOCseOCpOOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgrXjg4jjgqYs44K444Ol44OzDQor44K344Ol44KmLOODnuOCteODpA0KK+OCt+ODjuODgCzjg57jgrnjg58NCivjgrfjg5/jgros44K144OI44K3DQor44K544Ks44Ov44OpLOOCt+OCsuODleODnw0KK+OCueODn+OCq+ODryzjgqvjg4TjgqLjgq0NCivjgr/jgqvjgrss44Kt44Oo44K/44KrDQor44K/44Kx44OALOOCseOCpOOCpOODgQ0KK+OCv+ODiuOCqyzjgrHjg7PjgrgNCivjgr/jg5Djgr8s44Of44Ov44KzDQor44OE44OB44OP44K3LOODoOODjeODkuODrQ0KK+ODiOODoOODrSzjg4rjg4Tjg5LjgrMNCivjg4rjgqvjgqzjg68s44K/44Kr44KzDQor44OK44K5LOODkuODreOCtw0KK+ODi+OCt+ODj+ODqSzjg4rjgqrjgq0NCivjg47jg6Djg6ks44Kr44K644OS44KzDQor44OP44K744Ks44OvLOOCseODs+OCpOODgQ0KK+ODj+ODqeODgCzjg4jjg6LjgrMNCivjg5Ljgrjjg6os44Ko44OqDQor44OV44K444K/LOODjuODluOCsw0KK+ODm+OCveOCq+ODryzjgr/jg4TjgqoNCivjg57jgrnjg5bjg4Es44K/44Kr44K3DQor44Oe44OE44OK44KsLOODpuOCrQ0KK+ODnuODhOODpOODnizjg4bjg4Tjg6QNCivjg5/jgr8s44Of44OO44OrDQor44Of44Oo44K3LOODqOOCpuOCsw0KK+ODoOODqeODpOODnizjg57jgrPjg4gNCivjg6Ljg6rjgrfjgr8s44Kr44K644OS44OtDQor44Ok44K444OeLOODiuOCquOCsw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjgq/jg6rjg4/jg6ks44Oe44K144KtDQor44Oo44Kz44Ok44OeLOODqOOCpuOCsw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg4gNCivjgq/jg6/jgrfjg54s44K544Kw44OrDQor44K144Kr44Oi44OILOODkuODh+ODjuODlg0KK+OCpOODiOOCpizjgr/jg4Djg5Ljg60NCivjgqbjg6Hjg4rjgqQs44K544K544OgDQor44Kq44Kr44K344OtLOOCt+ODreOCpg0KK+OCq+ODr+OCquOCqyzjg5Ljg4fjgq0NCivjgq/jg5As44K/44Kr44K3DQor44Kz44Km44OALOODnuOCteOCv+OCsQ0KK+OCteODiOOCpizjg57jg6bjg58NCivjgqLjg5ks44Oe44K144OP44OrDQor44K/44Kr44OP44K3LOODkuOCteODnw0KK+OCv+ODkOOCvyzjgqvjg4Tjg6bjgq0NCivjg4rjgqvjgqzjg68s44Kz44Km44Kk44OBDQor44OP44K344Oi44OILOODiOOCquODqw0KK+ODkuODqeODjizjg57jgrXjgr/jgqsNCivjg5vjgr3jg44s44Ki44Kt44OS44OIDQor44Og44Op44Kr44OfLOOCseOCpOOCsw0KK+ODqOOCt+ODoOODqSzjgqjjg6oNCivjgqLjg57jg6Qs44Oe44K144OrDQor44OB44On44KmLOODgOOCpOOCueOCsQ0KK+OCtOOCpuODgCzjgq3jg6jjg47jg5YNCivjg4/jg6Tjgqvjg68s44OS44Ot44KtDQor44OV44Or44K/LOODiuODq+OCrQ0KK+OCpOOCpOODgCzjgr/jgqvjg5Ljg60NCivjgqTjgrfjg6/jgr/jg6os44OS44Ot44Kr44OEDQor44Kr44OQ44Ok44OeLOODnuOCteOCrQ0KK+OCq+ODs+ODgCzjg6Tjgrnjg5Ljg4gNCivjgq3jgr/jg6Djg6ks44Oo44K344KqDQor44Kz44Oz44OOLOOCs+OCpuOCpOODgQ0KK+ODnuODgeODgCzjg4/jg6vjg58NCivjg57jg4TjgqQs44K/44Kx44K3DQor44Of44Km44OpLOOCseOCpOOCtA0KK+OCv+ODj+ODqSzjg47jg6rjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44KzDQor44OK44Kr44Of44ONLOODnuODouODqw0KK+ODiuOCq+OCtuODryzjgq3jg6jjgrcNCivjgqrjgqrjgr8s44K344Ky44Ki44KtDQor44Kk44K344Kr44OvLOODqOOCpg0KK+OCpOODiOOCpizjg4jjg6Ljg6QNCivjgrXjg4jjgqYs44OE44Kw44OS44OHDQor44K344OQ44K/LOODiuOCquOCrQ0KK+OCveODoeODpCzjgqLjgq3jg5LjgrMNCivjgr/jgrHjg4As44Ki44Kt44OpDQor44K/44OK44KrLOOCs+OCpuOCpOODgeODreOCpg0KK+OCv+ODi+OCt+OCvyzjg5Xjg5/jg44NCivjg4Tjg4Hjg6Qs44Oo44K344KzDQor44Ov44K444OeLOODquOCsw0KK+ODpOODnuODgCzjg5Ljg63jgq0NCivjg6Tjg57jgrbjgq0s44Om44K/44KrDQor44K/44Kr44OP44K3LOODnuOCteOCrQ0KK+OCouODs+ODieOCpizjg6bjgq0NCivjgqTjgrfjg6Ljg4gs44Oq44On44Km44K544KxDQor44Kk44Ov44K144KtLOODn+OCuuODnuOCtQ0KK+OCpuODoeODj+ODqSzjgr/jgqvjgrcNCivjgqrjgqzjgr8s44Ok44K544K3DQor44Kq44OL44K244OvLOOCt+OCsuOCrQ0KK+OCq+OCuCzjgqrjgrXjg6ANCivjgqvjg43jgrMs44OO44OW44Kr44OEDQor44Kr44Ov44Oe44K/LOODkuODreOCrQ0KK+OCr+ODnCzjg4jjg6Ljg47jg6oNCivjgrPjgqbjgrXjgq0s44Kz44Km44Kk44OBDQor44K144Kk44ObLOODiuODq+ODkuODrQ0KK+OCteODiuODgCzjgqrjgrXjg6ANCivjgrfjgrfjg4ks44Kv44OL44KqDQor44K544Ku44OP44OpLOOCreODqOOCt+OCsg0KK+OCv+OCq+OCquOCqyzjg6bjg58NCivjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44OK44Kr44KqLOOCt+ODs+OCuA0KK+ODiuOCq+ODjizjgrgNCivjg4vjgrfjgqvjgqQs44OI44K344Of44OEDQor44ON44Ot44OhLOODkuODreOCtw0KK+ODj+ODlizjg57jgrPjg4gNCivjg5Ljg6njgqQs44Kr44Kq44OqDQor44OV44K444Ov44OpLOODiOOCquODqw0KK+ODm+ODs+ODnizjg6bjgq3jg47jg5YNCivjg57jg4Tjgrbjg68s44OB44Kr44OpDQor44Of44Ok44Oi44OILOODpOOCueOCuA0KK+ODouODquODpCzjg5vjg57jg6wNCivjg6Tjg44s44OS44Ot44K3DQor44Ok44Oe44K344K/LOODnuOCpOOCsw0KK+ODqOODgCzjgr/jgqvjg5Ljg60NCivjg6/jgr/jg5ks44K/44Kr44K3DQor44Ki44Kt44OQLOOCseOCpOOCpOODgQ0KK+OCouODmSzjg57jg6bjg58NCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Kk44K344Og44OpLOODpuODn+OCsw0KK+OCpOODiOOCpizjg57jgrXjg6sNCivjgqTjg57jgqQs44K/44Kx44K3DQor44Km44Ko44OP44OpLOODouODiOOCsw0KK+OCpuODoeODhCzjgqLjgq3jg5LjgrMNCivjgqTjg57jg4vjgrcs44OS44Ot44Om44KtDQor44Kq44Kq44Kk44K3LOODnuOCteODj+ODqw0KK+OCquOCq+ODjizjg6bjgq0NCivjgqrjgqzjg68s44OI44Kq44OrDQor44Kr44Ks44OfLOOCqOODquOCqw0KK+OCq+OCv+ODpOODnizjg5/jg4TjgrMNCivjgqvjg58s44Oo44K344OG44OrDQor44Kr44Ov44K144KtLOODkuODiOOCtw0KK+OCq+ODr+ODouODiCzjg5/jg4HjgqoNCivjgq3jgr/jg6Ljg4gs44OE44OI44OgDQor44Ku44On44Km44OWLOODkuODreOCsw0KK+OCs+OCpOOCseODgCzjgr/jg4Tjg63jgqYNCivjgrPjg4Djg54s44K/44Kk44OB44Ot44KmDQor44Kz44OQ44Ok44K3LOODkuODh+ODkuODiA0KK+OCteOCpOOCtOOCpizjg5/jg6/jgrMNCivjgrXjgqvjgqzjg58s44Kk44OB44Ot44KmDQor44K144K144KtLOODiuODiuOCqA0KK+OCteODryzjgrHjg7PjgrQNCivjgrfjg5/jgros44Om44Kt44KqDQor44K344On44Km44OALOOCt+OCsuODjuODqg0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg6kNCivjgqTjgrfjg4/jg54s44Kx44Oz44OIDQor44K/44Kr44OP44K3LOODnuOCreOCsw0KK+OCv+OCseODryzjgrfjg7PjgrgNCivjgr/jg4/jg6ks44K144OI44K3DQor44OE44OE44OfLOODnuOCs+ODiA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgrgNCivjg4rjgqvjgrjjg54s44OO44K+44OgDQor44OK44Kr44Og44OpLOOCveOCpuOCpOODgeODreOCpg0KK+OCpOOCseODgCzjg57jgrXjgr/jgqsNCivjg4vjgrcs44OE44ON44Ki44KtDQor44OO44OO44Kk44OB44OkLOODnuOCueOCqg0KK+ODj+OCt+OCuuODoSzjg6bjgqbjgrMNCivjg4/jg4Pjg4jjg6os44Om44KmDQor44Kk44OO44Kw44OBLOOCq+ODhOODleODnw0KK+ODkuODnuOCrSzjg4jjg6Ljg47jg6oNCivjg5Xjgqvjgrbjg68s44Oq44KoDQor44OV44K444OK44KsLOODleODn+OCsw0KK+ODleODq+ODpCzjg57jg6rjgrMNCivjg5vjg6rjgqvjg68s44OI44Oi44OS44OtDQor44Kk44Kw44OBLOOCv+OCq+ODkuODrQ0KK+ODn+ODhOODj+OCtyzjgqjjgqTjgqTjg4ENCivjg5/jg6Tjgrfjgr8s44Oo44Km44KzDQor44Og44Op44Oe44OELOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg47jg6oNCivjg6Tjg44s44K/44OA44K/44KrDQor44Ok44Oe44OALOOCv+ODhOOCqg0KK+ODpOODnuODouODiCzjg6Djg43jgr/jgqsNCivjg6jjgrfjg4As44Oq44On44KmDQor44Ov44K/44OK44OZLOODkuODh+ODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg4jjgrfjgqgNCivjgrPjgqbjg4As44K144OI44OrDQor44Kq44Ks44OvLOODkuODreOCouOCrQ0KK+OCouOCreODouODiCzjgrnjgrnjg6ANCivjgqLjgrXjg44s44OI44Oi44OS44KzDQor44Ki44OZLOODnuOCteOCquODnw0KK+OCpOODhOODjizjg5/jgq3jgqoNCivjgqTjg4Hjg47jgrss44Kz44K644KoDQor44Kk44Oq44K/LOODpOOCueOCouOCrQ0KK+OCpOOCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjgqTjg4Hjgq0s44Oe44K144OIDQor44Kk44OP44OpLOOCreODqOOCv+OCqw0KK+OCpOODnuOCuizjg4Tjg6jjgrcNCivjgqTjg6/jgrnjgq4s44Of44KrDQor44Km44K544KkLOODnuOCteODkuODrQ0KK+OCqOODiOOCpizjgrHjg7PjgrgNCivjgqrjgqYs44Oo44K344OS44OtDQor44Kk44Ov44Kt44OqLOODr+OCv+ODqw0KK+OCquOCquODhOOCrSzjgrjjg6Xjg7MNCivjgqrjg6Djg6ks44Kv44OfDQor44Kq44Kr44K244KtLOODiOODouODn+ODgQ0KK+OCquOCrOODryzjgqLjgq3jg6kNCivjgq3jgr/jg6Djg6ks44Oe44Oq44KzDQor44Kq44Kq44Ok44OeLOODgeOCuuODqw0KK+OCq+OCteOCtuOCrSzjg6jjgrfjg5Ljg60NCivjgqvjg4Tjg44s44K/44Kr44OO44OqDQor44Kr44OI44OqLOOCseODs+OCuA0KK+OCrOODnyzjg5Ljg63jgrcNCivjgqvjg6/jgqvjg58s44Oe44K144OfDQor44Kr44Ov44OfLOOCt+ODs+OCuA0KK+OCreOCv+OCt+ODrSzjgqvjgrrjg6jjgrcNCivjgq3jg6Djg6ks44K344Ky44OrDQor44Kv44K444Op44Kq44KrLOODgOOCpOOCrQ0KK+OCpOOCt+OCsOODrSzjgr/jg63jgqYNCivjgqTjg4rjg4jjg58s44OA44Kk44K544KxDQor44Kz44K644OeLOODnuOCpOOCsw0KK+OCs+OCt+OCpCzjg4jjg6Ljg5Ljg60NCivjgrPjg4vjgrcs44K/44OA44K3DQor44Kz44OQ44Ok44K3LOODqOOCt+OCqg0KK+OCteOCpOODiOOCpizjg4jjg6LjgqgNCivjgrXjgqvjgqQs44Of44ON44KqDQor44K144Kr44Oi44OILOOCuOODpeODs+OCsw0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqTjgrfjgrDjg60s44OS44OH44K/44KrDQor44K344OK44OALOODqOOCt+OCsw0KK+OCt+ODnuODgCzjg6jjgrfjgrXjg4ANCivjgqTjg4jjgqYs44Kt44On44Km44KzDQor44K544Ku44Ok44OeLOOCq+OCuuODig0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrvjgq3jgrDjg4Es44Kx44Kk44KzDQor44Kr44Of44OkLOOCq+OCueODnw0KK+OCv+OCq+ODjizjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Kz44Km44Kk44OB44Ot44KmDQor44K/44Kr44Of44K244OvLOODquODpeOCpuOCrQ0KK+OCv+OCseOCpuODgSzjgr/jgqvjgq3jg6gNCivjgr/jgrHjg6Ljg4gs44Kr44K644OS44KzDQor44K/44OB44OQ44OKLOOCouODpOOCsw0KK+OCv+ODiuOCqyzjg4rjgqrjgrMNCivjgr/jg4rjg58s44OE44ON44KqDQor44K/44OO44Kq44KrLOODn+OCqOOCsw0KK+ODgeODpeOCpizjgrXjg6TjgqsNCivjg4Tjg4Hjg6Qs44K744Os44OKDQor44OI44K4LOODnuOCteOCsw0KK+ODiOODqOODgCzjgr/jgq/jg6QNCivjg4rjgqvjgrjjg54s44OI44Oi44KzDQor44OK44Ks44K/LOODqOOCt+ODkuOCsw0KK+ODiuOCrOODj+ODqSzjg6jjgrfjg6bjgq0NCivjg4rjgqvjg6Djg6ks44Oe44K144Kr44OEDQor44OL44K344Kr44OvLOOCpOODr+OCqg0KK+ODi+ODryzjg6bjgq3jgqgNCivjg47jgqzjg58s44Om44KrDQor44OP44K344K644OhLOOCv+OCq+OCtw0KK+ODj+OCu+ODmSzjg6jjgqbjg5jjgqQNCivjg4/jg4rjg5bjgrUs44Kq44K144OgDQor44OP44Ok44K3LOODnuOCs+ODiA0KK+ODj+ODq+OCv+ODiyzjgr/jgqvjg5Ljg60NCivjg5Ljg6fjgqbjgqgs44OI44Oi44OS44OtDQor44OS44Op44OM44OeLOOCq+OCuuOCqg0KK+ODleOCr+ODgCzjgr/jgqvjg5Ljg60NCivjg5Xjgrjjgqos44K/44Kr44Om44KtDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+ODleODq+OCq+ODryzjg57jgrXjg5/jg4QNCivjg5Xjg68s44Of44KqDQor44Oe44Ko44Kr44OvLOODq+ODnw0KK+ODnuOCreOCvyzjgqvjg4Tjg6bjgq0NCivjg57jg4Tjgqbjg6ks44Ko44Oq44KzDQor44Oe44OE44OALOOCv+OCq+OCtw0KK+ODnuODhOODn+ODpCzjgrHjg7PjgqTjg4ENCivjg57jg4rjg5ks44Oq44On44Km44K544KxDQor44Of44OK44OILOODkuODreODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg58NCivjg6Ljg4jjg6jjgrcs44Oe44Kz44OIDQor44Oi44Oq44K/LOOCseODs+OCuA0KK+ODpOOCrizjgrHjgqTjgrnjgrENCivjgqzjg7Ms44OP44OK44KoDQor44Ok44Oe44Kw44OBLOODpOOCueODnuOCtQ0KK+ODpOODnuOCteOCrSzjgrjjg6Xjg7MNCivjg6Tjg57jg4As44K/44OE44K4DQor44Ok44Oe44OL44K3LOODiuOCquOCrQ0KK+ODqOOCs+OCvyzjg4jjg6Ljg5Xjg58NCivjg6jjgrfjgqvjg68s44K/44Kv44OkDQor44Oo44K344Og44OpLOOCr+ODi+ODkuOCsw0KK+ODr+OCreOCvyzjg4jjgqrjg6sNCivjg6/jgr/jg4rjg5ks44K944KmDQor44Ki44Oe44KzLOODqOOCt+OCqg0KK+ODnuODjizjgqLjgq0NCivjgqbjg4Hjg6Djg6ks44OB44OK44OEDQor44K144Kv44Op44KkLOODnuODnw0KK+OCt+ODqeOCpCzjg6bjgr/jgqsNCivjg4bjg6njgq/jg6ks44Oo44Km44K4DQor44Kq44Kr44OALOOCv+ODhOOCtw0KK+OCtOODiOOCpizjgqLjgq3jg5Ljg60NCivjg4Tjg5Djgq0s44K744Kk44Kk44OB44Ot44KmDQor44Kk44OK44Ks44KtLOODkuODh+ODiOOCtw0KK+ODm+ODquODmSzjg6Ljg4jjgrgNCivjgqvjgqQs44Oo44K344KoDQor44K/44Kr44OALOODiOOCr+ODkuOCsw0KK+OCs+OCv+ODiyzjg5Xjg5/jg5LjgrMNCivjgqTjg4/jg6ks44Kx44Kk44KzDQor44Ki44Kt44OP44OpLOOCt+ODpeODs+OCueOCsQ0KK+OCouODmSzjg6bjgq0NCivjgqLjg6njgq0s44OS44Ot44K3DQor44Kk44K344KkLOODjuODluODpOOCuQ0KK+OCpOOCt+OCvOOCrSzjg4DjgqTjgrnjgrENCivjgqTjgr/jg4ss44K/44Kr44K3DQor44Kk44OI44KmLOOCt+OCuuOCsw0KK+OCpOODjizjg5/jgq0NCivjgqTjg6/jgrbjgq0s44OS44Ot44K/44KrDQor44Km44Ko44OOLOOCseODs+OCuA0KK+OCpuODoeODj+ODqSzjg4rjg4TjgrMNCivjgqrjgqrjgqgs44OA44Kk44K544KxDQor44Kq44Kq44OELOODgeOCqA0KK+OCquOCquODhOODnCzjg57jgrXjg5/jg4QNCivjgqrjgqvjg4As44K/44OE44OkDQor44Kq44Kr44Oi44OILOODkuOCteOCtw0KK+OCquOCr+ODiuOCqyzjgrvjgqTjgrcNCivjgqrjg5Djg6ks44Om44Oq44KzDQor44Kr44K444OK44KsLOODpuOCv+OCqw0KK+OCq+ODiOOCpizjg6rjg6fjgqYNCivjgqvjg4jjgqYs44Ov44K/44OrDQor44Kr44Ov44KkLOOCs+OCpuOCuA0KK+OCq+ODr+OCsOODgSzjgrnjgrnjg6ANCivjgq3jgrcs44Os44Kk44KzDQor44Kt44OJ44Kz44OtLOOCouODhOOCtw0KK+OCr+ODnOOCvyzjg57jg6bjg58NCivjgq/jg6/jg5Djg6ks44Om44Kr44OqDQor44Kz44Kv44OcLOODouODouOCqA0KK+OCtOODiOOCpizjgrHjgqTjgrMNCivjgrPjg5/jg6Tjg54s44Oe44K144Oo44K3DQor44K144Kk44OI44KmLOOCt+OCsuODqw0KK+OCteOCq+ODouODiCzjg4Hjgqvjg6kNCivjgrXjgrXjg44s44Ki44Kr44KuDQor44K144OK44OALOODnuOCteODpuOCrQ0KK+OCt+ODnuODgCzjgr/jgrHjgrcNCivjgrfjg6Ljg5Xjgrgs44OO44OW44OS44KzDQor44K344OvLOOCseODs+OCpOODgQ0KK+OCueOCruODj+ODqSzjg5Ljg63jg47jg5YNCivjgrnjgrrjgq0s44Oe44K144OkDQor44K744KtLOOCouODhOODiuODqg0KK+OCv+OCq+OCrizjgqvjg6gNCivjgr/jgqvjg4/jgrcs44OS44Ot44OK44KqDQor44K/44Kt44K244OvLOOCteODiOOCtw0KK+OCv+OCseODgCzjg6bjgqbjgqTjg4Hjg60NCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OL44Kr44OvLOODqOOCt+ODhOOCsA0KK+OCv+ODkOOCvyzjgrHjgqTjgr/jg63jgqYNCivjg4Tjgqvjg4As44Oq44KoDQor44OE44Oc44K/LOODnuOCteODpA0KK+ODiOOCpuOCq+OCpOODquODsyzjg6bjg58NCivjg4jjg47jgqQs44Ki44Kt44KzDQor44OK44Kr44Ks44OvLOODqOOCt+ODjuODqg0KK+ODiuOCrOODjizjg6rjg6fjgqbjgr8NCivjg4rjgqvjg6Tjg54s44OI44Oi44OS44OtDQor44OL44K344Kq44KrLOOCt+ODs+OCpOODgQ0KK+ODjeOCruOCtyzjg6rjgqsNCivjg47jgrbjgq0s44OA44Kk44K544KxDQor44OP44K344Kw44OBLOODiOOCt+ODkuODrQ0KK+ODj+ODg+ODiOODqizjg6bjgqbjgqTjg4ENCivjg4/jg57jg4As44OA44Kk44K4DQor44OS44K344OM44OeLOOCouODhOOCtw0KK+ODkuODqeOCvyzjg57jg5/jgrMNCivjg5Xjgq/jg4As44K/44Kr44K3DQor44OV44K444Ko44OALOODkuOCteOCq+OCug0KK+ODleOCuOODr+ODqSzjgr/jgq/jg4gNCivjg5vjg6rjgqvjg68s44K344Ol44Km44K4DQor44Oe44OE44KqLOODkuODh+ODjuODqg0KK+ODnuODhOODpOODnizjg5/jg4Tjg4bjg6sNCivjg5/jg6Qs44Ki44Kt44OpDQor44Of44Ok44Oi44OILOOCr+ODi+OCsw0KK+ODoOODqeOCq+ODnyzjgr/jg4Tjg5Ljg60NCivjg6Ljg6rjgr8s44Oe44OfDQor44Ok44Kw44OpLOOCt+ODs+OCuA0KK+ODpOODnuODgCzjg5/jgrrjg5sNCivjg6bjg6ks44Kx44Oz44Kk44OBDQor44Oo44K344K244OvLOODpuOCpuOCsw0KK+ODreOCryzjgqLjgq3jgrMNCivjg6/jg6njg5Ms44OS44Ot44OO44OqDQor44Of44OS44OpLOODquODp+OCpuODmOOCpA0KK+ODn+OCruOCvyzjg57jg4oNCivjgr/jgrHjgqbjg4Es44Oq44On44KmDQor44Kq44OO44OH44OpLOOCr+ODi+ODkuODrQ0KK+OCouOCq+OCrOODryzjg6Ljg4jjgrMNCivjgqLjgrXjg4zjg54s44Ki44OkDQor44Ki44Op44KkLOODhOODqOOCtw0KK+OCpOOCtuODryzjg4Hjg4/jg6sNCivjgqTjgrfjg5Djgrcs44OI44K344Om44KtDQor44Kk44OHLOODiuODq+ODnw0KK+OCpOODjuOCpuOCqCzjg57jgrPjg4gNCivjgqTjg57jgrzjgq0s44Kv44Of44KzDQor44Kk44Ov44K/LOOCs+OCpuOCuA0KK+OCpuOCteODnyzjg57jg6rjgrMNCivjgqjjg47jgq3jg4ks44Oo44Oq44KzDQor44Kq44Kt44K/LOODpuOCreODjuODqg0KK+OCquOCquODhOOCqyzjg6Ljg4jjgqQNCivjgqrjg44s44OS44Ot44K3DQor44Kq44Kr44OALOOCq+OCuuODkuODrQ0KK+OCquOCr+OCr+ODnCzjgr/jgqvjgrcNCivjgqvjg4rjgqQs44Kx44Oz44Kk44OBDQor44Kr44Of44OkLOOCteODgeOCsw0KK+OCq+ODr+OCteOCrSzjg5Ljg63jgq0NCivjgq3jg4As44Ko44Kk44K544KxDQor44Kt44Og44OpLOODleODn+ODiA0KK+OCr+ODoeOCpuODgSzjgrHjg7PjgrgNCivjgq/jg6/jg4/jg6ks44K344OODQor44Kz44KsLOOCv+OCr+OCuA0KK+OCs+ODkOODpOOCtyzjgqLjg7Pjg4oNCivjgrXjgqTjg4jjgqYs44Kx44Oz44Kk44OBDQor44K144K144KtLOODj+ODiuOCsw0KK+OCteODiOOCpizjg5/jgq0NCivjgrXjg4/jg6ks44K/44Kr44OV44OfDQor44K344OALOODqOOCt+ODkuODrQ0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjgrfjg6Ljgrbjgq0s44K/44OE44OS44KzDQor44K544Ku44Km44OpLOODnuOCteODjuODlg0KK+OCueODiCzjgrXjg4jjgrcNCivjgrvjg4gs44Kx44Kk44K4DQor44K/44Kr44KuLOODjuODquODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5/jgqsNCivjgr/jgrHjg4As44Om44Km44K4DQor44K/44OALOODqOOCt+OCv+OCqw0KK+OCv+ODi+OCsOODgSzjgr/jgqvjg47jg6oNCivjgr/jg6Djg6ks44Kx44Kk44KzDQor44OE44Kr44OP44OpLOODn+OCuuODmw0KK+ODhOODnOOCpuODgSzjgqLjgq3jg5Xjg58NCivjg4bjg6njg4As44Oo44K344KtDQor44OI44Of44KkLOOCuOODpeODs+OCsw0KK+ODiuOCpOODiOOCpizjgr/jgqvjgqoNCivjg4rjgqzjgrXjgqss44Kz44Km44K4DQor44OK44Ks44OOLOODpOOCueOCqg0KK+ODiuOCq+ODoOODqSzjgqjjgqTjgrgNCivjg4vjgrcs44OK44Kq44Om44KtDQor44OL44K344OALOODquODp+OCpuODmOOCpOOCvw0KK+ODjuOCsOODgSzjgqvjgrrjg6jjgrcNCivjg47jg6Djg6ks44Kr44K644KqDQor44OP44OD44OI44OqLOOCteODiOODnw0KK+ODj+ODpOOCq+ODryzjg6bjgq0NCivjg4/jg6njg4As44Of44KoDQor44OS44OH44K344OeLOODn+OCreOCsw0KK+ODleOCq+OCqizjg5/jg6bjgq0NCivjg5Xjgq/jg4/jg6ks44Om44Kt44KzDQor44OV44K444Oi44OILOOCqOODquOCsw0KK+ODm+OCt+ODjizjgrnjg5/jgqoNCivjg5vjg6rjgrDjg4Es44K444Ol44Oz44Kk44OBDQor44Oe44Kt44OOLOOCv+OCseOCqg0KK+OCs+ODn+ODpCzjg47jg5zjg6sNCivjgrPjg5Djg6Tjgrcs44OS44Ot44K3DQor44Kr44Of44Kv44OcLOOCseODs+OCuA0KK+ODnuODhOOCqizjgq3jg6jjgrcNCivjg4rjgqvjg4Es44Kt44Oo44K3DQor44Kz44K544KuLOODqOOCt+ODnw0KK+OCq+ODhOODnuOCvyzjg4jjgrfjgqvjgroNCivjgqvjgqzjg6Tjg54s44Oe44K144OP44OrDQor44Kv44K8LOODn+OCreOCqg0KK+OCr+ODnuODgCzjg57jgrXjgqLjgq0NCivjgrPjgrjjg6fjgqYs44K144OK44KoDQor44Kr44K344Kv44OeLOOCseODs+OCvuOCpg0KK+OCreOCr+ODgSzjg6jjgrfjg5LjgrUNCivjgq/jg57jg44s44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCt+ODpeODs+OCuA0KK+OCs+ODkOODpOOCtyzjg47jg5bjgrMNCivjgrPjg4vjgrcs44Kx44Oz44Kk44OBDQor44Kz44OQ44K344Ks44OvLOODkuODiOOCtw0KK+OCq+OCpOODiSzjg5/jg5sNCivjgq/jg63jgq0s44K444Ol44OzDQor44Kr44OK44K/44OLLOODquOCqA0KK+OCreOCv+OCrOODryzjg4rjgqrjgr/jgqsNCivjg5/jgrrjg6Ljg4gs44OK44Or44KtDQor44Of44Ok44Kq44KrLOOCseODs+ODreOCpg0KK+ODoOODqeOCvyzjgrHjg7PjgrgNCivjg6Ljg6rjgr8s44OS44OH44OI44OiDQor44Ok44OK44Ku44OALOOCqOODquOCsw0KK+ODpOODnuOCtuOCrSzjgrHjg7MNCivjg6Tjg57jg6Ljg4gs44Ok44K544OO44OqDQor44Oo44K0LOODiOODouODjuODqg0KK+ODqOODjeODgCzjg6bjg5/jgrMNCivjg6/jgrMs44Oq44KoDQor44Ki44Kr44OP44ONLOODkuODreOCouOCrQ0KK+OCouOCteODmSzjgqvjg6gNCivjgqLjg6njgqQs44OS44OH44KqDQor44Kk44Kx44OALOODqOOCt+OCv+OCqw0KK+OCpOOCt+ODiSzjg6bjgq3jgrMNCivjgqTjgrrjg44s44Of44OE44OS44OtDQor44Kk44OI44KmLOOCv+OCseOCtw0KK+OCpOODjuOCpuOCqCzjg47jg5bjgr/jgqsNCivjgqTjg6/jgr8s44Oo44K344OS44OtDQor44Km44Kr44KkLOODkuOCteODiuOCrA0KK+OCqOODiOOCpizjg5Ljg63jgq0NCivjgqrjgqrjgrXjgqss44K/44OG44KtDQor44Kq44Kq44OL44K3LOODn+ODhOODqw0KK+OCquODoOODqSzjg4jjg6LjgrMNCivjgqrjgqvjg44s44Ok44K544OV44OfDQor44Kq44Ks44OvLOOCv+OCr+ODpA0KK+OCquOCtuOCrSzjgr/jgqvjg6bjgq0NCivjgqrjg4jjgqzjg68s44Oq44On44Km44KzDQor44Kr44K144KkLOODiuOCquOCsw0KK+OCq+OCueOCrCzjgrXjg4rjgrMNCivjgqvjg4jjgqYs44Kx44Oz44Kk44OB44OtDQor44Kr44Oh44K/44KrLOOCv+OCpOOCueOCsQ0KK+OCq+ODr+OCsOODgSzjgqLjg6bjg58NCivjgqvjg6/jg5Djgr8s44Ki44Om44OfDQor44Kt44K/44Ks44OvLOOCv+OCseOCtw0KK+OCreODoOODqSzjg6jjgrfjgqvjgroNCivjgq3jg6rjgrXjgrMs44OG44OD44Oa44KkDQor44Kv44Op44OP44K3LOOCv+OCq+OCouOCrQ0KK+OCtOOCpuODgCzjgr/jgrHjg5Ljg60NCivjgrPjg4bjg6ks44Kt44Of44OS44OtDQor44Kz44OQ44Ok44K3LOODiuODhOOCsw0KK+OCs+ODnuODhOODkOODqSzjg4jjg6Ljg5LjgrUNCivjgrXjgqTjg4jjgqYs44OG44Or44OS44K1DQor44K144Kr44KkLOOCv+OCq+ODpuOCrQ0KK+OCteOCr+ODqeOCpCzjgrXjg4Djg6jjgrcNCivjgrXjg4jjgqYs44Ki44KtDQor44K144Ov44K144KtLOOCv+OCq+OCtw0KK+OCt+ODnuODjizjg4jjgrfjgqLjgq0NCivjgrfjg6fjgqbjg4As44Kv44OfDQor44K344Oz44K/44OLLOOCseODs+OCvw0KK+OCueOCruODpOODnizjgr/jgqvjg40NCivjgrvjgq3jg6Ljg4gs44Kr44OE44Ki44KtDQor44K/44Kr44OP44K3LOODrOOCpA0KK+OCv+OCsOODgSzjg6/jgr/jg6sNCivjgr/jg4Hjg5Djg4os44OK44Kq44OIDQor44K/44OK44KrLOOCteODgeOCqA0KK+OCv+ODnuOCrSzjg4rjgqrjgrMNCivjg4Tjgqvjg4As44OG44OE44OkDQor44OE44Oc44Kv44OpLOOCv+OCr+ODpA0KK+ODieOCpCzjg47jg5bjgr/jgqsNCivjg4jjg4As44K344Ol44Oz44K544KxDQor44OK44Ks44K144KrLOODn+ODgeOCsw0KK+ODiuOCq+OCt+ODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjg4vjgrcs44Of44OJ44OqDQor44OK44Kr44Og44OpLOODnuODpg0KK+ODiuOCq+ODpOODnizjgr/jgrHjgrcNCivjg4vjgrfjg44s44Om44KrDQor44OO44Kv44KqLOOCq+OCquODqg0KK+ODkOOCs+OCtyzjgrfjg7PjgrQNCivjg4/jgr/jg44s44Oo44Km44KzDQor44OP44Ok44K3LOOCteODiOOCsw0KK+ODj+ODqeODgCzjgqLjg4TjgrcNCivjg5Ljg6njgqQs44Om44Km44K544KxDQor44OS44Ot44KoLOOCouODhOOCtw0KK+ODleOCr+ODgCzjgrXjg6TjgqsNCivjg5Xjgrjjg6Djg6ks44Ki44Kt44KzDQor44OV44Or44Kr44OvLOODkuODreOCsw0KK+ODm+OCveODgCzjgrfjg6Xjg7PjgrQNCivjg57jgqjjgqvjg68s44Of44OvDQor44Oe44K144OI44Km44OfLOODnuOCpOOCsw0KK+ODnuODhOOCquOCqyzjg4jjg6LjgrMNCivjg57jg4Tjg5Djg6ks44Ki44Kt44KzDQor44Of44Km44OpLOOCreODqOODnuOCtQ0KK+ODn+OCvuODj+OCvyzjg4HjgqgNCivjg5/jg4/jg6ks44Oe44K144KtDQor44Of44Ok44Og44OpLOOCouODpA0KK+ODoOODqeOCvyzjgq/jg5/jgrMNCivjg6Ljg6os44Kv44Of44KzDQor44Oi44Ot44KoLOODkuODreOCq+OCug0KK+ODpOODiuOCruOCteODryzjgrHjgqTjgrnjgrENCivjg6Tjg57jgqzjgr8s44Oe44Kz44OIDQor44Ok44Oe44OALOODjuODluOCsw0KK+ODpOODnuODouODiCzjg4bjg6vjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Ov44K/44OrDQor44Oo44Kz44Ok44OeLOOCouODpuODnw0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjg6jjgrfjg6Djg6ks44OA44Kk44K544KxDQor44Ov44OALOOCpOOCteODoA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgrXjgrXjg44s44K544K544OgDQor44Kz44OA44OeLOOCv+OCq+ODkuOCsw0KK+OCq+ODr+OCt+ODnizjg57jgrXjg4rjg6oNCivjgqvjg6/jg44s44Kz44Km44Kk44OBDQor44Kr44Of44Km44OpLOOCq+OCuuODkuODhw0KK+OCs+ODs+ODjizjg5Ljg4fjgq0NCivjgq/jg6Tjg54s44K/44Kx44K3DQor44Kz44KkLOOCu+OCpOOCpOODgeODreOCpg0KK+OCq+OCteOCuOODnizjg5Ljg63jg5Xjg58NCivjgqvjg4jjgqYs44OI44Oi44OfDQor44Kv44Oc44K/LOODkuODreODpuOCrQ0KK+OCseOCrOOCteODryzjg5LjgrXjgrcNCivjgqvjg6/jgq7jgrcs44OS44Ot44K3DQor44Kr44Oe44OALOOCv+OCq+OCtw0KK+OCreOCr+ODgSzjgqrjgrXjg6ANCivjgqvjg4jjgqYs44Kr44K644OS44KzDQor44Oe44OB44OALOOCq+OCuuOCqg0KK+ODoOODqeOCteOCrSzjg4jjgrfjgqoNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44Kk44OBDQor44Oe44K144KtLOOCreOCr+OCqg0KK+ODn+OCuuOCv+ODiyzjg4rjgqrjg5LjgrMNCivjg57jg6vjg6Tjg54s44K744Kk44K4DQor44Og44Op44K344OeLOOCv+ODgOOCqg0KK+ODn+OCuuOCvyzjg6jjgrfjgqoNCivjg6Ljg6rjgqQs44Ku44On44K4DQor44Of44Ok44K244OvLOODqOOCt+OCqg0KK+ODn+OCuuODjizjg6bjg6rjgrMNCivjg6Djg6njgqTjgrcs44Oe44Oi44OrDQor44Og44Op44Kr44OfLOOCq+OCuuOCqg0KK+ODoOODqeODnuODhCzjgqLjg4TjgrcNCivjg5/jgr/jgq8s44Kx44Kk44K+44KmDQor44Oe44Ko44OALOOCouOCreOCqg0KK+ODoOODqeOCpCzjg4jjg6jjg58NCivjg57jg4Tjg4As44K144OI44K3DQor44Of44OG44OpLOODpOOCueOCqg0KK+ODouODqizjg4Tjg4jjg6ANCivjg57jg4TjgqQs44K/44Kr44K3DQor44Of44Km44OpLOOCr+ODi+OCqg0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg57jg4Tjgrbjg68s44Oo44K344KqDQor44Of44Kr44OfLOODj+ODq+OCrQ0KK+OCv+ODluODgSzjgrHjg7PjgrgNCivjg4rjgqvjgrjjg54s44Oe44K144OS44OtDQor44OK44Kk44OI44KmLOOCv+OCseOCqg0KK+ODi+OCt+ODiizjgq3jg5/jg5Ljg4gNCivjg4rjgqvjgqzjg58s44K344Ol44Km44Kk44OBDQor44OK44Kr44OP44K/LOOCq+OCuuODiOOCtw0KK+ODi+OCt+OCquOCqyzjg5Ljg63jgrcNCivjg4vjgrfjg4As44Oo44K344Ot44KmDQor44OO44Og44OpLOOCr+ODi+ODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6bjgq0NCivjg4rjgqTjg4jjgqYs44Kr44K644Ki44KtDQor44OL44OD44K/LOODpuOCv+OCqw0KK+ODiuOCq+OCuOODnizjgqvjg4TjgqoNCivjg4rjgqvjgrss44OI44K344Ki44KtDQor44OK44Kr44Ks44OvLOODjuODluOCqg0KK+ODiuOCq+OCuOODnizjg6Djg43jgr/jgqsNCivjg4rjgqvjg6Djg6ks44Ob44K644OfDQor44OK44Ks44K344OeLOODiuOCquOCuA0KK+OCquOCrSzjgrnjg5/jgqoNCivjgqrjgq/jg4As44OI44K344KqDQor44Kq44Kq44OP44K3LOODkuODreOCtw0KK+OCquOCrOODryzjg4jjgqrjg6sNCivjgqrjgrbjg68s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOODpuOCv+OCqw0KK+OCquOCquODjizjg5/jg4TjgqoNCivjgqrjgqrjgqTjgrcs44K4DQor44Kq44Kq44Kr44OvLOOCq+OCquODqw0KK+OCquODquOCrOOCtSzjg6Tjgrnjgr/jgrENCivjgqrjgqrjgr8s44Oo44K344OS44KzDQor44Kq44K244KtLOOCuOODpeODs+OCpOODgQ0KK+OCquODgOOCt+ODnizjgr/jg4DjgrcNCivjgqrjgqrjg5Ljg6ks44K744OE44K4DQor44Kq44Kq44OkLOODkuODh+ODmw0KK+OCquOCq+ODjizjgqLjgq3jgrMNCivjgqrjgrDjgrcs44Ki44Kx44OfDQor44Kq44Kq44Kk44Ks44OvLOOCv+OCq+ODj+ODqw0KK+ODiuOCq+OCv+ODiyzjgrfjg7PjgqTjg4ENCivjgrfjg6njgqrjgqzjg68s44Op44Kk44K/DQor44OK44Kr44Og44OpLOODiOOCt+ODn+ODhA0KK+OCouODmSzjgqjjg5/jgrMNCivjgqvjg6/jgqbjg4Es44Oe44Oq44KoDQor44Kk44OI44KmLOOCseODs+OCveOCpg0KK+OCs+OCpOOCuuODnyzjgr/jgq/jg6QNCivjgqvjg4rjgqrjgqss44OS44Ot44K3DQor44Ki44Oq44OeLOODpOODqOOCpA0KK+OCpuODnuODpOODj+ODqSzjg6Tjgrnjg58NCivjgqvjg43jg57jg4Qs44K144Kt44KzDQor44OV44Kr44OkLOOCr+ODi+OCouOCrQ0KK+OCtOODiOOCpizjg6bjgqbjgqTjg4Hjg63jgqYNCivjgrnjgq7jg6Ljg4gs44Kv44OL44KqDQor44Kv44Oq44OP44OpLOODiOODqOODkuOCsw0KK+OCquOCquOCvyzjg6bjgq3jgrMNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Oo44K344OALOOCq+OCuuODiOOCtw0KK+ODj+ODg+ODiOODqizjg5Ljg63jgrcNCivjgqvjg4njgr8s44Ki44Kt44OS44OtDQor44Kk44K344K244OvLOODpuOCuuOCrQ0KK+ODn+ODpOODouODiCzjg5/jg4njg6oNCivjgqrjgrgs44Ok44K544OS44OtDQor44Ki44Op44KkLOODiOOCt+OCouOCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqvjgrMNCivjgrXjgqTjg4jjgqYs44Oo44K344OS44OIDQor44Kz44OQ44Ok44K3LOOCreODp+OCpuOCvuOCpg0KK+ODi+OCt+OCq+ODryzjg4jjg6Ljg58NCivjgr/jg4rjgqss44Kr44K644OS44OtDQor44K644K3LOODpOOCueOCqg0KK+OCouODqeOCpCzjgrfjg6fjgqbjg5jjgqQNCivjg57jgqjjg4fjg6ks44OG44Or44Om44KtDQor44Kz44Oz44OJLOODiuOCqg0KK+ODiuOCrOODm+ODqizjg6bjgq3jgrMNCivjgqTjg6/jgrXjgq0s44Of44Ok44OTDQor44OK44Kr44K/44OLLOOCv+OCq+OCtw0KK+ODiuOCq+OCrOOCrSzjgrHjgqTjgrMNCivjgq/jg6/jg4/jg6ks44Oe44Kz44OIDQor44K544K644KtLOODpuOCrQ0KK+OCv+ODgCzjgqjjgqTjgq0NCivjg6/jg4As44OK44Kq44KzDQor44K144OOLOODkuODreOCtw0KK+ODiOOCreOCvyzjg4rjg4TjgrMNCivjgrPjgrXjgqQs44Om44Km44KzDQor44K744K044KoLOOCteODiOOCsw0KK+ODiuOCq+OCpCzjgqLjg4Tjg58NCivjg4/jg6njg4As44OI44K344Oe44K1DQor44Kt44OO44K344K/LOODn+ODgeOCqg0KK+ODn+ODpOOCtuOCrSzjgqvjgrrjg58NCivjgr/jgq3jgrbjg68s44Oe44K144Ki44KtDQor44K144OI44KmLOOCs+OCpuOCpOODgeODreOCpg0KK+ODn+OCuuOCt+ODnizjgr/jgrHjg6sNCivjgr/jg4vjgrDjg4Es44OP44Or44OfDQor44Oe44OE44K344K/LOOCv+OCq+OCtw0KK+OCueOCruOCpuODqSzjgrHjg7Pjgr/jg63jgqYNCivjgr/jg4vjgqzjgq0s44K744Kk44KzDQor44K144OI44KmLOOCt+OCsuOCqg0KK+ODpOODnuOCq+ODryzjgrXjg4Djg4/jg6sNCivjgrnjgrrjgq0s44K344Ky44OS44OtDQor44OI44Kv44OALOODnuODs+ODiuODqg0KK+OCpOODr+ODnizjg47jg5bjgqLjgq0NCivjgqrjgqrjg4/jg6ks44Om44Kt44OK44KqDQor44K344Kq44OM44OeLOODkuODh+ODiOOCtw0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjgrnjgrrjgq0s44Oo44K344KzDQor44K544K644KtLOODjuODluOCouOCrQ0KK+OCu+OCrSzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44OE44OI44OgDQor44K544Ks44KqLOODhuODhOOCuA0KK+OCueOCuuOCrSzjgrHjgqTjgr/jg63jgqYNCivjgrXjg4njg4jjg6Is44Ki44Kt44OpDQor44K344OeLOODn+ODjuODqw0KK+OCteOCpOODiOOCpizjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Oe44K144OS44OtDQor44K144Kk44OI44KmLOODpuOCreOCqg0KK+OCveODnizjgqrjgrXjg6ANCivjgrXjg4jjgqYs44Kx44Oz44K4DQor44K344Ot44K144KtLOODqOOCpuOCpOODgQ0KK+OCueOCuuOCrSzjg6jjgqbjgrjjg63jgqYNCivjgrnjgrrjgq0s44OG44OE44Ot44KmDQor44K544Ku44Oi44OILOODnuOCteOCqg0KK+OCteOCq+OCpCzjgrfjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kr44K644Om44KtDQor44K144OI44KmLOOCv+ODhOOCuA0KK+OCt+OCquOCvyzjg4jjg6jjgqoNCivjgr3jg54s44Kr44Oz44K4DQor44K344Ol44OJ44KmLOOCv+OCq+OCqg0KK+OCteOCr+ODqeOCpCzjg4jjgrfjgqoNCivjgr3jgqbjg6Qs44K744Kk44K4DQor44K144Ov44Og44OpLOODiuODq+ODnw0KK+OCu+OCqizjg6bjgqbjgrgNCivjgrfjg5/jgros44OI44K344KqDQor44K144Kt44Oi44OqLOOCpOODr+OCqg0KK+OCteOCpOODiOOCpizjg5LjgrXjgqoNCivjgrfjg5/jgros44Ko44Kk44K+44KmDQor44K344Kq44OO44OkLOOCreODqOOCq+OCug0KK+OCv+OCq+OCrizjg5Ljg4fjgqoNCivjgr/jgq3jgqTjgrcs44Oq44On44Km44K4DQor44OI44OQLOODnuOCteOCtw0KK+OCv+OCsOODgSzjg57jgrXjgqoNCivjgr/jgqvjg44s44Og44ON44KqDQor44K/44Kr44Ok44K5LOODiOODqOODnw0KK+OCv+ODiuOCqyzjgrfjgrLjg6sNCivjgr/jgqvjg4/jg54s44Oo44K344Ki44KtDQor44OE44OB44OALOODnuODouODqw0KK+OCv+OCq+OCqizjg57jgrnjg58NCivjgr/jg4vjgrDjg4Es44Of44OB44Ki44KtDQor44OE44K444Kr44OvLOODpuOCpuOCpOODgQ0KK+ODqOOCt+OCtuODryzjg57jgrXjg4/jg6sNCivjgr/jg4rjgqss44K444Ol44Oz44K+44KmDQor44K/44Oe44OrLOODnuOCteODnw0KK+OCv+OCq+OCrizjgq3jg6fjgqbjgrMNCivjg4Tjg43jg5Ljg60s44K444Ol44Oz44K4DQor44K/44Kr44OP44K3LOODiOOCt+OCouOCrQ0KK+OCouOCteOCpCzjg6bjgqbjgrgNCivjgr/jgqvjgrXjgq0s44Ki44Kt44OpDQor44K/44Kr44OK44OfLOODnuOCteODqw0KK+ODiOODouODiuOCrCzjg4Tjg43jgqvjgroNCivjgr/jgqvjgq4s44Kk44OE44KqDQor44OE44Kr44Oi44OILOOCouOCreOCqg0KK+ODhuODqeOCpuODgSzjgrXjg4Djg6bjgq0NCivjgr/jg47jgqrjgqss44K544K544OgDQor44Km44K544KuLOOCq+OCuuODkuODrQ0KK+OCpuODhOOCrSzjg4bjg4TjgqoNCivjgqbjg4Hjg4As44Kx44Oz44K544KxDQor44Km44Oh44Og44OpLOODiOOCt+OCqg0KK+OCpuODjizjg4jjgrfjg5Ljg4cNCivjg6/jgr/jg4rjg5ks44OS44K144Om44KtDQor44Ov44K/44OK44OZLOOCq+ODhOODiuODqg0KK+ODr+OCv+ODiuODmSzjgrPjg7PjgrTjgqYNCivjg6/jg4As44K/44Kx44Of44OEDQor44Kq44Kq44K/LOODnuOCs+ODiA0KK+ODiuOCq+OCuOODnizjgrHjgqTjgqTjg4ENCivjg5Xjg6vjgrXjg68s44OE44Oo44K3DQor44Kr44K344Ov44KuLOOCsw0KK+ODj+OCvyzjgrfjg6fjgqbjgrnjgrENCivjgqbjgrfjgrjjg54s44Oe44K144Kr44K6DQor44Oe44OE44KkLOOCouOCreODqQ0KK+OCq+ODr+ODiizjg4DjgqTjgrjjg63jgqYNCivjg5/jg6Tjg6Ljg4gs44K/44Kr44OS44K1DQor44Oo44K344OALOOCueODn+ODpuOCrQ0KK+OCquOCquOCq+ODr+ODqSzjgrLjg7Pjgr/jg63jgqYNCivjgrnjg6Tjg54s44Kv44Oz44Ot44KmDQor44K544K644KtLOODpuOCpuOCuA0KK+OCr+ODi+OCruOCvyzjg6jjgqbjgqTjg4ENCivjgq3jg4ks44Oe44K144K3DQor44Kk44K344KkLOODgeOCq+ODiOOCtw0KK+OCpuOCqOODgCzjgr/jgqvjgrcNCivjgqTjg4Hjgqvjg68s44Kr44K644KqDQor44Kq44K144K444OeLOODiOOCt+ODpA0KK+OCpuOCqOODoOODqSzjg4jjgrfjg5Ljg4cNCivjgq3jg6Djg6ks44OI44Kt44OBDQor44Oo44Kz44Ok44OeLOODkuOCteOCqg0KK+OCpOODiOOCpizjg57jgrXjg6bjgq0NCivjg5/jg6Tjg5ks44Kr44K644OIDQor44K/44Oe44KkLOOCq+OCuuODn+ODgQ0KK+OCs+ODqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjg6/jgrXjg68s44Oe44OK44OWDQor44Oo44K344Ok44K5LOOCtOOCpg0KK+ODnuOCv+OCrSzjgrfjg7PjgrQNCivjg6Tjg57jg6Ljg6os44Kr44OE44KqDQor44K/44Kr44K/LOODjuODquOCqg0KK+OCueODieOCpizjgrfjg6fjgqbjgrMNCivjgqbjgqjjg6Djg6ks44Om44K/44KrDQor44K544K644KtLOODn+ODjuODqw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgqLjg6njgq0s44K744Kt44ONDQor44Kr44OALOOCouOCreODqQ0KK+ODi+OCt+ODqOODqizjg5/jg47jg6sNCivjgqTjg4rjg5As44Kr44K644OIDQor44Ob44Oq44KkLOODhOODjeOCqg0KK+OCueODieOCpizjg57jgrXjg5LjgrMNCivjgrfjg63jg6Tjg54s44KzDQor44OG44Op44KkLOOCouOCreOCsw0KK+ODnuODhOODouODiCzjg4rjgqrjgr/jgrENCivjgqTjg4jjgqYs44K744Kk44K4DQor44K944OI44Ok44OeLOOCq+ODhOODjuODqg0KK+ODkuODqeOCquOCqyzjg6TjgrnjgrcNCivjg5Ljg6njgq0s44K/44Oi44OEDQor44K/44OK44OZLOODpuOCpuOCuOODreOCpg0KK+OCv+ODoeODgeOCqyzjgr/jg4bjgqoNCivjg6jjg43jg4As44OI44K344OS44OHDQor44Ko44K444OeLOODiOODouODjuODqg0KK+OCv+OCq+ODj+OCtyzjg5/jgrXjgrMNCivjg4bjg6njgqos44OS44Ot44OS44K1DQor44Ob44Oz44OALOODpuODnw0KK+OCquODgeODqizjg6Tjgrnjg5Ljg60NCivjgqrjgqrjgqQs44OK44Kq44OfDQor44Kr44Ov44KkLOODn+ODjuODqw0KK+ODoOODqeOCq+ODnyzjg5/jg6jjgrcNCivjg4rjgqvjgrjjg54s44OS44OI44K3DQor44Kk44K344OP44OpLOODleODn+OCv+OCqw0KK+OCouOCq+ODm+ODqizjg5/jg4Tjg47jg5YNCivjg6Tjgrnjg4As44Ki44Kt44OpDQor44Oo44Kz44K7LOODiOODouOCt+OCsg0KK+ODqOOCt+OCq+ODryzjg4jjgrfjg63jgqYNCivjg6Tjg57jgrDjg4Es44Of44OO44OrDQor44Oo44K344Og44OpLOODnuOCteODkuOCsw0KK+ODqOODjeODgCzjgqvjgqrjg6sNCivjg6Tjg57jgrfjgr8s44K344On44Km44K+44KmDQor44Ok44Oe44OALOOCqOOCpOOCvuOCpg0KK+ODpOODnuOCtuOCrSzjgrnjgrnjg6ANCivjg6jjgrfjg4As44OS44Ot44K3DQor44Ok44Oe44K/44OLLOODkuODreODhOOCsA0KK+ODpOODnuODjSzjg6jjg43jgr/jgqsNCivjg6Tjg57jgqvjg68s44K444Ol44Oz44Kk44OBDQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuOCteOCrSzjg47jg6rjgqoNCivjg6Tjg57jg6Ljg4gs44OG44Or44KqDQor44Oo44Kz44K/LOOCqOOCpOOCpOODgQ0KK+ODpOODnuODgCzjgqvjg4Tjg5Ljg60NCivjg6jjgrfjg44s44OA44Kk44K544KxDQor44Oo44K344OALOODoOODhOOCqg0KK+ODjuODoOODqSzjg57jgrXjgr/jgqsNCivjg6Tjg57jg4As44K144OI44OrDQor44Kk44K344Kr44OvLOODgeODqOOCv+OCsQ0KK+OCueOCuuOCrSzjg5Ljg63jg5Xjg58NCivjg57jgrnjg4As44Kx44Oz44K4DQor44Kk44Oe44KkLOODnuOCteOCvuOCpg0KK+OCreODpeOCpuOCveOCuOODsyzjgrHjg7PjgrnjgrENCivjg6Tjg57jg4As44Ki44Kt44OpDQor44OS44Op44OOLOOCv+OCpOOCrQ0KK+ODiuOCq+ODi+OCtyzjgqvjgrrjgrfjgrINCivjgr/jg4Tjgr8s44K344Ky44OrDQor44Of44Og44OpLOODnuOCteOCqg0KK+ODkuODqeODnuODhCzjgrXjg4DjgqoNCivjg4jjg5/jgr8s44Oe44K144OS44OtDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCpOODgeODreOCpg0KK+OCv+OCseODiuOCqyzjg57jgrXjg5Ljg60NCivjgqLjg57jg44s44OO44Oq44KzDQor44Kk44K344KkLOOCreODp+OCpuOCsw0KK+OCpOODhyzjgrXjgq3jgrMNCivjgqrjgqvjg4As44Oq44Ko44KzDQor44OS44Op44Kk44K3LOODnuODqg0KK+ODqOOCt+ODouODiCzjg5Ljg63jgrMNCivjgqvjg6/jgrfjg54s44Oe44Om44OfDQor44OI44OQ44K/LOODjuODquOCq+OCug0KK+OCv+ODiuOCqyzjg5Ljgqvjg6sNCivjgqLjg7Pjg5ks44Oe44OK44OfDQor44K/44Kr44OP44K3LOODnuOCteODkuODrQ0KK+ODiOODn+ODpOODnizjg6jjgrfjgqLjgq0NCivjgr/jgqvjg6Tjg54s44OI44K344Om44KtDQor44Of44Ok44K344K/LOODn+ODjuODqw0KK+ODj+OCt+ODouODiCzjg5/jgq3jgqoNCivjg4jjgqzjg6Es44Of44Ov44KzDQor44OO44Kw44OBLOOCq+OCuuODnuOCtQ0KK+ODjuOCsOODgSzjgqLjgq3jg6kNCivjgr3jgqbjg5/jg6Qs44Kx44Oz44K4DQor44Kt44Og44OpLOODqOOCpuOCuA0KK+OCq+ODiOOCpizjg4jjg6Ljg6bjgq0NCivjgrnjgrrjgq0s44Kx44Oz44K4DQor44Kq44Kr44OALOODkuODreODnw0KK+ODpOODjizjgrjjg6Xjg7PjgrMNCivjgqrjg47jgrXjg4gs44OP44OzDQor44Oe44OE44OALOODqOOCt+OCouOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjgr/jg6Djg6ks44OI44Oi44OO44OqDQor44Kr44OI44KmLOODiOOCt+ODpA0KK+OCpOODjOODnuODqyzjg5Ljg63jgrgNCivjgqrjg47jg4fjg6ks44OK44Kq44KzDQor44K544K644KtLOODgeODj+ODqw0KK+OCv+ODi+OCq+ODryzjg5vjgrrjgqgNCivjgrXjgq/jg54s44K344OeDQor44Kk44Oe44Og44OpLOODq+ODquOCsw0KK+OCqOOCpOODieODoSzjg6bjgq0NCivjg6jjgrfjgqQs44K/44OA44OS44OtDQor44Kq44Kq44K/44KtLOODpuODn+OCsw0KK+OCr+OCueODouODiCzjgqTjgrXjgqoNCivjg5/jg6Tjgrfjgr8s44Om44Kt44KqDQor44Oe44OB44KkLOOCq+OCuuODkuODrQ0KK+ODj+ODpOOCt+ODgCzjgr/jgqvjg4jjgrcNCivjg4/jg6vjg4/jg6ks44K/44Kr44K3DQor44OG44Op44Oi44OILOODpuOCpuOCuOODreOCpg0KK+ODnuODhOODouODqizjgqvjgrrjgqoNCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44Kr44ON44KzLOODpOOCueOCtw0KK+OCquODquOCrOOCtSzjg57jg4Tjg47jg6oNCivjg4Tjgqvjg6Ljg4gs44OS44Ot44Of44OBDQor44Oo44K344OALOODn+ODig0KK+ODi+OCt+ODgCzjg5LjgrXjgqgNCivjg5Xjg6vjgqvjg68s44Oq44KoDQor44Og44Op44Kr44OfLOOCv+OCq+OCqg0KK+OCquOCquODkOODpOOCtyzjgrPjgqbjgq3jg4ENCivjgrXjg4jjgqYs44Kx44Kk44KzDQor44Ok44OeLOODleODn+OCsw0KK+ODn+ODpOOCvyzjgr/jgqvjg4bjg6sKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkzYTBmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19DaGluZXNlLnR4dApAQCAtMCwwICsxLDEwOTAyIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+iZueWmgg0KK+S4geS4gOizog0KK+S4geW3neWBiQ0KK+S4geW/g+W1kA0KK+S4geW8mOWFiQ0KK+S4geS7u+azlQ0KK+S4geW/l+Wujw0KK+S4geW5uOWnrA0KK+S4geS/iuWkqw0KK+S4geW7uuaWhw0KK+S4geaYoOe0lA0KK+S4gee+v+aWhw0KK+S4geWTsg0KK+S4geWBieawkQ0KK+S4geWci+aihQ0KK+S4gea3keeOsg0KK+S4geeUpuWNlw0KK+S4geavk+W9pQ0KK+S4gembjeWTsg0KK+S4gee2uuaFpw0KK+S4geaFp+W1kA0KK+S4geeSn+alkw0KK+S4geitveeQsw0KK+S4gemLkOmOsA0KK+WNnOato+WAqw0KK+S6juW8i+e/lA0KK+S6juengOe+jg0KK+S6juenieW8mA0KK+S6jua4heiPrw0KK+S6juauv+iBlg0KK+WxseWCkQ0KK+WwueWvuOasow0KK+WwueWxheaJjQ0KK+WwueaMr+WogQ0KK+WwueeRnuixkA0KK+WwueabieaBqQ0KK+S7h+WutueQqg0KK+WtlOWuiOS4rQ0KK+WtlOaZuuadsA0KK+WtlOe5gemclg0KK+WwpOW/g+eRnA0KK+WwpOWQn+aWhw0KK+WwpOiJrw0KK+WwpOaYjuS7sg0KK+WwpOS/iumfvw0KK+WwpOaYn+etlg0KK+WwpOWBieS7lQ0KK+WwpOa3qOe6kw0KK+WwpOasveaogg0KK+WwpOebn+iytA0KK+WwpOWvrOWujw0KK+WwpOmfu+eQhw0KK+WwpOiSlOiQsQ0KK+aWh+W/l+W/oA0KK+aWh+ecn+iKsQ0KK+aWh+WEgOipoA0KK+aWueWjq+mKmA0KK+aWueWkqeS4rQ0KK+aWueaWh+mLkg0KK+aWueawuOa4hQ0KK+aWueaxneiCsg0KK+aWueWtneWQmw0KK+aWueW/l+aYjg0KK+aWueengOaVjw0KK+aWueS9s+S/ig0KK+aWueW5uOWunA0KK+aWueaAoea9lA0KK+aWuemVt+aPmg0KK+aWueS/iumbhA0KK+aWueWlleaWjA0KK+aWueW7uuaZug0KK+aWueW9peeoiw0KK+aWueaYoOiKrA0KK+aWueafj+asvQ0KK+aWueeni+mMpg0KK+aWueiLpeePig0KK+aWuemHjeWHsQ0KK+aWueaZieW+tw0KK+aWueWBpeWJmw0KK+aWueW9qeWunA0KK+aWuea3keiKrA0KK+aWuea3keWEkg0KK+aWueWHseeOsg0KK+aWueaZr+W8mA0KK+aWueetluawkQ0KK+aWuembheeQqg0KK+aWueaEm+ePjQ0KK+aWueeRnumBoA0KK+aWueijleasvQ0KK+aWueWYieiIiA0KK+aWuee/oOm0uw0KK+aWueaFp+eQtA0KK+aWuemdnOWunA0KK+aWueeTiuWEgA0KK+aWuem6l+mbhQ0KK+aWuemQmOmLkg0KK+aWueiPgOiQjQ0KK+avm+aWh+WLhw0KK+avm+S9qeWonw0KK+avm+W9peWWrA0KK+avm+a3keiKrA0KK+avm+a8ouaihQ0KK+awtOelpeiLkw0KK+eJm+iytOizog0KK+eOi+S4gOePjQ0KK+eOi+S5g+S/kA0KK+eOi+WKm+W5sw0KK+eOi+S4iue2rQ0KK+eOi+Wjq+W/oA0KK+eOi+Wjq+amrg0KK+eOi+Wjq+ixqg0KK+eOi+Wkp+aYjA0KK+eOi+WtkOaIkA0KK+eOi+WtkOiLsQ0KK+eOi+WtkOeGmQ0KK+eOi+Wwj+iKrA0KK+eOi+S4reW5sw0KK+eOi+S4reaGkw0KK+eOi+WwueiBlg0KK+eOi+S7geWQmw0KK+eOi+S7geWulw0KK+eOi+S7geiInA0KK+eOi+WFg+WKqQ0KK+eOi+WFg+iIiA0KK+eOi+WPi+W/lw0KK+eOi+WkqeaWhw0KK+eOi+WwkeaWhw0KK+eOi+W/g+W/oA0KK+eOi+W/g+aAoQ0KK+eOi+W/g+aZug0KK+eOi+aWh+W5sw0KK+eOi+aWh+WQmw0KK+eOi+aWh+W/lw0KK+eOi+aWh+adsA0KK+eOi+aWh+mDgQ0KK+eOi+aWh+eQqg0KK+eOi+aWh+eRpA0KK+eOi+aWh+m0uw0KK+eOi+aWueaAoQ0KK+eOi+aciOWptw0KK+eOi+S4luWuhw0KK+eOi+S4luaYjg0KK+eOi+S4luWCkQ0KK+eOi+S4luW7ow0KK+eOi+S4lemKkw0KK+eOi+WPr+asow0KK+eOi+W3p+eRqQ0KK+eOi+W8mOavhQ0KK+eOi+ato+WogQ0KK+eOi+ato+mBlA0KK+eOi+awuOS7gQ0KK+eOi+awuOaYhw0KK+eOi+awuOiqoA0KK+eOi+eOieaWhw0KK+eOi+eOieePoA0KK+eOi+eOiembsg0KK+eOi+eUn+WLsw0KK+eOi+eri+aihQ0KK+eOi+eri+eRiw0KK+eOi+S7sueQpg0KK+eOi+WFiem6gw0KK+eOi+WQieS9sw0KK+eOi+WmgueOiQ0KK+eOi+Wuh+a4hQ0KK+eOi+WuieWHsQ0KK+eOi+aXreWFqA0KK+eOi+acieasig0KK+eOi+iHquW8tw0KK+eOi+S9kOi8lA0KK+eOi+S8r+mAuA0KK+eOi+WIqeeUnw0KK+eOi+WQm+eRng0KK+eOi+Wmmee0hQ0KK+eOi+WtneWQmw0KK+eOi+Wuj+S7gQ0KK+eOi+Wuj+WTsg0KK+eOi+Wuj+WYiQ0KK+eOi+W6j+e2uA0KK+eOi+W/l+S7gQ0KK+eOi+W/l+aWhw0KK+eOi+W/l+W8mA0KK+eOi+W/l+WRiA0KK+eOi+W/l+W/oA0KK+eOi+W/l+WzsA0KK+eOi+W/l+WBiQ0KK+eOi+W/l+a4hQ0KK+eOi+W/l+asvQ0KK+eOi+W/l+iqoA0KK+eOi+W/l+ixqg0KK+eOi+W/l+mKmA0KK+eOi+adj+Wmgg0KK+eOi+engOS6kQ0KK+eOi+engOiKrA0KK+eOi+engOePoA0KK+eOi+engOmbrw0KK+eOi+engOakvw0KK+eOi+iCsuW+tw0KK+eOi+iwt+elng0KK+eOi+S6nuW/lw0KK+eOi+S+nemfuw0KK+eOi+S9s+ePjQ0KK+eOi+S9s+eQqg0KK+eOi+S9qQ0KK+eOi+S9qemfsw0KK+eOi+S9qeipqQ0KK+eOi+WdpOizog0KK+eOi+Wtn+ismQ0KK+eOi+Wul+ajiw0KK+eOi+WunOW9pQ0KK+eOi+WyoemZtQ0KK+eOi+W/teaFiA0KK+eOi+aAoeS7gQ0KK+eOi+aAoeaWhw0KK+eOi+aAoeaWuQ0KK+eOi+aAoeePjQ0KK+eOi+aAoea4hQ0KK+eOi+aAoeWptw0KK+eOi+aAoeaZtA0KK+eOi+aAoembhQ0KK+eOi+aAoeiYiw0KK+eOi+aJv+iInA0KK+eOi+aYjuS7gQ0KK+eOi+aYjuePig0KK+eOi+aYjuWvjA0KK+eOi+aYgOePqQ0KK+eOi+aso+S5iw0KK+eOi+aso+aFpw0KK+eOi+azk+e/lA0KK+eOi+ayu+mCpg0KK+eOi+eOq+aoug0KK+eOi+iKs+aFpw0KK+eOi+mCtemDgQ0KK+eOi+mHkeiPrw0KK+eOi+mbqOa5mA0KK+eOi+S6remIng0KK+eOi+S/oeS7gQ0KK+eOi+S/oeazsA0KK+eOi+S/oeWvjA0KK+eOi+S/oeijlQ0KK+eOi+S/iuS7gQ0KK+eOi+S/iueriw0KK+eOi+S/iuW9pQ0KK+eOi+S/iua4hQ0KK+eOi+S/iuWCkQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iuWHsQ0KK+eOi+S/iuWvjA0KK+eOi+S/iuasvQ0KK+eOi+S/iui2hQ0KK+eOi+S/iumBkw0KK+eOi+S/ium+jQ0KK+eOi+S/nuaWhw0KK+eOi+WGoOWAqw0KK+eOi+WGoOeEtg0KK+eOi+WJh+WLnQ0KK+eOi+WLgeWHjA0KK+eOi+WTgea3hw0KK+eOi+WlleWQmw0KK+eOi+WllemIng0KK+eOi+Wnv+S7ig0KK+eOi+Wnv+iQjQ0KK+eOi+WogeiDvQ0KK+eOi+Wuo+WNvw0KK+eOi+W7uuWxsQ0KK+eOi+W7uuaWhw0KK+eOi+W7uuaUvw0KK+eOi+W7uuWHsQ0KK+eOi+W7uuasvQ0KK+eOi+W7uumbhA0KK+eOi+W7uuaWjA0KK+eOi+W9peiDvQ0KK+eOi+W9peaZug0KK+eOi+W+i+S5iw0KK+eOi+aAneaNtw0KK+eOi+aAnea9lA0KK+eOi+aUv+ayuw0KK+eOi+aUv+asig0KK+eOi+aYreS6ug0KK+eOi+aYrea3kQ0KK+eOi+aYreaHvw0KK+eOi+aYn+eakw0KK+eOi+aYseWHsQ0KK+eOi+aYseiYiw0KK+eOi+afj+asow0KK+eOi+afj+Wgrw0KK+eOi+afj+mIng0KK+eOi+a0vui7kg0KK+eOi+eCuuiSqA0KK+eOi+eOsuiLsQ0KK+eOi+ebiOW/gw0KK+eOi+ebiOWCkQ0KK+eOi+ebiOmbhQ0KK+eOi+eliOmIng0KK+eOi+eni+aDoA0KK+eOi+e0gA0KK+eOi+e+jueOiQ0KK+eOi+e+jueOsg0KK+eOi+e+jua3kQ0KK+eOi+e+juaDoA0KK+eOi+e+jumbrw0KK+eOi+e+juaHvw0KK+eOi+iHtOajoA0KK+eOi+iLpeetkQ0KK+eOi+iLseaWhw0KK+eOi+iLseiTiQ0KK+eOi+ihjeaYkw0KK+eOi+iynuaHvw0KK+eOi+mDgeasow0KK+eOi+mDgeWptw0KK+eOi+mDgeiPgQ0KK+eOi+mDgeePug0KK+eOi+mfi+e/lA0KK+eOi+S/ruiYrQ0KK+eOi+WTsuiBsA0KK+eOi+WutuWBiQ0KK+eOi+WutueRnA0KK+eOi+WxleeRiw0KK+eOi+aCheWmgg0KK+eOi+aMr+Wuhw0KK+eOi+aMr+a1qQ0KK+eOi+aZguiUmg0KK+eOi+ahguWykQ0KK+eOi+a1t+WkqQ0KK+eOi+a1qeWAqw0KK+eOi+ePruWAqw0KK+eOi+ePrueShw0KK+eOi+e0oOWNvw0KK+eOi+e0lOe+jg0KK+eOi+iMuemmqA0KK+eOi+WBieawkQ0KK+eOi+WBieW3ng0KK+eOi+WBiei7jQ0KK+eOi+WBieW+tw0KK+eOi+WBpeawkQ0KK+eOi+WBpeWLsw0KK+eOi+Wciw0KK+eOi+Wci+W9pQ0KK+eOi+Wci+mahg0KK+eOi+Wci+m+jQ0KK+eOi+Wft+S/oQ0KK+eOi+Wfueaoug0KK+eOi+WpieeRnA0KK+eOi+W0h+aYjg0KK+eOi+W0kem+jQ0KK+eOi+W9qemcng0KK+eOi+aDh+aFpw0KK+eOi+WVn+Wulw0KK+eOi+WVn+aotQ0KK+eOi+aVj+iyng0KK+eOi+aVj+mKkw0KK+eOi+aZqOabhA0KK+eOi+aiheiYrQ0KK+eOi+a3s+aFpw0KK+eOi+a4hem0uw0KK+eOi+a3keaAoQ0KK+eOi+a3keWGoA0KK+eOi+a3keeciQ0KK+eOi+a3keWonw0KK+eOi+a3keWqmw0KK+eOi+a3kembrw0KK+eOi+a3keaFpw0KK+eOi+a3kemfuw0KK+eOi+a3qOeRqQ0KK+eOi+elpeWuhw0KK+eOi+elpemclg0KK+eOi+e0ueecnw0KK+eOi+iOieaxtg0KK+eOi+iOiembrw0KK+eOi+mbquWmgg0KK+eOi+WCkeeriw0KK+eOi+WHseW8mA0KK+eOi+WHseaAoQ0KK+eOi+WHseiSgg0KK+eOi+WLneW8mA0KK+eOi+WLnembhA0KK+eOi+WNmuaWhw0KK+eOi+WNmuS/rg0KK+eOi+Wgr+W8mA0KK+eOi+Wpt+WEgA0KK+eOi+WvjOaYjA0KK+eOi+W+qei8nQ0KK+eOi+aDoOWQmw0KK+eOi+aDoOeOsg0KK+eOi+aDoOaVjw0KK+eOi+aDoOaFpw0KK+eOi+aVpuatow0KK+eOi+aZtOWnvw0KK+eOi+aZr+WFgw0KK+eOi+aZr+aziQ0KK+eOi+aZuuW8mA0KK+eOi+aZuueriw0KK+eOi+aZuuebig0KK+eOi+aZuumztA0KK+eOi+aZuum+jQ0KK+eOi+acneawuA0KK+eOi+acnemNtQ0KK+eOi+asveW4nQ0KK+eOi+a5mOmbsg0KK+eOi+eQqg0KK+eOi+eQpuaemg0KK+eOi+eak+atow0KK+eOi+e0q+mbrw0KK+eOi+e/lOWvpw0KK+eOi+iIkueRnA0KK+eOi+iInOeUnw0KK+eOi+iPgeiYrQ0KK+eOi+ipoOaFpw0KK+eOi+iytOm+jQ0KK+eOi+mAuOS/rg0KK+eOi+mAsum0uw0KK+eOi+mWlOmfiw0KK+eOi+mbheS8tg0KK+eOi+mbheWnvw0KK+eOi+mbheiyng0KK+eOi+mbheaDoA0KK+eOi+mbhembrw0KK+eOi+mbheWEgA0KK+eOi+mbheaFpw0KK+eOi+mbrw0KK+eOi+mbsueUnw0KK+eOi+mghum0uw0KK+eOi+WLpOWWhA0KK+eOi+aEj+aDoA0KK+eOi+aFiOaFtg0KK+eOi+aEm+WYiQ0KK+eOi+aVrOe/lA0KK+eOi+aWsOaFpw0KK+eOi+amhuWvjA0KK+eOi+avk+iPgQ0KK+eOi+avk+eFhw0KK+eOi+eFp+iIiA0KK+eOi+eRnuWQnw0KK+eOi+eRnueDvQ0KK+eOi+eRnumbsg0KK+eOi+eRnumgpA0KK+eOi+eRnuiWjA0KK+eOi+ebn+S7gQ0KK+eOi+eonOmIng0KK+eOi+iBlg0KK+eOi+iBluWwpA0KK+eOi+iBlua3sw0KK+eOi+iBluajiw0KK+eOi+iBlue2rQ0KK+eOi+iBlueRiw0KK+eOi+ijleatow0KK+eOi+ijleaZug0KK+eOi+ipqemDgQ0KK+eOi+ipqeWptw0KK+eOi+ipqembhQ0KK+eOi+ipqemmqA0KK+eOi+mBk+S7gQ0KK+eOi+mJhee/lA0KK+eOi+mdlumbrw0KK+eOi+m8juWFgQ0KK+eOi+WYieWQmw0KK+eOi+WYiemDgQ0KK+eOi+WYieeQqg0KK+eOi+WYiei+sg0KK+eOi+WYieaFpw0KK+eOi+WYieiIiA0KK+eOi+WYiem9oQ0KK+eOi+W9sOaHiw0KK+eOi+amrueZvA0KK+eOi+a8ouelpQ0KK+eOi+edv+WQmw0KK+eOi+eiqeaFtg0KK+eOi+emj+elpQ0KK+eOi+e2reWmgg0KK+eOi+e2rembrw0KK+eOi+e2reeHpg0KK+eOi+e/oOiPrw0KK+eOi+iSvOm+jQ0KK+eOi+ixquWCkQ0KK+eOi+mKmOaihQ0KK+eOi+mKmOm0uw0KK+eOi+mzs+WunA0KK+eOi+WEgOepjg0KK+eOi+W+t+eakw0KK+eOi+aFtuWggg0KK+eOi+aFp+WQmw0KK+eOi+aFp+iLsQ0KK+eOi+aFp+WHsQ0KK+eOi+aFp+mbrw0KK+eOi+aFp+mdnA0KK+eOi+aomeasvQ0KK+eOi+eRvueRnA0KK+eOi+i8nemKmA0KK+eOi+WEkumahg0KK+eOi+aGsuebnw0KK+eOi+abiemfsw0KK+eOi+abiembrw0KK+eOi+abieeRiw0KK+eOi+eHleW8tw0KK+eOi+iIiOmCpg0KK+eOi+iVmeWuuQ0KK+eOi+mMq+elvw0KK+eOi+mMpuaFpw0KK+eOi+mdnOaAoQ0KK+eOi+mdnOeQqg0KK+eOi+mdnOaFpw0KK+eOi+eIteaakA0KK+eOi+iHhumItA0KK+eOi+iWh+Wqmw0KK+eOi+ismee2rQ0KK+eOi+m0u+W/lw0KK+eOi+m0u+mIng0KK+eOi+emruismQ0KK+eOi+WvteaDoA0KK+eOi+eAmuWfug0KK+eOi+eTiuePrg0KK+eOi+eTiueRpA0KK+eOi+e5quW1kA0KK+eOi+itiembhA0KK+eOi+mfu+a3kQ0KK+eOi+m1rA0KK+eOi+m6kumIng0KK+eOi+m6l+iKrA0KK+eOi+m6l+a3kQ0KK+eOi+m6l+eQpg0KK+eOi+m6l+mbrw0KK+eOi+m6k+aWrw0KK+eOi+Wvtum+jQ0KK+eOi+e5vOWgrw0KK+eOi+iAgOaaiQ0KK+eOi+iAgOaFtg0KK+eOi+iAgOmQuA0KK+eOi+mQmOmKmA0KK+eOi+mmqOaVjw0KK+eOi+mmqOiLuQ0KK+eOi+m9oeaikw0KK+eOi+WEt+epjg0KK+eOi+aru+Wonw0KK+eOi+i6jemclg0KK+eOi+mhr+WNiQ0KK+eOi+iKiumbrw0KK+eOi+Wntembrw0KK+eOi+a1n+e+jg0KK+eOi+eQh+Wnvw0KK+eOi+e/iuieog0KK+eOi+ajqOW+tw0KK+eOi+eQrueRiw0KK+eOi+eQoembrw0KK+eOi+Wrhuajuw0KK+eOi+eRi+mItA0KK+eOi+etseWptw0KK+eOi+etseiQsQ0KK+eOi+mIuuasow0KK+eOi+mIuuakjQ0KK+eOi+iTgeWEgA0KK+eOi+iWj+mbrw0KK+eOi+Wsv+a3kQ0KK+S4lua9k+mdnA0KK+S4mOecn+e2ug0KK+WGieWFhuePjQ0KK+WMheW/l+aWhw0KK+WMheWurue2rQ0KK+WPpOS4gOecnw0KK+WPpOaciOWopQ0KK+WPpOeOiemzsw0KK+WPpOengOmItA0KK+WPpOS9qeeOiQ0KK+WPpOaJv+W8mA0KK+WPpOaYjuaZnw0KK+WPpOS/iue2sQ0KK+WPpOiLseWxsQ0KK+WPpOahguiPig0KK+WPpOaDn+mKmA0KK+WPpOiOiemcnA0KK+WPpOaZuuWBiQ0KK+WPpOmbsuS7gQ0KK+WPpOipqeWEgA0KK+WPpOWtuOa2tQ0KK+WPpOS/tue2ug0KK+WPuOmghuWuiQ0KK+WPsuWFiOm0uw0KK+WPsuaYjuWOnw0KK+WPsuWci+emjw0KK+WPsuiBlum0uw0KK+WPsuabnOW9sA0KK+W3puWul+WFgw0KK+W3puiTjA0KK+eUmOawuOijlQ0KK+eUmOWtn+m+jQ0KK+eUmOaUv+W8mA0KK+eUmOaDoOiPrw0KK+eUmOmciOmclg0KK+eUsOS4luizog0KK+eUsOWFhueQqg0KK+eUsOaykOaBqQ0KK+eUsOS9qeeBnQ0KK+eUsOaAoQ0KK+eUsOiKs+iMuQ0KK+eUsOiLseW/lw0KK+eUsOePruS/gw0KK+eUsOa3keWQmw0KK+eUsOasveaWhw0KK+eUsOWYieeOsg0KK+eUsOabiemIng0KK+eUsOeSp+iPgA0KK+eUs+W/l+aWjA0KK+eUs+WvjOmRqw0KK+eZveWkp+WwuQ0KK+eZveWFqOaIkA0KK+eZveWykeaAoQ0KK+eZveS9s+a4nQ0KK+eZveWunOmMmg0KK+eZveaso+advg0KK+eZveeOsuaFiA0KK+eZveaMr+a6kA0KK+eZveiAv+ihjA0KK+eZvea3keeRnA0KK+eZveWWnOaWhw0KK+eZveiInOWFgw0KK+eZveeFjOm6kg0KK+eZveamruS/rg0KK+eZvemdnOWmgg0KK+eZvem6l+WonA0KK+efs+S5g+Wmgg0KK+efs+S4luWQjQ0KK+efs+eOiemzsw0KK+efs+aXreeUnw0KK+efs+iCsueOnw0KK+efs+S9s+iTiQ0KK+efs+Wul+S7gQ0KK+efs+aYjuWRqA0KK+efs+iKs+ePig0KK+efs+e+jueOsg0KK+efs+Wzu+W5sw0KK+efs+e0lOe2ug0KK+efs+W9qeaFpw0KK+efs+WCkeWuhw0KK+efs+acneWuiQ0KK+efs+mbheaDoA0KK+efs+aFtuWSjA0KK+efs+mMpuiIqg0KK+efs+mmpeeRhA0KK+efs+eRi+mdnA0KK+S8jeS4luaPmg0KK+S8jeengOiTiQ0KK+S8jeW7uuaWhw0KK+S8jeWutuiqvA0KK+S8jeWBpem1rA0KK+S8jeeip+eOsg0KK+S7u+aJjeS/ig0KK+S7u+WQm+aVjw0KK+S7u+S/iuWEkg0KK+S7u+e0lOaFpw0KK+S7u+aWsOiYrQ0KK+S7u+etsea4hQ0KK+WNseaYjuW6tw0KK+WQkeilv+mZvQ0KK+WQkeW+t+WuuQ0KK+WuieW/l+WBiQ0KK+aIkOS4ueeOsg0KK+absuaYjOmahg0KK+acseS5meecnw0KK+acseW/g+aAoQ0KK+acseaWh+eipw0KK+acseS4lumIng0KK+acseato+aWhw0KK+acseeOieaxtg0KK+acseS6puS4uQ0KK+acseeZvuaZnw0KK+acseWmjeWmgg0KK+acseW4jOaMrw0KK+acseW/l+a0iw0KK+acseaym+aAoQ0KK+acseiCsuS9kQ0KK+acseiCsueRqQ0KK+acseS9s+eQqg0KK+acseWul+iUmg0KK+acseW/teiLsQ0KK+acseaAoeiHuw0KK+acseadseaHiQ0KK+acseenieaFpw0KK+acsemCseaYjg0KK+acseS/iuelpQ0KK+acseS/ium+jQ0KK+acseWljuW3ng0KK+acseW7uuazsA0KK+acseW9peWEkg0KK+acseaUv+WTsg0KK+acseafj+iSvA0KK+acseePjeaFpw0KK+acseeni+aFpw0KK+acseiLpeaihQ0KK+acsemDgeW6rQ0KK+acseWOn+Wujw0KK+acseWutuatow0KK+acseWutuasow0KK+acseWutuaFpw0KK+acseWuuee3tA0KK+acseWzsOiqvA0KK+acseaZguW9pQ0KK+acseabuOizog0KK+acseaut+W7tw0KK+acseePruWEgA0KK+acseelkOWRiA0KK+acsee0lOeRqQ0KK+acseWBieWCkQ0KK+acseWBpeiqoA0KK+acseWfueiQsQ0KK+acseW6t+mKmA0KK+acseaVj+mBkw0KK+acsea3keaDoA0KK+acsemZs+WVn+a6kA0KK+acseWvk+eQhg0KK+acseacnem6nw0KK+acseipoOiBrw0KK+acsembhemItA0KK+acseWXo+iKrA0KK+acseeRnuWLhw0KK+acsemBlOaYjg0KK+acseamruWujw0KK+acseemj+WxsQ0KK+acsemzs+iWhw0KK+acseaFp+ecnw0KK+acsei8neiAgA0KK+acseabieaZtA0KK+acsemdnOaWhw0KK+acseeSv+WwuQ0KK+acsem6l+Wptw0KK+acseiKruWunA0KK+acseeQrOiTgQ0KK+asoeiYreiLsQ0KK+axn+S4reWBpQ0KK+axn+WkqeaOiA0KK+axn+aWh+advg0KK+axn+aWh+eTig0KK+axn+S4luiPrw0KK+axn+ato+WCkQ0KK+axn+eOieWNiQ0KK+axn+eri+WzsA0KK+axn+WQieelpQ0KK+axn+aIkOaWjA0KK+axn+WRiOmZvQ0KK+axn+W/l+Wujw0KK+axn+W/l+mahg0KK+axn+engOeOsg0KK+axn+iCsumchg0KK+axn+S9s+iKsw0KK+axn+S9s+e0lA0KK+axn+S9s+mclg0KK+axn+S9qeeOsg0KK+axn+S9qee4iA0KK+axn+WNlOWLhw0KK+axn+Wtn+iKnQ0KK+axn+Wtn+a+pA0KK+axn+Wul+WTsg0KK+axn+WunOiKsw0KK+axn+WunOaoug0KK+axn+WyqemBlA0KK+axn+W/oOmBoA0KK+axn+aAoeiQsQ0KK+axn+aAoeemmw0KK+axn+aYjOm0uw0KK+axn+aYjuadvg0KK+axn+aYjuabuA0KK+axn+aYjueSiw0KK+axn+aYjuiXnQ0KK+axn+adseaHiw0KK+axn+aso+WuuQ0KK+axn+eOqeiQqQ0KK+axn+iKneaVjw0KK+axn+mVt+WjvQ0KK+axn+S/oeadsQ0KK+axn+S/iuaYjg0KK+axn+S/iuWEhA0KK+axn+S/iuiIiA0KK+axn+WTgeWEgA0KK+axn+WogeW+tw0KK+axn+W7uumKmA0KK+axn+W9pei8nQ0KK+axn+aBrA0KK+axn+aUv+WEkg0KK+axn+aYreizog0KK+axn+afj+iRpg0KK+axn+eOsuaFpw0KK+axn+e0gOaYjg0KK+axn+e+juaFpw0KK+axn+iLseS/oQ0KK+axn+ihjem+jQ0KK+axn+miqOmBoA0KK+axn+WutumKmA0KK+axn+aMr+Wuhw0KK+axn+abuOeRqQ0KK+axn+ePruWumQ0KK+axn+e0lOeOqw0KK+axn+WBpeaIkA0KK+axn+Wci+aFtg0KK+axn+WvheeUqw0KK+axn+WVn+S7sg0KK+axn+aineWdhw0KK+axn+a3keiyng0KK+axn+ebm+m+jQ0KK+axn+WHsea9lA0KK+axn+aDoOiPrw0KK+axn+aZuue2rQ0KK+axn+mAuOWuiQ0KK+axn+mbheaWhw0KK+axn+mbheaDoA0KK+axn+WCs+axnw0KK+axn+eRnuelpQ0KK+axn+ijleWciw0KK+axn+WYieWAqw0KK+axn+amlearuw0KK+axn+e/oOiKsw0KK+axn+WvrOaFiA0KK+axn+aFp+iKsw0KK+axn+aFleWxjw0KK+axn+aGtumbrw0KK+axn+epjuaYjg0KK+axn+mMpui8nQ0KK+axn+iVvg0KK+axn+ixkOiJrw0KK+axn+m6l+Wonw0KK+axn+WKreWAqw0KK+axn+Wqng0KK+axn+aqieeahw0KK+axoOazsOWujw0KK+eJn+aYlQ0KK+iJvumdkuiTiQ0KK+S9leWkp+aWsA0KK+S9leS7geeUsA0KK+S9leWkqeaBqQ0KK+S9leaWh+aWhw0KK+S9leaWh+iQsQ0KK+S9leS4lumbhA0KK+S9leawuOeQsw0KK+S9leeOiea9lA0KK+S9leS6meW9rA0KK+S9leWFiearug0KK+S9leaXreW5sw0KK+S9leWQm+iQjQ0KK+S9leW/l+a1qQ0KK+S9leaym+eGmQ0KK+S9leiCsuadsA0KK+S9leS6q+iTiQ0KK+S9leS9s+WNlw0KK+S9leS9s+ecnw0KK+S9leS9s+iejQ0KK+S9leS9qeiKnQ0KK+S9leS9qee0lA0KK+S9leWFtua+pA0KK+S9leWnjeiTiQ0KK+S9leWtn+izog0KK+S9leWto+enpg0KK+S9leWul+W9rA0KK+S9leWul+eGuQ0KK+S9leWul+empw0KK+S9leWunOWAqQ0KK+S9leWunOeShw0KK+S9leWys+ePiA0KK+S9leaAoeWQmw0KK+S9leaJv+S7sg0KK+S9leaYk+WxlQ0KK+S9leaYjuWulw0KK+S9leaYjuabuA0KK+S9leaYjuepjg0KK+S9leaYh+WEkg0KK+S9leadvueRpA0KK+S9leaso+i7kg0KK+S9leenieasow0KK+S9leiKt+eRhA0KK+S9lembqOmbrw0KK+S9leS/oeWulw0KK+S9leS/iuW7tw0KK+S9leS/iumBlA0KK+S9leS/iuizog0KK+S9leWGoOmclg0KK+S9leWogeW+tw0KK+S9leW7uuaogg0KK+S9leW9pemnkg0KK+S9leaAneepjg0KK+S9leaUv+e/sA0KK+S9leaYreizog0KK+S9leeCs+izog0KK+S9leeni+iQsQ0KK+S9lee+jueOsg0KK+S9leiLpeeRnA0KK+S9lemmmeiRiQ0KK+S9leWutuiPgQ0KK+S9leWzu+adsA0KK+S9leaMr+e2rQ0KK+S9lea1mumKmA0KK+S9lee0oOWQmw0KK+S9leWBpee2rQ0KK+S9leWci+aZnw0KK+S9leW0h+e2rQ0KK+S9leaVj+iPgQ0KK+S9lea4hem+jQ0KK+S9lea3keWptw0KK+S9lea2tQ0KK+S9leWLneWQiA0KK+S9leaDoOWQmw0KK+S9leaDoOmIug0KK+S9leiIkuW1kA0KK+S9lemAuOeEtg0KK+S9lembheeQqg0KK+S9leaEj+eRqQ0KK+S9leeRnue+jg0KK+S9leiQseeShw0KK+S9leWYieWxlQ0KK+S9leamruaWhw0KK+S9lee2reiAlQ0KK+S9lemKmOWujw0KK+S9leaFtuiIiA0KK+S9leaFp+WEgA0KK+S9leWtuOWOmg0KK+S9leabieebiA0KK+S9leeHleWxjw0KK+S9lemMpumhjA0KK+S9lemdnOWEgA0KK+S9lee5lA0KK+S9lem6l+WQmw0KK+S9leaXu+mcnA0KK+S9lee/iue2ug0KK+S9meWtkOmKmA0KK+S9meW/g+i+sg0KK+S9meaWh+ijlQ0KK+S9meW8mOWBiQ0KK+S9meWQieelpQ0KK+S9meS8tg0KK+S9meW/l+m+jQ0KK+S9mei/hQ0KK+S9meS9s+mfsw0KK+S9meS9s+iIiA0KK+S9meS9qeWonw0KK+S9meWdquiKsw0KK+S9meWtn+mcjw0KK+S9meWul+WEkg0KK+S9meWum+WEkg0KK+S9meW/oOeHiA0KK+S9meaYjOe/sA0KK+S9meaYjuWonw0KK+S9meaYjua+pA0KK+S9meadseabiQ0KK+S9meazleaYjA0KK+S9memHkeWFuA0KK+S9meS/oeWBiQ0KK+S9meS/iua3tQ0KK+S9meS/iuWEkg0KK+S9meWLgeavhQ0KK+S9meW4neaFtg0KK+S9meW9pemclg0KK+S9meaUv+mahg0KK+S9meaYn+aflA0KK+S9meebiOmLkg0KK+S9meiLpeW4hg0KK+S9meWHjOaYjA0KK+S9meWutueRqQ0KK+S9meazsOeUtw0KK+S9mee0oOiYrQ0KK+S9meWci+WuiQ0KK+S9meWpieiQjQ0KK+S9meaZqOiPrw0KK+S9meebm+asvQ0KK+S9meaDoOaWhw0KK+S9meaZuuWCkQ0KK+S9membhea3kQ0KK+S9meaFiOWutA0KK+S9meeRnuiQjQ0KK+S9meWYieWzsA0KK+S9meemj+a1qQ0KK+S9mem9iuWogQ0KK+S9meaGsuWulw0KK+S9meirpw0KK+S9meisnei8nQ0KK+S9mem6l+eQtA0KK+S9meeQrOeRnA0KK+WIqeengOiYrQ0KK+WIqeW+t+e1gw0KK+WQs+S5g+WFgw0KK+WQs+WNg+aFpw0KK+WQs+Wkp+e2rQ0KK+WQs+WtkOixqg0KK+WQs+S4reWujw0KK+WQs+S7geS9kQ0KK+WQs+S7geiytA0KK+WQs+WFg+W5sw0KK+WQs+WFg+WriA0KK+WQs+WwkemIng0KK+WQs+W/g+aDoA0KK+WQs+aWh+eOiQ0KK+WQs+aWh+aAoQ0KK+WQs+aWh+ebig0KK+WQs+aWh+WCkQ0KK+WQs+aWh+eZvA0KK+WQs+aWh+mItA0KK+WQs+aWh+avhQ0KK+WQs+aWh+aWjA0KK+WQs+eBq+WxsQ0KK+WQs+S4luWBiQ0KK+WQs+S4lumBlA0KK+WQs+S7leW8tw0KK+WQs+S7n+S4gA0KK+WQs+W5s+WSjA0KK+WQs+W/heWLnQ0KK+WQs+ato+Wlhw0KK+WQs+ato+iPrw0KK+WQs+awuOaYjA0KK+WQs+awuOijlQ0KK+WQs+eOieWQnw0KK+WQs+eOieiMuQ0KK+WQs+eOieaZrw0KK+WQs+eOieiTiQ0KK+WQs+eri+awkQ0KK+WQs+eri+WLpA0KK+WQs+S8iuiYiw0KK+WQs+S7suazgg0KK+WQs+WFhuaWhw0KK+WQs+WQiem+jQ0KK+WQs+Wmgualpg0KK+WQs+WuiemCpg0KK+WQs+aXreazsA0KK+WQs+iHs+S7gQ0KK+WQs+ihjOS4rQ0KK+WQs+S8tum6lw0KK+WQs+WQm+iCsg0KK+WQs+WmmeWAqw0KK+WQs+Wuj+S7gQ0KK+WQs+Wuj+Wfug0KK+WQs+W4jOellg0KK+WQs+W/l+Wujw0KK+WQs+W/l+aBhg0KK+WQs+W/l+WBiQ0KK+WQs+W/l+a8og0KK+WQs+W/l+m+jQ0KK+WQs+adj+aXiw0KK+WQs+aym+aZgw0KK+WQs+axtuaxtg0KK+WQs+engOeOsg0KK+WQs+engOe0iw0KK+WQs+engOm1kQ0KK+WQs+iCsuWulw0KK+WQs+iCsueiqQ0KK+WQs+iCsumclg0KK+WQs+S6nuasow0KK+WQs+S+neWmrg0KK+WQs+S+neiTkw0KK+WQs+S9s+WSjA0KK+WQs+S9s+iKsw0KK+WQs+S9s+WNlw0KK+WQs+S9s+eOsg0KK+WQs+S9s+eOsg0KK+WQs+S9s+WAqQ0KK+WQs+S9s+WuuQ0KK+WQs+S9s+ecnw0KK+WQs+S9s+aDoA0KK+WQs+S9s+iTiQ0KK+WQs+S9s+aGrA0KK+WQs+S9s+aoug0KK+WQs+S9s+epjg0KK+WQs+S9s+iVmQ0KK+WQs+S9s+mdnA0KK+WQs+S9s+m0uw0KK+WQs+S9qeWQmw0KK+WQs+S9qeiKsw0KK+WQs+S9qeWfjg0KK+WQs+S9qeePig0KK+WQs+S9qeeOsg0KK+WQs+S9qeWopQ0KK+WQs+S9qee0lA0KK+WQs+S9qeiTiQ0KK+WQs+S9qeWEkg0KK+WQs+S9qeirrQ0KK+WQs+S9qeiTgQ0KK+WQs+S+keW6rQ0KK+WQs+WFtumclg0KK+WQs+WHveiTgQ0KK+WQs+WPlOmOrg0KK+WQs+WdpOelkA0KK+WQs+WdpOm0uw0KK+WQs+Wlh+WTsg0KK+WQs+Wlh+m+jQ0KK+WQs+Wtn+Wulw0KK+WQs+Wtn+iKrA0KK+WQs+Wtn+iyng0KK+WQs+Wtn+Wonw0KK+WQs+Wtn+iMuQ0KK+WQs+Wtn+iTiQ0KK+WQs+Wtn+aGsg0KK+WQs+Wtn+mMqw0KK+WQs+Wtn+iVjg0KK+WQs+Wto+eRvg0KK+WQs+Wul+WysQ0KK+WQs+Wul+eliA0KK+WQs+Wul+ahkw0KK+WQs+Wul+mahg0KK+WQs+Wul+WEkg0KK+WQs+Wul+aGsg0KK+WQs+Wul+e/sA0KK+WQs+Wul+iIiA0KK+WQs+Wul+m+jQ0KK+WQs+WumueWhg0KK+WQs+WunOiKsw0KK+WQs+WunOiyng0KK+WQs+WunOelkA0KK+WQs+WunOephg0KK+WQs+WunOWsqg0KK+WQs+Wum+aAoQ0KK+WQs+Wum+e4iA0KK+WQs+WwmuWAjQ0KK+WQs+WwmuWEkg0KK+WQs+WyoeWEkg0KK+WQs+Wysemclg0KK+WQs+Wys+ahkA0KK+WQs+W5uOaenQ0KK+WQs+W5uOecnw0KK+WQs+W7tuaZgw0KK+WQs+W/oOaUvw0KK+WQs+W/oOmclg0KK+WQs+aAoeWQmw0KK+WQs+aAoeePig0KK+WQs+aAoeiQjQ0KK+WQs+aAoeaFtg0KK+WQs+aAoeeRqQ0KK+WQs+aAoeaGsg0KK+WQs+aAoemdnA0KK+WQs+aAoeWrug0KK+WQs+aJv+WTsg0KK+WQs+aJv+eSiw0KK+WQs+aLmw0KK+WQs+aYk+mBnA0KK+WQs+aYjOW6rQ0KK+WQs+aYhg0KK+WQs+aYhueSiw0KK+WQs+aYjg0KK+WQs+aYjuW/oA0KK+WQs+aYjuiKsw0KK+WQs+aYjuePjQ0KK+WQs+aYjuWTsg0KK+WQs+aYjuaBrQ0KK+WQs+aYjui7kg0KK+WQs+aYjumBlA0KK+WQs+aYjueSiw0KK+WQs+aYjuWLsw0KK+WQs+aYjuabhA0KK+WQs+aYjum+jQ0KK+WQs+aYjumhjw0KK+WQs+aYleWnvw0KK+WQs+aYh+apiw0KK+WQs+adseWSjA0KK+WQs+adseiAvw0KK+WQs+adsemclg0KK+WQs+advuaymw0KK+WQs+aso+S9qQ0KK+WQs+aso+aAoQ0KK+WQs+aso+WAqw0KK+WQs+aso+eiqQ0KK+WQs+aso+WEkg0KK+WQs+aso+m0uw0KK+WQs+azk+eOsw0KK+WQs+ayu+iLsQ0KK+WQs+eOq+WnjQ0KK+WQs+ebtOiAlQ0KK+WQs+enieWAqw0KK+WQs+enieWLsw0KK+WQs+eniemnvw0KK+WQs+iKs+mdkg0KK+WQs+iKs+eRnA0KK+WQs+iKnee3rw0KK+WQs+mHh+iKsw0KK+WQs+mHkeeOiQ0KK+WQs+mHkeabhg0KK+WQs+mVt+afjw0KK+WQs+mbqOWTsg0KK+WQs+mdkuiCsg0KK+WQs+mdkuWzsA0KK+WQs+mdkueSsA0KK+WQs+S6reiqvA0KK+WQs+S/oeW5uA0KK+WQs+S/oeWvrA0KK+WQs+S/oei8nQ0KK+WQs+S+r+eSiw0KK+WQs+S/iuWujw0KK+WQs+S/iuWlhw0KK+WQs+S/iuadsA0KK+WQs+S/iuWCkQ0KK+WQs+S/iumBlA0KK+WQs+S/iuWEgA0KK+WQs+S/iuW+tw0KK+WQs+S/iuavhQ0KK+WQs+S/iue3rw0KK+WQs+S/iuizog0KK+WQs+S/iumLkg0KK+WQs+S/iuirug0KK+WQs+S/iuWPoQ0KK+WQs+S/nueRqQ0KK+WQs+WGoOe+pA0KK+WQs+WGoOizog0KK+WQs+WGoOe/rA0KK+WQs+WLgem+jQ0KK+WQs+WTgeiTiQ0KK+WQs+WlleaIkA0KK+WQs+Wllee+sg0KK+WQs+Wnv+WEgA0KK+WQs+Wnv+aoug0KK+WQs+WogeiKsw0KK+WQs+Wuo+mLkg0KK+WQs+W7uueUnw0KK+WQs+W7uueUtw0KK+WQs+W7uuiKnQ0KK+WQs+W7uumBlA0KK+WQs+W7uuW+tw0KK+WQs+W7uuizog0KK+WQs+W7uuWLsw0KK+WQs+W7uuaXuw0KK+WQs+W9peaFtg0KK+WQs+W+i+mKmA0KK+WQs+aAneiQsQ0KK+WQs+aAneeRqQ0KK+WQs+aAneepjg0KK+WQs+aUvw0KK+WQs+aUv+aXug0KK+WQs+aUv+WOnw0KK+WQs+aUv+W9rA0KK+WQs+aUv+W+tw0KK+WQs+aUv+WLsw0KK+WQs+aUv+epjg0KK+WQs+aUv+mclg0KK+WQs+aYpeeUnw0KK+WQs+aYpee3qQ0KK+WQs+aYreiTiQ0KK+WQs+aYreavhQ0KK+WQs+aYrem+jQ0KK+WQs+aYseWujw0KK+WQs+afhOW+tw0KK+WQs+afj+mdkg0KK+WQs+afj+WEgA0KK+WQs+afj+avhQ0KK+WQs+afj+epjg0KK+WQs+eCq+Wulw0KK+WQs+eCs+W2og0KK+WQs+eOsuWqmw0KK+WQs+eah+asow0KK+WQs+ebiOa9lA0KK+WQs+eliem+jQ0KK+WQs+eni+e+jg0KK+WQs+eni+aFpw0KK+WQs+e0gOWQmw0KK+WQs+e+juWmrg0KK+WQs+e+jueOsg0KK+WQs+e+juaDoA0KK+WQs+e+juemjg0KK+WQs+e+juaFpw0KK+WQs+e+juieog0KK+WQs+e+v+iroA0KK+WQs+iHtOmKmA0KK+WQs+iLpeiPrw0KK+WQs+iLseWujw0KK+WQs+iLsem0uw0KK+WQs+iynuWunA0KK+WQs+iynueRqQ0KK+WQs+mDgeiKsw0KK+WQs+mHjeavhQ0KK+WQs+mjm+m+jQ0KK+WQs+WAqQ0KK+WQs+WOn+Wuhw0KK+WQs+WTsumbrw0KK+WQs+WTsuasig0KK+WQs+WutuaYjg0KK+WQs+WutueQqg0KK+WQs+Wutuamrg0KK+WQs+Wutuixqg0KK+WQs+WutuaFpw0KK+WQs+WuueeRqQ0KK+WQs+W6reeNhA0KK+WQs+aMr+aIkA0KK+WQs+aMr+ixqg0KK+WQs+aMuumLkg0KK+WQs+aZj+W5sw0KK+WQs+abuOamrg0KK+WQs+ahgueukA0KK+WQs+azsOaYjA0KK+WQs+a1t+iKrA0KK+WQs+ePruWQmw0KK+WQs+ePruaFiA0KK+WQs+ePruemjg0KK+WQs+ebiuiKsw0KK+WQs+e0oOiKrA0KK+WQs+e0lOasow0KK+WQs+i7kui7kg0KK+WQs+WBieWAqw0KK+WQs+WBieiqoA0KK+WQs+WBpeawkQ0KK+WQs+WBpemRqw0KK+WQs+Wci+WBiQ0KK+WQs+Wci+eNhQ0KK+WQs+Wci+eGmQ0KK+WQs+Wci+mKmA0KK+WQs+WgheeRiw0KK+WQs+Wfueizog0KK+WQs+WpieWptw0KK+WQs+Wpieathg0KK+WQs+W0h+mKmA0KK+WQs+W9qemCkQ0KK+WQs+aCoA0KK+WQs+WVn+aPmg0KK+WQs+WVn+aWjA0KK+WQs+aVj+ecnw0KK+WQs+aVj+mJhQ0KK+WQs+aik+mAog0KK+WQs+a3u+mLkg0KK+WQs+a3keWmgg0KK+WQs+a3keiKrA0KK+WQs+a3keWNvw0KK+WQs+a3keaVjw0KK+WQs+a3keiPrw0KK+WQs+a3kemzsw0KK+WQs+a2teWunA0KK+WQs+elpee2rQ0KK+WQs+e0ueiPrw0KK+WQs+iOieWptw0KK+WQs+mbquWmrg0KK+WQs+ern+iKsw0KK+WQs+WHsembrw0KK+WQs+WLneelug0KK+WQs+WWrOajrg0KK+WQs+W+qeiIiA0KK+WQs+aDoOWQmw0KK+WQs+aDoOW9qQ0KK+WQs+aDoOmbrw0KK+WQs+aWr+eHuw0KK+WQs+aZuuadsQ0KK+WQs+aZuuixqg0KK+WQs+ajn+mahg0KK+WQs+eKgOmdiA0KK+WQs+WWhOmKmA0KK+WQs+iPgeiPgQ0KK+WQs+ipoOWuuA0KK+WQs+mAuOawkQ0KK+WQs+mAuOe+pA0KK+WQs+mInuWptw0KK+WQs+mbheWdpA0KK+WQs+mbhemDgQ0KK+WQs+mbheW1kA0KK+WQs+mbheiQjQ0KK+WQs+mbhembrw0KK+WQs+mbhee2ug0KK+WQs+mbsumppQ0KK+WQs+Wck+aclw0KK+WQs+aVrOeQqg0KK+WQs+avk+ecnw0KK+WQs+a6kOeroA0KK+WQs+eRng0KK+WQs+eRnuWTsg0KK+WQs+eRnuasvQ0KK+WQs+eRnuaFtg0KK+WQs+eomumchg0KK+WQs+iBluWogQ0KK+WQs+ipqeWptw0KK+WQs+iqoOaYjA0KK+WQs+m8juWBiQ0KK+WQs+WYieS/oQ0KK+WQs+WYieWonw0KK+WQs+WYieWLnQ0KK+WQs+WYieamrg0KK+WQs+WYieiVmQ0KK+WQs+Wvp+eRhA0KK+WQs+amruazsA0KK+WQs+a8oumKmA0KK+WQs+eip+S/kA0KK+WQs+emj+mHjw0KK+WQs+e2reWAqQ0KK+WQs+e2reijlQ0KK+WQs+iCh+mosA0KK+WQs+mBoOiqoA0KK+WQs+mKmOaMrw0KK+WQs+mKk+WPiw0KK+WQs+mzs+iYrQ0KK+WQs+W+t+WFgw0KK+WQs+aFtuaWhw0KK+WQs+aFp+WQmw0KK+WQs+aFp+eOsg0KK+WQs+aFp+iyng0KK+WQs+aFp+aVjw0KK+WQs+aFp+mbrw0KK+WQs+a9lOePig0KK+WQs+iznOW/oA0KK+WQs+aGsuS4rQ0KK+WQs+aGtuWxjw0KK+WQs+abiemdkg0KK+WQs+abiee0lA0KK+WQs+abieiPgQ0KK+WQs+abieiWhw0KK+WQs+eHleiKrA0KK+WQs+epjui7kg0KK+WQs+iVmeWmgg0KK+WQs+iVmee0iw0KK+WQs+mBteWFiA0KK+WQs+mMpuS9sw0KK+WQs+mMpumOsA0KK+WQs+mdnOWunA0KK+WQs+mdnOaAoQ0KK+WQs+mdnOiKsw0KK+WQs+mdnOiMuQ0KK+WQs+mdnOmbrw0KK+WQs+m+jeWvtg0KK+WQs+e4veaIkA0KK+WQs+iBsua6kA0KK+WQs+mCgQ0KK+WQs+m0u+aYjA0KK+WQs+m0u+ajrg0KK+WQs+abnOiHow0KK+WQs+ixkOWQiQ0KK+WQs+mOruWIqQ0KK+WQs+eTiueOiQ0KK+WQs+mfu+WNiQ0KK+WQs+m6l+aYpQ0KK+WQs+m6l+Wptw0KK+WQs+eNu+iJrw0KK+WQs+mmqOaAoQ0KK+WQs+aHv+Wptw0KK+WQs+mhr+Wulw0KK+WQs+S9vOS9vA0KK+WQs+aXu+WEkg0KK+WQs+eOoOiTiQ0KK+WQs+aYtuiRsw0KK+WQs+a3qeWuiQ0KK+WQs+eQruWCkQ0KK+WQs+eRi+eQsw0KK+WQs+etseePiA0KK+WQs+eSgQ0KK+WQs+mfnuW+tw0KK+WRguWtkOixqg0KK+WRguS7geWcmA0KK+WRguWPi+Wptw0KK+WRguaWh+WwiA0KK+WRguaWh+mItA0KK+WRguS4luixqg0KK+WRguato+WuiQ0KK+WRgueOieeniw0KK+WRgueri+WBiQ0KK+WRguWmguiLsQ0KK+WRguiHqumBlA0KK+WRguW/l+Wujw0KK+WRguW/l+mLkg0KK+WRguiCsuiKsw0KK+WRguiCsueRiw0KK+WRguS9s+WunA0KK+WRguS9s+WuuQ0KK+WRguS9s+aoug0KK+WRguS9qeWnjQ0KK+WRguS9qee0lA0KK+WRguWFtumclg0KK+WRguWnjeWnjQ0KK+WRguWto+iKsw0KK+WRguWul+mKmA0KK+WRguWunOiKsw0KK+WRguWunOaZjw0KK+WRguWunOmclg0KK+WRguWxheWLsw0KK+WRguW/oOiCsg0KK+WRguaAoeaFpw0KK+WRguaXuumojw0KK+WRguaYjg0KK+WRguaYjuazsA0KK+WRguaYjum+jQ0KK+WRguadsOe3rw0KK+WRguaso+epjg0KK+WRguiKs+S/ig0KK+WRgumHkeW9pQ0KK+WRgumVt+mmqA0KK+WRguS/neWyuA0KK+WRguS/iuWEgA0KK+WRguS/kA0KK+WRguWNl+eVvw0KK+WRguWogeW+tw0KK+WRguW7uuW9pQ0KK+WRguW7uumLkg0KK+WRguW9peiejQ0KK+WRguaUv+W9pQ0KK+WRguaUv+irrQ0KK+WRguaYreWEgA0KK+WRguafj+Wujw0KK+WRgueah+WFtg0KK+WRgueni+mbsg0KK+WRgue+juaDoA0KK+WRgue+jum9oQ0KK+WRguiLseeRiw0KK+WRgumfi+eutA0KK+WRguWTsuaYjg0KK+WRguW6ree2rQ0KK+WRguagvOixqg0KK+WRguelkOWQiQ0KK+WRguWBieasvQ0KK+WRguWci+WfuQ0KK+WRguWpieiMuQ0KK+WRguaihemfsw0KK+WRgua3keWNvw0KK+WRgua3keemjg0KK+WRgueQhumclg0KK+WRgue0ueamrg0KK+WRgumbqueRnA0KK+WRguaDoOiPgQ0KK+WRguaZuuWCkQ0KK+WRguipoOecnw0KK+WRgumbheeOsg0KK+WRgumbheeQqg0KK+WRgumbr+athg0KK+WRgua7hOWgrw0KK+WRguiBlueroA0KK+WRguWYieWFgw0KK+WRguWYieixkA0KK+WRgue2reeOsg0KK+WRgumKmOaZug0KK+WRguaFp+aDoA0KK+WRguWtuOWQmw0KK+WRguWtuOaZug0KK+WRguWtuOWPoQ0KK+WRgueHleaelw0KK+WRgumMpumghg0KK+WRgumdnOiTiQ0KK+WRgum0u+m6nw0KK+WRgum6l+Wonw0KK+WRguW7s+WatA0KK+WRgue/iuawkQ0KK+Wui+Wkp+i+sA0KK+Wui+S5i+aPhg0KK+Wui+W/g+aFpw0KK+Wui+S4luaWhw0KK+Wui+eOieWptw0KK+Wui+S8r+eRnA0KK+Wui+aym+WLhw0KK+Wui+iCsueRiw0KK+Wui+S9qeePig0KK+Wui+Wtn+eRmw0KK+Wui+W5uOecnw0KK+Wui+aYjOmclg0KK+Wui+adseWogQ0KK+Wui+enieiQsQ0KK+Wui+S/iua0iw0KK+Wui+WlleWEkg0KK+Wui+W7uuasow0KK+Wui+aUv+mahg0KK+Wui+emueeRqQ0KK+Wui+iHtOmBoA0KK+Wui+Wutumclg0KK+Wui+iIq+iHow0KK+Wui+WfueWFgw0KK+Wui+aVj+iPrw0KK+Wui+WWrOeOiQ0KK+Wui+acneaWjA0KK+Wui+mbsuaYjg0KK+Wui+WYieS7gQ0KK+Wui+eip+eQsw0KK+Wui+aFp+a9lA0KK+Wui+eHleWEtw0KK+Wui+erhA0KK+Wui+aXu+ecnw0KK+W3q+WtkOaHvw0KK+W3q+aIjuaAoQ0KK+W3q+S9qeeShw0KK+W3q+WunOWtuA0KK+W3q+aYjue/sA0KK+W3q+iKt+eRiw0KK+W3q+WGoOiqvA0KK+W3q+afj+avhQ0KK+W3q+aMr+WYiQ0KK+W3q+a4heaWhw0KK+W3q+WWhOemjw0KK+W3q+WYieiIiA0KK+W3q+abieiKrA0KK+W3q+aZn+mAuA0KK+adjuS5g+aWhw0KK+adjuWjq+S6qw0KK+adjuWtkOWFgQ0KK+adjuWwj+iKrA0KK+adjuS4reS7uw0KK+adjuS4reaFpw0KK+adjuS7geS/rg0KK+adjuS7geWHsQ0KK+adjuS7ium7mw0KK+adjuWFg+Wcgw0KK+adjuWFg+ijlQ0KK+adjuWPi+a3sw0KK+adjuWkqeaoug0KK+adjuW/g+S7gQ0KK+adjuW/g+W1kA0KK+adjuaWhw0KK+adjuaWh+WQiQ0KK+adjuaWh+W/lw0KK+adjuaWh+aUvw0KK+adjuaWh+iOiQ0KK+adjuaWh+aDoA0KK+adjuaWh+eQpg0KK+adjuaWh+aEjw0KK+adjuaWh+mBlA0KK+adjuaWh+izog0KK+adjuaWh+aWjA0KK+adjuaciOaYnw0KK+adjuS4luWuiQ0KK+adjuS4luWBiQ0KK+adjuS4luWJtA0KK+adjuS4luWvrA0KK+adjuS7peaWsA0KK+adjuWPr+eriw0KK+adjuW3p+eQsw0KK+adjuW8mOaYig0KK+adjuato+WFgw0KK+adjuato+W9pQ0KK+adjuato+WLnQ0KK+adjuato+ixqg0KK+adjuawuOaYjA0KK+adjuawuOasvQ0KK+adjuawuOm0uw0KK+adjueOieS9qQ0KK+adjueOieWNvw0KK+adjueOieeQsw0KK+adjueOiemItA0KK+adjueri+S7gQ0KK+adjueri+W8tw0KK+adjuS6puaZtA0KK+adjuS7sueOhA0KK+adjuWFiQ0KK+adjuWFieelpQ0KK+adjuWFieWAog0KK+adjuWFhuaWjA0KK+adjuWQieaVjw0KK+adjuWQjeWAqw0KK+adjuWmguePjQ0KK+adjuWuh+W8mA0KK+adjuWuiOe2rQ0KK+adjuWuieeQsw0KK+adjuaIkOa8og0KK+adjuacieasvQ0KK+adjue+vQ0KK+adjuiHs+eroA0KK+adjuS9kOWvpw0KK+adjuS8r+avhQ0KK+adjuWQm+W9pQ0KK+adjuWQq+S7gQ0KK+adjuWmjeeRqQ0KK+adjuWuj+aWhw0KK+adjuWuj+a0sg0KK+adjuW7t+WBiQ0KK+adjuW/l+aIkA0KK+adjuW/l+aYjg0KK+adjuW/l+WzsA0KK+adjuW/l+WBiQ0KK+adjuW/l+eroA0KK+adjuW/l+mKmA0KK+adjuW/l+m1rA0KK+adjuaym+adsA0KK+adjuaxquebmw0KK+adjuengOW5tA0KK+adjuengOeOsg0KK+adjuengOWNvw0KK+adjuengOiPrw0KK+adjuengOiYhQ0KK+adjuiCsuaenQ0KK+adjuiCsuW6rQ0KK+adjuiCsue+pA0KK+adjuiCsueRqQ0KK+adjuiCsuiejQ0KK+adjuimi+axtg0KK+adjuS6nuWAqw0KK+adjuS6rOaoug0KK+adjuS+nee0lA0KK+adjuS+neaBgg0KK+adjuS9s+axtg0KK+adjuS9s+aYjg0KK+adjuS9s+iKsw0KK+adjuS9s+iKrA0KK+adjuS9s+eOsg0KK+adjuS9s+eOsg0KK+adjuS9s+ePjQ0KK+adjuS9s+WAqQ0KK+adjuS9s+Wutg0KK+adjuS9s+aZgw0KK+adjuS9s+ecnw0KK+adjuS9s+iokw0KK+adjuS9s+mbrw0KK+adjuS9s+iTiQ0KK+adjuS9s+aFtg0KK+adjuS9s+WEkg0KK+adjuS9s+aoug0KK+adjuS9s+epjg0KK+adjuS9s+iHuw0KK+adjuS9s+mclg0KK+adjuS9s+mcjw0KK+adjuS9s+mNtQ0KK+adjuS9s+iTgQ0KK+adjuS+g+a0iw0KK+adjuS9qeS9qQ0KK+adjuS9qeiKnQ0KK+adjuS9qeWnvw0KK+adjuS9qeePig0KK+adjuS9qeeOsg0KK+adjuS9qeWAqQ0KK+adjuS9qeecnw0KK+adjuS9qemZtQ0KK+adjuS9qeWEgA0KK+adjuS9qeabhA0KK+adjuS9qeirrQ0KK+adjuS9qeWsrA0KK+adjuS+keWurA0KK+adjuWFtua+pw0KK+adjuWHveiKrA0KK+adjuWNk+mBkw0KK+adjuWSjOaYjA0KK+adjuWdpOaYjg0KK+adjuWdpOa6kA0KK+adjuWdpOmclg0KK+adjuWlh+WxlQ0KK+adjuWlh+e/sA0KK+adjuWtn+WdpA0KK+adjuWtn+ePig0KK+adjuWtn+WTsg0KK+adjuWtn+i7kg0KK+adjuWtn+WEkg0KK+adjuWtn+epjg0KK+adjuWtn+eHpg0KK+adjuWtn+eSgQ0KK+adjuWto+iPrw0KK+adjuWul+WdpA0KK+adjuWul+WAqw0KK+adjuWul+aBqQ0KK+adjuWul+e+qQ0KK+adjuWul+izog0KK+adjuWul+aGsg0KK+adjuWul+epjg0KK+adjuWul+e/sA0KK+adjuWul+mclg0KK+adjuWul+m0uw0KK+adjuWumumBoA0KK+adjuWunOaYjg0KK+adjuWunOiKsw0KK+adjuWunOa0sg0KK+adjuWunOeOsg0KK+adjuWunOWTsg0KK+adjuWunOWzuw0KK+adjuWunOe0lA0KK+adjuWunOa9lA0KK+adjuWunOaoug0KK+adjuWunOmclg0KK+adjuWunOmfkw0KK+adjuWunOWcnA0KK+adjuWum+eOsg0KK+adjuWum+iQjQ0KK+adjuWum+mdnA0KK+adjuWwmuizog0KK+adjuWyqeaaiQ0KK+adjuWyseiTgQ0KK+adjuWys+WzsA0KK+adjuWys+aoug0KK+adjuWys+m0uw0KK+adjuW5uOWonw0KK+adjuW5uOmMoA0KK+adjuW/oOWSjA0KK+adjuW/oOe+qQ0KK+adjuW/oOepjg0KK+adjuW/teiSqA0KK+adjuaAoeaYjA0KK+adjuaAoeeOsg0KK+adjuaAoeiQsQ0KK+adjuaAoeWvrA0KK+adjuaAoeaFpw0KK+adjuaAoeeRvg0KK+adjuaAoeepjg0KK+adjuaAoeaXuw0KK+adjuaJv+Wulw0KK+adjuaJv+eSiw0KK+adjuaJv+m+jQ0KK+adjuaYk+S/rg0KK+adjuaYk+irug0KK+adjuaYjOmBlA0KK+adjuaYhuWujw0KK+adjuaYhumBlA0KK+adjuaYhum+jQ0KK+adjuaYjuWIqQ0KK+adjuaYjuaAoQ0KK+adjuaYjuadsA0KK+adjuaYjuW9pQ0KK+adjuaYjuS/rg0KK+adjuaYjuWTsg0KK+adjuaYjuabuA0KK+adjuaYjumHlw0KK+adjuaYjumBlA0KK+adjuaYjua9lA0KK+adjuaYjuWLsw0KK+adjuaYjuaoug0KK+adjuaYjuirrQ0KK+adjuaYjumcng0KK+adjuaYjuWiiQ0KK+adjuaYgOiHuw0KK+adjuaYig0KK+adjuaYh+e/sA0KK+adjuadseW9pQ0KK+adjuadsemahg0KK+adjuadsem+jQ0KK+adjuadsOWmgg0KK+adjuadvuWutg0KK+adjuaso+aAoQ0KK+adjuaso+aAoQ0KK+adjuaso+WTsg0KK+adjuaso+mBlA0KK+adjuaso+WEkg0KK+adjuaso+epjg0KK+adjuaso+mcng0KK+adjuazlea8og0KK+adjuayu+WuiQ0KK+adjueOn+eOnw0KK+adjueOpeeRqQ0KK+adjuenieaclA0KK+adjueniee/sA0KK+adjuiKs+Wcuw0KK+adjuiKs+Wptw0KK+adjuiKs+WEgA0KK+adjuiKnee2vg0KK+adjuiKuOW9pQ0KK+adjuiZjuWzsA0KK+adjumHkeazkw0KK+adjumHkemItA0KK+adjumHkeaoug0KK+adjumVt+aWhw0KK+adjumVt+amrg0KK+adjumVt+e0mA0KK+adjumdkuadvg0KK+adjumdkumZvQ0KK+adjumdnumcjw0KK+adjuS/oeaIkA0KK+adjuS/oeadsA0KK+adjuS/oeW+tw0KK+adjuS/oeepjg0KK+adjuS/neiTgQ0KK+adjuS/iuWujw0KK+adjuS/iuWlhw0KK+adjuS/iuaYgA0KK+adjuS/iuW9pQ0KK+adjuS/iuelug0KK+adjuS/iuWEhA0KK+adjuS/iuW+tw0KK+adjuS/iuavhQ0KK+adjuS/iuizog0KK+adjuS/iuizog0KK+adjuS/iuizog0KK+adjuS/iuWLsw0KK+adjuS/iumMoQ0KK+adjuS/nuaFpw0KK+adjuWGoOaciw0KK+adjuWGoOWEgA0KK+adjuWGoOeRqQ0KK+adjuWGoOiHuw0KK+adjuWLh+Wvpw0KK+adjuWNl+WsjA0KK+adjuWTgeaFpw0KK+adjuWlleaemg0KK+adjuWlj+mKsw0KK+adjuWnv+WEgA0KK+adjuWnv+eRqQ0KK+adjuWogeWujw0KK+adjuWogeW+tw0KK+adjuWogemclg0KK+adjuWuo+eRqQ0KK+adjuW7uuawkQ0KK+adjuW7uuWujw0KK+adjuW7uumCpg0KK+adjuW7uuaYjg0KK+adjuW7uuWogQ0KK+adjuW7uuiRpg0KK+adjuW7uuWvrA0KK+adjuW7uuizog0KK+adjuW7uumLkg0KK+adjuW7uuaoug0KK+adjuW7uuiIiA0KK+adjuW7uuemsg0KK+adjuW9peWujw0KK+adjuW9peWunA0KK+adjuW9peWEgA0KK+adjuW9peeRqQ0KK+adjuW9peWEkg0KK+adjuW9pemclg0KK+adjuW+i+eRiw0KK+adjuaAneaAoQ0KK+adjuaAneiQsQ0KK+adjuaAneWEgA0KK+adjuaAneeRqQ0KK+adjuaAneirrQ0KK+adjuaUvw0KK+adjuaUv+W/oA0KK+adjuaUv+WTsg0KK+adjuaUv+mBlA0KK+adjuaUv+i8nQ0KK+adjuaUv+abhA0KK+adjuaUv+m+jQ0KK+adjuaYpeaenQ0KK+adjuaYpeeHlQ0KK+adjuaYree+jg0KK+adjuaYree3rw0KK+adjuaYoOiQsQ0KK+adjuaYseaYpQ0KK+adjuaYseeHkA0KK+adjuafj+adiQ0KK+adjuafj+iTiQ0KK+adjuafj+izog0KK+adjuafj+eSgQ0KK+adjueCs+WdpA0KK+adjuePiuePig0KK+adjueVjOmLkg0KK+adjuebiOebiA0KK+adjuebiOa9lA0KK+adjuebiOepjg0KK+adjuenkeazrw0KK+adjueni+aihQ0KK+adjueni+WEgA0KK+adjueni+m6nw0KK+adjue+jueOiQ0KK+adjue+juiKsw0KK+adjue+juWAqw0KK+adjue+jueRnA0KK+adjue+juWEgA0KK+adjue+jueRqQ0KK+adjue+jumMoQ0KK+adjuiDpOeRpA0KK+adjuiHtOaFpw0KK+adjuiMguWFqA0KK+adjuiLseW/lw0KK+adjuiLseeRng0KK+adjuiLseeRiw0KK+adjuiZueWEgA0KK+adjuiynuWunA0KK+adjuiynuaFpw0KK+adjui/sOeUsw0KK+adjumDgeWBiQ0KK+adjumHjeizog0KK+adjumfs+aFpw0KK+adjuWAqQ0KK+adjuS/rum9ig0KK+adjuWTsuWuiQ0KK+adjuWTsue3rw0KK+adjuWutuWujw0KK+adjuWutuePjQ0KK+adjuWutuiQsQ0KK+adjuWutuixqg0KK+adjuWutuWEgg0KK+adjuWutuiIiA0KK+adjuWuueWptw0KK+adjuW4q+Wqug0KK+adjuaCheWYiQ0KK+adjuaMr+aYjA0KK+adjuaMr+iqoA0KK+adjuaMr+WEgA0KK+adjuaZieixqg0KK+adjuabuOa2tQ0KK+adjuagueWYiQ0KK+adjuahg+ajrg0KK+adjuazsOmclg0KK+adjua1qeW6rQ0KK+adjuePruWmgg0KK+adjuePrueQsw0KK+adjuePruWYiQ0KK+adjuebiuamrg0KK+adjuelluePjQ0KK+adjue0oOaihQ0KK+adjue0lOaFpw0KK+adjuiDvemBoA0KK+adjuiok+WEhA0KK+adjuS5vuaaiQ0KK+adjuWBieWQiQ0KK+adjuWBieaEtw0KK+adjuWBieWYiQ0KK+adjuWBiemhkg0KK+adjuWBpea6kA0KK+adjuWBpemKmA0KK+adjuWci+WFqA0KK+adjuWci+W8tw0KK+adjuWci+iPrw0KK+adjuWci+eRng0KK+adjuWci+amrg0KK+adjuWci+e2rQ0KK+adjuWci+mKgA0KK+adjuWci+iIiA0KK+adjuWfuuW8mA0KK+adjuWfueiPrw0KK+adjuWpieecnw0KK+adjuWpieeRng0KK+adjuW0h+S7gQ0KK+adjuW0h+ixqg0KK+adjuW6t+atow0KK+adjuW9qeeRqQ0KK+adjuWVn+W8mA0KK+adjuWVn+a7hA0KK+adjuaVj+WQiQ0KK+adjuaVj+WYiQ0KK+adjuaVj+m+jQ0KK+adjua4heWQnw0KK+adjua3keWQmw0KK+adjua3keiKrA0KK+adjua3keiyng0KK+adjua3keiMuQ0KK+adjua3keaDoA0KK+adjua3keiPrw0KK+adjua3keiTiQ0KK+adjua3kemdnA0KK+adjua2teWvjA0KK+adjuelpeeRng0KK+adjue0uee2ug0KK+adjue/juavkw0KK+adjumAo+WzsA0KK+adjumbquiQjQ0KK+adjuWCkeWmgg0KK+adjuWHsealqA0KK+adjuWLnembhA0KK+adjuWWrOmMmg0KK+adjuW1kOeQpg0KK+adjuaDoOiKrA0KK+adjuaDoOePoA0KK+adjuaDoOeQsw0KK+adjuaDoOmbrw0KK+adjuaZtOmbrw0KK+adjuaZuuaAoQ0KK+adjuaZuuW8tw0KK+adjuaZuue2rQ0KK+adjuajrg0KK+adjua5mOaoug0KK+adjuealueOsg0KK+adjuWWhOWQjA0KK+adjuiInOiPrw0KK+adjuipoOeniw0KK+adjumAuOaJjQ0KK+adjumAuOe+pA0KK+adjumAsuemjw0KK+adjumahuiPrw0KK+adjumbheeOqw0KK+adjumbheeOsg0KK+adjumbheaihQ0KK+adjumbheWptw0KK+adjumbheaDoA0KK+adjumbheaDoA0KK+adjumbheiQjQ0KK+adjumbhembrw0KK+adjumbheeHlQ0KK+adjumbr+eHlQ0KK+adjuWCs+WQmw0KK+adjuaEj+mbrw0KK+adjuaDsw0KK+adjuaWsOa+pA0KK+adjuavk+ecnw0KK+adjua6kA0KK+adjueRnuaWhw0KK+adjueRnuiyng0KK+adjueRnuiPrw0KK+adjueRnumojw0KK+adjue+qembhA0KK+adjuiBlueQsA0KK+adjuipqeWBiQ0KK+adjuipqealtw0KK+adjumBk+aelw0KK+adjuWYiQ0KK+adjuWYieaelw0KK+adjuWYieWHjA0KK+adjuWYiei7kg0KK+adjuWYieiPrw0KK+adjuWYiemKmA0KK+adjuWYiem0uw0KK+adjuWvp+iKsw0KK+adjuamruiMgg0KK+adjuamrummsw0KK+adjua8ouelug0KK+adjueip+Wptw0KK+adjuemj+iTiQ0KK+adjue2reS7gQ0KK+adjue2reWAqw0KK+adjue2realqA0KK+adjuiCh+asow0KK+adjuiqjOaYjg0KK+adjumKmOWRqA0KK+adjumKmOavkw0KK+adjumztOWuhw0KK+adjum9iuiKsw0KK+adjuW7o+elgQ0KK+adjuW+t+a1tw0KK+adjuaFtuWujw0KK+adjuaFtuiPrw0KK+adjuaFp+iKrA0KK+adjuaFp+e+jg0KK+adjuaFp+ePoA0KK+adjuaFp+WEgA0KK+adjuavheS/oQ0KK+adjueRqea9lA0KK+adjuizoua3pg0KK+adjuWtuOaYjg0KK+adjuaGsuaWjA0KK+adjuabieWmrg0KK+adjuabieeOsg0KK+adjuabieW1kA0KK+adjuabieiPgQ0KK+adjuabieamlQ0KK+adjua+pOiCsg0KK+adjueHleeOsg0KK+adjueSn+mDgQ0KK+adjue/sOmdkg0KK+adjuiIiOiInA0KK+adjuiVmeWmgg0KK+adjuiVmeiKuA0KK+adjuixq+WHoQ0KK+adjumMpuaYhw0KK+adjumMpuiTrg0KK+adjumdnOWunA0KK+adjumdnOaAoQ0KK+adjumdnOaAoQ0KK+adjumdnOe+jg0KK+adjumdnOiTiQ0KK+adjum+jeeUnw0KK+adjum+jem6nw0KK+adjueIteiHow0KK+adjuiBsOWysw0KK+adjui8v+mRqw0KK+adjum0u+W/lw0KK+adjum0u+mBlA0KK+adjuabnOWtmA0KK+adjuisueW4hg0KK+adjumOlOmYoQ0KK+adjummpeWmgg0KK+adjueTiuiLsQ0KK+adjum6l+aenQ0KK+adjum6l+ePoA0KK+adjuWvtueOiQ0KK+adjuiAgOawkQ0KK+adjummqOaAoQ0KK+adjuaHv+Wmgg0KK+adjuasiuWutg0KK+adjuWKrei7jQ0KK+adjuaXu+aYhw0KK+adjuaXu+eRiw0KK+adjuaYtuasow0KK+adjuiLueaFiA0KK+adjua2tOaxnQ0KK+adjuWgqA0KK+adjue1nA0KK+adjueRi+eQqg0KK+adjuetsembsg0KK+adjumIuumbrw0KK+adjumdmuWuuA0KK+adjumOp+S7uw0KK+adjuaBkuWQmw0KK+adnOaWh+WCkQ0KK+adnOawkeWCkQ0KK+adnOWFqOaelw0KK+adnOW/l+izog0KK+adnOS9s+ixqg0KK+adnOWtn+aUvw0KK+adnOWum+irrQ0KK+adnOaJv+mRqw0KK+adnOaYh+e/sA0KK+adnOiKs+aUvw0KK+adnOS/iuavhQ0KK+adnOWogeW7tw0KK+adnOW9pemclg0KK+adnOeCs+m+jQ0KK+adnOe+juaFpw0KK+adnOWutuaYjA0KK+adnOePruipqQ0KK+adnOWpiembrw0KK+adnOa3kemMmg0KK+adnOmZveWckw0KK+adnOWYieeOsg0KK+adnOe2reS/rg0KK+adnOeHleiPrw0KK+adnOiAgOS7gQ0KK+aymeato+aChQ0KK+ayiOWjq+WCkQ0KK+ayiOS7geWCkQ0KK+ayiOaWh+elpQ0KK+ayiOS4lumWlA0KK+ayiOato+W+tw0KK+ayiOeri+S7gQ0KK+ayiOWmguWzsA0KK+ayiOS9kee/sA0KK+ayiOWQm+eSkA0KK+ayiOW/l+W3nQ0KK+ayiOW/l+m+jQ0KK+ayiOaxtuiQjQ0KK+ayiOiCsuaYnw0KK+ayiOS+neepjg0KK+ayiOS9s+aFpw0KK+ayiOS9qembrw0KK+ayiOWdpOaYhw0KK+ayiOWul+aFtg0KK+ayiOWunOiTgQ0KK+ayiOaAoeS8tg0KK+ayiOaYjOaYjg0KK+ayiOaYjuiQsQ0KK+ayiOaso+WtuA0KK+ayiOenieiqvA0KK+ayiOiKuOiQqQ0KK+ayiOS/oeWing0KK+ayiOS/iue/lA0KK+ayiOWGoOWujw0KK+ayiOWnv+aFpw0KK+ayiOW7uuaIkA0KK+ayiOW7uuW+tw0KK+ayiOaBhuWFiQ0KK+ayiOaYreizog0KK+ayiOafj+WvrA0KK+ayiOebiOiPgQ0KK+ayiOe+juWonw0KK+ayiOmDgeW6tw0KK+ayiOWTsuaomQ0KK+ayiOWutuamrg0KK+ayiOaMr+iIiA0KK+ayiOebiuaJvw0KK+ayiOe0lOWmgg0KK+ayiOWci+mKkw0KK+ayiOaZqOmQmA0KK+ayiOa3keiPrw0KK+ayiOaDoOiPgQ0KK+ayiOiIkueQsw0KK+ayiOmbheaDoA0KK+ayiOaaieW6rQ0KK+ayiOeRnuasvQ0KK+ayiOiBluW0kQ0KK+ayiOmBk+irlg0KK+ayiOWYieiVmQ0KK+ayiOe2reavkw0KK+ayiOW+t+WOmg0KK+ayiOWtuOaIkA0KK+ayiOiVmeWQmw0KK+ayiOm0u+a0sg0KK+ayiOWmj+ecnw0KK+ayiOetsembsg0KK+axquWkp+WAqw0KK+axquW3p+eOsg0KK+axqueZvui7kg0KK+axquengOeHlQ0KK+axquWtn+a2tQ0KK+axquaAoeiPrw0KK+axqumdkuiTiQ0KK+axquWGoOWujw0KK+axque+jueOiQ0KK+axquWutueRqQ0KK+axquWVn+aWhw0KK+axqumbheiQjQ0KK+axqumdluWciw0KK+axquaFtuePjQ0KK+axqum6l+Wonw0KK+eLhOWutua6pw0KK+iwt+azk+mBkw0KK+i7iuebiuiPrw0KK+i+m+Wul+a9rQ0KK+i+m+WlleaIkA0KK+i+m+iPgeWopQ0KK+i+m+aXu+S/rg0KK+mCouiDveaWhw0KK+mYruaWh+elpQ0KK+mYruWRguecnw0KK+mYruS/oeaGsg0KK+mYruaYseWujw0KK+mYrumjm+mKmA0KK+mYrua3keiMuQ0KK+mYruaWkOeRnA0KK+mYrumbheWAqw0KK+mYruedv+elpQ0KK+mYrum1rOeiqQ0KK+WNk+Wjq+WLmw0KK+WNk+awuOWggg0KK+WNk+W/l+W/oA0KK+WNk+S9s+aFtg0KK+WNk+Wum+WQmw0KK+WNk+aYjuWEgA0KK+WNk+iKs+Wmgg0KK+WNk+S/iuWujw0KK+WNk+W7uumahg0KK+WNk+iLseWTsg0KK+WNk+WutualoA0KK+WNk+iok+iJrw0KK+WNk+a3keWqmw0KK+WNk+acnemWlA0KK+WNk+eRnuW0hw0KK+WNk+iqjOmahg0KK+WNk+mdnOWmgg0KK+WNk+aBkueUnw0KK+WRqOS4iuasvQ0KK+WRqOWjq+WCkQ0KK+WRqOWkp+mIng0KK+WRqOWtkOaVrA0KK+WRqOS4reiIiA0KK+WRqOW/g+aAoQ0KK+WRqOaWh+aUvw0KK+WRqOaWh+mbhQ0KK+WRqOaciOmcnA0KK+WRqOS4luixkA0KK+WRqOS7o+WwiQ0KK+WRqOW8mOaVjw0KK+WRqOato+Wciw0KK+WRqOawuOmbhA0KK+WRqOeOieiTrg0KK+WRqOeri+WBiQ0KK+WRqOS7suWHsQ0KK+WRqOWQiem+jQ0KK+WRqOW5tOebmw0KK+WRqOiHs+iKrA0KK+WRqOS9keemjg0KK+WRqOS8r+mRqw0KK+WRqOWQm+m0uw0KK+WRqOWtneiKsw0KK+WRqOWuj+eRnA0KK+WRqOW7t+mahg0KK+WRqOW/l+W/oA0KK+WRqOW/l+a4hQ0KK+WRqOW/l+WLsw0KK+WRqOaxtuePig0KK+WRqOengOaZjw0KK+WRqOiCsuS8tg0KK+WRqOiCsua9pA0KK+WRqOS6nuasow0KK+WRqOS9s+aAoQ0KK+WRqOS9s+iTiQ0KK+WRqOS9s+mchw0KK+WRqOS9qeWunA0KK+WRqOS9qeWEgA0KK+WRqOWNlOWIqQ0KK+WRqOWlh+iTiQ0KK+WRqOWtn+iqvA0KK+WRqOWul+W7ug0KK+WRqOWunOiKsw0KK+WRqOWum+iQsQ0KK+WRqOW5uOiTiQ0KK+WRqOaAoeS8tg0KK+WRqOaAoeWQmw0KK+WRqOaAoemCpg0KK+WRqOaAoeWEtw0KK+WRqOaYjuW8mA0KK+WRqOaYjuW+uQ0KK+WRqOaYjui8nQ0KK+WRqOadsA0KK+WRqOaso+iKuA0KK+WRqOaso+eRqQ0KK+WRqOeOn+iQsQ0KK+WRqOiKs+Wmgg0KK+WRqOiKnea2tQ0KK+WRqOmHkeeHlQ0KK+WRqOmdkuiTiQ0KK+WRqOS/oei8nQ0KK+WRqOS/iuWujw0KK+WRqOS/iuixqg0KK+WRqOWGoOS8tg0KK+WRqOWTgeWmjQ0KK+WRqOWogeWRiA0KK+WRqOW7uuWRiA0KK+WRqOW7uumKmA0KK+WRqOW9peWykQ0KK+WRqOaAneW+rg0KK+WRqOaUv+e/sA0KK+WRqOaYn+WQjA0KK+WRqOafj+eUqw0KK+WRqOeOsg0KK+WRqOebiOadiQ0KK+WRqOeni+iQjQ0KK+WRqOe+juaYpQ0KK+WRqOiHtOS4ng0KK+WRqOmDgeaWhw0KK+WRqOmfi+e/sA0KK+WRqOWHjOaCjA0KK+WRqOWon+Wmgg0KK+WRqOWutua1qQ0KK+WRqOWutuaFtg0KK+WRqOWzsOatow0KK+WRqOaMr+WHsQ0KK+WRqOabuOWptw0KK+WRqOazsOWuiQ0KK+WRqOePruWmgg0KK+WRqOelkOaFpw0KK+WRqOiAv+ihjA0KK+WRqOWBieiMuQ0KK+WRqOWci+mdlg0KK+WRqOWpieeQsw0KK+WRqOaVj+mIug0KK+WRqOa3keWonw0KK+WRqOa3keeHlQ0KK+WRqOWHseaFpw0KK+WRqOaDoOiTrg0KK+WRqOaZuuaVjw0KK+WRqOa4neePig0KK+WRqOipoOiokw0KK+WRqOmAuOiYrQ0KK+WRqOmbheWptw0KK+WRqOmbsuajoA0KK+WRqOaVrOaZjw0KK+WRqOalreasvQ0KK+WRqOeFjOiAvw0KK+WRqOeRnualoA0KK+WRqOe+qeWzsA0KK+WRqOiBluaFpw0KK+WRqOijleixkA0KK+WRqOmBk+azkw0KK+WRqOWYieadvg0KK+WRqOWYieaFtg0KK+WRqOa8oua6kA0KK+WRqOemj+mzsw0KK+WRqOe/oOiKrA0KK+WRqOWEhOS/oQ0KK+WRqOaFp+Wnvw0KK+WRqOaoguWkqQ0KK+WRqOizouW+tw0KK+WRqOaGsumCpg0KK+WRqOabieiQjQ0KK+WRqOeHleebiA0KK+WRqOiejemnvw0KK+WRqOmdnOmbrw0KK+WRqOiBsOWuhw0KK+WRqOmOrumCpg0KK+WRqOm6l+eOsg0KK+WRqOiYreiKsw0KK+WRqOaXu+mdnA0KK+WRqOaXhueRnA0KK+WRqOeRiw0KK+WRqOmIuue/lA0KK+Wtn+WkqeelpQ0KK+Wtn+aFtuWuiQ0KK+Wto+iCsua+pA0KK+WumOWkp+W8mA0KK+WumOiCsuiQsQ0KK+WumOiKs+Wmgg0KK+WumOiLkeWCkQ0KK+WumOi+suWTsg0KK+WwmuabuA0KK+WxiOmBk+WJmw0KK+Wys+e2remLjA0KK+aIv+WFhumahg0KK+aWvOWutuePjQ0KK+aYk+i2s+ecnw0KK+aYk+aZuuWBpQ0KK+aYjOWtn+e/sA0KK+adseaFjueQsw0KK+ael+S4gOeFkg0KK+ael+S4iuW/lw0KK+ael+S5heWLuw0KK+ael+S6juatow0KK+ael+S6juWptw0KK+ael+S6juemjg0KK+ael+WNg+Wqmg0KK+ael+WNg+avkw0KK+ael+Wjq+WKmw0KK+ael+Wjq+mDgQ0KK+ael+Wjq+a3tQ0KK+ael+Wjq+WCkQ0KK+ael+Wjq+aPmg0KK+ael+Wjq+i2ig0KK+ael+Wjq+i+sg0KK+ael+Wkp+WFgw0KK+ael+Wkp+elpQ0KK+ael+Wkp+mIng0KK+ael+Wls+a7vw0KK+ael+WtkOeOhA0KK+ael+WtkOWBiQ0KK+ael+WtkOWCkQ0KK+ael+WtkOaDoA0KK+ael+WtkOipoA0KK+ael+WtkOWLpA0KK+ael+WtkOe2ug0KK+ael+WtkOeRhA0KK+ael+Wwj+eQqg0KK+ael+Wxsembsg0KK+ael+aJjeWFgw0KK+ael+S4reW8tw0KK+ael+S5i+iPgQ0KK+ael+S7geW9pQ0KK+ael+S7geWCkQ0KK+ael+S7i+S4gA0KK+ael+WFg+aEtw0KK+ael+WNh+asig0KK+ael+WkqeawkQ0KK+ael+W/g+Wmgg0KK+ael+W/g+W1kA0KK+ael+aWh+S4rQ0KK+ael+aWh+WFqA0KK+ael+aWh+azsw0KK+ael+aWh+enkQ0KK+ael+aWh+Wwhw0KK+ael+aWh+elpQ0KK+ael+aWh+WLnQ0KK+ael+aWh+aWrw0KK+ael+aWh+eQpg0KK+ael+aWh+mbrw0KK+ael+aWh+W+tw0KK+ael+aWh+iBsA0KK+ael+aWh+WqhA0KK+ael+aciOiLsQ0KK+ael+acqOiIiA0KK+ael+S4luW5sw0KK+ael+S4luaYjA0KK+ael+S4luiKsw0KK+ael+S4luWzsA0KK+ael+S4luWBiQ0KK+ael+S4lua3hw0KK+ael+S4lue/lA0KK+ael+S4luWvsA0KK+ael+S4u+aBqQ0KK+ael+S7peaZqA0KK+ael+S7leWBiQ0KK+ael+WKoOWGoA0KK+ael+WPr+mIng0KK+ael+W3qOa3mQ0KK+ael+W3p+aihQ0KK+ael+W5s+iLkQ0KK+ael+W8mOaYhw0KK+ael+W8mOelpQ0KK+ael+ato+S4gA0KK+ael+ato+Wulw0KK+ael+ato+i7jQ0KK+ael+ato+WBiQ0KK+ael+ato+WHsQ0KK+ael+ato+emjw0KK+ael+awkeWfug0KK+ael+awuOaYjA0KK+ael+awuOS/oQ0KK+ael+awuOa4hQ0KK+ael+awuOelpQ0KK+ael+awuOajrg0KK+ael+awuOaFtg0KK+ael+awuOaZnw0KK+ael+eOieWmgg0KK+ael+eOieiKsw0KK+ael+eOieeOsg0KK+ael+eOieePrg0KK+ael+eOieaVjw0KK+ael+eOieWptw0KK+ael+eOieiPgQ0KK+ael+eOiembsg0KK+ael+eOiem+jQ0KK+ael+efs+mahg0KK+ael+eri+S7uw0KK+ael+eri+WAqw0KK+ael+eri+WBiQ0KK+ael+eri+e+pA0KK+ael+eri+mRqw0KK+ael+S7suWogQ0KK+ael+S7sOacmw0KK+ael+WFhuebiA0KK+ael+WQieS8rw0KK+ael+WQjuWUrw0KK+ael+WmguaVjw0KK+ael+Wuh+aYnw0KK+ael+WuiOW+tw0KK+ael+Wuiee3uQ0KK+ael+acieS/ig0KK+ael+eZvuaPmg0KK+ael+iHs+aJvw0KK+ael+ihjOismQ0KK+ael+S9keWuiQ0KK+ael+S9keePig0KK+ael+S9keWEkg0KK+ael+S9kemNvg0KK+ael+S8r+Wysw0KK+ael+S8r+Wzuw0KK+ael+S8r+WLsw0KK+ael+S8tuiyng0KK+ael+WFi+WogQ0KK+ael+WFi+WvsA0KK+ael+WRiOS7uw0KK+ael+WQm+WunA0KK+ael+WQm+eOsg0KK+ael+WQm+eRnA0KK+ael+WQm+e/sA0KK+ael+WQn+Wnvw0KK+ael+Wdh+mDgQ0KK+ael+WmmeWQmw0KK+ael+WmmeWopQ0KK+ael+WmjeWmpA0KK+ael+WtneWFqA0KK+ael+WtneaGsg0KK+ael+Wuj+WdpA0KK+ael+Wuj+S6rg0KK+ael+Wuj+mfiw0KK+ael+Wuj+S5vg0KK+ael+Wuj+mBlA0KK+ael+Wuj+WEkg0KK+ael+Wuj+mMoQ0KK+ael+WykOebig0KK+ael+W7t+WQiQ0KK+ael+W7t+i8nQ0KK+ael+W/l+awkQ0KK+ael+W/l+aIkA0KK+ael+W/l+iJrw0KK+ael+W/l+W/oA0KK+ael+W/l+aYjg0KK+ael+W/l+adsA0KK+ael+W/l+iKrA0KK+ael+W/l+WLhw0KK+ael+W/l+eahw0KK+ael+W/l+WzsA0KK+ael+W/l+WBiQ0KK+ael+W/l+WghQ0KK+ael+W/l+aPmg0KK+ael+W/l+aFjg0KK+ael+W/l+ixqg0KK+ael+W/l+ixqg0KK+ael+W/l+mKmA0KK+ael+W/l+WEkg0KK+ael+W/l+epjg0KK+ael+W/l+isgA0KK+ael+W/l+m+jQ0KK+ael+W/l+m0uw0KK+ael+W/l+m0uw0KK+ael+adjumKmA0KK+ael+adkOS/ig0KK+ael+aym+WQmw0KK+ael+aym+iTgQ0KK+ael+eBvOm+jQ0KK+ael+engOWdqg0KK+ael+engOiKsQ0KK+ael+engOS/kA0KK+ael+engOeOsg0KK+ael+engOe+jg0KK+ael+engOWNvw0KK+ael+engOecnw0KK+ael+engOmbrw0KK+ael+engOmzsw0KK+ael+engOepjg0KK+ael+engOmmqA0KK+ael+iCsuS7lQ0KK+ael+iCsuatow0KK+ael+iCsuawkQ0KK+ael+iCsueUnw0KK+ael+iCsueriw0KK+ael+iCsuWQjQ0KK+ael+iCsuWmgg0KK+ael+iCsuaIkA0KK+ael+iCsuWujw0KK+ael+iCsuaYgA0KK+ael+iCsuePig0KK+ael+iCsumAsg0KK+ael+iCsue+pA0KK+ael+iCsuiQsQ0KK+ael+iCsuiTkw0KK+ael+iCsuaFpw0KK+ael+iCsuizog0KK+ael+iCsumLkg0KK+ael+iCsum6nw0KK+ael+iJr+S/ig0KK+ael+imi+aYjg0KK+ael+iwt+WzsA0KK+ael+iyneePig0KK+ael+mHjOeHlQ0KK+ael+S6q+eHgQ0KK+ael+S+neebiA0KK+ael+S+nea9lA0KK+ael+S+neeShw0KK+ael+S9s+eUnw0KK+ael+S9s+Wujw0KK+ael+S9s+iJrw0KK+ael+S9s+aAoQ0KK+ael+S9s+asow0KK+ael+S9s+S6rQ0KK+ael+S9s+ebiA0KK+ael+S9s+iyng0KK+ael+S9s+mZtQ0KK+ael+S9s+mZvQ0KK+ael+S9s+e2ug0KK+ael+S9s+iTiQ0KK+ael+S9s+WEhA0KK+ael+S9s+aFtg0KK+ael+S9s+aFpw0KK+ael+S9s+aFpw0KK+ael+S9s+a9lA0KK+ael+S9s+eRqQ0KK+ael+S9s+izog0KK+ael+S9s+aoug0KK+ael+S9s+eHlQ0KK+ael+S9s+iHuw0KK+ael+S9s+mdnA0KK+ael+S9s+m0uw0KK+ael+S9s+a9kw0KK+ael+S9qeWQmw0KK+ael+S9qeaAoQ0KK+ael+S9qeiKrA0KK+ael+S9qeiyng0KK+ael+S9qembrw0KK+ael+S9qeiTiQ0KK+ael+S9qeiTiQ0KK+ael+S9qeaFpw0KK+ael+S9qeaoug0KK+ael+S9qemMpg0KK+ael+S9qeeShw0KK+ael+S+kemdkg0KK+ael+WFtuS+rw0KK+ael+WFtumLkg0KK+ael+WNlOadkQ0KK+ael+WSjOengA0KK+ael+WdpOeUnw0KK+ael+WdpOmfiw0KK+ael+WdpOaokQ0KK+ael+WdpOmcgg0KK+ael+Wlh+aooQ0KK+ael+Wtn+S7lQ0KK+ael+Wtn+WQmw0KK+ael+Wtn+S6rQ0KK+ael+Wtn+iQsQ0KK+ael+Wtn+W+tw0KK+ael+Wtn+izog0KK+ael+Wtn+epjg0KK+ael+Wtn+iRsw0KK+ael+Wto+iLlw0KK+ael+Wto+eHgQ0KK+ael+Wul+W7tw0KK+ael+Wul+mghg0KK+ael+Wul+WEhA0KK+ael+Wul+aFtg0KK+ael+Wul+izog0KK+ael+Wul+i8nQ0KK+ael+Wul+a+pA0KK+ael+Wul+isqA0KK+ael+WumOmAuA0KK+ael+WunOWQmw0KK+ael+WunOeOqw0KK+ael+WunOePjQ0KK+ael+WunOiBlg0KK+ael+WunOiTiQ0KK+ael+WunOaFpw0KK+ael+WunOizog0KK+ael+WunOaoug0KK+ael+WunOmMmg0KK+ael+WunOmdnA0KK+ael+WunOiTgQ0KK+ael+WunOWrug0KK+ael+Wum+eRnA0KK+ael+Wum+aoug0KK+ael+WwmuiJrw0KK+ael+Wwmuepjg0KK+ael+WyseiTiQ0KK+ael+WyseiejQ0KK+ael+Wys+WEgA0KK+ael+Wys+W2mQ0KK+ael+W5uOiTiQ0KK+ael+W6mueriw0KK+ael+W+geihmw0KK+ael+W/oOWysw0KK+ael+W/oOaFtg0KK+ael+aAoQ0KK+ael+aAoeaxnQ0KK+ael+aAoeS8tg0KK+ael+aAoeWIqQ0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWdhw0KK+ael+aAoeengA0KK+ael+aAoei+sA0KK+ael+aAoeiKsw0KK+ael+aAoemdkg0KK+ael+aAoeiOiQ0KK+ael+aAoeiPgQ0KK+ael+aAoeiQsQ0KK+ael+aAoeWvrA0KK+ael+aAoeWEkg0KK+ael+aAoeekvQ0KK+ael+aJv+Wysw0KK+ael+aJv+avhQ0KK+ael+aWvOWmrg0KK+ael+aYk+ePig0KK+ael+aYjOW8mA0KK+ael+aYjOizog0KK+ael+aYhueUsA0KK+ael+aYhuaooQ0KK+ael+aYhueFhw0KK+ael+aYjueUnw0KK+ael+aYjuW/lw0KK+ael+aYjuWulw0KK+ael+aYjuadsA0KK+ael+aYjuW9pQ0KK+ael+aYjuiOiQ0KK+ael+aYjualkw0KK+ael+aYjuiqjA0KK+ael+aYjuW+tw0KK+ael+aYjuavhQ0KK+ael+aYjue3rw0KK+ael+aYjui8nQ0KK+ael+aYjuWLsw0KK+ael+aYjueSsA0KK+ael+aYgOm+jQ0KK+ael+aYh+awuA0KK+ael+aYh+m+jQ0KK+ael+adseiMgg0KK+ael+adseavhQ0KK+ael+adsOasow0KK+ael+advuWgrw0KK+ael+aso+eriw0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aUvw0KK+ael+aso+aFiA0KK+ael+aso+WEgA0KK+ael+aso+WEgA0KK+ael+aso+avhQ0KK+ael+aso+iqvA0KK+ael+aso+epjg0KK+ael+aso+m6lw0KK+ael+atpuirug0KK+ael+azk+WQmw0KK+ael+azseengA0KK+ael+eJp+WPsA0KK+ael+eOn+WQmw0KK+ael+eOn+Wmjw0KK+ael+eOq+WQmw0KK+ael+eOq+iTiQ0KK+ael+enieazkw0KK+ael+enieeRqQ0KK+ael+iKs+S4gA0KK+ael+iKs+Wmgg0KK+ael+iKs+Wmgg0KK+ael+iKs+W3ng0KK+ael+iKs+iKsw0KK+ael+iKs+aWsA0KK+ael+iKs+WEgA0KK+ael+iKneWNiQ0KK+ael+iKneWvpw0KK+ael+iKrOiKsw0KK+ael+iKuOaaiQ0KK+ael+iKt+etoA0KK+ael+mHkeS7lQ0KK+ael+mHkeaYjg0KK+ael+mHkeiTrg0KK+ael+mHkem+jQ0KK+ael+mVt+W/lw0KK+ael+mVt+aFtg0KK+ael+mbqOi+sg0KK+ael+mdkuW/lw0KK+ael+mdkuaFpw0KK+ael+mdkumcng0KK+ael+S6ruS7gQ0KK+ael+S/oeWFqA0KK+ael+S/oeS9kQ0KK+ael+S/oeWujw0KK+ael+S/oeW7tw0KK+ael+S/oeW7tg0KK+ael+S/oee+qQ0KK+ael+S/neaIkA0KK+ael+S/iuS7sg0KK+ael+S/iuWuhw0KK+ael+S/iuS9kQ0KK+ael+S/iuS8rw0KK+ael+S/iuWujw0KK+ael+S/iuWujw0KK+ael+S/iuW7tw0KK+ael+S/iueUqw0KK+ael+S/iueUtw0KK+ael+S/iuiogA0KK+ael+S/iuadsA0KK+ael+S/iuWCkQ0KK+ael+S/iumAuA0KK+ael+S/iumBlA0KK+ael+S/iuixqg0KK+ael+S/iumtgQ0KK+ael+S/iuizog0KK+ael+S/ium6nw0KK+ael+S/kOS6rQ0KK+ael+S/nuWing0KK+ael+WGoOWuhw0KK+ael+WGoOWQnw0KK+ael+WGoOWujw0KK+ael+WGoOengA0KK+ael+WGoOeRmw0KK+ael+WGoOWEkg0KK+ael+WLh+aIkA0KK+ael+WNl+Wujw0KK+ael+WTgeWunA0KK+ael+WlleaIkA0KK+ael+WlleS8tg0KK+ael+WlleengA0KK+ael+WlleW1kA0KK+ael+WljuWQmw0KK+ael+Wnv+S8tg0KK+ael+Wnv+WQvg0KK+ael+Wnv+WmmQ0KK+ael+Wnv+Wptw0KK+ael+WogeWQjQ0KK+ael+WogeWIqQ0KK+ael+WogeW7tw0KK+ael+WogeiJrw0KK+ael+Wuo+S7uw0KK+ael+Wuo+mwsg0KK+ael+W7uuS4gA0KK+ael+W7uuS7sg0KK+ael+W7uuWuhw0KK+ael+W7uuaIkA0KK+ael+W7uuWQvg0KK+ael+W7uuWujw0KK+ael+W7uuWujw0KK+ael+W7uuW7tw0KK+ael+W7uuW/lw0KK+ael+W7uueUtw0KK+ael+W7uuiJrw0KK+ael+W7uumCpg0KK+ael+W7uuaYhw0KK+ael+W7uuiPrw0KK+ael+W7uuW9sA0KK+ael+W7uueRqQ0KK+ael+W7uuWLsw0KK+ael+W9peaWhw0KK+ael+W9peWQjQ0KK+ael+W9peS6qA0KK+ael+W9peS8tg0KK+ael+W9peWtnQ0KK+ael+W9peWujw0KK+ael+W9peeUqw0KK+ael+W9peS6qw0KK+ael+W9peWYiQ0KK+ael+W9peiIiA0KK+ael+aAneWQnw0KK+ael+aAneiPrw0KK+ael+aAneimqg0KK+ael+aBhueiqQ0KK+ael+aBque+pA0KK+ael+aUv+S9jQ0KK+ael+aUv+iJrw0KK+ael+aUv+a1qQ0KK+ael+aUv+ijlQ0KK+ael+aUv+WEgA0KK+ael+aUv+e3rw0KK+ael+aUv+mLkg0KK+ael+aUv+e/sA0KK+ael+aYpeW5tA0KK+ael+aYpee+jg0KK+ael+aYreWuhw0KK+ael+aYreW/lw0KK+ael+aYremKmA0KK+ael+aYoOaxnQ0KK+ael+aYn+aZqA0KK+ael+aYseWQmw0KK+ael+aYseWBiQ0KK+ael+afkeadjw0KK+ael+afj+W3ng0KK+ael+afj+S8uA0KK+ael+afj+Wujw0KK+ael+afj+adkQ0KK+ael+afj+Wfjg0KK+ael+afj+amrg0KK+ael+afj+e/sA0KK+ael+aziea0iw0KK+ael+a0qumchA0KK+ael+eCuuaWhw0KK+ael+eCs+eFjA0KK+ael+ePiuWmgg0KK+ael+eOsuiHsw0KK+ael+ePjeWmgg0KK+ael+eah+WIqQ0KK+ael+ebiOaIkA0KK+ael+ebiOWQmw0KK+ael+ebiOW/lw0KK+ael+ebiOiQsQ0KK+ael+eliOWdhw0KK+ael+enkeWujw0KK+ael+eni+iJrw0KK+ael+eni+aDoA0KK+ael+eni+iPig0KK+ael+eni+iTrg0KK+ael+e0gOWFgw0KK+ael+e+juWmgg0KK+ael+e+juS8tg0KK+ael+e+juWQmw0KK+ael+e+juWQnw0KK+ael+e+juengA0KK+ael+e+juaAoQ0KK+ael+e+jueOsg0KK+ael+e+juePoA0KK+ael+e+juaZug0KK+ael+e+juiPrw0KK+ael+e+juaFpw0KK+ael+e+jum9oQ0KK+ael+e+v+Wmjw0KK+ael+iHtOWQmw0KK+ael+iHtOepjg0KK+ael+iMguebmw0KK+ael+iLseeUtw0KK+ael+iLseWCkQ0KK+ael+iLsemKmA0KK+ael+iZueWmgg0KK+ael+iZueWujw0KK+ael+iyng0KK+ael+iynuW7tg0KK+ael+mDgeaWhw0KK+ael+mDgeasow0KK+ael+mDgeiKrA0KK+ael+mDgeaVjw0KK+ael+mDgeajrg0KK+ael+mDgembhA0KK+ael+mDgeiYrQ0KK+ael+mfi+S4ng0KK+ael+mfi+W7tw0KK+ael+mfi+WYiQ0KK+ael+mmmeWQmw0KK+ael+WAjeS8ig0KK+ael+WAqeWmgg0KK+ael+WAqeaFpw0KK+ael+S/ruawkQ0KK+ael+WAq+aXrQ0KK+ael+WOn+WQiA0KK+ael+WTsuawkQ0KK+ael+WTsuS7uw0KK+ael+WTsuWujw0KK+ael+WTsuijlQ0KK+ael+WTsui8nQ0KK+ael+Won+Wmgg0KK+ael+WoieWtnA0KK+ael+WutuW8mA0KK+ael+WutuW8mA0KK+ael+WutueUnw0KK+ael+WutuWmgg0KK+ael+WutuS6qA0KK+ael+WutuWLhw0KK+ael+WutuaDoA0KK+ael+WutuaaiQ0KK+ael+WutuiBlg0KK+ael+Wutuemjg0KK+ael+WutumKmA0KK+ael+WutuaFtg0KK+ael+Wutuizog0KK+ael+WutuiVmQ0KK+ael+WutuaWjA0KK+ael+WuueS7nw0KK+ael+WuueiBlg0KK+ael+WxleiBlg0KK+ael+Wzu+aaiQ0KK+ael+WzsOW5tA0KK+ael+W4q+e+pA0KK+ael+W6reeRiw0KK+ael+aBqeWFiQ0KK+ael+aBqemciA0KK+ael+aMr+a1qQ0KK+ael+aMr+aamA0KK+ael+aMr+a/sQ0KK+ael+aZguaWsA0KK+ael+aZieWFqA0KK+ael+aZieeVvw0KK+ael+aZj+Wmgg0KK+ael+aZj+eomg0KK+ael+abuOW8mA0KK+ael+abuOiBvw0KK+ael+abuOaltw0KK+ael+abuOavhQ0KK+ael+abuOa+pA0KK+ael+ahk+izpg0KK+ael+ahguePoA0KK+ael+agvOWmgw0KK+ael+azsOWuiQ0KK+ael+azsOe2rQ0KK+ael+a1muWCkQ0KK+ael+a1qee+pA0KK+ael+ePruWmgg0KK+ael+ePruiPgQ0KK+ael+ePruWEkg0KK+ael+ebiuW8mA0KK+ael+ebiuWmgg0KK+ael+ebiumBiw0KK+ael+ecn+e2ug0KK+ael+elkOemvg0KK+ael+elkOamhg0KK+ael+elkOeRhA0KK+ael+eqiOaEjw0KK+ael+e0oOWmgg0KK+ael+e0oOiyng0KK+ael+e0oOiPrw0KK+ael+e0lOWmgg0KK+ael+e0lOa5mA0KK+ael+iAmOW+tw0KK+ael+iAv+W8mA0KK+ael+iAv+ecnw0KK+ael+iMtQ0KK+ael+i1t+e/jg0KK+ael+i7kumgoQ0KK+ael+mrmOa6kA0KK+ael+WBieawkQ0KK+ael+WBieW9rA0KK+ael+WBiealqA0KK+ael+WBieW+tw0KK+ael+WBpemdkg0KK+ael+WUr+WHsQ0KK+ael+Wci+asow0KK+ael+Wci+elpQ0KK+ael+Wci+mahg0KK+ael+Wci+WLsw0KK+ael+WfueWgrw0KK+ael+WpieWQmw0KK+ael+WpieWptw0KK+ael+WpieeRnA0KK+ael+W0h+Wuhw0KK+ael+W0h+avhQ0KK+ael+W6t+Wvpw0KK+ael+WVn+S6ug0KK+ael+WVn+iIqg0KK+ael+WVn+ixkA0KK+ael+aVj+ijlQ0KK+ael+aihematA0KK+ael+a4heWQiQ0KK+ael+a4hembsg0KK+ael+a3keWQmw0KK+ael+a3keiKrA0KK+ael+a3keeOsg0KK+ael+a3keiyng0KK+ael+a3keWonw0KK+ael+a3keWopQ0KK+ael+a3keaihQ0KK+ael+a3keWqmw0KK+ael+a3keaDoA0KK+ael+a3keiQjQ0KK+ael+a3keiPrw0KK+ael+a3kembrw0KK+ael+a3keWEgA0KK+ael+a3kemMmg0KK+ael+a2teeRnA0KK+ael+ebm+WCkQ0KK+ael+iOmOaAoQ0KK+ael+iNt+iKsw0KK+ael+mbquiQjQ0KK+ael+WCkeiBlg0KK+ael+WJtQ0KK+ael+WLneWCkQ0KK+ael+WNmumahg0KK+ael+Wptw0KK+ael+WvjOe+jg0KK+ael+aDoOaWhw0KK+ael+aDoOaAoQ0KK+ael+aDoOe+jg0KK+ael+aDoOaVjw0KK+ael+aDoOiQjQ0KK+ael+aDoOmbrw0KK+ael+aDoOeQhw0KK+ael+aVpueFjA0KK+ael+aZr+awkQ0KK+ael+aZr+mbsA0KK+ael+aZuuiDvQ0KK+ael+aZuua4hQ0KK+ael+aZuualrQ0KK+ael+acnw0KK+ael+ajrueUsA0KK+ael+a4r+iytA0KK+ael+a5mOaDoA0KK+ael+a5suiIkg0KK+ael+eQpuWciw0KK+ael+eZu+WxsQ0KK+ael+e0q+iPgQ0KK+ael+iIkuaFpw0KK+ael+iPr+S4gA0KK+ael+imluWwig0KK+ael+ipoOe/lA0KK+ael+i2hQ0KK+ael+mAuOaYgA0KK+ael+mAuOWzsA0KK+ael+mAuOiPgQ0KK+ael+mAuOWEkg0KK+ael+mAsuebig0KK+ael+mInumZtg0KK+ael+mbgeaVjw0KK+ael+mbheWQmw0KK+ael+mbheiKrA0KK+ael+mbheeOsg0KK+ael+mbheWAqw0KK+ael+mbhea3sw0KK+ael+mbheWNmg0KK+ael+mbheaDoA0KK+ael+mbheeQqg0KK+ael+mbheiQjQ0KK+ael+mbheiPrw0KK+ael+mbhembrw0KK+ael+mbheaFpw0KK+ael+mbheaFpw0KK+ael+mbheismQ0KK+ael+mbr+Wuow0KK+ael+mbsuatow0KK+ael+mghuWuiQ0KK+ael+mghuiIiA0KK+ael+WLpOa3mQ0KK+ael+W1qeWxsQ0KK+ael+aEj+WAqw0KK+ael+aEj+mosA0KK+ael+aEm+aDoA0KK+ael+aVrOaWhw0KK+ael+aVrOa3tQ0KK+ael+aVrOe/lA0KK+ael+aWsOWHoQ0KK+ael+aWsOeZvA0KK+ael+aaieeakw0KK+ael+aloOajiw0KK+ael+auv+S4gA0KK+ael+avk+ePig0KK+ael+avk+i2hQ0KK+ael+a6kOaysw0KK+ael+eFp+eUtw0KK+ael+eFnOW6rQ0KK+ael+eFjOi7kg0KK+ael+eFpeasvQ0KK+ael+eRnuaYjg0KK+ael+eRnuWutg0KK+ael+eRnumbqg0KK+ael+eRnuW+tw0KK+ael+eRnuiYrQ0KK+ael+eRnOiOiQ0KK+ael+ebn+WCkQ0KK+ael+eluuWLmw0KK+ael+eomuaPmg0KK+ael+e2k+e2rQ0KK+ael+e+qeWzsA0KK+ael+e+qeWCkQ0KK+ael+e+qeaZug0KK+ael+e+qembhA0KK+ael+e+pOWzsA0KK+ael+e+pOiAgA0KK+ael+iBluaAoQ0KK+ael+iBluaBqQ0KK+ael+iBluWCkQ0KK+ael+iBluaZug0KK+ael+iBlumIng0KK+ael+iBluiAgA0KK+ael+iRpuiQjQ0KK+ael+ijleaYlQ0KK+ael+ijleWghQ0KK+ael+ijleWLnQ0KK+ael+ijleiInA0KK+ael+ipqeWHoQ0KK+ael+ipqeWAqQ0KK+ael+ipqea3tQ0KK+ael+ipqembrw0KK+ael+ipqeiLuQ0KK+ael+mBi+a1qQ0KK+ael+mJieaZug0KK+ael+mbjee/lA0KK+ael+mdluS/rg0KK+ael+mgjOWNmg0KK+ael+m8juakjQ0KK+ael+WYieemvg0KK+ael+WYieS/oQ0KK+ael+WYieePjQ0KK+ael+WYieWBiQ0KK+ael+WYieeQqg0KK+ael+WYiee+pA0KK+ael+WYieaFpw0KK+ael+WYiem0uw0KK+ael+aRkeW9pQ0KK+ael+amruasvQ0KK+ael+a8og0KK+ael+a8ouaWjA0KK+ael+edv+aamA0KK+ael+eip+aDoA0KK+ael+eiqeWEkg0KK+ael+eyvua5mw0KK+ael+e2reePig0KK+ael+e2reiOiQ0KK+ael+e/oOiQjQ0KK+ael+iTk+e+mg0KK+ael+ixquW9pQ0KK+ael+mKmOa0sg0KK+ael+mKmOeFjA0KK+ael+mKmOeGmw0KK+ael+mzs+ePjQ0KK+ael+m9iuiUmg0KK+ael+WEgOiZuQ0KK+ael+WinuWogQ0KK+ael+W7o+e+qQ0KK+ael+W+t+aZiQ0KK+ael+aFtuaYhw0KK+ael+aFtuiTiQ0KK+ael+aFp+WQmw0KK+ael+aFp+aAoQ0KK+ael+aFp+ePig0KK+ael+aFp+e+jg0KK+ael+aFp+ePoA0KK+ael+aFp+a3sw0KK+ael+aFp+iQjQ0KK+ael+aFp+iPrw0KK+ael+aFp+mbrw0KK+ael+aFp+m6lw0KK+ael+aGrOiJrw0KK+ael+a+hOa+pA0KK+ael+eRqeiKsw0KK+ael+eRvuiYrQ0KK+ael+iUmueOsg0KK+ael+ihm+iBlg0KK+ael+izouW+lw0KK+ael+mBqeS5iw0KK+ael+WEkuawkQ0KK+ael+WtuOmahg0KK+ael+aGsuaUvw0KK+ael+aGtua3sw0KK+ael+abieWQmw0KK+ael+abieiKsw0KK+ael+abieeOsg0KK+ael+abieWptw0KK+ael+abieiPrw0KK+ael+abieWYiQ0KK+ael+abieWouA0KK+ael+a+pOe+qQ0KK+ael+eHleaihQ0KK+ael+eSnw0KK+ael+epjg0KK+ael+epjuiOiQ0KK+ael+epjuiBsA0KK+ael+iIiOmHlw0KK+ael+iVmea3hw0KK+ael+ixq+S6rQ0KK+ael+mMpuS8tg0KK+ael+mMpumahg0KK+ael+mMpum0uw0KK+ael+mdnOWQnw0KK+ael+mdnOWunA0KK+ael+mdnOaAoQ0KK+ael+mdnOaAoQ0KK+ael+mdnOiKrA0KK+ael+mdnOmbrw0KK+ael+mdnOWEgA0KK+ael+m+jeeUnw0KK+ael+aHi+W3ng0KK+ael+iBsOS7gQ0KK+ael+ismeWmmQ0KK+ael+mnv+mAuA0KK+ael+m0u+WQmw0KK+ael+m0u+W9rA0KK+ael+m0u+mBlA0KK+ael+m0u+mMoQ0KK+ael+emruW8tw0KK+ael+ixkOiInA0KK+ael+eAm+aWhw0KK+ael+eTiuiKsw0KK+ael+mfu+Wonw0KK+ael+m6l+WQmw0KK+ael+m6l+e+jg0KK+ael+m6l+ePoA0KK+ael+m6l+iPrw0KK+ael+m6l+iTiQ0KK+ael+WvtuengA0KK+ael+e5vOW5sw0KK+ael+iAgOWNlw0KK+ael+iXueaWhw0KK+ael+W3jem+jQ0KK+ael+aHv+WQmw0KK+ael+m6nw0KK+ael+Wkhuizkw0KK+ael+iKiuS6qA0KK+ael+aXu+mAuA0KK+ael+eCheW2lA0KK+ael+WnneWdhw0KK+ael+aYtuWuiQ0KK+ael+ePiOWmpA0KK+ael+WArOS4lg0KK+ael+e0k+eRiw0KK+ael+eQh+mbrw0KK+ael+ajqOS7uw0KK+ael+eQrumWlA0KK+ael+eQrOeRnA0KK+ael+aakOW6rQ0KK+ael+eFkum0uw0KK+ael+eRi+erow0KK+ael+etseeOsg0KK+ael+etseiPgQ0KK+ael+iQqeeHlQ0KK+ael+mIuuW6rQ0KK+ael+mIuuWHsQ0KK+ael+mIuuaFpw0KK+ael+eSh+aAoQ0KK+ael+mcmeecnw0KK+ael+mppw0KK+atpuiJr+aWhw0KK+atpuaVrOWSjA0KK+elgee+qeWciw0KK+iKsee+veiWhw0KK+iKsembheaWkA0KK+WIneiLpeWHoQ0KK+mCteaWh+azsA0KK+mCteW/l+ixkA0KK+mCteWllemIng0KK+mCtemDgeaDoA0KK+mCteWLnea3uw0KK+mCteaEm+eOnw0KK+mCteaHt+W+tw0KK+mCseS4gOecnw0KK+mCseS6juWAqQ0KK+mCseWNg+e2ug0KK+mCseWjq+aBrQ0KK+mCseWkp+WJmw0KK+mCseWtkOalkw0KK+mCseWwj+Wrmg0KK+mCseS7geWCkQ0KK+mCseWkqeWujw0KK+mCseaWh+eOiQ0KK+mCseaWh+afjw0KK+mCseaWh+asvQ0KK+mCseaWh+m0uw0KK+mCseS4luawkQ0KK+mCseS7leWCkQ0KK+mCseW5vOWqmg0KK+mCseato+elpQ0KK+mCseawuOWYiQ0KK+mCseeOieeOsg0KK+mCseeri+Wciw0KK+mCseS7sumfuw0KK+mCseWQjeS7lQ0KK+mCseWuieWPsA0KK+mCseacieirkg0KK+mCseWQm+a4hQ0KK+mCseW/l+WFiQ0KK+mCseW/l+W8tw0KK+mCseW/l+aWjA0KK+mCseengOiLsQ0KK+mCseengOmdnA0KK+mCseiJr+avhQ0KK+mCseS9s+advg0KK+mCseS9s+a9gQ0KK+mCseWtn+aciA0KK+mCseWumumCpg0KK+mCseW7tum9oQ0KK+mCseaAoeWWrA0KK+mCseaAoeemjg0KK+mCseaYjOijlQ0KK+mCseaYjueQqg0KK+mCseaso+aAoQ0KK+mCseazk+W9sA0KK+mCseiKs+WunA0KK+mCsemHkeeUnw0KK+mCseS/oeebig0KK+mCseS/oei8nQ0KK+mCseS/iuaYjA0KK+mCseS/iuaZug0KK+mCseS/iuamrg0KK+mCseS/iumclg0KK+mCseWGoOeRnA0KK+mCseWTgeiPrw0KK+mCseWegueroA0KK+mCseWlleaYjg0KK+mCseWlleedvw0KK+mCseWnv+aDoA0KK+mCseW7uuS4rQ0KK+mCseW7uuiqoA0KK+mCseW7uumLkA0KK+mCseW9peeRmw0KK+mCseaAneWYiQ0KK+mCseaUv+a5pw0KK+mCseaYreasvQ0KK+mCseaYseiHuw0KK+mCseafj+eRnA0KK+mCseafj+mclg0KK+mCseePgOelpQ0KK+mCseebiOajoA0KK+mCsee0gOiPrw0KK+mCsee+juaDoA0KK+mCsee+juaFpw0KK+mCseiHtOepjg0KK+mCsei7jea1qQ0KK+mCsemDgea3kQ0KK+mCsemHjeaGsg0KK+mCseWTsueQsw0KK+mCseWutuizog0KK+mCseaMr+WzsA0KK+mCseahgumItA0KK+mCsea1qeW9sA0KK+mCseePrue2ug0KK+mCsee0lOeRiw0KK+mCseWBieWAqw0KK+mCseWBpembhA0KK+mCseWci+aBrQ0KK+mCseWci+a9lA0KK+mCseWfueeRnA0KK+mCseWpieWshQ0KK+mCseWVn+e/lA0KK+mCseaVj+iVmQ0KK+mCsea4hem+jQ0KK+mCsea3keWonw0KK+mCsea3keeQtA0KK+mCsea3keaFpw0KK+mCsee0uea6og0KK+mCseiOieWptw0KK+mCseWHsQ0KK+mCseWJteWEiQ0KK+mCseWvjOa6kA0KK+mCseaDoOWopQ0KK+mCseaDoOipqQ0KK+mCseaZr+iQjQ0KK+mCseaZuuWCkQ0KK+mCsea5mOmbsg0KK+mCsee1kA0KK+mCseipoOa3sw0KK+mCsemAuOe+pA0KK+mCsembheiKrA0KK+mCsembheiOiQ0KK+mCsembhembrw0KK+mCsembheiMnA0KK+mCseWck+aDoA0KK+mCseaVrOmbrw0KK+mCseavk+eOsg0KK+mCseeFpeaWhw0KK+mCseeRnuaihQ0KK+mCseebn+eQhw0KK+mCseiBluaWhw0KK+mCseiBluaWjA0KK+mCseipqea3tQ0KK+mCseipqeeQgQ0KK+mCsemdlumbrw0KK+mCseWYieWCkQ0KK+mCseWYieaFpw0KK+mCseeip+aWvQ0KK+mCsee2reWpiQ0KK+mCsemftueRqQ0KK+mCseW+t+WHsQ0KK+mCseaFp+Wmgg0KK+mCseaFp+Wptw0KK+mCsee3r+W5sw0KK+mCseabieeOsg0KK+mCseaoueWciw0KK+mCsemdnOWunA0KK+mCsemdnOmbrw0KK+mCsemNvuS7gQ0KK+mCseixkOelpQ0KK+mCseeTiuaDoA0KK+mCseeTiuaFpw0KK+mCsemfu+Wvpw0KK+mCsem6l+iLsQ0KK+mCseWvtuiQsQ0KK+mCsee5vOeRqQ0KK+mCseiYiumdnA0KK+mCsemmqOWEgA0KK+mCsem9oemgpA0KK+mCsemhr+ahkw0KK+mCsemhr+mclg0KK+mCseWntee2vg0KK+mCseeQrOa3kQ0KK+mCseakv+WHsQ0KK+mCseetsembrw0KK+mCsemIuuaWkA0KK+mCseeejQ0KK+mHkeWjq+eCug0KK+mHkeS6rOamrg0KK+mHkeaYjui8nQ0KK+mHkeaUv+irug0KK+mHkeePnueQsw0KK+mHkeWLpA0KK+mHkeejig0KK+S+r+WKm+e2rQ0KK+S+r+aWh+WTsg0KK+S+r+ato+m0uw0KK+S+r+WmguiKrA0KK+S+r+Wuj+aYjA0KK+S+r+engOWmgg0KK+S+r+S9s+WFuA0KK+S+r+WHveengA0KK+S+r+Wys+Wujw0KK+S+r+aYhuWKqQ0KK+S+r+aso+e/sA0KK+S+r+S/oeWuhw0KK+S+r+WSuOS7sA0KK+S+r+W9peS8uA0KK+S+r+afj+mdkg0KK+S+r+iHtOS4rQ0KK+S+r+e0oOmbsg0KK+S+r+a3temKmA0KK+S+r+WNmuWFgw0KK+S+r+aZr+WLmw0KK+S+r+iytOm9oQ0KK+S+r+mbhembrw0KK+S+r+WYieePjQ0KK+S+r+aFtui+sA0KK+S+r+mdnOaxnQ0KK+S+r+m6l+aFpw0KK+S+r+mciOmdkg0KK+S/nuS9s+WHoQ0KK+S/nuaziumclg0KK+S/nuiDveaWuQ0KK+S/numbheWptw0KK+S/nuiKiuiWiA0KK+WnnOWFg+mIng0KK+WnnOWQjuaAoQ0KK+WnnOWuj+amrg0KK+WnnOS9qeS8tg0KK+WnnOaYjuWujw0KK+WnnOiKneaAoQ0KK+WnnOW7uumKmA0KK+WnnOWgiea9gQ0KK+WnnOWHseWCkQ0KK+WnnOaZuumIng0KK+WnnOmbheWptw0KK+WnnOe+qeaEtw0KK+WnnOWinueCqw0KK+WnnOaouemMpg0KK+WnnOemruixqg0KK+WnnOaXu+WnjQ0KK+WnmuWPiOaWhw0KK+WnmuaWuea9lA0KK+Wnmueri+S4iQ0KK+WnmuWFi+mIng0KK+WnmuW/l+aGsg0KK+WnmuS9s+aFpw0KK+WnmuWul+aouA0KK+WnmuaAoeiYrQ0KK+WnmumHkea6kA0KK+WnmuWogeWuhw0KK+WnmuebiOS7uw0KK+Wnmue0oOiYrQ0KK+WnmuWHseaWhw0KK+WnmueQm+WvjA0KK+WnmueRnuizog0KK+WnmuW+t+m6nw0KK+Wnmum6l+S6ug0KK+Wuo+W/l+WHjA0KK+W+i+aMr+aPmg0KK+aWveWkp+e2rQ0KK+aWveaWhw0KK+aWveaWh+ixqg0KK+aWveWPr+mahg0KK+aWveeOieWTgQ0KK+aWveWQjeeOpQ0KK+aWveWuh+mnvw0KK+aWveeZvuaoug0KK+aWveS8r+WunA0KK+aWveWtneW+tw0KK+aWveWuj+a+pA0KK+aWveW/l+ixqg0KK+aWveengOWumw0KK+aWveiCsueRnA0KK+aWveS9s+WQmw0KK+aWveS9qeWQmw0KK+aWveS9qeiPrw0KK+aWveWtn+Wujw0KK+aWveWunOWRiA0KK+aWveWum+ebtA0KK+aWveaAoeWmgg0KK+aWveaAoemItA0KK+aWveaYjuWmjQ0KK+aWveadsOadvg0KK+aWveeOq+WQmw0KK+aWvembqOS9kA0KK+aWveS/iuWQjQ0KK+aWveS/iuizog0KK+aWveWllea2tQ0KK+aWveW7uuWuhw0KK+aWveW9peeUqw0KK+aWveaUv+ixqg0KK+aWveafj+Wmgg0KK+aWveeah+aXrQ0KK+aWvee+jueRmw0KK+aWvemDgeiVmQ0KK+aWveaMr+WdpA0KK+aWvee0oOWNvw0KK+aWveWBpem0uw0KK+aWveaVj+eUtw0KK+aWvea3keaDoA0KK+aWvembquWnvw0KK+aWveWNmuWFgw0KK+aWveWvjOa1qQ0KK+aWveaDoOeQqg0KK+aWveaZuuWLhw0KK+aWveeoi+WHsQ0KK+aWveipoOeEtg0KK+aWvemInuWAqw0KK+aWvembheWonw0KK+aWvembr+eQqg0KK+aWvee+qea7hA0KK+aWveWYieeQqg0KK+aWvea8ouW2uA0KK+aWveiqjOixqg0KK+aWveaFp+WQmw0KK+aWveeRvuWAqw0KK+aWveabiembrw0KK+aWvemdnOaAoQ0KK+aWveeTiuWmgg0KK+aWvemmqOiytA0KK+aWveaXu+WunA0KK+aWveeRi+eRnA0KK+afr+WKm+ixqg0KK+afr+WFg+WHsQ0KK+afr+aWh+elpQ0KK+afr+S4luizog0KK+afr+awuOW/oA0KK+afr+WFqOebig0KK+afr+S8r+W9pQ0KK+afr+Wuj+WogQ0KK+afr+W/l+aYjg0KK+afr+aym+W/lw0KK+afr+iJr+iVmQ0KK+afr+S9s+engA0KK+afr+S9qeWQmw0KK+afr+WdpOaYjg0KK+afr+Wul+S8rw0KK+afr+Wum+WQmw0KK+afr+aAoeeOnw0KK+afr+aYjue/sA0KK+afr+aso+WEgA0KK+afr+mHkeadjw0KK+afr+S/iuWQiQ0KK+afr+S/iumahg0KK+afr+Wuo+Wuhw0KK+afr+W9peaXrQ0KK+afr+aYreeUnw0KK+afr+ebiOWmgg0KK+afr+iZueWmgg0KK+afr+azsOWQjQ0KK+afr+aVj+ebmw0KK+afr+a3keaDoA0KK+afr+mAo+eUsA0KK+afr+WNmuWFgw0KK+afr+WvjOitsA0KK+afr+aDoOiPsQ0KK+afr+aZuuS7gQ0KK+afr+aji+ajow0KK+afr+mWlOaWhw0KK+afr+mbheiPrw0KK+afr+avk+iQjQ0KK+afr+WYieaxtg0KK+afr+eip+aYrQ0KK+afr+mzs+WEgA0KK+afr+aGsuiSvA0KK+afr+mMpueUtw0KK+afr+eTiumOow0KK+afr+aXu+iJrw0KK+afpeaFp+eQsw0KK+afs+WmguW6rQ0KK+afs+S9qeWQmw0KK+afs+W7uuiJrw0KK+afs+iMueiQjQ0KK+afs+aji+WFgw0KK+afs+WYiei7kg0KK+afs+m2tOadvg0KK+auteaYjuWujw0KK+autemAuOi7kg0KK+a0quS4gOS4rQ0KK+a0quWKm+WjuQ0KK+a0quS6jumWlA0KK+a0quWNg+aDoA0KK+a0quWNg+eQpg0KK+a0quWjq+iCsg0KK+a0quWjq+WCkQ0KK+a0quWkp+eCug0KK+a0quWtkOWptw0KK+a0quWwj+aDoA0KK+a0quWFg+aWjA0KK+a0quaWh+aYjg0KK+a0quaWh+WHsQ0KK+a0quaWh+izog0KK+a0quS4luaYhw0KK+a0quS4luWYiQ0KK+a0quWKoOmBlA0KK+a0quato+WFiQ0KK+a0quawuOaYjA0KK+a0queOieiKsw0KK+a0queOieWptw0KK+a0queOieiSqA0KK+a0quS6pua9lA0KK+a0quWFieWEhA0KK+a0quWQjeihoQ0KK+a0quWuieS/kA0KK+a0queZvuizog0KK+a0quS9keaYhw0KK+a0quWQm+elpQ0KK+a0quWuj+aUvw0KK+a0quW/l+eUnw0KK+a0quW/l+aYjg0KK+a0quW/l+mbhA0KK+a0quW/l+mKmA0KK+a0quadkemKmA0KK+a0quengOiKsw0KK+a0quengOeRqQ0KK+a0quiJr+asow0KK+a0quS+neeQqg0KK+a0quS9s+eQsw0KK+a0quS9qeS8tg0KK+a0quWdpOmMoQ0KK+a0quWtn+eRpA0KK+a0quWul+a8og0KK+a0quWunOiJrw0KK+a0quWwmumKmA0KK+a0quW/oOiBlg0KK+a0quaAoeecnw0KK+a0quaYjuWMlg0KK+a0quaYjuWBiQ0KK+a0quaYjum+jQ0KK+a0quaso+aYhw0KK+a0quiKt+a8qg0KK+a0quS/oeWYiQ0KK+a0quS/iumbhA0KK+a0quWuo+eruQ0KK+a0quaAneeQqg0KK+a0quaUv+mciA0KK+a0quafj+Wvpw0KK+a0queni+iPrw0KK+a0que+juiQjQ0KK+a0quiMgumbhA0KK+a0quiLseWCkQ0KK+a0qumDgeW6rQ0KK+a0qumHjeWNvw0KK+a0quWutueQqg0KK+a0quaCheeOsg0KK+a0quaMr+ebig0KK+a0quaMr+mKmA0KK+a0quagueiPrw0KK+a0quePruiKsw0KK+a0quePrue2ug0KK+a0quiAv+aZug0KK+a0quWBieWTsg0KK+a0quWBieWCkQ0KK+a0quWBieirrQ0KK+a0quWBpeWzsA0KK+a0quabvOePig0KK+a0quWci+WTsg0KK+a0quWci+aDnw0KK+a0quWci+e/lA0KK+a0quWci+iAgA0KK+a0quWfueWAqw0KK+a0quWpiee0iw0KK+a0quW0h+aBqQ0KK+a0quW0keWBpQ0KK+a0quW+oeW9lw0KK+a0quWVn+WBiQ0KK+a0quaVj+iKsw0KK+a0quaVj+mbhA0KK+a0qua4heWBpQ0KK+a0qua3keiyng0KK+a0qua3keaDoA0KK+a0qua3kea3qQ0KK+a0que0ueaWhw0KK+a0que/juizkw0KK+a0qumbquiKsw0KK+a0quWLneWHsQ0KK+a0quaDoOaWhw0KK+a0quaDoOajiw0KK+a0quaZtOaZtA0KK+a0quaZuuizog0KK+a0queQpuaDoA0KK+a0quiPgemahg0KK+a0quiPsee0qw0KK+a0qumahuaZug0KK+a0qumbheiLkw0KK+a0qumbhembrw0KK+a0qumghueUtw0KK+a0quaFiOS8tg0KK+a0quaEt+W7tw0KK+a0qualqOmCpg0KK+a0quavk+Wsqg0KK+a0queFjOWHsQ0KK+a0queRnuWggg0KK+a0queRnuiTiQ0KK+a0queRnum0uw0KK+a0quiQrOW+lw0KK+a0quiBluaBqQ0KK+a0quiQsemLkg0KK+a0quijleeEnA0KK+a0quipqembhQ0KK+a0qumdluWHsQ0KK+a0quWYieWcuw0KK+a0quWYieePig0KK+a0quWYieeQsw0KK+a0quWYieiTrg0KK+a0quWYiemnvw0KK+a0quWvpw0KK+a0quamrui8nQ0KK+a0queUhOiLoQ0KK+a0queiqeWBiQ0KK+a0que2ug0KK+a0que2reiJrw0KK+a0que2rea+pA0KK+a0quiCh+W9pQ0KK+a0quiqjOW8tw0KK+a0qumKmOS9kA0KK+a0qumKmOmZvQ0KK+a0qumKmOmNvg0KK+a0qumtgeempw0KK+a0quWvrOazsA0KK+a0quaFtumKmA0KK+a0quaFp+eOsg0KK+a0quaFp+iQjQ0KK+a0queRqeePjQ0KK+a0quWEkuaYjg0KK+a0quabieW1kA0KK+a0quiVmeW/gw0KK+a0qumdnOaAoQ0KK+a0quiBsumKkw0KK+a0quemruWQmw0KK+a0quiXneiPgQ0KK+a0qum6l+Wnvw0KK+a0qum6l+mIng0KK+a0que5vOizog0KK+a0quWEt+mzsw0KK+a0quWKreWFgw0KK+a0quaZouaDhw0KK+a0quaWjOWHsQ0KK+a0quathuaAoQ0KK+a0quetseS9qQ0KK+a0qumIuuaruw0KK+ebuOWtn+ixqg0KK+e0gOS6uueRiw0KK+e0gOaWh+asvQ0KK+e0gOWQieWmgg0KK+e0gOS8r+eSgQ0KK+e0gOW/l+mclg0KK+e0gOS9s+WunA0KK+e0gOWul+mclg0KK+e0gOaAoeWptw0KK+e0gOazk+Wgrw0KK+e0gOmVt+iIiA0KK+e0gOWogee+vQ0KK+e0gOebiOW3ng0KK+e0gOelluixqg0KK+e0gOa3keiKsw0KK+e0gOWNmuaVjw0KK+e0gOaZuuS7gQ0KK+e0gOmInumWjg0KK+e0gOmghuiIiA0KK+e0gOmKmOWdpA0KK+e0gOabieaBqQ0KK+e0gOiYrea9lA0KK+iDoeS4geWFgw0KK+iDoeWwj+iQjQ0KK+iDoeW/g+aFpw0KK+iDoeaWh+eRnA0KK+iDoeS4luiejQ0KK+iDoeato+e/sA0KK+iDoeeOieaFpw0KK+iDoeWQjOS6rg0KK+iDoeaIkOeroA0KK+iDoeW7t+WogQ0KK+iDoeW/l+mKmA0KK+iDoeiCsue2rQ0KK+iDoeS9s+emjg0KK+iDoeWumuWuhw0KK+iDoeaAoeiKsw0KK+iDoeadseaYhw0KK+iDoeiKs+aFiA0KK+iDoemHkeeBnQ0KK+iDoeW4nQ0KK+iDoeeOsuWpiQ0KK+iDoeiLpeeUtw0KK+iDoeS/rueRgA0KK+iDoeWutuamrg0KK+iDoeWxlemKmA0KK+iDoeaMr+S4rQ0KK+iDoeabuOe2vw0KK+iDoee0lOiPgQ0KK+iDoeS5vumLkg0KK+iDoeaOiOa3sw0KK+iDoea3keWQmw0KK+iDoea3kembhQ0KK+iDoeWHseaZug0KK+iDoeWNmuehrw0KK+iDoeaDoOWptw0KK+iDoeaZr+mbrw0KK+iDoeaZuumKmA0KK+iDoeero+ehrw0KK+iDoeiytOaciA0KK+iDoembheWmjQ0KK+iDoembheaZug0KK+iDoemghumahg0KK+iDoeavk+eZvA0KK+iDoeeRnua0mQ0KK+iDoeipqeiPgQ0KK+iDoeWYieecnw0KK+iDoeeip+WqnA0KK+iDoei1q+W7tw0KK+iDoeaFp+Wmgg0KK+iDoeaGsumclg0KK+iDoemdnOiLkQ0KK+iDoeeTiuaWhw0KK+iDoeiAgOS7gQ0KK+iDoeaHv+W/gw0KK+iDoeeFkuePjQ0KK+iMg+S4reWogQ0KK+iMg+aWh+aUvw0KK+iMg+S4lueSiw0KK+iMg+eOieiQsQ0KK+iMg+WQieaFtg0KK+iMg+Wdh+aymw0KK+iMg+eUq+Wulw0KK+iMg+S9s+mbrw0KK+iMg+aYjuS4rQ0KK+iMg+WGoOWBiQ0KK+iMg+WnnOW9peWmgg0KK+iMg+WnnOaFp+aAoQ0KK+iMg+eni+mcng0KK+iMg+mDgeWmgg0KK+iMg+WutuiqoA0KK+iMg+aMr+aWhw0KK+iMg+aMr+m6nw0KK+iMg+iAlemtgQ0KK+iMg+Wci+Wfug0KK+iMg+a3keeOsg0KK+iMg+iOieiLkw0KK+iMg+WNmuW9sA0KK+iMg+aPmuWunA0KK+iMg+aPmumosA0KK+iMg+aZuuasvQ0KK+iMg+mInuWCkQ0KK+iMg+avk+iyng0KK+iMg+eRnuelpQ0KK+iMg+ipqea8qg0KK+iMg+a8ouWQmw0KK+iMg+e2seizog0KK+iMg+aFp+Wmgg0KK+iMg+abieaAoQ0KK+iMg+eAmuaWhw0KK+iMg+iAgOiBsA0KK+iMg+eQh+eShw0KK+iLl+W+jOWCkQ0KK+ioiOerueWuhw0KK+mfi+S6uueRnA0KK+mfi+W/l+m0uw0KK+mfi+ahguS7gQ0KK+WAmeaYuui+sA0KK+WAqueOiem+jQ0KK+WAquW/l+m0uw0KK+WAquWogemBoA0KK+WAquWBieaZug0KK+WAqua3keWptw0KK+WAqueRnuacnw0KK+WAquaFp+ePig0KK+WHjOS4luiKsw0KK+WHjOaYjuW+tw0KK+WHjOmbquaDoA0KK+WHjOaFp+iQjQ0KK+WUkOWNg+aDoA0KK+WUkOaWh+izog0KK+WUkOawuOiIiA0KK+WUkOS9nOixqg0KK+WUkOmCpuazsA0KK+WUkOaYjuW/lw0KK+WUkOaAnee2rQ0KK+WUkOiLseWonA0KK+WUkOePruePig0KK+WUkOWci+W/oA0KK+WUkOa3keiKrA0KK+WUkOacnee3rw0KK+WUkOmbheeHlQ0KK+WUkOe+qeWgrw0KK+WUkOWYiee+mg0KK+WUkOmftumcmQ0KK+WUkOabieW+rg0KK+WUkOitveeOqw0KK+Wkj+ato+mCpg0KK+Wkj+iJr+eOiQ0KK+Wkj+aYpemmmQ0KK+Wkj+a3keiTiQ0KK+Wkj+mBlOWBiQ0KK+Wkj+aFp+m9oQ0KK+Wkj+e/iuWAqw0KK+Wtq+S4iumbrw0KK+Wtq+Wjq+eDmA0KK+Wtq+WFg+S/ig0KK+Wtq+aWueWEgA0KK+Wtq+WPr+eCug0KK+Wtq+awuOS/oQ0KK+Wtq+eri+awkQ0KK+Wtq+WmguW9rA0KK+Wtq+S8r+S4rQ0KK+Wtq+W/l+WLhw0KK+Wtq+iCsuiKnQ0KK+Wtq+WNlOijlQ0KK+Wtq+W/oOWHsQ0KK+Wtq+aYjumnvw0KK+Wtq+mHh+iWhw0KK+Wtq+W7uuW0tA0KK+Wtq+e+juiLsQ0KK+Wtq+mDgeWptw0KK+Wtq+aMr+a2vA0KK+Wtq+ePruiKsw0KK+Wtq+WBieWAqw0KK+Wtq+Wci+abuA0KK+Wtq+W0h+WTsg0KK+Wtq+aDn+atow0KK+Wtq+a3keiKrA0KK+Wtq+WCkQ0KK+Wtq+eQpg0KK+Wtq+mAuOeHlQ0KK+Wtq+WCs+WHsQ0KK+Wtq+a6ouWggg0KK+Wtq+edpuWCkQ0KK+Wtq+mBk+mahg0KK+Wtq+WYieiUrQ0KK+Wtq+e2sQ0KK+Wtq+ixquW/lw0KK+Wtq+mKmOm0uw0KK+Wtq+aFp+a0pQ0KK+Wtq+WtuOWEgA0KK+Wtq+m+jee/lA0KK+Wtq+m6l+Wonw0KK+Wtq+eCmOWunA0KK+Wtq+eRgA0KK+WuruWnjeWnjQ0KK+W4q+WunOmdkg0KK+W+kOS5meWPrw0KK+W+kOWNg+elkA0KK+W+kOWNg+mbhQ0KK+W+kOWjq+WLmw0KK+W+kOWtkOW5sw0KK+W+kOWtkOW8tw0KK+W+kOWwj+iQjQ0KK+W+kOS7geS5vg0KK+W+kOW/g+WunA0KK+W+kOaWh+WQmw0KK+W+kOaWh+ebig0KK+W+kOaciOWopQ0KK+W+kOS4luWfug0KK+W+kOS7leazkw0KK+W+kOW3p+WHjA0KK+W+kOato+aAoQ0KK+W+kOawuOWFiQ0KK+W+kOawuOmztA0KK+W+kOeOieiKrA0KK+W+kOeOieaFiA0KK+W+kOeri+mBlA0KK+W+kOWFieW5sw0KK+W+kOWMoeW5sw0KK+W+kOWmguaYhw0KK+W+kOacieaFtg0KK+W+kOiJvuS8tg0KK+W+kOWFi+mIng0KK+W+kOWuj+Wuhw0KK+W+kOW/l+Wuhw0KK+W+kOW/l+WBiQ0KK+W+kOW/l+ixqg0KK+W+kOadjuWFqA0KK+W+kOengOeOsg0KK+W+kOiCsuaFiA0KK+W+kOS9s+Wmgg0KK+W+kOS9qeWmgg0KK+W+kOS9qemMpg0KK+W+kOWul+a6kA0KK+W+kOW/oOe+qQ0KK+W+kOaYhue+vw0KK+W+kOaYjuiPrw0KK+W+kOaYjum0uw0KK+W+kOadvum0uw0KK+W+kOaso+Wmjw0KK+W+kOefpeacrA0KK+W+kOmHh+iWhw0KK+W+kOS/oeS4rQ0KK+W+kOS/iuWCkQ0KK+W+kOWlleaaiQ0KK+W+kOaAnee2rQ0KK+W+kOafj+mfnA0KK+W+kOe+jueOiQ0KK+W+kOe+juiPrw0KK+W+kOiLpemmqA0KK+W+kOiLseeiqQ0KK+W+kOmDgeaoug0KK+W+kOWutualtw0KK+W+kOaMr+a0sg0KK+W+kOabuOaUvw0KK+W+kOa1muWCkQ0KK+W+kOePruemjg0KK+W+kOWBieWHoQ0KK+W+kOWBieWzuw0KK+W+kOWBiemghg0KK+W+kOWBpemghg0KK+W+kOWci+WAqw0KK+W+kOWci+aZug0KK+W+kOWci+iAgA0KK+W+kOWfuea6tg0KK+W+kOWpieWEgA0KK+W+kOW0keW0mQ0KK+W+kOW+nuiqpQ0KK+W+kOaVj+iKsw0KK+W+kOaVj+iPrw0KK+W+kOaiheWHjA0KK+W+kOa3keWonw0KK+W+kOa3keWsqg0KK+W+kOelpeeEtg0KK+W+kOiOieecnw0KK+W+kOmbqueTig0KK+W+kOWvjOW6tw0KK+W+kOaDoOePjQ0KK+W+kOaOjOeRmw0KK+W+kOacneW6tw0KK+W+kOiIkuS6ng0KK+W+kOipoOWqmw0KK+W+kOmAsuWvtg0KK+W+kOmbheajiw0KK+W+kOmghuWujw0KK+W+kOaEm+Wptw0KK+W+kOavk+iJrw0KK+W+kOeRmumOgg0KK+W+kOeRnuaBrQ0KK+W+kOeRnuiBsA0KK+W+kOeRnOaVjw0KK+W+kOijleW9rA0KK+W+kOizh+iovA0KK+W+kOmdluaDoA0KK+W+kOWYieWujw0KK+W+kOWYieeQsw0KK+W+kOWYiemnkg0KK+W+kOWkoum6nw0KK+W+kOamrui+sA0KK+W+kOeUhOm0uw0KK+W+kOemj+elpQ0KK+W+kOe2reaPmg0KK+W+kOe/oOmBmQ0KK+W+kOmKmOS9mw0KK+W+kOmKmOismQ0KK+W+kOmzs+aGtg0KK+W+kOW+t+izog0KK+W+kOaFp+W/gw0KK+W+kOaFp+Wptw0KK+W+kOavheWujw0KK+W+kOmch+adsQ0KK+W+kOabieetoA0KK+W+kOiIiOa3pg0KK+W+kOmdnOWEgA0KK+W+kOm0u+S7gQ0KK+W+kOi0iueZuw0KK+W+kOm6l+ePjQ0KK+W+kOe5vOaUvw0KK+W+kOaru+iKsw0KK+W+kOa3rw0KK+W+kOiPoeempw0KK+W+kOeRi+iKrA0KK+W+kOetseiKuA0KK+W+kOmIuue2vg0KK+W+kOmRq+ixqg0KK+abuOeZvuW3nQ0KK+ahkeaAoeeniw0KK+aftOWtuOiInA0KK+aut+iKt+iLpQ0KK+aut+e0uemWlA0KK+aut+iCh+mZvQ0KK+a1puabiemzsw0KK+eVmeS5vueEnA0KK+elluabiemzsw0KK+enpuS4gOW5sw0KK+enpuWuieeriw0KK+enpuW7uueRiw0KK+enpuaik+mKmA0KK+enpuiBluWCkQ0KK+enpum6l+mbhQ0KK+e/geS6jueQqg0KK+e/geWjq+i7kg0KK+e/geWtkOWptw0KK+e/geaWh+iMuQ0KK+e/geS7peWTsg0KK+e/geeOieWonw0KK+e/geS7suizog0KK+e/geWuh+mnvw0KK+e/geWuj+mclg0KK+e/geW/l+ixqg0KK+e/geiCsueolA0KK+e/geS9s+mfuw0KK+e/geWul+ijlQ0KK+e/geaYjuWuiQ0KK+e/geael+mLjA0KK+e/geS/oeiHug0KK+e/geafj+iBlg0KK+e/geiLseaWjA0KK+e/geaMr+iKsw0KK+e/geePruaAoQ0KK+e/geWBieWAqw0KK+e/geWBpee3rw0KK+e/geWfuua4hQ0KK+e/geW0h+W6rQ0KK+e/geWVn+S/oQ0KK+e/geaZqOiAgA0KK+e/gea3keiPrw0KK+e/geWjueWnvw0KK+e/gea7i+ePrg0KK+e/gemAuOi7kg0KK+e/gembheaDoA0KK+e/geavk+e/jg0KK+e/geeRnue+mg0KK+e/gee+qeWulw0KK+e/gem8juaYjA0KK+e/geWYiee/jg0KK+e/geWkouWQmw0KK+e/geeip+WjlQ0KK+e/gee2reiJrw0KK+e/gemKmOmBnA0KK+e/geW+t+WNvw0KK+e/geabieiKrA0KK+e/gemdnOeRnA0KK+e/gem6kuaYjA0KK+e/geWEt+WAqQ0KK+e/geeRi+Wonw0KK+e/gemdmuaZjw0KK+iNiuWBieaUvw0KK+iigeWkqeiLsQ0KK+iigeWmguWyoQ0KK+iigeaAoeiMuQ0KK+iigeafj+WBiQ0KK+iigeWBieWAqw0KK+iigeWVn+mRqw0KK+iigembheaDoA0KK+iigeamrueHpg0KK+iigemdnOiPrw0KK+iomOS9s+mbrw0KK+mDneaUv+m0uw0KK+mmrOS4gOaWhw0KK+mmrOS4rempig0KK+mmrOWNoOWzsA0KK+mmrOeOieWonw0KK+mmrOWuieWmrg0KK+mmrOW/l+aYjg0KK+mmrOS9s+S8tg0KK+mmrOWys+Wujw0KK+mmrOWNl+asow0KK+mmrOiLseWCkQ0KK+mmrOePruWptw0KK+mmrOWci+iVvg0KK+mmrOa3keWNvw0KK+mmrOaZuuWQmw0KK+mmrOeFjOWdpA0KK+mmrOWYiemahg0KK+mmrOe3kuW3nQ0KK+mmrOaGtuWptw0KK+mmrOaru+iPgQ0KK+mrmOS4gOmKmA0KK+mrmOWNg+aDoA0KK+mrmOWjq+aYjg0KK+mrmOWtkOa3hw0KK+mrmOWwj+aWhw0KK+mrmOWPi+aFpw0KK+mrmOaWh+W9rA0KK+mrmOS4luaYjA0KK+mrmOS4u+W8tw0KK+mrmOW8mOW3ng0KK+mrmOato+Wciw0KK+mrmOeOieWmgg0KK+mrmOeOiemmqA0KK+mrmOS8iuS/ig0KK+mrmOWQiOWKqQ0KK+mrmOaXreaFtg0KK+mrmOiHs+WvrA0KK+mrmOWuj+mKmA0KK+mrmOW/l+WBiQ0KK+mrmOW/l+mtgQ0KK+mrmOengOmItA0KK+mrmOS6nuiYrQ0KK+mrmOS9qeWQnw0KK+mrmOWmrueRiw0KK+mrmOWul+eFkg0KK+mrmOW5uOeRnA0KK+mrmOaYjg0KK+mrmOaYjueRiw0KK+mrmOaso+a9lA0KK+mrmOmHkeW/lw0KK+mrmOWSuOWvpg0KK+mrmOW9peWLmw0KK+mrmOafj+ixqg0KK+mrmOe+juiKsw0KK+mrmOiLseWHsQ0KK+mrmOmDgeWHsQ0KK+mrmOWzsA0KK+mrmOagqQ0KK+mrmOePrue2ug0KK+mrmOWBieWAqw0KK+mrmOWBpQ0KK+mrmOWci+WTsg0KK+mrmOWci+Wvpw0KK+mrmOWfueecnw0KK+mrmOW9rOWOnw0KK+mrmOWVn+elkA0KK+mrmOaVj+WoiQ0KK+mrmOa3keiKsw0KK+mrmOa3keaDoA0KK+mrmOesmei8lA0KK+mrmOmbquWNvw0KK+mrmOWptw0KK+mrmOaZr+aAoQ0KK+mrmOeQquiIkg0KK+mrmOipoOW9pQ0KK+mrmOmbheiKsw0KK+mrmOmbheiFuQ0KK+mrmOaEj+emjg0KK+mrmOavk+i+sA0KK+mrmOeFp+mWlA0KK+mrmOeRnueRpA0KK+mrmOe+qeW/oA0KK+mrmOipqeWoiQ0KK+mrmOmgjOa4hQ0KK+mrmOWYieiJrw0KK+mrmOWYieW2vA0KK+mrmOW9sOmahg0KK+mrmOedv+iYrQ0KK+mrmOerr+eOqw0KK+mrmOe/oOe/jg0KK+mrmOmKgOeplw0KK+mrmOmKmOWCkQ0KK+mrmOmKmOeQhw0KK+mrmOWEgOmKmA0KK+mrmOaFtuaWjA0KK+mrmOaFp+iQjQ0KK+mrmOaGtuWmgg0KK+mrmOmdnOawkQ0KK+mrmOiWh+iWhw0KK+mrmOitnOWAqw0KK+mrmOm6l+iVmQ0KK+mrmOmhpeWTsg0KK+mrmOaWjOmRqw0KK+mrmOetseaFpw0KK+mrmOiWj+a2tQ0KK+WVhuW8mOaYkw0KK+WVhumzs+iLsQ0KK+Wvh+m6l+mbrw0KK+W0lOS9kee2rQ0KK+W0lOWAqeiLkw0KK+W0lOeQpuawkQ0KK+W4uOaso+eOiQ0KK+W6t+S5g+aciA0KK+W6t+S7leWulw0KK+W6t+Wuh+Wvpw0KK+W6t+aUuOiPrw0KK+W6t+Wtn+aEjw0KK+W6t+mHkemLkg0KK+W6t+e+jueOsg0KK+W6t+WutuW9sA0KK+W6t+W6reeRng0KK+W6t+mFjeWuuQ0KK+W6t+WCkeawkQ0KK+W6t+aZuuaYhw0KK+W6t+eZu+WCkQ0KK+W6t+mbheWptw0KK+W6t+eomuaamA0KK+W6t+WYieiYrQ0KK+W6t+abieiVmQ0KK+W6t+m6l+iyng0KK+W8tQ0KK+W8teS4gOm0uw0KK+W8teS5g+aWhw0KK+W8teS5g+WBiQ0KK+W8teWKm+S7gQ0KK+W8teWKm+Wkqw0KK+W8teWPiOWNgw0KK+W8teWPiOeJmQ0KK+W8teWNg+mHjA0KK+W8teWjq+izog0KK+W8teWtkOaYjA0KK+W8teWwj+iQjQ0KK+W8teS4reiWhw0KK+W8teWwuemmqA0KK+W8teS7geadsA0KK+W8teS7geWCkQ0KK+W8teS7geiBsA0KK+W8teWFgw0KK+W8teWFg+mahg0KK+W8teWFg+m0uw0KK+W8teWPiw0KK+W8teWkqemzsw0KK+W8teWwpOWtkA0KK+W8teW/g+aAoQ0KK+W8teW/g+eRnA0KK+W8teW/g+mmqA0KK+W8teaWh+iCsg0KK+W8teaWh+aYjg0KK+W8teaWh+W9pQ0KK+W8teaWh+eOsg0KK+W8teaWh+i7kg0KK+W8teaWh+asvQ0KK+W8teaWh+mbrw0KK+W8teaWh+amrg0KK+W8teaWh+ixqg0KK+W8teaWh+aotQ0KK+W8teaWh+eIkA0KK+W8teaWh+mosA0KK+W8teaciOWuuQ0KK+W8teS4luS4rQ0KK+W8teS4luWysw0KK+W8teS4luaYjg0KK+W8teS4luiKrA0KK+W8teS4lumbrw0KK+W8teS4luWEkg0KK+W8teS4luWjjg0KK+W8teS7peWFqA0KK+W8teS7leiCsg0KK+W8teS7leaXuw0KK+W8teWKoOaYhw0KK+W8teWPr+asow0KK+W8teWkruaYjA0KK+W8teW3p+eOsg0KK+W8teW5vOeRiw0KK+W8teW8mOazsA0KK+W8teW/heaYjg0KK+W8teato+S9mQ0KK+W8teato+W/oA0KK+W8teato+adsA0KK+W8teato+mahg0KK+W8teato+ihmw0KK+W8teato+eOlw0KK+W8teawuOadkA0KK+W8teawuOaYhg0KK+W8teawuOS/ig0KK+W8teawuOajiw0KK+W8teawuOWLsw0KK+W8teeOhOm0uw0KK+W8teeOieasow0KK+W8teeOieeOsg0KK+W8teeOieeQqg0KK+W8teeOieiTiQ0KK+W8teeOieaXuw0KK+W8teeri+aWhw0KK+W8teeri+asow0KK+W8teeri+mIng0KK+W8teeri+e3rw0KK+W8teS6puWvpw0KK+W8teS7suW5sw0KK+W8teS7sumKkw0KK+W8teWFieS7gQ0KK+W8teWFieWBiQ0KK+W8teWFhuWfnw0KK+W8teWMoeadsA0KK+W8teWQieixkA0KK+W8teWlveemrg0KK+W8teWmgueRqQ0KK+W8teWuh+erow0KK+W8teWuieWmrg0KK+W8teW8j+iJrw0KK+W8teaXreWulw0KK+W8teaxjumojw0KK+W8tee+vea9lA0KK+W8teiHs+edvw0KK+W8teiJvumItA0KK+W8teS9keawkQ0KK+W8teS9kee+pA0KK+W8teS9nOaIkA0KK+W8teS8r+mnvw0KK+W8teWFi+WBiQ0KK+W8teWQm+Wmgg0KK+W8teWQm+eRnA0KK+W8teWQn+aFiA0KK+W8teWmmeaFpw0KK+W8teWui+iQjQ0KK+W8teWuj+aYpQ0KK+W8teWuj+eRng0KK+W8teWuj+mKmA0KK+W8teW4jOiBlg0KK+W8teW/lw0KK+W8teW/l+S7sA0KK+W8teW/l+Wuhw0KK+W8teW/l+iInw0KK+W8teW/l+aYjg0KK+W8teW/l+WBiQ0KK+W8teW/l+WghQ0KK+W8teW/l+elpQ0KK+W8teW/l+eQsw0KK+W8teW/l+a6kA0KK+W8teW/l+mBlA0KK+W8teW/l+ixqg0KK+W8teW/l+ixqg0KK+W8teW/l+ixqg0KK+W8teW/l+mKmA0KK+W8teW/l+m0uw0KK+W8teW/l+eRhA0KK+W8teayheeSvQ0KK+W8teengOeOiQ0KK+W8teengOePjQ0KK+W8teengOeQqg0KK+W8teengOiTiQ0KK+W8teiCsuW5sw0KK+W8teiCsuW0pw0KK+W8teiCsuiPgQ0KK+W8teiCsuaFjg0KK+W8teiCsuiqoA0KK+W8teiCsuW9sA0KK+W8teiCsue2uA0KK+W8teiCsumKkw0KK+W8teiCsueRiw0KK+W8teiJr+a6kA0KK+W8temCkeWmgg0KK+W8teS6numKnA0KK+W8teS9s+aWhw0KK+W8teS9s+mfsw0KK+W8teS9s+aDoA0KK+W8teS9s+mbrw0KK+W8teS9s+iTiQ0KK+W8teS9qeW4hg0KK+W8teS9qeeRmw0KK+W8teWPlOe+jg0KK+W8teWtn+eOiQ0KK+W8teWtn+Wptw0KK+W8teWul+S7gQ0KK+W8teWul+izog0KK+W8teWunOaWsA0KK+W8teWwmumIng0KK+W8teW7tuS7uw0KK+W8teW/teaFiA0KK+W8teaAoeasow0KK+W8teaAoeiOiQ0KK+W8teaAoeaFpw0KK+W8teaYhueFjA0KK+W8teaYjuWIqQ0KK+W8teaYjuelpQ0KK+W8teaYjueFpw0KK+W8teaYjueSiw0KK+W8teaYh+asvQ0KK+W8teael+iKrA0KK+W8teaso+aAoQ0KK+W8teaso+iVmQ0KK+W8teayu+Wciw0KK+W8teenieelug0KK+W8teiKs+iPgQ0KK+W8teiKs+e2vg0KK+W8teiKneWPiw0KK+W8teiKuOaFpw0KK+W8temHkeWxsQ0KK+W8temHkemzsw0KK+W8tembqOetkQ0KK+W8teS/oeeZvA0KK+W8teS/iuWBiQ0KK+W8teS/iuWgrw0KK+W8teS/iuizog0KK+W8teWGoOiPrw0KK+W8teWnv+Wqmg0KK+W8teW7uumCpg0KK+W8teW7uuelpQ0KK+W8teW7uuixqg0KK+W8teW9peiPgQ0KK+W8teaAneWEgA0KK+W8teaBhueRiw0KK+W8teaUv+WCkQ0KK+W8teaYreWFgw0KK+W8teaflOaYjg0KK+W8tea0suacnw0KK+W8teeCuuajnw0KK+W8teeOsuWpiQ0KK+W8teeVjOiBsA0KK+W8teebiOm0uw0KK+W8teeni+Wptw0KK+W8tee0gOWQmw0KK+W8tee+jueOsg0KK+W8tee+jue+mg0KK+W8tee+jumbrw0KK+W8tee+jumcng0KK+W8teiHtOiSqA0KK+W8teiMgumGkg0KK+W8teiLseeQpg0KK+W8temDgeiKrA0KK+W8temDgeWptw0KK+W8temmmeeSvQ0KK+W8teWAlueipw0KK+W8teS/ruixqg0KK+W8teWAq+eRiw0KK+W8teWJm+e2rQ0KK+W8teWOn+isgA0KK+W8teWTsuWBpQ0KK+W8teWTsueRng0KK+W8teWTsuamlQ0KK+W8teWTsue2rQ0KK+W8teWTsumKmA0KK+W8teWon+iPrw0KK+W8teWutuaYjg0KK+W8teWutuaMrw0KK+W8teWutua3pg0KK+W8teWutuajnw0KK+W8teWutuiPsQ0KK+W8teWutua6kA0KK+W8teWutueRnA0KK+W8teWutue+pA0KK+W8teWutuamlQ0KK+W8teWutuamrg0KK+W8teWutueiqQ0KK+W8teWutue2ug0KK+W8teWutuixqg0KK+W8teWutuixqg0KK+W8teWutuixqg0KK+W8teWutui1qw0KK+W8teWutumKmA0KK+W8teWutumKmA0KK+W8teWutua9pA0KK+W8teWutuaHtw0KK+W8teWutueRiw0KK+W8teWuueiPsQ0KK+W8teWuuOWulw0KK+W8teWzu+adsA0KK+W8teWzu+WYiQ0KK+W8teWzu+WatA0KK+W8teWzsOamrg0KK+W8teW6rea6kA0KK+W8teW6reeRiw0KK+W8teaBqeeTig0KK+W8teaMr+a6kA0KK+W8teaMr+mOsA0KK+W8teaZiemAmg0KK+W8teaZieixqg0KK+W8teaZj+iqoA0KK+W8teaZj+m9oQ0KK+W8teabuOiIqg0KK+W8teabuOe2rQ0KK+W8teabuOixqg0KK+W8teabuOmKmA0KK+W8teabuOmmqA0KK+W8teaguea6kA0KK+W8teahguiPrw0KK+W8teahgumzsw0KK+W8teazsOmdkg0KK+W8tea1qeWggg0KK+W8teePruaAoQ0KK+W8teePrueQqg0KK+W8teebiuW3ng0KK+W8teebiuiPrw0KK+W8teebiue2rQ0KK+W8teelkOaFiA0KK+W8teelkOe2rQ0KK+W8teenpuiKuA0KK+W8tee0oOeniw0KK+W8tee0oOiPrw0KK+W8tee0lOebig0KK+W8tee0lOeRiw0KK+W8teiAvw0KK+W8teiAv+e2rQ0KK+W8teiAv+W0mg0KK+W8teiok+e+qQ0KK+W8tei7kuixqg0KK+W8temrmOeRng0KK+W8teWBieWAqw0KK+W8teWBiemIng0KK+W8teWBpeiJrw0KK+W8teWci+W/lw0KK+W8teWci+a1qQ0KK+W8teWci+Wqmw0KK+W8teWci+eSvQ0KK+W8teWgguWHoQ0KK+W8teWpieWQmw0KK+W8teWpieaahA0KK+W8teW0h+WBiQ0KK+W8teW6t+iZlA0KK+W8teaDn+aNtw0KK+W8teWVn+aYjg0KK+W8teaVj+iKnQ0KK+W8teaiheWQmw0KK+W8tea3s+aDoA0KK+W8tea4heaWhw0KK+W8tea4heWHsQ0KK+W8tea3keWQmw0KK+W8tea3keiKsw0KK+W8tea3keiKrA0KK+W8tea3keePjQ0KK+W8tea3keiyng0KK+W8tea3keWonw0KK+W8tea3keiMuQ0KK+W8tea3keWptw0KK+W8tea3keeQpg0KK+W8tea3kembhQ0KK+W8tea3keWruw0KK+W8tea3keisuQ0KK+W8tea3teWvjA0KK+W8tea2tei7kg0KK+W8teebm+e2sQ0KK+W8tee0ueaaiQ0KK+W8teiOieiMuQ0KK+W8temAouaZgg0KK+W8tembqumbsg0KK+W8teWHseWuhw0KK+W8teWHsea3sw0KK+W8teWHseW1kA0KK+W8teWHseeQsw0KK+W8teWHsei2hQ0KK+W8teWHsee2rQ0KK+W8teWLneS7gQ0KK+W8teWLneWCkQ0KK+W8teWLnembhA0KK+W8teWNmuWSjA0KK+W8teWNmuWLmw0KK+W8teWNmumIng0KK+W8teWWuw0KK+W8teWWrOe/lA0KK+W8teWjueiDvQ0KK+W8teWpt+mfuw0KK+W8teWvjOa3sw0KK+W8teWvjOemjg0KK+W8teaDoOWmgg0KK+W8teaDoOePig0KK+W8teaDoOWonw0KK+W8teaDoOWptw0KK+W8teaDoOeQqg0KK+W8teaDoOiPgQ0KK+W8teaDoOmbrw0KK+W8teaDoOiYrQ0KK+W8teaVpue+qQ0KK+W8teaZtOaZtA0KK+W8teaZr+WAqw0KK+W8teaZr+a4vg0KK+W8teaZr+mWjg0KK+W8teaZuuWuiQ0KK+W8teaZuuWJmw0KK+W8teaZuua4hQ0KK+W8teaZuuWCkQ0KK+W8teaZuuW0tA0KK+W8teaZuue/lA0KK+W8teaZuumIng0KK+W8teaZuuixqg0KK+W8teaZuuismQ0KK+W8teacneWHsQ0KK+W8teacnem+jQ0KK+W8teaji+mbrw0KK+W8tea5mOaAoQ0KK+W8teeQquiPrw0KK+W8teeQpue0uQ0KK+W8teeZu+e/lA0KK+W8teeak+W0tA0KK+W8teeoi+mghg0KK+W8tee0q+mItA0KK+W8tee/lOaZug0KK+W8teiIkueQpg0KK+W8teiInOiPrw0KK+W8teiPgeiMuQ0KK+W8teiPr+WAqQ0KK+W8teipoOiMtQ0KK+W8teiovOiNgw0KK+W8teiytOeQsw0KK+W8temAuOWHoQ0KK+W8temAuOe+pA0KK+W8temHj+eEtg0KK+W8temInuWvjA0KK+W8temInuiyvQ0KK+W8temWlOWvjA0KK+W8tembgeWptw0KK+W8tembheWnjQ0KK+W8tembheiKrA0KK+W8tembheeOsg0KK+W8tembheWNvw0KK+W8tembheaVjw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheWptw0KK+W8tembheW1kA0KK+W8tembheaDoA0KK+W8tembheaDoA0KK+W8tembheeQqg0KK+W8tembheeQtA0KK+W8tembheiQjQ0KK+W8tembhembrw0KK+W8tembhembrw0KK+W8tembhemItA0KK+W8tembheeRqQ0KK+W8tembr+iMtQ0KK+W8tembr+WEgA0KK+W8temghuWQiQ0KK+W8temghuemjw0KK+W8teWXo+aWhw0KK+W8teaEj+iqoA0KK+W8teaFiOeBkQ0KK+W8teaEt+aZjw0KK+W8teaWsOWujw0KK+W8teavkw0KK+W8teavk+iKrA0KK+W8teavk+WAqw0KK+W8teavk+a9lA0KK+W8tea6kOmRqw0KK+W8teeRmuePig0KK+W8teeRnuWQmw0KK+W8teeRnuadsA0KK+W8teeRnuiKuA0KK+W8teeRnuWonw0KK+W8teeRnuaZrw0KK+W8teeRnuaoug0KK+W8teeRnuawtg0KK+W8teeRnOWQmw0KK+W8teeRnOWonw0KK+W8teeluuaYhw0KK+W8tee+qeW/oA0KK+W8tee+pOaciw0KK+W8teiBluiOiQ0KK+W8teijleaYjA0KK+W8teijlembrw0KK+W8teipqeaAoQ0KK+W8teipqembrw0KK+W8teizh+aYig0KK+W8temBk+aZug0KK+W8temdluaAoQ0KK+W8tem8jumJiQ0KK+W8teWYieWFgw0KK+W8teWYieatow0KK+W8teWYieWujw0KK+W8teWYieasow0KK+W8teWYieiKrA0KK+W8teWYieeOsg0KK+W8teWYieeOsg0KK+W8teWYieWTsg0KK+W8teWYieaZiQ0KK+W8teWYieecnw0KK+W8teWYieiokw0KK+W8teWYieaDoA0KK+W8teWYiembhA0KK+W8teWYiee2rQ0KK+W8teWYieiBsg0KK+W8teWYieePow0KK+W8teWvp+mmqA0KK+W8teamleWuuQ0KK+W8teamruebiA0KK+W8teamruaGsg0KK+W8teeGkuePig0KK+W8teedv+epjg0KK+W8teeip+Wonw0KK+W8teeiqeWFgw0KK+W8teeiqeahkw0KK+W8teemj+aUvw0KK+W8tee2semCkQ0KK+W8tee2teiKsw0KK+W8tee2reWFqA0KK+W8tee2reePig0KK+W8tee2reWTsg0KK+W8tee2reecnw0KK+W8tee2rea3sw0KK+W8tee2rea9lA0KK+W8tee/oOaWhw0KK+W8tee/oOeQqg0KK+W8teiCh+aokQ0KK+W8teiTk+iQsQ0KK+W8teixquaWhw0KK+W8temKgOiKsw0KK+W8temKmOWulw0KK+W8temKmOWzsA0KK+W8temKmOe/sA0KK+W8temzs+W5sw0KK+W8temzs+WEgA0KK+W8teW7o+a1qQ0KK+W8teW+t+amhg0KK+W8teaFtuaAoQ0KK+W8teaFtuixkA0KK+W8teaFp+aAoQ0KK+W8teaFp+Wonw0KK+W8teaFp+iQjQ0KK+W8teaFp+eutA0KK+W8teeRqeePig0KK+W8teihm+W4hg0KK+W8temBqeaBhg0KK+W8teWtuOWAqw0KK+W8teaGtuWQmw0KK+W8teabieaYgA0KK+W8teabieWptw0KK+W8teabieiPgQ0KK+W8teabiemzsw0KK+W8teeHleWmrg0KK+W8tee/sOaWhw0KK+W8temGkuS4lg0KK+W8temMpuWptw0KK+W8temdnOWmgg0KK+W8temdnOaAoQ0KK+W8temdnOiMuQ0KK+W8tem+jeS7gQ0KK+W8teeSsOS8ig0KK+W8teismemBlA0KK+W8tem0u+Wmgg0KK+W8tem0u+aZug0KK+W8teabnOmKkw0KK+W8teewoeato+WBiQ0KK+W8teewoeaso+iPrw0KK+W8teewoeWYieS6ug0KK+W8teiXjeWwuQ0KK+W8teixkOeSuA0KK+W8teaHt+aBqQ0KK+W8teeTiuS5iw0KK+W8teeTiuaWhw0KK+W8teeTiuaWhw0KK+W8teeTiuaWuQ0KK+W8teeTiuaDoA0KK+W8teiXnemmqA0KK+W8tem6l+WQmw0KK+W8tem6l+a3kQ0KK+W8teWvtuS6kQ0KK+W8teeNu+WjrA0KK+W8tee5veaWhw0KK+W8tee5vOaYjA0KK+W8teiAgOS6kQ0KK+W8teiAgOWFgQ0KK+W8teiAgOatow0KK+W8teiAgOiBsg0KK+W8temHi+aWhw0KK+W8temmqOaWhw0KK+W8temmqOaWhw0KK+W8temosOWFgw0KK+W8teWEt+iWsA0KK+W8teW3jeiAgA0KK+W8teitvemmqA0KK+W8tem2tOiAgA0KK+W8temcveaciA0KK+W8teiKgw0KK+W8teWAmw0KK+W8teiMnOiMuQ0KK+W8teeQh+mWlA0KK+W8teWqnOWqnA0KK+W8teeQrOWunA0KK+W8teeQrOiPgQ0KK+W8teiPgOWAqQ0KK+W8teeFkuWvpw0KK+W8teeRi+iKuA0KK+W8teeRi+WAqw0KK+W8teeRi+Wptw0KK+W8teetseWQmw0KK+W8teetsembrw0KK+W8temEkOaGmw0KK+W8temIuuW9qQ0KK+W8teemleWAqw0KK+W8teeSgeaWhw0KK+W8temQmeWwuQ0KK+W8teaBkuS4rQ0KK+aImuS5heaZug0KK+aVluawuOm+jQ0KK+abueWjq+aVjw0KK+abueaWh+W9pQ0KK+abueS4lua1qQ0KK+abueeri+ihjA0KK+abueiBv+eUtw0KK+abueW/l+W8tw0KK+abueS9s+WuiQ0KK+abueaYjOeUtw0KK+abueaso+iJrw0KK+abueaYpeaWhw0KK+abueWTsuWYiQ0KK+abueWzu+aYjA0KK+abueePruaAoQ0KK+abueWBieiMuQ0KK+abuea3keWqmw0KK+abueWLneixkA0KK+abueaZuuasow0KK+abueeak+mbsg0KK+abuembheaDoA0KK+abueaWsOW9pQ0KK+abueWYieaWhw0KK+abuee2reWAqw0KK+abueavheWLhw0KK+abueeSveepoA0KK+abueiOqOizog0KK+aigeS5g+WBpQ0KK+aigeS7geiPrw0KK+aigeaWh+WuiQ0KK+aigeaWh+izkw0KK+aigeS4luixqg0KK+aigeato+W/oA0KK+aigeeOieeOsg0KK+aigeS7u+S4rQ0KK+aigeaxneiInA0KK+aigeWQm+mcmQ0KK+aigeW/l+W9rA0KK+aigeW/l+mKmA0KK+aigeiCsuiPrw0KK+aigeS9s+mAsg0KK+aigeaAoeiKrA0KK+aigeadseaelw0KK+aigeS/oeWFgw0KK+aigeS/kOeQpg0KK+aigeW9peixqg0KK+aigeeCs+mRhA0KK+aigemDgeiTgQ0KK+aigeWutuaYjg0KK+aigeWutuixqg0KK+aigeWzu+mKmA0KK+aigeaZiemtgQ0KK+aigeePruePrg0KK+aigeenpuWunA0KK+aigeWBpeW/oA0KK+aigeWVn+eOhA0KK+aigea3keWonw0KK+aigeiOieWonw0KK+aigeWLnemKmA0KK+aigeaDoOWptw0KK+aigeaZr+Wgrw0KK+aigeacneWHsQ0KK+aigeiIkuaAoQ0KK+aigemAuOiKrA0KK+aigembheiIkg0KK+aigeaEt+iKuA0KK+aigeeRnui7kg0KK+aigeiBluaYjA0KK+aigeWYieePjQ0KK+aigeeip+aFpw0KK+aigee/oOePig0KK+aigeaFp+iPrw0KK+aigeabiee2rQ0KK+aigemdnOWunA0KK+aigeeTiuS4uQ0KK+aigee5vOS7gQ0KK+aigeaHv+W+tw0KK+aigeeRi+ecnw0KK+aiheWFieWuhw0KK+aihembheWptw0KK+eVouW/l+iPrw0KK+ebm+W/gw0KK+ebm+elpQ0KK+espuiCh+S4rQ0KK+iOq+aYn+Wuhw0KK+iOiuS4gOWHoQ0KK+iOiuS6jueRqQ0KK+iOiuWjq+Wciw0KK+iOiuWtkOWHsQ0KK+iOiuS7geWujw0KK+iOiuW/g+iQjQ0KK+iOiuaWh+aYrQ0KK+iOiuaWh+ixqg0KK+iOiuS4luadsA0KK+iOiuW8mOS7uw0KK+iOiuato+aPmg0KK+iOiuawuOemjw0KK+iOiueOiem6nw0KK+iOiuWmgui7kg0KK+iOiuWFi+WBiQ0KK+iOiuW/l+aYjg0KK+iOiuW/l+amrg0KK+iOiuengOmItA0KK+iOiuiCsuamlQ0KK+iOiuS+neWptw0KK+iOiuS9s+amrg0KK+iOiuS9qembrw0KK+iOiuWdpOWTsg0KK+iOiuWtn+eOsg0KK+iOiuWtn+e0kw0KK+iOiuWul+WLsw0KK+iOiuWumOeShw0KK+iOiuWunOeShw0KK+iOiuW/oOebig0KK+iOiuaAoei7kg0KK+iOiuaYjOabhA0KK+iOiuaYjumBlA0KK+iOiuadseaYjg0KK+iOiuaso+WTsg0KK+iOiueOpeWsmw0KK+iOiumHkemdnA0KK+iOiuS/iuWCkQ0KK+iOiuW7ug0KK+iOiuaUv+aGsg0KK+iOiueni+WtkA0KK+iOiue+jummqA0KK+iOiuiLseeQtA0KK+iOiuWAieadsA0KK+iOiuWutuaYhw0KK+iOiuWutumKmA0KK+iOiuWzu+amlQ0KK+iOiuahk+WYiQ0KK+iOiuePrumItA0KK+iOiue0lOe0lA0KK+iOiuWBieS7gQ0KK+iOiuWci+i+sA0KK+iOiuWfuemRqw0KK+iOiuWVn+aWhw0KK+iOiuaiqOmdkg0KK+iOiua4heWvjA0KK+iOiua3keiKrA0KK+iOiua3keWptw0KK+iOiua3kemWlA0KK+iOiua3keePug0KK+iOiuiOieiOiQ0KK+iOiuWHseiMtQ0KK+iOiuWLneWIqQ0KK+iOiuWNmua4hQ0KK+iOiuWgr+S7uw0KK+iOiuWvjOWCkQ0KK+iOiuW+qeiytA0KK+iOiuaDoOiMuQ0KK+iOiuaDoOiQjQ0KK+iOiuaDoOiTiQ0KK+iOiuaZtOmbsg0KK+iOiuaZr+eQhw0KK+iOiuaZuua2tQ0KK+iOiuaZuumIng0KK+iOiuacnemIng0KK+iOiueZu+eZvA0KK+iOiuWWhOiKsw0KK+iOiuizgOWWrA0KK+iOiumWlOaXrQ0KK+iOiumbheW/gw0KK+iOiumbheeOsg0KK+iOiumbheWptw0KK+iOiumbheaDoA0KK+iOiumbheiQjQ0KK+iOiumbhembsg0KK+iOiumbr+mbrw0KK+iOiuW1qee3rw0KK+iOiueRnuWNlw0KK+iOiuijleaWhw0KK+iOiuWYieeOsg0KK+iOiua8oua4hQ0KK+iOiue2remKmA0KK+iOiumKmOaZrw0KK+iOiuaFp+W/gw0KK+iOiueRqeWnvw0KK+iOiuaoueWujw0KK+iOiuiVmeiQjQ0KK+iOiumMpuW5sw0KK+iOiumdnOaAoQ0KK+iOiua/see2ug0KK+iOiuabnOaXrQ0KK+iOiuifrOWmgw0KK+iOiumOlOeSng0KK+iOiummpee2sQ0KK+iOium6l+i2sw0KK+iOiuaHv+W8tw0KK+iOiuaNg+WoiQ0KK+iOiuaWjOaZug0KK+iOiuetseWptw0KK+ioseS4gOS5iw0KK+ioseS5g+epjQ0KK+ioseWPiOS7gQ0KK+ioseWkp+WuuQ0KK+ioseS7geWFqA0KK+ioseWFg+mKmA0KK+ioseWjrOiAgA0KK+ioseW/g+ebiA0KK+ioseaWh+W/oA0KK+ioseaWh+WOmg0KK+ioseaWh+ahkA0KK+ioseaWh+iPrw0KK+ioseaWh+ixqg0KK+ioseaWh+iXjQ0KK+ioseaXpeaYpQ0KK+ioseS4luawkQ0KK+ioseS4luaYjA0KK+ioseS4luaBrA0KK+ioseS4luizog0KK+ioseWKoOWujw0KK+ioseW5sw0KK+ioseW8mOavhQ0KK+ioseato+W/oA0KK+ioseato+iqvA0KK+ioseawuOaYjg0KK+ioseawuOavhQ0KK+ioseeOieiKsw0KK+ioseeOieWonw0KK+ioseeOieWsiw0KK+ioseeUsg0KK+ioseeri+e+pA0KK+ioseS7suizog0KK+ioseWQjeS4lg0KK+ioseWuh+adsA0KK+ioseaIjuWykQ0KK+ioseaxjuepjg0KK+ioseiHs+WFqA0KK+ioseS9kemKkw0KK+ioseWFi+S7sg0KK+ioseWQm+ixqg0KK+ioseWmjeW4jA0KK+ioseWuj+WBiQ0KK+ioseWuj+W+tw0KK+ioseW/l+WQjA0KK+ioseW/l+Wujw0KK+ioseW/l+W0hw0KK+ioseW/l+mbhA0KK+ioseW/l+e2rQ0KK+ioseW/l+mBoA0KK+ioseW/l+m1rA0KK+ioseaxtuW3ng0KK+ioseengOePig0KK+ioseengOiTiQ0KK+ioseiCsuiPgQ0KK+ioseiCsuiqoA0KK+ioseiJrw0KK+ioseiyneWmgg0KK+ioseS9s+aUvw0KK+ioseS9s+mbrw0KK+ioseS9qeiMuQ0KK+ioseWNk+WhtQ0KK+ioseWtn+e/lA0KK+ioseWul+amrg0KK+ioseW5uOmbrw0KK+ioseaAoeePrg0KK+ioseaJv+iokw0KK+ioseaYjuWCkQ0KK+ioseaYjuW+tw0KK+ioseadvuetiQ0KK+ioseazk+eQrg0KK+ioseiKs+aFiA0KK+ioseiKs+mKmA0KK+ioseiKmeeRsg0KK+iosemHkeeZvA0KK+ioseS/oeamrg0KK+ioseS/iumbhA0KK+ioseWnv+aAoQ0KK+ioseW9peeEtg0KK+ioseaBrOe2vg0KK+ioseaYreWFgw0KK+ioseafj+aoug0KK+ioseePiueRnA0KK+ioseeni+eOsg0KK+iosee+juiKsw0KK+iosee+juiPrw0KK+ioseiHtOe2rQ0KK+ioseiLseWCkQ0KK+iosemDgeaVjw0KK+ioseS/uOaYjA0KK+ioseS/rumKmA0KK+ioseWOn+mKmA0KK+ioseWTsueRng0KK+ioseWTsuW9sA0KK+ioseWTsuixqg0KK+ioseWTsueRiw0KK+ioseWutuWuow0KK+ioseWutuWCkQ0KK+ioseWutuaamA0KK+ioseWutuW9sA0KK+ioseWutuamrg0KK+ioseWutuixqg0KK+ioseWutuixqg0KK+ioseWutuaFtg0KK+ioseWuuOixqg0KK+ioseWzu+WTsg0KK+ioseWzu+eRiw0KK+ioseWzsOmKmA0KK+ioseW6reeRiw0KK+ioseaMr+a5lg0KK+ioseaZguWYiQ0KK+ioseaZieeGkg0KK+ioseabuA0KK+ioseabuOamrg0KK+ioseabuOmKkw0KK+ioseagueWunA0KK+ioseagk+ixqg0KK+iosea1qeeRiw0KK+ioseePruWYiQ0KK+ioseebiui7kg0KK+ioseelkOiQig0KK+iosee0oOiPgQ0KK+iosee0lOeRnA0KK+ioseiAv+ixqg0KK+ioseiyoeW+lw0KK+ioseWBieW/oA0KK+ioseWci+WuiQ0KK+ioseWci+izog0KK+ioseWpieiMuQ0KK+ioseW9qeecnw0KK+ioseWVn+aPmg0KK+ioseaiheiPgQ0KK+iosea3s+eQhw0KK+iosea4healkw0KK+iosea3keiKrA0KK+iosea3keiyng0KK+iosea3keiMuQ0KK+iosea3keaDoA0KK+iosea3keiPrw0KK+iosea3keiTrg0KK+ioseebm+aYjA0KK+ioseiOieiOiQ0KK+ioseWHseaDhw0KK+ioseWHseWYiQ0KK+ioseWLneWLmw0KK+ioseWNmueCug0KK+ioseWNmuajrg0KK+ioseWgoeWmgg0KK+ioseWvjOW/oA0KK+ioseWvjOmbhA0KK+ioseaDoOWmgg0KK+ioseaDoOePjQ0KK+ioseaDoOiMuQ0KK+ioseaDoOeQsw0KK+ioseaDoOmbrw0KK+ioseaDoOeAhQ0KK+ioseaZtOaWkA0KK+ioseaZr+mIng0KK+ioseaZuueOsg0KK+ioseaZuuaDnw0KK+ioseaZuuWHsQ0KK+ioseaZuue/lA0KK+ioseaZuumbhA0KK+ioseaZuuW+tw0KK+ioseacneWvjA0KK+ioseasveixqg0KK+ioseeZu+a3tQ0KK+ioseero+iDvQ0KK+ioseWWhOWHsQ0KK+ioseiIkuiMnA0KK+ioseiPr+WAmg0KK+ioseipoOWLnQ0KK+ioseiytOW9sA0KK+iosemAuOeroA0KK+iosemAsuiIiA0KK+iosemWlOmbhA0KK+iosembheasow0KK+iosembheeOsg0KK+iosembhea3kQ0KK+iosembheWptw0KK+iosembheaDoA0KK+iosembheaDoA0KK+iosembheiQjQ0KK+iosembhembgQ0KK+iosembhembrw0KK+iosembheaFpw0KK+iosembr+eQsw0KK+iosemghua4hQ0KK+ioseaEj+iLuQ0KK+ioseaEt+e/lA0KK+iosealqOelpQ0KK+ioseavk+Wonw0KK+iosea6kOaziQ0KK+ioseeRng0KK+ioseeRnuiKuA0KK+ioseeRnuaBqQ0KK+ioseeRnuWEgA0KK+ioseeRnOiKsw0KK+ioseeon+abvA0KK+ioseiBluadsA0KK+ioseijleWEhA0KK+ioseipqeetoA0KK+iosemItOiLsQ0KK+ioseWYieWFgw0KK+ioseWYieiKsw0KK+ioseWYieWAqQ0KK+ioseWYieePrg0KK+ioseWYieaDoA0KK+ioseWYieepjg0KK+ioseamlQ0KK+ioseamrumahg0KK+ioseeRpOmmqA0KK+ioseeip+ePoA0KK+ioseeiqeS/rg0KK+ioseeulOa2tQ0KK+iosee2reiCsg0KK+iosee2reecnw0KK+iosee/oOerrw0KK+ioseiqmA0KK+iosemKmOS7gQ0KK+iosemKmOWTsg0KK+iosemKmOiyoQ0KK+iosemWo+aWhw0KK+iosemzs+mbhQ0KK+ioseaFtuaWhw0KK+ioseaFp+WQmw0KK+ioseaFp+iyng0KK+ioseaFleiyng0KK+iosemBqealkw0KK+ioseaGtuiKsw0KK+ioseabieiPgQ0KK+ioseeHleiQjQ0KK+iosemMpuaWhw0KK+iosemdnOWunA0KK+iosemdnOmbqg0KK+ioseW2uOS7gQ0KK+iosem0u+aWhw0KK+ioseiWsOaWhw0KK+ioseaHt+aWhw0KK+ioseeTiuaWhw0KK+ioseeTiuaciA0KK+iosematOelug0KK+iosem6l+iPrw0KK+iosee5veWmgg0KK+ioseiAgOaWhw0KK+iosemmqOS7gQ0KK+iosemosOWFgw0KK+iosei6jeitsA0KK+ioseaYtuiPrw0KK+ioseeQh+Wptw0KK+ioseeQrumCpg0KK+ioseWriOeOiQ0KK+ioseetseiQjQ0KK+iosemIuuiMuQ0KK+iosemLkem0uw0KK+ioseaBkumBlA0KK+mAo+S7geiBlg0KK+mAo+S4luWSjA0KK+mAo+S9keS7gQ0KK+mAo+engOS7gQ0KK+mAo+S9qeazoA0KK+mAo+iKuOWHsA0KK+mAo+W7uuaZug0KK+mAo+eni+aXug0KK+mAo+WuueeQqg0KK+mAo+ahguWujw0KK+mAo+WBieWCkQ0KK+mAo+WpieWEgA0KK+mAo+WVn+aZug0KK+mAo+WLneelpQ0KK+mAo+mbheiyng0KK+mAo+WYiee0lA0KK+mAo+aFtuixkA0KK+mAo+mdnOiMuQ0KK+mDreS4gOaoug0KK+mDreS5g+amrg0KK+mDreS6uuixqg0KK+mDreWKm+eRiw0KK+mDreS6juemjg0KK+mDreWjq+iPrw0KK+mDreWjq+mzsw0KK+mDreWtkOeriw0KK+mDreWtkOeGkg0KK+mDreWtkOemlQ0KK+mDreS7geWTsg0KK+mDreWkqeeriw0KK+mDreaWh+WQjA0KK+mDreaWh+W9pQ0KK+mDreaWh+aDoA0KK+mDreaWh+mKkw0KK+mDreawtOWxsQ0KK+mDreS4luiYrQ0KK+mDreWNiembrw0KK+mDreato+Wulw0KK+mDreawuOaYjg0KK+mDreeOieePjQ0KK+mDreeriw0KK+mDreeri+mBlA0KK+mDreS7sua3tQ0KK+mDreWFhumbrw0KK+mDreWkmeWQnw0KK+mDreW5tOecnw0KK+mDreaciemOrg0KK+mDreiHs+WTsg0KK+mDreWQm+aAoQ0KK+mDreWuj+aWhw0KK+mDreWuj+mnvw0KK+mDreW/l+Wujw0KK+mDreW/l+elpQ0KK+mDreadjw0KK+mDreayguadkQ0KK+mDreiCsuWFiA0KK+mDreiCsuaYjA0KK+mDreiCsue2rQ0KK+mDremCpuW9pQ0KK+mDreS9s+asow0KK+mDreS9s+mbrw0KK+mDreS9s+mRqw0KK+mDreS9qeeQpg0KK+mDreWlh+aWhw0KK+mDreWtn+iTiQ0KK+mDreWul+aFtg0KK+mDreWwmuWLsw0KK+mDreW/oOWSjA0KK+mDreaAoeS8tg0KK+mDreaAoeWQmw0KK+mDreaAoeWQmw0KK+mDreaAoeengA0KK+mDreaAoemItA0KK+mDreaJv+WEgA0KK+mDreaYjuWulw0KK+mDreaYjuWzsA0KK+mDreaYjumBkw0KK+mDreaYjueRiw0KK+mDreadvuepjg0KK+mDreatpuWuiQ0KK+mDreeOn+eOnw0KK+mDreeOpeWmpg0KK+mDreiKs+WQmw0KK+mDreiKs+mbrw0KK+mDreiKneedvw0KK+mDremVt+aouQ0KK+mDreS/oeWujw0KK+mDreS/neWQmw0KK+mDreS/iuWujw0KK+mDreS/iueUtw0KK+mDreS/iuS/oQ0KK+mDreS/iuWEhA0KK+mDreS/kOS6qA0KK+mDreWGoOW7tw0KK+mDreWTgeengA0KK+mDreWnv+S8tg0KK+mDreWnv+asow0KK+mDreWogeW/lw0KK+mDreW7uuWujw0KK+mDreW7uuW7tw0KK+mDreW7uuiJrw0KK+mDreW7uua6kA0KK+mDreW9peWQmw0KK+mDreW9peeUqw0KK+mDreaAneWunA0KK+mDreaUv+W/oA0KK+mDreaUv+eSiw0KK+mDreaYreWuiQ0KK+mDreaYremhrw0KK+mDreaYseaXuw0KK+mDreafj+engA0KK+mDreeCs+aIkA0KK+mDreeOsuaFiA0KK+mDreebiOWQmw0KK+mDreecgeiQsQ0KK+mDree+juWQmw0KK+mDree+juWnjQ0KK+mDree+juWWhA0KK+mDree+juiYrQ0KK+mDreiMguiZlA0KK+mDreiynuWtjQ0KK+mDreWAjeWuiQ0KK+mDreWAlumKkw0KK+mDreWHjOW/lw0KK+mDreWTsuaIkA0KK+mDreWTsueRiw0KK+mDreWutuWujw0KK+mDreWutuelpQ0KK+mDreWutuixqg0KK+mDreWutuaFpw0KK+mDreWuuOaYgA0KK+mDreWzsOaYhw0KK+mDreW6reiTiQ0KK+mDreaMr+a8og0KK+mDreaZj+S9kQ0KK+mDreabuOixqg0KK+mDreahgumzsw0KK+mDrea1qeW/lw0KK+mDreebiuWFgw0KK+mDreelluS9kQ0KK+mDree0oOe2vg0KK+mDreiAv+S7uw0KK+mDrei7kg0KK+mDreWci+atow0KK+mDreWpieeOsg0KK+mDreWVn+aykA0KK+mDrea3u+aWsA0KK+mDrea3keiKrw0KK+mDrea3keaVjw0KK+mDrea3keaFpw0KK+mDremAouelpQ0KK+mDreWLnQ0KK+mDreWWrOW5tA0KK+mDreaDoOmdkg0KK+mDreaDoOaXuw0KK+mDreaZuuaYjg0KK+mDreaZuueRiw0KK+mDreeQquWqpw0KK+mDreipoOePrg0KK+mDremAsuaYjA0KK+mDrembheaxnQ0KK+mDrembheWptw0KK+mDrembheiPsQ0KK+mDrembheiWhw0KK+mDreaFiOebiA0KK+mDreeFnOW0hw0KK+mDreeRnuasvQ0KK+mDree+qeajoA0KK+mDreipqeWxjw0KK+mDreWYieWBiQ0KK+mDreWkoueruQ0KK+mDreamruaFtg0KK+mDreeip+Wonw0KK+mDree2uOebig0KK+mDreiCh+W8tw0KK+mDremKmOWCkQ0KK+mDreaFtueUnw0KK+mDreaFp+ePjQ0KK+mDreaFp+iWhA0KK+mDreWEkuismQ0KK+mDreabieWNiQ0KK+mDreabiembrw0KK+mDreeHleeOsg0KK+mDreiVmeiQjQ0KK+mDremMlemclg0KK+mDremdnOe+jg0KK+mDrea/n+e2rQ0KK+mDremnvw0KK+mDreabnOW9sA0KK+mDremOruWFgw0KK+mDreeTiuWqmw0KK+mDrem6l+eniw0KK+mDreeNu+aWhw0KK+mDreiYiuW/sQ0KK+mDremmqOmOgg0KK+mDreexoOaFtg0KK+mDreaXu+eRnA0KK+mDreaZn+Wuhw0KK+mDreaakA0KK+mDremIuuiKsw0KK+mDreaBkuWmmQ0KK+mZs+S4gOaIkA0KK+mZs+S4gOiPrw0KK+mZs+S4gOeRiw0KK+mZs+S5g+mHpw0KK+mZs+S5g+amrg0KK+mZs+S6uueUhA0KK+mZs+WKm+WHoQ0KK+mZs+WPiOaYlQ0KK+mZs+WPiOiBlg0KK+mZs+S4iuWAqw0KK+mZs+WNg+mMpg0KK+mZs+Wjq+WCkQ0KK+mZs+Wkp+WQjA0KK+mZs+WtkOS7gQ0KK+mZs+WtkOW9pQ0KK+mZs+WtkOmIng0KK+mZs+Wwj+iQjQ0KK+mZs+W3seWNhw0KK+mZs+S4remKmA0KK+mZs+S5i+irrQ0KK+mZs+S7geWulw0KK+mZs+S7geWCkQ0KK+mZs+S7iuWHoQ0KK+mZs+WFg+WtnQ0KK+mZs+WFg+mdlg0KK+mZs+WFrg0KK+mZs+WkqeS7gQ0KK+mZs+Wkqeizng0KK+mZs+W/g+aAoQ0KK+mZs+W/g+aAoQ0KK+mZs+W/g+a9lA0KK+mZs+aWh+W3nQ0KK+mZs+aWh+aIkA0KK+mZs+aWh+W/oA0KK+mZs+aWh+S6rg0KK+mZs+aWh+aYrQ0KK+mZs+aWh+mDjg0KK+mZs+aWh+a2kw0KK+mZs+aWh+W9rA0KK+mZs+aWh+eroA0KK+mZs+aWh+asvQ0KK+mZs+aWh+iPrw0KK+mZs+aWh+iTiQ0KK+mZs+aWh+W+tw0KK+mZs+aWh+WtuA0KK+mZs+aWh+m0uw0KK+mZs+aWh+mIug0KK+mZs+aciOWmrg0KK+mZs+awtOaziQ0KK+mZs+S4luWuhw0KK+mZs+S4luWulw0KK+mZs+S4luaYjg0KK+mZs+S4luadsA0KK+mZs+S4luaUvw0KK+mZs+S4luW6rQ0KK+mZs+S4luWBiQ0KK+mZs+S4lueroA0KK+mZs+S4luajuw0KK+mZs+S4luebnw0KK+mZs+S4luixqg0KK+mZs+S4lua+pA0KK+mZs+S4lum0uw0KK+mZs+S4u+asow0KK+mZs+S7pemdnA0KK+mZs+S7leiKsw0KK+mZs+S7lea6kA0KK+mZs+S7leWPoQ0KK+mZs+WKoOaYjg0KK+mZs+WKn+mclg0KK+mZs+WPr+asow0KK+mZs+WPs+awkQ0KK+mZs+WPs+irrQ0KK+mZs+W3qOm2oA0KK+mZs+W3p+ePig0KK+mZs+W3p+aDoA0KK+mZs+W3p+mgpA0KK+mZs+W5vOasow0KK+mZs+W8mOaWhw0KK+mZs+W8mOasow0KK+mZs+W8mOiokw0KK+mZs+W8mOavhQ0KK+mZs+W8mOmOpw0KK+mZs+acreWfuQ0KK+mZs+ato+Wujw0KK+mZs+ato+aYjA0KK+mZs+ato+iKsw0KK+mZs+ato+WzsA0KK+mZs+ato+WCkQ0KK+mZs+ato+mbhA0KK+mZs+ato+ixqg0KK+mZs+ato+iIiA0KK+mZs+awkQ0KK+mZs+awuA0KK+mZs+awuOWulw0KK+mZs+awuOaYjA0KK+mZs+awuOmdkg0KK+mZs+awuOWHjA0KK+mZs+awuOW6tw0KK+mZs+awuOWvjA0KK+mZs+awuOiqjA0KK+mZs+awuOephg0KK+mZs+awuOePqQ0KK+mZs+eOieaWhw0KK+mZs+eOieWlhw0KK+mZs+eOieiKsw0KK+mZs+eOieiKrA0KK+mZs+eOieePig0KK+mZs+eOieePjQ0KK+mZs+eOieWonw0KK+mZs+eOieePoA0KK+mZs+eOieaihQ0KK+mZs+eOieeQsw0KK+mZs+eOieiPgQ0KK+mZs+eOiembsg0KK+mZs+eOieWsjA0KK+mZs+eOieeSmA0KK+mZs+eOiemmqA0KK+mZs+eUn+advg0KK+mZs+efs+iCsg0KK+mZs+eri+WHoQ0KK+mZs+eri+iogA0KK+mZs+eri+asow0KK+mZs+eri+WAqw0KK+mZs+eri+WBiQ0KK+mZs+eri+e/jg0KK+mZs+eri+e2rQ0KK+mZs+eri+e/sA0KK+mZs+S6puWHoQ0KK+mZs+S8iuWAqw0KK+mZs+S7suW/lw0KK+mZs+S7suizog0KK+mZs+WFieeUqw0KK+mZs+WFieiPrw0KK+mZs+WFhuWllQ0KK+mZs+WQieWIqQ0KK+mZs+WQkeamrg0KK+mZs+WcqOaYjg0KK+mZs+WmguiKrA0KK+mZs+WmguiYiw0KK+mZs+Wuh+adsA0KK+mZs+Wuh+i2hQ0KK+mZs+WuieS9kQ0KK+mZs+WuieaouA0KK+mZs+aXrA0KK+mZs+acieW/lw0KK+mZs+axn+eriw0KK+mZs+eZvuWCkQ0KK+mZs+e+veePig0KK+mZs+iHs+WHsQ0KK+mZs+S6qOaIkA0KK+mZs+S9keS7uw0KK+mZs+S9keW6rQ0KK+mZs+S8uOeUsA0KK+mZs+S8r+adsA0KK+mZs+S8r+iSvA0KK+mZs+WFi+Wuhw0KK+mZs+WFi+mKmA0KK+mZs+WQm+Wmgw0KK+mZs+WQm+iIqg0KK+mZs+WQm+amrg0KK+mZs+WQm+WEkg0KK+mZs+Wdh+eiqQ0KK+mZs+WmmealqA0KK+mZs+WmjeS8tg0KK+mZs+WmjeengA0KK+mZs+WmpOiVmQ0KK+mZs+WtnemKkw0KK+mZs+Wuj+S7gQ0KK+mZs+Wuj+WuiQ0KK+mZs+Wuj+aYjA0KK+mZs+Wuj+azog0KK+mZs+Wuj+e+jg0KK+mZs+Wuj+W9rA0KK+mZs+Wuj+mahg0KK+mZs+Wuj+mBlA0KK+mZs+Wuj+mKmA0KK+mZs+Wuj+izog0KK+mZs+Wuj+eFkg0KK+mZs+W7t+S/ig0KK+mZs+W/l+WxsQ0KK+mZs+W/l+W5sw0KK+mZs+W/l+S7sg0KK+mZs+W/l+WuiQ0KK+mZs+W/l+Wujw0KK+mZs+W/l+aymw0KK+mZs+W/l+Wysw0KK+mZs+W/l+aAoQ0KK+mZs+W/l+aYjg0KK+mZs+W/l+aYhw0KK+mZs+W/l+asow0KK+mZs+W/l+W9pQ0KK+mZs+W/l+a1qQ0KK+mZs+W/l+WBiQ0KK+mZs+W/l+W8tw0KK+mZs+W/l+elpQ0KK+mZs+W/l+e/lA0KK+mZs+W/l+mbhA0KK+mZs+W/l+a6kA0KK+mZs+W/l+mBlA0KK+mZs+W/l+amrg0KK+mZs+W/l+e2rQ0KK+mZs+W/l+ixqg0KK+mZs+W/l+ixqg0KK+mZs+W/l+ixqg0KK+mZs+W/l+mBoA0KK+mZs+W/l+mKmA0KK+mZs+W/l+WvrA0KK+mZs+W/l+epjg0KK+mZs+W/l+m0uw0KK+mZs+W/l+aWjA0KK+mZs+aUuOWptw0KK+mZs+adkem+jQ0KK+mZs+aym+WQnw0KK+mZs+axtua0pQ0KK+mZs+eUuA0KK+mZs+engOWQmw0KK+mZs+engOiKnQ0KK+mZs+engOeOsg0KK+mZs+engOWonw0KK+mZs+engOaVjw0KK+mZs+engOaDoA0KK+mZs+engOmbhQ0KK+mZs+engOmItA0KK+mZs+engOaFpw0KK+mZs+engOiYrQ0KK+mZs+iCsuatow0KK+mZs+iCsuS9kA0KK+mZs+iCsuWlhw0KK+mZs+iCsueroA0KK+mZs+iCsuW7iQ0KK+mZs+iCsuipqQ0KK+mZs+iCsueRqQ0KK+mZs+iCsuaWjA0KK+mZs+iJr+aUvw0KK+mZs+imi+eniw0KK+mZs+i+sOaPmg0KK+mZs+mFieiMuQ0KK+mZs+S6numItA0KK+mZs+S+nei+sA0KK+mZs+S+nee/lA0KK+mZs+S9sw0KK+mZs+S9s+axnQ0KK+mZs+S9s+S8tg0KK+mZs+S9s+WQnw0KK+mZs+S9s+Wujw0KK+mZs+S9s+Wmrg0KK+mZs+S9s+eOpQ0KK+mZs+S9s+ebiA0KK+mZs+S9s+ecnw0KK+mZs+S9s+aDoA0KK+mZs+S9s+eQqg0KK+mZs+S9s+eQpg0KK+mZs+S9s+mbrw0KK+mZs+S9s+e+pA0KK+mZs+S9s+mzsw0KK+mZs+S9s+aFpw0KK+mZs+S9s+eSmA0KK+mZs+S9s+mnvw0KK+mZs+S9s+aAnA0KK+mZs+S+g+Wptw0KK+mZs+S9qeWQmw0KK+mZs+S9qeWQmw0KK+mZs+S9qeS9qQ0KK+mZs+S9qeiKuA0KK+mZs+S9qeecnw0KK+mZs+S9qeeQsw0KK+mZs+S9qeeRnA0KK+mZs+S9qeeRqQ0KK+mZs+S+keWopQ0KK+mZs+WFtumIng0KK+mZs+WNlOaYjA0KK+mZs+WSjOaIkA0KK+mZs+WdpOS9kA0KK+mZs+WdpOWCkQ0KK+mZs+WdpOmNvg0KK+mZs+WnlOaJvw0KK+mZs+Wtn+S8tg0KK+mZs+Wtn+iJrw0KK+mZs+Wtn+WogQ0KK+mZs+Wtn+WBiQ0KK+mZs+Wtn+eQqg0KK+mZs+Wtn+mItA0KK+mZs+Wtn+i8nQ0KK+mZs+Wto+S9kQ0KK+mZs+Wul+S7gQ0KK+mZs+Wul+W/lw0KK+mZs+Wul+ebiA0KK+mZs+Wul+mbhA0KK+mZs+Wul+aXlw0KK+mZs+Wul+e3rw0KK+mZs+Wul+m+jQ0KK+mZs+WumuiHsw0KK+mZs+WunOW5sw0KK+mZs+WunOWQmw0KK+mZs+WunOengA0KK+mZs+WunOWnvw0KK+mZs+WunOWfuQ0KK+mZs+WunOe+pA0KK+mZs+WunOeSiw0KK+mZs+WunOaXuw0KK+mZs+Wum+WnjQ0KK+mZs+WwmuaWhw0KK+mZs+WwmueRnA0KK+mZs+WxheS7gQ0KK+mZs+Wys+WQmw0KK+mZs+W5uOi2sw0KK+mZs+W5uOa7vw0KK+mZs+W7tumBkw0KK+mZs+W/oOiJrw0KK+mZs+W/oOe+qQ0KK+mZs+aAoQ0KK+mZs+aAoeaWhw0KK+mZs+aAoeWNiQ0KK+mZs+aAoeWGsA0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWmgg0KK+mZs+aAoeWuiQ0KK+mZs+aAoeeruQ0KK+mZs+aAoeS8tg0KK+mZs+aAoeS8tg0KK+mZs+aAoeS8tg0KK+mZs+aAoeWIqQ0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeWQmw0KK+mZs+aAoeW7tw0KK+mZs+aAoeengA0KK+mZs+aAoeaYjA0KK+mZs+aAoeiKsw0KK+mZs+aAoeePig0KK+mZs+aAoemmmQ0KK+mZs+aAoeecnw0KK+mZs+aAoeWptw0KK+mZs+aAoeWptw0KK+mZs+aAoeeQtA0KK+mZs+aAoeiPgQ0KK+mZs+aAoembrw0KK+mZs+aAoeiqoA0KK+mZs+aAoeeiqQ0KK+mZs+aAoeiTiQ0KK+mZs+aAoea9lA0KK+mZs+aAoeWEkg0KK+mZs+aAoeepjg0KK+mZs+aAoemdnA0KK+mZs+aAoemdnA0KK+mZs+aAoeiYiw0KK+mZs+aAoeiTgQ0KK+mZs+aAoeWPoQ0KK+mZs+aLm+iqoA0KK+mZs+aYk+adkQ0KK+mZs+aYjOaWhw0KK+mZs+aYjOa4rw0KK+mZs+aYhuadsA0KK+mZs+aYguS9kQ0KK+mZs+aYjuatow0KK+mZs+aYjuS8uA0KK+mZs+aYjuWujw0KK+mZs+aYjuadkA0KK+mZs+aYjuaYjA0KK+mZs+aYjuaUvw0KK+mZs+aYjuePoA0KK+mZs+aYjuiOiQ0KK+mZs+aYjuWptw0KK+mZs+aYjualtw0KK+mZs+aYjuijlQ0KK+mZs+aYjuW+tw0KK+mZs+aYjuizog0KK+mZs+aYjuixkA0KK+mZs+aYleaWuQ0KK+mZs+aYh+avhQ0KK+mZs+adseiPrw0KK+mZs+adsOebmw0KK+mZs+advuiQjQ0KK+mZs+aso+Wmgg0KK+mZs+aso+Wujw0KK+mZs+aso+WunA0KK+mZs+aso+aAoQ0KK+mZs+aso+aAoQ0KK+mZs+aso+azsA0KK+mZs+aso+eRnA0KK+mZs+aso+iYrQ0KK+mZs+azs+S7uw0KK+mZs+azleWFiQ0KK+mZs+azk+e/lA0KK+mZs+azk+mclg0KK+mZs+ayu+Wuhw0KK+mZs+aziui+sA0KK+mZs+eOn+WFiQ0KK+mZs+eOn+S8tg0KK+mZs+eOn+eRmw0KK+mZs+eOq+Wmgg0KK+mZs+eOq+WQmw0KK+mZs+eOq+iKsw0KK+mZs+eOq+iHuw0KK+mZs+eOpeeHlQ0KK+mZs+eniea3sw0KK+mZs+enieaWjA0KK+mZs+iKs+ePjQ0KK+mZs+iKs+iQsQ0KK+mZs+iKneWAqQ0KK+mZs+iKneevhA0KK+mZs+iKr+aAoQ0KK+mZs+mCtemRqw0KK+mZs+mHkeiJrw0KK+mZs+mHkeWgpA0KK+mZs+mHkeiBsg0KK+mZs+mVt+aFtg0KK+mZs+mbqOaWsA0KK+mZs+mdkueRnA0KK+mZs+S6reWQmw0KK+mZs+S6ruS4ng0KK+mZs+S6ruWQmw0KK+mZs+S6ruepjg0KK+mZs+S/oeS8ig0KK+mZs+S/oeWuhw0KK+mZs+S/oeaXrQ0KK+mZs+S/oeWQnw0KK+mZs+S/oeWujw0KK+mZs+S/oeWujw0KK+mZs+S/oeeUqw0KK+mZs+S/oeW/oA0KK+mZs+S/oeaZug0KK+mZs+S/oeijlQ0KK+mZs+S/oeixqg0KK+mZs+S/oeWtuA0KK+mZs+S/neWFgw0KK+mZs+S/neW9sA0KK+mZs+S/iuS7gQ0KK+mZs+S/iuaWhw0KK+mZs+S/iuS7sA0KK+mZs+S/iuWQiQ0KK+mZs+S/iuWmgg0KK+mZs+S/iuWuhw0KK+mZs+S/iuWuiQ0KK+mZs+S/iuaIkA0KK+mZs+S/iuaXrQ0KK+mZs+S/iuS9kQ0KK+mZs+S/iuWRiA0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuWujw0KK+mZs+S/iuW7tw0KK+mZs+S/iueUtw0KK+mZs+S/iueUtw0KK+mZs+S/iuiJrw0KK+mZs+S/iuWSjA0KK+mZs+S/iuadsA0KK+mZs+S/iumDjg0KK+mZs+S/iuW9rA0KK+mZs+S/iuWCkQ0KK+mZs+S/iuWHsQ0KK+mZs+S/iuiPrw0KK+mZs+S/iua6kA0KK+mZs+S/iumBlA0KK+mZs+S/iuamlQ0KK+mZs+S/iue2rQ0KK+mZs+S/iuixqg0KK+mZs+S/iumKmA0KK+mZs+S/iumKmA0KK+mZs+S/iueSiw0KK+mZs+S/iuaoug0KK+mZs+S/iuirug0KK+mZs+S/ium+jQ0KK+mZs+S/iueRiw0KK+mZs+S/kOWuiQ0KK+mZs+S/kOengA0KK+mZs+S/kOa9lA0KK+mZs+S/nuS7sg0KK+mZs+S/nuWmmQ0KK+mZs+S/numdnA0KK+mZs+WGoOWkqw0KK+mZs+WGoOS7sA0KK+mZs+WGoOWmgg0KK+mZs+WGoOWuhw0KK+mZs+WGoOW3ng0KK+mZs+WGoOiInw0KK+mZs+WGoOWQqw0KK+mZs+WGoOWujw0KK+mZs+WGoOW7tw0KK+mZs+WGoOeUtw0KK+mZs+WGoOWCkQ0KK+mZs+WGoOWXmg0KK+mZs+WGoOe2rQ0KK+mZs+WGoOmKmA0KK+mZs+WGoOaoug0KK+mZs+WGoOWmjw0KK+mZs+WJh+asvQ0KK+mZs+WLh+WcqA0KK+mZs+WLh+W/lw0KK+mZs+WLh+mBlA0KK+mZs+WLgeWQvg0KK+mZs+WNl+WxhQ0KK+mZs+WOmumKmA0KK+mZs+WTgeWFiA0KK+mZs+WTgeengA0KK+mZs+WTgei8nQ0KK+mZs+WlleS4rQ0KK+mZs+WlleS7uw0KK+mZs+WlleW4hg0KK+mZs+WlleWIqQ0KK+mZs+WlleW7tw0KK+mZs+WlleebiA0KK+mZs+WllemBlA0KK+mZs+Wlleepjg0KK+mZs+WlleiTgQ0KK+mZs+Wljuavjw0KK+mZs+Wnv+aWhw0KK+mZs+Wnv+eZvg0KK+mZs+Wnv+WIqQ0KK+mZs+Wnv+WQnw0KK+mZs+Wnv+WykA0KK+mZs+Wnv+ePig0KK+mZs+Wnv+iTiQ0KK+mZs+Wnv+epjg0KK+mZs+Wnv+eShw0KK+mZs+WogeS4ng0KK+mZs+WogeWFqA0KK+mZs+WogeWuhw0KK+mZs+WogeaIkA0KK+mZs+WogeWKqQ0KK+mZs+WogeW7tw0KK+mZs+WogeW/lw0KK+mZs+WogeW/lw0KK+mZs+WogemCkQ0KK+mZs+Wogee/lA0KK+mZs+Wogeixqg0KK+mZs+WogeWEkg0KK+mZs+Wogemclg0KK+mZs+Wuo+S7uw0KK+mZs+Wuo+avjw0KK+mZs+WupeS7uw0KK+mZs+WupeirrQ0KK+mZs+W4peWQjQ0KK+mZs+W7uuS4rQ0KK+mZs+W7uuWFgw0KK+mZs+W7uuaWhw0KK+mZs+W7uuS7uw0KK+mZs+W7uuWQjA0KK+mZs+W7uuWuhw0KK+mZs+W7uuWuiQ0KK+mZs+W7uuW3ng0KK+mZs+W7uuaIkA0KK+mZs+W7uuaXrQ0KK+mZs+W7uuihjA0KK+mZs+W7uuWRiA0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuWujw0KK+mZs+W7uuW7tw0KK+mZs+W7uuW/lw0KK+mZs+W7uuW/lw0KK+mZs+W7uueUqw0KK+mZs+W7uueUtw0KK+mZs+W7uuiJrw0KK+mZs+W7uumCpg0KK+mZs+W7uuaYjg0KK+mZs+W7uuWciw0KK+mZs+W7uuaPmg0KK+mZs+W7uuiPrw0KK+mZs+W7uuiplQ0KK+mZs+W7uua6kA0KK+mZs+W7uumBlA0KK+mZs+W7uuamrg0KK+mZs+W7uuiTiQ0KK+mZs+W7uui8lA0KK+mZs+W7uumKmA0KK+mZs+W7uumKmA0KK+mZs+W7uueSiw0KK+mZs+W7uuWLsw0KK+mZs+W7uuaoug0KK+mZs+W7uum+jQ0KK+mZs+W7uueDnA0KK+mZs+W9peWkqw0KK+mZs+W9peaWhw0KK+mZs+W9peS7uw0KK+mZs+W9peWQiA0KK+mZs+W9peWuhw0KK+mZs+W9peW4hg0KK+mZs+W9peeruQ0KK+mZs+W9peS8uA0KK+mZs+W9peWQmw0KK+mZs+W9peWjrw0KK+mZs+W9peWujw0KK+mZs+W9peWujw0KK+mZs+W9peW7tw0KK+mZs+W9peeUqw0KK+mZs+W9peiJrw0KK+mZs+W9peaYjA0KK+mZs+W9peWHsQ0KK+mZs+W9peaEtw0KK+mZs+W9pee2uA0KK+mZs+W9peixqg0KK+mZs+W9peaFsA0KK+mZs+W9peWLsw0KK+mZs+W9pemclg0KK+mZs+W+i+WFgw0KK+mZs+aAneWFiA0KK+mZs+aAneW5tA0KK+mZs+aAneWmpA0KK+mZs+aAneS6rg0KK+mZs+aAnea6kA0KK+mZs+aAneiTiQ0KK+mZs+aAneaouA0KK+mZs+aAneepjg0KK+mZs+aAnee/sA0KK+mZs+aAneeShw0KK+mZs+aUv+aWhw0KK+mZs+aUv+Wujw0KK+mZs+aUv+aYlQ0KK+mZs+aUv+Wgrw0KK+mZs+aUv+ijlQ0KK+mZs+aUv+avhQ0KK+mZs+aUv+ismQ0KK+mZs+aYpeWmgw0KK+mZs+aYpeaYjg0KK+mZs+aYpeeHlQ0KK+mZs+aYreaWhw0KK+mZs+aYreWuhw0KK+mZs+aYreS8tg0KK+mZs+aYreW/lw0KK+mZs+aYreWBiQ0KK+mZs+aYreamrg0KK+mZs+aYremKmA0KK+mZs+aYreeRiw0KK+mZs+aYoOaXrQ0KK+mZs+aYoOW/lw0KK+mZs+aYoOWEkg0KK+mZs+aYn+Wuhw0KK+mZs+aYn+eGuQ0KK+mZs+aYseS4ng0KK+mZs+aYseWFqA0KK+mZs+aYseaxnQ0KK+mZs+aYseWujw0KK+mZs+aYseeUqw0KK+mZs+aYsemBlA0KK+mZs+aYseaoug0KK+mZs+aflOWuiQ0KK+mZs+afhOaWuQ0KK+mZs+afj+WFgw0KK+mZs+afj+S7vQ0KK+mZs+afj+Wuhw0KK+mZs+afj+W3ng0KK+mZs+afj+W5tA0KK+mZs+afj+iInw0KK+mZs+afj+WQqw0KK+mZs+afj+Wujw0KK+mZs+afj+W/lw0KK+mZs+afj+ayhQ0KK+mZs+afj+Wysw0KK+mZs+afj+WzsA0KK+mZs+afj+WHsQ0KK+mZs+afj+eRng0KK+mZs+afj+Wvpw0KK+mZs+afj+iTiQ0KK+mZs+afj+eSiw0KK+mZs+afj+e/sA0KK+mZs+afj+i8rw0KK+mZs+afj+eRiw0KK+mZs+a0suaYnw0KK+mZs+eCq+WQmw0KK+mZs+eCs+S7sg0KK+mZs+eCs+i+sA0KK+mZs+eCs+mMlQ0KK+mZs+eCr+mMpg0KK+mZs+ePiuePig0KK+mZs+ePjeeRqQ0KK+mZs+eahuiIiA0KK+mZs+eah+aXrQ0KK+mZs+eah+m+jQ0KK+mZs+ebiOWFqA0KK+mZs+ebiOWmgg0KK+mZs+ebiOWmgg0KK+mZs+ebiOWuiQ0KK+mZs+ebiOeruQ0KK+mZs+ebiOWQmw0KK+mZs+ebiOWtnA0KK+mZs+ebiOadiQ0KK+mZs+ebiOiynQ0KK+mZs+ebiOWptw0KK+mZs+ebiOe2ug0KK+mZs+ebiOeSiw0KK+mZs+ebiOirrQ0KK+mZs+ebiOeShw0KK+mZs+ebuOmBlA0KK+mZs+eliOizkw0KK+mZs+emuem9ig0KK+mZs+enkemghg0KK+mZs+eni+aWuQ0KK+mZs+eni+W4hg0KK+mZs+eni+engA0KK+mZs+eni+e0lA0KK+mZs+eni+iQjQ0KK+mZs+eni+mbrw0KK+mZs+eni+eHlQ0KK+mZs+e0heeOiQ0KK+mZs+e0gOi2sw0KK+mZs+e+juS6kQ0KK+mZs+e+jueOiQ0KK+mZs+e+juWmgg0KK+mZs+e+juW5tA0KK+mZs+e+juS8tg0KK+mZs+e+juWQmw0KK+mZs+e+juWQnw0KK+mZs+e+juW7tw0KK+mZs+e+juengA0KK+mZs+e+juiKnQ0KK+mZs+e+jueOsg0KK+mZs+e+juWonw0KK+mZs+e+jue0lA0KK+mZs+e+juWWrA0KK+mZs+e+juaDoA0KK+mZs+e+jueQtA0KK+mZs+e+juiPsQ0KK+mZs+e+jumItA0KK+mZs+e+juaFpw0KK+mZs+e+juWEkg0KK+mZs+e+jumdnA0KK+mZs+e+jumIug0KK+mZs+e+v+iwtw0KK+mZs+iHtOS7sA0KK+mZs+iHtOWujw0KK+mZs+iHtOemjw0KK+mZs+iHtOWPoQ0KK+mZs+iLpeabpg0KK+mZs+iMgumbhA0KK+mZs+iLseadsA0KK+mZs+iLseaMrw0KK+mZs+iLseWCkQ0KK+mZs+iLseiTkw0KK+mZs+iLsem0uw0KK+mZs+iLk+Wonw0KK+mZs+iZueabsg0KK+mZs+iZueWQnw0KK+mZs+iZuea9lA0KK+mZs+ihjeiHsw0KK+mZs+ihjemclg0KK+mZs+iynuaXrQ0KK+mZs+iynuWmpA0KK+mZs+iynuiTiQ0KK+mZs+iynueRiw0KK+mZs+mDgeS7gQ0KK+mZs+mDgeaWhw0KK+mZs+mDgeiKrA0KK+mZs+mDgeWCkQ0KK+mZs+mDgeiPgQ0KK+mZs+mDgealkw0KK+mZs+mHjeWFiQ0KK+mZs+mHjeW7tw0KK+mZs+mHjeWEkg0KK+mZs+mfi+WcqA0KK+mZs+mfi+S8tg0KK+mZs+mfi+W7tw0KK+mZs+mfi+aJvw0KK+mZs+mfi+ixqg0KK+mZs+mfsw0KK+mZs+mjm+iJrw0KK+mZs+mmmeWmgg0KK+mZs+mmmeWQnw0KK+mZs+mmmeWptw0KK+mZs+WAjeeUhA0KK+mZs+WAlue/oA0KK+mZs+WHjOehrw0KK+mZs+WTsuawkQ0KK+mZs+WTsuW8tw0KK+mZs+WTsuizog0KK+mZs+Wutuatow0KK+mZs+WutuWlhw0KK+mZs+WutuePjQ0KK+mZs+WutuelpQ0KK+mZs+Wutua5lg0KK+mZs+Wutumbrw0KK+mZs+Wutua8og0KK+mZs+WutuWEgA0KK+mZs+WutuaFpw0KK+mZs+WutuiIiA0KK+mZs+WutueQrg0KK+mZs+WuueiQsQ0KK+mZs+WzsOW3ng0KK+mZs+aBlQ0KK+mZs+aBqeamrg0KK+mZs+aMr+adsQ0KK+mZs+aMr+a5pw0KK+mZs+aMr+mKmA0KK+mZs+aZguebnw0KK+mZs+abuOWFiQ0KK+mZs+abuOavkw0KK+mZs+ahgueOiQ0KK+mZs+ahguaFpw0KK+mZs+azsOWFqA0KK+mZs+azsOS8tg0KK+mZs+azsOWzsA0KK+mZs+azsOmKmA0KK+mZs+a1muasvQ0KK+mZs+a1qeiMuQ0KK+mZs+ePruS6kQ0KK+mZs+ePruaAoQ0KK+mZs+ePruePrg0KK+mZs+ePrueRnA0KK+mZs+ePrueRiw0KK+mZs+ebiuijlQ0KK+mZs+elkOaCjA0KK+mZs+e0oQ0KK+mZs+e0oOePjQ0KK+mZs+e0oOWopQ0KK+mZs+e0oOeRnA0KK+mZs+e0lOaAoQ0KK+mZs+iAmOWvrA0KK+mZs+iNg+ixqg0KK+mZs+mDoeaAoQ0KK+mZs+S5vua3pg0KK+mZs+WBieawkQ0KK+mZs+WBieS/oQ0KK+mZs+WBieiOiQ0KK+mZs+WBieijlQ0KK+mZs+WBpeS4ig0KK+mZs+WBpeWwgQ0KK+mZs+WBpemclg0KK+mZs+Wci+WFgw0KK+mZs+Wci+aYjg0KK+mZs+Wci+WzsA0KK+mZs+Wci+aigQ0KK+mZs+Wci+ajiw0KK+mZs+Wci+amrg0KK+mZs+Wci+mLkg0KK+mZs+WgheawkQ0KK+mZs+WfueiCsg0KK+mZs+Wfueerrw0KK+mZs+WpieiCsg0KK+mZs+WpieWNvw0KK+mZs+WpieiPgQ0KK+mZs+Wpiea9lA0KK+mZs+W0h+WOnw0KK+mZs+W0kemKmA0KK+mZs+W9qee0lA0KK+mZs+aNtw0KK+mZs+WVn+WtmA0KK+mZs+WVn+a4hQ0KK+mZs+WVn+mKmA0KK+mZs+aVj+aYnw0KK+mZs+aVj+aWsA0KK+mZs+aik+eRiw0KK+mZs+aihemmqA0KK+mZs+a4heWlhw0KK+mZs+a4hea6kA0KK+mZs+a3kQ0KK+mZs+a3keWQmw0KK+mZs+a3keaAoQ0KK+mZs+a3keiKrA0KK+mZs+a3keiKrA0KK+mZs+a3keeOsg0KK+mZs+a3keeniw0KK+mZs+a3keiyng0KK+mZs+a3keWonw0KK+mZs+a3keWonw0KK+mZs+a3keecnw0KK+mZs+a3kee+mg0KK+mZs+a3keaDoA0KK+mZs+a3keiQjQ0KK+mZs+a3kembhQ0KK+mZs+a3kemItA0KK+mZs+a3keaFpw0KK+mZs+a3kemdnA0KK+mZs+a3teeniw0KK+mZs+eMm+Wulw0KK+mZs+elpemIng0KK+mZs+e0ueW6rQ0KK+mZs+iOiuWBiQ0KK+mZs+iOieWptw0KK+mZs+ioseawkQ0KK+mZs+mbquiKrA0KK+mZs+mbquiPrw0KK+mZs+WCkeijlQ0KK+mZs+WHseeOsg0KK+mZs+WHsemIvw0KK+mZs+WLneWmgg0KK+mZs+WLneWYiQ0KK+mZs+WNmuW6tw0KK+mZs+WWrOWuhw0KK+mZs+Wpt+eOnw0KK+mZs+WvjOawkQ0KK+mZs+WvjOamrg0KK+mZs+aDoOaWhw0KK+mZs+aDoOWQmw0KK+mZs+aDoOiKrA0KK+mZs+aDoOeOsg0KK+mZs+aDoOe+jg0KK+mZs+aDoOWonw0KK+mZs+aDoOWptw0KK+mZs+aDoOiQjQ0KK+mZs+aDoOmbrw0KK+mZs+aDoOmbrw0KK+mZs+aDoOm9oQ0KK+mZs+aPmuWTsg0KK+mZs+aZtuaZtg0KK+mZs+aZr+azsA0KK+mZs+aZr+mRqw0KK+mZs+aZuuS6rg0KK+mZs+aZuuWBiQ0KK+mZs+aZuumZvQ0KK+mZs+aZuuWvrA0KK+mZs+acneaWhw0KK+mZs+acneeGmQ0KK+mZs+aji+ePjQ0KK+mZs+a5mOS6jg0KK+mZs+a5mOeQtA0KK+mZs+a4neaWhw0KK+mZs+eQqumbrw0KK+mZs+eQpueQsw0KK+mZs+eZu+mahg0KK+mZs+etkeetoA0KK+mZs+iCheasig0KK+mZs+iIkuaGmw0KK+mZs+iPgQ0KK+mZs+iPr+WBiQ0KK+mZs+ipoOS6rg0KK+mZs+izgOmIug0KK+mZs+i+nOS6rg0KK+mZs+mAuOW5sw0KK+mZs+mAuOaYjg0KK+mZs+mAuOebiA0KK+mZs+mAuOiPgQ0KK+mZs+mAuOe2rQ0KK+mZs+mAuOm0uw0KK+mZs+mAsuW/lw0KK+mZs+mAsumahg0KK+mZs+mInuWxjw0KK+mZs+mWlOmahg0KK+mZs+mahuaWjA0KK+mZs+mbheWQmw0KK+mZs+mbheeOqw0KK+mZs+mbheiKrA0KK+mZs+mbheeOsg0KK+mZs+mbheeOsg0KK+mZs+mbheiLkw0KK+mZs+mbheePrg0KK+mZs+mbhembqg0KK+mZs+mbheWptw0KK+mZs+mbheaDoA0KK+mZs+mbheaDoA0KK+mZs+mbheeQqg0KK+mZs+mbheeQtA0KK+mZs+mbheiPgQ0KK+mZs+mbhembrw0KK+mZs+mbhembrw0KK+mZs+mbhemItA0KK+mZs+mbheaFpw0KK+mZs+mbhemfuw0KK+mZs+mbrw0KK+mZs+mbr+aDoA0KK+mZs+mbsuaouA0KK+mZs+mghueZvA0KK+mZs+WCs+iIiA0KK+mZs+aEj+aWhw0KK+mZs+aEj+mbrw0KK+mZs+aFiOmbhQ0KK+mZs+aEm+eUhA0KK+mZs+aVrOaWhw0KK+mZs+aVrOWCkQ0KK+mZs+aWsOeDiA0KK+mZs+alree1sQ0KK+mZs+amhua2tQ0KK+mZs+avk+iJrw0KK+mZs+avk+iMuQ0KK+mZs+avk+mIng0KK+mZs+a6kOatow0KK+mZs+a6q+iQjQ0KK+mZs+eFp+aFiA0KK+mZs+eFpua3kQ0KK+mZs+eFpeajrg0KK+mZs+eRnuWIqQ0KK+mZs+eRnuaYjA0KK+mZs+eRnuiKrA0KK+mZs+eRnumHpw0KK+mZs+eRnueRnA0KK+mZs+eRnumclg0KK+mZs+eRnum6nw0KK+mZs+eRnOipqQ0KK+mZs+eluuWvjA0KK+mZs+e2k+Wciw0KK+mZs+e+qeW/oA0KK+mZs+e+qee3rw0KK+mZs+iBluWwuQ0KK+mZs+iBluWunA0KK+mZs+iBluWCkQ0KK+mZs+iBluaGsg0KK+mZs+iQseiUkw0KK+mZs+icgueBnQ0KK+mZs+ijleWNhw0KK+mZs+ijleW7tw0KK+mZs+ijleaZug0KK+mZs+ipqeW5sw0KK+mZs+ipqeaziQ0KK+mZs+ipqeWptw0KK+mZs+ipqeipqQ0KK+mZs+ipqeiYiw0KK+mZs+mBi+W+tQ0KK+mZs+mBlOijlQ0KK+mZs+mbjQ0KK+mZs+mdluaAoQ0KK+mZs+m8juS7gQ0KK+mZs+WYieS7gQ0KK+mZs+WYieS6qA0KK+mZs+WYieWujw0KK+mZs+WYieaAoQ0KK+mZs+WYieeOsg0KK+mZs+WYieWzsA0KK+mZs+WYieiMtQ0KK+mZs+WYiea3pg0KK+mZs+WYieaDoA0KK+mZs+WYiembgQ0KK+mZs+WYieWLpA0KK+mZs+WYieW+tw0KK+mZs+WYieeRqQ0KK+mZs+WYieeHnw0KK+mZs+WYieeQrg0KK+mZs+aXl+aYjA0KK+mZs+amruadsA0KK+mZs+amrumAsg0KK+mZs+amrueHvw0KK+mZs+a8ouePjQ0KK+mZs+a8ouiUmg0KK+mZs+eRpOecnw0KK+mZs+eip+e0hQ0KK+mZs+eip+mbsg0KK+mZs+eiqeWBiQ0KK+mZs+emj+aelw0KK+mZs+e2uuiPrw0KK+mZs+e2remCpg0KK+mZs+e2reWTsg0KK+mZs+e2reWEgA0KK+mZs+e/oOWptw0KK+mZs+iCh+m0uw0KK+mZs+iTk+eOsg0KK+mZs+iqjOedvw0KK+mZs+mKmA0KK+mZs+mKmOaziQ0KK+mZs+mKmOW8tw0KK+mZs+mKmOmbhA0KK+mZs+mKmOiAgA0KK+mZs+mzs+eOsg0KK+mZs+mzs+mztA0KK+mZs+WEgA0KK+mZs+WEgOePig0KK+mZs+WEgOa9lA0KK+mZs+WvrOWmgg0KK+mZs+W7o+m6nw0KK+mZs+W+t+WSjA0KK+mZs+W+t+Wggg0KK+mZs+W+t+mBoA0KK+mZs+W+teWulw0KK+mZs+aFtuaYnw0KK+mZs+aFtuiPrw0KK+mZs+aFtue2rQ0KK+mZs+aFtue/sA0KK+mZs+aFtum0uw0KK+mZs+aFp+eOiQ0KK+mZs+aFp+Wmgg0KK+mZs+aFp+WQmw0KK+mZs+aFp+iKnQ0KK+mZs+aFp+ePig0KK+mZs+aFp+eOsg0KK+mZs+aFp+e+jg0KK+mZs+aFp+WNvw0KK+mZs+aFp+ecnw0KK+mZs+aFp+e0lA0KK+mZs+aFp+aVjw0KK+mZs+aFp+iQjQ0KK+mZs+aFp+mbrw0KK+mZs+aFp+iTiQ0KK+mZs+aFp+aotQ0KK+mZs+aFp+iYrQ0KK+mZs+aFleWEkg0KK+mZs+avheatow0KK+mZs+avhem0uw0KK+mZs+a9lOmfsw0KK+mZs+eRqeiKsw0KK+mZs+eRqeiTiQ0KK+mZs+eRqeeRhA0KK+mZs+e3r+aBqQ0KK+mZs+iUmumdkg0KK+mZs+iqvOiKsw0KK+mZs+izouWFuA0KK+mZs+i8neWQiQ0KK+mZs+mch+Wuhw0KK+mZs+m7juahgg0KK+mZs+WtuOaYjg0KK+mZs+aGsuS7gQ0KK+mZs+aGsuWEgA0KK+mZs+aGtumbrw0KK+mZs+abieWnjQ0KK+mZs+abiemdkg0KK+mZs+abiemiqA0KK+mZs+abieW1kA0KK+mZs+abieiPgQ0KK+mZs+abieetoA0KK+mZs+abieaFpw0KK+mZs+abiem6lw0KK+mZs+aoueW5tA0KK+mZs+a+pOePig0KK+mZs+eHleS8tg0KK+mZs+eHleiPgQ0KK+mZs+eHleaAnA0KK+mZs+epjuWQmw0KK+mZs+epjuelpQ0KK+mZs+epjuaFpw0KK+mZs+ephuiTiQ0KK+mZs+e/sOeSiw0KK+mZs+iVmeiKsw0KK+mZs+iVmeiLuQ0KK+mZs+mMq+iPrw0KK+mZs+mMpuengA0KK+mZs+mMpuWggg0KK+mZs+mMpuaFpw0KK+mZs+mMpum0uw0KK+mZs+mdnOWmgg0KK+mZs+mdnOWunA0KK+mZs+mdnOaAoQ0KK+mZs+mdnOaAoQ0KK+mZs+mdnOaAoQ0KK+mZs+mdnOiKsw0KK+mZs+mdnOa3kQ0KK+mZs+mdnOWvpw0KK+mZs+mdnOWEgA0KK+mZs+mdnOaFpw0KK+mZs+mdnOizog0KK+mZs+m+jeeUnw0KK+mZs+m+jeWvrA0KK+mZs+abmeadsQ0KK+mZs+iBsOS7gQ0KK+mZs+iHhuS7gQ0KK+mZs+iWhw0KK+mZs+iWh+Wmgg0KK+mZs+ismeavhQ0KK+mZs+mnv+aPmg0KK+mZs+m0u+aWhw0KK+mZs+m0u+W/lw0KK+mZs+m0u+a4hQ0KK+mZs+m0u+ijlQ0KK+mZs+m0u+mclg0KK+mZs+eSv+Wmgg0KK+mZs+ixkOaMrw0KK+mZs+aHt+WTsg0KK+mZs+eSveeIrQ0KK+mZs+eTiua3hw0KK+mZs+eTiuaoug0KK+mZs+iXneW/gw0KK+mZs+i0iuS4rQ0KK+mZs+mPl+S7uw0KK+mZs+mfu+WkmQ0KK+mZs+mfu+Wmgg0KK+mZs+mfu+Wmgg0KK+mZs+mfu+Wmgg0KK+mZs+mfu+eruQ0KK+mZs+mfu+Wptw0KK+mZs+mfu+mdnA0KK+mZs+m1rOemvg0KK+mZs+m6kuWFgw0KK+mZs+m6kuWFqA0KK+mZs+m6l+aWhw0KK+mZs+m6l+Wmgg0KK+mZs+m6l+Wuhw0KK+mZs+m6l+iAjA0KK+mZs+m6l+iKrA0KK+mZs+m6l+WNvw0KK+mZs+m6l+ePoA0KK+mZs+m6l+Wptw0KK+mZs+m6l+iQjQ0KK+mZs+m6l+mbrw0KK+mZs+m6l+iTrg0KK+mZs+WvtueOiQ0KK+mZs+WvtuiTrg0KK+mZs+iAgOS7gQ0KK+mZs+iAgOesmQ0KK+mZs+mmqOaAoQ0KK+mZs+WEt+aWhw0KK+mZs+aru+WuuQ0KK+mZs+itvem9oQ0KK+mZs+m2tOS4rQ0KK+mZs+aHv+aYoA0KK+mZs+iJt+mItA0KK+mZs+iKiuengA0KK+mZs+aAnOWQmw0KK+mZs+aXu+aUvw0KK+mZs+eOoOa6kA0KK+mZs+Wnrumcjw0KK+mZs+WnteWmgg0KK+mZs+WnteWQnw0KK+mZs+WnteeRsQ0KK+mZs+aYtuaYsQ0KK+mZs+ePiOeQpg0KK+mZs+W9p+mmqA0KK+mZs+eQh+Wmgg0KK+mZs+WgnA0KK+mZs+eQrumWlA0KK+mZs+eQrOWptw0KK+mZs+eQrOiPgQ0KK+mZs+akuOa2kw0KK+mZs+eRiw0KK+mZs+eRi+WFuA0KK+mZs+eRi+iAmA0KK+mZs+eRi+aYtg0KK+mZs+etseiKsw0KK+mZs+etseWptw0KK+mZs+etseetoA0KK+mZs+iQqeiKuA0KK+mZs+mIuueOqw0KK+mZs+mIuuWptw0KK+mZs+mIuueSvQ0KK+mZs+mKmuiMuQ0KK+mZs+mciOWuhw0KK+mZs+iWj+mbrw0KK+mZs+eAheWmgg0KK+mZs+eAhea3kQ0KK+mZs+Wsv+WboA0KK+mZs+Wsv+S8tg0KK+mZs+mhl+aWhw0KK+mZs+mRq+m6nw0KK+mZuOWwj+eHlQ0KK+mZuOato+e+qQ0KK+mZuOWto+Wujw0KK+mZuOS/oem+jQ0KK+mZuOa0peiPrw0KK+mZuOaiheWptw0KK+mZuOmbsuazsA0KK+mZuOmzs+eOsg0KK+mZuOa3r+mItA0KK+mZtuiCsuWdhw0KK+mZtuaDn+iQsQ0KK+eroOaWh+iKnQ0KK+eroOS9s+mbsg0KK+eroOaguea6kA0KK+eroOe/lA0KK+eroOeTiuaWuQ0KK+m6peS9qembrw0KK+m6peebp+WvtuWFqA0KK+WCheS4gOmbhA0KK+WCheWtkOaBkg0KK+WCheaWh+mAsg0KK+WCheato+W4jA0KK+WCheWFieaZug0KK+WCheWuj+aWjA0KK+WCheS6nuWHoQ0KK+WCheaAoeiKsw0KK+WChemHkeWujw0KK+WCheW7uuWciw0KK+WCheaYoOWFiA0KK+WChee+juiTiQ0KK+WCheePrua3hw0KK+WCheWci+ajnw0KK+WCheWVn+eahw0KK+WChea3kembrw0KK+WCheaWr+W5sw0KK+WChembheWNvw0KK+WCheeFjOmMpg0KK+WChemJm+aWhw0KK+WCheW+t+aUvw0KK+WChemNrOa3vA0KK+WCheeQrg0KK+WWruS6puS/oA0KK+WWu+iHs+WWhA0KK+WWrOWul+Wgrw0KK+WvjOW6t+e/lA0KK+W9reS4iuWQiQ0KK+W9reWjq+aBkg0KK+W9reS7geW/lw0KK+W9reWPiui+sA0KK+W9reaWh+Wujw0KK+W9reaWh+aFpw0KK+W9reS7peS/oQ0KK+W9reato+iJrw0KK+W9reeOieiPrw0KK+W9reS8iuiKrA0KK+W9reWmguaVjw0KK+W9reaIkOWCkQ0KK+W9reaXreWInQ0KK+W9reWuj+WQmw0KK+W9reW/l+ixqg0KK+W9reS9s+WBiQ0KK+W9reWul+aEjw0KK+W9reaAoeiVmQ0KK+W9reaci+mbjQ0KK+W9reenieatow0KK+W9reS/neasow0KK+W9reS/iuemjw0KK+W9reWGoOeRmw0KK+W9reWogee/lA0KK+W9reW7uuamrg0KK+W9reW+i+WHoQ0KK+W9reafj+WogQ0KK+W9reeni+iQjQ0KK+W9reiLpeaFiA0KK+W9remDgeS7gQ0KK+W9reWTsuS7gQ0KK+W9rea1qeWAqw0KK+W9reWBieWQmw0KK+W9reWci+WzsA0KK+W9reW0h+S/oQ0KK+W9reWVn+mIng0KK+W9rea3keePjQ0KK+W9reebmw0KK+W9rembqueQpg0KK+W9reWWnOa1qQ0KK+W9reaZtuiBsg0KK+W9rea7i+iQjQ0KK+W9reiIkuW9pQ0KK+W9remWi+aYjg0KK+W9rembhee1uQ0KK+W9reaEm+iYiw0KK+W9reeRnuiLkw0KK+W9reiBluiQjQ0KK+W9reWYieWQmw0KK+W9reamruahgg0KK+W9remKmOa3hw0KK+W9reaFp+Wmgg0KK+W9reizouS4gA0KK+W9reabieeQqg0KK+W9remMpueCqw0KK+W9remnv+a0gQ0KK+W9rem6l+aFpw0KK+W9remmqOaFpw0KK+W9reeRi+W9pQ0KK+W9remgjuiYiw0KK+aZr+mbqOeniw0KK+abvuWHoeWTsg0KK+abvuS6juaFiA0KK+abvuWNg+ixqg0KK+abvuWjq+i7kg0KK+abvuWjq+aBkg0KK+abvuWtkOW6rQ0KK+abvuWwj+eOsg0KK+abvuS7geS9kQ0KK+abvuWFg+W/lw0KK+abvuWtlOmIug0KK+abvuaWhw0KK+abvuaWh+W/oA0KK+abvuaWh+W9rA0KK+abvuaWh+aFpw0KK+abvuaWh+mhlw0KK+abvuS4lueFjA0KK+abvuS7pOeRnA0KK+abvuW5s+iqpQ0KK+abvuato+iAgA0KK+abvueOieWmgg0KK+abvueOieiPgQ0KK+abvueri+W+tw0KK+abvuS7suebnw0KK+abvuWQieWujw0KK+abvuWmguWQmw0KK+abvuWuieeQqg0KK+abvue+veW2ug0KK+abvuWQm+ixqg0KK+abvuW/l+eOhA0KK+abvuW/l+WCkQ0KK+abvuW/l+m6nw0KK+abvuengOaihQ0KK+abvuiCsuiPgQ0KK+abvuS9s+eOsg0KK+abvuS9s+eRsQ0KK+abvuWto+athg0KK+abvuWwmuW/lw0KK+abvuaAoeWonw0KK+abvuaAoeWYiQ0KK+abvuaJv+W/lw0KK+abvuaYjuW+tw0KK+abvuazk+mclg0KK+abvuiKneiYrQ0KK+abvuS/oeWCkQ0KK+abvuS/iuW9pQ0KK+abvuS/iuaZug0KK+abvuS/iuixqg0KK+abvuS/iueRiw0KK+abvuWGoOaoug0KK+abvuWTgeW9sA0KK+abvuWnv+e2ug0KK+abvuWogeirrQ0KK+abvuW7uuWSjA0KK+abvuW7uuWNmg0KK+abvuW7uuamrg0KK+abvuW7uumclg0KK+abvuW9pemWlA0KK+abvuW9pee/sA0KK+abvuaAnee2rQ0KK+abvuaUv+ixqg0KK+abvuaYree/lA0KK+abvuaYoOm9oQ0KK+abvuafj+a2tQ0KK+abvuafj+iIiA0KK+abvueah+m+jQ0KK+abvueni+aVjw0KK+abvue+juaAoQ0KK+abvue+juiPrw0KK+abvue+jum9oQ0KK+abvuiLseWzsA0KK+abvumDgeaWhw0KK+abvumDgeepjg0KK+abvuWutuaMrw0KK+abvuWxleWFtg0KK+abvuabuOaFpw0KK+abvuePrueQsw0KK+abvue0oOmItA0KK+abvui7kuW9rA0KK+abvuWBiee/lA0KK+abvuWBpemAog0KK+abvuWci+W/lw0KK+abvuWci+abuA0KK+abvuWci+ijlQ0KK+abvuWci+mLhg0KK+abvuWpieaDoA0KK+abvuW6uOWTsg0KK+abvuWVn+W8tw0KK+abvuaiheeOiQ0KK+abvua3keiKsw0KK+abvua3keaVjw0KK+abvua3keiQjQ0KK+abvua2teWJrw0KK+abvuelpemBlA0KK+abvuiyq+aZug0KK+abvuWHseaCjA0KK+abvuWNmuW9pQ0KK+abvuWvjOmIug0KK+abvuaDoOeOsg0KK+abvuaDoOmbrw0KK+abvuaWkOe0hQ0KK+abvuaZuuW8mA0KK+abvuaZuuelug0KK+abvua5mOmbsg0KK+abvuiIkuW5sw0KK+abvuiPr+m9oQ0KK+abvuiytOemjg0KK+abvumInum8jg0KK+abvumbhemdkg0KK+abvumbheaDoA0KK+abvumbhemJiQ0KK+abvumbsuaykA0KK+abvuaEj+aWhw0KK+abvuaFiOaDoA0KK+abvuaaiea0uA0KK+abvua6peWFgw0KK+abvueFpeWCkQ0KK+abvueRnuaZgw0KK+abvueRm+eQsw0KK+abvuetoOWHig0KK+abvuiBlueEtg0KK+abvuijleWHsQ0KK+abvuipqee/sA0KK+abvumdluWonw0KK+abvum8juWFgw0KK+abvuWYieiLsQ0KK+abvuamrg0KK+abvueip+iTrg0KK+abvue2ree+pA0KK+abvumKmOmKnA0KK+abvuW+t+m+jQ0KK+abvuaFtueRhA0KK+abvuaFp+ecnw0KK+abvua+hOWgiQ0KK+abvuaGsuW/oA0KK+abvuabieeQqg0KK+abvuiVmeiPgQ0KK+abvumdnOaAoQ0KK+abvue5gemdkg0KK+abvum0u+Wutg0KK+abvuaHt+izog0KK+abvueTiuaFpw0KK+abvumfu+ecnw0KK+abvum6l+Wonw0KK+abvuWvtuejgQ0KK+abvue5vOWing0KK+abvuiAgOizog0KK+abvummqOWEgA0KK+abvum9oeaFpw0KK+abvumDhee1nA0KK+abvueQruW9pQ0KK+abvuaakOa4hQ0KK+abvuetseWptw0KK+abvumIuuiKrA0KK+abvueejQ0KK+a4uOWKm+ihjA0KK+a4uOWjq+a8og0KK+a4uOWkp+e3rw0KK+a4uOS5i+Wruw0KK+a4uOaWh+W/lw0KK+a4uOaWh+iBsA0KK+a4uOS4luaWjA0KK+a4uOacrOWogQ0KK+a4uOeOieWnvw0KK+a4uOWFhuWQmw0KK+a4uOWQm+iLuQ0KK+a4uOW/l+WBiQ0KK+a4uOadjumbhA0KK+a4uOS6nuS/kA0KK+a4uOS9s+aVjw0KK+a4uOS9qeWLsw0KK+a4uOWul+aGsg0KK+a4uOWunOe+pA0KK+a4uOaAoeelpQ0KK+a4uOaYjOe/sA0KK+a4uOaYjuWEgA0KK+a4uOasow0KK+a4uOmdkumcjw0KK+a4uOWllemclg0KK+a4uOaUv+eSiw0KK+a4uOeni+aAoQ0KK+a4uOiLseWmgg0KK+a4uOWon+Wonw0KK+a4uOWutuixqg0KK+a4uOaBqeaUvw0KK+a4uOePruetoA0KK+a4uOmrmOadsA0KK+a4uOWpiemdkg0KK+a4uOWVn+i8nQ0KK+a4uOa3keWmgg0KK+a4uOa3keaDoA0KK+a4uOelpeadsA0KK+a4uOWHseWqnA0KK+a4uOWWrOaZug0KK+a4uOaDoOeOsg0KK+a4uOaZr+e/lA0KK+a4uOaZuui2hQ0KK+a4uOacneiInA0KK+a4uOero+ebmw0KK+a4uOiInOWCkQ0KK+a4uOmAsuWvjA0KK+a4uOmbheiKsw0KK+a4uOmbheWptw0KK+a4uOmbheetoA0KK+a4uOeRnuiTrg0KK+a4uOijleW+tw0KK+a4uOamruiPrw0KK+a4uOaFtuiKsw0KK+a4uOi8neelpQ0KK+a4uOabieiKuA0KK+a4uOmMq+Wulw0KK+a4uOmnv+WBiQ0KK+a4uOmOrumCpg0KK+a4uOeNu+e+pA0KK+a4uOaXu+aGsg0KK+a4uOefnueahw0KK+a5r+S4gOePig0KK+a5r+S7iuiYrQ0KK+a5r+eOieeQtA0KK+a5r+W/l+W/oA0KK+a5r+S9s+e/sA0KK+a5r+Wys+ixig0KK+a5r+ayu+mCpg0KK+a5r+Wutuixqg0KK+a5r+WBpeaWhw0KK+a5r+a3teWvjA0KK+a5r+WvjOajiw0KK+a5r+ipoOeRnA0KK+a5r+mbhealkw0KK+a5r+aFtumMmg0KK+a5r+m0u+izog0KK+eEpuS/oeelpQ0KK+eoi+S5i+Wvpw0KK+eoi+aWh+mNvg0KK+eoi+eri+i8nQ0KK+eoi+W/l+aWhw0KK+eoi+WwmuWJhw0KK+eoi+eniemRqw0KK+eoi+Wlleasow0KK+eoi+W7uue/sA0KK+eoi+afj+eroA0KK+eoi+eni+iYrQ0KK+eoi+WBieaUvw0KK+eoi+Wpieasow0KK+eoi+a3keeOsg0KK+eoi+aWkOaWhw0KK+eoi+mbheaDoA0KK+eoi+ipqeWptw0KK+eoi+a9lOiPoQ0KK+eoi+eTiuiQsQ0KK+eoi+iYiumcng0KK+erpeWjq+iKrA0KK+erpeW8mA0KK+erpeWuieS6qA0KK+erpeS/oeWSjA0KK+erpee+jua7vw0KK+erpeaDn+aWsA0KK+erpea5mOiKuA0KK+erpeiBluWCkQ0KK+erpemfu+Wmgg0KK+erpeeAheiTiQ0KK+iIkuWpt+Wptw0KK+iPr+Wci+mLkg0KK+img+aAnem9ig0KK+iyu+moj+iRsw0KK+izgOWOmuW5sw0KK+izgOeRnum6lw0KK+iyt+iPgeiPrw0KK+i+nOS/oeemjw0KK+i+nOmDgeS7gQ0KK+i+nOaDoOe+pA0KK+i+nOmdnOaAoQ0KK+mWlOS7u+mBoA0KK+mZveato+WFiQ0KK+mbsuaZuuWLhw0KK+mgiOS4iuiLkQ0KK+mmruWFgeS4rQ0KK+mmruaWh+aUvw0KK+mmruawuOeAhQ0KK+mmruS9kembhA0KK+mmruS9s+eQpg0KK+mmrumVt+m+jQ0KK+mmruW7uuetjA0KK+mmrue+juePig0KK+mmruaZieWYiQ0KK+mmruW9qeWonw0KK+mmruWNmuWBiQ0KK+mmrue/lOeRnA0KK+mmrueRnumZvQ0KK+mmruiqjOmBtQ0KK+mmrueGvueFkg0KK+mmruiAgOaWhw0KK+m7g+S4gA0KK+m7g+S4gOWAqw0KK+m7g+S5meS4ig0KK+m7g+WKm+iogA0KK+m7g+S4iuiKsw0KK+m7g+WHoee2rQ0KK+m7g+S6juiKrA0KK+m7g+S6juePig0KK+m7g+S6juWTsg0KK+m7g+S6juecnw0KK+m7g+S6juemjg0KK+m7g+WNg+iKsw0KK+m7g+WNg+WHjA0KK+m7g+WNg+iPrw0KK+m7g+Wjqw0KK+m7g+Wjq+asow0KK+m7g+Wjq+WOnw0KK+m7g+Wjq+WzsA0KK+m7g+Wjq+mHlw0KK+m7g+Wjq+WYiQ0KK+m7g+Wjq+ixqg0KK+m7g+Wjq+izog0KK+m7g+Wkp+WAqw0KK+m7g+WtkOaJjQ0KK+m7g+WtkOW7ug0KK+m7g+WtkOWNvw0KK+m7g+WtkOi7kg0KK+m7g+WtkOephg0KK+m7g+Wwj+S9qQ0KK+m7g+Wwj+Wonw0KK+m7g+WxseWzsA0KK+m7g+aJjeaXug0KK+m7g+S4reWBiQ0KK+m7g+S5i+S6rQ0KK+m7g+S7geW8mA0KK+m7g+S7geiJrw0KK+m7g+S7geafjw0KK+m7g+S7geeSiw0KK+m7g+WFg+WxsQ0KK+m7g+WFg+mahg0KK+m7g+WFg+mnvw0KK+m7g+WPi+ismQ0KK+m7g+WkqeWBpQ0KK+m7g+WwkembqA0KK+m7g+W/g+aAoQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+aAoQ0KK+m7g+W/g+WEgA0KK+m7g+W/g+Wnrg0KK+m7g+aWh+atow0KK+m7g+aWh+WtnQ0KK+m7g+aWh+adkQ0KK+m7g+aWh+aAoQ0KK+m7g+aWh+S/oQ0KK+m7g+aWh+W9pQ0KK+m7g+aWh+eOsg0KK+m7g+aWh+ebig0KK+m7g+aWh+WLnQ0KK+m7g+aWh+mahg0KK+m7g+aWh+elug0KK+m7g+aWh+amrg0KK+m7g+aWh+eSiw0KK+m7g+aWh+m+jQ0KK+m7g+aWh+m6kg0KK+m7g+aXpemdkg0KK+m7g+aciOeRvg0KK+m7g+S4luWuiQ0KK+m7g+S4luWunA0KK+m7g+S4luaciw0KK+m7g+S4luWghQ0KK+m7g+S4lua5pw0KK+m7g+S4luWYiQ0KK+m7g+S4luWing0KK+m7g+S4luepjg0KK+m7g+S7peWWrA0KK+m7g+S7lemBlA0KK+m7g+WKoOasow0KK+m7g+WPr+eUhA0KK+m7g+W3p+Wptw0KK+m7g+W5s+Wuhw0KK+m7g+W8mOWQiQ0KK+m7g+W8mOavhQ0KK+m7g+ato+S4gA0KK+m7g+ato+WuiQ0KK+m7g+ato+S9qQ0KK+m7g+ato+WBiQ0KK+m7g+ato+mghg0KK+m7g+ato+mMlQ0KK+m7g+awuOS7gQ0KK+m7g+awuOaYhw0KK+m7g+awuOaZug0KK+m7g+awuOa8og0KK+m7g+axgOa7vw0KK+m7g+eOieWQmw0KK+m7g+eOiembqA0KK+m7g+eOieWonw0KK+m7g+eOieWptw0KK+m7g+eOieiPgQ0KK+m7g+eOieeRqQ0KK+m7g+eOieiYrQ0KK+m7g+eri+aWhw0KK+m7g+eri+iKrA0KK+m7g+eri+mBlA0KK+m7g+eri+e3rw0KK+m7g+S6puiQsQ0KK+m7g+S7suatow0KK+m7g+S7sueFpg0KK+m7g+S7u+W7tg0KK+m7g+WFieeOiQ0KK+m7g+WFiea7vw0KK+m7g+WFhuaVjw0KK+m7g+WFqOWvjA0KK+m7g+WQieW7tw0KK+m7g+WQjeaxoA0KK+m7g+WkmeaFpw0KK+m7g+Wmguecnw0KK+m7g+Wmgue/sA0KK+m7g+Wuh+W7tw0KK+m7g+WuiOeUsA0KK+m7g+WuieW+tw0KK+m7g+aXreW8mA0KK+m7g+aXrei8nQ0KK+m7g+axn+eRnA0KK+m7g+eZvueHpg0KK+m7g+iBv+WQmw0KK+m7g+iHs+aesA0KK+m7g+iHs+m1rA0KK+m7g+S8r+W5tA0KK+m7g+WFi+S7uw0KK+m7g+WQm+aAoQ0KK+m7g+WmmeiKrA0KK+m7g+WtneW9sA0KK+m7g+Wuj+S6rg0KK+m7g+Wuj+mAsg0KK+m7g+Wuj+mnvw0KK+m7g+W/l+S7gQ0KK+m7g+W/l+W5sw0KK+m7g+W/l+aIkA0KK+m7g+W/l+aYjg0KK+m7g+W/l+WBiQ0KK+m7g+W/l+W8tw0KK+m7g+W/l+aPmg0KK+m7g+W/l+mbhA0KK+m7g+W/l+WYiQ0KK+m7g+W/l+ixqg0KK+m7g+W/l+mKmA0KK+m7g+W/l+m+jQ0KK+m7g+adj+Wmgg0KK+m7g+aym+iBsg0KK+m7g+engOeOsg0KK+m7g+engOWuuQ0KK+m7g+engOiPrw0KK+m7g+engOiTiQ0KK+m7g+iCsuS/oQ0KK+m7g+iJrw0KK+m7g+mCpuW9pQ0KK+m7g+S+neaWhw0KK+m7g+S9s+WFgw0KK+m7g+S9s+aYpQ0KK+m7g+S9s+Wqmw0KK+m7g+S9s+iPrw0KK+m7g+S9s+Wruw0KK+m7g+S9s+iVmQ0KK+m7g+S9qeS/kA0KK+m7g+S9qeiQsQ0KK+m7g+WNk+WQmw0KK+m7g+WdpOW+tw0KK+m7g+Wtn+WwiA0KK+m7g+Wtn+aotQ0KK+m7g+Wul+Wfug0KK+m7g+Wul+izog0KK+m7g+WunOeOsg0KK+m7g+Wum+iyng0KK+m7g+W5uOWEgA0KK+m7g+W/teiKuQ0KK+m7g+aAoeWQmw0KK+m7g+aAoeePig0KK+m7g+aAoeiMuQ0KK+m7g+aAoeiQjQ0KK+m7g+aAoeiPgQ0KK+m7g+aAoembrw0KK+m7g+aAoeWYiQ0KK+m7g+aAoee2rQ0KK+m7g+aAoem9oQ0KK+m7g+aJv+W+tw0KK+m7g+aYjOm8jg0KK+m7g+aYjuW/lw0KK+m7g+aYjuW9pQ0KK+m7g+aYjueQhg0KK+m7g+aYjueRng0KK+m7g+aYjuaFpw0KK+m7g+aYleW1kA0KK+m7g+adsea1tw0KK+m7g+advuetoA0KK+m7g+aso+aAoQ0KK+m7g+aso+aEiQ0KK+m7g+aso+iVmQ0KK+m7g+ays+mghg0KK+m7g+ayu+W5sw0KK+m7g+eOn+eRvg0KK+m7g+eniemIng0KK+m7g+iKneiPrw0KK+m7g+iKt+mbsg0KK+m7g+mHkea5rw0KK+m7g+mHkeaouQ0KK+m7g+mVt+a+pA0KK+m7g+S6reiQjQ0KK+m7g+S6ruWHsQ0KK+m7g+S/oeaWhw0KK+m7g+S/oeaNtw0KK+m7g+S/oeajoA0KK+m7g+S/oeaEtw0KK+m7g+S/oeW9sA0KK+m7g+S/oemKmA0KK+m7g+S/oeepjg0KK+m7g+S/oeaWjA0KK+m7g+S/neeSgQ0KK+m7g+S/iueUnw0KK+m7g+S/iuWTsg0KK+m7g+S/iua3hw0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWCkQ0KK+m7g+S/iuWHsQ0KK+m7g+S/iuajiw0KK+m7g+S/iuiInA0KK+m7g+S/iumahg0KK+m7g+S/iuelug0KK+m7g+S/iuWYiQ0KK+m7g+S/iue2rQ0KK+m7g+S/iuixqg0KK+m7g+S/iuizog0KK+m7g+S/iuepjg0KK+m7g+S/ium+jQ0KK+m7g+S/iueHgQ0KK+m7g+S/nuaWkA0KK+m7g+WGoOaAoQ0KK+m7g+WGoOeoiw0KK+m7g+WGoOmbhQ0KK+m7g+WGoOizkw0KK+m7g+WGoOm+jQ0KK+m7g+WLh+aFpw0KK+m7g+WOmuebmw0KK+m7g+WTgeWCkQ0KK+m7g+WTgeavhQ0KK+m7g+WlleaPhg0KK+m7g+Wllemclg0KK+m7g+Wnv+Wptw0KK+m7g+Wnv+e2vg0KK+m7g+WogeWHsQ0KK+m7g+WogemKmA0KK+m7g+Wuo+WHsQ0KK+m7g+Wuo+ephg0KK+m7g+W7uuS4rQ0KK+m7g+W7uuaWhw0KK+m7g+W7uumdkg0KK+m7g+W7uuWHsQ0KK+m7g+W7uuaZug0KK+m7g+W7uueoiw0KK+m7g+W7uumIng0KK+m7g+W7uua6kA0KK+m7g+W7uuW9sA0KK+m7g+W7uuixqg0KK+m7g+W7uumKmA0KK+m7g+W7uuWLsw0KK+m7g+W7uuepjg0KK+m7g+W7uum+jQ0KK+m7g+W9peWkqg0KK+m7g+W9peW8tw0KK+m7g+W9peWNmg0KK+m7g+W9peeakw0KK+m7g+W9peeRnA0KK+m7g+W9peizkw0KK+m7g+W9peaotQ0KK+m7g+W9peaWjA0KK+m7g+aAneWHsQ0KK+m7g+aAneWYiQ0KK+m7g+aAneizog0KK+m7g+aAneeRiw0KK+m7g+aUv+WOnw0KK+m7g+aUv+aPmg0KK+m7g+aUv+m+jQ0KK+m7g+aYpeWgpA0KK+m7g+aYreS7gQ0KK+m7g+aYreaZug0KK+m7g+aYree2rQ0KK+m7g+aYoOeRhA0KK+m7g+aYseS4rQ0KK+m7g+aYseaEtw0KK+m7g+aYsem+jQ0KK+m7g+afj+WFgw0KK+m7g+afj+W8tw0KK+m7g+afj+WWrA0KK+m7g+afj+e/lA0KK+m7g+afj+eRng0KK+m7g+afj+e2ug0KK+m7g+afj+eSiw0KK+m7g+afj+e/sA0KK+m7g+afj+emsg0KK+m7g+eCuuajnw0KK+m7g+eCs+aGsg0KK+m7g+ePiuiQjQ0KK+m7g+ePgOmQmA0KK+m7g+ebiOaDoA0KK+m7g+ebiOW9sA0KK+m7g+ebuOW/lw0KK+m7g+eni+iKsw0KK+m7g+eni+iQjQ0KK+m7g+eni+eRmw0KK+m7g+eni+mcng0KK+m7g+e+jueOiQ0KK+m7g+e+jueOsg0KK+m7g+e+juWonw0KK+m7g+e+jue+mg0KK+m7g+e+juetkQ0KK+m7g+e+jumbrw0KK+m7g+e+juiTiQ0KK+m7g+e+jueHlQ0KK+m7g+iHtOaBhg0KK+m7g+iHtOmBoA0KK+m7g+iLpeiWhw0KK+m7g+iMgua6kA0KK+m7g+iLseW9pQ0KK+m7g+iLseWCkQ0KK+m7g+iLsemKmA0KK+m7g+ihjeasvQ0KK+m7g+iynuepjg0KK+m7g+mDgeS7gQ0KK+m7g+mDgeeOqw0KK+m7g+mDgeePig0KK+m7g+mDgeiMlw0KK+m7g+mDgeWptw0KK+m7g+mDgeajoA0KK+m7g+mDgembrw0KK+m7g+mDgemdnA0KK+m7g+mHjeWHsQ0KK+m7g+mfi+eQqg0KK+m7g+mfi+WLsw0KK+m7g+mmmeamlQ0KK+m7g+WAieW9pQ0KK+m7g+WTsualkw0KK+m7g+Wtq+Wuhw0KK+m7g+WutuePjQ0KK+m7g+Wutumahg0KK+m7g+Wutue3rw0KK+m7g+Wzu+W0og0KK+m7g+W6remIug0KK+m7g+aMr+eUqw0KK+m7g+aMr+W6rQ0KK+m7g+aMr+iqoA0KK+m7g+aMr+eRsg0KK+m7g+abuOWvhQ0KK+m7g+abuOmIug0KK+m7g+azsOW0kQ0KK+m7g+azsOmclg0KK+m7g+a1qeWkqQ0KK+m7g+a1qemIng0KK+m7g+ePruiKuA0KK+m7g+ePruWonw0KK+m7g+ePruiIkg0KK+m7g+ePrueRnA0KK+m7g+ebiuW7ug0KK+m7g+elluizog0KK+m7g+e0oOecnw0KK+m7g+e0lOe+jg0KK+m7g+iDveixkA0KK+m7g+mHl+S/ig0KK+m7g+WBieWumQ0KK+m7g+WBieS/rg0KK+m7g+WBieWzsA0KK+m7g+WBieWCkQ0KK+m7g+WBieiqoA0KK+m7g+WBiemKmA0KK+m7g+WBpeWlhw0KK+m7g+WBpeaZjw0KK+m7g+WBpea6og0KK+m7g+WHsOaFiA0KK+m7g+Wci+WFqA0KK+m7g+Wci+iKsw0KK+m7g+Wci+WAqw0KK+m7g+Wci+WxlQ0KK+m7g+Wci+aZiQ0KK+m7g+Wci+i7kg0KK+m7g+Wci+ajnw0KK+m7g+Wci+mIng0KK+m7g+Wci+ijlQ0KK+m7g+Wci+amrg0KK+m7g+Wci+ixqg0KK+m7g+Wci+mQmA0KK+m7g+Wggui7kg0KK+m7g+WfueWzuw0KK+m7g+WfuemKmA0KK+m7g+Wpieiyng0KK+m7g+WpieiPgQ0KK+m7g+Wwiee/lA0KK+m7g+W0h+iokw0KK+m7g+W0h+mKmA0KK+m7g+W4uOaouQ0KK+m7g+W9qemKmA0KK+m7g+aDn+iBlg0KK+m7g+WVn+Wujw0KK+m7g+WVn+S/rg0KK+m7g+WVn+abuA0KK+m7g+WVn+W9sA0KK+m7g+aVjw0KK+m7g+aVj+S/rg0KK+m7g+aVj+iPrw0KK+m7g+aVj+aFpw0KK+m7g+aiheeOsg0KK+m7g+a3u+iZjg0KK+m7g+a4heazsA0KK+m7g+a4hem6nw0KK+m7g+a3keWykQ0KK+m7g+a3keiKrA0KK+m7g+a3keeOsg0KK+m7g+a3keiyng0KK+m7g+a3keWNvw0KK+m7g+a3keahgw0KK+m7g+a3keaihQ0KK+m7g+a3keWqmw0KK+m7g+a3keeQqg0KK+m7g+a3keiPrw0KK+m7g+a3kembrw0KK+m7g+a3keeUhA0KK+m7g+a3kemdnA0KK+m7g+a3teizog0KK+m7g+eajg0KK+m7g+elpeaBqQ0KK+m7g+elpeaWjA0KK+m7g+e0ueiQsQ0KK+m7g+iOiQ0KK+m7g+iOieWonw0KK+m7g+iOieeQqg0KK+m7g+iOieWYiQ0KK+m7g+mAlOW3lg0KK+m7g+mbqumzsw0KK+m7g+WCkeaWhw0KK+m7g+WHseWogQ0KK+m7g+WHseeQqg0KK+m7g+WHsem6nw0KK+m7g+WLneW/lw0KK+m7g+WLneijlQ0KK+m7g+WNmuazsA0KK+m7g+WWnOm6nw0KK+m7g+Wgr+WBiQ0KK+m7g+Wpt+Wptw0KK+m7g+WvjA0KK+m7g+WvjOipsw0KK+m7g+W+qeiBsA0KK+m7g+aDoOWQmw0KK+m7g+aDoOiKrA0KK+m7g+aDoOePjQ0KK+m7g+aDoOWopQ0KK+m7g+aDoOaVjw0KK+m7g+aDoOeQtA0KK+m7g+aDoOWLpA0KK+m7g+aDoOipqQ0KK+m7g+aDoOmcng0KK+m7g+aPmuWQjQ0KK+m7g+aWr+mnvw0KK+m7g+aZr+ijlQ0KK+m7g+aZuuWLhw0KK+m7g+aZuuWBiQ0KK+m7g+aZuuW6tw0KK+m7g+aZuumahg0KK+m7g+aZuumKmA0KK+m7g+aZuueRiw0KK+m7g+acneeQtA0KK+m7g+acneaokQ0KK+m7g+akjeaHiw0KK+m7g+a5mOW3pw0KK+m7g+a5mOWptw0KK+m7g+a4neiKsw0KK+m7g+eQquWptw0KK+m7g+eQs+mIng0KK+m7g+eQpuajuw0KK+m7g+eZu+mNtQ0KK+m7g+ero+WNlw0KK+m7g+etkemIug0KK+m7g+WWhOaaiQ0KK+m7g+iIkuW9pQ0KK+m7g+iInOW/oA0KK+m7g+iPgeiWhw0KK+m7g+iPiuiLsQ0KK+m7g+ipoOeRng0KK+m7g+iytOWggg0KK+m7g+mAuA0KK+m7g+mAuOe0lA0KK+m7g+mAuOeRiw0KK+m7g+mInuaygQ0KK+m7g+mWlOi+sg0KK+m7g+mbheWQmw0KK+m7g+mbheiKsw0KK+m7g+mbhea0pQ0KK+m7g+mbheeOsg0KK+m7g+mbheWNvw0KK+m7g+mbhea3kQ0KK+m7g+mbhembqg0KK+m7g+mbheaDoA0KK+m7g+mbheeQqg0KK+m7g+mbheeQtA0KK+m7g+mbheiQjQ0KK+m7g+mbhembrw0KK+m7g+mbheiQsQ0KK+m7g+mbhemItA0KK+m7g+mbheaFpw0KK+m7g+mbhem9oQ0KK+m7g+mbr+eOiQ0KK+m7g+mbr+etoA0KK+m7g+mghuWQiQ0KK+m7g+WCs+WcjQ0KK+m7g+W7ieaZug0KK+m7g+aEj+iMuQ0KK+m7g+aEj+i2hQ0KK+m7g+aFiOWrug0KK+m7g+aVrOWFgw0KK+m7g+aVrOaWjA0KK+m7g+aaieaWhw0KK+m7g+alt+elug0KK+m7g+amhuWptw0KK+m7g+avk+e/jg0KK+m7g+avk+iPrw0KK+m7g+a6kOeSiw0KK+m7g+eFp+WHsQ0KK+m7g+eFpumbsA0KK+m7g+eRn+iKuA0KK+m7g+eRnuS8tg0KK+m7g+eRnuWxjw0KK+m7g+eRnuelpQ0KK+m7g+eRnumZvQ0KK+m7g+eRnuiIiA0KK+m7g+eRnOa3kQ0KK+m7g+ebn+WHsQ0KK+m7g+eluuiKrA0KK+m7g+etoOecnw0KK+m7g+e+qeWQmw0KK+m7g+e+qemKmA0KK+m7g+e+pOmbhA0KK+m7g+iBluWcsw0KK+m7g+iBluWTsg0KK+m7g+iBluWCkQ0KK+m7g+iBluajuw0KK+m7g+iBlum0uw0KK+m7g+ijleS4rQ0KK+m7g+ijleWunA0KK+m7g+ijleebmw0KK+m7g+ijlee/lA0KK+m7g+ijleaYtg0KK+m7g+ipqeiKuA0KK+m7g+ipqeiMuQ0KK+m7g+ipqea2tQ0KK+m7g+ipqeaDoA0KK+m7g+ipqembrw0KK+m7g+ipqeiYiw0KK+m7g+mBk+WFqA0KK+m7g+mItOeQqg0KK+m7g+mbi+eQpg0KK+m7g+mdluiKuA0KK+m7g+mdluaDoA0KK+m7g+mdlumbrw0KK+m7g+m8juiDvQ0KK+m7g+WYieawkQ0KK+m7g+WYieWLhw0KK+m7g+WYieWAqw0KK+m7g+WYiembqg0KK+m7g+WYieiQsQ0KK+m7g+WYieizog0KK+m7g+amruWxsQ0KK+m7g+amrumghg0KK+m7g+a8ouWFiQ0KK+m7g+a8oui8nQ0KK+m7g+edv+S8uA0KK+m7g+eip+mbsg0KK+m7g+emjuaFtg0KK+m7g+e2rQ0KK+m7g+e2reaZug0KK+m7g+iCh+Wujw0KK+m7g+mBoOWujw0KK+m7g+mKmOWBiQ0KK+m7g+mKmOi8nQ0KK+m7g+mtgeW9rA0KK+m7g+WEgOWQmw0KK+m7g+W+t+engA0KK+m7g+W+t+eFkg0KK+m7g+aFtuiPrw0KK+m7g+aFp+eOiQ0KK+m7g+aFp+iKrA0KK+m7g+aFp+Wonw0KK+m7g+aFp+iMuQ0KK+m7g+aFp+iPgQ0KK+m7g+aFp+emjg0KK+m7g+a+hOWBiQ0KK+m7g+iUmuS7gQ0KK+m7g+izoueroA0KK+m7g+mch+Wuhw0KK+m7g+aGsuW+lw0KK+m7g+aGtuiPgQ0KK+m7g+abieS9qQ0KK+m7g+abiemfsw0KK+m7g+abieiPsQ0KK+m7g+abieiWhw0KK+m7g+eHleWopQ0KK+m7g+iIiOWFgw0KK+m7g+iVmeiQjQ0KK+m7g+mMmuaaiQ0KK+m7g+mMpueroA0KK+m7g+mdnOWtkA0KK+m7g+mdnOWunA0KK+m7g+mdnOaAoQ0KK+m7g+mdnOiOiQ0KK+m7g+m+jeS4gA0KK+m7g+aHieeSvw0KK+m7g+iBsOeQqg0KK+m7g+iWh+eTig0KK+m7g+mnv+mBlA0KK+m7g+m0u+aZug0KK+m7g+emruS8uA0KK+m7g+iWsOeRqQ0KK+m7g+mbmeeOiQ0KK+m7g+aHt+aFtg0KK+m7g+eAmuW+tw0KK+m7g+eTiuWmgw0KK+m7g+eTiuiPrw0KK+m7g+eTiuWEgA0KK+m7g+eTiuWEgA0KK+m7g+eTiuaFpw0KK+m7g+eTiuaFpw0KK+m7g+eTiuiqvA0KK+m7g+eTiuWrug0KK+m7g+mPoeeUnw0KK+m7g+mfu+Wmgg0KK+m7g+mfu+mfuw0KK+m7g+m1rOWclg0KK+m7g+m6l+Wmgw0KK+m7g+m6l+iKrA0KK+m7g+m6l+mmmQ0KK+m7g+m6l+WuuQ0KK+m7g+m6l+iTiQ0KK+m7g+m6l+mMmg0KK+m7g+WvtueOiQ0KK+m7g+WvtuWEgA0KK+m7g+WvtueouQ0KK+m7g+eNu+irhA0KK+m7g+e5vOWing0KK+m7g+iAgOaWhw0KK+m7g+iAgOS/ig0KK+m7g+iAgOW+tw0KK+m7g+iAgOeRqQ0KK+m7g+iAgOi8nQ0KK+m7g+itsOW+tw0KK+m7g+mQmOiRpg0KK+m7g+mmqOaAoQ0KK+m7g+mmqOWEgA0KK+m7g+mmqOaFpw0KK+m7g+mmqOavhQ0KK+m7g+mmqOmciA0KK+m7g+m9oeiQsQ0KK+m7g+iYreeOiQ0KK+m7g+mQteixqg0KK+m7g+mhr+Wptw0KK+m7g+iJt+eOiQ0KK+m7g+eOoOaZnw0KK+m7g+WnteeRhA0KK+m7g+aYtuaWjA0KK+m7g+WLlui7kg0KK+m7g+eQh+iLkw0KK+m7g+e/iuWuuA0KK+m7g+ajluWQiQ0KK+m7g+eQruWvjA0KK+m7g+eQrOWQmw0KK+m7g+eQrOWptw0KK+m7g+eQrOmbrw0KK+m7g+eQrOeRgg0KK+m7g+iPgOmItA0KK+m7g+aakOedvw0KK+m7g+eRi+asow0KK+m7g+eRi+Wvpw0KK+m7g+etseiKuA0KK+m7g+etseWWrA0KK+m7g+etsembgQ0KK+m7g+etseiYiw0KK+m7g+mIuuWonw0KK+m7g+mIuuWptw0KK+m7g+mIuuWptw0KK+m7g+mIuuaWkA0KK+m7g+mIuumbrw0KK+m7g+mJpumWlA0KK+m7g+eejQ0KK+m7g+iWj+a+hA0KK+m7g+isteiqqg0KK+m7g+m9oA0KK+Whl+W3p+aGtg0KK+Whl+aZgumbqA0KK+Whl+WqhOmbsg0KK+alig0KK+aliuS6uuepjg0KK+aliuS4ieizog0KK+aliuWNg+mHjA0KK+aliuWNg+aFpw0KK+aliuWjq+W8mA0KK+aliuWjq+aciw0KK+aliuWjq+avhQ0KK+aliuWjq+izog0KK+aliuWkp+avhQ0KK+aliuWtkOaBhg0KK+aliuWtkOavhQ0KK+aliuWtkOeRog0KK+aliuWwj+aFpw0KK+aliuS4reWtmg0KK+aliuS5i+aFpw0KK+aliuS7geiPrw0KK+aliuS7i+aWhw0KK+aliuWFgeS4rQ0KK+aliuW/g+aAoQ0KK+aliuW/g+W+tw0KK+aliuaWh+Wujw0KK+aliuaWh+adsA0KK+aliuaWh+Wqmw0KK+aliuaWh+eRng0KK+aliuaWh+WEgA0KK+aliuaWh+eRiw0KK+aliuS4luW5sw0KK+aliuS4luWHsQ0KK+aliuS4lum1rA0KK+aliuS7lemmqA0KK+aliuWPr+athg0KK+aliuW8mOWFiA0KK+aliuacrOiBlg0KK+aliuato+W9rA0KK+aliuawuOatow0KK+aliuawuOeQpg0KK+aliueOieWQmw0KK+aliueOiem8jg0KK+aliueZvemvqA0KK+aliueri+e+pA0KK+aliuS7suawkQ0KK+aliuWFhuasvQ0KK+aliuWmg+Wptw0KK+aliuWuiOWfjg0KK+aliuaXqOelpQ0KK+aliuiHqumbhA0KK+aliuS8tuaFpw0KK+aliuWmmeaBqQ0KK+aliuWuj+elpQ0KK+aliuW/l+W5sw0KK+aliuW/l+iDvQ0KK+aliuW/l+WBiQ0KK+aliuW/l+elpQ0KK+aliuW/l+mbjQ0KK+aliuW/l+WtuA0KK+aliuaym+iSlA0KK+aliuengOePoA0KK+aliuengOaFpw0KK+aliuiCsuecnw0KK+aliuiCsuWEkg0KK+aliuS6nueQpg0KK+aliuS9s+asow0KK+aliuS9s+WxlQ0KK+aliuS9s+iPgQ0KK+aliuS9s+aSsA0KK+aliuS9s+ieog0KK+aliuS9qeePig0KK+aliuS9qeWEkg0KK+aliuWFtueAmg0KK+aliuWdpOiLsQ0KK+aliuWlh+aDoA0KK+aliuWtn+S/rg0KK+aliuWtn+iTiQ0KK+aliuWtn+e/sA0KK+aliuWulw0KK+aliuWul+WAjQ0KK+aliuWul+Wgrw0KK+aliuWul+WEkg0KK+aliuWul+epjg0KK+aliuWul+e/sA0KK+aliuWul+eDnA0KK+aliuWunOaWhw0KK+aliuWunOeSiw0KK+aliuWunOiTgQ0KK+aliuWwmuiokw0KK+aliuWwmuiejQ0KK+aliuWyseWEkg0KK+aliuW/oOS7gQ0KK+aliuW/oOaGsg0KK+aliuaAoeiKsw0KK+aliuaAoeiQjQ0KK+aliuaJvw0KK+aliuaJv+eGuQ0KK+aliuaYk+WAqw0KK+aliuaYjOizkw0KK+aliuaYhumclg0KK+aliuaYjuadsA0KK+aliuaYjue0lA0KK+aliuaYjuiqoA0KK+aliuaYjuWvsA0KK+aliuaYjuempw0KK+aliuaYh+aoug0KK+aliuadseaVjw0KK+aliuadvumKmA0KK+aliuaso+aAoQ0KK+aliuaso+ePrg0KK+aliuaso+eHlQ0KK+aliuazk+ikmA0KK+aliueniemghg0KK+aliuiKs+mbhA0KK+aliuiKuA0KK+aliumHkeeSiw0KK+aliumVt+a9lA0KK+aliumdkuWzsA0KK+aliuS/iuWujw0KK+aliuS/iui8nQ0KK+aliuWlleaYtg0KK+aliuW7uuW9pQ0KK+aliuaAnembiw0KK+aliuaUv+W9rA0KK+aliuaUv+WLsw0KK+aliuaUv+mclg0KK+aliuaYrei8nQ0KK+aliueCuuiInA0KK+aliueni+eUtw0KK+aliue0gOiKuA0KK+aliue+jueOsg0KK+aliue+juaDoA0KK+aliue+juiXnQ0KK+aliuiLkeWIqQ0KK+aliuWAqQ0KK+aliuWTsuWuiQ0KK+aliuWTsumKmA0KK+aliuWutuaYjg0KK+aliuWutuelug0KK+aliuWutumKmA0KK+aliuWutueRiw0KK+aliuaBreaymw0KK+aliuaMr+Wulw0KK+aliuaMr+a8og0KK+aliuaZj+iPgQ0KK+aliuabuOixqg0KK+aliua2k+aruw0KK+aliuePruWQmw0KK+aliuePrueQpg0KK+aliuecn+ePoA0KK+aliue0oOWNvw0KK+aliuiNkOe/lA0KK+aliuiZlOmbhQ0KK+aliuWBieaWhw0KK+aliuWBieeQqg0KK+aliuWBpeWciw0KK+aliuWci+advg0KK+aliuWci+m8jg0KK+aliuWfueaBqQ0KK+aliuWpieiOiQ0KK+aliuW0h+mRqw0KK+aliuaDn+eZvQ0KK+aliuWVn+Wujw0KK+aliuaVj+iKsw0KK+aliuaiteWtmw0KK+aliua3s+ehrw0KK+aliua4heahgw0KK+aliua3keWFgw0KK+aliua3keS9sw0KK+aliua3keiKrA0KK+aliua3kee+jg0KK+aliua3keaVjw0KK+aliua3keaDoA0KK+aliua3keiQjQ0KK+aliua3kembhQ0KK+aliua3keaFpw0KK+aliua3teWLnQ0KK+aliua3qOiKnQ0KK+aliuebm+aWjA0KK+aliuiOieiKsw0KK+aliumbqumbhQ0KK+aliuWHseS7sg0KK+aliuWHseWCkQ0KK+aliuWHsemIng0KK+aliuWLneWuhw0KK+aliuWLneaWkA0KK+aliuWLm+WHsQ0KK+aliuWNmuWuhw0KK+aliuWNmuasvQ0KK+aliuWWu+mWlA0KK+aliuWjueiIkg0KK+aliuWpt+mIng0KK+aliuWvjOWuiQ0KK+aliuWvjOeQmw0KK+aliuW+quWptw0KK+aliuaDoOWuhw0KK+aliuaDoOecnw0KK+aliuaDoOWptw0KK+aliuaDoOeQsw0KK+aliuaDoOmbrw0KK+aliuaVpuWCkQ0KK+aliuaWr+WHsQ0KK+aliuaZr+WFgw0KK+aliuaZr+Wgrw0KK+aliuaZr+mbrw0KK+aliuaZuuWFgw0KK+aliuaZuuWujw0KK+aliuaZuuWCkQ0KK+aliuaZuuWgrw0KK+aliuaZuuWWhA0KK+aliuaZuumIng0KK+aliuaZuum+jQ0KK+aliuacneaVjw0KK+aliuacneiInA0KK+aliuajrueZvA0KK+aliua5p+iplQ0KK+aliueZu+WuiQ0KK+aliueak+eRiw0KK+aliuetluiIqg0KK+aliuWWhOaDoA0KK+aliuiIkuW4hg0KK+aliuiIkuWqmw0KK+aliuiIkumbrw0KK+aliuiInOasvQ0KK+aliuiPgeiKrA0KK+aliuiPsembhQ0KK+aliuipoOiPmA0KK+aliuiytOWqmw0KK+aliumAuOiOiQ0KK+aliumInueZvg0KK+aliumWlOe/lA0KK+aliumbheeOiQ0KK+aliumbheiKsw0KK+aliumbheWAqw0KK+aliumbhea3kQ0KK+aliumbheWptw0KK+aliumbheWptw0KK+aliumbheW1kA0KK+aliumbheaDoA0KK+aliumbheaZtg0KK+aliumbhee/lA0KK+aliumbhei2hQ0KK+aliumbhembrw0KK+aliumbhembsg0KK+aliumbheiMnA0KK+aliumbr+aDoA0KK+aliumbsue/lA0KK+aliumghuajiw0KK+aliuaFiOWEgA0KK+aliuavk+eOsg0KK+aliueFpeeroA0KK+aliueRnuWCkQ0KK+aliuiQrOW4hg0KK+aliuijlQ0KK+aliuipqei7kg0KK+aliumBk+W/oA0KK+aliuWYieeOsg0KK+aliuWYieeRnA0KK+aliuWYieixkA0KK+aliuamruWQiQ0KK+aliuankOmnkg0KK+aliueip+mbrw0KK+aliue2reiPrw0KK+aliui2memKmA0KK+aliumKmOmhpw0KK+aliuW+t+W/lw0KK+aliuaFtumahg0KK+aliuaFp+eOsg0KK+aliuaFp+eTig0KK+aliueSiw0KK+aliumch+WBiQ0KK+aliuaGsuaYhw0KK+aliuabiemdkg0KK+aliuabieiPgQ0KK+aliuapi+mclg0KK+aliueHlembsg0KK+aliuiVmeiKsw0KK+aliuiVmeWYiQ0KK+aliumMq+aGsg0KK+aliumdnOWmgg0KK+aliumdnOaAoQ0KK+aliumdnOmbrw0KK+aliuaItOW3ng0KK+aliueItemnvw0KK+aliumnv+awkQ0KK+aliuabnOa6lg0KK+aliuekjumBoA0KK+aliue5oee2vg0KK+aliuixkOWFqA0KK+aliuixkOmKmA0KK+aliumOrumBoA0KK+aliummpeiqoA0KK+aliueTiuiPrw0KK+alium6l+WGoA0KK+alium6l+eQtA0KK+aliuabpueQsw0KK+aliumQmOmJiQ0KK+aliumdiOiLkw0KK+aliuiMnOWNiQ0KK+aliueQh+Wmgg0KK+aliueQh+Wqmw0KK+aliue/iuePrg0KK+aliueQrOWptw0KK+aliueRi+eQpg0KK+aliuiTgeiTgQ0KK+aliumOp+S8ig0KK+a6q+S4iOe3rw0KK+a6q+W/g+W1kA0KK+a6q+ato+m+jQ0KK+a6q+iHs+S7uw0KK+a6q+engOaAoQ0KK+a6q+Wulw0KK+a6q+aJv+e/sA0KK+a6q+mHkeeRng0KK+a6q+W7uuiBsg0KK+a6q+iLpeWptw0KK+a6q+WxleiPrw0KK+a6q+e0oOaihQ0KK+a6q+Wfuemdkg0KK+a6q+a3keaAoQ0KK+a6q+WHsQ0KK+a6q+aZuumAow0KK+a6q+mbhea4hQ0KK+a6q+iBluW7tg0KK+a6q+mKmOWTsg0KK+a6q+abieiPrw0KK+a6q+mmpemBoA0KK+a6q+iPmOa4nQ0KK+iQrOS9s+aYlQ0KK+iQrOW7uuaYjg0KK+iQrOaVj+WpiQ0KK+iQrOabieaYjg0KK+iRieS4gea6kA0KK+iRieS5g+emjg0KK+iRieS6uuizkw0KK+iRieWPiOWYiQ0KK+iRieWNg+iPig0KK+iRieWjq+aWsA0KK+iRieWkp+iRpg0KK+iRieWtkOixqg0KK+iRieWxseiPrw0KK+iRieWkqeWwhw0KK+iRieaWh+WBiQ0KK+iRieaWh+m+jQ0KK+iRieS4luawkQ0KK+iRieS7o+asig0KK+iRieato+iBlg0KK+iRieeOieeOsg0KK+iRieS6puebmw0KK+iRieWFieaEiQ0KK+iRieWQkemZvQ0KK+iRieWmgumbrw0KK+iRieerueiCsg0KK+iRieS9kOmnvw0KK+iRieWuj+WCkQ0KK+iRieW/l+W9pQ0KK+iRieW/l+WNmg0KK+iRieatpeaXuw0KK+iRieengOaihQ0KK+iRieiCsuWzsA0KK+iRieS+nemdkg0KK+iRieS9s+asow0KK+iRieS9s+iPgQ0KK+iRieS9s+WLsw0KK+iRieS9qeecnw0KK+iRieWlieadsA0KK+iRieWtn+Wgrw0KK+iRieWul+aZug0KK+iRieWul+mRqw0KK+iRieWum+i7kg0KK+iRieW/oOasow0KK+iRieaAoeWQmw0KK+iRieaAoeiKsw0KK+iRieaJv+azkw0KK+iRieaYjOWAqw0KK+iRieaYjuaYhw0KK+iRieaYjuaXiw0KK+iRieaYjumRqw0KK+iRieadvueCqw0KK+iRieaso+avkw0KK+iRieeOn+WQmw0KK+iRieiKs+S8tg0KK+iRieiKs+iQjQ0KK+iRieiKt+WmmA0KK+iRiemVt+mdkg0KK+iRieS6reW/lw0KK+iRieS/oeW7tw0KK+iRieS/iuWujw0KK+iRieS/iueUqw0KK+iRieS/iuaFtg0KK+iRieS/nuadiQ0KK+iRieWGoOaFpw0KK+iRieWllee2rQ0KK+iRieWnv+Wmjw0KK+iRieW7uuWQmw0KK+iRieW7uuaYhw0KK+iRieW9peW/lw0KK+iRieaAneWEgA0KK+iRieaUv+i8nQ0KK+iRieaYreS8tg0KK+iRieaYseW/lw0KK+iRieafj+e2sQ0KK+iRieeOsuWykQ0KK+iRieeni+aciA0KK+iRiee+juWonw0KK+iRieiHtOW/oA0KK+iRieihjeWtnA0KK+iRiemDgeiPgQ0KK+iRieWAqQ0KK+iRieWTsuWFqA0KK+iRieWutuWuhw0KK+iRieWutumItA0KK+iRieWutuWEkg0KK+iRieWzu+izkw0KK+iRieaMr+emjw0KK+iRieaZieWYiQ0KK+iRieabuOeRiw0KK+iRiea2k+a2kw0KK+iRieebiuaYhw0KK+iRiee0oOe2vg0KK+iRieiAv+m9ig0KK+iRieWBpeWBiQ0KK+iRieWci+izog0KK+iRieW8teW7ug0KK+iRieassuaBkg0KK+iRiea3keePjQ0KK+iRiea3kemItA0KK+iRiee0ueS7uw0KK+iRieWLneeOhA0KK+iRieaDoOaWhw0KK+iRieaDoOemjg0KK+iRieaZuuS7gQ0KK+iRieajrua4nQ0KK+iRieipoOaZtA0KK+iRiembgeeUhA0KK+iRiembheWptw0KK+iRiembhembrw0KK+iRiembsum1rA0KK+iRieavk+WzsA0KK+iRiee+qeadvg0KK+iRiemItOePig0KK+iRieWYieiPrw0KK+iRieedv+WTsg0KK+iRiemKmOaYjA0KK+iRieWEgOiKsw0KK+iRieaFp+asow0KK+iRiea9lOaBqQ0KK+iRieabieiKrA0KK+iRieaouemWiw0KK+iRieiVmeiKsw0KK+iRiemMpumzsw0KK+iRieabmeaFtg0KK+iRiemnv+mAuA0KK+iRieemrue2rQ0KK+iRieeTiuaWhw0KK+iRieWvtuWjrA0KK+iRiemosOmBoA0KK+iRiemppQ0KK+iRieeOtOixqg0KK+iRieeQpOaAoQ0KK+iRieaHjOmmqA0KK+iRm+S4luiQsQ0KK+iRm+WAqeWmgg0KK+iRo+S6uuWujw0KK+iRo+WtkOmdkg0KK+iRo+W3p+eOsg0KK+iRo+WQiOaBqQ0KK+iRo+W/l+S7gQ0KK+iRo+S9s+ixqg0KK+iRo+aAoeWQmw0KK+iRo+iKs+mKmA0KK+iRo+Wnv+WIqQ0KK+iRo+W9peWujw0KK+iRo+eni+eRvg0KK+iRo+S/rumKmA0KK+iRo+aMr+mbhA0KK+iRo+iDveeRng0KK+iRo+aDoOiKsw0KK+iRo+iBlue3ow0KK+iRo+aFp+e+jg0KK+iRo+m0u+aloA0KK+iRo+W2ouazkw0KK+ijmOWFg+aEtw0KK+ino+e+jumItA0KK+ipueS6juiKsw0KK+ipueWtkOawkQ0KK+ipueS7geWYiQ0KK+ipueaWh+elpQ0KK+ipueS4luWCkQ0KK+ipueawuOelpQ0KK+ipueeri+aIkA0KK+ipueWmgumIkA0KK+ipueWuj+W9rA0KK+ipueW/l+m0uw0KK+ipueiCsumbrw0KK+ipueS9s+aMrw0KK+ipueS9s+iIiA0KK+ipueS9qeepjg0KK+ipueWtn+aZgw0KK+ipueWul+aGsg0KK+ipueWunOe0iw0KK+ipueW/oOamrg0KK+ipueaYjOWQiQ0KK+ipueaYjua9lA0KK+ipueaso+WunA0KK+ipuemdkuiJtw0KK+ipueWJjeazsA0KK+ipueaUv+WzsA0KK+ipuee+juePjQ0KK+ipueWNv+iLuQ0KK+ipueWutumKkw0KK+ipuea1muaYhw0KK+ipueebiuWBiQ0KK+ipueebiumKmA0KK+ipueiMl+iKuA0KK+ipueWpieWQmw0KK+ipueWVn+e3rw0KK+ipuea3keWmgw0KK+ipuea3keiQjQ0KK+ipuea3keiKqQ0KK+ipueWHseaNtw0KK+ipueWLneasvQ0KK+ipueWvjOaZug0KK+ipueaDoOWqmw0KK+ipueaZr+Wgrw0KK+ipueaZuuWCkQ0KK+ipueajrg0KK+ipuee/lOS7uw0KK+ipueiovOWvjA0KK+ipuemInue2rQ0KK+ipuembheWptw0KK+ipuembhemWlA0KK+ipuembr+eRqQ0KK+ipuee+pOavhQ0KK+ipueWYieeSvw0KK+ipueW+t+mmqA0KK+ipueWLs+aYjg0KK+ipueepjuiQjQ0KK+ipueeSqOW2uA0KK+ipueixkOWuhw0KK+ipuem1keW5tA0KK+ipueeOk+eRiw0KK+ipueeQrOa4nQ0KK+izh+WQm+WEgA0KK+iziOayu+Wciw0KK+iziOaEm+eOqw0KK+iziOmrkOaGmw0KK+mEkuS4gOS7sg0KK+mEkuaWh+mahg0KK+mEkueri+W9pQ0KK+mEkuadjuaYjA0KK+mEkuS9s+iPrw0KK+mEkuWul+iPrw0KK+mEkuaYjuWOnw0KK+mEkumHkeW+tw0KK+mEkuWci+m+jQ0KK+mEkuaZuuS7gQ0KK+mEkuaWsOWFqA0KK+mEkue2reWJmw0KK+mEkumdnOePrg0KK+mbjeaVpuWFgw0KK+mbt+WunOW6rQ0KK+mbt+ihjeiIiA0KK+mbt+aDoOeQpg0KK+mbt+mbheiPgQ0KK+mbt+m1rOeoiw0KK+W7luS4gemAuA0KK+W7luS6juaWhw0KK+W7luWNg+aFpw0KK+W7luWjq+Wgrw0KK+W7luWkp+aonw0KK+W7luWwj+iPrw0KK+W7luS7geemvg0KK+W7luWFg+WIqQ0KK+W7luWFgemdlg0KK+W7luaWh+W5sw0KK+W7luaWh+iMuQ0KK+W7luaWh+iplQ0KK+W7luaWh+eUhA0KK+W7luaWh+a9lA0KK+W7luaciOingA0KK+W7luS7lee2ug0KK+W7luacrOWFgw0KK+W7luato+WBiQ0KK+W7lueOiQ0KK+W7lueOieiQjQ0KK+W7luS4nuaZng0KK+W7luWFiei8nQ0KK+W7luWuiOatow0KK+W7luS8r+eSiw0KK+W7luWQq+a9lA0KK+W7luWuj+aFiA0KK+W7luW/l+awkQ0KK+W7luW/l+WBiQ0KK+W7luW/l+mBoA0KK+W7luengOWNvw0KK+W7luiCsuiJrw0KK+W7luiJr+a3rg0KK+W7luS9s+eOpQ0KK+W7luS9qeWmgg0KK+W7luS9qemzsw0KK+W7luWul+WxsQ0KK+W7luWunOe+pA0KK+W7luaAoeeOsg0KK+W7luaAoeaZrw0KK+W7luaJv+aFtg0KK+W7luaYjuWEgA0KK+W7luaso+WEgA0KK+W7luiKs+eOsg0KK+W7luiKneWghQ0KK+W7lumdkuadvg0KK+W7luS/oeWvrA0KK+W7luS/iuWCkQ0KK+W7luS/iuasvQ0KK+W7luWGoOe+jg0KK+W7luWlleS7uw0KK+W7luWnv+avkw0KK+W7luW7uuWfjg0KK+W7luW7uumIng0KK+W7luW9peWHsQ0KK+W7luaBhuavhQ0KK+W7luaYpeiPig0KK+W7luaYseaouQ0KK+W7lueCs+eEnA0KK+W7luebiOWlhw0KK+W7lueni+aAoQ0KK+W7lue+jueOsg0KK+W7lue+jueQsw0KK+W7luiMguiJrw0KK+W7luiLseeUtw0KK+W7luiLseWCkQ0KK+W7luiLkeWQmw0KK+W7lui/sOiMgg0KK+W7lumDgeWptw0KK+W7luWAqeWunA0KK+W7luWNv+aDoA0KK+W7luWTsuirlg0KK+W7luWutueOsg0KK+W7luWutuWvpw0KK+W7luWutueRqQ0KK+W7luWutuWppw0KK+W7luWzu+avhQ0KK+W7luaBqeaFiA0KK+W7luaMr+iJrw0KK+W7luaMuuW0tA0KK+W7luabuOePrg0KK+W7luahguWQmw0KK+W7lua1muWujw0KK+W7luePruWQmw0KK+W7luePrueOqw0KK+W7luePruaEmw0KK+W7luebiue+pA0KK+W7lue0oOWNvw0KK+W7luiAlei8nQ0KK+W7luS5vuaIkA0KK+W7luWBieaIkA0KK+W7luWBiei+sA0KK+W7luWBieaWrw0KK+W7luWBiem0uw0KK+W7luWBpeaYjg0KK+W7luWBpemKmA0KK+W7luWci+Wujw0KK+W7luWci+WLmw0KK+W7luWci+iPrw0KK+W7luWfuuWujw0KK+W7luWfueeRnA0KK+W7luWpieWIqQ0KK+W7luWpieasow0KK+W7luWvhOiQjQ0KK+W7luW0h+eiqQ0KK+W7luW6t+mclg0KK+W7luaDh+ayuw0KK+W7luWVn+iJrw0KK+W7luaVj+axnQ0KK+W7luaVj+eOsg0KK+W7luaik+iMnA0KK+W7lua3keWQmw0KK+W7lua3keiyng0KK+W7lua3keaDoA0KK+W7lua3kem6lw0KK+W7luelpemBlA0KK+W7luiyq+ePrg0KK+W7lueroOajiw0KK+W7luWvjOeUsA0KK+W7luaDoOWonw0KK+W7luaZuui8nQ0KK+W7lueQque+jg0KK+W7luiIkuWEgA0KK+W7lumAsuW5sw0KK+W7lumbheWAqQ0KK+W7lumghuW4hg0KK+W7lualt+aWhw0KK+W7luetoOaAoQ0KK+W7luiQseiKuQ0KK+W7luWXvg0KK+W7luWYiemZvQ0KK+W7lua8oum8jg0KK+W7lue2reePjQ0KK+W7lumKmOS7gQ0KK+W7luaFtuizgA0KK+W7luaFp+mbrw0KK+W7lueRqeeShw0KK+W7luaGsuWggg0KK+W7luabieaFpw0KK+W7lumMpueRnA0KK+W7luaTjuW4hg0KK+W7luabnOeRqQ0KK+W7lum6kumWlA0KK+W7luiAgOadsQ0KK+W7lumhr+aFtg0KK+W7luWBsuWmpA0KK+W7luaWjOWCkQ0KK+W7lumIuumKmA0KK+a8oui/sOS7gQ0KK+eGiueri+aWsA0KK+eGiuadseWing0KK+eGiuWHjOmchg0KK+eGiuW0h+e3rw0KK+eGiuWLpOS6kQ0KK+eUhOaFp+aYjg0KK+euoeW5vOS7sg0KK+euoemHkeeOsg0KK+euoeeQquiKuA0KK+e/n+aVpuaVjw0KK+iHuuaWh+eFpw0KK+iSsuS/oeWFqA0KK+iSsumnv+avhQ0KK+ijtOWBieeoiw0KK+ikmuW/g+aAoQ0KK+ikmuS/iuWBiQ0KK+ikmuWutuW+tw0KK+izk+aVrOaWhw0KK+i2meWjq+m9ig0KK+i2meWtkOe2rQ0KK+i2meS7geS9kQ0KK+i2meWFg+Wujw0KK+i2meWPi+W0pw0KK+i2meaWh+W/oA0KK+i2meaWueaEtw0KK+i2meS4luijlQ0KK+i2meW/heaYjA0KK+i2meeOieiTrg0KK+i2meWuieeQqg0KK+i2meWQm+adsA0KK+i2meWuj+mIng0KK+i2meW/l+ixqg0KK+i2meiCsueQsw0KK+i2meS9qeiKrA0KK+i2meWunOWQmw0KK+i2meaAoeWptw0KK+i2meaYjui8nQ0KK+i2meiKt+iPgQ0KK+i2meS/iuWHsQ0KK+i2meWTgeW9pQ0KK+i2meW7uuWLnQ0KK+i2meaBrOWEgA0KK+i2meeCq+WLmw0KK+i2meeni+mzsw0KK+i2meiLsem+jQ0KK+i2meS/rumclg0KK+i2meWutuiJrw0KK+i2meWutuizog0KK+i2meaMr+Wujw0KK+i2meahgumdkg0KK+i2meePruaxmw0KK+i2meelkOeUhA0KK+i2meWBieW7tw0KK+i2meWBiee/lA0KK+i2meWci+W/lw0KK+i2meWfuemclg0KK+i2meW0h+mWlA0KK+i2meaVj+Wmgg0KK+i2mea3keiKsw0KK+i2meeajuWQmw0KK+i2meWpt+WujA0KK+i2mea5mOWQmw0KK+i2memInuW/lw0KK+i2meeRnuaYjA0KK+i2meWYieaVrA0KK+i2meW7o+WFgw0KK+i2meaFlee+pA0KK+i2meaoueWEgA0KK+i2mem+jeWfug0KK+i2membmemnvw0KK+i2meeOuee+sg0KK+mBoOiXpOawuOW6tw0KK+mEnuixqui8nQ0KK+m9iumbquaxnQ0KK+WKieS5meiQsQ0KK+WKieS5g+iQsQ0KK+WKieS6uuixqg0KK+WKieWHoOiQjQ0KK+WKieWKm+ixqg0KK+WKieWPiOaFiA0KK+WKieS4iuaXlw0KK+WKieS6juiPgQ0KK+WKieWNg+eRnA0KK+WKieWjq+iPrw0KK+WKieWjq+ixqg0KK+WKieWkp+amrg0KK+WKieWtkOeUsQ0KK+WKieWtkOWYiQ0KK+WKieWtkOmgjg0KK+WKieWxseixqg0KK+WKieS4reeQqg0KK+WKieS7geatow0KK+WKieS7geijlQ0KK+WKieWFg+mzsw0KK+WKieWwkee2rQ0KK+WKieW/g+WEgA0KK+WKieaWh+eOiQ0KK+WKieaWh+eOsg0KK+WKieaWh+WLnQ0KK+WKieaWh+i2hQ0KK+WKieaWh+emjw0KK+WKieaXpemghg0KK+WKieS4luaWhw0KK+WKieS4lua4hQ0KK+WKieS4luaFtg0KK+WKieS7peetoA0KK+WKieWPsA0KK+WKieW8mOWBiQ0KK+WKieato+aysw0KK+WKieato+mbhA0KK+WKieawuOWBpQ0KK+WKieeOieaWhw0KK+WKieeOieWutg0KK+WKieeOieiQjQ0KK+WKieeOieeQhw0KK+WKieeri+WBiQ0KK+WKieS6puaYhw0KK+WKieS8iuS/rg0KK+WKieS7sua2tQ0KK+WKieWFieadsA0KK+WKieWFhuWuuQ0KK+WKieWFqOW9rA0KK+WKieWQjeWonw0KK+WKieWmguiKsw0KK+WKieWmguiWsA0KK+WKieWuh+iWhw0KK+WKieWuieelpQ0KK+WKieaXreiKrA0KK+WKieaxneWonw0KK+WKieiHs+WuiQ0KK+WKieS8r+W9pQ0KK+WKieWQm+elug0KK+WKieWtneWAqw0KK+WKieWuj+WBiQ0KK+WKieW7t+altw0KK+WKieW/l+WLhw0KK+WKieW/l+a1qQ0KK+WKieW/l+a6kA0KK+WKieW/l+eRiw0KK+WKieayguaYgA0KK+WKieengOmDgQ0KK+WKieengOmbrw0KK+WKieiCsuaIkA0KK+WKieiCsuW/lw0KK+WKieiCsuWulw0KK+WKieiCsua0uA0KK+WKieiCsuiqoA0KK+WKieiCsuepjg0KK+WKiemCpuW5sw0KK+WKiemCpuebuA0KK+WKieS6nuiKuA0KK+WKieS+neaWhw0KK+WKieS9s+aykA0KK+WKieS9s+aAoQ0KK+WKieS9s+iKsw0KK+WKieS9s+a0pw0KK+WKieS9s+eQqg0KK+WKieS9s+mBlA0KK+WKieS9s+epjg0KK+WKieS+g+Wmgg0KK+WKieS9qemdkg0KK+WKieS9qee2vg0KK+WKieWSjOW+tw0KK+WKieWdpOepjg0KK+WKieWtn+S9sw0KK+WKieWtn+WGoA0KK+WKieWtn+e/sA0KK+WKieWul+aAoQ0KK+WKieWul+iRhg0KK+WKieWumuWuhw0KK+WKieWunOaYhg0KK+WKieWunOWptw0KK+WKieWum+Wmgg0KK+WKieWyoemZtQ0KK+WKieW5uOmbqg0KK+WKieW/oOWLsw0KK+WKieaAoeS8tg0KK+WKieaAoeWQmw0KK+WKieaAoeWQmw0KK+WKieaAoeWQmw0KK+WKieaAoeWSjA0KK+WKieaAoeiKrA0KK+WKieaAoeaDoA0KK+WKieaAoemdnA0KK+WKieaJv+aoug0KK+WKieaYjA0KK+WKieaYjOiqoA0KK+WKieaYjuWQiA0KK+WKieaYjuadsA0KK+WKieaYjuWTsg0KK+WKieaYjumBlA0KK+WKieaYjum6lw0KK+WKieaYh+mRqw0KK+WKieaenOePjQ0KK+WKieaso+WdpA0KK+WKieaso+aAoQ0KK+WKieaso+iMuQ0KK+WKieatpua1mg0KK+WKieeOn+aIkA0KK+WKieeOq+Wvpw0KK+WKieepueaelw0KK+WKieiKs+WQnw0KK+WKieiKs+eOsg0KK+WKieiKs+iYrQ0KK+WKieiKrOiKsw0KK+WKiemHh+ecnw0KK+WKiemHkemzsw0KK+WKiemdkuiYiw0KK+WKieS/oeWujw0KK+WKieS/oeiJrw0KK+WKieS/oem0uw0KK+WKieS/iuWujw0KK+WKieS/iuW7tw0KK+WKieS/iuiJrw0KK+WKieS/iuadsA0KK+WKieS/iuavhQ0KK+WKieS/iuW3lg0KK+WKieS/kOaihQ0KK+WKieWGoOWmjQ0KK+WKieWGoOiJrw0KK+WKieWGoOmhrw0KK+WKieWLg+W9pQ0KK+WKieWTgeWunA0KK+WKieWlleW/lw0KK+WKieWnvw0KK+WKieWnv+WQnw0KK+WKieWogeaxlw0KK+WKieWogeaYjA0KK+WKieW7uuawkQ0KK+WKieW7uuWujw0KK+WKieW7uuWujw0KK+WKieW7uuadkQ0KK+WKieW7uuiJrw0KK+WKieW7uuaYjg0KK+WKieW7uuW+tw0KK+WKieW7uueUug0KK+WKieW9peWQmw0KK+WKieW9peW7tw0KK+WKieW9peiJrw0KK+WKieW9peWNmg0KK+WKieW+i+aYjg0KK+WKieaAnea9lA0KK+WKieaBquS6ug0KK+WKieaUv+WLsw0KK+WKieaYreWmgg0KK+WKieaYoOengA0KK+WKieaYsei+sA0KK+WKieafj+Wujw0KK+WKieafj+m6nw0KK+WKieeCuuaYjg0KK+WKieePiuWmrg0KK+WKieePjeS9kQ0KK+WKieebiOWmgg0KK+WKieebiOengA0KK+WKieebiOiYrQ0KK+WKieeni+aIkA0KK+WKieeni+eHlQ0KK+WKiee+juWQmw0KK+WKiee+juS+lg0KK+WKiee+jueOsg0KK+WKiee+juiPrw0KK+WKiee+v+axnQ0KK+WKieiLpeisuQ0KK+WKieiLsem+jQ0KK+WKieiynuS8tg0KK+WKiei7jeavhQ0KK+WKiemfi+aIkA0KK+WKieWAjeWmgg0KK+WKieS/ruaYjg0KK+WKieWTsuWuhw0KK+WKieWTsumDjg0KK+WKieWTsueRiw0KK+WKieWutuaIkA0KK+WKieWutuWujw0KK+WKieWutuaYhw0KK+WKieWutueQsw0KK+WKieWutuWDlg0KK+WKieWutuixqg0KK+WKieWutumzsw0KK+WKieWutummqA0KK+WKieWuueaHvw0KK+WKieWzu+S8tg0KK+WKieWzsOmDoQ0KK+WKieaBqeWQiQ0KK+WKieaMr+S4rQ0KK+WKieaMr+ixqg0KK+WKieaZieiCsg0KK+WKieaZj+iqoA0KK+WKieabuOWujw0KK+WKieagueixqg0KK+WKieahkOebmw0KK+WKiea1mumKmA0KK+WKieePruaAoQ0KK+WKieebiuS8uA0KK+WKieebiuemjg0KK+WKieelluWvpw0KK+WKiee0oOeOsg0KK+WKiee0lOadjw0KK+WKieiAlee2rQ0KK+WKiei7kuWuhw0KK+WKieWBieeriw0KK+WKieWBieiqoA0KK+WKieWci+W5sw0KK+WKieWci+ajnw0KK+WKieWci+m+jQ0KK+WKieWpieeOsg0KK+WKieW0h+eQhg0KK+WKieW6t+alnQ0KK+WKieW+l+WFiQ0KK+WKieWVn+W5sw0KK+WKieaVj+eQqg0KK+WKiea3s+mbhQ0KK+WKiea3keiKrA0KK+WKiea3keiyng0KK+WKiea3keiOiQ0KK+WKiea3keiPrw0KK+WKiea3keaFpw0KK+WKieelpeawkQ0KK+WKieiOieeHlQ0KK+WKieWHseiMuQ0KK+WKieWNmuaWhw0KK+WKieWvjOaYjg0KK+WKieaDoOaAoQ0KK+WKieaDoOe0iw0KK+WKieaPmumKmA0KK+WKieaZuuS7gQ0KK+WKieaZuumIng0KK+WKieacneiTrg0KK+WKiea5mOeQqg0KK+WKieeak+Wvpw0KK+WKieiIkuaFiA0KK+WKieipoOiWhw0KK+WKiemAuOeruQ0KK+WKiemWlOe1kA0KK+WKiembheWQmw0KK+WKiembheeOsg0KK+WKiembheaDoA0KK+WKiembheiQjQ0KK+WKiembheaFpw0KK+WKiembsumcng0KK+WKieWLpOe2kw0KK+WKieaVrOawkQ0KK+WKieavk+azog0KK+WKiea6kOWAqw0KK+WKieeRnuiKsw0KK+WKieeRnuixqg0KK+WKiee2k+e2uA0KK+WKieijleWujw0KK+WKieipqemfuw0KK+WKiemdlg0KK+WKieWYieiCsg0KK+WKieWYiea3sw0KK+WKieWYiembrw0KK+WKieWYieaoug0KK+WKieW9sA0KK+WKieamruW+tw0KK+WKieeGmeaFpw0KK+WKieeiqeepqQ0KK+WKiee2reazsA0KK+WKieiCh+m1rA0KK+WKiemKmOadkQ0KK+WKiemKmOi8nQ0KK+WKiemzs+iIiA0KK+WKieW+t+atow0KK+WKieW+t+iqoA0KK+WKieaFtumOrg0KK+WKieaFp+eOsg0KK+WKieaFp+Wptw0KK+WKieaFp+eTjw0KK+WKieeRqeWonw0KK+WKieizoueGkg0KK+WKiemch+m0uw0KK+WKieaGtg0KK+WKieabieiKrA0KK+WKieabieeQqg0KK+WKieabieaoug0KK+WKieaoueiVmQ0KK+WKieeHleiQjQ0KK+WKieeSn+mLkg0KK+WKieepjuiSqA0KK+WKieiIiOWutg0KK+WKieiVmeeRhA0KK+WKiemMpuWggg0KK+WKiemMpum0uw0KK+WKiemdnOiKsw0KK+WKiemdnOiPrw0KK+WKiem+jeWxsQ0KK+WKieeItee2rQ0KK+WKiemNvumclg0KK+WKiem0u+mclg0KK+WKieeSp+eRqQ0KK+WKiemOruWYiQ0KK+WKieeAmumZvQ0KK+WKiemfu+eQpg0KK+WKiem6l+aDoA0KK+WKieWvtuWptw0KK+WKieiAgOWNhw0KK+WKieitr+iBsA0KK+WKieeBjOi8nQ0KK+WKieaHv+aFpw0KK+WKieiumuWYuw0KK+WKieaXu+ePig0KK+WKieWnteWYiQ0KK+WKieaMkA0KK+WKiee/iumCoQ0KK+WKieeRi+eOsg0KK+WKieetseaFpw0KK+WKieeAhemovw0KK+WOsuaWjOS4rQ0KK+aoiuS5g+WYiQ0KK+aoiuS/rum+jQ0KK+aoguWtkOmnvw0KK+atkOWjq+a6kA0KK+atkOS4lua0iw0KK+atkOWmgueoiw0KK+atkOW/l+ebiA0KK+atkOmCpuiPrw0KK+atkOWul+WOnw0KK+atkOaAoeengA0KK+atkOaYgOS/rg0KK+atkOmVt+aZjw0KK+atkOS/iuW9pQ0KK+atkOW7uuawkQ0KK+atkOaUv+iJtw0KK+atkOe+jueRqQ0KK+atkOWoieWmpg0KK+atkOabuOixqg0KK+atkOa3keWnvw0KK+atkOmAuOmdkg0KK+atkOmZveacieaFpw0KK+atkOmZveeOqw0KK+atkOmZveaDoOWmgg0KK+atkOmZvemKmOaWhw0KK+atkOmZveW/u+aGtg0KK+atkOamruadsA0KK+atkOepjuWQmw0KK+atkOe5leWYiQ0KK+a9mA0KK+a9mOWFgeS7gQ0KK+a9mOaWh+iPrw0KK+a9mOato+WFgw0KK+a9mOeOieaDoA0KK+a9mOS6puiVvg0KK+a9mOaIkOWvjA0KK+a9mOWuj+Wulw0KK+a9mOW/l+WBiQ0KK+a9mOengOebiA0KK+a9mOS9s+WmpA0KK+a9mOS9qeWQmw0KK+a9mOWul+ijlQ0KK+a9mOW7tui8nQ0KK+a9mOaAoeWQmw0KK+a9mOaAoeeRvg0KK+a9mOaYjualtw0KK+a9mOeOn+aoug0KK+a9mOS6ruWmgg0KK+a9mOS/oee/sA0KK+a9mOS/iuiJrw0KK+a9mOWGoOWujw0KK+a9mOWTgea9lA0KK+a9mOWogeattw0KK+a9mOW7uuaIkA0KK+a9mOW7uuW9sA0KK+a9mOW9peiTiQ0KK+a9mOaUv+e3rw0KK+a9mOaflOiAgw0KK+a9mOePjeeQqg0KK+a9mOe+jueOsg0KK+a9mOi/sOadsQ0KK+a9mOWutumKmA0KK+a9mOazsOWFqA0KK+a9mOiDveWTsg0KK+a9mOWpieiQjQ0KK+a9mOa3kembrw0KK+a9mOaDoOWonw0KK+a9mOmAsuebig0KK+a9mOmbhemmqA0KK+a9mOeRnummmQ0KK+a9mOijleaZug0KK+a9mOedv+WTsg0KK+a9mOWEgOaBrA0KK+a9mOaFp+aVjw0KK+a9mOWEkueRqQ0KK+a9mOmMpuaYjA0KK+a9mOm0u+mKmA0KK+a9mOm6l+iQjQ0KK+a9mOWnteWmgg0KK+a9mOmIuuaflA0KK+a7leaGtumbrw0KK+e3tOW7uuS8uA0KK+iUo+S4reihjQ0KK+iUo+ato+emjw0KK+iUo+axneWuiQ0KK+iUo+ayhuelpQ0KK+iUo+S9s+ePig0KK+iUo+S9qemkmA0KK+iUo+Wtn+WEkg0KK+iUo+WunOmdnA0KK+iUo+aAoeaFpw0KK+iUo+aYjuWEkg0KK+iUo+mVt+aXuw0KK+iUo+aUv+epjg0KK+iUo+ePruazoA0KK+iUo+a3keaFpw0KK+iUo+iQjQ0KK+iUo+iRpueriw0KK+iUo+W+t+aJjQ0KK+iUo+a/seW3ng0KK+iUo+iAgOavhQ0KK+iUoeS4gee2k+WTsg0KK+iUoeWjq+aXug0KK+iUoeWtkOaAoQ0KK+iUoeS4remIng0KK+iUoeS7geWBiQ0KK+iUoeWFg+atow0KK+iUoeWFg+mbhA0KK+iUoeWkqeelug0KK+iUoeaWh+S7gQ0KK+iUoeaWh+W9pQ0KK+iUoeaWh+WBiQ0KK+iUoeaWh+WNmg0KK+iUoeaWh+asvQ0KK+iUoeaWh+WYiQ0KK+iUoeaWh+m0uw0KK+iUoeaciOePoA0KK+iUoeS4luadsA0KK+iUoeS4lum0uw0KK+iUoeW3p+Wmgg0KK+iUoeW8mOWOnw0KK+iUoeato+Wulw0KK+iUoeato+aaiQ0KK+iUoeawuOW9rA0KK+iUoeawuOeRqQ0KK+iUoeeOieeniw0KK+iUoeeOieiPgQ0KK+iUoeeri+iKrA0KK+iUoeS6pumbrw0KK+iUoeS7suWvpw0KK+iUoeWFhumpig0KK+iUoeWQjeabuA0KK+iUoeWmguWptw0KK+iUoeWuh+WAqw0KK+iUoeWuieWWrA0KK+iUoeaXreabnA0KK+iUoee+veWuuQ0KK+iUoeihjOecnw0KK+iUoeS8r+m0uw0KK+iUoeWQm+avhQ0KK+iUoeWuj+aWhw0KK+iUoeWuj+WfuQ0KK+iUoeW7t+epjg0KK+iUoeW/l+Wujw0KK+iUoeW/l+aYjg0KK+iUoeW/l+aZgw0KK+iUoeW/l+aPmg0KK+iUoeW/l+e2rQ0KK+iUoeW/l+m0uw0KK+iUoeaygeeOsg0KK+iUoeaym+Wptw0KK+iUoeaxtum0uw0KK+iUoeengOeOsg0KK+iUoeengOaDoA0KK+iUoeiCsuatow0KK+iUoeiCsuW9pQ0KK+iUoeiCsuecnw0KK+iUoeiCsuWLsw0KK+iUoeiyneePig0KK+iUoeS6q+e/sA0KK+iUoeS+neePig0KK+iUoeS+neWuuQ0KK+iUoeS+nem9oQ0KK+iUoeS9s+S8tg0KK+iUoeS9s+Wujw0KK+iUoeS9s+iJrw0KK+iUoeS9s+asow0KK+iUoeS9s+iKrA0KK+iUoeS9s+eOsg0KK+iUoeS9s+ePjQ0KK+iUoeS9s+WuuQ0KK+iUoeS9s+ecnw0KK+iUoeS9s+iIqg0KK+iUoeS9s+eQsw0KK+iUoeS9s+iTiQ0KK+iUoeS9s+aoug0KK+iUoeS9s+epjg0KK+iUoeS9s+mclg0KK+iUoeS9s+ekvQ0KK+iUoeS9qeWmgg0KK+iUoeS9qeWQmw0KK+iUoeS9qeWmpA0KK+iUoeS9qeiKsw0KK+iUoeS9qeiKrA0KK+iUoeS9qeePig0KK+iUoeS9qeePig0KK+iUoeS9qeeOsg0KK+iUoeS9qeWopQ0KK+iUoeS9qee0iw0KK+iUoeS9qeiTiQ0KK+iUoeS9qeepjg0KK+iUoeS9qemdnA0KK+iUoeS+keW7tw0KK+iUoeWFtuePrg0KK+iUoeWNlOeUqw0KK+iUoeWPl+WLsw0KK+iUoeWdpOS9kQ0KK+iUoeWdpOmbhA0KK+iUoeWdpOmMpg0KK+iUoeWlh+Wdhw0KK+iUoeWlh+mclg0KK+iUoeWtn+WQmw0KK+iUoeWtn+iCsg0KK+iUoeWtn+iKsw0KK+iUoeWtn+eniw0KK+iUoeWtn+WTsg0KK+iUoeWtn+ecnw0KK+iUoeWtn+mbhA0KK+iUoeWtn+WEkg0KK+iUoeWtn+aoug0KK+iUoeWtn+irrQ0KK+iUoeWto+eOsg0KK+iUoeWul+S9kQ0KK+iUoeWul+W/lw0KK+iUoeWul+eOqw0KK+iUoeWul+ebig0KK+iUoeWul+mBlA0KK+iUoeWul+WEkg0KK+iUoeWul+aGsg0KK+iUoeWul+epjg0KK+iUoeWul+e/sA0KK+iUoeWul+mclg0KK+iUoeWunOWQmw0KK+iUoeWunOW7tw0KK+iUoeWunOiKsw0KK+iUoeWunOePig0KK+iUoeWunOWAqQ0KK+iUoeWunOecnw0KK+iUoeWunOiTiQ0KK+iUoeWunOmclg0KK+iUoeWunOiTgQ0KK+iUoeWum+eOsg0KK+iUoeWum+irrQ0KK+iUoeWwmuWysw0KK+iUoeWwmuepjg0KK+iUoeWyseWLsw0KK+iUoeWys+abuA0KK+iUoeW5uOWmgg0KK+iUoeW5uOaBhg0KK+iUoeW5uOa3sw0KK+iUoeW8puixqg0KK+iUoeW/oOS/oQ0KK+iUoeW/oOepjg0KK+iUoeaAoeWQmw0KK+iUoeaAoeiQjQ0KK+iUoeaJv+aYig0KK+iUoeaJv+eSiw0KK+iUoeaJv+e/sA0KK+iUoeaYk+S6qA0KK+iUoeaYk+mZng0KK+iUoeaYk+aGsg0KK+iUoeaYjOWuhw0KK+iUoeaYjOWEkg0KK+iUoeaYhuS9kQ0KK+iUoeaYjg0KK+iUoeaYjuaxjg0KK+iUoeaYjuWujw0KK+iUoeaYjuadiQ0KK+iUoeaYjuWulw0KK+iUoeaYjuiKsw0KK+iUoeaYjuWAqw0KK+iUoeaYjuWTsg0KK+iUoeaYjuWzsA0KK+iUoeaYjuiMtQ0KK+iUoeaYjuasvQ0KK+iUoeaYjuiSsg0KK+iUoeaYjuiznA0KK+iUoeaYjuaGsg0KK+iUoeaYjuepjg0KK+iUoeaYjum+jQ0KK+iUoeaYgOeUqw0KK+iUoeaYh+S8rw0KK+iUoeaYh+epjg0KK+iUoeadseaYjg0KK+iUoeadseepjg0KK+iUoeadsOW/lw0KK+iUoeadvuafjw0KK+iUoeadvumclg0KK+iUoeaso+aAoQ0KK+iUoeaso+WAqw0KK+iUoeaso+mBlA0KK+iUoeaso+epjg0KK+iUoeatpuirug0KK+iUoeeJp+WLsw0KK+iUoeebtOWLsw0KK+iUoeenieaYhg0KK+iUoeenieeSiw0KK+iUoeenieirrQ0KK+iUoeiKs+a0tQ0KK+iUoemHh+iKsw0KK+iUoemHkeWzsA0KK+iUoemHkem+jQ0KK+iUoemVt+amrg0KK+iUoembqOa9lA0KK+iUoemdkuWzsA0KK+iUoeS/oeiJrw0KK+iUoeS/iuaZjw0KK+iUoeS/iuizog0KK+iUoeWTgeWEgA0KK+iUoeWupeWumg0KK+iUoeW7uuijlQ0KK+iUoeaAneaNtw0KK+iUoeaUv+Wujw0KK+iUoeaUv+iogA0KK+iUoeaUv+WTsg0KK+iUoeaUv+e+pA0KK+iUoeaUv+WLsw0KK+iUoeaUv+e/sA0KK+iUoeaUv+m+jQ0KK+iUoeaYrem+jQ0KK+iUoeafj+avhQ0KK+iUoeeOsua0pQ0KK+iUoeemueathg0KK+iUoee0gOa6kA0KK+iUoee+juiKnQ0KK+iUoee+juiOiQ0KK+iUoee+juaFpw0KK+iUoeiLseWulw0KK+iUoemDgeWQmw0KK+iUoemfi+W/lw0KK+iUoeWHjOmzsw0KK+iUoeWon+Wonw0KK+iUoeWutuiPrw0KK+iUoeWuueeRmw0KK+iUoeaCheeOnw0KK+iUoeaMr+itsA0KK+iUoeagqee2rQ0KK+iUoeePruaAoQ0KK+iUoeecn+emlQ0KK+iUoee0oOeipw0KK+iUoeiMueiMtQ0KK+iUoeWBieadsA0KK+iUoeWci+aJiw0KK+iUoeWci+iBlg0KK+iUoeWfueitrw0KK+iUoeW0h+awkQ0KK+iUoeWVn+Wggg0KK+iUoea3u+aWhw0KK+iUoea3keWmgw0KK+iUoea3keaAoQ0KK+iUoea3keeOsg0KK+iUoea3keecnw0KK+iUoea3keaDoA0KK+iUoea3keeRnA0KK+iUoea3keiWhw0KK+iUoeebm+WLsw0KK+iUoembquWNvw0KK+iUoeWLnembhA0KK+iUoeWNmuWFqA0KK+iUoeWWrOWuiQ0KK+iUoeWvjOiytA0KK+iUoeaDoOWmgg0KK+iUoeaDoOe+jg0KK+iUoeaDoOeQqg0KK+iUoeaDoOeHlQ0KK+iUoeaZr+a3kQ0KK+iUoeaZuuWujw0KK+iUoeaZuuaakA0KK+iUoea5mOaAoQ0KK+iUoeeak+aYjg0KK+iUoeiIkuWuhw0KK+iUoeiPgeiPgQ0KK+iUoeipoOe/lA0KK+iUoemAuOePig0KK+iUoemAsuaYjA0KK+iUoemahuazsA0KK+iUoembheWQmw0KK+iUoembheiKrA0KK+iUoembheiMuQ0KK+iUoembheaDoA0KK+iUoembheiPgQ0KK+iUoembheaFpw0KK+iUoembr+a3hw0KK+iUoeWCs+W+tw0KK+iUoealqOeRnA0KK+iUoeavk+mclg0KK+iUoeeRnuaWhw0KK+iUoeeRnuWzsA0KK+iUoeeRnum6kg0KK+iUoee+qeebig0KK+iUoeijleWBpQ0KK+iUoeipqeiWjw0KK+iUoeWYieS7gQ0KK+iUoeWYieaBhg0KK+iUoeWYieeroA0KK+iUoeWYieaFtg0KK+iUoeamruaYjA0KK+iUoeamruizog0KK+iUoea8oue+qQ0KK+iUoeeip+WuuQ0KK+iUoeemj+aZjw0KK+iUoee2reeOsg0KK+iUoee2reiTgQ0KK+iUoeijtOS8tg0KK+iUoemKmA0KK+iUoemKmOWzsA0KK+iUoemKmOizog0KK+iUoemzs+WEgA0KK+iUoeW+temclg0KK+iUoeaFp+awkQ0KK+iUoeaFp+iyng0KK+iUoeaFp+iQsQ0KK+iUoeavhei7kg0KK+iUoeizoueahw0KK+iUoeWtuOaWhw0KK+iUoeaGtumItA0KK+iUoeabieeEtg0KK+iUoea+pOmKmA0KK+iUoeepjueutA0KK+iUoee/sOeGig0KK+iUoeiVmeWptw0KK+iUoemMpuWdoQ0KK+iUoemdnOWunA0KK+iUoemdnOaDoA0KK+iUoem+jeWEgA0KK+iUoee/vOWmgg0KK+iUoem0u+awkQ0KK+iUoem0u+aWjA0KK+iUoeeSp+WFiQ0KK+iUoeixkOaWhw0KK+iUoeixkOadsA0KK+iUoemOruW2vQ0KK+iUoem1keW9jA0KK+iUoeeTiuWEgA0KK+iUoem6l+iKsw0KK+iUoem6l+aDoA0KK+iUoeeNu+avhQ0KK+iUoeiAgOe+pA0KK+iUoeiAgOmnkg0KK+iUoemmqOWEgA0KK+iUoeS9tuiIiA0KK+iUoeaXu+iKsw0KK+iUoeaXu+aGsg0KK+iUoeeQhOeruQ0KK+iUoeathuaAoQ0KK+iUoeeRi+erkQ0KK+iUoee3tg0KK+iUoemRq+W7tw0KK+irh+aYreiYrQ0KK+mEreS4gOWHoQ0KK+mEreS5g+S9sw0KK+mEreS6uuWFgw0KK+mEreWKm+S7gQ0KK+mEreWPiOS7gQ0KK+mEreWjq+mfiw0KK+mEreWtkOimiw0KK+mEreWwj+W1kA0KK+mEreWwueaWrw0KK+mEreS7geWvjA0KK+mEreWFg+WtnQ0KK+mEreWFg+eRnA0KK+mEreWPi+iqoA0KK+mEreW/g+Wmgg0KK+mEreaWh+atow0KK+mEreaWh+W9rA0KK+mEreaWh+WvjA0KK+mEreaWh+WYiQ0KK+mEreaciOaenQ0KK+mEreS4luaYjA0KK+mEreS4lua5mA0KK+mEreS7lemRqw0KK+mEreW3p+mdkg0KK+mEreW8mOWBiQ0KK+mEreato+iqoA0KK+mEreawuOa0pQ0KK+mEreeOieS8tg0KK+mEreeOieiLsQ0KK+mEreeOieiPgQ0KK+mEreeri+S6qw0KK+mEreS6meWQnw0KK+mEreS8iuecnw0KK+mEreS7suWujw0KK+mEreS7suizog0KK+mEreWFieS9kQ0KK+mEreWFiea3sw0KK+mEreWFhuWdhw0KK+mEreWFiOiQjA0KK+mEreWQieS9kQ0KK+mEreWQj+WtnA0KK+mEreWQiOS/rg0KK+mEreWkmea2tQ0KK+mEreWmguasow0KK+mEreWmgue0lA0KK+mEreWuh+Wujw0KK+mEreWuh+a3qA0KK+mEreWuiOadsQ0KK+mEreWuieiKuA0KK+mEreWuiee/lA0KK+mEreaIkOajoA0KK+mEreaXreebmw0KK+mEreacieiyoQ0KK+mEreeZvuWptw0KK+mEree+veaZtA0KK+mEreiHs+WJmw0KK+mEreS8r+WNlw0KK+mEreWQm+mBlA0KK+mEreWuj+aYjg0KK+mEreW/l+WKnw0KK+mEreW/l+WBiQ0KK+mEreW/l+m+jQ0KK+mEreengOaAoQ0KK+mEreengOWonw0KK+mEreengOaFpw0KK+mEreiCsuaYhw0KK+mEreiyneWmgg0KK+mEreS9s+WunA0KK+mEreS9s+elpQ0KK+mEreS9s+WEgA0KK+mEreS9qeePig0KK+mEreWFtumbrw0KK+mEreWtn+eOsg0KK+mEreWul+adsA0KK+mEreWunOiKsw0KK+mEreW5uOWunA0KK+mEreaAoeWQmw0KK+mEreaAoeWptw0KK+mEreaYjOWysw0KK+mEreaYjuW/oA0KK+mEreaYjumKkw0KK+mEreaso+Wmgg0KK+mEreaso+amrg0KK+mEreenieazkw0KK+mEreiKuOiKuA0KK+mEremVt+W/lw0KK+mEreS/iuWujw0KK+mEreWLh+eMmw0KK+mEreW7uuS9sw0KK+mEreW9pemBlA0KK+mEreaYpeiPig0KK+mEreecgeadkQ0KK+mEree+jueOiQ0KK+mEree+jueQtA0KK+mEreiLpeeQpA0KK+mErei/quWFgQ0KK+mEreWAqeWmgg0KK+mEreWutuWFuA0KK+mEreWutumKmA0KK+mEreaMr+WunA0KK+mEreabuOmIug0KK+mEreePruWQmw0KK+mEreelkOmYoQ0KK+mEree0oOW9rA0KK+mEreiMl+iBsA0KK+mEreWBieePig0KK+mEreWci+atow0KK+mEreWci+elpQ0KK+mEreWfueiBsA0KK+mEreW0h+S9kQ0KK+mEreaDn+W/gw0KK+mEreWVn+amrg0KK+mEreaiheWQmw0KK+mErea4heS/ig0KK+mErea3keS6kQ0KK+mErea3keexsw0KK+mErea3keeOsg0KK+mErea3keWptw0KK+mErea3keeHlQ0KK+mErea3teiXpA0KK+mEreelpeWmgg0KK+mEreiOiembrw0KK+mEreWCkeWFgw0KK+mEreWHseS7gQ0KK+mEreWHseWFgw0KK+mEreWHseaWhw0KK+mEreWHseiCsg0KK+mEreWHsem0uw0KK+mEreWLneaXrQ0KK+mEreWNmuS7gQ0KK+mEreWNmuaWhw0KK+mEreWWrOmKmA0KK+mEreWpt+aWhw0KK+mEreWvjOS7gQ0KK+mEreWwiuWtnQ0KK+mEreaDoOaWhw0KK+mEreaDoOWQmw0KK+mEreaDoOe0iw0KK+mEreaDoOmcnA0KK+mEreaWr+WwuQ0KK+mEreaZr+S7gQ0KK+mEreaZr+aWhw0KK+mEreaZr+mahg0KK+mEreaZuuS7gQ0KK+mEreaZuuWFgw0KK+mEreaZuuaYjA0KK+mEreaZuuixqg0KK+mEreacneWFgw0KK+mEreacneeHnw0KK+mEreakjeWvsA0KK+mErea5mOaYgA0KK+mEreeak+S6kQ0KK+mEreeoi+itsA0KK+mEree1sumbrw0KK+mEree/lOm+jQ0KK+mEreiIkuiVig0KK+mEreipoOS7gQ0KK+mEreiplOismQ0KK+mEremAuOWruw0KK+mEremWlOm0uw0KK+mErembheS6kQ0KK+mErembheWPiw0KK+mErembheaWhw0KK+mErembheWmgw0KK+mErembheiKrA0KK+mErembheWonw0KK+mErembheeQqg0KK+mErembheeUhA0KK+mErembhem7mw0KK+mErembsum1rA0KK+mEreaEj+S4rQ0KK+mEreaVrOaoug0KK+mEreavk+m9oQ0KK+mEreeRnue+jg0KK+mEreeRnOeQsw0KK+mEree+qeaGsg0KK+mEreiBluizog0KK+mEreijleW5tA0KK+mEreipqeaFpw0KK+mEreWYieS7gQ0KK+mEreWYieaPmg0KK+mEreWYieaXuw0KK+mEreamruWonw0KK+mEreemj+WSjA0KK+mEreiCh+W/gw0KK+mEremKmOazsA0KK+mEremzs+m9oQ0KK+mEreaFtuWTsg0KK+mEreaFp+iKsw0KK+mEreaFp+mOgg0KK+mEreiUmuifrA0KK+mEreaGsuWtmA0KK+mEreabieaAoQ0KK+mEreabieiWhw0KK+mEreepjumKkw0KK+mEreiVmeeQpg0KK+mEremclumnvw0KK+mEremdnOiKsw0KK+mEreaHi+WCkQ0KK+mEreisneWGoA0KK+mErem0u+a6kA0KK+mEreixkOWYiQ0KK+mErem6l+WQmw0KK+mEreeNu+aWhw0KK+mEreaXu+i7kg0KK+mEreeQh+S7gQ0KK+mEreWftQ0KK+mEree1nOW/gw0KK+mEreeRi+mahg0KK+mEremIuumQmA0KK+mEremdiw0KK+mEp+WNh+aVpg0KK+mEp+aWh+WEgA0KK+mEp+awuOW/oA0KK+mEp+S8iuWuuQ0KK+mEp+WQjueQmw0KK+mEp+aXreaVpg0KK+mEp+W/l+eFjA0KK+mEp+S9s+eOsg0KK+mEp+WunOasow0KK+mEp+aYjuiKsw0KK+mEp+mHkem0uw0KK+mEp+eni+aDoA0KK+mEp+aMr+iLsQ0KK+mEp+WBieizog0KK+mEp+a3keeOsg0KK+mEp+WNmuS7gQ0KK+mEp+aDoOaWhw0KK+mEp+aZr+m+jQ0KK+mEp+e/lOS7gQ0KK+mEp+mbheW/gw0KK+mEp+mghuWxlQ0KK+mEp+ijlemmqA0KK+mEp+emj+mahg0KK+mEp+mch+Wuhw0KK+mEp+epjumnvw0KK+mEp+WKpuWRiA0KK+mtr+W/oOixqg0KK+mtr+aGsumbsg0KK+m7juS4luW7iQ0KK+m7juWuh+WuuQ0KK+m7juaYjuWAqw0KK+m7juS/kOWdhw0KK+m7juWutuS8tg0KK+m7juWpieWEgA0KK+m7jueFpeWFgw0KK+m7jumKmOS7gQ0KK+m7juemruaZug0KK+ebp+S4ieS7gQ0KK+ebp+S7geadsA0KK+ebp+aWh+W/oA0KK+ebp+aWh+aZnw0KK+ebp+W8mOa1tw0KK+ebp+awuOaYhw0KK+ebp+eUs+azsA0KK+ebp+WQieWLhw0KK+ebp+WRiOiKsw0KK+ebp+W/l+W/oA0KK+ebp+W/l+iejQ0KK+ebp+iCsuiBlg0KK+ebp+S9s+aDoA0KK+ebp+WPlOasow0KK+ebp+WumuWdhw0KK+ebp+W7tuiPrw0KK+ebp+aAoeS8tg0KK+ebp+aAoea2tQ0KK+ebp+aJv+alrQ0KK+ebp+aso+WunA0KK+ebp+eOq+Wmjw0KK+ebp+mbqOa2tQ0KK+ebp+S/neWFqA0KK+ebp+S/iuiogA0KK+ebp+S/iuWEkg0KK+ebp+WGoOabhA0KK+ebp+WljuS8rw0KK+ebp+Wogemclg0KK+ebp+W7uuWujw0KK+ebp+W7uumKmA0KK+ebp+aAnea6kA0KK+ebp+aYn+WFqA0KK+ebp+afj+iJrw0KK+ebp+ebiOWujw0KK+ebp+e+juWmgg0KK+ebp+iLseS7gQ0KK+ebp+mfi+S7gQ0KK+ebp+WutumIug0KK+ebp+ellue/lA0KK+ebp+WpieeRnA0KK+ebp+a3kem6lw0KK+ebp+aDoOWCkQ0KK+ebp+i2hee+pA0KK+ebp+aEt+iOiQ0KK+ebp+e+pOiCsg0KK+ebp+WYieaMrw0KK+ebp+W+t+iKsw0KK+ebp+aFp+WunA0KK+ebp+i8neWxlQ0KK+ebp+epjuW/lw0KK+ebp+m+jeeUnw0KK+ebp+mfu+WykQ0KK+ebp+itveWFgQ0KK+ebp+etseeRqQ0KK+ephue+juiVmQ0KK+iVreS6uuixqg0KK+iVreWjq+azsA0KK+iVreWwueiyng0KK+iVreWFgeazsA0KK+iVreaWh+asow0KK+iVreaWh+ethg0KK+iVreaWh+mtgQ0KK+iVreS4luawkQ0KK+iVreS7peS6rg0KK+iVreato+W5sw0KK+iVreawuOazkw0KK+iVreeOieiyng0KK+iVreeri+mfiw0KK+iVreS6pue2rQ0KK+iVreS7suW/lw0KK+iVreWFhueQsw0KK+iVreWQjeaygg0KK+iVreWcreWmmQ0KK+iVreWmguePig0KK+iVreWuh+S8rw0KK+iVreWuieW7tw0KK+iVreacieWujw0KK+iVreiBv+Wujw0KK+iVreWQm+aAoQ0KK+iVreWuj+ijlQ0KK+iVreW/l+e+vQ0KK+iVreW/l+ixqg0KK+iVreengOaDoA0KK+iVreiCsumahg0KK+iVreS9s+aCjA0KK+iVreS9qeePig0KK+iVreWto+iWhw0KK+iVreWwmuaWhw0KK+iVreaAoeiKsw0KK+iVreaYhuW7tw0KK+iVreaso+aAoQ0KK+iVreiKs+ebiA0KK+iVremdkuiQjQ0KK+iVreS/iuizog0KK+iVreW9peW9sA0KK+iVreafj+i7kg0KK+iVree+juWonw0KK+iVrei/sOS7gQ0KK+iVreWkj+aVjw0KK+iVreaMr+WuiQ0KK+iVreePruWmgg0KK+iVreiok+Wciw0KK+iVreWci+atow0KK+iVreWci+Wvtg0KK+iVreW0h+irlg0KK+iVreaVj+W9pQ0KK+iVrea4heeHlQ0KK+iVrea3keePjQ0KK+iVrea3keepjg0KK+iVrembquWQnw0KK+iVreWHseaHiw0KK+iVreWNmuS7gQ0KK+iVreWNmuS7sA0KK+iVreWvjOWFgw0KK+iVreaDoOWFgw0KK+iVreaDoOiKsw0KK+iVreaDoOmEiQ0KK+iVreaWkOWmgg0KK+iVreaZr+iBsA0KK+iVreaZuuaihQ0KK+iVreaji+WFgw0KK+iVreero+m0uw0KK+iVreipoOaWuQ0KK+iVremAuOW5sw0KK+iVrembheS4uQ0KK+iVrembheaWhw0KK+iVrembheiOiQ0KK+iVrembr+W/gw0KK+iVreaEm+eOsg0KK+iVreeFpee3rw0KK+iVreeRm+aXlw0KK+iVreiBluaoug0KK+iVreipqeeShw0KK+iVreWYieeQqg0KK+iVreWvp+WQmw0KK+iVree2reWAqQ0KK+iVrei8lOW9pQ0KK+iVremKmOasig0KK+iVreaFp+aAoQ0KK+iVreeRqeecnw0KK+iVreaGtuiYrQ0KK+iVree/sOiLsQ0KK+iVremdnOWunA0KK+iVreixkOaZug0KK+iVrem6l+Wonw0KK+iVrem2tOi7kg0KK+iVreeQrue/sA0KK+iVreaqieitgQ0KK+iztOS5g+mgjA0KK+iztOWjq+i2hQ0KK+iztOS7geelkA0KK+iztOWkqem0uw0KK+iztOaWh+iLsQ0KK+iztOaWh+iPrw0KK+iztOS4luaYjA0KK+iztOS4lue2rQ0KK+iztOWPr+aBqQ0KK+iztOW8mOeSmA0KK+iztOato+mHjg0KK+iztOawuOmItA0KK+iztOeOieWUkA0KK+iztOeOiemcnA0KK+iztOS6puiyng0KK+iztOWmg+WQmw0KK+iztOaXreW9pQ0KK+iztOS8r+WogQ0KK+iztOWmmeWuow0KK+iztOWuj+aYjA0KK+iztOW7t+emuQ0KK+iztOW/l+aYjA0KK+iztOW/l+WBiQ0KK+iztOW/l+e2sQ0KK+iztOadj+WEkg0KK+iztOengOaYpQ0KK+iztOiCsuW7tw0KK+iztOiCsum6nw0KK+iztOS9s+S8tg0KK+iztOS9s+asow0KK+iztOS9s+aFpw0KK+iztOS9qeWQmw0KK+iztOWFtuS6rg0KK+iztOWtn+iPrw0KK+iztOWul+iqoA0KK+iztOWunOS9sw0KK+iztOWxheatow0KK+iztOaAoeaWhw0KK+iztOaAoeS8tg0KK+iztOaAoeWQmw0KK+iztOaAoeasow0KK+iztOaAoeaoug0KK+iztOaYjOW9pQ0KK+iztOaYjuWujw0KK+iztOaYjuW+tw0KK+iztOadseW7tg0KK+iztOaso+WunA0KK+iztOatpua6qg0KK+iztOeOq+Wmgg0KK+iztOiKs+W7tg0KK+iztOmVt+S9kQ0KK+iztOS/oeWFiQ0KK+iztOS/oeiqoA0KK+iztOS/iuWFhg0KK+iztOS/iuWujw0KK+iztOS/iuadsA0KK+iztOS/iumBlA0KK+iztOS/kOWNiQ0KK+iztOWGoOWujw0KK+iztOWLh+W/lw0KK+iztOWlleW4hg0KK+iztOWnv+Wdhw0KK+iztOWogeWdhw0KK+iztOWuo+WmpA0KK+iztOW7uuWQiA0KK+iztOW7uuS9kQ0KK+iztOW7uuW/lw0KK+iztOW7uumbhA0KK+iztOW7uuiejQ0KK+iztOW9peS9kA0KK+iztOW9peiJrw0KK+iztOW9peaoug0KK+iztOaAnemclg0KK+iztOaUv+WvrA0KK+iztOaYreWFiQ0KK+iztOaYrem+jQ0KK+iztOaYseWLmw0KK+iztOafj+S8uA0KK+iztOafj+m+jQ0KK+iztOePgOizog0KK+iztOebiOmdkg0KK+iztOenkeWNsA0KK+iztOe0hemcng0KK+iztOe+juWGoA0KK+iztOe+jumMtQ0KK+iztOiMguW7tw0KK+iztOiZueS8tg0KK+iztOi7jeiIiQ0KK+iztOmDgembrw0KK+iztOmfi+mBlA0KK+iztOWutuW8mA0KK+iztOaMr+eUnw0KK+iztOa1qeixkA0KK+iztOenqeWFiQ0KK+iztOmrmOW/lw0KK+iztOWci+aBqQ0KK+iztOWfuua3pQ0KK+iztOWVn+a6kA0KK+iztOa3keaAoQ0KK+iztOa3keiyng0KK+iztOa3keiQjQ0KK+iztOiOiembrw0KK+iztOaDoOWQmw0KK+iztOaEieiKsw0KK+iztOasveiprg0KK+iztOiytOe+qQ0KK+iztOmahuW5sw0KK+iztOmbheeQtA0KK+iztOmghuaMrw0KK+iztOa6kOa3sw0KK+iztOe+qeS4rQ0KK+iztOiRpuW4hg0KK+iztOmdluWunA0KK+iztOWYieaFpw0KK+iztOamrueSiQ0KK+iztOe2reW7tw0KK+iztOmKmOebuA0KK+iztOWinuiBsA0KK+iztOaFtumKmA0KK+iztOaFp+Wonw0KK+iztOa9lOiKsw0KK+iztOmLkg0KK+iztOabiealkw0KK+iztOepjui8nQ0KK+iztOmMpuWEhA0KK+iztOmdnOeShw0KK+iztOm0u+mKmA0KK+iztOmfu+Wmgg0KK+iztOm6lw0KK+iztOm6l+mbrw0KK+iztOiKg+WQmw0KK+iztOafiuajiw0KK+iztOeRi+aYgA0KK+iztOmciOWEkg0KK+mBsuWwmuasig0KK+mMouS7peaBrA0KK+mMouiJr+iVmQ0KK+mMouaso+WunA0KK+mMouWogeiejQ0KK+mMoumDgeiYiw0KK+mMoumAuOmclg0KK+mMouW+t+S/ig0KK+mMoeaDoOmbrw0KK+mWu+aDoOeOsg0KK+mcjeiOmOeRnA0KK+mnseawuOW7ug0KK+mnseWto+W5sw0KK+mnseiKs+aipw0KK+mnseW7uuWRiA0KK+mnseihjem+jQ0KK+mnseWYieaFtg0KK+mukeihjOS7gQ0KK+mukeWci+WzsA0KK+m+jeengOiyng0KK+m+jeaYn+WFhg0KK+WEsuS6jui2hQ0KK+aHieW/l+Wujw0KK+aItOS5meiPgQ0KK+aItOWkp+mIng0KK+aItOWFg+WIqQ0KK+aItOaWh+mbhA0KK+aItOato+W5sw0KK+aItOeri+S6ug0KK+aItOWFqOWIqQ0KK+aItOWuiOatow0KK+aItOS9kea0sg0KK+aItOWRiOWuiQ0KK+aItOWuj+S4ng0KK+aItOW/l+aYhw0KK+aItOadj+iKsw0KK+aItOS9s+W5sw0KK+aItOWto+WFqA0KK+aItOaAoeiyng0KK+aItOaYjuePoA0KK+aItOS/iue3rw0KK+aItOeni+mmmQ0KK+aItOmDgeiKsw0KK+aItOaMr+mBoA0KK+aItOWci+iJrw0KK+aItOaDn+aciQ0KK+aItOiOiQ0KK+aItOajruWcsA0KK+aItOmbheWmgg0KK+aItOWCs+Wutg0KK+aItOeRnuWQmw0KK+aItOe+pOWzsA0KK+aItOWYieWujw0KK+aItOWYieaGsg0KK+aItOe2reS8uA0KK+aItOWinueRnA0KK+aItOizouelpQ0KK+aItOmdnOWEgA0KK+aItOW/nuiHuw0KK+aItOiWj+ePig0KK+e5huS/oeWuhw0KK+iWm+S5g+WFgQ0KK+iWm+S4ueahgg0KK+iWm+S4lueFjA0KK+iWm+eOiemLkg0KK+iWm+WFieeoiw0KK+iWm+WmguWQmw0KK+iWm+eZvuaDoA0KK+iWm+W/l+Wujw0KK+iWm+S+neiSqA0KK+iWm+W5uOWYiQ0KK+iWm+aYh+aXrQ0KK+iWm+Wllem+jQ0KK+iWm+e+juiKsw0KK+iWm+Wxleeriw0KK+iWm+WBieS8rw0KK+iWm+a3kemdlg0KK+iWm+WHseaWhw0KK+iWm+WcjeS4rQ0KK+iWm+aZr+aWhw0KK+iWm+ero+e2uA0KK+iWm+mbheiQjQ0KK+iWm+eRnuePjQ0KK+iWm+WYiembhA0KK+iWm+iTk+iKsw0KK+iWm+WEkumcmQ0KK+iWm+mfu+Wptw0KK+iWm+mIuuecnw0KK+isneS6juaruw0KK+isneWwj+aihQ0KK+isneS7geWTsg0KK+isneWFg+iytA0KK+isneW/g+mbhQ0KK+isneaWh+Wonw0KK+isneaWh+Wgrw0KK+isneaWh+eRnA0KK+isneaWh+aWjA0KK+isneS7peasow0KK+isneW8mOS6rg0KK+isneato+ebig0KK+isneawuOS/oQ0KK+isneeOieePoA0KK+isneeri+e+pA0KK+isneWFieS4rQ0KK+isneWQieixkA0KK+isneWmgum0uw0KK+isneaIjOWYiQ0KK+isneiBvw0KK+isneS9kOWunA0KK+isneWFi+W8tw0KK+isneWdh+avhQ0KK+isneWuj+W/oA0KK+isneWuj+e3rw0KK+isneW/l+Wujw0KK+isneW/l+aYjg0KK+isneW/l+WBiQ0KK+isneW/l+mAuA0KK+isneW/l+W+tw0KK+isneaJtumMpg0KK+isneengOmdkg0KK+isneengOiTrg0KK+isneiCsuWonw0KK+isneiCsumclg0KK+isneS6nuW1kA0KK+isneS+neWAqw0KK+isneS9s+aWhw0KK+isneS9s+Wujw0KK+isneS9s+iKsw0KK+isneS9s+WAqQ0KK+isneS9s+e0lA0KK+isneS9s+mbrw0KK+isneS9s+epjg0KK+isneS9s+aruw0KK+isneS9qeWQmw0KK+isneS9qeiKsw0KK+isneS9qeePig0KK+isneS9qeePjQ0KK+isneS9qeecnw0KK+isneS9qeiTiQ0KK+isneS+keabuA0KK+isneWFtuaWjA0KK+isneWRqOeGvg0KK+isneWdpOaGsg0KK+isneWtn+WQmw0KK+isneWtn+iKuA0KK+isneWtn+ecnw0KK+isneWtn+aoug0KK+isneWtn+iKqQ0KK+isneWul+S9kQ0KK+isneWul+WuuQ0KK+isneWul+izog0KK+isneWul+aGsg0KK+isneWul+e/sA0KK+isneWunA0KK+isneWunOiKsw0KK+isneWunOWAqw0KK+isneWunOWptw0KK+isneWunOiHuw0KK+isneWum+eOsg0KK+isneWum+irrg0KK+isneWwmuWEkg0KK+isneW5uOWunA0KK+isneW6mue/sA0KK+isneW/oOWLpA0KK+isneaAoeWptw0KK+isneaJv+mBlA0KK+isneaWvOWPoQ0KK+isneaYk+mclg0KK+isneaYjOeRvg0KK+isneaYjg0KK+isneaYjuWujw0KK+isneaYjuadkQ0KK+isneaYjuiKsw0KK+isneaYjuWAqw0KK+isneaYjuabuA0KK+isneaYjuaDoA0KK+isneaYjuaGrA0KK+isneaYjuaGsg0KK+isneaYjue/sA0KK+isneaYjuirtA0KK+isneaYh+WTsg0KK+isneadseaYhw0KK+isneadseabiQ0KK+isneadvuaGsg0KK+isneaso+Wujw0KK+isneaso+aAoQ0KK+isneaso+mHlw0KK+isneaso+mclg0KK+isneeJp+mYrg0KK+isneenieWuuQ0KK+isneenieirug0KK+isneiKnemdkg0KK+isnemHkeiyng0KK+isnemVt+WOnw0KK+isnembqOmdkg0KK+isnemdkuaoug0KK+isneS/iuWujw0KK+isneS/nuaesA0KK+isneWlleWnnQ0KK+isneW9peWQjw0KK+isneaUv+eUtw0KK+isneaUv+mBlA0KK+isneaUv+e/sA0KK+isneafj+iInw0KK+isneeah+e/lA0KK+isneeni+eHlQ0KK+isnee+jueOsg0KK+isneiHtOe+pA0KK+isnemDgeeRhA0KK+isneWutuiPsQ0KK+isneW6reaBqQ0KK+isneaZieizog0KK+isnea1qeeEtg0KK+isnee0oOiPsQ0KK+isneS5vumnvw0KK+isneabvOebiA0KK+isneWci+W9rA0KK+isneWpieeOsg0KK+isneWVn+aWhw0KK+isneaik+m6nw0KK+isnea4hea0sg0KK+isnea3keiKrA0KK+isnea3keWonw0KK+isnea3kemIng0KK+isneeajuebiA0KK+isneesoOWFgw0KK+isneWHseWBiQ0KK+isneWNmueakw0KK+isneWqm+eQqg0KK+isneW1kOWxjw0KK+isneaDoOiKrA0KK+isneaDoOiQjQ0KK+isneaZr+S7gQ0KK+isneaZuua1qQ0KK+isneakjeWyoQ0KK+isneeak+aZug0KK+isneiPiuiVmQ0KK+isnemAsuW/oA0KK+isnembheWmgg0KK+isnembhembqg0KK+isnembheiQjQ0KK+isnembr+WHsQ0KK+isnemghumahg0KK+isneavk+eOsg0KK+isneeRnuaihQ0KK+isneiQrOm+jQ0KK+isneipqeaFpw0KK+isneWYieePig0KK+isneWYiemKmA0KK+isneamruWTsg0KK+isneeip+iPgQ0KK+isnee2reS7gQ0KK+isnee/oOeSsA0KK+isnemKmOW/oA0KK+isnemKmOaZug0KK+isnemzs+eOsg0KK+isneW+t+mIng0KK+isneaFp+ePjQ0KK+isneaFp+eTig0KK+isneiUmuWEkg0KK+isneWtuOe2sQ0KK+isneabieW1kA0KK+isneeHleeOsg0KK+isneiVmQ0KK+isneiejem9ig0KK+isnemdnOWunA0KK+isnemdnOWEgA0KK+isneeSpuWmgg0KK+isnem0u+mnvw0KK+isneemruaIkA0KK+isnemOruWuhw0KK+isneeTiuaWhw0KK+isnemfu+WEkg0KK+isneWvtueRog0KK+isneiAgOmkig0KK+isnemhr+mKmA0KK+isneaXu+iOiQ0KK+isneaZn+mKmA0KK+isneeFkumguw0KK+isneeHv+iBsA0KK+mNvuS5meawkQ0KK+mNvuWFg+aMrw0KK+mNvuaWh+Wuhw0KK+mNvuaWh+asvQ0KK+mNvuaciOWckw0KK+mNvuW5vOWHjA0KK+mNvuawuOmbhA0KK+mNvueOieaDoA0KK+mNvuWFhuawkQ0KK+mNvuaIkOWlhw0KK+mNvuS8r+WQmw0KK+mNvuWtneWFtg0KK+mNvuW/l+Wujw0KK+mNvuW/l+ixqg0KK+mNvuengOiKsw0KK+mNvuiCsuirug0KK+mNvuS+nemdnA0KK+mNvuS9s+ecnw0KK+mNvuS9s+epjg0KK+mNvuS9qeiKuA0KK+mNvuS9qeWptw0KK+mNvuWNk+WEkg0KK+mNvuWtn+aGrA0KK+mNvuWunOWFqA0KK+mNvuWunOiIiA0KK+mNvuWwmuWEkg0KK+mNvuW7tuiPrw0KK+mNvuaJv+eSiw0KK+mNvuaYk+mBlA0KK+mNvuaYjuengA0KK+mNvuaYjuaZjw0KK+mNvuaYjuaGsg0KK+mNvuaYh+epjg0KK+mNvuaso+e/sA0KK+mNvuenieirug0KK+mNvumHkeeSiw0KK+mNvuS/iueUqw0KK+mNvuaUv+awkQ0KK+mNvuaUv+mMpg0KK+mNvuebiOaFpw0KK+mNvue+jueQsw0KK+mNvumDgee/jg0KK+mNvuaMr+azkw0KK+mNvue0i+aYkw0KK+mNvuWVhumnvw0KK+mNvuW0h+aihQ0KK+mNvua3keiKrA0KK+mNvua3keiQjQ0KK+mNvuWHseS+nQ0KK+mNvuaDoOWmgg0KK+mNvuaZuuWCkQ0KK+mNvue1ouWmgg0KK+mNvumAuOefsw0KK+mNvumbsuWFiQ0KK+mNvua6kOW+tw0KK+mNvuijleaWhw0KK+mNvuWYiemzsw0KK+mNvuemjuWFgw0KK+mNvumKmOaZug0KK+mNvuW+t+mclg0KK+mNvuaoguWQnw0KK+mNvuabieW1kA0KK+mNvumMpueQsw0KK+mNvuiWsOWrug0KK+mNvum1rOmjmw0KK+mNvuaHv+iPrw0KK+mNvuaXu+WcnA0KK+meoOWyseeQpg0KK+mfk+aWh+ixkA0KK+mfk+WFi+WEiQ0KK+mfk+S9qeWKrQ0KK+mfk+WunOa9lA0KK+mfk+aYjuWAqw0KK+mfk+ebuOWunA0KK+mfk+aihQ0KK+mfk+mbheiAjA0KK+mfk+WYiemnvw0KK+mfk+WvtueRqQ0KK+WPoua3keiPrw0KK+ewoeS4iuWTsg0KK+ewoeWjq+ebig0KK+ewoeWjq+a/oA0KK+ewoeWwj+iVmQ0KK+ewoeaWh+S6qA0KK+ewoeaWh+iytA0KK+ewoeS4luijlQ0KK+ewoeW3p+Wptw0KK+ewoeawkem+jQ0KK+ewoeeOieePjQ0KK+ewoeeri+S6ug0KK+ewoeS8iuWplQ0KK+ewoeS7sOWjrw0KK+ewoeWQieiBsA0KK+ewoeWuh+Wxjw0KK+ewoeeZvuaHiQ0KK+ewoeiHs+mchg0KK+ewoeS8tuWonw0KK+ewoeWQm+eOsg0KK+ewoeWmpOeOsg0KK+ewoeWuj+WAqw0KK+ewoeW7t+WuiQ0KK+ewoeW/l+WuiQ0KK+ewoeW/l+WzsA0KK+ewoeW/l+mbhA0KK+ewoeW/l+epjg0KK+ewoeengOadjw0KK+ewoeengOe0lA0KK+ewoeiyneePig0KK+ewoeS9s+eQqg0KK+ewoeS9qeeQqg0KK+ewoeWul+W+tw0KK+ewoeaAoeWptw0KK+ewoeaYjumbgQ0KK+ewoeeOq+eOiQ0KK+ewoembqOiUrQ0KK+ewoeW7uuS4gA0KK+ewoeaYreiQuA0KK+ewoee+juWonw0KK+ewoeiZueeQqg0KK+ewoeWutuaWsA0KK+ewoeePrumbhQ0KK+ewoeWBpeS/ig0KK+ewoeWci+aWjA0KK+ewoeWVn+aBhg0KK+ewoea3keiKrA0KK+ewoea3keWptw0KK+ewoeiOiemdnA0KK+ewoeWNmuW9rA0KK+ewoeaDoOa5mA0KK+ewoeajruS5mQ0KK+ewoeiPr+ecnw0KK+ewoembheWmgg0KK+ewoemghueriw0KK+ewoeaVrOW6rQ0KK+ewoea6ouWdhw0KK+ewoeeRnuajuw0KK+ewoeiBluixqg0KK+ewoeipqeWzsA0KK+ewoeWYieWujw0KK+ewoeWYieW9rA0KK+ewoeWYiem9oQ0KK+ewoea8oueSiw0KK+ewoeemjuS9kQ0KK+ewoee2reiQsQ0KK+ewoemBoOecnw0KK+ewoemKmOi+sA0KK+ewoemzs+WEgA0KK+ewoeaFp+Wonw0KK+ewoeaGtuWmgg0KK+ewoemMq+a3tQ0KK+ewoemnv+iyvw0KK+ewoeiXneWzsA0KK+ewoempqua9lA0KK+ewoeeRi+WAqw0KK+ewoeaBkuiBlg0KK+iBtuadseWNlw0KK+iBtuaakOWzuw0KK+iXjeWtkOahkw0KK+iXjeWFg+eakw0KK+iXjeaWh+WtnQ0KK+iXjeW8mOWBiQ0KK+iXjeS7suWBiQ0KK+iXjeW/l+eZvA0KK+iXjeaAoeW5sw0KK+iXjeaYlee3rw0KK+iXjeaYpeeZvA0KK+iXjeWzu+W9rA0KK+iXjeWBieS7gQ0KK+iXjeWci+iPrw0KK+iXjeaik+S+lg0KK+iXjeaDoOiQjQ0KK+iXjembhem9oQ0KK+iXjeWYieWTsg0KK+iXjeaFp+ePig0KK+iXjem7m+eRqQ0KK+mXleWwkeiKsw0KK+mXleWQn+WkmQ0KK+mXleaYjuaFpw0KK+mXlemAouavhQ0KK+mXleeAheiKrA0KK+mhj+Wjq+W9rA0KK+mhj+Wkp+emjw0KK+mhj+Wwj+WHoQ0KK+mhj+aciA0KK+mhj+W8mOelpQ0KK+mhj+awuOiKsw0KK+mhj+eOieeRiw0KK+mhj+WFieeOlw0KK+mhj+WmgueOiQ0KK+mhj+acieeUtw0KK+mhj+S8r+Wlhw0KK+mhj+WRiOaXrQ0KK+mhj+WmmeiKsw0KK+mhj+Wuj+WTsg0KK+mhj+Wuj+WPoQ0KK+mhj+W/l+aIkA0KK+mhj+W/l+aPmg0KK+mhj+W/l+m6nw0KK+mhj+engOecnw0KK+mhj+iJr+a+pA0KK+mhj+S9s+aFpw0KK+mhj+Wul+W5sw0KK+mhj+aJv+WBiQ0KK+mhj+enieW+tw0KK+mhj+WlleS7gQ0KK+mhj+eni+eQtA0KK+mhj+iLpeW6rQ0KK+mhj+Wutuelug0KK+mhj+ePruW1kA0KK+mhj+Wci+abuA0KK+mhj+WwieWHsQ0KK+mhj+aZqOaakA0KK+mhj+a3kembsg0KK+mhj+Wpt+eOsg0KK+mhj+iPr+aIkA0KK+mhj+mbheWNiQ0KK+mhj+mbr+mfuw0KK+mhj+eRnuaWhw0KK+mhj+eRnOaFpw0KK+mhj+iBlum0uw0KK+mhj+WYieaIkA0KK+mhj+WYieeQsw0KK+mhj+Wvp+S9kQ0KK+mhj+emj+mghg0KK+mhj+mKgOahkA0KK+mhj+mztOaFtg0KK+mhj+eRqem1rA0KK+mhj+a+pOWuhw0KK+mhj+m0u+asvQ0KK+mhj+eNu+S9kQ0KK+mhj+mIuuiKuA0KK+mtj+Wjq+WCkQ0KK+mtj+WtkOaZtA0KK+mtj+S7geWogQ0KK+mtj+aWh+e2ug0KK+mtj+W3p+aZtA0KK+mtj+eOiembrw0KK+mtj+S7u+W7tw0KK+mtj+WQjeaxjg0KK+mtj+Wuh+mBlA0KK+mtj+eZvuebmw0KK+mtj+S8tuWonw0KK+mtj+WQm+a9lA0KK+mtj+WtneWvrA0KK+mtj+WykeiKrA0KK+mtj+W/l+WAqw0KK+mtj+engOaBrA0KK+mtj+iJr+S9kQ0KK+mtj+S9s+WNvw0KK+mtj+WunOWvrA0KK+mtj+aYjueroA0KK+mtj+S/iuaXug0KK+mtj+aYpeeUnw0KK+mtj+iLsemOrg0KK+mtj+aZieS4gA0KK+mtj+WBiQ0KK+mtj+W0h+ahkw0KK+mtj+a3keeOqw0KK+mtj+mAouavhQ0KK+mtj+acneS/oQ0KK+mtj+mAuOeOsg0KK+mtj+aEm+a0pQ0KK+mtj+a7h+S9kQ0KK+mtj+etoOaWhw0KK+mtj+mItOiKnQ0KK+mtj+WYieiJrw0KK+mtj+WrpuWmnQ0KK+mtj+eiqeepjg0KK+mtj+mKmOa8og0KK+mtj+aFleW4hg0KK+mtj+i2qOWQiQ0KK+mtj+m6kuWuuQ0KK+mtj+eRhOiqvA0KK+m+kOawuOWfuQ0KK+aboOWpieWQmw0KK+e+heWNg+mbrw0KK+e+heWtkOi7kg0KK+e+heWwueS8tg0KK+e+heS7geWLhw0KK+e+heWFg+eUqw0KK+e+heWFgeS4rQ0KK+e+heWPi+iBsg0KK+e+heW/g+Wxjw0KK+e+heaWh+WunA0KK+e+heaWh+W9rA0KK+e+heaWh+m9ig0KK+e+heaciOWHsA0KK+e+heS4lumKmA0KK+e+heS7leajiw0KK+e+heW3p+iOiQ0KK+e+heato+mCpg0KK+e+heawuOaZug0KK+e+heeOieiQjQ0KK+e+heS6puaXiw0KK+e+heS7sOecnw0KK+e+heWFhue2rQ0KK+e+heWuh+S7uw0KK+e+heaXreWQmw0KK+e+heiHs+WWhA0KK+e+heWuj+S4gA0KK+e+heW/l+mbhA0KK+e+heengOeOsg0KK+e+heS6nuWvpw0KK+e+heS9s+eQpg0KK+e+heWunOWQmw0KK+e+heaAoeaDoA0KK+e+heaYjueroA0KK+e+heaso+aFiA0KK+e+heiKt+mdkg0KK+e+heS/iuW9pQ0KK+e+heW9pQ0KK+e+heeOsueOsg0KK+e+hee+juiTrg0KK+e+heiLkeamlQ0KK+e+heWutuasow0KK+e+heaMr+W7tw0KK+e+heazsOWAqw0KK+e+heePruWonw0KK+e+hee0oOiKsQ0KK+e+heWBieWTsg0KK+e+heWBpeW/lw0KK+e+heWUr+eRhA0KK+e+heWci+iPrw0KK+e+heWci+aakA0KK+e+heWpieWopQ0KK+e+heW8tw0KK+e+heaVj+aWhw0KK+e+heaVj+WEgA0KK+e+hea3h+aWhw0KK+e+hea3keiTiQ0KK+e+hee0ueaWhw0KK+e+heWCkQ0KK+e+heWHsemgpA0KK+e+heWNmuS/ig0KK+e+heaDoOaWuQ0KK+e+heaDoOiYrQ0KK+e+heaZuuiDvQ0KK+e+hee0q+iPgQ0KK+e+heiPr+a/gw0KK+e+hemInuiAgA0KK+e+hembheaVjw0KK+e+hembr+eQtA0KK+e+heavk+WCkQ0KK+e+heeRnuamrg0KK+e+heiBlueQsw0KK+e+hemBlA0KK+e+heWYieeOsg0KK+e+heamrui8nQ0KK+e+hemam+W3nQ0KK+e+heaFtuWCkQ0KK+e+heeRqeajuw0KK+e+heabieWogQ0KK+e+heiIiOWuiQ0KK+e+hem0u+Wfug0KK+e+hemmqOWunA0KK+e+heeFkueoiw0KK+itmuWPiOawkQ0KK+itmuWFieiPrw0KK+itmuS9qeW1kA0KK+itmuaChemmqA0KK+itmuaZuuS7gQ0KK+itmuirpg0KK+mXnOS4gOW/gw0KK+mXnOW/l+Wuhw0KK+mXnOa3kembsg0KK+WatOWtkOetkQ0KK+WatOW/g+WFgw0KK+WatOWPr+WQmw0KK+WatOW/l+WTsg0KK+WatOaYpemzsw0KK+WatOaMr+iIiA0KK+WatOWpieeOsg0KK+WatOa3keiPgQ0KK+WatOipoOiBlg0KK+WatOe2reW+tw0KK+WatOmmpQ0KK+erh+eRnumcng0KK+iXuuW/g+aAoQ0KK+iYh+WNg+S7ow0KK+iYh+Wjq+ixqg0KK+iYh+WtkOe/lA0KK+iYh+S4reaAoQ0KK+iYh+WFg+S5mQ0KK+iYh+aWhw0KK+iYh+aWh+Wonw0KK+iYh+aWh+i8nQ0KK+iYh+S4luW6rQ0KK+iYh+W3p+Wvpw0KK+iYh+ato+Wutg0KK+iYh+awuOWCkQ0KK+iYh+eOieS/rg0KK+iYh+eri+WHsQ0KK+iYh+WmguiVmQ0KK+iYh+erueWuiQ0KK+iYh+WQm+mcjw0KK+iYh+Wuj+azsA0KK+iYh+W/l+Wtnw0KK+iYh+W/l+WghQ0KK+iYh+W/l+m0uw0KK+iYh+engOeOsg0KK+iYh+iCsuW8mA0KK+iYh+iCsuS/ng0KK+iYh+iCsueRsQ0KK+iYh+S9s+i2sw0KK+iYh+S9qeeRnA0KK+iYh+Wul+S4gA0KK+iYh+WwmueRvg0KK+iYh+aAoeWmgg0KK+iYh+aAoeWQmw0KK+iYh+aAoeiPgQ0KK+iYh+aAoemmqA0KK+iYh+aYjuS/ig0KK+iYh+aYjum0uw0KK+iYh+atpum+jQ0KK+iYh+iKs+atow0KK+iYh+iKs+eRqQ0KK+iYh+mdkuWmmQ0KK+iYh+S/oea6kA0KK+iYh+S/iuWkqw0KK+iYh+S/iuelpQ0KK+iYh+S/iumKmA0KK+iYh+S/nuWmgg0KK+iYh+WLh+iqoA0KK+iYh+WlleWCkQ0KK+iYh+WogemBlA0KK+iYh+W7uuS4rQ0KK+iYh+W7uuW/lw0KK+iYh+W7uuixqg0KK+iYh+W9peeGkg0KK+iYh+aBhuiHsw0KK+iYh+aUv+ismQ0KK+iYh+aYreWQmw0KK+iYh+aYseS7uw0KK+iYh+afj+W3ng0KK+iYh+afj+aoug0KK+iYh+ePiueRqQ0KK+iYh+eah+WOnw0KK+iYh+ebiOeplw0KK+iYh+e0gOaVjw0KK+iYh+e+jueOsg0KK+iYh+iHtOS7gQ0KK+iYh+iLseeakw0KK+iYh+iynueHlQ0KK+iYh+mDgeWAqw0KK+iYh+mDgembhQ0KK+iYh+mmmeeQqg0KK+iYh+WAieawuA0KK+iYh+WTsuWEhA0KK+iYh+Wutg0KK+iYh+WutuS/oQ0KK+iYh+WutueRqQ0KK+iYh+Wzu+awkQ0KK+iYh+W6reeRpA0KK+iYh+aMr+mKmA0KK+iYh+ahk+aFtg0KK+iYh+a1qeeCug0KK+iYh+ebiuelvw0KK+iYh+eqiOeRsQ0KK+iYh+e0lOaFpw0KK+iYh+i7kuawkQ0KK+iYh+WBieiqoA0KK+iYh+Wci+WFuA0KK+iYh+Wgguixqg0KK+iYh+WpieaDoA0KK+iYh+aVjw0KK+iYh+a4heWuiQ0KK+iYh+a3keWptw0KK+iYh+eajuaFpw0KK+iYh+iOieaDoA0KK+iYh+WNmueOhA0KK+iYh+aDoOiyng0KK+iYh+aZtuaWsA0KK+iYh+a5mOaAoQ0KK+iYh+iInOWNvw0KK+iYh+mAuOecnw0KK+iYh+mbheWQmw0KK+iYh+mbheaDoA0KK+iYh+mbheaFpw0KK+iYh+mghuiqoA0KK+iYh+aEj+W1kA0KK+iYh+aVrOiPsQ0KK+iYh+avk+W9rA0KK+iYh+eMt+e/lA0KK+iYh+edpuS7gQ0KK+iYh+e+pOWCkQ0KK+iYh+iBlua2tQ0KK+iYh+ijleaWhw0KK+iYh+ipqeWptw0KK+iYh+mdluW1kA0KK+iYh+WYieWujw0KK+iYh+WYiem0uw0KK+iYh+eip+aYrQ0KK+iYh+iBnuisuQ0KK+iYh+WEhOePjQ0KK+iYh+aFp+aWhw0KK+iYh+aFp+Wonw0KK+iYh+avhQ0KK+iYh+abieWmgg0KK+iYh+abieiKgw0KK+iYh+mMpuaYhw0KK+iYh+mdnOiKsw0KK+iYh+iBsuaMrw0KK+iYh+m0u+WEgA0KK+iYh+m1rOe/sA0KK+iYh+m6l+iPrw0KK+iYh+aXu+WQmw0KK+iYh+eDnOavhQ0KK+iYh+eQoeiplQ0KK+iYh+eRi+eQsw0KK+iYh+ixiuajiw0KK+iYh+mIuuiPgQ0KK+mQmOWjq+asvQ0KK+mQmOaWh+engA0KK+mQmOeOieWmgg0KK+mQmOS9s+e1uQ0KK+mQmOebiOWHsQ0KK+mQmOaMuuixqg0KK+mQmOWci+mKmA0KK+mQmOaVj+aEqw0KK+mQmOaDoOWuhw0KK+mQmOmghuemuQ0KK+mQmOeip+iYrQ0KK+mQmOmmqOiqvA0KK+mlkuW/l+ixqg0KK+mlkuS6rg0KK+mlkuePrum9oQ0KK+mlkuaVrOWciw0KK+m7qOS4gOeCug0KK+mhp+aWh+e1og0KK+mhp+eri+iYiw0KK+mhp+Wul+aymw0KK+mhp+WAqeWmgg0KK+mhp+W0h+W+tw0KK+mhp+e/oOiPrw0KK+m+lOS6juePig0KK+m+lOaWh+epjg0KK+m+lOWFhuelug0KK+m+lOS9qeWQmw0KK+m+lOmdkumbsg0KK+m+lOW9peWQjQ0KK+m+lOiynuWmgg0KK+m+lOabuOiBlg0KK+m+lOa3keiLlw0KK+m+lOmbheasow0KK+m+lOmdluipkg0KK+m+lOixq+aFpw0KK+S6k+mahuelpQ0KK+S9mOWwmum0uw0KK+S9mOiBr+aWjA0KK+mCvuS6puWNlw0KK+a2guS4luWSjA0KK+a2guWQm+iTiQ0KK+a2guiCsuamrg0KK+a2guaso+Wujw0KK+a2guaUv+eUtw0KK+a2guaMr+awkQ0KK+a2guWVn+WOnw0KK+a2guWvjOaYnw0KK+a2gumbheeHlQ0KK+a2guWYieWOnw0KK+a2guaFp+ePjQ0KK+a2guiAgOWNhw0KK+eymOW8mOWQiQ0KK+eymOiCsueRiw0KK+eymOe0lOWmgg0KK+eymOiBlumRqw0KK+eymOiAgOS7gQ0KK+mElOW/g+aAoQ0KK+mds+eri+WBiQ0KK+mEuuWFieWvpw0KK+askuWto+W8tw0KK+6AgOiKs+eQpg0KK+6AgOWpieWptw0KK+6AgOmKmOa6kA0KK+6JvuaWh+WLsw0KK+6Jvumzs+eQqg0KK+6Lp+S/oee+qQ0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZWNlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2UudHh0CkBAIC0wLDAgKzEsMjI4MzMgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor44GC44GN44KC44GoLOOBsuOCjeOBlw0KK+OBguOBjeOBsCzjgbLjgo3jgZcNCivjgYLjgonjgYQs44KI44GX44Gy44KNDQor44GC44KJ44GELOOBsuOBqOOBlw0KK+OBguOBi+OBjOOCjyzjgYjjgYTjgZgNCivjgYLjgonjgY0s44GN44KI44G/DQor44GC44GE44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBjeOBrizjgb/jgaHjgYoNCivjgYLjgY3jgoTjgb4s44Gy44KN44GXDQor44GC44GV44GELOOBi+OBmuOBvuOBlQ0KK+OBguOBuSzjgY3jgojjgZ/jgYsNCivjgYLjgorjgYws44Gy44KN44GXDQor44GC44GN44GfLOOBsuOCjeOBlw0KK+OBguOBi+OBpOOBiyzjgajjgosNCivjgYLjgonjgYQs44GL44Ga44GKDQor44GC44GV44Gv44KJLOOBpOOBqOOCgA0KK+OBguOBpOOBvyzjgZHjgpPjgYTjgaENCivjgYLjgo/jgoQs44GL44Ga44KEDQor44GC44GV44GL44KPLOOCiOOBl+OChuOBjQ0KK+OBguOBiuOBjSzjgbLjgo3jgZcNCivjgYLjgo/jgZos44KE44GZ44GKDQor44GC44GN44GP44GVLOOBl+OBkuOCiw0KK+OBguOBiuOChOOBjizjgbLjgafjgYLjgY0NCivjgYLjgZjjgZXjgo8s44GR44KT44GE44GhDQor44GC44GE44GdLOOBqOOBl+OBig0KK+OBguOBiuOBl+OBvizjgZvjgYTjgZQNCivjgYLjgags44Gu44KK44GKDQor44GC44GV44GuLOOChuOBjeOBig0KK+OBguOCiuOBjCzjgaTjgojjgZcNCivjgYLjgYrjgY0s44Gy44Go44GXDQor44GC44GE44GL44KPLOOBvuOCguOCiw0KK+OBguOBjeOBnyzjgaTjgajjgoANCivjgYLjgZXjga4s44KI44GX44Gm44KLDQor44GC44GV44GoLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBjSzjgb7jgZXjga/jgosNCivjgYLjgpPjganjgYYs44GL44Ga44GKDQor44GC44GV44GL44KPLOOBvuOBleOBguOBjQ0KK+OBhOOBhOOBoCzjgbLjgajjgZcNCivjgYTjgo/jgZXjgo8s44Go44GX44GC44GNDQor44GE44GX44GL44KPLOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgokNCivjgYTjgZfjga/jgoks44KI44GZ44GRDQor44GG44GL44GYLOOBr+OBpOOBi+OBmg0KK+OBhuOCgeOBn+OBqyzjgZfjgoXjgbLjgaENCivjgYrjgZHjgZ/jgass44KE44GZ44GXDQor44GK44GZ44GOLOOBoeOCiOOBi+OBmg0KK+OBiuOBi+OCjyzjgb7jgZXjgbLjgZMNCivjgYvjgajjgYYs44KI44GX44KEDQor44GL44KCLOOBneOBsuOBoQ0KK+OBj+OBvuOBjOOBhCzjgorjgofjgbjjgYQNCivjgZPjgpPjgaks44KG44GN44GKDQor44GZ44GO44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBr+OBvuOBleOBjSzjga7jgorjgYLjgY0NCivjgaHjgaAs44Gy44Gn44GXDQor44Gq44GL44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBquOBjOOBnyzjgoTjgZnjgZcNCivjgZXjgo/jgoDjgoks44Gy44KN44GXDQor44Gq44KL44GKLOOBvuOBk+OBqA0KK+OBquOCiuOBnyzjgb7jgZXjgY0NCivjga/jgZvjgYzjgo8s44G+44GV44GKDQor44G144GY44GfLOOBsuOCjeOBsuOBqA0KK+OBteOBmOOCj+OCiSzjgojjgZfjga7jgooNCivjgbbjgogs44GV44Gh44GTDQor44G744KKLOOBi+OBpOOBsuOBkw0KK+OBv+OBquOBv+OCgOOCiSzjgZHjgpPjgZgNCivjgb/jgoTjgZjjgb4s44GC44GN44Gy44KNDQor44KE44G+44GgLOOBv+OBjeOBsuOBkw0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgajjgZcNCivjgoTjgarjgY7jga/jgoks44G+44GV44GC44GNDQor44KI44GX44GuLOOBvuOBleOBlw0KK+OBq+OBhOOBoCzjgYLjgY3jgokNCivjgYrjgbLjgoPjgb4s44GK44GV44KADQor44GL44Gq44GM44KPLOOCiOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgaTjgYvjgZbjgY0s44GR44GE44GeDQor44GL44KP44GgLOOBoeOBiOOBkw0KK+OBguOBleOBi+OCjyzjgYvjgaHjgZMNCivjgZfjgoLjgaQs44KI44GX44Gu44G2DQor44GK44GLLOOChuOBv+OBkw0KK+OBiuOBjOOCjyzjgbLjgo3jgZMNCivjgZ/jgYTjgoks44GR44GE44GTDQor44GE44GX44GuLOOBn+OBi+OBkw0KK+OBjeOBv+OBl+OBvizjgabjgaTjgYoNCivjgZXjgajjgYYs44GT44GG44GYDQor44KE44G+44GgLOOBoeOBguOBjQ0KK+OBiuOBnyzjgaHjgojjgooNCivjgb7jgYjjgaAs44G+44KKDQor44GL44GW44KJ44GXLOOBn+OBi+OBlw0KK+OBlOOBqCzjgb/jganjgooNCivjgbvjgZcs44GX44KT44GE44GhDQor44GP44KN44GgLOOBj+OBq+OBsuOBkw0KK+OBpOOBi+OCj+OBjSzjgobjgYbjgZMNCivjgYTjgarjgYzjgY0s44GE44Gh44KN44GGDQor44GE44KP44KC44GoLOOCiuOBiOOBkw0KK+OBpOOCi+OBnyzjgb/jgbsNCivjgYTjgZfjgZjjgb4s44Gq44GK44GTDQor44KE44G+44Gq44GLLOOBv+OBleOBkw0KK+OBhuOBiOOBjSzjgb7jgZXjgYLjgY0NCivjgavjgZfjgoDjgoks44Gf44GL44Gy44GoDQor44KP44GE44GgLOOBk+OBmeOBkQ0KK+OCiOOBl+OBoCzjgZfjgofjgbLjgaENCivjgZfjgbbjgoQs44GN44KI44Gq44GMDQor44GC44GoLOOBguOBjeOCiQ0KK+OBv+OChOOBnyzjgabjgaTjgoQNCivjgYrjgZ/jgY0s44GK44GV44KADQor44GN44KI44GK44GLLOOBquOBiuOBv+OBoQ0KK+OBiuOBn+OBqyzjgbLjgafjgajjgZcNCivjgavjgZfjgo/jgY0s44G/44Gk44KLDQor44Gr44GX44KE44G+LOOBi+OBpOOBruOCig0KK+OBv+OBl+OBvizjgb7jgoLjgosNCivjgYvjgajjgYYs44GX44KT44KEDQor44GE44G+44GKLOOBqOOBl+OChA0KK+OBiuOBluOBjSzjgb7jgZXjgbLjgo0NCivjgZvjgY3jgoQs44Gf44KC44GkDQor44Gk44GP44GgLOOBn+OBi+OBlw0KK+OBv+OCiOOBlyzjgorjgofjgbjjgYQNCivjgojjgZfjgb8s44Gy44KN44Go44GXDQor44GV44GV44GK44GLLOOBguOBjeOBkw0KK+OBiuOBl+OBvizjgYLjgaTjgZMNCivjgY/jgbzjgZ8s44Gf44Gg44GXDQor44GX44Gw44KE44G+LOOCi+OBvw0KK+OBiuOBj+OBvCzjgobjgZ/jgYsNCivjgZ/jgaHjga4s44G+44GV44Gu44KKDQor44KP44GgLOOBi+OBiuOCiw0KK+OBvuOBpOOBl+OBnyzjgaTjgY7jgYoNCivjgZPjgoDjgoks44G+44GT44GoDQor44G+44GN44GX44GfLOOBn+OBi+OBlw0KK+OBguOBi+OBiizjgarjgYrjgb8NCivjga/jgZfjgoLjgags44Gf44GL44GXDQor44GK44GuLOOBn+OBi+OChuOBjQ0KK+OBm+OBjeOCguOBqCzjgbLjgo3jgZcNCivjgb7jgYjjgaAs44G/44Ga44G7DQor44G/44Gk44G744KKLOOBk+OBhuOBmA0KK+OBv+OBquOBv+OBnuOBrizjgb7jgZXjgobjgY0NCivjgZvjgYzjgo8s44Gu44G244KG44GNDQor44GZ44Ga44GNLOOBruOBtuOBvuOBlQ0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgobjgY0NCivjgojjgZfjgoTjgZks44Gf44GL44GXDQor44KE44G+44KC44GoLOOBoeOBr+OCiw0KK+OBi+OBqOOBhizjgaHjgZrjgZMNCivjgYvjgo/jgYvjgb8s44GX44KF44GeDQor44G+44GN44GuLOOBqOOBquOBvw0KK+OBmeOBmuOBjSzjgZjjgoXjgpMNCivjgbXjgovjgZXjgo8s44G/44Gh44KIDQor44Gv44KE44GXLOOBvuOBleOCguOCig0KK+OBhOOBvuOBq+OBlyzjgoTjgZnjgbLjgZMNCivjgb/jgoTjgoLjgags44GR44GE44GTDQor44G+44GNLOOChOOBmeOBsuOCjQ0KK+OBk+OBhOOBpyzjgbLjgajjgZcNCivjgo/jgZ/jgarjgbks44GL44Ga44GKDQor44GK44Gv44GXLOOCiOOBl+OBig0KK+OBguOBi+OBiizjgaHjgYvjgokNCivjgYLjgZXjgYQs44Gq44GK44GNDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBjeOCiSzjgYvjgYrjgooNCivjgavjgZfjgoDjgoks44Go44KI44GYDQor44KI44GX44GL44KPLOOCiOOBl+OBn+OBiw0KK+OBv+OBquOBvyzjgZjjgo0NCivjgaTjgovjgZ8s44G+44KKDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgogNCivjgb7jgaTjgYbjgoks44Gq44GK44GNDQor44GZ44GO44GfLOOBvuOBleOBig0KK+OBi+OCj+OBhCzjgZXjgajjgZcNCivjgZPjgY/jgbws44GY44KH44GYDQor44Gk44GgLOOBqOOBl+OBsuOBkw0KK+OBv+OChOOBn+OBkSzjgobjgYsNCivjgY/jgo3jgZXjgo8s44GP44Gr44GC44GNDQor44GZ44G/44Gy44KJLOOBleOBuw0KK+OBn+OBi+OBjSzjgb7jgZXjgZMNCivjgYTjgZfjgags44Gy44Go44GXDQor44KE44G+44GgLOOBguOBjeOBig0KK+OBq+OBhOOBpCzjgYvjgZrjgZMNCivjgYTjgo/jgoDjgoks44Gf44GL44GXDQor44GL44KP44Gq44G5LOOBvuOBleOBsuOBkw0KK+OBquOBjOOBhCzjgabjgovjgY0NCivjgoTjgb7jga0s44Go44GX44KG44GNDQor44GE44G+44GELOOBkeOCk+OBmA0KK+OBquOBi+OBiizjga7jgorjgYoNCivjgYrjgZfjgY3jgoos44GY44KF44Gr44GhDQor44GE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBiuOBi+OBmOOBvizjgZ/jgZHjgZcNCivjgYrjgavjgZcs44GY44KH44GYDQor44GZ44Ga44GNLOOBqOOBl+OBig0KK+OChOOBvuOBquOBiyzjgZXjgaTjgY0NCivjgZ/jgavjgZDjgaEs44G+44GT44GoDQor44GL44KP44G5LOOBqOOBl+OBn+OBiw0KK+OBk+OCk+OBrizjgojjgZfjgYvjgZoNCivjgZXjgajjgYYs44G+44GV44Gy44GTDQor44Gf44GL44KE44G+LOOBvuOBleOBig0KK+OCguOCiuOBv+OBoSzjgZPjgY0NCivjgbvjgorjgYvjgo8s44KC44Go44GL44GaDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBjeOBn+OCgOOCiSzjgYvjgpPjgZgNCivjgarjgYvjga/jgoks44KI44GX44Gy44KNDQor44GE44Gh44GELOOBsuOCjeOChuOBjQ0KK+OBhOOCj+OBlSzjgaHjgYLjgY0NCivjgZnjgZrjgY0s44Gf44GL44KG44GNDQor44KI44Gt44Gf44GrLOOBhOOBleOBig0KK+OBn+OBrizjgbXjgb/jga/jgosNCivjgZfjgbDjgZ8s44GY44KF44KTDQor44GE44Gu44GG44GILOOBmOOCheOCkw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjga/jgosNCivjgY3jgZcs44Gm44Gk44GY44KHDQor44GC44KP44GILOOBleOBpOOBvw0KK+OBn+OBkeOBiizjgYvjgZrjgbLjgo0NCivjgY3jga7jgZfjgZ8s44Go44GN44GKDQor44Gk44GL44GgLOOBv+OBjQ0KK+OBguOCiuOBqeOCgSzjgoTjgZnjgbLjgo0NCivjgY3jgaPjgYvjgo8s44GX44KT44GE44GhDQor44GK44GM44GV44KP44KJLOOBhOOBn+OCiw0KK+OBquOBjOOBmyzjgYvjgaTjgb8NCivjga/jgovjgoTjgb4s44Gf44G+44GTDQor44GK44GaLOOBguOBjeOCiQ0KK+OBk+OBleOBiyzjgbLjgo3jgb8NCivjgZfjgonjgZXjgY0s44Gy44Gn44Gu44KKDQor44Gf44Gq44G5LOOBi+OCiOOBkw0KK+OBhOOBkeOBjOOBvyzjgZfjgoXjgpPjgZgNCivjgZPjgbDjgoTjgZcs44GL44Gk44G144G/DQor44G+44Gk44Gw44KJLOOBn+OBkeOBlw0KK+OBquOBi+OBjOOCjyzjgbLjgafjgogNCivjgYrjgYzjgo8s44G+44GV44Gu44KKDQor44KI44GX44GgLOOBqOOBl+OBig0KK+OBhOOBkSzjgb7jgZXjgb8NCivjgZ/jgavjgZDjgaEs44GC44Gk44GXDQor44G+44GI44GgLOOCiOOBl+OBguOBjQ0KK+OBsuOCieOBrizjgYvjgZrjgbLjgZMNCivjgZfjgb/jgZos44G144G/44GC44GNDQor44KE44G+44GgLOOBqOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgajjgZfjgYLjgY0NCivjgZPjgb7jgaTjgZbjgY0s44Gy44GV44GL44GaDQor44GL44Go44GGLOOBn+OBi+OBsuOCjQ0KK+OBiuOCjyzjgYLjgaTjgbLjgZMNCivjgYTjgo/jgoDjgoks44KE44GZ44GKDQor44GE44KK44GILOOBqOOBl+OBi+OBmg0KK+OBguOBi+OChOOBvizjgajjgosNCivjgYLjgY3jgoLjgags44Gk44Go44KADQor44GL44G/44KA44KJLOOBpOOCiOOBlw0KK+OBmeOBv+OBnyzjgZjjgoXjgavjgaENCivjga/jgb7jgZXjgY0s44Gq44GK44GoDQor44KE44GZ44GgLOOCguOCiuOBsuOCjQ0KK+OBn+OBkeOCgOOCiSzjgZvjgYTjgZgNCivjgoDjgonjgYvjgb8s44G+44GV44Gu44G2DQor44Gq44GL44GY44G+LOOBleOBoOOBruOBtg0KK+OCguOCiuOCguOBqCzjgb7jgZXjgb/jgaENCivjgZvjgY3jgZDjgaEs44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBn+OBi+OChuOBjQ0KK+OBjeOBjOOCjyzjgY3jgb/jgZMNCivjgZ/jgYvjgbLjgoks44GC44GN44Go44GXDQor44KC44Gh44GgLOOBsuOCjeOBguOBjQ0KK+OBi+OCgeOChOOBvizjgb7jgoLjgosNCivjgYrjgoTjgb7jgaAs44G+44GV44GL44GaDQor44Gf44Gq44GLLOOBruOCiuOBkw0KK+OBu+OCk+OBvizjgbLjgo3jgZ/jgaANCivjgY3jga7jgZfjgZ8s44GL44Ga44KG44GNDQor44GX44Gu44Gk44GLLOOBvuOBleOChuOBjQ0KK+OBguOBhOOBr+OCiSzjgbLjgo3jgYLjgY0NCivjgarjgYzjgb7jgaQs44GC44GN44Gy44GTDQor44Go44KI44KA44KJLOOBi+OBiuOCiw0KK+OBsuOCieOBrizjgYLjgaTjgZcNCivjgY3jgoDjgoks44G+44KC44KLDQor44GE44GR44GgLOOBv+OBjeOChA0KK+OBhOOBl+OBr+OCiSzjgajjgb/jgaTjgZANCivjga7jgZDjgaEs44Gy44GV44Go44KCDQor44GT44GR44GkLOOBk+OBhuOBmA0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgobjgY0NCivjga/jgb7jgZDjgaEs44G+44GV44Gy44GTDQor44Gk44GY44GV44GLLOOBsuOCjeOBsuOBlQ0KK+OBhOOBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44GC44Gk44GXDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgb7jgZXjgbLjgZUNCivjgZXjgYvjgYzjgb8s44Gm44KL44Gy44GVDQor44GT44GZ44GOLOOBl+OCk+OBmA0KK+OBq+OBl+OBoCzjgoTjgZnjgbLjgZMNCivjgYTjgYTjgaAs44Gu44G244GX44GSDQor44GG44Gh44GgLOOChOOBmeOBteOBvw0KK+OCguOBqOOChOOBvizjgYjjgYTjgZgNCivjgb/jgoTjgoLjgags44G+44GV44GC44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBlw0KK+OBi+OBqOOBhizjgZjjgoXjgpMNCivjgZfjgonjgYQs44Gb44GE44GYDQor44Gv44GO44KP44KJLOOChuOBhuOBkw0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgosNCivjgb/jgaTjga/jgZcs44G/44Gk44G+44GVDQor44KC44KT44GYLOOBguOBpOOBsuOBkw0KK+OBn+OBjeOCguOBqCzjgZfjgpPjgZgNCivjgYrjgY/jgaAs44Gy44Gn44GC44GNDQor44Gk44GL44KC44GoLOOBleOBqOOCiw0KK+OCgOOBk+OBr+OCiSzjgZvjgYTjgZQNCivjgZXjgovjgoQs44KI44Gy44GhDQor44GK44GL44GY44G+LOOChOOBmeOBlw0KK+OBu+OBl+OBrizjga7jgorjgYvjgZoNCivjgbvjgZcs44Gy44GV44Gy44GTDQor44G144GX44G/LOOBm+OBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgokNCivjgavjgZfjgoTjgb4s44KE44GZ44G/DQor44Gk44KL44G+44GhLOOBoeOBr+OChA0KK+OBqOOBv+OBnyzjgYTjgY/jgogNCivjgYbjgaHjgaAs44KE44GZ44GXDQor44GK44Gf44GLLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBhCzjgZXjgajjgZcNCivjgZ3jgYzjgbks44GT44GG44GYDQor44KP44GgLOOChuOBjeOBsuOBpw0KK+OBk+OBleOBiyzjgYvjgYrjgooNCivjgYLjgZ0s44KI44Gy44GhDQor44GC44KJ44GELOOBruOCiuOBkw0KK+OBmeOBjuOCgOOCiSzjgZfjgoXjgZgNCivjgYLjgY3jgojjgZcs44GX44KF44GYDQor44GC44GV44GL44KPLOOChOOBmeOBhOOBjw0KK+OCj+OBoCzjgb/jgaHjgYoNCivjgYTjgZHjgaAs44Go44GX44Gy44GTDQor44GK44GL44KC44GoLOOBsuOBleOBqA0KK+OBguOBiuOBjSzjgbLjgo3jgbXjgb8NCivjgYbjgYjjgZXjgo8s44GT44GG44GE44GhDQor44GG44KE44G+LOOBn+OBpOOChA0KK+OBquOBi+OBr+OBvizjgZfjgpPjgZgNCivjgYvjgo/jgoLjgags44GX44KH44Gy44GhDQor44GX44KH44Gy44KD44G+LOOBquOCi+OBqA0KK+OBmeOBiOOBvuOBpCzjgajjgosNCivjgarjgYzjgYQs44KG44GG44GTDQor44Gq44GL44Gv44KJLOOBn+OBi+OBsuOBlQ0KK+OBquOCj+OBnyzjgYvjgaTjgb8NCivjgYvjgaTjgZbjgo8s44GR44KT44GYDQor44KE44G+44GG44GhLOOBvuOBleOBvw0KK+OBguOBi+OBjuOBlyzjgYLjgZHjgb8NCivjgY/jgZXjgZrjgb8s44Go44GX44Gv44KLDQor44G744GL44KKLOOBl+OBkuOBig0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgY3jgorjgYYs44Gk44Go44KADQor44GK44GM44KPLOOBleOBi+OBiA0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgYLjgYTjgoDjgoks44KK44KH44GYDQor44GE44GM44KJ44GXLOOBvuOBleOCiw0KK+OBi+OCj+OCj+OBjSzjgaTjgojjgZcNCivjgb7jgYjjgZXjgYss44Gy44Gn44GC44GNDQor44G+44Gk44GX44G+LOOBmeOBmeOCgA0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgobjgY0NCivjgYvjgZ/jgYQs44Gy44KN44GNDQor44GT44GY44G+LOOBmOOCheOCk+OBmA0KK+OBpOOBmOOCguOBqCzjgZXjgajjgZcNCivjgarjgo/jgZ8s44KG44GeDQor44G144GY44Gf44GrLOOBquOCiuOBguOBjQ0KK+OBjeOBmyzjgbLjgo3jgZcNCivjgZXjgYvjgZDjgaEs44G/44KG44GNDQor44GZ44Ga44GNLOOBpOOCiOOBlw0KK+OBr+OBvuOBleOBjSzjgajjgZfjgbLjgZMNCivjgojjgZfjgaAs44Gy44KN44GXDQor44G744Gj44GfLOOBiuOBleOCgA0KK+OBvuOBmeOBkyzjgbLjgo3jgY0NCivjgZ/jgZHjgarjgYss44G+44GV44GoDQor44GE44GX44GELOOBvuOBleOCiOOBlw0KK+OBn+OBleOBiyzjgaTjgajjgoANCivjgb7jgaTjgaAs44G+44GV44GoDQor44Gv44GfLOOBn+OBi+OBv+OBoQ0KK+OBguOBjeOChOOBvizjgajjgoLjgb/jgaQNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44KE44G+44GL44KPLOOBsuOBp+OBqA0KK+OCiOOBk+OBoSzjgb7jgZXjgbLjgo0NCivjgojjga3jgZ/jgass44G+44GV44GC44GNDQor44G144GY44GuLOOBqOOCiw0KK+OBr+OBm+OBjOOCjyzjgZXjgajjgZcNCivjgbXjgZjjgZ8s44GL44Ga44Gy44GTDQor44GC44KT44KJ44GPLOOBpuOBpOOCjQ0KK+OBr+OBl+OCguOBqCzjgZjjgoXjgavjgaENCivjgYTjgarjgaAs44Go44GX44KG44GNDQor44KG44GSLOOBvuOBleOBsuOCjQ0KK+OBhOOBvuOBoCzjgbLjgajjgZcNCivjgZXjgYvjgoLjgags44GX44GS44Gy44GoDQor44Go44KI44Gq44GMLOOBsuOBleOBig0KK+OBr+OBl+OCguOBqCzjgZPjgZnjgZENCivjga/jgarjgYQs44Gv44KL44GNDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYvjgZjjgoDjgoks44Gf44GL44GXDQor44GE44GX44GM44GNLOOChuOBn+OBiw0KK+OBr+OBo+OBqOOCiizjgoTjgZnjgbLjgagNCivjgYLjgb7jga4s44GX44KH44GYDQor44G/44GL44G/LOOBvuOBleOBsuOCjQ0KK+OBteOCi+OBpuOCiSzjgY3jgYTjgaHjgo3jgYYNCivjgb7jgb/jgoQs44KG44GZ44GRDQor44Gk44KL44GuLOOBi+OBpOOBqOOBlw0KK+OBguOBleOBhCzjgb7jgZXjgobjgY0NCivjga7jgoDjgoks44G+44GV44GTDQor44KI44GT44KE44G+LOOBruOBtuOChuOBjQ0KK+OBhOOBkeOBoCzjgozjgYTjgZMNCivjgYLjgpPjganjgYYs44G+44GV44KI44GXDQor44GK44GL44KE44GZLOOBhOOBmuOBvw0KK+OBlOOBqCzjgYvjgZrjgbLjgZUNCivjgYvjgo/jgZfjgb4s44KE44GZ44Gy44KNDQor44Gv44GO44KP44KJLOOBpuOBpOOBig0KK+OBguOBn+OCieOBlyzjgojjgZfjga7jgooNCivjgZ/jgYvjgoTjgb4s44Gf44Gk44GKDQor44Gr44GX44KE44G+LOOCiOOBl+OBr+OCiw0KK+OBiOOBoeOBlCzjgojjgZfjgbLjgZMNCivjgoTjgb7jgZbjgY0s44GR44KT44GeDQor44KA44KN44KELOOBvuOBleOBig0KK+OBjeOCgOOCiSzjgorjgocNCivjgarjgYvjga/jgoks44GL44GK44KLDQor44GG44GI44GuLOOBvuOChuOBvw0KK+OCiOOBl+OBoCzjgbLjgafjgY0NCivjgaTjgYvjgoLjgags44KA44Gk44GTDQor44GK44GW44GNLOOChOOBmeOBjQ0KK+OBguOBl+OBi+OCjyzjgZfjgZLjgYoNCivjga3jgY7jgZcs44GX44KT44GYDQor44GN44KF44GuLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgYTjga7jgYbjgYgs44KE44GZ44GTDQor44GN44GP44Ga44G/LOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgZMNCivjga/jgoTjgZcs44GI44KKDQor44G144GP44GK44GYLOOChuOBv+OBkw0KK+OBquOCi+OBmyzjgajjgZfjgbLjgagNCivjgb7jgaTjgoLjgags44Go44GX44KG44GNDQor44KC44KKLOOBl+OCk+OBhOOBoQ0KK+OBv+OBjSzjgojjgZfjgbLjgo0NCivjgarjgYvjgZ/jgass44Gm44Gk44GKDQor44G/44KE44GM44KPLOOChuOBjeOBig0KK+OBguOCiuOCiOOBlyzjgbXjgb/jgYoNCivjgZfjgonjgYQs44Gf44GL44GXDQor44G/44Gq44G/LOOBkeOCk+OBnw0KK+OBqOOCiuOBlOOBiCzjgZ/jgaDjgZcNCivjgZPjgZnjgYws44Go44GK44KLDQor44Gk44GY44GuLOOChOOBmeOBl+OBkg0KK+OBiuOBkOOCiSzjgajjgoLjga7jgooNCivjgYrjgorjgZ8s44GX44KF44Gy44GhDQor44GC44G/44KC44GoLOOCiOOBl+OBsuOBpw0KK+OBiuOBleOBiyzjgYvjgZrjgbLjgZMNCivjga/jgoTjgZcs44G+44GV44KLDQor44G/44Gq44G/LOOBoOOBhOOBleOBjw0KK+OCiOOBl+OBoCzjgZ/jgYvjgYoNCivjgavjgZfjga/jgoks44GL44KT44GYDQor44GK44GP44GM44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBpOOBmCzjgb7jgZXjgY0NCivjgarjgYvjgYQs44G+44GV44GXDQor44Gr44GX44KA44KJLOOBruOBtuOBig0KK+OBq+OBn+OBquOBhCzjgojjgZfjgYLjgY0NCivjgY/jganjgYYs44G144G/44Gu44KKDQor44GV44GELOOBhOOBj+OBig0KK+OBl+OChyzjgojjgZfjgobjgY0NCivjgYTjga7jgYbjgYgs44G+44GV44KI44GXDQor44Gf44Gr44GQ44GhLOOBteOBmOOBig0KK+OBquOBi+OBq+OBlyzjgZ/jgaDjgZcNCivjgYrjgoLjgoos44GL44Ga44Gy44KNDQor44GP44G+44GM44GELOOChOOBmeOBsuOCjQ0KK+OBhOOBl+OBguOBhCzjgaHjgYvjgZcNCivjga/jgY7jga/jgoks44GY44KF44Gr44GhDQor44Gf44GM44GfLOOBqOOCiw0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgY/jgbws44G/44Gu44KLDQor44GL44Gq44GG44GhLOOBqOOBl+OBsuOBkw0KK+OBq+OBl+OBiizjgojjgZfjgYoNCivjgYTjgarjgaAs44G+44GV44Go44KCDQor44Gf44GR44GE44GhLOOBpuOCi+OChuOBjQ0KK+OBguOCk+OBqeOBhizjgZ/jgYvjgZcNCivjgb7jgaTjgarjgb8s44Gk44GQ44GKDQor44G/44Gq44GP44GhLOOBkeOCk+OBlA0KK+OBi+OBquOBhuOBoSzjgbLjgo3jgZcNCivjgYrjgbLjgoPjgb4s44Gf44GL44GKDQor44G+44GZ44GgLOOBvuOBquOBtg0KK+OChOOBjuOBr+OCiSzjgYvjgYrjgosNCivjgb/jgZrjga4s44Gy44KN44Gf44GtDQor44Gu44G244GP44G/LOOBl+OCk+OBmA0KK+OBquOBoCzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgZ/jgass44Gf44GL44KG44GNDQor44GE44G+44GE44Ga44G/LOOBqOOCiOOBi+OBmg0KK+OBhOOBquOBoCzjgYvjgZrjga7jgooNCivjgYTjgb7jgass44GR44KT44GYDQor44GK44GNLOOBv+OBoeOBig0KK+OBteOBj+OBl+OBvizjgZzjgpPjgZXjgY8NCivjgYTjgYTjgYos44GX44KT44KEDQor44GE44GX44GgLOOBsuOBp+OBjQ0KK+OBsuOCieOBnyzjgbLjgafjga7jgbYNCivjgYTjgZ/jgYzjgY0s44GX44KT44GYDQor44KE44G+44G144GPLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgZfjgofjgbLjgaENCivjgarjgYvjgYzjgo8s44GX44KF44GV44GPDQor44GK44GV44GLLOOBquOBiuOBjQ0KK+OBiuOBhOOBi+OCjyzjga7jgbzjgosNCivjgYvjgZfjgYos44GX44KH44GYDQor44G744GX44GW44GNLOOBqOOBl+OBig0KK+OBm+OBjeOBmOOBvizjgZHjgpPjgZgNCivjgYrjgYvjgb7jgYgs44Go44KLDQor44GV44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBk+OBhOOBpyzjgbXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44GK44GM44KPLOOBhOOBleOBig0KK+OBpuOCieOBl+OBvizjgZ/jgYvjgbXjgb8NCivjgoTjgb7jgZfjgZ8s44G+44GV44Gy44KNDQor44Gu44GbLOOCiOOBmeOBkQ0KK+OBvuOBpOOBvuOBiCzjgbLjgo3jgajjgoINCivjgojjgZfjgZ8s44GL44Gk44KEDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OBr+OCiSzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgYbjgaEs44GV44Go44GXDQor44GL44G/44GY44KHLOOBruOCiuOBig0KK+OBmeOBjOOBhCzjgorjgocNCivjgZ/jgYvjga4s44GX44KF44Gy44GhDQor44Go44GT44KNLOOBruOBtuOBguOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgZXjgZXjgY0s44GX44GS44GNDQor44Gk44Gu44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBleOBjSzjga7jgorjgbLjgo0NCivjgb/jgYbjgoks44Gf44GL44GXDQor44GK44Gg44GO44KKLOOBn+OBi+OBquOBig0KK+OBr+OChOOBlyzjgZvjgYTjgZgNCivjgajjgb/jgYrjgYss44GT44GG44GE44GhDQor44GE44GQ44GhLOOBn+OBj+OBig0KK+OBk+OCk+OBqSzjgb7jgZXjgYLjgY0NCivjgY/jgbws44Gy44Gn44KG44GNDQor44GP44KJ44Gs44GNLOOBguOChuOBvw0KK+OBqOOBv+OBvuOBpCzjga7jgorjgYLjgY0NCivjgY/jgo3jgYvjgo8s44Go44KLDQor44Gu44GW44KPLOOBruOCiuOBsuOBkw0KK+OBi+OCj+OBleOBjSzjgZHjgpPjgZgNCivjgZ/jgZHjgaAs44GL44Gk44KG44GNDQor44GX44Gu44Gv44KJLOOBn+OBpOOChuOBjQ0KK+OBteOCi+OChCzjgojjgZfjga7jgbYNCivjgarjgYvjgoDjgoks44KI44GX44GX44KNDQor44KE44GY44G+LOOBmeOBmeOCgA0KK+OBq+OBl+OBjOOBjSzjgYLjgaTjgobjgY0NCivjgarjgYvjgYzjgo8s44Gm44Gk44KNDQor44Gy44KJ44KE44G+LOOBpuOBpOOChA0KK+OChOOBvuOBkOOBoSzjgYvjgaTjgb8NCivjgojjgZfjgoDjgoks44GC44Gk44GTDQor44Gk44GgLOOBl+OCk+OBoeOChw0KK+OBi+OBpOOCieOBhCzjgbLjgajjgZcNCivjgb/jgarjgYQs44Gb44GE44GE44GhDQor44Gf44GN44GQ44GhLOOBn+OBi+OBlw0KK+OCj+OBkeOBuSzjgbLjgafjgYoNCivjgavjgZfjgYvjgo8s44GN44KH44GTDQor44GX44KJ44GM44GNLOOBquOBiuOBkw0KK+OBsOOBsCzjgb7jgZXjgYLjgY0NCivjgYLjgYvjgoos44GZ44G/44GKDQor44GC44G5LOOBj+OBq+OBguOBjQ0KK+OBi+OBhCzjgYvjgaTjgoQNCivjgYrjgoLjgoos44GC44GN44Gy44KNDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBquOBjOOBleOCjyzjgZXjgajjgosNCivjgZXjgo/jgaAs44Go44KLDQor44GC44Ga44G+LOOBjeOCiOOBlw0KK+OBiuOBrizjgZ0NCivjgYvjgo/jgavjgZcs44GX44KF44Gr44GhDQor44G+44Gq44G5LOOCgOOBpOOBsuOCjQ0KK+OBguOCiuOChOOBvizjgobjgYbjgZgNCivjgavjgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GC44Gk44G/LOOCj+OBn+OCiw0KK+OBhOOBqOOBhizjgajjgZfjgYvjgZoNCivjgbLjgo3jgZ8s44GL44Ga44GKDQor44G744GL44Ge44GuLOOCiOOBl+OBsuOCjQ0KK+OBu+OBl+OBrizjgb7jgZXjgoQNCivjgoTjgb7jgZDjgaEs44Gy44KN44GC44GNDQor44GC44GM44GfLOOBvuOBleOBi+OBmg0KK+OBvuOCi+OBiizjgorjgofjgZgNCivjgZPjgYTjgacs44Gf44GP44KEDQor44GL44G/44KA44KJLOOBj+OBq+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYvjgaQNCivjgbXjgY/jgb/jgaQs44Gf44GL44GXDQor44Gy44KJ44KE44G+LOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgYjjgb/jgZMNCivjgYTjgZHjgYos44Gu44G244KG44GNDQor44G144KL44GL44KPLOOBsuOBp+OBjQ0KK+OBhOOBhOOBoCzjga7jgbbjgbLjgacNCivjgb/jgoTjgZbjgY0s44GL44Ga44Gy44KNDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OBjeOBj+OBnyzjgY3jgojjgZcNCivjgaHjgbAs44GX44KF44GYDQor44Go44KK44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBiOOBluOCjyzjgajjgZfjgoQNCivjgYrjgbAs44GL44Ga44GoDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBq+OBl+OBi+OCjyzjgb7jgZPjgagNCivjgYjjgpPjgaks44GT44GG44GYDQor44G144GP44GELOOCiOOBl+OChuOBjQ0KK+OBr+OBvuOBrizjgbLjgo3jgYLjgY0NCivjgY3jgZ/jga/jgoks44G+44GV44Gy44GnDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBvuOBpOOBiizjgYLjgaTjgZcNCivjgajjgojjgZ8s44Gy44GL44KLDQor44Gy44KJ44KC44GoLOOBpuOBpOOChA0KK+OChOOBvuOCguOBqCzjgb/jga7jgosNCivjga/jgb7jgaAs44GY44KF44Gr44GhDQor44GE44KP44GL44G/LOOBsuOCjeOBguOBjQ0KK+OBj+OBvCzjgoLjgajjgbLjgo0NCivjgYjjgpPjgaks44KE44GZ44KG44GNDQor44GL44GS44KE44G+LOOBiOOCiuOBkw0KK+OBq+OBhOOChCzjgabjgaTjgYoNCivjgZPjgaEs44KK44Gk44GKDQor44GC44Gg44GhLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBr+OChOOBlyzjgojjgZfjgZ/jgb8NCivjgarjgYvjga4s44GK44GV44KADQor44GE44GX44Gv44G+LOOBvuOBleOBruOBtg0KK+OBk+OBj+OBvCzjgb7jgZXjga/jgosNCivjgYvjgo/jga4s44GK44GV44KADQor44Gq44GL44GY44G+LOOCiOOBhOOBoQ0KK+OBn+OBhOOCiSzjgZHjgpPjgZjjgocNCivjgZ/jgZHjgY4s44KG44GN44Gy44KNDQor44KC44KK44GX44G+LOOBvuOBleOBteOBvw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgoQNCivjga7jgZDjgaEs44Go44GX44Gy44GnDQor44GC44KJ44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBguOCiSzjgb7jgobjgb8NCivjgYTjgajjgYYs44G/44Gu44KLDQor44Gv44KE44GV44GLLOOBpuOBpOOBig0KK+OBk+OBpOOBiyzjgYvjgZrjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G+44GV44Gu44KKDQor44GE44KP44GfLOOBqOOCguOChuOBjQ0KK+OBvuOBiOOBoCzjgobjgZnjgZENCivjgbvjgZ3jgYvjgo8s44GX44GS44KG44GNDQor44GC44KJ44GELOOBl+OCheOCk+OBmA0KK+OBiuOBj+OCiSzjgb7jgZPjgagNCivjgZ/jgZHjgZPjgZcs44G+44GV44Gy44KNDQor44KE44G+44GQ44GhLOOCiuOCheOBsuOBoQ0KK+OBl+OBv+OBmizjga/jgZjjgoENCivjgYTjgajjgYYs44Gu44KK44Gy44GTDQor44GE44Ga44G/LOOBpOOCiOOBlw0KK+OBlOOBqCzjgorjgaTjgYoNCivjgYrjgaTjgbws44Go44KC44GTDQor44GL44G/44GT44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBhCzjgbLjgo3jgY0NCivjgb/jgoTjga/jgoks44KE44GZ44Gm44KLDQor44GC44KP44GYLOOBsuOCjeOBlw0KK+OBhuOBl+OCjeOBoCzjgarjgYrjgZMNCivjgoLjgorjgYTjgZrjgb8s44G144Go44GXDQor44Gq44GM44GuLOOBvuOBleOBi+OBmg0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgbXjgYvjgYgs44Gf44GL44GXDQor44G144KL44KELOOCiOOBl+OBig0KK+OBv+OBmuOBsuOBjSzjgb7jgZXjgbLjgo0NCivjgY/jgbws44KE44GZ44Gy44KNDQor44Gf44GQ44GhLOOBi+OCk+OBmA0KK+OBquOBi+OBiizjgYLjgaTjgZcNCivjgoTjgb7jgZfjgZ8s44GR44KT44GYDQor44GP44KN44GNLOOBi+OBpOOBqOOBlw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgYrjgaDjgZjjgb4s44GL44Gt44G/44GkDQor44G744KKLOOBneOBhuOBn+OCjeOBhg0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgb8NCivjgYLjgonjgYQs44GX44KT44GE44GhDQor44GU44GoLOOBleOBqOOBkw0KK+OBqOOBreOBjOOCjyzjgb7jgZXjgZcNCivjgoLjgorjgZ8s44GC44Gk44GKDQor44G144KL44GL44KPLOOBi+OBiuOCiw0KK+OChuOBjSzjga/jgZjjgoENCivjgZfjgonjgYTjgZcs44GC44Gk44GXDQor44GE44GR44KELOOCgOOBreOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44G/44GV44GKDQor44G+44GZ44GgLOOCiOOBl+OBig0KK+OBv+OBmuOBkOOBoSzjgb/jgaTjgojjgZcNCivjga/jgoTjgb/jgZos44G144G/44GC44GNDQor44G744GL44KKLOOBpOOBjuOBqA0KK+OBhOOBl+OBhCzjgobjgbLjgaENCivjgZfjgonjgYTjgZcs44GX44KH44GUDQor44GX44KC44GL44KP44KJLOOBkeOCk+OBhOOBoQ0KK+OCguOCiuOCguOBqCzjgarjgbvjgb8NCivjgYTjgajjgYYs44KG44GN44GKDQor44GK44Gy44KDLOOBpOOBreOChOOBmQ0KK+OBv+OCiOOBlyzjgajjgZfjga7jgooNCivjgZfjgbDjgZ8s44Gm44Gk44GYDQor44Gf44KT44GW44KTLOOBruOCiuOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgYvjgZMNCivjgbXjgY/jgYQs44GX44GS44GKDQor44KC44KK44Gw44KE44GXLOOCiOOBl+OBruOCig0KK+OChOOBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgo/jgoks44GV44Gh44GTDQor44Gq44Gk44KBLOOBn+OBpOOBiuOBjQ0KK+OBl+OBruOBr+OCiSzjgZPjgYbjgYTjgaENCivjgYrjgZXjgaAs44GX44Gu44G2DQor44G144GY44Gv44KJLOOBmOOCjQ0KK+OBteOBmOOCguOBqCzjgobjgb8NCivjgY3jga4s44GC44GN44Gy44GTDQor44KE44G+44KC44GoLOOBruOCiuOBsuOBkw0KK+OBhOOBl+OBmOOBvizjgb7jgZXjgbLjgZMNCivjgYTjgYws44GX44GS44Gy44KNDQor44Gq44GL44GILOOBqOOCguOBkw0KK+OChOOBrizjgbLjgo3jgZcNCivjgYvjgarjgb/jgaQs44GR44GE44GYDQor44GZ44Ga44GNLOOBv+OBruOCiw0KK+OBn+OBi+OBoCzjga7jgorjgbLjgo0NCivjgYTjgZfjgbDjgZcs44Go44KC44Gy44GTDQor44GK44Gk44G8LOOBsuOBp+OBi+OBmg0KK+OBmeOBjizjgZXjgajjgZcNCivjga/jgoTjgZfjgZDjgaEs44GL44Ga44KEDQor44Gm44KJ44GX44GfLOOBsuOBp+OBvw0KK+OBl+OCguOChOOBvizjgZXjgajjgZcNCivjgb/jgoTjgZbjgY0s44KE44GZ44GoDQor44KC44KKLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgZcNCivjgafjgYLjgYQs44Gf44GR44Gy44GoDQor44G744KKLOOBsuOCjeOBvw0KK+OBguOBreOBluOBjSzjgojjgZfjgYoNCivjgY/jgbzjgZ8s44KC44Go44GNDQor44GU44GY44KHLOOCguOCiuOBsuOCjQ0KK+OBsuOBjeOBoCzjgYLjgY3jgokNCivjgZXjgYvjgZDjgaEs44Gg44GE44GYDQor44KI44GX44GELOOChuOBhuOBmA0KK+OBjeOBn+OBr+OCiSzjgYrjgZXjgoANCivjgbXjgZjjgYQs44Gm44KL44GKDQor44Gq44KB44GNLOOCiuOCh+OBkw0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgZ/jgoDjgoks44G/44Gk44Gv44KLDQor44GG44G/44GuLOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgojjgZfjgoLjgags44GL44Ga44GKDQor44Gt44KC44GoLOOCiOOBl+OBteOBvw0KK+OBv+OChOOBluOBjSzjgb/jgaTjgosNCivjgZ/jgYvjgoLjgoos44KE44GZ44Gy44KNDQor44GP44G+44GM44GELOOBsuOBqOOBlw0KK+OBlOOBoCzjgY3jgojjgbLjgo0NCivjga/jgZ8s44Go44GX44KG44GNDQor44GP44Ga44G/LOOBi+OBmuOBig0KK+OBquOBpOOBhCzjgZ/jgYvjgbLjgo0NCivjgZfjgb7jgaAs44G+44GV44Go44GXDQor44GK44Gk44GNLOOBsuOCjeOBlw0KK+OBvuOBv+OChCzjga7jgorjgYLjgY0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44GT44Gw44KKLOOBi+OBpOOBqA0KK+OBleOBleOBjSzjgb/jganjgooNCivjgYvjga3jgZMs44KE44GZ44GTDQor44GK44GuLOOBqOOBl+OBig0KK+OBiuOBsuOCg+OBvizjgaDjgYTjgZnjgZENCivjgb7jgajjgbAs44Gy44KN44GXDQor44GE44Gf44GP44KJLOOBsuOCjeOBlw0KK+OBiuOBoOOBl+OBvizjgZ/jgZHjgZcNCivjgZfjgYTjgY0s44KI44GX44G144G/DQor44GX44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBi+OBpOOCiSzjgaHjgYjjgZMNCivjgYLjgonjgYQs44GP44Gr44GKDQor44GV44GE44Go44GGLOOBk+OBhuOBn+OCjeOBhg0KK+OBvuOBpOOCguOBqCzjgZPjgYbjgYTjgaENCivjgYbjgYjjgoTjgb4s44GV44Gh44GTDQor44G+44GuLOOBhOOBj+OBig0KK+OBv+OBleOBiizjgbLjgafjgYoNCivjgZ3jga7jgbks44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBsuOCjeOBi+OBmg0KK+OChOOBn+OBqyzjgZHjgpPjgZgNCivjgoDjgZ8s44Gy44Gn44KG44GNDQor44G+44KL44KE44G+LOOChOOBmeOChuOBjQ0KK+OBteOBoCzjgb7jgZXjgY0NCivjgZPjgbDjgoTjgZcs44Go44GK44KLDQor44KP44Gf44Gq44G5LOOCiOOBl+OBiA0KK+OBiuOBoCzjgb7jgZXjga/jgosNCivjgYrjgbXjgaEs44GY44KF44Gr44GhDQor44Gf44Gq44GLLOOBi+OBpOOCjQ0KK+OBleOCj+OBjSzjga7jgorjgZMNCivjgZXjgYTjgajjgYYs44GL44Ga44Gy44KNDQor44Gv44GO44GuLOOBoeOBi+OBkw0KK+OBhuOBl+OChOOBvizjgojjgZfjga7jgooNCivjgYrjgY/jgbLjgoks44Gk44KI44GXDQor44KI44GX44GE44GRLOOBvuOBleOBruOCig0KK+OBk+OCk+OBrizjgb/jgaTjgarjgooNCivjga7jgaAs44GX44KT44GE44GhDQor44GI44KT44GpLOOBquOBiuOBjQ0KK+OBmeOBmuOBjSzjgY3jgb/jgobjgY0NCivjgZ/jgarjgYss44GC44GN44GKDQor44GN44GpLOOBjeOCh+OBkw0KK+OBhOOBqOOBhizjgb7jgarjgbYNCivjgbXjgZjjgo/jgoks44G144G/44GC44GNDQor44Gv44Gb44GM44KPLOOBn+OBi+OCiOOBlw0KK+OBvuOBmeOCguOBqCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgYvjgYQs44GL44GK44KLDQor44Gf44GL44Gv44GfLOOBvuOBk+OBqA0KK+OBsuOBp+OBl+OBvizjgb7jgZXjgYoNCivjgZ/jgYvjgoTjgb4s44GX44GS44GKDQor44G/44KE44GNLOOBvuOBleOBlw0KK+OBteOBmyzjgbLjgo3jgZcNCivjgoLjgoLjgYQs44Gu44G844KLDQor44Gk44KG44GNLOOBn+OBi+OBlw0KK+OBi+OCj+OBr+OCiSzjga7jgbbjgbLjgo0NCivjgb7jgaTjgYQs44GV44Gq44GIDQor44Gv44Gq44KPLOOChuOBhuOBkw0KK+OBsuOCj+OBoCzjgajjgZfjgYoNCivjgb7jgZnjgYQs44Go44GX44KG44GNDQor44GL44Go44GGLOOBv+OBpOOBig0KK+OBn+OBkeOBvizjgojjgZfjgbLjgo0NCivjgZfjgonjgYTjgZcs44GR44GE44GYDQor44G144KL44GL44KPLOOBvuOBleOBruOBtg0KK+OBpuOBmOOBvizjgajjgZfjga/jgosNCivjgYLjgY3jgoLjgags44GC44GN44KJDQor44GZ44GO44KE44G+LOOBkeOBhOOBmA0KK+OBquOCk+OBtizjgbLjgajjgZcNCivjgaTjgZjjga4s44Go44KC44GTDQor44Gm44KJ44GV44GLLOOBi+OBmuOBruOCig0KK+OBleOBi+OBhCzjgZfjgZLjgY0NCivjgY/jgbws44KG44Gf44GLDQor44G+44KL44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgoTjgZkNCivjgb7jgaTjgYbjgoks44G/44Gk44GQDQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OChuOBluOCjyzjgYLjgY3jgbLjgo0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44KNDQor44GK44GwLOOBpuOBpOOChA0KK+OBvuOBiOOBi+OCjyzjgZ/jgYvjgZcNCivjgavjgo8s44Gf44Gg44Gk44GQDQor44GL44KP44KA44KJLOOBteOBv+OBig0KK+OBk+OBhOOBkSzjgojjgZfjgYoNCivjgY/jgorjgZfjgZ8s44GX44KH44GE44GhDQor44Gy44KN44GbLOOBguOBjeOCiQ0KK+OBk+OBrizjgZXjgajjgZcNCivjga/jgZvjgYzjgo8s44Gy44KN44GC44GNDQor44GE44Go44GGLOOChuOBjeOBsuOCjQ0KK+OBjeOBluOBjSzjgZHjgpMNCivjgYjjgarjgb8s44GE44Gj44GX44KTDQor44Gk44GL44Gq44GLLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OCguOBqCzjgYLjgaTjgZcNCivjgb7jgaTjgbDjgoks44G+44GV44KEDQor44Gm44KJ44GELOOBv+OBruOCiw0KK+OBiuOBl+OBnyzjgZfjgpPjgoQNCivjgZ/jgarjgYss44Gb44KT44GYDQor44KE44G+44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgoQNCivjga/jgZfjgoLjgags44GX44KT44GUDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgbXjgovjgYvjgo8s44G+44GV44GNDQor44KE44G+44GgLOOBi+OBmuOBiA0KK+OBhOOBj+OBnyzjgajjgZfjgobjgY0NCivjgZXjgajjgYYs44GK44GV44KADQor44KP44Gf44Gq44G5LOOBn+OBj+OChA0KK+OBi+OBkyzjgbLjgo3jgbLjgZMNCivjgb7jgZnjgaAs44Gy44KN44GXDQor44GL44G/44GYLOOBguOBpOOBlw0KK+OBhOOBr+OCiSzjga7jgorjgYLjgY0NCivjgYLjgZXjgb8s44G144G/44GC44GNDQor44Gq44GL44GY44G+LOOBsuOCjeOBvw0KK+OBk+OBn+OBjSzjgbLjgafjgYoNCivjgYvjgo/jgoLjgags44GX44GS44GC44GNDQor44GL44KP44GX44G+LOOBn+OBi+OCiOOBlw0KK+OBguOBmuOBvizjgojjgZfjgYLjgY0NCivjgarjgYvjga4s44G+44Gq44G2DQor44Gy44KJ44GuLOOCiOOBl+OBqA0KK+OBn+OBi+OBr+OBlyzjgZnjgb/jgZMNCivjgbXjgYvjgoQs44KE44GZ44Gy44KNDQor44GK44GwLOOBqOOBiuOCiw0KK+OBleOBj+OCieOBhCzjgajjgZfjga7jgbYNCivjgZXjgYvjgYQs44Gy44KN44GoDQor44GC44GK44GNLOOBl+OCh+OBkw0KK+OCiOOBl+OBoCzjgobjgbLjgaENCivjgZPjga/jgZcs44GL44Ga44Gy44KNDQor44G+44Gk44GG44KJLOOBn+OBpOOBmA0KK+OBleOBqOOBhizjgbLjgo3jga7jgooNCivjgavjgZfjgY3jgYrjgoos44Gf44GL44KG44GNDQor44G/44KI44GXLOOBi+OBmuOBsuOCjQ0KK+OBk+OBmeOBjizjgYvjgZrjgbLjgo0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44G144GY44GELOOBpuOBpOOChA0KK+OBteOBquOBoCzjgYjjgYTjgYTjgaENCivjgZnjgY7jgZ8s44GL44Ga44Gy44GTDQor44GX44KH44GgLOOCiuOCheOBmA0KK+OCguOCiuOBl+OBnyzjgZfjgoXjgYTjgaENCivjgbLjgoks44GV44Go44GXDQor44GX44KT44Gf44GPLOOBvuOBleOCiw0KK+OBsuOBjOOBl+OBoCzjgoLjgoLjgY0NCivjgY/jgorjgZ8s44Gf44GR44GXDQor44GE44Gq44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OBrizjgYTjgaPjgZvjgYQNCivjgYTjgZHjgZjjgoos44Gf44GP44GKDQor44Gq44GL44KA44KJLOOChOOBmeOBlw0KK+OBquOBi+OBi+OBqSzjgb7jgZXjga7jgooNCivjgYTjga7jgb7jgZ8s44Gm44Gj44G644GEDQor44Gk44KL44G/LOOBiuOBleOCgA0KK+OBsuOCieOCguOBqCzjgajjgoLjgZMNCivjgb/jgojjgZcs44KI44GX44Gy44GVDQor44GC44KP44GuLOOBpOOBi+OBlQ0KK+OBguOBjeOBnyzjgZ/jgYvjgYTjgaENCivjgbLjgYzjgZfjgoTjgb4s44KI44GX44Gy44KNDQor44GV44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBi+OCj+OBleOBjSzjgajjgYrjgosNCivjgb7jgovjgoTjgb4s44GL44Ga44Gy44KNDQor44GZ44Gq44GMLOOBqOOBl+OBig0KK+OBhOOBvuOBhCzjgbLjgajjgZcNCivjgbXjgZjjgYQs44Gy44KN44KG44GNDQor44G+44GN44GfLOOBqOOBl+OChuOBjQ0KK+OBhOOBqOOBhizjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44KG44GV44GPDQor44GN44KK44G+LOOBqOOBl+OChA0KK+OBiuOBq+OBlyzjga7jgorjgYLjgY0NCivjgb/jga7jgZfjgb4s44Gq44GK44Gy44KNDQor44GV44Go44GGLOOCiOOBsuOBoQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgb/jgZ/jgoDjgoks44Gy44KN44KI44GXDQor44GV44Go44GGLOOBl+OBkuOBjQ0KK+OBqOOBvuOBpCzjgbXjgb/jgYLjgY0NCivjgYjjgbPjgZfjgb4s44Gf44GL44GXDQor44KP44GgLOOCiOOBl+OBiA0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgZnjgYzjga/jgoks44Gy44KN44G/DQor44Gf44GQ44GhLOOBkeOBhOOBhOOBoQ0KK+OBqOOBjOOBlyzjga/jgaTjgYoNCivjgarjgYzjga/jgoks44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBn+OBv+OBkw0KK+OBn+OBkeOBoCzjgobjgY3jgYoNCivjgZXjgajjgYYs44G/44Gk44GKDQor44Gf44GL44G/44KELOOBn+OBpOOBlw0KK+OBguOBiuOBjSzjgorjgoXjgbLjgaENCivjgZPjgoTjgY4s44GX44KT44GYDQor44GK44Gu44GW44GNLOOBqOOCguOChuOBjQ0KK+OCguOCiuOBnyzjgZ/jgZHjgbLjgagNCivjgZXjgY/jgonjgY4s44GL44Ga44Gf44GLDQor44GK44GL44GV44GLLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgb7jgobjgb8NCivjgYvjgo/jgZfjgb4s44GX44GS44KLDQor44GE44KP44GuLOOBn+OBvuOBvw0KK+OBlOOBkyzjgoTjgZnjgobjgY0NCivjgoLjgorjgZ8s44GL44Ga44KEDQor44GX44GS44Gf44GLLOOBjeOCiOOBn+OBiw0KK+OBpuOBmuOBiyzjgb/jgaTjgosNCivjgYrjgZ8s44Gy44KN44KADQor44KE44G+44GgLOOBvuOBleOBsuOBkw0KK+OBteOBi+OBoCzjgZXjgajjgosNCivjga/jgZvjgbks44GR44GE44GTDQor44G+44Gk44GuLOOBvuOBleOChuOBjQ0KK+OBpOOBmOOBi+OCjyzjgb/jga7jgosNCivjgb7jgaTjgoLjgags44Gy44Gn44Gu44G2DQor44Gb44Gu44GKLOOBn+OBi+OBsuOCjQ0KK+OBruOCgOOCiSzjgZnjgb/jgZ/jgYsNCivjgYLjgonjgYQs44KK44KH44GZ44GRDQor44GK44GQ44KKLOOBruOCiuOBkw0KK+OBmOOCk+OBrizjgobjgb/jgZMNCivjgbLjgo3jgZrjgb8s44Gy44KN44Gu44KKDQor44G+44Gk44GELOOBk+OBmeOBkQ0KK+OBl+OBsOOBluOBjSzjgojjgZfjga7jgooNCivjgYTjga7jgYbjgYgs44GL44Ga44Gu44KKDQor44Gf44Gq44GLLOOChOOBmeOBr+OCiw0KK+OBleOBnSzjgoTjgZnjgZgNCivjgZfjgonjga/jgb4s44Gq44GK44GNDQor44Gf44Gq44GLLOOBiOOBhOOBleOBjw0KK+OBquOBi+OCgOOCiSzjgaTjgojjgZcNCivjgYTjgZfjgYzjgb8s44G+44GV44Gv44KLDQor44GX44Gw44GfLOOBsuOBleOChuOBjQ0KK+OBruOBkOOBoSzjgoLjgajjgYLjgY0NCivjgYTjgaHjgbAs44GC44Gk44GXDQor44GL44KP44GQ44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OCiOOBl+OBvyzjgYvjgaTjgb8NCivjgbXjgZjjgYvjgo8s44Gv44GY44KBDQor44GL44Go44GGLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgajjgojjgZfjgZINCivjgbXjgZjjgZXjgo8s44GZ44G/44GIDQor44G/44Ga44Gf44GrLOOBvuOBleOBsuOCjQ0KK+OBm+OBjeOBkOOBoSzjgb/jga7jgosNCivjgb7jgYjjgYvjgo8s44GZ44GZ44KADQor44GC44KJ44GELOOBguOBpOOBlw0KK+OCguOCiizjgbLjgafjgYoNCivjgZXjgajjgYYs44Gy44Gn44GL44GaDQor44GP44KP44GfLOOBquOBiuOBteOBvw0KK+OBiuOBkOOCiizjgYLjgY3jgbLjgZMNCivjgbLjgonjgYQs44Gq44GK44GNDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBiuOBj+OCiSzjgojjgZfjgYLjgY0NCivjgZ3jga7jgbks44Gm44Gj44G644GEDQor44GE44GE44GgLOOBguOChuOBvw0KK+OBk+OBkOOBoSzjgZPjgYbjgZgNCivjgoLjgo3jgbvjgZcs44Gy44Gn44GTDQor44Gv44G+44GgLOOBsuOBp+OBvw0KK+OBi+OBquOBluOCjyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgbAs44Gk44KI44GXDQor44GE44KP44GfLOOBhOOBleOCgA0KK+OBguOBmuOBoSzjgYvjgZrjgYoNCivjgZPjgpPjgaks44Go44KC44G144G/DQor44Gf44GL44Gv44GXLOOCiOOBl+OCjQ0KK+OBguOBvuOBrizjgoDjgaTjgb8NCivjgYvjgZ/jgaAs44KK44KF44GYDQor44Gf44KB44Gy44KNLOOBkeOBhOOBn+OCjeOBhg0KK+OBvuOBpOOBoCzjgarjgYrjgZMNCivjgarjgorjgYTjgZcs44GX44KH44Gy44GhDQor44GK44GN44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgYvjgaTjgbLjgZMNCivjgZnjgZrjgY0s44G144G/44Go44GXDQor44G+44KT44G9LOOBsuOBleOBruOCig0KK+OBhOOBoeOBhCzjgYLjgY3jgZMNCivjgZPjgYTjgacs44KE44GZ44GC44GNDQor44Gf44GL44Gv44GXLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgbLjgafjgYvjgZoNCivjgYrjga/jgb4s44Gu44KK44GL44GkDQor44Gf44GL44Gv44GfLOOBi+OBmuOChuOBjQ0KK+OBk+OBkOOBoSzjgZfjgZLjgosNCivjgb/jgoTjgYzjgo8s44Gy44Gn44Go44GXDQor44GX44Gw44KE44G+LOOBvuOBleOCiw0KK+OBguOCieOBhCzjgYTjgZXjgYoNCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44Gq44GL44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBteOCi+OBr+OBnyzjgYrjgZXjgoANCivjgZ/jgavjgZDjgaEs44KC44Go44GTDQor44G744KT44GgLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgoTjgZnjgojjgZcNCivjgZ/jgYvjgY0s44KC44KK44G/44GhDQor44GN44GP44GhLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjga/jgoks44GL44Gk44G/DQor44KE44G+44KC44GoLOOBkeOCk+OBmA0KK+OCgOOCieOBi+OBvyzjgajjgoLjgZMNCivjgbDjgbAs44Gq44GK44GTDQor44Gv44Gb44GM44KPLOOBi+OBmuOBig0KK+OBleOBleOBjSzjgZ/jgYvjgZcNCivjgYLjgaTjgZ8s44Gy44KN44G/DQor44Gf44Gh44GL44KPLOOBn+OBi+OBlw0KK+OBsuOCieOCguOBqCzjgYvjgZrjgoQNCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gk44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgZnjgZnjgoANCivjgojjgZPjgoTjgb4s44KG44Gf44GLDQor44GT44Gf44GRLOOBvuOBleOBquOCig0KK+OBguOCk+OCieOBjyzjgarjgYrjgZnjgZENCivjgb/jgZrjga4s44GZ44GZ44KADQor44GK44Gs44GNLOOBguOBjeOBsuOCjQ0KK+OBleOBi+OBhCzjga/jgovjgb/jgaQNCivjgYrjgZ8s44GX44KT44KEDQor44Gv44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgb7jgZXjgYoNCivjgZ/jgarjgYss44Gf44GL44Gy44KNDQor44Gv44KL44Gv44KJLOOBqOOCguOChOOBmQ0KK+OBiuOBpOOBiyzjgb7jgZXjgbLjgZMNCivjgY3jgZ/jgYzjgo8s44Go44GX44Gy44GTDQor44KI44GT44GfLOOBguOBjeOBteOBvw0KK+OCiOOBl+OCgOOCiSzjgbLjgajjgb8NCivjgYrjgbLjgoks44Gy44KN44Gk44GQDQor44Gh44KD44GNLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OBkOOBoSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44Gf44GL44GKDQor44Gh44GL44GW44KPLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBmOOBvizjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44G/44Gk44GKDQor44GX44GwLOOBn+OBi+OBlw0KK+OBleOBi+OBhCzjgZfjgpPjgYTjgaENCivjgoTjgb7jgb/jgZXjgYss44GC44GN44KJDQor44KI44GX44GM44G/LOOBr+OBmOOCgQ0KK+OBsuOCieOBpizjgZfjgofjgZ4NCivjgo/jgY/jgZfjgb4s44Gu44KK44GKDQor44GC44GV44G+LOOBguOBjeOBsuOCjQ0KK+OBguOBmuOBvyzjga7jgorjgZMNCivjgYTjgarjgYrjgYss44Go44GUDQor44GV44Gq44GELOOBvuOBleOChuOBjQ0KK+OChOOBvuOBhuOBoSzjgbLjgafjgb8NCivjgYTjga/jgoks44GL44Gj44G644GEDQor44Gf44KE44G+LOOBguOBpOOBkw0KK+OBleOBleOBjSzjgZfjgpPjgYTjgaENCivjgbXjgZjjgYbjgaEs44GX44GS44Gy44GnDQor44GG44GX44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBruOBruOCgOOCiSzjgYLjgY3jgbLjgo0NCivjgavjgZcs44G+44KG44G/DQor44GE44GR44GgLOOBvuOBleOBruOCig0KK+OBmeOBjuOBn+OBqyzjgZ/jgaDjgYoNCivjgYrjgZbjgY0s44GY44KF44KT44GTDQor44GT44GR44GkLOOBoeOBr+OCiw0KK+OBleOBqOOBhizjgabjgaTjgYoNCivjgZvjgpPjgbAs44GC44GN44KJDQor44GC44Ga44G+LOOBvuOBleOChuOBjQ0KK+OBquOBiuOBhCzjgZ/jgaDjgZcNCivjgbvjgZfjga4s44Gh44GL44KJDQor44GL44G/44KELOOBn+OBoOOBlw0KK+OCgOOCieOBnyzjgbLjgo3jgYvjgZoNCivjgYTjgaHjgb/jgoQs44Gy44KN44GXDQor44Gf44KL44GELOOChOOBmeOBsuOCjQ0KK+OBr+OBjuOBr+OCiSzjgajjgZfjgbLjgZMNCivjgZ/jgYvjga/jgZcs44GK44GV44KADQor44GK44Gh44GC44GELOOBl+OCk+OChA0KK+OBguOBjeOChOOBvizjgajjgZfjgYLjgY0NCivjgY3jgoDjgoks44GX44KT44GE44GhDQor44Gv44KE44GXLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBkOOBoSzjgZ/jgZHjgbLjgo0NCivjgajjgZPjgo0s44Gy44KN44G/DQor44GL44GZ44KELOOBsuOCjeOBlw0KK+OBhOOCiuOBiCzjgZ/jgZHjgZcNCivjgoDjgonjgYTjgZcs44GC44GN44Gy44GVDQor44GX44KT44Gf44GrLOOCiOOBmeOBkQ0KK+OBhuOBiOOBrizjgYLjgaTjgZcNCivjgYbjgaHjgaAs44Gy44Gn44GoDQor44Gv44Gb44GM44KPLOOBhOOBoeOCjeOBhg0KK+OBj+OCjeOBoCzjgojjgZfjgY0NCivjgYTjgajjgYYs44KE44GZ44Gy44KNDQor44G744KK44GG44GhLOOBsuOBqOOBlw0KK+OBiuOBr+OBnyzjgZHjgYTjgZMNCivjgbvjgpPjgaAs44KE44GZ44GC44GNDQor44Gq44GL44KA44KJLOOBv+OCj+OBkw0KK+OBleOBiOOBjSzjgZ/jgYvjgZcNCivjgYLjgbks44Gy44Go44GXDQor44GG44KB44GgLOOBkeOBhOOBmeOBkQ0KK+OBrOOBvizjgojjgZfjgbLjgo0NCivjgZ/jgbbjgaEs44Gy44Gn44GKDQor44GN44KA44KJLOOBv+OBpOOCiw0KK+OBhuOBoCzjgarjgYrjgZ/jgYsNCivjgYLjgYrjgY0s44GI44Gk44GTDQor44Gq44GL44KA44KJLOOBl+OCheOBmA0KK+OBteOBmOOBk+OBlyzjgb/jgarjgZMNCivjgZnjgb/jgaAs44KK44KF44GYDQor44GP44Ga44Gv44KJLOOBv+OBuw0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYLjgonjgZ8sDQor44KN44Gj44GL44GP44KG44GN44Gy44KNLOOCi+OCiuOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgaTjgbLjgo0NCivjgaTjgZjjgoLjgags44G+44KEDQor44G/44GG44KJLOOBruOBtuOBguOBjQ0KK+OBreOCguOBqCzjgbLjgafjgobjgY0NCivjgYLjgoHjgb/jgoQs44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBiuOBjeOCguOCig0KK+OBguOBhOOBsCzjgabjgovjgbLjgZUNCivjgojjga3jgZbjgo8s44Gf44GL44Gy44KNDQor44G144GY44KA44KJLOOBvuOBleOChuOBjQ0KK+OCiuOCheOBqCzjgobjgZ/jgYsNCivjgo/jgZ/jgarjgbks44G/44Gk44KLDQor44GN44Gf44GM44KPLOOBn+OBi+OBvw0KK+OBguOBn+OCieOBlyzjga7jgorjgZMNCivjgY3jgY/jgaEs44G+44GV44GoDQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgYTjgZHjgaAs44Gu44G844KLDQor44KI44GT44GL44KPLOOBsuOCjeOBlw0KK+OBj+OBleOBpOOBkCzjgZXjgajjgb8NCivjgb/jgZrjga4s44G+44KG44G/DQor44Gq44GM44G744KKLOOBv+OBpOOBvuOBlQ0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgb8NCivjgYLjgpPjganjgYYs44Gq44Gq44GTDQor44Gf44GL44KE44Gq44GOLOOCiOOBl+OBig0KK+OBl+OBsCzjgojjgZfjgYvjgZoNCivjgYvjgb/jgoTjgb4s44Gy44KN44KG44GNDQor44GK44Gy44KJLOOBruOBtuOBn+OBiw0KK+OBu+OCk+OBvizjgZfjgpPjgoQNCivjgZ/jgbDjgZ8s44GX44KFDQor44GI44KT44GpLOOBsuOCjeOBvw0KK+OBhOOBl+OBjOOBjSzjgajjgoLjgb8NCivjgZfjgbAs44GX44KT44GYDQor44KE44G+44GgLOOBqOOCguOBquOBig0KK+OBn+OBi+OBrizjgZjjgoXjgpMNCivjgojjgZfjgaAs44GC44GN44KJDQor44GC44G+44GV44GNLOOBsuOCjeOBlw0KK+OBiuOBl+OBi+OCjyzjgbLjgo3jgarjgooNCivjgavjgZfjga4s44G/44Gk44Gy44GTDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBr+OBvuOBiuOBiyzjgZHjgpPjgZgNCivjgZXjga4s44GT44GG44GE44GhDQor44GZ44GI44GX44GSLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjgaTjga3jgYoNCivjgZPjgbDjgoTjgZcs44Gy44KN44G144G/DQor44GZ44Gp44GGLOOBvuOBleOBkw0KK+OBpOOBpOOBvyzjgYvjgZrjgbLjgo0NCivjgb/jgZ/jgass44Gy44KN44G/DQor44GE44GX44GgLOOBr+OCi+OChuOBjQ0KK+OBhOOBhOOBmuOBiyzjga7jgbbjgojjgZcNCivjgZfjgonjgYQs44GR44KT44GE44GhDQor44KE44G+44GgLOOBm+OBhOOBmA0KK+OBpOOBmOOBi+OBqSzjgobjgbLjgaHjgo0NCivjgb7jgaTjgarjgYws44G+44GV44Gy44GoDQor44Gf44Gq44GLLOOBi+OBpOOBig0KK+OBv+OBquOBvyzjgZ/jgaTjgoQNCivjgZXjgYvjgYQs44Go44GX44Gy44GTDQor44GG44GI44GNLOOBl+OCk+OBmA0KK+OBiuOBoCzjgb/jgbvjgZMNCivjgb7jgYjjgaAs44GK44GV44KADQor44Gn44GN44Gf44GrLOOBqOOCguOBkw0KK+OBguOBvuOBrizjgZ/jgYvjgYvjgZoNCivjgb/jgoTjgZPjgZcs44GP44Gr44Gm44KLDQor44GC44KT44GW44GELOOBsuOCjeOBvw0KK+OBhuOCgeOBoCzjgbLjgafjgobjgY0NCivjgZ/jgY3jgZbjgo8s44KE44GZ44GXDQor44KA44KJ44Gr44GXLOOBjeOCiOOBsuOBqA0KK+OBj+OCiuOBr+OCiSzjgZPjgYbjgZgNCivjgoTjgb7jgZXjgY0s44KE44GZ44G144G/DQor44GK44Gk44GLLOOChuOBn+OBiw0KK+OBguOBv+OBrizjgobjgb8NCivjgoLjgoos44GE44KP44GKDQor44Gr44GX44KC44KKLOOBi+OBmuOBkw0KK+OBn+OBkeOBrizjgZPjgYbjgYTjgaENCivjgZfjgpPjgYzjgY0s44GL44Ga44GIDQor44G+44Gk44GKLOOBsuOCjeOBlw0KK+OBteOBmOOBrSzjgb7jgZXjgobjgY0NCivjgYvjgarjgb7jgoss44GX44GK44KKDQor44GL44Gq44GW44KPLOOBvuOBleOBig0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgo/jgaAs44GY44KF44KTDQor44GE44GX44GP44KJLOOBn+OBi+OBsuOCjQ0KK+OBteOBj+OBoCzjgZfjgZLjgYvjgZoNCivjgYbjgYvjgYQs44Go44GX44G/44GhDQor44GC44KK44G+LOOChuOBjeOBig0KK+OBiuOBnyzjgYLjgaTjgZcNCivjgoLjgorjgZ/jgass44GN44KI44GXDQor44GC44Gg44GhLOOBqOOBl+OBsuOBkw0KK+OBj+OBvuOBpyzjgb7jgooNCivjgYLjgoks44G/44Gk44Gy44KNDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBqOOCiOOBiuOBiyzjgoTjgZnjga7jgooNCivjgYrjgaQs44GX44KT44GYDQor44G/44KE44GNLOOBvuOBleOBig0KK+OBhOOBl+OBi+OCjyzjgojjgZfjgYvjgZoNCivjgYTjgYzjgonjgZcs44KI44GX44GNDQor44GK44Gr44GXLOOBvuOBleOBjQ0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgojjgZcNCivjgojjgZPjgoEs44Gf44Gk44KG44GNDQor44G144GY44KC44GoLOOCiuOCheOBmA0KK+OBi+OCk+OBrizjgYTjgaTjgZMNCivjgZ/jgaHjgbDjgaos44Gf44GR44GXDQor44KE44G+44GgLOOBguOBjeOBsuOCjQ0KK+OBguOBleOBvyzjgojjgZfjgZMNCivjgb/jgYbjgoks44GK44GV44KADQor44Go44GP44Gy44KNLOOBn+OBi+OBguOBjQ0KK+OCguOCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44KI44GX44Gy44KNDQor44GV44GuLOOBvuOBleOBruOCig0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjgZfjgoLjgajjga4s44Go44GK44KLDQor44G+44GL44G5LOOBvuOBk+OBqA0KK+OBhOOBqOOBhizjgabjgaTjgo0NCivjgaTjgY/jgaAs44GR44GE44GE44GhDQor44KI44GX44GL44KPLOOBmOOCheOBq+OBoQ0KK+OBn+OBi+OChOOBquOBjizjgarjgYrjgaTjgZANCivjgbvjgpPjgaAs44GN44KT44KEDQor44Gr44GX44GuLOOBk+OBhuOBhOOBoQ0KK+OBjeOCgOOCiSzjgojjgZfjgYLjgY0NCivjgYvjgajjgYYs44GL44Ga44Gy44KNDQor44GK44Gv44GfLOOCguOCiuOChOOBmQ0KK+OBhuOBpOOBvyzjgb/jgaHjgYoNCivjgYLjgpPjganjgYYs44Gh44Gq44G/DQor44Gv44G+44Gf44GrLOOBl+OBkuOBig0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgZcNCivjgYvjgo/jgZss44Gy44KN44Gu44G2DQor44GG44GI44GuLOOBvuOBleOBruOBtg0KK+OBl+OBi+OBvizjgb/jgY3jgbLjgZUNCivjgZnjgZrjgY0s44Go44KC44G/44GkDQor44G144GY44GK44GLLOOBvuOBk+OBqA0KK+OBhOOBruOBhuOBiCzjgb7jgarjgbYNCivjgY3jgZ/jgZbjgY0s44GV44Go44G/DQor44GC44GE44G5LOOBk+OBhuOBmA0KK+OBiuOBi+OCjyzjgZjjgoXjgpPjgZgNCivjgZ/jgZHjgYQs44G/44Gk44GQDQor44GL44KJ44Gv44GXLOOBsuOCjeOBjQ0KK+OBmeOBmuOBjSzjgZ/jgYvjgojjgZcNCivjgYLjgonjgYQs44KG44GG44GYDQor44GE44Gu44GgLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgb7jgovjgYQs44GY44KF44KTDQor44Gy44KN44Ga44G/LOOBi+OBmuOBsuOBkw0KK+OCj+OBl+OBmizjgYvjgZrjgbLjgZUNCivjgojjgZfjgoDjgoks44G/44Gu44KLDQor44GL44Gk44G+44GfLOOBn+OBi+OBteOBvw0KK+OBvuOBmeOBi+OCjyzjgajjgZfjgZ/jgYsNCivjgYTjgo/jgYos44KI44GX44Gy44GTDQor44KE44G+44KC44GoLOOCiuOCh+OBmA0KK+OBn+OBquOBiyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYbjgaEs44G+44GV44Gy44KNDQor44Gu44Gv44KJLOOBqOOCguOBsuOCjQ0KK+OBteOBquOBr+OBlyzjgoTjgZnjgobjgY0NCivjgarjgZTjgZcs44Gy44KN44GXDQor44GG44KB44GgLOOBleOBi+OBiA0KK+OBguOBjeOChOOBvizjgoTjgZnjga/jgosNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GV44GE44Go44GGLOOBvuOChuOBvw0KK+OBn+OBr+OCiSzjgbLjgo3jgZcNCivjgavjgZfjgb7jgaQs44Gu44KK44KG44GNDQor44Gy44KJ44G/44GkLOOBiOOCig0KK+OCgeOBi+OBnyzjgZjjgoXjgpPjgZMNCivjgZ/jgYvjgb8s44GC44GN44Gy44GVDQor44Gd44Gu44GgLOOBn+OBj+OChA0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgbLjgZUNCivjgb7jgovjgoTjgb4s44Gf44GL44GXDQor44Gk44Gu44GL44KPLOOBi+OBpOOCiQ0KK+OBr+OCieOBoCzjgZfjgoXjgZgNCivjgaTjgZgs44KI44GX44Gy44GoDQor44GE44GM44KJ44GXLOOBleOBqOOCiw0KK+OCiOOBl+OBoCzjga7jgorjgobjgY0NCivjgZ/jgZHjgYzjgZ8s44GX44KF44GeDQor44GC44G5LOOBi+OBmuOBruOCig0KK+OBguOBi+OBrOOBvizjgZHjgpPjgZgNCivjgYvjgo/jgaAs44GL44Ga44KEDQor44Gf44GULOOBsuOBqOOBlw0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgagNCivjgb7jgaTjgoQs44KB44GQ44G/DQor44GE44KP44GfLOOBmOOCheOBq+OBoeOCjQ0KK+OBvuOBiOOBi+OCjyzjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G+44GT44GoDQor44GX44KN44GX44GfLOOBvuOBleOCiw0KK+OChOOBvuOBl+OBnyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgaTjgZjjgYvjgo8s44Gy44Gn44KG44GNDQor44Gf44Gq44GLLOOChuOBhuOBmA0KK+OBv+OBquOBvyzjgbLjgafjgYLjgY0NCivjgZXjgajjgYYs44G+44GV44GXDQor44GG44GK44Ga44G/LOOBi+OBpOOBvw0KK+OBmeOBjuOChOOBvizjgaTjgZDjgbLjgZMNCivjgaHjgbAs44Go44GX44GKDQor44GL44Gq44GELOOBi+OBiuOCig0KK+OBvuOBpOOChOOBvizjgZPjgY0NCivjgZ/jgYvjga4s44KK44KH44GYDQor44GP44G+44GM44GELOOBqOOBj+OBsuOCjQ0KK+OBn+OBkeOBk+OBlyzjgbLjgo3jgYLjgY0NCivjgbXjgZ/jgbAs44Gy44KN44GXDQor44GG44KB44GW44GNLOOBvuOBleOBlw0KK+OBiuOBhOOCj+OBkSzjgZLjgpMNCivjgarjgYzjgaTjgYss44GC44GN44Gy44GTDQor44GE44G+44GM44KPLOOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgozjgYTjgZMNCivjgYrjgbLjgoks44Go44KC44Gy44KNDQor44G/44KE44Gy44KJLOOBvuOBleOBqA0KK+OBruOBkOOBoSzjgZjjgoXjgavjgaENCivjgZnjgY7jgoLjgags44KI44GX44G144G/DQor44GL44KP44GQ44GhLOOBqOOCguOBsuOCjQ0KK+OBl+OBruOBmyzjgojjgZfjgYLjgY0NCivjgarjgorjgZXjgo8s44GC44GN44KJDQor44Gy44KN44GbLOOBsuOCjeOChuOBjQ0KK+OBq+OBl+OBluOBjSzjgb7jgZXjgobjgY0NCivjgoLjgoos44GV44Go44GXDQor44G144GL44GKLOOBpOOCiOOBlw0KK+OBv+OChOOBmOOBvizjgYLjgY3jgokNCivjgb7jgaTjga4s44GT44GG44GE44GhDQor44GE44KP44GELOOCgOOBpOOBsuOBlQ0KK+OBi+OBhCzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44GL44Ga44Gf44GgDQor44Gh44GwLOOCiOOBmeOBkQ0KK+OBneOBrizjgb7jgarjgbYNCivjgojjgZPjgoTjgb4s44Gy44Go44G/DQor44Gf44GL44GX44G+LOOBguOBjeOCiQ0KK+OBiuOBi+OCguOBqCzjgobjgZ/jgo3jgYYNCivjgb/jgoTjgYvjgo8s44G/44Gh44GC44GNDQor44KA44KJ44KC44GoLOOBkeOBhOOBng0KK+OBjeOCgOOCiSzjgYvjgZrjgbXjgb8NCivjgb7jgaTjgarjgYws44GL44Gk44Gu44KKDQor44G144GP44GgLOOBpOOCiOOBlw0KK+OBiuOBq+OBlyzjgojjgZfjgbLjgagNCivjgYLjgYQs44GC44GN44Gy44KNDQor44G+44GI44GgLOOBmeOBmeOCgA0KK+OBhOOBruOBhuOBiCzjga7jgbbjgobjgY0NCivjgYTjgYTjgaAs44KI44GX44GTDQor44G144GY44GELOOBkeOBhOOBng0KK+OBleOBj+OCieOBhCzjgYvjgZrjgZfjgZINCivjgb7jgaTjgYQs44GX44GS44Gu44G2DQor44GE44G+44GgLOOBv+OBqeOCig0KK+OBv+OChOOBkSzjgY/jgavjgZMNCivjgZXjgYvjgYQs44G+44GV44G/DQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBhOOCj+OBnyzjgYLjgY3jgbLjgZUNCivjgYrjga4s44GY44KF44KTDQor44GE44Gd44G5LOOBk+OBhuOBmA0KK+OBiuOChOOBvuOBoCzjgaDjgYTjgZnjgZENCivjgajjgZjjgb4s44Go44KC44GC44GNDQor44Gf44GR44GG44GhLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgobjgb/jgZMNCivjgZfjgonjgYTjgZcs44Gk44Go44KADQor44GL44Gu44G+44GfLOOBvuOBleOBlw0KK+OBmeOBqeOBhizjgbLjgafjgYvjgZoNCivjgZfjgonjgoTjgb4s44Gy44GV44GL44GaDQor44GK44Gy44KDLOOCiOOBl+OBvw0KK+OBv+OBquOBjOOCjyzjgZ/jgYvjgbLjgZUNCivjgY3jgoDjgoks44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBn+OBj+OChA0KK+OBleOBqOOBhizjgYbjgYTjgooNCivjgbXjgZjjgo/jgoks44GX44KT44GYDQor44GE44KC44GoLOOBguOBpOOBlw0KK+OBhuOBiOOBrizjgbLjgo3jgbLjgZUNCivjgY3jgofjga4s44GK44GV44KADQor44GN44KK44GGLOOBquOBiuOBqA0KK+OBj+OBvOOBnyzjgb7jgZXjgoQNCivjgZPjgZvjgY0s44Gf44GL44KI44GXDQor44GZ44GW44GNLOOBpOOBqOOCgA0KK+OBn+OBi+OBleOBjSzjgZ/jgaTjgbLjgo0NCivjgaTjgYvjgoLjgags44GL44Ga44Gy44GTDQor44Gq44GE44Go44GGLOOBvuOBmeOBig0KK+OBquOBi+OBlOOCgSzjgYrjgZXjgoANCivjgarjgYvjgoDjgoks44GC44Gk44GXDQor44Gv44GO44KP44KJLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgZPjga4s44G+44GV44KLDQor44GV44GE44GQ44GVLOOBqOOCguOBsuOCjQ0KK+OBu+OCk+OBoCzjgZ/jgaTjgoQNCivjgZ/jgarjgYss44Gg44GE44GeDQor44G+44Gk44Go44G/LOOChuOBjeOBig0KK+OBguOBi+OBleOBiyzjgb/jgaTjgosNCivjgZvjgpPjgYzjgpMs44KI44GG44GfDQor44Gf44GR44GKLOOBqOOCguOBsuOCjQ0KK+OCgOOCieOBnyzjgZHjgpPjgZQNCivjgYvjgo/jgZss44KI44GX44Gf44GgDQor44Gr44GX44GW44GNLOOBpOOBreOBig0KK+OBuOOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYrjgZXjgo8s44G+44GV44Gy44KNDQor44GG44GI44GgLOOChOOBmeOBsuOBlQ0KK+OBi+OBquOChOOBvizjgZfjgpPjgYTjgaENCivjga/jgonjgaAs44GR44KT44GYDQor44Gq44GL44GM44KPLOOBsuOCjeOBi+OBmg0KK+OBv+OChOOCguOCiizjgbLjgafjgoTjgZkNCivjgYvjgYQs44GL44Gk44G/DQor44GN44GQ44GhLOOBi+OCiOOBkw0KK+OBleOBn+OBkSzjgojjgZfjgbLjgZUNCivjgYrjgbvjgYss44Gf44KC44GkDQor44Gq44GL44GW44KPLOOChuOBjeOBig0KK+OChOOBmeOBiuOBiyzjgbLjgo3jgZcNCivjgY/jgo3jgb/jgaQs44GL44KI44GTDQor44GL44Gq44GgLOOBsuOCjeOBguOBjQ0KK+OBvuOCi+OBi+OCjyzjgYLjgY3jgbLjgacNCivjgarjgYzjgZXjgo8s44Gu44KK44GL44GaDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOCk+OBqSzjgajjgoLjgbLjgo0NCivjgYTjgpPjgarjgb8s44Gf44Gk44KG44GNDQor44KE44G+44KC44GoLOOBiOOBhOOBhOOBoQ0KK+OBquOBjOOBj+OCiSzjgb7jgZXjga/jgosNCivjgYbjgYjjga4s44KI44Gy44GhDQor44Gr44GX44GW44GLLOOChOOBmeOBsuOBkw0KK+OBleOBqOOBhizjgajjgoLjgobjgY0NCivjgoLjgorjgoTjgb4s44GC44Gk44GXDQor44GT44Gv44KE44GbLOOBvuOBk+OBqA0KK+OBqeOBhOOBnyzjgZHjgpPjgZgNCivjgbvjgZ3jgYvjgo8s44GX44KF44GYDQor44GC44GK44GNLOOBkeOCk+OBmA0KK+OBvuOBmeOBv+OBoCzjgajjgZfjgo0NCivjgYrjgaEs44GT44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBsuOBpw0KK+OBmeOBjuOChOOBvizjgoTjgZnjgZ/jgYsNCivjgbXjgZjjgo/jgoks44Gy44Gn44GNDQor44Gf44Gq44G5LOOBsuOBp+OBjQ0KK+OBqOOBoCzjgZ/jgZHjgobjgY0NCivjgaTjgbzjgYQs44GX44KFDQor44GZ44GO44GfLOOBvuOBleOBruOCig0KK+OBguOBoOOBoSzjga/jgovjgYoNCivjgbXjgZjjgYQs44GN44KI44Gf44GLDQor44GZ44GM44KC44KKLOOBleOBqOOBlw0KK+OChOOBmeOBoCzjgb7jgaHjgZMNCivjgZ/jgYvjga/jgZcs44G/44GLDQor44Gf44GM44G/LOOBpuOBpOOCjQ0KK+OBqOOBv+OChOOBvizjgZ/jgaTjgYoNCivjga/jga3jgaAs44GX44GS44GKDQor44GK44GW44GNLOOBsuOCjeOBlw0KK+OBiuOBkOOCiSzjga7jgbbjgYoNCivjgabjgonjgZXjgY0s44G/44Gk44GEDQor44Gk44Gh44KELOOBqOOCguOBsuOBkw0KK+OBiuOBi+OBoCzjgb7jgZXjgYTjgaENCivjgYLjgbks44GR44KT44GYDQor44GC44G5LOOBkeOCk+OBhOOBoQ0KK+OCguOCiuOCj+OBjSzjgZvjgYTjgoQNCivjga/jgoTjga4s44G/44Gk44KG44GNDQor44Go44G/44Gq44GMLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgoTjgZnjgYoNCivjgYvjgZ/jgY7jgoos44G+44GV44Gu44KKDQor44GC44Gv44KJLOOBkeOBhOOBnw0KK+OBu+OBlyzjgb7jgZXjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GX44KC44KA44KJLOOBquOBiuOBsuOBkw0KK+OCj+OBjeOCguOBqCzjgbLjgo3jgobjgY0NCivjgYvjgo/jgaYs44G+44GV44KLDQor44GC44G244KJ44GL44KPLOOChuOBhuOBmA0KK+OCiOOBl+OBn+OBkSzjgoTjgZnjgobjgY0NCivjgYTjgZfjgaAs44Gf44GR44GXDQor44G744KT44GgLOOChOOBmeOChuOBjQ0KK+OBl+OBn+OBvizjga7jgbbjgoQNCivjga7jgZDjgaEs44GI44Gk44GTDQor44G/44Ga44GELOOBpuOCi+OBig0KK+OBguOCk+OBqeOBhizjga7jgbbjgobjgY0NCivjgojjga3jgZfjgb4s44G/44Gk44GIDQor44GC44GN44GfLOOBk+OBhuOBhOOBoeOCjQ0KK+OBhuOBiCzjgZHjgpPjgZ8NCivjgZnjgY4s44GY44KF44KTDQor44Gq44GL44GY44G+LOOBv+OBjQ0KK+OBi+OBleOBiuOBiyzjgZXjgajjgZcNCivjga7jgaAs44Gv44KE44GoDQor44G+44Gk44GW44KPLOOBquOBquOBkw0KK+OCj+OBn+OBuSzjgZ/jgaTjgoQNCivjgYLjgYTjgZbjgo8s44KI44GX44Gy44GVDQor44GE44KP44GVLOOBv+OChuOBjQ0KK+OBk+OBjCzjgZ/jgYvjgZcNCivjgbLjgYzjgZfjgZ/jgass44GL44Ga44GK44G/DQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBguOBjeOBquOBiyzjgb7jgZXjgobjgY0NCivjgbXjgZjjgZ8s44Go44GX44KNDQor44KE44G+44GK44GLLOOCiOOBl+OBig0KK+OCj+OBoSzjgZ/jgZHjgZcNCivjgYbjgYjjga4s44GC44KE44GKDQor44GG44GX44GNLOOBquOBiuOBteOBvw0KK+OChOOBvuOCguOBqCzjgarjgaTjgb8NCivjgYvjgajjgYYs44GY44KF44KT44GTDQor44Gq44GM44GELOOBguOBpOOBlw0KK+OBteOBj+OBoCzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ/jgass44G+44KKDQor44Gy44KJ44GV44KPLOOBqOOBl+OBsuOBkw0KK+OBv+OChOOBluOBjSzjgabjgaTjgbXjgb8NCivjgabjgonjgZfjgb4s44GT44GG44GE44Gh44KNDQor44GC44KJ44GELOOBn+OBpOOBig0KK+OBn+OBquOBiyzjgZHjgYTjgZjjgo0NCivjgYvjga3jgZMs44GX44KTDQor44GV44Go44GGLOOBguOBjeOBsuOBkw0KK+OBquOCiuOBnyzjgbLjgafjgbXjgb8NCivjgarjgYzjgZfjgb4s44Go44GX44KEDQor44GV44GL44GuLOOChOOBmeOBr+OCiw0KK+OBv+OBhuOCiSzjgYvjgZrjgoQNCivjgoTjgb7jgZDjgaEs44Gy44GV44Gf44GLDQor44GK44Gn44KJLOOBm+OBpOOChA0KK+OBguOBuSzjgZHjgpPjgZ/jgo3jgYYNCivjgZPjgaDjgb4s44GL44Ga44GE44GhDQor44KE44G+44KC44GoLOOBr+OCi+OBsuOBkw0KK+OBiuOBl+OBvizjgb7jgZXjgajjgZcNCivjgYTjgZfjgZos44Gf44Gg44Gy44KNDQor44GL44KT44Gw44KE44GXLOOBguOChOOBkw0KK+OBiuOBi+OCjyzjgYjjgb8NCivjgbLjgYjjgaAs44Gq44GM44GTDQor44GE44Gu44G+44GfLOOBvuOBleOCiw0KK+OBvuOBjeOBnyzjgoDjga3jgYvjgZoNCivjgYzjgarjga8s44Gh44GMDQor44Gv44KE44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBguOBi+OBrOOBvizjgZ/jgYvjgYLjgY0NCivjgoDjgo3jgYvjgo8s44Gm44Gk44GYDQor44GK44GuLOOBl+OCheOBsuOBoQ0KK+OBjeOCgOOCiSzjgZjjgoXjgavjgaHjgo0NCivjga/jgZ/jgZbjgo8s44Go44GX44GKDQor44G144GY44GfLOOBleOBqOOBlw0KK+OBhuOBiOOBoCzjgZHjgYQNCivjgoTjgb7jga7jgYbjgaEs44Gq44GK44Go44GXDQor44G144KL44GfLOOBguOBpOOBlw0KK+OBiuOBj+OChOOBvizjgYvjgZrjgbLjgo0NCivjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GK44GV44Gq44GELOOBqOOBiuOCiw0KK+OBk+OBn+OBqyzjgaTjgajjgoANCivjgYrjgaTjgYss44KG44GN44GKDQor44G144GP44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBmuOBiyzjgZ/jgZHjgbLjgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KC44KK44GfLOOBqOOBl+OChA0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgbvjgpPjgaAs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBpuOBpOOChA0KK+OBguOBleOBrOOBvizjgb7jgZXjga7jgooNCivjgYLjgZrjgb4s44GR44GE44GZ44GRDQor44Gm44KJ44GV44KPLOOBl+OCh+OBlA0KK+OBguOBi+OBlyzjgoTjgZnjgZMNCivjgYvjgajjgYYs44G+44GV44GNDQor44GK44Gu44GV44GoLOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OCgOOCiSzjgYTjgZXjgYoNCivjga7jgoDjgoks44KI44GX44Gy44KNDQor44GE44Gu44GG44GILOOBkeOCk+OBhOOBoeOCjQ0KK+OBr+OChOOBlyzjgbXjgb/jgYoNCivjgZ/jgoDjgoks44Gb44GE44GE44GhDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBmeOBjuOCgOOCiSzjgZ/jgaDjgYLjgY0NCivjgajjgb/jgoTjgb4s44GT44GZ44GRDQor44GL44GN44GW44KPLOOBkeOCkw0KK+OBq+OBl+OBn+OBqyzjgabjgovjgYLjgY0NCivjgYLjgZXjgY/jgoks44GR44KT44GE44Gh44KNDQor44GE44GX44GW44GNLOOBsuOCjeOBjQ0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYLjgY0NCivjgarjgYzjgYos44GC44GN44Gu44KKDQor44GN44GuLOOChOOBmeOBsuOCjQ0KK+OBguOBuSzjgb7jgZXjgYoNCivjgajjgZjjgocs44G/44Gk44GKDQor44KE44G+44GNLOOBpOOBreOBig0KK+OBguOCieOBhCzjgarjgYrjgagNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44GK44GP44KA44KJLOOBsuOCjeOBpOOBkA0KK+OBr+OCiSzjgbLjgafjgb8NCivjgoTjgb7jgoLjgags44GI44GE44GE44GhDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgYzjgY8NCivjgYTjgZHjgaks44GZ44GI44Gu44G2DQor44GE44Go44GGLOOCiuOChw0KK+OBhOOBqOOBhizjgZHjgYQNCivjgYbjgorjgoUs44Go44GX44GC44GNDQor44GG44Gh44KE44G+LOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBiOOBruOCguOBqCzjgZfjgpPjgoQNCivjgYjjgZrjgoks44GV44Go44GXDQor44GK44Gk44GLLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiOOBq+OCgyzjgajjgZfjgYoNCivjgYLjgYvjgYos44KK44GIDQor44GK44Gr44GXLOOBn+OBmeOBjw0KK+OBi+OBjOOChCzjgZPjgYbjgZgNCivjgYvjgb7jgZ8s44GT44GG44GE44GhDQor44GL44KP44GL44G/LOOBkuOCkw0KK+OBleOBleOBjSzjgZHjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GL44Ga44GIDQor44Gf44GgLOOBl+OCh+OBn+OCjeOBhg0KK+OBq+OBl+OBrizjgYvjgaTjgbLjgZUNCivjgYLjgZXjgYos44GX44KT44GE44Gh44KN44GGDQor44Gv44GX44KC44GoLOOBi+OBmuOChA0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgZ/jgYsNCivjgbvjgZcs44GR44GE44GYDQor44G744KK44GfLOOChuOBhuOBmA0KK+OBvuOBiOOBnuOBrizjgYLjgY3jgokNCivjgb7jgYjjgZjjgb4s44Gf44Gg44GXDQor44G/44KE44GW44GNLOOBsuOCjeOBv+OBoQ0KK+OBguOCieOBhCzjgajjgYrjgosNCivjgoLjgoos44GR44GE44GZ44GRDQor44G+44GI44GgLOOBmeOBmeOCgA0KK+OBiuOBoSzjgZHjgYTjgZnjgZENCivjgYLjgZXjgY/jgoks44GX44KH44GYDQor44GG44GV44G/LOOBhOOBquOCkw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgYvjgorjgoQs44Gu44G244Gy44GVDQor44GG44GI44GgLOOChOOBmeOCiOOBlw0KK+OBiuOBn+OBuSzjgarjgYrjgbLjgZMNCivjgY3jgoDjgoks44GT44GG44GE44GhDQor44GP44GX44GgLOOBvuOBleOCiOOBlw0KK+OBguOBvuOBryzjgarjgYrjgY0NCivjgZPjgpPjgaks44Gq44GK44GNDQor44GX44G/44GaLOOBn+OBi+OBkw0KK+OBmeOBmuOBjSzjgZ/jgYoNCivjgZnjgpMs44GX44KT44GE44GhDQor44Gf44Gp44GT44KNLOOBquOCi+OBsuOBpw0KK+OBqOOBreOBleOBjyzjgb/jga7jgosNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44G+44GZ44GgLOOCiOOBl+OBvw0KK+OBv+OChOOBluOBjSzjgZPjgZnjgZENCivjgojjgZfjgarjgYws44Gy44KN44GXDQor44KI44GT44GL44KPLOOBkeOCkw0KK+OBpOOBoeOChCzjga7jgorjgYoNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgZMNCivjgarjgYzjgYos44Gy44Gn44KG44GNDQor44GV44Go44GGLOOBkeOBhOOBng0KK+OBn+OBoCzjgYTjgZXjgoANCivjgYLjgY3jgoLjgags44KI44GX44Gv44KLDQor44Gf44KA44KJLOOBk+OBhuOBmA0KK+OBn+OCgOOCiSzjgojjgZfjgY0NCivjgYrjgYss44GX44KH44GG44GE44Gh44KN44GGDQor44GV44GP44KJ44GOLOOBl+OCheOBk+OBhg0KK+OBmeOBmuOBjSzjgZnjgb/jgYoNCivjgoLjgorjgYrjgYss44Gy44Go44GXDQor44KE44GQ44GhLOOBhOOBleOCgA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgZfjgonjgYvjgo8s44Gy44KN44GKDQor44GK44Gk44GLLOOBv+OBr+OCiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgZUNCivjgarjgYvjgb7jgaEs44Gf44GP44G+DQor44KP44GL44Gv44KJLOOBvuOChuOBvw0KK+OBguOBjSzjgb7jgZXjga7jgooNCivjgZ/jgY3jgZ8s44G+44GV44GYDQor44GC44KJ44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OBvuOBpOOBiizjgZfjgpPjgYTjgaENCivjgaHjgocs44Gf44GR44GXDQor44GP44KN44GgLOOBqOOCguOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgZfjgoXjgpPjgZnjgZENCivjgajjgoLjgYrjgYss44G+44KC44KLDQor44Gq44GL44GKLOOBi+OBmuOChuOBjQ0KK+OBguOBnSzjgb/jgaHjga/jgosNCivjgbXjgY/jgaAs44GR44KT44GE44GhDQor44GC44GK44GNLOOBsuOCjeOBlw0KK+OBj+OCiyzjgZ/jgaDjgZcNCivjgoDjgonjgYvjgb8s44KG44GXDQor44GP44KN44GgLOOBleOBqOOBlw0KK+OBv+OBi+OBvyzjgbLjgafjgY0NCivjgYvjgb/jgoDjgoks44Gy44Gn44GNDQor44GN44Gf44GY44G+LOOBqOOCguOChOOBmQ0KK+OBvuOCi+OChOOBvizjgoTjgZnjgbXjgb8NCivjgZXjgZ/jgZEs44KE44GZ44GKDQor44KC44Gm44GNLOOBn+OBi+OBlw0KK+OBqOOBv+OBnyzjgYvjgZrjgbLjgo0NCivjgavjgo8s44GR44GE44GE44GhDQor44Gf44GL44Gw44Gf44GRLOOBk+OBhuOBmA0KK+OBguOBmuOBvizjgobjgYbjgYTjgaENCivjgbXjgovjgoQs44GX44GS44KLDQor44Gq44GZLOOBn+OCjeOBhg0KK+OBk+OCiizjgYjjgb/jgZMNCivjgYTjgZHjgaAs44KP44Gf44KLDQor44GU44GoLOOBpuOCi+OBi+OBmg0KK+OBvuOCiyzjga7jgbbjgZ/jgYsNCivjgbXjgY/jgaAs44Gy44Go44GXDQor44GZ44GM44Gv44KJLOOBsuOBleOBqA0KK+OBjeOCgOOCiSzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgZss44Gf44GP44KEDQor44Gr44GX44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgobjgY0NCivjgY/jganjgYYs44Gq44GK44GNDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOCguOBqCzjgZHjgpPjgYTjgaENCivjgb/jgoTjgoLjgags44Gf44GR44GXDQor44Gu44GfLOOBteOBjQ0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgZMNCivjgYLjgY3jgbAs44GX44GS44Gu44KKDQor44GE44KP44GNLOOBvuOBleOCiw0KK+OBi+OBqOOBhizjgZXjgaHjgZMNCivjgoLjgorjgoLjgags44KI44GX44Gy44KNDQor44Gq44GL44KA44KJLOOBvuOCig0KK+OBquOBi+OChOOBvizjgb7jgZXjgbLjgo0NCivjgYrjgZ/jgass44GT44GG44GYDQor44GZ44GO44KE44G+LOOBmOOBguOBg+OCkw0KK+OBmeOCkyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44GY44KF44KT44GYDQor44G744KT44GpLOOBqOOBl+OBsuOBkw0KK+OBr+OBjCzjgb7jgooNCivjgZfjgYrjgZbjgY0s44KK44KHDQor44G144GY44GuLOOBpuOBpOOBig0KK+OBiuOBrizjgZHjgpPjgYTjgaENCivjgYLjgpPjganjgYYs44GR44KT44GoDQor44KE44G+44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OBj+OCjeOBoCzjgorjgofjgbjjgYQNCivjgYLjgpPjganjgYYs44KG44GN44Gy44KNDQor44GG44GuLOOBl+OBruOBtg0KK+OBhOOBqOOBhuOBn+OBqyzjgb/jgoQNCivjgYrjgYss44G+44GT44GoDQor44G/44GG44KJLOOBl+OBuw0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgYvjgZoNCivjgYjjgoLjgags44GL44Ga44Go44GXDQor44GT44GMLOOBi+OBmuOChA0KK+OBjeOBr+OCiSzjgZfjgZLjgbLjgo0NCivjgb7jgaTjgaAs44G/44Gu44KLDQor44KE44G+44GgLOOBqOOCiOOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgZcNCivjgoTjga/jgZ8s44KG44Gf44GLDQor44Gf44GW44GNLOOBi+OBj+OBmA0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgZMNCivjgZ/jgYvjgaAs44G/44Gu44KLDQor44Gu44GgLOOBkeOCk+OBmA0KK+OBleOBhOOBv+OChyzjgojjgZfjgYoNCivjgZPjgbDjgoTjgZcs44Go44GX44GC44GNDQor44G144GY44GNLOOBn+OBi+OBlw0KK+OBl+OCieOBleOBiyzjgZjjgYcNCivjgaHjgYfjgpMs44KK44KH44Gy44GhDQor44Gf44GL44Gv44GXLOOBn+OBkeOBsuOBkw0KK+OChOOBpCzjgYjjgaTjgb8NCivjgYbjgYrjgZ/jgass44Gu44G244KG44GNDQor44Gf44KA44KJLOOBi+OBqg0KK+OBvuOBpOOBiizjgb7jgZPjgagNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44GN44GgLOOBsuOCjeOBlw0KK+OBn+OCk+OBkizjgbXjgb/jgZ/jgaANCivjgbLjgo3jgZss44GC44GN44GTDQor44G+44Gk44GX44G+LOOCiOOBsuOBoQ0KK+OBiuOBi+OBrizjgbLjgafjgYoNCivjgYLjgYrjgY0s44GR44GE44GfDQor44Gv44Gb44GM44KPLOOCiuOCheOBsuOBoQ0KK+OBq+OBl+OBu+OCiizjgbLjgo3jgb8NCivjgYTjgZfjgZrjgYss44G+44GV44Gk44GQDQor44Gk44G844GELOOBi+OBiuOCiw0KK+OBhOOBl+OBoCzjgYLjgonjgZ8NCivjga/jgZfjgoLjgags44GR44KT44GYDQor44GU44GoLOOBteOBv+OBig0KK+OBguOBjeOChOOBvizjga7jgbbjgbLjgo0NCivjgb/jgaTjga/jgZcs44Go44GK44KLDQor44GU44GX44G+LOOBguOBpOOBig0KK+OBteOBj+OBoCzjgbXjgb/jgbLjgZMNCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44GTDQor44Gq44GL44GW44KPLOOBleOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgYTjgZHjgYbjgaEs44KG44GN44GTDQor44Gf44GM44G/LOOBpuOBpOOCjQ0KK+OBi+OCj+OBjeOBnyzjgZnjgZnjgoANCivjgarjgYvjgoDjgoks44G/44Gh44KEDQor44GT44G+44GELOOBleOBqOOCiw0KK+OBu+OBl+OChCzjgojjgbLjgaHjgo0NCivjgZnjgb/jgags44KK44KF44GYDQor44G744GX44GuLOOBoeOBi+OCiQ0KK+OBquOBi+OChCzjgZ/jgYvjgoQNCivjga/jgoks44Gy44Gn44KG44GNDQor44KA44KN44KE44G+LOOBvuOBleOCiw0KK+OBl+OBruOBoCzjgZXjgajjgosNCivjgoLjgoos44GX44KT44GYDQor44GX44KJ44GE44GXLOOBsuOCjeOBjQ0KK+OBsuOCieOBrizjgZfjgZLjgosNCivjga/jgZfjgoLjgags44GL44Ga44GKDQor44GC44G5LOOBsuOCjeOBlw0KK+OBhOOBl+OBi+OCjyzjgarjgYrjgbXjgb8NCivjgYLjgZrjgb4s44Gy44GV44GXDQor44GK44Gk44GLLOOBsuOBqOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgobjgY0NCivjgYrjgZfjgb4s44Gf44GL44GKDQor44GT44GW44GELOOBkeOCk+OBmOOCjQ0KK+OBi+OCj+OBi+OBvyzjgYzjgY8NCivjgarjgYvjga4s44GT44GZ44GRDQor44GG44GY44KC44GoLOOBguOChuOCgA0KK+OBjeOBl+OBoCzjgb7jgZXjgbXjgb8NCivjgZPjgYTjgZrjgb8s44GL44Ga44GKDQor44Gq44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBmuOBvyzjgb/jgZrjgbsNCivjgZnjgY7jgoLjgoos44GL44Ga44Gy44GTDQor44GC44GK44GNLOOBi+OBl+OCheOBjw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgYTjgYws44G+44GV44Gy44KNDQor44GL44KP44Gw44GfLOOBk+OBhuOBmA0KK+OBl+OBsOOBnyzjgobjgYbjgZMNCivjgaDjgpPjgZjjgocs44GY44KF44KT44GYDQor44Gf44GQ44GhLOOBguOCiuOBi+OBpA0KK+OBvuOBoeOBoCzjgojjgZfjgb8NCivjgYLjgZfjgaAs44Gu44G244GKDQor44GC44KT44Gp44GGLOOBkeOBhA0KK+OCgOOBqCzjgaHjgYvjgYoNCivjgZPjgoTjgb4s44GN44KI44Gy44KNDQor44GZ44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBruOCgOOCiSzjgoDjga3jgbLjgZMNCivjgYTjgajjgoQs44G+44GV44Gy44GTDQor44Gh44GL44GK44GLLOOBsuOBqOOBlw0KK+OBmOOCk+OBtizjga7jgorjgZMNCivjgYLjgaDjgaEs44Go44GX44Gy44KNDQor44GL44KP44GELOOCiOOBl+OBjQ0KK+OBv+OBruOCjyzjgajjgZfjgbLjgo0NCivjgYLjgZXjgbIs44Go44KC44Gv44KLDQor44GK44GfLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjga7jgorjgYvjga0NCivjgY3jgoks44Gu44Ge44G/DQor44KE44G+44GW44GNLOOBsuOCjeOBsuOBpw0KK+OChOOBvuOBhuOBoSzjgb7jgarjgb8NCivjgbvjgaPjgZ8s44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBqOOCguOBig0KK+OBiuOBj+OCgOOCiSzjgobjgYbjgZMNCivjgYvjga3jgZMs44Gm44GE44GYDQor44GC44KE44GuLOOBi+OBpOOBruOCig0KK+OBr+OChOOBi+OCjyzjgY3jgojjgagNCivjgYTjgajjgYYs44GR44GE44GE44GhDQor44GK44GP44KA44KJLOOBmOOCheOCkw0KK+OBn+OCk+OBluOCjyzjgb7jgZXjgajjgZcNCivjgZXjgY3jga4s44Gk44Go44KADQor44GL44KP44Gv44KJLOOBv+OBoeOChOOBmQ0KK+OBn+OCi+OBhCzjgb7jgZXjgZcNCivjgYLjgorjgoLjgags44KE44GZ44GXDQor44GI44Gz44GTLOOBk+OBhuOBhOOBoQ0KK+OBsuOBrizjgajjgZfjgYLjgY0NCivjgoTjgb7jgaAs44KI44GX44GC44GNDQor44GK44GuLOOBjeOCiOOBlw0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZcNCivjga/jgoTjgZcs44G/44GLDQor44GE44GX44GgLOOBv+OBpOOCiw0KK+OBl+OBiuOChCzjgojjgZfjga7jgooNCivjgYLjgpPjganjgYYs44GX44GS44GKDQor44G+44Gk44Gw44KJLOOBmOOCheOCkw0KK+OBq+OBl+OBoCzjgYTjgZ/jgosNCivjgarjgYvjgoDjgoks44GT44GNDQor44GE44GR44GgLOOBqOOCguOBquOCig0KK+OBr+OChOOBvyzjgb7jgZXjgbLjgZMNCivjgZnjgZrjgY0s44Gy44GV44Gu44KKDQor44GK44GM44KPLOOBn+OBpOOBig0KK+OBhOOBl+OBi+OCjyzjgojjgZfjgbLjgo0NCivjgYLjgZXjgb8s44Go44GK44KLDQor44Gv44Gf44GR44KE44G+LOOCiOOBl+OBig0KK+OBu+OCiuOBv+OBnizjgYLjgaTjgZcNCivjgb7jgovjgZ/jgass44Go44KC44Gq44KKDQor44GV44Go44GGLOOBi+OBpOOChA0KK+OBleOBi+OBquOBiyzjgZfjgofjgogNCivjgarjgYvjgoDjgoks44GP44G/DQor44GE44Go44GGLOOChuOCiuOBkw0KK+OBteOCi+OBquOBjCzjgY3jgofjgZMNCivjgbXjgY/jgZfjgb4s44GR44KTDQor44G/44Ga44GM44G/LOOBn+OBkeOBlw0KK+OBn+OBkeOBhuOBoSzjga7jgbzjgosNCivjgajjgorjgYbjgb8s44G+44GV44G144G/DQor44Gt44GO44GXLOOBvuOBleOCiw0KK+OBk+OChOOBvizjgb7jgZXjga7jgooNCivjgYrjgZfjgb4s44GY44KF44KTDQor44GL44Gf44GK44GLLOOBsuOBp+OBig0KK+OBn+OBjeOBkOOBoSzjgZfjgofjgZ4NCivjgZPjgb7jgaQs44GC44GN44KJDQor44KE44GOLOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OBjizjgZHjgpPjgZgNCivjgb7jgZnjgYQs44Gf44GL44GXDQor44Gv44KE44GXLOOBkeOBhOOBmeOBkQ0KK+OBguOBreOBn+OBhCzjgaHjgbLjgo0NCivjgY3jga/jgoks44GC44GN44GKDQor44GV44GE44Go44GGLOOBi+OBmuOBig0KK+OBjeOBn+OCj+OBjSzjgajjgoLjgbLjgZMNCivjga7jgZDjgaEs44GL44GK44KLDQor44GV44GL44GQ44GhLOOBr+OCi+OBsuOBkw0KK+OBq+OBlyzjgb7jgZXjgagNCivjgYTjgZHjgaAs44KI44GX44KG44GNDQor44GV44Go44GGLOOBv+OBoeOBig0KK+OBhOOBvuOBhCzjgb/jga7jgosNCivjgoTjgb7jgaAs44GX44GS44GNDQor44Gf44Gq44GLLOOBguOBjeOBruOCig0KK+OBiuOBleOBkyzjgarjgZnjgYoNCivjgZPjgoDjgo0s44Gf44GL44GXDQor44GV44GE44Go44GGLOOBsuOBp+OBteOBvw0KK+OBmeOBmuOBjSzjgYvjgZrjgYoNCivjgbXjgarjgajjgYzjgo8s44Gf44GL44GXDQor44GE44GX44GELOOCiOOBl+OBig0KK+OBvuOBpOOBhCzjgabjgaTjgo0NCivjgZnjgYjjgbLjgoks44Gy44Go44GXDQor44Gy44KN44Gf44GrLOOBvuOBleOChuOBjQ0KK+OBsuOBjOOBlyzjgZHjgpPjgYTjgaENCivjgYTjgoDjgoks44GX44GS44GKDQor44GC44G5LOOBv+OBoeOBsuOBkw0KK+OCiOOBreOBj+OCiSzjgbLjgo3jgb/jgaENCivjgo/jgZ/jgarjgbks44KC44Go44GEDQor44GZ44GMLOOChuOBjeOBv+OBpA0KK+OBleOBrizjgabjgaTjgYoNCivjgZfjgbAs44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBvuOBleOBsuOBqA0KK+OBjeOBluOCjyzjgZfjgZLjgYTjgY8NCivjgYvjgZXjgb7jgY0s44KE44GZ44Gy44GVDQor44GN44KA44KJLOOBvuOBk+OBqA0KK+OBpOOCi+OBvyzjgYvjgarjgoENCivjgYLjgYrjgY0s44Gy44Gn44GNDQor44GE44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OCguOCjSzjgobjgYvjgooNCivjgYrjgY/jgoDjgoks44Gm44KL44GC44GNDQor44Gf44GL44GOLOOBruOBvOOCiw0KK+OBhOOBkeOChCzjgbLjgajjgZcNCivjgajjgb/jgoTjgb4s44KI44GX44GKDQor44KE44GOLOOBjeOCiOOBlw0KK+OBqOOBv+OBjSzjgYLjgaTjgZMNCivjgajjga7jgoDjgoks44KE44GZ44Gu44KKDQor44KE44Gk44Ga44GLLOOBruOBtuOBqOOBlw0KK+OBtuOBvizjgojjgZfjgb/jgaQNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OBvuOBpOOBl+OBnyzjgajjgoLjgZgNCivjgYTjgaAs44GX44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBrizjgojjgZfjgo0NCivjgYvjgo/jgZDjgaEs44GR44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBguOBjeOBsuOBlQ0KK+OBhOOBl+OBoCzjgZfjgofjgZMNCivjgYbjgaAs44KC44Go44GXDQor44G144GY44KP44KJLOOBguOBjeOBig0KK+OBk+OBhOOBpyzjgbLjgo3jgobjgY0NCivjgaTjgYvjgaAs44GT44GG44GYDQor44Gy44KJ44KE44G+LOOBv+OBoeOBig0KK+OBhuOBoeOBqOOBvyzjgYvjgZrjgb/jgaQNCivjgYTjgb7jga/jgoks44Gf44GL44GKDQor44GG44GI44GgLOOBpuOBpOOCjQ0KK+OBleOBleOBi+OCjyzjgb/jga7jgosNCivjgYLjgYTjgYvjgo8s44Go44GX44Gy44KNDQor44GG44GI44GNLOOBkeOCk+OBl+OChw0KK+OBquOBi+OChOOBvizjgbXjgb/jgajjgoINCivjgYrjgZXjgo8s44KI44GG44GTDQor44Gf44GL44GK44GLLOOBl+OBruOBtg0KK+OCj+OBoCzjgZfjgpMNCivjgYTjgazjgZrjgYss44KI44GX44Gy44KNDQor44Gf44Gq44GLLOOChOOBmeOBsuOCjQ0KK+OBn+OBkeOBoCzjgb7jgZXjgYoNCivjgoTjgb7jgaAs44Gk44Go44KADQor44KE44Gq44GOLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBkeOBl+OBnyzjgZXjgajjgosNCivjgavjgZcs44KK44KF44GYDQor44GK44Gf44GRLOOBqOOBl+OBn+OBkQ0KK+OBq+OBn+OBquOBhCzjgbjjgYTjga/jgaENCivjgbvjgpPjgb4s44Gy44KN44GXDQor44Gq44GL44GuLOOBguOBjeOCiQ0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgojjgZcNCivjgYbjgYjjga4s44Gy44Go44GXDQor44Gw44GwLOOCiOOBl+OBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgYLjgY0NCivjgY/jgavjgYQs44Gf44GL44KI44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBvw0KK+OBvuOBmeOBoCzjgojjgZfjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gk44GL44GKLOOBpOOBjuOBig0KK+OBi+OCj+OCgOOCiSzjgY/jgavjgbLjgZUNCivjgYvjgo/jgbDjgZ8s44GT44GG44GN44GhDQor44GC44GL44GV44GLLOOBjeOCiOOBn+OBiw0KK+OBhOOBhOOBoCzjga7jgbzjgosNCivjgZfjgonjga/jgb4s44Gy44Gn44Gy44KNDQor44Go44GM44KPLOOCiOOBl+OBn+OBkQ0KK+OBhOOBqOOBhizjgZ/jgaTjgbLjgZMNCivjgYrjgYvjgbks44KG44Gy44GhDQor44KP44Gf44Gq44G5LOOBl+OBkuOBig0KK+OBleOBi+OBsCzjga7jgbbjgbLjgZMNCivjgbLjgo3jgZXjgo8s44KI44GX44Gu44KKDQor44Gq44GL44KA44KJLOOBsuOBp+OBjQ0KK+OChOOBmeOBhCzjgZjjgoXjgpPjgZjjgo0NCivjgbLjgonjgZ8s44GV44Gg44KADQor44GN44Gf44GM44KPLOOBvuOBleOBig0KK+OBguOBvuOBrizjgaTjgajjgoANCivjgaTjgZjjgoDjgoks44GR44GE44GYDQor44GL44KP44GV44GNLOOBsuOCjeOBlw0KK+OBhuOBiOOCgOOCiSzjgZPjgYbjgZgNCivjgoDjgonjgYvjgb8s44Gy44KN44GNDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBr+OBnCzjgZPjgZ4NCivjgajjgZfjgbLjgo0s44GY44KF44KT44GTDQor44GT44Gw44KE44GXLOOBpuOBpOOChA0KK+OBhOOBrizjgZ/jgaDjgZcNCivjgYLjgZXjga4s44Gy44KN44KG44GNDQor44KC44KKLOOBsuOBp+OBhOOBoQ0KK+OBhOOBquOBluOCjyzjgb7jgZXjgZcNCivjgZPjgbDjgoTjgZcs44Gy44KN44GKDQor44GV44GL44GNLOOBqOOBl+OBsuOCjQ0KK+OBhuOBoeOChOOBvizjgbLjgajjgZcNCivjgb7jgarjgbks44GX44GS44KLDQor44GK44Gy44KD44G+LOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZUNCivjgojjga3jgoDjgoks44GX44KT44GE44GhDQor44Gw44KJ44GgLOOBpuOBpOOChA0KK+OBteOCi+OBnuOBrizjgYjjgaTjgo0NCivjgbXjgZjjgoLjgags44GT44GG44GE44GhDQor44GV44GuLOOBn+OBkeOBlw0KK+OBi+OCj+OBrizjgZfjgZLjgaoNCivjgbvjgZfjgYvjgo8s44GN44KI44GXDQor44GV44GV44KC44GoLOOBkeOCkw0KK+OBmeOBqeOBhizjgY3jgb/jgbLjgo0NCivjgZXjgajjgYYs44GX44GS44KG44GNDQor44Gv44KE44GXLOOBn+OBoOOBruOCig0KK+OBsOOBsCzjgobjgbLjgaENCivjgbDjgbAs44GT44GG44GYDQor44GK44KE44GtLOOBk+OCiA0KK+OBquOBjOOBleOCjyzjgabjgovjgbLjgo0NCivjgZXjgYvjgoLjgags44KI44GX44Gy44GTDQor44GC44GK44GNLOOBm+OBhOOBmA0KK+OCgOOBquOBi+OBnyzjgoTjgZnjgY0NCivjgYTjgajjgYYs44GR44KT44GYDQor44GL44KP44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgobjgY0NCivjgbDjgpPjgaks44GC44GN44Gy44GTDQor44Gu44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBk+OBrizjgYvjgZrjgYLjgY0NCivjgYvjgo/jgYQs44G+44KC44KLDQor44GG44GI44GuLOOBiOOBhOOBkw0KK+OBr+OCieOBoCzjgZPjgYbjgZgNCivjgYvjga4s44KC44Go44Gk44GQDQor44GK44GK44Gv44GfLOOBvuOBleOBqA0KK+OBmeOBqeOBhizjgZ/jgYvjgYoNCivjgb7jgaTjgaAs44Gy44KN44GXDQor44GE44GR44GM44G/LOOBsuOBp+OBruOCig0KK+OBl+OCieOBhCzjgbLjgajjgZcNCivjgZXjgajjgYYs44Gy44Gn44GKDQor44GV44GL44GELOOChOOBmeOChuOBjQ0KK+OBiuOBjSzjgb7jgZXjga/jgosNCivjgYvjgo/jgoDjgoks44Gb44GE44GYDQor44KE44G+44GgLOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYTjgYvjgb8s44Gy44KN44KG44GNDQor44GC44Ga44G+44GKLOOBv+OBoeOBig0KK+OBteOBmOOCgOOCiSzjgZjjgoXjgpMNCivjgY3jgZ/jgoDjgoks44GC44GN44Gy44GTDQor44Go44GM44G/LOOCiOOBl+OBv+OBoQ0KK+OBk+OBmeOBkizjgYvjgZrjga7jgooNCivjgZvjgY0s44Gu44G244KG44GNDQor44GL44KP44GX44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBhCzjgYLjgY3jgokNCivjgYLjgY3jgoTjgb4s44G/44GN44GKDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgbLjgajjgZcNCivjgavjgZfjga4s44G+44GT44GoDQor44G/44KE44GRLOOBkeOCk+OBl+OCkw0KK+OCiOOBreOCguOBoSzjgZ/jgYvjgYLjgY0NCivjgZ/jgYvjgZfjgb4s44Gf44GR44GXDQor44GV44GL44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBpOOBjSzjgZHjgpPjgZgNCivjgYvjgo/jgZXjgY0s44Gy44KN44GKDQor44Gr44GX44GL44KPLOOBguOBjeOBsuOBlQ0KK+OBleOBj+OCieOBhCzjga/jgovjgYoNCivjgZnjgY4s44Gy44Gn44GoDQor44G744KK44GT44GXLOOBqOOBiuOCiw0KK+OCguOCiizjgobjgYbjgZgNCivjga/jgZHjgaAs44Go44GX44G/DQor44Gr44GE44GgLOOBvuOBleOBig0KK+OBjeOBj+OBn+OBqyzjgbLjgo3jgobjgY0NCivjgZ/jgZHjga7jgZfjgZ8s44Go44KC44KG44GNDQor44Gf44GL44Gv44GXLOOChuOBlA0KK+OBn+OBquOBuSzjgobjgY3jgYoNCivjgYTjgZHjgoLjgags44Go44GX44G144G/DQor44G+44Gk44KE44G+LOOBl+OCheOBhOOBoQ0KK+OCiOOBl+OBluOCjyzjgZ/jgYvjgobjgY0NCivjgYLjgYvjgYQs44Gf44GL44Gy44KNDQor44Gr44GX44GK44GLLOOCguOBqOOBmA0KK+OBn+OBkeOCguOBqCzjgZfjgZLjgYoNCivjgajjgY/jgaAs44Go44GX44Gu44KKDQor44GK44KC44KKLOOBguOBjeOBqOOBlw0KK+OBi+OBqOOBhizjgb/jgY0NCivjgYvjgo/jgags44Gf44GN44GKDQor44G+44GI44GgLOOBkeOCk+OBmA0KK+OBj+OCjeOBjSzjgbLjgafjgYLjgY0NCivjgYTjgYTjgaAs44Go44GK44KLDQor44GT44KE44Gq44GOLOOBi+OBpOOChA0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44KE44G+44KC44GoLOOBleOBqOOBlw0KK+OBpOOBpOOBhCzjgZfjgoXjgbjjgYQNCivjgZ/jgarjgYss44Gy44KN44G/DQor44G144GP44GX44G+LOOBvuOBleOBkw0KK+OBk+OBmOOBvizjga7jgorjgZMNCivjgavjgZfjgaAs44KG44GN44GTDQor44Gr44GX44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgYTjgYTjgZjjgb4s44Gb44GE44GE44Gh44KN44GGDQor44Gf44G+44GELOOBruOBtuOBig0KK+OBk+OBrizjgojjgZfjgYoNCivjgb/jgb7jgZks44KE44GZ44Gy44KNDQor44KI44Gt44Gv44KJLOOBn+OBpOOBlw0KK+OCiOOBl+OBoCzjgbXjgb/jgYoNCivjgbXjgY/jgaAs44Gd44Gy44GhDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OChOOBvuOCguOBqCzjgY/jgb/jgZMNCivjgY3jgZ/jgZQs44Gv44GY44KBDQor44GV44KT44GuLOOBguOBpOOBlw0KK+OChOOBleOBiyzjgoTjgZnjgYLjgY0NCivjgoDjgonjgZ8s44Gf44Gk44GKDQor44Gq44GL44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBleOBj+OCieOBhCzjgb/jga7jgosNCivjga/jgonjgaAs44GX44KF44Gr44GhDQor44GV44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBleOBhOOBqOOBhizjgb/jgaTjgZANCivjgZ3jga0s44GY44KF44KT44GTDQor44Gv44GZ44G/LOOBoOOBhOOBmeOBkQ0KK+OBsuOCieOBnyzjgZ/jgYvjgZcNCivjgoTjgarjgY7jgZXjgo8s44GZ44GZ44KADQor44Gf44Gh44Gw44GqLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgajjgZfjgb/jgaQNCivjga/jgoks44Gb44GE44GE44GhDQor44GV44GE44Go44GGLOOBi+OBmuOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBi+OBjOOCjyzjga7jgbzjgosNCivjgZ/jgY3jgZbjgo8s44Go44KC44Go44GXDQor44GX44Gq44GM44KPLOOBqOOBl+OBig0KK+OBi+OBjeOBr+OCiSzjgZfjgZLjgb8NCivjgZnjgYzjgazjgb4s44GC44GN44GXDQor44GL44KB44GELOOBi+OBmuOBl+OBkg0KK+OBiuOBj+OBpCzjgojjgZfjgoLjgagNCivjgYTjgZfjgYvjgo8s44GC44Gk44GKDQor44GZ44GO44GG44KJLOOBv+OBpOOBig0KK+OBhuOCgeOBoCzjgZHjgYTjgZMNCivjgb/jgarjgZDjgaEs44GC44GN44Gy44KNDQor44G744GX44GuLOOBi+OBmuOBsuOCjQ0KK+OBq+OBl+OChOOBvizjga7jgbbjgYoNCivjgZ/jgZHjgaAs44KI44GG44GTDQor44GV44GL44GELOOBvuOBleOBmuOBvw0KK+OChOOBpOOBoCzjgYLjgY3jgokNCivjgoLjgorjgZ8s44Go44GX44Gy44KNDQor44GV44GN44G+LOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgYvjgZrjgoQNCivjgZ/jgZHjgaAs44GX44GS44KI44GXDQor44Gf44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBiuOBi+OBoCzjgobjgYbjgZjjgpMNCivjgoTjgb7jga0s44GP44Gr44Gy44GTDQor44Gq44GL44KA44KJLOOBl+OCjQ0KK+OBguOBiuOBrizjgZjjgoXjgavjgaENCivjgZnjgY7jgoTjgb4s44Go44GX44KEDQor44G144KK44Gv44KJLOOBi+OBmuOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgZfjgoXjgpMNCivjgYvjgaQs44KC44KK44GKDQor44GV44Gv44KJLOOBsuOBleOBlw0KK+OBi+OBj+OBnyzjgYTjgaHjgo3jgYYNCivjgYjjga7jgoLjgags44Gf44GR44Gy44GTDQor44KP44Gf44Gq44G5LOOBm+OBhOOBmA0KK+OChOOBtuOBjSzjgZ/jgaTjgoQNCivjgYLjgb7jgZXjgY0s44GN44GE44Gh44KN44GGDQor44KI44GT44GfLOOBn+OBkeOBlw0KK+OBu+OCiuOBruOBhuOBoSzjgZHjgYTjgZ4NCivjgY3jga/jgoks44Gq44GK44Gy44KNDQor44Gf44GR44GgLOOChuOBn+OBiw0KK+OBhOOBreOBqizjgZ/jgYvjgZMNCivjgarjgYvjgZjjgocs44KI44GX44GTDQor44GE44Gh44KE44Gq44GOLOOBr+OCi+OBvw0KK+OBmeOBmuOBjSzjgaHjga/jgosNCivjgarjgovjgZfjgb4s44KG44Gy44GhDQor44GX44KJ44GE44GXLOOBn+OBpOOBig0KK+OBiuOBrizjgYvjga3jgojjgZcNCivjgojjgZfjgYrjgYss44GL44Ga44GKDQor44G+44Gk44GG44KJLOOBruOBtuOBqA0KK+OBteOBmOOBnyzjgaTjgYvjgZUNCivjgYTjgo/jgb8s44Gy44KN44G/DQor44Go44GP44GX44GSLOOBguOBjeOBsuOBkw0KK+OBn+OBquOBoCzjgZ/jgYvjgZcNCivjgYrjgYvjga4s44G+44GT44GoDQor44KC44Gh44Ga44GNLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBl+OBvizjgZPjgYbjgYTjgaENCivjgajjgorjgYbjgb8s44G+44GV44Gy44GnDQor44Gf44GL44G/LOOBqOOBl+OBguOBjQ0KK+OBr+OChOOBmyzjgaTjga3jgYoNCivjgZ/jgYvjga/jgoks44Gk44KL44G+44GkDQor44GN44KTLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOChOOBvizjgYvjgZrjgbLjgo0NCivjgY3jgZ/jgZjjgb4s44Gf44Gg44GXDQor44Gr44Gj44GfLOOBl+OCh+OBkeOBhA0KK+OBtuOCkyzjgarjgYrjgY3jgaENCivjgZfjgoMs44Gf44GL44GXDQor44GK44GLLOOBqOOBiuOCiw0KK+OBiuOBr+OBlyzjgYvjgZrjgoQNCivjga/jgonjgaAs44Gy44KN44GL44GaDQor44KP44GN44GV44GLLOOBpuOBpOOBmA0KK+OBhOOCj+OBquOBjCzjgajjgojjga/jgosNCivjgYvjgo/jgZfjgoos44GR44GE44GYDQor44GE44Gq44KC44GoLOOBjeOBv+OBsuOBkw0KK+OBleOCjyzjgYvjgZrjgb7jgZUNCivjgZ/jgZHjgaAs44Gf44GL44KG44GNDQor44GE44GE44GgLOOBk+OBhuOBhOOBoQ0KK+OBi+OBmOOBrizjgYvjgZrjgYoNCivjgb/jgo8s44KI44GX44Gf44GLDQor44G144GP44GELOOBqOOCguOChuOBjQ0KK+OBmeOBiOOBquOBjCzjgYjjgYTjgZgNCivjgY/jgavjgYjjgaAs44G+44GV44KG44GNDQor44GN44Gf44GK44GLLOOBsuOBp+OBsuOCjQ0KK+OBhOOBqSzjgZPjgYbjgZgNCivjgYrjgY/jgaAs44KI44GX44Gu44G2DQor44G744KK44GL44KPLOOBleOBqOOCiw0KK+OBmeOBiOOCguOBqCzjgbLjgo3jgYvjgZoNCivjgojjgZPjgoTjgb4s44KG44GN44Gu44G2DQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBjeOBmyzjgY3jga/jgaHjgo0NCivjgavjgZfjgoDjgoks44Gy44KN44GXDQor44Gf44GL44GgLOOBkeOBhOOBhOOBoQ0KK+OBpOOBi+OBoCzjgb/jgaTjgYoNCivjgajjgojjgaAs44G+44GV44GL44GaDQor44GV44GuLOOBsuOCjeOChuOBjQ0KK+OBq+OBl+OBoCzjgZ/jgZHjgbLjgZMNCivjgYrjgoLjgoos44KI44GX44Gy44GoDQor44GK44GW44GNLOOBvuOCguOCiw0KK+OBhOOBl+OBvuOCiyzjga/jgovjgYvjgZoNCivjgZ/jgarjgYss44GR44GE44GE44GhDQor44GL44GX44KP44Gw44KJLOOBqOOBiuOCiw0KK+OBguOBleOBrizjgobjgZ/jgYsNCivjgbLjgonjga4s44GL44Ga44Gy44GTDQor44Gf44Gr44KE44G+LOOBqOOBiuOCiw0KK+OBhuOCgeOBsOOChOOBlyzjgorjgofjgZnjgZENCivjgYrjgoDjgoks44GL44Gk44GNDQor44GV44GL44GQ44GhLOOBpuOBpOOChA0KK+OBiuOBi+OCgOOCiSzjgajjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44Go44G/44GKDQor44GI44Gh44GULOOBl+OCh+OBmA0KK+OBleOCj+OBoCzjgbLjgafjgbLjgZMNCivjgojjgZPjgYQs44GT44GG44GYDQor44GN44Gf44KA44KJLOOBvuOBleOBi+OBmg0KK+OChOOBmSzjgYjjgYTjgZgNCivjgZ/jgYvjgYos44Go44GK44KLDQor44GL44Gk44KJ44GK44GLLOOBvuOBleOBsuOBkw0KK+OBpOOBvOOBhCzjgYTjgaHjgo3jgYYNCivjgaTjgZgs44Go44GK44KLDQor44Gf44GL44Gv44GXLOOBl+OBkuOChOOBmQ0KK+OBmeOBjuOBjSzjgZPjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Gu44G844KLDQor44GL44G/44GY44KHLOOChOOBmeOBi+OBmg0KK+OBk+OBsOOChOOBi+OCjyzjgZfjgpPjgZgNCivjgYLjgYrjgags44Gm44Gk44KNDQor44Gf44GgLOOBkeOCk+OBmA0KK+OBsuOBoOOBiyzjgbLjgafjgYoNCivjgavjgZfjgoDjgoks44GN44KI44GL44GaDQor44GI44Gw44KJLOOBl+OCh+OBlA0KK+OBv+OBmuOCguOBqCzjgYLjgY3jgokNCivjgZnjgZrjgY0s44GT44KM44GC44GNDQor44GX44GE44GqLOOChOOBmeOBsuOBkw0KK+OBl+OBiuOBnyzjgYvjgZrjgobjgY0NCivjgarjgYvjga/jgoks44KK44GLDQor44GU44GgLOOBi+OBiuOCiw0KK+OBteOCi+OBnyzjgZjjgoXjgpPjgZMNCivjgb7jgZnjgoLjgags44GX44KT44GeDQor44Gq44GL44GM44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqSzjgZfjgZLjgYoNCivjgojjgorjgbXjgZgs44GC44GN44GKDQor44G+44Gk44KC44GoLOOBn+OBi+OBjQ0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgarjgaTjgYQs44Go44GX44GL44GaDQor44GG44GK44GuLOOChOOBmeOBsuOBkw0KK+OBn+OBquOBlCzjgZjjgaTjgZgNCivjgZ/jgb7jgYzjgo8s44KI44KK44GTDQor44GK44GLLOOBruOCiuOBkw0KK+OBteOBj+OBl+OBvizjgaHjgYjjgZMNCivjgYrjgYvjgaAs44Gk44Gt44GKDQor44GN44Gu44GX44GfLOOBi+OBmuOChA0KK+OBl+OBv+OBmizjgY3jgojjgZcNCivjgZPjgbDjgoTjgZcs44Gv44KL44KI44GXDQor44Gu44GgLOOBv+OBpOOBsuOBkw0KK+OBi+OBrizjgZPjgYbjgYTjgaENCivjgYvjgZjjgYrjgYss44GN44KI44GXDQor44GK44GuLOOBvuOBleOBsuOBlQ0KK+OBiuOBr+OBlyzjgZjjgoXjgavjgaENCivjgZPjgbDjgoTjgZcs44GN44GE44GhDQor44GT44GE44Ga44G/LOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjga7jgbzjgosNCivjgbXjgY/jgaAs44GC44GN44KJDQor44Gq44GL44GW44KPLOOBj+OBq+OBguOBjQ0KK+OBu+OCiuOBi+OCjyzjgbLjgafjgY0NCivjgYbjgaHjgoTjgb4s44GL44GK44KKDQor44GE44Ga44Gf44GrLOOBkeOBhOOBkw0KK+OBn+OBjeOBhCzjga7jgorjgbLjgagNCivjgZ/jgYvjgZss44Gf44GL44GXDQor44G+44GZ44GW44GNLOOBvuOBleOCiw0KK+OBguOCk+OBqeOBhizjgobjgYbjgZMNCivjgYvjgZ/jgY7jgoos44Gy44Gn44Gy44GTDQor44KC44KK44KE44G+LOOBguOBjeOCiQ0KK+OBleOBqOOBhizjgY3jgojjgZ/jgYsNCivjgbLjgovjgYvjgo8s44G+44GV44GXDQor44GG44GI44GgLOOBpOOBkOOBsuOCjQ0KK+OBquOBiyzjgYLjgY3jgbLjgagNCivjgb/jgoTjgZbjgY0s44Gf44GL44GXDQor44GK44GP44G8LOOBvuOBleOChuOBjQ0KK+OBn+OBoeOBi+OCjyzjgobjgbLjgaENCivjgo/jgZ/jgarjgbks44GE44GP44GKDQor44GC44GV44GL44KPLOOBsuOBqOOBlw0KK+OBi+OCj+OBr+OCiSzjgajjgZfjgoQNCivjgYrjgZXjgaAs44Gu44G844KLDQor44GV44GL44GELOOBleOBqOOBlw0KK+OBj+OCiuOChOOBvizjgoLjgorjgbLjgo0NCivjgZXjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GZ44GN44GM44KJLOOBqOOBl+OBkw0KK+OBguOBkeOBsizjga7jgbbjgaTjgZANCivjga/jgoTjgZcs44Gf44GL44GXDQor44GL44KP44GfLOOBqOOBiuOCiw0KK+OBl+OBvuOBjOOBjSzjgZfjgZLjgYTjgaHjgo3jgYYNCivjgbvjgoos44Go44GX44KEDQor44Gu44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBqOOCgOOCiSzjgZXjgajjgZcNCivjgY/jgbws44G+44GV44GKDQor44Gr44GX44KC44GoLOOBqOOBl+OBn+OBiw0KK+OCiOOBl+OBoCzjgbLjgo3jgZcNCivjgZXjgY4s44G+44GV44Gf44GLDQor44GL44KT44GuLOOBvuOBk+OBqA0KK+OChOOBtuOBrizjgb/jgaHjgarjgYoNCivjgoTjgZnjgarjgYws44Gb44GE44GYDQor44Gy44GM44GX44GG44GILOOBvuOBleOChA0KK+OBk+OBleOBjSzjga/jgZjjgoENCivjgarjgYvjgZjjgocs44Gv44KL44GKDQor44GK44GuLOOBleOBquOBiA0KK+OCgOOCieOBnyzjgZPjgZrjgYgNCivjgZfjgofjgZgs44KI44GX44GTDQor44GL44KP44KC44GoLOOBj+OBv+OBkw0KK+OBiOOBleOBjSzjgY3jgojjgb8NCivjgYjjgYTjganjgoEs44Gq44GK44G/DQor44GZ44Ga44GNLOOBv+OBleOBiA0KK+OCguOBqOOChOOBvizjgYvjgZrjgogNCivjga/jgb7jgaAs44KI44GX44GTDQor44GT44GX44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBr+OChOOBlyzjgY3jgojjgZMNCivjgoTjgb7jgZbjgY0s44Gu44KK44Gy44GoDQor44G+44Gk44KC44GoLOOBk+OBhuOBmA0KK+OBiuOBrizjgZ/jgYvjgojjgZcNCivjga/jgarjgo8s44GR44GE44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBjQ0KK+OBv+OChOOBnyzjgbLjgo3jgobjgY0NCivjgY3jgZ/jgZbjgo8s44Gy44KN44Gy44GoDQor44GI44KT44GpLOOBvuOBleOChuOBjQ0KK+OBquOBjOOBleOBiyzjgajjgZfjgbLjgo0NCivjgojjgZfjgoLjgags44Go44GK44KLDQor44GP44KN44GV44KPLOOBk+OBng0KK+OBvuOCi+OChOOBvizjgbLjgafjgYLjgY0NCivjgarjgYvjgavjgZcs44GC44GN44Gy44KNDQor44KI44GX44GgLOOBvuOBleOCiw0KK+OBteOBj+OBnyzjgbLjgafjgYvjgZoNCivjgbXjgZjjgZXjgo8s44KG44Gf44GLDQor44GV44GP44G+LOOChOOBmeOBi+OBmg0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgokNCivjgo/jgaAs44Go44GX44GKDQor44Gr44GX44GW44GNLOOBvuOBleOBr+OCiw0KK+OBteOBi+OBjOOCjyzjgobjgY3jgoQNCivjgYLjgYrjgoTjgb4s44KI44GX44G+44GVDQor44GN44KI44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBqOOCiuOBr+OCiSzjgZ/jgaDjgZcNCivjgarjgYzjga4s44GR44GE44GYDQor44GK44GMLOOBvuOBleOBguOBjQ0KK+OBleOBi+OBrizjgb7jgZXjgYvjgZoNCivjgb/jgaTjga/jgZcs44KE44GZ44Gy44GTDQor44GC44KK44KC44GoLOOCiOOBl+OBguOBjQ0KK+OCiOOBl+OBvuOBpCzjgbLjgo3jgb/jgaQNCivjgYLjgYrjgoTjgY4s44GR44KT44GV44GPDQor44KE44G+44GgLOOCiOOBl+OBr+OCiw0KK+OCgOOCieOBnyzjgYvjgZrjgobjgY0NCivjgYTjgorjgYgs44GR44GE44GE44GhDQor44KE44G+44GW44GNLOOBsuOBp+OChA0KK+OBiOOBnuOBiCzjgYvjgaTjgbLjgZMNCivjgZXjgajjgYYs44KI44GX44Gv44KLDQor44GK44GfLOOBi+OBpOOBvw0KK+OBhOOBruOBhizjgb7jgZXjgYrjgb8NCivjgYvjgaks44Gu44G244GKDQor44GV44GV44GNLOOBiOOBpOOBkw0KK+OBi+OBkeOBsizjgb7jgZXjgYvjgZoNCivjgaTjgaHjgoQs44Gk44Go44KADQor44G+44GV44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgajjga0s44KG44Gf44GLDQor44GK44KP44GgLOOBn+OBi+OBlw0KK+OBhuOBiOOBjSzjgb7jgZXjgbLjgo0NCivjgb7jgYjjgaAs44Gb44GE44GTDQor44G144GY44GK44GLLOOBn+OBi+OBguOBjQ0KK+OBhuOCieOBuSzjgYLjgY3jgYoNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GTDQor44GE44GV44GLLOOChuOBv+OBkw0KK+OBq+OBl+OBleOBiyzjgZfjgpPjgYTjgaENCivjgYTjgo/jgZUs44G+44GV44Gu44KKDQor44Gf44GP44GX44G+LOOBkeOBhOOBhOOBoQ0KK+OBpOOBi+OCguOBqCzjgaTjgojjgZcNCivjgZXjgY/jgb4s44GN44KI44GXDQor44Gy44KH44GpLOOCguOCiuOBsuOBqA0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgZXjgZXjgY0s44KI44GX44Gy44KNDQor44G144GP44KP44GNLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgYvjgZrjgoQNCivjgZ/jgYvjga/jgZcs44GX44KH44GeDQor44GX44KN44GELOOChOOBmeOBig0KK+OBk+OBi+OBtizjgajjgb/jgbLjgo0NCivjga7jgZDjgaEs44Gu44KK44GC44GNDQor44Gf44GL44GkLOOBvuOBleOBqA0KK+OCiOOBreOBluOCjyzjgYvjgZrjga7jgooNCivjgZXjgYvjgYTjgaAs44KE44GZ44GTDQor44GT44GE44Ga44G/LOOBquOBiuOBkw0KK+OBvuOBiOOBoCzjgobjgbLjgaENCivjgb7jgpPjgaAs44G+44GV44GC44GNDQor44GT44GQ44KMLOOBruOBtuOBig0KK+OBguOBjeOCguOBqCzjgYjjgYTjgYTjgaENCivjgZ/jgZHjgoDjgoks44KI44GX44GKDQor44GZ44Ga44GNLOOBteOBv+OBig0KK+OChOOBvuOBhuOBoSzjgZ/jgZHjgbLjgZMNCivjgZXjgYjjgY0s44Gy44KN44GXDQor44KP44GL44Gw44KE44GXLOOBk+OBhuOBhOOBoeOCjQ0KK+OBguOBjeOCguOBqCzjgb7jgZXjgYoNCivjgojjgZfjgaAs44Go44GX44KEDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OBiuOBl+OBvizjgajjgojjgbLjgZMNCivjgZXjgZXjgY0s44KE44GZ44GXDQor44GC44KJ44GELOOBn+OBoOOBig0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgY0NCivjgYTjgZHjgoLjgags44Gy44KN44GL44GaDQor44GN44GP44GELOOBpuOBpOOChA0KK+OBsuOCieOBnyzjgoTjgZnjgbLjgo0NCivjgb7jgY3jgYbjgaEs44G/44Gk44KEDQor44GT44Gb44GNLOOBi+OBpOOChuOBjQ0KK+OBq+OBl+OBi+OCjyzjgZ/jgaDjgZcNCivjgYTjgYzjgonjgZcs44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOCiOOBl+OBqA0KK+OBu+OCk+OBoCzjgajjgoLjgYLjgY0NCivjga/jgaPjgZ8s44GT44GG44GYDQor44Gv44KJ44GgLOOBmOOCheOBq+OBoQ0KK+OCiOOBl+OBoCzjgobjgYbjgZgNCivjgo/jgZ/jgarjgbks44Gu44G244KG44GNDQor44GT44GE44Ga44G/LOOBvuOBleOBsuOBkw0KK+OBk+OBmeOBoCzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZEs44Gk44Gt44GKDQor44G144GY44KELOOChOOBmeOBqOOBlw0KK+OBvuOBleOBjSzjgb7jgZXjgbLjgacNCivjgZXjgY/jgonjgYQs44GC44GN44Gy44GnDQor44Gr44GX44KE44G+LOOBpuOBpOOBmA0KK+OBi+OCj+OBmyzjgobjgY3jgYoNCivjgYrjgYvjgZbjgo8s44GT44GG44GE44GhDQor44GC44GV44GLLOOBsuOCjeOBvw0KK+OBiuOBjOOCjyzjgZ/jgY/jgoQNCivjgarjgYzjgZXjgo8s44GX44KNDQor44GN44Gf44KP44GNLOOChOOBmeOBsuOCjQ0KK+OBl+OBv+OBmizjgbXjgb/jgYoNCivjgZPjgbDjgoTjgZcs44Gf44Gg44Gk44GtDQor44Gf44Gh44Gw44GqLOOBiOOBhOOBhOOBoQ0KK+OBhOOBvuOBquOBiyzjgbLjgo3jgb8NCivjgYbjgZfjgb7jgoss44Gy44GV44GL44GaDQor44GK44GL44KA44KJLOOBiuOBleOCgA0KK+OChOOBvuOBrizjgbLjgo3jgZcNCivjgY3jgZ/jgoDjgoks44KK44KH44Gy44GhDQor44Gf44GL44G+44GkLOOBquOBiuOBsuOBlQ0KK+OBqOOBjeOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44GX44GgLOOBguOBjeOCiQ0KK+OBn+OBq+OBr+OCiSzjgbLjgafjgY0NCivjgYrjgYzjgo8s44KI44GX44GKDQor44Gf44Gq44GLLOOBn+OBi+OBruOBtg0KK+OBquOBi+OBmOOChyzjgZfjgpPjgoQNCivjgajjgoLjgZbjgo8s44Go44GX44KG44GNDQor44Gv44KJ44GgLOOBruOBtuOBguOBjQ0KK+OBr+OBquOBtuOBlSzjga/jgZjjgoENCivjgajjgY/jgYrjgYss44G+44GV44GKDQor44G544Gj44GX44KHLOOBvuOBleOBruOCig0KK+OBquOBi+OBl+OBvizjgb7jgZXjga/jgosNCivjgYLjgZXjgY/jgoks44GX44GS44GTDQor44G/44KE44Gn44KJLOOBleOBqOOBvw0KK+OBmeOBmuOBjSzjgZHjgpMNCivjgojjgZfjgoDjgoks44GR44KT44GE44GhDQor44GV44KPLOOChuOBhuOBhOOBoQ0KK+OBquOBi+OChOOBvizjgb/jgaHjgYvjgZoNCivjgbLjgonjgZbjgo8s44Gy44Gn44GNDQor44G144GY44KP44KJLOOBi+OBmuOBsuOBpw0KK+OBmeOBjOOCj+OCiSzjgajjgZfjgoQNCivjgZ/jgavjgYzjgo8s44Gu44G244Gf44GLDQor44G744KT44GgLOOBv+OBpOOBjg0KK+OBr+OBquOBhCzjgbLjgajjgZcNCivjgYjjgZDjgaEs44GX44KH44GZ44GRDQor44GL44GV44GELOOBkeOBhOOBkw0KK+OBj+OCjeOBleOCjyzjga7jgbbjgZMNCivjgZ/jgZjjgb4s44Gb44Gk44GTDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBsuOBs+OBrizjgYLjgaTjgZcNCivjgZnjgYzjgoQs44G+44GV44Gy44KNDQor44GP44KJ44GfLOOBi+OBpOOBsuOBkw0KK+OBvuOBmeOBoCzjgoTjgZnjgbLjgZMNCivjgZnjgY7jga/jgoks44Gy44KN44GXDQor44GL44Gt44GTLOOBquOBiuOBjQ0KK+OBi+OBpCzjgojjgZfjgbLjgZUNCivjgb7jgoss44G+44GV44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBqOOBl+OBiuOBiyzjgojjgZfjgbLjgo0NCivjgZfjgZLjga4s44G+44GV44GC44GNDQor44KE44G+44KC44GoLOOBqOOBiuOCiw0KK+OBquOBi+OBjOOCjyzjgb7jgorjgYoNCivjgoTjgb7jgZDjgaEs44KE44GZ44GoDQor44GL44KP44KC44KKLOOBk+OBhuOBhOOBoQ0KK+OCgOOCieOChOOBvizjgZXjgY/jgoHjgYQNCivjgZfjgoUs44KI44Gy44GhDQor44GE44GR44GgLOOBsuOCjeOBlw0KK+OBk+OBoOOBvizjgZfjgpMNCivjgYvjgajjgYYs44Gf44Gk44GXDQor44Gv44GP44Gh44KHLOOBpOOBreOBig0KK+OBi+OBkuOCkyzjgZfjgoUNCivjgabjgZrjgYss44GT44GG44GE44GhDQor44Gf44Gr44GQ44GhLOOBr+OCi+OBjQ0KK+OBpuOCieOBoCzjgZHjgYTjgZMNCivjgYvjgajjgYYs44KI44GX44KG44GNDQor44Gq44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgbLjgo3jgoQNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GL44GaDQor44Gf44Gq44GLLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgorjgofjgZgNCivjgbvjgpPjgaAs44GV44Go44G/DQor44Gy44GI44GgLOOBi+OBpOOBvw0KK+OBleOBi+OBhCzjgbLjgo3jgY0NCivjgYvjgaTjgb8s44KI44GX44Gy44KNDQor44Gf44GR44G5LOOBvuOBleOCiw0KK+OBruOBkOOBoSzjgarjgYrjgoQNCivjgo/jgaAs44Gy44KN44KG44GNDQor44GG44GI44KE44G+LOOBn+OBpOOBig0KK+OBhuOBiOOBrizjgZXjgajjgosNCivjgZ/jgpPjgZQs44GE44GV44GKDQor44KA44KJ44GL44G/LOOBi+OBiuOCiw0KK+OBguOCieOBjSzjgZPjgYbjgZgNCivjgYLjgonjgZss44G+44GV44Gf44GRDQor44KE44G+44KC44GoLOOBquOBiuOBjQ0KK+OCj+OBl+OBiizjgZ/jgYvjgY0NCivjgo/jgZHjgZjjgb4s44Gf44GR44GKDQor44GT44GE44Ga44G/LOOBn+OBi+OBlw0KK+OBqOOBj+OChOOBvizjgZHjgpPjgZgNCivjgajjgb/jgarjgYws44Gy44Gn44Go44GXDQor44GN44GX44GgLOOCj+OBn+OCiw0KK+OBmOOCh+OBkeOCkyzjgb/jgaHjgagNCivjgbLjgo3jgZss44GC44GN44GKDQor44GG44Gh44KE44G+LOOBi+OBmuOBruOCig0KK+OCj+OBi+OBmeOBjizjgZ/jgYvjgZcNCivjgYTjgZfjgZDjgo0s44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBpOOCiOOBlw0KK+OBhOOBruOBvuOBnyzjgYjjgYTjgZgNCivjgaTjgaTjgb8s44GR44KT44GYDQor44GE44KK44GILOOBn+OBi+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgYbjgYjjga4s44GL44Gk44G/DQor44G744KT44GgLOOBk+OBng0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgbLjgo0NCivjgoTjgb7jgYzjgb8s44GX44KNDQor44Gq44GL44Gr44GXLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBoCzjgojjgZfjgbXjgb8NCivjgbLjgo3jgZ8s44GR44KT44GZ44GRDQor44GG44GI44GgLOOBqOOBl+OBteOBvw0KK+OBhOOBkeOBoCzjgZHjgpPjgZgNCivjga/jgarjgbbjgZUs44Gb44GE44GYDQor44GT44Gg44G+LOOBv+OBoeOBsuOCjQ0KK+OBiuOBi+OCguOBqCzjgojjgZfjgobjgY0NCivjgZnjgZrjgY0s44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBoOOBn+OBiw0KK+OBq+OBhOOBj+OCiSzjgYvjgaTjga7jgooNCivjgavjgZfjgaAs44Gy44KN44GL44GaDQor44GK44GV44G5LOOBi+OBiuOCiw0KK+OBu+OBneOBi+OCjyzjgajjgZfjgbLjgZMNCivjgYTjgb7jgYos44GC44Gk44GXDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBiuOBrizjgZfjgpPjgYTjgaENCivjgarjgYvjgoTjgb4s44GK44GV44KADQor44Gv44KE44GXLOOBi+OCiOOBkw0KK+OBmeOBjOOBr+OCiSzjgarjgb8NCivjga/jgonjgaAs44G+44GV44Gy44KNDQor44GC44G5LOOBn+OBi+OBlw0KK+OBguOBuSzjgo/jgZ/jgosNCivjgYLjgbks44Go44KC44GNDQor44GC44Gg44GhLOOBsuOCjeOBlw0KK+OBguOBhOOBsCzjgojjgorjga7jgbYNCivjgYLjgYvjgbDjga0s44Gy44KN44GC44GNDQor44GC44KT44Gp44GGLOOBquOBiuOBjQ0KK+OBguOCk+OBqeOBhizjgbLjgo3jgb/jgaQNCivjgYLjgYrjgY0s44Gy44GV44GIDQor44GX44GE44GNLOOBguOBjeOBsuOCjQ0KK+OBguOCieOBhCzjgbLjgo3jgbLjgZUNCivjgYLjgonjgYQs44GY44KF44Gr44GhDQor44GC44KJ44GELOOBkeOCk+OBhOOBoQ0KK+OBguOCieOBi+OCjyzjgojjgbLjgaENCivjgYLjgonjgY0s44KI44GX44Gu44G2DQor44GC44KJ44GNLOOCiOOBl+OBruOCig0KK+OBguOCieOBjSzjgojjgZfjgYoNCivjgYLjgonjgY0s44GR44GE44GYDQor44GC44KJ44G+44GNLOOBi+OBmuOBruOCig0KK+OBguOCieOCgSzjgYTjgaHjgo3jgYYNCivjgYLjgorjgoDjgoks44GX44KF44Gr44GhDQor44GC44GV44G/LOOBkeOBhOOBhOOBoQ0KK+OBguOBmuOBvizjgZHjgpPjgYTjgaENCivjgbDjgbAs44Gf44Gg44Gy44KNDQor44Gw44GwLOOBoOOBhOOBmeOBkQ0KK+OBoeOBsCzjgYvjgZrjgYoNCivjgaHjgbAs44GI44GE44G7DQor44Gh44KTLOOBqOOCguOChuOBjQ0KK+OBoOOBhOOBk+OBjyzjgb7jgZXjgZcNCivjgafjgZDjgaEs44Gy44KN44GXDQor44Gn44GNLOOBl+OCh+OBsuOBoQ0KK+OBqeOBhCzjgajjgYrjgosNCivjgYjjgaDjgZXjgo8s44Gf44GR44GXDQor44GI44GQ44GhLOOBhOOBleOBig0KK+OBiOOCk+OBqSzjgZ/jgaTjgoQNCivjgYjjgpPjgaks44Gf44GL44KG44GNDQor44GI44KK44GL44KPLOOBjeOCiOOBr+OCiw0KK+OBteOBmOOBhCzjgYvjgZrjgYLjgY0NCivjgbXjgZjjgoLjgags44G+44GN44GKDQor44G144GY44KC44GoLOOBn+OBi+OBrQ0KK+OBteOBmOOBrizjgZ/jgZHjgZcNCivjgbXjgYvjga/jgoks44GX44KF44Gy44GhDQor44G144GL44G/LOOBsuOCjeOCiOOBlw0KK+OBteOBi+OChOOBvizjgbLjgafjgYvjgZoNCivjgbXjgY/jgaAs44KC44Go44GTDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBteOBj+OCguOBqCzjgZPjgYbjgYTjgaENCivjgbXjgY/jgarjgYws44Go44KC44KG44GNDQor44G144GP44GX44G+LOOCiOOBl+OBruOBtg0KK+OBteOBj+OBl+OBvizjgbLjgo3jga7jgooNCivjgbXjgarjgY0s44KI44GX44GC44GNDQor44G144Gq44GNLOOBruOBtuOBsuOBkw0KK+OBteOCi+OChCzjgbLjgafjgY0NCivjgZTjga/jgoks44KI44GX44Gq44KKDQor44GU44GoLOOBi+OBmuOCjQ0KK+OBr+OBjCzjgb7jgZXjgYoNCivjga/jgY7jga4s44KG44GG44GTDQor44GE44Gh44KA44KJLOOBsuOCjeOBlw0KK+OBr+OBvizjgbLjgafjgagNCivjga/jgarjgaAs44G+44KG44G/DQor44GE44GwLOOCiOOBl+OBguOBjQ0KK+OBr+OBm+OBuSzjgYLjgY3jgokNCivjga/jgZvjgYzjgo8s44Gq44GK44GNDQor44Gv44GX44KC44GoLOOBruOBtuOChuOBjQ0KK+OBr+OBlyzjgb7jgZXjgobjgY0NCivjga/jgZ/jga4s44G+44GV44Gy44GTDQor44Gv44Go44KKLOOBsuOCjeOBlw0KK+OBr+OChOOBlyzjgb7jgZXjgbLjgZMNCivjga/jgoTjgZcs44Gu44G244GKDQor44Gy44Gg44GLLOOBi+OBmuOBn+OBiw0KK+OBsuOBjOOBlyzjgZXjgYvjgYgNCivjgb7jga4s44KE44GZ44G144G/DQor44Gy44KJ44GELOOBhOOBleOBig0KK+OBi+OBv+OBleOBjSzjgojjgZfjgbLjgZUNCivjgbLjgonjga4s44GX44KT44GE44Gh44KN44GGDQor44Gy44KN44GELOOBn+OBoOOBlw0KK+OBsuOCjeOCguOCiizjgYvjgZrjgo0NCivjgbLjgo3jgZXjgo8s44G+44GT44GoDQor44Gy44KN44GV44KPLOOBquOBiuOBjQ0KK+OBsuOCjeOBmyzjgb7jgZXjgojjgZcNCivjgbvjgpPjgaAs44GN44KI44GV44GgDQor44G744KT44G+LOOBi+OBpOOBuOOBhA0KK+OBu+OCiuOBuSzjgajjgZfjgo0NCivjgbvjgorjgYgs44Gu44KK44GC44GNDQor44G744KK44GQ44GhLOOBquOBiuOBguOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgbbjgbLjgo0NCivjgbvjgoos44GX44KT44Gf44KN44GGDQor44G744KKLOOBguOBjeOBsuOBkw0KK+OBu+OBl+OBi+OCjyzjgZPjgYbjgZgNCivjgbvjgZ3jgYvjgo8s44GL44Ga44GTDQor44Gy44KH44GpLOOBjeOCiOOBn+OBiw0KK+OBhOOBsOOCieOBjSzjgojjgZfjgYvjgZoNCivjgYTjgaHjgYrjgYss44KI44GX44Gf44GLDQor44GE44GR44GgLOOBqOOBl+OBsuOBkw0KK+OBhOOBvuOBhCzjgb7jgZXjgbLjgZMNCivjgYTjgb7jgoDjgoks44Gy44Gn44GKDQor44GE44G+44Gq44GLLOOCiOOBl+OBr+OCiw0KK+OBhOOBquOBoCzjgYLjgaTjgZcNCivjgYTjgarjgoDjgoks44GK44GV44KADQor44GE44Gu44GG44GILOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgogNCivjgYTjga7jgYbjgYgs44Gy44KN44KE44GZDQor44GE44GX44GELOOBl+OBkuOCiw0KK+OBhOOBl+OBhCzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KG44Gy44GhDQor44GE44GX44GL44KPLOOBqOOBl+OBsuOBpw0KK+OBhOOBl+OBiuOBiyzjga/jgZjjgoENCivjgYTjgZ3jgaAs44Gy44KN44G/DQor44GE44Go44GGLOOBruOCiuOChuOBjQ0KK+OBhOOBqOOBhizjgZnjgZnjgoANCivjgYTjgajjgYYs44G+44GV44Gv44KLDQor44GE44Go44GELOOChuOBsuOBoQ0KK+OBhOOBqOOBhizjgYLjgaTjgbXjgb8NCivjgYTjgo/jgYQs44Gf44GL44Gy44GoDQor44GE44Ga44G/44KELOOCiOOBl+OBn+OBiw0KK+OBi+OBmOOBnyzjgZ/jgYvjgYLjgY0NCivjgYvjgoHjgYQs44Go44KC44KEDQor44GL44Gq44GELOOBsuOCjeOBlw0KK+OBi+OBquOBluOBlyzjgZPjgYbjgYTjgaENCivjgYvjga3jgZMs44GV44Go44KLDQor44GL44Gt44GTLOOBqOOBl+OBvw0KK+OBi+OBrizjgYjjgYTjgZgNCivjgYvjgorjgYYs44GN44KI44G/DQor44Gk44GN44GYLOOBsuOCjeOBlw0KK+OBi+OBleOBvuOBpCzjgb/jgY3jgYoNCivjgYvjgZ/jgY7jgZcs44GC44GN44KJDQor44GL44Gf44KE44G+LOOBvuOBk+OBqA0KK+OBi+OBn+OChOOBvizjgb7jgorjgZMNCivjgYTjgZ3jgaAs44G+44GV44Gy44KNDQor44GL44Gf44KE44G+LOOBoeOBmuOBkw0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgagNCivjgYvjgajjgYYs44Gf44Gg44GXDQor44GL44Go44GGLOOBl+OCk+OBmA0KK+OBi+OBqOOBhizjgYLjgY3jgokNCivjgYvjgaTjgb7jgZ8s44G+44GV44Gu44KKDQor44GL44KP44G5LOOBleOBqOOBlw0KK+OBi+OCj+OBuSzjgZfjgpPjgZgNCivjgYvjgo/jgbks44G+44GV44Gy44KNDQor44GL44KP44GgLOOBruOCiuOBkw0KK+OBi+OCj+OBoCzjgZ/jgZHjgZcNCivjgYvjgo/jgoLjgags44G+44GT44GoDQor44GL44KP44Gf44GrLOOBhOOBj+OBig0KK+OBjeOBv+OBmuOBiyzjgZfjgZLjgZgNCivjgY3jgoDjgoks44Gf44GL44Gu44KKDQor44GN44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBjeOBruOBl+OBnyzjgb7jgZXjgZcNCivjgY3jgZXjgYss44GC44GN44KJDQor44GN44GX44GgLOOBpuOBpOOCgeOBhA0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgYoNCivjgY3jgZ/jgoDjgoks44GT44GG44GYDQor44GN44GfLOOBleOBpOOBig0KK+OBjeOCiOOBrizjgb7jgZPjgagNCivjgZPjgbDjgoTjgZcs44KE44GZ44GXDQor44GT44Gg44G+LOOBoeOBiA0KK+OBqeOBsizjgZ/jgY/jgoQNCivjgZPjga/jgoks44KG44GN44Gu44G2DQor44GT44GE44GnLOOBguOBpOOBlw0KK+OBk+OBhOOCjyzjgoDjga3jgbLjgagNCivjgZPjgYTjgZrjgb8s44GR44KT44GZ44GRDQor44GT44G+44GkLOOBguOBjeOBsuOBkw0KK+OBk+OCgeOBoCzjgYLjgY3jgYoNCivjgZPjgpPjgaks44Gb44GE44GNDQor44GT44KT44GpLOOBv+OBoeOCjQ0KK+OBk+OBq+OBlyzjgYvjgZrjgoQNCivjgZPjgZXjgYss44KK44KH44Gf44KN44GGDQor44GT44Gf44GNLOOChOOBmeOBsuOCjQ0KK+OBk+OBn+OBqyzjgbLjgafjgYoNCivjgZPjgajjgbbjgY0s44Gf44GL44GTDQor44Gf44GX44KNLOOBjeOCh+OBsuOBoQ0KK+OBj+OBvOOBnyzjgojjgZfjgbLjgo0NCivjgY/jgbws44Gy44Gn44GoDQor44GP44Gp44GGLOOBvuOBleOChuOBjQ0KK+OBj+OBvuOBjOOBhCzjgYvjgaTjga7jgooNCivjgY/jgo3jgZss44GL44Ga44Gq44KKDQor44GP44GX44G+LOOBsuOCieOChOOBmQ0KK+OBj+OBl+OBv+OChCzjgb7jgZXjgY0NCivjgY/jgaTjgYvjgZEs44Go44GX44KEDQor44GP44KP44GuLOOBsuOCh+OBmA0KK+OBh+OBiCzjga/jgovjgZMNCivjgb7jgaTjgarjgYws44KE44GZ44Gf44GLDQor44G+44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBiOOBr+OCiSzjgb/jgY0NCivjgYjjga7jgY0s44Go44GK44KLDQor44G+44GI44GL44KPLOOBmOOCheOCk+OBmA0KK+OBvuOBiOOBjSzjgbLjgo3jgYLjgY0NCivjgb7jgpPjga4s44GY44KF44KTDQor44G+44GuLOOBsuOBp+OBjQ0KK+OBvuOCk+OBn+OBqyzjgbLjgo3jgZcNCivjgb7jgovjgoTjgb4s44GL44Ga44Gu44KKDQor44G+44GbLOOChuOBjeOBvuOBlQ0KK+OBvuOBmeOBluOCjyzjgabjgaTjgoQNCivjgb7jgaTjgaAs44G+44GV44GoDQor44G+44Gk44GELOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOBhCzjgYrjgZXjgoANCivjgb7jgaTjgoLjgags44KE44GZ44GTDQor44G+44Gk44KA44KJLOOBk+OBjQ0KK+OBvuOBpOOBrizjgZfjgpPjgYTjgaENCivjgb7jgaTjgZbjgY0s44GX44KF44GeDQor44G/44GNLOOBi+OBmuOBsuOCjQ0KK+OBv+OBk+OBoCzjgbLjgafjgY0NCivjgb/jgoDjgoks44KG44GG44GYDQor44G/44KA44KJLOOBleOBqOOBlw0KK+OBv+OBquOBvyzjgajjgZfjgoQNCivjgb/jgarjgb8s44GT44GG44GY44KNDQor44G/44Gq44GoLOOBguOChOOBkw0KK+OBv+OBreOBvuOBpCzjgZfjgpPjgY4NCivjgb/jga0s44GI44GE44GYDQor44G/44GX44G+LOOCiOOBsuOBoQ0KK+OBv+OCjyzjgoTjgZnjgbLjgo0NCivjgb/jgoTjgZDjgaEs44GL44Ga44Gy44GTDQor44G/44KI44GXLOOBvuOBleOBig0KK+OBv+OBmuOBnyzjgb/jgaTjga7jgooNCivjgoLjgoLjga7jgYQs44GE44Gk44GTDQor44G744KT44GgLOOBvuOBleOBqA0KK+OCguOCiuOBnyzjgoTjgZnjgYLjgY0NCivjgoLjgorjgZ8s44GL44Ga44GC44GNDQor44KC44KKLOOBruOCiuOChuOBjQ0KK+OCguOCiizjgozjgYTjgZMNCivjgoLjgoos44GX44GS44KLDQor44KC44KKLOOBpuOCi+OChuOBjQ0KK+OCguOCiizjgYvjgZrjgZ/jgYsNCivjgoDjga3jgoDjgoks44GX44GS44Gu44G2DQor44KA44KJ44GL44G/LOOBleOBqOOBlw0KK+OCgOOCieOBiuOBiyzjga7jgbbjgbLjgo0NCivjgb/jgofjgYws44KE44GZ44GXDQor44Gq44GM44G/44GtLOOBruOCiuOBkw0KK+OChOOBvuOBoCzjgb7jgZXjgZ/jgYsNCivjgarjgYzjgYos44Gy44KN44KG44GNDQor44Gq44GM44GfLOOBvuOBleOBsuOCjQ0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgYzjgo8s44KG44GG44GTDQor44Gq44GL44GE44GhLOOBmOOCheOCk+OBkw0KK+OBleOBleOBjSzjgZHjgYTjgZnjgZENCivjgarjgYvjgZjjgb4s44Gf44GR44GXDQor44Gq44GL44GX44G+LOOChOOBmeOBlw0KK+OBquOBi+OBk+OBmCzjgYLjgY3jgbLjgZMNCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gq44GL44KA44KJLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44G/44Gu44KLDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgZfjgb/jgaQNCivjgarjgYvjgoDjgoks44KI44GYDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OBq+OBlyzjgbLjgo3jgY0NCivjgarjgYvjga4s44G+44GV44GXDQor44Gq44GL44GuLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBiizjgajjgZfjgYvjgZoNCivjgarjgYvjgZ8s44GR44KT44GYDQor44Gq44GL44KE44G+LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOCk+OBkSzjgZ/jgo3jgYYNCivjgarjgonjgZbjgY0s44Gy44KN44Gu44KKDQor44Gq44KK44GbLOOBpOOBi+OBlQ0KK+OBquOCi+OBiuOBiyzjgbLjgo3jgZcNCivjga3jgoLjgags44Gd44GG44Gf44KN44GGDQor44Gr44KA44KJLOOBn+OBpOOChA0KK+OBq+OCgOOCiSzjgb7jgZXjgbXjgb8NCivjgavjgZfjgoDjgoks44GV44Go44GXDQor44Gr44GX44GuLOOBqOOBiuOCiw0KK+OBq+OBl+OBl+OBnyzjgZjjgoXjgpMNCivjgavjgZfjgYbjgaEs44Gg44GE44GZ44GRDQor44Gr44GX44KE44G+LOOChuOBhuOBkw0KK+OChOOBmOOBvizjgojjgbLjgaENCivjgavjgZfjgZbjgo8s44GP44G/44GTDQor44Gr44KPLOOBqOOBl+OChuOBjQ0KK+OBruOBtuOBquOBjCzjgabjgaTjgoQNCivjga7jgYzjgb8s44GN44KT44KEDQor44Gu44GQ44GhLOOBk+OBhuOBhOOBoeOCjQ0KK+OBruOBkOOBoSzjgYvjgarjgZMNCivjga7jgb4s44Gf44GL44GXDQor44Gu44G+LOOBguOBpOOBlw0KK+OBruOCgOOCiSzjgZ/jgYTjgaHjgo3jgYYNCivjga7jgoDjgoks44KG44GN44Gy44KNDQor44Gu44KA44KJLOOBhOOBleOCgA0KK+OBruOBmyzjgZ/jgaDjgZcNCivjga7jgZbjgo8s44GZ44GZ44KADQor44Gs44GN44GELOOBvuOBleOChuOBjQ0KK+OBrOOBvuOBiizjgaTjgajjgoANCivjgazjgb7jgZ8s44GL44Ga44G+44GVDQor44GK44Gh44GC44GELOOBpuOBpOOBruOCig0KK+OBiuOBoeOBguOBhCzjgZfjgoXjgbLjgaENCivjgYrjgaDjga/jgoks44Gq44GK44Gy44GoDQor44GK44GgLOOCiOOBl+OBiA0KK+OBiuOBjOOBleOCj+OCiSzjgobjgZ/jgYsNCivjgYrjganjgb7jgoos44GC44GN44KJDQor44GK44GL44GpLOOBv+OBpOOBlw0KK+OBiuOBvuOBlSzjgb7jgZPjgagNCivjgYrjgarjgYws44GX44KT44GE44GhDQor44GK44GuLOOBv+OChuOBjQ0KK+OBiuOBleOBjSzjgajjgojjgb8NCivjgYrjgZXjgo8s44GT44GG44GE44GhDQor44GK44GZ44G/LOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjga7jgorjgYoNCivjgYrjgZ8s44GX44KF44Gr44Gh44KNDQor44GK44GfLOOBn+OBoOOBguOBjQ0KK+OBiuOBpOOBiyzjgojjgbLjgaENCivjgb7jgaTjgarjgYws44GL44Gk44G/DQor44GK44Gy44KD44G+LOOBguOBjeOCiQ0KK+OBiuOBi+OBoCzjgYvjgZrjgbLjgo0NCivjgYrjgYvjgaAs44Gf44GL44KG44GNDQor44GK44GL44GgLOOCiOOBl+OBig0KK+OBiuOBi+OBoCzjgYTjgY/jgYoNCivjgYrjga7jgafjgoks44G/44Gu44KLDQor44GK44GL44KC44GoLOOBl+OCheOBmA0KK+OBiuOBi+OBluOBjSzjgajjgbLjgaHjgo0NCivjgYrjgY/jgaAs44G144G/44GKDQor44GK44GPLOOBguOBjeOCiQ0KK+OBiuOBrizjgbLjgo3jgobjgY0NCivjgYrjga4s44Gy44Gn44KG44GNDQor44GK44KK44GmLOOBguOBpOOBlw0KK+OBiuOBleOBoCzjgbLjgafjgZ/jgYsNCivjgZXjgYTjgajjgYYs44GL44Ga44KG44GNDQor44GV44GE44Go44GGLOOBvuOBleOCiw0KK+OBleOBhOOBqOOBhizjgarjgpPjgabjgaQNCivjgZXjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GE44Go44GGLOOBn+OBpOOChA0KK+OBleOBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgZXjgYTjgajjgYYs44Gu44KK44KG44GNDQor44GV44GL44GELOOCiuOBiA0KK+OBhOOBl+OBluOBjSzjgZ/jgZHjgZcNCivjgZXjgYvjgoLjgags44Gy44KN44G144G/DQor44GV44GL44Gu44GG44GILOOCiOOBl+OBruOCig0KK+OBleOBi+OBhuOBiCzjgZ/jgYvjgYoNCivjgZXjgZPjgaAs44Gy44KN44KG44GNDQor44GV44GP44KJ44GELOOBn+OBi+OBguOBjQ0KK+OBleOBj+OCieOBhCzjgajjgZfjgobjgY0NCivjgZXjgazjgY0s44Gu44G244KG44GNDQor44GV44GV44GNLOOBleOBoeOBkw0KK+OBqOOBv+OBnyzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44GR44KT44GE44GhDQor44GV44Go44GGLOOCgOOBpOOBvw0KK+OBleOBqOOBhizjgoDjgaTjgYoNCivjgZXjgajjgYYs44GX44KT44GUDQor44GV44Go44GGLOOBl+OCheOBmA0KK+OBleOBqOOBhizjgojjgYTjgaENCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44KP44GgLOOBi+OBmuOBsuOCjQ0KK+OBm+OBiizjgYLjgY3jgbLjgo0NCivjgZvjgZbjgYQs44GE44Gh44KN44GGDQor44GX44Gw44GfLOOChuOBjeOBruOCig0KK+OBl+OBsOOBnyzjgbLjgo3jgZcNCivjgZfjgYzjgY0s44Gy44Gn44GKDQor44GX44G/44GaLOOBi+OBmuOBvuOBlQ0KK+OBl+OBv+OBmizjga7jgbbjgYoNCivjgZfjgb/jgZos44GX44GS44Gu44KKDQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjgoLjgoDjgoks44GC44GN44GoDQor44GX44Gu44Gv44KJLOOBqOOCguOBquOCig0KK+OBl+OCieOBpCzjgabjgaTjgYoNCivjgZfjgo3jgZfjgZ8s44Gq44GK44GNDQor44GX44KH44GYLOOCiOOBl+OBruOCig0KK+OBl+OCh+OBv+OBpCzjgb7jgZXjgobjgY0NCivjgZ3jgaAs44Go44GX44KEDQor44Gd44KC44KKLOOBi+OBjeOChw0KK+OBnSzjgYLjgaTjgZMNCivjgarjgYss44G+44GV44GoDQor44GZ44GO44KA44KJLOOBkeOCk+OBleOBjw0KK+OBmeOBjuOBrizjgYvjgZrjgoTjgZkNCivjgZnjgY7jgZXjgo8s44Gf44GR44Gy44GTDQor44GZ44GO44GfLOOCiA0KK+OBmeOBjuOBhuOBoSzjgYLjgY3jgbLjgZMNCivjgZnjgY7jgoTjgb4s44Gy44KN44KADQor44GZ44GO44KE44G+LOOCiOOBl+OBvw0KK+OBmeOBjuOChOOBvizjgYLjgY3jgokNCivjgZnjgZrjgY0s44GC44GN44Go44GXDQor44GZ44Ga44GNLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgZnjgZrjgY0s44KG44GG44GTDQor44GZ44Ga44GNLOOCiOOBl+OBsuOCjQ0KK+OBn+OBoeOBsOOBqizjgYvjgaTjgZnjgZENCivjgZ/jgYTjgoks44Gf44Gk44GKDQor44Gf44GE44KJLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OBoCzjgobjgYbjgZgNCivjgZ/jgYvjgY4s44GR44GE44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgobjgY0NCivjgZ/jgYvjga/jgZcs44GV44KG44KKDQor44G+44GZ44GW44KPLOOBl+OCk+OBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jga7jgooNCivjgZ/jgYvjgb4s44G+44GV44Gu44KKDQor44Gf44GL44GuLOOBi+OBmuOBvw0KK+OBn+OBi+OBrizjgZfjgpPjgoQNCivjgZ/jgYvjgZXjgYss44KG44GG44GYDQor44Gf44GL44GbLOOBl+OCkw0KK+OBn+OBi+OBnyzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgoTjgb4s44Go44GX44GC44GNDQor44Gf44GL44KE44Gq44GOLOOBsuOBp+OBqA0KK+OBn+OBkeOBoCzjgZPjgYbjgYTjgaENCivjgZ/jgZHjgaAs44KG44GG44GTDQor44G144GY44GELOOBn+OBi+OBlw0KK+OBn+OBkeOBruOCiizjgYLjgY3jgokNCivjgZ/jgZHjgZfjgZ8s44Gy44Gn44GC44GNDQor44Gf44GR44GG44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgb7jgZXjgYvjgZoNCivjgZ/jgY3jgZbjgo8s44Gu44KK44GE44GkDQor44Gf44GN44GW44KPLOOBn+OBi+OChuOBjQ0KK+OBn+OBvuOBjSzjga/jgZjjgoENCivjgZ/jgoDjgoks44Gy44Go44GXDQor44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBn+OCgOOCiSzjgbLjgZXjgagNCivjgZ/jgarjgYss44G/44GI44GTDQor44KP44Gf44Gq44G5LOOBi+OBmuOCiOOBlw0KK+OBn+OBq+OChOOBvizjga/jgZjjgoENCivjgZ/jgass44GL44Gk44GYDQor44Gm44KJ44GN44GfLOOBj+OBv+OBkw0KK+OBpuOBmuOBiyzjgYLjgaTjgZcNCivjgajjgbDjgoos44GC44KK44Gy44KNDQor44Go44GM44GXLOOBiOOCig0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgajjgY3jgZ7jga4s44GC44Gk44GTDQor44Go44G/44Gq44GMLOOBhOOBj+OBlw0KK+OBqOOBv+OBquOBjCzjgbLjgo3jgYvjgZoNCivjgajjgb/jgZ8s44KG44GG44GYDQor44Go44G/44GfLOOBn+OBi+OBqOOBlw0KK+OBqOOCguOBiuOBiyzjgb7jgZXjgYLjgY0NCivjgajjga7jgZXjgY0s44Gk44KI44GXDQor44Go44KK44GW44KPLOOBleOBqOOBkw0KK+OBk+OBhOOBkSzjgYLjgY3jgbLjgo0NCivjgajjgojjgYvjgo8s44Gm44Gk44GtDQor44Go44KI44GL44KPLOOBruOBtuOBig0KK+OBpOOBvOOBhCzjgZfjgofjgZQNCivjgaTjgYvjgaAs44GC44GN44Gy44KNDQor44Gk44GP44GELOOBruOBvOOCiw0KK+OBpOOCi+OBi+OCjyzjgYvjgZrjgbLjgZMNCivjgaTjgaTjgYQs44Gq44GM44Gu44KKDQor44Gk44Gk44GELOOBl+OCk+OBhOOBoQ0KK+OBhuOBoeOBoCzjgZnjgZnjgoANCivjgYbjgaHjgaAs44GY44KF44Gr44GhDQor44GG44Gh44G+LOOBkeOCk+OBhOOBoQ0KK+OBhuOBoeOChOOBvizjgZfjgZLjgYoNCivjgYbjgaAs44KC44Go44Gy44GVDQor44GG44GI44GgLOOBl+OCk+OBmA0KK+OBhuOBiOOBrizjgZfjgpPjgZgNCivjgYbjgYjjga4s44Gm44Gk44GKDQor44GG44GI44GuLOOBsuOBqOOBlw0KK+OBhuOBkeOBjOOCjyzjgojjgZfjga7jgooNCivjgYbjgb7jgZrjgoEs44GI44G/DQor44GG44KB44KA44KJLOOBsuOCjeOBkw0KK+OCj+OBoCzjgb7jgZXjgojjgZcNCivjgo/jgaAs44Gy44GV44KI44GXDQor44KP44Gf44Gq44G5LOOBn+OBoOOBlw0KK+OBhOOBhOOBoCzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Gy44GV44GXDQor44KP44Gf44KKLOOBiOOBhOOBmA0KK+OChOOBjizjgajjgZfjgYvjgZoNCivjgoTjgb7jgaAs44KG44GG44GYDQor44KE44G+44GMLOOBsuOCjeOBjQ0KK+OChOOBvuOBkOOBoSzjgZjjgoXjgavjgaENCivjgoTjgb7jgZDjgaEs44GX44KF44Gr44GhDQor44KE44G+44GQ44GhLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgZXjgojjgZcNCivjgoTjgb7jgoLjgags44GL44Ga44Gu44KKDQor44KE44G+44KC44GoLOOBjeOCiOOBlw0KK+OChOOBvuOCguOBqCzjga7jgorjgYoNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44GN44G/44Gy44KNDQor44KE44G+44Gq44GLLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgoTjgZnjgbLjgZMNCivjgoTjgb7jgYbjgaEs44KK44KHDQor44KE44G+44GW44GNLOOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44KE44GZ44KI44GXDQor44KE44GuLOOCiOOBl+OChuOBjQ0KK+OChOOBrizjgbLjgo3jgobjgY0NCivjgoTjgZnjgaAs44Gy44Gn44GKDQor44KE44GZ44G+44GkLOOBvuOBleOBruOCig0KK+OChOOBmeOCguOBqCzjgbLjgafjgYoNCivjgoTjgZnjgavjgo8s44G+44GV44GXDQor44KI44GgLOOBpuOBpOOChA0KK+OCiOOBoCzjgb7jgZXjgobjgY0NCivjgojjgZfjgaAs44GL44Ga44KG44GNDQor44KI44GX44GELOOBsuOBp+OBlw0KK+OCiOOBl+OBquOBjCzjgb7jgZXjga7jgooNCivjgojjgZfjga4s44GL44Ga44GoDQor44KI44GX44Gf44GRLOOBi+OBiuOCiw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgojjgZcNCivjgoTjgb7jgZDjgaEs44GI44GE44GYDQor44GL44Gw44GX44G+LOOBleOBqOOCiw0KK+OBleOBj+OCiSzjgYvjgZrjgYLjgY0NCivjgoDjgonjgoTjgb4s44Gv44KL44Gy44GTDQor44Gy44GN44GgLOOBvuOBleOBqOOBlw0KK+OCgOOCieOBhCzjgZHjgpPjgZgNCivjgZjjgofjgbss44KG44GN44GKDQor44GI44KT44GpLOOBk+OBhuOBhOOBoQ0KK+OBpuOCieOCgOOCiSzjgZ/jgZHjgZcNCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44GE44G+44GELOOBk+OBhuOBmA0KK+OCguOCiuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgZPjgoTjgoos44GK44GV44KADQor44G+44Gk44G/44KELOOBhOOBleOBig0KK+OBl+OBsOOBnyzjgojjgZfjgbLjgo0NCivjgaHjgZfjgo0s44Gf44Gk44KEDQor44GE44Gf44G/LOOChuOBv+OBkw0KK+OBiuOBluOBjSzjgZ/jgaTjgb8NCivjgbXjgY/jgoLjgags44GC44GN44Gy44KNDQor44GK44GL44GgLOOBn+OBi+OBlw0KK+OBleOCj+OBoCzjgYvjgZrjgojjgZcNCivjgZXjgY/jgonjgYQs44GL44Ga44Gy44GVDQor44Gv44KE44GXLOOChuOBmeOBkQ0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgobjgY0NCivjgb/jgojjgZcs44GL44Ga44G/DQor44KE44G+44Gq44GLLOOBj+OBq+OBsuOCjQ0KK+OBl+OBv+OBmizjgYLjgY3jgokNCivjgZPjga/jgoks44Gb44GE44GYDQor44Gr44GX44GL44KPLOOBn+OBpOOBig0KK+OBhOOBvuOBhCzjgZ/jgYvjgbLjgZMNCivjgbXjgZjjgoDjgoks44GX44GS44KEDQor44GT44GY44G+LOOBqOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgZvjgYTjgZgNCivjgY3jgY/jgaEs44KG44Gy44GhDQor44GV44GE44Go44GGLOOBi+OBmuOBig0KK+OChOOBvuOBl+OBnyzjgojjgZfjgbLjgo0NCivjgYLjgbks44Gy44Gn44GKDQor44Gm44Ga44GLLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgaTjgZANCivjgavjgo8s44Gy44KN44GXDQor44GL44KB44GELOOBsuOCjeOBlw0KK+OChOOBrizjgZ/jgYvjgZcNCivjgarjgYvjgb7jgoss44KI44GX44Gu44KKDQor44GK44Gv44GfLOOChOOBmeOBruOCig0KK+OChOOBmeOChOOBvizjga7jgorjgojjgZcNCivjgYvjgZnjgYws44GT44GG44GY44KNDQor44GE44GX44GELOOBsuOBqOOBlw0KK+OBteOBmOOCguOCiizjgb7jgZXjga7jgooNCivjgYTjgo/jgoLjgags44Gy44KN44GXDQor44KE44G+44GX44GfLOOChOOBmeOBig0KK+OBjeOBnyzjgbLjgo3jgobjgY0NCivjgoDjgonjgYrjgYss44KE44GZ44KG44GNDQor44GE44GQ44GVLOOBsuOCjeOBlw0KK+OBquOBjOOBleOCjyzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgZDjgaEs44G/44Gk44KLDQor44GK44Gg44GY44G+LOOBsuOBp+OBguOBjQ0KK+OBiuOBnyzjgZfjgpPjgZgNCivjga/jgY7jga4s44Gf44GL44GXDQor44KE44G244GNLOOCj+OBn+OCiw0KK+OBhOOBjSzjgb/jga7jgosNCivjgZXjgYTjgajjgYYs44G/44Ga44G7DQor44KE44G+44GgLOOBv+OBpOOBig0KK+OBquOBi+OChOOBvizjgoTjgZnjgZcNCivjgoDjgonjgb7jgaQs44G+44GV44Gu44KKDQor44Gf44GX44KNLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBr+OCiSzjgb/jgaTjgYoNCivjgZfjgbDjgYrjgYss44GC44GN44Gy44GTDQor44Gq44GL44GKLOOBruOCiuOBkw0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgZXjgY/jgZ8s44KL44G/44GTDQor44Gv44GfLOOBqOOCguOBvw0KK+OBiuOBsuOCg+OBvizjgobjgYbjgZMNCivjgZ/jgZQs44KI44GX44Ga44G/DQor44G+44Gk44KA44KJLOOBsuOCjeOBmA0KK+OBhOOBqOOBhizjgoTjgZnjgbLjgo0NCivjgY3jgoDjgoks44KG44Gf44GLDQor44GC44GK44GNLOOBvuOBvw0KK+OBk+OBvuOBjOOBnyzjgarjgYrjgYTjgaHjgo3jgYYNCivjgarjgonjgoDjgoks44Go44GX44GC44GNDQor44G144GY44KC44GoLOOCiOOBl+OBqOOBlw0KK+OBv+OChOOBleOBiyzjgb7jgZXjgagNCivjga/jgoTjgZcs44Gf44GL44GXDQor44GV44GE44Go44GGLOOBvuOCiuOBkw0KK+OBiuOBjOOBleOCj+OCiSzjgYvjgYrjgosNCivjgYrjgaTjgYss44GX44KH44Gy44GhDQor44GL44KP44GELOOBvuOBleOChuOBjQ0KK+OBl+OBvuOBmizjgZ/jgaTjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gu44KKDQor44G+44GI44GW44KPLOOBqOOBl+OBjQ0KK+OBr+OBoCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgbLjgoks44GZ44GZ44KADQor44GZ44GO44Gv44KJLOOBn+OBoOOBlw0KK+OBquOBi+OBmOOBvizjgY3jgofjgZMNCivjga/jgZ/jgZHjgoTjgb4s44GL44Ga44GKDQor44GC44GK44GNLOOBvuOBleOChuOBjQ0KK+OBl+OBtuOBi+OCjyzjgZ/jgZHjgYoNCivjgYTjgZfjgaAs44G/44Gk44Gf44GLDQor44GK44GL44GgLOOBsuOBp+OBqOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgZMNCivjgYvjgajjgYYs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOBkw0KK+OCgOOCieOBleOCjyzjgb7jgZXjgbLjgo0NCivjgb/jgbss44GL44Ga44Gy44GTDQor44GZ44GM44GtLOOBl+OCh+OBmA0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgYrjgYss44Go44KC44KG44GNDQor44GE44KP44G/LOOCiOOBsuOBoQ0KK+OBquOBi+OChOOBvizjgY3jgZfjgZMNCivjgYTjgajjgYYs44GE44Ga44G/DQor44GZ44GO44KE44G+LOOBi+OBiuOCiw0KK+OBi+OBl+OCguOBqCzjgYjjgooNCivjgarjgYvjgoDjgoks44Gu44G844KLDQor44GC44GK44KE44G+LOOCiOOBl+OBruOBtg0KK+OBl+OBsOOBnyzjgabjgaTjgoQNCivjgb7jgaTjgYos44G+44GV44Gy44GTDQor44GX44Gu44KA44KJLOOBjeOCiOOBsuOBlQ0KK+OBteOCi+OBi+OCjyzjgZfjgZLjgosNCivjgoLjgajjgY0s44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBguOCk+OBqeOBhizjgb7jgZXjgbLjgo0NCivjgZ/jgZHjgbIs44Gq44GK44G/44GkDQor44GE44GX44GELOOBv+OBruOCiw0KK+OBruOBoeOBmyzjgb7jgZXjga7jgooNCivjgb/jgoTjgarjgYws44KI44GX44Gu44G2DQor44GX44KT44GpLOOCiOOBl+OBsuOBkw0KK+OBiuOBnyzjgoTjgZnjgbLjgo0NCivjgZ/jgass44KG44G/44GTDQor44GT44KA44KNLOOBsuOCjeOBlw0KK+OBhOOCj+OBlSzjgYvjgZrjgY0NCivjgb7jgaTjgoLjgags44GX44KT44GE44GhDQor44GN44KA44KJLOOCiOOBl+OBkw0KK+OBguOBiuOBjSzjgb7jgZXjgobjgY0NCivjgb7jgaTjgbDjgoTjgZcs44Gy44Gn44Gu44KKDQor44GU44GoLOOBkeOCk+OBhOOBoQ0KK+OBiuOBjOOCjyzjgojjgZfjga7jgooNCivjgZnjgY7jgZ/jgass44GC44GK44GEDQor44GK44GP44GuLOOCiOOBl+OBteOBvw0KK+OBleOBj+OCieOBoCzjgZfjgoXjgbLjgaENCivjgoDjgZPjgbLjgoPjgb4s44Gh44GKDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZXjgaHjgZMNCivjgoTjgb7jgoLjgags44GC44GN44G144G/DQor44GL44Gt44GTLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOBluOBjSzjgajjgZfjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44G/DQor44G/44KPLOOBv+OCiOOBkw0KK+OBleOCgOOBi+OCjyzjgojjgZfjgYLjgY0NCivjgarjgYvjgaAs44G144G/44Gu44KKDQor44KI44GX44Go44G/LOOBsuOCjeOBv+OBoQ0KK+OBn+OBi+OBl+OBvizjgbLjgafjgYLjgY0NCivjgYTjgZfjgZIs44Gy44GV44GoDQor44GZ44GI44Gv44KJLOOBguOBjeOBsuOBkw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZcNCivjga7jgZjjgb4s44G144G/44KG44GNDQor44GV44GP44G+LOOBguOBjeOCiQ0KK+OBleOBrizjga/jgovjgYoNCivjgoDjgonjgYrjgYss44KG44GN44GKDQor44G/44GG44KJLOOBl+OCk+OBuuOBhA0KK+OBleOBi+OCguOBqCzjga7jgorjgZMNCivjgarjgovjgYos44GV44Go44GXDQor44Gv44Gb44GM44KPLOOBn+OBoOOBlw0KK+OBiuOBi+OBoCzjgb7jgZXjgajjgZcNCivjgoTjgbLjgo0s44GX44KF44G444GEDQor44Gw44GwLOOChOOBmeOBsuOCjQ0KK+OBguOBnyzjgajjgoINCivjgarjgYzjgZss44GK44GV44KADQor44GL44KP44GILOOBl+OCjQ0KK+OBv+OBhuOCiSzjgajjgZfjgobjgY0NCivjgbXjgZjjgZ8s44GR44KT44GE44GhDQor44Gk44KL44G/LOOBpOOBreOBmA0KK+OCguOBoeOBmuOBjSzjgYLjgY3jgZMNCivjgojjgZfjgaAs44Gy44KN44KG44GNDQor44GK44GL44KC44GoLOOBsuOBp+OBvw0KK+OChOOBmeOCguOBqCzjgb7jgorjgZMNCivjga3jgoLjgags44GV44Gh44GIDQor44Gy44Gg44GLLOOCiOOBl+OBv+OBoQ0KK+OBvuOBmeOBoCzjgYvjgaTjgZgNCivjgajjgY/jgarjgYws44KK44KF44GeDQor44Gq44GL44GW44KPLOOBmOOCheOCkw0KK+OBteOBmOOBquOCjyzjgZvjgYTjgZMNCivjgojjgbPjgYvjgo8s44G/44Gk44Gy44KNDQor44GN44Gf44GgLOOBpuOBpOOBig0KK+OCiOOBl+OBrizjga7jgbbjgobjgY0NCivjgbDjgbAs44Gf44GP44KEDQor44GP44KN44GL44KPLOOBguOChOOBrg0KK+OBi+OBqOOBhizjgY3jgojjgZcNCivjgo/jgZ/jgarjgbks44GE44Ga44G/DQor44Gk44Gh44GgLOOBvuOBjeOCiA0KK+OBmeOBmuOBjSzjgZXjgajjgZMNCivjgb/jgZrjga4s44KI44GX44GKDQor44Gf44Gr44KC44GoLOOBiOOBv+OBkw0KK+OBhOOBkeOBrizjgYvjgZrjgYLjgY0NCivjgYTjgajjgYYs44G+44GV44G144G/DQor44Gf44GR44GgLOOBv+OBpOOBr+OCiw0KK+OBvuOBiOOBoCzjgZ/jgY/jgZgNCivjgY/jganjgYYs44GG44GI44G/44GkDQor44GL44GS44KE44G+LOOBj+OBv+OBkw0KK+OChOOBvuOBi+OBkizjgbXjgb/jgbLjgagNCivjgZXjgYjjgZDjgZUs44GZ44GZ44KADQor44G/44Ga44Gf44GrLOOCiOOBl+OBr+OCiw0KK+OBj+OBqeOBhizjgYvjgZrjgbLjgo0NCivjgZPjgYrjgorjgoTjgb4s44Gf44GR44GXDQor44GL44Gf44KI44GbLOOChOOBmeOBsuOCjQ0KK+OBiuOBleOBoCzjgojjgZfjgagNCivjgoTjgY7jga/jgZcs44Gy44KN44GXDQor44GZ44G/LOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgajjgZfjgYoNCivjgY/jganjgYYs44GC44Gk44GTDQor44Gf44GR44GyLOOBv+OChuOBjQ0KK+OBguOCgeOBv+OChCzjgYLjgY3jgokNCivjgarjgYvjgoDjgoks44Gf44GP44G/DQor44GN44KI44G/44GkLOOCgeOBkOOBvw0KK+OBhOOBmuOBv+OBoCzjgZfjgofjgZMNCivjgbXjgarjgY0s44Go44GK44KLDQor44Gf44GR44GX44GfLOOBk+OBuOOBhA0KK+OBv+OBhuOCiSzjgYvjgaTjgb8NCivjgYTjgZfjgbDjgZcs44G/44Gt44GKDQor44KC44KK44GC44GELOOCiOOBmA0KK+OCgOOCieOChOOBvizjgozjgYTjgZMNCivjgYrjgZXjgo8s44Gq44GK44GTDQor44G144GL44GgLOOBqOOBl+OBsuOBkw0KK+OChOOBvuOBoCzjgb/jgZrjgbsNCivjgYTjgajjgYYs44KI44GX44GIDQor44GK44Gu44Gn44KJLOOBkeOBhOOBkw0KK+OBr+OChOOBleOBiyzjgZfjgoXjgbLjgaENCivjgYrjgaTjgYss44Gf44Gk44GKDQor44Go44Gy44KD44G+LOOBguOBpOOBlw0KK+OBi+OCj+OBr+OCiSzjgobjgY3jgYoNCivjgYjjgbPjgZXjgo8s44GC44GN44KJDQor44KE44G+44GL44KPLOOBv+OBoeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44GR44KT44GYDQor44GK44KE44G+44GgLOOCiOOBl+OBiw0KK+OBvuOBpOOChOOBvizjgbLjgo3jgYLjgY0NCivjgYLjgbks44GL44Ga44Gy44GTDQor44GC44G5LOOBjeOBj+OBig0KK+OBguOBuSzjga7jgbbjgZMNCivjgYLjgbks44GR44GE44GYDQor44GC44GS44GfLOOBiOOBhOOBmOOChQ0KK+OBguOBi+OBr+OBrSzjgoTjgZnjga7jgooNCivjgYLjgZHjgarjgYws44KI44GX44GL44GaDQor44GC44GN44KE44G+LOOBsuOBp+OBsuOBkw0KK+OBguOBjeOBluOCjyzjgYLjgY3jgokNCivjgYLjgb7jgaAs44Go44G/44GKDQor44GC44G+44GuLOOBvuOBleOBv+OBoQ0KK+OBguOCgizjgbLjgafjgbLjgZMNCivjgYLjgpPjganjgYYs44Gy44KN44Gf44GLDQor44GC44KT44Gp44GGLOOBv+OBpOOCiw0KK+OBguOCk+OBqeOBhizjgb7jgZXjgY0NCivjgYLjgYrjga4s44Gm44Gk44KEDQor44GC44GK44KE44G+LOOChOOBmeOBqOOCgg0KK+OBguOCieOBhCzjgajjgYrjgosNCivjgYLjgonjgYvjgo8s44Gf44GL44GXDQor44GC44KK44KC44GoLOOCiuOCheOBsuOBoQ0KK+OBguOCiuOBiizjga7jgbbjgbLjgo0NCivjgYLjgZXjgYQs44KE44GZ44GKDQor44GC44GV44GL44KPLOOBi+OBmuOBvuOBlQ0KK+OBj+OCjeOBjSzjgobjgY3jgYoNCivjgYLjgZrjgb4s44GY44KF44Gr44GhDQor44Gw44KT44GuLOOBsuOBp+OBsuOCjQ0KK+OBueOBpOOChOOBjyzjgZjjgoXjgpMNCivjgbPjgags44GX44GS44GKDQor44Gh44GwLOOBsuOBp+OBi+OBmg0KK+OBoeOCheOBmOOChyzjgb/jgY3jgYoNCivjgYjjgaAs44G+44GV44GXDQor44GI44KT44GpLOOBguOBjeOBig0KK+OBiOOBleOBjSzjgbLjgafjgYLjgY0NCivjgbXjgZjjgYQs44Gq44GK44GNDQor44G144GY44GELOOBqOOBl+OBteOBvw0KK+OBteOBmOOCguOBqCzjgbLjgo3jgY0NCivjgbXjgZjjgZ8s44GE44KP44GKDQor44G144GY44GfLOOBi+OBmuOBsuOCjQ0KK+OBteOBmOOCj+OCiSzjgbLjgafjgZcNCivjgbXjgYvjgZbjgo8s44Gy44Gn44GNDQor44G144GP44GgLOOBvuOBk+OBqA0KK+OBteOBj+OBr+OCiSzjgYLjgY3jgokNCivjgbXjgY/jgZfjgb4s44KI44GX44Gy44GoDQor44G144GP44Gp44KBLOOChuOBjeOBruOCig0KK+OBteOBj+OChOOBvizjgZfjgpPjgZgNCivjgbXjgarjgbDjgZcs44G+44GV44GN44KIDQor44G144KL44Gg44GmLOOBkeOCk+OBlA0KK+OBteOCi+OBleOCjyzjgZjjgpMNCivjgbXjgovjgZ8s44Gy44KN44GXDQor44G144KL44KELOOBi+OBpOOBjQ0KK+OBteOBl+OBjSzjgZHjgpPjgYTjgaHjgo0NCivjga/jgb7jgaAs44Gq44GK44G/DQor44Gv44Gq44GgLOOBl+OCk+OBhOOBoQ0KK+OBr+OBquOBvyzjgbLjgo3jgZcNCivjga/jgonjgaAs44G144G/44GKDQor44Gv44KL44GL44KPLOOBguOBjeOCiQ0KK+OBr+OBm+OBjOOCjyzjgY3jgojjgarjgYoNCivjgYrjgaQs44GC44GN44Gy44KNDQor44Gv44GX44KC44GoLOOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgajjgoLjgbLjgagNCivjga/jgZnjgoLjgags44GZ44GZ44KADQor44Gv44Gj44Go44KKLOOChOOBmeOBsuOBkw0KK+OBr+OChOOBleOBiyzjgYvjgZrjgojjgZcNCivjgbLjgaDjgYss44GL44Ga44Gy44GVDQor44Gy44GQ44GhLOOBleOBqOOBlw0KK+OBsuOBkOOBoSzjgb7jgZXjgobjgY0NCivjgbLjgZjjgY/jgo0s44GC44GN44Gy44GTDQor44Gy44KJ44GL44KPLOOBl+OCk+OBmA0KK+OBsuOCieOBrizjgorjgY3jgoQNCivjgbLjgonjgZ8s44GX44KT44GE44GhDQor44Gy44KN44GbLOOChuOBsuOBoQ0KK+OBsuOBleOBoCzjgZPjgYbjgYTjgaHjgo0NCivjgbvjgoos44GL44Gk44Gu44KKDQor44G744Gy44KDLOOBsuOBp+OBig0KK+OBu+OCk+OBoCzjgYLjgY3jgokNCivjgbvjgpPjgb4s44GE44Ga44G/DQor44Gf44Gq44GLLOOCiOOBsuOBoQ0KK+OBu+OBl+OBmOOBvizjgoDjga3jgbLjgo0NCivjgbvjgZfjgYss44GC44Gk44GXDQor44G744Gd44GgLOOBiOOBv+OBkw0KK+OBhOOBoeOBi+OCjyzjgYLjgaTjgZcNCivjgYTjgaHjgoDjgoks44Gk44KI44GXDQor44GE44GM44GuLOOBn+OBi+OBig0KK+OBhOOBhOOBoCzjgZHjgZXjgYoNCivjgYTjgYTjgYrjgYss44GR44GE44GTDQor44Gq44GM44GuLOOBteOBleOChuOBjQ0KK+OBhOOBkeOBluOCjyzjgarjgYrjgobjgY0NCivjgYTjgoLjgags44GY44KF44Gr44GhDQor44GE44Gq44Ga44G/LOOBsuOCjeOCiA0KK+OBj+OBl+OBv+OChCzjgb7jgZXjgbLjgo0NCivjgYTjga7jgYbjgYgs44GV44Gh44GTDQor44GE44Gu44GG44GILOOBn+OBi+OBlw0KK+OBhOOBruOBhuOBiCzjga7jgorjgoTjgZkNCivjgYTjgazjgaTjgYss44GL44Ga44Gy44GTDQor44GE44GV44GYLOOBl+OBkuOChuOBjQ0KK+OBhOOBl+OBoCzjgZ/jgaTjgoQNCivjgYTjgZfjgaAs44Gk44KI44GXDQor44GE44GX44GgLOOBn+OBpOOBig0KK+OBhOOBl+OBjOOBjSzjgZ/jgZHjgZcNCivjgYTjgZfjgYzjgb8s44Gh44GI44G/DQor44GL44GY44Gf44GrLOOChOOBmeOBsuOCjQ0KK+OBhOOBl+OBr+OCiSzjgZHjgYTjgZQNCivjgYTjgZfjgoDjgoks44G/44Gp44KKDQor44GE44GX44KE44G+LOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBluOBjSzjgbLjgo3jgZcNCivjgYTjgZ3jgbks44GV44Go44KLDQor44GE44Gd44GW44GNLOOBruOBtuOChOOBmQ0KK+OBhOOBqOOBhizjgZnjgb/jgowNCivjgYTjgajjgYYs44KE44GZ44Gv44KLDQor44GE44KP44GC44GVLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBhCzjgZfjgpPjgoQNCivjgYTjgo/jgb4s44GC44GN44KJDQor44GE44KP44KC44GoLOOBqOOCguOChuOBjQ0KK+OBhOOCj+OBquOBjCzjgarjgYrjgY0NCivjgYTjgo/jgZfjgZ8s44Gy44Gn44GoDQor44GE44KP44GfLOOBl+OCheOBsuOBoQ0KK+OBhOOCj+OBnyzjgYTjgZXjgYoNCivjgYvjganjgo/jgY0s44GP44Gr44GC44GNDQor44GL44GS44KE44G+LOOBiOOCiuOBkw0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgavjgaENCivjgYvjgb/jgoQs44GK44GV44KADQor44GL44G/44KELOOBsuOCjeOChuOBjQ0KK+OBi+OCk+OBsOOChOOBlyzjgb7jgZXjgbLjgZMNCivjgYvjga4s44GX44KF44Gy44GhDQor44GL44KK44KELOOBruOBtuOBig0KK+OBi+OBleOBjSzjgojjgZfjgbLjgZMNCivjgYvjgZfjgb4s44G+44GV44GC44GNDQor44GL44GZ44KELOOBoeOBj+OBlQ0KK+OBi+OBqOOBhizjgbLjgZXjgagNCivjgYvjgajjgYYs44GR44KT44Gf44KN44GGDQor44GL44Go44GGLOOBquOBiuOBn+OBiw0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgYvjgajjgYYs44KI44Gy44GhDQor44GL44Go44GGLOOBsuOCjeOBruOCig0KK+OBi+OCj+OBsOOBnyzjgZfjgZMNCivjgYvjgo/jgbDjgZ8s44GL44Ga44G+44GVDQor44GL44KP44GQ44GhLOOBiOOBhOOBmA0KK+OBi+OCj+OBr+OCiSzjgZXjgajjgZcNCivjgYvjgo/jga/jgoks44GR44KT44GE44GhDQor44GL44KP44GY44KKLOOBhOOBmuOBvw0KK+OBi+OCj+OBi+OBvyzjgY/jgavjgYLjgY0NCivjgYvjgo/jgY/jgbws44GR44KT44GE44GhDQor44GL44KP44G+44GfLOOBjeOCk+OBmA0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgZcNCivjgYvjgo/jga4s44Gq44KK44KE44GZDQor44GL44KP44GV44GNLOOBmOOCheOCkw0KK+OBi+OCj+OBl+OBvizjgb7jgZXjgYoNCivjgYvjgo/jgZos44GC44GN44KJDQor44GN44Gw44GXLOOBn+OBi+OBjQ0KK+OBjeOBvuOBoSzjgYvjgZrjgbLjgo0NCivjgY3jgoLjgags44GR44KT44GYDQor44GN44KA44KJLOOBv+OBpOOBkA0KK+OBjeOCk+OBsOOCiSzjgbLjgafjga7jgooNCivjgY3jga7jgZfjgZ8s44Gy44KN44KG44GNDQor44GN44Gu44GX44GfLOOBoOOBhA0KK+OBjeOCiuOBleOCjyzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44Gy44Gn44G/44GhDQor44GT44Gw44KE44GXLOOBsuOCjeOBvw0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbXjgb8NCivjgZPjgbDjgoTjgZcs44G/44Gh44GKDQor44GT44Gg44G+LOOBpuOBpOOBig0KK+OBk+OBoOOBvizjgYvjgZrjgajjgZcNCivjgZ/jgYvjgoDjgoks44Gf44GL44Gu44G2DQor44GT44Gy44Gq44GfLOOBsuOBqOOBlw0KK+OBk+OBrizjga7jgorjgYLjgY0NCivjgZPjga4s44G+44GV44Gy44GoDQor44GT44Gy44KD44G+LOOBqOOBl+OBsuOBlQ0KK+OBk+OBmuOBjSzjgb7jgZXjga7jgooNCivjgajjgaks44Gy44Gn44Gy44GTDQor44GT44GY44G+LOOBvuOBleOBjQ0KK+OBk+OCk+OBqSzjgZ/jgZHjgZcNCivjgZPjgpPjgaks44Gf44GP44KEDQor44GT44KT44GpLOOCiOOBl+OBv+OBoQ0KK+OBk+OCk+OBrizjgoTjgZnjgZcNCivjgZPjgZ/jgY0s44Gy44KN44GNDQor44GT44KE44GE44GXLOOBhOOBoeOCjeOBhg0KK+OBk+OChOOBquOBjizjgZjjgoXjgavjgaENCivjgY/jgbws44Gy44KN44GC44GNDQor44GP44Gp44GGLOOBvuOBleOBig0KK+OBj+OBvuOBjOOBhCzjgbXjgZjjgbLjgZMNCivjgY/jgb7jgY0s44GT44GG44GYDQor44GP44KJ44GhLOOBiuOBleOCgA0KK+OBj+OCieOBnyzjgoLjgajjgbLjgZMNCivjgY/jgorjgZ8s44KG44GZ44GRDQor44GP44KK44KE44G+LOOBsuOCjeOBlw0KK+OBj+OCjeOBoCzjgZ/jgYvjgbLjgo0NCivjgY/jgo3jgYvjgY4s44GT44GG44GYDQor44GP44KN44GV44KPLOOBqOOBl+OBig0KK+OBj+OCjeOBleOCjyzjgZPjgYbjgZgNCivjgY/jgo/jga4s44GX44KT44GYDQor44G+44GI44Gw44GXLOOBguOBjeOCiQ0KK+OBvuOBiOOBluOCjyzjgZ/jgYvjgZcNCivjgb7jga4s44G+44GV44Go44GXDQor44G+44KL44KP44GLLOOBi+OBiuOCiw0KK+OBhuOBoeOChOOBvizjgbLjgajjgZcNCivjgb7jgZnjgaAs44G/44GLDQor44G+44Gk44GELOOBruOBvOOCiw0KK+OBvuOBpOOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44GN44G/44Gy44GoDQor44G+44Gk44KC44GoLOOBquOBiuOChuOBjQ0KK+OBvuOBpOOBquOBjCzjgZfjgpPjgZgNCivjgb7jgaTjgZfjgb4s44Gf44GL44KG44GNDQor44G+44Gk44GX44GfLOOBk+OBmeOBkQ0KK+OBvuOBpOOBluOBjSzjgb/jgY0NCivjgYTjgarjgYTjgZcs44GX44KF44KT44GYDQor44G/44GL44G/LOOBk+OBmeOBkQ0KK+OBv+OBquOBjizjgb7jgZXjga7jgbYNCivjgb/jgaTjgoTjgb4s44GX44KT44GYDQor44G/44GG44KJLOOBm+OBhOOBjQ0KK+OBv+OChOOBkSzjgbLjgo3jgZ/jgYsNCivjgb/jgoTjgoLjgags44Go44GX44GC44GNDQor44G/44KE44GfLOOBruOBtuOChuOBjQ0KK+OBv+OChOOBhuOBoSzjgojjgZfjgYoNCivjgb/jgoTjgYbjgaEs44Gy44Gn44Gq44GKDQor44G/44KE44GW44KPLOOBn+OBpOOBig0KK+OBv+OChOOBluOCjyzjgZjjgoXjgpMNCivjgb/jgojjgaAs44GX44GS44GNDQor44G/44Ge44G244GhLOOBleOBqOOBlw0KK+OBv+OBnuOBnyzjgZfjgpPjgYTjgaENCivjgaHjgbAs44Gy44GV44GoDQor44G/44Ga44Gv44GXLOOBvuOBleOBqOOBlw0KK+OBv+OBmuOBvuOBoSzjgoLjgorjgbLjgo0NCivjgb/jgZrjgZ/jgass44Gf44Gg44GXDQor44G/44Ga44Gf44GrLOOBn+OBkeOBlw0KK+OBv+OBmuOBn+OBqyzjgojjgZfjgYoNCivjgoLjgaHjgZrjgY0s44GR44GE44GE44GhDQor44KC44KK44KC44GoLOOBguOBjeOBv+OBpA0KK+OCguOCiuOBn+OBqyzjgZPjgYbjgYTjgaHjgo0NCivjgoLjgorjgZ8s44GX44GS44GNDQor44KC44KK44GfLOOBguOBpOOBlw0KK+OCguOCiuOCj+OBjSzjgYLjgaTjgZMNCivjgYrjgY/jgYQs44GT44GG44GYDQor44KC44KKLOOBvuOBleOBjQ0KK+OCguOCiizjgYTjgaHjgo3jgYYNCivjgoDjgZPjgbLjgoPjgb4s44GC44GN44KJDQor44KA44KJ44GmLOOBn+OBi+OBlw0KK+OCgOOBqCzjgZ/jgYvjgbLjgZUNCivjgarjgYzjgYQs44GR44KT44GYDQor44Gq44GM44GuLOOBn+OBkeOBig0KK+OBquOBjOOBiuOBiyzjgbLjgo3jgbLjgZUNCivjgarjgYzjgZss44G+44GT44GoDQor44Gq44GM44GfLOOBm+OBhOOBmA0KK+OBquOBjOOBnyzjgZXjgajjgZcNCivjgarjgYzjgo8s44Gk44KI44GXDQor44Gq44GL44G+44KLLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jga7jgosNCivjgarjgYvjgoDjgoks44Gq44Gq44GTDQor44GC44G5LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgojjgbLjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44GX44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OBl+OBiizjgZ/jgZHjgbLjgZMNCivjgarjgYss44Gf44GR44G/DQor44Gq44G/44GNLOOBn+OBi+OChuOBjQ0KK+OBquOCk+OBtizjgbLjgo3jgobjgY0NCivjgoTjgb7jgZDjgaEs44GX44KT44GE44GhDQor44Gr44GE44G/LOOBi+OBpOOBjQ0KK+OBq+OBl+OBoCzjgb/jgaTjgbLjgo0NCivjgavjgZfjgaAs44G/44Gk44Go44GXDQor44Gr44GX44GgLOOBn+OBi+OBsuOCjQ0KK+OBq+OBl+OBoCzjgYvjgaTjgb8NCivjgavjgZfjgY/jgbws44Gy44KN44KG44GNDQor44Gr44GX44KA44KJLOOCguOBqOOBjQ0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgavjgZfjgYos44KI44GX44GNDQor44Gr44GX44GKLOOBguOBjeOCiQ0KK+OBq+OBl+OChOOBvizjgajjgoLjgZMNCivjgoTjgYzjgo8s44KI44Gy44Gh44KNDQor44Gr44Gj44GfLOOBqOOBl+OChA0KK+OBruOBueOBiuOBiyzjgYLjgY3jgokNCivjga7jgZjjgoos44Gy44GV44KI44GXDQor44Gu44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBruOBquOBiyzjga7jgorjgZMNCivjgYrjgbDjgaos44Gu44KK44GL44GaDQor44GK44Gh44GC44GELOOBsuOCjeOBl+OBkg0KK+OBiuOBoeOBv+OBmizjgZfjgpPjgZgNCivjgYrjgaEs44GX44GS44G144G/DQor44GK44Gg44GK44Gv44KJLOOBsuOCjeOCiOOBlw0KK+OBiuOBoCzjgYjjgYTjgZgNCivjgYrjgYzjgZ8s44G+44GV44GC44GNDQor44GK44GM44KPLOOBmeOBmeOCgA0KK+OBiuOBjOOCjyzjgYLjgY3jgbLjgo0NCivjgYrjgZDjgoks44Gf44GL44GC44GNDQor44GK44Gy44KJLOOBpOOCiOOBlw0KK+OBiuOBsuOCiSzjgb7jgZXjgagNCivjgYrjgbLjgZcs44GX44KT44GYDQor44GK44Gy44GXLOOBn+OBi+OBlw0KK+OBiuOBjSzjgZHjgYTjgZgNCivjgYrjgY/jgbws44Gy44KN44G/DQor44GK44GuLOOBguOBjeOBuw0KK+OBiuOBrOOBvizjgojjgZfjga7jgbYNCivjgYrjgazjgb4s44Gm44Gk44KEDQor44GK44Gf44GNLOOBi+OBpOOBlw0KK+OBiuOBnyzjgb/jga7jgosNCivjgYrjgZ8s44Go44GX44KG44GNDQor44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBqCzjgb/jgaTjga7jgooNCivjgYrjgaTjgbws44GX44KT44GUDQor44GK44Gy44KD44GOLOOBsuOCjeOBi+OBmg0KK+OBiuOBsuOCg+OBvizjgb7jgZXjgY0NCivjgYrjgYTjgYgs44G+44GV44Go44GXDQor44GK44GY44G+LOOBiOOBpOOBkw0KK+OBiuOBi+OBuSzjgarjgYrjgobjgY0NCivjgYrjgYvjgaAs44Gu44G244KG44GNDQor44GK44GL44KC44GoLOOBhOOBoeOCjeOBhg0KK+OBiuOBi+OBrSzjgYLjgY3jgokNCivjgYrjgYvjga4s44G+44GT44GoDQor44GK44GL44GuLOOBi+OChg0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgZMNCivjgo/jgZ/jgarjgbks44GR44GE44GTDQor44GK44GP44GgLOOBl+OBkuOBruOBtg0KK+OBiuOBj+OBrizjgarjgovjgZcNCivjgYrjgarjgoQs44G+44GV44Gy44GnDQor44GK44GuLOOBqOOBiuOCiw0KK+OBiuOBrizjgojjgZfjgarjgYwNCivjgYrjga4s44GT44GG44GE44GhDQor44GK44GV44Gq44GELOOBvuOBleOBmuOBvw0KK+OBiuOBluOBjSzjgbLjgo3jgbXjgb8NCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBguOBpOOBlw0KK+OBleOBmCzjgYvjgZrjgoQNCivjgZXjgZgs44GC44GN44KJDQor44GV44GL44GELOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBhCzjgajjgYrjgosNCivjgZXjgYvjgY/jgoks44G+44GV44GNDQor44GV44GL44GG44GILOOBn+OBi+OBlw0KK+OBleOBleOBuSzjgbLjgafjgYoNCivjgZXjgZXjgY0s44G+44GV44GTDQor44Gq44G/44GNLOOBr+OCi+OBsuOBkw0KK+OBleOBn+OBkSzjgb7jgZXjgajjgZcNCivjgZXjgZ/jgZEs44GC44Gk44Gy44KNDQor44GV44Go44GGLOOBi+OBpOOBlw0KK+OBleOBqOOBhizjgYvjgZrjgZMNCivjgZXjgajjgYYs44GN44KI44GXDQor44GV44Go44GGLOOBl+OCk+OChA0KK+OBleOBqOOBhizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GN44KI44GC44GNDQor44GV44KP44GgLOOBsuOBp+OBig0KK+OBm+OBjeOBkOOBoSzjgojjgZfjgb8NCivjgZvjgY3jgoLjgags44GY44KF44KTDQor44Gb44GN44GtLOOChOOBmeOBsuOBpw0KK+OBm+OBjeOBiuOBiyzjgYvjgZrjgYoNCivjgZvjgY3jgoQs44GL44Ga44Gy44GTDQor44Gb44GNLOOBqOOCguOBmeOBkQ0KK+OBm+OCk+OBnyzjgZ/jgYvjgbLjgo0NCivjgZfjgbDjgZ8s44KE44GZ44KG44GNDQor44GX44GE44GqLOOBvuOBk+OBqA0KK+OBl+OBhOOChCzjgbLjgafjgYvjgZoNCivjgZfjgb7jgbDjgoTjgZcs44Gy44KN44GXDQor44GX44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OBl+OBvuOBoCzjgo/jgY0NCivjgZfjgb7jgoDjgoks44GX44KF44Gy44GhDQor44GX44G/44GaLOOBn+OBkeOBlw0KK+OBl+OBv+OBmizjgarjgYrjgY0NCivjgZfjgoLjgoDjgoks44KG44GeDQor44GX44Gu44GgLOOBl+OBkuOBjQ0KK+OBl+OBruOBr+OCiSzjgbLjgo3jgZcNCivjgZfjgYrjgZbjgo8s44Gv44GY44KBDQor44GX44KJ44GE44GXLOOBsuOCjeOBguOBjQ0KK+OBl+OCieOBleOBjSzjgajjgZfjgobjgY0NCivjgZfjgonjgajjgoos44GN44GE44GhDQor44GX44GV44GELOOBvuOCguOCiw0KK+OBl+OCh+OBoCzjgbLjgo3jgYLjgY0NCivjgZ3jgYYs44GY44KF44Gr44Gh44KNDQor44Gd44Gu44G5LOOBruOCiuOBguOBjQ0KK+OBmeOBqeOBhizjgZXjgajjgZcNCivjgZnjganjgYYs44G144G/44Gv44KLDQor44GZ44GO44GG44KJLOOBsuOBp+OBjQ0KK+OBmeOBjuOChOOBvizjgb7jgoLjgosNCivjgZnjgY7jgoTjgb4s44GX44KT44GE44Gh44KN44GGDQor44GZ44G/44GgLOOBv+OBoeOBqOOBlw0KK+OBmeOBv+OBi+OCjyzjgYLjgY3jgbLjgagNCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBhOOBn+OCiw0KK+OBmeOBmuOBjSzjgYvjgaTjgYLjgY0NCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOCguOBqOOChuOBjQ0KK+OBmeOBmuOBjSzjga7jgbbjgobjgY0NCivjgZnjgZrjgY0s44KG44GG44GYDQor44GZ44Ga44GNLOOCiOOBhuOBkw0KK+OBu+OBneOBi+OCjyzjgbLjgafjgZgNCivjgZ/jgbbjgZcs44G+44GV44Gy44KNDQor44Gf44Gh44GW44KPLOOBkeOBhOOBmeOBkQ0KK+OBn+OBoCzjgarjgYrjgY0NCivjgZ/jgaAs44Go44GK44KLDQor44Gf44GL44GfLOOBl+OCheOBq+OBoQ0KK+OBn+OBi+OBjOOBjSzjgZXjgajjgZMNCivjgoTjgb7jgZbjgY0s44Gq44GK44GNDQor44Gf44GL44Gv44GXLOOCiuOCh+OBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgajjgoLjgZgNCivjgZ/jgYvjga/jgZcs44Gy44KN44GNDQor44Gf44GL44GuLOOBsuOBqOOBlw0KK+OBn+OBi+OBleOBjSzjgb/jga3jgYvjgZoNCivjgZ/jgYvjgZks44Gy44KN44GXDQor44Gf44GL44Go44KKLOOBguOBpOOBlw0KK+OBn+OBi+OChOOBvizjgajjgZfjgarjgooNCivjgZ/jgYvjgoTjgb4s44KI44GX44KG44GNDQor44Gf44GL44KE44G+LOOChOOBmeOBng0KK+OBn+OBi+OChCzjga/jgZjjgoENCivjgZ/jgZHjgaAs44GL44Ga44GC44GNDQor44Gf44GR44GgLOOChuOCig0KK+OBvuOBpOOBiuOBiyzjgYTjgY/jgZ8NCivjgZ/jgZHjgYQs44Gu44KK44G144G/DQor44Gf44GR44GG44GhLOOBn+OBi+OBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgajjgZcNCivjgZ/jgZEs44KG44GZ44GRDQor44Gf44GN44G/44KELOOBsuOBp+OBi+OBmg0KK+OBn+OBvuOBn+OBqyzjgarjgYrjgY0NCivjgZ/jgoDjgoks44KI44GX44Gk44GQDQor44Gf44KA44KJLOOBsuOCjeOBjQ0KK+OBn+OBquOBiyzjgb7jgZXjgoTjgZkNCivjgZ/jgarjgYss44Gf44GL44Gy44KNDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgYvjgZrjgogNCivjgZ/jgavjgoLjgags44GT44GG44GYDQor44Gf44Gr44KE44G+LOOBvuOBleOBvw0KK+OBn+OCk+OBrizjgZfjgZLjgosNCivjgZ/jga4s44KG44GG44GYDQor44Gm44KJ44GW44KPLOOCiOOBl+OBi+OBmg0KK+OBqOOBj+OBl+OBkizjgZ/jgYjjgZMNCivjgZTjgags44Gy44KN44KG44GNDQor44Go44G/44Gq44GMLOOCiOOBl+OBsuOCjQ0KK+OBqOOCk+OBl+OChyzjga7jgbbjgbLjgZMNCivjgaTjgbzjgYQs44Go44KC44GK44GNDQor44Gk44G844GfLOOBruOCiuOBqOOBlw0KK+OBpOOBmOOCgOOCiSzjgZHjgYTjgZMNCivjgb7jgaTjgoDjgoks44Go44KC44Gy44KNDQor44Gk44GL44GgLOOBi+OBmuOBguOBjQ0KK+OBpOOBreOCiOOBlyzjgojjgZfjgbLjgo0NCivjgaTjgovjgYrjgYss44GR44KT44GYDQor44Gk44KLLOOBi+OBmuOBsuOBlQ0KK+OBhuOBoeOBoCzjgajjgoLjgoTjgZkNCivjgYbjgYjjgaAs44GC44KE44GTDQor44GG44KB44GV44GNLOOBruOCiuOBsuOCjQ0KK+OBhuOCieOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYbjgonjgYvjgo8s44GC44GN44Gy44GTDQor44KP44GgLOOBiuOBleOCgA0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgZXjgYoNCivjgo/jgYvjgb7jgaQs44GC44GN44KJDQor44KP44Gf44Gq44G5LOOBleOBqOOCiw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgY0NCivjgo/jgZ/jgoos44Gy44KN44Gy44GVDQor44KE44G5LOOBsuOBp+OChuOBjQ0KK+OChOOBr+OBjizjgZfjgofjgbLjgaENCivjgoTjgb7jgaAs44GX44KH44GYDQor44KE44G+44GgLOOBquOBiuOBjQ0KK+OChOOBvuOBk+OBlyzjgYLjgY3jgokNCivjgoTjgb7jgoLjgags44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBleOBqOOBvw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgoQNCivjgoTjgb7jgoLjgags44KI44GX44GKDQor44KE44G+44KC44GoLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBhuOBoSzjgZ/jgoLjgaQNCivjgoTjgb7jga4s44GN44KI44GXDQor44KE44G+44GK44GLLOOChuOBhuOBmA0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgZcNCivjgoTjgb7jgYbjgaEs44GY44KF44KTDQor44KE44G+44GW44GNLOOBkeOCk+OBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgYvjgZoNCivjgoTjgarjgY7jgZfjgb4s44GC44Gk44GTDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBrizjgZPjgYbjgZgNCivjgoTjgZbjgY0s44GT44GG44GE44GhDQor44KI44GULOOBl+OCk+OBmA0KK+OCiOOBk+OBhCzjgYvjgZrjgbLjgo0NCivjgojjgZPjgb/jgZ4s44GL44Ga44Gy44KNDQor44KI44GT44GfLOOBvuOBleOChuOBjQ0KK+OCiOOBk+OBnyzjgZ3jgbLjgaENCivjgojjgZPjgZ8s44GC44Gk44GXDQor44KI44GX44GgLOOCiOOBhOOBoQ0KK+OCiOOBl+OBoCzjgZXjgaENCivjgojjgZfjgbXjgZUs44G+44GV44G/DQor44KI44GX44Gv44KJLOOBqOOBiuOCiw0KK+OCiOOBl+OBhOOBiCzjgbLjgo3jgbXjgb8NCivjgojjgZfjgYvjgo8s44Go44KC44Gf44GLDQor44KI44GX44GL44KPLOOBqOOBl+OBsuOBpw0KK+OCiOOBl+OBiizjgZ/jgZHjgZcNCivjgobjgYLjgZUs44Gy44KN44G+44GVDQor44KG44GNLOOChuOBi+OCig0KK+OBguOBoOOBoSzjgb7jgZnjgb8NCivjgYrjgavjgZcs44G/44GL44GTDQor44GK44GfLOOBn+OBi+OBsuOBkw0KK+OBguOBleOBrizjgZ/jgZHjgZcNCivjgavjgZfjgoDjgoks44KE44GZ44Gv44KLDQor44KE44G+44GgLOOBi+OBpOOBvuOBlQ0KK+OBleOBhCzjgajjgZfjgY0NCivjgb/jgoTjgoLjgags44KG44GG44GYDQor44GZ44Ga44GNLOOBsuOBleOBig0KK+OBteOBj+OBhCzjgobjgYbjgZMNCivjgYrjgY/jgaAs44GX44KT44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBvuOBoeOBkw0KK+OBteOCi+OChCzjgYTjgY/jgbXjgb8NCivjgoLjgajjgoTjgb4s44Go44KC44G+44GVDQor44KI44GX44GW44GNLOOBr+OBmOOCgQ0KK+OBquOBi+OCgOOCiSzjgaHjgYgNCivjgajjgY3jgo8s44G/44Gk44Gy44KNDQor44GE44Gq44GgLOOChuOBhuOBmA0KK+OBqOOBjeOCjyzjgb7jgZXjgojjgZcNCivjgojjgZfjgaAs44GC44GN44KJDQor44Gf44GL44GuLOOBqOOBl+OChuOBjQ0KK+OBhuOBiOOBoCzjgYvjgZrjgYoNCivjgaTjgaHjgoQs44G/44KP44GTDQor44GX44KC44GL44KPLOOBv+OBoeOBkw0KK+OBvuOBpOOBhCzjgb/jgaTjgojjgZcNCivjgZnjgYzjgoQs44Gy44KN44Gu44KKDQor44G/44Gu44GQ44GhLOOBj+OBq+OBig0KK+OBhuOBiOOBoCzjgYvjgZrjgYoNCivjgYTjga4s44GL44Ga44Gy44GTDQor44G+44GI44GgLOOBj+OBq+OChA0KK+OBpOOBvOOBnyzjgbLjgZXjgZMNCivjgojjgZfjgb8s44Gf44GL44GKDQor44GE44Gh44GL44KPLOOBi+OBpOOBvw0KK+OBu+OCiizjgarjgYrjgbLjgo0NCivjga/jgoTjgZcs44KG44Gy44GhDQor44GX44Gw44GfLOOBguOBpOOCjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgbLjgaENCivjgYrjgY/jgbws44G+44GV44Gk44GqDQor44GE44KP44GfLOOBruOCiuOChuOBjQ0KK+OBteOBmOOBnyzjgZ/jgYvjgobjgY0NCivjgY3jgZ/jgoDjgoks44GR44GE44GTDQor44GP44KN44GNLOOBqOOCguOBkw0KK+OChOOBvuOCguOBqCzjgobjgYbjgZMNCivjgoTjgb7jgbDjgZ8s44G144G/44Gy44GTDQor44GV44GE44Go44GGLOOBi+OBpOOBvw0KK+OBteOBmOOCj+OCiSzjgojjgZfjgYoNCivjgYTjgajjgYYs44KE44GZ44GTDQor44GE44GE44GRLOOBsuOBi+OCiw0KK+OBleOCgOOBi+OCjyzjgajjgoLjgZgNCivjgYLjgZrjgb4s44G+44GT44GoDQor44GC44GK44GNLOOBruOCiuOBig0KK+OBteOBmOOBnyzjgYTjgY/jgYoNCivjgb/jgojjgZcs44GX44GS44Gy44KNDQor44Gb44GN44KE44G+LOOBsuOBp+OChA0KK+OBpuOCieOBoCzjgobjgZ/jgYsNCivjgYjjgpPjgaks44GE44GP44GTDQor44GL44GN44KC44GoLOOBvuOBmeOBsuOBkw0KK+OBteOCi+OChCzjgZ/jgZHjgZcNCivjgb7jgY3jgoDjgoks44Gu44G244KG44GNDQor44GT44KT44GuLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBleOBjSzjgYvjgZrjgYoNCivjgojjgZfjgaAs44GR44GE44GTDQor44Gv44GO44KP44KJLOOBn+OBi+OBlw0KK+OChOOBluOBjSzjgobjgY3jgZMNCivjgavjga7jgb/jgoQs44GX44KF44Gy44GhDQor44GT44GV44GLLOOBn+OBoOOBlw0KK+OBleOBrizjgYvjgZrjgagNCivjgZXjgYTjgajjgYYs44Go44GK44KLDQor44GX44KC44GbLOOBguOBjeOBruOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgY0NCivjgZ/jgaTjgYrjgYss44GC44Gk44GXDQor44Gf44Gw44GfLOOBpOOBreOBig0KK+OBquOBiuOBhCzjgajjgZfjgYvjgZoNCivjgarjgYzjgZ8s44KI44GX44GKDQor44Gr44GX44GK44GLLOOBpuOCi+OBsuOBlQ0KK+OBvuOBpOOBi+OCjyzjgZ/jgZHjgZcNCivjgb/jgZrjga4s44GR44KT44GY44KN44GGDQor44Go44GP44Gq44GMLOOBhOOCj+OBig0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgYoNCivjgoTjgZnjgYvjgo8s44Gy44KN44GXDQor44KE44G+44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OCiOOBk+OBhuOBiCzjgZfjgZLjgYoNCivjgYLjgZrjgb4s44Gy44KN44GXDQor44GE44Gq44GgLOOChuOBhuOBmA0KK+OBhOOBl+OBhCzjgYvjgZrjgYoNCivjgYTjgb7jgavjgZcs44Gy44KN44KE44GZDQor44GK44GL44GuLOOBl+OCk+OBlA0KK+OBjeOBlyzjgaDjgYTjgZnjgZENCivjgY/jgbzjgZ8s44Gf44GL44KI44GXDQor44GT44G/44Gq44G/LOOBi+OBmuOBsuOBqA0KK+OBguOBhOOChOOBvizjgb7jgZXjgY0NCivjgZXjga4s44KI44GX44Gf44GLDQor44Gf44GN44GM44KPLOOBvuOBleOBkw0KK+OBk+OCk+OBrizjgb7jgZXjgYoNCivjgZvjgpPjgaDjgYQs44GX44GS44KLDQor44Gr44KP44GuLOOBguOBpOOBlw0KK+OBl+OBmOOChyzjgobjgYbjgZMNCivjgYvjgajjgYYs44GR44GE44GTDQor44GC44GL44GV44GLLOOBsuOCjeOBjQ0KK+OBiuOCk+OBmuOBiyzjgajjgZfjga7jgooNCivjgZPjgYws44KG44GN44GKDQor44Gv44KE44GL44KPLOOBn+OBoOOBlw0KK+OBr+OBm+OBjOOCjyzjga7jgbzjgosNCivjgbXjgovjgYvjgo8s44G/44Gk44KG44GNDQor44G144GY44GL44GpLOOBruOBvOOCiw0KK+OBqOOBruOBi+OCjyzjgZ/jgZHjgYoNCivjgb7jgaTjgYos44GL44Gt44G/44GkDQor44GN44G/44Ga44GLLOOBqOOBl+OBkw0KK+OBiuOBoSzjgb7jgZXjga7jgooNCivjgYTjgaHjgZPjga/jgoks44G+44KG44G/DQor44GE44GR44GgLOOBl+OCh+OBmOOCjQ0KK+OBguOCieOBn+OBkSzjgaHjgYvjgokNCivjgYTjgZHjgaAs44GX44GS44KI44GXDQor44GE44Go44GGLOOBsuOCjeOChOOBmQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYTjgYTjgaAs44Gy44Gn44GZ44GRDQor44GK44GP44G+LOOBquOBiuOCiOOBlw0KK+OBj+OBleOBsCzjgYvjgZrjgarjgooNCivjgZPjgbDjgoTjgZcs44GP44Gr44GKDQor44GU44GoLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgZvjgY3jga0s44Go44KC44G/DQor44Gf44GL44GgLOOBvuOBleOCiOOBlw0KK+OBk+OCk+OBqSzjgZ/jgZHjgZcNCivjgZ/jgZHjgoTjgb4s44KG44GG44GYDQor44Gf44GL44GE44GhLOOBn+OBkeOBlw0KK+OBneOBoCzjgojjgZfjgYoNCivjgZ/jga4s44G+44GV44Gu44KKDQor44GX44Gu44GW44GNLOOBvuOBk+OBqA0KK+OBr+OCieOBoCzjgb7jgZXjgoTjgZkNCivjgY/jganjgYYs44GC44GN44GTDQor44Gk44Gu44GgLOOBhOOBj+OBig0KK+OBteOCi+OBi+OCjyzjgajjgY3jgYoNCivjgoLjgorjgZ8s44KI44Gy44GhDQor44KE44G+44KC44GoLOOBiOOBpA0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgobjgYvjgo8s44GL44Ga44GIDQor44KI44GX44GgLOOBvuOBleOBjQ0KK+OBr+OChOOBlyzjgZXjgojjgZMNCivjgZ/jgpPjga4s44GL44Ga44KEDQor44Gf44GL44Gv44GXLOOCguOBqOOBruOCig0KK+OBquOCiuOBguOBhCzjgbLjgo3jgZcNCivjgZ/jgYvjgoDjgoks44Go44GX44KG44GNDQor44Gf44KT44GuLOOCiOOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZHjgYTjgZfjgo0NCivjgZTjgags44GK44GV44KADQor44GU44GgLOOBkeOCk+OBmA0KK+OBquOBi+OBl+OBvizjgb7jgZPjgagNCivjgbvjgZfjga4s44GV44Go44GXDQor44KP44GTLOOBguOChA0KK+OBmeOBmuOBjSzjgYvjgaTjgZMNCivjgojjgZfjgb7jgaQs44GY44KF44GtIOOBquOBiuOBkw0KK+OBquOBv+OBiuOBiyzjgajjgZfjgYLjgY0NCivjgoTjgb7jgZDjgaEs44G+44GV44KG44GNDQor44GE44GX44Gw44GXLOOBqOOBiuOCiw0KK+OBhOOBl+OBoCzjgojjgZfjga/jgosNCivjgYbjgaHjgoTjgb4s44KI44GX44GKDQor44GI44KT44GpLOOBiOOBhOOBkw0KK+OBquOBi+OBrizjgajjgZfjgZ/jgYsNCivjgYTjgb7jgYQs44GI44GE44GE44GhDQor44GK44GV44Gq44GELOOBvuOBk+OBqA0KK+OBleOBi+OCguOBqCzjgojjgZfjga7jgooNCivjgZfjgYrjgb8s44GC44GN44GKDQor44GX44G+44GW44GNLOOBpuOBpOOBig0KK+OBpuOCi+OChCzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ/jgass44Go44GK44KLDQor44Gv44GO44KP44KJLOOBjeOCh+OBkw0KK+OBsuOBjOOBlyzjgb/jgaTjgYoNCivjgbvjgorjgYbjgaEs44G144G/44Gf44GgDQor44G/44Ge44KN44GOLOOBquOBiuOBjQ0KK+OCguOCiizjgZfjgZLjgYoNCivjgYTjga7jgYbjgYgs44G+44GV44GP44GrDQor44GX44GgLOOBl+OCk+OBmA0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgoLjgags44G+44GT44GoDQor44GK44Gf44GNLOOBm+OCk+OChA0KK+OBteOBmCzjgZvjgYTjgZgNCivjgYLjgY3jgoLjgags44GX44GS44KLDQor44GE44GE44GY44G+LOOBvuOBleOBteOBvw0KK+OBiuOBkOOBvizjgYvjgZrjgYoNCivjgZXjgajjgYYs44GC44Gk44GXDQor44Gk44Gh44KELOOBjeOCiOOBlw0KK+OBleOBhOOBqOOBhizjgaHjgYvjgZcNCivjga/jgoks44Gq44GK44GNDQor44G144GY44G+44GNLOOBqOOBl+OChA0KK+OCgOOCjeOBnyzjgarjgYrjgY0NCivjgoLjgoos44GN44KI44GL44GaDQor44G/44Ge44GQ44GhLOOBl+OCh+OBkw0KK+OBhOOBkeOBr+OBnyzjgojjgZfjgYoNCivjgYrjgYzjgo8s44Gq44GK44GNDQor44GG44GI44GuLOOBn+OCguOBpA0KK+OBn+OBquOBiyzjgZ/jgZHjgbLjgZMNCivjgZPjgbDjgoTjgZcs44G/44Gh44KIDQor44GP44KN44GZLOOBv+OBoeOBkw0KK+OBjeOBn+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgZfjga7jgb8s44GL44Ga44KEDQor44Gv44GbLOOBleOBquOBiA0KK+OBpuOCi+OBrOOBvizjgb7jgoLjgosNCivjgY3jgY/jgaEs44GC44GN44GTDQor44Gv44GX44KC44GoLOOChuOBv+OBkw0KK+OBiuOBi+OCjyzjgZ/jgYvjgYoNCivjgYrjgavjgZcs44KI44GX44Gy44KNDQor44GC44G5LOOBi+OBmuOCiOOBlw0KK+OBguOBoOOBoSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYLjgaDjgaEs44GX44KT44KEDQor44GC44Gg44GhLOOBv+OBpOOBvuOBlQ0KK+OBguOBlCzjgajjgYrjgosNCivjgYLjgYTjga/jgoks44Go44GX44KG44GNDQor44GC44GE44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBguOBhOOBluOCjyzjgbLjgo3jgZ/jgYsNCivjgYLjgYvjgb7jgaQs44G+44GV44Go44GXDQor44GC44GL44G+LOOBi+OBmuOBsuOCjQ0KK+OBguOBi+OBmyzjgb7jgZXjgYvjgZoNCivjgYLjgYvjgoTjgb4s44KE44GZ44GYDQor44G144GP44GX44G+LOOBsuOCjeOBlw0KK+OBguOBjeOBsCzjgb7jgZXjgobjgY0NCivjgYLjgY3jga4s44KG44GeDQor44GC44GN44GX44GLLOOCiOOBhuOBkw0KK+OBquOCgeOBjSzjgZXjgajjgZcNCivjgYLjgY3jgZrjgY0s44Gu44KK44KG44GNDQor44GC44G+44GgLOOBl+OCk+OBqA0KK+OBguOBvuOBrizjgZ3jgbLjgaENCivjgYLjgb/jga4s44G+44GV44Gy44GoDQor44GC44KT44G5LOOBsuOBp+OBjQ0KK+OBguOCk+OBqeOBhizjgb7jgZXjgagNCivjgYLjgpPjgZbjgYQs44Go44GX44KG44GNDQor44GC44KT44GW44GELOOBi+OBiuOCig0KK+OBguOBiuOBjSzjgYLjgY3jgbLjgZMNCivjgYLjgYrjgoTjgY4s44Gy44Gn44GKDQor44GC44GK44KE44GOLOOBmOOCheOBq+OBoQ0KK+OBguOBiuOChOOBjizjgZ/jgaTjgYoNCivjgYLjgonjgYvjgo8s44Go44KC44G/DQor44GC44KJ44GL44KPLOOBvuOBleOChuOBjQ0KK+OBguOCieOBjSzjgZfjgpPjgZLjgpMNCivjgYLjgonjgoTjgZks44Go44KC44GuDQor44GC44KJLOOBpOOBqOOCgA0KK+OBguOCiuOBnyzjga/jgovjgY0NCivjgYLjgZXjgaAs44KG44GG44GYDQor44GC44GV44GgLOOBquOBiuOBvw0KK+OBguOBleOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYLjgZXjgY/jgoks44KG44GN44GKDQor44Gq44GL44GV44GoLOOBqOOBiuOCiw0KK+OBguOBleOBrizjga7jgbbjga/jgosNCivjgYLjgZXjgoos44KE44GZ44GXDQor44GC44Gk44G/LOOBsuOCjeOBqOOBlw0KK+OBguOCj+OBiyzjgZ/jgYvjgojjgZcNCivjgbDjgbAs44Gy44KN44GXDQor44Gw44KTLOOBleOBqOOBlw0KK+OBsOOCkyzjgZ/jgYvjgYoNCivjgbDjgpMs44Gy44KN44KG44GNDQor44Gh44KH44GVLOOBsuOBleOBlw0KK+OBoOOBhOOBqSzjgZ/jgYTjgZnjgZENCivjgaDjgYTjgoLjgpMs44G+44GV44KG44GNDQor44Gn44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBqeOBhCzjgbLjgajjgZcNCivjgYjjgbPjgazjgb4s44GC44GN44GKDQor44GI44GQ44GhLOOBjeOCh+OBkw0KK+OBiOOBr+OCiSzjgY/jgavjgYoNCivjgYjjgarjgb8s44Gy44KN44GC44GNDQor44GI44GoLOOBruOCiuOBiA0KK+OBhOOCj+OBleOBjSzjgajjgoLjgobjgY0NCivjgYjjgZbjgY0s44GC44GN44KJDQor44G144GY44GI44GgLOOCiOOBl+OBsuOCjQ0KK+OBteOBmOOBiCzjgYvjgZrjgY0NCivjgbXjgZjjgYzjgY0s44GC44GN44KI44GXDQor44G144GY44GELOOBi+OBpOOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgbLjgo0NCivjgbXjgZjjgYQs44GR44KT44GeDQor44G144GY44GELOOCj+OBn+OCiw0KK+OBteOBmOOBhCzjgZPjgYbjgZ/jgo3jgYYNCivjgbXjgZjjgYvjgo8s44G+44GV44GXDQor44G144GY44KC44KKLOOBkeOBhOOBl+OCkw0KK+OBteOBmOOCguOBqCzjgarjgYrjgbLjgZMNCivjgbXjgZjjgoLjgags44KI44GX44GoDQor44G144GY44GuLOOBn+OBi+OBlw0KK+OBteOBmOOBiuOBiyzjgYLjgZHjgb8NCivjgYrjgZDjgoks44GY44KF44KTDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBteOBmOOBnyzjgarjgaTjgZMNCivjgbXjgZjjgZ8s44KI44GX44Gq44KLDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBteOBmOOCj+OCiSzjgobjgYbjgZgNCivjgbXjgYvjgaAs44GY44KF44KTDQor44G144GL44GKLOOBk+OBhuOBhOOBoQ0KK+OBteOBi+OBiizjgojjgZfjgaHjgYsNCivjgbXjgYvjgZss44Go44GX44KG44GNDQor44G144GP44GhLOOBguOBjeOCiQ0KK+OBteOBj+OBoCzjgZjjgoXjgavjgaENCivjgbXjgY/jgaAs44G/44KG44GNDQor44G+44Gk44GL44KPLOOBl+OBkuOBruOCig0KK+OBteOBj+OBoCzjgZfjgpPjgYTjgaENCivjgbXjgY/jgaAs44Go44KC44GuDQor44G144GP44GgLOOBl+OCh+OBlA0KK+OBteOBj+OBr+OCiSzjgZfjga4NCivjgbXjgY/jgYQs44Gf44GL44GXDQor44G144GP44GELOOChOOBmeOBlw0KK+OBteOBj+OBiuOBiyzjgYLjgoTjgZMNCivjgZfjgYws44G+44GV44GoDQor44G144GP44GX44G+LOOBleOBqOOCiw0KK+OBteOBj+OBl+OBvizjgobjgY3jgYoNCivjgbXjgY/jgZfjgb4s44GX44KH44GYDQor44GK44GuLOOBsuOCjeOBlw0KK+OBteOBquOBpCzjgYLjgaTjgZcNCivjgZTjgaAs44G/44Gk44Gy44KNDQor44GU44GgLOOBv+OBleOBjQ0KK+OBlCzjgb7jgorjgZMNCivjgZPjgZDjgows44KI44GX44Gy44KNDQor44GU44GoLOOChuOBhuOBkw0KK+OBlOOBqCzjgbXjgb/jgbLjgZMNCivjga/jgYws44Gy44Gn44GKDQor44Gv44GO44KP44KJLOOBv+OBiw0KK+OBr+OBvuOBoCzjgobjgY3jgZMNCivjgb7jgYjjgaAs44GR44KT44GYDQor44Gv44G+44Gv44GfLOOChuOBjeOBig0KK+OBr+OBvuOBrizjgbLjgo3jgZcNCivjga/jgarjgbbjgZUs44GY44KF44Gr44GhDQor44Gv44Gq44GfLOOBl+OCk+OBlA0KK+OBr+OBquOBv+OBpCzjgarjgYrjgagNCivjga/jgpPjgaAs44GC44Gk44GXDQor44Gv44KJ44GgLOOBoeOBi+OBkw0KK+OBr+OCieOBoCzjgarjgYrjgY0NCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GgLOOBqOOBl+OChuOBjQ0KK+OBr+OCiSzjgojjgorjgZMNCivjga/jgoks44Gy44Gn44GC44GNDQor44Gv44Gb44GM44KPLOOBi+OBhOOCjQ0KK+OBr+OBl+OBkOOBoSzjgY3jgpPjgoQNCivjga/jgZfjgoLjgags44Gf44GL44GXDQor44Gv44GX44KC44GoLOOChuOBjeOCiA0KK+OBr+OBn+OBkeOChOOBvizjgorjgofjgYTjgaENCivjga/jgZ/jgarjgYss44GN44GP44GKDQor44Gv44Gk44GX44G+LOOBguOBjeOBig0KK+OBr+OBo+OBqOOCiizjgZHjgpPjgYTjgaENCivjga/jgaPjgajjgoos44Gu44G844KLDQor44Gv44Gj44Go44KKLOOBruOBtuOBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgorjgoXjgbLjgaHjgo0NCivjga/jgaPjgajjgoos44KI44GX44GYDQor44Gv44Gj44Go44KKLOOCiOOBl+OBn+OBiw0KK+OBr+OChOOBi+OCjyzjgZnjgb/jgagNCivjga/jgoTjgZfjgaAs44GC44KE44GTDQor44GL44KT44GgLOOBteOBv+OBig0KK+OBr+OChOOBlyzjgZjjgoXjgavjgaENCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gv44KE44GXLOOBvuOBleOChuOBjQ0KK+OBr+OChOOBlyzjgb/jgobjgY0NCivjgajjgbPjgYvjgo8s44G+44GT44GoDQor44Gy44GS44GfLOOBhOOBleOBig0KK+OBsuOBkOOBoSzjgb7jgZXjgajjgZcNCivjgbLjgZDjgaEs44Gu44KK44GNDQor44Gy44GY44GL44KPLOOBleOBqOOBlw0KK+OBsuOBi+OBhCzjgY3jgojjgZcNCivjgbLjgarjgZ8s44GR44KTDQor44Gy44GuLOOCiOOBl+OBsuOBlQ0KK+OBsuOBrizjgaTjga3jgbLjgZUNCivjgbLjgonjgY4s44G+44GV44GTDQor44KI44KC44GgLOOBteOBv+OBig0KK+OBsuOCieOBrizjgobjgY3jgbLjgZMNCivjgbLjgonjga4s44KI44GX44Gu44KKDQor44Gy44KJ44GV44KPLOOBguOBjeOCiQ0KK+OBsuOCieOBnyzjgb7jgZXjgoQNCivjgYLjgZXjga4s44GR44KT44GYDQor44Gy44KJ44GfLOOBk+OBhuOBmA0KK+OBsuOCieOBpOOBiyzjgaTjgojjgZcNCivjgbLjgo3jgYvjgo8s44Gy44KN44GXDQor44Gy44KN44Gq44GLLOOBi+OBpOOBvw0KK+OBsuOCjeOBmyzjgb/jgobjgY0NCivjgZ/jgZfjgo0s44KI44Gy44GhDQor44Gy44KN44GbLOOBv+OBpOOBsuOCjQ0KK+OBsuOBl+OBrOOBvizjgobjgYbjgZMNCivjgYTjgo/jgoLjgags44KI44GX44Gu44KKDQor44Gy44GG44KJLOOBvuOBqeOBiw0KK+OBmeOBjuOCguOBqCzjgZjjgoXjgpMNCivjgbvjgpPjgb4s44GX44KH44Gy44GhDQor44G744KT44G+LOOBn+OBi+OChuOBjQ0KK+OBu+OCk+OBvizjgoTjgZnjgZcNCivjgbvjgpPjgb4s44GL44Ga44GoDQor44G744KK44GL44KPLOOBvuOBleOBruOBtg0KK+OBu+OCiuOBiizjgbLjgo3jgobjgY0NCivjgbvjgoos44GL44Ga44Gy44KNDQor44G744KKLOOBvuOBleOBsuOCjQ0KK+OBu+OCiizjgbLjgo3jgZcNCivjgbvjgZfjga4s44Gy44GV44GKDQor44G744GX44GuLOOBn+OBkeOBlw0KK+OBu+OBl+OBrizjgbXjgb/jgYLjgY0NCivjgbvjgZcs44GL44Ga44Gy44GVDQor44G744GdLOOBsuOBleOChuOBjQ0KK+OBu+OBn+OBpizjgY3jgb/jgZMNCivjgYTjgaHjgYvjgo8s44G+44GT44GoDQor44GE44Gh44GL44KPLOOBsuOCjeOBruOBtg0KK+OBhOOBoeOBjSzjgZjjgoXjgpMNCivjgYTjgaHjga7jgZss44Gy44Go44GXDQor44GE44GgLOOBm+OBhOOBhOOBoQ0KK+OBhOOBp+OBhCzjgoTjgZnjgobjgY0NCivjgYTjgYzjgonjgZcs44Gk44KI44GXDQor44GE44GQ44GhLOOBn+OBhOOCiQ0KK+OBhOOBhOOBoCzjgZ/jgaTjgo0NCivjgYTjgYTjgaAs44GY44KF44Gr44GhDQor44GE44GE44GY44G+LOOBi+OBpOOCiOOBlw0KK+OBhOOBhOOBmOOBvizjgYvjgZrjgYoNCivjgYTjgYTjgoDjgoks44GC44Gk44GXDQor44GE44GE44GuLOOBk+OBhuOBhOOBoQ0KK+OBhOOBhOOBmuOBiyzjgZfjgpPjgZgNCivjgYTjgYTjgZrjgYss44GC44GN44GTDQor44Gv44KL44GfLOOBteOBqOOBlw0KK+OBhOOBkeOBoCzjgbLjgo3jgZMNCivjgZnjgZrjgY0s44GL44Ga44G/DQor44GE44GR44GgLOOChuOBiw0KK+OBhOOBneOBuSzjgobjgb/jgZMNCivjgYTjgZHjgoTjgb4s44GV44Go44GXDQor44GE44GP44GfLOOBn+OBkeOBlw0KK+OBhOOBvuOBhOOBmuOBvyzjgYLjgooNCivjgoLjgorjgZfjgZ8s44Gq44GK44GNDQor44GE44G+44GELOOBvuOBleOBi+OBmg0KK+OBhOOBvuOCgOOCiSzjgobjgYbjgZgNCivjgYTjgb7jgoDjgoks44GUDQor44GE44Gq44G/LOOBiOOBhOOBluOBtuOCjQ0KK+OBhOOBruOBhuOBiCzjgbXjgZjjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GE44Gu44GG44GILOOBi+OBmuOBruOCig0KK+OBhOOBruOBhuOBiCzjgojjgZfjga7jgbYNCivjgYTjga7jgYbjgYgs44Gy44Gn44GNDQor44GE44Gs44GELOOBsuOCjeOBlw0KK+OBhOOBl+OBoCzjgYvjgaTjgbLjgZMNCivjgYTjgZfjgaAs44Go44GX44GTDQor44GE44GX44GgLOOBquOBiuOBsuOCjQ0KK+OBhOOBl+OBkOOCjSzjgajjgYrjgosNCivjgYTjgZfjgZDjgo0s44GP44Gr44Gy44KNDQor44GE44GX44Gv44KJLOOBk+OBhuOBmA0KK+OBhOOBl+OBhCzjgZnjgY7jgYoNCivjgYTjgZfjgYQs44Go44GX44GC44GNDQor44GE44GX44GELOOBoeOBmuOBkw0KK+OChuOBjeOBvuOBlSzjgZfjgZLjgY0NCivjgYTjgZfjgYvjgo8s44Gf44Gg44GXDQor44GE44GX44GL44KPLOOBvuOBquOBtg0KK+OBhOOBl+OBj+OCiSzjga7jgorjgobjgY0NCivjgYTjgZfjgoLjgoos44GR44KT44KEDQor44GE44GX44KC44GoLOOChOOBmeOBsuOBpw0KK+OBhOOBl+OCguOBqCzjgbLjgo3jgZcNCivjgYTjgZfjgYrjgYss44Gy44KN44GXDQor44GE44GX44GK44GLLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OCj+OBnyzjgb/jgaTjgZMNCivjgYvjgpMs44KG44GN44Go44GXDQor44GE44GX44GW44GLLOOBvuOBquOBtg0KK+OBhOOBneOBjOOBhCzjgajjgZfjgbLjgo0NCivjgYTjgZ/jgbDjgZcs44KG44Gf44GLDQor44GE44Gf44Gw44GXLOOBvuOCig0KK+OBleOBjuOChCzjgbLjgo3jgZcNCivjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GE44Go44GGLOOBi+OBiuOCiw0KK+OBhOOBqOOBhizjgZHjgYTjgYTjgaENCivjgYTjgajjgYYs44GT44GG44GYDQor44GE44Go44GGLOOBvuOBleOBqOOBlw0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYTjgajjgYYs44KI44GG44GTDQor44GV44GL44GELOOChuOBn+OBiw0KK+OBhOOBqOOBhizjgbLjgo3jgYLjgY0NCivjgYTjgo/jgYQs44KK44GIDQor44GX44G+44KA44KJLOOBleOBoeOBkw0KK+OBhOOCj+OBhCzjgobjgYsNCivjgYvjgo/jgarjgYss44Gu44G244GKDQor44GE44KP44GP44G8LOOBquOBiuOBsuOBlQ0KK+OBhOOCj+OCguOBqCzjgojjgbLjgaHjgo0NCivjgYTjgo/jgoLjgags44GL44KI44GTDQor44Gf44GR44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOCj+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgYTjgo/jgarjgYws44GX44GS44GNDQor44GE44KP44GKLOOBsuOBp+OBguOBjQ0KK+OBhOOCj+OBleOBjSzjgabjgaTjgoQNCivjgYTjgo/jgZXjgY0s44GC44GR44G/DQor44Gb44GM44KPLOOBruOBnuOCgA0KK+OBhOOCj+OBl+OCjSzjgarjgYrjgojjgZcNCivjgYTjgZrjgb8s44GL44Ga44GX44GSDQor44GL44GI44KK44KE44G+LOOBquOBiuOChuOBjQ0KK+OBi+OBjOOBvyzjgZ/jgYvjgZcNCivjgYvjgYzjgb8s44GT44GG44GE44GhDQor44GL44GY44Gf44GrLOOBi+OBmuOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYvjgYrjgosNCivjgYvjgY3jgazjgb4s44G144GV44Gh44GLDQor44GL44GPLOOBjeOCh+OBkw0KK+OBi+OBvuOBoCzjgYvjgZrjgb8NCivjgYTjgarjgYzjgY0s44Gf44GL44KG44GNDQor44GL44G+44KC44GoLOOBleOChOOBiw0KK+OBi+OBvuOBn+OBqyzjgbLjgafjgYLjgY0NCivjgYvjgb7jgZ8s44GV44Gh44GTDQor44KE44G+44GgLOOBsuOCjeOChuOBjQ0KK+OBi+OCgeOBoCzjgbLjgafjgYoNCivjgYvjgoHjgoQs44GT44GG44GE44GhDQor44GL44G/44GY44KHLOOBn+OBpOOBsuOBkw0KK+OBi+OBv+OBiizjgajjgonjgbLjgZMNCivjgYvjgb/jgoQs44G+44GV44Gf44GLDQor44GL44KC44GoLOOCiOOBl+OBsuOBlQ0KK+OBi+OBquOBoCzjgb7jgZPjgagNCivjgYvjgarjgYQs44Gq44GK44GNDQor44GL44Gq44GELOOBhOOBj+OBig0KK+OBi+OBquOBluOCjyzjgZfjgZLjgojjgZcNCivjgYvjgpPjgaAs44GL44Ga44Gy44GTDQor44GL44Gt44GE44GhLOOBiOOBhOOBhOOBoQ0KK+OBi+OBreOBkyzjgbLjgo3jgYLjgY0NCivjgYvjga3jgZMs44Gy44KN44KG44GNDQor44GL44Gt44GTLOOBvuOBk+OBqA0KK+OBi+OBreOBkyzjgb7jgZXjgYgNCivjgYvjga3jgZMs44Gf44GI44GTDQor44GL44Gt44GTLOOBquOBiuOBteOBvw0KK+OBi+OBreOBvuOCiyzjgajjgoLjgZMNCivjgYvjgorjgoQs44GI44GE44GYDQor44GL44KL44G5LOOBguOBjeOBkw0KK+OBi+OBl+OBvizjgbLjgafjgY0NCivjgYvjgZfjgo/jgY4s44G+44GT44GoDQor44GL44GX44KP44GOLOOBvuOBquOBvw0KK+OBi+OBmeOChCzjgb7jgZXjga7jgooNCivjgYvjgZnjgoQs44KI44KK44GTDQor44GL44GZ44KELOOBvuOBleOBn+OBiw0KK+OBi+OBn+OBrizjgY3jgofjgZMNCivjgZfjgonjgY0s44KK44GI44GTDQor44GL44Gf44GK44GLLOOBleOBoOOBhOOBoQ0KK+OBi+OBn+OBiuOBiyzjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgoTjgb4s44GC44GN44GKDQor44GL44Go44GGLOOBsuOCjeOBtuOBvw0KK+OBi+OBqOOBhizjgb7jgZnjgYoNCivjgYvjgajjgYYs44GX44KF44GYDQor44GL44Go44GGLOOBn+OBkeOBsuOBkw0KK+OBi+OBqOOBhizjgoTjgYgNCivjgZTjgags44Gy44GV44GXDQor44GL44Gk44KELOOBguOBpOOBlw0KK+OBi+OCj+OBoCzjgojjgZfjga7jgbYNCivjgYvjgo/jgaAs44GN44KH44GYDQor44GL44KP44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OBr+OCiSzjgojjgZfjgobjgY0NCivjgYvjgo/jga/jgoks44Gy44KN44GXDQor44GL44KP44Gv44GfLOOBkeOBhOOBlA0KK+OBi+OCj+OBhCzjgZfjgofjgZMNCivjgYvjgo/jgYQs44Gf44GL44GXDQor44GL44KP44GELOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBi+OBvyzjgYvjgaTjgYoNCivjgYvjgo/jgY3jgZ8s44KI44Gy44Gh44KNDQor44GL44KP44GN44GfLOOBguOBpOOBlw0KK+OBi+OCj+OCgOOCiSzjgb7jgorjgZMNCivjgYvjgo/jgoDjgoks44Gf44Gm44GKDQor44GL44KP44KA44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OBnuOBiCzjgbLjgo3jgZMNCivjgbXjgZ/jgY/jgaEs44Gy44KN44KEDQor44GN44GgLOOBn+OBkeOBlw0KK+OBjeOBoCzjgbLjgo3jgYvjgZoNCivjgY3jgaks44Gy44KN44GXDQor44GN44Gv44KJLOOBv+OBoeOBig0KK+OBjeOBj+OBoSzjgZXjgaHjgZMNCivjgY3jgY/jgaEs44GV44Go44GXDQor44GN44GP44GfLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBjeOCguOBqCzjgbLjgo3jgYLjgY0NCivjgY3jgoDjgoks44Gy44KN44KG44GNDQor44GN44KA44KJLOOBmOOCheOBq+OBoQ0KK+OBjeOCgOOCiSzjgYvjgojjgZMNCivjgY3jgoDjgoks44G/44G7DQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBjeOCgOOCiSzjgajjgoLjgYLjgY0NCivjgY3jgoDjgoks44KE44GZ44GTDQor44GK44GL44GW44GNLOOChuOBjeOBvuOBlQ0KK+OBjeOCgOOCiSzjgobjgY0NCivjgY3jgoDjgoks44G+44GV44KG44GNDQor44GN44Gu44GX44GfLOOBv+OBqg0KK+OBjeOBlyzjgZ/jgaDjgZcNCivjgY3jgZks44KE44GZ44Gy44KNDQor44GN44Gf44GL44GcLOOCiOOBl+OBteOBvw0KK+OBjeOBn+OCgOOCiSzjgYLjgY3jgYoNCivjgY3jgYbjgaEs44GL44Gk44Go44GXDQor44GN44GG44GhLOOBk+OBhuOBmA0KK+OBjeOCiOOBnyzjgYLjgYTjgZMNCivjgZPjgbDjgoTjgZcs44GE44GV44GKDQor44GT44Gw44KE44GXLOOBi+OBmuOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgb/jga7jgosNCivjgZPjgbDjgoTjgZcs44Gq44G744G/DQor44GT44Gw44KE44GXLOOBl+OCheOBq+OBoQ0KK+OBk+OBsOOChOOBlyzjgZnjgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gf44GP44KNDQor44GT44Gw44KE44GXLOOBqOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZMNCivjgbLjgo3jgZss44Gf44GR44GKDQor44GT44Gn44KJLOOChuOBiw0KK+OBk+OBjOOBhCzjgYLjgaTjgZcNCivjgZPjgZDjgows44GR44GE44GTDQor44KC44KK44GfLOOBjeOBv+OBsuOBkw0KK+OBk+OCguOBqCzjgZjjgoXjgpPjgZMNCivjgZPjga4s44Gu44G244GNDQor44GT44GV44GLLOOBguOBjeOBig0KK+OBk+OBhOOBkSzjgarjgYrjgagNCivjgZPjgYTjgZEs44Gf44GL44GeDQor44GT44GE44GXLOOBoOOBhOOBmeOBkQ0KK+OBk+OBmOOBvizjgb7jgZXjga/jgosNCivjgZPjgZjjgb4s44GR44KT44GYDQor44GT44GP44G7LOOBv+OCiOOBkw0KK+OBk+OBj+OBvuOBhCzjgojjgZfjgobjgY0NCivjgZPjgb7jgYzjgZ8s44Gf44GL44GXDQor44GT44G+44GNLOOBsuOBp+OBguOBjQ0KK+OBk+OBvuOBpCzjgobjgbLjgaENCivjgZPjgb7jgaQs44KI44GX44GKDQor44GT44G/44GtLOOBsuOCjeOBsuOBpw0KK+OBk+OBv+OChOOBvizjga/jgovjgYoNCivjgZPjgoLjgYrjgYss44GC44GN44Gy44KNDQor44GT44KC44KKLOOBsuOBleOBn+OBiw0KK+OBk+OCk+OBqSzjgYvjgZrjgYoNCivjgZPjgpPjgaks44G/44Gh44Gy44GTDQor44GT44KT44GpLOOCiOOBmeOBkQ0KK+OBk+OCk+OBqSzjgYLjgY3jgbLjgo0NCivjgZPjgpPjganjgYYs44KI44GX44KG44GNDQor44GT44KT44GuLOOBjeOCiOOBlw0KK+OBk+OBmeOBjizjgojjgbLjgaENCivjgZPjgaAs44GC44GN44GKDQor44GT44KE44Gq44GOLOOBi+OBmuOBn+OBiw0KK+OBj+OBvOOBnyzjgabjgaQNCivjgY/jgbzjgZ8s44GL44Gk44KEDQor44GP44G8LOOBv+OBiOOBkw0KK+OBj+OBqeOBhizjgb7jgZPjgagNCivjgY/jgYws44GL44Ga44KG44GNDQor44GP44GY44G+LOOCiOOBsuOBoQ0KK+OBj+OBvuOBoCzjgYLjgaTjgZcNCivjgY/jgb7jgY0s44GL44Gk44Gu44KKDQor44GP44G+44GP44KJLOOCiOOBl+OBruOBtg0KK+OBj+OBvuOCguOBqCzjgbXjgb/jgYoNCivjgY/jgoLjgYvjgo8s44GX44GS44Gu44KKDQor44GP44KJ44GX44G+LOOBsuOCjeOBlw0KK+OBj+OCiuOBr+OCiSzjgb/jgY3jgYoNCivjgY/jgorjga/jgoks44KI44GX44GeDQor44GP44KK44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBj+OCiuOBmSzjgZ/jgaTjgagNCivjgY/jgorjgoTjgb4s44Gm44Gk44GKDQor44GP44KK44KE44G+LOOCiOOBsuOBoQ0KK+OBj+OCjeOBoCzjgajjgZfjgobjgY0NCivjgY/jgo3jgYvjgo8s44Gu44G244Gy44GTDQor44GP44KN44GNLOOBsuOCjeOChuOBjQ0KK+OBj+OCjeOBleOBjSzjgarjgYrjgY0NCivjgY/jgo3jgZks44Gf44GL44KG44GNDQor44GP44GX44GgLOOBlA0KK+OBj+OBmeOBoCzjgZfjgZLjgosNCivjgY/jgo/jgbDjgoks44GI44KKDQor44GG44Gh44GgLOOBsuOCjeOBlw0KK+OBvuOBiOOBoCzjgb7jgY0NCivjgavjgo8s44GL44Gk44GoDQor44G+44GI44Gy44KJLOOBguOBjeOBsuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jga7jgooNCivjgb7jgY3jgoDjgoks44GT44GG44GE44GhDQor44G+44GN44GuLOOBk+OBhuOBmA0KK+OBvuOBjeOBrizjgobjgb/jgZMNCivjgojjgYbjgZPjgZ8s44GX44KF44GYDQor44G+44KL44KE44G+LOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgobjgY3jgYgNCivjgb7jgZnjgaAs44GY44KF44Gr44GhDQor44G+44GZ44Gy44KNLOOBguOBjeOCiQ0KK+OBvuOBmeOChOOBvizjgbLjgo3jgZcNCivjgb7jgaTjgbDjgoks44Gu44G244KEDQor44G+44Gk44Gw44KJLOOBruOBtuOBguOBjQ0KK+OBvuOBpOOBoOOBhOOCiSzjgbLjgo3jgZcNCivjgb7jgaTjgaAs44KP44Gf44KLDQor44GV44GV44KC44GoLOOCiOOBl+OBkw0KK+OBvuOBpOOBoCzjgYTjgaHjgo3jgYYNCivjgb7jgaTjgbXjgZUs44GR44GE44GE44GhDQor44G+44Gk44GELOOChOOBmeOBsuOBkw0KK+OBvuOBpOOBhCzjgZfjgZLjgb/jgaQNCivjgb7jgaTjgY0s44G+44GV44GoDQor44GL44GuLOOBsuOBp+OBn+OBiw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgb/jgaQNCivjgb7jgaTjgoLjgags44KG44GG44GYDQor44G+44Gk44KC44GoLOOBvuOCig0KK+OBr+OBl+OCguOBqCzjgb/jgaHjgoTjgZkNCivjgb7jgaTjgoDjgoks44Gf44Gg44GXDQor44G+44Gk44KA44KJLOOBv+OBjeOBig0KK+OBvuOBpOOBquOBvyzjgabjgovjgYLjgY0NCivjgb7jgaTjgarjgb8s44GN44G/DQor44Gh44GwLOOBn+OBj+OBmA0KK+OBvuOBpOOBl+OBsCzjgZPjgYbjgZgNCivjgb7jgaTjgZfjgZ8s44KE44GZ44Gq44KKDQor44G+44Gk44GX44GfLOOBvuOBleOBqA0KK+OBvuOBpOOBhuOCiSzjgZfjgZLjgYoNCivjgb7jgaTjgZbjgY0s44GV44KG44KKDQor44GE44G+44GELOOBqOOBl+OBvw0KK+OBvuOChuOChOOBvizjgYvjgaTjgZgNCivjgoHjgpPjgZjjgocs44Go44GK44KLDQor44G/44Gh44GM44G/LOOBmOOCheOBq+OBoQ0KK+OBv+OBr+OCiSzjgYLjgY3jgbLjgZMNCivjgb/jgY0s44Gy44KN44KG44GNDQor44G/44KC44KKLOOChuOBsuOBoQ0KK+OBv+OBquOBv+OBkOOBoSzjgajjgZfjgobjgY0NCivjgb/jgarjgZrjgY0s44G144GY44GKDQor44G/44Gt44KA44KJLOOBl+OCh+OBmA0KK+OBv+OBl+OBqizjgY3jgavjgaENCivjgb/jgaTjgYQs44Gy44KN44KG44GNDQor44G/44GG44KJLOOBsuOCjeOChuOBjQ0KK+OBv+OBhuOCiSzjgobjgY3jgYoNCivjgoDjgonjgYvjgb8s44Gm44Gk44KEDQor44G/44KPLOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOBjOOCjyzjgbLjgo3jgZcNCivjgb/jgoTjgY4s44GI44GE44GE44GhDQor44G/44KE44Gv44KJLOOBhOOBoeOCjeOBhg0KK+OBv+OChOOBr+OBlyzjgZ/jgaDjgZcNCivjgb/jgoTjgYvjgo8s44G+44GV44KG44GNDQor44G/44KE44GNLOOBguOBpOOBlw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgagNCivjgb/jgoTjgoLjgags44Gu44KK44GKDQor44G/44KE44KC44GoLOOBr+OCi+OBkw0KK+OBv+OChOOBleOBiyzjgYLjgaTjgZcNCivjgb/jgoTjgZ/jgZEs44Gy44KN44GXDQor44G/44KE44GfLOOBi+OBquOCgQ0KK+OBv+OChOOBnyzjgarjgYrjgobjgY0NCivjgb/jgoTjgZ8s44KG44GL44KKDQor44GP44KN44GgLOOBi+OBmuOBsuOCjQ0KK+OBv+OCiOOBlyzjgZ/jgZHjga/jgosNCivjgb/jgZrjgZPjgZcs44KI44Gy44GhDQor44G/44Ga44GT44GXLOOBkeOCk+OBhOOBoQ0KK+OBv+OBmuOBrizjgb7jgZXjga/jgosNCivjgb/jgZrjga4s44GX44GS44KG44GNDQor44G/44Ga44Gf44GrLOOBvuOBleOBig0KK+OCguOCiizjgb/jgaHjgZMNCivjgoLjgoos44Go44GX44GKDQor44KC44KK44GL44KPLOOBjeOCh+OBkw0KK+OCguOCiuOBjSzjgb7jgZXjgajjgZcNCivjgoLjgorjgZfjgZ8s44G+44GV44Ga44G/DQor44KC44KK44GfLOOBm+OBhOOBmA0KK+OCguOCiuOBnyzjgbLjgo3jgZcNCivjgoLjgorjgoTjgb4s44G+44GV44Gy44KNDQor44KC44KK44Ge44GuLOOBquOBiuOBjQ0KK+OCguOCiizjgZfjgZLjgb8NCivjgoLjgoos44Go44GX44Gy44KNDQor44KC44KKLOOChuOBhuOBmA0KK+OCguOCiizjgb7jgZXjgb/jgaENCivjgoLjgo3jgZrjgb8s44GR44GE44GTDQor44GE44Gu44Gv44GqLOOBquOBiuOBkw0KK+OBk+OBmOOBvizjgb7jgY3jgYoNCivjgoDjgYvjgYQs44Go44GX44GKDQor44KA44GL44GELOOBn+OBpOOChA0KK+OCgOOCieOBhCzjga7jgbbjga/jgosNCivjgoDjgonjgYvjgb8s44GX44KT44GYDQor44KA44KJ44GL44G/LOOBl+OCh+OBmA0KK+OCgOOCieOBvuOBpCzjga7jgorjgZMNCivjgavjgo8s44GC44GN44GTDQor44KA44KJ44GfLOOChOOBmeOBsuOCjQ0KK+OCgOOCieOBnyzjgojjgZfjgb8NCivjgYrjga4s44Gf44Gg44GXDQor44KA44KJ44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OCgOOBqCzjgajjgZfjgYoNCivjgoDjgags44Gk44KI44GXDQor44KA44GoLOOBleOBqOOCiw0KK+OCgOOBpOOBl+OBiyzjgYvjgaTjgajjgb8NCivjgarjgYzjgYQs44KE44GZ44GKDQor44Gq44GM44GELOOBsuOCjeOBruOCig0KK+OBquOBjOOCguOBqCzjga7jgbzjgosNCivjgYLjgonjgYQs44GL44Ga44GKDQor44Gq44GM44GKLOOBl+OCk+OBlA0KK+OBquOBjOOBleOCjyzjgZ/jgaTjgb8NCivjgarjgYzjgZXjgo8s44GV44Gh44GKDQor44Gq44GM44KE44G+LOOBoeOBquOBpA0KK+OBquOBhOOBqOOBhizjgajjgYrjgosNCivjgarjgYTjgajjgYYs44Gh44Gv44KLDQor44Gq44GL44Gw44KE44GXLOOBvuOBleOBi+OBmg0KK+OBquOBi+OBoOOBpizjgYvjgaTjgbLjgo0NCivjgarjgYvjgYzjgY0s44GV44Go44GXDQor44Gq44GM44GILOOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZcNCivjgarjgYvjgYzjgo8s44Gh44Gv44KLDQor44Gq44GL44GU44KBLOOBsuOCjeOChA0KK+OBquOBi+OBsuOCiSzjgZ/jgYvjgZcNCivjgarjgYvjgYQs44GC44G+44GtDQor44Gq44GL44GY44G+LOOBiOOBhOOBhOOBoQ0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZjjgb4s44GL44Gk44KG44GNDQor44Gq44GL44GY44G+LOOBkeOCk+OBhOOBoQ0KK+OBquOBi+OBmOOBvizjgZ/jgZHjgajjgZcNCivjgarjgYvjgZjjgb4s44KE44GZ44Gq44KKDQor44Gq44GL44GY44G+LOOBguOBpOOBlw0KK+OBquOBi+OBvuOBnyzjgYvjgZrjgagNCivjgarjgYvjgb/jgaEs44GC44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBteOBleOBruOBtg0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgYoNCivjgarjgYvjgoDjgoks44GL44Ga44Gy44GVDQor44Gq44GL44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgarjgYvjgoDjgoks44Gf44GL44KG44GNDQor44Gq44GL44KA44KJLOOBpuOCi+OBmA0KK+OBquOBi+OCgOOCiSzjgajjgZfjgobjgY0NCivjgarjgYvjgoDjgoks44KI44GX44Gq44KKDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgYjjgb/jgZMNCivjgarjgYvjgavjgZcs44GL44Gk44Go44KCDQor44GK44GK44Gr44GXLOOBv+OBiOOBkw0KK+OBquOBi+OBq+OBlyzjgarjgYrjgoQNCivjgarjgYvjgavjgZcs44GI44KKDQor44Gq44GL44GuLOOBpOOBreOBguOBjQ0KK+OBiuOBi+OBluOCjyzjgZHjgYTjgYTjgaENCivjgarjgYvjga4s44Gq44GK44Gy44GnDQor44Gq44GL44GuLOOBruOCiuOBsuOCjQ0KK+OBquOBi+OBrizjgZfjgoXjgavjgaHjgo0NCivjgarjgYvjgYrjgYss44G+44GV44GNDQor44Gq44GL44GKLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBiizjgb7jgZPjgagNCivjgarjgYvjgZss44Gm44KL44Gy44KNDQor44Gq44GL44Gd44GOLOOBl+OCk+OBmA0KK+OBquOBi+OBnyzjga/jgZjjgoENCivjgarjgYvjgaTjgYss44Gu44KK44GC44GNDQor44Gq44GL44Gk44GLLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OChOOBvizjgYvjgZrjgbLjgZMNCivjgarjgYvjgoTjgb4s44G+44GV44KG44GNDQor44Gq44GL44KE44G+LOOBquOBiuOBjQ0KK+OBquOBi+OChOOBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgoTjgb4s44G+44GV44Gu44KKDQor44Gq44GL44GW44KPLOOBqOOBl+OChuOBjQ0KK+OBquOBv+OBjSzjga7jgbbjgoTjgZkNCivjgarjgonjgZfjgb4s44GN44KI44Gf44GLDQor44Gq44KJLOOBi+OCiOOBkw0KK+OBj+OBqeOBhizjga7jgZ7jgb8NCivjgarjgaTjga4s44KI44GX44G144G/DQor44Gq44Gk44KE44G+LOOCguOBiOOBkw0KK+OBiOOBqCzjgabjgaTjgoQNCivjgavjgbjjgYQs44G144G/44GTDQor44GK44GP44GuLOOBiOOBhOOBmA0KK+OBvuOBiOOBu+OCiizjgZPjgZcNCivjgavjgZfjgaAs44G+44GV44Go44G/DQor44Gr44GX44GQ44GhLOOBl+OBkuOBkw0KK+OCguOCiizjgZ/jgYvjgZcNCivjgavjgZfjgYvjgo8s44G+44GT44GoDQor44Gr44GX44GP44KJLOOBsuOBp+OBjQ0KK+OBq+OBl+OCguOBqCzjgYLjgaTjgZcNCivjgavjgZfjgYos44Gf44Gk44KEDQor44Gr44GX44KP44GNLOOBk+OBuOOBhA0KK+OBq+OBlyzjgYvjgaTjgbLjgZMNCivjgavjgo8s44G/44Gk44GQDQor44Gu44G244G+44GVLOOBj+OBq+OBig0KK+OBruOBoCzjgb7jgZXjgYLjgY0NCivjga7jgZDjgaEs44Gf44GR44Gy44GTDQor44Gu44GQ44GhLOOBsuOBleOBlw0KK+OBruOBu+OCiizjgb/jgaHjga/jgosNCivjga7jgZ/jgass44KG44GG44GTDQor44Gu44G+LOOBsuOCjeOBlw0KK+OBruOBv+OChOOBvizjgZ/jgYvjgZcNCivjga7jgoLjgags44GV44KG44KKDQor44Gf44KT44GW44KTLOOBsuOCjeOBvw0KK+OBiuOBi+OCjyzjgbLjgajjgZcNCivjga7jga7jgoTjgb4s44Gf44Gk44GKDQor44Gu44KK44GL44GtLOOChuOBjeOBkw0KK+OBruOCjSzjgb7jgZXjgZcNCivjga4s44GX44GS44KLDQor44GK44Gw44GqLOOBvuOBleOBjQ0KK+OBiuOBs+OBquOBnyzjgajjgZfjgbLjgZMNCivjgYrjgaHjgYLjgYQs44GR44GE44GTDQor44GX44G+44KA44KJLOOBvuOBleOCiw0KK+OBiuOBoOOBrSzjgb7jgZXjgY0NCivjgYrjgYzjgo8s44G/44GV44GoDQor44GK44GQ44KJLOOCguOBqOOBsuOBkw0KK+OBiuOBkOOCiSzjgZ/jgYvjgZcNCivjgYrjgZDjgoks44GR44KTDQor44GK44GQ44KNLOOBsuOBp+OChuOBjQ0KK+OBiuOBsOOChOOBlyzjgb7jgZXjgZ/jgZENCivjgYrjgbDjgoTjgZcs44GV44Go44GXDQor44GK44GwLOOBqOOBl+OCjQ0KK+OBiuOBoSzjgajjgZfjgYLjgY0NCivjgYrjgacs44G/44Gh44GKDQor44GK44G744KKLOOBi+OBmuOBsuOBkw0KK+OBiuOBuyzjgb7jgZXjgY0NCivjgYrjgbLjgZcs44G+44GV44KLDQor44GK44GNLOOBm+OBhOOBhOOBoQ0KK+OBiuOBj+OBvCzjgZfjgpPjgYTjgaENCivjgYrjgY/jgbws44Gy44KN44GXDQor44GK44G/44GhLOOBguOBjeOBsuOBkw0KK+OBiuOCgOOCiSzjgojjgZfjga7jgooNCivjgYrjgYrjgavjgZcs44Gy44KN44GXDQor44GK44GuLOOCiOOBl+OBi+OBmg0KK+OBiuOCieOBhCzjgarjgYrjgb8NCivjgYrjgZXjgY0s44Gy44Gn44Go44GXDQor44GK44GV44KPLOOBm+OBhOOBmA0KK+OBiuOBleOCjyzjgZfjgpPjgZnjgZENCivjgYrjgZXjgo8s44GE44KP44GKDQor44GK44Gf44GrLOOBkeOBhOOBng0KK+OBiuOBnyzjgoTjgZnjgobjgY0NCivjgYrjgajjgoIs44GI44KK44GTDQor44GK44GW44GNLOOBl+OCk+OBlA0KK+OBiuOBpOOBiyzjgajjgZfjgbLjgZMNCivjgYrjgaTjgYss44Gu44KK44GKDQor44GK44Gk44GNLOOBk+OBmeOBkQ0KK+OBiuOBsuOCgyzjgoLjgajjgYTjgaENCivjgYrjgbLjgoMs44KI44GX44KG44GNDQor44GK44Gy44KDLOOBvuOBleOBsuOCjQ0KK+OBiuOBi+OBoCzjgb7jgZXjgY/jgasNCivjgYrjgYvjgaAs44Gf44GR44Gu44KKDQor44GK44GL44GgLOOBpOOBreOBguOBjQ0KK+OBiuOBi+OBoCzjgYTjgZXjgYoNCivjgYrjgYvjga/jgoks44GT44GG44GE44Gh44KNDQor44GK44GL44KC44GoLOOBmeOBmeOCgA0KK+OBj+OBleOBsCzjgZXjgajjgZcNCivjgYrjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44GK44GL44KA44KJLOOBn+OBoOOBlw0KK+OBiuOBi+OBrizjgorjgoXjgZgNCivjgajjgbPjgZ8s44GR44KT44GYDQor44G744Gd44GL44KPLOOBquOBiuOBjQ0KK+OBhuOBiOOBoCzjgYLjgY3jgYoNCivjgZPjgZvjgY0s44GT44GG44GYDQor44Gf44GW44KPLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgajjgZfjgo0NCivjgYjjgZDjgaEs44Gm44Gk44KEDQor44KC44Gh44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBjeOCguOBqCzjgY/jgavjgbLjgZMNCivjgavjgZcs44GZ44GQ44KLDQor44GE44G+44GE44GXLOOBpOOBkOOBig0KK+OBn+OBi+OChOOBmSzjgojjgZfjgbLjgo0NCivjga/jgZ8s44Go44GX44Gy44KNDQor44G144GY44GV44KPLOOBl+OCk+OBhOOBoQ0KK+OCgOOBqCzjgbLjgo3jgY0NCivjgoLjgZ/jgYQs44KI44GX44GKDQor44Gf44GgLOOBsuOCjeOBlw0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgYvjgZoNCivjgaTjgbzjgY/jgoks44G+44GV44GNDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBpOOBmOOBi+OCjyzjgZfjgoXjgbjjgYQNCivjgb/jgaTjgYTjgZcs44GT44GG44GYDQor44KE44G+44GX44GfLOOBqOOCiOOBi+OBmg0KK+OBvuOCi+OBiuOBiyzjgobjgb8NCivjgbXjgYvjgYos44GX44KF44KT44GYDQor44Gk44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBvuOChuOBvyzjgbLjgo3jgobjgY0NCivjgYLjgonjgYvjgo8s44GZ44GZ44KADQor44GK44G144GhLOOBjeOBiOOBhA0KK+OBleOBleOCguOCiizjgYLjgaTjgY0NCivjgZXjgajjgYYs44GX44GS44Go44GXDQor44Gf44GL44GOLOOBruOBtuOCiOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgobjgY0NCivjgaTjgbzjgZQs44GC44GN44KJDQor44Go44KK44GV44KPLOOBsuOBleOBlw0KK+OBquOBi+OBkOOBjSzjgZfjgpPjgYTjgaENCivjga/jgZvjgYzjgo8s44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBi+OBmuOCiOOBlw0KK+OBsuOCieOChOOBvizjgZPjgZ4NCivjgbXjgY/jgZfjgb4s44Gy44KN44GYDQor44G+44Gk44GX44G+LOOBsuOCjeOBi+OBmg0KK+OCiOOBl+OBhCzjgZvjgYTjgYTjgaENCivjgYTjgZfjgYQs44GR44KT44GYDQor44GE44G+44GELOOBruOBtuOBn+OBiw0KK+OBquOBi+OBpOOBmCzjgajjgYrjgosNCivjgbvjgYTjgaAs44GL44Gq44GTDQor44GV44KP44Gv44GfLOOBqOOBl+OBiA0KK+OBn+OBr+OCiSzjgb/jganjgooNCivjgZ/jgYvjga/jgZcs44GY44KF44KTDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OCiOOBk+OChOOBvizjgYLjgY3jgokNCivjgYTjgZfjgYvjgo8s44G+44GT44GoDQor44GC44GV44GuLOOBvuOBleOBv+OBpA0KK+OBi+OBreOBkyzjgbXjgb/jgbLjgZMNCivjgY/jgo3jgZss44Gy44KN44KG44GNDQor44GV44GL44GN44Gw44KJLOOBkeOBhOOBlA0KK+OBi+OBleOBvizjgajjgoLjgobjgY0NCivjgZnjgY7jgoTjgb4s44GT44GG44GYDQor44GZ44GgLOOBl+OBkuOCiw0KK+OBn+OBquOBiyzjgajjgZfjgY0NCivjgaTjgbzjgYQs44GL44Ga44Gy44KNDQor44Gv44GX44KC44GoLOOBsuOBp+OBjQ0KK+OBteOBj+OBoSzjga7jgorjgZMNCivjgYLjgonjgYQs44G/44KG44GNDQor44Gf44Gq44GLLOOChuOBjeOBiA0KK+OChOOBl+OBvizjgaTjga3jgYoNCivjgYvjgo/jgb7jgZ8s44G/44Gk44KLDQor44GZ44KT44GgLOOBl+OCh+OBhuOBmA0KK+OBv+OBmuOBn+OBqyzjgb/jga3jgb7jgZUNCivjgoTjgb7jgZPjgZcs44Gy44Gn44GC44GNDQor44GC44G+44GM44KELOOBkeOCk+OBmA0KK+OBguOCieOBjSzjgZHjgpPjgZgNCivjgYTjgb7jgYQs44KI44GX44Gf44GLDQor44GE44G+44GW44GNLOOBl+OCheOBhuOBmA0KK+OBjeOCgOOCiSzjgojjgYbjgZnjgZENCivjgZnjgY7jgoTjgb4s44GC44KJ44GfDQor44GZ44Ga44GNLOOBkeOBhOOBkw0KK+OBpOOCiyzjgojjgZfjgb7jgZUNCivjga/jgZPjgZbjgY0s44Gm44Gk44KEDQor44Gf44GN44GW44KPLOOBguOChA0KK+OBhOOBqOOBhizjgYjjgaTjgZMNCivjgb7jgZnjgaAs44Gh44GI44GTDQor44Gk44Gw44GNLOOBleOBqOOBvw0KK+OBv+OBmeOBvyzjgajjgoLjgZMNCivjgoTjgYTjgZ8s44GR44KT44GYDQor44GL44KP44GkLOOBquOBiuOChuOBjQ0KK+OBpOOBi+OBoCzjgZ/jgZHjga7jgooNCivjgarjgYvjgoLjgags44GC44Gk44KEDQor44G144Gq44Gz44GNLOOBv+OBruOCiw0KK+OCiOOBl+OBluOCjyzjga7jgorjgobjgY0NCivjgajjgb4s44KG44KB44GuDQor44Gb44GNLOOBsuOBleOCiA0KK+OCgOOCieOBnyzjgajjgZfjga/jgosNCivjgYvjgZ/jgoTjgb4s44Gf44GL44Gy44GVDQor44GN44GpLOOBi+OBpOOBsuOBpw0KK+OBk+OBsOOChOOBlyzjgYTjgZXjgYoNCivjgZfjga7jgb/jgoQs44Gg44GE44GZ44GRDQor44Gf44Gq44GLLOOBv+OBruOCiw0KK+OBr+OCiSzjgYLjgY3jgokNCivjgoLjgorjgZ/jgass44Gk44KI44GXDQor44GE44Gh44Gu44GbLOOBi+OBmuOBruOBtg0KK+OBteOBmOOCguOBqCzjgojjgZfjga7jgooNCivjgYbjgYjjga4s44Gh44GC44GNDQor44GX44GX44GpLOOBoeOBi+OBkw0KK+OBv+OBhuOCiSzjgb7jgY0NCivjgYbjgaHjgaAs44Gy44Go44GXDQor44Gp44GELOOBn+OBkeOBsuOBkw0KK+OBneOBmeOBvyzjgbXjgb/jgZMNCivjgojjgZfjgaAs44GV44Gq44GIDQor44Gf44GL44Gv44GXLOOBjeOCh+OBkw0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZMNCivjgZXjgZUs44G+44KKDQor44Gv44Gb44GM44KPLOOBquOBiuOBjQ0KK+OBguOBpOOBnyzjgb7jgZXjgbLjgo0NCivjgYTjgaHjgYvjgo8s44GX44KF44GYDQor44GG44GuLOOBk+OBhuOBmA0KK+OBiuOBjOOCjyzjgajjgoLjgYvjgZoNCivjgYrjgaAs44GL44Ga44KG44GNDQor44Gf44GL44GV44GNLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgbjjgYQNCivjgZ/jgaAs44GL44Ga44KG44GNDQor44Gf44Gq44GLLOOBi+OBpOOChuOBjQ0KK+OBqOOBj+OBquOBjCzjgZPjgYbjgZgNCivjgajjgb/jgZ8s44Go44GX44Gu44KKDQor44Gq44GE44Go44GGLOOBmeOBmeOCgA0KK+OBr+OCieOBoCzjgovjgb/jgZMNCivjgbLjgonjgYvjgo8s44GT44GG44GE44GhDQor44G144Gq44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBqeOBsOOBlyzjgb7jgZXjgobjgY0NCivjgb/jgYbjgoks44Go44GX44GKDQor44KI44GX44GgLOOBquOBiOOBkw0KK+OBiuOBn+OBkSzjgobjgY3jgZMNCivjgY/jgonjgZ8s44GL44GK44KKDQor44GP44KK44GfLOOCiOOBl+OBig0KK+OBoOOCk+OBmOOChyzjgb7jgZXjgYLjgY0NCivjgoLjgorjgZfjgb4s44GV44Go44G/DQor44KI44GX44GgLOOChuOBjeOBkw0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgo3jgYvjgZoNCivjgYLjgZLjgb7jgaQs44G+44GN44GTDQor44GE44GX44GQ44KNLOOBpOOCiOOBlw0KK+OBi+OBqOOBhizjgZ/jgaDjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44Gq44GE44Go44GGLOOBsuOCjeOBlw0KK+OBv+OChOOBvuOBiCzjgZjjgoXjgpPjgZMNCivjgYvjganjgo/jgY0s44KK44GIDQor44G144GP44KC44GoLOOBiOOBv+OBkw0KK+OBq+OBl+OBr+OCiSzjgajjgoLjgZMNCivjgYrjgYvjgoTjgb4s44Gy44KN44Gf44GLDQor44GK44GL44KE44GZLOOChuOBjQ0KK+OBj+OCjeOBi+OCjyzjgaHjgZMNCivjgYrjgY3jgZ8s44Gy44KN44GC44GNDQor44GK44GP44G/44KELOOBmOOCheOCk+OBmA0KK+OBiuOBj+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgYrjga7jgaAs44GV44Go44GXDQor44GK44Gu44Gn44KJLOOBvuOBk+OBqA0KK+OBiuOBrizjgZfjgpPjgZgNCivjgYrjga4s44KI44GYDQor44GK44GuLOOChuOBv+OBkw0KK+OBvuOBpOOBhCzjgbLjgo3jgb/jgaENCivjgYrjgZ3jgYjjgYzjgo8s44GT44GZ44GRDQor44GK44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OBiuOBnOOBjSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga4s44G/44Gh44KIDQor44KK44KH44GL44GELOOBqOOBl+OChA0KK+OBleOBkuOBleOBiyzjgYLjgaTjgZcNCivjgZXjgY7jgoQs44G/44GN44GKDQor44GV44GE44GfLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgarjgooNCivjgZXjgYTjgajjgYYs44G/44GI44GTDQor44GV44GE44Go44GGLOOBqOOBiuOCiw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgZUNCivjgZXjgYTjgajjgYYs44G+44GV44GL44GaDQor44GV44GL44GQ44GhLOOBoOOBhA0KK+OBleOBi+OBhCzjgarjgovjgb8NCivjgZfjgb7jgaAs44Gy44Go44GXDQor44GV44GL44GN44Gw44KJLOOBr+OCi+OChuOBjQ0KK+OBleOBi+OCguOBqCzjgarjgYrjgbXjgb8NCivjgZXjgYvjgoLjgags44KI44GX44G144G/DQor44GV44GL44KC44GoLOOBpuOCi+OBig0KK+OBleOBi+OCiizjgoTjgZnjgarjgooNCivjgZXjgYvjgZ8s44Gu44G244KG44GNDQor44GV44GP44G+LOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgYTjgZXjgYoNCivjgZXjgY/jgonjgYQs44KI44GX44GNDQor44GV44GP44KJ44GELOOCiuOCheOBsuOBoQ0KK+OBleOCk+OBruOBvuOCiyzjgY3jgofjgbLjgaENCivjgZXjga4s44G+44GV44Gy44KNDQor44GV44GV44G5LOOBguOBjeOBv+OBpA0KK+OBleOBleOBjSzjgZTjgo0NCivjgZXjgZXjgY0s44Gy44KN44KG44GNDQor44GV44GV44GNLOOBpOOBreOBig0KK+OBleOBleOBjSzjgorjgYsNCivjgojjgZfjgaAs44Gy44Gn44GC44GNDQor44GV44Go44GGLOOBsuOCjeOBvw0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgajjgYYs44GE44Gk44KNDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgb7jgZXjgY0NCivjgZXjgajjgYYs44KA44Gt44Gy44KNDQor44GV44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBleOBqOOBhizjgZXjgajjgosNCivjgZXjgajjgYYs44GX44KT44GYDQor44GV44Go44GGLOOBn+OBi+OBruOBtg0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44KI44GX44Gy44KNDQor44GV44Go44GGLOOChuOBjeOBig0KK+OBleOBqOOBhizjgobjgZ/jgYsNCivjgZXjgajjgYYs44Gf44Gk44KNDQor44GV44KP44GE44GnLOOBl+OCk+OBlA0KK+OBleOCj+OBhCzjgajjgoLjgbLjgo0NCivjgZXjgoTjgarjgY4s44Gf44GR44GXDQor44Gb44GM44KPLOOBquOBiuOBqA0KK+OBm+OBhOOBv+OChCzjgbLjgo3jgZcNCivjgZvjgYTjgoTjgb4s44KI44GX44Gy44GTDQor44Gb44GN44GL44KPLOOBi+OBmuOBruOCig0KK+OBm+OBjSzjgZ/jgYvjga7jgooNCivjgZvjgY0s44Gv44KE44GoDQor44Gb44KT44GgLOOChOOBmeOBsuOBkw0KK+OBm+OCk+OBlOOBjyzjgojjgZfjgobjgY0NCivjgZvjga4s44KI44GX44GoDQor44Gb44GX44KCLOOBguOBjeOBig0KK+OBm+OBn+OBiyzjgb7jgZXjgZMNCivjgZnjgYws44Go44KC44GTDQor44G/44Gq44G/LOOChuOBsuOBoQ0KK+OBl+OBsOOBnyzjgaHjgYLjgY0NCivjgZfjgbbjgoQs44GL44Ga44KEDQor44GX44G244KELOOBvuOBleOBvw0KK+OBl+OBtuOChCzjgZXjgajjgZcNCivjgZfjgYTjga4s44KG44Gy44GhDQor44GX44GL44GfLOOBk+OBhuOBhOOBoeOCjQ0KK+OBl+OBjeOBtizjgb7jgooNCivjgZfjgb7jgaAs44KI44GX44Gy44KNDQor44GX44G+44GgLOOBsuOCjeOBlw0KK+OBl+OBvuOBjOOBvyzjgZfjgZLjgY0NCivjgZfjgb7jgoLjgoos44GC44GN44KJDQor44GX44G+44KA44KJLOOBk+OBhuOBmA0KK+OBl+OBvuOBluOBjSzjgZ/jgZHjgZcNCivjgZfjgb7jgZbjgY0s44Gy44KN44Gf44GLDQor44GX44G/44GaLOOBjeOCh+OBkw0KK+OBl+OBv+OBmizjgajjgZfjgYLjgY0NCivjgZfjgb/jgZos44GT44GG44GYDQor44GX44KC44GgLOOBkeOBhA0KK+OBl+OCguOBsuOCiSzjgorjgofjgbLjgaENCivjgZfjga7jga/jgoks44KE44GZ44GXDQor44GX44Gu44Gv44KJLOOBoeOBguOBjQ0KK+OBl+OBruOBluOBjSzjgbLjgo3jgb/jgaENCivjgZfjga7jgZbjgY0s44Gk44KI44GXDQor44GX44KT44G9LOOBvuOBleOBruOCig0KK+OBl+OCk+OBn+OBqyzjgbLjgo3jgZMNCivjgYrjgY3jgaks44Gf44GL44Gy44KNDQor44GX44GK44Gs44G+LOOBsuOCjeOBlw0KK+OBl+OBiuOBnyzjgb7jgZXjgbLjgo0NCivjgZfjgYrjgoQs44Gy44KN44GXDQor44GX44GK44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBl+OCieOBhCzjgb7jgZXjgbLjgZMNCivjgZfjgonjgZXjgY0s44KG44GN44Gu44KKDQor44GX44KJ44GV44GNLOOBkw0KK+OBl+OCieOBqOOCiizjgZ/jgYvjgYLjgY0NCivjgZfjgonjgajjgoos44GI44GE44GeDQor44GX44KN44GNLOOCiuOBiA0KK+OBl+OCjeOBl+OBnyzjgbLjgo3jgZcNCivjgYvjgZfjgb4s44GR44GE44G/44KTDQor44GX44KFLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBvuOBhCzjgYLjgY3jgbLjgo0NCivjgZ3jgYjjgaAs44G+44Gq44G2DQor44Gd44GMLOOBruOBtuOBkw0KK+OBneOCjyzjgbLjgo3jgY0NCivjgZnjgaAs44GL44GZ44G/DQor44GZ44GgLOOChuOBhuOBmA0KK+OBmeOBoCzjgZ3jgajjgbLjgo0NCivjgZnjgYjjgaAs44GN44KI44G/DQor44GZ44GI44KC44KKLOOBj+OBq+OBguOBjQ0KK+OBmeOBiOOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgZnjgYzjgo/jgoks44GE44GV44GKDQor44GZ44GS44GuLOOBl+OBkuOBjQ0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgZcNCivjgZnjgY7jgZ8s44GT44Gy44KHDQor44GZ44GO44KE44G+LOOBvuOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgbLjgo0NCivjgZnjgY7jgoTjgb4s44Gy44Go44GXDQor44GZ44G/44Go44KCLOOBl+OBkuOBjQ0KK+OBmeOBvyzjgojjgZfjgYoNCivjgZnjgarjgYws44GU44GE44GhDQor44GZ44GW44GNLOOBsuOBp+OBr+OCiw0KK+OBmeOBmuOBjSzjgbLjgo3jgZMNCivjgZnjgZrjgY0s44GE44Ga44KLDQor44GZ44Ga44GNLOOBi+OBmuOBquOCig0KK+OBmeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgZnjgZrjgY0s44G+44GV44KLDQor44GZ44Ga44GNLOOBquOBiuOBjQ0KK+OBmeOBmuOBjSzjga7jgorjgojjgZcNCivjgZnjgZrjgY0s44GV44GN44GTDQor44GZ44Ga44GNLOOBl+OCh+OBsuOBoQ0KK+OBmeOBmuOBjSzjgZfjgpPjgZgNCivjgYrjgYrjgavjgZcs44KE44GZ44Gy44KNDQor44GZ44Ga44GNLOOChOOBmeOBig0KK+OBmeOBmuOBjSzjgobjgbLjgaHjgo0NCivjgZnjgZrjgY0s44G/44Gk44GKDQor44Gf44G8LOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBn+OBtuOBoSzjgYjjgYTjgZgNCivjgZ/jgbbjgZUs44Gu44G844KLDQor44Gf44Gh44GL44KPLOOChuOBjQ0KK+OBsuOCieOBjSzjgbLjgafjgobjgY0NCivjgZ/jgYzjgYQs44Gm44Gk44KEDQor44Gf44GM44KPLOOBpuOCi+OBvw0KK+OBn+OBjCzjgYLjgY3jgokNCivjgZ/jgZDjgaEs44KE44GZ44GXDQor44Gf44GQ44GhLOOChuOBjeOBig0KK+OBn+OBkOOBoSzjgZfjga7jgbYNCivjgZ/jgYvjgbDjgZ/jgZEs44GX44KT44GE44GhDQor44Gf44GL44GOLOOBqOOBl+OChA0KK+OBn+OBi+OBr+OCiSzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44GC44GNDQor44Gf44GL44Gv44GXLOOBkeOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga/jgosNCivjgZ/jgYvjga/jgZcs44Gu44G244GKDQor44Gf44GL44Gv44GXLOOBruOCiuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgorjgofjgZnjgZENCivjgZ/jgYvjga/jgZcs44GX44KTDQor44Gf44GL44Gv44GXLOOBn+OBpOOChA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgbXjgb8NCivjgZ/jgYvjga/jgZcs44KE44GZ44KG44GNDQor44Gf44GL44Gv44GXLOOChuOBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgZcNCivjgZ/jgYvjgYTjgZcs44G/44G7DQor44GT44Gw44KE44GXLOOBruOBtuOBn+OBiw0KK+OBn+OBi+OBvyzjgb/jgZXjgYoNCivjgZ/jgYvjgoDjgoks44GX44KTDQor44Gf44GL44Gq44GXLOOBv+OBquOBkw0KK+OBr+OBm+OBjOOCjyzjgojjgYTjgaENCivjgZ/jgYvjga4s44GR44KT44Gf44KN44GGDQor44Gf44GL44GK44GLLOOBqOOBl+OChA0KK+OBn+OBi+OBiuOBiyzjgajjgZfjgobjgY0NCivjgZ/jgYvjgZ/jgass44Gy44KN44GXDQor44Gf44GL44Gk44GYLOOBm+OBhOOBhOOBoQ0KK+OBn+OBi+OBpOOBiyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjgaQs44Gv44KL44GV44GgDQor44Gf44GL44KE44G+LOOBvuOBleOBkw0KK+OBn+OBi+OChOOBvizjgb7jgZXjgobjgY0NCivjgZ/jgYvjgoTjgb4s44Gy44Gn44GKDQor44Gf44GR44GgLOOBi+OBmuOBl+OBkg0KK+OBn+OBkeOBoCzjga7jgorjgbLjgZMNCivjgZ/jgZHjgaAs44Go44KI44G/DQor44Gf44GR44GgLOOBv+OBruOCiw0KK+OBn+OBkeOCguOBqCzjgajjgoLjgYLjgY0NCivjgZ/jgZHjgoLjgags44GL44Ga44Gy44KNDQor44Gf44GR44GG44GhLOOBv+OBruOCiw0KK+OBn+OBkeOBhuOBoSzjgZfjgo0NCivjgZ/jgZHjgYbjgaEs44KI44GX44Gu44KKDQor44Gf44GR44GG44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBjeOCguOBqCzjgY3jgofjgZMNCivjgZ/jgb7jgaEs44Gf44GL44GNDQor44Gf44KA44KJLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBuSzjgYLjgY3jgokNCivjgZ/jgarjgYss44GL44Gk44GYDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgb8NCivjgZ/jgarjgYss44GX44KT44GE44GhDQor44Gf44Gq44GLLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgoTjgZnjgZcNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gf44KT44GgLOOChOOBmeOBruOCig0KK+OBn+OBq+OBoCzjgZ/jgYvjgYvjgZoNCivjgZ/jgavjgYzjgo8s44Gq44GK44Gy44GoDQor44Gf44Gr44KA44KJLOOBruOBnuOBvw0KK+OBn+OBqyzjgYvjgaTjgZcNCivjgZ/jgZfjgo0s44Gf44GL44GTDQor44Gy44KJ44GV44GLLOOBsuOCjeOBi+OBmg0KK+OBn+OCj+OBoCzjgobjgbLjgaENCivjgZ/jgo/jgoks44Go44GK44KLDQor44Gm44KJ44GgLOOBn+OBi+OBsuOCjQ0KK+OBpuOCieOBleOBjSzjgbLjgo3jgZcNCivjgabjgonjgZfjgb4s44Go44GX44Gy44KNDQor44GT44Gw44KE44GXLOOBpOOBi+OBlQ0KK+OBpuOCieOBhuOBoSzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44Gq44GO44GVDQor44Go44GN44Go44KCLOOBn+OBi+OChuOBjQ0KK+OBqOOBj+OBoCzjgb7jgY0NCivjgZXjgY/jgonjgY4s44Gy44KN44G144G/DQor44Go44G/44KC44GoLOOBj+OBq+OBsuOBkw0KK+OBqOOBv+OBnyzjgYvjgYrjgooNCivjgajjgoLjgb8s44G/44GN44GTDQor44Go44KT44GQLOOBjeOBv+OBuw0KK+OBqOOCiuOBhuOBvyzjgojjgZfjgZ/jgYsNCivjgajjgojjgaAs44KI44GX44Gq44KKDQor44Go44KI44GV44GoLOOBsuOCjeOBtuOBvw0KK+OBqOOCiOOBl+OBvizjgobjgY3jgYoNCivjgaTjgaHjgaAs44Gu44G244KG44GNDQor44Gk44Gh44KC44GoLOOBiOOBhOOBiOOBpA0KK+OBpOOBoeOChCzjgZfjgpPjgZgNCivjgaTjgaAs44Go44KI44Gy44GVDQor44Gk44GgLOOBsuOCjeOChuOBjQ0KK+OBpOOBmOOCguOBqCzjgbLjgafjgZMNCivjgaTjgZgs44Gf44GE44GeDQor44Gk44GYLOOChOOBmeOBv+OBpA0KK+OBpOOBi+OBlOOBlyzjgZfjgpPjgYTjgaENCivjgaTjgYvjgoLjgags44G+44GV44Gu44KKDQor44Gk44GN44Gg44GmLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBnyzjga7jgorjgbLjgZUNCivjgaTjgovjgZ8s44G+44GV44Gy44GTDQor44Gk44GX44G+LOOBsuOBp+OBig0KK+OBpOOBlyzjgbLjgo3jgb/jgaQNCivjgaTjgaTjgb8s44G+44GV44GXDQor44Gk44KE44G+LOOBsuOCjeOBmeOBkQ0KK+OBhuOBoeOBoCzjgYvjgaTjgbLjgZUNCivjgYbjgaHjgaAs44Gy44KN44GXDQor44GG44Gh44KE44G+LOOBpuOBpOOChA0KK+OBhuOBoCzjgZjjgoXjgpMNCivjgYbjgYjjgaAs44G+44GT44GoDQor44GG44GI44GgLOOCgeOBkOOBvw0KK+OBpOOBi+OCguOBqCzjgZ/jgaTjgo0NCivjgYbjgYjjgaAs44KG44GLDQor44GN44GN44KHLOOChuOBjeOBig0KK+OBhuOBiOOBoCzjga7jgorjgYoNCivjgYbjgYjjgZDjgoos44Gy44KN44GXDQor44GG44GI44Gv44KJLOOBqOOBl+OBi+OBmg0KK+OBhuOBiOOBvuOBpCzjgZHjgYTjgZgNCivjgZXjgajjgYYs44Gy44KN44GXDQor44GG44GI44GuLOOBk+OBng0KK+OBhuOBiOOBrizjgZfjga7jgbYNCivjgYbjgYjjga4s44Go44KC44GC44GNDQor44GG44GI44GuLOOBqOOBl+OBsuOBkw0KK+OBhuOBiOOBrizjgZnjgb/jgagNCivjgYbjgYjjgoTjgb4s44KE44GZ44GNDQor44GG44KB44GgLOOChuOBjeOBig0KK+OBhuOCgeOBi+OCjyzjgojjgYbjgZMNCivjgarjgYzjgZ8s44Gf44GR44GXDQor44GG44KJ44GULOOChuOBi+OCig0KK+OBhuOCi+OBl+OBluOBiyzjgZXjgYrjgooNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44GG44Gk44Gu44G/44KELOOBoeOBiOOBvw0KK+OCj+OBoCzjgbLjgafjgYoNCivjgo/jgaAs44KI44GX44Gf44GLDQor44KP44GgLOOBhOOBj+OBiA0KK+OCj+OBi+OBsOOChOOBlyzjgajjgYrjgosNCivjgo/jgYvjgbDjgoTjgZcs44Gy44KN44KG44GNDQor44KP44GL44G+44GkLOOBi+OBpOOChA0KK+OCj+OBi+OBvuOBpCzjgYvjgZrjgbLjgZMNCivjgo/jgY3jgoLjgags44Gy44Gn44Gf44GLDQor44KP44GP44GELOOCiOOBl+OBkw0KK+OBhOOBqOOBhCzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgbks44GX44GS44GNDQor44KP44Gf44G5LOOBsuOBp+OBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jga7jgooNCivjgo/jgZ/jgarjgbks44GL44Gq44GGDQor44KP44Gf44Gq44G5LOOBi+OCiA0KK+OCj+OBn+OBquOBuSzjga7jgorjgZMNCivjgo/jgZ/jgarjgbks44Go44KI44Gy44KNDQor44KP44Gf44Gq44G5LOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgZfjgofjgbLjgaENCivjgo/jgZ/jgazjgY0s44GX44KT44G644GEDQor44KE44G244GX44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBtuOBnyzjgb/jgY3jgYgNCivjgoTjgbbjgYbjgaEs44GX44Ga44GKDQor44KE44GY44G+LOOChuOBv+OBkw0KK+OChOOBj+OBl+OBmCzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgaAs44GL44Ga44GNDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgarjgorjgagNCivjgoTjgb7jgaAs44GX44KF44GYDQor44KE44G+44GgLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOBoCzjgYvjgaTjgoQNCivjgoTjgb7jgYzjgb8s44Gq44GK44Gf44GLDQor44KE44G+44GQ44GhLOOBl+OCheOBq+OBoQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgZcNCivjgoTjgb7jgYvjgo8s44Gf44Gg44GXDQor44KE44G+44GT44GXLOOBiOOBhOOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgajjgZcNCivjgoTjgb7jgoLjgags44Gy44KN44KG44GNDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgosNCivjgoTjgb7jgoLjgags44G/44Gp44KKDQor44KE44G+44KC44GoLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOCguOBqCzjgZfjgofjgbjjgYQNCivjgoTjgb7jgoLjgags44KI44GG44GTDQor44GL44KP44GQ44GhLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOCgOOCjSzjgobjgY3jgZMNCivjgYTjgo/jgZ8s44Gy44KN44GIDQor44KE44G+44GK44GLLOOBsuOBlQ0KK+OChOOBvuOBleOBjSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZfjgZ8s44GC44GN44GKDQor44KE44G+44GX44GfLOOBiOOBhOOBmeOBkQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgZfjgZ8s44GY44KNDQor44KE44G+44GX44GfLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgZfjgpMNCivjgoTjgb7jgZfjgZ8s44Gf44GL44GXDQor44KE44G+44GX44GfLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBluOBjSzjgZHjgYQNCivjgoTjgb7jgZbjgY0s44G+44GV44G/44GhDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBquOBjOOCjyzjgYjjgYTjgZgNCivjgZ/jgYvjgYrjgYss44Gy44KN44G144G/DQor44KE44Gq44GbLOOBvuOBleOBruOCig0KK+OChOOBrizjgb7jgZXjgajjgZcNCivjgoTjgYos44GC44GN44KJDQor44KE44GZ44GgLOOBsuOCjeOBv+OBoQ0KK+OChOOBmeOBi+OCjyzjgZ/jgZHjgZcNCivjgojjgYzjgYQs44GL44Ga44Gy44KNDQor44KI44GT44GM44KPLOOBsuOBp+OBj+OBqw0KK+OCiOOBk+OBleOCjyzjgbLjgo3jgZcNCivjgojjgZPjgZ8s44Gk44Go44KADQor44KI44GT44GfLOOBqOOBl+OBguOBjQ0KK+OCiOOBk+OBhuOBoSzjgYLjgY3jgZMNCivjgarjgYvjgoTjgb4s44Gy44KN44KG44GNDQor44KI44GT44KE44G+LOOBi+OBmuOBsuOBpw0KK+OCiOOBk+OChOOBvizjgYvjgaTjgobjgY0NCivjgojjga3jga/jgoks44GC44GN44KJDQor44KI44Gt44KA44KJLOOBsuOCjeOChuOBjQ0KK+OCiOOBl+OBoCzjgYvjgYrjgosNCivjgb/jgoTjgoDjgoks44GT44GG44GYDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBoCzjgbLjgYvjgosNCivjgarjgYss44KK44KH44Gy44GhDQor44KI44GX44KA44KJLOOBqOOCguOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgYjjgorjgZMNCivjgazjgb7jgYos44Go44GX44G144G/DQor44KI44GX44GW44GNLOOBsuOBqOOBvw0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgobjgYLjgZUs44Gb44GE44GYDQor44KG44GSLOOBvuOBleOChuOBjQ0KK+OChuOBi+OCjyzjgb/jgarjgZMNCivjgb7jgaTjgaAs44KE44GZ44GXDQor44GC44G5LOOBpOOBqOOCgA0KK+OBr+OBm+OBjOOCjyzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44Gv44KL44Gy44GTDQor44Gy44KJ44Gk44GLLOOBvuOBleOBig0KK+OBu+OBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgbvjgZ3jgoQs44Gf44Gg44GXDQor44GE44GX44Gv44KJLOOBvuOBleOBqOOBlw0KK+OBhOOCj+OBjSzjgaTjgajjgoANCivjgYvjga3jgaAs44GN44G/44GC44GNDQor44GN44KA44KJLOOBvuOBleOBi+OBpA0KK+OBk+OCk+OBrizjgojjgZfjgbLjgo0NCivjgb7jgaTjgaAs44KI44Gy44GhDQor44G/44KE44GX44GfLOOBsuOCjeOBvw0KK+OBleOBi+OCguOBqCzjgb/jga3jgYoNCivjga7jgoDjgoks44GI44GE44GYDQor44GK44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgorjgofjgZ8NCivjgZXjgZXjgYzjgo8s44Gf44GL44Gy44KNDQor44GV44Go44GGLOOCiOOBl+OBn+OBiw0KK+OBl+OBjCzjgojjgZfjgaTjgZANCivjgZfjga7jga/jgoks44KE44GZ44Gy44KNDQor44GX44KHLOOBi+OBpOOBvuOBlQ0KK+OBn+OBkeOBjOOCjyzjgbLjgajjgZcNCivjgZ/jgaTjgb8s44Gf44KC44GkDQor44Go44G/44GILOOBv+OBruOCiw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgZgNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44KE44G+44GgLOOBn+OBoeOBr+OCiw0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jgZbjgY0s44Gf44GR44GXDQor44GT44G+44Gk44GW44GNLOOBvuOBk+OBqA0KK+OBteOBoeOBoCzjgojjgZfjgbLjgZUNCivjgZ/jgarjgYss44GX44GS44Go44KCDQor44Gv44KE44GXLOOBvuOCig0KK+OBquOBjOOBnyzjgZfjgpPjgYTjgaENCivjgbDjgbAs44GI44Gk44GTDQor44GC44GL44G+LOOChuOBjeOBiA0KK+OBi+OBluOBvizjgobjgYbjgZMNCivjgZnjgZrjgY0s44KE44KI44GEDQor44KC44KKLOOBvuOBleOBv+OBpA0KK+OBhOOBkeOBoCzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44KB44GQ44G/DQor44G/44G+LOOBv+OBiOOBkw0KK+OBguOCk+OBqeOBhizjgobjgZ/jgYsNCivjgb7jgYjjgZ7jga4s44Gu44KK44Gy44GTDQor44GK44Gf44GLLOOBvuOCguOCiw0KK+OBr+OChOOBlyzjgobjgYbjgYTjgaENCivjgYbjgYjjga4s44Go44G/44Gy44KNDQor44Gk44Gu44GgLOOBn+OBkeOBlw0KK+OBmeOBqeOBhizjgb7jgZXjgYoNCivjgZXjgYvjgoLjgags44Gh44GC44GNDQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBk+OBqOOBhuOBoCzjgYvjgZrjgobjgY0NCivjgYvjgovjgbks44GV44G744KKDQor44GV44GE44Go44GGLOOBm+OBhOOBhOOBoQ0KK+OBsuOCieOBrizjgb7jgZPjgagNCivjgZXjgajjgYYs44Gf44GL44GXDQor44Gq44GL44KE44G+LOOBi+OBmuOBl+OBkg0KK+OBruOBoCzjgZjjgoXjgYQt44Gh44GH44KTDQor44G+LOOBsuOCjeOBguOBjQ0KK+OBl+OBquOBjOOCjyzjgaTjgojjgZcNCivjgarjgYzjgoTjgZks44GL44Gk44GoDQor44GC44GK44GNLOOBteOBv+OBig0KK+OBquOBi+OBnyzjgajjgoLjgbLjgo0NCivjgb/jgY/jgorjgoQs44G/44Gk44Gy44KNDQor44G+44KL44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBiOOBoeOBnOOCkyzjgb7jgZXjgbLjgo0NCivjgarjgYvjgavjgZcs44GL44Ga44Gf44GLDQor44Gv44GO44GKLOOBkeOBhOOBhOOBoQ0KK+OBn+OCgOOCiSzjgZ/jgYvjgajjgZcNCivjgZ/jgZDjgaEs44G/44Gk44GC44GNDQor44GK44GW44KPLOOCguOCiuOBl+OBkg0KK+OChOOBiuOBhOOBnyzjgobjgY3jga7jgooNCivjgYLjgZXjga4s44G144G/44Gy44KNDQor44GP44GV44GuLOOBpuOCi+OCiOOBlw0KK+OBr+OBvuOBoCzjgbLjgo3jgZMNCivjgYTjgorjgoTjgb4s44Gy44KN44G+44GVDQor44KA44KJ44GfLOOBkeOCk+OBhOOBoQ0KK+OBguOBleOBrizjgobjgorjgZMNCivjgZ/jgYvjga4s44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOBoeOBi+OCiQ0KK+OCgOOCieOBi+OBvyzjgZPjgYbjgZgNCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44GL44GK44GLLOOBr+OChOOBqA0KK+OBmeOBmuOBjSzjgabjgovjgobjgY0NCivjgb/jga3jgY7jgZcs44Gy44Gn44Go44GXDQor44GC44G5LOOBsuOBleOBlw0KK+OBguOBuSzjgZfjgofjgbLjgaENCivjgYLjgbks44Go44KC44Gy44GTDQor44GC44G5LOOBvuOBleOBguOBjQ0KK+OBguOBjOOBpOOBvizjgojjgZfjgajjgZcNCivjgYLjgYTjgZbjgo8s44GK44GV44KADQor44GC44GL44GE44GRLOOBqOOBl+OBsuOCjQ0KK+OBguOBjeOCguOBqCzjga7jgorjgoTjgZkNCivjgYLjgY3jgZ/jgoQs44Gm44KL44Gy44KNDQor44GC44GN44KE44G+LOOBvuOBleOBmA0KK+OBguOBj+OBpCzjga/jgarjgZMNCivjgYLjgb7jga4s44Gq44GK44KEDQor44GC44G+44GuLOOCiOOBmA0KK+OBguOBvuOBrizjgZHjgpPjgYTjgaENCivjgYLjgoHjgb/jgoQs44GC44GN44Go44GXDQor44GC44KT44Gp44GGLOOBruOCiuOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgYvjgaTjgZgNCivjgYLjgpPjgZbjgYQs44GY44KF44Gr44GhDQor44GC44GK44GNLOOBv+OBleOBuw0KK+OBguOBiuOBjSzjgarjgYrjgoQNCivjgYLjgYrjgY0s44Gu44KK44GC44GNDQor44GC44KJ44GELOOBv+OBmuOBuw0KK+OBguOCieOBjSzjgZfjgoXjgpPjgZgNCivjgYLjgonjgY0s44Gy44Gn44GNDQor44GC44KJ44KELOOBguOBjeOCiQ0KK+OBguOCiuOCiOOBlyzjgZ/jgYvjgZcNCivjgYLjgZXjgbLjgaos44GY44KF44KT44GTDQor44GC44GV44GELOOCiOOBl+OBruOBtg0KK+OBguOBleOBvyzjgobjgY3jgYoNCivjgYLjgZXjgaTjgZEs44Go44GX44KG44GNDQor44GC44GdLOOBl+OBkuOBjQ0KK+OBguOBmuOBvizjgZ/jgaDjgYvjgaQNCivjgYLjgZrjgb4s44GC44Gk44Gu44KKDQor44Gw44GwLOOBteOBv+OBiA0KK+OBsOOBsCzjgYvjgZrjgb8NCivjgYvjgYws44G+44GV44Gy44KNDQor44Gw44GwLOOBpuOCk+OBm+OBhA0KK+OBsOOCkyzjgobjgYbjgZgNCivjgbPjgovjgYvjgo8s44KK44Gk44GTDQor44G8LOOBn+OBi+OChuOBjQ0KK+OBoOOBhOOBlCzjgZXjgaDjga/jgosNCivjgaDjgYTjgZTjgY8s44Gv44KL44Gy44GoDQor44Gp44Gw44GXLOOCiOOBsuOBoQ0KK+OBiOOBs+OBleOCjyzjgZfjgZLjgb/jgaQNCivjgYjjga/jgoks44KI44GX44Gf44GLDQor44GI44KT44Gr44KFLOOBqOOCguOBruOBtg0KK+OBteOBoeOBjOOBvyzjgojjgbLjgaENCivjgbXjgZjjgbDjgoTjgZcs44Gq44KK44GoDQor44G144GY44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBteOBmOOBhCzjgYvjgZrjgobjgY0NCivjgbXjgZjjgYQs44GP44Gr44GL44GaDQor44G144GY44GELOOBvuOBk+OBqA0KK+OBteOBmOOBhCzjgZXjgajjgZMNCivjgbXjgZjjgYQs44GZ44G/44GTDQor44GV44GL44KC44GoLOOBqOOCguOBkw0KK+OBjeOBn+OBoCzjgojjgZfjgY0NCivjgbXjgZjjgYQs44KG44GZ44GRDQor44G144GY44GELOOChuOBiw0KK+OBteOBmOOBhCzjgozjgYTjgZMNCivjgbXjgZjjgYvjgo8s44G144GP44GKDQor44G144GY44KC44KKLOOBl+OCheOCk+OBmeOBkQ0KK+OBteOBmOOCguOBqCzjgZjjgoXjgavjgaENCivjgbXjgZjjga4s44Go44GK44KLDQor44G144GY44GV44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgbLjgo3jgajjgZcNCivjgbXjgZjjgZ8s44GV44Go44GTDQor44G144GY44GfLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBj+OBmeOCguOBqCzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44KK44KH44Gy44GhDQor44G144GY44KP44KJLOOBm+OBhOOBlA0KK+OBteOBmOOCj+OCiSzjgZfjgpPjgZgNCivjgbXjgZjjgo/jgoks44KI44GX44Gu44KKDQor44G144GY44KP44KJLOOBvuOBleOChA0KK+OBteOBi+OBvOOCiizjgbLjgafjgYLjgY0NCivjgbXjgYvjgb8s44GX44KF44G444GEDQor44G144GL44G/LOOBiOOBhOOBhOOBoQ0KK+OBteOBj+OBoCzjgYvjgYrjgosNCivjgbXjgY/jgaAs44GX44KT44GE44GhDQor44G144GP44GgLOOBn+OBpOOChA0KK+OBteOBj+OBoCzjgYvjgZrjgbLjgZMNCivjgbXjgY/jgYQs44GN44KH44GTDQor44G144GP44GELOOBsuOCjeOBlw0KK+OBteOBj+OBquOBjCzjgZvjgYTjgZgNCivjgbXjgY/jgarjgYws44Gy44KN44Gf44GLDQor44G144GP44GK44GLLOOBqOOBl+OChA0KK+OBteOBj+OBiuOBiyzjgbLjgo3jgZcNCivjgbXjgY/jgZcs44GR44GE44GYDQor44G144GP44GX44G+LOOBsuOCjeOBteOBvw0KK+OBteOBj+OBqOOCgSzjgbLjgo3jgZcNCivjgbXjgY/jgoTjgb4s44GR44GEDQor44G144Gq44Gw44GXLOOBvuOBk+OBqA0KK+OBteOCi+OBrizjgbLjgo3jgoANCivjgbXjgovjgoQs44Go44GX44GNDQor44G144KL44KELOOBsuOBp+OBig0KK+OBteOCi+OChOOBvizjgZXjgarjgYgNCivjgbXjgZ/jgbAs44Gy44GV44GTDQor44GC44Gq44G/LOOChuOBhuOBkw0KK+OBteOBn+OBvyzjgZXjgajjgb8NCivjgbXjgZ/jgoDjgoks44GY44KF44KTDQor44GM44GpLOOChuOBiw0KK+OBlCzjga7jgorjgaHjgYsNCivjgZTjgaAs44Go44KC44GYDQor44GU44GLLOOBkeOCk+OBmA0KK+OBlOOBqCzjgb7jgZXjgoTjgZkNCivjgZTjgags44G/44Gu44KLDQor44Gv44G2LOOBhOOBleOBig0KK+OBr+OBjCzjgoTjgZnjga7jgooNCivjga/jgY4s44Go44GX44KG44GNDQor44Gv44G+LOOBm+OBhOOBmA0KK+OBr+OBvuOBoCzjgYvjgaTjgbLjgagNCivjga/jgb7jga4s44Go44GK44KLDQor44Gv44G+44GuLOOBguOBjeOCiQ0KK+OBr+OBvuOBl+OBvizjgajjgZfjgobjgY0NCivjga/jgb7jgZfjgb4s44Gy44KN44KG44GNDQor44Gv44Gq44GELOOBv+OBruOCiw0KK+OBr+OCiSzjgobjgb/jgZMNCivjgYrjgZ8s44Gy44GV44Gu44KKDQor44Gv44KJ44GgLOOBteOBmOOBig0KK+OBr+OCieOBkyzjgajjgoLjgZMNCivjga/jgZss44Gy44GV44GXDQor44Gv44Gb44GM44KPLOOCiuOCh+OBkw0KK+OBr+OBm+OBjOOCjyzjgZfjgpMNCivjga/jgZfjgoLjgags44Gf44Gk44KEDQor44Gv44GX44KC44GoLOOBqOOBl+OBn+OBiw0KK+OBr+OBl+OCguOBqCzjgZfjga7jgbYNCivjga/jgZfjgZrjgoEs44GX44KH44GYDQor44Gv44GX44Ga44KBLOOBguOBpOOBlw0KK+OBr+OBnyzjgZHjgpPjgZgNCivjga/jgZ8s44Gf44Gg44Gy44KNDQor44Gv44GfLOOBvuOBleOCiw0KK+OBr+OBn+OBrizjgYrjgZXjgoANCivjga/jgZ/jga4s44Gf44Gk44KEDQor44Gv44Gf44GuLOOChuOBvw0KK+OBpOOBoCzjgZXjgaDjgb/jgaQNCivjga/jgoTjgYvjgo8s44Gm44Gk44GKDQor44Gv44KE44GuLOOBn+OBpOOBjQ0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44Gq44GK44GNDQor44Gv44KE44GXLOOBn+OBpOOBsuOCjQ0KK+OBr+OChOOBlyzjgobjgZ/jgYsNCivjga/jgoTjgZcs44Gy44KN44GXDQor44Gv44KE44GX44Gf44GrLOOBl+OCh+OBmA0KK+OBsuOBjOOBl+OBrizjgZXjgajjgZcNCivjgbLjgZDjgaEs44Gb44Gk44GKDQor44Gy44GQ44GhLOOBguOBkeOBvw0KK+OBsuOCgeOBrizjgb7jgZXjgY0NCivjgbLjgonjgbDjgoTjgZcs44Gq44GK44GNDQor44Gy44KJ44GELOOBl+OCk+OBhOOBoQ0KK+OBsuOCieOBi+OCjyzjgojjgZfjgbLjgZMNCivjgbLjgonjgY0s44Gf44GR44Gy44GTDQor44Gy44KJ44GuLOOBjeOCh+OBkw0KK+OBguOBiuOBjSzjgoTjgZnjgobjgY0NCivjgbLjgonjgYrjgYss44KI44GX44Gy44KNDQor44Gy44KJ44GV44GLLOOBsuOCjeOBkw0KK+OBsuOCieOChOOBvizjgojjgZfjga7jgooNCivjgbLjgo3jga/jgZ8s44GL44Gq44GTDQor44G+44GI44GL44KPLOOBleOBiuOCig0KK+OBsuOCjeOBmyzjgZnjgZnjgoANCivjgbLjgo3jgZss44Gu44G244KG44GNDQor44Gy44KN44GfLOOBsuOCjeOChuOBjQ0KK+OBsuOCjeOCj+OBn+OCiizjgajjgZfjgo0NCivjgbLjgo3jgb/jgaQs44GC44GN44KJDQor44Gy44GG44KJLOOBjeOBv+OBn+OBkQ0KK+OBu+OBvCzjgYvjgZrjgbLjgZMNCivjgbvjgY/jgoks44GX44KT44GE44Gh44KN44GGDQor44G744KT44GgLOOChOOBmeOBlw0KK+OBu+OCk+OBoCzjgobjgYbjgZMNCivjgZnjgZrjgY0s44KG44Gy44GhDQor44G744KT44GULOOBsuOCjeOBlw0KK+OBu+OCiuOBkOOBoSzjgbLjgo3jgZcNCivjgbvjgorjgYQs44Gb44GE44KK44KHDQor44G744KK44GL44KPLOOBv+OBoeOBkw0KK+OBu+OBl+OBrizjgb7jgZXjgoQNCivjgbvjgZ3jgYvjgo8s44Gy44KN44KG44GNDQor44G744Gd44G/LOOCiOOBl+OBruOCig0KK+OBu+OBo+OBnyzjgobjgbLjgaHjgo0NCivjgYTjgbbjgYss44KE44GZ44Gy44KNDQor44GE44G244GNLOOBvuOBquOBtg0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgojjgZcNCivjgYTjgaHjgoDjgoks44G+44GV44Gu44G2DQor44GE44GgLOOBn+OBi+OBsuOCjQ0KK+OBhOOBoCzjgbLjgo3jgZcNCivjgYTjgacs44G+44KC44KLDQor44GE44GnLOOBn+OBhOOBmeOBkQ0KK+OBhOOBpyzjgb7jgZPjgagNCivjgYTjgafjgZ8s44GE44GV44GKDQor44GE44GM44KJ44GXLOOCiOOBhuOBkw0KK+OBhOOBjOOCieOBlyzjgbLjgafjgY0NCivjgYTjgZIs44GL44Ga44Gf44GLDQor44GE44GE44GgLOOBjeOBhOOBoeOCjeOBhg0KK+OBhOOBhOOBoCzjgY3jgavjgaENCivjgYTjgYTjgaAs44Gm44KL44GKDQor44GE44GE44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBhOOBr+OCiSzjgbLjgafjgobjgY0NCivjgYTjgYTjgZjjgb4s44Gy44KN44GC44GNDQor44GE44GR44GgLOOBi+OBmuOBguOBjQ0KK+OBhOOBkeOBoCzjga7jgbbjgb/jgaENCivjgYTjgZPjgb4s44Gy44Gn44KG44GNDQor44GE44G+44GELOOBsuOCjeOBlw0KK+OBhOOBvuOBhCzjgY3jgb/jgYgNCivjgZ/jgarjgYss44GL44Gq44KBDQor44GE44G+44KA44KJLOOBoeOBr+OCiw0KK+OBhOOBvuOBquOCiizjgoTjgZnjgbLjgacNCivjgYTjgb7jgZzjgY0s44GN44KI44Gf44GLDQor44GE44Gq44GgLOOBquOBiuOChuOBjQ0KK+OBhOOBquOBvuOBmSzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44GR44GE44GTDQor44GE44GnLOOChuOBjeOChA0KK+OBhOOCjOOBhCzjgZXjgaTjgY0NCivjgYTjgZfjga/jgoks44GX44KH44GeDQor44GE44GX44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgZ/jgb7jgb8NCivjgYTjgZfjga/jgoks44KI44GX44Gy44GVDQor44GE44GX44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBl+OBhCzjgZ/jgZHjgZcNCivjgYTjgZfjgYQs44GL44Gk44KEDQor44GE44GX44GL44KPLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBi+OCjyzjga7jgbbjgb7jgZUNCivjgYTjgZfjgoDjgoks44GN44KI44Gy44GoDQor44GE44GX44KP44Gf44KKLOOBvuOBk+OBqA0KK+OBhOOBl+OBluOBjSzjgY3jgofjgZMNCivjgYTjgZfjgZrjgYss44GT44GG44GE44GhDQor44GE44Gd44GuLOOBn+OBpOOChA0KK+OBhOOBneOChOOBvizjgZjjgoXjgpPjgZgNCivjgYTjgZnjgaAs44G+44KG44G/DQor44GE44Gf44GP44KJLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBvuOBleOCiw0KK+OBhOOBqOOBhizjgb/jgaTjgb8NCivjgb7jgaTjgYQs44G/44KG44GNDQor44GE44Go44GGLOOBquOBiuOBjQ0KK+OBhOOBqOOBhizjgZnjgZnjgoANCivjgYTjgajjgYYs44GY44KF44Gr44GhDQor44GE44KP44GL44G/LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBlSzjgajjgoLjgobjgY0NCivjgYTjgo/jgZXjgY0s44KG44GG44GYDQor44GE44KP44GV44GNLOOBquOBiuOBteOBvw0KK+OBhOOCj+OBl+OBnyzjgbLjgo3jgobjgY0NCivjgYTjgZrjgb8s44G+44GZ44G/DQor44GE44Go44GGLOOBruOCiuOCiOOBlw0KK+OBhOOBmuOBvyzjgarjgYrjgajjgY8NCivjgYTjgZrjgb/jgZXjgo8s44G/44Gk44Go44GXDQor44GY44KT44GuLOOBv+OBpOOBruOBtg0KK+OBmOOCh+OBv+OBqSzjgZfjgZLjgYoNCivjgYvjgYws44G+44GV44Gy44KNDQor44GL44GM44G/LOOBvuOBleOBsuOCjQ0KK+OBi+OBkuOChOOBvizjgbLjgo3jgbXjgb8NCivjgYvjgYQs44KI44GX44G+44GVDQor44GL44GE44GgLOOBr+OCi+OBig0KK+OBi+OBhOOBmizjgZ/jgZHjgbLjgZMNCivjgYvjgZjjgZ8s44Gf44GR44Gy44GTDQor44GL44GR44GyLOOBvuOBleOBoeOBiw0KK+OBi+OBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgYvjgY3jgazjgb4s44Gk44Go44KADQor44GL44GN44Gs44G+LOOBqOOBl+OBvw0KK+OBi+OBvuOBnyzjgobjgYbjgZgNCivjgYvjgb7jgZ8s44Gq44GK44KG44GNDQor44GL44G/44GQ44GhLOOBv+OBoeOBn+OBiw0KK+OBi+OBv+OCgOOCiSzjgajjgYrjgosNCivjgYvjga3jgZMs44GC44Gk44GXDQor44GL44Gq44G+44KLLOOBqOOBuOOBhA0KK+OBi+OBquOBluOCjyzjgZvjgYTjgZgNCivjgYvjgpPjgbks44KE44GZ44GXDQor44GL44KT44GgLOOCiuOCheOBmA0KK+OBi+OBreOBr+OCiSzjgYLjgZHjgb8NCivjgZTjgags44G144GV44GKDQor44GL44Gt44GTLOOBsuOBleOBquOBjA0KK+OBi+OBreOBkyzjgbLjgajjgZcNCivjgYvjga3jgZMs44GT44GG44GYDQor44GL44Gt44GTLOOBn+OBkeOBsuOBqA0KK+OBi+OBreOBkyzjgZjjgofjgZgNCivjgYvjga3jgb/jgaQs44GC44GR44G/DQor44GL44Gt44KA44KJLOOBqOOCguOBsuOCjQ0KK+OBi+OBreOBnyzjgZXjgaHjgZMNCivjgZ/jgarjgYss44GX44Ga44GLDQor44KI44Gt44KC44GhLOOBqOOBl+OBiA0KK+OBi+OCk+OBrizjgZHjgpPjgYTjgaENCivjgYvjgZXjgYQs44G/44GI44GTDQor44GL44GX44G+LOOCiOOBl+OBig0KK+OBn+OBi+OBjizjgb7jgZXjga7jgooNCivjgY3jgZ/jgoDjgoks44GY44KH44GYDQor44GL44Gf44GK44GLLOOBvuOCguOCiw0KK+OBi+OBn+OBiuOBiyzjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgYrjgYss44GT44GeDQor44GL44Gf44GbLOOBkeOCkw0KK+OBi+OBn+OChOOBvizjgZfjgZLjgYvjgZoNCivjgYvjgZ/jgoTjgb4s44Gf44GR44GXDQor44GL44Gf44KE44G+LOOChOOBmeOBquOBig0KK+OBi+OBn+OChOOBvizjgYLjgY3jgokNCivjgYvjgajjgYYs44Gy44Gn44Go44GXDQor44GL44Go44GGLOOBsuOCjeOBteOBvw0KK+OBi+OBqOOBhizjgbLjgo3jgb/jgaQNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBi+OBqOOBhizjgb7jgZXjgojjgZcNCivjgYvjgajjgYYs44Gq44GK44GXDQor44GL44Go44GGLOOChOOBmeOBvuOBlQ0KK+OBi+OBqOOBhizjgobjgYvjgooNCivjgZ3jgoHjgoQs44GT44GG44GY44KNDQor44GL44KP44Gw44GfLOOBsuOBp+OBjQ0KK+OBi+OCj+OBkOOBoSzjgb7jgZXjgb8NCivjgYvjgo/jgZDjgaEs44KE44GZ44KG44GNDQor44Gf44G+44GM44KPLOOBi+OBmuOBsuOBkw0KK+OBi+OCj+OBr+OCiSzjgZfjgZLjgobjgY0NCivjgYvjgo/jga/jgoks44KE44GZ44Gq44KKDQor44GL44KP44Gy44GoLOOBv+OBoeOBkw0KK+OBi+OCj+OBhCzjgarjgYrjgobjgY0NCivjgYvjgo/jgYQs44KG44GG44GTDQor44Gv44GO44KP44KJLOOBjeOCh+OBkw0KK+OBquOCi+OBkSzjgoTjgZnjgbLjgo0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GC44GNDQor44GL44KP44GX44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OCj+OBl+OBvizjgaTjgajjgoANCivjgYvjgo/jgZ8s44Gy44KN44KG44GNDQor44GL44KE44G+LOOBqOOBl+OBsuOCjQ0KK+OBi+OBluOBvuOBpOOCiizjgojjgZfjgb8NCivjgY3jgaks44KG44GG44GYDQor44GN44GM44G/LOOBpOOBqOOCgA0KK+OBjeOBlOOBlyzjgZjjgoXjgpPjgZMNCivjgoLjgorjgZXjgo8s44G+44GT44GoDQor44GN44GP44GhLOOBvuOBleOBhOOBoQ0KK+OBjeOBj+OBoSzjgZfjgpPjgoQNCivjgY3jgY/jgaEs44GT44GG44GE44Gh44KNDQor44GN44GP44KJLOOBsuOBleOBlw0KK+OBjeOCgOOCiSzjgZjjgoXjgpPjgZgNCivjgY3jgoDjgoks44GL44Gk44Gy44GVDQor44GN44KA44KJLOOBruOCiuOBsuOBlQ0KK+OBjeOCgOOCiSzjga7jgorjgZMNCivjgY3jgoDjgoks44GX44GS44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgY3jgoDjgoks44KG44GL44KKDQor44GN44KA44KJLOOChuOBjeOBkw0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgY3jgoDjgoks44Gy44KN44GL44GaDQor44GN44Gu44GX44GfLOOBsuOCjeOBkw0KK+OBjeOBruOBl+OBnyzjgZ/jgYvjgbXjgb8NCivjgY3jga7jgZfjgZ8s44G+44Gq44G2DQor44GN44GX44G5LOOBsuOBleOChA0KK+OBjeOBl+OBoCzjgY3jgojjgZcNCivjgY3jgZfjgoLjgags44G/44Gk44GQDQor44GN44GX44KC44GoLOOBjeOBhOOBoQ0KK+OBjeOBnyzjga7jgorjgYoNCivjgY3jgZ/jgYLjgY0s44GL44Gk44G/DQor44GN44Gf44GgLOOBpOOBreOBig0KK+OBjeOBn+OBjOOCjyzjgbLjgo3jgY0NCivjgY3jgZ/jgbvjgoos44GC44GR44G/DQor44GN44Gf44GY44G+LOOBqOOCguOBsuOBlQ0KK+OBjeOBn+OCgOOCiSzjgYvjgaTjga7jgooNCivjgZPjgbDjgoTjgZcs44GR44GE44GE44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GR44KT44GE44GhDQor44GX44KJ44GELOOBruOCiuOBkw0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgY3jgaENCivjgZPjgbDjgoTjgZcs44Gf44GE44GTDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOBkw0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gy44KN44GNDQor44GT44Gg44G+LOOCiOOBl+OBruOCig0KK+OBk+OBjuOBnyzjgZ/jgZHjgZcNCivjgZPjgZDjgows44Gf44Gk44KEDQor44GT44Gv44GXLOOBn+OBi+OBv+OBoQ0KK+OBk+OBlCzjgbLjgo3jgobjgY0NCivjgZPjga4s44Gy44KN44KG44GNDQor44GT44GuLOOBqOOBl+OChuOBjQ0KK+OBk+OBrizjgbLjgo3jgobjgY0NCivjgZPjga7jgZks44Gf44Gk44KEDQor44GT44GE44GnLOOBsuOCjeOBlw0KK+OBk+OBvuOBpOOBsOOCiSzjgZfjgZLjgojjgZcNCivjgZPjgb/jgoQs44GL44Ga44Gy44KNDQor44GT44G/44KE44G+LOOBoeOBteOChg0KK+OBk+OCguOBoCzjgoTjgZnjgobjgY0NCivjgZPjgpPjgaks44Gg44GE44GZ44GRDQor44GT44KT44GpLOOBsuOCjeOChuOBjQ0KK+OBk+OCk+OBqSzjgZfjgpPjgYTjgaENCivjgZPjgpPjgaks44Go44GX44KEDQor44GT44KT44GpLOOBqOOBl+OBjQ0KK+OBk+OBq+OBlyzjgarjgYrjgbXjgb8NCivjgZPjgZUs44Gy44KN44KG44GNDQor44GT44GZ44GOLOOBkeOBhOOBhOOBoQ0KK+OBk+OBn+OBjSzjgojjgZfjgYvjgZoNCivjgZPjgZ/jgass44Gu44KK44GX44GSDQor44GT44KE44G+LOOBn+OBi+OBsuOBpw0KK+OBk+OChOOBvizjgogNCivjgZPjgoTjgb4s44GN44KT44KEDQor44GT44GW44KPLOOChOOBmeOBsuOCjQ0KK+OBk+OBmuOCiyzjgbLjgo3jgYvjgZoNCivjgY/jgbzjgZ8s44GT44GG44GYDQor44GP44G844GfLOOBsuOBp+OBqOOBlw0KK+OBj+OBvOOChCzjgYrjgZXjgoANCivjgY/jganjgYYs44KI44GX44Gy44KNDQor44Gb44Gu44GKLOOBn+OBi+OBlw0KK+OBj+OBvuOBjOOBhCzjgYvjgZrjgb7jgZUNCivjgY/jgonjganjgb8s44G+44GV44GoDQor44GP44KJ44KC44GoLOOBsuOBqOOBlw0KK+OBj+OCieOBqOOBvyzjgYvjgaTjgoQNCivjgY/jgorjga4s44GL44Ga44Go44GXDQor44GP44KK44KELOOBguOBjeOBruOCig0KK+OBj+OCjeOBoCzjgb7jgZXjgagNCivjgY/jgo3jgYvjgo8s44GR44KT44GE44Gh44KNDQor44GP44GV44GL44KPLOOBvuOBleOChuOBjQ0KK+OBj+OBleOBrizjgZHjgYTjgYTjgaENCivjgY/jgo/jgbDjgoks44G/44GNDQor44GP44KP44GuLOOBsuOCjeOBvw0KK+OCiOOBl+OBoCzjgYvjgaTjgbLjgZMNCivjgY/jgZrjga4s44G+44GV44Gu44KKDQor44G+44Gh44GgLOOCiOOBl+OBguOBjQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgb7jgYjjgYvjgo8s44GY44KF44KT44GTDQor44GK44Gf44GrLOOBqOOCguOBkw0KK+OBvuOBjSzjgZjjgoXjgpMNCivjgb7jgY3jga4s44Gy44Go44GXDQor44G+44KL44GK44GLLOOBi+OBmuOBruOCig0KK+OBvuOCi+OChOOBvizjgY3jgojjgbXjgb8NCivjgb7jgovjgoTjgb4s44Gu44KK44KG44GNDQor44G+44KL44KE44G+LOOBkeOBhOOBmeOBkQ0KK+OBvuOBleOBhCzjgoTjgZnjgbLjgo0NCivjgb7jgZXjgY0s44KG44Gy44GhDQor44G+44GbLOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgb/jgaTjgYLjgY0NCivjgb7jgajjgbAs44Gu44G244G/44GkDQor44G+44Go44GwLOOBleOBqOOBlw0KK+OBvuOBpOOBsOOCiSzjgajjgZfjgbLjgo0NCivjgb7jgaTjgYQs44KE44GZ44Gy44KNDQor44G+44Gk44GELOOBleOBqOOCiw0KK+OBvuOBpOOBi+OCjyzjgbLjgo3jgYvjgZoNCivjgb7jgaTjgoLjgoos44Gy44KN44GXDQor44G+44Gk44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgb/jga3jgYvjgZoNCivjgb7jgaTjgoLjgags44Gf44Gg44GX44GSDQor44G+44Gk44KC44GoLOOBn+OBj+OChA0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYoNCivjgb7jgaTjgoLjgags44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBmOOCheOCk+OBk+OBhg0KK+OBh+OBiCzjga7jgorjgbLjgo0NCivjgb7jgaTjgYos44G/44Gu44KLDQor44G+44Gk44GK44GLLOOBl+OCk+OBlA0KK+OBvuOBpOOBl+OBvizjgbLjgafjgogNCivjgarjgYvjgavjgo8s44Gf44GL44GXDQor44G+44Gk44KE44G+LOOChuOBn+OBiw0KK+OBvuOBpOOChOOBvizjgZ/jgYvjgajjgZcNCivjgb7jgaTjgZbjgo8s44GP44Gr44Gy44GTDQor44G/44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBv+OBq+OChSzjgbLjgZXjgZcNCivjgb/jgZ8s44KE44GZ44Gy44KNDQor44G/44GfLOOBm+OBhOOBhOOBoQ0KK+OBv+OBn+OCgOOCiSzjgZfjgofjgZ4NCivjgb/jgaTjgaAs44Gf44GL44GXDQor44G/44Gk44GgLOOBvuOBleOCiOOBlw0KK+OBv+OBpOOBvuOBnyzjgZfjgZLjgosNCivjgb/jgaTjgYrjgYss44GY44KF44KT44GTDQor44G/44GG44KJLOOBn+OBkeOBlw0KK+OBv+OBhuOCiSzjgajjgYrjgosNCivjgb/jgo/jgZ8s44GV44Gg44GKDQor44Gq44GM44GbLOOBiOOBhOOBhOOBoQ0KK+OBv+OChOOBkSzjgYvjgZrjgojjgZcNCivjgb/jgoTjgZEs44Gf44GR44Go44GXDQor44G/44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBv+OChOOCguOBqCzjgajjgZfjgo0NCivjgb/jgoTjgoLjgags44GY44KF44KTDQor44G/44KE44Gq44GMLOOBmOOCheOCk+OBmA0KK+OBv+OChOOBluOBjSzjgbLjgafjgogNCivjgb/jgZrjgbAs44GX44KF44Gr44GhDQor44G/44Ga44Gs44G+LOOBk+OBhuOBhOOBoQ0KK+OBv+OBmuOBleOBjSzjgb7jgarjgbYNCivjgb/jgZrjgZ8s44Gy44KN44GL44GaDQor44KC44Gh44Ga44GNLOOBmOOCheOCkw0KK+OCguOBoeOBmuOBjSzjgYrjgZXjgoANCivjgoLjgaHjgZrjgY0s44GY44KF44Gr44GhDQor44KC44GOLOOCiOOBl+OBruOCig0KK+OCguOCguOBmyzjgYLjgoTjgZMNCivjgbLjgonjga4s44GN44KH44GTDQor44KC44KKLOOBv+OBqeOCig0KK+OCguOCiizjgarjgYrjgY0NCivjgoLjgoos44Gf44GL44GXDQor44KC44KKLOOBguOBjeOBig0KK+OCguOCiuOBi+OCjyzjgobjgYvjgooNCivjgoTjgY7jgZfjgZ8s44Gb44GE44GYDQor44KC44KK44KC44GoLOOBpuOBpOOBig0KK+OCguOCiuOCguOBqCzjgbLjgajjgb8NCivjgb7jgaTjgaAs44G+44GV44GL44GkDQor44KC44KK44GK44GLLOOCguOBqOOBteOBvw0KK+OCguOCiuOBl+OBnyzjgbLjgo3jgZcNCivjgoLjgorjgZ8s44GL44Gk44G/DQor44KC44KK44GfLOOBv+OCjw0KK+OBi+OBreOBkyzjga7jgorjgYLjgY0NCivjgoLjgorjgZ8s44GX44KF44Gy44GhDQor44KC44KK44KP44GNLOOBguOBpOOBjQ0KK+OCguOCjeOBqeOBvyzjgaHjgYvjgokNCivjgoLjgajjga/jgZcs44Gy44KN44GXDQor44KC44Go44GY44G+LOOBpOOCiOOBlw0KK+OCguOBqOOBjSzjgYLjgY3jgbLjgacNCivjgoLjgoos44KG44GG44GNDQor44GG44GZ44GELOOBvuOBleOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgobjgY0NCivjgoDjgonjgYvjgb8s44GX44GS44GKDQor44KA44KJ44GL44G/LOOBl+OCk+OBmA0KK+OCgOOCieOBi+OBvyzjgYTjgZXjgYoNCivjgoDjgonjgZ8s44GT44GG44GE44Gh44KNDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgoDjgags44GC44GN44Gy44GTDQor44Gq44Gg44GQ44GhLOOCiuOBiA0KK+OBquOBjOOBr+OBlyzjgY/jgavjgbLjgo0NCivjgarjgYzjgYQs44GN44KI44GI44GEDQor44Gq44GM44KA44KJLOOBi+OBmuOBguOBjQ0KK+OBquOBjOOBiizjgb7jgZXjgobjgY0NCivjgarjgYzjgZfjgb4s44Gu44G244KG44GNDQor44Gq44GM44GX44G+LOOCiOOBsuOBoQ0KK+OBquOBjOOBnyzjgojjgZfjgbLjgacNCivjgarjgYzjgZ8s44Gm44Gk44GKDQor44Gq44GM44Gk44GLLOOBkeOBhOOBkw0KK+OBquOBjOOChOOBvizjgb/jgo8NCivjgYbjgaHjgaAs44GL44GK44KLDQor44GG44Gh44Ge44GuLOOBn+OBkeOBig0KK+OBquOBi+OBoCzjgaDjgYTjgZvjgYQNCivjgarjgYvjgYzjgo8s44Gy44Gn44GXDQor44Gq44GL44GM44KPLOOBsuOBqOOBlw0KK+OBquOBi+OBjOOCjyzjgojjgZfjgYoNCivjgarjgYvjgYzjgo8s44GN44KI44Gy44GTDQor44Gq44GL44GY44G+LOOBleOBqOOBlw0KK+OBquOBi+OBmOOBvizjgojjgZfjgbLjgo0NCivjgarjgYvjgZjjgb4s44GZ44G/44GoDQor44Gq44GL44G/44GhLOOBhOOBleOBig0KK+OBquOBi+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgoLjgags44G+44GT44GoDQor44Gq44GL44KA44KJLOOBvuOBleOBvw0KK+OBquOBi+OCgOOCiSzjgb/jgaHjga7jgooNCivjgarjgYvjgoDjgoks44G/44KI44GTDQor44GC44GN44KE44G+LOOBquOBiuOCig0KK+OBquOBi+OCgOOCiSzjga7jgbzjgosNCivjgarjgYvjgoDjgoks44Gu44KK44KG44GNDQor44Gq44GL44KA44KJLOOBleOBquOBiA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgbLjgacNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OChA0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgoDjgoks44KG44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBoeOBr+OCiw0KK+OBquOBi+OBrizjgarjgYrjgobjgY0NCivjgarjgYvjga4s44GT44GG44GE44Gh44KNDQor44Gq44GL44GX44G+LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBpOOBvCzjgY3jgofjgZMNCivjgarjgYvjgaTjgYss44KK44KF44Gy44GhDQor44Gq44GL44KE44G+LOOChOOBmeOBqOOCgg0KK+OBquOBi+OChOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZbjgo8s44Gy44KN44GXDQor44Gq44GK44Gk44GLLOOChuOBv+OBkw0KK+OBquOCieOBr+OCiSzjgbLjgo3jgZcNCivjgarjgovjgZfjgb4s44Gf44GL44GYDQor44Gq44Go44KKLOOBsuOBp+OBqA0KK+OBq+OBhOOBmOOBvizjgaTjgajjgoANCivjgavjgYTjgoQs44Gf44GL44GTDQor44Gr44GXLOOChuOBjeOBkw0KK+OBq+OBlyzjgojjgZfjgbLjgZMNCivjgavjgZfjgbYs44Gb44GE44GYDQor44Gr44GX44GgLOOChuOBsuOBoQ0KK+OBq+OBl+OBr+OCiSzjgbLjgo3jgb8NCivjgavjgZfjgYvjgo8s44GV44Go44GXDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBq+OBl+OBi+OCjyzjgZHjgYTjgZgNCivjgavjgZfjgoLjgags44Gu44KK44GKDQor44Gr44GX44KC44GoLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgabjgaTjgo0NCivjgavjgZfjgoDjgoks44G+44GT44GoDQor44Gr44GX44GuLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OBrizjgYrjgZXjgoANCivjgavjgZfjgYrjgYss44GC44GN44GTDQor44Gr44GX44GW44GNLOOBleOBqOOBlw0KK+OBq+OBl+OBluOCjyzjgb7jgZXjgZMNCivjgavjgo8s44Gy44KN44Gf44GLDQor44Gu44G2LOOChuOBiw0KK+OBruOBjOOBhOOBqCzjgorjgYsNCivjga7jgZDjgaEs44Go44GX44Gy44GVDQor44Gu44GYLOOBvuOBleOBsuOCjQ0KK+OBruOBmOOBvizjgYLjgoTjgZMNCivjga7jgoDjgoks44Gf44Gk44KEDQor44Gu44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBruOBquOBiyzjgb7jgZXjgZMNCivjgarjgYvjgZjjgb4s44GE44GV44GKDQor44Gu44GW44GNLOOBvuOBleOBqA0KK+OBruOBluOBjSzjgbLjgafjgYLjgY0NCivjgazjgo8s44Gq44GK44GTDQor44GK44GhLOOBn+OBi+OBlw0KK+OBiuOBoeOBguOBhCzjgZPjgZ4NCivjgYrjgaAs44GR44KT44GYDQor44GK44GM44GV44KP44KJLOOBl+OCk+OChA0KK+OBiuOBjOOBleOCj+OCiSzjgb7jgZXjga7jgbYNCivjgYrjgYzjgZ8s44GR44KT44GYDQor44GK44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBiuOBjuOBr+OCiSzjgoLjgorjgojjgZcNCivjgYrjga/jgoks44G/44Gu44KLDQor44GK44GwLOOBruOBtuOChuOBjQ0KK+OBiuOBsCzjgojjgYbjgZMNCivjgb7jgaTjgaAs44Gy44KN44KG44GNDQor44GK44G4LOOBruOCiuOBig0KK+OBiuOBjOOBjSzjgYLjgY3jgZMNCivjgZfjgofjgZjjgb4s44GX44KT44GE44GhDQor44GK44Gv44G+LOOChuOBjeOBruOCig0KK+OBiuOBr+OBlyzjgaHjgbXjgoYNCivjgYrjgY7jga4s44G/44GN44GKDQor44GK44GL44KPLOOCiOOBl+OChuOBjQ0KK+OBiuOBi+OCj+OCiSzjgZ/jgZHjgZcNCivjgYrjgY0s44Gf44GL44GXDQor44Gt44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBiuOBj+OBvCzjgYLjgaTjgZcNCivjgYrjgY/jgoks44KI44GX44KG44GNDQor44GK44G+LOOBqOOBv+OBig0KK+OBiuOBv+OBiyzjgYvjgZrjga/jgosNCivjgYrjgoLjgoos44GR44KT44GE44GhDQor44GK44KC44KKLOOBsuOCjeOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgb8NCivjgYrjgYrjgavjgZcs44KG44G/44GTDQor44GK44GK44Gr44GXLOOBiOOBhOOBmA0KK+OBiuOBrizjgZfjgZLjgobjgY0NCivjgYrjga4s44KG44GG44GYDQor44GK44Gs44G+LOOBi+OBmuOBsuOCjQ0KK+OBiuOBl+OBvizjgajjgZfjgbLjgacNCivjgYrjgZfjgb4s44Gy44KN44KG44GNDQor44GK44GfLOOBkeOBhOOBkw0KK+OBiuOBnyzjgZfjgZLjgY0NCivjgYrjgZ8s44GT44GG44GE44GhDQor44GK44Gf44GLLOOBvuOBquOBtg0KK+OBiuOBn+OBkSzjgb7jgZXjgbLjgZMNCivjgYrjgZ/jgZEs44GY44KF44KTDQor44GK44Gf44GrLOOBruOBtuOChuOBjQ0KK+OBiuOBpOOBvCzjgajjgoLjgbLjgZMNCivjgYrjgaTjgYss44Go44KC44Gy44GVDQor44GK44Gk44GLLOOBpuOBpOOBlw0KK+OBiuOBpOOBjSzjgbLjgafjgb8NCivjgZXjgZPjgaAs44Gy44KN44GC44GNDQor44GK44KPLOOBi+OBmuOBguOBjQ0KK+OBiuOBsuOCgyzjgb/jgaTjgosNCivjgYrjgYTjgYvjgo8s44G+44GV44Gy44GnDQor44GK44GL44G5LOOBleOBquOBiA0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZMNCivjgYrjgYvjgaAs44G+44GV44GKDQor44GK44GL44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBi+OBoCzjgb7jgZXjgZcNCivjgYrjgYvjgoLjgags44G+44GV44KG44GNDQor44GK44GL44KC44GoLOOCguOBqOOBhA0KK+OCgeOCiSzjgYvjgYrjgosNCivjgYrjgYvjga4s44Go44GX44GC44GNDQor44GK44GL44GW44GNLOOBleOBiOOBkw0KK+OBiuOBjeOBnyzjgbLjgafjgbXjgb8NCivjgYrjgY/jgaAs44GP44Gr44GKDQor44GK44GP44Gs44GNLOOBguOBpOOChuOBjQ0KK+OBiuOCk+OBoCzjgabjgaTjgYoNCivjgYrjgpPjgaAs44Go44GX44Gy44GTDQor44GG44Gk44G/LOOBhOOBmuOBvw0KK+OBiuOBrizjgZfjgoXjgbLjgaENCivjgYrjga4s44GV44Go44GXDQor44GL44KP44KC44GoLOOBmOOCheOCk+OBm+OBhA0KK+OBi+OBqSzjgb7jgZXjgY0NCivjgYrjgZfjgb4s44G+44Gq44G2DQor44GK44GZ44G/LOOBnQ0KK+OBiuOBnyzjgoTjgZnjgb/jgaQNCivjgYrjgorjgYQs44Gm44Gk44GYDQor44GK44KK44GfLOOBpuOBpOOChA0KK+OBiuOBleOBiyzjgbLjgafjgYLjgY0NCivjgYrjgZ3jga7jgYQs44Gy44Gn44Gu44G2DQor44GK44GW44GVLOOBsuOCjeOChuOBjQ0KK+OBiuOBluOCjyzjgYvjgZrjga7jgooNCivjgYrjgZbjgo8s44GL44Ga44KG44GNDQor44GK44GW44KPLOOBleOBqOOBkw0KK+OBl+OCieOBqOOCiizjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYrjgZ7jga0s44G+44GV44GL44GaDQor44GV44GuLOOBoeOBmuOBkw0KK+OBleOBhOOBqOOBhizjgbLjgonjgZ/jgYsNCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgobjgY3jgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44Gn44KG44GNDQor44GV44GL44GELOOBj+OBq+OBsuOCjQ0KK+OBleOBi+OBhCzjgZfjgo0NCivjgZXjgYvjgYQs44GC44GN44KJDQor44GV44GL44GN44Gw44KJLOOBi+OBmuOChuOBjQ0KK+OBleOBi+OCguOBqCzjgZfjgoXjgpPjgZgNCivjgZXjgYvjgoLjgags44GX44KF44Gy44GhDQor44GV44GL44KC44GoLOOBqOOCiOOBsuOBpw0KK+OBleOBi+OCguOBqCzjgobjgY3jgYoNCivjgZXjgYvjgoLjgags44KG44GN44Gu44G2DQor44GV44GL44KA44KJLOOBn+OBpOOBmA0KK+OBleOBi+OBrSzjgarjgYrjga7jgooNCivjgZXjgYvjgZ8s44KE44GZ44Gy44KNDQor44GV44GL44GfLOOBmOOCheOCkw0KK+OBguOBj+OBn+OBjOOCjyzjgYLjgY3jgYoNCivjgZXjgY/jgonjgYQs44Gy44KN44Gy44GVDQor44GV44GP44KJ44GELOOBvuOBleOBvw0KK+OBvuOBpOOBsOOCiSzjgarjgYrjgY0NCivjgZXjgY/jgonjgYQs44G/44GI44GTDQor44GV44Gq44GOLOOBkeOBhOOBmA0KK+OBleOBrizjgaHjgYvjgZMNCivjgYrjgYzjgY0s44Gy44KN44G/DQor44GV44GV44GNLOOBkeOCk+OBmA0KK+OBleOBleOBjSzjgb7jgZPjgagNCivjgZXjgZXjgY0s44G/44Gk44GC44GNDQor44GV44GV44GNLOOCjOOBhOOBkw0KK+OBleOBleOBjSzjgojjgZfjgYoNCivjgZXjgZXjgY0s44Go44KC44GTDQor44GV44Gf44GRLOOBmOOCheOCk+OBuuOBhA0KK+OBk+OBoOOBvizjgYvjgYrjgosNCivjgZXjgajjgYYs44GR44KT44GYDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44G+44GV44Gy44KNDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgZXjgajjgYYs44KL44KK44GTDQor44GV44Go44GGLOOCiuOCh+OBkw0KK+OBleOBqOOBhizjgZXjgajjgosNCivjgZXjgajjgYYs44KI44GX44GNDQor44GV44Go44GGLOOChuOBjeOBkw0KK+OBleOBi+OBhCzjgaHjgbLjgo0NCivjgZXjgo/jgaAs44G144G/44Gy44KNDQor44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBm+OBhOOBrizjgbLjgafjgobjgY0NCivjgZvjgY0s44GE44GP44G144G/DQor44Gb44GN44GpLOOBquOBjOOBvuOBlQ0KK+OBm+OBjeOBrizjgajjgoLjgZMNCivjgZvjgYos44Gf44GL44KG44GNDQor44Gb44KK44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBl+OBsOOBleOBjSzjgajjgYrjgosNCivjgZfjgYws44G144GY44GKDQor44GX44GS44KLLOOBsuOBp+OBr+OCiw0KK+OBl+OBvuOBoCzjgb7jgoLjgosNCivjgZfjgb7jgaAs44G+44KG44G/DQor44GX44G+44GgLOOBl+OCjQ0KK+OBl+OBvuOBoCzjgZHjgpPjgZgNCivjgZfjgb7jgoLjgags44Gy44Gn44Gu44KKDQor44GX44G+44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBl+OBvuOBrizjgYLjgY3jgbLjgo0NCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GX44G/44GaLOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgZPjgYbjgZ/jgo3jgYYNCivjgZfjgb/jgZos44GV44Go44KLDQor44GX44G/44GaLOOBl+OCh+OBmA0KK+OBl+OBv+OBmizjgaTjgajjgoANCivjgZfjgb/jgZos44GX44KT44GYDQor44GX44KC44GgLOOBruOCiuOBsuOCjQ0KK+OBl+OCguOBjOOBjSzjgZ/jgYvjgobjgY0NCivjgZfjgoLjga/jgZ8s44GK44GV44KADQor44GX44KC44KA44KJLOOBsuOCjeOBruOCig0KK+OBl+OCguOBiuOBiyzjgYvjgarjgb8NCivjgZfjgoDjgoks44KI44GX44GTDQor44KE44GI44GM44GXLOOBguOBpOOBlw0KK+OBl+OBruOBluOBjSzjgb/jgaTjgYgNCivjga/jgY7jgo/jgoks44G+44GT44GoDQor44GX44GK44GgLOOBi+OBiuOCiw0KK+OBl+OBiuOBnyzjgb/jgaTjgoTjgZkNCivjgZfjgYrjgZbjgo8s44Gf44Gk44KEDQor44GX44KJ44GELOOBn+OBi+OBlw0KK+OBl+OCieOBhOOBlyzjgZ/jgYvjgYLjgY0NCivjgZfjgofjgaAs44Go44GX44Gy44KNDQor44GX44KFLOOBn+OBoOOBlw0KK+OBneOCgeOChCzjgaTjgajjgoANCivjgZnjgaAs44GT44GG44GY44KNDQor44GZ44GILOOBleOBqOOCiw0KK+OBmeOBiOOBnyzjgb/jgZrjgY0NCivjgZfjgbbjgYTjgaEs44Gy44KN44KG44GNDQor44GZ44GM44GuLOOBkeOCk+OChA0KK+OBmeOBjOOCj+OCiSzjgbLjgo3jgobjgY0NCivjgZnjgY7jgYgs44Gu44G244Gy44KNDQor44GZ44GO44G+44GVLOOBqOOBl+OBguOBjQ0KK+OBmeOBjuOCguOCiizjgZfjgofjgbLjgaENCivjgZnjgY7jgoLjgags44GC44Gk44GTDQor44GZ44GO44GV44GNLOOBguOBpOOBlw0KK+OBmeOBjuOBhuOCiSzjgbLjgafjgYoNCivjgZnjgY7jgYbjgoks44G+44GV44Gy44GoDQor44G/44Ga44GK44GhLOOBsuOBleOCiOOBlw0KK+OBmeOBjuOChOOBvizjgZHjgpPjgYTjgaENCivjgZnjgY7jgoTjgb4s44Gf44GR44GXDQor44GZ44GO44KE44G+LOOBqOOCguOBsuOBlQ0KK+OBmeOBjuOChOOBvizjgZHjgpPjgZgNCivjgZnjgb8s44Go44KC44GTDQor44Gf44G544GELOOBvuOBleOBlw0KK+OBmeOBquOBvyzjgY/jgb/jgZMNCivjgZnjgZXjgo8s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgbLjgafjgobjgY0NCivjgZnjgZrjgY0s44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOBsuOBleOBn+OBiw0KK+OBmeOBmuOBjSzjgYvjgaTjgajjgZcNCivjgZnjgZrjgY0s44GR44GE44GfDQor44GZ44Ga44GNLOOBruOBtuOChuOBjQ0KK+OBmeOBmuOBjSzjgajjgYrjgosNCivjgZnjgZrjgY0s44KI44GG44GTDQor44GZ44Ga44GNLOOChuOBjeOBig0KK+OBmeOBmuOBjSzjgZjjgoXjgavjgaENCivjgZ/jgbks44Gf44GL44GXDQor44Gf44Gh44Gv44KJLOOBvuOBleOChA0KK+OBn+OBkizjgb7jgarjgbYNCivjgZ/jgZDjgaEs44GR44KTDQor44Gq44GL44GfLOOBn+OBkeOBlw0KK+OBn+OBkOOBoSzjgb7jgZXjgoLjgagNCivjgZ/jgZjjgb4s44KI44GX44Gu44KKDQor44Gf44GY44G+LOOBsuOCjeOBkw0KK+OBn+OBi+OBoCzjgYrjgZXjgoANCivjgZ/jgYvjgY7jgo8s44GC44GN44GTDQor44Gf44GL44Gv44GXLOOBiOOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GC44GNDQor44Gf44GL44Gv44GXLOOBi+OBquOBkw0KK+OBn+OBi+OBj+OCiSzjgYvjgarjgZMNCivjgZ/jgYvjgY/jgoks44GL44Ga44KI44GXDQor44Gf44GL44Gv44GXLOOBkeOCk+OBnw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBquOCiuOBvuOBlQ0KK+OBn+OBi+OBr+OBlyzjgorjgoXjgbLjgaHjgo0NCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBqOOBl+OBjQ0KK+OBn+OBi+OBr+OBlyzjgo/jgZ/jgosNCivjgZ/jgYvjga/jgZcs44KP44Gf44KLDQor44Gf44GL44Gv44GXLOOBl+OCkw0KK+OBn+OBi+OBj+OCiSzjgYLjgY3jgokNCivjgZ/jgYvjgb/jgoQs44G+44GT44GoDQor44Gf44GL44GV44GULOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBleOBjSzjgb/jgaTjgbLjgo0NCivjgZ/jgYvjgZss44GL44Ga44KI44GXDQor44Gf44GL44Gk44GLLOOBsuOCjeOChOOBmQ0KK+OBn+OBi+OChOOBquOBjizjgYvjgZrjga7jgooNCivjgZ/jgYvjgoTjgarjgY4s44G/44Gk44Go44GXDQor44Gf44GR44GhLOOBk+OBhuOBmA0KK+OBn+OBkeOBoCzjgoTjgZnjgb7jgZUNCivjgZ/jgZHjgaAs44KE44Gy44KNDQor44Gf44GR44GM44G/LOOBguOBjeOBteOBvw0KK+OBn+OBkeOBsuOBlSzjgYrjgZXjgoANCivjgZ/jgZHjgYQs44KG44GG44GYDQor44Gf44GR44GELOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOBi+OCjyzjgaTjgYvjgZUNCivjgZ/jgZHjgoDjgoks44GX44KT44GE44GhDQor44Gf44GR44Gq44GLLOOChuOBhuOBkw0KK+OBhOOBvuOBhCzjgb7jgZPjgagNCivjgZ/jgZHjgZXjgZMs44Gy44Gn44GNDQor44Gf44GR44GX44G+LOOBpOOBqOOCgA0KK+OBn+OBkeOBhuOBoSzjgZ/jgb7jgb8NCivjgbLjgaDjgYss44GP44Gr44Gy44GTDQor44Gf44GN44KC44GoLOOBvuOBleOBqA0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgbLjgagNCivjgZ/jgb7jgYQs44GX44KT44GE44GhDQor44Gf44KA44KJLOOBl+OBkuOCiw0KK+OBn+OBquOBuSzjgoTjgYjjgY3jgaENCivjgZ/jgarjgbks44Gy44Gn44GC44GNDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgYTjgaTjgbLjgagNCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjga7jgbbjgYoNCivjgZ/jgarjgYss44Gf44Gg44KG44GNDQor44Gf44Gq44GLLOOBn+OBkeOBsuOBkw0KK+OBn+OBquOBiyzjgajjgZfjgbLjgacNCivjgZ/jgarjgYss44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOCiOOBsuOBoQ0KK+OBn+OBquOBiyzjgojjgbLjgaENCivjgZXjga4s44GL44Gk44GX44KNDQor44Gf44GrLOOBsuOCjeOBqOOBlw0KK+OBn+OBq+OCgOOCiSzjgajjgYrjgosNCivjgZ/jgavjgoTjgb4s44G/44Gp44KKDQor44Gf44GV44GLLOOBjeOBj+OBvw0KK+OBi+OBqOOBhizjgb7jgZXjgosNCivjgabjgonjgaAs44GX44KH44Gy44GhDQor44Gm44KJ44G+44GILOOBiOOBhOOBmA0KK+OBpuOCieOBq+OBlyzjgojjgbjjgYQNCivjgabjgonjgavjgZcs44GC44GN44GoDQor44Gm44KJ44Ge44GuLOOBhOOBleOCgA0KK+OBqOOBs+OBnyzjgb/jganjgooNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Gq44KKDQor44Go44GgLOOChOOBmeOBmA0KK+OBqOOBkOOBoSzjgZ/jgYvjgZcNCivjgajjgb7jgaQs44GC44KK44Gy44GoDQor44GC44GN44KA44KJLOOBl+OCk+OBlA0KK+OBqOOBjeOBn+OBkSzjgZfjgoXjgbLjgaENCivjgajjgY/jgb7jgZks44Gy44KN44KG44GNDQor44Go44GP44Gf44GRLOOBn+OBi+OBlw0KK+OBqOOBvuOBjSzjgbLjgo3jgbXjgb8NCivjgajjgb/jgYQs44GI44GE44GE44Gh44KN44GGDQor44Go44G/44GfLOOCiOOBl+OBteOBvw0KK+OBqOOBv+OChOOBvizjgaDjgYTjgZnjgZENCivjgajjgoLjgaAs44KE44GZ44G+44GVDQor44Go44KC44Gq44GMLOOBiOOBhOOBmA0KK+OBqOOBleOBiyzjgojjgZfjgobjgY0NCivjgajjgaPjgajjgoos44G+44GNDQor44G+44Gk44GKLOOBruOBtuOChuOBjQ0KK+OBqOOCiOOBoCzjgbLjgo3jgb/jgaQNCivjgaTjgbzjgYQs44GL44GK44KKDQor44GL44Go44GGLOOBvuOBleOBvw0KK+OBpOOBoeOChCzjgbLjgafjgY0NCivjgaTjgaAs44GV44Go44GXDQor44Gk44GYLOOBn+OBkeOBlw0KK+OBpOOBmCzjgajjgoLjgYLjgY0NCivjgaTjgZjjga4s44Gu44G244KG44GNDQor44Gk44GL44GT44GXLOOBn+OBkeOBlw0KK+OBpOOBi+OCguOBqCzjgYLjgY3jgbLjgo0NCivjgaTjgYvjgZbjgY0s44GC44GN44Gy44GTDQor44Gk44GN44GC44GXLOOBi+OBmuOChA0KK+OBpOOBjeOBluOCjyzjgb7jgZXjgbLjgo0NCivjgaTjgb/jgZ8s44GN44G/44GKDQor44GI44KT44GpLOOBvuOBleOBqA0KK+OBpOOBqCzjgY/jgb/jgZMNCivjgaTjgoDjgoks44G+44GV44Gu44KKDQor44Gk44Gt44GL44KPLOOBquOBiuOBqA0KK+OBpOOCi+OBiuOBiyzjgYLjgY3jgbLjgZMNCivjgaTjgovjgZ8s44KI44GX44KG44GNDQor44Gk44KL44GfLOOCiOOBl+OChuOBjQ0KK+OBpOOCi+OBnyzjgYLjgY3jgokNCivjgaTjgaTjgb8s44Go44GX44Gy44KNDQor44Gk44Gk44G/LOOBi+OBmuOBlw0KK+OBpOOCj+OBkyzjgZfjgpPjgZQNCivjgaTjgoTjgb4s44G+44GV44Gy44GTDQor44GG44Gh44GgLOOCiOOBsuOBoQ0KK+OBhuOBoeOBoCzjgojjgZnjgZENCivjgYbjgaHjgaAs44GC44GN44KJDQor44GG44Gh44KE44G+LOOBl+OBkuOBsuOCjQ0KK+OBhuOBoeOChOOBvizjgbXjgb/jgbLjgo0NCivjgYbjgaks44GC44GN44KJDQor44GG44GI44GgLOOBk+OBhuOBmA0KK+OBhuOBiOOBoCzjgYjjgYTjgYTjgaENCivjgb7jgaTjgoDjgoks44Gf44Gg44Gy44GTDQor44GG44GI44GgLOOBqOOBl+OBsuOCjQ0KK+OBhuOBiOOBoCzjgojjgZfjgYoNCivjgYbjgYjjgb7jgaQs44Gd44Gu44GZ44GRDQor44GG44GI44GuLOOCiOOBl+OBsuOBkw0KK+OBhuOBiOOBrizjga7jgorjgZMNCivjgYTjgZfjgaAs44KC44Go44KG44GNDQor44GG44KB44GgLOOBn+OBpOOChuOBjQ0KK+OBhuOCgeOBjOOBjSzjgZfjgoXjgpPjgoQNCivjgYbjga4s44GL44Gk44G/DQor44GG44KJ44Gv44GXLOOChuOBiw0KK+OBl+OBv+OBmizjgY3jgojjgbXjgZUNCivjgYjjgYzjgZfjgoks44GX44KH44GTDQor44GZ44GI44GL44GtLOOBvuOBleOBsuOCjQ0KK+OBhuOBpCzjgZvjgaTjgZMNCivjgYbjgaTjga/jgZcs44GX44KT44GUDQor44GG44Gk44G/LOOBsuOBp+OBig0KK+OCj+OBoCzjgY3jgojjgb8NCivjgo/jgaAs44Gv44KL44GNDQor44GN44Gf44KP44GNLOOCiOOBmeOBkQ0KK+OCj+OBl+OBmizjgaDjgYTjgZjjgo0NCivjgo/jgZ/jgbks44GC44GR44G/DQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OCj+OBn+OBquOBuSzjgbLjgafjgYoNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBmA0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgZMNCivjgo/jgZ/jgarjgbks44GT44Gb44GEDQor44KP44Gf44Gq44G5LOOBj+OBq+OBkw0KK+OCj+OBn+OBquOBuSzjgb7jgoLjgosNCivjgo/jgZ/jgarjgbks44G+44KK44GTDQor44KP44Gf44Gq44G5LOOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgZcNCivjgo/jgZ/jgarjgbks44Gm44KL44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgbLjgo0NCivjgo/jgZ/jgarjgbks44GR44GE44GE44GhDQor44GI44Gv44KJLOOBpOOBreOBteOBvw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgb8NCivjgo/jgZ/jgonjgYQs44Gb44GE44GNDQor44KE44GI44GM44GXLOOBr+OCi+OBquOBjA0KK+OChOOBr+OBjizjgbXjgb/jgogNCivjgoTjgb7jgaAs44Gy44KN44GXDQor44KE44G+44GgLOOBvuOBleOChA0KK+OChOOBvuOBoCzjgZXjgajjgb8NCivjgZPjgpPjgaks44GX44KT44GE44GhDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgaTjgajjgoANCivjgoTjgb7jgaAs44KI44GX44GC44GNDQor44KE44G+44GgLOOBpOOBreOBig0KK+OBiOOBruOCguOBqCzjgb7jgZXjgogNCivjgZXjgYTjgajjgYYs44GI44GE44GYDQor44KE44G+44GQ44GhLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZDjgaEs44GL44Gk44GXDQor44KE44G+44GQ44GhLOOChuOBhuOBmOOCjQ0KK+OBiOOBluOBjSzjgoTjgZnjgYoNCivjgoTjgb7jgZDjgaEs44GC44Gk44GXDQor44KE44G+44KC44GoLOOBsuOBp+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgZjjgo0NCivjgoTjgb7jgoLjgags44GK44GV44KADQor44KE44G+44KC44GoLOOBl+OBruOBtg0KK+OChOOBvuOCguOBqCzjgZfjgoXjgbLjgaENCivjgoTjgb7jgoLjgags44Gf44GR44GXDQor44KE44G+44KC44GoLOOCiOOBmA0KK+OChOOBvuOCguOBqCzjgajjgZfjgoQNCivjgoTjgb7jgarjgYss44GC44Gk44GXDQor44KE44G+44GtLOOBiuOBleOCgA0KK+OChOOBvuOBruOBj+OBoSzjgb/jgY0NCivjgoTjgb7jgZXjgY0s44GC44GN44Gy44KNDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZfjgZ8s44GN44KT44KEDQor44KE44G+44GX44GfLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBl+OBnyzjgZXjgajjgZMNCivjgZfjgZXjgYQs44KE44GZ44Gy44KNDQor44KE44G+44GX44GfLOOBsuOBqOOBlw0KK+OChOOBvuOBhuOBoSzjgZXjgajjgosNCivjgoTjgb7jgYbjgaEs44GV44Go44GXDQor44KE44G+44GW44GNLOOBqOOBiuOCiw0KK+OChOOBvuOBluOBjSzjgoTjgZnjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GR44GXDQor44KE44Gq44GO44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OChOOBrizjgZPjgY0NCivjgoTjga4s44Go44GX44KG44GNDQor44KE44GX44KNLOOBvuOBleOCiw0KK+OChOOBluOCjyzjgbLjgo3jgZcNCivjgojjgaAs44G/44Gh44KLDQor44KI44GOLOOBleOBqOOBlw0KK+OCiOOBk+OBhCzjgZ/jgYvjgZcNCivjgojjgZPjgoTjgb4s44G+44GV44GL44GaDQor44KI44Gt44GW44GNLOOBsuOCjeOBjQ0KK+OCiOOBl+OBoCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44GT44GNDQor44KI44GX44GgLOOBl+OBkuOBvw0KK+OCiOOBl+OBoCzjgb7jgZXjgobjgY0NCivjgYjjgbPjgaos44Go44GX44Gy44KNDQor44KI44GX44GgLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBoCzjgb7jgZPjgagNCivjgojjgZfjgYTjgZEs44Gy44Gn44GKDQor44KI44GX44KA44KJLOOBn+OBoOOBlw0KK+OCiOOBl+OCgOOCiSzjgoDjgaTjgb8NCivjgojjgZfjga4s44Gf44GR44GXDQor44KI44GX44GKLOOCiuOCh+OBmA0KK+OCiOOBl+OBn+OBkSzjgbLjgo3jgY0NCivjgobjgYLjgZUs44KE44GZ44GXDQor44GK44KP44GgLOOBvuOBk+OBqA0KK+OBiOOBkOOBoSzjgZfjgoXjgpPjgZnjgZENCivjgYrjgZbjgo8s44G144G/44KG44GNDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBl+OCk+OBn+OBqyzjgZHjgpPjgZfjgocNCivjgZnjgY7jgZ/jgass44G144Go44GXDQor44Gf44GL44Gv44GXLOOBmOOCheOCkw0KK+OBn+OBjeOBluOCjyzjgorjgYjjgZMNCivjgb/jgojjgaAs44GL44Ga44KI44GXDQor44KE44G+44GgLOOBmOOCheOCk+OBkw0KK+OChOOBr+OBjizjgZvjgYTjgYTjgaENCivjgY3jgoQs44Gf44Gg44GXDQor44G/44Gb44GNLOOBn+OBpOOBig0KK+OBiOOBruOCguOBqCzjgoTjgZnjga7jgooNCivjgZXjgY/jgonjgaAs44G/44Gk44KG44GNDQor44GV44GV44GNLOOBleOBqOOCiw0KK+OBsOOBsCzjgZfjgpPjgYTjgaENCivjgYLjgbws44Gu44G844KLDQor44GC44Gg44GhLOOBl+OBkuOCiOOBlw0KK+OBguOBi+OBleOBiyzjgabjgaTjgZgNCivjgYLjgb7jgZXjgY0s44GX44KH44GYDQor44GC44GK44GNLOOBleOBqOOCiw0KK+OBguOBnOOBjOOBvyzjgYvjgaTjgobjgY0NCivjgYjjganjga4s44G/44Gk44GC44GNDQor44Gp44GELOOBn+OBkeOBvw0KK+OBteOBmOOBhCzjgojjgZfjgbLjgZMNCivjgbXjgZjjgYQs44GE44Ga44G/DQor44G144GY44KC44GoLOOBquOBiuOBjQ0KK+OBteOBmOOCguOBqCzjgZHjgpPjgZgNCivjgbXjgY/jga/jgoks44GN44KI44GXDQor44G144GP44GK44GLLOOBleOBqOOBlw0KK+OBteOBj+OBl+OBvizjgZ/jgaDjgZcNCivjgbXjgZXjgoTjgb4s44Gu44KK44GL44GaDQor44GU44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBr+OBvuOBuSzjgb7jgZXjgY0NCivjga/jgarjgaAs44Gu44G244KG44GNDQor44Gv44GX44KC44GoLOOBn+OBkeOBig0KK+OBsuOBsyzjgYvjgYrjgooNCivjgbLjgonjgaTjgYss44GT44G444GEDQor44GE44GL44KKLOOBvuOBleOBsuOCjQ0KK+OBhOOBj+OBnyzjgbLjgafjgagNCivjgYTjgb7jgYQs44GL44KT44GYDQor44GE44GX44Gv44KJLOOBl+OBkuOBi+OBmg0KK+OBhOOBneOBoCzjgbXjgb/jgbLjgo0NCivjgYTjgZ3jgZbjgY0s44GL44Ga44GKDQor44GY44KT44GQLOOBqOOCguOBsuOBqA0KK+OBmOOCh+OBquOBhCzjgZXjgobjgooNCivjgZjjgofjgavjgZcs44Gy44KN44GNDQor44GL44GY44Gv44KJLOOBn+OBkeOBlw0KK+OBi+OBvuOBnyzjga7jgbbjgobjgY0NCivjgYvjgoHjgYQs44Gm44Gk44KEDQor44GL44G/44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYvjgajjgYYs44KI44GX44Gy44KNDQor44GI44G/LOOBiOOBhOOBmA0KK+OBi+OCj+OCguOCiizjgZHjgYTjgZnjgZENCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GN44KA44KJLOOBleOBi+OBiA0KK+OBjeOBl+OBuSzjgYvjgZrjgobjgY0NCivjgY3jgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GN44Gf44GM44KPLOOBguOBjeOBsuOBkw0KK+OBjeOBn+OBquOBiyzjgabjgaTjgZcNCivjgZPjgbDjgoTjgZcs44KE44GZ44Gy44KNDQor44GT44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBk+OBhOOBkSzjgojjgZfjgZ/jgYsNCivjgZPjgYTjgZrjgb8s44KI44GX44GC44GNDQor44GT44GY44G+LOOBv+OBruOCiw0KK+OBk+OBq+OBlyzjgYrjgZXjgb8NCivjgZPjgoTjgb4s44KI44GX44GC44GNDQor44GP44Gp44GGLOOBn+OBpOOChA0KK+OBj+OBvuOBleOBjSzjgYLjgY3jgokNCivjgY/jgo3jgaAs44Gm44Gk44KEDQor44GP44GV44GLLOOBn+OBpOOBmA0KK+OBiOOCk+OBqSzjgajjgZfjgobjgY0NCivjgb7jgYjjgYvjgo8s44Gy44Gn44GC44GNDQor44G+44KL44GfLOOBvuOCguOCiw0KK+OBvuOBpOOBl+OBnyzjgojjgZfjgbLjgo0NCivjgb/jgY/jgass44GL44Ga44GKDQor44GI44KT44GpLOOBj+OBq+OBsuOBkw0KK+OBv+OBrSzjgYvjgZrjgojjgZcNCivjgb/jgYbjgoks44GX44KT44GE44GhDQor44G/44Ge44GQ44GhLOOCgeOBkOOBvw0KK+OBu+OCk+OBmOOChyzjgb7jgZXjgobjgY0NCivjgb/jgZrjgZfjgb4s44GS44KTDQor44GI44GgLOOBqOOBnw0KK+OBquOBjOOBiizjgYvjgZrjgoQNCivjgarjgYvjgoDjgoks44Gf44GL44Gy44GVDQor44Gq44GL44Gr44GXLOOBjeOCiOOBi+OBmg0KK+OBquOBi+OBrizjgZ/jgY/jgoQNCivjgarjgYvjgYos44GL44Ga44KEDQor44Gt44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgYvjgZoNCivjgavjgZfjgo/jgY0s44GX44KT44GUDQor44Gu44GgLOOBkeOCk+OBmA0KK+OBruOBkOOBoSzjgb7jgZXjgbLjgo0NCivjgYrjgaHjgYLjgYQs44Gy44Gn44GNDQor44GK44Gv44GXLOOBl+OCk+OBlA0KK+OBiuOBrizjgajjgb/jgYoNCivjgYjjgb8s44KI44GX44Gu44KKDQor44GK44GP44KA44KJLOOChOOBmeOBn+OBiw0KK+OBiuOBj+OBrizjgZfjgoXjgbLjgaENCivjgYjjgpPjgaks44GX44KH44GYDQor44GK44GK44Gr44GXLOOCiOOBl+OBguOBjQ0KK+OBiuOBluOBjSzjgZfjgZLjgosNCivjgZXjgYjjgY0s44Gf44GL44GXDQor44GV44GM44KPLOOBguOBpOOBlw0KK+OBleOBj+OBvizjgajjgYrjgosNCivjgZXjgajjgYYs44KG44GG44GYDQor44GV44Go44GGLOOCiOOBhuOBkw0KK+OBleOCjyzjgYvjgaTjgoQNCivjgZvjgYzjgo8s44G+44GV44KG44GNDQor44Gb44GNLOOBk+OBhuOBmA0KK+OBm+OCk+OBoCzjgZHjgpPjgYTjgaENCivjgZfjgbbjgoQs44Gf44GL44GTDQor44GX44G/44GaLOOBv+OBqOOBlw0KK+OBl+OCk+OBp+OCkyzjgZPjgYbjgZgNCivjgZfjgYrjgZ8s44KE44GZ44KI44GXDQor44GX44KF44GP44Gf44GrLOOBn+OBj+OBmA0KK+OBmeOChOOBvizjgbLjgafjgYoNCivjgZnjgZrjgoDjgoks44G+44GV44Gy44KNDQor44Gf44GL44GK44GLLOOBsuOBp+OBv+OBpA0KK+OBn+OBkeOBhuOBoSzjgojjgZfjgZ/jgaANCivjgZ/jgZHjgYbjgaEs44GC44GN44KJDQor44Gf44G+44GELOOBj+OBq+OBr+OCiw0KK+OBn+OCkyzjga7jgorjgobjgY0NCivjgZ/jgarjgYss44Gu44G844KLDQor44GI44GoLOOBvuOBleOBuw0KK+OBn+OBq+OBsuOCiSzjgZfjgZLjgYLjgY0NCivjgZ/jgavjgoTjgb4s44G/44Gk44Gy44KNDQor44Gf44GK44GLLOOBjeOCiOOBn+OBiw0KK+OBn+OBl+OBvizjgZPjgYbjgZgNCivjgZ/jgZbjgo8s44KG44GN44GKDQor44Go44GN44GfLOOBkeOCk+OBmA0KK+OBqOOBv+OBnyzjgZfjgoXjgbLjgaENCivjgajjgb/jgZ8s44KI44GX44Gv44KLDQor44Go44G/44GfLOOBguOBjeOCiOOBlw0KK+OBpOOBmOOBuSzjgbLjgajjgZcNCivjgaTjgZjjgYvjgo8s44Go44GX44GKDQor44GI44KT44GpLOOBsuOCjeOBkw0KK+OBv+OChOOBluOBjSzjgYTjgZXjgYoNCivjgo/jgaAs44KI44GX44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBpOOBruOCig0KK+OChOOBvuOBoCzjgYvjgZrjgZcNCivjgoTjgb7jgaAs44G+44GV44Gy44KNDQor44KE44G+44GgLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgZQNCivjgoTjgb7jgoLjgags44Gm44KL44GC44GNDQor44KE44G+44GK44GLLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgY3jgY/jgYoNCivjgoTjgb7jgZfjgZ8s44GX44GS44GNDQor44KE44G+44Ge44GILOOBvuOBleOChuOBjQ0KK+OChOOBiizjgb/jgY3jgYoNCivjgoTjgZnjgaAs44GL44Gk44KI44GXDQor44KI44Gk44Gf44GrLOOBl+OBkuOBjQ0KK+OCiOOBl+OBr+OCiSzjgZHjgpPjgZgNCivjgojjgZPjgYbjgoks44GC44GN44GKDQor44Gy44KJ44GbLOOBsuOCjeOBkw0KK+OBvuOBpOOBhCzjgZHjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GTDQor44GZ44Ga44GNLOOBvuOBjeOBkw0KK+OBi+OBqOOBhizjgojjgZfjgZ/jgYsNCivjgY/jgavjgajjgoIs44Gy44KN44G/DQor44GI44KT44GpLOOBquOBiuOChA0KK+OBhOOBqOOBhizjgZ/jgaDjgZcNCivjgYrjgYvjgZbjgY0s44GV44KE44GLDQor44Gy44KN44Gv44GXLOOBruOCiuOBig0KK+OBleOBi+OBjSzjgZ/jgYvjgZMNCivjgb/jgY0s44GL44Gk44Gu44KKDQor44GP44G+44GNLOOBruOBtuOBig0KK+OBn+OChOOBvizjgYvjgZrjgbLjgZUNCivjgYrjgo/jgY0s44Gy44KN44G+44GVDQor44G/44KH44GpLOOChOOBmeOBr+OCiw0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgbDjgbAs44KI44GX44GKDQor44GL44Gt44GTLOOBsuOBp+OBig0KK+OBk+OBkOOCjCzjgb7jgZXjgYoNCivjgZ/jgZHjgaAs44GX44GS44GKDQor44GE44Gh44KA44KJLOOBhOOBoeOBn+OCjeOBhg0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgZUNCivjgYbjgYjjga/jgb4s44Gf44GR44GXDQor44Gq44GL44GELOOBqOOBl+OBj+OBqw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgobjgY0NCivjgZfjgb7jgaAs44GUDQor44KB44GQ44KNLOOBleOBqOOCiw0KK+OChOOBvuOChCzjgbLjgafjgYoNCivjgbXjgZjjgZ8s44KE44GZ44GKDQor44G+44Go44GwLOOCiOOBhuOBkw0KK+OBhOOBqOOBhizjgajjgY3jgZMNCivjgarjgYvjgYQs44G+44GV44GKDQor44GK44GL44GgLOOBpuOBpOOBig0KK+OBruOCguOBqCzjgY3jga/jgaENCivjgarjgYzjgZfjgb4s44G+44GV44GoDQor44KI44Gt44GL44KPLOOBsuOCjeOCiOOBlw0KK+OCj+OBn+OBquOBuSzjgb/jgY3jgYoNCivjgoDjgonjgb7jgaQs44Gv44KL44Gy44GTDQor44GN44Gf44GrLOOBsuOCjeOBguOBjQ0KK+OBv+OBi+OBvyzjgojjgZfjga7jgooNCivjgYLjgaDjgaEs44G+44KC44KLDQor44GE44Gu44GG44GILOOBruOBvOOCiw0KK+OBiuOBi+OBoCzjgb/jga7jgosNCivjgYvjgo/jgZfjgb4s44GT44GG44GYDQor44Gb44GNLOOBvuOBleOBig0KK+OBn+OBi+OBr+OBlyzjgb7jgarjgYoNCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44GP44KK44Gv44KJLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgb/jgaTjgZANCivjgbXjgZjjgYvjgZ8s44Gh44Gy44KNDQor44KI44GX44GoLOOCguOBqOOBi+OBmg0KK+OBi+OCj+OBmyzjgZfjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44Gy44GoDQor44GE44G+44GELOOBqOOBl+OBjQ0KK+OBk+OCgOOCjSzjgojjgZgNCivjgb7jgYjjgaAs44Gf44KC44GkDQor44GT44GE44GRLOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgajjgoLjgaHjgYsNCivjgZPjgpPjgaks44KG44Gy44Gh44KNDQor44GE44GX44GELOOBsuOCjeOBlw0KK+OBv+OBl+OBvizjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44G+44GV44GC44GNDQor44KE44G+44GX44GfLOOBn+OBi+OBguOBjQ0KK+OBn+OBquOBiyzjgabjgaTjgYoNCivjgoTjgb7jgaAs44GC44GN44KJDQor44GL44G/44KELOOCiOOBl+OBmA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgosNCivjgZfjgYrjgZbjgY0s44Gh44Gv44KLDQor44Gq44GL44KA44KJLOOBkeOBhOOBmeOBkQ0KK+OBn+OBkeOCguOBqCzjgb/jgaTjgYoNCivjgaDjgZHjgoTjgb4s44Gu44KK44GKDQor44GC44KJ44GL44KPLOOBiuOBleOCgA0KK+OCiOOBk+OBnyzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44GR44KT44GYDQor44GC44KJ44GL44KPLOOChuOBjeOBqOOBlw0KK+OBiuOBv+OBoSzjgYjjgYTjgZQNCivjgb7jgaTjgY0s44GK44GV44KADQor44GP44GX44Gz44GNLOOBv+OBoeOBguOBjQ0KK+OBq+OBo+OBnyzjgbLjgZXjgajjgZcNCivjgaTjgbzjgYbjgaEs44Gy44GV44KEDQor44GV44GE44Go44GGLOOBn+OBi+OBlw0KK+OBn+OBkeOCgOOCiSzjgojjgZfjgYvjgZoNCivjgZ/jgarjgbks44GR44KT44GYDQor44G+44GI44GgLOOCiuOCh+OBng0KK+OBmeOBjOOBr+OCiSzjgb7jgZXjgajjgZcNCivjgYvjga3jgZMs44G/44Gh44KE44GZDQor44KE44G+44GG44GhLOOCiuOBjeOBig0KK+OBi+OBv+OBluOCjyzjgajjgYrjgosNCivjgZPjgYws44Gh44GL44GXDQor44Gk44KL44GV44GNLOOBleOBoeOBig0KK+OBsuOBjOOBlyzjgbLjgo3jgobjgY0NCivjgYTjgZfjgaAs44Gc44KT44GYDQor44Gq44GL44GM44KPLOOBvuOBleOChuOBjQ0KK+OBpuOCieOBl+OBvizjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgoDjgoks44Go44GX44GKDQor44Gv44Gj44Go44KKLOOBvuOBk+OBqA0KK+OBleOBleOBjSzjgYjjgYTjgY0NCivjgbvjgYss44GZ44GR44Gy44GnDQor44Gu44KA44KJLOOBpuOCi+OBsuOBkw0KK+OBr+OChOOBrizjgb/jgY3jgYoNCivjgYLjgpPjgZbjgYQs44Gy44KN44KG44GNDQor44G144KL44GuLOOBqOOBl+OBsuOCjQ0KK+OBq+OBl+OCj+OBjSzjgYvjgZrjgYoNCivjga/jgZvjgYzjgo8s44KC44Go44GP44GrDQor44GE44KP44GfLOOBpuOBpOOBig0KK+OBqOOBoCzjgZfjgofjgZgNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GTDQor44G144KL44GE44GXLOOBsuOCjeOBteOBvw0KK+OBquOBi+OCgOOCiSzjgajjgY/jgbLjgo0NCivjgarjgYvjgYzjgo8s44GZ44Gq44GKDQor44Gq44GL44G+LOOBteOBv+OBsuOCjQ0KK+OBmeOBjOOCj+OCiSzjgoTjgZnjgbLjgo0NCivjgb7jgaTjgoLjgags44Gv44KL44GKDQor44Gv44GX44KC44GoLOOBsuOBleOBr+OCiw0KK+OBquOBi+OBpCzjgZfjgoXjgpPjgZgNCivjgZXjgajjgYbjgoos44Gy44Gn44G/DQor44GE44GN44GfLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgY3jgY/jgaEs44Gm44KL44GKDQor44GZ44GoLOOBi+OBmuOBig0KK+OBl+OBsOOBnyzjgZfjgpPjgYTjgaENCivjgarjgYTjgajjgYYs44GN44KI44Gy44GnDQor44KC44KKLOOBj+OBqw0KK+OBhOOBqOOBhCzjgb7jgZXjgYoNCivjgYTjgajjgYYs44Gf44GL44KG44GNDQor44G+44Gk44GW44GNLOOBsuOCjeOBguOBjQ0KK+OBhuOBiOOBrizjgb7jgZXjgagNCivjgYvjgZ/jgYrjgYss44G+44GZ44G/DQor44Gw44KT44GpLOOBteOBmOOBig0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgYTjgo/jgYQs44Gf44Gk44KEDQor44GX44KC44KE44G+LOOBvuOBmeOBkw0KK+OBguOBi+OBvuOCiyzjgaTjgajjgoANCivjgZTjgags44KI44GG44Gf44KN44GGDQor44G+44Gk44GgLOOChOOBmeOBi+OBmg0KK+OBreOBjOOBvyzjgYLjgY3jgokNCivjgoTjgb7jgZfjgZ8s44KG44GN44Gu44G2DQor44KI44Gt44KE44G+LOOBl+OCh+OBuOOBpA0KK+OBhOOBl+OChOOBvizjgZ/jgZHjgZcNCivjgYLjgbnjgYvjgo8s44G+44GV44G/DQor44GE44G+44KA44KJLOOBsuOBleOBruOCig0KK+OBhOOCj+OBquOBjCzjgZPjgYbjgZgNCivjgYbjgYjjgaAs44GL44Ga44GTDQor44G144GY44GL44KPLOOBguOBjeOCiQ0KK+OBn+OCgOOCiSzjgZHjgpPjgZgNCivjgYvjgZfjgYQs44G+44GV44Gu44KKDQor44KI44Gt44GgLOOBv+OBpOOBruOCig0KK+OCiOOBk+OBpCzjgY3jgojjgYvjgZoNCivjgYLjgZXjgYos44Gf44Gk44GKDQor44Gf44Gq44GLLOOBmOOCheOCk+OBmA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgoTjgZfjgY0s44G/44Gu44KLDQor44GL44GE44GM44GELOOBiuOBleOCgA0KK+OBneOBjOOBuSzjga/jgZjjgoENCivjgbXjgovjgYvjgo8s44GZ44GZ44KADQor44GL44KP44GG44GhLOOBqOOBl+OBig0KK+OBteOBmOOBhCzjgb7jgZXjgYrjgb8NCivjgYTjgZHjga7jgoQs44KK44KF44G444GEDQor44GK44GhLOOBsuOBleOBig0KK+OBquOBi+OCguOBqCzjgozjgYTjgZgNCivjgo/jgYvjgbDjgoTjgZcs44GX44GS44KLDQor44GC44KJ44GNLOOBv+OBruOCiw0KK+OChOOBuSzjgY/jgavjgbLjgZMNCivjgZ/jgYvjga/jgZcs44KG44GN44GKDQor44GX44Gw44GuLOOCiOOBl+OBsuOBlQ0KK+OBn+OBjOOBl+OCiSzjgb7jgZXjgagNCivjgZnjgb/jgZ8s44G+44GV44GKDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBoeOBrizjgobjgYbjgZgNCivjgoTjgb7jgaAs44GR44GE44GYDQor44GE44GM44KJ44GXLOOBn+OBoOOBvw0KK+OBhOOBkeOBjOOBvyzjgoTjgZnjgobjgY0NCivjgbXjgarjgaAs44Gf44GR44GXDQor44GE44Gu44GG44GILOOChuOBjeOBig0KK+OBq+OBl+OChOOBvizjgZHjgpPjgZgNCivjgYTjgZfjga/jgoks44KG44Gy44GhDQor44GZ44Ga44GNLOOBruOCiuOChuOBjQ0KK+OBk+OCguOCiuOChCzjgZ/jgaTjgYoNCivjgaHjgoXjgZQs44Gu44KK44GKDQor44GT44Gw44KE44GXLOOBquOBiuOBr+OCiw0KK+OBv+OChOOCguOBqCzjga/jgozjgYoNCivjgarjgYvjgZ8s44G144G/44GKDQor44GE44KK44Gf44GrLOOBsuOBp+OBig0KK+OBiuOBjOOCjyzjgoTjgZnjgbLjgo0NCivjgYrjga0s44G/44Gk44GKDQor44GT44G+44GkLOOBqOOBl+OBig0KK+OBv+OBruOCjyzjgabjgaTjgoQNCivjgbXjgZjjgYvjgo8s44GT44GG44GY44KNDQor44GL44KP44GQ44GhLOOBl+OBkuOBqA0KK+OBoeOBsCzjgoTjgZnjgbLjgo0NCivjgarjgYvjgavjgZcs44Gu44KK44KI44GXDQor44GV44GP44G+LOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBvuOBlSzjgZ/jgYvjgobjgY0NCivjgZvjgY0s44Gf44GL44KI44GXDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBteOBmOOCguOBqCzjgajjgZfjgZ/jgYsNCivjgYrjgZDjgoos44Gf44GE44GhDQor44GE44GX44Gw44GXLOOBi+OBmuOBig0KK+OBguOBluOBvyzjgbLjgo3jgZcNCivjgYrjgYzjgZXjgo/jgoks44GK44GV44KADQor44GV44GE44Go44GGLOOBpOOBqOOCgA0KK+OBn+OBquOBuSzjgZ/jgYvjgobjgY0NCivjgoLjgorjgoTjgb4s44Gf44GP44GKDQor44GN44Gf44GW44KPLOOChuOBjeOBoQ0KK+OBi+OBquOBluOCjyzjgZHjgpPjgZgNCivjga/jgonjgaAs44G+44GV44GC44GNDQor44GK44GP44KE44G+LOOBsuOCjeOBlw0KK+OBl+OBv+OBmizjgarjgYrjgagNCivjgYTjga7jgb7jgZ8s44KE44GZ44Gy44KNDQor44G144KL44GV44KPLOOBqOOBl+OBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgZXjgaDjgYoNCivjgYrjga4s44Gy44Go44GXDQor44KC44KN44GK44GLLOOBqOOBl+OChuOBjQ0KK+OBl+OBruOBluOBjSzjgojjgbLjgaENCivjga7jgZDjgaEs44G144G/44GKDQor44GX44G+44GgLOOChOOBmeOBig0KK+OBi+OCj+OBleOBjSzjgZ/jgaTjgZgNCivjgYrjgYvjgo8s44GN44KI44GXDQor44GV44KB44GX44G+LOOBl+OBkuOCiw0KK+OBu+OBneOBmOOBvizjgarjgYrjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GL44KP44Gq44G/LOOBkeOCk+OBmA0KK+OBj+OBleOBrizjgZfjgoXjgbjjgYQNCivjgaTjgaHjgZ8s44Gy44Gn44Go44GXDQor44GK44Gv44GXLOOBi+OBpOOBig0KK+OBruOBoCzjgb7jgZXjgagNCivjgo/jgZ/jgarjgbks44GV44Go44GXDQor44KI44GX44Gf44GRLOOBm+OBhOOBmA0KK+OBteOBj+OBl+OBvizjgobjgY3jgYoNCivjgYTjgo/jgoQs44Gb44GE44GNDQor44GV44GL44KC44GoLOOBl+OCjQ0KK+OBj+OBvOOBnyzjgaTjgajjgoANCivjgYTjgZ3jgoTjgb4s44GR44KT44GYDQor44GK44GuLOOBteOBv+OBguOBjQ0KK+OBguOBuSzjgZfjgZLjgYLjgY0NCivjgYrjgaDjgo/jgoks44GT44GG44GYDQor44GN44GG44GhLOOChuOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgb7jgZPjgagNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44Gh44KD44Gw44Gf44GRLOOBi+OBmuOBsuOBkw0KK+OBleOBi+OBhCzjgajjgb/jgYoNCivjgYrjgZ8s44G+44GV44GC44GNDQor44Gq44GL44GuLOOBkeOBhOOBleOBjw0KK+OBr+OBoCzjgajjgoLjgYLjgY0NCivjgarjgYvjgoTjgb4s44GT44GG44GYDQor44GV44GL44GQ44GhLOOBv+OBjeOBig0KK+OBquOBjOOBl+OBvizjgbLjgZXjgYoNCivjgZXjgYzjgoks44KE44GZ44Gy44KNDQor44GL44KP44GuLOOBguOBjeOCiQ0KK+OBi+OBreOBkyzjgZ/jgYvjgYoNCivjgarjgYvjgaAs44KC44Go44Gv44KLDQor44GC44G+44GuLOOBl+OCh+OBmA0KK+OChOOBluOBjSzjgZPjgYbjgYTjgaENCivjgbLjgonjgY7jga4s44G/44Gk44GC44GNDQor44Gf44Gw44GfLOOBn+OBpOOBig0KK+OBj+OBq+OChuOBjSzjgb/jgaHjgYoNCivjgYrjgY/jgYbjgaEs44GR44KT44GYDQor44GZ44GO44KC44GoLOOBqOOBl+OBteOBvw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgYoNCivjgZnjgY7jgZXjgY0s44G+44GV44G144G/DQor44KE44G+44GX44GfLOOCiOOBl+OBig0KK+OBruOCgOOCiSzjgojjgZgNCivjgZfjgb7jgaAs44G+44GV44G/DQor44G144GP44GgLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZgNCivjgYrjgY/jgbzjgoos44GR44KT44GYDQor44KI44GT44GL44KPLOOChOOBmeOBig0KK+OBp+OCk+OBoCzjgajjgZfjgbLjgo0NCivjgbXjgY/jgarjgYws44Gf44Gg44KI44GXDQor44Gf44GL44GX44G+LOOBhOOBleOBig0KK+OBi+OBqOOBhizjgb/jgaTjgosNCivjgYTjgZfjgZDjgo0s44Gf44GL44GXDQor44GE44GR44G5LOOBl+OCheOBmA0KK+OBiuOBpOOBiyzjgYvjgZrjgYoNCivjgZfjgb/jgZos44GE44Gh44GKDQor44GZ44Ga44GNLOOChOOBmeOBsuOCjQ0KK+OBpOOChCzjgbLjgo3jga7jgooNCivjgYbjgaHjgaAs44Gy44Gn44GYDQor44GK44GhLOOCiuOCh+OBmA0KK+OBguOCiuOBjCzjgo/jgZ/jgosNCivjgarjgYvjgZfjgb4s44Gf44GL44Gm44KLDQor44G+44GV44GNLOOBi+OBmuOBvw0KK+OBquOBi+OBl+OBvizjgb/jgaTjgosNCivjgYLjgZXjga/jgoks44GL44Ga44Gu44KKDQor44GU44GoLOOBsuOBp+OBig0KK+OBhuOBiOOBvuOBpCzjgbLjgo3jgZcNCivjgZXjgY3jgoLjgoos44G+44GV44G/DQor44KI44GX44GgLOOBjeOCiOOBlw0KK+OBteOBmOOBnyzjgZnjgZnjgoANCivjgoTjgY7jgZfjgZ8s44G/44Gk44GODQor44KA44KN44G144GXLOOBpuOBpOOBig0KK+OBi+OCgeOBoCzjgYLjgY3jga7jgooNCivjgYTjgYvjgo8s44GP44Gr44KG44GNDQor44KE44G+44GW44GNLOOBmeOBmeOCgA0KK+OBpOOCi+OBr+OBlyzjgojjgZfjga7jgooNCivjgb/jga7jgZfjgb4s44Gf44GL44GKDQor44GN44GX44KC44GoLOOBvuOBk+OBqA0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZ/jgYsNCivjgarjgYvjgZ8s44GR44KT44GE44GhDQor44GI44KT44GpLOOBn+OBkeOBlw0KK+OCguOCiuOChCzjgYvjgaTjgZgNCivjgY/jgbzjgZ8s44G+44Gk44G/DQor44Gq44GK44Gv44KJLOOBvuOBleOBig0KK+OBj+OBkizjgb7jgZXjgojjgZcNCivjgYvjgZXjga4s44Gy44GV44GKDQor44GE44GE44KA44KJLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgojjgZfjgYLjgY0NCivjgYrjgZ8s44Gk44Go44KADQor44Gf44GR44GTLOOChOOBmeOCiOOBlw0KK+OCgOOCieOBk+OBlyzjgajjgZfjgYoNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44GC44GV44GuLOOBiOOBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgbLjgo3jgZ/jgaANCivjga/jgoTjgZcs44Gy44KN44GXDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBiuOBoCzjga7jgorjgYoNCivjgoTjgb7jgYbjgaEs44G+44GT44GoDQor44GL44KP44GL44G/LOOBvuOBleOBlw0KK+OBhuOBmeOBoCzjgZfjgpPjgYTjgaENCivjgZXjgajjgYYs44GN44KI44GXDQor44GP44KJ44GX44G+LOOBkeOBhOOCgeOBhA0KK+OBvuOBmyzjgZnjgb/jgYoNCivjgZPjga4s44Gy44KN44GXDQor44G+44Gk44GW44KPLOOBkeOCk+OBmA0KK+OBl+OBvuOBoCzjgb7jgZXjga/jgosNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44GK44GP44G8LOOBkeOBq+OBpA0KK+OBiuOBkOOCiSzjgb7jgZXjgobjgY0NCivjgZXjgY/jgb4s44Gy44KN44G144G/DQor44Gu44GQ44GhLOOBqOOBl+OBig0KK+OBsuOBquOBnyzjgZHjgpPjgZgNCivjgbXjgZjjgYQs44KI44GX44GC44GNDQor44GZ44GO44KC44GoLOOBvuOBleOBqOOBlw0KK+OBpOOBi+OBr+OCiSzjgabjgaTjgo0NCivjgb/jgaTjgarjgYws44Gf44Gk44KEDQor44Gq44GL44KA44KJLOOCiuOCh+OBsuOBoQ0KK+OChOOBmOOBvizjgY3jgojjgZcNCivjgYvjgb/jgZ8s44Gk44Gt44GKDQor44Gy44GMLOOBk+OBhuOBmA0KK+OBv+OBquOBjOOCjyzjgZfjgpPjgYTjgaENCivjgajjgb8s44GX44KT44GYDQor44GV44GL44GN44Gw44KJLOOBruOBvOOCiw0KK+OBi+OBj+OBnyzjgbLjgo3jgZcNCivjgaTjgaHjgoQs44GC44GN44KJDQor44KA44KJ44GfLOOBl+OCheOBsuOBoQ0KK+OBn+OBquOBuSzjgojjgZfjga7jgooNCivjgZfjgoLjgaAs44GR44KT44GYDQor44Gk44GL44KC44GoLOOBi+OBmuOBruOCig0KK+OBr+OBquOBr+OBnyzjgYjjgYTjgZgNCivjgYvjgpPjgaAs44Gy44KN44Gu44KKDQor44GL44KP44GgLOOBk+OBhuOBhOOBoQ0KK+OCiOOBl+OBhCzjgZfjgoXjgavjgaENCivjgY/jgonjgoQs44G+44GV44GXDQor44Gm44KJ44GX44G+LOOBlOOCjQ0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgYLjgY0NCivjgYTjgacs44G+44GV44KI44GXDQor44Gk44KLLOOBn+OBkeOBlw0KK+OBhuOBpOOBruOBv+OChCzjgZnjgZnjgoANCivjgarjgYvjgZbjgo8s44GY44KF44KT44GNDQor44Gy44GgLOOCiOOBl+OBpuOCiw0KK+OBu+OBneOBi+OCjyzjgZ/jgYvjgYoNCivjgaHjgZDjgZUs44Gy44KN44GXDQor44Gd44Gy44KDLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgbLjgafjgobjgY0NCivjgZXjgYvjgaYs44GR44KTDQor44GC44KP44GfLOOBguOBjeOCiQ0KK+OCj+OBi+OBsOOChOOBlyzjgojjgZfjga7jgooNCivjgYjjgpPjgZjjgoXjgZgs44GP44KJ44GYDQor44Gu44GQ44GhLOOBsuOBp+OBig0KK+OBi+OCj+OCgOOCiSzjgZfjgpPjgZgNCivjgoLjgorjgoLjgags44KG44GN44GKDQor44KI44Gt44Gv44GqLOOBpOOBreOBig0KK+OBmOOBoCzjgY3jgbjjgYQNCivjgYbjgYjjgaAs44Gy44Gn44KG44GNDQor44GX44Gu44Gv44KJLOOCiOOBl+OBig0KK+OBn+OBi+OChOOBvizjgajjgZfjgbLjgo0NCivjgoTjgb7jgoDjgo0s44Gy44GV44GKDQor44KP44GNLOOBqOOBl+OBi+OBmg0KK+OBguOBvuOBrizjgb7jgZXjgbLjgagNCivjgbvjgZ3jgYvjgo8s44KI44GX44Gu44G2DQor44Go44GULOOBsuOBp+OBmA0KK+OBquOBiyzjgZvjgYTjgZgNCivjga7jgaAs44Gy44KN44G/DQor44KE44G+44GX44GfLOOBk+OBuOOBhA0KK+OBquOBi+OBmOOBvizjgbXjgb/jgYoNCivjgarjgYzjgYrjgYss44GX44GS44KLDQor44GX44G244KELOOBi+OBmuOBsuOBkw0KK+OBm+OCiuOBluOCjyzjgb7jgZPjgagNCivjgbXjgZjjgoLjgoos44GT44GG44GE44GhDQor44G144GP44GgLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgb/jgY3jgYoNCivjgoTjgb7jgZgs44Gf44Gg44Gy44KNDQor44GT44Gw44KE44GXLOOBguOBjeOBig0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZfjgZfjgY/jgoks44GE44GV44KADQor44GT44GQ44KMLOOBvuOBleOBi+OBmg0KK+OCguOCiizjgb7jgZXjga7jgbYNCivjgarjgYvjgoDjgoks44GY44KF44KT44GTDQor44GE44GE44GY44G+LOOBvuOBpOOBig0KK+OBjeOBn+OBjOOCjyzjgajjgZfjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GVDQor44Gq44GM44GX44G+LOOBqOOBv+OBig0KK+OBiOOBruOBjSzjgZ/jgYvjga7jgooNCivjgZXjgajjgYYs44Gh44GI44GTDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBhuOBiOOBoCzjgZPjgYbjgZgNCivjgb/jgZrjgZ/jgass44KI44GX44GL44GaDQor44GY44KF44GuLOOBk+OBng0KK+OBguOBi+OBlyzjgZvjgYTjgZgNCivjgarjgYvjgoLjgags44Gf44Gk44Gy44KNDQor44Gq44GL44KE44G+LOOBn+OBi+OBsuOBlQ0KK+OBteOBmOOBhCzjgbLjgafjgYLjgY0NCivjgarjgYvjgoTjgb4s44GE44Ga44G/DQor44KI44Gt44G/44GkLOOBjeOCiOOBlw0KK+OBn+OBi+OBmyzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44Gv44KLDQor44G144GL44GW44KPLOOCiOOBsuOBoQ0KK+OBi+OBkuOBhuOCiSzjga7jgorjgZ/jgYsNCivjgZfjgpPjgaks44Gu44KK44KG44GNDQor44GX44G/44GaLOOCiOOBl+OBpuOCiw0KK+OBleOBi+OBl+OBnyzjgZ/jgaDjgojjgZcNCivjgb/jgoTjgoDjgoks44KE44GZ44GIDQor44Gf44Gq44GLLOOBhOOBmuOBvw0KK+OBn+OBi+OBhOOBlyzjgojjgZfjga7jgbYNCivjgYTjgZfjgYzjgY0s44KI44GX44GKDQor44Gf44GL44GgLOOBsuOCjeOBig0KK+OBn+OBpuOBhOOBlyzjgYLjgY3jgokNCivjgZXjgYvjgZ8s44Go44GP44KI44GXDQor44KI44GT44Gv44GfLOOBn+OBpOOBig0KK+OBj+OChCzjgYrjgZXjgoANCivjgojjgZfjgaAs44Gy44KN44Gu44G2DQor44GN44Gf44GgLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBoCzjgZfjgofjgbLjgaENCivjgZPjgbDjgoTjgZcs44Gm44Gk44GKDQor44Gq44KK44GfLOOBqOOBl+OBig0KK+OBhOOBrOOBhCzjgbLjgajjgZcNCivjgoTjgZnjgYvjgo8s44Go44GX44Gu44G2DQor44Gu44GQ44GhLOOBvuOBleOBvw0KK+OBl+OCh+OBoCzjgYvjgaTjgZgNCivjgoTjgb7jgaAs44Gf44Gk44G/DQor44KP44GP44GgLOOCiOOBl+OBrg0KK+OBguOBuSzjgajjgYrjgosNCivjgZ/jgZHjgYvjgo8s44G+44GV44Go44GXDQor44GV44Go44GGLOOBmeOBmeOCgA0KK+OBr+OBquOBiuOBiyzjgZHjgpPjgZgNCivjgYrjga4s44KI44GX44GL44GaDQor44Gf44Gq44GLLOOBi+OBmuOBquOBiw0KK+OBpOOBruOBoCzjgbLjgafjgYoNCivjgarjgb7jgYgs44Go44GX44Gy44GTDQor44Gf44GL44Gv44GXLOOBn+OCguOBpA0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgacNCivjgarjgYvjgoDjgoks44Gv44KL44GKDQor44GG44KK44GGLOOBl+OCk+OBmOOCjQ0KK+OBteOBmOOBhOOCjyzjgYvjgZrjgb8NCivjgZXjgZXjgY0s44G/44Gk44KI44GXDQor44GN44KA44KJLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBjizjgbXjgb/jgYoNCivjgYvjgZ/jgoTjgb4s44GZ44Gq44GKDQor44GE44GQ44GhLOOBhOOBoeOBng0KK+OBguOBuSzjgabjgovjgbLjgZUNCivjgZnjgZrjgY0s44Gk44Go44KADQor44Gy44KJLOOBleOBoOOBsuOCjQ0KK+OBquOBlOOBlyzjgZ/jgYvjgYoNCivjgYLjgaDjgaEs44Gy44Gn44GNDQor44KA44KJ44KE44G+LOOCiOOBl+OBig0KK+OBj+OBq+OBi+OBnyzjgbLjgafjgYoNCivjgb7jgaTjgYQs44GR44KT44GeDQor44GT44GE44GnLOOBguOBjeOBig0KK+OBsuOCjeOBnyzjgZHjgpPjgZgNCivjgajjgb/jgarjgYss44Gf44Gg44Gy44GVDQor44KP44GN44GfLOOBl+OBkuOCiw0KK+OBhuOCgeOCgOOCiSzjgY3jgb/jgZMNCivjgbXjgZEs44Gv44KL44Gf44GRDQor44GG44GI44G+44GkLOOBteOBv+OBsuOBkw0KK+OBvuOBpOOBluOBjSzjgZ/jgYvjgZcNCivjgarjgYvjga4s44KG44Gf44GLDQor44GT44Gg44GLLOOBl+OCheOBsuOBoQ0KK+OBsuOCjeOBn+OBqyzjgbLjgo3jgagNCivjgZ/jgYvjga/jgZcs44GK44GV44KADQor44GV44GuLOOBpuOCi+OBig0KK+OBl+OBv+OBmizjgZ/jgYvjgbLjgo0NCivjgYvjgpPjgZbjgY0s44GL44Ga44Gy44KNDQor44GK44GV44GPLOOBsuOBp+OBguOBjQ0KK+OCj+OBl+OBoCzjgZHjgpPjgZgNCivjgY/jgavjgoLjgags44G+44KC44KLDQor44GX44KN44GL44KPLOOBmeOBmeOCgA0KK+OBi+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgYrjgYss44G/44Gk44GKDQor44GT44KC44KKLOOBsuOCjeOChOOBmQ0KK+OBr+OChOOBlyzjgojjgZfjgYoNCivjgYvjga3jgZMs44G144GY44GKDQor44GL44Gp44GE44GRLOOBl+OCh+OBmA0KK+OBiuOBi+OCgOOCiSzjgojjgbLjgaENCivjgYrjgYvjgoDjgo0s44GL44Gk44G/DQor44Gf44G244GhLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgaTjgoLjgosNCivjgYrjgZUs44Gf44GR44GKDQor44GE44KK44GILOOBkeOCk+OBmA0KK+OBn+OBi+OBryzjgZPjgYbjgYTjgaENCivjgZ/jgYTjgoks44GY44KF44Gr44Gh44KNDQor44G/44Gq44G/LOOCiOOBl+OBi+OBmg0KK+OBhOOBkeOBoCzjgabjgovjgojjgZcNCivjgYLjgYrjgY0s44GL44Ga44GKDQor44KE44G+44GG44GhLOOBvuOBleOBsuOBpw0KK+OCiOOBl+OBr+OCiSzjgoTjgZnjgb7jgZUNCivjgZXjgZXjgY0s44G+44GT44GoDQor44G/44Ga44Gf44GrLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBrizjgaTjga3jgYvjgZoNCivjgarjgYzjgZ8s44KI44GX44GC44GNDQor44GL44Gf44KE44G+LOOBl+OBkuOBguOBjQ0KK+OBiuOBoCzjgYTjgY/jgYoNCivjgYjjga7jgoLjgags44Gq44GK44G/44GhDQor44Gf44GR44Gq44GLLOOBmOOCheOBq+OBoQ0KK+OBvuOBpOOBluOBjSzjgZjjgoXjgavjgaHjgo0NCivjgb7jgaTjgbDjgoks44Gq44GK44GTDQor44KE44G+44GX44GfLOOBguOBjeOBruOCig0KK+OCgeOBkOOCjSzjgZ/jgYvjgZcNCivjgYrjgZbjgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GM44G/LOOBi+OBmuOBsuOBkw0KK+OBiuOBvuOBiCzjga/jgovjgYoNCivjgY3jgaAs44KE44GZ44G+44GVDQor44GG44GI44GuLOOBl+OBkuOCiw0KK+OBiuOBi+OBoCzjgbXjgb/jgYoNCivjgYvjgarjgZXjgY0s44GY44KH44GYDQor44KE44GL44G5LOOBvuOBleOBteOBvw0KK+OBquOCgOOCiSzjgYLjgY3jgbLjgagNCivjgYTjgYTjgZjjgb4s44Go44GX44GE44GhDQor44GV44GV44GNLOOBi+OBpOOChuOBjQ0KK+OCguOBoeOBmuOBjSzjgYLjgY3jgokNCivjgbbjgpPjgoQs44GR44GEDQor44GK44GL44GuLOOCiuOCh+OBmA0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgY0NCivjgYbjgYjjga4s44GV44GL44GIDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBi+OCj+OBkOOBoSzjgZPjgYbjgZgNCivjgZ/jgY3jgoLjgags44Gb44Gk44GTDQor44GL44Gf44GK44GLLOOBsuOCjeOCiOOBlw0KK+OBj+OBleOBi+OCjyzjgbLjgafjgobjgY0NCivjgYLjgZXjgYQs44GT44GG44GE44GhDQor44KC44KKLOOBl+OCk+OBhOOBoQ0KK+OBj+OBvCzjgYvjgpPjgZgNCivjgYLjgpPjganjgYYs44GK44GV44KADQor44GG44KJ44KE44G+LOOBi+OBpOOChuOBjQ0KK+OBj+OCiuOBnyzjgajjgb/jgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GL44Gt44GL44KPLOOChuOBv+OBkw0KK+OBhuOBiOOCguOBqCzjgoLjgajjgYLjgY0NCivjgarjgYvjgYos44Gu44G244KG44GNDQor44GK44GL44KC44GoLOOCiOOBl+OBruOBtg0KK+OBq+OBl+OCgOOCiSzjgajjgZfjgYoNCivjgoTjgaAs44KE44GZ44GKDQor44GN44GpLOOBleOBqOOBlw0KK+OBiuOBi+OBsOOChOOBlyzjgajjgYrjgosNCivjgYvjgo/jgZfjgb4s44Gy44Gn44GoDQor44Gv44GX44GNLOOBv+OBpOOBr+OCiw0KK+OBv+OChOOCguOBqCzjgb7jgZXjga7jgooNCivjgarjgYvjgYos44GX44GS44KLDQor44G+44Gk44GK44GLLOOBquOBiuOBjQ0KK+OBsuOBs+OBrizjgbLjgajjgZcNCivjgavjgZfjgYvjgo8s44GI44GE44GE44GhDQor44GL44G244GfLOOCiOOBl+OBj+OBqw0KK+OCj+OBn+OBquOBuSzjgYTjgaHjgo3jgYYNCivjgoTjgb7jga4s44GK44GV44KADQor44GV44GE44Go44GGLOOCiOOBl+OBig0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgY/jgo/jga/jgoks44Gy44Gn44GKDQor44KC44KK44GfLOOCiuOCh+OBng0KK+OBteOBmOOBhCzjgZHjgpPjgYTjgaENCivjgarjgYzjgZfjgb4s44Gv44KL44GKDQor44GE44Gq44KA44KJLOOBjeOCiOOBlw0KK+OBiuOBluOCjyzjgYvjgZrjgYrjgb8NCivjgZ/jgY3jgoLjgags44GK44GV44KADQor44G/44KE44GX44GfLOOBv+OBpOOBsuOCjQ0KK+OCguOBhuOCiizjgZjjgoXjgpPjgZ4NCivjgYTjga7jgYbjgYgs44Gf44GL44G/44GhDQor44Gq44GM44GuLOOBhOOBoeOCjeOBhg0KK+OBr+OCieOBqCzjgZ/jgYvjgbLjgZMNCivjgb7jgb/jgoQs44KG44GN44GKDQor44Gy44GM44GX44Gw44GfLOOBsuOCjeOBvw0KK+OBq+OBl+OBn+OBqyzjgYvjgYrjgosNCivjgZ/jgYvjgY8s44GR44KT44GYDQor44Gv44Gq44GgLOOBjeOCiOOBlw0KK+OBguOBleOBrizjgZPjgYbjgYTjgaENCivjgbDjgbAs44GX44GS44G/44GkDQor44GE44Go44GGLOOChuOBhuOBmA0KK+OBhOOBhOOBoCzjgZXjgajjgZcNCivjgZPjga/jgoTjgYvjgo8s44Go44GX44Gy44KNDQor44G144GY44KP44KJLOOBmeOBv+OCiOOBlw0KK+OBl+OCheOBj+OCiizjgaTjga3jgobjgY0NCivjgobjgZ/jgass44G+44GV44Gy44KNDQor44KA44Gt44GL44KPLOOBsuOBqOOBlw0KK+OBi+OCk+OBrizjgY/jgavjgYoNCivjgavjgags44Gy44GV44GXDQor44Gf44KA44KJLOOBvuOBleOChuOBjQ0KK+OBquOBi+OBl+OBvizjgb/jgaTjgYoNCivjgYrjgZ8s44KC44Go44GC44GNDQor44GE44Gu44GG44GILOOCiOOBl+OBig0KK+OBj+OBvuOBvuOCiyzjgajjgZfjgYvjgZoNCivjgZ/jgarjgYss44Gy44Gn44GKDQor44G+44GI44GgLOOBleOBqOOBlw0KK+OBguOBvyzjga7jgbbjgobjgY0NCivjgb/jgarjgags44G/44Gu44KLDQor44Gr44GX44GgLOOBv+OBoeOBig0KK+OBhOOBl+OBr+OCiSzjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44GX44KT44GN44GhDQor44GE44GP44GfLOOBkeOCk+OBlw0KK+OBiuOBjSzjgZ/jgZHjgbLjgZMNCivjgYvjgYzjgo8s44GL44Gk44G/DQor44Gy44KJ44GL44KPLOOChOOBmeOBsuOBkw0KK+OChOOBvuOBluOBjSzjgZHjgpMNCivjgY/jgb7jgYzjgYQs44GE44GP44GTDQor44Gf44GX44KNLOOBvuOBleOBsuOCjQ0KK+OBleOBrizjgYvjgaTjgb8NCivjgb/jganjgorjgYvjgo8s44KI44GX44GC44GNDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OCiOOBl+OBvyzjgaHjgYvjgZMNCivjgYTjgarjgb8s44KI44GX44GTDQor44KP44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBk+OBjCzjgZfjgZLjgosNCivjgZnjgYzjgo/jgoks44G+44GV44GC44GNDQor44Gf44GR44GG44GhLOOBruOBtuOBig0KK+OBiOOBoCzjgYLjgY3jgokNCivjgYLjgpPjganjgYYs44GL44Ga44GKDQor44Gf44KL44GELOOBleOBtuOCjQ0KK+OBlOOBqCzjgajjgZfjgYoNCivjgZfjgoLjgYzjgY0s44KE44GZ44Gy44GVDQor44Gq44GM44GfLOOBn+OBoOOBig0KK+OBu+OBl+OBi+OCjyzjgZfjgoXjgbLjgaHjgo0NCivjgZPjgb/jgarjgb8s44Go44GX44GKDQor44GL44GMLOOBqOOBl+OBruOCig0KK+OBr+OBnOOBi+OCjyzjgZPjgYbjgZjjgo0NCivjgaHjgbAs44G/44Gk44GX44GSDQor44GG44KJ44GuLOOBsuOBp+OBvuOBlQ0KK+OBk+OBrizjgbXjgb/jgbLjgZMNCivjgZPjgbDjgoTjgZcs44G+44GV44Gu44KKDQor44KC44KC44GbLOOBsuOCjeOBkw0KK+OBpOOBkizjgbLjgafjgagNCivjgoTjgZnjgZPjgaEs44GN44KI44GXDQor44G744Gd44GW44KPLOOBqOOCguOBsuOBpw0KK+OBmeOBjuOChOOBvizjgoTjgZnjgbLjgo0NCivjgYLjgbks44KI44Gy44GhDQor44Gf44Gq44GLLOOCiOOBl+OCjQ0KK+OBm+OBhOOBkSzjgbLjgo3jgYoNCivjgaTjgZIs44KG44Gf44GLDQor44KP44GL44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBiuOBj+OBvCzjgZfjgZLjgosNCivjgYrjgYvjgbks44KG44GN44GKDQor44GE44KP44GELOOBmOOCheOBq+OBoQ0KK+OBn+OBquOBiyzjgb7jgZXjgYoNCivjgoTjgb7jgoLjgags44KIDQor44Gf44GL44KE44G+LOOBruOBtuOBig0KK+OBn+OBmOOBvizjgZfjgZrjgYsNCivjgYvjgZrjgZfjgo0s44GV44Go44GXDQor44GT44GE44GnLOOBqOOBl+OBjQ0KK+OBi+OCgizjgYvjgZrjgojjgZcNCivjgY3jgZ/jgZjjgb4s44KG44GG44GTDQor44Gv44G+44GuLOOBmOOCheOCk+OBmA0KK+OBhOOBhOOChOOBvizjgoTjgZnjgZ/jgYsNCivjgoTjgb7jgZfjgZ8s44GX44KH44Gy44GhDQor44GN44GfLOOBi+OBpOOChuOBjQ0KK+OBhOOBl+OBn+OBqyzjgZ/jgZHjgobjgY0NCivjgY/jgZjjgoEs44Gu44G244KG44GNDQor44GN44GX44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBquOBjOOBrizjgb7jgZXjga7jgbYNCivjgojjgoDjgoks44GC44GN44GKDQor44Gq44GL44GX44G+LOOBn+OBi+OBig0KK+OCguOCiizjgbXjgb/jgYoNCivjgoTjgb7jgZgs44Gy44GV44GKDQor44GK44Gc44GNLOOBpuOCi+OChuOBjQ0KK+OBhOOBquOBoCzjgb/jgaTjgYoNCivjga/jgoTjgZss44Gq44GK44GNDQor44G744KT44G9LOOBsuOBp+OBruOCig0KK+OBiuOBsuOCgyzjgb7jgZXjga/jgosNCivjgY3jgZ/jgoDjgoks44Gf44GL44GXDQor44Go44GX44KTLOOBn+OBpOOBruOCig0KK+OBn+OBkeOBhCzjgojjgZfjgobjgY0NCivjgYrjgYvjgoTjgb4s44GX44GS44KLDQor44GE44GX44Ga44GLLOOBqOOBl+OChuOBjQ0KK+OBr+OBnyzjgZfjgofjgbLjgaENCivjgZnjgYzjga/jgoks44GX44GS44KG44GNDQor44GE44KP44G/LOOBleOBqOOBlw0KK+OChuOCguOBqCzjgZXjgaDjgYoNCivjgY3jgZ/jgYzjgo8s44GL44Ga44GKDQor44GE44Gv44KJLOOBvuOBleOBsuOCjQ0KK+OBruOCgOOCiSzjgZ/jgaDjga7jgooNCivjgb/jgoTjgZXjgYss44Go44GX44KG44GNDQor44KI44GX44GgLOOBiOOBhOOBmA0KK+OBteOBi+OBoCzjgojjgZfjgYvjgZoNCivjgbXjgZjjgo/jgoks44G+44GV44Gf44GLDQor44GN44GoLOOChOOBmeOBlw0KK+OBhuOBiOOCguOCiizjgZ/jgYvjgZcNCivjgoTjgb7jgYvjgo8s44GZ44GZ44KADQor44GP44KN44GgLOOBi+OCk+OBmA0KK+OBiuOBpOOBiyzjgZ/jgYvjgZcNCivjgYbjgYjjgaAs44GV44Go44GK44KLDQor44Gd44GuLOOChOOBmeOBteOBvw0KK+OBmOOCh+OBoOOBhCzjga7jgbbjgYoNCivjgZfjgpPjgZ4s44GT44GG44Gf44KN44GGDQor44GG44GI44GgLOOBqOOBl+OBguOBjQ0KK+OCj+OBi+OBv+OChCzjgobjgYbjgZgNCivjgYvjgoDjgoks44KE44GZ44GKDQor44G144KL44Gf44GrLOOBsuOBp+OBig0KK+OBi+OBpOOBhuOCiSzjgobjgZ/jgYsNCivjgY/jgb7jgYQs44KG44GeDQor44Gw44GwLOOBhOOBoeOCjeOBhg0KK+OBi+OBreOBqOOCgizjgZHjgpPjgZgNCivjgoDjgonjga/jgZcs44Go44KC44KI44GXDQor44Gp44GELOOBn+OBi+OBlw0KK+OBquOBv+OBi+OCjyzjgYvjgZrjgb/jgaQNCivjgZ/jgYvjgYrjgYss44Go44GX44GC44GNDQor44G+44Gk44KC44GoLOOBhOOBleOBig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgb8NCivjgZ/jgaAs44G/44Gh44KNDQor44GC44KK44G+LOOBsuOCjeOBlw0KK+OBquOBjOOBrizjgobjgYbjgZgNCivjgoTjga4s44G/44GN44GKDQor44GE44GV44GLLOOBqOOCguOBv+OBoQ0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgoTjgb7jgZbjgY0s44KG44Gf44GLDQor44GP44GuLOOBi+OBmuOBvw0KK+OBl+OBsCzjgbXjgb/jgaTjgZANCivjgY3jgoDjgoks44Gf44GL44G+44GVDQor44GZ44G/44GgLOOBi+OBpOOBvw0KK+OCguOBqOOBjOOBhOOBqCzjgZvjgYTjgZgNCivjgavjgo8s44Gv44KL44Gk44GQDQor44Gf44GR44GG44GhLOOBn+OBpOOBvw0KK+OBn+OCgOOCiSzjgajjgYrjgosNCivjgbzjgZ8s44Gf44GL44GXDQor44GL44Gp44KELOOBl+OBkuOBr+OCiw0KK+OBr+OCieOBoCzjgZHjgpPjgZgNCivjgb/jgaTjgYTjgZcs44KK44KF44Gy44Gh44KNDQor44GE44Gu44GG44GILOOCiOOBng0KK+OCgOOCieOBr+OBlyzjgb7jgZXjgbLjgo0NCivjgavjgZfjgYvjgo8s44KI44GX44Gm44KLDQor44G+44GZ44GgLOOBqOOBl+OBruOCig0KK+OBiuOBnyzjgabjgovjgobjgY0NCivjgbXjgY/jgYQs44KG44GN44Gy44KNDQor44GL44GS44KE44G+LOOBqOOBj+OBhOOBoQ0KK+OBquOBjOOBpOOBiyzjgZnjgb/jgYoNCivjgY/jgZXjga4s44GL44Ga44GKDQor44GT44GY44G+LOOBkeOCk+OBmA0KK+OBj+OCieOBnyzjgYLjgY3jgokNCivjgZ/jgZHjgYbjgaEs44GL44Ga44GKDQor44GE44GR44GgLOOBsuOCjeOBi+OBmg0KK+OBn+OBi+OBrizjgZfjgZLjgZMNCivjgY/jgonjgoQs44KG44GG44GYDQor44GK44GuLOOBi+OBmuOCiOOBlw0KK+OBquOBi+OBoCzjgZHjgYTjgZnjgZENCivjgajjgY/jgoLjgags44KG44GUDQor44GK44Gv44GXLOOCiOOBl+OBruOBtg0KK+OChOOBvuOBoCzjgbLjgo3jgZcNCivjga/jgpPjgaAs44GR44GE44GZ44GRDQor44GE44GX44Gv44KJLOOBvuOBk+OBqA0KK+OCiOOBl+OBr+OCiSzjgZfjgpPjgYTjgaENCivjgZ/jgabjgYTjgZcs44GT44GG44GYDQor44GE44Go44GGLOOBj+OBq+OBig0KK+OBleOBqOOBhizjgb7jgZXjgYoNCivjgYrjgY/jgoks44GR44KT44GYDQor44Gq44GL44GZ44GYLOOBn+OBoOOChuOBjQ0KK+OBn+OBhOOCiSzjgZfjgZLjgYoNCivjgY3jgbLjgoks44Gy44KN44KG44GNDQor44Gq44GL44GY44G+LOOBn+OBoOOBlw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgYTjgaHjgo0NCivjgajjgbPjgZ8s44GC44Gk44GKDQor44Gq44GL44GW44KPLOOChuOBn+OBiw0KK+OBq+OBl+OBr+OCiSzjgZfjgpPjgYTjgaENCivjgoHjgZDjgo0s44Gk44Go44KADQor44G+44KL44KE44G+LOOBmOOCheOCk+OBng0KK+OBjeOBj+OBoSzjgZ/jgYvjgYLjgY0NCivjgYLjgYrjgY0s44Go44GX44G144G/DQor44GN44Gj44Gf44GLLOOBguOBjeOCiQ0KK+OChOOBmeOBhCzjgabjgaTjgYoNCivjgYTjgaHjgb7jgoss44Gb44GE44GYDQor44KE44G+44GW44GNLOOBleOBqOOBlw0KK+OBmeOBjOOBr+OCiSzjgajjgZfjgbLjgZMNCivjgajjgb/jgarjgYws44GX44G144G/DQor44Gh44GO44KKLOOBn+OBi+OBig0KK+OBiuOBsCzjgZfjgofjgZjjgo0NCivjgb7jgaTjgYQs44KI44Gy44GhDQor44Gy44KJ44KE44G+LOOBsuOCjeOBlw0KK+OChOOBvuOCgOOCiSzjga/jgovjgbLjgZMNCivjgYrjgacs44Gy44Gn44Gk44GtDQor44KI44GX44Gq44GMLOOBqOOBjeOBig0KK+OBk+OBmOOBvizjgYLjgY3jgokNCivjgajjgb/jgarjgYws44Gv44KL44GKDQor44GV44GMLOOBi+OBmuOBig0KK+OBr+OCiSzjgZjjgoXjgpPjgZgNCivjgajjgb/jgojjgZcs44GT44GeDQor44KI44GX44GgLOOBsuOBleOBruOCig0KK+OBsuOCieOBsOOChOOBlyzjgojjgZfjgb8NCivjgb7jgaTjgaks44Gf44G/44GKDQor44GE44G+44G144GPLOOChuOBjeOBkw0KK+OBjeOCiOOBmyzjgojjgZfjgYLjgY0NCivjga/jgarjgbbjgZUs44Go44GX44KG44GNDQor44Gh44GwLOOBmOOCheOBq+OBoQ0KK+OChOOBvuOBluOBjSzjgojjgZfjgbLjgZMNCivjgarjgYvjga/jgoks44GI44GE44GY44KNDQor44GK44GuLOOChuOCiuOBkw0KK+OBhuOBiOOBvuOBpCzjgbXjgY/jgb8NCivjgYLjgY3jgoTjgb4s44G+44GV44Gy44KNDQor44Go44Gf44GrLOOBv+OBpOOBruOBtg0KK+OCiOOBreOBoCzjgb7jgZXjgb8NCivjgbXjgovjgY/jgZUs44Gh44GL44GIDQor44Gy44KN44KELOOBn+OBkeOBruOCig0KK+OCiOOBl+OBoCzjgaHjgYjjgZMNCivjgYvjga3jgZMs44Gm44Gk44KEDQor44Gq44GM44GfLOOChuOBhuOBmOOCjQ0KK+OBhOOBuSzjgZ/jgYvjgZcNCivjgZvjgY3jga0s44Gd44Gu44GIDQor44GK44GL44GgLOOBsuOCjeOBi+OBmg0KK+OBi+OBquOBhCzjgbLjgafjgYoNCivjgZXjgajjgYYs44KG44GXDQor44GV44GL44GN44Gw44KJLOOBl+OCk+OChA0KK+OBhOOBvuOBhCzjgZnjgZnjgoANCivjgbLjgoHjgZgs44Go44GX44Gu44KKDQor44GK44GO44Gv44KJLOOCiuOCheOBmA0KK+OBn+OBkeOCgOOCiSzjgZHjgpPjgZgNCivjgajjgbLjgoPjgb4s44GT44G444GEDQor44GN44Gf44Gv44KJLOOBi+OCiOOBkw0KK+OBiuOBleOBiyzjgb7jgZXjgYLjgY0NCivjgYrjgZPjgaEs44KI44GE44GhDQor44Gf44GL44GKLOOBvuOBleOBsuOCjQ0KK+OBhuOBqSzjgZXjgYvjgYgNCivjgYbjga4s44Gu44KK44Gy44KNDQor44G144GY44GNLOOBl+OCk+OBleOBjw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgYTjgZ3jgYzjgYQs44G+44GV44Gv44KLDQor44GL44KJ44GV44GNLOOBl+OCk+OBmA0KK+OChOOBvuOBoCzjgb7jgZXjgobjgY0NCivjgo/jgaAs44G+44GV44Gv44KLDQor44GX44Gw44GfLOOBi+OCk+OBm+OBhA0KK+OBl+OBiuOBluOBjSzjgbLjgajjgZcNCivjgZfjgYws44KI44GX44GKDQor44GP44KK44GfLOOBv+OBr+OCiw0KK+OBr+OBl+OCguOBqCzjgZfjgpPjgZ4NCivjgojjgZfjgoDjgoks44G+44GV44KI44GXDQor44G/44KE44GW44GNLOOBn+OBi+OBruOCig0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgaDjgZEs44Gf44GL44Gy44GVDQor44GZ44Ga44GNLOOBi+OBpOOBsuOBkw0KK+OChOOBvuOBhOOBlyzjgYvjgZrjgb7jgZUNCivjgYrjgZzjgY0s44Gu44KK44GTDQor44Gf44GL44GELOOBqOOBl+OCjQ0KK+OBi+OBreOBkyzjgY3jgpPjgZQNCivjga/jgonjgaAs44Gy44KN44G/DQor44GX44G+44GgLOOBqOOBl+OBig0KK+OChOOBquOBjizjgb7jgZXjgb8NCivjgZnjgZrjgY0s44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBn+OCguOBpA0KK+OBiuOBkOOCiuOChOOBvizjgYjjgaTjgYoNCivjgo/jgZ/jgarjgbks44Go44GX44GKDQor44KE44G+44KA44KJLOOBn+OBpOOBig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjga7jgbYNCivjgZfjgYrjgZjjgb4s44G/44Gh44GKDQor44Gk44KL44GK44GLLOOCiOOBl+OCjQ0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgb7jgaTjgYbjgoks44Gy44KN44Gu44KKDQor44KE44G+44KC44GoLOOBjeOBr+OBoeOCjQ0KK+OBj+OBvuOBvyzjgaHjgYvjgokNCivjgZHjgpPjgojjgZcs44GC44GN44KJDQor44KE44G+44GL44GSLOOBjeOCiOOBguOBjQ0KK+OBlOOBqCzjgbLjgo3jgZcNCivjgZ/jgZHjgYbjgaEs44GV44Go44G/DQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBhOOBl+OBsOOBlyzjgbLjgafjgobjgY0NCivjgYTjgaos44GR44KT44GV44GPDQor44GE44Gu44GG44GILOOBn+OBkeOBig0KK+OBq+OBl+OBi+OCjyzjgZ/jgYvjgbLjgagNCivjga/jgpPjgaAs44KE44GZ44GKDQor44Gf44Gm44Gw44KE44GXLOOBqOOBiuOCiw0KK+OBiuOBl+OBvizjga7jgbbjgobjgY0NCivjgZfjgbDjgZ8s44GR44KT44GYDQor44G/44GG44KJLOOBn+OBoOOBsuOBpw0KK+OBk+OBi+OBlCzjgYvjgYrjgosNCivjgYTjgYTjgaAs44Go44GK44KLDQor44Gf44GR44GZ44GILOOBqOOBl+OBv+OBoQ0KK+OBhOOBjOOCieOBlyzjgZvjgYTjgY0NCivjgb7jgZnjgoTjgb4s44Gf44GL44GKDQor44GV44GP44KE44G+LOOChuOBng0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgZcNCivjgZ/jgb7jgoos44KI44GX44GC44GNDQor44GE44G+44Gr44GXLOOBsuOCjeOBig0KK+OBiuOBjOOCjyzjgb7jgZXjgajjgZcNCivjga/jgY7jgo/jgoks44GL44Ga44KG44GNDQor44GK44GP44GrLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBoCzjgorjgocNCivjgb7jgYjjgZjjgb4s44Gf44GL44KG44GNDQor44GE44KP44GELOOBsuOBp+OBig0KK+OChOOBvuOBoCzjgY3jgojjgZgNCivjgZnjgaAs44GL44Ga44KI44GXDQor44Go44GN44KPLOOBj+OBq+OBsuOBkw0KK+OBr+OChOOBlyzjga/jgovjgY0NCivjgZ/jgZHjgoLjgags44GC44Gk44GXDQor44GL44KT44Gw44KE44GXLOOBi+OBmuOBruOCig0KK+OBqOOBluOCjyzjgobjgZ/jgYsNCivjgZ/jgabjga4s44GL44Ga44G/DQor44GL44KT44G5LOOBpuOBpOOChA0KK+OBiuOBj+OBoCzjgojjgZfjgYoNCivjgZ/jgoLjgags44GL44Ga44GKDQor44Gq44GM44GELOOBkeOCkw0KK+OBiuOBluOCjyzjgb7jgZXjgYoNCivjgZXjgajjgYYs44G/44Gu44KLDQor44GT44KT44GpLOOBvuOBleOBsuOBqA0KK+OBreOBjuOBlyzjgY3jgojjgZcNCivjgZ/jgarjgYss44Gy44Gn44Gy44GTDQor44GT44KA44KNLOOBm+OBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgYLjgY3jgokNCivjgYTjgYTjgZjjgb4s44GL44Gk44G/DQor44Gr44GE44G744KKLOOBvuOBleOBjQ0KK+OBk+OCguOCiuOChCzjgb7jgZXjgagNCivjgZfjgpPjgaks44GK44GV44KADQor44KE44GuLOOChuOBsuOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgYoNCivjga/jgY7jgZ/jgass44G+44GV44GKDQor44GT44GZ44GOLOOBpOOBqOOCgA0KK+OBhOOBuSzjgZfjgpPjgZQNCivjgYvjgarjgZbjgo8s44GR44GE44GTDQor44Gf44GgLOOCiOOBl+OBqA0KK+OBquOBjOOBnyzjgajjgb/jgYoNCivjgYvjgb7jgaAs44Gu44G244Gf44GLDQor44Gf44GL44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OBiuOBhOOBpyzjgoTjgZnjgarjgooNCivjgZ/jgYvjgY/jgoks44GC44GN44GKDQor44KE44GZ44G+44GkLOOBn+OBoOOBlw0KK+OBvuOCiyzjgabjgaTjgYoNCivjgY/jgbzjgZ8s44KK44KH44Gy44GhDQor44Gf44Gw44GfLOOBqOOCiOOBteOBvw0KK+OCguOCiuOBnyzjgbLjgo3jgb8NCivjgY/jgavjgajjgoIs44GL44Ga44GKDQor44GC44GV44Gs44G+LOOCiOOBl+OBn+OBiw0KK+OBu+OBl+OBqizjgbLjgafjgZrjgb8NCivjga7jgZbjgo8s44KI44Gy44GhDQor44G+44Gk44KA44KJLOOBvuOBleOBqOOBlw0KK+OBsuOCieOBi+OBnyzjgo3jgY/jgo0NCivjgbLjgonjgb4s44Gg44GE44GN44GhDQor44GX44G/44GaLOOBruOCiuOBig0KK+OCiOOBk+OBi+OCjyzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44Gf44Gg44Gy44GVDQor44GP44KN44GV44KPLOOCiuOCheOBmeOBkQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgbLjgonjgYws44KI44GX44GKDQor44GV44GE44Go44GGLOOBvuOBk+OBqA0KK+OBhuOBoeOBvOOCiizjgbLjgo3jgZcNCivjgYTjgarjgoDjgoks44GZ44GZ44KADQor44GK44GV44GgLOOCiOOBl+OBsuOBlQ0KK+OBmeOBjuOChOOBvizjga7jgbzjgosNCivjgYTjgb7jgZos44GR44GE44GE44GhDQor44GG44KJ44GuLOOBruOCiuOBig0KK+OCguOBoeOBmuOBjSzjgaTjga3jgZgNCivjgZnjgYzjgo8s44Gy44KN44GL44GaDQor44GE44GR44GgLOOChOOBmeOBig0KK+OBn+OBquOBiyzjga/jgovjgbLjgZUNCivjgZXjgYTjgajjgYYs44GX44KT44GE44GhDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBv+OChOOBrSzjga/jgovjgYoNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44Gt44GO44GXLOOCj+OBn+OCiw0KK+OBiuOBj+OBjOOCjyzjgYLjgaTjgZcNCivjga/jgoTjgZcs44GE44GV44KADQor44Gw44GwLOOBpuOBpOOBig0KK+OChOOBvuOCguOBqCzjgojjgZgNCivjgYjjgpPjgaks44Gu44KK44GKDQor44Gd44KB44KELOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgojjgZfjga/jgosNCivjgYLjgbks44Gf44GL44GXDQor44Gh44GwLOOBn+OBi+OBqOOBlw0KK+OBn+OBi+OChOOBvizjgoTjgZnjgZ/jgaANCivjgoTjgb7jgY0s44G+44GV44KI44GXDQor44Gf44GR44GG44GhLOOBi+OBmuOBig0KK+OBn+OBkeOBuSzjgZfjgZLjgosNCivjgYLjgaDjgaEs44Go44GX44GKDQor44Gf44GL44GX44G+LOOBr+OCi+OBig0KK+OCiOOBk+OChOOBvizjgZ/jgaTjgZgNCivjgZfjgonjgYTjgaEs44Go44GX44G/44GhDQor44GP44Gp44GGLOOBpOOBqOOCgA0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgZ/jgYvjgZfjgb4s44KI44GX44Gu44KKDQor44KE44G+44GM44GfLOOChuOBjeOBig0KK+OCiOOBl+OBoCzjgbLjgZXjgZcNCivjgb/jgoTjgYvjgo8s44Gu44G244Gy44GTDQor44GV44GV44GNLOOBpOOBqOOCgA0KK+OBhOOBp+OBhuOCiSzjga7jgbzjgosNCivjgZ/jgarjgYss44GK44GV44KADQor44GE44Go44GGLOOCiOOBl+OChuOBjQ0KK+OBiuOBpCzjgYLjgY3jgokNCivjgbXjgYjjgY0s44Gf44Gk44GKDQor44GX44KC44G144GVLOOBv+OBruOCiw0KK+OBv+OChOOBi+OCjyzjgobjgYbjgZgNCivjga/jgZfjgoLjgags44GX44GS44G144GVDQor44KE44G+44Ge44GILOOBn+OBi+OBig0KK+OBq+OBhOOBj+OCiSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44GC44GN44KJDQor44KA44KN44G144GXLOOBruOCiuOBquOBig0KK+OBi+OCk+OBoCzjgb7jgZXjgosNCivjgY/jganjgYYs44GX44GS44GKDQor44Gf44GL44Gv44KJLOOBjeOCiOOBlw0KK+OBiuOBi+OBoCzjgZ/jgYvjgZcNCivjganjgYQs44G/44Gu44KLDQor44Gf44Gq44G5LOOBn+OBj+OBig0KK+OBk+OCgOOCjSzjgZHjgpPjgZgNCivjgoLjgorjgoTjgb4s44KA44Gk44G/DQor44GC44KJ44G+44GNLOOBi+OBmuOBkw0KK+OBk+OBl+OBuSzjgbLjgo3jgZcNCivjgZXjga4s44GC44Gk44Gy44GTDQor44GK44GL44GgLOOBn+OBkeOBlw0KK+OBteOBmOOCj+OCiSzjgajjgZfjgYvjgZoNCivjgb7jgaTjgYos44GC44Gk44GXDQor44Gf44Gq44GLLOOBvuOBleOBn+OBiw0KK+OBjeOBr+OCiSzjgZ/jgYvjgZcNCivjgavjgZfjga/jgZ8s44GT44GG44GYDQor44Gr44GX44KP44GNLOOBruOBtuOBig0KK+OBiuOBi+OBluOBjSzjgajjgZfjga7jgooNCivjgbXjgZjjgo/jgoks44GL44GqDQor44KE44GZ44GgLOOBi+OBpOOBvuOBlQ0KK+OBiuOBiyzjgZHjgYTjgZMNCivjgbvjgZ3jga4s44KP44Gf44KLDQor44GC44GL44GXLOOBkeOBhOOBmA0KK+OBquOBi+OBhCzjgZXjgajjgosNCivjgoTjgZnjgaAs44G+44KC44KLDQor44Gm44KJ44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBj+OBvOOBnyzjgbXjgb/jgZMNCivjgZPjgavjgZcs44Gu44G244GKDQor44Gu44KA44KJLOOBi+OBmuOCjQ0KK+OBhOOBruOBmyzjga7jgbbjgbLjgo0NCivjgo/jgZ/jgarjgbks44KI44GX44G+44GVDQor44Gr44GX44GKLOOBjeOCh+OBkw0KK+OCguOBv+OBjSzjgYvjgZrjgb8NCivjgZnjgarjgaAs44G/44Gt44GKDQor44Gf44GR44GG44GhLOOBquOBiuOBjQ0KK+OBguOBjeOBmyzjgoYNCivjgZfjgYrjgZ8s44KI44GX44Gf44GLDQor44GN44GpLOOBsuOCjeOBi+OBmg0KK+OBhOOBl+OCj+OBn+OCiizjgYrjgZXjgoANCivjgZfjgonjgYzjgb8s44KG44GL44GTDQor44GG44Gh44Gq44GMLOOBjeOChw0KK+OBn+OBquOBiyzjgZfjgZLjgYoNCivjgY/jgo3jgZXjgY0s44Gf44GP44G+DQor44GK44Go44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgY3jgY/jgZgNCivjgZnjgZrjgY0s44G144G/44Gf44GLDQor44Gy44KN44GfLOOCiOOBl+OChuOBjQ0KK+OChOOBruOBi+OCjyzjgZfjgZLjgb8NCivjgZXjgYvjgoLjgags44GC44GN44KJDQor44GT44KA44KNLOOBj+OBq+OBkw0KK+OBhOOBvuOBnyzjgoTjgZnjgbLjgZMNCivjgbvjgZ3jgoQs44GL44Ga44Gy44GVDQor44Gm44KJ44GV44GLLOOBk+OBmeOBkQ0KK+OBu+OCk+OBvizjgbLjgo3jgZ/jgYsNCivjgYvjgZnjgYws44GV44Gh44GTDQor44G+44Gk44Gg44GE44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgojjgZfjgbLjgZMNCivjga3jgZTjgo0s44KI44GX44GC44GNDQor44G144GP44GgLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgajjgb7jgaQs44Gy44Gn44KEDQor44GE44GuLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBmeOBmuOBjSzjgabjgaTjgYoNCivjgYLjgZXjgYQs44KG44Gy44GhDQor44Gv44KJLOOBvuOBleOBig0KK+OBu+OBlyzjgb7jgZXjgobjgY0NCivjgarjgovjgYvjgo8s44GV44GE44GYDQor44GK44GgLOOBmOOCheOBq+OBoQ0KK+OBiuOBsOOBqizjgb7jgoLjgosNCivjgZ/jgavjgZbjgo8s44G+44GV44GoDQor44G144GY44GK44GLLOOCiOOBsuOBoQ0KK+OBlOOBqCzjgYvjgZrjgZ/jgYsNCivjgZPjgozjgarjgYws44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBi+OBmuOBiA0KK+OBn+OBi+OCiSzjgbLjgo3jgZfjgZINCivjgYrjgY/jgo8s44GI44GE44GYDQor44Gf44Gq44GLLOOBl+OCheOBmA0KK+OBleOBqOOBhizjgZfjgpPjgZgNCivjgZfjgb7jgazjgY0s44GI44GE44GeDQor44Gd44GtLOOBsuOCjeOBlw0KK+OBn+OBquOBiyzjgojjgZfjgZgNCivjgbXjgZjjgoDjgoks44Gf44Gk44KNDQor44GU44GoLOOBmOOCheOCk+OBmA0KK+OBr+OBl+OCguOBqCzjgYvjgZrjgYoNCivjgbLjgovjgb4s44Gf44GL44Gu44KKDQor44G744GX44GwLOOBj+OBq+OBi+OBpA0KK+OBi+OCgeOCj+OCiizjgYvjgZrjga7jgooNCivjgYrjgY/jgYQs44Gf44GL44GC44GNDQor44Gy44GV44KC44GoLOOBl+OBkuOChOOBmQ0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgbLjgonjgZXjgo8s44Gf44GL44GXDQor44GN44Gf44GnLOOBn+OBi+OBmA0KK+OBteOBj+OBoCzjgajjgZfjgYLjgY0NCivjgZfjgYrjgZbjgY0s44Gg44GE44GZ44GRDQor44KA44GoLOOBv+OBpOOBr+OCiw0KK+OBq+OBl+OBiuOBiyzjgY3jgojjgZcNCivjgaTjgbzjga4s44Gy44Gn44GL44GaDQor44Gq44Gk44GG44KBLOOBruOCiuOBig0KK+OBn+OBq+OBjOOBjSzjgZHjgpMNCivjgYrjgZnjgYws44Gy44KN44GXDQor44GG44Gh44GgLOOBi+OBmuOBig0KK+OBi+OBqOOBhizjgZPjgYbjgZgNCivjgZXjgZXjgY0s44GX44KT44GYDQor44GL44GX44G+LOOChOOBmeOBn+OBiw0KK+OBguOBi+OBleOBiyzjgYLjgY3jgokNCivjgYvjgo/jgYvjgb8s44Gy44Gn44KIDQor44GX44GpLOOBsuOCjeOBvw0KK+OChOOBvuOBhuOBoSzjgbLjgo3jgZcNCivjgYvjga4s44GK44GV44KADQor44Gv44KJLOOBjeOCiOOBlw0KK+OBvuOBpOOBsOOCiSzjgojjgZfjgZ/jgYsNCivjgabjgonjgYvjgaks44Gu44KK44GC44GNDQor44GX44GK44GfLOOBi+OBmuOBsuOBlQ0KK+OBiuOBi+OBoCzjgZHjgYTjgZgNCivjgY/jgo3jgaAs44KG44Gf44GLDQor44KC44KK44KC44GoLOOBleOBtuOCjQ0KK+OBm+OBjSzjgbLjgo3jgbLjgZUNCivjgZnjgZrjgY0s44Go44GX44G+44GVDQor44Gf44GR44GP44GVLOOBsuOCjeOBguOBjQ0KK+OBn+OBjOOBl+OCiSzjgYvjgZrjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GKDQor44GV44GI44GNLOOBiOOBhOOBmA0KK+OBn+OBpOOBluOCjyzjgbLjgafjgYoNCivjgZXjgYTjgajjgYYs44Gu44KK44GKDQor44G144KL44GL44KPLOOBi+OBmuOBig0KK+OBn+OCgOOCiSzjgojjgbLjgaENCivjgaTjgorjgoQs44Gf44Gk44KEDQor44GV44GL44GQ44GhLOOCiOOBl+OBsuOBpw0KK+OBteOBj+OBl+OBvizjgobjgZ/jgYsNCivjgYrjgYvjgo8s44GE44GP44GKDQor44G144GY44GfLOOBkeOCk+OBmA0KK+OBi+OCj+OBkOOBoSzjgYvjgZrjgbLjgo0NCivjgajjgY3jgYrjgYss44KI44GX44Gu44KKDQor44Gq44GL44GuLOOBsuOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgorjgocNCivjgY/jgavjgajjgZcs44G144GY44GKDQor44GV44GL44GfLOOBsuOCjeOBlw0KK+OCguOCiuOBi+OCjyzjgYLjgY3jgokNCivjga7jgZDjgaEs44Gy44KN44GXDQor44GP44G844GfLOOBruOBtuOBig0KK+OBquOBi+OBiuOBiyzjgYrjgZXjgoANCivjga7jgbXjgZgs44GR44GE44GYDQor44KC44GM44KKLOOBjeOBv+OBguOBjQ0KK+OBvuOBiOOBluOBjSzjgbLjgajjgZcNCivjgYrjgaTjgYss44GN44KI44GXDQor44G/44Ga44GfLOOBteOBv+OBqA0KK+OBmeOBjuOChOOBvizjgb7jgaHjgYoNCivjgYvjgYzjgo8s44G144G/44Go44GXDQor44Gr44GX44Gv44KJLOOCiOOBsuOBoQ0KK+OBpuOBmuOBiyzjgbLjgo3jgZcNCivjgZfjgYrjgb8s44GX44KF44KT44GZ44GRDQor44GK44Gv44KJLOOBi+OBpOOBruOCig0KK+OBguOBleOBj+OCiSzjgabjgovjgYoNCivjgZfjgb7jgaAs44Go44G/44GKDQor44GX44G+44GL44KPLOOBvuOBleOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgY/jgo0NCivjgYbjgZos44GT44GG44GE44GhDQor44Gf44GL44GP44KPLOOBpOOBreOBig0KK+OBv+OBoeOBnyzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44KA44Gk44G/DQor44GX44GMLOOBn+OBpOOBig0KK+OBhOOBkeOBvyzjgZHjgYTjgZgNCivjgoLjgoos44GI44GE44GYDQor44GL44GX44KC44GoLOOBhOOBleOBig0KK+OBhOOBl+OBr+OCiSzjgZfjgZLjgojjgZcNCivjgYvjga3jgZMs44GR44KT44Gu44GZ44GRDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OCguOBqOOBhCzjgojjgZfjgZ/jgYsNCivjgZPjgZ/jgZEs44KI44GX44G144G/DQor44GL44GV44GELOOBl+OCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgb/jgaTjgYoNCivjgZPjgY/jgbws44Gf44Gg44GC44GNDQor44KP44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBleOBquOBoCzjgabjgaTjgoQNCivjgZXjgYvjgZ8s44GZ44GZ44KADQor44Gu44KA44KJLOOBsuOBqOOBlw0KK+OBr+OChOOBi+OCjyzjgZfjgZrjgYoNCivjgb/jgoTjgZbjgY0s44G+44GV44Gu44G2DQor44GK44Gr44Gk44GLLOOBl+OCheOBq+OBoQ0KK+OBhOOBpyzjgYbjgYTjgooNCivjgarjgYzjgZXjgZMs44Gf44GL44Gk44GQDQor44GE44Go44GGLOOBv+OBpOOBkA0KK+OBi+OBreOBn+OBkSzjgb7jgZXjgYLjgY0NCivjgY/jgbzjgZ8s44G+44GZ44G/DQor44GC44KK44G+LOOBoeOBiOOBkw0KK+OCj+OBi+OBiizjgaHjgYjjgZMNCivjgYTjgZfjgZbjgYss44Go44GX44GKDQor44GK44GfLOOBvuOBleOBig0KK+OBleOBi+OCguOBqCzjgb/jgaHjgYoNCivjgYrjgbvjgoos44GZ44GI44GTDQor44GX44KT44Gf44GrLOOBruOCiuOBkw0KK+OBhuOBoeOChOOBvizjgZHjgYTjgZMNCivjgbLjgonjgZ8s44GX44GS44KEDQor44GC44KK44Ge44GuLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgajjgb/jgojjgZcNCivjgYLjgYrjgoTjgY4s44G/44Gk44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBvw0KK+OBhOOBhOOBoCzjgZfjgZLjgYoNCivjgarjgZfjgY0s44GR44KT44GYDQor44KA44KJ44GbLOOBiuOBleOCgA0KK+OBvuOBpOOBiizjgZ/jgYvjga7jgooNCivjgZXjgajjgYYs44G/44Gh44Gf44GLDQor44GC44GV44Gs44G+LOOBpuOCi+OBguOBjQ0KK+OBteOBn+OBvyzjgY3jgojjgobjgY0NCivjgbXjgarjgags44GR44GE44GTDQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgobjgY0NCivjgbXjgarjga/jgZcs44Gc44KT44Gv44Gh44KNDQor44G244GoLOOBkeOBhOOBlA0KK+OBi+OBrizjgobjgY3jgYoNCivjgYrjgY3jgaQs44Go44GX44GC44GNDQor44Gf44GL44GO44KPLOOBn+OBi+OBlw0KK+OBu+OBl+OBrizjgb/jgarjgZMNCivjgavjgZfjgZjjgb4s44GV44Go44GTDQor44GL44G+44GfLOOBn+OBi+OBlw0KK+OBpOOBmOOCguOBqCzjgb7jgZXjgYLjgY0NCivjga/jgarjgaAs44GV44Gg44GKDQor44Gy44KN44GbLOOBv+OBoeOBig0KK+OBq+OBl+OBoCzjgYvjgYrjgosNCivjgYbjgYjjgY0s44GL44Ga44GKDQor44KI44GX44GuLOOBkeOBhOOBlA0KK+OBjeOBn+OCgOOCiSzjgZfjgo0NCivjgZfjgb/jgZos44GX44KT44GE44Gh44KN44GGDQor44GE44GX44GW44GNLOOChOOBmeOBvuOBlQ0KK+OBr+OChOOBlyzjgY/jgavjgb8NCivjgY3jgY/jgaEs44KG44G/44GTDQor44GK44GL44GpLOOBn+OBkeOBig0KK+OBk+OCgOOCiSzjgbLjgZXjgoQNCivjga/jgZfjgoLjgags44Gy44KN44KG44GNDQor44Gq44GL44Gk44GLLOOBi+OBpOOBsuOCjQ0KK+OBiuOBsuOBlyzjgbLjgo3jgZ/jgYsNCivjgY/jgo3jgaAs44GE44GV44KADQor44Gq44GL44GELOOBoeOBiOOBkw0KK+OBjeOBn+OBluOCjyzjgY/jgavjgbLjgo0NCivjgY3jgZfjgaAs44Gh44GC44GNDQor44GL44Gq44G+44KLLOOBqOOBl+OBhOOBoQ0KK+OBguOCieOBhCzjgZfjgpPjgZgNCivjgbXjgZ/jgaTjgY4s44G+44GV44GKDQor44GN44GP44GhLOOBsuOBqOOBlw0KK+OBhOOBhOOBoCzjgajjgZfjgYvjgZoNCivjgarjgYvjgYgs44GN44KI44GKDQor44Gy44KJ44G+44GkLOOBm+OBhOOBhOOBoQ0KK+OBq+OBl+OBiuOBiyzjgb/jgaHjgZMNCivjgZXjgajjgYYs44Gy44GV44GXDQor44KC44KKLOOBv+OBpOOBruOBtg0KK+OBu+OBl+OBrizjgbLjgafjgbXjgb8NCivjgoTjgb7jgZDjgaEs44Gk44GQ44GKDQor44GG44GZ44GELOOBl+OBkuOCiw0KK+OBvuOBpOOBsOOCiSzjgaTjgajjgoANCivjgYLjgorjgZXjgYss44Gf44GR44GXDQor44Gr44GX44GKLOOBvuOBmeOCiOOBlw0KK+OBjeOBoCzjgb7jgZXjgojjgZcNCivjgoTjga4s44G+44GV44G/DQor44GL44Go44GGLOOBruOCiuOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgosNCivjga/jgoTjgZcs44G+44GT44GoDQor44KP44Gf44G5LOOBl+OBmuOBig0KK+OCj+OBn+OBquOBuSzjga/jgovjgYoNCivjgobjgZDjgaEs44Go44GX44GKDQor44KE44G+44KC44GoLOOChOOBmeOBlw0KK+OBleOBhOOBqOOBhizjgYLjgY3jgYoNCivjgYvjgYTjgZos44G/44Gu44KLDQor44G744GX44GuLOOBmOOCheOCk+OBng0KK+OBl+OBruOBr+OCiSzjgZHjgYTjgY0NCivjgYrjgazjgb4s44Gv44KL44GKDQor44G/44KPLOOBhOOBleOBig0KK+OBu+OCiuOCgOOBjSzjga7jgbbjgbLjgo0NCivjgYTjgZfjgZ/jgaYs44KI44Gy44GhDQor44G/44G144GtLOOBiOOBhOOBhOOBoQ0KK+OCguOBv+OBjSzjgb7jgZXjgY0NCivjga/jgZvjgYzjgo8s44GI44GE44GYDQor44GZ44GO44KE44G+LOOBpuOBpOOBig0KK+OBpOOBj+OBoCzjgobjgbLjgaENCivjgYLjgaDjgaEs44GR44KT44GfDQor44Gn44GW44KPLOOBoeOBsuOCjQ0KK+OBiuOBnyzjgoTjgZnjgYoNCivjgZXjgajjgYYs44KI44Gy44GhDQor44Gb44GN44GQ44GhLOOBvuOBleOBig0KK+OBk+OBj+OBtuOCkyzjgbLjgo3jgZMNCivjgbvjgZfjgaos44Gy44GV44GXDQor44GG44KJ44GuLOOBteOBv+OBig0KK+OBn+OBkeOCgOOCiSzjgZHjgpPjgYTjgaENCivjgajjgY/jgarjgYws44Gy44Gn44GKDQor44GP44KK44Gv44KJLOOBruOBtuOBsuOCjQ0KK+OBiuOBj+OCgOOCiSzjgb7jgoLjgosNCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44G+44Gk44GX44GfLOOCiOOBl+OBvg0KK+OBn+OBkeOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgavjgZfjgY0s44GN44KI44GXDQor44GG44KB44GgLOOBvuOBk+OBqA0KK+OBu+OCk+OBoCzjgabjgovjgYoNCivjgYvjgoIs44GX44KF44KT44GYDQor44GG44GX44GgLOOBn+OBoOOBlw0KK+OBleOBhOOBqOOBhizjgbXjgb/jga7jgooNCivjga/jgZnjgaAs44Gf44Gg44KI44GXDQor44G/44GL44KPLOOBjeOCiOOBlw0KK+OBhuOBoeOBoCzjgYLjgY3jgokNCivjgavjgZfjgZbjgY0s44G/44Gk44Gu44KKDQor44GE44GM44KJ44GXLOOCiOOBl+OBjQ0KK+OCj+OBn+OBquOBuSzjgobjgY3jgbXjgb8NCivjgZfjgb7jgoDjgoks44GT44GG44GE44GhDQor44GL44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBuSzjgbLjgajjgZcNCivjgZXjgYvjgoLjgags44Gy44Gn44GoDQor44KC44KK44GX44GfLOOBmOOCheOBq+OBoQ0KK+OBmeOBjOOBr+OCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgb/jgoTjgb4s44GR44GE44GeDQor44G144GP44GgLOOBv+OBoeOBkw0KK+OBiuOBqOOBluOBjSzjgoLjgajjgojjgZcNCivjgbXjgZjjgoLjgoos44GV44GL44GIDQor44GT44KC44KKLOOBhOOBj+OBig0KK+OBteOBj+OBquOBjCzjgYvjgZrjgYbjgb8NCivjgb/jgoTjga/jgoks44Gk44KI44GXDQor44GY44KT44GuLOOBsuOCjeOBpOOBkA0KK+OBjeOCgOOCiSzjgb7jgZnjgYoNCivjgYTjgarjgYzjgY0s44KI44GG44GTDQor44KC44KKLOOBj+OBq+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgZfjgofjgbLjgaENCivjgaTjgZjjgoLjgags44GX44KH44GYDQor44KC44KT44Gc44KTLOOBguOBleOBkw0KK+OBquOCgOOCiSzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gu44KK44GTDQor44Gv44GX44KC44GoLOOBl+OCh+OBkw0KK+OChOOBvuOBhuOBoSzjgojjgZgNCivjgYLjgonjgYQs44KC44Go44KI44GXDQor44G144GY44GELOOCiuOChw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgbLjgZMNCivjga/jgZvjgYzjgo8s44Gk44KI44GXDQor44GX44GS44KE44GZLOOBguOBpOOBsuOBkw0KK+OChOOBvuOBruOBhCzjgZ/jgYvjgYoNCivjgZPjgbDjgoTjgZcs44GN44KI44KG44GNDQor44Gq44GM44GELOOBvuOBleOBguOBjQ0KK+OBleOCjyzjgYvjgaTjga7jgooNCivjgb7jgaTjgojjgZcs44G/44Gk44GKDQor44GV44GE44Go44GGLOOBiOOBhOOBkw0KK+OBi+OBrizjgobjgY3jgZMNCivjgYbjgZfjgZTjgoEs44Gu44KK44GKDQor44GE44GX44GELOOBi+OBpOOBruOCig0KK+OBhuOBmeOBjSzjgYLjgY3jgYoNCivjgZnjganjgYYs44Gy44KN44KG44GNDQor44GL44GY44KE44G+LOOBvuOCiuOBkw0KK+OBiuOBsCzjgYjjgorjgZMNCivjgZnjgo8s44Gy44KN44GNDQor44GE44KP44GfLOOBhuOCkw0KK+OBqCzjgoTjgZnjga7jgooNCivjgYrjgYTjgYvjgo8s44Gy44KN44GXDQor44Gy44KJ44GELOOBpuOBpA0KK+OBn+OBi+OBl+OBvizjgajjgojjgYvjgZoNCivjgbXjgb/jga4s44GI44GE44GE44GhDQor44GK44GL44GW44GNLOOBn+OBj+OBvg0KK+OBl+OCieOBjSzjgb7jgZXjgosNCivjgZ/jgZHjgoLjgags44KI44GX44GC44GNDQor44G+44Gk44KC44GoLOOBruOBtuOBig0KK+OBvuOBpOOBsOOCiSzjgb/jgaHjgYoNCivjgYjjgbPjga/jgoks44GL44GK44KLDQor44G144GY44GuLOOBsuOCjeOBguOBjQ0KK+OBteOBi+OChCzjgoTjgZnjgYoNCivjgbvjgZfjga4s44GT44GG44GYDQor44GL44Gf44KE44G+LOOBhOOBmuOCiw0KK+OBguOCieOBi+OCjyzjgojjgZfjgYoNCivjgZ/jgYvjga4s44Gf44GL44GN44G/DQor44GP44KN44GgLOOBsuOBp+OBjQ0KK+OBhOOBqOOBhizjgbXjgb/jgYoNCivjgZPjgZbjgYQs44KE44GZ44GoDQor44GG44GI44KE44G+LOOBr+OBmOOCgQ0KK+OBr+OBo+OBqOOCiizjgbLjgajjgZcNCivjgavjgZfjgoDjgoks44GI44GE44GTDQor44G144KL44GL44KPLOOBqOOBl+OBig0KK+OChOOBl+OBjSzjgbLjgo3jgZcNCivjgbvjganjgoTjgb4s44Gu44KK44GKDQor44GI44GoLOOBvuOBleOBpOOBrQ0KK+OChOOBvuOCguOBqCzjgobjgYbjgZgNCivjgZvjgY3jgZDjgaEs44Gu44KK44Gy44GTDQor44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBn+OBkeOBoCzjgZPjgYbjgZgNCivjgZfjgpPjgZ/jgass44KE44GZ44GKDQor44GP44G844GfLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBiuOBiyzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44GV44Gh44GTDQor44GV44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBhuOBiOOBrizjgYvjgZrjgYoNCivjgZfjgb7jgoLjgags44KE44GZ44Gy44KNDQor44GN44Gf44GuLOOBmOOCheOCk+OBkw0KK+OBhOOBhOOBmuOBiyzjgb/jgaTjgosNCivjgYTjgZrjgb8s44GN44KI44GXDQor44Gv44KJ44GgLOOBqOOBl+OBjQ0KK+OBiuOBoeOBguOBhCzjgajjgZfjgZ/jgYsNCivjgoTjgb7jgYbjgaEs44Gf44GL44GKDQor44GI44GQ44GhLOOBl+OBkuOBjQ0KK+OBr+OBjuOCj+OCiSzjgbLjgafjgYoNCivjgZ/jgYvjgY4s44Go44KC44Gy44GTDQor44GK44GP44KC44GoLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOBluOBjSzjgYTjgZXjgoANCivjgYTjgaHjgoDjgoks44Gy44Gn44Go44GXDQor44G/44KE44GV44GLLOOBqOOBl+OChuOBjQ0KK+OBv+OChOOBnyzjgYvjgZ/jgZcNCivjgarjgYzjgYos44GN44KI44GXDQor44GE44KP44GKLOOBleOBqOOBvw0KK+OBteOBi+OBluOCjyzjgZXjgaDjga7jgooNCivjgZ/jgoDjgoks44Gy44Gn44GNDQor44GN44KK44KFLOOBqOOBl+OBn+OBkQ0KK+OBvuOBpOOBluOBjSzjgZPjgZnjgZENCivjgYvjgajjgYYs44G+44GV44G/DQor44G/44GfLOOCiuOCh+OBkw0KK+OBhOOBl+OBhCzjgY3jgofjgZgNCivjgYrjgYvjgoLjgags44Gf44GL44KG44GNDQor44GG44GI44GK44GLLOOBleOBqOOBlw0KK+OBjeOCh+OBrizjgYLjgY3jgbLjgo0NCivjgYvjga3jgZMs44Gy44Gn44Gk44GtDQor44GV44GP44KJ44GELOOBn+OBkeOBlw0KK+OCj+OBi+OBsOOChOOBlyzjgZ/jgZHjga7jgooNCivjgo/jgZ/jgarjgbks44G+44Gq44G2DQor44GC44GV44GELOOCiuOCh+OBsuOBoQ0KK+OBi+OBqeOBrizjgobjgorjgZMNCivjgoTjgb7jgZbjgY0s44Go44KC44GTDQor44GC44KP44GuLOOBm+OBhOOBhOOBoQ0KK+OBiuOBjOOCjyzjgZfjgofjgY3jgaENCivjgZzjgpPjgZEs44G+44GV44GXDQor44G144GP44KC44GoLOOBl+OBkuOCiw0KK+OBiuOBqSzjgb7jgZXjgYoNCivjgoLjgorjgoLjgags44Gf44Gg44GKDQor44Go44G8LOOCiOOBl+OBig0KK+OBi+OBn+OChOOBvizjgabjgovjgb/jgaQNCivjgarjgYzjgb7jgaQs44Gq44GK44GoDQor44KP44Gf44G5LOOBhOOBleOCgA0KK+OBhOOBl+OBjSzjgabjgaTjgYoNCivjgYTjgarjgYzjgo8s44Gu44G244GKDQor44Gq44GL44GuLOOBvuOBleOBqA0KK+OBq+OBl+OChOOBvizjgobjgZ4NCivjgZfjgoLjgaAs44GN44KH44GTDQor44GX44GS44GfLOOBqOOBl+OBsuOBpw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgbLjgo0NCivjgYvjgZ/jgoTjgb4s44Gr44GZ44GRDQor44Gd44GuLOOChuOBhuOBmA0KK+OBhOOBm+OBjSzjgajjgojjgbLjgo0NCivjgYTjgajjgYYs44Go44GX44KG44GNDQor44Gb44GN44GtLOOBn+OBi+OBruOCig0KK+OCgOOCieOChOOBvizjgajjgZfjgYoNCivjgb7jgovjgoTjgb4s44Go44KC44Gy44GTDQor44GP44KN44GV44KPLOOBi+OBmuOBruOCig0KK+OBmeOBvyzjgZ/jgYvjgYoNCivjga7jgZDjgaEs44GL44Ga44G/DQor44GV44Go44GG44G/LOOBvuOBleOBlw0KK+OBiuOBi+OCjyzjgZ/jgYvjgYLjgY0NCivjgarjgYvjga4s44KI44GX44G/DQor44GK44Gy44GXLOOChg0KK+OBr+OBtizjgobjgYbjgZMNCivjgYbjgaHjgaAs44Gf44GL44Gv44KLDQor44G/44GNLOOChOOBmeOCiOOBlw0KK+OBmeOBmuOBjSzjgb/jgojjgZMNCivjgYvjgZXjga/jgoks44Gf44GL44GKDQor44GK44GP44G8LOOBsuOCjeOBl+OBkg0KK+OBi+OBn+OBi+OBvyzjgoYNCivjgZ/jgYvjga/jgZcs44GL44Gk44G/DQor44GE44GX44GL44KPLOOChuOBjeOBig0KK+OBn+OBi+OBqOOCiizjgojjgZfjgYvjgZoNCivjgZ/jgavjgZDjgaEs44G+44GV44GKDQor44Gb44GNLOOBteOBmOOBig0KK+OBj+OBvOOBnyzjgZHjgYTjgZgNCivjgYLjgbnjgYvjgo8s44KI44GX44G144G/DQor44G144GY44G+44GNLOOBqOOBiuOCiw0KK+OBi+OBn+OChOOBvizjgobjgYbjgZgNCivjgZPjgoTjgb4s44Gy44Gn44GNDQor44Gv44GX44KC44GoLOOBpOOBkOOBsuOBqA0KK+OBmeOBvyzjgbLjgafjga7jgooNCivjgavjgZfjgYvjgo8s44GY44KH44GYDQor44GV44KP44G+LOOBguOBjeOCiQ0KK+OBr+OBl+OCguOBqCzjga7jgorjgb7jgZUNCivjgarjgYvjgZ8s44G144G/44Gu44G2DQor44GG44Gh44KE44G+LOOBpOOBreOChuOBjQ0KK+OBleOBleOBjSzjgYTjgZrjgb8NCivjgYLjgZXjga/jgoks44GL44Ga44Gv44KLDQor44Gr44Gj44GfLOOBruOCiuOBi+OBmg0KK+OBoOOCkyzjgajjgZfjgbLjgZMNCivjgZnjgY7jgZ8s44GL44Ga44KEDQor44KE44G+44KC44GoLOOBn+OBi+OBig0KK+OBiuOBteOBoSzjgZfjgpPjgZgNCivjgZPjgbDjgoTjgZcs44KG44GN44G+44GVDQor44G/44KI44GXLOOBvuOBleOBqA0KK+OBhOOBl+OBoCzjgoDjgaTjgYoNCivjgYrjgavjgY0s44Gf44GR44GXDQor44GP44KK44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBl+OCieOBhCzjgZHjgpPjgZgNCivjgZXjgYvjgavjgZcs44GC44GR44G/DQor44GK44GgLOOBv+OBoeOBig0KK+OBi+OBvuOBmSzjgbLjgo3jgZcNCivjgarjgYvjgYzjgo8s44GC44KE44GTDQor44GL44GX44KC44GoLOOChuOBhuOBkw0KK+OBsOOCk+OBqSzjgoTjgZnjgb7jgZUNCivjgbXjgZ/jgb8s44Gy44KN44GXDQor44KE44G+44GX44GfLOOBvuOCig0KK+OBr+OChOOBlyzjgb/jgaTjgbLjgo0NCivjgYvjgZLjgoTjgb4s44G144G/44GTDQor44GC44GZ44G+LOOCi+OCiuOBkw0KK+OBl+OCguOCgOOCiSzjgabjgaTjgZcNCivjgoTjgb7jgZDjgaEs44GX44KT44GE44GhDQor44KE44G+44GoLOOBv+OBjQ0KK+OBleOBqOOBhizjgb/jgo/jgZMNCivjgb7jgaTjgaDjgYTjgoks44GT44GG44GN44GhDQor44G+44Gk44KA44KJLOOBsuOBp+OBsuOBkw0KK+OBk+OBrizjga7jgbzjgosNCivjgYrjga/jgZcs44Gf44G/44GKDQor44GN44GP44GfLOOBpOOBi+OBlQ0KK+OCiOOBl+OBiuOBiyzjgZHjgpPjgYTjgaENCivjgZXjga4s44Gy44GV44GXDQor44Gf44Gq44GLLOOBkeOCk+OBng0KK+OBleOBleOBjSzjgb7jgZXjgojjgZcNCivjgYvjgo/jgZDjgaEs44GN44KH44Gy44GhDQor44KE44G+44GX44GfLOOChuOBmuOCiw0KK+OBn+OBkeOCgOOCiSzjgb7jgZXjgZcNCivjgbXjgY/jgaEs44Gf44GL44GXDQor44G+44Gq44GLLOOChuOBhuOBmA0KK+OBguOCieOBjSzjgb/jga7jgosNCivjgbLjgonjga4s44Gu44G244GKDQor44Gq44GL44KA44KJLOOChuOBsuOBoQ0KK+OBr+OBl+OCguOBqCzjgZ/jgaDjgZcNCivjgYvjgajjgYYs44Gy44KN44GXDQor44Gv44G+44GL44KPLOOBl+OBkuOCiw0KK+OBr+OChOOBlyzjgYvjgZrjgoQNCivjgYTjgajjgYYs44Go44GX44G/44GhDQor44GZ44Ga44GNLOOCiOOBl+OChA0KK+OBn+OBkeOBhuOBoSzjgoTjgZXjgbbjgo0NCivjgavjgZcs44GX44GS44GNDQor44GE44KP44G744KKLOOBsuOCjeOBlw0KK+OBhOOBvuOBhCzjgojjgZfjgYoNCivjgoLjgorjga4s44KG44GN44Gu44KKDQor44Gr44GX44Gv44KJLOOBmeOBmeOCgA0KK+OBjeOCiuOChCzjgYLjgaTjgZcNCivjgZXjgajjgYYs44Gf44Gk44GKDQor44G744Gd44GgLOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYgNCivjgarjgYvjgZjjgb4s44Go44G/44GIDQor44KE44GZ44Gv44KJLOOBn+OBi+OBruOBtg0KK+OBj+OCjeOBhOOCjyzjgojjgZfjgYvjgZoNCivjgYvjgoIs44Gk44Go44KADQor44GC44GL44G+44GkLOOBqOOBl+OBi+OBpA0KK+OBjeOBn+OCgOOCiSzjgYTjgY/jgZMNCivjgavjgZfjgaAs44GP44Gr44GKDQor44GK44GL44GgLOOBkeOBhOOBkw0KK+OBleOBleOBjSzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44GX44G/44GaLOOBi+OBmuOBsuOBkw0KK+OBiOOCk+OBqSzjgZPjgYbjgYTjgaENCivjgYbjgaDjgYzjgo8s44Go44GX44G+44GVDQor44GX44G/44GaLOOBj+OBv+OBkw0KK+OBguOBiuOChOOBjizjgZ/jgYvjgZcNCivjga/jgZfjgoLjgags44GR44GEDQor44Gf44GR44GG44GhLOOBsuOBleOBqA0KK+OBguOCieOBhCzjgajjgojjgZMNCivjgYTjgZfjgZjjgb4s44Gy44GV44GTDQor44GT44GM44GtLOOBn+OBoOOBlw0KK+OBleOCj+OBl+OBvizjgZfjgZLjgosNCivjgZ/jgYvjgoTjgarjgY4s44Gq44KL44KG44GNDQor44G+44GV44GgLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgbLjgo3jgZcNCivjgYrjga7jgafjgoks44GP44Gr44GC44GNDQor44Gf44Gq44GLLOOBvuOChuOBvw0KK+OBruOCgOOCiSzjgobjgY3jgZMNCivjgojjgZfjgaAs44GX44KT44GE44GhDQor44KI44GX44GgLOOBqOOBl+OChuOBjQ0KK+OBleOBn+OBkSzjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44GE44GV44KADQor44G/44KE44GOLOOBl+OCk+OBmeOBkQ0KK+OBn+OBi+OBl+OBvizjgabjgovjgYoNCivjgYvjgbDjgoQs44Gu44KK44G144G/DQor44GE44GX44GW44GNLOOBm+OBhOOBng0KK+OBi+OBjOOChCzjgYvjgZrjgYoNCivjgZPjgZ/jgass44Gy44Gn44GC44GkDQor44GT44GZ44GgLOOChOOBmeOBlw0KK+OBhOOBmOOCiizjgYTjgZXjgYoNCivjgb7jgovjgoTjgb4s44Gy44Gn44GKDQor44GL44Gq44GELOOBl+OCk+OBhOOBoQ0KK+OChOOBjizjgb/jga7jgosNCivjgbXjgZjjga4s44Gy44KN44G/44GhDQor44GT44Gn44KJLOOBguOBjeOBsuOBpw0KK+OBmeOBjuOBiizjgZ/jgYvjgYoNCivjgZnjgYzjga/jgoks44G/44Gk44KLDQor44GV44GE44Go44GGLOOBruOBtuOBig0KK+OBiuOBiyzjgbLjgo3jgZcNCivjgYTjgZfjgb7jgoss44Go44GX44GZ44GRDQor44G/44KE44GW44GNLOOBl+OCk+OBmA0KK+OBr+OBvuOBrizjgb7jgoLjgosNCivjgZPjgZ/jgZjjgb4s44Gy44KN44GXDQor44Gf44GL44GX44G+LOOBkeOBhOOBmA0KK+OBpOOBi+OBoCzjgbLjgo3jgbXjgb8NCivjgarjgYvjgoDjgoks44GX44KT44GE44GhDQor44Gf44GR44GgLOOCiOOBsuOBoQ0KK+OChOOBmeOCgOOCjSzjgZ/jgY/jgoLjgooNCivjgarjgYvjgoDjgoks44KE44GZ44GC44GNDQor44G144GY44GX44G+LOOChuOBn+OBiw0KK+OBiuOBi+OBoCzjgZ/jgb/jgoQNCivjgYLjgoQs44KI44GX44GKDQor44Gq44GL44KA44KJLOOBv+OBpOOBkA0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgZnjgYzjga/jgoks44G+44GV44GoDQor44KG44GC44GVLOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBhCzjgZPjgYbjgYTjgaENCivjgYrjgY/jgbws44G/44Gk44KE44GZDQor44GK44GV44KPLOOBr+OCi+OChOOBmQ0KK+OChOOBvuOCguOBqCzjgYrjgZXjgoANCivjgYTjgb7jgYTjgZrjgb8s44GT44GeDQor44GK44GL44GgLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44GC44GR44G144G/DQor44Gq44GL44GuLOOBm+OBhOOBhOOBoQ0KK+OBiuOCguOCiizjgYvjgaTjgbXjgb8NCivjgoTjgb7jgoLjgags44G+44GV44Gu44KKDQor44Gq44GM44GELOOBr+OCi+OBsuOBkw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgbLjgY3jgaEs44GX44GS44G+44GVDQor44KE44G+44GgLOOBn+OBkeOBlw0KK+OBpOOBi+OCguOBqCzjgb/jgaTjgb7jgosNCivjgYTjga7jgYbjgYgs44G/44Gk44G+44KLDQor44GE44Gu44GG44GILOOBn+OBkeOBsuOCjQ0KK+OBmeOBv+OBi+OCjyzjgZfjgZLjgZ/jgaANCivjgbXjgY/jgaAs44GR44KT44GYDQor44KE44G+44KC44GoLOOCgOOBreOCiOOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgajjgZcNCivjgYvjgpPjgbAs44G+44GV44Gf44GRDQor44GV44KJ44GELOOBv+OBjeOBig0KK+OBleOBi+OBjSzjgYvjgZrjgbLjgZMNCivjgoTjgZnjgYQs44KI44GX44Gy44KNDQor44GL44G/44KA44KJLOOBj+OBq+OBig0KK+OBm+OBuSzjgY3jgojjgZcNCivjgojjgZfjgaAs44Gf44GP44GKDQor44Gq44GM44GbLOOBi+OBmuOBsuOBkw0KK+OBteOBj+OBoSzjgYvjgZrjgYoNCivjgbXjgY/jgaAs44KG44GN44G+44GVDQor44Gu44Gq44GLLOOCiOOBl+OBr+OCiw0KK+OBhOOBvuOBoCzjgbLjgZXjgZcNCivjgavjgZfjgYvjgo8s44Go44GX44GKDQor44GT44KE44GuLOOBpOOBqOOCgA0KK+OBquOBi+OBluOCjyzjgb7jgZXjgagNCivjgYrjgYzjgo8s44GC44GN44KJDQor44Gq44GL44KE44G+LOOBi+OBiuOCiw0KK+OBrOOBruOBi+OCjyzjgZjjgoXjgavjgaENCivjgZ3jga0s44Gb44Gk44GTDQor44G/44Ge44GQ44GhLOOChuOBhuOBkw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgb/jgaQNCivjgojjgZfjgb7jgaQs44G+44GV44GC44GNDQor44GK44Gv44KJLOOBl+OCh+OBmA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgb/jga7jgZDjgaEs44Gf44GL44GXDQor44GX44KT44KB44KTLOOCiOOBl+OBn+OBiw0KK+OBruOBmyzjgajjgZfjgYvjgZoNCivjgYTjgo/jga/jgZcs44Gf44Gg44GXDQor44GC44GL44GELOOBhOOBmuOBvw0KK+OBpOOBn+OCguOBqCzjgZjjgofjgZgNCivjgarjgYvjgoLjgags44Gu44G244Gy44GTDQor44GP44Gg44Gq44G/LOOBvuOBleOBsuOCjQ0KK+OBhOOBoeOBoCzjgb7jgZnjgZMNCivjgoTjga4s44Gy44Gn44GKDQor44G+44Gk44GNLOOBguOBjeOBig0KK+OBleOBleOBjSzjgZ/jgYvjgZcNCivjgbXjgovjga4s44Gv44KL44Gy44GVDQor44G144GY44GfLOOBkeOBhOOBkw0KK+OBhOOBruOBhuOBiCzjgbXjgb/jgYoNCivjgZ/jgoQs44KG44GN44GKDQor44G/44KE44GW44KPLOOBhOOCj+OBig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgYoNCivjgYLjgY/jga0s44G+44GV44GK44G/DQor44G744GX44GuLOOBl+OCk+OBmA0KK+OCiOOBl+OBoCzjgojjgZfjga7jgooNCivjgYbjgYjjgoDjgoks44Gf44GL44G144G/DQor44GL44G/44KELOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgorjgofjgbLjgaENCivjgYLjgpPjganjgYYs44Gf44GR44GXDQor44Go44KI44GE44Ga44G/LOOBvuOBleOBr+OCiw0KK+OBj+OCj+OBqizjgb/jga7jgosNCivjgavjgYTjgb8s44G+44GV44KG44GNDQor44G/44GG44KJLOOBn+OBi+OBlw0KK+OBruOCgOOCiSzjgYjjgYTjgZgNCivjgYrjgYvjgaAs44GN44G/44GKDQor44GC44GV44Gs44G+LOOCiOOBl+OBl+OBkg0KK+OBleOBleOBiizjgYvjgYrjgosNCivjgYTjgarjgYzjgY0s44GC44GN44KJDQor44GZ44GM44KP44KJLOOBv+OBqeOCig0KK+OBl+OCh+OBmCzjgb/jgaTjgoTjgZkNCivjgZ/jgYzjgo8s44Gf44KN44GGDQor44Gd44GMLOOCiOOBhuOBkw0KK+OBl+OCh+OCjyzjgajjgZfjgo0NCivjgb7jgaTjgYvjgo8s44GX44KT44GE44GhDQor44GX44KC44KA44KJLOOBi+OBmuOBig0KK+OCj+OBn+OBquOBuSzjga7jgbzjgosNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GE44GE44GgLOOBn+OBkeOBlw0KK+OBteOBj+OCguOBqCzjgZ/jgYvjga/jgosNCivjgoDjgonjgoTjgb4s44Go44GX44GKDQor44G744KKLOOBruOCiuOBkw0KK+OChOOBvuOBrizjgYvjgaTjgZcNCivjgavjgZfjgo/jgY0s44GK44GV44KADQor44G+44Gk44GKLOOBguOBjeOCiQ0KK+OBiuOBi+OCguOBqCzjgZjjgoXjgpMNCivjgYrjgZXjgY0s44GL44Ga44Gy44KNDQor44GG44KB44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBiuOBi+OCgOOCiSzjgb7jgZXjgagNCivjgZPjgYTjgZEs44GV44Go44GXDQor44GK44Gf44GrLOOBn+OBkeOBleOBoA0KK+OBi+OBn+OBiuOBiyzjgb/jga7jgosNCivjgYrjgYvjgaAs44Gu44G244Go44KCDQor44G144GP44GX44G+LOOBjeOCiOOBvw0KK+OBiOOBoOOBquOBiyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44KG44GG44GYDQor44GE44Gh44GL44KPLOOBquOBiuOChuOBjQ0KK+OBj+OCjeOBi+OCjyzjgZfjgpPjgZgNCivjgZXjgajjgYYs44GT44GG44GE44GhDQor44GK44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgY0NCivjgoTjgb7jgZfjgZ8s44G+44GV44GC44GNDQor44GE44Gh44GL44KPLOOBsuOBp+OBig0KK+OBteOBi+OBluOCjyzjgojjgZgNCivjgY/jgbzjgZ8s44G+44GV44GqDQor44Gr44GX44KA44KJLOOBvuOBk+OBqA0KK+OBreOBjuOBlyzjgZHjgpPjgYTjgaENCivjgZPjgpPjgaks44Gq44GK44G144G/DQor44G144KL44KELOOBguOBn+OCiw0KK+OBk+OBsOOChOOBlyzjgZPjgZvjgYQNCivjgZ/jgoDjgoks44G+44GV44GC44GNDQor44G/44Gk44Gv44GXLOOBvuOBleOBjQ0KK+OBj+OBvuOBluOCjyzjgZfjgaHjgo0NCivjgoTjgb7jgaAs44KI44GX44GKDQor44Gy44KN44GkLOOChOOBmeOBruOCig0KK+OBi+OBreOBoCzjgZfjgZLjgosNCivjgYLjgZ0s44Gb44GE44GE44GhDQor44GI44Gz44Gv44KJLOOBjeOCiOOBlw0KK+OChOOBmeOBhCzjgY3jgojjgbLjgZUNCivjgZnjganjgYYs44GL44Ga44Gy44GTDQor44KE44Gv44GfLOOBmeOBiOOBsuOCjQ0KK+OBleOBi+OBhCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZXjgYws44Gf44GL44GXDQor44KE44G+44GW44GNLOOBi+OBmuOBuw0KK+OBquOBi+OCgOOCiSzjga7jgbbjgYoNCivjgYTjgZbjgo8s44GT44GG44GYDQor44GC44KJ44GELOOBsuOBleOChuOBjQ0KK+OBhuOBtuOBi+OBnyzjgZHjgpPjgZgNCivjgo/jgZ/jgazjgY0s44G/44Gk44GODQor44Gy44GX44GfLOOBn+OBpOOBig0KK+OBi+OBqOOBhizjgbLjgo3jgbLjgZMNCivjgoTjgb7jga0s44Gg44GE44Gv44Gh44KNDQor44KE44G+44GX44GfLOOBi+OBpOOBvw0KK+OBruOCgOOCiSzjgojjgZfjgYoNCivjgoTjgarjgYQs44GL44Ga44G/44GkDQor44KA44KJ44GL44G/LOOChuOBn+OBiw0KK+OBguOBiuOBjSzjgobjgY3jgYoNCivjgoTjgZfjgo0s44GN44GE44GhDQor44GC44GV44G+LOOBj+OBq+OBig0KK+OBiuOBj+OBoCzjgbLjgo3jgZMNCivjgYTjgZfjgbDjgZcs44G+44GV44Gu44KKDQor44G/44Gq44G/44GnLOOBqOOCguOBsuOCjQ0KK+OBhOOBrOOBmuOBiyzjgojjgZfjgYoNCivjgajjgY3jgo8s44GI44G/44GTDQor44G/44GG44KJLOOCiOOBhuOBkw0KK+OBvuOBtuOBoSzjgbLjgo3jgaHjgYsNCivjgYrjgbDjgoks44GR44KT44GE44GhDQor44G+44Gk44GNLOOBleOBoOOBvw0KK+OBiOOBkOOBoSzjgZ/jgaDjgobjgY0NCivjgYrjgb8s44Gu44G844KLDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OBguOCieOBi+OCjyzjgojjgZfjgagNCivjgZnjgYzjga4s44Gy44KN44GXDQor44KE44GZ44GELOOCiOOBl+OCjQ0KK+OBv+OChOOCguOBqCzjgb7jgZXjgobjgY0NCivjgbXjgZjjgY7jgo8s44G+44GV44G/44GhDQor44GN44Gf44GM44KPLOOBguOBjeOCiQ0KK+OBn+OBq+OBkOOBoSzjgZnjgZnjgoANCivjgZPjgZjjgb4s44G+44GV44Gy44KNDQor44GC44G+44GL44KPLOOBteOBv+OBig0KK+OBiuOBrOOBjSzjgobjgYbjgZgNCivjgZ/jgarjgbks44Gy44Gn44GC44GNDQor44G+44KL44Gv44GXLOOBk+OBuOOBhA0KK+OChOOBqeOChCzjgojjgZfjga/jgosNCivjgYrjgYzjgY8s44KE44GZ44Gu44G2DQor44GV44GL44GfLOOBqOOBl+OBr+OCiw0KK+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44Gy44KN44GXDQor44GC44GE44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBiuOBnyzjgZ/jgZHjgZcNCivjgYLjgY3jgoTjgb4s44Gf44GR44GXDQor44GX44G/44GaLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgokNCivjga/jgZ/jgoLjgags44GT44G444GEDQor44GG44GZ44GgLOOBsuOCjeOChOOBmQ0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgarjgYvjgYzjgo8s44G/44GN44GKDQor44G+44Gk44Gw44KJLOOBv+OBpOOCiw0KK+OBj+OBrOOBjizjgojjgZfjgYLjgY0NCivjgYrjgYzjgo8s44KG44Gf44GLDQor44Gk44GYLOOChuOBn+OBiw0KK+OBi+OCj+OBhCzjgZPjgYbjgZgNCivjgZnjgYzjgo/jgoks44GE44GV44GKDQor44KA44GoLOOBmOOCheOBq+OBoQ0KK+OBiuOBsOOCiSzjgojjgZfjgbLjgo0NCivjgYvjgajjgYYs44GT44G444GEDQor44GL44G244KJ44GNLOOBsuOBp+OBvw0KK+OCj+OBi+OBn+OBuSzjgbLjgafjgYoNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GE44KP44GV44GNLOOBqOOBiuOCiw0KK+OBquOCiuOBnyzjgojjgZfjgbLjgo0NCivjgYLjgY3jgoTjgb4s44Gf44GL44GKDQor44G/44Gk44GELOOBiuOBleOBteOBvw0KK+OBiOOCk+OBqSzjgZHjgpPjgZgNCivjgojjga3jgZ8s44Gf44GL44Gu44G2DQor44GC44GK44GELOOBi+OBmuOBig0KK+OBiuOBi+OCguOBqCzjgabjgaTjgYoNCivjgYrjgaTjgYss44Gv44KL44GKDQor44G144GP44KC44KKLOOChuOBn+OBiw0KK+OBpuOBl+OBvizjgojjgZfjgYoNCivjga/jgb4s44GL44Ga44Gf44GLDQor44KI44GX44GgLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBuSzjgZfjgoXjgbLjgaENCivjgZ/jgarjgYss44GL44Ga44GKDQor44Gf44GL44Gv44GXLOOChOOBmeOBqOOBlw0KK+OBn+OBquOBuSzjgZ/jgYvjgobjgY0NCivjgYLjgZ0s44KG44GN44GKDQor44Gf44GL44GgLOOBpOOBqOOCgA0KK+OBv+OChOOBrizjgZPjgZfjgo0NCivjgYbjgYjjgZrjgb8s44Gy44KN44KG44GNDQor44GE44Gh44GL44KPLOOBiuOBleOCgA0KK+OBguOBleOCjyzjgZ/jgYvjgZcNCivjgYTjgarjgoLjgags44GR44GE44GE44GhDQor44KC44KK44KELOOChuOBn+OBiw0KK+OBquOBi+OBn+OBqyzjgYLjgY3jgYoNCivjgb/jgoTjgoLjgags44GN44KI44GXDQor44G/44GP44GrLOOCiOOBl+OBsuOBlQ0KK+OBjeOBn+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgoTjgZ/jgbks44GV44GL44GIDQor44Gq44GM44GL44KPLOOBi+OBmuOBvuOBlQ0KK+OChOOBqizjgbLjgafjgY0NCivjgZXjgY/jgb4s44Gv44GY44KBDQor44GC44KJ44GELOOCiOOBl+OBr+OCiw0KK+OBl+OBvuOBoCzjgoTjgZnjga7jgooNCivjgabjgZrjgYss44GN44KH44Gy44GhDQor44GG44GI44GuLOOBteOBv+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgYTjgaENCivjgYrjgY/jgo/jgaAs44Gy44KN44GXDQor44KI44GT44KE44G+LOOBqOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgbLjgajjgZcNCivjgavjgZfjgoDjgoks44KE44GZ44GC44GNDQor44Gf44GL44G+44GkLOOBqOOCguOBteOBvw0KK+OBq+OBl+OCgOOCiSzjgYvjgZrjgYoNCivjgYTjgaHjgY0s44Gy44Go44GXDQor44GE44KP44GX44GfLOOBkeOCkw0KK+OBiuOBrizjgYTjgaHjgZ4NCivjgavjgZfjgY0s44GI44GE44GE44GhDQor44GV44KPLOOBn+OBoOOBvuOBlQ0KK+OBn+OBi+OBvyzjgb7jgZXjgbLjgacNCivjgoTjgZnjgbXjgY8s44KK44KH44Gy44GhDQor44GK44GfLOOBi+OBmuOBig0KK+OBiuOBi+OCguOBqCzjgb/jgaTjgosNCivjgZXjgYvjgYQs44Go44GX44GKDQor44G144GY44KC44GoLOOBquOBiuOBkw0KK+OBvuOBpOOCguOBqCzjgZfjgoXjgavjgaENCivjgYrjgbLjgoPjgbYs44GX44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBu+OCiuOBhuOBoSzjgb7jgarjgbYNCivjgYTjgZfjgoLjgags44KI44GX44GK44G/DQor44G+44Gk44KC44GoLOOCiOOBsuOBoQ0KK+OBn+OBkeOBhuOBoSzjgYLjgY3jga7jgooNCivjgoLjgajjgoTjgb4s44GT44GG44GE44GhDQor44KI44GX44Gq44GMLOOBn+OBpOOBvg0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgZcNCivjgZ/jgavjgZDjgaEs44Gu44G244Gk44GqDQor44Gf44GR44GT44GXLOOBqOOBl+OBig0KK+OBpOOCgOOCiSzjgZ/jgaTjgYoNCivjgYrjga4s44GL44Ga44GKDQor44GK44GL44KC44GoLOOBiuOBleOCgA0KK+OBteOCi+OBnyzjgZHjgpPjgZgNCivjgavjgZfjga4s44Gy44KN44GXDQor44G/44Ga44Gf44GrLOOBsuOCjeOBvuOBlQ0KK+OBk+OChOOBvizjgoTjgZnjgYoNCivjgY3jgY/jgaEs44Go44GN44GKDQor44GK44GT44GG44GhLOOBl+OBkuOBruOCig0KK+OBi+OCj+OBnyzjgYvjgZrjgoQNCivjgY/jga/jgoks44GX44KF44Gy44GhDQor44G144KL44Gv44GXLOOBkeOBhOOBhOOBoQ0KK+OBn+OBi+OCiOOBlyzjgZfjgoXjgbLjgaENCivjgYvjgZks44Gq44KK44GKDQor44GC44G/44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhuOBhg0KK+OCgOOBreOBqOOBhizjgZPjgZfjgo0NCivjgb7jgaTjgoLjgags44GT44GG44GYDQor44Gf44GL44Gq44GXLOOBv+OBoeOBig0KK+OBguOBjeOBnyzjgojjgZfjgYoNCivjgZ/jgYvjga/jgZcs44G+44GV44Go44GXDQor44Gq44GM44GELOOBk+OBm+OBhA0KK+OCiOOBl+OBoCzjgZfjgZLjgYoNCivjgb7jgaTjgoLjgags44GV44Go44GXDQor44Go44GP44GgLOOBvuOBleOBsuOCjQ0KK+OBsuOCieOBhCzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYrjgY/jgZfjgb4s44Gy44KN44KG44GNDQor44G+44GX44GfLOOBsuOBleOBlw0KK+OChOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgZXjgY/jgonjgYQs44G+44GV44GC44GNDQor44Gf44GN44GW44KPLOOBn+OBi+OBlw0KK+OBvuOBmeOBkyzjgojjgZfjgobjgY0NCivjgZfjgpPjgYvjgo8s44GT44GeDQor44GK44Gf44GrLOOBteOBv+OBqOOCiA0KK+OBi+OCj+OBrizjga7jgbbjgobjgY0NCivjgYLjgonjgYvjgo8s44GZ44GZ44KADQor44GC44Gg44GhLOOBqOOBl+OBig0KK+OBhuOBoeOBoCzjgZnjgZnjgoANCivjgZPjga/jgoks44G+44GV44GC44GNDQor44GK44Gv44GXLOOBqOOBl+OBig0KK+OBi+OCgeOBiuOBiyzjgoTjgZnjgb/jgaENCivjgb/jgoDjgoks44Gf44GL44GXDQor44GE44GNLOOBpOOBi+OBlQ0KK+OBguOBl+OBmuOBiyzjgoTjgZnjgYLjgY0NCivjgoTjgb7jgoLjgags44G/44Gh44GKDQor44KI44GX44GgLOOBruOBnuOCgA0KK+OBr+OCieOBiuOBiyzjgZ/jgYvjgZcNCivjgYbjgovjgo/jgZcs44GX44GS44GKDQor44GK44KT44GgLOOBjeOBv+OBsuOCjQ0KK+OBhOOCk+OBqSzjgajjgoLjgYoNCivjgZ/jgZHjgarjgYss44GV44Go44GXDQor44G144GY44GV44KPLOOChuOBhuOBmA0KK+OBiuOCguOCiizjgbLjgo3jgYgNCivjgarjgYvjgoDjgoks44Gf44Gg44Gy44KNDQor44GX44KH44GYLOOCiOOBl+OBv+OBpA0KK+OBjeOBn+OBmOOBvizjgabjgaTjgYoNCivjgYTjgajjgYYs44Gf44GL44KG44GNDQor44Gy44KJ44GKLOOBkeOCk+OBmA0KK+OBmeOBv+OCguOBqCzjgajjgZfjgbLjgZMNCivjgarjgYvjgZ/jgass44GL44Ga44Gy44GTDQor44GC44KJ44GX44G+LOOCiOOBl+OBig0KK+OBi+OBn+OChOOBvizjgajjgb/jgYoNCivjgYbjgYjjgaAs44KI44GeDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOBr+OBnyzjgbLjgo3jga7jgooNCivjgYrjgZ/jgass44GK44GV44KADQor44GE44GE44Gs44G+LOOBi+OBpOOChOOBmQ0KK+OBquOBjOOBleOCjyzjgbLjgo3jgZcNCivjgoTjgZnjgaAs44GR44KT44GYDQor44G144GP44GX44G+LOOBvuOBleOBig0KK+OBleOBi+OBjeOBsOOCiSzjgb7jgZXjgajjgZcNCivjgYvjgajjgYYs44G+44KC44KLDQor44KI44GT44GW44KPLOOBvuOBleOChuOBjQ0KK+OBi+OBqeOBrizjgbLjgo3jgZcNCivjgoTjgb7jgYrjgYss44KI44GX44Gu44KKDQor44GL44G/44Gf44GrLOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgYLjgY3jgokNCivjga7jgoLjgags44GL44Ga44Gf44GLDQor44GZ44GO44KC44GoLOOBruOBtuOChA0KK+OBteOBmOOBrizjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44KG44GN44GKDQor44Gv44GbLOOChuOBjeOBruOBtg0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgYvjgo/jgbDjgZ8s44Gy44KN44G144G/DQor44GL44KP44Ge44GILOOCiuOCheOBmA0KK+OBr+OBl+OCguOBqCzjgaTjgajjgoANCivjgbLjgo3jgb7jgZUs44KI44GX44Gy44KNDQor44GN44GX44KC44GoLOOCiOOBl+OCjQ0KK+OBsuOCieOBpOOBiyzjgZfjgoXjgZgNCivjgYbjgYjjgaAs44KK44KH44Gy44GhDQor44GC44KJ44GELOOBguOChOOBkw0KK+OBhOOBhOOBoCzjgZ/jgYvjgZcNCivjgbLjgo3jgZfjgb4s44G144G/44Gf44GLDQor44GE44GV44GLLOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgY/jgonjgoLjgaEs44Gy44KN44GNDQor44GV44GE44Go44GGLOOBiOOBpOOCjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYvjgZoNCivjgbXjgYvjgoQs44Gb44GE44GE44GhDQor44GV44GL44GELOOBk+OBhuOBmA0KK+OBiuOCj+OBoCzjgZfjgofjgZgNCivjgYvjgoHjgoQs44G+44GV44GL44GkDQor44GP44GV44GG44KJLOOBiOOCieOBtg0KK+OCj+OBoCzjgbLjgafjgYoNCivjgZTjgags44GX44KH44Gy44GhDQor44Gy44KJ44G144GPLOOBoOOBhOOBl+OCkw0KK+OCguOCjeOChCzjgoTjgZnjgbLjgo0NCivjgYTjgZHjgaAs44GP44Gr44GKDQor44G+44GZ44GgLOOBv+OBruOCiw0KK+OBv+OBmuOBrizjgojjgZfjgobjgY0NCivjga/jgoTjgZcs44Go44GX44Gy44GTDQor44GC44GK44GNLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOCiizjgZfjgofjgZ4NCivjgb/jgZXjgo8s44GL44Gk44Gy44KNDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBiOOCk+OBqSzjgZ/jgYvjgYoNCivjgZnjgYzjgZXjgo8s44G+44GV44GKDQor44GK44KK44Gv44KJLOOBv+OBpOOBkA0KK+OBvuOBpOOBquOBjCzjgabjgaTjgZgNCivjgYvjgZXjgYQs44Go44GX44KNDQor44Gb44KA44KJLOOBqOOBl+OBig0KK+OBleOBj+OCieOBhCzjgYvjgaTjgb8NCivjgabjgonjgYvjgaks44Go44GX44GKDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBi+OCj+OBruOBuSzjgY3jgofjgbLjgaENCivjgYLjgYrjgbAs44GC44GN44KJDQor44KA44KJ44KC44GoLOOBsuOBp+OBqOOBlw0KK+OBpOOBvOOBhuOBoSzjgZXjgaDjgobjgY0NCivjgbXjgovjgZfjgocs44G+44GV44Gv44KLDQor44GX44Gw44KE44G+LOOBqOOBl+OBn+OBiw0KK+OChOOBvuOCguOBqCzjgY3jgojjgajjgZcNCivjgYbjgaHjgaAs44Go44GX44Gy44GTDQor44G+44GI44GW44KPLOOBvuOBleOChuOBjQ0KK+OBk+OCgOOCiSzjgZXjgbbjgo0NCivjgoTjgb7jgZXjgY0s44Gm44Gk44GKDQor44GG44GX44GNLOOBkeOCk+OBhOOBoQ0KK+OBvuOBoeOChOOBvizjgZvjgYTjgZgNCivjgbXjgZjjgazjgY0s44Go44KI44G/DQor44Gq44GL44KA44KJLOOBn+OBi+OBteOBvw0KK+OBj+OBmeOCguOBqCzjgY3jgojjgYLjgY0NCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GG44GI44KE44G+LOOBn+OBi+OBguOBjQ0KK+OBk+OBhOOBkSzjgojjgZfjgobjgY0NCivjga/jgZvjgYzjgo8s44KE44GZ44GC44GNDQor44G144KL44GL44KPLOOBi+OBhOOBoQ0KK+OChOOBvuOBoCzjgb7jgZXjgosNCivjgobjga/jgonjgY4s44KG44GN44KI44GXDQor44GK44GX44G+LOOBn+OBi+OBlw0KK+OBneOBrSzjgbXjgZjjgYoNCivjgajjgb4s44G144G/44GKDQor44Gf44GL44Gv44GXLOOBn+OBi+OBsuOCjQ0KK+OBi+OBkeOBr+OBnyzjgbLjgo3jgbXjgb8NCivjgYTjgZfjgYQs44Go44G/44GKDQor44GV44Go44GGLOOBguOBjeOBruOBtg0KK+OCgOOCieOChOOBvizjgojjgZfjgZgNCivjgbvjgorjgZDjgaEs44GL44Ga44G/DQor44Gq44GL44GW44GoLOOBl+OCh+OBmA0KK+OBleOBqOOBhizjgZnjgZnjgoANCivjgYvjga3jgZMs44G+44Gk44G/DQor44GL44GX44G+LOOBpuOCi+OBig0KK+OBqOOBkOOBoSzjgojjgZfjgYoNCivjgZPjgb/jgoTjgb4s44Go44GX44KG44GNDQor44KE44G+44GK44GLLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgYLjgY0NCivjgoLjgorjgZ8s44KE44GZ44Gy44KNDQor44KI44GT44GELOOBguOBjeOBig0KK+OBsuOCieOBhCzjgb/jgaTjgojjgZcNCivjgZfjgYTjgbDjgZcs44Gu44KK44KG44GNDQor44GL44Gt44GTLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBrSzjgZXjgaHjgbLjgo0NCivjgZvjgY3jgZDjgaEs44GX44Ga44GKDQor44G/44KC44KKLOOBvuOBleOBig0KK+OBjeOBj+OBoSzjgZfjgZLjgosNCivjgoTjgb7jgoLjgags44Gu44KK44KG44GNDQor44GC44KJ44GL44KPLOOBkeOCk+OBmA0KK+OBqOOCguOBj+OBqyzjgb7jgZPjgagNCivjgajjgb/jgZ8s44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBqOOBjOOBlyzjgorjgoXjgZ4NCivjgYvjgo/jgoDjgoks44Go44GX44Gu44G2DQor44G144GP44Gq44GMLOOBsuOCjeOCgA0KK+OBvuOBjeOBnyzjgY3jgb/jgYLjgY3jgokNCivjgZXjga4s44KI44GX44Gu44G2DQor44GV44Go44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBleOBi+OBrizjgZHjgYTjgYTjgaENCivjgaTjgaHjga/jgZcs44KI44GX44Gu44G2DQor44GG44GI44GuLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgZ/jgZENCivjgajjgY/jgarjgYws44G+44GV44G144G/DQor44GE44Go44GGLOOBruOBtuOBr+OCiw0KK+OBsuOBleOBvuOBpCzjgabjgaTjgYoNCivjgYrjgaTjgYss44Gf44GL44Gy44GTDQor44GL44KP44KC44GoLOOBvuOBleOBn+OBiw0KK+OBruOCgOOCiSzjgYvjgaTjgZgNCivjgYvjga4s44Gf44GL44GKDQor44GG44GI44GV44GLLOOBvuOBleOBjQ0KK+OBteOBmOOCj+OCiSzjga7jgorjgYvjgZoNCivjgYrjgYzjgo8s44GX44KF44G444GEDQor44GP44KJ44GfLOOBruOBtuOBig0KK+OBr+OBquOBneOBqCzjgajjgZfjgbLjgo0NCivjgavjgZfjgYvjgo8s44GR44GE44GYDQor44GI44Gz44GZLOOBqOOBj+OBvw0KK+OChOOBmeOBruOCiizjgb/jga7jgosNCivjgZXjgYvjgYQs44GR44GE44GYDQor44G+44GI44GgLOOBmOOCheOCk+OChA0KK+OBteOBj+OBoCzjgZfjgZLjgYLjgY0NCivjgoTjgb7jgoLjgags44GR44KT44GeDQor44GX44GK44GfLOOBsuOBp+OBguOBjQ0KK+OCgOOCieOBi+OBvyzjgZHjgpPjgZgNCivjgYTjgY/jgb8s44GL44Ga44GKDQor44Gq44GL44GOLOOBqOOCiOOBqOOBlw0KK+OBqOOBj+OBvuOBpCzjgYvjgoHjgYoNCivjgZ/jgavjgYQs44GX44GS44GNDQor44GK44Gy44KD44G+LOOCiOOBl+OBhOOBoQ0KK+OBn+OBrizjgobjgZ/jgYsNCivjgYrjgZ8s44KG44GG44GYDQor44GP44G+44GuLOOBsuOCieOBig0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgagNCivjgYLjgZXjga4s44Go44KC44G144G/DQor44GV44GL44GQ44GhLOOBqOOCiOOBteOBvw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgojjgZcNCivjgYvjgajjgYYs44Gy44Gn44GKDQor44G+44GI44GL44KPLOOCiOOBl+OBr+OCiw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgb7jgaTjgoLjgags44KI44GX44GC44GNDQor44KE44G+44Gq44GLLOOBl+OBkuOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgZrjgb8NCivjgbXjgZjjgZ8s44KE44GZ44G+44GVDQor44KE44GOLOOBqOOCguOCiA0KK+OBhOOCj+OBhCzjgZ/jgYvjgZcNCivjgbXjgY/jgZfjgb4s44KG44G/DQor44G144KL44GL44KPLOOBn+OBi+OBig0KK+OBiuOBjOOBnyzjgajjgZfjgobjgY0NCivjgZnjgZrjgY0s44GR44KT44GYDQor44GX44GL44G+LOOBn+OBi+OBoeOBuw0KK+OBjeOBl+OCguOBqCzjgbLjgo3jga7jgbYNCivjgZPjgo3jgY4s44GC44GN44GKDQor44G144Gf44G/LOOBvuOBleOBj+OBqw0KK+OChOOBl+OCjSzjgYvjgZrjgYoNCivjga/jgorjgYTjgZEs44Gu44KK44KG44GNDQor44GX44KA44KJLOOBpOOBqOOCgA0KK+OBquOBjOOBj+OCiSzjgYvjgZrjgYoNCivjgb/jgarjgb8s44Gf44GL44GXDQor44Go44GP44Gq44GMLOOBi+OBmuOBig0KK+OBn+OBquOBiyzjgajjgZfjgYoNCivjgabjgonjgZXjgY0s44GI44GE44GYDQor44GL44Go44GGLOOBk+OBhuOBmA0KK+OBv+OBmuOBrizjgZ/jgaTjgYoNCivjgZ/jgoLjgags44G+44GV44G/DQor44GG44Gh44GgLOOBvuOBleOBn+OBiw0KK+OBn+OBkeOBhOOBoSzjgbLjgafjgb8NCivjgbLjgbPjga4s44GT44GG44GE44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBruOCig0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgbLjgZMNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44GE44GX44Gf44GrLOOBl+OCheOBq+OBoQ0KK+OBhOOBpyzjgYvjgaTjgb8NCivjgavjgYTjgZXjgags44GN44KI44GXDQor44GZ44Gq44Gv44KJLOOBqOOBl+OBig0KK+OBl+OBv+OBmizjgojjgZfjga/jgosNCivjgYvjgajjgYYs44GC44KK44G+44GVDQor44Gq44GE44Go44GGLOOBhOOBoeOCjeOBhg0KK+OBk+OBhOOBkSzjgZPjgYbjgZgNCivjgY3jgZ/jgoDjgoks44GN44KI44GXDQor44GL44GM44KPLOOBteOBj+OCgA0KK+OBhOOBkeOBoCzjgZfjgo0NCivjgYvjga4s44Go44GK44KLDQor44GK44GL44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBk+OBsOOChOOBlyzjgbLjgajjgZcNCivjgYTjgZfjgYQs44Gy44KN44GL44GaDQor44GV44GI44GNLOOCiOOBl+OChuOBjQ0KK+OBleOCj+OBoCzjgbLjgo3jgZcNCivjgZTjgags44KK44KH44G444GEDQor44GK44GuLOOBsuOCjeOBn+OBoA0KK+OBteOBquOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgZfjgpPjgoQs44GL44Ga44Gy44GVDQor44G744KT44GW44KPLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgobjgY0NCivjgYTjgZfjga4s44GX44KH44GYDQor44GE44GK44GPLOOBvuOBleOBig0KK+OBguOCieOBjSzjga7jgorjgobjgY0NCivjgbXjgZjjgo/jgY0s44GY44KF44KT44GYDQor44GE44Gh44KA44KJLOOBqOOBmeOBkQ0KK+OBr+OChOOBlyzjgajjgojjgbLjgZMNCivjgoLjgoos44Go44GX44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OChuOBjeOBteOBjSzjgZ/jgYvjgZcNCivjga/jgY7jgoLjgags44Gd44GYDQor44Gv44GX44KC44GoLOOBleOBoOOBsuOCjQ0KK+OBjeOBn+OChOOBvizjgb7jgZXjgbLjgo0NCivjgbXjgZjjgoLjgoos44G+44GZ44KG44GNDQor44GK44GP44GuLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjga7jgbbjgobjgY0NCivjgZ/jgZQs44G+44GV44Gy44KNDQor44GC44GV44GELOOBvuOBleOBguOBjQ0KK+OCguOCiuOBrizjgb7jgZXjgYvjgZoNCivjgb/jgarjgYQs44Gy44GL44KLDQor44KC44KK44GV44KPLOOBl+OBkuOBmA0KK+OBquOCiuOBleOCjyzjgaTjgajjgoANCivjgoLjgorjgoLjgags44Gy44Gn44Go44GXDQor44GT44Gw44KE44GXLOOCiOOBhuOBkw0KK+OBl+OBvuOBoCzjgb/jga7jgosNCivjgZnjgZrjgY0s44G+44GV44GNDQor44G144GP44GgLOOCiOOBl+OBleOBoA0KK+OBguOCieOBhCzjgZ/jgY/jgZgNCivjgZ/jgavjgoTjgb4s44GX44GS44KLDQor44GK44GL44KC44GoLOOBvuOBleOBsuOBlQ0KK+OBoOOBhOOCguOCkyzjgYTjgo/jgYoNCivjga/jgoTjgZcs44Gy44Gn44GKDQor44GE44GX44GgLOOCiOOBl+OBpuOCiw0KK+OBsuOCjeOBleOCjyzjgZHjgpPjgZgNCivjgojjgZfjgYrjgYss44GK44GV44KADQor44G+44Gk44KC44GoLOOBv+OBpOOBig0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgZcNCivjgY3jgZ8s44KI44GX44Gy44KNDQor44Gr44GX44KA44KJLOOBsuOCjeOBlw0KK+OBr+OBo+OBqOOCiizjgZHjgYTjgZMNCivjgoTjgb7jgoLjgags44Go44KI44GTDQor44GE44Go44GGLOOBteOBv+OBkw0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgosNCivjgZ/jgarjgYss44KI44GX44Gu44KKDQor44GE44GK44GNLOOBsuOBp+OBjQ0KK+OBi+OBvuOBnyzjgb/jgZXjgZMNCivjgZfjgb/jgZos44GR44GEDQor44G+44GZ44GK44GLLOOBguOBjeOBruOBtg0KK+OBleOCj+OBoCzjgZfjgoXjgbLjgaENCivjgarjgYvjgYTjgZcs44G+44Gk44GKDQor44KP44Gf44Gq44G5LOOBv+OBruOCiw0KK+OCiOOBl+OBluOCjyzjgojjgZfjgarjgYoNCivjgZXjgZXjgYrjgYss44G144GP44GKDQor44Gf44GL44G/LOOCiOOBl+OBv+OBoQ0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZrjgb8NCivjgYTjgb7jgbXjgY8s44GX44KT44GE44GhDQor44GL44G/44KELOOBleOBi+OBiA0KK+OCj+OBlSzjgZXjgarjgYgNCivjgY3jgY/jgaEs44GX44GS44GL44GaDQor44GG44GL44GELOOBsuOBp+OBig0KK+OBhOOCj+OBvizjgYvjgZrjgYoNCivjgaTjgZgs44GC44GN44KJDQor44Gf44GR44GgLOOBvuOBmeOBvw0KK+OBm+OBqOOBjOOCjyzjgajjgb/jgYoNCivjgZPjgZfjgoDjgoks44Go44G/44KE44GZDQor44KP44Gf44Gq44G5LOOBk+OBhuOBmA0KK+OBhuOBleOBvyzjgbLjgo3jgZcNCivjgYrjgYvjgaAs44Gy44Gn44GKDQor44G144GY44KP44KJLOOBl+OCh+OBkw0KK+OBi+OBqOOBhizjgZ/jgZHjgobjgY0NCivjgYTjgZfjga/jgoks44G+44GV44Gy44KNDQor44Gy44Gq44GfLOOBguOBjeOBig0KK+OBhuOBiOOBmeOBjizjga7jgorjgYLjgY0NCivjgZfjgbDjgZ8s44GX44KH44Gy44KHDQor44GK44GP44GgLOOBqOOBl+OBig0KK+OBmeOBquOChOOBvizjgZ/jgaDjgZcNCivjgYTjgb7jgYQs44Go44G/44GIDQor44Gq44GL44KA44KJLOOBsuOBp+OBig0KK+OBquOBi+OCguOCiizjgYLjgY3jgbLjgZMNCivjgbXjgYvjgZXjgo8s44G/44GN44GKDQor44G/44Ga44GfLOOBm+OBhOOBhOOBoQ0KK+OBiuOBrizjgbbjgpPjgZgNCivjgZXjgYTjgajjgYYs44GV44Gg44Gk44GQDQor44GX44KF44GpLOOBl+OBkuOBqOOBlw0KK+OBteOBj+OBhCzjgb7jgZXjgZcNCivjga7jgaAs44GY44KF44Gr44GhDQor44GK44GuLOOBv+OBpOOBruOBtg0KK+OBk+OBjOOBvyzjgajjgZfjgbLjgZMNCivjgb/jgY0s44GX44KH44GYDQor44GE44GR44GgLOOChOOBmeOChuOBjQ0KK+OBteOBmOOCguOCiizjgb7jgZXjgosNCivjgZ/jgYvjgaAs44GN44KH44G444GEDQor44GE44GR44GgLOOBl+OBkuOBsuOCjQ0KK+OBhOOBqOOBhizjga7jgbbjgYvjgZoNCivjgo/jgZ/jgarjgbks44G+44GV44KLDQor44GV44KP44GgLOOCiOOBl+OBig0KK+OBvuOBiOOBmOOBvizjgYLjgY3jgbLjgZMNCivjgYTjgarjgoDjgoks44Gu44G244GKDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OBmOOBvizjgoDjga3jgbLjgZUNCivjgYTjgo/jgb4s44GX44KT44GE44GhDQor44KP44GL44Gk44GNLOOBi+OBmuOBlw0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44G/44Gu44KLDQor44GL44GV44Gv44KJLOOBn+OBpOOBsuOBkw0KK+OBq+OBl+OChOOBvizjgYvjgarjgYgNCivjgZnjganjgYYs44Gv44KL44GNDQor44GK44GL44G5LOOCiOOBl+OBvuOBlQ0KK+OBteOBj+OBsCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgarjgYws44G144G/44GKDQor44GV44GL44GELOOBqOOBl+OBsuOBkw0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgarjgYvjgoTjgb4s44Gu44G244GeDQor44KI44Gt44GgLOOBruOBtuOBn+OBiw0KK+OBj+OBvuOBnyzjgYvjgZrjgbLjgo0NCivjgZPjgoTjgb4s44G+44GV44G144G/DQor44KI44Gt44KE44G+LOOBvuOBk+OBqA0KK+OBteOBmOOBi+OCjyzjgZnjgZnjgoANCivjga/jgorjgYzjgoQs44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBl+OBruOBtg0KK+OCiOOBl+OBoCzjgojjgZfjgobjgY0NCivjgY/jgZnjga7jgY0s44Gy44Gn44GNDQor44Gf44GL44Gv44GXLOOCiOOBl+OCjQ0KK+OBquOBjOOBnyzjgZ/jgYvjgZcNCivjgZ3jga7jgY/jgoks44GT44GG44GYDQor44G+44GZ44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBiuOBjuOBr+OCiSzjgZjjgoXjgbLjgaENCivjgojjgZfjgaAs44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBiOOBoCzjgoTjgZnjgYoNCivjgarjgYvjgZjjgocs44Gy44KN44Gy44GTDQor44GE44GE44Ga44GLLOOChuOBjeOBig0KK+OBpuOCieOBq+OBlyzjgZ/jgYvjgoTjgZkNCivjgbXjgY/jgYQs44GR44KT44GeDQor44Gn44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBleOBiOOBjSzjgbLjgo3jgobjgY0NCivjgYbjgaHjgaAs44Gf44GR44GXDQor44GX44GE44GqLOOBkeOCk+OBmA0KK+OBteOCi+OChCzjgbLjgo3jgYLjgY0NCivjgarjgYzjgY/jgbws44GL44Ga44Gy44GoDQor44Gm44KJ44GG44GhLOOBn+OBoOOBlw0KK+OBiuOBn+OBiyzjgojjgZfjgbXjgb8NCivjgbXjgZjjgojjgZcs44GV44Gh44GTDQor44GV44GE44Go44GGLOOBl+OCk+OBmA0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44KI44GX44GKDQor44KI44GX44GuLOOBsuOCjeOBlw0KK+OBk+OBv+OChCzjgb7jgarjgbYNCivjgoTjgb7jgYzjgZ8s44G+44GV44Gy44GTDQor44Gk44KELOOBm+OBhOOBhOOBoQ0KK+OBq+OBl+OBrizjgZ/jgoLjgaQNCivjgYbjgaHjgaAs44Gu44G844KLDQor44KP44Gf44Gq44G5LOOBvuOBleOBruOBtg0KK+OCguOCiuOBnyzjgZvjgYTjgZgNCivjgZPjgZfjgaAs44GL44Ga44Gy44GTDQor44Gy44KN44GbLOOBl+OBkuOBr+OCiw0KK+OCiOOBl+OCgOOCiSzjgbLjgafjga7jgooNCivjgb/jgYbjgoks44Gu44G244GKDQor44GT44GE44Ga44G/LOOCiOOBl+OBr+OCiw0KK+OBpuOCieOBiizjgYrjgZXjgoANCivjgZvjgYzjgo8s44Gy44Gn44GC44GNDQor44GL44GE44Ga44GLLOOBvuOBleOBguOBjQ0KK+OBteOBj+OBvuOBmSzjgajjgYrjgosNCivjgYTjgajjgYbjgZos44G+44GV44GKDQor44Gb44GN44GM44G/LOOBteOBleOBiA0KK+OBteOBmCzjgZHjgpPjgZ0NCivjgojjgZfjgoDjgoks44Gf44GL44GXDQor44G144KL44KC44GoLOOBi+OBmuOCiOOBlw0KK+OBn+OBjeOBnyzjgajjgZfjgYoNCivjgYrjgYvjgaAs44GL44GK44KLDQor44Gf44GL44Gv44GXLOOBruOCiuOChuOBjQ0KK+OBn+OBq+OBteOBmCzjgbLjgZXjgYoNCivjgYTjgb7jgYrjgYss44GL44Ga44G/44GhDQor44KP44Gf44Gq44G5LOOBruOBvOOCiw0KK+OChOOBvuOCguOBqCzjgZPjgZ4NCivjgojjgaAs44KK44KH44G444GEDQor44G144GL44KE44G+LOOBi+OBpOOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgojjgZfjgYvjgZoNCivjgZXjga4s44Gy44Gn44Gu44G2DQor44Gf44GL44Gv44GXLOOBv+OBpOOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgb/jgaHjgYoNCivjgoTjga4s44GC44GN44KJDQor44GC44GN44GwLOOBmeOBmuOCiA0KK+OBv+OBqeOCiuOBi+OCjyzjgZjjgofjgZgNCivjgZ/jgYvjgZcs44Gy44KN44GXDQor44G144KL44GL44KPLOOBhOOBmuOBvw0KK+OBsuOBjeOBnyzjgY3jgojjgZgNCivjgYrjgZbjgY0s44KI44GX44KG44GNDQor44GC44GK44GNLOOBvuOBquOBtg0KK+OBleOBiOOBkOOBlSzjgbLjgo3jgbLjgZUNCivjgbXjgZjjgoLjgags44GC44GN44KJDQor44GT44Gr44GXLOOBvuOBleOBguOBjQ0KK+OBiuOBq+OBlyzjgYvjgZrjgbLjgo0NCivjgbLjgZDjgaEs44GR44KT44GYDQor44GP44G844GfLOOBi+OBiuOCiw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgYoNCivjgbXjgovjgYvjgo8s44Gy44KN44GXDQor44Gq44KK44GfLOOBsuOBleOBig0KK+OBn+OBquOBiyzjgY3jgb8NCivjga/jgZ/jgZHjgoTjgb4s44KG44KKDQor44G/44KE44KC44GoLOOBjeOCiOOBlw0KK+OBruOBluOBjSzjgbLjgZXjgZcNCivjga/jgZvjgYzjgo8s44GL44Ga44KI44GXDQor44GX44KJ44GL44KPLOOBsuOCjeOBv+OBpA0KK+OBguOBhOOBoCzjgb/jgojjgZMNCivjgbLjgo3jgYvjgo8s44G/44Gu44KLDQor44KK44KF44GL44KPLOOBiOOBhOOBmA0KK+OChOOBvuOBkOOBoSzjgojjgZfjgYLjgY0NCivjgY/jgorjgZXjgY0s44GX44GS44GK44G/DQor44KC44KK44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBj+OBvOOBnyzjgbLjgo3jgZcNCivjgY/jgb7jgZXjgZMs44KG44GG44GYDQor44GC44Gg44GhLOOBl+OCheOCk+OBmeOBkQ0KK+OBk+OBrizjgbXjgZjjgY0NCivjgoTjgb7jgoLjgags44GY44KF44Gr44GhDQor44GE44KP44GELOOBl+OCjQ0KK+OBiuOBr+OCiSzjgb7jgZXjgagNCivjgYTjgZfjga/jgoks44GE44Gh44KN44GGDQor44GC44GK44GNLOOBteOBleOBhOOBoQ0KK+OCguOCiizjgabjgaTjgYoNCivjgo3jgaPjgb3jgpPjgY4s44G/44GV44GKDQor44GL44Go44GGLOOChOOBmeOBr+OCiw0KK+OBleOBqOOBhizjgaHjgofjgZfjgo0NCivjgb7jgYjjgZ7jga4s44KI44GX44Gy44GTDQor44G144GY44KC44GoLOOBk+OBuOOBhA0KK+OBn+OBq+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgavjgZcs44Gk44KI44KADQor44Gf44GL44Gv44GXLOOBvuOBmeOBvw0KK+OBquOBi+OBhCzjgbLjgafjgYoNCivjgZ/jgYvjga/jgZcs44KI44GX44G/44GhDQor44GX44KCLOOBvuOBleOBguOBjQ0KK+OBl+OBsOOBnyzjgoLjgorjgZfjgZINCivjgbXjgovjgb/jgaEs44GR44KT44GfDQor44Gf44GR44GgLOOBsuOCjeOBguOBjQ0KK+OBteOBmOOBnyzjgYjjgaTjgZMNCivjgYvjgY7jgoTjgb4s44KK44KH44GfDQor44KP44GhLOOBsuOBp+OBig0KK+OBteOBmOOBnyzjgajjgoLjga7jgooNCivjgZPjgpPjgaks44Gf44GR44GXDQor44G+44Gk44KC44GoLOOCiOOCiuOBkw0KK+OBteOBj+OBhCzjgb7jgZXjgYLjgY0NCivjgZnjgYzjgo/jgoks44GT44GG44GE44GhDQor44G144GL44KE44G+LOOChOOBmeOBig0KK+OBhOOBvuOBhCzjgYjjgYTjgZjjgo0NCivjgZXjgajjgYYs44Gy44Gn44Gu44G2DQor44GL44Gq44GW44KPLOOBsuOCjeOBlw0KK+OBteOBoeOBluOBjSzjgobjgZ/jgYsNCivjgaTjgYvjgaAs44GX44KT44GYDQor44GE44GX44GW44GNLOOBi+OBmuOBvw0KK+OBqOOBj+OCiSzjgZ/jgZHjgbXjgb8NCivjgajjga7jgZXjgY0s44KG44Gy44Gh44KNDQor44Gf44GL44GNLOOBhOOBleOCgA0KK+OBteOBmOOBnyzjgojjgZfjgYoNCivjgarjgYzjgZss44GC44GN44KJDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBpOOBvyzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44G+44GV44Gu44KKDQor44G144GP44GfLOOBsuOBqOOBlw0KK+OBj+OCj+OBr+OCiSzjgZfjgZLjga7jgooNCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44GE44Gq44GP44G+LOOBsuOBp+OChuOBjQ0KK+OBv+OBleOBiizjgZPjgYbjgZjjgocNCivjgarjgYvjgZfjgZ8s44GC44GN44KJDQor44GK44GP44KE44G+LOOBvuOBleOBn+OBiw0KK+OBquOBjOOBiCzjgY/jgavjgbLjgZMNCivjgarjgYzjgYQs44GL44Ga44GKDQor44KE44G+44GW44GNLOOBiuOBleOCgA0KK+OBl+OCieOBhOOBlyzjgZfjgofjgbLjgaENCivjgYbjgYjjgaAs44Gf44GL44KG44GNDQor44GK44GY44G+LOOBv+OBjeOBig0KK+OBsuOCjeOBmyzjgoLjgajjgojjgZcNCivjgbLjgonjga4s44Gy44Gn44GKDQor44G144KL44GfLOOBsuOCjeOChuOBjQ0KK+OBk+OBrOOBvizjgozjgYTjgZMNCivjgZ/jgYvjgoTjgb4s44Gy44KN44KG44GNDQor44GC44GV44GX44GfLOOCiOOBl+OBguOBjQ0KK+OCiOOBpOOBr+OBlyzjgobjgbLjgaENCivjgaTjgaHjgoQs44Gf44GL44Gq44GKDQor44GK44Gr44GXLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgYjjgYTjgZ4NCivjgZfjgZrjga4s44Go44GX44GTDQor44Gv44GX44G5LOOBk+OBng0KK+OBu+OCiuOBhCzjgb7jgZPjgagNCivjgarjgYzjgYrjgYss44KG44GG44GYDQor44GP44KK44GfLOOBi+OBmuOBsuOCjQ0KK+OBjeOBsCzjgZfjgofjgZQNCivjgYTjgaAs44G+44GV44KLDQor44G144GP44Go44G/LOOBl+OCh+OBsuOBoQ0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgosNCivjgYTjgoos44Gy44KN44GC44GNDQor44GV44GfLOOBvuOBleOBruOBtg0KK+OBvuOCi+OChOOBvizjgb7jgZXjgosNCivjgYLjgYrjgoTjgb4s44Gf44GL44GKDQor44GX44KT44GpLOOBi+OBiuOCiw0KK+OBguOBhOOBi+OCjyzjgajjgoLjga/jgosNCivjgZXjgYvjga7jgYbjgYgs44G+44GV44G144G/DQor44G144GY44G+44GNLOOBsuOCjeOBlw0KK+OBi+OCj+OBr+OCiSzjgZ/jgYvjgb8NCivjgoDjgonjgZ8s44GE44GV44GKDQor44KI44GX44GgLOOBl+OCh+OBmA0KK+OBhOOBn+OBj+OCiSzjgYTjgZXjgoANCivjgZjjgZ7jgbDjgoks44KK44KH44Gy44GhDQor44Gf44Gq44GLLOOBv+OCiOOBlw0KK+OBi+OBmOOCj+OCiSzjga7jgorjgZMNCivjgZ/jgarjgYss44GX44KH44G444GEDQor44Gv44GZ44GE44GRLOOBleOBquOBiA0KK+OBqOOBvizjgb7jgaHjgZMNCivjgYvjgo/jgY3jgZ8s44GL44Ga44G/DQor44G+44Gk44KC44GoLOOBruOBvOOCiw0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgYTjgaENCivjgbXjgZjjgYQs44G+44GZ44GQDQor44Gu44KA44KJLOOBsuOCjeOBteOBvw0KK+OCiOOBhuOBk+OBnyzjgZfjgZLjgosNCivjgYvjgarjgZbjgo8s44KE44GZ44GKDQor44G+44GZ44KE44G+LOOBjeOCh+OBmA0KK+OBi+OBrizjgZHjgpPjgYTjgaENCivjgbXjgarjgoTjgb4s44Gf44Gg44GC44GNDQor44KE44G+44GX44GfLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgbLjgafjgobjgY0NCivjgYvjgoHjgoLjgags44KG44Gy44GhDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBiuOBj+OCgOOCiSzjgogNCivjgbXjgZjjgYQs44Go44GX44GKDQor44GN44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBruOCgOOCiSzjgYrjgZXjgoANCivjgYLjgY/jgZ/jgYzjgo8s44GX44KF44GYDQor44GE44GX44GgLOOChuOBv+OBkw0KK+OBhuOCgeOBr+OCiSzjgYLjgY3jgokNCivjgYrjgY4s44KE44GZ44Gy44GTDQor44GT44KT44GpLOOBv+OBpOOBig0KK+OBn+OBkeOBoCzjgajjgYrjgosNCivjgb7jgaTjgYQs44G/44Gh44Gf44GLDQor44GL44G/44GK44GLLOOBsuOBp+OBig0KK+OBi+OCguOBl+OBnyzjgZPjgZ4NCivjgoTjgarjgY7jgZXjgo8s44GX44KT44GE44GhDQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OCguOCk+OBvizjgYjjgaTjgYoNCivjgYTjgYTjgaAs44GN44Gh44Gy44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBi+OBmg0KK+OBquOBjOOBu+OCiizjgojjgZfjgbXjgb8NCivjgoLjgorjgYrjgYss44GN44KI44GXDQor44Gr44GX44KE44G+LOOBl+OBkuOBig0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgYTjgZfjgaAs44Gf44GL44GXDQor44G144KL44GpLOOCiuOBleOBjw0KK+OBi+OCk+OBoCzjgaTjgajjgoANCivjgYTjgZfjgaAs44GP44Gr44GKDQor44GV44GE44Go44GGLOOBl+OBkuOCiw0KK+OBjeOCgOOCiSzjgarjgYrjgobjgY0NCivjgYTjgo/jgb8s44Gv44KL44GKDQor44KC44KKLOOBkeOBhOOBkw0KK+OBn+OBi+OChOOBvizjgbXjgb/jgYjjgYQNCivjga/jgoTjgZfjgZDjgaEs44G+44GV44KLDQor44GV44GE44Go44GGLOOBsuOCjeOBvw0KK+OBl+OBsOOBn+OBjSzjgZ/jgZHjgbLjgo0NCivjgYrjgY7jga/jgoks44G+44KC44KLDQor44GL44Go44GGLOOBv+OBruOCiw0KK+OBteOBj+OBqCzjgYvjgarjgYgNCivjgYrjgaAs44Go44GX44GYDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjga7jgooNCivjga/jgb7jgaAs44GC44GN44GKDQor44GK44GM44GV44KP44KJLOOChOOBmeOBig0KK+OCgOOCieOBjSzjgajjgZfjgYoNCivjgYrjga/jgZcs44G+44GV44GKDQor44Gf44GL44GuLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBluOCjyzjgZfjgZLjgosNCivjgb/jgoTjgZgs44Gf44GL44Gy44KNDQor44GZ44GI44Gq44GMLOOBsuOBqOOBlw0KK+OBn+OBn+OBjSzjgoTjgZnjga7jgbYNCivjgojjgZfjgaAs44GX44KF44GE44GhDQor44GC44GK44GNLOOBl+OCh+OBng0KK+OBmeOBjuOCgOOCiSzjgYLjgY3jgbLjgZMNCivjgYTjgajjgYYs44KE44GZ44GKDQor44Gf44GL44Gv44GXLOOBj+OBq+OBguOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjga/jgosNCivjgYvjgZ/jgoTjgb4s44GE44GV44G/DQor44GV44GE44Go44GGLOOBquOBiuOChA0KK+OBn+OBmOOBvizjgbLjgafjgYLjgY0NCivjgYLjgbks44G+44GV44Gy44KNDQor44Gq44GL44GY44G+LOOChuOBn+OBiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgo/jgY3jgZbjgYss44Gm44Gk44KEDQor44GV44GTLOOBi+OBmuOBsuOBkw0KK+OBiuOBpOOBiyzjgYLjgY3jgbLjgagNCivjgaTjgYvjgoLjgags44Gf44GL44GXDQor44GE44Gu44GG44GILOOBi+OBmuOBqOOBlw0KK+OBquOBjOOBiizjgYLjgY3jgbLjgo0NCivjgYbjgonjgbAs44KE44GZ44GKDQor44GT44GY44G+LOOBguOBjeOCiQ0KK+OBn+OBkeOBoCzjgYTjgo/jgYoNCivjgYLjgYrjga4s44Gy44Gn44GXDQor44GE44Ga44GL44KPLOOBi+OBiuOCiw0KK+OBj+OBqeOBhizjgb7jgZXjgajjgZcNCivjgarjgYvjgoDjgoks44GX44KT44GE44GhDQor44G+44Gk44GKLOOBhOOBleOCgA0KK+OBhOOBquOBjOOBjSzjgajjgZfjgbLjgZMNCivjgavjgZfjgoLjgags44G+44GV44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBiuOBruOBp+OCiSzjgojjgbLjgaHjgo0NCivjgYTjgZfjgZbjgYss44GX44GS44GNDQor44Gv44GO44KP44KJLOOBvuOBk+OBqA0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgZMNCivjgYbjgYjjgZjjgb4s44GV44Gg44GoDQor44Gs44G+44GfLOOBqOOCguOBsuOCjQ0KK+OBiOOCk+OBqSzjgZnjgZnjgoANCivjgYvjgYzjgoTjgb4s44G144G/44GKDQor44KG44KK44KC44GoLOOBqOOBiuOCiw0KK+OBteOBoSzjgb7jgZXjgYoNCivjgbXjgZjjgYrjgY0s44KE44GZ44Gy44KNDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OBvuOBpOOCguOBqCzjgZjjgavjgaENCivjgbLjgo3jgZss44Gu44G244GKDQor44Gw44GwLOOBi+OBmuOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgobjgY0NCivjgZnjgZrjgY0s44G+44GV44G144G/DQor44Gq44GL44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBjeOBlyzjgZfjgofjgbLjgaENCivjgYLjgZXjga4s44Gy44Go44GXDQor44GI44KT44GpLOOBpuOBpOOChA0KK+OBhOOBl+OBsOOBlyzjgajjgZfjgbLjgZMNCivjgYvjgYTjgaAs44GR44KT44GeDQor44GE44GR44GY44G+LOOBvuOBleOCiw0KK+OBr+OCieOBoCzjgajjgb/jgYoNCivjga/jgb7jga4s44GX44KF44Gy44GhDQor44GL44KP44GELOOBvuOBleOBsuOCjQ0KK+OCj+OBoCzjgZfjgpPjgoQNCivjgZXjgajjgYYs44Gy44Go44GXDQor44Gf44Gq44GLLOOBn+OBoOOBig0KK+OBguOBj+OBpCzjgbLjgo3jga7jgbYNCivjgYTjgajjgYYs44G+44GV44Go44GXDQor44GC44KT44Gp44GGLOOBv+OBpOOBguOBjQ0KK+OBguOBhOOBluOCjyzjgojjgZfjgYvjgaQNCivjgY/jgbzjgZ8s44GY44KF44Gy44Gh44KNDQor44G144GL44GG44G/LOOBsuOCjeOChuOBjQ0KK+OBl+OBv+OBmizjgb7jgZXjgb8NCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gq44G/44GNLOOBsuOCjeOBlw0KK+OBruOBluOCjyzjgb7jgZXjgYvjgZoNCivjgZPjgYTjgZ/jgbDjgZcs44GC44GN44GKDQor44Gf44Gm44GE44GXLOOBoOOBhOOBlA0KK+OBi+OCj+OBi+OBvyzjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GC44GNDQor44GK44Gu44Ga44GLLOOBqOOBl+OBig0KK+OBn+OBkOOBoSzjgZPjga7jgoANCivjgZ/jgYvjga/jgZcs44G/44Gh44KLDQor44GV44Go44GGLOOBqOOBl+OBvuOBlQ0KK+OBj+OCj+OBr+OCiSzjgbLjgo3jgZcNCivjgZvjgags44Gb44GE44GYDQor44GU44GRLOOCiOOBl+OBruOCig0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgb8NCivjgZ/jgYvjgoTjgb4s44GE44KP44GYDQor44GV44GV44GNLOOBteOBqOOBlw0KK+OBi+OBrizjgY3jgojjgZcNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gq44GM44GK44GLLOOBsuOBqOOBlw0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44Gm44Gk44KNDQor44KC44KKLOOChOOBmeOBlw0KK+OBmeOBmuOBjSzjgY3jgojjgbLjgo0NCivjgYbjgYjjgoDjgoks44Gy44KN44G/DQor44KE44G244Gv44KJLOOBi+OBmuOBig0KK+OBl+OCieOBhOOBlyzjgYvjgZrjga7jgooNCivjgY3jgY/jgZ8s44Gy44Gn44GKDQor44Gq44GL44GELOOBv+OBpOOBkA0KK+OBj+OCieOCguOBqCzjgb7jgZXjgYLjgY0NCivjgZnjgb/jgojjgZcs44KE44GZ44Gy44KNDQor44Gf44GL44GOLOOBl+OCjQ0KK+OBl+OCh+OBmCzjgZXjgajjgZcNCivjgYrjgZXjgaAs44Gy44Gn44GNDQor44GC44GV44GuLOOBjeOCiOOBlw0KK+OBhOOCj+OBlSzjga7jgbbjgobjgY0NCivjgbDjgbAs44KG44GN44GKDQor44Gy44KN44GfLOOBl+OBkuOBjQ0KK+OBteOBmOOCguOBqCzjgZfjgZLjga/jgosNCivjgZXjga4s44Go44KC44KG44GNDQor44KC44Go44GNLOOBsuOBp+OBjQ0KK+OBhOOBqOOBhizjgYLjgY3jgokNCivjgYbjgZHjgYzjgo8s44GV44Go44KLDQor44GG44KB44Gw44KE44GXLOOBhOOBpOOBig0KK+OBhOOBquOBqOOBvyzjgb7jgZXjgajjgZcNCivjgZ/jgYvjgoTjgarjgY4s44G/44Gk44KI44GXDQor44Gv44KJLOOBi+OBmuOBjQ0KK+OBquOBi+OBr+OCiSzjgb7jgZXjga7jgbYNCivjgZXjgYTjgZ/jgZEs44G/44Gk44Gu44KKDQor44GL44GX44KE44G+LOOChuOBn+OBiw0KK+OBleOBi+OBhCzjgbLjgafjgYoNCivjgYTjgajjgYYs44Gy44KN44Gy44GVDQor44Gq44GL44KA44KJLOOBruOCiuOBig0KK+OBiuOBruOBjizjgb7jgZXjgobjgY0NCivjgYTjgYvjgb8s44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBjeOCiOOBlw0KK+OBl+OBhOOBqizjgobjgZ/jgYsNCivjgZ/jgb7jga7jgYQs44GV44Go44GK44KLDQor44GP44G8LOOBv+OBleOBkw0KK+OBjeOCgOOCiSzjgb7jgZXjgosNCivjgbvjgaPjgZ8s44KE44GZ44KG44GNDQor44G744GL44KKLOOBvuOBleOBruOCig0KK+OBleOBqOOBhizjgbXjgb/jgYoNCivjgbvjgZfjga4s44GE44GV44GKDQor44GL44G244KJ44GOLOOBi+OBmuOCiOOBlw0KK+OBiuOBleOBoCzjgb7jgZXjgYLjgY0NCivjgZnjgYjjgbLjgo0s44GE44GV44GKDQor44KA44KJ44GL44KPLOOBtuOCk+OCjQ0KK+OBhOOCj+OBleOBjSzjgZvjgYTjgZgNCivjgoTjgb7jgoDjgoks44Gy44KN44GXDQor44KC44KK44GfLOOBqOOCguOChuOBjQ0KK+OBhOOBkeOBoCzjga7jgorjgYvjgaQNCivjgoTjgYbjgaEs44KI44GX44Gu44G2DQor44KE44G+44GX44GfLOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgobjgZ/jgYsNCivjgYLjgarjgpMs44GX44KT44GE44GhDQor44Gr44GX44GuLOOBqOOBv+OBig0KK+OBk+OBl+OBv+OBmizjgZfjgofjgbLjgaENCivjgZ/jgYvjga/jgZcs44Gy44Gn44GC44GNDQor44GI44GM44KPLOOBn+OBi+OBlw0KK+OChOOBvuOBluOBjSzjgbLjgajjgZcNCivjgYTjgb7jgZzjgY0s44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OBq+OBl+OBr+OCiSzjgZfjgoXjgbLjgaENCivjgYrjgYvjgbks44Go44GX44Gy44KNDQor44GV44GL44GELOOBqOOBl+OBteOBvw0KK+OBn+OBoCzjgZ/jgYvjgYoNCivjgZnjgYjjgojjgZcs44KI44GX44G/DQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgZgNCivjgZPjgYLjgZcs44Gf44Gk44GKDQor44KC44KK44GL44KPLOOCiOOBl+OBruOCig0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgb7jgYjjgbAs44GL44Ga44Gy44GnDQor44KE44GuLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYjjgaTjgZgNCivjgarjgYvjgYQs44Gf44Gk44KNDQor44GK44Gg44GO44KKLOOChOOBmeOBig0KK+OBiOOCk+OBqSzjgYvjgZrjgYoNCivjgZ/jgZHjgYQs44Go44GX44GKDQor44Gq44GL44Gf44GrLOOBn+OBpOOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgojjgZfjgbXjgoYNCivjgYvjgonjgYvjgZUs44Gy44Gn44GNDQor44GC44GV44GuLOOChuOBsuOBoQ0KK+OBhOOCj+OBtuOBoSzjgYTjgZXjgoANCivjga/jgpPjgaAs44G+44GV44Gy44KNDQor44Gm44KJ44GKLOOBqOOBl+OBig0KK+OBn+OBkeOBhCzjgb/jgY3jgYoNCivjga/jgZfjgoLjgags44GE44Gf44KLDQor44G/44KE44GV44GLLOOBkeOCk+OBmA0KK+OBpuOCieOBoCzjga/jgZjjgoENCivjgZXjgYvjgZ8s44GI44GE44GXDQor44Gq44GM44KELOOChOOBmeOBj+OBqw0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgYrjgY/jgoks44Gf44Gk44GKDQor44Gq44GL44GV44GNLOOCiOOBl+OBr+OCiw0KK+OBjeOCiuOBr+OCiSzjgbLjgo3jgZcNCivjgYLjgonjgYQs44GL44Ga44GKDQor44GE44KP44GuLOOBpuOBpOOBig0KK+OBr+OBo+OBqOOCiizjgoTjgZnjgobjgY0NCivjgZnjgZrjgY0s44G/44Gh44Gu44KKDQor44Gr44GX44Gv44KJLOOBqOOCguOBsuOCjQ0KK+OBleOBleOBjSzjgYLjgY3jgbLjgo0NCivjga/jgarjgbXjgZUs44GR44KT44GE44GhDQor44Gu44Gp44GuLOOBvuOBleOCiw0KK+OBi+OCj+OBsOOBnyzjgajjgYrjgosNCivjgZfjgb/jgZos44KI44GX44KG44GNDQor44Gq44GM44GX44G+LOOCiOOBl+OCguOBqA0KK+OCguOCiizjgojjgZfjgb8NCivjgZfjgb/jgZos44Gk44Go44KADQor44Gy44GV44KE44GZLOOBhOOBoeOCjeOBhg0KK+OBi+OBn+OBhuOCiSzjgoTjgZnjgobjgY0NCivjgZ/jgZHjgoDjgoks44GL44Gk44G/DQor44GE44G+44Gr44GXLOOBkeOCk+OBmA0KK+OBiuOBi+OBoCzjgaTjgajjgoANCivjgarjgYvjgYgs44G/44Gk44GQDQor44GX44KN44GuLOOBqOOBl+OChuOBjQ0KK+OCiOOBk+OChOOBvizjgZfjgoXjgpPjgZgNCivjgYrjgYvjgZbjgo8s44Gy44KN44KG44GNDQor44GL44G/44GY44KHLOOBsuOCjeOBruOCig0KK+OBj+OBvuOBuSzjgajjgYrjgosNCivjgZfjgb/jgZos44Gy44KN44GXDQor44KE44Gq44GO44GV44KPLOOBl+OBmuOBig0KK+OBvuOBjeOBrizjgaTjgajjgoANCivjgZXjgo8s44Gf44Gk44KG44GNDQor44GG44GX44KN44GgLOOBj+OBq+OBig0KK+OBvuOBoeOBoCzjgojjgZfjgarjgYoNCivjgZPjgbDjgoTjgZcs44Gk44GQ44Gy44GTDQor44GX44GS44KA44KJLOOBi+OBmuOBig0KK+OBsuOBkOOBoSzjgZfjgZLjgYLjgY0NCivjgYTjgYTjgazjgb4s44GR44GE44GeDQor44GE44Ga44G/LOOBl+OBkuOChuOBjQ0KK+OBr+OChOOBlyzjgYLjgY3jgb/jgaQNCivjgoTjgY4s44G+44GV44GoDQor44GK44GL44KP44KJLOOBguOBjeOBsuOBkw0KK+OBteOBj+OBiuOBmCzjgYrjgZXjgoANCivjgYbjgYzjgZjjgpMs44GY44KF44Gr44GhDQor44Gf44Gq44G5LOOBruOBtuOBig0KK+OBlOOBl+OBvizjgb7jgZXjgbLjgZMNCivjgYLjgpPjganjgYYs44Gu44KK44Go44GXDQor44GK44Gg44G+LOOBvuOBleOBig0KK+OBiuOBi+OBluOBjSzjgZ/jgaTjgo0NCivjgYTjgZfjgYvjgo8s44GX44KH44Gy44GhDQor44KA44KJ44KE44G+LOOChuOBhuOBmA0KK+OBr+OChOOBleOBiyzjgo/jgZ/jgosNCivjgarjgYvjgZjjgb4s44GP44Gr44GKDQor44Gf44GR44KC44GoLOOBpOOBi+OBlQ0KK+OBjeOBn+OBmOOBvizjgZ/jgYvjgYoNCivjgb/jgYvjgb8s44Go44GX44Gv44KLDQor44KP44KJ44GX44GqLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgYrjgZbjgo8s44G/44Gu44KLDQor44KE44G+44KA44KJLOOBsuOCjeOBqOOBlw0KK+OCiOOBl+OBoCzjgaHjga/jgosNCivjgZ/jgaHjgbDjgaos44GN44KI44Gf44GRDQor44G+44Gk44KC44GoLOOBiuOBleOCgA0KK+OBv+OBl+OBvizjgb7jgZXjgb8NCivjgZvjgY0s44GX44KTDQor44Gn44GQ44GhLOOBvuOBleOBsuOBpw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgZcNCivjgYrjgbLjgZEs44KG44GN44GKDQor44G144GY44KC44GoLOOBhOOCj+OBig0KK+OCiOOBl+OCgOOCiSzjgbXjgb/jgobjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44GTDQor44GK44GM44G/LOOBkeOBhOOBmA0KK+OBi+OBhCzjgZ/jgY8NCivjgYvjgYjjgaQs44KI44GX44G/DQor44KC44KN44GELOOBmOOCheOCk+OBkw0KK+OBv+OBmuOBrizjgarjgb8NCivjgYrjgaTjgYss44GY44KF44KT44KEDQor44GK44GfLOOBl+OCkw0KK+OBm+OBjeOBrSzjgojjgZfjgYvjgZoNCivjgb/jgoTjgZDjgaEs44Gy44Go44GXDQor44KI44Gt44GgLOOBl+OBkuOBjQ0KK+OBu+OCiuOBhuOBoSzjgZ/jgY/jgo0NCivjgYjjgZDjgaEs44Gu44KK44Gu44GZ44GRDQor44GG44GX44KN44G+44GkLOOBsuOBp+OBguOBjQ0KK+OBhOOBhOOBoCzjgbLjgo3jgZcNCivjgojjgZfjgaAs44GY44KF44KT44GpDQor44Gq44GL44GbLOOChOOBmeOBsuOBlQ0KK+OBmeOBmuOBjSzjgb7jgZXjgZcNCivjgYrjgYTjgYvjgo8s44GX44KF44GYDQor44GL44KP44G5LOOBruOBtuOBsuOBkw0KK+OBn+OBq+OBluOCjyzjgoHjgYTjgZgNCivjgYvjga3jgZMs44KI44GX44KG44GNDQor44G144GY44GK44GLLOOBl+OCh+OBn+OCjeOBhg0KK+OCgOOCieOBiuOBiyzjgb7jgZXjga/jgosNCivjgYbjgazjgb4s44Gf44GL44Gy44KNDQor44G/44KE44GRLOOBhOOBj+OBig0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgYrjgo8s44GL44GK44KLDQor44Gt44KC44GoLOOCiuOCheOBmA0KK+OBq+OBl+OCgOOCiSzjgYvjgZrjgZ/jgYsNCivjgZ/jgaTjgb8s44Gq44G744GTDQor44GV44Go44GGLOOBvuOBleOBkw0KK+OBmeOBruOBr+OCiSzjgYvjgaTjgb8NCivjgYLjgZnjgb4s44GL44Ga44G/DQor44Gf44GL44GwLOOChuOBjeOBsuOCjQ0KK+OCiOOBl+OCgOOCiSzjgojjgZfjgb8NCivjgYLjgbks44GC44GN44GKDQor44GN44GP44GhLOOChuOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgYjjgYTjgZMNCivjga/jgoDjgoks44GV44Gk44GTDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBi+OCj+OCgOOCiSzjga/jgovjgogNCivjgbLjgbPjga4s44GR44GE44GTDQor44GN44Gf44GgLOOBpOOCiOOBlw0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgYvjgajjgYYs44G144GN44GTDQor44GE44Go44GGLOOBoeOBguOBjQ0KK+OBteOBj+OBqOOBvyzjgb7jgZXjga/jgosNCivjgoDjgo3jgZrjgb8s44GE44Gh44KN44GGDQor44KE44G+44Gq44GLLOOBqOOCguOBsuOBlQ0KK+OBiuOBi+OBoCzjgYTjgo/jgYoNCivjgajjgZQs44GC44GN44GKDQor44Gq44KK44GfLOOBqOOBl+OBsuOBkw0KK+OBhOOBkeOBluOBjSzjgY3jgojjgYvjgZoNCivjgYvjgo/jgbDjgZ8s44Gu44G244GC44GNDQor44G+44Gk44GK44GLLOOBleOBqOOBlw0KK+OBquOBi+OBoCzjgarjgYrjgagNCivjgZXjgajjgYYs44GR44GE44GYDQor44Gf44GR44GW44KPLOOBi+OBmuOBvuOBlQ0KK+OChOOBquOBjOOCjyzjgaTjgajjgoANCivjgoTjgb7jgZXjgY0s44Gu44G244Gy44GoDQor44GX44GM44GNLOOBqOOBl+OChA0KK+OChuOBvyzjgbLjgZXjgYgNCivjgYrjgZbjgY0s44G+44GV44Gy44KNDQor44Gq44GM44GX44G+LOOBpOOBreOBig0KK+OChOOBtuOBhuOBoSzjgYvjgZrjgYoNCivjgbvjgZ3jgoQs44KG44GG44GYDQor44Gr44GX44GW44KPLOOBvuOBleOCiw0KK+OBr+OChOOBvyzjgb7jgZXjgbLjgo0NCivjga/jgZvjgYzjgo8s44GY44KF44Gr44GhDQor44GL44KP44GV44GNLOOBkeOCk+OBhOOBoQ0KK+OBqOOCiOOBhOOBmuOBvyzjgZ/jgZHjgZcNCivjgYrjgY/jgoDjgoks44Gf44GL44GXDQor44KE44G+44GgLOOBn+OBkeOBlw0KK+OBq+OCjyzjgZfjgo0NCivjgavjgZfjgZbjgY0s44Gu44G244GKDQor44GZ44GO44KC44GoLOOBsuOCjeOBlw0KK+OBiuOBleOCjyzjgZfjgpPjgoQNCivjgajjgaAs44KI44GX44Gy44KNDQor44Gq44GL44GuLOOBsuOCjeOBlw0KK+OBv+OBhuOCiSzjga7jgorjgobjgY0NCivjgoTjgb7jgZbjgY0s44Gu44KK44GC44GNDQor44GV44GL44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOBoCzjgaTjgajjgoANCivjgYTjga7jgYbjgYgs44Gf44GE44GZ44GRDQor44KE44GZ44GELOOBsuOBleOBig0KK+OBvuOBpOOBoCzjgbLjgZXjgZcNCivjgYvjgZ/jgYrjgYss44Gd44GYDQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBr+OChOOBlyzjgarjgYrjgb8NCivjga/jgb7jgb7jgaQs44GL44Gk44Gy44GTDQor44Gv44G+44GuLOOBn+OBi+OChuOBjQ0KK+OBv+OBmuOBn+OBqyzjgb7jgZXjgagNCivjgZnjgb/jgZ8s44Gu44G244Gy44KNDQor44Gv44KE44GXLOOBiOOBhOOBsuOBkw0KK+OBqOOBj+OBquOBjCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44GX44GS44KLDQor44G+44Gk44GG44KJLOOBqOOCguOBquOBig0KK+OBsuOCg+OBj+OBqizjgajjgZfjgYLjgY0NCivjgYLjgpPjgZbjgYQs44KI44GX44GL44GkDQor44G144GL44G+44GhLOOBsuOBleOBlw0KK+OBv+OBleOBjSzjgarjgYrjgobjgY0NCivjgoLjgaHjgZrjgY0s44Gy44KJ44GPDQor44GC44GK44KE44GOLOOBv+OBoeOBkw0KK+OBn+OBi+OBr+OBlyzjgYvjgojjgZMNCivjgY3jgZss44G+44GV44KIDQor44GG44GI44KC44KKLOOChuOBvw0KK+OBguOBmuOBvizjgYLjgZHjgb8NCivjgYrjgaDjgY/jgoks44GR44GE44GTDQor44Gf44Gq44GLLOOBkeOBhOOBkw0KK+OBqOOBhOOBn+OBqyzjgoTjgZnjgZMNCivjgoTjgb7jgZbjgY0s44GI44KKDQor44Gv44GX44KC44GoLOOBv+OCiOOBkw0KK+OBvuOBpOOBv+OChCzjgoLjgajjgaHjgYsNCivjgbXjgZfjgb8s44G+44GN44GTDQor44GN44KH44Gy44KD44G+LOOChuOBv+OBkw0KK+OCiOOBl+OBoCzjga7jgbbjgZMNCivjgYbjgovjgZfjgaks44G/44GI44GTDQor44Gb44GKLOOBsuOBp+OBkw0KK+OBv+OBquOBi+OCjyzjgojjgYbjgZMNCivjgbXjgZjjga4s44GZ44G/44GKDQor44Gy44KN44GfLOOBn+OBkeOBlw0KK+OBiuOBnyzjgajjgojjgbLjgZMNCivjgYrjgYws44GC44GN44KJDQor44Gq44GM44Gv44G+LOOChuOBjeOBsuOBpw0KK+OBmOOCk+OBrizjgYLjgY3jgokNCivjgYTjgaHjgYvjgo8s44GX44GS44KLDQor44Gv44KE44GXLOOBv+OBiOOBkw0KK+OBr+OBn+OChCzjgbLjgo3jgb/jgaENCivjgbvjgorjgZPjgZcs44Gy44GV44GKDQor44GL44GrLOOBi+OBpOOCjQ0KK+OBu+OCk+OBoCzjgZHjgpPjgYTjgaENCivjgaTjgaHjgoQs44Gf44GL44GXDQor44Gf44G+44GmLOOBvuOBleOBsuOBkw0KK+OChuOBi+OCjyzjgaHjgYvjgagNCivjgZXjgYvjgYQs44Gm44KL44GKDQor44G/44KE44GYLOOBkeOBhOOBkw0KK+OBn+OCgOOCiSzjgYLjgaTjgZMNCivjgYvjgo/jgZDjgaEs44G/44GI44GTDQor44GV44GuLOOBpOOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gf44GL44GXDQor44GE44GgLOOCiOOBl+OBvw0KK+OBm+OBjeOCguOBqCzjgb7jgZXjga7jgooNCivjgYvjgo/jgb7jgZ8s44Gf44Gk44GKDQor44GP44G8LOOChOOBmeOBjQ0KK+OBn+OBi+OBrizjga/jgZjjgoENCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44GE44GL44KL44GOLOOBqOOBl+OChuOBjQ0KK+OBleOBqOOBhizjga7jgbbjgbLjgZMNCivjgbLjgaDjgYss44GC44GN44GKDQor44KI44GX44GELOOCguOBqOOBsuOBlQ0KK+OBl+OBvuOCgOOCiSzjgajjgb/jgYoNCivjgYrjgbMs44G/44Gk44KLDQor44Gq44GL44GY44G+LOOBiOOBhOOBmA0KK+OBu+OBl+OBrizjgobjgYbjgZgNCivjgYvjgo/jgoLjgags44KG44Gy44GhDQor44Gr44GX44GgLOOBsuOBqOOBlw0KK+OBl+OBv+OBmizjgbLjgafjgb7jgosNCivjgZ/jgoDjgoks44G+44GV44GL44GaDQor44Go44KI44GX44G+LOOChuOBsuOBoQ0KK+OBiOOCk+OBqSzjgobjgY3jgYoNCivjgYrjgYzjgo8s44GE44Gh44KN44GGDQor44GN44Gf44Gv44KJLOOCiOOBl+OBsuOCjQ0KK+OBiuOBkOOBqyzjgYvjgZrjgYoNCivjgYrjgbbjgaEs44Gy44KN44GXDQor44G/44KI44GXLOOChOOBmeOBsuOCjQ0KK+OBhOOBkeOBrizjgoTjgojjgYQNCivjgYbjgYjjgb7jgaQs44G/44Gu44KLDQor44G144GP44GW44GoLOOBn+OBoOOBlw0KK+OBguOBiuOBjSzjgojjgZfjgbLjgZMNCivjgZXjgoHjgZjjgb4s44GT44GeDQor44GN44Gp44G+LOOBiOOBhOOCjQ0KK+OBk+OBoOOBhOOCiSzjgajjgZfjgYoNCivjgbLjgZDjgaEs44Go44GP44Gu44G2DQor44G+44GI44GX44KNLOOBruOBvOOCiw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZgNCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44GnDQor44GE44Gu44GG44GILOOBvuOBleOBguOBjQ0KK+OBqOOCiuOBhizjgZjjgoXjgpMNCivjgb7jgovjgoTjgb4s44KI44GX44G/44GkDQor44G+44Gk44GG44KJLOOBn+OBi+OBig0KK+OBn+OCgeOBoeOBiyzjgarjgaTjgYLjgY0NCivjgZXjgZXjgY0s44G144G/44GKDQor44GK44Gf44GNLOOBkeOCk+OBmA0KK+OBiuOBjOOCjyzjgZHjgYTjgZ4NCivjgb7jgaTjgb8s44GL44Ga44GKDQor44GC44KK44G+44GkLOOBl+OCk+OBhOOBoQ0KK+OBk+OCieOBjyzjgYvjgaTjgYLjgY0NCivjgb/jgoTjgZfjgZ8s44KK44KF44Gy44GhDQor44GK44Ga44GhLOOBn+OBi+OBlw0KK+OBleOBi+OBjeOBsOOCiSzjgZXjgaHjgYoNCivjgZXjgajjgYYs44GR44KT44GYDQor44Gy44KN44GbLOOBjeOBj+OBig0KK+OBpOOBoeOBoCzjgZ/jgaTjgYoNCivjga/jgZfjgoks44GL44Ga44Gy44KNDQor44G144KN44KC44GoLOOBm+OBhOOBmA0KK+OBk+OBleOBiyzjgojjgZnjgZENCivjgZ/jgZHjgYTjgaEs44KE44GZ44Gy44GnDQor44Gm44KJ44GgLOOBvuOBleOBguOBjQ0KK+OBk+OBhOOBpyzjgarjgYrjgY0NCivjgZXjgYTjgajjgYYs44GR44KT44GYDQor44G/44KE44Gq44GMLOOBi+OBiuOCiw0KK+OBq+OBl+OCgOOCiSzjgY3jgofjgZMNCivjgZ/jgarjgYss44GX44KT44GZ44GRDQor44GY44KHLOOBvuOBk+OBqA0KK+OChuOBj+OBsuOCjSzjgb7jgZnjgYgNCivjgojjgZfjgo/jgoks44GX44GS44GKDQor44GC44GK44GNLOOChuOBng0KK+OBn+OBpuOBhOOBlyzjgb/jga7jgosNCivjgZ/jgZHjgaAs44G/44Gk44GKDQor44KE44GZ44GgLOOBn+OBi+OBkw0KK+OBguOBiuOBjSzjgYLjgY3jgokNCivjgojjgZfjgaAs44Go44KC44GTDQor44GC44Gg44GhLOOBqOOBl+OBguOBjQ0KK+OBruOBkOOBoSzjgaHjgogNCivjgo/jgZ/jgarjgbks44G/44Gu44KLDQor44Gf44GR44Go44G/LOOBguOBjeOBsuOCjQ0KK+OBj+OCiuOCj+OBjSzjgojjgYTjgaENCivjgY3jgZ/jgZrjgoEs44KI44GX44GL44GaDQor44G144Gq44Gw44GXLOOBsuOBp+OBjQ0KK+OBiuOBleOBoCzjgZfjgofjgbLjgaENCivjgYLjgZfjgYzjgYQs44Gu44KK44Gy44GTDQor44GV44GL44GX44GfLOOBl+OCk+OChA0KK+OBpOOBoeOBoCzjgobjgYbjgZ4NCivjgYrjgYvjgaAs44KG44G/44GTDQor44Gf44Gq44GLLOOCjOOBhOOBkw0KK+OBiuOBn+OBlOOBlyzjgZjjgoXjgpMNCivjgY/jgo3jgZXjgYss44KL44G/44GTDQor44GZ44GW44GNLOOChuOCiuOBkw0KK+OBi+OBreOBv+OBpCzjgajjgb/jgZMNCivjgb7jgags44G144GY44GTDQor44Go44KI44G144GPLOOBsuOBp+OChuOBjQ0KK+OBguOCieOBhCzjgarjgYrjgZMNCivjgbXjgZjjgYvjgo8s44GC44GN44GTDQor44KI44GT44GKLOOCiOOBl+OBruOBtg0KK+OBguOBvuOBrizjgZfjgZLjgobjgY0NCivjgYrjga4s44GT44GG44GE44GhDQor44GZ44Ga44GNLOOBvuOBleOBjQ0KK+OBi+OBqOOBhizjgoLjgajjgbLjgZMNCivjgZXjgYTjgajjgYYs44GX44KF44KM44GEDQor44GK44GGLOOBqOOBl+OBig0KK+OBv+OChOOBluOBjSzjgojjgZfjgZ/jgYsNCivjgY3jgoQs44GN44KI44GXDQor44G144GY44GfLOOBl+OCheOBq+OBoQ0KK+OCgOOBi+OBhCzjgb/jgaHjgYoNCivjgb7jgaTjgoLjgags44Gy44Gn44Gh44GLDQor44GL44KP44GELOOBk+OBng0KK+OBvuOBpOOCguOBqCzjgYjjgYTjgZgNCivjgZ/jgZHjgYbjgaEs44GC44Gk44GXDQor44GT44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgobjgY0NCivjgZPjgYws44G+44GV44GKDQor44KE44G+44GgLOOBsuOCjeOBi+OBmg0KK+OBiuOBnyzjga7jgbbjgYLjgY0NCivjgoTjgb7jgoLjgags44Gf44GL44KI44GXDQor44GV44GP44KJ44KC44GoLOOBr+OCi+OBig0KK+OChOOBquOBjuOBleOCjyzjgZ/jgYvjgbXjgb8NCivjgbXjgY/jgYQs44GC44GN44KI44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBhOOCj+OBnyzjgb/jgaTjgYoNCivjgbXjgZjjgoLjgags44GL44Gk44G/DQor44GN44Gu44GX44GfLOOBhOOBleOBig0KK+OChOOBvuOBoCzjgbXjgb/jgZ/jgb4NCivjgY/jgonjgb7jgYgs44GL44Ga44Gy44GTDQor44GP44KJ44GfLOOCiOOBsuOBoQ0KK+OCiOOBk+OBhCzjgYvjgYrjgosNCivjgZPjgbDjgoTjgZcs44KG44GN44GKDQor44GL44Go44GGLOOBjeOCiOOBn+OBiw0KK+OBvuOBmeOBhCzjgorjgofjgZgNCivjgYbjgonjgZ8s44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOBn+OBpOOBig0KK+OBhuOBl+OBlOOCgSzjgoTjgZnjgYoNCivjga/jgonjgYQs44GT44GG44GE44GhDQor44GG44Gg44GM44KPLOOBv+OBruOCiw0KK+OBn+OBi+OBjizjgZfjgpPjgZnjgZENCivjgb/jgoTjgZbjgY0s44G144GY44GoDQor44KE44G+44KA44KJLOOBj+OBq+OBig0KK+OChOOBvuOBjuOBlyzjgZPjgYbjgZgNCivjgZPjgb7jgaQs44GL44Ga44G/DQor44Gv44G+44GQ44GhLOOChOOBmeOChuOBjQ0KK+OCguOCiizjgZ/jgaDjgbXjgZUNCivjgoTjgb7jgaAs44GC44GN44Gy44GTDQor44GL44GM44KPLOOBmOOCjQ0KK+OBjeOBj+OBoSzjgZPjgYbjgZgNCivjgY/jgZgs44Gf44GL44GXDQor44GE44Go44GGLOOBteOBv+OBqOOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgoQNCivjgYLjgonjgY0s44KC44KK44KI44GXDQor44GK44GL44G5LOOBsuOBqOOBlw0KK+OBk+OBvOOCiizjgabjgovjgYLjgY0NCivjgYrjgaEs44G+44GV44Gy44KNDQor44G+44KL44GKLOOBvuOBleOBn+OBiw0KK+OBleOBqOOBhizjgZfjgpPjgZgNCivjgZ/jgarjgYss44Go44GX44KNDQor44G+44Gk44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBiuOBpOOBiyzjgZXjgajjgb8NCivjgoTjgb7jgoLjgags44G+44GV44Gy44KNDQor44G144GY44GKLOOCiuOCheOBsuOBoQ0KK+OBruOCgOOCiSzjgojjgZfjgZ/jgYsNCivjgbLjgo3jgZss44KG44GLDQor44GC44KT44GW44GELOOBsuOCjeOBi+OBmg0KK+OBiuOBpOOBvCzjgoTjgZnjga7jgooNCivjgZXjgYTjgajjgYYs44G/44Gh44GKDQor44GE44Go44GGLOOBteOBv+OBjQ0KK+OCj+OCieOBleOCjyzjgoTjgZnjgZcNCivjgYLjgonjgYvjgo8s44Gy44GV44GC44GNDQor44GU44G/LOOCiOOBl+OBi+OBmg0KK+OBiOOCk+OBqSzjgZfjgpPjgZnjgZENCivjgojjgZfjgaAs44Gy44KN44G/DQor44GG44Gh44GgLOOBl+OCk+OBhOOBoQ0KK+OBguOBleOBhOOBrSzjgYrjgZXjgoANCivjgYrjgZfjgb4s44Gv44GY44KBDQor44Gf44Gq44GLLOOBl+OCheOCk+OBmeOBkQ0KK+OBiuOBkyzjgbLjgafjga7jgooNCivjgYTjgZrjgaQs44Go44GX44GKDQor44Gv44KE44GXLOOBj+OBq+OBig0KK+OBteOBmOOBjSzjgZHjgpPjgZgNCivjgZfjgYrjgYvjgYQs44G/44Gk44GIDQor44Gq44GM44G144GhLOOBsuOBleOBn+OBiw0KK+OBvuOBpOOCguOBqCzjga7jgorjgojjgZcNCivjgYvjgajjgYYs44GX44GS44Gu44KKDQor44KP44Gf44Gq44G5LOOBv+OBoeOCjQ0KK+OBr+OBvuOBkOOBoSzjgorjgoXjgZgNCivjgYvjga3jgZMs44GV44Go44GXDQor44GV44Go44GGLOOBjeOBj+OBig0KK+OBiuOBsizjgoTjgZnjgarjgooNCivjga/jgoTjgZcs44GY44KF44KTDQor44GN44G/44Gk44GLLOOBleOBoeOBig0KK+OBteOBj+OBoCzjgb7jgZXjga/jgosNCivjgarjgYvjgoDjgoks44Gy44Gn44GKDQor44KE44Gw44GXLOOBpuOBpOOChA0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgYoNCivjgajjgY/jgaAs44Gf44Gk44GKDQor44Gf44GL44Gv44GXLOOBvuOBleOCjQ0KK+OBhOOBqOOBhizjgarjgYrjgosNCivjga7jgZDjgaEs44G+44GV44KG44GNDQor44GL44KP44GqLOOBqOOBiuOCiw0KK+OBquOBi+OBrizjgYvjgZrjgbLjgZMNCivjgoTjgb7jgaAs44GN44KI44Gk44GQDQor44Gy44KJ44G+44GkLOOBn+OBhOOBhOOBoQ0KK+OBguOCieOBhCzjgbLjgo3jgZcNCivjgojjgZfjga4s44GR44GE44GYDQor44Gv44G+44GgLOOCiuOCheOBsuOBoQ0KK+OBiuOBnyzjgobjgZ/jgYsNCivjgZfjgbDjgZ8s44Go44GX44GKDQor44KP44GL44KE44G+LOOBvuOBleOBjQ0KK+OBu+OBlyzjgZvjgYTjgZgNCivjgb/jgo8s44G+44GV44GKDQor44Gf44Gq44GLLOOBvuOCguOCiw0KK+OBi+OBquOChCzjgZ/jgaDjgZcNCivjgZ/jgZHjgarjgYss44GR44KT44GYDQor44GV44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBv+OBmuOBl+OBvizjgajjgoLjgYvjgZoNCivjgabjgonjgaAs44GL44Gk44Gy44KNDQor44KC44KK44KELOOBv+OBpOOBig0KK+OBmeOBjuOChOOBvizjgojjgbLjgaHjgo0NCivjgYbjgb8s44Gu44KK44GKDQor44GN44GQ44GhLOOBpOOChOOBkw0KK+OBhuOCi+OCj+OBlyzjgb7jgZXjgZMNCivjgbLjgonjgb7jgaQs44Gd44GG44Gf44KN44GGDQor44GE44Ga44GvLOOBqOOBl+OChuOBjQ0KK+OBhOOBqOOBhizjgYvjgYrjgooNCivjgZXjgajjgYYs44GL44Ga44GKDQor44GX44GS44Gu44G2LOOBqOOBl+OBsuOBkw0KK+OCiOOBl+OCguOBqCzjgb7jgZnjgYLjgY0NCivjgZfjgbDjgZ8s44GC44GN44Gy44KNDQor44G144Gq44GT44GXLOOBjeOCiOOBlw0KK+OBmeOBquOBoCzjgb7jgZXjgYoNCivjgb7jgorjgZMs44KG44GG44GYDQor44GN44GP44G+LOOBruOCiuOBsuOBkw0KK+OBmeOBqCzjgZjjgpMNCivjgavjgZfjgZbjgo8s44Go44GX44KG44GNDQor44GT44Gw44KE44GXLOOBqOOCiOOBhOOBoQ0KK+OBi+OCj+OBlOOBiCzjgZfjgZLjgosNCivjgYTjgZjjgb4s44Gf44Gg44KG44GNDQor44Gr44GX44GKLOOCguOBqOOBr+OCiw0KK+OBq+OBl+OChOOBvizjga/jgovjgYoNCivjgZXjgYTjgajjgYYs44KI44Gy44Gh44KNDQor44GL44Gp44KP44GNLOOBn+OBkeOBlw0KK+OBsuOCjeOBmyzjgb/jgaHjgYrjgY0NCivjgZ/jgZDjgaEs44Gv44KL44GKDQor44Gf44GL44GgLOOBvuOBk+OBqA0KK+OCj+OBn+OBquOBuSzjgb7jgZnjgYoNCivjgYvjgajjgYYs44GR44KT44GYDQor44Gq44GL44Gv44KJLOOBi+OBmuOBig0KK+OBhOOBl+OBj+OBvCzjgaTjgojjgZcNCivjgoTjgb7jgaAs44GE44Gh44GeDQor44KP44GL44G+44GkLOOChOOBmeOBmOOCjQ0KK+OBi+OCj+OBl+OBvizjgoTjgZnjgYoNCivjgYvjgZ/jgoLjgags44Gq44GK44Gy44GTDQor44Gf44GL44KE44G+LOOBleOBqOOBlw0KK+OBpOOBoeOBoCzjgbLjgafjgYoNCivjgZ/jgaHjgbDjgaos44G/44Gk44GTDQor44GT44Gw44KE44GXLOOBvuOBleOBsuOBkw0KK+OBpOOBoCzjgbXjgb/jgYoNCivjgoLjgorjgYvjgo8s44Gy44KN44GXDQor44GK44GP44GuLOOBruOBtuOChuOBjQ0KK+OBhOOBvuOBhCzjgojjgZfjgYLjgY0NCivjgoDjgonjgYos44Gy44KN44G/DQor44GX44KC44KA44KJLOOBn+OBi+OBig0KK+OBiOOCk+OBqSzjgZ/jgYvjgojjgZcNCivjgbvjgZfjgY/jgb4s44Go44GX44Gv44KLDQor44GL44KP44GbLOOBkeOCk+OBmA0KK+OBvuOBoeOBoCzjgZfjgZLjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GP44Gr44GKDQor44Gv44GgLOOCiuOCheOBsuOBoQ0KK+OBpOOBj+OBoCzjgojjgZfjgYoNCivjgavjgZfjgYvjgo8s44GT44GG44GYDQor44G744KT44GgLOOBsuOCjeOChuOBjQ0KK+OCj+OBl+OBiuOBiyzjgZHjgpPjgZgNCivjgoDjgo3jgYQs44GN44G/44Gy44GTDQor44KE44GZ44GgLOOBn+OBpOOBlw0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgbvjgoos44GC44GN44KJDQor44GT44GgLOOBqOOBl+OChuOBjQ0KK+OBi+OBvuOBoCzjgobjgY3jgYoNCivjgYbjgYjjgoDjgoks44KI44GX44GKDQor44G+44Gk44Gw44KJLOOBvuOCguOCiw0KK+OBv+OBquOBqOOBkOOBoSzjgZ/jgaDjgZcNCivjgY/jgYzjgabjgpMs44GY44KNDQor44GE44KP44GbLOOBqOOBl+OBruOBtg0KK+OBr+OChOOBlyzjgb7jgZXjga/jgosNCivjgYTjgY/jgarjgb8s44GX44KT44GV44GPDQor44GE44Go44GGLOOCgOOBreOBlw0KK+OBk+OChOOBvizjgZ/jgaTjgYoNCivjgYrjgajjgb7jgoss44Gy44KN44GXDQor44Gq44GM44GELOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgocNCivjgYTjgb7jgYQs44Gy44KN44G/DQor44G+44GZ44GgLOOBqOOBl+OBsuOCjQ0KK+OBi+OCj+OBuSzjgogNCivjgZXjgajjgYYs44G+44GV44GXDQor44GV44GTLOOBsuOCjeOChuOBjQ0KK+OCgOOBi+OBhCzjgYLjgaTjgZMNCivjgYrjgZfjgb4s44GT44GG44GIDQor44Gk44Gh44KELOOBiOOBhOOBmA0KK+OBr+OChOOBl+OBkOOBoSzjgbLjgo3jgb8NCivjgZXjgajjgYYs44GL44Ga44KEDQor44KA44KJ44GV44GoLOOBl+OBkuOCiw0KK+OBr+OCi+OChOOBvizjgoTjgZnjgZcNCivjgZfjgZLjgoLjgoos44Gu44G244Gy44KNDQor44G144Gq44GNLOOBv+OBpOOBsuOCjQ0KK+OCj+OBoCzjgZfjgpPjgZgNCivjgaTjgbzjgYss44Gf44GL44GXDQor44Go44GgLOOBsuOCjeOBv+OBoQ0KK+OChOOBvuOCgOOCiSzjgojjgZfjgbLjgagNCivjgYTjgZfjgZDjgo0s44KC44Go44Gv44KLDQor44G144Gq44Gv44GXLOOBvuOBk+OBqA0KK+OBmeOBmuOBjSzjgZ/jgaTjgosNCivjgojjgZfjgaAs44Gf44GL44Gy44KNDQor44KP44Gf44Gq44G5LOOCiuOCh+OBnw0KK+OBquOBi+OBq+OBlyzjgZHjgYTjgZgNCivjgoTjgb7jgoLjgags44G+44GV44Gv44KLDQor44GE44GX44GL44KPLOOBmOOCheOBq+OBoQ0KK+OBn+OBkeOBhuOBoSzjgY/jgZnjgZ/jgYsNCivjgYrjgY/jga4s44GE44Ga44G/DQor44Gg44GmLOOBqOOBl+OBguOBjQ0KK+OBn+OBuSzjgZvjgYTjgYTjgaENCivjgoTjgY4s44KG44GN44Gy44GTDQor44KI44GX44GgLOOBvuOBleOBig0KK+OBteOCi+OBnyzjgZfjgoXjgavjgaENCivjgYvjgo/jgZDjgaEs44Gy44GV44GKDQor44Gv44GZ44GTLOOBhOOBj+OBqA0KK+OBquOBjOOBv+OBrSzjgZfjgpPjgZnjgZENCivjgZ/jgZHjgZfjgZ8s44GY44KF44Gr44Gh44KNDQor44GC44GL44GKLOOBn+OBoOOBguOBjQ0KK+OCj+OBjeOCguOBqCzjgZfjgpPjgYTjgaENCivjgZ/jgZXjgYss44KG44GNDQor44Gq44GL44GX44G+LOOCiOOBl+OBig0KK+OBn+OBkeOBquOBiyzjgY3jgb/jgbLjgo0NCivjgoTjgb7jgZfjgZ8s44Gk44GO44GKDQor44GP44G844GILOOBn+OBi+OBv+OBpA0KK+OBiuOBkOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgZXjgYss44G+44GV44KG44GNDQor44GI44GQ44GhLOOBk+OBhuOBhOOBoQ0KK+OBiuOBleOBjSzjgZXjgajjgZcNCivjgYrjgY/jgaAs44GY44KF44KTDQor44GK44GP44KA44KJLOOBvuOBleOBqOOBlw0KK+OBi+OBquOBvuOCiyzjgorjgofjgbLjgaENCivjgY3jga7jgZfjgZ8s44GL44Ga44GKDQor44GV44GV44GNLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBrizjgorjgoXjgYbjgZ/jgo3jgYYNCivjga/jgZfjgaAs44KI44GX44Gu44KKDQor44G744GXLOOBl+OCheOCk+OBmA0KK+OBv+OBmuOBrizjgZXjgajjgZcNCivjgb/jgaTjga/jgZcs44GL44Ga44KG44GNDQor44KC44Go44Gv44GXLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgZHjgpPjgZgNCivjgarjgYzjga4s44KE44GZ44KI44GXDQor44GE44GX44GELOOBsuOCjeOBguOBjQ0KK+OBi+OCgeOBoCzjgarjgYrjgbLjgZMNCivjgY3jga/jgZ8s44Gm44KL44GKDQor44GT44Gw44KE44GXLOOBl+OCh+OBsuOBoQ0KK+OBl+OCieOBteOBrSzjgZfjgZLjgajjgZcNCivjgarjgaTjga/jgoks44Gy44KN44KI44GXDQor44Gr44GX44Gv44KJLOOBvuOBk+OBqA0KK+OBr+OBl+OBsCzjgYvjgZrjgYoNCivjgbLjgZfjgazjgb4s44GL44Ga44KNDQor44Gy44Gz44KELOOCiOOBl+OBsuOBkw0KK+OBv+OChCzjgYrjgZXjgoANCivjgoDjgonjgYvjgb8s44GN44KI44Gy44GnDQor44KA44KJ44GfLOOBn+OBpOOBig0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgosNCivjgYrjgavjgZcs44KG44GZ44GRDQor44Gf44GR44GX44GfLOOBi+OBpOOBsuOBkw0KK+OBpOOBsOOBjeOCguOBqCzjgZ/jgaTjgoQNCivjga/jgb7jgYrjgYss44G+44GV44GXDQor44G/44Ga44GuLOOBpuOBpOOBmA0KK+OBguOBuSzjgb7jgZXjgobjgY0NCivjgYLjgonjgYTjgZcs44KG44GN44Gy44KNDQor44GV44Go44GGLOOBi+OBiuOCiw0KK+OBleOCj+OBrizjgZ/jgZHjgbLjgacNCivjgZfjgoLjgZjjgofjgYYs44GK44GV44KADQor44Gf44GL44GgLOOBn+OBi+OCiOOBlw0KK+OBquOBjOOBnyzjgbLjgo3jgYLjgY0NCivjgavjgZfjga/jgZ8s44KE44GZ44Gy44GVDQor44Gv44KE44GXLOOBn+OBj+OBig0KK+OBu+OBneOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgYLjgYrjgY0s44GX44KT44Gf44KN44GGDQor44KI44GX44GgLOOBsuOBp+OBr+OCiw0KK+OCj+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgYTjgo/jgZXjgo8s44Gv44GY44KBDQor44Gu44GbLOOBl+OCh+OBsuOBoQ0KK+OBsuOCieOBl+OBnyzjgbLjgo3jgYLjgY0NCivjgojjgZfjgZbjgo8s44Gy44KN44GXDQor44KA44GoLOOChOOBmeOBlw0KK+OBv+OCj+OBhuOCiSzjgZ/jgZHjgYoNCivjgY3jgY/jgaEs44Go44KI44Gf44GLDQor44GI44Ge44GILOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgb8NCivjgYTjgaHjgYvjgo8s44G+44GV44GC44GNDQor44Gv44KJ44GgLOOBm+OBhOOBluOBtuOCjQ0KK+OCgOOCieOBnyzjgZ/jgaDjgb8NCivjgYTjgajjgYYs44GL44Ga44Gy44GnDQor44G744GX44GqLOOChOOBmeOBsuOCjQ0KK+OBqOOBj+OBoCzjgb7jgZXjgbXjgb8NCivjgZ/jgZDjgoos44Gd44Gy44GhDQor44GV44GV44GNLOOBguOBjeOCiQ0KK+OBn+OBvuOCiyzjgb/jgY3jgajjgZcNCivjgavjgZfjga/jgZcs44Gy44KN44Go44GXDQor44GY44Gk44GL44KPLOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjga/jgosNCivjgYrjgavjgZcs44GZ44GI44GKDQor44Gq44GM44GV44GNLOOBsuOCjeOChOOBmQ0KK+OBhOOBhOOBoCzjgbLjgafjgYoNCivjgZ/jgYvjga4s44GR44GE44GeDQor44Gy44GV44GuLOOBsuOBp+OBguOBjQ0KK+OBhOOBruOBhuOBiCzjga/jgZjjgoENCivjgYTjgZfjgY/jgoks44Gy44KN44G/DQor44GC44GN44KE44G+LOOBn+OBkeOBlw0KK+OBhOOBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgY3jgYzjgo8s44KI44GX44Gf44GLDQor44GV44GE44Go44GGLOOCiOOBl+OBqA0KK+OCiOOBoCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44GR44GE44KEDQor44GZ44GO44Gv44KJLOOBruOCiuOBig0KK+OBi+OCj+OBkOOBoSzjgYvjgZrjgojjgZcNCivjgb/jgoQs44Go44KC44KG44GNDQor44GE44GR44GKLOOBr+OCi+OBig0KK+OBleOBj+OCieOBhCzjgZfjgZLjgYoNCivjgZPjgZfjga4s44GL44Ga44Gy44GTDQor44GN44GP44GL44KPLOOBleOBhOOBoQ0KK+OChuOBguOBlSzjgY3jgb/jgZMNCivjgZnjgZrjgY0s44KG44GG44GTDQor44G+44GZ44GgLOOBsuOBp+OBvw0KK+OBguOCieOBhCzjgb7jgZXjgbLjgo0NCivjgYTjgZHjgaAs44Go44GX44Gk44GQDQor44GN44GZLOOBsuOBp+OBjQ0KK+OBhuOBl+OChOOBvizjgb7jgZXjgobjgY0NCivjgYvjgb7jgZ8s44GT44GG44GYDQor44GG44GV44G/LOOBm+OCk+OCig0KK+OBquOBi+OBrizjgZPjgYbjgYTjgaENCivjgYvjgY3jgYvjgo8s44Gy44KN44KG44GNDQor44GN44GY44G+LOOBv+OBjeOBig0KK+OCgOOBi+OBhCzjgobjgYbjgZgNCivjgarjgYzjgoTjgb4s44Gy44Gn44Gy44GVDQor44Gv44Gj44Go44KKLOOBpuOBhOOBmA0KK+OBv+OBl+OBvizjgb7jgZXjgbLjgZMNCivjgZTjgags44Gy44KN44KG44GNDQor44GE44Go44GGLOOBteOBmOOBig0KK+OBiuOBjOOBnyzjgojjgZnjgZENCivjgY/jgZXjgbAs44GL44Ga44GKDQor44Gm44KJ44GILOOBn+OBi+OBlw0KK+OBu+OCk+OBoCzjgobjgYbjgZgNCivjgYLjgY/jgZ/jgYzjgo8s44GX44KT44Gf44KN44GGDQor44G/44KE44GT44GXLOOChOOBmeOBig0KK+OBteOBj+OBl+OBvizjgajjgZfjgYoNCivjgZfjga7jgZrjgYss44GC44GN44KJDQor44GK44Gf44GNLOOCjOOBhA0KK+OBquOBjOOBvuOBpCzjgYjjgaTjgZcNCivjgYLjgonjgYQs44GN44KI44GXDQor44G+44Gk44GgLOOBn+OBkeOBlw0KK+OBteOBmOOBnyzjgZjjgoXjgavjgaENCivjgYvjgb/jgZDjgaEs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBluOBjSzjgb7jgZXjgZMNCivjgYbjgoHjgZ/jgass44G+44GV44GKDQor44Gq44KL44GbLOOBpOOCiOOBlw0KK+OBj+OBvCzjgY/jgavjgajjgZcNCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44GT44KT44GpLOOBi+OCiOOBkw0KK+OBn+OBkeOBhuOBoSzjga/jgovjgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44GV44GoDQor44Gf44GL44GgLOOBruOCiuOBig0KK+OBguOBj+OBpCzjgb/jga7jgosNCivjgajjgorjgYQs44KE44GZ44GIDQor44KC44KK44GK44GLLOOBkeOBhOOBmeOBkQ0KK+OBi+OBj+OBn+OBqyzjgajjgoLjgZMNCivjgZ/jgZHjgYTjgaEs44GX44KH44GYDQor44Gf44GELOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBpOOBoeOChCzjgb7jgZXjgosNCivjgb7jgZnjgaAs44GV44Gh44KIDQor44GL44KT44GgLOOBguOBpOOBvw0KK+OChOOBvuOBhuOCiSzjgbLjgo3jgYLjgY0NCivjgY3jga7jgZfjgZ8s44Gy44Go44GXDQor44G744GV44GLLOOBn+OBkeOBruOCig0KK+OBvuOCi+OBiuOBiyzjgYLjgaTjgZMNCivjgYvjgb7jgZ8s44GY44KF44KT44GTDQor44Gv44Gf44Gq44GLLOOBj+OBq+OBig0KK+OBj+OCjeOBryzjgbLjgo3jgobjgY0NCivjgajjgaTjgYss44Gm44KL44GKDQor44GE44GX44GELOOBv+OBjeOChA0KK+OCguOCiuOBnyzjga7jgorjgYoNCivjgbvjgpPjgb4s44KI44GX44GL44GaDQor44GC44KJ44GL44GNLOOBi+OBpOOChuOBjQ0KK+OBn+OBkSzjgbLjgo3jgb8NCivjgYTjgZrjga/jgoks44KG44G/44GTDQor44Gy44GV44Go44G/LOOBvuOBquOBtg0KK+OBmeOBmuOBjSzjgaHjgYjjgZMNCivjgavjgZfjgarjgYss44GR44GE44GTDQor44G/44Ga44GuLOOBvuOBleOBteOBvw0KK+OCguOCiuOCgOOCiSzjgb7jgZXjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44Gy44GV44GKDQor44GX44GS44Go44KBLOOChOOBmeOCiOOBlw0KK+OBsuOCjeOBi+OCjyzjgZfjgZLjgb/jgaQNCivjgZXjgajjgYYs44GP44Gr44GKDQor44G+44GI44GL44KPLOOBsuOBp+OChuOBjQ0KK+OCiOOBl+OBhCzjgbLjgo3jgZcNCivjgbvjgZ3jgoQs44G+44GV44G/DQor44GV44GL44KC44GoLOOCiOOBhuOBkw0KK+OBk+OBhOOBmuOBvyzjgojjgYbjgZMNCivjgavjgZcs44G144KIDQor44GL44Gt44GTLOOBvuOBoQ0KK+OBmeOBv+OBj+OCiSzjgZfjgZLjgosNCivjgojjgZPjgYos44KI44GX44Go44KCDQor44GV44GV44GNLOOBn+OBkeOBsuOBkw0KK+OBr+OChOOBlyzjgarjgYrjgYvjgZoNCivjgZ/jgarjgYss44Gf44KN44GGDQor44GC44GN44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBleOBhOOBmSzjgbLjgZXjga7jgooNCivjga7jgYzjgb8s44GT44GeDQor44Go44KI44GX44G+LOOBguOBjeOCiQ0KK+OBl+OCk+OBmOOChyzjgajjgZfjgYvjgZoNCivjgbXjgY3jga4s44KI44GX44GC44GNDQor44GE44GR44GgLOOBkeOBrg0KK+OBiuOBoOOCj+OCiSzjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G+44GV44G/DQor44GR44GE44G+LOOBqOOBl+OBruOCig0KK+OBl+OBv+OBmizjgbLjgafjgbLjgZMNCivjgYTjgb7jgYTjgZrjgb8s44GL44Ga44GKDQor44KC44KK44GfLOOBl+OBkuOBvw0KK+OCguOCiizjgoTjgZnjgbXjgb8NCivjgb7jgYjjgYvjgo8s44GC44GN44KJDQor44KE44Gq44GO44GgLOOBl+OCh+OBuOOBhA0KK+OCgOOCieOCguOBqCzjgZ/jgYvjgYoNCivjgZnjgZrjgY0s44GL44Ga44GKDQor44G744Gd44GILOOBguOBjeOCiQ0KK+OBhOOBl+OBj+OCiSzjgY3jgojjgZcNCivjgbLjgo3jgYvjgo8s44Go44G/44GKDQor44GL44KJ44GX44G+LOOCiOOBl+OBi+OBmg0KK+OBvuOBoeOBoCzjgZvjgYTjgZgNCivjgoLjgorjgoTjgb4s44GX44KF44GE44Gh44KN44GGDQor44Gf44GR44KA44KJLOOBn+OBi+OBlw0KK+OBpOOBi+OCguOBqCzjgoLjgorjgojjgZcNCivjgoTjgb7jgZDjgaEs44GL44Ga44GN44GhDQor44Gd44KB44KELOOCiuOBpA0KK+OBquOBi+OBlOOCgSzjgajjgZfjgYvjgaQNCivjgYTjgo/jgarjgYws44GY44KF44KTDQor44Gb44GN44KELOOBk+OBhuOBmA0KK+OBpuOCieOBhCzjgajjgoLjgZgNCivjgZ/jgarjgYss44KG44G/44GTDQor44Gb44GN44KELOOChOOBmeOBvw0KK+OBleOBj+OCieOBhCzjgoTjgZnjgYvjgZoNCivjgYTjgZ3jgbks44GZ44GZ44KADQor44G+44Gk44GK44GLLOOBsuOCjeOBlw0KK+OBhOOBoeOBmOOChyzjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44Gn44GQ44GhLOOBm+OBhOOBmA0KK+OBsuOCieOBvuOBpCzjgobjgYbjgZgNCivjgb/jgZrjga4s44Gf44GL44GXDQor44Go44G/44Gq44GMLOOBl+OCk+OBhOOBoQ0KK+OBn+OBi+OBl+OBvizjgbLjgZXjga7jgooNCivjga7jgYzjgb8s44Gm44Gk44GeDQor44GK44GkLOOBguOBjeOBteOBvw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgbLjgagNCivjgabjgonjgaAs44GC44GN44GKDQor44GV44GE44Go44GGLOOBsuOBp+OBig0KK+OBguOBleOBrizjgZHjgYTjgZnjgZENCivjgZfjgoLjgoDjgoks44GR44KT44GYDQor44GK44Gy44GXLOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgb7jgaTjgoLjgags44GY44KF44KT44KNDQor44Gy44KJ44G+44GkLOOBiOOBv+OBkw0KK+OBn+OBkeOBhuOBoSzjgb7jgaTjgZ/jgo3jgYYNCivjgZfjgZLjga/jgoks44Gf44GL44Gy44GTDQor44GK44GL44KC44GoLOOBvuOBleOBruOCig0KK+OCgOOCieOChOOBvizjgZfjgo0NCivjgZPjgb7jgaTjgbDjgoks44Gf44GL44Go44GXDQor44GI44Gw44GfLOOCiOOBl+OBig0KK+OBiuOBnyzjgYTjgZXjgoANCivjgabjgonjgYos44G+44GV44Gy44KNDQor44GK44GV44KPLOOBsuOBqOOBlw0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgZcNCivjgYLjgonjgYQs44Gy44KN44G144G/DQor44Gv44GX44Ga44KBLOOBkeOCk+OBhOOBoQ0KK+OBv+OBmuOBl+OBvizjgajjgZfjgYvjgZoNCivjgbLjgonjgb7jgaQs44Gf44Gk44KEDQor44GK44GP44KA44KJLOOBn+OBi+OChA0KK+OBv+OBmuOBquOBiyzjga7jgorjgajjgZcNCivjgbvjgorjgYbjgaEs44Gu44KK44KI44GXDQor44Gf44GN44KC44GoLOOBpOOBreOBig0KK+OChOOBmeOBsCzjgY3jgojjgZcNCivjgY3jgZ/jga4s44GX44GS44KLDQor44Gr44GX44GgLOOBv+OBruOCiw0KK+OBhOOBl+OBi+OCjyzjgabjgovjgb7jgZUNCivjgYrjgbAs44Gv44GY44KBDQor44GL44GX44KP44GOLOOCguOBqOOBkw0KK+OBleOBqOOBhizjgZfjgZrjgYoNCivjgb7jgaTjgaAs44GR44KT44GYDQor44GT44KA44KNLOOBlOOCjQ0KK+OCgOOCieOBnyzjgbLjgo3jgobjgY0NCivjgZXjgZXjgYzjgo8s44G+44GV44KLDQor44GV44Gf44GRLOOBn+OBpOOBvw0KK+OBj+OCj+OBrizjgb7jgZXjgZcNCivjgZTjgags44GC44GN44KJDQor44G144GY44GELOOBk+OBhuOBmA0KK+OBv+OBmuOBk+OBlyzjgYjjgaTjgYoNCivjgbXjgZjjgb7jgY0s44KI44GX44GTDQor44GE44Gn44GfLOOBk+OBlw0KK+OBquOBi+OBpOOBiyzjgZfjgoXjgbLjgaENCivjgYbjgpPjga4s44Go44GX44GKDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBr+OBvizjgoLjgajjga7jgbYNCivjgajjgb/jgZ8s44KG44GN44GKDQor44Gf44Gr44GkLOOBqOOBl+OBvw0KK+OBmeOBmuOBjSzjgbLjgZXjgYoNCivjgYrjgY/jgoDjgoks44GL44Ga44KG44GNDQor44G144GP44GX44G+LOOBiuOBleOCgA0KK+OBiuOBr+OBlyzjgYLjgY3jgYoNCivjgoTjgb7jgZfjgZ8s44Gq44GK44GNDQor44GL44KP44G/LOOBsuOBp+OChuOBjQ0KK+OBr+OCi+OBnyzjgYvjgZrjgYoNCivjgb/jgoTjgoLjgags44Gv44KL44Go44GXDQor44Gk44GY44GfLOOBsuOBleOBig0KK+OBhOOBvuOCgOOCiSzjgYvjgaTjgb8NCivjgZXjgajjgYYs44GX44KT44GE44GhDQor44Gq44GL44GY44G+LOOBkeOCk+OBhOOBoQ0KK+OBl+OBhOOBrizjgYvjgZrjgoQNCivjgZTjgags44Gy44Go44GXDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBquOBjOOBhCzjgZ/jgZHjgb8NCivjgYbjgaHjga4s44GL44Ga44Gy44KNDQor44GI44GE44GY44G+LOOBsuOCjeOBlw0KK+OChOOBvuOBquOBiyzjgZ/jgYvjgYoNCivjgarjgYvjgoDjgoks44KG44GUDQor44GZ44Ga44GNLOOBvuOBleOBv+OBoQ0KK+OBm+OCgOOCiSzjgaHjgojjgZgNCivjgarjgYvjgYzjgo8s44GL44Ga44Gy44GTDQor44Gf44KELOOBsuOBi+OCiw0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgYoNCivjgYTjgZfjgYvjgo8s44Gb44GE44GE44GhDQor44Gb44GN44GQ44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYTjgYvjgo8s44KG44GG44GTDQor44GE44KP44GELOOBvuOBleOBig0KK+OBguOBleOBsizjgZXjgbbjgo0NCivjgZTjgags44KG44GN44GTDQor44GL44Gt44Gf44GRLOOBl+OBkuOBig0KK+OBhuOBiOOBvuOBpCzjgb/jga7jgosNCivjgbXjgY/jgZfjgb4s44KC44Go44Gv44KLDQor44G144GP44GgLOOBoeOBiOOBkw0KK+OBmeOBmuOBjSzjgYLjgaTjgZcNCivjgYrjgZDjgoks44GK44GV44KADQor44Gy44KJ44GnLOOBk+OBhuOBmA0KK+OBiuOBl+OBkizjga7jgbbjgYoNCivjgb7jgaTjgoLjgags44KE44GZ44KG44GNDQor44GV44GV44GNLOOCiuOCheOBsuOBoQ0KK+OBlOOCk+OBoCzjgYvjgaTjgbLjgo0NCivjgb7jgaTjgYrjgYss44Gf44GL44GXDQor44GG44KB44GW44KPLOOBsuOCjeOBruOCig0KK+OBq+OBl+OBiizjgZPjgYbjgYTjgaENCivjgZPjgZjjgb4s44GX44KH44GG44GE44Gh44KN44GGDQor44Gf44Gr44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OBiuOBjuOBmSzjgajjgZfjgoQNCivjgZXjgaDjgbLjgZUs44GP44Gr44KE44GZDQor44G144GY44KP44KJLOOBkeOCk+OBmA0KK+OBr+OBo+OBqOOCiizjgYvjgYrjgosNCivjgYvjgb7jgZ8s44GL44Gq44KBDQor44Go44GwLOOBqOOBl+OBruOCig0KK+OChOOBvuOBoCzjgbLjgo3jgZgNCivjgoTjgb7jgoLjgags44Gf44GL44KG44GNDQor44Gf44GR44GG44GhLOOBjeOCh+OBkw0KK+OBguOCieOBjSzjgobjgY3jgbLjgZMNCivjgavjgZfjgYos44Gu44G244GL44GaDQor44KC44KK44GG44GhLOOBn+OBhOOBoQ0KK+OBhOOCj+OBnyzjgYjjgorjgZMNCivjgZXjgZXjgY0s44GI44Gk44GKDQor44G+44GI44GM44KPLOOBvuOBleOCiw0KK+OBteOBj+OBq+OBlyzjgZvjgYTjgZgNCivjgYbjgYjjgaAs44G+44GV44Gk44GQDQor44KE44G+44GO44GXLOOBi+OBmuOBquOCig0KK+OBiuOBrizjgobjgZ4NCivjgbXjgZjjgZ8s44KI44GX44Gk44GQDQor44GN44Gf44KA44KJLOOBsuOCjeOBlw0KK+OCiOOBl+OBr+OCiSzjgZPjgYbjgYTjgaENCivjgYTjgo/jgZXjgo8s44KC44KK44GKDQor44GT44G+44GkLOOBquOBiuOChuOBjQ0KK+OBn+OBq+OCgOOCiSzjgajjgZfjgYoNCivjgZPjgZXjgYss44G+44GT44GoDQor44Gf44GX44G+LOOBn+OBoOOBsuOCjQ0KK+OBq+OBl+OBiuOBiyzjgb/jgY3jgYoNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GU44GoLOOBsuOBp+OBteOBvw0KK+OBi+OCj+OBr+OCiSzjgZvjgaTjgZMNCivjgZ/jgZjjgb4s44GV44Gq44GIDQor44GL44KT44GuLOOBsuOBp+OBguOBjQ0KK+OBi+OBn+OBl+OBvizjgb7jgZXjgo0NCivjga/jgZfjgoLjgags44KE44GZ44Gk44GQDQor44Gq44GL44GgLOOBi+OBmuOBruOBtg0KK+OBi+OBleOBr+OCiSzjgajjgoLjgogNCivjgabjgonjgoLjgags44G+44GT44GoDQor44KP44GL44G+44GkLOOBkeOCk+OBmA0KK+OBhOOBqOOBhizjgbXjgY/jgY3jgaENCivjgo/jgaAs44KI44GX44G/44GkDQor44Gf44KT44GYLOOChuOCiuOBkw0KK+OBiuOBpOOBiyzjgZ/jgY/jgb8NCivjgaTjgZjjgoLjgags44Gf44Gk44KI44GXDQor44Gb44KK44GW44KPLOOBsuOCjeOBguOBjQ0KK+OBqOOBruOBleOBjSzjgbLjgZXjgZ/jgZENCivjgZ/jgYvjgY4s44G+44GV44KG44GNDQor44GK44G144GhLOOBi+OBpOOChuOBjQ0KK+OBguOBvuOBrizjgajjgZfjgYoNCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KJDQor44Gf44Gw44GfLOOBmOOCheOBq+OBoQ0KK+OBqOOCiOOBmuOBvyzjgZfjgofjgZgNCivjgZfjgoXjgY/jgoQs44GC44GN44GKDQor44Gf44GL44GuLOOBl+OCk+OChA0KK+OCgOOCieOBi+OBvyzjgb/jgZnjgZoNCivjgYTjgZfjgZrjgYss44Gy44KN44GXDQor44GE44GE44Ga44GLLOOBm+OBhOOBhOOBoQ0KK+OBl+OCieOBhCzjgZ/jgYvjgYLjgY0NCivjgbXjgY/jga/jgoks44G+44Gq44G/DQor44GE44Gq44GM44GNLOOBqOOBl+OBpOOBkA0KK+OBsuOCieOBl+OBvizjgbLjgafjgb8NCivjgaTjgZjjgbDjgoTjgZcs44Gy44KN44GC44GNDQor44G+44Gk44GKLOOCgeOBkOOBvw0KK+OChOOBvuOCguOBqCzjgZHjgYTjgYTjgaENCivjgoLjgorjga4s44Gu44G244Gv44KLDQor44Gf44GY44G+LOOBteOBv+OBiA0KK+OBruOBluOBjSzjgb/jgaHjgZMNCivjgYLjgaDjgaEs44GL44Gk44Gq44KKDQor44Gf44GL44KELOOBv+OBoeOBig0KK+OBiuOBrizjgYLjgY3jgokNCivjgb7jgaTjgoLjgags44KG44GG44GYDQor44Gv44GX44KC44GoLOOBvuOBleOBguOBjQ0KK+OBi+OBrizjgojjgZfjgo0NCivjgZ/jgZHjgaAs44GX44KT44GE44GhDQor44GN44KK44Gv44KJLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjga7jgbbjgojjgZcNCivjgajjgorjgYQs44Go44GX44Gy44GTDQor44Gq44GL44GX44G+LOOBguOBjeOCiQ0KK+OBm+OBmeOBvyzjgZnjgYjjga/jgosNCivjgb7jgYjjga7jgZ3jga4s44Gm44Gk44GKDQor44GU44GoLOOBsuOBqOOBlw0KK+OBu+OCiizjgYLjgaTjgZcNCivjgZ/jgYvjgYTjgoks44G+44GV44G/DQor44Gf44Gr44GgLOOBvuOBquOBtg0KK+OBteOCi+OBqeOBhCzjgZ/jgYvjgYoNCivjgYrjgY7jgoQs44Go44GX44GKDQor44Gq44GL44GY44G+LOOBmOOCheOCkw0KK+OBu+OCiuOBi+OCjyzjga7jgbbjgZ/jgYsNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GC44GK44GNLOOBvuOBleOBig0KK+OBiuOBj+OBr+OBnyzjgYvjgaTjgYLjgY0NCivjgY/jgo/jgbDjgoks44GL44Ga44Gy44GnDQor44GL44KT44GgLOOChOOBmeOBlw0KK+OBmeOBjuOCguOBqCzjgbXjgb/jgZMNCivjgoTjgb7jgoLjgags44GR44GE44GTDQor44GL44Gt44GTLOOChOOBmeOBsuOBkw0KK+OBquOCiuOBnyzjgYLjgY3jga7jgbYNCivjgavjgZfjgYos44G+44GV44GKDQor44GE44GL44KKLOOBmOOCheOCkw0KK+OBteOCi+OBi+OCjyzjgYvjgZrjgarjgooNCivjgYLjgonjgYQs44GX44KT44GYDQor44GP44Ga44GL44G/LOOChuOBjeOCiOOBlw0KK+OBlOOBqCzjgY3jgofjgbLjgaENCivjgoTjgb7jga/jgoks44GC44GN44Gy44KNDQor44KE44G+44GgLOOBl+OCheOBsuOBoeOCjQ0KK+OBhOOBmCzjgb7jgZXjgarjgYoNCivjgY/jgonjgoLjgaEs44Gu44G244KI44GXDQor44G144GY44KP44KJLOOBi+OBmuOBsuOCjQ0KK+OBn+OBkeOBoCzjgb7jgZPjgagNCivjgZ/jgYvjga7jgZss44Gu44G244KG44GNDQor44Go44KC44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgobjgZnjgZENCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44G/44GkDQor44G/44KE44GW44GNLOOCiuOChw0KK+OCiOOBl+OBoCzjgbLjgafjgYLjgY0NCivjgZ/jgarjgYss44G+44GV44KLDQor44GU44GoLOOCguOBqOOChuOBjQ0KK+OBq+OBl+OBoCzjgZ/jgZHjgbLjgo0NCivjgarjgYvjgZfjgb4s44Gv44KL44GKDQor44GN44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZvjgYTjgZgNCivjgYrjgZfjgb4s44Gy44KN44GXDQor44GK44Gy44KDLOOBl+OCheOBsuOBoQ0KK+OBv+OChOOCguOBqCzjgb7jgZnjgb8NCivjgoTjgb7jgZfjgZ8s44GX44GS44KLDQor44Gf44Gq44GLLOOBqOOBl+OCjQ0KK+OCguOCiizjgb/jgY3jgYoNCivjgarjgovjgb8s44Gy44Gn44GZ44GODQor44GU44GoLOOBleOBqOOBlw0KK+OChOOBvuOBoeOBiyzjgYjjgaTjgYoNCivjgZXjgZXjgY0s44GX44GS44G144G/DQor44GN44GX44GgLOOBr+OBmOOCgQ0KK+OBiuOBsuOCg+OBvizjgb7jgZXjgobjgY0NCivjgZfjgYTjga4s44KG44GG44GYDQor44GE44Ga44G/44GV44KPLOOBl+OCheOBsuOBoQ0KK+OBi+OBv+OCgOOCiSzjgojjgZfjgbLjgZMNCivjgZXjgYvjgYQs44G/44Gh44GKDQor44GU44GoLOOBkeOBhOOBhOOBoQ0KK+OBi+OBqOOBhizjgb/jgaTjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GX44GS44KG44GNDQor44GP44GuLOOBvuOBleOBqOOBlw0KK+OBhOOCj+OBtuOBoSzjgZ/jgZHjgZcNCivjgbvjgpPjgbYs44G+44KC44KLDQor44KC44KK44GfLOOBvuOBleOBruOCig0KK+OBm+OBjeOChCzjgYrjgZXjgoANCivjgazjgb7jgZ8s44G+44GZ44G/DQor44GU44GoLOOBguOBpOOBlw0KK+OBvuOBquOBuSzjgYrjgZXjgoANCivjgYTjgb7jgY3jgZ8s44Gg44GE44GY44KNDQor44GT44Gg44GLLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgagNCivjgZXjgajjgYYs44G/44Gh44GKDQor44GP44GZ44G/LOOCiOOBmeOBkQ0KK+OBr+OBjuOCj+OCiSzjgYvjgaTjgoQNCivjgbXjgovjgZss44KI44GX44Go44KCDQor44KA44KJ44GfLOOBoOOBhOOBqw0KK+OBiuOBj+OCgOOCiSzjgZHjgpPjgYTjgaENCivjgZ/jgavjgYzjgb8s44GL44Ga44GKDQor44Gq44GL44KA44KJLOOBjeOBhOOBoeOCjeOBhg0KK+OBk+OBhOOBmuOBvyzjgZPjgYbjgZgNCivjgZnjganjgYYs44Gf44Gk44Gy44GTDQor44GE44GnLOOBvuOBleOBpOOBkA0KK+OBl+OCguOBrizjgb7jgZXjgbXjgb8NCivjgZ/jgYvjgY4s44GY44KF44KTDQor44GV44GL44GELOOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgoQNCivjgbXjgovjgZ8s44KB44GE44GV44GEDQor44GC44GV44GELOOBvuOBleOCiw0KK+OBteOBi+OBleOCjyzjgZfjgofjgZgNCivjgZTjgYvjgYTjgaEs44GR44KT44GYDQor44GK44Gk44GLLOOBn+OBkeOBsuOBlQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44GL44Ga44KG44GNDQor44Gf44GR44GgLOOBqOOBl+OBi+OBmg0KK+OBvuOBmeOBoCzjgabjgovjgbLjgZMNCivjgoTjgb7jgoLjgags44GX44KH44GTDQor44GK44Gv44KJLOOBvuOBleOBsuOBkw0KK+OBteOBquOBpCzjgZ/jgYTjgaENCivjgZPjgoTjgb4s44GX44KT44GYDQor44KE44G+44GW44GNLOOBvuOBleOBsuOBkw0KK+OBn+OBmOOCiizjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gm44Gk44KEDQor44Gq44GM44GX44G+LOOBi+OBmuOBsuOCjQ0KK+OBpOOBoCzjgojjgZfjgYLjgY0NCivjgarjgYzjgYos44GC44Gk44GXDQor44GK44GZ44GOLOOBi+OBmuOBig0KK+OBhOOBqOOBhizjgb/jgaHjga7jgbYNCivjgZ/jgb7jgYQs44GN44KI44GXDQor44G/44KE44GX44GfLOOBj+OBq+OBsuOBkw0KK+OBv+OBl+OBvizjgZPjgYbjgZgNCivjgbvjgorjgYQs44KE44GZ44Gu44KKDQor44GU44GoLOOBleOBqOOBlw0KK+OChOOBiizjgZfjgZLjgosNCivjgbLjgZjjgoQs44G+44GV44KG44GNDQor44G744KK44GELOOCiOOBl+OBsuOBkw0KK+OBn+OBkeOBoCzjga7jgbzjgosNCivjgoTjgZnjgarjgYws44G+44Gq44G2DQor44KE44G+44GW44GNLOOBi+OBmuOBsuOBkw0KK+OChOOBrizjgZjjgoXjgpPjgZ4NCivjgZfjgo/jgY8s44Go44GX44Gy44KNDQor44GL44G/44GuLOOBv+OBreOBr+OCiw0KK+OBquOBi+OBmOOBvizjgaTjgojjgZcNCivjgb7jgZnjgaAs44GY44KNDQor44GK44G144GhLOOBn+OBi+OBlw0KK+OBteOBj+OBluOBjSzjgajjgoLjgb8NCivjgYTjgZ/jgYzjgY0s44Gy44KN44KG44GNDQor44GX44KCLOOBqOOCguOBquOCig0KK+OBteOBj+OBhCzjgobjgZ/jgYsNCivjgYTjgbMs44KI44Gy44Gh44KNDQor44GT44KA44GL44GELOOCiOOBl+OBsuOCjQ0KK+OBteOBmOOBiCzjgarjgYrjgYLjgY0NCivjgb7jgaTjgY0s44G+44GT44GoDQor44GT44Gw44KE44GXLOOBmOOCheOBhOOBoQ0KK+OBlOOBoSzjgZ/jgaTjgoQNCivjga/jgZvjgYzjgo8s44Gy44Gn44GYDQor44GL44KP44GU44GILOOBn+OBi+OCiOOBlw0KK+OBquOBjOOBleOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgZfjgZ8s44Gy44Gn44Gy44GoDQor44GE44GX44GW44GNLOOBguOBjeOCiQ0KK+OBiuOBoCzjgb/jga7jgosNCivjgZfjgpPjgaks44GC44GN44KJDQor44GX44KC44GV44GTLOOBn+OBhOOBmOOCjQ0KK+OBpOOBpOOBvyzjgY/jgavjgbLjgZMNCivjgY3jgZ/jgYrjgYss44GY44KNDQor44GN44Gf44GW44KPLOOCjOOBhOOBkw0KK+OBquOBi+OBiuOBiyzjgZfjgZLjgY0NCivjgYTjgZfjgbDjgZcs44Gh44GIDQor44Gv44GX44GQ44GhLOOBruOBtuOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZjjgavjgaENCivjgYrjgbAs44GN44KI44G/DQor44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZMNCivjgYTjgZbjgo8s44GL44Ga44KI44GXDQor44KI44GX44KE44G+LOOBi+OBmuOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZHjgpMNCivjgZPjgb7jgaQs44Go44KC44G144G/DQor44G444KT44G/LOOBn+OBhOOBm+OBhA0KK+OBteOBi+OBoCzjgZXjgYvjgYgNCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44GZ44GO44KC44GoLOOBv+OBoeOBsuOCjQ0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgYLjgY0NCivjgZ/jgarjgYss44Gv44KL44Gy44GVDQor44G/44KE44Gf44GrLOOBjeOCiOOBlw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgYzjgo8s44GT44GG44GYDQor44G144GP44GK44GLLOOBiOOBhOOBmA0KK+OBiuOCgOOCiSzjgb/jgobjgY0NCivjgYTjgZDjgaEs44G/44KP44GTDQor44Gv44KE44GXLOOBguOBjeOBsuOCjQ0KK+OBsuOCieOBhCzjgYvjgarjgoENCivjgYrjgoLjgoos44GL44Ga44KEDQor44GK44GO44GuLOOBk+OBv+OBqg0KK+OBn+OCgOOCiSzjgojjgZfjgbLjgZMNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44G/44KE44Gq44GMLOOBsuOCjeOChuOBjQ0KK+OBsuOCieOBhCzjgZPjgYbjgYTjgaENCivjgavjgZfjgoDjgoks44GT44GeDQor44Gv44G244GhLOOBruOCiuOBteOBvw0KK+OBiuOBj+OCiSzjgojjgZfjgbLjgZUNCivjga/jgaPjgZ8s44GR44KT44GYDQor44GE44GT44G+LOOBpOOBqOOCgA0KK+OBguOBleOBsuOBqizjga7jgorjgbLjgZMNCivjgYvjga4s44GV44Go44KLDQor44Gq44GL44Gr44GXLOOBguOBpOOBlw0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgYLjgY0NCivjgYTjgaHjgYvjgaks44Gy44KN44KG44GNDQor44Gq44GM44GV44KPLOOBleOBqOOCiw0KK+OBr+OBvuOBkOOBoSzjgb7jgZPjgagNCivjgoTjgZfjgo0s44G+44KK44GTDQor44KA44KJ44GKLOOBi+OBiOOBkw0KK+OBiuOBjuOBvuOBoSzjgozjgYTjgZMNCivjgZfjgo3jgZ8s44GE44Gh44KN44GGDQor44Gm44GX44G+LOOBv+OBpOOBig0KK+OBi+OCj+OBleOBjSzjgbLjgafjgYLjgY0NCivjgoTjgb7jgaAs44GT44GG44GE44Gh44KNDQor44G744KT44GgLOOBruOCiuOBvuOBlQ0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgZfjgb4s44Gy44Gn44GL44GaDQor44GT44G/44KELOOCiOOBl+OBguOBjQ0KK+OCj+OBoCzjgYjjgYTjgZgNCivjgojjgZfjgaAs44Gy44KN44KG44GNDQor44KC44KK44GV44GNLOOBn+OBi+OBlw0KK+OBhOOBvuOBsuOBjOOBlyzjgZfjgpPjgZQNCivjgY/jgonjgoLjgaEs44GX44KF44GYDQor44KG44GL44KPLOOBsuOCjeOCgA0KK+OBpuOCieOBiizjgajjgojjgYLjgY0NCivjgZPjgpPjgaks44GC44GN44Gu44G2DQor44GV44GE44Go44GGLOOBr+OCi+OBig0KK+OCiOOBl+OBquOBjCzjgbLjgo3jga7jgooNCivjgobjgYLjgZUs44G+44GNDQor44Go44G544Gj44GoLOOBguOBjeOCiQ0KK+OBm+OCk+OBjCzjgb7jgZXjgobjgY0NCivjgavjgZfjgZDjgaEs44G/44Gk44GKDQor44GG44GI44GgLOOChOOBmeOChuOBjQ0KK+OChOOBvuOBiuOBiyzjgYrjgZXjgoANCivjgoTjgb7jgoLjgags44G+44GV44Gy44GnDQor44G144GY44GL44KPLOOBl+OBkuOCiw0KK+OBiuOBkOOCiSzjgbLjgo3jgZrjgb8NCivjgYvjgo/jga4s44GT44GG44GYDQor44GL44Gt44Ga44GLLOOBpOOCiOOBlw0KK+OBiuOBi+OCguOBqCzjgZ/jgYvjgZcNCivjgYvjgo/jgaTjgY0s44KG44GG44GYDQor44GZ44GI44KI44GXLOOBsuOBp+OBig0KK+OBi+OCj+OBuSzjgo/jgZ/jgosNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44KC44KKLOOBmOOCjQ0KK+OBmeOBjuOChOOBvizjgb7jgY0NCivjgb7jgYjjgoTjgb4s44G+44GV44KG44GNDQor44GT44KB44Gf44GrLOOBsuOCjeOBlw0KK+OBteOBmOOCj+OCiSzjga/jgovjgobjgY0NCivjgYLjgafjgYzjgo8s44GL44Ga44G+DQor44Go44G/44GW44KPLOOCiOOBl+OBig0KK+OBquOBi+OBnyzjgajjgZfjgYLjgY0NCivjgZ/jgaHjgbDjgarjgY0s44Gq44GK44GNDQor44GT44Gg44G+LOOBqOOBl+OBig0KK+OBr+OBquOBhCzjgYvjgZrjgYoNCivjgaHjga7jga0s44Go44GX44Gf44GRDQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBn+OBjeOBluOCjyzjgbLjgafjgYoNCivjgY/jganjgYYs44Gy44KN44GC44GNDQor44KC44KK44GK44GLLOOChuOBmeOBkQ0KK+OBi+OBreOBsuOCiSzjgYvjgZrjgYoNCivjgZXjgajjgYYs44Gf44Gk44KEDQor44KE44Gw44GqLOOBl+OBkuOChuOBjQ0KK+OBleOBi+OBmuOCgSzjgZ/jgYvjgobjgY0NCivjga/jgZfjgoLjgags44GX44KT44GZ44GRDQor44KI44Gu44KC44GoLOOBpuOBpOOBmA0KK+OBsOOCk+OBl+OChyzjgY3jgojjgZcNCivjgbXjgaHjgYgs44KG44GG44GYDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBmeOBmuOBjSzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GK44GV44KADQor44GL44Go44GGLOOBvuOBleOBguOBjQ0KK+OBj+OBmeOBoCzjga/jgovjgYLjgY0NCivjgb/jgoTjgZ/jgZEs44GX44KH44GUDQor44GV44GuLOOBoeOBuw0KK+OBvuOCi+OBnyzjgYvjgZrjgYoNCivjgb7jgY3jgZ8s44GT44GG44GE44GhDQor44GL44GX44KP44GOLOOBvuOBleOBqA0KK+OBn+OBqyzjgZHjgpPjgZgNCivjgYLjgorjgoTjgZks44G+44GV44GL44GaDQor44GL44Go44GGLOOBguOBjeOBig0KK+OBn+OBquOBiyzjgbLjgo3jga7jgbYNCivjgaTjgZjjgZ8s44Go44GX44GKDQor44GK44GM44KP44KJLOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBleOCjyzjgY3jgogNCivjgZvjgY3jgoLjgags44Gy44Gn44GNDQor44Gk44GY44KC44GoLOOBj+OBq+OBig0KK+OBl+OBiuOBn+OBqyzjgYvjgZrjgYoNCivjgb/jgo8s44GE44GP44GKDQor44Gq44GM44GV44GLLOOChuOBjeOBruOCig0KK+OBk+OBhOOBpyzjgYvjgZrjgbLjgo0NCivjgYrjgZDjgoks44Gf44GL44Gk44GQDQor44Gk44Gk44G/LOOBi+OBmuOBhOOBoQ0KK+OBteOBi+OBvyzjgojjgZfjgbLjgo0NCivjgojjgZfjgaAs44Gy44Gn44GYDQor44KC44KN44G744GXLOOBqOOBl+OBguOBjQ0KK+OBl+OBiuOBrizjgb7jgorjgZMNCivjgoTjgb7jgZDjgaEs44Gv44GY44KBDQor44G+44G/44KELOOCiOOBl+OBvw0KK+OBleOBhOOBqOOBhizjgYjjgaTjgYoNCivjgYLjgY3jgoTjgb4s44GX44KF44GYDQor44GC44Gg44GhLOOBvuOBleOBsuOBqA0KK+OBi+OCj+OBrizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44Gf44Gg44GKDQor44KE44G+44GQ44GhLOOBqOOBl+OBsuOCjQ0KK+OBleOBj+OBvizjgbLjgZXjgZcNCivjgoLjgaHjgZrjgY0s44Gy44GV44GoDQor44KP44Gf44Gq44G5LOOCiOOBsuOBoeOCjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgYoNCivjgY3jgZcs44Gb44GE44GYDQor44Gv44KE44GV44GLLOOBguOBjeOCiQ0KK+OBk+OBteOBmCzjgaTjgajjgoANCivjgZXjgYTjgajjgYYs44Gf44GL44Gu44KKDQor44Gu44KA44KJLOOBmOOCheOBq+OBoQ0KK+OBvuOBpOOBhCzjgZ/jgYvjgZcNCivjga/jgoTjgZfjgaAs44GZ44GZ44KADQor44GK44GM44KPLOOBn+OBoOOBsuOBpw0KK+OBu+OCk+OBoCzjga7jgbbjgb/jgaENCivjgZPjgZbjgo8s44Gk44GL44GVDQor44GV44GV44GNLOOBl+OBkuOChuOBjQ0KK+OCj+OBoCzjgY3jgojjgZcNCivjgoTjgb7jgo/jgY0s44GL44Ga44Gy44KNDQor44G144GY44GELOOBqOOBl+OBv+OBpA0KK+OBn+OBjeOBluOCjyzjgYLjgY3jgbLjgo0NCivjgZXjgajjgYYs44Go44GX44GNDQor44G/44GL44G/LOOBsuOBp+OBvw0KK+OBv+OCjyzjgojjgZfjgZ/jgYsNCivjgYrjgaEs44KI44GYDQor44G144GY44GfLOOBm+OBhOOBmA0KK+OBquOBjOOBnyzjgb/jgozjgYQNCivjgY/jgbzjgZ8s44G/44Gh44KIDQor44GC44GK44GM44GNLOOBvuOBleOBruOBtg0KK+OBi+OCiuOChOOBqSzjgYLjgY3jgZMNCivjgb/jga/jgZcs44GX44KF44KT44GYDQor44KA44KJ44G+44GkLOOChuOBjeOBig0KK+OBi+OBn+OChOOBvizjgb7jgZXjgYgNCivjgoTjgb7jgZbjgY0s44Gf44GL44GXDQor44GK44GO44GdLOOBn+OBi+OBlw0KK+OBsOOBsCzjgojjgZfjgoLjgagNCivjgb/jgZfjgb4s44Gy44Gn44GC44GNDQor44KE44GuLOOBjeOCiOOBlw0KK+OBquOBi+OBmOOBvizjgZ/jgb8NCivjgZ/jgZHjgZfjgZ8s44Gv44KL44KIDQor44Gq44GL44GuLOOChOOBmeOBsuOBkw0KK+OBn+OBi+OBrizjgZPjgYbjgZgNCivjgYvjgo/jgaAs44GV44Go44GXDQor44Gf44GY44G+LOOBruOBvOOCiw0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgZcNCivjgY3jgoDjgoks44GR44GE44GYDQor44GC44GN44G7LOOBhOOBoeOCjeOBhg0KK+OChOOBvuOCguOBqCzjgojjgYbjgZMNCivjgYvjgo/jgZss44GS44KTDQor44GV44GVLOOBquOBiuOBkw0KK+OBruOBmyzjgZfjgpPjgYTjgaENCivjgbLjgonjgZ8s44Gh44GI44GTDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBguOBjOOCjyzjgajjgZfjgbLjgZMNCivjgabjgonjgoLjgags44GN44KI44Gf44GLDQor44GK44GW44GNLOOBvuOBleOBi+OBmg0KK+OCguOCiizjgb7jgZXjgbLjgZMNCivjgYbjgaQs44GK44GV44KADQor44KP44GL44G+44GkLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBhCzjgY3jgofjgZMNCivjgY/jgbws44G/44Gu44KLDQor44Gf44GL44GuLOOChuOBjQ0KK+OBsuOBs+OBrizjgYvjgZrjgb7jgZUNCivjgZnjgZrjgY0s44GT44GG44Gf44KN44GGDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBleOBi+OCguOCiizjgYvjgaTjgb8NCivjgZ/jgY3jgZbjgo8s44Go44G/44KC44GoDQor44KI44GX44GL44KPLOOBguOBjQ0KK+OBqOOCiOOBoCzjgobjgZ/jgYsNCivjgYbjgonjgZfjgb4s44Gy44GV44GKDQor44GT44KT44GuLOOBi+OBmuOBquOCig0KK+OBpuOCieOBi+OCjyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44GX44KF44Gy44GhDQor44GN44KA44KJLOOChuOBmeOBkQ0KK+OBi+OBv+OBiizjgbLjgo3jgbXjgb8NCivjgY/jgozjgbDjgoTjgZcs44GV44GL44GIDQor44GL44Gt44GgLOOBjeOCh+OBkw0KK+OBi+OCj+OCguOBqCzjgbLjgajjgZcNCivjgYTjgb7jgoDjgoks44Go44GX44GV44GgDQor44GT44Gv44GO44GW44KPLOOBteOBv+OBkw0KK+OBl+OBruOBluOBjSzjgZ/jgYvjgbLjgo0NCivjgoHjgZDjgo0s44GY44KF44KT44GYDQor44GP44Gr44GV44GgLOOBsuOBp+OBig0KK+OCguOCiizjga/jgovjgY0NCivjgYvjgo/jgY7jgZcs44Gf44GL44Gv44KLDQor44GK44GZ44GMLOOBi+OCiOOBkw0KK+OBmeOBoCzjgabjgaQNCivjgarjgYvjgoDjgoks44Gf44GI44GTDQor44GE44GX44GTLOOCiuOCheOBsuOBoQ0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgY3jgY/jgaEs44KC44Go44Gy44KNDQor44GK44GO44GfLOOBn+OBkeOBquOBjA0KK+OBn+OBi+OChOOBvizjgYLjgY3jgbLjgZMNCivjgarjgYvjgZfjgb4s44Gf44GL44GTDQor44Gk44GY44KC44GoLOOCjOOBhA0KK+OBr+OChOOBvizjgY3jgojjgb8NCivjgYTjgZ/jgYzjgY0s44Gy44KN44GTDQor44KE44G+44KC44GoLOOBk+OBuOOBhA0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgY3jgZ/jgb8s44G/44Gu44KLDQor44Gf44G+44GNLOOBl+OCheOBsuOBoeOCjQ0KK+OBvuOBiOOBoCzjgZXjgajjgZcNCivjgYLjgaDjgaEs44G+44GV44Gv44KLDQor44Gf44G+44GgLOOBjeOCiA0KK+OCguOCiuOBkOOBoSzjgZ/jgYvjgobjgY0NCivjgojjgZfjgarjgYws44GL44GI44GnDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYvjgZoNCivjgZ/jgYvjga/jgZcs44GY44KF44KTDQor44GE44GX44GTLOOBquOBiuOChA0KK+OBiuOBmOOBvizjgYvjgZrjgbLjgZMNCivjgZfjgbDjgoTjgb4s44GC44GN44KJDQor44GX44GwLOOBn+OBi+OBqOOCiQ0KK+OBqOOCguOBrizjgY3jgojjgZcNCivjgZnjgb8s44Gy44KN44GXDQor44G/44Gk44Gq44GMLOOBj+OBq+OBsuOCjQ0KK+OBhuOCieOBrizjgb7jgZXjgYLjgY0NCivjgojjgZPjgZrjgYss44Gy44KN44GC44GNDQor44G144GY44GL44KPLOOBsuOCjeOBlw0KK+OBi+OBtuOCieOBjizjgbLjgo3jgbLjgacNCivjgojjgZfjgaAs44G/44Gh44GKDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OChOOBrizjgZfjgofjgZ4NCivjgojjgZPjgZ8s44GQ44KT44GYDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBquOBv+OBleOBqCzjga7jgorjgZMNCivjga3jgY7jgZcs44Gf44GI44GTDQor44GN44GuLOOBn+OBvuOBjQ0KK+OBquOBi+OBmOOBvizjgojjgorjgZ/jgYsNCivjgaTjgaTjgb8s44Gm44Gk44KNDQor44GT44GgLOOBi+OBpOOBmA0KK+OBu+OCiizjgojjgZfjgYLjgY0NCivjgZPjga4s44Gf44GR44Gy44GTDQor44KP44GgLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOBquOBjCzjgb7jgZXjgbXjgb8NCivjgavjgZfjgoDjgoks44GC44GN44GTDQor44GE44GELOOBvuOBleOBjQ0KK+OChOOBmeOBhCzjgZXjgajjgZcNCivjgZPjgbDjgoTjgZcs44Gv44KL44Gy44KNDQor44KE44G+44GV44GNLOOBvuOBleOChuOBjQ0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgYTjgo/jgZ8s44KI44GX44GC44GNDQor44GX44GS44KC44KKLOOBn+OBi+OBsuOBlQ0KK+OBhOOBvuOCgOOCiSzjgarjgYrjgb8NCivjgaTjgYvjgoLjgags44GC44Gk44GXDQor44GE44Go44GGLOOBvuOBleOBi+OBmg0KK+OBj+OBvCzjgZHjgYTjgZ4NCivjgZXjgarjgYgs44Gu44G844KLDQor44GT44Gg44G+LOOBguOBjeOCiQ0KK+OBhOOBqOOBhizjgZfjgoXjgbLjgaENCivjgYLjgY/jgaQs44KE44GZ44Gy44GTDQor44GC44Gf44KJ44GXLOOBv+OChuOBjQ0KK+OBn+OBkOOCiizjgYvjgZrjgoQNCivjgZjjgofjga4s44KG44G/44GTDQor44GC44GL44G+44GkLOOBleOBoOOBig0KK+OBguOBleOBrizjgajjgZfjgobjgY0NCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44KNDQor44GL44KP44GX44G+LOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgZfjgoXjgbLjgaENCivjgYrjgZDjgoks44G+44GV44Gy44KNDQor44GE44GX44Gw44GXLOOChOOBmeOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjga/jgovjgbLjgZMNCivjgZ/jgY3jgZbjgo8s44Gf44GL44GXDQor44GE44Gf44GP44KJLOOBruOBtuOBn+OBiw0KK+OBu+OCk+OBlCzjgYLjgY3jgogNCivjgarjgYzjgoTjgZks44GX44KT44GZ44GEDQor44GG44Gh44GgLOOBmOOCjQ0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgb7jgZUNCivjgYTjgZfjgZDjgo0s44GC44GN44GKDQor44KC44KKLOOBi+OBpOOBlw0KK+OBn+OBquOBiyzjgojjgYbjgZMNCivjgbLjgZDjgaEs44G/44GI44GTDQor44GN44GoLOOBmOOCheOCk+OBkw0KK+OBn+OBquOBiyzjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44GR44KT44GY44KNDQor44GZ44GM44GELOOBkeOCk+OBmA0KK+OCiOOBreOBluOCjyzjgb7jgZXjgYLjgY0NCivjgYLjgonjgYvjgo8s44GC44GV44GTDQor44GE44Gu44GgLOOBsuOBp+OBig0KK+OBi+OBqOOBhizjgZvjgYTjgZgNCivjgYvjgZLjgoTjgb4s44Gy44KN44KG44GNDQor44G/44KE44KP44GNLOOBn+OBi+OCiOOBlw0KK+OBv+OBoeOChOOBvizjgb7jgZXjgojjgZcNCivjgoLjgoos44GV44Go44GXDQor44KC44KK44GV44KPLOOCiOOBl+OBi+OBmg0KK+OBq+OBl+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44KE44G+44KC44GoLOOBpOOBreOBig0KK+OBvuOBpOOBhuOCiSzjgbLjgo3jgZcNCivjga/jgZvjgYzjgo8s44Go44KI44Gy44GTDQor44GG44Gh44GgLOOBk+OBhuOBhOOBoQ0KK+OChOOBmeOBoCzjgZfjgZLjgagNCivjgYTjgZfjgaAs44GX44KT44GE44GhDQor44KC44KK44GuLOOBi+OBmuOChuOBjQ0KK+OBjeOBn+OChOOBvizjgYvjgZrjgbLjgo0NCivjgZXjgYvjgoLjgags44GR44KT44GYDQor44Gd44GG44G/44KELOOCiOOBl+OBi+OBmg0KK+OBjeOBj+OBoSzjgorjgoXjgZgNCivjgZfjgbbjgYQs44KE44GZ44Gy44GVDQor44Go44G/44GfLOOBvuOBleOBig0KK+OCguOCiizjgb7jgZXjgZcNCivjgoTjgb7jgZDjgaEs44Go44GX44Gy44GTDQor44GN44Gf44KE44G+LOOBn+OBoOOChOOBmQ0KK+OBvuOCk+OCguOBqCzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44KC44KKLOOBi+OBpOOChuOBjQ0KK+OBhOOBn+OBj+OCiSzjgoTjgZnjga7jgooNCivjgYTjgaHjgb/jgoQs44KI44GZ44GRDQor44Gr44GX44KE44G+LOOCiOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgaTjgajjgoANCivjga/jgpPjgYzjgYQs44GY44KF44Gr44GhDQor44Gq44GM44GuLOOBk+OBhuOBhOOBoQ0KK+OBl+OBsCzjgajjgYrjgosNCivjgZPjgZjjgb4s44GL44Gk44G+44GVDQor44Gf44Gf44GuLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OBsOOBnyzjgojjgZfjga7jgooNCivjgZ/jgZHjgaAs44Gy44KN44KG44GNDQor44GK44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBleOBkyzjgZPjgYbjgZgNCivjgYTjgZfjga/jgoks44GC44Gk44GXDQor44GE44Gh44Gu44GbLOOBk+OBhuOBmA0KK+OBjeOBl+OBoCzjgZjjgoXjgpPjgZgNCivjgb/jgYvjgb8s44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgobjgZ/jgYsNCivjgojjga3jgb/jgaQs44GL44Ga44Gy44KNDQor44Gb44GN44GtLOOBhOOBleOCgA0KK+OBhOOBvuOBq+OBlyzjgb7jgZXjgZcNCivjgYLjgYrjgY0s44GL44Gk44GYDQor44GZ44GO44KE44G+LOOBsuOCjeOBlw0KK+OBquOBi+OCguOCiizjga/jgovjgYoNCivjgZfjgb7jgaAs44GR44GE44GE44Gh44KN44GGDQor44G+44GZ44GgLOOBkeOCk+OBmA0KK+OBpOOBvOOBhCzjgZnjgZnjgoANCivjgZvjgY3jgoQs44GV44Go44GXDQor44GN44GY44G+LOOBvuOBleOBsuOBkw0KK+OCiOOBl+OBmuOBvyzjgZ/jgo3jgYYNCivjgoTjgarjgY7jgaDjgaYs44GE44GP44KNDQor44GX44GS44G+44GkLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgb/jga7jgosNCivjgZ/jgZHjgYbjgaEs44GZ44GZ44KADQor44Gf44Gq44GLLOOCiOOBl+OBvw0KK+OBsuOBjOOBlyzjgZjjgoXjgpMNCivjgZ/jgYvjgZ8s44Gf44GP44GYDQor44Gq44GL44GELOOBguOChuOBvw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgarjgooNCivjgZ/jgass44KI44GX44Gq44KKDQor44GT44Gw44KE44GXLOOBjeOCiOOBn+OBoA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgZcNCivjgYLjgbks44GE44GV44GKDQor44GT44Gw44KE44GXLOOCiOOBl+OBteOBvw0KK+OBiuOBrizjgb7jgZXjgbLjgZMNCivjgZ/jgYvjga/jgZcs44G144GV44GKDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgZnjgZnjgoANCivjgYLjgbks44Gu44KK44GKDQor44GE44Gu44GG44GILOOBsuOBp+OBn+OBiw0KK+OBiOOCk+OBqSzjgZfjgpPjgoQNCivjga7jga7jgZfjgZ8s44Gv44KL44KE44GZDQor44GL44Gq44GELOOBquOBiuOBjQ0KK+OBk+OBn+OBjSzjgZHjgYTjgZMNCivjgZ/jgYvjga/jgZcs44Gf44GR44GXDQor44GX44GS44KE44G+LOOBl+OCheOBmA0KK+OBteOBi+OBoCzjgarjgYrjgbLjgo0NCivjgZfjgYrjgZgs44Gk44GO44GKDQor44KC44KK44KELOOBmOOCheOBq+OBoQ0KK+OBiuOBpOOBiyzjgZ/jgYvjgZcNCivjgYLjgbks44G/44GN44Go44KIDQor44Gy44KJ44GELOOBguOBleOBkw0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgagNCivjgb/jgZrjgZ8s44KI44GX44GeDQor44G744KK44GILOOBhOOBj+OChA0KK+OBsuOBi+OBlSzjgobjgY3jgbLjgo0NCivjgYrjgZfjgZ/jgass44GC44Gk44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBj+OCieOBr+OBlyzjgZfjgpPjgZgNCivjgbLjgonjgbDjgoss44KI44GG44GTDQor44G144GY44GI44GgLOOCiOOBl+OBig0KK+OBqOOBluOCjyzjgZfjgZLjgbXjgb8NCivjgoTjgarjgZss44GP44G/44GTDQor44GP44G844GfLOOBmOOCh+OBmA0KK+OBvuOBv+OChCzjgojjgYbjgZMNCivjgobjga/jgonjgY4s44Go44G/44GKDQor44Gh44KH44Gq44KTLOOBguOBjeOBig0KK+OBv+OCiOOBlyzjgYvjgaTjgobjgY0NCivjga7jgZjjgb4s44G144G/44Gy44KNDQor44KC44KK44GV44GNLOOBvuOBleOChA0KK+OBk+OChOOBvizjgb7jgZXjgZ/jgYsNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GN44Gu44GX44GfLOOBmOOCheOCkw0KK+OBi+OCj+OCgOOCjSzjgb7jgZXjgb8NCivjgoLjgoos44GL44Ga44KG44GNDQor44Gy44KJ44GX44GfLOOBvuOBleOBn+OBiw0KK+OBi+OCj+OBl+OBvizjgb7jgZPjgagNCivjgbXjgovjgYvjgo8s44GL44Gk44G/DQor44GE44KT44Gn44KTLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBoCzjgZ/jgZHjgYoNCivjgaTjgY/jgaAs44G+44GT44GoDQor44GE44KP44GV44GNLOOBi+OBpOOBvw0KK+OBiuOBvuOBiCzjgZfjgZLjgosNCivjgZnjgZrjgY0s44KI44GX44GKDQor44Gv44KJLOOBvuOBleOBjQ0KK+OBleOBi+OBhCzjgb7jgZXjgb8NCivjgoLjgorjgoQs44KI44GX44G+44KNDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OBl+OBkuOBnyzjgojjgZfjga7jgooNCivjgYTjgZfjgYvjgo8s44G+44GT44GoDQor44Gf44GW44GNLOOBqOOBl+OBguOBjQ0KK+OBmeOBiOOBsuOCjSzjgbLjgo3jgY0NCivjgYvjga3jgaAs44KE44Gh44KIDQor44GZ44GI44Gy44KNLOOBleOBqOOBlw0KK+OBleOBleOBjSzjgZHjgYTjgYTjgaENCivjgbLjgoTjgb4s44GV44Gg44GNDQor44GN44Gp44GQ44GhLOOCiuOChw0KK+OBl+OBvuOBoCzjgYLjgY3jgagNCivjgb/jgoTjgZEs44G+44GV44Gy44GTDQor44KC44KKLOOChOOBmeOChuOBjQ0KK+OBl+OCieOBi+OCjyzjgb/jga7jgosNCivjgo/jgYvjgbDjgoTjgZcs44G+44GV44Gy44GoDQor44KE44G+44GX44GfLOOBiuOBleOCgA0KK+OBguOBvuOBrizjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYTjgaEs44G+44GV44Gy44GTDQor44GX44KT44GY44KHLOOBn+OBpOOCgOOBrQ0KK+OBi+OBleOBr+OCiSzjgYvjgZrjgb7jgZUNCivjgZ/jgarjgYss44Go44GX44Gy44KNDQor44GK44GP44GgLOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgbLjgafjga7jgooNCivjgYvjgo/jgZXjgY0s44GV44Gg44KADQor44GL44Go44GGLOOCgOOBreOChA0KK+OBhOOBoeOBmyzjgZPjgYbjgYTjgaENCivjgY3jgZ/jgYzjgo8s44GY44KF44Gr44GhDQor44KE44GZ44GELOOCiuOCheOBleOBjw0KK+OBiOOBoCzjgZ/jgaTjga/jgosNCivjga/jgoTjgZcs44KI44GX44Gy44KNDQor44Gq44GM44GELOOBqOOBl+OChuOBjQ0KK+OBqOOBruOCgOOCiSzjgbLjgajjgb8NCivjgZ/jgarjgYss44GY44KNDQor44GP44KK44Gw44KE44GXLOOBk+OBhuOBmA0KK+OBjeOCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjga/jgZzjgY0s44GL44Ga44GKDQor44GC44KT44GuLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OCiOOBlyzjgbLjgo3jgZ/jgYsNCivjgYLjgpPjgZbjgYQs44GR44GE44GTDQor44Gf44GL44Gv44GXLOOBpuOBpOOChA0KK+OBr+OCieOBrizjgZHjgYTjgZcNCivjgarjgYvjgYzjgo8s44GC44GN44KJDQor44Gr44GX44GL44KPLOOBqOOCguOBkw0KK+OBl+OBtuOChCzjgb7jgZXjgZMNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GC44Gg44GhLOOBvuOBleOBguOBjQ0KK+OBleOBj+OCieOBhCzjgZLjgpPjgbjjgYQNCivjgY/jgZXjga4s44KI44GX44Gu44G2DQor44G/44Gq44G/44Ge44GuLOOBqOOBv+OBi+OBmg0KK+OBpOOBmOOCgOOCiSzjgZ/jgaTjgZgNCivjgoTjgb7jgaAs44GV44Go44GXDQor44GL44Gk44GX44G+LOOBvuOBleOBruOCig0KK+OBk+OChOOBquOBiyzjga7jgbbjgobjgY0NCivjgZ/jgbDjgZ8s44KI44GX44Gu44KKDQor44GC44Gg44GhLOOBi+OBpOOBkw0KK+OBsuOCjeOBrizjga7jgbbjgobjgY0NCivjgaTjgZbjgY0s44GC44Gk44GXDQor44Gf44Gh44Gw44GqLOOCiOOBl+OBleOBqA0KK+OBueOBo+OBl+OChyzjgZfjgofjgZjjgo0NCivjgb7jgaTjgZfjgZ8s44GK44GV44KADQor44Gf44Gr44GQ44GhLOOBpOOBreOBig0KK+OBquOBi+OBqOOCgizjgYvjgaTjgojjgZcNCivjgavjgZfjgoDjgoks44KG44GN44GKDQor44G/44GG44KJLOOBi+OBmuOBsuOCjQ0KK+OBk+OCk+OBqSzjga7jgbbjgbLjgo0NCivjgb7jgaTjgYQs44Go44GX44Gy44KNDQor44G+44Gk44KC44GoLOOChOOBmeOBn+OBiw0KK+OBu+OCiuOBhCzjgajjgZfjgbLjgo0NCivjgb7jgZnjgoLjgags44G/44Gu44KLDQor44Gq44GL44GY44G+LOOBguOBjeOBqOOBlw0KK+OBjeOCgOOCiSzjgYTjgZXjgoANCivjgb/jgo8s44GX44GS44G/DQor44GE44GX44Gw44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOBkOOBoSzjgYLjgY3jgokNCivjgYTjgarjgbXjgY8s44KI44GX44Gy44KNDQor44KP44Gf44Gs44GNLOOBm+OBhOOBhOOBoQ0KK+OBsuOBkOOBoSzjgbLjgo3jgYLjgY0NCivjgYTjgZHjga4s44GX44GS44GC44GNDQor44GG44KB44Gv44KJLOOBi+OBmuOBvw0KK+OBruOBluOCjyzjgaHjgoXjgZ4NCivjgYTjgb7jgYQs44GR44KT44GX44KFDQor44Gf44GL44Gv44GXLOOCgOOBpOOBvw0KK+OBhOOBhOOBoCzjgbLjgo3jgZcNCivjgbXjgZjjgYvjgo8s44G+44GT44GoDQor44Gr44GX44GILOOBiuOBleOCgA0KK+OBk+OBmeOBkizjgb7jgZXjgY0NCivjgYrjgZ8s44Gy44KN44GL44GaDQor44Gu44GYLOOBsuOCjeOBlw0KK+OBk+OBvOOCiizjgaTjgajjgoANCivjgZnjgY7jgoTjgb4s44Gh44GL44GXDQor44GL44KP44GfLOOBkeOCk+OBhOOBoQ0KK+OBleOCgeOBl+OBvizjgbLjgo3jgobjgY0NCivjgZPjgoTjgb4s44KE44GZ44GXDQor44GI44KT44GL44GELOOBruOCiuOBsuOBlQ0KK+OBk+OCguOBoCzjgZjjgoXjgpMNCivjgYrjgYzjgo8s44KE44GZ44Gy44KNDQor44KE44G+44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBiOOBruOCguOBqCzjgY3jgY/jgYoNCivjgZ/jgYvjgaAs44G+44Gq44G2DQor44Gq44GL44G/44GeLOOBn+OBoOOBlw0KK+OBiuOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgYvjgb/jgbDjgoTjgZcs44GL44Gk44GYDQor44G144GY44KC44KKLOOBr+OCi+OBsuOBlQ0KK+OBj+OCjeOBoCzjgYvjgYrjgosNCivjgZXjgajjgYYs44Gf44Gg44Gy44GTDQor44KI44GX44KA44KJLOOBsuOCjeOBlw0KK+OCguOBn+OBhCzjgZjjgoXjgpPjgZMNCivjgoDjgonjgZ8s44GP44Gr44Gy44GTDQor44G/44KPLOOBv+OBjeOBig0KK+OBhOOBr+OCiSzjgojjgZfjgYLjgY0NCivjgYTjgb7jgYQs44Gm44Gk44Gy44GTDQor44Gy44GuLOOBv+OBreOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZ/jgYsNCivjgZvjgags44Gf44GL44GXDQor44GP44G+44GM44GELOOBpOOBqOOCgA0KK+OChOOBvuOBoCzjgZPjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44GL44Ga44G+44GVDQor44KE44GV44GLLOOCjOOBhOOBmA0KK+OBleOBqOOBhizjgbLjgZXjgZ/jgaANCivjgb/jgoTjgZ/jgZEs44KG44G/44GTDQor44G+44Gk44GG44KJLOOBsuOCjeOBlw0KK+OBvuOBpOOBl+OBnyzjgZvjgYTjgZgNCivjgYbjgonjgbks44G/44GN44GKDQor44GX44GM44GNLOOBl+OCk+OBhOOBoQ0KK+OBpuOCieOBoCzjgojjgorjgYgNCivjgYTjgo/jgoLjgags44Gf44GN44GKDQor44GE44Gu44GG44GILOOBn+OBj+OBmA0KK+OCguOBoeOBmuOBjSzjgajjgYrjgosNCivjgojjgZfjgZrjgb8s44Gq44GK44GoDQor44G/44GG44KJLOOBiOOBvw0KK+OBv+OBmuOBrizjgZ/jgYvjgZcNCivjgojjgZfjgYQs44GL44Ga44GKDQor44G144KL44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgojjgZgNCivjgZfjgonjgYTjgZcs44KE44GZ44Gy44KNDQor44GZ44GM44KP44KJLOOCiOOBl+OBig0KK+OBquOBi+OBhCzjgobjgYbjgZMNCivjga7jgbXjgZgs44Gy44KN44GXDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBj+OCjeOBoCzjgbLjgo3jga7jgbYNCivjgYTjgZHjgaAs44Gy44Go44GXDQor44GV44GMLOOBvuOBk+OBqA0KK+OBv+OChOOBi+OCjyzjgYTjgZXjgoANCivjgo/jgonjgZfjgaos44G+44GV44KI44GXDQor44GN44Gf44GM44KPLOOCiOOBl+OBsuOBqA0KK+OBhOOBvuOBhCzjgojjgZfjgYLjgY0NCivjgb/jgZXjgY0s44GY44KNDQor44GE44GX44GgLOOChuOBjeOBig0KK+OCiuOBj+OCiSzjgYjjgYTjgYTjgaENCivjgZfjgofjgZgs44G/44Gk44KLDQor44G144GP44Gq44GMLOOBn+OBi+OChuOBjQ0KK+OBj+OCjeOBjSzjgZjjgoXjgavjgaENCivjgb7jgZ/jgY0s44KI44GX44Gy44KNDQor44Gb44GN44GtLOOBl+OBkuOBguOBjQ0KK+OChOOBvuOBl+OBnyzjgbLjgafjgYoNCivjgZ/jgarjgYss44Gf44Gk44GKDQor44GK44GK44Gv44G+LOOBkeOBhOOBhOOBoQ0KK+OBiuOBpOOBvCzjgojjgZfjga/jgosNCivjgZ/jgYQs44Gy44KN44GL44GaDQor44Gk44KL44KELOOBjeOBhOOBoQ0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgb7jgZnjgb/jgaQs44GR44GE44GXDQor44GL44GZ44KELOOBhOOBj+OBsuOBlQ0KK+OCiOOBl+OBoCzjgZfjgZLjgosNCivjgYvjgo/jgoDjgoks44Gu44G244KG44GNDQor44Gv44KE44GXLOOBteOBv+OBguOBjQ0KK+OBj+OBq+OCguOBqCzjgbLjgo3jga7jgbYNCivjgYLjgonjgYvjgo8s44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBsuOBp+OBguOBjQ0KK+OBhOOBl+OBkOOCjSzjgZPjgYbjgYTjgaHjgo0NCivjga/jgoTjgb8s44KI44GX44GL44GaDQor44G/44Gq44G/44Ge44GuLOOBn+OBi+OBig0KK+OBleOBi+OBnyzjgZfjgofjgZbjgpMNCivjgYvjgo/jgoLjgags44G+44GV44Gv44KLDQor44KA44KJ44GK44GLLOOBv+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44Gy44KNDQor44Gu44KA44KJLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgbLjgZXjga/jgosNCivjgo/jgZ/jgarjgbks44G+44GV44Gu44KKDQor44GT44Gw44KE44GXLOOCiOOBsuOBoQ0KK+OBrOOCi+OBjSzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44GX44GS44GKDQor44GV44GE44Go44GGLOOBv+OBruOCiw0KK+OBsuOCieOBhCzjgbLjgafjgY0NCivjgY3jgoDjgoks44GP44Gr44Gy44GTDQor44GK44GPLOOBvuOBleOChuOBjQ0KK+OBr+OChOOBleOBiyzjgbLjgarjgZMNCivjgYLjgZXjga4s44G+44GV44Gu44KKDQor44G144GY44GV44GNLOOBm+OBhOOBmA0KK+OBguOBjeOCguOBqCzjgYvjgaTjgbLjgZMNCivjgZfjgb7jgaAs44GN44KT44GYDQor44G/44Ga44GL44G/LOOBv+OBruOCiw0KK+OBquOBi+OBjOOCjyzjgbXjgb/jgYvjgZoNCivjgZXjgajjgYYs44KE44GZ44Gu44KKDQor44GT44Gw44GX44KKLOOCiOOBl+OBig0KK+OBguOCieOBjSzjgb/jgaHjgYoNCivjgZnjgZrjgY0s44G+44GV44GL44GaDQor44Gr44GX44GnLOOBr+OCi+OBqg0KK+OBiuOBoeOBguOBhCzjgbLjgo3jgZcNCivjga7jgarjgYss44G+44GV44GL44GkDQor44KE44GZ44GELOOBsuOBp+OBsuOBkw0KK+OBk+OBr+OBnyzjgojjgbLjgaENCivjgb/jga7jgZfjgb4s44Gy44KN44GXDQor44Gm44KJ44GX44G+LOOCiOOBl+OChuOBjQ0KK+OChOOBj+OCjyzjgZ/jgYvjgZcNCivjgZnjgYzjgo/jgoks44KNDQor44G/44Gk44Gv44GXLOOChOOBmeOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjgaHjgocs44GX44KT44KEDQor44GV44Go44GGLOOCiuOBiw0KK+OBl+OBmuOBr+OCiSzjgb7jgZXjgYgNCivjga/jgoTjgZfjgYvjgo8s44G+44GV44Gv44KLDQor44Gr44KPLOOBqOOBiuOCiw0KK+OBv+OBiOOBrizjgabjgaTjgoQNCivjgZfjgb7jgaAs44GR44KT44GYDQor44Gq44GL44KA44KJLOOCiOOBl+OBig0KK+OBsuOCieOBrizjgarjgYrjgajjgZcNCivjgoTjgb7jgajjgoQs44Gb44GkDQor44Gk44Gu44GgLOOCiOOBl+OBsuOBlQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgZXjgYvjgY/jgoks44KK44KF44GYDQor44G+44Gk44GgLOOBkeOCk+OBhOOBoQ0KK+OBhOOBvuOCgOOCiSzjgYLjgaTjgYoNCivjgoTjgY7jga/jgZcs44GN44G/44Gy44GTDQor44GK44GO44GuLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgb/jgaHjgYoNCivjgbLjgYws44Gm44Gk44KNDQor44GV44GTLOOBruOCiuOBkw0KK+OBn+OBluOBjSzjgYLjgZrjgb8NCivjgYTjgYTjgaAs44KK44KH44GTDQor44GE44GE44GgLOOCjOOBhOOBkw0KK+OBvuOBpOOBkOOBvizjgZHjgpPjgZgNCivjgoDjgonjgZ8s44KI44GX44GKDQor44KE44GZ44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBl+OBv+OBmizjgbLjgafjgagNCivjgo/jgY/jgYQs44Go44GX44GKDQor44Gf44GL44Gv44GXLOOCiuOCh+OBsuOBoQ0KK+OBjeOBn+OBhCzjgYvjgZrjgbLjgZMNCivjgYLjgaDjgaEs44KE44GZ44Gu44KKDQor44Gv44Gq44G244GhLOOBruOBtuOBguOBjQ0KK+OBleOBqOOBhizjgY3jgofjgZMNCivjgYLjgonjgYQs44G+44GV44GC44GNDQor44Gf44GR44Gq44GLLOOBm+OBhOOBlw0KK+OBi+OBhCzjgarjgYrjgZMNCivjgYLjgYvjgaAs44Gy44KN44GKDQor44GP44Gr44GZ44GILOOCiOOBl+OBvuOBlQ0KK+OBvuOBiOOBi+OCjyzjgojjgZfjgYvjgZoNCivjgb/jgarjgb8s44Gk44Go44KADQor44Gf44GN44GM44G/LOOBn+OCguOBpA0KK+OBvuOBpOOBhCzjgb7jgZXjga/jgosNCivjgZfjgonjgYQs44KK44KH44GZ44GRDQor44Gf44GR44KI44GXLOOBl+OBkuOBuw0KK+OBn+OBi+OBoCzjgZHjgpMNCivjgZ/jgYvjgY4s44G+44GT44GoDQor44GP44Gp44GGLOOBsuOCjeOBlw0KK+OBl+OBvuOBoCzjgojjgZfjgZ/jgYsNCivjgYvjgajjgYYs44KI44GX44GKDQor44GX44GO44KHLOOBqOOBl+OBsuOBkw0KK+OBsuOCjeOBrizjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgY3jga7jgZfjgZ8s44Gv44GY44KBDQor44GX44G/44GaLOOBj+OBq+OBsuOCjQ0KK+OBl+OCgOOCiSzjgajjgZfjgbLjgZMNCivjgY/jgZXjgYvjgoos44GV44Go44GXDQor44GL44KL44G5LOOBv+OBu+OBkw0KK+OBvuOBpOOCguOBqCzjgZfjgZrjgYoNCivjgZfjgb7jgoDjgoks44Gy44KN44GC44GNDQor44GL44Gk44GL44KPLOOBguOBjeOCiQ0KK+OBhOOBmizjgb/jgaTjgZcNCivjgZXjgY/jgonjgoLjgags44Gy44Gn44KG44GNDQor44KC44KK44GfLOOBvuOBk+OBqA0KK+OBn+OBquOBuSzjgb7jgZXjgb/jgaENCivjga/jgaPjgajjgoos44Gb44GE44Gu44GZ44GRDQor44KK44KF44GULOOBjeOCiOOBn+OBiw0KK+OBiuOBvuOBpOOBluOCjyzjgZ/jgYvjgbLjgZMNCivjgYrjgajjgo8s44GN44KI44Gf44GLDQor44GT44Gg44G+LOOBruOBtuOBkw0KK+OBi+OChOOBl+OBvizjgYvjgZrjgYoNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GC44GNDQor44GP44Gr44GI44GgLOOBneOBiuOBmOOCgw0KK+OBkyzjgojjgZfjgYgNCivjgavjgZfjgoTjgb4s44GX44KH44GeDQor44KP44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OCguOBqCzjgb/jgbsNCivjgZXjgYTjgajjgYYs44Go44GX44Gv44KLDQor44Go44GX44G+LOOBquOBiuOChuOBjQ0KK+OBiuOBpOOBiyzjgajjgb7jgZUNCivjgYrjga4s44Gf44GL44GKDQor44GZ44Ga44GNLOOBhOOBleOBig0KK+OBleOBj+OCieOBhCzjgYTjgaTjgZgNCivjgYrjgZzjgY0s44GY44KNDQor44GK44GL44GgLOOBj+OBq+OBhOOBoQ0KK+OBiuOBjOOCjyzjgbXjgb/jgagNCivjgYTjgZHjgYzjgb8s44GX44KF44Gr44GhDQor44GT44G+44GkLOOBvuOBleOBr+OCiw0KK+OCiOOBl+OBhCzjgobjgY3jgojjgZcNCivjgbLjgonjga4s44Gb44GE44GE44GhDQor44Gf44GL44GZ44GLLOOChuOBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZfjgZLjgosNCivjgY/jgo/jgYgs44G+44GN44GKDQor44GL44Gt44G+44GkLOOBi+OBmuOBquOCig0KK+OBvuOBpOOBiizjgbLjgajjgb8NCivjgYTjgaks44Gy44KN44KEDQor44GE44GuLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgYvjgaTjga7jgooNCivjgYvjgb/jgoTjgb4s44KI44Gy44GhDQor44GT44GX44KC44GoLOOBu+OBk+OBjw0KK+OBiuOBjOOCj+OCiSzjgb7jgZXjgosNCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gq44GM44G+44GkLOOBn+OBi+OBlw0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgabjgonjgYos44G+44GV44G/44GkDQor44G744KK44GRLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgYrjgYzjgo8s44Gf44GL44Gu44KKDQor44G/44KE44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBiuOBmeOBvyzjgZfjgofjgYTjgaENCivjgYTjgo/jgbbjgaEs44Gy44KN44GXDQor44G+44Gk44GG44KJLOOChOOBmeOChuOBjQ0KK+OBleOCj+OBoSzjgY3jgY/jgYoNCivjgabjgonjgaAs44GL44Gt44Gy44GnDQor44GE44Gw44KE44GXLOOBkeOBhOOBhOOBoQ0KK+OBhOOCj+OBmyzjgZ/jgYvjgbLjgZMNCivjgYrjgYzjgo8s44GY44KF44Gr44GhDQor44GC44GdLOOBn+OBkeOBlw0KK+OBteOBj+OCguOBqCzjgZPjgYbjgZgNCivjgYTjgacs44GT44GG44GE44GhDQor44GL44KP44GV44GNLOOCiOOBl+OBruOBtg0KK+OBr+OCi+OBqizjgb7jgZPjgagNCivjgZ/jgZjjgb4s44GX44KT44GE44GhDQor44GL44Gq44KE44G+LOOBlOOCjQ0KK+OBn+OBquOBiyzjgojjgZgNCivjgb7jgaTjgZbjgY0s44GL44GK44KLDQor44GE44Gu44GV44GLLOOBn+OBi+OBlw0KK+OBiuOBl+OChOOBvizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Gu44G244GKDQor44GV44GV44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBk+OCguOCiizjga7jgbbjgoTjgZkNCivjgZ/jgZjjgb4s44Gf44Gk44GKDQor44GE44GR44GM44G/LOOBoeOBi+OBig0KK+OChOOBvuOBkOOBoSzjgZvjgaTjgZMNCivjgYvjgo/jgYvjgb8s44KG44Gf44GLDQor44GE44Gb44GNLOOBmOOCheOBq+OBoeOCjQ0KK+OBn+OBkeOBoCzjgZvjgYTjgZgNCivjgZ/jgYvjgoTjgZks44KE44GZ44Go44KCDQor44GL44KB44GgLOOBleOChuOCig0KK+OBteOBmOOBrizjgbXjgb/jgZ/jgYsNCivjgb/jgZXjgY0s44Gm44Gk44GYDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBiuOBjOOCjyzjgobjgY3jgbXjgb8NCivjgarjgYvjgZbjgo8s44KI44GYDQor44Gb44GNLOOCj+OBn+OCiw0KK+OCiOOBl+OBi+OCjyzjgb7jgZXjgYoNCivjgZ/jgYzjgo8s44GT44GG44GYDQor44G/44Gf44GrLOOCiOOBl+OBsuOBlQ0KK+OBmeOBiOOBnyzjgZ/jgYvjgZcNCivjgYTjgazjgYQs44Go44GX44KG44GNDQor44GK44GV44GgLOOBvuOBleOBguOBjQ0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GR44KT44GYDQor44GN44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBk+OBvuOBpCzjgZfjgZLjgY0NCivjgYLjgZXjgaAs44GI44GE44GZ44GRDQor44GL44KT44GW44GNLOOBsuOBp+OChuOBjQ0KK+OBhuOBmeOBhCzjgb7jgarjgbYNCivjgbXjgovjgoQs44Gf44GR44Go44GXDQor44KI44GR44KA44KJLOOBvuOBk+OBqA0KK+OCiOOBk+OBiCzjgoTjgZnjga7jgooNCivjgYLjgYvjgYTjgo8s44Go44GX44GC44GNDQor44G144GP44GX44G+LOOBk+OBhuOBmA0KK+OChOOBmOOBvizjgbLjgafjgajjgZcNCivjga/jgoks44KE44GZ44GP44GrDQor44GN44GX44GgLOOBn+OBj+OChA0KK+OBj+OBvCzjgZ/jgYvjgZcNCivjgYvjgZ/jgY7jgoos44Go44GX44Gy44GTDQor44GE44Gh44GELOOBguOBjeOBsuOBqA0KK+OBvuOBpOOBjSzjgZHjgpMNCivjgo/jgZHjgbks44GV44Go44GXDQor44G+44KL44KE44G+LOOBi+OBpOOBig0KK+OBpOOBsOOBjSzjgb7jgZPjgagNCivjgZXjga4s44KK44KH44GZ44GRDQor44G/44KE44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OChOOBvizjgojjgbLjgaHjgo0NCivjgYbjgYjjgoDjgoks44KE44GZ44G+44GVDQor44GP44KP44GL44GpLOOCiOOBl+OBteOBvw0KK+OBj+OBq+OBvuOBpCzjgajjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44G144G/44KI44GXDQor44Go44G/44GfLOOCiOOBl+OBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgbLjgZMNCivjgY/jganjgYYs44Gy44KN44KE44GZDQor44GK44G244GhLOOChOOBmeOBlw0KK+OCiOOBl+OBi+OCjyzjgb/jgobjgY0NCivjgYvjgZLjgoTjgb4s44KG44GeDQor44Go44GgLOOBv+OBpOOCiw0KK+OBn+OBi+OBr+OCiSzjgoTjgZnjga7jgooNCivjgb7jgaTjgZfjgZ8s44G144G/44KEDQor44GT44Gg44GE44KJLOOBqOOBl+OBguOBjQ0KK+OBl+OCk+OBi+OBhCzjgZHjgpPjgZgNCivjgabjgonjgaAs44Gy44Gn44GKDQor44GL44KP44GN44GfLOOBl+OBkuOCiw0KK+OBv+OBhuOCiSzjgbLjgo3jgZcNCivjgYLjgbks44G+44GV44Go44GXDQor44Gr44GX44GL44KPLOOBvuOBleOBguOBjQ0KK+OBu+OBneOBoCzjgb7jgZXjgosNCivjgb7jgZnjgaAs44KK44GNDQor44GL44GW44G+LOOBvuOBleOCiw0KK+OBguOCieOBvuOBjSzjga7jgorjgobjgY0NCivjgo/jgZ/jgazjgY0s44GL44Ga44Gu44KKDQor44GV44GL44KC44GoLOOBguOBpOOBsuOBkw0KK+OBguOBvuOBjOOBvyzjgojjgZfjgabjgosNCivjgZPjga4s44Gm44KL44Gy44GTDQor44GK44GP44GgLOOBqOOBiuOCiw0KK+OBiuOBr+OBjyzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44GR44GE44GE44GhDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OBhuOBl+OChOOBvizjgZfjgpPjgZgNCivjgoTjgZfjgY0s44Gy44Gn44GXDQor44GN44Gu44GbLOOCguOBqOOBig0KK+OCj+OBi+OChOOBvizjgb7jgZXjgbLjgagNCivjgYTjgb7jgYQs44Gv44GY44KBDQor44G+44GI44GgLOOBleOBquOBiA0KK+OBvuOBpOOBl+OBnyzjgbLjgajjgZcNCivjgbLjgonjgZDjgaEs44KG44GN44Gy44KNDQor44KP44GgLOOBhOOCj+OBig0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gf44GR44GXDQor44G+44Gk44KC44GoLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgY4NCivjgZ/jgY3jgZ8s44Gk44KI44GXDQor44G+44GZ44GgLOOBl+OCkw0KK+OBv+OChOOBhuOBoSzjgYTjgZXjgYoNCivjgZfjgoDjgoks44KI44GX44Gu44KKDQor44G+44Gk44GELOOBv+OBpOOBig0KK+OBr+OCieOBr+OBnyzjgojjgZfjgbXjgb8NCivjgbLjgZXjgZ/jgass44KG44Gy44GhDQor44GL44GM44G/LOOChuOBjeOBig0KK+OCiOOBl+OCgOOCiSzjgYLjgYTjgYTjgaHjgo3jgYYNCivjgYrjgaTjgYss44GX44KF44Gr44GhDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBsuOCieOBrizjgb7jgZXjgobjgY0NCivjgZ/jgZHjgZnjgYgs44GN44KI44GXDQor44Gr44GX44GuLOOBiOOBhOOBmA0KK+OBiuOBpOOBiyzjgbLjgo3jgZcNCivjgYrjgaAs44GC44Gk44GTDQor44GX44G/44GaLOOBneOBsuOBoQ0KK+OBr+OBvuOCguOBqCzjgZfjgpPjgYTjgaENCivjgb/jgoTjgb7jgYgs44G/44GN44GKDQor44Gq44GM44GX44G+LOOBmOOCheOBq+OBoeOCjQ0KK+OBv+OBpOOCgSzjgojjgZfjgagNCivjgYvjgZTjgZ/jgass44Go44KC44GTDQor44KI44GT44KE44G+LOOBvuOChuOBvw0KK+OBleOBi+OBnyzjgZXjgYvjgYgNCivjgYrjgYTjgY/jgbws44Gf44GN44GTDQor44GP44KJ44KC44GhLOOBqOOBv+OBn+OCjeOBhg0KK+OBguOCk+OBluOBhCzjgYLjgaTjgZcNCivjgbXjgY/jgZfjgb4s44G+44GV44Gk44GQDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBhOOBqOOBhCzjgZHjgYTjgZQNCivjgbvjgZfjga4s44GX44KT44GE44GhDQor44GT44GE44GnLOOBl+OChQ0KK+OBiuOBluOBjSzjgabjgaTjgoQNCivjgZvjgZjjgoIs44KI44GX44KG44GNDQor44GZ44Gp44GGLOOCgeOBkOOBvw0KK+OBi+OBmOOCj+OCiSzjgZfjgpPjgZgNCivjgZnjgZrjgY0s44KG44Gf44GLDQor44G744GX44GuLOOBn+OBi+OCiOOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgarjgooNCivjgoLjgorjgZ8s44GI44GE44GYDQor44KE44G+44GW44GNLOOBk+OBhuOBmA0KK+OBiuOBj+OBjOOCjyzjgojjgZfjgYvjgZoNCivjgarjgYzjga/jgb4s44Gf44GL44G144G/DQor44KI44GX44KA44KJLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgYLjgY3jgbLjgacNCivjgbvjgYvjgZ7jga4s44Gy44KN44KEDQor44GC44G5LOOBvuOBleOChuOBjQ0KK+OBquOBjOOBhCzjgorjgYgNCivjgajjgYzjgZcs44Gy44Go44G/DQor44KE44GW44GNLOOChuOCiuOBkw0KK+OChOOBvuOBhuOBoSzjgb/jgaHjgZMNCivjgb/jgZXjgY0s44Gy44KN44Gy44GTDQor44KI44GX44GgLOOBmOOCheOCkw0KK+OBquOBi+OCguOBqCzjgb7jgZXjgb/jgaENCivjgZfjga7jga/jgoks44G+44GV44G/44GkDQor44Gq44GL44Gr44GXLOOBv+OBqeOCig0KK+OChOOBmOOBvizjgYvjgaTjgbLjgo0NCivjgajjgojjgbXjgY8s44Gv44KL44GTDQor44Gf44GL44GX44G+LOOCiOOBl+OBguOBjQ0KK+OBteOBl+OBq+OBlyzjgYLjgY3jgYvjgZoNCivjgoDjgYvjgYQs44Go44GX44Gy44GTDQor44Gr44GX44KA44KJLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBsOOBnyzjgbLjgo3jgobjgY0NCivjgoDjgYvjgYjjgaAs44GC44GN44G/44GkDQor44GX44Gb44GNLOOBn+OBi+OBqOOBlw0KK+OBi+OBn+OBiuOBiyzjgYLjgaTjgbLjgZUNCivjgarjgYTjgajjgYYs44Go44GX44Gk44GQDQor44G/44GoLOOBk+OBhuOBmA0KK+OBiuOBq+OBlyzjgajjgZfjgbLjgagNCivjgojjgZPjgoTjgb4s44Gm44GE44GeDQor44Gq44GL44KA44KJLOOBsuOBp+OBjQ0KK+OBhOOBluOCjyzjgarjgYrjgY0NCivjgZ/jgavjgYzjgo8s44GX44KT44GYDQor44GZ44GO44GfLOOBl+OBkuOCiw0KK+OBiuOBl+OBnyzjgaTjga3jgYvjgZoNCivjgZfjgb7jgaAs44GC44GN44KJDQor44KE44G+44KA44KJLOOBjeOCiOOBlw0KK+OBteOBj+OBiuOBiyzjgobjgYbjgZgNCivjgoTjgarjgoos44GL44Gk44GYDQor44GZ44Ga44GNLOOBjeOBv+OBiA0KK+OBleOBi+OBhCzjgabjgaTjgoQNCivjgoTjgb7jgaAs44Gy44KN44KG44GXDQor44KE44G+44GT44GXLOOBleOBqOOBlw0KK+OBruOCguOBqCzjgZXjgajjgosNCivjgZ/jgZHjgZfjgZ8s44GE44Gj44GX44KTDQor44G/44Gu44GgLOOCiOOBl+OBsuOBpw0KK+OBguOBleOBhCzjgbLjgo3jgY0NCivjgoDjga3jgoTjgZks44KE44GZ44GoDQor44GL44KP44Gr44GXLOOBqOOBl+OCjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44Gf44Gk44GC44GNDQor44GC44GV44GK44GLLOOBsuOBleOBruOCig0KK+OBjeOBruOBl+OBnyzjgajjgb/jgYgNCivjgb/jgb4s44KG44GLDQor44G144GP44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OBi+OBmOOChOOBvizjgajjgoLjgZMNCivjgoTjgb7jgZbjgY0s44GT44GG44GE44GhDQor44GV44Go44GGLOOBvuOBleOBlw0KK+OBi+OCj+OBuSzjgbLjgo3jgYLjgY0NCivjgb7jgovjgoTjgb4s44GX44KT44GYDQor44GK44GM44KJ44GtLOOBleOBqOOCiw0KK+OBqeOBhCzjgobjgY3jgbLjgo0NCivjgZ/jgarjgYss44GX44GS44KLDQor44GK44GO44GX44G+LOOBqOOBl+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgoLjgajjgY0NCivjgbXjgovjgoQs44GX44GS44KG44GNDQor44G144GP44GELOOBl+OBuw0KK+OBvuOBmeOBoCzjgbLjgafjgobjgY0NCivjgbvjgpPjgaAs44G+44GT44GoDQor44Gq44GL44Gr44GXLOOChOOBmeOBsuOBlQ0KK+OBv+OChOOBvuOBiCzjgajjgZfjgbLjgZMNCivjgYrjgYvjga4s44Gy44Gn44Gu44G2DQor44Gw44GwLOOBv+OBjeOBng0KK+OBoOOBkeOChOOBvizjgY3jgojjgb8NCivjgoTjgb7jgZDjgaEs44GX44GS44GKDQor44Gv44KE44GXLOOCiOOBl+OBkw0KK+OBqOOBv+OBmuOBiyzjgZjjgoXjgavjgaENCivjgarjgYvjgavjgZcs44Go44GX44KEDQor44GC44G5LOOBv+OBpOOBsuOBkw0KK+OBguOBiuOChOOBjizjga7jgbbjgojjgZcNCivjgabjgonjgo/jgY0s44Gu44G244GTDQor44GL44Gf44GO44KKLOOChuOBng0KK+OBquOBi+OBjOOCjyzjgb/jgaTjgYoNCivjgZPjgbDjgoTjgZcs44GK44GV44KADQor44GG44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgbLjgo3jga7jgooNCivjga/jgoTjgZXjgYss44Gk44KI44GXDQor44GN44KA44KJLOOBn+OBi+OBsuOCjQ0KK+OBlOOBqCzjgobjgb/jgZMNCivjgZfjgoDjgoks44Gq44GK44Gf44GLDQor44Gb44GNLOOBquOBiuOBsuOBkw0KK+OBguOBhOOBluOCjyzjgbLjgafjgYoNCivjga7jgoDjgoks44KI44Gy44Gh44KNDQor44GL44KT44GgLOOBleOBj+OBkw0KK+OBhuOCieOBhCzjgoTjgZnjgYoNCivjgoLjgajjgoTjgb4s44Go44GX44KNDQor44GL44G/44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBhCzjga/jgovjgbLjgZUNCivjgYLjgonjgYQs44Gv44GY44KBDQor44GV44GE44Go44GGLOOBsuOCjeOBkw0KK+OBvuOBjeOBr+OCiSzjgY3jgojjgZMNCivjgYrjgo/jgY8s44Gu44G844KLDQor44KC44Gh44Ga44GNLOOBvuOBleOBig0KK+OBr+OCk+OBjOOBhCzjgYvjgZrjgbLjgo0NCivjgYTjga7jgYbjgYgs44Gy44KN44G/DQor44Gq44GM44GE44GXLOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OCguOBqCzjgZ/jgaTjgb8NCivjgaTjgaHjgoQs44Gy44KN44GXDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBu+OCk+OBmOOChyzjgZHjgYTjgZ4NCivjgYTjgo/jgYQs44Go44GX44GL44GaDQor44GP44G8LOOBguOBjeOBig0KK+OBr+OBk+OBhCzjgZPjgZnjgZENCivjgo/jgZ/jgarjgbks44GX44KF44GYDQor44GZ44GO44GfLOOBvuOBmeOBvw0KK+OBquOBi+OCgOOCiSzjgojjgZfjga/jgosNCivjgYvjgonjgZXjgY0s44Gm44Gk44GKDQor44Gu44KK44G+44GkLOOBvuOBleOChuOBjQ0KK+OBj+OBmeOCguOBqCzjgajjgoLjgarjgooNCivjgavjgZfjgoDjgoks44KI44Gy44GhDQor44GT44GZ44GSLOOBvuOBleOBlw0KK+OBteOBj+OBv+OBpCzjgYrjgZXjgoANCivjgoTjgb7jgZDjgaEs44G+44GV44Gy44KNDQor44GE44GX44GQ44KNLOOCiOOBl+OBsuOCjQ0KK+OBqOOBj+OBoCzjgYvjgZrjgbLjgagNCivjgYLjgorjgajjgb8s44GL44Gk44G/DQor44Gy44KE44G+LOOBguOBjeOCiQ0KK+OBsuOCjeOBmyzjgZfjgofjgbLjgaENCivjgavjgZfjgaAs44Gf44GL44GXDQor44Gv44Gj44Go44KKLOOBl+OCh+OBlA0KK+OBsuOCieOBsOOChOOBlyzjgZ/jgaTjgoQNCivjga/jgonjgZfjgb4s44G+44GV44GKDQor44Gv44KJLOOBvuOBleOBig0KK+OBr+OBvuOBrizjga7jgorjgYoNCivjga/jgb7jgaAs44Go44GX44G/44GkDQor44Gv44GX44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjgbLjgZDjgaEs44G/44Gk44Gy44GTDQor44Gy44KJ44GuLOOBn+OBi+OCiOOBlw0KK+OBu+OCk+OBvizjgZXjgajjgZcNCivjga/jgovjgb7jgZcs44G+44GV44GqDQor44Gv44GX44KC44GoLOOChOOBmeOBvw0KK+OBsuOBoCzjgZXjgbbjgo0NCivjgbLjgonjgZnjgYss44GL44Ga44G/DQor44Gv44GO44KP44KJLOOBquOBiuOChA0KK+OBr+OBvuOBoCzjgZjjgaTjgo0NCivjga/jgZfjgoLjgags44GX44KT44GE44GhDQor44G744KT44G+LOOBvuOBleOBqOOBlw0KK+OBu+OBi+OCiizjgajjgYrjgosNCivjga/jgonjgaAs44KI44GX44G/DQor44Gv44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBu+OCiuOBuSzjgYjjgYTjgZgNCivjga/jgZfjgoLjgags44Gf44G/44GKDQor44Gv44Gb44GM44KPLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBuSzjgb7jgZXjgajjgZcNCivjga/jgZfjgoLjgags44GL44Gk44Gy44GTDQor44Gy44KJ44GuLOOBsuOBleOBmA0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgb8NCivjgbLjgZjjgYvjgZ8s44KG44Gf44GLDQor44GK44Gs44G+LOOBvuOBleOBr+OCiw0KK+OBr+OBtuOBpCzjgojjgZfjgb7jgZUNCivjgbLjgaDjgYss44KE44GZ44GKDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBr+OBvuOBrizjgaHjgofjgZgNCivjgbLjgZfjgazjgb4s44GT44GG44GE44GhDQor44Gv44KJLOOBjeOBv+OBiA0KK+OBr+OBquOBjSzjgb/jgaHjga/jgosNCivjga/jgoks44G/44KI44GXDQor44Gv44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBquOBoCzjgb/jgaHjgZMNCivjgbLjgonjgoTjgarjgY4s44GR44KT44GYDQor44G744KK44GL44KPLOOBi+OBmuOBig0KK+OBu+OCiuOBi+OCjyzjgb7jgZXjgYoNCivjga/jgZfjgoLjgags44Gf44Gg44GL44GaDQor44Gv44GfLOOBv+OBjeOBig0KK+OBsuOCieOBhCzjgYvjgZrjgb8NCivjga/jgonjgZDjgaEs44G+44GV44KG44GNDQor44Gy44KJ44GKLOOBkeOCkw0KK+OBr+OBl+OBmuOCgSzjgaTjgY7jgYgNCivjgaTjgZgs44GE44GV44GKDQor44GV44GP44KJ44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBguOBuSzjgYvjgZrjgbLjgo0NCivjgYLjgbks44GN44KT44KEDQor44GC44G5LOOBquOBiuOBjQ0KK+OBguOBuSzjga7jgbbjgobjgY0NCivjgYLjgbks44KI44GX44G/DQor44GC44G5LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOBi+OBjizjgZHjgpPjgZgNCivjgYrjgYvjgoLjgags44Gf44GR44GKDQor44GI44KT44GpLOOBvuOBleOBruOCig0KK+OBguOBi+OBhOOBlyzjga7jgbbjgZ/jgYsNCivjgavjgZfjgaos44G/44Gk44Gu44KKDQor44GC44GN44KC44GoLOOBkeOCkw0KK+OBguOBjeOBmuOBjSzjgYLjgY3jgZMNCivjgbLjgonjgbDjgoTjgZcs44Go44GX44Gy44GTDQor44GC44KB44G/44KELOOBmOOCheOCkw0KK+OBguOBv+OBrizjgoTjgZnjgb7jgZUNCivjgYLjgarjgb8s44KG44Gy44GhDQor44GC44Gq44GW44KPLOOBi+OCk+OBnw0KK+OBguOCk+OBqeOBhizjgb7jgarjgbYNCivjgYLjgpPjganjgYYs44Gy44Gn44Go44GXDQor44GC44GK44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBguOBiuOChOOBvizjgb7jgZXjgbLjgo0NCivjgYLjgYrjgoTjgb4s44Gy44KN44GfDQor44GC44KJ44GELOOBk+OBhuOBmA0KK+OBguOCieOBhCzjgYrjgZXjgoANCivjgYLjgonjgYQs44Gf44GL44GKDQor44GC44KJ44GELOOChOOBmeOBsuOBqA0KK+OBguOCieOBhCzjgZfjgZrjgYoNCivjgYLjgonjgY0s44G/44Gh44GTDQor44GZ44GM44KP44KJLOOBpOOBreOBr+OCiw0KK+OBguOBleOBsizjgb7jgZPjgagNCivjgYLjgZXjgY/jgoks44Go44GX44GKDQor44GC44GV44G/LOOBvuOBleOBqOOBlw0KK+OBguOBleOCgOOCiSzjgZfjgZLjgb7jgZUNCivjgoTjgb7jgZfjgaos44GC44GN44KJDQor44GC44GV44KKLOOBguOBjeOBsuOCjQ0KK+OBguOBleOBmizjgb7jgZXjgYvjgZoNCivjgYLjgaTjgb8s44GL44GK44KLDQor44Gw44KTLOOChuOBhuOBnuOBhg0KK+OBueOBo+OBl+OChyzjgbLjgo3jgY0NCivjgaHjgbAs44G+44GV44GNDQor44Gh44GL44GN44KILOOBk+OBhuOBmA0KK+OBoeOCgOOCiSzjgZfjgpPjgYTjgaENCivjganjgbDjgZcs44GT44GG44GE44GhDQor44GI44Gw44GXLOOBvuOBleOBlw0KK+OBiOOBs+OBr+OCiSzjgb7jgZPjgagNCivjgYjjgYzjgb8s44Gf44G+44GKDQor44GI44GQ44GhLOOBvuOBleOChOOBmQ0KK+OBiOOBkOOBoSzjgb/jgobjgY0NCivjgYjjgZjjgoos44Go44KC44G/DQor44GI44KT44GpLOOBl+OBkuOCiw0KK+OBiOOCk+OBqSzjgZ/jgYvjgZcNCivjgYjjga7jgoLjgags44G144G/44Go44GXDQor44G144Gh44GuLOOBi+OBpOOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44G+44GV44GTDQor44GE44GX44GELOOBqOOCguOBkw0KK+OCgOOCieOChOOBvizjgojjgZfjgobjgY0NCivjgbXjgZjjgYvjgZ8s44Gy44KN44KE44GZDQor44G144GY44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBvuOCiyzjgYLjgZMNCivjgbXjgZjjgoLjgags44Gq44GK44Gy44GVDQor44G144GY44KC44GoLOOBn+OBv+OBiA0KK+OBteOBmOOCguOBqCzjgZ/jgZHjgYoNCivjgbXjgZjjga4s44GX44KH44G444GEDQor44G144GY44GKLOOCiOOBl+OBteOBvw0KK+OBteOBmOOBleOBiyzjgobjgY3jgYoNCivjgbXjgZjjgZXjgo8s44KG44GN44Gf44GLDQor44G144GY44GV44KPLOOBleOBqOOBlw0KK+OBteOBmOOBnyzjgZnjgZDjgosNCivjgbXjgZjjgZ8s44G+44KG44G/DQor44G144GY44KP44KJLOOBn+OBpOOBig0KK+OBteOBmOOCj+OCiSzjgojjgZfjgaTjgZANCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G144GL44GgLOOBiuOBleOCgA0KK+OBteOBi+OBjOOCjyzjgabjgaQNCivjgbXjgYvjga4s44GY44KF44KTDQor44G144GL44KPLOOBqOOBl+OBsuOBlQ0KK+OBteOBi+OChCzjgZ/jgaTjgoQNCivjgbXjgYvjgZbjgo8s44GL44Ga44Go44KCDQor44G144GP44GgLOOBsuOBleOBqA0KK+OBteOBj+OBhCzjgY/jgavjgbLjgo0NCivjgbXjgY/jgoLjgags44Gf44Gg44KI44GXDQor44G144GP44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBteOBj+OCguOBqCzjgoTjgZnjgajjgoINCivjgbXjgY/jgoLjgags44Go44GX44GC44GNDQor44G144GP44GX44G+LOOBleOBqOOBlw0KK+OBteOBj+OBqOOBvyzjga7jgorjgYoNCivjgbXjgarjgY0s44Gf44GL44Gy44KNDQor44G144KL44GV44KPLOOBvuOBleOChuOBjQ0KK+OBguOBs+OBkyzjgb7jgZXjgobjgY0NCivjgbXjgZss44Go44GK44KLDQor44G144Gb44GM44KPLOOBvuOBleOChuOBjQ0KK+OBteOBl+OBvyzjgZfjgpPjgZfjgocNCivjgY7jgb4s44G144G/44Gy44KNDQor44GU44G/LOOBguOBpOOBsuOCjQ0KK+OBlOOBqCzjgZHjgYQNCivjgZTjgags44Gb44GE44GYDQor44GU44GoLOOBqOOBl+OBi+OBmg0KK+OBkOOCk+OBmCzjgbLjgajjgZcNCivjga/jgY7jgo/jgoks44GT44GG44GYDQor44Gv44GO44KP44KJLOOBsuOCjeOBlw0KK+OBr+OBhOOBrizjgbLjgo3jgZ/jgYsNCivjga/jgYvjgb7jgaAs44Gy44KN44GC44GNDQor44Gv44G+44GgLOOBvuOBleOBsuOBkw0KK+OBr+OBvuOBoCzjgZnjgZnjgoANCivjga/jgb7jgZDjgaEs44Gy44KN44KG44GNDQor44Gv44KJLOOCiuOCheOBleOBjw0KK+OBr+OCiSzjgZfjgpPjgZgNCivjga/jgoks44Gf44KN44GGDQor44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBr+OCieOBoCzjga7jgorjgYoNCivjga/jgonjgaAs44KI44GX44Gq44GKDQor44Gv44KJ44GgLOOBquOBiuOBsuOBlQ0KK+OBr+OCieOBkyzjgYvjgZrjgojjgZcNCivjga/jgovjgaos44G+44GT44GoDQor44Gv44Gb44GM44KPLOOBruOCiuOBkw0KK+OBiuOBl+OBvizjgajjgoLjgYLjgY0NCivjga/jgZfjgoLjgags44Gy44GV44Gu44KKDQor44Gv44Gf44GuLOOBv+OCiA0KK+OBr+OBn+OBluOCjyzjgojjgZfjgZMNCivjga/jgags44GE44Gh44KN44GGDQor44Gv44Gk44G/LOOBsuOBleOCiOOBlw0KK+OBr+OBo+OBqOOCiizjga7jgorjgobjgY0NCivjga/jgoTjgYvjgo8s44KG44GNDQor44Gv44KE44GL44KPLOOChuOBjeOBig0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZgNCivjga/jgoTjga4s44GX44KT44GE44GhDQor44Gv44KE44GbLOOBjeOCiOOBn+OBiw0KK+OBr+OChOOBlyzjgY/jgavjgbLjgZMNCivjga/jgoTjgZcs44G+44GV44Gq44KKDQor44Gv44KE44GXLOOBvuOBmeOBvw0KK+OBr+OChOOBlyzjgb/jgarjgZMNCivjga/jgoTjgZcs44Gu44KK44GTDQor44GE44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBr+OChOOBpCzjgZ/jgYvjgYLjgY0NCivjgbLjgYzjgY0s44Gf44GP44KEDQor44Gy44GM44GXLOOBguOBjeOCiQ0KK+OBsuOBrizjgZ/jgYvjgZcNCivjgbLjgonjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44Gy44KJ44GuLOOBi+OBmuOBv+OBoQ0KK+OBsuOCieOBrizjgb7jgZXjgZcNCivjgbLjgonjgYrjgYss44GC44Ga44GVDQor44Gv44KJ44GV44GNLOOBqOOCguOChuOBjQ0KK+OBsuOCieOBpizjgajjgZfjgbLjgo0NCivjgbLjgonjgoTjgb4s44GC44Gk44KNDQor44Gy44KN44GILOOBqOOBl+OBsuOBkw0KK+OBsuOCjeOBi+OCjyzjgYLjgaTjgZcNCivjgbLjgo3jgZss44GX44KT44GUDQor44Gy44KN44GXLOOBn+OBi+OBr+OCiw0KK+OBsuOBleOCgOOBrSzjgYvjgYrjgooNCivjgbvjgpPjgaAs44KI44GX44Gy44KNDQor44G744KK44GL44KPLOOBkeOBhOOBmA0KK+OBu+OCiuOBk+OBlyzjgZvjgYTjgZ8NCivjgbvjgorjgZPjgZcs44G+44GV44KI44GXDQor44G744GXLOOBsuOCjeOBlw0KK+OBu+OBl+OBkyzjgbLjgafjgYLjgY0NCivjgbLjgonjgZXjgo8s44GZ44G/44GTDQor44G744Gd44GELOOBkeOCk+OBmA0KK+OBsuOCh+OBqSzjgarjgYrjgagNCivjgbLjgofjgaks44GL44Ga44Gy44KNDQor44GE44G5LOOBkeOBhOOBhOOBoQ0KK+OBhOOBoeOBi+OCjyzjgb7jgobjgb8NCivjgYTjgaHjgYvjgo8s44Gf44Gk44KEDQor44GE44Gh44GL44KPLOOBsuOBp+OBig0KK+OBhOOBoeOBruOBv+OChCzjgajjgYrjgosNCivjgYTjgacs44KI44GX44GL44GaDQor44GE44GnLOOBl+OCheOBsuOBoQ0KK+OBhOOBjOOCieOBlyzjgbLjgafjgZ/jgYsNCivjgYTjgYzjgo8s44Gu44G244GTDQor44GE44GQ44GhLOOBkeOBhOOBkw0KK+OBhOOBhOOBoCzjgZPjgYbjgYTjgaENCivjgYTjgYTjgaAs44Gu44KK44GC44GNDQor44GE44GE44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBhOOBhOOBpOOBiyzjgbLjgo3jgobjgY0NCivjgYTjgYTjgZrjgYss44KG44GN44GKDQor44GE44GE44Ga44GLLOOBvuOBleOBsuOCjQ0KK+OBhOOBi+OCieOBlyzjgZXjgaDjgobjgY0NCivjgYTjgZHjgaAs44GX44KT44GE44GhDQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBhOOBkeOBoCzjgobjgZnjgZENCivjgYTjgZHjgaAs44GX44KT44GE44GhDQor44GE44GR44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBv+OBpOOCguOBqCzjgb7jgZXjgosNCivjgYTjgZHjgoTjgb4s44KG44G/DQor44GE44GR44GWLOOBv+OBpOOCiw0KK+OBhOOBkeOBluOBjSzjgb/jgaTjgobjgY0NCivjgYTjgY/jgZ8s44KG44KKDQor44GE44G+44GELOOChOOBmeOChuOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgY3jgojjgZcNCivjgYTjgb7jgoDjgoks44GX44KT44KEDQor44GE44G+44KA44KJLOOBl+OCheOBsuOBoQ0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgZcNCivjgYTjgarjgYzjgY0s44GT44GG44GE44GhDQor44GE44Gq44GM44GNLOOBruOBtuOBig0KK+OBhOOBquOBjOOCjyzjgYvjgZrjga7jgooNCivjgYTjgarjgbss44GC44KK44GVDQor44GE44Gq44G/LOOBqOOCguOBjQ0KK+OBhOOBquOBpOOBkCzjgarjgYrjgY0NCivjgYTjgarjgojjgZcs44G+44GV44G144G/DQor44GE44GuLOOBmOOCheOCkw0KK+OBhOOBruOBiuOBiyzjgbLjgafjgagNCivjgYTjga7jgYbjgYgs44Gy44KN44GKDQor44GE44Gu44GG44GILOOBsuOCjeOBn+OBiw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GE44Gu44GG44GILOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjgabjgovjgobjgY0NCivjgYTjga7jgYbjgYgs44KI44GX44Gu44KKDQor44GE44KK44GV44KPLOOBruOCiuOBsuOCjQ0KK+OBhOOBmyzjgbLjgo3jgobjgY0NCivjgYTjgZvjgY0s44GI44GE44KKDQor44GE44GX44GgLOOBqOOCguOBsuOCjQ0KK+OBhOOBl+OBoCzjgYvjgYrjgooNCivjgYrjgYvjgaAs44GL44Gk44KG44GNDQor44GE44GX44GELOOBn+OBpOOChA0KK+OChOOBvuOBoCzjgb7jgZXjgosNCivjgZnjgY7jga/jgoks44Gy44KN44G/44GhDQor44GE44GX44GL44KPLOOBv+OBleOBig0KK+OBhOOBl+OBi+OCjyzjgZ/jgaTjgYoNCivjgYTjgZfjgYvjgo8s44GL44Ga44GoDQor44GE44GX44G+44KLLOOBl+OCk+OChA0KK+OBhOOBl+OCguOBqCzjgZ/jgYvjgobjgY0NCivjgYTjgZfjgoLjgags44Gf44GR44GXDQor44GE44GX44KC44GoLOOBsuOBp+OBi+OBmg0KK+OBhOOBl+OBrizjgZ/jgYvjgZcNCivjgYTjgZfjgaTjgYss44Gf44GL44GC44GNDQor44GE44GX44KP44GfLOOChuOBsuOBoQ0KK+OBhOOBl+OCj+OBnyzjgY3jgY/jgYoNCivjgbLjgonjgbDjgoTjgZcs44GC44GN44Gy44GTDQor44GE44GX44GW44GNLOOChuOBjeOBig0KK+OBhOOBl+OBmuOBiyzjgYvjgaTjgoQNCivjgYTjgZ3jgaAs44KE44GZ44Gu44KKDQor44Go44GK44GLLOOBpOOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjga/jgovjgb8NCivjgYTjgajjgYYs44GI44GE44GYDQor44GE44Go44GGLOOBsuOCjeOBtuOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgZ/jgYsNCivjgYTjgajjgYYs44GL44Gk44KJDQor44GE44Go44GGLOOBvuOBleOBkw0KK+OBhOOBoeOChOOBquOBjizjgb7jgZXjgb8NCivjgYTjgajjgYYs44Gu44KK44GTDQor44Gq44GM44GfLOOBn+OBpOOBig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYvjgb/jgYvjgo8s44GR44KT44GYDQor44GE44KP44GELOOBi+OBj+OBhOOBoeOCjeOBhg0KK+OBhOOCj+OBi+OCjyzjgZXjgajjgZcNCivjgYTjgo/jgb8s44Gf44GP44KEDQor44GE44KP44G/LOOChuOBhuOBmA0KK+OBhOOCj+OCguOBqCzjgYjjgYTjgZgNCivjgYTjgo/jgarjgYws44KC44Go44Gu44KKDQor44GE44KP44GV44GNLOOBqOOBiuOCiw0KK+OBhOOCj+OBleOBjSzjgZ/jgZHjgZcNCivjgYTjgo/jgZss44Go44GX44KG44GNDQor44GE44KP44GX44GfLOOBkeOBhOOBmA0KK+OBhOOCj+OBnyzjgZHjgpPjgYTjgaENCivjgYTjgo/jgZ8s44KI44GX44GC44GNDQor44GE44KP44Gf44GmLOOBiOOBpOOBjQ0KK+OBhOOBmuOBvyzjgojjgYbjgZgNCivjgZjjgpPjga4s44GV44Go44GXDQor44GL44GM44KPLOOBl+OBkuOBsuOBqA0KK+OBi+OBhOOBrOOBvizjgaTjga3jgbLjgo0NCivjgYvjgZjjgZ8s44GL44Gk44G/DQor44GL44GR44GM44KPLOOBn+OBi+OBr+OCiw0KK+OBi+OBjeOBrOOBvizjgZ/jgaDjgb/jgaQNCivjgYvjgb7jgaAs44Gu44G844KLDQor44GL44G+44GfLOOBpuOCi+OBsuOBlQ0KK+OBi+OCgeOBn+OBqyzjgajjgZfjgbLjgZMNCivjgYvjgb/jgZjjgocs44Gf44GL44GXDQor44GL44G/44KA44KJLOOBqOOCguOBkw0KK+OBi+OBv+OChOOBvizjgb7jgZXjgbLjgo0NCivjgYvjgarjgYbjgaEs44GR44GE44GTDQor44Gf44GR44GG44GhLOOBteOBv+OBi+OBmg0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgYvjga3jgZMs44GK44GV44KADQor44GL44KT44Gs44GNLOOBk+OBm+OBhA0KK+OBi+OBrizjgZXjgajjgZcNCivjgYvjgonjga/jgZcs44Gy44Gn44GNDQor44GL44GV44GELOOBv+OCjw0KK+OBruOCgOOCiSzjgZ/jgYvjgoTjgZkNCivjgYvjgZXjgYQs44Gy44Gn44GKDQor44GL44GbLOOBruOBtuOBig0KK+OBi+OBl+OBj+OCiSzjgZ/jgYvjgb/jgaENCivjgYvjgZfjgoDjgoks44GL44Ga44Gf44GLDQor44GL44GX44KP44GOLOOBquOBiuOBjQ0KK+OBi+OBn+OBrizjgZ/jgYvjgbLjgo0NCivjgYvjgZ/jgYrjgYss44Gy44KN44GNDQor44GL44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBi+OBqOOBhizjgb7jgZXjga7jgooNCivjgYvjgajjgYYs44G+44GV44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgYvjgajjgYYs44G/44GNDQor44GL44Go44GG44GK44GLLOOChOOBmeOBruOBtg0KK+OBi+OBpOOBhCzjgoTjgZnjgY0NCivjgYvjgaTjgb7jgZ8s44Gb44GE44GE44GhDQor44GL44KP44Gw44GfLOOBjeOCiOOBj+OBqw0KK+OBi+OCj+OBoeOChCzjgbLjgo3jgYLjgY0NCivjgYvjgo/jgaAs44G/44Gu44KLDQor44GL44KP44GgLOOBiOOBv+OBkw0KK+OBhOOCiuOBleOCjyzjgoLjgoLjgZMNCivjgYvjgo/jgYQs44GY44KF44Gr44GhDQor44GL44KP44GL44G/LOOCiOOBl+OCjQ0KK+OBi+OCj+OBi+OBvyzjgZXjgajjgZcNCivjgYvjgo/jgb8s44GL44KI44GTDQor44GL44KP44KA44KJLOOBpuOCi+OBsuOBlQ0KK+OBhOOBl+OBhCzjgoTjgZnjgZcNCivjgYvjgo/jga4s44GK44GV44KADQor44GL44KP44KA44KJLOOBquOBiuOBjQ0KK+OBi+OCj+OBleOBjSzjgZHjgYQNCivjgYvjgo/jgZss44G+44GV44Gv44KLDQor44GL44KP44GbLOOBn+OBi+OBguOBjQ0KK+OBi+OCj+OBmyzjgZ/jgYvjgZcNCivjgYvjgo/jgZfjgb4s44KG44GL44KKDQor44GL44KP44Gf44GrLOOBmOOCh+OBmA0KK+OBkeOBhOOBoCzjgb/jga7jgosNCivjgY3jgaAs44Gf44GL44GKDQor44GN44Gg44GhLOOBqOOBl+OBguOBjQ0KK+OBjeOBr+OCiSzjgorjgZvjgYQNCivjgY3jgY/jgYvjgo8s44Gy44KN44KG44GNDQor44GN44KC44GoLOOBteOBv+OBig0KK+OBjeOCgOOCiSzjgb/jgo8NCivjgYvjgb7jgZ8s44GR44KT44GYDQor44GE44GP44G/LOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgYLjgY3jgokNCivjgY3jga7jgYbjgaEs44GR44KT44GYDQor44GN44GXLOOChOOBmeOBjQ0KK+OBjeOBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgY3jgYbjgaEs44GN44KI44Gy44KNDQor44GT44GwLOOBruOBtuOChuOBjQ0KK+OCguOCiizjgarjgYrjgY0NCivjgZPjgbDjgoTjgYvjgo8s44Gy44KN44GXDQor44GP44G844GfLOOBiOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgYjjgYTjgZMNCivjgYrjgYvjgo8s44GP44Gr44Gy44GTDQor44GT44Gw44KE44GXLOOBvuOBleOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgZMNCivjgZPjgb7jgZ8s44GX44GS44GKDQor44GT44Gw44KE44GXLOOBqOOCguOBiA0KK+OBk+OBsOOChOOBlyzjgobjgYvjgooNCivjgZPjgbDjgoTjgZcs44G+44GV44Gy44GnDQor44GT44Gg44G+LOOBkeOCk+OBhOOBoQ0KK+OBk+OBiOOBmCzjgbLjgo3jgobjgY0NCivjgZPjgZDjgaEs44G+44KG44G/DQor44GT44Gv44GfLOOBl+OBkuOBi+OBmg0KK+OBk+OBsuOCiSzjgb7jgY0NCivjgarjgYvjgYzjgo8s44Gf44GP44GXDQor44GT44Gy44KD44G+LOOBi+OBmuOBsuOCjQ0KK+OBk+OBhOOBpyzjgajjgojjgYLjgY0NCivjgZPjgYTjgacs44Gy44KN44KG44GNDQor44GT44GE44GRLOOBsuOBp+OBjQ0KK+OBk+OBhOOBmuOBvyzjgZ/jgZHjgZcNCivjgZPjgZjjgb4s44Gy44Go44GXDQor44GT44GR44GQ44GhLOOBpuOBpOOChA0KK+OBk+OBj+OBvCzjgZfjgpMNCivjgZPjgb7jgaQs44Gm44Gk44GYDQor44GT44G+44GkLOOBjeOCiOOBruOCig0KK+OBk+OBv+OChCzjgYjjgYTjgZ/jgaQNCivjgZPjgpPjgaks44GL44Gk44G/DQor44GT44KT44GpLOOBi+OBpOOChuOBjQ0KK+OBk+OCk+OBqSzjgYvjgZrjgbLjgZMNCivjgZPjgpPjgaks44KE44GZ44GXDQor44GT44KT44GpLOOBpOOBqOOCgA0KK+OBk+OBq+OBlyzjgZHjgpPjgZgNCivjgZPjgZXjgYss44Go44GX44Gy44GTDQor44GT44Gb44GNLOOBjeOBv+OBig0KK+OBk+OBl+OBhOOBlyzjgorjgYjjgZMNCivjgZPjgZfjgYos44GC44GN44KJDQor44GT44GZ44GSLOOCiOOBl+OCjQ0KK+OBk+OBsuOCgyzjgZjjgoXjgpMNCivjgZPjgoTjgb4s44GX44GS44KLDQor44GT44KE44G+LOOCguOBqOOBkw0KK+OBn+OBkeOBoSzjgZ/jgY/jgoQNCivjgY/jgbws44KE44GZ44G+44GVDQor44GP44G8LOOCiOOBhuOBkw0KK+OBj+OBvCzjgZ/jgYvjgZMNCivjgY/jgYzjgYQs44KG44G/44GTDQor44GE44GL44KJ44GXLOOCiOOBmA0KK+OBj+OBvuOBluOCjyzjgYvjgZrjgajjgZcNCivjgY/jgavjgb/jgaQs44GC44GN44KJDQor44GP44GuLOOBv+OBiA0KK+OBu+OBl+OBrizjgZ/jgYvjgobjgY0NCivjgY/jgonjgZfjgZIs44Gf44Gk44GKDQor44GP44KK44Gv44KJLOOBn+OBi+OBkw0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgbLjgo0NCivjgoTjgarjgY7jgaAs44Go44GX44Gy44GTDQor44GP44KK44KE44G+LOOBn+OBpOOChA0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjgajjgZcNCivjgY/jgZXjgYvjgo8s44Go44GX44GC44GNDQor44GP44GV44Gq44GOLOOBvuOBleOBruOCig0KK+OBj+OBleOBrizjgYvjgZrjgZcNCivjgY/jgZss44GK44GV44KADQor44GP44GX44GgLOOBl+OCheOBng0KK+OBj+OBmeOBoCzjgajjgZfjgoQNCivjgY/jgZnjgY0s44Gk44Go44KADQor44GP44GZ44G/LOOBteOBv+OBjQ0KK+OBvuOBiOOBoCzjgZ/jgYvjgobjgY0NCivjgb7jgYjjgaAs44GL44Ga44Gy44KNDQor44G+44GI44GL44KPLOOBruOBtuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgZXjgojjgZcNCivjgb7jgYzjgorjgbXjgaEs44Gb44GE44GXDQor44G+44GN44GuLOOBqOOBl+OChA0KK+OBvuOBjeOBrizjgZPjgYbjgZgNCivjgb7jgarjgbks44G/44GLDQor44GC44GM44Gk44G+LOOBl+OCh+OBsuOBoQ0KK+OBvuOCi+OBiizjgobjgY3jgYoNCivjgb7jgovjgZ8s44Gy44Gn44GC44GNDQor44G+44KL44KE44G+LOOBsuOBp+OChuOBjQ0KK+OBvuOCi+OChOOBvizjgZHjgYTjgYTjgaENCivjgb7jgovjgoTjgb4s44GK44GV44KADQor44G+44KL44KE44G+LOOBsuOBp+OBsuOBkw0KK+OBvuOBmeOBoCzjgZXjgajjgosNCivjgb7jgZnjgaAs44Gh44GIDQor44GL44KT44Gw44KJLOOBk+OBhuOBhOOBoeOCjQ0KK+OBvuOBpOOBsOOCiSzjgaHjgYjjgZMNCivjgarjgYvjgoDjgoks44KG44Gf44GLDQor44G+44Gk44GgLOOBn+OBpOOChA0KK+OBvuOBpOOBoCzjgYLjgY3jgYoNCivjgb7jgaTjgYQs44Gy44KN44GTDQor44G+44Gk44GELOOBn+OBi+OBig0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gh44Gy44KNDQor44G+44Gk44KC44GoLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgogNCivjgb7jgaTjgoLjgags44Gf44Gk44KG44GNDQor44G+44Gk44KC44GoLOOBl+OBkuOCiw0KK+OBvuOBpOOBiuOBiyzjgarjgYrjgY0NCivjgarjgovjgZss44KG44GLDQor44G+44Gk44KELOOBvuOBk+OBqA0KK+OCgeOBluOCjyzjgZ/jgYvjgbLjgo0NCivjgb/jgYjjga4s44KG44GG44GYDQor44G/44GO44GfLOOBpuOCi+OBv+OBpA0KK+OBv+OBi+OBvyzjgajjgZfjgoQNCivjgb/jgoDjgoks44GE44Ga44G/DQor44KE44Gq44GOLOOBsuOCjeOBlw0KK+OBv+OBquOBi+OBnyzjgaHjgajjgZsNCivjgb/jga0s44GP44Gr44Gu44KKDQor44G/44GtLOOBvuOBleOChuOBjQ0KK+OBv+OBruOCjyzjgbLjgo3jgobjgY0NCivjgb/jgZXjgo8s44KI44GX44Gu44KKDQor44G/44GV44KPLOOBl+OCheOBsuOBoeOCjQ0KK+OBv+OBl+OBvizjgaHjgojjgZMNCivjgb/jgZ/jgoDjgoks44GC44Gk44GXDQor44G/44GoLOOBkeOCk+OBmA0KK+OBv+OBpOOBsuOCiSzjgb7jgZXjgYvjgaQNCivjgb/jgaTjgYTjgZcs44GX44KT44KEDQor44G/44Gk44Gq44KKLOOBv+OBuw0KK+OBv+OBhuOCiSzjgorjgoXjgZgNCivjgb/jgoTjgbks44Gu44G244Gy44GTDQor44G/44KE44GY44G+LOOBsuOBqOOBlw0KK+OBv+OChOOCguOBqCzjgY3jgoXjgbLjgoMNCivjgb/jgoTjgoLjgags44G+44KG44G/DQor44G/44KE44GV44GLLOOBl+OCh+OBmA0KK+OBv+OChOOBleOBiyzjgYvjgZrjgoQNCivjgb/jgoTjgZfjgZ8s44GT44GG44GE44GhDQor44G/44KE44GX44GfLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBluOBjSzjgb7jgZXjgoTjgZkNCivjgb/jgoTjgZbjgo8s44KE44GZ44GI44GEDQor44G/44KE44GW44KPLOOBjeOCiOOBiA0KK+OBv+OBnuOBr+OBlyzjgb7jgY3jgZMNCivjgZXjgYvjgYQs44Gf44GL44Gy44KNDQor44G/44Ga44GuLOOBpOOCiOOBlw0KK+OBv+OBmuOBiuOBoSzjgajjgoLjgbLjgo0NCivjgb/jgZrjgZfjgb4s44Gu44G244GKDQor44G/44Ga44GfLOOBvuOCiuOBkw0KK+OCguOBoeOBr+OCiSzjgb7jgZXjgbXjgb8NCivjgoLjgaHjgZrjgY0s44Gf44GL44GIDQor44KC44KC44GbLOOBsuOCjeOBi+OBmg0KK+OCguOCiizjgZHjgpPjgZgNCivjgoLjgoos44GX44GS44GNDQor44KC44KKLOOBl+OBkuOCiw0KK+OCguOCiizjgajjgoLjgb8NCivjgoLjgoos44KG44Gy44Gh44KNDQor44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OCguOCiuOBi+OCjyzjgbLjgo3jgYsNCivjgoLjgorjgoLjgags44GY44KF44KT44GTDQor44KC44KK44KC44GoLOOBruOCiuOBl+OBkg0KK+OCguOCiuOCguOBqCzjgYvjgaTjgb8NCivjgoLjgorjgoDjgoks44Gf44GL44KG44GNDQor44KC44KK44GuLOOBn+OBkeOBsuOBkw0KK+OCguOCiuOBleOCjyzjgbLjgo3jgZcNCivjgZfjgb7jgYrjgYss44Gy44KN44GC44GNDQor44KC44KK44GX44GfLOOBn+OBi+OBig0KK+OCguOCiuOChOOBvizjgZHjgpPjgZgNCivjgoLjgo3jgYrjgYss44GR44KT44GYDQor44KC44KN44Go44G/LOOBj+OBqw0KK+OCguOBqOOBjSzjgZPjgYbjgYTjgaENCivjgoLjgajjga4s44GX44KF44Gy44GhDQor44KC44Go44Gf44GLLOOBsuOCjeOBjQ0KK+OCgOOBkOOCi+OBvizjgYLjgY3jgbLjgo0NCivjgoDjgYvjgYQs44Gh44GIDQor44GC44KT44Gp44GGLOOBr+OBmuOBjQ0KK+OBr+OBrSzjgbLjgafjgY0NCivjgoDjgonjgYvjgb8s44G+44KC44KLDQor44KA44KJ44G+44GkLOOBvuOBleOCiA0KK+OCgOOCieOBl+OBkizjgoTjgZnjgbLjgo0NCivjgZfjgoLjgoDjgoks44GT44GG44GE44GhDQor44KA44KJ44GfLOOBvuOBquOBtg0KK+OBv+OCh+OBjCzjgZfjgpPjgYTjgaENCivjgarjgYzjga/jgoks44GL44Ga44G/DQor44GE44Go44GGLOOBj+OBq+OBi+OBmg0KK+OBquOBjOOBhCzjgYrjgZXjgoANCivjgarjgYzjgYQs44KG44GLDQor44GE44KP44GoLOOBsuOCjeOBkw0KK+OBn+OBkeOBl+OBkizjgb/jgaTjgbLjgo0NCivjgarjgYzjgYos44Gq44GK44GNDQor44Gq44GM44GKLOOBn+OBoOOBqOOBlw0KK+OBquOBjOOBiizjgYvjgaTjgobjgY0NCivjgbXjgY/jgaTjgYss44Gy44Gn44GNDQor44Gq44GM44GV44KPLOOBn+OBj+OBmA0KK+OBquOBjOOBleOCjyzjgojjgZfjgb8NCivjgarjgYzjgZss44GE44KP44GKDQor44Gq44GM44GX44G+LOOBk+OBjQ0KK+OBquOBjOOBn+OBqyzjgajjgZfjgYvjgZoNCivjgarjgYzjgo/jgY0s44Gk44Go44KADQor44Gq44GM44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBquOBlOOChCzjgZjjgoXjgpMNCivjgarjgYTjgajjgYYs44G+44GT44GoDQor44Gq44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBoCzjgbLjgo3jgZcNCivjgarjgYvjgYzjgY0s44GL44Gk44G/DQor44Gq44GL44GM44KPLOOBkeOBhOOBnw0KK+OBquOBi+OBjOOCjyzjgajjgYrjgosNCivjgarjgYvjgYzjgo8s44KI44GX44GNDQor44Gq44GL44GM44KPLOOBoeOBu+OBkw0KK+OBquOBi+OBmOOBvizjgYLjgY3jgbLjgo0NCivjgbvjgorjgYbjgaEs44G/44Gh44Gu44KKDQor44Gq44GL44Gv44KJLOOBhOOBleOBiA0KK+OBquOBi+OBmOOBvizjgZHjgYTjgZMNCivjgarjgYvjgZjjgb4s44Gy44Gn44GNDQor44GN44GP44GfLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZnjgZnjgoANCivjgarjgYvjgb7jgoss44GC44GN44GKDQor44Gq44GL44KA44KJLOOBteOBv+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgoTjgZkNCivjgarjgYvjgoDjgoks44G+44GV44Gy44GnDQor44Gq44GL44KA44KJLOOCguOCiuOBig0KK+OBquOBi+OCgOOCiSzjga7jgbbjgobjgY0NCivjgarjgYvjgoDjgoks44GV44Gg44G/44GkDQor44Gq44GL44KA44KJLOOBn+OBj+OChA0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjga/jgaPjgajjgoos44Gm44KL44Gu44G2DQor44Gq44GL44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgoDjgoks44G+44GV44GXDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OBquOBi+OBq+OBlyzjgajjgojjgZgNCivjgarjgYvjgavjgZcs44GL44Ga44Gy44GoDQor44Gq44GL44GuLOOBi+OBmuOChuOBjQ0KK+OBquOBi+OBrizjgZPjgYbjgZgNCivjgarjgYvjga4s44G/44GLDQor44Gq44GL44GuLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgajjgZfjgZMNCivjgarjgYvjga4s44KI44GXDQor44Gq44GL44GuLOOBvuOBk+OBqA0KK+OBquOBi+OBiizjgaHjgYgNCivjgarjgYvjgYrjgYss44Gu44KK44GTDQor44Gq44GL44GX44G+LOOBn+OBi+OBig0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgZcNCivjgZfjgarjgaAs44KK44KF44Gy44GhDQor44Gq44GL44GfLOOBl+OBkuOBi+OBmg0KK+OBquOBi+OChCzjgb7jgarjgbYNCivjgZXjgYTjgYvjgo8s44GV44G244KNDQor44Gv44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBquOBi+OBluOCjyzjgZ/jgaTjgZgNCivjgarjgb7jgaQs44GE44Ga44KLDQor44Gq44KK44GfLOOBsuOBp+OBqA0KK+OBquOBmeOBrizjgZnjgarjgYoNCivjga3jgoLjgags44KI44GX44GC44GNDQor44Gt44GK44GELOOBoeOChuOBjQ0KK+OBreOBmizjgoTjgZnjgbLjgacNCivjgavjgYTjgoDjgoks44GK44GV44KADQor44Gr44GE44KE44G+LOOBpOOBi+OBlQ0KK+OBq+OBhOOChOOBvizjgZHjgYQNCivjgavjga7jgb/jgoQs44KI44GX44Gu44G2DQor44Gr44Gu44G/44KELOOBn+OBi+OBsuOCjQ0KK+OBq+OBlyzjgb7jgZXjgYvjgaQNCivjgavjgZfjgaAs44GX44KT44GE44GhDQor44Gr44GX44GgLOOBi+OBmuOBquOCig0KK+OBq+OBl+OBqeOBrizjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44GL44Ga44Gq44KKDQor44Gr44GX44GN44GpLOOBn+OBj+OBmA0KK+OBq+OBl+OCgOOCiSzjgbLjgajjgZcNCivjgavjgZfjgaos44Gy44KN44GXDQor44Gr44GX44GKLOOBvuOBvw0KK+OBhOOBruOBhuOBiCzjgb7jgb8NCivjgavjgZfjgZbjgo8s44Gf44GP44GYDQor44Gr44GX44Ga44GLLOOBn+OBi+OBguOBjQ0KK+OBq+OBo+OBnyzjgb/jga3jgYLjgY0NCivjga7jgaAs44G+44GT44GoDQor44Gu44KA44KJLOOBquOBiuOBjQ0KK+OBruOBruOCgOOCiSzjgYvjgZrjgb7jgZUNCivjga7jgorjga/jgZcs44Gh44GL44GSDQor44Gy44GuLOOBsuOCjeOBlw0KK+OBruOBluOBjSzjgbLjgo3jgZcNCivjga7jgZbjgo8s44GL44Ga44GC44GNDQor44Gs44G+44GuLOOBn+OBi+OBig0KK+OBiuOBs+OBmyzjgb7jgZXjga7jgooNCivjgYrjgbzjgYvjgZ8s44G+44GV44GXDQor44GK44GhLOOCiOOBl+OBruOCig0KK+OBr+OBm+OBjOOCjyzjgYLjgY3jgokNCivjgb7jgarjgbks44GC44GN44Gy44GTDQor44GK44GgLOOBguOBjeOCiQ0KK+OBiuOBoCzjgaDjgYTjgYTjgaQNCivjgYrjgaAs44GY44KF44KT44GYDQor44GK44GgLOOBi+OBmuOBqOOBlw0KK+OBiuOBoOOBj+OCiSzjgZ/jgYvjgYLjgY0NCivjgYrjgYzjgZ8s44Go44GX44KEDQor44GK44GM44KPLOOBsuOBqOOBvw0KK+OBguOBuSzjgo/jgYvjgZMNCivjgYrjgZDjgaEs44GV44Go44GXDQor44GK44GQ44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBkOOCiSzjgYTjgZXjgYoNCivjgYrjgZDjgoks44GL44Ga44KG44GNDQor44KA44GV44GXLOOBl+OCkw0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgZDjgoos44Gu44G244GTDQor44GK44GwLOOBsuOCjeOBjQ0KK+OBiuOBr+OBlyzjgZHjgpPjgZnjgZENCivjgYrjgbIs44GC44GN44Gy44KNDQor44GK44Gy44GILOOBv+OBpOOBguOBjQ0KK+OBiuOBj+OBvCzjgbLjgo3jgobjgY0NCivjgYrjgY/jgb4s44GL44Gk44G/DQor44GK44GP44G+LOOBl+OCk+OBmeOBkQ0KK+OBiuOBrizjgbLjgafjgbLjgo0NCivjgYrjgazjgb4s44GY44KF44KT44GTDQor44Gf44GL44GbLOOBjuOChw0KK+OBiuOBleOCjyzjgbLjgajjgZcNCivjgYrjgZXjgo8s44Go44GX44Gy44GTDQor44GK44GV44KPLOOCiOOBmeOBkQ0KK+OBiuOBleOCjyzjgZPjgY0NCivjgYrjgZfjgb4s44G+44GV44KI44GXDQor44GK44GX44G+LOOBn+OBvuOBjQ0KK+OBiuOBl+OBvizjgbLjgafjgYoNCivjgYrjgZ8s44G/44Gk44KLDQor44GK44Gf44GLLOOBvuOBleOBsuOBkw0KK+OBiuOBn+OBjSzjgb7jgZPjgagNCivjgYrjgZ/jgass44GR44KT44GYDQor44GK44Gk44GLLOOCiOOBsuOBoQ0KK+OBiuOBpOOBiyzjgbLjgo3jgYvjgZoNCivjgYrjgo8s44GR44KT44GYDQor44GK44KP44GgLOOBr+OCi+OBlw0KK+OBiuOBsuOCg+OBvizjgYTjgZXjgoANCivjgYrjgZ7jga0s44Gy44KN44GXDQor44GK44GLLOOBi+OBpOOBvw0KK+OBiuOBiyzjgYvjgojjgZMNCivjgYrjgYss44KI44GX44Gy44GnDQor44GK44GLLOOBsuOBp+OBjQ0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgYrjgYvjgaAs44GR44KT44GYDQor44GK44GL44GgLOOBneOBmeOBkQ0KK+OBiuOBi+OBoCzjgb7jgorjgZMNCivjgYrjgYvjganjgoEs44Gy44KN44GKDQor44GK44GL44KC44GoLOOBv+OBpOOBsuOCjQ0KK+OBiuOBi+OCguOBqCzjgZfjgpPjgZgNCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44KA44KJLOOBn+OBkeOBlw0KK+OBiuOBi+OBrizjgojjgZgNCivjgYrjgYvjga7jgoQs44Gy44KN44Gu44G2DQor44GK44GL44GKLOOBpuOBpOOBig0KK+OBiuOBi+OBluOBjSzjgb7jgZPjgagNCivjgYrjgY0s44Gy44KN44Gu44KKDQor44GK44GN44KC44GoLOOBsuOBqOOBlw0KK+OBiuOBj+OCgOOCiSzjga7jgbbjgobjgY0NCivjgYrjgY/jgoDjgoks44KE44GZ44GXDQor44GK44GP44GuLOOBsuOCjeOBguOBjQ0KK+OBiuOBvuOBnyzjgYvjgZrjgZfjgZINCivjgYrjgavjgY0s44Gf44GL44Gu44KKDQor44GK44Gr44Gk44GLLOOBn+OBi+OCiOOBlw0KK+OBiuOBruOBp+OCiSzjgbLjgajjgZcNCivjgYrjga7jgZbjgo8s44G+44GV44KG44GNDQor44GK44Gr44GXLOOBqOOCiOOBguOBjQ0KK+OBiuOBq+OBlyzjgY3jgojjgYvjgaQNCivjgYrjgaTjgYss44KE44GZ44GXDQor44GK44GV44GgLOOBk+OBhuOBmA0KK+OBiuOBleOBjSzjgbLjgo3jgZcNCivjgYrjgZXjgarjgb8s44KK44GLDQor44GK44KE44G+44GgLOOBguOBjeOCiQ0KK+OBiuOBluOCjyzjgb/jgaTjgosNCivjgYrjgZbjgo8s44KE44GZ44GYDQor44GK44GW44KPLOOBsuOBp+OBig0KK+OCjSzjgbLjgo3jgobjgY0NCivjgZXjgYjjgZDjgZUs44G+44GV44Gy44GTDQor44GV44GI44GNLOOBqOOCguOBkw0KK+OBquOBi+OBmOOBvizjgobjgY3jgbLjgZMNCivjgZXjgYTjgZ8s44GC44GEDQor44GK44GM44KPLOOBguOBjeOCiOOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44GC44GNDQor44GV44GE44Go44GGLOOBguOBjeOCiQ0KK+OBleOBi+OBhCzjgbLjgafjgaTjgZANCivjgZXjgYvjgYQs44GR44KTDQor44GV44GL44GELOOBj+OBq+OCiOOBlw0KK+OBleOBi+OBhCzjgarjgYrjgbLjgZUNCivjgZXjgYvjgYQs44Go44KC44Gu44G2DQor44GV44GL44GELOOBn+OBi+OBlw0KK+OBleOBi+OBhOOCiizjgZfjgZrjgojjgZcNCivjgZXjgYvjgY0s44KE44GZ44Gu44KKDQor44GV44GL44G+LOOBk+OBhuOBmOOCjQ0KK+OBleOBi+OBvuOBjSzjgZfjgo0NCivjgZXjgYvjgoLjgags44KE44GZ44Gu44KKDQor44GV44GL44KC44GoLOOCiOOCiuOBqA0KK+OBleOBi+OCguOBqCzjgoTjgZnjga7jgooNCivjgZXjgYvjgZ8s44KI44GX44Gy44KNDQor44GV44GL44GG44GILOOBn+OBkeOBlw0KK+OBleOBi+OBmuOCgSzjgaHjgYjjgZMNCivjgarjgYvjga4s44KE44GZ44Gv44KLDQor44GV44GP44G+LOOBi+OBmuOBsuOBlQ0KK+OBleOCk+OBvOOCk+OBvuOBpCzjgZ/jgYvjgbLjgZMNCivjgZXjga4s44KI44GX44Gu44KKDQor44GV44GuLOOCiuOCh+OBmA0KK+OBleOBleOBjOOCjyzjgbLjgafjga7jgooNCivjgZXjgZXjgY0s44GR44GE44GYDQor44GV44GV44GNLOOBn+OBkeOBlw0KK+OBleOBleOBjSzjgZ/jgY8NCivjgZXjgZXjgY0s44GX44KH44GUDQor44GV44GV44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBleOBqOOBhizjgY3jgofjgZMNCivjgZXjgajjgYYs44G+44GV44Gu44KKDQor44GV44Go44GGLOOBvuOBleOBqOOCgg0KK+OBleOBqOOBhizjgb7jgZXjgajjgZcNCivjgZXjgajjgYYs44GV44Go44KLDQor44GV44Go44GGLOOBl+OCheOBsuOBoQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44Gf44GL44KG44GNDQor44GV44Go44GGLOOBn+OBj+OBvw0KK+OBleOBqOOBhizjgajjgoLjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44Gy44GTDQor44GV44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBleOBpOOBvizjgZ/jgZHjgZcNCivjgZXjgo/jgZDjgaEs44Go44GX44G144G/DQor44GV44KP44GELOOChuOBn+OBiw0KK+OBleOCj+OCieOBjizjgobjgorjgZMNCivjgZXjgo/jgZ/jgass44KE44GZ44KG44GNDQor44Gb44GE44GfLOOBi+OBmuOCiOOBlw0KK+OBm+OBjSzjgZPjgYbjgZgNCivjgZvjgY0s44Go44GX44KG44GNDQor44Gb44GNLOOChOOBmeOBlw0KK+OBm+OBjeOBr+OCiSzjgYvjgaTjgbLjgagNCivjgZvjgY3jga0s44KI44GX44Gf44GLDQor44Gb44GN44GtLOOBn+OBi+OChuOBjQ0KK+OBl+OCieOBhOOBlyzjga7jgbbjgZ/jgYsNCivjgZvjgpPjgYws44KG44GZ44GRDQor44Gb44GuLOOBsuOBp+OChuOBjQ0KK+OBm+OBl+OCgizjgZXjgajjgZcNCivjgZvjgags44GK44GV44KADQor44Gb44Go44GQ44GhLOOBvuOChuOBvw0KK+OBpuOCi+OChCzjga7jgbbjgYoNCivjgZfjgYTjgbAs44Gy44Gn44Gu44KKDQor44GX44Gw44GuLOOBv+OCj+OBkw0KK+OBl+OBsOOBleOBjSzjgarjgYrjgagNCivjgZfjgbDjgZ8s44G/44Gh44Gy44KNDQor44GX44G244GV44KPLOOChOOBmeOBig0KK+OBl+OBtuOBleOCjyzjgY/jgavjgYoNCivjgZfjgaEs44GC44Gk44GXDQor44GX44Gh44GfLOOBvuOBleOBvuOCjQ0KK+OBl+OBkuOBsuOBlSzjga7jgbbjgbLjgo0NCivjgZfjgZLjgZXjgo8s44Gu44KK44KE44GZDQor44KA44KJ44GfLOOBguOBjeOCiQ0KK+OBl+OBvuOBmizjgobjgZnjgZENCivjgZfjgb7jgZos44Gy44KN44KG44GNDQor44GN44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBl+OBv+OBmizjga7jgbbjgYoNCivjgZfjgb/jgZos44Gu44KK44KG44GNDQor44GX44G/44GaLOOBl+OCheOBsuOBoQ0KK+OBl+OBv+OBmizjgZ/jgaTjgYoNCivjgZfjgb/jgZos44Gf44Gk44KEDQor44GX44G/44GaLOOChuOBsuOBoQ0KK+OBl+OBv+OBmizjgorjgYsNCivjgb/jgoTjgZPjgZcs44Go44KC44KG44GNDQor44GX44KC44G/44GhLOOBhOOBj+OBkw0KK+OBquOBi+OBsOOChOOBlyzjgabjgaTjgo0NCivjgZfjgoLjgYrjgZUs44G+44GV44G144G/DQor44GX44KC44Gk44GYLOOCiOOBl+OBsuOCjQ0KK+OBl+OBquOBoCzjgaDjgYTjgYjjgYQNCivjgZfjgarjgYzjgo8s44Gf44GL44KG44GNDQor44GX44KT44KC44GoLOOBqOOBiuOCiw0KK+OBl+OBrizjgb/jgobjgY0NCivjgZfjga7jgaAs44KK44KF44GG44Gf44KN44GGDQor44GX44Gu44GgLOOBn+OBi+OBpOOBkA0KK+OBl+OBruOBluOBjSzjgZ/jgaTjgZcNCivjgZfjgYrjgZ/jgass44Gf44GL44GXDQor44GX44GK44KELOOBv+OBoeOBig0KK+OBl+OCieOBuSzjgYjjgYTjgYTjgaENCivjgZfjgonjgYzjgY0s44Gy44KN44GXDQor44GX44KJ44GELOOBr+OChOOBqOOBlw0KK+OBl+OCieOBhOOBlyzjgY/jgpPjgZgNCivjgZfjgonjgYTjgZcs44GR44GE44GTDQor44GX44KJ44GNLOOBsuOCjeOBl+OBkg0KK+OBl+OBmuOBnyzjgajjgZfjgbLjgo0NCivjgZfjgofjgZgs44G+44KK44GTDQor44Gd44Gu44GgLOOBi+OBiuOCiw0KK+OBmeOBqeOBhizjgZ/jgZHjgZcNCivjgZnjgYjjgaAs44GX44KT44GYDQor44GZ44GI44Gk44GQLOOBoeOBi+OBlw0KK+OBmeOBjOOBnyzjga7jgbbjgYoNCivjgZnjgYzjgo/jgoks44G+44GV44Gy44KNDQor44GZ44GO44GuLOOCiOOBl+OBruOCig0KK+OBmeOBjuOBleOBjSzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZnjgY7jgZfjgb4s44Gv44Gk44GIDQor44Gq44GM44GELOOBl+OCh+OBmA0KK+OBmeOBjuOChOOBvizjgabjgaTjgbLjgo0NCivjgZnjgb8s44Gk44GL44GVDQor44GZ44G/44Gf44GrLOOBhOOBo+OBm+OBhA0KK+OBmeOBleOBjSzjgojjgZfjga/jgosNCivjgZnjgZnjgY0s44GL44Ga44Gy44GTDQor44GZ44KE44G+LOOBiOOBpOOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44GZ44Ga44GNLOOBkeOBhOOBkw0KK+OBn+OBmOOBvizjgZHjgYTjgZ8NCivjgZnjgZrjgY0s44G/44Gp44KKDQor44GZ44Ga44GNLOOCguOBqOOChuOBjQ0KK+OBmeOBmuOBjSzjgZvjgYTjgZMNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GZ44Ga44GNLOOChOOBmeOBmeOBkQ0KK+OBmeOBmuOBjSzjgojjgZfjgYLjgY0NCivjgZnjgZrjgY0s44KI44GX44Gu44G2DQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjgosNCivjgZfjgoXjgY/jgoQs44G+44KK44GTDQor44Gf44Gh44Gw44GqLOOBqOOBl+OBsuOCjQ0KK+OBn+OBoeOChOOBvizjgYvjgaTjgbLjgo0NCivjgZ/jganjgZPjgo0s44GX44KT44GE44GhDQor44Gf44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZ/jgZDjgaEs44Go44KC44Gu44KKDQor44Gf44GQ44GhLOOBv+OBoeOBig0KK+OBn+OBhCzjgZHjgpPjgYTjgaENCivjgZ/jgZjjgb4s44GT44GG44GE44GhDQor44Gf44GL44GgLOOBleOBqOOBjQ0KK+OBn+OBi+OBoCzjgZ/jgY/jgoQNCivjgZ/jgYvjgY4s44KE44GZ44GTDQor44G/44KE44KC44GoLOOChuOBn+OBiw0KK+OBn+OBi+OBr+OBvizjgYLjgY3jgZMNCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44GL44Gv44GXLOOBsuOBp+OBqOOCgg0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgajjgZcNCivjgZ/jgYvjga/jgZcs44Gy44Gn44Go44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOBjQ0KK+OBn+OBi+OBr+OBlyzjgZjjgoXjgavjgaENCivjgZ/jgYvjga/jgZcs44GL44KIDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44GoDQor44Gf44GL44Gv44GXLOOCguOBqOOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gu44G244Gy44GVDQor44Gf44GL44Gv44GXLOOBruOCiuOBig0KK+OBn+OBi+OBr+OBlyzjgZXjgaHjgYgNCivjgZ/jgYvjga/jgZcs44GV44Go44KLDQor44Gf44GL44Gv44GXLOOBl+OBkuOBruOBtg0KK+OBn+OBi+OBr+OBlyzjgZnjgZnjgoANCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44Gf44GL44Gv44GXLOOBpuOBpOOBig0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gq44GXLOOBpOOBqOOCgA0KK+OBn+OBi+OBrizjgb7jgZXjgobjgY0NCivjgZ/jgYvjgYrjgYss44G+44GT44GoDQor44Gf44GL44GbLOOBkeOCk+OCiuOChQ0KK+OBn+OBi+OBl+OBqizjgajjgZfjgbLjgZUNCivjgZ/jgYvjgZfjgaos44KE44GZ44GXDQor44Gf44GL44GfLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OChOOBvizjgoTjgZnjga7jgooNCivjgZ/jgYvjgoTjgarjgY4s44Gy44KN44GXDQor44Gf44GR44Gw44KE44GXLOOCguOBqOOChOOBmQ0KK+OBv+OBi+OBvyzjgobjgY3jgYgNCivjgZ/jgZHjgYQs44KE44GZ44GTDQor44Gf44GR44GNLOOBn+OBi+OBlw0KK+OBn+OBkeOCguOCiizjgojjgZfjgbLjgZUNCivjgZ/jgZHjgoDjgoks44Go44GX44KG44GNDQor44Gf44GR44GG44GhLOOBleOBqOOBkw0KK+OBn+OBkeOChCzjgbLjgafjgY0NCivjgZ/jgZHjgoTjgb4s44GE44Gh44KN44GGDQor44Gf44GN44GQ44GhLOOBruOBtuOBguOBjQ0KK+OBn+OBjeOBl+OBnyzjgb/jgaTjgosNCivjgZ/jgY3jgZbjgo8s44GX44KTDQor44Gf44G+44GELOOBi+OBpOOBruOCig0KK+OBn+OBv+OChCzjgabjgaTjgoQNCivjgZ/jgoDjgoks44GX44GS44GNDQor44Gf44Gq44G5LOOBk+OBm+OBhA0KK+OBn+OBquOBr+OBlyzjgaDjgYTjgZXjgY8NCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgZjjgoXjgpMNCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gf44Gq44GLLOOBkeOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgZ/jgarjgYss44G+44GX44KFDQor44Gf44Gq44GLLOOBruOBtuOBsuOBkw0KK+OBn+OBquOBiyzjgYrjgZXjgoANCivjgZ/jgarjgYss44GR44KTDQor44GT44Gg44G+LOOBl+OCh+OBsuOBoQ0KK+OBn+OBquOBiyzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44Go44GX44GL44GaDQor44Gf44Gq44GLLOOBqOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgYLjgY3jgokNCivjgZ/jgarjgoDjgoks44GX44GS44KLDQor44Gf44KT44GwLOOBguOBjeOBkw0KK+OBn+OBq+OBkOOBoSzjgojjgZnjgZENCivjgZ/jgavjgZDjgaEs44Gy44KN44KG44GNDQor44Gf44Gr44GELOOCiOOBl+OChuOBjQ0KK+OBn+OBq+OCgOOCiSzjgZfjgZLjgagNCivjgZ/jgavjgo/jgY0s44Gy44Gn44Gu44KKDQor44Gf44KL44GELOOBsuOCjeOChuOBjQ0KK+OBn+OBleOBjSzjgbLjgo3jgY0NCivjgZ/jgZfjgo0s44KG44GN44GTDQor44Gf44Gm44GE44GXLOOBsuOCjeOBkw0KK+OBn+OBhuOBoSzjgZjjgoXjgavjgaENCivjgZ/jgYbjgoks44GX44KTDQor44Gm44KJ44GgLOOBvuOBleOBi+OBmg0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZMNCivjgabjgonjgavjgZcs44KI44GX44Gy44GTDQor44Gm44KJ44GX44GfLOOBguOBleOBig0KK+OBpuOCi+OBjeOBqizjga7jgorjgYLjgY0NCivjgajjgbks44GV44Go44GXDQor44Go44GULOOBiuOBleOCgA0KK+OBqOOBkOOBoSzjgZXjgajjgZcNCivjgajjgZgs44GL44Ga44Gq44KKDQor44Go44G/44Gq44GMLOOBkeOBhOOBmA0KK+OBqOOBv+OBquOBjCzjgZjjgoXjgpPjgZMNCivjgajjgb/jgYrjgYss44GS44KTDQor44Go44G/44GfLOOBqOOCguOBruOCig0KK+OBqOOBv+OChOOBvizjgYrjgZXjgoANCivjgajjga3jgYzjgo8s44GX44KH44GYDQor44Go44GX44Gq44KKLOOBi+OBmuOChuOBjQ0KK+OBqOOCiOOBoCzjgb7jgZXjgoQNCivjgajjgojjgaAs44Gq44GK44KEDQor44Go44KI44GgLOOCiuOCh+OBkw0KK+OBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgajjgZrjgYss44KI44GX44GKDQor44KE44G+44GL44KPLOOBguOBjeOCiQ0KK+OBpOOBvOOBhCzjgoLjgorjgobjgY0NCivjgaTjgaHjga/jgZcs44Gy44KN44GXDQor44Gk44Gh44GuLOOBguOBjeOCiA0KK+OBpOOBoeOChCzjgYjjgorjgZMNCivjgb7jgY0s44Gf44GL44Gv44KLDQor44Gk44GgLOOBiOOBhOOBmA0KK+OBpOOBjOOCjyzjgYvjgaTjga7jgooNCivjgaTjgZgs44G+44GV44GoDQor44Gk44GYLOOChOOBmeOBvuOBlQ0KK+OBpOOBmCzjgarjgYrjgY0NCivjgaTjgYvjgaAs44GZ44GQ44KLDQor44Gk44GL44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBpOOCgOOCiSzjgYLjgY3jgokNCivjgaTjgarjgZfjgb4s44GY44KF44KT44GTDQor44GK44GP44KE44G+LOOBk+OBhuOBmA0KK+OBpOOBruOBoCzjgYvjgaTjgoQNCivjgaTjga7jgYzjgYQs44G+44GV44Gy44GTDQor44Gk44GX44G+LOOCiOOBsuOBoeOCjQ0KK+OBpOOBpOOBvyzjgbLjgafjgYoNCivjgaTjgZrjgY0s44KK44KF44G444GEDQor44Gk44KL44GK44GLLOOBmOOCheOCk+OBkw0KK+OBhuOBoeOBoCzjgYvjgaTjgb8NCivjgYbjgaHjgaAs44G/44Gu44KLDQor44GG44Gh44GgLOOCiOOBl+OBsuOCjQ0KK+OBhuOBoeOBoCzjgbLjgafjga7jgooNCivjgYbjgaHjga4s44G/44Gk44Gu44G2DQor44GG44Gh44Gu44GP44KJLOOBkeOCk+OBmA0KK+OBhuOBoeOChOOBvizjgZXjgajjgZcNCivjgYbjgaHjgoTjgb4s44Go44KI44GL44GaDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBhuOBoCzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44GN44KI44GXDQor44GG44GI44GgLOOBn+OBi+OChuOBjQ0KK+OBhuOBiOOBoCzjgobjgY3jgYoNCivjgYbjgYjjgaAs44G+44KC44KLDQor44GG44GI44Gv44KJLOOBleOBoOOBr+OCiw0KK+OBhuOBiOOBr+OCiSzjgoTjgZnjga7jgooNCivjgYbjgYjjga/jgoks44Gu44G844KLDQor44GG44GI44GY44G+LOOBsuOCjeOBlw0KK+OBhuOBiOOBjSzjgYvjgaTjgb8NCivjgYbjgYjjgoDjgoks44Gy44Gn44GoDQor44GG44GI44GuLOOBsuOBleOBlw0KK+OBhuOBiOOBrizjgb7jgZXjgosNCivjgYbjgYjjga4s44G+44GV44G144G/DQor44GG44GI44KE44G+LOOChOOBmeOBlw0KK+OBhuOBhCzjgYLjgY3jgbLjgZMNCivjgYbjgoHjgaAs44KB44GQ44G/DQor44GG44KB44GgLOOBv+OBoeOBr+OCiw0KK+OBhuOCgeOBoCzjgZ/jgYvjga7jgooNCivjgYbjgoHjgaAs44Gu44G244Gy44KNDQor44GG44KB44Gv44KJLOOBkeOBhOOBmA0KK+OBhuOCgeOBi+OCjyzjgZfjgZLjgosNCivjgYbjgovjgZfjgaDjgass44Gq44Gk44GTDQor44GE44Gu44GG44GILOOCiOOBl+OBqA0KK+OBhuOBleOBvyzjgajjgZfjga/jgosNCivjgYbjgZfjgb7jgoss44GX44GS44KLDQor44GG44GX44KE44G+LOOBvuOBleOBig0KK+OBhuOBmeOBhCzjgZfjgpPjgZgNCivjgYbjgZnjgYQs44Gy44KN44KG44GNDQor44GG44Gk44G/LOOBiOOCiuOBkw0KK+OBleOBleOBjOOCjyzjgY/jgavjgbLjgo0NCivjgZ3jgoHjgoQs44Gf44GL44Gy44GnDQor44KP44GgLOOBqOOBj+OBsuOCjQ0KK+OCj+OBoCzjgobjgYbjgZgNCivjgo/jgaAs44KI44GX44GTDQor44Gf44Gu44GG44GILOOBkeOBhOOBmeOBkQ0KK+OCj+OBl+OBoCzjgZfjgofjgbLjgaENCivjgo/jgZ/jgYQs44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOBoeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44KP44Gf44Gq44G5LOOBvuOBleOBruOCig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44Gf44GR44GXDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgbLjgo0NCivjgoTjgY4s44GL44Gk44KG44GNDQor44KE44GULOOBk+OBuOOBhA0KK+OChOOBr+OBjizjgYrjgZXjgoANCivjgoTjgY/jgZcs44GY44KNDQor44KE44G+44GgLOOBi+OBmuOBguOBjQ0KK+OChOOBvuOBoCzjgZHjgpPjgZgNCivjgoTjgb7jgaAs44G+44GV44GKDQor44KE44G+44GgLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBoCzjgojjgZfjgYLjgY0NCivjgoTjgb7jgaAs44KG44Gy44GhDQor44KE44G+44GgLOOBsuOBp+OBguOBjQ0KK+OChOOBvuOBjOOBnyzjgb/jgaHjgYLjgY0NCivjgoTjgb7jgY7jgZcs44G+44GV44KG44GNDQor44Gv44KKLOOBguOBjeOBig0KK+OChOOBvuOBkOOBoSzjgYvjgZrjgbLjgZUNCivjgoTjgb7jgZDjgaEs44GV44Go44GXDQor44KE44G+44GQ44GhLOOBsuOBp+OBjQ0KK+OBguOBiuOBpOOBiyzjgajjgYrjgosNCivjgoTjgb7jgZDjgaEs44Gy44KN44KG44GNDQor44KE44G+44GYLOOBguOBjeOCiQ0KK+OChOOBvuOCguOBqCzjgYvjgZrjgYoNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44KE44G+44KC44GoLOOBquOBiuOBteOBvw0KK+OChOOBvuOCguOBqCzjgYrjgZXjgoANCivjgoTjgb7jgoLjgags44KM44GE44GNDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgajjgb/jgoTjgZkNCivjgoTjgb7jgoLjgags44Go44GX44Gy44KNDQor44KE44G+44KC44GoLOOBqOOBl+OBig0KK+OChOOBvuOCguOBqCzjgojjgZfjgYoNCivjgoTjgb7jgoLjgags44KG44GLDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOCgOOCiSzjgb7jgZXjgYgNCivjgoTjgb7jgarjgYss44G+44GV44KG44GNDQor44KE44G+44GX44GqLOOBi+OBpOOBlw0KK+OChOOBvuOBl+OBnyzjgajjgoLjgYvjgZoNCivjgoTjgb7jgZfjgZ8s44Go44KC44G/DQor44KE44G+44GX44GfLOOCiOOBl+OBleOBqA0KK+OChOOBvuOBl+OBnyzjgb7jgZXjga7jgooNCivjgoTjgb7jgaYs44G/44Gh44GKDQor44KE44G+44GG44GhLOOBsuOCjeOBruOCig0KK+OChOOBvuOBluOBjSzjgZjjgoXjgavjgaENCivjgoTjgb7jgZbjgY0s44GR44KT44GY44KNDQor44KE44G+44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OChOOBquOBjizjgbLjgo3jgbXjgb8NCivjgoTjgarjgY7jgaAs44Gf44GL44KG44GNDQor44KE44Gq44GO44GgLOOBguOBjeOBsuOBpw0KK+OChOOBquOBhCzjgajjgZfjga7jgooNCivjgoTjgarjgYss44GI44GE44GYDQor44KE44GZ44GgLOOBvuOBquOBtg0KK+OChOOBmeOBoCzjgajjgZfjgobjgY0NCivjgoTjgZnjgaAs44Gq44GK44G144G/DQor44KE44GZ44KC44GoLOOBqOOCguOBi+OBmg0KK+OChOOBpOOBiyzjgobjgZ/jgYsNCivjgoTjgZbjgo8s44GX44KT44GYDQor44KI44GgLOOChuOBjeOBsuOCjQ0KK+OCiOOBqeOBjOOCjyzjgorjgpPjgZjjgoUNCivjgojjgaAs44GR44KT44GYDQor44KI44GT44Gv44GfLOOBsuOBqOOBlw0KK+OCiOOBk+OChOOBvizjgZHjgYQNCivjgojjgZPjgoTjgb4s44GC44GN44KJDQor44KI44KC44KKLOOChuOBjeOBsuOBlQ0KK+OCiOOBreOCguOBoSzjga7jgbzjgosNCivjgojjgo3jgZrjgoQs44Gy44Go44GXDQor44KI44GX44GgLOOBi+OBmuOBig0KK+OCiOOBl+OBoCzjgZPjgYbjgYTjgaHjgo0NCivjgojjgZfjgaAs44G/44G7DQor44G144GY44GV44GNLOOBleOBqOOBlw0KK+OCiOOBl+OBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44G+44GV44G/DQor44KI44GX44G+44GkLOOBhOOCj+OBig0KK+OCiOOBl+OCguOBqCzjgZvjgY3jgZMNCivjgojjgZfjgoDjgoks44GL44Ga44KEDQor44GE44GX44Gw44GXLOOBquOBiuOBjQ0KK+OCiOOBl+OBrizjgb/jgZrjgbsNCivjgZ/jgYvjga4s44Gm44Gk44KEDQor44KG44Gv44GXLOOBruOCiuOBig0KK+OBiOOBoOOBsuOCjSzjgbLjgo3jga7jgooNCivjga/jgonjgaAs44Gy44KN44KEDQor44Gv44KE44GV44GLLOOBhOOCj+OBig0KK+OBhOOBquOBjOOBjSzjgZfjgZLjgosNCivjgYTjga7jgYbjgYgs44GC44GN44KI44GXDQor44GE44GX44Gv44KJLOOCiOOBl+OBpOOBkA0KK+OBk+OBmOOBvizjgarjgYrjgbLjgZUNCivjgZPjgZnjgY4s44Gf44Gk44GeDQor44GP44G844GfLOOBn+OBi+OBlw0KK+OCguOCiizjga7jgorjgYoNCivjgarjgYvjgbDjgoTjgZcs44GT44GG44GE44GhDQor44Gt44KC44GoLOOBsuOBqOOBlw0KK+OBq+OBruOBv+OChCzjgabjgaTjgYoNCivjgYrjgYzjgo8s44Gh44Gv44KLDQor44GK44Gf44GrLOOChuOBmeOBkQ0KK+OBm+OBjSzjgYvjgaTjgoQNCivjgZfjgbbjgZ/jgass44Gf44Gg44GXDQor44GX44KT44GoLOOBn+OBpOOChA0KK+OBneOBtuOBiCzjgZHjgYTjgZQNCivjgZ/jgYvjga/jgZcs44GX44KH44GTDQor44Gf44GL44GbLOOBv+OBqeOCig0KK+OBqOOCiOOBoCzjgb7jgZXjgobjgY0NCivjgYbjgYjjgaAs44KK44KF44Gb44GEDQor44KE44G+44KC44GoLOOBvuOBleOBjQ0KK+OChOOBvuOBmuOBvyzjgZXjgajjgZcNCivjgojjgZfjgaAs44Gf44GL44GXDQor44GC44GV44GL44GELOOChOOBmeOBsuOBlQ0KK+OBteOBj+OBnyzjgZfjgpPjgZQNCivjgYvjgo/jgZXjgY0s44Gq44KL44G/DQor44Gy44KN44GbLOOBn+OBi+OBlw0KK+OBr+OCiSzjgarjgYrjgbLjgZUNCivjgYvjgZXjga/jgoks44Gf44GL44GXDQor44GK44GW44KPLOOBkeOBhA0KK+OBi+OBqOOBhizjgoHjgZDjgb8NCivjgarjgYvjgoDjgoks44G+44GV44GTDQor44Gf44GQ44GhLOOBj+OBvw0KK+OBguOBoOOBoSzjgaTjgajjgoANCivjgYLjgYvjgZcs44Gy44KN44KG44GNDQor44GC44GN44KE44G+LOOBsuOBqOOBlw0KK+OBguOBiuOBjSzjgZ/jgZHjgZcNCivjgYLjgonjgY0s44G+44G/44GTDQor44GC44GV44GyLOOBsuOCjeOBsuOBpw0KK+OBguOBleOBrizjgZfjgpPjgZ/jgo3jgYYNCivjgYLjgo/jga4s44KE44GZ44KG44GNDQor44GC44KP44GuLOOBsuOCjeOBlw0KK+OBqeOBmCzjgZPjgYbjgZgNCivjganjgZ7jga4s44Gq44KL44Go44GXDQor44G144Gh44GL44G/LOOBi+OBmuOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44KI44GX44GL44GaDQor44G144GY44GE44GILOOBi+OBjA0KK+OBk+OCjyzjgZvjgaTjgZMNCivjgbXjgZjjgZfjgo0s44GR44GE44GE44GhDQor44G144GY44GfLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBnyzjgZvjgYTjgYjjgYQNCivjgbXjgZjjgo/jgoks44Gy44KN44KADQor44G144GP44GgLOOCiuOCh+OBm+OBhA0KK+OBteOBj+OBoCzjgojjgZfjgbLjgZUNCivjgbXjgY/jgaAs44GI44G/DQor44GV44GE44Go44GGLOOBl+OCh+OBmA0KK+OBteOBj+OChOOBvizjgajjgoLjgZ/jgZENCivjgbXjgovjga/jgZ8s44G144G/44Gu44KKDQor44GU44GoLOOBqOOBl+OBsuOBkw0KK+OBr+OCgOOCjSzjgYrjgZXjgoANCivjga/jgZss44GY44KF44KT44GY44KNDQor44Gv44GX44KC44GoLOOBquOBiuOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZvjgYTjgoQNCivjga/jgaPjgajjgoos44GL44Gk44KNDQor44Gv44KE44GXLOOBkeOCk+OBmA0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44Gu44G244KEDQor44Gv44KE44GXLOOBl+OCheOBq+OBoQ0KK+OBr+OChOOBlyzjgb7jgZXjgYoNCivjga/jgoTjgZcs44KI44GG44GTDQor44Gy44GzLOOBsuOCjeOChuOBjQ0KK+OBsuOBkOOBvizjgZPjgYbjgZgNCivjgbLjgonjgYQs44Gq44GK44KG44GNDQor44Gy44KJ44GL44KPLOOBn+OBpOOBig0KK+OBsuOCieOBrizjgZHjgpMNCivjgbLjgo3jgarjgYss44GK44GV44G/DQor44G744KK44GQ44GhLOOBmOOCheOBq+OBoQ0KK+OBu+OBleOBiyzjgZPjgYbjgZgNCivjgbvjgZ3jgoQs44Gy44KN44GL44GaDQor44GE44Gh44GELOOBiuOBleOCgA0KK+OBhOOBoeOBi+OCjyzjgZ/jgY/jgbLjgZUNCivjgYTjgZDjgb4s44G+44GV44Gy44KNDQor44GE44GE44GV44GLLOOBmOOCheOBq+OBoQ0KK+OBhOOBi+OCjyzjgZjjgoXjgpMNCivjgYTjgZHjgaAs44GL44Gk44Gy44GTDQor44GE44GR44GgLOOBqOOBl+OBguOBjQ0KK+OBhOOBkeOBjOOBvyzjgb7jgZXjgYvjgZoNCivjgYTjga7jgYbjgYgs44GX44GS44G/44GkDQor44GE44Gu44GG44GILOOCgeOBhA0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgaTjgZANCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44GE44GX44GgLOOBn+OBj+OChA0KK+OBhOOBl+OBvuOCiyzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgZrjgYss44Gk44Gt44Go44KCDQor44GE44GdLOOBi+OBmuOBsuOBkw0KK+OBhOOBqOOBhizjgb/jga7jgosNCivjgYTjgajjgYYs44Gu44G244GC44GNDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgYTjgajjgYYs44GX44GS44KG44GNDQor44GE44Go44GGLOOCguOBqOOBsuOCjQ0KK+OBhOOBqOOBhizjgYjjgYTjgYTjgaENCivjgYTjgo/jgZ8s44G+44KG44G/DQor44GL44KK44KELOOBhOOCj+OBig0KK+OBmOOCh+OBjOOBleOBjSzjgYLjgobjgZMNCivjgYvjgYws44GE44GP44GY44KNDQor44GL44GS44KE44G+LOOBvuOCguOCiw0KK+OBi+OBmOOBquOBvyzjgZfjgo0NCivjgYvjgb/jgbLjgonjgZ8s44Gy44GV44GC44GNDQor44GL44Gq44KC44KKLOOBqOOBj+OBmOOCjQ0KK+OBi+OBreOBkyzjgoTjgZnjgbLjgZUNCivjgYvjga3jgZMs44KI44GX44KG44GNDQor44GL44Gr44KPLOOBv+OCjw0KK+OBi+OBleOBvizjgajjgZfjgobjgY0NCivjgYvjgZss44Gy44Gn44GC44GNDQor44GL44GX44KA44KJLOOBsuOBp+OBguOBjQ0KK+OBi+OBn+OBiuOBiyzjgYLjgY3jgbLjgZMNCivjgYvjgajjgYYs44G+44GV44Gy44KNDQor44GL44Go44GGLOOBleOCj+OBkw0KK+OBi+OBqOOBhizjgabjgaTjgoQNCivjgYvjgajjgYYs44KI44GX44G/44GtDQor44GL44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBoSzjgZXjgajjgZcNCivjgYvjgo/jgZDjgaEs44Gb44GE44GE44GhDQor44GL44KP44GuLOOBl+OBkuOBig0KK+OBi+OCj+OBl+OBvizjgYvjgZrjgbLjgZUNCivjgY3jgY/jgaEs44Gk44KI44GXDQor44GN44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBjeOCgOOCiSzjgbLjgo3jgobjgY0NCivjgY3jga7jgZfjgZ8s44Gf44Gk44KEDQor44GN44GX44Gv44KJLOOBpuOCi+OBig0KK+OBjeOBl+OBi+OCjyzjgojjgZfjgYoNCivjgY3jgZ8s44GC44GN44KJDQor44GN44Gf44GM44KPLOOBruOCiuOBvuOBlQ0KK+OBjeOBn+OBrizjgbLjgo3jgobjgY0NCivjgY3jgZ/jgoTjgb4s44G144G/44Go44GXDQor44GN44KI44GK44GLLOOBkeOCk+OBmA0KK+OBjeOCiOOBmyzjgZjjgoXjgpPjgZMNCivjgZPjgbDjgoos44GR44GE44GYDQor44GT44Gw44KE44GXLOOBk+OBnw0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgZPjgbzjgoos44Gu44G244Gy44GnDQor44GT44GE44KPLOOBkeOBhOOBkw0KK+OBk+OBmOOBvizjgaHjgZXjgagNCivjga/jgZfjgoLjgags44G/44Gk44GKDQor44GT44G/44KE44G+LOOBpuOBpOOBmA0KK+OBk+OCk+OBqSzjgajjgoLjgYLjgY0NCivjgZPjgpPjgaks44KI44GX44Gy44KNDQor44GT44KT44GpLOOBi+OBpOOChA0KK+OBk+OBl+OBi+OCjyzjgabjgaQNCivjgZPjgabjgYzjgo8s44Gk44GQ44GC44GNDQor44GT44KPLOOBsuOBp+OChuOBjQ0KK+OBj+OBvOOBnyzjgorjgYgNCivjgY/jgbzjgZ8s44G/44Gh44Gv44KLDQor44GP44Gp44GGLOOCiuOBiOOBkw0KK+OBj+OBjCzjgZvjgYTjgZMNCivjgoLjgoos44G+44GV44KIDQor44GP44Gr44Gf44GRLOOBpOOBi+OBlQ0KK+OBj+OCieOBi+OBkSzjgZ/jgabjgY0NCivjgY/jgoos44GL44GK44KLDQor44GP44GV44G144GLLOOBk+OBhuOBn+OCjeOBhg0KK+OBj+OCj+OBsOOCiSzjgZ/jgb7jgb8NCivjgb7jgaHjgaAs44Gf44GR44GXDQor44G+44KL44KE44G+LOOBteOBv+OCiA0KK+OBn+OBkeOBhuOBoSzjgZPjgYbjgYTjgaENCivjgb7jgaTjgbAs44Gf44GL44Gy44KNDQor44G+44Gk44Gw44KJLOOBqOOCguOChuOBjQ0KK+OBvuOBpOOBoOOBhOOCiSzjga7jgorjgZMNCivjgb7jgaTjgoLjgags44KI44GZ44GRDQor44G+44Gk44KC44GoLOOBguOBjeOBteOBvw0KK+OBvuOBpOOBquOBjCzjgZHjgpPjgZgNCivjgb7jgaTjgYos44Gu44G244KG44GNDQor44G+44Gk44GKLOOBl+OCh+OBsuOBoQ0KK+OBvuOBpOOBiizjgbLjgo3jgobjgY0NCivjgb/jgY/jgass44Gv44KE44GoDQor44G/44Gq44GM44KPLOOCiOOBl+OBsuOCjQ0KK+OBv+OBquOBjOOCjyzjgobjgY3jgbLjgo0NCivjgb/jga7jgaYs44Gv44GY44KBDQor44G/44GfLOOBsuOCjeOBi+OBmg0KK+OBv+OBqOOCgSzjgb7jgZXjgbLjgagNCivjgb/jgaTjgoTjgb4s44GX44Gu44G2DQor44G/44KE44GhLOOBqOOBiuOCiw0KK+OBv+OChOOBmCzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZjjgb4s44KG44GNDQor44G/44KE44GfLOOBguOBjeOBig0KK+OBv+OChOOBluOBjSzjgYLjgaTjgZcNCivjgb/jgoTjgZbjgY0s44Gf44GR44KNDQor44G/44KE44GW44GoLOOBvuOBjQ0KK+OBv+OChOOBluOCjyzjgojjgorjgZMNCivjgb/jgZ7jgZDjgaEs44KI44GX44GC44GNDQor44G/44Ga44GELOOBv+OBuw0KK+OCguOCk+OBrizjgb7jgZXjgoQNCivjgoLjgoos44Gu44KK44KG44GNDQor44KC44KKLOOBl+OCk+OChA0KK+OCguOCiuOBnyzjgoTjgZnjgZcNCivjgoLjgorjgZ8s44KP44Gf44KLDQor44KC44KK44KE44G+LOOBl+OBkuOCiw0KK+OCgOOCieOBi+OBvyzjgajjgoLjgYLjgY0NCivjgoDjgonjgYvjgb8s44KI44GX44GP44GrDQor44KA44KJ44GL44G/LOOBn+OBkeOBlw0KK+OCgOOCieOBvuOBpCzjgZfjgoXjgYTjgaENCivjgoDjgo3jgZ7jga4s44Gf44GL44G144G/DQor44Gq44GM44G244GhLOOBk+OBhuOBmA0KK+OBquOBjOOBrizjgb/jgaTjgYoNCivjgarjgYzjgZss44GR44GE44GTDQor44Gq44GM44Gf44GrLOOBjeOCiOOBguOBjQ0KK+OBquOBlOOChCzjgb7jgZPjgagNCivjgarjgYvjgYzjgo8s44KI44GX44Gq44KKDQor44Gq44GL44G/44GhLOOBsuOCjeOBjQ0KK+OBquOBi+OCgOOCiSzjgoLjgajjgZMNCivjgarjgYvjgoDjgoks44G+44GV44KI44GXDQor44Gq44GL44GuLOOBiOOBhOOBmA0KK+OBquOBi+OBl+OBvizjgb/jgaTjgbLjgo0NCivjgavjgZfjgaAs44Gu44KK44GZ44G/DQor44Gr44GX44Gv44KJLOOBj+OCi+OBvw0KK+OBq+OBl+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgavjgZfjgYrjgYss44G+44KK44GTDQor44Gu44GQ44GhLOOCiuOCheOBsuOBoQ0KK+OBruOBmyzjgZPjgYbjgYTjgaHjgo0NCivjgYrjgbDjgZ8s44G/44Gu44KLDQor44GK44Gh44GC44GELOOBl+OCk+OBmeOBkQ0KK+OBiuOBoeOBguOBhCzjgbLjgo3jgYLjgY0NCivjgYrjgYzjgo8s44Gy44KN44GXDQor44GK44GM44KPLOOBv+OBpOOCiw0KK+OBiuOBjOOCjyzjgorjgoXjgbLjgaENCivjgYrjgYzjgo8s44GX44G7DQor44GK44GO44GuLOOBsuOCjeOBguOBjQ0KK+OBiuOBkOOCiSzjgYvjgYrjgooNCivjgZPjgpPjgaks44GX44KHDQor44GK44G4LOOBmOOCheOBq+OBoeOCjQ0KK+OBiuOBjOOBjSzjgb7jgZXjga7jgooNCivjgYrjgavjgZcs44Gy44KN44GXDQor44GK44GuLOOBsuOCjeOBruOCig0KK+OBiuOBnyzjgZjjgoXjgpMNCivjgYrjgZfjgo0s44GC44Gk44GoDQor44GK44GfLOOBl+OCk+OChA0KK+OBiuOBn+OBl+OCjSzjgYvjgZrjgbLjgZMNCivjgYrjgaQs44Gu44G844KLDQor44GK44GkLOOBvuOBleOBmuOBvw0KK+OBiuOBsuOCg+OBjizjgobjgYbjgZgNCivjgYrjgbLjgoPjgb4s44GE44GP44GTDQor44GK44GL44KC44GoLOOBsuOBp+OBsuOBkw0KK+OBiuOBi+OChOOBvizjgZ/jgYvjgZcNCivjgYrjgZHjgZ/jgass44G+44GV44GoDQor44GK44GP44KE44G+LOOBn+OBv+OChA0KK+OBiuOBruOBp+OCiSzjgYvjgaTjgajjgZcNCivjgYrjgZbjgo8s44G+44KG44G/DQor44GV44GE44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgoTjgZnjgobjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44G/44GhDQor44GV44GL44GQ44GhLOOBmOOCjQ0KK+OBleOBi+OBquOBiyzjga7jgorjgYLjgY0NCivjgZXjgYvjgavjgo8s44G+44GV44G/44GhDQor44GV44GL44GG44GhLOOBsuOCjeOBlw0KK+OBleOBj+OCieOBhCzjgYvjgZrjgZfjgZINCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GV44GuLOOBsuOBp+OBjQ0KK+OBleOBleOBjSzjgb7jgZXjgYvjgZoNCivjgZXjgZXjgY0s44KB44GQ44G/DQor44GV44GV44GNLOOBiOOBhOOBmA0KK+OBleOBleOBvizjgaHjga/jgosNCivjgZXjgajjgYYs44Gy44KN44G244G/DQor44GV44Go44GGLOOBv+OBpOOCiOOCig0KK+OBleOBqOOBhizjgZ/jgaTjgZMNCivjgZXjgajjgYYs44GP44G/44GTDQor44Gr44GX44G+44GfLOOBsuOBp+OBqOOBlw0KK+OBleOCj+OBoCzjgb/jga7jgosNCivjgZvjgpPjgbAs44GL44Ga44Gy44GnDQor44Gb44GoLOOBpuOCi+OBig0KK+OBl+OBtuOChCzjgZ/jgYvjga7jgbYNCivjgZfjgYQs44Gy44KN44GL44GaDQor44GX44G+44GgLOOCguOBqOOCgA0KK+OBl+OBvuOBoCzjgojjgorjgZMNCivjgYrjgYvjgoLjgags44Go44GX44Gf44GLDQor44GX44Gq44GM44KPLOOBpOOBqOOCgA0KK+OBl+OCk+OBi+OCjyzjgb7jgZXjgobjgY0NCivjgZfjgpPjgY3jgoUs44Gf44GP44KEDQor44GX44Gu44GgLOOBvuOBleOBvw0KK+OBl+OBruOBr+OCiSzjgYjjgooNCivjgYLjgZXjgYvjgo8s44KK44GIDQor44GX44GK44Gv44KJLOOBvuOBleOBi+OBmg0KK+OBl+OCjeOBnyzjgZ/jgZHjgoQNCivjgZnjgY7jgoLjgags44Gy44KN44KG44GNDQor44GZ44GO44KE44G+LOOBn+OBi+OBlw0KK+OBmeOBkOOBoSzjgb/jgo8NCivjgoLjgo3jgajjgb8s44Gm44Gk44GKDQor44GZ44Ga44GNLOOBvuOBleOBsuOBlQ0KK+OBn+OBkOOBoSzjgobjgbLjgaENCivjgZ/jgZDjgaEs44KI44GX44Gu44KKDQor44Gf44Gv44KJLOOChuOBjeOBig0KK+OBn+OBi+OBjizjgb/jgZXjgZMNCivjgZ/jgYvjga/jgZcs44GT44G444GEDQor44Gf44GL44GELOOBv+OBiA0KK+OBn+OBi+OChOOBvizjgb7jgZXjgajjgZcNCivjgZ/jgZEs44GV44Gh44GIDQor44Gf44GR44Gw44KE44GXLOOBsuOBleOChA0KK+OBn+OBkeOBi+OCjyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYbjgaEs44Gm44KL44GIDQor44KP44Gf44Gq44G5LOOBm+OBhOOBhOOBoQ0KK+OBn+OBkeOBhuOBoSzjgYvjgYrjgosNCivjgZ/jgb/jgoQs44G+44GV44GoDQor44Gf44KA44KJLOOBi+OBpOOBsuOCjQ0KK+OBn+OBquOBuSzjgYvjgZrjgbLjgacNCivjgZ/jgarjgYss44GN44KI44Gf44GLDQor44Gf44Gq44GLLOOBruOBtuOBkw0KK+OBn+OBquOBiyzjga/jgovjgZMNCivjgZ/jgavjgZDjgaEs44G+44GV44G144G/DQor44Gf44Gr44GQ44GhLOOBguOBjeOBig0KK+OBn+OBq+OCgOOCiSzjgobjgYbjgZgNCivjgZ/jga7jgYbjgYgs44Gy44KN44KG44GNDQor44Gf44KL44GV44KPLOOCiOOBl+OBig0KK+OBn+OBl+OCjSzjgYvjgZrjgYoNCivjgabjgonjgaAs44GR44KT44GYDQor44Go44GMLOOBi+OBmuOBkw0KK+OBqOOBjOOBlyzjgarjgYrjgY0NCivjgajjgZQs44KK44KF44GYDQor44Go44GP44Gq44GMLOOBmOOCheOCk+OBkw0KK+OBqOOCguOBrizjgYvjgbvjgosNCivjgajjgojjgaAs44GT44GG44GYDQor44Gk44Gh44KELOOBsuOBp+OBjQ0KK+OBpOOBi+OBr+OCiSzjgb7jgZXjgYvjgZoNCivjgYbjgonjgZXjgY0s44Gy44KN44GXDQor44KP44GgLOOBvuOBleOBsuOCjQ0KK+OCj+OBoCzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44Gu44G244GTDQor44KP44Gf44Gq44G5LOOBpOOCiOOBlw0KK+OChOOBjuOBrOOBvizjgYLjgaTjgZcNCivjgoTjgb7jgaAs44GL44Ga44Gy44KNDQor44KE44G+44GgLOOBn+OBpOOBig0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgoLjgags44GC44GN44GTDQor44KE44G+44KC44GoLOOBqOOBl+OBr+OCiw0KK+OChOOBvuOCguOBqCzjgobjgY3jgbLjgZMNCivjgoTjgb7jgoLjgags44Gy44Gn44G/44GtDQor44KE44G+44Gq44GLLOOBl+OBkuOBig0KK+OChOOBvuOBquOBiyzjgZfjgpPjgoQNCivjgoTjgb7jgZfjgZ8s44GC44KE44GTDQor44Gy44GQ44GhLOOBi+OBmuOBvw0KK+OChOOBvuOBluOBjSzjgojjgZjjgo0NCivjgoTjgarjgY4s44Gy44KN44GC44GNDQor44KE44GZ44GgLOOBruOBtuOBsuOCjQ0KK+OChOOBmeOBiCzjgobjgYbjgZgNCivjgojjgZPjgYgs44Go44KC44KE44GZDQor44KI44GT44KE44G+LOOCjOOBhOOBkw0KK+OCiOOBreOBr+OCiSzjgb7jgZXjgajjgZcNCivjgojjga3jgb/jgaQs44G144G/44GKDQor44KI44KK44G+44GkLOOBkeOBhOOBkw0KK+OCiOOBl+OBoCzjgajjgZfjgYLjgY0NCivjgojjgZfjga4s44Gy44GV44GXDQor44KI44GX44Gf44GNLOOBkeOBhOOBmA0KK+OChuOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgobjgoos44Gy44Gn44GoDQor44KC44KKLOOBn+OBpOOChA0KK+OBleOBleOBjSzjgobjgY3jgbLjgo0NCivjgZfjgonjga/jgb4s44Gh44Gy44KNDQor44Gm44KT44Gx44GPLOOBi+OBiuOCiw0KK+OBhuOBoeOBoCzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgYbjgoks44GY44KF44KT44GYDQor44G+44Gk44GQ44G+LOOBteOBv+OBrg0KK+OBguOBuSzjgbLjgo3jgZcNCivjgYLjgbks44Gu44G244KG44GNDQor44GC44G5LOOBqOOBl+OChA0KK+OBguOBuSzjga7jgbbjgYLjgY0NCivjgYLjgaDjgaEs44KK44GI44GTDQor44GC44GE44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OBguOBmOOBvizjgb7jgZPjgagNCivjgYLjgYvjgZXjgYss44Go44KC44GTDQor44GC44GN44KC44GoLOOBteOBv+OBsuOCjQ0KK+OBguOBjeOChOOBvizjgb/jgaTjgbLjgo0NCivjgYLjgY3jgoTjgb4s44GK44GV44KADQor44GC44GP44GtLOOBmOOCheOCk+OChA0KK+OBguOBvuOBrizjgajjgoLjgYoNCivjgYLjgb7jga4s44Gf44GL44Gy44GVDQor44GC44KB44G/44KELOOBi+OBpOOBsuOBkw0KK+OBguOCk+OBqeOBhizjgZ/jgZHjgbLjgo0NCivjgYLjgpPjganjgYYs44KG44Gy44Gh44KNDQor44GC44KT44Gp44GGLOOBquOBiuOChA0KK+OBguOCk+OBmOOBjSzjgajjgosNCivjgYLjgpPjgbrjgYTjgZgs44G144G/44GTDQor44GC44GK44GNLOOBsuOCjeOChuOBjQ0KK+OBguOBiuOBjSzjgYvjgaTjgb8NCivjgYLjgYrjgY0s44GL44Ga44GKDQor44GC44GK44GNLOOBquOBiuOBguOBjQ0KK+OBguOBiuOBjSzjgarjgarjgYoNCivjga/jgonjgZfjgb4s44Gk44KI44GXDQor44GC44GK44GNLOOChOOBmeOBguOBjQ0KK+OBguOBiuOBjSzjgajjgYrjgosNCivjgYLjgYrjgoTjgY4s44GT44GeDQor44GC44GK44KE44G+LOOBn+OBi+OBlw0KK+OBguOBiuOChOOBvizjgZ/jgaTjgoQNCivjgYLjgonjgYQs44Gy44KN44GXDQor44GC44KJ44GNLOOBvuOBquOBtg0KK+OBguOCieOBjSzjgaHjgYLjgY0NCivjgYLjgonjgZ8s44G+44GV44Gk44GQDQor44GC44KJ44KELOOBv+OBjQ0KK+OBk+OBsOOChOOBi+OCjyzjgb/jgo8NCivjgYLjgorjgZ8s44GL44Ga44GKDQor44GC44GV44GwLOOChuOBhuOBkw0KK+OBguOBleOBiOOBoCzjgZfjgoXjgavjgaENCivjgYLjgZXjgYss44KI44GX44GTDQor44GC44GV44GP44KJLOOBl+OBkuOBr+OCiw0KK+OBguOBleOBrizjgobjgY3jgZMNCivjgYLjgZXjga4s44GY44KF44KTDQor44GC44GX44G5LOOBqOOBl+OBguOBjQ0KK+OBguOCj+OBv+OChCzjgorjgYsNCivjgYLjgZbjgb8s44Gk44Go44KADQor44GC44Gc44KE44Gq44GOLOOBquOBiuOBsuOBlQ0KK+OBguOBmuOBvizjgZ/jgYvjgobjgY0NCivjgYLjgZrjgb4s44KI44Gy44GhDQor44GC44Ga44G+LOOBkeOBhOOBmeOBkQ0KK+OBsOOBsCzjgZPjgYbjgYTjgaENCivjgbDjgbAs44G+44GT44GoDQor44Gw44GwLOOBi+OBpOOBmA0KK+OBsOOBquOBiyzjgb/jgY0NCivjgZXjgZ/jgZEs44GX44KT44GE44GhDQor44Gh44GwLOOChOOBmeOBsuOCjQ0KK+OBoeOBjuOCiSzjgarjgovjgbLjgagNCivjgaHjga/jgoks44KI44GX44KG44GNDQor44Gh44GL44GELOOBquOCgOOBmQ0KK+OBoeOCh+OCkyzjgajjgoLjgaHjgYsNCivjgaHjgoXjgb4s44Gf44Gk44GKDQor44Gg44GELOOBl+OCheOBmA0KK+OBoOOBhOOBiizjgajjgoLjgYLjgY0NCivjgaDjgaYs44G+44GV44Gy44GTDQor44Gn44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBp+OCjyzjgaTjgajjgoANCivjganjgYQs44Gy44KN44G/DQor44GI44Gz44GV44KPLOOCiuOBiA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgYjjgYTjgoLjgoos44Gq44GK44KG44GNDQor44GI44KT44GpLOOCiOOBl+OBi+OBmg0KK+OBiOOCk+OBqSzjgYvjgaTjgobjgY0NCivjgYjjga7jgoLjgags44Gg44GE44GZ44GRDQor44G144GY44GELOOBi+OBmuOChA0KK+OBteOBmOOBhCzjgZHjgYTjgZMNCivjgbXjgZjjgYQs44KC44Go44Gv44KLDQor44G144GY44GELOOBruOBtuOBsuOBkw0KK+OBteOBmOOBhCzjgZ/jgYvjgbXjgb8NCivjgbXjgZjjgYvjgo8s44GC44Gk44GXDQor44G144GY44KC44KKLOOBguOBpOOBkw0KK+OBguOBiuOBjSzjgZ/jgZHjgZcNCivjgbXjgZjjgoLjgags44G+44GV44Gy44KNDQor44G144GY44GK44GLLOOBsuOBp+OBjQ0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GT44GG44GYDQor44G144GL44GKLOOBiOOBv+OBkw0KK+OBteOBj+OBoCzjgZ/jgYTjgZ4NCivjgbXjgY/jgaAs44Gy44KN44G/44GkDQor44G144GP44GELOOBn+OBi+OBkw0KK+OBteOBj+OBhCzjga/jgovjgb8NCivjgbXjgY/jgoLjgags44Gq44GK44GNDQor44G144GP44GX44G+LOOBn+OBi+OBig0KK+OBteOBj+OBl+OBvizjgZHjgYTjgZMNCivjgbLjga4s44Gy44KN44GL44GaDQor44G144GP44GW44KPLOOBkeOCk+OBhOOBoeOCjQ0KK+OBteOBj+OBluOCjyzjgZ/jgaTjga7jgooNCivjgbXjgarjgaAs44G/44Gk44KI44GXDQor44G144KL44Gg44GmLOOBqOOBl+OBguOBjQ0KK+OBteOCi+OChCzjgZfjga7jgbYNCivjgbXjgZ/jgoDjgoks44GC44GN44GTDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBlOOBqCzjgarjgYrjgoQNCivjgZTjgags44Gm44Gk44KNDQor44GU44GoLOOChOOBmeOBsuOBlQ0KK+OBlOOBqCzjgoDjgaTjgYoNCivjga/jgbAs44GX44KT44GE44GhDQor44Gv44Gh44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBr+OBjuOCj+OCiSzjgbLjgo3jgZcNCivjga/jgb7jgbks44Gy44Gn44GKDQor44Gv44G+44GgLOOBk+OBhuOBmA0KK+OBr+OBvuOBoCzjgbLjgafjgZ/jgYsNCivjgb7jgYjjgYrjgYss44Gy44Gn44Gu44G2DQor44Gv44Gq44G/LOOBruOBtuOBkw0KK+OBr+OBquOBiuOBiyzjgZXjgaENCivjgZvjgZbjgYQs44GN44KH44GTDQor44Gv44KJLOOBv+OBjeOBkw0KK+OBleOBqOOBhizjgobjgYbjgZMNCivjga/jgoks44GR44GE44GTDQor44Gv44KJ44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OCieOBoCzjgb/jgY3jgoQNCivjga/jgonjgaAs44KC44Go44Gy44GVDQor44Gv44KJ44GgLOOBl+OBkuOBjQ0KK+OBr+OCieOBoCzjgYvjgZrjgoQNCivjga/jgorjgb4s44GL44GE44Gh44KN44GGDQor44G744KT44G+LOOCiOOBhuOBkw0KK+OBr+OCi+OChOOBvizjgojjgYbjgZMNCivjga/jgZss44G+44GV44G/DQor44Gv44Gb44GM44KPLOOBl+OCkw0KK+OBr+OBm+OBjOOCjyzjgZ/jgYvjgobjgY0NCivjga/jgZvjgYzjgo8s44KI44GX44G/DQor44Gv44Gb44GM44KPLOOBn+OBi+OBsuOBpw0KK+OBr+OBl+OBkOOBoSzjgbLjgajjgZcNCivjga/jgZfjgoLjgags44KE44GZ44Gy44GnDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBr+OBl+OBmuOCgSzjgarjgYrjgY0NCivjga/jgZfjgZrjgoEs44KK44KH44GYDQor44Gv44GX44Ga44KBLOOBm+OBhOOBlA0KK+OBr+OBnyzjgYLjgaTjgZcNCivjga/jgZ/jga4s44Gq44Gk44G/DQor44Gv44Gf44GuLOOBiOOBhOOBhOOBoQ0KK+OBr+OBqOOCiizjgYvjgZrjgbLjgZMNCivjga/jgaPjgajjgoos44G+44GV44GC44GNDQor44Gv44Gj44Go44KKLOOBv+OBpOOBruOCig0KK+OBr+OBo+OBqOOCiizjgarjgYrjgY0NCivjga/jgaPjgajjgoos44Gu44G244GC44GNDQor44Gv44Gj44Go44KKLOOBl+OBkuOCiw0KK+OBr+OBo+OBqOOCiizjgojjgbLjgaENCivjga/jgaPjgajjgoos44Gf44Gk44GKDQor44Gv44KE44GL44KPLOOChOOCiOOBhA0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgoTjgb8s44GC44GN44Gy44GTDQor44Gv44KE44GXLOOBsuOBqOOBlw0KK+OBr+OChOOBlyzjgYvjgaTjgZMNCivjga/jgoTjgZcs44GL44Ga44KEDQor44Gv44KE44GXLOOBk+OBhuOBn+OCjeOBhg0KK+OBr+OChOOBlyzjgb/jgo8NCivjgZXjgZXjgZ/jgass44GX44KF44KT44GZ44GRDQor44Gv44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBluOBvizjgaHjgYvjgokNCivjgbjjgpPjgb8s44GL44Ga44Go44KCDQor44Gy44GzLOOBquOBiuOBjQ0KK+OBsuOBoOOBiyzjgZ/jgZHjgZcNCivjgbLjgaDjgYss44KI44GE44GhDQor44Gy44Gg44GLLOOBguOBjeOBsuOBkw0KK+OBsuOBiOOBoCzjgobjgY0NCivjgbLjgYzjgY0s44GV44Go44GXDQor44Gy44GM44GXLOOBvuOBleOBjQ0KK+OBsuOBhOOBqeOCgSzjgo/jgZ/jgosNCivjgbLjgZjjgY/jgo0s44GR44GE44GTDQor44G144GP44GELOOBquOBiuOBvw0KK+OBsuOBvizjgZnjgb/jgbLjgagNCivjgbLjgYrjgY0s44Gy44Gn44GC44GNDQor44Gy44KJ44GELOOChuOBv+OBkw0KK+OBv+OBjSzjgb7jgZXjgZ/jgYsNCivjgbLjgonjga4s44G+44KG44G/DQor44Gy44KJ44GuLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBnyzjgYLjgY3jgokNCivjgbLjgonjgaTjgYss44G+44GV44Gu44KKDQor44G744GgLOOBm+OBhOOBhOOBoQ0KK+OBsuOCieOChOOBvizjgYvjgarjgZMNCivjgbLjgo3jgbks44Go44KC44G/DQor44Gy44KN44GELOOBqOOBkw0KK+OBsuOCjeOBleOCjyzjgobjgYbjgZMNCivjgbLjgo3jgZXjgo8s44Gf44KN44GGDQor44Gy44KN44GZ44GILOOBv+OBoeOBi+OBmg0KK+OBsuOCjeOBnyzjgZfjgofjgZgNCivjga/jgoTjgb4s44KI44GX44Gy44GVDQor44Gy44KN44KP44Gf44KKLOOBsuOCjeOBv+OBoQ0KK+OBsuOBleOCguOBqCzjgZvjgYTjgYTjgaENCivjgbLjgZXjga4s44GE44GV44GKDQor44Gy44GV44KG44GNLOOCiOOBl+OBjQ0KK+OBsuOBl+OBoCzjgajjgoHjgYQNCivjgbLjgZfjgZ/jgass44G+44KKDQor44KP44GgLOOBvuOBleOChuOBjQ0KK+OBsuOChOOBvizjgbXjgY3jgogNCivjgYLjgorjgY/jgoks44GL44Ga44Gy44KNDQor44G744KT44GgLOOBl+OCjQ0KK+OBu+OCk+OBoCzjgbXjgb/jgYvjgZoNCivjgbvjgpPjgZQs44Gy44KN44GNDQor44G744KT44G+LOOBquOBiuOBkw0KK+OBu+OCk+OBvizjgY3jgY/jgb8NCivjgb7jgaTjgoLjgags44G+44GV44Gy44KNDQor44G744KKLOOBvuOBleOBsuOCjQ0KK+OBu+OCiizjgarjgYrjgZMNCivjgbvjgorjgbks44GY44KF44KT44GTDQor44G744KK44GILOOBiuOBleOCgA0KK+OBu+OCiuOBiCzjgobjgYbjgZMNCivjgbvjgorjgYgs44GV44KG44KKDQor44G744KK44GG44GhLOOBv+OBi+OBkw0KK+OBu+OBl+OBsCzjgojjgZfjgYLjgY0NCivjgbvjgZfjgYvjgo8s44KG44GL44KKDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBu+OBl+OBqizjgoTjgZnjgZcNCivjgbvjgoos44G144G/44GIDQor44G744GX44GuLOOBruOBtuOBsuOBkw0KK+OBu+OBneOBoCzjgobjgZ/jgYsNCivjgbvjgaPjgZ8s44G/44Gu44KLDQor44G744Gh44GpLOOBkeOBhOOBmeOBkQ0KK+OBhOOBtuOBiyzjgb7jgZXjgagNCivjgYTjgaHjgYvjgo8s44KG44Gy44GhDQor44GE44Gh44GL44KPLOOBguOBjeOBruOBtg0KK+OBhOOBoeOBvuOBmSzjgZHjgpPjgZ8NCivjgYTjgaHjga7jgZss44G+44Gq44G2DQor44GE44GnLOOBguOBjeOBqA0KK+OBhOOBjOOCieOBlyzjgajjgZfjgobjgY0NCivjgYTjgYzjgZ8s44GC44GN44Gu44KKDQor44GE44GELOOBvuOBleOBsuOBkw0KK+OBhOOBhOOBoCzjgZ/jgaDjgZcNCivjgYTjgYTjgaAs44KI44GX44G144G/DQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBhOOBhOOBrizjgbLjgafjgYoNCivjgYTjgYTjgojjgoos44Gq44GK44GNDQor44GE44GE44Ga44GLLOOBk+OBhuOBhOOBoQ0KK+OBhOOBi+OCi+OBjizjga7jgorjgobjgY0NCivjgYTjgYvjgo8s44Gf44GL44GXDQor44GE44GR44GhLOOBruOBtuOBig0KK+OBhOOBkeOBoCzjgZXjgYrjgooNCivjgYTjgZHjgaAs44Gf44GL44KEDQor44GE44GR44GgLOOCiOOBl+OBpuOCiw0KK+OBhOOBkeOBoCzjgbLjgajjgZcNCivjgYTjgZHjgYzjgb8s44G+44KK44GTDQor44GE44GR44GY44KKLOOBpOOBqOOCgA0KK+OBhOOBkeOBn+OBjSzjgYvjgaTjgb8NCivjgYTjgY/jgoLjgags44G+44GV44Gy44GTDQor44GE44G+44GELOOBvuOBleOBqA0KK+OBhOOBvuOBhCzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgbvjgZ3jgYQs44KG44KK44GTDQor44GE44G+44GELOOBvuOBleOCiOOBlw0KK+OBhOOBvuOBq+OBlyzjgb7jgZXjgobjgY0NCivjgYTjgarjgaAs44GX44KT44GYDQor44GE44Gq44GM44GNLOOBhOOBoeOCjeOBhg0KK+OBhOOBquOBkizjgb/jgaHjga/jgosNCivjga/jgZbjgb4s44G+44GT44GoDQor44GE44GuLOOBi+OBpOOChA0KK+OBhOOBruOBvuOBnyzjgZHjgYTjgZnjgZENCivjgYTjga7jgYbjgYgs44G+44G/DQor44KE44GZ44GL44KPLOOBk+OBhuOBhOOBoeOCjQ0KK+OBr+OCiyzjgoLjgajjga/jgosNCivjgYTjga7jgYbjgYgs44Gf44GL44GTDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgajjgoLjgbLjgo0NCivjgYTjga7jgYbjgYgs44GL44Ga44KEDQor44GE44GK44GNLOOBj+OBq+OBiuOBvw0KK+OBhOOCiuOBiCzjgZfjgpMNCivjgYTjgZXjgYss44Gf44GR44GXDQor44GE44GV44GLLOOCjOOBhOOBkw0KK+OBiuOCguOCiizjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgZfjgbDjgZcs44GV44G244KNDQor44GE44GX44GgLOOBn+OBkeOBlw0KK+OBhOOBl+OBoCzjga/jgZjjgoENCivjgYTjgZfjga/jgoks44G+44Gq44G2DQor44GE44GX44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBqCzjgbLjgZXjgoLjgagNCivjgYTjgZfjgYQs44GY44KF44KTDQor44GE44GX44GELOOBkeOBhOOBn+OCjeOBhg0KK+OBhOOBl+OBhCzjgorjgYgNCivjgYTjgZfjgYQs44Gf44GL44Gy44GoDQor44GE44GX44GELOOBqOOBiuOCiw0KK+OBhOOBl+OBhCzjgabjgovjgYoNCivjga/jga3jgYTjgZcs44Gk44Go44KADQor44GE44GX44GELOOBteOBv+OBruOCig0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgbLjgZUNCivjgYTjgZfjgYvjgo8s44G+44GV44G/44GhDQor44GE44GX44GL44KPLOOBruOBtuOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgajjgYrjgosNCivjgYTjgZfjgYvjgo8s44KP44Gf44KLDQor44GE44GX44GK44GLLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBpOOBiyzjgb7jgarjgbYNCivjgYTjgZfjgo/jgZ8s44GR44GE44GE44GhDQor44GE44GX44GW44GLLOOBhuOCieOCiQ0KK+OBhOOBl+OBluOBiyzjgojjgZfjgagNCivjgYTjgZfjgZbjgY0s44Gv44KL44GKDQor44GE44GX44Ga44GNLOOBsuOBp+OBig0KK+OBhOOBnSzjgZHjgYTjgZjjgo0NCivjgYTjgZ3jgYzjgYQs44G/44GN44GKDQor44GE44Gf44GwLOOBguOBpOOBlw0KK+OBhOOBqOOBhizjga/jgovjgYoNCivjgYTjgajjgYYs44GR44GE44GYDQor44GE44Go44GGLOOBvuOBleOBkw0KK+OBhOOBqOOBhizjgZfjgpPjgZnjgZENCivjgYTjgajjgYYs44KE44GZ44GXDQor44GE44Go44GGLOOCiOOBhuOBkw0KK+OBsuOBoOOBiyzjgojjgZnjgZENCivjgYTjgajjgYYs44KI44GX44Gy44GTDQor44GE44Go44GGLOOChuOBiw0KK+OBq+OBlyzjga7jgorjgZMNCivjgYTjgo/jgaDjgows44KI44GX44KG44GNDQor44GE44KP44Gv44GXLOOBqOOBl+OChuOBjQ0KK+OBhOOCj+OBjSzjgYLjgorjgbLjgo0NCivjgYTjgo/jgoLjgags44GT44GG44GYDQor44GE44KP44GV44GNLOOBiOOBhOOBhOOBoQ0KK+OBsuOCieOBpOOBiyzjgZPjgYbjgZgNCivjgYTjgo/jgZXjgY0s44Gq44GK44GoDQor44GE44KP44GV44GNLOOBl+OBkuOBsuOBqA0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZMNCivjgZjjgpPjgZAs44KG44GG44GYDQor44GE44KP44GX44GSLOOBhOOBruOCig0KK+OBhOOCj+OBnyzjgb7jgZXjgbLjgo0NCivjgZjjgpPjgZAs44G+44GV44Gy44KNDQor44GY44KH44GULOOBsOOCkw0KK+OBi+OBjCzjgZXjgajjgZcNCivjgYvjgYzjgbYs44GC44Gk44GXDQor44GL44GO44KE44G+LOOBsuOBp+OBpOOBkA0KK+OBi+OBhCzjgb7jgZXjgbLjgo0NCivjgYvjgYTjgaAs44KG44GNDQor44GL44GE44GgLOOBl+OCk+OBhOOBoQ0KK+OBi+OBvuOBoSzjgojjgZfjga7jgooNCivjgYvjgb7jgaAs44KG44GG44GTDQor44GL44G+44G744KKLOOBv+OBmuOBuw0KK+OBi+OBvuOBnyzjgojjgZfjga7jgooNCivjgYvjgoHjgaAs44Gu44G244GL44GaDQor44GL44KB44GELOOBsuOCjeOBlw0KK+OBi+OBv+OBrizjgbLjgo3jgobjgY0NCivjgYvjgb/jga4s44G+44GV44KG44GNDQor44GL44G/44Go44GuLOOBsuOCjeOChuOBjQ0KK+OBi+OBv+OChCzjgZXjgajjgZMNCivjgYvjgb/jgoQs44G+44GT44GoDQor44GL44G/44KE44G+LOOBsuOCjeOBlw0KK+OBi+OCguOCkyzjgojjgZfjga7jgooNCivjgYvjgoLjgpMs44KE44GZ44GL44GaDQor44GL44KTLOOBi+OBpOOChA0KK+OBi+OBquOBhCzjgZfjgpPjgZjjgo0NCivjgYvjgarjgYQs44Gy44Gn44GKDQor44GL44Gq44GYLOOChuOBng0KK+OBi+OBquOBiuOBiyzjga7jgorjgobjgY0NCivjgYvjgarjgZbjgo8s44Gu44KK44G+44GVDQor44GL44KT44G5LOOBsuOCjeOChuOBjQ0KK+OBi+OCk+OBoCzjgb7jgZXjgZMNCivjgYvjgpPjgaAs44Go44KC44Gy44GTDQor44GL44Gt44GNLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBreOBjeOCiCzjgb7jgobjgb8NCivjgYvjga3jgZMs44G144G/44Gy44GTDQor44GL44Gt44GX44GfLOOBn+OBkeOBlw0KK+OBi+OBreOChOOBmSzjgbLjgajjgZcNCivjgYvjga4s44KK44KF44GYDQor44GL44GuLOOBruOBtuOChuOBjQ0KK+OBi+OCk+OBmuOBhCzjgaHjgYLjgY0NCivjgYvjgZXjga/jgoks44GR44KT44GODQor44GL44GV44Gv44KJLOOBsuOBp+OBjQ0KK+OBi+OBleOBhCzjgYjjgYTjgZ/jgo3jgYYNCivjgYvjgZXjgb7jgaQs44Go44KC44Gu44KKDQor44GL44GV44KCLOOBruOCiuOBkw0KK+OBn+OBvuOBn+OBqyzjgZnjgb/jgZMNCivjgYvjgZfjgo/jgY4s44G+44GV44KG44GNDQor44GL44GX44KP44GQ44KJLOOBn+OBv+OBig0KK+OBi+OBn+OBoCzjgYvjgaTjgbLjgZUNCivjgYvjgZ/jgYrjgYss44GV44GK44KKDQor44G744GXLOOChOOBmeOBn+OBiw0KK+OBi+OBn+OBiuOBiyzjgaHjgYgNCivjgYvjgajjgYYs44GI44GE44GZ44GRDQor44GL44Go44GGLOOBsuOCjeOBqA0KK+OBi+OBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjgajjgYYs44GL44Ga44Gy44KNDQor44GL44Go44GGLOOBquOBiuOChA0KK+OBi+OBqOOBhizjgZfjgpPjgZgNCivjgYvjgajjgYYs44Gf44GR44GXDQor44GL44Go44GGLOOBn+OBv+OChuOBjQ0KK+OBi+OBqOOBhizjgarjgarjgZMNCivjgYvjgajjga4s44Gy44Gn44Gy44GVDQor44GL44Gk44KA44KJLOOBiOOBhOOBhOOBoQ0KK+OBi+OCj+OBsOOBnyzjgY/jgavjgajjgZcNCivjgYvjgo/jgZTjgYgs44GR44KT44GE44Gh44KNDQor44GL44KP44GQ44GhLOOBl+OBvg0KK+OBi+OCj+OBr+OCiSzjgobjgorjgb8NCivjgYvjgZfjgoDjgoks44Gy44Gn44KG44GNDQor44GL44KP44GELOOBleOBoeOBkw0KK+OBi+OCj+OBhCzjgarjgYrjgY0NCivjgYvjgo/jgoLjgags44Gy44KN44GoDQor44GL44KP44KA44KJLOOBl+OCheOBmA0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgY0NCivjgYvjgo/jgaos44KE44GZ44KG44GNDQor44GL44KP44GqLOOCguOCiuOBsuOCjQ0KK+OBi+OCj+OBquOBvyzjgZfjgpPjgYTjgaENCivjgYvjgo/jga4s44KK44KH44GfDQor44GL44KP44GbLOOBkeOBhOOBkw0KK+OBr+OCieOBoCzjgabjgovjgbLjgZMNCivjgYvjgo/jgZfjgb4s44GY44KF44KT44GTDQor44GL44GW44G/LOOBv+OBoeOChA0KK+OBi+OBmuOBleOCjyzjgY3jgojjgZcNCivjgY3jgbDjgoTjgZcs44Gy44Gn44GNDQor44GN44GgLOOBhOOBoeOCjeOBhg0KK+OBjeOBr+OCiSzjgYLjgY3jgokNCivjgY3jgY/jgaEs44GT44GG44GYDQor44GN44GP44GhLOOBvuOBmeOBvw0KK+OBleOBhOOBqOOBhizjgobjgYbjgZMNCivjgY3jgY/jgYQs44Gq44GK44G/DQor44GN44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBjeOCgOOCiSzjgb7jgarjgbYNCivjgY3jgoDjgoks44GV44Go44KLDQor44GN44KA44KJLOOBl+OCheOBmA0KK+OBjeOCgOOCiSzjgobjgY3jgbLjgagNCivjgY3jgoDjgoks44G+44GV44GL44GaDQor44GN44GuLOOBsuOBp+OBsuOBkw0KK+OBjeOCiuOBrizjgZfjgpPjgZgNCivjgY3jgZXjgazjgY0s44GY44KF44Gr44Gh44KNDQor44GN44GXLOOBl+OCheOBkw0KK+OBjeOBlyzjga7jgbbjgZMNCivjgY3jgZfjgaAs44Gq44GK44GoDQor44GN44GX44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBsuOCieOBpizjgobjgbLjgaENCivjgY3jgZfjgarjgb8s44Gf44GR44GXDQor44GN44GdLOOCiOOBl+OBsuOBkw0KK+OBjeOBnyzjgbLjgo3jgZcNCivjgY3jgZ/jgYzjgo8s44GE44Gh44KN44GGDQor44GN44Gf44GY44G+LOOBkeOCk+OBmA0KK+OBjeOBn+OBmOOBvizjgaTjgojjgZcNCivjgY3jgZ/jgoDjgoks44KI44GG44GTDQor44GN44Gf44GuLOOBruOBtuOChuOBjQ0KK+OBjeOBn+OBluOBjSzjgaTjgojjgZcNCivjgY3jgZ/jgZbjgo8s44Go44GX44Gk44GQDQor44GN44KI44Gv44KJLOOBn+OBi+OBsuOBlQ0KK+OBr+OBl+OCguOBqCzjga/jgovjgb8NCivjga7jgZbjgY0s44GL44Ga44G+44GVDQor44GT44Gw44KE44GXLOOBi+OBmuOChA0KK+OBk+OBsOOChOOBlyzjgb7jgZPjgagNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZXjgajjgZcNCivjgZPjgbDjgoTjgZcs44GX44KTDQor44GT44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgb7jgZUNCivjgZPjgbDjgoTjgZcs44KI44GX44GKDQor44GT44Gw44KE44GXLOOBsuOBp+OBguOBjQ0KK+OBk+OBoSzjgarjgYrjgb8NCivjgZPjgaDjgb4s44Gy44KN44KG44GNDQor44GT44GMLOOBm+OBhOOBiw0KK+OBqOOBqSzjga7jgorjgZMNCivjgZPjga/jgoks44Go44GX44KG44GNDQor44GT44GyLOOBn+OBoOOBlw0KK+OBk+OBrizjgZ/jgaTjgZcNCivjgZPjgYTjgZEs44Gk44Go44KADQor44GT44GE44KPLOOBiuOBleOCgA0KK+OBk+OBhOOBmuOBvyzjgbXjgb/jgY3jgogNCivjgZPjgZjjgYss44G144G/44GKDQor44GT44GY44G+LOOBvuOBleOChuOBjQ0KK+OBk+OBmOOBvizjgarjgYrjgY0NCivjgZPjgZjjgb4s44Gf44GL44Gv44KLDQor44GT44GY44G+LOOBkeOCk+OBmA0KK+OBk+OBvuOBpOOBsOOCiSzjgYLjgaTjgZcNCivjgZPjgb/jgoQs44GI44GE44GYDQor44GT44KC44GgLOOBleOBoeOBkw0KK+OBk+OCgOOCjSzjgZfjgofjgZgNCivjgZPjgpPjgaks44Go44KC44Gy44KNDQor44GT44KT44GpLOOChuOBjQ0KK+OBk+OCk+OBqSzjgoTjgZnjgbLjgo0NCivjgZPjgZXjgZEs44GC44GN44Gy44KNDQor44GT44GbLOOBl+OCheOBsuOBoQ0KK+OBk+OBmeOBjizjgarjgYrjgZnjgb8NCivjgZPjgZrjgYss44Gv44KL44G/DQor44GP44G8LOOBsuOCjeOBteOBvw0KK+OBj+OBvCzjgajjgYrjgosNCivjgY/jgbws44Go44KC44KG44GNDQor44GP44G8LOOBl+OCheOBlA0KK+OBj+OBvOOBmOOChyzjgb/jgYjjgZMNCivjgY/jganjgYYs44Gq44GM44GKDQor44GP44Gp44GGLOOCiuOBoeOBkw0KK+OBj+OBqeOBhizjgYvjgZrjgbLjgZMNCivjgY/jgb7jgYvjgo8s44GV44Go44GXDQor44GP44G+44GP44KJLOOCiuOCheOBnw0KK+OBj+OBvuOBl+OCjSzjgY3jgojjgZcNCivjgY/jgb7jgZ8s44GC44GN44KI44GXDQor44GP44Gr44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBj+OCieOCguOBoSzjgarjgaTjgb8NCivjgY/jgonjgZfjgb4s44GR44KT44GYDQor44GP44KK44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBsuOCieOBhCzjgZPjgYbjgYTjgaENCivjgY/jgorjga/jgoks44Gf44GL44GXDQor44GP44KK44Gv44KJLOOBn+OBkeOBlw0KK+OBj+OCiuOBr+OCiSzjgoTjgZnjga7jgooNCivjgY/jgorjga/jgoks44Gv44KL44G/DQor44GP44KK44Gv44GXLOOBn+OBkeOBsuOCjQ0KK+OBj+OCiuOBmSzjgarjgYrjgY0NCivjgY/jgo3jgaAs44GX44GS44GKDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OBj+OCjeOBjSzjgb7jgooNCivjgY/jgo3jgY0s44Gb44GE44GE44GhDQor44GP44KN44GNLOOBvuOBleOBjQ0KK+OBj+OCjeOCgSzjgZHjgpPjgZgNCivjgY/jgo3jgZXjgo8s44GR44KT44GE44GhDQor44GP44KL44G/44KELOOBm+OBhOOBhOOBoQ0KK+OBj+OBleOChOOBquOBjizjgZfjgo0NCivjgY/jgZnjga7jgZss44GY44KF44KT44GYDQor44GP44KP44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBvuOBoeOBoCzjgbLjgo3jgZcNCivjgb7jgaDjgonjgoEs44GL44Ga44Gy44KNDQor44G+44GI44GgLOOBk+OBhuOBmA0KK+OBvuOBiOOBoCzjgojjgZfjgobjgY0NCivjgb7jgYjjgaAs44GL44Gk44KIDQor44G+44GI44GM44KPLOOChuOBhuOBmA0KK+OBvuOBiOOBr+OCiSzjgabjgaTjgYoNCivjgb7jgYjjgY3jgZ8s44G/44Gk44Gu44G2DQor44G+44GN44GuLOOCiOOBhuOBkw0KK+OBl+OBtuOBn+OBqyzjgYLjgaTjgZcNCivjgb7jgarjgbks44Gy44KN44KG44GNDQor44G+44KL44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBvuOCi+OChOOBvizjgajjgoLjgZMNCivjgb7jgovjgoTjgb4s44GI44GE44GYDQor44G+44GV44GK44GLLOOBvuOBk+OBqA0KK+OBvuOBmeOBtuOBoSzjgYjjgYTjgZjjgo0NCivjgb7jgZnjgaAs44GT44GNDQor44G+44GZ44GgLOOBvuOBleOBqOOBlw0KK+OBvuOBmeOBoCzjgarjgYrjgYrjgb8NCivjgb7jgZnjgaAs44GX44KT44GYDQor44G+44GZ44GgLOOCiOOBhuOBkw0KK+OBvuOBmeOBoCzjgajjgZfjgZ/jgYsNCivjgb7jgaTjgbAs44GV44Go44GXDQor44Gv44KJLOOBleOBqOOCiw0KK+OBvuOBpOOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb7jgaTjgaAs44G144G/44Gy44GnDQor44G+44Gk44G144GYLOOBjuOCk+OBmA0KK+OBvuOBpOOBteOBmCzjgYvjgZrjgZMNCivjgZ/jgaHjgY/jgYQs44Gf44GL44Gy44KNDQor44G+44Gk44GELOOBk+OBhuOBmA0KK+OBvuOBpOOBi+OCjyzjgojjgZfjga7jgooNCivjgb7jgaTjgb7jgoss44GC44GN44KJDQor44G+44Gk44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZHjgYTjgYTjgaENCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBruOCig0KK+OBvuOBpOOCguOBqCzjgobjgYbjgZMNCivjgb7jgaTjgoLjgags44KI44GX44Gv44KLDQor44GX44GK44Gw44KJLOOBn+OBi+OBqOOBlw0KK+OBvuOBpOOCgOOCiSzjgZ/jgY/jgoQNCivjgb7jgaTjgoDjgoks44Gy44KN44GL44GaDQor44G+44Gk44Gq44GMLOOBsuOCjeOBjQ0KK+OBvuOBpOOBquOBjCzjga7jgZ7jgb8NCivjgb7jgaTjgarjgb8s44GR44KT44GYDQor44G+44Gk44GKLOOBkeOCk+OBmA0KK+OBvuOBpOOBiizjgaDjgYTjgZnjgZENCivjgb7jgaTjgYrjgYss44GC44GN44GKDQor44Gv44KE44GX44GgLOOBi+OBmuOBquOCig0KK+OBvuOBpOOBiuOBiyzjgb/jgY0NCivjgYLjgZzjgoTjgarjgY4s44GX44KT44GYDQor44G+44Gk44GK44GLLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgZfjgoXjgZXjgY8NCivjgb7jgaTjgZss44GC44GN44GKDQor44G+44Gk44GX44G+LOOBi+OBmuOBruOCig0KK+OBvuOBpOOBl+OBnyzjgYLjgY3jgbLjgZMNCivjgb7jgaTjgZ/jgass44Gu44KK44GTDQor44G+44Gk44KP44GLLOOBsuOCjeOBlw0KK+OBvuOBpOOChOOBvizjgaTjgajjgoANCivjgb7jgaTjgZbjgY0s44GX44KT44GE44GhDQor44G+44Gk44Gq44GMLOOBl+OCheOBq+OBoQ0KK+OBu+OCk+OBqizjgojjgZfjga7jgooNCivjgoHjgYvjgZ8s44KG44GN44GTDQor44G/44GL44GY44KKLOOBvuOBleOBsuOCjQ0KK+OBv+OBi+OBvyzjgojjgZfjgZMNCivjgb/jgYvjgb8s44Go44GX44KEDQor44G/44GNLOOBqOOCguOBsuOCjQ0KK+OBv+OBv+OBnyzjgYjjgYTjgZMNCivjgb/jgarjgY/jgaEs44GL44Ga44Gy44KNDQor44G/44Gq44G/LOOBm+OBhOOBhOOBoQ0KK+OBv+OBquOBvyzjgZvjgYTjgZgNCivjgb/jgarjgb8s44GX44KT44GUDQor44G/44Gq44GoLOOBsuOCjeOBguOBjQ0KK+OBv+OBrSzjgZ/jgYvjgobjgY0NCivjgb/jga0s44GR44KT44GYDQor44G/44GX44G+LOOBk+OBhuOBmA0KK+OBv+OBl+OBvizjgZfjgpPjgZgNCivjgb/jgZ3jga4s44GV44Go44GXDQor44G/44Gf44KA44KJLOOBguOBjeOCiQ0KK+OBv+OBn+OCk+OBoCzjgY3jgY/jgYoNCivjgb/jgaTjgbws44G+44GT44GoDQor44G/44Gk44G844GXLOOBjeOCj+OCgA0KK+OBr+OBmeOCgOOCiSzjgZHjgpPjgZgNCivjgb/jgaTjga/jgZcs44GN44KH44GTDQor44GX44Gq44GgLOOBl+OCk+OBmeOBkQ0KK+OBv+OBpOOBvizjgbLjgafjgYoNCivjgb/jgoTjga/jgoks44G+44GV44KG44GNDQor44G/44KE44Gv44KJLOOBv+OBoeOCjQ0KK+OBv+OChOOBhCzjgbXjgb/jga/jgosNCivjgb/jgoTjgZjjgb4s44GV44Go44GXDQor44G/44KE44KC44GoLOOBqOOCguOChuOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgokNCivjgb/jgoTjgZfjgZ8s44GX44KH44GYDQor44G/44KE44GfLOOCiOOBl+OBn+OBiw0KK+OBv+OChOOBnyzjgYLjgaTjgZcNCivjgb/jgoTjgYbjgaEs44GT44GG44GYDQor44G/44KE44GG44GhLOOBiuOBleOCgA0KK+OBv+OChOOBhuOCiSzjgbLjgo3jgbLjgZUNCivjgb/jgoTjgZbjgY0s44G+44GV44Go44GXDQor44Gv44GX44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OBv+OChOOBluOCjyzjgojjgZfjgYvjgZoNCivjgb/jgoTjgZbjgo8s44Go44GX44Gy44KNDQor44G/44KE44GaLOOBqOOBl+OBteOBvw0KK+OBv+OBnuOBi+OBvyzjgbLjgo3jgb/jgaQNCivjgb/jgZrjga4s44Gy44KN44KG44GNDQor44G/44Ga44GuLOOBi+OBmuOBsuOBqA0KK+OBv+OBmuOBn+OBqyzjgZjjgaTjgoQNCivjgoLjgaHjgaAs44Gy44Gn44Gv44KLDQor44KC44Gh44Ga44GNLOOBv+OBiOOBkw0KK+OCguOBoeOBmuOBjSzjgobjgYvjgZMNCivjgb/jgojjgZcs44GL44Ga44Gq44KKDQor44KC44KKLOOBsuOBp+OBruOCig0KK+OCguOCiizjgbLjgo3jgobjgY0NCivjgoLjgoos44Gy44KN44KG44GNDQor44KC44KKLOOBi+OBiuOCiw0KK+OCguOCiizjgZHjgpPjgZgNCivjgoLjgoos44GK44GV44KADQor44KC44KKLOOBn+OBkeOBsuOBlQ0KK+OCguOCiizjgZ/jgZHjgZcNCivjgoLjgoos44GX44GS44GNDQor44KC44KK44GQ44GhLOOBk+OBhuOBmA0KK+OCguOCiuOBi+OCjyzjgYLjgY3jgYoNCivjgoLjgorjgarjgYws44KE44GZ44Gy44GoDQor44KC44KK44GV44GNLOOBmOOCheOBq+OBoQ0KK+OCguOCiuOBnyzjgabjgaTjgbLjgZMNCivjgoLjgorjgZ8s44Go44GX44KG44GNDQor44KC44KK44KELOOBruOBtuOChuOBjQ0KK+OCguOCiuOChOOBvizjgYLjgY3jgbLjgo0NCivjgoLjgabjgY4s44GC44GN44GKDQor44KC44Go44GNLOOBmOOCjQ0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgZcNCivjgoDjgYvjgYTjgaAs44G+44GV44GNDQor44KA44Gt44Gy44KNLOOBvuOBleOBlw0KK+OCgOOBreOBi+OBnyzjgaDjgYTjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44KG44GNDQor44KA44KJ44GL44G/LOOBpuOBpOOChA0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgYvjgZoNCivjgoDjgonjgZPjgZcs44Gk44Gt44GC44GNDQor44KA44KJ44G+44GkLOOBhOOBmuOBvw0KK+OCgOOCieOBrOOBjSzjgbLjgo3jgYvjgZoNCivjgoDjgonjgZ8s44Gy44KN44GNDQor44KA44KJ44GfLOOBk+OBhuOBmA0KK+OCgOOCieOBnyzjgb7jgZXjgZcNCivjgoDjgonjgoTjgb4s44GC44GR44G/DQor44KE44G+44GX44GfLOOCiOOBsuOBoQ0KK+OCgOOCjeOBnyzjgYjjgYTjgZgNCivjgb/jgofjgZjjgpMs44KA44Gk44GKDQor44Gq44GM44GELOOBsuOBp+OBig0KK+OBr+OBl+OCguOBqCzjgb/jgaTjgbLjgo0NCivjgarjgYzjgazjgb4s44GP44Gr44Gy44KNDQor44Gq44GM44GKLOOBruOBtuOCiOOBlw0KK+OBquOBjOOBiuOBiyzjgZfjgZMNCivjgarjgYzjgZXjgo8s44Gy44Gn44KG44GNDQor44Gq44GM44GX44G+LOOBi+OBmuOCiOOBlw0KK+OBquOBjOOBl+OBvizjgaTjgojjgZcNCivjgarjgYzjgZ8s44KE44GZ44Gy44KNDQor44Gq44GM44GfLOOChOOBmeOBig0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZMNCivjgYTjgYzjgonjgZcs44G+44GV44GoDQor44Gq44GM44KE44G+LOOBkeOBhOOBmA0KK+OBquOBjOOCiOOBlyzjgobjgY3jgoLjgagNCivjgarjgYTjgajjgYYs44G+44GV44GNDQor44Gq44GL44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBquOBi+OBjOOCjyzjgojjgZfjga/jgosNCivjgarjgYvjgZTjgoEs44GC44GN44Gy44KNDQor44Gq44GL44GX44G+LOOBsuOCjeOBi+OBmg0KK+OBquOBi+OBmOOBvizjgb/jgaHjgYoNCivjgarjgYvjgZjjgb4s44Gu44KK44GTDQor44Gq44GL44GY44G+LOOBiuOBkw0KK+OBquOBi+OBmOOBvizjgobjgY3jgYoNCivjgarjgYvjgZjjgb4s44GI44KKDQor44Gq44GL44GP44GNLOOBv+OBuw0KK+OBquOBi+OBvuOCiyzjgYvjgYrjgosNCivjgarjgYvjgb/jgaEs44Gf44GL44GXDQor44Gq44GL44KC44GoLOOCiOOBl+OBi+OBmg0KK+OBquOBi+OCguOBqCzjgojjgZfjgoTjgZkNCivjgarjgYvjgoLjgags44Gh44GI44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44GR44KT44GYDQor44Gq44GL44KA44KJLOOBvuOBleOBi+OBpA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBr+OBjuOCj+OCiSzjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44Gq44GL44KA44KJLOOChOOBmeOBvuOBlQ0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZMNCivjgarjgYvjgoDjgoks44Gm44KL44G/DQor44Gq44GL44GuLOOBj+OCieOBqA0KK+OBquOBi+OBiizjgobjgYbjgZgNCivjgarjgYvjgYos44GX44KT44GE44Gh44KN44GGDQor44Gq44GL44GK44GLLOOCiuOBiw0KK+OBquOBi+OBl+OBvizjgb/jgYsNCivjgavjgZfjgZjjgb4s44KG44GN44Gy44KNDQor44Gq44GL44KELOOBsuOCjeOBi+OBmg0KK+OBquOBi+OChOOBvizjgbLjgo3jgobjgY0NCivjgarjgYvjgZbjgags44Gy44KN44G144G/DQor44Gq44G+44Gf44KBLOOBvuOBleOBquOCig0KK+OBquOCgeOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgarjgb8s44Gb44GE44GYDQor44Gq44KT44GwLOOBi+OBmuOBruOCig0KK+OBquOCk+OBmOOChyzjgobjgYbjgZgNCivjgarjgpPjgb0s44Gm44KL44KG44GNDQor44Gq44KJ44G2LOOBleOBqOOBkw0KK+OBquOCiuOBr+OCiSzjgb7jgY3jgZMNCivjgarjgorjgajjgb8s44Gy44Gn44KG44GNDQor44Gq44KL44GX44G+LOOBpuOBpOOChA0KK+OBquOBmeOBi+OCjyzjgZHjgpPjgZ8NCivjgarjgajjgoos44KE44GZ44GXDQor44Gt44GO44GXLOOChuOBhuOBkw0KK+OBreOCguOBqCzjgbLjgo3jgobjgY0NCivjgavjgYjjgaAs44Go44KC44KG44GNDQor44Gr44GE44GY44G+LOOBleOBqOOBlw0KK+OBq+OBhOOBj+OCiSzjgZ/jgYvjgZcNCivjgavjgYTjgaTjgb4s44KP44Gf44KLDQor44Gr44GE44GW44KPLOOBsuOCjeOBlw0KK+OBq+OBl+OBoCzjgYvjgaTjgYLjgY0NCivjgavjgZfjgaAs44G+44KC44KLDQor44Gr44GX44GgLOOCguOCiuOBsuOBqA0KK+OBq+OBl+OBoCzjgZ/jgaDjgajjgZcNCivjgbLjgaDjgYss44Gf44GL44GKDQor44Gr44GX44GgLOOBkeOBhOOBmeOBkQ0KK+OBq+OBl+OBi+OBqSzjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44Gy44Gn44GNDQor44Gr44GX44GL44KPLOOBsuOCjeOBvw0KK+OBq+OBl+OBi+OCjyzjgarjgYrjgY0NCivjgavjgZfjgoLjgags44G+44GT44GoDQor44Gr44GX44KA44KJLOOBmOOCheOCk+OChA0KK+OBq+OBl+OBqizjgZHjgpPjgoQNCivjgavjgZfjga4s44GI44G/44GTDQor44Gr44GX44GfLOOBhOOBmuOBvw0KK+OBteOBi+OBvyzjgajjgYrjgosNCivjgavjgZfjgo/jgY0s44G+44GT44GoDQor44Gr44GX44KE44G+LOOBvuOBleOCiw0KK+OBq+OBl+OChOOBvizjgZHjgpPjgZgNCivjgavjgZfjgZbjgo8s44KI44GX44Gu44KKDQor44Gr44Gj44GfLOOBsuOCjeOBsuOBqA0KK+OBq+OCj+OBnyzjgZ/jgZHjgZcNCivjgavjgo/jgoTjgb4s44GI44GE44GYDQor44Gu44GC44G/LOOBsuOBp+OBqA0KK+OBruOBvOOCiuOBn+OBpizjgobjgY3jgb7jgZUNCivjga7jgaAs44KE44GZ44GKDQor44Gu44GM44KPLOOBguOBpOOBlw0KK+OBruOBkOOBoSzjgYjjgYTjgZjjgoUNCivjga7jgZDjgaEs44Go44KC44GC44GNDQor44Gu44GY44KKLOOBvuOBleOBruOBtg0KK+OBruOCguOBqCzjgbLjgafjgoQNCivjga7jgoDjgoks44G+44GV44Gu44KKDQor44Gv44KE44GV44GLLOOBjeOCiOOBlw0KK+OBruOCgOOCiSzjgbLjgo3jgYvjgZoNCivjga7jgags44G/44GNDQor44Gu44GW44GNLOOBi+OBmuOCiA0KK+OBk+OBleOBiyzjgZ/jgZHjgbLjgZMNCivjgYrjgbDjgaos44GL44Gk44GXDQor44GK44GhLOOBsuOBqOOBlw0KK+OBiuOBoCzjgojjgZfjgbLjgo0NCivjgYrjgYzjgZXjgo/jgoks44Gy44KN44KI44GXDQor44GK44GM44GfLOOBu+OBmuOBvw0KK+OBj+OBjSzjgaHjgZoNCivjgYrjgYvjgaAs44GP44Gr44GTDQor44GK44GM44KPLOOBvuOBquOBtg0KK+OBiuOBjOOCjyzjgZ/jgYvjgobjgY0NCivjgYrjgYzjgo8s44Gy44KN44KEDQor44GK44GO44Gv44KJLOOBqOOCguOBguOBjQ0KK+OBiuOBjuOBrizjgZ/jgYvjgZcNCivjgYrjgbYs44Gy44KN44KG44GNDQor44GK44Gv44KJLOOChuOBhuOBkw0KK+OBr+OBvuOCguOBqCzjgb/jgY3jgZMNCivjgYrjga/jgoks44GL44Ga44Gy44KNDQor44GK44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBiuOBi+OCjyzjgZ3jga7jgb8NCivjgYrjgY/jgbws44Go44GX44KEDQor44GK44G/44KELOOChOOBmeOBlw0KK+OBiuOCguOCiizjgYLjgoTjgZMNCivjgYrjgoDjgoks44G+44GV44Gm44KLDQor44GK44Gr44GXLOOBr+OCi+OBruOBtg0KK+OBiuOBrizjgYvjgZrjgabjgosNCivjgYrjgazjgY0s44Gy44KN44KE44GZDQor44GK44GV44GNLOOChuOBn+OBiw0KK+OBiuOBleOBjSzjgbLjgo3jgYLjgY0NCivjgYrjgZXjgo8s44Gy44KN44KG44GNDQor44GK44GX44G+LOOBvuOBleOChuOBjQ0KK+OBiuOBl+OBvizjgoTjgZnjga7jgooNCivjgYrjgZfjgb4s44GL44Ga44Go44GXDQor44GK44GfLOOBk+OBhuOBhOOBoQ0KK+OBiuOBnyzjgb/jgYsNCivjgYrjgZ8s44Gf44Gg44Gy44GTDQor44GK44GfLOOChOOBmeOBkw0KK+OBguOCk+OBqeOBhizjgobjgYbjgZgNCivjgYrjgZ8s44GV44Go44GXDQor44GK44Gf44GLLOOBvuOBleOBqA0KK+OBiuOBn+OBjSzjgb7jgZXjgYLjgY0NCivjgYrjgZ/jgass44Gb44GE44GYDQor44GK44Gf44GrLOOBpuOBpOOChA0KK+OBiuOBn+OBqyzjgorjgofjgbLjgaENCivjga/jgoTjgZcs44G+44GV44Gf44GLDQor44GK44Gk44G8LOOBsuOCjeOChOOBmQ0KK+OBiuOBpOOBiyzjgYvjgZrjgYoNCivjgYrjgaTjgYss44GV44Go44GXDQor44GK44Gk44GLLOOChuOBhuOBkw0KK+OBr+OChOOBlyzjgZfjgo0NCivjgYrjgaTjgoss44Gf44GR44GXDQor44GK44G144GhLOOBn+OBi+OBig0KK+OBiuOCjyzjgaTjgajjgoANCivjgYrjgbLjgoMs44KE44GZ44GKDQor44GK44GY44GKLOOBruOBtuOBsuOCjQ0KK+OBiuOBiyzjgb/jgYsNCivjgYrjgYvjgbks44Gy44KN44GXDQor44GK44GL44GgLOOBkeOCk+OBhOOBoQ0KK+OBiuOBi+OBoCzjgYrjgZ8NCivjgYrjgYvjgaAs44Gf44GL44GC44GNDQor44GK44GL44GgLOOBteOBqOOBlw0KK+OBiuOBi+OCguOBqCzjgYvjgZrjgbLjgZMNCivjgYrjgYvjgoLjgags44Gu44KK44Gy44GVDQor44GK44GL44KC44GoLOOBvuOBleOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgobjgY3jgZMNCivjgYrjgYvjgoDjgoks44Gf44GR44Gy44GVDQor44GK44GL44GW44GNLOOCiOOBl+OBruOCig0KK+OBiuOBi+OBluOBjSzjgYjjgYTjgY0NCivjgYrjgY3jga4s44GC44Gk44GXDQor44GK44GP44GgLOOBiOOBv+OBkw0KK+OBiuOBj+OBoCzjgb/jgaHjgYgNCivjgYrjgY/jgYzjgo8s44Go44GX44GTDQor44Gv44GO44Gv44KJLOOBn+OBkeOBlw0KK+OBiuOBj+OBhuOBoSzjgoDjga3jgYoNCivjgYrjgb8s44G144G/44Gu44G2DQor44GK44KA44KJLOOBvuOBleOBqOOBlw0KK+OBiuOCk+OBoCzjgYLjgobjgoANCivjgYrjga4s44G+44GV44GNDQor44GK44GuLOOBn+OBi+OChA0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjga4s44Gy44KN44KG44GNDQor44GK44Gu44Gn44KJLOOBn+OBi+OChuOBjQ0KK+OBiuOBruOBp+OCiSzjgoYNCivjgYrjga7jgafjgoks44Go44KC44KG44GNDQor44GK44Gu44KA44KJLOOBsuOCjeOBj+OBqw0KK+OBiuOBruOBluOCjyzjgZHjgYTjgYTjgaENCivjgYrjgazjgY0s44Gy44KN44Go44GXDQor44GK44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBsuOCg+OBvizjgYvjgYrjgosNCivjgYrjgorjgaks44Gv44GY44KBDQor44GK44KK44GX44GN44GgLOOBvuOBleOBruOCig0KK+OBiuOBleOBiyzjgZjjgoXjgavjgaENCivjgYrjgoTjgb4s44GR44KT44GYDQor44GK44GW44GNLOOCgOOBreOBlw0KK+OBiuOBluOBjSzjgYLjgoTjgZMNCivjgYrjgZbjgo8s44Gy44Go44GXDQor44GT44GW44KPLOOBi+OBmuOBsuOCjQ0KK+OBiuOBluOCjyzjgobjgZ/jgYsNCivjgYrjgZbjgo8s44Gy44KH44Gd44GKDQor44GH44GILOOBv+OBruOCiw0KK+OBr+OBn+OBquOBiyzjgZfjgoXjgpPjgZnjgZENCivjgZXjgYjjgY0s44G+44GV44Gy44GTDQor44GV44GE44GgLOOCiOOBl+OBruOCig0KK+OBleOBhOOBkOOBlSzjgajjgZfjgYoNCivjga/jgpPjgaAs44G/44Gu44KLDQor44GV44GE44Go44GGLOOBl+OCk+OChA0KK+OBleOBhOOBqOOBhizjgabjgaTjgo0NCivjgZXjgYTjgajjgYYs44Gf44GL44GC44GNDQor44GV44GL44GhLOOBsuOBqOOBlw0KK+OBleOBi+OBkOOBoSzjgbLjgafjgYLjgY0NCivjgZXjgYvjgYQs44GT44GG44GE44GhDQor44GV44GL44GELOOBn+OBoOOBig0KK+OBsuOCieOBrizjgZ/jgYTjgaENCivjgZXjgYvjgYQs44Gf44Gk44KEDQor44GV44GL44GELOOCiOOBl+OBvuOBlQ0KK+OBleOBi+OBhCzjgobjgZnjgZENCivjgZXjgYvjgYQs44Gy44KN44GXDQor44GV44GL44KC44GoLOOBvuOBleOBr+OCiw0KK+OBleOBi+OCguOBqCzjgZ/jgZHjgZcNCivjgbLjgo3jgZss44G+44GV44GXDQor44GV44GL44KC44GoLOOBv+OBpOOBsuOCjQ0KK+OBleOBi+OBnyzjgorjgofjgZMNCivjgY3jgZfjgaAs44KC44KC44GTDQor44GV44GTLOOBsuOCjeOBlw0KK+OBleOBj+OBvizjgZ/jgZHjgZcNCivjgZXjgY/jgonjgbAs44KE44GZ44Go44KCDQor44GV44GP44KJ44GELOOBvuOBleOBsuOBlQ0KK+OBleOBj+OCieOChOOBvizjgZfjgZLjgbLjgagNCivjgZXjgoHjgZfjgb4s44G+44GV44GKDQor44GV44KT44G5LOOBk+OBhuOBmA0KK+OBleOCi+OCj+OBn+OCiizjgb/jga7jgosNCivjga/jgZvjgYzjgo8s44GT44GeDQor44GV44GV44GILOOBguOBjeOBsuOCjQ0KK+OBleOBleOBr+OCiSzjgYLjgY3jgokNCivjgZXjgZXjgY0s44Gy44KN44G/DQor44GV44GV44GNLOOBv+OBjeOBig0KK+OBleOBleOBjSzjgarjgYrjgY0NCivjgZXjgZXjgY0s44Gf44GL44GXDQor44Gv44Gz44KNLOOChOOBmeOBsuOCjQ0KK+OBleOBleOBiizjgojjgZfjgYLjgY0NCivjgZXjgZXjgYrjgYss44KI44GN44GhDQor44GV44GV44Gf44GrLOOBqOOCguOBmA0KK+OBleOBnyzjgbLjgo3jgYLjgY0NCivjgZXjgZ/jgZEs44GC44GL44GXDQor44GV44Go44GGLOOBvuOBleOCiw0KK+OBu+OBl+OBrizjgYjjgb8NCivjgZXjgajjgYYs44Gv44KL44G/DQor44Gv44Gj44Go44KKLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgYvjgZrjgojjgZcNCivjgZXjgajjgYYs44G+44GT44GoDQor44GV44Go44GGLOOBvuOBleOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgZXjgajjgYYs44Gq44GK44GNDQor44GV44Go44GGLOOCiuOCh+OBmA0KK+OBleOBqOOBhizjgZ/jgYvjgb7jgZUNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOChuOBn+OBiw0KK+OBsuOCieOBrizjgobjgY3jgZMNCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44Go44GGLOOBi+OBmuOBl+OBkg0KK+OBleOCj+OBoCzjgajjgoLjgZMNCivjgZXjgo/jgaAs44KI44GX44G/DQor44GV44KP44G144GYLOOBqOOCguOBvw0KK+OBleOCj+OBjSzjgajjgZfjgY0NCivjgZXjgo/jgoDjgoks44GY44KF44KTDQor44Gb44GM44KPLOOBkeOBhOOBmA0KK+OBm+OBjOOCjyzjgb7jgZXjga/jgosNCivjgZvjgY0s44GX44KT44KEDQor44Gb44GNLOOBqOOBiuOCiw0KK+OBm+OBjeOBkOOBoSzjgZfjgZLjgY0NCivjgZvjgY3jga0s44KG44GN44Gf44GLDQor44Gb44GN44GtLOOCiuOCh+OBsuOBoQ0KK+OBsuOCieOBrizjgZ/jgaTjgY0NCivjgZvjgpPjgZTjgY8s44GR44GE44GYDQor44Gb44GKLOOBvuOCiuOBig0KK+OBm+OCiSzjgajjgZfjgYLjgY0NCivjgZvjgoks44GR44GE44GE44GhDQor44GX44Gw44Gv44KJLOOBsuOCjeOBguOBjQ0KK+OBl+OBsOOBnyzjgbLjgo3jgobjgY0NCivjgZfjgbDjgZ8s44KE44GZ44Gu44KKDQor44Gv44Gb44GM44KPLOOBkeOBhOOBhOOBoQ0KK+OBl+OBsOOBnyzjgZPjgbjjgYQNCivjgZfjgbDjgZ8s44Gf44GL44Gy44KNDQor44GX44Gw44GfLOOBk+OBuOOBhA0KK+OBl+OBsOOBluOBjSzjgbLjgo3jgZcNCivjgZfjgbbjgZ/jgass44GX44KT44Gf44KN44GGDQor44GX44G244KELOOBi+OBmuOBjQ0KK+OBl+OBoeOBsuOChyzjgorjgaTjgZMNCivjgZfjgY0s44Gf44GE44GhDQor44GX44GN44GX44G+LOOBsuOBleOBlw0KK+OBl+OBvizjgYvjgZrjgYLjgY0NCivjgZfjgb4s44GL44Gk44G/DQor44GX44G+44GgLOOBiOOBhOOBhOOBoQ0KK+OBl+OBvuOBrOOBjSzjgoTjgZnjgZcNCivjgZfjgb7jgYrjgYss44Gy44KN44GXDQor44GX44G+44GX44GfLOOBn+OBoOOBlw0KK+OBl+OBvuOBmizjgbLjgo3jgYvjgaQNCivjgZfjgb/jgZos44GL44Ga44GuDQor44GX44G/44GaLOOBi+OBmuOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgajjgoLjgbLjgo0NCivjgZfjgb/jgZos44Go44KC44G/44GkDQor44GX44G/44GaLOOChuOBn+OBiw0KK+OBl+OBv+OBmizjgb7jgZXjgZ/jgZENCivjgZfjgoLjgYzjgYQs44G+44GV44KG44GNDQor44GX44KC44GL44KP44G5LOOBvuOBleOBkw0KK+OBl+OCguOBiuOBiyzjgajjgoLjga/jgosNCivjgZfjgoLjgZXjgYss44Go44KC44GL44GkDQor44GX44KC44KE44G+LOOBjeOBv+OBguOBjQ0KK+OBl+OCk+OBvOOCiizjgb7jgZXjgosNCivjgZfjga7jga/jgoks44Gf44GR44GXDQor44GX44Gu44Gv44KJLOOBguOBjeOBkw0KK+OBl+OBruOBluOBjSzjgZPjgZnjgZENCivjgZfjga7jgZbjgY0s44GL44Gk44Gy44KNDQor44GX44Gu44Ga44GLLOOBn+OBi+OBlw0KK+OBl+OCk+OChCzjgoTjgZnjgZ/jgYsNCivjgZfjgYrjgZ8s44Gq44GK44Gy44KNDQor44GX44GK44Gf44GrLOOBkeOBhOOBhOOBoQ0KK+OBl+OBiuOChCzjgbLjgafjgY0NCivjgZfjgonjga/jgb4s44GR44GE44GZ44GRDQor44GX44KJ44GELOOBoeOBiOOBkw0KK+OBl+OCieOBhOOBlyzjgb7jgZXjgYoNCivjgZfjgonjgYTjgZcs44KG44KK44GTDQor44GX44KJ44GE44GXLOOBi+OBmuOBsuOBlQ0KK+OBl+OCieOBjSzjgajjgZfjgZMNCivjgZfjgonjgZXjgY0s44GC44GN44Gy44KNDQor44GX44KH44Gq44GULOOBguOBjeOBsuOCjQ0KK+OBiuOBsuOCg+OBvizjgbLjgafjgobjgY0NCivjgZfjgoXjgags44Gm44Gk44KEDQor44GX44KC44GE44GaLOOBsuOCjeOBiA0KK+OBneOBiOOBoCzjgarjgYrjgZ/jgYsNCivjgbvjgorjga4s44Gy44GV44Go44GXDQor44Gd44Go44GY44G+LOOBsuOCjeOBlw0KK+OBmeOBoCzjgojjgZfjgZMNCivjgZnjgaAs44GR44KT44GE44GhDQor44GZ44Gp44GGLOOBsuOBp+OBkw0KK+OBmeOBjCzjgZjjgoXjgpPjgY3jgaENCivjgZnjgYzjgazjgb4s44GR44KT44GYDQor44GZ44GM44KP44KJLOOBqOOBiuOCiw0KK+OBmeOBjuOBsOOChOOBlyzjgb/jgaHjgbLjgZUNCivjgZnjgY7jgoLjgags44G/44GLDQor44GZ44GO44KC44GoLOOBv+OBlQ0KK+OBmeOBjuOCgOOCiSzjgoTjgZnjgbLjgagNCivjgZnjgY7jga4s44Gk44Go44KADQor44GZ44GO44GV44GNLOOBkeOBhOOBmeOBkQ0KK+OBmeOBjuOBleOCjyzjgYvjgZrjgobjgY0NCivjgZnjgY7jgZ8s44Gf44GL44GX44GSDQor44Gv44KE44GXLOOBv+OBiw0KK+OBmeOBjuOBhuOCiSzjgbLjgo3jgY0NCivjgZnjgY7jgoTjgb4s44KI44KK44GoDQor44GZ44GO44KE44G+LOOBn+OBj+OBvw0KK+OBmeOBlCzjgbLjgo3jgYvjgaQNCivjgZnjgYTjgZ8s44G144Go44GXDQor44GZ44G/44GgLOOCgeOBhOOBmOOCjQ0KK+OBmeOBv+OBi+OCjyzjgZPjgZMNCivjgZnjgarjgYws44Gy44Gn44Gy44GoDQor44GZ44Gu44Gv44KJLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYvjgZoNCivjgZnjgZrjgY0s44GR44GEDQor44GZ44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgb/jgYsNCivjgZnjgZrjgY0s44Gu44G244GTDQor44GZ44Ga44GNLOOBruOCiuOBsuOBkw0KK+OBmeOBmuOBjSzjgZXjgajjgosNCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgZnjgZrjgY0s44Gf44G/DQor44KE44G+44GL44KPLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44GX44KT44GYDQor44Gv44GMLOOChOOBmeOBig0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgZUNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GuLOOBleOBqOOBlw0KK+OBl+OCheOBqCzjgajjgYrjgosNCivjgZ/jgbDjgoks44G+44GV44G/DQor44Gf44GgLOOBguOBjeOCiQ0KK+OBr+OCiuOBjOOBhCzjgajjgoLjgobjgY0NCivjgZ/jgaAs44KI44GX44KG44GNDQor44Gf44GM44GX44KJLOOBvuOBleOBteOBvw0KK+OBn+OBkOOBoSzjgZfjgofjgZQNCivjgZ/jgZDjgaEs44Gf44GR44Gy44KNDQor44Gf44GY44G+LOOCiOOBl+OBruOCig0KK+OBn+OBmOOBvizjgYvjgZrjgbUNCivjgbvjgaPjgZ8s44GC44GN44GTDQor44Gf44GL44GgLOOBi+OBpOOBsuOBkw0KK+OBn+OBi+OBjizjgZfjgZLjgosNCivjgZ/jgYvjgY4s44Gf44Gk44GKDQor44Gf44GL44GOLOOBguOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgbLjgZMNCivjga/jgZfjgZDjgaEs44Gy44KN44GL44GaDQor44Gf44GL44Gv44GXLOOBhOOBleOBqA0KK+OBn+OBi+OBr+OBlyzjgYvjgYrjgooNCivjgZ/jgYvjga/jgZcs44GL44Gk44G144G/DQor44Gf44GL44Gv44GXLOOBj+OBq+OBsuOBpw0KK+OBn+OBi+OBr+OBlyzjgb7jgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44KLDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOBtg0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44G/44Gq44GTDQor44Gf44GL44Gv44GXLOOBv+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgYLjgY0NCivjgZ/jgYvjga/jgZcs44GX44KT44GYDQor44Gf44GL44Gv44GXLOOBl+OCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgoXjgavjgaENCivjgZ/jgYvjga/jgZcs44Go44KC44Gu44KKDQor44Gf44GL44Gv44GXLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgojjgbLjgaENCivjgZ/jgYvjga/jgZcs44KG44GG44GTDQor44GK44G/LOOBiOOBhOOBkw0KK+OBn+OBi+OBsuOCiSzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgYQs44Gy44KN44GXDQor44Gf44GL44G/44KELOOBquOBiuOBvw0KK+OBn+OBi+OBquOBlyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjga4s44GL44Gk44Go44GXDQor44Gf44GL44GuLOOBi+OBmuOBkw0KK+OBn+OBi+OBrizjgYvjgZrjgYoNCivjgZ/jgYvjga4s44Go44KC44Gy44KNDQor44Gf44GL44GuLOOBpuOCi+OBig0KK+OBr+OChOOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjgYos44Gy44Gn44Gu44KKDQor44Gf44GL44GX44G+LOOBi+OBpOOBvw0KK+OBn+OBi+OBmSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjgajjgYbjgoos44KI44GX44G/44GkDQor44Gf44GL44Go44KKLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OChCzjgYTjgaHjgZ/jgo3jgYYNCivjgZ/jgZEs44GC44Gk44Gu44KKDQor44Gf44GR44GgLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBoCzjgbXjgZXjgbLjgZMNCivjgbvjgoos44GR44KT44GYDQor44Gf44GR44GgLOOBv+OBruOCiw0KK+OBn+OBkeOBr+OCiSzjgojjgZfjgajjgoINCivjgZ/jgZHjgYQs44GT44GG44GYDQor44Gf44GR44KC44GoLOOCiuOBuw0KK+OBn+OBkeOCguOBqCzjgb/jgY3jgZMNCivjgZ/jgZHjgarjgYss44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBn+OBvuOCiA0KK+OBn+OBi+OBjizjgojjgZfjgbLjgagNCivjgZ/jgZHjgajjgb8s44GC44GN44Gy44KNDQor44Gf44GR44GG44GhLOOCguOBqOOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgZfjgoXjgbLjgoMNCivjgZ/jgZHjgYbjgaEs44Gf44Gg44GXDQor44Gf44GR44KE44GZLOOBi+OBpOOBruOCig0KK+OBn+OBkeOBluOCjyzjgbLjgafjgbLjgZMNCivjgZ/jgY3jgbAs44G144GV44G/DQor44Gf44GP44G8LOOBruOCiuOBguOBjQ0KK+OBr+OBq+OCheOBhizjgYLjgY3jgbLjgo0NCivjgZ/jgb7jgojjgoos44Gb44GE44GYDQor44Gf44KC44GkLOOBhOOBmuOBvw0KK+OBn+OCgOOCiSzjgZPjgZ4NCivjgZ/jgoDjgoks44GX44KT44GE44GhDQor44Gf44KA44KJLOOBsuOBi+OCiw0KK+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgZ/jgarjgbks44GC44GNDQor44Gf44Gq44GLLOOBguOBjeOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44Gf44Gq44GLLOOBvuOBleOBjQ0KK+OBn+OBkeOBoCzjgb7jgZXjga7jgooNCivjgZ/jgarjgYss44G/44G7DQor44Gv44Gb44GM44KPLOOBv+OBpOOBig0KK+OBn+OBquOBiyzjga7jgbbjgojjgZcNCivjgZ/jgarjgYss44KM44GE44GYDQor44Gf44Gq44GLLOOCiuOCh+OBmA0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44Gf44GL44Gu44KKDQor44Gf44Gq44GLLOOBpOOCiOOBlw0KK+OBn+OBquOBiyzjgobjgYbjgZMNCivjgZ/jgarjgYss44KG44GfDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBqyzjgYLjgZHjgb8NCivjgb/jgZ/jgass44GC44GN44KJDQor44Gf44Gr44GQ44GhLOOChOOBmeOBruOCig0KK+OBr+OBo+OBqOOCiizjgbLjgafjgbLjgZMNCivjgZ/jgavjgZDjgaEs44Gy44KN44KG44GNDQor44Gf44Gr44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZ/jgavjgYvjgo8s44GC44Gk44GXDQor44Gf44GV44GLLOOCiOOBl+OBkw0KK+OBn+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgabjgYvjgo8s44G+44GV44KLDQor44Gf44Gm44GuLOOBsuOBp+OChuOBjQ0KK+OBpuOCieOBmOOBvizjgZ/jgYvjgojjgZcNCivjgabjgonjgb7jgYgs44G+44Gq44G2DQor44Gm44KJ44GV44KPLOOBi+OBpOOBjQ0KK+OBpuOCieOChOOBvizjgb7jgZPjgagNCivjgabjgZfjgb4s44KG44GG44GTDQor44Go44GgLOOBk+OBhuOBhOOBoQ0KK+OBqOOBqOOBvyzjgojjgZfjgYoNCivjgajjgbLjgoPjgb4s44Go44GK44KLDQor44Go44GN44KPLOOBsuOCjeOBkw0KK+OBteOBj+OChOOBvizjgbjjgYTjgZQNCivjgajjgY/jgZbjgo8s44Gy44Gn44GC44GNDQor44Go44G/44Gq44GMLOOBsuOCjeOBkw0KK+OBqOOBv+OBnyzjgZHjgpPjgYTjgaENCivjgajjgb/jgoTjgb4s44KG44GG44GTDQor44GV44KP44KA44KJLOOBi+OBpOOBsuOBkw0KK+OBqOOCiuOBlOOBiCzjgZHjgpPjgZcNCivjgajjgorjgZ/jgass44G+44GT44GoDQor44Go44GV44GLLOOBkeOBhOOBmeOBkQ0KK+OBpOOBvOOBhCzjgb7jgZXjgosNCivjgbLjgonjgbDjgoTjgZcs44GT44GG44GYDQor44Gk44Gh44GgLOOBr+OBmOOCgQ0KK+OBpOOBoeOBn+OBqyzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgaTjgaHjgoQs44G+44GT44GoDQor44Gk44GgLOOBv+OCiOOBkw0KK+OBpOOBoCzjgYjjgaTjgb7jgZUNCivjgaTjgZgs44KC44Go44KG44GNDQor44Gk44GY44GELOOBn+OBkeOBsuOBkw0KK+OBpOOBmOOCgOOCiSzjgobjgY3jgbLjgZMNCivjgaTjgZjjgoDjgoks44Gh44GI44GTDQor44Gk44GY44GuLOOBkeOCk+OBmA0KK+OBpOOBmOOBleOCjyzjgb7jgZXjgosNCivjgaTjgYvjgaAs44GT44GG44GYDQor44Gk44GL44Gv44KJLOOBsuOBp+OBlw0KK+OBpOOBi+OCguOBqCzjgYvjgZrjga7jgooNCivjgaTjgYvjgoLjgags44Gf44Gk44G/DQor44Gk44GL44KC44GoLOOBleOBoOOChuOBjQ0KK+OBpOOBreOBoCzjgbLjgafjga7jgooNCivjgaTjga7jgaAs44GX44KF44GYDQor44Gk44Gu44GgLOOBvuOBleOBsuOBkw0KK+OBpOOCi+OBvuOCiyzjgajjgoLjgarjgooNCivjgaTjgZXjgYss44Gy44KN44KG44GNDQor44Gk44Gk44GELOOBsuOBp+OBjQ0KK+OBpOOBpOOBvyzjgZfjgZLjgagNCivjgaTjgaTjgb8s44Gy44KN44GXDQor44Gk44Gk44G/44Gv44KJLOOBguOBpOOCiOOBlw0KK+OBhuOBoeOBoCzjgbLjgo3jgZcNCivjgYbjgaHjgaAs44GL44Ga44GKDQor44Gv44KE44GXLOOBquOCi+OBqA0KK+OBhuOBoeOBoCzjgZ/jgYvjgZcNCivjgYbjgaHjga4s44GX44KF44Gy44GhDQor44GG44Gh44KE44G+LOOChuOBvw0KK+OBhuOBoOOBjOOCjyzjgZ/jgYTjgZ4NCivjgYbjgYjjgaAs44Gm44Gk44GKDQor44GG44GI44GgLOOChOOBmeOBjQ0KK+OBhuOBiOOBoCzjgojjgZfjgb8NCivjga3jgZos44GR44KT44Gf44KN44GGDQor44GG44GI44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOCgOOCiSzjgZ/jgZHjgZcNCivjgYbjgYjjgoDjgoks44GR44KT44GE44Gh44KNDQor44GG44GI44GuLOOBn+OBi+OBlw0KK+OBhuOBiOOBrizjgZHjgpMNCivjgYbjgYjjgZXjgo8s44Gf44GL44GX44GSDQor44GG44GI44Gk44G8LOOBvuOBleOBruOCig0KK+OBhuOBiOOBpOOBjSzjgb7jgZXjga/jgosNCivjgYbjgZHjga4s44Gf44GL44GKDQor44GG44G+44Gv44GXLOOBvuOBk+OBqA0KK+OBhuOCgeOBoCzjgZXjgaDjgobjgY0NCivjgYbjgoHjgoDjgoks44Gf44GL44KG44GNDQor44GG44G/44GgLOOBn+OBpOOChA0KK+OBhuOBiuOBmuOBvyzjgZXjgajjgZcNCivjgYbjgonjgZ8s44GC44KE44GuDQor44GG44GX44GP44GVLOOBl+OCk+OBhOOBoQ0KK+OBhuOBmeOBquOBvyzjgbLjgo3jgobjgY0NCivjgo/jgaAs44GR44KT44GYDQor44KP44GgLOOBn+OBkeOBlw0KK+OCj+OBoCzjgajjgZfjgYLjgY0NCivjgo/jgaAs44GV44Go44GXDQor44KP44GL44GbLOOBl+OCh+OBnw0KK+OCj+OBjSzjgZHjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44GX44KT44KEDQor44KP44Gf44Gq44G5LOOBqOOCguOBteOBvw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgbLjgo0NCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44Gf44Gq44G5LOOCiOOBl+OBpuOCiw0KK+OCj+OBn+OBquOBuSzjgobjgZnjgZENCivjgo/jgZ/jgarjgbks44Gy44Gn44G144G/DQor44KP44Gf44Gs44GNLOOChOOBmeOBn+OBiw0KK+OCj+OBn+OBrOOBjSzjgYvjgYrjgosNCivjgo/jgZ/jgoos44GT44GG44GN44GhDQor44Gv44GX44GQ44GhLOOBleOCk+OBuuOBhA0KK+OChOOBtizjgZvjgpPjgZ8NCivjgoTjgY7jgazjgb4s44Go44GX44KG44GNDQor44KE44GY44G+LOOBmOOCheOCkw0KK+OChOOBvuOBoCzjgZjjgoXjgavjgaENCivjgoTjgb7jgaAs44GL44GK44KKDQor44KE44G+44GgLOOBv+OBjQ0KK+OChOOBvuOBoCzjgb/jgaTjga7jgooNCivjgoTjgb7jgaAs44GV44Go44KI44GXDQor44KE44G+44GgLOOBn+OBoOOBlw0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44Go44KC44GC44GNDQor44KE44G+44GgLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOBoCzjgabjgYTjgZgNCivjgbLjgZXjga4s44KI44GX44GNDQor44KE44G+44GgLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBoCzjgYvjgZrjgagNCivjgoTjgb7jgbXjgZgs44KI44GX44Gy44GVDQor44KE44G+44GO44KPLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgb/jgaQNCivjgoTjgb7jgZDjgaEs44GY44KF44KT44KEDQor44KE44G+44GQ44GhLOOBk+OBhuOBmA0KK+OChOOBvuOBkOOBoSzjgb/jgaTjgYLjgY0NCivjgoTjgb7jgZDjgaEs44Gq44GK44GNDQor44KE44G+44GQ44GhLOOBl+OBkuOBteOBvw0KK+OChOOBvuOBkOOBoSzjgojjgZfjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44KG44GZ44GRDQor44KE44G+44GQ44GhLOOChuOBhuOBkw0KK+OChOOBvuOBi+OCjyzjgYLjgY3jgYLjgaQNCivjgoTjgb7jgoLjgags44GC44GN44KJDQor44KE44G+44KC44GoLOOBoeOBiA0KK+OBv+OBmuOBn+OBqyzjgbLjgo3jgZMNCivjgoTjgb7jgoLjgags44GL44Ga44G/DQor44KE44G+44KC44GoLOOBvuOBleOCiOOBlw0KK+OChOOBvuOCguOBqCzjgorjgYsNCivjgoTjgb7jgoLjgags44GV44Go44GXDQor44KE44G+44KC44GoLOOBleOChOOBiw0KK+OChOOBvuOCguOBqCzjgZ/jgaTjgoQNCivjgoTjgb7jgoLjgags44KE44GZ44Gy44GTDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgo0NCivjgoTjgb7jgoLjgags44Gu44KK44KG44GNDQor44KE44G+44GtLOOChuOBhA0KK+OChOOBvuOBrSzjgYTjgZXjgYoNCivjgoTjgb7jgZfjgZ8s44Gm44Gk44KEDQor44KE44G+44GX44GfLOOBn+OBkeOBr+OCiw0KK+OBr+OCk+OBoCzjgYLjgY3jgokNCivjgoTjgb7jgYbjgaEs44Gf44GL44Gy44KNDQor44KE44G+44GG44GhLOOChuOBjeOBkw0KK+OChOOBvuOBhuOCiSzjgbLjgo3jgZcNCivjgoTjgb7jgZbjgY0s44GL44Gq44GTDQor44KE44G+44GW44GNLOOBjeOBv+OBig0KK+OChOOBvuOBluOBjSzjgb/jganjgooNCivjgZ/jgoDjgoks44G/44Gk44Gy44KNDQor44KE44G+44GW44GNLOOCiOOBruOBmeOBkQ0KK+OChOOBvuOBluOBjSzjgarjgYrjgagNCivjgoTjgb7jgZ7jgYgs44Gf44GL44GXDQor44KE44Gq44GO44GV44KPLOOBi+OBpOOBmA0KK+OChOOBrizjgYvjgZoNCivjgoTjgZnjgaAs44GL44Ga44GC44GNDQor44KE44GZ44Gv44KJLOOBsuOBquOBkw0KK+OBk+OBl+OCguOBqCzjgZfjgpPjgYTjgaENCivjga/jgY7jgo/jgoks44G+44GT44GoDQor44KI44GT44GfLOOChOOBmeOBsuOBlQ0KK+OCiOOBk+OChOOBvizjgajjgZfjgYoNCivjgojjgoLjgaAs44GL44Ga44Gy44GVDQor44KI44Gq44GMLOOBhOOBleOBig0KK+OCiOOBreOBoCzjgojjgZfjgoQNCivjgojjga3jgoTjgb4s44GX44KT44GE44Gh44KN44GGDQor44KI44Gt44GW44KPLOOBn+OBi+OBlw0KK+OCiOOBreOBluOCjyzjgbLjgo3jgagNCivjgojjgZfjgaAs44GL44Ga44KI44GXDQor44KI44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgb7jgZXjgajjgZcNCivjgojjgZfjgaAs44GV44Go44GXDQor44KI44GX44GgLOOBn+OBi+OBig0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44KG44G/44GTDQor44KI44GX44GgLOOBn+OBkeOBlw0KK+OCiOOBl+OBkOOBoSzjgbLjgafjgY0NCivjgojjgZfjgYQs44GR44GE44GTDQor44KI44GX44GE44GRLOOCguOBqA0KK+OCiOOBl+OBvuOBpCzjgb/jgY3jgYoNCivjgojjgZfjga4s44Gm44KL44Gy44GVDQor44KI44GX44GuLOOBn+OBkeOBlw0KK+OCiOOBl+OBluOCjyzjgYLjgY3jgokNCivjgojjgaTjgZ/jgass44GV44Go44GXDQor44KG44GN44GW44GtLOOBsuOCjeOBn+OBkQ0KK+OChuOChOOBvizjgZXjgaHjgogNCivjgZrjgZcs44GI44KKDQor44GC44KJ44GELOOBqOOCguOBsuOBlQ0KK+OBteOBmOOBjSzjgb7jgobjgb8NCivjgbLjgonjga4s44Gm44KL44KE44GZDQor44GL44KB44KE44G+LOOBi+OBpOOBsuOCjQ0KK+OBk+OBmOOBvizjgb7jgZXjgagNCivjgarjgYvjgYos44GC44GN44Gy44GVDQor44GE44KP44GL44KPLOOBleOBoeOBkw0KK+OBpOOBoeOChCzjgZHjgpPjgZQNCivjgYTjgZjjgo0s44GN44KI44Gy44GoDQor44GP44Gp44GGLOOBruOBtuOBkw0KK+OBquOBjOOBl+OBvizjgobjgY3jgYoNCivjga/jgZfjgZDjgaEs44GN44KI44KG44GNDQor44Gk44Gh44KELOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBl+OBvuOBpCzjgbLjgZXjgojjgZcNCivjga/jgonjgaAs44GX44GS44GKDQor44G/44Ga44GuLOOBiuOBleOCgA0KK+OBu+OBl+OBrizjgb/jgaTjgbLjgo0NCivjgYLjgbks44Gb44GE44GYDQor44GC44G5LOOCiOOBl+OBsuOBlQ0KK+OBguOBuSzjgobjgY3jgYoNCivjgYLjgbks44G+44GV44GoDQor44GC44G244GL44KPLOOChuOBsuOBoQ0KK+OBguOBoOOBoSzjgZfjgZLjgosNCivjgYLjgYTjgZbjgo8s44Gy44Gn44Gu44G2DQor44GC44GY44KNLOOBi+OBmuOBig0KK+OBguOBi+OBhCzjgoHjgZDjgb8NCivjgZ/jgoLjgags44Gd44GG44Gf44KN44GGDQor44GC44GL44GE44GXLOOBn+OBpOOChA0KK+OBguOBi+OBlyzjgZPjgYbjgZgNCivjgYLjgY3jgYTjgZEs44Go44KC44GTDQor44GC44GN44GfLOOBi+OBmuOBsuOBqA0KK+OBguOBjeOChOOBvizjgYvjgaTjgobjgY0NCivjgYLjgb7jgYzjgYQs44GR44GE44GTDQor44GC44G+44GM44GfLOOBsuOCjeOChOOBmQ0KK+OBguOBvuOBrizjgbLjgo3jgZ/jgYsNCivjgYLjgoHjgb/jgoQs44G144G/44GKDQor44GC44KT44Gp44GGLOOBr+OCi+OBig0KK+OBguOCk+OBqeOBhizjgZfjgZLjga7jgooNCivjgYLjgpPjganjgYYs44Gf44GL44GTDQor44GC44KT44Gp44GGLOOChuOBn+OBiw0KK+OBguOCk+OBluOBhCzjgYjjgYTjgYTjgaENCivjgYLjgYrjgY0s44G/44GVDQor44GC44GK44GNLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOBiuOChOOBjizjgY3jgorjgZMNCivjgYLjgYrjgoTjgb4s44G+44GV44KG44GNDQor44GC44KJ44GELOOBqOOBl+OBguOBjQ0KK+OBguOCieOBhCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44GI44GE44GhDQor44GC44KJ44KELOOBvuOChuOBvw0KK+OBguOCiuOBvizjgoTjgZnjgbLjgo0NCivjgYLjgorjgZ/jgZEs44Gu44KK44Gh44GLDQor44GC44GV44GgLOOCgOOBpOOBvw0KK+OBguOBleOBsizjgbLjgafjgbXjgb8NCivjgYLjgZXjga4s44Gf44GL44GXDQor44GC44GX44GgLOOBv+OBuw0KK+OBguOBl+OBi+OCjyzjgYvjgaTjgb8NCivjgbDjgbAs44GL44Ga44Gy44KNDQor44Gw44GwLOOBn+OBi+OChuOBjQ0KK+OBsOOBsCzjgaDjgYTjgZQNCivjgaHjgbAs44GX44KT44GUDQor44GU44GoLOOBvuOBleOBsuOBpw0KK+OBoeOChyzjgb7jgZXjgajjgZcNCivjgaDjgYTjgaks44GC44GN44G144G/DQor44Gp44GC44GELOOBguOBpOOBqA0KK+OBqeOBhCzjgobjgYbjgZMNCivjgbvjgZ3jgYQs44G+44GV44GXDQor44Gp44GELOOBqOOCguOBquOCig0KK+OBqeOBhCzjgajjgZfjgb/jgaQNCivjgYjjgYzjgZfjgoks44Gy44KN44GC44GNDQor44GI44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OBiOOBsOOCiSzjgZvjgYTjgZgNCivjgYjjgpPjgaks44Gf44GR44GKDQor44GI44KT44GpLOOChuOBhuOBmA0KK+OBguOBvuOCiizjgZjjgoXjgpPjgZMNCivjgYjjga7jgoLjgags44GV44Go44GXDQor44GI44Gu44KC44GoLOOBleOBqOOBlw0KK+OBiOOBruOCguOBqCzjgoTjgZnjgobjgY0NCivjgYjjga7jgoLjgags44Gf44GL44Gv44KLDQor44GI44GW44GNLOOBkeOCk+OBmA0KK+OBteOBmOOBr+OCiSzjgZjjgoXjgpPjgZMNCivjgbXjgZjjgYQs44G+44GV44Gy44GTDQor44G144GY44GELOOBiOOBhOOBmA0KK+OBsuOCi+OBi+OCjyzjgobjgYbjgZMNCivjgbXjgZjjgYQs44GT44GG44GYDQor44G144GY44GV44KPLOOBqOOCguOBsuOCjQ0KK+OBteOBmOOBleOCjyzjgZ/jgY/jgZgNCivjgbLjgZQs44GE44GV44GKDQor44G144GY44GfLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBnyzjgbLjgafjgZ/jgYsNCivjgbXjgZjjgo/jgoks44KE44GZ44Gy44KNDQor44G144GL44G/LOOBpOOBqOOCgA0KK+OBteOBi+OBluOCjyzjgZfjgpPjgYTjgaENCivjga/jgZvjgYzjgo8s44GV44Go44GXDQor44G144GP44GgLOOBkeOCk+OBmA0KK+OBteOBj+OCguOBqCzjgY3jgojjgb8NCivjgbXjgY/jgoDjgo0s44G+44GV44G/DQor44G144GP44KNLOOBguOBjeOCiQ0KK+OBteOBj+OBlyzjgaHjgYvjgokNCivjgbXjgY/jgZfjgb4s44GL44Ga44Gy44GoDQor44G144GP44GX44G+LOOBvuOBleOBr+OCiw0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgZcNCivjgbXjgY/jgZfjgb4s44GV44Gk44GNDQor44G144Gq44GNLOOBkeOCkw0KK+OBteOBquOBj+OBvCzjgb7jgZXjgbLjgZMNCivjga/jgonjgaAs44Gv44KL44G/DQor44G144KL44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBteOCi+OBi+OCjyzjgYvjgaTjgobjgY0NCivjgbXjgovjgoLjgags44Gk44KI44GXDQor44G144KL44KELOOBn+OBi+OBlw0KK+OBteOBl+OBvyzjgajjgYrjgosNCivjgZTjgaAs44KE44GZ44KG44GNDQor44GE44KK44GILOOBn+OBkeOBlw0KK+OBhOOBl+OBr+OCiSzjgojjgZnjgZENCivjgYTjgaHjgYvjgo8s44GY44KF44KT44GTDQor44GE44GwLOOBv+OBpOOBig0KK+OBhOOCj+OBleOBjSzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44KE44GZ44GTDQor44GE44GE44KC44KKLOOBsuOCjeOBvw0KK+OBhOOBr+OCiSzjgZ/jgYvjgb8NCivjgYTjgo/jgoDjgoks44GX44KT44GE44GhDQor44GE44Gq44GM44GNLOOBqOOBl+OBig0KK+OBhOOBl+OBmOOBvizjgYLjgY3jgokNCivjgYTjgajjgYYs44Gq44GK44GNDQor44GU44KT44GpLOOBteOBv+OBig0KK+OBlOOBqCzjgb/jga7jgosNCivjgYTjgZfjgYvjgo8s44KC44Go44G144G/DQor44GE44Go44GGLOOBvuOBoeOBkw0KK+OBhOOBm+OBjSzjgZ/jgYvjgZcNCivjgZTjgags44Go44KC44KEDQor44Gv44GgLOOBsuOCjeOBvw0KK+OBr+OBjuOCj+OCiSzjgb/jgY3jgYoNCivjga/jgY7jgo/jgoks44GX44KT44GYDQor44Gv44GE44GY44G+LOOBguOBjeOCiQ0KK+OBr+OBvuOBoCzjgb7jgZXjgobjgY0NCivjga/jgb7jga4s44G+44G/DQor44Gv44G+44GK44GLLOOBleOBiOOBkw0KK+OBr+OBquOBqSzjgYLjgoTjgZMNCivjga/jgarjgZ8s44G+44GV44Gy44KNDQor44Gv44KJLOOBm+OBhOOBmA0KK+OBr+OCiSzjgZfjgofjgZ8NCivjga/jgoks44KG44GN44GKDQor44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OBr+OCieOBoCzjgZfjgo0NCivjga/jgonjgaAs44GX44KF44GYDQor44Gv44KJ44GgLOOBmeOBv+OCjA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgZMNCivjga/jgonjgYws44G+44GV44Gu44G2DQor44Gv44KJ44G/LOOCiuOBkw0KK+OBr+OCieOChOOBvizjgbLjgo3jgobjgY0NCivjga/jgonjgZ7jga4s44Gy44Gn44GC44GNDQor44Gv44Gb44G5LOOBv+OCj+OBkw0KK+OBi+OBreOBkyzjgajjgoLjgZMNCivjgaTjgaHjgaAs44GC44GE44GTDQor44Gv44GX44KC44GoLOOBsuOCjeOBlw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgaTjgZANCivjga/jgZfjgoLjgags44GT44GZ44GRDQor44Gv44GX44KC44GoLOOBv+OBruOCiw0KK+OBr+OBl+OCguOBqCzjgabjgaTjgoQNCivjga/jgZfjgoLjgags44Go44KC44Gy44GTDQor44Gv44GX44KC44GoLOOChuOBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZ/jgZHjgZcNCivjga/jgZ8s44GN44KH44GTDQor44Gv44Gj44Go44KKLOOBl+OCkw0KK+OBr+OBo+OBqOOCiizjgZ/jgZHjgZcNCivjga/jgaPjgajjgoos44GC44GN44Gy44GoDQor44Gv44KE44GL44KPLOOBn+OBkeOCjQ0KK+OBr+OChOOBi+OCjyzjgZ/jgaTjgoQNCivjga/jgoTjgZXjgYss44GR44KT44Gf44KN44GGDQor44Gv44KE44GV44GNLOOBruOBtuOBsuOBkw0KK+OBr+OChOOBlyzjga7jgbbjgbLjgo0NCivjga/jgoTjgZcs44Gf44GP44GYDQor44Gv44KE44GXLOOBqOOCguOBguOBjQ0KK+OBr+OChOOBlyzjgojjgbLjgaENCivjga/jgoTjgZcs44KK44GIDQor44Gv44KE44GX44GgLOOBteOBv+OBsuOCjQ0KK+OBsuOBsyzjgYvjgarjgYgNCivjgbLjgYzjgZcs44GV44Go44GXDQor44Gy44GM44GXLOOBn+OBi+OBguOBjQ0KK+OBsuOBkOOBoSzjgbLjgafjgY0NCivjgbLjgZjjgYvjgZ8s44Gy44Gn44GNDQor44Gy44GY44KELOOCiOOBl+OBsuOBkw0KK+OBsuOBquOBjCzjgZHjgYTjgZMNCivjgbLjgonjgYvjgo8s44Gy44Gn44GC44GNDQor44Gy44KJ44GuLOOBvuOBk+OBqA0KK+OBsuOCieOBrizjgZvjgYTjgZgNCivjgbLjgonjga4s44GN44KI44GXDQor44Gy44KJ44GKLOOBsuOBp+OBr+OCiw0KK+OBsuOCieOBl+OBvizjgojjgZfjgYvjgZoNCivjgbLjgonjgoTjgb4s44Gb44GE44GUDQor44Gy44KJ44KE44GZLOOBqOOBl+OBsuOBkw0KK+OBsuOCiuOBjSzjgZ/jgYvjgojjgZcNCivjgbLjgo3jgb7jgZUs44Gf44GL44Gq44KKDQor44Gy44KN44KC44GoLOOChOOBmeOBjQ0KK+OBsuOCjeOBiuOBiyzjgYLjgY3jgokNCivjgbLjgo3jgZss44GR44KT44GeDQor44Gy44KN44GbLOOBi+OBmuOBruOBtg0KK+OBhuOCgeOBoCzjgoTjgZnjgbLjgo0NCivjgbvjgpPjgaAs44GL44Ga44GKDQor44G744KT44GpLOOBk+OBhuOBhOOBoeOCjQ0KK+OBu+OCiuOCguOBqCzjgZHjgpPjgZgNCivjgbvjgorjga4s44KI44GX44GKDQor44G744KK44GG44GhLOOBn+OBkeOBlw0KK+OBu+OBleOBiyzjgbLjgafjgYLjgY0NCivjgbvjgZfjga4s44Gy44KN44GTDQor44G744GX44KE44G+LOOBhOOBn+OCiw0KK+OBu+OBneOBi+OCjyzjgZ/jgaDjgYoNCivjgbvjgZ3jgYvjgo8s44Gf44GL44Gy44GoDQor44G744Gd44GL44KPLOOBquOBiuOBjQ0KK+OBu+OBneOChCzjgajjgZfjgo0NCivjgYTjgbDjgonjgY0s44Gy44Go44GXDQor44GE44Gh44Gv44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBoeOBr+OCiSzjgo/jgZ/jgosNCivjgYTjgaHjga/jgoks44GX44KT44GYDQor44GE44Gh44GL44KPLOOBvuOBquOBtg0KK+OBhOOBoeOBruOBmyzjgobjgb/jgZMNCivjgYTjgaAs44G+44Gk44Gf44KN44GGDQor44GE44Gn44GQ44GhLOOCiuOCh+OBsuOBoQ0KK+OBhOOBqSzjgZXjgarjgYgNCivjgYTjgYzjgonjgZcs44Gf44GR44GXDQor44GE44GM44KJ44GXLOOChOOBmeOChuOBjQ0KK+OBhOOBjOOCieOBlyzjgYvjgZrjgZfjgZINCivjgYTjgYTjgaAs44Gf44GL44GtDQor44GE44GE44GgLOOBguOBjeOBkw0KK+OBhOOBhOOBmOOBvizjgb7jgZPjgagNCivjgYTjgZHjgaAs44G/44GO44G144G/DQor44GE44GR44GgLOOBpuOBpOOChA0KK+OBhOOBkeOBoCzjgojjgZfjgbLjgo0NCivjgYTjgZHjgaAs44GX44GS44GKDQor44GE44G+44GELOOBsuOCjeOBlw0KK+OBhOOBvuOBhOOBmuOBvyzjga7jgbbjgYoNCivjgYTjgb7jgYTjgZrjgb8s44Gy44GV44G/44GkDQor44GE44G+44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBvuOCgOOCiSzjga7jgbbjgZMNCivjgYTjgoLjgpMs44GR44KT44GE44GhDQor44GE44Gq44GgLOOBleOBqOOBlw0KK+OBhOOBquOBjOOBjSzjgZ/jgZHjgZcNCivjgYTjgarjgYzjgY0s44GL44Ga44Gy44GoDQor44GE44Gq44KA44KJLOOBvuOBleOBlw0KK+OBhOOBquOCgOOCiSzjgYvjgaTjga7jgbYNCivjgYTjga4s44KG44GN44Gy44GTDQor44GE44Gu44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgYoNCivjgYTjga7jgYbjgYgs44GL44Gk44Go44GXDQor44GE44Gu44GG44GILOOBk+OBhuOBmA0KK+OBhOOBruOBhuOBiCzjgorjgocNCivjgYTjga7jgYbjgYgs44Go44KC44G/DQor44GE44Gu44GG44GILOOBqOOCguOBvw0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgYTjga7jgYbjgYgs44GT44GNDQor44GE44Gs44GELOOBkeOBhOOBkw0KK+OBhOOBrOOBl+OBvizjgb/jgo8NCivjgYTjgorjgYgs44GK44GV44KADQor44GE44GV44GLLOOBv+OBruOCiw0KK+OBhOOBl+OBsCzjgYvjgZrjgobjgY0NCivjgYTjgZfjgbDjgZcs44G+44GZ44G/DQor44GE44GX44Gw44GXLOOBi+OBmuOChA0KK+OBhOOBl+OBoCzjgb/jgaTjgoQNCivjgYTjgZfjgaAs44Gf44GL44GXDQor44GE44GX44GgLOOBqOOCguOBruOCig0KK+OBhOOBl+OBoCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjgZfjgYzjgb8s44GC44GZ44GTDQor44GE44GX44GQ44KNLOOBi+OBmuOBsuOBqA0KK+OBhOOBl+OBr+OCiSzjgbLjgo3jgYvjgZoNCivjgYTjgZfjgYQs44GV44Go44GXDQor44GE44GX44GELOOBl+OBuw0KK+OBhOOBl+OBhCzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgYQs44KG44GG44GYDQor44GE44GX44GELOOChuOBhuOBnw0KK+OBhOOBl+OBhCzjgZPjgYbjgYTjgaHjgo0NCivjgYTjgZfjgYvjgo8s44GX44KT44GE44Gh44KN44GGDQor44GE44GX44G+44KLLOOBvuOChuOBvw0KK+OBi+OCj+OBmizjgb7jgZXjga7jgooNCivjgYTjgZfjgZrjgYss44GX44GS44KLDQor44GE44Gf44KELOOBoeOBsuOCjQ0KK+OBhOOBhOOBoCzjgaDjgYTjgZnjgZENCivjgYTjgajjgYYs44Gy44Gn44GNDQor44GE44Go44GGLOOBsuOCjeOBv+OBpA0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgYTjgajjgYYs44GL44Gk44Gy44KNDQor44GE44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgYTjgajjgYYs44GT44GG44GYDQor44GE44Go44GGLOOBvuOCiuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44Gq44GK44G/DQor44GE44Go44GGLOOBruOBvOOCiw0KK+OBhOOBqOOBhizjgZvjgaTjgZMNCivjgYTjgajjgYYs44Gf44Gg44GXDQor44GE44Go44GGLOOBn+OBi+OBr+OCiw0KK+OBhOOBqOOBhizjgajjgZfjgYoNCivjgYTjgajjgYYs44Gk44KI44GXDQor44GE44Go44GGLOOCiOOBsuOBoQ0KK+OBhOOBqOOBhizjgobjgY3jgYoNCivjgYTjgajjgYYs44Gu44KK44Gy44GVDQor44GE44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBhOOCj+OBhCzjgbLjgo3jgb/jgaENCivjgYTjgo/jgYQs44Gy44KN44GXDQor44GE44KP44G/LOOBhOOBj+OBig0KK+OBhOOCj+OCgOOCiSzjgYvjgZrjgoQNCivjgYTjgo/jgarjgYws44GX44KH44GTDQor44GE44KP44GKLOOBi+OBmuOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZjjgoXjgpMNCivjgYTjgo/jgZ8s44G+44GT44GoDQor44GE44KP44GfLOOBiuOBleOCgA0KK+OBhOOCj+OBnyzjgojjgZfjgb7jgZUNCivjgYTjgZrjgb8s44G+44GV44KG44GNDQor44GY44KT44GwLOOBvuOBleOBvw0KK+OBmOOCh+OBruOBhuOBoSzjgbLjgo3jgYLjgY0NCivjgZjjgofjgonjgY8s44Gf44G+44GNDQor44GL44GM44G/LOOBjeOCiOOBn+OBiw0KK+OBi+OBjOOCjyzjgb7jgZXjgbXjgb8NCivjgYvjgZLjgoTjgb4s44Gy44KN44GL44GaDQor44GL44GELOOChuOBjeOBig0KK+OBi+OBmOOCguOBqCzjgYjjgYTjgZgNCivjgYvjgZjjgo/jgoks44G/44G744GTDQor44GP44KK44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OBjeOCgOOCiSzjgYvjgZrjgZfjgZINCivjgYvjgY3jga7jgY0s44GN44KI44GXDQor44GL44GN44GG44GhLOOCiOOBl+OBn+OBiw0KK+OBi+OBjeOBluOBjSzjgarjgYrjgZMNCivjgYvjgZMs44GL44Ga44GC44GNDQor44GL44KB44GX44G+LOOCiuOCheOBkw0KK+OBi+OBv+OBiOOBmSzjgY3jgojjgZMNCivjgYvjgb/jgY/jgoks44G/44Gk44Gy44KNDQor44GL44G/44KA44KJLOOBl+OCk+OBmA0KK+OBi+OBv+OBn+OBjSzjga7jgZ7jgoANCivjgYvjgb/jgojjgZfjgYvjgo8s44Gk44Gt44Gu44KKDQor44GL44KTLOOCiuOBiA0KK+OBi+OBquOBhCzjgojjgZfjga7jgooNCivjgYvjgpPjgbDjgoTjgZcs44Gy44KN44GXDQor44GL44KT44GgLOOBkeOBhOOBnw0KK+OBi+OBreOBkyzjgZ/jgb7jgY0NCivjgYvjga3jgZMs44GY44KF44KTDQor44GL44Gt44GfLOOBn+OBj+OChA0KK+OBi+OBrizjgZvjgYTjgZgNCivjgYvjgorjga4s44GI44GE44GYDQor44GL44GV44G/LOOBmOOCheOCkw0KK+OBi+OBleOBquOBvyzjgZ/jgYvjgYLjgY0NCivjgYvjgZss44Gy44KN44KG44GNDQor44GL44GZ44GMLOOBk+OBhuOBmA0KK+OBi+OBmeOChCzjgajjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44Gg44GE44GZ44GRDQor44GL44Go44GGLOOBiOOBhOOBhOOBoQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44GL44Go44GGLOOBvuOBleOBmA0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgYvjgajjgYYs44Gf44GP44KEDQor44GL44Go44GGLOOBqOOBl+OBi+OBmg0KK+OBi+OBqOOBhizjgYTjgaHjgo3jgYYNCivjgYvjgajjgYYs44KI44GX44Gy44GoDQor44GL44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBi+OBpOOBvuOBnyzjgoTjgZnjgobjgY0NCivjgYvjgaTjgoks44Gf44GL44GXDQor44GL44KP44G5LOOBvuOChuOBvw0KK+OBi+OCj+OBoCzjgbLjgo3jgZcNCivjgYvjgo/jgZDjgaEs44GL44Gq44GIDQor44GV44GE44Go44GGLOOBn+OBi+OBqA0KK+OBi+OCj+OBkOOBoSzjgb7jgoLjgosNCivjgYvjgo/jga/jgZ8s44Gy44KN44GXDQor44GL44KP44GL44G/LOOBvuOBleOBquOCig0KK+OBi+OCj+OBi+OBvyzjga7jgorjgZMNCivjgoTjgZjjgb4s44Gq44GK44GTDQor44GL44KP44KC44GoLOOBsuOCjeOBlw0KK+OBi+OCj+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgYvjgo/jgoDjgoks44Gu44KK44GC44GNDQor44GL44KP44KA44KJLOOBn+OBoOOBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgYvjgo/jga4s44GR44KT44GYDQor44GL44KP44GuLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBleOBjSzjgYLjgY3jgbLjgagNCivjgYvjgo/jgZss44GY44KNDQor44GL44KP44GX44G+LOOBj+OBvw0KK+OBi+OCj+OBl+OBvizjgb7jgZXjgY0NCivjgYvjgo/jgZfjgb4s44KI44GX44KG44GNDQor44GL44KP44GX44G+LOOBn+OBkeOBlw0KK+OBjeOBoCzjgbLjgafjgY0NCivjgY3jgY/jgaEs44Gy44Gn44Gf44GLDQor44GN44GP44GhLOOBhOOBj+OBkw0KK+OChOOBvuOCguOBqCzjgYvjgYrjgooNCivjgYLjgY3jgojjgZcs44GL44Ga44KI44GXDQor44GN44GP44GhLOOBkeOCk+OBhOOBoQ0KK+OBjeOBj+OBoSzjgb/jgaTjgogNCivjgY3jgY/jgaEs44Gk44KI44GXDQor44GN44GP44GhLOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgY3jgoDjgoks44GY44KF44Gr44GhDQor44GN44KA44KJLOOBvuOCig0KK+OBjeOCgOOCiSzjgb7jgZXjgbLjgZMNCivjgY3jgoDjgoks44G+44GV44GL44GkDQor44GN44KA44KJLOOBl+OBkuOChuOBjQ0KK+OBjeOCgOOCiSzjgZHjgpPjgZgNCivjgYvjgajjgYYs44Go44GX44KEDQor44GN44Gq44GbLOOCiOOBl+OBr+OCiw0KK+OBjeOBrSzjgbLjgafjgY0NCivjgY3jga4s44KE44GZ44Gu44G2DQor44GN44GuLOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgYvjgZrjgoQNCivjgY3jgoks44Gf44GL44Gy44GnDQor44GN44GX44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBsOOBn+OBkSzjgoTjgZnjgbLjgo0NCivjgY3jgZ/jgbDjgZ/jgZEs44G+44KC44KLDQor44GN44Gf44GM44KPLOOBn+OBpOOChA0KK+OBjeOBn+OBjOOCjyzjgb/jgaTjgosNCivjgY3jgZ/jgoDjgoks44GC44GN44GTDQor44Gf44GL44Gv44GXLOOBteOBv+OBsuOBkw0KK+OBjeOBn+OChOOBvizjgb7jgZXjgbLjgZMNCivjgY3jgojjgarjgoos44GC44GN44Gy44GTDQor44GT44Gw44KE44GXLOOBguOBpOOBlw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBv+OBruOCiw0KK+OBk+OBsOOChOOBlyzjgZfjgofjgZgNCivjgZPjgbDjgoTjgZcs44KG44GG44GYDQor44GT44Gw44KE44GXLOOBvuOBleOBkw0KK+OBhOOBqOOBhizjgYLjgY0NCivjgZPjga4s44GL44Ga44Gy44KNDQor44GT44GuLOOBkeOBhOOBnw0KK+OBk+OBrizjgojjgYbjgZMNCivjgZPjga4s44Go44GK44KLDQor44GT44GE44GRLOOBguOBjeOBig0KK+OBk+OBmOOBvizjgZ/jgYvjgbLjgZMNCivjgZPjgY/jgZfjgocs44GK44GV44KADQor44GT44G+44GNLOOBoeOBi+OBkw0KK+OBvuOBi+OBuSzjgbLjgo3jgYLjgY0NCivjgZPjgb7jgaQs44KB44GQ44G/DQor44GT44G+44GkLOOBiOOBhOOBmA0KK+OBk+OCk+OBqSzjgbLjgo3jgZcNCivjgZPjgpPjgaks44GN44KI44GXDQor44GT44KT44GpLOOBqOOBl+OBsuOCjQ0KK+OBk+OBl+OBsCzjgYLjgY3jgZMNCivjgojjgZPjgYgs44Gf44GL44GXDQor44GT44Gm44GM44KPLOOBsuOCjeOBlw0KK+OBk+OBrizjgbLjgo3jgYLjgY0NCivjgZPjgoTjgb4s44Gq44GK44GNDQor44GT44KE44G+LOOBl+OCk+OBmA0KK+OBk+OChOOBvizjgojjgbLjgaENCivjgZPjgZbjgZks44Gf44GL44G/44GkDQor44GP44Gh44GE44GXLOOBsuOCjeOBlw0KK+OBj+OBjuOBv+OChCzjgYvjgZrjgYLjgY0NCivjgY/jgZjjgonjgYQs44Go44KC44G144G/DQor44GP44G+44Gu44G/44GpLOOCj+OBn+OCiw0KK+OBj+OBvuOBluOBjSzjgb7jgZXjgosNCivjgY/jgozjgb7jgaQs44GL44Ga44KEDQor44GP44KK44GNLOOBleOBtuOCjQ0KK+OBj+OCiuOChOOBvizjgZ/jgZHjgZcNCivjgY/jgorjgoTjgb4s44Gy44KN44GIDQor44GP44KN44G5LOOBl+OCkw0KK+OBj+OCjeOBleOCjyzjgZ/jgY/jgb8NCivjgY/jgo3jgZXjgo8s44G+44GV44KG44GNDQor44GP44KK44KFLOOBv+OBjQ0KK+OBj+OBleOBrizjgoTjgZnjga7jgooNCivjgY/jgo/jga/jgoks44G+44GV44Gu44KKDQor44GP44Ga44GuLOOBi+OBmuOBguOBjQ0KK+OBjeOCheOBoCzjgozjgYTjgZMNCivjgb7jgbbjgaEs44KC44Go44GP44GrDQor44G+44Gh44GfLOOBsuOCjeOBn+OBiw0KK+OBvuOBiOOBoCzjgajjgZfjga7jgooNCivjgb7jgYjjgYTjgYgs44GL44Ga44Go44GXDQor44G+44GI44GL44KPLOOCiuOCheOBmeOBkQ0KK+OBvuOBvuOBoCzjgYLjgaTjgZcNCivjgb7jgarjgbks44Gy44KN44GXDQor44G+44Gq44G5LOOBqOOCguOBjQ0KK+OBvuOCi+OBhOOBoSzjgZ/jgYvjgbLjgacNCivjgb7jgovjgZ/jgass44G+44GV44KG44GNDQor44G+44KL44KE44G+LOOBqOOBl+OCjQ0KK+OBvuOBleOBiuOBiyzjgbLjgo3jgZcNCivjgb7jgZnjgaAs44Gq44GK44GoDQor44G+44GZ44GgLOOBqOOCguOBguOBjQ0KK+OBvuOBmeOBoCzjgoTjgZnjgobjgY0NCivjgb7jgZnjgaAs44KI44GX44GIDQor44G+44GZ44GgLOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOBsOOCiSzjgZjjgoXjgpMNCivjgb7jgaTjgaAs44KI44GX44Gf44GLDQor44G+44Gk44GgLOOBn+OBj+OChA0KK+OBvuOBpOOBoOOBhOOCiSzjgZHjgpPjgYTjgaENCivjgb7jgaTjgYjjgaAs44G+44GV44GNDQor44G+44Gk44GELOOCiOOBsuOBoQ0KK+OBvuOBpOOBhCzjgYLjgY3jgbXjgb8NCivjgb7jgaTjgoLjgags44Gh44GC44GNDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgb7jgaTjgoLjgags44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgbLjgacNCivjgb7jgaTjgoLjgags44Gf44GL44GTDQor44G+44Gk44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgaTjgb8NCivjgb7jgaTjgoLjgags44Gk44KI44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBtuOBvw0KK+OBvuOBpOOCguOBqCzjgobjgY3jgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GL44GaDQor44G+44Gk44KA44KJLOOBk+OBng0KK+OBvuOBpOOBquOBjCzjgYvjgaTjgoQNCivjgb7jgaTjga4s44Gy44KN44KG44GNDQor44G+44Gk44GKLOOBqOOBl+OBteOBvw0KK+OBvuOBpOOBiizjgYLjgobjgb8NCivjgb7jgaTjgYrjgYss44Gy44Gn44GXDQor44G+44Gk44GK44GLLOOBsuOCjeOBjQ0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgYoNCivjgb7jgaTjgYrjgYss44Gb44GE44GE44GhDQor44G+44Gk44GK44GLLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOBl+OBvizjgY3jgojjgYvjgZoNCivjgb7jgaTjgZ/jgass44GN44KH44GTDQor44G+44Gk44KE44G+LOOCiOOBl+OBjQ0KK+OBv+OBoeOCguOBqCzjgarjgorjgYLjgY0NCivjgb/jgYjjgY0s44GC44GN44Gu44KKDQor44G/44GL44G/LOOBkeOCkw0KK+OBv+OBi+OBvyzjgajjgZfjgYvjgZoNCivjgb/jgarjgYzjgo8s44GR44KTDQor44G/44Gq44GL44KPLOOBoOOBhA0KK+OBv+OBl+OBvizjgbLjgo3jgobjgY0NCivjgb/jgZfjgb4s44GP44G/DQor44G/44GX44G+LOOBkeOCk+OBmOOCjQ0KK+OBv+OBn+OBoSzjgYvjgZrjgagNCivjgb/jgaTjgaAs44KK44KF44GE44GhDQor44G/44Gk44Gv44GXLOOBn+OBi+OBig0KK+OBv+OBpOOBhCzjgZ/jgZHjgZcNCivjgb/jgaTjgoLjgags44GL44Ga44Gu44KKDQor44G/44GG44KJLOOBn+OBoOOBguOBjQ0KK+OBv+OBhuOCiSzjgbLjgo3jgZcNCivjgb/jgoTjgbks44GC44Gk44GXDQor44G/44KE44GhLOOBjeOBv+OBig0KK+OBv+OChOOBmOOBvizjgYLjgoQNCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44G/44KE44KC44GoLOOBvuOChuOBvw0KK+OCiOOBk+OBiCzjgZ/jgY/jgo0NCivjgb/jgoTjgZXjgYss44GL44Ga44G/DQor44G/44KE44GfLOOCiOOBl+OBn+OBiw0KK+OBv+OChOOBnyzjgaTjgojjgZcNCivjgb/jgoTjgYbjgaEs44GX44KH44GTDQor44GG44Gh44KE44G+LOOBi+OBmuOBvw0KK+OBleOBi+OBhCzjgZfjga7jgbYNCivjgb/jgoTjgZbjgo8s44Gy44KN44GC44GNDQor44G/44Ge44G244GhLOOBk+OBhuOBmA0KK+OBv+OBnuOBkOOBoSzjgarjgYrjgY0NCivjgb/jgZ7jgZDjgaEs44GY44KF44KTDQor44G/44Ga44KC44GoLOOBsuOCjeOBlw0KK+OBv+OBmuOBrizjgY3jgojjgb8NCivjgb/jgZrjga4s44GN44KH44GYDQor44G/44Ga44GuLOOBvuOBleOBsuOCjQ0KK+OBv+OBmuOBl+OBvizjgYLjgY3jgokNCivjgb/jgZrjgZ8s44G+44GV44KG44GNDQor44G/44Ga44Gf44GrLOOBguOBjeOBruOCig0KK+OCguOBjizjgb7jgarjgbYNCivjgoLjgY4s44Go44GX44GC44GNDQor44KC44GOLOOBk+OBng0KK+OCguOCguOBmyzjgZHjgYTjgYTjgaENCivjgoLjgpPjgb4s44Gy44KN44KG44GNDQor44KC44KKLOOBi+OBmuOBig0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgoLjgoos44G/44GN44GTDQor44KC44KKLOOCiuOCh+OBmeOBkQ0KK+OCguOCiizjgajjgZfjgYLjgY0NCivjgoLjgoos44GI44GE44GTDQor44KC44KK44KC44GoLOOBguOBjeOCiQ0KK+OCguOCiuOBrizjgYTjgZrjgb8NCivjgojjgZfjgaAs44GC44Gk44Gy44GTDQor44KC44KK44GfLOOBvuOBleOCiOOBlw0KK+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgoLjgorjgZ8s44KG44GG44GYDQor44KC44KK44GfLOOChuOBjeOBig0KK+OCguOCiuOBnyzjgobjgZ/jgYsNCivjgoLjgorjgo/jgY0s44Gy44GV44GoDQor44KC44KNLOOBi+OBmuOBruOCig0KK+OCguOBn+OBhCzjgoLjgobjgosNCivjgoLjgajjgbDjgoTjgZcs44Gy44KN44GXDQor44KC44Go44Gv44GXLOOBoOOBhOOBmeOBkQ0KK+OCguOBqOOChOOBvizjgobjgYbjgZgNCivjgoLjgajjgZbjgo8s44KM44GE44GTDQor44KA44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OCgOOBquOBi+OBnyzjgZHjgpPjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44Gy44KNDQor44KA44KJ44GL44G/LOOCiuOBiw0KK+OCgOOCieOBi+OBvyzjgaTjgajjgoANCivjgoDjgonjgYvjgb8s44KG44GN44Gy44KNDQor44KA44KJ44GL44G/LOOCiOOBmeOBkQ0KK+OCgOOCieOBi+OCjyzjgarjgYrjgbXjgb8NCivjgoDjgonjgarjgYss44Gy44Gn44Gu44G2DQor44KA44KJ44GfLOOBi+OBmuOBsuOBlQ0KK+OCgOOCieOBnyzjgYvjgaTjgb8NCivjgoDjgonjgoTjgb4s44KI44GX44KEDQor44KA44KJ44KE44G+LOOBl+OBkuOBig0KK+OCgOOCjeOBr+OBlyzjgZ/jgY/jgYoNCivjgoDjgags44KI44GX44KNDQor44KA44GoLOOBsuOCjeOBlw0KK+OBquOBsCzjgZXjgajjgosNCivjgarjgYzjgYQs44GX44GS44G+44GVDQor44Gq44GM44GELOOBvuOBleOBruOCig0KK+OBquOBjOOBrizjgobjgYbjgZgNCivjgarjgYzjga4s44GE44Gk44GTDQor44Gq44GM44GKLOOBteOBv+OBkw0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYLjgY0NCivjgarjgYzjgYrjgZEs44KI44GX44GNDQor44Gq44GM44GK44GVLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBl+OBvizjgoTjgZnjgZMNCivjgarjgYzjgZfjgb4s44GC44GN44Gy44GVDQor44Gq44GM44GfLOOBvuOBleOBkw0KK+OBiuOBsCzjgb7jgobjgZMNCivjgarjgYzjgZ8s44Go44KC44Gu44KKDQor44Gq44GM44GfLOOBsuOCjeOBjQ0KK+OBquOBjOOBn+OBqyzjgZHjgpPjgZgNCivjgarjgYTjgajjgYYs44Gy44KN44GXDQor44Gq44GL44GhLOOBk+OBhuOBmA0KK+OBquOBi+OBoCzjgYvjgYrjgosNCivjgarjgYvjgaDjgYQs44GC44GN44GTDQor44Gq44GL44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgosNCivjgarjgYvjgYzjgo8s44Gq44GK44GC44GNDQor44Gq44GL44GM44KPLOOBi+OBpOOChA0KK+OBquOBi+OBr+OCiSzjgZ/jgb7jgb8NCivjgarjgYvjgYQs44KE44GZ44Gy44KNDQor44Gq44GL44GELOOBi+OBmuOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZXjgajjgZcNCivjgarjgYvjgZjjgb4s44GC44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBi+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgY/jgb8NCivjgY3jgb/jgbLjgoks44G/44GNDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44GX44KH44G444GEDQor44Gq44GL44KA44KJLOOBpOOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgoTjgZnjga7jgooNCivjgarjgYvjgoDjgoks44KI44GX44Gv44KLDQor44Gq44GL44KA44KJLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgobjgbLjgaENCivjgarjgYvjgoDjgoks44Gq44GK44KG44GNDQor44Gq44GL44Gr44GXLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBq+OBlyzjgYLjgaTjgZcNCivjgarjgYvjga4s44Gy44KN44KG44GNDQor44Gq44GL44GuLOOBmOOCheOCkw0KK+OBquOBi+OBrizjgZHjgYTjgYTjgaENCivjgarjgYvjga4s44GX44GuDQor44Gq44GL44GuLOOBn+OBi+OBlw0KK+OBquOBi+OBiizjgZPjgYbjgZgNCivjgarjgYvjgZXjgY8s44GX44KF44GUDQor44Gq44GL44GbLOOBvuOBleOChuOBjQ0KK+OBquOBi+OBnyzjgb/jgYsNCivjgarjgYvjgZ8s44Gf44GL44Gy44GVDQor44Gq44GL44GfLOOBk+OBhuOBmA0KK+OBquOBi+OBn+OBkSzjgZ/jgaTjgoQNCivjgarjgYvjgoTjgb4s44GL44Ga44KG44GNDQor44Gq44G/44GNLOOBr+OBmOOCgQ0KK+OBquOBquOBleOCjyzjgb7jgZXjgYLjgY0NCivjgarjgpPjgbAs44Gy44KN44GNDQor44Gq44KT44KC44GPLOOBv+OBjQ0KK+OBreOCguOBqCzjgajjgoLjgYoNCivjga3jgoLjgags44GE44Ga44KLDQor44Gr44GELOOBn+OBi+OBsuOCjQ0KK+OBq+OBhOOBpyzjgobjgYbjgZMNCivjgavjgYTjgY/jgoks44KE44GZ44GC44GNDQor44Gr44GE44Ga44G+LOOBpuOBpOOChA0KK+OBq+OBi+OBvyzjgYvjgZrjga7jgooNCivjgavjgZfjgbDjgoTjgZcs44GC44Gk44GXDQor44Gr44GX44GgLOOBguOBjeOBkw0KK+OBq+OBl+OBr+OCiSzjgZfjgofjgZ/jgaQNCivjgavjgZfjga/jgoks44Gy44KN44Gf44GLDQor44Gr44GX44GL44KPLOOBj+OCi+OBvw0KK+OBq+OBl+OBi+OBnCzjgbLjgo3jgb8NCivjgavjgZfjgb/jgoQs44KE44GZ44Gy44KNDQor44Gr44GX44KA44KJLOOBn+OBj+OBig0KK+OBq+OBl+OCgOOCiSzjgbXjgb/jgYoNCivjgavjgZfjgoTjgb4s44GR44GE44GXDQor44Gr44GX44KE44G+LOOBquOBv+OBmA0KK+OBq+OBo+OBnyzjgaDjgYTjgZnjgZENCivjgavjgo8s44GI44G/44GTDQor44Go44GULOOBquOBpOOBkw0KK+OBq+OCjyzjgb/jgaTjgYLjgY0NCivjga7jgbbjga/jgoks44KI44GX44GTDQor44GK44GM44KPLOOBsuOBp+OBpOOBkA0KK+OBruOBjOOBvyzjgbLjgafjgoQNCivjga7jgYzjgb8s44Gf44GE44Gh44KN44GGDQor44Gu44KC44GoLOOBguOBjeOCiQ0KK+OBruOCgOOCiSzjgb7jgZXjgbLjgZMNCivjga7jgoDjgoks44KI44GX44KEDQor44Gu44Ge44GILOOBl+OBjeOBkw0KK+OBrOOBvuOBnyzjgZXjgajjgZcNCivjgYrjgaDjgZjjgb4s44Gf44GL44Gy44KNDQor44GK44GM44GI44KKLOOBi+OBmuOBruOCig0KK+OBiuOBjOOBnyzjgZXjgajjgZcNCivjgYrjgYzjgo8s44GX44KT44GE44GhDQor44GK44GM44KPLOOBjeOCj+OCgA0KK+OBiuOBjizjgbLjgajjgZcNCivjgYrjgY7jgY/jgbws44KC44Go44GC44GNDQor44GK44GULOOBi+OBpOOBguOBjQ0KK+OBiuOBkOOCiSzjgY3jgojjgZcNCivjgYrjgbAs44G+44Gq44G2DQor44GK44Gw44KE44GXLOOBi+OBpOOChA0KK+OBiuOBuCzjgZPjgYbjgZgNCivjgYrjgYzjgb4s44KG44GG44GTDQor44GK44Gv44GXLOOBiuOBleOCgA0KK+OBiuOBsuOBlyzjgZjjgoXjgavjgaENCivjgYrjgYvjgo8s44G/44GLDQor44GK44GN44GpLOOBvuOBquOBtg0KK+OBiuOBj+OBvCzjgZ/jgYvjgbLjgo0NCivjgYrjgY/jgbws44Gv44GY44KBDQor44GK44GP44G+LOOBpuOBpA0KK+OBiuOBvizjgYjjgooNCivjgYrjgb7jgYgs44Go44GK44KLDQor44GK44G+44GILOOBsuOBp+OBjQ0KK+OBiuOCguOCiizjgZfjgZLjgosNCivjgYrjgoLjgoos44Gf44GR44GKDQor44GK44KC44KKLOOBn+OBkeOBlw0KK+OBiuOCguOCiizjgojjgZjjgo0NCivjgYrjgoLjgoos44Go44KC44GNDQor44GK44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBq+OBlyzjgajjgoLjgbLjgo0NCivjgYrjgavjgZcs44KI44KK44GTDQor44GK44Gr44GXLOOCiOOBsuOBoQ0KK+OBiuOBrizjgZPjgYbjgYTjgaENCivjgYrjgazjgb4s44Gq44GK44GNDQor44GK44GV44GLLOOBkeOCk+OBmA0KK+OBiuOBleOCjyzjgoTjgZnjgbLjgZMNCivjgYrjgZXjgo8s44G+44GV44GKDQor44GK44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBl+OCjSzjgbLjgo3jgbXjgb8NCivjgYrjgZ8s44G+44GT44GoDQor44GK44GfLOOBvuOCguOCiw0KK+OBiuOBnyzjgoDjgaTjgo0NCivjgYrjgZ8s44Gf44GL44GXDQor44GK44GfLOOBqOOCguOBsuOCjQ0KK+OBiuOBnyzjgb/jgaTjgojjgZcNCivjgYrjgZ/jgass44Gq44GK44GNDQor44GK44GkLOOBsuOCjeOBjQ0KK+OBiuOBpOOBiyzjgb7jgZXjgoTjgZkNCivjgYrjgaTjgY0s44G/44Gk44KLDQor44GK44GE44GL44KPLOOBguOBhOOBkw0KK+OBiuOBiyzjgZHjgpPjgZgNCivjgYrjgYss44G+44GV44Gm44KLDQor44GK44GLLOOBguOBjeOCiQ0KK+OBiuOBi+OBoCzjgbLjgo3jgY0NCivjgYrjgYvjgaAs44KK44GVDQor44GK44GL44GgLOOBn+OBi+OBsuOCjQ0KK+OBiuOBi+OBoCzjgZnjgb/jgZMNCivjgYrjgYvjgZDjgaEs44Gf44GL44GXDQor44GK44GL44GELOOBl+OCk+OBhOOBoQ0KK+OBiuOBi+OBvuOBpCzjgYLjgZXjgZMNCivjgYrjgYvjgoLjgags44GC44Gk44GKDQor44GK44GL44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgb8NCivjgYrjgYvjgoLjgags44KA44Gt44KE44GZDQor44GK44GL44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBi+OCguOBqCzjgoTjgZnjgbLjgo0NCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44GuLOOBn+OBi+OBlw0KK+OBiuOBi+OBluOBjSzjgYLjgY3jgbLjgo0NCivjgYrjgY3jgoLjgags44G/44Gh44GKDQor44GK44GP44GuLOOCiOOBl+OBsuOBlQ0KK+OBiuOBj+OChOOBvizjgbLjgafjgY0NCivjgYrjgb8s44G144G/44GTDQor44GK44GuLOOBv+OBjQ0KK+OBiuOBrizjgoTjgZnjgZcNCivjgYrjga4s44KG44Gy44GhDQor44GK44Gu44GbLOOBleOBqOOCiw0KK+OBiuOBruOBluOBjSzjga7jgbbjgbLjgo0NCivjgYrjgorjgYgs44KG44Gf44GLDQor44GK44GW44GNLOOBn+OBi+OBsuOCjQ0KK+OBqOOBj+OBv+OChCzjgojjgZfjgYLjgY0NCivjgZXjgYTjgaEs44GI44GE44GE44GhDQor44GV44GE44Go44GGLOOBsuOBp+OBig0KK+OBleOBhOOBqOOBhizjgb7jgZXjgbbjgb8NCivjgZXjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOBv+OBoeOBr+OCiw0KK+OBleOBhOOBqOOBhizjga7jgorjgYoNCivjgZXjgYTjgajjgYYs44Go44KC44Gy44KNDQor44GV44GE44Go44GGLOOChuOBjeOBqA0KK+OBleOBhOOBqOOBhizjgYjjgaTjgZMNCivjga/jgYvjgb7jgaAs44KI44GX44Gf44G/DQor44GV44GL44GQ44GhLOOChOOBmeOBig0KK+OBleOBi+OBhCzjgZfjgZLjgosNCivjgZXjgYvjgY3jgbDjgoks44Gq44GK44GNDQor44GV44GL44GN44KC44GoLOOBsuOCjeOBteOBvw0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44GL44KC44GoLOOBn+OBi+OBlw0KK+OBleOBi+OCguOBqCzjgojjgZfjgZMNCivjgZXjgYvjgoLjgags44G+44GV44GTDQor44G/44Gf44GrLOOBpuOBpOOChA0KK+OBleOBi+OBhuOBoSzjgYvjgYrjgooNCivjgZXjgY3jgoLjgags44GX44KT44GE44GhDQor44GV44GP44G+LOOBsuOBqOOBjQ0KK+OBleOBj+OCieOBhCzjgbLjgafjgYLjgY0NCivjgZXjga4s44Gy44KN44Gf44GLDQor44GV44GuLOOChuOBn+OBiw0KK+OBleOBrizjgoTjgZnjgbLjgZMNCivjgZXjgZXjgaAs44Gf44GE44GXDQor44GV44GV44Gv44KJLOOBi+OBiuOCiw0KK+OBleOBleOBjSzjgYvjgogNCivjgZXjgZXjgY0s44GT44GG44GYDQor44GV44GV44GNLOOBvuOCiuOBkw0KK+OBqOOBoOOBqyzjgZ/jgYvjgYoNCivjgZXjgZXjgY0s44KI44GX44GIDQor44GV44Gf44GRLOOBiOOBhOOBmA0KK+OBleOBqOOBhizjgYjjgooNCivjgZXjgajjgYYs44Gy44Gn44Gy44KNDQor44GV44Go44GGLOOBhOOBmuOBvw0KK+OBleOBqOOBhizjgZHjgYTjgYTjgaENCivjgZXjgajjgYYs44GR44KT44GE44GhDQor44GV44Go44GGLOOBj+OBq+OBsuOBkw0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44G/44Gk44KLDQor44GV44Go44GGLOOCguOBqOOBruOCig0KK+OBleOBqOOBhizjgorjgY3jgoQNCivjgZXjgajjgYYs44KK44KF44Gy44GhDQor44GV44Go44GGLOOBl+OCheOBng0KK+OBleOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgZXjgajjgYYs44GZ44GZ44KADQor44GV44Go44GGLOOBn+OBi+OBsuOBqA0KK+OBleOBqOOBhizjgajjgZfjgbLjgZMNCivjgZXjgajjgYYs44KE44GZ44G144G/DQor44GV44Go44GGLOOBpOOCiOOBlw0KK+OBleOBqOOBhizjgZvjgYTjgZgNCivjgZXjgo/jgaAs44Gk44Gt44Gu44KKDQor44GV44KP44GgLOOChOOBmeOBsuOCjQ0KK+OBleOCj+OBoCzjgZfjgpPjgZQNCivjgYTjgo/jgZ8s44Gy44GV44Gv44KLDQor44GV44KP44GELOOChuOBsuOBoQ0KK+OBleOCj+OBhCzjgojjgZfjgYLjgY0NCivjgZXjgoTjga4s44Gf44GL44GL44GaDQor44Gb44GNLOOCiuOBiOOBkw0KK+OBm+OBjeOBkOOBoSzjgajjgYrjgosNCivjgZvjgY3jgZDjgaEs44KG44Gy44GhDQor44Gb44GN44GQ44GhLOOBr+OCi+OBig0KK+OBm+OBjeOBrSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZvjgY3jga4s44Gu44G844KLDQor44Gb44KT44GqLOOBk+OBhuOBmA0KK+OBm+OCiuOBluOCjyzjgaDjgYTjgZnjgZENCivjgZvjgags44GC44GN44KJDQor44GX44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBl+OBsOOBnyzjgajjgoLjgZMNCivjgZfjgbDjgZ8s44GY44KF44KT44GYDQor44GX44Gw44Gf44GrLOOBqOOCguOBjQ0KK+OBl+OBtuOBn+OBqyzjgZHjgYTjgZ/jgo3jgYYNCivjgZfjgYws44G+44GTDQor44GX44GS44Gu44G2LOOBv+OBoeOCiA0KK+OBl+OBvizjgb7jgobjgb8NCivjgZfjgb7jgaAs44Go44GX44Gy44GTDQor44GX44G+44GgLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBl+OBvuOCgOOCiSzjgYTjgY/jgoQNCivjgZfjgb/jgZos44Gf44GR44GXDQor44GX44G/44GaLOOBvuOBleOCiOOBlw0KK+OBl+OCguOBsOOChOOBlyzjgb/jgYsNCivjgZfjgoLjgYzjgo8s44GC44GN44KJDQor44GX44KC44Gy44GU44GXLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBhOOBpyzjgZ/jgYvjgZcNCivjgZfjgarjgaAs44Go44GX44G/44GkDQor44GX44Gt44GELOOBsuOCjeOChuOBjQ0KK+OBl+OCk+OBjOOBhCzjgYvjgaTjgoQNCivjgZfjga7jgaAs44GT44GG44GE44GhDQor44GX44Gu44Gv44KJLOOBvuOBleOBsuOBpw0KK+OBl+OBruOBluOBjSzjgZHjgYTjgZnjgZENCivjgZfjgYrjgoQs44GV44Go44GXDQor44GX44KJ44Gv44G+LOOBjeOCh+OBkw0KK+OBl+OCieOBhOOBlyzjgZXjgajjgosNCivjgZfjgonjgYTjgZcs44GL44Ga44KI44GXDQor44GX44Gf44KJLOOBv+OBjeOBkw0KK+OBl+OCh+OBmCzjgozjgYTjgZjjgo0NCivjgZfjgofjgZgs44GV44Go44GTDQor44G+44GZ44KE44G+LOOCiOOBl+OBv+OBpA0KK+OBl+OCheOBqCzjgZ/jgZHjgYvjgZoNCivjgZ3jgYjjgaAs44GV44Gg44G/44GhDQor44Gd44GtLOOBjeOCiOOBlw0KK+OBneOBreOBoCzjgZPjgYbjgZgNCivjgZ3jga7jgbks44Gm44Gk44Gy44GVDQor44Gd44Gu44G5LOOBn+OBhOOBlw0KK+OBneOCieOBrizjgYvjgaTjgb8NCivjgZnjgaAs44KG44GLDQor44GZ44GM44GELOOBn+OBoOOBlw0KK+OBmeOBjOOCj+OCiSzjgZPjgYbjgZgNCivjgZnjgY7jgoLjgags44Gf44GL44Gy44KNDQor44GZ44GO44KC44GoLOOBqOOCguOCiOOBlw0KK+OBmeOBjuOBhuOCiSzjgZ/jgY/jgoQNCivjgZnjgY7jgoTjgb4s44Gf44KN44GGDQor44GZ44GO44KE44G+LOOChuOBsuOBoQ0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgZcNCivjgZnjgZjjgoPjgY8s44Gf44GR44GXDQor44GZ44GLLOOBsuOCjeOChuOBjQ0KK+OBmeOBkeOBjOOCjyzjgZfjgpMNCivjgZnjgb/jgarjgYws44G+44GV44Gy44GnDQor44GZ44G/44GK44GLLOOChuOBv+OBkw0KK+OBmeOBquOChOOBvizjgbLjgafjgYvjgZoNCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44GZ44Ga44GNLOOBn+OBj+OBig0KK+OBhOOBl+OBhCzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44G+44GV44GXDQor44GZ44Ga44GNLOOBv+OBuw0KK+OBmeOBmuOBjSzjgarjgYrjgbLjgo0NCivjgoTjgb7jgZfjgo0s44Gu44KK44KG44GNDQor44GZ44Ga44GNLOOBm+OBhOOBvg0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gf44GL44G+44GVDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZ/jgbDjgZMs44Gy44Gn44G+44GVDQor44Gf44Gw44GfLOOCjOOBhOOBkw0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgoTjgZkNCivjgZ/jgbDjgZ8s44Go44GK44KLDQor44Gf44Gh44Gw44GqLOOBsuOCjeOChuOBjQ0KK+OBn+OBjOOBvyzjgY3jgb/jgZMNCivjgb7jgb7jgaAs44Go44KC44KEDQor44Gf44GM44KPLOOBkeOCk+OBhOOBoQ0KK+OBn+OBmOOBvizjgb7jgZXjgoQNCivjgZ/jgYvjgbDjgoTjgZcs44Gy44KN44GXDQor44Gf44GL44GgLOOChOOBmeOBsuOBkw0KK+OBn+OBi+OBoCzjgZfjgZLjgosNCivjgZ/jgYvjgY4s44Gf44GL44KG44GNDQor44Gf44GL44GOLOOBsuOBp+OBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBmOOChw0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgobjgY0NCivjgZ/jgYvjga/jgZcs44GL44Ga44Gu44KKDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgY/jgb/jgZMNCivjgo/jgZ/jgarjgbks44G+44GV44GNDQor44Gf44GL44Gv44GXLOOBpuOCi+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgaTjgZANCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBn+OBhOOBm+OBhA0KK+OBn+OBi+OBhCzjgZHjgpPjgZgNCivjgZ/jgYvjgY/jgoks44G+44GT44GoDQor44Gf44GL44GP44KJLOOCguOBqOOBsuOCjQ0KK+OBn+OBi+OBvuOBoSzjgobjgY0NCivjgZ/jgYvjgb7jgaQs44Go44KC44KIDQor44G+44Gk44Gq44GMLOOBn+OBi+OBsuOCjQ0KK+OBn+OBi+OCguOBqCzjgYjjgb8NCivjgZ/jgYvjgoDjgoks44Gg44GE44GZ44GRDQor44Gf44GL44GK44GLLOOBl+OCk+OChA0KK+OBn+OBi+OBmeOBjizjgobjgY3jgYoNCivjgZ/jgYvjgoQs44Gy44KN44GNDQor44Gf44GL44KE44G+LOOBsuOCjeOBkw0KK+OBjeOBn+OBr+OCiSzjgYTjgZrjgosNCivjgZ/jgZHjgaAs44G+44GV44GNDQor44Gf44GR44GgLOOBv+OBl+OChw0KK+OBn+OBkeOBr+OBqizjgb7jgY0NCivjgZ/jgZHjgb7jgaQs44KE44GZ44GXDQor44Gf44GR44GK44GLLOOChuOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgZPjgbjjgYQNCivjgZ/jgZHjgZfjgZ8s44G+44GV44G144G/DQor44Gf44GR44Gf44GrLOOBsuOBp+OBjQ0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44GX44G7DQor44Gf44GR44KE44G+LOOBi+OBpOOBruOCig0KK+OBn+OBkeOBluOCjyzjgYLjgY3jgojjgZcNCivjgZ/jgY3jgZbjgo8s44KE44GZ44Gy44KNDQor44Gf44GN44GW44KPLOOCiOOBl+OBjQ0KK+OBn+OBvuOBhCzjga7jgbbjgYvjgaQNCivjgZ/jgarjga/jgZcs44GUDQor44Gf44Gq44GLLOOBr+OCi+OBkw0KK+OBn+OBquOBiyzjgbLjgafjgYLjgY0NCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgY/jgavjgbLjgacNCivjgZ/jgarjgYss44G+44GV44Gy44KNDQor44Gf44Gq44GLLOOBvuOBleOBi+OBpA0KK+OBn+OBquOBiyzjgb7jgZXjgb8NCivjgZ/jgarjgYss44G/44Gu44KLDQor44Gf44Gq44GLLOOCguOBqOOBteOBvw0KK+OBn+OBquOBiyzjgarjgYrjgY0NCivjgZ/jgarjgYss44Gu44G244KG44GNDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44Gf44GR44GXDQor44Gf44Gq44GLLOOBjeOCiOOBmA0KK+OBhOOBl+OBoCzjgaTjgajjgoANCivjgZ/jgarjgYss44Gh44GL44KJDQor44Gf44Gr44GQ44GhLOOBqOOCguOChuOBjQ0KK+OBn+OBq+OBkOOBoSzjga7jgbbjgobjgY0NCivjgZ/jgavjgYQs44GR44KT44Gf44KN44GGDQor44Gf44Gr44KA44KJLOOBk+OBmeOBkQ0KK+OBn+OBq+OBiuOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgpPjga4s44Gy44KN44GXDQor44Gf44Gs44G+LOOBkeOBhOOBkw0KK+OCiOOBk+OChOOBvizjgoLjgajjgY0NCivjgZ/jgZfjgo0s44Gb44GE44GYDQor44Gf44GX44KNLOOBi+OBmuOBsuOBqA0KK+OBn+OBpizjgobjgYbjgZMNCivjgZ/jgYbjgoks44GI44GE44GE44GhDQor44Gf44Ge44GILOOBiOOBhOOBmA0KK+OBn+OBmuOBkSzjgaTjga3jgbLjgo0NCivjgabjgpPjgoIs44G+44GV44Gy44KNDQor44Gm44KJ44GgLOOBruOCiuOBsuOCjQ0KK+OBpuOCieOCguOBqCzjgYvjgZrjgarjgYoNCivjgabjgonjgYrjgYss44Gu44G844KLDQor44Gm44Ga44GLLOOBkeOCk+OChA0KK+OBqOOBkOOBoSzjgYvjgZrjgYoNCivjgajjgb4s44GX44GS44KLDQor44Go44G+LOOBkeOCk+OBhOOBoQ0KK+OBqOOBsuOCg+OBvizjgobjgorjgZMNCivjgajjgY3jgYrjgYss44G/44Gh44KIDQor44Gf44Gr44KE44G+LOOBqOOCguOBkw0KK+OBv+OBhuOCiSzjgobjgY3jgYoNCivjgajjgY/jgoks44G+44KC44KLDQor44Go44GP44KE44G+LOOCj+OBn+OCiw0KK+OBqOOBv+OBhOOBlyzjgYLjgY3jgokNCivjgajjgb/jgYvjgo8s44GR44KT44GE44GhDQor44Go44G/44Gq44GMLOOBsuOBp+OBqA0KK+OBqOOBv+OBnyzjgb7jgZPjgagNCivjgajjgb/jgZ8s44KG44GG44GTDQor44GK44KC44KKLOOBvuOBk+OBqA0KK+OBqOOCguOBnyzjgYvjgojjgZMNCivjgajjgoLjga4s44Gh44GI44GTDQor44Go44KK44GL44GELOOBiOOBhOOBmA0KK+OBqOOCiuOBhuOBvyzjgZHjgYQNCivjgajjgaTjgYss44Gy44KN44KG44GNDQor44Go44KI44GgLOOBmOOCheOCk+OBkw0KK+OBqOOCiOOBoCzjgZPjgYbjgYTjgaENCivjgajjgojjgYrjgYss44Gy44KN44KE44GZDQor44Gk44Gh44GgLOOBi+OBmuOChuOBjQ0KK+OBpOOBoCzjgZ/jgYvjgZfjgZINCivjgaTjgZjjgZ/jgass44Gy44Gn44GC44GNDQor44Gk44GL44KC44GoLOOBneOBsuOBoQ0KK+OBpOOBi+OCguOBqCzjgYvjgZrjgYoNCivjgaTjgYvjgo/jgY0s44Gy44KN44KEDQor44Gk44KL44G+44GNLOOBj+OBq+OBsuOBkw0KK+OBhOOBoeOBsOOCk+OBjOOBmyzjga7jgorjgZMNCivjgZXjgYvjgYQs44GC44Gk44GXDQor44GG44Gh44GgLOOBteOBv+OBiA0KK+OBi+OBquOBiuOBiyzjgoLjgajjgojjgZcNCivjgYbjgaHjgaAs44G+44GV44KG44GNDQor44GG44Gh44GG44G/LOOBsuOBp+OBsuOBkw0KK+OBhuOBoeOChOOBvizjgZHjgYTjgZgNCivjgYbjgaHjgoTjgb4s44Gq44GK44GNDQor44GG44GgLOOCiOOBl+OBruOBtg0KK+OBhuOBoOOBjOOCjyzjgYLjgoTjgZMNCivjgYrjgZfjgb4s44GR44GE44GE44GhDQor44GG44GI44GgLOOBv+OBjeOBsuOCjQ0KK+OBhuOBiOOBoCzjgZ/jgY/jga7jgbYNCivjgYbjgYjjga/jgoks44GT44GG44GYDQor44GG44GI44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhuOBiOOBrizjgb7jgZXjgaTjgZANCivjgYbjgYjjga4s44KI44GX44Gm44KLDQor44GG44GI44GZ44GOLOOBsuOCjeOBguOBjQ0KK+OBhuOBiOOBpOOBjSzjgb7jgZXjgZ/jgYsNCivjgYbjgYvjgo8s44KI44GG44GTDQor44GG44G+44Ga44KBLOOChuOBjeOBkw0KK+OBhuOCgeOBr+OCiSzjgb/jgbvjgZMNCivjgYbjgoHjgoDjgoks44GL44Ga44Gy44KNDQor44GG44KB44GW44KPLOOBk+OBuOOBhA0KK+OBhuOBrizjgZ/jgaTjgoQNCivjgYbjga4s44Gq44GK44Gy44GTDQor44GG44KJ44KC44GoLOOBteOBv+OBn+OBiw0KK+OBhuOCi+OBvizjgobjgY0NCivjgYbjgZfjgbAs44GC44Gk44GTDQor44Gq44GM44GfLOOBn+OCjeOBhg0KK+OBhuOBl+OBkOOBlSzjgYLjgaTjgZMNCivjga/jgZvjgYzjgo8s44GI44GE44GLDQor44GV44GL44G+44GNLOOCiOOBl+OBv+OBpA0KK+OBhuOCj+OBuSzjgbLjgafjgobjgY0NCivjgo/jgaAs44G+44GV44GNDQor44KP44GL44GKLOOBiuOBleOCgA0KK+OCj+OBi+OBiizjgbLjgo3jga7jgooNCivjgo/jgY3jgZ8s44G+44GV44G/DQor44GE44Gu44G+44GfLOOBn+OBhOOBoQ0KK+OCj+OBj+OBhCzjgb7jgZXjgbLjgacNCivjgo/jgZfjgZbjgo8s44GX44KT44KEDQor44KP44GX44Ga44GLLOOBqOOBl+OBig0KK+OCj+OBn+OBuSzjgbLjgo3jgbXjgb8NCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgoQNCivjgo/jgZ/jgarjgbks44GR44GEDQor44KP44Gf44Gq44G5LOOBvuOBleOBteOBvw0KK+OCj+OBn+OBquOBuSzjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44KK44KF44GfDQor44KP44Gf44Gq44G5LOOBqOOBl+OBguOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44KG44KKDQor44Go44KI44GfLOOBvuOBleOChuOBjQ0KK+OCj+OBn+OCiizjgYLjgY3jgZMNCivjgajjgb/jgoTjgZks44GR44GE44GYDQor44KE44GI44GM44GNLOOCjOOBhOOBkw0KK+OChOOBjizjgojjgYbjgZMNCivjgoTjgY4s44Gy44KN44G/DQor44KE44GO44Gs44G+LOOBvuOBleOChA0KK+OChOOBjyzjgZHjgYTjgZMNCivjgoTjgb7jgaAs44GT44GG44GYDQor44KE44G+44GgLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBoCzjga7jgorjgobjgY0NCivjgoTjgb7jgY7jgZcs44GL44Ga44Gy44KNDQor44KE44G+44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgYoNCivjgoTjgb7jgZDjgaEs44Gk44KI44GXDQor44KE44G+44GQ44GhLOOBqOOCguOChuOBjQ0KK+OChOOBvuOBk+OBlyzjgaDjgYTjgaENCivjgoTjgb7jgoLjgags44Gy44Gn44GNDQor44KE44G+44KC44GoLOOBsuOCjeOBi+OBmg0KK+OChOOBvuOCguOBqCzjgbLjgo3jgb8NCivjgoTjgb7jgoLjgags44Gy44Go44GXDQor44KE44G+44KC44GoLOOBkeOBhOOBkw0KK+OBn+OBoeOBsOOBqizjgajjgZfjgbLjgZUNCivjgoTjgb7jgoLjgags44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBv+OCiOOBkw0KK+OBr+OCieOBn+OBqyzjgojjgZfjgb7jgZUNCivjgoTjgb7jgarjgYss44Gg44GE44GZ44GRDQor44KE44G+44GtLOOBguOBjeOBqA0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgZfjgZ8s44G+44GNDQor44KE44G+44GX44GfLOOCiOOBhuOBkw0KK+OChOOBvuOBn+OBqyzjgYLjgaTjgZcNCivjgoTjgb7jgYbjgaEs44GT44GG44GE44GhDQor44KE44G+44GW44GNLOOBqOOBl+OChuOBjQ0KK+OChOOBqizjgYvjgYrjgosNCivjgoTjgarjgbks44GC44GN44KJDQor44KE44Gq44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OChOOBquOBjizjgb7jgZXjgbLjgo0NCivjgoTjgarjgY7jgaAs44GR44KT44GYDQor44KE44GV44GLLOOBn+OBkeOBig0KK+OChOOBmeOBoCzjgZvjgYTjgYTjgaENCivjgoTjgZnjgbXjgY8s44GX44KF44GYDQor44KE44GZ44GL44KPLOOBvuOBleOBqOOBlw0KK+OCiOOBk+OBleOCjyzjgZjjgoXjgpMNCivjgojjgZPjgZ8s44GR44KT44GE44GhDQor44KI44GT44GfLOOBqOOCguOBkw0KK+OBr+OCieOBoCzjgZ/jgYvjgZcNCivjgojjgZPjgYbjgaEs44KI44GX44G144G/DQor44KI44GT44GG44GhLOOBguOBjeOBsuOBkw0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZcNCivjgojjgZPjgoTjgb4s44Gq44GK44GTDQor44KI44Gt44GgLOOBn+OBi+OBlw0KK+OCiOOBreOBrizjgajjgoLjgZMNCivjgYvjgZXjga/jgoks44GC44GN44KJDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OCiOOBl+OBoCzjgbLjgo3jgY0NCivjgojjgZfjgaAs44KK44KHDQor44KI44GX44GgLOOBqOOBl+OBguOBjQ0KK+OCiOOBl+OBoCzjgorjgoXjgbLjgaENCivjgojjgZfjganjgoEs44GL44Ga44Gy44GnDQor44KI44GX44Gv44KJLOOBvuOBleOBv+OBpA0KK+OCiOOBl+OBhCzjgobjgZ/jgYsNCivjgojjgZfjgYQs44GN44KI44GL44GaDQor44KI44GX44GL44KPLOOBn+OBj+OChA0KK+OCiOOBl+OBvyzjgbLjgo3jgZcNCivjgojjgZfjga4s44GL44Ga44Gy44KNDQor44KI44GX44GuLOOBk+OBmeOBkQ0KK+OCiOOBl+OBrizjgb7jgZXjgbLjgo0NCivjgojjgZfjgYrjgYss44GX44KT44GZ44GRDQor44KI44GX44GK44GLLOOBvuOBk+OBqA0KK+OCiOOBl+OBn+OBkSzjgYvjgZrjga7jgbYNCivjgojjgZfjgZbjgo8s44Gq44GK44GNDQor44KG44Ga44Gv44KJLOOBquOBiuOBvw0KK+OBnOOCk+OBkizjgZXjgajjgb8NCivjgZrjgZcs44Gy44Gn44GKDQor44GU44G/LOOBmOOCheOCkw0KK+OBlOOBqCzjgbLjgo3jgZcNCivjgYTjgZHjgaAs44Gq44GK44GoDQor44GE44G+44GY44KHLOOBsuOCjeOBlw0KK+OBguOBuSzjgZfjgZrjgYsNCivjgYvjgajjgYYs44Gf44GL44Gy44KNDQor44GL44KP44Gw44GfLOOBleOBqOOCiw0KK+OBk+OBsOOChOOBlyzjgb7jgZPjgagNCivjgZPjgpPjgaks44GX44GK44KKDQor44GP44G8LOOBn+OBhOOBjQ0KK+OBj+OCieOCguOBoSzjgbXjgb/jgYoNCivjgb7jgovjgoTjgb4s44KE44GZ44GXDQor44KC44KK44GL44GPLOOBqOOCguOBkw0KK+OCgOOCieOBiuOBiyzjgZHjgpPjgYTjgaENCivjgarjgYzjgZfjgb4s44GT44GG44GE44Gh44KNDQor44Gq44GLLOOBn+OBoOOBlw0KK+OBquOBi+OBr+OCiSzjgajjgZfjgYvjgaQNCivjgarjgYvjgoDjgoks44GT44GG44GYDQor44Gq44GL44GbLOOBi+OBmuOBn+OBiw0KK+OBquOCiuOBnyzjgb/jgYoNCivjgavjgZfjgoDjgoks44Gy44KN44GNDQor44Gu44Gq44GLLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgZ/jgZHjga/jgosNCivjgYrjgZDjgoks44G+44GV44Gy44KNDQor44GK44G/LOOBvuOBquOBtg0KK+OBiuOBi+OBrizjgZfjgZLjgosNCivjgZfjgb7jgaAs44GX44GS44KLDQor44GX44G/44GaLOOChuOBjeOBsuOBkw0KK+OBl+OCgOOCiSzjgY/jgavjgoDjga0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gy44GTDQor44Gf44GL44G+44GkLOOCiOOBhuOBkw0KK+OBhuOBiOOBoCzjgojjgZfjgYLjgY0NCivjgYbjgZgs44KG44GN44GKDQor44GG44Gk44G/LOOBsuOCjeOChuOBjQ0KK+OBguOBuSzjgojjgYbjgZMNCivjgZPjgpPjgaks44Go44GX44KEDQor44Gf44GL44Gu44GG44GhLOOBn+OBj+OChA0KK+OBhOOBruOBhuOBiCzjgaTjgojjgZcNCivjgarjgYvjga/jgoks44Go44G/DQor44GC44Gg44GhLOOBsuOBleOBiA0KK+OBquOBi+OBrizjgYjjgb/jgZMNCivjgYLjgYTjgbAs44Gy44Gn44Gq44GKDQor44GC44GE44GwLOOCiOOBl+OBig0KK+OBguOBhOOBsCzjgajjgYrjgosNCivjgYLjgYTjgaAs44G+44GT44GoDQor44GC44GE44Gv44KJLOOBvuOBleOChA0KK+OBguOBi+OBhOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgYvjgYTjgo8s44GL44Ga44Gu44GX44KTDQor44GC44GL44GK44GOLOOBsuOBp+OChuOBjQ0KK+OBguOBjeOBnyzjgb/jgaTjgb7jgZUNCivjgYLjgb7jga4s44GR44KT44GE44GhDQor44GC44GK44GNLOOCgOOBpOOBig0KK+OBguOBiuOBjSzjgZQNCivjgYLjgYrjgazjgb4s44GX44KF44Gy44GhDQor44GC44GK44KE44GOLOOCiOOBsuOBoQ0KK+OBguOCieOBjSzjgZ/jgYvjgZcNCivjgYLjgorjgb7jgaEs44GR44KT44GV44GPDQor44GC44KK44GfLOOCgOOBreOBsuOCjQ0KK+OBguOBleOBoCzjgbLjgajjgZcNCivjgYLjgZXjgYjjgaAs44KG44Gf44GLDQor44GC44GV44Gv44KJLOOBsuOCjeOBjQ0KK+OBguOBleOBi+OCjyzjga7jgorjgYLjgY0NCivjgYLjgZXjgoLjgags44Gf44GR44GXDQor44GC44GV44GuLOOBleOBqOOBlw0KK+OBguOBn+OBkOOBoSzjgb7jgZXjgbLjgo0NCivjgYLjgoTjgY0s44GC44Gk44GXDQor44Gw44GwLOOBvuOBleOBiuOBvw0KK+OBsOOBsCzjgojjgZfjgbLjgo0NCivjgbDjgbAs44Go44GX44Gy44GnDQor44Gw44KTLOOBpOOCiOOBlw0KK+OBoOOBhOOBk+OBjyzjgarjgYrjgZMNCivjgaDjgaYs44Gy44KN44GTDQor44GV44GuLOOChuOBjeOBkw0KK+OBv+OBpOOBiuOBiyzjgbLjgajjgZcNCivjgafjgpPjgaAs44GI44GE44GYDQor44Gp44GELOOBguOBjeOCiQ0KK+OBiOOCk+OBqSzjgajjgZfjga7jgbYNCivjgYjjgpPjgaks44Gy44Gn44GC44GNDQor44GI44GW44KPLOOBpuOBpOOChA0KK+OBteOBmOOBiCzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgYQs44KI44GX44Gv44KLDQor44G144GY44GELOOBi+OBmuOBsuOBkw0KK+OBteOBmOOBvuOBjSzjgaTjgajjgoANCivjgbXjgZjjgoLjgags44KG44Gf44GLDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBteOBmOOCgOOCjSzjga/jgovjgZMNCivjgoLjgo3jgZrjgb8s44GX44KF44KT44GZ44GRDQor44G144GY44GV44KPLOOBi+OBiuOCiw0KK+OBteOBmOOBnyzjgarjgarjgZMNCivjgbXjgYvjgZss44Gf44GR44GXDQor44G144GP44GgLOOBv+OBoeOCiA0KK+OBteOBj+OBqeOCgSzjgZfjgZLjgbLjgZMNCivjgbXjgY/jgYQs44GY44KF44Gr44GhDQor44G144GP44Gq44GMLOOBl+OBkuOBjQ0KK+OBteOBj+OBl+OBvizjgYvjgZrjgbLjgZMNCivjgbXjgY/jgZbjgo8s44GI44G/DQor44G144KL44Gw44KE44GXLOOBqOOCguOBsuOBkw0KK+OBteOCi+OBi+OCjyzjgojjgbLjgaHjgo0NCivjgbXjgovjgYvjgo8s44Gq44KK44Gy44GnDQor44GULOOBn+OBkeOBteOBvw0KK+OBlOOBvuOCiyzjgYvjgZrjgbLjgo0NCivjgZTjgags44G+44GV44GC44GNDQor44GU44GoLOOBvuOBleOBi+OBpA0KK+OBlOOBqCzjgb/jgo8NCivjga7jgoLjgags44G/44GN44GKDQor44Gv44GO44KP44KJLOOBk+OBhuOBmA0KK+OBr+OBhOOChOOBvizjgYvjgpPjgZgNCivjga/jgb4s44GR44KT44GYDQor44Gv44G+44GhLOOBsuOCjeOChuOBjQ0KK+OBr+OBvuOBoCzjgZ/jgaTjgoQNCivjga/jgb7jgZ/jgass44GX44Gb44GEDQor44Gv44Gq44GELOOBn+OBi+OBlw0KK+OBr+OBquOBnyzjgbLjgZXjgZcNCivjga/jga3jgZgs44G144G/44Gy44GVDQor44Gv44KT44GW44KPLOOBsuOBp+OBig0KK+OBr+OCiSzjgb7jgorjgYsNCivjga/jgoks44GC44GN44KJDQor44Gv44KJ44GgLOOBsuOBp+OBjQ0KK+OBr+OCieOBoCzjgYLjgZHjgb8NCivjga/jgZvjgYzjgo8s44Gv44GqDQor44Gv44Gb44GM44KPLOOBmeOBmeOCgA0KK+OBr+OBm+OBjOOCjyzjgZfjgocNCivjga/jgZfjgZDjgaEs44Gf44Gk44KEDQor44Gv44GX44KC44GoLOOBoeOBmuOBiw0KK+OBlOOBqCzjgYvjgYrjgosNCivjgYvjgZjjgo/jgoks44KK44KF44GfDQor44Gv44GZ44G/LOOBjeOCh+OBkw0KK+OBi+OBn+OChOOBquOBjizjgYvjgZrjgb/jgaENCivjga/jgZ/jgZHjgoTjgb4s44GX44KF44Gy44GhDQor44KA44KJ44GELOOBquOBiuOBsuOBlQ0KK+OBr+OBn+OBqyzjgZfjgZLjgYoNCivjga/jgaPjgajjgoos44KE44GZ44Gy44GoDQor44Gv44Gj44Go44KKLOOBsuOCieOBjw0KK+OBr+OChOOBlyzjgbLjgo3jgZMNCivjgYrjgZnjgb8s44G+44GV44Gy44GTDQor44Gv44KE44GXLOOBv+OBuw0KK+OBr+OChOOBlyzjgZfjgpPjgZgNCivjga/jgoTjgZfjgaAs44GL44Ga44Gy44GnDQor44Gy44GMLOOBjeOCiOOBlw0KK+OBsuOBjOOBlyzjgobjgZ/jgYsNCivjgbLjgYzjgZfjgaAs44Gq44GK44GTDQor44Go44KI44GgLOOBpuOBpOOChA0KK+OBsuOBrizjgb7jgZXjgojjgZcNCivjgbLjgoks44KE44GZ44KG44GNDQor44Gy44KJ44KC44GoLOOBkeOBhA0KK+OBsuOCieOBiizjgojjgZfjgZMNCivjgbLjgonjgYos44Gk44GQ44Gu44KKDQor44Gy44KJ44GfLOOBiOOBhOOBhOOBoQ0KK+OBsuOCieOChOOBvizjgZfjgpPjgYTjgaENCivjgbLjgo3jgYQs44G/44Gk44KG44GNDQor44Gy44KN44GL44KPLOOCiuOCheOBsuOBoQ0KK+OBsuOCjeOBi+OCjyzjgoTjgZnjga7jgbYNCivjgbLjgo3jgb7jgZks44Gf44GL44KG44GNDQor44Gy44KN44GbLOOBn+OBi+OChuOBjQ0KK+OBsuOCjeOBmyzjgb7jgZXjgZMNCivjgbLjgZfjgoQs44GL44Ga44Gq44KKDQor44G744GX44KHLOOCiOOBl+OBruOBtg0KK+OBu+OCk+OBoCzjgZXjgY0NCivjga/jgoTjgZcs44Gf44GR44GKDQor44G744KT44G+LOOCiuOCheOBmeOBkQ0KK+OBu+OCiuOBkOOBoSzjgZfjgoXjgbLjgaENCivjgbvjgorjgYQs44KG44Gy44Gh44KNDQor44G744GXLOOBn+OBkeOBsuOBkw0KK+OBu+OBneOBhCzjgabjgaTjgoQNCivjgbvjgZ3jgb8s44GY44KF44KT44GTDQor44G744Gj44GfLOOBvuOBleOBqA0KK+OBteOBj+OCjeOBhCzjgb7jgZXjgobjgY0NCivjgbXjgovjgoQs44Gq44GK44G/DQor44GE44G244GLLOOBn+OBkeOBlw0KK+OBhOOBoeOBsCzjgZ/jgYvjgZcNCivjgYTjgaHjga/jgoks44Gu44KK44GL44GaDQor44GE44Gh44GL44KPLOOCiOOBn+OCjeOBhg0KK+OBhOOBoeOCgOOCiSzjgYvjgZrjgobjgY0NCivjgYTjgaHjga7jgZvjgY0s44G/44Gk44KLDQor44GE44GE44GgLOOBn+OBi+OBig0KK+OBhOOBhOOBoCzjgZXjgajjgZcNCivjgYTjgYTjgZjjgb4s44GC44GN44GTDQor44GX44Gu44Gv44KJLOOBv+OBu+OBkw0KK+OBhOOBkeOBoCzjga7jgZ7jgoANCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44GR44GgLOOBpuOCi+OBig0KK+OBhOOBkeOBoCzjgbLjgo3jgb8NCivjgYTjgZHjgZbjgo8s44GC44GN44Gy44GTDQor44GE44G+44GELOOBi+OBpOOChA0KK+OBhOOBvuOBhCzjgoTjgZnjgYoNCivjgYTjgb7jgYQs44G+44GV44Gy44GnDQor44GE44G+44GNLOOBkeOCk+OBmA0KK+OBhOOBvuOCgOOCiSzjgYLjgY3jgbLjgagNCivjgYTjgoLjgags44Gd44Gy44GhDQor44GC44G5LOOBn+OBi+OBlw0KK+OBhOOBquOBoCzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GG44GILOOBmOOCheOBq+OBoeOCjQ0KK+OBhOOBruOBhuOBiCzjgajjgZfjgbLjgo0NCivjgYTjga7jgYbjgYgs44Go44GX44KEDQor44GE44KK44GILOOBmOOCheOCk+OBkw0KK+OBpOOCi+OBiuOBiyzjgojjgYbjgZMNCivjgYrjga/jgZcs44Gv44GY44KBDQor44GE44GX44GgLOOCiuOBiA0KK+OBhOOBl+OBoCzjgobjgY0NCivjgYTjgZfjgaAs44KG44Gf44GLDQor44GE44GX44GgLOOCiOOBhuOBkw0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgZ/jgYsNCivjgYTjgZfjga/jgoks44G+44KG44G/DQor44GE44GX44Gv44KJLOOBkeOBhOOBnw0KK+OBhOOBl+OBhCzjgY/jgavjgbLjgZMNCivjgYTjgZfjgYvjgo8s44G/44Gu44KLDQor44GE44GX44GL44KPLOOBkeOCk+OBmeOBkQ0KK+OBhOOBl+OCj+OBnyzjgZfjgofjgbLjgaENCivjgYTjgajjgYYs44KI44GX44KE44GZDQor44GE44Go44GGLOOChuOBjeOBkw0KK+OBhOOBqOOChOOBvizjgajjgoLjgbLjgo0NCivjgYTjgaTjgY0s44Gf44GL44GXDQor44GE44KP44GNLOOBvuOBleOBsuOBkw0KK+OBhOOCj+OBleOBjSzjgYvjgZrjgYoNCivjgYTjgZrjgaQs44KI44GX44Gy44GTDQor44GY44G2LOOBsuOBqOOBlw0KK+OBi+OBqeOBhCzjgbLjgZXjgajjgZcNCivjgYLjgaDjgaEs44KG44GG44GYDQor44GL44GELOOBkeOCk+OBmA0KK+OBi+OBhOOBmyzjgZPjgYbjgZgNCivjgYvjgYTjgZrjgYss44Gv44GY44KBDQor44GL44GY44KP44KJLOOCiOOBl+OBjQ0KK+OBi+OBjSzjgZfjgZLjgYoNCivjgYvjgY3jgb8s44GY44KF44KT44GTDQor44GZ44GO44GfLOOBv+OBpOOBsuOBkw0KK+OBi+OBj+OBn+OBqyzjgb7jgZXjga7jgooNCivjgYvjgb/jgbDjgoTjgZcs44GC44GN44KJDQor44GL44G/44GM44GNLOOBvuOBleOBruOCig0KK+OBi+OBv+OChCzjgZ/jgYvjgZcNCivjgYvjgoLjgaAs44GC44GN44GTDQor44GL44KC44GoLOOBqOOBl+OBig0KK+OBi+OCk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgYvjga3jgZMs44GT44GG44Gf44KN44GGDQor44GL44Gt44GTLOOBn+OBkeOBlw0KK+OBi+OBreOBkyzjgobjgYbjgZgNCivjgYvjga3jgZMs44GI44G/44GTDQor44GL44Gr44GV44KPLOOBpuOCi+OChOOBmQ0KK+OBi+OCiyzjgZHjgpPjgZgNCivjgYvjgZfjgo/jgY4s44Gf44GL44KG44GNDQor44GL44GZ44G/LOOBsuOCjeOBguOBjQ0KK+OBi+OBn+OBjuOCiizjgbLjgo3jgZMNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBi+OBpOOBqOOBlw0KK+OBi+OBqOOBhizjgZPjgYbjgZgNCivjgYvjgajjgYYs44KM44GE44GNDQor44GL44Go44GGLOOChOOBmeOBkw0KK+OBn+OBkOOBoSzjgYvjgaTjgbLjgZMNCivjgYvjgajjgYYs44Gu44KK44Gy44GnDQor44GL44Go44GGLOOBleOBqOOBlw0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYvjgaTjgoks44Gf44KC44GkDQor44Gd44GULOOCguOBqOOBsuOCjQ0KK+OBi+OCj+OBsuOBqCzjgZfjgpPjgZQNCivjgYvjgo/jgYQs44G/44Gk44KEDQor44GL44KP44GL44G/LOOBj+OBq+OBsuOBkw0KK+OBi+OCj+OBvyzjgb/jgaTjgYoNCivjgYvjgo/jgoDjgoks44Gf44Gk44KEDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBleOBjSzjgabjgaTjgoQNCivjgYvjgo/jgZXjgY0s44KI44Gy44Gh44KNDQor44GL44KP44GG44GhLOOBquOBiuOChuOBjQ0KK+OBi+OBpOOBjSzjgb/jgaTjgbLjgo0NCivjgY3jgaAs44GC44Gk44GXDQor44GN44Gp44GT44KNLOOChuOBhuOBkw0KK+OCguOCiizjga7jgbbjgYoNCivjgY3jgY/jgaEs44Gf44Gk44KNDQor44GN44GP44GM44KPLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgZHjgpPjgZgNCivjgY3jgoDjgoks44GT44GGDQor44GN44KA44KJLOOBl+OCky3jgYTjgaENCivjgY3jgoDjgoks44GC44GN44KJDQor44GN44Gu44GX44GfLOOBkeOCkw0KK+OBjeOBruOBl+OBnyzjgb7jgZPjgagNCivjgY3jga7jgZfjgZ8s44KK44GI44GTDQor44GN44Gu44GX44GfLOOBk+OBhuOBmA0KK+OBjeOBl+OBoCzjgZfjgZLjgosNCivjgY3jgZfjgYvjgo8s44GX44KT44GYDQor44GN44GfLOOBpuOCi+OBjQ0KK+OBjeOBn+OBkOOBoSzjgbLjgo3jgZcNCivjgYLjgb7jga4s44Go44KC44GL44GaDQor44GN44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBjeOBn+OChOOBvizjgYLjgY3jgajjgoINCivjgZPjgbDjgoTjgZcs44G444GE44GYDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgbDjgoTjgZcs44G+44GT44GoDQor44GT44Gw44KE44GXLOOBv+OBiA0KK+OBk+OBsOOChOOBlyzjgb/jgaTjgbLjgo0NCivjgYLjgoHjgZfjgZ8s44GV44Go44KLDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OBk+OBsOOChOOBlyzjgZ/jgY/jgb8NCivjgZPjgbDjgoTjgZcs44Go44KI44GNDQor44GT44Gw44KE44GXLOOCiOOBl+OBguOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgZPjgbDjgoTjgZcs44KG44GL44KKDQor44GT44Gw44KE44GXLOOChuOBjeOBkw0KK+OBiuOBoCzjgb7jgZXjgbLjgZMNCivjgZPjgbzjgoos44Go44GX44GKDQor44GT44Gg44GE44KJLOOBkeOBhOOBmeOBkQ0KK+OBk+OBoOOBvizjgb/jgaHjgogNCivjgYvjgo/jgZDjgaEs44G+44Gq44G2DQor44GT44Gg44GmLOOBoeOBsuOCjQ0KK+OBk+OBjCzjgarjgYrjgagNCivjgZPjgYws44KC44Go44Gu44KKDQor44GT44GM44Gt44G+44KLLOOBsuOCjeOChuOBjQ0KK+OBk+OBr+OCiSzjgoTjgZnjgabjgosNCivjgZPjgaAs44Go44KC44GC44GNDQor44GT44GuLOOBmOOCheOCk+OBmA0KK+OBk+OBluOBhCzjgarjgYrjgY0NCivjgZPjgYTjgZEs44GT44GG44GE44GhDQor44GT44GE44Ga44G/LOOBsuOCjeOBvw0KK+OBk+OBmOOBvizjgZHjgpPjgZgNCivjgZPjgZjjgb4s44GN44KI44Gf44GLDQor44GT44G+44GkLOOBvuOChuOBvw0KK+OBk+OCguOCiizjgaDjgYTjgZnjgZENCivjgZPjgpPjgaks44Gf44GL44Gy44KNDQor44GT44KT44GpLOOBvuOBleOBsuOBkw0KK+OBk+OCk+OBnyzjgbLjgafjgb8NCivjgZPjgZ/jgYss44Gu44G244Gy44KNDQor44GT44Gf44GRLOOBm+OBhOOBmA0KK+OBk+OChOOBvizjgYLjgaTjgZcNCivjgY/jgbws44G/44Gk44KLDQor44GP44G844GNLOOBruOCiuOChuOBjQ0KK+OBj+OBvOOBnyzjgYLjgY3jgokNCivjgY/jgYws44G+44GV44G/DQor44GP44G+44GM44GELOOBqOOCguOBquOCig0KK+OBj+OBq+OCguOCiizjgZHjgpPjgYTjgaENCivjgY/jgonjgoLjgags44G+44Gq44G2DQor44GP44KJ44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBj+OCieOBl+OBqizjgYLjgY3jgYoNCivjgY/jgonjgZ8s44G+44GV44GKDQor44GP44KK44KC44GoLOOChOOBmeOCjQ0KK+OBj+OCiuOBnyzjgZHjgpMNCivjgY/jgo3jgaAs44Gf44GL44GXDQor44GP44KN44GgLOOCiOOBl+OBn+OBiw0KK+OBj+OCjeOBi+OCjyzjgajjgoLjga7jgooNCivjgY/jgo3jgY0s44GE44GV44KADQor44GP44KN44GV44GNLOOBkeOCk+OBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgb/jgaTjga7jgooNCivjgY/jgorjgoUs44G+44GV44GNDQor44GP44KP44GfLOOBqOOCjeOBjw0KK+OBj+OBmuOBvyzjgbLjgo3jgZcNCivjgb7jgbbjgaEs44GE44GP44GTDQor44G+44GI44GgLOOCiOOBsuOBoQ0KK+OBvuOBiOOBoCzjgZ/jgaTjgZgNCivjgb7jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44G+44GI44GL44KPLOOCiOOBsuOBoQ0KK+OBvuOBjeOBiizjgZjjgoXjgpMNCivjgb7jgoHjga/jgoks44GC44Gk44GXDQor44G+44GV44GgLOOBi+OBpOOBsuOBqA0KK+OBvuOBmeOBoCzjgZXjgajjgZcNCivjgb7jgZnjgaAs44Gf44GR44GKDQor44G+44GZ44GgLOOCiOOBl+OBvuOBlQ0KK+OBvuOBmeOBoCzjgajjgZfjgYvjgZoNCivjgb7jgZnjgoTjgb4s44Gy44Gn44GC44GNDQor44G+44Gk44GgLOOBl+OCk+OBlA0KK+OBvuOBpOOBoCzjgaTjgojjgZcNCivjgb7jgaTjgYjjgaAs44KK44KH44Gy44GhDQor44G+44Gk44GELOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZgNCivjgb7jgaTjgoLjgags44G+44GV44Gy44GTDQor44G+44Gk44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgY/jgb8NCivjgb7jgaTjgoLjgags44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBkeOBhOOBlw0KK+OBvuOBpOOBquOBjCzjgYLjgY3jgbLjgZMNCivjgb7jgaTjga4s44KE44GZ44Go44GXDQor44G+44Gk44GuLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOBiuOBiyzjgYLjgY3jgbLjgo0NCivjgb7jgobjgb8s44Gy44KN44KG44GNDQor44KB44GL44GfLOOCiOOBmeOBkQ0KK+OCgeOCiSzjgbLjgo3jgZcNCivjgb/jgZ/jgass44Gf44GL44GXDQor44G/44Gf44GrLOOBqOOCguOBkw0KK+OBv+OBqCzjgorjgaTjgZMNCivjgb/jgoTjgYzjgb8s44KA44Gk44G/DQor44GE44GK44GNLOOBquOBiuOBvw0KK+OBv+OChOOCguOBqCzjgaTjgojjgZcNCivjgb/jgoTjgoDjgoks44Gf44GL44G+44GVDQor44G/44KE44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBv+OChOOBhuOBoSzjgZHjgYTjgZgNCivjgb/jgoTjgZbjgY0s44Gb44GE44GE44GhDQor44KC44Gh44Ga44GNLOOChuOBsuOBoQ0KK+OCguOCguOBhCzjgZfjgoXjgbLjgaENCivjgoLjgoos44KI44GG44Gf44KN44GGDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiuOCguOBqCzjgoTjgZnjgbLjgZMNCivjgoLjgorjgoLjgags44GX44KT44GE44GhDQor44KC44KK44GK44GLLOOBv+OBoeOBkw0KK+OCguOCiuOBleOCjyzjgYLjgY3jgokNCivjgoLjgorjgZ8s44Gy44KN44GNDQor44KC44KK44GfLOOBk+OBhuOBmA0KK+OCguOCiuOBnyzjgZ/jgo3jgYYNCivjgoLjgorjgZ8s44G/44Gh44Gy44GoDQor44KC44KK44KE44G+LOOChuOBv+OBkw0KK+OCguOCiuOChOOBvizjgZfjgZLjgbLjgZUNCivjgoLjgabjgY4s44G+44GV44GC44GNDQor44KA44KJ44GL44G/LOOBguOBjeOBsuOCjQ0KK+OBguOBleOBrizjgajjgoLjgobjgY0NCivjgYLjgobjgYvjgo8s44Gf44GL44GC44GNDQor44KA44KJ44GKLOOBvuOBleOBr+OCiw0KK+OCgOOCieOBiuOBiyzjgb7jgZXjgYvjgaQNCivjgoDjgonjgZ8s44KG44GNDQor44KA44GX44GC44GRLOOBsuOBp+OBvuOBlQ0KK+OCgOOBnyzjgobjgYsNCivjgarjgbnjgYQs44GP44G/44GTDQor44Gq44GM44GELOOCiOOBsuOBoQ0KK+OBquOBjOOBhCzjgoDjgaTjgZMNCivjgarjgYzjgb/jga0s44GR44KT44GYDQor44Gq44GM44GV44KPLOOBqOOCguOBsuOCjQ0KK+OBquOBjOOBnyzjgYvjgZrjgojjgZcNCivjgarjgYzjgoTjgb4s44Gy44KN44Gu44G2DQor44Gq44GQ44KJLOOBguOBjeOBsuOBkw0KK+OBquOBhOOBqOOBhizjgZfjgpPjgoQNCivjgarjgYvjgYzjgo8s44Gf44GL44GXDQor44Gq44GL44GM44KPLOOBn+OBpOOBsuOBkw0KK+OBquOBi+OBjOOCjyzjgajjgYrjgosNCivjgarjgYvjgYzjgo8s44G+44GV44GC44GNDQor44Gq44GL44Gv44KJLOOBkeOCk+OBlA0KK+OBquOBi+OBhCzjgZXjgajjgZcNCivjgarjgYvjgYQs44Gg44GE44GZ44GRDQor44Gq44GL44GY44G+LOOBl+OBkuOCiw0KK+OBquOBi+OBmOOBvizjgajjgoLjgYvjgZoNCivjgarjgYvjgZjjgb4s44GI44G/44GTDQor44GV44KP44GgLOOBsuOBleOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgbDjgpPjgbAs44GT44GG44GE44GhDQor44Gq44GL44KA44KJLOOBvuOBleOBkw0KK+OBquOBi+OCgOOCiSzjgZXjgobjgooNCivjgarjgYvjgoDjgoks44Gf44Gg44GXDQor44Gq44GL44KA44KJLOOBpuOBpOOBig0KK+OBquOBi+OCgOOCiSzjgabjgaTjgoQNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OBrizjgorjgoXjgZgNCivjgarjgYvjga4s44KG44G/44GTDQor44Gq44GL44GKLOOChOOBmeOBlw0KK+OBquOBi+OBl+OBvizjgb7jgZXjgbLjgo0NCivjgarjgYvjgZ8s44Gf44GL44GTDQor44Gq44GL44GfLOOBl+OBkuOCiw0KK+OBquOBi+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgoTjgb4s44Go44GK44KLDQor44Gq44GL44KE44G+LOOChuOBv+OBkw0KK+OBquOBi+OChOOBvizjgYvjgaTjgoQNCivjgarjgYvjgZbjgo8s44G/44GI44GTDQor44Gq44GL44GW44KPLOOBguOBjeOBruOBtg0KK+OBquOBjOOBiuOBiyzjgabjgaTjgoQNCivjgarjgarjgZfjgoMs44Gy44Gn44Gy44GoDQor44Gq44KK44GfLOOBk+OBhuOBhOOBoQ0KK+OBquOCiuOBnyzjgb7jgZXjga7jgooNCivjgarjgZks44GL44Ga44GKDQor44Gq44GZ44GfLOOBvuOCig0KK+OBq+OBlyzjgZ/jgZHjgZcNCivjgavjgZfjgaAs44GC44GN44Gy44KNDQor44Gr44GX44KA44KJLOOBteOBv+OBkw0KK+OBvuOBleOBoCzjgbLjgo3jgYvjgZoNCivjgavjgZfjgoDjgoks44Gu44G244KG44GNDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBq+OBl+OBiizjgZPjgYbjgYTjgaENCivjgavjgZfjgoTjgb4s44GC44GN44GTDQor44Gr44Gj44GfLOOBquOBiuOChOOBmQ0KK+OBruOBjOOBvyzjgbLjgo3jgbXjgb8NCivjga7jgarjgYss44GC44GN44Gy44KNDQor44Gu44GbLOOBkeOBhOOBkw0KK+OBruOBn+OBuSzjgYvjgaTjgoQNCivjga7jgags44GR44GE44GZ44GRDQor44Gu44GmLOOChuOBn+OBiw0KK+OBrOOBj+OBhCzjgojjgZfjgbLjgo0NCivjgYrjgaEs44Gk44KI44GXDQor44GK44Gh44GC44GELOOBvuOBk+OBqA0KK+OBiuOBoCzjgZ/jgZHjgZcNCivjgYrjgYzjgZXjgo/jgoks44Gy44KN44GXDQor44GK44GM44KPLOOBi+OBreOBruOBtg0KK+OBiuOBjOOCjyzjga7jgbbjgobjgY0NCivjgYrjgYzjgo8s44GV44Gh44GKDQor44GK44GM44KPLOOBn+OBkeOBsuOBkw0KK+OBiuOBjOOCjyzjgajjgoLjgZMNCivjgYrjgYzjgo8s44G+44GV44KG44GNDQor44GK44GO44GuLOOCiOOBl+OBn+OBoA0KK+OBiuOBsCzjgb/jgarjgZMNCivjgZ/jgY3jgb/jgoQs44GL44GK44KKDQor44GK44Gv44GXLOOChOOBmeOBsuOCjQ0KK+OBiuOBr+OBlyzjgZ/jgYvjgbLjgo0NCivjgYrjgbIs44Gy44Gn44GKDQor44GK44GL44KPLOOBl+OCk+OBlA0KK+OBiuOCguOCiizjgZjjgoXjgavjgaENCivjgYrjgoDjgoks44Gy44KN44GNDQor44GK44Gq44GL44Gv44KJLOOBvuOBleOBsuOCjQ0KK+OBiuOBq+OBlyzjgYLjgY3jgbLjgZMNCivjgYrjga4s44Go44GX44KG44GNDQor44GK44G744GLLOOCiOOBl+OBi+OBmg0KK+OBiuOBl+OBvizjgobjgYbjgZgNCivjgYrjgZfjgb4s44KI44GYDQor44GE44GR44G+44GkLOOBk+OBhuOBmA0KK+OBiuOBnyzjgb7jgZXjgbLjgZMNCivjgYrjgZ8s44G+44GV44KEDQor44GK44GfLOOBquOBiuOBn+OBkQ0KK+OBiuOBnyzjgajjgoLjgb8NCivjgbXjgY/jgaAs44G+44GT44GoDQor44GK44Gc44GNLOOBvuOBleOBsuOBpw0KK+OBiuOBhOOBoCzjgobjgY3jgYoNCivjgYrjgYTjgZgs44Gf44Gg44KG44GNDQor44GK44GL44GgLOOBn+OBj+OBv+OCkw0KK+OBmeOBjuOCguOBqCzjgaHjgZXjgagNCivjgYrjgYvjgZbjgY0s44GI44G/DQor44GK44GL44GW44GNLOOBmOOCheOCk+OBiw0KK+OBiuOBi+OBluOCjyzjgb7jgoYNCivjgYrjgY/jgaAs44Gf44GR44Gk44GQDQor44GK44GP44GgLOOCiOOBl+OBruOCig0KK+OBiuOBj+OBoCzjgYLjgY3jgZMNCivjgYrjgY/jgoDjgoks44Gf44GL44GXDQor44GK44GP44KA44KJLOOBruOBtg0KK+OBiuOBj+OBrizjgZHjgpPjgYTjgaENCivjgYrjgY/jgoTjgb4s44Gf44GL44GTDQor44GK44GuLOOBn+OBkeOBlw0KK+OBiuOBrOOBjSzjgZ/jgYvjgZcNCivjgYrjga/jgZcs44GV44Gh44GTDQor44Go44Gy44KDLOOBn+OBv+OBkw0KK+OBiuOBqOOBkOOCjSzjgb/jgYgNCivjgYfjgYgs44GR44GE44GE44GhDQor44GV44GE44GULOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgY/jgavjgbLjgo0NCivjgZXjgYTjgajjgYYs44GX44KT44GYDQor44GV44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBleOBhOOBqOOBhizjgoTjgZnjgbLjgo0NCivjgZXjgYTjgajjgYYs44KE44GZ44GXDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgabjgaTjgoQNCivjgZXjgYvjgYjjgaDjgass44Gh44KF44KT44GB44KTDQor44Gh44GH44KTLOOBvuOBleOBjQ0KK+OBleOBi+OBhCzjgZfjgZLjgosNCivjgZXjgYvjgYQs44Gy44Gn44Gy44GoDQor44GV44GL44GfLOOBk+OBhuOBn+OCjeOBhg0KK+OBleOBi+OBnyzjgYLjgY3jgbLjgo0NCivjgZXjgY/jgb4s44Gq44GK44G/DQor44GV44GP44KJ44Gw44KE44GXLOOBsuOBp+OBruOCig0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZXjgY/jgZ8s44G+44GV44Gy44KNDQor44GV44GV44GNLOOBruOBtuOChuOBjQ0KK+OBleOBleOBjSzjgZ/jgYvjgYLjgY0NCivjgZXjgZXjgY0s44Gf44GR44Gy44KNDQor44GV44GV44GNLOOCiOOBl+OBn+OCjeOBhg0KK+OBleOBleOCgSzjgYLjgY3jgbLjgZUNCivjgZXjgajjgYYs44G144G/44Gy44GTDQor44GV44Go44GGLOOBsuOCjeOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgajjgYYs44GY44KF44KTDQor44GV44Go44GGLOOBi+OCk+OBmA0KK+OBleOBqOOBhizjgb/jgYsNCivjgZXjgajjgYYs44KC44Go44KG44GNDQor44GV44Go44GGLOOBruOBtuOChOOBmQ0KK+OBleOBqOOBhizjgajjgY/jgZjjgo0NCivjgZXjgajjgYYs44Gk44KI44GXDQor44GV44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBleOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44GC44Gk44GXDQor44GV44KP44GgLOOBvuOBpOOBig0KK+OBleOCj+OBr+OBlyzjgojjgZfjgYLjgY0NCivjgZXjgo/jga4s44G+44GV44GL44GaDQor44Gb44GQ44GhLOOBguOBjeOCiQ0KK+OBm+OBjSzjgZXjgaHjgZMNCivjgZvjgY3jgZDjgaEs44KI44GX44KG44GNDQor44Gb44GN44GQ44GhLOOCiOOBsuOBoQ0KK+OBl+OBsCzjgYvjgZrjga7jgooNCivjgZfjgbDjgZ8s44G+44GV44Gy44GTDQor44GX44Gw44GfLOOCiOOBl+OBsuOCjQ0KK+OBl+OBtuOChCzjgojjgZfjgo0NCivjgZfjgb7jgaAs44Gv44GY44KBDQor44GX44G/44GaLOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgZfjgb/jgZos44GT44GG44GYDQor44GX44G/44GaLOOBl+OCh+OBmA0KK+OBl+OBv+OBmizjgoTjgYgNCivjgZfjgb/jgZos44GP44G/44GTDQor44G144GY44GI44GgLOOBsuOCjeOChOOBmQ0KK+OBl+OCguOChOOBvuOBoCzjgorjgYgNCivjgZfjgarjgYzjgo8s44Gf44GL44GtDQor44GX44KT44KELOOBn+OBpOOChuOBjQ0KK+OBl+OBiuOBvyzjgYvjgZrjgbLjgo0NCivjgZfjgYrjgaQs44GX44KF44G444GEDQor44Gb44GN44GQ44GhLOOBqOOCguOBkw0KK+OBpOOBruOBoCzjgojjgZfjgbLjgo0NCivjgZfjgonjgZXjgYss44GV44Go44GXDQor44GX44KN44GX44GfLOOBi+OBiuOCig0KK+OBl+OBn+OCiSzjgYLjgoTjgZMNCivjgZfjgocs44G+44GV44Gv44KLDQor44GZ44GM44KP44KJLOOBn+OBi+OBlw0KK+OBmeOBjOOCj+OCiSzjgZfjgoXjgZgNCivjgZnjgY7jgoLjgags44GL44Gk44KG44GNDQor44GZ44GO44GfLOOBn+OBi+OChuOBjQ0KK+OBmeOBjuOBnyzjgajjgoLjgbLjgo0NCivjgZnjgY7jgZ8s44GL44Gk44KG44GNDQor44GZ44GO44GG44KJLOOBkeOCk+OBmA0KK+OBmeOBjuOBhuOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgZnjgY7jgoTjgb4s44GT44GG44GE44Gh44KNDQor44GE44GR44Ge44GILOOBl+OCk+OBhOOBoQ0KK+OBmeOBjuOChOOBvizjgajjgoLjgbLjgacNCivjgZnjgYss44G/44Gk44Gu44KKDQor44GZ44GR44GM44KPLOOBl+OCk+OBmA0KK+OBmeOBv+OBruOBhuOBiCzjgYvjgaTjgbLjgZMNCivjgZnjgb/jgojjgZcs44Go44GK44KLDQor44GZ44G/44KI44GXLOOBn+OBi+OBlw0KK+OBmeOBquOBvyzjgYLjgaTjgYoNCivjgZnjgZrjgY0s44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOBsuOBleOBlw0KK+OBmeOBmuOBjSzjgZjjgobjgavjgaENCivjgZnjgZrjgY0s44G/44G7DQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgZfjgofjgbLjgaENCivjgZnjgZrjgY0s44Go44KC44GL44GaDQor44GZ44Ga44GNLOOBvuOBleOCiOOCig0KK+OBl+OCh+OBmCzjgYvjgaTjgbLjgZMNCivjgZfjgofjgZjjgocs44GV44Go44GTDQor44Gf44Gw44GfLOOBqOOCiOOBsuOBlQ0KK+OBn+OBoCzjgb/jgZrjgbsNCivjgZ/jganjgZPjgo0s44G+44GV44Go44GXDQor44Gf44GM44G/LOOBsuOCjeOBguOBjQ0KK+OBn+OBkOOBoSzjgajjgoLjgobjgY0NCivjgZ/jgZDjgaEs44Gu44G244KI44GXDQor44Gf44GELOOBsuOBp+OBjQ0KK+OBn+OBhOOCiSzjgZ/jga3jgYvjgZoNCivjgZ/jgYTjgZUs44Go44GX44G/44GkDQor44Gf44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBoCzjgoTjgaHjgogNCivjgZ/jgYvjgaAs44G+44KC44KLDQor44Gf44GL44GOLOOBguOBjeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44Gy44KN44GC44GNDQor44Gf44GL44Gv44GXLOOBhOOBo+OBuuOBhA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZ/jgYvjga/jgZcs44Gu44G244GC44GNDQor44Gf44GL44Gv44GXLOOBl+OBmg0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gd44GG44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgobjgY0NCivjgZ/jgYvjgYQs44GT44GG44GYDQor44Gf44GL44GuLOOBn+OBi+OBlw0KK+OBn+OBi+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgZ/jgYvjgoTjgb4s44G+44GV44Gm44KLDQor44Gf44GR44GgLOOBguOBpOOBlw0KK+OBn+OBkeOBhOOBoSzjgb/jgaTjgbLjgo0NCivjgZ/jgZHjgb7jgZUs44GN44KI44GXDQor44Gf44GR44KA44KJLOOBn+OBoOOBquOBig0KK+OBn+OBkeOCgOOCiSzjgYjjgaTjgo0NCivjgZ/jgZHjgarjgYss44Gm44Gk44KNDQor44Gf44GR44GX44GfLOOBguOBpOOChA0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgZ/jgZHjgYbjgaEs44Go44GK44KLDQor44Gf44GR44GG44GhLOOBquOBiuOBjQ0KK+OBn+OBjeOBi+OCjyzjgZXjgajjgZcNCivjgZ/jgY3jgY3jgZ8s44KG44GG44GYDQor44Gf44GN44GW44KPLOOBqOOBl+OBig0KK+OBn+OBkyzjgobjgZnjgZENCivjgZ/jgYvjga4s44Gq44GK44GNDQor44Gf44G+44GM44KPLOOCiOOBl+OBteOBvw0KK+OBn+OBvuOBjSzjgZfjga7jgbYNCivjgZ/jgoDjgoks44GL44KT44GTDQor44Gf44Gq44G5LOOBquOBiuOChA0KK+OBn+OBquOBuSzjgbLjgafjgaTjgZANCivjgZ/jgarjgYss44GL44Ga44KI44GXDQor44Gf44Gq44GLLOOBkeOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgarjgYss44GX44G7DQor44Gf44Gq44GLLOOBl+OCheOCk+OBmeOBkQ0KK+OBn+OBquOBiyzjgarjgYrjgagNCivjgZ/jgass44GX44KH44GeDQor44Gf44Gr44GQ44GhLOOBguOBpOOBqA0KK+OBn+OBq+OBl+OChyzjgbLjgajjgZcNCivjgZ/jgabjgoTjgb4s44GI44GE44GE44Gh44KN44GGDQor44Gf44Gk44G/LOOBguOBpOOBlw0KK+OBn+OBhuOCiSzjgZ/jgYvjgZcNCivjgZ/jgZbjgo8s44Gy44Gn44GoDQor44Gf44Ga44GRLOOCiOOBl+OBjQ0KK+OBpuOCieOBoCzjgoLjgajjgobjgY0NCivjgajjgb4s44Gy44KN44KG44GNDQor44Go44Gy44KD44G+LOOBiuOBleOCgA0KK+OBqOOCgeOBiuOBjyzjgYvjgZrjgZ/jgYsNCivjgajjgb/jgYTjgYgs44Gy44KN44Gu44G2DQor44G144Gf44Gk44GOLOOBteOBv+OBig0KK+OBqOOCguOBqOOBlyzjgY3jgofjgbjjgYQNCivjgajjga3jgYzjgo8s44GN44KH44GTDQor44GK44GP44KA44KJLOOBv+OBuw0KK+OBqOOBl+OBl+OBkizjgojjgZfjgbLjgZUNCivjgajjgojjgaAs44KI44GG44GTDQor44Go44KI44Gq44GLLOOBvuOBleOCiOOBlw0KK+OBpOOBsOOBjSzjgYvjgZrjgarjgooNCivjgaTjgaHjgoLjgags44Gu44G244Gy44KNDQor44Gk44GgLOOBl+OCk+OBlA0KK+OBpOOBoCzjgojjgZfjgbXjgb8NCivjgaTjgaAs44G+44GZ44G/DQor44Gk44GY44GELOOBn+OBi+OBqOOBlw0KK+OBpOOBmOOCgOOCiSzjgajjgoLjgobjgY0NCivjgaTjgYvjga/jgoks44Gb44GE44GE44GhDQor44Gk44Gu44GgLOOBkeOBhOOBkw0KK+OBpOOCi+OBjizjgYvjgZrjgbLjgo0NCivjgaTjgovjgZ8s44GL44Ga44Gy44KNDQor44Gk44GX44G+LOOBguOBjeOBig0KK+OBpOOBpOOBhCzjga/jgoTjgagNCivjgaTjgaHjgaAs44Gy44KN44GXDQor44GG44Gh44GgLOOBkeOCk+OBmA0KK+OBhuOBoeOBoCzjgYLjgY3jgZMNCivjgYbjgaHjgY/jgoks44Gu44KK44Gy44GTDQor44GG44Gh44Gf44GrLOOBsuOCjeOBlw0KK+OBhuOBiOOBoCzjgYvjgZrjgarjgooNCivjgYbjgYjjgaAs44G+44GV44KEDQor44GG44GI44GgLOOBpuOBpOOChA0KK+OBhuOBiOOBoCzjgbXjgb/jgYoNCivjgYbjgYjjgoDjgoks44GV44Go44GXDQor44GG44GI44GuLOOBi+OCiA0KK+OBhuOBiOOBpOOBjSzjgajjgZfjgYgNCivjgYTjgZEs44Go44KC44Gf44GLDQor44GG44KB44GgLOOBruOCiuOBkw0KK+OBhuOCgeOCgOOCiSzjgajjgZfjgo0NCivjgYbjga7jgY0s44GX44KH44GYDQor44GG44KJ44GX44GfLOOBr+OCi+OBsuOBkw0KK+OBhuOCieOBnyzjgabjgovjgbLjgZMNCivjgYbjgZfjgYos44GN44Gs44KIDQor44GG44Gf44GM44KPLOOBsuOCjeOChuOBjQ0KK+OCj+OBoCzjgYvjgaTjgobjgY0NCivjgo/jgaAs44GV44Go44KLDQor44KP44GgLOOBn+OBj+OBmA0KK+OCj+OBoCzjgZ/jgZHjgZcNCivjgo/jgYzjgaTjgb4s44GL44Gk44GTDQor44KP44GL44G+44GkLOOBleOBjeOBkw0KK+OCj+OBjeOBnyzjgaHjgYgNCivjgo/jgZMs44GM44GPDQor44KP44KK44GL44GfLOOBguOBjeOBruOCig0KK+OCj+OBl+OBmizjgbLjgo3jgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgosNCivjgo/jgZ/jgarjgbks44G/44G7DQor44KP44Gf44Gq44G5LOOBquOBpOOBkw0KK+OBiuOCgOOCiSzjga7jgbbjgbLjgZMNCivjgo/jgZ/jgarjgbks44Go44KC44GTDQor44KP44Gf44Gq44G5LOOBqOOCguOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYoNCivjgo/jgZ/jgarjgbks44Gm44Gk44KEDQor44KE44GOLOOBqOOCguOBkw0KK+OChOOBjizjgYLjgY3jgbLjgagNCivjgoTjgb7jgaAs44Gy44KN44Gf44GkDQor44KE44G+44GgLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBoCzjgZfjgofjgbLjgaENCivjgoTjgb7jgaAs44KG44GG44GYDQor44KE44G+44GgLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOBteOBjyzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgZDjgaEs44Gq44GK44KG44GNDQor44KE44G+44GQ44GhLOOBl+OChw0KK+OChOOBvuOBkOOBoSzjgZfjgoXjgpPjgZgNCivjgoTjgb7jgZDjgaEs44KI44GX44KG44GNDQor44KE44G+44GYLOOBqOOBl+OBig0KK+OChOOBvuOBi+OCjyzjgYzjgY8NCivjgoTjgb7jgoLjgags44Gy44KN44G144G/DQor44KE44G+44KC44GoLOOBsuOCjeOBsuOBpw0KK+OChOOBvuOCguOBqCzjgZPjgZvjgYQNCivjgoTjgb7jgoLjgags44Gq44GK44GTDQor44KE44G+44KC44GoLOOCiuOCheOBsuOBoQ0KK+OChOOBvuOCguOBqCzjgabjgaTjgo0NCivjgoTjgb7jgoLjgags44Go44KC44G/DQor44KE44G+44KC44GoLOOChuOBhuOBkw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgagNCivjgoTjgb7jgaos44Gu44KK44Go44GXDQor44KE44G+44GV44GNLOOBsuOBp+OBteOBvw0KK+OChOOBvuOBl+OBnyzjgZfjgZLjgYoNCivjgoTjgb7jgZfjgZ8s44Gf44GR44Gy44KNDQor44KE44G+44GW44GNLOOBsuOBp+OBig0KK+OChOOBquOBjizjgb7jgorjgZMNCivjgoTjga4s44KI44GYDQor44KE44GX44KNLOOCiOOBhuOBkw0KK+OChOOBmeOBhCzjgbLjgo3jgYvjgZoNCivjgoTjgZnjgoDjgo0s44Go44GK44KLDQor44KE44GZ44GG44GYLOOBk+OBhuOBmA0KK+OCiOOBk+OBiCzjgZ/jgYvjga7jgooNCivjgojjgZPjgYQs44GR44KT44GE44GhDQor44KI44GT44G/44GeLOOBv+OBpOOBng0KK+OCiOOBk+OChOOBvizjgobjgY3jgZMNCivjgojjga3jgZbjgo8s44Gy44KN44KE44GZDQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OCiOOBl+OBoCzjgb7jgZXjgY0NCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OCiOOBl+OBoCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgYQs44GL44Gk44G/DQor44KI44GX44KA44KJLOOBruOCiuOBqOOBlw0KK+OCiOOBl+OChOOBvizjgajjgYrjgosNCivjgojjgZfjgZbjgo8s44Gy44KN44GXDQor44G144GY44GX44G+LOOCiuOChw0KK+OChuOBguOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgobjgY0s44Gf44GR44GXDQor44KG44GNLOOBteOBqOOBlw0KK+OChuOBhCzjgZ/jgYvjgZcNCivjgYLjgaDjgaEs44KI44GX44KG44GNDQor44Gw44KTLOOBsuOBp+OBruOCig0KK+OBteOCi+OBhCzjgb7jgoQNCivjga/jgZvjgYzjgo8s44GN44KI44GX44GSDQor44Gy44KJ44GL44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYTjgo/jgZXjgY0s44GR44KT44KEDQor44GL44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBi+OCj+OBr+OCiSzjgYvjgaTjgoQNCivjgb7jgYjjga/jgoks44GL44Ga44GC44GNDQor44G+44Gk44Gf44GrLOOBqOOCguOBvw0KK+OCguOCiuOBhOOBoSzjgZfjgZLjgagNCivjgavjgZfjgYbjgaEs44Gm44KL44GL44GaDQor44G144GY44G+44GNLOOBiOOBhOOBmA0KK+OBiuOBr+OCiSzjgZXjgaHjgZMNCivjgZXjgarjgaAs44GR44KT44Gf44KN44GGDQor44Gd44GtLOOBkeOBhA0KK+OBqOOBruOCgOOCiSzjgZvjgaTjgZMNCivjgZfjgb/jgZos44GC44GN44KIDQor44G/44GX44G+LOOBoOOBhOOBmeOBkQ0KK+OBteOBmOOBnyzjgarjgYrjgZ/jgZENCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44G144GY44GfLOOCiOOBl+OBruOCig0KK+OBteOBmOOCj+OCiSzjga/jgZjjgoENCivjgbXjgZjjgoUs44G+44Gq44G2DQor44G144GL44GgLOOBqOOBl+OBsuOBkw0KK+OBteOBj+OBoCzjgorjgofjgZgNCivjgbXjgY/jgbLjgZUs44GR44KT44GYDQor44G144GP44GW44GoLOOCiOOBl+OBv+OBpA0KK+OBteOBj+OBluOCjyzjgYrjgZXjgoANCivjgbXjgovjgZXjgo8s44GX44GS44GKDQor44Gv44GM44KPLOOBiOOBhOOBmOOCjQ0KK+OBr+OBjizjga7jgbbjgobjgY0NCivjga/jgonjgaAs44Gf44GE44GeDQor44Gv44KJ44GgLOOBn+OBi+OBlw0KK+OBr+OCieOBoCzjgbLjgafjgYLjgY0NCivjga/jgonjgb7jgY0s44Gk44Go44KADQor44Gv44Gb44GM44KPLOOCiOOBl+OChuOBjQ0KK+OBr+OBm+OBjOOCjyzjgZHjgYQNCivjga/jgZfjgYos44G+44KK44GTDQor44Gv44GZ44G/LOOBn+OCjeOBhg0KK+OBr+OBmeOBvyzjgbLjgafjgY0NCivjga/jgaPjgajjgoos44KIDQor44GE44GX44GL44KPLOOBk+OBhuOBmOOCjQ0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgbLjgonjga4s44Gf44GP44KEDQor44Gy44KJ44GuLOOChuOBn+OBiw0KK+OBsuOCieOBrizjgarjgYrjgZ/jgYsNCivjgbLjgo3jgbks44GC44KEDQor44GX44Gu44GgLOOBn+OBi+OBlw0KK+OBsuOBleOBoCzjgY3jga/jgosNCivjgbvjgZjjgocs44Gf44GL44GXDQor44G744KT44GULOOBsuOCjeOBn+OBiw0KK+OBu+OBlyzjgb/jgaTjgosNCivjgbvjgZfjga4s44Gu44G244Gy44KNDQor44G744Gd44GL44KPLOOBvuOBjQ0KK+OBu+OBneOBrizjgarjgYrjgZMNCivjgYvjgajjgYYs44KK44GIDQor44GE44GOLOOBsuOBp+OBguOBjQ0KK+OBhOOBkeOBoCzjgobjgYsNCivjgYTjgY/jgo0s44Gy44KN44GXDQor44GE44G+44GELOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBquOBoCzjgojjgorjgZMNCivjgYTjga7jgZDjgaEs44G244KT44G644GEDQor44GE44GX44GQ44KNLOOBn+OBi+OBkw0KK+OBhOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgYTjgZfjgYvjgo8s44GL44Ga44GC44GNDQor44GE44GX44GW44GNLOOBqOOBl+OBguOBjQ0KK+OBhOOBl+OBnOOBjSzjgbLjgafjgY0NCivjgYTjgajjgYYs44GR44KT44GYDQor44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBhOOBqOOBhizjgZ/jgZHjgZcNCivjgYTjgajjgYYs44Gm44KL44Gy44GTDQor44GE44G+44GM44KPLOOBv+OBoeOBkw0KK+OBhOOBluOCjyzjgb7jgZXjgY0NCivjgYTjgZrjgb8s44Gy44KN44GL44GaDQor44GE44Ga44G/44Gg44GmLOOChuOBvw0KK+OBi+OBtuOCieOBjizjgojjgZfjgo0NCivjgYvjgb/jgoTjgb4s44KI44GG44GTDQor44GL44Gq44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBi+OBquOBluOCjyzjga7jgorjgbLjgo0NCivjgYvjgpPjgbDjgoks44GL44Ga44KI44GXDQor44GL44KT44GgLOOBk+OBuOOBhA0KK+OBi+OCk+OBoCzjgZ/jgYvjgobjgY0NCivjgYvjga3jgZMs44Gk44GQ44GL44GaDQor44GL44GX44KA44KJLOOBsuOCjeOBjQ0KK+OBi+OBn+OBjuOCiizjgZHjgpPjgZgNCivjgYvjgajjgYYs44KG44GL44KKDQor44GL44Go44GGLOOCiOOBl+OBqA0KK+OBi+OCj+OBoCzjgabjgaTjgoQNCivjgYvjgo/jgZnjgb8s44G+44GV44KI44GXDQor44GN44GpLOOBquOBiuOBjQ0KK+OBjeOBj+OBoSzjgojjgZfjgb8NCivjgY3jgoLjgags44GR44GEDQor44GN44KA44KJLOOBk+OBhuOBmA0KK+OBjeOCk+OBqSzjgZfjgofjgZgNCivjgY3jgZ/jgoDjgoks44Gu44KK44Go44GXDQor44GN44Gf44GuLOOBi+OBiuOCig0KK+OBjeOBn+OCj+OBn+OBmyzjgajjgYrjgosNCivjgY3jgaPjgZ8s44GT44GG44GYDQor44GN44KE44G+LOOBmOOCjQ0KK+OBjeOCiOOBnyzjgYvjgaTjgojjgZcNCivjgZPjgbDjgoTjgZcs44KG44GG44GTDQor44GT44Gw44KE44GXLOOBv+OBmeOBvuOCiw0KK+OBk+OBjCzjgarjgorjgajjgoINCivjgZPjga/jgoks44Gy44KN44GXDQor44GT44GY44GqLOOBl+OCk+OBmeOBkQ0KK+OBk+OBrizjgbLjgo3jga7jgooNCivjgZPjgZrjgYss44Gu44G244Gy44GVDQor44GT44GE44GnLOOBr+OCi+OBvw0KK+OBk+OBvuOBpCzjgojjgYbjgZMNCivjgZPjgb/jgarjgags44GX44KF44Gr44GhDQor44GT44KC44KKLOOBruOBtuOBsuOCjQ0KK+OBk+OCk+OBqSzjgZ/jgY/jgoQNCivjgZPjgavjgZcs44GR44KT44GfDQor44GP44G844KE44G+LOOBv+OBoeOBr+OCiw0KK+OBj+OBvuOBjOOBhCzjgb/jgbsNCivjgY/jgb7jgZ8s44GV44Gg44GKDQor44GP44KK44Gv44KJLOOBmeOBmeOCgA0KK+OBj+OCiuOBr+OCiSzjgoTjgZnjgZMNCivjgY/jgorjgZ8s44Gb44GE44GYDQor44GP44GV44GuLOOBsuOCjeOChuOBjQ0KK+OBj+OBl+OBoCzjgZjjgoXjgpPjgZgNCivjgb7jgYjjgaAs44KI44GG44GTDQor44G+44GNLOOBguOBpOOChA0KK+OBvuOBjeOBnyzjgZ/jgYvjgobjgY0NCivjgb7jgovjgoTjgb4s44GR44KTDQor44G+44GZ44GgLOOBkeOBhOOBlA0KK+OBvuOBpOOBsOOCiSzjgb7jgZXjgY0NCivjgb7jgaTjgbDjgoks44GX44KT44GYDQor44G+44Gk44GELOOCiuOCheOBmeOBkQ0KK+OBvuOBpOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgb7jgaTjgoDjgoks44GV44Go44GTDQor44G+44Gk44GKLOOBsuOCjeOBsuOBkw0KK+OBv+OBi+OBvyzjga7jgorjgZMNCivjgb/jgY0s44Gf44Gg44GC44GNDQor44G/44Gu44GG44KJLOOCiuOCh+OBmA0KK+OBv+OBl+OBvizjgZ/jgYvjgZMNCivjgb/jgaTjgarjgYws44Gf44GR44GXDQor44G/44GG44KJLOOBkeOBhOOBkw0KK+OBv+OCjyzjgZXjgajjgZcNCivjgb/jgoTjgYos44Gy44KN44G144G/DQor44G/44KE44GfLOOBguOBjeOBsuOBkw0KK+OBv+OBmuOBn+OBqyzjgobjgY0NCivjgb/jgZrjgZ/jgass44GR44GE44GZ44GRDQor44KC44Gh44Ga44GNLOOBl+OCk+OBmA0KK+OCguOBoeOBmuOBjSzjgaTjga3jgYoNCivjgoLjgaHjgZrjgY0s44Gg44GE44GhDQor44KC44GOLOOBoeOBi+OCiQ0KK+OCguOCiizjgbLjgafjgajjgZcNCivjgoLjgoos44GR44GE44GTDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgZfjgpPjgZ/jgo3jgYYNCivjgoLjgoos44GL44Ga44Gy44KNDQor44KC44KK44KE44G+LOOBv+OBpOOBig0KK+OCguOCjeOBiuOBiyzjgZ/jgYvjgYLjgY0NCivjgoLjgajjgbAs44Gb44GE44GYDQor44KA44Gt44GoLOOBkeOCk+OBhOOBoQ0KK+OCgOOCieOBhCzjgojjgZfjgobjgY0NCivjgoDjgonjgYrjgYss44G+44GV44Gu44KKDQor44KA44KN44GELOOBn+OBi+OBruOBtg0KK+OBquOBjOOBteOBmCzjgoTjgZnjga/jgosNCivjgarjgYzjgYQs44GL44Gq44GGDQor44Gq44GE44Go44GGLOOBi+OBmuOBsuOBkw0KK+OBquOBhOOBqOOBhizjgbLjgafjga7jgbYNCivjgarjgYvjgYzjgo8s44G/44Gk44KLDQor44Gq44GL44Gv44KJLOOBj+OBv+OBkw0KK+OBquOBi+OBmOOBvizjga7jgbbjgobjgY0NCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBleOBqOOCiw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjgbLjgZMNCivjgarjgYvjgoDjgoks44Gf44Gg44KG44GNDQor44Gq44GL44KA44KJLOOBqOOCguOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgY0NCivjgarjgYvjgoDjgoks44Go44GX44GKDQor44Gq44GL44KA44KJLOOChuOBjQ0KK+OChOOBvuOBoCzjgaDjgYTjgZXjgY8NCivjgarjgYvjgYos44GL44Gk44G+44GVDQor44Gq44GL44Gk44GL44GVLOOCiOOBl+OBkw0KK+OBquOBi+OChOOBvizjgZHjgpMNCivjgarjgoDjgoks44Gy44Gn44Gy44KNDQor44Gq44GZ44GuLOOBjeOBv+OBsuOBqA0KK+OBq+OBhOOBnOOBjSzjgYLjgY3jgokNCivjgavjgZfjgYvjgo8s44KG44GN44GTDQor44Gr44GX44GN44GK44KKLOOBn+OCjeOBhg0KK+OBq+OBl+OBluOCjyzjgb/jga7jgosNCivjga7jgYLjgY0s44G/44KE44GTDQor44Gu44GgLOOChuOBn+OBiw0KK+OBruOBoCzjgb7jgZXjgbLjgZMNCivjga7jgZDjgaEs44Gf44GR44GXDQor44Gu44KA44KJLOOBsuOCjeOBlw0KK+OBiuOBoeOBguOBhCzjgYLjgoQNCivjgoLjgoos44GC44GN44KJDQor44GK44GM44GV44KP44KJLOOBguOBjeOCiQ0KK+OBiuOBjOOBleOCj+OCiSzjgYLjgaTjgZcNCivjgYrjgYzjgo8s44Gy44GV44GoDQor44GK44GM44KPLOOBn+OBi+OBlw0KK+OBiuOBjOOCjyzjgYjjgYTjgZgNCivjgYrjgZDjgoks44GN44KI44GXDQor44GK44GQ44KJLOOBvuOCig0KK+OBiuOBsuOBlyzjgoDjga3jgobjgY0NCivjgYrjgYvjgo8s44Gq44GK44GNDQor44GK44GL44KPLOOBqOOBl+OBr+OCiw0KK+OBiuOBi+OBnCzjgZPjgZ4NCivjgYrjgY0s44KI44GX44GC44GNDQor44GK44KA44KJLOOBi+OBpOOBruOCig0KK+OBiuOBmeOBvyzjgojjgYbjgZMNCivjgYrjgZ8s44GR44KT44Gf44KN44GGDQor44GK44Gf44GRLOOChuOBhuOBkw0KK+OBiuOBn+OBqyzjgbLjgZXjgZcNCivjgYrjgbLjgoPjgb4s44Gy44Gn44GNDQor44GK44Gc44GNLOOBk+OBmeOBkQ0KK+OBiuOBi+OCguOBqCzjgb7jgorjgZMNCivjgYrjgYvjgoDjgoks44G/44Gk44Gy44GVDQor44GK44GL44KA44KJLOOBn+OBpOOBlw0KK+OBiuOBj+OCgOOCiSzjgorjgofjgZMNCivjgYrjgpPjgaAs44Gf44GL44Gy44KNDQor44GK44Gu44Gn44KJLOOChOOBmeOBsuOBlQ0KK+OBiuOChOOBuSzjgbXjgb/jga7jgooNCivjgZXjgYws44G+44GV44GNDQor44GV44GE44Go44GGLOOBsuOCjeOChA0KK+OBleOBi+OBhCzjgajjgZfjgYLjgY0NCivjgYTjgY4s44GY44KF44KT44GTDQor44GV44GL44KC44GoLOOBquOBiuOBjQ0KK+OBleOBi+OCguOBqCzjgabjgaTjgoQNCivjgZXjgYvjgaTjgY4s44GC44Gk44GXDQor44GV44GL44GG44GILOOBvuOBleOBsuOCjQ0KK+OBleOBj+OBvizjgbXjgb/jgbLjgZMNCivjgZXjgY/jgoks44Gm44Gk44GYDQor44GV44Gq44GgLOOBkeOCkw0KK+OBleOBleOBjSzjgZHjgpPjgZgNCivjgZXjgZXjgY0s44Gy44KN44GXDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBleOBqOOBhizjgZPjgZfjgpMNCivjgZXjgajjgYYs44G+44KC44KLDQor44GV44Go44GGLOOBvuOBquOBvw0KK+OBleOBqOOBhizjga7jgorjgbLjgZMNCivjgZXjgajjgYYs44Gu44KK44KG44GNDQor44GV44Go44GGLOOBn+OBi+OBruOCig0KK+OBleOBqOOBhizjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44KG44GG44GTDQor44GV44Go44GGLOOBleOBquOBiA0KK+OBm+OBhOOBkSzjgYLjgY3jga7jgooNCivjgZvjgY0s44Gy44GV44GtDQor44Gb44GNLOOCiOOBl+OBsuOCjQ0KK+OBm+OBjSzjgYvjgZrjgYoNCivjgZvjgY3jgZDjgaEs44GR44KT44GYDQor44Gb44GfLOOBvuOCiuOBkw0KK+OBl+OCk+OBjOOBhCzjgYjjgYTjgY0NCivjgZfjgbDjgZ8s44KI44GX44Gy44KNDQor44GX44Gw44GfLOOBn+OBkeOBig0KK+OBl+OBtuOBjSzjgarjgYrjgoQNCivjgZfjgZLjgajjgb8s44GL44Gk44KG44GNDQor44GX44GMLOOBn+OBi+OBsuOCjQ0KK+OBl+OBhOOBsCzjgajjgZfjgYLjgY0NCivjgZfjgb7jgaAs44GX44KF44GG44GE44GhDQor44GX44G+44GL44KPLOOBsuOBp+OBsuOBlQ0KK+OBl+OBv+OBmizjgYvjgaTjgbLjgo0NCivjgZfjgb/jgZos44GN44KH44GTDQor44GX44G/44GaLOOChOOBmeOBsuOBqA0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgacNCivjgZfjgoLjgoDjgoks44GV44Go44G/DQor44GX44KC44KA44KJLOOBvuOBleOBruOCig0KK+OBl+OBiuOBmOOCiizjgojjgYbjgYTjgaENCivjgZfjgYrjgZbjgo8s44Gm44Gk44KEDQor44GX44KJ44GELOOBpuOBpA0KK+OBl+OCieOBi+OCjyzjgZ/jgZHjgZcNCivjgZ3jgb7jgpMs44Go44GX44GKDQor44Gd44Gy44KDLOOBguOBjeOBkw0KK+OBneOBruOBoCzjgojjgZfjgZMNCivjgZnjgaAs44KG44GN44Gu44KKDQor44GZ44GM44GuLOOBmOOCjQ0KK+OBmeOBjOOBrOOBvizjgYvjgZrjgb/jgaQNCivjgZnjgYzjgo8s44Gy44KN44GXDQor44GZ44GO44GG44KJLOOBv+OBiw0KK+OBmeOBjuOChOOBvizjgYTjgaHjgo3jgYYNCivjgZnjgZrjgY0s44GX44GS44KLDQor44GZ44Ga44GNLOOBmeOBmeOCgA0KK+OBmeOBmuOBjSzjgZ/jgYvjgaTjgaoNCivjgZnjgZrjgY0s44GK44GV44KADQor44GX44KH44GYLOOBn+OBi+OBlw0KK+OBn+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgYTjgoks44GC44GN44KJDQor44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgYLjgoTjgZMNCivjgYrjgYvjgoTjgb4s44KG44GG44GTDQor44Gf44GL44GO44GXLOOBteOBv+OBiA0KK+OBn+OBi+OBr+OBlyzjgZjjgpMNCivjgZ/jgYvjga/jgZcs44G+44GV44GoDQor44Gf44GL44Gv44GXLOOBvuOChuOBvw0KK+OBn+OBi+OBr+OBlyzjgajjgoLjga/jgosNCivjgZ/jgYvjga/jgZcs44GR44KT44GE44GhDQor44Gf44GL44GNLOOBleOBqOOBlw0KK+OBn+OBi+OBiuOBiyzjgZvjgYTjgYTjgaENCivjgZ/jgYvjgYrjgYss44GN44KH44GZ44GRDQor44GE44G+44GE44Ga44G/LOOBqOOCguOBsuOCjQ0KK+OBn+OBi+OBleOCjyzjgZHjgpMNCivjgZ/jgYvjgZks44GT44GG44GYDQor44Gf44GR44GELOOBguOBpOOBlw0KK+OBn+OBkeOBquOBiyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgZHjgZbjgY0s44Gm44Gk44KEDQor44Gf44G+44GE44GXLOOBi+OBpOOChA0KK+OBn+OBvuOBjSzjgZ/jgaDjgagNCivjgZ/jgarjgYss44KK44GIDQor44Gf44Gr44GQ44GhLOOBn+OBi+OBruOCig0KK+OBn+OBhuOBoSzjgYLjgZXjgZMNCivjgabjgonjgb/jgaQs44G/44GL44GTDQor44Go44GgLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBqOOBv+OBquOBjCzjgoTjgZnjgZcNCivjgajjgb/jgZ8s44G+44GV44KI44GXDQor44Go44KT44GQLOOBqOOBiuOCiw0KK+OBpOOBreOBi+OCjyzjgY3jgofjgZMNCivjgaTjgaTjgYQs44KI44GE44GhDQor44GG44Gh44GgLOOBn+OBj+OChA0KK+OBhuOBoeOBr+OBlyzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44KI44GX44GKDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhuOBiOOBoCzjgaTjgojjgZcNCivjgYbjgYjjga/jgoks44Gb44Gk44GTDQor44G144GY44GfLOOBn+OBkeOBlw0KK+OBhuOCgeOBoCzjgojjgZfjgZMNCivjgYbjgoHjga/jgoks44Gy44Gn44GC44GNDQor44GG44KJ44G5LOOBl+OBkuOCiw0KK+OCj+OBn+OBuSzjgYLjgY3jgokNCivjgoTjgYzjgZXjgY0s44Gq44GK44GNDQor44KE44GO44KC44GoLOOBsuOCjeOBquOBig0KK+OChOOBmOOBvizjgaDjgYTjgZnjgZENCivjgoTjgb7jgaAs44G+44KEDQor44KE44G+44GgLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBoCzjgYLjgY3jgogNCivjgoTjgb7jgZDjgaEs44Gy44Gn44Go44GXDQor44KE44G+44GQ44GhLOOBsuOCjeOBteOBvw0KK+OChOOBvuOCguOBqCzjgYvjgaTjgojjgZcNCivjgoTjgb7jgoLjgags44Gf44GR44GXDQor44KE44G+44KC44GoLOOBn+OBj+OBig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgZMNCivjgoTjgb7jga0s44KI44Gy44GhDQor44KE44G+44GV44GNLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgbLjgafjgYLjgY0NCivjgoTjgb7jgZbjgY0s44GX44G7DQor44KE44G+44GV44GNLOOBpuOBpOOChA0KK+OChOOBquOBjOOCjyzjgoTjgojjgYQNCivjgoTjgarjgY7jgaAs44Gy44GV44GTDQor44GK44GuLOOChOOBmeOBlw0KK+OChOOBquOBjuOBleOCjyzjgZnjgb/jgYsNCivjgoTjgZbjgY0s44Gy44KN44GXDQor44KE44GW44KPLOOBi+OBpOOBvw0KK+OCiOOBk+OChOOBvizjgb/jgaHjgZMNCivjgojjgZPjgoTjgb4s44Gf44GL44GXDQor44KI44KCLOOBv+OBi+OBkw0KK+OCiOOBl+OBoCzjgZXjgajjgZMNCivjgojjgZfjgaAs44Go44KC44GTDQor44KI44GX44GgLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBr+OCiSzjgoTjgZnjgbLjgo0NCivjgojjgZfjga/jgoks44Gq44GK44GNDQor44KI44GX44KC44KKLOOBk+OBhuOBmA0KK+OBnOOBo+OBpCzjgYvjgZrjgbLjgo0NCivjgYLjgbks44Gv44KL44Gu44KKDQor44GC44Gg44GhLOOBi+OBmuOBjQ0KK+OBguOBhOOBi+OCjyzjgb7jgZXjgobjgY0NCivjgYLjgYvjgYgs44Go44GX44KEDQor44GC44KT44Gp44GGLOOBn+OBkeOBlw0KK+OBguOBleOBvyzjgoTjgZnjgYoNCivjgYTjgb7jgarjgYss44Gy44Gn44Gu44G2DQor44G544Gj44G3LOOChOOBmeOBlw0KK+OBueOBo+OBtyzjgarjgYrjgY0NCivjgaHjgYvjga/jgoks44Gb44GE44GYDQor44G144GY44GELOOBsuOCjeOBkw0KK+OBteOBmOOBleOBjSzjgZ/jgZHjgZcNCivjgbXjgY/jgZfjgb4s44GN44KH44GYDQor44GP44KN44GgLOOBsuOBp+OBig0KK+OCguOCiizjgobjgYbjgZgNCivjgarjgYvjgoDjgoks44Gv44KL44Gy44GTDQor44KP44Gf44Gq44G5LOOBguOChuOBvw0KK+OBj+OCjeOBoCzjgb7jgZXjgbLjgacNCivjgb/jgoTjgYbjgaEs44Gf44GL44GXDQor44GE44Go44GGLOOBsuOBp+OCiA0KK+OBhOOBhOOBoCzjgojjgZfjgZ/jgaANCivjgYvjgo/jga4s44GT44GG44GYDQor44GC44GE44GG44KJLOOBsuOCjeOBteOBvw0KK+OBruOBluOBjSzjgb/jgaHjgZMNCivjgbPjgZ/jgass44G+44GNDQor44Gf44Gr44GC44GELOOBv+OBlQ0KK+OBguOBiuOBjSzjga/jgovjgogNCivjgYrjgY0s44KG44GZ44GRDQor44GC44GK44GNLOOBsuOCjeOBguOBjQ0KK+OBguOBiuOChOOBjizjgYrjgZXjgoANCivjgYLjgYvjgavjgZcs44G/44Gk44Go44GXDQor44GC44GV44GKLOOBn+OBi+OChuOBjQ0KK+OBguOBleOBj+OCiSzjgYLjgZrjgZUNCivjgYLjgZfjgZbjgo8s44Go44GX44G/DQor44GC44Gf44GPLOOBvuOBleOBsuOBpw0KK+OBguOBoOOBoSzjgZfjgoXjgbLjgocNCivjgYTjgajjgYYs44Gf44GL44GIDQor44GX44G+44KC44GoLOOBguOBleOBkw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpPjgZMNCivjgZfjga7jga/jgoks44GN44GP44GTDQor44GK44GL44GuLOOBvuOChuOBvw0KK+OBiuOBi+OCguOBqCzjgb7jgYQNCivjgbLjgonjgYvjgo8s44Go44GX44GKDQor44GZ44GM44Gs44G+LOOBpuOCi+OBguOBjQ0KK+OBguOBquOBluOCjyzjgYLjgoTjgb8NCivjgYLjgonjgYQs44Gg44GE44GZ44GRDQor44GC44KJ44GELOOBmOOCheOBq+OBoQ0KK+OBguOCieOBi+OCjyzjgY3jgZXjgY8NCivjgYLjgonjgYvjga0s44GL44Ga44KG44GNDQor44GC44KJ44GNLOOBkeOCk+OBnw0KK+OBguOCk+OBqeOBhizjgarjgYrjgbLjgo0NCivjgYTjgYbjgaEs44G+44GV44Gy44GTDQor44GE44GR44GgLOOBi+OBiA0KK+OBhOOBkeOChCzjgYvjgZrjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GE44GX44GL44KPLOOChuOBhuOBkw0KK+OBhOOBl+OBi+OCjyzjgobjgooNCivjgYTjgZfjgYvjgo8s44GC44Go44KADQor44GE44GX44GM44GNLOOBvuOBleOCiw0KK+OBhOOBl+OBkOOCjSzjgYvjgaTjgb8NCivjgYTjgZfjga/jgoks44Gy44Gn44GTDQor44GE44Gd44KA44KJLOOBsuOCjeOBlw0KK+OBhOOBn+OBjOOBjSzjgojjgZTjgo0NCivjgYTjgYTjgaAs44Go44KC44G/44GhDQor44GE44Gh44GL44KPLOOBv+OBruOCiw0KK+OBhOOBoeOBi+OCjyzjgajjgZfjgYvjgZoNCivjgYTjgacs44GN44KT44KEDQor44GE44Go44GGLOOChuOBv+OBkw0KK+OBhOOBrOOBhCzjgYLjgY3jgZMNCivjgYTjga7jgYbjgYgs44GX44GS44Gu44KKDQor44GE44G+44Gr44GXLOOBsuOCjeOBsuOBlQ0KK+OBhOOBvuOBr+OChOOBlyzjgb7jgZPjgagNCivjgYTjgo/jgZXjgY0s44KE44GZ44Gy44KNDQor44GE44KP44GV44GNLOOBvuOBleOBjQ0KK+OBhOOCj+OCguOBqCzjgbLjgo3jgZcNCivjgYbjgYjjga4s44G+44GV44G/DQor44GG44GI44GuLOOBsuOCjeOBlw0KK+OBhuOBoeOBhOOBkSzjgZPjgYbjgYTjgaENCivjgYbjgaHjgoTjgb4s44Gy44KN44GXDQor44GG44KB44GgLOOBi+OBiuOCiw0KK+OBhuOCgeOCgOOCiSzjgb7jgZXjgY0NCivjgYbjgoHjgoLjgags44GP44G/44GTDQor44GG44KL44GX44Gw44KJLOOBjeOCiOOBvw0KK+OBiOOBkOOBvizjgZfjgo0NCivjgYjjgoks44Gd44KIDQor44GK44GG44GV44GLLOOCiOOBl+OBqOOBlw0KK+OBiuOBi+OCjyzjgYTjgZ/jgosNCivjgYrjgZXjgo8s44Gy44KN44G144G/DQor44GK44GX44G+LOOBvuOBjeOBqA0KK+OBiuOBl+OBvizjga7jgbbjgbLjgo0NCivjgYrjgZnjgYws44KA44Gt44Gf44GLDQor44GK44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBiuOBpCzjgb7jgZXjgaTjgZANCivjgYrjgaTjgYss44G+44KG44G/DQor44GK44GtLOOBkeOBhOOBhOOBoQ0KK+OBiuOBrizjgYjjgYTjgZgNCivjgYrjga/jgZcs44GL44Ga44Gu44KKDQor44GK44Gv44GXLOOCiOOBl+OBguOBjQ0KK+OBiuOBsOOChOOBlyzjgojjgZfjgZ/jgYsNCivjgYrjgbLjgofjgZcs44GX44KF44GYDQor44GK44GL44KC44GoLOOBleOCiA0KK+OBiuOBjOOBleOCj+OCiSzjgaHjgbvjgZMNCivjgYrjgYzjgo8s44KI44GX44Gy44GTDQor44GK44GP44Gf44GrLOOBiOOCig0KK+OBiuOBj+OCgOOCiSzjgarjgYrjgoQNCivjgYrjgZDjgoks44G+44GV44Gf44GLDQor44GE44GE44GL44KPLOOBvuOBleOBv+OBpA0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgZMNCivjgYrjgZbjgo8s44KI44GX44Gf44GLDQor44GK44GW44KPLOOBvuOBquOBtg0KK+OBiuOBrizjgZ/jgaTjgbLjgZMNCivjgYvjgY3jgoLjgags44Gy44Gn44GNDQor44GL44GN44KC44GoLOOBvuOBleOBteOBvw0KK+OBi+OBkuOChOOBvizjgZ/jgaDjgbLjgZUNCivjgYTjgZfjgYvjgo8s44G+44GV44KG44GNDQor44GL44Gd44KKLOOBguOBjeOCiQ0KK+OBi+OBpOOBvyzjgZHjgpPjgYTjgaENCivjgYvjgajjgYYs44GR44KT44GUDQor44GL44Go44GGLOOBl+OCk+OBmA0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgYvjgajjgYYs44Gf44Gg44KG44GNDQor44GL44Go44GGLOOCiOOBl+OBkw0KK+OBkeOBmuOBiyzjgbLjgafjga7jgooNCivjgYvjganjgo/jgY0s44GUDQor44GL44Gt44GTLOOChuOBhuOBkw0KK+OBi+OBrizjgbLjgo3jgZMNCivjgYvjgb/jgoTjgb4s44GR44KT44GE44Gh44KNDQor44GL44KP44GX44G+LOOBleOBqOOBlw0KK+OBi+OCj+OBmyzjgZ/jgYvjga7jgooNCivjgYvjgo/jga4s44Gy44Gn44Gy44GTDQor44GL44KP44KC44GoLOOChOOBmeOBruOCig0KK+OBi+OCj+OCguOBqCzjgozjgYTjgZMNCivjgYvjgo/jgZss44Gy44KN44GXDQor44GL44KT44GgLOOBqOOCguOBvw0KK+OBjeOBj+OBoSzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44KE44GZ44Gy44GoDQor44GN44GP44GhLOOBquOBiuOBjQ0KK+OBjeOBn+OBguOCieOBlyzjgarjgYrjgZMNCivjgY3jgZ/jgYrjgYss44Gu44KK44GTDQor44GN44Gf44GY44G+LOOBl+OBkuOBruOCig0KK+OBjeOBn+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgY3jgZ/jgoDjgoks44GR44GE44GYDQor44GN44Gm44KJLOOBguOBjeOCiQ0KK+OBjeOBruOBl+OBnyzjgb/jgaTjgZfjgo0NCivjgY3jgoDjgoks44GC44GN44Gy44KNDQor44GN44KK44GGLOOBruOCiuOBkw0KK+OBj+OBleOBi+OBuSzjgbLjgo3jgYvjgZoNCivjgY/jgbzjgZ8s44Gy44KN44KG44GNDQor44GP44G+44GM44GELOOBleOBqOOCiw0KK+OBj+OBvuOBrizjgYvjgZrjgY0NCivjgY/jgorjga/jgoks44G+44GV44Gf44GLDQor44GP44KL44GX44G+LOOBl+OCkw0KK+OBquOBi+OBjOOCjyzjgarjgYrjgY0NCivjgZPjgYTjgacs44Gy44Gn44Go44GXDQor44GT44GuLOOBsuOBleOChuOBjQ0KK+OBk+OCguOBqCzjgYLjgY3jgZMNCivjgZPjgYws44Gu44G244GKDQor44GT44GY44G+LOOBvuOBhOOBkw0KK+OBk+OBq+OBlyzjgb/jgobjgY0NCivjgZPjgbDjgoTjgZcs44GC44GN44Gy44KNDQor44GT44G+44GkLOOBn+OBkeOBvw0KK+OBk+OBv+OChCzjgYLjgaTjgZcNCivjgZPjgpPjgaks44GV44Go44GXDQor44GT44KT44GpLOOBmOOCheOCk+OBkw0KK+OBlOOBqCzjgZ/jgYvjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44GV44GE44Go44GGLOOBvuOBiOOBkw0KK+OBleOBhOOBqOOBhizjgZPjgZnjgZENCivjgZXjgYvjgoLjgags44GR44KT44GY44KNDQor44GV44GP44G+LOOBleOCig0KK+OBl+OBv+OBmizjgb7jgZXjgagNCivjgZXjgaDjgaHjgYss44GC44GN44KI44GXDQor44GV44GoLOOBoeOBiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44G+44GV44GXDQor44GV44Go44GGLOOChuOBhuOBkw0KK+OBleOBqOOBhizjgY/jgavjga/jgosNCivjgZXjgo/jgaAs44Gf44GE44GYDQor44GE44Gd44KPLOOBi+OCiOOBkw0KK+OBl+OCguOBmOOChyzjgZvjgYTjgYYNCivjgZfjgoUs44GR44GE44GE44GhDQor44GX44GK44GL44KPLOOBl+OCk+OChA0KK+OBl+OBiuOBluOCjyzjgZXjgajjgZcNCivjgZfjgYvjgYbjgaEs44Gk44Go44KADQor44GX44Ga44KKLOOBoOOBhOOBmeOBkQ0KK+OBl+OBrizjgZ/jgaTjgoQNCivjgZfjga7jgZbjgY0s44GT44GG44GYDQor44GX44Gu44GgLOOBsuOBp+OBjQ0KK+OBl+OBruOBoCzjgZ/jgZHjgYoNCivjgZfjgbDjgZbjgY0s44Go44GX44GL44GaDQor44GX44Gw44GfLOOBquOBiuOBjQ0KK+OBl+OBvuOCgOOCiSzjgZHjgYTjgZjjgoUNCivjgZfjgb/jgZos44GV44KI44GTDQor44GX44G/44GaLOOBmOOCheOCkw0KK+OBl+OBv+OBmizjgbLjgajjgb8NCivjgZfjgb/jgZos44G/44GLDQor44Gf44GN44Gf44GrLOOBi+OBpOOChuOBjQ0KK+OBl+OCieOBrizjgZjjgoXjgpPjgZgNCivjgZnjgYjjgbLjgo0s44G+44GV44Gy44GTDQor44GZ44GM44GELOOBn+OBi+OBguOBjQ0KK+OBmeOBjOOCiOOBlyzjgb7jgZXjgoQNCivjgZnjgYzjgo/jgoks44GC44KE44GuDQor44GZ44GO44GG44KJLOOBvuOBleOBsuOBkw0KK+OBmeOBjuOBl+OBvizjgb/jgaTjgosNCivjgZnjgY7jgoLjgags44Gf44GR44GXDQor44GZ44Ga44GL44KPLOOBpuOBpOOBmA0KK+OBmeOBoCzjgZjjgoXjgpPjgZjjgo0NCivjgZnjgb/jgYvjgo8s44G+44GZ44G/DQor44GZ44G/44GuLOOChuOBjeOBkw0KK+OBm+OBjeOBkOOBoSzjgYLjgY3jgbLjgagNCivjgZ3jgYjjgZjjgb4s44GV44GK44KKDQor44Gf44GK44GLLOOBruOBvOOCiw0KK+OBn+OBi+OBjSzjgb/jgb7jgZMNCivjgZ/jgYvjgZfjgb4s44KG44GG44GYDQor44Gf44GL44GbLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44KG44Gy44GhDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OBn+OBjeOBn+OBqyzjgZHjgpMNCivjgZ/jgZHjgYbjgaEs44G/44GN44GKDQor44Gf44GR44GG44GhLOOBkeOCk+OBmA0KK+OBn+OBkeOBoCzjgZfjgZLjgbXjgb8NCivjgZ/jgZHjgaAs44Gu44KK44GC44GNDQor44Gf44GR44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBn+OBkeOCgOOCiSzjgbLjgZXjgZcNCivjgZ/jgZQs44KI44GX44GIDQor44Gf44GN44GW44KPLOOBguOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgYvjgaTjgYLjgY0NCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44Gq44GLLOOBl+OBkuOBvw0KK+OBhOOCj+OBrizjgoTjgZnjgarjgooNCivjgZ/jgarjgYss44Gf44Gg44GXDQor44Gf44Gr44GILOOBjeOCh+OBkw0KK+OBn+OBq+OBkOOBoSzjgZfjgpPjgYTjgaENCivjgZ/jgavjgZDjgaEs44GN44KI44Gf44GLDQor44Gf44Gr44G+44GkLOOBi+OBpOOChA0KK+OBn+OBsOOBnyzjgZ/jgaTjgoQNCivjgZ/jgb7jgY0s44GI44GE44GE44GhDQor44GE44Gb44KC44GoLOOBquOBqg0KK+OBn+OBv+OChCzjgbLjgo3jgbbjgb8NCivjgaHjgoPjgoLjgags44GR44KT44KPDQor44Gh44KTLOOBn+OBoOOChuOBjQ0KK+OBpOOBi+OCguOBqCzjgZHjgYTjgYTjgaENCivjgaTjgaHjga/jgZcs44GE44GP44Gy44GTDQor44Gm44KJ44GV44KPLOOBquOBiuOBsuOBlQ0KK+OBqOOBmOOChyzjgb7jgZXjgZMNCivjgbXjgY/jgZfjgb4s44Gh44GL44GTDQor44Go44GwLOOCiOOBhuOBkw0KK+OBqOOBv+OCiOOBlyzjgorjgofjgZnjgZENCivjgajjgoDjgo0s44GR44KT44GYDQor44Go44KI44GX44G+LOOBi+OBmuOBl+OBkg0KK+OBqOOCiuOChOOBvizjgbLjgo3jgZcNCivjgarjgYTjgajjgYYs44GV44Gg44KI44GXDQor44GE44GnLOOBi+OBmuOBiA0KK+OBr+OBnyzjgZjjgofjgZgNCivjgarjgYvjgYzjgY0s44Gy44KN44GXDQor44Gq44GL44GM44KPLOOBv+OCj+OBkw0KK+OBquOBi+OBluOCjyzjgZ/jgaTjgoQNCivjgarjgYvjgacs44GY44KHDQor44Gq44GL44Gv44KJLOOBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgbXjgZXjgZcNCivjgarjgYvjgoDjgoks44KI44Gy44Gh44KNDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBmSzjgoDjga3jgbLjgo0NCivjgavjgYTjgoDjgoks44Gf44Gk44KEDQor44Gr44GX44GK44GLLOOBv+OBoeOBkw0KK+OBq+OBl+OBi+OCjyzjgarjgYrjgZcNCivjgavjgZfjgZbjgo8s44GN44KH44GTDQor44Gr44GX44GoLOOBsuOBqOOBjQ0KK+OBq+OBl+OBrizjgarjgaTjgbLjgZMNCivjgavjgZfjga/jgoks44GY44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBquOBiuOChuOBjQ0KK+OBreOCguOBqCzjgbLjgo3jgobjgY0NCivjga7jgZDjgaEs44G/44Gh44GL44GaDQor44Gu44GQ44GhLOOBteOBleOBig0KK+OBruOBmOOCiizjgb/jgY0NCivjga7jgZjjgoos44Gf44GL44GTDQor44Gu44KA44KJLOOCiOOBl+OBkw0KK+OBr+OBo+OBnyzjgZfjgofjgZMNCivjga/jgZfjgbAs44GC44Gk44GXDQor44Gv44GX44KC44GoLOOBi+OBpOOBsuOBlQ0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44Gv44GX44KC44GoLOOBsuOCjeOBlw0KK+OBr+OBm+OBjOOCjyzjgajjgZfjgbLjgo0NCivjga/jgZ8s44Gy44Gn44GC44GNDQor44Gv44GfLOOBguOBjeOCiQ0KK+OBr+OBn+OBrizjgZfjgZLjgosNCivjga/jgoTjgZcs44KE44GZ44GTDQor44Gv44KE44GXLOOBk+OBhuOBmA0KK+OBr+OCieOBoCzjgarjgYrjgY0NCivjga/jgonjgaAs44GP44Gr44KC44KKDQor44Gw44GwLOOBleOBoeOCiA0KK+OBsOOBsCzjgYjjgb8NCivjgbLjgZDjgaEs44G+44GV44KEDQor44Gy44GQ44GhLOOCiOOBl+OBquOBig0KK+OBsuOBleOBjSzjgZ/jgYvjgbLjgo0NCivjgbLjgZjjgoos44GL44Ga44Gy44GTDQor44Gy44KJ44KE44G+LOOBguOBjeOBkw0KK+OBteOBj+OBoCzjgaHjgYvjgZMNCivjgbXjgZjjgYQs44KG44GLDQor44GZ44GM44GELOOBhOOBoeOCjeOBhg0KK+OBteOBmOOBnyzjgY3jgojjgZcNCivjgbXjgZjjgZ8s44Gf44GL44GTDQor44G144GY44GfLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBn+OBqyzjgYvjgZrjgY0NCivjgbXjgZjjgarjgb8s44KI44GX44GL44GkDQor44G144GY44GuLOOBvuOBhOOBkw0KK+OBruOBruOCgOOCiSzjgbLjgo3jgobjgY0NCivjgbXjgZss44GP44G/44GTDQor44GZ44GO44KC44GoLOOBqOOCguOBkw0KK+OBu+OBneOBi+OCjyzjgZHjgpPjgYTjgaENCivjgbvjgorjgYbjgaEs44Gy44KN44G144G/DQor44G744KK44GL44KPLOOBguOBmeOBiw0KK+OBvuOBjeOBrizjga7jgbbjgbLjgZMNCivjgb7jgY3jga4s44GN44KH44GTDQor44G+44GX44GTLOOBlOOBmA0KK+OBvuOBmeOBoCzjgYjjgooNCivjgb7jgZnjgbbjgaEs44Gf44GL44KG44GNDQor44G+44GZ44G244GhLOOBvuOChuOBvw0KK+OBvuOBpOOBhCzjgbLjgo3jgbXjgb8NCivjgb7jgaTjgZbjgo8s44GV44Go44G/DQor44Go44G/44Gq44GMLOOBi+OBmuOChA0KK+OBvuOBpOOBquOBjCzjgobjgY3jgZMNCivjgb7jgaTjgarjgYws44Gu44G244GTDQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OBvuOBpOOCgOOCiSzjgZfjgZLjgobjgY0NCivjgb7jgaTjgoLjgags44Gf44Gk44KG44GNDQor44G+44Gk44KC44GoLOOBi+OBpOOBmA0KK+OBvuOBpOOChOOBvizjgZ/jgabjgosNCivjgb7jgaTjgoTjgb4s44KI44Gy44Gh44KNDQor44G+44Gk44KE44G+LOOBn+OBpOOBig0KK+OBvuOBpOOCiOOBlyzjgarjgYrjgb8NCivjgb7jga4s44Gy44KN44GC44GNDQor44G+44KL44GK44GLLOOBhOOBj+OBkw0KK+OBv+OBi+OBvyzjga7jgorjgbLjgZMNCivjgb/jgY0s44Go44GX44Gy44GTDQor44G/44Ge44GQ44GhLOOBi+OBmuOChA0KK+OBv+OBnyzjgZ/jgYvjgZcNCivjgb/jga0s44GC44GN44Gy44KNDQor44G/44Gt44GKLOOBvuOBjeOBkw0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgYTjgY/jgZ8s44Gf44GL44GXDQor44G/44KE44GW44GNLOOCiOOBl+OBkw0KK+OBn+OBi+OBjuOCjyzjgobjgY0NCivjgb/jgojjgZcs44KE44GZ44GYDQor44KA44GL44GELOOBkeOBhOOBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgbLjgafjgbXjgb8NCivjgYTjgZfjgaAs44Go44KC44Gy44GVDQor44KA44KJ44GL44G/LOOBruOCiuOBkw0KK+OCgOOCieOBi+OBvyzjgZPjgYbjgZgNCivjgoDjgonjgoTjgb4s44Gm44Gk44KEDQor44KA44KJ44KE44G+LOOBguOBjeOBkw0KK+OCgOOCjeOBhCzjgZvjgYTjgZgNCivjgoLjgZ/jgYQs44Go44GX44KE44GZDQor44KC44Go44GNLOOCiOOBhuOBkw0KK+OCguOBqOOCgOOCiSzjgbLjgo3jgY0NCivjgoLjgoos44G+44GV44G/DQor44GL44GbLOOBv+OBruOCiw0KK+OCguOCiuOBl+OBnyzjgaHjgYLjgY0NCivjgoLjgorjgZ8s44GV44Go44KLDQor44KC44KN44Go44G/LOOBi+OBpOOBruOCig0KK+OCguOCjeOBr+OBlyzjgYLjgoQNCivjgYvjgo/jgoLjgags44Gy44Gn44GNDQor44KE44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBmOOBvizjgojjgYbjgZMNCivjgoTjgZnjgYvjgo8s44G/44Gk44Gf44GLDQor44KE44GZ44GgLOOBvuOBleOBguOBjQ0KK+OChOOBpOOBmuOBiyzjgaTjgYvjgZUNCivjgoTjgarjgY7jgZXjgo8s44GV44Go44GXDQor44KE44G+44GQ44GhLOOBi+OBmuOBn+OBiw0KK+OChOOBvuOBleOBjSzjgZPjgYbjgZgNCivjgoTjgb7jgZbjgY0s44G+44GT44GoDQor44KE44G+44GW44GNLOOBvuOBleOBn+OBiw0KK+OChOOBvuOBluOBjSzjgYvjgZrjgb7jgZUNCivjgoTjgb7jgaAs44GL44Ga44KEDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgYvjgaTjgbLjgo0NCivjgoTjgb7jgarjgYss44GC44GN44KI44GXDQor44GP44KK44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgY0NCivjgoTjgb7jgoLjgags44Gy44Gn44Gu44G2DQor44KE44G+44KC44GoLOOChuOBjeOBkw0KK+OBvuOBpOOBiizjgbLjgo3jga7jgooNCivjgojjgY4s44Gm44KL44Gy44GTDQor44KI44GT44KE44G+LOOBquOBiuOBkw0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZcNCivjgojjgZfjgYvjgo8s44G+44GV44Gy44GoDQor44KI44GX44GL44KPLOOBvuOCiuOBkw0KK+OCiOOBl+OBoCzjgobjgY0NCivjgo/jgY/jgYQs44GN44KT44KEDQor44KP44Gf44Gq44G5LOOBn+OBi+OChA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44GTDQor44KP44Gf44Gq44G5LOOBm+OBhOOBmOOCjQ0KK+OBr+OChOOBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgaAs44Gq44GK44GNDQor44KP44GL44Gw44KE44GXLOOBn+OBi+OBruOCig0KK+OBhOOCj+OCgOOCiSzjgZfjgoXjgbLjgaENCivjgo/jgZ/jgarjgbks44G+44GV44GNDQor44GP44KP44GX44G+LOOBvuOBleOBkw0KK+OBiuOBsOOBnyzjgZfjgpPjgZ/jgo3jgYYNCivjgYLjgarjgZbjgo8s44KE44GZ44GXDQor44KE44GOLOOBvuOBmeOBvw0KK+OBguOBi+OBiizjgaHjgajjgZsNCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GV44GL44KC44GoLOOCiOOBhuOBkw0KK+OBguOBiuOBjSzjgarjgYrjgbLjgacNCivjgYLjgZrjgb4s44KI44GX44GTDQor44GE44GE44GgLOOBk+OBhuOBmA0KK+OBhOOBkeOBhuOBoSzjgabjgaTjgoQNCivjgYTjgZfjgYvjgo8s44GR44KT44Gf44KN44GGDQor44GE44Gd44GM44GELOOBl+OBuw0KK+OBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgYTjgbAs44G+44Gq44G2DQor44GE44KP44KC44GoLOOBn+OBi+OBlw0KK+OBhuOBiOOBleOBiyzjga7jgbbjgoQNCivjgYbjgYjjga4s44GV44Go44GXDQor44GG44GI44Gy44KJLOOBruOCiuOBvuOBlQ0KK+OBhuOBoeOChOOBvizjga7jgbzjgosNCivjgYbjgoHjgarjgYQs44GZ44GQ44KLDQor44GI44KA44KJLOOBleOBqOOBvw0KK+OBiuOBjeOBnyzjgbLjgYvjgosNCivjgYrjgY/jgbws44GT44GZ44GRDQor44GK44Gf44GrLOOBqOOCguOBi+OBmg0KK+OBiuOBpCzjgarjgaTjgZMNCivjgYrjgaTjgYss44Gy44Gn44Gu44G2DQor44GK44GL44GX44KNLOOBl+OBkuOBguOBjQ0KK+OBiuOBoCzjgZPjgYbjgYTjgaENCivjgYrjga4s44GI44GqDQor44GL44Go44GGLOOCgeOBsOOBiA0KK+OBi+OBreOBsuOBlSzjgabjgaTjgYoNCivjgYvjgb/jgoQs44G+44GT44GoDQor44GL44KP44GELOOBn+OBoOOBsuOCjQ0KK+OBi+OCj+OBiuOBiyzjgYLjgZrjgZUNCivjgY3jgZ/jga4s44GX44KT44GYDQor44GN44G244GXLOOBn+OBkeOBsuOCjQ0KK+OBjeOCgOOCiSzjgb7jgoLjgosNCivjgY3jgoDjgoks44GR44KT44GUDQor44GP44GV44GLLOOBkeOCk+OBmA0KK+OBj+OBsCzjgZnjgZnjgoANCivjgY/jgbzjgZ8s44Gf44GL44Gy44KNDQor44GP44KN44GE44KPLOOBmOOCheOBq+OBoQ0KK+OBj+OCj+OBsOOCiSzjgbLjgo3jgZcNCivjgZPjgYTjgZEs44GC44KEDQor44GT44GE44Gf44Gw44GXLOOBsuOCjeOBkw0KK+OBk+OBoCzjgojjgZfjgb8NCivjgZPjgaAs44GX44KNDQor44GT44GX44KA44KJLOOBguOBpOOBlw0KK+OBk+OChOOBquOBjizjgbLjgo3jgb8NCivjga/jgajjgoos44KI44GX44KG44GNDQor44GV44GL44GG44GILOOBquOBiuOBkw0KK+OBguOBuSzjgYrjgZXjgoANCivjgZXjgajjgYYs44Gf44GP44KI44GXDQor44GV44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBqOOBhizjgZjjgoXjgavjgaENCivjgZfjgb7jgaAs44Gk44G4DQor44GE44G+44GELOOBvuOBleOBn+OBiw0KK+OBmeOBjOOBrOOBvizjgb7jgZXjgZMNCivjgZvjgY0s44GV44Go44G/DQor44Gb44GuLOOBn+OBi+OBlw0KK+OBguOBuSzjgZfjgo0NCivjgZ/jgYvjgZnjgYws44GX44KT44GYDQor44Gf44GL44GZ44GOLOOBiOOBhOOBmA0KK+OBn+OBi+OBr+OBlyzjgZnjgb/jgYoNCivjgZ/jgYvjga/jgZcs44Gk44GL44GVDQor44Gf44GL44Gv44GXLOOBsuOBp+OBig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgZ/jgZENCivjgZ/jgYvjga/jgZcs44GC44Gk44GXDQor44Gf44GN44KC44GoLOOBsuOBleOBkw0KK+OBn+OBj+OBvCzjgobjgYbjgZMNCivjgZ/jgZHjgYbjgaEs44GV44KPDQor44Gf44GR44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgoTjgZnjgb/jgaQNCivjgZ/jgarjgYss44G+44KG44G/DQor44Gf44Gw44GfLOOCiOOBl+OBig0KK+OBn+OBv+OChCzjgorjgYgNCivjgZ/jgoDjgoks44GL44Gk44GC44GNDQor44Gh44KF44G+LOOBoeOCiA0KK+OBu+OCk+OBlCzjgYLjgY3jgbLjgo0NCivjgarjgYvjgYos44Gf44GL44KE44GZDQor44Gq44GL44GM44KPLOOBvuOBleOBr+OCiw0KK+OBquOBi+OBnuOBrizjgb7jgobjgb8NCivjgarjgYvjga4s44Gu44G244GTDQor44Gr44Gj44GfLOOBqOOCguOBvw0KK+OBq+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga7jgZgs44GC44GN44Gy44GoDQor44Gv44GW44GuLOOBk+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgbLjgZXjgb8NCivjga/jgZfjgoLjgags44KG44GG44GfDQor44Gv44KE44GXLOOCiOOBl+OChuOBjQ0KK+OBr+OChOOBlyzjgajjgoLjgZMNCivjga/jgonjgZDjgaEs44KG44GN44Gy44GTDQor44Gv44KL44GQ44GhLOOCguOBqOOBhOOBoQ0KK+OBsuOCieOBpyzjgaHjgZrjgosNCivjgbLjgonjga4s44GL44Gk44KG44GNDQor44Gy44KJ44KE44G+LOOBn+OBkeOBlw0KK+OBteOBi+OBluOCjyzjgozjgYTjgZMNCivjgbXjgY/jgb7jgZks44Gy44KN44Gf44GLDQor44G144GP44KC44KKLOOChuOBhuOBkw0KK+OBteOBmOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgbvjgZfjga4s44GT44GG44GE44GhDQor44G744Gd44GuLOOBsuOBp+OBruOCig0KK+OBvuOBpOOBiuOBiyzjgb/jgaTjgbLjgo0NCivjgb7jgaTjgoDjgoks44Gv44GqDQor44G/44Ga44GL44G/LOOCiuOCh+OBsuOBoQ0KK+OBv+OBpOOBhCzjgbLjgo3jgYLjgY0NCivjgb/jga7jgYvjgb8s44Gf44GL44GXDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgobjgYbjgZMNCivjgoDjgonjgYvjgb8s44Gh44GK44KKDQor44KE44GfLOOBqOOBkw0KK+OChOOBquOBjuOBnyzjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44Go44GX44GKDQor44KE44G+44GX44GfLOOBhOOBleOCgA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgZ/jgYsNCivjgojjgZfjgZ/jgZEs44KG44GNDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBsuOBkOOBoSzjgYvjgogNCivjga/jgZfjgoLjgags44G+44GV44KLDQor44KP44Gf44Gq44G5LOOBl+OBkuOCiw0KK+OBguOBjeOBsCzjga7jgorjgZMNCivjgYLjgY3jgoLjgags44GC44GN44Gy44GoDQor44GC44G+44KELOOCiOOBl+OBquOCig0KK+OBguOCk+OBqeOBhizjgarjgb/jgZMNCivjgYLjgpPjgZbjgo8s44Gm44Gk44KNDQor44GC44GV44Gv44GfLOOBn+OBhOOBmeOBkQ0KK+OBsOOBsCzjgajjgZfjgobjgY0NCivjgbnjgaPjgZfjgocs44Gf44Gk44GXDQor44Gh44GL44KC44GoLOOBjeOCh+OBsuOChw0KK+OBoeOChyzjgZHjgYTjgZMNCivjgbXjgZjjgbLjgoks44Gq44GK44GTDQor44G144GY44GELOOBv+OBruOCiw0KK+OBteOBmOOBn+OBqyzjgZPjgYbjgZgNCivjgbXjgYvjgaAs44G/44Gh44GKDQor44G144KL44Gg44GmLOOChuOBsuOBoeOCjQ0KK+OBteOCi+OChOOBvizjgbLjgafjga7jgooNCivjgZTjgaAs44GI44KKDQor44GT44GE44GRLOOBn+OBkeOBlw0KK+OBr+OBi+OBvuOBoCzjgYLjgaTjgZcNCivjga/jgZvjgYzjgo8s44KG44GNDQor44Gv44GX44KC44GoLOOBn+OBkeOBsuOBkw0KK+OBr+OBo+OBnyzjgb/jgaTjgogNCivjga/jgaPjgajjgoos44G+44GV44KLDQor44Gv44KE44GL44KPLOOBpuOBpOOCjQ0KK+OBr+OChOOBi+OCjyzjga7jgbbjgbLjgo0NCivjgbLjgazjgb4s44GL44Ga44Gy44GoDQor44Gy44KN44GNLOOBv+OBoeOBsuOBqA0KK+OBu+OCiuOBruOBhuOBoSzjgabjgovjgbLjgagNCivjgbvjgZ3jga4s44GV44GK44KKDQor44G144GY44GK44GLLOOBoOOBhOOBmeOBkQ0KK+OBteOCi+OBnyzjgb/jgo/jgZMNCivjgbXjgZXjga4s44GR44GE44GTDQor44G144GX44G/LOOCiOOBl+OBi+OBpA0KK+OBhOOBn+OBqSzjgb7jgZXjgYLjgY0NCivjgYTjgaAs44Gq44GK44GNDQor44GE44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBoCzjgY3jgojjga7jgbYNCivjgYTjgarjgoTjgb4s44KI44GX44KG44GNDQor44GE44GuLOOBk+OBng0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYoNCivjgYTjgZfjgaAs44GT44GG44GE44GhDQor44GE44GX44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBhOOBl+OCjyzjgZ/jgYvjgbLjgo0NCivjgYTjgZfjgo/jgZ/jgoos44Gy44KN44GNDQor44GE44Gf44GP44KJLOOBquOCi+OBpOOBkA0KK+OBhOOBqOOBhizjgZ/jgY/jgoQNCivjgYTjgajjgYYs44Go44KC44Gy44GnDQor44GE44KP44GELOOChuOBhuOBmA0KK+OBhOOBluOCjyzjgYLjgaTjgZMNCivjgZjjgbYs44Gy44Gn44GNDQor44GL44Gw44KE44G+LOOBquOCi+OBjQ0KK+OBi+OBhCzjgZHjgpMNCivjgYvjgY3jgazjgb4s44GK44GV44KADQor44GL44GN44GW44GNLOOBsuOBqOOBlw0KK+OBi+OBj+OBoCzjgb7jgZXjgbLjgo0NCivjgYvjgarjgYzjgo8s44GR44GEDQor44GL44KT44G5LOOBn+OBi+OBsuOCjQ0KK+OBi+OCk+OBoCzjgbLjgo3jgYvjgZoNCivjgYvjgZXjgaAs44GY44KF44Gr44GhDQor44GL44KP44GELOOCgeOBkOOBvw0KK+OBleOBleOBjSzjgojjgZfjgaTjgZANCivjgYvjgo/jgZss44KE44GZ44KI44GXDQor44GN44KC44GoLOOBv+OBpOOCiw0KK+OBjeOBn+OBr+OCiSzjgbLjgo3jgYvjgaQNCivjgY3jgZ/jgoDjgoks44Gq44G744GTDQor44GT44Gw44KE44GXLOOBn+OBi+OBsuOCjQ0KK+OBk+OBtuOBkSzjgZfjgoXjgbLjgaENCivjgZPjgYTjgZrjgb8s44Gq44Gq44GTDQor44GT44G/44KE44G+LA0KK+OBk+OCk+OBruOBi+OBmuOBsuOCjSzjgZnjgZDjgosNCivjgZPjgZfjgYvjgo8s44G+44GV44GNDQor44GT44GuLOOChuOBhuOBkw0KK+OBj+OBvCzjgZjjgoXjgpMNCivjgY/jgbzjgYvjgo8s44G+44GV44GNDQor44GP44Gp44GGLOOBl+OCheOBmeOBkQ0KK+OBj+OCiuOBr+OCiSzjgZfjgpMNCivjgY/jgo3jgY4s44Gf44GR44GKDQor44G+44Gh44GgLOOChOOBmeOBsuOBqA0KK+OBvuOBmOOBvizjgb/jgaHjgZ/jgYsNCivjgYTjgZfjgZos44Go44KC44GTDQor44G+44GL44G5LOOBhOOBj+OBiA0KK+OBvuOCi+OChOOBvizjgZXjgbsNCivjgb7jgZnjgaAs44G/44GN44GtDQor44G+44Gk44GM44GV44GNLOOBruOBtuOBig0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gy44KN44GIDQor44G+44Gk44KC44GoLOOChuOBhuOBkw0KK+OBvuOCj+OBn+OCiizjgYvjgarjgZMNCivjgb/jgaHjgoLjgags44G+44KK44GTDQor44G/44GNLOOChOOBmeOBsuOBqA0KK+OBv+OBpOOBvizjgZ/jgYvjgobjgY0NCivjgb/jgYbjgoks44GT44GG44GE44GhDQor44G/44KPLOOBvuOBleOBruOBtg0KK+OBv+OChOOCguOBqCzjgarjgaTjgY0NCivjgb/jgoTjgoLjgags44Go44KC44GLDQor44G/44KE44KC44GoLOOBi+OBpOOBhOOBoQ0KK+OBv+OChOOBnyzjgZXjgYjjgZMNCivjgoDjgonjgYvjgb8s44Gv44KL44G/DQor44Gf44Gv44KJLOOChOOBmeOBkw0KK+OBv+OBmuOBn+OBqyzjga7jgorjgobjgY0NCivjgoLjgoos44Gy44KN44KIDQor44KC44KK44GQ44GhLOOBsuOBp+OBguOBjQ0KK+OCguOCiuOBi+OCjyzjgYvjgogNCivjgoLjgorjgoLjgags44GC44GN44KJDQor44KC44KK44GfLOOBn+OBkeOBlw0KK+OCgOOCieOBi+OBvyzjgZXjgYrjgooNCivjgYLjgafjgYzjgo8s44GR44KT44GYDQor44Gq44GM44GV44GLLOOBi+OCk+OBmA0KK+OBquOBjOOBnyzjgajjgZfjgbLjgo0NCivjgarjgYzjgZ8s44GZ44G/44GTDQor44GE44GW44KPLOOBn+OBi+OBruOCig0KK+OBquOBi+OBv+OBrSzjgZHjgYTjgZQNCivjgarjgYvjgoDjgoks44G+44GT44GoDQor44Gq44GL44KA44KJLOOBi+OBpOOBsuOBlQ0KK+OBhOOCguOBqCzjgoTjgZnjga7jgbYNCivjgarjgYvjgoDjgoks44Gf44GR44Gu44G2DQor44Gq44GL44GKLOOBvuOBleOBlw0KK+OBquOBi+OChOOBvizjgajjgYrjgosNCivjgarjgYvjgZbjgo8s44Gu44KK44GTDQor44Gq44G/44GNLOOBqOOCguOBiw0KK+OBq+OBhOOBvyzjgobjgY0NCivjgavjgYTjgZzjgY0s44G+44GV44Gy44GTDQor44Gr44GX44GnLOOBsuOCjeOBlw0KK+OBq+OCjyzjgYvjgZrjgb8NCivjga7jgbks44KM44GE44GTDQor44GK44GfLOOBn+OBpOOBsuOBkw0KK+OBiuOBjOOCjyzjgYLjgYQNCivjgYrjgZDjgZks44Gy44GL44KLDQor44GK44KC44GoLOOBmOOCheOCig0KK+OBiuOBl+OBvizjgYvjgaTjga7jgbYNCivjgYrjgZ8s44GL44GK44KKDQor44GK44Gy44KDLOOBvuOCguOCiw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jga7jgooNCivjgYrjgYvjgaAs44Gf44Gk44KEDQor44GK44GPLOOBk+OBhuOBhOOBoeOCjQ0KK+OBiuOBj+OBoCzjgZ/jgZHjgZcNCivjgYrjgZfjgY/jgbws44KG44GG44GYDQor44GK44Gc44GNLOOBhuOBl+OCkw0KK+OCieOBhCzjgY3jgojjgZcNCivjgYTjgajjgYYs44Gv44KL44KI44GXDQor44GV44GE44GNLOOBguOBjeOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgYrjgooNCivjgojjgZfjgaAs44Gy44Gn44GC44GNDQor44GV44GTLOOBsuOBp+OBjQ0KK+OBleOBleOBmOOBvizjgb/jgZUNCivjgZXjgZXjgY0s44GX44GS44GC44GNDQor44GV44Go44GGLOOBvuOBleOCiOOBlw0KK+OBhOOCj+OCguOBqCzjgobjgZnjgZENCivjgZXjgajjgYYs44GX44KH44GYDQor44GV44KP44GgLOOBn+OBi+OBruOCig0KK+OBm+OBjeOBi+OCjyzjgZHjgpPjgYTjgaENCivjgZvjgY3jga0s44Gy44G/44GTDQor44GX44Gw44GfLOOCiA0KK+OBl+OBkuOBr+OCiSzjgZ/jgZHjgZcNCivjgZfjgb7jgYrjgYss44G144G/44KG44GNDQor44GX44G/44GaLOOBvuOBleOBjQ0KK+OBl+OCguOBmOOChyzjgZHjgpPjgYTjgaENCivjgZfjgoLjgoDjgoks44GL44Gk44Gy44GTDQor44GX44KA44KJLOOChuOBhuOBmA0KK+OBneOCgeOChCzjgajjgoLjgoQNCivjgZnjgYjjgojjgZcs44Gy44KN44GXDQor44GZ44Ga44GNLOOBn+OBpOOChA0KK+OBmeOBmuOBjSzjgb/jgaHjgoTjgZkNCivjgZ/jgYvjgaAs44GX44GS44G/44GkDQor44Gf44GL44Gv44GXLOOBmOOCheOCk+OChA0KK+OBn+OBi+OBmyzjgobjgY3jgZMNCivjgZ/jgZHjgaAs44Gk44GQ44Gy44GnDQor44Gf44GR44GELOOBi+OBmuOBsuOBkw0KK+OBn+OBkeOCguOBqCzjgaHjgYjjgZMNCivjgZ/jgb7jgYQs44Gy44Gn44KE44GZDQor44Gf44KA44KJLOOBhOOBmuOBvw0KK+OBn+OCgOOCiSzjgb/jgaTjgYoNCivjgYTjgZfjgYvjgo8s44Gq44GK44GNDQor44Gf44Gq44GLLOOBl+OCk+OChA0KK+OBn+OBquOBiyzjgYLjgY3jgbLjgZMNCivjgZ/jgavjgZDjgaEs44GL44Ga44Gy44KNDQor44Gf44Gr44GQ44GhLOOBvuOBleOBguOBjQ0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgavjgZDjgaEs44Gf44GL44Gy44GVDQor44GE44GX44GgLOOBguOBjeOBsuOBkw0KK+OBn+OBq+OBl+OBnyzjgZHjgpPjgYTjgaENCivjgabjgonjgavjgZcs44Gy44Gn44KG44GNDQor44Go44Gy44KD44G+LOOBquOBiuOBjQ0KK+OBqOOBv+OBnyzjgYTjgaHjgo3jgYYNCivjgajjga3jgYzjgo8s44GY44KHDQor44Go44KI44GgLOOBvuOBquOBtg0KK+OBqOOCiOOBnyzjgYLjgY3jgokNCivjgaTjgaHjgoQs44Gy44GV44KI44GXDQor44GE44GX44GL44KPLOOBr+OBmOOCgQ0KK+OBpOOCgOOCiSzjgajjgZfjgbLjgZMNCivjgaTjga7jgYvjgo8s44Gf44GL44KG44GNDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBleOBvyzjgbLjgajjgZcNCivjgo/jgZjjgb4s44GT44GG44GE44Gh44KNDQor44KP44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgZ/jgZHjga7jgooNCivjgo/jgZ/jgarjgbks44Gy44KN44Gf44GLDQor44KE44GOLOOBkeOCk+OBmA0KK+OChOOBjizjgZHjgpMNCivjgoTjgY/jgo8s44GC44Gk44GXDQor44KE44G+44GgLOOBteOBv+OBrg0KK+OChOOBvuOBoCzjgaTjgojjgZcNCivjgoTjgb7jgZDjgaEs44GN44KH44GTDQor44KE44G+44Gu44GP44GhLOOBv+OCjw0KK+OChOOBvuOBl+OBnyzjgZ/jgY8NCivjgoTjgb7jgZfjgZ8s44Gu44KK44GTDQor44KE44G+44GW44GNLOOBl+OCheOBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgZMNCivjgoTjgarjgYzjgo8s44Gq44GK44GNDQor44KE44GZ44GgLOOBqOOBl+OBguOBjQ0KK+OChOOBmeOBiCzjgojjgZfjgb8NCivjgYTjgZ3jgYzjgYQs44Gy44Go44GXDQor44KE44Gf44GM44GELOOBn+OBkeOBlw0KK+OCiOOBl+OBoCzjgorjgZMNCivjgZ/jgYvjga/jgZcs44G+44GNDQor44GK44GL44GgLOOCiOOBsuOBoQ0KK+OBguOBiuOBjSzjgoTjgojjgYQNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44G5LOOBjeOCh+OBkw0KK+OBguOBvuOBrizjgbLjgo3jgbXjgb8NCivjgYLjgorjgoLjgags44Gy44KN44GNDQor44GC44KT44Gp44GGLOOBn+OBi+OChuOBjQ0KK+OBhOOBi+OCjyzjgajjgZfjgobjgY0NCivjgYTjgZfjgYQs44G+44GV44GTDQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBmuOBiyzjgarjgYrjgobjgY0NCivjgYTjgZfjgbDjgZcs44Gy44Gn44KG44GNDQor44GE44GX44KC44GoLOOChuOBn+OBiw0KK+OBhOOBpyzjgZ/jgaTjgo0NCivjgYTjgaHjga7jgZss44Go44KI44GC44GNDQor44GE44Gq44GgLOOBqOOCguOChuOBjQ0KK+OBhOOBrOOBhCzjgZ/jgaDjga7jgbYNCivjgYTjga7jgYbjgYgs44GI44KKDQor44GE44KE44G+LOOCiuOCh+OBkw0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgY0NCivjgYTjgo/jgb4s44GX44KF44Gy44GhDQor44GE44KP44G+44GkLOOBvuOBleOCiw0KK+OBhuOBiOOBoCzjgYLjgY3jgZMNCivjgYbjgYjjga4s44GC44GN44GTDQor44GG44Gh44GgLOOBvuOBleOBig0KK+OBhuOBqSzjgZfjgoXjgZgNCivjgYbjgoHjga/jgoks44KG44GNDQor44GI44GQ44GhLOOBn+OBhOOBuOOBhA0KK+OBiOOBruOBjSzjga7jgorjgbLjgo0NCivjgYjjgoLjgags44Gq44GK44GTDQor44GI44KC44KKLOOChuOBvw0KK+OBquOBi+OBjOOCjyzjgZfjgoXjgpPjgZnjgZENCivjgYrjgZ8s44KK44KH44GZ44GRDQor44GK44GM44GfLOOBleOBqOOBkw0KK+OBiuOBjOOCjyzjgZXjgajjgZcNCivjgYrjgYzjgo8s44G+44Gq44G2DQor44GK44GP44GELOOChOOBmeOCiA0KK+OBiuOBj+OCgOOCiSzjgb7jgb/jgZMNCivjgYrjgZ/jgass44GT44GG44GYDQor44GK44Gk44Go44KCLOOBv+OBmuOBvuOBlQ0KK+OBiuOBq+OBluOCjyzjgYvjgZrjgZMNCivjgYrjga4s44GK44GV44Gq44GKDQor44GK44Gw44GqLOOBsuOCjeOBkw0KK+OBiuOBvuOBjOOCiizjgbLjgo3jgY0NCivjgYvjgY3jgZbjgo8s44Gf44GL44GKDQor44GL44GR44GyLOOBkeOCk+OBmA0KK+OBi+OBleOBr+OCiSzjgZ/jgYvjgZcNCivjgYvjgZgs44Go44G/44GV44G2DQor44GL44GY44GfLOOCiOOBl+OBkw0KK+OBi+OBmOOBnyzjgb/jgaTjgoLjgagNCivjgYvjgZjjgoTjgb4s44Gb44GE44KEDQor44GL44Go44GGLOOBquOBiuOBguOBjQ0KK+OBi+OBquOBoCzjgbLjgafjgobjgY0NCivjgYvjga3jgZMs44KE44GZ44GXDQor44GL44Gt44GTLOOBruOBtuOBn+OBiw0KK+OBhOOBn+OBrizjgozjgYTjgZMNCivjgarjgYzjgaTjgb4s44Gf44GP44GYDQor44GL44GuLOOCguOBqOOBkw0KK+OBi+OBvuOBiCzjgabjgovjgYLjgY0NCivjgYvjgo/jgYQs44KG44GN44GTDQor44GL44KP44G+44GfLOOBl+OBkuOBjQ0KK+OBi+OCk+OBrizjga7jgorjgYLjgY0NCivjgY3jgYbjgaEs44Gb44GE44GE44Gh44KN44GG44GGDQor44GN44GXLOOBvuOBleOChA0KK+OBjeOBn+OBjOOCjyzjgabjgaTjgbLjgo0NCivjgY3jga7jgZfjgZ8s44GI44KK44GTDQor44GN44KH44GM44GPLOOBvuOBqeOBiw0KK+OBj+OBvCzjgYrjgZXjgoANCivjgY/jgbzjgZ8s44Gf44GL44GKDQor44GP44G844GfLOOBn+OBi+OBig0KK+OBj+OCiuOBr+OCiSzjgb/jga7jgosNCivjgY/jgorjgoTjgb4s44KI44GX44Gu44G2DQor44GE44GX44GM44GNLOOBkeOBhA0KK+OBj+OCjeOBhCzjga7jgbbjgYvjgaQNCivjgZPjgYbjgZXjgY0s44KK44KH44GfDQor44GT44GgLOOBkeOCk+OBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgbjjgYQNCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GT44Gw44KE44GXLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgabjgaTjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44GNDQor44GV44GE44G7LOOBvuOBhOOBkw0KK+OBleOBi+OBjOOCjyzjgYTjgZrjgb8NCivjgYvjgo/jgoDjgoks44KI44GG44GTDQor44GV44GV44GK44GLLOOBqOOCguOBruOBtg0KK+OBleOBleOBjSzjgarjgorjgajjgZcNCivjgZXjgajjgYYs44G+44GT44GoDQor44GV44Go44GGLOOBqOOCguOBruOCig0KK+OBleOBquOBoCzjgZ/jgY/jgoQNCivjgZXjgovjgoTjgb4s44GX44KT44G644GEDQor44GX44GK44GkLOOCiuOBiA0KK+OBl+OBiuOBruOChCzjgZHjgYTjgZMNCivjgZfjgYrjgoTjgb4s44Go44GX44G144GVDQor44GX44GO44Gv44KJLOOBhOOBpOOCjQ0KK+OBl+OBl+OBqSzjgZPjgYbjgYTjgaENCivjgZfjga7jgZbjgY0s44GC44Gk44GXDQor44GX44Gw44GfLOOBruOBtuOBguOBjQ0KK+OBl+OBv+OBmizjgabjgaTjgoQNCivjgZfjgofjga4s44KG44GZ44GRDQor44GX44KJ44GNLOOBk+OBhuOBmA0KK+OBmeOBjuOBiuOBiyzjga7jgbbjgYLjgY0NCivjgZnjgY7jga/jgoks44Gq44KL44Gy44KNDQor44GZ44Ga44GNLOOCiOOBhuOBuOOBhA0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgZnjgb/jgoTjgb4s44KI44GG44GTDQor44Gb44Gj44GfLOOBruOBvOOCiw0KK+OBhOOBl+OCj+OBnyzjga7jgorjgYvjgZoNCivjgZvjgpPjgZTjgY8s44G+44Gq44G2DQor44Gf44GL44GK44GLLOOBiuOBleOCgA0KK+OBn+OBi+OBluOCjyzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GI44GE44GZ44GRDQor44Gf44GL44KA44KJLOOBl+OBruOBtg0KK+OBn+OBjeOBqCzjga7jgbzjgosNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBj+OBq+OBig0KK+OBhOOBqOOBhizjgYvjgZrjgbLjgagNCivjgZ/jgarjgbks44G/44Gu44KLDQor44Gf44Gr44GQ44GhLA0KK+OBoeOCg+OCj+OCk+OChOOBn+OBkeOBlyzjgZfjgpPjgYTjgaENCivjgabjgonjgZXjgYss44Gy44KN44KG44GNDQor44Go44GT44KNLOOBv+OBpOOBi+OBmg0KK+OBquOBi+OBhCzjgY3jgojjgZfjgZINCivjgarjgYvjgYos44Gy44GV44Gm44KLDQor44Gq44GM44GK44GLLOOBl+OBkuOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgZvjgYTjgZgNCivjgarjgYvjgZjjgb4s44G+44GV44GNDQor44Gq44GM44GbLOOBoOOBhOOBmOOChQ0KK+OBquOBi+OBrizjgb/jga7jgosNCivjgarjgYvjga4s44KG44G/DQor44Gq44GM44GuLOOBn+OBi+OBl+OBkg0KK+OBhOOBkeOBoCzjgYLjgoTjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44KG44GNDQor44Gq44GL44KE44G+LOOBsuOBp+OBjQ0KK+OBq+OBiizjgYvjgZoNCivjgavjgZfjgYos44GC44GN44GTDQor44Gr44GX44GL44GELOOBmOOCheOCk+OBmA0KK+OBq+OBl+OBluOBiyzjgZHjgpPjgZgNCivjgavjgZfjgaAs44G+44Gq44G2DQor44Gr44GX44GgLOOCiOOBl+OBr+OCiw0KK+OBhOOBhOOBmOOBvizjgbLjgo3jgY0NCivjgavjgZfjga/jgoks44GY44KF44Gr44GhDQor44Gr44GX44KA44KJLOOBn+OBi+OBlw0KK+OBreOCjeOCgSzjgZfjgpPjgZgNCivjga7jgZjjgb4s44G/44G7DQor44Gu44Gq44GLLOOCguOBqOOBguOBjQ0KK+OBr+OBl+OBsCzjgZnjgbLjgaENCivjga/jgaHjgoQs44Gf44Gk44KEDQor44Gv44Gj44Go44KKLOOBm+OBhOOBnw0KK+OBhOOBhOOBoCzjgZjjgofjgZgNCivjga/jgbYs44KG44GG44GTDQor44Gv44KE44GL44KPLOOBguOBjeOBkw0KK+OBr+OChOOBlyzjgb7jgorjgZMNCivjga/jgoTjgZfjgb4s44GL44Gk44Go44GXDQor44Gv44KJLOOBmOOCheOBq+OBoQ0KK+OBsuOBjOOBl+OBoCzjga7jgorjgZMNCivjgZvjgY3jgZDjgaEs44Go44GX44G/44GkDQor44Gy44KJ44GELOOCiOOBl+OBkw0KK+OBsuOCjeOBmeOBiCzjgaDjgYTjgZnjgZENCivjgbLjgo3jga/jgZ8s44Gf44GL44GXDQor44G144GP44GX44G+LOOBvuOBleOBjQ0KK+OBteOBmOOBiizjgYvjgZrjgobjgY0NCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44G144GY44G+44GNLOOBsuOCjeOBlw0KK+OBteOBmOOCj+OCiSzjgZXjga3jgbLjgo0NCivjgbXjgovjgYTjgaEs44Gg44GE44GZ44GRDQor44G744GV44GLLOOBruOCiuOBi+OBmg0KK+OBu+OBl+OBrizjgZ/jgYvjgbLjgo0NCivjgbvjgoos44GTDQor44G744KK44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBu+OCk+OBvizjgb7jgZPjgagNCivjgb7jgYjjgYvjgo8s44Gm44Gk44KNDQor44G+44GI44GgLOOBquOBiuOBkw0KK+OBvuOBiOOBoCzjgbLjgafjgZcNCivjgb7jgYjjgaAs44Gf44GP44G/DQor44G+44GV44GELOOBvuOBleOCiw0KK+OBvuOBpOOBhCzjgY3jgofjgbLjgaENCivjgb7jgaTjgZbjgo8s44GL44GK44KKDQor44G+44Gk44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBqOOCgizjgZ/jgY/jgoQNCivjgb7jgaTjgarjgYws44G/44Gk44GKDQor44G+44Gk44KC44GoLOOBpuOCk+OBuuOBhA0KK+OBv+OBmuOBkOOBoSzjgobjgYbjgYTjgaHjgo3jgYYNCivjgb/jgoTjgoLjgags44KG44GN44Gy44GTDQor44G/44KE44KC44GoLOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgobjgZnjgZENCivjgoDjgonjgYvjgb8s44Gf44GR44GXDQor44KA44KJ44Gq44GLLOOBk+OBhuOBmA0KK+OCguOBoeOBmuOBjSzjgobjgY3jgZMNCivjgoLjgajjgY/jgoks44KG44GG44GYDQor44KC44KKLOOChuOBjeOBruOBtg0KK+OCguOCiuOChCzjgZ/jgZHjga/jgosNCivjgoTjgZnjgYQs44Gf44GL44Gy44GoDQor44KE44GZ44GgLOOBv+OBjeOBig0KK+OChOOBmeOBoCzjgZ/jgaTjgoQNCivjgoTjgZ8s44GP44G/DQor44KE44Gf44GNLOOBsuOBp+OBruOBtg0KK+OChOOBoSzjgaHjgYvjgokNCivjgoTjga4s44Gf44GL44KG44GNDQor44KE44G+44GE44Ga44G/LOOBvuOBleOBquOBig0KK+OChOOBvuOBiuOBiyzjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44KI44GZ44GRDQor44KE44G+44GQ44GhLOOBqOOCguOBn+OBiw0KK+OChOOBvuOBluOBjSzjgb7jgobjgb8NCivjgoTjgb7jgZbjgY0s44KE44GZ44GYDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBpw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgojjgZPjgZzjgY0s44GV44Go44GXDQor44KI44GX44GgLOOBn+OBj+OChA0KK+OCiOOBl+OBrizjgajjgoLjgZMNCivjgojjgZfjgb8s44GP44Gr44GL44GaDQor44KI44GgLOOBu+OBvuOCjA0KK+OCiOOBoCzjgZ/jgYTjgZLjgpMNCivjgoks44G/44GN44GTDQor44KN44GYLOOBjeOCiOOBsuOBqA0KK+OCj+OBoCzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44Gu44G244GKDQor44KP44Gf44Gq44G5LOOBteOBv+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgbks44KI44GX44GC44GNDQor44GL44GuLOOBvuOBleOBjQ0KK+OBq+OBo+OBnyzjgoTjgZnjgbLjgo0NCivjgYLjgYrjgY0s44KI44GX44Gu44KKDQor44GC44GK44GNLOOBguOBjeOBig0KK+OBguOBiuOChOOBvizjgarjgaoNCivjgYLjgYrjgoTjgb4s44G+44GE44GTDQor44GC44GN44GwLOOBkeOCkw0KK+OBguOBleOBoCzjgZ/jgYTjgaENCivjgYLjgaDjgaEs44Gq44GK44GoDQor44GC44Gg44GhLOOChOOBmeOBig0KK+OBguOBqOOBuSzjgZ/jgYvjgZcNCivjgYLjgbks44Gf44GL44Gy44KNDQor44GC44G5LOOBsuOCjeOBguOBjQ0KK+OBguOBuSzjgajjgoLjgY0NCivjgYLjgb7jga4s44G144G/44GC44GNDQor44GC44G+44GuLOOBvuOBvw0KK+OBguOCieOBi+OCjyzjgobjgY3jgYoNCivjgYLjgorjgZ8s44Gy44Gn44GNDQor44GC44KK44Go44KCLOOBi+OBmuOBig0KK+OBguOCk+OBluOBhCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44Gf44GL44Go44GXDQor44GC44KT44Gp44GGLOOBiuOBleOCgA0KK+OBhOOBjOOCieOBlyzjgZfjgoXjgYYNCivjgYTjgZHjgaAs44Gv44Gq44GTDQor44Gf44GL44Gv44GXLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBsOOBlyzjgazjgYQNCivjgYTjgZfjgoDjgoks44GR44GE44GE44GhDQor44GE44GX44KC44GoLOOBvuOCiuOBkw0KK+OBhOOBoeOBhCzjgajjgoLjgb8NCivjgYTjgaHjgYvjgo8s44KG44GG44GTDQor44GE44Gh44GL44KPLOOBr+OCi+OBqA0KK+OBhOOBoeOBruOBmyzjgYvjgaTjgbLjgZMNCivjgYTjgajjgYYs44Gu44G244GKDQor44GE44Go44GGLOOBvuOChuOBvw0KK+OBhOOBqOOBhizjgb7jgY0NCivjgYTjgarjgYrjgYss44GY44KF44Gr44Gh44KNDQor44GE44Gq44GwLOOCiuOCh+OBhuOBmeOBkQ0KK+OBhOOBrOOBmuOBiyzjgojjgYbjgbjjgYQNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBhOOBvuOBhCzjgojjgZgNCivjgYTjgb7jgZfjgoXjgY8s44KK44GI44GTDQor44GE44KP44GELOOBv+OBiuOBkw0KK+OBhOOCj+OBl+OBvizjgYTjgZrjgb8NCivjgYbjgYjjgZ7jga4s44GC44Gk44GKDQor44GG44GI44GgLOOBn+OBoOOBlw0KK+OBhuOBiOOBr+OCiSzjgobjgb/jgZMNCivjgYbjgYjjga/jgoks44G+44KK44GTDQor44GL44GN44GfLOOBkeOBhOOBkw0KK+OBhuOBleOBvyzjgbLjgo3jgagNCivjgYbjgaHjgaAs44G+44GN44GTDQor44GG44Gh44GgLOOBjeOCiOOBlw0KK+OBhuOBoeOBvOOCiizjgYLjgY3jgbLjgo0NCivjgYbjgoHjgYzjgYQs44G+44GV44KLDQor44GG44KB44GkLOOCiuOBlQ0KK+OBhuOCgeOBrizjgb7jgZXjgbXjgb8NCivjgYbjgonjgYvjgo8s44Gy44KN44Gf44GRDQor44GG44KJ44G5LOOBvuOChuOBvw0KK+OBiOOBkOOBoSzjgbLjgafjgYrjgb8NCivjgYjjgZrjgb8s44GX44KF44KT44GZ44GRDQor44GI44Gu44KC44GoLOOBn+OBkeOBlw0KK+OBhOOBvuOBq+OBlyzjgorjgocNCivjgYjjga7jgoLjgags44Go44KC44Gy44GTDQor44GI44KT44GpLOOBl+OCheOBhOOBoQ0KK+OBiuOBhOOBi+OCjyzjgoHjgZDjgb8NCivjgYrjgYTjgYvjgo8s44Gf44GL44Gy44KNDQor44GK44GyLOOBn+OBi+OChuOBjQ0KK+OBiuOBsuOBlyzjgoLjgajjgZMNCivjgYrjgZ8s44GR44KTDQor44GK44Gk44GLLOOBsuOBmOOCig0KK+OBiuOBq+OBlyzjgbLjgo3jgY0NCivjgYrjgavjgZcs44GC44KE44GTDQor44GK44GL44GgLOOBv+OBleOBqA0KK+OBiuOBi+OBoCzjgYvjgZrjgYgNCivjgYrjgYvjga4s44GC44GN44Gy44GTDQor44GK44GL44G5LOOBn+OBkeOBlw0KK+OBiuOBi+OBuSzjgobjgY0NCivjgYrjgYvjgoDjgoks44GX44GS44Gy44GVDQor44GK44GL44KC44GoLOOBn+OBoOOBlw0KK+OBiuOBi+OCguOBqCzjgYTjgY/jgogNCivjgYrjgYzjgo8s44Gf44KN44GGDQor44GK44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBiuOBj+OBoCzjgbXjgb/jgZMNCivjgYrjgY/jgaAs44KI44GX44GNDQor44GK44GW44GNLOOBvuOBleOBjQ0KK+OBiuOBrizjgobjgY3jgbXjgb8NCivjgYrjgoTjgb4s44KI44GYDQor44GL44GE44Ga44GLLOOBvuOBleOBr+OCiw0KK+OBi+OBjOOBvyzjgbXjgb/jgYvjgZoNCivjgYvjgY3jgZ8s44GX44KT44GZ44GRDQor44GL44GPLOOBi+OBpOOBguOBjQ0KK+OBi+OBleOBhCzjgb/jgaHjgYgNCivjgYvjgZjjgYQs44KE44GZ44GKDQor44GL44GY44GfLOOBvuOBleOCiw0KK+OBi+OBn+OBiCzjgobjgY0NCivjgYvjgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44GL44GkLOOBsuOBp+OBguOBjQ0KK+OBi+OBqOOBhizjgorjgofjgYYNCivjgYvjgajjgYYs44G/44GNDQor44GL44G/44GY44KHLOOBv+OChuOBjQ0KK+OBi+OBreOBkyzjgZ/jgYjjgZMNCivjgYvjgb7jgaAs44Go44GK44KLDQor44GL44G/44GY44KHLOOBkeOCkw0KK+OBi+OBv+OBsuOBlSzjgabjgaTjgoQNCivjgYvjgb/jgoLjgags44G+44G/44GTDQor44GL44G/44KELOOBquOBiuOBkw0KK+OBi+OBv+OChOOBvizjgZ/jgYvjgZcNCivjgYvjgo/jgYvjgb8s44Go44GX44G144G/DQor44GL44KP44GV44GNLOOBiOOCiuOBiw0KK+OBi+OCj+OBmyzjgYvjgYrjgosNCivjgYvjgo/jga/jgZ8s44GT44GG44GYDQor44GL44KP44Gv44KJLOOChuOBjeOBruOCig0KK+OBi+OCj+OCgOOCiSzjgYLjgYvjga0NCivjgYvjgo/jgoLjgags44Gq44GK44KEDQor44GL44KP44KC44GoLOOChuOBhuOBmOOCkw0KK+OBi+OCj+OCguOBqCzjgb/jgaTjgZMNCivjgYvjgpPjgaAs44Go44GK44KLDQor44GN44GP44GhLOOBn+OBjw0KK+OBjeOBn+OBjOOCjyzjgaDjgYTjgZnjgZENCivjgY3jgZ/jgarjgYws44GC44Gk44GTDQor44GN44Gf44GuLOOBj+OBq+OBsuOBqA0KK+OBjeOBn+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgY3jgZ/jgoLjgags44KI44GX44Gm44KLDQor44GN44Gu44GILOOChuOBhuOBmA0KK+OBjeOBtuOBmyzjgYvjgYrjgooNCivjgY3jgoDjgoks44GL44Ga44GKDQor44GN44KA44KJLOOBvuOBjQ0KK+OBjeOCguOBqCzjgb7jgZnjgb8NCivjgY3jgoLjgags44Gy44Go44GXDQor44GO44KH44GG44G2LOOBsuOCjeOBi+OBmg0KK+OBj+OBqyzjgZ/jgZHjgaHjgYsNCivjgY/jgavjgb7jgZUs44GY44KF44KT44GTDQor44GP44G+44GV44GLLOOBi+OBmuOBsuOCjQ0KK+OBj+OCieOBl+OBkizjgZHjgYTjgZnjgZENCivjgY/jgorjgZ8s44Gy44KN44GXDQor44GP44KK44Gv44KJLOOBv+OBoeOBig0KK+OBk+OBhOOBkSzjgZ/jgZHjgZcNCivjgZPjgYTjgZHjgaAs44GI44KKDQor44GT44GE44Ga44G/LOOBvuOBleOBtuOBvw0KK+OBk+OBhOOBrOOBvizjgZXjgYvjgYgNCivjgZPjgaTjgYss44GX44KT44GUDQor44GT44GMLOOBn+OBpOOChA0KK+OBk+OBl+OCguOBqCzjgaTjgajjgoANCivjgZPjgaDjgb4s44Gy44KN44GXDQor44GT44Gg44G+LOOBn+OBi+OBiA0KK+OBlOOBqCzjgZjjgoXjgavjgaENCivjgZPjgavjgZcs44Go44KC44GNDQor44GT44Gw44KE44GXLOOBsuOBp+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgobjgooNCivjgZPjgbDjgoTjgZcs44Gy44KN44GTDQor44GT44Gw44KE44GXLOOBv+OBuw0KK+OBk+OBvuOBjSzjgb/jgYjjgZMNCivjgZPjgb7jgbAs44Gf44GE44Gb44GkDQor44GT44G/44KELOOBguOBjeOBig0KK+OBk+OChOOBvizjgZPjgbLjgoMNCivjgZPjgoTjgb4s44Gf44GR44GXDQor44GV44GE44GNLOOCgeOBkOOBvw0KK+OBleOBhOOBlCzjgZ/jgaTjgo0NCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44GV44GE44Go44GGLOOBv+OBoeOBkw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgYTjgYzjgonjgZcs44GX44GS44GNDQor44GV44GI44GQ44GVLOOBsuOCjeOBv+OBpA0KK+OBleOBi+OBhCzjgZ/jgYTjgaHjgo3jgYbjgYYNCivjgZXjgYvjgYzjgb8s44G+44GV44GL44GaDQor44GV44GL44GtLOOBguOCiuOCiOOBlw0KK+OBleOBi+OCguOBqCzjgajjgoLjgZMNCivjgZXjgYvjgoLjgags44KI44GX44GYDQor44GV44GP44KJ44GELOOBvuOBleOBjQ0KK+OBleOBj+OCieOBoCzjgoTjgZnjgZ/jgYsNCivjgZXjgZPjgpMs44Gy44Gn44Gy44GoDQor44GV44GV44GNLOOBn+OBpOOChA0KK+OBleOBleOBr+OCiSzjgYvjgZrjga7jgooNCivjgZXjgajjgYYs44GL44Gk44Gy44GTDQor44GV44Go44GGLOOBvuOBleOBruOCig0KK+OBleOBqOOBhizjgoTjgZnjga7jgooNCivjgZXjgajjgYYs44Go44KC44Gy44GVDQor44GV44GuLOOBv+OCj+OBkw0KK+OBleOCjyzjgZHjgpPjgZgNCivjgZfjgbbjgoQs44Gm44Gk44GKDQor44GX44G244KELOOBhOOBleOCgA0KK+OBl+OBvuOBoCzjgZfjgofjgYbjgZQNCivjgZfjgb7jgaAs44Gq44G/DQor44GX44G+44GgLOOBguOBjeOCiQ0KK+OBl+OBv+OBmizjgYTjgaHjgo3jgYYNCivjgZfjgb/jgZos44Gg44GE44GNDQor44GX44G/44GaLOOBqOOCguOBruOCig0KK+OBl+OBv+OBmizjgb7jgZPjgagNCivjgZfjgb/jgZos44Gy44KN44G/DQor44GE44Gu44GG44GILOOCiuOCh+OBhuOBmA0KK+OBl+OCgizjgb7jgZXjgbLjgo0NCivjgZfjgofjgaAs44Gq44Gq44GIDQor44GY44KT44GuLOOCj+OBi+OBkw0KK+OBmOOCk+OBrizjgZLjgpMNCivjgZfjgpPjgb7jgaEs44GY44KF44Gr44GhDQor44GZ44GO44GELOOBkeOCk+OBlA0KK+OBmeOBjuOBiuOBiyzjgarjgYrjgagNCivjgZnjgY7jgoLjgags44Gy44Gn44GC44GNDQor44GZ44Ga44GNLOOBkeOCk+OBlA0KK+OBmeOBmuOBjSzjgZ/jgaDjgZcNCivjgZnjgZrjgY0s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBvuOBquOBiA0KK+OBmeOBmuOBjSzjgbLjgafjgZ/jgZENCivjgZvjgYos44KE44KI44GEDQor44Gb44GNLOOChuOBjeOBig0KK+OBhOOBl+OBr+OBvizjgaDjgYTjgZnjgZENCivjgZ3jga7jgaAs44Gy44Gn44GNDQor44Gf44GELOOBguOBjeOBrg0KK+OBn+OBi+OBhOOCjyzjgarjgYrjgobjgY0NCivjgZ/jgYvjgY4s44GR44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjga7jgooNCivjgZ/jgYvjga/jgZcs44G+44GT44GoDQor44Gf44GL44Gv44GXLOOCiuOCheOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjgoDjgY8s44G+44GV44Gq44GKDQor44Gf44GQ44GhLOOBn+OBi+OBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgb/jgaHjga7jgooNCivjgZ/jgZHjgYvjgo8s44GL44Ga44Gy44KJDQor44Gf44GR44KPLOOBoOOBhOOBmeOBkQ0KK+OBn+OBoOOBvuOBpCzjgYvjgZrjgbLjgo0NCivjgZ/jgZ/jgoks44Gy44KN44GX44GSDQor44Gf44Gq44GLLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBq+OCguOBqCzjga7jgorjgZMNCivjgZ/jga3jgoDjgoks44Gd44GGDQor44Gf44Gv44KJLOOBkeOCk+OBqA0KK+OBn+OCgOOCiSzjgZPjgYbjgZ/jgo3jgYYNCivjgaDjgpMs44KI44GX44GC44GNDQor44GE44GE44GgLOOBjeOCiOOBlw0KK+OBoeOBsCzjgobjgYbjgZgNCivjgaHjgofjgajjgY8s44G+44GN44GTDQor44Gk44GL44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBpOOBpOOBvyzjgb7jgY3jgZMNCivjgaTjgoLjgoos44Gf44GR44GXDQor44Gm44KJ44GX44GfLOOBguOBjeOBsuOBkw0KK+OBqeOBhCzjgZHjgpPjgZcNCivjganjgYQs44Gy44KN44GTDQor44Gp44GELOOCiOOBl+OBkw0KK+OBqOOBl+OBvizjgb7jgZXjgZcNCivjgarjgYTjgajjgYYs44GX44KT44GYDQor44Gq44GL44GELOOBsuOBp+OBjQ0KK+OBquOBi+OBhCzjgZPjgYbjgZgNCivjgarjgYvjgYos44Gf44GL44GXDQor44Gq44GL44GM44KPLOOChuOBhuOBmA0KK+OBquOBjOOBleOBjSzjgYLjgY3jgbXjgb8NCivjgarjgYvjgZjjgb4s44GV44Go44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgobjgY0NCivjgarjgYvjgaAs44KA44Gt44Gu44KKDQor44Gq44GL44Gv44KJLOOBiOOBhOOBmeOBkQ0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44KG44GNDQor44Gq44GL44KA44KJLOOBvuOBk+OBqA0KK+OBquOBi+OCgOOCiSzjgb7jgorjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgojjgZfjgYgNCivjgbvjgZfjga4s44KI44GG44GE44GhDQor44Gq44GL44KC44GoLOOBk+OBuOOBhA0KK+OBhOOBkeOBoCzjgZPjgYbjgZgNCivjgarjgYvjgoLjgoos44G+44GV44Gy44KNDQor44Gq44GM44KI44GXLOOBl+OCheOBuOOBhA0KK+OBquOBp+OBr+OCiSzjgY3jgbvjgZMNCivjgarjgarjgoLjgoos44Gh44GC44GNDQor44Gq44KJ44GV44GLLOOBi+OBiuOCig0KK+OBquOCk+OBsCzjgZ/jgYvjgbXjgb8NCivjgavjgZcs44Gu44Ge44KADQor44Gr44GX44GL44KPLOOBleOBquOBiA0KK+OBq+OBl+OBoCzjgY3jgojjgZMNCivjgavjgZfjgoDjgoks44G/44Gq44GTDQor44Gu44GQ44GhLOOBmOOCheOCk+OBnuOBhg0KK+OBruOBoCzjgZfjgoXjgYbjgZ/jgo3jgYYNCivjga7jgarjgb8s44KG44KKDQor44Gu44Gu44GE44Gh44KELOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBruOCgOOCiSzjgb/jgaTjgbLjgo0NCivjga7jgoLjgags44GL44Gk44Gy44GTDQor44Gv44GM44KELOOBsuOBp+OChA0KK+OBr+OBjuOCj+OCiSzjgajjgZfjga/jgosNCivjga/jgY8s44GC44GN44GTDQor44Gv44GXLOOBvuOBleOBn+OBiw0KK+OBr+OBl+OBmuOCgSzjgajjgYrjgosNCivjga/jgZfjgbAs44Gf44GL44G+44GVDQor44Gv44Gb44G5LOOBsuOCjeOBlw0KK+OBr+OBnyzjgaTjgajjgoANCivjga/jgZ/jgYgs44Gy44KN44GXDQor44Gv44Gf44GuLOOChuOBjQ0KK+OBr+OBoeOBrizjgaTjga3jgYLjgY0NCivjga/jgaPjgajjgoos44Gy44Gn44GC44GNDQor44Gv44KE44GXLOOBkeOCk+OBlw0KK+OBr+OChOOBl+OBoCzjgobjgY0NCivjga/jgoTjgbXjga0s44GV44Go44GXDQor44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBr+OCieOBoCzjgZnjgZDjgosNCivjga/jgonjgaAs44G+44GZ44GKDQor44GE44Gu44GQ44GhLOOBqOOCguOBsuOBkw0KK+OBr+OCieOBoCzjgobjgYbjgYTjgaENCivjgbLjgYzjgZfjgoTjgb4s44Gq44GK44KG44GNDQor44Gy44GQ44GhLOOChOOBmeOChuOBjQ0KK+OBsuOBlCzjgajjgoLjgbLjgagNCivjgbLjgaDjga4s44Gf44GL44GXDQor44Gy44G+44GNLOOChuOBhuOBkw0KK+OBj+OCieOBl+OBkizjgb7jgZPjgagNCivjgYTjgZfjga/jgoks44Gf44GL44G+44GVDQor44Gy44KJ44GfLOOBvuOBleOBv+OBoQ0KK+OBsuOCjeOBleOCjyzjgb/jgY3jgagNCivjgbLjgo3jgZ8s44GC44GN44KI44GXDQor44G144GL44GV44KPLOOBmeOBmeOCgA0KK+OBteOBi+OBluOCjyzjgobjgYYNCivjgbXjgYvjgZbjgo8s44KM44GE44GTDQor44G144GP44KA44KNLOOBguOBjeOCiQ0KK+OBteOBmOOBhCzjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44Gf44Gk44GYDQor44G144GY44GELOOBj+OBv+OBkw0KK+OBteOBmOOBquOBjCzjgb7jgZXjgZMNCivjgbXjgZjjgarjgYws44GL44Gk44G144G/DQor44G144GY44KP44KJLOOBn+OBi+OChuOBjQ0KK+OBteOBmOOCj+OCiSzjgojjgYbjgZMNCivjgbXjgZjjgo/jgoks44Gy44Gn44GNDQor44G144Gf44Gk44GOLOOBsuOCjeOBlw0KK+OBteOBn+OBpOOCguOCiizjgajjgoLjgoQNCivjgbXjgovjga/jgZ8s44Go44KC44Gu44KKDQor44G144KL44KELOOBi+OBmuOChuOBjQ0KK+OBuOOCk+OBvyzjgozjgYTjgZMNCivjgbvjgZcs44GX44GS44GKDQor44G744GX44GuLOOChuOBjeOBkw0KK+OBu+OCiizjgZHjgYTjgZMNCivjgbvjgorjgYgs44G/44GN44GTDQor44G744KK44GK44GLLOOCiuOBiA0KK+OBu+OCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgb7jgYjjgbXjga0s44G+44GV44Go44KCDQor44G+44GN44GuLOOBpuOBpOOChA0KK+OBvuOBmeOBoCzjgZHjgYTjgZMNCivjgb7jgaTjgYbjgoks44G/44GK44GTDQor44G+44Gk44GX44GfLOOBkeOBhOOBmA0KK+OBvuOBpOOCguOBqCzjgbXjgb/jgZMNCivjgYTjgZDjgaEs44Gu44KK44Gy44KNDQor44G+44Gk44KE44G+LOOCiuOBiA0KK+OBvuOBquOBuSzjgarjgYrjgobjgY0NCivjgb7jgovjgoTjgb4s44Gk44KI44GXDQor44G/44GG44KJLOOBl+OBmuOBiw0KK+OBv+OBjSzjga7jgbbjgYLjgY0NCivjgb/jgaTjga/jgZcs44G+44KK44GTDQor44G/44Gk44G5LOOBvuOBleOCiw0KK+OBv+OBqOOBuSzjgb7jgYTjgZMNCivjgaHjgofjgajjgY8s44GL44Gk44GC44GNDQor44GE44GR44G144GYLOOBjeOBv+OBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZfjgpPjgZgNCivjgb/jgoTjgZbjgY0s44GC44Gk44GTDQor44G/44KE44GX44GfLOOBqOOCguOBsuOCjQ0KK+OBv+OChOOBnyzjgarjgb/jgZMNCivjgoDjgZPjgYbjgoTjgb4s44KE44GZ44Gu44KKDQor44KA44KJ44GELOOBiuOBj+OBqA0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44GC44GN44GXDQor44KA44KJ44GfLOOBsuOBp+OBn+OBiw0KK+OCgOOCieOBvuOBpCzjgZ/jgYvjgbLjgo0NCivjgoLjgajjgY0s44G+44GV44Gy44KNDQor44KC44Go44KI44GXLOOBoeOBrg0KK+OCguOBv+OChOOBvizjgarjgYrjgobjgY0NCivjgoLjgoos44G/44Gh44KLDQor44KC44KKLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBhuOBiCzjgYjjgYTjgYTjgaENCivjgYTjga7jgYbjgYgs44G+44GV44GoDQor44KC44KK44GG44GhLOOBsuOBleOChA0KK+OCguOCiuOBnyzjgZ/jgb7jgY0NCivjgoTjgY7jgZXjgo8s44Gu44G244KI44GXDQor44KE44GX44G+LOOBvuOBleOBr+OCiw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgoTjga4s44KI44GG44GTDQor44KE44GuLOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgb/jgaHjgbLjgacNCivjgoTjgb7jgZXjgY0s44G/44G7DQor44KE44G+44GW44GNLOOBvuOBvw0KK+OChOOBvuOBl+OBnyzjgb/jgaTjgYLjgY0NCivjgoTjgb7jgZfjgZ8s44Go44KC44KG44GNDQor44KE44G+44GgLOOBvuOBleOChuOBjQ0KK+OChOOBvuOBqizjgZjjgoXjgpPjgZ8NCivjgoTjgb7jgb/jgaEs44Gb44GE44GE44GhDQor44GE44Gq44GLLOOBiOOBhOOBmA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgoLjgags44Gf44GR44KEDQor44KE44G+44KC44GoLOOCiOOBl+OBn+OBiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jga7jgooNCivjgobjgbAs44GX44KT44Gf44KN44GGDQor44KI44GT44Gf44GrLOOChuOBhuOBjQ0KK+OCiOOBk+OChOOBvizjgYvjgZrjgb8NCivjgojjgZfjgaAs44GT44GG44GYDQor44KI44GX44GgLOOBteOBv+OBsuOBkw0KK+OBhOOCj+OBleOBjSzjgb/jgY0NCivjgojjgZfjgaAs44Gf44Gg44Gf44GLDQor44KI44GgLOOBmOOCheOCkw0KK+OBheOBiizjgbXjgb/jgbLjgZMNCivjgo/jgYvjgb7jgaQs44Gu44G244Gy44GTDQor44KP44GVLOOBkeOBhOOBmA0KK+OCj+OBoCzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gf44Gk44GKDQor44GE44KP44GP44KJLOOBi+OBqg0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgZnjgZENCivjgo/jgZ/jgarjgbks44GS44KT44GfDQor44KP44Gf44Gq44G5LOOBk+OBhuOBmA0KK+OCj+OBn+OBquOBuSzjgZ/jgY/jgoQNCivjgo/jgZ/jgarjgbks44Gy44Gn44GKDQor44KP44Gf44Gq44G5LOOCgOOBreOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgobjgZ/jgYsNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44GK44GyLOOCiOOBl+OBig0KK+OBhOOBhOOBoCzjgYvjgZrjgbLjgo0NCivjgoDjgYvjgYQs44Go44GX44GL44GaDQor44G144G/44Gv44KJLOOBqOOBl+OBi+OBmg0KK+OBi+OCj+OBlOOBiCzjgorjgofjgYYNCivjgY/jgo3jgYvjgo8s44GI44G/DQor44GT44GG44GgLOOBguOBjeOBsuOBkw0KK+OBteOBmOOBnyzjgb/jgaHjgYgNCivjgZPjgbDjgoTjgZcs44KK44KH44GTDQor44Gv44G+44KA44KJLOOBi+OBiuOCiw0KK+OBhOOCj+OBmyzjgZHjgYTjgZ4NCivjgZ/jgZHjgaAs44GI44GE44GE44GhDQor44GK44GM44KPLOOBsuOBp+OChuOBjQ0KK+OBv+OBmuOBnyzjgYvjgZrjgb/jga0NCivjgYTjgYTjgaAs44GX44KH44Gf44KN44GGDQor44GC44GE44Gv44KJLOOChuOBjQ0KK+OBguOBiuOBhizjgZfjgZLjgosNCivjgYLjgYrjgY0s44Gy44KN44KG44GNDQor44GC44GK44GwLOOBjeOCiOOBi+OBmg0KK+OBguOBjeOCguOBqCzjgajjgZfjgYgNCivjgYLjgZXjgYQs44Gu44G244Gy44KNDQor44GE44GX44KE44G+LOOChuOBjeOBkw0KK+OBguOBleOBiizjgZ/jgYvjgZcNCivjgYLjgZXjgaAs44GL44GK44KKDQor44GC44GV44GgLOOBvuOBleOBr+OCiw0KK+OBguOBleOBrizjgbLjgo3jgb8NCivjgYLjgZXjga4s44GV44Go44KLDQor44GC44GW44G/LOOChuOBhuOBkw0KK+OBguOBmeOBvizjgZ/jgZHjgZcNCivjgYLjgZ3jgYYs44GL44KIDQor44GC44Gg44GhLOOChOOBmeOBsuOCjQ0KK+OBguOBqOOBvyzjgb7jgZXjgosNCivjgYLjgarjgb8s44Gy44KN44GC44GNDQor44GC44G5LOOBleOBqOOCiw0KK+OBguOBuSzjgYLjgaTjgZcNCivjgYLjgbks44KE44GZ44GTDQor44GC44G+44GuLOOBqOOBl+OBjQ0KK+OBguOChOOBuSzjgZfjgpPjgZMNCivjgZ/jgZHjgY3jgZ8s44Gy44KN44KI44GXDQor44GC44KJ44GELOOBmeOBmeOCgA0KK+OBhOOBpOOBrizjgobjgYbjgZMNCivjgYLjgorjgYvjgo8s44GX44KF44KT44GZ44GRDQor44GC44KK44GfLOOBiOOBv+OBkw0KK+OBguOCk+OBmOOChSzjgajjgZfjgY0NCivjgYLjgpPjganjgYYs44GR44KT44Gf44KN44GGDQor44GC44KT44Gp44GGLOOBteOBmOOBig0KK+OBhOOBoeOBruOBmyzjgajjgoLjgbLjgZMNCivjgYTjgYTjgazjgb4s44Go44GX44KG44GNDQor44GE44GG44GILOOBl+OCheOBuOOBhA0KK+OBhOOBjOOCieOBlyzjgobjgYsNCivjgYTjgZHjgYbjgaEs44GN44KH44GG44GE44GhDQor44GE44GR44GM44G/LOOBruOCiuOBsuOCjQ0KK+OBhOOBkeOBoCzjgoTjgZnjgbLjgZUNCivjgYTjgorjgZ8s44G+44GV44GK44G/DQor44GE44GR44GgLOOBvuOBk+OBqA0KK+OBhOOBkeOBoCzjgb7jgZPjgagNCivjgYTjgZHjgaAs44G+44GV44Go44GXDQor44GE44GX44GELOOBn+OCjeOBhg0KK+OBhOOBl+OBhCzjgb7jgarjgbYNCivjgYTjgZfjgYQs44G+44GNDQor44GE44GX44GK44GLLOOBv+OBjeOBig0KK+OBhOOBvuOBhCzjgojjgZfjga7jgbYNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44GE44GX44GL44KPLOOBpOOCiOOBlw0KK+OBhOOBl+OBkOOCjSzjgb7jgZXjgY0NCivjgYTjgZfjgaAs44KK44KF44GfDQor44GE44Gb44GNLOOBk+OBmuOBiA0KK+OBhOOBoeOBjSzjgbLjgo3jgobjgY0NCivjgYTjgaHjga7jgZss44KI44GX44GC44GNDQor44GE44Gh44Gu44G/44KELOOBguOBjeOBkw0KK+OBhOOBqOOBhizjgYrjgorjgYsNCivjgYTjgajjgYYs44G/44Gu44KLDQor44GE44Gq44GgLOOBn+OBkeOBlw0KK+OBhOOBquOBsCzjgoTjgZnjgYLjgY0NCivjgYTjga/jgoks44GX44KF44Gy44GhDQor44GE44Gu44GG44GILOOBl+OCh+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZjjgo0NCivjgYTjga7jgYbjgYgs44GY44KF44Gr44GhDQor44GE44G+44GE44Ga44G/LOOBqOOCguOBkw0KK+OBhOOBvuOBmOOChyzjgarjgYrjgb8NCivjgYTjgb7jgaAs44GX44KT44GE44GhDQor44GE44G+44GaLOOBn+OBkeOBlw0KK+OBhOOBvuOCgOOCiSzjgorjgofjgbjjgYQNCivjgYTjgorjgZ/jgass44Go44KC44Gu44G2DQor44GE44KP44GNLOOChuOBjeOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgobjgY0NCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GE44KP44GZ44GOLOOBvuOBleOBqA0KK+OBhOOCj+OBnyzjgajjgoLjgbLjgo0NCivjgYTjgo/jga/jgZcs44G144G/44Gf44GRDQor44GE44KP44G244GhLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBu+OCiizjga7jgorjgZMNCivjgYbjgYjjgaAs44KI44GX44Gf44GLDQor44GG44GI44G+44GkLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBhuOBmeOBhCzjgY3jgojjgZ/jgYsNCivjgYbjgZnjgYQs44GK44GV44KADQor44GG44Gh44GgLOOBruOCiuOBkw0KK+OBhuOBpOOBvyzjgajjgoLjgobjgY0NCivjgYbjgoHjgaAs44GC44Gk44GXDQor44GG44KJ44GuLOOBleOBqOOBkw0KK+OBiOOBjOOCjyzjgb/jgYoNCivjgYjjgZbjgY0s44Gk44KI44GXDQor44GI44GoLOOBv+OBpOOBqOOBlw0KK+OBiOOBruOCguOBqCzjgZ/jgY/jgZgNCivjgYjjga7jgoLjgags44Gf44Gk44KEDQor44GI44G+LOOBvuOCig0KK+OBiOOCk+OBqSzjgb7jgaoNCivjgYjjgpPjgaks44G/44GLDQor44GK44GE44Gf44GrLOOBl+OCh+OBl+OChQ0KK+OBiizjgYTjgaHjgo3jgYYNCivjgYrjgbIs44Gq44G7DQor44GK44G4LOOBguOBjeOBsuOBkw0KK+OBiuOBjSzjga7jgbbjgYgNCivjgYrjgY/jgbws44Gf44GL44GXDQor44GK44GV44KPLOOBqOOCguOBhOOBoQ0KK+OBiuOBleOCjyzjgb7jgZXjgbLjgo0NCivjgYTjgo/jgY3jgoos44GL44GK44KKDQor44GK44GZ44G/LOOBvuOBjeOBkw0KK+OBiuOBnyzjgbLjgafjga7jgbYNCivjgYrjgZ8s44KE44GZ44Gy44KNDQor44GK44Gk44GLLOOBn+OBkeOBlw0KK+OBiuOBpOOBiyzjgYLjgaTjgZMNCivjgYrjgaTjgYss44GR44KT44GYDQor44GK44Gk44GNLOOBr+OCi+OBsuOCiQ0KK+OBiuOBquOBiyzjgYLjgY3jgokNCivjgYrjgavjgZcs44GC44GN44GTDQor44GK44G8LOOBsuOBleOBruOCig0KK+OBiuOBvizjgojjgZfjgb7jgZUNCivjgYrjgoDjgoks44KG44GNDQor44GK44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBhOOBl+OBhCzjgYvjgYrjgosNCivjgYrjgoLjgoos44GC44GN44Gy44KNDQor44GK44KC44KKLOOBguOChA0KK+OBiuOCguOCiizjgbXjgb/jga7jgooNCivjgYrjgo/jgaAs44GE44GV44GKDQor44GK44GL44GELOOBsuOBleOBlw0KK+OBiuOBi+OBluOBjSzjgo/jgZ/jgosNCivjgYrjgYvjgZbjgY0s44KC44Go44Gy44GTDQor44GE44GR44GgLOOBv+OBpOOBsuOCjQ0KK+OBiuOBi+OBrizjgZ/jgYvjgZcNCivjgYrjgYvjgbks44GC44GN44Gu44KKDQor44GK44GL44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOCjyzjgajjgoLjgbLjgo0NCivjgYrjgYzjgo8s44GY44KF44KTDQor44GK44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBiuOBjOOCjyzjgojjgYbjgZMNCivjgYrjgYzjgo/jgoks44G+44GV44GTDQor44GK44GP44Gv44KJLOOBjeOCiOOBlw0KK+OBiuOBj+OChOOBvizjgZfjga7jgbYNCivjgYrjgZDjgoks44GP44G/DQor44GN44Gf44KA44KJLOOBquOBiuOBkw0KK+OBiuOBluOCjyzjgojjgZfjgbLjgo0NCivjgYrjgaEs44Gy44KN44GL44GaDQor44GK44GuLOOBruOBtuOBsuOBlQ0KK+OBiuOBrizjgZ/jgYvjgbXjgb8NCivjgYrjga7jgafjgoks44KM44GEDQor44GK44Gw44GfLOOBqOOCguOBv+OBoQ0KK+OBiuOChOOBvizjgYvjgZrjgbLjgagNCivjgYrjgpPjgZ8s44GC44GN44GKDQor44GE44KP44GfLOOBiOOBhOOBhOOBoQ0KK+OBi+OBhOOBtuOBjSzjgYbjgonjgokNCivjgYvjgY3jgoLjgags44GI44Gk44GTDQor44GL44GW44GQ44GhLOOChuOBhuOBkw0KK+OBi+OBleOBluOBjSzjgYLjgY3jgokNCivjgYvjgZgs44KK44KH44Gy44GhDQor44GL44GY44KA44KJLOOBjeOCiOOBrg0KK+OBi+OBl+OCj+OBhCzjgY/jgavjga/jgosNCivjgYvjgZfjgo/jgbDjgoks44GV44Go44GXDQor44GL44Gf44GP44KJLOOBvuOBkw0KK+OBi+OBn+OChOOBvizjgoTjgZnjga/jgosNCivjgYvjgaTjga4s44G+44KK44GTDQor44GL44GpLOOBl+OBkuOBv+OBpA0KK+OBi+OBqOOBhizjgoLjgajjgbLjgo0NCivjgYTjgZ3jga4s44Gf44GL44GXDQor44GL44Go44GGLOOBoeOBiw0KK+OBi+OBqOOBhizjgZHjgpPjgZcNCivjgYvjgajjgYYs44GL44Gk44KI44GXDQor44GL44Go44KKLOOBoeOBmuOCiw0KK+OBi+OBquOBleOBiyzjgoHjgZDjgb8NCivjgYvjgarjgZbjgo8s44Gf44GR44GXDQor44GL44Gq44KE44G+LOOChuOBvw0KK+OBi+OBreOBkyzjgb7jgaHjgZMNCivjgYvjga3jgZMs44G+44GV44Gu44KKDQor44GL44Gt44GgLOOCiOOBl+OBsuOCjQ0KK+OBjOOBvyzjgZXjgYrjgooNCivjgYvjgoHjgYrjgYss44Gv44KL44GqDQor44GL44KJ44GV44KPLOOBruOCiuOBkw0KK+OBi+OCieOBl+OBvizjgarjgYrjgoQNCivjgYvjgovjgYTjgZcs44KI44GX44KG44GNDQor44GL44KP44GELOOBvuOBhOOBkw0KK+OBi+OCj+OBhCzjgZ/jgYvjga7jgooNCivjgYvjgo/jgYvjgb8s44Gh44GI44GTDQor44GL44KP44GL44G/LOOBruOBtuOChuOBjQ0KK+OBi+OCj+OBmizjgb/jganjgooNCivjgYvjgo/jgarjgYss44Gf44GL44GXDQor44GL44KP44GuLOOBl+OBuw0KK+OBi+OCj+OBsOOBnyzjgYLjgY3jgojjgZcNCivjgYvjgo/jgbks44GR44KT44GYDQor44GL44KP44G/LOOCguOBqOOBsuOCjQ0KK+OBi+OCk+OBsOOBlyzjgb/jgaHjgZMNCivjgYvjgpPjgbDjgoks44GL44Gq44GTDQor44GN44GX44GELOOChuOBjeOBig0KK+OBjeOBl+OBoCzjgajjgoLjgZMNCivjgY3jgZ/jgYzjgo8s44KC44Go44GNDQor44GN44Gf44GX44KNLOOBsuOCjeOBlw0KK+OBjeOBn+OBr+OCiSzjgb7jgarjgb8NCivjgY3jgZ/jgoDjgoks44GC44GN44Gm44KLDQor44GN44GpLOOBjeOCiOOBteOBvw0KK+OBjeOBruOBl+OBnyzjgYTjgZrjgb8NCivjgYjjgaAs44Gq44GK44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBiuOBvw0KK+OBjeOCgOOCiSzjgb7jgZXjgb8NCivjgY3jgoDjgoks44GR44KT44GfDQor44GN44KI44Gq44GMLOOBguOBpOOBlw0KK+OBjeOCiOOBv+OChCzjgYjjgYTjgZnjgZENCivjgY3jgorjgoQs44Gf44GL44GXDQor44GE44Go44GGLOOBquOBiuOChA0KK+OBj+OBl+OBoCzjgZfjgbsNCivjgY/jgZjjgonjgYrjgYss44GX44KT44GYDQor44GP44Gr44KC44GoLOOBv+OBoeOBkw0KK+OBj+OBrOOBjizjgYLjgaTjgZcNCivjgY/jgbws44KE44GZ44GIDQor44GP44G844GV44KPLOOBguOBjeOBsuOCjQ0KK+OBj+OBvOOBnyzjgb7jgZXjgY0NCivjgY/jgoHjga4s44GL44Ga44KI44GXDQor44GE44GX44GQ44KNLOOCiOOBl+OBi+OBmg0KK+OBj+OCiSzjgojjgbLjgaENCivjgY/jgonjgZXjgo8s44Gh44GI44GTDQor44GP44KJ44GfLOOCj+OBi+OBkw0KK+OBj+OCjeOBi+OCjyzjgYjjgYQNCivjgY/jgo3jgZks44Gq44Gk44GTDQor44GP44KN44KE44Gq44GOLOOBl+OBkuOCiw0KK+OBhOOBquOBqOOBvyzjgYLjgaTjgZcNCivjgZPjgYTjgZEs44Gu44KK44G/44GkDQor44GT44GE44GRLOOBn+OBi+OBig0KK+OBk+OBhOOBl+OBi+OCjyzjgb7jgZXjgY0NCivjgZPjgYTjgZrjgb8s44Go44KC44KEDQor44GT44GE44Ga44G/LOOBjeOCh+OBkw0KK+OBk+OBhOOBpyzjgaDjgYTjgY0NCivjgZPjgZrjgb4s44Gf44GR44Go44GXDQor44GT44GuLOOBqOOBiuOCiw0KK+OBk+OBsuOCg+OBvizjgYLjgaTjgZcNCivjgZPjgoos44G+44GV44GNDQor44GL44Gk44GL44KPLOOBn+OBi+OBsuOCjQ0KK+OBk+OBjOOBrizjga7jgbbjgYoNCivjgZPjgZfjgYQs44Gf44KN44GGDQor44GT44GX44G+44KLLOOBqOOCguOBguOBjQ0KK+OBk+OBmeOBjizjgbXjgb/jga/jgosNCivjgZPjgZvjgY0s44KK44KH44GTDQor44GT44Gf44GrLOOBn+OBi+OBsuOBlQ0KK+OBk+OBoOOBvizjgb7jgb/jgZMNCivjgZPjgavjgZcs44GV44KT44GX44KNDQor44GT44Gr44GXLOOBoOOBhOOBmeOBkQ0KK+OBk+OBsCzjgb7jgobjgZMNCivjgZPjgbDjgZ/jgZEs44KP44Gf44KLDQor44GT44Gw44KE44GXLOOBsuOBp+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgabjgovjgb8NCivjgZPjgbDjgoTjgZcs44Gu44KK44G+44GVDQor44GT44Gw44KE44GXLOOBvuOBqeOBiw0KK+OBk+OBsOOChOOBlyzjgb7jgYTjgZMNCivjgarjgYvjgoDjgoks44GC44Gk44GTDQor44GT44Gw44KE44GXLOOBoOOBhOOBjQ0KK+OBk+OBvOOCiizjgZ/jgYvjgbLjgacNCivjgZPjgb7jgaQs44Gb44GE44GE44Gh44KN44GGDQor44GT44KE44G+LOOBguOBjeOBteOBvw0KK+OBk+OCk+OBqSzjgajjgoLjgbLjgo0NCivjgZPjgpPjga4s44Gg44GE44Go44GPDQor44GV44GE44Go44GGLOOBvuOBleOBlw0KK+OBleOBhOOBqOOBhizjgb7jgarjgbYNCivjgZXjgYTjgajjgYYs44KE44GE44GhDQor44GV44GE44Go44GGLOOBm+OCk+OBmA0KK+OBhOOBqOOBhizjgZ/jgb/jgZMNCivjgZXjgYvjgYQs44Gf44Gg44GXDQor44GV44GL44GELOOBqOOCguOBjQ0KK+OBleOBi+OBhCzjgZHjgYTjgYTjgaENCivjgZXjgYvjgY3jgbDjgoks44GC44GN44GTDQor44GV44GL44GQ44GhLOOChOOBmeOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgojjgZgNCivjgZXjgYvjgoLjgags44G+44GV44KEDQor44GV44GL44KC44GoLOOCiOOBl+OBig0KK+OBleOBi+OCguOBqCzjgojjgbjjgYQNCivjgZXjgZXjgY0s44Gy44KN44GTDQor44GV44GV44GNLOOBj+OBq+OBsuOBkw0KK+OBleOBleOBjSzjgaTjgojjgZcNCivjgZXjgZXjgY0s44Gk44GO44GKDQor44GE44G+44Gv44GXLOOBjeOCh+OBuw0KK+OBleOBpOOBvyzjgZ/jgYvjgZMNCivjgZXjgajjgYYs44Go44KC44GIDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44Gy44KN44KG44GNDQor44GV44Go44GGLOOBteOBjeOBkw0KK+OBleOBqOOBhizjgaHjgbLjgo0NCivjgZXjga4s44GN44KI44GXDQor44GE44GX44GQ44KNLOOBv+OBreOBig0KK+OBleOCj+OChOOBquOBjizjgajjgZfjgY0NCivjgZfjgYrjgZ8s44GE44Gh44KN44GGDQor44GX44GNLOOCjOOBhOOBkw0KK+OBl+OBkuOBiuOBiyzjga7jgorjgYoNCivjgZfjgZLjgZ8s44KI44GYDQor44GX44GX44GpLOOBmOOCheOCk+OBkw0KK+OBl+OBquOBoCzjgYvjgaTjgajjgZcNCivjgYTjgacs44GT44GV44GPDQor44GX44Gw44GfLOOBmOOCheOCk+OBkw0KK+OBl+OBsOOBnyzjgozjgaoNCivjgZfjgbDjgZ8s44Gy44KN44G/DQor44GX44Gw44GfLOOBn+OBi+OChuOBjQ0KK+OBl+OBvuOBmizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZfjgb7jgaAs44KG44GG44GYDQor44GX44G+44GaLOOBqOOCguOBj+OBqw0KK+OBl+OBv+OBmizjgb7jgorjgZMNCivjgZfjgb/jgZos44GT44GNDQor44GX44KC44Gv44GXLOOChuOBv+OBkw0KK+OBl+OCguOChOOBvizjgZfjga4NCivjgZjjgofjgZjjgocs44Gy44Gn44Gf44GLDQor44GE44Go44GGLOOBv+OBpOOBsuOCjQ0KK+OBmeOBjOOBnyzjgZHjgYTjgZnjgZENCivjgZnjgYzjgoQs44KG44GG44GTDQor44GZ44GO44GfLOOCjOOBhA0KK+OBmeOBjuOBquOBiyzjgb7jgoLjgosNCivjgZnjgY7jgoLjgags44KK44GLDQor44GZ44GO44KE44G+LOOCiOOBl+OBkw0KK+OBmeOBjuOChOOBvizjgojjgZfjgbXjgb8NCivjgZnjgY7jgoTjgb4s44KI44GG44GTDQor44GZ44GS44GuLOOBguOCiuOBsuOBqA0KK+OBmeOBmuOBjSzjgorjgocNCivjgZnjgZrjgY0s44GX44KF44GE44GhDQor44GZ44Ga44GNLOOCguOBquOBvw0KK+OBmeOBmuOBjSzjgojjgZfjgZXjgaANCivjgZnjgZrjgY0s44Gk44Gt44GKDQor44GE44KP44GV44GNLOOBsuOBp+OBn+OBoA0KK+OBmeOBmuOBjSzjgY/jgavjgYgNCivjgZnjgZrjgY0s44Gy44KN44Gu44G2DQor44GE44Gh44GL44KPLOOBi+OBiuOCig0KK+OBm+OBjSzjgZ/jgYvjgZcNCivjgZvjgY3jgZDjgaEs44GN44KH44GTDQor44Gb44GN44KELOOBruOBtuOBiA0KK+OBm+OBkyzjgYLjgY3jgbLjgo0NCivjgZvjgoks44Gf44GL44Gy44KNDQor44Gd44GMLOOBiOOBhOOBmA0KK+OBneOBjCzjgbXjgb/jgYoNCivjgYTjgajjgYYs44GL44Ga44GqDQor44GL44G/44KELOOChuOBhuOBmA0KK+OBneOCk+OBjyzjgajjgYrjgosNCivjgZ/jgYvjgY0s44GUDQor44Gf44GL44GOLOOBk+OBhuOBmA0KK+OBn+OBi+OBleOBjSzjgb7jgZXjgbLjgo0NCivjgYTjgZHjgaAs44Gy44Gn44GC44GNDQor44Gf44GL44GX44G+LOOBk+OBhuOBmA0KK+OBn+OBi+OBrizjgobjgYbjgZMNCivjgZ/jgYvjga4s44Go44KC44G144G/DQor44Gf44GL44GuLOOCiOOBhuOBkw0KK+OBn+OBi+OBrizjgZPjgYbjgZgNCivjgZ/jgYvjga4s44KK44GLDQor44Gf44GL44Gv44GXLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgZHjgYTjgZMNCivjgZ/jgYvjga/jgZcs44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44KG44GLDQor44Gf44GL44G+44GkLOOBiOOBhOOBkw0KK+OBn+OBjOOBvyzjgYLjgY3jgokNCivjgZ/jgYvjgb/jgZbjgo8s44GL44GZ44G/DQor44Gf44GL44KJ44GgLOOBqOOBl+OBi+OBmg0KK+OBn+OBjeOBi+OCjyzjgobjgb/jgZMNCivjgZ/jgY3jgZbjgo8s44KI44GX44Gv44KLDQor44GE44GE44GuLOOChOOBmeOBig0KK+OBn+OBkeOBhCzjgbLjgajjgZcNCivjgZ/jgZHjgYbjgaEs44KE44GZ44Gy44GoDQor44Gf44GR44GG44GhLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBjeOBnyzjgbLjgafjgY0NCivjgZ/jgZHjgarjgYss44G+44GN44GTDQor44Gf44GR44Gu44GG44GhLOOBquOBiuOBsuOCjQ0KK+OBn+OBkeOBr+OBqizjgojjgZfjgbLjgZUNCivjgYTjgajjgYYs44KI44GX44GKDQor44Gf44GR44KC44GoLOOBk+OBuOOBhA0KK+OBn+OBkeOCguOBqCzjgZPjgYbjgYTjgaHjgo0NCivjgZ/jgZQs44GM44GPDQor44Gf44GV44GLLOOBi+OBqg0KK+OBn+OBmOOBvizjgZ/jgYvjga7jgooNCivjgZ/jgZfjgo0s44Gy44KN44GXDQor44Gf44GX44KNLOOBsuOBqOOBlw0KK+OBn+OBn+OCiSzjgorjgoXjgY0NCivjgZ/jgaHjgbDjgaos44GX44KT44GE44GhDQor44GE44Gh44KA44KJLOOBiOOBv+OBkw0KK+OBn+OBpuOBhOOBlyzjgYTjgo/jgYoNCivjgZ/jgabjga4s44KG44G/DQor44Gf44Gm44GuLOOCiOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgarjgYss44Gf44GL44GN44KIDQor44Gf44Gq44GLLOOBvuOBjQ0KK+OBn+OBquOBiyzjgbXjgb/jgYoNCivjgZ/jgarjgYss44KK44KH44GYDQor44Gf44Gq44GLLOOBteOBvw0KK+OBn+OBquOBiyzjgajjgY/jgZMNCivjgYzjgb8s44G+44GV44KLDQor44Gf44Gq44G/LOOBi+OBmuOBsuOBkw0KK+OBn+OBqyzjgZnjgZnjgoANCivjgZ/jgavjgZDjgaEs44KI44GX44Gu44G2DQor44Gq44GL44GK44GLLOOBsuOCjeOBi+OBmg0KK+OBn+OBq+OBluOCjyzjgojjgZfjgZMNCivjgZ/jgavjgaAs44GUDQor44Gf44Gr44KC44GoLOOBleOBquOBiA0KK+OBn+OBruOBiuOBiyzjgYLjgoTjgZMNCivjgZ/jgbDjgZ8s44GV44Go44GXDQor44Gf44Gv44KJLOOChuOBjQ0KK+OBn+OCgOOCiSzjgbLjgZXjgZcNCivjgaHjgYvjgZbjgo8s44Gg44GE44GeDQor44Gh44GuLOOBkeOCk+OBhOOBoeOCjQ0KK+OBoeOBr+OCiSzjgb7jgZXjgbLjgo0NCivjgaHjgoXjgZjjgocs44Gq44GK44GTDQor44Gh44KF44G+LOOBqOOBiuOCiw0KK+OBpOOBi+OBoCzjgY3jgofjgZMNCivjgaTjgYvjgoLjgags44KE44GZ44GXDQor44Gk44GL44KC44GoLOOCiOOBhuOBkw0KK+OBpOOBoCzjgb7jgZPjgagNCivjgaTjgaHjgaAs44Gk44Gt44GKDQor44Gk44Gh44KELOOBvuOBvw0KK+OBpOOBoeOChCzjgobjgb/jgZMNCivjgaTjga3jgY0s44KG44GNDQor44Gn44G/44GbLOOCiOOBl+OBruOCig0KK+OBpuOCieOBiuOBiyzjga7jgbbjgobjgY0NCivjgYTjgZrjgb8s44GC44GN44G/DQor44GoLOOBv+OBiOOBkw0KK+OBqOOBmCzjgb7jgZXjgY0NCivjgajjgZfjgYrjgYss44G/44GL44GTDQor44Go44GgLOOChuOBjeOBsuOCjQ0KK+OBqOOBs+OBquOBhCzjga7jgorjgbLjgagNCivjgajjgoLjgYQs44Gf44GL44Gu44G2DQor44Go44KE44G+LOOBsuOBleOBrg0KK+OBqOOCiOOBl+OBvizjgZXjgoTjgYsNCivjgajjgojjgaAs44GR44GE44GE44GhDQor44Go44KI44Gv44G+LOOBsuOBp+OBn+OBkQ0KK+OBquOBjOOBiCzjga7jgbbjgZ/jgYsNCivjgarjgYzjgYgs44KG44Gf44GLDQor44Gq44GL44GKLOOBqOOCguOBruOCig0KK+OBquOBi+OBiizjgb7jgZXjgYoNCivjgarjgYvjgZjjgb4s44Gb44KM44GqDQor44Gq44GL44GY44G+LOOBguOBjQ0KK+OBquOBi+OBmOOBvizjgY/jgb/jgZMNCivjgarjgYzjgZfjgb4s44Gf44GL44GXDQor44Gq44GM44GbLOOBi+OBquOBkw0KK+OBquOBi+OBnuOBrizjgYLjgaTjgZcNCivjgarjgYvjgZ8s44Gb44GE44GYDQor44Gq44GM44GfLOOBvuOBleOBkw0KK+OBquOBjOOBqCzjgb/jgZnjgZoNCivjgarjgYvjgavjgZcs44Gv44Gq44GIDQor44Gq44GL44GuLOOBguOBjeOBkw0KK+OBquOBjOOBrizjgb/jga3jgY0NCivjgarjgYzjga4s44GC44GE44GTDQor44Gq44GM44GuLOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBr+OCiSzjgZ/jgY/jgoQNCivjgarjgYvjgbLjgYzjgZcs44Go44GX44GKDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OBhOOBrOOBmuOBiyzjgZfjgbsNCivjgarjgYvjgoDjgoks44Go44KC44Gy44GnDQor44Gq44GL44KA44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgajjgoLjgZMNCivjgarjgYvjgoDjgoks44KI44GX44Gf44GLDQor44Gq44GL44KELOOBpOOCiOOBlw0KK+OBquOBi+OChCzjgb7jgooNCivjgarjgonjgZXjgY0s44GT44GG44GE44Gh44KNDQor44Gq44KK44GfLOOBmOOCheOCk+OBkw0KK+OBquOCiuOBnyzjgYLjgZXjgZMNCivjgavjgYTjgaAs44KI44GX44Gy44GTDQor44Gr44GX44GL44KPLOOBvuOCiuOBkw0KK+OBq+OBl+OCgOOCiSzjgZLjgpMNCivjgavjgZfjgoDjgoks44KI44GX44GTDQor44Gr44GX44KA44KJLOOBsuOCjeOBjQ0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgZcNCivjgavjgZfjgoTjgb4s44Gm44Gk44KEDQor44Gr44KA44KJLOOCiOOBl+OChuOBjQ0KK+OBq+OCjyzjgoHjgZDjgb8NCivjgazjgb7jgZ8s44GN44G144G/DQor44Gs44G+44GfLOOBqOOCguOBi+OBmg0KK+OBrOOBvuOBoCzjgbXjgb/jgY0NCivjga3jgY7jgZcs44Gy44Go44GXDQor44Gu44GW44GNLOOBv+OBuw0KK+OBruOBjOOBvyzjgb7jgZXjgYvjgaQNCivjga7jgaAs44KG44Gf44GLDQor44Gu44Gv44KJLOOBkeOBhA0KK+OBruOBtuOBr+OCiSzjga7jgbbjgarjgooNCivjga/jgYws44KK44KF44GfDQor44Gv44GO44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBjuOCj+OCiSzjgajjgoLjgYLjgY0NCivjga/jgZfjgZrjgoEs44GE44KP44GKDQor44Gv44GX44KC44GoLOOBoeOBjuOCig0KK+OBr+OBl+OCguOBqCzjgZ/jgYTjgYTjgaENCivjga/jgZfjgoLjgags44GL44Gk44G/DQor44Gv44Gb44GM44KPLOOBqOOBiuOCiw0KK+OBr+OBm+OBjOOCjyzjga7jgorjgb7jgZUNCivjga/jgZvjgYzjgo8s44Gy44KN44KG44GNDQor44Gv44Gb44G5LOOChuOBjeOBiA0KK+OBr+OBnyzjgarjgYrjgZMNCivjga/jgZ/jgZHjgoTjgb4s44Gf44GL44Gy44KNDQor44Gv44Gf44Gq44GLLOOBpOOCiOOBlw0KK+OBr+OBn+OBrizjgYTjgZXjgYoNCivjga/jgaPjgajjgoos44Gf44GL44Gq44GKDQor44Gv44Gq44GW44GNLOOChuOBiw0KK+OBr+OBquOBtuOBlSzjgZ/jgaTjgoQNCivjga/jgarjgoDjgoks44Gk44KI44GXDQor44Gw44GwLOOChuOBhuOBkw0KK+OBr+OBvuOBleOBjSzjgb7jgZXjgagNCivjga/jgb7jgaAs44Gf44Gg44GL44GaDQor44Gv44KE44GXLOOBi+OBpOOCiQ0KK+OBr+OChOOBlyzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBneOCiOOBiw0KK+OBr+OCiSzjgYLjgY3jgokNCivjga/jgonjgZfjgb4s44G+44GT44GoDQor44Gv44KJ44GgLOOBvuOChuOBvw0KK+OBr+OCieOBoCzjgYvjgZrjgZ/jgYsNCivjga/jgovjgZ/jgass44KI44GG44G444GEDQor44Gy44GM44GX44GuLOOBvuOBleOBsuOCjQ0KK+OBsuOBjOOBl+OChOOBvizjga/jgZrjgY0NCivjgbLjgZDjgaEs44GE44GP44GeDQor44GE44GX44Gv44KJLOOBguOBpOOCiA0KK+OBsuOBmOOBi+OBnyzjgYLjgY3jgojjgZcNCivjgbLjgbMs44Gf44Gk44KEDQor44Gy44KH44G4LOOBiuOBleOCgA0KK+OBsuOCieOBhCzjgZQNCivjgbLjgonjgYvjgo8s44GC44GN44GTDQor44Gy44KJ44GPLOOCiOOBl+OChuOBjQ0KK+OBsuOCieOBleOCjyzjgaTjgZDjgY0NCivjgYTjga7jga/jgoks44G+44Gq44G2DQor44Gy44KJ44GfLOOBn+OBkeOBsuOCjQ0KK+OBsuOCieOBrOOBvizjgb7jgZPjgagNCivjgbLjgonjga4s44KK44KHDQor44Gy44KJ44KE44G+LOOBvuOBleOBsuOBpw0KK+OBsuOCjeOBhuOBoSzjgYrjgZXjgoANCivjgbLjgo3jgYrjgYss44Gq44GK44KEDQor44Gy44KN44GL44KPLOOCiuOBiA0KK+OBteOBj+OBhCzjgZ/jgYvjgbLjgo0NCivjgbXjgY/jgaAs44G+44GNDQor44G144GP44GgLOOChg0KK+OBk+OCiizjgZfjgZLjgb/jgaQNCivjgbXjgZjjgYQs44Gf44GR44KI44GXDQor44G144GY44GELOOBsuOCjeOBguOBjQ0KK+OBhOOBpyzjgZ/jgaTjgagNCivjgbXjgZjjgYQs44Go44KC44Gy44KNDQor44G144GY44GKLOOBsuOBp+OBruOCig0KK+OBteOBmOOBiuOBiyzjgZjjgoXjgpPjgoQNCivjgbXjgZjjgY/jgoks44GX44GS44GNDQor44G144GY44GV44KPLOOBkeOCk+OBmA0KK+OBteOBmOOBleOCjyzjgZ/jgY/jgbLjgo0NCivjgbXjgZjjgZfjgZIs44GP44Gr44Gk44GQDQor44G144GY44GfLOOBi+OBmuOBig0KK+OBhOOBruOBhuOBiCzjgZ/jgo3jgYYNCivjgbXjgZjjgags44GX44GS44KLDQor44G144GY44Gq44GMLOOCjOOBhA0KK+OBteOBmOOCj+OCiSzjgobjgYvjgZMNCivjgbXjgZjjgo/jgoks44GR44KT44Gf44KN44GGDQor44G144GbLOOBvuOBleOBjQ0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgbXjgovjgYvjgo8s44GZ44GZ44KADQor44GE44GX44GELOOBjeOCh+OBkw0KK+OBteOCi+OBleOCjyzjgZjjgoXjgavjgaENCivjgbXjgovjgZ8s44Gg44GE44GeDQor44G144KL44GfLOOBoeOBiOOBkw0KK+OBteOCi+OBnyzjgbLjgo3jgYvjgZoNCivjgbXjgo8s44Gf44GL44KG44GNDQor44G744GXLOOBkeOCk+OBhOOBoQ0KK+OBu+OBneOBoCzjgY3jgY/jgZMNCivjgYTjgZfjgYQs44GT44GG44GYDQor44G744KK44GL44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBu+OCiuOBk+OBlyzjgZHjgYTjgYTjgaENCivjgbvjgpPjgaAs44GR44KT44GE44GhDQor44G+44GI44GL44KPLOOBruOCiuOBig0KK+OBvuOBiOOBoCzjgobjgYsNCivjgb7jgYjjgaAs44Gq44GM44G+44GVDQor44G+44GI44GgLOOBqOOCguOBr+OCiw0KK+OBvuOBiOOBrizjgajjgZfjgY0NCivjgb7jgY0s44GL44GK44KLDQor44G+44GN44Ge44GuLOOBvuOBleOBv+OBpA0KK+OBvuOBjeOBnyzjgobjgYbjgYTjgaENCivjgb7jgY3jga4s44Gg44GE44GZ44GRDQor44G+44GV44GNLOOBsuOCjeOBjQ0KK+OBvuOBmeOBluOBjSzjgZPjgYbjgYTjgaENCivjgb7jgZnjgaAs44KI44GX44GC44GNDQor44G+44GZ44G244GhLOOBquOBiuOBkw0KK+OBvuOBoeOBoCzjgb/jgYoNCivjgb7jgaTjgYbjgoks44G+44KG44G/DQor44G+44Gk44GL44KPLOOBkeOBhOOBmeOBkQ0KK+OBvuOBpOOBluOBjSzjgbLjgo3jgb/jgaENCivjgb7jgaTjgZbjgY0s44Gq44GK44GTDQor44G+44Gk44GX44GfLOOBsuOCjeOBguOBjQ0KK+OBvuOBpOOBl+OBvizjga7jgbzjgosNCivjgb7jgaTjgaAs44KL44G/DQor44G+44Gk44GgLOOBv+OBquOBkw0KK+OBvuOBpOOBoCzjgZ/jgo3jgYYNCivjgb7jgaTjgarjgYws44Gf44GL44GXDQor44G+44Gk44Gq44G/LOOBleOBqOOBlw0KK+OBvuOBpOOBsOOCiSzjgarjgb8NCivjgb7jgaTjgbDjgoks44GV44KE44GLDQor44G+44Gk44G/44KELOOBi+OBpOOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgoDjga3jgY0NCivjgb7jgaTjgoLjgags44KG44Ga44KLDQor44G+44Gk44KC44GoLOOCiOOBl+OBkw0KK+OBvuOBpOOCguOBqCzjgobjgZnjgZENCivjgb7jgaTjgoLjgags44GL44Ga44Gy44KNDQor44G+44Gk44KE44G+LOOBv+OChuOBjQ0KK+OBvuOBquOBuSzjgYjjgorjgZMNCivjgb7jgovjgoTjgb4s44KC44Go44KIDQor44G+44KL44KE44G+LOOBoOOBhOOBmeOBkQ0KK+OBv+OBhuOCiSzjgb7jgY0NCivjgb/jgY/jgass44GT44Ga44GIDQor44G/44Ga44GL44G/LOOBsuOBp+OBig0KK+OBv+OBpOOBr+OBlyzjgZfjgZLjgobjgY0NCivjgb/jgarjgags44Gf44GL44GXDQor44G/44Gq44G/LOOBguOChuOBvw0KK+OBv+OBteOBrSzjgZ/jgYvjgZcNCivjgb/jgoTjgYzjgo8s44GT44GG44GYDQor44G/44KE44GV44GLLOOBruOCiuOBteOBvw0KK+OBv+OChOOBluOCjyzjgZXjgajjgb8NCivjgoDjgonjgYos44GR44KT44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBk+OBqA0KK+OCgOOCieOBnyzjgYvjgZrjgbLjgacNCivjgoDjgonjgb7jgaQs44Gf44GR44G144G/DQor44KA44KJ44KE44G+LOOChuOBmeOBkQ0KK+OCgOOCieOChOOBvizjgbLjgo3jgZMNCivjgoHjgZDjgo0s44Gh44Ga44GTDQor44KC44Gh44Ga44GNLOOCiuOCh+OBmeOBkQ0KK+OCguOBqOOCiOOBlyzjgb7jgZXjgY0NCivjgoLjgoLjgZos44Gy44KN44GNDQor44KC44KKLOOChOOBmeOBv+OBpA0KK+OCguOCiizjgbXjgb/jgarjgooNCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBruOCiuOCiOOBlw0KK+OCguOCiuOBnyzjgbLjgo3jgobjgY0NCivjgoLjgorjgZ8s44Gf44GL44KG44GNDQor44KC44KK44GuLOOCiOOBl+OBsuOCjQ0KK+OCguOCiuOCguOBqCzjgb7jgZXjgZcNCivjgoLjgorjgoLjgags44GX44Gu44G2DQor44KC44KK44KE44G+LOOBmOOCheOCkw0KK+OCguOCiuOCj+OBjSzjgb7jgZXjgZMNCivjgoTjgY4s44G+44GV44G/DQor44KE44GOLOOBkeOCk+OBmeOBkQ0KK+OChOOBj+OBl+OBmCzjga7jgbbjgobjgY0NCivjgoTjgZMs44Go44GX44GKDQor44KE44GW44KPLOOBi+OBmuOBguOBjQ0KK+OChOOBmeOBvizjgajjgoLjgbLjgZMNCivjgoTjgajjgZQs44GT44GG44GE44GhDQor44GY44KH44GM44KTLOOBvuOBk+OBqA0KK+OChOOBquOBtizjgobjgY3jgZMNCivjgoTjga4s44G+44GV44GNDQor44KE44G244GfLOOChOOBmeOBn+OBiw0KK+OChOOBvuOBhuOBoSzjgb/jgbsNCivjgoTjgb7jgYbjgaEs44Gf44G+44KIDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgoTjgb7jgZDjgaEs44G/44Gh44GKDQor44GY44Gg44GELOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgobjgY3jgZMNCivjgoTjgb7jgZDjgaEs44GL44Ga44KG44GNDQor44KE44G+44GQ44GhLOOBteOBv+OBguOBjQ0KK+OChOOBvuOBleOBjSzjgZHjgYTjgZnjgZENCivjgoTjgb7jgZXjgY0s44KG44Gf44GLDQor44KE44G+44GW44GNLOOBiuOBleOCgA0KK+OChOOBvuOBl+OBnyzjgaTjgojjgZcNCivjgoTjgb7jgZfjgZ8s44GR44KT44GE44GhDQor44KE44G+44GX44GfLOOBkeOCk+OBmOOCjQ0KK+OChOOBvuOBoCzjgYLjgYQNCivjgoTjgb7jgaAs44Gv44Gq44GIDQor44KE44G+44GgLOOBleOBqOOBlw0KK+OChOOBvuOBoCzjgZfjgoXjgZMNCivjgoTjgb7jgaAs44Gy44KN44GXDQor44KE44G+44Go44KELOOChuOBjeOBkw0KK+OChOOBvuOBquOBiyzjgb/jgaTjga/jgosNCivjgoTjgb7jgarjgZcs44KK44KHDQor44KE44G+44Gr44GXLOOChOOBmeOBvuOBlQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgZMNCivjgoTjgb7jgoLjgags44Gy44KN44GC44GNDQor44KE44G+44KC44GoLOOBiOOBhOOBnw0KK+OChOOBvuOCguOBqCzjgZvjgYTjgZMNCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpMNCivjgojjgZPjgZ8s44GC44Gk44KEDQor44KI44GT44GfLOOBi+OBmuOBsuOCjQ0KK+OCiOOBk+OBnyzjgb7jgZXjgagNCivjgojjgZPjgaYs44Gf44GP44KEDQor44KI44GX44GK44GLLOOBn+OBi+OBlw0KK+OCiOOBl+OBiuOBiyzjgoTjgZnjgYoNCivjgojjgZfjgYrjgYss44Gf44Gk44GYDQor44KI44GX44GL44KPLOOChOOBmeOBsuOBlQ0KK+OCiOOBl+OBi+OCjyzjgY3jgofjgZMNCivjgojjgZfjgaAs44G+44KK44GTDQor44KI44GX44GgLOOBsuOBteOBvw0KK+OCiOOBl+OBoCzjgZjjgoXjgpMNCivjgojjgZfjga4s44Gq44GK44GNDQor44KI44GX44G/LOOBoeOBiw0KK+OCiOOBl+OCgOOCiSzjgYvjgZrjgoQNCivjgojjgaAs44KK44GLDQor44KI44Gt44GW44KPLOOBvuOBquOBvw0KK+OCiuOCheOBqCzjgZDjgYrjgbXjgYQNCivjgYPjgpMs44KI44GZ44GRDQor44KP44GL44Gk44GNLOOBn+OBpOOChA0KK+OCj+OBjeOBluOBiyzjgajjgoLjgbXjgb8NCivjgo/jgY3jgZ8s44GX44GS44KG44GNDQor44KP44GN44GfLOOBi+OCiA0KK+OCj+OBjeOCguOBqCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgo/jgaAs44Gf44GL44GXDQor44KP44GgLOOBguOBpOOBlw0KK+OCj+OBn+OBmyzjgbLjgafjgagNCivjgo/jgZ/jgarjgbks44Gf44GP44KEDQor44KP44Gf44Gq44G5LOOCiuOCh+OBsuOBoQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44GY44KF44KT44GTDQor44KP44Gf44Gq44G5LOOBguOBi+OBrQ0KK+OBjeOBruOBl+OBnyzjgb/jga7jgosNCivjgYLjgYrjgY0s44G+44GV44KG44GNDQor44KE44Gq44GO44Gv44KJLOOBj+OBq+OBsuOBkw0KK+OBguOBvuOBkyzjga7jgorjgbLjgZUNCivjgZPjgpPjganjgYYs44GC44KJ44GfDQor44GX44KJ44GL44KPLOOBkeOBhA0KK+OBk+OChOOBvizjgZQNCivjgZPjgpPjgaks44GX44KT44GZ44GRDQor44KC44KKLOOBl+OCk+OChA0KK+OBiuOBrizjgobjgZnjgZENCivjgb7jga4s44Go44GK44KLDQor44Gq44GM44GuLOOBl+OCh+OBkw0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgb/jgoTjgZbjgY0s44GC44GN44GTDQor44GK44GM44KPLOOBoOOBhA0KK+OBjeOCgOOCiSzjgoTjgZnjga/jgosNCivjgojjgZPjgYos44Gd44GGDQor44GG44Gh44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBlOOBl+OBvizjgarjgYrjgZMNCivjgZXjgYjjgY0s44KI44GX44Gf44GLDQor44Gq44GL44GY44G+LOOChuOBhuOBkw0KK+OBhOOCj+OBvyzjgojjgZfjgbLjgZMNCivjgYjjgZIs44GN44KI44GXDQor44GG44KB44Ge44GuLOOCiOOBl+OBig0KK+OBleOBj+OCieOBhCzjgZfjgYrjgooNCivjgo/jgZ/jgarjgbks44KI44GG44GTDQor44Gq44GM44GELOOBn+OBi+OChuOBjQ0KK+OBiuOBneOBjOOBvyzjgb7jgZPjgagNCivjgY/jgo3jgYvjgo8s44Go44GX44GKDQor44Gf44GL44GZ44GLLOOBsuOBp+OCiOOBlw0KK+OBiuOBsOOBnyzjgYLjgY0NCivjgZfjgonjgYQs44GZ44G/44GTDQor44G+44Gk44GG44KJLOOBiOOCig0KK+OBquOBi+OBluOCjyzjgYLjgoQNCivjgb7jgaTjgYQs44GC44GN44KJDQor44GT44Gb44GNLOOBsuOBp+OBqOOBlw0KK+OBpOOBi+OBoCzjgZHjgpPjgZgNCivjgabjgonjgY/jgoks44Gh44Gq44GkDQor44Gr44G444GELOOCiuOCheOBhOOBoQ0KK+OBi+OCj+OCgOOCiSzjgb/jgY0NCivjgbLjgZQs44Gy44KN44G/DQor44GT44Gw44KE44GXLOOBv+OBuw0KK+OBteOCi+OBnyzjgozjgYQNCivjgoLjgaHjgZrjgY0s44GL44GK44KKDQor44GK44GL44GgLOOBvuOBvw0KK+OBleOBhOOBqOOBhizjgb7jgoQNCivjgYvjgo/jga/jgoks44GX44KH44GUDQor44GZ44Ga44GL44GRLOOBguOBpOOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgojjgZcNCivjgYTjgZfjgZrjgYss44KI44GX44GL44GaDQor44Gf44G544GELOOBvuOBleOBsuOBkw0KK+OBlOOBqCzjgobjgZ/jgYsNCivjgZfjgoLjgZXjgYss44G+44GT44GoDQor44GL44KP44GELOOCiOOBl+OBsuOBlQ0KK+OCj+OBn+OBquOBuSzjgobjgbLjgaENCivjgZnjgZrjgY0s44GT44GG44Gf44KN44GGDQor44G+44Gk44KE44G+LOOBruOCiuOChuOBjQ0KK+OBr+OCiSzjgojjgZgNCivjgaTjgbDjgY0s44GN44KI44GXDQor44KE44GZ44GELOOBn+OBi+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgYrjgYvjgbks44GN44KI44Gu44KKDQor44GK44GM44KPLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgobjgY0NCivjgbXjgZjjgYvjgo8s44Gf44Gk44GXDQor44GE44Gq44GM44GNLOOChuOBjeOBkw0KK+OBoeOBnizjgobjgY0NCivjga/jgarjgaAs44Gf44GP44KEDQor44GK44GTLOOBguOBpOOBkw0KK+OBiuOBj+OCiSzjgbLjgZXjgagNCivjgb7jgaTjgYos44KE44GZ44G+44GVDQor44GI44KT44GpLOOBguOBjeOBsuOCjQ0KK+OBu+OCiuOBuSzjgajjgYrjgosNCivjgYvjgaQs44GL44Ga44G+DQor44GK44Gf44GLLOOCiOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgYTjgaTjgbXjgb8NCivjgoDjgonjgoTjgb4s44Gy44KN44GXDQor44KI44GX44GK44GLLOOCiuOCh+OBuOOBhA0KK+OBi+OBhCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44GQ44KT44GSLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBrizjgZXjgobjgooNCivjga/jgoTjgZcs44GX44KH44GTDQor44G/44GG44KJLOOBleOBqOOBlw0KK+OBguOBiuOChOOBjizjgZHjgpPjgZgNCivjgZ/jgYvjgaAs44Gy44Gn44Go44GXDQor44Gs44G+44GfLOOBqOOBl+OBsuOBkw0KK+OBi+OBn+OBiuOBiyzjgZjjgoXjgpPjgoQNCivjgZfjgb/jgZos44KC44Go44GC44GNDQor44GX44G/44GaLOOBmeOBv+OBsuOCjQ0KK+OBvuOBpOOCgOOCiSzjgaTjgajjgoANCivjgYrjgorjgags44G+44KK44GTDQor44GT44Gf44GrLOOCguOBqOOBmA0KK+OBiuOBr+OBlyzjgabjgaTjgbLjgo0NCivjgYvjgpPjgZvjgY0s44G+44GV44Gu44G2DQor44GN44Gf44KA44KJLOOBqOOBl+OChA0KK+OBleOBj+OBnyzjgobjgYbjgZMNCivjgojjgZfjgaAs44GV44KG44KKDQor44GT44Gv44KJLOOCiOOBl+OBiA0KK+OBgyzjgo/jgYvjgZMNCivjgYTjga/jgoks44Gf44G+44KIDQor44Gk44GY44GG44KJLOOBn+OBhA0KK+OBquOBi+OCgOOCiSzjgYLjgoTjgZMNCivjgYLjgYrjgY0s44G+44Gq44G/DQor44GC44GK44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBguOBi+OBhOOBkSzjgajjgY/jgbLjgZMNCivjgYLjgYvjgaQs44GR44KT44GYDQor44GC44GN44Gv44KJLOOBi+OBiuOCiw0KK+OBguOBjeOCguOBqCzjgZXjgaHjgZMNCivjgYLjgZXjgY/jgoks44KG44GG44GTDQor44GC44GV44GuLOOBn+OCjeOBhg0KK+OBguOBs+OCiyzjgZXjgajjgZcNCivjgYLjgbks44G144G/44Gy44GTDQor44GC44G5LOOCiuOChw0KK+OBguOBuSzjgZHjgYTjgZMNCivjgYLjgbnjgYvjgo8s44GT44GG44Gf44KN44GGDQor44GC44KJ44GELOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOCieOBhCzjgZ/jgYvjgZcNCivjgYLjgonjgYvjgo8s44Go44GK44KLDQor44GC44KJ44GNLOOBr+OCi+OBqg0KK+OBguOCieOBjSzjgZHjgYTjgZMNCivjgYLjgorjgYgs44GL44Ga44Gy44KNDQor44GC44KT44Gp44GGLOOBpOOCiOOBlw0KK+OBhOOBhOOBoCzjgYLjgY3jgZMNCivjgYTjgZHjgaAs44Gg44GE44GZ44GRDQor44GE44GR44GgLOOBsuOCjeOBvw0KK+OBhOOBkeOBoCzjgZjjgoXjgpMNCivjgYTjgZfjgYQs44GX44KF44KT44GZ44GRDQor44GE44GX44GELOOBvuOCig0KK+OBhOOBl+OBjOOBjSzjgZ/jgYvjgZcNCivjgYTjgZfjgYvjgo8s44KK44KHDQor44GE44GX44GL44KPLOOBguOBhOOBkw0KK+OBhOOBl+OBluOCjyzjga7jgorjgZ/jgYsNCivjgYTjgZfjgZrjgb8s44KG44GNDQor44GE44GX44Gc44GNLOOBn+OBj+OChA0KK+OBhOOBl+OBoCzjgajjgoLjgZMNCivjgYTjgZfjgaAs44Gu44KK44Gy44GoDQor44GE44GX44GgLOOBvuOBleOBqOOBlw0KK+OBhOOBl+OBpSzjgbLjgo3jgY0NCivjgYTjgZfjga/jgoks44Gf44GL44GC44GNDQor44GE44GX44G+44KLLOOBsuOCjeOBlw0KK+OBhOOBn+OBqyzjgb7jgZXjgbXjgb8NCivjgYTjgZ/jga/jgoks44GR44KT44Gf44KN44GGDQor44GE44Gh44G+LOOBmOOCheOBq+OBoQ0KK+OBhOOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Go44GGLOOBquOBiuOBjQ0KK+OBhOOBqOOBhizjga7jgbbjgoTjgZkNCivjgYTjgajjgYYs44Gv44KE44GoDQor44GE44Go44GGLOOBv+OChOOBkw0KK+OBhOOBqOOBhizjgobjgY0NCivjgYTjgajjgYYs44KG44G/44GTDQor44GE44Gq44GM44GNLOOBpuOCi+OBjQ0KK+OBhOOBquOBvyzjgZfjgoXjgbjjgYQNCivjgYTjga4s44Gg44GE44GZ44GRDQor44GE44Gu44GG44GILOOChuOBhuOBmA0KK+OBhOOBruOBhuOBiCzjgozjgYTjgZMNCivjgYTjgb7jgYos44KI44GX44Gf44GLDQor44GE44G+44GgLOOBn+OBi+OBlw0KK+OBhOOCj+OBi+OBvyzjgbXjgb/jgarjgYoNCivjgYTjgo/jgY/jgoks44GX44KF44Gy44GhDQor44GE44KP44GW44GNLOOBn+OBi+OBlw0KK+OBhOOCj+OBnyzjgbLjgZXjgaTjgZANCivjgYTjgo/jgoLjgags44Gq44GK44GoDQor44GG44GI44GZ44GOLOOChuOBhuOBkw0KK+OBhuOBiOOBoCzjgobjgYbjgYTjgaHjgo3jgYYNCivjgYbjgYjjgZ/jgYss44Gy44KN44GL44GaDQor44GG44GI44GhLOOBguOBjeOBkw0KK+OBhuOBiOOBrizjgZfjgZrjgZMNCivjgbLjgorjgoUs44GK44GNDQor44GG44GI44KA44KJLOOBpOOCiOOBlw0KK+OBhuOBoeOBoCzjgbLjgo3jgobjgY0NCivjgYbjgaHjgaAs44GX44GS44GNDQor44GG44Gh44Gv44GXLOOCjOOBig0KK+OBhuOBoeOChOOBvizjgb/jgY0NCivjgYbjgoHjga/jgoks44G+44GV44GNDQor44GG44KK44Gf44GrLOOBn+OBi+OBlw0KK+OBiOOBuSzjgZjjgoXjgpPjgbrjgYQNCivjgYrjgYTjgYvjgo8s44GR44KT44GE44GhDQor44GK44GK44GELOOChuOBmeOBkQ0KK+OBiuOBiuOBhCzjgobjgZ/jgYsNCivjgYrjgYrjgYTjgZcs44Gy44KN44Gf44GLDQor44GK44GG44GhLOOBk+OBhuOBmA0KK+OBiuOBiCzjgbLjgo3jgY0NCivjgYrjgYrjgYrjgYss44GY44KF44KT44GTDQor44GK44GK44GL44KPLOOBvuOBleOChA0KK+OBiuOBiuOBj+OBvCzjgZfjgofjgZgNCivjgYrjgYrjgY/jgb4s44G+44KKDQor44GK44GK44GfLOOBkeOCk+OBmA0KK+OBiuOBn+OBqyzjgZPjgYbjgZgNCivjgYrjgYrjgaQs44G+44GV44Gy44KNDQor44GK44GK44GkLOOBguOChA0KK+OBiuOBiuOBpOOBiyzjgY3jgYTjgaENCivjgYrjgYrjgaTjgYss44GUDQor44GK44GK44Gk44GLLOOCjOOBvw0KK+OBiuOBiuOBpOOBiyzjgarjgaTjgZMNCivjgYrjgYrjgaTjgbws44G+44GZ44G/DQor44GK44GK44Gv44GfLOOChuOBsuOCgw0KK+OBiuOBiuOBvuOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgYrjgoQs44Go44KC44KG44GNDQor44GK44KE44G+LOOBi+OCiOOBkw0KK+OBiuOBiyzjgb7jgZXjgbLjgZMNCivjgYrjgYvjgZjjgb4s44GR44KT44GX44KTDQor44GK44GL44GgLOOBoOOBhOOBmeOBkQ0KK+OBiuOBi+OBoCzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgaAs44G+44GV44KEDQor44GK44GL44GgLOOCiuOChw0KK+OBiuOBi+OBoCzjga7jgorjgbLjgo0NCivjgYrjgYvjga/jgZ8s44Gu44G244Gy44KNDQor44GK44GL44G5LOOBl+OBmuOBiw0KK+OBiuOBi+OCguOBqCzjgaHjgYgNCivjgYrjgYvjgoLjgags44Gm44Gk44KEDQor44GK44GL44KC44GoLOOBmOOCheOCkw0KK+OBiuOBjOOCjyzjgabjgovjgbLjgo0NCivjgYrjgYzjgo8s44GC44GN44KJDQor44GK44GP44GgLOOBkeOBhA0KK+OBiuOBj+OBqCzjgb7jgZXjgb/jgaQNCivjgYrjgY/jgarjgYss44GC44GN44GTDQor44GK44GQ44KJLOOBn+OBpOOBig0KK+OBiuOBluOBjSzjgZHjgYTjgZgNCivjgYrjgZXjgaAs44Gf44GE44GZ44GRDQor44GK44GW44KPLOOBn+OCjeOBhg0KK+OBiuOBmOOBvizjgb/jgaTjga7jgbYNCivjgYrjgZjjgb4s44Gf44Gk44KEDQor44GK44Gw44KJLOOBoeOBsuOCjQ0KK+OBi+OBhOOBqOOBhizjga7jgorjgojjgZcNCivjgYvjgY3jgY/jgoks44GV44Go44GXDQor44GL44GN44KC44GoLOOCi+OBvw0KK+OBi+OBjyzjgZ/jgaTjgoQNCivjgYvjgZLjgoTjgb4s44KE44GZ44G+44GVDQor44GL44GY44Gq44GMLOOBsuOBleOBlw0KK+OBi+OBl+OBvizjgojjgZfjga7jgooNCivjgYvjgZ/jgYrjgYss44Gy44Gn44GNDQor44GL44Gf44GO44KKLOOBkeOBhOOBkw0KK+OBi+OBn+OChOOBvizjgaDjgYTjgZnjgZENCivjgYvjgaks44GT44G444GEDQor44GL44Go44GGLOOBleOBoQ0KK+OBi+OBqOOBhizjgZvjgYTjgZcNCivjgYvjgajjgYYs44Gf44KN44GGDQor44GL44Go44GGLOOBruOBtuOBguOBjQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gy44KN44G/DQor44GL44Go44GGLOOBvuOBk+OBqA0KK+OBi+OBqOOBhizjgb7jgZXjgZcNCivjgYvjgajjgYYs44KG44KK44GTDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OBquOCguOBqCzjgb7jgZXjgobjgY0NCivjgYvjgarjgoQs44Gm44Gk44KEDQor44GL44Gt44GTLOOBk+OBhuOBmA0KK+OBi+OBreOCguOCiizjgZ/jgaDjgbLjgZUNCivjgYvjgo8s44KG44Gf44GLDQor44GL44KP44GELOOCiOOBl+OBsuOBkw0KK+OBi+OCj+OBhCzjgZ/jgYvjgbLjgo0NCivjgYvjgo/jgYvjgb8s44Gq44Gk44GTDQor44GL44KP44GQ44GhLOOBvuOBsuOBqA0KK+OBi+OCj+OBkOOBoSzjgobjgb/jgZMNCivjgYvjgo/jgZDjgaEs44KK44Gk44GTDQor44GL44KP44GQ44GhLOOCiuOChw0KK+OBi+OCj+OBkOOBoSzjgbXjgb8NCivjgYvjgo/jgZTjgYTjgZcs44KM44GE44GTDQor44GL44KP44GX44G+LOOBmeOBv+OCjA0KK+OBi+OCj+OBqizjgbLjgo3jgZcNCivjgYvjgo/jga7jgbks44Gm44Gk44KEDQor44GL44KT44GuLOOBleOBqOOBlw0KK+OBjeOBj+OBoSzjgo/jgZ/jgosNCivjgY3jgZcs44GT44GG44GE44Gh44KNDQor44GN44GX44KC44GoLOOBguOBjeOBkw0KK+OBjeOBl+OCjSzjgZfjgpPjgoQNCivjgY3jgZ/jgYos44KI44GX44GL44GaDQor44GN44Gf44Gv44G+LOOChg0KK+OBjeOBn+OCgOOCiSzjgojjgZfjgYvjgZoNCivjgY3jganjgZPjgo0s44GT44GG44GYDQor44GN44KA44KJLOOBr+OCi+OBkw0KK+OBjeOCgOOCiSzjgb7jgZXjgYrjgb8NCivjgY3jgoDjgoks44Gh44GL44GTDQor44GN44KK44GC44GRLOOBl+OCheOCk+OBmeOBkQ0KK+OBj+OBjeOCguOBqCzjgajjgZfjgbLjgZMNCivjgY/jgbws44Gy44KN44GNDQor44GP44G844GfLOOBmeOBmeOCgA0KK+OBj+OBvuOBj+OCiSzjgZ/jgYvjgobjgY0NCivjgY/jgb7jgaAs44GU44KNDQor44GP44G+44KC44GoLOOBn+OBkeOBlw0KK+OBj+OCgSzjgobjgY3jgZMNCivjgY/jgonjgoQs44KE44GZ44Gu44G2DQor44GP44KK44KP44GNLOOBruOBnuOBvw0KK+OBj+OCj+OBsOOCiSzjgozjgYTjgZMNCivjgZQs44Gf44GR44GXDQor44GT44GE44GRLOOChOOBmeOBlw0KK+OBk+OBhOOBkSzjgZfjgpMNCivjgZPjgZXjgYss44Gf44GR44Gu44KKDQor44GT44GgLOOCiOOBl+OBruOCig0KK+OBk+OBjCzjgYLjgaTjgZcNCivjgZPjgY/jgbws44GT44GG44GE44GhDQor44GT44GP44KJLOOBvuOBk+OBqA0KK+OBk+OBlCzjgYLjgYTjgZMNCivjgZPjgZXjgY0s44GI44GE44GV44GPDQor44GT44GY44G+LOOBqOOBl+OBjQ0KK+OBk+OBp+OCiSzjgY/jgavjgobjgY0NCivjgZTjgags44G+44KG44G/DQor44GU44GoLOOCiuOBiw0KK+OBlOOBqCzjgobjgZnjgZENCivjgZPjga/jgZ8s44Gy44KN44GC44GNDQor44GT44Gw44KE44GXLOOBvuOBleOBsuOBqA0KK+OBk+OBsOOChOOBlyzjgZPjgbjjgYQNCivjgZPjgb7jgaTjgbDjgoks44G+44GN44GTDQor44GT44G/44KELOOChuOBi+OCig0KK+OBk+OBv+OChOOBvizjgabjgovjgYoNCivjgZPjgoTjgarjgY4s44GV44Go44KLDQor44GT44KE44G+LOOCjOOBiuOBqg0KK+OBk+OCk+OBqSzjgoDjgaTjgb8NCivjgZPjgpPjga4s44GC44KE44GTDQor44GV44GE44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgoLjgoLjgYgNCivjgZXjgYTjgajjgYYs44KK44GIDQor44GV44GE44Go44GGLOOCiuOCheOBmA0KK+OBleOBhOOBqOOBhizjgorjgofjgYbjgZnjgZENCivjgZXjgYvjgYQs44Gy44KN44GTDQor44GV44GL44GuLOOBi+OBmuOBqA0KK+OBleOBi+OCguOBqCzjgaDjgYTjgZnjgZENCivjgZXjgYvjgoLjgags44GR44GE44GTDQor44GV44GP44KJ44GELOOBi+OBmuOBruOCig0KK+OBleOBleOBjSzjgaHjgojjgb8NCivjgZXjgZXjgY0s44Go44GK44KLDQor44GV44GV44GNLOOBquOBu+OBkw0KK+OBleOBleOBjSzjgb/jgbsNCivjgZXjgZXjgY0s44Go44GP44GTDQor44GV44GV44GuLOOBvuOBleOCiOOBlw0KK+OBleOBoOOCguOBqCzjgZfjgpPjgoQNCivjgZXjgajjgYYs44Gf44GL44GTDQor44GV44Go44GGLOOBruOBtuOBiw0KK+OBleOBqOOBhizjga7jgbbjgbsNCivjgZXjgajjgYYs44Gy44KN44Gy44GnDQor44GV44Go44GGLOOBl+OBkuOCiw0KK+OBleOBquOBoCzjgZHjgpPjgYTjgaENCivjgZXjga3jgZfjgZIs44GR44KT44GUDQor44GV44GuLOOBguOBhA0KK+OBl+OBkuOBqOOBvyzjgorjgofjgZnjgZENCivjgZfjga7jga/jgoks44KG44GN44GTDQor44GX44Gw44GL44KPLOOCj+OBn+OCiw0KK+OBl+OBsOOBrizjgaHjgYvjgokNCivjgZfjgb7jgaAs44G+44GV44G144G/DQor44GX44G+44GgLOOCiOOBl+OBkw0KK+OBl+OBv+OBmizjgZ/jgZHjgobjgY0NCivjgZfjgoDjgoks44KG44GN44GKDQor44GX44KA44KJLOOBleOBjQ0KK+OBl+OCguOBi+OCjyzjgoTjgZnjgbLjgo0NCivjgZfjgoLjgbXjgZgs44GC44GL44GODQor44GX44KC44KE44G+LOOBkuOCk+OBkw0KK+OBl+OChyzjgbLjgo3jgY0NCivjgZfjgonjgYQs44KG44Gy44Gh44KNDQor44GX44KJ44GMLOOBn+OBi+OBlw0KK+OBl+OCieOBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgZfjgonjgZks44Go44KC44GTDQor44GX44KPLOOBvuOBleOChuOBjQ0KK+OBl+OCk+OBkSzjgajjgZfjga7jgbYNCivjgZfjgpPjgaks44GL44Ga44Gy44GTDQor44GZ44GM44Gv44KJLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOBoSzjgoLjgorjgbLjgZMNCivjgZnjgY7jgYbjgoks44GR44KT44GY44KNDQor44GZ44GO44GV44KPLOOCiuOChw0KK+OBmeOBjuOBr+OCiSzjgZ/jgZHjgZcNCivjgZnjgY7jgoLjgags44Gf44Gk44KNDQor44GZ44GO44KE44G+LOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjga7jgooNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GZ44Ga44GNLOOBqOOCguOChA0KK+OBmeOBmuOBjSzjga7jgbbjgbLjgZMNCivjgZnjgZrjgY0s44Gy44Gn44GL44GaDQor44GZ44Ga44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgorjgYgNCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44GgLOOChOOBmeOBkw0KK+OBmeOBqCzjgb/jgobjgY0NCivjgZnjgb/jgaAs44GR44KT44GE44GhDQor44Gb44GNLOOBquOBhOOBl+OCkw0KK+OBm+OBjSzjgajjgoLjgYvjgZoNCivjgZvjgpPjgaAs44Gy44KN44GL44GaDQor44Gd44KB44G/44KELOOBl+OCh+OBn+OCjeOBhg0KK+OBneOChCzjgaHjgYLjgY0NCivjgaDjgYTjgb7jgoss44KI44GG44GTDQor44Gf44GL44GKLOOBsuOCjeOBruOBtg0KK+OBn+OBi+OBjizjgabjgovjgobjgY0NCivjgZ/jgYvjgZbjgo8s44Gf44Gk44KEDQor44Gf44GL44GbLOOBvuOBleOChuOBjQ0KK+OBn+OBi+OBrSzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44Gf44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgoQNCivjgZ/jgYvjga/jgZcs44KK44KF44GfDQor44Gf44GL44Gv44GXLOOBruOCiuOBkw0KK+OBn+OBi+OChOOBvizjgb/jgYvjgZMNCivjgZ/jgY3jgYbjgaEs44KK44KT44KEDQor44Gf44GN44GL44KPLOOBpuOBpOOChA0KK+OBn+OBjeOBkOOBoSzjgYLjgY3jgbLjgo0NCivjgZ/jgY3jgZbjgo8s44GC44Gk44Gq44KKDQor44Gf44GN44GW44KPLOOBi+OBmuOBjQ0KK+OBn+OBjeOBluOCjyzjgobjgY3jgZMNCivjgZ/jgY3jgZ8s44Gh44GIDQor44Gf44GQ44GhLOOBsuOCjeOBjQ0KK+OBn+OBkeOBhCzjgYLjgY3jgokNCivjgZ/jgZHjgYbjgaEs44Gv44Gq44GIDQor44Gf44GR44GgLOOBi+OCiA0KK+OBn+OBkeOBr+OCiSzjgaDjgpMNCivjgZ/jgabjga4s44GR44KT44GYDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZMNCivjgZ/jgarjgYss44Gf44GL44GXDQor44Gf44Gq44GLLOOBsuOCjeOBquOBig0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44G+44Gq44G2DQor44Gf44Gq44GLLOOChuOBjeOBig0KK+OBn+OBquOBiyzjgorjgYgNCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gq44G5LOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBqyzjgZXjgajjgZcNCivjgZ/jgavjgYvjgo8s44GT44GG44GY44KNDQor44Gf44Gr44GQ44GhLOOBoeOBsuOCjQ0KK+OBn+OBq+OBquOBiyzjgYLjgY3jgokNCivjgZ/jgavjgoLjgags44GR44KT44Gf44KN44GGDQor44Gf44Gs44G+LOOBj+OBq+OBig0KK+OBn+OBsOOBnyzjgZfjgpPjgZQNCivjgZ/jgbDjgZ8s44KG44Gy44Gh44KNDQor44Gf44Gw44GfLOOCiOOBhuOBkw0KK+OBn+OBsOOBnyzjgarjgYrjgZ/jgYsNCivjgZ/jgoDjgoks44Gg44GE44GZ44GRDQor44Gf44KL44GNLOOBmeOBmeOCgA0KK+OBn+OCk+OBmCzjgYLjgY3jgokNCivjgaHjgbAs44Gq44GKDQor44Gh44GwLOOBm+OBhOOBmA0KK+OBpOOBi+OBoCzjgajjgYrjgosNCivjgaTjgY3jgoLjgags44Gq44GK44GTDQor44Gk44GYLOOBiOOCiuOBkw0KK+OBpOOBoCzjgb/jgaTjgYgNCivjgaTjgaHjgoLjgags44GX44KT44GE44Gh44KN44GGDQor44Gk44Gk44G/LOOBoeOBi+OCiA0KK+OBpOOBpOOBvyzjgojjgZfjgaTjgZANCivjgaTjgbzjgZ8s44GR44GkDQor44Gm44GELOOBsuOCjeOBn+OBiw0KK+OBpuOCieOBi+OBqSzjgaHjgZrjgosNCivjgb/jga7jgYbjgoks44G144G/44Gy44GTDQor44Gm44KL44GELOOBmOOCheOCkw0KK+OBqeOBhCzjgZMNCivjgags44KI44GZ44GRDQor44Go44GL44GE44KK44KTLOOBkeOBhOOBn+OCjeOBhg0KK+OBqeOCgeOCkyzjgZPjgYbjgYTjgaENCivjgajjgYvjgYQs44KG44GNDQor44Go44GP44Gq44GMLOOBjeOCiOOBruOCig0KK+OBqOOBj+OChOOBvizjgYvjgZrjgobjgY0NCivjgajjgZfjgb4s44Gy44KN44GL44GaDQor44Gp44GhLOOCiuOBiA0KK+OBqOOBruOBhCzjgYLjgaTjgZcNCivjgajjga7jgoDjgoks44Gy44KN44GXDQor44Go44G/44GfLOOBjeOBv+OBsuOBkw0KK+OBqOOCguOBrizjgZfjgpPjgZQNCivjgajjgorjgYQs44Go44KC44GTDQor44Gq44GM44GELOOBmOOCheOBq+OBoQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgoQNCivjgarjgYvjgYzjgo8s44KP44GL44G/DQor44Gq44GL44GM44KPLOOBv+OBpOOBguOBjQ0KK+OBquOBi+OBluOBqCzjgb7jgarjgbYNCivjgarjgYvjgZfjgb4s44G+44KKDQor44Gq44GM44GfLOOBk+OBhuOBn+OCjeOBhg0KK+OBquOBi+OBrizjgb7jgY3jgZMNCivjgarjgYzjga4s44KG44G/DQor44Gq44GM44GuLOOBiOOBpOOBkw0KK+OBquOBi+OCgOOCiSzjgYvjgYrjgooNCivjgarjgYvjgoDjgoks44GN44G/44Gf44GLDQor44Gq44GL44KA44KJLOOBn+OBhOOBjA0KK+OBquOBi+OCgOOCiSzjgb/jgo/jgZMNCivjgarjgYvjgoLjgoos44Go44KC44KG44GNDQor44Gq44GL44KE44G+LOOBguOBjeOBkw0KK+OBquOCi+OBmyzjgorjgYjjgZMNCivjgarjgpPjgZQs44GP44Gr44GKDQor44Gq44KT44GwLOOBsuOBp+OBi+OBmg0KK+OBquOCk+OBsCzjgb7jgoLjgosNCivjgavjgYTjgb8s44Go44KC44Gu44KKDQor44Gr44GX44GKLOOBhOOBj+OBvg0KK+OBq+OBl+OBiuOBiyzjgojjgZfjga7jgooNCivjgavjgZfjgYrjgYss44Gg44GE44GZ44GRDQor44Gr44GX44GV44GLLOOCguOBqOOBruOBtg0KK+OBq+OBl+OBluOBjSzjgaHjgYvjgZMNCivjgavjgZfjgZbjgo8s44KG44GLDQor44Gr44GX44GuLOOBi+OBqg0KK+OBrOOBvuOBn+OBjSzjgorjgofjgZ8NCivjga3jgY7jgZcs44KK44KHDQor44Gt44KE44G+LOOCiOOBhuOBkw0KK+OBruOBoCzjgZXjgajjgZcNCivjga7jgZDjgaEs44Gf44GR44GXDQor44Gu44GQ44GhLOOBpuOBpOOChA0KK+OBruOBkOOBoSzjgajjgY/jgZMNCivjga7jgZDjgaEs44Go44KC44Gy44KNDQor44Gu44GW44GNLOOBn+OBi+OBlw0KK+OBruOBoCzjgb7jgZXjgY0NCivjga7jgbzjgoos44GR44KTDQor44Gu44KA44KJLOOBk+OBhuOBmA0KK+OBruOCgOOCiSzjgZPjgbjjgYQNCivjga7jgoDjgoks44KI44GYDQor44Gv44GO44KP44KJLOOBl+OCk+OBhOOBoQ0KK+OBr+OBl+OBkOOBoSzjgajjgoLjgZMNCivjga/jgZfjgoLjgags44G+44G/DQor44G+44GNLOOBn+OBj+OBvg0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgY0NCivjga/jgZvjgYzjgo8s44GV44Go44GXDQor44Gv44GgLOOCguOBqOOBjQ0KK+OBr+OBo+OBqOOCiizjgorjgYsNCivjga/jgaPjgajjgoos44Gf44GR44GXDQor44Gw44GwLOOBoeOBguOBjQ0KK+OBsOOBsCzjga7jgorjgZMNCivjgbDjgbAs44KI44GZ44GRDQor44Gw44GwLOOBkeOBhOOBmA0KK+OBr+OBvuOBoCzjgZfjgpPjgY3jgaENCivjga/jgb7jgaAs44Gg44GE44GZ44GRDQor44Gv44G+44GgLOOBsuOCjeOBkw0KK+OBr+OBvuOBoCzjgojjgZfjgbLjgo0NCivjga/jgb7jga4s44GX44KF44Gy44GhDQor44Gv44KE44GXLOOBv+OBleOBkw0KK+OBsuOBkOOBoSzjgZHjgpPjgZgNCivjgbLjgZXjgaTjga0s44GX44KH44Gf44KN44GGDQor44Gy44GX44Gs44G+LOOBqOOBl+OBsuOCjQ0KK+OBs+OCh+OBqSzjgZ/jgYvjgbXjgb8NCivjgbLjgonjgYQs44GL44Ga44GoDQor44Gy44KJ44GK44GLLOOBn+OBkeOBig0KK+OBsuOCieOBi+OCjyzjgYrjgZXjgoANCivjgbLjgonjgZXjgo8s44GC44KE44GTDQor44Gy44KJ44GX44G+LOOChuOBsuOBoQ0KK+OBsuOCieOBnyzjgb7jgobjgZMNCivjgbLjgonjga4s44G+44GV44GNDQor44Gy44KL44G+LOOBkeOCk+OBmA0KK+OBsuOCjeOBmyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbLjgo3jgZss44KK44GL44GTDQor44Gy44KN44GfLOOBj+OBv+OBkw0KK+OBteOBj+OBhCzjgaDjgYTjgZgNCivjgbXjgY/jgaAs44KK44GVDQor44G144GP44GwLOOBteOBv+OBsuOCjQ0KK+OBteOBj+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgbXjgY/jgoLjgags44GC44GN44Gu44KKDQor44G144GY44GELOOBk+OBjQ0KK+OBteOBmOOBhCzjgb7jgZPjgagNCivjgbXjgZjjgYQs44GC44Gk44GXDQor44G144GY44GI44GgLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgb7jgZXjgYvjgZoNCivjgbXjgZjjgZ8s44G/44GNDQor44G144GY44GkLOOBqOOCguOBsuOCjQ0KK+OBteOBmOOBrizjgZ/jgY/jgZgNCivjgbXjgZjjgoLjgags44GY44KNDQor44G144GY44KP44KJLOOBvuOBv+OBkw0KK+OBteOBmOOCj+OCiSzjgoTjgojjgYQNCivjgbXjgZjjgo/jgoks44KG44Gy44GhDQor44G144KL44GL44KPLOOBsuOBp+OBjQ0KK+OBu+OBmOOChyzjgYvjgaTjgojjgZcNCivjgbvjgZfjga4s44Gy44KN44GXDQor44G744Gd44GL44KPLOOBguOBmuOBlQ0KK+OBu+OCiuOBi+OCjyzjgZ/jgYvjgZcNCivjgbvjgpPjgZQs44GL44Gq44KBDQor44G+44GI44GgLOOChuOBv+OBkw0KK+OBvuOBiuOBiyzjgaDjgYTjgZnjgZENCivjgb7jgZnjgbbjgaEs44GR44KTDQor44G+44GZ44G/44GkLOOChuOBjQ0KK+OBvuOBpOOBhCzjgb/jgo8NCivjgb7jgaTjgYos44Gy44GV44GL44GaDQor44G+44Gk44GK44GLLOOBsuOBp+OBi+OBmg0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgZMNCivjgb7jgaTjgaAs44Gf44GR44GXDQor44G+44Gk44Gw44KJLOOBn+OBi+OBuw0KK+OCj+OBn+OBquOBuSzjgZXjgajjgZMNCivjgb7jgaTjgoTjgb4s44Gf44GP44GoDQor44G+44Gk44KE44G+LOOCiuOBqg0KK+OBvuOBpOOChOOBvizjgY/jgb8NCivjgb7jgajjgbAs44KK44KHDQor44G/44GG44KJLOOBvuOBleOBruOCig0KK+OBv+OBpOOBjizjgoDjga3jgajjgoINCivjgb/jgags44Gm44KL44Gy44GTDQor44G/44Gu44GG44KJLOOBl+OCheOBmA0KK+OBv+OChCzjgojjgZfjgYLjgY0NCivjgb/jgoTjgZEs44GC44Gk44GXDQor44G/44KE44GX44GfLOOBpOOBqOOCgA0KK+OBv+OChOOBl+OBnyzjgaTjgojjgZcNCivjgb/jgoTjgZ8s44GN44KH44G444GEDQor44G/44KE44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBv+OChOOCguOBqCzjgbLjgafjga7jgooNCivjgb/jgoTjgoLjgags44GN44KH44GZ44GRDQor44KA44GP44GgLOOBleOBoeOBkw0KK+OCgOOBl+OBiyzjgorjgocNCivjgoDjgags44GC44GN44GTDQor44KA44KJ44GL44G/LOOBoOOBhOOBmeOBkQ0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44G/44Gk44Gm44KLDQor44KA44KJ44GL44G/LOOCiOOBl+OBjQ0KK+OCgOOCieOBn+OBqyzjgajjgoLjgbLjgo0NCivjgoDjgonjgb7jgaQs44G+44GV44GNDQor44KA44KJ44KE44G+LOOBn+OBkeOBlw0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgbLjgaENCivjgoLjgorjgZDjgaEs44KE44GZ44Gy44GVDQor44KC44KK44GfLOOBguOBjeOCiQ0KK+OCguOCiuOBsOOChOOBlyzjgbLjgafjgb7jgZUNCivjgoLjgo3jgags44GC44GEDQor44KE44GI44GM44GXLOOChuOBjeOBig0KK+OChOOBiuOChOOBvizjgYLjgY3jgbLjgo0NCivjgoTjgYzjgb8s44Gf44Gk44KEDQor44KE44GOLOOBj+OBq+OBkw0KK+OChOOBkOOCiSzjgb7jgZXjgbLjgo0NCivjgoTjgZnjgZPjgaEs44Go44KC44GC44KKDQor44KE44GZ44GgLOOChuOBjeOBkw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgoTjgb7jgZDjgaEs44KG44GLDQor44KE44G+44GQ44GhLOOBi+OBquOBkw0KK+OChOOBvuOBoCzjgZ/jgaTjgbLjgo0NCivjgoTjgb7jgaAs44Gy44Gn44Gk44GQDQor44KE44G+44GgLOOCguOBqOOBsuOCjQ0KK+OChOOBvuOBv+OBoSzjgb7jgZXjgZMNCivjgoTjgb7jgoLjgags44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBqOOBl+OBsuOBkw0KK+OChuOBjSzjgb/jgZXjgagNCivjgobjgb/jgbAs44G+44G/DQor44KG44KJLOOBk+OCgeOBhA0KK+OCiOOBk+OBmeOBiyzjgbLjgo3jgZ/jgaQNCivjgojjgZPjgZ8s44Gy44Gn44KG44GNDQor44KI44GT44KE44G+LOOBkuOCk+OBnw0KK+OCiOOBl+OBiuOBiyzjgojjgZfjgbLjgo0NCivjgojjgZfjgYrjgYss44GR44GE44GYDQor44KI44GX44GW44KPLOOBl+OCk+OBmA0KK+OCiOOBl+OBoCzjga7jgbzjgosNCivjgojjgZfjgaAs44KG44GZ44GRDQor44KI44GX44GgLOOBruOCiuOBkw0KK+OCiOOBl+OBrizjgobjgZnjgZENCivjgojjgZfjgoDjgoks44GX44KH44GX44KTDQor44KK44KFLOOCj+OBhOOBkeOCkw0KK+OCjeOBjyzjgb/jgZrjgbsNCivjgZXjgYvjgoLjgags44GC44GN44KJDQor44KP44Gf44Gq44G5LOOBi+OBpOOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgpPjgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KP44Gf44Gq44G5LOOBvuOBv+OBkw0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgYTjgaENCivjgo/jgonjgbMs44GR44KT44GE44GhDQor44Gu44GW44KPLOOBr+OCi+OBruOBtg0KK+OBj+OBvCzjgYLjgYQNCivjgojjgZfjgoLjgags44GC44KE44GTDQor44KE44G+44KC44GoLOOBquOBiuOBkw0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgo0NCivjgbLjgo3jgZXjgo8s44KG44GG44GTDQor44G/44Gy44KJLOOBv+OBpOOCiw0KK+OBiuOBrizjgYLjgYvjgooNCivjgYrjgaAs44Gf44GL44GXDQor44GK44Gw44Gf44GRLOOBi+OBmuOBvw0KK+OBi+OBqeOBiCzjgobjgYbjgZMNCivjgavjgZfjgaAs44GI44GE44GYDQor44G+44Gk44KC44GoLOOBguOBjeOBkw0KK+OBv+OBjuOBnyzjgZHjgYTjgZMNCivjgb/jgoTjgoLjgoos44KM44GE44GqDQor44KE44G+44GX44GfLOOChuOBteOBkw0KK+OChOOBvuOBoCzjgoYNCivjga7jgorjgajjgb8s44Gf44GL44GTDQor44GE44GR44GgLOOChOOCiOOBhA0KK+OCguOCiuOBnyzjgbLjgo3jga7jgooNCivjgZ/jgZHjgYbjgaEs44KG44GG44GTDQor44G/44GfLOOChOOBmeOBkw0KK+OBhOOBrOOBhCzjgZMNCivjgags44Gf44GL44GXDQor44G+44GN44GuLOOBn+OBi+OBlw0KK+OBquOBpOOCgSzjgorjgYgNCivjgYrjga7jgafjgoks44KK44KH44G444GEDQor44GK44GfLOOBsuOCjeOChuOBjQ0KK+OBhuOCi+OBl+OBleOBkyzjgYvjgZrjgbLjgZMNCivjgZXjgYvjgY3jgbDjgoks44G/44G744GTDQor44GC44GK44GNLOOBguOBhA0KK+OBguOBiuOBjSzjgajjgojjgbLjgo0NCivjgYLjgYrjgY0s44KI44GX44GC44GNDQor44GC44GL44GM44KPLOOBvuOBqg0KK+OBguOBi+OBpOOBiyzjgb/jgYoNCivjgYLjgYvjgbvjgoos44G+44Gp44GLDQor44GC44GN44KE44G+LOOBl+OCk+OBlA0KK+OBguOBleOBhCzjgaHjgYgNCivjgYLjgZXjgYQs44KG44GZ44GRDQor44GC44GV44GK44GLLOOCiuOCh+OBmA0KK+OBguOBleOBrOOBvizjgorjgocNCivjgYLjgZ0s44KI44GX44Gu44KKDQor44GC44Gf44GRLOOBkeOCkw0KK+OBguOBoOOBoSzjga7jgorjgobjgY0NCivjgYLjgbks44G+44KKDQor44GC44G5LOOBl+OCk+OChA0KK+OBguOBuSzjgY/jgavjgbLjgo0NCivjgYLjgonjgYQs44G/44GN44GTDQor44GC44KK44G+LOOCiuOBpOOBkw0KK+OBhOOBhOOBmuOBiyzjgZfjgZLjga7jgooNCivjgYTjgYzjgonjgZcs44GI44GE44GZ44GRDQor44GE44GR44GgLOOBquOBiuOBqA0KK+OBhOOBkeOBoCzjgobjgYbjgZMNCivjgYTjgZHjga/jgZ8s44KC44Go44GTDQor44GE44GW44KPLOOBi+OBmuOBsuOBqA0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo0NCivjgYTjgZfjgYvjgo8s44GL44Ga44Gy44KNDQor44GE44GX44GQ44KNLOOBpuOCi+OBvw0KK+OBhOOBl+OBoCzjgZfjgpPjgbrjgYQNCivjgYTjgZfjgaAs44GR44KT44GYDQor44GE44GX44Gw44GXLOOBguOChA0KK+OBhOOBl+OBr+OCiSzjgarjgYrjgbXjgb8NCivjgYTjgZfjgoLjgags44Go44GX44GNDQor44GE44Gd44Gv44GfLOOBl+OCk+OBlA0KK+OBhOOBn+OBvyzjgZ/jgYvjgb/jgaENCivjgYTjgaHjgYvjgo8s44Gu44G244KE44GZDQor44GE44Gj44GX44GNLOOChuOBjeOBiA0KK+OBhOOBpyzjgaTjgojjgZcNCivjgYTjgacs44Go44KC44GTDQor44GE44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBhOOBqOOBhizjgobjgZ/jgYsNCivjgYTjgajjgYYs44GT44Ga44GIDQor44GE44Go44GGLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBqOOBhizjgbLjgo3jgY0NCivjgYTjga7jgYbjgYgs44Gh44Gv44KLDQor44GE44Gu44GG44GILOOChOOBmeOBlw0KK+OBhOOBruOBhuOBiCzjgorjgofjgZMNCivjgYTjga7jgYbjgYgs44GC44GN44Gy44KNDQor44GE44Gu44GP44GhLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBvuOBhCzjgZ/jgaTjgYoNCivjgYTjgb7jgY3jgoXjgozjgYQs44Go44GX44KG44GNDQor44GE44G+44Gc44GNLOOBn+OBi+OBsuOCjQ0KK+OBhOOBvuOCgOOCiSzjgb7jgobjgZMNCivjgYTjgb7jgoDjgoks44GC44GV44GTDQor44GE44KP44GELOOBn+OBi+OBguOBjQ0KK+OBhOOCj+OBhCzjgarjgovjgZ/jgYsNCivjgYTjgo/jgZXjgY0s44Gf44Gk44KEDQor44GE44KP44GbLOOBquOCi+OBvw0KK+OBhOOCj+OBnyzjgZPjgYbjgZgNCivjgYTjgo/jgacs44G+44KG44G/DQor44GE44KP44KA44KJLOOBmOOCheOCk+OBuuOBhA0KK+OBhuOBiOOBoCzjgb7jgZXjgYoNCivjgYbjgYjjga4s44Gq44Gk44GTDQor44GG44GI44GuLOOBvuOBhA0KK+OBhuOBi+OBhCzjgb7jgZPjgagNCivjgYbjgZXjgb8s44KI44GZ44GRDQor44GG44Gh44GG44G/LOOBquOBiuOBjQ0KK+OBhuOBoeOChOOBvizjgYvjgaTjgY0NCivjgYbjgonjga/jgoks44Gu44KK44KG44GNDQor44GI44GOLOOCiuOBuw0KK+OBiOOBmOOCiizjgozjgYTjgZMNCivjgYjjga7jgY3jgaks44GP44G/44GTDQor44GI44KC44KKLOOBvuOBmeOBvw0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaHjgo0NCivjgYrjgbIs44GV44Go44KLDQor44GK44Gy44GRLOOBn+OBi+OBlw0KK+OBiuOBteOCiSzjgajjgoLjgZMNCivjgYrjgYvjgo8s44GZ44GZ44KADQor44GK44GN44GfLOOBk+OBhuOBmA0KK+OBiuOBleOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZ8s44G+44GV44Gy44GoDQor44GK44GfLOOBteOBv+OBig0KK+OBiuOBnyzjgb7jgZXjgbXjgb8NCivjgYrjgZ/jgass44GX44KT44GYDQor44GK44Gf44GrLOOBsuOCjeOBjQ0KK+OBiuOBpOOBiyzjgb7jgorjgZMNCivjgYrjgaTjgYss44KK44GI44GTDQor44GK44Gk44GLLOOBvuOBleOBteOBvw0KK+OBiuOBpOOBjSzjgZ/jgYTjgZgNCivjgYrjgaks44Gf44GL44Gy44GTDQor44GK44Go44KT44G5LOOBsuOCjeOBlw0KK+OBiuOBrizjgojjgorjgZMNCivjgYrjga4s44GE44Gk44GNDQor44GK44Gv44GXLOOBr+OBmOOCgQ0KK+OBiuOBr+OBnyzjgarjgaTjgZMNCivjgYrjgb/jgaEs44Go44KC44GL44GaDQor44GK44Gy44KD44G+LOOBoOOBhOOBmeOBkQ0KK+OBiuOBi+OBluOBjSzjgojjgZfjgZMNCivjgYrjgYvjgZjjgb4s44KG44GN44Gu44KKDQor44GK44GL44GgLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgajjgoLjgZMNCivjgYrjgYvjgoLjgags44GC44GN44Gq44GKDQor44GK44GL44KC44GoLOOCiOOBuOOBhA0KK+OBiuOBjOOCjyzjgZ/jgYvjgYLjgY0NCivjgYrjgY7jgZ8s44KG44GN44Gy44GnDQor44GK44GP44GP44G8LOOCguOBqOOBhA0KK+OBiuOBoeOBguOBhCzjgojjgZfjga7jgooNCivjgYrjgb7jgZ8s44Gg44GE44GY44KNDQor44GL44GVLOOBleOBqOOCiw0KK+OBi+OBl+OCjyzjgZ/jgY/jgb8NCivjgYvjgajjgYYs44Gf44Gk44KEDQor44GL44Go44GGLOOBvuOBleOBsuOBkw0KK+OBi+OBquOBhCzjgbLjgo3jgZcNCivjgYvjgarjgoTjgb4s44Gf44Gk44KEDQor44GL44Gt44GTLOOBguOBjeOCiQ0KK+OBi+OBreOBpOOBjSzjgb/jgbsNCivjgYvjga3jgb7jgoss44G/44GN44Gy44GoDQor44GL44G544GG44GhLOOBn+OBpOOBteOBvw0KK+OBi+OBv+OCgOOCiSzjgb/jgarjgZMNCivjgYvjgb/jgoQs44GL44Ga44Gy44KNDQor44GL44G/44KELOOBn+OBj+OBvg0KK+OBi+OCj+OBhCzjgZ/jgZHjgZcNCivjgYvjgo/jgYQs44Gg44GE44GZ44GRDQor44GL44KP44GL44G/LOOBmOOCheOCkw0KK+OBi+OCj+OBkOOBoSzjgajjgZfjgbXjgb8NCivjgYvjgo/jgZXjgY0s44Gf44GL44GXDQor44GL44KP44GV44GNLOOBqOOCguOBruOCig0KK+OBi+OCj+OBleOBjSzjgZHjgpMNCivjgYvjgo/jgZfjgb4s44KG44GN44GTDQor44GL44KP44GfLOOBoOOBhOOBmeOBkQ0KK+OBi+OCj+OBvuOBnyzjgZPjgbjjgYQNCivjgYvjgo/jgoLjgags44Gf44Gg44GXDQor44GN44GX44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBjeOBl+OCjSzjgaDjgYTjgZnjgZENCivjgY3jgaAs44G144G/44KEDQor44GN44Gf44GK44GLLOOBmOOCheOCk+OChA0KK+OBjeOBn+OBoCzjgYLjgZrjgZUNCivjgY3jgZ/jga4s44Gq44GK44GoDQor44GN44Gf44Gv44KJLOOBi+OBiuOCig0KK+OBjeOBn+OCgOOCiSzjgZXjgaHjgZMNCivjgY3jgZ/jgoLjgags44GT44GG44GE44Gh44KNDQor44GN44KA44KJLOOChuOBv+OBkw0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgY3jgoLjgags44KJ44GEDQor44GN44KTLOOBv+OCkyDjgaHjgoPjgYYNCivjgpPjgZDjgYTjgYfjgpMs44KE44GZ44Gy44KNDQor44GP44GX44KE44G+LOOBpuOBpOOBguOBjQ0KK+OBj+OBqeOBhizjgbLjgo3jgY0NCivjgY/jganjgYYs44Gf44GL44GKDQor44GP44KB44GG44GhLOOBkeOBhOOBhOOBoQ0KK+OBj+OCieOBl+OBkizjgZPjgZ8NCivjgY/jgonjgaEs44GR44GE44GZ44GRDQor44GP44KJ44Gq44GLLOOBguOBjeOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjgZHjgYTjgZ8NCivjgY/jgo3jgY0s44GI44GE44GZ44GRDQor44GP44KN44GV44GLLOOBmOOCheOCkw0KK+OBj+OCj+OBr+OCiSzjgYYNCivjgobjgYgs44G+44GV44Gy44GTDQor44GT44GE44Ga44G/LOOBneOBhuOBuOOBhA0KK+OBk+OBhuOBmOOBvizjgZ/jgo3jgYYNCivjgZPjgaAs44G/44G7DQor44GT44GuLOOBn+OBkeOBsuOCjQ0KK+OBk+OBjCzjgbXjgb/jgagNCivjgZPjgYws44GR44GE44GTDQor44GT44GP44G244KTLOOCiOOBl+OChuOBjQ0KK+OBk+OBleOBiyzjgaDjgYTjgZnjgZENCivjgZPjgaPjgaYs44GC44GN44KIDQor44Gv44Gf44Gq44GLLOOBqOOCguOBruOCig0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgpPjgZnjgZENCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gw44KE44GXLOOBk+OBhuOBmA0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gf44GR44GXDQor44GT44G+44GkLOOCiOOBmeOBkQ0KK+OBk+OBvuOBpOOBsOOCiSzjgb7jgZXjgY0NCivjgZPjgoHjgaDjgass44KI44GG44GTDQor44GV44GE44GNLOOBl+OBrg0KK+OBleOBhOOBqOOBhizjgYvjgaTjga7jgooNCivjgZXjgYvjgYQs44GX44KT44KEDQor44GV44GL44GQ44GhLOOCiOOBl+OBsuOBkw0KK+OBleOBi+OBvuOBjSzjgYvjgaTjgobjgY0NCivjgZXjgY/jgb4s44GR44KT44GE44GhDQor44GV44GTLOOBl+OCh+OBsuOBoQ0KK+OBleOBleOBhCzjgZ/jgY/jgZgNCivjgZXjgZXjgYos44Gh44GL44GTDQor44GV44GV44GNLOOBguOBjeOBkw0KK+OBleOBleOBjSzjgb7jgYTjgZMNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOChuOBiw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44GC44KT44GqDQor44GV44Go44GGLOOBruOCiuOBguOBjQ0KK+OBleOBqOOBhizjgY3jgb/jgbLjgZMNCivjgZXjgajjgYYs44GX44KT44GZ44GRDQor44GV44Go44GGLOOBteOBvw0KK+OBleOBqOOBhizjgabjgaTjgo0NCivjgZXjga4s44GC44Gk44GXDQor44GV44GuLOOBkeOCk+OBhOOBoQ0KK+OBleOBr+OCiSzjgbLjgo3jgYLjgY0NCivjgZXjgovjgoTjgb4s44Gf44KN44GGDQor44GV44KP44GQ44GhLOOBgeOCkw0KK+OBlyzjgobjgY3jgZMNCivjgZfjgYrjgZbjgY0s44G+44KEDQor44GX44GK44GgLOOBquOBiuOChA0KK+OBl+OBjSzjgYvjgZrjgY3jgb8NCivjgZfjgaAs44Gv44Gq44GTDQor44GX44Gu44Gv44KJLOOBvuOBleOBig0KK+OBl+OBruOBr+OCiSzjgYvjgaTjgbLjgZMNCivjgZfjgbbjgZXjgo8s44GL44Ga44KG44GNDQor44GX44G+44GgLOOBsuOCjeOBsuOBqA0KK+OBl+OBvuOBoCzjgb7jgZXjgY0NCivjgZfjgb7jgaAs44G/44GNDQor44GX44G/44GaLOOBvuOBleOBkw0KK+OBl+OBv+OBmizjgb/jgY0NCivjgZfjgb/jgZos44Gu44G244KG44GNDQor44GX44G/44GaLOOCiuOCh+OBleOBjw0KK+OBl+OBv+OBmizjgb7jgZXjgZMNCivjgZfjgb/jgZos44Gq44GO44GVDQor44GX44KCLOOBn+OBi+OBteOBvw0KK+OBl+OCguOBluOBjSzjgZ/jgYvjgobjgY0NCivjgZfjgoLjgZjjgb4s44GC44KEDQor44GX44KC44GkLOOBiOOBvw0KK+OBl+OCguOBrizjgbLjgafjgYLjgY0NCivjgZfjgoLjgoQs44GI44GE44GYDQor44GX44KJ44GZLOOBvuOBleOCiw0KK+OBmeOBjuOBhuOCiSzjgojjgZfjgbLjgo0NCivjgZnjgY7jgYbjgoks44Gy44Go44GXDQor44GZ44Ga44GNLOOBsuOBleOBlw0KK+OBmeOBmuOBjSzjgojjgZnjgZENCivjgZnjgZrjgY0s44KK44KF44GfDQor44GZ44Ga44GNLOOBv+OBu+OBkw0KK+OBmeOBmuOBjSzjgZHjgpPjgZ/jgo3jgYYNCivjgZnjgags44Gf44Gk44GKDQor44GZ44Gq44GgLOOCj+OBn+OCiw0KK+OBmeOChOOBvizjgajjgoLjgZMNCivjgZvjgYos44GV44Go44GTDQor44Gb44GNLOOBmOOCheOBq+OBoQ0KK+OBm+OBjeOBrSzjgZjjgo0NCivjgZvjgY3jgbAs44GN44Gs44GIDQor44Gb44GoLOOBn+OBpOOBsuOBkw0KK+OBm+OCk+OBlOOBjyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgZvjgpPjgaAs44Gf44GL44Gy44KNDQor44Gb44KT44GwLOOBguOBjeOBsuOBkw0KK+OBneOCgeOChCzjgojjgorjgZMNCivjgZ/jgYvjgY4s44GX44KT44GUDQor44Gf44GL44GOLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBjizjgajjgZfjgo0NCivjgZ/jgYvjgZss44Go44KC44G/DQor44Gf44GL44GgLOOBiOOCiuOBkw0KK+OBn+OBi+OBr+OBlyzjgobjgZnjgZENCivjgZ/jgYvjga/jgZcs44KI44GX44Gu44KKDQor44Gf44GL44Gv44GXLOOCiOOBl+OBjQ0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBoOOBhOOBmeOBkQ0KK+OBn+OBi+OBv+OBluOCjyzjgYvjgYrjgooNCivjgZ/jgY3jgZbjgo8s44GT44G444GEDQor44Gf44GQ44GhLOOBv+OBpOOCiw0KK+OBn+OBkeOBl+OBnyzjgb7jgY0NCivjgZ/jgZHjgaAs44GR44GE44GYDQor44Gf44GR44GgLOOBruOCiuOBsuOBlQ0KK+OBn+OBkeOBoCzjgobjgYbjgZMNCivjgZ/jgZHjgarjgYss44G/44Ga44G7DQor44Gf44GR44Gv44KJLOOBkeOBhOOBlA0KK+OBn+OBkeOChOOBvizjgbLjgafjgY0NCivjgZ/jgZgs44GC44GEDQor44Gf44GgLOOBruOCiuOChuOBjQ0KK+OBoOOBpizjgojjgbLjgaHjgo0NCivjgZ/jgarjgYss44KI44GZ44GRDQor44Gf44Gq44GLLOOChOOBmeOChuOBjQ0KK+OBn+OBquOBiyzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44Gf44GL44Gu44KKDQor44Gf44Gq44GLLOOBvuOBleOBqA0KK+OBn+OBq+OBkOOBoSzjgb/jgYsNCivjgZ/jgavjgZPjgZcs44KE44GZ44Gy44KNDQor44Gf44Gr44GuLOOBk+OBmuOBiA0KK+OBn+OBtuOBjSzjgZHjgYTjgZ4NCivjgZ/jgbbjgaEs44GN44KH44GTDQor44Gf44G+44GK44GNLOOBkeOCkw0KK+OBn+OBvuOBjOOCjyzjgYvjgZrjgb4NCivjgZ/jgoDjgoks44KG44GG44GYDQor44Gf44KB44Gu44KKLOOBk+OBhuOBmA0KK+OBn+OCk+OBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgpPjgbws44G/44GN44GTDQor44Gh44GgLOOBv+OBpOOCiw0KK+OBoeOBreOCkyzjgb/jgYsNCivjgaTjgYzjga3jgZbjgo8s44KI44GX44Gf44GLDQor44Gk44GL44Gv44KJLOOBj+OBv+OBkw0KK+OBpOOBoeOChCzjgaHjgYvjgbXjgb8NCivjgaTjgaHjgoQs44Gu44KK44Gy44GTDQor44Gk44Gh44KELOOBn+OBj+OBquOBjA0KK+OBpOOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgaTjgZrjgonjga/jgoks44Gf44GL44KG44GNDQor44Gk44Gt44KI44GXLOOBn+OBi+OBruOCig0KK+OBpOOBvOOBhuOBoSzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjgovjgZfjgb4s44Gf44GL44GC44GNDQor44Gn44GQ44GhLOOBn+OCjeOBhg0KK+OBpuOBmuOBiyzjgojjgZfjgbLjgagNCivjgabjgonjgYvjgo8s44G+44GV44KI44GXDQor44Gm44KJ44GQ44GhLOOBqOOCguOBkw0KK+OBpuOCieOBl+OBvizjgZHjgYTjgZMNCivjgabjgonjgaAs44KI44G444GEDQor44Go44GM44GXLOOBiOOCig0KK+OBqOOBj+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgajjgZbjgo8s44GL44Gk44Gy44GVDQor44Go44Gz44GK44GLLOOChuOBjQ0KK+OBqOOBvuOCiuOBrizjga7jgbbjgobjgY0NCivjgajjgb/jgYQs44G/44Ga44G7DQor44Go44G/44GW44KPLOOBvuOChuOBvw0KK+OBqOOBv+OBnyzjgojjgZnjgZENCivjgajjgb/jgZ8s44KE44GZ44KG44GNDQor44Go44G/44Gq44GMLOOBvuOBvw0KK+OBqOOCiOOBoCzjgZXjgaHjgZMNCivjgajjgonjgZ/jgass44Gm44KL44Gu44G2DQor44Gq44GE44Go44GGLOOBguOBjeOBteOBvw0KK+OBquOBjOOBhCzjgorjgYgNCivjgarjgYzjgYQs44Gf44GP44KEDQor44Gq44GL44GE44GRLOOBv+OBpOOBruOBtg0KK+OBquOBi+OBhuOBiCzjgZ/jgYvjgZcNCivjgarjgYzjgYos44KA44Gt44Gu44KKDQor44Gq44GL44GT44GYLOOBkeOCk+OBmA0KK+OBquOBjOOBleOBiyzjgojjgZfjgY0NCivjgarjgYvjgZjjgb4s44Gg44GE44GZ44GRDQor44Gq44GL44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBnyzjgobjgYbjgZMNCivjgarjgYzjgZ8s44Gf44GR44GXDQor44Gq44GM44GfLOOBmOOCheOCk+OBkw0KK+OBquOBi+OBpOOCiyzjgZjjgoXjgpPjgZMNCivjgarjgYzjga4s44GC44KEDQor44Gq44GL44KA44KJLOOBn+OBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZ8NCivjgarjgYvjgoDjgoks44KI44GG44GTDQor44Gq44GL44KA44KJLOOBneOBhuOBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44GKDQor44Gq44GL44KA44KJLOOBoeOBiA0KK+OBquOBpOOBr+OCiSzjgZjjgoXjgpPjgZMNCivjgarjgorjgZXjgaAs44GX44KT44GUDQor44Gq44KT44G2LOOBoOOBhOOBmeOBkQ0KK+OBq+OBi+OBhOOBqSzjgorjgofjgZMNCivjgavjgZcs44GV44KE44GLDQor44Gr44GXLOOBk+OBhuOBmA0KK+OBq+OBl+OBiizjgobjgY3jgZMNCivjgavjgZfjgYvjgo8s44G+44KKDQor44Gr44GX44GP44KJLOOBi+OBpOOChA0KK+OBq+OBl+OBluOCjyzjgYLjgaTjgbLjgZUNCivjgavjgZfjgZbjgo8s44Gq44GK44GNDQor44Gr44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgoTjgb4s44GV44Go44KLDQor44Gs44Gu44KELOOBsuOCjeOBlw0KK+OBrOOBvuOBluOBjSzjgY/jgb/jgZMNCivjgazjgb7jgZ8s44Gy44KN44GXDQor44Gu44Gp44G/LOOChuOBiw0KK+OBruOBvyzjgb7jgZXjgYLjgY0NCivjga7jgZDjgaEs44GI44GE44GYDQor44Gu44GY44G+LOOBleOChOOBiw0KK+OBruOBmOOCiizjgZfjgpPjgZnjgZENCivjga7jgaAs44Gu44G244KG44GNDQor44Gu44GgLOOBqOOCguOChA0KK+OBruOCgOOCiSzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjga7jgoDjgoks44Gq44GK44KG44GNDQor44Gu44KA44KJLOOBqOOBl+OChA0KK+OBr+OBk+OBl+OBvizjgZHjgpPjgZgNCivjga/jgZfjgoLjgags44GV44Go44GTDQor44Gv44GX44KC44GoLOOBhOOBleOCgA0KK+OBr+OBm+OBjOOCjyzjgYjjgorjgaoNCivjga/jgZ/jgZHjgoTjgb4s44GX44KT44GE44GhDQor44Gv44Gj44GfLOOCiuOCh+OBuOOBhOOBnw0KK+OBr+OBo+OBqOOCiizjgbLjgZXjga7jgooNCivjga/jgarjgYQs44GX44GS44GKDQor44Gv44Gq44GgLOOChuOBjeOBig0KK+OBr+OBvuOBkOOBoSzjgZ/jgZHjgZcNCivjga/jgb7jgaAs44KK44GqDQor44Gv44G+44GgLOOBvuOBleOBjQ0KK+OBr+OBvuOBrizjgYvjgZrjgojjgZcNCivjga/jgoTjgYvjgo8s44Gm44KL44GC44GNDQor44Gv44KE44GXLOOBqOOBl+OChuOBjQ0KK+OBr+OChOOBlyzjgb/jgY3jgZMNCivjga/jgoTjgZcs44KG44GN44GTDQor44Gv44KJLOOBl+OCk+OBuOOBhA0KK+OBr+OCiSzjgYvjgZrjgYgNCivjga/jgonjgaAs44GL44Ga44GKDQor44Gy44GI44GL44GfLOOCj+OBn+OCiw0KK+OBsuOBjOOBlSzjgorjgocNCivjgbLjgYzjgb8s44GR44GEDQor44Gy44GN44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBsuOBoCzjgobjgbXjgZMNCivjgbLjgaDjgYss44KG44GyDQor44Gy44Gn44GX44G+LOOBleOBqOOBvw0KK+OBleOBi+OBhCzjgZ/jgZHjga/jgosNCivjgbLjgonjgYQs44GR44GE44GZ44GRDQor44Gy44KJ44GE44KPLOOBkeOCkw0KK+OBsuOCieOBnyzjgb7jgarjgb8NCivjgbLjgonjgbDjgoTjgZcs44GR44GE44GTDQor44Gy44KN44GbLOOBn+OBi+OChuOBjQ0KK+OBteOBi+OBiizjgobjgY0NCivjgbXjgY/jgYQs44Gm44Gk44GKDQor44G144GP44GW44GNLOOBqOOCguOBquOBjA0KK+OBteOBj+OBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgbXjgY/jgaAs44Gh44GL44GTDQor44G144GP44GgLOOChOOBmeOBguOBjQ0KK+OBteOBj+OBoCzjgb/jgYgNCivjgbXjgY/jga/jgoks44GV44Go44GTDQor44G144GP44KA44KNLOOBguOBpOOBlw0KK+OBteOBmOOBhuOCiSzjgZvjgYTjgZgNCivjgbXjgZjjgYrjgYss44Gm44Gk44GYDQor44G144GY44GK44GLLOOBn+OBi+OBlw0KK+OBteOBmOOBnyzjgZfjgpMNCivjgbXjgZjjgoLjgags44G/44GN44GTDQor44G144GY44KC44GoLOOBmOOCheOCk+OChA0KK+OBteOBmOOCj+OCiSzjga/jgoTjgagNCivjgbXjgZ/jgoDjgows44GI44Gk44GTDQor44G144KL44GV44KPLOOBsuOBp+OBjQ0KK+OBteOCi+OBnyzjgarjgYrjgobjgY0NCivjgbXjgovjgoQs44GC44KE44GTDQor44G744GT44KJLOOBv+OChuOBjQ0KK+OBu+OBl+OBrizjgbLjgafjgbLjgZMNCivjgbvjgZfjga4s44G/44KM44GEDQor44G744Gd44GuLOOCiOOBuOOBhA0KK+OBu+OCiizjgoTjgZnjgbLjgo0NCivjgbvjgorjgYbjgaEs44G+44GV44KLDQor44G744KK44GK44GLLOOBmOOCheOBq+OBoQ0KK+OBu+OCiuOBkOOBoSzjgobjgY3jgZMNCivjgbvjgpPjgb4s44Gy44KN44G144G/DQor44G+44GI44GL44KPLOOBguOChA0KK+OBvuOBiOOBmOOBvizjgZPjgYbjgYTjgaHjgo0NCivjgb7jgYjjgaAs44G+44KEDQor44G+44GI44Gv44KJLOOBl+OBkuOCiw0KK+OBvuOBjSzjgobjgYvjgooNCivjgb7jgY3jga4s44GI44KK44GTDQor44G+44GZ44GELOOBguOBjeOBsuOCjQ0KK+OBvuOBmeOBoCzjgYTjgZXjgYoNCivjgb7jgZnjgaAs44GE44Gh44KN44GGDQor44G+44Gk44GELOOBsuOBleOBig0KK+OBj+OBvuOBjOOBhCzjgbLjgafjgYoNCivjgYvjga3jgZMs44G+44Gk44GKDQor44GT44G/44KELOOBmeOBv+OBig0KK+OBk+OBjOOBhOOBqCzjgZ/jgoLjgaQNCivjgYvjgpPjgbDjgoTjgZcs44Gy44KN44G/44GhDQor44GN44Gu44GX44GfLOOBqOOBlw0KK+OBjeOBj+OBoSzjgYjjgaTjgYoNCivjgZPjgb7jgbAs44KE44GZ44GKDQor44GT44GP44G2LOOBmOOCheOBq+OBoQ0KK+OBk+OBsOOChOOBlyzjgYTjgZXjgYoNCivjgZPjgbDjgoTjgZcs44Go44KC44KG44GNDQor44GN44Gk44Gf44GLLOOBk+OBhuOBmA0KK+OBvuOBpOOBiizjgajjgZfjgbLjgo0NCivjgYvjgo/jgYQs44Go44GX44Gy44GTDQor44GP44KK44Gv44KJLOOBl+OBkuOBruOCig0KK+OBi+OBqeOBrizjgZ/jgZHjgYoNCivjgYvjgb/jgY/jgbws44Gy44KN44GXDQor44GL44KP44GQ44GhLOOBjeOCiOOBlw0KK+OBi+OBvuOBnyzjgb7jgZXjgb/jgaQNCivjgYvjgpPjgaAs44GL44KT44GYDQor44GL44KT44GgLOOBi+OBpOOBsuOBkw0KK+OBk+OBl+OCgOOCiSzjgorjgofjgZgNCivjgb7jgaTjgYos44Gu44G844KLDQor44GP44GV44GNLOOBv+OBoeOBkw0KK+OBi+OCguOBr+OCiSzjgabjgovjgb7jgZUNCivjgYvjgZXjgZjjgb4s44Gv44KL44Gy44GTDQor44G+44Gk44GNLOOBv+OBruOCiw0KK+OBi+OBv+OBj+OCiSzjgobjgZ/jgYsNCivjgY/jgorjga/jgoks44G/44Gk44GTDQor44Gq44GL44GhLOOBsuOCjeOBlw0KK+OBi+OBjOOCjyzjgabjgovjgYoNCivjgZPjgbDjgoTjgZcs44Gh44KF44GR44KTDQor44GL44KT44GuLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBl+OBnyzjgb7jgarjgbYNCivjgYvjgZfjgo/jgaAs44Go44GK44KLDQor44GT44KT44GuLOOBsuOCjeOCiOOBlw0KK+OBk+OBmeOBjizjgZHjgpPjgZgNCivjgZPjgoLjgoos44Gf44GL44GXDQor44GL44KP44GuLOOBvuOBleOCguOBqA0KK+OBjeOBn+OCgOOCiSzjgYvjgZrjgb8NCivjgYvjgZjjgb4s44G/44Gk44GKDQor44GL44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBk+OChOOBrizjgY3jgojjgZcNCivjgYvjgaTjgb7jgZ8s44GY44KF44KT44GYDQor44GP44KP44GgLOOBvuOBleOBteOBvw0KK+OBk+OBn+OBqyzjgajjgZfjgb7jgZUNCivjgYvjgZjjgYbjgaEs44KI44GX44GL44GaDQor44GT44KT44GpLOOBpOOBreOBig0KK+OBk+OCk+OBqSzjga7jgbbjgYLjgY0NCivjgb7jgaTjgarjgb8s44GN44KI44GXDQor44GL44GM44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OBreOBkyzjgZvjgYTjgZgNCivjgZPjgoTjgb4s44Go44GX44GKDQor44GN44Gk44GL44KPLOOBteOBv+OBig0KK+OBi+OBl+OBj+OCiSzjgYrjgZXjgoANCivjgY/jgo3jgY0s44GL44Ga44GKDQor44GT44GE44Ga44G/LOOCiOOBl+OBvw0KK+OBj+OBnCzjgajjgZfjgo0NCivjgYvjgo/jgYvjgb8s44KG44GN44GKDQor44GL44G/44GY44KHLOOBn+OBkeOBsuOBkw0KK+OBjeOCgOOCiSzjgabjgaTjgoQNCivjgb7jgaTjga4s44Gy44Gn44GKDQor44GN44GP44GfLOOChuOBjeOBig0KK+OBj+OBvuOBoCzjgajjgZfjgYvjgZoNCivjgY/jgavjga/jgoks44GR44GE44GYDQor44GT44GY44G+LOOChOOBvuOBqA0KK+OBj+OCiuOBr+OCiSzjga7jgbbjgZMNCivjgojjga3jgY/jgoks44Gf44GL44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgoQNCivjgZPjgZjjgofjgYYs44G+44GV44Gv44KLDQor44GN44KA44KJLOOChOOBmeOBsuOBkw0KK+OBk+OBsOOChOOBlyzjgoTjgZnjga/jgosNCivjgZPjgpPjgaks44GT44Gb44GEDQor44GL44KP44GELOOBi+OCk+OBmA0KK+OBj+OBvuOBr+OCiSzjgojjgZfjgobjgY0NCivjgY3jgZss44GX44KF44G444GEDQor44GL44GX44GP44G+LOOBv+OBjeOBig0KK+OBi+OBkyzjgZHjgYTjgZMNCivjgYTjgZfjgYzjgYQs44GV44Gh44GKDQor44GL44G/44GQ44GhLOOBqOOBiuOCiw0KK+OBj+OCguOBoCzjgYvjgZrjgbLjgZUNCivjgZPjgb7jgaQs44GK44GV44KADQor44GL44Gt44GgLOOBvuOBleOBguOBjQ0KK+OBjeOBj+OBoSzjgZfjgoXjgavjgaENCivjgZPjgZ/jgass44KG44Gf44GLDQor44GT44Gw44KE44GXLOOBvuOBleOBruOCig0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgZ/jgb8NCivjgYvjga3jgZMs44Gk44Gt44GKDQor44GL44KCLOOBpuOBpOOBig0KK+OBi+OCj+OCgOOCiSzjgZXjgarjgYgNCivjgY/jgb7jga4s44GY44KF44Gr44GhDQor44GT44Gw44KE44GXLOOBvuOBleOBguOBjQ0KK+OBjeOCgOOCiSzjga7jgbbjgYvjgZoNCivjgY3jgZfjgoLjgags44Go44GX44GL44GkDQor44GN44KA44KJLOOBkeOCk+OBmA0KK+OBi+OBv+OBkOOBoSzjgb/jgaHjgoTjgZkNCivjgY3jgoDjgoks44GR44KT44GeDQor44GT44Gw44KE44GXLOOBmOOCheOBq+OBoQ0KK+OBi+OBqeOBj+OCiSzjgojjgZfjgYLjgY0NCivjgY3jgZ/jgoDjgoks44Gf44Gg44GXDQor44GL44Gk44GNLOOBqOOBl+OBig0KK+OBi+OCk+OBluOBjSzjgZfjgofjgbLjgaENCivjgYvjgZ/jgY7jgoos44G/44Gk44GKDQor44GT44Gw44KE44GXLOOCiOOBl+OBsuOBlQ0KK+OBk+OBvuOBpOOBluOBjSzjgojjgZfjgobjgY0NCivjgY3jgZ8s44KE44GZ44GoDQor44GL44Gk44Gv44KJLOOCiOOBl+OBig0KK+OBk+OBkOOCjCzjgbLjgo3jgYLjgY0NCivjgZPjgZjjgb4s44KI44GX44GC44GNDQor44GT44KB44GgLOOBiOOBhOOBmA0KK+OBk+OBq+OBlyzjgb7jgZXjgobjgY0NCivjgY/jgo/jga/jgoks44KI44GX44GIDQor44GT44KE44G+LOOBi+OBmuOBsuOBlQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgbLjgZUNCivjgYvjgZjjgoLjgags44GN44GX44GKDQor44GP44G+44GW44KPLOOBpuOBpOOChA0KK+OBjeOCgOOCiSzjgb7jgZXjga/jgaENCivjgZPjgbDjgZfjgYzjgo8s44GX44KF44KT44GYDQor44GL44G/44KELOOBi+OBquOBkw0KK+OBvuOBpOOCguOBqCzjgbLjgafjgogNCivjgZPjga/jgZcs44Gy44GV44GXDQor44GT44Gg44G+LOOBvuOBleOBruOBtg0KK+OBi+OCj+OBi+OBvyzjgYTjgY/jgb8NCivjgb7jgaTjgoLjgags44Gu44G244GTDQor44GL44GE44GpLOOBk+OBng0KK+OBjeOCgOOCiSzjgbLjgo3jga7jgooNCivjgY/jgZQs44GX44KFDQor44G+44Gk44KC44GoLOOBguOBjeOBiA0KK+OBvuOBpOOChOOBvizjgYLjgaTjgZcNCivjgb7jgovjgoTjgb4s44Gy44GV44GXDQor44GT44GuLOOBkeOCk+OBhOOBoQ0KK+OBj+OCjeOBjSzjgoTjgZnjgb7jgZUNCivjgZPjgb/jgoQs44Gy44Gn44GC44GNDQor44GN44KA44KJLOOBruOCiuOChuOBjQ0KK+OBjeOBrizjgojjgZfjgYLjgY0NCivjgZPjgb7jgaQs44GL44Gk44G/DQor44GL44Gt44Gh44GLLOOBqOOBl+OBig0KK+OBi+OBquOBn+OBqyzjgbLjgajjgZcNCivjgZPjgbDjgoTjgZcs44KGDQor44GN44Gf44KE44G+LOOBl+OCh+OBmA0KK+OBi+OBmCzjgYjjgYTjgZ4NCivjgYvjgo/jgZfjgb4s44Gc44Gr44GhDQor44GN44KA44KJLOOBi+OBmuOBvw0KK+OBk+OBsOOCiSzjga/jgovjgYoNCivjgY3jgZ/jgYzjgo8s44G/44G7DQor44G+44KL44KE44G+LOOBqOOBl+OBig0KK+OBi+OCguOCkyzjgY3jgojjgb8NCivjgb/jgYbjgoks44KI44GX44KG44GNDQor44G/44GX44G+LOOCiuOCh+OBmeOBkQ0KK+OBv+OBmeOBjizjgZXjgaHjgZMNCivjgb/jgZrjgZ8s44GN44KI44GXDQor44G/44Ga44KC44GoLOOBmOOCheOCkw0KK+OBv+OBnuOBkOOBoSzjgorjgofjgZMNCivjgb/jgZrjgYss44Gq44GK44KG44GNDQor44G/44Gq44G/LOOBv+OBgg0KK+OBv+OBquOBv+OBn+OBqyzjgobjgY0NCivjgb/jga3jgZ8s44KK44KH44GZ44GRDQor44G/44KE44GELOOCiuOBiA0KK+OBv+OChOOBiuOBiyzjgojjgZfjgo0NCivjgb/jgoTjgZbjgY0s44GL44Gq44GTDQor44G/44KE44GW44GNLOOBsuOCjeOBkw0KK+OBv+OChOOBr+OCiSzjgarjgYrjgY0NCivjgb/jgojjgZcs44G+44GN44GTDQor44KA44KJ44GL44G/LOOBn+OBj+OBvg0KK+OCgOOCieOBjSzjgarjgYrjgZ/jgYsNCivjgoDjgonjgZ8s44Gq44G744GTDQor44KA44KJ44GfLOOBvuOBleOBlw0KK+OCgOOCieOBnyzjgZ/jgYvjgZcNCivjgoDjgonjgoTjgb4s44GL44Gk44Gy44KNDQor44KC44Go44GuLOOBqOOCguOBguOBjQ0KK+OCguOCiizjgZjjgoXjgpPjgZMNCivjgoLjgoos44Gq44KL44GNDQor44KC44KK44GfLOOBvuOBleOBkw0KK+OCguOCiuOBnyzjgobjgZ/jgYsNCivjgoLjgorjgoTjgb4s44Gf44GR44KLDQor44KC44KK44KE44G+LOOBvuOBleOBqA0KK+OChOOBluOCjyzjgobjgY3jgZMNCivjgoTjgZjjgb4s44GT44GfDQor44KE44Gq44GO44GgLOOBkeOCk+OCjQ0KK+OChOOBvuOBjOOBnyzjgb7jgobjgb8NCivjgoTjgb7jgYvjgo8s44GY44KF44KKDQor44KE44G+44GQ44GhLOOBn+OBpOOBsuOBkw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZDjgaEs44G+44GV44Gy44GnDQor44KE44G+44GV44GNLOOBguOBpOOBkw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgZgNCivjgoTjgb7jgZfjgZ8s44G/44Gh44KEDQor44KE44G+44GgLOOCgeOBkOOBvw0KK+OChOOBvuOBoCzjgb7jgZXjgZMNCivjgoTjgb7jgaAs44KE44GZ44G+44GVDQor44KE44G+44Gq44GLLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBrSzjgarjgYoNCivjgoTjgb7jgoLjgags44Gy44Gn44Go44KCDQor44KE44G+44KC44GoLOOCiuOBiA0KK+OChOOBvuOCguOBqCzjgYLjgaTjgZcNCivjgobjgYvjgo8s44GL44GK44KKDQor44KG44GWLOOBi+OBmuOBkw0KK+OChuOBn+OBqyzjgajjgoLjgbLjgo0NCivjgobjgZ/jgass44GI44KK44GTDQor44KI44GULOOBkeOBhOOBhOOBoQ0KK+OCiOOBk+OBvOOCiizjgZfjgpPjgoQNCivjgojjgZfjgYrjgYss44GV44Go44G/DQor44KI44GX44GL44KPLOOChuOBjQ0KK+OCiOOBl+OBoCzjgZ/jgaDjgobjgY0NCivjgojjgZfjgaAs44G+44GV44GNDQor44KI44GX44KC44GoLOOBkeOCkw0KK+OCiOOBreOBoCzjgZfjgoXjgY/jgbsNCivjgoks44KI44GX44GC44GNDQor44KP44GL44GV44KELOOBkeOCk+OBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgZfjgoXjgpMNCivjgo/jgZ/jgarjgbks44G+44GV44GXDQor44G/44Gk44KE44G+LOOBl+OCk+OBlA0KK+OBsuOCieOBiuOBiyzjgoTjgZnjga7jgooNCivjgYvjgpPjga4s44GL44Ga44Gy44KNDQor44KP44GTLOOBsuOBp+OChuOBjQ0KK+OBguOBiuOBjSzjgZXjgajjgZcNCivjgYLjgYvjgYos44GC44GN44GTDQor44GC44GL44GOLOOCiuOBiA0KK+OBguOBi+OBlyzjgaDjgYTjgZnjgZENCivjgYLjgYvjgaTjgYss44Go44KC44Gu44KKDQor44GC44GL44Gv44GtLOOBvuOBleOBn+OBkQ0KK+OBguOBi+OBu+OCiizjgZ/jgaDjgYLjgY0NCivjgYLjgY3jgoLjgags44Gy44KN44G/DQor44GC44GN44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBguOBleOBhCzjgY3jgofjgZMNCivjgYLjgZXjga4s44KC44Go44GKDQor44GC44GV44GyLOOChuOBv+OBkw0KK+OBguOBleOBuSzjgajjgoLjgZMNCivjgYLjga/jgozjgpMs44GX44Ga44GLDQor44GC44G5LOOBmOOCheOBq+OBoeOCjQ0KK+OBguOBuSzjgoTjgZnjgbLjgo0NCivjgYLjgbks44G+44GV44G/DQor44GC44G+44GuLOOCiuOBlQ0KK+OBguOCgeOCguOCiizjgYvjgaTjgagNCivjgYLjgonjgYQs44KK44GIDQor44GC44KJ44GELOOCj+OBn+OCiw0KK+OBguOCieOBhCzjgb7jgZXjga7jgooNCivjgYLjgonjgZ/jgass44KK44KH44G444GEDQor44GC44KK44Gq44GLLOOBsuOCjeOBkw0KK+OBhOOBhOOBlCzjgoTjgZnjgobjgY0NCivjgYTjgYTjgaAs44Gy44KN44GC44GNDQor44GE44GR44GgLOOChuOBhuOBkw0KK+OBhOOBk+OBjCzjgaHjgYgNCivjgYTjgZfjgYQs44G/44G7DQor44GE44GX44GK44GLLOOBvuOBleOBi+OBmg0KK+OBhOOBl+OBluOBiyzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgZjjgb4s44GC44GV44GTDQor44GE44GX44GgLOOBi+OCiA0KK+OBhOOBl+OBqSzjgaDjgYTjgZnjgZENCivjgYTjgZfjga4s44Go44GX44Gy44GTDQor44GE44GX44G+44G244GXLOOBi+OBiuOCiw0KK+OBhOOBm+OCiizjgbLjgo3jgbXjgb8NCivjgYTjgZ3jgbks44G+44GV44G/DQor44GE44Gf44GrLOOBguOCiuOBlQ0KK+OBhOOBmuOBrizjgbLjgafjgYoNCivjgYTjgafjga4s44GI44Gk44GTDQor44GE44Go44GGLOOBi+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgZXjgaTjgY0NCivjgYTjgajjgYYs44Go44KC44Gy44KNDQor44GE44Go44GGLOOBruOCiuOBguOBjQ0KK+OBhOOBqOOBhizjgb7jgobjgb8NCivjgYTjgajjgYYs44KI44GX44Gf44GLDQor44GE44Go44KE44G+LOOBiOOBv+OBkw0KK+OBhOOBqizjgYvjgYrjgooNCivjgYTjgarjgZXjgY0s44Gf44GL44GXDQor44GE44Gq44GwLOOChuOBjeOBiA0KK+OBhOOBquOBsCzjgb/jgYoNCivjgYTjga7jgYbjgYgs44KG44GEDQor44GE44Gu44GG44GILOOChuOBjeOBkw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYoNCivjgYTjgbks44GC44GN44Gy44GoDQor44GE44G+44GELOOBiuOBqOOBsuOBkw0KK+OBhOOBvuOBiuOBiyzjga/jgovjgYsNCivjgYTjgb7jgoDjgoks44Gf44GL44GC44GNDQor44GE44KP44GfLOOBv+OBpOOBsuOCjQ0KK+OBhOOCj+OBnyzjgojjgbjjgYQNCivjgYTjgo/jgZ8s44KI44GG44GTDQor44GE44KP44G/LOOBv+OBpOOBn+OBiw0KK+OBhOOCj+OCguOBqCzjgojjgZfjgYLjgY0NCivjgYbjgYjjgaAs44KG44GL44KKDQor44GG44GI44GuLOOBvuOBqg0KK+OBhuOBiOOBr+OCiSzjgZ/jgZHjgZcNCivjgYbjgYvjgYQs44GC44Gk44GXDQor44GG44Gg44GM44KPLOOBguOBjeOCiQ0KK+OBhuOBoeOChOOBvizjgoTjgZnjga7jgooNCivjgYbjgaTjgb8s44KI44GZ44GRDQor44GG44Gk44G/LOOBn+OBoOOBlw0KK+OBhuOBrizjgZ/jgZHjgZcNCivjgYjjgYzjgZfjgoks44Gu44G244Gf44GLDQor44GI44GoLOOBvuOCiuOBkw0KK+OBiOOBqOOBvyzjgY3jgofjgZMNCivjgYjjgpPjgaks44KG44GN44GIDQor44GI44KT44GpLOOBl+OCheOBuOOBhA0KK+OBiuOBi+OBqSzjgb7jgZXjgZcNCivjgYrjgY/jgoks44Gf44GR44Gy44KNDQor44GK44GV44GLLOOCiOOBl+OBsuOCjQ0KK+OBiuOBleOBiyzjgYrjgZXjgoANCivjgYrjgZXjgo8s44KG44GG44GTDQor44GK44GZ44G/LOOBkeOCk+OBhOOBoeOCjQ0KK+OBiuOBnyzjgozjgYTjgZMNCivjgYrjgZ/jgass44GV44KJDQor44GK44Gr44GXLOOBn+OBi+OBruOCig0KK+OBiuOBq+OBlyzjgbLjgZXjgarjgYwNCivjgYrjgavjgZcs44KG44Gy44GhDQor44GK44Gr44GXLOOBsuOCjeOBvuOBlQ0KK+OBiuOBrizjgbLjgo3jgobjgY0NCivjgYrjga4s44G+44KK44GTDQor44GK44GuLOOBvuOBk+OBqA0KK+OBiuOBvuOBpCzjgZfjgoXjgpPjgZnjgZENCivjgYrjgoDjgoks44Gy44KN44GNDQor44GK44KELOOBsuOBp+OBvw0KK+OBiuOBiyzjgoHjgZDjgb8NCivjgYrjgYvjgYQs44Gy44KN44GNDQor44GK44GL44GG44GhLOOBn+OBi+OBsuOBlQ0KK+OBiuOBi+OBoCzjgbLjgo3jgZMNCivjgYrjgYvjgaAs44Gf44Gm44GNDQor44GK44GL44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBi+OCgOOCiSzjgZXjgaENCivjgYrjgYvjgoLjgags44GV44Go44GTDQor44GK44GM44KPLOOBoeOBiOOBkw0KK+OBiuOBjOOCjyzjgb7jgZPjgagNCivjgYrjgYzjgo8s44G+44GV44Gy44KNDQor44GK44GM44KPLOOBv+OBpOOCiw0KK+OBiuOBjOOCjyzjgoDjgZXjgZcNCivjgYrjgYzjgo8s44G+44GV44GKDQor44GK44GO44GuLOOBquOBu+OBkw0KK+OBiuOBjyzjgb/jgYvjgZMNCivjgYrjgY/jgYvjgo8s44KI44GG44GTDQor44GK44GP44GgLOOCiOOBmeOBkQ0KK+OBiuOBj+OCgOOCiSzjgajjgoLjgZMNCivjgYrjgZbjgY0s44KG44GN44GIDQor44GK44GY44G+LOOBruOCiuOBsuOBqA0KK+OBiuOBnOOBjSzjgZHjgpPjgYTjgaENCivjgYrjgaAs44Go44KC44Gu44KKDQor44GK44GgLOOChuOBhuOBjQ0KK+OBiuOBoeOBguOBhCzjgb7jgorjgZMNCivjgYrjgajjgYzjgo8s44KE44GZ44G144G/DQor44GK44GuLOOBguOBi+OCig0KK+OBiuOBr+OCiSzjgZ0NCivjgYvjgYTjgZjjgb4s44GE44Ga44G/DQor44GL44GM44KPLOOBk+OBmuOBiA0KK+OBi+OBjeOBiizjgY3jgpPjgoQNCivjgYvjgZHjgbIs44G/44Gh44GTDQor44GL44GV44GELOOBn+OBj+OChA0KK+OBi+OBleOBvyzjgobjgb/jgZMNCivjgYvjgZjjgZ8s44GI44KK44GTDQor44GL44GY44Gf44GrLOOBleOChOOBiw0KK+OBi+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgYvjgZfjgb4s44GC44GN44GKDQor44GL44GY44KC44GoLOOBleOBqOOBkw0KK+OBi+OBmeOBjCzjgZ/jgYvjgobjgY0NCivjgYvjgZss44Gf44GL44GXDQor44GL44Gf44GO44KKLOOBkeOBhOOBhOOBoQ0KK+OBi+OBn+OChOOBvizjgbLjgo3jgobjgY0NCivjgYvjgZ/jgoTjgb4s44GC44Gk44GTDQor44GL44Go44GGLOOBquOBiuOBjQ0KK+OBi+OBqOOBhizjgorjgofjgZMNCivjgYvjgajjgYYs44G/44Ga44GNDQor44GL44Gq44GW44KPLOOBkeOBhOOBkw0KK+OBi+OBreOBv+OBpCzjgZHjgpPjgZ8NCivjgYvjga4s44Go44KC44G/44GkDQor44GL44G+44GfLOOBn+OBi+OChA0KK+OBi+OBv+OBluOBjSzjgajjgoLjgb8NCivjgYvjgb/jgZjjgocs44Gq44GK44GTDQor44GL44KB44Gf44GLLOOCiOOBl+OBteOBvw0KK+OBi+OCgizjgZHjgYTjgYTjgaENCivjgYvjgo/jgYQs44G+44GV44Gq44KKDQor44GL44KP44GELOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBi+OBvyzjgobjgYbjgZMNCivjgYvjgo/jgYvjgb8s44GC44KE44GTDQor44GL44KP44GQ44GhLOOBleOBquOBkw0KK+OBi+OCj+OBkOOBoSzjgozjgYTjgZMNCivjgYvjgo/jgZDjgaEs44GL44Ga44GX44GSDQor44GL44KP44GV44GNLOOCiuOCh+OBkw0KK+OBi+OCj+OBleOBjSzjgobjgYbjgZgNCivjgYvjgo/jgarjgb8s44Gy44Go44GXDQor44GL44KP44GtLOOBj+OBq+OBguOBjQ0KK+OBi+OCj+OBsOOBnyzjgZHjgpPjgYTjgaHjgo0NCivjgYvjgo/jgoDjgoks44Gy44KN44GL44GaDQor44GL44KP44KC44GoLOOBqOOCguOBruOCig0KK+OBi+OCk+OBoCzjgobjgY3jgYgNCivjgYvjgpPjgaAs44Gy44KN44Gf44GLDQor44GL44KT44GuLOOBvuOBleOBqOOBlw0KK+OBjeOBl+OCguOBqCzjgojjgbLjgaENCivjgY3jgZ/jgYzjgo8s44Gf44GE44GZ44GRDQor44GN44Gf44Gv44KJLOOBkeOCk+OChA0KK+OBjeOBn+OCgOOCiSzjgajjgoLjgYvjgZoNCivjgY3jgZ/jgoDjgoks44GY44KF44KKDQor44GN44Gs44KELOOBn+OBi+OBlw0KK+OBjeOBruOBl+OBnyzjgb/jgYoNCivjgY3jga/jgoks44GC44KG44G/DQor44GN44KA44KJLOOBi+OBmuOBsuOBpw0KK+OBjeOCgOOCiSzjgZXjgajjgZcNCivjgY3jgoDjgoks44GY44KTDQor44GN44KA44KJLOOBquOBiuOBjQ0KK+OBjeOCiOOBl+OBvizjgYLjgY3jgZMNCivjgY3jgojjgZrjgYss44GL44Gq44GTDQor44GN44KJLOOBguOChuOBvw0KK+OBjeOCiuOBleOBkyzjgoLjgYYNCivjgY3jgpMs44KGDQor44GN44KTLOOBv+OBqeOCig0KK+OBj+OBq+OBiOOBoCzjgarjgYrjgZcNCivjgY/jgbws44G+44GV44GTDQor44GP44G+44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBj+OCieOBnyzjgZ/jgZHjgZcNCivjgY/jgonjga/jgZcs44Go44KC44Gv44KLDQor44GP44KMLOOBl+OChw0KK+OBj+OCjeOBhCzjgZfjgpPjgZQNCivjgY/jgo3jgY0s44Go44GX44G/DQor44GP44KP44GuLOOBpuOBpOOBmOOChw0KK+OBlCzjgZ/jgaTjgoQNCivjgZTjgaAs44KI44GX44GL44GaDQor44GT44GMLOOBvuOBleOBsuOCjQ0KK+OBk+OBj+OBl+OChyzjgYLjgY3jgojjgZcNCivjgZPjgZXjgYss44GY44KF44KTDQor44GT44GY44G+LOOBr+OCi+OBvw0KK+OBk+OBnuOBrizjgobjgY0NCivjgZPjgaDjgb4s44Gf44GL44GXDQor44GT44Gm44KJLOOBpuOBo+OBuuOBhA0KK+OBk+OBp+OCiSzjgZXjgobjgooNCivjgZTjgags44Gq44GK44GTDQor44GU44GoLOOBi+OBmuOBguOBjQ0KK+OBk+OBq+OBlyzjgZQNCivjgZPjgavjgZcs44Gf44GR44GoDQor44GT44Gr44GXLOOBguOBjeOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Go44GK44KLDQor44GT44Gw44KE44GXLOOCiOOBl+OBn+OBiw0KK+OBk+OBsOOChOOBlyzjgobjgYbjgZMNCivjgZPjgbbjgZss44Gy44KN44Gf44GLDQor44GT44G+44GNLOOBleOBiA0KK+OBk+OBvuOBluOCjyzjgZ/jgZHjgbLjgo0NCivjgZPjgb7jgaTjgbDjgoks44GR44GEDQor44GT44KE44G+LOOBpOOCiOOBlw0KK+OBk+OCk+OBqSzjgZfjgoXjgYTjgaHjgo3jgYYNCivjgZXjgYTjgY0s44KK44KH44GZ44GRDQor44GV44GE44GY44KHLOOBguOBhOOCjw0KK+OBleOBhOOBqOOBhizjgYTjgY/jgYoNCivjgZXjgYTjgajjgYYs44GN44G/44Gy44KNDQor44GV44GE44Go44GGLOOBl+OCk+OBn+OCjeOBhg0KK+OBleOBhOOBqOOBhizjgZ/jgaDjga7jgooNCivjgZXjgYTjgajjgYYs44Gy44KN44GTDQor44GV44GE44Go44GGLOOBv+OBleOBjQ0KK+OBleOBhOOBqOOBhizjgojjgYbjgZMNCivjgZXjgYTjgajjgYYs44Go44KC44KEDQor44GV44GL44GELOOBquOBpOOBkw0KK+OBleOBi+OBvyzjgZPjgYbjgZgNCivjgZXjgYvjgoLjgags44Gh44GIDQor44GV44GL44KC44GoLOOBpOOCiOOBlw0KK+OBleOBi+OCguOBqCzjgbLjgafjgobjgY0NCivjgZXjgYvjgoLjgags44Gy44KN44Gq44GKDQor44GV44GL44KC44GoLOOBn+OBi+OBvuOBlQ0KK+OBleOBj+OCieOBhCzjgajjgoLjgbLjgZUNCivjgZXjgY/jgonjgY4s44GE44Gh44KN44GGDQor44GV44GV44GNLOOBsuOCjeOBkw0KK+OBleOBleOBjSzjgYvjgYrjgosNCivjgZXjgajjgYYs44GL44Ga44KEDQor44GV44Go44GGLOOBjeOCh+OBkw0KK+OBleOBqOOBhizjgZPjgYbjgYTjgaENCivjgZXjgajjgYYs44Gm44KL44Gy44GVDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZXjgajjgYYs44G144G/44GTDQor44GV44Go44GGLOOBsuOBqOOBlw0KK+OBleOBrizjgb7jgY3jgZMNCivjgZXjga4s44Gf44GL44KG44GNDQor44GV44KP44GV44GNLOOBn+OBi+OBlw0KK+OBleOCj+OBoCzjgZPjgYbjgZgNCivjgZXjgpPjgbrjgYQs44Gy44Gn44GNDQor44GX44GK44Ga44GLLOOBvuOBleOCiOOBlw0KK+OBl+OBrizjgarjgarjgZMNCivjgZfjgbDjgZ8s44KI44Gy44Gh44KNDQor44GX44G+LOOBleOBoOOCiOOBlw0KK+OBl+OBvuOBrizjgarjgbvjgZMNCivjgZfjgb/jgZos44G+44GV44GNDQor44GX44G/44GaLOOChuOBv+OBiA0KK+OBl+OCguOBi+OCjyzjgbXjgY/jgZ/jgo3jgYYNCivjgZfjgoLjgoDjgoks44GX44KF44GV44GPDQor44GX44KF44GP44KKLOOBn+OBi+OBlw0KK+OBl+OCh+OBmOOBvizjgYLjgY0NCivjgZfjgofjgaAs44GR44KT44GE44Gh44KNDQor44GX44KJ44GE44GXLOOBi+OBmuOBv+OBoQ0KK+OBl+OCieOBi+OBnyzjgobjgb8NCivjgZfjgonjgZXjgY0s44KK44KH44GZ44GRDQor44GX44KN44GfLOOBqOOBiuOCiw0KK+OBmOOCk+OBkOOBhuOBmCzjgorjgofjgZnjgZENCivjgZfjgpPjgZ/jgass44Gf44GL44GXDQor44GX44KT44G8LOOBsuOCjeOBkw0KK+OBmOOCk+OBvCzjgZXjgajjgosNCivjgZfjgpPjgoDjgoks44GC44Gk44GXDQor44GZ44GM44GELOOBi+OBmuOBruOCig0KK+OBmeOBjuOCguOBqCzjgYvjgZrjgZ/jgYsNCivjgZnjgY7jgoLjgoos44GY44KF44KTDQor44GZ44GO44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBmeOBjuOChOOBvizjgojjgZfjgZMNCivjgZnjgY7jgoTjgb4s44G+44G/DQor44GZ44Ga44GNLOOCiOOBl+OBiuOBvw0KK+OBm+OBjOOCjyzjgYjjgYTjgbYNCivjgZvjgY0s44G+44Gq44G/DQor44Gb44GN44GtLOOBn+OBpOOBig0KK+OBm+OBjeOCguOBqCzjgY/jgb8NCivjgZvjgags44Gu44KK44GL44GaDQor44Gb44KJLOOBmOOCheOCkw0KK+OBneOBp+OChOOBvizjgoLjgoLjgZMNCivjgZ3jga7jgYQs44G+44GV44Gy44KNDQor44Gf44GE44KJLOOBl+OBkuOBi+OBmg0KK+OBn+OBi+OBjSzjgZHjgpPjgZ8NCivjgZ/jgYvjga/jgZcs44Gu44G244KG44GNDQor44Gf44GL44Gv44GXLOOCguOBqOOBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgajjgZcNCivjgZ/jgYvjga/jgb4s44Gk44Go44KADQor44Gf44GL44G/44KELOOBv+OBuw0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgZMNCivjgZ/jgYvjgoTjgb4s44Gf44GL44GtDQor44Gf44GQ44GhLOOBmOOCheOCkw0KK+OBn+OBkeOBhuOBoSzjgZ/jgY/jgb4NCivjgZ/jgZHjgZbjgY0s44GN44GP44GTDQor44Gf44GR44GX44GfLOOBmOOCheOCkw0KK+OBn+OBkeOCguOBqCzjgZHjgpPjgZgNCivjgZ/jgaAs44Gy44KN44GXDQor44Gf44Gh44GL44KPLOOBi+OBpOOBguOBjQ0KK+OBn+OBoeOBsOOBqizjgYLjgaTjgZcNCivjgZ/jgaTjgYzjgo8s44GL44Ga44KI44GXDQor44Gf44Gq44GLLOOBneOCieOBkw0KK+OBn+OBquOBiyzjgabjgovjgYgNCivjgZ/jgarjgYss44G+44GV44GXDQor44Gf44Gq44GLLOOBv+OBoeOCiw0KK+OBn+OBquOBiyzjgozjgYQNCivjgZ/jgarjgYss44G/44Gt44GTDQor44Gf44Gq44G5LOOBqOOCguOBig0KK+OBn+OBq+OBkOOBoSzjgZPjgY0NCivjgZ/jgavjgo/jgY0s44Gh44Gv44KLDQor44Gf44Gw44GfLOOBi+OBmuOBsuOBkw0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgZ/jgb7jgY0s44KP44Gf44KLDQor44Gf44G+44KA44KJLOOBguOBpOOBlw0KK+OBn+OCi+OBvyzjgb7jgobjgZMNCivjgZ/jgpPjgbDjgoks44GV44Go44G/DQor44Gh44GL44GkLOOBsuOCjeOBqOOCgg0KK+OBoeOBsCzjgYLjgaTjgZMNCivjgaHjgocs44G+44GT44GoDQor44Gk44GL44GgLOOBquOBiuOBqA0KK+OBpOOBi+OCguOBqCzjgajjgoLjgZMNCivjgaTjgZjjgoLjgags44KE44GZ44Gu44KKDQor44Gk44Gh44GgLOOBguOBjeOCiA0KK+OBpOOBoeOChCzjgb7jgZXjgZ/jgYsNCivjgaTjgaHjgoQs44GT44GG44GZ44GRDQor44Gk44Gk44G/LOOBleOBoeOBiA0KK+OBpOOBvOOBj+OCiSzjgZfjgofjgbjjgYQNCivjgaTjgoDjgoks44Gu44KK44GTDQor44Gm44GX44G+LOOBn+OBkeOBlw0KK+OBpuOCieOBleOBjSzjgbLjgo3jgbXjgb8NCivjgabjgonjgZXjgY0s44KI44GX44Gy44GVDQor44Gm44KJ44GgLOOBkeOCk+OBmA0KK+OBqeOBhCzjgarjgYrjgZMNCivjganjgYQs44G+44GT44GoDQor44GoLOOBsuOCjeOBvw0KK+OBqOOBjeOBnyzjgorjgofjgZMNCivjgajjgY3jgags44Gm44Gk44Gy44GTDQor44Go44GP44GgLOOBi+OBu+OCig0KK+OBqOOBl+OBmuOBvyzjgorjgofjgZ8NCivjgajjgaAs44Gm44Gk44KEDQor44Go44KI44GgLOOBleOBoeOBiw0KK+OBquOBhOOBqOOBhizjgb/jgY0NCivjgarjgYvjgYQs44GR44GE44GTDQor44Gq44GL44GKLOOBn+OBi+OBguOBjQ0KK+OBquOBjOOBiizjgaHjgYvjgokNCivjgarjgYvjgYzjgo8s44GV44Go44GXDQor44Gq44GM44GV44GLLOOBn+OBj+OChA0KK+OBquOBi+OBleOBiyzjgajjgoLjgYgNCivjgarjgYzjgZXjgY0s44GC44GN44GTDQor44Gq44GL44GW44KPLOOBvuOBleOBsuOBqA0KK+OBquOBi+OBluOCjyzjgY/jgb8NCivjgarjgYvjgZfjgb4s44Gf44GR44Gv44KLDQor44Gq44GL44GY44G+LOOBqOOCguOBkw0KK+OBquOBi+OBl+OBvizjga7jgbbjgZ/jgYsNCivjgarjgYvjgZjjgb4s44Gy44KN44GTDQor44Gq44GL44GY44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OBoCzjgorjgofjgZnjgZENCivjgarjgYvjgaAs44GI44G/DQor44Gq44GM44Gk44GLLOOBvuOBuw0KK+OBquOBi+OBqCzjgZfjgoXjgpPjgZnjgZENCivjgarjgYvjgavjgZcs44Gy44KN44GC44GNDQor44Gq44GL44Gr44GXLOOCiuOCh+OBnw0KK+OBquOBi+OBq+OBlyzjgb7jgZXjgajjgZcNCivjgarjgYzjgb7jgaQs44GC44GN44Gy44GTDQor44Gq44GL44KA44KJLOOBiOOCiuOBkw0KK+OBquOBi+OCgOOCiSzjgajjgoLjgb8NCivjgarjgYvjgoDjgoks44G/44Gh44GTDQor44Gq44GL44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgobjgbLjgaHjgo0NCivjgarjgYvjgoDjgoks44KG44G444GEDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgobjgoQNCivjgarjgYvjgoLjgoos44GI44G/44GTDQor44Gq44GL44KELOOBguOBjeOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZfjgoXjgZ/jgo3jgYYNCivjgarjgZks44KK44KH44GZ44GRDQor44Gq44KK44Go44G/LOOBi+OCiOOBkw0KK+OBquOCk+OBtizjgYLjgoTjgZMNCivjgavjgYTjgb8s44GE44GV44GKDQor44Gr44GX44GL44KPLOOBl+OCheOBmA0KK+OBq+OBl+OBrizjgb/jganjgooNCivjgavjgZfjgoTjgb4s44GZ44GZ44KADQor44Gs44GL44GgLOOBhOOBn+OCiw0KK+OBrOOBvuOBnyzjgb7jgZXjgbLjgo0NCivjgazjgb7jgZ8s44GX44GS44Go44GXDQor44Gu44GM44G/LOOBjeOCh+OBkw0KK+OBruOBjizjgYLjgoTjgZMNCivjga7jgY/jgYos44G+44KGDQor44Gu44GQ44GhLOOBkeOBhOOBkw0KK+OBruOBluOBjSzjgarjgYrjgZMNCivjga7jgZgs44Gy44KN44GL44GaDQor44Gu44G+LOOBleOChOOBkw0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjga7jgoDjgoks44KG44GG44GYDQor44Gw44GT44GXLOOBn+OBkeOBlw0KK+OBr+OBl+OCguOBqCzjgZPjgYbjgZgNCivjga/jgZnjgazjgb4s44GX44KT44Gf44KN44GGDQor44Gv44GbLOOBqOOCguOChA0KK+OBr+OBm+OBjOOCjyzjgoTjgZnjgZ/jgYsNCivjga/jgZ/jgYzjgo8s44Gd44Gu44GTDQor44Gv44Gf44GR44KE44G+LOOChuOBiw0KK+OBr+OBn+OBrizjgZ/jgYvjgbLjgo0NCivjga/jgarjgYQs44KI44GX44GTDQor44Gv44G+44GV44GNLOOChuOBhuOBhOOBoQ0KK+OBr+OBvuOBoCzjgZXjgajjgZcNCivjga/jgb7jgacs44GV44Go44GXDQor44Gv44KE44GL44KPLOOBguOChOOBkw0KK+OBr+OChOOBlyzjgYvjgYrjgooNCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBquOBpOOBrQ0KK+OBr+OChOOBlyzjgobjgY0NCivjga/jgoTjgZcs44KM44GE44GTDQor44Gv44KE44GXLOOBvuOBleOBig0KK+OBr+OCiSzjgobjgbLjgaENCivjga/jgonjgZfjgaos44GX44KT44GUDQor44Gv44KJ44GgLOOBquOBiuOBkw0KK+OBr+OCieOBoCzjgaHjgYgNCivjga/jgovjgaos44KI44GE44GhDQor44Gy44GN44GfLOOBsuOCjeOBlw0KK+OBsuOBoOOBhCzjgZjjgoXjgpPjgZMNCivjgbLjgonjgYQs44KG44GG44GTDQor44Gy44KJ44GELOOCiOOBhuOBkw0KK+OBsuOCieOBhCzjgorjgYsNCivjgbLjgonjgYTjgo8s44G+44GT44GoDQor44Gy44KJ44GKLOOBsuOCjeOBn+OBiw0KK+OBsuOCieOBi+OCjyzjgZ/jgYvjgZcNCivjgbLjgonjgZ8s44GC44GNDQor44Gy44KJ44G+44GkLOOBguOChA0KK+OBsuOCjeOBiCzjgZXjgajjgZMNCivjgbLjgo3jgZss44GV44Go44GXDQor44G144GL44GW44KPLOOBmOOCheOCkw0KK+OBteOBi+OBu+OCiizjgojjgYbjgZMNCivjgbXjgY/jgZfjgb4s44GZ44GZ44KADQor44G144GP44GgLOOBqOOCguOBsuOBlQ0KK+OBteOBj+OBoCzjga7jgbbjgY0NCivjgbXjgY/jgaAs44GC44Gk44GXDQor44G144GY44GELOOBv+OBqeOCig0KK+OBteOBmOOBi+OCjyzjgZfjgoXjgZnjgZENCivjgbXjgZjjgZ8s44Gy44Gn44GoDQor44G144GY44GfLOOBvuOChuOBvw0KK+OBteOBmOOBnyzjgY3jgofjgZMNCivjgbXjgZjjgoDjgoks44KG44GZ44GRDQor44G144GY44KA44KJLOOBiOOCiuOBkw0KK+OBteOBmOOCguOBqCzjgY/jgb/jgZMNCivjgbXjgZjjgoLjgags44Gy44Gn44GL44GaDQor44G144GY44KP44KJLOOBvuOBjQ0KK+OBteOBmOOCj+OCiSzjgojjgZfjgYLjgY0NCivjgbXjgZ/jgYvjgZ8s44Gf44GL44GKDQor44G144Gq44GELOOBguOBpOOBlw0KK+OBteOCi+OBi+OCjyzjgbLjgafjga7jgooNCivjgbXjgovjgYvjgo8s44Gy44Gn44KG44GNDQor44G144KL44G+44GfLOOBruOCiuOBsuOCjQ0KK+OBu+OBlyzjgb7jgY3jgYoNCivjgbvjgZfjgYbjgoks44Gy44KN44KG44GNDQor44G744GX44KNLOOBsuOCjeOBteOBvw0KK+OBu+OBneOBoCzjgZXjgoTjgYsNCivjgbvjgoos44KK44GI44GTDQor44G744KKLOOBi+OBmuOBvw0KK+OBu+OCiuOBiCzjgZHjgpPjgZgNCivjgbvjgorjgZDjgaEs44G+44GV44GKDQor44G744KT44GqLOOCiOOBl+OCjQ0KK+OBu+OCk+OBvCzjgajjgoLjgobjgY0NCivjgb7jgYjjgYvjgo8s44GC44GN44GTDQor44G+44GI44GgLOOBl+OCh+OBuOOBhA0KK+OBvuOBiOOBoCzjgorjgoXjgbjjgYQNCivjgb7jgYjjgaAs44GR44GE44GV44GPDQor44G+44GN44GG44GhLOOBleOBqOOBlw0KK+OBvuOBjeOBrizjgZjjgo0NCivjgb7jgY3jgoLjgags44GV44Gh44GTDQor44G+44GV44Go44GG44G/LOOBsuOCjeOBkw0KK+OBvuOBmeOBhCzjgZjjgoXjgavjgaENCivjgb7jgZnjgaAs44Go44KC44KEDQor44G+44GZ44GgLOOChuOBjQ0KK+OBvuOBpOOBhCzjgbLjgo3jgZcNCivjgb7jgaTjgYbjgoks44GE44Gk44G/DQor44G+44Gk44GK44GLLOOBl+OCheOCk+OBlA0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgbLjgacNCivjgb7jgaTjgYrjgYss44KG44GNDQor44G+44Gk44GK44GLLOOBruOBtuOBqA0KK+OBvuOBpOOBi+OBkizjga7jgZ7jgoANCivjgb7jgaTjgZfjgZ8s44GL44GK44KLDQor44G+44Gk44Gq44GMLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBsOOCiSzjgb/jgo8NCivjgb7jgaTjgbDjgoks44GT44GZ44GRDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgYjjgaTjgZMNCivjgb7jgaTjgoTjgb4s44GR44GE44GYDQor44G/44GG44KJLOOBl+OCh+OBkw0KK+OBv+OBhuOCiSzjgajjgoLjga7jgooNCivjgb/jgYbjgoks44G+44GE44GTDQor44G/44GG44KJLOOCiOOBmeOBkQ0KK+OBv+OBjSzjgb7jgZXjgobjgY0NCivjgb/jgZrjgYvjgo8s44G/44G7DQor44G/44Ga44Gf44GrLOOBv+OBig0KK+OBv+OBmuOBrizjgYvjgZrjgbLjgZUNCivjgb/jgZ3jga4s44GC44GN44Gy44KNDQor44G/44Ge44Gv44GfLOOBqOOCguOBkw0KK+OBv+OBquOBjOOCjyzjgb7jgobjgb8NCivjgb/jgarjgYzjgo8s44Gg44GE44GZ44GRDQor44G/44Gq44G/LOOBsuOBleOBig0KK+OBv+OBquOBvyzjgZXjgajjgZcNCivjgb/jgarjgb/jgYvjgZ8s44KP44Gf44KLDQor44G/44Gq44G/44KA44KJLOOBruOBnuOBvw0KK+OBv+OBr+OCiSzjgYLjgY3jgZMNCivjgb/jgoDjgoks44Gy44KN44G/44GkDQor44G/44KE44GELOOBu+OBj+OBqA0KK+OBv+OChOOBluOBjSzjgb7jgYTjgZMNCivjgb/jgoTjgZbjgo8s44KK44KHDQor44G/44KE44GW44KPLOOBguOBpOOBlw0KK+OBv+OChOOCgOOCiSzjgYLjgaTjgZcNCivjgb/jgoTjgoDjgoks44GN44KI44G+44GVDQor44G/44KE44KC44GoLOOChuOBhuOBmA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgobjgY0NCivjgb/jgojjgZcs44KG44GN44GTDQor44KA44Gt44KA44KJLOOChuOBm+OBhA0KK+OCgOOCieOBi+OBnyzjgZ/jgaDjgb7jgZUNCivjgoDjgonjgZrjgb8s44Gh44GIDQor44KA44KJ44GfLOOBvuOBoeOBkw0KK+OCgOOCieOBnyzjgYLjgoQNCivjgoDjgonjgoLjgags44Gy44KN44KG44GNDQor44KA44KJ44KE44G+LOOBn+OBi+OBlw0KK+OCguOCiizjgZ/jgYvjga7jgbYNCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBvuOBleOBjQ0KK+OCguOCiizjgb/jgY3jgZMNCivjgoLjgoos44Gu44G244GC44GNDQor44KC44KK44GG44GhLOOBguOBpOOBlw0KK+OCguOCiuOBl+OBnyzjgarjgYrjgoQNCivjgoLjgorjgZ/jgass44GC44GN44KJDQor44KC44KK44KC44GoLOOBi+OBiuOCig0KK+OCguOCiuOChOOBvizjgYLjgoQNCivjgoLjgo3jgYgs44KG44G444GEDQor44KE44GULOOBvuOBleOChA0KK+OChOOBmeOBjOOBjSzjgaTjgYvjgZUNCivjgoTjgZnjgaAs44Gh44GL44G144G/DQor44KE44GZ44KC44GoLOOBqOOCguOChuOBjQ0KK+OChOOBpOOBquOBvyzjgb/jgaTjga7jgooNCivjgoTjgarjgY7jgZXjgo8s44GP44G/44GTDQor44KE44Gq44GO44Gv44KJLOOBvuOBjQ0KK+OChOOBtuOBquOBiyzjgYvjgZrjga7jgbYNCivjgoTjgb7jgYbjgaEs44Gq44GKDQor44KE44G+44GK44GLLOOBquOBiuOBkw0KK+OChOOBvuOBiuOBiyzjgYvjgaTjgb7jgZUNCivjgoTjgb7jgYrjgY0s44GC44Gk44Gy44GTDQor44KE44G+44GM44GfLOOBj+OBv+OBkw0KK+OChOOBvuOBkOOBoSzjgb/jgY0NCivjgoTjgb7jgZDjgaEs44Gu44KK44GTDQor44KE44G+44GX44GfLOOChuOBsuOBoeOCjQ0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgagNCivjgoTjgb7jgaAs44GS44KTDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgaAs44G/44Gu44KLDQor44KE44G+44GgLOOBqOOCguOBteOBvw0KK+OChOOBvuOBquOBiyzjgYLjgoTjgZMNCivjgoTjgb7jgoDjgoks44GC44Gk44GXDQor44KE44G+44KA44KNLOOBguOBjeOBig0KK+OChOOBvuOCguOBqCzjgZHjgYTjgZnjgZENCivjgoTjgb7jgoLjgags44GX44KT44GZ44GRDQor44KE44G+44KC44GoLOOBn+OBhOOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgoLjgags44Gf44Gg44GXDQor44KE44G+44KC44GoLOOBquOBiuOChA0KK+OChOOBvuOCguOBqCzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44G+44GT44GoDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OChuOBguOBlSzjgbLjgo3jgZMNCivjgobjgY0s44G+44Gp44GLDQor44KG44KK44KE44G+LOOBoeOBiA0KK+OCiOOBk+OBnyzjgaHjgYgNCivjgojjgZPjga/jgb4s44GY44KF44KT44GYDQor44KI44GT44KE44G+LOOBruOBtuOBkw0KK+OCiOOBk+OChOOBvizjgYLjgoQNCivjgojjgZfjgYrjgYss44G+44GN44GTDQor44KI44GX44GK44GLLOOCgeOBkOOBvw0KK+OCiOOBl+OBiuOBiyzjgYTjgaPjgZvjgYQNCivjgojjgZfjgaAs44GL44Gq44GTDQor44KI44GX44GgLOOBk+OBhuOBuOOBhA0KK+OCiOOBl+OBoCzjgabjgovjgbLjgZMNCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44KI44GX44GgLOOBv+OBpOOCiOOBlw0KK+OCiOOBl+OBoCzjgb/jga7jgosNCivjgojjgZfjga4s44GX44Gu44G2DQor44KI44GX44Gy44KNLOOBqOOBiuOCiw0KK+OCiOOBl+OBvuOBpCzjgYLjgZnjgYsNCivjgojjgZfjgoDjgoks44KP44Gf44KLDQor44KI44GX44KA44KJLOOBj+OBv+OBkw0KK+OCj+OBi+OBvuOBpCzjgarjgYrjgZMNCivjgo/jgY3jgZ8s44Gu44KK44Gy44KNDQor44KP44GN44GfLOOBguOBpOOBsuOBlQ0KK+OCj+OBl+OBiizjgajjgZfjgobjgY0NCivjgo/jgZfjgZbjgo8s44GC44KG44G/DQor44KP44GgLOOBi+OBmuOBjQ0KK+OCj+OBoCzjgY3jgofjgYbjgZMNCivjgo/jgaAs44G+44GE44GTDQor44KP44GgLOOBvuOCiuOBkw0KK+OCj+OBoCzjgZ/jgYvjgajjgZcNCivjgo/jgZ/jgarjgbks44Gq44GK44GTDQor44KP44Gf44Gq44G5LOOBquOBiuOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgorjgYgNCivjgo/jgZ/jgarjgbks44KG44GG44GYDQor44KP44Gf44Gq44G5LOOChuOBhuOBmA0KK+OCj+OBn+OBquOBuSzjgobjgYsNCivjgo/jgZ/jgarjgbks44KG44G/DQor44KE44G+44GQ44GhLOOBqOOBiuOCiw0KK+OBmeOBmuOBjSzjgaDjgYTjgZnjgZENCivjgZXjgZXjga4s44GL44Ga44G144G/DQor44GL44Gt44GTLOOBsuOCjeOChA0KK+OBj+OBvOOBnyzjgYvjgZrjgYoNCivjgZPjgZnjgZHjgYzjgo8s44GR44KT44GX44KNDQor44GL44Gq44GELOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgaHjgYLjgY0NCivjgZPjgaDjgb4s44GE44GV44KADQor44GT44Gw44KE44GXLOOBqOOBl+OBig0KK+OBk+OBmOOBvizjgYTjgZXjgYoNCivjgYvjgoHjgoTjgb4s44Gf44GR44GXDQor44GP44KJ44Gw44KE44GXLOOBi+OBpOOBiA0KK+OBi+OCk+OBoCzjgYvjgZrjgZfjgpMNCivjgZPjgpPjga4s44Go44GP44GYDQor44GL44KP44GX44G+LOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgY3jgojjgYrjgb8NCivjgYvjgarjgYss44KI44GX44Gy44KNDQor44GL44KP44KA44KJLOOCiOOCiuOBv+OBpA0KK+OBjeOCgOOCiSzjgZHjgYTjgZgNCivjgYvjgZnjgYws44KC44Go44GYDQor44GT44GY44G+LOOBmOOCjQ0KK+OBi+OCj+OBrizjgZnjgZnjgoANCivjgYvjgo/jgaos44Gf44GR44GXDQor44GT44Ga44G+LOOCjOOBhOOBkw0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgarjgYoNCivjgYvjgZ/jga4s44GV44G244KNDQor44GL44Gf44GgLOOBk+OBhuOBhOOBoQ0KK+OBjeOBj+OBoSzjgZ/jgYvjgbLjgZMNCivjgYvjgb/jgYbjgoks44Go44GX44Gy44KNDQor44GL44Gt44GgLOOBqOOBiuOCiw0KK+OBk+OBrizjgYvjgZrjgbLjgZMNCivjgYvjgo/jgoLjgags44Gu44G244GKDQor44GL44Gw44KELOOBi+OBmuOChuOBjQ0KK+OBk+OBtuOBj+OCjSzjgZjjgoXjgpPjgZgNCivjgY/jgb7jgYzjgYQs44G+44GV44Gq44KKDQor44GT44GuLOOBk+OBhuOBmA0KK+OBk+OChOOBvizjgYvjgY/jgZ/jgo3jgYYNCivjgY3jgZ/jgZfjgo0s44Gy44KN44GG44G/DQor44GT44Gg44G+LOOBl+OCheOBq+OBoQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgY3jgoDjgoks44KC44Go44KI44GXDQor44GT44GE44GnLOOBk+OBhuOBhOOBoQ0KK+OBj+OChOOBvizjgojjgZfjgb7jgZUNCivjgY3jgorjga/jgoks44Gf44GR44GXDQor44GL44KILOOBvuOBleOBguOBjQ0KK+OBi+OBreOBkyzjgb7jgZXjgYLjgY0NCivjgZPjga/jgoks44GC44GN44GKDQor44GL44Go44GGLOOBvuOBleOBiuOBvw0KK+OBk+OBhCzjgYvjgZrjgbLjgacNCivjgYvjgoTjgb4s44Gm44Gk44GKDQor44GT44GE44GRLOOChOOBmeOBig0KK+OBk+OBmOOBvizjgZfjgZLjgb8NCivjgZPjgb7jgaQs44Gy44KN44GXDQor44GN44Gf44KA44KJLOOBkeOCk+OBjeOBoQ0KK+OBjeOBn+OCj+OBjSzjgobjgYbjgZgNCivjgYvjgZXjgZjjgb4s44Gy44Gn44GNDQor44GN44KA44KJLOOBl+OCh+OBsuOBoQ0KK+OBi+OBv+OBkOOBoSzjgbLjgajjgZcNCivjgYvjgajjgYYs44Gf44GR44GXDQor44GL44KP44KA44KJLOOBiOOBhOOBhOOBoQ0KK+OBi+OBqeOBnyzjgajjgZfjga/jgosNCivjgYrjgZ/jgZEs44GE44GV44GKDQor44GL44Go44GGLOOBn+OBkeOBlw0KK+OBjeOBrizjgoLjgorjgbLjgo0NCivjgYvjgb/jgZjjgocs44G+44GV44Gf44GgDQor44GN44GP44GhLOOBqOOBl+OBig0KK+OBi+OBjeOBhuOBoSzjgYTjgo/jgYoNCivjgZPjgZjjgb4s44KG44GN44GKDQor44GL44Gf44GK44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBj+OBvOOBnyzjgYTjgZXjgYoNCivjgY3jgZ/jgZbjgo8s44GP44Gr44Gy44GTDQor44GT44G/44GtLOOBguOBjeOBqA0KK+OBj+OBvCzjgb7jgZXjgZgNCivjgY3jgZ/jgZrjgoEs44Gu44KK44KI44GXDQor44GT44Gw44KE44GXLOOBnOOBq+OBoeOCjQ0KK+OBi+OCj+OBkOOBoSzjgbLjgo3jgbXjgb8NCivjgZHjgYzjgZXjgo8s44Gm44Gk44KNDQor44GT44GhLOOBleOBoeOBig0KK+OBk+OChOOBvizjgbXjgZjjgYoNCivjgYvjgo/jgY3jgZ8s44Go44GX44Gy44GoDQor44GL44KP44G/44GkLOOBruOBtuOBn+OBiw0KK+OBi+OBn+OBsuOCiSzjgZfjgZLjgosNCivjgYvjgo/jgY7jgZcs44Go44KC44G/DQor44GT44KT44GpLOOBruOBtuOBsuOBlQ0KK+OBjeOCgOOCiSzjgb7jgZXjgb8NCivjgY/jgbzjgoTjgb4s44G+44GV44KG44GNDQor44GP44G+44KC44GoLOOBsuOCjeOBsuOBlQ0KK+OBi+OCj+OBnyzjgb7jgZXjgb8NCivjgY/jgavjga7jgbYs44GX44KF44KT44GZ44GRDQor44GL44G+44GgLOOBsuOCjeOChuOBjQ0KK+OBi+OBjyzjgb7jgZXjgYLjgY0NCivjgYvjga3jgZMs44KC44Go44KG44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OChuOBjQ0KK+OBi+OBl+OBiizjgYvjgZrjgajjgZcNCivjgYvjgarjgYTjgo8s44GL44Gk44GKDQor44GR44KT44KC44GhLOOCiOOBl+OBsuOBkw0KK+OBjeOBj+OBoSzjgbLjgZXjgZcNCivjgYvjgZbjgb4s44G/44Gh44GKDQor44GT44G+44Gk44KC44GoLOOBqOOBiuOCiw0KK+OBk+OCk+OBqSzjgZ/jgYvjgbLjgacNCivjgY3jgY/jgZfjgb4s44GX44KH44GeDQor44GT44Gw44KE44GXLOOBguOBpOOBig0KK+OBj+OBvuOBjOOBhCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44KI44GX44G/44GkDQor44G+44KL44Gw44KE44GXLOOBguOBjeOBsuOBkw0KK+OCgOOBqCzjgZfjgpPjgZ/jgo3jgYYNCivjgb/jgZ/jgass44G+44GV44GNDQor44G/44KPLOOBteOBv+OCiA0KK+OBl+OBv+OBmizjgoTjgZnjgYoNCivjgb/jgZrjga4s44Gf44GL44GXDQor44G+44Gh44GgLOOBiuOBleOCgA0KK+OBvuOBpOOBhCzjgYrjgZXjgoANCivjgb/jgYbjgoks44GC44GN44KJDQor44Gy44GuLOOBkeOCk+OBmA0KK+OCgOOCieOBi+OBvyzjgZHjgYTjgZgNCivjgb/jgoTjga4s44Gf44Gg44GXDQor44G+44KL44GELOOBiuOBleOCgA0KK+OCgOOCieOBleOBjSzjgoTjgZnjgYLjgY0NCivjgb7jgZXjgYss44GI44GE44GTDQor44G/44Gt44GfLOOBi+OBpOOBsuOBkw0KK+OBvuOBpOOBquOBjCzjgYvjgaTjgb7jgZUNCivjgb/jgarjgYzjgo8s44Gb44GE44GTDQor44G/44KE44GRLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgbLjgZMNCivjgb/jgZXjgo8s44Gf44GL44GXDQor44G+44GI44GgLOOBi+OBpOOBvw0KK+OBhuOBoOOBjOOCjyzjgZ/jgZHjgZcNCivjgb/jgoTjga/jgoks44G+44GV44GXDQor44KA44KJ44GELOOBpOOBqOOCgA0KK+OBvuOBpOOCguOCiizjgajjgZfjgYoNCivjgb7jgZXjgY0s44GL44Ga44GKDQor44G/44GG44KJLOOBi+OBmuOBn+OBvw0KK+OCguOBqOOBv+OChCzjgorjgoXjgbLjgaENCivjgoDjgonjgYvjgb8s44KK44KH44Gy44GhDQor44G+44Go44GwLOOBvuOBleOBsuOCjQ0KK+OBv+OBhuOCiSzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYvjgo8s44G+44GV44Gu44KKDQor44G/44Ga44Gf44GrLOOBqOOBl+OBig0KK+OBv+OChOOBrizjgbLjgafjga7jgooNCivjgb7jgaTjgaAs44Gf44GR44G/DQor44G/44GZLOOChuOBn+OBiw0KK+OBvuOBpOOChOOBvizjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gq44GK44GC44GNDQor44G/44Ga44GuLOOBkeOCk+OBhOOBoQ0KK+OBvuOCi+OChOOBvizjgajjgZfjgobjgY0NCivjgb7jgovjgZMs44GT44GeDQor44KC44Gh44GgLOOBqOOBl+OBi+OBpA0KK+OCguOBqOOBr+OBlyzjgZPjgYbjgZgNCivjgb/jgZrjgoQs44GX44KH44GYDQor44G/44KE44GW44GNLOOBl+OBkuOBjQ0KK+OBv+OChOOBjOOCjyzjgY3jgY/jgYoNCivjgoDjgonjgZfjgb4s44GI44GE44GYDQor44G+44GZ44GV44GTLOOBjeOCiOOBlw0KK+OCguOCiizjgbLjgo3jgbXjgb8NCivjgoLjgorjgZ8s44G+44GV44GC44GNDQor44G/44Gq44G/LOOBqOOBl+OBig0KK+OBv+OChOOBjSzjgYvjgZrjgbLjgo0NCivjgoLjgorjgoTjgb4s44Gq44GK44Gy44GTDQor44G/44Ga44GfLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBhCzjgbXjgZXjgaHjgYsNCivjgb7jgaTjgYos44GC44GN44KJDQor44G+44Gk44GX44GfLOOBqOOBl+OBiA0KK+OBk+OBsOOChOOBlyzjgZ/jgaDjgYLjgaQNCivjgoDjgYvjgYgs44G144G/44GKDQor44KC44KK44GELOOBm+OBhOOBmA0KK+OCguOCiuOBnyzjgb/jgaHjgZ/jgYsNCivjgoDjgYvjgYQs44Go44GK44KLDQor44G+44Gk44GKLOOBvuOCguOCiw0KK+OCgOOCieOChOOBvizjgZPjgYbjgZgNCivjgb7jgaTjgoLjgags44G/44Gh44G+44GVDQor44G/44KE44GV44GoLOOBv+OBpOOCiw0KK+OBv+OChOOBluOCjyzjgZ/jgaDjgYoNCivjgoLjgorjgoDjgoks44Gb44GE44GE44GhDQor44KA44KJ44GuLOOBhOOBoeOCjeOBhg0KK+OBvuOBmeOBoCzjgYvjgZrjgYoNCivjgoDjgonjgZ8s44KI44GX44GC44GNDQor44G/44KE44GV44GLLOOBvuOBleOBig0KK+OCguOBqOOBsOOChOOBlyzjgZHjgpPjgZgNCivjgb/jgZrjga4s44KI44GX44GKDQor44KC44KC44GELOOBv+OBpOOBkA0KK+OBvuOBpOOBoCzjgb7jgZXjgogNCivjgZnjgYzjgo/jgoks44KG44Gf44GLDQor44G+44Gk44Gw44KJLOOBi+OBpOOBvw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgZgNCivjgb/jgoTjga/jgoks44GO44KH44GYDQor44KA44KJ44GE44GXLOOBn+OBhOOBng0KK+OBvuOBpOOCgOOCiSzjgb7jgZXjgYoNCivjgb/jgojjgZcs44Go44GN44KPDQor44KC44KK44KC44GoLOOCiOOBl+OBsuOBkw0KK+OBv+OBmuOBn+OBqyzjgajjgZfjgYoNCivjgb7jgaTjgbAs44G/44Gu44KLDQor44G+44Gk44GELOOCiOOBl+OBig0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgZcNCivjgoLjgorjgZ8s44Gy44Gn44GKDQor44KA44KJ44GfLOOBv+OBruOCiw0KK+OBvuOBleOBjSzjga7jgbbjgYoNCivjgb/jgoTjgZbjgY0s44GR44KT44GYDQor44G+44Gk44Gw44KJLOOBvuOBleOBv+OBpA0KK+OCgOOCieOBvuOBpCzjgobjgorjgZMNCivjgoLjgoos44KI44GX44GKDQor44KC44KK44KA44KJLOOBqOOBj+OBig0KK+OBmeOCjyzjgarjgYrjgYgNCivjgZPjgo/jgZ/jgoos44G+44GT44GoDQor44G+44Gk44GW44GNLOOBv+OBruOCiw0KK+OBvuOBo+OBleOBjSzjgYLjgaTjgojjgZcNCivjgb/jgZ/jgY8s44G+44KC44KLDQor44G+44Gk44GL44KPLOOBvuOCguOCiw0KK+OCguOBjizjgabjgaTjgojjgZcNCivjgb7jgbbjgaEs44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OCguOCiizjgYLjgaTjgZcNCivjgb7jgaTjgYbjgoks44GL44KTDQor44G+44GI44GgLOOBi+OBmuOBig0KK+OBvuOBmeOBoCzjgZfjgZLjga/jgosNCivjgb7jgYjjgavjgZcs44GX44GS44GKDQor44G+44KL44KE44G+LOOBsuOCjeOBlw0KK+OBvuOBpOOBoCzjgojjgZfjgY0NCivjgb7jgY0s44GX44KT44GE44GhDQor44KC44GG44GILOOBguOBpOOBlw0KK+OCgOOCieOBhCzjga7jgbbjgobjgY0NCivjgb7jgaTjgYQs44G+44GV44GL44GaDQor44KC44KK44GfLOOCiOOBl+OBvw0KK+OBvuOBiOOBoCzjgarjgYrjgY0NCivjgoDjgonjgYbjgaEs44KI44GX44Gu44G2DQor44G/44Gk44KE44GZLOOBvuOBleOBsuOCjQ0KK+OCguOCiizjgZHjgYTjgZ4NCivjgb7jgaTjgaAs44GV44Go44GXDQor44G+44Gk44GKLOOBl+OBkw0KK+OBvuOCi+OChOOBvizjgY3jgojjgZcNCivjgb7jgaTjgYzjgYgs44Go44GX44KNDQor44GL44G/44GP44KJLOOCiuOCh+OBsuOBoQ0KK+OBv+OBqeOCiuOBi+OCjyzjgYvjgZrjgarjgooNCivjgb7jgZnjgaAs44GC44GN44GKDQor44G/44Gm44KJLOOBsuOCjeOBlw0KK+OBvuOBpOOBquOBjCzjgbLjgo3jgZcNCivjgoLjgorjgYrjgYss44Gq44GK44KEDQor44G/44Gd44GKLOOBn+OBi+OBig0KK+OCgOOCieOChOOBvizjgajjgZfjgbLjgZMNCivjgoLjgorjgoLjgags44GX44KT44GE44Gh44KN44GGDQor44KC44KKLOOBqOOCiOOBvw0KK+OBvuOBmeOBoCzjgY/jgavjgbLjgZMNCivjgb/jgoTjgoLjgags44G+44GV44KLDQor44KA44KJ44GfLOOBn+OBi+OBtuOBvw0KK+OBv+OBquOBv+OBleOCjyzjgYTjgZXjgoANCivjgb7jgZfjgb4s44GC44GN44KJDQor44KC44KK44GQ44GhLOOBkeOCk+OBmA0KK+OBvuOBpOOBhCzjgZXjgajjgZcNCivjgb7jgYjjgYvjgo8s44G+44GV44G144G/DQor44KC44Gh44Ga44GNLOOBguOBjeOBig0KK+OBvuOBmeOBoCzjgZfjgZLjgbLjgo0NCivjgb7jgaTjgoLjgags44GT44GG44GE44GhDQor44KC44KK44Gq44GMLOOChuOBhuOBmOOCjQ0KK+OBvuOBmeOBoCzjgZfjgZLjga7jgbYNCivjgb/jgYbjgoks44KE44GZ44GKDQor44G+44Gk44GuLOOBguOBjeOCiQ0KK+OBvuOBpOOBiuOBiyzjgojjgZfjgb8NCivjgb7jgaHjgYQs44GI44Gk44GKDQor44G/44Ga44Gf44GrLOOBi+OBpOOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgb7jgZXjgY0s44Gk44Go44KADQor44G+44Gk44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBv+OBpOOChCzjgYvjgaTjgb7jgZUNCivjgb/jgZrjga4s44KI44GX44Gm44KLDQor44G+44GI44GgLOOBi+OBmuOBsuOCjQ0KK+OCgOOCieOBvuOBpCzjgZnjgb/jgbLjgo0NCivjgoDjgZXjgZfjga4s44KI44GX44GC44GNDQor44G+44GI44Gv44GfLOOBn+OBi+OBlw0KK+OBvuOBpOOBluOCjyzjgbLjgajjgZcNCivjgb/jgaTjgYQs44GY44KF44KTDQor44KC44KC44GgLOOBl+OCk+OBjeOBoQ0KK+OBvuOBpOOBiizjgZjjgoXjgpPjgZ4NCivjgb/jgo8s44GL44Ga44Gu44KKDQor44KA44KJ44GL44G/LOOBsuOCjeOBn+OBvw0KK+OBv+OBi+OBvyzjgY/jgavjgYoNCivjgazjgYvjgZbjgo8s44Gf44Gg44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBpuOCiw0KK+OBq+OBl+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgavjgaPjgZ8s44Go44GX44GKDQor44Gq44GM44Gk44KGLOOCiOOBl+OBruOCig0KK+OBq+OBhOOBrizjgbLjgafjgagNCivjgZ/jgbbjgaEs44Gf44GR44GXDQor44Gr44GX44GuLOOBsuOBp+OChOOBmQ0KK+OBrOOBi+OBnyzjgZjjgo0NCivjgavjgZfjgoDjgoks44G144G/44GKDQor44Gq44GM44GuLOOBkeOCk+OBmA0KK+OBquOBi+OBjOOCjyzjgYLjgY3jgokNCivjgavjgZfjgoTjgb4s44G+44GV44Gy44GTDQor44Gq44GL44GY44G+LOOCiOOBl+OBig0KK+OBq+OBl+OBoCzjgojjgZfjgYvjgZoNCivjgarjgYvjgoDjgoks44G/44Gk44GL44GaDQor44Gu44KA44KJLOOBi+OBpOOBvw0KK+OBquOBi+OCguOBqCzjgZfjgoXjgZgNCivjgarjgYvjgYzjgo8s44Gm44Gk44KEDQor44Gq44KL44GV44KPLOOBr+OCi+OBjQ0KK+OBquOBhOOBqOOBhizjgZfjgpPjgZgNCivjga7jgbks44GX44Ga44GIDQor44Gr44GX44GqLOOBj+OBq+OBsuOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjgarjgYvjgoDjgoks44Go44GN44KE44GZDQor44Gr44GL44GE44GpLOOBsuOCjeOBlw0KK+OBquOBi+OBoCzjgZHjgpPjgZgNCivjgavjgZfjgaos44GV44G244KNDQor44Gq44KK44GfLOOBn+OCguOBpA0KK+OBruOBkOOBoSzjgbLjgZXjgYoNCivjga7jgoQs44Gf44GL44KG44GNDQor44Gq44GM44GELOOCiOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgavjgYTjgZrjgb4s44G+44GV44Gy44KNDQor44Gq44GL44GM44G/LOOBv+OBpOOBig0KK+OBquOBjOOBnyzjgbXjgb/jgYoNCivjgavjgZfjgZbjgo8s44KG44GN44GKDQor44Gu44GbLOOBruOCiuOBguOBjQ0KK+OBquOBjOOBhCzjgYvjgZrjgZ/jgb8NCivjgavjgZfjgZbjgo8s44Gk44Gt44GKDQor44Gq44GL44Gv44GfLOOBn+OBkeOBig0KK+OBquOBi+OBmOOBvizjgojjgZfjgbLjgacNCivjgarjgYvjgaAs44KE44GZ44Gu44KKDQor44Gu44Gq44GLLOOBn+OBoOOBlw0KK+OBquOBi+OBjOOCjyzjgZfjgpPjgZjjgo0NCivjgarjgYvjgZfjgb4s44KI44GX44KE44GZDQor44Gq44GL44KC44GoLOOBn+OBpOOBig0KK+OBq+OBl+OBiuOBiyzjgY3jgb/jgbLjgagNCivjgavjgZfjgb7jgYgs44Go44GX44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBq+OBlyzjgZPjgY0NCivjga7jgaAs44G+44GV44GoDQor44Gq44GL44KA44KJLOOBjeOCiOOBlw0KK+OBquOBi+OBluOCjyzjgZ/jgYvjgb8NCivjgavjgZfjgaAs44GX44KF44Gy44GhDQor44Gr44GX44GgLOOBjeOBl+OBig0KK+OBq+OBhCzjga/jgaTjgYgNCivjgoTjgb7jgoLjgags44GY44KF44KNDQor44Gq44GL44GG44GhLOOChuOBjeOBig0KK+OBquOBi+OBmOOBvizjgb7jgZXjgYoNCivjgarjgYvjgoDjgoks44GL44Ga44Go44GXDQor44Gu44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OCgOOCiSzjgb7jgaTjgYoNCivjga7jgarjgYss44G+44GV44GNDQor44Gr44GX44KA44KJLOOBvuOBleOBguOBjQ0KK+OBq+OBl+OBiizjgZ/jgb/jgYoNCivjgarjgYzjgYos44G+44GV44KLDQor44Gr44GE44G/LOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZ/jgo3jgYYNCivjga3jgZrjgYss44G+44GV44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBig0KK+OBquOBi+OBluOBqCzjgoDjgaTjgoQNCivjgYLjgZXjga4s44GC44GN44Gy44GTDQor44Gu44GM44G/LOOCiuOCh+OBsuOBoQ0KK+OBquOBi+OBmOOBvizjgojjgZfjgo0NCivjgarjgYTjgajjgYYs44Gf44Gg44KG44GNDQor44Gq44GL44KA44KJLOOCiuOCh+OBmA0KK+OBquOBi+OBq+OBlyzjgbLjgajjgZcNCivjgarjgYvjgaAs44KE44GZ44GKDQor44Gq44GM44GV44KPLOOBi+OBmuOBn+OBiw0KK+OBquOBjOOBrizjgb7jgZXjgb8NCivjgavjgaPjgZ8s44GP44Gr44Gy44GTDQor44Gq44KT44GwLOOChOOBmeOBsuOCjQ0KK+OBruOBmuOBiCzjgZ/jgaDjgbLjgZMNCivjgarjgYzjgb8s44Go44GX44Gy44GnDQor44Gq44GM44GELOOBjeOCiOOBlw0KK+OBquOBi+OBr+OCiSzjgY3jgojjgZcNCivjgarjgYvjgZjjgb4s44GR44KT44GYDQor44Gq44GL44GY44G+LOOBsuOBp+OChuOBjQ0KK+OBq+OBl+OBoCzjgojjgZfjga7jgooNCivjgarjgYrjgYQs44KG44GN44Go44GXDQor44Gq44G544GX44G+LOOBpuOBpOOChA0KK+OBquOBi+OBrizjgZjjgoXjgpMNCivjgarjgYvjgoDjgoks44GP44Gr44Gy44KNDQor44Gu44GgLOOBi+OBmuOBsuOBkw0KK+OBquOBi+OBmyzjgYvjgZrjgYLjgY0NCivjgarjgYvjgZjjgb4s44KI44GX44Gu44KKDQor44Gq44GM44GV44KPLOOBjeOCiOOBguOBjQ0KK+OBq+OBuOOBhCzjgZ/jgb/jgYoNCivjgarjgYzjgYQs44Gf44GL44GXDQor44Gq44GL44GX44G+LOOBi+OBmuOChuOBjQ0KK+OBquOBi+OBiizjgobjgZ/jgYsNCivjgarjgYvjgYzjgo8s44G/44Gk44Gy44KNDQor44Gq44GE44Go44GGLOOBj+OBq+OBv+OBpA0KK+OBruOBmOOBvizjgbLjgo3jgZcNCivjgarjgYzjga4s44GY44KF44Gr44GhDQor44Gr44GX44GgLOOBv+OBmuOBuw0KK+OBquOBi+OBoCzjgZ/jgZHjgojjgZcNCivjgarjgYvjga/jgoks44GL44Gk44GKDQor44Gq44GL44GY44G+LOOBguOBjeOBsuOBkw0KK+OBreOCguOBqCzjgZfjgaHjgo0NCivjgarjgYvjgoDjgoks44KI44GX44G+44GVDQor44Gq44GM44Go44KCLOOBl+OCh+OBsuOBoQ0KK+OBquOBi+OCgOOCiSzjga/jgovjgYoNCivjgarjgYvjgoTjgb4s44G/44Gk44KI44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgZfjgZINCivjga7jgZjjgb4s44Gf44Gg44GXDQor44Gq44GM44G144GhLOOBv+OBpOOCiA0KK+OBquOBi+OBrizjgorjgofjgZnjgZENCivjgavjgZfjgoTjgb4s44Gf44GL44GKDQor44Gq44GL44KA44KJLOOBm+OBhA0KK+OBquOBjOOBl+OBvizjga7jgbbjgYoNCivjgavjgo8s44GT44GG44GE44Gh44KNDQor44Gq44GL44GuLOOChuOBmeOBkQ0KK+OBiuOBq+OBluOCjyzjgobjgY3jgYoNCivjgYrjgZfjgYvjgZ8s44GL44Ga44GKDQor44GK44GLLOOBjeOCiOOBlw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjga7jgZnjgZENCivjgYrjgY0s44KA44Gt44Gf44GLDQor44GK44GL44G/44KELOOBjeOCiOOBlw0KK+OBiuOBkOOCiSzjgZHjgpPjgZgNCivjgYrjgacs44G+44GV44G/DQor44GK44Gu44GgLOOBsuOBqOOBvw0KK+OBiuOBq+OBlyzjgojjgZfjgYoNCivjgYrjgY/jgaAs44G744Ga44G/DQor44GK44GP44GgLOOBteOBv+OBruOCig0KK+OBiuOBjOOCjyzjgabjgaTjgo0NCivjgYrjga4s44KE44GZ44KNDQor44GK44GZ44G/LOOBlOOBhOOBoQ0KK+OBiuOBpOOBiyzjgZfjgpPjgYTjgaENCivjgYrjgajjgoIs44G+44GV44KG44GNDQor44GK44GL44GW44GNLOOBquOBiuOBmA0KK+OBiuOBr+OBlyzjgobjgZ/jgYsNCivjgYrjgY7jga4s44KE44GZ44GC44GNDQor44GK44GV44GgLOOChuOBjeOBig0KK+OBiuOBsCzjgb7jgZXjgYoNCivjgYrjgZfjgb4s44GL44Gk44Gy44KNDQor44GK44GL44KPLOOBruOBvOOCiw0KK+OBiuOBi+OCguOBqCzjgZnjgb/jgYoNCivjgYrjgYzjgo8s44GR44KT44GYDQor44GK44GuLOOBvuOBleOBjQ0KK+OBiuOBi+OBrizjgb7jgZXjga7jgooNCivjgYrjgZbjgo8s44G+44GV44Gy44GTDQor44GK44Gv44GPLOOBvuOBleOBjQ0KK+OBiuOBl+OBn+OBqyzjgY3jgofjgYTjgaHjgo3jgYYNCivjgYrjgZbjgo8s44Go44GX44GKDQor44GK44Gv44GXLOOBk+OBhuOBmA0KK+OBiuOBr+OBnyzjgb7jgZXjgYoNCivjgYrjga7jgafjgoks44GT44GG44GYDQor44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBu+OBiyzjgb7jgZXjgYLjgY0NCivjgYrjga4s44KG44GG44GYDQor44GK44Gv44GXLOOBsuOCjeOBlw0KK+OBiuOBnyzjgbXjgb/jgYoNCivjgYrjgoLjgoos44GX44Ga44GC44GNDQor44GK44GX44G+LOOBsuOBleOBlw0KK+OBiuOBi+OCguOBqCzjgYLjgoTjgZMNCivjgbLjgo3jgZss44GL44Ga44KEDQor44GK44G/44GaLOOBsuOCjeOBlw0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjgaHjgYLjgYQs44GN44KI44GoDQor44GK44GL44G5LOOBqOOBiuOCiw0KK+OBiuOBn+OBqyzjgobjgY3jgb7jgZUNCivjgYrjgY/jga4s44Gy44KN44GXDQor44GK44GZ44GMLOOBn+OBi+OBlw0KK+OBiuOBruOBjSzjgbLjgo3jgZcNCivjgYrjgbLjgZcs44Gf44GL44Gu44G2DQor44GK44GL44GgLOOBk+OBqOOBjw0KK+OBiuOBv+OBmOOCgyzjgb/jgoQNCivjgZXjgZ/jgZEs44G144G/44GKDQor44GK44Gg44GOLOOBteOBmOOBkw0KK+OBiuOBnyzjgojjgZfjga7jgooNCivjgYrjgbXjgaEs44KG44Gf44GLDQor44GK44GL44KPLOOBn+OBi+OBlw0KK+OBiuOBi+OBqSzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZXjgo8s44GTDQor44GK44GO44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OBuSzjgajjgoLjgobjgY0NCivjgYrjgajjgojjgZcs44KE44GZ44GKDQor44GK44GM44KPLOOBv+OBpOOBig0KK+OBiuOCiuOBjOOBlSzjgb7jgZXjgbLjgZUNCivjgYrjgbAs44Gf44GEDQor44GK44Gw44GfLOOBguOBjeOBsuOCjQ0KK+OBiuOBrizjgZfjgZLjgYoNCivjgYrjgZXjgYss44GR44KT44GE44GhDQor44GK44G/44GtLOOBi+OBiuOCiw0KK+OBiuOBnyzjgZjjgofjgZgNCivjgYTjga7jgYbjgYgs44KC44Go44Gk44GQDQor44GK44GT44GXLOOChuOBjeOBsuOCjQ0KK+OBiuOBluOCjyzjgaTjga3jgYoNCivjgYrjgYvjgbks44Gv44Gh44KNDQor44GK44G844KJLOOBleOBqOOCiw0KK+OBiuOBnyzjgZ/jgaDjgojjgZcNCivjgYrjgZbjgY0s44GL44GK44KLDQor44GK44GP44GgLOOBleOBqOOCiw0KK+OBiuOBluOCjyzjgbLjgafjgY0NCivjgYrjgYvjgaAs44KG44GN44Gy44KNDQor44GK44Gk44GLLOOBguOBpOOBlw0KK+OBiuOBruOBp+OCiSzjgbLjgafjgYoNCivjgYrjgZfjgYos44Gf44Gk44KNDQor44GK44Gg44GX44G+LOOChOOBmeOBn+OBkQ0KK+OBiuOBluOBjSzjgobjgY3jgZMNCivjgb7jgYjjgaAs44Gf44GL44GXDQor44GK44GNLOOBn+OBi+OCiOOBlw0KK+OBiuOBruOBoCzjgb7jgZXjgoQNCivjgYrjgarjgY4s44GR44KT44GeDQor44GK44GP44GgLOOCiOOBl+OBsuOBkw0KK+OBiuOBsuOCiSzjgYLjgY3jgYoNCivjgYrjga7jgZbjgo8s44GX44GS44GNDQor44GK44GO44Gv44KJLOOBsuOBp+OBig0KK+OBiuOBj+OBvizjgZHjgYTjgYTjgaENCivjgYrjga/jgoks44GI44GE44GY44KNDQor44GK44GNLOOBmOOCh+OBsuOBoeOCjQ0KK+OBiuOBjOOCjyzjgZjjgoXjgavjgaENCivjgYrjgbLjgoMs44KE44GZ44Gy44KNDQor44GK44GV44KPLOOBpuOCi+OBguOBjQ0KK+OBiuOBr+OCiSzjgZnjgZnjgoANCivjgYrjgaAs44GT44GG44GYDQor44GK44GW44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOBnyzjgZ/jgaDjgZfjgZINCivjgYrjgYvjga4s44Gf44Gg44GXDQor44GK44Gy44GXLOOBl+OBkuOCiw0KK+OBiuOBquOBhCzjgb/jgaTjgYoNCivjgYrjgaTjgYss44G+44GV44GKDQor44GK44Gk44GLLOOBqOOBjeOBiA0KK+OBiuOBhOOBpyzjgYLjgY3jgokNCivjgYrjgY3jgoTjgb4s44KI44GX44GN44KIDQor44GK44GQ44GXLOOBm+OBpOOBmA0KK+OBiuOBoCzjgajjgZfjgbLjgZMNCivjgYrjgYvjgbDjgoTjgZcs44GP44Gr44GC44GNDQor44GK44Gf44GrLOOBi+OBmuOBig0KK+OBiuOBpOOBjSzjga7jgbbjgbLjgo0NCivjgYrjgYvjgaAs44GL44Gk44GZ44GRDQor44GK44GZ44G/LOOBn+OBpOOChA0KK+OBiuOBsuOBjOOCjyzjgbLjgafjgbsNCivjgYrjgYvjgaAs44GV44G244KNDQor44GK44GW44KPLOOBsuOCjeOCiOOBlw0KK+OBiuOBn+OBqyzjgZ/jgYvjgZMNCivjgYrjgZbjgY0s44G/44Gk44GKDQor44GK44GfLOOCiuOCh+OBmeOBkQ0KK+OChOOBquOBjuOChCzjgYLjgY3jgZMNCivjgarjgYvjgZ/jgass44GX44G+DQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBv+OBj+OBqyzjgZjjgoXjgpPjgZMNCivjgZnjgZrjgY0s44Gm44Gk44GKDQor44Gv44Gg44GuLOOCiOOBl+OBguOBjQ0KK+OBv+OChOOBvizjgYvjgZrjgZMNCivjgZ/jgYvjga/jgZcs44GC44GR44G/DQor44GX44KJ44GK44GM44KPLOOChOOBmeOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaDjgbLjgo0NCivjgb7jgaTjgZbjgY0s44GY44KF44KT44GYDQor44KE44G+44GX44GfLOOBguOChuOBvw0KK+OBl+OCguOChOOBvizjgbLjgo3jgZcNCivjgbXjgZ/jgoDjgoks44Gh44Gv44KLDQor44GP44KPLOOBn+OBi+OBr+OCiw0KK+OBquOBi+OCgOOCiSzjgZnjgZnjgoANCivjgojjgZPjgoTjgb4s44GL44Ga44Gy44GTDQor44Gy44KL44G+LOOBpuOBpOOCjQ0KK+OBn+OBoeOBi+OCjyzjgbLjgo3jgobjgY0NCivjgo/jgYvjgbDjgoTjgZcs44G+44GV44GTDQor44Gf44GL44Gv44GfLOOChuOBi+OCig0KK+OBguOBuSzjgZfjgpPjgYTjgaENCivjgZvjgY0s44Gy44Gn44GXDQor44KE44G+44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBrSzjgZjjgoXjgavjgaENCivjgZ/jgZbjgo8s44KG44GN44G+44GVDQor44GL44GY44GL44KPLOOBi+OBiuOCig0KK+OBleOBqOOBhizjgb7jgZXjgagNCivjgYvjgo/jgYbjgaEs44KJ44GE44GfDQor44GK44Gy44KD44G+LOOBguOBneOBiw0KK+OBl+OCk+OBv+OChyzjgY3jgYTjgaHjgo3jgYYNCivjgZ/jgaHjgo/jgaAs44Gf44GL44KI44GXDQor44GK44GP44G8LOOBl+OBkuOCiw0KK+OBqOOBlCzjga7jgbbjgobjgY0NCivjgarjgYzjgY/jgoks44Gf44GL44GXDQor44GE44Go44GGLOOBqOOBl+OBv+OBpA0KK+OChOOBvuOBluOBjSzjgbLjgo3jgYLjgY0NCivjgYvjgZbjgb4s44KG44GN44GTDQor44GL44KT44Gw44KE44GXLOOBquOBiuOBvw0KK+OBleOBleOBrizjgabjgovjgb8NCivjgYvjgo/jgZfjgb4s44Go44KCDQor44GX44KT44GQ44GGLOOBiOOBv+OBkw0KK+OBk+OBhOOBmuOBvyzjgorjgoXjgZQNCivjgYvjga3jgZMs44Gy44Go44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBsuOCjQ0KK+OBi+OCguOBl+OBnyzjgZjjgoXjgpPjgZgNCivjgZ/jgoDjgoks44GC44GV44GTDQor44Gv44Gb44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBj+OCiuOBr+OCiSzjgb7jgorjgYgNCivjgYvjgarjgYrjgYss44Gu44G244GTDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBkw0KK+OBsuOBhOOBlyzjgarjgYrjgb8NCivjgavjgbjjgYQs44Gm44Gk44KEDQor44G+44KL44GfLOOBsuOCjeOChuOBjQ0KK+OBqOOBsuOCg+OBvizjgZ/jgYvjga/jgosNCivjgZvjgY3jgZbjgo8s44GR44KT44Gd44GGDQor44GC44KK44G+LOOBm+OBhA0KK+OBj+OCiuOBr+OCiSzjga/jgovjgobjgY0NCivjgZnjgb/jga4s44Gy44Gn44GKDQor44KI44GX44GgLOOCgeOBhOOBkw0KK+OBjeOBruOBl+OBnyzjgb/jgobjgY0NCivjgYrjgaHjgYLjgYQs44Gu44KK44GC44GNDQor44GG44G+44KE44Gv44KJLOOBn+OBj+OChA0KK+OBu+OBneOBi+OCjyzjgojjgZfjgb8NCivjgbXjgYvjgYzjgo8s44GZ44GI44Gk44GQDQor44GL44KP44KA44KJLOOBl+OCheOBhOOBoQ0KK+OBvuOBpOOBhCzjgZXjgaHjgogNCivjgojjgZfjgoLjgags44Gf44GL44GXDQor44GG44Gq44GL44G/LOOBsuOCjeOBteOBvw0KK+OBi+OBreOBvuOBpCzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44KG44GN44Gf44GLDQor44Go44KI44GgLOOBn+OBi+OChuOBjQ0KK+OChOOBrizjgYTjgY/jgZMNCivjgZvjgY0s44Gq44GK44GTDQor44Gq44GL44Gr44GXLOOBquOBvw0KK+OBr+OBl+OCguOBqCzjgaHjgYsNCivjgbXjgYvjgoQs44KE44KI44GEDQor44G/44KE44KC44GoLOOBqOOCguOBiA0KK+OBn+OBkeOBoCzjgb/jga7jgosNCivjgb/jgoTjgZbjgo8s44Gy44Gn44GNDQor44GE44GR44GgLOOBqOOCguOBkw0KK+OBiuOBl+OBvizjgb/jgobjgY0NCivjgarjgYvjgoDjgoks44KE44GZ44G/DQor44GU44GoLOOBsuOCjeOBkw0KK+OBhuOBl+OBlOOCgSzjgZfjgpPjgZgNCivjgY/jgo/jgoTjgb4s44GI44GE44GeDQor44Gk44GL44GgLOOBkeOBhOOBkw0KK+OCgOOCieOBnyzjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44Go44KC44GTDQor44GP44KN44GgLOOBleOBjeOBkw0KK+OBmeOBjuOCguOBqCzjgb7jgZPjgagNCivjgoTjgZnjgaAs44Gy44Gn44GKDQor44GN44GG44GhLOOBguOBjeOBsuOBkw0KK+OBkeOBqeOBhuOBhOOCkyzjgZ/jgYvjgYLjgY0NCivjgZ/jgarjgYss44Gy44Go44GXDQor44Gq44GL44KA44KJLOOBguOBjQ0KK+OBj+OCiuOBr+OCiSzjgY/jgavjgYLjgY0NCivjgZ/jgY3jgZbjgo8s44Gy44Gn44GP44GrDQor44GG44GI44GgLOOBqOOBl+OBteOBvw0KK+OBk+OBuSzjgb/jgY3jgYoNCivjga7jgZDjgaEs44GL44Ga44Gy44GTDQor44GT44GuLOOBsuOCjeOBlw0KK+OBqOOBv+OBnyzjgYjjgorjgZMNCivjgYrjgZ8s44KG44GG44GE44Gh44KN44GGDQor44G+44GNLOOBsuOCjeOBlw0KK+OBguOBvuOBrizjgbLjgo3jgYLjgY0NCivjgZPjgb/jga0s44Gh44Gv44KLDQor44GV44Go44GGLOOBoeOBi+OBig0KK+OBhOOBvuOBpyzjgojjgZfjgZ/jgYsNCivjgb7jgaTjgarjgYws44GL44GK44KKDQor44GZ44Ga44GNLOOBj+OBq+OBig0KK+OBvuOBpOOBiizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44GV44Go44GXDQor44KI44GX44GW44KPLOOBmOOCheOBq+OBoQ0KK+OBhuOChOOBvizjgaHjgYsNCivjgYLjgpPjganjgYYs44Gy44KN44GC44GNDQor44GZ44Ga44GNLOOBqOOCiOOBsuOBkw0KK+OCiOOBl+OBoCzjgYvjgZrjga7jgooNCivjgYvjgo/jgaAs44Gy44Gn44GC44GNDQor44G144GP44GgLOOBsuOBp+OBguOBjQ0KK+OCguOCiuOBl+OBvizjgbXjgb/jgYoNCivjgaTjgaHjgaAs44Go44KC44Gy44GTDQor44GV44GL44GELOOBi+OBquOCgQ0KK+OBpOOBi+OBoCzjgobjgY3jgZMNCivjga/jgaPjgajjgoos44Gy44GL44KLDQor44Gf44KA44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgbLjgo0NCivjgZPjgZnjgY4s44Go44KC44KEDQor44Gy44KJ44GfLOOChuOBhuOBmA0KK+OBmeOBjuOChOOBvizjgZ/jgaTjgoQNCivjgoLjgorjgYvjgo8s44Gf44GR44GXDQor44GL44Gp44GfLOOBi+OBiA0KK+OBleOBrizjgY3jgofjgYTjgaENCivjgYrjgZbjgY0s44KP44Gf44KLDQor44KI44GT44G+44GkLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgZXjgYss44GV44Go44GXDQor44GE44GX44GW44KPLOOBi+OBmuOBqOOBlw0KK+OBk+OBsOOChOOBlyzjgYjjgb/jgZMNCivjgojjgZfjgaAs44GR44GEDQor44GN44KA44KJLOOBvuOBleOBlw0KK+OBiuOBpOOBiyzjgajjgYbjgosNCivjgYLjgaDjgaEs44G/44Gh44KE44GZDQor44GC44GL44GV44GLLOOBguOBpOOBlw0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgYTjgaHjgoDjgoks44GT44GG44GYDQor44GK44GX44GfLOOBquOBiuOBjQ0KK+OBu+OCk+OBoCzjgZ/jgYvjgYLjgY0NCivjgYvjgoTjgazjgb4s44GR44GE44GfDQor44Gu44GW44GNLOOCiOOBl+OChuOBjQ0KK+OBi+OBqeOCj+OBjSzjgoLjgajjga/jgosNCivjgYrjgZgs44GC44GN44Gy44KNDQor44Gf44GQ44GhLOOBsuOCjeOBlw0KK+OBn+OBkeOBhOOBlyzjgabjgaTjgYoNCivjgbLjgonjgYQs44GL44Gk44Gy44GVDQor44GL44Gq44GW44KPLOOChuOBv+OBkw0KK+OBteOCi+OBi+OCjyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoLjgorjgarjgYss44KG44Ga44GNDQor44GC44KJ44GELOOBmOOCheOCkw0KK+OBn+OBquOBiyzjgajjgoLjgYLjgY0NCivjgZfjgb/jgZos44KK44GI44GTDQor44GE44Gh44Gv44KJLOOBn+OBkeOCiw0KK+OBjeOBn+OBruOBr+OCiSzjgZ/jgYvjgZcNCivjgY3jgZ/jgYos44GX44KH44GG44GYDQor44KC44KK44KC44GoLOOBv+OBqeOCig0KK+OBjeOBn+OCgOOCiSzjgYvjgYrjgooNCivjgZXjgZXjgZbjgo8s44Gu44G244KG44GNDQor44G+44Gk44GK44GLLOOBiuOBleOCgA0KK+OBk+OBhuOCiSzjgZPjgYbjgZgNCivjgb/jgo8s44KG44GG44GYDQor44KI44GX44GK44GLLOOBteOBmOOBiA0KK+OBu+OCiizjgoTjgZnjgbLjgo0NCivjgZXjgYTjgajjgYYs44KE44GZ44Gk44GtDQor44Gq44GM44GbLOOBguOBjeOBqA0KK+OCguOCiuOBl+OBvizjgZfjgpPjgZgNCivjgYrjgo/jgoos44GY44KF44Gr44GhDQor44Gf44Gq44GLLOOBiOOCiuOBiw0KK+OBpuOCieOCgOOCiSzjgb7jgZXjgogNCivjgZPjgbDjgoTjgZcs44Go44GX44GC44GNDQor44GV44GE44Go44GGLOOCiOOBl+OBruOCig0KK+OBjeOCgOOCiSzjgojjgZfjgobjgY0NCivjga/jgZfjgoLjgags44G+44GV44KLDQor44Gq44GL44GM44KPLOOBsuOBp+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgajjgoLjgbLjgagNCivjga/jgY7jgo/jgoks44Gy44Gn44GNDQor44Gr44GX44GL44KPLOOCiuOBi+OBkw0KK+OBjeOBn+OBmOOBvizjgZ/jgZHjgZcNCivjgZ/jgYvjgYbjgoks44Gq44GK44GTDQor44GC44GV44GgLOOBn+OBi+OBsuOCjQ0KK+OBjeOBn+OBmuOCgSzjgbLjgo3jgZMNCivjga3jgoLjgags44Gy44KN44GTDQor44Gf44Gq44GLLOOChuOBv+OBkw0KK+OBn+OBquOBiyzjgojjgZfjgbLjgagNCivjgYLjgaDjgaEs44Gy44Gn44Gv44KLDQor44Gv44KJLOOBsuOCjeOBiw0KK+OBguOBi+OBvuOBpCzjgb7jgY3jgZMNCivjgYTjgb7jgoDjgoks44G/44GNDQor44KA44KJ44KE44G+LOOBqOOBl+OBvuOBlQ0KK+OBn+OBkeOBhuOBoSzjgY3jgofjgZ4NCivjgZrjgZcs44Gy44KN44Gu44KKDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgojjgZfjgbLjgZUNCivjga/jgb7jgZDjgaEs44Gm44Gk44KEDQor44GL44GS44KE44G+LOOBvuOBleOBiuOBjQ0KK+OBi+OBquOCguOCiizjgY/jgavjgbLjgZMNCivjgYvjgajjgoos44Go44KC44G/DQor44GC44KJ44GELOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOBnyzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44Gy44Gn44KIDQor44Gv44KL44GfLOOBguOCieOBnw0KK+OBquOBi+OBluOCjyzjgo/jgYvjgZMNCivjgZnjgYws44G+44GV44Gy44GTDQor44G+44GI44Gn44KJLOOBi+OBmuOBsuOCjQ0KK+OBguOCieOBvuOBjSzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jga4s44G+44GV44KG44GNDQor44KI44GX44GuLOOBkeOCk+OBlA0KK+OBv+OBj+OCiuOChCzjgYLjgaTjgZcNCivjgYrjgY/jga7jgY4s44KI44GYDQor44GV44GP44KJ44GELOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44GL44G7DQor44GP44KK44Gv44KJLOOBguOBpOOBkw0KK+OCgOOBk+OBhuOBkOOBoSzjgZ3jgYTjgaENCivjgbXjgZjjgYQs44Gy44KN44KG44GNDQor44GL44GSLOOBsuOBp+OBjQ0KK+OBvuOBiOOBoCzjgaTjgojjgZcNCivjgarjgYzjgbvjgoos44GX44KH44G444GEDQor44Gk44GYLOOBvuOCiuOBkw0KK+OBjeOCgOOCiSzjgYjjgb/jgZMNCivjgb7jgaTjgYos44Gy44Gn44KEDQor44Gf44Gm44GuLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgZnjgZbjgY0s44Gm44KL44KG44GNDQor44GE44KP44GV44GNLOOBguOBpOOBlw0KK+OBleOBqOOBhizjgZ/jgaTjgoQNCivjgavjgaPjgZ8s44GX44GS44G/44GkDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBl+OBvuOBoCzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44KI44GX44GL44GkDQor44G744KT44GgLOOBquOBig0KK+OBquOBi+OBn+OBqyzjga7jgorjgZMNCivjgb/jgoTjgZjjgb4s44GP44G/44GTDQor44GP44GN44KE44G+LOOBvuOBjQ0KK+OBm+OBjeOBrSzjgYLjgY3jgbLjgo0NCivjgojjgZfjga/jgoks44KG44GG44GTDQor44Gy44KJ44GfLOOBruOBtuOChA0KK+OBquOBjOOBleOCjyzjgobjgY3jgZMNCivjgarjgYvjgYzjgY0s44KC44KC44GTDQor44GP44KN44GL44KPLOOBl+OCk+OBn+OCjeOBhg0KK+OBi+OBkeOBn+OCiizjgZPjgYbjgYTjgaENCivjgYTjgajjgYYs44Gu44KK44KI44GXDQor44G+44GI44GL44KPLOOBvuOBk+OBqA0KK+OBvuOBpOOBoCzjgZ/jgaTjgoQNCivjgY/jgo/jga/jgoks44G/44KE44GzDQor44GE44GE44Ga44GLLOOChuOCig0KK+OBvuOBmOOBvizjgaDjgYTjgYvjgpMNCivjgoDjgonjgZ8s44G+44KKDQor44GC44GN44GE44GRLOOBguOBi+OBrQ0KK+OBquOBv+OBjSzjga7jgorjgZMNCivjgojjgZfjga4s44GZ44Gq44GKDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBn+OCgOOCiSzjgZfjgoXjgpMNCivjgYvjgoHjgaAs44GT44GG44GYDQor44Gr44GXLOOCiuOCh+OBn+OCjeOBhg0KK+OBhOOBquOBiuOBiyzjgZXjgajjgosNCivjgYTjgo/jgZXjgY0s44G+44GV44GL44GaDQor44GL44KT44GgLOOBqOOBl+OBig0KK+OBn+OBoCzjgZHjgYTjgZMNCivjgYbjgaQs44KE44GZ44KG44GNDQor44GX44G+44GgLOOBkeOCk+OBmOOCjQ0KK+OCiOOBl+OBoCzjgYvjgojjgZMNCivjgYrjgY/jgYzjgo8s44GY44KF44KT44GYDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OBn+OCk+OBvSzjgb7jgZPjgagNCivjgo/jgaAs44KP44GL44GTDQor44GG44KL44GX44Gv44KJLOOBsuOBp+OChuOBjQ0KK+OBhOOBhOOBiizjgajjgoLjgZMNCivjgavjgYTjga/jgoks44KG44GG44GE44GhDQor44GK44KA44KJLOOBpuOBpOOChA0KK+OBhOOBruOBhuOBiCzjgb/jgY3jgZMNCivjgoLjgorjgarjgYws44KG44GNDQor44GV44GuLOOBv+OBqeOCig0KK+OBquOBi+OBn+OBqyzjgZfjgpPjgoQNCivjgYLjgbks44KE44GZ44GXDQor44GG44Gh44GgLOOBkeOCk+OBmA0KK+OBsuOCjeOBnyzjgobjgYbjgZgNCivjgYTjgo/jgY/jgoks44Gq44G/DQor44GE44GX44GK44GLLOOBiOOBhOOBjQ0KK+OBqOOBjeOBnyzjgajjgoLjgYLjgY0NCivjgY3jga7jgZfjgZ8s44G+44GV44GKDQor44G/44Ga44GuLOOBsuOCjeOChuOBjQ0KK+OChOOBmeOBiCzjgojjgZfjgbXjgb8NCivjgYTjgo/jgoLjgags44GR44GE44GTDQor44KE44G+44GYLOOBv+OBreOBkw0KK+OBk+OBleOBhCzjgarjgYrjgZMNCivjgY/jgbws44GI44GE44GZ44GRDQor44Gh44GwLOOBn+OCjeOBhg0KK+OChOOBpOOBn+OBqyzjgY3jgofjgZMNCivjgYTjgYzjgonjgZcs44Gf44GP44KEDQor44GC44KJ44GL44KPLOOBnOOCk+OBmOOCjQ0KK+OBpuOCieOBleOBjSzjgajjgZfjgbLjgo0NCivjgZvjgZTjgYgs44Gy44KN44GXDQor44Go44GP44GX44G+LOOBvuOBleOChOOBmQ0KK+OBsOOCk+OBqSzjgb7jgZXjgarjgYoNCivjgZ/jgY3jgZbjgo8s44GR44KT44GYDQor44G/44Ga44GV44GNLOOChuOBleOBjw0KK+OBn+OBjeOBkOOBoSzjgYvjgYTjgZjjgo0NCivjgbLjgYrjgY0s44Gy44Gn44GC44GNDQor44Gq44GL44GELOOBquOBpOOBkw0KK+OBiuOBhOOBi+OCjyzjgarjgYrjgZnjgZENCivjgb7jgaTjgoDjgoks44GC44GE44GTDQor44GI44KT44GpLOOBvuOBleOBvw0KK+OBn+OBmOOBvizjgZXjgajjgosNCivjgoTjgb7jgZbjgY0s44KG44GL44KKDQor44Gb44Gu44GKLOOChuOBhuOBkw0KK+OBr+OCieOBoCzjgajjgZfjgYgNCivjgbXjgY/jgYQs44Gy44GL44KLDQor44G+44Gk44GG44KJLOOBguOBpOOBlw0KK+OBi+OCj+OCgOOCiSzjgZ/jgYvjgZrjgb8NCivjgabjgonjgoLjgags44GC44GL44GtDQor44Gv44GO44KP44KJLOOCguOBqOOBguOBjQ0KK+OBquOBi+OBl+OBvizjgZXjgajjgZMNCivjgY3jga7jgZfjgZ8s44G+44GV44GTDQor44GC44KJ44GELOOBl+OCh+OBkw0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgZXjgYjjgZDjgZUs44GR44KT44Gf44KN44GG44GGDQor44Gf44Gq44GLLOOBkeOBhA0KK+OBvuOBiOOBoCzjgb7jgZXjgZcNCivjgb/jgoTjgZbjgY0s44GC44Gk44G/DQor44GE44GR44G5LOOCjOOBhOOBkw0KK+OBj+OCj+OBsOOCiSzjgaHjgZDjgZUNCivjgojjgaAs44KI44GX44GKDQor44Gf44Gh44Gw44GqLOOBleOBqOOBkw0KK+OChOOBvuOBkOOBoSzjgYjjgYTjgZgNCivjgYTjgZfjga/jgoks44GT44GG44GYDQor44Gf44GN44GW44KPLOOBqOOBl+OBvuOBlQ0KK+OBsuOCieOBrizjgajjgoLjgYsNCivjgYvjgo/jgZXjgY0s44GR44GEDQor44KE44G+44KC44GoLOOChuOBhuOBhOOBoQ0KK+OBguOCieOBmyzjgZ/jgYvjgb/jgaENCivjgoTjgarjgY7jgZXjgo8s44Gf44GP44G/DQor44GX44GK44KELOOBiOOBv+OBkw0KK+OBleOBqOOBhizjgb/jgaHjgYoNCivjgYvjgajjgYYs44Gh44Ga44KLDQor44GK44GuLOOBmOOCheOCk+OBkw0KK+OBjeOBn+OBr+OBvizjgajjgoLjgb8NCivjgZTjgags44G/44Gk44GTDQor44Gr44Gu44G/44KELOOBiuOBleOCgA0KK+OBhuOBmeOBhCzjgYvjgZrjgb8NCivjgb/jgZrjgZfjgb4s44GC44GN44KJDQor44GZ44Gp44GGLOOBn+OBi+OBruOCig0KK+OBhOOBkeOBoCzjgZ/jgYvjgYoNCivjgarjgYvjgbLjgYzjgZcs44KE44GZ44GC44GNDQor44GP44KK44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBqOOBoCzjgZHjgYTjgZMNCivjga/jgYvjgb7jgZ8s44G+44GV44GC44GNDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBtuOBvw0KK+OBhOOBvuOBnOOBjSzjgZ/jgYvjgojjgZcNCivjgbvjgorjgYos44Gy44GV44Go44GXDQor44GL44GZ44GMLOOBguOBpOOBlw0KK+OBi+OCj+OBmyzjgb7jgZXjga7jgbYNCivjgZXjgajjgYYs44GC44GN44GIDQor44Gf44GL44Gq44GXLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBvuOBpOOBl+OBnyzjgbLjgajjgb8NCivjgoTjgZDjgaEs44KI44GX44Gf44GLDQor44GL44Gt44GTLOOChOOBmeOBvuOBlQ0KK+OBsuOBoOOBiyzjga7jgorjgZMNCivjgZXjgaPjgZUs44G+44KG44G/DQor44Gd44GMLOOBqOOCguOBruOCig0KK+OBmeOBjuOBhuOCiSzjgZ/jgZHjgosNCivjgZXjgajjgYYs44G+44GT44GoDQor44Gf44Gr44Gw44KE44GXLOOBguOBjeOBkw0KK+OBq+OBl+OBiuOBiyzjgYLjgorjgZfjgZINCivjgajjgoLjgarjgYws44KN44KP44KLDQor44GK44Gv44GXLOOBsuOCjeOBn+OBiw0KK+OBquOBjOOBl+OBvizjgYLjgaTjga7jgbYNCivjgZ/jgavjgYzjgY0s44Gv44KL44G/DQor44GT44GG44GgLOOBhOOBj+OBkw0KK+OBjeOCiOOBrizjgb7jgobjgb8NCivjgoTjgb7jgYvjgo8s44Gk44KI44GXDQor44Gq44GL44GY44G+LOOBquOBiuOBkw0KK+OCguOBpuOBjizjgbLjgo3jgb8NCivjgYrjgazjgb4s44Gu44G244GC44GNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBteOCi+OBhOOBiCzjgbLjgafjgY0NCivjgYLjgYTjgoLjgags44GL44Ga44KG44GNDQor44KI44GT44GKLOOBv+OBig0KK+OBq+OBl+OBi+OCjyzjgZ/jgYTjgaENCivjgbPjgags44Gf44GP44KEDQor44GN44Gf44KA44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBvuOBi+OCjyzjgYLjgb/jgZMNCivjgajjgb/jgZ8s44GV44Gh44GTDQor44Gk44Gh44GgLOOBn+OBi+OBlw0KK+OBhOOBl+OBkOOCjSzjgarjgYrjgY0NCivjgb7jgaTjgYos44Gy44Gn44GNDQor44GG44GI44KC44GoLOOBm+OBhOOBnw0KK+OBhOOBhOOBoCzjgZvjgYTjgZMNCivjgZnjgZrjgY0s44GT44G/44GqDQor44Gf44KA44KJLOOBleOBqOOBlw0KK+OBiuOBj+OBoCzjgajjgZfjgYoNCivjgbvjgoos44Gy44KN44GXDQor44GP44GV44Gk44GQLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgobjgZ/jgYsNCivjgYLjgZXjga/jgoks44GX44GS44GKDQor44Go44GP44GgLOOCiOOBl+OBkw0KK+OBhOOBp+OBnyzjgoLjgajjgbXjgb8NCivjgYTjgajjgYYs44GP44Gr44GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBpOOBmOOBleOCjyzjgojjgZfjgarjgYwNCivjgYrjga4s44GX44KT44KEDQor44GE44KP44G+LOOBleOBoOOBr+OCiw0KK+OBoOOBhOOBlOOBjyzjgZ/jgZHjgZcNCivjgoTjgb7jgoDjgoks44Gy44Gn44GoDQor44Gv44Gb44GM44KPLOOCiuOBiA0KK+OBhOOBjizjgajjgYrjgosNCivjgb7jgYvjgbks44GT44GG44GE44Gh44KNDQor44GK44GL44KC44GoLOOBv+OBjeOBkw0KK+OBiuOBr+OCiSzjgZfjgZLjgbLjgo0NCivjgZvjgY3jgoTjgb4s44GL44Ga44KI44GXDQor44GN44Gf44GY44G+LOOBruOBvOOCiw0KK+OBqOOCiuOBhuOBvyzjgojjgZfjgb8NCivjgb/jgoTjgZbjgY0s44KE44GZ44GXDQor44GG44GELOOBvuOBleOBquOBig0KK+OBj+OCieOCguOBoSzjgZ/jgYvjgbLjgo0NCivjgZfjgYrjgazjgb4s44G+44KT44Gq44KKDQor44KJ44GE44GfLOOCiOOBl+OBsuOCjQ0KK+OBl+OCguOBk+OBuSzjgabjgovjgb/jgaENCivjgZXjgo/jga4s44GN44GE44Gh44KN44GGDQor44GV44GL44Gr44GXLOOBkeOBhA0KK+OBleOBleOBjSzjgZPjgYbjgZgNCivjgZvjgYTjga4s44Gu44G244GC44GNDQor44GZ44Ga44GNLOOBmOOCheOBq+OBoQ0KK+OBleOBi+OCguOBqCzjgojjgZfjgYvjgZoNCivjgZnjgZrjgY0s44Go44GX44GL44GaDQor44GV44KP44GuLOOBn+OBi+OBsuOCjQ0KK+OBl+OBjCzjgb7jgZXjgYvjgaQNCivjgZTjgags44GL44Gk44GKDQor44GZ44GgLOOChuOBjeOBquOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44GC44GNDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgabjgYoNCivjgZnjgY7jgZXjgY0s44KI44GX44Gy44GoDQor44GZ44GI44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgZfjgbDjgZ8s44GE44GP44GKDQor44GZ44GO44KE44G+LOOBruOBtuOBi+OBmg0KK+OBleOBi+OBhCzjgabjgovjgYoNCivjgZfjgb/jgZos44KG44GG44GYDQor44GZ44GO44KC44GoLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgZHjgYTjgZ4NCivjgZvjgY0s44GC44GN44KI44GXDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBm+OBjeOBkOOBoSzjgZfjgo0NCivjgZXjgajjgYYs44GL44Gk44KEDQor44GZ44Ga44GNLOOBpuOBpOOChA0KK+OBleOBhOOBqOOBhizjgajjgY/jgb7jgZUNCivjgZvjgY3jga0s44GY44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBkw0KK+OBhOOBhOOBoCzjgajjgZfjgYoNCivjgZnjgZrjgY0s44GR44KT44GYDQor44GV44GV44GNLOOCiOOBl+OBruOCig0KK+OBmeOBiOOBquOBjCzjgb/jgaTjgY/jgasNCivjgZXjgYvjgoLjgags44Gf44GL44GXDQor44GV44GE44Go44GGLOOBruOBtuOBguOBjQ0KK+OBmeOBjOOBiizjgZPjgajjgZgNCivjgZfjgb7jgZos44Gf44Gg44GKDQor44GV44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBl+OBruOBluOBjSzjgZ/jgaDjgZcNCivjgZnjgZrjgY0s44Go44GX44GKDQor44GZ44Gq44GMLOOBn+OBj+OBmA0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgZnjgZrjgY0s44Gv44KL44KG44GNDQor44Gb44GN44GtLOOBk+OBmeOBkQ0KK+OBleOBleOBjSzjgYjjgYTjgZgNCivjgZXjgo/jgaAs44KG44Gu44GZ44GRDQor44GV44GE44Go44GGLOOBn+OBoOOBig0KK+OBl+OCguOBnuOBrizjgajjgojjgbXjgb8NCivjgZnjgYgs44Gk44Go44KADQor44GV44Gp44Go44KCLOOBjeOCiOOBn+OBiw0KK+OBm+OBjeOBrSzjgbLjgo3jgZcNCivjgZXjgajjgYYs44G/44Gk44GKDQor44GV44KT44GULOOBqOOBl+OBig0KK+OBmeOBqeOBhizjgbLjgafjgYLjgY0NCivjgZ3jga7jgaAs44G+44GV44G/DQor44GX44G+LOOBpuOBpOOBmA0KK+OBleOBqOOBhizjgb/jga7jgosNCivjgZXjgajjgYYs44G144G/44GKDQor44GX44G244KELOOBguOBjeOCiQ0KK+OBleOBqOOBhizjgojjgZfjgobjgY0NCivjgZXjgajjgYYs44GR44KTDQor44GV44GL44GfLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgZHjgYTjgZ/jgo3jgYYNCivjgZnjgo/jgY0s44GV44Gg44Gu44KKDQor44Gd44KKLOOBqOOBl+OBig0KK+OBleOBi+OCguOBqCzjgYLjgY3jgokNCivjgZfjgonjgYTjgZcs44GL44Ga44GKDQor44GZ44Ga44GNLOOBn+OBoOOBsuOBkw0KK+OBl+OBvuOBoCzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44GC44GN44KJDQor44GZ44Ga44GNLOOBkeOCk+OBmeOBkQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZnjgZrjgY0s44KI44GX44Gu44G2DQor44GV44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBl+OBkuOBvuOBpCzjgarjgYrjgb8NCivjgZXjgYzjgoks44G/44Gu44KLDQor44GV44GE44Go44GGLOOCiOOBreOBng0KK+OBl+OCk+OBkCzjgajjgb/jgYoNCivjgZnjgYzjgazjgb4s44GL44Ga44GC44GNDQor44Gd44GMLOOBi+OBmuOBig0KK+OBleOBleOBjSzjgabjgovjgbLjgZMNCivjgZXjgajjgYYs44KI44Gt44GKDQor44GV44KP44GgLOOBiuOBleOCgA0KK+OBneOBvizjgZ/jgYvjgZcNCivjgZfjgbDjgZ8s44Gf44GR44GYDQor44GV44Go44GGLOOBl+OCheOBq+OBoQ0KK+OBleOBqOOBhizjgb7jgZXjgajjgZcNCivjgZfjgb7jgaAs44GC44GN44GKDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44KI44GX44GKDQor44GX44KC44GnLOOBr+OBmOOCgQ0KK+OBleOBleOBjSzjgY3jgojjgZcNCivjgZXjgajjgYYs44Gk44Go44KADQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBleOCj+OBoCzjgZ/jgYvjgajjgZcNCivjgZfjgo3jgZXjgY0s44KG44GN44GKDQor44GX44Gw44GELOOBn+OBi+OBig0KK+OBleOBhOOBqOOBhizjgabjgovjga7jgbYNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44Gd44GM44G5LOOBruOBtuOChuOBjQ0KK+OBm+OBjOOCjyzjgZfjgZLjgosNCivjgZfjgb/jgZos44Gm44Gk44GKDQor44GZ44Ga44GNLOOBiuOBleOCgA0KK+OBl+OCjeOChOOBvizjgZ/jgZHjgYoNCivjgZfjgYTjgaos44G/44Gh44GTDQor44GV44KE44G+LOOBjeOCiOOBlw0KK+OBleOBi+OCguOBqCzjgbLjgafjgYoNCivjgZXjgajjgYYs44Gu44G244GKDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgZXjgZXjgZss44Gy44Gn44GNDQor44GV44GP44KJ44GELOOBqOOBl+OBig0KK+OBl+OBvuOBoCzjgogNCivjgZXjgajjgYYs44Gy44GV44GKDQor44GX44KC44GuLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgojjgbLjgaENCivjgZnjgY7jgoLjgags44GZ44GZ44KADQor44GX44G/44GaLOOBv+OBoeOBig0KK+OBleOBrizjgajjgZfjgYoNCivjgZnjgZrjgY0s44GE44GV44GKDQor44GX44G+44GgLOOBoeOBsuOCjQ0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgZnjgY7jgbXjgZgs44KI44GY44KNDQor44GV44GL44GELOOCiOOBl+OBsuOBkw0KK+OBleOBi+OBkOOBoSzjgojjgZfjgYoNCivjgZnjgYzjgo/jgoks44G+44KC44KLDQor44GX44Gu44Ga44GLLOOBvuOBk+OBqA0KK+OBl+OBjCzjgbLjgo3jgZcNCivjgZXjgYvjgYzjgb8s44Gf44Gg44KI44GXDQor44GZ44Ga44GNLOOBpuOBpOOCjQ0KK+OBmeOBjuOBrizjgYvjgaTjgobjgY0NCivjgZnjgY7jgYbjgoks44G+44GV44GNDQor44GX44G/44GaLOOBm+OBhOOBmA0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgo0NCivjgZXjgZXjgZMs44KI44GZ44GRDQor44Gb44GNLOOCiOOBl+OBquOCig0KK+OBleOBqOOBhizjgb7jgZXjgYoNCivjgZfjgb4s44Gf44GR44GKDQor44GZ44Ga44GNLOOCiOOBl+OBruOBtg0KK+OBleOBi+OCguOBqCzjgZPjgbjjgYQNCivjgZXjgZXjgY0s44GL44Ga44Gy44GTDQor44GX44G+44GgLOOBr+OCi+OBsuOBlQ0KK+OBleOBhOOBqOOBhizjgbLjgajjgZcNCivjgZfjgYrjgZ8s44GX44KT44GE44GhDQor44GX44GK44GgLOOBiOOBhOOBmA0KK+OBmeOBoCzjgaDjgYTjgZXjgY8NCivjgZfjgYTjgaos44GY44KF44Gr44GhDQor44GX44GK44Gu44KELOOBv+OBpOOBig0KK+OBleOBhOOBl+OChyzjgajjgojjgb4NCivjgZ3jgYTjgaAs44GL44Ga44KG44GNDQor44Gd44G+LOOBsuOBp+OBig0KK+OBleOBqOOBhizjgZnjgZnjgoANCivjgZXjgajjgYYs44GL44Ga44G/DQor44GX44GK44Gw44KJLOOBn+OBkeOBl+OBkg0KK+OBleOBleOBiuOBiyzjgZvjgYTjgZ4NCivjgZXjgZXjgY0s44KG44GN44KI44GXDQor44Gb44GoLOOBn+OBpOOBmA0KK+OBl+OCheOBqSzjgbLjgo3jgZcNCivjgZXjgYvjgoLjgags44GN44KI44Gm44KLDQor44GV44GP44G+LOOCiOOBl+OBi+OBmg0KK+OBl+OBruOBluOCjyzjgbLjgo3jgZcNCivjgZfjgYrjgbDjgoks44GE44Gd44GYDQor44GV44GP44KJ44GELOOBn+OBoOOBsuOBlQ0KK+OBleOBqOOBhizjgajjgojjgYoNCivjgZXjgY/jgonjgYQs44GE44GV44KADQor44GV44GV44G5LOOBiOOBhOOBmA0KK+OBleOBqOOBhizjgZHjgpPjgZ4NCivjgZnjgY7jgYbjgoks44Gm44Gk44GKDQor44GV44GL44GELOOChOOBmeOBsuOCjQ0KK+OBneOBvizjgYjjgYTjgYTjgaENCivjgZ3jgbLjgoMs44GL44KT44GYDQor44Gd44Gt44GL44GkLOOBsuOCjeOBlw0KK+OBm+OBjeOBrSzjgZ/jgZHjgb/jgaENCivjgZnjgZrjgY0s44GN44KI44GIDQor44Gb44GN44GtLOOCiOOBl+OBn+OBiw0KK+OBleOBi+OBjeOBsOOCiSzjgb/jgaTjga7jgbYNCivjgZfjgoLjgYvjgo/jgbks44G144G/44GKDQor44GV44KP44KA44KJLOOBn+OBi+OBig0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GV44GL44G+44GNLOOBpOOCiOOBlw0KK+OBleOBjOOCjyzjgbLjgo3jgobjgY0NCivjgZnjgY7jgoTjgb4s44KG44Ga44KLDQor44GZ44GO44KC44GoLOOCgeOBkOOCgA0KK+OBm+OBiizjgajjgZfjgYoNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44GV44GL44GELOOCiuOCheOBng0KK+OBleOBj+OCieOBhCzjgobjgZ4NCivjgZvjgY3jga0s44G+44GV44GKDQor44GV44Go44GGLOOBruOBtuOBig0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgZfjgb/jgZos44GC44GN44KJDQor44GV44GE44Go44GGLOOBn+OBkeOBig0KK+OBleOBj+OCieOBhCzjga7jgorjgYoNCivjgZnjgY7jgoTjgb4s44Go44GX44Gk44GQDQor44GX44Ga44GLLOOBi+OBmuOBqOOBlw0KK+OBl+OCieOBi+OCjyzjgZHjgpMNCivjgZXjgYTjgajjgYYs44Gq44KL44G/DQor44GV44GN44KC44KKLOOBmOOCheOBq+OBoQ0KK+OBleOBqOOBhizjgZPjgZrjgYgNCivjgZvjgY3jgZDjgaEs44Gy44Gn44GC44GNDQor44Gb44GN44GtLOOBqOOBl+OBsuOBlQ0KK+OBl+OBsOOBnyzjgZ/jgZHjgobjgY0NCivjgZnjgZrjgY0s44GTDQor44GV44GE44Go44GGLOOChuOBhuOBmA0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZvjgY3jga0s44G/44GN44GKDQor44GV44GL44GELOOBn+OBoOOBsuOCjQ0KK+OBleOBleOBiizjgb7jgZXjga7jgooNCivjgZnjganjgYYs44Gv44Gk44G/DQor44KC44KKLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgajjgYYs44G+44GV44GKDQor44GZ44Ga44GNLOOBvuOBleOBguOBjQ0KK+OBl+OCgOOCiSzjgoTjgZnjgYoNCivjgZfjgbDjgZXjgY0s44Gy44GV44Gq44GKDQor44GZ44GM44G+44GfLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgobjgZrjgosNCivjgZfjgYrjga7jgoQs44GE44KP44GKDQor44Gf44GL44Gv44GXLOOBpuOBpOOBig0KK+OBpOOBjeOChOOBvizjgYrjgY3jgajjgZcNCivjgaTjga7jgaAs44Gu44KK44GTDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmOOCjQ0KK+OBqOOBj+OBluOCjyzjgZ/jgYvjgbLjgo0NCivjgZ/jgZDjgaEs44Gy44GV44GKDQor44Gf44GL44GOLOOBruOCiuOBig0KK+OBn+OBi+OBrizjgYrjgZXjgoANCivjgZ/jga/jgoks44Gv44KL44Gy44GTDQor44Go44KI44GV44KPLOOBl+OCk+OBmA0KK+OBqOOCiOOBvuOBmSzjgb7jgZPjgagNCivjgZ/jgYvjga/jgZcs44GX44KH44GYDQor44Gf44GR44GG44GhLOOBiOOBhOOBng0KK+OBn+OBjeOBhOOBlyzjgabjgovjgYoNCivjgZ/jgYvjgYTjgZcs44GE44GV44GKDQor44Gf44GL44GV44GNLOOBsuOCjeOBqOOBlw0KK+OBn+OBq+OBjOOCjyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gf44Gq44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBvuOBjSzjgY3jgojjgYvjgZoNCivjgajjgbAs44Go44GX44KNDQor44Gf44Gw44GfLOOBjeOBj+OBig0KK+OBpOOBmCzjgojjgZfjgY0NCivjgZ/jgarjgYss44Gq44GK44GoDQor44Gf44GL44Gv44GXLOOCguOCiuOBr+OCiw0KK+OBqOOBj+OBquOBjCzjgb7jgZXjgYoNCivjgZ/jgZDjgaEs44Gy44Gn44GKDQor44Gf44GN44GW44KPLOOBpuOCi+OBv+OBpA0KK+OBqOOBvyzjgY3jgojjgYvjgZoNCivjgaTjgZgs44GT44GG44GE44GhDQor44GG44Gh44GgLOOBkeOBhOOBhOOBoQ0KK+OBn+OBquOBiyzjgb7jgZXjga7jgbYNCivjgaTjga3jgojjgZcs44Gm44GE44GYDQor44Gf44GL44GuLOOCiuOCh+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjgYoNCivjgZ/jgYvjgoTjgarjgY4s44GR44KT44GYDQor44Gf44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBn+OBvCzjgb7jgZXjgajjgZcNCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OBn+OBi+OChOOBmSzjgb7jgZXjgZcNCivjgaTjgaHjgoQs44Gf44GL44GXDQor44Go44GP44Gq44GMLOOBn+OBi+OBig0KK+OBpOOBoeOBoCzjgYLjgaTjgZcNCivjgaTjgbzjgYQs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBjeOBv+OBig0KK+OBpOOBi+OCguOBqCzjgb7jgZXjgYoNCivjgZ/jgarjgYss44GL44Gk44GX44GSDQor44Go44KC44Gk44GtLOOBn+OBreOBvuOBlQ0KK+OBoeOBmCzjgZHjgYTjgZMNCivjgZXjgajjgYYs44Go44GX44GKDQor44Gf44GL44GfLOOBhOOCj+OBig0KK+OBqOOBr+OBnyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga/jgZcs44KA44Gt44GKDQor44Gf44GL44Gv44G+LOOChuOBjeOBoQ0KK+OBpuOCieOBleOCjyzjgojjgYTjgaENCivjgZ/jgYvjgbDjgoTjgZcs44GR44GE44GZ44GRDQor44Gm44KJ44GgLOOChuOBn+OBiw0KK+OBpOOBi+OBoCzjgYvjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44GNDQor44Go44KK44G+44KLLOOBqOOCiOOBvw0KK+OBpOOBoeOBoCzjgobjga/jgaQNCivjgZ/jgY3jgoLjgags44GR44KT44GYDQor44Gf44GN44GELOOBquOBiuOBi+OBnw0KK+OBn+OBreOBoCzjgYjjgYTjgYjjgaQNCivjgZ/jgoDjgoks44G+44GV44GX44GSDQor44Gf44Gp44GT44KNLOOBleOBoOOCgA0KK+OBn+OBi+OBiizjgZfjgZLjgosNCivjgZ/jgarjgYss44GZ44GZ44KADQor44Gf44GL44Gv44GXLOOBqOOBl+OBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgZvjgYTjgZgNCivjgZ/jgYvjga/jgZcs44Gk44Gt44GKDQor44Go44G/44GfLOOCiOOBl+OBvw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgZ/jgavjgZDjgaEs44KI44GX44GC44GNDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBpOOBvOOBhCzjgZfjgofjgZgNCivjgZ/jgZHjgYbjgaEs44GX44KF44GYDQor44Gk44GgLOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgbLjgafjgYoNCivjgZ/jgZHjgYQs44Gf44G/44GKDQor44Gk44GY44GL44KPLOOBvuOCguOCiw0KK+OBn+OBkeOCgOOCiSzjgajjgZfjgbLjgZMNCivjgZ/jgY0s44Gy44Gn44GC44GNDQor44Gf44GL44GgLOOBkeOCk+OBmA0KK+OBn+OBjeOBluOCjyzjgojjgZfjga7jgooNCivjgZ/jgarjgYss44Gy44GV44GKDQor44Gf44Gr44KA44KJLOOBvuOBmeOBvw0KK+OCiOOBl+OBluOCjyzjgbLjgYvjgosNCivjgaTjga3jgYvjgo8s44Gv44Gk44GKDQor44Gf44Gq44GLLOOBl+OBkuOChuOBjQ0KK+OBn+OBi+OBoCzjgbXjgZjjgYoNCivjgaTjgoss44Go44GK44KLDQor44Gf44GrLOOBguOBpOOBruOCig0KK+OBn+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgZ/jgarjgYss44KG44GeDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBvw0KK+OBn+OBquOBiyzjgbvjgbbjgpMNCivjgaTjgZgs44Go44KI44GXDQor44Gf44Gq44GLLOOBvuOBleOChuOBjQ0KK+OBpOOChuOBjSzjgZfjgZLjgYoNCivjgZ/jgb7jgoss44KG44GG44GE44GhDQor44Gk44Gh44KELOOBm+OBhOOBmOOChQ0KK+OBpOOCi+OBiuOBiyzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44Gf44GL44Gv44GXLOOBl+OBkuOCiw0KK+OBqOOBteOBj+OBmCzjgb7jgZXjgZgNCivjgZ/jgarjgYss44Gf44GR44KI44GXDQor44Gf44GL44GOLOOBvuOBleOBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgZ/jgo3jgYYNCivjgZ/jgavjgZDjgaEs44Gy44KN44GXDQor44Go44KI44GgLOOBi+OBpOOBig0KK+OBn+OBi+OBjizjgYLjgY3jgokNCivjgZ/jgZHjgYQs44G+44GV44Gy44KNDQor44Gk44GgLOOBhOOBleOBig0KK+OBpOOBreOBsuOCjSzjgZjjgoXjgpPjgZ4NCivjgZ/jgY3jgZbjgo8s44GL44Ga44Gy44KNDQor44Gf44Gh44Gw44GqLOOBruOCiuOBv+OBpA0KK+OBn+OBi+OBr+OBlyzjgobjgbLjgaENCivjgZ/jgavjgZDjgaEs44GL44Gk44G/DQor44Gf44GR44GgLOOBsuOBleOBig0KK+OBpOOBoeOChCzjgb7jgZXjgb8NCivjgZ/jgYvjga/jgZcs44GR44GE44GYDQor44Gf44Gu44GG44GILOOBruOBtuOBig0KK+OBn+OBi+OBsOOBn+OBkSzjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44GTDQor44G144Gq44GNLOOBqOOBl+OBig0KK+OBn+OBkeOBoCzjgYrjgY3jgaTjgZANCivjgajjgY/jgarjgYws44GN44KH44GTDQor44GC44GV44GELOOCiOOBl+OBsuOBlQ0KK+OBn+OBi+OBr+OBlyzjgorjgofjgZgNCivjgZ/jgYvjga/jgZcs44Gy44Go44GXDQor44Gf44GM44KPLOOBn+OBkeOBlw0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgZ/jgaHjgYvjgo8s44G144G/44GKDQor44Gf44GQ44GhLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OBleOBjSzjgajjgZfjgYoNCivjgZ/jgb7jgYrjgY0s44GU44GE44GhDQor44Gf44Gq44GLLOOBi+OBpOOChuOBjQ0KK+OBn+OBi+OBrizjgZPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44GL44Ga44GoDQor44Gk44GgLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBquOBvyzjgajjgZfjgYLjgY0NCivjgaTjgY3jgarjgo8s44Gy44GT44GV44G244KNDQor44Go44G/44KC44KKLOOBvuOBleOBruOBtg0KK+OBn+OBkeOBoCzjgb7jgZ/jgZXjgbbjgo0NCivjgajjgYzjgZcs44Gm44KL44KE44GZDQor44Gk44Ga44GNLOOBi+OBpOOBvuOBlQ0KK+OBqOOBs+OBnyzjgZ/jgaQNCivjgajjgoLjgarjgYws44KG44GG44GYDQor44Gk44Gk44GELOOBv+OBjeOBkw0KK+OBn+OBi+OBjizjga7jgorjgYoNCivjgZ/jgavjgZDjgaEs44GX44KH44Gy44GhDQor44Gf44GL44GuLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBiyzjgZ/jgZHjgZcNCivjgajjgb7jgaTjgoos44GL44Ga44KI44GXDQor44Gf44GL44GOLOOBguOBjeOCiQ0KK+OBn+OBi+OBl+OBvizjgZfjgZrjgYoNCivjgZ/jga/jgoks44Gb44GE44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOBl+OCkw0KK+OBn+OBi+OBoCzjgZfjgZLjgosNCivjgajjgorjgYQs44Gb44KT44GYDQor44Gf44GR44G5LOOBvuOBleOCiw0KK+OBpOOBi+OCguOBqCzjgojjgZfjgarjgYoNCivjgZ/jgoDjgoks44GZ44GZ44KADQor44Go44G/44Gq44GMLOOBqOOBiuOCiw0KK+OBn+OBi+OBhOOCjyzjgabjgaTjgbLjgZMNCivjgZ/jgbDjgZ8s44GX44GS44Go44GXDQor44Gf44GL44Gv44GXLOOBruOBtuOBguOBjQ0KK+OBpuOCk+OBveOCiuOCkyzjgaTjga3jgYvjgZoNCivjgabjgonjgYbjgaEs44GX44GS44GC44GNDQor44Gf44GL44Gv44GXLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OBmyzjgYvjgZrjgajjgZcNCivjgZ/jgZHjgoDjgoks44Go44GX44Gy44KNDQor44Gf44KA44GL44GELOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZfjgo0NCivjgZ/jgZHjgaQs44GE44Gk44GKDQor44Gf44Gu44GK44GLLOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYLjgY0NCivjgajjgbLjgoPjgb4s44GL44Ga44GTDQor44Gf44GR44GG44GhLOOCiOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgobjgY0NCivjgYbjgZfjgYos44Gu44G244KG44GNDQor44GG44GZ44GOLOOBguOBjeOBig0KK+OBhuOBoeOChOOBvizjga7jgbbjgbLjgo0NCivjgYbjgoHjgaAs44GV44GL44GIDQor44GG44GR44KC44KKLOOBleOBqOOBlw0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgYbjgYjjgaAs44GP44Gr44GKDQor44GG44Gh44GgLOOBneOBsuOBoQ0KK+OBhuOBpOOBjSzjgZXjgaDjgobjgY0NCivjgYbjgYjjgaAs44GN44KI44GXDQor44GG44Gh44GgLOOBoeOBi+OCiQ0KK+OBhuOBiOOBr+OCiSzjgoLjgajjgYQNCivjgYbjgYjjgoDjgoks44G144G/44GKDQor44GG44Gh44GgLOOChuOBhuOBmA0KK+OBhuOBoeOCgOOCiSzjgYvjgaTjgZgNCivjgYbjgaHjgaAs44GZ44GZ44KADQor44GG44Gh44GgLOOBn+OBoOOBlw0KK+OBhuOBiOOBjSzjgY3jgojjga7jgbYNCivjgYbjgYvjgZgs44GC44Gk44GXDQor44GG44Gh44GgLOOBvuOBleOBig0KK+OBhuOBiOOCgOOCiSzjgobjgZrjgosNCivjgYbjgZfjgYos44GL44Ga44Gy44KNDQor44GG44KB44KA44KJLOOCiOOBhOOBoQ0KK+OBhuOCgeOBl+OBvizjgYvjgZrjgZnjgZENCivjgYbjgZPjgpMs44G+44GV44GqDQor44GG44Gh44GE44GRLOOBv+OBoeOChA0KK+OBhuOCi+OBl+OBrizjgbLjgZXjgYoNCivjgYbjgaHjgarjgZcs44GR44GE44GYDQor44GG44GQ44GVLOOBpuOBpOOBig0KK+OBhuOBrizjgb/jgY3jgbLjgZMNCivjgYbjgYjjgY0s44Gy44Gn44GNDQor44GG44GI44KC44GoLOOBl+OChQ0KK+OBhuOBiOOCgOOCiSzjga7jgbbjgoQNCivjgYbjgYjjga/jgoks44GV44Gg44KG44GNDQor44GG44GI44GgLOOBkeOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZnjgZENCivjgo/jgZ/jgarjgbks44GR44GE44GE44GhDQor44KP44Gf44Gq44G5LOOBguOBjeOBkw0KK+OCj+OBi+OCgOOCiSzjgb7jgZXjgabjgosNCivjgo/jgZ/jgarjgbks44G+44GV44GC44GNDQor44KP44Gf44Gq44G5LOOBsuOBp+OBig0KK+OCj+OBn+OBquOBuSzjgajjgY/jgZgNCivjgo/jgZ/jgarjgbks44Go44GX44GKDQor44KP44Gf44Gq44G5LOOCiuOBjeOBpOOBkA0KK+OCj+OBn+OBquOBuSzjgYvjgYrjgosNCivjgo/jgZ/jgarjgbks44GY44KF44Gr44GhDQor44KP44Gf44Gq44G5LOOBn+OBi+OBguOBjQ0KK+OCj+OBjeOBnyzjgbjjgYTjgZ8NCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBqOOBl+OBsuOBpw0KK+OCj+OBn+OBquOBuSzjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44GR44KTDQor44KP44Gf44Gq44G5LOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgaAs44GX44KT44G644GEDQor44KP44Gf44Gq44G5LOOBsuOBleOChuOBjQ0KK+OCj+OBoCzjgYvjgaTjgb8NCivjgo/jgaAs44GN44KT44KEDQor44KP44Gf44Gq44G5LOOChOOBmeOCjQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgZgNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44GL44Gw44KE44GXLOOBsuOCjeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgarjgooNCivjgYrjgZ8s44Gy44Gn44GKDQor44G144GY44KP44KJLOOBi+OBpOOBsuOBkw0KK+OBk+OBhOOBkSzjgoTjgZnjgYLjgY0NCivjgYvjgZ/jgYrjgYss44Gf44Gg44GXDQor44Gy44KN44GX44GSLOOBk+OCgeOBhA0KK+OBl+OCk+OBluOCjyzjgajjgY3jgYoNCivjgb/jgZrjgYvjgb8s44GT44KT44GUDQor44Gq44GL44GY44G+LOOBguOBjeOCiQ0KK+OBteOBj+OBl+OBvizjgYrjgZXjgoANCivjgarjgYss44GR44KT44GYDQor44Gy44KJ44KE44G+LOOBmeOBv+OBn+OBoA0KK+OBq+OCj+OChOOBvizjgoTjgZnjgZcNCivjgZfjgb/jgZos44Gf44Gk44Gy44GTDQor44G144KL44GV44KPLOOBn+OBkeOBv+OBpA0KK+OBleOBj+OCieOBhCzjgbvjgb7jgowNCivjgZ/jgZHjgarjgYss44G+44GV44GC44GNDQor44GZ44GO44GG44KJLOOBguOBjeOCiQ0KK+OBi+OBqOOBhizjgZfjgZLjgYLjgY0NCivjgbvjgZfjgYvjgo8s44G/44Gt44GKDQor44GK44GM44KPLOOBsuOBleOBig0KK+OBi+OBl+OCj+OBjizjgb7jgZPjgagNCivjgZXjgYvjgYQs44GZ44G/44GC44GNDQor44KC44KKLOOBv+OBoeOBig0KK+OBu+OCk+OBvCzjgabjgaTjgoQNCivjgYTjgYTjgZjjgb4s44GN44KI44GXDQor44GT44GY44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgb/jgaQNCivjga/jgZ8s44GR44GE44GE44GhDQor44GK44GM44KPLOOBl+OBkuOBjQ0KK+OBpOOBoeOChCzjgbLjgo3jgZcNCivjgZPjgoTjgb4s44G+44GV44GTDQor44G144KL44G/LOOBi+OBpOOBmA0KK+OBj+OCgSzjgZ3jgZjjgo0NCivjgY/jgonjgZ8s44Gk44KI44GXDQor44GG44GX44GY44G+LOOBv+OBmuOBuw0KK+OBiOOBsOOBqCzjgYLjgaTjga7jgbYNCivjgZXjgajjgYYs44GL44KI44GTDQor44KA44GX44KDLOOBkeOCk+OBmA0KK+OChuOBguOBlSzjgb7jgZXjgYoNCivjgY3jgY/jgaEs44GE44GV44GKDQor44G+44Gk44Gw44KE44GXLOOBkw0KK+OBvuOBpOOBhCzjgbLjgo3jgZMNCivjgZ/jgZHjgoDjgoks44Gv44KL44GKDQor44Gm44KJ44GX44G+LOOBruOBtuOChuOBjQ0KK+OBj+OCiSzjgojjgZfjgYLjgY0NCivjgb7jgaTjgYQs44Gf44GL44GKDQor44GG44GI44GgLOOBruOBvOOCiw0KK+OBr+OChOOBlyzjgZfjgofjgZnjgZENCivjgYvjgo/jgaos44GC44GN44Gu44KKDQor44Gv44KE44GXLOOBi+OBpOOChA0KK+OBp+OCguOBqCzjgYTjgZXjgYoNCivjgZfjgbbjgY0s44Gm44Gk44GKDQor44Gv44G+LOOBpOOBreOBig0KK+OBiOOCk+OBqSzjgZvjgaTjgYoNCivjgb/jgoTjgoLjgags44G+44GV44GL44GaDQor44G+44Gk44GgLOOBi+OBpOOBruOCig0KK+OChOOBvuOCguOBqCzjga7jgbbjgobjgY0NCivjgoDjgonjgYvjgb8s44Gq44GK44Gy44GTDQor44GK44GL44GgLOOBvuOCguOCiw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgY0NCivjgYTjgo/jgZXjgY0s44Gm44KL44KI44GXDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OBiuOCguOCiizjgbLjgo3jgZcNCivjgb/jgZrjgZ/jgass44KI44GZ44GRDQor44GZ44GO44GG44KJLOOBsuOBp+OBj+OBqw0KK+OBruOBquOBiyzjgojjgZfjgYoNCivjgo/jgZ/jgarjgbks44GE44GV44GKDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBiuOBi+OCj+OCiSzjgaDjgYTjgZjjgo0NCivjgYvjganjgYTjgZEs44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBquOBiyzjgZ/jgZHjgZcNCivjgYvjgajjgYYs44Gf44Gk44GKDQor44GL44KP44GE44GXLOOBk+OBluOBtuOCjQ0KK+OBquOBjOOBleOCjyzjgZ/jgYvjgbLjgZUNCivjgZnjgoTjgb4s44Gy44KN44GXDQor44GP44G+44GX44KNLOOBqOOCguOBkw0KK+OBn+OBi+OBsOOChOOBlyzjgZfjgZLjgYoNCivjgZPjgpPjgaks44Gg44GE44GN44GhDQor44GE44Gq44GwLOOBi+OBmuOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgogNCivjgoTjgb7jgZDjgaEs44GZ44G/44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBruOCig0KK+OBguOBjeOChOOBvizjgbLjgZXjgYgNCivjgZ/jgYvjgaAs44GL44Ga44GKDQor44GV44KP44GELOOBv+OBpOOBn+OBiw0KK+OBquOBi+OBnyzjgYTjgZXjgoANCivjgYTjgZ/jgbAs44Gf44GR44GKDQor44GP44Gr44GO44GfLOOBkuOCk+OBn+OCjeOBhg0KK+OChOOBvuOBoCzjgZ/jgZHjgZ/jgaANCivjgoTjgb7jgaAs44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBn+OBi+OBig0KK+OBhuOCgeOCgOOCiSzjgZHjgpPjgZ4NCivjgZPjgbDjgoTjgZcs44KG44GG44GTDQor44GL44Gt44G/44GkLOOBpOOBqOOCgA0KK+OBquOBi+OBjOOCjyzjgY/jgpPjgo0NCivjgY3jgaks44Gy44KN44GXDQor44GL44Gt44GNLOOBsuOBp+OBig0KK+OBk+OCgOOCiSzjgZHjgpPjgZ4NCivjgbXjgZjjgoLjgoos44GV44Go44KLDQor44KE44G+44GX44GfLOOBqOOBl+OBsuOCjQ0KK+OBj+OCiuOChOOBvizjgb/jgYvjgZMNCivjgajjgZbjgo8s44KG44GG44GYDQor44GE44GX44GELOOChuOBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgokNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44GE44GX44GW44GNLOOBjeOCiOOChuOBjQ0KK+OBr+OCieOBoCzjgobjgbLjgaENCivjgajjgY/jgbLjgZUs44KI44Gy44GhDQor44GE44GX44KA44KJLOOCiOOBhuOBkw0KK+OBhuOBiOOBoCzjgobjgYbjgZMNCivjgYrjgbXjgaEs44KI44GE44Gh44KN44GGDQor44KE44Gk44KL44GOLOOBruOCiuOBsuOBkw0KK+OBv+OBquOBqCzjga7jgbbjgYLjgY0NCivjgojjgZfjgaAs44Gf44Gg44GKDQor44G/44Gq44G/LOOCiOOBluOBtg0KK+OBiuOBiyzjgb7jgZXjgZcNCivjgYTjgaHjgYvjgo8s44Gf44Gg44GKDQor44GK44GP44G8LOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBoCzjgZHjgpPjgYTjgaENCivjgajjgb/jgZ8s44Gm44KL44Gf44GRDQor44Gy44KJ44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgYrjgoDjgoks44Gh44GL44Go44GXDQor44GK44GV44GY44G+LOOCiOOBsuOBoQ0KK+OBteOBquOBk+OBlyzjgYvjgZrjgb8NCivjgZPjgaAs44Gm44Gk44GKDQor44GC44GV44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBi+OBmeOBjCzjgZfjgZLjgoTjgZkNCivjgoLjgoLjga/jgoks44Gf44Gg44Gy44KNDQor44GG44GI44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBsOOBnyzjgY/jgavjgbLjgo0NCivjgYrjga7jgaAs44G/44Gk44GKDQor44G/44KE44GX44GfLOOBvuOChuOBvw0KK+OBu+OBneOChCzjgb7jgZXjgbLjgo0NCivjgoTjgZfjgo0s44KE44GZ44GKDQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OBjeOCgOOCiSzjgYvjgZrjgYoNCivjgYvjgb/jgZjjgocs44Gy44Gn44GNDQor44GV44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBl+OBvizjgYTjgZXjgYoNCivjgYvjgZ/jgoTjgb4s44Gy44KN44Gy44GVDQor44Gy44KJ44GuLOOBsuOBp+OBig0KK+OBquOBi+OCieOBhCzjgoDjgaTjgYoNCivjgojjgZPjgoTjgb4s44Go44GX44KEDQor44GK44GM44GtLOOBm+OBpOOBig0KK+OBjeOCgOOCiSzjgbLjgafjgYLjgY0NCivjga7jgZbjgZUs44Gf44Gk44GKDQor44KC44KK44GuLOOBguOBkeOBvw0KK+OBiOOBoeOBlOOChCzjgbbjgavjgaENCivjgbXjgY/jgZfjgb4s44Go44GX44Gy44GnDQor44GE44Go44GGLOOBi+OBmuOBkw0KK+OBhOOBkeOBoCzjgobjgY3jgYoNCivjgajjgY/jgarjgYws44GL44KT44GYDQor44GN44KC44GoLOOChOOBmeOBig0KK+OBiuOBl+OBoCzjgobjgY3jgYoNCivjga/jgZfjgoLjgags44GC44Gk44GXDQor44Gu44GQ44GhLOOBqOOBjeOBoQ0KK+OBv+OChOOBuSzjgbLjgZXjgYgNCivjgY/jgo/jga/jgoks44KI44GX44GK44GNDQor44GN44KA44KJLOOBguOBjeOCiQ0KK+OBiuOBoCzjgojjgYbjgZMNCivjgYLjgYTjgZbjgo8s44GU44G444GEDQor44GG44GI44GuLOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOBsOOCiSzjgbLjgZXjgYoNCivjgZ/jgb7jgYQs44Go44KC44Gy44KNDQor44GX44KJ44GELOOBvuOBk+OBqA0KK+OBiuOBr+OBlyzjgojjgZfjga7jgooNCivjgZ/jgb/jgoQs44GL44Ga44GX44GSDQor44Gv44KJ44GgLOOBv+OBoeOBsuOBkw0KK+OBhuOBmeOBhCzjgbLjgafjgYoNCivjgZPjgoos44G+44GV44KG44GNDQor44Gu44GgLOOChuOBjeOBkw0KK+OBquOBv+OBjSzjgorjgYgNCivjgarjgYvjgYos44GC44GE44GTDQor44GL44Gp44KELOOBleOBqOOBkw0KK+OBiuOBrizjga7jgorjgYvjgZoNCivjgZfjgbbjgYvjgo8s44Go44GX44Gu44KKDQor44GE44KP44GV44KPLOOBi+OBmuOBqA0KK+OBn+OBtuOBmyzjgoTjgZnjgYgNCivjgYrjgZXjgo8s44Gy44KN44G/DQor44Gq44GL44Gg44GELOOBi+OBmuOChuOBjQ0KK+OBiOOBjOOBl+OCiSzjgZ/jgb/jgYoNCivjgZXjgZXjgY0s44GL44Gk44GKDQor44G144GP44GhLOOBruOCiuOChuOBjQ0KK+OCiOOBl+OChOOBmSzjgYvjgZrjgb/jgaENCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44GG44GI44GuLOOBk+OBhuOBmA0KK+OBiOOBqCzjgbXjgb/jgoQNCivjgojjgZfjgaAs44KI44GX44GTDQor44Gf44GR44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaHjgo0NCivjgb7jgZ/jgY0s44GX44GS44Gy44GTDQor44KC44KK44KC44GoLOOBvuOBleOBqA0KK+OBhOOBr+OCiSzjgb7jgZXjgb/jgaQNCivjgaTjgYvjga/jgoks44GC44GN44KJDQor44GL44GuLOOBqOOBl+OBsuOBpw0KK+OCgOOBreOChuOBjSzjgZfjgpPjgYTjgaENCivjgYrjgaTjgbws44G+44Gq44G2DQor44KE44G+44KC44KKLOOBhOOBoeOCjeOBhg0KK+OBguOCk+OBqeOBhizjgZ/jgYvjgojjgZcNCivjgoTjgb7jgZbjgY0s44GR44KT44GYDQor44Gf44GN44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBn+OBkeOCgOOCiSzjgYvjgaTjgYoNCivjgoDjgonjgYvjgb8s44GL44Ga44Gy44GTDQor44Gf44GL44GfLOOBlA0KK+OBsuOCjeOBmyzjgZPjgZXjgagNCivjgoTjgY/jgo8s44KM44GE44GTDQor44GX44KT44GQ44KK44KHLOOBvuOBleOBruOCig0KK+OBn+OBoSzjgb7jgZXjgYoNCivjgZXjgajjgYYs44KG44Gy44GhDQor44KE44G+44KC44GoLOOBsuOBleOBlw0KK+OBmeOBqeOBhizjgZfjgpPjgZQNCivjgbvjgpPjgb4s44GE44Gh44KN44GGDQor44GK44Gk44G8LOOBkeOCk+OBmA0KK+OBi+OBluOBvizjgabjgovjgYoNCivjgYLjgYzjgo8s44Go44KC44GTDQor44GE44Gu44GG44GILOOBsuOBp+OBvuOBlQ0KK+OBguOCieOBhCzjgojjgZfjgZ/jgYsNCivjgYbjgYjjgoDjgoks44GL44Gk44GKDQor44Gr44GX44GP44KJLOOBm+OBhOOBjQ0KK+OBv+OChOOBluOBjSzjgojjgZfjgYLjgY0NCivjgbXjgY/jgaAs44KI44Gy44GhDQor44Gk44KK44KELOOBquOBiuOBi+OBmg0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgYrjgYzjgo8s44Gu44KK44GKDQor44GZ44Ga44GNLOOBpOOBn+OBsuOCjQ0KK+OBr+OBvuOBkOOBoSzjgZ/jgYvjgZcNCivjgYvjgoHjgaAs44KI44GG44GTDQor44KC44KC44Gv44KJLOOBvuOBleOBlw0KK+OBsuOCieOBiizjgYvjgZrjgYoNCivjgZ/jgYvjgaAs44G+44GV44Gy44KNDQor44GE44GR44GgLOOBl+OCh+OBkw0KK+OBmeOBmuOBjSzjgbLjgo3jgY0NCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44Gf44Gq44GLLOOBv+OBpOOBsuOCjQ0KK+OBm+OCiSzjgb/jgbvjgZMNCivjgZ/jgZHjgoDjgoks44KK44KF44Gy44GhDQor44G744KK44GN44KKLOOBvuOBleOBoQ0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYLjgonjgY0s44G+44GV44Gy44KNDQor44GK44Gk44GLLOOCiOOBl+OBi+OBmg0KK+OBj+OBq+OBvuOBpCzjgoLjgorjgb7jgZUNCivjgYbjgZfjgbAs44Gf44Gg44GKDQor44Gv44KE44GXLOOBsuOCjeOBi+OBmg0KK+OBhOOBl+OBhCzjgZPjgYbjgZgNCivjgYvjgaAs44G/44Gu44KLDQor44KE44GOLOOBn+OBj+OBmA0KK+OBsuOCieOBhCzjgYvjgaTjgoQNCivjgY/jgo3jgZss44Gy44Gn44GKDQor44GK44GL44G5LOOBn+OBi+OBkw0KK+OBi+OBreOBkyzjgarjgYrjgobjgY0NCivjgZPjgZjjgb4s44KI44GX44Gy44KNDQor44Gr44GX44KI44KKLOOBguOBjeOCiQ0KK+OBquOBi+OBmOOChyzjgYvjgZrjgojjgZcNCivjga/jgZfjgY/jgoks44GY44KNDQor44Gf44GL44Gv44GXLOOBn+OBhOOBoQ0KK+OBhuOBiOOBj+OBlSzjgajjgZfjgYLjgY0NCivjgZfjgbDjgZ8s44G+44KC44KLDQor44Gf44GL44Gv44GXLOOBv+OBruOCiw0KK+OBhOOBquOBsCzjgZvjgY3jga0NCivjgZjjgoXjgavjgaHjgo0s44GL44Ga44GE44Gh44KN44GGDQor44Gv44KE44GL44KPLOOBm+OBhOOBluOBtuOCjQ0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgY3jgoLjgags44G+44GV44GoDQor44GE44GgLOOBv+OBjeOBig0KK+OBu+OBmOOChyzjgYLjgY3jgokNCivjgbvjgorjgYQs44Gf44Gg44GKDQor44GL44GE44GbLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GE44GV44KADQor44GL44Gt44GV44GLLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgZXjgajjgosNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GZ44Gp44GGLOOBmOOCjQ0KK+OBiuOBsCzjgaTjgajjgoANCivjgoDjgonjgZ8s44Gf44Gk44GKDQor44GC44GN44KE44G+LOOBruOBtuOBguOBjQ0KK+OBguOBmeOBvizjgbLjgo3jgZcNCivjgYvjgo/jgZjjgoos44Gm44KL44GKDQor44G+44Gk44KC44GoLOOBi+OBmuOBqA0KK+OBl+OCjeOChOOBvizjgYLjgY3jga7jgooNCivjgbXjgZjjgYQs44Gy44Gn44GKDQor44GU44GoLOOBn+OBkeOBlw0KK+OBn+OBq+OBguOBhCzjgb7jgZXjgaTjgZANCivjgYvjgaTjgbzjgoos44Gy44KN44GXDQor44Gy44GC44GmLOOBi+OBpOOBsuOBkw0KK+OBpuOCieOBhCzjgaTjga3jgYoNCivjga/jgpPjgaAs44GC44Gk44GXDQor44G/44GX44G+LOOChOOBmeOBguOBjQ0KK+OBn+OBi+OBl+OBvizjgbLjgajjgZcNCivjgb7jgaTjgaAs44KI44GX44GKDQor44GT44KT44GpLOOChuOBhuOBmA0KK+OBhOOBn+OChCzjgb7jgZXjgYvjgZoNCivjgb7jgaTjgoLjgags44G+44GV44Gy44GTDQor44GE44GE44KE44G+LOOBv+OBu+OBkw0KK+OBmOOBo+OBqCzjgajjgZfjgZMNCivjgY/jgbzjgZ8s44G+44GV44GXDQor44GE44GX44GQ44KNLOOBn+OBkeOBig0KK+OCguOCiizjgbLjgafjgYoNCivjgYvjgpPjga4s44GN44KH44GYDQor44GE44Go44GGLOOBkw0KK+OCiOOBl+OBoCzjgYLjgaTjgZMNCivjgb7jgovjgoTjgb4s44Gg44GE44GZ44GRDQor44GV44Go44GGLOOChOOBmeOBvuOBlQ0KK+OBk+OBoCzjgb7jgY0NCivjgo/jgZ/jgass44GP44G/44GTDQor44GV44GbLOOBguOBjeOBkw0KK+OBneOBqOOChOOBvizjgb7jgZXjgZMNCivjgbvjgpPjgaAs44Gy44KN44G/DQor44GE44Gs44GELOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZPjgavjgZcs44Gu44KK44GTDQor44GZ44GO44GELOOBkeOCk+OBmA0KK+OBguOCieOBjSzjgarjgYrjgZ/jgZENCivjgbLjgonjgYrjgYss44Gy44Gn44GKDQor44GK44Gk44GLLOOBi+OBpOOBsuOCjQ0KK+OBi+OBqOOBhizjgZXjgaHjgZMNCivjgZfjgYrjga4s44GI44GE44GYDQor44GL44Gf44KE44G+LOOBhuOBpOOBvw0KK+OBteOBoeOBi+OBvyzjgZXjgaHjgZMNCivjgbLjgonjgY0s44Gb44GE44GYDQor44GE44KP44GV44GNLOOCiuOCheOBmA0KK+OBiOOBruOBjSzjgY/jgavjgYoNCivjgYTjgo/jgZ8s44Gq44G7DQor44GX44KF44GoLOOCiOOBmA0KK+OBqOOBsuOCg+OBvizjgb7jgoLjgosNCivjgZPjgYTjgacs44GE44GP44GKDQor44Gf44Gq44G5LOOBi+OBpOOBruOCig0KK+OChOOBvuOCguOBqCzjgabjgovjgY/jgasNCivjgYvjgYTjga/jgaQs44KG44Gf44GLDQor44GC44KJ44GELOOCiOOBl+OBruOCig0KK+OBhuOBiOOBoCzjgojjgZfjga7jgbYNCivjgY/jgonjgYrjgYss44KG44GN44Gy44GVDQor44GT44Gw44KE44GXLOOBruOBtuOBig0KK+OBn+OCgeOBoeOBiyzjgoTjgZnjgZcNCivjgojjgZfjgaAs44KA44Gk44GKDQor44G+44Gk44KC44GoLOOBl+OBkuOBig0KK+OBleOBi+OBl+OBnyzjgbLjgo3jgZcNCivjgo/jgaAs44Gy44KN44Gu44KKDQor44GE44Go44GGLOOBn+OBkeOBsuOBkw0KK+OCiOOBl+OBoCzjgZ/jgoLjgaQNCivjgojjga3jgaAs44GN44G/44GKDQor44GK44KA44KJLOOBmOOCheOCkw0KK+OBn+OBi+OBjizjgZvjgYTjgYTjgaENCivjgYbjgaHjgoTjgb4s44Gf44Gg44GXDQor44GL44GX44KP44GOLOOBvuOBpOOBruOCig0KK+OBq+OBl+OBoCzjgZjjgoXjgpPjgZbjgbbjgo0NCivjgYrjgZfjgYss44KG44GG44GY44KNDQor44GI44GY44G+LOOBl+OCheOBq+OBoQ0KK+OBiuOBiyzjgZvjgYTjgZcNCivjgojjgZfjgaAs44GL44Gk44GYDQor44GE44G+44GELOOChuOBng0KK+OChOOBvuOBv+OBoSzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYLjgYTjgoLjga4s44GI44Gk44Gy44KNDQor44Gy44GuLOOBn+OBpuOBig0KK+OBn+OBi+OBr+OBlyzjgZfjgZrjgYoNCivjgojjgZPjgZ8s44GX44GS44KLDQor44GE44Gu44GGLOOBi+OBreOBig0KK+OCiOOBl+OBoCzjgajjgZfjgYLjgY0NCivjgojjgZfjgYrjgYss44KE44GZ44GKDQor44GG44KB44GW44KPLOOBi+OBpOOBmA0KK+OBpuOCieOBiizjgajjgZfjgbLjgacNCivjgYvjgo/jga/jgoks44G+44GV44G/DQor44Gv44Gb44GM44KPLOOBl+OBoeOCjQ0KK+OBjeOBlyzjgYLjgY3jgZMNCivjga/jgZfjgZrjgoEs44GR44GE44GTDQor44KI44GX44GgLOOBm+OBpOOBig0KK+OBv+OBreOBteOBmCzjgZ/jgZHjgYoNCivjgbvjgpPjgaAs44Go44KC44Gu44KKDQor44Gf44GL44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OBiuOBr+OBlyzjgoTjgZnjgYgNCivjgYvjgYzjgo8s44KE44GZ44GX44KNDQor44Gr44GX44GgLOOBqOOCguOBkw0KK+OBhOOBn+OBjOOBjSzjgYvjgaTjgYoNCivjgYLjgY3jgoTjgb4s44KC44Go44GTDQor44GV44GE44Go44GGLOOBv+OBleOBkw0KK+OBiuOBoeOCiizjgYjjgYTjgZMNCivjga7jgZbjgo8s44Gf44GI44GTDQor44GV44GE44Go44GGLOOBsuOCjeOBkw0KK+OBjeOCgOOCiSzjgYLjgY3jgZMNCivjgYLjgbks44GG44GN44GTDQor44GP44GZ44Gu44GNLOOBsuOCjeOBsuOBlQ0KK+OBr+OChOOBlyzjga/jgovjgYoNCivjgYrjgbIs44G/44Gu44KLDQor44GL44G/44GK44GLLOOBpuOCi+OBkw0KK+OBguOBjeOChOOBvizjgb/jgaTjgbLjgo0NCivjgYLjgorjgZ8s44KB44GQ44G/DQor44GN44Gf44KA44KJLOOBquOBiuOBkw0KK+OBvuOBmeOCgOOCiSzjgobjgb8NCivjgYrjgZXjgo8s44G/44KG44GNDQor44GL44KP44GELOOCiOOBhuOBkw0KK+OBhOOBn+OBjOOBjSzjgaHjgYsNCivjgoLjgoos44G+44KKDQor44GC44GK44GNLOOBguOBjeOBkw0KK+OBteOBmOOBl+OCjSzjga7jgorjgbLjgo0NCivjgZfjgb/jgZos44GT44Gy44KHDQor44KA44KJ44GL44G/LOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZPjgYbjgZgNCivjgoLjgY4s44GR44KT44GYDQor44G/44GG44KJLOOBoeOBiA0KK+OBn+OBi+OBvuOBpCzjgarjgYrjgagNCivjgZ/jgYvjgaAs44Go44KC44GTDQor44GT44KT44GpLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgarjgYrjgb8NCivjga3jgozjgYQs44Gv44KL44KI44GXDQor44GG44GX44GPLOOBhOOBleOBig0KK+OBjeOBn+OBluOCjyzjgYvjgaTjgb8NCivjgZXjgaPjgZUs44G/44Gh44KG44GNDQor44GE44Gj44GX44GNLOOBn+OBi+OBruOCig0KK+OBi+OCj+OBrizjgZHjgpMNCivjgYTjgZfjga/jgoks44G/44Gu44KLDQor44GL44KB44GK44GLLOOBsuOBp+OBig0KK+OBjeOBhuOBoSzjgZ/jgYvjgYoNCivjgarjgYzjgYQs44G/44GN44GKDQor44Gu44GQ44GhLOOBk+OBhuOBmA0KK+OBiuOBl+OBnyzjgoLjgajjgZfjgZINCivjgojjgZfjgoDjgoks44G/44KI44GXDQor44GC44GL44G744KKLOOBpuOBpOOBig0KK+OBvuOCi+OBquOBjCzjgYLjgY3jgYoNCivjgojjgZfjga4s44GL44Ga44GKDQor44KE44GuLOOBkeOCk+OBmA0KK+OChOOBvuOBkOOBoSzjgZfjgofjgbLjgaENCivjgoTjgb7jgZDjgaEs44G+44GV44GTDQor44Gb44KT44Gp44GgLOOBsuOBqOOBlw0KK+OChOOBmeOBoCzjgbLjgo3jgZcNCivjgojjgZPjgYgs44GK44GV44KADQor44KE44G+44GX44GfLOOBkw0KK+OCiOOBl+OBoCzjga7jgbbjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44KI44GX44Gy44KNDQor44KE44GZ44GELOOBruOCiuOBpOOBkA0KK+OChOOBvuOBiuOBiyzjgbXjgb/jgZ/jgYsNCivjgojjgZPjgZss44Gf44Gg44GKDQor44KE44G+44GQ44GhLOOBruOCiuOBi+OBmg0KK+OChOOBr+OBjizjgbLjgajjgZcNCivjgoTjgb7jgYrjgYss44G/44Gh44GKDQor44KI44Gk44KELOOBn+OBi+OBig0KK+OChOOBvuOCguOBqCzjgajjgZfjgb/jgaENCivjgojjgZfjgYvjgo8s44G/44Gk44Gu44G2DQor44KE44G+44GX44GfLOOCiOOBl+OBpOOBkA0KK+OChOOBvuOBiuOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgojjga3jgb/jgaQs44KI44GX44Gy44KNDQor44KI44GX44GgLOOBvuOBleOBsuOBpw0KK+OChOOBvuOBluOBjSzjgYvjgaTjgajjgZcNCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44KE44G+44GQ44GhLOOBguOBjeOCiQ0KK+OChOOBvuOBhuOBoSzjgZjjgoXjgavjgaENCivjgojjgZfjgZbjgo8s44Gb44GE44GW44G244KNDQor44KI44GX44GK44GLLOOBqOOBv+OBng0KK+OChOOBvuOCguOBqCzjgZnjgZnjgoANCivjgoTjgb7jgYrjgYss44GL44Ga44GKDQor44KE44G+44GW44GNLOOBjeOCh+OBmeOBkQ0KK+OCiOOBl+OCgOOCiSzjgajjgoLjgZfjgZINCivjgoTjgZnjgaAs44GR44KT44GYDQor44KE44G+44GX44GfLOOChOOBmeOBr+OCiw0KK+OChOOBoCzjgbLjgo3jgb7jgosNCivjgojjgZfjgaAs44Go44GK44KLDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBkw0KK+OChOOBvuOBoCzjgajjgZfjgo0NCivjgojjga3jgaAs44GX44KH44GYDQor44KI44GX44GgLOOBsuOCjeOBkw0KK+OChOOBvuOBoCzjgZvjgYTjgZgNCivjgoTjgb7jgZDjgaEs44GR44KT44GE44GhDQor44KE44G+44GQ44GhLOOBpuOBpOOBig0KK+OChOOBvuOCguOBqCzjgbLjgYvjgosNCivjgojjgZfjgaAs44G/44Gu44KLDQor44KE44G+44GX44GfLOOBleOBi+OBiA0KK+OChOOCk+OBuSzjgYvjgaTjgb8NCivjgoTjgb7jgZDjgaEs44GL44Gk44Gy44GoDQor44KE44G+44KC44GoLOOBruOBtuOBig0KK+OChOOBvuOBrSzjgb/jgaHjgajjgZcNCivjgoTjgb7jgZXjgY0s44GC44GN44KJDQor44KE44GZ44GK44GLLOOBvuOBleOBsuOBkw0KK+OChOOBvuOBoCzjgZPjgYbjgZgNCivjgojjgZfjgZbjgo8s44Gb44GE44GE44GhDQor44KE44GY44G+LOOBl+OCk+OChA0KK+OChOOBquOBhCzjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZbjgY0s44Gk44Go44KADQor44KE44G+44GG44GhLOOBlOOCjQ0KK+OChOOBvuOBluOBjSzjgYvjgYrjgosNCivjgojjgZfjga4s44G+44GV44Gy44KNDQor44KE44G+44GL44GSLOOBj+OBmeOBig0KK+OChOOBjizjgZ/jgYvjgbXjgb8NCivjgoTjgZnjgaAs44G144G/44Gy44KNDQor44KE44G+44KELOOBn+OBi+OBkw0KK+OBn+OBi+OBkOOBoSzjgZnjgZnjgoANCivjgojjgZfjgaAs44GX44KH44GeDQor44KI44GX44GuLOOBguOBpOOBsuOCjQ0KK+OChOOBvuOCgOOCiSzjga7jgorjgojjgZcNCivjgoTjgY4s44GY44KF44KT44GYDQor44KE44G+44GgLOOBk+OBhuOBmOOCjQ0KK+OChuOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KG44GN44GKDQor44KE44G+44Gf44GrLOOBiOOBhOOBng0KK+OChOOBvuOCgOOCjSzjgZjjgo0NCivjgojjgZfjgaAs44GC44GN44KJDQor44KI44GT44GL44KPLOOBpuOBpOOBig0KK+OChOOBvuOBluOBjSzjgYvjgZrjgYoNCivjgoTjgb7jgoLjgags44G144GP44G/44GhDQor44KI44GX44GuLOOBmeOBmeOCgA0KK+OChOOBvuOBrSzjgZ/jgaTjgobjgY0NCivjgoTjgZnjgarjgYws44Gf44Gg44Gu44G2DQor44KE44Gq44GLLOOBmOOBpOOBruOCig0KK+OChOOBvuOBrSzjgb7jgZXjgYoNCivjgoTjgb7jgYbjgaEs44Gu44G244GKDQor44KE44G+44GQ44GhLOOBruOBvOOCiw0KK+OChOOBvuOCj+OBjSzjgbLjgo3jgZcNCivjgoTjgb7jgYvjgo8s44GT44GG44GYDQor44KE44G+44GgLOOBmOOCheOBq+OBoQ0KK+OCiOOBk+OChOOBvizjgYvjgaTjga7jgooNCivjgoTjgb7jgoLjgags44GT44GZ44GRDQor44KE44G+44GQ44GhLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgZjjgofjgZgNCivjgojjgZfjgaAs44Gy44KN44Gk44GQDQor44KE44G+44Gq44GLLOOCiOOBl+OBi+OBrQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgbLjgZMNCivjgojjgZfjgaAs44Go44KC44KI44GXDQor44KE44G+44GgLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOBiuOBiyzjgZ/jgZHjgYoNCivjgojjgZPjgoTjgb4s44GN44KI44GXDQor44KE44G+44GV44GNLOOCiOOBreOBn+OBiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgYvjgo8s44GR44GE44GE44GhDQor44KE44GG44GhLOOBpuOBpOOBig0KK+OCiOOBl+OBr+OCiSzjgojjgZfjgobjgY0NCivjgojjgZPjgb/jgZ4s44KG44GG44GYDQor44KE44G+44KC44GoLOOBl+OCh+OBn+OCjeOBhg0KK+OChOOBvuOCguOBqCzjgZjjgoXjgavjgaENCivjgoTjgb7jgoLjgags44GL44Ga44G/DQor44KI44GX44GgLOOBl+OCh+OBn+OCjeOBhg0KK+OCiOOBl+OBoCzjgoTjgZ3jgb8NCivjgoTjgZnjgYQs44Gu44G844KLDQor44KE44G+44GQ44GhLOOBn+OBi+OCiOOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYoNCivjgojjgZPjgZ8s44GL44Ga44G/DQor44KI44GX44GgLOOBn+OBoOOBr+OCiw0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgYoNCivjgoTjgZnjgYQs44GV44Go44KLDQor44KE44G+44GV44GNLOOCiOOBl+OBqOOCgg0KK+OCiOOBl+OBiuOBiyzjgb7jgZXjgbLjgZUNCivjgojjgZfjgaAs44Gu44KK44GKDQor44KE44G+44GgLOOBi+OBpOOBsuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgojjgZcNCivjgojjgZfjgaAs44Gf44Gg44KI44GXDQor44KE44G+44GW44GNLOOBi+OBpOOBmA0KK+OChOOBvuOBrSzjgZfjgZLjgosNCivjgobjgZ/jgass44GX44KF44GeDQor44KI44Gt44GW44KPLOOBpuOCi+OBig0KK+OCiOOBl+OBrizjgYjjgYTjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44G+44GV44Gy44KNDQor44KI44GX44KC44KKLOOBteOBv+OBsuOCjQ0KK+OCiOOBl+OCj+OCiSzjgb/jga7jgosNCivjgoTjgb7jgaAs44GX44GS44KLDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgYjjgYTjgYTjgaENCivjgoTjgb7jgoLjgags44KG44Gf44GLDQor44GT44GY44G+LOOBsuOBp+OBjQ0KK+OBiuOBrizjgYvjgZrjgoLjgagNCivjgb7jgYjjgYvjgo8s44GL44Ga44Gy44KNDQor44GT44GuLOOBruOBtuOBig0KK+OBvuOBjeOBmyzjgZfjgoXjgpPjgo3jgY8NCivjga7jgoDjgoks44GL44Gk44Gy44KNDQor44KE44GZ44Gv44KJLOOCiOOBmA0KK+OBquOBjOOBl+OBvizjgZvjgYTjgZ4NCivjgY3jgZ/jga/jgZcs44Gb44GE44GX44KNDQor44Gk44KLLOOBquOBiuOBmA0KK+OBpOOBj+OBoCzjgZnjgZnjgoANCivjgabjgonjgYbjgaEs44KI44GX44Gy44KNDQor44KE44G+44GgLOOBoOOBhOOBmeOBkQ0KK+OBm+OCk+OBsCzjgZ/jgZHjgYoNCivjgZXjgYjjgY0s44Gy44GV44Go44KIDQor44GK44GL44GgLOOBn+OBkeOBlw0KK+OBv+OChOOBhuOBoSzjgajjgZfjgY0NCivjgZPjgpPjgaks44Go44GX44GL44GaDQor44G144GN44GC44GSLOOCgOOBpOOBig0KK+OBhOOBl+OBi+OCjyzjgoLjgorjgbLjgZMNCivjgYTjgo/jgoLjgags44GP44Gr44GL44GkDQor44GP44G8LOOBl+OBkuOBig0KK+OBn+OBquOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgo/jgaAs44Gu44G244KG44GNDQor44GE44KP44GKLOOBjeOCiOOBlw0KK+OBj+OBvuOBjOOBhCzjgb7jgZXjgZ/jgYsNCivjgZnjgZrjgY0s44G+44GV44Gy44GTDQor44Gf44GL44KA44KJLOOBguOBpOOCiOOBlw0KK+OBq+OBl+OBhuOCiSzjgb7jgZXjgYoNCivjgb/jgaTjgZgs44GN44KI44G/44GhDQor44Gf44GN44GN44GfLOOBv+OBoeOBig0KK+OBiuOBhuOBoSzjgZ/jgZHjgZcNCivjgZPjgb4s44GV44Go44KLDQor44G+44GZ44GgLOOBmeOBmeOCgA0KK+OBi+OBqOOBhizjga7jgorjgYoNCivjgYTjgYTjgZrjgYss44GX44KH44Gy44GhDQor44G+44KL44KE44G+LOOBsuOBleOBig0KK+OBqOOBl+OBn+OBqyzjgajjgZfjgYoNCivjga/jgarjgbbjgaEs44KE44GZ44GKDQor44GE44G+44GELOOBoeOCiOOBn+OBkQ0KK+OBiuOBi+OBsuOCjSzjgb7jgZXjgYoNCivjgY3jgoDjgoks44GY44KF44Gr44Gh44KNDQor44Gf44GY44G+LOOBsuOCjeOBi+OBpA0KK+OBi+OCk+OBoCzjga7jgorjgYoNCivjganjgYQs44Gk44Gt44Gu44KKDQor44GC44KJ44GM44GNLOOBn+OBi+OBsuOCjQ0KK+OBjeOCheOBneOBmOOCkyzjgbLjgo3jgbXjgb8NCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44GG44Gs44G+LOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZcNCivjgojjgoLjgoos44GC44GN44KJDQor44GX44G+44GW44GNLOOBkeOCk+OBmA0KK+OBqOOBj+OChCzjgYLjgY3jgYoNCivjgoTjgb7jgaAs44GR44KT44GYDQor44G144GL44KELOOBqOOBl+OCjQ0KK+OBiOOBkOOBoSzjgYvjgZrjgbLjgZMNCivjgZXjga4s44Gu44G244GC44GNDQor44Go44GP44GuLOOBqOOBiuOCiw0KK+OBiuOBqOOCgizjgb7jgZXjgbLjgo0NCivjgZfjgonjgYrjgYzjgo8s44G+44GV44GeDQor44Gy44KJ44GuLOOBpOOBreOBig0KK+OBiuOBoCzjgajjgZfjgbLjgZMNCivjgZ/jgarjgYss44G+44GV44Gv44KLDQor44G144GY44GfLOOBpOOCieOChuOBjQ0KK+OBguOCieOBhCzjgYrjgZXjgoANCivjgbXjgZjjgZ8s44KE44GZ44Gu44G2DQor44Gq44GL44GM44KPLOOBkeOCk+OBmeOBkQ0KK+OBquOBi+OBq+OBlyzjgaTjga3jgogNCivjga/jgoks44Gy44Gn44Gq44KKDQor44Gh44GwLOOCiOOBl+OBn+OBiw0KK+OBhOOBl+OCj+OBnyzjgoLjgajjgbLjgZUNCivjgoTjgZDjgaEs44GP44Gr44Gy44GTDQor44Gm44GY44G+LOOBqOOBl+OBig0KK+OBn+OBpOOBnyzjgYLjgY3jgokNCivjgY/jgZXjgYss44GX44GS44GKDQor44G144KL44GfLOOBr+OCi+OBig0KK+OBlOOBqCzjgbLjgafjga7jgbYNCivjgYrjgaDjgY7jgoos44GC44GN44KJDQor44GZ44Ga44GNLOOBleOBoOOCgA0KK+OBj+OBvuOBjOOBhCzjgbLjgo3jgZcNCivjgoDjgonjgYvjgb8s44Gf44GE44GNDQor44G/44KA44KJLOOChuOBhuOBmA0KK+OCiOOBk+OBhCzjgorjgofjgZ4NCivjgYTjgarjgZIs44GC44GN44KJDQor44GC44KB44G/44KELOOBguOBjeOBsuOBpw0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjgazjgb7jgZ8s44Gy44KN44KG44GNDQor44GV44GL44KC44GoLOOBi+OBmuOBl+OBkg0KK+OBsuOCieOBvuOBpCzjgYLjgY3jgbLjgo0NCivjgarjgorjgZ8s44Go44GX44GTDQor44Gk44Gt44G/LOOBqOOBl+OBsuOBlQ0KK+OBn+OBi+OBl+OBvizjgZ/jgZHjgbLjgo0NCivjgb/jgZks44GL44Ga44GKDQor44GV44GN44KE44G+LOOBl+OBkuOCiw0KK+OBteOBmOOCj+OCiSzjgZ/jgZHjgZcNCivjgajjgb/jgZ8s44Gf44GR44Gv44KLDQor44Gk44Gq44KP44GNLOOBvuOBleOBruOBtg0KK+OBr+OBm+OBjOOCjyzjgZ/jgaDjgZcNCivjgbXjgY/jgZbjgo8s44Gg44GHDQor44GU44GI44GRLOOBn+OBkeOCiw0KK+OBquOBiyzjgb/jgZrjgbsNCivjgYjjgbDjgags44G+44GV44GKDQor44GT44Gw44KE44GXLOOBj+OBq+OBsuOBkw0KK+OBsuOCieOBpOOBiyzjgajjgoLjgobjgY0NCivjgZXjgajjgYYs44G/44Gk44GKDQor44GE44Gu44GG44GILOOBleOBoOOBig0KK+OBr+OBmeOBrOOBvizjgZjjgavjgaENCivjgbXjgovjga/jgZ8s44GU44G444GEDQor44GG44GI44GuLOOBleOBoOOBig0KK+OBn+OBkeOBquOBiyzjgYvjgYrjgosNCivjgY/jgavjgZ/jgZEs44GE44Gh44KN44GGDQor44Gy44KJ44GfLOOBteOBleOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgb8NCivjgbXjgY/jga/jgoks44KI44GX44Gy44GTDQor44G144Gq44GQ44GhLOOBn+OBoOOBlw0KK+OBguOBvuOBrizjgb7jgZXjgbLjgo0NCivjgYrjga4s44G/44Gt44GKDQor44GZ44KPLOOBn+OBkeOBlw0KK+OBruOBjOOBvyzjgobjgZ4NCivjgYbjgoHjga4s44GC44GN44KJDQor44GE44GR44GuLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZHjgYTjgZMNCivjgYTjgZfjgYQs44GX44KT44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjga7jgbbjgYoNCivjgZ/jgabjgYTjgZcs44GC44GN44KJIOOBleOBqOOBlw0KK+OBmeOBmuOBjSzjgb7jgZXjgYoNCivjgY3jga7jgZfjgZ8s44GC44GV44GTDQor44GK44GV44KPLOOBguOBpOOBlw0KK+OBhOOBpyzjgb7jgZXjgbLjgo0NCivjgYrjgYzjgo8s44KI44GX44GKDQor44GI44Gu44KC44GoLOOChuOBhuOBkw0KK+OBiuOBluOCjyzjgZLjgpMNCivjga/jgZ/jgZHjgoTjgb4s44GC44Gk44GXDQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBl+OBruOBluOBjSzjga7jgorjgZMNCivjgYrjgYvjgaAs44G/44Ga44Gu44KKDQor44Gf44GL44G+LOOBruOCiuOBkw0KK+OChOOBjizjgb/jgYsNCivjgZXjgYvjgYQs44KE44GZ44KG44GNDQor44GX44G/44GaLOOChuOBhuOBkw0KK+OBu+OCiuOBi+OCjyzjga/jgarjgZMNCivjgarjgYzjgYos44GN44KH44GTDQor44Gy44KJ44GE44GXLOOBqOOCguOBkw0KK+OBleOBjOOCjyzjgYvjgZrjgobjgY0NCivjga/jgonjgaAs44Go44GX44GL44GaDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBkw0KK+OBn+OBoSzjgbLjgYvjgosNCivjgbLjgYgs44KI44GX44Gy44KNDQor44Go44KA44KJLOOBleOBjeOBkw0KK+OBn+OBoCzjgZfjgbsNCivjgojjgZfjgoLjgags44KP44GN44GTDQor44KC44Gh44Ga44GNLOOBv+OBmuOBuw0KK+OBn+OBquOBiyzjgajjgoLjgbLjgo0NCivjgZ/jgZDjgaEs44G/44Gk44GC44GNDQor44GV44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBleOBi+OBl+OBnyzjgorjgYjjgZMNCivjgYvjgo/jgZfjgb4s44G+44GV44GXDQor44G744KK44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBteOBj+OBvizjgb7jgZXjgogNCivjgYvjgo/jgZ/jgass44GT44GG44GYDQor44GY44Gz44GNLOOCiOOBhuOBkw0KK+OBleOBhOOBqOOBhizjgZPjgbjjgYQNCivjgZfjgYrjgaQs44G+44KKDQor44Go44Gw44GfLOOBn+OCguOBpA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgb8NCivjgYrjgbXjgaEs44KK44KF44GE44GhDQor44GX44Gu44Gv44KJLOOBvuOBleOCiA0KK+OChOOBvuOBi+OCjyzjgY3jgb/jgYoNCivjgZ/jgoDjgoks44G+44KK44Gh44KFDQor44Gv44Gf44GR44KE44G+LOOBv+OBquOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgZMNCivjgYvjgarjgZbjgo8s44Gh44Gy44KNDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmA0KK+OBteOBmOOCgOOCiSzjgb7jgobjgb8NCivjgarjgYzjgZfjgb4s44GE44GP44GKDQor44GN44Gu44GX44GfLOOChuOBjeOBiA0KK+OBk+OCk+OBqSzjgb7jgobjgb8NCivjgYLjgpPjgbks44GL44GK44KKDQor44GV44GE44Go44GGLOOBmeOBv+OBn+OBiw0KK+OBguOBleOBoCzjgYLjgY3jgokNCivjgY3jga7jgZfjgZ8s44GK44GV44KADQor44GL44Gp44KELOOBv+OBpOOCiw0KK+OBhuOBiOOBoCzjgYTjgZXjgYoNCivjgZXjgYTjgajjgYYs44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOBkw0KK+OBhOOBl+OBluOBjSzjgbLjgo3jgb/jgaENCivjgYrjgZbjgo8s44Gu44G244GKDQor44Gv44KE44GXLOOBi+OBmuOBn+OBoA0KK+OChOOBjOOCjyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44Gf44GL44GTDQor44Go44G/44KE44G+LOOBsuOBi+OCiw0KK+OBguOBoOOBoSzjgbLjgafjgYLjgY0NCivjgYLjgYvjgYTjgo8s44GI44KK44GTDQor44GL44GM44KELOOBv+OBquOBkw0KK+OBguOCieOBhCzjgojjgZfjgobjgY0NCivjgYrjgZfjgY3jgoos44Go44GN44GTDQor44KE44G+44KA44KJLOOBvuOBvw0KK+OBn+OBi+OChOOBvizjgb7jgarjgb8NCivjgojjgZPjgoTjgb4s44GE44Ga44G/DQor44Gw44KTLOOBv+OBjQ0KK+OBhOOBmuOBvyzjgbXjgb/jgYgNCivjgb/jgZrjga4s44GC44GN44GTDQor44G244KT44KELOOBqOOBiuOCiw0KK+OBpuOCieOBiuOBiyzjgoLjgasNCivjgb/jgoTjgZfjgZ8s44G+44GV44Gy44KNDQor44GC44GV44G+LOOBl+OCguOCkw0KK+OBleOBleOBjSzjgabjgovjgbLjgZUNCivjgavjgZfjgYos44GK44GV44KADQor44G144KL44KELOOBv+OBoeOBig0KK+OBhOOBvuOBoCzjgZ/jgb/jgYoNCivjgYTjgZfjga/jgoks44KI44GX44GC44GNDQor44Gv44GX44KC44GoLOOChuOBng0KK+OBvuOCi+OChOOBvizjgZfjgofjgZnjgZENCivjgYvjgZgs44KG44GN44Gu44G2DQor44GL44Gt44GTLOOBleOBiuOCig0KK+OBquOBi+OBoCzjgZ/jgYvjgZcNCivjgaHjgZbjgo8s44GI44GE44GYDQor44GV44KPLOOBqOOBl+OChuOBjQ0KK+OBqOOBjOOCgSzjgYrjgZXjgoANCivjgojjgZfjgaAs44Gk44GQ44GKDQor44GK44GuLOOCiOOBl+OBruOCig0KK+OChOOBkyzjgZ/jgaDjgYoNCivjgYTjgZfjgYvjgo8s44G/44Gu44KLDQor44GT44Go44GgLOOBl+OCh+OBmA0KK+OBleOBjOOCjyzjgb/jga7jgosNCivjga7jgZDjgaEs44GR44GE44GTDQor44Gn44KT44G8LOOBpuOBpOOBig0KK+OBr+OCi+OBjSzjgojjgorjgagNCivjgYTjga0s44Gm44Gk44GKDQor44GK44GuLOOBsuOBp+OChuOBjQ0KK+OBi+OBreOBoCzjgYTjgY/jgYgNCivjga7jgZDjgaEs44G/44GN44GKDQor44GK44GwLOOBqOOCguOChuOBjQ0KK+OBiuOBnyzjgYvjgZrjgZ/jgYsNCivjgZfjgoLjgb7jgY0s44Gv44Gq44GTDQor44KP44Gf44Gy44GNLOOBruOCiuOBsuOBqA0KK+OChOOBvuOCguOBqCzjgarjgbsNCivjgbXjgZjjgoDjgoks44GC44GV44GTDQor44Gd44GG44G/44KELOOBv+OCj+OBkw0KK+OBl+OBvizjgZLjgpMNCivjgZXjgZXjgY0s44Gy44KN44GTDQor44GL44GM44KPLOOBvuOBleOBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgYLjgY3jga7jgooNCivjgZXjgYTjgY0s44Gy44KN44GTDQor44GE44Go44GGLOOBi+OBmuOBvg0KK+OBjeOCgOOCiSzjgYvjgZrjgb7jgZUNCivjgZ/jgbDjgZ8s44Gy44KN44G144G/DQor44GP44KBLOOBguOBjeOBsuOBkw0KK+OBn+OBi+OBoCzjgZfjgofjgYbjgYjjgYQNCivjgZ/jgoDjgoks44GP44Gr44GKDQor44Gf44GL44G+44GkLOOBn+OBpOOBsuOBkw0KK+OBl+OCjeOBl+OBnyzjgYLjgY3jgokNCivjgYvjgajjgYYs44Gy44KN44G/44GkDQor44GC44KP44GELOOBqOOBj+OBhOOBoeOCjeOBhg0KK+OBu+OBleOBiyzjgoTjgZnjgYoNCivjgZ/jgarjgYss44KG44GG44GTDQor44G/44Gy44KJLOOBvuOCig0KK+OBleOBqOOBhizjgb7jgorjgZMNCivjgYrjgZbjgo8s44GR44KT44GYDQor44GZ44Ga44GNLOOBj+OBvw0KK+OBv+OChOOBluOBjSzjgZ/jgYvjgobjgY0NCivjgoLjgorjgZ/jgass44KM44GE44GTDQor44GE44KP44GQ44KNLOOBj+OBv+OBkw0KK+OBhuOBiOOBvizjgb/jgojjgZMNCivjgbXjgYvjgZ8s44Gu44KK44GTDQor44Gy44KN44GbLOOCiOOBmA0KK+OBiuOBi+OBoCzjgZ/jgYvjgbLjgo0NCivjgYvjgajjgYYs44Go44KI44GC44GNDQor44G+44GNLOOBvuOCiuOBkw0KK+OBruOBoCzjgb/jgYgNCivjgY/jgbws44G+44GN44GTDQor44Gr44GX44GN44GK44KKLOOBl+OCheOBleOBjw0KK+OChOOBrizjgajjgoLjgobjgY0NCivjgYvjgo/jgoDjgZPjgYYs44Go44GX44Gu44KKDQor44KE44GZ44KA44KJLOOBruOCiuOBkw0KK+OBqOOBq+OBlyzjgovjgb8NCivjgoTjgb7jgoLjgags44GX44KF44GV44GPDQor44GX44KC44GgLOOBkeOBhOOBkw0KK+OBiuOBn+OBqyzjgobjgY3jgYoNCivjgYrjga7jgZXjgags44GR44KT44GYDQor44GL44Gq44GW44KPLOOCiuOCheOBng0KK+OBiuOBi+OCguOBqCzjgobjgYvjgooNCivjgZXjgYTjgajjgYYs44Gk44Go44KADQor44GL44GX44KP44Gw44KJLOOBl+OCh+OBkw0KK+OBn+OBi+OBr+OBlyzjgaHjgYsNCivjgZXjgYTjgajjgYYs44GC44GN44GTDQor44G+44Gk44GgLOOBsuOCjeOBvw0KK+OBn+OBoeOBluOBjSzjgYLjgorjgYsNCivjgZPjgpPjgaks44GV44KG44KKDQor44GX44G/44GaLOOBqOOCguOBi+OBmg0KK+OBquOBjOOBiuOBiyzjgY3jgofjgZMNCivjgarjgYvjgYzjgo8s44Gk44GO44GKDQor44Gf44GL44GoLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgarjgYrjgY0NCivjgarjgovjgZss44G/44KI44GTDQor44GK44GQ44G+LOOBqOOCguOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgYvjgosNCivjgY3jgY/jgaEs44Gg44GE44GZ44GRDQor44GV44Go44GGLOOBj+OBq+OBig0KK+OBiOOCk+OBqSzjga/jgpMNCivjgpPjgZDjgYTjgYfjgpMs44Gy44KN44GC44GNDQor44Gf44KA44KJLOOBv+OCj+OBkw0KK+OChOOBvuOCguOBqCzjgb/jgarjgZMNCivjgYLjgZXjgYQs44Gu44G244GTDQor44KC44KKLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBl+OCjSwg44G+44Gq44G2DQor44GK44GLLOOCiOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgo/jgYvjgZMNCivjgYTjgZDjgaEs44Go44KC44GTDQor44Gf44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OCiOOBl+OBoCzjgYvjgYrjgooNCivjgYLjgY3jgoLjgags44GC44Gk44GXDQor44Gr44GX44GELOOBsuOCjeOChuOBjQ0KK+OCj+OBl+OBiuOBiyzjgZ/jgYvjgZcNCivjgYTjgazjgb7jgoss44GN44KI44G/DQor44G744GXLOOBi+OBiA0KK+OCiOOBreOChOOBvizjgb/jgarjgYgNCivjgY/jgo3jgbks44Gb44GE44GTDQor44GE44GX44GELOOBr+OBmOOCgQ0KK+OBsuOBkOOBoSzjgb7jgorjgZMNCivjgarjgYvjgaAs44Gy44KN44GNDQor44GK44Gu44Gn44KJLOOBqOOCguOBruOCig0KK+OBqOOBoCzjgZPjgYbjgZgNCivjgb7jgYjjgaAs44KI44GX44Gy44KNDQor44Gq44GM44GELOOBiuOBleOCgA0KK+OBk+OBrOOBnyzjgoHjgZDjgb8NCivjgZfjgbDjgZXjgY0s44GV44GE44GLDQor44GG44GL44GELOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjgZXjgaHjgZMNCivjgbLjgonjgY0s44GN44KH44GTDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgb7jganjgYsNCivjgYvjganjgY/jgoks44GY44KF44KT44GYDQor44Gf44GL44GV44GNLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjgbLjgo3jgZgNCivjgZ/jgavjgYvjgo8s44GX44Ga44GLDQor44Gr44GX44KA44KJLOOBvuOBleOBruOBtg0KK+OBv+OBquOBvyzjgobjgYbjgYTjgaENCivjgYrjgazjgY0s44Gy44GV44GIDQor44GV44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjga/jgosNCivjgbLjgaAs44Gq44GK44GTDQor44GV44GP44G+LOOBqOOBl+OChuOBjQ0KK+OBq+OBiOOBoCzjgbLjgo3jgZMNCivjgojjgZPjgYQs44KG44GN44GTDQor44KI44Gt44GP44KJLOOBsuOBleOCiOOBlw0KK+OBsOOCk+OBsCzjgYvjgaTjgajjgZcNCivjgoTjgb7jgaAs44GC44GN44GLDQor44GE44G+44KA44KJLOOBoeOBr+OCiw0KK+OBhOOBkeOBoCzjga7jgbbjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GTDQor44GZ44Gp44GGLOOBvuOBleOBvw0KK+OBquOBi+OBneOBrSzjgb7jgZXjgZcNCivjgYrjgZXjgo8s44GT44GG44GYDQor44GV44Go44GGLOOBjeOCiOOBvw0KK+OBiOOBhOOBqeOCgSzjgbvjgZrjgYgNCivjgYTjgYzjgonjgZcs44G+44GV44KEDQor44Gf44KELOOBguOChOOBvw0KK+OBiuOBsuOCiSzjgb/jga7jgosNCivjgYTjgZfjgZDjgaEs44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBn+OBi+OBig0KK+OBleOBi+OCguOBqCzjgYrjgZXjgoANCivjgZnjgY7jgoLjgags44GX44G+DQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OCiOOBl+OBhCzjgozjgb8NCivjgYTjgo/jgoQs44Gf44GR44GKDQor44GN44Gu44GX44GfLOOCiuOBiA0KK+OBmeOBjuOBleOCjyzjgYLjgY3jgbLjgacNCivjgo/jgaAs44KL44KK44GTDQor44G/44KE44GX44GfLOOBoeOBguOBjQ0KK+OBhuOBiOOBrizjgb/jgarjgZMNCivjgYrjgZ/jgY0s44KK44GIDQor44GE44GX44Gw44GXLOOBi+OBiuOCig0KK+OBhOOCj+OBl+OBnyzjgaHjgYvjgZMNCivjgYTjgZfjgYvjgo8s44GX44Gh44KNDQor44GN44GXLOOChuOBjQ0KK+OBvuOCi+OChOOBvizjgb/jgYsNCivjgbvjgpPjgb4s44Gf44GL44GTDQor44GP44GZ44KC44GoLOOCiOOBl+OBkw0KK+OBhOOBvuOBrizjgYPjgZUNCivjgZDjgYLjgavjgYos44GD44GVDQor44GS44KM44G/44GCLOOBleOBqOOBlw0KK+OBiuOBq+OBlyzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44G/44Gq44GTDQor44G144GY44GK44GLLOOBn+OBoOOBsuOCjQ0KK+OBr+OBquOBoCzjgojjgYbjgZMNCivjgZfjgbDjgZ8s44GN44KH44GTDQor44G/44KE44GX44GfLOOBi+OBmuOCiA0KK+OBi+OBleOBr+OCiSzjgb/jgojjgZMNCivjgYrjgoTjgZEs44GI44G/44GTDQor44GE44G+44GELOOBruOBtuOBkw0KK+OBk+OBm+OBjSzjgobjgb/jgZMNCivjgYrjgZ8s44GN44KH44GTDQor44G+44Gh44GELOOBvuOBleOBig0KK+OBjeOBj+OBoSzjgbLjgafjgbLjgZMNCivjgbLjgZDjgaEs44Gf44Gm44GKDQor44G/44Gq44KI44GXLOOBsuOBleOBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgYoNCivjgarjgpPjgbAs44GE44GV44GKDQor44GK44Gr44GXLOOBjeOBv+OBsuOBpw0KK+OBr+OChOOBl+OBoCzjgZ/jgYvjgYoNCivjgZ/jgarjgYss44GL44KTDQor44GL44Gt44GTLOOBm+OBhOOBng0KK+OBpOOBoeOChCzjgZfjgocNCivjgYTjgYTjgaAs44Go44KJ44GKDQor44G144KL44KELOOChOOBmeOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgYLjgZXjgYoNCivjga/jgovjga/jgoks44KG44GN44GKDQor44G744KK44GILOOBvuOBleOBig0KK+OBiuOBnyzjga/jgovjgYoNCivjgZnjgZrjgY0s44GP44Gr44GKDQor44GK44GoLOOBvuOCiuOBkw0KK+OBquOBi+OBjOOCjyzjga7jgbzjgosNCivjgYvjgo/jgZfjgb4s44GL44Ga44Gy44KNDQor44Gm44KJ44KC44GoLOOBm+OBpOOBig0KK+OBjeOCgOOCiSzjgYvjgZrjgYgNCivjgojjganjgarjgo8s44GY44KF44KT44GYDQor44GT44Gg44GE44KJLOOBsuOCjeOBi+OBmg0KK+OBi+OBj+OCieOBhCzjgarjgYrjgY0NCivjgYrjgZDjgoos44Gg44GE44GV44GPDQor44Gv44GfLOOBn+OBi+OBqOOBlw0KK+OBvuOBpOOCguOCiizjgbLjgafjgbLjgo0NCivjgojjgZfjgYrjgYss44GL44Ga44Gu44KKDQor44GX44GS44GfLOOBqOOCguOChuOBjQ0KK+OBi+OCj+OBkOOBoSzjgYjjgaTjgYoNCivjgYvjga3jgZMs44GL44Ga44GKDQor44GC44GV44GyLOOBv+OBpOOBkA0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgZcNCivjgYLjgorjgoTjgb4s44KI44KK44GX44GSDQor44Gk44GY44GfLOOBn+OBkeOBlw0KK+OCiOOBl+OBr+OBlyzjgoTjgZnjgaTjgZANCivjgb/jgZfjgb4s44G+44GV44Go44GXDQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBi+OBreOBvuOCiyzjgojjgbjjgYQNCivjgYvjga3jgZMs44KG44GG44GY44KNDQor44GI44GY44G+LOOBguOBjeOCiQ0KK+OBv+OBpOOBj+OBoSzjgobjgYvjgooNCivjgoLjgoos44Gy44Gn44GC44GNDQor44GK44GhLOOCiOOBhuOBkw0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jgojjgZcNCivjgZ/jgarjgYss44GR44KT44GYDQor44GK44KK44GM44GVLOOBi+OBmuOBig0KK+OBk+OBm+OBjSzjgZvjgYTjgZgNCivjgbLjgonjgoTjgb4s44G/44Gh44GC44GNDQor44GT44G844KKLOOBqOOCguOBsuOCjQ0KK+OBquOBi+OBhuOBiCzjgb7jgZXjgYoNCivjgZnjgajjgYYs44Gf44Gg44GC44GNDQor44GU44GoLOOBk+OBhuOBmA0KK+OBpOOBi+OCguOBqCzjgaTjgZDjgYoNCivjgYjjgbPjga/jgoks44Gf44Gk44GKDQor44KC44KK44GuLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgZvjgYTjgZcNCivjgojjgZfjgaAs44GL44Gk44GYDQor44GE44G+44GELOOBiOOBpOOBsuOCjQ0KK+OBsuOBrizjgoTjgZnjgZcNCivjgojjgZfjgaAs44Gy44KN44GC44GNDQor44GK44Gr44Ga44GLLOOBmOOCheOCkw0KK+OBn+OBi+OBjizjgY3jgb/jgYoNCivjgYrjgoDjgoks44Gb44GE44GE44GhDQor44GG44Gh44KE44G+LOOBi+OBmuOBig0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjga7jgooNCivjgoTjgb7jgZfjgZ8s44G+44Gk44Gu44KKDQor44Gr44GX44GgLOOBi+OBiuOCiw0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgZcNCivjgYvjgZfjgo/jgY4s44GI44Gk44KI44GXDQor44GL44Gt44GTLOOBn+OBpOOBig0KK+OBj+OBvuOBoCzjgb7jgZXjgYoNCivjgZPjgZjjgb4s44GN44KI44Gy44GTDQor44GX44KJ44GELOOBsuOCjeOBv+OBoQ0KK+OBteOCi+OBi+OCjyzjgojjgZfjgYLjgY0NCivjgoDjgZfjgYYs44Gy44Gn44Gu44KKDQor44KI44GX44GuLOOBvuOBleOBguOBjQ0KK+OBmeOBjuOBhuOCiSzjgb7jgZPjgagNCivjgbXjgZjjgZXjgo8s44G+44GV44GNDQor44GV44Go44GGLOOCgOOBreOBn+OBiw0KK+OBiOOBluOBjSzjgb/jgaoNCivjgoDjgonjgYvjgb8s44GZ44G/44Gf44GgDQor44Gr44KP44KE44G+LOOBvuOBleOBsuOBkw0KK+OChOOBmeOBrizjgYvjgaTjgbLjgagNCivjganjgaAs44GI44Gk44GTDQor44GL44GY44GELOOCiOOBl+OBruOBtg0KK+OBn+OBquOBiyzjgZ/jgY3jgYoNCivjgb7jgaTjgarjgoos44Gy44GV44GIDQor44GK44Gw44KE44GXLOOBmeOBleOCkw0KK+OBpOOBguOBnuOCkyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44KG44GN44GTDQor44G+44Gk44KA44KJLOOBv+OBjeOBig0KK+OBk+OCguOCiizjgarjgYrjgZrjgb8NCivjga7jgZ7jgYgs44Gm44Gk44Gy44GTDQor44GK44GuLOOCiuOBiA0KK+OBi+OCk+OBrizjgZ/jgaDjgYLjgY0NCivjgZXjgajjgYYs44Go44GX44GKDQor44Gu44Gq44GLLOOBm+OBhOOBhOOBoQ0KK+OBi+OCj+OBr+OCiSzjgb7jgooNCivjgarjgYvjgoDjgoks44GC44GN44Gy44KNDQor44KE44G+44GX44GfLOOBn+OBi+OChuOBjQ0KK+OBk+OBhuOBhOOBoSzjgZ/jgYvjgYoNCivjgYTjgZ/jgoQs44G+44Gk44KC44KKDQor44KE44G+LOOBv+OBiw0KK+OChOOBvuOCguOBqCzjgajjgoLjgbLjgZMNCivjgY/jgonjgZ8s44KC44Gq44G/DQor44GL44KP44GaLOOCiOOBhuOBkw0KK+OBv+OBi+OBvyzjgYTjgZXjgYoNCivjgZ/jgY3jgYzjgo8s44GT44GG44GN44GhDQor44Gf44Gq44GLLOOBvuOBquOBtg0KK+OBv+OChOOBnyzjgZ/jgY/jgoQNCivjgarjgYTjgajjgYYs44KE44GZ44G+44GVDQor44G+44KL44GfLOOBvuOBjeOBkw0KK+OCj+OBoCzjgYvjgZrjgYgNCivjgbLjgYjjgaAs44GN44KI44G/DQor44Gf44GR44GgLOOBk+OBmuOBiA0KK+OBi+OBmOOCguOBqCzjgZHjgYTjgZMNCivjga7jgoDjgoks44KP44GL44GTDQor44Gt44KELOOChuOBvw0KK+OBmeOBmuOBjSzjgb7jgobjgb8NCivjgY3jgoDjgoks44Go44GX44GL44GaDQor44KA44KJ44GfLOOCguOCguOBiA0KK+OBhOOBl+OBi+OCjyzjgbLjgafjgYoNCivjgbXjgZjjgo/jgoks44G144G/44GTDQor44KC44KKLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBguOBhOOCguOBrizjgoTjgZnjgZMNCivjgZ/jgYvjgaAs44GE44Gf44KLDQor44GK44GgLOOBk+OBhuOBhOOBoQ0KK+OBjeOBruOBl+OBnyzjgojjgZfjgYvjgZoNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GV44GP44G+LOOBn+OBi+OBpuOCiw0KK+OBmOOCh+OBhuOBk+OBhizjgY3jgb/jga7jgooKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MTllZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9oLnR4dApAQCAtMCwwICsxLDIyNzQ5IEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+OBguOBjeOCguOBqCzjgoTjgZnjgYoNCivjgYLjgY3jgbAs44GX44GS44KLDQor44GC44KJ44GELOOBsuOBp+OBguOBjQ0KK+OBguOCieOBhCzjgZHjgpPjgYTjgaENCivjgYLjgYvjgYzjgo8s44Go44GX44GKDQor44GC44KJ44GNLOOBm+OBhOOBlA0KK+OBguOBhOOBi+OCjyzjga7jgorjgYoNCivjgYLjgY3jga4s44KG44GN44GKDQor44GC44GN44KE44G+LOOBpOOCiOOBlw0KK+OBguOBleOBhCzjgbLjgajjgZcNCivjgYLjgbks44G+44KC44KLDQor44GC44KK44GMLOOBpOOBqOOCgA0KK+OBguOBjeOBnyzjgojjgZfjgabjgosNCivjgYLjgYvjgaTjgYss44GL44Ga44Gy44GTDQor44GC44KJ44GELOOBvuOBleOBr+OCiw0KK+OBguOBleOBr+OCiSzjgYvjgZrjgYoNCivjgYLjgaTjgb8s44G+44GV44GC44GNDQor44GC44KP44KELOOBsuOBqOOBlw0KK+OBguOBleOBi+OCjyzjgajjgZfjgYLjgY0NCivjgYLjgYrjgY0s44GK44GV44KADQor44GC44KP44GaLOOBguOBjeOCiQ0KK+OBguOBjeOBj+OBlSzjgojjgYbjgZnjgZENCivjgYLjgYrjgoTjgY4s44Gv44Gk44GL44GaDQor44GC44GY44GV44KPLOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBhOOBnSzjgoTjgZnjgZcNCivjgYLjgYrjgZfjgb4s44Gh44KI44GL44GaDQor44GC44Go44GGLOOBvuOBleOBsuOBkw0KK+OBguOBleOBrizjgojjgZfjgoQNCivjgYLjgorjgYws44Gd44GG44GE44GhDQor44GC44GK44GNLOOCiuOCh+OBhuOBuOOBhA0KK+OBguOBhOOBi+OCjyzjgobjgY3jgYoNCivjgYLjgY3jgZ8s44G+44GV44Gy44KNDQor44GC44GV44GuLOOBruOCiuOBguOBjQ0KK+OBguOBleOBqCzjgbLjgafjgZcNCivjgYLjgonjgY0s44KI44GX44GL44GaDQor44GC44KT44Gp44GGLOOChOOBmeOBlw0KK+OBguOBleOBi+OCjyzjgbLjgo3jgZcNCivjgYTjgYTjgaAs44G+44GT44GoDQor44GE44KP44GV44KPLOOBvuOBleOBjQ0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgYoNCivjgYTjga7jgYbjgYgs44Gy44KN44Gy44GoDQor44GE44GX44Gv44KJLOOCiOOBl+OBruOCig0KK+OBhuOBi+OBmCzjgZXjgaHjgZMNCivjgYbjgoHjgZ/jgass44GL44Gk44Gy44GTDQor44GK44GR44Gf44GrLOOBkeOCk+OBmA0KK+OBiuOBiuOBmeOBjizjgYLjgY3jgbLjgo0NCivjgYrjgYrjgYvjgo8s44G/44GN44Gy44GTDQor44GL44Go44GGLOOBvuOBleOBqOOBlw0KK+OBi+OCgizjgb7jgZXjgYLjgY0NCivjgY/jgb7jgYzjgYQs44G+44GV44GXDQor44GT44KT44GpLOOBguOBjeOCiQ0KK+OBmeOBjuOCguOBqCzjgYrjgZXjgoANCivjga/jgb7jgZXjgY0s44KI44GX44Gu44KKDQor44Gh44GgLOOBl+OCheOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgZHjgYTjgZ7jgYYNCivjgarjgYzjgZ8s44Gh44GI44GTDQor44GV44KP44KA44KJLOOBi+OBoeOBkw0KK+OBquOCi+OBiizjgojjgZfjga7jgbYNCivjgarjgorjgZ8s44KG44G/44GTDQor44Gv44Gb44GM44KPLOOBsuOCjeOBkw0KK+OBteOBmOOBnyzjgZHjgYTjgZMNCivjgbXjgZjjgo/jgoks44Gf44GL44GTDQor44G244KI44GGLOOBpuOBpOOBig0KK+OBu+OCiizjgZPjgYbjgZgNCivjgb/jgarjgb/jgoDjgoks44Gh44GC44GNDQor44G/44KE44GY44G+LOOBoeOCiOOCig0KK+OChOOBvuOBoCzjgb7jgooNCivjgoTjgb7jgZDjgaEs44Gf44GL44GXDQor44KE44Gq44GO44Gv44KJLOOBv+OBqeOCig0KK+OCiOOBl+OBrizjgZfjgpPjgYTjgaENCivjgavjgYTjgaAs44GP44Gr44Gy44GTDQor44GK44GK44GE44KE44G+LOOChuOBhuOBkw0KK+OBi+OBquOBjOOCjyzjgYTjgaHjgo3jgYYNCivjgY3jgoDjgoks44KK44GI44GTDQor44Gk44GL44GW44GNLOOBv+OBuw0KK+OBi+OCj+OBoCzjgarjgYrjgZMNCivjgYLjgZXjgYvjgo8s44G/44GV44GTDQor44GX44KC44GkLOOBvuOBleOBguOBjQ0KK+OBiuOBiyzjgZ/jgYvjgbLjgagNCivjgYrjgYzjgo8s44GT44GZ44GRDQor44Gf44GE44KJLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhOOBl+OBrizjgY3jgojjgarjgYwNCivjgY3jgb/jgZfjgb4s44GC44GN44KJDQor44GV44Go44GGLOOBpuOBpOOChA0KK+OChOOBvuOBoCzjgYrjgZXjgoANCivjgYrjgYrjgZ8s44Gq44GK44G/44GhDQor44G+44GI44GgLOOBsuOBp+OBqOOBlw0KK+OBi+OBluOCieOBlyzjgb/jgaTjgosNCivjgZTjgajjgYYs44GL44Gk44Gu44KKDQor44G744GXLOOBvuOCguOCiw0KK+OBj+OCjeOBoCzjgZfjgpPjgoQNCivjgaTjgYvjgo/jgY0s44Go44GX44KEDQor44GE44Gq44GM44GNLOOBvuOBleOBsuOCjQ0KK+OBhOOCj+OCguOBqCzjgZ/jgoLjgaQNCivjgaTjgovjgZ8s44Gf44GL44GXDQor44GE44GX44GY44G+LOOCiuOCh+OBhuOBuOOBhA0KK+OChOOBvuOBquOBiyzjgbLjgo3jgajjgZcNCivjgYbjgYjjgY0s44GC44GN44GTDQor44Gr44GX44KA44KJLOOBguOBpOOBkw0KK+OCj+OBhOOBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44KL44G/DQor44GX44G244KELOOChuOBn+OBiw0KK+OBguOBqOOBhizjgb7jgZXjga7jgooNCivjgb/jgoTjgZ8s44GL44GK44KLDQor44GK44GK44Gf44GNLOOBpOOBjuOBig0KK+OBjeOCiOOBiuOBiyzjgb7jgZPjgagNCivjgYrjgYrjgZ/jgass44Gf44GL44GXDQor44Gr44GX44KP44GNLOOBquOBiuOBvw0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgZcNCivjgb/jgZfjgb4s44Gf44GL44KG44GNDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBhOOBvuOBiizjgb/jgZrjgbsNCivjgYrjgZbjgY0s44GT44GG44GYDQor44Gb44GN44KELOOBvuOBleOChuOBjQ0KK+OBpOOBj+OBoCzjga7jgbbjgobjgY0NCivjgb/jgojjgZcs44Gu44G244G+44GVDQor44KI44GX44G/LOOBn+OBi+OChuOBjQ0KK+OBleOBleOBiuOBiyzjgZ/jgYvjgZcNCivjgYrjgZfjgb4s44Gh44Gv44KLDQor44GP44G844GfLOOBoeOBmuOBkw0KK+OBl+OBsOOChOOBvizjgZfjgoXjgYbjgZ7jgYYNCivjgYrjgYrjgY/jgbws44Go44Gq44G/DQor44Gf44Gh44GuLOOBmOOCheOCkw0KK+OCj+OBoCzjgb/jgaHjgogNCivjgb7jgaTjgZfjgZ8s44G+44GV44KC44KKDQor44GT44KA44KJLOOChOOBmeOBsuOBkw0KK+OBvuOBjeOBl+OBnyzjgZHjgYTjgZMNCivjgYLjgYvjgYos44KE44GZ44Gy44KNDQor44Gv44GX44KC44GoLOOBsuOBqOOBlw0KK+OBiuOBiuOBrizjgYvjgZrjgYoNCivjgZvjgY3jgoLjgags44KI44GX44GKDQor44G+44GI44GgLOOBoeOBi+OCiQ0KK+OBv+OBpOOBu+OCiizjgarjgYrjgY0NCivjgb/jgarjgb/jgZ7jga4s44G+44GV44GNDQor44Gb44GM44KPLOOBi+OBiuOCig0KK+OBmeOBmuOBjSzjgajjgojjgZgNCivjgY3jgZ/jgYzjgo8s44KI44GX44Gf44GLDQor44KI44GX44KE44GZLOOBmOOCjeOBhg0KK+OChOOBvuOCguOBqCzjgb7jgooNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44KP44GL44G/LOOCiOOBhg0KK+OBvuOBjeOBrizjgarjgYrjgY0NCivjgZnjgZrjgY0s44G+44GV44GKDQor44G144KL44GV44KPLOOBleOBqOOBlw0KK+OBr+OChOOBlyzjgZgNCivjgYTjgb7jgavjgZcs44Go44GX44Gy44GTDQor44G/44KE44KC44GoLOOChuOBiw0KK+OBvuOBjSzjgY/jgavjgYLjgY0NCivjgZPjgYTjgacs44GV44G7DQor44KP44Gf44Gq44G5LOOBvuOBleOBkw0KK+OBiuOBiuOBr+OBlyzjgbLjgajjgZcNCivjgYLjgYvjgYos44GC44GN44GKDQor44GC44GV44GELOOBi+OBmuOBkw0KK+OBhOOBvuOBhCzjgZ/jgYvjgZcNCivjgY3jgoks44G+44GV44Gy44GTDQor44Gr44GX44KA44KJLOOBpuOCi+OBjQ0KK+OCiOOBl+OBi+OCjyzjgajjgZfjgobjgY0NCivjgb/jgarjgb8s44GR44KT44GYDQor44Gk44KL44GfLOOBruOCiuOBig0KK+OBquOBi+OCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgarjgYss44GR44KT44GYDQor44G+44Gk44GG44KJLOOBn+OBkeOBlw0KK+OBmeOBjuOBnyzjgZgNCivjgYvjgo/jgYQs44Go44GX44GKDQor44GT44GP44G8LOOBleOBpOOBjQ0KK+OBpOOBoCzjgb7jgZPjgagNCivjgb/jgoTjgZ/jgZEs44Go44GX44Gf44GLDQor44GP44KN44GV44KPLOOCiOOBl+OBi+OBmg0KK+OBmeOBv+OBsuOCiSzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgY0s44G+44GV44GKDQor44GE44GX44GoLOOBk+OBhuOBjQ0KK+OChOOBvuOBoCzjgoLjgajjgYvjgZoNCivjgavjgYTjgaQs44Gu44G244GC44GNDQor44GE44KP44KA44KJLOOBi+OCk+OBmA0KK+OBi+OCj+OBquOBuSzjgojjgZfjgbLjgo0NCivjgarjgYzjgYQs44Gy44KN44KG44GNDQor44KE44G+44GtLOOBoeOBguOBjQ0KK+OBhOOBvuOBhCzjgZ/jgYvjgobjgY0NCivjgarjgYvjgYos44GE44GV44GKDQor44GK44GX44GN44KKLOOBteOBv+OBr+OCiw0KK+OBhOOBl+OBi+OCjyzjgZjjgoXjgpMNCivjgYrjgYvjgZjjgb4s44GY44KF44KTDQor44GK44GK44Gr44GXLOOBvuOBleOBr+OCiw0KK+OBmeOBmuOBjSzjgabjgaQNCivjgoTjgb7jgarjgYss44GV44Gk44G/DQor44Gf44Gr44GQ44GhLOOBi+OBmuOBsuOCjQ0KK+OBi+OCj+OBuSzjgajjgY3jgYoNCivjgZPjgpPjga4s44G/44GNDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OChOOBvizjgZfjgpPjgYTjgaENCivjgoLjgorjgb/jgaEs44GE44Gf44KLDQor44G744KK44GL44KPLOOBi+OBpOOBvw0KK+OBteOBj+OBhCzjgZ/jgb7jgZMNCivjgY3jgZ/jgoDjgoks44GC44GN44KJDQor44Gq44GL44Gv44KJLOOBsuOCjeOBvw0KK+OBhOOBoeOBhCzjgbLjgafjga7jgooNCivjgYTjgo/jgZUs44GL44KI44GTDQor44GZ44Ga44GNLOOBl+OCheOCk+OBmA0KK+OCiOOBreOBn+OBqyzjgYvjgaTjgbXjgb8NCivjgZ/jga4s44Gf44GR44GXDQor44GX44Gw44GfLOOBsuOBp+OCiA0KK+OBhOOBruOBhuOBiCzjgb7jgZXjga7jgooNCivjgYTjgZfjgYvjgo8s44Go44GX44GKDQor44GN44GXLOOBvuOBleOBvw0KK+OBguOCj+OBiCzjgYLjgaTjgZcNCivjgZ/jgZHjgYos44KI44GX44GC44GNDQor44GN44Gu44GX44GfLOOBi+OBmuOBsuOBkw0KK+OBpOOBi+OBoCzjgbXjgb/jgYLjgY0NCivjgYLjgorjganjgoEs44Go44GX44KG44GNDQor44GN44Gj44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBiuOBjOOBleOCj+OCiSzjgbLjgZXjgYvjgZoNCivjgarjgYzjgZss44Gf44GL44Gy44KNDQor44Gv44KL44KE44G+LOOBguOBpOOBsuOBkw0KK+OBiuOBmizjgoTjgZnjgYoNCivjgZPjgZXjgYss44Go44GX44GL44GaDQor44GX44KJ44GV44GNLOOBqOOBiuOCiw0KK+OBn+OBquOBuSzjgaTjgajjgoANCivjgYTjgZHjgYzjgb8s44Gk44KI44GXDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBhOOBoQ0KK+OBvuOBpOOBsOOCiSzjgarjgYrjgagNCivjgarjgYvjgYzjgo8s44KC44KK44Gy44KNDQor44GK44GM44KPLOOBm+OBhOOBmA0KK+OCiOOBl+OBoCzjgb7jgZXjga7jgbYNCivjgYTjgZEs44GV44Gg44Gu44G2DQor44Gf44Gr44GQ44GhLOOBvuOBleOBv+OBoQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgbLjgonjga4s44Gf44GL44KG44GNDQor44GX44G/44GaLOOBjeOBv+OBkw0KK+OChOOBvuOBoCzjgYLjgY3jgajjgZcNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44GT44G+44Gk44GW44GNLOOBvuOCguOCiw0KK+OBi+OBqOOBhizjgb7jgZXjgYvjgZoNCivjgYrjgo8s44Gu44KK44GTDQor44GE44KP44KA44KJLOOBsuOCjeOBn+OBoA0KK+OBhOOCiuOBiCzjgYvjgZrjgobjgY0NCivjgYLjgYvjgoTjgb4s44G+44GV44KG44GNDQor44GC44GN44KC44GoLOOBsuOCjeOBguOBjQ0KK+OBi+OBv+OCgOOCiSzjgYLjgY3jgbLjgZMNCivjgZnjgb/jgZ8s44GL44GK44KLDQor44Gv44G+44GV44GNLOOBguOBpOOBlw0KK+OChOOBmeOBoCzjgb7jgoLjgosNCivjgZ/jgZHjgoDjgoks44G/44GN44KEDQor44KA44KJ44GL44G/LOOBqOOBv+OBpOOBkA0KK+OBquOBi+OBmOOBvizjgbLjgZXjgajjgoINCivjgoLjgorjgoLjgags44GT44GG44GYDQor44Gb44GN44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBmOOBvizjgb7jgZXjgbLjgZMNCivjgY3jgYzjgo8s44Gy44KN44Gy44GVDQor44Gf44GL44Gy44KJLOOBn+OBi+OBlw0KK+OCguOBoeOBoCzjgYLjgaTjgZcNCivjgYvjgoHjgoTjgb4s44Gf44GL44GXDQor44GK44KE44G+44GgLOOBvuOBleOBsuOBlQ0KK+OBn+OBquOBiyzjgabjgovjgbLjgZUNCivjgbvjgpPjgb4s44GX44KT44GYDQor44GN44Gu44GX44GfLOOChOOBmeOBsuOBkw0KK+OBl+OBruOBpOOBiyzjga7jgbbjgZfjgZINCivjgYLjgYTjga/jgoks44KE44GZ44G144G/DQor44Gq44GM44G+44GkLOOBiOOBhOOBmA0KK+OBqOOCiOOCgOOCiSzjgb7jgZXjgYLjgY0NCivjgbLjgonjga4s44Gf44GL44GXDQor44GN44KA44KJLOOBmOOCheOCkw0KK+OBhOOBkeOBoCzjgZvjgYTjgZgNCivjgYTjgZfjga/jgoks44KG44GG44GTDQor44Gu44GQ44GhLOOBvuOBleOCiw0KK+OBk+OBkeOBpCzjgb/jgaTjgb7jgZUNCivjgYrjgY/jgoTjgb4s44GC44Gk44Gy44GTDQor44Gv44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBpOOBmOOBleOBiyzjgbLjgafjgYLjgY0NCivjgYTjgaHjgYvjgo8s44GV44Go44KLDQor44KI44GX44GgLOOBm+OBhOOBlA0KK+OChOOBvuOBoCzjgojjgYbjgYTjgaENCivjgZfjgb/jgZos44KE44GZ44GXDQor44GV44GL44GM44G/LOOBruOCiuOBi+OBmg0KK+OBk+OBmeOBjizjgbLjgZXjgbLjgZMNCivjgavjgZfjgaAs44Gb44GE44GYDQor44GE44GE44GgLOOBi+OBpOOCiQ0KK+OBhuOBoeOBoCzjgoTjgZnjgb8NCivjgoLjgajjgoTjgb4s44Gh44Gv44KEDQor44G/44KE44KC44GoLOOBhOOBj+OCiA0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgZcNCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GX44KJ44GELOOBleOBqOOBlw0KK+OBr+OBjuOCj+OCiSzjgZPjgYbjgZgNCivjgoTjgb7jgYbjgaEs44KG44GN44Gy44GnDQor44G/44Gk44Gv44GXLOOBi+OBiuOCig0KK+OCguOCk+OBmCzjgojjgYbjgYTjgaENCivjgZ/jgY3jgoLjgags44Gu44KK44GTDQor44GK44GP44GgLOOBl+OCheOBhuOBmA0KK+OBpOOBi+OCguOBqCzjgZfjgoXjgYbjgZgNCivjgoDjgZPjga/jgoks44KE44GZ44GE44GPDQor44GV44KL44KELOOBv+OBoeOBig0KK+OBiuOBi+OBmOOBvizjgajjgZfjgbLjgZMNCivjgbvjgZfjga4s44Gy44GV44GoDQor44G744GXLOOBsuOCjeOBteOBvw0KK+OBteOBl+OBvyzjgZPjgYbjgYTjgaENCivjgZ/jgYvjga/jgZcs44Gf44Gk44KEDQor44Gr44GX44KE44G+LOOBl+OCk+OBmA0KK+OBpOOCi+OBvuOBoSzjgZfjgofjgYbjgYTjgaENCivjgajjgb/jgZ8s44Gq44KL44GoDQor44GG44Gh44GgLOOBqOOBiuOCiw0KK+OBiuOBiuOBn+OBiyzjgobjgYbjgZMNCivjgZXjgYvjgYQs44Gf44GL44Gy44GVDQor44Gd44GM44G5LOOBi+OBpOOBvw0KK+OCj+OBoCzjgZHjgpPjgZgNCivjgZPjgZXjgYss44G+44GV44G/DQor44GC44GdLOOBguOBkeOBvw0KK+OBguOCieOBhCzjgajjgZfjga/jgosNCivjgZnjgY7jgoDjgoks44GX44GS44GKDQor44GC44GN44KI44GXLOOBi+OBmuOBig0KK+OBguOBleOBi+OCjyzjgaTjgajjgoANCivjgo/jgaAs44GV44GL44GIDQor44GE44GR44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBi+OCguOBqCzjgorjgofjgYbjgZgNCivjgYLjgYrjgY0s44G+44GV44KLDQor44GG44GI44GV44KPLOOBpOOCiOOBlw0KK+OBhuOChOOBvizjgbLjgafjgYLjgY0NCivjgarjgYvjga/jgb4s44GZ44GZ44KADQor44GL44KP44KC44GoLOOBvuOBleOChuOBjQ0KK+OBmeOBiOOBvuOBpCzjgZjjgoXjgpPjgZgNCivjgarjgYzjgYQs44GV44Go44GXDQor44Gq44GL44Gv44KJLOOChuOBhuOBnuOBhg0KK+OBquOCj+OBnyzjgarjgorjgYLjgY0NCivjgYvjgaTjgZbjgo8s44Gy44KN44GXDQor44KE44G+44GG44GhLOOBv+OChuOBjQ0KK+OBguOBi+OBjuOBlyzjgaTjgojjgZcNCivjgY/jgZXjgZrjgb8s44Go44GX44Gy44GTDQor44G744GL44KKLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgY3jgorjgYYs44Gy44KN44GNDQor44GK44GM44KPLOOBvuOBleOBqA0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgYLjgYTjgoDjgoks44Gk44Go44KADQor44GE44GM44KJ44GXLOOBvuOBleOBqA0KK+OBi+OCj+OCj+OBjSzjgZ/jgYvjgb/jgaENCivjgb7jgYjjgZXjgYss44Go44KC44G/44GkDQor44G+44Gk44GX44G+LOOBguOBpOOBlw0KK+OBvuOBpOOCguOBqCzjgbLjgafjgagNCivjgYvjgZ/jgYQs44G+44GV44Gy44KNDQor44GT44GY44G+LOOBvuOBleOBguOBjQ0KK+OBpOOBmOOCguOBqCzjgajjgYrjgosNCivjgarjgo/jgZ8s44GV44Go44GXDQor44G144GY44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBjeOBmyzjgabjgaTjgo3jgYYNCivjgZXjgYvjgZDjgaEs44GY44KF44KT44GE44GhDQor44GZ44Ga44GNLOOBqOOBl+OChuOBjQ0KK+OBr+OBvuOBleOBjSzjgb7jgZXjgbLjgo0NCivjgojjgZfjgaAs44Gy44Go44GXDQor44G744Gj44GfLOOBl+OBkuOBsuOBqA0KK+OBvuOBmeOBkyzjgbLjgZXjgYoNCivjgZ/jgZHjgarjgYss44GT44GZ44GRDQor44GE44GX44GELOOBr+OCi+OBjQ0KK+OBn+OBleOBiyzjgbLjgo3jgZcNCivjgb7jgaTjgaAs44G+44GV44Gy44KNDQor44Gv44GfLOOBn+OBi+OBlw0KK+OBguOBjeOChOOBvizjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44GoDQor44KE44G+44GL44KPLOOBl+OCh+OBhuOBmA0KK+OCiOOBk+OBoSzjgb7jgZXjgbLjgo0NCivjgojjga3jgZ/jgass44GN44GE44Gh44KN44GGDQor44G144GY44GuLOOChuOBhuOBmeOBkQ0KK+OBr+OBm+OBjOOCjyzjgYvjgaTjgajjgZcNCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44GC44KT44KJ44GPLOOBvuOBleOBkw0KK+OBr+OBl+OCguOBqCzjga7jgbbjgobjgY0NCivjgYTjgarjgaAs44KM44GE44GTDQor44KG44GSLOOBvuOBleOCiOOBlw0KK+OBhOOBvuOBoCzjgYTjgZrjgb8NCivjgZXjgYvjgoLjgags44GL44Ga44Gy44GVDQor44Go44KI44Gq44GMLOOChOOBmeOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgabjgaTjgYoNCivjga/jgarjgYQs44KI44GX44Gu44KKDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjga/jgosNCivjgYvjgZjjgoDjgoks44KI44GX44Gy44GTDQor44GE44GX44GM44GNLOOBkeOCk+OBnuOBhg0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgYoNCivjgYLjgb7jga4s44KK44KH44GGDQor44G/44GL44G/LOOBi+OBiuOCiw0KK+OBteOCi+OBpuOCiSzjgb7jgobjgb8NCivjgb7jgb/jgoQs44Gy44Gn44GNDQor44Gk44KL44GuLOOCgOOBpOOBkw0KK+OBguOBleOBhCzjgoTjgZnjgY0NCivjga7jgoDjgoks44GX44GS44GKDQor44KI44GT44KE44G+LOOBl+OCk+OBmA0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYLjgpPjganjgYYs44GC44GN44GKDQor44GK44GL44KE44GZLOOChOOBmeOBkw0KK+OBlOOBqOOBhizjgbLjgafjgYLjgY0NCivjgYvjgo/jgZfjgb4s44Gf44GL44GTDQor44Gv44GO44KP44KJLOOBiOOCig0KK+OBguOBn+OCieOBlyzjgobjgb/jgZMNCivjgZ/jgYvjgoTjgb4s44Go44GX44Gy44GoDQor44Gr44GX44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBiOOBoeOBlCzjgZfjgpPjgYTjgaENCivjgoTjgb7jgZbjgY0s44KI44GX44Gy44KNDQor44KA44KN44KELOOBpuOBpOOBig0KK+OBjeOCgOOCiSzjgobjgY3jgYoNCivjgarjgYvjga/jgoks44G144G/44GKDQor44GG44GI44GuLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgZHjgpPjgZ8NCivjgaTjgYvjgoLjgags44Gf44Gg44GXDQor44GK44GW44GNLOOBqOOBiuOCiw0KK+OBguOBl+OBi+OCjyzjgoTjgZnjgZfjgZINCivjga3jgY7jgZcs44Go44KC44Gu44KKDQor44GN44KF44GG44GuLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBqOOBhizjgojjgZfjgbLjgacNCivjgYTjga7jgYbjgYgs44GL44Ga44Gy44GTDQor44GN44GP44Ga44G/LOOBvuOBleOCiw0KK+OBvuOBpOOCguOBqCzjgaDjgYTjgZXjgY8NCivjga/jgoTjgZcs44Gf44GL44GKDQor44G144GP44GK44GYLOOBi+OCk+OBmA0KK+OBquOCi+OBmyzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44G+44GV44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OBv+OBjSzjga7jgbbjgYoNCivjgarjgYvjgZ/jgass44KI44GX44GC44GNDQor44G/44KE44GM44KPLOOBteOBv+OBruOCig0KK+OBguOCiuOCiOOBlyzjgYTjgY/jgYoNCivjgZfjgonjgYQs44KI44GX44KG44GNDQor44G/44Gq44G/LOOBvuOBleOCiOOBlw0KK+OBqOOCiuOBlOOBiCzjgbXjgZjjgYoNCivjgZPjgZnjgYws44Gf44Gg44GXDQor44Gk44GY44GuLOOBi+OBmuOBsuOCjQ0KK+OBiuOBkOOCiSzjgoTjgZnjgbLjgo0NCivjgYrjgorjgZ8s44Gh44GL44GXDQor44GC44G/44KC44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBleOBiyzjgajjgYrjgosNCivjga/jgoTjgZcs44KI44GX44Gy44KNDQor44G/44Gq44G/LOOBv+OBruOCiw0KK+OCiOOBl+OBoCzjgajjgZfjgbLjgZMNCivjgavjgZfjga/jgoks44KI44GX44GKDQor44GK44GP44GM44KPLOOBvuOBleOBqOOCgg0KK+OBpOOBmCzjgabjgovjgobjgY0NCivjgarjgYvjgYQs44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBpOOBkOOBig0KK+OBq+OBn+OBquOBhCzjgZHjgpPjgZQNCivjgY/jganjgYYs44Gy44KN44GXDQor44GV44GELOOBn+OBi+OBig0KK+OBl+OCh+OBhizjgb7jgarjgbYNCivjgYTjga7jgYbjgYgs44GL44GK44KLDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBn+OBrQ0KK+OBquOBi+OBq+OBlyzjgZfjgpPjgZgNCivjgYrjgYrjgoLjgoos44Gy44KN44KG44GNDQor44GP44G+44GM44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBguOBhCzjgajjgojjgYvjgZoNCivjga/jgY7jga/jgoks44GL44Ga44Gu44KKDQor44Gf44GM44GfLOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgb/jgaHjgYoNCivjgY/jgbws44Gc44KT44GV44GPDQor44GL44Gq44GG44GhLOOBl+OCk+OChA0KK+OBq+OBl+OBiizjgbLjgafjgY0NCivjgYTjgarjgaAs44Gy44Gn44Gu44G2DQor44Gf44GR44GE44GhLOOBl+OCk+OBmA0KK+OBguOCk+OBqeOBhizjgb7jgZPjgagNCivjgb7jgaTjgarjgb8s44GX44KH44GG44GE44GhDQor44G/44Gq44GP44GhLOOBl+OCheOBhuOBleOBjw0KK+OBi+OBquOBhuOBoSzjgarjgYrjgY0NCivjgYrjgYrjgYTjgoTjgb4s44Gu44G844KLDQor44G+44GZ44GgLOOBl+OCh+OBhuOBmA0KK+OChOOBjuOBr+OCiSzjgajjgZfjgYoNCivjgb/jgZrjga4s44GR44KT44GYDQor44Gu44G244GP44G/LOOBqOOBiuOCiw0KK+OBquOBoCzjgZ/jgYvjgYLjgY0NCivjgZ/jgZHjgZ/jgass44G144Go44GXDQor44GE44G+44GE44Ga44G/LOOBhOOBoeOCjeOBhg0KK+OBhOOBquOBoCzjgYTjgZXjgYoNCivjgYTjgb7jgass44Gf44GL44G144G/DQor44GK44GNLOOBvuOBleOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgojjgYbjgZnjgZENCivjgYTjgYTjgYos44Gy44KN44Go44KCDQor44GE44GX44GgLOOBi+OBpOOChA0KK+OBsuOCieOBnyzjgZPjgYbjgZgNCivjgYTjgZ/jgYzjgY0s44GL44Ga44Gy44KNDQor44KE44G+44G144GPLOOBleOBqOOBlw0KK+OBleOBqOOBhizjga7jgorjgYoNCivjgarjgYvjgYzjgo8s44KK44KH44GGDQor44GK44GV44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBhOOBi+OCjyzjga7jgbbjgYLjgY0NCivjgYvjgZfjgYos44KI44GX44Gy44KNDQor44G744GX44GW44GNLOOBl+OBkuOBjQ0KK+OBm+OBjeOBmOOBvizjgZPjgYbjgZgNCivjgYrjgYvjgb7jgYgs44Gu44KK44Gy44KNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBk+OBhOOBpyzjgZ/jgYvjgarjgYoNCivjgZ/jgYvjga/jgZcs44Gb44GE44GYDQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OBpuOCieOBl+OBvizjgZ/jgY/jgYoNCivjgoTjgb7jgZfjgZ8s44G+44GV44GC44GNDQor44Gu44GbLOOBsuOBp+OChuOBjQ0KK+OBvuOBpOOBvuOBiCzjgYLjgobjgb8NCivjgojjgZfjgZ8s44Gu44KK44GC44GNDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBr+OCiSzjga7jgorjgbLjgZMNCivjgoTjgb7jgYbjgaEs44GR44KT44GYDQor44GL44G/LOOBi+OBpOOChuOBjQ0KK+OBmeOBjOOBhCzjgZ/jgaTjgobjgY0NCivjgZ/jgYvjga4s44KI44GX44Gu44G2DQor44Go44GT44KNLOOCiOOBl+OBsuOCjQ0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjgZXjgZXjgY0s44GC44Gk44KG44GNDQor44Gk44Gu44GgLOOBpuOBpOOCjeOBhg0KK+OChOOBvuOBleOBjSzjgabjgaTjgoQNCivjgb/jgYbjgoks44GL44Gk44G/DQor44GK44Gg44GO44KKLOOBguOBpOOBkw0KK+OBr+OChOOBlyzjgZfjgpPjgaHjgofjgYYNCivjgajjgb/jgYrjgYss44Gy44Go44GXDQor44GE44GQ44GhLOOBm+OBhOOBhOOBoQ0KK+OBk+OCk+OBqSzjgZ/jgYvjgZcNCivjgY/jgbws44Gy44Gn44GKDQor44GP44KJ44Gs44GNLOOBjeOCh+OBhuOBkw0KK+OBqOOBv+OBvuOBpCzjgarjgYrjgZMNCivjgY/jgo3jgYvjgo8s44G+44GV44GC44GNDQor44Gu44GW44KPLOOBmeOBv+OBig0KK+OBi+OCj+OBleOBjSzjgY/jgavjgYLjgY0NCivjgZ/jgZHjgaAs44GL44Gk44KEDQor44GX44Gu44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OBteOCi+OChCzjgZfjgZLjgosNCivjgarjgYvjgoDjgoks44GV44Go44KLDQor44KE44GY44G+LOOBqOOBiuOCiw0KK+OBq+OBl+OBjOOBjSzjgY3jgojjgZcNCivjgarjgYvjgYzjgo8s44Gd44GGDQor44Gy44KJ44KE44G+LOOBl+OCheOCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgoDjgaTjgbLjgo0NCivjgojjgZfjgoDjgoks44KG44GG44GYDQor44Gk44GgLOOBn+OBi+OChuOBjQ0KK+OBi+OBpOOCieOBhCzjgo/jgZ/jgosNCivjgb/jgarjgYQs44Go44GX44GL44GaDQor44Gf44GN44GQ44GhLOOBi+OBmuOBig0KK+OCj+OBkeOBuSzjgojjgZfjgbLjgo0NCivjgavjgZfjgYvjgo8s44G+44GV44KEDQor44GX44KJ44GM44GNLOOBsuOCjeOBguOBjQ0KK+OBsOOBsCzjgb7jgZXjgYvjgZoNCivjgYLjgYvjgoos44KK44KH44GG44GYDQor44GC44G5LOOBn+OBj+OChA0KK+OBi+OBhCzjgY/jgavjgbLjgo0NCivjgYrjgYrjgoLjgoos44Gy44Gn44GL44GkDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBquOBjOOBleOCjyzjgbLjgajjgZcNCivjgZXjgo/jgaAs44GI44G/44GTDQor44GC44Ga44G+LOOBruOBtuOChuOBjQ0KK+OBiuOBrizjgbLjgafjgY0NCivjgYvjgo/jgavjgZcs44Gu44G244Gy44GnDQor44G+44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBguOCiuOChOOBvizjgobjgYbjgZgNCivjgavjgZfjgYvjgo8s44GN44KI44GXDQor44GC44Gk44G/LOOBl+OCheOBhuOBmA0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgbLjgo3jgZ8s44Go44GX44KEDQor44G744GL44Ge44GuLOOBi+OBmuOBqA0KK+OBu+OBl+OBrizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G+44GT44GoDQor44GC44GM44GfLOOBk+OBhuOBmA0KK+OBvuOCi+OBiizjgojjgZfjgobjgY0NCivjgZPjgYTjgacs44Gy44KN44GC44GNDQor44GL44G/44KA44KJLOOBvuOBleOBsuOBpw0KK+OBleOBhOOBqOOBhizjgarjgYrjgY0NCivjgbXjgY/jgb/jgaQs44GC44Gk44GXDQor44Gy44KJ44KE44G+LOOBsuOBi+OCiw0KK+OBleOBhOOBqOOBhizjgabjgaTjgoQNCivjgYTjgZHjgYos44G/44Gu44KLDQor44G144KL44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBhOOBoCzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZbjgY0s44KC44Go44Gy44KNDQor44KI44GX44GgLOOChOOBmeOChuOBjQ0KK+OBjeOBj+OBnyzjgYjjgorjgZMNCivjgaHjgbAs44Gm44Gk44GKDQor44Go44KK44KE44G+LOOCiuOBpOOBig0KK+OBiOOBluOCjyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgYrjgYrjgbAs44KI44GX44Gf44G/DQor44KE44G+44KC44GoLOOBiuOBleOCgA0KK+OBq+OBl+OBi+OCjyzjgb7jgZXjga7jgbYNCivjgYjjgpPjgaks44G+44GV44Gv44KLDQor44G144GP44GELOOBiuOBleOCgA0KK+OBr+OBvuOBrizjgojjgYbjgYTjgaENCivjgY3jgZ/jga/jgoks44GR44KT44GY44KH44GGDQor44GV44Go44GGLOOChuOBjeOBsuOCjQ0KK+OBvuOBpOOBiizjgb7jgZXjgbXjgb8NCivjgajjgojjgZ8s44Gy44Gn44KEDQor44Gy44KJ44KC44GoLOOBqOOBl+OBsuOBpw0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgb7jgaAs44G+44KG44G/DQor44GE44KP44GL44G/LOOBv+OBruOCiw0KK+OBj+OBvCzjgabjgaTjgYoNCivjgYjjgpPjgaks44GL44Ga44Gy44KNDQor44GL44GS44KE44G+LOOBvuOBleOBruOCig0KK+OBq+OBhOOChCzjgajjgoLjgobjgY0NCivjgZPjgYbjgaEs44KG44GG44GZ44GRDQor44GC44Gg44GhLOOBl+OBkuOChuOBjQ0KK+OBr+OChOOBlyzjgZfjgoXjgpPjgZgNCivjgarjgYvjga4s44G+44GT44GoDQor44GE44GX44Gv44G+LOOBvuOBleOBsuOCjQ0KK+OBk+OBj+OBvCzjgorjgoXjgYbjgYTjgaENCivjgYvjgo/jga4s44Gv44GY44KBDQor44Gq44GL44GY44G+LOOBruOCiuOBsuOBkw0KK+OBn+OBhOOCiSzjgaTjgojjgZcNCivjgZ/jgZHjgY4s44KK44Gk44GKDQor44KC44KK44GX44G+LOOBqOOCguOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjga7jgZDjgaEs44Gy44KN44GNDQor44GC44KJ44GNLOOChOOBmeOBpuOCiw0KK+OBguOCiSzjgbLjgo3jgZcNCivjgYTjgajjgYYs44Gq44GK44GTDQor44Gv44KE44GV44GLLOOBteOBqOOBlw0KK+OBk+OBpOOBiyzjgb7jgZXjgYvjgZoNCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44GE44KP44GfLOOBn+OBi+OBlw0KK+OBvuOBiOOBoCzjgojjgZfjgYoNCivjgbvjgZ3jgYvjgo8s44G+44GV44Gy44KNDQor44GC44KJ44GELOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBj+OCiSzjgYvjgpPjgZgNCivjgZ/jgZHjgZPjgZcs44GC44Gk44GXDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgYvjgaTjgajjgZcNCivjgYTjgajjgYYs44KI44GX44Gk44GQDQor44GE44Ga44G/LOOBi+OBreOBv+OBpA0KK+OBlOOBqOOBhizjgZ3jgYbjgZ/jgo3jgYYNCivjgYrjgYrjgaTjgbws44GL44Ga44G/DQor44GL44G/44GT44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOBhCzjgZXjgajjgZMNCivjgb/jgoTjga/jgoks44G+44GV44GXDQor44GC44KP44GYLOOBguOBpOOBig0KK+OBhuOBl+OCjeOBoCzjgYvjgYrjgosNCivjgoLjgorjgYTjgZrjgb8s44Gv44GY44KBDQor44Gq44GM44GuLOOBguOBpOOBlw0KK+OBn+OBquOBiyzjgoDjga3jgobjgY0NCivjgbXjgYvjgYgs44GR44KT44GYDQor44G144KL44KELOOBv+OBleOBig0KK+OBv+OBmuOBsuOBjSzjgojjgZfjgYoNCivjgY/jgbws44G/44Gk44KI44GXDQor44Gf44GQ44GhLOOBteOBv+OBguOBjQ0KK+OBquOBi+OBiizjgaTjgY7jgagNCivjgoTjgb7jgZfjgZ8s44KG44GG44GE44GhDQor44GP44KN44GNLOOBl+OCh+OBhuOBlA0KK+OBvuOBpOOBoCzjgZHjgpPjgYTjgaENCivjgYrjgaDjgZjjgb4s44Gq44G744G/DQor44G744KKLOOChuOBjeOBig0KK+OBn+OBq+OBkOOBoSzjgaTjga3jgoTjgZkNCivjgYLjgonjgYQs44Go44GX44Gu44KKDQor44GU44Go44GGLOOBpuOBpOOBmA0KK+OBqOOBreOBjOOCjyzjga7jgorjgobjgY0NCivjgoLjgorjgZ8s44Gf44GL44GTDQor44G144KL44GL44KPLOOBl+OBkuOBig0KK+OChuOBjSzjgojjgZfjga7jgooNCivjgZfjgonjgYTjgZcs44Gf44GL44Gy44KNDQor44GE44GR44KELOOBleOBoeOBkw0KK+OCj+OBn+OBquOBuSzjgZ/jgaTjgYrjgY0NCivjgZ/jgavjgZDjgaEs44GT44GG44GE44GhDQor44G+44GZ44GgLOOBl+OBruOBtg0KK+OBv+OBmuOBkOOBoSzjgZjjgo3jgYYNCivjga/jgoTjgb/jgZos44KG44G/DQor44G744GL44KKLOOBguOBjeOBsuOBkw0KK+OBhOOBl+OBhCzjga7jgorjgbLjgZMNCivjgZfjgonjgYTjgZcs44G+44GV44Gy44GTDQor44GX44KC44GL44KP44KJLOOBl+OBkuOBsuOCjQ0KK+OCguOCiuOCguOBqCzjgajjgoLjgZMNCivjgYTjgajjgYYs44Gy44KN44GXDQor44GK44GK44KELOOBkeOBhOOBmA0KK+OBv+OCiOOBlyzjgb/jga7jgosNCivjgZfjgbDjgZ8s44Gu44KK44Gy44KNDQor44Gf44KT44GW44KTLOOBqOOCguOBsuOBkw0KK+OBhOOCj+OBleOBjSzjgbLjgafjgYvjgZoNCivjgbXjgY/jgYQs44GV44Go44GXDQor44KC44KK44Gw44KE44GXLOOBi+OBmuOChA0KK+OChOOBvuOBoCzjgbLjgafjgb8NCivjgbXjgZjjgo/jgoks44GV44Go44GXDQor44Gq44Gk44KBLOOChOOBmeOBqA0KK+OBl+OBruOBr+OCiSzjgbLjgo3jgZcNCivjgYrjgZXjgaAs44G+44GV44GXDQor44G144GY44Gv44KJLOOBn+OBkeOBsuOBqA0KK+OBteOBmOOCguOBqCzjgbLjgo3jgb8NCivjgY3jga4s44KI44GX44GKDQor44KE44G+44KC44GoLOOCguOBqOOBjQ0KK+OBhOOBl+OBmOOBvizjgoLjgorjgbLjgo0NCivjgYTjgYws44GC44GN44KJDQor44Gq44GL44GILOOBoOOBhOOBmA0KK+OChOOBrizjgobjgYbjgZgNCivjgYvjgarjgb/jgaQs44GK44GV44KADQor44GZ44Ga44GNLOOBpuOCi+OBig0KK+OBn+OBi+OBoCzjgorjgofjgYbjgZMNCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44GK44GK44Gk44G8LOOBv+OBpOOBr+OCiw0KK+OBmeOBjizjgZ/jgYvjgZcNCivjga/jgoTjgZfjgZDjgaEs44Gy44KN44GXDQor44Gm44KJ44GX44GfLOOBi+OBmuOBig0KK+OBl+OCguOChOOBvizjgojjgZfjgbXjgb8NCivjgb/jgoTjgZbjgY0s44G/44Gk44KLDQor44KC44KKLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgajjgZcNCivjgafjgYLjgYQs44GN44KI44Gy44KNDQor44G744KKLOOBqOOBl+OChuOBjQ0KK+OBguOBreOBluOBjSzjgYvjgZrjgYoNCivjgY/jgbzjgZ8s44Gf44GL44Gy44KNDQor44GULOOBvuOBleOBqOOBlw0KK+OBsuOBjeOBoCzjgbLjgo3jgZcNCivjgZXjgYvjgZDjgaEs44Gu44KK44GC44GNDQor44KI44GX44GELOOBn+OBi+OBlw0KK+OBjeOBn+OBr+OCiSzjgYvjgaTjgagNCivjgbXjgZjjgYQs44G/44Gp44KKDQor44Gq44KB44GNLOOChOOBmeOBkw0KK+OCiOOBl+OCgOOCiSzjgajjgZfjgYoNCivjgZ/jgoDjgoks44Gg44GE44GZ44GRDQor44GG44G/44GuLOOBsuOCjeOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgojjgZfjgoLjgags44Gf44GR44GXDQor44Gt44KC44GoLOOCiOOBl+OBteOBvw0KK+OBv+OChOOBluOBjSzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgoLjgoos44Gh44GI44GTDQor44GP44G+44GM44GELOOBj+OBq+OBig0KK+OBlOOBhuOBoCzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgZ8s44GT44GG44GE44GhDQor44GP44Ga44G/LOOBleOBoeOBkw0KK+OBquOBpOOBhCzjgYTjgY/jgYoNCivjgZfjgb7jgaAs44Gy44Gn44GKDQor44GK44GK44Gk44GNLOOBi+OBmuOBsuOCjQ0KK+OBvuOBv+OChCzjgbLjgo3jgYvjgZoNCivjgZXjgajjgYYs44GR44KT44GYDQor44GT44Gw44KKLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjSzjgoTjgZnjgobjgY0NCivjgYvjga3jgZMs44G+44GV44GNDQor44GK44GuLOOBqOOBiuOCiw0KK+OBiuOBiuOChOOBvizjgojjgZfjgYgNCivjgb7jgajjgbAs44G+44GV44Gv44KLDQor44GE44Gf44GP44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBoOOBl+OBvizjgYvjgaTjgo3jgYYNCivjgZfjgYTjgY0s44Gu44KK44GTDQor44GX44Gw44GfLOOBi+OBmuOBsuOCjQ0KK+OBi+OBpOOCiSzjgaHjgYvjgZMNCivjgYLjgonjgYQs44KI44GX44Gu44KKDQor44GV44GE44Go44GGLOOBpOOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjga7jgooNCivjgYbjgYjjgoTjgb4s44G/44Gk44Gq44KKDQor44G+44GuLOOBl+OCk+OBhOOBoQ0KK+OBv+OBleOBiizjgarjgYrjgY0NCivjgZ3jga7jgbks44GN44G/44KG44GNDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OChOOBn+OBqyzjgY3jgofjgYbjgZMNCivjgoDjgZ8s44G+44Gq44G2DQor44G+44KL44KE44G+LOOBteOBv+OBguOBjQ0KK+OBteOBoCzjgZ/jgYvjgojjgZcNCivjgZPjgbDjgoTjgZcs44GR44GE44GE44Gh44KN44GGDQor44KP44Gf44Gq44G5LOOBi+OBiuOCiw0KK+OBiuOBoCzjgb7jgZPjgagNCivjgYrjgbXjgaEs44G+44GV44GKDQor44Gf44Gq44GLLOOBl+OBkuOBig0KK+OBleOCj+OBjSzjgb7jgZXjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44Gv44GO44GuLOOBruOBvOOCiw0KK+OBhuOBl+OChOOBvizjgZ/jgYvjgZcNCivjgYrjgY/jgbLjgoks44Gu44G244Gy44KNDQor44KI44GX44GE44GRLOOBleOBquOBiA0KK+OBk+OCk+OBrizjgobjgYbjgZMNCivjga7jgaAs44Go44GX44GKDQor44GI44KT44GpLOOBqOOBl+OChuOBjQ0KK+OBmeOBmuOBjSzjgb/jgaTjgYoNCivjgZ/jgarjgYss44KI44GX44Gy44KNDQor44GN44GpLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgb7jgZXjga7jgbYNCivjgbXjgZjjgo/jgoks44Go44GX44Gv44KLDQor44Gv44Gb44GM44KPLOOBguOBjeOCiQ0KK+OBvuOBmeOCguOBqCzjgZHjgYTjgZgNCivjgYvjgYQs44Gy44Go44GXDQor44Gf44GL44Gv44GfLOOBqOOCguOBkw0KK+OBsuOBp+OBl+OBvizjgYvjgZrjga7jgooNCivjgZ/jgYvjgoTjgb4s44GX44GS44GNDQor44G/44KE44GNLOOChuOBn+OBiw0KK+OBteOBmyzjgYvjgZrjgbLjgZMNCivjgoLjgoLjgYQs44Gy44KN44KE44GZDQor44Gk44KG44GNLOOBv+OBpOOBkA0KK+OBi+OCj+OBr+OCiSzjgZfjgZLjgosNCivjgb7jgaTjgYQs44GC44GN44Gy44KNDQor44Gv44Gq44KPLOOBvuOBleOBsuOCjQ0KK+OBsuOCj+OBoCzjgabjgaTjgoQNCivjgb7jgZnjgYQs44Gf44GL44GXDQor44GL44Go44GGLOOBn+OBoOOBpOOBkA0KK+OBn+OBkeOBvizjgbXjgb/jgYoNCivjgZfjgonjgYTjgZcs44KI44GX44GKDQor44G144KL44GL44KPLOOBl+OCh+OBhuOBhOOBoQ0KK+OBpuOBmOOBvizjgYLjgY3jgokNCivjgYLjgY3jgoLjgags44GV44Go44GXDQor44GZ44GO44KE44G+LOOBsuOCjeOBguOBjQ0KK+OBquOCk+OBtizjgobjgY3jgbLjgo0NCivjgaTjgZjjga4s44GR44KTDQor44Gm44KJ44GV44GLLOOBhOOBo+OBl+OCkw0KK+OBleOBi+OBhCzjgbLjgafjgYLjgY0NCivjgY/jgbws44GC44Gk44GXDQor44G+44KL44Gf44GrLOOBvuOBleOChA0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgb7jgaTjgYbjgoks44GX44KT44KEDQor44Gf44Gq44GLLOOBm+OCk+OBmA0KK+OChuOBluOCjyzjgZ/jgYvjgYLjgY0NCivjgZ/jgYvjga/jgZcs44GL44Ga44KEDQor44GK44GK44GwLOOBl+OCk+OBlA0KK+OBvuOBiOOBi+OCjyzjgajjgYrjgosNCivjgavjgo8s44Go44GK44KLDQor44GL44KP44KA44KJLOOBvuOBleOBjQ0KK+OBk+OBhOOBkSzjgYvjgZrjgYgNCivjgY/jgorjgZfjgZ8s44Go44GX44KG44GNDQor44Gy44KN44GbLOOBiuOBleOCgA0KK+OBk+OCk+OBrizjgZ/jgY/jgoQNCivjga/jgZvjgYzjgo8s44Gy44KN44Gy44GTDQor44GE44Go44GGLOOBsuOCjeOBlw0KK+OBjeOBluOBjSzjgYLjgaTjgZcNCivjgYjjgarjgb8s44Gu44KK44GC44GNDQor44Gk44GL44Gq44GLLOOBteOBv+OBguOBjQ0KK+OBleOBi+OCguOBqCzjgbLjgo3jgb8NCivjgb7jgaTjgbDjgoks44Gy44Gn44GKDQor44Gm44KJ44GELOOBl+OBkuOBguOBjQ0KK+OBiuOBl+OBnyzjgZ/jgYvjgojjgZcNCivjgZ/jgarjgYss44KI44GX44GC44GNDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OBhOOBl+OBkOOCjSzjgojjgZfjgagNCivjga/jgZfjgoLjgags44GZ44G/44GTDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgbXjgovjgYvjgo8s44Go44GX44Gu44G2DQor44KE44G+44GgLOOBsuOCjeOBqA0KK+OBhOOBj+OBnyzjgZfjgofjgYbjgZMNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44KP44Gf44Gq44G5LOOBi+OBmuOBsuOCjQ0KK+OBi+OBkyzjgZ/jgaTjgZgNCivjgb7jgZnjgaAs44Gy44KN44Gu44KKDQor44GL44G/44GYLOOBn+OBi+OChuOBjQ0KK+OBhOOBr+OCiSzjgYvjgZrjgbLjgo0NCivjgYLjgZXjgb8s44GL44Ga44Gy44KNDQor44Gq44GL44GY44G+LOOBn+OBi+OBlw0KK+OBk+OBn+OBjSzjgabjgaTjgoQNCivjgYvjgo/jgoLjgags44GI44GE44GE44GhDQor44GL44KP44GX44G+LOOBi+OBmuOBsuOBkw0KK+OBguOBmuOBvizjgorjgoXjgYbjgZgNCivjgarjgYvjga4s44GX44KF44GG44GE44GhDQor44Gy44KJ44GuLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgosNCivjgbXjgYvjgoQs44KC44KC44GNDQor44GK44GK44GwLOOBn+OBkeOBlw0KK+OBleOBj+OCieOBhCzjgbLjgo3jgYLjgY0NCivjgZXjgYvjgYQs44GE44Gj44Gb44GEDQor44GC44GK44GNLOOBn+OBj+OBig0KK+OCiOOBl+OBoCzjgoTjgZnjgZcNCivjgZPjga/jgZcs44G+44GV44Gu44KKDQor44G+44Gk44GG44KJLOOBpuOBo+OBuuOBhA0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgavjgZfjgY3jgYrjgoos44Go44KC44GTDQor44G/44KI44GXLOOCiOOBl+OBsuOBlQ0KK+OBk+OBmeOBjizjgaTjgYvjgZUNCivjgZXjgajjgYYs44Gf44GL44GE44GhDQor44G144GY44GELOOCiOOBl+OBsuOCjQ0KK+OBteOBquOBoCzjgYvjgZrjgbLjgZMNCivjgZnjgY7jgZ8s44Go44GK44KLDQor44GX44KH44GG44GgLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOBl+OBnyzjgajjgZfjgYoNCivjgbLjgoks44Gy44Go44GXDQor44GX44KT44Gf44GPLOOBsuOCjeOChuOBjQ0KK+OBsuOBjOOBl+OBoCzjgajjgZfjgobjgY0NCivjgY/jgorjgZ8s44G+44GV44KI44GXDQor44GE44Gq44GgLOOChuOBhuOBleOBjw0KK+OBq+OBl+OBrizjgajjgZfjgoQNCivjgYTjgZHjgZjjgoos44Gu44KK44GC44GNDQor44Gq44GL44KA44KJLOOBquOBiuOBsuOCjQ0KK+OBquOBi+OBi+OBqSzjgojjgYbjgYTjgaENCivjgYTjga7jgb7jgZ8s44Gy44KN44GXDQor44Gk44KL44G/LOOBsuOCjeOCiOOBlw0KK+OBsuOCieOCguOBqCzjgZfjgZLjgY0NCivjgb/jgojjgZcs44G144G/44GC44GNDQor44GC44KP44GuLOOBn+OBi+OBlw0KK+OBguOBjeOBnyzjgojjgZfjgYgNCivjgbLjgYzjgZfjgoTjgb4s44Gf44GR44GXDQor44GV44Go44GGLOOBsuOCjeOBvw0KK+OBi+OCj+OBleOBjSzjgZHjgYTjgYTjgaENCivjgb7jgovjgoTjgb4s44Gv44Gk44GKDQor44GZ44Gq44GMLOOBsuOBp+OBjQ0KK+OBhOOBvuOBhCzjgZ/jgb/jgZMNCivjgbXjgZjjgYQs44KG44GN44GKDQor44G+44GN44GfLOOBv+OBpOOBig0KK+OBhOOBqOOBhizjgZ/jgaTjgZcNCivjgZ/jgYvjga/jgZcs44KK44KF44GG44GE44GhDQor44GN44KK44G+LOOBl+OCk+OBmA0KK+OBiuOBiuOBq+OBlyzjgajjgoLjgobjgY0NCivjgb/jga7jgZfjgb4s44Gf44GR44Gy44GoDQor44GV44Go44GGLOOBi+OBmuOBn+OBiw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgobjgY0NCivjgb/jgZ/jgoDjgoks44G+44KG44G/DQor44GV44Go44GGLOOBl+OBkuOCiw0KK+OBqOOBvuOBpCzjgZ/jgb7jgb8NCivjgYjjgbPjgZfjgb4s44KE44GZ44KG44GNDQor44KP44GgLOOBi+OBmuOChA0KK+OBmeOBmuOBjSzjgY3jgojjgZ/jgYsNCivjgZnjgYzjga/jgoks44G/44Gk44KLDQor44Gf44GQ44GhLOOBsuOCjeOCgA0KK+OBqOOBjOOBlyzjgb7jgZXjgbLjgZMNCivjgarjgYzjga/jgoks44GV44Go44KLDQor44KE44G+44KC44GoLOOBkeOBhOOBkw0KK+OBn+OBkeOBoCzjgb7jgZXjgobjgY0NCivjgZXjgajjgYYs44G/44Gu44KLDQor44Gf44GL44G/44KELOOBsuOBp+OBruOBtg0KK+OBguOBiuOBjSzjgZ/jgYvjgbLjgo0NCivjgZPjgoTjgY4s44GZ44G/44Gf44GLDQor44GK44Gu44GW44GNLOOCiuOCh+OBhuOBmeOBkQ0KK+OCguOCiuOBnyzjga7jgorjgZMNCivjgZXjgY/jgonjgY4s44KG44G/44GTDQor44GK44GL44GV44GLLOOBsuOCjeOBruOCig0KK+OChOOBvuOBkOOBoSzjgZPjgZnjgZENCivjgYvjgo/jgZfjgb4s44KI44GX44Gu44KKDQor44GE44KP44GuLOOBi+OBmuOBruOCig0KK+OBlOOBhuOBkyzjgoTjgZnjga/jgosNCivjgoLjgorjgZ8s44KE44GZ44GYDQor44GX44GS44Gf44GLLOOBquOBiuOBjQ0KK+OBpuOBmuOBiyzjgYjjgYTjgZXjgY8NCivjgYrjgZ8s44Gk44KI44GXDQor44KE44G+44GgLOOBvuOBleOBr+OCiw0KK+OBteOBi+OBoCzjgbLjgZXjgobjgY0NCivjga/jgZvjgbks44KC44Go44GC44GNDQor44G+44Gk44GuLOOBguOBpOOBlw0KK+OBpOOBmOOBi+OCjyzjgZHjgpPjgYTjgaHjgo0NCivjgb7jgaTjgoLjgags44GL44Gk44G/DQor44Gb44Gu44GKLOOBr+OBmOOCgQ0KK+OBruOCgOOCiSzjgZXjgajjgZcNCivjgYLjgonjgYQs44Go44KI44GX44GSDQor44GK44GQ44KKLOOBmeOBv+OBiA0KK+OBmOOCk+OBrizjgb7jgZXjgbLjgo0NCivjgbLjgo3jgZrjgb8s44G/44Gu44KLDQor44G+44Gk44GELOOBmeOBmeOCgA0KK+OBl+OBsOOBluOBjSzjgYLjgaTjgZcNCivjgYTjga7jgYbjgYgs44Gy44Gn44GKDQor44Gf44Gq44GLLOOBsuOBp+OBi+OBmg0KK+OBleOBnSzjgarjgYrjgbXjgb8NCivjgZfjgonjga/jgb4s44GC44GN44Gy44GTDQor44Gf44Gq44GLLOOBquOBiuOBjQ0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgYzjgb8s44KI44GX44GC44GNDQor44GX44Gw44GfLOOBpuOBo+OBuuOBhA0KK+OBruOBkOOBoSzjgYLjgobjgb8NCivjgYTjgaHjgbAs44GT44GG44GYDQor44GL44KP44GQ44GhLOOBsuOBp+OBkw0KK+OCiOOBl+OBvyzjgbLjgafjgb8NCivjgbXjgZjjgYvjgo8s44Gy44KN44KG44GNDQor44GL44Go44GGLOOBpOOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgYTjgZXjgoANCivjgbXjgZjjgZXjgo8s44GL44Ga44GKDQor44G/44Ga44Gf44GrLOOBqOOCguOBteOBvw0KK+OBm+OBjeOBkOOBoSzjgojjgZfjgo3jgYYNCivjgb7jgYjjgYvjgo8s44KA44Gk44G/DQor44GC44KJ44GELOOCiuOCheOBhuOBmA0KK+OCguOCiizjgZHjgYTjgZ/jgo3jgYYNCivjgZXjgajjgYYs44Gq44GK44GTDQor44GP44KP44GfLOOBl+OCh+OBhuOBhOOBoQ0KK+OBiuOBkOOCiizjgbLjgo3jgZcNCivjgbLjgonjgYQs44GL44Gk44Gy44GTDQor44Gr44GX44KA44KJLOOBteOBv+OBqOOBlw0KK+OBiuOBiuOBj+OCiSzjgbLjgZXjga7jgooNCivjgZ3jga7jgbks44GC44GN44GTDQor44GE44GE44GgLOOChOOBmeOBguOBjQ0KK+OBk+OBkOOBoSzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgoLjgo3jgbvjgZcs44Gy44Gn44GL44GaDQor44Gv44G+44GgLOOBruOCiuOBi+OBpA0KK+OBi+OBquOBluOCjyzjgYvjgZrjgobjgY0NCivjgb7jgaTjgbAs44GX44GS44KLDQor44GE44KP44GfLOOBsuOBp+OBqOOBlw0KK+OBguOBmuOBoSzjgb7jgZXjgosNCivjgZPjgpPjgaks44GE44GV44GKDQor44Gf44GL44Gv44GXLOOCiOOBl+OBig0KK+OBguOBvuOBrizjgbLjgo3jgYLjgY0NCivjgYvjgZ/jgaAs44GK44GV44KADQor44Gf44KB44Gy44KNLOOCguOBqOOBkw0KK+OBvuOBpOOBoCzjgZ/jgYvjgZcNCivjgarjgorjgYTjgZcs44KE44GZ44KI44GXDQor44GK44GN44GfLOOCguOCiuOBv+OBoQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44KG44GG44GYDQor44G+44KT44G9LOOBi+OBpOOBvw0KK+OBhOOBoeOBhCzjgZHjgpPjgZgNCivjgZPjgYTjgacs44Go44KC44GTDQor44Gf44GL44Gv44GXLOOBquOBiuOBkw0KK+OBquOBi+OBjOOCjyzjgYvjgZrjgYoNCivjgYrjga/jgb4s44Gf44GL44GXDQor44Gf44GL44Gv44GfLOOBsuOCjeOBvw0KK+OBk+OBkOOBoSzjgZ/jgYvjgZcNCivjgb/jgoTjgYzjgo8s44GL44Ga44KEDQor44GX44Gw44KE44G+LOOBr+OBmOOCgQ0KK+OBguOCieOBhCzjgoTjgZnjgbLjgo0NCivjgo/jgZ/jgarjgbks44GZ44GZ44KADQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBteOCi+OBr+OBnyzjgb7jgZXjgarjgooNCivjgZ/jgavjgZDjgaEs44Gq44GK44GZ44GRDQor44G744KT44GgLOOBmeOBmeOCgA0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgZ/jgYvjgY0s44Gv44KL44G/44GkDQor44GN44GP44GhLOOBl+OCk+OChA0KK+OBhOOBruOBhuOBiCzjgZPjgYbjgYTjgaENCivjga/jgoks44G+44GV44GKDQor44KE44G+44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OCgOOCieOBi+OBvyzjgajjgoLjgoTjgZkNCivjgbDjgbAs44G+44GV44Gy44GTDQor44Gv44Gb44GM44KPLOOBqOOBl+OBsuOBkw0KK+OBleOBleOBjSzjgYLjgY3jgbXjgb8NCivjgYLjgaTjgZ8s44Gy44Go44G/DQor44Gf44Gh44GL44KPLOOBsuOCjeOBpOOBkA0KK+OBsuOCieOCguOBqCzjgbLjgafjgYLjgY0NCivjgarjgYvjgoDjgoks44Go44GX44KEDQor44Gk44KA44KJLOOBn+OBi+OBig0KK+OBn+OBi+OBr+OBlyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgojjgZPjgoTjgb4s44G/44Gu44KLDQor44GT44Gf44GRLOOBv+OBpOOBig0KK+OBguOCk+OCieOBjyzjgZ/jgYvjgZcNCivjgb/jgZrjga4s44GX44KT44GE44GhDQor44GK44GK44Gs44GNLOOBguOBjeOCiQ0KK+OBleOBi+OBhCzjga/jgZjjgoENCivjgYrjgZ8s44GX44KH44GG44Ge44GGDQor44Gv44KE44GXLOOBruOCiuOBig0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZ/jgarjgYss44Gu44KK44GTDQor44Gv44KL44Gv44KJLOOBqOOBhuOBlA0KK+OBiuOBiuOBpOOBiyzjgb7jgZXjgobjgY0NCivjgY3jgZ/jgYzjgo8s44Gy44Gn44G/DQor44KI44GT44GfLOOBi+OBo+OBuuOBhA0KK+OCiOOBl+OCgOOCiSzjgYLjgaTjgZMNCivjgYrjgYrjgbLjgoks44GX44KT44GE44GhDQor44Gh44KD44GNLOOBl+OBkuOBsuOBpw0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgYTjgaENCivjgZnjgZrjgY0s44GC44GN44Gy44KNDQor44Gh44GL44GW44KPLOOBvuOChuOBvw0KK+OBquOBi+OBmOOBvizjgb7jgZXjga7jgooNCivjgo/jgZ/jgarjgbks44Gf44Gg44GKDQor44GX44GwLOOBmOOCheOCk+OBkw0KK+OBleOBi+OBhCzjgaHjga/jgosNCivjgoTjgb7jgb/jgZXjgYss44Gm44Gk44GKDQor44KI44GX44GM44G/LOOBguOBjeOCiQ0KK+OBsuOCieOBpizjgb7jgZXjgobjgY0NCivjgo/jgY/jgZfjgb4s44Gf44Gg44GXDQor44GC44GV44G+LOOBoeOBi+OCiQ0KK+OBguOBmuOBvyzjgZ/jgaDjgZcNCivjgYTjgarjgYrjgYss44Gy44KN44GL44GaDQor44GV44Gq44GELOOBsuOCjeOBlw0KK+OChOOBvuOBhuOBoSzjgoTjgZnjgbLjgo0NCivjgYTjga/jgoks44Go44GX44Gy44GTDQor44Gf44KE44G+LOOBiuOBleOCgA0KK+OBleOBleOBjSzjgZfjgpPjgoQNCivjgbXjgZjjgYbjgaEs44Go44GX44GC44GNDQor44GG44GX44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBruOBruOCgOOCiSzjgb7jgZXjgZ/jgYsNCivjgavjgZcs44Gf44GR44Gy44KNDQor44GE44GR44GgLOOBsuOCjeOBvw0KK+OBmeOBjuOBn+OBqyzjgbLjgo3jgZcNCivjgYrjgZbjgY0s44Gf44GR44GXDQor44GT44GR44GkLOOBguOBjeOBsuOBlQ0KK+OBleOBqOOBhizjgojjgYbjgZnjgZENCivjgZvjgpPjgbAs44GC44Gk44GXDQor44GC44Ga44G+LOOBsuOBp+OBqA0KK+OBquOBiuOBhCzjgYTjgaHjgo3jgYYNCivjgbvjgZfjga4s44KI44GX44GNDQor44GL44G/44KELOOChOOBmeOBsuOCjQ0KK+OCgOOCieOBnyzjgbLjgajjgZcNCivjgYTjgaHjgb/jgoQs44GR44GE44GTDQor44Gf44KL44GELOOChOOBmeOBguOBjQ0KK+OBr+OBjuOBr+OCiSzjgb/jgo/jgZMNCivjgZ/jgYvjga/jgZcs44Gf44GL44GXDQor44GK44Gh44GC44GELOOBsuOBqOOBlw0KK+OBguOBjeOChOOBvizjgZHjgYTjgZnjgZENCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgb/jgaTjgosNCivjgajjgZPjgo0s44Gq44GK44Gf44GLDQor44GL44GZ44KELOOBiOOBpOOBkw0KK+OBhOOCiuOBiCzjgZfjgoXjgYbjgZgNCivjgoDjgonjgYTjgZcs44G/44Gq44GTDQor44GX44KT44Gf44GrLOOCiuOCheOBhuOBmA0KK+OBhuOBiOOBrizjgb/jgbsNCivjgYbjgaHjgaAs44GT44GG44GYDQor44Gv44Gb44GM44KPLA0KK+OBj+OCjeOBoCzjgovjgorjgZMNCivjgYTjgajjgYYs44GL44Gk44Gy44KNDQor44G744KK44GG44GhLOOBvuOChA0KK+OBiuOBiuOBr+OBnyzjga7jgbbjgYLjgY0NCivjgbvjgpPjgaAs44Gy44Gn44KG44GNDQor44Gq44GL44KA44KJLOOBmeOBmeOCgA0KK+OBleOBiOOBjSzjgYrjgY3jgoLjgooNCivjgYLjgbks44Gm44KL44Gy44GVDQor44GG44KB44GgLOOBn+OBi+OBsuOCjQ0KK+OBrOOBvizjgb7jgZXjgobjgY0NCivjgZ/jgbbjgaEs44KG44Gf44GLDQor44GN44KA44KJLOOBv+OBpOOCiw0KK+OBhuOBoCzjgZ/jgYvjgb8NCivjgYLjgYrjgY0s44Gu44KK44GTDQor44Gq44GL44KA44KJLOOBvuOBleOBqA0KK+OBteOBmOOBk+OBlyzjgZXjgajjgZcNCivjgZnjgb/jgaAs44GN44KI44GXDQor44GP44Ga44Gv44KJLOOBruOBvOOCiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgYLjgonjgZ8s44GV44Go44G/DQor44KN44Gj44GL44GPLOOBvuOChuOBvw0KK+OBhOOBruOBhuOBiCzjgb/jgaTjgb7jgZUNCivjgaTjgZjjgoLjgags44G+44GV44G/DQor44G/44GG44KJLOOBquOBquOBkw0KK+OBreOCguOBqCzjgojjgZfjgYoNCivjgYLjgoHjgb/jgoQs44KI44GX44GL44GaDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBguOBhOOBsCzjga7jgbbjgZ/jgYsNCivjgojjga3jgZbjgo8s44GX44KT44KEDQor44G144GY44KA44KJLOOBl+OCheOBhg0KK+OCiuOCheOBhuOBqCzjgbLjgo3jgb8NCivjgo/jgZ/jgarjgbks44Go44KC44G/DQor44GN44Gf44GM44KPLOOBl+OCk+OBmA0KK+OBguOBn+OCieOBlyzjgajjgoLjgarjgYoNCivjgY3jgY/jgaEs44GY44KF44KTDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgYTjgZHjgaAs44Gy44KN44Gq44KKDQor44KI44GT44GL44KPLOOBv+OBpOOBsuOBkw0KK+OBj+OBleOBpOOBkCzjgZ/jgYvjgZcNCivjgb/jgZrjga4s44GR44KT44GYDQor44Gq44GM44G744KKLOOBk+OBhuOBhOOBoQ0KK+OBmeOBjuOCguOBqCzjgZPjgYbjgZgNCivjgYLjgpPjganjgYYs44Gk44Gt44GKDQor44Gf44GL44KE44Gq44GOLOOBsuOCjeOBteOBvw0KK+OBl+OBsCzjgb7jgZXjgZMNCivjgYvjgb/jgoTjgb4s44GL44Ga44Gy44KNDQor44GK44GK44Gy44KJLOOBsuOCjeOBvw0KK+OBu+OCk+OBvizjga/jgovjgobjgY0NCivjgZ/jgbDjgZ8s44Gu44G244KI44GXDQor44GI44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBhOOBl+OBjOOBjSzjgZvjgYTjgZgNCivjgZfjgbAs44KG44GG44GE44Gh44KNDQor44KE44G+44GgLOOBvuOBleOBsuOBqA0KK+OBn+OBi+OBrizjgYvjgaTjgYoNCivjgojjgZfjgaAs44Gf44Gk44KEDQor44GC44G+44GV44GNLOOBqOOBl+OBsuOBkw0KK+OBiuOBl+OBi+OCjyzjgZfjgpPjgZgNCivjgavjgZfjga4s44G/44G744GTDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBr+OBvuOBiuOBiyzjgajjgoLjgZMNCivjgZXjga4s44Gf44GL44GL44GaDQor44GZ44GI44GX44GSLOOBj+OBq+OBpuOCiw0KK+OBquOBi+OBnyzjgbLjgo3jgb8NCivjgZPjgbDjgoTjgZcs44Gy44Gn44KG44GNDQor44GZ44Gp44GGLOOChOOBmeOBlw0KK+OBpOOBpOOBvyzjgY3jgojjgbLjgagNCivjgb/jgZ/jgass44GT44GG44GYDQor44GE44GX44GgLOOChOOBmeOBteOBvw0KK+OBhOOBhOOBmuOBiyzjgobjgZ/jgYsNCivjgZfjgonjgYQs44KG44G/DQor44KE44G+44GgLOOBhOOCj+OBig0KK+OBpOOBmOOBi+OBqSzjgYvjgZrjgZMNCivjgb7jgaTjgarjgYws44GT44GG44GE44GhDQor44Gf44Gq44GLLOOBi+OBmuOBiA0KK+OBv+OBquOBvyzjgbLjgo3jgZcNCivjgZXjgYvjgYQs44G+44GV44KG44GNDQor44GG44GI44GNLOOBl+OBiuOCig0KK+OBiuOBoCzjgb7jgZXjgYoNCivjgb7jgYjjgaAs44Gb44GE44GYDQor44Gn44GN44Gf44GrLOOBmOOCheOCkw0KK+OBguOBvuOBrizjgZ/jgYvjgbLjgo0NCivjgb/jgoTjgZPjgZcs44GX44GS44GL44GaDQor44GC44KT44GW44GELOOBqOOBl+OBv+OBoQ0KK+OBhuOCgeOBoCzjgobjgY3jgYoNCivjgZ/jgY3jgZbjgo8s44GC44Gk44GXDQor44KA44KJ44Gr44GXLOOBjeOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjgajjgZfjgbLjgZMNCivjgoTjgb7jgZXjgY0s44G+44KKDQor44GK44GK44Gk44GLLOOBv+OBpOOBsuOCjQ0KK+OBguOBv+OBrizjgZ/jgYvjgZcNCivjgoLjgoos44KE44GZ44Gu44KKDQor44Gr44GX44KC44KKLOOBl+OCk+OBmA0KK+OBn+OBkeOBrizjgb7jgZXjgYoNCivjgZfjgpPjgYzjgY0s44KI44GX44GL44GaDQor44G+44Gk44GKLOOCiOOBl+OBjQ0KK+OBteOBmOOBrSzjgb7jgZXjgY0NCivjgYvjgarjgb7jgoss44Gy44KN44KI44GXDQor44GL44Gq44GW44KPLOOBn+OBpOOChuOBjQ0KK+OBl+OBv+OBmizjgorjgoXjgYbjgZgNCivjgo/jgaAs44GE44Gk44GTDQor44GE44GX44GP44KJLOOBn+OBkeOBlw0KK+OBteOBj+OBoCzjgYLjgY3jgbLjgo0NCivjgYbjgYvjgYQs44KI44GX44GTDQor44GC44KK44G+LOOBiuOBleOCgA0KK+OBiuOBiuOBnyzjgZ/jgYvjgYLjgY0NCivjgoLjgorjgZ/jgass44Gf44GL44GXDQor44GC44Gg44GhLOOCiOOBl+OBsuOCjQ0KK+OBj+OBvuOBpyzjgb7jgZXjga7jgooNCivjgYLjgoks44GZ44GZ44KADQor44Gv44GX44KC44GoLOOBqOOBiuOCiw0KK+OBqOOCiOOBiuOBiyzjgb7jgZPjgagNCivjgYrjgYrjgaQs44Gm44Gk44KN44GGDQor44G/44KE44GNLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgYTjgYzjgonjgZcs44Gq44GK44Gk44GQDQor44GK44GK44Gr44GXLOOBjeOCk+OChA0KK+OBl+OCieOBhOOBlyzjgZPjgYbjgYTjgaENCivjgojjgZPjgoEs44KI44GX44GC44GNDQor44G144GY44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBi+OCk+OBrizjgoLjgorjgoTjgZkNCivjgZ/jgaHjgbDjgaos44G/44Gh44GKDQor44KE44G+44GgLOOBoeOBquOBvw0KK+OBguOBleOBvyzjgZfjgZLjgYoNCivjgb/jgYbjgoks44KE44GZ44GXDQor44Go44GP44Gy44KNLOOBsuOCjeOBruOBtg0KK+OCguOCiuOBi+OCjyzjgb7jgZXjga7jgbYNCivjgYTjgajjgYYs44G/44GN44Gy44GVDQor44GV44GuLOOBqOOCguOBv+OBpA0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgZfjgoLjgajjga4s44G+44Gq44G2DQor44G+44GL44G5LOOBleOBqOOBvw0KK+OBhOOBqOOBhizjgZPjgYbjgZgNCivjgaTjgY/jgaAs44GY44KF44KT44GYDQor44KI44GX44GL44KPLOOBv+OBpOOBkA0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgY0NCivjgbvjgpPjgaAs44Gf44GL44KI44GXDQor44Gr44GX44GuLOOChuOBhuOBmA0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GK44GK44Gv44GfLOOBmOOCheOCkw0KK+OBhuOBpOOBvyzjgYvjgZrjgbLjgZMNCivjgYLjgpPjganjgYYs44GL44Ga44Gy44GVDQor44Gv44G+44Gf44GrLOOBv+OBruOCiw0KK+OBjeOBruOBl+OBnyzjgZ/jgYvjgbXjgb8NCivjgYvjgo/jgZss44Go44GX44Gf44GLDQor44GG44GI44GuLOOCiOOBl+OBsuOBkw0KK+OBl+OBi+OBvizjgorjgofjgYbjgZgNCivjgZnjgZrjgY0s44G+44GV44KG44GNDQor44G144GY44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgajjgoLjgbLjgo0NCivjgY3jgZ/jgZbjgY0s44KE44GZ44KG44GNDQor44GC44GE44G5LOOBsuOCjeOBlw0KK+OBiuOBiuOBi+OCjyzjgZXjgYvjgYgNCivjgZ/jgZHjgYQs44KE44GZ44Gv44KLDQor44GL44KJ44Gv44GXLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgb7jgobjgb8NCivjgYLjgonjgYQs44Gy44KN44GXDQor44GE44Gu44GgLOOBruOCiuOChuOBjQ0KK+OBiuOBj+OCgOOCiSzjgYjjgooNCivjgb7jgovjgYQs44GY44KF44KT44GTDQor44Gy44KN44Ga44G/LOOBguOBjeOBsuOBlQ0KK+OCj+OBl+OBmizjgZ/jgY/jgoQNCivjgojjgZfjgoDjgoks44Gf44GL44Gy44GVDQor44GL44Gk44G+44GfLOOBn+OBi+OBlw0KK+OBvuOBmeOBi+OCjyzjgYvjgaTjgokNCivjgYTjgo/jgYos44GX44KF44GG44GYDQor44KE44G+44KC44GoLOOCiOOBl+OBsuOBqA0KK+OBn+OBquOBiyzjgZXjgajjgosNCivjgZ/jgZHjgYbjgaEs44Gu44KK44KG44GNDQor44Gu44Gv44KJLOOBl+OCheOBhuOBnuOBhg0KK+OBteOBquOBr+OBlyzjgYvjgZrjga7jgooNCivjgarjgZTjgZcs44GR44KT44GYDQor44GG44KB44GgLOOBi+OBmuOChA0KK+OBguOBjeOChOOBvizjgbLjgajjgZcNCivjgarjgYvjgaAs44G+44GV44GoDQor44GV44GE44Go44GGLOOCgeOBkOOBvw0KK+OBn+OBr+OCiSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgavjgZfjgb7jgaQs44KI44GX44Gy44KNDQor44Gy44KJ44G/44GkLOOBvuOBk+OBqA0KK+OCgeOBi+OBnyzjgb7jgZXjgosNCivjgZ/jgYvjgb8s44KK44KF44GG44Gf44KN44GGDQor44Gd44Gu44GgLOOBsuOBp+OChuOBjQ0KK+OBv+OChOOBluOBjSzjgobjgYbjgZgNCivjgb7jgovjgoTjgb4s44Gy44Gn44GC44GNDQor44Gk44Gu44GL44KPLOOBvuOBleOBlw0KK+OBr+OCieOBoCzjgYvjgaTjgb8NCivjgaTjgZgs44Gk44GQ44Gy44GTDQor44GE44GM44KJ44GXLOOBqOOBl+OBig0KK+OCiOOBl+OBoCzjgYvjgYrjgooNCivjgZ/jgZHjgYzjgZ8s44GT44GG44GNDQor44GC44G5LOOCiuOCh+OBhuOBmA0KK+OBguOBi+OBrOOBvizjgajjgY/jgbLjgo0NCivjgYvjgo/jgaAs44Gy44KN44GC44GNDQor44Gf44GULOOBsuOCjeOBlw0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgZcNCivjgb7jgaTjgoQs44GS44KTDQor44GE44KP44GfLOOBguOBjeOBsuOBkw0KK+OBvuOBiOOBi+OCjyzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44KM44GE44GTDQor44GX44KN44GX44GfLOOBqOOCguOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgaTjgZjjgYvjgo8s44GY44KF44KT44GE44GhDQor44Gf44Gq44GLLOOCiOOBl+OBteOBvw0KK+OBv+OBquOBvyzjgajjgoLjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44GC44GNDQor44GG44GK44Ga44G/LOOBguOBjeOCiQ0KK+OBmeOBjuOChOOBvizjgbLjgo3jgobjgY0NCivjgaHjgbAs44G+44GV44KG44GNDQor44GL44Gq44GELOOBleOBqOOBlw0KK+OBvuOBpOOChOOBvizjgaTjgojjgZcNCivjgZ/jgYvjga4s44GC44GN44KJDQor44GP44G+44GM44GELOOBk+OBhuOBhOOBoQ0KK+OBn+OBkeOBk+OBlyzjgoDjgaTjgbLjgZUNCivjgbXjgZ/jgbAs44Go44GX44GC44GNDQor44GG44KB44GW44GNLOOBi+OBmuOBn+OBoA0KK+OBiuOBhOOCj+OBkSzjgojjgYbjgZnjgZENCivjgarjgYzjgaTjgYss44G+44Gq44G2DQor44GE44G+44GM44KPLOOBsuOBqOOBvw0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgokNCivjgYrjgYrjgbLjgoks44KG44GG44Gf44KN44GGDQor44G/44KE44Gy44KJLOOBv+OBoeOBguOBjQ0KK+OBruOBkOOBoSzjgZHjgYTjgZ7jgYYNCivjgZnjgY7jgoLjgags44GL44Ga44G144G/DQor44GL44KP44GQ44GhLOOBi+OBpOOBruOCig0KK+OBl+OBruOBmyzjgaTjgojjgZcNCivjgarjgorjgZXjgo8s44KI44GX44Gy44GoDQor44Gy44KN44GbLOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OBluOBjSzjgZnjgZnjgoANCivjgoLjgoos44Gu44G244KG44GNDQor44G144GL44GKLOOCiOOBl+OBkw0KK+OBv+OChOOBmOOBvizjgZHjgYTjgZ7jgYYNCivjgb7jgaTjga4s44GL44Ga44GX44GSDQor44GE44KP44GELOOBl+OBkuOBruOBtg0KK+OBi+OBhCzjgb/jganjgooNCivjgZ/jgarjgYss44GP44Gr44GTDQor44Gh44GwLOOBvuOBleOBvw0KK+OBneOBrizjgbLjgo3jgZcNCivjgojjgZPjgoTjgb4s44GC44GN44Gy44GVDQor44Gf44GL44GX44G+LOOBmOOCheOCkw0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgZgNCivjgb/jgoTjgYvjgo8s44Gg44GE44GZ44GRDQor44KA44KJ44KC44GoLOOBqOOCguOBguOBjQ0KK+OBjeOCgOOCiSzjgZPjgYbjgYTjgaENCivjgb7jgaTjgarjgYws44KG44G/44GTDQor44G144GP44GgLOOBpOOBqOOCgA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgZcNCivjgYLjgYQs44Gy44Gn44GL44GaDQor44G+44GI44GgLOOBsuOBleOBi+OBmg0KK+OBhOOBruOBhuOBiCzjgojjgZfjgb8NCivjgYTjgYTjgaAs44Gf44GL44Gy44GVDQor44G144GY44GELOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgZ/jgY/jgoQNCivjgb7jgaTjgYQs44GG44GE44KKDQor44GE44G+44GgLOOBl+OCk+OBmA0KK+OBv+OChOOBkSzjgYLjgaTjgZcNCivjgZXjgYvjgYQs44Gy44KN44Gy44GVDQor44GL44Go44GGLOOBiuOBleOCgA0KK+OBhOOCj+OBnyzjgarjgYrjgagNCivjgYrjgYrjga4s44G+44GV44KEDQor44GE44Gd44G5LOOBn+OBi+OCiOOBlw0KK+OBiuOChOOBvuOBoCzjgaTjgajjgoANCivjgajjgYbjgZjjgb4s44Gf44Gk44Gy44KNDQor44Gf44GR44GG44GhLOOBi+OBmuOBsuOBkw0KK+OBquOBi+OChOOBvizjgb7jgZnjgYoNCivjgZfjgonjgYTjgZcs44GK44GV44KADQor44GL44Gu44G+44GfLOOBguOBpOOBlw0KK+OBmeOBqeOBhizjgZ/jgYvjgbLjgo0NCivjgZfjgonjgoTjgb4s44GC44GN44Gy44KNDQor44GK44GK44KELOOBvuOBleOCiw0KK+OBv+OBquOBjOOCjyzjgajjgoLjgbLjgo0NCivjgY3jgoDjgoks44Gf44Gk44KEDQor44Gf44GL44GOLOOBoOOBhOOBng0KK+OBleOBqOOBhizjgobjgY3jgYoNCivjgbXjgZjjgo/jgoks44G/44Gk44KLDQor44GE44KC44GoLOOCiOOBhuOBnw0KK+OBhuOBiOOBrizjgajjgoLjgbLjgo0NCivjgY3jgofjgYbjga4s44GR44KT44GUDQor44GN44KK44GGLOOCiOOBl+OBn+OBoA0KK+OBj+OBvOOBnyzjgaTjga3jgYoNCivjgZPjgZvjgY0s44Gf44GL44GXDQor44GZ44GW44GNLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBleOBjSzjgoTjgZnjgbLjgZUNCivjgaTjgYvjgoLjgags44GX44KT44GE44GhDQor44Gq44GE44Go44GGLOOBkeOCk+OBmA0KK+OBquOBi+OBlOOCgSzjgbLjgo3jgYvjgZoNCivjgarjgYvjgoDjgoks44Gy44Gn44KE44GZDQor44Gv44GO44KP44KJLOOBi+OBpOOBvw0KK+OBvuOBpOOCguOBqCzjgYvjgojjgZMNCivjgZPjgpPjga4s44KI44GX44Gy44GVDQor44GV44GE44GQ44GVLOOBn+OCguOBpA0KK+OBu+OCk+OBoCzjgobjgY3jgYoNCivjgZ/jgarjgYss44Gy44KN44GXDQor44G+44Gk44Go44G/LOOBi+OCiOOBkw0KK+OBguOBi+OBleOBiyzjgbLjgo3jgYLjgY0NCivjgZvjgpPjgYzjgpMs44GC44GN44Gy44GnDQor44Gf44GR44GKLOOBruOCiuOBi+OBmg0KK+OCgOOCieOBnyzjgbLjgo3jgobjgY0NCivjgYvjgo/jgZss44Go44KC44Gy44KNDQor44Gr44GX44GW44GNLOOBn+OBpOOChuOBjQ0KK+OBuOOBhOOBqOOBhizjgYjjgYTjgYTjgaENCivjgYrjgYrjgZXjgo8s44G+44GV44Gv44KLDQor44GG44GI44GgLOOCiOOBhuOBhOOBoQ0KK+OBi+OBquOChOOBvizjgoTjgZnjgbLjgZMNCivjga/jgonjgaAs44Go44KC44KG44GNDQor44Gq44GL44GM44KPLOOBguOBpOOBlw0KK+OBv+OChOOCguOCiizjgb7jgZPjgagNCivjgYvjgYQs44GR44KT44GYDQor44GN44GQ44GhLOOBl+OCheOBhuOBmA0KK+OBleOBn+OBkSzjgZHjgpPjgZgNCivjgYrjgYrjgYrjgYss44Go44GX44KN44GGDQor44Gq44GL44GW44KPLOOBk+OBhuOBmA0KK+OChOOBmeOBiuOBiyzjgb7jgZXjgbLjgacNCivjgY/jgo3jgb/jgaQs44KE44GZ44Gf44GLDQor44GL44Gq44GgLOOBsuOBp+OBjQ0KK+OBvuOCi+OBi+OCjyzjgbLjgafjgY0NCivjgarjgYzjgZXjgo8s44Gf44GR44KG44GNDQor44GT44Gw44KE44GXLOOBl+OCheOBhg0KK+OBiOOCk+OBqSzjgb7jgZXjga7jgooNCivjgYTjgpPjgarjgb8s44Gv44KL44GKDQor44KE44G+44KC44GoLOOBjeOCiOOBn+OBiw0KK+OBquOBjOOBj+OCiSzjgZXjgajjgZcNCivjgYbjgYjjga4s44G+44Gh44GTDQor44Gr44GX44GW44GLLOOBv+OBiw0KK+OBleOBqOOBhizjgabjgaTjgo3jgYYNCivjgoLjgorjgoTjgb4s44Gf44Gk44GKDQor44GT44Gv44KE44GbLOOBl+OBkuOBig0KK+OBqeOBhOOBnyzjgbLjgo3jgZcNCivjgbvjgZ3jgYvjgo8s44Gu44G244GKDQor44GC44GK44GNLOOBv+OBpOOBhA0KK+OBvuOBmeOBv+OBoCzjgajjgoLjgbLjgZMNCivjgYrjgaEs44G+44GV44GE44GhDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBmeOBjuOChOOBvizjgZHjgpPjgYTjgaENCivjgbXjgZjjgo/jgoks44Gb44GE44KEDQor44Gf44Gq44G5LOOBv+OBpOOChuOBjQ0KK+OBqOOBoCzjgYLjgaTjgZcNCivjgaTjgbzjgYQs44KE44GZ44GKDQor44GZ44GO44GfLOOBvuOBleOBruOCig0KK+OBguOBoOOBoSzjgZHjgYTjgZ8NCivjgbXjgZjjgYQs44G+44GV44GNDQor44GZ44GM44KC44KKLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjgarjgYrjgbLjgZMNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GM44G/LOOBvuOBleOCiw0KK+OBqOOBv+OChOOBvizjgobjgYbjgZgNCivjga/jga3jgaAs44KE44GZ44KG44GNDQor44GK44GW44GNLOOBn+OBkeOBlw0KK+OBiuOBkOOCiSzjgoTjgZnjgobjgY0NCivjgabjgonjgZXjgY0s44Gu44G244KEDQor44Gk44Gh44KELOOBiOOBpOOBkw0KK+OBiuOBi+OBoCzjgabjgovjgYoNCivjgYLjgbks44Gu44G244KG44GNDQor44GC44G5LOOBv+OBpOOBiA0KK+OCguOCiuOCj+OBjSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjga/jgoTjga4s44GR44KT44GfDQor44Go44G/44Gq44GMLOOBmOOCheOCkw0KK+OBmeOBmuOBjSzjgb/jgY0NCivjgYvjgZ/jgY7jgoos44GV44Go44GXDQor44GC44Gv44KJLOOBr+OChOOBqA0KK+OBu+OBlyzjgarjgarjgZMNCivjgYTjgZfjgYvjgo8s44Gf44Gk44KEDQor44GX44KC44KA44KJLOOCiOOBl+OBsuOBlQ0KK+OCj+OBjeOCguOBqCzjgb/jgobjgY0NCivjgYvjgo/jgaYs44Gf44GL44GXDQor44GC44G244KJ44GL44KPLOOBi+OBmuOBiuOBvw0KK+OCiOOBl+OBn+OBkSzjgZ/jgYvjgZcNCivjgYTjgZfjgaAs44G+44GV44KG44GNDQor44G744KT44GgLOOBqOOBl+OCjeOBhg0KK+OBl+OBn+OBvizjgojjgZfjgYoNCivjga7jgZDjgaEs44Gf44GR44GXDQor44G/44Ga44GELOOBguOChOOBig0KK+OBguOCk+OBqeOBhizjgarjgYrjgbXjgb8NCivjgojjga3jgZfjgb4s44Gq44Gk44G/DQor44GC44GN44GfLOOBmOOCheOCk+OBkw0KK+OBhuOBiCzjgYLjgaTjgZcNCivjgZnjgY4s44GT44GG44GE44GhDQor44Gq44GL44GY44G+LOOBvuOCig0KK+OBi+OBleOBiuOBiyzjgajjgZfjgbLjgZMNCivjga7jgaAs44Gm44Gk44G144G/DQor44G+44Gk44GW44KPLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OCj+OBn+OBuSzjgZ/jgaTjgYoNCivjgYLjgYTjgZbjgo8s44GR44GE44GY44KN44GGDQor44GE44KP44GVLOOBl+OCkw0KK+OBk+OBjCzjgYLjgY3jgbLjgZMNCivjgbLjgYzjgZfjgZ/jgass44Gy44Gn44G144G/DQor44GE44GR44GgLOOBqOOBl+OChA0KK+OBguOBjeOBquOBiyzjgoTjgZnjga/jgosNCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44KE44G+44GK44GLLOOBsuOBleOBn+OBiw0KK+OCj+OBoSzjgZvjgaTjgoQNCivjgYbjgYjjga4s44GR44KT44Gf44KN44GGDQor44GG44GX44GNLOOBi+OBmuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjga/jgovjgbLjgZMNCivjgYvjgajjgYYs44G+44GV44Go44GXDQor44Gq44GM44GELOOBn+OBoOOBsuOCjQ0KK+OBteOBj+OBoCzjgYLjgoTjgZMNCivjgarjgYvjgZ/jgass44GI44G/DQor44Gy44KJ44GV44KPLOOBquOBjOOBkw0KK+OBv+OChOOBluOBjSzjgb7jgZXjgosNCivjgabjgonjgZfjgb4s44KA44Gt44GL44GaDQor44GC44KJ44GELOOBoeOBjA0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaENCivjgYvjga3jgZMs44Gf44GL44GC44GNDQor44GV44Go44GGLOOBpuOBpOOBmA0KK+OBquOCiuOBnyzjgZfjgoXjgYbjgYTjgaENCivjgarjgYzjgZfjgb4s44GY44KF44KT44GE44Gh44KNDQor44GV44GL44GuLOOBqOOBl+OBig0KK+OBv+OBhuOCiSzjgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44GR44GEDQor44GK44Gn44KJLOOBquOBiuOBqOOBlw0KK+OBguOBuSzjgYLjgaTjgZcNCivjgZPjgaDjgb4s44GL44Ga44Gy44KNDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBl+OBvizjgajjgYrjgosNCivjgYTjgZfjgZos44Gk44Go44KADQor44GL44KT44Gw44KE44GXLOOChuOBjeOBig0KK+OBiuOBiuOBi+OCjyzjgbLjgo3jgobjgY0NCivjgbLjgYjjgaAs44Gf44GR44Gy44GTDQor44GE44Gu44G+44GfLOOBsuOCjeOBvw0KK+OBvuOBjeOBnyzjgajjgZfjgoQNCivjgYzjgarjga8s44Gf44GL44KG44GNDQor44Gv44KE44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBguOBi+OBrOOBvizjgabjgaTjgoQNCivjgoDjgo3jgYvjgo8s44G+44GV44Gu44KKDQor44GK44GuLOOBkeOBhOOBmeOBkQ0KK+OBjeOCgOOCiSzjgZfjgofjgYbjgZQNCivjga/jgZ/jgZbjgo8s44KE44GZ44GTDQor44G144GY44GfLOOBvuOBleOBjQ0KK+OBhuOBiOOBoCzjgaDjgYTjgZnjgZENCivjgoTjgb7jga7jgYbjgaEs44GE44GV44GKDQor44G144KL44GfLOOCiOOBl+OBsuOCjQ0KK+OBiuOBj+OChOOBvizjgZHjgpPjgYTjgaHjgo0NCivjgYTjgajjgYYs44G144G/44GKDQor44GK44GV44Gq44GELOOBm+OBhOOBhOOBoQ0KK+OBk+OBn+OBqyzjgZ/jgZHjgZcNCivjgYrjgYrjgaTjgYss44Gf44Gg44GC44GNDQor44G144GP44GX44G+LOOBk+OBmeOBkQ0KK+OBhOOBhOOBmuOBiyzjgZHjgpMNCivjgo/jgZ/jgarjgbks44Gm44KL44GC44GNDQor44KC44KK44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgbvjgpPjgaAs44Go44GX44GC44GNDQor44GL44Go44GGLOOBguOBjeOBruOCig0KK+OBguOBleOBrOOBvizjgoTjgZnjgbLjgo0NCivjgYLjgZrjgb4s44G+44GV44GKDQor44Gm44KJ44GV44KPLOOBv+OBpOOBig0KK+OBguOBi+OBlyzjgaTjga3jgYoNCivjgYvjgajjgYYs44Gq44GK44GoDQor44GK44Gu44GV44GoLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgaTjgZANCivjga7jgoDjgoks44Gy44Gn44G/DQor44GE44Gu44GG44GILOOBiOOBhOOBhOOBoQ0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgZ/jgoDjgoks44GM44GPDQor44GV44GL44GELOOBmeOBiOOBruOBtg0KK+OBmeOBjuOCgOOCiSzjgorjgofjgYYNCivjgajjgb/jgoTjgb4s44GR44GEDQor44GL44GN44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBq+OBl+OBn+OBqyzjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgYLjgZXjgY/jgoks44GX44KT44KEDQor44GE44GX44GW44GNLOOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYzjgYos44Go44GX44GKDQor44GN44GuLOOCiuOBiA0KK+OBguOBuSzjgZ/jgZnjgY8NCivjgags44GT44GG44GYDQor44KE44G+44GNLOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBhCzjgZLjgpMNCivjgoTjgb7jgaAs44GR44GE44GYDQor44GK44GP44KA44KJLOOBi+OBmuOBiA0KK+OBr+OCiSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44GL44Gk44Gy44GVDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBguOCieOBhCzjgYvjgZrjgoQNCivjgYTjgZHjgaks44G+44GV44Gf44GLDQor44GE44Go44GGLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgobjgYbjgZgNCivjgYbjgorjgoXjgYYs44GC44GN44KJDQor44GG44Gh44KE44G+LOOBn+OBoOOBlw0KK+OBiOOBruOCguOBqCzjgbLjgo3jgb/jgaENCivjgYjjgZrjgoks44Go44GK44KLDQor44GK44GK44Gk44GLLOOBkeOBhOOBmeOBkQ0KK+OBiOOBq+OCgyzjgZnjgZnjgoANCivjgYLjgYvjgYos44GR44GE44GZ44GRDQor44GK44GK44Gr44GXLOOBl+OCh+OBhuOBmA0KK+OBi+OBjOOChCzjgYTjgarjgpMNCivjgYvjgb7jgZ8s44Gf44GL44Gy44KNDQor44GL44KP44GL44G/LOOBruOBtuOBsuOBlQ0KK+OBleOBleOBjSzjgoTjgZnjgojjgZcNCivjgZ/jgYvjga/jgZcs44Gq44GK44Gy44GTDQor44Gf44GgLOOBk+OBhuOBhOOBoQ0KK+OBq+OBl+OBrizjgb7jgZXjgojjgZcNCivjgYLjgZXjgYos44Gq44GK44GNDQor44Gv44GX44KC44GoLOOBquOBiuOBjQ0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgZMNCivjgbvjgZcs44Gf44GKDQor44G744KK44GfLOOBl+OCk+OBhOOBoQ0KK+OBvuOBiOOBnuOBrizjgarjgovjgbLjgacNCivjgb7jgYjjgZjjgb4s44G/44Gu44KLDQor44G/44KE44GW44GNLOOChuOBv+OBkw0KK+OBguOCieOBhCzjgojjgZfjgb8NCivjgoLjgoos44GT44GZ44GRDQor44G+44GI44GgLOOBsuOCjeOBlw0KK+OBiuOBoSzjgZHjgpMNCivjgYLjgZXjgY/jgoks44Gu44KK44GKDQor44GG44GV44G/LOOBguOBpOOBlw0KK+OBiuOBj+OChOOBvizjgZ/jgYvjgZcNCivjgYvjgorjgoQs44Gf44GL44Gy44GTDQor44GG44GI44GgLOOBsuOBp+OChuOBjQ0KK+OBiuOBn+OBuSzjgZHjgYTjgZ7jgYYNCivjgY3jgoDjgoks44GE44GV44KADQor44GP44GX44GgLOOCiOOBl+OBr+OCiw0KK+OBguOBvuOBryzjgZPjgYbjgZgNCivjgZPjgpPjgaks44KI44GX44GNDQor44GX44G/44GaLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBmeOBmuOBjSzjgZfjgoXjgYbjgZPjgYYNCivjgZnjgpMs44GZ44G/44GKDQor44Gf44Gp44GT44KNLOOBsuOBqOOBlw0KK+OBqOOBreOBleOBjyzjgYTjgZXjgoANCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44G+44GZ44GgLOOBsuOCjeOBig0KK+OBv+OChOOBluOBjSzjgb/jga/jgosNCivjgojjgZfjgarjgYws44GC44GN44Gy44GVDQor44KI44GT44GL44KPLOOBn+OBj+OBvg0KK+OBpOOBoeOChCzjgb7jgobjgb8NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44Gq44G5LOOBvuOBleOBmA0KK+OBhOOBqOOBhizjgZHjgYTjgZnjgZENCivjgarjgYzjgYos44GX44KT44GE44GhDQor44GV44Go44GGLOOBn+OBkeOBlw0KK+OBn+OBoCzjgajjgoLjgbLjgo0NCivjgYLjgY3jgoLjgags44GX44KF44KT44GZ44GRDQor44Gf44KA44KJLOOBvuOCguOCiw0KK+OBn+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgYrjgYss44G/44Gh44Gv44KLDQor44GV44GP44KJ44GOLOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgoLjgorjgYrjgYss44Gf44Gg44GXDQor44KE44GQ44GhLOOChuOBhuOBlw0KK+OBv+OChOOCguOBqCzjgZXjgajjgZcNCivjgZfjgonjgYvjgo8s44Gy44Gn44GNDQor44GK44GK44Gk44GLLOOBsuOBp+OBjQ0KK+OChOOBvuOCguOBqCzjgajjgoLjgoTjgZkNCivjgarjgYvjgb7jgaEs44KE44GZ44G144G/DQor44KP44GL44Gv44KJLOOChOOBmeOBig0KK+OBguOBjSzjgZ/jgYvjgZcNCivjgZ/jgY3jgZ8s44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBvuOBpOOBiizjgZPjgYbjgZgNCivjgaHjgofjgYYs44KG44GG44GE44GhDQor44GP44KN44GgLOOBl+OBkuOCiw0KK+OChOOBvuOBl+OBnyzjgZ/jgo3jgYYNCivjgajjgoLjgYrjgYss44GI44G/44GTDQor44Gq44GL44GKLOOCj+OBn+OCiw0KK+OBguOBnSzjgabjgovjgYvjgZoNCivjgbXjgY/jgaAs44Gu44G244Gf44GLDQor44GC44GK44GNLOOBsuOBqOOBlw0KK+OBj+OCiyzjgbLjgZXjgagNCivjgoDjgonjgYvjgb8s44KE44GZ44Gy44KNDQor44GP44KN44GgLOOBn+OBj+OChA0KK+OBv+OBi+OBvyzjgYLjgY3jgbLjgo0NCivjgYvjgb/jgoDjgoks44Gy44KN44KG44GNDQor44GN44Gf44GY44G+LOOBquOBiuOBjQ0KK+OBvuOCi+OChOOBvizjgojjgZfjgbLjgZUNCivjgZXjgZ/jgZEs44GR44KT44GE44GhDQor44KC44Gm44GNLOOBn+OBkeOBlw0KK+OBqOOBv+OBnyzjgbXjgY0NCivjgavjgo8s44G144G/44GTDQor44Gf44GL44Gw44Gf44GRLOOBl+OBkuOBruOCig0KK+OBguOBmuOBvizjgb7jgZXjgosNCivjgbXjgovjgoQs44GV44Gh44GTDQor44Gq44GZLOOCiOOBl+OBsuOCjQ0KK+OBk+OCiizjgb7jgooNCivjgYTjgZHjgaAs44G+44GV44Gy44KNDQor44GU44Go44GGLOOBk+OBhuOBmA0KK+OBteOBj+OBoCzjgbLjgo3jgobjgY0NCivjgZnjgYzjga/jgoks44GY44KF44KT44GYDQor44GN44KA44KJLOOBqOOBl+OBsuOBkw0KK+OBn+OBi+OBmyzjgb7jgooNCivjgavjgZfjgYrjgYss44KK44KH44GGDQor44G144KL44GL44KPLOOBpuOBpOOBig0KK+OBj+OBqeOBhizjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GR44KT44GoDQor44KE44G+44KC44GoLOOCiOOBl+OBsuOCjQ0KK+OBv+OChOOCguOBqCzjgorjgofjgYbjgbjjgYQNCivjga7jgZ8s44KG44GN44Gy44KNDQor44Gq44GL44KA44KJLOOBl+OBruOBtg0KK+OBguOBjeOBsCzjgb/jgoQNCivjgYTjgo/jgY0s44G+44GT44GoDQor44GL44Go44GGLOOBl+OBuw0KK+OCguOCiuOCguOBqCzjgb7jgZXjgYvjgZoNCivjgarjgYvjgoDjgoks44GL44Ga44Go44GXDQor44Gq44GL44KE44G+LOOBi+OBmuOChA0KK+OBiuOBiuOBn+OBqyzjgZfjgZLjgbLjgo0NCivjgZnjgY7jgoTjgb4s44G/44Gu44KLDQor44GZ44KTLOOBqOOCiOOChuOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgZcNCivjgbvjgpPjgaks44KG44Gf44GLDQor44Gv44GMLOOBi+OBj+OBmA0KK+OBl+OBiuOBluOBjSzjgYvjgZrjgbLjgZMNCivjgbXjgZjjga4s44G/44Gu44KLDQor44GK44GuLOOBkeOCk+OBmA0KK+OBguOCk+OBqeOBhizjgojjgZfjgYoNCivjgoTjgb7jgZDjgaEs44Go44GX44GC44GNDQor44GP44KN44GgLOOBn+OBi+OBlw0KK+OBhuOBrizjgorjgofjgYbjgYTjgaENCivjgYTjgajjgYbjgZ/jgass44Gf44GR44Gy44GTDQor44GK44GLLOOBiOOBpOOBvw0KK+OBv+OBhuOCiSzjga7jgbbjgobjgY0NCivjga/jgZfjgoLjgags44GL44GqDQor44GI44KC44GoLOOBvuOBk+OBqA0KK+OBk+OBjCzjgbLjgo3jgZcNCivjgY3jga/jgoks44Gy44KN44GXDQor44G+44Gk44GgLOOBteOBv+OBn+OBoA0KK+OChOOBvuOBoCzjgYLjgY3jgZMNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44GhDQor44KE44Gv44GfLOOBsuOBp+OBig0KK+OBn+OBluOBjSzjgZHjgYTjgZ8NCivjgoTjgb7jgoLjgags44KK44KF44GG44GE44GhDQor44Gf44GL44GgLOOBsuOCjeOBvw0KK+OBruOBoCzjgb7jgZXjgaTjgZANCivjgZXjgYTjgb/jgofjgYYs44GL44GK44KLDQor44GT44Gw44KE44GXLOOBguOCieOBnw0KK+OBteOBmOOBjSzjgZHjgpPjgZgNCivjgZfjgonjgZXjgYss44G144G/44GKDQor44Gf44GL44Gv44GXLOOBqOOBiuOCiw0KK+OChOOBpCzjgYLjgaTjgYoNCivjgYbjgYrjgZ/jgass44G144G/44Gy44GTDQor44Gf44KA44KJLOOBqOOBl+OBsuOBkw0KK+OBvuOBpOOBiizjgZXjgajjgZcNCivjgarjgYvjgZbjgo8s44Gf44GP44KEDQor44GN44GgLOOChuOBjeOBkw0KK+OBn+OCk+OBkizjgabjgaTjgo3jgYYNCivjgbLjgo3jgZss44GZ44GZ44KADQor44G+44Gk44GX44G+LOOBv+OBoeOChA0KK+OBiuOBi+OBrizjgZXjgajjgosNCivjgYLjgYrjgY0s44KI44GG44GE44Gh44KN44GGDQor44Gv44Gb44GM44KPLOOCiuOCheOBhuOBmA0KK+OBq+OBl+OBu+OCiizjgaHjgYvjgokNCivjgYTjgZfjgZrjgYss44Gf44GL44KEDQor44Gk44G844GELOOBsuOBp+OChuOBjQ0KK+OBhOOBl+OBoCzjgb7jgZXjgosNCivjga/jgZfjgoLjgags44GV44Go44KLDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBguOBjeOChOOBvizjgbLjgo3jgY0NCivjgb/jgaTjga/jgZcs44GX44GS44KLDQor44GU44GX44G+LOOBi+OBmuOBig0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gq44GK44G144G/DQor44Gq44GL44GW44KPLOOBsuOBleOBlw0KK+OBq+OBl+OBi+OCjyzjgbLjgajjgZcNCivjgYTjgZHjgYbjgaEs44GL44Ga44KG44GNDQor44Gf44GM44G/LOOBn+OBi+OBig0KK+OBi+OCj+OBjeOBnyzjgZHjgpPjgZjjgo3jgYYNCivjgarjgYvjgoDjgoks44GM44GPDQor44GT44G+44GELOOBk+OBmeOBkQ0KK+OBu+OBl+OChCzjgYLjgobjgoANCivjgZnjgb/jgags44G+44GV44G144G/DQor44G744GX44GuLOOBi+OBmuOBig0KK+OBquOBi+OChCzjgZfjgpPjgYTjgaENCivjga/jgoks44G/44Ga44G7DQor44KA44KN44KE44G+LOOBi+OBmuOBsuOBkw0KK+OCguOCiizjgbLjgafjgY0NCivjgZfjgonjgYTjgZcs44G+44GV44Gy44KNDQor44Gy44KJ44GuLOOBk+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZMNCivjgYLjgbks44GY44KF44KT44GYDQor44GE44GX44GL44KPLOOBguOCiuOBi+OBpA0KK+OBguOBmuOBvizjgojjgZfjgb8NCivjgYrjgYrjgaTjgYss44Gu44G244GKDQor44GE44Go44GGLOOBkeOBhA0KK+OBiuOBl+OBvizjgaHjgYvjgYoNCivjgZPjgZbjgYQs44GN44KI44Gy44KNDQor44GL44KP44GL44G/LOOBvuOBleOBqOOBlw0KK+OBquOBi+OBrizjgoDjga3jgbLjgZMNCivjgYbjgZjjgoLjgags44G+44GV44Gy44GTDQor44GN44GX44GgLOOBsuOBqOOBlw0KK+OBk+OBhOOBmuOBvyzjga7jgorjgZMNCivjgarjgYTjgajjgYYs44Go44GX44Gy44KNDQor44KI44GX44Ga44G/LOOCiOOBl+OBjQ0KK+OBmeOBjuOCguOCiizjgajjgZfjgbLjgo0NCivjgYLjgYrjgY0s44Go44KC44Gv44KLDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBhOOBjCzjga7jgorjgYvjga0NCivjgYvjgo/jgbDjgZ8s44Gu44Ge44G/DQor44GX44Gw44GfLOOBsuOCjeOBsuOBpw0KK+OBoOOCkyzjgb7jgarjgb8NCivjgZ/jgZDjgaEs44GL44Ga44Gy44KNDQor44G+44Gh44GgLOOBqOOCguOBig0KK+OBguOBl+OBoCzjgobjgYbjgZMNCivjgYLjgpPjganjgYYs44Gm44GE44GYDQor44KA44Go44GGLOOBi+OBpOOBruOCig0KK+OBk+OChOOBvizjgY3jgojjgagNCivjgZnjgZrjgY0s44GR44GE44GE44GhDQor44Gu44KA44KJLOOBmOOCheOCkw0KK+OBhOOBqOOChCzjgb7jgZXjgajjgZcNCivjgaHjgYvjgYrjgYss44Gk44Go44KADQor44GY44KT44G2LOOBv+OBoeOChOOBmQ0KK+OBguOBoOOBoSzjgb7jgZXjgZcNCivjgYvjgo/jgYQs44KE44GZ44GXDQor44G/44Gu44KPLOOBk+OBhuOBhOOBoQ0KK+OBguOBleOBsizjgajjgZfjgYLjgY0NCivjgYrjgYrjgZ8s44KI44GX44GC44GNDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBjeOCiSzjgb7jgZXjgZcNCivjgoTjgb7jgZbjgY0s44G/44GLDQor44KE44G+44GG44GhLOOBv+OBpOOCiw0KK+OBu+OBo+OBnyzjgojjgZfjga7jgooNCivjgYLjgonjgYvjgo8s44GX44GS44GKDQor44GK44GP44KA44KJLOOBmOOCheOCkw0KK+OBi+OBreOBkyzjgYTjgZ/jgosNCivjgYLjgoTjga4s44GT44GG44GNDQor44Gv44KE44GL44KPLOOBqOOCguOBquOCig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgYrjgY/jgoDjgoks44Gy44GV44Gu44KKDQor44Gf44KT44GW44KPLOOBn+OBpOOBig0KK+OBleOBjeOBrizjgojjgZfjgbLjgo0NCivjgYvjgo/jga/jgoks44Go44GK44KLDQor44Gf44KL44GELOOCiOOBl+OBig0KK+OBguOCiuOCguOBqCzjgYLjgaTjgZcNCivjgYjjgbPjgZMs44Go44KC44Gq44KKDQor44Gy44GuLOOBi+OBpOOChA0KK+OChOOBvuOBoCzjgZfjgofjgYbjgojjgYYNCivjgYrjgYrjga4s44GP44G/DQor44Gf44GR44GX44GfLOOChuOCiuOBkw0KK+OBr+OChOOBlyzjgY3jgofjgYbjgZMNCivjgYTjgZfjgaAs44GR44KTDQor44GX44GK44KELOOBn+OBkeOBlw0KK+OBguOCk+OBqeOBhizjga7jgbzjgosNCivjgb7jgaTjgbDjgoks44G+44GV44G144G/DQor44Gr44GX44GgLOOBvuOBleOCiw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgYTjgZHjgaAs44GY44KF44KTDQor44Gv44KE44G/LOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgZfjgofjgYbjgZ7jgYYNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GE44GX44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBguOBleOBvyzjgZHjgpPjgZgNCivjga/jgZ/jgZHjgoTjgb4s44Gf44GL44GXDQor44G744KK44G/44GeLOOBkeOBhOOBmeOBkQ0KK+OBvuOCi+OBn+OBqyzjgaHjgbLjgo0NCivjgZXjgajjgYYs44GC44GN44GKDQor44GV44GL44Gq44GLLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgajjgoLjgbLjgZMNCivjgYTjgajjgYYs44GL44GK44KLDQor44G144KL44Gq44GMLOOBr+OCi+OBsuOBkw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgagNCivjgb/jgZrjgYzjgb8s44KI44GX44KG44GNDQor44Gf44GR44GG44GhLOOBv+OBoeOBig0KK+OBqOOCiuOBhuOBvyzjgb/jga7jgosNCivjga3jgY7jgZcs44GX44GS44GNDQor44GT44KE44G+LOOBguOBjeOBruOCig0KK+OBiuOBl+OBvizjgarjgZnjgYoNCivjgYvjgZ/jgYrjgYss44Gf44GL44GXDQor44Gf44GN44GQ44GhLOOBsuOBp+OBteOBvw0KK+OBk+OBvuOBpCzjgYvjgZrjgYoNCivjgoTjgY4s44Gf44GL44GXDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBvuOBmeOBhCzjgabjgaTjgo3jgYYNCivjga/jgoTjgZcs44Gy44Go44GXDQor44GC44Gt44Gf44GELOOBvuOBleOChuOBjQ0KK+OBjeOBr+OCiSzjgZHjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44GX44GS44GKDQor44GN44Gf44KP44GNLOOBv+OBoeOBsuOBkw0KK+OBruOBkOOBoSzjgbLjgo3jgb/jgaENCivjgZXjgYvjgZDjgaEs44KC44Go44GEDQor44Gr44GXLOOChuOBjeOBv+OBpA0KK+OBhOOBkeOBoCzjgabjgaTjgYoNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GE44G+44GELOOBvuOBleOBsuOBqA0KK+OChOOBvuOBoCzjgZfjgZLjgYTjgY8NCivjgZ/jgarjgYss44KE44GZ44Gy44GVDQor44GK44GK44GV44GTLOOBvuOBk+OBqA0KK+OBk+OCgOOCjSzjgYvjgarjgoENCivjgZXjgYTjgajjgYYs44Gy44Gn44GNDQor44GZ44Ga44GNLOOBkeOCk+OBhOOBoQ0KK+OBteOBquOBqOOBjOOCjyzjgobjgYvjgooNCivjgYTjgZfjgYQs44Gm44KL44GC44GNDQor44G+44Gk44GELOOBruOBvOOCiw0KK+OBmeOBiOOBsuOCiSzjgbLjgajjgZcNCivjgbLjgo3jgZ/jgass44KI44GX44GKDQor44Gy44GM44GXLOOBjeOCiOOBlw0KK+OBhOOCgOOCiSzjgYLjgaTjgZMNCivjgYLjgbks44KE44GZ44Gu44KKDQor44KI44Gt44GP44KJLOOBruOBtuOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgb/jgaQNCivjgZnjgYws44Gy44KN44GXDQor44GV44GuLOOBsuOCjeOBlw0KK+OBl+OBsCzjgajjgoLjgZgNCivjgoTjgb7jgZDjgaEs44GX44KF44KT44GYDQor44GN44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBi+OBleOBvuOBjSzjgojjgZfjgo3jgYYNCivjgY3jgoDjgoks44GR44GE44GZ44GRDQor44Gk44KL44G/LOOBguOBjeOBsuOBlQ0KK+OBguOBiuOBjSzjgZfjgofjgYbjgZMNCivjgYTjgZfjgaAs44KC44Go44GXDQor44KC44KNLOOBguOBjeOBig0KK+OBiuOBj+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44GT44GG44GYDQor44GE44GR44KELOOBv+OBoeOBig0KK+OBqOOBv+OChOOBvizjgYvjgZrjgb/jgaQNCivjgoTjgY4s44Gf44GL44GKDQor44Go44G/44GNLOOBpuOBpOOCjeOBhg0KK+OBqOOBruOCgOOCiSzjgb/jga7jgosNCivjgoTjgaTjgZrjgYss44Go44GX44Gy44KNDQor44G244G+LOOBkeOCk+OBl+OCh+OBhg0KK+OBquOBi+OBluOCjyzjgbXjgb/jgajjgoINCivjgoTjgb7jgZbjgY0s44KI44GG44GTDQor44G+44Gk44GX44GfLOOBl+OBruOBtg0KK+OBhOOBoCzjgZfjgpMNCivjgZnjgZrjgY0s44KI44GX44Gy44KNDQor44Gq44GL44GuLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgYvjga/jgZcs44Gk44Go44KADQor44GE44GX44GgLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBhuOBoCzjgZXjgajjgosNCivjgbXjgZjjgo/jgoks44KK44KF44GG44GYDQor44GT44GE44GnLOOBqOOBl+OBn+OBkQ0KK+OBpOOBi+OBoCzjgbjjgYTjga/jgaENCivjgbLjgonjgoTjgb4s44Gy44KN44GXDQor44GG44Gh44Go44G/LOOBguOBjeOCiQ0KK+OBhOOBvuOBr+OCiSzjgbLjgo3jgojjgZcNCivjgYbjgYjjgaAs44Gy44Go44GXDQor44GV44GV44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBhOOBi+OCjyzjgZ/jgYvjgYLjgY0NCivjgYbjgYjjgY0s44Gf44GL44KI44GXDQor44Gq44GL44KE44G+LOOCiOOBl+OBvw0KK+OBiuOBiuOBleOCjyzjgojjgZfjgYvjgZoNCivjgZ/jgYvjgYrjgYss44Go44GX44KG44GNDQor44KP44GgLOOBpOOBjuOBig0KK+OBhOOBrOOBmuOBiyzjgY/jgavjgbLjgZUNCivjgZ/jgarjgYss44GT44GG44GN44GhDQor44Gf44GR44GgLOOBjeOCiOOBn+OBiw0KK+OChOOBvuOBoCzjga7jgbzjgosNCivjgoTjgarjgY4s44Gy44Gn44Gy44KNDQor44Gf44GR44GX44GfLOOCiOOBl+OBn+OBkQ0KK+OBq+OBlyzjgZ/jgaTjgbLjgZMNCivjgYrjgYrjgZ/jgZEs44KG44GG44GE44GhDQor44Gr44Gf44Gq44GELOOBl+OBkuOBig0KK+OBu+OCk+OBvizjga7jgbbjgbLjgZMNCivjgarjgYvjga4s44KI44GX44Gu44KKDQor44G/44KE44GX44GfLOOBsuOBp+OBjQ0KK+OBhuOBiOOBrizjgZjjgoXjgpPjgZjjgo3jgYYNCivjgbDjgbAs44GV44Gg44KADQor44G/44KE44GW44GNLOOBvuOBleOBig0KK+OBj+OBq+OBhCzjgaTjgajjgoANCivjgZPjgbDjgoTjgZcs44GR44GE44GYDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgaTjgYvjgYos44Gy44KN44GNDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBsOOBnyzjgZPjgYbjgZ7jgYYNCivjgYLjgYvjgZXjgYss44GY44KF44KT44GTDQor44GE44GE44GgLOOBpuOBpOOChA0KK+OBl+OCieOBr+OBvizjgZ/jgaDjgZcNCivjgajjgYzjgo8s44Gy44KN44KG44GNDQor44GE44Go44GGLOOBsuOBp+OBhOOBoQ0KK+OBiuOBi+OBuSzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44GKDQor44GV44GL44GwLOOBqOOBl+OBsuOCjQ0KK+OBsuOCjeOBleOCjyzjgbLjgajjgZcNCivjgarjgYvjgoDjgoks44GX44GS44KLDQor44KE44GZ44GELOOBleOBqOOBlw0KK+OBsuOCieOBnyzjgYvjgZrjgbLjgZUNCivjgY3jgZ/jgYzjgo8s44GX44KT44GE44GhDQor44GC44G+44GuLOOBpuOBpOOChA0KK+OBpOOBmOOCgOOCiSzjgYjjgaTjgo3jgYYNCivjgYvjgo/jgZXjgY0s44GT44GG44GE44GhDQor44GG44GI44KA44KJLOOBn+OBkeOBlw0KK+OCgOOCieOBi+OBvyzjgZfjgZLjgaoNCivjgYTjga7jgYbjgYgs44GN44KI44GXDQor44Gv44GcLOOBkeOCkw0KK+OBqOOBl+OBsuOCjSzjgY3jgb/jgbLjgo0NCivjgZPjgbDjgoTjgZcs44GX44GS44KG44GNDQor44GE44GuLOOBn+OBoOOBruOCig0KK+OBguOBleOBrizjgobjgYbjgYTjgaENCivjgoLjgoos44GT44GG44GYDQor44GE44Gq44GW44KPLOOBk+OBhuOCiOOBhg0KK+OBk+OBsOOChOOBlyzjgabjgovjgbLjgo0NCivjgZXjgYvjgY0s44KI44GX44Gy44GTDQor44GG44Gh44KE44G+LOOBm+OBhOOBmA0KK+OBvuOBquOBuSzjgoTjgZnjgY0NCivjgYrjgYrjgoTjgb4s44GR44KT44GYDQor44GX44G/44GaLOOBvuOBleOBsuOBkw0KK+OCiOOBreOCgOOCiSzjgbLjgo3jgobjgY0NCivjgbDjgonjgaAs44GC44GN44Gy44GTDQor44G144KL44Ge44GuLOOCiOOBl+OBi+OBmg0KK+OBteOBmOOCguOBqCzjgYvjgZrjgYLjgY0NCivjgZXjga4s44G+44KC44KLDQor44GL44KP44GuLOOBiOOBhOOBkw0KK+OBu+OBl+OBi+OCjyzjgZPjgYbjgZgNCivjgZXjgZXjgoLjgags44KC44Go44Gk44GQDQor44GZ44Gp44GGLOOBvuOBleOBqA0KK+OBleOBqOOBhizjgZ/jgYvjgYoNCivjga/jgoTjgZcs44Gy44KN44GXDQor44Gw44GwLOOBsuOBp+OBruOCig0KK+OBsOOBsCzjgbLjgajjgZcNCivjgYrjgYrjgoTjga0s44Gy44Gn44GKDQor44Gq44GM44GV44KPLOOChOOBmeOChuOBjQ0KK+OBleOBi+OCguOBqCzjgb7jgZXjga/jgosNCivjgYLjgYrjgY0s44Gb44GE44GYDQor44KA44Gq44GL44GfLOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYvjgo/jgbDjgZ8s44Gy44KN44KG44GNDQor44GZ44GO44KC44GoLOOBv+OBoeOBig0KK+OBsOOCk+OBqeOBhizjgZjjgoXjgpMNCivjga7jgoDjgoks44GC44GN44Gy44GTDQor44GT44KT44GuLOOCiOOBl+OBv+OBoQ0KK+OBi+OCj+OBhCzjgYvjgZrjga7jgooNCivjgYbjgYjjga4s44Gu44G244KG44GNDQor44Gv44KJ44GgLOOBsuOCjeOBlw0KK+OBi+OBruOBhizjgYLjgY3jgokNCivjgYrjgYrjga/jgZ8s44G/44GN44GKDQor44GZ44Gp44GGLOOBn+OBi+OBlw0KK+OBvuOBpOOBoCzjgbLjgajjgZcNCivjgYTjgZHjgYzjgb8s44G+44GT44GoDQor44GX44KJ44GELOOBkeOCk+OBl+OCkw0KK+OBleOBqOOBhizjgZ/jgYvjgYLjgY0NCivjgZXjgYvjgYQs44Gf44GR44GXDQor44GK44GNLOOBqOOBl+OChuOBjQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgoTjgb7jgaAs44Gy44KN44GKDQor44GE44Go44GGLOOBguOBjeOBsuOBlQ0KK+OBhOOBi+OBvyzjga/jgovjgYoNCivjgYLjgZrjgb7jgYos44Gy44Gn44GoDQor44G144GY44KA44KJLOOBqOOBiuOCiw0KK+OBjeOBn+OCgOOCiSzjgobjgYbjgZgNCivjgajjgYzjgb8s44Go44GX44G/DQor44GT44GZ44GSLOOBvuOBleOBig0KK+OBm+OBjSzjgbLjgo3jgobjgY0NCivjgYvjgo/jgZfjgb4s44Go44KC44KG44GNDQor44Gf44GL44GELOOChuOBhuOBlA0KK+OBguOBjeOChOOBvizjgobjgY3jgYoNCivjgZnjgZrjgY0s44Go44GX44G144G/DQor44Gq44GL44KA44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBq+OBl+OBrizjgZ/jgYvjgobjgY0NCivjgb/jgoTjgZEs44Gf44GL44Gy44KNDQor44KI44Gt44KC44GhLOOCguOBqOOBmA0KK+OBn+OBi+OBl+OBvizjgZfjgZLjgYoNCivjgZXjgYvjgYQs44Go44GX44Gu44KKDQor44GK44GK44Gk44GNLOOBguOBjeOBqOOBlw0KK+OBi+OCj+OBleOBjSzjgb/jgY0NCivjgavjgZfjgYvjgo8s44Gf44GN44GKDQor44GV44GP44KJ44GELOOBkeOCk+OBmA0KK+OBmeOBjizjgbLjgafjgYLjgY0NCivjgbvjgorjgZPjgZcs44Go44GK44KLDQor44KC44KKLOOBi+OBpOOChA0KK+OBr+OBkeOBoCzjgZ/jgYvjgZcNCivjgavjgYTjgaAs44GX44KT44GE44GhDQor44GN44GP44Gf44GrLOOBleOBqOOBlw0KK+OBn+OBkeOBruOBl+OBnyzjgZfjgoXjgYbjgbjjgYQNCivjgZ/jgYvjga/jgZcs44Gy44KN44G/DQor44Gf44Gq44G5LOOBvuOBleOBkw0KK+OBhOOBkeOCguOBqCzjga7jgorjgZMNCivjgb7jgaTjgoTjgb4s44KG44GN44GTDQor44KI44GX44GW44KPLOOCiOOBl+OBsuOBlQ0KK+OBguOBi+OBhCzjgb/jga7jgosNCivjgavjgZfjgYrjgYss44Gb44GE44GE44Gh44KN44GGDQor44Gf44GR44KC44GoLOOBruOBtuOBig0KK+OBqOOBj+OBoCzjgojjgZfjgYoNCivjgYrjgYrjgoLjgoos44KE44GZ44Gy44KNDQor44GL44Go44GGLOOBn+OBpOOBlw0KK+OBi+OCj+OBqCzjgbXjgb/jgYoNCivjgb7jgYjjgaAs44Gd44GG44GE44GhDQor44GP44KN44GNLOOBvuOBleOCiOOBlw0KK+OBhOOBhOOBoCzjgY/jgb/jgZMNCivjgZPjgoTjgarjgY4s44Gv44GY44KBDQor44G+44Gk44Gq44GMLOOBguOBpOOBlw0KK+OBhOOBqOOBhizjgoTjgZnjgYLjgY0NCivjgoTjgb7jgoLjgags44Gf44Gk44GKDQor44Gk44Gk44GELOOBqOOBl+OBguOBjQ0KK+OBn+OBquOBiyzjgb/jga7jgosNCivjgbXjgY/jgZfjgb4s44GX44KF44KT44GE44GhDQor44GT44GY44G+LOOCiOOBl+OBsuOBkw0KK+OBq+OBl+OBoCzjgb/jgaTjgZANCivjgavjgZfjgoTjgb4s44GY44KF44KT44GTDQor44GZ44Ga44GNLOOBoOOBhOOBmeOBkQ0KK+OBhOOBhOOBmOOBvizjgZ/jgYvjgZcNCivjgZ/jgb7jgYQs44GZ44GZ44KADQor44GT44KT44GuLOOBiuOBleOCgA0KK+OBv+OBvuOBmSzjgajjgZfjgb/jgaQNCivjgojjga3jga/jgoks44Gb44GE44GE44GhDQor44KI44GX44GgLOOBi+OBmuOBvw0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gy44KN44GC44GNDQor44KE44G+44KC44GoLOOBsuOCjeOBlw0KK+OBjeOBn+OBlCzjga7jgbzjgosNCivjgZXjgpPjga4s44Go44KC44Go44GXDQor44KE44GV44GLLOOBqOOBl+OBig0KK+OCgOOCieOBnyzjgZfjgZLjgb8NCivjgarjgYvjgoLjgags44GC44GN44GXDQor44GV44GP44KJ44GELOOBi+OBmuOBl+OBkg0KK+OBr+OCieOBoCzjgojjgZfjgoLjgagNCivjgZXjgajjgYYs44GC44Gk44GKDQor44GV44GE44Go44GGLOOBv+OBpOOBig0KK+OBneOBrSzjgZHjgYTjgZMNCivjga/jgZnjgb8s44GC44GN44Gy44KNDQor44Gy44KJ44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBquOBjuOBleOCjyzjga7jgbbjgYoNCivjgZ/jgaHjgbDjgaos44KI44GG44GTDQor44GE44Go44GGLOOBvuOBleOBmuOBvw0KK+OBr+OCiSzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44Go44GX44Gy44KNDQor44GE44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgoQNCivjgYbjgaHjgoTjgb4s44GX44GS44KI44GXDQor44GL44GM44KPLOOBkeOBhOOBhOOBoQ0KK+OBn+OBjeOBluOCjyzjgobjgYbjgZjjgpMNCivjgZfjgarjgYzjgo8s44GP44Gr44Gy44GTDQor44GL44GN44Gv44KJLOOBl+OCjeOBhg0KK+OBmeOBjOOBrOOBvizjgZjjgoXjgpPjgYTjgaENCivjgYvjgoHjgYQs44Go44GX44KEDQor44GK44GP44GkLOOBi+OBmuOBqOOBlw0KK+OBhOOBl+OBi+OCjyzjgZfjgofjgYbjgZfjgoXjgpMNCivjgZnjgY7jgYbjgoks44KC44KK44GKDQor44GG44KB44GgLOOBsuOBleOBlw0KK+OBv+OBquOBkOOBoSzjgYTjgaHjgo3jgYYNCivjgbvjgZfjga4s44Gf44GR44Gy44GTDQor44Gr44GX44KE44G+LOOBm+OBhOOBmA0KK+OBn+OBkeOBoCzjgZ/jgaTjgoQNCivjgZXjgYvjgYQs44GN44GE44Gh44KN44GGDQor44KE44Gk44GgLOOBn+OBkeOBlw0KK+OCguOCiuOBnyzjgZHjgYTjgZ7jgYYNCivjgZXjgY3jgb4s44Gq44GK44Gy44KNDQor44GC44KJ44GELOOChuOBn+OBiw0KK+OBn+OBkeOBoCzjgZ/jgYvjgZMNCivjgZ/jgoDjgoks44KI44GX44GTDQor44GK44GL44GgLOOBr+OCi+OBvw0KK+OChOOBvuOBrSzjgaHjga/jgosNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GC44GK44GuLOOBn+OBpOOBig0KK+OBmeOBjuOChOOBvizjgYvjga3jgojjgZcNCivjgbXjgorjga/jgoks44GL44Ga44GKDQor44KP44Gf44Gq44G5LOOBruOBtuOBqA0KK+OBi+OBpCzjgaTjgYvjgZUNCivjgZXjga/jgoks44Gy44KN44G/DQor44GL44GP44GfLOOBguOBjeOBsuOBkw0KK+OBiOOBruOCguOBqCzjgZ/jgYvjgZcNCivjgo/jgZ/jgarjgbks44G+44GT44GoDQor44KE44G244GNLOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBleOBjSzjgZPjgYbjgYTjgaENCivjgojjgZPjgZ8s44G+44GV44Gy44GnDQor44G744KK44Gu44GG44GhLOOBqOOBl+OBguOBjQ0KK+OBjeOBr+OCiSzjgaTjga3jgYoNCivjgZ/jgZHjgaAs44Gk44KL44G+44GkDQor44GE44Gt44GqLOOBvuOBleOBsuOBkw0KK+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgYTjgaHjgoTjgarjgY4s44Gf44Gg44GXDQor44GZ44Ga44GNLOOBl+OCh+OBhuOBkeOBhA0KK+OBquOCi+OBl+OBvizjgarjgYrjgY3jgaENCivjgZfjgonjgYTjgZcs44Gf44GL44GXDQor44GK44GuLOOBqOOBiuOCiw0KK+OCiOOBl+OBiuOBiyzjgYvjgZrjgoQNCivjgb7jgaTjgYbjgoks44Gy44KN44GL44GaDQor44G144GY44GfLOOBpuOBpOOBmA0KK+OBhOOCj+OBvyzjgajjgojjga/jgosNCivjgajjgY/jgZfjgZIs44GR44GE44GYDQor44Gf44Gq44GgLOOBjeOBv+OBsuOBkw0KK+OBiuOBi+OBrizjgYvjgZrjgb7jgZUNCivjgoLjgaHjgZrjgY0s44Gf44GL44KG44GNDQor44Gf44GL44GX44G+LOOBk+OBhuOBhOOBoQ0KK+OBqOOCiuOBhuOBvyzjgYvjgZrjgYoNCivjgZ/jgYvjgb8s44KI44GX44Gf44GLDQor44Gv44KE44GbLOOBqOOCguOChuOBjQ0KK+OBn+OBi+OBr+OCiSzjgYjjgYTjgZgNCivjgY3jgpMs44G+44GV44KG44GNDQor44GZ44GO44KE44G+LOOBsuOBp+OBsuOCjQ0KK+OBjeOBn+OBmOOBvizjgZPjgYbjgZgNCivjgavjgaPjgZ8s44KI44GX44Gu44G2DQor44GK44GLLOOChuOBjeOBruOBtg0KK+OBiuOBiuOBr+OBlyzjgbLjgo3jgZcNCivjga/jgonjgaAs44GN44Gv44Gh44KN44GGDQor44KP44GN44GV44GLLOOBsuOCjeOBlw0KK+OBhOOCj+OBquOBjCzjgZHjgYTjgYTjgaENCivjgYvjgo/jgZfjgoos44G/44Gk44GKDQor44GE44Gq44KC44GoLOOBvuOBleOBi+OBmg0KK+OBleOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgaAs44Gf44GR44Gy44GTDQor44GE44GE44GgLOOCiOOBl+OBsuOBqA0KK+OBi+OBmOOBrizjgb7jgoLjgosNCivjgb/jgo8s44Gv44KL44GL44GaDQor44G144GP44GELOOBkeOBhOOBhOOBoQ0KK+OBmeOBiOOBquOBjCzjgajjgYrjgosNCivjgY/jgavjgYjjgaAs44KG44Gf44GLDQor44GN44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBhOOBqSzjgajjgYrjgosNCivjgYrjgY/jgaAs44KK44KH44GG44GZ44GRDQor44G744KK44GL44KPLOOBi+OBpOOBjQ0KK+OBmeOBiOOCguOBqCzjgabjgaTjgoQNCivjgojjgZPjgoTjgb4s44Go44GX44Gy44KNDQor44G144GY44KC44GoLOOBqOOBv+OBig0KK+OBjeOBmyzjgZfjgofjgYbjgZgNCivjgavjgZfjgoDjgoks44Gy44Gn44Gy44GTDQor44Gf44GL44GgLOOBk+OBhuOBmA0KK+OBpOOBi+OBoCzjgb7jgZXjgYvjgZoNCivjgajjgojjgaAs44GI44GE44GYDQor44GV44GuLOOBqOOBiuOCiw0KK+OBq+OBl+OBoCzjgb7jgZXjgbLjgZMNCivjgYrjgYrjgoLjgoos44GE44Gh44KN44GGDQor44GK44GW44GNLOOBqOOBiuOCiw0KK+OBhOOBl+OBvuOCiyzjgZfjgZLjgoTjgZkNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44GL44GX44KP44Gw44KJLOOBruOBvOOCiw0KK+OBguOBleOBrizjgoTjgZnjgYvjgZoNCivjgbLjgonjga4s44GX44KT44GYDQor44Gf44Gr44KE44G+LOOBpuOBpOOCjeOBhg0KK+OBhuOCgeOBsOOChOOBlyzjgZHjgpPjgZgNCivjgYrjgoDjgoks44Gy44Gn44GKDQor44GV44GL44GQ44GhLOOBjeOCiOOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgZfjgofjgYbjgZQNCivjgoTjgb7jgoLjgags44GC44GN44KJDQor44GI44Gh44GULOOBk+OCjOOBguOBjQ0KK+OBleOCj+OBoCzjgoTjgZnjgbLjgZMNCivjgojjgZPjgYQs44GL44Ga44KG44GNDQor44GN44Gf44KA44KJLOOCiuOBiw0KK+OChOOBmSzjgYvjgYrjgosNCivjgZ/jgYvjgYos44GY44KF44KT44GTDQor44GL44Gk44KJ44GK44GLLOOBl+OCk+OBnuOBhg0KK+OBpOOBvOOBhCzjgb7jgZXjgbLjgZMNCivjgaTjgZgs44GX44GS44GKDQor44Gf44GL44Gv44GXLOOBguOBjeOBig0KK+OBmeOBjuOBjSzjgZ/jgYvjgY0NCivjgZ/jgZHjgYbjgaEs44Gf44GL44Gy44KNDQor44GL44G/LOOBqOOBl+OBi+OBmg0KK+OBk+OBsOOChOOBi+OCjyzjgoTjgZnjgbLjgZMNCivjgYLjgYrjgags44GY44Gk44GYDQor44Gf44GgLOOCiOOCiuOBkw0KK+OBsuOBoOOBiyzjga7jgorjgZMNCivjgavjgZfjgoDjgoks44Gh44GI44GTDQor44GI44Gw44KJLOOBpOOBreOBig0KK+OBv+OBmuOCguOBqCzjgYvjgZrjgoQNCivjgZnjgZrjgY0s44GN44KI44GXDQor44GX44GE44GqLOOBr+OCi+OCiOOBlw0KK+OBl+OBiuOBnyzjgb/jgaTjgbLjgZMNCivjgarjgYvjga/jgoks44GT44GG44GE44GhDQor44GU44GG44GgLOOBjeOCiOOBlw0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgZUNCivjgb7jgZnjgoLjgags44GY44KF44KT44GE44GhDQor44Gq44GL44GM44KPLOOBjeOBhOOBoQ0KK+OBhOOBqSzjgZ/jgYvjgobjgY0NCivjgojjgorjgbXjgZgs44Gu44G844KLDQor44G+44Gk44KC44GoLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgY/jgavjgYLjgY0NCivjgarjgaTjgYQs44Gy44Gn44GNDQor44GG44GK44GuLOOBi+OBiuOCig0KK+OBn+OBquOBlCzjgZHjgYTjgZMNCivjgZ/jgb7jgYzjgo8s44Gu44KK44Gy44GoDQor44GK44GLLOOBn+OBi+OBlw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgosNCivjgYrjgYvjgaAs44KG44GG44GTDQor44GN44Gu44GX44GfLOOBsuOBp+OBsuOBkw0KK+OBl+OBv+OBmizjgYLjgY3jgokNCivjgZPjgbDjgoTjgZcs44GN44KI44Gf44GLDQor44Gu44GgLOOBvuOBleOBlw0KK+OBi+OBruOBhizjgaTjgZDjgbLjgo0NCivjgYvjgZjjgYrjgYss44GC44GN44Gy44GoDQor44GK44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBiuOBr+OBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44KG44GG44GE44GhDQor44GT44GE44Ga44G/LOOBhOOBj+OBig0KK+OBn+OBquOBiyzjgbLjgajjgZcNCivjgbXjgY/jgaAs44Go44GX44KEDQor44Gq44GL44GW44KPLOOBruOBvOOCiw0KK+OBu+OCiuOBi+OCjyzjgZXjgajjgZcNCivjgYbjgaHjgoTjgb4s44KC44KK44Gy44KNDQor44GE44Ga44Gf44GrLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBjeOBhCzjgajjgZfjgZMNCivjgZ/jgYvjgZss44Gu44G244Gk44GQDQor44G+44GZ44GW44GNLOOBn+OBi+OBlw0KK+OBguOCk+OBqeOBhizjgajjgYrjgosNCivjgYvjgZ/jgY7jgoos44GX44GS44GE44Gh44KN44GGDQor44KC44KK44KE44G+LOOBqOOBl+OChA0KK+OBleOBqOOBhizjgYLjgY3jgbLjgo0NCivjgbLjgovjgYvjgo8s44GV44Go44GXDQor44GG44GI44GgLOOBvuOBleOBig0KK+OBquOBiyzjgajjgZfjgZ/jgYsNCivjgb/jgoTjgZbjgY0s44Gy44KN44GXDQor44GK44GK44GP44G8LOOBvuOBleOBn+OBiw0KK+OBn+OBoeOBi+OCjyzjgb7jgZPjgagNCivjgo/jgZ/jgarjgbks44G/44Gh44Gq44GKDQor44GC44GV44GL44KPLOOBm+OBhOOBmA0KK+OBi+OCj+OBr+OCiSzjgb7jgZXjgoQNCivjgYrjgZXjgaAs44Gv44GY44KBDQor44GV44GL44GELOOBr+OCi+OBig0KK+OBj+OCiuOChOOBvizjgZXjgarjgYgNCivjgZXjgYTjgajjgYYs44GT44Ga44GIDQor44GZ44GN44GM44KJLOOCiOOBl+OBkw0KK+OBguOBkeOBsizjgY/jgb/jgZMNCivjga/jgoTjgZcs44GN44KI44G/DQor44GL44KP44GfLOOBquOBiuOBvw0KK+OBl+OBvuOBjOOBjSzjgb/jgZXjgYgNCivjgbvjgoos44GL44Ga44KIDQor44Gu44KA44KJLOOCiOOBl+OBkw0KK+OBqOOCgOOCiSzjgZfjgpPjgYTjgaENCivjgY/jgbws44GN44KI44GTDQor44Gr44GX44KC44GoLOOBruOCiuOBsuOBqA0KK+OCiOOBl+OBoCzjgZPjgYbjgZgNCivjgZXjgY4s44Gf44GL44KI44GXDQor44GL44KT44GuLOOBkeOBhOOBkw0KK+OChOOBtuOBrizjgb7jgZXjgY0NCivjgoTjgZnjgarjgYws44Gy44KN44KG44GNDQor44Gy44GM44GX44GG44GILOOBsuOCjeOBsuOBqA0KK+OBk+OBleOBjSzjgb7jgZXjgobjgY0NCivjgarjgYss44Go44GX44Gy44KNDQor44GK44GuLOOBqOOBiuOCiw0KK+OCgOOCieOBnyzjgZPjgYbjgZ7jgYYNCivjgZfjgofjgYbjgZgs44Gy44Gn44GC44GNDQor44GL44KP44KC44GoLOOBguOBjeOBsuOCjQ0KK+OBiOOBleOBjSzjgb7jgZXjgosNCivjgYjjgYTjganjgoEs44Gy44Gn44GL44GaDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OCguOBqOOChOOBvizjgoTjgZnjgYvjgZoNCivjga/jgb7jgaAs44GC44GN44KJDQor44GT44GX44GL44KPLOOBqOOBl+OBig0KK+OBr+OChOOBlyzjgb7jgZXjga/jgosNCivjgoTjgb7jgZbjgY0s44KG44GN44KEDQor44G+44Gk44KC44GoLOOCiOOBl+OBvuOBlQ0KK+OBiuOBrizjgZfjgpPjgYTjgaENCivjga/jgarjgo8s44Gf44Gg44GXDQor44Gv44Gb44GM44KPLOOBkeOBhOOBmA0KK+OBv+OChOOBnyzjgb7jgZXjgYLjgY0NCivjgY3jgZ/jgZbjgo8s44G+44GV44GL44GaDQor44GI44KT44GpLOOChOOBmeOBsuOBkw0KK+OBquOBjOOBleOBiyzjgojjgZfjgYLjgY0NCivjgojjgZfjgoLjgags44Gy44KN44G/44GkDQor44GP44KN44GV44KPLOOBkeOCk+OBleOBjw0KK+OBvuOCi+OChOOBvizjgojjgZfjga/jgosNCivjgarjgYvjgavjgZcs44GL44Ga44KG44GNDQor44KI44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBteOBj+OBnyzjgbLjgafjgoQNCivjgbXjgZjjgZXjgo8s44GL44Gk44Gy44GTDQor44GV44GP44G+LOOCiOOBl+OBr+OCiw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgb8NCivjgo/jgaAs44G+44GV44GK44G/DQor44Gr44GX44GW44GNLOOBruOBtuOBig0KK+OBteOBi+OBjOOCjyzjgYjjgaTjgZMNCivjgYLjgYrjgoTjgb4s44G+44GV44GL44GaDQor44GN44KI44Gf44GrLOOBpOOBqOOCgA0KK+OBqOOCiuOBr+OCiSzjgbLjgo3jgobjgY0NCivjgarjgYzjga4s44Gf44GR44GXDQor44GK44GK44GMLOOChuOBn+OBiw0KK+OBleOBi+OBrizjgZ/jgYvjgZcNCivjgb/jgaTjga/jgZcs44G+44GV44Gy44KNDQor44GC44KK44KC44GoLOOBm+OBhOOBkw0KK+OCiOOBl+OBvuOBpCzjgZ/jgYvjgYLjgY0NCivjgYLjgYrjgoTjgY4s44GC44GN44GKDQor44KE44G+44GgLOOBvuOBleOBsuOBkw0KK+OCgOOCieOBnyzjgobjgb/jgZMNCivjgYTjgorjgYgs44GX44KT44GE44GhDQor44KE44G+44GW44GNLOOBvuOBleOBruOCig0KK+OBiOOBnuOBiCzjgZHjgYTjgYTjgaENCivjgZXjgajjgYYs44Gk44KI44GXDQor44GK44GK44GfLOOBjeOCiOOBlw0KK+OBhOOBruOBhizjgoLjgorjgbLjgagNCivjgYvjgaks44Gf44Gk44KEDQor44GV44GV44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBkeOBsizjgojjgZfjgbLjgo0NCivjgaTjgaHjgoQs44GL44Ga44KEDQor44G+44GV44GK44GLLOOBl+OCh+OBhuOBnuOBhg0KK+OBmeOBmuOBjSzjgoTjgZnjgYoNCivjgajjga0s44Go44G/44Gy44KNDQor44GK44GK44KP44GgLOOBruOCiuOBguOBjQ0KK+OBhuOBiOOBjSzjgb7jgZXjgagNCivjgb7jgYjjgaAs44GL44Ga44Gu44KKDQor44G144GY44GK44GLLOOChOOBmeOBkw0KK+OBhuOCieOBuSzjgarjgYrjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GE44GV44GLLOOBvuOBleOBguOBjQ0KK+OBq+OBl+OBleOBiyzjga7jgbbjgYoNCivjgYTjgo/jgZUs44GI44GE44GE44GhDQor44Gf44GP44GX44G+LOOCiOOBl+OBig0KK+OBpOOBi+OCguOBqCzjgbXjgb/jgYoNCivjgZXjgY/jgb4s44Gf44GR44Gy44GTDQor44Gy44KH44GG44Gp44GGLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZXjgZXjgY0s44G+44GV44GKDQor44G144GP44KP44GNLOOBqOOBl+OChA0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44Go44KI44Gy44GTDQor44GX44KN44GELOOChOOBmeOBlw0KK+OBk+OBi+OBtizjgZ/jgaDjgYoNCivjga7jgZDjgaEs44Gy44KN44GNDQor44Gf44GL44GkLOOBsuOCjeOBi+OBmg0KK+OCiOOBreOBluOCjyzjgabjgaTjgoQNCivjgZXjgYvjgYTjgaAs44KE44GZ44Gy44KNDQor44GT44GE44Ga44G/LOOBv+OBpOOChA0KK+OBvuOBiOOBoCzjgYvjgaTjgobjgY0NCivjgb7jgpPjgaAs44Gf44Gg44GXDQor44GT44GQ44KMLOOBhOOBoeOCjeOBhg0KK+OBguOBjeOCguOBqCzjgojjgZfjgagNCivjgZ/jgZHjgoDjgoks44Go44KC44GC44GNDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OChOOBvuOBhuOBoSzjgZjjgoXjgpPjgYTjgaENCivjgZXjgYjjgY0s44KG44GG44GYDQor44KP44GL44Gw44KE44GXLOOBruOBtuOChuOBjQ0KK+OBguOBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgojjgZfjgaAs44Gy44KN44GC44GNDQor44GV44Go44GGLOOBpOOBreOBig0KK+OBiuOBl+OBvizjgoTjgZnjgajjgZcNCivjgZXjgZXjgY0s44G+44GV44Gy44GnDQor44GC44KJ44GELOOBguOBjeOBsuOBpw0KK+OCj+OBn+OBquOBuSzjgabjgaTjgZgNCivjgYTjgZHjgoLjgags44KG44GN44GKDQor44GN44GP44GELOOBk+OBhuOBhOOBoQ0KK+OBsuOCieOBnyzjgbLjgo3jgb8NCivjgb7jgY3jgYbjgaEs44Gf44GP44KEDQor44GT44Gb44GNLOOBl+OCjeOBhg0KK+OBq+OBl+OBi+OCjyzjgoTjgZnjgbLjgo0NCivjgYTjgYzjgonjgZcs44G144G/44GKDQor44Gf44Gq44GLLOOBn+OBoOOBpOOBrQ0KK+OBu+OCk+OBoCzjgYjjgYTjgYTjgaENCivjga/jgaPjgZ8s44Gy44KN44G/DQor44Gv44KJ44GgLOOBsuOBleOBi+OBmg0KK+OCiOOBl+OBoCzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GT44GE44Ga44G/LOOCiuOCh+OBhuOBhOOBoQ0KK+OBk+OBmeOBoCzjgarjgYrjgbLjgZUNCivjgb/jgoTjgZEs44G+44GV44GC44GNDQor44G144GY44KELOOBn+OBkeOBlw0KK+OBvuOBleOBjSzjgYLjgY3jgokNCivjgZXjgY/jgonjgYQs44Gy44Gn44GNDQor44Gr44GX44KE44G+LOOCiOOBl+OBig0KK+OBi+OCj+OBmyzjgZ/jgYvjga7jgbYNCivjgYrjgYvjgZbjgo8s44GX44KT44KEDQor44GC44GV44GLLOOBqOOBl+OChuOBjQ0KK+OBiuOBjOOCjyzjga7jgbbjgYLjgY0NCivjgarjgYzjgZXjgo8s44Gv44GY44KBDQor44GN44Gf44KP44GNLOOBvuOBleOBig0KK+OBl+OBv+OBmizjgb7jgZXjga7jgooNCivjgZPjgbDjgoTjgZcs44G+44GV44Gv44KLDQor44Gf44Gh44Gw44GqLOOBl+OBkuOBkw0KK+OBhOOBvuOBquOBiyzjgZXjgajjgb8NCivjgYbjgZfjgb7jgoss44GR44KTDQor44GK44GL44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBrizjgobjgYbjgYTjgaENCivjgY3jgZ/jgoDjgoks44G/44Gh44GL44GaDQor44Gf44GL44G+44GkLOOBsuOBp+OBjQ0KK+OBqOOBjeOBi+OCjyzjgYvjgZrjgbLjgacNCivjgYTjgZHjgaAs44Go44GX44KEDQor44GE44GX44GgLOOBruOBtuOBn+OBiw0KK+OBn+OBq+OBr+OCiSzjgb/jgaTjgY4NCivjgYrjgYzjgo8s44Gy44Go44GXDQor44Gf44Gq44GLLOOBl+OCh+OBhuOBmeOBkQ0KK+OBquOBiyzjgZHjgYTjgZMNCivjgajjgoLjgZbjgo8s44Gu44G244GTDQor44Gv44KJ44GgLOOBm+OBpOOBkw0KK+OBr+OBquOBtuOBlSzjgYLjgaTjgZMNCivjgajjgY/jgYrjgYss44GC44Gk44GXDQor44G544Gj44GX44KHLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBl+OBvizjgYvjgaTjgbLjgZMNCivjgYLjgZXjgY/jgoks44KE44GZ44Gy44GTDQor44G/44KE44Gn44KJLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgarjgYrjgY0NCivjgojjgZfjgoDjgoks44KI44GX44Gy44GVDQor44GV44KPLOOBvuOBleOChuOBjQ0KK+OBquOBi+OChOOBvizjgZPjgYbjgYTjgaENCivjgbLjgonjgZbjgo8s44KI44GX44Gy44KNDQor44G144GY44KP44KJLOOBvuOBleOBguOBjQ0KK+OBmeOBjOOCj+OCiSzjgajjgYrjgosNCivjgZ/jgavjgYzjgo8s44G+44KK44GKDQor44G744KT44GgLOOChOOBmeOBqA0KK+OBr+OBquOBhCzjgZPjgYbjgYTjgaENCivjgYjjgZDjgaEs44GV44GP44KB44GEDQor44GL44GV44GELOOCiOOBhuOBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgZcNCivjgZ/jgZjjgb4s44GX44KTDQor44GV44Go44GGLOOBn+OBpOOBlw0KK+OBsuOBs+OBrizjgaTjga3jgYoNCivjgZnjgYzjgoQs44GX44KF44GGDQor44GP44KJ44GfLOOBk+OBhuOBhOOBoQ0KK+OBvuOBmeOBoCzjga/jgovjgY0NCivjgZnjgY7jga/jgoks44GR44GE44GTDQor44GL44Gt44GTLOOCiOOBl+OChuOBjQ0KK+OBi+OBpCzjgZ/jgYvjgZcNCivjgb7jgoss44Gy44KN44KEDQor44Gf44Gq44GLLOOBsuOBp+OBi+OBmg0KK+OBqOOBl+OBiuOBiyzjgYLjgY3jgokNCivjgZfjgZLjga4s44KK44KH44GG44GYDQor44KE44G+44KC44GoLOOBleOBqOOBvw0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgZDjgaEs44Gy44KN44GNDQor44GL44KP44KC44KKLOOCiOOBl+OBsuOCjQ0KK+OCgOOCieOChOOBvizjgb7jgZXjgosNCivjgZfjgoXjgYYs44Gq44GK44KEDQor44GE44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBk+OBoOOBvizjgZ/jgaTjgYoNCivjgYvjgajjgYYs44GV44Go44KLDQor44Gv44GP44Gh44KH44GGLOOBhOOBleOBig0KK+OBi+OBkuOCkyzjgYvjgYrjgosNCivjgabjgZrjgYss44GT44GG44GYDQor44Gf44Gr44GQ44GhLOOBvuOBleOBn+OBkQ0KK+OBpuOCieOBoCzjgarjgYrjgY0NCivjgYvjgajjgYYs44Gf44GL44GNDQor44Gq44GE44Go44GGLOOBn+OBkeOBig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44Gf44Gq44GLLOOBsuOBp+OBqOOBlw0KK+OBleOBleOBjSzjgo/jgZ/jgosNCivjgbvjgpPjgaAs44G/44Gh44GoDQor44Gy44GI44GgLOOBguOBjeOBig0KK+OBleOBi+OBhCzjgYvjgZrjga7jgooNCivjgYvjgaTjgb8s44Gf44GL44GXDQor44Gf44GR44G5LOOBn+OBi+OBlw0KK+OBruOBkOOBoSzjgaTjgojjgZcNCivjgo/jgaAs44GI44GE44GYDQor44GG44GI44KE44G+LOOBkeOCk+OBmA0KK+OBhuOBiOOBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgpPjgZQs44Gy44Gn44GKDQor44KA44KJ44GL44G/LOOBi+OBpOOBvw0KK+OBguOCieOBjSzjgZPjgYbjgZ7jgYYNCivjgYLjgonjgZss44G+44GZ44Gy44KNDQor44KE44G+44KC44GoLOOBl+OCjeOBhg0KK+OCj+OBl+OBiizjgbLjgo3jgobjgY0NCivjgo/jgZHjgZjjgb4s44KI44GX44G144G/DQor44GT44GE44Ga44G/LOOBkeOCk+OBmeOBkQ0KK+OBqOOBj+OChOOBvizjgajjgZfjgbXjgb8NCivjgajjgb/jgarjgYws44GR44KT44GYDQor44GN44GX44GgLOOBm+OBhOOBmA0KK+OBkeOCkyzjgb/jgaHjgbLjgo0NCivjgbLjgo3jgZss44KI44GX44KG44GNDQor44GG44Gh44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OCj+OBi+OBmeOBjizjgZ/jgaDjgZ/jgYsNCivjgYTjgZfjgZDjgo0s44GL44Gk44Gu44KKDQor44Gr44GX44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBhOOBruOBvuOBnyzjgYvjgYrjgosNCivjgaTjgaTjgb8s44Go44GX44Gy44GTDQor44GE44KK44GILOOBguOBpOOBlw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYoNCivjgYbjgYjjga4s44GX44KT44GE44GhDQor44G744KT44GgLOOBiuOBleOCgA0KK+OBjeOBn+OCgOOCiSzjgYvjgojjgZMNCivjgoTjgb7jgYzjgb8s44Gq44G/DQor44Gq44GL44Gr44GXLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOBoCzjgZ/jgYvjgZcNCivjgbLjgo3jgZ8s44KP44Gf44KLDQor44GG44GI44GgLOOBqOOCguOBjQ0KK+OBhOOBkeOBoCzjgbLjgo3jgZcNCivjga/jgarjgbbjgZUs44KI44KK44Gu44G2DQor44GT44Gg44G+LOOBsuOCjeOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgarjgYrjgY0NCivjgZnjgZrjgY0s44Gy44KN44G/44GkDQor44GZ44Ga44GNLOOBsuOBleOBiA0KK+OBq+OBhOOBj+OCiSzjgYLjgY3jgbLjgo0NCivjgavjgZfjgaAs44Gy44KN44Gy44GVDQor44GK44GV44G5LOOBmOOCheOCk+OBhOOBoQ0KK+OBu+OBneOBi+OCjyzjgZHjgpPjgYTjgaENCivjgYTjgb7jgYos44KI44GG44GE44GhDQor44G144GY44GfLOOCiOOBl+OBruOBtg0KK+OBiuOBiuOBrizjgojjgZfjga7jgooNCivjgarjgYvjgoTjgb4s44KI44GX44GKDQor44Gv44KE44GXLOOBkeOBhOOBmA0KK+OBmeOBjOOBr+OCiSzjgYvjgZrjga7jgooNCivjga/jgonjgaAs44GE44Gh44KN44GGDQor44GC44G5LOOBl+OCheOCk+OBhOOBoQ0KK+OBguOBuSzjgZHjgYTjgYTjgaENCivjgYLjgbks44GR44KT44GE44GhDQor44GC44Gg44GhLOOBn+OBoOOBsuOCjQ0KK+OBguOBhOOBsCzjgaDjgYTjgZnjgZENCivjgYLjgYvjgbDjga0s44GL44Ga44GKDQor44GC44KT44Gp44GGLOOBiOOBhOOBuw0KK+OBguOCk+OBqeOBhizjgajjgoLjgobjgY0NCivjgYLjgYrjgY0s44G+44GV44GXDQor44GX44GE44GNLOOBsuOCjeOBlw0KK+OBguOCieOBhCzjgZfjgofjgYbjgYTjgaENCivjgYLjgonjgYQs44Go44GK44KLDQor44GC44KJ44GELOOBn+OBkeOBlw0KK+OBguOCieOBi+OCjyzjgYTjgZXjgYoNCivjgYLjgonjgY0s44Gf44Gk44KEDQor44GC44KJ44GNLOOBn+OBi+OChuOBjQ0KK+OBguOCieOBjSzjgY3jgojjga/jgosNCivjgYLjgonjgY0s44GL44Ga44GC44GNDQor44GC44KJ44G+44GNLOOBvuOBjeOBig0KK+OBguOCieOCgSzjgZ/jgYvjga0NCivjgYLjgorjgoDjgoks44Gf44GR44GXDQor44GC44GV44G/LOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBmuOBvizjgbLjgo3jgojjgZcNCivjgbDjgbAs44Gy44Gn44GL44GaDQor44Gw44GwLOOCguOBqOOBkw0KK+OBoeOBsCzjga7jgbbjgYLjgY0NCivjgaHjgbAs44GT44GG44GE44GhDQor44Gh44GuLOOBqOOCguOChuOBjQ0KK+OBoOOBhOOBk+OBjyzjgojjgZfjga7jgbYNCivjgafjgZDjgaEs44Gy44KN44Gu44KKDQor44Gn44GNLOOCiOOBl+OBguOBjQ0KK+OBqeOBhCzjga7jgbbjgbLjgZMNCivjgYjjgaDjgZXjgo8s44Gy44Gn44GNDQor44GI44GQ44GhLOOCiOOBl+OBquOCig0KK+OBiOOCk+OBqSzjgYvjgZrjgo0NCivjgYjjgpPjgaks44G+44GV44GKDQor44GI44KK44GL44KPLOOChuOBhuOBkw0KK+OBteOBmOOBhCzjgbLjgo3jgZcNCivjgbXjgZjjgoLjgags44Gy44Gn44GoDQor44G144GY44KC44GoLOOBvuOChuOBvw0KK+OBteOBmOOBrizjgojjgZfjgYLjgY0NCivjgbXjgYvjga/jgoks44GC44GN44KJDQor44G144GL44G/LOOBquOBiuOBjQ0KK+OBteOBi+OChOOBvizjga7jgbbjgobjgY0NCivjgbXjgY/jgaAs44G+44GV44KG44GNDQor44G144GP44GELOOBvuOBleOBsuOBkw0KK+OBteOBj+OCguOBqCzjgbLjgo3jgZcNCivjgbXjgY/jgarjgYws44G+44GV44Gy44GTDQor44G144GP44GX44G+LOOBruOBtuOBig0KK+OBteOBj+OBl+OBvizjgYvjgZrjgZ/jgYsNCivjgbXjgarjgY0s44GV44GL44GIDQor44G144Gq44GNLOOChOOBmeOBteOBvw0KK+OBteOCi+OChCzjgYTjgZXjgYoNCivjgZTjgYbjga/jgoks44KI44GX44Gy44GVDQor44GU44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBjCzjgZ/jgaDjgZcNCivjga/jgY7jga4s44GL44Ga44KNDQor44GE44Gh44KA44KJLOOBvuOBk+OBqA0KK+OBr+OBvizjgarjgYrjgY0NCivjga/jgarjgaAs44G+44GV44KI44GXDQor44GE44GwLOOBjeOCiOOBleOBoA0KK+OBr+OBm+OBuSzjgYvjgaTjgbjjgYQNCivjga/jgZvjgYzjgo8s44Go44GX44KN44GGDQor44Gv44GX44KC44GoLOOBruOCiuOBguOBjQ0KK+OBr+OBlyzjgarjgYrjgYLjgY0NCivjga/jgZ/jga4s44Gu44G244Gy44KNDQor44Gv44Go44KKLOOBl+OCk+OBn+OCjeOBhg0KK+OBr+OChOOBlyzjgYLjgY3jgbLjgZMNCivjga/jgoTjgZcs44GT44GG44GYDQor44Gy44Gg44GLLOOBi+OBmuOBkw0KK+OBsuOBjOOBlyzjgY3jgojjgZ/jgYsNCivjgb7jga4s44KI44GX44GL44GaDQor44Gy44KJ44GELOOCiOOBl+OBn+OBiw0KK+OBi+OBv+OBleOBjSzjgajjgZfjgbLjgZMNCivjgbLjgonjga4s44G+44GV44Gy44GTDQor44Gy44KN44GELOOBsuOBp+OBig0KK+OBsuOCjeOCguOCiizjgojjgZfjga/jgosNCivjgbLjgo3jgZXjgo8s44GC44Gk44GXDQor44Gy44KN44GV44KPLOOBiuOBleOCgA0KK+OBsuOCjeOBmyzjgZfjgpPjgYTjgaENCivjgbvjgpPjgaAs44KI44GGDQor44G744KT44G+LOOBsuOCjeOChOOBmQ0KK+OBu+OCiuOBuSzjgZfjgZLjgosNCivjgbvjgorjgYgs44Gy44KN44GXDQor44G744KK44GQ44GhLOOChuOBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgajjgZfjgbLjgacNCivjgbvjgoos44Gv44GY44KBDQor44G744KKLOOBsuOCjeOBvw0KK+OBu+OBl+OBi+OCjyzjga7jgorjgobjgY0NCivjgbvjgZ3jgYvjgo8s44GZ44GZ44KADQor44Gy44KH44GG44Gp44GGLOOBvuOBleOBr+OCiw0KK+OBhOOBsOOCieOBjSzjgobjgYbjgYTjgaENCivjgYTjgaHjgYrjgYss44GC44Gk44G144G/DQor44GE44GR44GgLOOBn+OBi+OBsuOBqA0KK+OBhOOBvuOBhCzjgojjgZfjgZ/jgYsNCivjgYTjgb7jgoDjgoks44Gf44GL44GC44GNDQor44GE44G+44Gq44GLLOOBqOOCguOChA0KK+OBhOOBquOBoCzjgbLjgo3jgZcNCivjgYTjgarjgoDjgoks44GT44GG44GE44GhDQor44GE44Gu44GG44GILOOBleOBqOOCiw0KK+OBguOCieOBhCzjgajjgZfjgb8NCivjgYTjga7jgYbjgYgs44GI44GE44GYDQor44GE44GX44GELOOBjeOCiOOBvw0KK+OBhOOBl+OBhCzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44G/44GN44GKDQor44GE44GX44GL44KPLOOBguOBjeOCiQ0KK+OBhOOBl+OBiuOBiyzjgb7jgZPjgagNCivjgYTjgZ3jgaAsDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgaHjgZrjgZMNCivjgYTjgajjgYYs44GL44Ga44Gy44GoDQor44GE44Go44GELOOBn+OBoOOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgZgNCivjgYTjgo/jgYQs44GC44GN44KJDQor44GE44Ga44G/44KELOOBvuOBleOBruOCig0KK+OBi+OBmOOBnyzjgZXjgajjgZcNCivjgYvjgoHjgYQs44GX44KT44GYDQor44GL44Gq44GELOOBvuOBleOBsuOCjQ0KK+OBi+OBquOBluOBlyzjga7jgorjgZMNCivjgYvjga3jgZMs44Gf44GR44GXDQor44GL44Gt44GTLOOBvuOBk+OBqA0KK+OBi+OBruOBhizjgYTjgY/jgYoNCivjgYvjgorjgYYs44GX44GS44GYDQor44Gk44GN44GYLOOBn+OBi+OBruOCig0KK+OBi+OBleOBvuOBpCzjgbLjgo3jgobjgY0NCivjgYvjgZ/jgY7jgZcs44G+44GV44GXDQor44GL44Gf44KE44G+LOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgabjgaTjgoHjgYQNCivjgYTjgZ3jgaAs44Gf44GL44GKDQor44GL44Gf44KE44G+LOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjgZXjgaTjgYoNCivjgYvjgajjgYYs44G+44GT44GoDQor44GL44Go44GGLOOChOOBmeOBlw0KK+OBi+OBqOOBhizjgaHjgYgNCivjgYvjgaTjgb7jgZ8s44Gf44GP44KEDQor44GL44KP44G5LOOChuOBjeOBruOBtg0KK+OBi+OCj+OBuSzjgYLjgaTjgZcNCivjgYvjgo/jgbks44KA44Gt44Gy44GoDQor44GL44KP44GgLOOBkeOCk+OBmeOBkQ0KK+OBi+OCj+OBoCzjgYLjgY3jgbLjgZMNCivjgYvjgo/jgoLjgags44GC44GN44GKDQor44GL44KP44Gf44GrLOOBm+OBhOOBjQ0KK+OBjeOBv+OBmuOBiyzjgb/jgaHjgo0NCivjgY3jgoDjgoks44GL44Ga44KEDQor44GN44KA44KJLOOCiuOCh+OBhuOBn+OCjeOBhg0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgY3jgZXjgYss44Gy44Gn44GKDQor44GN44GX44GgLOOBn+OBi+OBkw0KK+OBjeOBn+OBjOOCjyzjgY3jgofjgYbjgYTjgaENCivjgY3jgZ/jgoDjgoks44KI44GX44Gy44KNDQor44GN44GfLOOBsuOBp+OBqA0KK+OBjeOCiOOBrizjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GL44Gk44Gu44KKDQor44GT44Gg44G+LOOBi+OBmuOBquOCig0KK+OBqeOBsizjgbLjgonjgoTjgZkNCivjgZPjga/jgoks44G+44GV44GNDQor44GT44GE44GnLOOBqOOBl+OChA0KK+OBk+OBhOOCjyzjgbLjgofjgYbjgZgNCivjgZPjgYTjgZrjgb8s44Gv44KL44GTDQor44GT44G+44GkLOOChOOBmeOBn+OBiw0KK+OBk+OCgeOBoCzjgbLjgo3jgobjgY0NCivjgZPjgpPjgaks44G/44GNDQor44GT44KT44GpLOOBqOOBiuOCiw0KK+OBk+OBq+OBlyzjgZjjgoXjgpPjgZgNCivjgZPjgZXjgYss44Gy44KN44GC44GNDQor44GT44Gf44GNLOOBmOOCheOCkw0KK+OBk+OBn+OBqyzjgbLjgafjgY0NCivjgZPjgajjgbbjgY0s44Gy44KN44GXDQor44Gf44GX44KNLOOBi+OBmuOBruOCig0KK+OBj+OBvOOBnyzjgobjgY3jgb7jgZUNCivjgY/jgbws44Gm44Gk44KEDQor44GP44Gp44GGLOOBvuOBleOBqA0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgbLjgo0NCivjgY/jgo3jgZss44GK44GV44KADQor44GP44GX44G+LOOChOOBmeOBkw0KK+OBj+OBl+OBv+OChCzjgZPjgYbjgY0NCivjgY/jgaTjgYvjgZEs44GX44KT44GE44GhDQor44GP44KP44GuLOOBl+OCheOBhuOBnuOBhg0KK+OBvuOBpOOBquOBjCzjgbLjgafjgY0NCivjgb7jgYjjgaAs44KG44GG44GYDQor44G+44GI44Gv44KJLOOBleOBqOOBlw0KK+OBiOOBruOBjSzjgajjgZfjgoQNCivjgb7jgYjjgYvjgo8s44GT44GG44GY44KN44GGDQor44G+44GI44GNLOOBguOChOOBkw0KK+OBvuOCk+OBrizjgZfjgpPjgY4NCivjgb7jga4s44GI44GE44GYDQor44G+44KT44Gf44GrLOOCiOOBhuOBhOOBoQ0KK+OBvuOCi+OChOOBvizjgoTjgZnjgbLjgo0NCivjgb7jgZss44GL44Ga44Gy44GTDQor44G+44GZ44GW44KPLOOBvuOBleOBig0KK+OBvuOBpOOBoCzjgb/jgaTjga7jgooNCivjgb7jgaTjgYQs44GE44Gk44GTDQor44G+44Gk44GELOOBvuOBleOBqA0KK+OBvuOBpOOCguOBqCzjgoTjgZnjgYLjgY0NCivjgb7jgaTjgoDjgoks44GL44Ga44GC44GNDQor44G+44Gk44GuLOOBruOCiuOChuOBjQ0KK+OBvuOBpOOBluOBjSzjgozjgYTjgZMNCivjgb/jgY0s44GX44GS44KLDQor44G/44GT44GgLOOBpuOCi+OChuOBjQ0KK+OBv+OCgOOCiSzjgYvjgZrjgZ/jgYsNCivjgb/jgoDjgoks44GX44GS44Gu44G2DQor44G/44Gq44G/LOOBleOBqOOBlw0KK+OBv+OBquOBvyzjga7jgbbjgbLjgo0NCivjgb/jgarjgags44KE44GZ44GXDQor44G/44Gt44G+44GkLOOBruOCiuOBkw0KK+OBv+OBrSzjgb7jgZXjgZ/jgYsNCivjgb/jgZfjgb4s44Gy44KN44KG44GNDQor44G/44KPLOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgb/jgojjgZcs44KG44GG44GTDQor44G/44Ga44GfLOOBmOOCheOCk+OBkw0KK+OCguOCguOBruOBhCzjgZHjgYTjgZnjgZENCivjgbvjgpPjgaAs44Gf44GR44GXDQor44KC44KK44GfLOOChOOBmeOBlw0KK+OCguOCiuOBnyzjgYLjgY3jgbLjgZMNCivjgoLjgoos44GC44GN44KJDQor44KC44KKLOOBguOBpOOBlw0KK+OCguOCiizjgYvjgZrjgbLjgo0NCivjgoLjgoos44G/44Gu44KLDQor44KC44KKLOOBn+OBi+OBlw0KK+OCgOOBreOCgOOCiSzjgajjgZfjgb/jgaQNCivjgoDjgonjgYvjgb8s44KI44GG44GYDQor44KA44KJ44GK44GLLOOBk+OBhuOBmA0KK+OBv+OCh+OBhuOBjCzjgbLjgo3jgY0NCivjgarjgYzjgb/jga0s44G+44GV44GXDQor44KE44G+44GgLOOBl+OCk+OBhOOBoQ0KK+OBquOBjOOBiizjgajjgZfjgYvjgZoNCivjgarjgYzjgZ8s44GR44KT44GYDQor44Gq44GE44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBjOOCjyzjgZ/jgo3jgYYNCivjgarjgYvjgYTjgaEs44Gy44KN44Gu44KKDQor44GV44GV44GNLOOBpOOBi+OBlQ0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44Gd44GG44Gf44KN44GGDQor44Gq44GL44GT44GYLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgbXjgb8NCivjgarjgYvjgoDjgoks44GV44Go44GXDQor44Gq44GL44KA44KJLOOBqOOBiuOCiw0KK+OBquOBi+OCgOOCiSzjgZjjgoXjgpMNCivjgarjgYvjgoDjgoks44Gg44GE44GZ44GRDQor44Gq44GL44KA44KJLOOChuOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgojjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GP44G/44GTDQor44Gq44GL44Gr44GXLOOBqOOBl+OChuOBjQ0KK+OBquOBi+OBrizjgabjgaTjgoQNCivjgarjgYvjga4s44GN44KT44KEDQor44Gq44GL44GX44GKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OBnyzjgYvjgarjgZMNCivjgarjgYvjgoTjgb4s44Gf44GL44GXDQor44Gq44KT44GRLOOBguOBpOOBlw0KK+OBquOCieOBluOBjSzjgZ/jgYTjgaHjgo3jgYYNCivjgarjgorjgZss44KG44GN44Gy44KNDQor44Gq44KL44GK44GLLOOBhOOBleOCgA0KK+OBreOCguOBqCzjgZ/jgaDjgZcNCivjgavjgoDjgoks44GZ44GZ44KADQor44Gr44KA44KJLOOBvuOBleOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgaTjgajjgoANCivjgavjgZfjga4s44GL44Ga44G+44GVDQor44Gr44GX44GX44GfLOOBpuOBpOOBruOCig0KK+OBq+OBl+OBhuOBoSzjgZfjgoXjgYbjgYTjgaENCivjgavjgZfjgoTjgb4s44Gq44GK44Gy44GoDQor44KE44GY44G+LOOCiOOBl+OBiA0KK+OBq+OBl+OBluOCjyzjgobjgZ/jgYsNCivjgavjgo8s44GC44GN44KJDQor44Gu44G244Gq44GMLOOBv+OBpOOBlw0KK+OBruOBjOOBvyzjgb7jgZPjgagNCivjga7jgZDjgaEs44GX44KT44GE44GhDQor44Gu44GQ44GhLOOBv+OChuOBjQ0KK+OBruOBvizjgajjgojjgb8NCivjga7jgb4s44GT44GG44GE44GhDQor44Gu44KA44KJLOOBk+OBhuOBmA0KK+OBruOCgOOCiSzjga7jgorjgYoNCivjga7jgoDjgoks44GX44KF44KT44GE44Gh44KN44GGDQor44Gu44GbLOOBn+OBoOOBguOBjQ0KK+OBruOBluOCjyzjgojjgYbjgYTjgaENCivjgazjgY3jgYQs44GL44Gk44G/DQor44Gs44G+44GKLOOBguOBjeOCiQ0KK+OBrOOBvuOBnyzjgYvjgZrjgbLjgo0NCivjgYrjgaHjgYLjgYQs44Gf44GL44KG44GNDQor44GK44Gh44GC44GELOOCiOOBl+OBig0KK+OBiuOBoOOBr+OCiSzjgYTjgY/jgYoNCivjgYrjgaAs44G/44Gu44KLDQor44GK44GM44GV44KP44KJLOOBl+OCheOBhuOBmA0KK+OBiuOBqeOBvuOCiizjgajjgYbjgYTjgaHjgo3jgYYNCivjgYrjgYvjgaks44G144G/44GKDQor44GK44G+44GVLOOBguOBjeOCiQ0KK+OBiuOBquOBjCzjgbLjgo3jgobjgY0NCivjgYrjgYrjga4s44Gy44Gn44KG44GNDQor44GK44GK44GV44GNLOOBguOBpOOBlw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgZ/jgYsNCivjgYrjgYrjgZnjgb8s44GL44Ga44KG44GNDQor44KE44G+44GX44GfLOOBvuOBleOCiw0KK+OBiuOBiuOBnyzjgarjgpPjgabjgaQNCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44Gk44GLLOOBn+OBpOOChA0KK+OBvuOBpOOBquOBjCzjgojjgZfjgYLjgY0NCivjgYrjgYrjgoTjgb4s44Gu44KK44KG44GNDQor44GK44GL44GgLOOCiuOBiA0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgYrjgYvjgaAs44Gy44KN44G144G/DQor44GK44GL44GgLOOCiOOBl+OBruOCig0KK+OBiuOBruOBp+OCiSzjgZ/jgYvjgYoNCivjgYrjgYvjgoLjgags44Gy44KN44KG44GNDQor44GK44GL44GW44GNLOOBn+OBi+OBguOBjQ0KK+OBiuOBj+OBoCzjgajjgZfjgobjgY0NCivjgYrjgY8s44Gu44G244KG44GNDQor44GK44GuLOOBleOBoeOBkw0KK+OBiuOBrizjgZHjgYTjgYTjgaHjgo3jgYYNCivjgYrjgorjgaYs44GR44KT44GE44GhDQor44GK44GV44GgLOOCgOOBpOOBvw0KK+OBleOBhOOBqOOBhizjgoDjgaTjgYoNCivjgZXjgYTjgajjgYYs44GX44KT44GUDQor44GV44GE44Go44GGLOOBl+OCheOBhuOBmA0KK+OBleOBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44KG44Gf44GLDQor44GV44GE44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZXjgYvjgYQs44GE44Gh44KN44GGDQor44GE44GX44GW44GNLOOChuOBjeOBruOCig0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgYvjga7jgYbjgYgs44Gy44Gn44GKDQor44GV44GL44GG44GILOOBi+OBmuOBvuOBlQ0KK+OBleOBk+OBoCzjga7jgbbjgYoNCivjgZXjgY/jgonjgYQs44GX44GS44Gu44KKDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBleOBrOOBjSzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZXjgZXjgY0s44GC44GN44GoDQor44Go44G/44GfLOOBqOOCguOBquOCig0KK+OBleOBqOOBhizjgabjgaTjgYoNCivjgZXjgajjgYYs44Gq44GK44GNDQor44GV44Go44GGLOOCiOOBl+OBruOCig0KK+OBleOBqOOBhizjgb7jgZXjgobjgY0NCivjgZXjgajjgYYs44Go44GX44KEDQor44GV44Go44GGLOOBguOBpOOBkw0KK+OBleOCj+OBoCzjgb7jgZXjgagNCivjgZvjgYos44GR44KT44GV44GPDQor44Gb44GW44GELOOBi+OBmuOChOOBmQ0KK+OBl+OBsOOBnyzjgZ/jgZHjgbLjgZMNCivjgZfjgbDjgZ8s44KI44GGDQor44GX44GM44GNLOOBguOBjeOBsuOBkw0KK+OBl+OBv+OBmizjgbLjgo3jgoANCivjgZfjgb/jgZos44KI44GX44G/DQor44GX44G/44GaLOOBguOBjeOCiQ0KK+OBl+OBv+OBmizjgYLjgY3jgajjgZcNCivjgZfjgb/jgZos44Gy44Gn44GKDQor44GX44KC44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBl+OBruOBr+OCiSzjgYvjgZrjgbLjgo0NCivjgZfjgonjgaQs44G+44GT44GoDQor44GX44KN44GX44GfLOOBleOBqOOBlw0KK+OBl+OCh+OBhuOBmCzjgobjgYbjgZMNCivjgZfjgofjgYbjgb/jgaQs44KI44GX44Gy44KNDQor44Gd44GgLOOBi+OBpOOBmeOBkQ0KK+OBneOCguOCiizjgZ/jgaTjgYoNCivjgZ3jgYYs44GL44Ga44Gy44GTDQor44Gq44GLLOOChuOBhuOBmA0KK+OBmeOBjuOCgOOCiSzjgZHjgYTjgZcNCivjgZnjgY7jga4s44G+44GV44Gy44KNDQor44GZ44GO44GV44KPLOOBruOBtuOChuOBjQ0KK+OBmeOBjuOBnyzjgZXjgobjgooNCivjgZnjgY7jgYbjgaEs44GX44KT44GZ44GRDQor44GZ44GO44KE44G+LOOBguOBjeOBruOCig0KK+OBmeOBjuOChOOBvizjgb7jgZXjga7jgooNCivjgZnjgY7jgoTjgb4s44GL44Ga44G/DQor44GZ44Ga44GNLOOBl+OCk+OChA0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgZnjgZrjgY0s44GX44KTDQor44GZ44Ga44GNLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYLjgY0NCivjgZnjgZrjgY0s44Gy44Gn44GoDQor44GZ44Ga44GNLOOBk+OBhuOBhOOBoQ0KK+OBmeOBmuOBjSzjgobjgYbjgZMNCivjgZ/jgaHjgbDjgaos44Gf44GL44GXDQor44Gf44GE44KJLOOBguOBjeOCiQ0KK+OBn+OBhOOCiSzjgbLjgafjgYLjgY0NCivjgZ/jgYvjgaAs44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBvuOBleOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjga7jgorjgYTjgaQNCivjgZ/jgYvjga/jgZcs44Gf44GL44KG44GNDQor44Gf44GL44Gv44GXLOOBr+OBmOOCgQ0KK+OBvuOBmeOBluOCjyzjgbLjgajjgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44Gf44GL44G+LOOBsuOBleOBqA0KK+OBn+OBi+OBrizjgb/jgYjjgZMNCivjgZ/jgYvjga4s44GL44Ga44KI44GXDQor44Gf44GL44GV44GLLOOBr+OBmOOCgQ0KK+OBn+OBi+OBmyzjgYvjgaTjgZgNCivjgZ/jgYvjgZ8s44GP44G/44GTDQor44Gf44GL44KE44G+LOOBguOBpOOBlw0KK+OBn+OBi+OChOOBquOBjizjgYLjgorjgbLjgo0NCivjgZ/jgZHjgaAs44GI44KKDQor44Gf44GR44GgLOOBguOBjeOCiQ0KK+OBteOBmOOBhCzjgYLjgaTjgZMNCivjgZ/jgZHjga7jgoos44GE44GP44GXDQor44Gf44GR44GX44GfLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44Gf44GL44Go44GXDQor44Gf44GN44GW44KPLOOBvuOBleOBguOBjQ0KK+OBn+OBjeOBluOCjyzjgaTjgojjgZcNCivjgZ/jgb7jgY0s44GV44Go44GTDQor44Gf44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBn+OCgOOCiSzjgabjgaTjga0NCivjgZ/jgoDjgoks44Gu44G244GKDQor44Gf44Gq44GLLOOBl+OCh+OBhuOBlA0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgbLjgo0NCivjgZ/jgavjgoTjgb4s44Gu44G844KLDQor44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBpuOCieOBjeOBnyzjgarjgYzjga7jgooNCivjgabjgZrjgYss44GX44KT44GE44GhDQor44Go44Gw44KKLOOBmeOBmeOCgA0KK+OBqOOBjOOBlyzjgZjjgoXjgpPjgYTjgaENCivjgoTjgb7jgaAs44GR44KT44GE44GhDQor44Go44GN44Ge44GuLOOBl+OBkuOBig0KK+OBqOOBv+OBquOBjCzjgoLjgajjgbLjgZUNCivjgajjgb/jgarjgYws44GX44KT44GYDQor44Go44G/44GfLOOBl+OCk+OBmA0KK+OBqOOBv+OBnyzjgabjgaTjgYoNCivjgajjgoLjgYrjgYss44Gy44Go44GXDQor44Go44Gu44GV44GNLOOCiOOBl+OBruOCig0KK+OBqOOCiuOBluOCjyzjgYjjgb8NCivjgZPjgYTjgZEs44Gy44KN44GTDQor44Go44KI44GL44KPLOOBvuOBleOCiOOBlw0KK+OBqOOCiOOBi+OCjyzjgbLjgZXjgojjgZcNCivjgaTjgbzjgYQs44Gf44Gg44GXDQor44Gk44GL44GgLOOBqOOBiuOCiw0KK+OBpOOBj+OBhCzjgbLjgZXjgZcNCivjgaTjgovjgYvjgo8s44GI44GE44GYDQor44Gk44Gk44GELOOBqOOBl+OBi+OBmg0KK+OBpOOBpOOBhCzjgobjgYbjgZgNCivjgYbjgaHjgaAs44Gy44KN44GNDQor44GG44Gh44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OBhuOBoeOBvizjgZfjgoXjgpPjgYTjgaENCivjgYbjgaHjgoTjgb4s44GC44GN44Gy44KNDQor44GG44GgLOOBsuOBleOCiOOBlw0KK+OBhuOBiOOBoCzjgYvjgZrjga7jgooNCivjgYbjgYjjga4s44GN44KI44GXDQor44GG44GI44GuLOOBruOCiuOBig0KK+OBhuOBiOOBrizjgZ/jgYvjgZcNCivjgYbjgZHjgYzjgo8s44Gf44GL44KG44GNDQor44GG44G+44Ga44KBLOOCiOOBl+OBsuOCjQ0KK+OBhuOCgeOCgOOCiSzjgY3jgb/jgbLjgo0NCivjgo/jgaAs44Gy44KN44GXDQor44KP44GgLOOChOOBmeOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgorjgofjgYYNCivjgYTjgYTjgaAs44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OCj+OBn+OCiizjgoTjgZnjgojjgZcNCivjgoTjgY4s44KI44GX44KG44GNDQor44KE44G+44GgLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBjCzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G+44GV44Gu44KKDQor44KE44G+44GQ44GhLOOBsuOBp+OBig0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgZcNCivjgoTjgb7jgoLjgags44Gm44Gk44KEDQor44KE44G+44KC44GoLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYvjgZrjgobjgY0NCivjgoTjgb7jgoLjgags44Gy44Gn44GXDQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgYvjgZrjgagNCivjgoTjgb7jgoLjgags44GL44GK44KLDQor44KE44G+44KC44GoLOOBvuOBleOCiOOBlw0KK+OChOOBvuOBquOBiyzjgYjjgYTjgZgNCivjgoTjgb7jgZfjgZ8s44GV44Go44KLDQor44KE44G+44GG44GhLOOBi+OBmuOBguOBjQ0KK+OChOOBvuOBluOBjSzjga/jgovjgbLjgZMNCivjgoTjgb7jgZbjgY0s44G+44GV44Go44GXDQor44KE44G+44GW44GNLOOBkeOCk+OBmA0KK+OChOOBrizjgobjgY3jgYoNCivjgoTjga4s44GT44GG44GE44GhDQor44KE44GZ44GgLOOBn+OBkeOBlw0KK+OChOOBmeOBvuOBpCzjgYvjgaTjgarjgooNCivjgoTjgZnjgoLjgags44GT44GG44GYDQor44KE44GZ44Gr44KPLOOBn+OBi+OChuOBjQ0KK+OCiOOBoCzjgYrjgZXjgoANCivjgojjgaAs44GE44GV44GKDQor44KI44GX44GgLOOCiOOBl+OBsuOCjQ0KK+OCiOOBl+OBhCzjgZ/jgaTjgoQNCivjgojjgZfjgarjgYws44KG44G/44GTDQor44KI44GX44GuLOOBn+OBpOOBvw0KK+OCiOOBl+OBn+OBkSzjgYLjgY3jgbLjgo0NCivjgZ/jgY3jgZbjgo8s44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBi+OBsOOBl+OBvizjgYvjgZrjgbLjgZUNCivjgZXjgY/jgoks44KG44GG44GZ44GRDQor44KA44KJ44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBsuOBjeOBoCzjgYvjgZrjgb8NCivjgoDjgonjgYQs44GP44Gr44Gy44KNDQor44G7LOOBguOBjeOCiQ0KK+OBiOOCk+OBqSzjgZvjgYTjgZgNCivjgabjgonjgoDjgoks44Gf44Gk44GKDQor44KP44Gf44Gq44G5LOOBn+OBi+OBsuOBkw0KK+OBhOOBvuOBhCzjgZfjgZLjgoQNCivjgoLjgorjgoLjgags44Go44GX44GL44GaDQor44GT44KE44KKLOOBm+OBhOOBmA0KK+OBvuOBpOOBv+OChCzjgobjgYbjgYTjgaENCivjgZfjgbDjgZ8s44GL44Ga44GKDQor44Gh44GX44KNLOOCiOOBl+OBsuOCjQ0KK+OBhOOBn+OBvyzjgbLjgafjgYoNCivjgYrjgZbjgY0s44Gy44Go44GXDQor44G144GP44KC44GoLOOBvuOBleOBpOOBkA0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgZXjgo/jgaAs44Gy44KN44GXDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgojjgZfjga7jgooNCivjgb7jgaTjgYrjgYss44KE44GZ44Gu44KKDQor44G/44KI44GXLOOBruOCiuOCiOOBlw0KK+OChOOBvuOBquOBiyzjgZPjgYbjgZjjgo3jgYYNCivjgZfjgb/jgZos44Gy44Go44GXDQor44GT44Gv44KJLOOBvuOBleOBruOCig0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYTjgb7jgYQs44KE44GZ44GKDQor44G144GY44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBk+OBmOOBvizjgoTjgZnjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GN44GP44GhLOOBi+OBpOOBsuOBkw0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgoTjgb7jgZfjgZ8s44Gy44Gn44GC44GNDQor44GC44G5LOOBl+OCk+OBmA0KK+OBpuOBmuOBiyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44KP44Gf44KLDQor44Gr44KPLOOBv+OBruOCiw0KK+OBi+OCgeOBhCzjgb/jgZrjgbsNCivjgoTjga4s44G/44Gk44GKDQor44Gq44GL44G+44KLLOOChOOBmeOBlw0KK+OBiuOBiuOBr+OBnyzjgb7jgZXjga7jgooNCivjgoTjgZnjgoTjgb4s44G+44GV44Gy44KNDQor44GL44GZ44GMLOOBv+OBpOOBig0KK+OBhOOBl+OBhCzjgYLjgY3jgbLjgZMNCivjgbXjgZjjgoLjgoos44Gu44KK44GTDQor44GE44KP44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgovjgb/jgZMNCivjgY3jgZ8s44Go44KC44G/DQor44KA44KJ44GK44GLLOOChuOBhuOBkw0KK+OBhOOBkOOBlSzjgojjgZfjgZrjgb8NCivjgarjgYzjgZXjgo8s44Gy44KN44GYDQor44KE44G+44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OBiuOBoOOBmOOBvizjgobjgZ/jgYsNCivjgYrjgYrjgZ8s44G+44G/DQor44Gv44GO44GuLOOBquOBiuOBhOOBoeOCjeOBhg0KK+OChOOBtuOBjSzjgajjgZfjgYLjgY0NCivjgYTjgY0s44KI44GX44Go44GXDQor44GV44GE44Go44GGLOOBvuOBleOBqA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgarjgYvjgoTjgb4sDQor44KA44KJ44G+44GkLOOBi+OBiuOCiw0KK+OBn+OBl+OCjSzjgZfjgofjgYbjgYTjgaENCivjgYTjgZfjga/jgoks44G+44GV44KG44GNDQor44GX44Gw44GK44GLLOOBn+OBpOOBig0KK+OBquOBi+OBiizjgoTjgZnjga7jgooNCivjgbXjgZjjgZ8s44Go44GX44GNDQor44GV44GP44GfLOOBvuOBleOChuOBjQ0KK+OBr+OBnyzjgZnjgZnjgoANCivjgYrjgYrjgoTjgb4s44Gf44Gg44GXDQor44Gf44GULOOBjeOCh+OBhuOBkw0KK+OBvuOBpOOCgOOCiSzjgYvjgZrjgYoNCivjgYTjgajjgYYs44G+44GV44KG44GNDQor44GN44KA44KJLOOBn+OBkeOBig0KK+OBguOBiuOBjSzjgb/jgaTjgZ/jgYsNCivjgZPjgb7jgYzjgZ8s44Gy44Gn44Go44GXDQor44Gq44KJ44KA44KJLOOBi+OBmuOBkw0KK+OBteOBmOOCguOBqCzjgb7jgZXjgY0NCivjgb/jgoTjgZXjgYss44Go44GX44Gy44GTDQor44Gv44KE44GXLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYrjgYzjgZXjgo/jgoks44GX44KH44GG44GYDQor44GK44GK44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBi+OCj+OBhCzjgajjgoLjgobjgY0NCivjgZfjgb7jgZos44KI44GG44GE44GhDQor44Gf44GL44Gv44GXLOOBjeOBl+OBkw0KK+OBvuOBiOOBluOCjyzjgYTjgZrjgb8NCivjga/jgaAs44GL44GK44KLDQor44G+44Gk44Gy44KJLOOBiOOCig0KK+OBmeOBjuOBr+OCiSzjga7jgbzjgosNCivjgarjgYvjgZjjgb4s44KI44GX44Gu44G2DQor44Gv44Gf44GR44KE44G+LOOBpuOBpOOChA0KK+OBguOBiuOBjSzjgb7jgZXjgbLjgZMNCivjgZfjgbbjgYvjgo8s44GN44KI44Gy44GVDQor44GE44GX44GgLOOBl+OBkuOCiw0KK+OBiuOBi+OBoCzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GC44GN44KJDQor44GL44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgb/jgaQNCivjgoDjgonjgZXjgo8s44G/44Gu44KLDQor44G/44G7LOOBvuOBleOBruOCig0KK+OBmeOBjOOBrSzjgojjgZfjga7jgbYNCivjgYTjgZfjgYvjgo8s44KI44GX44Gy44GTDQor44GK44GLLOOChOOBmeOBsuOCjQ0KK+OBhOOCj+OBvyzjgobjgb/jgZMNCivjgarjgYvjgoTjgb4s44Gy44KN44GXDQor44GE44Go44GGLOOBi+OBmuOBjQ0KK+OBmeOBjuOChOOBvizjgZfjgpPjgYTjgaENCivjgYvjgZfjgoLjgags44KI44GX44GTDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBguOBiuOChOOBvizjgbLjgafjga7jgooNCivjgZfjgbDjgZ8s44GR44KT44GE44GhDQor44G+44Gk44GKLOOCiOOBl+OBruOCig0KK+OBl+OBruOCgOOCiSzjgYLjgYrjgYQNCivjgbXjgovjgYvjgo8s44KI44GX44G144G/DQor44KC44Go44GNLOOBl+OCheOBhuOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgaHjgYoNCivjgYLjgpPjganjgYYs44G+44GV44Gy44KNDQor44Gf44GR44GyLOOBleOBoeOBkw0KK+OBhOOBl+OBhCzjgYLjgY3jgbXjgb8NCivjga7jgaHjgZss44GL44Ga44Gy44GTDQor44G/44KE44Gq44GMLOOBqOOBl+OBkw0KK+OBl+OCk+OBqeOBhizjgbLjgo3jgb8NCivjgYrjgYrjgZ8s44G/44KI44GTDQor44Gf44GrLOOCiOOBl+OBguOBjQ0KK+OBk+OCgOOCjSzjgbXjgb/jga7jgooNCivjgYTjgo/jgZUs44Gy44KN44G/44GhDQor44G+44Gk44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjgbLjgZXjgagNCivjgYLjgYrjgY0s44GC44GN44Gy44GTDQor44G+44Gk44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBlOOBqOOBhizjgbXjgb/jgobjgY0NCivjgYrjgYzjgo8s44GC44GN44KJDQor44GZ44GO44Gf44GrLOOBr+OCi+OBig0KK+OBiuOBj+OBrizjgobjgY3jgYoNCivjgZXjgY/jgonjgaAs44GX44KT44G644GEDQor44KA44GT44KE44G+LOOBruOCiuOBkw0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Gf44Gg44GXDQor44KE44G+44KC44GoLOOBvuOBleOBqOOBlw0KK+OBi+OBreOBkyzjgZfjgoXjgYbjgbjjgYQNCivjgoTjgb7jgZbjgY0s44KE44GZ44Gy44KNDQor44Gq44GL44KA44KJLOOBqOOCgg0KK+OBv+OCjyzjgYrjgZXjgoANCivjgZXjgoDjgYvjgo8s44GX44KN44GGDQor44Gq44GL44GgLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBqOOBvyzjgZHjgpPjgYTjgaENCivjgZ/jgYvjgZfjgb4s44Gk44Gt44GYDQor44GE44GX44GSLOOBguOBjeOBkw0KK+OBmeOBiOOBr+OCiSzjgbLjgo3jgobjgY0NCivjgYTjga7jgYbjgYgs44Gy44Gn44G/DQor44Gu44GY44G+LA0KK+OBleOBj+OBvizjgZXjgaHjgYgNCivjgZXjga4s44KI44GX44G/44GhDQor44KA44KJ44GK44GLLOOBi+OBpOOBmA0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgZ7jgYYNCivjgZXjgYvjgoLjgags44GY44KF44KTDQor44Gq44KL44GKLOOBm+OBhOOBkw0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgbLjgo0NCivjgYrjgYvjgaAs44Gm44Gk44GKDQor44KE44Gy44KNLOOBruOBtuOChuOBjQ0KK+OBsOOBsCzjgZ/jgY/jgoQNCivjgYLjgZ8s44GC44KE44GuDQor44Gq44GM44GbLOOBjeOCiOOBlw0KK+OBi+OCj+OBiCzjgYTjgZrjgb8NCivjgb/jgYbjgoks44G+44GN44KIDQor44G144GY44GfLOOBleOBqOOBkw0KK+OBpOOCi+OBvyzjgojjgZfjgYoNCivjgoLjgaHjgZrjgY0s44GI44G/44GTDQor44KI44GX44GgLOOBi+OBmuOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbXjgb8NCivjgoTjgZnjgoLjgags44G/44Gk44Gv44KLDQor44Gt44KC44GoLOOBn+OBj+OBmA0KK+OBsuOBoOOBiyzjgYbjgYjjgb/jgaQNCivjgb7jgZnjgaAs44GP44G/44GTDQor44Go44GP44Gq44GMLOOBteOBv+OBsuOBqA0KK+OBquOBi+OBluOCjyzjgZnjgZnjgoANCivjgbXjgZjjgarjgo8s44KI44GX44Gv44KLDQor44KI44Gz44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBjeOBn+OBoCzjgZ/jgZHjgZcNCivjgojjgZfjga4s44KE44GZ44Gy44KNDQor44Gw44GwLOOCiOOBl+OBqA0KK+OBj+OCjeOBi+OCjyzjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBqOOBl+OBig0KK+OBpOOBoeOBoCzjgYLjgaTjgZMNCivjgZnjgZrjgY0s44G/44KG44GNDQor44G/44Ga44GuLOOBguOBjeOCiQ0KK+OBn+OBq+OCguOBqCzjgZ/jgY/jgb8NCivjgYTjgZHjga4s44KB44GQ44G/DQor44GE44Go44GGLOOBl+OCh+OBhuOBkw0KK+OBn+OBkeOBoCzjgajjgYrjgosNCivjgb7jgYjjgaAs44GT44GG44G444GEDQor44GP44Gp44GGLOOBi+OBpOOBvw0KK+OBi+OBkuOChOOBvizjgb/jga3jgYoNCivjgoTjgb7jgYvjgZIs44KI44GG44GYDQor44GV44GI44GQ44GVLOOCjOOBhOOBkw0KK+OBv+OBmuOBn+OBqyzjgarjgYrjgZMNCivjgY/jganjgYYs44Go44GX44Gy44GTDQor44GT44GK44KK44KE44G+LOOBv+OBmuOBuw0KK+OBi+OBn+OCiOOBmyzjgojjgZfjgYgNCivjgYrjgZXjgaAs44GR44GE44GTDQor44KE44GO44Gv44GXLOOBl+OCheOBhuOBhOOBoQ0KK+OBmeOBvyzjgZ/jgaTjgYoNCivjgZ/jgarjgYss44GC44Gk44GXDQor44GP44Gp44GGLOOChuOBjeOBig0KK+OBn+OBkeOBsizjgYLjgY3jgokNCivjgYLjgoHjgb/jgoQs44G/44Gh44Gy44KNDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBjeOCiOOBv+OBpCzjgZHjgpPjgZgNCivjgYTjgZrjgb/jgaAs44KI44GX44GLDQor44G144Gq44GNLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBl+OBnyzjgYvjgZrjgbLjgZMNCivjgb/jgYbjgoks44GN44GP44GKDQor44GE44GX44Gw44GXLOOBruOBtuOBkw0KK+OCguOCiuOBguOBhCzjgZHjgYTjgZgNCivjgoDjgonjgoTjgb4s44GI44GE44GY44KFDQor44GK44GV44KPLOOChOOBmeOBruOCig0KK+OBteOBi+OBoCzjgojjgZfjgYvjgZoNCivjgoTjgb7jgaAs44Gy44Gn44Gy44GTDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBiuOBruOBp+OCiSzjgajjgb/jgYoNCivjga/jgoTjgZXjgYss44G+44GV44G/44GhDQor44GK44GK44Gk44GLLOOBsuOBp+OBsuOBkw0KK+OBqOOBiuOChOOBvizjgbLjgo3jgZ/jgYsNCivjgYvjgo/jga/jgoks44G/44Gk44KLDQor44GI44Gz44GV44KPLOOBvuOBleOBjQ0KK+OChOOBvuOBi+OCjyzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44KE44GZ44Go44KCDQor44GZ44Ga44GNLOOBqOOBiuOCiw0KK+OBiuOChOOBvuOBoCzjgZ/jgYvjgZcNCivjgb7jgaTjgoTjgb4s44KK44KF44GG44GE44GhDQor44GC44G5LOOBruOBtuOBsuOCjQ0KK+OBguOBuSzjgoTjgZnjgYoNCivjgYLjgbks44GL44Ga44G+44GVDQor44GC44G5LOOChuOBjeOBig0KK+OBguOBkuOBnyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgYvjga/jga0s44Gy44Gn44Gy44KNDQor44GC44GR44Gq44GMLOOBmOOCheOCkw0KK+OBguOBjeOChOOBvizjgZfjgZLjgYoNCivjgYLjgY3jgZbjgo8s44Gy44Gn44GL44GaDQor44GC44G+44GgLOOBv+OBjeOBig0KK+OBguOBvuOBrizjgb7jgZXjgZcNCivjgYLjgoLjgYYs44GC44GN44GKDQor44GC44KT44Gp44GGLOOBsuOBp+OBguOBjQ0KK+OBguOCk+OBqeOBhizjgarjgYrjgY0NCivjgYLjgpPjganjgYYs44Go44GX44G144G/DQor44GC44GK44GuLOOBsuOCjeOBjQ0KK+OBguOBiuOChOOBvizjgYTjgo/jgYoNCivjgYLjgonjgYQs44GL44Ga44Gy44KNDQor44GC44KJ44GL44KPLOOBsuOBp+OBlw0KK+OBguOCiuOCguOBqCzjgbLjgafjgY0NCivjgYLjgorjgYos44G+44GT44GoDQor44GC44GV44GELOOBguOBjeOCiQ0KK+OBguOBleOBi+OCjyzjgojjgZfjgbLjgagNCivjgY/jgo3jgY0s44KG44GN44Gu44KKDQor44GC44Ga44G+LOOBl+OCk+OBmA0KK+OBsOOCk+OBrizjgb7jgZXjgY3jgogNCivjgbnjgaTjgoTjgY8s44GR44KT44GUDQor44Gz44Go44GGLOOBmOOCkw0KK+OBoeOBsCzjgbLjgo3jgZcNCivjgaHjgoXjgYYs44GL44Gk44GNDQor44GI44GgLOOBkeOCk+OBhOOBoeOCjQ0KK+OBiOOCk+OBqSzjgarjgYrjgb8NCivjgYjjgZXjgY0s44GX44KT44GE44GhDQor44G144GY44GELOOBsuOCjeOBlw0KK+OBteOBmOOBhCzjgbXjgb/jgYoNCivjgbXjgZjjgoLjgags44GC44GN44KJDQor44G144GY44GfLOOBjeOCiOOBquOBig0KK+OBteOBmOOBnyzjgYLjgY3jgbLjgo0NCivjgbXjgZjjgo/jgoks44GV44Go44GXDQor44G144GL44GW44KPLOOBqOOCguOBsuOBqA0KK+OBteOBj+OBoCzjgZnjgZnjgoANCivjgbXjgY/jga/jgoks44KE44GZ44Gy44GTDQor44G144GP44GX44G+LOOBi+OBmuOCiOOBlw0KK+OBteOBj+OBqeOCgSzjgYvjgZrjgbLjgZUNCivjgbXjgY/jgoTjgb4s44GV44Go44GXDQor44G144Gq44Gw44GXLOOBvuOBleOChuOBjQ0KK+OBteOCi+OBoOOBpizjgYLjgY3jgbLjgZMNCivjgbXjgovjgZXjgo8s44GX44KT44GYDQor44G144KL44GfLOOCiuOBjeOChA0KK+OBteOCi+OChCzjgZfjgpPjgYTjgaENCivjgbXjgZfjgY0s44KG44GG44GE44GhDQor44Gv44G+44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBquOBoCzjgYvjgaTjga7jgooNCivjga/jgarjgb8s44Gy44Gn44GKDQor44Gv44KJ44GgLOOBguOBjeOCiQ0KK+OBr+OCi+OBi+OCjyzjgYTjgZrjgb8NCivjga/jgZvjgYzjgo8s44KI44GG44GE44GhDQor44GK44GK44GkLOOCgOOBreOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44GI44G/44GTDQor44Gv44GZ44KC44GoLOOBguOBpOOBlw0KK+OBr+OBo+OBqOOCiizjgaTjgojjgZcNCivjga/jgoTjgZXjgYss44Gf44GL44GKDQor44Gy44Gg44GLLOOBkeOBleOBig0KK+OBsuOBkOOBoSzjgZHjgYTjgZMNCivjgbLjgZDjgaEs44G144GV44KG44GNDQor44Gy44GY44GP44KNLOOBquOBiuOChuOBjQ0KK+OBsuOCieOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgbLjgonjga4s44Gy44KN44KIDQor44Gy44KJ44GfLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBmyzjgZXjgaHjgZMNCivjgbLjgZXjgaAs44Gf44GL44GXDQor44G744KKLOOBruOCiuOChOOBmQ0KK+OBu+OBhuOChCzjgYvjgZrjgbLjgZMNCivjgbvjgpPjgaAs44GX44GS44KG44GNDQor44G744KT44G+LOOBn+OBpOOChA0KK+OBn+OBquOBiyzjgaTjgojjgZcNCivjgbvjgZfjgZjjgb4s44Gf44Gk44GKDQor44G744GX44GLLOOBn+OBkeOBlw0KK+OBu+OBneOBoCzjgaHjgYjjgb8NCivjgYTjgaHjgYvjgo8s44KE44GZ44Gy44KNDQor44GE44Gh44KA44KJLOOBkeOBhOOBlA0KK+OBhOOBjOOBrizjgb/jganjgooNCivjgYTjgYTjgaAs44G+44GV44KG44GNDQor44GE44GE44GK44GLLOOBsuOCjeOBlw0KK+OBquOBjOOBrizjgZXjgajjgosNCivjgYTjgZHjgZbjgo8s44Gu44G244KE44GZDQor44GE44KC44GoLOOBmeOBv+OCjA0KK+OBhOOBquOBmuOBvyzjgoTjgZnjga/jgosNCivjgY/jgZfjgb/jgoQs44GX44KT44GE44GhDQor44GE44Gu44GG44GILOOBl+OCk+OChA0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgokNCivjgYTjga7jgYbjgYgs44Go44KC44KG44GNDQor44GE44Gs44Gk44GLLOOBquOBiuOBjQ0KK+OBhOOBleOBmCzjgbLjgafjgagNCivjgYTjgZfjgaAs44GX44KF44GG44GE44GhDQor44GE44GX44GgLOOBhOOBleOBig0KK+OBhOOBl+OBoCzjgY/jgavjgYLjgY0NCivjgYTjgZfjgYzjgY0s44GI44KK44GTDQor44GE44GX44GM44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBi+OBmOOBn+OBqyzjgYrjgZXjgoANCivjgYTjgZfjga/jgoks44Gy44KN44KG44GNDQor44GE44GX44KA44KJLOOBvuOBleOBsuOBkw0KK+OBhOOBl+OChOOBvizjgZfjgoXjgYbjgYTjgaENCivjgYTjgZfjgZbjgY0s44Gu44G244GKDQor44GE44Gd44G5LOOCiOOBl+OBsuOBkw0KK+OBhOOBneOBluOBjSzjgb7jgZXjgYLjgY0NCivjgYTjgajjgYYs44Gh44GP44GVDQor44GE44Go44GGLOOBsuOBleOBqA0KK+OBhOOCj+OBguOBlSzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgo/jgYQs44Gq44GK44Gf44GLDQor44GE44KP44G+LOOBleOBqOOBlw0KK+OBhOOCj+OCguOBqCzjgojjgYbjgYTjgaENCivjgYTjgo/jgarjgYws44Gy44KN44Gu44KKDQor44GE44KP44GX44GfLOOBl+OBkw0KK+OBhOOCj+OBnyzjgYvjgZrjgb7jgZUNCivjgYTjgo/jgZ8s44GI44GE44GYDQor44GL44Gp44KP44GNLOOBleOBqOOBlw0KK+OBi+OBkuOChOOBvizjgZHjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44GE44Ga44G/DQor44GL44G/44KELOOBj+OBq+OBguOBjQ0KK+OBi+OBv+OChCzjgZHjgpPjgYTjgaENCivjgYvjgpPjgbDjgoTjgZcs44GN44KT44GYDQor44GL44Gu44GGLOOBsuOCjeOBlw0KK+OBi+OCiuOChCzjgarjgorjgoTjgZkNCivjgYvjgZXjgY0s44GY44KF44KTDQor44GL44GX44G+LOOBvuOBleOBig0KK+OBi+OBmeOChCzjgYLjgY3jgokNCivjgYvjgajjgYYs44Gf44GL44GNDQor44GL44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44G/44Gk44GQDQor44GL44Go44GGLOOBsuOBp+OBruOCig0KK+OBi+OBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjgo/jgbDjgZ8s44Gg44GEDQor44GL44KP44Gw44GfLOOBguOBpOOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgb/jgaENCivjgYvjgo/jga/jgoks44Gy44KN44G/DQor44GL44KP44Gv44KJLOOBi+OBmuOBteOBvw0KK+OBi+OCj+OBmOOCiizjgb/jgaHjgYoNCivjgYvjgo/jgYvjgb8s44Gm44Gk44GKDQor44GL44KP44GP44G8LOOBi+OBmuOBqOOBlw0KK+OBi+OCj+OBvuOBnyzjgZ/jgYvjga7jgbYNCivjgYvjgo/jgoDjgoks44Gy44Go44GXDQor44GL44KP44GuLOOBruOCiuOBguOBjQ0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgbLjgagNCivjgYvjgo/jgZfjgb4s44Go44GX44Gy44GVDQor44GL44KP44GaLOOBvuOBleOBruOCig0KK+OBjeOBsOOBlyzjgbLjgafjgbLjgZMNCivjgY3jgb7jgaEs44G+44GV44GNDQor44GN44KC44GoLOOBn+OBkeOBlw0KK+OBjeOCgOOCiSzjgZ/jgY/jgoQNCivjgY3jgpPjgbDjgoks44KI44GX44G/44GhDQor44GN44Gu44GX44GfLOOChOOBmeOBlw0KK+OBjeOBruOBl+OBnyzjgbLjgo3jgY0NCivjgY3jgorjgZXjgo8s44GE44Gh44KN44GGDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgYLjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44GKDQor44GT44Gw44KE44GXLOOBteOBmOOBsuOBkw0KK+OBk+OBoOOBvizjgZPjgYbjgZgNCivjgZPjgaDjgb4s44GK44GV44KADQor44Gf44GL44KA44KJLOOCguOBqOOBsuOBkw0KK+OBk+OBsuOBquOBnyzjgobjgYbjgZnjgZENCivjgZPjgpPjga4s44Gy44KN44GXDQor44GT44KT44GuLOOBn+OBi+OBsuOCjQ0KK+OBk+OChOOBvizjgZPjgYbjgZgNCivjgZPjgZrjgY0s44Go44GX44GKDQor44Go44GG44Gp44GGLOOBk+OBhuOBmA0KK+OBk+OBmOOBvizjgZfjgpPjgZgNCivjgZPjgpPjgaks44GC44GN44KJDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgb7jgZXjgajjgZcNCivjgZPjgpPjga4s44GL44GK44KLDQor44GT44Gf44GNLOOBsuOBqOOBlw0KK+OBk+OChOOBhOOBlyzjgb/jgYsNCivjgZPjgoTjgarjgY4s44Gu44G844KLDQor44GP44G8LOOBkeOCk+OBn+OCjeOBhg0KK+OBj+OBqeOBhizjgY3jgb/jgbLjgagNCivjgY/jgb7jgYzjgYQs44Gq44GK44KG44GNDQor44GP44G+44GNLOOBl+OCk+OBmA0KK+OBj+OCieOBoSzjgZ/jgYvjgobjgY0NCivjgY/jgonjgZ8s44GT44GZ44GRDQor44GP44KK44GfLOOBv+OBjQ0KK+OBj+OCiuOChOOBvizjgZfjgoXjgpPjgZgNCivjgY/jgo3jgaAs44GT44GZ44GRDQor44GP44KN44GL44GOLOOBvuOBleOBruOBtg0KK+OBj+OCjeOBleOCjyzjgZfjgpPjgZgNCivjgY/jgo3jgZXjgo8s44Gb44GE44GNDQor44GP44KP44GuLOOBsuOCjeOBn+OBiw0KK+OBvuOBiOOBsOOBlyzjgajjgZfjgYLjgY0NCivjgb7jgYjjgZbjgo8s44Gu44G244KG44GNDQor44G+44GuLOOCiOOBl+OBig0KK+OBvuOCi+OCj+OBiyzjgbLjgafjgarjgYoNCivjgYbjgaHjgoTjgb4s44Gf44Gk44GKDQor44G+44GZ44GgLOOBmOOCheOCkw0KK+OBvuOBpOOBhCzjgZfjgZLjgY0NCivjgb7jgaTjgYQs44GV44Go44GXDQor44G+44Gk44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgbLjgZXjgagNCivjgb7jgaTjgarjgYws44G+44GV44Go44GXDQor44G+44Gk44GX44G+LOOCguOCiuOBsuOCjQ0KK+OBvuOBpOOBl+OBnyzjgZ/jgaDjgZcNCivjgb7jgaTjgZbjgY0s44Gf44GR44GXDQor44GE44Gq44GE44GXLOOCiOOBl+OBig0KK+OBv+OBi+OBvyzjgZHjgYTjgYTjgaENCivjgb/jgarjgY4s44GC44GN44G/44GkDQor44G/44Gk44KE44G+LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBv+OBhuOCiSzjgZfjgZLjgY0NCivjgb/jgoTjgZEs44GC44Gk44GXDQor44G/44KE44KC44GoLOOBguOBpOOBkw0KK+OBv+OChOOBnyzjgZPjgYbjgZgNCivjgb/jgoTjgYbjgaEs44G+44GV44GNDQor44G/44KE44GG44GhLOOBhOOBoeOCjeOBhg0KK+OBv+OChOOBluOCjyzjgYLjgY3jgokNCivjgb/jgoTjgZbjgo8s44Gf44GL44GXDQor44G/44KI44GgLOOBn+OBi+OBsuOBlQ0KK+OBv+OBnuOBtuOBoSzjgZHjgpPjgZgNCivjgb/jgZ7jgZ8s44Gf44GR44GKDQor44Gh44GwLOOBsuOCjeOBsuOBlQ0KK+OBv+OBmuOBr+OBlyzjgb7jgZPjgagNCivjgb/jgZrjgb7jgaEs44Gb44GE44GYDQor44G/44Ga44Gf44GrLOOBleOBqOOBlw0KK+OBv+OBmuOBn+OBqyzjgaTjgojjgZcNCivjgb/jgZrjgZ/jgass44Gy44KN44KG44GNDQor44KC44Gh44Ga44GNLOOBv+OBruOCiw0KK+OCguOCiuOCguOBqCzjgarjgarjgZMNCivjgoLjgorjgZ/jgass44Gf44GL44GXDQor44KC44KK44GfLOOBqOOCiOOBsuOBkw0KK+OCguOCiuOBnyzjgZ/jgYvjgZcNCivjgoLjgorjgo/jgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GP44GELOOBn+OBkeOBsuOBkw0KK+OCguOCiizjgZ/jgZHjgb8NCivjgoLjgoos44Gf44GL44KG44GNDQor44KA44GT44KE44G+LOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBpizjgZfjgpPjgYTjgaENCivjgoDjgajjgYYs44GL44Gk44GNDQor44Gq44GM44GELOOBv+OBpOOBsuOCjQ0KK+OBquOBjOOBrizjgb/jgaTjgajjgZcNCivjgarjgYzjgYrjgYss44Gf44GL44Gy44KNDQor44Gq44GM44GbLOOBi+OBpOOBvw0KK+OBquOBjOOBnyzjgbLjgo3jgobjgY0NCivjgarjgYzjgZ8s44KC44Go44GNDQor44Gq44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBvuOCiyzjgojjgZfjgY0NCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gq44GL44KA44KJLOOBqOOCguOBkw0KK+OBguOBuSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgoDjgoks44Go44GX44KEDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OBl+OBvizjgbLjgZXjgojjgZcNCivjgarjgYvjgZfjgYos44Gy44KN44KG44GNDQor44Gq44GLLOOBruOCiuOBkw0KK+OBquOBv+OBjSzjga7jgorjgYvjgZoNCivjgarjgpPjgbYs44Gy44KN44GX44GSDQor44KE44G+44GQ44GhLOOBl+OCk+OBmA0KK+OBq+OBhOOBvyzjgZfjgZLjgbXjgb8NCivjgavjgZfjgaAs44Gy44KN44KI44GXDQor44Gr44GX44GgLOOBiOOBhOOBmA0KK+OBq+OBl+OBoCzjgb7jgZXjgYLjgY0NCivjgavjgZfjgaAs44GZ44GZ44KADQor44Gr44GX44GP44G8LOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgYvjgYLjgY0NCivjgavjgZfjgoDjgoks44Gk44KI44GXDQor44Gr44GX44GKLOOBvuOBleOBqA0KK+OBq+OBl+OBiizjgZfjgpPjgZgNCivjgavjgZfjgoTjgb4s44Gf44GL44GXDQor44KE44GM44KPLOOBkeOBhOOBmA0KK+OBq+OBo+OBnyzjgbLjgo3jgb8NCivjga7jgbnjgYrjgYss44GC44GN44G7DQor44Gu44GY44KKLOOCiOOBl+OBruOBtg0KK+OBruOCgOOCiSzjgabjgaTjgoQNCivjga7jgarjgYss44GL44Gk44GXDQor44GK44Gw44GqLOOBv+OBruOCiw0KK+OBiuOBoeOBguOBhCzjgajjgZfjgobjgY0NCivjgYrjgaHjgb/jgZos44Gf44GL44GXDQor44GK44GhLOOBv+OBpOOBruOCig0KK+OBiuOBoOOBiuOBiuOBr+OCiSzjgZfjgpPjgZQNCivjgYrjgaAs44Gy44KN44GL44GaDQor44GK44GM44GfLOOBvuOBleOBjQ0KK+OBiuOBjOOCjyzjgb7jgZXjgajjgZcNCivjgYrjgYzjgo8s44GI44Gk44GTDQor44GK44GQ44KJLOOBquOBiuOChuOBjQ0KK+OBiuOBiuOBsuOCiSzjga7jgbbjgobjgY0NCivjgYrjgYrjgbLjgoks44GE44Gh44KN44GGDQor44GK44GK44GE44GXLOOBguOBjeOCiQ0KK+OBiuOBiuOBhOOBlyzjgb7jgZPjgagNCivjgYrjgY0s44GL44KGDQor44GK44GK44GP44G8LOOBi+OBmuOBkw0KK+OBiuOBiuOBrizjgZHjgYTjgZMNCivjgYrjgYrjgazjgb4s44GX44GS44Gu44G2DQor44GK44GK44Gs44G+LOOBquOCi+OBlw0KK+OBiuOBiuOBn+OBjSzjgb7jgZXjgbLjgacNCivjgYrjgYrjgZ8s44Go44GK44KLDQor44GK44GK44GfLOOCiOOBl+OBquOBjA0KK+OBiuOBiuOBnyzjgZPjgYbjgYTjgaENCivjgYrjgags44G+44GV44Ga44G/DQor44GK44GK44Gk44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOChOOBjizjgb7jgZXjgbLjgo0NCivjgYrjgYrjgoTjgb4s44GC44Gk44GXDQor44GK44GE44GILOOBi+OBmuOChA0KK+OBiuOBmOOBvizjgYLjgY3jgokNCivjgYrjgYvjgbks44GE44Gh44KN44GGDQor44GK44GL44GgLOOBqOOBiuOCiw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgY0NCivjgYrjgYvjga0s44Gf44GL44GXDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBiuOBi+OBrizjgb7jgZXjgZMNCivjgYrjgYvjgZbjgY0s44Gv44KL44Gy44GTDQor44KP44Gf44Gq44G5LOOBvuOBleOBqOOBlw0KK+OBiuOBj+OBoCzjgYLjgaTjgbLjgo0NCivjgYrjgY/jga4s44GL44Gk44GXDQor44GK44Gq44KELOOBi+OBmuOBkw0KK+OBiuOBrizjgY3jgojjgZcNCivjgYrjga4s44GX44KT44KEDQor44GK44GK44GuLOOChuOBn+OBiw0KK+OBiuOBleOBquOBhCzjgY3jgojjgYLjgY0NCivjgYrjgZbjgY0s44Gy44Gn44GKDQor44GV44GE44Go44GGLOOCiOOBl+OBvw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpMNCivjgZXjgZgs44KE44GZ44Gy44GnDQor44GV44GYLOOBi+OBmuOBig0KK+OBleOBi+OBhCzjgYvjgZrjgbLjgZMNCivjgZXjgYvjgYQs44Go44KC44GZ44GRDQor44GV44GL44GP44KJLOOBn+OBi+OBsuOCjQ0KK+OBleOBi+OBhuOBiCzjgoTjgZnjgobjgY0NCivjgZXjgZXjgbks44G+44GT44GoDQor44GV44GV44GNLOOBsuOBp+OBi+OBmg0KK+OBquOBv+OBjSzjgbLjgo3jgZcNCivjgZXjgZ/jgZEs44GL44Gk44Gy44KNDQor44GV44Gf44GRLOOCj+OBjQ0KK+OBleOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgZXjgajjgYYs44Gf44GR44GXDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgobjgYbjgZ7jgYYNCivjgZXjgajjgYYs44GX44GS44GNDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBleOCj+OBoCzjga/jgZjjgoENCivjgZvjgY3jgZDjgaEs44Gy44KN44GC44GNDQor44Gb44GN44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBm+OBjeOBrSzjgY3jgYTjgaENCivjgZvjgY3jgYrjgYss44G+44KC44KLDQor44Gb44GN44KELOOBsuOCjeOBguOBjQ0KK+OBm+OBjSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZvjgpPjgZ8s44Gu44KK44GC44GNDQor44GX44Gw44GfLOOBleOBqOOBlw0KK+OBl+OBhOOBqizjgbXjgb/jga/jgosNCivjgZfjgYTjgoQs44Gy44Gn44GNDQor44GX44G+44Gw44KE44GXLOOBvuOCguOCiw0KK+OBl+OBvuOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZfjgb7jgaAs44G/44Gh44Go44GXDQor44GX44G+44KA44KJLOOBguOBjeOBsuOBqA0KK+OBl+OBv+OBmizjgbLjgafjgajjgZcNCivjgZfjgb/jgZos44GE44Gf44KLDQor44GX44KC44KA44KJLOOBi+OBpOOBguOBjQ0KK+OBl+OBruOBoCzjgZPjgYbjgZgNCivjgZfjga7jga/jgoks44KC44Go44KG44GNDQor44GX44GK44GW44KPLOOBruOBtuOChuOBjQ0KK+OBl+OCieOBhOOBlyzjgobjgYbjgZgNCivjgZfjgonjgZXjgY0s44KI44GG44GTDQor44GX44KJ44Go44KKLOOBsuOBp+OBmA0KK+OBl+OBleOBhCzjgb7jgZXjgbLjgo0NCivjgZfjgofjgYbjgaAs44GR44GE44GZ44GRDQor44Gd44GGLOOBquOBiuOBjQ0KK+OBneOBruOBuSzjgajjgYrjgosNCivjgZnjganjgYYs44GX44KF44KT44GE44GhDQor44GZ44Gp44GGLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOCiSzjgarjgYrjgY0NCivjgZnjgY7jgoTjgb4s44KK44KH44GG44GE44GhDQor44GZ44GO44KE44G+LOOBqOOCguOBmA0KK+OBmeOBv+OBoCzjgbLjgo3jgY0NCivjgZnjgb/jgYvjgo8s44Gy44Go44GXDQor44GZ44Ga44GNLOOBv+OBreOBi+OBmg0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GNLOOBqOOBl+OBquOCig0KK+OBmeOBmuOBjSzjgojjgZfjgobjgY0NCivjgZnjgZrjgY0s44KE44GZ44GeDQor44GZ44Ga44GNLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgYvjgZrjgYLjgY0NCivjgbvjgZ3jgYvjgo8s44KG44KKDQor44Gf44G244GXLOOBhOOBj+OBnw0KK+OBn+OBoeOBluOCjyzjga7jgorjgbXjgb8NCivjgZ/jgaAs44Gf44GL44GC44GNDQor44Gf44GgLOOBsuOCjeOBqOOBlw0KK+OBn+OBi+OBnyzjgobjgYbjgZnjgZENCivjgZ/jgYvjgYzjgY0s44Gy44Gn44GL44GaDQor44KE44G+44GW44GNLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgaTjgZANCivjgZ/jgYvjga/jgZcs44Gy44KN44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOChOOBmQ0KK+OBn+OBi+OBrizjgZ/jgYvjgbLjgo0NCivjgZ/jgYvjgZXjgY0s44Gf44GL44GXDQor44Gf44GL44GZLOOBi+OBmuOCiA0KK+OBn+OBi+OBqOOCiizjgZPjgYbjgZgNCivjgZ/jgYvjgoTjgb4s44G+44GV44G/DQor44Gf44GL44KE44G+LOOBl+OBkuOCiw0KK+OBn+OBi+OChOOBvizjgobjgYbjgZgNCivjgZ/jgYvjgoQs44KI44GX44GL44GaDQor44Gf44GR44GgLOOBn+OBiOOBkw0KK+OBn+OBkeOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYrjgYss44KI44GX44Gy44KNDQor44Gf44GR44GELOOBruOBtuOBsuOBkw0KK+OBn+OBkeOBhuOBoSzjgajjgoLjgYrjgY0NCivjgZ/jgZHjgYbjgaEs44Gu44KK44Go44GXDQor44Gf44GRLOOBkeOBhOOBkw0KK+OBn+OBjeOBv+OChCzjgajjgoLjgbLjgo0NCivjgZ/jgb7jgZ/jgass44GL44Ga44GC44GNDQor44Gf44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBn+OCgOOCiSzjgZHjgpPjgZgNCivjgZ/jgarjgYss44GL44Ga44Gy44GVDQor44Gf44Gq44GLLOOBqOOCguOChOOBmQ0KK+OBn+OBquOBiyzjgYLjgoTjgZMNCivjgZ/jgarjgYss44Gu44KK44Gy44KNDQor44Gf44Gr44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBn+OBq+OChOOBvizjgYLjgY3jgbLjgZMNCivjgZ/jgpPjga4s44GK44GV44KADQor44Gf44GuLOOBsuOBleOBig0KK+OBpuOCieOBluOCjyzjgYLjgY3jgokNCivjgajjgY/jgZfjgZIs44GV44Go44KLDQor44GU44Go44GGLOOBquOBiuOBjQ0KK+OBqOOBv+OBquOBjCzjgbLjgo3jgbLjgZUNCivjgajjgpPjgZfjgofjgYYs44Gy44Gn44KG44GNDQor44Gk44G844GELOOBl+OCh+OBhuOBhOOBoQ0KK+OBpOOBvOOBnyzjgZfjgofjgYbjgZgNCivjgaTjgZjjgoDjgoks44Gq44GK44GNDQor44G+44Gk44KA44KJLOOBguOBjeOCiQ0KK+OBpOOBi+OBoCzjgbLjgafjgY0NCivjgaTjga3jgojjgZcs44GV44Go44G/DQor44Gk44KL44GK44GLLOOBvuOBleOChA0KK+OBpOOCiyzjgojjgZfjgYoNCivjgYbjgaHjgaAs44Gy44Gn44KG44GNDQor44GG44GI44GgLOOBn+OCguOBpA0KK+OBhuOCgeOBleOBjSzjgY3jgojjgZcNCivjgYbjgonjgYvjgo8s44KG44GG44GYDQor44GG44KJ44GL44KPLOOBi+OBmuOBlw0KK+OCj+OBoCzjgZjjgoXjgpMNCivjgo/jgYvjgbDjgoTjgZcs44GR44KT44GYDQor44KP44GL44G+44GkLOOCiOOBl+OBi+OBmg0KK+OCj+OBn+OBquOBuSzjgYLjgaTjgZMNCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44KKLOOBk+OBhuOBmA0KK+OChOOBuSzjgZPjgYbjgYTjgaENCivjgoTjga/jgY4s44GX44KT44GYDQor44KE44G+44GgLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBoCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgZPjgZcs44G+44GV44KG44GNDQor44KE44G+44KC44GoLOOBneOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgYLjgaTjgZcNCivjgoTjgb7jgoLjgags44KI44GG44GE44GhDQor44KE44G+44KC44GoLOOBleOBoQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgb8NCivjgoTjgb7jgYbjgaEs44Go44GK44KLDQor44KE44G+44GuLOOBsuOCjeOBteOBvw0KK+OChOOBvuOBiuOBiyzjgajjgoLjgZ/jgYsNCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44GnDQor44KE44G+44GG44GhLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgb7jgZUNCivjgoTjgb7jgZbjgY0s44KG44GL44KKDQor44KE44Gq44GO44GX44G+LOOBvuOBmeOBvw0KK+OChOOBvuOCguOBqCzjgb/jgYvjgZMNCivjgoTjga4s44Gf44GL44Gy44GTDQor44KE44GW44GNLOOBn+OBkeOBlw0KK+OCiOOBlCzjgoTjgZnjga/jgosNCivjgojjgZPjgYQs44GL44Gk44G+44GVDQor44KI44GT44G/44GeLOOBqOOBl+OBjQ0KK+OCiOOBk+OBnyzjgobjgYbjgZgNCivjgojjgZPjgZ8s44Gy44GV44GKDQor44KI44GT44GfLOOChuOBhuOBkw0KK+OCiOOBl+OBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44G+44Gh44GTDQor44KI44GX44G144GVLOOBhOOBj+OBteOBvw0KK+OCiOOBl+OBr+OCiSzjgajjgoLjgb7jgZUNCivjgojjgZfjgYTjgYgs44Gv44GY44KBDQor44KI44GX44GL44KPLOOBoeOBiA0KK+OCiOOBl+OBi+OCjyzjgb/jgaTjgbLjgo0NCivjgojjgZfjgYos44KG44GG44GYDQor44KG44GC44GVLOOBvuOBleOCiOOBlw0KK+OChuOBjSzjgYLjgY3jgokNCivjgYLjgaDjgaEs44Go44GX44KG44GNDQor44GK44GK44Gr44GXLOOBi+OBmuOBig0KK+OBiuOBiuOBnyzjgb/jgo/jgZMNCivjgYLjgZXjga4s44G/44Gh44GTDQor44Gr44GX44KA44KJLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOBoCzjgbLjgo3jga7jgooNCivjgZXjgYQs44GP44Gr44GKDQor44G/44KE44KC44GoLOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgZMNCivjgbXjgY/jgYQs44GP44Gr44KEDQor44GK44GP44GgLOOBsuOBleOBkw0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgYoNCivjgbXjgovjgoQs44GL44Gk44G/DQor44KC44Go44KE44G+LOOBquOBiuOBsuOCjQ0KK+OCiOOBl+OBluOBjSzjgobjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GC44Gk44KN44GGDQor44Go44GN44KPLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBquOBoCzjgb7jgZXjgaTjgaoNCivjgajjgY3jgo8s44Gu44KK44KG44GNDQor44KI44GX44GgLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBrizjgZHjgYTjgZMNCivjgYbjgYjjgaAs44Go44KC44GTDQor44Gk44Gh44KELOOChuOBhuOBkw0KK+OBl+OCguOBi+OCjyzjgbXjgb/jgbLjgZMNCivjgb7jgaTjgYQs44GL44Gk44G/DQor44GZ44GM44KELOOCiOOBl+OBig0KK+OBv+OBruOBkOOBoSzjgoTjgZnjgZMNCivjgYbjgYjjgaAs44Gy44GL44KLDQor44GE44GuLOOBqOOCguOBmA0KK+OBvuOBiOOBoCzjgb7jgZPjgagNCivjgaTjgbzjgZ8s44Gu44KK44GKDQor44KI44GX44G/LOOBhOOBj+OBig0KK+OBhOOBoeOBi+OCjyzjgZfjgZLjgbLjgo0NCivjgbvjgoos44Gy44Gn44KEDQor44Gv44KE44GXLOOChuOBn+OBiw0KK+OBl+OBsOOBnyzjgYTjgY/jgZMNCivjgZPjgbDjgoTjgZcs44G+44GZ44Gy44GTDQor44GK44GK44GP44G8LOOBn+OBkeOBlw0KK+OBhOOCj+OBnyzjga7jgbbjgobjgY0NCivjgbXjgZjjgZ8s44G+44GV44Gy44KNDQor44GN44Gf44KA44KJLOOBi+OBmuOBig0KK+OBj+OCjeOBjSzjgZHjgYTjgZMNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44Gw44GfLOOChuOBjeOBkw0KK+OBleOBhOOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgbXjgZjjgo/jgoks44Gf44Gg44GXDQor44GE44Go44GGLOOBi+OBmuOBqA0KK+OBhOOBhOOBkSzjgajjgYrjgosNCivjgZXjgoDjgYvjgo8s44GC44GN44Gu44KKDQor44GC44Ga44G+LOOBvuOBleOBjQ0KK+OBguOBiuOBjSzjgYLjgaTjgZcNCivjgbXjgZjjgZ8s44Gk44Gt44GKDQor44G/44KI44GXLOOBqOOBl+OBi+OBmg0KK+OBm+OBjeOChOOBvizjgojjgZfjgYoNCivjgabjgonjgaAs44Gm44KL44Gy44GVDQor44GI44KT44GpLOOBn+OBkeOBlw0KK+OBi+OBjeOCguOBqCzjgZHjgpPjgZjjgo3jgYYNCivjgbXjgovjgoQs44GE44KP44GKDQor44G+44GN44KA44KJLOOBn+OBkeOBig0KK+OBk+OCk+OBrizjgbLjgo3jgZcNCivjgZnjgY7jgZXjgY0s44Go44GX44KG44GNDQor44KI44GX44GgLOOBl+OBkuOBig0KK+OBr+OBjuOCj+OCiSzjgbLjgo3jgZcNCivjgoTjgZbjgY0s44KG44GG44GYDQor44Gr44Gu44G/44KELOOBi+OBmuOBig0KK+OBk+OBleOBiyzjgbLjgo3jgoTjgZkNCivjgZXjga4s44GX44KT44GUDQor44GV44GE44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBl+OCguOBmyzjgZ/jgYvjgojjgZcNCivjgZ/jgYvjga/jgZcs44GL44Ga44Gy44GoDQor44Gf44Gk44GK44GLLOOBvuOBleOBjQ0KK+OBn+OBsOOBnyzjgojjgZfjgZ/jgYsNCivjgarjgYrjgYQs44G+44GV44GTDQor44Gq44GM44GfLOOBvuOBleOBig0KK+OBq+OBl+OBiuOBiyzjgZfjgZLjgosNCivjgb7jgaTjgYvjgo8s44GC44Gk44GXDQor44G/44Ga44GuLOOChuOBhuOBkw0KK+OBqOOBj+OBquOBjCzjgZHjgYTjgZMNCivjgoDjgonjgYvjgb8s44Gy44KN44GNDQor44KE44GZ44GL44KPLOOBqOOBl+OBruOCig0KK+OChOOBvuOBkOOBoSzjgobjgY3jgYoNCivjgojjgZPjgYbjgYgs44Gf44Gg44GXDQor44GC44Ga44G+LOOBruOBvOOCiw0KK+OBhOOBquOBoCzjgb/jgaTjgobjgY0NCivjgYTjgZfjgYQs44Gu44G844KLDQor44GE44G+44Gr44GXLOOBn+OBkeOBig0KK+OBiuOBi+OBrizjgYvjga3jgb/jgaQNCivjgY3jgZcs44Go44GX44GTDQor44GP44G844GfLOOBvuOBleOBruOCig0KK+OBk+OBv+OBquOBvyzjgb7jgobjgb8NCivjgYLjgYTjgoTjgb4s44GX44KH44GG44GY44KN44GGDQor44GV44GuLOOBoeOBi+OCiQ0KK+OBn+OBjeOBjOOCjyzjgZfjgZLjgojjgZcNCivjgZPjgpPjga4s44Gy44KN44KE44GZDQor44Gb44KT44Gg44GELOOBn+OBi+OBlw0KK+OBq+OCj+OBrizjgbLjgafjgZnjgZENCivjgZcs44Gq44GK44KI44GXDQor44GL44Go44GGLOOBi+OBmuOBquOCig0KK+OBguOBi+OBleOBiyzjgY/jgavjgYoNCivjgYrjgpPjgZrjgYss44Gy44KN44GXDQor44GT44GMLOOBk+OBhuOBhOOBoQ0KK+OBr+OChOOBi+OCjyzjgajjgoLjgb8NCivjga/jgZvjgYzjgo8s44G+44GV44KI44GXDQor44G144KL44GL44KPLOOBn+OBkeOBlw0KK+OBteOBmOOBi+OBqSzjgobjgYbjgZgNCivjgajjga7jgYvjgo8s44Gf44GR44GXDQor44G+44Gk44GKLOOCiOOBl+OBig0KK+OBjeOBv+OBmuOBiyzjgb7jgZXjga7jgooNCivjgYrjgaEs44G+44GT44GoDQor44GE44Gh44GT44Gv44KJLOOBvuOBleOChOOBmQ0KK+OBhOOBkeOBoCzjgYLjgY3jgZMNCivjgYLjgonjgZ/jgZEs44GE44GP44GKDQor44GE44GR44GgLOOBqOOBjeOBig0KK+OBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgYTjgZHjgaAs44GI44GkDQor44GE44GE44GgLOOBvuOBleOBqA0KK+OBiuOBiuOBj+OBvizjgYvjgZrjgYgNCivjgY/jgZXjgbAs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBleOCiOOBkw0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZnjgZrjgY0s44KC44Go44Gu44KKDQor44Gb44GN44GtLOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgajjgZfjgobjgY0NCivjgZPjgpPjgaks44KI44GG44GZ44GRDQor44Gf44GR44KE44G+LOOBkeOBhOOBl+OCjeOBhg0KK+OBn+OBi+OBhOOBoSzjgYrjgZXjgoANCivjgZ3jgaAs44GR44KT44GYDQor44Gf44GuLOOBvuOBk+OBqA0KK+OBl+OBruOBluOBjSzjgZXjgajjgZcNCivjga/jgonjgaAs44GC44KEDQor44GP44Gp44GGLOOBi+OBpOOBkw0KK+OBpOOBruOBoCzjgarjgYrjgZMNCivjgbXjgovjgYvjgo8s44Go44GX44GC44GNDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgoTjgb7jgZfjgZ8s44KI44GX44Gv44KLDQor44KG44GL44KPLOOCiOOBl+OBig0KK+OCiOOBl+OBoCzjgYjjgYTjgZMNCivjga/jgoTjgZcs44Go44GX44Gf44GLDQor44Gf44KT44GuLOOBiOOBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgarjgorjgYLjgYQs44KI44GX44Gu44KKDQor44Gf44GL44KA44KJLOOBguOBjeOBig0KK+OBn+OCk+OBrizjgabjgaTjgYoNCivjgZPjgbDjgoTjgZcs44GT44GG44GE44GhDQor44GU44Go44GGLOOBqOOBiuOCiw0KK+OBlOOBhuOBoCzjgY3jgofjgYbjgZMNCivjgarjgYvjgZfjgb4s44G/44Gk44GKDQor44G744GX44GuLOOBteOBv+OBn+OBoA0KK+OCj+OBkyzjgarjgYrjgY0NCivjgZnjgZrjgY0s44GX44GS44GKDQor44KI44GX44G+44GkLOOBvuOBleOBj+OBqw0KK+OBquOBv+OBiuOBiyzjgZfjgpPjgZgNCivjgoTjgb7jgZDjgaEs44Gy44KN44GL44GaDQor44GE44GX44Gw44GXLOOBvuOBk+OBqA0KK+OBhOOBl+OBoCzjgZvjgpPjgoQNCivjgYbjgaHjgoTjgb4s44Gb44GE44GYDQor44GI44KT44GpLOOBl+OBkuOCiw0KK+OBquOBi+OBrizjgb7jgZXjgbXjgb8NCivjgYTjgb7jgYQs44GL44Ga44GKDQor44GK44GV44Gq44GELOOBguOBpOOBlw0KK+OBleOBi+OCguOBqCzjgY3jgojjgZcNCivjgZfjgYrjgb8s44Gh44GL44GXDQor44GX44G+44GW44GNLOOBquOBiuOBjQ0KK+OBpuOCi+OChCzjgajjgZfjgoQNCivjgarjgYvjgZ/jgass44Gq44GK44GNDQor44Gv44GO44KP44KJLOOBjeOCiOOBi+OBmg0KK+OBsuOBjOOBlyzjgZfjgofjgYbjgZMNCivjgbvjgorjgYbjgaEs44KI44GX44GKDQor44G/44Ge44KN44GOLOOBquOBiuOBjQ0KK+OCguOCiizjgZ/jgoLjgaQNCivjgYTjga7jgYbjgYgs44Gf44GR44Gy44GTDQor44GX44GgLOOBv+OBoeOCiA0KK+OChOOBvuOCguOBqCzjgb/jgaHjgZMNCivjgoTjgb7jgoLjgags44Gy44Gn44GC44GNDQor44GK44GK44Gf44GNLOOBi+OBmuOChA0KK+OBteOBmCzjgZXjgarjgYgNCivjgYLjgY3jgoLjgags44G+44KC44KLDQor44GE44GE44GY44G+LOOBguOBjeOBkw0KK+OBiuOBkOOBvizjgobjgb/jgZMNCivjgZXjgajjgYYs44Gf44GL44GKDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgojjgZcNCivjga/jgoks44Gb44GE44GE44Gh44KN44GGDQor44G144GY44G+44GNLOOBl+OCk+OChA0KK+OCgOOCjeOBnyzjgb/jgaTjgb7jgZUNCivjgoLjgoos44Go44GK44KLDQor44G/44Ge44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBr+OBnyzjgbLjgo3jgobjgY0NCivjgYrjgYzjgo8s44Gy44KN44Gf44GLDQor44GG44GI44GuLOOBvuOBleOBqOOBlw0KK+OBn+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgZPjgbDjgoTjgZcs44G+44GV44GL44GaDQor44GP44KN44GZLOOChOOBmeOBmA0KK+OBjeOBn+OBjOOCjyzjgbLjgo3jgZcNCivjgZfjga7jgb8s44G+44GV44KG44GNDQor44Gv44GbLOOChuOBhuOBnuOBhg0KK+OBpuOCi+OBrOOBvizjgojjgYbjgZMNCivjgY3jgY/jgaEs44GV44Go44GXDQor44Gv44GX44KC44GoLOOBruOCiuOChuOBjQ0KK+OBiuOBiuOBi+OCjyzjgZfjgpPjgagNCivjgYrjgYrjgavjgZcs44Gd44GG44GE44GhDQor44GC44G5LOOBvuOBleOBsuOBqA0KK+OBguOBoOOBoSzjgbLjgafjgY0NCivjgYLjgaDjgaEs44G+44GV44GoDQor44GC44Gg44GhLOOBqOOBl+OChuOBjQ0KK+OBguOBlCzjgYvjgYrjgooNCivjgYLjgYTjga/jgoks44GC44GN44Gy44GTDQor44GC44GE44Gv44KJLOOBsuOBp+OBig0KK+OBguOBhOOBluOCjyzjgZjjgoXjgpPjgYTjgaENCivjgYLjgYvjgb7jgaQs44Gf44Gk44GKDQor44GC44GL44G+LOOBqOOCguOBvw0KK+OBguOBi+OBmyzjgb7jgZXjgobjgY0NCivjgYLjgYvjgoTjgb4s44GX44KT44GS44KTDQor44G144GP44GX44G+LOOBqOOCguOBrg0KK+OBguOBjeOBsCzjgaTjgajjgoANCivjgYLjgY3jga4s44Gv44KL44GNDQor44GC44GN44GX44GLLOOChuOBhuOBmA0KK+OBquOCgeOBjSzjgarjgYrjgb8NCivjgYLjgY3jgZrjgY0s44GX44KT44GE44GhDQor44GC44G+44GgLOOChuOBjeOBig0KK+OBguOBvuOBrizjgajjgYrjgosNCivjgYLjgb/jga4s44Gu44G244Gv44KLDQor44GC44KT44G5LOOChOOBmeOBlw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgajjgZcNCivjgYLjgpPjgZbjgYQs44Gf44GL44KI44GXDQor44GC44KT44GW44GELOOBsuOCjeOBlw0KK+OBguOBiuOBjSzjgZXjgajjgZcNCivjgYLjgYrjgoTjgY4s44Gf44GL44GKDQor44GC44GK44KE44GOLOOBsuOCjeOChuOBjQ0KK+OBguOBiuOChOOBjizjgbLjgZXjgZcNCivjgYLjgonjgYvjgo8s44Gf44GE44GZ44GRDQor44GC44KJ44GL44KPLOOBvuOBleOChuOBjQ0KK+OBguOCieOBjSzjgajjgZfjgobjgY0NCivjgYLjgonjgoTjgZks44Gy44Go44GXDQor44GC44KJLOOBguOBjeOBig0KK+OBguOCiuOBnyzjgY3jgofjgYbjgZMNCivjgYLjgZXjgaAs44GP44Gr44GKDQor44GC44GV44GgLOOBsuOCjeOBguOBjQ0KK+OBguOBleOBi+OCjyzjga7jgorjgYgNCivjgYLjgZXjgY/jgoks44Go44KC44KG44GNDQor44Gq44GL44GV44GoLOOBguOBjeOCiQ0KK+OBguOBleOBrizjgojjgZfjgbLjgo0NCivjgYLjgZXjgoos44GL44Ga44GNDQor44GC44Gk44G/LOOBguOBjeOCiOOBlw0KK+OBguOCj+OBiyzjgYvjgaTjgb8NCivjgbDjgbAs44GL44Ga44Gy44KNDQor44Gw44KTLOOBkeOCk+OBnuOBhg0KK+OBsOOCkyzjgo/jgZ/jgosNCivjgbDjgpMs44GT44GG44Gf44KN44GGDQor44Gh44KH44GG44GVLOOBvuOBleOBlw0KK+OBoOOBhOOBqSzjgZHjgYTjgZfjgpMNCivjgaDjgYTjgoLjgpMs44Gq44GK44Gy44GTDQor44Gn44KA44KJLOOCiOOBl+OBqA0KK+OBqeOBhCzjgZ/jgYvjgZcNCivjgYjjgbPjgazjgb4s44GC44GR44G/DQor44GI44GQ44GhLOOBmOOCheOCkw0KK+OBiOOBr+OCiSzjgYvjgZrjgYoNCivjgYjjgarjgb8s44Gq44Gk44GTDQor44GI44Go44GGLOOCiOOBl+OBquOCiw0KK+OBhOOCj+OBleOBjSzjgYvjgZrjgYoNCivjgYjjgZbjgY0s44KG44GG44GYDQor44G144GY44GI44GgLOOBmOOCheOCkw0KK+OBteOBmOOBiCzjgZPjgYbjgYTjgaENCivjgbXjgZjjgYzjgY0s44KI44GX44Gh44GLDQor44G144GY44GELOOBqOOBl+OChuOBjQ0KK+OBteOBmOOBhCzjgYLjgY3jgokNCivjgbXjgZjjgYQs44GY44KF44KT44GE44GhDQor44G144GY44GELOOBv+OChuOBjQ0KK+OBteOBmOOBhCzjgZfjgZLjga7jgooNCivjgbXjgZjjgYvjgo8s44GX44KT44GE44GhDQor44G144GY44KC44KKLOOBqOOCguOBrg0KK+OBteOBmOOCguOBqCzjgZfjgofjgYbjgZQNCivjgbXjgZjjgoLjgags44GX44GuDQor44G144GY44GuLOOBn+OBi+OBlw0KK+OBteOBmOOBiuOBiyzjgoTjgZnjgZcNCivjgYrjgZDjgoks44GC44KE44GTDQor44G144GY44GfLOOBvuOBleOBqA0KK+OBteOBmOOBnyzjgZXjgajjgosNCivjgbXjgZjjgZ8s44KG44GN44GKDQor44G144GY44GfLOOBl+OCh+OBhuOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgZcNCivjgbXjgYvjgaAs44GC44Gk44GXDQor44G144GL44GKLOOBv+OBpOOBsuOCjQ0KK+OBteOBi+OBiizjgb/jgZXjgY0NCivjgbXjgYvjgZssDQor44G144GP44GhLOOCiOOBl+OBsuOCjQ0KK+OBteOBj+OBoCzjgobjgYbjgZMNCivjgbXjgY/jgaAs44G144G/44Gy44GTDQor44G+44Gk44GL44KPLOOBsuOBp+OBig0KK+OBteOBj+OBoCzjgb/jgYsNCivjgbXjgY/jgaAs44KG44GN44GTDQor44G144GP44GgLOOBkeOCk+OBmA0KK+OBteOBj+OBr+OCiSzjgobjgY3jgYoNCivjgbXjgY/jgYQs44Gy44KN44GXDQor44G144GP44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOBj+OBiuOBiyzjgZfjgpPjgZQNCivjgZfjgYws44Gq44GK44GoDQor44G144GP44GX44G+LOOBguOBpOOBlw0KK+OBteOBj+OBl+OBvizjgaHjgYvjgZMNCivjgbXjgY/jgZfjgb4s44Gq44GK44GNDQor44GK44GK44GuLOOBquOBiuOBjQ0KK+OBteOBquOBpCzjgajjgZfjgobjgY0NCivjgZTjgYbjgaAs44KI44KK44GTDQor44GU44GG44GgLOOBsuOBp+OBguOBjQ0KK+OBlOOBhizjgYvjgYTjgo3jgYYNCivjgZPjgZDjgows44GN44KT44KEDQor44GU44Go44GGLOOBn+OBi+OBlw0KK+OBlOOBqOOBhizjgobjgY3jgogNCivjga/jgYws44KK44KH44GG44GE44GhDQor44Gv44GO44KP44KJLOOBjeOBj+OBig0KK+OBr+OBvuOBoCzjgYLjgY3jgYoNCivjgb7jgYjjgaAs44GR44KT44GE44GhDQor44Gv44G+44Gv44GfLOOBruOBvOOCiw0KK+OBr+OBvuOBrizjga7jgbbjgbLjgo0NCivjga/jgarjgbbjgZUs44KK44KF44GG44GE44Gh44KN44GGDQor44Gv44Gq44GfLOOCiOOBl+OBmA0KK+OBr+OBquOBv+OBpCzjgojjgZfjgZ/jgYsNCivjga/jgpPjgaAs44GZ44G/44GoDQor44Gv44KJ44GgLOOBguOChOOBkw0KK+OBr+OCieOBoCzjgbXjgb/jgYoNCivjga/jgonjgaAs44GY44KF44KT44GE44GhDQor44Gv44KJ44GgLOOBvuOBleOBruOCig0KK+OBr+OCiSzjgb7jgZXjgobjgY0NCivjga/jgoks44G/44KG44GNDQor44Gv44Gb44GM44KPLOOBvuOBk+OBqA0KK+OBr+OBl+OBkOOBoSzjgYTjgZXjgYoNCivjga/jgZfjgoLjgags44G+44GV44Go44GXDQor44Gv44GX44KC44GoLOOBruOCiuOBjQ0KK+OBr+OBn+OBkeOChOOBvizjgZXjgajjgZcNCivjga/jgZ/jgarjgYss44GN44KI44GXDQor44Gv44Gk44GX44G+LOOBkeOCkw0KK+OBr+OBo+OBqOOCiizjgojjgZfjgbLjgZUNCivjga/jgaPjgajjgoos44Gk44Gt44Gy44GVDQor44Gv44Gj44Go44KKLOOBvuOBleOBkw0KK+OBr+OBo+OBqOOCiizjgbXjgb/jgYoNCivjga/jgaPjgajjgoos44KG44GN44Gy44GTDQor44Gv44Gj44Go44KKLOOCiOOBl+OBruOCig0KK+OBr+OChOOBi+OCjyzjgYLjgY3jgokNCivjga/jgoTjgZfjgaAs44G+44GV44KEDQor44GL44KT44GgLOOBkeOCk+OBmA0KK+OBr+OChOOBlyzjgZPjgYbjgZgNCivjga/jgoTjgZcs44Gk44KI44GXDQor44Gv44KE44GXLOOBsuOCjeOBlw0KK+OBr+OChOOBlyzjgYvjgaTjgb8NCivjgajjgbPjgYvjgo8s44G/44KG44GNDQor44Gy44GS44GfLOOCiOOBhuOBhOOBoQ0KK+OBsuOBkOOBoSzjgb/jgaTjgbLjgo0NCivjgbLjgZDjgaEs44KG44GG44GTDQor44Gy44GY44GL44KPLOOCiOOBl+OBruOCig0KK+OBsuOBi+OBhCzjgb7jganjgYsNCivjgbLjgarjgZ8s44GY44KF44KTDQor44Gy44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBsuOBrizjgZ/jgYvjgobjgY0NCivjgbLjgonjgY4s44KE44GZ44GXDQor44KI44KC44GgLOOBi+OBmuOBqA0KK+OBsuOCieOBrizjgb7jgZXjga7jgbYNCivjgbLjgonjga4s44Gy44KN44KG44GNDQor44Gy44KJ44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBsuOCieOBnyzjgb7jgZXjgbLjgo0NCivjgYLjgZXjga4s44Gy44KN44GXDQor44Gy44KJ44GfLOOBsuOBleOBig0KK+OBsuOCieOBpOOBiyzjgZ/jgZHjgZcNCivjgbLjgo3jgYvjgo8s44G144G/44GC44GNDQor44Gy44KN44Gq44GLLOOBi+OBmuOBsuOBlQ0KK+OBsuOCjeOBmyzjgbLjgZXjgobjgY0NCivjgZ/jgZfjgo0s44GN44G/44GTDQor44Gy44KN44GbLOOBvuOBk+OBqA0KK+OBsuOBl+OBrOOBvizjgbLjgo3jga7jgbYNCivjgYTjgo/jgoLjgags44GY44KF44KTDQor44Gy44GG44KJLOOBsuOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZvjgYTjgYTjgaENCivjgbvjgpPjgb4s44KE44GZ44KG44GNDQor44G744KT44G+LOOBpOOCiOOBlw0KK+OBu+OCk+OBvizjgZ/jgYTjgokNCivjgbvjgpPjgb4s44Gf44Gk44KN44GGDQor44G744KK44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBu+OCiuOBiizjgYvjgaTjgojjgZcNCivjgbvjgoos44GL44Ga44GKDQor44G744KKLOOBguOBpOOBlw0KK+OBu+OCiizjgZPjgYbjgYTjgaENCivjgbvjgZfjga4s44GX44KT44GYDQor44G744GX44GuLOOBguOBjeOBkw0KK+OBu+OBl+OBrizjgbXjgajjgZcNCivjgbvjgZcs44Gy44KN44GTDQor44G744GdLOOBi+OBmuOBvw0KK+OBu+OBn+OBpizjgobjgYsNCivjgYTjgaHjgYvjgo8s44KG44G/44GTDQor44GE44Gh44GL44KPLOOBleOBqOOBlw0KK+OBhOOBoeOBjSzjgZ/jgZHjgZcNCivjgYTjgaHjga7jgZss44GC44KKDQor44GE44GgLOOBquOBiuOBjQ0KK+OBhOOBp+OBhCzjgb7jgZXjgYvjgZoNCivjgYTjgYzjgonjgZcs44KG44GG44GYDQor44GE44GQ44GhLOOBlOOBhg0KK+OBhOOBhOOBoCzjgYjjgYTjgZbjgbbjgo3jgYYNCivjgYTjgYTjgaAs44G144GY44GKDQor44GE44GE44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBhOOBmOOBvizjgYvjgZrjga7jgooNCivjgYTjgYTjgoDjgoks44KI44GX44Gu44G2DQor44GE44GE44GuLOOBsuOBp+OBjQ0KK+OBhOOBhOOBmuOBiyzjgbLjgo3jgZcNCivjgYTjgYTjgZrjgYss44GL44Gk44Gy44GTDQor44Gv44KL44GfLOOBqOOBl+OBkw0KK+OBhOOBkeOBoCzjgarjgYrjgbLjgo0NCivjgZnjgZrjgY0s44Go44GK44KLDQor44GE44GR44GgLOOBj+OBq+OBsuOCjQ0KK+OBhOOBneOBuSzjgZPjgYbjgZgNCivjgYTjgZHjgoTjgb4s44GZ44GO44GKDQor44GE44GP44GfLOOBqOOBl+OBguOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgaHjgZrjgZMNCivjgoLjgorjgZfjgZ8s44GX44GS44GNDQor44GE44G+44GELOOBn+OBoOOBlw0KK+OBhOOBvuOCgOOCiSzjgb7jgarjgbYNCivjgYTjgb7jgoDjgoks44Gu44KK44KG44GNDQor44GE44Gq44G/LOOBkeOCk+OChA0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgacNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZ/jgYsNCivjgYTjga7jgYbjgYgs44G/44Gk44GTDQor44GE44Gs44GELOOChuOBjeOBqOOBlw0KK+OBhOOBl+OBoCzjgb7jgarjgbYNCivjgYTjgZfjgaAs44Go44GX44Gy44KNDQor44GE44GX44GgLOOChuOBn+OBiw0KK+OBhOOBl+OBkOOCjSzjgb7jgooNCivjgYTjgZfjgZDjgo0s44Gy44KN44GXDQor44GE44GX44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBl+OBhCzjgYvjgYrjgosNCivjgYTjgZfjgYQs44GR44GE44GE44GhDQor44GE44GX44GELOOBk+OBhuOBmA0KK+OChuOBjeOBvuOBlSzjgb7jgZXjgajjgZcNCivjgYTjgZfjgYvjgo8s44Gf44GL44GXDQor44GE44GX44GL44KPLOOCiOOBhuOBkw0KK+OBhOOBl+OBj+OCiSzjgobjgZ/jgYsNCivjgYTjgZfjgoLjgoos44Gy44KN44GC44GNDQor44GE44GX44KC44GoLOOCiuOBiA0KK+OBhOOBl+OCguOBqCzjgZXjgaHjgZMNCivjgYTjgZfjgYrjgYss44KG44GLDQor44GE44GX44GK44GLLOOBruOBtuOBig0KK+OBhOOBl+OCj+OBnyzjgarjgYrjgbLjgZUNCivjgYvjgpMs44KI44GG44GE44Gh44KN44GGDQor44GE44GX44GW44GLLOOBi+OCiOOBkw0KK+OBhOOBneOBjOOBhCzjgZ/jgYvjgbLjgo0NCivjgYTjgZ/jgbDjgZcs44GX44KT44GE44GhDQor44GE44Gf44Gw44GXLOOBl+OBkuOBjQ0KK+OBleOBjuOChCzjgbLjgafjgYLjgY0NCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44Go44GGLOOBguOBkeOBvw0KK+OBhOOBqOOBhizjga7jgZ7jgoANCivjgYTjgajjgYYs44Gq44GK44KI44GXDQor44GE44Go44GGLOOBi+OBmuOBl+OBkg0KK+OBhOOBqOOBhizjgarjgYrjgobjgY0NCivjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GL44GELOOBk+OBhuOBhOOBoQ0KK+OBhOOBqOOBhizjgYvjgZrjgobjgY0NCivjgYTjgo/jgYQs44GL44GK44KLDQor44GX44G+44KA44KJLOOBteOBleOBoeOBiw0KK+OBhOOCj+OBhCzjgY3jgofjgYbjgZMNCivjgYvjgo/jgarjgYss44GL44Ga44G/DQor44GE44KP44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OCguOBqCzjgZXjgoTjgYsNCivjgYTjgo/jgoLjgags44Gy44Gn44GC44GNDQor44Gf44GR44GgLOOBleOBoeOBkw0KK+OBhOOCj+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgYTjgo/jgarjgYws44Gy44Gn44GKDQor44GE44KP44GKLOOBk+OBhuOBhOOBoQ0KK+OBhOOCj+OBleOBjSzjgZ/jgaTjgbLjgZMNCivjgYTjgo/jgZXjgY0s44Go44KJ44Gy44GTDQor44Gb44GM44KPLOOBvuOBleOBn+OBiw0KK+OBhOOCj+OBl+OCjSzjgojjgZfjgbLjgZUNCivjgYTjgZrjgb8s44G+44GT44GoDQor44GL44GI44KK44KE44G+LOOBquOBiuOBjQ0KK+OBi+OBjOOBvyzjgYTjgY/jgYoNCivjgYvjgYzjgb8s44GX44GS44KI44GXDQor44GL44GY44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOCguOBqCzjgYjjgYTjgYTjgaENCivjgYvjgY3jgazjgb4s44Gy44KN44GC44GNDQor44GL44GPLOOBsuOCjeOChuOBjQ0KK+OBi+OBvuOBoCzjgb7jgZPjgagNCivjgYTjgarjgYzjgY0s44G+44GV44GIDQor44GL44G+44KC44GoLOOBn+OBiOOBkw0KK+OBi+OBvuOBn+OBqyzjgarjgYrjgbXjgb8NCivjgYvjgb7jgZ8s44Go44KC44GTDQor44KE44G+44GgLOOBiOOBhOOBmA0KK+OBi+OCgeOBoCzjgYLjgY3jgZMNCivjgYvjgoHjgoQs44Gy44Gn44GNDQor44GL44G/LOOBvuOBk+OBqA0KK+OBi+OBv+OBiizjgb7jgarjgb8NCivjgYvjgb/jgoQs44G+44GV44Gu44KKDQor44GL44KC44GoLOOCiOOCiuOBkw0KK+OBi+OBquOBoCzjgb7jgZXjgZ/jgYsNCivjgYvjgarjgYQs44GN44KH44GG44GTDQor44GL44Gq44GELOOCiuOBiOOBkw0KK+OBi+OBquOBluOCjyzjgZXjgaDjgYTjgaENCivjgYvjgpPjgaAs44Gf44GL44Gy44KNDQor44GL44Gt44GE44GhLOOBguOBjeOBig0KK+OBi+OBreOBkyzjgbLjgo3jgbbjgb8NCivjgYvjga3jgZMs44G+44GZ44GKDQor44GL44Gt44GTLOOBl+OCheOBhuOBmA0KK+OBi+OBreOBkyzjgZ/jgZHjgbLjgZMNCivjgYvjga3jgZMs44KE44GIDQor44GL44Gt44GTLOOBsuOBleOBlw0KK+OBi+OBreOBvuOCiyzjgYLjgaTjgZcNCivjgYvjgorjgoQs44KI44GX44Gu44G2DQor44GL44KL44G5LOOBjeOCh+OBhuOBmA0KK+OBi+OBl+OBvizjgbLjgo3jgobjgY0NCivjgYvjgZfjgo/jgY4s44KI44GX44KG44GNDQor44GL44GX44KP44GOLOOBsuOCjeOBlw0KK+OBi+OBmeOChCzjgZHjgYTjgZQNCivjgYvjgZnjgoQs44GX44KH44GG44GTDQor44GL44GZ44KELOOBn+OBi+OBlw0KK+OBi+OBn+OBrizjgZHjgpPjgYTjgaENCivjgZfjgonjgY0s44GL44Gk44GKDQor44GL44Gf44GK44GLLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBi+OBn+OBiuOBiyzjgYLjgaTjgZcNCivjgYvjgZ/jgoTjgb4sDQor44GL44Go44GGLOOBn+OBpuOBig0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYvjgajjgYYs44Gy44KN44GTDQor44GL44Go44GGLOOBsuOCjeOChA0KK+OBi+OBqOOBhizjgZ/jgZHjgZcNCivjgZTjgajjgYYs44Gy44KN44GL44GaDQor44GL44Gk44KELOOBsuOCjeOBlw0KK+OBi+OCj+OBoCzjgb/jgaHjgYoNCivjgYvjgo/jgaAs44GV44Gh44GTDQor44GL44KP44GQ44GhLOOBleOBqOOBlw0KK+OBi+OCj+OBr+OCiSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYvjgo/jga/jgoks44Gy44KN44GC44GNDQor44GL44KP44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgYvjgo/jgYQs44GL44KI44GTDQor44GL44KP44GELOOBv+OBuw0KK+OBi+OCj+OBi+OBvyzjgZ/jgZHjgZcNCivjgYvjgo/jgY3jgZ8s44Go44KC44GC44GNDQor44GL44KP44GN44GfLOOChOOBmeOBkw0KK+OBi+OCj+OCgOOCiSzjgobjgY3jgb7jgZUNCivjgYvjgo/jgoDjgoks44KG44GNDQor44GL44KP44KA44KJLOOBvuOBleOChuOBjQ0KK+OBi+OCj+OBnuOBiCzjgb/jgaoNCivjgbXjgZ/jgY/jgaEs44Gf44Gg44GXDQor44GN44GgLOOChOOBmeOBsuOCjQ0KK+OBjeOBoCzjgojjgZfjgbXjgb8NCivjgY3jgaks44GC44GN44GKDQor44GN44Gv44KJLOOBi+OBpOOBqOOBlw0KK+OBjeOBj+OBoSzjgZPjgYbjgZgNCivjgY3jgY/jgaEs44GC44GE44GTDQor44GN44GP44GfLOOBhOOBleOBig0KK+OBjeOCguOBqCzjgYvjgZrjgb7jgZUNCivjgY3jgoDjgoks44G/44Gu44KLDQor44GN44KA44KJLOOBquOBu+OBvw0KK+OBjeOCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgY3jgoDjgoks44GZ44G/44Gy44KNDQor44G+44Gk44KC44GoLOOBn+OBj+OCjeOBhg0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgY3jgoDjgoks44GY44KF44KT44GTDQor44GK44GL44GW44GNLOOBn+OBkeOBig0KK+OBjeOCgOOCiSzjgobjgYsNCivjgY3jgoDjgoks44GC44Gk44GXDQor44GN44Gu44GX44GfLOOBkeOBhOOBkw0KK+OBjeOBlyzjgY3jgb/jgbLjgZMNCivjgY3jgZks44GY44KF44KT44GTDQor44GN44Gf44GL44GcLOOBruOBtuOBjQ0KK+OBjeOBn+OCgOOCiSzjgYLjgY3jgYoNCivjgY3jgYbjgaEs44Gq44GK44GoDQor44GN44GG44GhLOOBn+OBi+OBnuOBhg0KK+OBjeOCiOOBnyzjgaDjgYTjgZnjgZENCivjgZPjgbDjgoTjgZcs44G+44GV44Gv44KLDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgb/jgojjgZMNCivjgZPjgbDjgoTjgZcs44KI44GX44KG44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgYLjgY0NCivjgZPjgbDjgoTjgZcs44KG44GG44GE44GhDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgbLjgacNCivjgbLjgo3jgZss44Gv44KL44GKDQor44GT44Gn44KJLOOBguOBjeOBsuOCjQ0KK+OBk+OBjOOBhCzjgbLjgZXjgZ/jgYsNCivjgZPjgZDjgows44GL44Ga44GKDQor44KC44KK44GfLOOBv+OBoeOBsuOBkw0KK+OBk+OCguOBqCzjgojjgYbjgZnjgZENCivjgZPjgpPjga4s44GC44GN44Gy44KNDQor44GT44GV44GLLOOCiOOBl+OChuOBjQ0KK+OBk+OBhOOBkSzjgY3jgojjgZcNCivjgZPjgYTjgZEs44KI44GG44GE44GhDQor44GT44GE44GXLOOBguOBjeOBig0KK+OBk+OBmOOBvizjgYvjgZrjgZ/jgYsNCivjgZPjgZjjgb4s44Gm44GkDQor44GT44GP44G7LOOBi+OBpOOChA0KK+OBk+OBj+OBvuOBhCzjgb/jgYjjgZMNCivjgZPjgb7jgYzjgZ8s44G+44GT44GoDQor44GT44G+44GNLOOBi+OBmuOChuOBjQ0KK+OBk+OBvuOBpCzjgojjgYbjgYTjgaENCivjgZPjgb7jgaQs44GC44Gk44GXDQor44GT44G/44GtLOOBi+OBpOOBruOCig0KK+OBk+OBv+OChOOBvizjgojjgZfjga7jgbYNCivjgZPjgoLjgYrjgYss44G144G/44GKDQor44GT44KC44KKLOOBl+OBkuOBruOCig0KK+OBk+OCk+OBqSzjgbLjgo3jgZcNCivjgZPjgpPjgaks44G/44GN44GKDQor44GT44KT44GpLOOCiOOBl+OBnuOBhg0KK+OBk+OCk+OBqSzjgZ/jgYvjgobjgY0NCivjgZPjgpPjganjgYYs44Gf44Gk44GoDQor44GT44KT44GuLOOBpuOBpOOBig0KK+OBk+OBmeOBjizjgojjgYbjgYTjgaENCivjgZPjgYbjgaAs44Go44GX44KG44GNDQor44GT44KE44Gq44GOLOOBruOBtuOBsuOBkw0KK+OBj+OBvOOBnyzjgbLjgo3jgobjgY0NCivjgY/jgbzjgZ8s44Gq44GK44GNDQor44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBj+OBqeOBhizjgZTjgYYNCivjgY/jgYws44GX44GS44KLDQor44GP44GY44G+LOOBiOOCig0KK+OBj+OBvuOBoCzjgbLjgo3jgZcNCivjgY/jgb7jgY0s44G+44GNDQor44GP44G+44GP44KJLOOBi+OBpOOBqA0KK+OBj+OBvuOCguOBqCzjgYLjgY3jgbLjgZMNCivjgY/jgoLjgYvjgo8s44Gy44KN44Gu44KKDQor44GP44KJ44GX44G+LOOBk+OBhuOBhOOBoQ0KK+OBj+OCiuOBr+OCiSzjgZPjgYbjgZgNCivjgY/jgorjga/jgoks44KG44G/44GTDQor44GP44KK44KA44KJLOOBl+OCheOBhuOBmA0KK+OBj+OCiuOBmSzjgbLjgo3jgZcNCivjgY/jgorjgoTjgb4s44KG44GN44GIDQor44GP44KK44KE44G+LOOBmOOCheOCk+OBhOOBoQ0KK+OBj+OCjeOBoCzjgYLjgY3jgokNCivjgY/jgo3jgYvjgo8s44Gy44KN44GXDQor44GP44KN44GNLOOBruOBtuOChA0KK+OBj+OCjeOBleOBjSzjga7jgbbjgYLjgY0NCivjgY/jgo3jgZks44Gy44KN44GXDQor44GP44GX44GgLOOCj+OBn+OCiw0KK+OBj+OBmeOBoCzjgojjgZfjgZMNCivjgY/jgo/jgbDjgoks44GE44Gh44KN44GGDQor44GG44Gh44GgLOOBkeOBhOOBhOOBoQ0KK+OBvuOBiOOBoCzjgoTjgZnjgbLjgZMNCivjgavjgo8s44GX44GS44G/44GkDQor44G+44GI44Gy44KJLOOBvuOBleOBqA0KK+OBvuOBiOOBi+OCjyzjgbLjgafjgZ/jgYsNCivjgb7jgY3jgoDjgoks44Gy44KN44G/44GkDQor44G+44GN44GuLOOChuOBhuOBmA0KK+OBvuOBjeOBrizjgb7jgooNCivjgojjgYbjgZPjgZ8s44G/44Gh44KE44GZDQor44G+44KL44KE44G+LOOBn+OBoOOBlw0KK+OBvuOBmeOBoCzjgb/jgY3jgYoNCivjgb7jgZnjgaAs44Gm44KL44GC44GNDQor44G+44GZ44Gy44KNLOOBjeOBvw0KK+OBvuOBmeOChOOBvizjgZ/jgY/jgZgNCivjgb7jgaTjgbDjgoks44GT44GG44GYDQor44G+44Gk44Gw44KJLOOChOOBmeOBquOCig0KK+OBvuOBpOOBoOOBhOOCiSzjgb7jgZXjgagNCivjgb7jgaTjgaAs44GX44GS44GKDQor44GV44GV44KC44GoLOOBleOChuOCig0KK+OBvuOBpOOBoCzjgajjgZfjgb8NCivjgb7jgaTjgbXjgZUs44GL44Gk44GYDQor44G+44Gk44GELOOBqOOBiuOCiw0KK+OBvuOBpOOBhCzjgZjjgoXjgpPjgYTjgaENCivjgb7jgaTjgY0s44GC44GN44Gy44GTDQor44GL44Gu44GGLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgobjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44Go44GX44KG44GNDQor44G+44Gk44KC44GoLOOBteOBmOOBig0KK+OBr+OBl+OCguOBqCzjgZfjgofjgYbjgZgNCivjgb7jgaTjgoDjgoks44GN44Gr44GhDQor44G+44Gk44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBquOBvyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgarjgb8s44KG44GN44GKDQor44Gh44GwLOOBpuOBpOOChA0KK+OBvuOBpOOBl+OBsCzjgZPjgYbjgYTjgaENCivjgb7jgaTjgZfjgZ8s44Gy44KN44GXDQor44G+44Gk44GX44GfLOOBiOOBhOOBhOOBoQ0KK+OBvuOBpOOBhuOCiSzjgYTjgaHjgo3jgYYNCivjgb7jgaTjgZbjgY0s44Gf44Gg44GXDQor44GE44G+44GELOOBvuOBleOChuOBjQ0KK+OBvuOChuOChOOBvizjgYLjgaTjgZcNCivjgoHjgpMs44G+44GV44GoDQor44G/44Gh44GM44G/LOOBruOCiuOBig0KK+OBv+OBr+OCiSzjga/jgovjgZMNCivjgb/jgY0s44GC44Gk44GXDQor44G/44KC44KKLOOBsuOCjeOBlw0KK+OBv+OBquOBv+OBkOOBoSzjgYvjgarjgoENCivjgb/jgarjgZrjgY0s44Gq44GK44KG44GNDQor44G/44Gt44KA44KJLOOChuOBi+OCig0KK+OBv+OBl+OBqizjgYvjgZrjgbLjgo0NCivjgb/jgaTjgYQs44Gf44GR44Gv44KLDQor44G/44GG44KJLOOCiOOBhuOBhOOBoQ0KK+OBv+OBhuOCiSzjgZHjgpPjgYTjgaENCivjgoDjgonjgYvjgb8s44G+44GV44Gv44KLDQor44G/44KPLOOBl+OBkuOChuOBjQ0KK+OBv+OChOOBjOOCjyzjgb7jgZXjgYoNCivjgb/jgoTjgY4s44G/44Gh44GTDQor44G/44KE44Gv44KJLOOBqOOBl+OBig0KK+OBv+OChOOBr+OBlyzjgY3jgofjgYbjgZMNCivjgb/jgoTjgYvjgo8s44G+44GV44Go44GXDQor44G/44KE44GNLOOBvuOBleOBmuOBvw0KK+OBv+OChOOCguOBqCzjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gy44KN44GXDQor44G/44KE44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBleOBiyzjgarjgYrjgY0NCivjgb/jgoTjgZ/jgZEs44GX44GS44G/DQor44G/44KE44GfLOOBqOOBl+OBsuOCjQ0KK+OBv+OChOOBnyzjgobjgYbjgZgNCivjgb/jgoTjgZ8s44G+44GV44G/44GhDQor44GP44KN44GgLOOBkeOBhOOBkw0KK+OBv+OCiOOBlyzjgarjgYrjgZMNCivjgb/jgZrjgZPjgZcs44G+44GN44GKDQor44G/44Ga44GT44GXLOOBqOOBl+OBig0KK+OBv+OBmuOBrizjgZ/jgaTjgoQNCivjgb/jgZrjga4s44Gu44G244Gv44KLDQor44G/44Ga44Gf44GrLOOBl+OCk+OBmA0KK+OCguOCiizjgZfjgofjgYbjgZgNCivjgoLjgoos44Gu44KK44GTDQor44KC44KK44GL44KPLOOBguOBjeOBkw0KK+OCguOCiuOBjSzjgoTjgZnjgbLjgo0NCivjgoLjgorjgZfjgZ8s44KI44GX44G/DQor44KC44KK44GfLOOBn+OBoOOBlw0KK+OCguOCiuOBnyzjgYvjgZrjgbLjgo0NCivjgoLjgorjgoTjgb4s44Go44GX44GKDQor44KC44KK44Ge44GuLOOBpOOCiOOBlw0KK+OCguOCiizjgZXjgajjgosNCivjgoLjgoos44GL44Gk44Go44G/DQor44KC44KKLOOChOOBmeOBig0KK+OCguOCiizjgbLjgo3jga7jgooNCivjgoLjgo3jgZrjgb8s44Gu44G844KLDQor44GE44Gu44Gv44GqLOOBi+OBmuOBig0KK+OBk+OBmOOBvizjgZfjgpPjgZQNCivjgoDjgYvjgYQs44Gf44Gk44G/DQor44KA44GL44GELOOBleOBoeOBig0KK+OCgOOCieOBhCzjgaHjgarjgaQNCivjgoDjgonjgYvjgb8s44Go44GK44KLDQor44KA44KJ44GL44G/LOOBoeOBr+OCiw0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgYvjgZoNCivjgavjgo8s44GL44Gk44Gy44KNDQor44KA44KJ44GfLOOBleOBqOOBlw0KK+OCgOOCieOBnyzjgYTjgaHjgo3jgYYNCivjgYrjgYrjga4s44Gf44GL44GXDQor44KA44KJ44KE44G+LOOBoeOBr+OCiw0KK+OCgOOBqOOBhizjgbLjgo3jgoQNCivjgoDjgajjgYYs44Gf44GL44GXDQor44KA44Go44GGLOOBguOBvuOBrQ0KK+OCgOOBpOOBl+OBiyzjgYjjgYTjgYTjgaENCivjgarjgYzjgYQs44Gy44KN44GXDQor44Gq44GM44GELOOBi+OBpOOChuOBjQ0KK+OBquOBjOOCguOBqCzjgZHjgpPjgYTjgaENCivjgYLjgonjgYQs44Gf44GR44Go44GXDQor44Gq44GM44GKLOOChOOBmeOBquOCig0KK+OBquOBjOOBleOCjyzjgYLjgaTjgZcNCivjgarjgYzjgZXjgo8s44GL44Ga44GoDQor44Gq44GM44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBhOOBqOOBhizjgbXjgZXjga7jgbYNCivjgarjgYTjgajjgYYs44GL44Gk44GKDQor44Gq44GL44Gw44KE44GXLOOBi+OBmuOBsuOBlQ0KK+OBquOBi+OBoOOBpizjgZPjgYbjgYTjgaENCivjgarjgYvjgYzjgY0s44G+44GV44Gu44KKDQor44Gq44GM44GILOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBjOOCjyzjgabjgovjgZgNCivjgarjgYvjgYzjgo8s44Go44GX44KG44GNDQor44Gq44GL44GU44KBLOOCiOOBl+OBquOCig0KK+OBquOBi+OBsuOCiSzjgobjgZ/jgYsNCivjgarjgYvjgYQs44GI44G/44GTDQor44Gq44GL44GY44G+LOOBi+OBpOOBqOOCgg0KK+OBquOBi+OBmOOBvizjgb/jgYjjgZMNCivjgarjgYvjgZjjgb4s44Gq44GK44KEDQor44Gq44GL44GY44G+LOOBiOOCig0KK+OBquOBi+OBmOOBvizjgaTjga3jgYLjgY0NCivjgarjgYvjgZjjgb4s44GR44GE44GE44GhDQor44Gq44GL44GY44G+LOOBquOBiuOBsuOBpw0KK+OBquOBi+OBvuOBnyzjga7jgorjgbLjgo0NCivjgarjgYvjgb/jgaEs44GX44KF44KT44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBvuOBleOBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgarjgYvjgoDjgoks44G+44GT44GoDQor44Gq44GL44KA44KJLOOBpuOCi+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gq44GL44KA44KJLOOBruOCiuOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgarjgYvjgoDjgoks44GL44Ga44Gy44GTDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgarjgYrjgY0NCivjgarjgYvjgavjgZcs44Go44GX44GC44GNDQor44GK44GK44Gr44GXLOOBvuOBleOBruOCig0KK+OBquOBi+OBq+OBlyzjgajjgZfjgobjgY0NCivjgarjgYvjgavjgZcs44Gu44G244KE44GZDQor44Gq44GL44GuLOOBjeOCiOOBn+OBiw0KK+OBiuOBi+OBluOCjyzjgYvjgojjgZMNCivjgarjgYvjga4s44Gu44Ge44G/DQor44Gq44GL44GuLOOCiOOBl+OBteOBvw0KK+OBquOBi+OBrizjgoLjgYjjgZMNCivjgarjgYvjgYrjgYss44Gm44Gk44KEDQor44Gq44GL44GKLOOBteOBv+OBkw0KK+OBquOBi+OBiizjgYjjgYTjgZgNCivjgarjgYvjgZss44GT44GG44GXDQor44Gq44GL44Gd44GOLOOBvuOBleOBqOOBvw0KK+OBquOBi+OBnyzjgZfjgZLjgZMNCivjgarjgYvjgaTjgYss44Gf44GL44GXDQor44Gq44GL44Gk44GLLOOBvuOBk+OBqA0KK+OBquOBi+OChOOBvizjgbLjgafjgY0NCivjgarjgYvjgoTjgb4s44GC44Gk44GXDQor44Gq44GL44KE44G+LOOBn+OBpOOChA0KK+OBquOBi+OChOOBvizjgZPjgYbjgbjjgYQNCivjgarjgYvjgoTjgb4s44GL44Gk44Gy44GTDQor44Gq44GL44GW44KPLOOBv+OBpOOBkA0KK+OBquOBv+OBjSzjgY/jgavjgYoNCivjgarjgonjgZfjgb4s44G+44GV44GC44GNDQor44Gq44KJLOOBn+OBkeOBsuOBkw0KK+OBj+OBqeOBhizjgbLjgZXjgZcNCivjgarjgaTjga4s44G/44Gh44Gv44KLDQor44Gq44Gk44KE44G+LOOChuOBhuOBkw0KK+OBiOOBqOOBhizjgbLjgo3jgZcNCivjgavjgbjjgYQs44Gf44GL44GXDQor44GK44GP44GuLOOBleOChuOCig0KK+OBvuOBiOOBu+OCiizjgbLjgo3jgb8NCivjgavjgZfjgaAs44Gy44Go44GXDQor44Gr44GX44GQ44GhLOOBn+OBpOOBig0KK+OCguOCiizjgobjgY3jgZMNCivjgavjgZfjgYvjgo8s44G+44GV44GXDQor44Gr44GX44GP44KJLOOBl+OBkuOCiw0KK+OBq+OBl+OCguOBqCzjgb7jgZXjgY0NCivjgavjgZfjgYos44Go44GX44Gy44GTDQor44Gr44GX44KP44GNLOOBkeOBhOOBkw0KK+OBq+OBlyzjgb7jgZXjgosNCivjgavjgo8s44G+44GV44GNDQor44Gu44G244G+44GVLOOBv+OBleOBqA0KK+OBruOBoCzjgoLjgajjgbLjgZMNCivjga7jgZDjgaEs44Gf44GL44GXDQor44Gu44GQ44GhLOOBkeOCkw0KK+OBruOBu+OCiizjgbLjgafjgobjgY0NCivjga7jgZ/jgass44G+44GV44Gf44GRDQor44Gu44G+LOOBleOBqOOBlw0KK+OBruOBv+OChOOBvizjgajjgZfjgo3jgYYNCivjga7jgoLjgags44Go44GX44GC44GNDQor44Gf44KT44GW44KTLOOBv+OBoeOBig0KK+OBiuOBiuOBi+OCjyzjgYvjgZrjgbLjgZMNCivjga7jga7jgoTjgb4s44G+44GV44GNDQor44Gu44KK44GL44GtLOOBvuOBleOCiw0KK+OBruOCjSzjgZvjgYTjgYTjgaENCivjga4s44GX44KT44GE44GhDQor44GK44Gw44GqLOOBsuOCjeOBlw0KK+OBiuOBs+OBquOBnyzjgYLjgY3jgbLjgZMNCivjgYrjgaHjgYLjgYQs44KI44GX44Gu44KKDQor44GX44G+44KA44KJLOOBsuOCjeOBlw0KK+OBiuOBoOOBrSzjgojjgZfjgYvjgZoNCivjgYrjgYzjgo8s44Gq44GK44G/DQor44GK44GQ44KJLOOBsuOBp+OBqOOBlw0KK+OBiuOBkOOCiSzjgZvjgYTjgZgNCivjgYrjgZDjgoks44GX44KT44GZ44GRDQor44GK44GK44GQ44KNLOOBhOOCj+OBig0KK+OBiuOBiuOBsOOChOOBlyzjgZHjgYTjgZ7jgYYNCivjgYrjgYrjgbDjgoTjgZcs44KE44GZ44KG44GNDQor44GK44GK44GwLOOBiOOCiuOBkw0KK+OBiuOBoSzjgZfjgpPjgZQNCivjgYrjgYrjgacs44Go44GX44Gy44GTDQor44GK44GK44G744KKLOOBruOCiuOBig0KK+OBiuOBuyzjgZPjgZnjgZENCivjgYrjgYrjgYTjgZcs44KC44Go44GE44GhDQor44GK44GNLOOCiOOBl+OChuOBjQ0KK+OBiuOBiuOBj+OBvCzjgb7jgZXjgbLjgo0NCivjgYrjgYrjgY/jgbws44G+44GV44GP44GrDQor44GK44GK44G/44GhLOOBn+OBkeOBruOCig0KK+OBiuOCgOOCiSzjgaTjga3jgYLjgY0NCivjgYrjgYrjgavjgZcs44GE44GV44GKDQor44GK44GuLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBiuOCieOBhCzjgZnjgZnjgoANCivjgYrjgZXjgY0s44GV44Go44GXDQor44GK44GK44GV44KPLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBleOCjyzjgZ/jgaDjgZcNCivjgYrjgYrjgZXjgo8s44KK44KF44GG44GYDQor44GK44GK44Gf44GrLOOBkeOCk+OBmA0KK+OBiuOBiuOBnyzjgarjgYrjgY0NCivjgYrjgYrjgajjgoIs44GC44GN44GKDQor44GK44GW44GNLOOBk+OBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgZ/jgZHjgZcNCivjgYrjgYrjgaTjgYss44Go44GX44KN44GGDQor44GK44GK44Gk44GNLOOBpuOBpOOChA0KK+OBiuOBiuOChCzjgb7jgZXjgbLjgo0NCivjgYrjgbLjgoMs44GP44Gr44Gy44GTDQor44GK44GK44KELOOBmeOBkOOCiw0KK+OBiuOBi+OBoCzjgaTjgZDjgYoNCivjgYrjgYvjgaAs44KI44GX44Gy44KNDQor44GK44GL44GgLOOBqOOBl+OBsuOCjQ0KK+OBiuOBi+OBoCzjgZfjgpPjgYTjgaENCivjgYrjgYvjga/jgoks44Gy44KN44GNDQor44GK44GL44KC44GoLOOCiOOBl+OBig0KK+OBj+OBleOBsCzjgbLjgo3jgZcNCivjgYrjgYvjgoDjgoks44G+44GV44GL44GaDQor44GK44GL44KA44KJLOOBvuOBleOBjQ0KK+OBiuOBi+OBrizjgbLjgo3jgZcNCivjgajjgbPjgZ8s44GX44KF44GG44G444GEDQor44G744Gd44GL44KPLOOBk+OBhuOBmA0KK+OBhuOBiOOBoCzjgajjgojjgYvjgZoNCivjgZPjgZvjgY0s44KG44G/DQor44Gf44GW44KPLOOBl+OCheOCk+OBmA0KK+OChOOBvuOBluOBjSzjgojjgZfjgYvjgZoNCivjgYjjgZDjgaEs44Gy44KN44KG44GNDQor44KC44Gh44GgLOOBmeOBmeOCgA0KK+OBguOBjeOCguOBqCzjgY3jgYjjgYQNCivjgavjgZcs44GC44Gk44GNDQor44GE44G+44GE44GXLOOBl+OBkuOBqOOBlw0KK+OBn+OBi+OChOOBmSzjga7jgbbjgojjgZcNCivjga/jgZ8s44G+44GV44KG44GNDQor44G144GY44GV44KPLOOBguOBjeOCiQ0KK+OCgOOBqOOBhizjgbLjgZXjgZcNCivjgoLjgZ/jgYQs44GX44KT44GE44GhDQor44Gf44GgLOOBn+OBi+OChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgYvjgZrjgojjgZcNCivjgaTjgbzjgY/jgoks44GT44GG44Ge44GGDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBmA0KK+OBpOOBmOOBi+OCjyzjgbLjgo3jgYvjgZoNCivjgb/jgaTjgYTjgZcs44Gb44GE44GE44GhDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OBvuOCi+OBiuOBiyzjga7jgbbjgZ/jgYsNCivjgbXjgYvjgYos44Go44GK44KLDQor44Gk44KA44KJLOOBi+OBquOBkw0KK+OBvuOChuOBvyzjgajjgZfjgYgNCivjgYLjgonjgYvjgo8s44G/44Gp44KKDQor44GK44G144GhLOOBmOOCheOCkw0KK+OBleOBleOCguOCiizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GC44GN44KJDQor44Gf44GL44GOLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgb7jgZXjgb/jgaQNCivjgaTjgbzjgZQs44G144G/44Gy44GTDQor44Go44KK44GV44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBkOOBjSzjgZHjgYTjgZQNCivjga/jgZvjgYzjgo8s44Go44KC44KG44GNDQor44Gv44KE44GXLOOBk+OBhuOBmA0KK+OBsuOCieOChOOBvizjgZfjgZLjgosNCivjgbXjgY/jgZfjgb4s44Go44GX44GNDQor44G+44Gk44GX44G+LOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBhCzjgbLjgafjgY0NCivjgYTjgZfjgYQs44Gu44KK44GTDQor44GE44G+44GELOOBv+OChuOBjQ0KK+OBquOBi+OBpOOBmCzjgobjgY3jgYgNCivjgbvjgYTjgaAs44Gk44Gt44GKDQor44GV44KP44Gv44GfLOOBv+OBpOOCiw0KK+OBn+OBr+OCiSzjgZfjgofjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G/44Gt44G+44GVDQor44GZ44Ga44GNLOOBsuOBp+OBguOBjQ0KK+OCiOOBk+OChOOBvizjgZHjgpPjgZgNCivjgYTjgZfjgYvjgo8s44GR44KT44GYDQor44GC44GV44GuLOOCiOOBl+OBn+OBiw0KK+OBi+OBreOBkyzjgZfjgoXjgYbjgZgNCivjgY/jgo3jgZss44KI44GG44GZ44GRDQor44GV44GL44GN44Gw44KJLOOBguOCieOBnw0KK+OBi+OBleOBvizjgZHjgYTjgZMNCivjgZnjgY7jgoTjgb4s44KI44GX44G+44GVDQor44GZ44GgLOOBpuOBpOOChA0KK+OBn+OBquOBiyzjgYLjgoQNCivjgaTjgbzjgYQs44GI44Gk44GTDQor44Gv44GX44KC44GoLOOBoeOBiOOBkw0KK+OBteOBj+OBoSzjgZXjgajjgb8NCivjgYLjgonjgYQs44Go44KC44GTDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OChOOBl+OBvizjgarjgYrjgobjgY0NCivjgYvjgo/jgb7jgZ8s44Gf44GR44Gu44KKDQor44GZ44KT44GgLOOBguOBpOOChA0KK+OBv+OBmuOBn+OBqyzjgb/jga7jgosNCivjgoTjgb7jgZPjgZcs44Gu44KK44KG44GNDQor44GC44G+44GM44KELOOChuOCgeOBrg0KK+OBguOCieOBjSzjgbLjgZXjgogNCivjgYTjgb7jgYQs44Go44GX44Gv44KLDQor44GE44G+44GW44GNLOOBn+OBi+OBsuOBlQ0KK+OBjeOCgOOCiSzjgYvjgaTjgbLjgacNCivjgZnjgY7jgoTjgb4s44GE44GV44GKDQor44GZ44Ga44GNLOOBoOOBhOOBmeOBkQ0KK+OBpOOCiyzjgb/jga7jgosNCivjga/jgZPjgZbjgY0s44GC44GN44KJDQor44Gf44GN44GW44KPLOOBpOOCiOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjga7jgbYNCivjgb7jgZnjgaAs44KI44GX44Gu44KKDQor44Gk44Gw44GNLOOBoeOBguOBjQ0KK+OBv+OBmeOBvyzjgaHjgYvjgZMNCivjgoTjgYTjgZ8s44G+44GNDQor44GL44KP44GkLOOBsuOBqOOBlw0KK+OBpOOBi+OBoCzjgZ/jgZHjgbLjgZMNCivjgarjgYvjgoLjgags44G144G/44GTDQor44G144Gq44Gz44GNLOOBleOBquOBiA0KK+OCiOOBl+OBluOCjyzjgY3jgofjgYbjgZMNCivjgajjgYbjgb4s44KI44GG44GTDQor44Gb44GNLOOBvuOCig0KK+OCgOOCieOBnyzjgarjgYrjgY0NCivjgYvjgZ/jgoTjgb4s44G+44GV44Gy44KNDQor44GN44GpLOOBl+OCheOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgZfjga7jgb/jgoQs44Go44KC44GL44GaDQor44Gf44Gq44GLLOOBi+OBmuOChuOBjQ0KK+OBr+OCiSzjgojjgZfjga7jgooNCivjgoLjgorjgZ/jgass44GX44KH44GG44G444GEDQor44GE44Gh44Gu44GbLOOBi+OBmuOChuOBjQ0KK+OBteOBmOOCguOBqCzjgYvjgaTjgobjgY0NCivjgYbjgYjjga4s44GT44GG44GYDQor44GX44GX44GpLOOBqOOBl+OBruOCig0KK+OBv+OBhuOCiSzjgZnjgZnjgoANCivjgYbjgaHjgaAs44KL44G/44GTDQor44Gp44GELOOBk+OBhuOBhOOBoQ0KK+OBneOBmeOBvyzjgajjgZfjgobjgY0NCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OChOOBvuOBkOOBoSzjgarjgYjjgZMNCivjgZXjgZUs44KG44GN44GTDQor44Gv44Gb44GM44KPLOOBi+OBiuOCig0KK+OBguOBpOOBnyzjgojjgZfjgYoNCivjgYTjgaHjgYvjgo8s44G+44GV44GC44GNDQor44GG44GuLOOBleOBqOOBvw0KK+OBiuOBjOOCjyzjgobjgY3jgZMNCivjgYrjgaAs44Gy44KN44GL44GaDQor44Gf44GL44GV44GNLOOBvuOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgaTjgojjgZcNCivjgZ/jgaAs44Gf44Gg44GXDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBqOOBj+OBquOBjCzjgbLjgo3jgZcNCivjgajjgb/jgZ8s44GY44KF44KT44GTDQor44Gq44GE44Go44GGLOOCiuOBiA0KK+OBr+OCieOBoCzjgYjjgb/jgZMNCivjgbLjgonjgYvjgo8s44Go44KC44GTDQor44G144Gq44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBqeOBsOOBlyzjgobjgY0NCivjgb/jgYbjgoks44Gh44GTDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOBiuOBn+OBkSzjgZjjgoXjgpPjgZgNCivjgY/jgonjgZ8s44KE44GZ44Gy44KNDQor44GP44KK44GfLOOBleOBqOOBlw0KK+OBoOOCkyzjgb7jgZPjgagNCivjgoLjgorjgZfjgb4s44GX44KT44GYDQor44KI44GX44GgLOOCiOOBhuOBmA0KK+OCj+OBi+OBsOOChOOBlyzjgobjgb/jgZMNCivjgYLjgZLjgb7jgaQs44Gy44KN44G/44GhDQor44GE44GX44GQ44KNLOOBk+OBmeOBkQ0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgo0NCivjgZXjgYTjgajjgYYs44GX44KT44GE44GhDQor44Gq44GE44Go44GGLOOBv+OBoeOCiA0KK+OBv+OChOOBvuOBiCzjgajjgZfjgoQNCivjgYvjganjgo/jgY0s44GC44Gk44GXDQor44G144GP44KC44GoLOOBv+OBjeOBig0KK+OBq+OBl+OBr+OCiSzjgYLjgY3jgokNCivjgYrjgYvjgoTjgb4s44GL44Ga44Gq44KKDQor44GK44GL44KE44GZLOOBv+OBiOOBkw0KK+OBj+OCjeOBi+OCjyzjgajjgYrjgosNCivjgYrjgY3jgZ8s44KI44GX44Gy44GVDQor44GK44GP44G/44KELOOBvuOBleOBi+OBmg0KK+OBiuOBj+OCgOOCiSzjgaDjgYQNCivjgYrjga7jgaAs44Gq44KL44G/DQor44GK44Gu44Gn44KJLOOBsuOBqOOBlw0KK+OBiuOBrizjga/jgovjgobjgY0NCivjgYrjga4s44Gq44GK44G144G/DQor44GK44GuLOOCiOOBl+OBteOBvw0KK+OBvuOBpOOBhCzjgabjgovjgYoNCivjgYrjgZ3jgYjjgYzjgo8s44KE44GZ44Gq44KKDQor44GK44GW44GNLOOBruOBtuOChuOBjQ0KK+OBiuOBnOOBjSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga4s44GE44GV44GKDQor44KK44KH44GG44GL44GELOOCiOOBl+OBjQ0KK+OBleOBkuOBleOBiyzjgorjgoXjgYbjgYTjgaENCivjgZXjgY7jgoQs44GN44KH44GG44GE44GhDQor44GV44GE44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYLjgY3jgb/jgaQNCivjgZXjgYTjgajjgYYs44GU44KN44GGDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBleOBhOOBqOOBhizjgaTjga3jgYoNCivjgZXjgYTjgajjgYYs44KK44GLDQor44GV44GL44GQ44GhLOOBsuOBp+OBguOBjQ0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZfjgb7jgaAs44Gy44KN44GXDQor44GV44GL44GN44Gw44KJLOOBhOOBpOOCjeOBhg0KK+OBleOBi+OCguOBqCzjgZHjgpPjgZgNCivjgZXjgYvjgoLjgags44G+44GV44GNDQor44GV44GL44KC44GoLOOCgOOBreOBsuOCjQ0KK+OBleOBi+OCiizjga7jgbbjgbLjgo0NCivjgZXjgYvjgZ8s44GV44Go44KLDQor44GV44GP44G+LOOBl+OCk+OBmA0KK+OBleOBj+OCieOBhCzjgZ/jgYvjga7jgbYNCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GV44GP44KJ44GELOOCiOOBl+OBsuOCjQ0KK+OBleOCk+OBruOBhuOBvuOCiyzjgobjgY3jgYoNCivjgZXjga4s44KG44Gf44GLDQor44GV44GV44G5LOOBn+OBpOOCjeOBhg0KK+OBleOBleOBjSzjgZfjgpPjgZQNCivjgZXjgZXjgY0s44Go44KC44Gy44KNDQor44GV44GV44GNLOOBn+OBkeOBlw0KK+OBleOBleOBjSzjgarjgYrjgagNCivjgojjgZfjgaAs44Gy44KN44GXDQor44GV44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBleOBqOOBhizjgYvjgZrjga7jgooNCivjgZXjgajjgYYs44Gf44GL44Gu44KKDQor44GV44Go44GGLOOBr+OChOOBqA0KK+OBleOBqOOBhizjgoTjgZnjgbLjgZMNCivjgZXjgajjgYYs44KI44GX44KG44GNDQor44GV44Go44GGLOOCiOOBl+OBqA0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgZXjgajjgYYs44G+44GV44GTDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBqOOBhizjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44Gh44GC44GNDQor44GV44Go44GGLOOBi+OBmuOChA0KK+OBleOBqOOBhizjgb7jgZXjgb8NCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44KP44GE44GnLOOChuOBhuOBhOOBoQ0KK+OBleOCj+OBhCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZXjgoTjgarjgY4s44G+44KKDQor44Gb44GM44KPLOOCiOOBl+OBsuOCjQ0KK+OBm+OBhOOBv+OChCzjgbLjgo3jgZcNCivjgZvjgYTjgoTjgb4s44GX44GS44GNDQor44Gb44GN44GL44KPLOOBguOBjeOCiQ0KK+OBm+OBjSzjgZPjgYbjgZgNCivjgZvjgY0s44Gf44GR44GXDQor44Gb44KT44GgLOOBsuOCjeOBn+OBiw0KK+OBm+OCk+OBlOOBjyzjgY3jgofjgYbjgZMNCivjgZvjga4s44Go44GX44GC44GNDQor44Gb44GX44KCLOOBk+OBhuOBmA0KK+OBm+OBn+OBiyzjgZHjgYQNCivjgZnjgYws44KK44KH44GG44GE44GhDQor44G/44Gq44G/LOOChOOBmeOBlw0KK+OBl+OBsOOBnyzjgaHjgYLjgY0NCivjgZfjgbbjgoQs44Gy44KN44G/44GhDQor44GX44G244KELOOBpOOCiOOBlw0KK+OBl+OBtuOChCzjgb7jgZXjga7jgooNCivjgZfjgYTjga4s44Gy44KN44GTDQor44GX44GL44GfLOOBn+OBi+OBsuOCjQ0KK+OBl+OBjeOBtizjgbLjgo3jgZcNCivjgZfjgb7jgaAs44G+44GV44Gy44KNDQor44GX44G+44GgLOOBsuOCjeOBlw0KK+OBl+OBvuOBjOOBvyzjgajjgZfjgYLjgY0NCivjgZfjgb7jgoLjgoos44G+44GV44Gy44GTDQor44GX44G+44KA44KJLOOChuOBjeOBruOCig0KK+OBl+OBvuOBluOBjSzjgZPjgYYNCivjgZfjgb7jgZbjgY0s44Gf44GL44GC44GNDQor44GX44G/44GaLOOBiOOBhOOBnuOBhg0KK+OBl+OBv+OBmizjgorjgYgNCivjgZfjgb/jgZos44Gy44KN44GXDQor44GX44KC44GgLOOBkeOBhOOBv+OCkw0KK+OBl+OCguOBsuOCiSzjgZPjgYbjgZ/jgo3jgYYNCivjgZfjga7jga/jgoks44GC44GN44Gy44KNDQor44GX44Gu44Gv44KJLOOBvuOBquOBtg0KK+OBl+OBruOBluOBjSzjga7jgbbjgZMNCivjgZfjga7jgZbjgY0s44Gy44KN44GNDQor44GX44KT44G9LOOBi+OBmeOBvw0KK+OBl+OCk+OBn+OBqyzjgobjgYbjgZgNCivjgYrjgYrjgY3jgaks44Gd44Go44Gy44KNDQor44GX44GK44Gs44G+LOOBjeOCiOOBvw0KK+OBl+OBiuOBnyzjgY/jgavjgYLjgY0NCivjgZfjgYrjgoQs44G+44GV44Gy44KNDQor44GX44GK44GW44KPLOOBhOOBleOBig0KK+OBl+OCieOBhCzjgZfjgZLjgY0NCivjgZfjgonjgZXjgY0s44Gy44KN44GXDQor44GX44KJ44Go44KKLOOBvuOBleOBqOOBlw0KK+OBl+OCieOBqOOCiizjgZ/jgYvjgbLjgo0NCivjgZfjgo3jgY0s44Gy44Go44GXDQor44GX44KN44GX44GfLOOBl+OBkuOBjQ0KK+OBi+OBl+OBvizjgojjgZfjgYoNCivjgZfjgoXjgYYs44GU44GE44GhDQor44GE44G+44GELOOBsuOBp+OBr+OCiw0KK+OBneOBiOOBoCzjgbLjgo3jgZMNCivjgZ3jgYws44GE44Ga44KLDQor44Gd44KPLOOBi+OBmuOBquOCig0KK+OBmeOBoCzjgZPjgYbjgYTjgaENCivjgZnjgaAs44G+44GV44KLDQor44GZ44GgLOOBquOBiuOBjQ0KK+OBmeOBiOOBoCzjga7jgorjgojjgZcNCivjgZnjgYjjgoLjgoos44GV44GN44GTDQor44GZ44GI44GK44GLLOOBl+OCh+OBhuOBhOOBoQ0KK+OBmeOBjOOCj+OCiSzjgZfjgpPjgZgNCivjgZnjgZLjga4s44KE44GZ44Gy44KNDQor44GZ44GO44KC44GoLOOChOOBmeOBig0KK+OBmeOBjuOBnyzjgobjgYbjgYTjgaHjgo0NCivjgZnjgY7jgoTjgb4s44G/44Gk44GKDQor44GZ44GO44KE44G+LOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBmeOBjuOChOOBvizjgYjjgYTjgZgNCivjgZnjgb/jgajjgoIs44Gu44G844KLDQor44GZ44G/LOOChuOBjQ0KK+OBmeOBquOBjCzjgbLjgafjgobjgY0NCivjgZnjgZbjgY0s44Gm44Gk44KEDQor44GZ44Ga44GNLOOBpuOCi+OBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZnjgZrjgY0s44KE44GZ44GXDQor44GZ44Ga44GNLOOChuOBjeOBig0KK+OBmeOBmuOBjSzjgZfjga7jgbYNCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBqOOBl+OChA0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GL44Ga44GC44GNDQor44GZ44Ga44GNLOOBkeOBhOOBmA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjga/jgosNCivjgZnjgZrjgY0s44Gu44G244GKDQor44GZ44Ga44GNLOOBruOCiuOChuOBjQ0KK+OBmeOBmuOBjSzjgorjgofjgYbjgZnjgZENCivjgZ/jgbws44GX44KTDQor44Gf44G244GhLOOBn+OBpOOChA0KK+OBn+OBtuOBlSzjgajjgZfjgbXjgb8NCivjgZ/jgaHjgYvjgo8s44KE44GZ44KG44GNDQor44Gy44KJ44GNLOOChuOBhuOBhOOBoQ0KK+OBn+OBjOOBhCzjgoTjgZnjgZcNCivjgZ/jgYzjgo8s44G/44G7DQor44Gf44GMLOOBruOBtuOBn+OBiw0KK+OBn+OBkOOBoSzjgb/jgZXjgYoNCivjgZ/jgZDjgaEs44GX44KTDQor44Gf44GQ44GhLOOBv+OBquOBkw0KK+OBn+OBi+OBsOOBn+OBkSzjgojjgYbjgYTjgaENCivjgZ/jgYvjgY4s44GR44KT44Gf44KN44GGDQor44Gf44GL44Gv44KJLOOBqOOBl+OChA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBm+OBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44Gv44KL44GV44GgDQor44Gf44GL44Gv44GXLOOBvuOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOBi+OBmuOBl+OBkg0KK+OBn+OBi+OBr+OBlyzjga7jgorjgbLjgZMNCivjgZ/jgYvjga/jgZcs44Go44KI44G/DQor44Gf44GL44Gv44GXLOOBv+OBruOCiw0KK+OBn+OBi+OBhOOBlyzjgajjgoLjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44Gf44GL44G/LOOBv+OBruOCiw0KK+OBn+OBi+OCgOOCiSzjgZfjgo3jgYYNCivjgZ/jgYvjgarjgZcs44KI44GX44Gu44KKDQor44Gv44Gb44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBrizjgY3jgofjgYbjgZMNCivjgZ/jgYvjgYrjgYss44Gf44GL44GNDQor44Gf44GL44GK44GLLOOBruOBtuOChuOBjQ0KK+OBn+OBi+OBn+OBqyzjgYLjgY3jgokNCivjgZ/jgYvjgaTjgZgs44GL44Gk44GYDQor44Gf44GL44Gk44GLLOOBjeOCiOOBlw0KK+OBn+OBi+OBpCzjgb7jgZXjgb8NCivjgZ/jgYvjgoTjgb4s44GX44KT44GE44GhDQor44Gf44GL44KE44G+LOOBqOOBiuOCiw0KK+OBn+OBi+OChOOBvizjgoTjgZnjgZcNCivjgZ/jgZHjgaAs44GT44GG44GE44GhDQor44Gf44GR44GgLOOChOOBmeOBruOCig0KK+OBn+OBkeOBoCzjgZ/jgYvjgYvjgZoNCivjgZ/jgZHjgaAs44Gq44GK44Gy44GoDQor44Gf44GR44KC44GoLOOBruOBnuOBvw0KK+OBn+OBkeOCguOBqCzjgYvjgaTjgZcNCivjgZ/jgZHjgYbjgaEs44Gf44GL44GTDQor44Gf44GR44GG44GhLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgYTjgaENCivjgZ/jgZHjgYbjgaEs44Go44GK44KLDQor44Gf44GN44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBn+OBvuOBoSzjgbLjgo3jgZcNCivjgZ/jgoDjgoks44Go44GX44Gy44KNDQor44Gf44Gq44G5LOOBpOOBi+OBlQ0KK+OBn+OBquOBiyzjgZHjgYTjgZMNCivjgZ/jgarjgYss44Gq44GO44GVDQor44Gf44Gq44GLLOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjgb7jgY0NCivjgZ/jgarjgYss44Gy44KN44G144G/DQor44Gf44Gq44GLLOOBj+OBq+OBsuOBkw0KK+OBn+OBquOBiyzjgYvjgYrjgooNCivjgZ/jgpPjgaAs44G/44GN44GTDQor44Gf44Gr44GgLOOBjeOBv+OBuw0KK+OBn+OBq+OBjOOCjyzjgojjgZfjgZ/jgYsNCivjgZ/jgavjgoDjgoks44KI44GX44Gq44KKDQor44Gf44GrLOOBsuOCjeOBtuOBvw0KK+OBn+OBl+OCjSzjgobjgY3jgYoNCivjgbLjgonjgZXjgYss44Gu44G244KG44GNDQor44Gf44KP44GgLOOBiOOBhOOBiOOBpA0KK+OBn+OCj+OCiSzjgZfjgpPjgZgNCivjgabjgonjgaAs44Go44KI44Gy44GVDQor44Gm44KJ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBpuOCieOBl+OBvizjgbLjgafjgZMNCivjgZPjgbDjgoTjgZcs44Gf44GE44Ge44GGDQor44Gm44KJ44GG44GhLOOChOOBmeOBv+OBpA0KK+OCj+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgajjgY3jgajjgoIs44G+44GV44Gu44KKDQor44Go44GP44GgLOOBn+OBi+OChuOBjQ0KK+OBleOBj+OCieOBjizjga7jgorjgbLjgZUNCivjgajjgb/jgoLjgags44G+44GV44Gy44GTDQor44Go44G/44GfLOOBsuOBp+OBig0KK+OBqOOCguOBvyzjgbLjgo3jgb/jgaQNCivjgajjgpPjgZDjgYYs44G+44GV44GXDQor44Go44KK44GG44G/LOOBsuOCjeOBmeOBkQ0KK+OBqOOCiOOBoCzjgYvjgaTjgbLjgZUNCivjgajjgojjgZXjgags44Gy44KN44GXDQor44Go44KI44GX44G+LOOBpuOBpOOChA0KK+OBpOOBoeOBoCzjgZjjgoXjgpMNCivjgaTjgaHjgoLjgags44G+44GT44GoDQor44Gk44Gh44KELOOCgeOBkOOBvw0KK+OBpOOBoCzjgZ/jgaTjgo3jgYYNCivjgaTjgaAs44KG44GLDQor44Gk44GY44KC44GoLOOChuOBjeOBig0KK+OBpOOBmCzjga7jgorjgYoNCivjgaTjgZgs44Gy44KN44GXDQor44Gk44GL44GU44GXLOOBqOOBl+OBi+OBmg0KK+OBpOOBi+OCguOBqCzjgZHjgYTjgZgNCivjgaTjgY3jgaDjgaYs44Gy44KN44GXDQor44KC44KK44GfLOOBk+OBhuOBnuOBhg0KK+OBpOOCi+OBnyzjgZfjga7jgbYNCivjgaTjgZfjgb4s44Go44KC44GC44GNDQor44Gk44GXLOOBqOOBl+OBsuOBkw0KK+OBpOOBpOOBvyzjgZnjgb/jgagNCivjgaTjgoTjgb4s44KE44GZ44GNDQor44GG44Gh44GgLOOChuOBjeOBig0KK+OBhuOBoeOBoCzjgojjgYbjgZMNCivjgYbjgaHjgoTjgb4s44Gf44GR44GXDQor44GG44GgLOOChuOBi+OCig0KK+OBhuOBiOOBoCzjgZXjgYrjgooNCivjgYbjgYjjgaAs44Gy44KN44GXDQor44Gk44GL44KC44GoLOOBoeOBiOOBvw0KK+OBhuOBiOOBoCzjgbLjgafjgYoNCivjgY3jgY3jgofjgYYs44KI44GX44Gf44GLDQor44GG44GI44GgLOOBhOOBj+OBiA0KK+OBhuOBiOOBkOOCiizjgajjgYrjgosNCivjgYbjgYjjga/jgoks44Gy44KN44KG44GNDQor44GG44GI44G+44GkLOOBi+OBpOOChA0KK+OBleOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYbjgYjjga4s44Gy44Gn44Gf44GLDQor44GG44GI44GuLOOCiOOBl+OBkw0KK+OBhuOBiOOBrizjgbLjgo3jgobjgY0NCivjgYbjgYjjga4s44GX44GS44GNDQor44GG44GI44GuLOOBsuOBp+OBjQ0KK+OBhuOBiOOChOOBvizjgbLjgo3jga7jgooNCivjgYbjgoHjgaAs44GL44Gq44GGDQor44GG44KB44GL44KPLOOBi+OCiA0KK+OBquOBjOOBnyzjga7jgorjgZMNCivjgYbjgonjgZQs44Go44KI44Gy44KNDQor44GG44KL44GX44GW44GLLOOChuOBjeOBig0KK+OBn+OBi+OBr+OBlyzjgZfjgofjgYbjgYTjgaENCivjgYbjgaTjga7jgb/jgoQs44GX44KT44G644GEDQor44KP44GgLOOBi+OBmuOBsuOCjQ0KK+OCj+OBoCzjgb/jgY3jgYgNCivjgo/jgaAs44GX44Ga44GKDQor44KP44GL44Gw44KE44GXLOOChuOBv+OBkw0KK+OCj+OBi+OBsOOChOOBlyzjgYvjgZrjgbLjgZMNCivjgo/jgYvjgb7jgaQs44GL44Ga44GNDQor44KP44GL44G+44GkLOOBk+OBhuOBmA0KK+OCj+OBjeOCguOBqCzjgarjgorjgagNCivjgo/jgY/jgYQs44GX44KF44GG44GYDQor44GE44Go44GELOOCiOOBl+OBsuOBlQ0KK+OCj+OBn+OBuSzjgYvjgaTjgoQNCivjgo/jgZ/jgbks44Gq44GK44Gf44GLDQor44KP44Gf44Gq44G5LOOBl+OCheOCk+OBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44KP44Gf44Gq44G5LOOBiOOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgajjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44KG44GNDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBrOOBjSzjgb7jgZXjgosNCivjgoTjgbbjgZfjgZ8s44G/44Gp44KKDQor44KE44G244GfLOOBv+OBpOOCiOOBlw0KK+OChOOBtuOBhuOBoSzjgZfjgofjgYbjgbjjgYQNCivjgoTjgZjjgb4s44KI44GG44GTDQor44KE44GP44GX44GYLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOBoCzjgobjgY3jgZMNCivjgoTjgb7jgaAs44Gy44KN44GIDQor44KE44G+44GgLOOBsuOBlQ0KK+OChOOBvuOBoCzjgYLjgY3jga7jgbYNCivjgoTjgb7jgaAs44GC44GN44GKDQor44KE44G+44GgLOOBiOOBhOOBmeOBkQ0KK+OChOOBvuOBjOOBvyzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgZDjgaEs44GY44KN44GGDQor44KE44G+44GQ44GhLOOBk+OBhuOBmA0KK+OChOOBvuOBi+OCjyzjgZfjgpMNCivjgoTjgb7jgZPjgZcs44Gf44GL44GXDQor44KE44G+44KC44GoLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZHjgYQNCivjgoTjgb7jgoLjgags44G+44GV44G/44GhDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgYTjgZgNCivjgoTjgb7jgoLjgags44Gy44KN44G144G/DQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgYvjgo/jgZDjgaEs44GC44GN44KJDQor44KE44G+44KA44KNLOOBsuOCjeOBv+OBoQ0KK+OBhOOCj+OBnyzjgZ/jgZHjgZcNCivjgoTjgb7jgYrjgYss44GL44Ga44Gy44KNDQor44KE44G+44GV44GNLOOBsuOBp+OBj+OBqw0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gk44Go44KADQor44KE44G+44GX44GfLOOBqOOBl+OBguOBjQ0KK+OChOOBvuOBl+OBnyzjgYLjgY3jgZMNCivjgoTjgb7jgZfjgZ8s44Gy44KN44KG44GNDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBpw0KK+OChOOBvuOBl+OBnyzjgYvjgaTjgobjgY0NCivjgoTjgb7jgZfjgZ8s44GC44GN44KJDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBluOBjSzjgYvjgYrjgosNCivjgoTjgb7jgZbjgY0s44GT44GG44GYDQor44KE44Gq44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBiuOBiyzjgbLjgYvjgosNCivjgoTjgarjgZss44KK44KH44GG44GE44GhDQor44KE44GuLOOBqOOCguOChuOBjQ0KK+OChOOBiizjgYjjgorjgZMNCivjgoTjgZnjgaAs44Go44GX44G144G/DQor44KE44GZ44GL44KPLOOBsuOBqOOBvw0KK+OCiOOBjOOBhCzjgZPjgYbjgYTjgaENCivjgojjgZPjgYzjgo8s44Gb44GE44GYDQor44KI44GT44GV44KPLOOBvuOBleOChuOBjQ0KK+OCiOOBk+OBnyzjgb/jgarjgZMNCivjgojjgZPjgZ8s44KE44GZ44GXDQor44KI44GT44GG44GhLOOBpOOBqOOCgA0KK+OBquOBi+OChOOBvizjgYLjgaTjgZcNCivjgojjgZPjgoTjgb4s44Gv44KL44Gy44GTDQor44KI44GT44KE44G+LOOBvuOBleOBig0KK+OCiOOBreOBr+OCiSzjgajjgZfjgobjgY0NCivjgojjga3jgoDjgoks44Gf44Gg44GXDQor44KI44GX44GgLOOBvuOBleOBqOOBlw0KK+OBv+OChOOCgOOCiSzjgaTjgajjgoANCivjgojjgZfjgaAs44GN44G/44GC44GNDQor44KI44GX44GgLOOBvuOBleOBi+OBpA0KK+OBquOBiyzjgojjgZfjgbLjgo0NCivjgojjgZfjgoDjgoks44KI44GG44GE44GhDQor44KI44GX44KA44KJLOOBsuOCjeOBvw0KK+OBrOOBvuOBiizjgb/jga3jgYoNCivjgojjgZfjgZbjgY0s44GI44GE44GYDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OChuOBguOBlSzjgorjgofjgYbjgZ8NCivjgobjgZIs44Gf44GL44Gy44KNDQor44KG44GL44KPLOOCiOOBl+OBn+OBiw0KK+OBvuOBpOOBoCzjgojjgZfjgaTjgZANCivjgYLjgbks44KE44GZ44Gy44KNDQor44Gv44Gb44GM44KPLOOBi+OBpOOBvuOBlQ0KK+OBr+OBl+OCguOBqCzjgbLjgajjgZcNCivjgbLjgonjgaTjgYss44Gf44KC44GkDQor44G744GX44GL44KPLOOBv+OBruOCiw0KK+OBu+OBneOChCzjgZfjgofjgYbjgZgNCivjgYTjgZfjga/jgoks44Gf44GL44GXDQor44GE44KP44GNLOOBn+OBoeOBr+OCiw0KK+OBi+OBreOBoCzjgZPjgYbjgZgNCivjgY3jgoDjgoks44Gf44GR44GXDQor44GT44KT44GuLOOBvuOBk+OBqA0KK+OBvuOBpOOBoCzjgojjgZfjgbLjgZUNCivjgb/jgoTjgZfjgZ8s44GX44GS44Go44KCDQor44GV44GL44KC44GoLOOBvuOCig0KK+OBruOCgOOCiSzjgZfjgpPjgYTjgaENCivjgYrjgYrjgbDjgoTjgZcs44GI44Gk44GTDQor44GV44GE44Go44GGLOOChuOBjeOBiA0KK+OBleOBleOBjOOCjyzjgobjgYbjgZMNCivjgZXjgajjgYYs44KE44KI44GEDQor44GX44GMLOOBvuOBleOBv+OBpA0KK+OBl+OBruOBr+OCiSzjgb7jgZXjgZcNCivjgZfjgofjgYYs44KB44GQ44G/DQor44Gf44GR44GM44KPLOOBv+OBiOOBkw0KK+OBn+OBpOOBvyzjgobjgZ/jgYsNCivjgajjgb/jgYgs44Gu44KK44Gy44GTDQor44KP44Gf44Gq44G5LOOBvuOCguOCiw0KK+OChOOBvuOBoCzjgobjgYbjgYTjgaENCivjgoTjgb7jgaAs44Go44G/44Gy44KNDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOBluOBjSzjgb7jgZXjgYoNCivjgZPjgb7jgaTjgZbjgY0s44Gh44GC44GNDQor44G144Gh44GgLOOBvuOBleOBsuOBkw0KK+OBn+OBquOBiyzjgYvjgZrjgobjgY0NCivjga/jgoTjgZcs44GV44G744KKDQor44Gq44GM44GfLOOBm+OBhOOBhOOBoQ0KK+OBsOOBsCzjgb7jgZPjgagNCivjgYLjgYvjgb4s44Gf44GL44GXDQor44GL44GW44G+LOOBi+OBmuOBl+OBkg0KK+OCguOCiizjgbLjgo3jgYLjgY0NCivjgYTjgZHjgaAs44Gk44KI44GXDQor44KP44Gf44Gq44G5LOOBi+OBpOOBqA0KK+OBv+OBvizjgbXjgb/jgYoNCivjgYLjgpPjganjgYYs44Go44KC44Gy44KNDQor44G+44GI44Ge44GuLOOBv+OBpOOBsuOCjQ0KK+OBiuOBn+OBiyzjgZPjgYbjgYTjgaENCivjga/jgoTjgZcs44G+44GV44Gy44KNDQor44GG44GI44GuLOOBi+OBmuOBn+OBiw0KK+OBpOOBruOBoCzjgZHjgYTjgYTjgaENCivjgZnjganjgYYs44Gf44GL44Go44GXDQor44GV44GL44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBn+OBquOBiyzjgoLjgorjgZfjgZINCivjgZPjgajjgYbjgaAs44KG44GN44Gu44KKDQor44GL44KL44G5LOOBteOBv+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgabjgovjgojjgZcNCivjgbLjgonjga4s44Gy44KN44GTDQor44GV44Go44GGLOOBsuOCjeOBvuOBlQ0KK+OBquOBi+OChOOBvizjgZHjgpPjgYTjgaENCivjga7jgaAs44KG44KK44GTDQor44G+LOOChOOBmeOBsuOCjQ0KK+OBl+OBquOBjOOCjyzjgaHjgYvjgokNCivjgarjgYzjgoTjgZks44GT44GG44GYDQor44GC44GK44GNLOOBk+OBhuOBmA0KK+OBquOBi+OBnyzjga/jgoTjgagNCivjgb/jgY/jgorjgoQs44Gm44KL44KG44GNDQor44G+44KL44KE44G+LOOBsuOBp+OBqOOBlw0KK+OBiOOBoeOBnOOCkyzjgbLjgZXjgZcNCivjgarjgYvjgavjgZcs44GX44KH44GG44GE44GhDQor44Gv44GO44GKLOOBqOOCguOBsuOBkw0KK+OBn+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgZ/jgZDjgaEs44KI44GX44Go44GXDQor44GK44GW44KPLOOBiuOBleOCgA0KK+OChOOBiuOBhOOBnyzjgajjgZfjgbLjgo0NCivjgYLjgZXjga4s44Gu44KK44KE44GZDQor44GP44GV44GuLOOBpuOCi+OBsuOCjQ0KK+OBr+OBvuOBoCzjgb7jgZXjgZgNCivjgYTjgorjgoTjgb4s44Gv44Gq44GTDQor44KA44KJ44GfLOOBquOBiuOChA0KK+OBguOBleOBrizjgojjgYbjgZgNCivjgZ/jgYvjga4s44GR44KT44GE44GhDQor44KE44G+44GQ44GhLOOBguOBjeOBqOOBlw0KK+OCgOOCieOBi+OBvyzjga7jgorjgbLjgo0NCivjgZ/jgarjgYss44GL44Gk44GYDQor44Gf44GL44GK44GLLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgb/jgZXjgbsNCivjgb/jga3jgY7jgZcs44Gq44GK44KEDQor44GC44G5LOOBruOCiuOBguOBjQ0KK+OBguOBuSzjgb/jgZrjgbsNCivjgYLjgbks44GX44KF44KT44GYDQor44GC44G5LOOBsuOBp+OBjQ0KK+OBguOBjOOBpOOBvizjgYLjgY3jgokNCivjgYLjgYTjgZbjgo8s44Gf44GL44GXDQor44GC44GL44GE44GRLOOBmOOCheOCk+OBkw0KK+OBguOBjeOCguOBqCzjgojjgZfjga7jgbYNCivjgYLjgY3jgZ/jgoQs44KG44GN44GKDQor44GC44GN44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBguOBj+OBpCzjgZfjgZLjgY0NCivjgYLjgb7jga4s44Gf44Gg44GL44GkDQor44GC44G+44GuLOOBguOBpOOBruOCig0KK+OBguOBvuOBrizjgbXjgb/jgYgNCivjgYLjgoHjgb/jgoQs44GL44Ga44G/DQor44GC44KT44Gp44GGLOOBvuOBleOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgabjgpPjgZvjgYQNCivjgYLjgpPjgZbjgYQs44KG44GG44GYDQor44GC44GK44GNLOOCiuOBpOOBkw0KK+OBguOBiuOBjSzjgZ/jgYvjgobjgY0NCivjgYLjgYrjgY0s44GV44Gg44Gv44KLDQor44GC44KJ44GELOOBr+OCi+OBsuOBqA0KK+OBguOCieOBjSzjgojjgYbjgYTjgaENCivjgYLjgonjgY0s44GX44GS44G/44GkDQor44GC44KJ44KELOOCiOOBl+OBn+OBiw0KK+OBguOCiuOCiOOBlyzjgajjgoLjga7jgbYNCivjgYLjgZXjgbLjgaos44KI44GG44GE44GhDQor44GC44GV44GELOOBquOCiuOBqA0KK+OBguOBleOBvyzjgbLjgo3jgobjgY0NCivjgYLjgZXjgaTjgZEs44GL44Ga44KG44GNDQor44GC44GdLOOBj+OBq+OBi+OBmg0KK+OBguOBmuOBvizjgb7jgZPjgagNCivjgYLjgZrjgb4s44GV44Go44GTDQor44Gw44GwLOOBmeOBv+OBkw0KK+OBsOOBsCzjgajjgoLjgZMNCivjgYvjgYws44KI44GX44GNDQor44Gw44GwLOOChuOBhuOBmeOBkQ0KK+OBsOOCkyzjgobjgYsNCivjgbPjgovjgYvjgo8s44KM44GE44GTDQor44G844GGLOOBteOBj+OBig0KK+OBoOOBhOOBlCzjgZfjgoXjgpPjgZnjgZENCivjgaDjgYTjgZTjgY8s44GY44KF44KT44GE44GhDQor44Gp44Gw44GXLOOBqOOBiuOCiw0KK+OBiOOBs+OBleOCjyzjgbLjgo3jgZcNCivjgYjjga/jgoks44Gy44KN44Go44GXDQor44G144Gh44GM44G/LOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBteOBmOOBsOOChOOBlyzjgbLjgo3jgZcNCivjgbXjgZjjgYjjgaAs44KK44KH44GG44GE44GhDQor44G144GY44GELOOBm+OBhOOBlA0KK+OBteOBmOOBhCzjgZfjgpPjgZgNCivjgbXjgZjjgYQs44KI44GX44Gu44KKDQor44G144GY44GELOOBvuOBleOChA0KK+OBteOBmOOBhCzjgbLjgafjgYLjgY0NCivjgZXjgYvjgoLjgags44GX44KF44GG44G444GEDQor44GN44Gf44GgLOOBiOOBhOOBhOOBoQ0KK+OBteOBmOOBhCzjgYvjgYrjgosNCivjgbXjgZjjgYQs44GX44KT44GE44GhDQor44G144GY44GELOOBn+OBpOOChA0KK+OBteOBmOOBi+OCjyzjgYvjgZrjgbLjgZMNCivjgbXjgZjjgoLjgoos44GN44KH44GG44GTDQor44G144GY44KC44GoLOOBsuOCjeOBlw0KK+OBteOBmOOBrizjgZvjgYTjgZgNCivjgbXjgZjjgZXjgo8s44Gy44KN44Gf44GLDQor44G144GY44GfLOOBqOOBl+OChA0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GR44GE44GYDQor44GP44GZ44KC44GoLOOBsuOCjeOBteOBvw0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44GR44GEDQor44G144GY44KP44KJLOOBvuOBk+OBqA0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgoANCivjgbXjgZjjgo/jgoks44Go44GX44GNDQor44G144GL44G844KKLOOBsuOBp+OBig0KK+OBteOBi+OBvyzjgZXjgarjgYgNCivjgbXjgYvjgb8s44Gy44GV44GTDQor44G144GP44GgLOOChuOBhuOBkw0KK+OBteOBj+OBoCzjgZXjgajjgb8NCivjgbXjgY/jgaAs44GY44KF44KTDQor44G144GP44GgLOOChuOBiw0KK+OBteOBj+OBhCzjga7jgorjgaHjgYsNCivjgbXjgY/jgYQs44Go44KC44GYDQor44G144GP44Gq44GMLOOBkeOCk+OBmA0KK+OBteOBj+OBquOBjCzjgb7jgZXjgoTjgZkNCivjgbXjgY/jgYrjgYss44G/44Gu44KLDQor44G144GP44GK44GLLOOBhOOBleOBig0KK+OBteOBj+OBlyzjgoTjgZnjga7jgooNCivjgbXjgY/jgZfjgb4s44Go44GX44KG44GNDQor44G144GP44Go44KBLOOBm+OBhOOBmA0KK+OBteOBj+OChOOBvizjgYvjgaTjgbLjgagNCivjgbXjgarjgbDjgZcs44Go44GK44KLDQor44G144KL44GuLOOBguOBjeOCiQ0KK+OBteOCi+OChCzjgajjgZfjgobjgY0NCivjgbXjgovjgoQs44Gy44KN44KG44GNDQor44G144KL44KE44G+LOOBv+OBruOCiw0KK+OBteOBn+OBsCzjgobjgb/jgZMNCivjgYLjgarjgb8s44Gy44GV44Gu44KKDQor44G144Gf44G/LOOBteOBmOOBig0KK+OBteOBn+OCgOOCiSzjgajjgoLjgZMNCivjgYzjgaks44Gy44GV44GXDQor44GU44GGLOOCiuOCh+OBhuOBkw0KK+OBlOOBhuOBoCzjgZfjgpMNCivjgZTjgYss44Gf44Gk44KEDQor44GU44Go44GGLOOBqOOBl+OBn+OBiw0KK+OBlOOBqOOBhizjgZfjga7jgbYNCivjga/jgbYs44GX44KH44GG44GYDQor44Gv44GMLOOBguOBpOOBlw0KK+OBr+OBjizjgZHjgpPjgZgNCivjga/jgb4s44Gf44Gg44Gy44KNDQor44Gv44G+44GgLOOBvuOBleOCiw0KK+OBr+OBvuOBrizjgYrjgZXjgoANCivjga/jgb7jga4s44Gf44Gk44KEDQor44Gv44G+44GX44G+LOOChuOBvw0KK+OBr+OBvuOBl+OBvizjgZXjgaDjgb/jgaQNCivjga/jgarjgYQs44Gm44Gk44GKDQor44Gv44KJLOOBn+OBpOOBjQ0KK+OBiuOBnyzjgZPjgYbjgYTjgaENCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GTLOOBn+OBpOOBsuOCjQ0KK+OBr+OBmyzjgobjgZ/jgYsNCivjga/jgZvjgYzjgo8s44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBl+OCh+OBhuOBmA0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44Gb44Gk44GKDQor44Gv44GX44KC44GoLOOBguOBkeOBvw0KK+OBr+OBl+OBmuOCgSzjgb7jgZXjgY0NCivjga/jgZfjgZrjgoEs44Gq44GK44GNDQor44Gv44GfLOOBl+OCk+OBhOOBoQ0KK+OBr+OBnyzjgojjgZfjgbLjgZMNCivjga/jgZ8s44Gf44GR44Gy44GTDQor44Gv44Gf44GuLOOBjeOCh+OBhuOBkw0KK+OBr+OBn+OBrizjgoTjgZnjgobjgY0NCivjga/jgZ/jga4s44KI44GX44Gy44KNDQor44Gk44GgLOOBsuOCjeOBkw0KK+OBr+OChOOBi+OCjyzjgojjgZfjga7jgooNCivjga/jgoTjga4s44GL44Gq44GTDQor44Gv44KE44GXLOOBleOBiuOCig0KK+OBr+OChOOBlyzjgZnjgZnjgoANCivjga/jgoTjgZcs44Gu44G244KG44GNDQor44Gv44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjga/jgoTjgZfjgZ/jgass44GC44GN44KJDQor44Gy44GM44GX44GuLOOBjeOBv+OBn+OBkQ0KK+OBsuOBkOOBoSzjgYvjgZrjgbLjgZMNCivjgbLjgZDjgaEs44GX44KT44GE44Gh44KN44GGDQor44Gy44KB44GuLOOChOOBmeOBlw0KK+OBsuOCieOBsOOChOOBlyzjgobjgYbjgZMNCivjgbLjgonjgYQs44KG44GG44GE44GhDQor44Gy44KJ44GL44KPLOOBsuOCjeOBlw0KK+OBsuOCieOBjSzjgbLjgo3jgZcNCivjgbLjgonjga4s44Gb44GE44KK44KH44GGDQor44GC44GK44GNLOOBv+OBoeOBkw0KK+OBsuOCieOBiuOBiyzjgb7jgZXjgoQNCivjgbLjgonjgZXjgYss44Gy44KN44KG44GNDQor44Gy44KJ44KE44G+LOOCiOOBl+OBruOCig0KK+OBsuOCjeOBr+OBnyzjgobjgYbjgYTjgaHjgo0NCivjgb7jgYjjgYvjgo8s44KE44GZ44Gy44KNDQor44Gy44KN44GbLOOBvuOBquOBtg0KK+OBsuOCjeOBmyzjgbLjgo3jgojjgZcNCivjgbLjgo3jgZ8s44G+44GV44Gu44G2DQor44Gy44KN44KP44Gf44KKLOOBn+OBi+OBsuOCjQ0KK+OBsuOCjeOBv+OBpCzjgbLjgo3jgZcNCivjgbLjgYbjgoks44G+44KC44KLDQor44G744G8LOOBn+OBhOOBmeOBkQ0KK+OBu+OBj+OCiSzjgb7jgZPjgagNCivjgbvjgpPjgaAs44GE44GV44GKDQor44G744KT44GgLOOCiOOBhuOBkw0KK+OBmeOBmuOBjSzjgbLjgafjgY0NCivjgbvjgpPjgZTjgYYs44GL44Ga44Gf44GLDQor44G744KK44GQ44GhLOOBjeOBhOOBoeOCjeOBhg0KK+OBu+OCiuOBhCzjgY3jgavjgaENCivjgbvjgorjgYvjgo8s44Gm44KL44GKDQor44G744GX44GuLOOChOOBmeOBsuOCjQ0KK+OBu+OBneOBi+OCjyzjgbLjgafjgobjgY0NCivjgbvjgZ3jgb8s44Gy44KN44GC44GNDQor44G744Gj44GfLOOBi+OBmuOBguOBjQ0KK+OBhOOBtuOBiyzjga7jgbbjgb/jgaENCivjgYTjgbbjgY0s44Gy44Gn44KG44GNDQor44GE44Gh44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBoeOCgOOCiSzjgY3jgb/jgYgNCivjgYTjgaAs44GL44Gq44KBDQor44GE44GgLOOBoeOBr+OCiw0KK+OBhOOBpyzjgoTjgZnjgbLjgacNCivjgYTjgacs44GN44KI44Gf44GLDQor44GE44GnLOOBquOBiuOChuOBjQ0KK+OBhOOBp+OBnyzjgZ/jgYvjgZcNCivjgYTjgYzjgonjgZcs44GR44GE44GTDQor44GE44GM44KJ44GXLOOChuOBjeOChA0KK+OBhOOBkizjgZXjgaTjgY0NCivjgYTjgYTjgaAs44GX44KH44GG44Ge44GGDQor44GE44GE44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBhOOBoCzjgZ/jgb7jgb8NCivjgYTjgYTjgaAs44KI44GX44Gy44GVDQor44GE44GE44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBhOOBmOOBvizjgZ/jgZHjgZcNCivjgYTjgZHjgaAs44GL44Gk44KEDQor44GE44GR44GgLOOBvuOBleOBguOBjQ0KK+OBhOOBk+OBvizjga7jgbbjgb7jgZUNCivjgYTjgb7jgYQs44GN44KI44Gy44GoDQor44GE44G+44GELOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgYTjgb7jgoDjgoks44GT44GG44GE44GhDQor44GE44G+44Gq44KKLOOBn+OBpOOChA0KK+OBhOOBvuOBnOOBjSzjgZjjgoXjgpPjgZgNCivjgYTjgarjgaAs44G+44KG44G/DQor44GE44Gq44G+44GZLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgobjgY0NCivjgYTjgacs44G+44GV44Gy44KNDQor44GE44KM44GELOOBvuOBleOCiw0KK+OBhOOBl+OBr+OCiSzjgb/jgaTjgb8NCivjgYTjgZfjga/jgoks44G/44KG44GNDQor44GE44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBhOOBl+OBr+OCiSzjgZnjgZnjgoANCivjgYTjgZfjga/jgoks44GY44KF44KT44GE44GhDQor44GE44GX44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBhCzjgajjgoLjgobjgY0NCivjgYTjgZfjgYvjgo8s44KG44GG44GYDQor44GE44GX44GL44KPLOOBquOBiuOBteOBvw0KK+OBhOOBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgYTjgZfjgo/jgZ/jgoos44G+44GZ44G/DQor44GE44GX44GW44GNLOOBruOCiuOCiOOBlw0KK+OBhOOBl+OBmuOBiyzjgarjgYrjgajjgY8NCivjgYTjgZ3jga4s44G/44Gk44Go44GXDQor44GE44Gd44KE44G+LOOBv+OBpOOBruOBtg0KK+OBhOOBmeOBoCzjgZfjgZLjgYoNCivjgYTjgZ/jgY/jgoks44G+44GV44Gy44KNDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgbLjgo3jgbXjgb8NCivjgYTjgajjgYYs44KI44GX44G+44GVDQor44GE44Go44GGLOOBr+OCi+OBig0KK+OBvuOBpOOBhCzjgZ/jgZHjgbLjgZMNCivjgYTjgajjgYYs44Gf44GR44Gy44GTDQor44GE44Go44GGLOOBvuOBleOBoeOBiw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgYTjgo/jgYvjgb8s44Gk44Go44KADQor44GE44KP44GVLOOBqOOBl+OBvw0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZgNCivjgYTjgo/jgZXjgY0s44Gq44GK44KG44GNDQor44GE44KP44GX44GfLOOBv+OBoeOBn+OBiw0KK+OBhOOBmuOBvyzjgajjgYrjgosNCivjgYTjgajjgYYs44GC44Gk44GXDQor44GE44Ga44G/LOOBqOOBuOOBhA0KK+OBhOOBmuOBv+OBleOCjyzjgZvjgYTjgZgNCivjgZjjgpPjga4s44KE44GZ44GXDQor44G/44GpLOOCiuOCheOBhuOBmA0KK+OBi+OBjCzjgYLjgZHjgb8NCivjgYvjgYzjgb8s44G144GV44GKDQor44GL44GS44KE44G+LOOBsuOBleOBquOBjA0KK+OBi+OBhCzjgbLjgajjgZcNCivjgYvjgYTjgaAs44GT44GG44GYDQor44GL44GE44GaLOOBn+OBkeOBsuOBqA0KK+OBi+OBmOOBnyzjgZgNCivjgYvjgZHjgbIs44GC44GR44G/DQor44GL44GN44KC44GoLOOBqOOCguOBsuOCjQ0KK+OBi+OBjeOBrOOBvizjgZXjgaHjgZMNCivjgYvjgY3jgazjgb4s44GX44Ga44GLDQor44GL44G+44GfLOOBqOOBl+OBiA0KK+OBi+OBvuOBnyzjgZHjgpPjgYTjgaENCivjgYvjgb/jgZDjgaEs44G/44GI44GTDQor44GL44G/44KA44KJLOOCiOOBl+OBig0KK+OBi+OBreOBkyzjgb7jgZXjga7jgooNCivjgYvjgarjgb7jgoss44GYDQor44GL44Gq44GW44KPLOOBvuOCguOCiw0KK+OBi+OCk+OBuSzjgZ/jgYvjgbLjgo0NCivjgYvjgpPjgaAs44GT44GG44Ge44GGDQor44GL44Gt44Gv44KJLOOBkeOCkw0KK+OBlOOBqOOBhizjgZfjgZLjgYvjgZoNCivjgYvjga3jgZMs44Gf44GR44GXDQor44GL44Gt44GTLOOChOOBmeOBquOBig0KK+OBi+OBreOBkyzjgYLjgY3jgokNCivjgYvjga3jgZMs44Gy44Gn44Go44GXDQor44GL44Gt44GTLOOBsuOCjeOBteOBvw0KK+OBi+OBreOBv+OBpCzjgbLjgo3jgb/jgaQNCivjgYvjga3jgoDjgoks44GL44Ga44GKDQor44GL44Gt44GfLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgojjga3jgoLjgaEs44Gq44GK44GXDQor44GL44KT44GuLOOChOOBmeOBvuOBlQ0KK+OBi+OBleOBhCzjgobjgYvjgooNCivjgYvjgZfjgb4s44GT44GG44GY44KN44GGDQor44Gf44GL44GOLOOBsuOBp+OBjQ0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgb8NCivjgYvjgZ/jgYrjgYss44KE44GZ44KG44GNDQor44GL44Gf44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBi+OBn+OBiuOBiyzjgZfjgZLjgobjgY0NCivjgYvjgZ/jgZss44KE44GZ44Gq44KKDQor44GL44Gf44KE44G+LOOBv+OBoeOBkw0KK+OBi+OBn+OChOOBvizjgarjgYrjgobjgY0NCivjgYvjgZ/jgoTjgb4s44KG44GG44GTDQor44GL44Gf44KE44G+LOOBjeOCh+OBhuOBkw0KK+OBi+OBqOOBhizjgoTjgZnjgbLjgo0NCivjgYvjgajjgYYs44Gy44KN44GC44GNDQor44GL44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBi+OBqOOBhizjgaTjgajjgoANCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBqOOBl+OBsuOCjQ0KK+OBi+OBqOOBhizjgojjgZfjgb8NCivjgYvjgajjgYYs44KG44GG44GYDQor44GL44Go44GGLOOBpOOBqOOCgA0KK+OBneOCgeOChCzjgZjjgoXjgpPjgZMNCivjgYvjgo/jgbDjgZ8s44G+44GT44GoDQor44GL44KP44GQ44GhLOOBvuOBleOBhOOBoQ0KK+OBi+OCj+OBkOOBoSzjgZfjgpPjgoQNCivjgZ/jgb7jgYzjgo8s44GT44GG44GE44Gh44KN44GGDQor44GL44KP44Gv44KJLOOBsuOBleOBlw0KK+OBi+OCj+OBr+OCiSzjgZjjgoXjgpPjgZgNCivjgYvjgo/jgbLjgags44GL44Gk44Gy44GVDQor44GL44KP44GELOOBruOCiuOBsuOBlQ0KK+OBi+OCj+OBhCzjga7jgorjgZMNCivjga/jgY7jgo/jgoks44GX44GS44GNDQor44Gq44KL44GRLOOBn+OBi+OBlw0KK+OBi+OCj+OBleOBjSzjgojjgZfjgbLjgo0NCivjgYvjgo/jgZfjgb4s44KG44GL44KKDQor44GL44KP44GX44G+LOOChuOBjeOBkw0KK+OBi+OCj+OBnyzjgobjgZ/jgYsNCivjgYvjgoTjgb4s44Gy44KN44GL44GaDQor44GL44GW44G+44Gk44KKLOOBsuOCjeOBkw0KK+OBjeOBqSzjgZ/jgYvjgbXjgb8NCivjgY3jgYzjgb8s44G+44Gq44G2DQor44GN44GU44GXLOOBsuOBleOChA0KK+OCguOCiuOBleOCjyzjgY3jgojjgZcNCivjgY3jgY/jgaEs44G/44Gk44GQDQor44GN44GP44GhLOOBjeOBhOOBoQ0KK+OBjeOBj+OBoSzjga7jgorjgYoNCivjgY3jgY/jgoks44GL44Gk44G/DQor44GN44KA44KJLOOBpOOBreOBig0KK+OBjeOCgOOCiSzjgbLjgo3jgY0NCivjgY3jgoDjgoks44GC44GR44G/DQor44GN44KA44KJLOOBqOOCguOBsuOBlQ0KK+OBjeOCgOOCiSzjgYvjgaTjga7jgooNCivjgY3jgoDjgoks44GR44GE44GE44GhDQor44GN44KA44KJLOOBvuOBleOBjQ0KK+OBjeOCgOOCiSzjgb7jgZXjgobjgY0NCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44GN44KA44KJLOOBruOCiuOBkw0KK+OBjeOCgOOCiSzjgZfjgpPjgY3jgaENCivjgY3jga7jgZfjgZ8s44Gf44GE44GTDQor44GN44Gu44GX44GfLOOBqOOBl+OBsuOBkw0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgY3jgZfjgbks44Gy44KN44GNDQor44GN44GX44GgLOOCiOOBl+OBruOCig0KK+OBjeOBl+OCguOBqCzjgZ/jgZHjgZcNCivjgY3jgZfjgoLjgags44Gf44Gk44KEDQor44GN44GfLOOBn+OBi+OBv+OBoQ0KK+OBjeOBn+OBguOBjSzjgbLjgo3jgobjgY0NCivjgY3jgZ/jgaAs44Gy44KN44KG44GNDQor44GN44Gf44GM44KPLOOBqOOBl+OChuOBjQ0KK+OBjeOBn+OBu+OCiizjgbLjgo3jgobjgY0NCivjgY3jgZ/jgZjjgb4s44Gf44Gk44KEDQor44GN44Gf44KA44KJLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgojjgZcNCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBoeOBteOChg0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgobjgY0NCivjgZfjgonjgYQs44Gg44GE44GZ44GRDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Go44GX44KEDQor44GT44Gw44KE44GXLOOBqOOBl+OBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgbXjgb8NCivjgZPjgaDjgb4s44Gy44KN44KG44GNDQor44GT44GO44GfLOOBkeOBhOOBhOOBoQ0KK+OBk+OBkOOCjCzjgojjgZfjgYvjgZoNCivjgZPjga/jgZcs44Gu44KK44GX44GSDQor44GT44GULOOBn+OBi+OBsuOBpw0KK+OBk+OCk+OBrizjgojjgYYNCivjgZPjgpPjga4s44GN44KT44KEDQor44GT44KT44GuLOOChOOBmeOBsuOCjQ0KK+OBk+OCk+OBruOBmSzjgbLjgo3jgYvjgZoNCivjgZPjgYTjgacs44GT44GG44GYDQor44GT44G+44Gk44Gw44KJLOOBsuOBp+OBqOOBlw0KK+OBk+OBv+OChCzjgYrjgZXjgoANCivjgZPjgb/jgoTjgb4s44KI44GX44Gy44KNDQor44GT44KC44GgLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgYvjgZrjgb7jgZUNCivjgZPjgpPjgaks44G+44GV44GoDQor44GT44KT44GpLOOBsuOBqOOBlw0KK+OBk+OCk+OBqSzjgYvjgaTjgoQNCivjgZPjgpPjgaks44GL44Ga44Go44GXDQor44GT44Gr44GXLOOBguOBjeOBruOCig0KK+OBk+OBlSzjgb7jgZXjgagNCivjgZPjgZnjgY4s44GR44KT44GE44Gh44KNDQor44GT44Gf44GNLOOBvuOBleOChuOBjQ0KK+OBk+OBn+OBqyzjgZHjgYTjgYTjgaENCivjgZPjgoTjgb4s44G/44GNDQor44GT44KE44G+LOOBsuOCjeOBvw0KK+OBk+OChOOBvizjgYvjgaTjgbLjgZMNCivjgZPjgZbjgo8s44G+44GV44Gu44KKDQor44GT44Ga44KLLOOCiOOBl+OBguOBjQ0KK+OBj+OBvOOBnyzjgbLjgo3jgZcNCivjgY/jgbzjgZ8s44GY44KF44KT44GTDQor44GP44G844KELOOBqOOCguOBkw0KK+OBj+OBqeOBhizjgZjjgoXjgpMNCivjgZvjga7jgYos44Gy44Go44GXDQor44GP44G+44GM44GELOOBi+OBmuOBruOCig0KK+OBj+OCieOBqeOBvyzjgY3jgojjgbXjgb8NCivjgY/jgonjgoLjgags44Gu44KK44KG44GNDQor44GP44KJ44Go44G/LOOBkeOBhOOBmeOBkQ0KK+OBj+OCiuOBrizjgoTjgZnjgbLjgo0NCivjgY/jgorjgoQs44KG44GG44GE44GhDQor44GP44KN44GgLOOBsuOCjeOBlw0KK+OBj+OCjeOBi+OCjyzjgb/jgaTjgYLjgY0NCivjgY/jgZXjgYvjgo8s44Gu44G244G/44GkDQor44GP44GV44GuLOOBleOBqOOBlw0KK+OBj+OCj+OBsOOCiSzjgajjgZfjgbLjgo0NCivjgY/jgo/jga4s44KE44GZ44Gy44KNDQor44KI44GX44GgLOOBleOBqOOCiw0KK+OBj+OBmuOBrizjgbLjgo3jgYvjgZoNCivjgb7jgaHjgaAs44Gy44KN44GXDQor44G+44GI44GgLOOBkeOCk+OBhOOBoQ0KK+OBvuOBiOOBi+OCjyzjgb/jga3jgYvjgZoNCivjgYrjgYrjgZ/jgass44Gf44Gg44GX44GSDQor44G+44GNLOOBn+OBj+OChA0KK+OBvuOBjeOBrizjgajjgZfjgYoNCivjgb7jgovjgYrjgYss44KE44GZ44Gy44KNDQor44G+44KL44KE44G+LOOBmOOCheOCk+OBk+OBhg0KK+OBvuOCi+OChOOBvizjga7jgorjgbLjgo0NCivjgb7jgovjgoTjgb4s44G/44Gu44KLDQor44G+44GV44GELOOBl+OCk+OBlA0KK+OBvuOBleOBjSzjgbLjgafjgogNCivjgb7jgZss44Gf44GL44GXDQor44G+44GZ44GgLOOChuOBn+OBiw0KK+OBvuOBqOOBsCzjgZ/jgYvjgajjgZcNCivjgb7jgajjgbAs44GP44Gr44Gy44GTDQor44G+44Gk44Gw44KJLOOBn+OBi+OBguOBjQ0KK+OBvuOBpOOBhCzjgbLjgZXjgZcNCivjgb7jgaTjgYQs44KE44GZ44Gy44KNDQor44G+44Gk44GL44KPLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOCguOCiizjgZfjgofjgYbjgZ4NCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G+44Gk44KC44GoLOOBvuOBleOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgb7jgaTjgoLjgags44GY44KF44KT44GTDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBvuOBpOOCguOBqCzjgajjgYrjgosNCivjgb7jgaTjgoLjgags44GV44Gg44GKDQor44G+44Gk44GKLOOBi+OBmuOCiOOBlw0KK+OBvuOBpOOBiuOBiyzjgZ/jgZHjgajjgZcNCivjgb7jgaTjgZfjgb4s44Gf44GL44Gy44KNDQor44Gq44GL44Gr44KPLOOBqOOBl+OCjeOBhg0KK+OBvuOBpOOChOOBvizjgZjjgoXjgpMNCivjgb7jgaTjgoTjgb4s44GY44KF44KT44GYDQor44G+44Gk44GW44KPLOOBsuOBp+OCiA0KK+OBv+OCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgb/jgavjgoXjgYYs44GT44GG44GE44GhDQor44G/44GfLOOBvuOBquOBtg0KK+OBv+OBnyzjgbLjgo3jgYvjgZoNCivjgb/jgZ/jgoDjgoks44GY44KF44KTDQor44G/44Gk44GgLOOBiuOBleOCgA0KK+OBv+OBpOOBoCzjgZjjgoXjgpPjgYTjgaENCivjgb/jgaTjgb7jgZ8s44KI44GX44Gu44KKDQor44G/44Gk44GK44GLLOOBguOChOOBkw0KK+OBv+OBhuOCiSzjgY3jgofjgYbjgZMNCivjgb/jgYbjgoks44G/44Gp44KKDQor44G/44KP44GfLOOBquOBiuOBjQ0KK+OBquOBjOOBmyzjgZ/jgYvjgZcNCivjgb/jgoTjgZEs44GC44GN44GKDQor44G/44KE44GRLOOChuOBi+OCig0KK+OBv+OChOOBvizjgZvjgYTjgZgNCivjgb/jgoTjgoLjgags44Gm44Gk44GKDQor44G/44KE44KC44GoLOOBsuOBqOOBvw0KK+OBv+OChOOBquOBjCzjgb7jgZXjgYvjgaQNCivjgb/jgoTjgZbjgY0s44KC44Go44G144G/DQor44G/44Ga44GwLOOBsuOCjeOBlw0KK+OBv+OBmuOBrOOBvizjgYvjgaTjgb8NCivjgb/jgZrjgZXjgY0s44G/44KPDQor44G/44Ga44GfLOOBruOCiuOBguOBjQ0KK+OCguOBoeOBmuOBjSzjgZfjgoXjgYbjgYTjgaENCivjgoLjgaHjgZrjgY0s44GC44Gk44GNDQor44KC44Gh44Ga44GNLOOBoeOBi+OCiQ0KK+OCguOBjizjgbLjgo3jgZcNCivjgoLjgoLjgZss44Gk44KI44GXDQor44Gy44KJ44GuLOOBguOBjeOBsuOBpw0KK+OCguOCiizjgobjgYbjgY0NCivjgoLjgoos44G+44GV44KG44GNDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgZfjgZLjgYoNCivjgoLjgorjgYvjgo8s44GX44KT44GYDQor44KE44GO44GX44GfLOOBhOOBleOBig0KK+OCguOCiuOCguOBqCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoLjgorjgoLjgags44GT44GG44GYDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OCguOCiuOBiuOBiyzjgYLjgY3jgbLjgZMNCivjgoLjgorjgZfjgZ8s44KK44GIDQor44KC44KK44GfLOOBj+OBq+OBsuOCjQ0KK+OCguOCiuOBnyzjgY3jgojjgYjjgYQNCivjgYvjga3jgZMs44GL44Ga44GC44GNDQor44KC44KK44GfLOOBvuOBleOChuOBjQ0KK+OCguOCiuOCj+OBjSzjga7jgbbjgobjgY0NCivjgoLjgo3jganjgb8s44KI44GG44GE44GhDQor44KC44Go44Gv44GXLOOCiOOBl+OBsuOBpw0KK+OCguOBqOOBmOOBvizjgabjgaTjgYoNCivjgoLjgajjgY0s44GR44GE44GTDQor44KC44KKLOOBv+OCjw0KK+OBhuOBmeOBhCzjgYvjgYrjgosNCivjgoDjgonjgYvjgb8s44Gf44GR44GKDQor44KA44KJ44GL44G/LOOBoOOBhOOBm+OBhA0KK+OCgOOCieOBi+OBvyzjgbLjgafjgZcNCivjgoDjgonjgYvjgb8s44Gy44Go44GXDQor44KA44KJ44GfLOOCiOOBl+OBig0KK+OCgOOCieOBnyzjgY3jgojjgbLjgZMNCivjgoDjgonjgoTjgb4s44GV44Go44GXDQor44KA44Go44GGLOOCiOOBl+OBsuOCjQ0KK+OBquOBoOOBkOOBoSzjgZnjgb/jgagNCivjgarjgYzjga/jgZcs44GE44GV44GKDQor44Gq44GM44GELOOBvuOBleOBsuOCjQ0KK+OBquOBjOOCgOOCiSzjgb7jgZPjgagNCivjgarjgYzjgYos44G+44GV44G/DQor44Gq44GM44GX44G+LOOBv+OBoeOBruOCig0KK+OBquOBjOOBl+OBvizjgb/jgojjgZMNCivjgarjgYzjgZ8s44Gq44GK44KKDQor44Gq44GM44GfLOOBruOBvOOCiw0KK+OBquOBjOOBpOOBiyzjga7jgorjgobjgY0NCivjgarjgYzjgoTjgb4s44GV44Gq44GIDQor44GG44Gh44GgLOOBn+OBi+OBsuOBpw0KK+OBhuOBoeOBnuOBrizjgZ/jgYvjgZcNCivjgarjgYvjgaAs44Go44GX44KEDQor44Gq44GL44GM44KPLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBjOOCjyzjgobjgY3jgbLjgo0NCivjgarjgYvjgYzjgo8s44Gh44Gv44KLDQor44Gq44GL44GM44KPLOOBquOBiuOChuOBjQ0KK+OBquOBi+OBmOOBvizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZjjgb4s44Gy44KN44GC44GNDQor44Gq44GL44GY44G+LOOBjeOCh+OBhuOBkw0KK+OBquOBi+OBv+OBoSzjgorjgoXjgYbjgYTjgaENCivjgarjgYvjgoLjgags44KE44GZ44Go44KCDQor44Gq44GL44KC44GoLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44KG44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBguOBjeOChOOBvizjgZ/jgYvjgZgNCivjgarjgYvjgoDjgoks44Gy44Gn44GoDQor44Gq44GL44KA44KJLOOBpOOBqOOCgA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZMNCivjgarjgYvjgoDjgoks44KG44GN44GTDQor44Gq44GL44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgZvjgYTjgZgNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44Gq44GL44KA44KJLOOBsuOCjeOBvw0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgarjgYvjga4s44Gf44GL44GXDQor44Gq44GL44GuLOOBkeOBhOOBmA0KK+OBquOBi+OBl+OBvizjga7jgorjgYoNCivjgarjgYvjgaTjgbws44G+44GV44Gy44GTDQor44Gq44GL44Gk44GLLOOBpuOBpOOCjeOBhg0KK+OBquOBi+OChOOBvizjgb7jgZPjgagNCivjgarjgYvjgoTjgb4s44G+44GV44Gy44GTDQor44Gq44GL44GW44KPLOOBiuOBleOCgA0KK+OBquOBiuOBpOOBiyzjgYLjgY3jgZMNCivjgarjgonjga/jgoks44GV44Go44GXDQor44Gq44KL44GX44G+LOOBvuOBleOBkw0KK+OBquOBqOOCiizjgbLjgo3jgZ/jgYsNCivjgavjgYTjgZjjgb4s44KG44GLDQor44Gr44GE44KELOOCiuOBiw0KK+OBq+OBlyzjgajjgZfjgbLjgZUNCivjgavjgZcs44G+44GV44Gy44KNDQor44Gr44GX44G2LOOBguOChOOBkw0KK+OBq+OBl+OBoCzjgZ/jgaTjgoQNCivjgavjgZfjga/jgoks44Gf44GL44GC44GNDQor44Gr44GX44GL44KPLOOBvuOBleOBkw0KK+OBn+OBquOBiyzjgYTjgZXjgYoNCivjgavjgZfjgYvjgo8s44G+44GV44GoDQor44Gr44GX44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBq+OBl+OCguOBqCzjgarjgYrjgZMNCivjgavjgZfjgoDjgoks44Gf44GL44GXDQor44Gr44GX44KA44KJLOOBk+OBhuOBnuOBhg0KK+OBq+OBl+OBrizjgZHjgpPjgZgNCivjgavjgZfjga4s44GX44KT44KEDQor44Gr44GX44GK44GLLOOBvuOBleOBruOBtg0KK+OBq+OBl+OBluOBjSzjgZHjgpPjgZgNCivjgavjgZfjgZbjgo8s44Gg44GE44GZ44GRDQor44Gr44KPLOOCguOCiuOCiOOBlw0KK+OBruOBtizjgb/jga7jgosNCivjga7jgYzjgYTjgags44Gu44G244KG44GNDQor44Gu44GQ44GhLOOCiOOBhuOBkw0KK+OBruOBmCzjgbLjgo3jgobjgY0NCivjga7jgZjjgb4s44Gu44KK44GKDQor44Gu44KA44KJLOOBguOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgpPjgYTjgaENCivjga7jgarjgYss44KG44GN44Gu44KKDQor44Gq44GL44GY44G+LOOBoeOBteOChg0KK+OBruOBluOBjSzjgb/jgY3jgYoNCivjga7jgZbjgY0s44KI44GX44KG44GNDQor44Gs44KPLOOBn+OBkeOBlw0KK+OBiuOBoSzjgZ/jgYvjgZcNCivjgYrjgaHjgYLjgYQs44Go44GX44KG44GNDQor44GK44GgLOOBguOBpOOBlw0KK+OBiuOBjOOBleOCj+OCiSzjgojjgZfjgobjgY0NCivjgYrjgYzjgZXjgo/jgoks44Go44G/44GKDQor44GK44GM44GfLOOBi+OBmuOBr+OCiw0KK+OBiuOBjOOCjyzjgZHjgpPjgYTjgaENCivjgYrjgY7jga/jgoks44Gy44KN44GNDQor44GK44GK44Gv44KJLOOBi+OBpOOBvw0KK+OBiuOBiuOBsCzjgobjgb/jgZMNCivjgYrjgYrjgbAs44GI44GE44GYDQor44G+44Gk44GgLOOBl+OBkuOChuOBjQ0KK+OBiuOBiuOBiCzjgobjgYbjgZgNCivjgYrjgYrjgYzjgY0s44GL44Ga44Gy44KNDQor44GX44KH44GG44GY44G+LOOBqOOBl+OBsuOBpw0KK+OBiuOBr+OBvizjgbLjgo3jgobjgY0NCivjgYrjgYrjga/jgZcs44GR44GE44GTDQor44GK44GO44GuLOOBl+OBkuOBjQ0KK+OBiuOBiuOBi+OCjyzjgZPjgYbjgYTjgaENCivjgYrjgYrjgYvjgo/jgoks44G+44Gq44G2DQor44GK44GNLOOBvuOBleOBsuOBkw0KK+OBreOCguOBqCzjgZjjgoXjgpMNCivjgYrjgYrjgY/jgbws44Gu44G244KG44GNDQor44GK44GK44GP44KJLOOBqOOCguOBsuOBkw0KK+OBiuOBvizjgajjgoLjgbLjgZUNCivjgYrjgYrjgb/jgYss44Gm44Gk44GXDQor44GK44GK44KC44KKLOOBsuOBp+OBvw0KK+OBiuOBiuOCguOCiizjgbLjgo3jgYLjgY0NCivjgo/jgZ/jgarjgbks44GL44Ga44GC44GNDQor44GK44GK44Gr44GXLOOBv+OBpOOCiw0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgbLjgacNCivjgYrjga4s44GV44Gq44GIDQor44GK44GuLOOBmOOCheOCk+OBkw0KK+OBiuOBiuOBrOOBvizjgb7jgZXjgYoNCivjgYrjgZfjgb4s44Gf44GL44KG44GNDQor44GK44GX44G+LOOBvuOBleOBlw0KK+OBiuOBiuOBnyzjgb7jgZXjgobjgY0NCivjgYrjgYrjgZ8s44KC44Go44GEDQor44GK44GK44GfLOOBi+OBiuOCiw0KK+OBiuOBiuOBn+OBiyzjgajjgZfjgYLjgY0NCivjgYrjgYrjgZ/jgZEs44GV44GI44GTDQor44GK44GK44Gf44GRLOOBsuOBp+OBteOBvw0KK+OBiuOBiuOBn+OBqyzjgY/jgavjgYoNCivjgYrjgYrjgaTjgbws44GC44Gk44KG44GNDQor44GK44GK44Gk44GLLOOBpuOBpOOBig0KK+OBiuOBiuOBpOOBiyzjgajjgZfjgbLjgZMNCivjgYrjgYrjgaTjgY0s44GE44Ga44G/DQor44GV44GT44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBiuOCjyzjgZXjgajjgZcNCivjgYrjgYrjgoQs44GY44KF44KT44Gb44GEDQor44GK44GE44GL44KPLOOBvuOBleOBjQ0KK+OBiuOBi+OBuSzjgb7jgarjgbYNCivjgZPjgbDjgoTjgZcs44Gd44GGDQor44GK44GL44GgLOOChOOBmeOBv+OBpA0KK+OBiuOBi+OBoCzjgabjgaTjgZgNCivjgYrjgYvjgaAs44Gm44Gk44KEDQor44GK44GL44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBiuOBi+OCguOBqCzjgbLjgafjga7jgbYNCivjgoHjgoks44Gy44KN44KG44GNDQor44GK44GL44GuLOOBi+OBmuOBruOCig0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgobjgY0NCivjgYrjgY3jgZ8s44GV44Go44GTDQor44GK44GP44GgLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBiuOBj+OBrOOBjSzjgb7jgZXjgYvjgZoNCivjgYrjgpPjgaAs44Gh44Ga44GTDQor44GK44KT44GgLOOBsuOCieOBn+OBiw0KK+OBhuOBpOOBvyzjgb7jgZXjgbLjgo0NCivjgYrjgYrjga4s44Gf44GL44GXDQor44GK44GK44GuLOOChuOBjeOBsuOCjQ0KK+OBi+OCj+OCguOBqCzjgbLjgafjgobjgY0NCivjgYvjgaks44GP44Gr44Gy44KNDQor44GK44GX44G+LOOBl+OCjeOBhg0KK+OBiuOBiuOBmeOBvyzjgYLjgY3jgokNCivjgYrjgYrjgZ8s44GL44Ga44KG44GNDQor44GK44KK44GELOOBl+OCheOCk+OBmA0KK+OBiuOCiuOBnyzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYrjgZXjgYss44Go44KI44Gy44GnDQor44GK44Gd44Gu44GELOOChuOBjeOBig0KK+OBiuOBluOBlSzjgobjgY3jga7jgbYNCivjgYrjgZbjgo8s44Gf44Gk44GYDQor44GK44GW44KPLOOBquOBiuOBruOCig0KK+OBiuOBluOCjyzjgoTjgZnjgbLjgo0NCivjgZfjgonjgajjgoos44GY44KF44KTDQor44GK44Ge44GtLOOBguOBjeOBig0KK+OBleOBrizjgbLjgo3jgbLjgZUNCivjgZXjgYTjgajjgYYs44G+44GV44G/DQor44GV44GE44Go44GGLOOBquOBiuOBjQ0KK+OBleOBhOOBqOOBhizjgb/jgYjjgZMNCivjgZXjgYTjgajjgYYs44GR44GE44GYDQor44GV44GE44Go44GGLOOBoeOBi+OBkw0KK+OBleOBi+OBhCzjgbLjgo3jgb8NCivjgZXjgYvjgYQs44GR44KT44GYDQor44GV44GL44GELOOBvuOBk+OBqA0KK+OBleOBi+OBjeOBsOOCiSzjgb/jgaTjgYLjgY0NCivjgZXjgYvjgoLjgags44KM44GE44GTDQor44GV44GL44KC44GoLOOCiOOBl+OBig0KK+OBleOBi+OCguOBqCzjgajjgoLjgZMNCivjgZXjgYvjgoLjgags44GY44KF44KT44G644GEDQor44GV44GL44KC44GoLOOBi+OBiuOCiw0KK+OBleOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgZXjgYvjga0s44GT44GG44GYDQor44GV44GL44GfLOOBvuOBleOBsuOBkw0KK+OBleOBi+OBnyzjgb7jgZXjgbLjgo0NCivjgYLjgY/jgZ/jgYzjgo8s44G+44GV44Gy44KNDQor44GV44GP44KJ44GELOOBvuOBleOBqA0KK+OBleOBj+OCieOBhCzjgovjgorjgZMNCivjgb7jgaTjgbDjgoks44KK44KH44GG44GTDQor44GV44GP44KJ44GELOOBleOBqOOCiw0KK+OBleOBquOBjizjgojjgZfjgY0NCivjgZXjga4s44KG44GN44GTDQor44GK44GK44GM44GNLOOBoeOBsuOCjQ0KK+OBleOBleOBjSzjgbXjgb/jgbLjgo0NCivjgZXjgZXjgY0s44Go44GK44KLDQor44GV44GV44GNLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjSzjgYTjgY/jgbXjgb8NCivjgZXjgZXjgY0s44Gq44GM44G+44GVDQor44GV44GV44GNLOOBqOOCguOBkw0KK+OBleOBn+OBkSzjgZ/jgYvjgobjgY0NCivjgZPjgaDjgb4s44G+44GV44Gy44KNDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgbXjgZjjgYoNCivjgZXjgajjgYYs44Gy44Gn44Gv44KLDQor44GV44Go44GGLOOBvuOCguOCiw0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgZXjgajjgYYs44GX44KN44GGDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgbLjgafjga7jgooNCivjgZXjgajjgYYs44GR44GE44GE44GhDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgYvjgYQs44GR44KT44GYDQor44GV44KP44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBm+OBjOOCjyzjgZXjgajjgosNCivjgZvjgYTjga4s44GX44KH44GG44GYDQor44Gb44GNLOOBpOOBqOOCgA0KK+OBm+OBjeOBqSzjgZfjgpPjgZgNCivjgZvjgY3jga4s44Gu44KK44Gy44KNDQor44Gb44GKLOOBn+OBi+OChuOBjQ0KK+OBm+OCiuOBi+OCjyzjgYrjgZXjgoANCivjgZfjgbDjgZXjgY0s44Gy44KN44Gu44KKDQor44GX44GMLOOBi+OBquOBvw0KK+OBl+OBkuOCiyzjgojjgZfjgZMNCivjgZfjgb7jgaAs44GC44Gk44GXDQor44GX44G+44GgLOOBv+OBpOOBiA0KK+OBl+OBvuOBoCzjgb7jgZPjgagNCivjgZfjgb7jgaAs44GL44GK44KLDQor44GX44G+44KC44GoLOOBv+OBpOOChOOBmQ0KK+OBl+OBvuOCgOOCiSzjgZ/jgaTjgoQNCivjgZfjgb7jga4s44Gf44GL44GXDQor44GX44G/44GaLOOBn+OBi+OBguOBjQ0KK+OBl+OBv+OBmizjgajjgZfjgbLjgo0NCivjgZfjgb/jgZos44Gf44Gg44GXDQor44GX44G/44GaLOOBpOOBqOOCgA0KK+OBl+OBv+OBmizjgZPjgYbjgZjjgo3jgYYNCivjgZfjgb/jgZos44GV44Go44KLDQor44GX44G/44GaLOOBv+OBmuOBjQ0KK+OBl+OCguOBoCzjgbLjgo3jgobjgY0NCivjgZfjgoLjgYzjgY0s44GR44KT44KEDQor44GX44KC44Gv44GfLOOBsuOCjeOChuOBjQ0KK+OBl+OCguOCgOOCiSzjga7jgbbjgbLjgo0NCivjgZfjgoLjgYrjgYss44Go44GX44GC44GNDQor44GX44KA44KJLOOBl+OCh+OBhuOBhOOBoQ0KK+OChOOBiOOBjOOBlyzjgYLjgaTjgZMNCivjgZfjga7jgZbjgY0s44GC44Gk44GXDQor44Gv44GO44KP44KJLOOBsuOBp+OBig0KK+OBl+OBiuOBoCzjgb7jgZXjgbLjgagNCivjgZfjgYrjgZ8s44Gy44GV44KI44GXDQor44GX44GK44GW44KPLOOBkeOCk+OBhOOBoQ0KK+OBl+OCieOBhCzjgZ/jgZHjgZcNCivjgZfjgonjgYTjgZcs44Go44KC44Gy44GVDQor44GX44KH44GG44GgLOOBkeOCk+OBmA0KK+OBl+OCheOBhizjgajjgoLjgZMNCivjgZ3jgoHjgoQs44G+44GV44GXDQor44GZ44GgLOOBj+OBv+OBkw0KK+OBmeOBiCzjgbLjgafjgYoNCivjgZnjgYjjgZ8s44Gy44Gn44GKDQor44GX44G244GE44GhLOOBsuOBp+OChuOBjQ0KK+OBmeOBjOOBrizjgbLjgo3jgobjgY0NCivjgZnjgYzjgo/jgoks44Gy44GV44Gf44GLDQor44GZ44GO44GILOOBi+OBpOOBqOOBlw0KK+OBmeOBjuOBvuOBlSzjgZHjgYTjgZ8NCivjgZnjgY7jgoLjgoos44Gu44G244KG44GNDQor44GZ44GO44KC44GoLOOBqOOBiuOCiw0KK+OBmeOBjuOBleOBjSzjgojjgYbjgZMNCivjgZnjgY7jgYbjgoks44KG44GN44GKDQor44GZ44GO44GG44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBv+OBmuOBiuOBoSzjgZ/jgYvjgZcNCivjgZnjgY7jgoTjgb4s44G+44GV44KEDQor44GZ44GO44KE44G+LOOBvuOBquOBtg0KK+OBmeOBjuOChOOBvizjgZHjgpMNCivjgZnjgY7jgoTjgb4s44Gf44GR44GXDQor44GZ44G/LOOBvuOBleOCguOBqA0KK+OBn+OBueOBhCzjgojjgZfjga7jgooNCivjgZnjgarjgb8s44Gy44KN44GTDQor44GZ44GV44KPLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgYLjgY3jgZMNCivjgZnjgZrjgY0s44GI44GE44GYDQor44GZ44Ga44GNLOOBsuOBp+OChuOBjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GL44Gq44GTDQor44GZ44Ga44GNLOOBi+OBquOBkw0KK+OBmeOBmuOBjSzjgYvjgZrjgojjgZcNCivjgZnjgZrjgY0s44GR44KT44GfDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjga7jgooNCivjgZnjgZrjgY0s44Gq44KK44G+44GVDQor44Gf44G5LOOCiuOCheOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBoeOBr+OCiSzjgZ/jgYvjgZcNCivjgZ/jgZIs44Go44GX44GNDQor44Gf44GQ44GhLOOCj+OBn+OCiw0KK+OBquOBi+OBnyzjgo/jgZ/jgosNCivjgZ/jgZDjgaEs44GX44KTDQor44Gf44GY44G+LOOBguOBjeOCiQ0KK+OBn+OBmOOBvizjgb7jgZPjgagNCivjgZ/jgYvjgaAs44GT44GG44GE44GhDQor44Gf44GL44GO44KPLOOBv+OBpOOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgojjgZcNCivjgZ/jgYvjga/jgZcs44Gy44KN44KE44GZDQor44Gf44GL44Gv44GXLOOBi+OBmuOBruOCig0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgajjgZcNCivjgZ/jgYvjgY/jgoks44GT44GG44GYDQor44Gf44GL44GP44KJLOOChOOBmeOBvuOBlQ0KK+OBn+OBi+OBr+OBlyzjgoTjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GC44GN44G144G/DQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBn+OBi+OBr+OBlyzjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOBpOOBi+OBlQ0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44KG44GG44GTDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjgY/jgoks44Gk44Go44KADQor44Gf44GL44G/44KELOOBn+OBvuOBvw0KK+OBn+OBi+OBleOBlCzjgY/jgavjgbLjgZMNCivjgZ/jgYvjgZXjgY0s44G+44GV44GoDQor44Gf44GL44GbLOOBvuOBleOBsuOBqA0KK+OBn+OBi+OBpOOBiyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjgoTjgarjgY4s44GX44GS44KLDQor44Gf44GL44KE44Gq44GOLOOChOOBiOOBjeOBoQ0KK+OBn+OBkeOBoSzjgbLjgafjgYLjgY0NCivjgZ/jgZHjgaAs44Gy44KN44GXDQor44Gf44GR44GgLOOBhOOBpOOBsuOBqA0KK+OBn+OBkeOBjOOBvyzjgYvjgaTjgb8NCivjgZ/jgZHjgbLjgZUs44G+44GT44GoDQor44Gf44GR44GELOOBruOBtuOBig0KK+OBn+OBkeOBhCzjgZ/jgaDjgobjgY0NCivjgZ/jgZHjgYvjgo8s44Gf44GR44Gy44GTDQor44Gf44GR44KA44KJLOOBqOOBl+OBsuOBpw0KK+OBn+OBkeOBquOBiyzjgajjgZfjgbLjgo0NCivjgYTjgb7jgYQs44KI44GG44GE44GhDQor44Gf44GR44GV44GTLOOCiOOBhuOBhOOBoQ0KK+OBn+OBkeOBl+OBvizjgYvjgaTjgZfjgo3jgYYNCivjgZ/jgZHjgYbjgaEs44Gy44KN44Go44GXDQor44Gy44Gg44GLLOOBqOOBiuOCiw0KK+OBn+OBjeOCguOBqCzjgb/jganjgooNCivjgZ/jgY3jgZbjgo8s44GN44GP44G/DQor44Gf44G+44GELOOBvuOBleOCiw0KK+OBn+OCgOOCiSzjgZfjgofjgYbjgYTjgaENCivjgZ/jgarjgbks44GI44GE44GYDQor44Gf44Gq44G5LOOCiOOBhuOBuOOBhA0KK+OBn+OBquOBiyzjgYLjgY3jgagNCivjgZ/jgarjgYss44GE44GV44KADQor44Gf44Gq44GLLOOBv+OBqeOCig0KK+OBn+OBquOBiyzjgojjgZfjgarjgooNCivjgZ/jgarjgYss44KE44GZ44GYDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgYLjgorjgbLjgagNCivjgZ/jgarjgYss44GX44KT44GUDQor44Gf44Gq44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gf44GL44GXDQor44GV44GuLOOBsuOCjeOBteOBvw0KK+OBn+OBqyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgavjgoDjgoks44KI44GX44G144G/DQor44Gf44Gr44KE44G+LOOBoOOBhOOBmeOBkQ0KK+OBn+OBleOBiyzjgoTjgZnjgb7jgZUNCivjgYvjgajjgYYs44GI44GE44GYDQor44Gm44KJ44GgLOOCiOOBl+OChuOBjQ0KK+OBpuOCieOBvuOBiCzjgb7jgY0NCivjgabjgonjgavjgZcs44Gu44G244KG44GNDQor44Gm44KJ44Gr44GXLOOBsuOCjeOBv+OBpA0KK+OBpuOCieOBnuOBrizjgYvjgYrjgooNCivjgajjgbPjgZ8s44G+44GV44G/DQor44GE44Ga44G/44GV44KPLOOBsuOBp+OBjQ0KK+OBqOOBoCzjgZXjgajjgZcNCivjgajjgZDjgaEs44Gf44GR44GXDQor44Go44G+44GkLOOBqOOCguOBguOBjQ0KK+OBguOBjeOCgOOCiSzjga7jgbbjgobjgY0NCivjgajjgY3jgZ/jgZEs44Gf44GR44GXDQor44Go44GP44G+44GZLOOBguOBjeOBsuOCjQ0KK+OBqOOBj+OBn+OBkSzjgYLjgY3jgbLjgZMNCivjgajjgb7jgY0s44GL44Ga44KEDQor44Go44G/44GELOOBvuOBleOBsuOCjQ0KK+OBqOOBv+OBnyzjgY3jgb/jgYoNCivjgajjgb/jgoTjgb4s44G+44GV44GoDQor44Go44KC44GgLOOBj+OBv+OBkw0KK+OBqOOCguOBquOBjCzjgb7jgZXjga7jgooNCivjgajjgZXjgYss44Gq44GK44GoDQor44Go44Gj44Go44KKLOOBguOBjeOBsuOBkw0KK+OBvuOBpOOBiizjgojjgZfjgobjgY0NCivjgajjgojjgaAs44KI44GX44KG44GNDQor44Gk44G844GELOOBguOBjeOCiQ0KK+OBi+OBqOOBhizjgajjgZfjgbLjgo0NCivjgaTjgaHjgoQs44GL44Ga44GXDQor44Gk44GgLOOBl+OCk+OBlA0KK+OBpOOBmCzjgb7jgZXjgbLjgZMNCivjgaTjgZgs44KI44GG44GE44GhDQor44Gk44GY44GuLOOCiOOBhuOBmeOBkQ0KK+OBpOOBi+OBk+OBlyzjgYLjgY3jgokNCivjgaTjgYvjgoLjgags44GX44GS44Gy44KNDQor44Gk44GL44GW44GNLOOBteOBv+OBsuOCjQ0KK+OBpOOBjeOBguOBlyzjgYLjgY3jgokNCivjgaTjgY3jgZbjgo8s44GT44GG44GYDQor44Gk44G/44GfLOOBiOOBhOOBhOOBoQ0KK+OBiOOCk+OBqSzjgZ/jgaDjgbLjgZMNCivjgaTjgags44Go44GX44Gy44KNDQor44Gk44KA44KJLOOCiOOBl+OBig0KK+OBpOOBreOBi+OCjyzjgZ3jga7jgZnjgZENCivjgaTjgovjgYrjgYss44KI44GX44Gy44GTDQor44Gk44KL44GfLOOBruOCiuOBkw0KK+OBpOOCi+OBnyzjgoLjgajjgobjgY0NCivjgaTjgovjgZ8s44Gf44Gk44KG44GNDQor44Gk44Gk44G/LOOBl+OCheOCk+OChA0KK+OBpOOBpOOBvyzjgYvjgaTjgb8NCivjgaTjgo/jgZMs44KG44GLDQor44Gk44KE44G+LOOBjeOCiOOBteOBlQ0KK+OBhuOBoeOBoCzjgZfjgofjgYbjgZMNCivjgYbjgaHjgaAs44G+44GV44Gy44KNDQor44GG44Gh44GgLOOBm+OBpOOBkw0KK+OBhuOBoeOChOOBvizjgZfjgpPjgZQNCivjgYbjgaHjgoTjgb4s44Gy44Gn44GKDQor44GG44GpLOOBjeOCiOOBvw0KK+OBhuOBiOOBoCzjga/jgovjgY0NCivjgYbjgYjjgaAs44KI44GG44GZ44GRDQor44G+44Gk44KA44KJLOOBoOOBhOOBmOOCjeOBhg0KK+OBhuOBiOOBoCzjgYLjgZHjgb8NCivjgYbjgYjjgaAs44GC44GN44GKDQor44GG44GI44G+44GkLOOBsuOBp+OBig0KK+OBhuOBiOOBrizjgbLjgo3jgb8NCivjgYbjgYjjga4s44GY44KF44KT44GYDQor44GE44GX44GgLOOBi+OBmuOBsuOBkw0KK+OBhuOCgeOBoCzjgZPjgYbjgZvjgYQNCivjgYbjgoHjgYzjgY0s44GP44Gr44GTDQor44GG44GuLOOBvuOCguOCiw0KK+OBhuOCieOBr+OBlywNCivjgZfjgb/jgZos44GV44Go44GXDQor44GI44GM44GX44KJLOOBn+OBoOOBlw0KK+OBmeOBiOOBi+OBrSzjgabjgovjgobjgY0NCivjgYbjgaQs44Go44GK44KLDQor44GG44Gk44Gv44GXLOOBqOOBl+OBsuOCjQ0KK+OBhuOBpOOBvyzjgZHjgYTjgYTjgaENCivjgo/jgaAs44Gk44Gt44G144G/DQor44KP44GgLOOBn+OBpOOBvw0KK+OBjeOBn+OCj+OBjSzjgZvjgYTjgY0NCivjgo/jgZfjgZos44Gv44KL44Gq44GMDQor44KP44Gf44G5LOOBteOBv+OCiA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44G+44GV44KEDQor44KP44Gf44Gq44G5LOOBleOBqOOBvw0KK+OCj+OBn+OBquOBuSzjgZfjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBpOOBqOOCgA0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44Gk44Gt44GKDQor44KP44Gf44Gq44G5LOOBvuOBleOCiA0KK+OCj+OBn+OBquOBuSzjgYjjgYTjgZgNCivjgo/jgZ/jgarjgbks44Gy44KN44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgZcNCivjgo/jgZ/jgarjgbks44KG44GG44GY44KN44GGDQor44KP44Gf44Gq44G5LOOChOOBmeOBig0KK+OBiOOBr+OCiSzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gy44Gn44GC44GNDQor44KP44Gf44KJ44GELOOBmOOCjeOBhg0KK+OChOOBiOOBjOOBlyzjgYrjgZXjgoANCivjgoTjga/jgY4s44GX44Gu44G2DQor44KE44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44KI44GG44GYDQor44GT44KT44GpLOOBqOOBl+OChA0KK+OChOOBvuOBoCzjgYLjgaTjgZcNCivjgoTjgb7jgaAs44GK44GV44KADQor44KE44G+44GgLOOBv+OBjQ0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgo0NCivjgYjjga7jgoLjgags44Gy44KN44GXDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgY3jgpPjgoQNCivjgbXjgZjjgZ8s44G+44GV44Go44GXDQor44KE44G+44GQ44GhLOOBleOBqOOBkw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgYjjgZbjgY0s44Gy44Go44GXDQor44KE44G+44GQ44GhLOOBleOBqOOCiw0KK+OChOOBvuOCguOBqCzjgZXjgajjgZcNCivjgoTjgb7jgoLjgags44Go44GK44KLDQor44KE44G+44KC44GoLOOChOOBmeOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjgb7jgoLjgags44GT44GG44GE44GhDQor44KE44G+44KC44GoLOOBk+OBhuOBjQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgobjgY0NCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44KE44G+44Gq44GLLOOBsuOCjeOBlw0KK+OChOOBvuOBrSzjgb/jgaHjgosNCivjgoTjgb7jga7jgY/jgaEs44GV44Go44GXDQor44KE44G+44GV44GNLOOBn+OBi+OBlw0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgYvjgZoNCivjgoTjgb7jgZfjgZ8s44Gy44KN44GNDQor44KE44G+44GX44GfLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBl+OBnyzjgZPjgYbjgY0NCivjgoTjgb7jgZfjgZ8s44GX44GS44G/DQor44GX44GV44GELOOBvuOBleOChuOBjQ0KK+OChOOBvuOBl+OBnyzjgajjgZfjgbLjgo0NCivjgoTjgb7jgYbjgaEs44Go44GX44KG44GNDQor44KE44G+44GG44GhLOOBvuOBk+OBqA0KK+OChOOBvuOBluOBjSzjgbLjgafjgYoNCivjgoTjgb7jgZbjgY0s44Gf44Gg44GXDQor44KE44G+44GW44GNLOOCgOOBpOOBvw0KK+OChOOBquOBjuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjga4s44KK44KH44GG44GYDQor44KE44GuLOOBsuOCjeOBjQ0KK+OChOOBl+OCjSzjgoTjgZnjgZcNCivjgoTjgZbjgo8s44G+44GT44GoDQor44KI44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OCiOOBjizjgbXjgb/jgobjgY0NCivjgojjgZPjgYQs44GT44GG44GYDQor44KI44GT44KE44G+LOOBkeOCk+OBl+OCh+OBhg0KK+OCiOOBreOBluOBjSzjgbXjgajjgZcNCivjgojjgZfjgaAs44GY44KF44KTDQor44KI44GX44GgLOOCiuOBiOOBkw0KK+OCiOOBl+OBoCzjgYvjgZrjgojjgZcNCivjgojjgZfjgaAs44GY44KF44KT44GTDQor44GI44Gz44GqLOOBm+OBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgZ/jgaDjgZcNCivjgojjgZfjgaAs44Gf44Gk44GKDQor44KI44GX44GE44GRLOOChOOBmeOBruOCig0KK+OCiOOBl+OCgOOCiSzjgb/jgaTjgobjgY0NCivjgojjgZfjgoDjgoks44GV44Go44KLDQor44KI44GX44GuLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBiizjga7jgbzjgosNCivjgojjgZfjgZ/jgZEs44GX44GS44KI44GXDQor44KG44GC44GVLOOBpuOBpOOBmA0KK+OBiuOBiuOCj+OBoCzjgZfjgofjgYbjgZgNCivjgYjjgZDjgaEs44GV44Go44KLDQor44GK44GW44KPLOOBi+OBpOOChuOBjQ0KK+OBleOBqOOBhizjgb/jgaTjgYLjgY0NCivjgZfjgpPjgZ/jgass44Gf44GR44G/DQor44GZ44GO44Gf44GrLOOCiOOBl+OBsuOBkw0KK+OBn+OBi+OBr+OBlyzjgYTjgZrjgb8NCivjgZ/jgY3jgZbjgo8s44Gq44GK44GNDQor44G/44KI44GgLOOBkeOCk+OBmA0KK+OChOOBvuOBoCzjgY3jgojjgZcNCivjgoTjga/jgY4s44GV44Go44GXDQor44GN44KELOOBn+OBoOOBlw0KK+OBv+OBm+OBjSzjga7jgorjgYvjgZoNCivjgYjjga7jgoLjgags44GR44KT44Gf44KN44GGDQor44GV44GP44KJ44GgLOOBvuOBleOBjQ0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgbDjgbAs44Gf44GR44GKDQor44GC44G8LOOBi+OBiuOCig0KK+OBguOBoOOBoSzjgZPjgYbjgbjjgYQNCivjgYLjgYvjgZXjgYss44G+44GV44Gy44KNDQor44GC44G+44GV44GNLOOBsuOBp+OBqA0KK+OBguOBiuOBjSzjgYvjgpPjgZgNCivjgYLjgZzjgYzjgb8s44GX44GS44GL44GaDQor44GI44Gp44GuLOOBteOBv+OBsuOCjQ0KK+OBqeOBhCzjgYvjgZrjgYoNCivjgbXjgZjjgYQs44Go44KC44Gy44GoDQor44G144GY44GELOOBleOChuOCig0KK+OBteOBmOOCguOBqCzjgbLjgo3jgY0NCivjgbXjgZjjgoLjgags44Gf44GR44GXDQor44G144GP44Gv44KJLOOBruOBtuOChuOBjQ0KK+OBteOBj+OBiuOBiyzjgabjgaTjgoQNCivjgbXjgY/jgZfjgb4s44GR44KT44GE44GhDQor44G144GV44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBlOOBqOOBhizjgojjgZfjgbLjgo0NCivjga/jgb7jgbks44GI44GE44GYDQor44Gv44Gq44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgo0NCivjgbLjgbMs44GV44GL44GIDQor44Gy44KJ44Gk44GLLOOBi+OBmuOChuOBjQ0KK+OBhOOBi+OCiizjgZ/jgYvjgobjgY0NCivjgYTjgY/jgZ8s44GC44GN44Gy44GTDQor44GE44G+44GELOOBpuOBpOOBlw0KK+OBhOOBl+OBr+OCiSzjgoTjgZnjgbLjgo0NCivjgYTjgZ3jgaAs44GT44GG44GE44GhDQor44GE44Gd44GW44GNLOOCiOOBl+OBn+OBiw0KK+OBmOOCk+OBkOOBhizjgojjgZfjgYLjgY0NCivjgarjgYQs44G/44Gu44KLDQor44GY44KH44GG44Gr44GXLOOBiuOBleOBvw0KK+OBi+OBmOOBr+OCiSzjgojjgZfjgYLjgY0NCivjgYvjgb7jgZ8s44Gf44Gk44KEDQor44GL44KB44GELOOBguOBjeOCiQ0KK+OBi+OBv+OChOOBvizjgabjgaTjgoQNCivjgYvjgajjgYYs44Gf44Gk44GYDQor44GL44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBiOOBvyzjgbLjgafjgYLjgY0NCivjgYvjgo/jgoLjgoos44G+44KC44KLDQor44GN44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBjeOCgOOCiSzjgYvjgZrjgYoNCivjgY3jgZfjgbks44GP44Gr44Gy44GTDQor44GN44GX44GL44KPLOOBi+OBmuOCiOOBlw0KK+OBjeOBn+OBjOOCjyzjgZfjgpPjgYTjgaENCivjgY3jgZ/jgarjgYss44KB44GQ44G/DQor44GT44Gw44KE44GXLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZLjgpMNCivjgZPjgYTjgZEs44Go44GG44GfDQor44GT44GE44Ga44G/LOOBi+OBmuOChA0KK+OBk+OBmOOBvizjgZ/jgYvjgbLjgZUNCivjgZPjgavjgZcs44GN44KI44GL44GaDQor44GT44KE44G+LOOBn+OBj+OChA0KK+OBj+OBqeOBhizjgYvjgZrjgoQNCivjgY/jgb7jgZXjgY0s44KI44GX44GC44GNDQor44GP44KN44GgLOOBsuOCjeOBi+OBmg0KK+OBj+OBleOBiyzjgZfjgpPjgZQNCivjgYjjgpPjgaks44GR44KT44GYDQor44G+44GI44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBvuOCi+OBnyzjgbLjgafjgY0NCivjgb7jgaTjgZfjgZ8s44GX44KT44GUDQor44G/44GP44GrLOOBqOOBv+OBig0KK+OBiOOCk+OBqSzjgojjgZfjga7jgooNCivjgb/jga0s44KE44GZ44Gf44GLDQor44G/44GG44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBv+OBnuOBkOOBoSzjgZfjgofjgYbjgZgNCivjgbvjgpMs44KI44GX44GC44GNDQor44G/44Ga44GX44G+LOOBl+OBkuOCiw0KK+OBiOOBoCzjgZ/jgYvjgZcNCivjgarjgYzjgYos44GC44Gk44GXDQor44Gq44GL44KA44KJLOOBqOOBiuOCiw0KK+OBquOBi+OBq+OBlyzjgobjgYbjgZgNCivjgarjgYvjga4s44KI44GG44GTDQor44Gq44GL44GKLOOBi+OBpOOChA0KK+OBreOCguOBqCzjgb7jgZXjgobjgY0NCivjgavjgZfjgYvjgo8s44GT44GG44GYDQor44Gr44GX44KP44GNLOOBkeOCk+OBhOOBoQ0KK+OBruOBoCzjgZ/jgYvjgZMNCivjga7jgZDjgaEs44G/44Go44GXDQor44GK44Gh44GC44GELOOBk+OBhuOBmA0KK+OBiuOBiuOBr+OBlyzjgoTjgZnjgojjgZcNCivjgYrjga4s44Gf44GP44GYDQor44GI44G/LOOBsuOBp+OBig0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgY/jga4s44Gy44Gn44G/44GkDQor44GI44KT44GpLOOCiOOBl+OBn+OBoA0KK+OBiuOBiuOBq+OBlyzjgYLjgY3jgokNCivjgYrjgZbjgY0s44GP44Gr44Gv44KLDQor44GV44GI44GNLOOBruOCiuOChuOBjQ0KK+OBleOBjOOCjyzjga7jgbzjgosNCivjgZXjgY/jgb4s44G+44GV44G7DQor44GV44Go44GGLOOBl+OBkuOBguOBjQ0KK+OBleOBqOOBhizjgb/jgaTjgbLjgo0NCivjgZXjgo8s44GN44KI44Gf44GLDQor44Gb44GM44KPLOOBk+OBhuOBmA0KK+OBm+OBjSzjgobjgY3jgYoNCivjgZvjgpPjgaAs44GR44KT44GYDQor44GX44G244KELOOBl+OCheOBhuOBhOOBoQ0KK+OBl+OBv+OBmizjgojjgZfjga/jgosNCivjgZfjgpPjgafjgpMs44GC44GN44KI44GXDQor44GX44GK44GfLOOBsuOBqOOBlw0KK+OBl+OCheOBj+OBn+OBqyzjgajjgZfjgYoNCivjgZnjgoTjgb4s44Gy44KN44GTDQor44GZ44Ga44KA44KJLOOBhOOBleOBig0KK+OBn+OBi+OBiuOBiyzjgojjgZfjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GL44Gk44Gu44KKDQor44Gf44GR44GG44GhLOOBi+OBmuOBlw0KK+OBn+OBvuOBhCzjgb7jgZXjgbLjgo0NCivjgZ/jgpMs44GL44Ga44Gy44KNDQor44Gf44Gq44GLLOOBkeOCk+OBlA0KK+OBiOOBqOOBhizjgabjgovjgYLjgY0NCivjgZ/jgavjgbLjgoks44GL44Ga44Gy44KNDQor44Gf44Gr44KE44G+LOOBjeOBj+OBig0KK+OBn+OBiuOBiyzjgZfjgZLjgY0NCivjgZ/jgZfjgb4s44G+44GV44KG44GNDQor44Gf44GW44KPLOOBv+OBjeOBig0KK+OBqOOBjeOBnyzjgYvjgaTjgojjgZcNCivjgajjgb/jgZ8s44GX44GS44GNDQor44Go44G/44GfLOOBkeOCk+OBmA0KK+OBqOOBv+OBnyzjgYLjgY3jgYoNCivjgaTjgZjjgbks44Gy44KN44GTDQor44Gk44GY44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgZjjgoXjgpPjgZMNCivjgb/jgoTjgZbjgY0s44G+44GN44GTDQor44KP44GgLOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgb8NCivjgoTjgb7jgaAs44Gq44GK44KEDQor44KE44G+44GgLOOBn+OBoOOBlw0KK+OChOOBvuOBoCzjgZXjgoTjgYsNCivjgoTjgb7jgZDjgaEs44Gu44KK44GKDQor44KE44G+44KC44GoLOOBn+OBi+OBkw0KK+OChOOBvuOBiuOBiyzjgYvjgaTjga7jgooNCivjgoTjgb7jgZfjgZ8s44Gu44G244GKDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBlQ0KK+OChOOBvuOBnuOBiCzjgbLjgo3jgb7jgZUNCivjgoTjgYos44KE44GZ44Gv44KLDQor44KE44GZ44GgLOOBleOBqOOBlw0KK+OCiOOBpOOBn+OBqyzjgojjgZfjgYoNCivjgojjgZfjga/jgoks44Gy44Gn44GKDQor44KI44GT44GG44KJLOOBvuOBleOBig0KK+OBsuOCieOBmyzjgZfjgZLjgYoNCivjgb7jgaTjgYQs44GE44Gh44Gf44KN44GGDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBlQ0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgYvjgajjgYYs44Go44GX44GP44GrDQor44GP44Gr44Go44KCLOOBruOBtuOChuOBjQ0KK+OBiOOCk+OBqSzjgZTjgYYNCivjgYTjgajjgYYs44GV44Go44KLDQor44GK44GL44GW44GNLOOBsuOBp+OBig0KK+OBsuOCjeOBr+OBlyzjgoTjgZnjgYoNCivjgZXjgYvjgY0s44KI44GG44GTDQor44G/44GNLOOBqOOBjeOBkw0KK+OBj+OBvuOBjSzjgb7jgZXjgYoNCivjgZ/jgoTjgb4s44Gm44Gk44GKDQor44GK44GK44KP44GNLOOBjeOBr+OBoQ0KK+OBv+OCh+OBhuOBqeOBhizjgb7jgZXjgagNCivjgYvjgajjgYYs44Gy44KN44KI44GXDQor44Gw44GwLOOBv+OBjeOBig0KK+OBi+OBreOBkyzjga/jgovjgbLjgZMNCivjgZPjgZDjgows44Gy44KN44GC44GNDQor44Gf44GR44GgLOOCiOOBl+OBruOCig0KK+OBhOOBoeOCgOOCiSzjgb7jgoLjgosNCivjgYTjgajjgYYs44Gu44G844KLDQor44GG44GI44Gv44G+LOOBv+OBruOCiw0KK+OBquOBi+OBhCzjgZPjgYbjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44GKDQor44GX44G+44GgLOOBvuOBquOBig0KK+OCgeOBkOOCjSzjgZfjgZLjgosNCivjgoTjgb7jgoQs44Gy44KN44GXDQor44G144GY44GfLOOBv+OBpOOBkA0KK+OBvuOBqOOBsCzjgaHjgbLjgo0NCivjgYTjgajjgYYs44KC44Go44GL44GaDQor44Gq44GL44GELOOBl+OBmuOBig0KK+OBiuOBi+OBoCzjgb7jgZXjgbLjgagNCivjga7jgoLjgags44Go44GX44GNDQor44Gq44GM44GX44G+LOOCiOOBhuOBmA0KK+OCiOOBreOBi+OCjyzjgZ/jgoLjgaQNCivjgo/jgZ/jgarjgbks44Go44GK44KLDQor44KA44KJ44G+44GkLOOBqOOCguOBoeOBiw0KK+OBjeOBn+OBqyzjgobjgYbjgYTjgaHjgo0NCivjgb/jgYvjgb8s44Gy44KN44GXDQor44GC44Gg44GhLOOBv+OBpOOBig0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgYLjgY0NCivjgYrjgYvjgaAs44Gf44GL44GC44GNDQor44GL44KP44GX44G+LOOBpuOBpOOBig0KK+OBm+OBjSzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44KI44GX44GYDQor44KP44Gf44Gq44G5LOOBvuOBleOCiw0KK+OBj+OCiuOBr+OCiSzjgaHjga/jgosNCivjgo/jgZ/jgarjgbks44GR44GE44GZ44GRDQor44G144GY44GL44GfLOOBv+OBpOOBig0KK+OCiOOBl+OBqCzjga7jgorjgYoNCivjgYvjgo/jgZss44GK44GV44KADQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBhOOBvuOBhCzjgZHjgpPjgZgNCivjgZPjgoDjgo0s44KG44GN44Go44GXDQor44G+44GI44GgLOOBiOOBhOOBlA0KK+OBk+OBhOOBkSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44G/44Gh44GC44GNDQor44GT44KT44GpLOOBsuOBleOBqOOBlw0KK+OBhOOBl+OBhCzjgbLjgZXjgoQNCivjgb/jgZfjgb4s44Gf44GL44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBi+OBmg0KK+OChOOBvuOBl+OBnyzjgZHjgpPjgZgNCivjgZ/jgarjgYss44KK44KH44GG44Ge44GGDQor44KE44G+44GgLOOBvuOBleOBqOOBlw0KK+OBi+OBv+OChCzjgb/jgaHjgoTjgZkNCivjgoTjgb7jgoLjgags44KK44GN44GKDQor44GX44GK44GW44GNLOOBqOOBiuOCiw0KK+OBquOBi+OCgOOCiSzjgaHjgYvjgZcNCivjgZ/jgZHjgoLjgags44GV44Gh44GKDQor44Gg44GR44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBguOCieOBi+OCjyzjgZzjgpPjgZgNCivjgojjgZPjgZ8s44G+44GV44KG44GNDQor44Gq44GL44KA44KJLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBi+OCjyzjgajjgZfjgYoNCivjgYrjgYrjgb/jgaEs44G+44GT44GoDQor44G+44Gk44GNLOOBiOOBhOOBjQ0KK+OBj+OBl+OBs+OBjSzjgZnjgZHjgbLjgacNCivjgavjgaPjgZ8s44Gm44KL44Gy44GTDQor44Gk44G844GG44GhLOOBv+OBjeOBig0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZ/jgZHjgoDjgoks44Go44GX44Gy44KNDQor44Gf44Gq44G5LOOBi+OBmuOBig0KK+OBvuOBiOOBoCzjgoLjgajjgY/jgasNCivjgZnjgYzjga/jgoks44Gm44Gk44GKDQor44GL44Gt44GTLOOBl+OCh+OBhuOBmA0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgbLjgZMNCivjgYvjgb/jgZbjgo8s44Gy44KN44G144G/DQor44GT44GMLOOBqOOBj+OBsuOCjQ0KK+OBpOOCi+OBleOBjSzjgZnjgarjgYoNCivjgbLjgYzjgZcs44G144G/44Gy44KNDQor44GE44GX44GgLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBjOOCjyzjga/jgovjgYoNCivjgabjgonjgZfjgb4s44Gy44GV44Gv44KLDQor44GN44Gf44KA44KJLOOBl+OCheOCk+OBmA0KK+OBr+OBo+OBqOOCiizjgbLjgafjgb8NCivjgZXjgZXjgY0s44KI44GX44Gy44KNDQor44G744GLLOOBkeOCk+OBn+OCjeOBhg0KK+OBruOCgOOCiSzjgabjgovjgYoNCivjga/jgoTjga4s44GL44Ga44GKDQor44GC44KT44GW44GELOOBl+OCk+OBhOOBoQ0KK+OBteOCi+OBrizjgY3jgojjgbLjgacNCivjgavjgZfjgo/jgY0s44GP44GrDQor44Gv44Gb44GM44KPLOOBvuOBleOBig0KK+OBhOOCj+OBnyzjgZ/jgYvjgobjgY0NCivjgajjgaAs44Gy44KN44GC44GNDQor44Gq44GL44KA44KJLOOBvuOBleOBqA0KK+OBteOCi+OBhOOBlyzjgb7jgZnjgb8NCivjgarjgYvjgoDjgoks44G144GY44GKDQor44Gq44GL44GM44KPLOOBsuOBp+OBig0KK+OBquOBi+OBvizjgZ/jgaTjgoQNCivjgZnjgYzjgo/jgoks44G+44GZ44GTDQor44G+44Gk44KC44GoLOOBpOOBqOOCgA0KK+OBr+OBl+OCguOBqCzjgojjgYbjgZ/jgo3jgYYNCivjgarjgYvjgaQs44KE44GZ44GL44GaDQor44GV44Go44GG44KKLOOBguOBjeOCiQ0KK+OBhOOBjeOBnyzjgobjgY3jga7jgbYNCivjgY3jgY/jgaEs44Gf44GR44GXDQor44GZ44GoLOOBvuOBleOBvw0KK+OBl+OBsOOBnyzjgbLjgZXjga7jgooNCivjgarjgYTjgajjgYYs44GT44GG44GYDQor44KC44KKLOOBi+OBmuOBkw0KK+OBhOOBqOOBhCzjgYLjgY3jgokNCivjgYTjgajjgYYs44GR44KT44GYDQor44G+44Gk44GW44GNLOOBvuOBleOBruOCig0KK+OBhuOBiOOBrizjgb/jgaTjga7jgooNCivjgYvjgZ/jgYrjgYss44GN44KI44GL44GaDQor44Gw44KT44Gp44GGLOOBn+OBpOOBig0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgYTjgo/jgYQs44GX44GS44KLDQor44GX44KC44KE44G+LOOBv+OBruOCiw0KK+OBguOBi+OBvuOCiyzjgYrjgZXjgoANCivjgZTjgajjgYYs44Gv44GY44KBDQor44G+44Gk44GgLOOBmeOBmeOCgA0KK+OBreOBjOOBvyzjgajjgZfjgYoNCivjgoTjgb7jgZfjgZ8s44G+44GV44GK44G/DQor44KI44Gt44KE44G+LOOCiuOCheOBhuOBuOOBhA0KK+OBhOOBl+OChOOBvizjgbLjgZXjgYoNCivjgYLjgbnjgYvjgo8s44KM44GE44GYDQor44GE44G+44KA44KJLOOBl+OBkuOCiw0KK+OBhOOCj+OBquOBjCzjgb/jga7jgosNCivjgYbjgYjjgaAs44GP44Gr44Gy44GTDQor44G144GY44GL44KPLOOChuOBjeOBig0KK+OBn+OCgOOCiSzjgojjgZfjgbLjgZUNCivjgYvjgZfjgYQs44G+44GV44GoDQor44KI44Gt44GgLOOBvuOBleOBig0KK+OCiOOBk+OBpCzjgYLjgY3jgYoNCivjgYLjgZXjgYos44KG44GG44GYDQor44Gf44Gq44GLLOOBkeOBhOOBmA0KK+OBn+OBquOBiyzjgZ/jgaDjgb8NCivjgoTjgZfjgY0s44KE44GZ44KG44GNDQor44GL44GE44GM44GELOOBn+OBkeOBlw0KK+OBneOBjOOBuSzjgobjgY3jgYoNCivjgbXjgovjgYvjgo8s44GR44KT44GYDQor44GL44KP44GG44GhLOOChuOBhuOBhOOBoQ0KK+OBteOBmOOBhCzjga7jgorjgobjgY0NCivjgYTjgZHjga7jgoQs44Gf44Gk44GKDQor44GK44GhLOOBruOCiuOBig0KK+OBquOBi+OCguOBqCzjgarjgYrjga/jgosNCivjgo/jgYvjgbDjgoTjgZcs44Gv44KM44GKDQor44GC44KJ44GNLOOBteOBv+OBig0KK+OChOOBuSzjgbLjgafjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44KNDQor44GX44Gw44GuLOOBv+OBpOOBig0KK+OBn+OBjOOBl+OCiSzjgajjgZfjgYoNCivjgZnjgb/jgZ8s44Gm44Gk44KEDQor44GV44Go44GGLOOBk+OBhuOBmOOCjeOBhg0KK+OBoeOBrizjgZfjgZLjgagNCivjgoTjgb7jgaAs44KE44GZ44Gy44KNDQor44GE44GM44KJ44GXLOOBruOCiuOCiOOBlw0KK+OBhOOBkeOBjOOBvyzjgZHjgpPjgYTjgaENCivjgbXjgarjgaAs44Gf44GL44KG44GNDQor44GE44Gu44GG44GILOOBn+OBi+OCiOOBlw0KK+OBq+OBl+OChOOBvizjgbLjgo3jgZcNCivjgYTjgZfjga/jgoks44Go44GX44Gf44GLDQor44GZ44Ga44GNLOOBn+OBhOOBoQ0KK+OBk+OCguOCiuOChCzjgYvjgZrjgYoNCivjgaHjgoXjgYbjgZQs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBv+OChOOCguOBqCzjgaTjgajjgoANCivjgarjgYvjgZ8s44Gf44GL44KG44GNDQor44GE44KK44Gf44GrLOOBn+OBj+OBig0KK+OBiuOBjOOCjyzjgobjgY3jgaENCivjgYrjga0s44GR44KT44GYDQor44GT44G+44GkLOOBvuOBleOBguOBjQ0KK+OBv+OBruOCjyzjgbLjgo3jgZcNCivjgbXjgZjjgYvjgo8s44Gq44GK44GoDQor44GL44KP44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OBoeOBsCzjgajjgZfjgbLjgZMNCivjgarjgYvjgavjgZcs44GV44Gg44GKDQor44GV44GP44G+LOOBsuOBqOOBlw0KK+OBn+OBkeOBvuOBlSzjgajjgZfjgobjgY0NCivjgZvjgY0s44KI44GG44GE44GhDQor44GV44GE44Go44GGLOOBteOBv+OBig0KK+OBteOBmOOCguOBqCzjgoTjgZnjgYoNCivjgYrjgZDjgoos44Gf44Gk44GYDQor44GE44GX44Gw44GXLOOBjeOCiOOBlw0KK+OBguOBluOBvyzjgZfjgZLjgosNCivjgYrjgYzjgZXjgo/jgoks44Gq44GK44GE44GhDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgoLjgorjgoTjgb4s44GX44KF44GG44G444GEDQor44GN44Gf44GW44KPLOOBsuOBp+OBqOOBlw0KK+OBi+OBquOBluOCjyzjgYvjgaTjgYoNCivjga/jgonjgaAs44G+44GV44GoDQor44GK44GP44KE44G+LOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgYTjga7jgb7jgZ8s44KG44GN44GKDQor44G144KL44GV44KPLOOBm+OBhOOBjQ0KK+OBn+OBkeOBhuOBoSzjgZfjgo3jgYYNCivjgYrjgYrjga4s44Gk44Go44KADQor44KC44KN44GK44GLLOOBkeOCk+OBmA0KK+OBl+OBruOBluOBjSzjgbXjgb/jgYLjgY0NCivjga7jgZDjgaEs44GX44GS44GC44GNDQor44GX44G+44GgLOOBk+OBhuOBmA0KK+OBi+OCj+OBleOBjSzjgobjgZ/jgYsNCivjgYrjgYrjgYvjgo8s44G+44GT44GoDQor44GV44KB44GX44G+LOOBvuOBleOBsuOCjQ0KK+OBu+OBneOBmOOBvizjgYvjgZrjgbLjgZMNCivjgo/jgZ/jgarjgbks44Go44G/44GKDQor44GL44KP44Gq44G/LOOBvuOBleOBguOBjQ0KK+OBj+OBleOBrizjgZHjgYTjgZXjgY8NCivjgaTjgaHjgZ8s44Go44KC44GC44GNDQor44GK44GK44Gv44GXLOOBk+OBhuOBmA0KK+OBruOBoCzjgb/jgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44GV44GKDQor44KI44GX44Gf44GRLOOChOOBmeOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgYLjgY3jgokNCivjgYTjgo/jgoQs44Gf44GL44GKDQor44GV44GL44KC44GoLOOCguOBqOOBr+OCiw0KK+OBj+OBvOOBnyzjgZfjgofjgYbjgZgNCivjgYTjgZ3jgoTjgb4s44GT44GG44GE44GhDQor44GK44GK44GuLOOBv+OBpOOBguOBjQ0KK+OBguOBuSzjgZ/jgaTjgYoNCivjgYrjgaDjgo/jgoks44G/44Gh44GKDQor44GN44GG44GhLOOBkeOCk+OBmA0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgbXjgb8NCivjgojjgZfjgaAs44Gf44Gk44GKDQor44Gh44KD44Gw44Gf44GRLOOBvuOBleOBteOBvw0KK+OBleOBi+OBhCzjgojjgZfjgYoNCivjgYrjgYrjgZ8s44KI44GG44GYDQor44Gq44GL44GuLOOBvuOBleOBvw0KK+OBr+OBoCzjgZ/jgYvjgZcNCivjgarjgYvjgoTjgb4s44GY44KF44KT44GYDQor44GV44GL44GQ44GhLOOBkeOCk+OBmA0KK+OBquOBjOOBl+OBvizjgoTjgZnjgYoNCivjgZXjgYzjgoks44Go44GX44Gy44KNDQor44GL44KP44GuLOOBn+OBoOOCiOOBlw0KK+OBi+OBreOBkyzjgYTjgZXjgYoNCivjgarjgYvjgaAs44G/44Gk44KLDQor44GC44G+44GuLOOBn+OBi+OBlw0KK+OChOOBluOBjSzjgZfjgoXjgYbjgZgNCivjgbLjgonjgY7jga4s44GL44Ga44GKDQor44Gf44Gw44GfLOOBhOOBoeOBig0KK+OBj+OBq+OChuOBjSzjgoTjgZnjgbLjgo0NCivjgYrjgY/jgYbjgaEs44Gy44KN44Gu44KKDQor44GZ44GO44KC44GoLOOBsuOBp+OBmA0KK+OBquOBi+OCgOOCiSzjgorjgofjgYbjgZgNCivjgZnjgY7jgZXjgY0s44KP44Gf44KLDQor44KE44G+44GX44GfLOOBn+OBi+OBpuOCiw0KK+OBruOCgOOCiSzjgYvjgZrjgb8NCivjgZfjgb7jgaAs44G/44Gk44KLDQor44G144GP44GgLOOBi+OBmuOBruOCig0KK+OBleOBqOOBhizjgbLjgafjgYoNCivjgYrjgY/jgbzjgoos44Gy44KN44GXDQor44KI44GT44GL44KPLOOBvuOBleOBvw0KK+OBp+OCk+OBoCzjgY3jgojjgZcNCivjgbXjgY/jgarjgYws44GZ44GZ44KADQor44Gf44GL44GX44G+LOOBv+OBpOOBjg0KK+OBi+OBqOOBhizjgabjgaTjgYoNCivjgYTjgZfjgZDjgo0s44GC44GN44Gu44KKDQor44GE44GR44G5LOOBj+OBq+OChuOBjQ0KK+OBiuOBiuOBpOOBiyzjgZnjgZnjgoANCivjgZfjgb/jgZos44KI44GX44Gu44KKDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBpOOChCzjgb7jgZPjgagNCivjgYbjgaHjgaAs44G+44GV44Gf44GLDQor44GK44GhLOOBkeOCk+OBhOOBoQ0KK+OBguOCiuOBjCzjgZ/jgZHjgZcNCivjgarjgYvjgZfjgb4s44GL44Gk44GYDQor44G+44GV44GNLOOBvuOBpOOBvw0KK+OBquOBi+OBl+OBvizjgb7jgZXjgYoNCivjgYLjgZXjga/jgoks44G+44GV44KI44GXDQor44GU44Go44GGLOOBsuOBleOBig0KK+OBhuOBiOOBvuOBpCzjgbLjgo3jgZcNCivjgZXjgY3jgoLjgoos44KI44GX44GC44GNDQor44KI44GX44GgLOOBpOOBqOOCgA0KK+OBteOBmOOBnyzjgoTjgZnjgojjgZcNCivjgoTjgY7jgZfjgZ8s44Go44GX44GKDQor44KA44KN44G144GXLOOBvuOBleOBsuOCjQ0KK+OBi+OCgeOBoCzjgYjjgYTjgYTjgaENCivjgYTjgYvjgo8s44Gy44KN44Gf44GgDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OBpOOCi+OBr+OBlyzjgb7jgZPjgagNCivjgb/jga7jgZfjgb4s44Gu44KK44GKDQor44GN44GX44KC44GoLOOBvuOBk+OBqA0KK+OBn+OBkeOBl+OBnyzjgb7jgZXjgZcNCivjgarjgYvjgZ8s44GX44KT44GE44GhDQor44GI44KT44GpLOOBjeOCiOOBlw0KK+OCguOCiuOChCzjgZHjgYTjgoHjgYQNCivjgY/jgbzjgZ8s44GZ44G/44GKDQor44Gq44GK44Gv44KJLOOBsuOCjeOBlw0KK+OBj+OBkizjgZHjgpPjgZgNCivjgYvjgZXjga4s44G+44GV44Gv44KLDQor44GE44GE44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBiuOBnyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgZMs44Gy44KN44G144G/DQor44KA44KJ44GT44GXLOOBqOOBl+OBig0KK+OCiOOBl+OBoCzjgZHjgpPjgZgNCivjgYLjgZXjga4s44KI44GX44GC44GNDQor44KI44GX44GgLOOBvuOBleOBqOOBlw0KK+OBr+OChOOBlyzjgabjgaTjgo3jgYYNCivjgZnjgZrjgY0s44Gf44Gk44KEDQor44GK44GgLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBvuOBhuOBoSzjgY3jgojjgZcNCivjgYvjgo/jgYvjgb8s44Gk44Gt44GKDQor44GG44GZ44GgLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgZfjgpPjgYTjgaENCivjgY/jgonjgZfjgb4s44GX44KT44GYDQor44G+44GbLOOBruOBvOOCiw0KK+OBk+OCk+OBrizjgbLjgo3jgZcNCivjgb7jgaTjgZbjgo8s44GC44GN44KJDQor44GX44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgojjgZfjga7jgooNCivjgYrjgYrjgY/jgbws44GR44KT44GYDQor44GK44GQ44KJLOOBi+OBmuOBruOCig0KK+OBleOBj+OBvizjgYjjgYTjgZgNCivjga7jgZDjgaEs44Gy44KN44Gu44KKDQor44Gy44Gq44GfLOOBk+OBhuOBhOOBoQ0KK+OBteOBmOOBhCzjgZfjgoXjgpPjgYTjgaENCivjgZnjgY7jgoLjgags44G+44GV44GXDQor44Gk44GL44Gv44KJLOOBlOOCjeOBhg0KK+OBv+OBpOOBquOBjCzjgb7jgZXjgYLjgY0NCivjgarjgYvjgoDjgoks44G+44GV44KI44GXDQor44KE44GY44G+LOOBn+OBkeOBlw0KK+OBi+OBv+OBnyzjgZnjgZnjgoANCivjgbLjgYws44GY44KF44KT44GNDQor44G/44Gq44GM44KPLOOCiOOBl+OBpuOCiw0KK+OBqOOBvyzjgZ/jgYvjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gy44KN44GXDQor44GL44GP44GfLOOBguOBjeOBsuOCjQ0KK+OBpOOBoeOChCzjgbLjgafjgobjgY0NCivjgoDjgonjgZ8s44GR44KTDQor44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OBl+OCguOBoCzjgojjgZfjga7jgooNCivjgaTjgYvjgoLjgags44GP44KJ44GYDQor44Gv44Gq44Gv44GfLOOBsuOBp+OBig0KK+OBi+OCk+OBoCzjgZfjgpPjgZgNCivjgYvjgo/jgaAs44KG44GN44GKDQor44KI44GX44GELOOBpOOBreOBig0KK+OBj+OCieOChCzjgY3jgbjjgYQNCivjgabjgonjgZfjgb4s44Gy44Gn44KG44GNDQor44GN44Gf44GM44KPLOOCiOOBl+OBig0KK+OBhOOBpyzjgajjgZfjgbLjgo0NCivjgaTjgoss44Gy44GV44GKDQor44GG44Gk44Gu44G/44KELOOBqOOBl+OBi+OBmg0KK+OBquOBi+OBluOCjyzjgb7jgZXjgbLjgagNCivjgbLjgaAs44KI44GX44Gu44G2DQor44G744Gd44GL44KPLOOBsuOBp+OBmA0KK+OBoeOBkOOBlSzjgZvjgYTjgZgNCivjgZ3jgYbjgoQs44Gy44KN44G/DQor44KE44G+44GQ44GhLOOBk+OBhuOBuOOBhA0KK+OBleOBi+OBpizjgbXjgb/jgYoNCivjgYLjgo/jgZ8s44GX44GS44KLDQor44KP44GL44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBiOOCk+OBmOOCheOBhuOBmCzjgb7jgZPjgagNCivjga7jgZDjgaEs44GT44GG44GE44GhDQor44GL44KP44KA44KJLOOBvuOBleOBig0KK+OCguOCiuOCguOBqCzjgb/jgY3jgYoNCivjgojjga3jga/jgaos44Gf44Gg44Gy44KNDQor44GY44GgLOOBguOBjeOBig0KK+OBhuOBiOOBoCzjgZHjgpPjgZgNCivjgZfjga7jga/jgoks44GE44GV44KADQor44Gf44GL44KE44G+LOOBvuOBleOBi+OBmg0KK+OChOOBvuOCgOOCjSzjgb7jgZXjga7jgbYNCivjgo/jgY0s44GY44KF44KT44GTDQor44GC44G+44GuLOOBvuOBpOOBig0KK+OBu+OBneOBi+OCjyzjgajjgZfjgYoNCivjgajjgYbjgZTjgYYs44Gy44KN44Gy44GVDQor44Gq44GLLOOBqOOBv+OBig0KK+OBruOBoCzjgZ/jgYvjga7jgooNCivjgoTjgb7jgZfjgZ8s44Gh44GI44GTDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBjOOBiuOBiyzjgZPjgYbjgZgNCivjgZfjgbbjgoQs44KI44GX44GL44GaDQor44Gb44KK44GW44KPLOOBk+OBhuOBnuOBhg0KK+OBteOBmOOCguOCiizjgZvjgYTjgZgNCivjgbXjgY/jgaAs44Gf44Gk44Gy44KNDQor44G144GY44GfLOOBn+OBi+OBsuOBlQ0KK+OChOOBvuOBmCzjgbLjgafjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GE44Ga44G/DQor44GT44Gw44KE44GXLOOBjeOCiOOBlw0KK+OBl+OBl+OBj+OCiSzjgojjgZfjgYLjgY0NCivjgZPjgZDjgows44G+44GV44Gv44KLDQor44KC44KKLOOCiOOBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjga7jgorjgZ/jgYsNCivjgYTjgYTjgZjjgb4s44Gu44KK44KG44GNDQor44GN44Gf44GM44KPLOOCiOOBl+OBpuOCiw0KK+OBn+OCgOOCiSzjgZ/jgaDjgojjgZcNCivjgarjgYzjgZfjgb4s44KE44GZ44GIDQor44GI44Gu44GNLOOBhOOBmuOBvw0KK+OBleOBqOOBhizjgojjgZfjga7jgbYNCivjgb7jgaTjgoLjgags44KI44GX44GKDQor44GG44GI44GgLOOBsuOCjeOBig0KK+OBv+OBmuOBn+OBqyzjgYLjgY3jgokNCivjgYLjgYvjgZcs44Gf44Gk44GKDQor44Gq44GL44KC44GoLOOBiuOBleOCgA0KK+OBquOBi+OChOOBvizjgbLjgo3jga7jgbYNCivjgbXjgZjjgYQs44KE44GZ44Gy44KNDQor44Gq44GL44KE44G+LOOBl+OCh+OBhuOBhOOBoQ0KK+OCiOOBreOBv+OBpCzjgabjgaTjgYoNCivjgZ/jgYvjgZss44Go44GX44GKDQor44KP44Gf44Gq44G5LOOBsuOBqOOBlw0KK+OBteOBi+OBluOCjyzjgajjgZfjga7jgbYNCivjgYvjgZLjgYbjgoks44G+44GV44G/DQor44GX44KT44Gp44GGLOOBi+OBpOOBmA0KK+OBl+OBv+OBmizjgZ/jgaTjgb8NCivjgZXjgYvjgZfjgZ8s44KI44GX44GuDQor44G/44KE44KA44KJLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgb7jgZXjgajjgZcNCivjgZ/jgYvjgYTjgZcs44GZ44GZ44KADQor44GE44GX44GM44GNLOOBkeOCk+OBmA0KK+OBn+OBi+OBoCzjgojjgZfjgYvjgZoNCivjgZ/jgabjgYTjgZcs44GL44Ga44Gq44GLDQor44GV44GL44GfLOOBsuOBp+OBig0KK+OCiOOBk+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgY/jgoQs44Gf44KC44GkDQor44KI44GX44GgLOOBvuOBleOBsuOBpw0KK+OBjeOBn+OBoCzjga/jgovjgYoNCivjgojjgZfjgaAs44GX44KT44GY44KN44GGDQor44GT44Gw44KE44GXLOOBi+OBmuOBvw0KK+OBquOCiuOBnyzjgb/jgaTjgojjgZcNCivjgYTjgazjgYQs44G+44GV44KI44GXDQor44KE44GZ44GL44KPLOOBteOBv+OBig0KK+OBruOBkOOBoSzjgZnjgarjgYoNCivjgZfjgofjgYbjgaAs44GE44Gh44Ge44GGDQor44KE44G+44GgLOOBpuOCi+OBsuOBlQ0KK+OCj+OBj+OBoCzjgaTjgajjgoANCivjgYLjgbks44GV44Gg44Gy44KNDQor44Gf44GR44GL44KPLOOBn+OBi+OBig0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjga/jgarjgYrjgYss44KI44GX44GKDQor44GK44GK44GuLOOBsuOBp+OBig0KK+OBn+OBquOBiyzjgZHjgpPjgZ7jgYYNCivjgaTjga7jgaAs44GC44GN44GKDQor44Gq44G+44GILOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgbLjgZUNCivjgarjgYvjgZjjgb4s44GX44GS44KLDQor44Gq44GL44KA44KJLOOBjeOBv+OBkw0KK+OBhuOCiuOBhizjga/jgovjgZ/jgZENCivjgbXjgZjjgYTjgo8s44G144G/44Gy44GTDQor44GV44GV44GNLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgobjgZ/jgYsNCivjgZ/jgYvjgY4s44GX44KF44GG44GE44GhDQor44GL44Gf44KE44G+LOOBsuOCjeOBqA0KK+OBhOOBkOOBoSzjgYrjgZXjgoANCivjgYLjgbks44Gm44KL44GKDQor44GZ44Ga44GNLOOBn+OBi+OBsuOCjQ0KK+OBsuOCiSzjgYvjgZrjgbLjgo0NCivjgarjgZTjgZcs44Gy44Gn44GC44GNDQor44GC44Gg44GhLOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgb7jgoLjgosNCivjgY/jgavjgYvjgZ8s44GZ44GZ44KADQor44G+44Gk44GELOOBvuOBk+OBqA0KK+OBk+OBhOOBpyzjgb/jgaTjgYoNCivjgbLjgo3jgZ8s44Gy44KN44KE44GZDQor44Go44G/44Gq44GLLOOCiOOBl+OBig0KK+OCj+OBjeOBnyzjgbXjgZjjgYoNCivjgYbjgoHjgoDjgoks44GX44KH44GG44GYDQor44G144GRLOOCiOOBhuOBhOOBoQ0KK+OBhuOBiOOBvuOBpCzjgYvjgaTjgb8NCivjgb7jgaTjgZbjgY0s44KE44GZ44Gy44KNDQor44Gq44GL44GuLOOBpOOCguOCiw0KK+OBk+OBoOOBiyzjgZ/jgZHjgYoNCivjgbLjgo3jgZ/jgass44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoQ0KK+OBleOBrizjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZfjgb/jgZos44KI44GX44GL44GaDQor44GL44KT44GW44GNLOOBpuOCi+OCiOOBlw0KK+OBiuOBiuOBleOBjyzjgYvjgZrjgYoNCivjgo/jgZfjgaAs44G+44GV44Gy44GnDQor44GP44Gr44KC44GoLOOChOOBmeOBvuOBlQ0KK+OBl+OCjeOBi+OCjyzjgb7jgZPjgagNCivjgYvjgo/jga/jgoks44GR44KT44GE44GhDQor44GK44GLLOOBpOOBreOBi+OBmg0KK+OBk+OCguOCiizjgojjgZfjgYLjgY0NCivjga/jgoTjgZcs44GX44GS44GC44GNDQor44GL44Gt44GTLOOBhOOBj+OBig0KK+OBi+OBqeOBhOOBkSzjgarjgYrjgb/jgaENCivjgYrjgYvjgoDjgoks44GY44KF44KT44GE44GhDQor44GK44GL44KA44KNLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBn+OBtuOBoSzjgarjgYrjgZMNCivjgoTjgb7jgoLjgags44GC44GN44Gu44KKDQor44GK44GK44GVLOOBn+OBi+OBlw0KK+OBhOOCiuOBiCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga8s44GL44Ga44Gy44GTDQor44Gf44GE44KJLOOBr+OCi+OBig0KK+OBv+OBquOBvyzjgoTjgZnjgb7jgZUNCivjgYTjgZHjgaAs44GX44GS44KLDQor44GC44GK44GNLOOBteOBv+OBig0KK+OChOOBvuOBhuOBoSzjgZgNCivjgojjgZfjga/jgoks44G+44GV44G144G/DQor44GV44GV44GNLOOBguOBjeOBsuOBqA0KK+OBv+OBmuOBn+OBqyzjgajjgZfjgYTjgaENCivjgbLjgonjga4s44GL44Gk44KG44GNDQor44Gq44GM44GfLOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgZHjgYQNCivjgYrjgaAs44KK44KH44GG44GYDQor44GI44Gu44KC44GoLOOChuOBhuOBjQ0KK+OBn+OBkeOBquOBiyzjgZXjgYvjgYgNCivjgb7jgaTjgZbjgY0s44Gy44KN44GXDQor44G+44Gk44Gw44KJLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgZvjgaTjgZMNCivjgoHjgZDjgo0s44Gy44KN44KI44GXDQor44GK44GW44GNLOOBsuOBp+OChuOBjQ0KK+OBiuOBiuOBjOOBvyzjgZPjgYbjgYTjgaENCivjgYrjgb7jgYgs44GX44KT44GE44GhDQor44GN44GgLOOBi+OCk+OBmA0KK+OBhuOBiOOBrizjgYrjgZXjgoANCivjgYrjgYvjgaAs44GL44Gk44KG44GNDQor44GL44Gq44GV44GNLOOBqOOBv+OBig0KK+OChOOBi+OBuSzjgbLjgo3jgobjgY0NCivjgarjgoDjgoks44KG44G/44GTDQor44GE44GE44GY44G+LOOCguOBqOOBguOBjQ0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgoLjgaHjgZrjgY0s44KI44GX44Gu44G2DQor44G244KT44KELOOBqOOBl+OBig0KK+OBiuOBi+OBrizjgoTjgZnjgYoNCivjgZ/jgZHjgYbjgaEs44GV44Go44GXDQor44GG44GI44GuLOOBqOOBiuOCiw0KK+OBteOBmOOCguOBqCzjgbLjgafjgagNCivjgYvjgo/jgZDjgaEs44G/44Gk44Gv44KLDQor44Gf44GN44KC44GoLOOBvuOBleOBruOCig0KK+OBi+OBn+OBiuOBiyzjgZfjgZLjgosNCivjgY/jgZXjgYvjgo8s44Gq44GK44GNDQor44GC44GV44GELOOBsuOBqOOBlw0KK+OCguOCiizjgYjjgYTjgYTjgaENCivjgY/jgbws44KI44GX44GP44GrDQor44GC44KT44Gp44GGLOOBhOOBoeOCjeOBhg0KK+OBhuOCieOChOOBvizjgYrjgZXjgoANCivjgY/jgorjgZ8s44KI44GX44GKDQor44GE44Gu44GG44GILOOBn+OBkeOBlw0KK+OBi+OBreOBi+OCjyzjgbLjgafjgYoNCivjgYbjgYjjgoLjgags44KK44KH44GG44Ge44GGDQor44Gq44GL44GKLOOBkeOCk+OBhOOBoQ0KK+OBiuOBi+OCguOBqCzjga/jgovjgYoNCivjgavjgZfjgoDjgoks44GN44KI44GXDQor44KE44GgLOOBi+OBmuOBiuOBvw0KK+OBjeOBqSzjgYrjgZXjgoANCivjgYrjgYvjgbDjgoTjgZcs44G/44Gk44Gy44KNDQor44GL44KP44GX44G+LOOBmOOCheOCk+OBnuOBhg0KK+OBr+OBl+OBjSzjgZ/jgYvjgb/jgaENCivjgb/jgoTjgoLjgags44GE44Gh44KN44GGDQor44Gq44GL44GKLOOBn+OBi+OBsuOBkw0KK+OBvuOBpOOBiuOBiyzjgobjgY3jgYoNCivjgbLjgbPjga4s44Gy44KN44G/DQor44Gr44GX44GL44KPLOOBi+OBiuOCiw0KK+OBi+OBtuOBnyzjgZHjgpPjgZgNCivjgo/jgZ/jgarjgbks44GN44KI44GXDQor44KE44G+44GuLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgZfjgZLjgb/jgaQNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GP44KP44Gv44KJLOOBleOBqOOBlw0KK+OCguOCiuOBnyzjgajjgZfjgbLjgo0NCivjgbXjgZjjgYQs44GZ44G/44KI44GXDQor44Gq44GM44GX44G+LOOBpOOBreOChuOBjQ0KK+OBhOOBquOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYrjgZbjgo8s44Gy44Go44GXDQor44Gf44GN44KC44GoLOOBj+OBq+OBig0KK+OBv+OChOOBl+OBnyzjgbLjgZXjgZcNCivjgoLjgYbjgoos44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBv+OBpOOBig0KK+OBquOBjOOBrizjgoLjgajjgYLjgY0NCivjga/jgonjgags44KI44GX44GKDQor44G+44G/44KELOOBqOOBl+OBi+OBmg0KK+OBsuOBjOOBl+OBsOOBnyzjgbLjgafjgYoNCivjgavjgZfjgZ/jgass44GV44Go44GXDQor44Gf44GL44GPLOOBruOBtuOChuOBjQ0KK+OBr+OBquOBoCzjgb/jga7jgosNCivjgYLjgZXjga4s44G/44Gh44GKDQor44Gw44GwLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgZfjgpPjgY3jgaENCivjgYTjgYTjgaAs44GR44KT44GXDQor44GT44Gv44KE44GL44KPLOOBn+OBkeOBsuOBkw0KK+OBteOBmOOCj+OCiSzjgYvjgaTjgb8NCivjgZfjgoXjgY/jgoos44KE44GZ44Gy44GTDQor44KG44Gf44GrLOOBkeOCkw0KK+OCgOOBreOBi+OCjyzjgYTjgY/jgZMNCivjgYvjgpPjga4s44G+44GV44Gy44KNDQor44Gr44GoLOOBi+OBpOOBvw0KK+OBn+OCgOOCiSzjgojjgZfjgYLjgY0NCivjgarjgYvjgZfjgb4s44GV44Go44GXDQor44GK44GK44GfLOOBoeOBi+OBkw0KK+OBhOOBruOBhuOBiCzjgojjgZfjgZMNCivjgY/jgb7jgb7jgoss44GR44KT44GYDQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OBvuOBiOOBoCzjgb7jgZXjgYLjgY0NCivjgYLjgb8s44Gu44G244GKDQor44G/44Gq44GoLOOBguOBjeOCiQ0KK+OBq+OBl+OBoCzjgYvjgZrjgYoNCivjgYTjgZfjga/jgoks44GV44G244KN44GGDQor44Gq44GL44GX44G+LOOBqOOBl+OBig0KK+OBhOOBj+OBnyzjgoTjgZnjgbLjgZUNCivjgYrjgY0s44Gf44Gg44GKDQor44GL44GM44KPLOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBsuOCieOBi+OCjyzjgajjgZfjgYoNCivjgoTjgb7jgZbjgY0s44Go44GX44Gu44KKDQor44GP44G+44GM44GELOOBk+OBhuOBmOOCjeOBhg0KK+OBn+OBl+OCjSzjgb/jgaTjgZfjgZINCivjgZXjga4s44Gy44Gn44G+44GVDQor44G/44Gp44KK44GL44KPLOOBteOBv+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgojjgZfjgb8s44Gy44KN44GTDQor44GE44Gq44G/LOOBsuOBp+OBqA0KK+OCj+OBn+OBquOBuSzjgY3jgojjgZcNCivjgZPjgYws44Go44KC44Gy44GnDQor44GZ44GM44KP44KJLOOChOOBmeOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgojjgYbjgYTjgaENCivjgYjjgaAs44KI44GX44KN44GGDQor44GC44KT44Gp44GGLOOBsuOCjeOBig0KK+OBn+OCi+OBhCzjgobjgZ/jgYsNCivjgZTjgajjgYYs44Gy44KN44GXDQor44GX44KC44GM44GNLOOBl+OBkuOCiw0KK+OBquOBjOOBnyzjgobjgY3jgYoNCivjgbvjgZfjgYvjgo8s44GY44KF44KT44GE44GhDQor44GT44G/44Gq44G/LOOBvuOBleOBig0KK+OBi+OBjCzjgojjgYYNCivjga/jgZzjgYvjgo8s44Gu44G244GKDQor44Gh44GwLOOBl+OBmuOBiw0KK+OBhuOCieOBrizjgZXjgajjgZcNCivjgZPjgpPjga4s44Go44GX44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOCiOOBlw0KK+OCguOCguOBmyzjgobjgYbjgZMNCivjgaTjgZIs44GY44KF44KT44GYDQor44KE44GZ44GT44GhLOOChOOBmeOBn+OBiw0KK+OBu+OBneOBluOCjyzjgZfjgofjgYbjgYTjgaENCivjgZnjgY7jgoTjgb4s44GL44Gk44KG44GNDQor44GC44G5LOOBn+OBkeOChuOBjQ0KK+OBn+OBquOBiyzjga7jgbbjgobjgY0NCivjgZvjgYTjgZEs44KE44GZ44Gy44KNDQor44Gk44GSLOOBvuOBleOBruOBtg0KK+OCj+OBi+OBsOOChOOBlyzjgYLjgY3jgYoNCivjgYrjgYrjgY/jgbws44Gf44GL44GKDQor44GK44GL44G5LOOBteOBv+OBig0KK+OBhOOCj+OBhCzjgbLjgZXjgYoNCivjgZ/jgarjgYss44Gm44KL44KG44GNDQor44KE44G+44KC44GoLOOBv+OBpOOBig0KK+OBn+OBi+OChOOBvizjgarjgYrjgY0NCivjgZ/jgZjjgb4s44Gy44Gn44Gu44KKDQor44GL44Ga44GX44KNLOOBvuOBleOBr+OCiw0KK+OBk+OBhOOBpyzjgZ/jgYvjgZcNCivjgYvjgoIs44Gf44Gk44Gu44KKDQor44GN44Gf44GY44G+LOOCiOOBl+OChuOBjQ0KK+OBr+OBvuOBrizjgZfjgZLjgosNCivjgYTjgYTjgoTjgb4s44Go44GX44KG44GNDQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBhOOBoQ0KK+OBjeOBnyzjgZfjgZLjgobjgY0NCivjgYTjgZfjgZ/jgass44GV44Go44GXDQor44GP44GY44KBLOOBleOBoOOBig0KK+OBjeOBl+OBi+OCjyzjgYvjgZrjgYoNCivjgarjgYzjga4s44G+44GV44Gy44KNDQor44KI44KA44KJLOOBn+OBoOOBruOCig0KK+OBquOBi+OBl+OBvizjgajjgZfjgobjgY0NCivjgoLjgoos44GI44GE44GYDQor44KE44G+44GYLOOCiOOBl+OBi+OBmg0KK+OBiuOBnOOBjSzjgb7jgZXjgZ/jgYsNCivjgYTjgarjgaAs44KE44GZ44GXDQor44Gv44KE44GbLOOBn+OBi+OBlw0KK+OBu+OCk+OBvSzjgZnjgZnjgoANCivjgYrjgYrjgoQs44GL44KT44GYDQor44GN44Gf44KA44KJLOOBn+OBi+OBlw0KK+OBqOOBl+OCkyzjgZXjgajjgosNCivjgZ/jgZHjgYQs44KE44GZ44G144G/DQor44GK44GL44KE44G+LOOBruOBtuOBig0KK+OBhOOBl+OBmuOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgZ8s44Go44GX44GC44GNDQor44GZ44GM44Gv44KJLOOChuOBhuOBmA0KK+OBhOOCj+OBvyzjgoTjgZnjgYoNCivjgobjgoLjgags44Gy44Gn44GKDQor44GN44Gf44GM44KPLOOChuOBn+OBiw0KK+OBhOOBr+OCiSzjgobjgYbjgZ7jgYYNCivjga7jgoDjgoks44GE44Gh44KN44GGDQor44G/44KE44GV44GLLOOBkeOCk+OBmA0KK+OCiOOBl+OBoCzjgajjgoLjgojjgZcNCivjgbXjgYvjgaAs44Gf44GL44GXDQor44G144GY44KP44KJLOOBi+OBmuOBv+OBpA0KK+OBjeOBqCzjgajjgZfjgYLjgY0NCivjgYbjgYjjgoLjgoos44GE44GV44GKDQor44KE44G+44GL44KPLOOBvuOBleOBvw0KK+OBj+OCjeOBoCzjgb/jgaHjgo0NCivjgYrjgYrjgaTjgYss44Gy44KN44GXDQor44GG44GI44GgLOOChuOBhuOBmA0KK+OBneOBrizjgb/jgY3jgYoNCivjgaDjgYQs44Go44KC44G/44GhDQor44GX44KT44Ge44GGLOOBsuOCjeOBi+OBmg0KK+OBhuOBiOOBoCzjgobjgZ/jgYsNCivjgo/jgYvjgb/jgoQs44GL44Ga44G/DQor44GL44KA44KJLOOBteOBv+OBpOOBkA0KK+OBteOCi+OBn+OBqyzjgZ/jgYvjgb7jgZUNCivjgYvjgaTjgYbjgoks44GL44Gk44G/DQor44GP44G+44GELOOBm+OBhOOBmA0KK+OBsOOBsCzjga/jgovjgaTjgZANCivjgYvjga3jgajjgoIs44Gf44Gk44G/DQor44KA44KJ44Gv44GXLOOBqOOBiuOCiw0KK+OBqeOBhCzjgZ/jgYvjgZcNCivjgarjgb/jgYvjgo8s44GX44GS44Gv44KLDQor44Gf44GL44GK44GLLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgorjgoXjgYbjgYTjgaHjgo3jgYYNCivjgo/jgZ/jgarjgbks44KI44GeDQor44Gf44GgLOOBvuOBleOBsuOCjQ0KK+OBguOCiuOBvizjgojjgZfjgabjgosNCivjgarjgYzjga4s44Go44GX44Gu44KKDQor44KE44GuLOOBpuOCi+OChuOBjQ0KK+OBhOOBleOBiyzjgobjgY3jgbLjgo0NCivjgYTjgajjgYYs44Go44GP44GE44GhDQor44KE44G+44GW44GNLOOBmeOBv+OBig0KK+OBj+OBrizjgYvjgZrjgYoNCivjgZfjgbAs44GR44KT44GYDQor44GN44KA44KJLOOBguOBjeOCiQ0KK+OBmeOBv+OBoCzjgYvjgZrjgYoNCivjgoLjgajjgYzjgYTjgags44Gy44KN44GL44GaDQor44Gr44KPLOOBl+OBkuOBkw0KK+OBn+OBkeOBhuOBoSzjgobjgYbjgZgNCivjgZ/jgoDjgoks44GL44Ga44KI44GXDQor44G844GG44GfLOOBkeOBhOOBmeOBkQ0KK+OBi+OBqeOChCzjgobjgYbjgZQNCivjga/jgonjgaAs44KI44GX44Gu44G2DQor44G/44Gk44GE44GXLOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgZHjgYTjgZnjgZENCivjgoDjgonjga/jgZcs44G+44GT44GoDQor44Gr44GX44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBvuOBmeOBoCzjgZPjgYbjgZgNCivjgYrjgYrjgZ8s44GP44Gr44GKDQor44G144GP44GELOOBvuOBleOBig0KK+OBi+OBkuOChOOBvizjgZHjgpPjgZgNCivjgarjgYzjgaTjgYss44Gf44Gg44KG44GNDQor44GP44GV44GuLOOBl+OBkuOBig0KK+OBk+OBmOOBvizjgbLjgo3jgobjgY0NCivjgY/jgonjgZ8s44Gf44Gg44GXDQor44Gf44GR44GG44GhLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBkeOBoCzjgYLjgaTjgYoNCivjgZ/jgYvjga4s44KG44Gf44GLDQor44GP44KJ44KELOOBl+OCk+OBhOOBoQ0KK+OBiuOBrizjgaTjgajjgoANCivjgarjgYvjgaAs44GY44KF44KT44Ge44GGDQor44Go44GP44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOBr+OBlyzjgajjgZfjgbXjgb8NCivjgoTjgb7jgaAs44GC44GN44KJDQor44Gv44KT44GgLOOBpuOBpOOBig0KK+OBhOOBl+OBr+OCiSzjgZvjgYTjgZgNCivjgojjgZfjga/jgoks44GV44Go44GXDQor44Gf44Gm44GE44GXLOOBqOOBl+OBsuOBkw0KK+OBhOOBqOOBhizjgZfjgbXjgb8NCivjgZXjgajjgYYs44Gf44GL44GKDQor44GK44GK44GP44KJLOOBl+OCh+OBhuOBmOOCjeOBhg0KK+OBquOBi+OBmeOBmCzjgojjgYbjgYTjgaENCivjgZ/jgYTjgoks44Gy44KN44GXDQor44GN44Gy44KJLOOBr+OCi+OBsuOBkw0KK+OBquOBi+OBmOOBvizjgbLjgafjgaTjga0NCivjgoTjgb7jgZbjgY0s44Go44GN44GKDQor44Go44Gz44GfLOOBguOBjeOCiQ0KK+OBquOBi+OBluOCjyzjga/jgovjgYoNCivjgavjgZfjga/jgoks44GL44Ga44GKDQor44KB44GQ44KNLOOBmOOCheOCk+OBmA0KK+OBvuOCi+OChOOBvizjgZPjgYbjgZ7jgYYNCivjgY3jgY/jgaEs44Gy44GV44Gu44KKDQor44GC44GK44GNLOOCiOOBl+OBvw0KK+OBjeOBo+OBn+OBiyzjgZ/jgb/jgYoNCivjgoTjgZnjgYQs44KG44GN44GTDQor44GE44Gh44G+44KLLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBluOBjSzjgajjgZfjgobjgY0NCivjgZnjgYzjga/jgoks44GY44KF44KT44GE44GhDQor44Go44G/44Gq44GMLOOCiOOBl+OBsuOBkw0KK+OBoeOBjuOCiizjgYjjgYTjgZjjgo3jgYYNCivjgYrjgYrjgbAs44KG44KK44GTDQor44G+44Gk44GELOOBteOBj+OBvw0KK+OBsuOCieOChOOBvizjgb7jgZXjgbLjgo0NCivjgoTjgb7jgoDjgoks44G/44Gk44Gu44G2DQor44GK44GK44GnLOOBvuOBleOBvw0KK+OCiOOBl+OBquOBjCzjgaHjgYvjgYgNCivjgZPjgZjjgb4s44Gf44GR44Gu44KKDQor44Go44G/44Gq44GMLOOBoeOBiOOBkw0KK+OBleOBjCzjgabjgaTjgoQNCivjga/jgoks44KG44GG44GY44KN44GGDQor44Go44G/44KI44GXLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgZ3jga7jgYgNCivjgbLjgonjgbDjgoTjgZcs44Gy44KN44GL44GaDQor44G+44Gk44GpLOOBsuOBp+OBig0KK+OBhOOBvuOBteOBjyzjgobjgYbjgZcNCivjgY3jgojjgZss44GX44KT44KEDQor44Gv44Gq44G244GVLOOBmeOBmeOCgA0KK+OBoeOBsCzjgajjgZfjga7jgooNCivjgoTjgb7jgZbjgY0s44KK44KF44GG44GYDQor44Gq44GL44Gv44KJLOOBkeOCk+OBmA0KK+OBiuOBrizjgZPjgYbjgbjjgYQNCivjgYbjgYjjgb7jgaQs44GL44KI44GTDQor44GC44GN44KE44G+LOOBvuOBleOBguOBjQ0KK+OBqOOBn+OBqyzjgojjgYbjgYTjgaENCivjgojjga3jgaAs44G+44GV44Gy44KNDQor44G144KL44GP44GVLOOBleOBi+OBiA0KK+OBsuOCjeOChCzjga7jgorjgbLjgo0NCivjgojjgZfjgaAs44GX44KT44GV44GPDQor44GL44Gt44GTLOOBl+OBkuOCiw0KK+OBquOBjOOBnyzjgb7jgZXjga/jgosNCivjgYTjgbks44GX44KT44GYDQor44Gb44GN44GtLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgb7jgZXjga/jgosNCivjgYvjgarjgYQs44GL44KT44Gb44GEDQor44GV44Go44GGLOOBsuOBqOOBlw0KK+OBleOBi+OBjeOBsOOCiSzjgojjgZfjgYoNCivjgYTjgb7jgYQs44G/44Gv44KLDQor44Gy44KB44GYLOOBl+OCk+OBnuOBhg0KK+OBiuOBjuOBr+OCiSzjgb7jgZXjgojjgZcNCivjgZ/jgZHjgoDjgoks44Gf44GL44Gu44KKDQor44Go44GK44KE44G+LOOBn+OBi+OBlw0KK+OBjeOBn+OBr+OCiSzjgZ/jgYvjgbLjgZUNCivjgYrjgYrjgZXjgYss44GL44Gk44Gy44GTDQor44GK44GK44GT44GG44GhLOOBi+OBmuOBvuOBlQ0KK+OBn+OBi+OBiizjga7jgorjgZMNCivjgYbjgaks44Go44GX44KN44GGDQor44GG44GuLOOBjeOCk+OBlA0KK+OBteOBmOOBjSzjgbLjgo3jgb8NCivjgZXjgajjgYYs44Go44GX44GKDQor44GE44Gd44GM44GELOOBvuOBleOBvw0KK+OBi+OCieOBleOBjSzjgojjgZfjgYoNCivjgoTjgb7jgaAs44Gf44KC44GkDQor44KP44GgLOOBiOOBpOOBig0KK+OBl+OBsOOBnyzjgajjgZfjgYoNCivjgZfjgYrjgZbjgY0s44Gf44Gk44GKDQor44GX44GMLOOBv+OBpOOBruOBtg0KK+OBj+OCiuOBnyzjgb/jgaHjgYoNCivjga/jgZfjgoLjgags44KI44GX44KN44GGDQor44KI44GX44KA44KJLOOBn+OBi+OBlw0KK+OBv+OChOOBluOBjSzjgbLjgo3jga7jgooNCivjgY3jgZ/jgYzjgo8s44GN44Gv44Gh44KN44GGDQor44GK44Gg44GRLOOBoeOBi+OCiQ0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgoTjgb7jgYTjgZcs44GN44KI44GC44GNDQor44GK44Gc44GNLOOBsuOCjeOBlw0KK+OBn+OBi+OBhCzjgZXjgajjgb8NCivjgYvjga3jgZMs44GR44KT44GYDQor44Gv44KJ44GgLOOBsuOBp+OChuOBjQ0KK+OBl+OBvuOBoCzjgZHjgpPjgZXjgY8NCivjgoTjgarjgY4s44Gf44GR44GKDQor44GZ44Ga44GNLOOBn+OBi+OBsuOBqA0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYoNCivjgYrjgZDjgorjgoTjgb4s44Go44GK44KLDQor44KP44Gf44Gq44G5LOOBruOBtuOChuOBjQ0KK+OChOOBvuOCgOOCiSzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44Gf44Gg44Gy44GnDQor44GX44GK44GY44G+LOOBi+OBiuOCiw0KK+OBpOOCi+OBiuOBiyzjgajjgYrjgosNCivjgYTjgajjgYYs44Go44GX44G/44GhDQor44G+44Gk44GG44KJLOOBm+OBhOOBjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYoNCivjgY/jgb7jgb8s44KG44GG44Ge44GGDQor44GR44KT44KI44GXLOOBn+OBi+OBlw0KK+OChOOBvuOBi+OBkizjgojjgZfjgYLjgY0NCivjgZTjgajjgYYs44Gy44KN44GKDQor44Gf44GR44GG44GhLOOBvuOBleOBqOOBlw0KK+OBr+OChOOBlyzjgYvjgZrjgobjgY0NCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GE44GqLOOCiuOCh+OBhg0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgobjgY0NCivjgavjgZfjgYvjgo8s44Gy44Gn44GKDQor44Gv44KT44GgLOOBjeOCiOOBmA0KK+OBn+OBpuOBsOOChOOBlyzjgYvjgZrjgojjgZcNCivjgYrjgZfjgb4s44GP44Gr44Gy44GTDQor44GX44Gw44GfLOOBr+OCi+OBjQ0KK+OBv+OBhuOCiSzjgYLjgaTjgZcNCivjgZPjgYvjgZQs44GL44Ga44Gu44KKDQor44GE44GE44GgLOOChuOBn+OBiw0KK+OBn+OBkeOBmeOBiCzjgYvjgZrjgb8NCivjgYTjgYzjgonjgZcs44Gm44Gk44KEDQor44G+44GZ44KE44G+LOOCiOOBl+OBig0KK+OBleOBj+OChOOBvizjgYvjgZrjgYoNCivjgZXjgY/jgonjgYQs44GR44KTDQor44Gf44G+44KKLOOBvuOBleOBig0KK+OBhOOBvuOBq+OBlyzjgb/jga7jgosNCivjgYrjgYzjgo8s44G+44GV44Gy44GoDQor44Gv44GO44KP44KJLOOBjeOCiOOBlw0KK+OBiuOBiuOBj+OBqyzjgbLjgafjgbLjgZMNCivjgYTjgZHjgaAs44Gb44GE44GE44GhDQor44G+44GI44GY44G+LOOBguOBjeOCiQ0KK+OBhOOCj+OBhCzjgYvjgaTjgb8NCivjgoTjgb7jgaAs44G+44GV44GNDQor44GZ44GgLOOBvuOBleOBqA0KK+OBqOOBjeOCjyzjgYrjgZXjgoANCivjga/jgoTjgZcs44KG44GG44GE44GhDQor44Gf44GR44KC44GoLOOBi+OBmuOBig0KK+OBi+OCk+OBsOOChOOBlyzjgb7jgZXjgYoNCivjgajjgZbjgo8s44Gk44Go44KADQor44Gf44Gm44GuLOOBl+OCk+OBlA0KK+OBi+OCk+OBuSzjgZHjgYTjgZMNCivjgYrjgY/jgaAs44KI44GX44GoDQor44Gf44KC44GoLOOBqOOBv+OBig0KK+OBquOBjOOBhCzjga7jgbbjgZ/jgYsNCivjgYrjgZbjgo8s44GX44KT44GE44GhDQor44GV44Go44GGLOOChOOBmeOBquOCig0KK+OBk+OCk+OBqSzjgYLjgY3jgYoNCivjga3jgY7jgZcs44Gf44Gg44GXDQor44Gf44Gq44GLLOOBpuOBpOOBig0KK+OBk+OCgOOCjSzjgorjgofjgYbjgYTjgaENCivjgojjgZfjgaAs44Go44KI44G144G/DQor44GE44GE44GY44G+LOOBsuOCjeOBvw0KK+OBq+OBhOOBu+OCiizjgYvjgZrjgYoNCivjgZPjgoLjgorjgoQs44KI44GX44Gf44GLDQor44GX44KT44Gp44GGLOOBsuOBp+OBmuOBvw0KK+OChOOBrizjgojjgYbjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Go44GXDQor44Gv44GO44Gf44GrLOOCjeOBj+OCjeOBhg0KK+OBk+OBmeOBjizjgaDjgYTjgY3jgaENCivjgYTjgbks44Gu44KK44GKDQor44GL44Gq44GW44KPLOOBsuOCjeOBlw0KK+OBn+OBoCzjgZ/jgaDjgbLjgZUNCivjgarjgYzjgZ8s44KK44KF44GG44GZ44GRDQor44GL44G+44GgLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgYrjgYTjgacs44G+44GT44GoDQor44Gf44GL44GP44KJLOOBsuOCjeOBlw0KK+OChOOBmeOBvuOBpCzjgZnjgZnjgoANCivjgb7jgoss44KI44GX44Gy44GVDQor44GP44G844GfLOOBruOBvOOCiw0KK+OBn+OBsOOBnyzjgZHjgYTjgYTjgaENCivjgoLjgorjgZ8s44Gu44KK44GKDQor44GP44Gr44Go44KCLOOBpOOBreOBmA0KK+OBguOBleOBrOOBvizjgbLjgo3jgYvjgZoNCivjgbvjgZfjgaos44KE44GZ44GKDQor44Gu44GW44KPLOOBr+OCi+OBsuOBlQ0KK+OBvuOBpOOCgOOCiSzjgZfjgpPjgYTjgaENCivjgbLjgonjgYvjgZ8s44GL44Ga44GKDQor44Gy44KJ44G+LOOBr+OCi+OBig0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgojjgZPjgYvjgo8s44KP44Gf44KLDQor44GN44GP44GhLOOBguOBpOOBlw0KK+OBj+OCjeOBleOCjyzjgYTjgZXjgoANCivjgZ/jgZHjgYbjgaEs44Gm44Gk44GKDQor44Gy44KJ44GMLOOCiOOBhuOBmA0KK+OBleOBhOOBqOOBhizjga7jgorjgYoNCivjgYbjgaHjgbzjgoos44GT44GG44GE44GhDQor44GE44Gq44KA44KJLOOCiOOBl+OBr+OCiw0KK+OBiuOBleOBoCzjgZ/jgYvjgZcNCivjgZnjgY7jgoTjgb4s44Gf44GL44Go44GXDQor44GE44G+44GaLOOChOOBmeOBn+OBoA0KK+OBhuOCieOBrizjgb7jgZXjgojjgZcNCivjgoLjgaHjgZrjgY0s44GL44Ga44GKDQor44GZ44GM44KPLOOBl+OBkuOCiw0KK+OBhOOBkeOBoCzjgajjgZfjgYoNCivjgZ/jgarjgYss44Gv44KL44GKDQor44GV44GE44Go44GGLOOBn+OBpOOBmA0KK+OBteOBmOOBnyzjgajjgZfjgb/jgaENCivjgb/jgoTjga0s44Gk44Go44KADQor44GL44G+44GgLOOBv+OBruOCiw0KK+OBreOBjuOBlyzjgojjgZfjga7jgooNCivjgYrjgY/jgYzjgo8s44KG44GN44GKDQor44Gv44KE44GXLOOBsuOBleOBlw0KK+OBsOOBsCzjga7jgbbjgbLjgZMNCivjgoTjgb7jgoLjgags44Gk44Go44KADQor44GI44KT44GpLOOBruOBvOOCiw0KK+OBneOCgeOChCzjgYrjgZXjgoANCivjgYLjgonjgYQs44KI44GX44KG44GNDQor44GC44G5LOOBguOBjeOCiQ0KK+OBoeOBsCzjgZ/jgaTjgYoNCivjgZ/jgYvjgoTjgb4s44G/44Gu44KLDQor44KE44G+44GNLOOChuOBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgZfjgZLjgbXjgZUNCivjgZ/jgZHjgbks44Gf44GL44GKDQor44GC44Gg44GhLOOCiOOBl+OBguOBjQ0KK+OBn+OBi+OBl+OBvizjgYLjgY3jgokNCivjgojjgZPjgoTjgb4s44Gu44KK44Gq44GKDQor44GX44KJ44GE44GhLOOBvuOBleOCiw0KK+OBj+OBqeOBhizjgZfjgZLjgYoNCivjgZnjgZrjgY0s44GN44KI44GXDQor44Gf44GL44GX44G+LOOBn+OBi+OBlw0KK+OChOOBvuOBjOOBnyzjgb/jga7jgosNCivjgojjgZfjgaAs44Gf44GP44GKDQor44G/44KE44GL44KPLOOBkeOCk+OBmA0KK+OBleOBleOBjSzjgoDjgaTjgb8NCivjgYTjgafjgYbjgoks44GL44Ga44GTDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYLjgaTjgbLjgZMNCivjgYrjgYrjgaQs44Gf44GR44GXDQor44G144GI44GNLOOBqOOBl+OBi+OBmg0KK+OBl+OCguOBteOBlSzjgYLjgaTjgZcNCivjgb/jgoTjgYvjgo8s44G+44GV44Gf44GLDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOBnuOBiCzjgZPjgYbjgZgNCivjgavjgYTjgY/jgoks44Gu44G244GKDQor44KP44Gf44Gq44G5LOOBqOOBl+OBruOCig0KK+OCgOOCjeOBteOBlyzjgYvjgaoNCivjgYvjgpPjgaAs44GL44Gk44G+44GVDQor44GP44Gp44GGLOOBkeOBhOOBkw0KK+OBn+OBi+OBr+OCiSzjgo/jgZ/jgosNCivjgYrjgYvjgaAs44GR44GE44GYDQor44Gp44GELOOBleOBqOOCiw0KK+OBn+OBquOBuSzjgb7jgoLjgosNCivjgZPjgoDjgo0s44GR44KT44GE44GhDQor44KC44KK44KE44G+LOOBteOBv+OBkw0KK+OBguOCieOBvuOBjSzjga7jgbbjgYoNCivjgZPjgZfjgbks44GL44Ga44KNDQor44GV44GuLOOBruOBtuOBsuOCjQ0KK+OBiuOBi+OBoCzjgojjgZfjgb7jgZUNCivjgbXjgZjjgo/jgoks44GN44KH44GG44GTDQor44G+44Gk44GKLOOBi+OBmuOBvw0KK+OBn+OBquOBiyzjgb/jga3jgYoNCivjgY3jga/jgoks44Gq44GK44GNDQor44Gr44GX44Gv44GfLOOChuOBhg0KK+OBq+OBl+OCj+OBjSzjgojjgZfjgZ/jgYsNCivjgYrjgYvjgZbjgY0s44Gy44KN44GL44GaDQor44G144GY44KP44KJLOOBiuOBleOCgA0KK+OChOOBmeOBoCzjgobjgYvjgZMNCivjgYrjgYss44GN44KH44GGDQor44G744Gd44GuLOOBl+OBkuOBig0KK+OBguOBi+OBlyzjgZ/jgY/jgb4NCivjgarjgYvjgYQs44GT44GG44GE44GhDQor44KE44GZ44GgLOOBjeOBj+OBmA0KK+OBpuOCieOCgOOCiSzjgbXjgb/jgZ/jgYsNCivjgY/jgbzjgZ8s44KI44GX44KG44GNDQor44GT44Gr44GXLOOBl+OBkuOBvw0KK+OBruOCgOOCiSzjgYLjgY3jgokNCivjgYTjga7jgZss44GP44Gr44GTDQor44KP44Gf44Gq44G5LOOChOOBmeOBsuOBkw0KK+OBq+OBl+OBiizjgYvjgZrjgbLjgZUNCivjgoLjgb/jgY0s44GT44GZ44GRDQor44GZ44Gq44GgLOOBsuOCjeOBn+OBiw0KK+OBn+OBkeOBhuOBoSzjgZXjgaHjgZMNCivjgYLjgY3jgZss44Gy44KN44GXDQor44GX44GK44GfLOOCiOOBl+OBsuOBkw0KK+OBjeOBqSzjgojjgZfjgYLjgY0NCivjgYTjgZfjgo/jgZ/jgoos44Go44GX44GKDQor44GX44KJ44GM44G/LOOBn+OBi+OBsuOCjQ0KK+OBhuOBoeOBquOBjCzjgbLjgafjgoQNCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44GP44KN44GV44GNLOOBpuOBpOOBig0KK+OBiuOBqOOBlyzjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44G+44GV44GKDQor44GZ44Ga44GNLOOBvuOBleOChuOBjQ0KK+OBsuOCjeOBnyzjgZXjgYTjgZgNCivjgoTjga7jgYvjgo8s44GY44KF44KT44GE44GhDQor44GV44GL44KC44GoLOOBvuOCguOCiw0KK+OBk+OCgOOCjSzjgb7jgZXjgagNCivjgYTjgb7jgZ8s44KI44GG44GE44GhDQor44G744Gd44KELOOBi+OBmuOBn+OBiw0KK+OBpuOCieOBleOBiyzjgb7jgZXjgobjgY0NCivjgbvjgpPjgb4s44GL44Ga44GIDQor44GL44GZ44GMLOOBsuOCjeOBl+OBkg0KK+OBvuOBpOOBoOOBhOOCiSzjgYjjgYTjgZgNCivjgYvjgo/jgYvjgb8s44GX44KF44GG44GYDQor44Gt44GU44KNLOOBl+OCk+OBmA0KK+OBteOBj+OBoCzjgYjjgYTjgZ7jgYYNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44Go44G+44GkLOOCiOOBl+OBmA0KK+OBhOOBrizjgZ/jgaTjgo3jgYYNCivjgZnjgZrjgY0s44GY44KF44KT44GYDQor44GC44GV44GELOOBi+OBmuOBig0KK+OBr+OCiSzjgZ/jgYvjga7jgooNCivjgbvjgZcs44GP44Gr44GL44GkDQor44Gq44KL44GL44KPLOOBi+OBmuOBruOCig0KK+OBiuOBoCzjgZ/jgYvjgYLjgY0NCivjgYrjgbDjgaos44GX44GS44KE44GZDQor44Gf44Gr44GW44KPLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOBiuOBiyzjgZ/jgYvjgZcNCivjgZTjgajjgYYs44Gf44GL44GYDQor44GT44KM44Gq44GMLOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgaDjgYTjgZnjgZENCivjgZ/jgYvjgoks44G/44Gk44Gv44KLDQor44GK44GK44GP44KPLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgbLjgafjgYvjgZoNCivjgZXjgajjgYYs44Gu44KK44GKDQor44GX44G+44Gs44GNLOOBkeOCkw0KK+OBneOBrSzjgbLjgo3jgZcNCivjgZ/jgarjgYss44GL44Ga44GKDQor44G144GY44KA44KJLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgZfjgpPjgZgNCivjga/jgZfjgoLjgags44KE44GZ44Gf44GLDQor44Gy44KL44G+LOOBguOBjeOCiQ0KK+OBu+OBl+OBsCzjgbLjgafjgogNCivjgYvjgoHjgo/jgoos44Gy44KN44G/DQor44GK44GP44GELOOBsuOCjeOBlw0KK+OBsuOBleOCguOBqCzjgYrjgZXjgoANCivjgZnjgZrjgY0s44GN44KI44GXDQor44Gy44KJ44GV44KPLOOCiOOBl+OBn+OBiw0KK+OBjeOBn+OBpyzjga7jgorjgYLjgY0NCivjgbXjgY/jgaAs44GL44Ga44Gy44GVDQor44GX44GK44GW44GNLOOBkeOBhOOBmA0KK+OCgOOBqOOBhizjgobjgZ/jgYsNCivjgavjgZfjgYrjgYss44GV44G244KN44GGDQor44Gk44G844GuLOOBsuOCjeOBsuOBlQ0KK+OBquOBpOOBhuOCgSzjgajjgZfjgb7jgZUNCivjgZ/jgavjgYzjgY0s44Gy44KN44GC44GNDQor44GK44GK44GZ44GMLOOBi+OBmuOBig0KK+OBhuOBoeOBoCzjgbLjgafjgYoNCivjgYvjgajjgYYs44GI44GE44GYDQor44GV44GV44GNLOOBsuOBp+OBig0KK+OBi+OBl+OBvizjga7jgorjgYoNCivjgYLjgYvjgZXjgYss44GL44Ga44GKDQor44GL44KP44GL44G/LOOCiOOBhuOBhOOBoQ0KK+OBl+OBqSzjgZ/jgaTjgoQNCivjgoTjgb7jgYbjgaEs44KI44GX44Gy44GnDQor44GL44GuLOOChuOBn+OBiw0KK+OBr+OCiSzjgYTjgY/jgYoNCivjgb7jgaTjgbDjgoks44GR44KT44GYDQor44Gm44KJ44GL44GpLOOBi+OBmuOBsuOCjQ0KK+OBl+OBiuOBnyzjgojjgZfjga7jgooNCivjgYrjgYvjgaAs44Gy44Go44GXDQor44GP44KN44GgLOOCiuOCh+OBhg0KK+OCguOCiuOCguOBqCzjgbXjgZjjgYoNCivjgZvjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBn+OBkeOBj+OBlSzjgbLjgo3jgZcNCivjgZ/jgYzjgZfjgoks44Gu44G244GKDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBleOBiOOBjSzjgZHjgYTjgZgNCivjgZ/jgaTjgZbjgo8s44GN44G/44GC44GNDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBteOCi+OBi+OCjyzjgY3jgojjgZcNCivjgZ/jgoDjgoks44G144G/44GoDQor44Gk44KK44KELOOBvuOBoeOBig0KK+OBleOBi+OBkOOBoSzjgbXjgb/jgajjgZcNCivjgbXjgY/jgZfjgb4s44KI44GG44GE44GhDQor44GK44GK44GL44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgZfjgoXjgpPjgZnjgZENCivjgYvjgo/jgZDjgaEs44GL44Gk44Gu44KKDQor44Go44GN44GK44GLLOOBpuOCi+OBig0KK+OBquOBi+OBrizjgajjgb/jgYoNCivjgYTjga7jgYbjgYgs44G+44GV44KG44GNDQor44GP44Gr44Go44GXLOOBn+OBj+OCjeOBhg0KK+OBleOBi+OBnyzjgZPjgYbjgYTjgaENCivjgoLjgorjgYvjgo8s44Gk44Gt44GKDQor44Gu44GQ44GhLOOBsuOCjeOBlw0KK+OBj+OBvOOBnyzjgoDjgaTjgb8NCivjgarjgYvjgYrjgYss44Gf44Gk44GKDQor44Gu44G144GYLOOBkeOBhOOBmA0KK+OCguOBjOOCiizjgYjjgYTjgZgNCivjgb7jgYjjgZbjgY0s44GE44GV44GKDQor44GK44GK44Gk44GLLOOBl+OBkuOCiOOBlw0KK+OBv+OBmuOBnyzjgZHjgpPjga7jgZnjgZENCivjgZnjgY7jgoTjgb4s44KI44GX44Gy44GVDQor44GL44GM44KPLOOCiOOBl+OBn+OBiw0KK+OBq+OBl+OBr+OCiSzjgojjgZfjgbXjgb8NCivjgabjgZrjgYss44GX44KT44GE44GhDQor44GX44GK44G/LOOBv+OBpOOBig0KK+OBiuOBiuOBr+OCiSzjgZ/jgaDjgYLjgY0NCivjgYLjgZXjgY/jgoks44GC44GN44Gy44KNDQor44GX44G+44GgLOOBpuOBpOOChA0KK+OBl+OBvuOBi+OCjyzjgZnjgZnjgoANCivjga/jgZfjgoLjgags44Gy44Go44GXDQor44GG44GaLOOBl+OBmuOBig0KK+OBn+OBi+OBj+OCjyzjgb7jgZXjga7jgbYNCivjgb/jgaHjgZ8s44GX44KF44KT44GE44GhDQor44GG44GI44GgLOOBhuOBhOOCig0KK+OBl+OBjCzjgZ/jgYvjgaTjgZANCivjgYTjgZHjgb8s44G/44Gk44GQDQor44KC44KKLOOBvuOBleOBguOBjQ0KK+OBi+OBl+OCguOBqCzjgb7jgZnjgb8NCivjgYTjgZfjga/jgoks44Gh44GI44GTDQor44GL44Gt44GTLOOBoeOBiOOBkw0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgoLjgajjgYQs44G+44GV44GKDQor44GT44Gf44GRLOOBv+OBoeOBig0KK+OBi+OBleOBhCzjgZnjgYjjgZMNCivjgYvjgajjgYYs44Gu44KK44GTDQor44GT44GP44G8LOOBkeOBhOOBkw0KK+OCj+OBi+OChOOBvizjgZfjgZLjgoQNCivjgZXjgarjgaAs44G+44GV44Gy44GTDQor44GV44GL44GfLOOBqOOBv+OCiOOBlw0KK+OBruOCgOOCiSzjgb/jgaTjgYoNCivjga/jgoTjgYvjgo8s44GL44Ga44G/DQor44G/44KE44GW44GNLOOBl+OBkuOBig0KK+OBiuOBq+OBpOOBiyzjgZHjgpPjgZgNCivjgYTjgacs44GK44GV44KADQor44Gq44GM44GV44GTLOOBn+OBi+OBruOCig0KK+OBhOOBqOOBhizjgb/jgaHjgZ/jgYsNCivjgYvjga3jgZ/jgZEs44Gm44KL44GC44GNDQor44GP44G844GfLOOBjeOCiOOChuOBjQ0KK+OBguOCiuOBvizjgZHjgYTjgZMNCivjgo/jgYvjgYos44Gy44KN44GXDQor44GE44GX44GW44GLLOOBn+OBi+OChuOBjQ0KK+OBiuOBnyzjgZzjgpPjga/jgaHjgo3jgYYNCivjgZXjgYvjgoLjgags44GR44GE44GUDQor44GK44GK44G744KKLOOChuOBjeOBig0KK+OBl+OCk+OBn+OBqyzjgajjgZfjgYLjgY0NCivjgYbjgaHjgoTjgb4s44Gf44GL44GXDQor44Gy44KJ44GfLOOBv+OBquOBkw0KK+OBguOCiuOBnuOBrizjgZXjgajjgZMNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GC44GK44KE44GOLOOBvuOBleOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgZXjgaDjgYoNCivjgYTjgYTjgaAs44G/44Gh44GKDQor44Gq44GX44GNLOOBi+OBiuOCiw0KK+OCgOOCieOBmyzjgYvjgZrjgYoNCivjgb7jgaTjgYos44GR44GE44GUDQor44GV44Go44GGLOOBl+OCjeOBhg0KK+OBguOBleOBrOOBvizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbXjgZ/jgb8s44KE44GZ44G+44GVDQor44G144Gq44GoLOOBj+OBq+OBvw0KK+OBteOBmOOBnyzjgobjgb/jgZMNCivjgbXjgovjgYvjgo8s44Gf44GR44GKDQor44G144Gq44Gv44GXLOOBsuOBleOChA0KK+OBtuOBqOOBhizjgbLjgo3jgobjgY0NCivjgYvjga7jgYYs44GL44Gk44Gy44KNDQor44GK44GN44GkLOOBsuOCjeOBn+OBiw0KK+OBn+OBi+OBjuOCjyzjgYTjgZXjgoANCivjgbvjgZfjga4s44Gh44GI44GTDQor44Gr44GX44GY44G+LOOBj+OBq+OBsuOCjQ0KK+OBi+OBvuOBnyzjgaHjgYLjgY0NCivjgaTjgZjjgoLjgags44Go44GX44GE44GhDQor44Gv44Gq44GgLOOBl+OCk+OBmA0KK+OBsuOCjeOBmyzjgb7jgZXjgYoNCivjgavjgZfjgaAs44Gy44Go44GXDQor44GG44GI44GNLOOBqOOBl+OBi+OBmg0KK+OCiOOBl+OBrizjgY3jgojjgYoNCivjgY3jgZ/jgoDjgoks44Gb44GE44GE44GhDQor44GX44G/44GaLOOBv+OBoeOBkw0KK+OBhOOBl+OBluOBjSzjgbLjgZXjgZcNCivjga/jgoTjgZcs44G/44Gk44Gu44G2DQor44GN44GP44GhLOOBsuOBp+OBteOBvw0KK+OBiuOBi+OBqSzjgaTjgZDjgYoNCivjgZPjgoDjgoks44GX44GS44KLDQor44Gv44GX44KC44GoLOOBpOOBqOOCgA0KK+OBquOBi+OBpOOBiyzjgZ/jgZHjgZcNCivjgYrjgYrjgYTjgZcs44G+44GZ44KI44GXDQor44GP44KN44GgLOOBvuOBleOCiOOBlw0KK+OBquOBi+OBhCzjgb7jgZXjgb8NCivjgY3jgZ/jgZbjgo8s44Gu44KK44GC44GNDQor44GN44GX44GgLOOBl+OBkuOCiw0KK+OBi+OBquOBvuOCiyzjgb7jgZPjgagNCivjgYLjgonjgYQs44GX44Ga44GKDQor44G144Gf44Gk44GOLOOBr+OCi+OBig0KK+OBjeOBj+OBoSzjgajjgZfjgYoNCivjgYTjgYTjgaAs44KE44GZ44GXDQor44Gq44GL44GILOOBguOBjeOBig0KK+OBsuOCieOBvuOBpCzjgb/jga7jgosNCivjgavjgZfjgYrjgYss44GY44KF44KT44Ge44GGDQor44GV44Go44GGLOOBkeOBhOOBjQ0KK+OCguOCiizjga/jgovjgYoNCivjgbvjgZfjga4s44GE44GV44GKDQor44KE44G+44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBhuOBmeOBhCzjgojjgYbjgYTjgaENCivjgb7jgaTjgbDjgoks44GI44GE44GE44GhDQor44GC44KK44GV44GLLOOBvuOBleOBjQ0KK+OBq+OBl+OBiizjgYjjgYTjgZgNCivjgY3jgaAs44Gm44Gk44GKDQor44KE44GuLOOChuOBhuOBhOOBoQ0KK+OBi+OBqOOBhizjgZHjgpPjgZ8NCivjgo/jgZ/jgarjgbks44Gh44Gy44KNDQor44Gv44KE44GXLOOChOOBmeOBig0KK+OCj+OBn+OBuSzjgojjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44G+44GV44GKDQor44KG44GQ44GhLOOBsuOCjeOBkw0KK+OChOOBvuOCguOBqCzjgbLjgZXjgZcNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44GL44GE44GaLOOBkeOCk+OBhOOBoQ0KK+OBu+OBl+OBrizjgbLjgafjgYoNCivjgZfjga7jga/jgoks44Gu44G244Gy44KNDQor44GK44GK44Gs44G+LOOBvuOCguOCiw0KK+OBv+OCjyzjgZ/jgZHjgZcNCivjgbvjgorjgoDjgY0s44KI44GX44G+DQor44GE44GX44Gf44GmLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBv+OBteOBrSzjgY3jgojjgZcNCivjgoLjgb/jgY0s44G+44GT44GoDQor44Gv44Gb44GM44KPLOOBpuOCi+OBig0KK+OBmeOBjuOChOOBvizjgZfjgoXjgpPjgZgNCivjgaTjgY/jgaAs44Gf44Gg44GXDQor44GC44Gg44GhLOOBteOBv+OBruOCig0KK+OBp+OBluOCjyzjgZ/jgaDjgojjgZcNCivjgYrjgZ8s44GN44KI44GXDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBm+OBjeOBkOOBoSzjgb/jgaTjga7jgooNCivjgZPjgY/jgbbjgpMs44KI44GX44GNDQor44G744GX44GqLOOChuOBjeOBteOBvw0KK+OBhuOCieOBrizjgZPjgYbjgYTjgaENCivjgZ/jgZHjgoDjgoks44KE44GZ44Gy44KNDQor44Go44GP44Gq44GMLOOBsuOBqOOBlw0KK+OBj+OCiuOBr+OCiSzjgbLjgafjgagNCivjgYrjgY/jgoDjgoks44GY44KF44KT44GE44GhDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBvuOBpOOBl+OBnyzjgZHjgYTjgZ7jgYYNCivjgZ/jgZHjgaAs44G/44Gh44GTDQor44Gr44GX44GNLOOCguOBqOOCiOOBlw0KK+OBhuOCgeOBoCzjgZXjgYvjgYgNCivjgbvjgpPjgaAs44GE44GP44GKDQor44GL44KCLOOBi+OBmuOBhuOBvw0KK+OBhuOBl+OBoCzjgaTjgojjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44Gk44GQDQor44Gv44GZ44GgLOOBvuOBmeOBig0KK+OBv+OBi+OCjyzjgojjgYbjgZMNCivjgYbjgaHjgaAs44GP44Gr44Gy44GTDQor44Gr44GX44GW44GNLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhOOBjOOCieOBlyzjgZfjgofjgYbjgZgNCivjgo/jgZ/jgarjgbks44GC44GV44GTDQor44GX44G+44KA44KJLOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjga7jgorjgZMNCivjgYvjgo/jgbks44GX44KH44GG44GTDQor44GV44GL44KC44GoLOOCiOOBhuOBmA0KK+OCguOCiuOBl+OBnyzjgoLjgajjgojjgZcNCivjgZnjgYzjga/jgoks44KK44KH44GGDQor44Go44G/44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBteOBj+OBoCzjgaTjgojjgZcNCivjgYrjgajjgZbjgY0s44GC44Gk44Gy44GTDQor44G144GY44KC44KKLOOBn+OBi+OBig0KK+OBk+OCguOCiizjgY3jgojjgobjgY0NCivjgbXjgY/jgarjgYws44G+44GV44GC44GNDQor44G/44KE44Gv44KJLOOBi+OBpOOBruOCig0KK+OBmOOCk+OBrizjgb/jgaTjgYoNCivjgY3jgoDjgoks44GI44GE44GTDQor44GE44Gq44GM44GNLOOChuOBjeOBkw0KK+OCguOCiizjga7jgorjgYoNCivjgo/jgZ/jgarjgbks44GL44Gk44Gu44KKDQor44Gk44GY44KC44GoLOOBguOBjeOBig0KK+OCguOCk+OBnOOCkyzjgbLjgo3jgobjgY0NCivjgarjgoDjgoksDQor44KE44G+44KC44GoLOOBiOOCiuOBkw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgY0NCivjgYLjgonjgYQs44KE44GZ44Gu44KKDQor44G144GY44GELOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgabjgaQNCivjga/jgZvjgYzjgo8s44Go44KI44GL44GaDQor44GX44GS44KE44GZLOOBiOOBhOOBhOOBoQ0KK+OChOOBvuOBruOBhCzjgZ/jgY/jgb4NCivjgZPjgbDjgoTjgZcs44G+44GV44KLDQor44Gq44GM44GELOOCiOOBl+OBguOBjQ0KK+OBleOCjyzjga7jgbbjgYoNCivjgb7jgaTjgojjgZcs44G/44Gh44GKDQor44GV44GE44Go44GGLOOBi+OBiuOCiw0KK+OBi+OBruOBhizjgbLjgo3jgYLjgY0NCivjgYbjgZfjgZTjgoEs44KE44GZ44GKDQor44GE44GX44GELOOBk+OBhuOBmA0KK+OBhuOBmeOBjSzjgYTjgZrjgosNCivjgZnjganjgYYs44KI44GX44GKDQor44GL44GY44KE44G+LOOBn+OBi+OBjeOBvw0KK+OBiuOBiuOBsCzjgbLjgafjgY0NCivjgZnjgo8s44G144G/44GKDQor44GE44KP44GfLOOChOOBmeOBqA0KK+OBqOOBhizjga/jgZjjgoENCivjgYrjgYTjgYvjgo8s44Gy44Go44GXDQor44Gy44KJ44GELOOBiOOBhOOBkw0KK+OBn+OBi+OBl+OBvizjgajjgZfjgYoNCivjgbXjgb/jga4s44Gy44KN44GXDQor44GK44GL44GW44GNLOOBruOCiuOBig0KK+OBl+OCieOBjSzjgb7jgZXjgaTjga0NCivjgZ/jgZHjgoLjgags44KG44GG44GYDQor44G+44Gk44KC44GoLOOBruOCiuOBsuOBkw0KK+OBvuOBpOOBsOOCiSzjgbLjgo3jgZcNCivjgYjjgbPjga/jgoks44GT44GG44GYDQor44G144GY44GuLOOChOOBmeOBig0KK+OBteOBi+OChCzjgb7jgZXjgbLjgo0NCivjgbvjgZfjga4s44Gf44GL44GXDQor44GL44Gf44KE44G+LOOBleOBoeOBkw0KK+OBguOCieOBi+OCjyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga4s44GL44Ga44GKDQor44GP44KN44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZMNCivjgZPjgZbjgYQs44G/44Gk44KLDQor44GG44GI44KE44G+LOOBjeOCiOOBlw0KK+OBr+OBo+OBqOOCiizjgajjgZfjgY0NCivjgavjgZfjgoDjgoks44Go44GX44Gf44GLDQor44G144KL44GL44KPLOOBn+OBi+OBig0KK+OChOOBl+OBjSzjgZfjgZLjgY0NCivjgbvjganjgoTjgb4s44Gy44Gn44GKDQor44GI44Go44GGLOOBqOOCguOBsuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgZvjgY3jgZDjgaEs44GE44GV44KADQor44Gf44Gq44G5LOOBsuOBp+OBqOOBlw0KK+OBn+OBkeOBoCzjgajjgZfjgobjgY0NCivjgZfjgpPjgZ/jgass44GL44Gf44GXDQor44GP44G844GfLOOBjeOCiOOBlw0KK+OBmeOBjuOBiuOBiyzjgZXjgajjgb8NCivjgoTjgb7jgZbjgY0s44GV44Gg44Gu44KKDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBhuOBiOOBrizjgajjgZfjgZ/jgZENCivjgZfjgb7jgoLjgags44GT44GZ44GRDQor44GN44Gf44GuLOOBvuOBleOBvw0KK+OBhOOBhOOBmuOBiyzjgorjgofjgYbjgZMNCivjgYTjgZrjgb8s44GN44KH44GG44GYDQor44Gv44KJ44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBoeOBguOBhCzjgZXjgajjgZcNCivjgoTjgb7jgYbjgaEs44GC44GN44Gy44KNDQor44GI44GQ44GhLOOBsuOBp+OBpOOBrQ0KK+OBr+OBjuOCj+OCiSzjgZ/jgZHjgZcNCivjgZ/jgYvjgY4s44Gf44GR44Gu44KKDQor44GK44GP44KC44GoLOOBvuOBquOBtg0KK+OBvuOBpOOBluOBjSzjgorjgofjgYbjgYTjgaENCivjgYTjgaHjgoDjgoks44KG44KK44GTDQor44G/44KE44GV44GLLOOBqOOCguOBkw0KK+OBv+OChOOBnyzjgZvjgYTjgYTjgaENCivjgarjgYzjgYos44GX44KH44GG44GN44GhDQor44GE44KP44GKLOOBvuOBleOBlw0KK+OBteOBi+OBluOCjyzjgZfjgZLjgosNCivjgZ/jgoDjgoks44G+44GV44GKDQor44GN44KK44KF44GGLOOBn+OBoOOBig0KK+OBvuOBpOOBluOBjSzjgojjgZfjgYoNCivjgYvjgajjgYYs44Gm44KL44G/44GkDQor44G/44GfLOOBquOBiuOBqA0KK+OBhOOBl+OBhCzjgYTjgZXjgoANCivjgYrjgYvjgoLjgags44Gm44Gk44GKDQor44GG44GI44GK44GLLOOBruOBtuOBig0KK+OBjeOCh+OBhuOBrizjgb7jgZXjgagNCivjgYvjga3jgZMs44KG44GG44Ge44GGDQor44GV44GP44KJ44GELOOBjeOCh+OBhuOBkw0KK+OCj+OBi+OBsOOChOOBlyzjgajjgZfjgbLjgacNCivjgo/jgZ/jgarjgbks44KI44GX44Gy44KNDQor44GC44GV44GELOOBq+OBmeOBkQ0KK+OBi+OBqeOBrizjgobjgYbjgZgNCivjgoTjgb7jgZbjgY0s44Go44KI44Gy44KNDQor44GC44KP44GuLOOBqOOBl+OChuOBjQ0KK+OBiuOBjOOCjyzjgZ/jgYvjga7jgooNCivjgZzjgpPjgZEs44Go44GX44GKDQor44G144GP44KC44GoLOOBqOOCguOBsuOBkw0KK+OBiuOBqSzjgYvjgZrjga7jgooNCivjgoLjgorjgoLjgags44Gf44GL44GKDQor44Go44GG44G844GGLOOBi+OBmuOBvw0KK+OBi+OBn+OChOOBvizjgb7jgZXjgZcNCivjgarjgYzjgb7jgaQs44Gf44GL44GC44GNDQor44KP44Gf44G5LOOCiOOBl+OBvw0KK+OBhOOBl+OBjSzjgobjgYYNCivjgYTjgarjgYzjgo8s44KG44GG44GTDQor44Gq44GL44GuLOOBn+OBi+OBr+OCiw0KK+OBq+OBl+OChOOBvizjgoTjgZnjgojjgZcNCivjgZfjgoLjgaAs44G/44KI44GTDQor44GX44GS44GfLOOBn+OBi+OBig0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZfjgZINCivjgYvjgZ/jgoTjgb4s44KG44GGDQor44Gd44GuLOOBi+OBpOOBvw0KK+OBhOOBm+OBjSzjgobjgY3jgYoNCivjgYTjgajjgYYs44KI44GX44GL44GaDQor44Gb44GN44GtLOOBvuOBleOBig0KK+OCgOOCieOChOOBvizjgbXjgZjjgYoNCivjgb7jgovjgoTjgb4s44GR44GE44GYDQor44GP44KN44GV44KPLOOCiOOBl+OBteOBvw0KK+OBmeOBvyzjgajjgYrjgosNCivjga7jgZDjgaEs44KG44GG44GYDQor44GV44Go44GG44G/LOOBsuOBp+OBjQ0KK+OBiuOBiuOBi+OCjyzjgaTjgZDjgbLjgagNCivjgarjgYvjga4s44Gy44Gn44Gu44KKDQor44GK44GK44GE44GXLOOBmA0KK+OBr+OBtizjgYLjgY3jgokNCivjgYbjgaHjgaAs44Gu44KK44G+44GVDQor44G/44GNLOOBteOBv+OBruOBtg0KK+OBmeOBmuOBjSzjgaTjga3jgobjgY0NCivjgYvjgZXjga/jgoks44GE44Ga44G/DQor44GK44GK44GP44G8LOOBi+OBmuOBr+OCiw0KK+OBi+OBn+OBi+OBvyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44Gy44GTDQor44GE44GX44GL44KPLOOBi+OBmuOChA0KK+OBn+OBi+OBqOOCiizjgZ/jgYvjgYoNCivjgZ/jgavjgZDjgaEs44GX44KT44GYDQor44Gb44GNLOOChuOBjeOBvuOBlQ0KK+OBj+OBvOOBnyzjgb7jgZXjgagNCivjgYLjgbnjgYvjgo8s44KA44Gk44GKDQor44G144GY44G+44GNLOOBn+OBkeOBlw0KK+OBi+OBn+OChOOBvizjgb7jgZXjgobjgY0NCivjgZPjgoTjgb4s44GR44KT44GYDQor44Gv44GX44KC44GoLOOBguOBkeOBvw0KK+OBmeOBvyzjgb/jgaHjgYoNCivjgavjgZfjgYvjgo8s44Gy44KN44GXDQor44GV44KP44G+LOOBguOChOOBkw0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZMNCivjgarjgYvjgZ8s44KE44GZ44G+44GVDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBleOBleOBjSzjgb7jgooNCivjgYLjgZXjga/jgoks44G/44Gk44Gy44KNDQor44Gr44Gj44GfLOOBteOBv+OBkw0KK+OBoOOCkyzjgovjgorjgZMNCivjgZnjgY7jgZ8s44Gm44Gk44GXDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBiuOBteOBoSzjgb/jgY0NCivjgZPjgbDjgoTjgZcs44G/44KP44GTDQor44G/44KI44GXLOOBk+OBhuOBjeOBoQ0KK+OBhOOBl+OBoCzjgbLjgafjgbLjgZMNCivjgYrjgavjgY0s44Gu44G844KLDQor44GP44KK44Gv44KJLOOBn+OBv+OBig0KK+OBl+OCieOBhCzjgaTjgYvjgZUNCivjgZXjgYvjgavjgZcs44GR44KT44GE44GhDQor44GK44GgLOOBsuOBleOBlw0KK+OBi+OBvuOBmSzjgZHjgpPjgZ7jgYYNCivjgarjgYvjgYzjgo8s44G+44GV44KI44GXDQor44GL44GX44KC44GoLOOBjeOCh+OBhuOBhOOBoQ0KK+OBsOOCk+OBqeOBhizjgobjgZrjgosNCivjgbXjgZ/jgb8s44G+44GV44GXDQor44KE44G+44GX44GfLOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgobjgYbjgZgNCivjgYvjgZLjgoTjgb4s44G/44Gu44KLDQor44GC44GZ44G+LOOBruOBtuOBig0KK+OBl+OCguOCgOOCiSzjgobjgYbjgYTjgaENCivjgoTjgb7jgZDjgaEs44Gf44Gg44GXDQor44KE44G+44GoLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgb7jgaTjgaDjgYTjgoks44GL44Ga44KEDQor44G+44Gk44KA44KJLOOBqOOBl+OBv+OBoQ0KK+OBk+OCk+OBrizjgojjgZfjgoQNCivjgYrjgYrjga/jgZcs44KE44GV44G244KN44GGDQor44GN44GP44GfLOOBl+OBkuOBjQ0KK+OCiOOBl+OBiuOBiyzjgbLjgo3jgZcNCivjgZXjga4s44KI44GX44GKDQor44Gf44Gq44GLLOOChuOBjeOBruOCig0KK+OBleOBleOBjSzjgZnjgZnjgoANCivjgYvjgo/jgZDjgaEs44GC44Gk44GXDQor44KE44G+44GX44GfLOOBn+OBpOOBig0KK+OBn+OBkeOCgOOCiSzjgbXjgb/jgYoNCivjgbXjgY/jgaEs44GL44Ga44GIDQor44G+44Gq44GLLOOBqOOBv+OBiA0KK+OBguOCieOBjSzjgZ/jgYvjga7jgbYNCivjgbLjgonjga4s44KI44GX44GL44GaDQor44Gq44GL44KA44KJLOOBpOOBqOOCgA0KK+OBr+OBl+OCguOBqCzjgajjgZfjgYvjgaQNCivjgYvjgajjgYYs44GE44GP44GTDQor44Gv44G+44GL44KPLOOBj+OBq+OBig0KK+OBr+OChOOBlyzjgZHjgYTjgZMNCivjgYTjgajjgYYs44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBhOOBoeOCjeOBhg0KK+OBn+OBkeOBhuOBoSzjgYvjgZrjgbLjgZMNCivjgavjgZcs44GT44GG44GE44GhDQor44GE44KP44G744KKLOOBqOOBl+OBvuOBlQ0KK+OBhOOBvuOBhCzjgY/jgb/jgZMNCivjgoLjgorjga4s44Gf44GL44GXDQor44Gr44GX44Gv44KJLOOBkeOBhA0KK+OBjeOCiuOChCzjgbLjgZXjgagNCivjgZXjgajjgYYs44Go44KI44GTDQor44G744Gd44GgLOOBsuOBleOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgZcNCivjgarjgYvjgZjjgb4s44GX44GS44KLDQor44KE44GZ44Gv44KJLOOBquOCi+OChuOBjQ0KK+OBj+OCjeOBhOOCjyzjgZ/jgYvjgZcNCivjgYvjgoIs44Gy44KN44GXDQor44GC44GL44G+44GkLOOBj+OBq+OBguOBjQ0KK+OBjeOBn+OCgOOCiSzjgb7jgobjgb8NCivjgavjgZfjgaAs44KG44GN44GTDQor44GK44GL44GgLOOBl+OCk+OBhOOBoQ0KK+OBleOBleOBjSzjgajjgZfjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44GX44G/44GaLOOBhOOBleOCgA0KK+OBiOOCk+OBqSzjgZfjgpPjgZnjgZENCivjgYbjgaDjgYzjgo8s44Gm44KL44GKDQor44GX44G/44GaLOOBruOCiuOBteOBvw0KK+OBguOBiuOChOOBjizjgZvjgYTjgZ7jgYYNCivjga/jgZfjgoLjgags44GL44Ga44GKDQor44Gf44GR44GG44GhLOOBsuOBp+OBguOBpA0KK+OBguOCieOBhCzjgoTjgZnjgZcNCivjgYTjgZfjgZjjgb4s44GE44GV44GKDQor44GT44GM44GtLOOBsuOBp+OBig0KK+OBleOCj+OBl+OBvizjgZfjgpPjgYTjgaENCivjgZ/jgYvjgoTjgarjgY4s44G/44Gu44KLDQor44G+44GV44GgLOOBsuOCjeOBv+OBoQ0KK+OBl+OBv+OBmizjgYLjgY3jgbLjgacNCivjgYrjga7jgafjgoks44Gf44GL44GKDQor44Gf44Gq44GLLOOBv+OBpOOCiw0KK+OBruOCgOOCiSzjga7jgbbjgYoNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44GgLOOBqOOBl+OBmeOBkQ0KK+OBleOBn+OBkSzjgZfjgpPjgZgNCivjgZXjgYTjgajjgYYs44G+44KC44KLDQor44G/44KE44GOLOOBsuOCjeOBlw0KK+OBn+OBi+OBl+OBvizjgZHjgYTjgZgNCivjgYvjgbDjgoQs44Gy44KN44G144G/DQor44GE44GX44GW44GNLOOBl+OCk+OBhOOBoQ0KK+OBi+OBjOOChCzjgojjgYbjgYTjgaENCivjgZPjgZ/jgass44Gf44GP44KC44KKDQor44GT44GZ44GgLOOChOOBmeOBguOBjQ0KK+OBhOOBmOOCiizjgobjgZ/jgYsNCivjgb7jgovjgoTjgb4s44Gf44G/44KEDQor44GL44Gq44GELOOCiOOBl+OBig0KK+OChOOBjizjgb/jgaTjgZANCivjgbXjgZjjga4s44GV44Go44GXDQor44GT44Gn44KJLOOBvuOBleOBqA0KK+OBmeOBjuOBiizjgb7jgZXjgobjgY0NCivjgZnjgYzjga/jgoks44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBv+OBpOOChOOBmQ0KK+OBiuOBiyzjga/jgovjgoTjgZkNCivjgYTjgZfjgb7jgoss44GK44GV44KADQor44G/44KE44GW44GNLOOBk+OBhuOBnuOBhg0KK+OBr+OBvuOBrizjgb/jgaHjgYoNCivjgZPjgZ/jgZjjgb4s44KI44GX44Gu44KKDQor44Gf44GL44GX44G+LOOBguOBkeOBteOBvw0KK+OBpOOBi+OBoCzjgZvjgYTjgYTjgaENCivjgarjgYvjgoDjgoks44GL44Gk44G144G/DQor44Gf44GR44GgLOOBvuOBleOBruOCig0KK+OChOOBmeOCgOOCjSzjga/jgovjgbLjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44G144GY44GX44G+LOOBl+OBkuOBvuOBlQ0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgYLjgoQs44G/44Gk44G+44KLDQor44Gq44GL44KA44KJLOOBv+OBpOOBvuOCiw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgbLjgo0NCivjgZnjgYzjga/jgoks44GX44GS44Gf44GgDQor44KG44GC44GVLOOBkeOCk+OBmA0KK+OBhOOBl+OBhCzjgoDjga3jgojjgZcNCivjgYrjgYrjgY/jgbws44Gy44KN44Go44GXDQor44GK44GV44KPLOOBvuOBleOBn+OBkQ0KK+OChOOBvuOCguOBqCzjgb/jgY3jgYoNCivjgYTjgb7jgYTjgZrjgb8s44GL44Ga44Gy44GTDQor44GK44GL44GgLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgY/jgavjgYoNCivjgZ/jgarjgYss44GN44KI44GXDQor44Gq44GL44GuLOOBn+OBj+OBig0KK+OBiuOBiuOCguOCiizjgYvjgZrjgbLjgZMNCivjgoTjgb7jgoLjgags44GL44Ga44GKDQor44Gq44GM44GELOOChuOBjeOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjga/jgosNCivjgbLjgY3jgaEs44Gy44GV44GXDQor44KE44G+44GgLOOBqOOBl+OBig0KK+OBpOOBi+OCguOBqCzjgaTjgajjgoANCivjgYTjga7jgYbjgYgs44G+44GV44GoDQor44GE44Gu44GG44GILOOBguOBjeOCiQ0KK+OBmeOBv+OBi+OCjyzjgYvjgYrjgosNCivjgbXjgY/jgaAs44GY44KF44KT44GE44GhDQor44KE44G+44KC44GoLOOBm+OBpOOBkw0KK+OBleOBhOOBqOOBhizjgobjgYbjgZMNCivjgYvjgpPjgbAs44KI44GX44G/44GkDQor44GV44KJ44GELOOBvuOBleOBguOBjQ0KK+OBleOBi+OBjSzjgZfjgofjgYbjgZgNCivjgoTjgZnjgYQs44Gf44GL44GXDQor44GL44G/44KA44KJLOOBn+OBi+OBlw0KK+OBm+OBuSzjgojjgZfjgZ/jgYsNCivjgojjgZfjgaAs44Go44GX44GL44GaDQor44Gq44GM44GbLOOBn+OBoOOBlw0KK+OBteOBj+OBoSzjgYTjgZrjgb8NCivjgbXjgY/jgaAs44GYDQor44Gu44Gq44GLLOOBruOBtuOBsuOBkw0KK+OBhOOBvuOBoCzjgb7jgZXjgbLjgo0NCivjgavjgZfjgYvjgo8s44G+44GZ44GTDQor44GT44KE44GuLOOBsuOBp+OBig0KK+OBquOBi+OBluOCjyzjgYLjgY3jgYoNCivjgYrjgYzjgo8s44Gf44GL44GXDQor44Gq44GL44KE44G+LOOBr+OCi+OBsuOBlQ0KK+OBrOOBruOBi+OCjyzjgZHjgYTjgZMNCivjgZ3jga0s44G144G/44GKDQor44G/44Ge44GQ44GhLOOChuOBjeOBig0KK+OBk+OBsOOChOOBlyzjgYTjgo/jgYoNCivjgojjgZfjgb7jgaQs44G+44GV44GKDQor44GK44GK44Gv44KJLOOBvuOBleOBiuOBvw0KK+OChOOBvuOBoCzjgZfjgpPjgZgNCivjgb/jga7jgZDjgaEs44KI44GX44Gu44KKDQor44GX44KT44KB44KTLOOBn+OBi+OBteOBvw0KK+OBruOBmyzjgb7jgZXjgYoNCivjgYTjgo/jga/jgZcs44KK44KH44GG44GE44GhDQor44GC44GL44GELOOBn+OBkeOBlw0KK+OBpOOBn+OCguOBqCzjgb7jgZXjga/jgosNCivjgarjgYvjgoLjgags44G/44Gu44KLDQor44GP44Gg44Gq44G/LOOBvuOBleOChuOBjQ0KK+OBhOOBoeOBoCzjgZ/jgYvjgZcNCivjgoTjga4s44GI44GE44GYDQor44G+44Gk44GNLOOBjeOBv+OBig0KK+OBleOBleOBjSzjgojjgZfjgZfjgZINCivjgbXjgovjga4s44GL44GK44KLDQor44G144GY44GfLOOBguOBjeOCiQ0KK+OBhOOBruOBhuOBiCzjgb/jganjgooNCivjgZ/jgoQs44G/44Gk44KE44GZDQor44G/44KE44GW44KPLOOBn+OCjeOBhg0KK+OCj+OBn+OBquOBuSzjgojjgYbjgZMNCivjgYLjgY/jga0s44Go44GX44KN44GGDQor44G744GX44GuLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgYvjgZrjgYoNCivjgYbjgYjjgoDjgoks44Gu44G844KLDQor44GL44G/44KELOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgZ/jgZHjgZcNCivjgYLjgpPjganjgYYs44Gf44GL44Gv44KLDQor44Go44KI44GE44Ga44G/LOOBqOOBl+OBig0KK+OBj+OCj+OBqizjga7jgorjgZMNCivjgavjgYTjgb8s44GL44Gk44GXDQor44G/44GG44KJLOOBiuOBleOCgA0KK+OBruOCgOOCiSzjgYLjgY3jgokNCivjgYrjgYvjgaAs44GY44KF44KTDQor44GC44GV44Gs44G+LOOBi+OBmuOBsuOCjQ0KK+OBleOBleOBiizjgbLjgafjgobjgY0NCivjgYTjgarjgYzjgY0s44G+44GV44GoDQor44GZ44GM44KP44KJLOOBleOBqOOBlw0KK+OBl+OCh+OBhuOBmCzjgZ/jgZHjgZXjgaANCivjgZ/jgYzjgo8s44G/44Gu44KLDQor44Gd44GMLOOBruOBtuOBqOOCgg0KK+OBl+OCh+OBhuOCjyzjgY3jgojjgb8NCivjgb7jgaTjgYvjgo8s44Gy44KN44KG44GNDQor44GX44KC44KA44KJLOOChuOBhuOBmA0KK+OCj+OBn+OBquOBuSzjgarjgYrjgobjgY0NCivjgZPjgbDjgoTjgZcs44GX44KT44GYDQor44GE44GE44GgLOOBk+OBhuOBhOOBoQ0KK+OBteOBj+OCguOBqCzjgZHjgpPjgYTjgaENCivjgoDjgonjgoTjgb4s44Gy44KN44GNDQor44G744KKLOOBvuOBleOBguOBjQ0KK+OChOOBvuOBrizjgbLjgafjgYoNCivjgavjgZfjgo/jgY0s44KI44GG44GYDQor44G+44Gk44GKLOOBvuOBleOBqg0KK+OBiuOBi+OCguOBqCzjgb7jgZPjgagNCivjgYrjgYrjgZXjgY0s44GR44KT44GE44GhDQor44GG44KB44KC44GoLOOBquOBiuOBteOBvw0KK+OBiuOBi+OCgOOCiSzjgYLjgZ/jgosNCivjgZPjgYTjgZEs44GT44GG44Gb44GEDQor44GK44GK44Gf44GrLOOBvuOBleOBguOBjQ0KK+OBi+OBn+OBiuOBiyzjgb7jgZXjgY0NCivjgYrjgYvjgaAs44GX44Gh44KN44GGDQor44G144GP44GX44G+LOOCiOOBl+OBig0KK+OBiOOBoOOBquOBiyzjgoTjgZnjga7jgooNCivjgZnjgZrjgY0s44GX44GS44KLDQor44GE44Gh44GL44KPLOOBm+OBhOOBhOOBoQ0KK+OBj+OCjeOBi+OCjyzjgY3jgojjgZcNCivjgZXjgajjgYYs44GN44KI44Gy44GVDQor44GK44GK44GV44KPLOOBi+OBmuOBsuOBkw0KK+OCguOBoeOBmuOBjSzjgZnjgYjjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44GR44GE44GE44Gh44KN44GGDQor44GE44Gh44GL44KPLOOBn+OBi+OBlw0KK+OBteOBi+OBluOCjyzjgYvjgZrjgbsNCivjgY/jgbzjgZ8s44Gu44G244GKDQor44Gr44GX44KA44KJLOOBk+OBhuOBmA0KK+OBreOBjuOBlyzjgbLjgZXjgobjgY0NCivjgZPjgpPjgaks44GR44KT44GYDQor44G144KL44KELOOBv+OBpOOBjg0KK+OBk+OBsOOChOOBlyzjgZ/jgaTjgYoNCivjgZ/jgoDjgoks44Gy44KN44Gy44GTDQor44G/44Gk44Gv44GXLOOBoOOBhOOBr+OBoeOCjeOBhg0KK+OBj+OBvuOBluOCjyzjgYvjgaTjgb8NCivjgoTjgb7jgaAs44KI44GX44GKDQor44Gy44KN44GkLOOBi+OBmuOBv+OBpA0KK+OBi+OBreOBoCzjgobjgZ/jgYsNCivjgYLjgZ0s44KG44GN44GKDQor44GI44Gz44Gv44KJLOOBjeOBhOOBoQ0KK+OChOOBmeOBhCzjgY/jgavjgYoNCivjgZnjganjgYYs44Gy44KN44GTDQor44KE44Gv44GfLOOBvuOBleOBruOCig0KK+OBleOBi+OBhCzjgajjgoLjgbLjgo0NCivjgZXjgYws44KI44GX44GKDQor44KE44G+44GW44GNLOOBiOOBv+OBkw0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgYTjgZbjgo8s44Gy44KN44Gh44GLDQor44GC44KJ44GELOOBkeOCk+OBhOOBoQ0KK+OBhuOBtuOBi+OBnyzjgZXjgaDjgb8NCivjgo/jgZ/jgazjgY0s44Gf44Gg44KG44GNDQor44Gy44GX44GfLOOBruOBvOOCiw0KK+OBi+OBqOOBhizjgobjgYbjgZMNCivjgoTjgb7jga0s44KI44GX44GoDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OBruOCgOOCiSzjgojjgZfjgo3jgYYNCivjgoTjgarjgYQs44G+44GV44KG44GNDQor44KA44KJ44GL44G/LOOBvuOBleOBv+OBoQ0KK+OBguOBiuOBjSzjgYLjgY3jgokNCivjgoTjgZfjgo0s44GZ44GZ44KADQor44GC44GV44G+LOOBvuOBleOBsuOCjQ0KK+OBiuOBj+OBoCzjgbXjgb/jgYoNCivjgYTjgZfjgbDjgZcs44KG44GG44GYDQor44G/44Gq44G/44GnLOOBsuOBp+OBguOBjQ0KK+OBhOOBrOOBmuOBiyzjgZPjgYbjgbjjgYQNCivjgajjgY3jgo8s44KI44GX44Gv44KLDQor44G/44GG44KJLOOChOOBmeOBruOBtg0KK+OBvuOBtuOBoSzjgajjgZfjga/jgosNCivjgYrjgbDjgoks44Gy44KN44KG44GNDQor44G+44Gk44GNLOOBsuOCjeOBlw0KK+OBiOOBkOOBoSzjgZHjgpPjgYTjgaENCivjgYrjgYrjgb8s44Gf44GR44GXDQor44KP44Gf44Gq44G5LOOBn+OBkeOBlw0KK+OBguOCieOBi+OCjyzjgZfjgpPjgZgNCivjgZnjgYzjga4s44GC44GN44KJDQor44KE44GZ44GELOOBk+OBhuOBuOOBhA0KK+OBv+OChOOCguOBqCzjgbLjgo3jgoTjgZkNCivjgbXjgZjjgY7jgo8s44GT44GG44GE44GhDQor44GN44Gf44GM44KPLOOBv+OBjeOBig0KK+OBn+OBq+OBkOOBoSzjgb/jgaTjgosNCivjgZPjgZjjgb4s44KI44GX44GC44GNDQor44GC44G+44GL44KPLOOChuOBn+OBiw0KK+OBiuOBiuOBrOOBjSzjgobjgZ/jgYsNCivjgZ/jgarjgbks44GT44GG44GYDQor44G+44KL44Gv44GXLOOBhOOBleOBig0KK+OChOOBqeOChCzjgZjjgoXjgpPjgYTjgaENCivjgYrjgYrjgYzjgY8s44KI44GX44Gy44KNDQor44GV44GL44GfLOOBk+OBhuOBuOOBhA0KK+OBr+OCiSzjgbLjgafjgb8NCivjgZ/jgYvjgY4s44Gy44Gn44GKDQor44GC44GE44Gv44KJLOOBguOBjeOCiQ0KK+OBiuOBiuOBnyzjgajjgYrjgosNCivjgYLjgY3jgoTjgb4s44KI44GX44Gy44KNDQor44GX44G/44GaLOOBn+OBi+OBig0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgbXjgb8NCivjga/jgZ/jgoLjgags44GR44KT44GYDQor44GG44GZ44GgLOOBn+OBi+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgarjgYvjgYzjgo8s44Gm44Gk44GKDQor44G+44Gk44Gw44KJLOOBr+OCi+OBig0KK+OBj+OBrOOBjizjgobjgZ/jgYsNCivjgYrjgYzjgo8s44KI44GX44GKDQor44Gk44GYLOOBi+OBmuOBn+OBiw0KK+OBi+OCj+OBhCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZnjgYzjgo/jgoks44GX44KF44GG44GE44GhDQor44KA44Go44GGLOOBi+OBmuOBig0KK+OBiuOBsOOCiSzjgoTjgZnjgajjgZcNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44G244KJ44GNLOOChuOBjeOBig0KK+OCj+OBi+OBn+OBuSzjgaTjgajjgoANCivjgYrjgYzjgo8s44GT44GG44GX44KN44GGDQor44GE44KP44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBquOCiuOBnyzjgYrjgZXjgoANCivjgYLjgY3jgoTjgb4s44Gf44GL44GXDQor44G/44Gk44GELOOBkeOBhOOBhOOBoQ0KK+OBiOOCk+OBqSzjgobjgZ/jgYsNCivjgojjga3jgZ8s44GC44GN44GKDQor44GC44GK44GELOOBjeOCiOOBlw0KK+OBiuOBi+OCguOBqCzjgojjgZfjgbLjgZUNCivjgYrjgYrjgaTjgYss44GX44KT44GE44GhDQor44G144GP44KC44KKLOOBleOBi+OBiA0KK+OBpuOBl+OBvizjgYvjgZrjgb7jgZUNCivjga/jgb4s44Gy44Gn44GNDQor44KI44GX44GgLOOBr+OBmOOCgQ0KK+OBi+OCj+OBuSzjgojjgZfjga/jgosNCivjgZ/jgarjgYss44KE44GZ44Gu44KKDQor44Gf44GL44Gv44GXLOOBjeOCh+OBhuOBhOOBoQ0KK+OBn+OBquOBuSzjgbXjgb/jgYLjgY0NCivjgYLjgZ0s44Gy44KN44GE44GhDQor44Gf44GL44GgLOOBsuOCjeOBlw0KK+OBv+OChOOBrizjgajjgZfjgYoNCivjgYbjgYjjgZrjgb8s44Gy44Go44GXDQor44GE44Gh44GL44KPLOOChOOBmeOBguOBjQ0KK+OBguOBleOCjyzjgajjgoLjgbXjgb8NCivjgYTjgarjgoLjgags44GL44Ga44GKDQor44KC44KK44KELOOBsuOBqOOBlw0KK+OBquOBi+OBn+OBqyzjgZHjgpMNCivjgb/jgoTjgoLjgags44GE44Gh44Ge44GGDQor44G/44GP44GrLOOBiOOBhOOBhOOBoQ0KK+OBjeOBn+OCgOOCiSzjgZ/jgaDjgb7jgZUNCivjgoTjgZ/jgbks44G+44GV44Gy44GnDQor44Gq44GM44GL44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBqizjgYvjgZrjgYoNCivjgZXjgY/jgb4s44G/44Gk44KLDQor44GC44KJ44GELOOBqOOBl+OBig0KK+OBl+OBvuOBoCzjgarjgYrjgZMNCivjgabjgZrjgYss44GX44KF44KT44GE44GhDQor44GG44GI44GuLOOBl+OCheOCk+OBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYrjgYrjgY/jgo/jgaAs44G+44Gq44G2DQor44KI44GT44KE44G+LOOCiOOBl+OBiuOBvw0KK+OCj+OBn+OBquOBuSzjgojjgYbjgYTjgaENCivjgavjgZfjgoDjgoks44GC44GN44Gu44KKDQor44Gf44GL44G+44GkLOOBk+OBhuOBhOOBoQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgaTjgb4NCivjgYTjgaHjgY0s44Gy44KN44GXDQor44GE44KP44GX44GfLOOBruOBtuOBpOOBqg0KK+OBiuOBrizjgajjgZfjgYoNCivjgavjgZfjgY0s44Gf44Gk44GKDQor44GV44KPLOOBi+OBmuOBig0KK+OBn+OBi+OBvyzjgYrjgZXjgoANCivjgoTjgZnjgbXjgY8s44GR44KT44GYDQor44GK44GK44GfLOOBsuOCjeOBlw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgb7jgZUNCivjgZXjgYvjgYQs44KE44GZ44GKDQor44G144GY44KC44GoLOOBqOOBjeOBig0KK+OBvuOBpOOCguOBqCzjgZfjgZLjga7jgooNCivjgYrjgYrjgoTjgbYs44GL44Ga44KEDQor44Gr44GX44KA44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBu+OCiuOBhuOBoSzjgZHjgYTjgYTjgaENCivjgYTjgZfjgoLjgags44GX44KF44GG44GE44GhDQor44G+44Gk44KC44GoLOOBquOCiuOBig0KK+OBn+OBkeOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoLjgajjgoTjgb4s44GT44GG44GX44KN44GGDQor44KI44GX44Gq44GMLOOBk+OBhuOBmA0KK+OBteOCi+OBi+OCjyzjgb/jgaHjgYoNCivjgZ/jgavjgZDjgaEs44KI44GX44GKDQor44Gf44GR44GT44GXLOOBvuOBleOBqOOBlw0KK+OBpOOCgOOCiSzjgZPjgYbjgZvjgYQNCivjgYrjga4s44GX44GS44GKDQor44GK44GL44KC44GoLOOBleOBqOOBlw0KK+OBteOCi+OBnyzjgb7jgZXjgbLjgo0NCivjgavjgZfjga4s44Gd44GG44GE44Gh44KN44GGDQor44G/44Ga44Gf44GrLOOBsuOCjeOChuOBjQ0KK+OBk+OChOOBvizjgbLjgZXjgZcNCivjgY3jgY/jgaEs44GR44KT44GE44GhDQor44GK44GK44GT44GG44GhLOOBvuOBleOBguOBjQ0KK+OBi+OCj+OBnyzjgZ/jgYvjgZcNCivjgY/jga/jgoks44KI44GX44KG44GNDQor44G144KL44Gv44GXLOOBk+OBhuOBnuOBhg0KK+OBn+OBi+OCiOOBlyzjgbXjgb/jgajjgogNCivjgYvjgZks44Gu44G244KG44GNDQor44GC44G/44KC44GoLOOBmeOBmeOCgA0KK+OCgOOBreOBqOOBhizjgajjgZfjgYoNCivjgb7jgaTjgoLjgags44GZ44GZ44KADQor44Gf44GL44Gq44GXLOOBvuOBleOBguOBjQ0KK+OBguOBjeOBnyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44G/44GhDQor44Gq44GM44GELOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjgaTjgYvjgZUNCivjgb7jgaTjgoLjgags44KE44GZ44GC44GNDQor44Go44GP44GgLOOBv+OBoeOBig0KK+OBsuOCieOBhCzjga7jgZ7jgoANCivjgYrjgY/jgZfjgb4s44Gf44GL44GXDQor44G+44GX44GfLOOBl+OBkuOBig0KK+OChOOBvuOBoCzjgY3jgb/jgbLjgo0NCivjgZXjgY/jgonjgYQs44Go44KC44GKDQor44Gf44GN44GW44KPLOOBleOBqOOBlw0KK+OBvuOBmeOBkyzjgobjgYbjgZgNCivjgZfjgpPjgYvjgo8s44Gy44KN44GIDQor44GK44GK44Gf44GrLOOBn+OBoOOBsuOCjQ0KK+OBi+OCj+OBrizjgojjgZfjgb/jgaQNCivjgYLjgonjgYvjgo8s44Gm44Gk44GKDQor44GC44Gg44GhLOOBn+OBi+OChuOBjQ0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgZPjga/jgoks44Go44GX44Gy44GTDQor44GK44GK44Gv44GXLOOBi+OBmuOBsuOBkw0KK+OBi+OCgeOBiuOBiyzjgojjgZfjgYoNCivjgb/jgoDjgoks44Go44G/44GKDQor44GE44GNLOOCiOOBng0KK+OBguOBl+OBmuOBiyzjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44Gy44KN44Gu44KKDQor44KI44GX44GgLOOBiuOBleOCgA0KK+OBr+OCieOBiuOBiyzjgYvjgaTjgoTjgZkNCivjgYbjgovjgo/jgZcs44Gy44KN44GXDQor44GK44KT44GgLOOBkeOCk+OBmA0KK+OBhOOCk+OBqSzjgb7jgZXjgYoNCivjgZ/jgZHjgarjgYss44G+44GV44Go44GXDQor44G144GY44GV44KPLOOBvuOCguOCiw0KK+OBiuOBiuOCguOCiizjgb7jgZXjgobjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44GX44KH44GG44GYLOOCiOOBl+OBruOCig0KK+OBjeOBn+OBmOOBvizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44GC44GN44KJDQor44Gy44KJ44GKLOOBi+OBmuOBn+OBiw0KK+OBmeOBv+OCguOBqCzjga7jgbbjgoQNCivjgarjgYvjgZ/jgass44Gy44KN44GXDQor44GC44KJ44GX44G+LOOChuOBjeOBig0KK+OBi+OBn+OChOOBvizjgobjgY3jga7jgbYNCivjgYbjgYjjgaAs44G+44GV44Gy44KNDQor44G144GY44KC44GoLOOBsuOCjeOBteOBvw0KK+OChOOBvuOBr+OBnyzjgorjgoXjgYbjgZgNCivjgYrjgYrjgZ/jgass44Gk44Go44KADQor44GE44GE44Gs44G+LOOCiOOBl+OBsuOCjQ0KK+OBquOBjOOBleOCjyzjgojjgZfjgo3jgYYNCivjgoTjgZnjgaAs44GX44KF44GG44GYDQor44G144GP44GX44G+LOOCiuOCh+OBhuOBhOOBoQ0KK+OBleOBi+OBjeOBsOOCiSzjgYLjgoTjgZMNCivjgYvjgajjgYYs44Gf44GL44GXDQor44KI44GT44GW44KPLOOBteOBv+OBn+OBiw0KK+OBi+OBqeOBrizjgYvjgZrjgb8NCivjgoTjgb7jgYrjgYss44GN44KI44GXDQor44GL44G/44Gf44GrLOOBsuOCjeOBjQ0KK+OBi+OBqOOBhizjgYjjgaTjgo3jgYYNCivjga7jgoLjgags44Go44GX44GL44GaDQor44GZ44GO44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OBteOBmOOBrizjgZPjgYbjgZgNCivjgYTjga7jgYbjgYgs44GX44KH44GG44GYDQor44Gv44GbLOOBvuOBleOBi+OBpA0KK+OCguOCiizjgYjjgonjgbYNCivjgYvjgo/jgbDjgZ8s44Gy44Gn44GKDQor44GL44KP44Ge44GILOOBl+OCh+OBhuOBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgaDjgYTjgZfjgpMNCivjgbLjgo3jgb7jgZUs44KE44GZ44Gy44KNDQor44GN44GX44KC44GoLOOBj+OBq+OBig0KK+OBsuOCieOBpOOBiyzjgb/jga7jgosNCivjgYbjgYjjgaAs44KI44GX44KG44GNDQor44GC44KJ44GELOOBqOOBl+OBsuOBkw0KK+OBhOOBhOOBoCzjgb7jgZXjgobjgY0NCivjgbLjgo3jgZfjgb4s44GX44KH44GG44Ge44GGDQor44GE44GV44GLLOOBi+OBpOOBsuOCjQ0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgY/jgonjgoLjgaEs44Gf44GL44GKDQor44GV44GE44Go44GGLOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgb/jgaTjgZANCivjgbXjgYvjgoQs44Gm44Gk44GYDQor44GV44GL44GELOOBqOOBl+OCjeOBhg0KK+OBiuOBiuOCj+OBoCzjgajjgZfjgYoNCivjgYvjgoHjgoQs44GL44Gk44G/DQor44GP44GV44GG44KJLOOBqOOBl+OBig0KK+OCj+OBoCzjgYvjgZrjgYoNCivjgZTjgajjgYYs44GN44KH44GG44GE44GhDQor44Gy44KJ44G144GPLOOBguOBjeOCiQ0KK+OCguOCjeOChCzjgbLjgafjgajjgZcNCivjgYTjgZHjgaAs44GV44Gg44KG44GNDQor44G+44GZ44GgLOOBvuOBleOBr+OCiw0KK+OBv+OBmuOBrizjgajjgZfjgZ/jgYsNCivjga/jgoTjgZcs44GN44KI44Go44GXDQor44GC44GK44GNLOOBqOOBl+OBsuOBkw0KK+OBk+OBsOOCiizjgb7jgZXjgobjgY0NCivjgb/jgZXjgo8s44GV44G244KN44GGDQor44Gf44GL44GOLOOBpuOBpOOBig0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaENCivjgZnjgYzjgZXjgo8s44Gb44GE44GYDQor44GK44KK44Gv44KJLOOBqOOCiOOBvw0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgbXjgb8NCivjgYvjgZXjgYQs44GN44KI44GC44GNDQor44Gb44KA44KJLOOBn+OBi+OBlw0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgYLjgY0NCivjgabjgonjgYvjgaks44KI44GX44KG44GNDQor44G144GY44GfLOOChOOBmeOBguOBjQ0KK+OBi+OCj+OBruOBuSzjgYvjgYTjgaENCivjgYLjgYrjgbAs44G+44GV44KLDQor44KA44KJ44KC44GoLOOChuOBjeOCiOOBlw0KK+OBpOOBvOOBhuOBoSzjgZ/jgYvjgZcNCivjgbXjgovjgZfjgofjgYYs44G144GY44GKDQor44GX44Gw44KE44G+LOOBteOBv+OBig0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgYbjgaHjgaAs44Gy44KN44G144G/DQor44G+44GI44GW44KPLOOBqOOBv+OBig0KK+OBk+OCgOOCiSzjgYLjgY3jga7jgbYNCivjgoTjgb7jgZXjgY0s44KI44GX44GYDQor44GG44GX44GNLOOBi+OBmuOBvw0KK+OBvuOBoeOChOOBvizjgZfjgofjgYbjgZgNCivjgbXjgZjjgazjgY0s44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBvuOBpOOBvw0KK+OBj+OBmeOCguOBqCzjgabjgovjgYoNCivjgZnjgZrjgY0s44KI44GX44GKDQor44GG44GI44KE44G+LOOBqOOBl+OChuOBjQ0KK+OBk+OBhOOBkSzjgbLjgo3jgZcNCivjga/jgZvjgYzjgo8s44G/44Gk44GC44GNDQor44G144KL44GL44KPLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBoCzjgYLjgY3jgYoNCivjgobjga/jgonjgY4s44G/44Gk44KI44GXDQor44GK44GX44G+LOOBruOCiuOChuOBjQ0KK+OBneOBrSzjgb7jgZXjgbLjgo0NCivjgajjgYbjgb4s44GV44Gh44Gy44KNDQor44Gf44GL44Gv44GXLOOBl+OBmuOBig0KK+OBi+OBkeOBr+OBnyzjgb7jgZXjgYoNCivjgYTjgZfjgYQs44GX44GS44KLDQor44GV44Go44GGLOOBruOCiuOChuOBjQ0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgbvjgorjgZDjgaEs44G+44GT44GoDQor44Gq44GL44GW44GoLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgb7jgZPjgagNCivjgYvjga3jgZMs44KK44KF44GG44Ge44GGDQor44GL44GX44G+LOOBqOOBl+OBruOBtg0KK+OBqOOBkOOBoSzjgbLjgo3jgoANCivjgZPjgb/jgoTjgb4s44GN44G/44GC44GN44KJDQor44KE44G+44GK44GLLOOCiOOBl+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgZHjgYTjgYTjgaENCivjgoLjgorjgZ8s44GR44GE44GE44GhDQor44KI44GT44GELOOCiOOBl+OBruOBtg0KK+OBsuOCieOBhCzjgZHjgYTjgYTjgaENCivjgZfjgYTjgbDjgZcs44G+44GV44Gf44GRDQor44GL44Gt44GTLOOBvuOBleOBteOBvw0KK+OBquOBi+OBrSzjga7jgbbjga/jgosNCivjgZvjgY3jgZDjgaEs44Gm44Gk44GKDQor44G/44KC44KKLOOBn+OBi+OBsuOBkw0KK+OBjeOBj+OBoSzjgb7jgZXjgZ/jgYsNCivjgoTjgb7jgoLjgags44GL44Gk44GYDQor44GC44KJ44GL44KPLOOBn+OBi+OBig0KK+OBqOOCguOBj+OBqyzjgb7jgZXjgY0NCivjgajjgb/jgZ8s44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBl+OCheOBhuOBuOOBhA0KK+OBqOOBjOOBlyzjga7jgbbjgYoNCivjgYvjgo/jgoDjgoks44Go44GX44Gy44KNDQor44G144GP44Gq44GMLOOBkeOBhOOBmA0KK+OBvuOBjeOBnyzjgajjgY/jgb8NCivjgZXjga4s44G/44Gu44KLDQor44GV44Go44KA44KJLOOBkeOBhOOBmA0KK+OBleOBi+OBrizjgZjjgoXjgpPjgoQNCivjgaTjgaHjga/jgZcs44GX44GS44GC44GNDQor44GG44GI44GuLOOBkeOCk+OBnuOBhg0KK+OBquOBi+OBjOOCjyzjgbLjgafjgYLjgY0NCivjgajjgY/jgarjgYws44GR44KT44GYDQor44GE44Go44GGLOOBi+OBmuOBig0KK+OBsuOBleOBvuOBpCzjgajjgojjgajjgZcNCivjgYrjgYrjgaTjgYss44GL44KB44GKDQor44GL44KP44KC44GoLOOBl+OBkuOBjQ0KK+OBruOCgOOCiSzjgojjgZfjgYTjgaENCivjgYvjga7jgYYs44KG44Gf44GLDQor44GG44GI44GV44GLLOOChuOBhuOBmA0KK+OBteOBmOOCj+OCiSzjgbLjgonjgYoNCivjgYrjgYzjgo8s44G+44GV44GoDQor44GP44KJ44GfLOOBqOOCguOBteOBvw0KK+OBr+OBquOBneOBqCzjgajjgojjgbXjgb8NCivjgavjgZfjgYvjgo8s44Gf44GL44KI44GXDQor44GI44Gz44GZLOOBsuOBp+OBig0KK+OChOOBmeOBruOCiizjgojjgZfjga/jgosNCivjgZXjgYvjgYQs44Gf44GR44GXDQor44G+44GI44GgLOOCiOOBl+OBguOBjQ0KK+OBteOBj+OBoCzjgZfjgZLjgZ/jgYsNCivjgoTjgb7jgoLjgags44G+44GV44Ga44G/DQor44GX44GK44GfLOOChOOBmeOBvuOBlQ0KK+OCgOOCieOBi+OBvyzjgajjgoLjgogNCivjgYTjgY/jgb8s44Gf44GL44GXDQor44Gq44GL44GOLOOChuOBvw0KK+OBqOOBj+OBvuOBpCzjgZ/jgYvjgYoNCivjgZ/jgavjgYQs44Go44GX44KG44GNDQor44GK44GK44KE44G+LOOBkeOCk+OBmA0KK+OBn+OBrizjgZ/jgYvjgaHjgbsNCivjgYrjgYrjgZ8s44Gy44KN44Gu44G2DQor44GP44G+44GuLOOBguOBjeOBig0KK+OBleOCj+OBkOOBoSzjgb7jgZXjgY/jgasNCivjgYLjgZXjga4s44GL44Ga44GKDQor44GV44GL44GQ44GhLOOBruOCiuOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgaTjgajjgoANCivjgYvjgajjgYYs44GL44Ga44GKDQor44G+44GI44GL44KPLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgYoNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44KE44G+44Gq44GLLOOBiOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgbXjgZjjgZ8s44Gf44Gk44GKDQor44KE44GOLOOBvuOBleOBvw0KK+OBhOOCj+OBhCzjgb7jgZXjgZ/jgYsNCivjgbXjgY/jgZfjgb4s44Gy44Gn44G/DQor44G144KL44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBjOOBnyzjgb7jgZXjga7jgooNCivjgZnjgZrjgY0s44Gf44Gg44Gy44GTDQor44GX44GL44G+LOOBn+OBi+OBlw0KK+OBjeOBl+OCguOBqCzjgZfjgoXjgpPjgYTjgaENCivjgZPjgo3jgY4s44GL44Gk44G/DQor44G144Gf44G/LOOBjeOCiOOBlw0KK+OChOOBl+OCjSzjgajjgZfjgYoNCivjga/jgorjgYTjgZEs44KI44GX44Gv44KLDQor44GX44KA44KJLOOBguOCiuOBvuOBlQ0KK+OBquOBjOOBj+OCiSzjgYTjgaHjgo3jgYYNCivjgb/jgarjgb8s44GT44GG44GYDQor44Go44GP44Gq44GMLOOBjeOCiOOBlw0KK+OBn+OBquOBiyzjgbXjgY/jgoANCivjgabjgonjgZXjgY0s44GX44KN44GGDQor44GL44Go44GGLOOBqOOBiuOCiw0KK+OBv+OBmuOBrizjgojjgZfjgYLjgY0NCivjgZ/jgoLjgags44Gy44Go44GXDQor44GG44Gh44GgLOOBsuOCjeOBi+OBmg0KK+OBn+OBkeOBhOOBoSzjgojjgZfjgobjgY0NCivjgbLjgbPjga4s44Gy44KN44GXDQor44GT44Gw44KE44GXLOOCiuOCh+OBhuOBuOOBhA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZ/jgaANCivjgbXjgYvjgaAs44G+44GV44Gy44KNDQor44GE44GX44Gf44GrLOOBi+OBmuOBsuOBlQ0KK+OBhOOBpyzjgojjgZfjgobjgY0NCivjgavjgYTjgZXjgags44G+44GV44KG44GNDQor44GZ44Gq44Gv44KJLOOBl+OCh+OBhuOBmA0KK+OBl+OBv+OBmizjgb7jgZXjgYoNCivjgYvjgajjgYYs44Gu44KK44KG44GNDQor44Gq44GE44Go44GGLOOBmOOCheOCk+OBmA0KK+OBk+OBhOOBkSzjgajjgYbjgZnjgZENCivjgY3jgZ/jgoDjgoks44Go44KI44Gy44GTDQor44GL44GM44KPLOOBqOOBl+OChuOBjQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44Gf44GL44GXDQor44GK44GL44KC44GoLOOBneOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgZXjgaDjgbLjgo0NCivjgYTjgZfjgYQs44G+44GV44Gy44KNDQor44GV44GI44GNLOOBvuOBmeOChuOBjQ0KK+OBleOCj+OBoCzjgZ/jgYvjgZcNCivjgZTjgajjgYYs44Gu44G244KG44GNDQor44GK44GuLOOBvuOBleOBsuOCjQ0KK+OBteOBquOBiuOBiyzjgb7jgZXjgYLjgY0NCivjgZfjgpPjgoQs44G+44GV44GL44GaDQor44G744KT44GW44KPLOOBsuOBi+OCiw0KK+OChOOBvuOBhuOBoSzjgZfjgZLjgZgNCivjgYTjgZfjga4s44Gk44Go44KADQor44GE44GK44GPLOOBsuOBp+OBqOOBlw0KK+OBguOCieOBjSzjgojjgYbjgZMNCivjgbXjgZjjgo/jgY0s44G/44Gu44KLDQor44GE44Gh44KA44KJLOOBvuOBleOBjQ0KK+OBr+OChOOBlyzjgojjgZfjgZXjgaANCivjgoLjgoos44Gf44GP44GYDQor44GN44KA44KJLOOBl+OBkuOCiw0KK+OChuOBjeOBteOBjSzjgb7jgZXjgbLjgZUNCivjga/jgY7jgoLjgags44GE44KP44GKDQor44Gv44GX44KC44GoLOOBsuOBp+OBig0KK+OBjeOBn+OChOOBvizjgojjgZfjgabjgosNCivjgbXjgZjjgoLjgoos44GR44KT44GYDQor44GK44GP44GuLOOBiuOBleOCgA0KK+OChOOBvuOBoCzjgb/jgaTjgYoNCivjgZ/jgZQs44Gf44GL44GXDQor44GC44GV44GELOOCiOOBl+OBsuOCjQ0KK+OCguOCiuOBrizjgbLjgo3jgZcNCivjgb/jgarjgYQs44GR44GE44GTDQor44KC44KK44GV44KPLOOBqOOCiOOBkw0KK+OBquOCiuOBleOCjyzjgbXjgb/jgZMNCivjgoLjgorjgoLjgags44G+44GV44KLDQor44GT44Gw44KE44GXLOOCiOOBl+OBruOCig0KK+OBl+OBvuOBoCzjgbLjgafjgY0NCivjgZnjgZrjgY0s44G/44GV44GTDQor44G144GP44GgLOOBkeOBhA0KK+OBguOCieOBhCzjgYLjgY3jga7jgbYNCivjgZ/jgavjgoTjgb4s44GX44KF44GG44GE44GhDQor44GK44GL44KC44GoLOOBvuOBpOOBig0KK+OBoOOBhOOCguOCkyzjgb/jga7jgosNCivjga/jgoTjgZcs44KI44GX44Gq44GKDQor44GE44GX44GgLOOBteOBj+OBig0KK+OBsuOCjeOBleOCjyzjgojjgZfjgb/jgaENCivjgojjgZfjgYrjgYss44G+44GV44Ga44G/DQor44G+44Gk44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBmOOBvizjgZXjgYvjgYgNCivjgY3jgZ8s44GV44Gq44GIDQor44Gr44GX44KA44KJLOOBl+OBkuOBi+OBmg0KK+OBr+OBo+OBqOOCiizjgbLjgafjgYoNCivjgoTjgb7jgoLjgags44GL44Ga44GKDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBjeOBn+OCgOOCiSzjgb7jgZnjgb8NCivjgZ/jgarjgYss44Go44G/44GKDQor44GE44GK44GNLOOBqOOBv+OChOOBmQ0KK+OBi+OBvuOBnyzjgZPjgYbjgZgNCivjgZfjgb/jgZos44Gy44KN44GXDQor44G+44GZ44GK44GLLOOBsuOBp+OBig0KK+OBleOCj+OBoCzjgZfjgofjgYbjgZMNCivjgarjgYvjgYTjgZcs44Gf44GR44KG44GNDQor44KP44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBluOCjyzjgYLjgY3jgYoNCivjgZXjgZXjgYrjgYss44Gu44KK44GC44GNDQor44KE44G+44GQ44GhLOOBqOOBl+OBig0KK+OBhOOBvuOBteOBjyzjgZ/jgaDjgZcNCivjgYvjgb/jgoQs44Go44G/44GIDQor44KP44GVLOOBsuOBp+OBig0KK+OBjeOBj+OBoSzjgYLjgY3jgbLjgZMNCivjgYbjgYvjgYQs44G/44GN44GKDQor44GE44KP44G+LOOBm+OBhOOBhOOBoQ0KK+OBpOOBmCzjgbbjgpPjgZgNCivjgZ/jgZHjgaAs44GV44Gg44Gk44GQDQor44Gb44Go44GM44KPLOOBl+OBkuOBqOOBlw0KK+OBk+OBl+OCgOOCiSzjgb7jgZXjgZcNCivjgo/jgZ/jgarjgbks44GY44KF44KT44GE44GhDQor44GG44GV44G/LOOBv+OBpOOBruOBtg0KK+OBiuOBi+OBoCzjgajjgZfjgbLjgZMNCivjgbXjgZjjgo/jgoks44GX44KH44GG44GYDQor44GL44Go44GGLOOChOOBmeOChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgb7jgZXjgosNCivjgbLjgarjgZ8s44GN44KH44GG44G444GEDQor44GG44GI44GZ44GOLOOBl+OBkuOBsuOCjQ0KK+OBl+OBsOOBnyzjga7jgbbjgYvjgZoNCivjgYrjgY/jgaAs44G+44GV44KLDQor44GZ44Gq44KE44G+LOOCiOOBl+OBig0KK+OBhOOBvuOBhCzjgYLjgY3jgbLjgZMNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44Gq44GL44KC44KKLOOBk+OBhuOBmA0KK+OBteOBi+OBleOCjyzjgoDjga3jgbLjgZUNCivjgb/jgZrjgZ8s44GX44KT44GE44GhDQor44GK44GuLOOBi+OBmuOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgZfjgoXjganjgYYs44G/44Gu44KLDQor44G144GP44GELOOBn+OBpOOBsuOBkw0KK+OBruOBoCzjgYvjgarjgYgNCivjgYrjgYrjga4s44Gv44KL44GNDQor44GT44GM44G/LOOCiOOBl+OBvuOBlQ0KK+OBv+OBjSzjgb7jgZXjgobjgY0NCivjgYTjgZHjgaAs44G144G/44GKDQor44G144GY44KC44KKLOOBqOOBl+OBsuOBkw0KK+OBn+OBi+OBoCzjgYvjgZrjgYoNCivjgYTjgZHjgaAs44Gu44G244Ge44GGDQor44GE44Go44GGLOOBruOBtuOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgZXjgo/jgaAs44G+44GV44G144G/DQor44G+44GI44GY44G+LOOBvuOBk+OBqA0KK+OBhOOBquOCgOOCiSzjgZnjgZnjgoANCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBl+OBruOBtg0KK+OBhOOCj+OBvizjgojjgZfjgobjgY0NCivjgo/jgYvjgaTjgY0s44Gy44Gn44GNDQor44Gv44Gb44GM44KPLOOCiOOBl+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYvjgZXjga/jgoks44GT44GG44GYDQor44Gr44GX44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBmeOBqeOBhizjgZjjgoXjgpPjgYTjgaENCivjgYrjgYvjgbks44Go44GX44Gy44KNDQor44G144GP44GwLOOBkeOCk+OBmA0KK+OBvuOBpOOBquOBjCzjgoTjgZnjgYoNCivjgZXjgYvjgYQs44Gy44KN44Gy44GTDQor44G144GY44GfLOOChuOBjeOBig0KK+OBquOBi+OChOOBvizjgZ/jgYvjgoTjgZkNCivjgojjga3jgaAs44GR44KT44Ge44GGDQor44GP44G+44GfLOOBk+OBhuOBhOOBoQ0KK+OBk+OChOOBvizjgbLjgo3jgobjgY0NCivjgojjga3jgoTjgb4s44Gf44GR44GXDQor44G144GY44GL44KPLOOBkeOCk+OBmA0KK+OBr+OCiuOBjOOChCzjgbLjgo3jgYLjgY0NCivjga/jgZvjgYzjgo8s44GL44Ga44Gy44GoDQor44KI44GX44GgLOOBn+OBoOOBlw0KK+OBj+OBmeOBruOBjSzjgojjgZfjgbXjgb8NCivjgZ/jgYvjga/jgZcs44GV44Gh44GTDQor44Gq44GM44GfLOOBl+OCk+OBmA0KK+OBneOBruOBj+OCiSzjgbLjgo3jgZcNCivjgb7jgZnjgoLjgags44KI44GX44GKDQor44GK44GO44Gv44KJLOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgb7jgarjgbYNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44GI44GgLOOBm+OBhOOBhOOBoQ0KK+OBquOBiyzjgZ/jgoLjgaQNCivjgYTjgYTjgZrjgYss44Gu44G844KLDQor44Gm44KJ44Gr44GXLOOBvuOBleOBruOBtg0KK+OBteOBj+OBhCzjgZvjgYTjgZgNCivjgafjgoDjgoks44GL44Ga44Gy44GTDQor44GV44GI44GNLOOBl+OBkuOBr+OCiw0KK+OBhuOBoeOBoCzjgbLjgafjga7jgooNCivjgZfjgYTjgaos44Gu44G244GKDQor44G144KL44KELOOCiOOBl+OBr+OCiw0KK+OBquOBjOOBj+OBvCzjgYrjgZXjgoANCivjgabjgonjgYbjgaEs44Gy44Gn44GC44GNDQor44GK44GK44Gf44GLLOOBvuOBleOBguOBjQ0KK+OBteOBmOOCiOOBlyzjgajjgYrjgosNCivjgZXjgYTjgajjgYYs44G+44GV44GKDQor44GP44KN44GV44KPLOOBteOBleOBiA0KK+OBhOOBl+OBi+OCjyzjgZHjgpPjgZ3jgYYNCivjgojjgZfjga4s44Gf44GL44GXDQor44GT44G/44KELOOBi+OBmuOCiOOBlw0KK+OChOOBvuOBjOOBnyzjgajjgZfjgYoNCivjgaTjgoQs44GL44GK44KLDQor44Gr44GX44GuLOOBruOCiuOChuOBjQ0KK+OBhuOBoeOBoCzjgbLjgZXjgYoNCivjgo/jgZ/jgarjgbks44GL44Ga44G/44GhDQor44KC44KK44GfLOOBruOBvOOCiw0KK+OBk+OBl+OBoCzjgZPjgYbjgZ7jgYYNCivjgbLjgo3jgZss44KK44KH44GG44G444GEDQor44KI44GX44KA44KJLOOBi+OBpOOBqOOBlw0KK+OBv+OBhuOCiSzjgojjgZfjgYvjgZoNCivjgZPjgYTjgZrjgb8s44Gy44Gn44Gu44G2DQor44Gm44KJ44GKLOOBv+OBpOOBsuOCjQ0KK+OBm+OBjOOCjyzjgb/jgaHjgYoNCivjgYvjgYTjgZrjgYss44GC44GN44KJDQor44G144GP44G+44GZLOOBmeOBmuOCiA0KK+OBhOOBqOOBhuOBmizjgZgNCivjgZvjgY3jgYzjgb8s44Gy44KN44GXDQor44G144GYLOOBhOOBmuOBvw0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgZgNCivjgbXjgovjgoLjgags44KI44GX44KG44GNDQor44Gf44GN44GfLOOBvuOBquOBtg0KK+OBiuOBi+OBoCzjgbLjgo3jgbLjgZUNCivjgZ/jgYvjga/jgZcs44GC44GN44KJDQor44Gf44Gr44G144GYLOOBvuOBleOBguOBjQ0KK+OBhOOBvuOBiuOBiyzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44KE44G+44KC44GoLOOBi+OBiuOCiw0KK+OCiOOBoCzjgoTjgZnjgYoNCivjgbXjgYvjgoTjgb4s44Gy44KN44GXDQor44KE44G+44GQ44GhLOOBsuOBleOBig0KK+OBleOBrizjgY3jgb8NCivjgZ/jgYvjga/jgZcs44KG44KKDQor44G+44Gk44KC44GoLOOBjeOCiOOBlw0KK+OChOOBrizjgbLjgZXjgZcNCivjgYLjgY3jgbAs44GL44Ga44KI44GXDQor44G/44Gp44KK44GL44KPLOOBsuOCjeOBv+OBpA0KK+OBn+OBi+OBlyzjgb/jgojjgZMNCivjgbXjgovjgYvjgo8s44G/44Gu44KLDQor44Gy44GN44GfLOOBiOOBhOOBmA0KK+OBiuOBluOBjSzjgojjgZfjgYLjgY0NCivjgYLjgYrjgY0s44GX44GS44GK44G/DQor44GV44GI44GQ44GVLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgZPjgavjgZcs44KG44GG44GYDQor44GK44GK44Gr44GXLOOBl+OCheOCk+OBmeOBkQ0KK+OBsuOBkOOBoSzjgbXjgZjjgY0NCivjgY/jgbzjgZ8s44GY44KF44KT44GE44GhDQor44KE44G+44GQ44GhLOOBl+OCjeOBhg0KK+OBteOCi+OBi+OCjyzjgb7jgZXjgagNCivjgarjgorjgZ8s44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOBteOBleOBhOOBoQ0KK+OBr+OBn+OBkeOChOOBvizjgabjgaTjgYoNCivjgb/jgoTjgoLjgags44G/44GV44GKDQor44Gu44GW44GNLOOChOOBmeOBr+OCiw0KK+OBr+OBm+OBjOOCjyzjgaHjgofjgYbjgZfjgo3jgYYNCivjgZfjgonjgYvjgo8s44KI44GX44Gy44GTDQor44GC44GE44GgLOOBk+OBhuOBuOOBhA0KK+OBsuOCjeOBi+OCjyzjgbLjgo3jgZcNCivjgorjgoXjgYbjgYvjgo8s44Gk44KI44KADQor44KE44G+44GQ44GhLOOBvuOBmeOBvw0KK+OBj+OCiuOBleOBjSzjgbLjgafjgYoNCivjgoLjgorjgoLjgags44KI44GX44G/44GhDQor44GP44G844GfLOOBvuOBleOBguOBjQ0KK+OBj+OBvuOBleOBkyzjgoLjgorjgZfjgZINCivjgYLjgaDjgaEs44GR44KT44GfDQor44GT44KT44GuLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgaTjgZMNCivjgYTjgo/jgYQs44KK44KH44GG44GfDQor44GK44GK44Gv44KJLOOBsuOBp+OBig0KK+OBhOOBl+OBr+OCiSzjgajjgoLjga7jgooNCivjgYLjgYrjgY0s44Gf44GR44GXDQor44KC44KKLOOCiOOCiuOBkw0KK+OCjeOBo+OBveOCk+OBjizjgb7jgZXjgYLjgY0NCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GV44Go44GGLOOChOOBmeOBig0KK+OBvuOBiOOBnuOBrizjgYjjgYTjgZjjgo3jgYYNCivjgbXjgZjjgoLjgags44Gy44Gn44Gu44G2DQor44Gf44Gr44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OBq+OBlyzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44GX44KT44GYDQor44Gq44GL44GELOOBi+OBmuOBvw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgbXjgb8NCivjgZfjgoIs44KG44GG44GE44Gh44KNDQor44GX44Gw44GfLOOBhOOBleOCgA0KK+OBteOCi+OBv+OBoSzjgojjgZfjgYoNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBi+OBjuOChOOBvizjgabjgaTjgoQNCivjgo/jgaEs44G+44GV44Gu44KKDQor44G144GY44GfLOOBsuOBqOOBlw0KK+OBk+OCk+OBqSzjgZfjgZLjga7jgooNCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G144GP44GELOOBsuOBp+OChuOBjQ0KK+OBmeOBjOOCj+OCiSzjgZPjgYbjgZjjgofjgYYNCivjgbXjgYvjgoTjgb4s44GC44GN44KJDQor44GE44G+44GELOOBvuOBleOBn+OBiw0KK+OBleOBqOOBhizjgY/jgavjgbLjgZMNCivjgYvjgarjgZbjgo8s44GL44Ga44GKDQor44G144Gh44GW44GNLOOBiuOBleOCgA0KK+OBpOOBi+OBoCzjgZfjgofjgYbjgYTjgaENCivjgYTjgZfjgZbjgY0s44Gf44GL44KG44GNDQor44Go44GP44KJLOOBv+OBjeOBig0KK+OBqOOBruOBleOBjSzjgoLjgajjgojjgZcNCivjgZ/jgYvjgY0s44Gy44Gn44GKDQor44G144GY44GfLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBmyzjgozjgYTjgZMNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gk44G/LOOCiOOBl+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgobjgYbjgYTjgaENCivjgbXjgY/jgZ8s44Gf44GL44Gq44GKDQor44GP44KP44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBteOBmOOBnyzjgYjjgYTjgZ7jgYYNCivjgYTjgarjgY/jgb4s44Go44GX44GTDQor44G/44GV44GKLOOBk+OBhuOBnuOBhg0KK+OBquOBi+OBl+OBnyzjgb7jgZPjgagNCivjgYrjgY/jgoTjgb4s44KG44GG44GYDQor44Gq44GM44GILOOBi+OBmuOBsuOCjQ0KK+OBquOBjOOBhCzjgZfjgofjgYbjgZQNCivjgoTjgb7jgZbjgY0s44G+44GV44KLDQor44GX44KJ44GE44GXLOOBl+OCh+OBhuOBhOOBoQ0KK+OBhuOBiOOBoCzjgZfjgZLjgosNCivjgYrjgZjjgb4s44Gy44KN44GC44GNDQor44Gy44KN44GbLOOBvuOBleOBruOBtg0KK+OBsuOCieOBrizjgb7jgZXjgosNCivjgbXjgovjgZ8s44Gf44GL44GKDQor44GT44Gs44G+LOOBi+OBiuOCiw0KK+OBn+OBi+OChOOBvizjgajjgoLjga/jgosNCivjgYLjgZXjgZfjgZ8s44G+44GV44G144G/DQor44KI44Gk44Gv44GXLOOBsuOCjeOBlw0KK+OBpOOBoeOChCzjgZ/jgYvjgb8NCivjgYrjgYrjgavjgZcs44GE44GV44GKDQor44KE44G+44GQ44GhLOOBl+OCh+OBhuOBmA0KK+OBl+OBmuOBrizjgYTjgZXjgoANCivjga/jgZfjgbks44KK44KH44GG44GE44GhDQor44G744KK44GELOOBv+OCiOOBlw0KK+OBquOBjOOBiuOBiyzjga7jgorjgZMNCivjgY/jgorjgZ8s44GX44KH44GG44G444GEDQor44GN44GwLOOBleOBquOBiA0KK+OBhOOBoCzjgb7jgaHjgZMNCivjgbXjgY/jgajjgb8s44GL44Ga44G/DQor44GT44Gw44KE44GXLOOBruOBvOOCiw0KK+OBhOOCiizjgZHjgpPjgYTjgaENCivjgZXjgZ8s44G+44GZ44GQDQor44G+44KL44KE44G+LOOBsuOCjeOBteOBvw0KK+OBguOBiuOChOOBvizjgZfjgZLjgosNCivjgZfjgpPjganjgYYs44KE44GZ44GKDQor44GC44GE44GL44KPLOOBjeOCh+OBhuOBmA0KK+OBleOBi+OBruOBhuOBiCzjgZHjgpPjgYTjgaENCivjgbXjgZjjgb7jgY0s44Gf44Gg44GC44GNDQor44GL44KP44Gv44KJLOOBvuOBk+OBqA0KK+OCgOOCieOBnyzjgbLjgafjgobjgY0NCivjgojjgZfjgaAs44KG44GG44GE44GhDQor44GE44Gf44GP44KJLOOBpuOBpOOChA0KK+OBmOOBnuOBsOOCiSzjgojjgYYNCivjgZ/jgarjgYss44Go44GX44GKDQor44GL44GY44KP44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYrjgZXjgoANCivjga/jgZnjgYTjgZEs44GX44KF44GG44GYDQor44Go44GG44G+LOOChuOBv+OBkw0KK+OBi+OCj+OBjeOBnyzjgYLjgY3jgokNCivjgb7jgaTjgoLjgags44KE44GZ44Gy44GTDQor44Gv44Gb44GM44KPLOOBv+OBpOOBig0KK+OBteOBmOOBhCzjgajjgYrjgosNCivjga7jgoDjgoks44G/44Gh44Gf44GLDQor44KI44GG44GT44GfLOOBsuOBp+OBig0KK+OBi+OBquOBluOCjyzjgZPjgYbjgZ7jgYYNCivjgb7jgZnjgoTjgb4s44GX44KT44GE44GhDQor44GL44Gu44GGLOOBsuOCjeOBlw0KK+OBteOBquOChOOBvizjgYjjgaTjgYoNCivjgoTjgb7jgZfjgZ8s44GN44Gh44Gy44GTDQor44GV44Go44GGLOOBvuOBleOBi+OBmg0KK+OBi+OCgeOCguOBqCzjgojjgZfjgbXjgb8NCivjgYTjgajjgYYs44GN44KI44GXDQor44GK44GP44KA44KJLOOBl+OBkuOBig0KK+OBteOBmOOBhCzjgabjgovjgYoNCivjgY3jga/jgoks44Gf44GL44GXDQor44Gu44KA44KJLOOCiuOBleOBjw0KK+OBguOBj+OBn+OBjOOCjyzjgaTjgajjgoANCivjgYTjgZfjgaAs44GP44Gr44GKDQor44GG44KB44Gv44KJLOOBl+OBkuOCiw0KK+OBiuOBiuOBjizjgarjgYrjgobjgY0NCivjgZPjgpPjgaks44Gv44KL44GKDQor44Gf44GR44GgLOOBkeOBhOOBkw0KK+OBvuOBpOOBhCzjgbXjgb/jgYjjgYQNCivjgYvjgb/jgYrjgYss44G+44GV44KLDQor44GL44KC44GX44GfLOOBsuOCjeOBvw0KK+OChOOBquOBjuOBleOCjyzjgZ/jgZHjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44G+44KC44KLDQor44KC44KT44G+LOOBv+OBruOCiw0KK+OBhOOBhOOBoCzjgYvjgarjgYgNCivjga/jgZvjgYzjgo8s44Go44GX44GYDQor44Gq44GM44G744KKLOOBsuOCjeOBlw0KK+OCguOCiuOBiuOBiyzjgZ/jgaDjga7jgooNCivjgavjgZfjgoTjgb4s44GC44GN44GKDQor44KE44G+44KC44GoLOOChOOBmeOBig0KK+OBhOOBl+OBoCzjgajjgZfjgYoNCivjgbXjgovjgaks44G+44GV44GKDQor44GL44KT44GgLOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBoCzjgZfjgZLjgosNCivjgZXjgYTjgajjgYYs44Gf44GL44Gy44KNDQor44GN44KA44KJLOOBsuOBqOOBlw0KK+OBhOOCj+OBvyzjgoTjgZnjga7jgbYNCivjgoLjgoos44GX44KF44GG44GE44GhDQor44Gf44GL44KE44G+LOOBl+OCh+OBhuOBnuOBhg0KK+OBr+OChOOBl+OBkOOBoSzjgYLjgY3jgbLjgZMNCivjgZXjgYTjgajjgYYs44KE44GZ44GKDQor44GX44Gw44Gf44GNLOOBj+OBq+OBguOBjQ0KK+OBiuOBjuOBr+OCiSzjgojjgZfjga/jgosNCivjgYvjgajjgYYs44GE44GV44G/DQor44G144GP44GoLOOBquOBiuOChA0KK+OBiuOBoCzjgbLjgafjgYLjgY0NCivjgZXjgajjgYYs44G+44GV44Gy44KNDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBr+OBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgYrjgYzjgZXjgo/jgoks44Gm44Gk44KEDQor44KA44KJ44GNLOOBi+OBmuOBsuOBkw0KK+OBiuOBiuOBr+OBlyzjgYLjgY3jgbLjgagNCivjgZ/jgYvjga4s44Gf44GL44GXDQor44Gq44GL44GW44KPLOOBi+OBmuOBqOOBlw0KK+OBv+OChOOBmCzjgYLjgY3jgbLjgo0NCivjgZnjgYjjgarjgYws44KE44GZ44GKDQor44Gf44Gf44GNLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgYTjgo/jgYoNCivjgYLjgYrjgY0s44Gy44Gn44GXDQor44GZ44GO44KA44KJLOOBi+OBiuOCiw0KK+OBhOOBqOOBhizjgb7jgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBhOOBleOCgA0KK+OBi+OBn+OChOOBvizjgajjgZfjgbLjgZMNCivjgZXjgYTjgajjgYYs44G+44GV44GXDQor44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBguOBuSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZjjgb4s44GX44GS44GNDQor44KE44G+44GQ44GhLOOBvuOBk+OBqA0KK+OCj+OBjeOBluOBiyzjgb7jgZXjgbLjgZMNCivjgZXjgZMs44GV44Gg44GoDQor44GK44GK44Gk44GLLOOBqOOCguOBsuOCjQ0KK+OBpOOBi+OCguOBqCzjgZnjgZnjgoANCivjgYTjga7jgYbjgYgs44G144G/44GKDQor44Gq44GM44GKLOOBqOOBiuOCiw0KK+OBhuOCieOBsCzjgb7jgZXjgYoNCivjgZPjgZjjgb4s44KE44GZ44Gy44KNDQor44Gf44GR44GgLOOChuOBhuOBmA0KK+OBguOBiuOBrizjgZjjgpPjgYTjgaENCivjgYTjgZrjgYvjgo8s44Gu44G244GKDQor44GP44Gp44GGLOOBi+OBmuOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgajjgZfjgobjgY0NCivjgb7jgaTjgYos44G+44GV44G144G/DQor44GE44Gq44GM44GNLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OCguOBqCzjgZfjgofjgYbjgYTjgaENCivjgYTjga7jgYbjgYgs44Gy44Go44GXDQor44GK44Gu44Gn44KJLOOBpuOBpOOChA0KK+OBhOOBl+OBluOBiyzjgajjgZfjgbLjgZMNCivjga/jgY7jgo/jgoks44GR44KT44Ge44GGDQor44G144KL44GfLOOBvuOBleOCiw0KK+OBhuOBiOOBmOOBvizjgajjgb/jgYoNCivjgazjgb7jgZ8s44GX44KF44GG44GE44GhDQor44GI44KT44GpLOOBvuOBleOBsuOCjQ0KK+OBi+OBjOOChOOBvizjgZfjgpPjgoQNCivjgobjgorjgoLjgags44Gy44Go44GXDQor44G144GhLOOBn+OBoOOBig0KK+OBteOBmOOBiuOBjSzjgbLjgo3jga7jgbYNCivjgZXjgYTjgajjgYYs44G+44GV44Go44GXDQor44G+44Gk44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYvjgaQNCivjgbDjgbAs44GY44KF44KT44GE44Gh44KNDQor44GT44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgb7jgZXjgb8NCivjgarjgYvjgoTjgb4s44GL44Ga44GKDQor44GN44GXLOOBsuOCjeOBlw0KK+OBguOBleOBrizjgb7jgZXjgYvjgZoNCivjgYjjgpPjgaks44GC44GN44GKDQor44GE44GX44Gw44GXLOOBoOOBhOOBlA0KK+OBi+OBhOOBoCzjgb/jgaTjgYoNCivjgYTjgZHjgZjjgb4s44Gy44Gn44GC44GNDQor44Gv44KJ44GgLOOBqOOBl+OBig0KK+OBr+OBvuOBrizjgZPjga7jgoANCivjgYvjgo/jgYQs44G/44Gh44KLDQor44KP44GgLOOBqOOBl+OBvuOBlQ0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgarjgYss44Gb44GE44GYDQor44GC44GP44GkLOOCiOOBl+OBruOCig0KK+OBhOOBqOOBhizjgY3jgojjgb8NCivjgYLjgpPjganjgYYs44GE44KP44GYDQor44GC44GE44GW44KPLOOBteOBqOOBlw0KK+OBj+OBvOOBnyzjgY3jgojjgZcNCivjgbXjgYvjgYbjgb8s44GV44Go44GXDQor44GX44G/44GaLOOBsuOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgarjgb/jgY0s44Gm44Gk44KN44GGDQor44Gu44GW44KPLOOChOOBmeOBlw0KK+OBk+OBhOOBn+OBsOOBlyzjgY3jgojjgbLjgo0NCivjgZ/jgabjgYTjgZcs44Gy44KN44G/DQor44GL44KP44GL44G/LOOBi+OBmuOBig0KK+OBk+OBsOOChOOBlyzjgYvjgZrjga7jgooNCivjgYrjga7jgZrjgYss44Gy44Gn44GKDQor44Gf44GQ44GhLOOBv+OBpOOBkA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYLjgY0NCivjgZXjgajjgYYs44KE44GZ44Gy44KNDQor44GP44KP44Gv44KJLOOBl+OCjeOBhg0KK+OBm+OBqCzjgZXjgajjgZcNCivjgZTjgZEs44Gy44Gn44GNDQor44KI44GX44KA44KJLOOBjeOCiOOBlw0KK+OBn+OBi+OChOOBvizjga7jgbbjgobjgY0NCivjgZXjgZXjgY0s44KG44GN44GKDQor44GL44Gu44GGLOOBl+OBkuOBjQ0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjga/jgosNCivjgarjgYzjgYrjgYss44Go44KC44KG44GNDQor44GZ44Ga44GNLOOBsuOBp+OBjQ0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoLjgoos44GV44Go44KLDQor44GZ44Ga44GNLOOBhOOBpOOBig0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgajjgZcNCivjgoTjgbbjga/jgoks44G/44Gk44KI44GXDQor44GX44KJ44GE44GXLOOBi+OBmuOBjQ0KK+OBjeOBj+OBnyzjgb7jgZXjga7jgbYNCivjgarjgYvjgYQs44G/44Gk44Gu44KKDQor44GP44KJ44KC44GoLOOChuOBn+OBiw0KK+OBmeOBv+OCiOOBlyzjgbLjgafjgYoNCivjgZ/jgYvjgY4s44Gy44KN44Gy44GVDQor44GX44KH44GG44GYLOOBruOCiuOBig0KK+OBiuOBleOBoCzjgb7jgZXjgobjgY0NCivjgYLjgZXjga4s44GV44Go44GXDQor44GE44KP44GVLOOBjeOCiOOBlw0KK+OBsOOBsCzjgobjgZ/jgYsNCivjgbLjgo3jgZ8s44GV44Go44KLDQor44G144GY44KC44GoLOOBv+OBleOBkw0KK+OBleOBrizjgb7jgZXjgosNCivjgoLjgajjgY0s44KE44GZ44KG44GNDQor44GE44Go44GGLOOBvuOBleOBruOCig0KK+OBhuOBkeOBjOOCjyzjgbXjgb/jgYoNCivjgYbjgoHjgbDjgoTjgZcs44GE44GV44GKDQor44GE44Gq44Go44G/LOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OChOOBquOBjizjgb7jgZXjgYLjgY0NCivjga/jgoks44GE44GV44GKDQor44Gq44GL44Gv44KJLOOBtuOCk+OCjeOBhg0KK+OBleOBhOOBn+OBkSzjgZvjgYTjgZgNCivjgYvjgZfjgoTjgb4s44Gy44KN44GXDQor44GV44GL44GELOOBqOOCguOChuOBjQ0KK+OBhOOBqOOBhizjga7jgorjgYvjgaQNCivjgarjgYvjgoDjgoks44KI44GX44Gu44G2DQor44GK44GK44Gu44GOLOOBn+OBkeOBlw0KK+OBhOOBi+OBvyzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44GX44GE44GqLOOBqOOBv+OBig0KK+OBn+OBvuOBruOBhCzjgZfjgofjgYbjgYTjgaENCivjgY/jgbws44Gy44Gn44GC44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBu+OBo+OBnyzjgbLjgajjgZcNCivjgbvjgYvjgoos44Gf44GL44KG44GNDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBu+OBl+OBrizjgZfjgoXjgYbjgYTjgaENCivjgYvjgbbjgonjgY4s44Go44GX44Gy44KNDQor44GK44GV44GgLOOBqOOBl+OBteOBvw0KK+OBmeOBiOOBsuOCjSzjgZ/jgYvjgYoNCivjgoDjgonjgYvjgo8s44KI44GX44G/DQor44GE44KP44GV44GNLOOBkeOCk+OBmA0KK+OChOOBvuOCgOOCiSzjgZfjgpPjgZgNCivjgoLjgorjgZ8s44Gf44Gk44GKDQor44GE44GR44GgLOOCiOOBl+OBruOCig0KK+OChOOBhuOBoSzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44GnDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBguOBquOCkyzjgYjjgaTjgZgNCivjgavjgZfjga4s44Gf44Gk44KN44GGDQor44GT44GX44G/44GaLOOChOOBmeOBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgYjjgYzjgo8s44Go44GX44GKDQor44KE44G+44GW44GNLOOBn+OBpOOBsuOCjQ0KK+OBhOOBvuOBnOOBjSzjgojjgZfjgbXjgoYNCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44Gr44GX44Gv44KJLOOChuOBhuOBhOOBoQ0KK+OBiuOBi+OBuSzjgYTjgZXjgoANCivjgZXjgYvjgYQs44G+44GV44Gy44KNDQor44Gf44GgLOOBqOOBl+OBig0KK+OBmeOBiOOCiOOBlyzjgb/jgY3jgYoNCivjga/jgoTjgZcs44GE44Gf44KLDQor44Gf44GL44Gv44GXLOOBkeOCk+OBmA0KK+OBk+OBguOBlyzjga/jgZjjgoENCivjgoLjgorjgYvjgo8s44GI44GE44GXDQor44GL44Go44GGLOOChOOBmeOBj+OBqw0KK+OBvuOBiOOBsCzjgb7jgZXjgbLjgo0NCivjgoTjga4s44Gf44Gk44GKDQor44GE44Go44GGLOOCiOOBl+OBr+OCiw0KK+OBquOBi+OBhCzjgbLjgo3jgZcNCivjgYrjgaDjgY7jgoos44GL44Ga44GKDQor44GI44KT44GpLOOBpuOBpOOBig0KK+OBn+OBkeOBhCzjgoTjgZnjgobjgY0NCivjgarjgYvjgZ/jgass44G/44Gh44Gu44KKDQor44GE44KP44GV44GNLOOBqOOCguOBsuOCjQ0KK+OBi+OCieOBi+OBlSzjgYLjgY3jgbLjgo0NCivjgYLjgZXjga4s44GR44KT44GE44GhDQor44GE44KP44G244GhLOOBvuOBleOCiw0KK+OBr+OCk+OBoCzjgajjgYrjgosNCivjgabjgonjgYos44KI44GX44KG44GNDQor44Gf44GR44GELOOCiOOBl+OCguOBqA0KK+OBr+OBl+OCguOBqCzjgojjgZfjgb8NCivjgb/jgoTjgZXjgYss44Gk44Go44KADQor44Gm44KJ44GgLOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBnyzjgoTjgZnjgobjgY0NCivjgarjgYzjgoQs44GL44Gk44G/DQor44Gv44GX44KC44GoLOOBkeOCk+OBmA0KK+OBiuOBiuOBj+OCiSzjgaTjgajjgoANCivjgarjgYvjgZXjgY0s44G/44Gk44GQDQor44GN44KK44Gv44KJLOOBqOOBl+OChuOBjQ0KK+OBguOCieOBhCzjgZfjgoXjgpPjgZgNCivjgYTjgo/jga4s44Gy44KN44KG44GNDQor44Gv44Gj44Go44KKLOOBsuOCjeOBruOCig0KK+OBmeOBmuOBjSzjgajjgYrjgosNCivjgavjgZfjga/jgoks44Gy44KN44GXDQor44GV44GV44GNLOOBl+OBmuOBig0KK+OBr+OBquOBteOBlSzjgaTjgajjgoANCivjga7jganjga4s44Gf44Gk44KG44GNDQor44GL44KP44Gw44GfLOOBj+OBq+OBig0KK+OBl+OBv+OBmizjgojjgZfjgarjgYoNCivjgarjgYzjgZfjgb4s44Gk44GQ44Gy44GTDQor44KC44KKLOOBi+OBmuOBig0KK+OBl+OBv+OBmizjgZfjgZLjgYLjgY0NCivjgbLjgZXjgoTjgZks44GR44GE44Ge44GGDQor44GL44Gf44GG44KJLOOBl+OBkuOChuOBjQ0KK+OBn+OBkeOCgOOCiSzjgYLjgY3jgb/jgaQNCivjgYTjgb7jgavjgZcs44G+44GV44GoDQor44GK44GL44GgLOOBguOBjeOBsuOBkw0KK+OBquOBi+OBiCzjgYrjgZXjgoANCivjgZfjgo3jga4s44GY44KF44KT44GE44GhDQor44KI44GT44KE44G+LOOBruOBtuOBig0KK+OBiuOBi+OBluOCjyzjgb7jgZXjgbLjgZMNCivjgYvjgb8s44Gu44KK44Go44GXDQor44GP44G+44G5LOOBvuOBleOBig0KK+OBl+OBv+OBmizjgZ/jgaTjgo3jgYYNCivjgoTjgarjgY7jgZXjgo8s44GX44KH44GG44GE44GhDQor44G+44GN44GuLOOChuOBhuOBmA0KK+OBleOCjyzjgo/jgZ/jgosNCivjgYbjgZfjgo3jgaAs44GP44Gr44GKDQor44G+44Gh44GgLOOBpOOBi+OBlQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgYoNCivjgZfjgZLjgoDjgoks44Go44GX44Gv44KLDQor44Gy44GQ44GhLOOBn+OBi+OBlw0KK+OBhOOBhOOBrOOBvizjgb7jgZXjgobjgY0NCivjgYTjgZrjgb8s44G/44Gu44KLDQor44Gv44KE44GXLOOBsuOCjeOBqOOBlw0KK+OChOOBjizjgaHjga/jgosNCivjgYrjgYrjgYvjgo/jgoks44GN44KI44Gf44GRDQor44G144GP44GK44GYLOOBiuOBleOCgA0KK+OBhuOBjOOBmOOCkyzjgb7jgZXjgb8NCivjgZ/jgarjgbks44GX44KTDQor44GU44GX44G+LOOBvuOBleOBsuOBpw0KK+OBguOCk+OBqeOBhizjgbLjgo3jgZcNCivjgYrjgaDjgb4s44KG44GN44GKDQor44GK44GL44GW44GNLOOBhOOCj+OBig0KK+OBhOOBl+OBi+OCjyzjgbXjgb/jgobjgY0NCivjgoDjgonjgoTjgb4s44G+44GV44GTDQor44Gv44KE44GV44GLLOOBkeOBhOOBmA0KK+OBquOBi+OBmOOBvizjgZ/jgY8NCivjgZ/jgZHjgoLjgags44KI44GX44G/DQor44GN44Gf44GY44G+LOOBmOOCheOCk+OBkw0KK+OBv+OBi+OBvyzjgarjgb8NCivjgo/jgonjgZfjgaos44GY44KF44KT44KEDQor44GN44KA44KJLOOBl+OCkw0KK+OBiuOBluOCjyzjgojjgZfjgYvjgZoNCivjgoTjgb7jgoDjgoks44Gy44Go44GXDQor44KI44GX44GgLOOBl+OBkuOBjQ0KK+OBn+OBoeOBsOOBqizjgZ/jgY/jgo3jgYYNCivjgb7jgaTjgoLjgags44Gu44KK44Gu44GZ44GRDQor44G/44GX44G+LOOBsuOBp+OBguOBjQ0KK+OBm+OBjSzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44KE44GZ44Gy44GVDQor44GK44GK44GE44GRLOOBvuOBleOBlw0KK+OBteOBmOOCguOBqCzjgZfjgoXjgYbjgZgNCivjgojjgZfjgoDjgoks44Gu44G244Gy44GTDQor44GT44Gw44KE44GXLOOCgeOBhOOBmA0KK+OBiuOBiuOBjOOBvyzjgojjgZfjgobjgY0NCivjgYvjgYQs44GX44KH44GG44Gf44KN44GGDQor44GL44GI44GkLOOBvuOBleOBr+OCiw0KK+OCguOCjeOBhCzjgZ/jgYvjgbLjgo0NCivjgb/jgZrjga4s44GE44GP44GKDQor44GK44GK44Gk44GLLOOBguOBjeOBsuOBkw0KK+OBiuOBiuOBnyzjgYvjgYrjgosNCivjgZvjgY3jga0s44KK44KF44GG44GYDQor44G/44KE44GQ44GhLOOBi+OBmuOBn+OBiw0KK+OCiOOBreOBoCzjgarjgbvjgZMNCivjgbvjgorjgYbjgaEs44G+44GV44GTDQor44GI44GQ44GhLOOBi+OBpOOBvw0KK+OBhuOBl+OCjeOBvuOBpCzjgYvjgZrjgb8NCivjgYTjgYTjgaAs44KG44GN44Gy44KNDQor44KI44GX44GgLOOCiOOBl+OBvw0KK+OBquOBi+OBmyzjgYLjgY3jgYoNCivjgZnjgZrjgY0s44KG44GG44GTDQor44GK44GE44GL44KPLOOBiOOBhOOBkw0KK+OBi+OCj+OBuSzjgZXjgaTjgZMNCivjgZ/jgavjgZbjgo8s44Gf44GL44GKDQor44GL44Gt44GTLOOBr+OCi+OCiA0KK+OBteOBmOOBiuOBiyzjgZHjgYTjgZMNCivjgoDjgonjgYrjgYss44Gk44KI44GXDQor44GG44Gs44G+LOOBkeOBhOOBkw0KK+OBv+OChOOBkSzjgbXjgY3jgZMNCivjgarjgYvjgoDjgoks44Gh44GC44GNDQor44GK44GK44KPLOOBvuOBleOBr+OCiw0KK+OBreOCguOBqCzjgYTjgaHjgo3jgYYNCivjgavjgZfjgoDjgoks44Go44KC44Gy44GVDQor44Gf44Gk44G/LOOBhOOCj+OBig0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgZnjga7jga/jgoks44Go44GX44Gy44GTDQor44GC44GZ44G+LOOBjeOCiOOBi+OBmg0KK+OBn+OBi+OBsCzjga7jgbbjgYLjgY0NCivjgojjgZfjgoDjgoks44GV44Go44GXDQor44GC44G5LOOBquOBiuOBqA0KK+OBjeOBj+OBoSzjgZHjgYTjgZgNCivjgarjgYvjgoDjgoks44GL44Ga44G+44GVDQor44Gv44KA44KJLOOBpOOBqOOCgA0KK+OBmeOBmuOBjSzjga7jgbbjgbLjgagNCivjgYvjgo/jgoDjgoks44Go44GX44KEDQor44Gy44Gz44GuLOOBsuOBleOBiA0KK+OBjeOBn+OBoCzjgb7jgZXjgbLjgo0NCivjgZXjgajjgYYs44Gk44Gt44GKDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBhOOBqOOBhizjgobjgYbjgZgNCivjgbXjgY/jgajjgb8s44G+44GV44KLDQor44KA44KN44Ga44G/LOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBquOBiyzjgZjjgoXjgpPjgYTjgaENCivjgYrjgYvjgaAs44GR44KT44GE44GhDQor44Go44GG44GU44GGLOOBn+OBkeOBlw0KK+OBquOCiuOBnyzjgZ/jgYvjgZcNCivjgYTjgZHjgZbjgY0s44Gf44GR44GXDQor44GL44KP44Gw44GfLOOBl+OCjeOBhg0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgYoNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GV44Go44GGLOOBl+OCk+OChA0KK+OBn+OBkeOBluOCjyzjgojjgZfjgbLjgo0NCivjgoTjgarjgYzjgo8s44Gy44KN44GXDQor44KE44G+44GV44GNLOOBruOCiuOChuOBjQ0KK+OBl+OBjOOBjSzjga7jgorjgYLjgY0NCivjgobjgb8s44Gf44GR44GXDQor44GK44GW44GNLOOBpOOBqOOCgA0KK+OBquOBjOOBl+OBvizjgZ/jgYTjgZnjgZENCivjgoTjgbbjgYbjgaEs44Gy44GV44GKDQor44G744Gd44KELOOBsuOBleOBlw0KK+OBq+OBl+OBluOCjyzjgZ3jgYbjgZgNCivjga/jgoTjgb8s44KI44GX44GKDQor44Gv44Gb44GM44KPLOOBquOBiuOBvw0KK+OBi+OCj+OBleOBjSzjgYvjgaTjgbLjgZMNCivjgajjgojjgYTjgZrjgb8s44Gf44GL44KG44GNDQor44GK44GP44KA44KJLOOBvuOBleOBqA0KK+OChOOBvuOBoCzjga7jgbbjgbLjgo0NCivjgavjgo8s44GI44GE44Gy44GTDQor44Gr44GX44GW44GNLOOBsuOCjeOBlw0KK+OBmeOBjuOCguOBqCzjgZfjgZLjgosNCivjgYrjgYrjgZXjgo8s44Go44KC44Gq44GKDQor44Go44GgLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgojjgZfjgYvjgaQNCivjgb/jgYbjgoks44Gy44GV44GXDQor44KE44G+44GW44GNLOOBquOBiuOChuOBjQ0KK+OBleOBi+OCguOBqCzjgbLjgonjgY8NCivjgoTjgb7jgaAs44G/44Gh44GTDQor44GE44Gu44GG44GILOOBi+OCiOOBkw0KK+OChOOBmeOBhCzjgb7jgZXjgogNCivjgb7jgaTjgaAs44KG44G/DQor44GL44Gf44GK44GLLOOBguOBkeOBvw0KK+OBmeOBmuOBjSzjgZHjgYTjgZMNCivjga/jgoTjgZcs44GR44GE44GTDQor44Gv44G+44G+44GkLOOChOOBmeOBkw0KK+OBr+OBvuOBrizjgYjjgooNCivjgb/jgZrjgZ/jgass44G/44KI44GTDQor44GZ44G/44GfLOOCguOBqOOBoeOBiw0KK+OBr+OChOOBlyzjgb7jgY3jgZMNCivjgajjgY/jgarjgYws44KG44G/44GTDQor44GL44Go44GGLOOBruOBtuOBkw0KK+OBvuOBpOOBhuOCiSzjgb/jgYjjgZMNCivjgbLjgoPjgY/jgaos44Gy44Gn44GTDQor44GC44KT44GW44GELOOCiOOBhuOBkw0KK+OBteOBi+OBvuOBoSzjgZnjgb/jgYoNCivjgb/jgZXjgY0s44Gf44GR44GXDQor44KC44Gh44Ga44GNLOOBqOOCiOOBsuOBkw0KK+OBguOBiuOChOOBjizjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44KG44GN44Gy44GnDQor44GN44GbLOOBguOBjeOCiQ0KK+OBhuOBiOOCguOCiizjgZfjgZLjgosNCivjgYLjgZrjgb4s44G/44GI44GTDQor44GK44Gg44GP44KJLOOBsuOCjeOBv+OBoQ0KK+OBn+OBquOBiyzjgbLjgZXjgYoNCivjgajjgYTjgZ/jgass44GL44Gk44KN44GGDQor44KE44G+44GW44GNLOOBkeOCk+OBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjgb7jgaTjgb/jgoQs44G+44GV44Gy44GTDQor44G144GX44G/LOOBoeOBi+OBqA0KK+OBjeOCh+OBhuOChOOBvizjgabjgovjgYoNCivjgojjgZfjgaAs44GR44GE44GTDQor44GG44KL44GX44GpLOOBguOBpOOBkw0KK+OBm+OBiizjgb/jgYjjgZMNCivjgb/jgarjgYvjgo8s44Gk44GN44GTDQor44G144GY44GuLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgZ8s44KI44GX44G/DQor44GK44GK44GMLOOBvuOBleOBruOCig0KK+OBquOBjOOBr+OBvizjgZ/jgaTjgYoNCivjgZjjgpPjga4s44KE44GZ44GNDQor44GE44Gh44GL44KPLOOBr+OBmOOCgQ0KK+OBr+OChOOBlyzjgZ/jgaDjgZcNCivjga/jgZ/jgoQs44Go44GX44KG44GNDQor44G744KK44GT44GXLOOBruOBtuOBsuOBkw0KK+OBi+OBqyzjgYLjgY3jgYoNCivjgbvjgpPjgaAs44KC44Go44Gy44GVDQor44Gk44Gh44KELOOBqOOBv+OBig0KK+OBn+OBvuOBpizjgb/jgaTjgosNCivjgobjgYvjgo8s44GI44GE44GYDQor44GV44GL44GELOOChuOBhuOBmA0KK+OBv+OChOOBmCzjgobjgYbjgYTjgaENCivjgZ/jgoDjgoks44Gy44Go44GXDQor44GL44KP44GQ44GhLOOBsuOBp+OBvuOCiw0KK+OBleOBrizjgb7jgZXjgYvjgZoNCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GT44Gw44KE44GXLOOChuOBjeOBig0KK+OBhOOBoCzjgYTjgaHjgo3jgYYNCivjgZvjgY3jgoLjgags44KI44GX44Gy44KNDQor44GL44KP44G+44GfLOOBi+OBmuOBig0KK+OBj+OBvCzjgbLjgo3jgZcNCivjgZ/jgYvjga4s44KE44GZ44Gy44KNDQor44KP44Gf44Gq44G5LOOChOOCiOOBhA0KK+OBhOOBi+OCi+OBjizjgb/jga7jgosNCivjgZXjgajjgYYs44Gf44Gg44GXDQor44Gy44Gg44GLLOOCiOOBl+OBsuOBkw0KK+OCiOOBl+OBhCzjgZPjgYbjgZ7jgYYNCivjgZfjgb7jgoDjgoks44GI44GE44KNDQor44GK44GzLOOBqOOBl+OBig0KK+OBquOBi+OBmOOBvizjgajjgY/jga7jgbYNCivjgbvjgZfjga4s44Gu44G844KLDQor44GL44KP44KC44GoLOOBmOOCheOCk+OBmA0KK+OBq+OBl+OBoCzjgoTjgZnjgbLjgacNCivjgZfjgb/jgZos44G+44GV44GC44GNDQor44Gf44KA44KJLOOBmOOCheOCkw0KK+OBqOOCiOOBl+OBvizjgojjgZfjgb/jgaQNCivjgYjjgpPjgaks44Gf44GL44GKDQor44GK44GM44KPLOOBquOBpOOBguOBjQ0KK+OBjeOBn+OBr+OCiSzjgbXjgb/jgYoNCivjgYrjgZDjgass44GR44KT44GYDQor44GK44G244GhLOOBkeOBhOOBnuOBhg0KK+OBv+OCiOOBlyzjgYvjgZrjgYoNCivjgYTjgZHjga4s44GX44KT44GE44GhDQor44GG44GI44G+44GkLOOBi+OBpOOBguOBjQ0KK+OBteOBj+OBluOBqCzjgorjgoXjgYbjgYTjgaENCivjgYLjgYrjgY0s44Gf44GL44GXDQor44GV44KB44GY44G+LOOBleOBoeOBig0KK+OBjeOBqeOBvizjgZHjgpPjgZgNCivjgZPjgaDjgYTjgoks44GN44GP44GKDQor44Gy44GQ44GhLOOBn+OBpOOBig0KK+OBvuOBiOOBl+OCjSzjgYvjgZrjgbLjgo0NCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gq44GL44GM44KPLOOCiOOBhuOBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgacNCivjgajjgorjgYYs44G+44GV44GC44GNDQor44G+44KL44KE44G+LOOBquOBiuOBjQ0KK+OBvuOBpOOBhuOCiSzjgZHjgpPjgZgNCivjgZ/jgoHjgaHjgYss44GL44GK44KLDQor44GV44GV44GNLOOBjeOCh+OBhuOBkw0KK+OBiuOBiuOBn+OBjSzjgZfjgpPjgZnjgZENCivjgYrjgYzjgo8s44G+44GT44GoDQor44G+44Gk44G/LOOBvuOBmeOBiA0KK+OBguOCiuOBvuOBpCzjgZfjgZLjgYoNCivjgZPjgonjgY8s44KG44GG44Ge44GGDQor44G/44KE44GX44GfLOOBv+OBruOCiw0KK+OBiuOBmuOBoSzjgb/jgaTjgYoNCivjgZXjgYvjgY3jgbDjgoks44Gf44GL44GTDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBsuOCjeOBmyzjgajjgoLjgZMNCivjgaTjgaHjgaAs44Go44GX44GC44GNDQor44Gv44GX44KJLOOBoeOCiA0KK+OBteOCjeOCguOBqCzjgb/jga7jgosNCivjgZPjgZXjgYss44GC44GN44Gy44KNDQor44Gf44GR44GE44GhLOOCiOOBhuOBhOOBoQ0KK+OBpuOCieOBoCzjgojjgZfjgYvjgZoNCivjgZPjgYTjgacs44Gy44Gn44GNDQor44GV44GE44Go44GGLOOBl+OCh+OBhuOBhOOBoQ0KK+OBv+OChOOBquOBjCzjga7jgorjgbLjgZMNCivjgavjgZfjgoDjgoks44GX44KT44KEDQor44Gf44Gq44GLLOOChuOBhuOBnuOBhg0KKyzjgobjgb/jgZMNCivjgobjgY/jgbLjgo0s44KM44GE44GTDQor44KI44GX44KP44KJLOOBmOOCheOCkw0KK+OBguOBiuOBjSzjgovjgb/jgZMNCivjgZ/jgabjgYTjgZcs44KG44KK44GTDQor44Gf44GR44GgLOOBqOOBv+OBkw0KK+OChOOBmeOBoCzjgbXjgZjjgZMNCivjgYLjgYrjgY0s44Gy44Gn44KG44GNDQor44KI44GX44GgLOOBquOBiuOBkw0KK+OBguOBoOOBoSzjgYLjgY3jgZMNCivjga7jgZDjgaEs44KI44GX44Gu44G2DQor44KP44Gf44Gq44G5LOOBl+OBkuOChuOBjQ0KK+OBn+OBkeOBqOOBvyzjgZPjgYbjgYTjgaENCivjgY/jgorjgo/jgY0s44G+44GV44GNDQor44GN44Gf44Ga44KBLOOCguOBqOOBsuOBkw0KK+OBiuOBleOBoCzjgajjgZfjgYoNCivjgYLjgZfjgYzjgYQs44KI44GX44Gf44GLDQor44GV44GL44GX44GfLOOBjeOCiOOBlw0KK+OBpOOBoeOBoCzjgZfjgoXjgpPjgYTjgaENCivjgYrjgYvjgaAs44G/44Gh44GKDQor44Gf44Gq44GLLOOBsuOBp+OBoeOBiw0KK+OBiuOBiuOBn+OBlOOBlyzjgZPjgYbjgZ7jgYYNCivjgY/jgo3jgZXjgYss44GI44GE44GYDQor44GZ44GW44GNLOOBguOBpOOBlw0KK+OBi+OBreOBv+OBpCzjgbLjgo3jgobjgY0NCivjgb7jgags44GL44Ga44KG44GNDQor44Go44KI44G144GPLOOBvuOBleOBig0KK+OBguOCieOBhCzjgbLjgo3jgYvjgZoNCivjgbXjgZjjgYvjgo8s44Gu44G244GC44GNDQor44KI44GT44GKLOOBn+OBi+OCiOOBlw0KK+OBguOBvuOBrizjga/jgovjgYoNCivjgYrjgYrjga4s44Gf44GL44G144G/DQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgZXjgYTjgajjgYYs44G/44Gk44GKDQor44GK44GGLOOBi+OBpOOBvw0KK+OBv+OChOOBluOBjSzjgYTjgZXjgYoNCivjgY3jgoQs44G144G/44Gf44G+DQor44G144GY44GfLOOBi+OBmuOBsuOBkw0KK+OCgOOBi+OBhCzjgojjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44GL44GK44KLDQor44GL44KP44GELOOChuOBjeOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZ/jgYsNCivjgZ/jgZHjgYbjgaEs44KK44KH44GG44GYDQor44GT44GY44G+LOOBsuOBp+OBig0KK+OBr+OBm+OBjOOCjyzjgZ/jgaTjgYoNCivjgZPjgYws44KE44GZ44GKDQor44KE44G+44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBnyzjgb/jga7jgosNCivjgoTjgb7jgoLjgags44GX44KT44GZ44GRDQor44GV44GP44KJ44KC44GoLOOBteOBmOOBqA0KK+OChOOBquOBjuOBleOCjyzjgY/jgavjgYoNCivjgbXjgY/jgYQs44GT44GG44GYDQor44GL44Go44GGLOOBi+OBmuOBvw0KK+OBhOOCj+OBnyzjgoTjgZnjgobjgY0NCivjgbXjgZjjgoLjgags44Gf44Gg44G144GVDQor44GN44Gu44GX44GfLOOBguOBjeOBsuOBkw0KK+OChOOBvuOBoCzjgZjjgo3jgYYNCivjgY/jgonjgb7jgYgs44GT44GG44GYDQor44GP44KJ44GfLOOBn+OBi+OBlw0KK+OCiOOBk+OBhCzjgbXjgb/jgajjgZcNCivjgZPjgbDjgoTjgZcs44Gy44Gn44KEDQor44GL44Go44GGLOOCguOCiuOCiOOBlw0KK+OBvuOBmeOBhCzjgbLjgajjgZcNCivjgYbjgonjgZ8s44Gm44KL44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBhuOBl+OBlOOCgSzjgb7jgZXjgZ/jgYsNCivjga/jgonjgYQs44GX44KT44GYDQor44GG44Gg44GM44KPLOOBqOOBl+OCjeOBhg0KK+OBn+OBi+OBjizjgYvjgZrjgobjgY0NCivjgb/jgoTjgZbjgY0s44GV44Go44G/DQor44KE44G+44KA44KJLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBjuOBlyzjgorjgoXjgYbjgYTjgaENCivjgZPjgb7jgaQs44KI44GX44Gf44GLDQor44Gv44G+44GQ44GhLOOChuOBiw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoTjgb7jgaAs44KE44GZ44Gu44KKDQor44GL44GM44KPLOOBv+OBoeOBig0KK+OBjeOBj+OBoSzjgbXjgb/jgY0NCivjgY/jgZgs44KE44GZ44GXDQor44GE44Go44GGLOOBsuOBleOBguOBjQ0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgYvjgZoNCivjgYLjgonjgY0s44GX44KT44GZ44GRDQor44GK44GL44G5LOOBsuOCjeOBvw0KK+OBk+OBvOOCiizjgZfjgpPjgYTjgaENCivjgYrjgaEs44GK44GV44KADQor44G+44KL44GKLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgZfjgoXjgpPjgZnjgZENCivjgZ/jgarjgYss44Gy44Gn44Gu44KKDQor44G+44Gk44KE44G+LOOBqOOBl+OBig0KK+OBiuOBiuOBpOOBiyzjgY/jgavjgYoNCivjgoTjgb7jgoLjgags44GR44KT44GYDQor44G144GY44GKLOOBv+OBpOOBiA0KK+OBruOCgOOCiSzjgbLjgZXjgZ/jgYsNCivjgbLjgo3jgZss44Gu44KK44KI44GXDQor44GC44KT44GW44GELOOBl+OBkuOBruOCig0KK+OBiuOBiuOBpOOBvCzjgb/jgaHjgo0NCivjgZXjgYTjgajjgYYs44KK44KF44GG44GYDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OCj+OCieOBleOCjyzjgY3jgY/jgYoNCivjgYLjgonjgYvjgo8s44KE44GZ44Gq44KKDQor44GU44G/LOOBmOOCheOCkw0KK+OBiOOCk+OBqSzjgZXjgaHjgYoNCivjgojjgZfjgaAs44G+44GV44Gv44KLDQor44GG44Gh44GgLOOBsuOBp+OBig0KK+OBguOBleOBhOOBrSzjgabjgaTjgoQNCivjgYrjgZfjgb4s44GX44GS44GKDQor44Gf44Gq44GLLOOBn+OBpOOBig0KK+OBiuOBiuOBkyzjgb7jgZXjgo3jgYYNCivjgYTjgZrjgaQs44Gq44GK44KLDQor44Gv44KE44GXLOOBvuOBleOChuOBjQ0KK+OBteOBmOOBjSzjgajjgYrjgosNCivjgZfjgYrjgYvjgYQs44GL44Ga44Gy44GTDQor44Gq44GM44G144GhLOOBjeOCiOOBpOOBkA0KK+OBvuOBpOOCguOBqCzjgZ/jgYTjgYTjgaENCivjgYvjgajjgYYs44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBkeOBhOOBmA0KK+OBr+OBvuOBkOOBoSzjgorjgoXjgYbjgYTjgaENCivjgYvjga3jgZMs44KG44Gf44GLDQor44GV44Go44GGLOOBqOOBl+OBig0KK+OBiuOBiuOBhCzjgb7jgZXjgY0NCivjga/jgoTjgZcs44Gb44GE44GYDQor44GN44G/44Gk44GLLOOBvuOBleOBig0KK+OBteOBj+OBoCzjgb7jgoLjgosNCivjgarjgYvjgoDjgoks44Gf44Gg44GXDQor44KE44Gw44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgobjgY0NCivjgajjgY/jgaAs44Go44KC44GL44GaDQor44Gf44GL44Gv44GXLOOBi+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgb/jgaTjgYoNCivjga7jgZDjgaEs44KI44GG44GE44Gh44KN44GGDQor44GL44KP44GqLOOBruOCiuOBig0KK+OBquOBi+OBrizjgaTjgoTjgZMNCivjgoTjgb7jgaAs44G+44GV44GTDQor44Gy44KJ44G+44GkLOOBneOBhuOBn+OCjeOBhg0KK+OBguOCieOBhCzjgajjgZfjgobjgY0NCivjgojjgZfjga4s44GL44GK44KKDQor44Gv44G+44GgLOOBi+OBmuOBig0KK+OBiuOBiuOBnyzjgajjgZfjgbLjgZMNCivjgZfjgbDjgZ8s44G+44GZ44GC44GNDQor44KP44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBu+OBlyzjgY3jgojjgZcNCivjgb/jgo8s44G+44GV44GKDQor44Gf44Gq44GLLOOChuOBhuOBmA0KK+OBi+OBquOChCzjga7jgorjgbLjgZMNCivjgZ/jgZHjgarjgYss44GY44KTDQor44GV44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBv+OBmuOBl+OBvizjgajjgojjgYbjgYTjgaENCivjgabjgonjgaAs44GX44GS44KLDQor44KC44KK44KELOOBn+OBoOOChuOBjQ0KK+OBmeOBjuOChOOBvizjgoLjgajjga/jgosNCivjgYbjgb8s44Gv44KL44GKDQor44GN44GQ44GhLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBhuOCi+OCj+OBlyzjgZ/jgZHjgZcNCivjgbLjgonjgb7jgaQs44G/44Gh44GK44GNDQor44GE44Ga44GvLOOBr+OCi+OBig0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgZXjgajjgYYs44G+44GZ44GKDQor44GX44GS44Gu44G2LOOBkeOCk+OBmA0KK+OCiOOBl+OCguOBqCzjgYvjgZrjgYoNCivjgZfjgbDjgZ8s44Gk44KI44GXDQor44G144Gq44GT44GXLOOBhOOBoeOBnuOBhg0KK+OBmeOBquOBoCzjgoTjgZnjgZjjgo3jgYYNCiss44KE44GZ44GKDQor44GN44GP44G+LOOBquOBiuOBsuOBkw0KK+OBmeOBqCzjgZXjgajjgZcNCivjgavjgZfjgZbjgo8s44Gy44Gn44GKDQor44GT44Gw44KE44GXLOOBv+OBpOOBkw0KK+OBi+OCj+OBlOOBiCzjgb7jgZXjgbLjgZMNCivjgYTjgZjjgb4s44G144G/44GKDQor44Gr44GX44GKLOOBsuOCjeOBlw0KK+OBq+OBl+OChOOBvizjga7jgbbjgobjgY0NCivjgZXjgYTjgajjgYYs44KI44GX44GC44GNDQor44GL44Gp44KP44GNLOOBsuOCjeOBvw0KK+OBsuOCjeOBmyzjgZ/jgYvjgYoNCivjgZ/jgZDjgaEs44Gf44GL44KI44GXDQor44Gf44GL44GgLOOBqOOBl+OBr+OCiw0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgYvjgajjgYYs44GX44GS44GC44GNDQor44Gq44GL44Gv44KJLOOBj+OBq+OBig0KK+OBhOOBl+OBj+OBvCzjgorjgoXjgYbjgYTjgaENCivjgoTjgb7jgaAs44KI44GX44GKDQor44KP44GL44G+44GkLOOBk+OBhuOBmA0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgobjgY0NCivjgYvjgZ/jgoLjgags44GR44KT44GYDQor44Gf44GL44KE44G+LOOBjeOBv+OBsuOBkw0KK+OBpOOBoeOBoCzjgZ/jgaTjgZcNCivjgZ/jgaHjgbDjgaos44Gy44Gn44GKDQor44GT44Gw44KE44GXLOOBguOBjeOCiQ0KK+OBpOOBoCzjgajjgZfjgobjgY0NCivjgoLjgorjgYvjgo8s44KG44GN44GKDQor44GK44GP44GuLOOCiOOBl+OBig0KK+OBhOOBvuOBhCzjgb7jgoLjgosNCivjgoDjgonjgYos44Gf44Gg44GXDQor44GX44KC44KA44KJLOOBmOOCjeOBhg0KK+OBiOOCk+OBqSzjgajjgZfjga7jgbYNCivjgbvjgZfjgY/jgb4s44G+44GV44Gv44KLDQor44GL44KP44GbLOOBl+OCk+OBleOBjw0KK+OBvuOBoeOBoCzjgoDjga3jgZcNCivjgZPjgbDjgoTjgZcs44Gf44Gk44GKDQor44Gv44GgLOOBsuOCjeOBlw0KK+OBpOOBj+OBoCzjgb7jgZXjga/jgosNCivjgavjgZfjgYvjgo8s44GX44KH44GGDQor44G744KT44GgLOOBsuOCjeOBvw0KK+OCj+OBl+OBiuOBiyzjgajjgZfjgbLjgo0NCivjgoDjgo3jgYQs44KI44GGDQor44KE44GZ44GgLOOBvuOBleOBlw0KK+OCiOOBl+OBoCzjgbLjgo3jgobjgY0NCivjgbvjgoos44GC44Gk44GTDQor44GT44GG44GgLOOBk+OBhuOBiOOBhA0KK+OBi+OBvuOBoCzjgYjjgYTjgZgNCivjgYbjgYjjgoDjgoks44Gy44KN44G/DQor44G+44Gk44Gw44KJLOOBi+OBmuOChA0KK+OBv+OBquOBqOOBkOOBoSzjgZfjgZLjgosNCivjgY/jgYzjgabjgpMs44KE44GZ44GXDQor44GE44KP44GbLOOBruOBtuOBsuOCjQ0KK+OBr+OChOOBlyzjgb/jgaTjgbLjgo0NCivjgYTjgY/jgarjgb8s44GX44KT44GYDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBk+OChOOBvizjgbLjgo3jgb/jgaENCivjgYrjgajjgb7jgoss44KI44GX44Gy44GoDQor44Gq44GM44GELOOCguOBqOOBr+OCiw0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgYTjgb7jgYQs44Gf44Gk44KLDQor44G+44GZ44GgLOOBn+OBi+OBsuOCjQ0KK+OBi+OCj+OBuSzjgorjgofjgYbjgZ8NCivjgZXjgajjgYYs44GR44GE44GYDQor44GV44GTLOOBvuOBleOBr+OCiw0KK+OCgOOBi+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgYrjgZfjgb4s44GP44GZ44Gf44GLDQor44Gk44Gh44KELOOBhOOBmuOBvw0KK+OBr+OChOOBl+OBkOOBoSzjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44Gb44GE44GE44GhDQor44KA44KJ44GV44GoLOOChuOBjeOBsuOBkw0KK+OBr+OCi+OChOOBvizjgb7jgZXjgYoNCivjgZfjgZLjgoLjgoos44GX44KF44KT44GE44GhDQor44G144Gq44GNLOOBsuOBleOBig0KK+OCj+OBoCzjgYTjgY/jgagNCivjgaTjgbzjgYss44GX44KT44GZ44GRDQor44Go44GgLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OChOOBvuOCgOOCiSzjgZ/jgaDjgYLjgY0NCivjgYTjgZfjgZDjgo0s44GX44KT44GE44GhDQor44G144Gq44Gv44GXLOOChuOBjQ0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjgojjgZfjgaAs44GN44G/44Gy44KNDQor44KP44Gf44Gq44G5LOOBpOOBjuOBig0KK+OBquOBi+OBq+OBlyzjgZ/jgYvjgb/jgaQNCivjgoTjgb7jgoLjgags44GY44KF44KT44GYDQor44GE44GX44GL44KPLOOBvuOBleOChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgZPjgYbjgYTjgaENCivjgYrjgY/jga4s44GV44Go44GXDQor44Gg44GmLOOBmOOCheOCkw0KK+OBn+OBuSzjgb7jgZXjgajjgZcNCivjgoTjgY4s44KK44KH44GG44GE44GhDQor44KI44GX44GgLOOBi+OBmuOBig0KK+OBteOCi+OBnyzjgZ/jgYvjgobjgY0NCivjgYvjgo/jgZDjgaEs44KK44KF44GG44Gf44KN44GGDQor44Gv44GZ44GTLOOCiOOBl+OBruOCig0KK+OBquOBjOOBv+OBrSzjgZfjgoXjgpPjgZgNCivjgZ/jgZHjgZfjgZ8s44GV44Go44GXDQor44GC44GL44GKLOOBi+OBmuOChuOBjQ0KK+OCj+OBjeOCguOBqCzjgZ/jgYvjgZcNCivjgZ/jgZXjgYss44GR44KT44GYDQor44Gq44GL44GX44G+LOOChOOBmeOCiOOBlw0KK+OBn+OBkeOBquOBiyzjgbLjgo3jgYLjgY0NCivjgoTjgb7jgZfjgZ8s44Gq44GK44Gy44GTDQor44GP44G844GILOOBpuOCi+OBig0KK+OBiuOBkOOBlyzjgZfjgofjgYbjgYTjgaENCivjgYLjgZXjgYss44GX44GS44Go44GXDQor44GI44GQ44GhLOOBsuOCjeOCiOOBlw0KK+OBiuOBiuOBleOBjSzjgb7jgZPjgagNCivjgYrjgY/jgaAs44GL44Ga44GKDQor44GK44GP44KA44KJLOOBi+OBmuOCjQ0KK+OBi+OBquOBvuOCiyzjgojjgZfjgbLjgZMNCivjgY3jga7jgZfjgZ8s44GK44GV44KADQor44GV44GV44GNLOOBjeOCiOOBsuOBpw0KK+OBn+OBi+OBrizjgZ/jgaTjgYoNCivjga/jgZfjgaAs44GX44GS44KLDQor44G744GXLOOChuOBhuOBmeOBkQ0KK+OBv+OBmuOBrizjgYvjgaTjgbLjgZMNCivjgb/jgaTjga/jgZcs44Gf44Gk44KEDQor44KC44Go44Gv44GXLOOBvuOBleOBlw0KK+OChOOBvuOBoCzjgabjgaTjgZgNCivjgarjgYzjga4s44G+44GV44KG44GNDQor44GE44GX44GELOOChuOBjeOBsuOCjQ0KK+OBi+OCgeOBoCzjgYvjgYrjgosNCivjgY3jga/jgZ8s44Gf44GR44Gy44GnDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBl+OCieOBteOBrSzjgZ/jgYvjgojjgZcNCivjgarjgaTjga/jgoks44Gy44KN44GC44GNDQor44Gr44GX44Gv44KJLOOChOOBmeOBsuOBlQ0KK+OBr+OBl+OBsCzjgZ/jgY/jgYoNCivjgbLjgZfjgazjgb4s44Gy44KN44G144G/DQor44Gy44Gz44KELOOBl+OCk+OBn+OCjeOBhg0KK+OBv+OChCzjgbLjgafjga/jgosNCivjgoDjgonjgYvjgb8s44G144G/44GKDQor44KA44KJ44GfLOOBr+OBmOOCgQ0KK+OCj+OBn+OBquOBuSzjgZfjgofjgYbjgYTjgaENCivjgYrjgYrjgavjgZcs44Gy44KN44GC44GNDQor44Gf44GR44GX44GfLOOBsuOCjeOBlw0KK+OBpOOBsOOBjeOCguOBqCzjgoTjgZnjgZcNCivjga/jgb7jgYrjgYss44Gf44GR44GKDQor44G/44Ga44GuLOOBqOOCiOOBn+OBiw0KK+OBguOBuSzjgbLjgo3jgb8NCivjgYLjgonjgYTjgZcs44G+44GV44G/DQor44GV44Go44GGLOOBvuOBleOBguOBjQ0KK+OBleOCj+OBrizjgZvjgYTjgZbjgbbjgo3jgYYNCivjgZfjgoLjgZjjgofjgYYs44Gf44Gg44G/DQor44Gf44GL44GgLOOBi+OBmuOBsuOBpw0KK+OBquOBjOOBnyzjgoTjgZnjgbLjgo0NCivjgavjgZfjga/jgZ8s44G+44GV44G144G/DQor44Gv44KE44GXLOOBneOBhuOBhOOBoQ0KK+OBu+OBneOBi+OCjyzjgYLjgY3jgokNCivjgYLjgYrjgY0s44G/44GN44Go44GXDQor44KI44GX44GgLOOBsuOCjeOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgYoNCivjgYTjgo/jgZXjgo8s44Gf44GL44Gv44KLDQor44Gu44GbLOOBmeOBiOOBig0KK+OBsuOCieOBl+OBnyzjgbLjgo3jgoTjgZkNCivjgojjgZfjgZbjgo8s44Gy44Gn44GKDQor44KA44Go44GGLOOBkeOBhOOBnuOBhg0KK+OBv+OCj+OBhuOCiSzjgbLjgafjgYLjgY0NCivjgY3jgY/jgaEs44Gv44GY44KBDQor44GI44Ge44GILOOBsuOCjeOBvw0KK+OBhOOBl+OBi+OCjyzjgZ/jgZHjgZcNCivjgYTjgaHjgYvjgo8s44Gf44GL44GXDQor44Gv44KJ44GgLOOCiOOBl+OBn+OBiw0KK+OCgOOCieOBnyzjgojjgZfjgagNCivjgYTjgajjgYYs44G/44GN44GKDQor44G744GX44GqLOOBkeOBhOOChA0KK+OBqOOBj+OBoCzjga7jgorjgYoNCivjgZ/jgZDjgoos44GL44Ga44KI44GXDQor44GV44GV44GNLOOBqOOCguOChuOBjQ0KK+OBn+OBvuOCiyzjga/jgovjgYoNCivjgavjgZfjga/jgZcs44GX44GS44GKDQor44GY44Gk44GL44KPLOOBi+OBmuOBsuOBkw0KK+OBmeOBmuOBjSzjgZXjgYTjgaENCivjgYrjgYrjgavjgZcs44GN44G/44GTDQor44Gq44GM44GV44GNLOOChuOBhuOBkw0KK+OBhOOBhOOBoCzjgbLjgafjgb8NCivjgZ/jgYvjga4s44G+44GV44Gy44KNDQor44Gy44GV44GuLOOBqOOBl+OBpOOBkA0KK+OBhOOBruOBhuOBiCzjgbLjgafjgY0NCivjgYTjgZfjgY/jgoks44G+44GV44KG44GNDQor44GC44GN44KE44G+LOOBk+OBhuOBmA0KK+OBhOOBoeOBi+OCjyzjgZvjgpPjgooNCivjgY3jgYzjgo8s44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OCiOOBoCzjgb/jgY3jgYoNCivjgYLjgonjgY0s44KG44GG44GYDQor44GZ44GO44Gv44KJLOOBsuOBp+OBsuOBlQ0KK+OBi+OCj+OBkOOBoSzjgabjgYTjgZgNCivjgb/jgoQs44G+44GV44Gy44GTDQor44GE44GR44GKLOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgbXjgZjjgYoNCivjgZPjgZfjga4s44KI44GG44GZ44GRDQor44GN44GP44GL44KPLOOBi+OBmuOBig0KK+OChuOBguOBlSzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44KG44GG44GYDQor44G+44GZ44GgLOOBl+OCk+OBn+OCjeOBhg0KK+OBguOCieOBhCzjgoTjgZnjgYoNCivjgYTjgZHjgaAs44Go44GX44GKDQor44GN44GZLOOBguOBjeOCiQ0KK+OBhuOBl+OChOOBvizjgozjgYQNCivjgYvjgb7jgZ8s44GI44Gk44GXDQor44GG44GV44G/LOOBjeOCiOOBlw0KK+OBquOBi+OBrizjgZ/jgZHjgZcNCivjgYvjgY3jgYvjgo8s44GY44KF44KT44GE44GhDQor44GN44GY44G+LOOBsuOCjeOChuOBjQ0KK+OCgOOBi+OBhCzjgb7jgZXjgojjgZcNCivjgarjgYzjgoTjgb4s44G+44GV44GTDQor44Gv44Gj44Go44KKLOOBvuOBleOBig0KK+OBv+OBl+OBvizjgaTjgojjgZcNCivjgZTjgajjgYYs44GP44Gr44Go44GXDQor44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBiuOBjOOBnyzjgYvjgojjgZMNCivjgY/jgZXjgbAs44Gv44KL44KG44GNDQor44Gm44KJ44GILOOBsuOBleOBqA0KK+OBu+OCk+OBoCzjga7jgorjgYoNCivjgYLjgY/jgZ/jgYzjgo8s44G/44Gu44KLDQor44G/44KE44GT44GXLOOChOOBmeOBiA0KK+OBteOBj+OBl+OBvizjgZHjgYTjgZnjgZENCivjgZfjga7jgZrjgYss44Go44KC44GTDQor44GK44GK44Gf44GNLOOBl+OCh+OBhuOBmA0KK+OBquOBjOOBvuOBpCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYLjgonjgYQs44G+44GV44KLDQor44G+44Gk44GgLOOBleOBoeOCiA0KK+OBteOBmOOBnyzjgYLjgaTjgb8NCivjgYvjgb/jgZDjgaEs44Gy44KN44GC44GNDQor44GL44Go44GGLOOBsuOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZ/jgZHjga7jgooNCivjgYbjgoHjgZ/jgass44GC44Gk44GTDQor44Gq44KL44GbLOOBmOOCheOCk+OBkw0KK+OBj+OBvCzjgY/jgavjgYoNCivjgY/jgonjgZ8s44Gy44KN44KG44GNDQor44GT44KT44GpLOOBpuOCi+OBig0KK+OBn+OBkeOBhuOBoSzjgb/jgY3jgoQNCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44Gf44GL44GgLOOCiOOBl+OBi+OBmg0KK+OBguOBj+OBpCzjgYvjgaTjgobjgY0NCivjgajjgorjgYQs44Gy44KN44G/DQor44KC44KK44GK44GLLOOChuOBv+OBkw0KK+OBi+OBj+OBn+OBqyzjgb7jgarjgbYNCivjgZ/jgZHjgYTjgaEs44Gh44GI44GTDQor44Gf44GELOOBkeOBhOOBkw0KK+OBpOOBoeOChCzjgb7jgZXjgbXjgb8NCivjgb7jgZnjgaAs44G+44GV44Gf44GLDQor44GL44KT44GgLOOBsuOBleOBig0KK+OChOOBvuOBhuOCiSzjgoTjgZnjgojjgZcNCivjgY3jga7jgZfjgZ8s44GX44GS44G/44GkDQor44G744GV44GLLOOBj+OBq+OBig0KK+OBvuOCi+OBiuOBiyzjgbLjgafjgobjgY0NCivjgYvjgb7jgZ8s44Gy44KN44GXDQor44Gv44Gf44Gq44GLLOOBvuOBleOBvw0KK+OBj+OCjeOBryzjgojjgYbjgZMNCivjgajjgaTjgYss44KI44GG44GTDQor44GE44GX44GELOOBteOCiA0KK+OCguOCiuOBnyzjgb7jgaENCivjgbvjgpPjgb4s44GX44GS44KLDQor44GC44KJ44GL44GNLOOCiOOBl+OBqOOCgg0KK+OBn+OBkSzjgZ/jgZHjgbLjgZMNCivjgYTjgZrjga/jgoks44Gq44GK44GL44GaDQor44Gy44GV44Go44G/LOOBn+OCjeOBhg0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgavjgZfjgarjgYss44Gy44GV44Gu44KKDQor44G/44Ga44GuLOOBk+OBhuOBnuOBhg0KK+OCguOCiuOCgOOCiSzjgYLjgY3jgokNCivjgZ/jgYvjga/jgZcs44Go44GX44GL44GaDQor44GX44GS44Go44KBLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgobjgYbjgZgNCivjgb7jgYjjgYvjgo8s44G+44GV44G/DQor44KI44GX44GELOOBqOOBl+OBruOCig0KK+OBu+OBneOChCzjgbLjgafjgbLjgZMNCivjgZXjgYvjgoLjgags44GL44Ga44GKDQor44GT44GE44Ga44G/LOOBl+OBkuOBvw0KK+OBq+OBlyzjgoTjgZnjgbXjgb8NCivjgYvjga3jgZMs44GC44GN44KJDQor44GZ44G/44GP44KJLOOBl+OCh+OBhuOBuOOBhA0KK+OCiOOBk+OBiizjgZ/jgYvjgYoNCivjgZXjgZXjgY0s44GL44Ga44GKDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgYLjgY3jgoTjgb4s44Go44G/44GKDQor44GV44GE44GZLOOCiOOBl+OBi+OBmg0KK+OBruOBjOOBvyzjgZvjgYTjgZgNCivjgajjgojjgZfjgb4s44GX44KF44GG44GE44Gh44KN44GGDQor44GX44KTLOOBn+OBi+OBlw0KK+OBteOBjeOBrizjgoLjgorjgojjgZcNCivjgYTjgZHjgaAs44GL44Ga44GN44GhDQor44GK44Gg44KP44KJLOOCiuOBpA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYvjgaQNCivjgZHjgYTjgb4s44GY44KF44KTDQor44GX44G/44GaLOOBk+OBhuOBmA0KK+OBhOOBvuOBhOOBmuOBvyzjgajjgoLjgZgNCivjgoLjgorjgZ8s44KG44G/44GTDQor44KC44KKLOOChOOBmeOBvw0KK+OBvuOBiOOBi+OCjyzjgoTjgZnjgYvjgZoNCivjgoTjgarjgY7jgaAs44GZ44GZ44KADQor44KA44KJ44KC44GoLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgbvjgZ3jgYgs44G+44GV44Gy44GTDQor44GE44GX44GP44KJLOOBm+OBhOOBmA0KK+OBsuOCjeOBi+OCjyzjgobjgYbjgZgNCivjgYvjgonjgZfjgb4s44Gf44GL44GXDQor44G+44Gh44GgLOOBl+OCk+OBhOOBoQ0KK+OCguOCiuOChOOBvizjgbLjgZXjga7jgooNCivjgZ/jgZHjgoDjgoks44Gm44Gk44Ge44GGDQor44Gk44GL44KC44GoLOOBguOBjeOBteOBvw0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgbLjgagNCivjgZ3jgoHjgoQs44GC44GN44GKDQor44Gq44GL44GU44KBLOOBsuOBp+OBig0KK+OBhOOCj+OBquOBjCzjgZHjgYTjgZnjgZENCivjgZvjgY3jgoQs44GR44KT44GYDQor44Gm44KJ44GELOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgZvjgY3jgoQs44GY44KF44KT44KN44GGDQor44GV44GP44KJ44GELOOBiOOBv+OBkw0KK+OBhOOBneOBuSzjgb7jgaTjgZ/jgo3jgYYNCivjgb7jgaTjgYrjgYss44Gf44GL44Gy44GTDQor44GE44GhLOOBvuOBleOBruOCig0KK+OChOOBvuOCguOBqCzjgZfjgo3jgYYNCivjgafjgZDjgaEs44Gf44GL44Go44GXDQor44Gy44KJ44G+44GkLOOCiOOBl+OBig0KK+OBv+OBmuOBrizjgYTjgZXjgoANCivjgajjgb/jgarjgYws44G+44GV44Gy44KNDQor44Gf44GL44GX44G+LOOBsuOBqOOBlw0KK+OBruOBjOOBvyzjgbLjgo3jgZcNCivjgYrjgYrjgaQs44Gy44KN44G144G/DQor44GT44Gw44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBpuOCieOBoCzjgajjgZfjgYvjgZoNCivjgZXjgYTjgajjgYYs44Gf44Gk44KEDQor44GC44GV44GuLOOBn+OBi+OChA0KK+OBl+OCguOCgOOCiSzjga7jgorjgajjgZcNCivjgYrjgYrjgYTjgZcs44Gu44KK44KI44GXDQor44Gf44Gq44GLLOOBpOOBreOBig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZcNCivjgbLjgonjgb7jgaQs44GX44GS44KLDQor44Gf44GR44GG44GhLOOBv+OBruOCiw0KK+OBl+OBkuOBr+OCiSzjgabjgovjgb7jgZUNCivjgYrjgYvjgoLjgags44Gv44GY44KBDQor44KA44KJ44KE44G+LOOCguOBqOOBkw0KK+OBk+OBvuOBpOOBsOOCiSzjgZfjgZrjgYoNCivjgYjjgbDjgZ8s44GR44KT44GYDQor44GK44GK44GfLOOBlOOCjeOBhg0KK+OBpuOCieOBiizjgbLjgo3jgobjgY0NCivjgYrjgYrjgZXjgo8s44G+44GV44KLDQor44GL44KP44GX44G+LOOBn+OBpOOBvw0KK+OBguOCieOBhCzjgb7jgZXjgZcNCivjga/jgZfjgZrjgoEs44GC44GN44KJDQor44G/44Ga44GX44G+LOOBk+OBhuOBmA0KK+OBsuOCieOBvuOBpCzjgYjjgaTjgYoNCivjgYrjgY/jgoDjgoks44KI44GX44GTDQor44G/44Ga44Gq44GLLOOBk+OBhuOBlw0KK+OBu+OCiuOBhuOBoSzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgY3jgoLjgags44Go44GX44GKDQor44KE44GZ44GwLOOBk+OBhuOBmA0KK+OBjeOBn+OBrizjgoLjgajjga7jgbYNCivjgavjgZfjgaAs44KG44GN44GKDQor44GE44GX44GL44KPLOOBqOOBl+OBvw0KK+OBiuOBiuOBsCzjgbLjgZXjgYoNCivjgYvjgZfjgo/jgY4s44GL44Ga44KG44GNDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OBvuOBpOOBoCzjgYLjgY3jgYoNCivjgZPjgoDjgo0s44Gq44GK44GNDQor44KA44KJ44GfLOOBsuOBp+OChuOBjQ0KK+OBleOBleOBjOOCjyzjgYvjgZrjgYoNCivjgZXjgZ/jgZEs44Gv44KL44Go44GXDQor44GP44KP44GuLOOBsuOBleOBig0KK+OBlOOBqOOBhizjgYvjgaTjgb8NCivjgbXjgZjjgYQs44GX44KT44GE44GhDQor44G/44Ga44GT44GXLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBvuOBjSzjgYvjgZrjgoQNCivjgYTjgafjgZ8s44Gy44Go44GXDQor44Gq44GL44Gk44GLLOOBn+OBi+OBlw0KK+OBhuOCk+OBrizjgZ/jgZHjgb8NCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44Gv44G+LOOBsuOCjeOBlw0KK+OBqOOBv+OBnyzjgZ/jgYvjgYoNCivjgZ/jgavjgaQs44KG44GG44GUDQor44GZ44Ga44GNLOOBvuOBleOBv+OBoQ0KK+OBiuOBj+OCgOOCiSzjgaHjgojjgZgNCivjgbXjgY/jgZfjgb4s44GL44Ga44Gy44GTDQor44GK44GK44Gv44GXLOOBsuOBi+OCiw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgYoNCivjgYvjgo/jgb8s44Gb44GE44GE44GhDQor44Gv44KL44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZcNCivjgaTjgZjjgZ8s44KG44GG44GTDQor44GE44G+44KA44KJLOOBvuOBleOBig0KK+OBleOBqOOBhizjgZXjgbbjgo3jgYYNCivjgarjgYvjgZjjgb4s44KG44GN44GTDQor44GX44GE44GuLOOBl+OBkuOBig0KK+OBlOOBqOOBhizjgb/jga7jgosNCivjgYvjgajjgYYs44KC44Go44Gv44KLDQor44Gq44GM44GELOOBoeOBiOOBkw0KK+OBhuOBoeOBrizjgYLjgaTjgZcNCivjgYjjgYTjgZjjgb4s44GK44GV44KADQor44KE44G+44Gq44GLLOOBk+OBhuOBmA0KK+OBquOBi+OCgOOCiSzjga7jgbbjgYoNCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44Gb44KA44KJLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgbLjgo0NCivjgZ/jgoQs44Gf44GL44GXDQor44KA44KJ44GL44G/LOOBsuOCjeOBruOCig0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgZvjgY3jgZDjgaEs44GX44KH44GG44GE44Gh44KN44GGDQor44GK44GK44GuLOOCiOOBl+OChuOBjQ0KK+OBiuOBhOOBi+OCjyzjgajjgZfjgoQNCivjgYTjgo/jgYQs44GP44Gr44KE44GZDQor44GC44GV44GyLOOBkeOCk+OBmA0KK+OBlOOBqOOBhizjgYvjgYrjgosNCivjgYvjga3jgZ/jgZEs44GL44Gq44KBDQor44GG44GI44G+44GkLOOBqOOBl+OBruOCig0KK+OBteOBj+OBl+OBvizjgbLjgo3jgZgNCivjgbXjgY/jgaAs44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBjeOCh+OBhuOBkw0KK+OBiuOBkOOCiSzjgobjgY3jgbLjgZMNCivjgbLjgonjgacs44Gu44G244GL44GaDQor44GK44GX44GSLOOBn+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgYjjgorjgZMNCivjgZXjgZXjgY0s44GI44Gk44GKDQor44GU44KT44GgLOOBvuOBleOCiw0KK+OBvuOBpOOBiuOBiyzjgZvjgYTjgZgNCivjgYbjgoHjgZbjgo8s44G+44GV44Gk44GQDQor44Gr44GX44GKLOOBi+OBmuOBquOCig0KK+OBk+OBmOOBvizjgobjgYbjgZ7jgYYNCivjgZ/jgavjgZDjgaEs44KI44GX44Gk44GQDQor44GK44GK44GO44GZLOOBsuOCjeOBlw0KK+OBleOBoOOBsuOBlSzjgZPjgYbjgYTjgaENCivjgbXjgZjjgo/jgoks44KC44KK44GKDQor44Gv44Gj44Go44KKLOOBquOBiuOChuOBjQ0KK+OBi+OBvuOBnyzjgajjgZfjgYoNCivjgajjgbAs44G+44GT44GoDQor44KE44G+44GgLOOBn+OBoOOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgb/jgY3jgYoNCivjgZ/jgZHjgYbjgaEs44Gf44GR44GXDQor44GC44KJ44GNLOOBsuOBp+OBteOBvw0KK+OBq+OBl+OBiizjgZvjgaTjgZMNCivjgoLjgorjgYbjgaEs44GV44Gq44GIDQor44GE44KP44GfLOOBsuOBp+OBguOBjQ0KK+OBleOBleOBjSzjgb7jgZXjgo3jgYYNCivjgb7jgYjjgYzjgo8s44KE44GZ44Gk44GQDQor44G144GP44Gr44GXLOOBi+OBmuOBruOBtg0KK+OBhuOBiOOBoCzjgajjgoLjgogNCivjgoTjgb7jgY7jgZcs44G+44GT44GoDQor44GK44GuLOOBkeOCk+OBmA0KK+OBteOBmOOBnyzjgbXjgY/jgY3jgaENCivjgY3jgZ/jgoDjgoks44KI44GX44G/44GkDQor44KI44GX44Gv44KJLOOChuOCiuOBkw0KK+OBhOOCj+OBleOCjyzjgZ/jgY/jgb8NCivjgZPjgb7jgaQs44Gf44Gk44KI44GXDQor44Gf44Gr44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBk+OBleOBiyzjgbLjgZXjgZ/jgZENCivjgZ/jgZfjgb4s44G+44GV44KG44GNDQor44Gr44GX44GK44GLLOOBi+OBpOOChuOBjQ0KK+OBmeOBmuOBjSzjgajjgZfjgYoNCivjgZTjgajjgYYs44KE44GZ44Gy44KJDQor44GL44KP44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBmOOBvizjgZfjgofjgYbjgZgNCivjgYvjgpPjga4s44GC44GN44GKDQor44GL44Gf44GX44G+LOOBl+OCk+OChA0KK+OBr+OBl+OCguOBqCzjgb/jgZnjgZoNCivjgarjgYvjgaAs44Gy44KN44GXDQor44GL44GV44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OBpuOCieOCguOBqCzjgZ/jgYvjgYLjgY0NCivjgo/jgYvjgb7jgaQs44G+44Gq44G/DQor44GE44Go44GGLOOBqOOBl+OBpOOBkA0KK+OCj+OBoCzjgbLjgafjgb8NCivjgZ/jgpPjgZgs44Gy44KN44GC44GNDQor44GK44GK44Gk44GLLOOCgeOBkOOBvw0KK+OBpOOBmOOCguOBqCzjgZHjgYTjgYTjgaENCivjgZvjgorjgZbjgo8s44Gu44G244Gv44KLDQor44Go44Gu44GV44GNLOOBteOBv+OBiA0KK+OBn+OBi+OBjizjgb/jgaHjgZMNCivjgYrjgbXjgaEs44GL44Gk44Gq44KKDQor44GC44G+44GuLOOBv+OBoeOBig0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgZ/jgbDjgZ8s44KG44GG44GYDQor44Go44KI44Ga44G/LOOBvuOBleOBguOBjQ0KK+OBl+OCheOBj+OChCzjgojjgZfjgo3jgYYNCivjgZ/jgYvjga4s44GX44KT44GE44GhDQor44KA44KJ44GL44G/LOOBsuOBqOOBlw0KK+OBhOOBl+OBmuOBiyzjga7jgbbjgojjgZcNCivjgYTjgYTjgZrjgYss44Go44GX44Gy44GTDQor44GX44KJ44GELOOBguOBjeOCiQ0KK+OBteOBj+OBr+OCiSzjgZnjgYjjga/jgosNCivjgYTjgarjgYzjgY0s44Gm44Gk44GKDQor44Gy44KJ44GX44G+LOOBsuOBqOOBlw0KK+OBpOOBmOOBsOOChOOBlyzjgYLjgaTjgZcNCivjgb7jgaTjgYos44G+44GV44G/DQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OCguOCiuOBrizjgZ/jgYvjgYoNCivjgZ/jgZjjgb4s44Go44GX44GKDQor44Gu44GW44GNLOOBmOOCheOCkw0KK+OBguOBoOOBoSzjga7jgbbjgZ/jgYsNCivjgZ/jgYvjgoQs44Gf44GL44GXDQor44GK44GuLOOBvuOBleOBig0KK+OBvuOBpOOCguOBqCzjgYvjgaTjgYLjgY0NCivjga/jgZfjgoLjgags44GL44Ga44Gy44GnDQor44GL44GuLOOChOOBmeOBlw0KK+OBn+OBkeOBoCzjgbXjgb/jgZMNCivjgY3jgorjga/jgoks44GR44GE44GTDQor44Gf44Gq44GLLOOChOOBmeOBsuOBkw0KK+OBqOOCiuOBhCzjgYLjgY3jga7jgbYNCivjgarjgYvjgZfjgb4s44G+44GV44GKDQor44Gb44GZ44G/LOOBmOOCheOCkw0KK+OBvuOBiOOBruOBneOBrizjgYvjgZrjgarjgooNCivjgZTjgajjgYYs44GX44KT44GYDQor44G744KKLOOChuOBjeOCiOOBlw0KK+OBn+OBi+OBhOOCiSzjgY3jgofjgYbjgYTjgaENCivjgZ/jgavjgaAs44GC44GN44Gy44KNDQor44G144KL44Gp44GELOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBjuOChCzjgb7jgZXjgarjgYoNCivjgarjgYvjgZjjgb4s44Gu44G244KI44GXDQor44G744KK44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgYLjgYrjgY0s44Gu44G244KG44GNDQor44GK44GP44Gv44GfLOOBvuOBleOBsuOCjQ0KK+OBj+OCj+OBsOOCiSzjgobjgYbjgZnjgZENCivjgYvjgpPjgaAs44Gy44KN44G/44GkDQor44GZ44GO44KC44GoLOOCiuOCh+OBhg0KK+OChOOBvuOCguOBqCzjgbLjgafjgYLjgY0NCivjgYvjga3jgZMs44G+44GV44KLDQor44Gq44KK44GfLOOCguOBqOOChuOBjQ0KK+OBq+OBl+OBiizjgZ/jgZHjgbLjgo0NCivjgYTjgYvjgoos44Gv44KL44GKDQor44G144KL44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBguOCieOBhCzjgZvjgYTjgZgNCivjgY/jgZrjgYvjgb8s44Gy44KN44GXDQor44GU44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBr+OCiSzjgb7jgZnjgb8NCivjgoTjgb7jgaAs44GX44GS44KLDQor44GE44GYLOOBqOOBl+OCjeOBhg0KK+OBj+OCieOCguOBoSzjgb/jgY3jgYoNCivjgbXjgZjjgo/jgoks44Gy44Gn44GZ44GODQor44Gf44GR44GgLOOBleOBqOOBlw0KK+OBn+OBi+OBruOBmyzjgYjjgaTjgYoNCivjgajjgoLjgoDjgoks44GX44GS44G144G/DQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBi+OBjeOBsOOCiSzjgb7jgZXjgobjgY0NCivjgb/jgoTjgZbjgY0s44KG44GG44GYDQor44KI44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgojjgZfjgbLjgZMNCivjgZTjgajjgYYs44G/44Gh44GKDQor44Gr44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBl+OBvizjgb/jgaTjgbLjgo0NCivjgY3jgoDjgoks44GX44GS44KG44GNDQor44GE44Gu44GG44GILOOBvuOBleOBqOOBlw0KK+OBiuOBl+OBvizjgZ/jgZHjgZcNCivjgYrjgYrjgoQs44G+44KC44KLDQor44G/44KE44KC44GoLOOBvuOBleOBruOCig0KK+OChOOBvuOBl+OBnyzjgYrjgZXjgoANCivjgZ/jgarjgYss44G+44GZ44G/DQor44KC44KKLOOBguOBpOOBlw0KK+OBquOCi+OBvyzjgYrjgZXjgoANCivjgZTjgajjgYYs44Gg44GE44GY44KN44GGDQor44KE44G+44Gh44GLLOOBguOBjeOCiQ0KK+OBleOBleOBjSzjgb7jgZXjgbLjgagNCivjgY3jgZfjgaAs44G/44Gh44GKDQor44GK44GK44KE44G+LOOCiOOBhuOBmeOBkQ0KK+OBl+OBhOOBrizjgYvjgaTjgoQNCivjgYTjgZrjgb/jgZXjgo8s44KI44GX44Go44KCDQor44GL44G/44KA44KJLOOBoOOBhOOBoQ0KK+OBleOBi+OBhCzjgZHjgpPjgYTjgaENCivjgZTjgajjgYYs44GL44Ga44GKDQor44GL44Go44GGLOOBjeOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgY/jga4s44Gf44Gk44Gy44GTDQor44GE44KP44G244GhLOOBvuOBleOBpOOBkA0KK+OBu+OCk+OBtizjgb7jgZXjgbXjgb8NCivjgoLjgorjgZ8s44GY44KF44KTDQor44Gb44GN44KELOOBkw0KK+OBrOOBvuOBnyzjgYvjgZrjgoQNCivjgZTjgajjgYYs44KB44GE44GV44GEDQor44G+44Gq44G5LOOBvuOBleOCiw0KK+OBhOOBvuOBjeOBnyzjgZfjgofjgYbjgZgNCivjgZPjgaDjgYss44GR44KT44GYDQor44KI44GX44GgLOOBn+OBkeOBsuOBlQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgY/jgZnjgb8s44GL44Ga44KG44GNDQor44Gv44GO44KP44KJLOOBqOOBl+OBi+OBmg0KK+OBteOCi+OBmyzjgabjgovjgbLjgZMNCivjgoDjgonjgZ8s44GX44KH44GG44GTDQor44GK44GP44KA44KJLOOBvuOBleOBsuOBkw0KK+OBn+OBq+OBjOOBvyzjgZ/jgYTjgaENCivjgarjgYvjgoDjgoks44GX44KT44GYDQor44GT44GE44Ga44G/LOOBvuOBleOBsuOBkw0KK+OBmeOBqeOBhizjgbLjgo3jgZcNCivjgYTjgacs44Gm44Gk44KEDQor44GX44KC44GuLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OBjizjgojjgZfjgYLjgY0NCivjgZXjgYvjgYQs44GC44Gk44GXDQor44GE44Gu44GG44GILOOBi+OBmuOBig0KK+OBteOCi+OBnyzjgb/jgaHjga7jgbYNCivjgYLjgZXjgYQs44GN44KI44GXDQor44G144GL44GV44KPLOOBj+OBq+OBsuOBkw0KK+OBlOOBi+OBhOOBoSzjgZPjgYbjgZgNCivjgYrjgYrjgaTjgYss44KE44GZ44Gu44KKDQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgZfjgZLjgosNCivjgZ/jgZHjgaAs44G+44GV44KG44GNDQor44G+44GZ44GgLOOCiOOBl+OBsuOBkw0KK+OChOOBvuOCguOBqCzjga7jgbzjgosNCivjgYrjgYrjga/jgoks44G+44Gq44G2DQor44G144Gq44GkLOOBi+OBmuOBsuOBkw0KK+OBk+OChOOBvizjgZjjgoXjgpPjgZ7jgYYNCivjgoTjgb7jgZbjgY0s44Go44GX44Gy44KNDQor44Gf44GY44KKLOOBv+OBreOBr+OCiw0KK+OBleOBqOOBhizjgaTjgojjgZcNCivjgarjgYzjgZfjgb4s44GY44KN44GGDQor44Gk44GgLOOBn+OBi+OBlw0KK+OBquOBjOOBiizjgajjgoLjgb8NCivjgYrjgYrjgZnjgY4s44Gy44KN44KG44GNDQor44GE44Go44GGLOOBqOOCguOBquOCig0KK+OBn+OBvuOBhCzjgobjgZ/jgYsNCivjgb/jgoTjgZfjgZ8s44KI44GG44GE44Gh44KN44GGDQor44G/44GX44G+LOOCiOOBl+OBsuOCjQ0KK+OBu+OCiuOBhCzjgarjgYrjgYLjgY0NCivjgZTjgajjgYYs44G+44GT44GoDQor44KE44GKLOOBmOOCheOCk+OBhOOBoQ0KK+OBsuOBmOOChCzjgZ/jgaTjgoQNCivjgbvjgorjgYQs44Gy44Gn44GYDQor44Gf44GR44GgLOOBn+OBi+OCiOOBlw0KK+OChOOBmeOBquOBjCzjgYvjgaTjgb8NCivjgoTjgb7jgZbjgY0s44Gy44Gn44Gy44GoDQor44KE44GuLOOBguOBjeOCiQ0KK+OBl+OCj+OBjyzjgb/jga7jgosNCivjgYvjgb/jga4s44GC44GN44KJDQor44Gq44GL44GY44G+LOOBn+OBhOOBmOOCjeOBhg0KK+OBvuOBmeOBoCzjgY/jgavjgbLjgZMNCivjgYrjgbXjgaEs44GY44KN44GGDQor44G144GP44GW44GNLOOCjOOBhOOBkw0KK+OBhOOBn+OBjOOBjSzjgZfjgZLjgY0NCivjgZfjgoIs44Gh44GIDQor44G144GP44GELOOBruOBtuOBguOBjQ0KK+OBhOOBsyzjgZjjgpPjgYTjgaENCivjgZPjgoDjgYvjgYQs44GN44KI44G/DQor44G144GY44GILOOBruOBtuOChuOBjQ0KK+OBvuOBpOOBjSzjgYvjgZrjgbLjgZMNCivjgZPjgbDjgoTjgZcs44GL44Ga44KI44GXDQor44GU44GG44GhLOOBi+OBmuOBqOOBlw0KK+OBr+OBm+OBjOOCjyzjgZHjgpMNCivjgYvjgo/jgZTjgYgs44Go44KC44G144G/DQor44Gq44GM44GV44KPLOOBn+OBhOOBm+OBhA0KK+OChOOBvuOBl+OBnyzjgZXjgYvjgYgNCivjgYTjgZfjgZbjgY0s44GX44KT44GE44Gh44KN44GGDQor44GK44GgLOOBv+OBoeOBsuOCjQ0KK+OBl+OCk+OBqeOBhizjgZ/jgYvjgYLjgY0NCivjgZfjgoLjgZXjgZMs44Gv44KL44Gy44GVDQor44Gk44Gk44G/LOOBjeOCiOOBlw0KK+OBjeOBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgY3jgZ/jgZbjgo8s44GT44GG44GYDQor44Gq44GL44GK44GLLOOBiOOBhOOBmA0KK+OBhOOBl+OBsOOBlyzjgb/jgobjgY0NCivjga/jgZfjgZDjgaEs44G/44KP44GTDQor44KP44Gf44Gq44G5LOOBguOBjeOBsuOCjQ0KK+OBiuOBiuOBsCzjgYvjgarjgoENCivjga/jgoks44GL44Ga44KEDQor44GX44G/44GaLOOBk+OBv+OBqg0KK+OBhOOBluOCjyzjgojjgZfjgbLjgZMNCivjgojjgZfjgoTjgb4s44GC44GN44KJDQor44GZ44GO44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBk+OBvuOBpCzjgZPjgYbjgYTjgaENCivjgbjjgpPjgb8s44GT44GG44Ge44GGDQor44G144GL44GgLOOBruOCiuOBteOBvw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgbLjgZUNCivjgZnjgY7jgoLjgags44GR44KT44GYDQor44KI44GT44KE44G+LOOBpOOBqOOCgA0KK+OBn+OBquOBiyzjga7jgorjgbLjgZMNCivjgb/jgoTjgZ/jgass44GV44Go44KLDQor44Gv44Gb44GM44KPLOOBguOBpOOBlw0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgYLjgY0NCivjgbXjgY/jgYrjgYss44Gy44KN44KG44GNDQor44GK44KA44KJLOOBleOBqOOCiw0KK+OBhOOBkOOBoSzjgb7jgZPjgagNCivjga/jgoTjgZcs44G+44KK44GTDQor44Gy44KJ44GELOOBi+OBiOOBkw0KK+OBiuOBiuOCguOCiizjgozjgYTjgZMNCivjgYrjgY7jga4s44GE44Gh44KN44GGDQor44Gf44KA44KJLOOBv+OBpOOBig0KK+OBn+OBkeOBoCzjgbLjgafjgYLjgY0NCivjgb/jgoTjgarjgYws44GT44GG44GE44Gh44KN44GGDQor44Gy44KJ44GELOOBruOCiuOBvuOBlQ0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjga/jgbbjgaEs44Gy44Gn44GL44GaDQor44GK44GK44GP44KJLOOCiOOBl+OBguOBjQ0KK+OBr+OBo+OBnyzjgYjjgYTjgZgNCivjgYTjgZPjgb4s44Gy44KN44KG44GNDQor44GC44GV44Gy44GqLOOBn+OBi+OBlw0KK+OBi+OBruOBhizjgZfjgpPjgZQNCivjgarjgYvjgavjgZcs44GX44KF44GG44GYDQor44G/44KE44GW44GNLOOBsuOCjeOCgA0KK+OBhOOBoeOBi+OBqSzjgajjgojjgYLjgY0NCivjgarjgYzjgZXjgo8s44GC44GN44Gu44G2DQor44Gv44G+44GQ44GhLOOBr+OCi+OBig0KK+OChOOBl+OCjSzjgbLjgo3jga7jgooNCivjgoDjgonjgYos44G+44GNDQor44GK44GK44GO44G+44GhLOOBguOBjeOCiQ0KK+OBl+OCjeOBnyzjgb7jgZXjgobjgY0NCivjgabjgZfjgb4s44G/44Gk44GKDQor44GL44KP44GV44GNLOOChOOBmeOChuOBjQ0KK+OChOOBvuOBoCzjgYrjgZXjgoANCivjgbvjgpPjgaAs44G+44GV44Gy44GnDQor44GL44Gt44GTLOOBl+OBkuOCiw0KK+OBvuOBpOOBl+OBvizjgbLjgo3jgZrjgb8NCivjgZPjgb/jgoQs44GT44GG44GYDQor44KP44GgLOOBpOOCiOOBlw0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgoLjgorjgZXjgY0s44KG44GG44GYDQor44GE44G+44Gy44GM44GXLOOBsuOBp+OBig0KK+OBj+OCieOCguOBoSzjgo/jgZ/jgosNCivjgobjgYvjgo8s44GV44Go44GXDQor44Gm44KJ44GKLOOBmOOCjeOBhg0KK+OBk+OCk+OBqSzjgb7jgY0NCivjgZXjgYTjgajjgYYs44G+44GV44KG44GNDQor44KI44GX44Gq44GMLOOBsuOCjeOBlw0KK+OChuOBguOBlSzjga/jgovjgobjgY0NCivjgZvjgpPjgYws44KI44GX44GKDQor44Gr44GX44GQ44GhLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOBoCzjgarjgYrjgY0NCivjgoTjgb7jgYrjgYss44Go44GX44GKDQor44KE44G+44KC44GoLOOBi+OBmuOBig0KK+OBteOBmOOBi+OCjyzjgajjgZfjgZ/jgZENCivjgYrjgZDjgoks44Gf44GL44GXDQor44GL44KP44GuLOOBsuOBp+OBig0KK+OBi+OBreOBmuOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgYvjgoLjgags44KG44GG44GZ44GRDQor44GL44KP44Gk44GNLOOBi+OBmuOBig0KK+OBmeOBiOOCiOOBlyzjgZ/jgaTjgoQNCivjgYvjgo/jgbks44GX44GS44KG44GNDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OCguOCiizjgZfjgpPjgZnjgZENCivjgZnjgY7jgoTjgb4s44Gm44Gk44GYDQor44G+44GI44KE44G+LOOBjeOCiOOBlw0KK+OBk+OCgeOBn+OBqyzjgobjgYbjgZgNCivjgbXjgZjjgo/jgoks44GN44KI44GXDQor44GC44Gn44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBqOOBv+OBluOCjyzjgYrjgZXjgoANCivjgarjgYvjgZ8s44G+44GV44GC44GNDQor44Gf44Gh44Gw44Gq44GNLOOBr+OCi+OBguOBjQ0KK+OBk+OBoOOBvizjgZfjgofjgYbjgZQNCivjga/jgarjgYQs44Gh44G7DQor44Gh44Gu44GtLOOBi+OBmuOBig0KK+OBl+OBv+OBmizjgZPjgYbjgYTjgaENCivjgZ/jgY3jgZbjgo8s44G+44GV44GoDQor44GP44Gp44GGLOOBkeOCk+OBmA0KK+OCguOCiuOBiuOBiyzjgb7jgZXjgYvjgZoNCivjgYvjga3jgbLjgoks44GC44GN44GKDQor44GV44Go44GGLOOBsuOCjeOBruOBtg0KK+OChOOBsOOBqizjgajjgZfjgYoNCivjgZXjgYvjgZrjgoEs44Gy44KN44KG44GNDQor44Gv44GX44KC44GoLOOBjeOCiA0KK+OCiOOBruOCguOBqCzjgbLjgafjgY0NCivjgbDjgpPjgZfjgofjgYYs44GP44Gr44GKDQor44G144Gh44GILOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgYTjgY/jgYoNCivjgZnjgZrjgY0s44KG44GN44Gu44KKDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgaTjgZANCivjgY/jgZnjgaAs44GL44Ga44GE44GhDQor44G/44KE44Gf44GRLOOCiOOBl+OBsuOCjQ0KK+OBleOBrizjgbLjgafjgZgNCivjgb7jgovjgZ8s44Go44GX44GC44GNDQor44G+44GN44GfLOOBvuOCiuOBkw0KK+OBi+OBl+OCj+OBjizjga/jgZjjgoENCivjgZ/jgass44KI44GX44G/DQor44GC44KK44KE44GZLOOBiOOBpOOBig0KK+OBi+OBqOOBhizjgZfjgoXjgYbjgZgNCivjgZ/jgarjgYss44G+44GV44Gy44GoDQor44Gk44GY44GfLOOBsuOCjeOBlw0KK+OBiuOBiuOBjOOCj+OCiSzjgZ/jgaDjgYoNCivjgoDjgonjgZXjgo8s44Go44GX44Gy44KNDQor44Gb44GN44KC44GoLOOBsuOBleOBlw0KK+OBpOOBmOOCguOBqCzjgbLjgZXjgagNCivjgZfjgYrjgZ/jgass44KI44GG44GE44Gh44KN44GGDQor44G/44KPLOOBqOOBl+OBig0KK+OBquOBjOOBleOBiyzjgZvjgYTjgZgNCivjgZPjgYTjgacs44GC44GN44KJDQor44GK44GQ44KJLOOBpOOBqOOCgA0KK+OBpOOBpOOBvyzjgZ/jgYvjga7jgooNCivjgbXjgYvjgb8s44GY44KF44KT44GE44GhDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OCguOCjeOBu+OBlyzjgZnjgZnjgoANCivjgZfjgYrjga4s44Gf44Gg44Gy44GnDQor44KE44G+44GQ44GhLOOBruOBtuOBv+OBoQ0KK+OBvuOBv+OChCzjgaTjgYvjgZUNCivjgZXjgYTjgajjgYYs44GX44GS44KG44GNDQor44GC44GN44KE44G+LOOBjeOCiOOBlw0KK+OBguOBoOOBoSzjgYvjgZrjgbLjgo0NCivjgYvjgo/jga4s44Go44GX44G/44GkDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgajjgZfjgY0NCivjgZXjgY/jgb4s44Gy44Gn44G/DQor44KC44Gh44Ga44GNLOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgojjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GN44GXLOOBv+OCjOOBhA0KK+OBr+OChOOBleOBiyzjgb/jgaHjgogNCivjgZPjgbXjgZgs44G+44GV44Gu44G2DQor44GV44GE44Go44GGLOOBguOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgoXjgpPjgZgNCivjgb7jgaTjgYQs44KG44GN44GKDQor44Gv44KE44GX44GgLOOBvuOBleOBiA0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgbvjgpPjgaAs44Gf44GL44GXDQor44GT44GW44KPLOOCiOOBl+OCguOBqA0KK+OBleOBleOBjSzjgbLjgafjgYLjgY0NCivjgo/jgaAs44GN44KI44GXDQor44KE44G+44KP44GNLOOBn+OBvw0KK+OBteOBmOOBhCzjga/jgovjgogNCivjgZ/jgY3jgZbjgo8s44KE44GZ44Gy44GTDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBv+OBi+OBvyzjgZXjgajjgZcNCivjgb/jgo8s44Gu44G844KLDQor44GK44GhLOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgZHjgYTjgZgNCivjgarjgYzjgZ8s44GE44Gh44KN44GGDQor44GP44G844GfLOOCiOOBhuOBkw0KK+OBguOBiuOBjOOBjSzjgZLjgpMNCivjgYvjgorjgoTjgaks44Gq44GK44GTDQor44G/44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBvuOBpCzjgaHjgYjjgZMNCivjgYvjgZ/jgoTjgb4s44GK44GV44KADQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBiuOBiuOBjuOBnSzjgY3jgojjgZ/jgYsNCivjgbDjgbAs44G+44GV44GL44GaDQor44G/44GX44G+LOOBvuOBleOBsuOBkw0KK+OChOOBrizjgYrjgZXjgoANCivjgarjgYvjgZjjgb4s44GC44GN44Gy44GTDQor44Gf44GR44GX44GfLOOBjeOCh+OBhuOBkw0KK+OBquOBi+OBrizjgb/jga7jgosNCivjgZ/jgYvjga4s44KG44GNDQor44GL44KP44GgLOOBi+OBmuOBvuOBlQ0KK+OBn+OBmOOBvizjgZPjgYbjgZ/jgo3jgYYNCivjgoLjgaHjgZrjgY0s44GN44KI44GXDQor44GN44KA44KJLOOBi+OBpOOBvw0KK+OBguOBjeOBuyzjgajjgb/jgoLjgagNCivjgoTjgb7jgoLjgags44GC44GNDQor44GL44KP44GbLOOChuOBn+OBiw0KK+OBleOBlSzjgbLjgZXjgYoNCivjga7jgZss44GL44Ga44Gq44KKDQor44Gy44KJ44GfLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgYzjgo8s44KG44GG44GZ44GRDQor44Gm44KJ44KC44GoLOOBsuOCjeOBteOBvw0KK+OBiuOBluOBjSzjgZXjgYvjgYgNCivjgoLjgoos44GN44KH44GG44GTDQor44GG44GkLOOBsuOBqOOBlw0KK+OCj+OBi+OBvuOBpCzjgajjgZfjgZXjgaANCivjgYTjgb7jgYQs44G144G/44GTDQor44GP44G8LOOBn+OBi+OBsuOCjQ0KK+OBn+OBi+OBrizjgZjjgoXjgpPjgZgNCivjgbLjgbPjga4s44Gy44Gn44GKDQor44GZ44Ga44GNLOOBr+OCi+OBjQ0KK+OBn+OBquOBiyzjgZ/jgYvjga/jgosNCivjgZXjgYvjgoLjgoos44GL44KI44GTDQor44Gf44GN44GW44KPLOOBpuOBpA0KK+OCiOOBl+OBi+OCjyzjgZ/jgYjjgZMNCivjgajjgojjgaAs44KK44KF44GG44GE44GhDQor44GG44KJ44GX44G+LOOChuOBhuOBmA0KK+OBk+OCk+OBrizjgoLjgajjgbLjgo0NCivjgabjgonjgYvjgo8s44Gf44GR44Gq44GMDQor44GT44Gw44KE44GXLOOBguOBjeOBsuOBkw0KK+OBjeOCgOOCiSzjgZ/jgYvjgZMNCivjgYvjgb/jgYos44KM44GEDQor44GP44KM44Gw44KE44GXLOOBjeOCiOOBvw0KK+OBi+OBreOBoCzjgbLjgo3jgZMNCivjgYvjgo/jgoLjgags44GT44GG44G444GEDQor44GE44G+44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBk+OBr+OBjuOBluOCjyzjgb/jga7jgosNCivjgZfjga7jgZbjgY0s44GX44KF44GG44GE44Gh44KN44GGDQor44KB44GQ44KNLOOBleOBqOOBlw0KK+OBj+OBq+OBleOBoCzjgb7jgZXjga/jgosNCivjgoLjgoos44GN44KIDQor44GL44KP44GO44GXLOOBn+OBi+OChuOBjQ0KK+OBiuOBiuOBmeOBjCzjgYvjgYjjgacNCivjgZnjgaAs44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBjeOCiOOBi+OBmg0KK+OBhOOBl+OBkyzjgZjjgoXjgpMNCivjgZnjgZrjgY0s44Gq44GK44KEDQor44GN44GP44GhLOOBi+OBmuOBsuOBkw0KK+OBiuOBjuOBnyzjgYLjgY3jgokNCivjgZ/jgYvjgoTjgb4s44Gf44GL44Go44KJDQor44Gq44GL44GX44G+LOOBjeOCiOOBlw0KK+OBpOOBmOOCguOBqCzjgbLjgo3jgZcNCivjga/jgoTjgb4s44GP44Gr44Gy44KNDQor44GE44Gf44GM44GNLOOBvuOBleOBguOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYLjgY0NCivjgYLjgaDjgaEs44Gy44KN44GXDQor44GN44Gf44G/LOOBsuOCjeOBsuOBpw0KK+OBn+OBvuOBjSzjgb/jgaHjgYoNCivjgb7jgYjjgaAs44KG44GG44GYDQor44GC44Gg44GhLOOBl+OCh+OBhuOBnuOBhg0KK+OBn+OBvuOBoCzjgZDjgpPjgZgNCivjgoLjgorjgZDjgaEs44KG44GG44GYDQor44KI44GX44Gq44GMLOOBruOCiuOBkw0KK+OBvuOBiOOBoCzjgZ/jgYjjgZMNCivjgo/jgZ/jgarjgbks44Gf44G+44GNDQor44Gf44GL44Gv44GXLOOCiOOCiuOBn+OBiw0KK+OBhOOBl+OBkyzjgabjgaTjgo3jgYYNCivjgYrjgZjjgb4s44GL44Gk44GYDQor44GX44Gw44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBl+OBsCzjgZ/jgZHjgbLjgZMNCivjgajjgoLjga4s44GR44KT44GE44GhDQor44GZ44G/LOOBvuOBleOBteOBvw0KK+OBv+OBpOOBquOBjCzjgYLjgY3jgZMNCivjgYbjgonjga4s44G+44GV44GNDQor44KI44GT44Ga44GLLOOBleOBqOOBlw0KK+OBteOBmOOBi+OCjyzjga/jgovjgbLjgo0NCivjgYvjgbbjgonjgY4s44G+44GV44KG44GNDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OBleOBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgoTjga4s44Gf44GL44Gy44GVDQor44KI44GT44GfLOOBquOBiuOBvw0KK+OBquOBi+OCgOOCiSzjgYLjgaTjgZcNCivjgarjgb/jgZXjgags44G+44GV44GL44GaDQor44Gt44GO44GXLOOBkeOBhOOBnuOBhg0KK+OBjeOBrizjga7jgbzjgosNCivjgarjgYvjgZjjgb4s44GC44GN44KJDQor44Gk44Gk44G/LOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBhuOBoCzjgoTjgZnjgbLjgZMNCivjgbvjgoos44G/44KG44GNDQor44GT44KT44GuLOOBi+OBmuOChA0KK+OCj+OBoCzjgobjgb/jgZMNCivjgb7jgaTjgarjgYws44GV44Gg44GKDQor44Gr44GX44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBhOOBhCzjgoTjgZnjgbLjgo0NCivjgoTjgZnjgYQs44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBl+OCheOBhuOBhOOBoQ0KK+OChOOBvuOBleOBjSzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44KE44GZ44KG44GNDQor44GE44KP44GfLOOBr+OCi+OBsuOBkw0KK+OBl+OBkuOCguOCiizjgZ/jgYvjgZcNCivjgYTjgb7jgoDjgoks44Gu44G244Gf44GLDQor44Gk44GL44KC44GoLOOBguOBjeOCiA0KK+OBhOOBqOOBhizjgZfjgpPjgZnjgYQNCivjgY/jgbws44GY44KN44GGDQor44GV44Gq44GILOOBi+OBmuOBvuOBlQ0KK+OBk+OBoOOBvizjgYLjgY3jgYoNCivjgYTjgajjgYYs44GL44Gk44GXDQor44GC44GP44GkLOOCiOOBhuOBkw0KK+OBguOBn+OCieOBlyzjgb/jgYjjgZMNCivjgZ/jgZDjgoos44GY44KF44KT44GTDQor44GuLOOBn+OBpOOChA0KK+OBguOBi+OBvuOBpCzjgZHjgpPjgZjjgo3jgYYNCivjgYLjgZXjga4s44GR44KT44GYDQor44Gq44GL44GM44KPLOOBvuOBleOBguOBjQ0KK+OBi+OCj+OBl+OBvizjgYLjgZXjgZMNCivjgZXjgajjgYYs44Gy44Gn44GKDQor44GK44GQ44KJLOOBm+OBhOOBmA0KK+OBhOOBl+OBsOOBlyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYrjgYss44Gf44GL44KI44GXDQor44Gf44GN44GW44KPLOOBvuOBleOCiOOBlw0KK+OBhOOBn+OBj+OCiSzjgZXjgajjgZcNCivjgbvjgpPjgZTjgYYs44KI44GX44GL44GaDQor44Gq44GM44KE44GZLOOBn+OBi+OChuOBjQ0KK+OBhuOBoeOBoCzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gk44Gt44GKDQor44GE44GX44GQ44KNLOOBsuOCjeOBlw0KK+OCguOCiizjgajjgojjgbLjgZMNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gy44GQ44GhLOOBl+OBkuOBqA0KK+OBjeOBqCzjgZfjgpPjgYTjgaENCivjgZ/jgarjgYss44GL44Ga44KG44GNDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBjOOBhCzjgZHjgpPjgZgNCivjgojjga3jgZbjgo8s44KI44GX44GL44GaDQor44GC44KJ44GL44KPLOOCiuOCheOBhuOBmA0KK+OBhOOBruOBoCzjgoTjgZnjgbLjgZUNCivjgYvjgajjgYYs44G+44GV44GKDQor44GL44GS44KE44G+LOOBvuOBleOBlw0KK+OBv+OChOOCj+OBjSzjgajjgZfjgbLjgZMNCivjgb/jgaHjgoTjgb4s44Gf44Gg44KE44GZDQor44KC44KKLOOBqOOBl+OBguOBjQ0KK+OCguOCiuOBleOCjyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgavjgZfjgoDjgoks44GL44Gk44KG44GNDQor44GV44GE44Go44GGLOOChOOBmeOBruOCig0KK+OChOOBvuOCguOBqCzjgojjgYbjgZnjgZENCivjgb7jgaTjgYbjgoks44KI44GX44GC44GNDQor44Gv44Gb44GM44KPLOOBpOOBqOOCgA0KK+OBhuOBoeOBoCzjgZjjgoXjgpPjgYTjgaENCivjgoTjgZnjgaAs44GT44GG44GE44GhDQor44GE44GX44GgLOOBqOOBiuOCiw0KK+OCguOCiuOBrizjgYvjgaTjgb7jgZUNCivjgY3jgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44GV44GL44KC44GoLOOCiOOBl+OBruOCig0KK+OBneOBhuOBv+OChCzjgbLjgo3jgobjgY0NCivjgY3jgY/jgaEs44GX44KT44GE44GhDQor44GX44G244GELOOBk+OBhuOBmA0KK+OBqOOBv+OBnyzjgYLjgaTjgZcNCivjgoLjgoos44GT44GG44GYDQor44KE44G+44GQ44GhLOOBmOOCheOCk+OBmA0KK+OBjeOBn+OChOOBvizjgojjgZfjgbLjgo0NCivjgb7jgpPjgoLjgags44GC44GN44KJDQor44Gf44Gq44GLLOOChuOBn+OBiw0KK+OCguOCiizjgYvjgZrjgbLjgo0NCivjgYTjgZ/jgY/jgoks44GE44GV44KADQor44GE44Gh44G/44KELOOBvuOBleOBlw0KK+OBq+OBl+OChOOBvizjgYvjgaTjgZgNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44Gv44KT44GM44GELOOBr+OCi+OBig0KK+OBquOBjOOBrizjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZfjgbAs44GR44KT44GYDQor44GT44GY44G+LOOBmeOBmeOCgA0KK+OBn+OBn+OBrizjgZXjgajjgZcNCivjgYvjgo/jgbDjgZ8s44G+44GV44Gy44GTDQor44Gf44GR44GgLOOBn+OCjeOBhg0KK+OBiuOCgOOCiSzjgYTjgY/jgo3jgYYNCivjgZXjgZMs44Gy44KN44GXDQor44GE44GX44Gv44KJLOOBv+OBruOCiw0KK+OBhOOBoeOBruOBmyzjgZnjgZnjgoANCivjgY3jgZfjgaAs44KI44GX44G/DQor44G/44GL44G/LOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgZ/jgY/jgZgNCivjgZXjgZXjgY0s44GC44KG44G/DQor44KI44Gt44G/44GkLOOBi+OBmuOBquOCig0KK+OBm+OBjeOBrSzjgojjgZfjgarjgooNCivjgYTjgb7jgavjgZcs44GN44KI44Gf44GgDQor44GC44GK44GNLOOBn+OBoOOBlw0KK+OBmeOBjuOChOOBvizjgYTjgZXjgYoNCivjgarjgYvjgoLjgoos44KI44GX44G144G/DQor44GX44G+44GgLOOBvuOBleOBsuOBkw0KK+OBvuOBmeOBoCzjgbXjgZXjgYoNCivjgaTjgbzjgYQs44Gy44KN44GXDQor44Gb44GN44KELOOBmeOBmeOCgA0KK+OBjeOBmOOBvizjga7jgorjgYoNCivjgojjgZfjgZrjgb8s44Gy44Gn44Gf44GLDQor44KE44Gq44GO44Gg44GmLOOBl+OCk+OChA0KK+OBl+OBkuOBvuOBpCzjga/jgovjgoTjgZkNCivjgYTjga7jgYbjgYgs44Gq44GK44GNDQor44Gf44GR44GG44GhLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgZ/jgZHjgZcNCivjgbLjgYzjgZcs44GX44KF44GG44GYDQor44Gf44GL44GfLOOBquOBiuOBsuOCjQ0KK+OBquOBi+OBhCzjgaTjgY7jgYoNCivjga/jgZvjgYzjgo8s44GY44KF44KT44GE44GhDQor44Gf44GrLOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgb/jgY3jgajjgogNCivjgZ/jgYvjga/jgZcs44GC44GV44GTDQor44GC44G5LOOBvuOBleOBqA0KK+OBk+OBsOOChOOBlyzjgojjgZfjgZ7jgYYNCivjgYrjga4s44GE44GP44KEDQor44Gf44GL44Gv44GXLOOChuOBjeOBsuOCjQ0KK+OBj+OCjeOBoCzjgYLjgaTjgZcNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GC44G5LOOBl+OCk+OBmA0KK+OBhOOBruOBhuOBiCzjgojjgYbjgZMNCivjgYjjgpPjgaks44KI44GX44GKDQor44Gu44Gu44GX44GfLOOBl+OBkuOBteOBvw0KK+OBi+OBquOBhCzjgY/jgb/jgZMNCivjgZPjgZ/jgY0s44GYDQor44Gf44GL44Gv44GXLOOCiOOBhuOBkw0KK+OBl+OBkuOChOOBvizjgajjgb/jgYoNCivjgbXjgYvjgaAs44GC44GN44GKDQor44GX44GK44GYLOOBi+OBpOOChuOBjQ0KK+OCguOCiuOChCzjgbXjgb/jgbLjgo0NCivjgYrjgYrjgaTjgYss44G+44GV44KEDQor44GC44G5LOOBvuOBleOBn+OBiw0KK+OBsuOCieOBhCzjgZ/jgYvjgobjgY0NCivjgoDjgonjgb7jgaQs44GY44KF44KTDQor44G/44Ga44GfLOOBvuOBleOBvw0KK+OBu+OCiuOBiCzjgYvjgZrjgobjgY0NCivjgbLjgYvjgZUs44G+44GV44Gf44GLDQor44GK44GX44Gf44GrLOOBvuOBk+OBqA0KK+OBk+OBsOOChOOBlyzjgYvjgaTjgb8NCivjgY/jgonjga/jgZcs44Gy44Gn44KG44GNDQor44Gy44KJ44Gw44KLLOOBn+OBkeOBig0KK+OBteOBmOOBiOOBoCzjgb7jgZPjgagNCivjgajjgZbjgo8s44GL44Gk44G/DQor44KE44Gq44GbLOOBl+OBkuOCiw0KK+OBj+OBvOOBnyzjgojjgZfjgYoNCivjgb7jgb/jgoQs44G+44GV44GNDQor44KG44Gv44KJ44GOLOOBvuOBleOBvw0KK+OBoeOCh+OBhuOBquOCkyzjgojjgZfjgb7jgo0NCivjgb/jgojjgZcs44Go44GK44KLDQor44Gu44GY44G+LOOCiOOBl+OBruOCig0KK+OCguOCiuOBleOBjSzjgb7jgZPjgagNCivjgZPjgoTjgb4s44Go44GX44GC44GNDQor44GL44Go44GGLOOBsuOCjeOBjQ0KK+OBjeOBruOBl+OBnyzjgoTjgaHjgogNCivjgYvjgo/jgoDjgo0s44GV44Go44GXDQor44KC44KKLOOBkeOBhOOBhOOBoQ0KK+OBsuOCieOBl+OBnyzjgZXjgaDjgY0NCivjgYvjgo/jgZfjgb4s44KK44KH44GGDQor44G144KL44GL44KPLOOBguOBjeOBqA0KK+OBhOOCk+OBp+OCkyzjgb7jgZXjgbLjgZMNCivjgoTjgb7jgaAs44KE44GZ44KG44GNDQor44Gk44GP44GgLOOBv+OBruOCiw0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgbLjgagNCivjgYrjgb7jgYgs44GK44GV44KADQor44GZ44Ga44GNLOOBvuOBleOChuOBjQ0KK+OBr+OCiSzjgb7jgZXjgbLjgZMNCivjgZXjgYvjgYQs44Gf44Gk44KA44GtDQor44KC44KK44KELOOBi+OBmuOBvuOBlQ0KK+OBv+OChOOCguOBqCzjgajjgZfjgbLjgo0NCivjgZfjgZLjgZ8s44G+44GV44Gy44KNDQor44GE44GX44GL44KPLOOBsuOBp+OBruOCig0KK+OBn+OBluOBjSzjgZXjgaDjgoANCivjgZnjgYjjgbLjgo0s44KA44Gt44KEDQor44GL44Gt44GgLOOBk+OBhuOBhOOBoQ0KK+OBmeOBiOOBsuOCjSzjgZjjgoXjgpPjgYTjgaENCivjgZXjgZXjgY0s44KK44KF44GG44GV44GPDQor44Gy44KE44G+LOOBn+OBpOOBr+OCiw0KK+OBjeOBqeOBkOOBoSzjgojjgZfjgbLjgo0NCivjgZfjgb7jgaAs44Go44GX44KG44GNDQor44G/44KE44GRLOOBsuOBqOOBvw0KK+OCguOCiizjgZjjgo3jgYYNCivjgZfjgonjgYvjgo8s44GT44GG44GYDQor44KP44GL44Gw44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgYoNCivjgYLjgb7jga4s44GY44KF44KT44GYDQor44Gf44GR44GE44GhLOOBsuOCjeOBn+OBiw0KK+OBl+OCkyzjgZHjgYTjgZMNCivjgYvjgZXjga/jgoks44Gm44Gk44KEDQor44Gf44Gq44GLLOOBkeOBhOOBlw0KK+OBiuOBj+OBoCzjgYLjgY3jgokNCivjgYvjgajjgYYs44Go44KC44GTDQor44GL44KP44GV44GNLOOBvuOBleOBkw0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgYTjgaHjgZss44G+44GV44GC44GNDQor44GN44Gf44GM44KPLOOBkuOCk+OBuOOBhA0KK+OChOOBmeOBhCzjgojjgZfjga7jgbYNCivjgYjjgaAs44Go44G/44GL44GaDQor44Gv44KE44GXLOOBn+OBpOOBmA0KK+OBquOBjOOBhCzjgZXjgajjgZcNCivjgajjga7jgoDjgoks44G+44GV44Gu44KKDQor44Gf44Gq44GLLOOBruOBtuOChuOBjQ0KK+OBj+OCiuOBsOOChOOBlyzjgojjgZfjga7jgooNCivjgY3jgoDjgoks44GL44Gk44GTDQor44Gv44Gc44GNLOOBruOBtuOChuOBjQ0KK+OBguOCk+OBrizjgYLjgaTjgZcNCivjgZ/jgYvjgojjgZcs44KI44GX44GV44GoDQor44GC44KT44GW44GELOOBl+OCh+OBhuOBmOOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYrjgZXjgoANCivjga/jgonjga4s44Gk44Gt44GKDQor44Gq44GL44GM44KPLOOBi+OBpOOCiOOBlw0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgYoNCivjgZfjgbbjgoQs44GL44Ga44Gy44KNDQor44GL44Go44GGLOOBruOBtuOBsuOCjQ0KK+OBguOBoOOBoSzjgajjgZfjgbLjgo0NCivjgZXjgY/jgonjgYQs44KE44GZ44Gf44GLDQor44GP44GV44GuLOOBqOOBl+OBsuOCjQ0KK+OBv+OBquOBv+OBnuOBrizjgb/jga7jgosNCivjgaTjgZjjgoDjgoks44GC44GN44Go44GXDQor44KE44G+44GgLOOBhOOBleOCgA0KK+OBi+OBpOOBl+OBvizjgZfjgZLjgb8NCivjgZPjgoTjgarjgYss44Gy44KN44KG44GNDQor44Gf44Gw44GfLOOBguOBjeOCiQ0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgbLjgo3jga4s44Gb44GE44GE44GhDQor44Gk44GW44GNLOOBsuOCjeOBguOBjQ0KK+OBn+OBoeOBsOOBqizjgZfjgZLjgYLjgY0NCivjgbnjgaPjgZfjgocs44GL44Ga44G/DQor44G+44Gk44GX44GfLOOBoeOCheOBhuOBnuOBhg0KK+OBn+OBq+OBkOOBoSzjgZHjgpPjgZfjgoXjgYYNCivjgarjgYvjgajjgoIs44KA44Gk44G/DQor44Gr44GX44KA44KJLOOBsuOCjeOBlw0KK+OBv+OBhuOCiSzjgb7jgZPjgagNCivjgZPjgpPjgaks44GK44GV44KADQor44G+44Gk44GELOOBvuOBleOBjQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgYvjgZoNCivjgbvjgorjgYQs44Gy44KN44GXDQor44G+44GZ44KC44GoLOOBpOOBqOOCgA0KK+OBquOBi+OBmOOBvizjgaHjgYvjgZcNCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44G/44KPLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OBsOOBlyzjgoTjgZnjgZcNCivjgYjjgZDjgaEs44Gu44KK44Gy44GVDQor44GE44Gq44G144GPLOOBmOOCheOCkw0KK+OCj+OBn+OBrOOBjSzjgoTjgZnjgbLjgo0NCivjgbLjgZDjgaEs44KI44GX44Gy44GTDQor44GE44GR44GuLOOBjeOBj+OBig0KK+OBhuOCgeOBr+OCiSzjgb7jgarjgbYNCivjga7jgZbjgo8s44Gf44Gg44GXDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgZgNCivjgYTjgYTjgaAs44Gv44KL44Gy44GVDQor44G144GY44GL44KPLOOBi+OBiuOCiw0KK+OBq+OBl+OBiCzjgZ/jgaDjgbLjgZMNCivjgZPjgZnjgZIs44Gy44KN44GXDQor44GK44GK44GfLOOBmOOCheOCk+OBkw0KK+OBruOBmCzjgY/jgavjgbLjgZMNCivjgZPjgbzjgoos44G/44GN44GKDQor44GZ44GO44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBi+OCj+OBnyzjgabjgaTjgbLjgZMNCivjgZXjgoHjgZfjgb4s44G/44Gt44GKDQor44GT44KE44G+LOOBjeOCiOOBn+OBiw0KK+OBiOOCk+OBi+OBhCzjgZ/jgYvjgZcNCivjgZPjgoLjgaAs44Gk44Go44KADQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOCgOOCiSzjgYvjgZrjgb7jgZUNCivjgYjjga7jgoLjgags44KM44GE44GYDQor44Gf44GL44GgLOOBsuOBleOBn+OBoA0KK+OBquOBi+OBv+OBnizjgobjgb/jgZMNCivjgYrjgYvjgoDjgoks44Gy44KN44GXDQor44GL44G/44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBteOBmOOCguOCiizjgb/jgY3jgYoNCivjgY/jgo3jgaAs44GX44KT44GE44GhDQor44GV44Go44GGLOOCiOOCiuOBiA0KK+OCiOOBl+OCgOOCiSzjgZ/jgY3jgYoNCivjgoLjgZ/jgYQs44Gf44GP44GYDQor44KA44KJ44GfLOOBqOOBiuOCiw0KK+OBv+OCjyzjgarjgYrjgagNCivjgYTjga/jgoks44GI44G/DQor44GE44G+44GELOOBn+OBi+OBlw0KK+OBsuOBrizjgYvjgZrjgYoNCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44Gb44GoLOOCiOOBhuOBmA0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgaAs44KI44GX44GKDQor44KP44Gf44Gq44G5LOOChuOBhuOBkw0KK+OChOOBleOBiyzjgbLjgo3jgZcNCivjgZXjgajjgYYs44GC44GN44Gy44KNDQor44G/44KE44Gf44GRLOOBsuOCjeOBruOBtg0KK+OBvuOBpOOBhuOCiSzjgbLjgajjgZcNCivjgb7jgaTjgZfjgZ8s44G+44GT44GoDQor44GG44KJ44G5LOOBhOOBleOCgA0KK+OBl+OBjOOBjSzjgb7jgZXjgojjgZcNCivjgabjgonjgaAs44KI44GX44Gy44GoDQor44GE44KP44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBhOOBruOBhuOBiCzjgZjjgo3jgYYNCivjgoLjgaHjgZrjgY0s44KG44GN44GKDQor44KI44GX44Ga44G/LOOBiOOBhOOBhOOBoQ0KK+OBv+OBhuOCiSzjgb/jgaTjgosNCivjgb/jgZrjga4s44Gf44GL44KG44GNDQor44KI44GX44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOCi+OBhCzjgojjgZfjgbLjgo0NCivjga/jgoTjgZcs44GX44GS44GC44GNDQor44GX44KJ44GE44GXLOOBsuOBp+OBig0KK+OBmeOBjOOCj+OCiSzjgZ/jgaTjgYoNCivjgarjgYvjgYQs44GR44GE44GE44GhDQor44Gu44G144GYLOOCiOOBl+OBr+OCiw0KK+OBleOBqOOBhizjgbLjgo3jgYvjgZoNCivjgY/jgo3jgaAs44GN44GE44GhDQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBleOBjCzjgZHjgYTjgZcNCivjgb/jgoTjgYvjgo8s44GE44GP44Gy44GVDQor44KP44KJ44GX44GqLOOBl+OBkuOCiw0KK+OBjeOBn+OBjOOCjyzjga7jgbbjgobjgY0NCivjgYTjgb7jgYQs44G144G/44GC44GNDQor44G/44GV44GNLOOBsuOCjeOBruOBtg0KK+OBhOOBl+OBoCzjgZ/jgZHjgZcNCivjgorjgY/jgoks44Gy44Gn44GC44GNDQor44GX44KH44GG44GYLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBteOBj+OBquOBjCzjgojjgZfjgYvjgZoNCivjgY/jgo3jgY0s44Gf44GL44GKDQor44G+44Gf44GNLOOBl+OCh+OBhuOBluOCkw0KK+OBm+OBjeOBrSzjgb7jgZXjga/jgosNCivjgoTjgb7jgZfjgZ8s44G/44Gk44Gy44KNDQor44Gf44Gq44GLLOOCiOOBl+OBguOBjQ0KK+OBiuOBiuOBr+OBvizjgb7jgZXjgbLjgo0NCivjgYrjgYrjgaTjgbws44KI44GX44GC44GNDQor44Gf44GELOOBsuOBleOBr+OCiw0KK+OBpOOCi+OChCzjgb7jgZXjga7jgooNCivjgojjgZfjgaAs44KI44GG44GE44GhDQor44G+44GZ44G/44GkLOOBn+OBi+OBlw0KK+OBi+OBmeOChCzjgZfjgZLjgYoNCivjgojjgZfjgaAs44G/44Gu44KLDQor44GL44KP44KA44KJLOOBsuOBp+OBjQ0KK+OBr+OChOOBlyzjgY/jgavjgbLjgZMNCivjgY/jgavjgoLjgags44G+44GV44KG44GNDQor44GC44KJ44GL44KPLOOBsuOBquOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgYTjgZfjgZDjgo0s44Gb44GE44GYDQor44Gv44KE44G/LOOBi+OBpOOBsuOBkw0KK+OBv+OBquOBv+OBnuOBrizjgY3jgpPjgZgNCivjgZXjgYvjgZ8s44G/44Gu44KLDQor44GL44KP44KC44GoLOOBteOBv+OBi+OBmg0KK+OCgOOCieOBiuOBiyzjgoTjgZnjga7jgooNCivjgYTjgajjgYYs44KI44GX44GKDQor44KP44Gf44Gq44G5LOOBv+OBoeOBig0KK+OBruOCgOOCiSzjgb7jgZXjgYvjgZoNCivjgZXjgajjgYYs44Gv44KL44GqDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYvjgaQNCivjgazjgovjgY0s44Gy44Gn44Gy44GTDQor44KI44GX44GgLOOCiOOBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgbLjgonjgYQs44KI44GX44KG44GNDQor44GN44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBjyzjgo3jgYYNCivjga/jgoTjgZXjgYss44KE44GZ44GTDQor44GC44GV44GuLOOBkeOCk+OBmA0KK+OBteOBmOOBleOBjSzjgZfjgpPjgoQNCivjgYLjgY3jgoLjgags44KK44GLDQor44GX44G+44GgLOOBvuOBleOBiA0KK+OBv+OBmuOBi+OBvyzjgb7jgZXjga/jgosNCivjgarjgYvjgYzjgo8s44Go44GK44KLDQor44GV44Go44GGLOOBpuOBpOOChA0KK+OBk+OBsOOBl+OCiizjgZHjgpPjgZgNCivjgYLjgonjgY0s44KI44GX44GKDQor44GZ44Ga44GNLOOBquOBiuOBqOOBlw0KK+OBq+OBl+OBpyzjgZvjgaQNCivjgYrjgaHjgYLjgYQs44KI44GX44Gy44GVDQor44Gu44Gq44GLLOOBn+OBi+OBlw0KK+OChOOBmeOBhCzjgorjgoXjgYbjgZgNCivjgZPjga/jgZ8s44GR44KT44GE44GhDQor44G/44Gu44GX44G+LOOBguOBpOOBig0KK+OBpuOCieOBl+OBvizjgY3jgb/jgbLjgZMNCivjgoTjgY/jgo8s44KI44GX44GKDQor44GZ44GM44KP44KJLOOBv+OBoeOBig0KK+OBv+OBpOOBr+OBlyzjgabjgaTjgo3jgYYNCivjga7jgoDjgoks44Gu44KK44GTDQor44Gh44KH44GGLOOBguOBmuOBvw0KK+OBleOBqOOBhizjgorjgofjgYbjgZMNCivjgZfjgZrjga/jgoks44KM44GE44GTDQor44Gv44KE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBq+OCjyzjgojjgZfjgYoNCivjgb/jgYjjga4s44GR44KT44GE44GhDQor44GX44G+44GgLOOBsuOBp+OBqA0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYoNCivjgbLjgonjga4s44KK44KH44GG44GE44GhDQor44KE44G+44Go44KELOOBi+OBmuOBsuOBkw0KK+OBpOOBruOBoCzjgoTjgZnjga7jgooNCivjgZPjgbDjgoTjgZcs44Gu44G244GC44GNDQor44GV44GL44GP44KJLOOBjeOCh+OBhuOBkw0KK+OBvuOBpOOBoCzjgb7jgZXjgYLjgY0NCivjgYTjgb7jgoDjgoks44Gb44GE44GXDQor44KE44GO44Gv44GXLOOBquOBiuOBkw0KK+OBiuOBjuOBrizjgbLjgo3jgYoNCivjgZ/jgarjgYss44KI44GX44G+44GVDQor44Gy44GMLOOCiOOBl+OBi+OBmg0KK+OBleOBkyzjgaTjgajjgoANCivjgZ/jgZbjgY0s44Gf44KC44GkDQor44GE44GE44GgLOOBvuOBleOBr+OCiw0KK+OBhOOBhOOBoCzjgorjgofjgYbjgZnjgZENCivjgb7jgaTjgZDjgb4s44GX44GS44G7DQor44KA44KJ44GfLOOBkeOCkw0KK+OChOOBmeOCguOBqCzjgb7jgZPjgagNCivjgZfjgb/jgZos44Gy44KN44GXDQor44KP44GP44GELOOCiOOBl+OBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgY3jgZ/jgYQs44Go44GX44Gy44GTDQor44GC44Gg44GhLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBr+OBquOBtuOBoSzjga/jgZjjgoENCivjgZXjgajjgYYs44GP44Gr44Gy44KNDQor44GC44KJ44GELOOBqOOBl+OBsuOBkw0KK+OBn+OBkeOBquOBiyzjgZXjgajjgZcNCivjgYvjgYQs44G/44G744GTDQor44GC44GL44GgLOOBl+OBmuOBig0KK+OBj+OBq+OBmeOBiCzjgbLjgo3jgYLjgY0NCivjgb7jgYjjgYvjgo8s44GC44GN44KJDQor44G/44Gq44G/LOOBv+OBpOOBlw0KK+OBn+OBjeOBjOOBvyzjgbLjgafjgobjgY0NCivjgb7jgaTjgYQs44G+44GT44GoDQor44GX44KJ44GELOOBvuOBleOBv+OBoQ0KK+OBn+OBkeOCiOOBlyzjgZvjgYTjga7jgZnjgZENCivjgZ/jgYvjgaAs44GN44KI44Gf44GLDQor44Gf44GL44GOLOOBn+OBi+OBsuOBkw0KK+OBj+OBqeOBhizjgY3jgojjgZ/jgYsNCivjgZfjgb7jgaAs44Gu44G244GTDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBl+OBjuOCh+OBhizjgbLjgafjgYLjgY0NCivjgbLjgo3jga4s44Gd44GK44GY44KDDQor44GN44Gu44GX44GfLOOCiOOBl+OBiA0KK+OBl+OBv+OBmizjgZfjgofjgYbjgZ7jgYYNCivjgZfjgoDjgoks44Gy44KN44GC44GNDQor44GP44GV44GL44KKLOOBv+OBuw0KK+OBi+OCi+OBuSzjgajjgZfjga/jgosNCivjgb7jgaTjgoLjgags44Gq44GK44KG44GNDQor44GX44G+44KA44KJLOOBqOOBvuOBlQ0KK+OBi+OBpOOBi+OCjyzjgZ/jgYvjgYoNCivjgYTjgZos44GE44GV44GKDQor44GV44GP44KJ44KC44GoLOOBhOOBpOOBmA0KK+OCguOCiuOBnyzjgZjjgo3jgYYNCivjgZ/jgarjgbks44GP44Gr44GE44GhDQor44Gv44Gj44Go44KKLOOBteOBv+OBqA0KK+OCiuOCheOBhuOBlCzjgZfjgoXjgpPjgYTjgaENCivjgYrjgb7jgaTjgZbjgo8s44G+44GV44Gv44KLDQor44GK44Go44KPLOOChuOBjeOCiOOBlw0KK+OBk+OBoOOBvizjgZvjgYTjgYTjgaENCivjgYvjgoTjgZfjgb4s44KG44GG44GYDQor44GT44Gw44KE44GXLOOBl+OBkuOCiw0KK+OBj+OBq+OBiOOBoCzjgb7jgY3jgYoNCivjgZPjgYYs44GL44Ga44Gq44KKDQor44Gr44GX44KE44G+LOOBsuOBqOOBvw0KK+OCj+OBoCzjgbLjgo3jgoQNCivjgavjgZfjgoLjgags44Gf44GL44GXDQor44GV44GE44Go44GGLOOBi+OBpOOBruOCig0KK+OBqOOBl+OBvizjgojjgYbjgYTjgaENCivjgYrjgYrjgaTjgYss44G744GT44GPDQor44GK44GuLOOBvuOBleOCiw0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44GK44Gc44GNLOOBn+OBi+OBlw0KK+OBiuOBi+OBoCzjgb7jgZXjgb/jgaQNCivjgYrjgYzjgo8s44Gy44KN44GXDQor44GE44GR44GM44G/LOOBsuOBp+OBqOOBlw0KK+OBk+OBvuOBpCzjgZ/jgYvjga7jgooNCivjgojjgZfjgYQs44KI44GX44GC44GNDQor44Gy44KJ44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBi+OBmeOBiyzjgbLjgo3jgZcNCivjga/jgZfjgoLjgags44KE44GZ44KG44GNDQor44GP44KP44GILOOBjeOBj+OBig0KK+OBi+OBreOBvuOBpCzjgYvjga3jgbLjgacNCivjgb7jgaTjgYos44GR44GE44GE44GhDQor44GE44GpLOOBn+OBi+OBsuOBkw0KK+OBhOOBrizjgZjjgoXjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44Gf44GR44GXDQor44GL44G/44KE44G+LOOBk+OBhuOBmA0KK+OBk+OBl+OCguOBqCzjgZPjgYbjgYTjgaENCivjgYrjgYrjgYzjgo/jgoks44KI44GX44Gu44G2DQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBquOBjOOBvuOBpCzjgZfjgpPjgYTjgaENCivjgZnjgZrjgY0s44GU44KN44GGDQor44Gm44KJ44GKLOOCiOOBhuOBmA0KK+OBu+OCiuOBkSzjgYvjgYrjgosNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GK44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOCguOBqCzjga7jgbbjgYoNCivjgYrjgYrjgZnjgb8s44Gy44KN44KG44GNDQor44GE44KP44G244GhLOOBruOBtuOChOOBmQ0KK+OBvuOBpOOBhuOCiSzjgZ/jgaTjgYoNCivjgZXjgo/jgaEs44Gh44GL44GKDQor44Gm44KJ44GgLOOBm+OBpOOBkw0KK+OBhOOBsOOChOOBlyzjgobjgZ/jgYsNCivjgYTjgo/jgZss44GY44KF44KT44GE44Gh44KNDQor44GK44GM44KPLOOBm+OBhOOBmA0KK+OBguOBnSzjgoTjgZnjgajjgoINCivjgbXjgY/jgoLjgags44GV44KG44KKDQor44GE44GnLOOBteOBv+OBn+OBiw0KK+OBi+OCj+OBleOBjSzjgabjgaTjgZgNCivjga/jgovjgaos44G+44GV44Gu44KKDQor44Gf44GY44G+LOOChuOBjeOBteOBvw0KK+OBi+OBquOChOOBvizjgojjgYbjgZgNCivjgZ/jgarjgYss44KP44Gf44KLDQor44G+44Gk44GW44GNLOOBvuOBleOBig0KK+OBhOOBruOBleOBiyzjgZPjgYbjgZgNCivjgYrjgZfjgoTjgb4s44KI44GX44Gy44GVDQor44Gf44GR44GG44GhLOOBn+OBi+OBlw0KK+OBleOBleOBiuOBiyzjgajjgZfjgobjgY0NCivjgZPjgoLjgoos44G+44GV44GC44GNDQor44Gf44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBhOOBkeOBjOOBvyzjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44G+44GV44GC44GNDQor44GL44KP44GL44G/LOOBl+OBkuOBjQ0KK+OBhOOBm+OBjSzjgYjjgYTjgZnjgZENCivjgZ/jgZHjgaAs44Gy44Gn44KG44GNDQor44Gf44GL44KE44GZLOOBvuOBquOBtg0KK+OBi+OCgeOBoCzjgZ/jgZHjgajjgZcNCivjgbXjgZjjga4s44G+44GT44GoDQor44G/44GV44GNLOOChOOBmeOBruOCig0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgYrjgYzjgo8s44GT44GG44GYDQor44Gq44GL44GW44KPLOOBsuOBp+OBqOOBlw0KK+OBm+OBjSzjgoTjgZnjgY/jgasNCivjgojjgZfjgYvjgo8s44Gf44GP44KEDQor44Gf44GM44KPLOOBn+OBi+OBlw0KK+OBv+OBn+OBqyzjgajjgZfjgbLjgZMNCivjgZnjgYjjgZ8s44GC44GN44Gy44GoDQor44GE44Gs44GELOOBkeOCkw0KK+OBiuOBleOBoCzjgZXjgajjgZcNCivjgbXjgovjgYvjgo8s44GL44Gk44GKDQor44GZ44Ga44GNLOOBvuOBk+OBqA0KK+OBjeOBn+OCgOOCiSzjgorjgofjgYbjgZnjgZENCivjgZPjgb7jgaQs44Gy44KN44Gf44GLDQor44GC44GV44GgLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBi+OCk+OBluOBjSzjgoTjgZnjgb7jgZUNCivjgYbjgZnjgYQs44KI44GX44G144G/DQor44G144KL44KELOOBqOOBl+OBsuOBkw0KK+OCiOOBkeOCgOOCiSzjgbXjgb/jgojjgZcNCivjgojjgZPjgYgs44KI44GX44GNDQor44GC44GL44GE44KPLOOBqOOBl+OBsuOBkw0KK+OBteOBj+OBl+OBvizjgbLjgo3jgoTjgZkNCivjgoTjgZjjgb4s44KE44GZ44GXDQor44Gv44KJLOOBv+OChuOBjQ0KK+OBjeOBl+OBoCzjgobjgYbjgZ7jgYYNCivjgY/jgbws44G/44Gk44KLDQor44GL44Gf44GO44KKLOOChOOBmeOBruOCig0KK+OBhOOBoeOBhCzjgbXjgb/jgoQNCivjgb7jgaTjgY0s44Go44GX44GC44GNDQor44KP44GR44G5LOOBkeOCk+OBmA0KK+OBvuOCi+OChOOBvizjgbLjgafjgYoNCivjgaTjgbDjgY0s44GX44GS44KLDQor44GV44GuLOOBsuOCjeOBlw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgajjgZcNCivjgbXjgY/jgoTjgb4s44G+44GV44GC44GNDQor44GG44GI44KA44KJLOOBvuOBleOCiw0KK+OBj+OCj+OBi+OBqSzjgorjgY0NCivjgY/jgavjgb7jgaQs44G+44GV44KLDQor44GL44Gf44GK44GLLOOBruOCiuOChuOBjQ0KK+OBqOOBv+OBnyzjgYvjgZrjga7jgooNCivjgarjgYvjgoDjgoks44GC44Gk44Gy44GTDQor44GP44Gp44GGLOOCiOOBl+OBpuOCiw0KK+OBiuOBtuOBoSzjgabjgovjgbLjgZMNCivjgojjgZfjgYvjgo8s44Go44GK44KLDQor44GL44GS44KE44G+LOOBvuOBk+OBqA0KK+OBqOOBoCzjgZHjgYTjgYTjgaENCivjgZ/jgYvjga/jgoks44GV44Go44GXDQor44G+44Gk44GX44GfLOOBl+OCk+OBmA0KK+OBk+OBoOOBhOOCiSzjgbLjgafjgZcNCivjgZfjgpPjgYvjgYQs44KC44Go44GKDQor44Gm44KJ44GgLOOBvuOBleOBsuOBqA0KK+OBi+OCj+OBjeOBnyzjga/jgZjjgoENCivjgb/jgYbjgoks44GV44Gq44GIDQor44GC44G5LOOBsuOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgobjgY3jgbLjgo0NCivjgbvjgZ3jgaAs44GE44KP44GKDQor44G+44GZ44GgLOOCiOOBl+OBig0KK+OBi+OBluOBvizjgZ/jgZHjgZcNCivjgYLjgonjgb7jgY0s44GL44Ga44GKDQor44KP44Gf44Gs44GNLOOBv+OBpOOBjg0KK+OBleOBi+OCguOBqCzjgaTjgojjgZcNCivjgYLjgb7jgYzjgb8s44GX44KTDQor44GT44KT44GuLOOBhOOBleOBig0KK+OBiuOBj+OBoCzjgojjgZfjga7jgooNCivjgYrjga/jgY8s44G/44Gk44GKDQor44Gq44GL44KA44KJLOOCiOOBl+OBteOBvw0KK+OBquOBi+OCgOOCiSzjgobjgYbjgYTjgaENCivjgYbjgZfjgoTjgb4s44KG44GN44GKDQor44KE44GX44GNLOOBguOBhOOBhOOBoeOCjeOBhg0KK+OBjeOBruOBmyzjgZfjgoXjgpPjgYTjgaENCivjgo/jgYvjgoTjgb4s44GT44GG44GE44GhDQor44GE44G+44GELOOBvuOBleOChuOBjQ0KK+OBvuOBiOOBoCzjgY3jgojjgZcNCivjgb7jgaTjgZfjgZ8s44GI44GE44GYDQor44Gy44KJ44GQ44GhLOOBsuOCjeOBlw0KK+OCj+OBoCzjgYLjgaTjgZMNCivjgo/jgZ/jgarjgbks44Gd44GG44GE44GhDQor44G+44Gk44GELOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgb/jgY3jgYoNCivjgarjgYvjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44Gf44GN44GfLOOCiOOBl+OBqA0KK+OBvuOBmeOBoCzjgajjgoLjgZMNCivjgb/jgoTjgYbjgaEs44G+44KG44G/DQor44GX44KA44KJLOOBleOBi+OBiA0KK+OBvuOBpOOBhCzjgZ/jgY3jgZMNCivjga/jgonjga/jgZ8s44Go44G/44Gf44KN44GGDQor44Gy44GV44Gf44GrLOOBguOBpOOBlw0KK+OBi+OBjOOBvyzjgb7jgZXjgaTjgZANCivjgojjgZfjgoDjgoks44KG44GG44GYDQor44GK44GK44Gk44GLLOOBkeOBhOOBlA0KK+OBn+OBquOBiyzjgZfjgpPjgYTjgaENCivjgbLjgonjga4s44GX44KF44GGDQor44Gf44GR44GZ44GILOOBpuOBpOOChA0KK+OBq+OBl+OBrizjgojjgZfjgobjgY0NCivjgYrjgYrjgaTjgYss44KB44GQ44G/DQor44GK44GgLOOBl+OCk+OBmA0KK+OBl+OBv+OBmizjgobjgZ/jgYsNCivjga/jgb7jgoLjgags44Gf44GL44KI44GXDQor44G/44KE44G+44GILOOBvuOBleOBquOCig0KK+OBquOBjOOBl+OBvizjgYjjgYTjgZgNCivjgb/jgaTjgoEs44GT44GG44GYDQor44GL44GU44Gf44GrLOOCiOOBl+OBi+OBmg0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgbXjgb8NCivjgZXjgYvjgZ8s44GR44KT44GYDQor44GK44GE44GP44G8LOOBguOBjeOBsuOBpw0KK+OBj+OCieOCguOBoSzjgbLjgo3jgoQNCivjgYLjgpPjgZbjgYQs44G+44GV44KG44GNDQor44G144GP44GX44G+LOOCiuOBiA0KK+OBquOBi+OCgOOCiSzjgbLjgajjgb8NCivjgYTjgajjgYQs44KG44KK44GTDQor44G744GX44GuLOOBv+OBoeOBkw0KK+OBk+OBhOOBpyzjgbLjgo3jgbLjgZMNCivjgYrjgZbjgY0s44GY44KF44KTDQor44Gb44GY44KCLOOBvuOBleOBv+OBoQ0KK+OBmeOBqeOBhizjgb7jgZXjgb/jgaQNCivjgYvjgZjjgo/jgoks44G/44Gp44KKDQor44GZ44Ga44GNLOOBi+OBpOOBsuOCjQ0KK+OBu+OBl+OBrizjga/jgovjgZMNCivjgarjgYvjgoDjgoks44KI44GX44GC44GNDQor44KC44KK44GfLOOBguOBjeOBi+OBmg0KK+OChOOBvuOBluOBjSzjgajjgZfjgbLjgZMNCivjgYrjgY/jgYzjgo8s44G+44GV44Gy44GTDQor44Gq44GM44Gv44G+LOOBsuOCjeOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgYLjgY3jgb/jgaQNCivjgb7jgaTjgaAs44Gf44GL44Go44GXDQor44G744GL44Ge44GuLOOBguOBpOOBsuOBlQ0KK+OBguOBuSzjgajjgZfjgaTjgZANCivjgarjgYzjgYQs44GT44GG44GYDQor44Go44GM44GXLOOBqOOBl+OBsuOBqA0KK+OChOOBluOBjSzjgabjgYTjgZ7jgYYNCivjgoTjgb7jgYbjgaEs44Gy44Gn44GNDQor44G/44GV44GNLOOBquOBiuOBjQ0KK+OCiOOBl+OBoCzjgZfjgpPjgZgNCivjgarjgYvjgoLjgags44GX44GS44KLDQor44GX44Gu44Gv44KJLOOBpOOBreOBi+OBmg0KK+OBquOBi+OBq+OBlyzjgYLjgY3jgokNCivjgoTjgZjjgb4s44GN44KI44GXDQor44Go44KI44G144GPLOOChuOBhuOBmA0KK+OBn+OBi+OBl+OBvizjgYvjgaTjgZgNCivjgbXjgZfjgavjgZcs44GN44G/44GIDQor44KA44GL44GELOOBpuOBpOOChA0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgobjgZcNCivjgYvjgo/jgbDjgZ8s44GV44Go44GXDQor44KA44GL44GI44GgLOOBleOBqOOCiw0KK+OBl+OBm+OBjSzjgYTjgaPjgZfjgpMNCivjgYvjgZ/jgYrjgYss44KI44GX44Gy44GnDQor44Gq44GE44Go44GGLOOBsuOCjeOBjQ0KK+OBv+OBqCzjgoTjgZnjgagNCivjgYrjgYrjgavjgZcs44Go44GX44KN44GGDQor44KI44GT44KE44G+LOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgYLjgY0NCivjgYTjgZbjgo8s44Gy44GV44Gu44KKDQor44Gf44Gr44GM44KPLOOBqOOBv+OBiA0KK+OBmeOBjuOBnyzjgobjgYsNCivjgYrjgZfjgZ8s44G+44GV44KG44GNDQor44GX44G+44GgLOOBqOOCguOBkw0KK+OChOOBvuOCgOOCiSzjgZPjgYbjgYTjgaENCivjgbXjgY/jgYrjgYss44G+44GV44GXDQor44KE44Gq44KKLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgZfjgpPjgZgNCivjgZXjgYvjgYQs44GV44Go44KLDQor44KE44G+44GgLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBk+OBlyzjgZfjgZLjgosNCivjga7jgoLjgags44Go44GX44KG44GNDQor44Gf44GR44GX44GfLOOCguOBqOOBjQ0KK+OBv+OBruOBoCzjgZfjgZLjgobjgY0NCivjgYLjgZXjgYQs44GX44G7DQor44KA44Gt44KE44GZLOOBsuOBp+OChuOBjQ0KK+OBi+OCj+OBq+OBlyzjgb7jgZPjgagNCivjgZXjgYvjgZDjgaEs44KE44GZ44Gy44GVDQor44KE44G+44GW44GNLOOBqOOBl+OBsuOBkw0KK+OBguOBleOBiuOBiyzjgbLjgafjga7jgbYNCivjgY3jga7jgZfjgZ8s44G/44GN44Ge44GGDQor44G/44G+LOOBjeOCiOOBvw0KK+OBteOBj+OCguOCiuOBnyzjgZfjgZLjgYoNCivjgYvjgZjjgoTjgb4s44KI44GX44GTDQor44KE44G+44GW44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBleOBqOOBhizjgajjgZfjgoQNCivjgYvjgo/jgbks44G/44Gk44Gy44GTDQor44G+44KL44KE44G+LOOBruOBtuOCiOOBlw0KK+OBiuOBjOOCieOBrSzjga7jgbbjgZMNCivjganjgYQs44KG44GG44Ge44GGDQor44Gf44Gq44GLLOOBv+OBpOOBig0KK+OBiuOBjuOBl+OBvizjgYrjgZXjgoANCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44G144KL44KELOOBsuOCjeOBruOCig0KK+OBteOBj+OBhCzjgaTjgojjgZcNCivjgb7jgZnjgaAs44Gf44GL44Gy44KNDQor44G744KT44GgLOOChuOBv+OBkw0KK+OBquOBi+OBq+OBlyzjgarjgYrjgZ/jgYsNCivjgb/jgoTjgb7jgYgs44Gq44GK44Gy44GTDQor44GK44GL44GuLOOBsuOBp+OBig0KK+OBsOOBsCzjgojjgYbjgYTjgaHjgo3jgYYNCivjgaDjgZHjgoTjgb4s44GV44GP44GTDQor44KE44G+44GQ44GhLOOChOOBmeOBig0KK+OBr+OChOOBlyzjgajjgZfjgo3jgYYNCivjgajjgb/jgZrjgYss44KE44GZ44Gy44KNDQor44Gq44GL44Gr44GXLOOBr+OCi+OBsuOBlQ0KK+OBguOBuSzjga/jgZjjgoENCivjgYLjgYrjgoTjgY4s44Gy44KN44GTDQor44Gm44KJ44KP44GNLOOBjeOCiOOBkw0KK+OBi+OBn+OBjuOCiizjga7jgbzjgosNCivjgarjgYvjgYzjgo8s44G+44GV44GKDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBhuOBiOOBoCzjgbLjgo3jgb8NCivjgbXjgZjjgo/jgoks44GC44GN44Gy44KNDQor44Gv44KE44GV44GLLOOBn+OBpOOBvw0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgZTjgajjgYYs44G+44GV44Gy44KNDQor44GX44KA44KJLOOBkeOBhOOBnuOBhg0KK+OBm+OBjSzjgajjgZfjgYvjgZoNCivjgYLjgYTjgZbjgo8s44GC44GN44GKDQor44Gu44KA44KJLOOBk+OBmeOBkQ0KK+OBi+OCk+OBoCzjgZfjgoXjgYbjgZgNCivjgYbjgonjgYQs44G+44GZ44G/DQor44KC44Go44KE44G+LOOCiOOBl+OBr+OCiw0KK+OBi+OBv+OCgOOCiSzjgabjgaTjgYoNCivjgbLjgonjgYQs44G+44GV44KG44GNDQor44GC44KJ44GELOOBqOOCguOBquOCig0KK+OBleOBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgb7jgY3jga/jgoks44G+44GV44GXDQor44GK44GK44KP44GPLOOBiuOBleOCgA0KK+OCguOBoeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjga/jgpPjgYzjgYQs44KI44GX44Gy44KNDQor44GE44Gu44GG44GILOOBi+OBmuOBsuOBqA0KK+OBquOBjOOBhOOBlyzjgYvjgaTjgb8NCivjgavjgZfjgoLjgags44GC44GN44KJDQor44Gk44Gh44KELOOBl+OCh+OBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgZcNCivjgbvjgpMs44GX44KH44GG44GUDQor44GE44KP44GELOOBn+OBpOOChA0KK+OBj+OBvCzjgb7jgZXjgYoNCivjga/jgZPjgYQs44G+44GV44GKDQor44KP44Gf44Gq44G5LOOBruOCiuOBig0KK+OBmeOBjuOBnyzjgajjgZfjgb/jgaQNCivjgarjgYvjgoDjgoks44GL44Ga44Gy44KNDQor44GL44KJ44GV44GNLOOBk+OBhuOBhOOBoQ0KK+OBruOCiuOBvuOBpCzjgb/jgaTjgbLjgZMNCivjgY/jgZnjgoLjgags44Gf44GL44KI44GXDQor44Gr44GX44KA44KJLOOBleOBqOOBlw0KK+OBk+OBmeOBkizjgb7jgZXjgaoNCivjgbXjgY/jgb/jgaQs44KE44GZ44G/DQor44KE44G+44GQ44GhLOOBleOBtuOCjeOBhg0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgb8NCivjgajjgY/jgaAs44Gq44GK44KEDQor44GC44KK44Go44G/LOOBmOOBpOOCjeOBhg0KK+OBsuOChOOBvizjgZfjgpPjgYTjgaENCivjgbLjgo3jgZss44G+44GV44Go44GXDQor44Gr44GX44GgLOOBqOOBiuOCiw0KK+OBr+OBo+OBqOOCiizjgojjgZfjgb8NCivjgbLjgonjgbDjgoTjgZcs44GR44KT44GE44GhDQor44Gv44KJ44GX44G+LOOBiOOBhOOBmA0KK+OBr+OCiSzjgZ/jgb/jgYoNCivjga/jgb7jga4s44GL44Ga44KG44GNDQor44Gv44G+44GgLOOBvuOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgbLjgZMNCivjga/jgoTjgZcs44Gy44GV44GYDQor44Gy44GQ44GhLOOBvuOBleOBvw0KK+OBsuOCieOBrizjgobjgZ/jgYsNCivjgbvjgpPjgb4s44G+44GV44Gv44KLDQor44Gv44KL44G+44GXLOOCiOOBl+OBvuOBlQ0KK+OBr+OBl+OCguOBqCzjgoTjgZnjgYoNCivjgbLjgaAs44Gf44GL44GXDQor44Gy44KJ44GZ44GLLOOBoeOCh+OBhuOBmA0KK+OBr+OBjuOCj+OCiSzjgZPjgYbjgYTjgaENCivjga/jgb7jgaAs44GN44G/44GIDQor44Gv44GX44KC44GoLOOBv+OBoeOBr+OCiw0KK+OBu+OCk+OBvizjgb/jgojjgZcNCivjgbvjgYvjgoos44KE44GZ44Gy44KNDQor44Gv44KJ44GgLOOBv+OBoeOBkw0KK+OBr+OChOOBlyzjgZHjgpPjgZgNCivjgbvjgorjgbks44GL44Ga44GKDQor44Gv44GX44KC44GoLOOBvuOBleOBig0KK+OBr+OBm+OBjOOCjyzjgZ/jgaDjgYvjgZoNCivjgbLjgo3jgbks44G/44GN44GKDQor44Gv44GX44KC44GoLOOBi+OBmuOBvw0KK+OBsuOCieOBrizjgb7jgZXjgobjgY0NCivjga/jgZfjgoLjgags44GR44KTDQor44Gy44GY44GL44GfLOOBpOOBjuOBiA0KK+OBiuOBiuOBrOOBvizjgYTjgZXjgYoNCivjga/jgbbjgaQs44Gy44KN44KG44GNDQor44Gy44Gg44GLLOOBi+OBmuOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgY3jgpPjgoQNCivjga/jgb7jga4s44Gq44GK44GNDQor44Gy44GX44Gs44G+LOOBruOBtuOChuOBjQ0KK+OBr+OCiSzjgojjgZfjgb8NCivjga/jgarjgY0s44GX44KT44GE44Gh44KN44GGDQor44Gv44KJLOOBkeOCk+OBmA0KK+OBr+OBjCzjgZ/jgZHjgYoNCivjga/jgarjgaAs44G+44GV44Gu44KKDQor44Gy44KJ44KE44Gq44GOLOOBruOBtuOBn+OBiw0KK+OBu+OCiuOBi+OCjyzjgb/jgaTjga7jgooNCivjgbvjgorjgYvjgo8s44GR44KTDQor44Gv44GX44KC44GoLOOBguOBjeOBkw0KK+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgbLjgonjgYQs44GY44KF44KTDQor44Gv44KJ44GQ44GhLOOChOOBmeOBvuOBlQ0KK+OBsuOCieOBiizjgobjgYbjgYTjgaENCivjga/jgZfjgZrjgoEs44GL44KT44GfDQor44Gk44GYLOOBvuOBquOBtg0KK+OBleOBj+OCieOBluOCjyzjgbLjgafjgajjgZcNCivjgYLjgbks44GT44GG44GE44GhDQor44GC44G5LOOBvuOBleOBsuOCjQ0KK+OBguOBuSzjgbLjgo3jgZ8NCivjgYLjgbks44GT44GG44GYDQor44GC44G5LOOBiuOBleOCgA0KK+OBguOBuSzjgZ/jgYvjgYoNCivjgYLjgYvjgY4s44KE44GZ44Gy44GoDQor44GK44GL44KC44GoLOOBl+OBmuOBig0KK+OBiOOCk+OBqSzjgb/jgaHjgZMNCivjgYLjgYvjgYTjgZcs44Gk44Gt44Gv44KLDQor44Gr44GX44GqLOOBvuOBk+OBqA0KK+OBguOBjeOCguOBqCzjgajjgZfjgYoNCivjgYLjgY3jgZrjgY0s44G+44GV44Go44GXDQor44Gy44KJ44Gw44KE44GXLOOBl+OBkuOBvuOBlQ0KK+OBguOCgeOBv+OChCzjgYLjgY3jgokNCivjgYLjgb/jga4s44GC44GN44Gy44KNDQor44GC44Gq44G/LOOBvuOBleOBi+OBmg0KK+OBguOBquOBluOCjyzjgYvjgYrjgosNCivjgYLjgpPjganjgYYs44KG44GG44Ge44GGDQor44GC44KT44Gp44GGLOOBsuOCjeOBjQ0KK+OBguOBiuOChOOBvizjgb7jgZXjgY0NCivjgYLjgYrjgoTjgb4s44GT44GG44GYDQor44GC44GK44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBguOCieOBhCzjgZPjgYbjgYTjgaENCivjgYLjgonjgYQs44G+44GV44GXDQor44GC44KJ44GELOOBvuOBk+OBqA0KK+OBguOCieOBhCzjgZ/jgb7jgYoNCivjgYLjgonjgYQs44G+44GV44KE44GZDQor44GC44KJ44GNLOOBv+OChuOBjQ0KK+OBmeOBjOOCj+OCiSzjgajjgoLjgb8NCivjgYLjgZXjgbIs44GX44GS44KLDQor44GC44GV44GP44KJLOOBn+OBi+OBlw0KK+OBguOBleOBvyzjgbXjgb/jgajjgZcNCivjgYLjgZXjgoDjgoks44GL44Gk44G/DQor44KE44G+44GX44GqLOOBi+OBmuOBig0KK+OBguOBleOCiizjgb7jgZXjgZMNCivjgYLjgZXjgZos44Go44KC44GTDQor44GC44Gk44G/LOOCiOOBl+OChuOBjQ0KK+OBsOOCkyzjgbLjgo3jgoTjgZkNCivjgbnjgaPjgZfjgocs44GR44GE44GE44GhDQor44Gh44GwLOOBguOBkw0KK+OBoeOBi+OBjeOCiCzjgarjgYrjgbLjgZUNCivjgaHjgoDjgoks44Gf44G/44GIDQor44Gp44Gw44GXLOOBn+OBkeOBig0KK+OBiOOBsOOBlyzjgZfjgofjgYbjgbjjgYQNCivjgYjjgbPjga/jgoks44KI44GX44G144G/DQor44GI44GM44G/LOOChuOBjeOBig0KK+OBiOOBkOOBoSzjgobjgY3jgZ/jgYsNCivjgYjjgZDjgaEs44GV44Go44GXDQor44GI44GY44KKLOOBmeOBkOOCiw0KK+OBiOOCk+OBqSzjgb7jgobjgb8NCivjgYjjgpPjgaks44Gf44Gk44GKDQor44GI44Gu44KC44GoLOOCiOOBl+OBpOOBkA0KK+OBteOBoeOBrizjgajjgYrjgosNCivjgbXjgZjjgYQs44GK44GV44KADQor44G144GY44GELOOBpuOBpA0KK+OBhOOBl+OBhCzjgZjjgoXjgpMNCivjgoDjgonjgoTjgb4s44Go44GX44Gy44GVDQor44G144GY44GL44GfLOOBn+OBpOOChA0KK+OBteOBmOOBi+OCjyzjgYvjgZrjgajjgoINCivjgbXjgZjjgb7jgoss44Gy44GV44GoDQor44G144GY44KC44GoLOOBj+OBq+OBsuOCjQ0KK+OBteOBmOOCguOBqCzjgZ/jgaDjgojjgZcNCivjgbXjgZjjgoLjgags44Go44GX44GL44GaDQor44G144GY44GuLOOChOOBmeOBqOOCgg0KK+OBteOBmOOBiizjgajjgZfjgYLjgY0NCivjgbXjgZjjgZXjgYss44GV44Go44GXDQor44G144GY44GV44KPLOOBruOCiuOBig0KK+OBteOBmOOBleOCjyzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgZ8s44G+44GV44KG44GNDQor44G144GY44GfLOOBvuOBleOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgajjgYrjgosNCivjgbXjgZjjgo/jgoks44G+44GV44KG44GNDQor44G144GY44KP44KJLOOBl+OCk+OBl+OCh+OBhg0KK+OBteOBi+OBoCzjgbXjgb/jgbLjgo0NCivjgbXjgYvjgYzjgo8s44GC44Gk44Gy44KNDQor44G144GL44GuLOOBkeOBhA0KK+OBteOBi+OCjyzjgZvjgYTjgZgNCivjgbXjgYvjgoQs44Go44GX44GL44GaDQor44G144GL44GW44KPLOOBsuOBqOOBlw0KK+OBteOBj+OBoCzjgZPjgYbjgZgNCivjgbXjgY/jgYQs44Gy44KN44GXDQor44G144GP44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OCguOBqCzjgbLjgo3jgYLjgY0NCivjgbXjgY/jgoLjgags44G+44GV44Gy44GTDQor44G144GP44KC44GoLOOBmeOBmeOCgA0KK+OBteOBj+OBl+OBvizjgbLjgo3jgobjgY0NCivjgbXjgY/jgajjgb8s44KK44KF44GG44GV44GPDQor44G144Gq44GNLOOBl+OCk+OBmA0KK+OBteOCi+OBleOCjyzjgZ/jgo3jgYYNCivjgYLjgbPjgZMs44G+44GV44KG44GNDQor44G144GbLOOBruOCiuOBig0KK+OBteOBm+OBjOOCjyzjgojjgZfjgarjgYoNCivjgbXjgZfjgb8s44Gq44GK44Gy44GVDQor44GO44G+LOOBi+OBmuOCiOOBlw0KK+OBlOOBvyzjgb7jgZPjgagNCivjgZTjgajjgYYs44Gu44KK44GTDQor44GU44Go44GGLOOBqOOCguOBguOBjQ0KK+OBlOOBqOOBhizjgbLjgZXjga7jgooNCivjgZDjgpPjgZgs44G/44KIDQor44Gv44GO44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBjuOCj+OCiSzjgYTjgaHjgo3jgYYNCivjga/jgYTjga4s44Gy44GV44KI44GXDQor44Gv44GL44G+44GgLOOBruOCiuOChuOBjQ0KK+OBr+OBvuOBoCzjgobjgY0NCivjga/jgb7jgaAs44KG44GN44GKDQor44Gv44G+44GQ44GhLOOBkeOCk+OBmA0KK+OBr+OCiSzjgZfjgpPjgYTjgaENCivjga/jgoks44GN44KI44Gf44GLDQor44Gv44KJLOOBj+OBq+OBsuOBkw0KK+OBr+OCiSzjgb7jgZXjgarjgooNCivjga/jgonjgaAs44G+44GZ44G/DQor44Gv44KJ44GgLOOBv+OBquOBkw0KK+OBr+OCieOBoCzjga7jgorjgZMNCivjga/jgonjgZMs44Gf44GL44Gy44KNDQor44Gv44KL44GqLOOBn+OBi+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgZ/jgY/jgoQNCivjgYrjgZfjgb4s44GC44GN44KJDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBr+OBn+OBrizjgYvjgZrjgbLjgo0NCivjga/jgZ/jgZbjgo8s44GL44Ga44G/44GhDQor44Gv44GoLOOBvuOBleOBlw0KK+OBr+OBpOOBvyzjgYLjgZrjgZUNCivjga/jgaPjgajjgoos44Go44KC44KG44GNDQor44Gv44KE44GL44KPLOOBqOOBl+OBsuOCjQ0KK+OBr+OChOOBi+OCjyzjgYLjgaTjgo3jgYYNCivjga/jgoTjgYvjgo8s44Go44GX44Gy44GTDQor44Gv44KE44GuLOOBguOBpOOBlw0KK+OBr+OChOOBmyzjgZfjgpPjgZQNCivjga/jgoTjgZcs44Gf44GL44Gv44KLDQor44Gv44KE44GXLOOBi+OBiuOCig0KK+OBr+OChOOBlyzjgojjgZfjgbLjgo0NCivjga/jgoTjgZcs44GR44GE44GYDQor44Gv44KE44GXLOOBm+OBhOOBnw0KK+OBhOOCguOBqCzjgb7jgZXjgojjgZcNCivjga/jgoTjgaQs44Gy44KN44GXDQor44Gy44GM44GNLOOBsuOBp+OBguOBjQ0KK+OBsuOBjOOBlyzjgZnjgb/jgZMNCivjgbLjga4s44GR44KT44GYDQor44Gy44KJ44Gw44KE44GXLOOBquOBiuOBqA0KK+OBsuOCieOBrizjgYvjgZrjgbLjgo0NCivjgbLjgonjga4s44GR44GE44GE44GhDQor44Gy44KJ44GK44GLLOOBvuOChuOBvw0KK+OBr+OCieOBleOBjSzjgZ/jgaTjgoQNCivjgbLjgonjgaYs44Gy44Gn44GKDQor44Gy44KJ44KE44G+LOOBqOOBiuOCiw0KK+OBsuOCjeOBiCzjgojjgZfjgYvjgZoNCivjgbLjgo3jgYvjgo8s44GX44KF44GG44GE44GhDQor44Gy44KN44GbLOOBsuOBp+OBn+OBiw0KK+OBsuOCjeOBlyzjga7jgbbjgZMNCivjgbLjgZXjgoDjga0s44GR44GE44GTDQor44G744KT44GgLOOBk+OBhuOBhOOBoQ0KK+OBu+OCiuOBi+OCjyzjga7jgorjgYLjgY0NCivjgbvjgorjgZPjgZcs44GX44KT44GE44GhDQor44G744KK44GT44GXLOOBsuOCjeOChuOBjQ0KK+OBu+OBlyzjgobjgY3jgYoNCivjgbvjgZfjgZMs44G+44GV44Gy44KNDQor44Gy44KJ44GV44KPLOOBleOBoOOChuOBjQ0KK+OBu+OBneOBhCzjgZfjgpPjgYTjgaENCivjgbLjgofjgYbjganjgYYs44Gf44GL44GXDQor44Gy44KH44GG44Gp44GGLOOChuOBhuOBmeOBkQ0KK+OBhOOBuSzjgZfjgpPjgYTjgaENCivjgYTjgaHjgYvjgo8s44G+44GV44Gy44KNDQor44GE44Gh44GL44KPLOOBvuOBleOCiw0KK+OBhOOBoeOBi+OCjyzjgobjgb8NCivjgYTjgaHjga7jgb/jgoQs44G/44Gk44KLDQor44GE44GnLOOBv+OBpOOChuOBjQ0KK+OBhOOBpyzjgobjgooNCivjgYTjgYzjgonjgZcs44KE44GZ44KG44GNDQor44GE44GM44KPLOOBjeOCiOOBlw0KK+OBhOOBkOOBoSzjgZfjgpPjgoQNCivjgYTjgYTjgaAs44GX44KF44GG44GE44GhDQor44GE44GE44GgLOOBsuOCjeOBlw0KK+OBhOOBhOOBmOOBvizjgZPjgYbjgYTjgaENCivjgYTjgYTjgaTjgYss44Gu44G244GKDQor44GE44GE44Ga44GLLOOBi+OBmuOBruOCig0KK+OBhOOBhOOBmuOBiyzjgYLjgorjgZUNCivjgYTjgYvjgonjgZcs44Go44KC44GNDQor44GE44GR44GgLOOBquOBiuOBjQ0KK+OBhOOBkeOBoCzjgb7jgZXjgbXjgb8NCivjgYTjgZHjgaAs44GY44KF44KTDQor44GE44GR44GgLOOBsuOBp+OBqA0KK+OBhOOBkeOBquOBjCzjgbLjgo3jgYoNCivjgb/jgaTjgoLjgags44Gy44KN44Gf44GLDQor44GE44GR44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBkeOBlizjgbLjgajjgZcNCivjgYTjgZHjgZbjgY0s44GK44GV44KADQor44GE44GP44GfLOOBpuOCi+OChuOBjQ0KK+OBhOOBvuOBhCzjgojjgZfjga7jgooNCivjgYTjgb7jgYTjgZrjgb8s44Gu44KK44Gy44KNDQor44GE44G+44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBvuOCgOOCiSzjgYjjgYTjgooNCivjgYTjgb7jgavjgZcs44Go44KC44Gy44KNDQor44GE44Gq44GM44GNLOOBi+OBiuOCig0KK+OBhOOBquOBjOOBjSzjgYvjgaTjgobjgY0NCivjgYTjgarjgYzjgo8s44Gf44Gk44KEDQor44GE44Gq44G7LOOBvuOBleOCiw0KK+OBhOOBquOBvyzjgbLjgo3jgb/jgaENCivjgYTjgarjgaTjgZAs44G/44GV44GKDQor44GE44Gq44KI44GXLOOBn+OBpOOBig0KK+OBhOOBrizjgYvjgZrjgagNCivjgYTjga7jgYrjgYss44GX44KT44KEDQor44GE44Gu44GG44GILOOBn+OBi+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44Gy44Gn44GL44GaDQor44GE44Gu44GG44GILOOBn+OBi+OBlw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgYLjgY0NCivjgYTjga7jgYbjgYgs44KG44GG44GE44GhDQor44GE44Gu44GG44GILOOBjeOBj+OBig0KK+OBhOOCiuOBleOCjyzjgYLjgY3jgbLjgZMNCivjgYTjgZss44KG44GN44GKDQor44GE44Gb44GNLOOBi+OBpOOChA0KK+OBhOOBl+OBoCzjgoTjgZnjga7jgooNCivjgYTjgZfjgaAs44Gk44KI44GXDQor44GK44GL44GgLOOBr+OCi+OBvw0KK+OBhOOBl+OBhCzjgYjjgYTjgZgNCivjgoTjgb7jgaAs44Gy44KN44G244G/DQor44GZ44GO44Gv44KJLOOBsuOCjeOBn+OBiw0KK+OBhOOBl+OBi+OCjyzjgYvjgaTjgokNCivjgYTjgZfjgYvjgo8s44G+44GV44GTDQor44GE44GX44GL44KPLOOBvuOBleOBvw0KK+OBhOOBl+OBvuOCiyzjga7jgorjgZMNCivjgYTjgZfjgoLjgags44Gf44Gk44GKDQor44GE44GX44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OCguOBqCzjgZHjgpPjgZgNCivjgYTjgZfjga4s44GL44GP44GE44Gh44KN44GGDQor44GE44GX44Gk44GLLOOBleOBqOOBlw0KK+OBhOOBl+OCj+OBnyzjgZ/jgY/jgoQNCivjgYTjgZfjgo/jgZ8s44KG44GG44GYDQor44Gy44KJ44Gw44KE44GXLOOBiOOBhOOBmA0KK+OBhOOBl+OBluOBjSzjgoLjgajjga7jgooNCivjgYTjgZfjgZrjgYss44Go44GK44KLDQor44GE44Gd44GgLOOBn+OBkeOBlw0KK+OBqOOBiuOBiyzjgajjgZfjgobjgY0NCivjgY/jgorjga/jgoks44GR44GE44GYDQor44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44GI44Gk44GNDQor44GE44Go44GGLOOCiOOBhuOBmA0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgYTjgaHjgoTjgarjgY4s44GX44GS44Gy44GoDQor44GE44Go44GGLOOBpOOBreOBsuOCjQ0KK+OBquOBjOOBnyzjgYvjgaTjgb8NCivjgYTjgajjgYYs44Gf44GL44Gv44KLDQor44GL44G/44GL44KPLOOBn+OBoOOBv+OBpA0KK+OBhOOCj+OBhCzjga7jgbzjgosNCivjgYTjgo/jgYvjgo8s44Gm44KL44Gy44GVDQor44GE44KP44G/LOOBqOOBl+OBsuOBkw0KK+OBhOOCj+OBvyzjgZ/jgYvjgZcNCivjgYTjgo/jgoLjgags44Go44KC44GTDQor44GE44KP44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgZHjgYTjgZMNCivjgYTjgo/jgZXjgY0s44G144G/44GL44GaDQor44GE44KP44GbLOOBsuOCjeOChuOBjQ0KK+OBhOOCj+OBl+OBnyzjgYrjgZXjgoANCivjgYTjgo/jgZ8s44GT44GG44Gb44GEDQor44GE44KP44GfLOOBleOBqOOBlw0KK+OBhOOCj+OBn+OBpizjgbLjgafjgY0NCivjgYTjgZrjgb8s44G/44KPDQor44GY44KT44GuLOOBn+OBi+OChOOBmQ0KK+OBi+OBjOOCjyzjgbLjgafjgYoNCivjgYvjgYTjgazjgb4s44Gu44G244GKDQor44GL44GY44GfLOOBn+OBi+OBv+OBoQ0KK+OBi+OBkeOBjOOCjyzjgYvjgZrjgZ/jgYsNCivjgYvjgY3jgazjgb4s44Gq44GK44GNDQor44GL44G+44GgLOOBn+OBi+OBsuOCjQ0KK+OBi+OBvuOBnyzjgbLjgo3jgY0NCivjgYvjgoHjgZ/jgass44GP44Gr44GC44GNDQor44GL44G/LOOBvuOBleOBruOCig0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgZcNCivjgYvjgb/jgoTjgb4s44G+44GV44KG44GNDQor44GL44Gq44GG44GhLOOBn+OBi+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgb/jgY0NCivjgYvjga3jgZMs44KE44GZ44Gu44G2DQor44GL44Gt44GTLOOChOOBmeOBjQ0KK+OBi+OCk+OBrOOBjSzjgZvjgYTjgYTjgaENCivjgYvjga7jgYYs44GN44KI44GP44GrDQor44GL44KJ44Gv44GXLOOBsuOCjeOBguOBjQ0KK+OBi+OBleOBhCzjgb/jga7jgosNCivjga7jgoDjgoks44GI44G/44GTDQor44GL44GV44GELOOCguOCguOBkw0KK+OBi+OBmyzjgZjjgoXjgpPjgYTjgaENCivjgYvjgZfjgY/jgoks44KI44GX44KN44GGDQor44GL44GX44KA44KJLOOBleOBqOOBlw0KK+OBi+OBl+OCj+OBjizjgYvjgojjgZMNCivjgYvjgZ/jga4s44Gm44KL44Gy44GVDQor44GL44Gf44GK44GLLOOChOOBmeOBlw0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgYvjgajjgYYs44Gq44GK44GNDQor44GL44Go44GGLOOBkeOBhA0KK+OBi+OBqOOBhizjgb7jgZXjga/jgosNCivjgYvjgajjgYYs44Gf44GL44GC44GNDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OBqOOBhuOBiuOBiyzjgobjgYvjgooNCivjgYvjgaTjgYQs44GYDQor44GL44Gk44G+44GfLOOBv+OBruOCiw0KK+OBi+OCj+OBsOOBnyzjgZ/jgYvjgYoNCivjgYvjgo/jgaHjgoQs44Go44GX44GC44GNDQor44GL44KP44GgLOOCiuOBm+OBhA0KK+OBi+OCj+OBoCzjgbLjgo3jgobjgY0NCivjgYTjgorjgZXjgo8s44G144G/44GKDQor44GL44KP44GELOOBv+OCjw0KK+OBi+OCj+OBi+OBvyzjgZHjgpPjgZgNCivjgYvjgo/jgYvjgb8s44G/44Gu44KLDQor44GL44KP44G/LOOBguOBjeOCiQ0KK+OBi+OCj+OCgOOCiSzjgZHjgpPjgZgNCivjgYTjgZfjgYQs44KE44GZ44GNDQor44GL44KP44GuLOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OCgOOCiSzjgY3jgojjgbLjgo0NCivjgYvjgo/jgZXjgY0s44Gu44G244KG44GNDQor44GL44KP44GbLOOBquOBiuOBjQ0KK+OBi+OCj+OBmyzjgbLjgo3jgZcNCivjgYvjgo/jgZss44GI44GE44GYDQor44GL44KP44GX44G+LOOBiOOBhOOBkw0KK+OBi+OCj+OBn+OBqyzjgY/jgavjgbLjgZMNCivjgZHjgYTjgaAs44G+44GV44GC44GNDQor44GN44GgLOOBl+OBkuOBkw0KK+OBjeOBoOOBoSzjgZfjgZLjgYoNCivjgY3jga/jgoks44Go44KC44GIDQor44GN44GP44GL44KPLOOChuOBi+OCig0KK+OBjeOCguOBqCzjgb7jgZXjgbLjgacNCivjgY3jgoDjgoks44GR44KT44GE44GhDQor44GL44G+44GfLOOBsuOCjeOChuOBjQ0KK+OBhOOBj+OBvyzjgb7jgobjgb8NCivjgY3jga7jgZfjgZ8s44GX44GS44GL44GaDQor44GN44Gu44GG44GhLOOBvuOBjQ0KK+OBjeOBlyzjgZ/jgY/jgZcNCivjgY3jgZfjgoLjgags44GL44Ga44Gy44KNDQor44GN44GG44GhLOOBqOOCiOOBguOBjQ0KK+OBk+OBsCzjgbLjgo3jgobjgY0NCivjgoLjgoos44Gy44Gn44GNDQor44GT44Gw44KE44GL44KPLOOBn+OBkeOBlw0KK+OBj+OBvOOBnyzjgbLjgajjgZcNCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GK44GK44GL44KPLOOBl+OCkw0KK+OBk+OBsOOChOOBlyzjgabjgaTjgZgNCivjgZPjgbDjgoTjgZcs44GN44KI44Gu44KKDQor44GT44G+44GfLOOBiOOBhOOBn+OBpA0KK+OBk+OBsOOChOOBlyzjgYvjgaTjgb8NCivjgZPjgbDjgoTjgZcs44GL44Gk44KG44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOBkw0KK+OBk+OBoOOBvizjgoTjgZnjgZcNCivjgZPjgYjjgZgs44Gk44Go44KADQor44GT44GQ44GhLOOBkeOCk+OBmA0KK+OBk+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgZPjgbLjgoks44GN44G/44GKDQor44Gq44GL44GM44KPLOOCiuOBiOOBkw0KK+OBk+OChOOBvizjgYLjgY3jgokNCivjgZPjgYTjgacs44KI44GX44KN44GGDQor44GT44GE44GnLOOBmOOCheOCkw0KK+OBk+OBhOOBkSzjgZfjgZLjgosNCivjgZPjgYTjgZrjgb8s44KC44Go44GTDQor44GT44GY44G+LOOBn+OBj+OChA0KK+OBk+OBkeOBkOOBoSzjgoTjgZnjgb7jgZUNCivjgZPjgY/jgbws44KI44GG44GTDQor44GT44G+44GkLOOBn+OBi+OBkw0KK+OBk+OBvuOBpCzjgobjgb/jgZMNCivjgZPjgb/jgoQs44KI44GG44GYDQor44GT44KT44GpLOOBi+OBmuOBqOOBlw0KK+OBk+OCk+OBqSzjgYLjgY3jgokNCivjgZPjgpPjgaks44G/44GIDQor44GT44KT44GpLOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgZ/jgaTjgYoNCivjgZPjgavjgZcs44Gf44GL44GTDQor44GT44GV44GLLOOBvuOBleOBsuOCjQ0KK+OBk+OBm+OBjSzjgajjgZfjgbLjgZMNCivjgZPjgZfjgYTjgZcs44Gf44Gk44KEDQor44GT44GX44GKLOOBvuOBleOBqOOBlw0KK+OBk+OBmeOBkizjgajjgZfjgYLjgY0NCivjgZPjgYbjgoQs44G+44GV44Gu44KKDQor44GT44KE44G+LOOBi+OBmuOBlw0KK+OBk+OChOOBvizjgYrjgZXjgoANCivjgZ/jgZHjgaEs44GX44KF44GG44Ge44GGDQor44GP44G8LOOBqOOBl+OChA0KK+OBj+OBvCzjgaTjgajjgoANCivjgY/jgbws44G144G/44GNDQor44GP44GM44GELOOBn+OBi+OChuOBjQ0KK+OBhOOBi+OCieOBlyzjgYvjgZrjgbLjgo0NCivjgY/jgb7jgZbjgo8s44Gu44G244GTDQor44GP44Gr44G/44GkLOOBsuOBleOCiOOBlw0KK+OBj+OBrizjgZvjgYTjgZcNCivjgbvjgZfjga4s44Go44GX44KEDQor44GP44KJ44GX44GSLOOBk+OBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgb/jgYsNCivjgarjgYvjgYzjgo8s44GX44KH44GG44GE44GhDQor44KE44Gq44GO44GgLOOChuOBjeOBig0KK+OBj+OCiuOChOOBvizjgbLjgafjgYLjgY0NCivjgY/jgo3jgYvjgo8s44Gy44Gn44KG44GNDQor44GP44GV44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OBj+OBleOBquOBjizjgYrjgZXjgoANCivjgY/jgZXjga4s44Gy44Gn44Gy44GTDQor44GP44GbLOOBleOBqOOCiw0KK+OBj+OBl+OBoCzjgaHjgYgNCivjgY/jgZnjgaAs44GT44GG44GE44Gh44KN44GGDQor44GP44GZ44GNLOOBoeOBiOOBkw0KK+OBj+OBmeOBvyzjgobjgZ/jgYsNCivjgb7jgYjjgaAs44Gf44Gk44KEDQor44G+44GI44GgLOOBguOBjeOBig0KK+OBvuOBiOOBi+OCjyzjgbLjgo3jgZMNCivjgb7jgYjjgYvjgo8s44Gf44GL44GKDQor44G+44GM44KK44G144GhLOOCiOOBl+OBig0KK+OBvuOBjeOBrizjgaHjgbLjgo0NCivjgb7jgY3jga4s44GR44KT44GYDQor44G+44Gq44G5LOOBvuOBleOCiA0KK+OBguOBjOOBpOOBvizjgZ/jgaTjgobjgY0NCivjgb7jgovjgYos44GX44GS44KLDQor44G+44KL44GfLOOBquOBiuOBjQ0KK+OBvuOCi+OChOOBvizjgobjgYsNCivjgb7jgovjgoTjgb4s44G+44GT44GoDQor44G+44KL44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBvuOCi+OChOOBvizjgobjgYbjgZgNCivjgb7jgZnjgaAs44Gm44KL44G/44GkDQor44G+44GZ44GgLOOBqOOBl+OChA0KK+OBi+OCk+OBsOOCiSzjgYTjgZrjgb8NCivjgb7jgaTjgbDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBoeOBqOOBmw0KK+OBvuOBpOOBoCzjgY/jgavjga7jgooNCivjgb7jgaTjgaAs44G+44GV44KG44GNDQor44G+44Gk44GELOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBhCzjgojjgZfjga7jgooNCivjgb7jgaTjgYQs44GX44KF44GG44GE44Gh44KN44GGDQor44G+44Gk44GELOOBoeOCiOOBkw0KK+OBvuOBpOOCguOBqCzjgYLjgaTjgZcNCivjgb7jgaTjgoLjgags44GR44KT44GYDQor44G+44Gk44KC44GoLOOBvuOBleOBi+OBpA0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgoQNCivjgb7jgaTjgYrjgYss44G/44G7DQor44Gq44KL44GbLOOCiuOCheOBhuOBmA0KK+OBvuOBpOOChCzjga7jgbbjgbLjgZMNCivjgoHjgZbjgo8s44Gy44Go44GXDQor44G/44GO44GfLOOBvuOChuOBvw0KK+OBv+OBi+OBvyzjgZfjgofjgYbjgZgNCivjgb/jgoDjgoks44GL44Ga44KEDQor44KE44Gq44GOLOOBk+OBhuOBhOOBoQ0KK+OBv+OBquOBi+OBnyzjgb7jgZXjgobjgY0NCivjgb/jga0s44G+44GV44KE44GZDQor44G/44GtLOOChOOBmeOBiOOBhA0KK+OBv+OBruOCjyzjgY3jgojjgYgNCivjgb/jgZXjgo8s44G+44GN44GTDQor44G/44GV44KPLOOBn+OBi+OBsuOCjQ0KK+OBv+OBl+OBvizjgaTjgojjgZcNCivjgb/jgZ/jgoDjgoks44Go44KC44Gy44KNDQor44G/44GoLOOBruOBtuOBig0KK+OBv+OBpOOBsuOCiSzjgb7jgorjgZMNCivjgb/jgaTjgYTjgZcs44G+44GV44G144G/DQor44G/44Gk44Gq44KKLOOBn+OBi+OBiA0KK+OBv+OBhuOCiSzjgbLjgo3jgYvjgZoNCivjgb/jgoTjgbks44GR44KT44GYDQor44G/44KE44GY44G+LOOBl+OBkuOBjQ0KK+OBv+OChOOCguOBqCzjgZfjgZLjgosNCivjgb/jgoTjgoLjgags44Go44KC44G/DQor44G/44KE44GV44GLLOOChuOBhuOBhOOBoeOCjQ0KK+OBv+OChOOBleOBiyzjgZHjgpPjgYTjgaHjgo0NCivjgb/jgoTjgZfjgZ8s44Gy44KN44GLDQor44G/44KE44GX44GfLOOBmOOCheOCk+OBkw0KK+OBv+OChOOBluOBjSzjga7jgorjgZfjgZINCivjgb/jgoTjgZbjgo8s44GL44Gk44G/DQor44G/44KE44GW44KPLOOBn+OBi+OChuOBjQ0KK+OBv+OBnuOBr+OBlyzjgZ/jgZHjgbLjgZMNCivjgZXjgYvjgYQs44Gy44KN44GXDQor44G/44Ga44GuLOOBsuOCjeOBguOBjQ0KK+OBv+OBmuOBiuOBoSzjgZ/jgYvjgYoNCivjgb/jgZrjgZfjgb4s44GR44KT44GYDQor44G/44Ga44GfLOOBkeOCk+OBmA0KK+OCguOBoeOBr+OCiSzjgY/jgasNCivjgoLjgaHjgZrjgY0s44GT44GG44GE44GhDQor44KC44KC44GbLOOBl+OCheOBhuOBhOOBoQ0KK+OCguOCiizjgbLjgo3jgY0NCivjgoLjgoos44GC44GN44Gy44KNDQor44KC44KKLOOBoeOBiA0KK+OCguOCiizjga/jgZrjgY0NCivjgoLjgoos44Gy44Gn44GNDQor44KC44KKLOOBvuOCguOCiw0KK+OCguOCiuOBi+OCjyzjgb7jgZXjgogNCivjgoLjgorjgoLjgags44KE44GZ44Gy44KNDQor44KC44KK44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OCguOCiuOCguOBqCzjgb7jgarjgbYNCivjgoLjgorjgoDjgoks44GX44KT44GE44GhDQor44KC44KK44GuLOOBi+OBmuOBvw0KK+OCguOCiuOBleOCjyzjgY/jgavjgYvjgZoNCivjgZfjgb7jgYrjgYss44GK44GV44KADQor44KC44KK44GX44GfLOOChuOBiw0KK+OCguOCiuOChOOBvizjgbLjgo3jgZMNCivjgoLjgo3jgYrjgYss44G/44Gk44Gy44KNDQor44KC44KN44Go44G/LOOBquOBiuOBjQ0KK+OCguOBqOOBjSzjgZ/jgaDjgajjgZcNCivjgoLjgajjga4s44GL44Gk44KG44GNDQor44KC44Go44Gf44GLLOOBsuOBp+OBjQ0KK+OCgOOBkOOCi+OBvizjgZ/jgY/jgZgNCivjgoDjgYvjgYQs44KI44GX44G/DQor44GC44KT44Gp44GGLOOBhOOCj+OBig0KK+OBr+OBrSzjgZPjgYbjgY0NCivjgoDjgonjgYvjgb8s44Go44GX44GL44GaDQor44KA44KJ44G+44GkLOOBpOOBqOOCgA0KK+OCgOOCieOBl+OBkizjgYvjgZrjgobjgY0NCivjgZfjgoLjgoDjgoks44GY44KF44KTDQor44KA44KJ44GfLOOBvuOBk+OBqA0KK+OBv+OCh+OBhuOBjCzjgZ/jgYvjgobjgY0NCivjgarjgYzjga/jgoks44Gy44KN44GXDQor44GE44Go44GGLOOBi+OBpOOBvw0KK+OBquOBjOOBhCzjgZHjgYTjgZ8NCivjgarjgYzjgYQs44Go44GK44KLDQor44GE44KP44GoLOOCiOOBl+OBjQ0KK+OBn+OBkeOBl+OBkizjgaHjgbvjgZMNCivjgarjgYzjgYos44GC44GN44Gy44KNDQor44Gq44GM44GKLOOBv+OBoeOBruOCig0KK+OBquOBjOOBiizjgYTjgZXjgYgNCivjgbXjgY/jgaTjgYss44GR44GE44GTDQor44Gq44GM44GV44KPLOOBsuOBp+OBjQ0KK+OBquOBjOOBleOCjyzjgoTjgZnjgbLjgo0NCivjgarjgYzjgZss44GZ44GZ44KADQor44Gq44GM44GX44G+LOOBguOBjeOBig0KK+OBquOBjOOBn+OBqyzjgbXjgb/jgbLjgZMNCivjgarjgYzjgo/jgY0s44Gy44KN44KE44GZDQor44Gq44GM44KE44G+LOOBvuOBleOBsuOBpw0KK+OBquOBlOOChCzjgoLjgorjgYoNCivjgarjgYTjgajjgYYs44Gu44G244KG44GNDQor44Gq44GE44Go44GGLOOBleOBoOOBv+OBpA0KK+OBquOBi+OBoCzjgZ/jgY/jgoQNCivjgarjgYvjgYzjgY0s44Gy44KN44GC44GNDQor44Gq44GL44GM44KPLOOBpuOCi+OBruOBtg0KK+OBquOBi+OBjOOCjyzjgajjgZfjgbLjgo0NCivjgarjgYvjgYzjgo8s44KE44GZ44Gy44KNDQor44Gq44GL44GM44KPLOOBvuOBleOBlw0KK+OBquOBi+OBmOOBvizjgajjgYrjgosNCivjgbvjgorjgYbjgaEs44Go44KI44GYDQor44Gq44GL44Gv44KJLOOBi+OBmuOBsuOBqA0KK+OBquOBi+OBmOOBvizjgYvjgZrjgobjgY0NCivjgarjgYvjgZjjgb4s44GT44GG44GYDQor44GN44GP44GfLOOBv+OBiw0KK+OBquOBi+OBmOOBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgb7jgoss44Go44GX44GTDQor44Gq44GL44KA44KJLOOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44Gh44GIDQor44Gq44GL44KA44KJLOOBruOCiuOBkw0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgYoNCivjgarjgYvjgoDjgoks44Gf44GL44GXDQor44Gq44GL44KA44KJLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZfjgZLjgYvjgZoNCivjga/jgaPjgajjgoos44G+44Gq44G2DQor44Gq44GL44KA44KJLOOBleOBtuOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgajjgYrjgosNCivjgarjgYvjgoDjgoks44Gf44Gk44GYDQor44G/44KE44KC44GoLOOBhOOBmuOCiw0KK+OBquOBi+OBq+OBlyzjgbLjgafjgagNCivjgarjgYvjgavjgZcs44GZ44Gq44GKDQor44Gq44GL44GuLOOCiOOBl+OBguOBjQ0KK+OBquOBi+OBrizjgaHjgobjgY0NCivjgarjgYvjga4s44KE44GZ44Gy44GnDQor44Gq44GL44GuLOOBiuOBleOCgA0KK+OBquOBi+OBrizjgaTjgYvjgZUNCivjgarjgYvjga4s44GR44GEDQor44Gq44GL44GuLOOCiOOBl+OBruOBtg0KK+OBquOBi+OBiizjgZ/jgYvjgbLjgo0NCivjgarjgYvjgYrjgYss44G+44GV44GL44GkDQor44Gq44GL44GX44G+LOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBl+OBvizjgYvjgZrjgarjgooNCivjgZfjgarjgaAs44GC44GN44KJDQor44Gq44GL44GfLOOBi+OBmuOBquOCig0KK+OBquOBi+OChCzjgZ/jgY/jgZgNCivjgZXjgYTjgYvjgo8s44Gy44Go44GXDQor44Gv44Gb44GM44KPLOOBsuOCjeOBlw0KK+OBquOBi+OBluOCjyzjgb7jgb8NCivjgarjgb7jgaQs44G+44G/DQor44Gq44KK44GfLOOBn+OBj+OBmA0KK+OBquOBmeOBrizjgZ/jgYvjgYLjgY0NCivjga3jgoLjgags44G/44Gt44GC44GNDQor44Gt44GK44GELOOBvuOBk+OBqA0KK+OBreOBmizjgarjgYrjgY0NCivjgavjgYTjgoDjgoks44GL44Ga44G+44GVDQor44Gr44GE44KE44G+LOOBoeOBi+OBkg0KK+OBq+OBhOOChOOBvizjgbLjgo3jgZcNCivjgavjga7jgb/jgoQs44Gy44KN44GXDQor44Gr44Gu44G/44KELOOBi+OBmuOBguOBjQ0KK+OBq+OBlyzjgZ/jgYvjgYoNCivjgavjgZfjgaAs44G+44GV44Gu44KKDQor44Gr44GX44GgLOOBvuOBleOBlw0KK+OBq+OBl+OBqeOBrizjgojjgZfjga7jgooNCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44GN44GpLOOBguOBjeOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgYLjgY3jgokNCivjgavjgZfjgaos44Gg44GE44GE44GkDQor44Gr44GX44GKLOOBmOOCheOCk+OBmA0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgajjgZcNCivjgavjgZfjgZbjgo8s44Gf44GL44GC44GNDQor44Gr44GX44Ga44GLLOOBqOOBl+OChA0KK+OBq+OBo+OBnyzjgbLjgajjgb8NCivjga7jgaAs44KP44GL44GTDQor44Gu44KA44KJLOOBleOBqOOBlw0KK+OBruOBruOCgOOCiSzjgbLjgo3jgobjgY0NCivjga7jgorjga/jgZcs44GE44GV44GKDQor44Gy44GuLOOBi+OBmuOChuOBjQ0KK+OBruOBluOBjSzjgZfjgpMNCivjga7jgZbjgo8s44G+44GV44Gy44KNDQor44Gs44G+44GuLOOBruOBtuOBkw0KK+OBiuOBs+OBmyzjgbLjgo3jgY0NCivjgYrjgbzjgYvjgZ8s44GR44KT44GZ44GRDQor44GK44GhLOOBguOBjeOBsuOCjQ0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYLjgY0NCivjgb7jgarjgbks44Gy44KN44KG44GNDQor44GK44GgLOOBi+OBpOOBvw0KK+OBiuOBoCzjgZfjgpPjgZnjgZENCivjgYrjgaAs44Gy44Gn44Gy44KNDQor44GK44GgLOOBmOOCheOCk+OBkw0KK+OBiuOBoOOBj+OCiSzjgY7jgocNCivjgYrjgYzjgZ8s44Gy44Go44GXDQor44GK44GM44KPLOOBqOOBl+OBsuOBkw0KK+OBguOBuSzjgojjgYbjgZnjgZENCivjgYrjgZDjgaEs44GT44GG44GNDQor44GK44GQ44G+LOOBvuOBleOCiOOBlw0KK+OBiuOBkOOCiSzjgZ/jgb7jgY0NCivjgYrjgZDjgoks44Gy44Gn44GKDQor44KA44GV44GXLOOBv+OBpOOCiw0KK+OBiuOBkOOCiSzjgb7jgZXjgbLjgZMNCivjgYrjgZDjgoos44G+44GT44GoDQor44GK44GK44GwLOOBkeOCk+OBmA0KK+OBiuOBiuOBr+OBlyzjgojjgYbjgYTjgaENCivjgYrjgYrjgYQs44Gy44KN44GL44GaDQor44GK44GK44GE44GILOOBkeOCk+OBmA0KK+OBiuOBiuOBj+OBvCzjga/jgovjgZcNCivjgYrjgYrjgY/jgb4s44GE44GV44KADQor44GK44GK44GP44G+LOOBsuOCjeOBlw0KK+OBiuOBrizjgYvjgaTjgb8NCivjgYrjgYrjgazjgb4s44GL44KI44GTDQor44Gf44GL44GbLOOCiOOBl+OBsuOBpw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgY0NCivjgYrjgYrjgZXjgo8s44Gy44KN44GXDQor44GK44GK44GV44KPLOOBkeOCk+OBmA0KK+OBiuOBiuOBleOCjyzjgZ3jgYbjgZnjgZENCivjgYrjgZfjgb4s44G+44KK44GTDQor44GK44GX44G+LOOBsuOCjeOBig0KK+OBiuOBl+OBvizjgb/jgaTjgbLjgo0NCivjgYrjgYrjgZ8s44GX44KT44GYDQor44GK44GK44Gf44GLLOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBn+OBjSzjgZ/jgZHjgZcNCivjgYrjgYrjgZ/jgass44KI44GG44GYDQor44GK44GK44Gk44GLLOOBsuOCjeOBruOBtg0KK+OBiuOBiuOBpOOBiyzjgabjgaTjgYoNCivjgYrjgYrjgo8s44G+44GT44GoDQor44GK44GK44KP44GgLOOBsuOCjeOBruOCig0KK+OBiuOBiuOChOOBvizjgbLjgajjgZcNCivjgYrjgZ7jga0s44Gu44G244KG44GNDQor44GK44GLLOOChOOBmeOBlw0KK+OBiuOBiyzjgbLjgo3jgYLjgY0NCivjgYrjgYss44GL44Ga44GX44GSDQor44GK44GLLOOBn+OBi+OBruOCig0KK+OBiuOBi+OBoCzjgZ/jgYvjgojjgZcNCivjgYrjgYvjgaAs44Gy44Go44GXDQor44GK44GL44GgLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBoCzjgajjgojjgYLjgY0NCivjgYrjgYvjganjgoEs44GN44KI44GL44GkDQor44GK44GL44KC44GoLOOChOOBmeOBlw0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgZgNCivjgYrjgYvjgoLjgags44Gy44KN44GXDQor44GK44GL44KA44KJLOOCiuOBiw0KK+OBiuOBi+OBrizjgYLjgY3jgokNCivjgYrjgYvjga7jgoQs44G/44Gk44KLDQor44GK44GL44GKLOOChOOBmeOBmA0KK+OBiuOBi+OBluOBjSzjgbLjgafjgYoNCivjgYrjgY0s44Gy44KN44KG44GNDQor44GK44GN44KC44GoLOOBvuOBleOBsuOBkw0KK+OBiuOBj+OCgOOCiSzjgajjgoLjgZMNCivjgYrjgY/jgoDjgoks44KG44GN44Gy44GTDQor44GK44GP44GuLOOBguOBhA0KK+OBiuOBvuOBnyzjgYLjgY3jgojjgZcNCivjgYrjgavjgY0s44Gy44KN44KG44GNDQor44GK44Gr44Gk44GLLOOBvuOBleOBguOBjQ0KK+OBiuOBruOBp+OCiSzjgYLjgY3jgokNCivjgYrjga7jgZbjgo8s44Gy44Gn44Gk44GQDQor44GK44GK44Gr44GXLOOBkeOCkw0KK+OBiuOBiuOBq+OBlyzjgY/jgavjgojjgZcNCivjgYrjgYrjgaTjgYss44Gq44GK44Gy44GVDQor44GK44GV44GgLOOBqOOCguOBruOBtg0KK+OBiuOBleOBjSzjgZ/jgYvjgZcNCivjgYrjgZXjgarjgb8s44GX44Ga44KI44GXDQor44GK44KE44G+44GgLOOChOOBmeOBruOCig0KK+OBiuOBluOCjyzjgZPjgYbjgZjjgo3jgYYNCivjgYrjgZbjgo8s44GX44KN44GGDQor44GK44GW44KPLOOChOOBmeOBruOCig0KK+OBleOBiOOBkOOBlSzjgoTjgZnjga7jgooNCivjgZXjgYjjgY0s44KI44GX44Gy44KNDQor44Gq44GL44GY44G+LOOBn+OBkeOBlw0KK+OBleOBhOOBnyzjgaHjgYjjgZMNCivjgYrjgYzjgo8s44KE44GZ44Gv44KLDQor44GV44GE44Go44GGLOOBi+OBmuOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgbLjgZMNCivjgZXjgYTjgajjgYYs44KI44GX44Gu44KKDQor44GV44GL44GELOOCiuOCh+OBhuOBmA0KK+OBleOBi+OBhCzjgbLjgafjga7jgooNCivjgZXjgYvjgYQs44GR44GE44GYDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBleOBi+OBhCzjgZ/jgY8NCivjgZXjgYvjgYQs44GX44KH44GG44GUDQor44GV44GL44GE44KKLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBjSzjgY3jgofjgYbjgZMNCivjgZXjgYvjgb4s44G+44GV44Gu44KKDQor44GV44GL44G+44GNLOOBvuOBleOBqOOCgg0KK+OBleOBi+OCguOBqCzjgb7jgZXjgajjgZcNCivjgZXjgYvjgoLjgags44GV44Go44KLDQor44GV44GL44KC44GoLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBi+OBnyzjgZ/jgYvjgZcNCivjgZXjgYvjgYbjgYgs44Gf44GL44KG44GNDQor44GV44GL44Ga44KBLOOBn+OBj+OBvw0KK+OBquOBi+OBrizjgajjgoLjgbLjgo0NCivjgZXjgY/jgb4s44KI44GX44Gy44GTDQor44GV44KT44G844KT44G+44GkLOOBi+OBmuOBsuOCjQ0KK+OBleOBrizjgZ/jgZHjgZcNCivjgZXjga4s44Go44GX44G144G/DQor44GV44GV44GM44KPLOOChuOBn+OBiw0KK+OBleOBleOBjSzjgobjgorjgZMNCivjgZXjgZXjgY0s44KE44GZ44KG44GNDQor44GV44GV44GNLOOBi+OBmuOCiOOBlw0KK+OBleOBleOBjSzjgZPjgYbjgZgNCivjgZXjgZXjgZbjgo8s44Go44GX44KG44GNDQor44GV44Go44GGLOOChOOBmeOBlw0KK+OBleOBqOOBhizjgYvjgaTjgbLjgagNCivjgZXjgajjgYYs44KI44GX44Gf44GLDQor44GV44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBleOBqOOBhizjga7jgbbjgZ/jgYsNCivjgZXjgajjgYYs44KG44GG44GZ44GRDQor44GV44Go44GGLOOBsuOBp+OChuOBjQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZXjgajjgYYs44GK44GV44KADQor44GV44Go44GGLOOBvuOChuOBvw0KK+OBleOBqOOBhizjga7jgbbjgYoNCivjgZXjgajjgYYs44Gy44Gn44Gu44KKDQor44GV44Gk44G+LOOBv+OCj+OBkw0KK+OBleOCj+OBkOOBoSzjgarjgYrjgagNCivjgZXjgo/jgYQs44G/44Gh44Gy44KNDQor44GV44KP44KJ44GOLOOChOOBmeOBig0KK+OBleOCj+OBn+OBqyzjgY/jgavjgYoNCivjgZvjgYTjgZ8s44GC44Gk44GXDQor44Gb44GNLOOBvuOBleOBvuOCjQ0KK+OBm+OBjSzjga7jgbbjgbLjgo0NCivjgZvjgY0s44Gu44KK44KE44GZDQor44Gb44GN44Gv44KJLOOBguOBjeOCiQ0KK+OBm+OBjeOBrSzjgobjgYbjgZnjgZENCivjgZvjgY3jga0s44Gy44KN44KG44GNDQor44GX44KJ44GE44GXLOOBvuOBleOBsuOCjQ0KK+OBm+OCk+OBjCzjga7jgbbjgYoNCivjgZvjga4s44Gu44KK44KG44GNDQor44Gb44GX44KCLOOBl+OCheOBhuOBhOOBoQ0KK+OBm+OBqCzjgZ/jgaTjgYoNCivjgZvjgajjgZDjgaEs44Gf44Gk44KEDQor44Gm44KL44KELOOChuOBhuOBhOOBoQ0KK+OBl+OBhOOBsCzjgorjgYsNCivjgZfjgbDjga4s44Go44KC44KG44GNDQor44GX44Gw44GV44GNLOOBhOOBj+OBkw0KK+OBl+OBsOOBnyzjgabjgaTjgo3jgYYNCivjgZfjgbbjgZXjgo8s44G+44GV44G144G/DQor44GX44G244GV44KPLOOCiOOBl+OBsuOCjQ0KK+OBl+OBoSzjgaDjgYTjgYjjgYQNCivjgZfjgaHjgZ8s44Gf44GL44KG44GNDQor44GX44GS44Gy44GVLOOBqOOBiuOCiw0KK+OBl+OBkuOBleOCjyzjgb/jgobjgY0NCivjgoDjgonjgZ8s44KK44KF44GG44Gf44KN44GGDQor44GX44G+44GaLOOBn+OBi+OBpOOBkA0KK+OBl+OBvuOBmizjgZ/jgaTjgZcNCivjgY3jgZfjgaAs44Gf44GL44GXDQor44GX44G/44GaLOOBv+OBoeOBig0KK+OBl+OBv+OBmizjgYjjgYTjgYTjgaENCivjgZfjgb/jgZos44Gy44KN44GXDQor44GX44G/44GaLOOBr+OChOOBqOOBlw0KK+OBl+OBv+OBmizjgY/jgpPjgZgNCivjgZfjgb/jgZos44GR44GE44GTDQor44GX44G/44GaLOOBsuOCjeOBl+OBkg0KK+OBv+OChOOBk+OBlyzjgajjgZfjgbLjgo0NCivjgZfjgoLjgb/jgaEs44G+44KK44GTDQor44Gq44GL44Gw44KE44GXLOOBi+OBiuOCiw0KK+OBl+OCguOBiuOBlSzjgZ/jgZHjgZcNCivjgZfjgoLjgaTjgZgs44GX44KT44GYDQor44GX44Gq44GgLOOBoeOBi+OBlw0KK+OBl+OBquOBjOOCjyzjga7jgbbjgYoNCivjgZfjgpPjgoLjgags44G+44GV44Gy44KNDQor44GX44GuLOOCiOOBl+OBruOCig0KK+OBl+OBruOBoCzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgZfjga7jgaAs44Gv44Gk44GIDQor44GX44Gu44GW44GNLOOBl+OCh+OBhuOBmA0KK+OBl+OBiuOBn+OBqyzjgabjgaTjgbLjgo0NCivjgZfjgYrjgoQs44Gk44GL44GVDQor44GX44KJ44G5LOOBhOOBo+OBm+OBhA0KK+OBl+OCieOBjOOBjSzjgojjgZfjga/jgosNCivjgZfjgonjgYQs44GL44Ga44Gy44GTDQor44GX44KJ44GE44GXLOOBiOOBpOOBsuOCjQ0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgZcNCivjgZfjgonjgY0s44GL44Ga44Gy44KNDQor44GX44Ga44GfLOOBkeOBhOOBkw0KK+OBl+OCh+OBhuOBmCzjgZHjgYTjgZ8NCivjgZ3jga7jgaAs44G/44Gp44KKDQor44GZ44Gp44GGLOOCguOBqOOChuOBjQ0KK+OBmeOBiOOBoCzjgZvjgYTjgZMNCivjgZnjgYjjgaTjgZAs44Gf44GL44GXDQor44GZ44GM44GfLOOChOOBmeOBmeOBkQ0KK+OBmeOBjOOCj+OCiSzjgojjgZfjgYLjgY0NCivjgZnjgY7jga4s44KI44GX44Gu44G2DQor44GZ44GO44GV44GNLOOChuOBhuOBmA0KK+OBmeOBjuOBl+OBvizjgb7jgZXjgosNCivjgarjgYzjgYQs44G+44KK44GTDQor44GZ44GO44KE44G+LOOBqOOBl+OBsuOCjQ0KK+OBmeOBvyzjgYvjgaTjgbLjgo0NCivjgZnjgb/jgZ/jgass44GX44KT44GE44GhDQor44GZ44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmeOBjSzjgZPjgYbjgYTjgaENCivjgZnjgoTjgb4s44Go44KC44Gu44KKDQor44GZ44Ga44GNLOOBv+OBoeOBig0KK+OBmeOBmuOBjSzjgZHjgpPjgYTjgaENCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44Gf44GY44G+LOOBleOBqOOBjQ0KK+OBmeOBmuOBjSzjgZ/jgY/jgoQNCivjgZnjgZrjgY0s44KE44GZ44GTDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OBmeOBmuOBjSzjgYLjgY3jgZMNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GNLOOBsuOBp+OBqOOCgg0KK+OBmeOBmuOBjSzjgbLjgafjgajjgZcNCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBsuOCjeOBjQ0KK+OBl+OCheOBj+OChCzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgaHjgbDjgaos44GL44KIDQor44Gf44Gh44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBn+OBqeOBk+OCjSzjgb7jgZXjgYLjgY0NCivjgZ/jgYzjgo8s44G+44GV44Gy44GoDQor44Gf44GQ44GhLOOCguOBqOOBi+OBmg0KK+OBn+OBkOOBoSzjgarjgYrjgobjgY0NCivjgZ/jgZDjgaEs44Gu44G244Gy44GVDQor44Gf44GELOOBruOCiuOBig0KK+OBn+OBmOOBvizjgZXjgaHjgYgNCivjgZ/jgYvjgaAs44GV44Go44KLDQor44Gf44GL44GgLOOBl+OBkuOBruOBtg0KK+OBn+OBi+OBjizjgZnjgZnjgoANCivjgb/jgoTjgoLjgags44Gf44GL44GXDQor44Gf44GL44Gv44G+LOOBpuOBpOOBig0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Gf44GL44Gv44GXLOOBpOOBqOOCgA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga/jgZcs44G+44GT44GoDQor44Gf44GL44Gv44GXLOOBkeOCk+OCiuOCheOBhg0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjga7jgooNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOCguOBqOOChOOBmQ0KK+OBn+OBi+OBr+OBlyzjgobjgY3jgYgNCivjgZ/jgYvjga/jgZcs44KE44GZ44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBleOBqOOBkw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgY0NCivjgZ/jgYvjga/jgZcs44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOBruOBtuOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgosNCivjgZ/jgYvjgarjgZcs44GX44KTDQor44Gf44GL44GuLOOBi+OBpOOBruOCig0KK+OBn+OBi+OBiuOBiyzjgabjgaTjgoQNCivjgZ/jgYvjgZss44GX44GS44GNDQor44Gf44GL44GX44GqLOOBk+OBhuOBm+OBhA0KK+OBn+OBi+OBl+OBqizjgaDjgYTjgZXjgY8NCivjgZ/jgYvjgZ8s44Gy44KN44GC44GNDQor44Gf44GL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OChOOBquOBjizjgZjjgoXjgpMNCivjgZ/jgZHjgbDjgoTjgZcs44GL44Gk44G/DQor44G/44GL44G/LOOBkeOBhOOBmeOBkQ0KK+OBn+OBkeOBhCzjgb7jgZPjgagNCivjgZ/jgZHjgY0s44G+44GX44KF44GGDQor44Gf44GR44KC44KKLOOBruOBtuOBsuOBkw0KK+OBn+OBkeOCgOOCiSzjgYrjgZXjgoANCivjgZ/jgZHjgYbjgaEs44GR44KTDQor44Gf44GR44KELOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBkeOChOOBvizjgajjgZfjgYLjgY0NCivjgZ/jgY3jgZDjgaEs44Go44GX44GL44GaDQor44Gf44GN44GX44GfLOOBqOOBl+OChuOBjQ0KK+OBn+OBjeOBluOCjyzjgYLjgY3jgokNCivjgZ/jgb7jgYQs44GX44GS44KLDQor44Gf44G/44KELOOBguOBjeOBkw0KK+OBn+OCgOOCiSzjgojjgYbjgZnjgZENCivjgZ/jgarjgbks44Gy44KN44KG44GNDQor44Gf44Gq44Gv44GXLOOCiOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgZfjgZLjgagNCivjgZ/jgarjgYss44Gy44Gn44Gu44KKDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgY0NCivjgZ/jgarjgYss44KG44GN44GTDQor44Gf44Gq44GLLOOBsuOCjeOBkw0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgarjgYss44GX44KTDQor44Gf44Gq44GLLOOBvuOBleOBi+OBmg0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZMNCivjgZPjgaDjgb4s44KI44GX44Gy44GTDQor44Gf44Gq44GLLOOBguOBleOBig0KK+OBn+OBquOBiyzjga7jgorjgYLjgY0NCivjgZ/jgarjgYss44GV44Go44GXDQor44Gf44Gq44GLLOOBiuOBleOCgA0KK+OBn+OBquOCgOOCiSzjgZXjgajjgZcNCivjgZ/jgpPjgbAs44GL44Ga44Gq44KKDQor44Gf44Gr44GQ44GhLOOBkeOBhOOBmA0KK+OBn+OBq+OBkOOBoSzjgZjjgoXjgpPjgZMNCivjgZ/jgavjgYQs44GS44KTDQor44Gf44Gr44KA44KJLOOBqOOCguOBruOCig0KK+OBn+OBq+OCj+OBjSzjgYrjgZXjgoANCivjgZ/jgovjgYQs44GX44KH44GG44GYDQor44Gf44GV44GNLOOBi+OBmuOChuOBjQ0KK+OBn+OBl+OCjSzjgb7jgZXjgoQNCivjgZ/jgabjgYTjgZcs44Gq44GK44KEDQor44Gf44GG44GhLOOCiuOCh+OBhuOBkw0KK+OBn+OBhuOCiSzjgbLjgo3jgYLjgY0NCivjgabjgonjgaAs44KI44GX44GKDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBpuOCieOBq+OBlyzjgoLjgorjgobjgY0NCivjgabjgonjgZfjgZ8s44Gy44KN44GXDQor44Gm44KL44GN44GqLOOBguOBjeOCiA0KK+OBqOOBuSzjgYjjgorjgZMNCivjgajjgYbjgZTjgYYs44Gf44GL44Gv44KLDQor44Go44GQ44GhLOOBiOOBhOOBmA0KK+OBqOOBmCzjgYvjgaTjga7jgooNCivjgajjgb/jgarjgYws44G+44GV44GoDQor44Go44G/44Gq44GMLOOChOOBmeOBvuOBlQ0KK+OBqOOBv+OBiuOBiyzjgarjgYrjgY0NCivjgajjgb/jgZ8s44GZ44GQ44KLDQor44Go44G/44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBqOOBreOBjOOCjyzjgYLjgY3jgokNCivjgajjgZfjgarjgoos44GY44KF44KT44GTDQor44Go44KI44GgLOOBk+OBhuOBmA0KK+OBqOOCiOOBoCzjgYvjgaTjgoQNCivjgajjgojjgaAs44G+44GV44Gy44GTDQor44GK44GK44KC44KKLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBqOOBmuOBiyzjgbLjgafjgYoNCivjgoTjgb7jgYvjgo8s44KK44KF44GG44G444GEDQor44Gk44G844GELOOBmOOCheOCk+OBkw0KK+OBpOOBoeOBr+OBlyzjgYvjgaTjgb8NCivjgaTjgaHjga4s44G/44Gu44KLDQor44Gk44Gh44KELOOCiOOBl+OBsuOCjQ0KK+OBvuOBjSzjgbLjgafjga7jgooNCivjgaTjgaAs44G/44Gk44Gu44G2DQor44Gk44GM44KPLOOBkeOCk+OBmA0KK+OBpOOBmCzjgZXjgajjgZcNCivjgaTjgZgs44Go44KI44GL44GaDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBi+OBoCzjgbLjgo3jgobjgY0NCivjgaTjgYvjgoLjgags44GN44KI44GXDQor44Gk44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBpOOBquOBl+OBvizjgobjgY3jgYoNCivjgYrjgY/jgoTjgb4s44G+44KC44KLDQor44Gk44Gu44GgLOOBleOBoOOBr+OCiw0KK+OBpOOBruOBjOOBhCzjgoTjgZnjga7jgooNCivjgaTjgZfjgb4s44Gu44G844KLDQor44Gk44Gk44G/LOOBsuOCjeOBlw0KK+OBpOOBmuOBjSzjgYvjgaTjgb8NCivjgaTjgovjgYrjgYss44Gy44Gn44GoDQor44GG44Gh44GgLOOBsuOBleOBlw0KK+OBhuOBoeOBoCzjgb7jgZXjgosNCivjgYbjgaHjgaAs44G+44GV44G144G/DQor44GG44Gh44GgLOOChOOBmeOBlw0KK+OBhuOBoeOBrizjgYLjgY3jgbLjgZMNCivjgYbjgaHjga7jgY/jgoks44KB44GQ44G/DQor44GG44Gh44KE44G+LOOBv+OBoeOBr+OCiw0KK+OBhuOBoeOChOOBvizjgZ/jgYvjga7jgooNCivjgYbjgaHjgoTjgb4s44Gu44G244Gy44KNDQor44GG44GgLOOBkeOBhOOBmA0KK+OBhuOBiOOBoCzjgZfjgZLjgosNCivjgYbjgYjjgaAs44Gq44Gk44GTDQor44GG44GI44GgLOOCiOOBl+OBqA0KK+OBhuOBiOOBoCzjgajjgZfjga/jgosNCivjgYbjgYjjga/jgoks44GX44GS44KLDQor44GG44GI44Gv44KJLOOBvuOBleOBig0KK+OBhuOBiOOBr+OCiSzjgZfjgpPjgZgNCivjgYbjgYjjgZjjgb4s44Gy44KN44KG44GNDQor44GG44GI44GNLOOBiOOCiuOBkw0KK+OBhuOBiOOCgOOCiSzjgY/jgavjgbLjgo0NCivjgYbjgYjjga4s44Gf44GL44Gy44GnDQor44GG44GI44GuLOOBqOOBj+OBsuOCjQ0KK+OBhuOBiOOBrizjgobjgYbjgZgNCivjgYbjgYjjgoTjgb4s44KI44GX44GTDQor44GG44GELOOBkeOBhOOBmeOBkQ0KK+OBhuOCgeOBoCzjgZfjgofjgYbjgYTjgaENCivjgYbjgoHjgaAs44GC44Gk44GXDQor44GG44KB44GgLOOBoeOBr+OCiw0KK+OBhuOCgeOBoCzjgZHjgpPjgZgNCivjgYbjgoHjga/jgoks44G+44GT44GoDQor44GG44KB44GL44KPLOOBvuOBleOBruOCig0KK+OBhuOCi+OBl+OBoOOBqyzjgb7jgZXjgobjgY0NCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44GG44GV44G/LOOChuOBhuOBkw0KK+OBhuOBl+OBvuOCiyzjgZ/jgaTjgbLjgo0NCivjgYbjgZfjgoTjgb4s44GL44Gk44KG44GNDQor44GG44GZ44GELOOBk+OBhuOBuOOBhA0KK+OBhuOBmeOBhCzjgYrjgZXjgoANCivjgYbjgaTjgb8s44GY44KN44GGDQor44GV44GV44GM44KPLOOBi+OBmuOBguOBjQ0KK+OBneOCgeOChCzjgZHjgpPjgZgNCivjgo/jgaAs44G+44GV44GKDQor44KP44GgLOOBvuOBleOCiOOBlw0KK+OCj+OBoCzjgojjgZfjgYLjgY0NCivjgZ/jga7jgYbjgYgs44KG44GG44GE44GhDQor44KP44GX44GgLOOBsuOBp+OBguOBjQ0KK+OCj+OBn+OBhCzjgb/jgaHjgYLjgY0NCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOBig0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgZUNCivjgo/jgZ/jgarjgbks44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBsuOBp+OBjQ0KK+OCj+OBn+OBquOBuSzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Gy44KN44KG44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OChOOBjizjgYvjgZrjgYoNCivjgoTjgZQs44G+44GV44Gy44GTDQor44KE44Gv44GOLOOBquOBiuOBteOBvw0KK+OChOOBj+OBlyzjgYrjgZXjgoANCivjgoTjgb7jgaAs44KM44GE44GNDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgajjgb/jgoTjgZkNCivjgoTjgb7jgaAs44Go44GX44Gy44KNDQor44KE44G+44GgLOOBqOOBl+OBig0KK+OChOOBvuOBoCzjgojjgZfjgYoNCivjgoTjgb7jgaAs44KG44GLDQor44KE44G+44GM44GfLOOBn+OBkeOBlw0KK+OChOOBvuOBjuOBlyzjgb7jgZXjgYgNCivjga/jgoos44G+44GV44KG44GNDQor44KE44G+44GQ44GhLOOBi+OBpOOBlw0KK+OChOOBvuOBkOOBoSzjgajjgoLjgYvjgZoNCivjgoTjgb7jgZDjgaEs44Go44KC44G/DQor44GC44GK44Gk44GLLOOCiOOBl+OBleOBqA0KK+OChOOBvuOBkOOBoSzjgb7jgZXjga7jgooNCivjgoTjgb7jgZgs44G/44Gh44GKDQor44KE44G+44KC44GoLOOBsuOCjeOBruOCig0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgYTjgaENCivjgoTjgb7jgoLjgags44GR44KT44GY44KN44GGDQor44KE44G+44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgoLjgags44Gf44GL44KG44GNDQor44KE44G+44KC44GoLOOBguOBjeOBsuOBpw0KK+OChOOBvuOCguOBqCzjgajjgZfjga7jgooNCivjgoTjgb7jgoLjgags44GI44GE44GYDQor44KE44G+44KC44GoLOOBvuOBquOBtg0KK+OChOOBvuOCguOBqCzjgajjgZfjgobjgY0NCivjgoTjgb7jgoLjgags44Gq44GK44G144G/DQor44KE44G+44KA44KJLOOBqOOCguOBi+OBmg0KK+OChOOBvuOBquOBiyzjgobjgZ/jgYsNCivjgoTjgb7jgZfjgaos44GX44KT44GYDQor44KE44G+44GX44GfLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgorjgpPjgZjjgoUNCivjgoTjgb7jgZfjgZ8s44GR44KT44GYDQor44KE44G+44GX44GfLOOBsuOBqOOBlw0KK+OChOOBvuOBpizjgZHjgYQNCivjgoTjgb7jgYbjgaEs44GC44GN44KJDQor44KE44G+44GW44GNLOOChuOBjeOBsuOBlQ0KK+OChOOBvuOBluOBjSzjga7jgbzjgosNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44Gq44GOLOOBi+OBmuOBig0KK+OChOOBquOBjuOBoCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoTjgarjgY7jgaAs44G/44G7DQor44KE44Gq44GELOOBleOBqOOBlw0KK+OChOOBquOBiyzjgZ/jgaDjgZcNCivjgoTjgZnjgaAs44G+44GV44G/DQor44KE44GZ44GgLOOBhOOCj+OBig0KK+OChOOBmeOBoCzjgZvjgY3jgZMNCivjgoTjgZnjgoLjgags44GL44Ga44KEDQor44KE44Gk44GLLOOBquOBiuOBjQ0KK+OChOOBluOCjyzjgb/jgZrjgbsNCivjgojjgaAs44Gm44Gk44KEDQor44KI44Gp44GM44KPLOOBruOCiuOBig0KK+OCiOOBoCzjgbLjgo3jga7jgooNCivjgojjgZPjga/jgZ8s44Gy44KN44KEDQor44KI44GT44KE44G+LOOBhOOCj+OBig0KK+OCiOOBk+OChOOBvizjgZfjgZLjgosNCivjgojjgoLjgoos44GC44GN44KI44GXDQor44KI44Gt44KC44GhLOOCiOOBl+OBpOOBkA0KK+OCiOOCjeOBmuOChCzjgarjgYrjgbLjgZUNCivjgojjgZfjgaAs44Gf44Gk44Ge44GGDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OCiOOBl+OBoCzjga7jgorjgYoNCivjgbXjgZjjgZXjgY0s44GT44GG44GE44GhDQor44KI44GX44GgLOOBsuOBqOOBlw0KK+OCiOOBl+OBoCzjgabjgaTjgYoNCivjgojjgZfjgb7jgaQs44Gh44Gv44KLDQor44KI44GX44KC44GoLOOChuOBhuOBmeOBkQ0KK+OCiOOBl+OCgOOCiSzjgYvjgaTjgoQNCivjgYTjgZfjgbDjgZcs44Gf44Gg44GXDQor44KI44GX44GuLOOBn+OBpOOChA0KK+OBn+OBi+OBrizjgZHjgYTjgZQNCivjgobjga/jgZcs44GX44KH44GG44GTDQor44GI44Gg44Gy44KNLOOBv+OBqeOCig0KK+OBr+OCieOBoCzjgb7jgZXjgobjgY0NCivjga/jgoTjgZXjgYss44KK44KF44GG44Gb44GEDQor44GE44Gq44GM44GNLOOBvuOBleOBjQ0KK+OBhOOBruOBhuOBiCzjgZXjgajjgZcNCivjgYTjgZfjga/jgoks44Gf44GL44GXDQor44GT44GY44G+LOOChOOBmeOBsuOBlQ0KK+OBk+OBmeOBjizjgZfjgpPjgZQNCivjgY/jgbzjgZ8s44Gq44KL44G/DQor44KC44KKLOOBn+OBi+OBlw0KK+OBquOBi+OBsOOChOOBlyzjgarjgYrjgbLjgZUNCivjga3jgoLjgags44Gf44GL44GXDQor44Gr44Gu44G/44KELOOBkeOBhA0KK+OBiuOBjOOCjyzjgoHjgZDjgb8NCivjgYrjgYrjgZ/jgass44G+44GV44GTDQor44Gb44GNLOOBj+OBvw0KK+OBl+OBtuOBn+OBqyzjgaTjgajjgoANCivjgZfjgpPjgags44Gy44KN44KG44GNDQor44Gd44G244GILOOBsuOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjgZss44G+44G/44GTDQor44Go44KI44GgLOOBsuOCjeOBsuOBpw0KK+OBhuOBiOOBoCzjgZfjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KE44GZ44KG44GNDQor44KE44G+44Ga44G/LOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgZPjgYbjgZgNCivjgYLjgZXjgYvjgYQs44Gq44KL44Go44GXDQor44G144GP44GfLOOBi+OBmuOBvw0KK+OBi+OCj+OBleOBjSzjgYvjgZrjgYoNCivjgbLjgo3jgZss44KI44GX44GL44GaDQor44GL44GV44Gv44KJLOOBm+OBpOOBkw0KK+OBiuOBluOCjyzjgZHjgYTjgYTjgaENCivjgYvjgajjgYYs44GR44GE44GE44GhDQor44Gq44GL44KA44KJLOOBm+OBhOOBiOOBhA0KK+OBn+OBkOOBoSzjgbLjgo3jgoANCivjgYLjgaDjgaEs44KK44KH44GG44Gb44GEDQor44GC44GL44GXLOOCiOOBl+OBsuOBlQ0KK+OBguOBjeOChOOBvizjgYjjgb8NCivjgYLjgYrjgY0s44GX44KH44GG44GYDQor44GC44KJ44GNLOOBqOOCguOBn+OBkQ0KK+OBguOBleOBsizjgbXjgb/jga7jgooNCivjgYLjgZXjga4s44Go44GX44Gy44GTDQor44GC44KP44GuLOOBiuOBleOCgA0KK+OBguOCj+OBrizjgZjjgoXjgpPjgZjjgo3jgYYNCivjganjgYbjgZgs44Gq44GK44KG44GNDQor44Gp44GG44Ge44GuLOOBm+OBhOOChA0KK+OBteOBoeOBi+OBvyzjgYvjgaTjgo3jgYYNCivjgbXjgZjjgYQs44GR44KT44GYDQor44G144GY44GELOOBk+OBhuOBhOOBoQ0KK+OBteOBmOOBhOOBiCzjga7jgbbjgoQNCivjgZPjgo8s44GX44KF44KT44GE44GhDQor44G144GY44GX44KNLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgojjgYbjgZMNCivjgbXjgZjjgZ8s44Gy44KN44KG44GNDQor44G144GY44KP44KJLOOBk+OBhuOBmA0KK+OBteOBj+OBoCzjgarjgYrjgobjgY0NCivjgbXjgY/jgaAs44Gf44Gk44GKDQor44G144GP44GgLOOBkeOCkw0KK+OBleOBhOOBqOOBhizjgYrjgZXjgb8NCivjgbXjgY/jgoTjgb4s44GY44KF44KT44GE44GhDQor44G144KL44Gv44GfLOOBk+OBhuOBmA0KK+OBlOOBqOOBhizjgbLjgo3jgYvjgZoNCivjga/jgoDjgo0s44GK44GV44KADQor44Gv44GbLOOBn+OBj+OBsuOBlQ0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjga/jgZfjgoLjgags44GY44KF44KT44GE44GhDQor44Gv44Gj44Go44KKLOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgYvjgaTjgbLjgZMNCivjga/jgoTjgZcs44Go44GX44GC44GNDQor44Gv44KE44GXLOOBvuOBleOBi+OBmg0KK+OBr+OChOOBlyzjgZfjgZLjgb/jgaQNCivjga/jgoTjgZcs44KB44GEDQor44Gv44KE44GXLOOBvuOBleOBpOOBkA0KK+OBsuOBsyzjgbLjgo3jgobjgY0NCivjgbLjgZDjgb4s44Gf44GP44KEDQor44Gy44KJ44GELOOBsuOCjeOBn+OBiw0KK+OBsuOCieOBi+OCjyzjgaTjga3jgajjgoINCivjgbLjgonjga4s44GL44Ga44Gy44GTDQor44Gy44KN44Gq44GLLOOBv+OBruOCiw0KK+OBu+OCiuOBkOOBoSzjga7jgbbjgYLjgY0NCivjgbvjgZXjgYss44GV44Go44GXDQor44G744Gd44KELOOBm+OBhOOBmA0KK+OBhOOBoeOBhCzjgZfjgZLjgobjgY0NCivjgYTjgaHjgYvjgo8s44KC44Go44Gy44KNDQor44GE44GQ44G+LOOBiOOBhOOBhOOBoQ0KK+OBhOOBhOOBleOBiyzjgb7jgobjgb8NCivjgYTjgYvjgo8s44GE44KP44GKDQor44GE44GR44GgLOOBguOChuOBkw0KK+OBhOOBkeOBoCzjgYTjgY/jgZjjgo3jgYYNCivjgYTjgZHjgYzjgb8s44G+44KC44KLDQor44GE44Gu44GG44GILOOBl+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgbLjgZXjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Go44GP44GY44KN44GGDQor44GE44GX44Gw44GXLOOChOOBmeOBsuOBlQ0KK+OBhOOBl+OBoCzjgojjgZfjgobjgY0NCivjgYTjgZfjgb7jgoss44G/44KPDQor44GE44GX44Ga44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBnSzjgbLjgafjgYLjgY0NCivjgYTjgajjgYYs44Gy44Gn44GC44GNDQor44GE44Go44GGLOOBguOBjeOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44GV44KP44GTDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBhOOBqOOBhizjgojjgZfjgb/jga0NCivjgYTjgajjgYYs44GR44KT44GE44GhDQor44GE44KP44GfLOOBleOBqOOBlw0KK+OBi+OCiuOChCzjgZvjgYTjgYTjgaENCivjgYzjgZXjgY0s44GX44GS44GKDQor44GL44GMLOOBi+OBmuOBsuOBlQ0KK+OBi+OBkuOChOOBvizjgaTjgojjgZcNCivjgYvjgZjjgarjgb8s44Gf44GL44KG44GNDQor44GL44G/44Gy44KJ44GfLOOBsuOCjeOChuOBjQ0KK+OBi+OBquOCguOCiizjgZ/jgaTjgoQNCivjgYvjga3jgZMs44Gm44KL44GKDQor44GL44Gt44GTLOOCiOOBl+OBig0KK+OBi+OBq+OCjyzjgYLjgY3jgokNCivjgYvjgZXjgb4s44Gu44KK44G+44GVDQor44GL44GbLOOBsuOCjeOChuOBjQ0KK+OBi+OBl+OCgOOCiSzjgbXjgb/jgajjgZcNCivjgYvjgZ/jgYrjgYss44GR44KT44GYDQor44GL44Go44GGLOOBmOOCheOCk+OBkw0KK+OBi+OBqOOBhizjgZHjgYTjgZgNCivjgYvjgajjgYYs44GT44GG44GfDQor44GL44Go44GGLOOBguOBjeOBsuOBkw0KK+OBi+OBqOOBhizjga7jgbbjgbLjgacNCivjgYvjgo/jgaEs44GR44GE44GTDQor44GL44KP44GQ44GhLOOBoeOBleOBqA0KK+OBi+OCj+OBrizjgb/jgaTjgYoNCivjgYvjgo/jgZfjgb4s44Gm44Gk44GYDQor44GN44GP44GhLOOBqOOCguOBguOBjQ0KK+OBjeOCguOBqCzjgojjgZfjgbLjgo0NCivjgY3jgoDjgoks44GL44Gk44KEDQor44GN44Gu44GX44GfLOOBpuOBpA0KK+OBjeOBl+OBr+OCiSzjgaTjgZDjgYLjgY0NCivjgY3jgZfjgYvjgo8s44Gy44Gn44KG44GNDQor44GN44GfLOOCiuOBiA0KK+OBjeOBn+OBjOOCjyzjgb/jgaHjga/jgosNCivjgY3jgZ/jga4s44KK44GI44GTDQor44GN44Gf44KE44G+LOOBm+OBhOOBkw0KK+OBjeOCiOOBiuOBiyzjgb7jgZXjgogNCivjgY3jgojjgZss44Gk44GL44GVDQor44GT44Gw44KKLOOBn+OBpuOBjQ0KK+OBk+OBsOOChOOBlyzjgYvjgYrjgosNCivjgZPjgbDjgoTjgZcs44GT44GG44Gf44KN44GGDQor44GT44G844KKLOOBn+OBvuOBvw0KK+OBk+OBhOOCjyzjgZ/jgZHjgZcNCivjgZPjgZjjgb4s44G144G/44KIDQor44Gv44GX44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBk+OBv+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgZPjgpPjgaks44Go44KC44KG44GNDQor44GT44KT44GpLOOBruOCiuOBkw0KK+OBk+OCk+OBqSzjgojjgYbjgZnjgZENCivjgZPjgZfjgYvjgo8s44GC44GN44G144G/DQor44GT44Gm44GM44KPLOOBkeOCk+OBmA0KK+OBk+OCjyzjga7jgbbjgobjgY0NCivjgY/jgbzjgZ8s44GX44KH44GG44GE44GhDQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBj+OBqeOBhizjga/jgoTjgagNCivjgY/jgYws44KI44GX44Gy44KNDQor44KC44KKLOOChuOBjeOBsuOCjQ0KK+OBj+OBq+OBn+OBkSzjga/jgZjjgoENCivjgY/jgonjgYvjgZEs44Gy44KN44GL44GaDQor44GP44KKLOOBvuOBleOBsuOBqA0KK+OBj+OBleOBteOBiyzjgZfjga7jgbYNCivjgY/jgo/jgbDjgoks44Go44GK44KLDQor44G+44Gh44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOCi+OChOOBvizjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GC44GN44GKDQor44G+44Gk44GwLOOBguOBpOOBlw0KK+OBvuOBpOOBsOOCiSzjgZ/jgZHjgo0NCivjgb7jgaTjgaDjgYTjgoks44G+44GNDQor44G+44Gk44KC44GoLOOCiOOCiuOBkw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgYLjgY0NCivjgb7jgaTjgarjgYws44G/44G7DQor44G+44Gk44GKLOOBvuOBleOChA0KK+OBvuOBpOOBiizjga7jgorjgobjgY0NCivjgb7jgaTjgYos44GX44KT44KEDQor44G/44GP44GrLOOChOOBmeOBlw0KK+OBv+OBquOBjOOCjyzjgo/jgZ/jgosNCivjgb/jgarjgYzjgo8s44GX44GS44KLDQor44G/44Gu44GmLOOBqOOCguOBguOBjQ0KK+OBv+OBnyzjgojjgZfjgY/jgasNCivjgb/jgajjgoEs44Gf44GR44GXDQor44G/44Gk44KE44G+LOOBl+OCheOBhuOBhOOBoQ0KK+OBv+OChOOBoSzjgZ/jgYvjgbXjgb8NCivjgb/jgoTjgZgs44GT44GG44GYDQor44G/44KE44GY44G+LOOBv+OBpOOBig0KK+OBv+OChOOBnyzjgZHjgYTjgZMNCivjgb/jgoTjgZbjgY0s44GN44KI44GC44GNDQor44G/44KE44GW44GNLOOBvuOBk+OBqA0KK+OBv+OChOOBluOBqCzjgojjgZfjgarjgooNCivjgb/jgoTjgZbjgo8s44Gy44KN44GNDQor44G/44Ge44GQ44GhLOOCguOBqOOBkw0KK+OBv+OBmuOBhCzjgb7jgZXjgojjgZcNCivjgoLjgpPjga4s44GI44GE44GYDQor44KC44KKLOOBv+OBpOOBsuOCjQ0KK+OCguOCiizjga7jgorjgZnjgb8NCivjgoLjgorjgZ8s44GP44KL44G/DQor44KC44KK44GfLOOBqOOBl+OBguOBjQ0KK+OCguOCiuOChOOBvizjgb7jgorjgZMNCivjgoDjgonjgYvjgb8s44KK44KF44GG44GE44GhDQor44KA44KJ44GL44G/LOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OCgOOCieOBi+OBvyzjgb/jga7jgosNCivjgoDjgonjgb7jgaQs44GX44KT44GZ44GRDQor44KA44KN44Ge44GuLOOBsuOCjeOBguOBjQ0KK+OBquOBjOOBtuOBoSzjgbLjgo3jgZcNCivjgarjgYzjga4s44G/44Gk44KLDQor44Gq44GM44GbLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBjOOBn+OBqyzjgZfjgbsNCivjgarjgZTjgoQs44Gy44KN44GC44GNDQor44Gq44GL44GM44KPLOOBi+OBiuOCig0KK+OBquOBi+OBv+OBoSzjgZfjgofjgYYNCivjgarjgYvjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBquOBi+OBrizjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44Gy44KN44Gu44KKDQor44Gr44GX44GgLOOBmOOCheOCkw0KK+OBq+OBl+OBr+OCiSzjgYLjgaTjgagNCivjgavjgZfjgoDjgoks44GX44KT44KEDQor44Gr44GX44GK44GLLOOBi+OBmuOBsuOBkw0KK+OBruOBkOOBoSzjga7jgbzjgosNCivjga7jgZss44G+44GV44Ga44G/DQor44GK44Gw44GfLOOChuOBhuOBmA0KK+OBiuOBoeOBguOBhCzjgYTjgY/jgZMNCivjgYrjgaHjgYLjgYQs44Gy44Gn44Gy44GTDQor44GK44GM44KPLOOBn+OBi+OBlw0KK+OBiuOBjOOCjyzjgb7jgZXjgagNCivjgYrjgYzjgo8s44Gf44G/44KEDQor44GK44GM44KPLOOBi+OBpOOBqOOBlw0KK+OBiuOBjuOBrizjgb7jgobjgb8NCivjgYrjgZDjgoks44Gf44GL44GC44GNDQor44GT44KT44GpLOOChOOBmeOChuOBjQ0KK+OBiuOBiuOBiCzjgb7jgZXjgb/jgaENCivjgYrjgYrjgYzjgY0s44GY44KN44GGDQor44GK44GK44Gr44GXLOOBruOCiuOBguOBjQ0KK+OBiuOBiuOBrizjgb7jgZXjgb/jgaENCivjgYrjgYrjgZ8s44Gy44KN44GXDQor44GK44GX44KNLOOBi+OBmuOBl+OBkg0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgZ/jgZfjgo0s44Gy44Gn44GNDQor44GK44GK44GkLOOBvuOBleOBi+OBmg0KK+OBiuOBiuOBpCzjgoHjgZDjgb8NCivjgYrjgYrjgoTjgY4s44GI44GE44GYDQor44GK44GK44KE44G+LOOBoeOBr+OCiw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgbbjgb8NCivjgYrjgYvjgoTjgb4s44G/44Gk44KI44KKDQor44GK44GR44Gf44GrLOOBn+OBpOOBkw0KK+OBiuOBj+OChOOBvizjgY/jgb/jgZMNCivjgYrjga7jgafjgoks44Gy44Gn44Go44GXDQor44GK44GW44KPLOOBv+OBruOCiw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgacNCivjgZXjgYTjgajjgYYs44Gm44KL44GKDQor44GV44GE44Go44GGLOOBn+OBi+OBruOBtg0KK+OBleOBi+OBkOOBoSzjgbLjgo3jgYvjgZoNCivjgZXjgYvjgarjgYss44KC44Go44KADQor44GV44GL44Gr44KPLOOCiOOCiuOBkw0KK+OBleOBi+OBhuOBoSzjgajjgZfjgZ/jgYsNCivjgZXjgY/jgonjgYQs44Gk44Go44KADQor44GV44GP44KJ44GELOOBvuOBleOChuOBjQ0KK+OBleOBrizjgZ/jgY/jgoQNCivjgZXjgZXjgY0s44G+44GV44G/DQor44GV44GV44GNLOOBiOOCig0KK+OBleOBleOBjSzjgorjgYgNCivjgZXjgZXjgb4s44G+44GV44GL44GaDQor44GV44Go44GGLOOBn+OBkeOChA0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOBv+OCjw0KK+OBq+OBl+OBvuOBnyzjgabjgaTjgYoNCivjgZXjgo/jgaAs44G+44GV44Gy44GVDQor44Gb44KT44GwLOOChuOBhuOBhOOBoQ0KK+OBm+OBqCzjgojjgZfjga7jgooNCivjgZfjgbbjgoQs44KG44GN44GKDQor44GX44GELOOBv+OBleOBkw0KK+OBl+OBvuOBoCzjgZPjgYbjgbjjgYQNCivjgZfjgb7jgaAs44G/44GIDQor44GK44GL44KC44GoLOOBvuOBleOBqOOBlw0KK+OBl+OBquOBjOOCjyzjgZXjgaHjgYgNCivjgZfjgpPjgYvjgo8s44Gy44GV44KEDQor44GX44KT44GN44KF44GGLOOBvuOBleOChuOBjQ0KK+OBl+OBruOBoCzjgabjgovjgYgNCivjgZfjga7jga/jgoks44Gb44GE44GE44GhDQor44GC44GV44GL44KPLOOBi+OBiuOCiw0KK+OBl+OBiuOBr+OCiSzjgb7jgZXjgagNCivjgZfjgo3jgZ8s44GL44Gk44Gy44KNDQor44GZ44GO44KC44GoLOOBi+OBmuOBsuOBpw0KK+OBmeOBjuOChOOBvizjgY3jgojjgZ/jgYsNCivjgZnjgZDjgaEs44Gu44G244GTDQor44KC44KN44Go44G/LOOBr+OCi+OBkw0KK+OBmeOBmuOBjSzjgb7jgZXjgbXjgb8NCivjgZ/jgZDjgaEs44GC44GN44GKDQor44Gf44GQ44GhLOOChuOBhuOBmA0KK+OBn+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgY4s44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBi+OBmuOBig0KK+OBn+OBi+OBhCzjgZHjgpPjgZgNCivjgZ/jgYvjgoTjgb4s44GL44Ga44GTDQor44Gf44GRLOOBquOBiuOBjQ0KK+OBn+OBkeOBsOOChOOBlyzjgorjgoXjgYbjgZgNCivjgZ/jgZHjgYvjgo8s44GY44KF44KT44GTDQor44Gf44GR44GG44GhLOOBi+OBu+OCiw0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44Gy44Gn44GNDQor44Gf44G/44KELOOBvuOBleOBi+OBmg0KK+OBn+OCgOOCiSzjgbLjgo3jgZcNCivjgZ/jgarjgbks44G+44GV44Gy44KNDQor44Gf44Gq44GLLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjga7jgbbjgZMNCivjgZ/jgarjgYss44Gk44KI44GXDQor44Gf44Gr44GQ44GhLOOBguOBpOOBlw0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgbLjgo0NCivjgZ/jgavjgoDjgoks44Gf44Gk44GKDQor44Gf44Gu44GG44GILOOBguOBjeOBsuOCjQ0KK+OBn+OCi+OBleOCjyzjgYLjgY3jgZMNCivjgZ/jgZfjgo0s44Go44GX44Gv44KLDQor44Gm44KJ44GgLOOChuOBjeOBsuOBkw0KK+OBqOOBhuOBjCzjgbLjgafjgb/jga0NCivjgajjgYzjgZcs44GX44GS44GKDQor44Go44GG44GU44GGLOOBl+OCk+OChA0KK+OBqOOBj+OBquOBjCzjgYLjgoTjgZMNCivjgajjgoLjga4s44GL44Ga44G/DQor44Go44KI44GgLOOCiOOBhuOBmOOCjeOBhg0KK+OBpOOBoeOChCzjgbLjgo3jgYLjgY0NCivjgaTjgYvjga/jgoks44Gu44G244Gy44KNDQor44GG44KJ44GV44GNLOOChuOBhuOBmA0KK+OCj+OBoCzjgajjgoLjgoTjgZkNCivjgo/jgaAs44KM44GE44GTDQor44KP44Gf44Gq44G5LOOBvuOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgoTjgY7jgazjgb4s44GR44GE44GTDQor44KE44G+44GgLOOBqOOBl+OBguOBjQ0KK+OChOOBvuOBoCzjgbLjgZXjgZcNCivjgoTjgb7jgaAs44GR44GE44GYDQor44KE44G+44KC44GoLOOBvuOBleOBguOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgagNCivjgoTjgb7jgoLjgags44Gf44Gk44KEDQor44KE44G+44KC44GoLOOChuOBjeOBsuOCjQ0KK+OChOOBvuOBquOBiyzjgaHjgbLjgo0NCivjgoTjgb7jgarjgYss44GL44GK44KLDQor44KE44G+44GX44GfLOOBvuOBleOBsuOCjQ0KK+OBsuOBkOOBoSzjgZjjgoXjgpPjgZgNCivjgoTjgb7jgZbjgY0s44G144G/44GuDQor44KE44Gq44GOLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjga7jgbbjgobjgY0NCivjgoTjgZnjgYgs44Go44GX44KEDQor44KI44GT44GILOOBruOBtuOBguOBjQ0KK+OCiOOBk+OChOOBvizjgorjgYjjgZMNCivjgojjga3jga/jgoks44GT44GG44GE44GhDQor44KI44Gt44G/44GkLOOBvuOBk+OBqA0KK+OCiOOCiuOBvuOBpCzjgajjgoLjgZMNCivjgojjgZfjgaAs44G144G/44Gy44KNDQor44KI44GX44GuLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OBn+OBjSzjgYrjgZXjgoANCivjgobjgYvjgo8s44GY44KF44KT44KEDQor44KG44KKLOOBqOOCguOBig0KK+OCguOCiizjgZ/jgYvjgbLjgZUNCivjgZXjgZXjgY0s44GL44Gk44Gy44GTDQor44GX44KJ44Gv44G+LOOBn+OBkeOBsuOCjQ0KK+OBpuOCk+OBseOBjyzjgobjgYbjgYTjgaHjgo0NCivjgYbjgaHjgaAs44Gq44GK44KEDQor44KE44G+44GG44KJLOOBqOOBiuOCiw0KK+OBvuOBpOOBkOOBvizjgbXjgb/jgZMNCivjgYLjgbks44Gy44KN44KG44GNDQor44GC44G5LOOBi+OBpOOBvw0KK+OBguOBuSzjgYvjgZrjgYoNCivjgYLjgbks44Gq44GK44GC44GNDQor44GC44Gg44GhLOOBquOBquOBig0KK+OBguOBhOOBr+OCiSzjgaTjgojjgZcNCivjgYLjgZjjgb4s44KE44GZ44GC44GNDQor44GC44GL44GV44GLLOOBqOOBiuOCiw0KK+OBguOBjeOCguOBqCzjgZPjgYbjgZ7jgYYNCivjgYLjgY3jgoTjgb4s44Gf44GL44GXDQor44GC44GN44KE44G+LOOBn+OBpOOChA0KK+OBguOBj+OBrSzjgbLjgo3jgZcNCivjgYLjgb7jga4s44G+44Gq44G2DQor44GC44G+44GuLOOBoeOBguOBjQ0KK+OBguOCgeOBv+OChCzjgb7jgZXjgaTjgZANCivjgYLjgpPjganjgYYs44G/44GNDQor44GC44KT44Gp44GGLOOBv+OCjw0KK+OBguOCk+OBqeOBhizjgYvjgZrjgYoNCivjgYLjgpPjgZjjgY0s44KG44GG44GTDQor44GC44KT44G644GE44GYLOOBl+OCheOCk+OBhOOBoQ0KK+OBguOBiuOBjSzjgojjgZfjgZMNCivjgYLjgYrjgY0s44GX44GS44Gv44KLDQor44GC44GK44GNLOOChuOBjeOBkw0KK+OBguOBiuOBjSzjgZjjgoXjgpMNCivjgYLjgYrjgY0s44Go44GX44GC44GNDQor44Gv44KJ44GX44G+LOOCiuOBiw0KK+OBguOBiuOBjSzjgaTjgajjgoANCivjgYLjgYrjgY0s44Gq44GK44Gy44GVDQor44GC44GK44KE44GOLOOBn+OBi+OChuOBjQ0KK+OBguOBiuOChOOBvizjgojjgYbjgYTjgaENCivjgYLjgYrjgoTjgb4s44GR44GE44GZ44GRDQor44GC44KJ44GELOOBk+OBhuOBhOOBoQ0KK+OBguOCieOBjSzjgb7jgZPjgagNCivjgYLjgonjgY0s44GL44Gk44GYDQor44GC44KJ44GfLOOBv+OBjQ0KK+OBguOCieOChCzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgYvjgo8s44KE44GZ44Gy44KNDQor44GC44KK44GfLOOBquOCi+OBsuOBqA0KK+OBguOBleOBsCzjgojjgZfjgobjgY0NCivjgYLjgZXjgYss44Go44KC44Gh44GLDQor44GC44GV44GP44KJLOOBn+OBpOOBig0KK+OBguOBleOBrizjgZfjgoXjgYbjgZgNCivjgYLjgZXjga4s44Go44KC44GC44GNDQor44GC44GX44G5LOOBvuOBleOBsuOBkw0KK+OBguOCj+OBv+OChCzjgbLjgo3jgobjgY0NCivjgYLjgZbjgb8s44Gk44Go44KADQor44GC44Gc44KE44Gq44GOLOOBsuOCjeOBvw0KK+OBguOBmuOBvizjgorjgYgNCivjgYLjgZrjgb4s44Gf44GL44KG44GNDQor44GC44Ga44G+LOOBquOBiuOChuOBjQ0KK+OBsOOBsCzjgojjgZfjgYvjgZoNCivjgbDjgbAs44GL44Gk44KG44GNDQor44Gw44GwLOOBoOOBhOOBmeOBkQ0KK+OBsOOBquOBiyzjgYvjgZrjgoQNCivjgZXjgZ/jgZEs44GR44GE44GTDQor44Gh44GwLOOCguOBqOOBr+OCiw0KK+OBoeOBjuOCiSzjga7jgbbjgbLjgZMNCivjgaHjga/jgoks44Gf44GL44G144G/DQor44Gh44GL44GELOOBguOBpOOBlw0KK+OBoeOCheOBhuOBvizjgZ/jgZHjgZcNCivjgaDjgYQs44G+44GV44Gy44KNDQor44Gg44GE44GKLOOBsuOBp+OBjQ0KK+OBoOOBpizjgbLjgo3jgZcNCivjgafjgZDjgaEs44GT44GG44GYDQor44Gn44KPLOOBiOOBv+OBkw0KK+OBqeOBhCzjgZ/jgYTjgZ7jgYYNCivjgYjjgbPjgZXjgo8s44Gy44KN44G/44GkDQor44Gq44GL44KA44KJLOOBn+OBi+OBkw0KK+OBiOOBhOOCguOCiizjga/jgovjgb8NCivjgYjjgpPjgaks44Gq44GK44GNDQor44GI44KT44GpLOOBn+OBi+OBig0KK+OBiOOBruOCguOBqCzjgZHjgYTjgZMNCivjgbXjgZjjgYQs44Gy44KN44GL44GaDQor44G144GY44GELOOBkeOCk+OBhOOBoeOCjQ0KK+OBteOBmOOBhCzjgZ/jgaTjga7jgooNCivjgbXjgZjjgYQs44G/44Gk44KI44GXDQor44G144GY44GELOOBqOOBl+OBguOBjQ0KK+OBteOBmOOBi+OCjyzjgZfjga7jgbYNCivjgbXjgZjjgoLjgoos44GC44GN44GTDQor44GC44GK44GNLOOBguOBjeOCiQ0KK+OBteOBmOOCguOBqCzjgarjgYrjgoQNCivjgbXjgZjjgYrjgYss44Gm44Gk44KN44GGDQor44G144GY44GfLOOChOOBmeOBsuOBlQ0KK+OBteOBmOOBnyzjgoDjgaTjgYoNCivjgbXjgYvjgYos44GX44KT44GE44GhDQor44G144GP44GgLOOBi+OBpOOBsuOBkw0KK+OBteOBj+OBoCzjgbLjgo3jgZcNCivjgbXjgY/jgYQs44Gy44Gn44GKDQor44G144GP44GELOOBk+OBhuOBmA0KK+OBteOBj+OCguOBqCzjgbLjgafjgZ/jgYsNCivjgbXjgY/jgZfjgb4s44Gy44Gn44Gu44G2DQor44G144GP44GX44G+LOOBruOBtuOBkw0KK+OBsuOBrizjgZXjgaENCivjgbXjgY/jgZbjgo8s44GN44KH44GG44GTDQor44G144GP44GW44KPLOOBv+OBjeOBkw0KK+OBteOBquOBoCzjgobjgYbjgZMNCivjgbXjgovjgaDjgaYs44GR44GE44GTDQor44G144KL44KELOOBkeOBhOOBmeOBkQ0KK+OBteOBn+OCgOOCiSzjgb/jgY3jgoQNCivjgarjgYvjgoDjgoks44KC44Go44Gy44GVDQor44GU44Go44GGLOOBl+OBkuOBjQ0KK+OBlOOBqOOBhizjgYvjgZrjgoQNCivjgZTjgajjgYYs44GL44GE44Gh44KN44GGDQor44GU44Go44GGLOOCiOOBhuOBkw0KK+OBr+OBsCzjgojjgYbjgZMNCivjga/jgaHjgoTjgb4s44G+44GV44G/DQor44Gv44GO44KP44KJLOOBl+OCkw0KK+OBr+OBvuOBuSzjgZ/jgYvjgobjgY0NCivjga/jgb7jgaAs44KI44GX44G/DQor44Gv44G+44GgLOOBn+OBi+OBsuOBpw0KK+OBvuOBiOOBiuOBiyzjgbLjgajjgZcNCivjga/jgarjgb8s44KE44GZ44Gy44GnDQor44Gv44Gq44GK44GLLOOBguOBjeOBkw0KK+OBm+OBluOBhCzjgarjgYrjgY0NCivjga/jgoks44KK44KH44GG44GYDQor44GV44Go44GGLOOBm+OBhOOBlA0KK+OBr+OCiSzjgYLjgaTjgZcNCivjga/jgonjgaAs44Gq44Gk44G/DQor44Gv44KJ44GgLOOBiOOBhOOBhOOBoQ0KK+OBr+OCieOBoCzjgYvjgZrjgbLjgZMNCivjga/jgonjgaAs44G+44GV44GC44GNDQor44Gv44KJ44GgLOOBv+OBpOOBruOCig0KK+OBr+OCiuOBvizjgarjgYrjgY0NCivjgbvjgpPjgb4s44Gu44G244GC44GNDQor44Gv44KL44KE44G+LOOBl+OBkuOCiw0KK+OBr+OBmyzjgojjgYbjgYTjgaENCivjga/jgZvjgYzjgo8s44Gf44Gk44GKDQor44Gv44Gb44GM44KPLOOChOOCiOOBhA0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgZvjgYzjgo8s44GC44GN44Gy44GTDQor44Gv44GX44GQ44GhLOOBsuOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgZMNCivjga/jgZfjgoLjgags44GL44Ga44KEDQor44Gv44GX44Ga44KBLOOBk+OBhuOBn+OCjeOBhg0KK+OBr+OBl+OBmuOCgSzjgb/jgo8NCivjga/jgZfjgZrjgoEs44GX44KF44KT44GZ44GRDQor44Gv44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBn+OBrizjgaHjgYvjgokNCivjga/jgZ/jga4s44GL44Ga44Go44KCDQor44Gv44Go44KKLOOBquOBiuOBjQ0KK+OBr+OBo+OBqOOCiizjgZ/jgZHjgZcNCivjga/jgaPjgajjgoos44KI44GG44GE44GhDQor44Gv44Gj44Go44KKLOOBguOBjeOBsuOBkw0KK+OBr+OBo+OBqOOCiizjgobjgY0NCivjga/jgaPjgajjgoos44GV44Go44GXDQor44Gv44Gj44Go44KKLOOBvuOBleOBjQ0KK+OBr+OBo+OBqOOCiizjgo/jgZ/jgosNCivjga/jgoTjgYvjgo8s44GR44GE44GTDQor44Gv44KE44GL44KPLOOBquOBiuOBvw0KK+OBr+OChOOBvyzjgZnjgb/jgbLjgagNCivjga/jgoTjgZcs44Gy44Gn44GC44GNDQor44Gv44KE44GXLOOChuOBv+OBkw0KK+OBr+OChOOBlyzjgb7jgZXjgZ/jgYsNCivjga/jgoTjgZcs44G+44KG44G/DQor44Gv44KE44GXLOOChOOBmeOBsuOCjQ0KK+OBleOBleOBn+OBqyzjgYLjgY3jgokNCivjga/jgoTjgZcs44G+44GV44Gu44KKDQor44Gv44GW44G+LOOBm+OBhOOBhOOBoQ0KK+OBuOOCk+OBvyzjgYvjgarjgZMNCivjgbLjgbMs44Go44KC44G/DQor44Gy44Gg44GLLOOBqOOBhuOBkw0KK+OBsuOBoOOBiyzjgobjgYbjgZMNCivjgbLjgaDjgYss44Gf44KN44GGDQor44Gy44GI44GgLOOBv+OBoeOBi+OBmg0KK+OBsuOBjOOBjSzjgZfjgofjgYbjgZgNCivjgbLjgYzjgZcs44KI44GX44Gy44GVDQor44Gy44GE44Gp44KBLOOBsuOCjeOBv+OBoQ0KK+OBsuOBmOOBj+OCjSzjgZvjgYTjgYTjgaENCivjgbXjgY/jgYQs44GE44GV44GKDQor44Gy44G+LOOCiOOBl+OBjQ0KK+OBsuOBiuOBjSzjgajjgYbjgoHjgYQNCivjgbLjgonjgYQs44G+44KKDQor44G/44GNLOOBvuOBleOChuOBjQ0KK+OBsuOCieOBrizjgbXjgY3jgogNCivjgbLjgonjga4s44GL44Ga44Gy44KNDQor44Gy44KJ44GfLOOBl+OCjeOBhg0KK+OBsuOCieOBpOOBiyzjgbXjgb/jgYvjgZoNCivjgbvjgaAs44Gy44KN44GNDQor44Gy44KJ44KE44G+LOOBquOBiuOBkw0KK+OBsuOCjeOBuSzjgY3jgY/jgb8NCivjgbLjgo3jgYQs44G+44GV44Gy44KNDQor44Gy44KN44GV44KPLOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBleOCjyzjgarjgYrjgZMNCivjgbLjgo3jgZnjgYgs44GY44KF44KT44GTDQor44Gy44KN44GfLOOBiuOBleOCgA0KK+OBr+OChOOBvizjgobjgYbjgZMNCivjgbLjgo3jgo/jgZ/jgoos44GV44KG44KKDQor44Gy44GV44KC44GoLOOBv+OBi+OBkw0KK+OBsuOBleOBrizjgojjgZfjgYLjgY0NCivjgbLjgZXjgobjgY0s44KG44GL44KKDQor44Gy44GX44GgLOOBsuOCjeOBlw0KK+OBsuOBl+OBn+OBqyzjgoTjgZnjgZcNCivjgo/jgaAs44G144G/44GIDQor44Gy44KE44G+LOOBruOBtuOBsuOBkw0KK+OBguOCiuOBj+OCiSzjgobjgZ/jgYsNCivjgbvjgpPjgaAs44G/44Gu44KLDQor44G744KT44GgLOOBkeOBhOOBmeOBkQ0KK+OBu+OCk+OBlOOBhizjgb7jgZXjgagNCivjgbvjgpPjgb4s44KG44GG44GE44GhDQor44G744KT44G+LOOBguOBjeOBruOBtg0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZ8NCivjgbvjgoos44G+44Gq44G2DQor44G744KKLOOBguOBjeOBqA0KK+OBu+OCiuOBuSzjgajjgZfjgobjgY0NCivjgbvjgorjgYgs44GC44GN44Gu44KKDQor44G744KK44GILOOBvuOBleOBsuOBkw0KK+OBu+OCiuOBiCzjgZ/jgaDjgZcNCivjgbvjgorjgYbjgaEs44KI44GX44G144G/DQor44G744GX44GwLOOBqOOBiuOCiw0KK+OBu+OBl+OBi+OCjyzjgbLjgafjgYoNCivjgYvjgajjgYYs44Gq44GK44GNDQor44G744GX44GqLOOBk+OBhuOBhOOBoQ0KK+OBu+OCiizjga7jgorjgobjgY0NCivjgbvjgZfjga4s44Gf44GL44GXDQor44G744Gd44GgLOOBruOBtuOBig0KK+OBu+OBo+OBnyzjgZXjgYrjgooNCivjgbvjgaHjgaks44Gf44GL44KEDQor44GE44G244GLLOOCiOOBl+OBpuOCiw0KK+OBhOOBoeOBi+OCjyzjgbLjgajjgZcNCivjgYTjgaHjgYvjgo8s44G+44KK44GTDQor44GE44Gh44G+44GZLOOBpOOBqOOCgA0KK+OBhOOBoeOBruOBmyzjgYvjgaTjgb8NCivjgYTjgacs44G+44GV44Gy44GTDQor44GE44GM44KJ44GXLOOBvuOBleOBqA0KK+OBhOOBjOOBnyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYTjgYQs44KG44KK44GTDQor44GE44GE44GgLOOBvuOBleOCiOOBlw0KK+OBhOOBhOOBoCzjgb7jgZXjgobjgY0NCivjgYTjgYTjgaAs44GX44KT44GYDQor44GE44GE44GuLOOBhOOBoeOCjeOBhg0KK+OBhOOBhOOCiOOCiizjgb/jgaHjga/jgosNCivjgYTjgYTjgZrjgYss44G+44GT44GoDQor44GE44GL44KL44GOLOOBi+OBpOOChA0KK+OBhOOBi+OCjyzjgZHjgYTjgZnjgZENCivjgYTjgZHjgaEs44G+44G/DQor44GE44GR44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOBkeOBoCzjgoLjgajjga/jgosNCivjgYTjgZHjgaAs44Gf44GL44GTDQor44GE44GR44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBkeOBjOOBvyzjgajjgoLjgbLjgo0NCivjgYTjgZHjgZjjgoos44GL44Ga44KEDQor44GE44GR44Gf44GNLOOBj+OBq+OBiuOBvw0KK+OBhOOBj+OCguOBqCzjgZfjgpMNCivjgYTjgb7jgYQs44Gf44GR44GXDQor44GE44G+44GELOOCjOOBhOOBkw0KK+OBu+OBneOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgb7jgYQs44GV44G244KN44GGDQor44GE44G+44Gr44GXLOOBn+OBkeOBlw0KK+OBhOOBquOBoCzjga/jgZjjgoENCivjgYTjgarjgYzjgY0s44G+44Gq44G2DQor44GE44Gq44GSLOOBkeOCk+OBhOOBoQ0KK+OBr+OBluOBvizjgbLjgZXjgoLjgagNCivjgYTjga4s44GY44KF44KTDQor44GE44Gu44G+44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBhOOBruOBhuOBiCzjgorjgYgNCivjgoTjgZnjgYvjgo8s44Gf44GL44Gy44GoDQor44Gv44KLLOOBqOOBiuOCiw0KK+OBhOOBruOBhuOBiCzjgabjgovjgYoNCivjgYTjga7jgYbjgYgs44Gk44Go44KADQor44GE44Gu44GG44GILOOBteOBv+OBruOCig0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgbLjgZUNCivjgYTjgYrjgY0s44G+44GV44G/44GhDQor44GE44KK44GILOOBruOBtuOChuOBjQ0KK+OBhOOBleOBiyzjgajjgYrjgosNCivjgYTjgZXjgYss44KP44Gf44KLDQor44GK44GK44KC44KKLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBsOOBlyzjgb7jgarjgbYNCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GgLOOBhuOCieOCiQ0KK+OBhOOBl+OBr+OCiSzjgojjgZfjgagNCivjgYTjgZfjga/jgoks44Gv44KL44GKDQor44Gy44KJ44GoLOOBsuOBp+OBig0KK+OBhOOBl+OBhCzjgZHjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYQs44G/44GN44GKDQor44GE44GX44GELOOBguOBpOOBlw0KK+OBhOOBl+OBhCzjga/jgovjgYoNCivjgYTjgZfjgYQs44GR44GE44GYDQor44GE44GX44GELOOBvuOBleOBkw0KK+OBr+OBreOBhOOBlyzjgZfjgpPjgZnjgZENCivjgYTjgZfjgYQs44KE44GZ44GXDQor44GE44GX44GL44KPLOOCiOOBhuOBkw0KK+OBhOOBl+OBi+OCjyzjgojjgYbjgZnjgZENCivjgYTjgZfjgYvjgo8s44KI44GX44Gy44GTDQor44GE44GX44GL44KPLOOChuOBiw0KK+OBhOOBl+OBi+OCjyzjga7jgorjgZMNCivjgYTjgZfjgYrjgYss44KI44GX44KG44GNDQor44GE44GX44Gk44GLLOOBqOOBl+OChuOBjQ0KK+OBhOOBl+OCj+OBnyzjgYLjgorjgbLjgo0NCivjgYTjgZfjgZbjgYss44GT44GG44GYDQor44GE44GX44GW44GLLOOBiOOBhOOBhOOBoQ0KK+OBhOOBl+OBluOBjSzjgZPjgYbjgZgNCivjgYTjgZfjgZrjgY0s44Gq44GK44GoDQor44GE44GdLOOBl+OBkuOBsuOBqA0KK+OBhOOBneOBjOOBhCzjgobjgYbjgZMNCivjgYTjgZ/jgbAs44KG44GG44GYDQor44GE44Go44GGLOOBhOOBruOCig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBsOOCkw0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgYTjgajjgYYs44GC44Gk44GXDQor44Gy44Gg44GLLOOBsuOBp+OBpOOBkA0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44KG44GNDQor44Gr44GXLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBoOOCjCzjgojjgZfjga7jgooNCivjgYTjgo/jga/jgZcs44KG44GG44GTDQor44GE44KP44GNLOOBv+OBmuOBuw0KK+OBhOOCj+OCguOBqCzjgojjgZfjga7jgooNCivjgYTjgo/jgZXjgY0s44Gu44G244GL44GaDQor44Gy44KJ44Gk44GLLOOBsuOCjeOBlw0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgYTjgo/jgZXjgY0s44G+44GV44KG44GNDQor44GE44KP44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBmOOCk+OBkOOBhizjgZXjgajjgZMNCivjgYTjgo/jgZfjgZIs44G+44GT44GoDQor44GE44KP44GfLOOBsuOCjeOBlw0KK+OBmOOCk+OBkOOBhizjgojjgZfjga7jgooNCivjgZQs44KE44GZ44GL44GaDQor44GL44GMLOOBi+OBpOOChA0KK+OBi+OBjOOBtizjgZfjgpPjgZjjgo3jgYYNCivjgYvjgY7jgoTjgb4s44Gy44Gn44GKDQor44GL44GELOOChuOBhuOBnuOBhg0KK+OBi+OBhOOBoCzjga7jgorjgobjgY0NCivjgYvjgYTjgaAs44Gu44KK44G+44GVDQor44GL44G+44GhLOOBsuOCjeOChuOBjQ0KK+OBi+OBvuOBoCzjgb7jgZXjgZMNCivjgYvjgb7jgbvjgoos44Go44KC44Gy44GTDQor44GL44G+44GfLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OCgeOBoCzjgb7jgobjgb8NCivjgYvjgoHjgYQs44G144G/44Gy44GTDQor44GL44G/44GuLOOBn+OBkeOBlw0KK+OBi+OBv+OBrizjgbLjgajjgZcNCivjgYvjgb/jgajjga4s44KK44KF44GG44GYDQor44GL44G/44KELOOBruOBtuOChuOBjQ0KK+OBi+OBv+OChCzjgaHjgYLjgY0NCivjgYvjgb/jgoTjgb4s44GR44KT44GODQor44GL44KC44KTLOOBsuOBp+OBjQ0KK+OBi+OCguOCkyzjgYjjgYTjgZ/jgo3jgYYNCivjgYvjgpMs44Go44KC44Gu44KKDQor44GL44Gq44GELOOBruOCiuOBkw0KK+OBi+OBquOBhCzjgZnjgb/jgZMNCivjgYvjgarjgZgs44G+44GV44KG44GNDQor44GL44Gq44GK44GLLOOBn+OBv+OBig0KK+OBi+OBquOBluOCjyzjgYvjgaTjgbLjgZUNCivjgYvjgpPjgbks44GV44GK44KKDQor44GL44KT44GgLOOChOOBmeOBn+OBiw0KK+OBi+OCk+OBoCzjgaHjgYgNCivjgYvjga3jgY0s44GI44GE44GZ44GRDQor44GL44Gt44GN44KILOOBsuOCjeOBqA0KK+OBi+OBreOBkyzjgbLjgo3jgobjgY0NCivjgYvjga3jgZfjgZ8s44GL44Ga44Gy44KNDQor44GL44Gt44KE44GZLOOBquOBiuOChA0KK+OBi+OBruOBhizjgZfjgpPjgZgNCivjgYvjga7jgYYs44Gf44GR44GXDQor44GL44KT44Ga44GELOOBn+OBv+OChuOBjQ0KK+OBi+OBleOBr+OCiSzjgarjgarjgZMNCivjgYvjgZXjga/jgoks44Gy44Gn44Gy44GVDQor44GL44GV44GELOOBiOOBhOOBhOOBoQ0KK+OBi+OBleOBvuOBpCzjgY/jgavjgajjgZcNCivjgYvjgZXjgoIs44GR44KT44GE44Gh44KNDQor44Gf44G+44Gf44GrLOOBl+OBvg0KK+OBi+OBl+OCj+OBjizjgobjgorjgb8NCivjgYvjgZfjgo/jgZDjgoks44Gy44Gn44KG44GNDQor44GL44Gf44GgLOOBleOBoeOBkw0KK+OBi+OBn+OBiuOBiyzjgarjgYrjgY0NCivjgbvjgZcs44Gy44KN44GoDQor44GL44Gf44GK44GLLOOBl+OCheOBhuOBmA0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgYvjgajjgYYs44KE44GZ44KG44GNDQor44GL44Go44GGLOOCguOCiuOBsuOCjQ0KK+OBi+OBqOOBhizjgZfjgpPjgYTjgaENCivjgYvjgajjgYYs44KK44KH44GG44GfDQor44GL44Go44GGLOOBkeOBhOOBkw0KK+OBi+OBqOOBhizjgabjgovjgbLjgZMNCivjgYvjgajjgYYs44GY44KF44KT44GTDQor44GL44Go44GGLOOBv+OBoeOChA0KK+OBi+OBqOOBrizjgY3jgojjgZcNCivjgYvjgaTjgoDjgoks44Gy44Gn44GNDQor44GL44KP44Gw44GfLOOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBlOOBiCzjgYLjgY3jgokNCivjgYvjgo/jgZDjgaEs44GT44GG44GYDQor44GL44KP44Gv44KJLOOBvuOBmeOBvw0KK+OBi+OBl+OCgOOCiSzjgobjgYbjgZMNCivjgYvjgo/jgYQs44Gq44GK44G/DQor44GL44KP44GELOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OCguOBqCzjgb7jgarjgbYNCivjgYvjgo/jgoDjgoks44GV44Go44KLDQor44GL44KP44KA44KJLOOBl+OCheOBhuOBmA0KK+OBi+OCj+OBqizjgobjgY3jgbLjgagNCivjgYvjgo/jgaos44G+44GV44GL44GaDQor44GL44KP44Gq44G/LOOBsuOBp+OBsuOBkw0KK+OBi+OCj+OBrizjgZfjgpPjgZgNCivjgYvjgo/jgZss44GY44KF44KT44GE44Gh44KNDQor44Gv44KJ44GgLOOBl+OCheOBhuOBk+OBhg0KK+OBi+OCj+OBl+OBvizjga7jgbbjgZMNCivjgYvjgZbjgb8s44Gq44GK44GoDQor44GL44Ga44GV44KPLOOChOOBmeOBsuOCjQ0KK+OBjeOBsOOChOOBlyzjgobjgYbjgYTjgaENCivjgY3jgaAs44Gf44GR44GXDQor44GN44Gv44KJLOOCiOOBl+OBsuOBkw0KK+OBjeOBj+OBoSzjgbLjgo3jgZcNCivjgY3jgY/jgaEs44GE44Gh44KN44GGDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBjeOBj+OBhCzjgaTjgojjgZcNCivjgY3jgoLjgags44KI44GG44GTDQor44GN44KA44KJLOOBruOBtuOChuOBjQ0KK+OBjeOCgOOCiSzjgaTjgojjgZcNCivjgY3jgoDjgoks44Go44GX44Gk44GQDQor44GN44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBjeOCgOOCiSzjga/jgovjgb8NCivjgY3jga4s44GL44Ga44G+44GVDQor44GN44KK44GuLOOBi+OBmuOChA0KK+OBjeOBleOBrOOBjSzjgb7jgZPjgagNCivjgY3jgZcs44G+44GV44GNDQor44GN44GXLOOBquOBiuOBjQ0KK+OBjeOBl+OBoCzjgZXjgajjgZcNCivjgY3jgZfjgYvjgo8s44GX44KTDQor44Gy44KJ44GmLOOBl+OCk+OBmA0KK+OBjeOBl+OBquOBvyzjgoTjgZnjgb7jgZUNCivjgY3jgZ0s44KI44GX44GKDQor44GN44GfLOOBsuOBp+OBguOBjQ0KK+OBjeOBn+OBjOOCjyzjgarjgYrjgb8NCivjgY3jgZ/jgZjjgb4s44Gy44KN44KG44GNDQor44GN44Gf44GY44G+LOOBm+OBhOOBiw0KK+OBjeOBn+OCgOOCiSzjga7jgorjgZMNCivjgY3jgZ/jga4s44Go44GX44KG44GNDQor44GN44Gf44GW44GNLOOBn+OBoOOBlw0KK+OBjeOBn+OBluOCjyzjgZ/jgaTjgZcNCivjgY3jgojjga/jgoks44Gk44Go44KADQor44Gv44GX44KC44GoLOOBiuOBleOCgA0KK+OBruOBluOBjSzjgbXjgb/jgY3jgogNCivjgZPjgbDjgoTjgZcs44G144G/44GKDQor44GT44Gw44KE44GXLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44Gf44GL44Gv44KLDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44GI44GE44GYDQor44GT44Gw44KE44GXLOOBleOBoeOBkw0KK+OBk+OBsOOChOOBlyzjgZfjgofjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Go44KC44Gy44KNDQor44GT44GG44GhLOOChuOBjQ0KK+OBk+OBoOOBvizjgoTjgZnjgbLjgo0NCivjgZPjgYws44GC44GN44Gy44KNDQor44Go44GG44Gp44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBk+OBr+OCiSzjgarjgYrjgZnjgb8NCivjgZPjgbIs44Gv44KL44G/DQor44GT44KT44GuLOOBsuOCjeOBteOBvw0KK+OBk+OBhOOBkSzjgajjgYrjgosNCivjgZPjgYTjgo8s44Go44KC44KG44GNDQor44GT44GE44Ga44G/LOOBl+OCheOBhuOBlA0KK+OBk+OBmOOBiyzjgb/jgYjjgZMNCivjgZPjgZjjgb4s44Gq44GM44GKDQor44GT44GY44G+LOOCiuOBoeOBkw0KK+OBk+OBmOOBvizjgYvjgZrjgbLjgZMNCivjgZPjgZjjgb4s44GV44Go44GXDQor44GT44G+44Gk44Gw44KJLOOCiuOCheOBhuOBnw0KK+OBk+OBv+OChCzjgY3jgojjgZcNCivjgZPjgoLjgaAs44GC44GN44KI44GXDQor44GT44KA44KNLOOBqOOBl+OChuOBjQ0KK+OBk+OCk+OBqSzjgarjgaTjgb8NCivjgZPjgpPjgaks44GR44KT44GYDQor44GT44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBk+OBleOBkSzjgZPjgYbjgYTjgaENCivjgZPjgZss44Gf44GL44GXDQor44GT44GZ44GOLOOBn+OBkeOBlw0KK+OBk+OBmuOBiyzjgoTjgZnjga7jgooNCivjgY/jgbws44Gv44KL44G/DQor44GP44G8LOOBn+OBkeOBsuOCjQ0KK+OBj+OBvCzjgarjgYrjgY0NCivjgY/jgbws44GX44GS44GKDQor44GP44G8LOOBsuOCjeOBlw0KK+OBj+OBqeOBhizjgb7jgooNCivjgY/jganjgYYs44Gb44GE44GE44GhDQor44GP44Gp44GGLOOBvuOBleOBjQ0KK+OBj+OBvuOBi+OCjyzjgZHjgpPjgZgNCivjgY/jgb7jgY/jgoks44GR44KT44GE44GhDQor44GP44G+44GX44KNLOOBm+OBhOOBhOOBoQ0KK+OBj+OBvuOBnyzjgZfjgo3jgYYNCivjgY/jgavjgoLjgags44GY44KF44KT44GYDQor44GP44KJ44KC44GhLOOBl+OCheOBhuOBhOOBoQ0KK+OBj+OCieOBl+OBvizjgbLjgo3jgZcNCivjgY/jgorjga/jgoks44GL44Ga44Gy44KNDQor44Gy44KJ44GELOOBk+OBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgojjgZfjgobjgY0NCivjgY/jgorjga/jgoks44GL44Gk44KIDQor44GP44KK44Gv44KJLOOChuOBhuOBmA0KK+OBj+OCiuOBr+OCiSzjgabjgaTjgYoNCivjgY/jgorjga/jgZcs44G/44Gk44Gu44G2DQor44GP44KK44GZLOOCiOOBhuOBkw0KK+OBj+OCjeOBoCzjgYLjgaTjgZcNCivjgY/jgo3jgaAs44Gy44KN44KG44GNDQor44GP44KN44GNLOOBn+OBi+OBsuOCjQ0KK+OBj+OCjeOBjSzjgajjgoLjgZMNCivjgY/jgo3jgY0s44GI44GE44GYDQor44GP44KN44KBLOOBvuOBk+OBqA0KK+OBj+OCjeOBleOCjyzjgYjjgYTjgZjjgo3jgYYNCivjgY/jgovjgb/jgoQs44GT44GG44GNDQor44GP44GV44KE44Gq44GOLOOBvuOBleOBqOOBlw0KK+OBj+OBmeOBruOBmyzjgarjgYrjgYrjgb8NCivjgY/jgo/jga/jgoks44GX44KT44GYDQor44G+44Gh44GgLOOCiOOBhuOBkw0KK+OBvuOBoOOCieOCgSzjgajjgZfjgZ/jgYsNCivjgb7jgYjjgaAs44GV44Go44GXDQor44G+44GI44GgLOOBleOBqOOCiw0KK+OBvuOBiOOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb7jgYjjgYzjgo8s44G144G/44Gy44GnDQor44G+44GI44Gv44KJLOOBjuOCk+OBmA0KK+OBvuOBiOOBjeOBnyzjgYvjgZrjgZMNCivjgb7jgY3jga4s44Gf44GL44Gy44KNDQor44GX44G244Gf44GrLOOBk+OBhuOBmA0KK+OBvuOBquOBuSzjgojjgZfjga7jgooNCivjgb7jgovjgoTjgb4s44GC44GN44KJDQor44G+44KL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBvuOCi+OChOOBvizjgZHjgYTjgYTjgaENCivjgb7jgZXjgYrjgYss44Gf44GL44GXDQor44G+44GZ44G244GhLOOCiOOBl+OBruOCig0KK+OBvuOBmeOBoCzjgobjgYbjgZMNCivjgb7jgZnjgaAs44KI44GX44Gv44KLDQor44G+44GZ44GgLOOBn+OBi+OBqOOBlw0KK+OBvuOBmeOBoCzjgZ/jgY/jgoQNCivjgb7jgZnjgaAs44Gy44KN44GL44GaDQor44G+44GZ44GgLOOBsuOCjeOBjQ0KK+OBvuOBpOOBsCzjga7jgZ7jgb8NCivjga/jgoks44GR44KT44GYDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgaDjgYTjgZnjgZENCivjgb7jgaTjgbXjgZgs44GC44GN44GKDQor44G+44Gk44G144GYLOOBi+OBmuOBquOCig0KK+OBn+OBoeOBj+OBhCzjgb/jgY0NCivjgb7jgaTjgYQs44GX44KT44GYDQor44G+44Gk44GL44KPLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBvuOCiyzjgZfjgoXjgYbjgZXjgY8NCivjgb7jgaTjgoLjgags44GC44GN44GKDQor44G+44Gk44KC44GoLOOBi+OBmuOBruOCig0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbLjgZMNCivjgb7jgaTjgoLjgags44Gu44KK44GTDQor44G+44Gk44KC44GoLOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgaTjgajjgoANCivjgZfjgYrjgbDjgoks44GX44KT44GE44GhDQor44G+44Gk44KA44KJLOOBl+OCheOCk+OBhOOBoQ0KK+OBvuOBpOOCgOOCiSzjgojjgZfjga7jgooNCivjgb7jgaTjgarjgYws44KG44GN44GTDQor44G+44Gk44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBvuOBpOOBquOBvyzjgojjgZfjgZMNCivjgb7jgaTjgYos44Go44GX44KEDQor44G+44Gk44GKLOOBqOOCguOBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgYjjgYTjgZMNCivjga/jgoTjgZfjgaAs44GL44Ga44Gy44KNDQor44G+44Gk44GK44GLLOOBm+OBhOOBhOOBoQ0KK+OBguOBnOOChOOBquOBjizjgZvjgYTjgZgNCivjgb7jgaTjgYrjgYss44GX44KT44GUDQor44G+44Gk44GK44GLLOOBsuOCjeOBguOBjQ0KK+OBvuOBpOOBmyzjgZ/jgYvjgobjgY0NCivjgb7jgaTjgZfjgb4s44GR44KT44GYDQor44G+44Gk44GX44GfLOOBk+OBhuOBmA0KK+OBvuOBpOOBn+OBqyzjgZfjgpPjgZgNCivjgb7jgaTjgo/jgYss44GV44Go44GXDQor44G+44Gk44KE44G+LOOBguOBjeOCiQ0KK+OBvuOBpOOBluOBjSzjgY3jgY/jgYoNCivjgb7jgaTjgarjgYws44G+44GT44GoDQor44G744KT44GqLOOBjeOCj+OCgA0KK+OCgeOBi+OBnyzjgZHjgpPjgZgNCivjgb/jgYvjgZjjgoos44GN44KH44GG44GTDQor44G/44GL44G/LOOBl+OCk+OBmeOBkQ0KK+OBv+OBi+OBvyzjgbLjgafjgYoNCivjgb/jgY0s44G+44GV44KG44GNDQor44G/44G/44GfLOOBv+OBoeOCjQ0KK+OBv+OBquOBj+OBoSzjgbXjgb/jga/jgosNCivjgb/jgarjgb8s44GV44Go44GXDQor44G/44Gq44G/LOOBqOOCguOChuOBjQ0KK+OBv+OBquOBvyzjgYLjgY3jgokNCivjgb/jgarjgags44GX44KH44GG44GYDQor44G/44GtLOOCiOOBl+OBn+OBiw0KK+OBv+OBrSzjgYLjgaTjgZcNCivjgb/jgZfjgb4s44GT44GG44GYDQor44G/44GX44G+LOOBiuOBleOCgA0KK+OBv+OBneOBrizjgbLjgo3jgbLjgZUNCivjgb/jgZ/jgoDjgoks44G+44GV44Go44GXDQor44G/44Gf44KT44GgLOOBkeOCk+OBhOOBoQ0KK+OBv+OBpOOBvCzjgojjgZfjgYvjgZoNCivjgb/jgaTjgbzjgZcs44Go44GX44Gy44KNDQor44Gv44GZ44KA44KJLOOBqOOBl+OBteOBvw0KK+OBv+OBpOOBr+OBlyzjgbLjgo3jgb/jgaQNCivjgZfjgarjgaAs44Gy44KN44KG44GNDQor44G/44Gk44G+LOOBi+OBmuOBsuOBqA0KK+OBv+OChOOBr+OCiSzjgZjjgaTjgoQNCivjgb/jgoTjga/jgoks44Gy44Gn44Gv44KLDQor44G/44KE44GELOOBv+OBiOOBkw0KK+OBv+OChOOBmOOBvizjgobjgYvjgZMNCivjgb/jgoTjgoLjgags44GL44Ga44Gq44KKDQor44G/44KE44KC44GoLOOBsuOBp+OBruOCig0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZ8s44Gy44KN44KG44GNDQor44G/44KE44GfLOOBi+OBiuOCiw0KK+OBv+OChOOBhuOBoSzjgZHjgpPjgZgNCivjgb/jgoTjgYbjgaEs44GK44GV44KADQor44G/44KE44GG44KJLOOBn+OBkeOBsuOBlQ0KK+OBv+OChOOBluOBjSzjgZ/jgZHjgZcNCivjga/jgZfjgZDjgaEs44GX44GS44GNDQor44G/44KE44GW44KPLOOBk+OBhuOBmA0KK+OBv+OChOOBluOCjyzjgYLjgY3jgYoNCivjgb/jgoTjgZos44KE44GZ44Gy44GoDQor44G/44Ge44GL44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBv+OBmuOBrizjgabjgaTjgbLjgZMNCivjgb/jgZrjga4s44Go44GX44KG44GNDQor44G/44Ga44Gf44GrLOOBruOBtuOChuOBjQ0KK+OCguOBoeOBoCzjgYLjgY3jgbLjgo0NCivjgoLjgaHjgZrjgY0s44GC44GN44GKDQor44KC44Gh44Ga44GNLOOBmOOCjeOBhg0KK+OBv+OCiOOBlyzjgZ/jgYvjgZcNCivjgoLjgoos44G+44GV44GNDQor44KC44KKLOOBvuOBleOBlw0KK+OCguOCiizjgaDjgYTjgYTjgaENCivjgoLjgoos44G+44GV44KG44GNDQor44KC44KKLOOBpuOBpOOChA0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgoos44Gk44Gt44GC44GNDQor44KC44KKLOOBhOOBmuOBvw0KK+OCguOCiizjgbLjgo3jgYvjgZoNCivjgoLjgorjgZDjgaEs44Gy44KN44GNDQor44KC44KK44GL44KPLOOBk+OBhuOBmA0KK+OCguOCiuOBquOBjCzjgb7jgZXjgZcNCivjgoLjgorjgZXjgY0s44GC44GR44G/DQor44KC44KK44GfLOOCiOOBhuOBhOOBoQ0KK+OCguOCiuOBnyzjgYjjgYTjgZgNCivjgoLjgorjgoQs44KA44Gk44GKDQor44KC44KK44KE44G+LOOBsuOBp+OBig0KK+OCguOBpuOBjizjgb/jgaTjgbLjgo0NCivjgoLjgajjgY0s44GP44Gr44Gy44KNDQor44Gv44GO44KP44KJLOOBruOBtuOCiOOBlw0KK+OCgOOBi+OBhOOBoCzjgZfjgZMNCivjgoDjga3jgbLjgo0s44Gy44Gn44KG44GNDQor44KA44Gt44GL44GfLOOBi+OBmuOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgaTjgojjgZcNCivjgoDjgonjgYvjgb8s44KE44GZ44Gy44KNDQor44KA44KJ44GL44G/LOOChOOBmeOBig0KK+OCgOOCieOBk+OBlyzjgbLjgo3jgZMNCivjgoDjgonjgb7jgaQs44G+44GV44GoDQor44KA44KJ44Gs44GNLOOBkeOBhOOBmA0KK+OCgOOCieOBnyzjgobjgY3jgoLjgagNCivjgoDjgonjgZ8s44G+44GV44GNDQor44KA44KJ44GfLOOBm+OBhOOBmA0KK+OCgOOCieOChOOBvizjgojjgZfjga/jgosNCivjgoTjgb7jgZfjgZ8s44GC44GN44Gy44KNDQor44KA44KN44GfLOOBsuOCjeOBi+OBmg0KK+OBv+OCh+OBhuOBmOOCkyzjgb/jgaHjgYoNCivjgarjgYzjgYQs44Gu44KK44GTDQor44Gq44GM44Gs44G+LOOChuOBjeOBig0KK+OBquOBjOOBiizjgYjjgooNCivjgarjgYzjgYrjgYss44G/44G7DQor44Gq44GM44GV44KPLOOBi+OBiuOCiw0KK+OBquOBjOOBl+OBvizjgZ/jgYvjgZcNCivjgarjgYzjgZfjgb4s44KI44GX44GL44GaDQor44Gq44GM44GfLOOCiOOBl+OChOOBmQ0KK+OBquOBjOOBnyzjgaHjgYjjgZMNCivjga/jgZvjgYzjgo8s44Gy44KN44GC44GNDQor44GE44GM44KJ44GXLOOBi+OBmuOBsuOCjQ0KK+OBquOBjOOChOOBvizjgZHjgpPjgZgNCivjgarjgYzjgojjgZcs44G+44GV44GL44GkDQor44Gq44GE44Go44GGLOOBvuOBleOBjQ0KK+OBquOBi+OBsOOChOOBlyzjgb7jgZXjga7jgooNCivjgarjgYvjgYzjgo8s44GX44KT44GE44GhDQor44Gq44GL44GU44KBLOOBleOBqOOBlw0KK+OBquOBi+OBl+OBvizjgajjgZfjgYLjgY0NCivjgarjgYvjgZjjgb4s44KE44GZ44G+44GVDQor44Gq44GL44GY44G+LOOChuOBhuOBkw0KK+OBquOBi+OBmOOBvizjgabjgovjgb8NCivjgarjgYvjgZjjgb4s44GP44KJ44GoDQor44Gq44GL44GY44G+LOOChuOBhuOBmA0KK+OBquOBi+OBj+OBjSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYvjgb7jgoss44KK44GLDQor44Gq44GL44G/44GhLOOBv+OBiw0KK+OBquOBi+OCguOBqCzjgobjgY3jgbLjgo0NCivjgarjgYvjgoLjgags44Gy44KN44GL44GaDQor44Gq44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgbXjgb8NCivjgarjgYvjgoDjgoks44G+44GV44Gq44KKDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgZvjgYTjgZgNCivjgarjgYvjgoDjgoks44GL44Ga44Gu44KKDQor44Gq44GL44KA44KJLOOChuOBhuOBmA0KK+OBquOBi+OCgOOCiSzjgabjgovjgobjgY0NCivjga/jgY7jgo/jgoks44GV44Go44GTDQor44Gq44GL44KA44KJLOOBvuOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjgarjgYvjgoDjgoks44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBkeOCk+OBnw0KK+OBquOBi+OBrizjgoTjgZnjgZcNCivjgarjgYvjgYos44KG44GG44GTDQor44Gq44GL44GKLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBiuOBiyzjgajjgoLjgobjgY0NCivjgarjgYvjgZfjgb4s44GV44Go44GXDQor44Gr44GX44GY44G+LOOBn+OBi+OBlw0KK+OBquOBi+OChCzjgo/jgZ/jgosNCivjgarjgYvjgoTjgb4s44Gy44KN44GXDQor44Gq44GL44GW44GoLOOBi+OBpOOBguOBjQ0KK+OBquOBvuOBn+OCgSzjgb7jgoLjgosNCivjgarjgoHjgoks44KC44KK44Gy44GoDQor44Gq44Gq44G/LOOBn+OBoOOBqOOBlw0KK+OBquOCk+OBsCzjgZ/jgYvjgYoNCivjgarjgpMs44GR44GE44GZ44GRDQor44Gq44KT44G9LOOBguOBjeOCiQ0KK+OBquOCieOBtizjgbLjgafjgY0NCivjgarjgorjga/jgoks44Gy44KN44G/DQor44Gq44KK44Go44G/LOOBquOBiuOBjQ0KK+OBquOCi+OBl+OBvizjgb7jgZPjgagNCivjgarjgZnjgYvjgo8s44GY44KF44KT44KEDQor44Gq44Go44KKLOOBkeOCk+OChA0KK+OBreOBjuOBlyzjgYjjgb/jgZMNCivjga3jgoLjgags44GE44Ga44G/DQor44Gr44GI44GgLOOBqOOBiuOCiw0KK+OBq+OBhOOBmOOBvizjgb7jgZPjgagNCivjgavjgYTjgY/jgoks44G+44GV44KLDQor44Gr44GE44Gk44G+LOOBkeOCk+OBmA0KK+OBq+OBhOOBluOCjyzjgojjgZfjga7jgooNCivjgavjgZfjgaAs44Gy44KN44Gy44GoDQor44Gr44GX44GgLOOBn+OBkeOBlw0KK+OBq+OBl+OBoCzjgYjjgYTjgZgNCivjgavjgZfjgaAs44Gy44Gn44GoDQor44Gy44Gg44GLLOOChuOBjeOBvuOBlQ0KK+OBq+OBl+OBoCzjgoTjgZnjgYoNCivjgavjgZfjgYvjgaks44GC44Gk44GXDQor44Gr44GX44GL44KPLOOBiOOBhOOBmOOChQ0KK+OBq+OBl+OBi+OCjyzjgajjgoLjgYLjgY0NCivjgavjgZfjgYvjgo8s44G+44GV44Gu44G2DQor44Gr44GX44KC44GoLOOBsuOBp+OChA0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjga7jgooNCivjgavjgZfjgaos44GN44KI44GXDQor44Gr44GX44GuLOOBsuOCjeOBi+OBmg0KK+OBq+OBl+OBnyzjgb/jgY0NCivjgbXjgYvjgb8s44GL44Ga44KIDQor44Gr44GX44KP44GNLOOBn+OBkeOBsuOBkw0KK+OBq+OBl+OChOOBvizjgYvjgaTjgZcNCivjgavjgZfjgoTjgb4s44Gy44Go44GXDQor44Gr44GX44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBq+OBo+OBnyzjgbLjgo3jgojjgZcNCivjgavjgo/jgZ8s44G744Ga44G/DQor44Gr44KP44KE44G+LOOBoeOBmg0KK+OBruOBguOBvyzjgY/jgavjgZMNCivjga7jgbzjgorjgZ/jgaYs44G+44Gq44G2DQor44Gu44GgLOOBn+OBi+OChuOBjQ0KK+OBruOBjOOCjyzjgbLjgo3jgoQNCivjga7jgZDjgaEs44Go44KC44GC44GNDQor44Gu44GQ44GhLOOBn+OBi+OBlw0KK+OBruOBmOOCiizjgbLjgo3jgobjgY0NCivjga7jgoLjgags44KG44GG44GTDQor44Gu44KA44KJLOOBv+OBjeOBkw0KK+OBr+OChOOBleOBiyzjgYvjgZrjgbLjgo0NCivjga7jgoDjgoks44G+44GV44Gy44KNDQor44Gu44GoLOOBneOBruOBvw0KK+OBruOBluOBjSzjgajjgZfjgoQNCivjgZPjgZXjgYss44KE44GZ44GXDQor44GK44Gw44GqLOOBguOChOOBkw0KK+OBiuOBoSzjgb7jgZXjgabjgosNCivjgYrjgaAs44Gv44KL44Gu44G2DQor44GK44GM44GV44KP44KJLOOBi+OBmuOBpuOCiw0KK+OBiuOBjOOBnyzjgbLjgo3jgoTjgZkNCivjgY/jgY0s44KG44Gf44GLDQor44GK44GL44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOBjOOCjyzjgbLjgo3jgobjgY0NCivjgYrjgYzjgo8s44G+44GV44KG44GNDQor44GK44GM44KPLOOChOOBmeOBruOCig0KK+OBiuOBjuOBr+OCiSzjgYvjgZrjgajjgZcNCivjgYrjgY7jga4s44GT44GG44GE44GhDQor44GK44G2LOOBv+OBiw0KK+OBiuOBiuOBr+OCiSzjgZ/jgaDjgbLjgZMNCivjga/jgb7jgoLjgags44KE44GZ44GTDQor44GK44GK44Gv44KJLOOChuOBhuOBmA0KK+OBiuOBr+OBlyzjgZXjgajjgZcNCivjgYrjgYrjgYvjgo8s44G+44GV44GoDQor44GK44GK44GP44G8LOOBvuOBleOBguOBjQ0KK+OBiuOBiuOBv+OChCzjgZvjgYTjgZgNCivjgYrjgYrjgoLjgoos44Gm44Gk44KEDQor44GK44KA44KJLOOCiuOCh+OBhuOBhOOBoQ0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgZ/jgYsNCivjgYrjgYrjga4s44Gy44KN44KE44GZDQor44GK44GK44Gs44GNLOOBi+OBmuOBig0KK+OBiuOBiuOBleOBjSzjgZXjgajjgZcNCivjgYrjgYrjgZXjgY0s44KG44GG44GTDQor44GK44GK44GV44KPLOOBl+OCjeOBhg0KK+OBiuOBl+OBvizjgZ/jgZHjgZcNCivjgYrjgZfjgb4s44Gf44GL44GKDQor44GK44GX44G+LOOBpOOBqOOCgA0KK+OBiuOBiuOBnyzjgoTjgZnjgYoNCivjgYrjgYrjgZ8s44Gu44G244Gy44KNDQor44GK44GK44GfLOOBv+OBiw0KK+OBiuOBiuOBnyzjgbLjgo3jgZcNCivjgYLjgpPjganjgYYs44GR44KT44GE44GhDQor44GK44Gf44GLLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOBn+OBjSzjgbXjgajjgZcNCivjgYrjgYrjgZ/jgass44GL44Ga44Gy44GTDQor44GK44GK44Gf44GrLOOBruOCiuOBsuOBlQ0KK+OBiuOBiuOBn+OBqyzjgb7jgZXjgYvjgZoNCivjga/jgoTjgZcs44KG44GN44GTDQor44GK44GK44Gk44G8LOOBn+OBkeOBsuOBlQ0KK+OBiuOBiuOBpOOBiyzjgojjgZfjga7jgooNCivjgYrjgYrjgaTjgYss44GI44GE44GNDQor44GK44GK44Gk44GLLOOBguOBpOOBlw0KK+OBr+OChOOBlyzjgYjjgb/jgZMNCivjgYrjgYrjgaTjgoss44G/44Gh44GIDQor44GK44G144GhLOOBqOOBl+OBkw0KK+OBiuOBiuOCjyzjgZ/jgZHjgZcNCivjgYrjgYrjgoQs44KA44Gt44GKDQor44GK44GY44GKLOOBteOBv+OBruOBtg0KK+OBiuOBiyzjgb7jgZXjgajjgZcNCivjgYrjgYvjgbks44GC44KG44KADQor44GK44GL44GgLOOBvuOBleOBjQ0KK+OBiuOBi+OBoCzjgZ/jgYvjgoQNCivjgYrjgYvjgaAs44Go44GK44KLDQor44GK44GL44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgoLjgags44KG44GGDQor44GK44GL44KC44GoLOOBqOOCguOChuOBjQ0KK+OBiuOBi+OCgOOCiSzjgbLjgo3jgY/jgasNCivjgYrjgYvjgoDjgoks44GR44GE44GE44GhDQor44GK44GL44GW44GNLOOBsuOCjeOBqOOBlw0KK+OBiuOBi+OBluOBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgY3jga4s44GL44GK44KLDQor44GK44GP44GgLOOBr+OBmOOCgQ0KK+OBiuOBj+OBoCzjgb7jgZXjga7jgooNCivjgYrjgY/jgYzjgo8s44GY44KF44KT44GE44GhDQor44Gv44GO44Gv44KJLOOBkeOCk+OBmA0KK+OBiuOBj+OBhuOBoSzjgoDjga3jgZcNCivjgYrjgYrjgb8s44GC44KE44GTDQor44GK44KA44KJLOOBsuOBqOOBlw0KK+OBiuOCk+OBoCzjgYvjgZrjgbLjgo0NCivjgYrjgYrjga4s44KG44Gf44GLDQor44GK44GK44GuLOOBsuOCh+OBhuOBnuOBhg0KK+OBiuOBiuOBrizjgb/jga7jgosNCivjgYrjgYrjga4s44GX44KF44KT44GZ44GRDQor44GK44Gu44Gn44KJLOOBvuOBleOBsuOBkw0KK+OBiuOBruOBp+OCiSzjgojjgZfjga7jgooNCivjgYrjga7jgafjgoks44Go44GX44GKDQor44GK44Gu44KA44KJLOOBv+OBruOCiw0KK+OBiuOBruOBluOCjyzjgZfjgpPjgoQNCivjgYrjgYrjgazjgY0s44Gm44Gk44KN44GGDQor44GK44GuLOOBn+OBi+OBguOBjQ0KK+OBiuOBiuOChOOBvizjgbLjgajjgZcNCivjgYrjgorjgaks44Gy44Gn44GC44GNDQor44GK44KK44GX44GN44GgLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBleOBiyzjgZ/jgaDjgYoNCivjgYrjgoTjgb4s44Gf44GE44GhDQor44GK44GW44GNLOOBn+OBpOOChA0KK+OBiuOBluOBjSzjgojjgZfjgb7jgZUNCivjgYrjgZbjgo8s44KG44GG44GZ44GRDQor44GT44GW44KPLOOBsuOCjeOBlw0KK+OBiuOBluOCjyzjgb7jgZXjga/jgosNCivjgYrjgZbjgo8s44Gf44GR44GXDQor44Gv44Gf44Gq44GLLOOBv+OBpOOBsuOCjQ0KK+OBleOBiOOBjSzjgorjgofjgYbjgZMNCivjgZXjgYTjgaAs44KC44KC44GTDQor44GV44GE44GQ44GVLOOBsuOCjeOBlw0KK+OBr+OCk+OBoCzjgZ/jgZHjgZcNCivjgZXjgYTjgajjgYYs44KE44GZ44Go44KCDQor44GV44GE44Go44GGLOOBvuOBleOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgZfjgZLjgbLjgagNCivjgZXjgYvjgaEs44G+44GV44GKDQor44GV44GL44GQ44GhLOOBk+OBhuOBmA0KK+OBleOBi+OBhCzjgb/jga7jgosNCivjgZXjgYvjgYQs44GT44GG44Ge44GGDQor44Gy44KJ44GuLOOBguOBjeOBsuOCjQ0KK+OBleOBi+OBhCzjgYLjgY3jgokNCivjgZXjgYvjgYQs44Gy44KN44G/DQor44GV44GL44GELOOBv+OBjeOBig0KK+OBleOBi+OBhCzjgarjgYrjgY0NCivjgZXjgYvjgoLjgags44Gf44GL44GXDQor44GV44GL44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBsuOCjeOBmyzjgojjgZfjgYLjgY0NCivjgZXjgYvjgoLjgags44KI44GG44GN44GhDQor44GV44GL44GfLOOBqOOCguOBmA0KK+OBjeOBl+OBoCzjgbLjgo3jgYLjgY0NCivjgZXjgZMs44GC44GL44GXDQor44GV44GP44G+LOOBvuOBleOCiw0KK+OBleOBj+OCieOBsCzjgYjjgb8NCivjgZXjgY/jgonjgYQs44Gv44KL44G/DQor44GV44GP44KJ44KE44G+LOOBsuOCjeOBlw0KK+OBleOCgeOBl+OBvizjgYvjgZrjgojjgZcNCivjgZXjgpPjgbks44G+44GT44GoDQor44GV44KL44KP44Gf44KKLOOBvuOBleOBjQ0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgagNCivjgZXjgZXjgYgs44Gq44GK44GNDQor44GV44GV44Gv44KJLOOCiuOCh+OBhuOBmA0KK+OBleOBleOBjSzjgZ/jgYvjgb7jgZUNCivjgZXjgZXjgY0s44Gf44GL44GXDQor44GV44GV44GNLOOChuOBn+OBiw0KK+OBleOBleOBjSzjgobjgY3jgZMNCivjga/jgbPjgo0s44KG44Gf44GLDQor44GV44GV44GKLOOBi+OBmuOBl+OBkg0KK+OBleOBleOBiuOBiyzjgajjgoLjgZMNCivjgZXjgZXjgZ/jgass44KI44GX44G/DQor44GV44GfLOOBqOOCguOBvw0KK+OBleOBn+OBkSzjgajjgZfjgY0NCivjgZXjgajjgYYs44GY44KF44KTDQor44G744GX44GuLOOBkeOBhOOBmA0KK+OBleOBqOOBhizjgb7jgZXjga/jgosNCivjga/jgaPjgajjgoos44GX44KT44KEDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgZfjgZLjgY0NCivjgZXjgajjgYYs44KG44GN44Gf44GLDQor44GV44Go44GGLOOCiuOCh+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgZ/jgaTjgY0NCivjgZXjgajjgYYs44GR44GE44GYDQor44GV44Go44GGLOOBvuOCiuOBig0KK+OBleOBqOOBhizjgajjgZfjgYLjgY0NCivjgZXjgajjgYYs44GR44GE44GE44GhDQor44Gy44KJ44GuLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44KE44GZ44Gu44KKDQor44GV44KP44GgLOOBkeOBhOOBhOOBoQ0KK+OBleOCj+OBoCzjgZPjgYbjgbjjgYQNCivjgZXjgo/jgbXjgZgs44Gf44GL44Gy44KNDQor44GV44KP44GNLOOBk+OBhuOBuOOBhA0KK+OBleOCj+OCgOOCiSzjgbLjgo3jgZcNCivjgZvjgYzjgo8s44GX44KT44Gf44KN44GGDQor44Gb44GM44KPLOOBi+OBmuOBjQ0KK+OBm+OBjSzjgorjgaTjgZMNCivjgZvjgY0s44Gf44GE44GhDQor44Gb44GN44GQ44GhLOOBsuOBleOBlw0KK+OBm+OBjeOBrSzjgYvjgZrjgYLjgY0NCivjgZvjgY3jga0s44GL44Gk44G/DQor44Gy44KJ44GuLOOBiOOBhOOBhOOBoQ0KK+OBm+OCk+OBlOOBjyzjgoTjgZnjgZcNCivjgZvjgYos44Gy44KN44GXDQor44Gb44KJLOOBn+OBoOOBlw0KK+OBm+OCiSzjgbLjgo3jgYvjgaQNCivjgZfjgbDjga/jgoks44GL44Ga44GuDQor44GX44Gw44GfLOOBi+OBmuOBsuOBkw0KK+OBl+OBsOOBnyzjgajjgoLjgbLjgo0NCivjga/jgZvjgYzjgo8s44Go44KC44G/44GkDQor44GX44Gw44GfLOOChuOBn+OBiw0KK+OBl+OBsOOBnyzjgb7jgZXjgZ/jgZENCivjgZfjgbDjgZ8s44G+44GV44KG44GNDQor44GX44Gw44GW44GNLOOBvuOBleOBkw0KK+OBl+OBtuOBn+OBqyzjgajjgoLjga/jgosNCivjgZfjgbbjgoQs44Go44KC44GL44GkDQor44GX44Gh44Gy44KH44GGLOOBjeOBv+OBguOBjQ0KK+OBl+OBjSzjgb7jgZXjgosNCivjgZfjgY3jgZfjgb4s44Gf44GR44GXDQor44GX44G+LOOBguOBjeOBkw0KK+OBl+OBvizjgZPjgZnjgZENCivjgZfjgb7jgaAs44GL44Gk44Gy44KNDQor44GX44G+44Gs44GNLOOBn+OBi+OBlw0KK+OBl+OBvuOBiuOBiyzjgoTjgZnjgZ/jgYsNCivjgZfjgb7jgZfjgZ8s44Gq44GK44Gy44KNDQor44GX44G+44GaLOOBkeOBhOOBhOOBoQ0KK+OBl+OBv+OBmizjgbLjgafjgY0NCivjgZfjgb/jgZos44GR44GE44GZ44GRDQor44Gv44Gb44GM44KPLOOBoeOBiOOBkw0KK+OBl+OBv+OBmizjgb7jgZXjgYoNCivjgZfjgb/jgZos44KG44KK44GTDQor44GX44G/44GaLOOBi+OBmuOBsuOBlQ0KK+OBl+OCguOBjOOBhCzjgajjgZfjgZMNCivjgZfjgoLjgYvjgo/jgbks44GC44GN44Gy44KNDQor44GX44KC44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBleOBiyzjgbLjgafjgobjgY0NCivjgZfjgoLjgoTjgb4s44Gm44Gk44KEDQor44GX44KT44G844KKLOOBsuOCjeOBiA0KK+OBl+OBruOBr+OCiSzjgarjgYrjgZ/jgYsNCivjgZfjga7jga/jgoks44Gy44GV44Go44GXDQor44GX44Gu44GW44GNLOOBsuOCjeOBlw0KK+OBl+OBruOBluOBjSzjgojjgZfjgZMNCivjgZfjga7jgZrjgYss44GR44KT44GE44GhDQor44GX44KT44KELOOBsuOBp+OBkw0KK+OBl+OBiuOBnyzjgZjjgoXjgpPjgY3jgaENCivjgZfjgYrjgZ/jgass44GR44KT44GYDQor44GX44GK44KELOOBqOOBiuOCiw0KK+OBl+OCieOBr+OBvizjgb/jgaHjgbLjgZUNCivjgZfjgonjgYQs44G/44GLDQor44GX44KJ44GE44GXLOOBv+OBlQ0KK+OBl+OCieOBhOOBlyzjgoTjgZnjgbLjgagNCivjgZfjgonjgYTjgZcs44Gk44Go44KADQor44GX44KJ44GNLOOBkeOBhOOBmeOBkQ0KK+OBl+OCieOBleOBjSzjgYvjgZrjgobjgY0NCivjgZfjgofjgYbjgarjgZQs44Gf44GL44GX44GSDQor44GK44GK44KE44G+LOOBv+OBiw0KK+OBl+OCheOBqOOBhizjgbLjgo3jgY0NCivjgZfjgoLjgYTjgZos44KI44KK44GoDQor44Gd44GI44GgLOOBn+OBj+OBvw0KK+OBu+OCiuOBrizjgbLjgo3jgYvjgaQNCivjgZ3jgajjgZjjgb4s44G144Go44GXDQor44GZ44GgLOOCgeOBhOOBmOOCjeOBhg0KK+OBmeOBoCzjgZPjgYbjgZMNCivjgZnjganjgYYs44Gy44Gn44Gy44GoDQor44GZ44GMLOOBr+OBmOOCgQ0KK+OBmeOBjOOBrOOBvizjgbLjgo3jgYvjgZoNCivjgZnjgYzjgo/jgoks44GR44GEDQor44GZ44GO44Gw44KE44GXLOOBvuOBleOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgb/jgYsNCivjgZnjgY7jgoLjgags44Gu44G244GTDQor44GZ44GO44KA44KJLOOBruOCiuOBsuOBkw0KK+OBmeOBjuOBrizjgZXjgajjgosNCivjgZnjgY7jgZXjgY0s44GX44KT44GE44GhDQor44GZ44GO44GV44KPLOOBn+OBi+OBig0KK+OBmeOBjuOBnyzjgZ/jgYvjgobjgY0NCivjga/jgoTjgZcs44Gf44G/DQor44GZ44GO44GG44KJLOOBqOOBiuOCiw0KK+OBmeOBjuOChOOBvizjgajjgZfjgoQNCivjgZnjgY7jgoTjgb4s44GX44KT44GYDQor44GZ44GULOOChOOBmeOBig0KK+OBmeOBhOOBnyzjgojjgZfjgbLjgZUNCivjgZnjgb/jgaAs44GC44Gk44GXDQor44GZ44G/44GL44KPLOOBleOBqOOBlw0KK+OBmeOBquOBjCzjgajjgYrjgosNCivjgZnjga7jga/jgoks44G+44GV44G/DQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgajjgoLjgobjgY0NCivjgZnjgZrjgY0s44KI44GX44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBteOBvw0KK+OBmeOBmuOBjSzjgZfjgofjgYbjgZQNCivjgZnjgZrjgY0s44Gf44GR44Gy44KNDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgYvjgZrjgbUNCivjgZnjgZrjgY0s44GC44GN44GTDQor44GZ44Ga44GNLOOBi+OBpOOBsuOBkw0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgoTjgb7jgYvjgo8s44Gf44Gk44GKDQor44GZ44Ga44GNLOOBguOBleOBkw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgZMNCivjga/jgYws44Gy44KN44GL44GaDQor44GZ44Ga44GNLOOBhOOBleOBqA0KK+OBmeOBmuOBjSzjgYvjgYrjgooNCivjgZnjgZrjga4s44GL44Gk44G144G/DQor44GX44KF44Go44GGLOOBj+OBq+OBsuOBpw0KK+OBn+OBsOOCiSzjgb7jgZMNCivjgZ/jgaAs44G+44GV44KLDQor44Gv44KK44GM44GELOOBn+OBi+OBruOBtg0KK+OBn+OBoCzjgb7jgZXjgobjgY0NCivjgZ/jgYzjgZfjgoks44G/44Gq44GTDQor44Gf44GQ44GhLOOBv+OChuOBjQ0KK+OBn+OBkOOBoSzjga7jgbbjgYLjgY0NCivjgZ/jgZjjgb4s44GX44KT44GYDQor44Gf44GY44G+LOOBl+OCk+OBmA0KK+OBu+OBo+OBnyzjgZfjgoXjgpPjgYTjgaENCivjgZ/jgYvjgaAs44Go44KC44Gu44KKDQor44Gf44GL44GOLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBjizjgojjgYbjgYTjgaENCivjgZ/jgYvjgY4s44KG44GG44GTDQor44Gf44GL44Gv44GXLOOBiOOBhOOBkw0KK+OBr+OBl+OBkOOBoSzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBquOBiuOBvw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjga/jgZcs44GL44Gk44Go44GXDQor44Gf44GL44Gv44GXLOOBi+OBmuOBkw0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgZ/jgYvjga/jgZcs44Go44KC44Gy44KNDQor44Gv44Gb44GM44KPLOOBpuOCi+OBig0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gy44Gn44Gu44KKDQor44Gf44GL44Gv44GXLOOBi+OBpOOBvw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44KI44GX44G/44GkDQor44Gf44GL44Gv44GXLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgYTjgaHjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44GC44Gk44Gu44KKDQor44Gf44GL44Gv44GXLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgbXjgZXjgbLjgZMNCivjgYrjgYrjgb8s44GR44KT44GYDQor44Gf44GL44Gy44KJLOOBv+OBruOCiw0KK+OBn+OBi+OBhCzjgojjgZfjgajjgoINCivjgZ/jgYvjgb/jgoQs44GT44GG44GYDQor44Gf44GL44Gq44GXLOOCiuOBuw0KK+OBn+OBi+OBrizjgb/jgY3jgZMNCivjgZ/jgYvjga4s44KI44GX44Gy44KNDQor44Gf44GL44GuLOOBn+OBvuOCiA0KK+OBn+OBi+OBrizjgojjgZfjgbLjgagNCivjgZ/jgYvjga4s44GC44GN44Gy44KNDQor44Gv44KE44GL44KPLOOCguOBqOOBsuOCjQ0KK+OBn+OBi+OBl+OBvizjgZ/jgaDjgZcNCivjgZ/jgYvjgZks44GL44Gk44Gu44KKDQor44Gf44GL44Go44GG44KKLOOBsuOBp+OBsuOBkw0KK+OBn+OBi+OBqOOCiizjgbXjgZXjgb8NCivjgZ/jgYvjgoQs44Gu44KK44GC44GNDQor44Gf44GRLOOBguOBjeOBsuOCjQ0KK+OBn+OBkeOBoCzjgZvjgYTjgZgNCivjgZ/jgZHjgaAs44GE44Ga44G/DQor44G744KKLOOBk+OBhuOBnuOBhg0KK+OBn+OBkeOBoCzjgZfjgpPjgYTjgaENCivjgZ/jgZHjga/jgoks44Gy44GL44KLDQor44Gf44GR44GELOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOCguOBqCzjgYLjgY0NCivjgZ/jgZHjgoLjgags44GC44GN44GZ44GRDQor44Gf44GR44Gq44GLLOOBkeOCk+OBhOOBoQ0KK+OBr+OChOOBlyzjgb7jgZXjgbLjgZMNCivjgZ/jgYvjgY4s44G+44GV44GNDQor44Gf44GR44Go44G/LOOBvuOBleOBruOCig0KK+OBn+OBkeOBhuOBoSzjgb/jgbsNCivjgZ/jgZHjgYbjgaEs44G/44Gk44GKDQor44Gf44GR44GG44GhLOOBruOBtuOCiOOBlw0KK+OBn+OBkeOChOOBmSzjgozjgYTjgZgNCivjgZ/jgZHjgZbjgo8s44KK44KH44GG44GYDQor44Gf44GN44GwLOOBleOBqOOBlw0KK+OBn+OBj+OBvCzjgZ/jgYvjga7jgooNCivjga/jgavjgoXjgYYs44Gk44KI44GXDQor44Gf44G+44KI44KKLOOChuOBhuOBkw0KK+OBn+OCguOBpCzjgobjgYbjgZ8NCivjgZ/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44KA44KJLOOBguOBkeOBvw0KK+OBn+OCgOOCiSzjgYLjgY3jgokNCivjgZ/jgarjgbks44KE44GZ44Gu44KKDQor44Gf44Gq44G5LOOBsuOBp+OBsuOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44KI44GX44KG44GNDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYLjgaTjgZcNCivjgZ/jgZHjgaAs44KI44GX44GTDQor44Gf44Gq44GLLOOBn+OBoOOBlw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgosNCivjgZ/jgarjgYss44Gy44Gn44KG44GNDQor44Gf44Gq44GLLOOBn+OBi+OCiOOBlw0KK+OBn+OBquOBiyzjgb7jgarjgbYNCivjgZ/jgarjgYss44GL44Gk44GNDQor44Gf44Gq44GLLOOBvuOBk+OBqA0KK+OBn+OBquOBiyzjgobjgYbjgZMNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44Gf44Gq44GLLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgajjgYrjgosNCivjgZ/jgass44Gy44KN44GTDQor44G/44Gf44GrLOOBuOOBhOOBlA0KK+OBn+OBq+OBkOOBoSzjgbLjgafjgYLjgY0NCivjga/jgaPjgajjgoos44Gy44KN44GTDQor44Gf44Gr44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OBn+OBq+OBkOOBoSzjgobjgYbjgZMNCivjgZ/jgavjgZDjgaEs44GL44Gk44Gy44GTDQor44Gf44Gr44GL44KPLOOBkeOCk+OBlw0KK+OBn+OBleOBiyzjgb7jgZPjgagNCivjgZ/jgZfjgb4s44GR44GE44GZ44GRDQor44Gf44Gm44GL44KPLOOBvuOBleOCiw0KK+OBn+OBpuOBrizjgZPjgYbjgZgNCivjgabjgonjgZjjgb4s44Gv44GY44KBDQor44Gm44KJ44G+44GILOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBpuOCieOBleOCjyzjgb7jgZPjgagNCivjgabjgonjgoTjgb4s44G/44KI44GTDQor44Gm44GX44G+LOOBiOOBpOOBvuOBlQ0KK+OBqOOBoCzjgoLjgajjgobjgY0NCivjgajjgajjgb8s44Gf44GR44Gy44GTDQor44Go44GK44KE44G+LOOChuOBjeOBsuOBkw0KK+OBqOOBjeOCjyzjgaHjgYjjgZMNCivjgbXjgY/jgoTjgb4s44GR44KT44GYDQor44Go44GP44GW44KPLOOBvuOBleOCiw0KK+OBqOOBv+OBquOBjCzjgZPjgYbjgZgNCivjgajjgb/jgZ8s44Gy44Gn44GXDQor44Go44G/44KE44G+LOOBi+OBmuOBruOCig0KK+OBleOCj+OCgOOCiSzjgZ/jgaTjgb8NCivjgajjgorjgZTjgYgs44GV44Gg44KG44GNDQor44Go44KK44Gf44GrLOOBsuOBp+OBruOCig0KK+OBqOOBleOBiyzjgZfjgoXjgYbjgZgNCivjgaTjgbzjgYQs44G+44GV44Gy44GTDQor44Gy44KJ44Gw44KE44GXLOOBqOOCguOBquOCig0KK+OBpOOBoeOBoCzjgbLjgo3jgobjgY0NCivjgaTjgaHjgZ/jgass44Gy44Gn44GNDQor44Gk44Gh44KELOOBl+OBkuOBqA0KK+OBpOOBoCzjgbLjgo3jgZcNCivjgaTjgaAs44GC44Gk44KI44GXDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBmOOBhCzjgYvjgZrjgYoNCivjgaTjgZjjgoDjgoks44Gq44KL44GoDQor44Gk44GY44KA44KJLOOBn+OBi+OBlw0KK+OBpOOBmOOBrizjgZfjgoXjgYbjgYTjgaENCivjgaTjgZjjgZXjgo8s44KG44G/DQor44Gk44GL44GgLOOBn+OBhOOBnuOBhg0KK+OBpOOBi+OBr+OCiSzjgabjgaTjgYoNCivjgaTjgYvjgoLjgags44KE44GZ44GNDQor44Gk44GL44KC44GoLOOCiOOBl+OBvw0KK+OBpOOBi+OCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjga3jgaAs44G+44GV44Gy44KNDQor44Gk44Gu44GgLOOBn+OBkeOBlw0KK+OBpOOBruOBoCzjgZHjgpPjgYTjgaHjgo0NCivjgaTjgovjgb7jgoss44Gf44GL44GXDQor44Gk44GV44GLLOOBkeOCkw0KK+OBpOOBpOOBhCzjgZ/jgYvjgZfjgZINCivjgaTjgaTjgb8s44G+44GV44Gu44KKDQor44Gk44Gk44G/LOOBvuOBleOBr+OCiw0KK+OBpOOBpOOBv+OBr+OCiSzjgZ/jgYvjgYoNCivjgYbjgaHjgaAs44G+44GT44GoDQor44GG44Gh44GgLOOBleOBoOOChuOBjQ0KK+OBr+OChOOBlyzjgZ/jgYvjgobjgY0NCivjgYbjgaHjgaAs44Gf44Gk44KEDQor44GG44Gh44GuLOOBleOBqOOBlw0KK+OBhuOBoeOChOOBvizjgYLjgoTjga4NCivjgYbjgaDjgYzjgo8s44GX44KT44GE44GhDQor44GG44GI44GgLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBoCzjgZHjgpPjgZgNCivjgYbjgYjjgaAs44Gf44GR44GXDQor44Gt44GaLOOBqOOBl+OBguOBjQ0KK+OBhuOBiOOCgOOCiSzjgZXjgajjgZcNCivjgYbjgYjjgoDjgoks44GX44KH44GG44GfDQor44GG44GI44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBhuOBiOOBrizjgZfjgpPjgoQNCivjgYbjgYjjga4s44Go44KC44G144G/DQor44GG44GI44GV44KPLOOBqOOBl+OBsuOCjQ0KK+OBhuOBiOOBpOOBvCzjgojjgZfjgZ/jgYsNCivjgYbjgYjjgaTjgY0s44KI44GX44Gm44KLDQor44GG44GR44GuLOOChuOBhuOBmeOBkQ0KK+OBhuOBvuOBr+OBlyzjgbLjgafjgbXjgb8NCivjgYbjgoHjgaAs44KE44GZ44Gf44GLDQor44GG44KB44KA44KJLOOBi+OBiuOCiw0KK+OBhuOBv+OBoCzjgZPjgYbjgY3jgaENCivjgYbjgYrjgZrjgb8s44GV44KT44G644GEDQor44GG44KJ44GfLOOBm+OCk+OBnw0KK+OBhuOBl+OBj+OBlSzjgajjgZfjgobjgY0NCivjgYbjgZnjgarjgb8s44GY44KF44KTDQor44KP44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OCj+OBoCzjgYvjgYrjgooNCivjgo/jgaAs44G/44GNDQor44KP44GgLOOBv+OBpOOBruOCig0KK+OCj+OBi+OBmyzjgZXjgajjgojjgZcNCivjgo/jgY0s44Gf44Gg44GXDQor44KP44Gf44Gq44G5LOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgajjgoLjgYLjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44Gy44GVDQor44KP44Gf44Gq44G5LOOBpuOBhOOBmA0KK+OCj+OBn+OBquOBuSzjgojjgZfjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBqA0KK+OCj+OBn+OBrOOBjSzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgazjgY0s44Gy44Gn44GKDQor44KP44Gf44KKLOOBsuOCjeOBv+OBpA0KK+OBr+OBl+OBkOOBoSzjgZjjgoXjgpPjgoQNCivjgoTjgbYs44GT44GG44GYDQor44KE44GO44Gs44G+LOOBv+OBpOOBguOBjQ0KK+OChOOBmOOBvizjgarjgYrjgY0NCivjgoTjgb7jgaAs44GX44GS44G144G/DQor44KE44G+44GgLOOCiOOBl+OBn+OBiw0KK+OChOOBvuOBoCzjgobjgYbjgZnjgZENCivjgoTjgb7jgaAs44KG44GG44GTDQor44KE44G+44GgLOOBguOBjeOBguOBpA0KK+OChOOBvuOBoCzjgYLjgY3jgokNCivjgoTjgb7jgaAs44Gh44GIDQor44KE44G+44GgLOOBsuOCjeOBkw0KK+OChOOBvuOBoCzjgYvjgZrjgb8NCivjgoTjgb7jgaAs44G+44GV44KI44GXDQor44Gy44GV44GuLOOCiuOBiw0KK+OChOOBvuOBoCzjgZXjgajjgZcNCivjgoTjgb7jgaAs44GV44KE44GLDQor44KE44G+44G144GYLOOBn+OBpOOChA0KK+OChOOBvuOBjuOCjyzjgoTjgZnjgbLjgZMNCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjga7jgorjgobjgY0NCivjgoTjgb7jgZDjgaEs44KG44GEDQor44KE44G+44GQ44GhLOOBhOOBleOBig0KK+OChOOBvuOBkOOBoSzjgabjgaTjgoQNCivjgoTjgb7jgZDjgaEs44Gf44GR44Gv44KLDQor44KE44G+44GQ44GhLOOBguOBjeOCiQ0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgoTjgb7jgYvjgo8s44KG44GN44GTDQor44KE44G+44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgYvjgarjgZMNCivjgb/jgZrjgZ/jgass44GN44G/44GKDQor44KE44G+44KC44GoLOOBv+OBqeOCig0KK+OChOOBvuOCguOBqCzjgb/jgaTjgbLjgo0NCivjgoTjgb7jgoLjgags44KI44Gu44GZ44GRDQor44KE44G+44KC44GoLOOBquOBiuOBqA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgoLjgags44GL44Gk44GYDQor44KE44G+44KC44GoLOOBi+OBmg0KK+OChOOBvuOCguOBqCzjgYvjgZrjgYLjgY0NCivjgoTjgb7jgoLjgags44Gy44Gq44GTDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBrSzjgb7jgZPjgagNCivjgoTjgb7jga0s44KE44GZ44Gy44GVDQor44KE44G+44GX44GfLOOBqOOBl+OBig0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgZUNCivjga/jgpPjgaAs44GE44GV44GKDQor44KE44G+44GG44GhLOOCiOOBl+OChA0KK+OChOOBvuOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoTjgb7jgYbjgoks44Gf44GL44GXDQor44KE44G+44GW44GNLOOBsuOCjeOBqA0KK+OChOOBvuOBluOBjSzjgYvjgZrjgojjgZcNCivjgoTjgb7jgZbjgY0s44GR44KT44GE44GhDQor44Gf44KA44KJLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZXjgajjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GL44GKDQor44KE44G+44Ge44GILOOBn+OBi+OBlw0KK+OChOOBquOBjuOBleOCjyzjgobjgb/jgZMNCivjgoTjga4s44Gf44GR44GXDQor44KE44GZ44GgLOOBsuOBp+OBjQ0KK+OChOOBmeOBr+OCiSzjgZHjgYTjgZMNCivjgZPjgZfjgoLjgags44KC44GoDQor44Gv44GO44KP44KJLOOBv+OBjeOBig0KK+OCiOOBk+OBnyzjgabjgovjgbLjgZUNCivjgojjgZPjgoTjgb4s44Gf44GR44GXDQor44KI44KC44GgLOOBguOBjeOCiQ0KK+OCiOOBquOBjCzjgZXjgajjgZcNCivjgojjga3jgaAs44Gy44KN44Gf44GRDQor44KI44Gt44KE44G+LOOBleOBoeOCiA0KK+OCiOOBreOBluOCjyzjgYjjgooNCivjgojjga3jgZbjgo8s44Go44KC44Gy44GVDQor44KI44GX44GgLOOBvuOChuOBvw0KK+OCiOOBl+OBoCzjgabjgovjgoTjgZkNCivjgojjgZfjgaAs44GL44Gk44Gy44KNDQor44KI44GX44GgLOOBvuOBleOBqA0KK+OCiOOBl+OBoCzjgYLjgY3jgbLjgZUNCivjgojjgZfjgaAs44GV44Gh44GTDQor44KI44GX44GgLOOBkeOCk+OBlA0KK+OCiOOBl+OBoCzjgY3jgojjgbLjgagNCivjgojjgZfjgZDjgaEs44Gu44G244GTDQor44KI44GX44GELOOChuOBjeOBig0KK+OCiOOBl+OBhOOBkSzjgY3jgojjgobjgY0NCivjgojjgZfjgb7jgaQs44GR44KT44Gf44KN44GGDQor44KI44GX44GuLOOBsuOBleOCiOOBlw0KK+OCiOOBl+OBrizjgZfjgZLjgYoNCivjgojjgZfjgZbjgo8s44GK44GV44KADQor44KI44Gk44Gf44GrLOOBv+OBpOOBsuOCjQ0KK+OChuOBjeOBluOBrSzjgZvjgYTjgZgNCivjgobjgoTjgb4s44KI44GX44Gy44GVDQor44Ga44GXLOOChuOBjeOBig0KK+OBguOCieOBhCzjgb7jgZXjgagNCivjgbXjgZjjgY0s44KG44GG44GE44GhDQor44Gy44KJ44GuLOOBl+OBkuOCiw0KK+OBi+OCgeOChOOBvizjgbLjgafjga7jgbYNCivjgZPjgZjjgb4s44GL44Ga44GKDQor44Gq44GL44GKLOOCgeOBkOOBvw0KK+OBhOOCj+OBi+OCjyzjgZ3jgYbjgZ/jgo3jgYYNCivjgaTjgaHjgoQs44Gf44Gk44KEDQor44GE44GY44KNLOOBk+OBhuOBmA0KK+OBj+OBqeOBhizjgajjgoLjgZMNCivjgarjgYzjgZfjgb4s44GL44Ga44Gy44GoDQor44Gv44GX44GQ44GhLOOBi+OBpOOChuOBjQ0KK+OBpOOBoeOChCzjgZHjgYTjgZMNCivjgYTjgZfjgb7jgaQs44Gy44KN44KE44GZDQor44Gv44KJ44GgLOOBsuOCjeOBn+OBiw0KK+OBv+OBmuOBrizjgbXjgb/jgYoNCivjgbvjgZfjga4s44Gv44KL44GKDQor44GC44G5LOOBl+OBkuOBruOCig0KK+OBguOBuSzjgZ/jgYvjgZMNCivjgYLjgbks44KG44Gf44GLDQor44GC44G5LOOBiOOBhOOBhOOBoQ0KK+OBguOBtuOBi+OCjyzjgb/jgZUNCivjgYLjgaDjgaEs44GR44KT44Gf44KN44GGDQor44GC44GE44GW44KPLOOBjeOCiuOBkw0KK+OBguOBmOOCjSzjgb7jgZXjgobjgY0NCivjgYLjgYvjgYQs44Go44GX44GC44GNDQor44Gf44KC44GoLOOBv+OBjeOBig0KK+OBguOBi+OBhOOBlyzjgYjjgYTjgaENCivjgYLjgYvjgZcs44G+44KG44G/DQor44GC44GN44GE44GRLOOChOOBmeOBsuOCjQ0KK+OBguOBjeOBnyzjga7jgorjgaHjgYsNCivjgYLjgY3jgoTjgb4s44KA44Gk44G/DQor44GC44G+44GM44GELOOBsuOBp+OBteOBvw0KK+OBguOBvuOBjOOBnyzjgZ/jgYvjgZcNCivjgYLjgb7jga4s44G/44G7DQor44GC44KB44G/44KELOOBi+OBpOOBvw0KK+OBguOCk+OBqeOBhizjgYvjgZrjgbLjgo0NCivjgYLjgpPjganjgYYs44Gf44GL44KG44GNDQor44GC44KT44Gp44GGLOOBoOOBhOOBlA0KK+OBguOCk+OBqeOBhizjgZfjgpPjgZQNCivjgYLjgpPjgZbjgYQs44G+44GV44Gy44GnDQor44GC44GK44GNLOOBvuOBleOBqOOBlw0KK+OBguOBiuOBjSzjgYLjgY3jgbXjgb8NCivjgYLjgYrjgoTjgY4s44GC44Gk44GoDQor44GC44GK44KE44G+LOOChuOBhuOBkw0KK+OBguOCieOBhCzjgb7jgZXjgZcNCivjgYLjgonjgYQs44Go44KC44Gq44KKDQor44GC44KJ44GNLOOBqOOBl+OBv+OBpA0KK+OBguOCieOChCzjgbLjgo3jgYLjgY0NCivjgYLjgorjgb4s44GX44KT44GE44GhDQor44GC44KK44Gf44GRLOOBm+OBhOOBmA0KK+OBguOBleOBoCzjgZ/jgZHjgYoNCivjgYLjgZXjgbIs44KG44GG44GYDQor44GC44GV44GuLOOBmOOCheOCk+OBkw0KK+OBguOBl+OBoCzjgZXjgajjgZcNCivjgYLjgZfjgYvjgo8s44GV44Go44GXDQor44Gw44GwLOOChOOBmeOChuOBjQ0KK+OBsOOBsCzjgZ/jgYvjga/jgosNCivjgbDjgbAs44GR44KT44GYDQor44Gh44GwLOOBmOOCheOCk+OBkw0KK+OBlOOBqOOBhizjgb7jgZXjgbLjgZMNCivjgaHjgofjgYYs44GI44GE44GYDQor44Gg44GE44GpLOOChuOBhuOBkw0KK+OBqeOBguOBhCzjgZPjgYbjgZgNCivjganjgYQs44Go44KC44Gy44KNDQor44G744Gd44GELOOBn+OBj+OBmA0KK+OBqeOBhCzjgYTjgZXjgYoNCivjganjgYQs44GR44KT44GE44GhDQor44GI44GM44GX44KJLOOBsuOBp+OBn+OBiw0KK+OBiOOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgYjjgbDjgoks44Gk44Go44KADQor44GI44KT44GpLOOBl+OCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgZXjgajjgZcNCivjgYLjgb7jgoos44GR44KT44GYDQor44GI44Gu44KC44GoLOOBjeOCiOOBvw0KK+OBiOOBruOCguOBqCzjgb7jgZXjgb8NCivjgYjjga7jgoLjgags44GC44GN44KJDQor44GI44Gu44KC44GoLOOBoeOBi+OCiQ0KK+OBiOOBluOBjSzjgYvjgZrjgbLjgagNCivjgbXjgZjjga/jgoks44G+44GV44Gv44KLDQor44G144GY44GELOOBn+OBi+OBlw0KK+OBteOBmOOBhCzjgZXjgaTjgY0NCivjgbLjgovjgYvjgo8s44GR44KTDQor44G144GY44GELOOBvuOBleOBsuOBkw0KK+OBteOBmOOBleOCjyzjga/jgovjgb8NCivjgbXjgZjjgZXjgo8s44Gy44KN44KG44GNDQor44Gy44GULOOBi+OBpOOChuOBjQ0KK+OBteOBmOOBnyzjgaTjgojjgZcNCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44G144GY44KP44KJLOOBqOOBiuOCiw0KK+OBteOBi+OBvyzjgoTjgZnjgobjgY0NCivjgbXjgYvjgZbjgo8s44Gf44GR44GXDQor44Gv44Gb44GM44KPLOOCiOOBhuOBmeOBkQ0KK+OBteOBj+OBoCzjgZjjgoXjgpPjgZMNCivjgbXjgY/jgoLjgags44G/44Gk44GKDQor44G144GP44KA44KNLOOBn+OBi+OBlw0KK+OBteOBj+OCjSzjgoTjgZnjgZMNCivjgbXjgY/jgZcs44Gy44KN44G/DQor44G144GP44GX44G+LOOBn+OBi+OBvw0KK+OBteOBj+OBl+OBvizjgZfjgpPjgYTjgaENCivjga/jgY7jgo/jgoks44Go44GX44GKDQor44G144GP44GX44G+LOOBguOBjeOCiQ0KK+OBteOBquOBjSzjgarjgYrjgY0NCivjgbXjgarjgY/jgbws44G144G/44GKDQor44Gv44KJ44GgLOOBv+OBruOCiw0KK+OBteOCi+OBr+OBnyzjgoLjgajjgbXjgb8NCivjgbXjgovjgYvjgo8s44G+44Gh44GTDQor44G144KL44KC44GoLOOBn+OBi+OBlw0KK+OBteOCi+OChCzjgajjgoLjgoQNCivjgbXjgZfjgb8s44Gy44KN44G/DQor44GU44GG44GgLOOBv+OBjeOBig0KK+OBhOOCiuOBiCzjgZfjgpPjgZgNCivjgYTjgZfjga/jgoks44GC44GN44KJDQor44GE44Gh44GL44KPLOOBvuOBleOChuOBjQ0KK+OBhOOBsCzjgb7jgb8NCivjgYTjgo/jgZXjgY0s44GV44GI44GTDQor44GE44Gu44GG44GILOOBguOChOOBkw0KK+OBhOOBhOOCguOCiizjgb7jgZXjgbLjgo0NCivjgYTjga/jgoks44Gb44GE44GYDQor44GE44KP44KA44KJLOOBl+OCh+OBhuOBnw0KK+OBhOOBquOBjOOBjSzjgobjgY3jgYoNCivjgYTjgZfjgZjjgb4s44GL44Ga44Gy44KNDQor44GE44Go44GGLOOBl+OCjeOBhg0KK+OBlOOCk+OBqeOBhizjgZfjgoXjgYbjgZgNCivjgZTjgajjgYYs44GZ44G/44KMDQor44GE44GX44GL44KPLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjga7jgbYNCivjgYTjgZvjgY0s44KK44GTDQor44GU44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBr+OBoCzjgbLjgafjgYLjgY0NCivjga/jgY7jgo/jgoks44G/44KP44GTDQor44Gv44GO44KP44KJLOOBqOOCguOBkw0KK+OBr+OBhOOBmOOBvizjgYLjgYTjgZMNCivjga/jgb7jgaAs44Gy44KN44GXDQor44Gv44G+44GuLOOBsuOCjeOBpOOBkA0KK+OBr+OBvuOBiuOBiyzjgZPjgZnjgZENCivjga/jgarjgaks44G/44Gu44KLDQor44Gv44Gq44GfLOOBpuOBpOOChA0KK+OBr+OCiSzjgajjgoLjgbLjgZMNCivjga/jgoks44KG44GG44GYDQor44Gv44KJLOOBn+OBkeOBlw0KK+OBr+OCiSzjgY3jgofjgYbjgZMNCivjga/jgonjgaAs44GX44KTDQor44Gv44KJ44GgLOOBn+OBkeOBlw0KK+OBr+OCieOBoCzjgYLjgY3jgbLjgagNCivjgZnjgZrjgY0s44Gf44GR44KNDQor44Gv44KJ44GMLOOBn+OBpOOChA0KK+OBr+OCieOBvyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgonjgoTjgb4s44Gu44G244Gy44GTDQor44Gv44KJ44Ge44GuLOOBruOBtuOBsuOCjQ0KK+OBr+OBm+OBuSzjgZ/jgY/jgZgNCivjgYvjga3jgZMs44Go44KC44GC44GNDQor44Gk44Gh44GgLOOCiOOBhuOBhOOBoQ0KK+OBr+OBl+OCguOBqCzjgorjgYgNCivjga/jgZfjgoLjgags44G144G/44Gy44KNDQor44Gv44GX44KC44GoLOOBi+OBquOBiA0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44Gf44GL44GC44GNDQor44Gv44GX44KC44GoLOOBsuOBp+OBjQ0KK+OBr+OBl+OCguOBqCzjgbLjgafjgY0NCivjga/jgZfjgoLjgags44KI44GX44Gy44GTDQor44Gv44GfLOOBkeOBhOOBkw0KK+OBr+OBo+OBqOOCiizjgbLjgafjgYLjgY0NCivjga/jgaPjgajjgoos44G+44GT44GoDQor44Gv44Gj44Go44KKLOOBm+OBhOOBmA0KK+OBr+OChOOBi+OCjyzjgY3jgojjgZcNCivjga/jgoTjgYvjgo8s44Gy44Gn44Gv44KLDQor44Gv44KE44GV44GLLOOCiOOBl+OBi+OBmg0KK+OBr+OChOOBleOBjSzjgZvjgYTjgZQNCivjga/jgoTjgZcs44Go44GX44Gy44GTDQor44Gv44KE44GXLOOBn+OBi+OCiOOBlw0KK+OBr+OChOOBlyzjgZ/jgYvjgarjgooNCivjga/jgoTjgZcs44KE44GZ44GNDQor44Gv44KE44GXLOOBguOBjeOCiQ0KK+OBr+OChOOBl+OBoCzjgZHjgpPjgZ7jgYYNCivjgbLjgbMs44GL44Ga44Gu44G2DQor44Gy44GM44GXLOOChOOBmeOBsuOCjQ0KK+OBsuOBjOOBlyzjgYvjgZrjgYoNCivjgbLjgZDjgaEs44GT44GG44GE44Gh44KN44GGDQor44Gy44GY44GL44GfLOOBkeOCk+OBmA0KK+OBsuOBmOOChCzjgojjgZfjgYoNCivjgbLjgarjgYws44Gf44GR44GXDQor44Gy44KJ44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBsuOCieOBrizjgbLjgo3jgZMNCivjgbLjgonjga4s44GE44Gf44KLDQor44Gy44KJ44GuLOOBn+OBoOOBig0KK+OBsuOCieOBiizjgZ/jgYvjgbLjgagNCivjgbLjgonjgZfjgb4s44Gq44GK44GNDQor44Gy44KJ44KE44G+LOOBqOOBl+OCjeOBhg0KK+OBsuOCieOChOOBmSzjgbLjgajjgZcNCivjgbLjgorjgY0s44GR44KT44GE44Gh44KNDQor44Gy44KN44G+44GVLOOCj+OBn+OCiw0KK+OBsuOCjeOCguOBqCzjgZfjgpPjgZgNCivjgbLjgo3jgYrjgYss44G+44Gq44G2DQor44Gy44KN44GbLOOChuOBv+OBkw0KK+OBsuOCjeOBmyzjgb7jgaTjgZ/jgo3jgYYNCivjgYbjgoHjgaAs44KK44KH44GG44GE44GhDQor44G744KT44GgLOOBleOBquOBiA0KK+OBu+OCk+OBqSzjgZ/jgZHjgZcNCivjgbvjgorjgoLjgags44KE44GZ44KG44GNDQor44G744KK44GuLOOBi+OBmuOBl+OBkg0KK+OBu+OCiuOBhuOBoSzjgZ/jgYvjga0NCivjgbvjgZXjgYss44GC44GN44GTDQor44G744GX44GuLOOBvuOBk+OBqA0KK+OBu+OBl+OChOOBvizjgb/jgY7jgbXjgb8NCivjgbvjgZ3jgYvjgo8s44Gm44Gk44KEDQor44G744Gd44GL44KPLOOCiOOBl+OBsuOCjQ0KK+OBu+OBneOBi+OCjyzjgZfjgZLjgYoNCivjgbvjgZ3jgoQs44Gy44KN44GXDQor44GE44Gw44KJ44GNLOOBruOBtuOBig0KK+OBhOOBoeOBr+OCiSzjgbLjgZXjgb/jgaQNCivjgYTjgaHjga/jgoks44Gf44GL44GXDQor44GE44Gh44Gv44KJLOOBruOBtuOBkw0KK+OBhOOBoeOBi+OCjyzjgZHjgpPjgYTjgaENCivjgYTjgaHjga7jgZss44GV44Go44GXDQor44GE44GgLOOBn+OBkeOBlw0KK+OBhOOBp+OBkOOBoSzjgYvjgZrjgbLjgagNCivjgYTjgaks44G+44GV44GXDQor44GE44GM44KJ44GXLOOBi+OBpOOBruOBtg0KK+OBhOOBjOOCieOBlyzjgobjgY3jgbLjgZMNCivjgYTjgYzjgonjgZcs44Gy44KN44GXDQor44GE44GE44GgLOOBsuOCjeOBig0KK+OBhOOBhOOBoCzjgYvjgaTjgajjgZcNCivjgYTjgYTjgZjjgb4s44GT44GG44GYDQor44GE44GR44GgLOOCiuOCh+OBhg0KK+OBhOOBkeOBoCzjgajjgoLjgb8NCivjgYTjgZHjgaAs44Go44KC44G/DQor44GE44GR44GgLOOCiOOBhuOBkw0KK+OBhOOBvuOBhCzjgZPjgYbjgY0NCivjgYTjgb7jgYTjgZrjgb8s44GR44GE44GTDQor44GE44G+44GE44Ga44G/LOOBv+OCjw0KK+OBhOOBvuOCgOOCiSzjgYrjgZXjgoANCivjgYTjgb7jgoDjgoks44G/44Gu44KLDQor44GE44KC44KTLOOBi+OBmuOChuOBjQ0KK+OBhOOBquOBoCzjgb7jgZnjgb8NCivjgYTjgarjgYzjgY0s44GL44Ga44KEDQor44GE44Gq44GM44GNLOOBv+OBpOOChA0KK+OBhOOBquOCgOOCiSzjgZ/jgYvjgZcNCivjgYTjgarjgoDjgoks44Go44KC44Gu44KKDQor44GE44GuLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBhOOBruOBi+OCjyzjgYLjgZnjgZMNCivjgYTjga7jgb7jgZ8s44GL44Ga44Gy44GoDQor44GE44Gu44GG44GILOOBsuOCjeOBi+OBmg0KK+OBhOOBruOBhuOBiCzjgZXjgajjgZcNCivjgYTjga7jgYbjgYgs44GX44G7DQor44GE44Gu44GG44GILOOChOOBmeOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjgYTjga7jgYbjgYgs44KG44GG44GfDQor44GE44Gu44GG44GILOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOBrOOBhCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYTjgazjgZfjgb4s44G+44KG44G/DQor44GE44KK44GILOOBvuOBleOBruOCig0KK+OBhOOBleOBiyzjgZfjgZLjgosNCivjgYTjgZfjgbAs44Gh44Gy44KNDQor44GE44GX44Gw44GXLOOBoOOBhOOBmeOBkQ0KK+OBhOOBl+OBsOOBlyzjgbLjgafjgY0NCivjgYTjgZfjgaAs44Gy44KN44G/44GkDQor44GE44GX44GgLOOBsuOCjeOBlw0KK+OBhOOBl+OBoCzjgYvjgaTjgbLjgo0NCivjgYTjgZfjgaAs44GR44GE44GE44GhDQor44GE44GX44GM44G/LOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBkOOCjSzjgZPjgYbjgZgNCivjgYTjgZfjga/jgoks44G+44KK44GTDQor44GE44GX44GELOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBhCzjgarjgYrjgb8NCivjgYTjgZfjgYQs44Gu44G844KLDQor44GE44GX44GELOOBm+OBpOOBkw0KK+OBhOOBl+OBhCzjgZ/jgaDjgZcNCivjgYTjgZfjgYQs44Gf44GL44Gv44KLDQor44GE44GX44GL44KPLOOBqOOBl+OBig0KK+OBhOOBl+OBvuOCiyzjgaTjgojjgZcNCivjgYvjgo/jgZos44KI44GG44GE44GhDQor44GE44GX44Ga44GLLOOChuOBjeOBig0KK+OBhOOBn+OChCzjga7jgorjgbLjgZUNCivjgYTjgYTjgaAs44GC44GN44Gy44KNDQor44GE44Go44GGLOOBsuOCjeOBv+OBoQ0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgYTjgajjgYYs44GE44GP44GKDQor44GE44Go44GGLOOBi+OBmuOChA0KK+OBhOOBqOOBhizjgZfjgofjgYbjgZMNCivjgYTjgajjgYYs44GL44Ga44Gy44KNDQor44GE44Go44GGLOOBmOOCheOCkw0KK+OBhOOBqOOBhizjgb7jgZPjgagNCivjgYTjgajjgYYs44GK44GV44KADQor44GE44Go44GGLOOCiOOBl+OBvuOBlQ0KK+OBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgYTjgajjgYYs44G+44GV44G/DQor44GE44Go44GGLOOBsuOCjeOBguOBjQ0KK+OBhOOBqOOBhizjgZ/jgb7jgY0NCivjgYTjgajjgYYs44GN44KI44Gf44GLDQor44GE44Go44GGLOOBvuOBleOBteOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgYTjgajjgYYs44KG44GN44GKDQor44GE44Go44GGLOOBiOOBhOOBmA0KK+OBhOOBqOOBhizjgb/jgbvjgZMNCivjgYTjgo/jgYQs44Gf44GL44KG44GNDQor44GE44KP44GELOOBi+OBmuOBl+OBkg0KK+OBhOOCj+OBvyzjgY3jgojjgZcNCivjgYTjgo/jgoDjgoks44KI44GX44Gf44GLDQor44GE44KP44Gq44GMLOOBquOBiuOBkw0KK+OBhOOCj+OBiizjgYvjgZrjgYLjgY0NCivjgYTjgo/jgZXjgY0s44KK44KF44GG44GTDQor44GE44KP44GfLOOBjeOCiOOBkw0KK+OBhOOCj+OBnyzjgb/jgaTjgbLjgo0NCivjgYTjgo/jgZ8s44GX44KT44GYDQor44GE44Ga44G/LOOBruOBnuOCgA0KK+OBmOOCk+OBsCzjgaTjga3jga7jgooNCivjga7jgYbjgaEs44KK44GIDQor44KJ44GPLOOCiOOBl+OBruOCig0KK+OBi+OBjOOBvyzjgbLjgo3jgZcNCivjgYvjgYzjgo8s44GR44GE44GfDQor44GL44GS44KE44G+LOOBn+OBvuOBjQ0KK+OBi+OBhCzjgZjjgoXjgpMNCivjgYvjgZjjgoLjgags44Gf44GP44KEDQor44GL44GY44KP44KJLOOBm+OBhOOBmA0KK+OBj+OCiuOBr+OCiSzjgYjjgYTjgZgNCivjgYvjgY3jgoDjgoks44GY44KF44KTDQor44GL44GN44Gu44GNLOOBn+OBi+OBguOBjQ0KK+OBi+OBjeOBhuOBoSzjgbLjgo3jgobjgY0NCivjgYvjgY3jgZbjgY0s44GT44GG44GYDQor44GL44GTLOOBqOOBl+OBsuOBkw0KK+OBi+OCgeOBl+OBvizjgaDjgYTjgZnjgZENCivjgYvjgb/jgYjjgZks44GI44GE44GE44GhDQor44GL44G/44GP44KJLOOBsuOCjeOBlw0KK+OBi+OBv+OCgOOCiSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjgb/jgZ/jgY0s44G+44GV44GYDQor44GL44G/44KI44GX44GL44KPLOOBvuOBleOChuOBjQ0KK+OBi+OCkyzjgZ/jgY/jgoQNCivjgYvjgarjgYQs44Go44GX44GL44GaDQor44GL44KT44Gw44KE44GXLOOBhOOBoeOCjeOBhg0KK+OBi+OCk+OBoCzjgojjgZfjgbLjgagNCivjgYvjga3jgZMs44Gf44GL44KG44GNDQor44GL44Gt44GTLOOChOOBmeOChuOBjQ0KK+OBi+OBreOBnyzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44G+44KG44G/DQor44GL44KK44GuLOOBsuOCjeOBlw0KK+OBi+OBleOBvyzjgYvjgarjgYgNCivjgYvjgZXjgarjgb8s44Gf44GL44GoDQor44GL44GbLOOBvuOCguOCiw0KK+OBi+OBmeOBjCzjgbLjgo3jgZcNCivjgYvjgZnjgoQs44G+44GV44Gq44KKDQor44GL44Gf44GK44GLLOOBruOCiuOBkw0KK+OBi+OBqOOBhizjgarjgYrjgZMNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBvuOBleOChuOBjQ0KK+OBi+OBqOOBhizjga7jgorjgYLjgY0NCivjgYvjgajjgYYs44Gf44Gg44GC44GNDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44Go44GGLOOBguOBjeOBsuOBqA0KK+OBi+OBqOOBhizjgZjjgo3jgYYNCivjgYvjgaTjgb7jgZ8s44GP44G/DQor44GL44Gk44KJLOOBvuOBleOBjQ0KK+OBi+OCj+OBuSzjgojjgZfjgobjgY0NCivjgYvjgo/jgaAs44Gf44GR44GXDQor44GL44KP44GQ44GhLOOBsuOBp+OBjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgZ/jgYsNCivjgYvjgo/jgZDjgaEs44GE44GP44GTDQor44GL44KP44Gv44GfLOOBi+OBiuOCig0KK+OBi+OCj+OBi+OBvyzjgYvjgZrjgojjgZcNCivjgYvjgo/jgYvjgb8s44GR44KT44GE44GhDQor44KE44GY44G+LOOBv+OBpOOCiA0KK+OBi+OCj+OCguOBqCzjgaTjgojjgZcNCivjgYvjgo/jgoDjgoks44Gy44Gn44GC44GNDQor44GL44KP44KA44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgYvjgo/jgoDjgoks44G+44KKDQor44GL44KP44GuLOOBvuOBleOBsuOBkw0KK+OBi+OCj+OBrizjgb7jgZXjgYvjgaQNCivjgYvjgo/jgZXjgY0s44GX44GS44KG44GNDQor44GL44KP44GbLOOBkeOCk+OBmA0KK+OBi+OCj+OBl+OBvizjgajjgZfjgoQNCivjgYvjgo/jgZfjgb4s44KI44GX44Gv44KLDQor44GL44KP44GX44G+LOOBsuOBp+OBjQ0KK+OBi+OCj+OBl+OBvizjgoTjgZnjga7jgbYNCivjgY3jgaAs44G/44Gu44KLDQor44GN44GP44GhLOOBi+OBmuOChA0KK+OBjeOBj+OBoSzjgZ/jgYvjgbLjgacNCivjgoTjgb7jgoLjgags44KE44GZ44Gy44KNDQor44GC44GN44KI44GXLOOChOOBmeOBsuOCjQ0KK+OBjeOBj+OBoSzjgb7jgoLjgosNCivjgY3jgY/jgaEs44Gf44Gk44KEDQor44GN44GP44GhLOOBv+OBpOOCiw0KK+OBjeOBj+OBoSzjgYLjgY3jgZMNCivjgY3jgoDjgoks44G144G/44Gy44GTDQor44GN44KA44KJLOOBvuOBleOBsuOBkw0KK+OBjeOCgOOCiSzjgYLjgY3jgbLjgZMNCivjgY3jgoDjgoks44GC44Gk44GXDQor44GN44KA44KJLOOBsuOCjeOBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgY0NCivjgY3jgoDjgoks44G/44Gu44KLDQor44GL44Go44GGLOOBl+OCh+OBhuOBmA0KK+OBjeOBquOBmyzjgobjgYbjgZgNCivjgY3jga0s44G+44GV44GTDQor44GN44GuLOOBguOBjQ0KK+OBjeOBrizjgYvjgZrjgbLjgo0NCivjgY3jga7jgZfjgZ8s44GR44GE44GfDQor44GN44KJLOOCiOOBhuOBkw0KK+OBjeOBl+OCguOBqCzjgajjgYrjgosNCivjgY3jgZ/jgbDjgZ/jgZEs44GC44GN44GKDQor44GN44Gf44Gw44Gf44GRLOOBn+OBi+OBsuOBkw0KK+OBjeOBn+OBjOOCjyzjgYrjgZXjgoANCivjgY3jgZ/jgYzjgo8s44Gh44GL44GTDQor44GN44Gf44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgoHjgZDjgb8NCivjgY3jgZ/jgoTjgb4s44GI44GE44GYDQor44GN44KI44Gq44KKLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZcNCivjgZPjgbDjgoTjgZcs44Go44GX44Gy44KNDQor44GT44Gw44KE44GXLOOBguOBjeOBkw0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgYTjgajjgYYs44GX44KT44GYDQor44GT44KT44GuLOOCiOOBhuOBhOOBoQ0KK+OBk+OCk+OBrizjgZ/jgYvjgb/jgaQNCivjgZPjgpPjga4s44Gy44KN44GXDQor44GT44KT44GuLOOBi+OBmuOBguOBjQ0KK+OBk+OBhOOBkSzjgajjgoLjgbXjgb8NCivjgZPjgZjjgb4s44KP44Gf44KLDQor44GT44GP44GX44KH44GGLOOBvuOBleOCiw0KK+OBk+OBvuOBjSzjgYvjgZrjgoQNCivjgb7jgYvjgbks44GV44G244KN44GGDQor44GT44G+44GkLOOBn+OBkeOBlw0KK+OBk+OBvuOBpCzjgbLjgo3jgYgNCivjgZPjgpPjgaks44GX44KTDQor44GT44KT44GpLOOBn+OBj+OBvw0KK+OBk+OCk+OBqSzjgb7jgZXjgobjgY0NCivjgZPjgZfjgbAs44G/44GNDQor44KI44GT44GILOOChOOBmeOBruOCig0KK+OBk+OBpuOBjOOCjyzjgb7jgZXjga7jgooNCivjgZPjgpPjga4s44GL44Ga44GC44GNDQor44GT44KE44G+LOOCjOOBhOOBkw0KK+OBk+OChOOBvizjgoLjgajjgY/jgasNCivjgZPjgoTjgb4s44Gy44KN44Gf44GLDQor44GT44GW44GZLOOBqOOBl+OBruOCig0KK+OBj+OBoeOBhOOBlyzjgYvjgZrjgajjgZcNCivjgY/jgY7jgb/jgoQs44KK44KF44GG44GZ44GRDQor44GP44GY44KJ44GELOOBguOBpOOBlw0KK+OBj+OBvuOBruOBv+OBqSzjgbLjgo3jgZcNCivjgY/jgb7jgZbjgY0s44Go44KC44GNDQor44GP44KM44G+44GkLOOBn+OBi+OBsuOBpw0KK+OBj+OCiuOBjSzjgb7jgZXjgobjgY0NCivjgY/jgorjgoTjgb4s44Go44GX44KN44GGDQor44GP44KK44KE44G+LOOBsuOCjeOBlw0KK+OBj+OCjeOBuSzjgarjgYrjgagNCivjgY/jgo3jgZXjgo8s44Go44KC44GC44GNDQor44GP44KN44GV44KPLOOChOOBmeOChuOBjQ0KK+OBj+OCiuOCheOBhizjgojjgZfjgYgNCivjgY/jgZXjga4s44GL44Gk44KG44GNDQor44GP44KP44Gv44KJLOOBmOOCheOCkw0KK+OBj+OBmuOBrizjgojjgZfjgZ/jgYsNCivjgY3jgoXjgYbjgaAs44Gf44GP44KEDQor44G+44G244GhLOOBkeOCk+OBhOOBoQ0KK+OBvuOBoeOBnyzjgb7jgZXjgY0NCivjgb7jgYjjgaAs44KI44GG44GE44GhDQor44G+44GI44GE44GILOOBguOBjeOBteOBvw0KK+OBvuOBiOOBi+OCjyzjgaHjgYLjgY0NCivjgb7jgb7jgaAs44Gy44KN44GXDQor44G+44Gq44G5LOOBsuOCjeOBn+OBiw0KK+OBvuOBquOBuSzjgYvjgZrjgYoNCivjgb7jgovjgYTjgaEs44G+44GV44KG44GNDQor44G+44KL44Gf44GrLOOBn+OBi+OBsuOBpw0KK+OBvuOCi+OChOOBvizjgZ/jgYvjgZMNCivjgb7jgZXjgYrjgYss44Gf44GL44KG44GNDQor44G+44GZ44GgLOOBn+OBpOOBvw0KK+OBvuOBmeOBoCzjgaTjgojjgZcNCivjgb7jgZnjgaAs44KI44GX44G244G/DQor44G+44GZ44GgLOOChuOBjeOBkw0KK+OBvuOBmeOBoCzjgbLjgo3jgYvjgZoNCivjgb7jgaTjgbDjgoks44GT44GG44Ge44GGDQor44G+44Gk44GgLOOBi+OBpOOChA0KK+OBvuOBpOOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgaDjgYTjgoks44Go44GX44G144G/DQor44G+44Gk44GI44GgLOOBguOChuOBvw0KK+OBvuOBpOOBhCzjgbLjgafjgZcNCivjgb7jgaTjgYQs44Gy44KN44GNDQor44G+44Gk44KC44GoLOOBruOBtuOBig0KK+OBvuOBpOOCguOBqCzjgZvjgYTjgYTjgaENCivjgb7jgaTjgoLjgags44GL44Ga44Gy44KNDQor44G+44Gk44KC44GoLOOBjeOCiOOBi+OBmg0KK+OBvuOBpOOCguOBqCzjgY3jgofjgYbjgZMNCivjgb7jgaTjgoLjgags44KI44GX44GNDQor44G+44Gk44KC44GoLOOBquOCiuOBguOBjQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jga7jgooNCivjgb7jgaTjgoLjgags44GR44KTDQor44G+44Gk44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBvuOBpOOCguOBqCzjgZHjgpMNCivjgb7jgaTjgoLjgags44Gg44GEDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOCgOOCiSzjgY/jgb8NCivjgb7jgaTjgarjgYws44GR44KT44GY44KN44GGDQor44G+44Gk44GuLOOBi+OBmuOBqA0KK+OBvuOBpOOBiizjgorjgoXjgYbjgYTjgaENCivjgb7jgaTjgYos44Gf44GL44GKDQor44G+44Gk44GK44GLLOOBn+OBkeOBlw0KK+OBvuOBpOOBiuOBiyzjgYvjgZrjga7jgooNCivjgb7jgaTjgYrjgYss44Gf44Gg44GC44GNDQor44G+44Gk44GK44GLLOOBsuOCjeOBlw0KK+OBvuOBpOOBiuOBiyzjgYLjgaTjgZcNCivjgb7jgaTjgZfjgb4s44GN44G/44GKDQor44G+44Gk44Gf44GrLOOBguOChA0KK+OBvuOBpOOChOOBvizjgZPjgYbjgZ/jgo3jgYYNCivjgb/jgaHjgoLjgags44G+44KG44G/DQor44G/44GI44GNLOOBn+OBj+OCjeOBhg0KK+OBv+OBi+OBvyzjgYvjgZrjgb8NCivjgb/jgYvjgb8s44KI44GX44Gf44GLDQor44G/44Gq44GM44KPLOOBpOOCiOOBlw0KK+OBv+OBquOBi+OCjyzjgZfjgofjgYbjgZMNCivjgb/jgZfjgb4s44GL44Ga44G/DQor44G/44GX44G+LOOBl+OBruOBtg0KK+OBv+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgb/jgZ/jgaEs44GT44GG44GYDQor44G/44Gk44GgLOOBquOBiuOBjQ0KK+OBv+OBpOOBr+OBlyzjgZjjgoXjgpMNCivjgb/jgaTjgYQs44Gy44KN44GXDQor44G/44Gk44KC44GoLOOBjeOCiOOBvw0KK+OBv+OBhuOCiSzjgY3jgofjgYbjgZgNCivjgb/jgYbjgoks44G+44GV44Gy44KNDQor44G/44KE44G5LOOBguOBjeOCiQ0KK+OBv+OChOOBoSzjgb7jgZXjgobjgY0NCivjgb/jgoTjgZjjgb4s44GC44GN44Gu44KKDQor44Gw44KTLOOBvuOBquOBtg0KK+OBv+OChOOCguOBqCzjgajjgZfjgYLjgY0NCivjgojjgZPjgYgs44GT44GG44Ge44GGDQor44G/44KE44GV44GLLOOBkeOBhOOBhOOBoQ0KK+OBv+OChOOBnyzjgbLjgo3jgobjgY0NCivjgb/jgoTjgZ8s44GL44Ga44GKDQor44G/44KE44GG44GhLOOBvuOBleOBsuOCjQ0KK+OBhuOBoeOChOOBvizjgb/jgY3jgZMNCivjgZXjgYvjgYQs44KK44KH44GG44GZ44GRDQor44G/44KE44GW44KPLOOBqOOBl+OBguOBjQ0KK+OBv+OBnuOBtuOBoSzjgYjjgYTjgZMNCivjgb/jgZ7jgZDjgaEs44GC44GN44KJDQor44G/44Ge44GQ44GhLOOBhOOBmuOBvw0KK+OBv+OBmuOCguOBqCzjgYLjgaTjgbLjgZMNCivjgb/jgZrjga4s44G+44GV44KI44GXDQor44G/44Ga44GuLOOBvuOBleOChuOBjQ0KK+OBv+OBmuOBrizjgobjgYbjgZgNCivjgb/jgZrjgZfjgb4s44KG44GN44GKDQor44G/44Ga44GfLOOChuOBn+OBiw0KK+OBv+OBmuOBn+OBqyzjgbLjgZXjgagNCivjgoLjgY4s44GL44Ga44Gu44KKDQor44KC44GOLOOCguOChuOCiw0KK+OCguOBjizjgbLjgo3jgZcNCivjgoLjgoLjgZss44Gg44GE44GZ44GRDQor44KC44KT44G+LOOChuOBhuOBmA0KK+OCguOCiizjgozjgYTjgZMNCivjgoLjgoos44GR44GE44GZ44GRDQor44KC44KKLOOBkeOCk+OBhOOBoQ0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgoLjgoos44KK44GLDQor44KC44KKLOOBpOOBqOOCgA0KK+OCguOCiuOCguOBqCzjgobjgY3jgbLjgo0NCivjgoLjgorjga4s44KI44GG44GZ44GRDQor44KI44GX44GgLOOBquOBiuOBteOBvw0KK+OCguOCiuOBnyzjgbLjgafjga7jgbYNCivjgoLjgorjgZ8s44GL44Ga44Gy44GVDQor44KC44KK44GfLOOBi+OBpOOBvw0KK+OCguOCiuOBnyzjgojjgZfjgoQNCivjgoLjgorjgZ8s44GX44GS44GKDQor44KC44KK44KP44GNLOOBn+OBj+OBig0KK+OCguOCjSzjgojjgZfjgo3jgYYNCivjgoLjgZ/jgYQs44Gy44KN44GXDQor44KC44Go44Gw44KE44GXLOOBleOBqOOCiw0KK+OCguOBqOOBr+OBlyzjgZfjgZLjgb7jgZUNCivjgoLjgajjgoTjgb4s44G+44GV44Gu44KKDQor44KC44Go44GW44KPLOOChuOBhuOBmA0KK+OCgOOBi+OCjyzjgYTjgaTjgZMNCivjgoDjgarjgYvjgZ8s44G144G/44GTDQor44KA44KJ44GL44G/LOOBsuOCjeOBguOBjQ0KK+OCgOOCieOBi+OBvyzjgojjgZfjgY0NCivjgoDjgonjgYvjgb8s44Gy44KN44KG44GNDQor44KA44KJ44GL44G/LOOChOOBmeOBkw0KK+OCgOOCieOBi+OBvyzjgYLjgY3jgbLjgZUNCivjgoDjgonjgYvjgo8s44G+44GV44GTDQor44KA44KJ44Gq44GLLOOBvuOChuOBkw0KK+OCgOOCieOBnyzjgajjgoLjga7jgooNCivjgoDjgonjgZ8s44Gy44KN44GNDQor44KA44KJ44KE44G+LOOBkeOCk+OBmA0KK+OCgOOCieOChOOBvizjgbLjgo3jgZcNCivjgoDjgo3jga/jgZcs44GT44GG44GYDQor44KA44Go44GGLOOBi+OBiuOCiw0KK+OCgOOBqOOBhizjgYLjgY3jgZMNCivjgarjgbAs44Gy44KN44KG44GNDQor44Gq44GM44GELOOBvuOBleOCiw0KK+OBquOBjOOBhCzjgarjgYrjgYLjgY0NCivjgarjgYzjga4s44GL44Gk44KEDQor44Gq44GM44GuLOOBn+OBvuOBvw0KK+OBquOBjOOBiizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44GL44Ga44Gy44KNDQor44Gq44GM44GK44GRLOOBleOBqOOBlw0KK+OBquOBjOOBiuOBlSzjgYLjgY3jgbLjgo0NCivjgarjgYzjgZfjgb4s44GL44Gk44KEDQor44Gq44GM44GX44G+LOOBj+OBvw0KK+OBquOBjOOBnyzjgb/jgY0NCivjgYrjgYrjgbAs44GV44Go44GXDQor44Gq44GM44GfLOOBl+OCk+OBmA0KK+OBquOBjOOBnyzjgZfjgofjgYbjgbjjgYQNCivjgarjgYzjgZ/jgass44Gk44KI44GXDQor44Gq44GE44Go44GGLOOChOOBmeOBruOCig0KK+OBquOBi+OBoSzjgojjgZfjga/jgosNCivjgarjgYvjgaAs44KI44GX44KG44GNDQor44Gq44GL44Gg44GELOOChuOBhuOBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgarjgYrjgobjgY0NCivjgarjgYvjgYzjgo8s44KI44GX44KG44GNDQor44Gq44GL44GM44KPLOOBguOBpOOBlw0KK+OBquOBi+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjga/jgoks44GY44KF44KTDQor44Gq44GL44GELOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBhCzjgZfjga4NCivjgarjgYvjgZjjgb4s44Gf44GL44GXDQor44Gq44GL44GY44G+LOOBk+OBhuOBmA0KK+OBquOBi+OCgOOCiSzjgZfjgoXjgYbjgZQNCivjgarjgYvjgoDjgoks44G+44GV44KG44GNDQor44GN44G/44Gy44KJLOOBv+OBiw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgZUNCivjgarjgYvjgoDjgoks44GT44GG44GYDQor44Gq44GL44KA44KJLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgobjgY0NCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44Gq44GL44KA44KJLOOBvuOBleOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgY0NCivjgarjgYvjgoDjgoks44G/44GNDQor44Gq44GL44KA44KJLOOBqOOCguOBig0KK+OBquOBi+OBq+OBlyzjgYTjgZrjgosNCivjgarjgYvjgavjgZcs44Gf44GL44Gy44KNDQor44Gq44GL44GuLOOChuOBhuOBkw0KK+OBquOBi+OBrizjgoTjgZnjgYLjgY0NCivjgarjgYvjga4s44Gm44Gk44KEDQor44Gq44GL44GuLOOBi+OBmuOBruOCig0KK+OBquOBi+OBrizjgYLjgaTjgZcNCivjgarjgYvjgYos44GC44GN44GTDQor44Gq44GL44GV44GPLOOBl+OCh+OBhuOBn+OBpA0KK+OBquOBi+OBmyzjgbLjgo3jgZ/jgYsNCivjgarjgYvjgZ8s44GP44KL44G/DQor44Gq44GL44GfLOOBsuOCjeOBvw0KK+OBquOBi+OBnyzjgoTjgZnjgbLjgo0NCivjgarjgYvjgZ/jgZEs44Gf44GP44GKDQor44Gq44GL44KE44G+LOOBteOBv+OBig0KK+OBquOBv+OBjSzjgZHjgYTjgZcNCivjgarjgarjgZXjgo8s44Gq44G/44GYDQor44Gq44KT44GwLOOBoOOBhOOBmeOBkQ0KK+OBquOCk+OCguOBjyzjgYjjgb/jgZMNCivjga3jgoLjgags44Gq44Gk44GTDQor44Gt44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBq+OBhCzjgojjgZfjgZMNCivjgavjgYTjgacs44Gy44Gn44Gk44GQDQor44Gr44GE44GP44KJLOOBsuOBp+OChA0KK+OBq+OBhOOBmuOBvizjgZ/jgYTjgaHjgo3jgYYNCivjgavjgYvjgb8s44GC44GN44KJDQor44Gr44GX44Gw44KE44GXLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OBoCzjgojjgZfjgoQNCivjgavjgZfjga/jgoks44GX44GN44GTDQor44Gr44GX44Gv44KJLOOBleOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgavjgZfjgYvjgZws44GL44Ga44Gu44KKDQor44Gr44GX44G/44KELOOBleOBqOOBlw0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgavjgZfjgoDjgoks44GN44KP44KADQor44Gr44GX44KE44G+LOOBsuOBqOOBlw0KK+OBq+OBl+OChOOBvizjgoLjgajjgYLjgY0NCivjgavjgaPjgZ8s44GL44Gk44GC44GNDQor44Gr44KPLOOBjeOCiOOBlw0KK+OBqOOBhuOBlOOBhizjgb7jgarjgbYNCivjgavjgo8s44GL44Gk44KEDQor44Gu44G244Gv44KJLOOBk+OBhuOBmA0KK+OBiuOBjOOCjyzjgobjgYbjgZMNCivjga7jgYzjgb8s44GK44GV44KADQor44Gu44GM44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBruOCguOBqCzjgb/jgYsNCivjga7jgoDjgoks44G+44Gq44G2DQor44Gu44KA44KJLOOBn+OBi+OBsuOCjQ0KK+OBruOBnuOBiCzjga/jgZjjgoENCivjgazjgb7jgZ8s44Gm44GkDQor44GK44Gg44GY44G+LOOBiOOCig0KK+OBiuOBiuOBjOOBiOOCiizjgajjgYrjgosNCivjgYrjgYzjgZ8s44Gy44Gn44GNDQor44GK44GM44KPLOOBl+OBkuOCiw0KK+OBiuOBjOOCjyzjgZ/jgZHjgYoNCivjgYrjgYrjgY4s44Gf44GR44GXDQor44GK44GO44GP44G8LOOCiOOBhuOBmOOCjeOBhg0KK+OBiuOBlCzjgajjgoLjgY0NCivjgYrjgZDjgoks44Gy44KN44KG44GNDQor44GK44GK44GwLOOBqOOCguOBsuOCjQ0KK+OBiuOBiuOBsOOChOOBlyzjgojjgorjgZMNCivjgYrjgYrjgYgs44KI44GG44GE44GhDQor44GK44GK44GM44G+LOOBk+OBhuOBhOOBoQ0KK+OBiuOBr+OBlyzjgarjgYrjgY0NCivjgYrjgYrjgYTjgZcs44GR44KT44GYDQor44GK44GK44GL44KPLOOChOOBmeOBsuOBkw0KK+OBiuOBiuOBjeOBqSzjgb7jgZXjgYoNCivjgYrjgYrjgY/jgbws44Gy44KN44KG44GNDQor44GK44GK44GP44G8LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOBj+OBvizjgb7jgZPjgagNCivjgYrjgb4s44G+44KC44KLDQor44GK44G+44GILOOCgOOBpOOCjeOBhg0KK+OBiuOBvuOBiCzjgZ/jgYvjgZcNCivjgYrjgYrjgoLjgoos44Go44KC44Gy44KNDQor44GK44GK44KC44KKLOOBv+OBpOOCiOOBlw0KK+OBiuOBiuOCguOCiizjgarjgYrjgY0NCivjgYrjgYrjgoLjgoos44Gy44KN44GNDQor44GK44GK44KC44KKLOOBvuOBleOChOOBmQ0KK+OBiuOBiuOCguOBqCzjgb/jgaTjgosNCivjgYrjgYrjgavjgZcs44GC44GE44GTDQor44GK44GK44Gr44GXLOOBkeOCk+OBmA0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgabjgosNCivjgYrjga4s44GC44GN44KJDQor44GK44GK44Gs44G+LOOBsuOCjeOBjQ0KK+OBiuOBiuOBleOBiyzjgorjgZUNCivjgYrjgYrjgZXjgo8s44Gf44GL44Gy44KNDQor44GK44GK44GV44KPLOOBmeOBv+OBkw0KK+OBiuOBl+OBvizjgZ/jgYvjgZcNCivjgYrjgZfjgo0s44GX44KT44GE44GhDQor44GK44GK44GfLOOBguOBleOBkw0KK+OBiuOBiuOBnyzjgYLjgaTjgYoNCivjgYrjgYrjgZ8s44Gy44Gn44KG44GNDQor44GK44GK44GfLOOBvuOBleOBvw0KK+OBiuOBiuOBnyzjgoDjga3jgoTjgZkNCivjgYrjgYrjgZ8s44GX44KT44GE44Gh44KN44GGDQor44GK44GK44Gf44GrLOOChOOBmeOBsuOCjQ0KK+OBiuOBiuOBpCzjgbLjgo3jgobjgY0NCivjgYrjgYrjgaTjgYss44Gf44GL44GXDQor44GK44GK44Gk44GNLOOBguOBjeOBsuOCjQ0KK+OBiuOBhOOBi+OCjyzjgb/jgaHjgYoNCivjgYrjgYss44KI44GX44Gy44GVDQor44GK44GLLOOBsuOBp+OBjQ0KK+OBiuOBiyzjgbXjgb/jgZMNCivjgYrjgYvjgaAs44G/44GNDQor44GK44GL44GgLOOChOOBmeOBlw0KK+OBiuOBi+OBoCzjgobjgYbjgYTjgaENCivjgYrjgYvjgaAs44GV44Go44KLDQor44GK44GL44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBiuOBi+OBhCzjgobjgZ/jgYsNCivjgYrjgYvjgb7jgaQs44Gf44GL44Gy44KNDQor44GK44GL44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBiuOBi+OCguOBqCzjgYjjgYTjgYTjgaENCivjgYrjgYvjgoLjgags44Gy44Gn44GKDQor44GK44GL44KC44GoLOOBvuOBleOBtuOBvw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgoLjgags44G/44Gh44Gv44KLDQor44GK44GL44KC44GoLOOBruOCiuOBig0KK+OBiuOBi+OBrizjgajjgoLjgbLjgo0NCivjgYrjgYvjgZbjgY0s44KG44GN44GoDQor44GK44GN44KC44GoLOOBiOOBpOOBkw0KK+OBiuOBj+OBrizjgojjgZfjgZ/jgb8NCivjgYrjgY/jgoTjgb4s44KE44GZ44GKDQor44GK44GK44G/LOOBl+OBkuOCiw0KK+OBiuOBiuOBrizjgarjgYrjgY0NCivjgYrjgYrjga4s44Gy44KN44G144G/DQor44GK44GK44GuLOOBsuOCjeOBlw0KK+OBiuOBiuOBruOBmyzjgZjjgoXjgpPjgZMNCivjgYrjga7jgZbjgY0s44Gf44GL44GXDQor44GK44KK44GILOOCiOOBl+OBkw0KK+OBiuOBluOBjSzjgb7jgZXjgZMNCivjgajjgY/jgb/jgoQs44Gm44Gk44KEDQor44GV44GE44GhLOOBi+OBiuOCig0KK+OBleOBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44Gy44Go44GNDQor44GV44GE44Go44GGLOOBsuOBp+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZ/jgYsNCivjgZXjgYTjgajjgYYs44KG44Gf44GLDQor44GV44GE44Go44GGLOOChOOBmeOBsuOBkw0KK+OBleOBhOOBqOOBhizjgZ/jgYTjgZcNCivjgZXjgYTjgajjgYYs44GL44GK44KLDQor44Gv44GL44G+44GgLOOBi+OCiA0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgZgNCivjgZXjgYvjgYQs44G+44KK44GTDQor44GV44GL44GN44Gw44KJLOOBn+OBi+OBig0KK+OBleOBi+OBjeOCguOBqCzjgojjgZfjgYgNCivjgZXjgYvjgoLjgags44GI44GE44GYDQor44GV44GL44KC44GoLOOBiOOCig0KK+OBleOBi+OCguOBqCzjgbLjgafjgbLjgo0NCivjgZXjgYvjgoLjgags44GE44Ga44G/DQor44GV44GL44KC44GoLOOBkeOBhOOBhOOBoQ0KK+OBv+OBn+OBqyzjgZHjgpPjgYTjgaENCivjgZXjgYvjgYbjgaEs44GP44Gr44Gy44GTDQor44GV44GN44KC44GoLOOBvuOBleOBsuOBkw0KK+OBleOBj+OBvizjgb/jgaTjgosNCivjgZXjgY/jgonjgYQs44KC44Go44Gu44KKDQor44GV44GuLOOCiuOBjeOChA0KK+OBleOBrizjgorjgoXjgYbjgYTjgaENCivjgZXjga4s44GX44KF44GG44Ge44GGDQor44GV44GV44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBleOBleOBr+OCiSzjgZnjgZnjgoANCivjgZXjgZXjgY0s44Gf44GL44Gy44GoDQor44GV44GV44GNLOOBqOOBl+OBsuOBkw0KK+OBleOBleOBjSzjgoTjgZnjgbXjgb8NCivjgajjgaDjgass44Gk44KI44GXDQor44GV44GV44GNLOOBm+OBhOOBmA0KK+OBleOBn+OBkSzjgaTjga3jga7jgooNCivjgZXjgajjgYYs44KE44GZ44Gy44KNDQor44GV44Go44GGLOOBl+OCk+OBlA0KK+OBleOBqOOBhizjgbLjgZXjga/jgosNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44GV44Go44GGLOOCiOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgYvjgZoNCivjgZXjgajjgYYs44KK44GI44GTDQor44GV44Go44GGLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgobjgYbjgYTjgaENCivjgZXjgajjgYYs44Gv44KL44GKDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBqOOBhizjga7jgbzjgosNCivjgZXjgajjgYYs44GT44GG44GYDQor44GV44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBleOBqOOBhizjgYLjgY3jgokNCivjgZXjgajjgYYs44GR44GE44Gf44KN44GGDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgZgNCivjgZXjgajjgYYs44Go44KC44GNDQor44GV44KP44GgLOOBkeOBhOOBn+OCjeOBhg0KK+OBleOCj+OBoCzjgb7jgZMNCivjgZXjgo/jgaAs44G/44Gh44KIDQor44GE44KP44GfLOOBvuOChuOBvw0KK+OBleOCj+OBhCzjgajjgZfjgbLjgZMNCivjgZXjgo/jgYQs44Gd44GG44GE44Gh44KN44GGDQor44GV44KE44GuLOOBhOOBj+OChA0KK+OBm+OBjSzjgZ/jgZHjgZcNCivjgZvjgY3jgZDjgaEs44G+44GV44KI44GXDQor44Gb44GN44GQ44GhLOOBv+OBiw0KK+OBm+OBjeOBkOOBoSzjgYLjgY3jgokNCivjgZvjgY3jga0s44GC44GN44Gy44KNDQor44Gb44GN44GuLOOBn+OBi+OBlw0KK+OBm+OCk+OBqizjgajjgZfjgb/jgaQNCivjgZvjgorjgZbjgo8s44Gy44KN44KG44GNDQor44Gb44GoLOOBi+OBpOOChA0KK+OBl+OBsOOBnyzjgZPjgYbjgYTjgaENCivjgZfjgbDjgZ8s44G+44GV44Gy44GnDQor44GX44Gw44GfLOOBkeOBhOOBmeOBkQ0KK+OBl+OBsOOBn+OBqyzjgZXjgajjgZcNCivjgZfjgbbjgZ/jgass44GN44KH44GG44GTDQor44GX44GMLOOBleOBqOOCiw0KK+OBl+OBkuOBruOBtizjgYvjgZrjgojjgZcNCivjgZfjgb4s44G/44GN44GTDQor44GX44G+44GgLOOCjOOBhOOBmOOCjeOBhg0KK+OBl+OBvuOBoCzjgZXjgajjgZMNCivjgZfjgb7jgoDjgoks44KI44GX44G/44GkDQor44GX44G/44GaLOOBn+OBkeOBi+OBmg0KK+OBl+OBv+OBmizjgZXjgaDjgb/jgaENCivjgZfjgoLjgbDjgoTjgZcs44GN44KI44GXDQor44GX44KC44GM44KPLOOBk+OBhuOBmA0KK+OBl+OCguOBsuOBlOOBlyzjgabjgaTjgbLjgZUNCivjgZfjgoLjgYTjgacs44Gf44GE44GXDQor44GX44Gq44GgLOOBi+OBpOOBvw0KK+OBl+OBreOBhCzjgobjgYsNCivjgZfjgpPjgYzjgYQs44Gf44Gg44GXDQor44GX44Gu44GgLOOBk+OBhuOBmA0KK+OBl+OBruOBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgZfjga7jgZbjgY0s44Go44KC44KI44GXDQor44GX44GK44KELOOBn+OBj+OChA0KK+OBl+OCieOBr+OBvizjgZ/jgo3jgYYNCivjgZfjgonjgYTjgZcs44KG44GG44GE44GhDQor44GX44KJ44GE44GXLOOBn+OBi+OBlw0KK+OBl+OBn+OCiSzjgZ/jgZHjgZcNCivjgZfjgofjgYbjgZgs44Gy44KN44KG44GNDQor44GX44KH44GG44GYLOOBl+OCkw0KK+OBvuOBmeOChOOBvizjgb7jgZXjgbLjgacNCivjgZfjgoXjgajjgYYs44KG44G/44GTDQor44Gd44GI44GgLOOBsuOBp+OBi+OBmg0KK+OBneOBrSzjgbLjgafjgY0NCivjgZ3jga3jgaAs44Gf44GP44GKDQor44Gd44Gu44G5LOOBvuOBleOBsuOCjQ0KK+OBneOBruOBuSzjgb7jgZXjgZcNCivjgZ3jgonjga4s44G/44G7DQor44GZ44GgLOOBquOBiuOBsuOCjQ0KK+OBmeOBjOOBhCzjga7jgorjgobjgY0NCivjgZnjgYzjgo/jgoks44Gb44GE44G+DQor44GZ44GO44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBmeOBjuOCguOBqCzjgZ/jgYvjgb7jgZUNCivjgZnjgY7jgYbjgoks44KI44GX44Gu44KKDQor44GZ44GO44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOChOOBvizjgbLjgafjgb7jgZUNCivjgZnjgY7jgoTjgb4s44KM44GE44GTDQor44GZ44GY44KD44GPLOOBn+OBi+OChOOBmQ0KK+OBmeOBiyzjgajjgYrjgosNCivjgZnjgZHjgYzjgo8s44Gy44KN44KG44GNDQor44GZ44G/44Gq44GMLOOBjeOBv+OBkw0KK+OBmeOBv+OBiuOBiyzjgajjgoLjgoQNCivjgZnjgarjgoTjgb4s44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBvuOBleOChA0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgYTjgZfjgYQs44KE44GZ44Gy44GTDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBmeOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgZnjgZrjgY0s44Gy44Gn44Gy44KNDQor44KE44G+44GX44KNLOOBsuOBp+OBjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZnjgZrjgY0sDQor44GZ44Ga44GNLOOBi+OBpOOChuOBjQ0KK+OBmeOBmuOBjSzjgYvjgZrjga7jgooNCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44Gf44Gw44GTLOOBj+OBv+OBkw0KK+OBn+OBsOOBnyzjgb7jgZXjgY0NCivjgarjgYvjgZjjgb4s44Gm44KL44KG44GNDQor44Gf44Gw44GfLOOCiOOBl+OBpOOBkA0KK+OBn+OBoeOBsOOBqizjgajjgZfjgobjgY0NCivjgZ/jgYzjgb8s44Gf44GE44Gb44GEDQor44G+44G+44GgLOOBkeOCk+OBmA0KK+OBn+OBjOOCjyzjgb7jgZPjgagNCivjgZ/jgZjjgb4s44KC44Go44Gy44KNDQor44Gf44GL44Gw44KE44GXLOOChuOBjQ0KK+OBn+OBi+OBoCzjgajjgoLjgogNCivjgZ/jgYvjgaAs44Gf44GL44Gy44KNDQor44Gf44GL44GOLOOBiOOBvw0KK+OBn+OBi+OBjizjgaDjgYTjgZnjgZENCivjgZ/jgYvjga/jgZcs44GX44KT44KEDQor44Gf44GL44Gv44GXLOOChuOBjeOBig0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GTDQor44Gf44GL44Gv44GXLOOBhOOBmuOCiw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgY0NCivjgZ/jgYvjga/jgZcs44G/44GX44KH44GGDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgZcNCivjgZ/jgYvjga/jgZcs44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOBk+OBhuOBuOOBhA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbXjgb8NCivjgZ/jgYvjgYQs44Gy44Gn44GNDQor44Gf44GL44GP44KJLOOBkeOCk+OBmeOBkQ0KK+OBn+OBi+OBj+OCiSzjgZfjgbsNCivjgZ/jgYvjgb7jgaEs44GL44Gk44Gu44KKDQor44Gf44GL44G+44GkLOOBguOBjeOCiOOBlw0KK+OBvuOBpOOBquOBjCzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgoLjgags44KI44GX44GNDQor44Gf44GL44KA44KJLOOBruOBtuOBi+OBpA0KK+OBn+OBi+OBiuOBiyzjgZTjgYYNCivjgZ/jgYvjgZnjgY4s44Gv44KL44GTDQor44Gf44GL44KELOOBsuOBp+OBguOBjQ0KK+OBn+OBi+OChOOBvizjgbLjgo3jgobjgY0NCivjgY3jgZ/jga/jgoks44GR44KT44GE44GhDQor44Gf44GR44GgLOOBj+OBq+OBsuOBpw0KK+OBn+OBkeOBoCzjgb7jgZXjgbLjgo0NCivjgZ/jgZHjga/jgaos44G+44GV44GL44GkDQor44Gf44GR44G+44GkLOOBvuOBleOBvw0KK+OBn+OBkeOBiuOBiyzjgb/jga7jgosNCivjgYTjgZfjgYvjgo8s44KC44Go44G144G/DQor44Gf44GR44GX44GfLOOBquOBiuOBjQ0KK+OBn+OBkeOBn+OBqyzjga7jgbbjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GV44Go44GXDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBn+OBkeOChOOBvizjgZ/jgZHjgZcNCivjgZ/jgZHjgZbjgo8s44GN44KI44GYDQor44Gf44GN44GW44KPLOOBpOOBqOOCgA0KK+OBn+OBjeOBluOCjyzjgaHjgYvjgokNCivjgZ/jgb7jgYQs44Go44KC44KG44GNDQor44Gf44Gq44Gv44GXLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBiyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgarjgYss44GT44GZ44GRDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgZ/jgarjgYss44GR44GE44GTDQor44Gf44Gq44GLLOOCguOBqOOBjQ0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgarjgYss44GL44Ga44Gy44GoDQor44Gf44Gq44GLLOOChuOBhuOBkw0KK+OBn+OBquOBiyzjgYjjgYTjgYTjgaENCivjgZ/jgarjgYss44GI44GE44GYDQor44Gf44Gq44GLLOOBpOOBreOBsuOCjQ0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgZ/jgarjgYss44Gu44KK44Gy44KNDQor44Gf44Gq44GLLOOBi+OBmuOBquOBig0KK+OBn+OBquOBiyzjga7jgbzjgosNCivjgYTjgZfjgaAs44GR44KT44KEDQor44Gf44Gq44GLLOOBi+OBmuOBig0KK+OBn+OBq+OBkOOBoSzjgZfjgZLjgosNCivjgZ/jgavjgZDjgaEs44GR44KT44GE44GhDQor44Gf44Gr44GELOOChuOCiuOBkw0KK+OBn+OBq+OCgOOCiSzjgb/jgaHjgogNCivjgZ/jgavjgYrjgYss44Go44KC44GTDQor44Gf44KT44GuLOOChuOBjeOBig0KK+OBn+OBrOOBvizjgb7jgoLjgosNCivjgojjgZPjgoTjgb4s44KP44Gf44KLDQor44Gf44GX44KNLOOBguOBjeOCiQ0KK+OBn+OBl+OCjSzjgZHjgpPjgYTjgaENCivjgZ/jgaYs44Gy44Gn44GoDQor44Gf44GG44KJLOOBvuOBk+OBqA0KK+OBn+OBnuOBiCzjgobjgYbjgZMNCivjgZ/jgZrjgZEs44G+44GT44GoDQor44Gm44KT44KCLOOBi+OCiOOBkw0KK+OBpuOCieOBoCzjgaHjgYjjgZMNCivjgabjgonjgoLjgags44GI44GE44GYDQor44Gm44KJ44GK44GLLOOBkeOBhA0KK+OBpuOBmuOBiyzjgbLjgo3jgobjgY0NCivjgajjgZDjgaEs44GY44KF44KT44GTDQor44Go44GG44G+LOOBk+OBhuOBhOOBoQ0KK+OBqOOBhuOBvizjgbLjgo3jgoTjgZkNCivjgajjgYrjgoTjgb4s44GL44Ga44KG44GNDQor44Go44GN44GK44GLLOOBn+OBi+OBl+OBkg0KK+OBn+OBq+OChOOBvizjgbLjgafjgYLjgY0NCivjgb/jgYbjgoks44Gd44GG44GE44GhDQor44Go44GP44KJLOOBi+OBmuOBig0KK+OBqOOBj+OChOOBvizjgbLjgo3jgoQNCivjgajjgb/jgYTjgZcs44GP44Gr44Gy44GTDQor44Go44G/44GL44KPLOOBruOCiuOBkw0KK+OBqOOBv+OBquOBjCzjgYLjgaTjgZcNCivjgajjgb/jgZ8s44G144G/44GIDQor44Go44G/44GfLOOCguOBqOOCiOOBlw0KK+OBiuOBiuOCguOCiizjgb7jgZXjgobjgY0NCivjgajjgoLjgZ8s44Gy44Gn44Gy44GTDQor44Go44KC44GuLOOBkeOBhOOBmA0KK+OBqOOCiuOBi+OBhCzjgarjgYrjgY0NCivjgajjgorjgYbjgb8s44KI44GX44Gu44G2DQor44Go44Gk44GLLOOBguOChOOBkw0KK+OBqOOCiOOBoCzjgZHjgYTjgYTjgaENCivjgajjgojjgaAs44G/44GN44Gy44KNDQor44Go44KI44GK44GLLOOBn+OBj+OBruOBtg0KK+OBpOOBoeOBoCzjgZPjgYbjgZgNCivjgaTjgaAs44GT44GG44GE44GhDQor44Gk44GY44Gf44GrLOOBvuOBleOBpOOBkA0KK+OBpOOBi+OCguOBqCzjgojjgZfjgabjgosNCivjgaTjgYvjgoLjgags44Gy44KN44GC44GNDQor44Gk44GL44KP44GNLOOBvuOBleOBn+OBiw0KK+OBpOOCi+OBvuOBjSzjgojjgYbjgZMNCivjgYTjgaHjgbDjgpPjgYzjgZss44KG44GN44GTDQor44GV44GL44GELOOBv+OBu+OBkw0KK+OBhuOBoeOBoCzjgYvjgZrjgbLjgo0NCivjgYvjgarjgYrjgYss44GT44GG44G444GEDQor44GG44Gh44GgLOOBn+OBpOOChA0KK+OBhuOBoeOBhuOBvyzjgarjgYrjgbLjgZMNCivjgYbjgaHjgoTjgb4s44G144G/44Gf44GLDQor44GG44Gh44KE44G+LOOChuOBjQ0KK+OBhuOBoCzjgYLjgaTjgZMNCivjgYbjgaDjgYzjgo8s44Gf44KN44GGDQor44GK44GX44G+LOOBguOBpOOBkw0KK+OBhuOBiOOBoCzjgYjjgYTjgYsNCivjgYbjgYjjgaAs44KI44GX44G/44GkDQor44GG44GI44Gv44KJLOOBsuOBp+OChuOBjQ0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgY0NCivjgYbjgYjjga4s44GK44GV44KADQor44GG44GI44GuLOOBsuOCjeOBruOCig0KK+OBhuOBiOOBmeOBjizjgb7jgZXjgb8NCivjgYbjgYjjgaTjgY0s44Gf44GE44GhDQor44GG44GL44KPLOOBvuOBleOBsuOBpw0KK+OBhuOBvuOBmuOCgSzjgZfjgpPjgoQNCivjgYbjgoHjga/jgoks44Go44GX44GKDQor44GG44KB44KA44KJLOOBsuOCjeOBteOBvw0KK+OBhuOCgeOBluOCjyzjgbLjgo3jgZcNCivjgYbjga4s44Gy44KN44GXDQor44GG44GuLOOBsuOBleOChA0KK+OBhuOCieOCguOBqCzjgZHjgYQNCivjgYbjgovjgb4s44G+44GV44G144G/DQor44GG44GX44GwLOOBv+OBruOCiw0KK+OBquOBjOOBnyzjgorjgoXjgYbjgZ8NCivjgYbjgZfjgZDjgZUs44Go44GX44GC44GNDQor44Gv44Gb44GM44KPLOOCiOOBl+OBguOBjQ0KK+OBleOBi+OBvuOBjSzjgobjgooNCivjgYbjgo/jgbks44G+44GV44KG44GNDQor44KP44GgLOOBguOBjeOBkw0KK+OCj+OBi+OBiizjgZHjgYTjgZgNCivjgo/jgYvjgYos44KM44GE44GTDQor44KP44GN44GfLOOCiOOBhuOBkw0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgb8NCivjgo/jgY/jgYQs44G+44GV44KEDQor44KP44GX44GW44KPLOOBkeOBhOOBkw0KK+OCj+OBl+OBmuOBiyzjgZPjgYbjgZgNCivjgo/jgZ/jgbks44G+44GV44Go44GXDQor44KP44Gf44Gq44G5LOOBruOCiuOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44KP44Gf44Gq44G5LOOBn+OBi+OBig0KK+OCj+OBn+OBquOBuSzjgaTjgojjgZcNCivjgo/jgZ/jgarjgbks44Go44KC44KG44GNDQor44KP44Gf44Gq44G5LOOBoOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgY0NCivjgo/jgZ/jgarjgbks44Gy44KN44GL44GaDQor44KP44Gf44Gq44G5LOOBsuOCjeOBvw0KK+OBqOOCiOOBnyzjgbLjgajjgZcNCivjgo/jgZ/jgoos44GR44GE44GTDQor44Go44G/44KE44GZLOOBqOOBl+OBsuOBlQ0KK+OChOOBiOOBjOOBjSzjgojjgZfjgYLjgY0NCivjgoTjgY4s44G/44KI44GTDQor44KE44GOLOOCiOOBl+OBvuOBlQ0KK+OChOOBjuOBrOOBvizjgaDjgYTjgZnjgZENCivjgoTjgY8s44GC44GN44GoDQor44KE44G+44GgLOOBi+OBmuOBsuOBkw0KK+OChOOBvuOBoCzjgb7jgY0NCivjgoTjgb7jgaAs44KI44GG44GTDQor44KE44G+44GO44GXLOOBguOBpOOBlw0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgYTjgaENCivjgoTjgb7jgZDjgaEs44Go44GX44KG44GNDQor44KE44G+44GQ44GhLOOBi+OBiuOCiw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoTjgb7jgZPjgZcs44Gg44GE44GZ44GRDQor44KE44G+44KC44GoLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZHjgpPjgZgNCivjgoTjgb7jgoLjgags44Gf44GR44GKDQor44KE44G+44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZfjgoXjgYbjgZgNCivjgZ/jgaHjgbDjgaos44G+44GV44Go44GXDQor44KE44G+44KC44GoLOOBmOOCheOCkw0KK+OChOOBvuOCguOBqCzjgZHjgpPjgYTjgaENCivjga/jgonjgZ/jgass44Go44KC44GTDQor44KE44G+44Gq44GLLOOBn+OBi+OBlw0KK+OChOOBvuOBrSzjgojjgZfjgbXjgb8NCivjgoTjgb7jgZfjgZ8s44GC44GN44Gy44GTDQor44KE44G+44GX44GfLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgarjgYrjgZMNCivjgoTjgb7jgZ/jgass44Gf44GL44GXDQor44KE44G+44GG44GhLOOBqOOCguOBkw0KK+OChOOBvuOBluOBjSzjgYLjgY3jgokNCivjgoTjgaos44Gy44KN44GC44GNDQor44KE44Gq44G5LOOBsuOCjeOBjQ0KK+OChOOBquOBjOOCjyzjgorjgofjgYYNCivjgoTjgarjgY4s44Go44GX44GC44GNDQor44KE44Gq44GO44GgLOOCiuOCheOBhuOBhOOBoQ0KK+OChOOBleOBiyzjgYvjgZrjgbLjgacNCivjgoTjgZnjgaAs44G+44GV44G/44GkDQor44KE44GZ44G144GPLOOChuOBn+OBiw0KK+OChOOBmeOBi+OCjyzjgY3jgojjgYvjgZoNCivjgojjgZPjgZXjgo8s44Gf44GP44KEDQor44KI44GT44GfLOOBsuOCjeOBlw0KK+OCiOOBk+OBnyzjgYvjgZrjgbLjgo0NCivjga/jgonjgaAs44GT44GZ44GRDQor44KI44GT44GG44GhLOOBvuOBleOBsuOCjQ0KK+OCiOOBk+OBhuOBoSzjgZfjgpPjgZnjgZENCivjgojjgZPjgoTjgb4s44G+44GT44GoDQor44KI44GT44KE44G+LOOBi+OBmuOBruOBtg0KK+OCiOOBreOBoCzjgarjgYrjgY0NCivjgojjga3jga4s44Gq44GK44G/DQor44GL44GV44Gv44KJLOOBleOBqOOBvw0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgojjgZfjgaAs44GY44KF44KTDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgarjgYrjgagNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44Gp44KBLOOBl+OBmuOBiw0KK+OCiOOBl+OBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgojjgZfjgYQs44GV44Go44KLDQor44KI44GX44GELOOBvuOBk+OBqA0KK+OCiOOBl+OBi+OCjyzjgZfjgYrjgooNCivjgojjgZfjgb8s44Gf44GE44GNDQor44KI44GX44GuLOOBteOBv+OBig0KK+OCiOOBl+OBrizjgoTjgZnjgZcNCivjgojjgZfjga4s44Go44KC44GTDQor44KI44GX44GK44GLLOOBkeOCk+OBhOOBoQ0KK+OCiOOBl+OBiuOBiyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgojjgZfjgZ/jgZEs44Gf44Gg44GXDQor44KI44GX44GW44KPLOOBqOOBl+OBi+OBpA0KK+OChuOBmuOBr+OCiSzjgZPjgYbjgZgNCivjgZzjgpPjgZIs44GL44Ga44Gf44GLDQor44Ga44GXLOOBv+OBig0KK+OBlOOBvyzjgbLjgo3jgY0NCivjgZTjgajjgYYs44Gy44KN44GXDQor44GE44GR44GgLOOBn+OBkeOBr+OCiw0KK+OBhOOBvizjgb7jgZXjgbLjgo0NCivjgYLjgbks44G+44Gq44G2DQor44GL44Go44GGLOOBl+OBkuOCiw0KK+OBi+OCj+OBsOOBnyzjgZfjgZLjgosNCivjgZPjgbDjgoTjgZcs44KG44GN44Gy44GTDQor44GT44KT44GpLOOBj+OBq+OCgOOBrQ0KK+OBj+OBvCzjgb7jgZXjgbLjgZMNCivjgY/jgonjgoLjgaEs44KI44GG44GTDQor44G+44KL44KE44G+LOOCiOOBl+OBguOBjQ0KK+OCguOCiuOBi+OBjyzjgobjgY3jgYoNCivjgoDjgonjgYrjgYss44Gy44KN44KG44GNDQor44Gq44GM44GX44G+LOOCiOOBhuOBkw0KK+OBquOBiyzjgajjgZfjgoQNCivjgarjgYvjga/jgoks44Gf44GP44KEDQor44Gq44GL44KA44KJLOOBpOOCiOOBlw0KK+OBquOBi+OBmyzjgajjgb8NCivjgarjgorjgZ8s44Gy44GV44GIDQor44Gr44GX44KA44KJLOOBiOOBv+OBkw0KK+OBruOBquOBiyzjgbLjgafjgarjgYoNCivjgYrjgYzjgo8s44KI44GX44GKDQor44GK44GQ44KJLOOBqOOBiuOCiw0KK+OBiuOBiuOBvyzjgb7jgZPjgagNCivjgYrjgYvjga4s44G+44GV44KEDQor44GX44G+44GgLOOBmOOCheOCk+OBmA0KK+OBl+OBv+OBmizjgYvjgZrjga7jgZfjgpMNCivjgZfjgoDjgoks44Gy44Gn44KG44GNDQor44Gf44GL44Gv44GXLOOBv+OBpOOBvuOBlQ0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgYTjgaENCivjgYbjgYjjgaAs44KA44Gk44GKDQor44GG44GYLOOBlOOBhg0KK+OBhuOBpOOBvyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgbks44KI44GG44GE44GhDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBn+OBi+OBruOBhuOBoSzjgZHjgpPjgZXjgY8NCivjgYTjga7jgYbjgYgs44KA44Gt44Gy44KNDQor44Gq44GL44Gv44KJLOOBsuOBqOOBlw0KK+OBguOBoOOBoSzjgobjgZ/jgYsNCivjgarjgYvjga4s44Gy44KN44GNDQor44GC44GE44GwLOOBruOCiuOBguOBjQ0KK+OBguOBhOOBsCzjgZ/jgZHjgZcNCivjgYLjgYTjgbAs44GV44Go44GXDQor44GC44GE44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBhOOBr+OCiSzjgYLjgaTjgZcNCivjgYLjgYvjgYTjgZcs44G+44GV44GK44G/DQor44GC44GL44GE44KPLOOCiOOBl+OBsuOCjQ0KK+OBguOBi+OBiuOBjizjgajjgZfjgbLjgacNCivjgYLjgY3jgZ8s44Gk44KI44GXDQor44GC44G+44GuLOOBquOBiuOBkw0KK+OBguOBiuOBjSzjgbLjgo3jgZMNCivjgYLjgYrjgY0s44KG44GN44GTDQor44GC44GK44Gs44G+LOOBsuOBqOOBlw0KK+OBguOBiuOChOOBjizjgYjjgYTjgZgNCivjgYLjgonjgY0s44GC44GN44KJDQor44GC44KK44G+44GhLOOBqOOBl+OBruOBtg0KK+OBguOCiuOBnyzjgbLjgafjgYLjgY0NCivjgYLjgZXjgaAs44Gm44Gk44KEDQor44GC44GV44GI44GgLOOBn+OBi+OBsuOCjQ0KK+OBguOBleOBr+OCiSzjgojjgZfjga/jgosNCivjgYLjgZXjgYvjgo8s44GL44Ga44Gy44GTDQor44GC44GV44KC44GoLOOBpOOBqOOCgA0KK+OBguOBleOBrizjgobjgZ/jgYsNCivjgYLjgZ/jgZDjgaEs44Gy44KN44GXDQor44GC44KE44GNLOOBr+OCi+OBkw0KK+OBsOOBsCzjgZfjgoXjgpPjgZnjgZENCivjgbDjgbAs44GL44GK44KLDQor44Gw44GwLOOBquOBquOBkw0KK+OBsOOCkyzjgZ/jgZHjgZcNCivjgaDjgYTjgZPjgY8s44G/44Gh44KIDQor44Gg44GmLOOBl+OBkuOBsuOBkw0KK+OBleOBrizjgZjjgoXjgpPjgYTjgaENCivjgb/jgaTjgYrjgYss44GX44GS44GNDQor44Gn44KT44GgLOOBi+OBmuOBsuOBkw0KK+OBqeOBhCzjgYjjgb8NCivjgYjjgpPjgaks44Go44KC44Gy44GTDQor44GI44KT44GpLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBiOOBluOCjyzjgarjgorjgbLjgacNCivjgbXjgZjjgYgs44Gf44GR44G144G/DQor44G144GY44GELOOBi+OBmuOBsuOCjQ0KK+OBteOBmOOBhCzjgb7jgZXjgYLjgY0NCivjgbXjgZjjgb7jgY0s44G+44GV44GL44GkDQor44G144GY44KC44GoLOOBv+OCjw0KK+OBteOBmOOCguOBqCzjgb/jgY3jgYoNCivjgbXjgZjjgoDjgo0s44GT44GG44GYDQor44KC44KN44Ga44G/LOOBi+OCk+OBmA0KK+OBteOBmOOBleOCjyzjgZHjgpPjgZgNCivjgbXjgZjjgZ8s44Gy44KN44KG44GNDQor44G144GL44GbLOOBn+OBpOOChA0KK+OBteOBj+OBoCzjgZfjgZvjgYQNCivjgbXjgY/jganjgoEs44Gf44GL44GXDQor44G144GP44GELOOBsuOBleOBlw0KK+OBteOBj+OBquOBjCzjgbXjgb/jgbLjgZUNCivjgbXjgY/jgZfjgb4s44Gy44Gn44GKDQor44G144GP44GW44KPLOOBvuOCiuOBiw0KK+OBteOCi+OBsOOChOOBlyzjgYLjgY3jgokNCivjgbXjgovjgYvjgo8s44Gy44Gn44GNDQor44G144KL44GL44KPLOOBguOBkeOBvw0KK+OBlOOBhizjga/jgaoNCivjgZTjgb7jgoss44GZ44GZ44KADQor44GU44Go44GGLOOBl+OCh+OBhg0KK+OBlOOBqOOBhizjgZ/jgaTjgoQNCivjgZTjgajjgYYs44Gh44Ga44GLDQor44Gu44KC44GoLOOBi+OBiuOCiw0KK+OBr+OBjuOCj+OCiSzjgorjgoXjgYbjgZ8NCivjga/jgYTjgoTjgb4s44GN44KH44GG44GTDQor44Gv44G+LOOBi+OBmuOBv+OBoQ0KK+OBr+OBvuOBoSzjgZfjgoXjgYbjgYTjgaENCivjga/jgb7jgaAs44Gq44GK44Gy44GVDQor44Gv44G+44Gf44GrLOOBl+OBkuOBig0KK+OBr+OBquOBhCzjgoTjgZnjgbLjgagNCivjga/jgarjgZ8s44Gy44KJ44GPDQor44Gv44Gt44GYLOOBsuOCjeOBkw0KK+OBr+OCk+OBluOCjyzjgb7jgZXjgbLjgZMNCivjga/jgoks44G/44G7DQor44Gv44KJLOOBl+OCk+OBmA0KK+OBr+OCieOBoCzjgYvjgZrjgbLjgacNCivjga/jgonjgaAs44GN44KI44GXDQor44Gv44Gb44GM44KPLOOChuOBn+OBiw0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgZMNCivjga/jgZvjgYzjgo8s44Gm44Gk44KEDQor44Gv44GX44GQ44GhLOOBvuOBleOCiOOBlw0KK+OBr+OBl+OCguOBqCzjgoTjgZnjgobjgY0NCivjgZTjgajjgYYs44GR44GEDQor44GL44GY44KP44KJLOOCiOOBl+OBkw0KK+OBr+OBmeOBvyzjgaTjgZDjga7jgooNCivjgYvjgZ/jgoTjgarjgY4s44GI44GE44GE44GhDQor44Gv44Gf44GR44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBhCzjgb/jgaTjgobjgY0NCivjga/jgZ/jgass44KK44KF44GG44GE44GhDQor44Gv44Gj44Go44KKLOOChOOBmeOBruOBtg0KK+OBr+OBo+OBqOOCiizjgZ/jgYvjgobjgY0NCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44GK44GK44GZ44G/LOOBvuOBleOBkw0KK+OBr+OChOOBlyzjgYvjgZrjgarjgooNCivjga/jgoTjgZcs44KI44GX44Gu44G2DQor44Gv44KE44GX44GgLOOBleOBjQ0KK+OBsuOBjCzjgZ/jgZHjgYoNCivjgbLjgYzjgZcs44KK44KF44GG44GZ44GRDQor44Gy44GM44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBqOOCiOOBoCzjgobjgYbjgYTjgaHjgo0NCivjgbLjga4s44Gf44GR44Gy44GTDQor44Gy44KJLOOBpuOBpOOChA0KK+OBsuOCieOCguOBqCzjgZjjgoXjgpPjgZMNCivjgbLjgonjgYos44G+44GV44GoDQor44Gy44KJ44GKLOOBvuOBleOChuOBjQ0KK+OBsuOCieOBnyzjgarjgYrjgb8NCivjgbLjgonjgoTjgb4s44Gf44GR44GXDQor44Gy44KN44GELOOBn+OBi+OBlw0KK+OBsuOCjeOBi+OCjyzjga7jgorjgYvjgZoNCivjgbLjgo3jgYvjgo8s44KI44Gf44KN44GGDQor44Gy44KN44G+44GZLOOBi+OBmuOChuOBjQ0KK+OBsuOCjeOBmyzjgb/jgaTjgosNCivjgbLjgo3jgZss44Gf44GL44GKDQor44Gy44GX44KELOOBleOBqOOBlw0KK+OBu+OBhuOBl+OCh+OBhizjgYLjgY3jgZMNCivjgbvjgpPjgaAs44G/44G744GTDQor44Gv44KE44GXLOOBruOBnuOCgA0KK+OBu+OCk+OBvizjgZ/jgZHjgZcNCivjgbvjgorjgZDjgaEs44Gm44KL44GKDQor44G744KK44GELOOBsuOCjeOBvw0KK+OBu+OBlyzjgYLjgY3jgbLjgZMNCivjgbvjgZ3jgYQs44GL44Gk44KEDQor44G744Gd44G/LOOChOOBmeOBig0KK+OBu+OBo+OBnyzjgb7jgZXjgbLjgacNCivjgbXjgY/jgo3jgYQs44GR44KT44GYDQor44G144KL44KELOOBguOBjeOBsuOBqA0KK+OBhOOBtuOBiyzjgZ3jgYbjgYTjgaENCivjgYTjgaHjgbAs44Gf44GL44GXDQor44GE44Gh44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgZcNCivjgYTjgaHjgoDjgoks44GY44KF44KT44GE44Gh44KNDQor44GE44Gh44Gu44Gb44GNLOOBqOOBl+OBsuOCjQ0KK+OBhOOBhOOBoCzjgajjgZfjgoQNCivjgYTjgYTjgaAs44GY44KF44KT44GTDQor44GE44GE44GY44G+LOOCiOOBhuOBkw0KK+OBl+OBruOBr+OCiSzjga/jgZjjgoENCivjgYTjgZHjgaAs44KK44GIDQor44GE44GR44GgLOOChuOBjQ0KK+OBhOOBkeOBoCzjgobjgZ/jgYsNCivjgYTjgZHjgaAs44KI44GG44GTDQor44GE44GR44GW44KPLOOBi+OBmuOBn+OBiw0KK+OBhOOBvuOBhCzjgb7jgobjgb8NCivjgYTjgb7jgYQs44GR44GE44GfDQor44GE44G+44GELOOBj+OBq+OBsuOBkw0KK+OBhOOBvuOBjSzjgb/jga7jgosNCivjgYTjgb7jgoDjgoks44GR44KT44GZ44GRDQor44GE44KC44GoLOOBl+OCh+OBhuOBhOOBoQ0KK+OBguOBuSzjgojjgZfjgoTjgZkNCivjgYTjgarjgaAs44KG44GN44GTDQor44GE44Gu44GG44GILOOBqOOCguOBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44G+44GV44Gy44GTDQor44GE44Gu44GG44GILOOBi+OBmuOBig0KK+OBhOOCiuOBiCzjgojjgZfjgbLjgZMNCivjgaTjgovjgYrjgYss44Gy44Go44GXDQor44GK44GK44Gv44GXLOOBsuOBleOBqOOBlw0KK+OBhOOBl+OBoCzjgobjgYbjgZgNCivjgYTjgZfjgaAs44GR44KT44GYDQor44GE44GX44GgLOOBk+OBhuOBmA0KK+OBhOOBl+OBoCzjga/jgZjjgoENCivjgYTjgZfjgZDjgo0s44KI44GX44GNDQor44GE44GX44Gv44KJLOOBl+OBkuOBig0KK+OBhOOBl+OBr+OCiSzjgZjjgoXjgpPjgZMNCivjgYTjgZfjgYQs44G/44Gk44Gy44GTDQor44GE44GX44GL44KPLOOBvuOBleOBruOCig0KK+OBhOOBl+OBi+OCjyzjgYLjgY3jgokNCivjgYTjgZfjgo/jgZ8s44G+44GV44Gu44KKDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgYLjgY3jgZMNCivjgYTjgajjgoTjgb4s44Go44GX44GKDQor44GE44Gk44GNLOOBi+OBmuOBsuOCjQ0KK+OBhOOCj+OBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GE44Ga44GkLOOChuOBhuOBmA0KK+OBmOOBtizjgYjjgb/jgZMNCivjgYvjganjgYQs44Gm44KL44KE44GZDQor44GC44Gg44GhLOOBkeOCk+OBmA0KK+OBi+OBhCzjgZ/jgYvjgobjgY0NCivjgYvjgYTjgZss44Gy44KN44GC44GNDQor44GL44GE44Ga44GLLOOBsuOCjeOBkw0KK+OBi+OBmOOCj+OCiSzjgbLjgo3jgZcNCivjgYvjgY0s44GL44Gk44Go44GXDQor44GL44GN44G/LOOBk+OBhuOBmA0KK+OBmeOBjuOBnyzjgozjgYTjgY0NCivjgYvjgY/jgZ/jgass44KE44GZ44GTDQor44GL44G/44Gw44KE44GXLOOBi+OBpOOBsuOBkw0KK+OBi+OBv+OBjOOBjSzjga7jgorjgbLjgacNCivjgYvjgb/jgoQs44GV44Go44GXDQor44GL44KC44GgLOOBk+OBhuOBhOOBoQ0KK+OBi+OCguOBqCzjgZ/jgoLjgaQNCivjgYvjgpPjgbDjgoTjgZcs44KC44Go44Gy44KNDQor44GL44Gt44GTLOOBl+OCk+OBlA0KK+OBi+OBreOBkyzjgb/jgaTjgoQNCivjgYvjga3jgZMs44GP44Gr44Gy44GTDQor44GL44Gt44GTLOOBv+OBpOOBig0KK+OBi+OBq+OBleOCjyzjgZ/jgaTjgoQNCivjgYvjgoss44Gf44GL44KG44GNDQor44GL44GX44KP44GOLOOBpuOBpOOChA0KK+OBi+OBmeOBvyzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYvjgZ/jgY7jgoos44Gq44GK44KG44GNDQor44GL44Go44GGLOOBv+OBpOOBsuOCjQ0KK+OBi+OBqOOBhizjgYLjgaTjgZcNCivjgYvjgajjgYYs44KG44GG44GTDQor44GL44Go44GGLOOBruOBtuOBig0KK+OBi+OBqOOBhizjgZ/jgaTjgo3jgYYNCivjgZ/jgZDjgaEs44GY44KF44KT44GTDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgZPjgYYNCivjgYvjgajjgYYs44GX44KT44GE44GhDQor44GL44Gk44KJLOOBguOBjeOCiQ0KK+OBneOBlCzjgZHjgpMNCivjgYvjgo/jgbLjgags44G+44GT44GoDQor44GL44KP44GELOOCiuOBiOOBkw0KK+OBi+OCj+OBi+OBvyzjgZPjgYbjgZgNCivjgYvjgo/jgb8s44GX44GS44KLDQor44GL44KP44KA44KJLOOBl+OCk+OBmA0KK+OBi+OCj+OCgOOCiSzjgabjgovjgY0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GXDQor44GL44KP44GV44GNLOOBqOOCguOBi+OBmg0KK+OBi+OCj+OBhuOBoSzjgb7jgZXjgYLjgY0NCivjgYvjgaTjgY0s44GC44GN44Go44KCDQor44GN44GgLOOBuOOBhOOBmA0KK+OBjeOBqeOBk+OCjSzjgbLjgo3jgZcNCivjgoLjgoos44GR44KT44GYDQor44GN44GP44GhLOOBvuOBk+OBqA0KK+OBjeOBj+OBjOOCjyzjgb/jgYgNCivjgY3jgoDjgoks44G/44Gk44Gy44KNDQor44GN44KA44KJLOOBleOBqOOCiw0KK+OBjeOCgOOCiSzjgZ/jgZHjgZcNCivjgY3jgoDjgoks44Gf44GP44G/DQor44GN44Gu44GX44GfLOOBqOOCiOOBjQ0KK+OBjeOBruOBl+OBnyzjgojjgZfjgYLjgY0NCivjgY3jga7jgZfjgZ8s44KI44GX44Gv44KLDQor44GN44Gu44GX44GfLOOChuOBi+OCig0KK+OBjeOBl+OBoCzjgobjgY3jgZMNCivjgY3jgZfjgYvjgo8s44G+44GV44Gy44GTDQor44GN44GfLOOBqOOBl+OBig0KK+OBjeOBn+OBkOOBoSzjgZHjgYTjgZnjgZENCivjgYLjgb7jga4s44G/44Gh44KIDQor44GN44Gf44KA44KJLOOBvuOBquOBtg0KK+OBjeOBn+OChOOBvizjgaHjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gq44GK44GoDQor44GT44Gw44KE44GXLOOCguOBqOOBruOCig0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44KE44GZ44Gm44KLDQor44GT44Gw44KE44GXLOOBqOOCguOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZgNCivjgYLjgoHjgZfjgZ8s44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgb8NCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gw44KE44GXLOOBjeOCiOOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgb7jgobjgb8NCivjgZPjgbDjgoTjgZcs44Gg44GE44GZ44GRDQor44GT44Gw44KE44GXLOOBn+OBi+OBsuOCjQ0KK+OBiuOBoCzjgb7jgZXjgbLjgZMNCivjgZPjgbzjgoos44Gy44Gn44G/DQor44GT44Gg44GE44KJLOOBruOBtuOBsuOCjQ0KK+OBk+OBoOOBvizjgZvjgYTjgZgNCivjgYvjgo/jgZDjgaEs44GC44Gk44GXDQor44GT44Gg44GmLOOBv+OBpOOCiw0KK+OBk+OBjCzjga7jgorjgobjgY0NCivjgZPjgYws44GC44GN44KJDQor44GT44GM44Gt44G+44KLLOOBvuOBleOBvw0KK+OBk+OBr+OCiSzjgajjgoLjgarjgooNCivjgZPjgYbjgaAs44GR44KT44GE44GhDQor44GT44KT44GuLOOBvuOBquOBtg0KK+OBk+OBluOBhCzjgZPjgYbjgYTjgaENCivjgZPjgYTjgZEs44GC44GN44GKDQor44GT44GE44Ga44G/LOOBvuOBleOBig0KK+OBk+OBmOOBvizjgoTjgZnjgo0NCivjgZPjgZjjgb4s44GR44KTDQor44GT44G+44GkLOOBn+OBi+OBlw0KK+OBk+OCguOCiizjgojjgZfjgZ/jgYsNCivjgZPjgpPjgaks44Go44KC44Gu44KKDQor44GT44KT44GpLOOBhOOBleOCgA0KK+OBk+OCk+OBnyzjgZHjgpPjgYTjgaENCivjgZPjgZ/jgYss44G/44Gk44Gu44KKDQor44GT44Gf44GRLOOBvuOBleOBjQ0KK+OBk+OChOOBvizjgajjgYbjgo3jgY8NCivjgY/jgbws44Gy44KN44GXDQor44GP44G844GNLOOBhOOBj+OBkw0KK+OBj+OBvOOBnyzjgojjgYbjgYTjgaENCivjgY/jgYws44Gf44Gk44GYDQor44GP44G+44GM44GELOOChOOBmeOBquOCig0KK+OBj+OBq+OCguOCiizjgojjgYbjgYTjgaENCivjgY/jgonjgoLjgags44GY44KF44KTDQor44GP44KJ44GV44KPLOOBguOBpOOBlw0KK+OBj+OCieOBl+OBqizjgYvjgaTjgbLjgagNCivjgY/jgonjgZ8s44GV44Go44GXDQor44GP44KK44KC44GoLOOBn+OBkeOBig0KK+OBj+OCiuOBnyzjgojjgZfjgb7jgZUNCivjgY/jgo3jgaAs44Go44GX44GL44GaDQor44GP44KN44GgLOOBsuOBp+OBguOBjQ0KK+OBj+OCjeOBi+OCjyzjgZfjgpPjgZQNCivjgY/jgo3jgY0s44Gk44KI44GXDQor44GP44KN44GV44GNLOOCiuOCh+OBhuOBhOOBoQ0KK+OBj+OCjeOBleOCjyzjgbLjgo3jgobjgY0NCivjgY/jgorjgoXjgYYs44GR44KT44GYDQor44GP44KP44GfLOOBvuOBleOBsuOBkw0KK+OBj+OBmuOBvyzjgZ/jgYvjgbLjgo0NCivjgb7jgbbjgaEs44Gf44GP44G/DQor44G+44GI44GgLOOChOOBmeOBsuOCjQ0KK+OBvuOBiOOBoCzjgZHjgYTjgZcNCivjgb7jgYjjgYzjgo8s44GC44GN44Gy44GTDQor44G+44GI44GL44KPLOOChOOBmeOBqOOBlw0KK+OBvuOBjeOBiizjgZvjgYTjgYTjgaENCivjgb7jgoHjga/jgoks44GC44GN44Gy44KNDQor44G+44GV44GgLOOBsuOCjeOChuOBjQ0KK+OBvuOBmeOBoCzjgojjgYbjgZnjgZENCivjgb7jgZnjgaAs44Gy44KN44GXDQor44G+44GZ44GgLOOBn+OBi+OBlw0KK+OBvuOBmeOBoCzjgajjgoLjgZMNCivjgb7jgZnjgoTjgb4s44KK44Gk44GTDQor44G+44Gk44GgLOOCgOOBpOOBvw0KK+OBvuOBpOOBoCzjgarjgYrjgb8NCivjgb7jgaTjgYjjgaAs44Gk44KI44GXDQor44G+44Gk44GELOOBn+OBi+OBvuOBlQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44GR44GE44GYDQor44G+44Gk44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgobjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44GX44KF44GG44GE44GhDQor44G+44Gk44KC44GoLOOCiOOBhuOBn+OCjeOBhg0KK+OBvuOBpOOBquOBjCzjgb7jgZXjgobjgY0NCivjgb7jgaTjga4s44KE44GZ44Gy44GTDQor44G+44Gk44GuLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOBiuOBiyzjgb/jgaHjgZMNCivjgb7jgobjgb8s44GC44GN44KJDQor44KB44GL44GfLOOBsuOCjeOBjQ0KK+OCgeOCiSzjgZPjgYbjgZgNCivjgb/jgZ/jgass44Gf44KN44GGDQor44G/44Gf44GrLOOBv+OBoeOBsuOBqA0KK+OBv+OBqCzjgobjgb/jgZMNCivjgb/jgoTjgYzjgb8s44GX44GS44Gy44GVDQor44GE44GK44GNLOOBvuOBleOBguOBjQ0KK+OBv+OChOOCguOBqCzjgYLjgY3jgbLjgo0NCivjgb/jgoTjgoDjgoks44Go44KC44KG44GNDQor44G/44KE44GuLOOBn+OBi+OBguOBjQ0KK+OBv+OChOOBhuOBoSzjgb7jgZXjga/jgosNCivjgb/jgoTjgZbjgY0s44G+44GV44GL44GkDQor44KC44Gh44Ga44GNLOOChuOBjQ0KK+OCguOCguOBhCzjgbLjgafjgb7jgZUNCivjgoLjgoos44KG44GLDQor44KC44KKLOOBj+OBv+OBkw0KK+OCguOCiuOCguOBqCzjgojjgYbjgYTjgaENCivjgoLjgorjgoLjgags44KA44Gk44GTDQor44KC44KK44GK44GLLOOBkeOCk+OBmA0KK+OCguOCiuOBleOCjyzjgajjgoLjgbLjgo0NCivjgoLjgorjgZ8s44GL44Ga44KI44GXDQor44KC44KK44GfLOOBsuOCjeOBruOBtg0KK+OCguOCiuOBnyzjgYLjgY3jgbLjgZMNCivjgoLjgorjgZ8s44GX44KT44KEDQor44KC44KK44KE44G+LOOBn+OBi+OBlw0KK+OCguOCiuOChOOBvizjgZ/jgaTjgbLjgZMNCivjgoLjgabjgY4s44Go44GK44KLDQor44KA44KJ44GL44G/LOOBvuOBleOBguOBjQ0KK+OBguOBleOBrizjgZHjgpPjgZQNCivjgYLjgobjgYvjgo8s44GV44Go44GXDQor44KA44KJ44GKLOOBoOOBhOOBmeOBkQ0KK+OCgOOCieOBiuOBiyzjgZfjgZLjgosNCivjgoDjgonjgZ8s44Go44KC44GL44GaDQor44KA44GX44GC44GRLOOBiOOBv+OBkw0KK+OCgOOBnyzjgbLjgZXjgZcNCivjgarjgbnjgYQs44G+44GV44Gy44KNDQor44Gq44GM44GELOOBk+OBhuOBhOOBoQ0KK+OBquOBjOOBhCzjgb7jgZXjgZMNCivjgarjgYzjgb/jga0s44GV44KG44KKDQor44Gq44GM44GV44KPLOOBn+OBoOOBlw0KK+OBquOBjOOBnyzjgabjgaTjgYoNCivjgarjgYzjgoTjgb4s44Gm44Gk44KEDQor44Gq44GQ44KJLOOChuOBv+OBkw0KK+OBquOBhOOBqOOBhizjgbLjgo3jgZcNCivjgarjgYvjgYzjgo8s44KK44KF44GG44GYDQor44Gq44GL44GM44KPLOOChuOBv+OBkw0KK+OBquOBi+OBjOOCjyzjgoTjgZnjgZcNCivjgarjgYvjgYzjgo8s44G+44GV44Gy44KNDQor44Gq44GL44Gv44KJLOOBn+OBi+OBkw0KK+OBquOBi+OBhCzjgZfjgZLjgosNCivjgarjgYvjgYQs44Gf44GL44Gy44KNDQor44Gq44GL44GY44G+LOOBqOOBiuOCiw0KK+OBquOBi+OBmOOBvizjgobjgb/jgZMNCivjgarjgYvjgZjjgb4s44GL44Gk44KEDQor44GV44KP44GgLOOBv+OBiOOBkw0KK+OBquOBi+OCgOOCiSzjgYLjgY3jga7jgbYNCivjgbDjgpPjgbAs44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBsuOBp+OBsuOBqA0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44Gq44GL44KA44KJLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb7jgooNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBrizjgbXjgb/jgZMNCivjgarjgYvjga4s44Gy44KN44GL44GaDQor44Gq44GL44GKLOOBruOBtuOChuOBjQ0KK+OBquOBi+OBl+OBvizjgoTjgZnjgbLjgo0NCivjgarjgYvjgZ8s44GT44GG44GE44GhDQor44Gq44GL44GfLOOBguOBjeOBkw0KK+OBquOBi+OChOOBvizjgarjgYrjgoTjgZkNCivjgarjgYvjgoTjgb4s44Gy44KN44G144G/DQor44Gq44GL44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZHjgYTjgZMNCivjgarjgYvjgZbjgo8s44GL44Gk44KEDQor44Gq44GL44GW44KPLOOBkeOBhOOBmeOBkQ0KK+OBquOBjOOBiuOBiyzjgobjgZ/jgYsNCivjgarjgarjgZfjgoMs44KI44GX44Gy44KNDQor44Gq44KK44GfLOOBpOOCiOOBlw0KK+OBquOCiuOBnyzjgb7jgZPjgagNCivjgarjgZks44Gf44GR44GXDQor44Gq44GZ44GfLOOBsuOCjeOBlw0KK+OBq+OBlyzjgYvjga3jga7jgbYNCivjgavjgZfjgaAs44Gu44G244KG44GNDQor44Gr44GX44KA44KJLOOBleOBoeOBig0KK+OBvuOBleOBoCzjgZ/jgZHjgbLjgZMNCivjgavjgZfjgoDjgoks44Go44KC44GTDQor44Gr44GX44KA44KJLOOBvuOBleOChuOBjQ0KK+OBq+OBl+OBiizjgojjgZfjgZ/jgaANCivjgavjgZfjgoTjgb4s44G/44Gq44GTDQor44Gr44Gj44GfLOOBi+OBiuOCig0KK+OBruOBjOOBvyzjgoTjgZnjgbLjgo0NCivjga7jgarjgYss44Gf44GL44Gy44KNDQor44Gu44GbLOOBsuOBp+OBig0KK+OBruOBn+OBuSzjgZfjgpPjgZQNCivjga7jgags44GY44KF44KT44GE44GhDQor44Gu44GmLOOBsuOCjeOBjQ0KK+OBrOOBj+OBhCzjgb7jgZXjgbLjgo0NCivjgYrjgaEs44GC44GN44Gy44GTDQor44GK44Gh44GC44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBoCzjgojjgZfjgYvjgZoNCivjgYrjgYzjgZXjgo/jgoks44KG44GG44GYDQor44GK44GM44KPLOOCiOOBhuOBmA0KK+OBiuOBjOOCjyzjgZPjgYbjgZgNCivjgYrjgYzjgo8s44G+44GV44Gy44GTDQor44GK44GM44KPLOOBvuOBleOChA0KK+OBiuOBjOOCjyzjgarjgYrjgZ/jgZENCivjgYrjgYzjgo8s44Go44KC44G/DQor44GK44GO44GuLOOBvuOBk+OBqA0KK+OBiuOBiuOBsCzjgb7jgZXjgbLjgacNCivjgZ/jgY3jgb/jgoQs44KG44GN44GKDQor44GK44GK44Gv44GXLOOBn+OBoOOChuOBjQ0KK+OBiuOBiuOBr+OBlyzjgZ/jgY/jgb/jgpMNCivjgYrjgYrjgYQs44Gh44GV44GoDQor44GK44GK44GL44KPLOOBiOOBvw0KK+OBiuOBiuOCguOCiizjgZjjgoXjgpPjgYsNCivjgYrjgoDjgoks44G+44KGDQor44GK44Gq44GL44Gv44KJLOOBn+OBkeOBpOOBkA0KK+OBiuOBiuOBq+OBlyzjgojjgZfjga7jgooNCivjgYrjga4s44GC44GN44GTDQor44GK44GK44GK44GLLOOBn+OBi+OBlw0KK+OBiuOBl+OBvizjga7jgbYNCivjgYrjgZfjgb4s44GR44KT44GE44GhDQor44GE44GR44G+44GkLOOBn+OBi+OBkw0KK+OBiuOBiuOBnyzjgZ/jgZHjgZcNCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44GfLOOBleOBoeOBkw0KK+OBiuOBiuOBnyzjgZ/jgb/jgZMNCivjgbXjgY/jgaAs44G/44GIDQor44GK44Gc44GNLOOBkeOBhOOBhOOBoQ0KK+OBiuOBhOOBoCzjgbLjgajjgZcNCivjgYrjgYTjgZgs44GP44Gr44Gy44KNDQor44GK44GL44GgLOOBl+OCk+OBmA0KK+OBmeOBjuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgZbjgY0s44KE44GZ44Gy44KNDQor44GK44GL44GW44GNLOOChOOBmeOBlw0KK+OBiuOBi+OBluOCjyzjgbLjgajjgZcNCivjgYrjgY/jgaAs44Gm44Gk44KEDQor44GK44GP44GgLOOBvuOBleOBjQ0KK+OBiuOBj+OCgOOCiSzjgZfjgZLjgosNCivjgYrjgY/jgoDjgoks44Gy44Gn44Gy44GoDQor44GK44GP44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBj+OChOOBvizjgYLjgY3jgbLjgo0NCivjgYrjga4s44Gq44GK44G/DQor44GK44GK44Gs44GNLOOBsuOBp+OBruOCig0KK+OBiuOBiuOBr+OBlyzjgajjgZfjgYoNCivjgajjgYrjgoQs44G+44GV44Gy44KNDQor44GK44Go44GQ44KNLOOBruOBtuOChuOBjQ0KK+OBleOBhOOBlOOBhizjgZ/jgZHjgbLjgo0NCivjgZXjgYTjgajjgYYs44KI44GX44Gf44KN44GGDQor44GV44GE44Go44GGLOOBguOBjeOBsuOBlQ0KK+OBleOBhOOBqOOBhizjgbXjgb/jgbLjgZMNCivjgZXjgYTjgajjgYYs44Gy44KN44GNDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgZjjgoXjgpMNCivjgZXjgYTjgajjgYYs44GL44KT44GYDQor44GV44GL44GI44Gg44GrLOOBv+OBiw0KK+OBleOBi+OBhCzjga7jgbbjgoTjgZkNCivjgZXjgYvjgYQs44Go44GP44GY44KN44GGDQor44GV44GL44GfLOOBpOOCiOOBlw0KK+OBleOBi+OBnyzjgYvjgZrjgbLjgZMNCivjgZXjgY/jgb4s44Gf44GL44Gy44KNDQor44GV44GP44KJ44Gw44KE44GXLOOBguOBpOOBlw0KK+OBleOBj+OCieOBhCzjgb7jgaTjgYoNCivjgZXjgY/jgZ8s44KI44GX44GC44GNDQor44GV44GV44GNLOOBvuOBleOBi+OBmg0KK+OBleOBleOBjSzjgYLjgY3jgokNCivjgZXjgZXjgY0s44GV44Gh44GTDQor44GV44GV44GNLOOCiOOBl+OChuOBjQ0KK+OBleOBleOCgSzjgojjgYbjgYTjgaENCivjgZXjgajjgYYs44GL44Ga44Gu44KKDQor44GV44Go44GGLOOBvuOBleOBsuOBkw0KK+OBleOBqOOBhizjgojjgZfjgbLjgo0NCivjgZXjgajjgYYs44KI44GX44KN44GGDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZXjgajjgYYs44Gy44KN44GXDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgZfjgofjgYbjgZgNCivjgZXjgajjgYYs44KE44GIDQor44GV44Go44GGLOOBj+OBv+OBkw0KK+OBleOBqOOBhizjgbLjgo3jgoTjgZkNCivjgZXjgajjgYYs44KK44GIDQor44GV44KP44GgLOOBn+OBi+OBrQ0KK+OBleOCj+OBr+OBlyzjgZ/jgaTjgobjgY0NCivjgZXjgo/jga4s44GL44Ga44Gy44KNDQor44Gb44GQ44GhLOOBl+OCheOBhuOBuOOBhA0KK+OBm+OBjSzjgajjgoLjgZMNCivjgZvjgY3jgZDjgaEs44KI44GX44Gy44KNDQor44Gb44GN44GQ44GhLOOBleOBqOOBlw0KK+OBl+OBsCzjgYvjgYrjgooNCivjgZfjgbDjgZ8s44GC44KE44GTDQor44GX44Gw44GfLOOBvuOBleOBr+OCiw0KK+OBl+OBtuOChCzjgZ/jgYvjgZcNCivjgZfjgb7jgaAs44GX44KF44GG44GYDQor44GX44G/44GaLOOBi+OBpOOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgZ/jgYvjgobjgY0NCivjgZfjgb/jgZos44Go44KC44Gy44KNDQor44GX44G/44GaLOOBi+OBpOOChuOBjQ0KK+OBl+OBv+OBmizjgZHjgpPjgZgNCivjgZfjgb/jgZos44GR44KT44Gf44KN44GGDQor44G144GY44GI44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBl+OCguOChOOBvuOBoCzjgZfjgpPjgYTjgaENCivjgZfjgarjgYzjgo8s44Go44KC44Gy44GnDQor44GX44KT44KELOOBv+OBpOOBruOCig0KK+OBl+OBiuOBvyzjgZfjgpPjgZgNCivjgZfjgYrjgaQs44GL44Gk44Gy44GTDQor44Gb44GN44GQ44GhLOOBqOOBiuOCiw0KK+OBpOOBruOBoCzjgZ/jgYvjgZcNCivjgZfjgonjgZXjgYss44GC44Gk44GKDQor44GX44KN44GX44GfLOOBsuOCjeOChuOBjQ0KK+OBl+OBn+OCiSzjgbLjgZXjgZcNCivjgZfjgofjgYYs44GY44KF44KT44GE44GhDQor44GZ44GM44KP44KJLOOBv+OBuw0KK+OBmeOBjOOCj+OCiSzjgZXjgajjgZcNCivjgZnjgY7jgoLjgags44GX44KH44GG44GE44GhDQor44GZ44GO44GfLOOBqOOCguOBi+OBmg0KK+OBmeOBjuOBnyzjgb7jgZXjgojjgooNCivjgZnjgY7jgZ8s44GL44Gk44Gy44GTDQor44GZ44GO44GG44KJLOOBleOBqOOBkw0KK+OBmeOBjuOBhuOCiSzjgajjgojjgbLjgZUNCivjgZnjgY7jgoTjgb4s44G/44Ga44G7DQor44GE44GR44Ge44GILOOBvuOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgbLjgo3jgYLjgY0NCivjgZnjgYss44Go44KC44KG44GNDQor44GZ44GR44GM44KPLOOBruOBtuOCiOOBlw0KK+OBmeOBv+OBruOBhuOBiCzjgbLjgafjgY0NCivjgZnjgb/jgojjgZcs44Gf44Gt44GL44GaDQor44GZ44G/44KI44GXLOOBqOOBl+OBv+OBpA0KK+OBmeOBquOBvyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44KE44Gh44KIDQor44GZ44Ga44GNLOOBvuOCguOCiw0KK+OBmeOBmuOBjSzjgYLjgY3jgbLjgo0NCivjgZnjgZrjgY0s44GC44GN44KJDQor44GZ44Ga44GNLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgYTjgaPjgbrjgYQNCivjgZnjgZrjgY0s44G+44GV44GoDQor44GZ44Ga44GNLOOBruOBtuOBguOBjQ0KK+OBl+OCh+OBhuOBmCzjgZfjgZoNCivjgZfjgofjgYYs44GX44KH44GG44Gf44KN44GGDQor44Gf44Gw44GfLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBoCzjgajjgZfjgYoNCivjgZ/jganjgZPjgo0s44Gy44Gn44KG44GNDQor44Gf44GM44G/LOOBk+OBhuOBmA0KK+OBn+OBkOOBoSzjgZ/jgYvjgZcNCivjgZ/jgZDjgaEs44Gy44KN44GC44GNDQor44Gf44GELOOBvuOBleOBpuOCiw0KK+OBn+OBhOOCiSzjgYLjgaTjgZcNCivjgZ/jgYTjgZUs44G/44Gk44Gy44KNDQor44Gf44GY44G+LOOBjeOCiOOBlw0KK+OBn+OBi+OBoCzjgZ/jgaDjgarjgYoNCivjgZ/jgYvjgaAs44GI44Gk44KN44GGDQor44Gf44GL44GOLOOBpuOBpOOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYLjgaTjgoQNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBqOOBiuOCiw0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgY0NCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gf44GL44Gv44GXLOOChuOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44KG44GG44GZ44GRDQor44Gf44GL44Gv44GXLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbXjgb8NCivjgZ/jgYvjgYQs44GX44Gu44G2DQor44Gf44GL44GuLOOBi+OCk+OBkw0KK+OBn+OBi+OBl+OBvizjgarjgYrjgoQNCivjgZ/jgYvjgoTjgb4s44Gy44Gn44Gk44GQDQor44Gf44GR44GgLOOBi+OBmuOCiOOBlw0KK+OBn+OBkeOBhOOBoSzjgZHjgYTjgZnjgZENCivjgZ/jgZHjgb7jgZUs44GR44KT44GE44GhDQor44Gf44GR44KA44KJLOOBl+OBuw0KK+OBn+OBkeOCgOOCiSzjgZfjgoXjgpPjgZnjgZENCivjgZ/jgZHjgarjgYss44Gq44GK44GoDQor44Gf44GR44GX44GfLOOBl+OCh+OBhuOBnuOBhg0KK+OBn+OBkeOBhuOBoSzjgYLjgaTjgagNCivjgZ/jgZHjgYbjgaEs44Gy44Go44GXDQor44Gf44GR44GG44GhLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBn+OBjeOBi+OCjyzjgYLjgaTjgZcNCivjgZ/jgY3jgY3jgZ8s44Gf44GL44GXDQor44Gf44GN44GW44KPLOOBsuOBp+OBqA0KK+OBn+OBkyzjgojjgZfjgY0NCivjgZ/jgYvjga4s44KC44Go44KG44GNDQor44Gf44G+44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBvuOBjSzjgYrjgZXjgoANCivjgZ/jgoDjgoks44GL44Ga44Gf44GLDQor44Gf44Gq44G5LOOBsuOCjeOBruOBtg0KK+OBn+OBquOBuSzjgbXjgb/jgYoNCivjgZ/jgarjgYss44GN44KH44GG44G444GEDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBkw0KK+OBn+OBquOBiyzjgb/jgbsNCivjgZ/jgarjgYss44KI44GX44Gy44GVDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBn+OBquOBiyzjgb7jgZXjgojjgZcNCivjgZ/jgass44GL44Ga44Gq44KKDQor44Gf44Gr44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OBn+OBq+OBl+OCh+OBhizjgZfjgpPjgZQNCivjgZ/jgabjgoTjgb4s44KI44GX44G144G/DQor44Gf44Gk44G/LOOBvuOBmeOBvw0KK+OBn+OBhuOCiSzjgZ/jgYvjgajjgZcNCivjgZ/jgZbjgo8s44Go44KC44KG44GNDQor44Gf44Ga44GRLOOBm+OBhOOBhOOBoQ0KK+OBpuOCieOBoCzjgZHjgYTjgZMNCivjgajjgYbjgb4s44GL44Ga44Gy44KNDQor44Go44GK44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OBqOOCgeOBiuOBjyzjgYLjgY3jgYoNCivjgajjgb/jgYTjgYgs44Gv44KE44GoDQor44G144Gf44Gk44GOLOOBsuOCjeOBlw0KK+OBqOOCguOBqOOBlyzjgZHjgpPjgZgNCivjgajjga3jgYzjgo8s44GC44GN44GTDQor44GK44GP44KA44KJLOOBruOCiuOBsuOBkw0KK+OBqOOBl+OBl+OBkizjgbLjgo3jgZcNCivjgajjgojjgaAs44GL44Ga44Gq44KKDQor44Go44KI44Gq44GLLOOBvuOBleOChA0KK+OBpOOBsOOBjSzjgabjgaTjgoQNCivjgaTjgaHjgoLjgags44G144G/44GKDQor44Gk44GgLOOBleOBqOOBlw0KK+OBpOOBoCzjgYvjgogNCivjgaTjgaAs44Go44GX44GIDQor44Gk44GY44GELOOBqOOCguOBn+OBiw0KK+OBpOOBmOOCgOOCiSzjga7jgorjgZMNCivjgaTjgYvjga/jgoks44Go44GX44KN44GGDQor44Gk44Gu44GgLOOBl+OCh+OBhuOBmA0KK+OBpOOCi+OBjizjga/jgovjgbLjgZMNCivjgaTjgovjgZ8s44Gm44KL44Gy44GTDQor44Gk44GX44G+LOOBjeOBrOOCiA0KK+OBpOOBpOOBhCzjgbLjgo3jgobjgY0NCivjgaTjgaHjgaAs44GL44Gk44KG44GNDQor44GG44Gh44GgLOOBleOBqOOCiw0KK+OBhuOBoeOBoCzjgZ/jgY/jgZgNCivjgYbjgaHjgY/jgoks44Gf44GR44GXDQor44GG44Gh44Gf44GrLOOBi+OBpOOBkw0KK+OBhuOBiOOBoCzjgZXjgY3jgZMNCivjgYbjgYjjgaAs44Gh44GIDQor44GG44GI44GgLOOBjOOBjw0KK+OBhuOBiOOBoCzjgYLjgY3jga7jgooNCivjgYbjgYjjgoDjgoks44Gy44KN44GTDQor44GG44GI44GuLOOBsuOCjeOBlw0KK+OBhuOBiOOBpOOBjSzjgb7jgY0NCivjgYTjgZEs44G+44GV44KLDQor44GG44KB44GgLOOBv+OBuw0KK+OBhuOCgeOCgOOCiSzjgarjgaTjgZMNCivjgYbjga7jgY0s44Gu44G244Gy44GTDQor44GG44KJ44GX44GfLOOBqOOCguOBkw0KK+OBhuOCieOBnyzjgajjgoLjgobjgY0NCivjgYbjgZfjgYos44KI44GX44GKDQor44GG44Gf44GM44KPLOOBpuOBpOOChA0KK+OCj+OBoCzjgajjgoLjgZMNCivjgo/jgaAs44GC44GN44Gy44GoDQor44KP44GgLOOBsuOCjeOBn+OBpA0KK+OCj+OBoCzjgb7jgZXjgbLjgo0NCivjgo/jgYzjgaTjgb4s44GX44KH44GG44GE44GhDQor44KP44GL44G+44GkLOOChuOBhuOBmA0KK+OCj+OBjeOBnyzjgbLjgo3jgYLjgY0NCivjgo/jgZMs44Gy44KN44GL44GaDQor44KP44KK44GL44GfLOOBquOBiuOChuOBjQ0KK+OCj+OBl+OBmizjgZfjgofjgYYNCivjgo/jgZ/jgarjgbks44GX44KF44KT44GYDQor44KP44Gf44Gq44G5LOOCiOOBl+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgajjgZfjgYoNCivjgo/jgZ/jgarjgbks44GM44GPDQor44KP44Gf44Gq44G5LOOBsuOCjeOBteOBvw0KK+OBiuOCgOOCiSzjgbLjgo3jgbLjgacNCivjgo/jgZ/jgarjgbks44GT44GG44Gb44GEDQor44KP44Gf44Gq44G5LOOBquOBiuOBkw0KK+OCj+OBn+OBquOBuSzjgorjgoXjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44Gm44Gk44KN44GGDQor44KE44GOLOOBqOOCguOBvw0KK+OChOOBjizjgobjgYbjgZMNCivjgoTjgb7jgaAs44Gf44GL44GoDQor44KE44G+44GgLOOBruOCiuOBqOOBlw0KK+OChOOBvuOBoCzjgbLjgafjgbXjgb8NCivjgoTjgb7jgaAs44GX44GS44GKDQor44KE44G+44GgLOOBn+OBkeOBsuOCjQ0KK+OChOOBvuOBteOBjyzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G+44KK44GTDQor44KE44G+44GQ44GhLOOCiOOBhuOBmA0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZMNCivjgoTjgb7jgZDjgaEs44Gy44KN44GL44GaDQor44KE44G+44GYLOOBqOOBiuOCiw0KK+OChOOBvuOBi+OCjyzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44Gf44GL44Gu44KKDQor44KE44G+44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOCguOBqCzjgb/jgaTjgZ7jgYYNCivjgoTjgb7jgoLjgags44KG44GN44GTDQor44KE44G+44KC44GoLOOBsuOCjeOChOOBmQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jgoLjgags44G+44GV44GNDQor44KE44G+44KC44GoLOOChuOBhuOBmA0KK+OChOOBvuOCguOBqCzjgobjgZ/jgYsNCivjgoTjgb7jgaos44Gb44GE44GE44Gh44KN44GGDQor44KE44G+44GV44GNLOOBi+OBpOOBvw0KK+OChOOBvuOBl+OBnyzjga7jgorjgajjgZcNCivjgoTjgb7jgZfjgZ8s44Go44GK44KLDQor44KE44G+44GW44GNLOOBsuOCjeOBlw0KK+OChOOBquOBjizjgorjgofjgYYNCivjgoTjga4s44GR44KT44Gf44KN44GGDQor44KE44GX44KNLOOBn+OBkeOBlw0KK+OChOOBmeOBhCzjgbXjgajjgZcNCivjgoTjgZnjgoDjgo0s44Gf44GL44GXDQor44KE44GZ44GG44GYLOOCiOOBl+OChuOBjQ0KK+OCiOOBk+OBiCzjgbLjgafjga7jgooNCivjgojjgZPjgYQs44G+44KEDQor44KI44GT44G/44GeLOOBjeOCiOOBl+OBkg0KK+OCiOOBk+OChOOBvizjgb7jgZXjgbLjgZMNCivjgojjga3jgZbjgo8s44GL44Ga44Gy44GTDQor44KI44GX44GgLOOBkeOCk+OChA0KK+OCiOOBl+OBoCzjga7jgbbjgbLjgo0NCivjgojjgZfjgaAs44GL44Gk44KEDQor44KI44GX44GgLOOBi+OBmuOBguOBjQ0KK+OCiOOBl+OBoCzjgajjgoLjgb8NCivjgojjgZfjgYQs44GX44GS44GoDQor44KI44GX44KA44KJLOOBpuOCi+OBi+OBmg0KK+OCiOOBl+OChOOBvizjgYjjgYTjgZgNCivjgojjgZfjgZbjgo8s44GV44Gh44GTDQor44G144GY44GX44G+LOOBkeOCk+OBn+OCjeOBhg0KK+OChuOBguOBlSzjgZHjgYQNCivjgobjgY0s44Gb44Gk44GTDQor44KG44GNLOOBguOBjeOCiA0KK+OChuOBhCzjgaDjgYTjgZnjgZENCivjgYLjgaDjgaEs44Gq44GK44Gf44GRDQor44Gw44KTLOOBn+OBi+OBlw0KK+OBteOCi+OBhCzjgojjgZfjga7jgooNCivjga/jgZvjgYzjgo8s44Gv44GY44KBDQor44Gy44KJ44GL44KPLOOBvuOBquOBtg0KK+OBhOOBqOOBhizjgajjgZfjgbLjgZMNCivjgYTjgo/jgZXjgY0s44KK44KH44GG44GYDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBr+OCiSzjgojjgZfjgb/jgaQNCivjgb7jgYjjga/jgoks44GK44GV44KADQor44G+44Gk44Gf44GrLOOBl+OBkuOBig0KK+OCguOCiuOBhOOBoSzjgYjjgYTjgZjjgo3jgYYNCivjgavjgZfjgYbjgaEs44Gu44G244KG44GNDQor44G144GY44G+44GNLOOBn+OBhOOBnuOBhg0KK+OBiuOBiuOBr+OCiSzjgZ/jgYvjgZcNCivjgZXjgarjgaAs44Gy44Gn44GC44GNDQor44Gd44GtLOOBpOOBqOOCgA0KK+OBqOOBruOCgOOCiSzjgojjgZfjgobjgY0NCivjgZfjgb/jgZos44GR44GEDQor44G/44GX44G+LOOBvuOCiuOBkw0KK+OBteOBmOOBnyzjgZ/jgo3jgYYNCivjgbXjgZjjgZ8s44Gy44Gn44GNDQor44G144GY44GfLOOCiOOBhg0KK+OBteOBmOOCj+OCiSzjgZPjgYbjgZjjgo3jgYYNCivjgbXjgZjjgoXjgYYs44GX44KT44GE44GhDQor44G144GL44GgLOOBn+OBj+OChA0KK+OBteOBj+OBoCzjgobjgZ/jgYsNCivjgbXjgY/jgbLjgZUs44Gq44GK44Gf44GLDQor44G144GP44GW44GoLOOBguOChA0KK+OBteOBj+OBluOCjyzjgZ/jgYvjgZcNCivjgbXjgovjgZXjgo8s44GN44Gv44KLDQor44Gv44GM44KPLOOBn+OBi+OBlw0KK+OBr+OBjizjgbLjgo3jgZ/jgYsNCivjga/jgonjgaAs44G/44Gk44KLDQor44Gv44KJ44GgLOOBruOBtuOBsuOCjQ0KK+OBr+OCieOBoCzjgb7jgY0NCivjga/jgonjgb7jgY0s44Gq44GK44GTDQor44Gv44Gb44GM44KPLOOCiuOBiA0KK+OBr+OBm+OBjOOCjyzjgbLjgafjgYLjgY0NCivjga/jgZfjgYos44KG44GLDQor44Gv44GZ44G/LOOBsuOCjeOBlw0KK+OBr+OBmeOBvyzjgZHjgpPjgYTjgaHjgo0NCivjga/jgaPjgajjgoos44KI44KK44GTDQor44GE44GX44GL44KPLOOBtuOCk+OBuuOBhA0KK+OBr+OChOOBlyzjgZ/jgYvjgZMNCivjgbLjgonjga4s44Gf44GP44KEDQor44Gy44KJ44GuLOOBi+OBmuOBguOBjQ0KK+OBsuOCieOBrizjgajjgZfjgYLjgY0NCivjgbLjgo3jgbks44Gy44Gn44GNDQor44GX44Gu44GgLOOBkeOCk+OBmA0KK+OBsuOBleOBoCzjgZ/jgYvjgobjgY0NCivjgbss44Gf44GR44GXDQor44G744KT44GU44GGLOOBpuOCi+OBsuOBkw0KK+OBu+OBlyzjgb/jgaHjgZMNCivjgbvjgZfjga4s44G+44GV44GNDQor44G744Gd44GL44KPLOOBsuOCjeOBi+OBmg0KK+OBu+OBneOBrizjgobjgb8NCivjgYvjgajjgYYs44KI44GX44KN44GGDQor44GE44GOLOOCiOOBhuOBkw0KK+OBhOOBkeOBoCzjgajjgZfjgobjgY0NCivjgYTjgY/jgo0s44Gu44KK44Gy44KNDQor44GE44G+44GELOOBi+OBmuOCiOOBlw0KK+OBhOOBquOBoCzjgZPjgYbjgbjjgYQNCivjgYTjga7jgZDjgaEs44Gf44GL44KG44GNDQor44GE44GX44GQ44KNLOOBpOOBkOOBi+OBmg0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgY0NCivjgYTjgZfjgYvjgo8s44GR44KT44GYDQor44GE44GX44GW44GNLOOChuOBi+OCig0KK+OBhOOBl+OBnOOBjSzjgojjgZfjgagNCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44Go44GGLOOBvuOBleOCiOOBlw0KK+OBhOOBqOOBhizjgarjgYrjgY0NCivjgYTjgajjgYYs44KI44GX44G/DQor44GE44G+44GM44KPLOOBkeOBhA0KK+OBhOOBluOCjyzjgZPjgYbjgZgNCivjgYTjgZrjgb8s44GX44KH44GG44GYDQor44GE44Ga44G/44Gg44GmLOOBruOCiuOBqOOBlw0KK+OBi+OBtuOCieOBjizjgYvjgYrjgooNCivjgYvjgb/jgoTjgb4s44Go44GK44KLDQor44GL44Gq44KE44G+LOOBk+OBhuOBmA0KK+OBi+OBquOBluOCjyzjgZjjgo3jgYYNCivjgYvjgpPjgbDjgoks44GL44Gk44KI44GXDQor44GL44KT44GgLOOChuOBhuOBkw0KK+OBi+OCk+OBoCzjgb/jgZnjgb7jgosNCivjgYvjga3jgZMs44Gq44KK44Go44KCDQor44GL44GX44KA44KJLOOBsuOCjeOBlw0KK+OBi+OBn+OBjuOCiizjgZfjgpPjgZnjgZENCivjgYvjgajjgYYs44Gy44KN44Gu44KKDQor44GL44Go44GGLOOBruOBtuOBsuOBlQ0KK+OBi+OCj+OBoCzjga/jgovjgb8NCivjgYvjgo/jgZnjgb8s44KI44GG44GTDQor44GN44GpLOOBl+OCheOCk+OBhOOBoQ0KK+OBjeOBj+OBoSzjga7jgbbjgbLjgo0NCivjgY3jgoLjgags44Gf44GP44KEDQor44GN44KA44KJLOOBkeOCk+OBnw0KK+OBjeOCk+OBqSzjgb/jgaHjga/jgosNCivjgY3jgZ/jgoDjgoks44G/44G7DQor44GN44Gf44GuLOOBleOBoOOBig0KK+OBjeOBn+OCj+OBn+OBmyzjgZnjgZnjgoANCivjgY3jgaPjgZ8s44KE44GZ44GTDQor44GN44KE44G+LOOBm+OBhOOBmA0KK+OBjeOCiOOBnyzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GYDQor44GT44Gw44KE44GXLOOCiOOBhuOBkw0KK+OBk+OBjCzjgYLjgaTjgoQNCivjgZPjga/jgoks44Gf44GL44KG44GNDQor44GT44GY44GqLOOBkeOCkw0KK+OBk+OCk+OBrizjgZHjgYTjgZQNCivjgZPjgZrjgYss44G+44GV44GNDQor44GT44GE44GnLOOBl+OCk+OBmA0KK+OBk+OBvuOBpCzjgorjgoXjgYbjgZnjgZENCivjgZPjgb/jgarjgags44GX44KF44GG44GYDQor44GT44KC44KKLOOBleOBqOOBkw0KK+OBk+OCk+OBqSzjgbLjgo3jgbLjgZMNCivjgZPjgavjgZcs44Gu44KK44GTDQor44GP44G844KE44G+LOOBn+OBoOOBguOBjQ0KK+OBj+OBvuOBjOOBhCzjgorjgofjgYbjgZgNCivjgY/jgb7jgZ8s44Gf44GL44GTDQor44GP44KK44Gv44KJLOOBn+OBkeOBlw0KK+OBj+OCiuOBr+OCiSzjgZHjgYTjgZMNCivjgY/jgorjgZ8s44GV44Go44GXDQor44GP44GV44GuLOOBsuOCjeOBteOBvw0KK+OBj+OBl+OBoCzjgYLjgY3jgbLjgZMNCivjgb7jgYjjgaAs44KG44GNDQor44G+44GNLOOBkeOBhOOBmeOBkQ0KK+OBvuOBjeOBnyzjgZfjgpPjgZgNCivjgb7jgovjgoTjgb4s44Gk44Gt44GKDQor44G+44GZ44GgLOOBoOOBhOOBoQ0KK+OBvuOBpOOBsOOCiSzjgaHjgYvjgokNCivjgb7jgaTjgbDjgoks44Gy44Gn44Go44GXDQor44G+44Gk44GELOOBkeOBhOOBkw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgoDjgoks44GX44KT44Gf44KN44GGDQor44G+44Gk44GKLOOBi+OBmuOBsuOCjQ0KK+OBv+OBi+OBvyzjgb/jgaTjgYoNCivjgb/jgY0s44Gf44GL44GC44GNDQor44G/44Gu44GG44KJLOOBm+OBhOOBmA0KK+OBv+OBl+OBvizjgZHjgpPjgYTjgaENCivjgb/jgaTjgarjgYws44KI44GX44KG44GNDQor44G/44GG44KJLOOBvuOBleOBruOCig0KK+OBv+OCjyzjgZ/jgYvjga7jgbYNCivjgb/jgoTjgYos44KE44GZ44Gv44KLDQor44G/44KE44GfLOOBi+OBquOBhg0KK+OBv+OBmuOBn+OBqyzjgYvjgZrjgbLjgZMNCivjgb/jgZrjgZ/jgass44Gy44Gn44Gu44G2DQor44KC44Gh44Ga44GNLOOBv+OBpOOCiw0KK+OCguOBoeOBmuOBjSzjgY/jgb/jgZMNCivjgoLjgaHjgZrjgY0s44Gu44G244KG44GNDQor44KC44GOLOOBsuOCjeOBlw0KK+OCguOCiizjgZXjgajjgosNCivjgoLjgoos44Gf44Gg44Gy44GTDQor44KC44KKLOOBn+OBoOOChuOBjQ0KK+OCguOCiizjgajjgoLjgbLjgZUNCivjgoLjgoos44Go44GX44GNDQor44KC44KK44KE44G+LOOBqOOBl+OBig0KK+OCguOCjeOBiuOBiyzjgobjgY0NCivjgoLjgajjgbAs44Gg44GE44GV44GPDQor44KA44Gt44GoLOOBi+OBpOOBvuOBlQ0KK+OCgOOCieOBhCzjgojjgZfjgZMNCivjgoDjgonjgYrjgYss44GR44KTDQor44KA44KN44GELOOBsuOBp+OBsuOCjQ0KK+OBquOBjOOBteOBmCzjgY3jgb/jgbLjgagNCivjgarjgYzjgYQs44GC44GN44KJDQor44Gq44GE44Go44GGLOOChuOBjeOBkw0KK+OBquOBhOOBqOOBhizjgZ/jgo3jgYYNCivjgarjgYvjgYzjgo8s44G/44Gu44KLDQor44Gq44GL44Gv44KJLOOBv+OChOOBkw0KK+OBquOBi+OBmOOBvizjgobjgZ/jgYsNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GTDQor44Gq44GL44KA44KJLOOBn+OBkeOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GC44KEDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgarjgYvjgoDjgoks44GC44Gk44GXDQor44Gq44GL44KA44KJLOOBsuOBleOBqA0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgarjgYvjgYos44GI44GE44GYDQor44Gq44GL44Gk44GL44GVLOOBjeOCiOOBlw0KK+OBquOBi+OChOOBvizjgb7jgooNCivjgarjgoDjgoks44KA44Gt44KG44GNDQor44Gq44GZ44GuLOOBquOBiuOBjQ0KK+OBq+OBhOOBnOOBjSzjgajjgZfjga/jgosNCivjgavjgZfjgYvjgo8s44GT44GG44Ge44GGDQor44Gr44GX44GN44GK44KKLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OBluOCjyzjgYvjgaTjga7jgooNCivjga7jgYLjgY0s44KI44GG44GTDQor44Gu44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBruOBoCzjgobjgYbjgZMNCivjga7jgZDjgaEs44Gy44GV44GXDQor44Gu44KA44KJLOOBsuOBp+OBjQ0KK+OBiuOBoeOBguOBhCzjgZPjgZnjgZENCivjgoLjgoos44G+44KK44GTDQor44GK44GM44GV44KP44KJLOOBv+OBpOOBsuOBlQ0KK+OBiuOBjOOBleOCj+OCiSzjgZ/jgaTjgZcNCivjgYrjgYzjgo8s44KK44KH44GG44GTDQor44GK44GM44KPLOOBn+OBi+OBsuOCjQ0KK+OBiuOBjOOCjyzjgoTjgZnjgbLjgZUNCivjgYrjgZDjgoks44G144G/44Gu44KKDQor44GK44GQ44KJLOOBvuOBleOBjQ0KK+OBiuOBiuOBhOOBlyzjgbLjgo3jgoQNCivjgYrjgYrjgYvjgo8s44Go44GX44GC44GNDQor44GK44GK44GL44KPLOOBmOOCheOCk+OBkw0KK+OBiuOBi+OBnCzjgarjgYrjgY0NCivjgYrjgY0s44Gm44Gk44KEDQor44GK44KA44KJLOOBguOBpOOBlw0KK+OBiuOBiuOBmeOBvyzjgb7jgZXjgbLjgo0NCivjgYrjgYrjgZ8s44G144G/44Gy44GTDQor44GK44GK44Gf44GRLOOBpuOBpOOBmA0KK+OBiuOBiuOBn+OBqyzjgZHjgpMNCivjgYrjgYrjgoTjgb4s44GR44KT44GYDQor44GK44Gc44GNLOOBsuOCjeOBlw0KK+OBiuOBi+OCguOBqCzjgZjjgoXjgpMNCivjgYrjgYvjgoDjgoks44GT44GG44GX44KTDQor44GK44GL44KA44KJLOOBvuOCguOCiw0KK+OBiuOBj+OCgOOCiSzjgb7jgarjgb8NCivjgYrjgpPjgaAs44Gu44KK44Gy44GTDQor44GK44Gu44Gn44KJLOOBruOCiuOChuOBjQ0KK+OBiuOChOOBuSzjgZ/jgYvjga7jgooNCivjgZXjgYws44Go44GX44GC44GNDQor44GV44GE44Go44GGLOOChuOBhuOBkw0KK+OBleOBi+OBhCzjgZXjgarjgYgNCivjgYTjgY4s44GC44GN44Gu44KKDQor44GV44GL44KC44GoLOOBsuOBleOBrQ0KK+OBleOBi+OCguOBqCzjgojjgZfjgbLjgo0NCivjgZXjgYvjgaTjgY4s44GL44Ga44GKDQor44GV44GL44GG44GILOOBkeOCk+OBmA0KK+OBleOBj+OBvizjgb7jgorjgZMNCivjgZXjgY/jgoks44GI44GE44GNDQor44GV44Gq44GgLOOCiOOBl+OBsuOCjQ0KK+OBleOBleOBjSzjgZ/jgZHjgYoNCivjgZXjgZXjgY0s44Gq44GK44KEDQor44GV44Go44GGLOOBi+OBpOOChuOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgZXjgajjgYYs44Go44GX44GC44GNDQor44GV44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBleOBqOOBhizjgbLjgafjgbLjgZUNCivjgZXjgajjgYYs44GL44Gk44Gy44KNDQor44GV44Go44GGLOOBjeOCh+OBhuOBkw0KK+OBleOBqOOBhizjgoTjgZnjgbLjgagNCivjgZXjgajjgYYs44GL44Ga44Gy44GnDQor44GV44Go44GGLOOBleOBqOOBvw0KK+OBm+OBhOOBkSzjgb7jgZXjga7jgooNCivjgZvjgY0s44KI44GG44GE44GhDQor44Gb44GNLOOBpuOBpOOChA0KK+OBm+OBjSzjgabjgaQNCivjgZvjgY3jgZDjgaEs44Gf44GR44GXDQor44Gb44GfLOOBqOOBl+OBig0KK+OBl+OCk+OBjOOBhCzjgYLjgY3jgZMNCivjgZfjgbDjgZ8s44KI44GX44GTDQor44GX44Gw44GfLOOChuOBjeOBruOCig0KK+OBl+OBtuOBjSzjgZjjgo3jgYYNCivjgZfjgZLjgajjgb8s44GL44Ga44G/44GkDQor44GX44GMLOOBsuOCjeOBlw0KK+OBl+OBhOOBsCzjgb/jgYsNCivjgZfjgb7jgaAs44GE44Gh44KN44GGDQor44GX44G+44GL44KPLOOBl+OBkuOCiw0KK+OBl+OBv+OBmizjgZnjgZnjgoANCivjgZfjgb/jgZos44Gf44GL44Gk44GqDQor44GX44G/44GaLOOBiuOBleOCgA0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgZfjgoLjgoDjgoks44Gf44GL44GXDQor44GX44KC44KA44KJLOOBguOBjeOCiQ0KK+OBl+OBiuOBmOOCiizjgbLjgo3jgZcNCivjgZfjgYrjgZbjgo8s44GC44KE44GTDQor44GX44KJ44GELOOChuOBhuOBkw0KK+OBl+OCieOBi+OCjyzjgbXjgb/jgYgNCivjgZ3jgb7jgpMs44GY44KTDQor44Gd44GG44KELOOBvuOBleOBqA0KK+OBneOBruOBoCzjgb7jgobjgb8NCivjgZnjgaAs44Go44KC44Gv44KLDQor44GZ44GM44GuLOOBkeOCk+OBhOOBoQ0KK+OBmeOBjOOBrOOBvizjgZXjgajjgZcNCivjgZnjgYzjgo8s44Gb44GE44GE44GhDQor44GZ44GO44GG44KJLOOBjeOCh+OBhuOBmeOBkQ0KK+OBmeOBjuOChOOBvizjgajjgoLjgbLjgo0NCivjgZnjgZrjgY0s44GR44KTDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgYLjgaTjgZcNCivjgZnjgZrjgY0s44GX44KT44GE44Gh44KN44GGDQor44GX44KH44GG44GYLOOBpuOBpOOChA0KK+OBn+OBkOOBoSzjgYvjgaTjgoQNCivjgZ/jgYTjgoks44Gf44Gg44GoDQor44Gf44GY44G+LOOCiuOBiA0KK+OBn+OBi+OBoCzjgZ/jgYvjga7jgooNCivjgYrjgYvjgoTjgb4s44GC44GV44GTDQor44Gf44GL44GO44GXLOOBv+OBi+OBkw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgajjgYrjgosNCivjgZ/jgYvjga/jgZcs44GN44KH44GG44GTDQor44Gf44GL44GNLOOCiOOBhuOBhOOBoQ0KK+OBn+OBi+OBiuOBiyzjgZ/jgY/jgoQNCivjgZ/jgYvjgYrjgYss44Gy44KN44KG44GNDQor44GE44G+44GE44Ga44G/LOOCiOOBl+OBig0KK+OBn+OBi+OBleOCjyzjgZ/jgYvjgZcNCivjgZ/jgYvjgZks44Gk44KI44GXDQor44Gf44GR44GELOOBm+OBpOOBkw0KK+OBn+OBkeOBquOBiyzjgZ/jgZHjgZcNCivjgZ/jgZHjgZbjgY0s44KI44GX44GTDQor44Gf44G+44GE44GXLOOBsuOBp+OBguOBjQ0KK+OBn+OBvuOBjSzjgZfjgZLjgosNCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gr44GQ44GhLOOBquOBiuOBjQ0KK+OBn+OBhuOBoSzjgbLjgo3jgarjgYoNCivjgabjgonjgb/jgaQs44Gg44GE44GZ44GRDQor44Go44GgLOOBvuOChA0KK+OBqOOBv+OBquOBjCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgb/jgZ8s44GC44GN44KIDQor44Go44KT44GQ44GGLOOBsuOBp+OBqOOBlw0KK+OBpOOBreOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgaTjgaTjgYQs44GL44Gk44KI44GXDQor44GG44Gh44GgLOOBn+OBkeOBlw0KK+OBhuOBoeOBr+OBlyzjgZ/jgY/jgYoNCivjgYbjgYjjgaAs44G+44GV44Gy44GTDQor44GE44Go44GGLOOCiOOBhuOBhOOBoQ0KK+OBhuOBiOOBoCzjgbLjgo3jgZcNCivjgYbjgYjjga/jgoks44Gy44Gn44GC44GNDQor44G144GY44GfLOOBl+OBuw0KK+OBhuOCgeOBoCzjgabjgaTjgoQNCivjgYbjgoHjga/jgoks44KE44KI44GEDQor44GG44KJ44G5LOOBsuOBleOBkw0KK+OCj+OBn+OBuSzjgoTjgZnjgZcNCivjgoTjgYzjgZXjgY0s44GZ44G/44GLDQor44KE44GO44KC44GoLOOBsuOCjeOBlw0KK+OChOOBmOOBvizjgYvjgaTjgb8NCivjgoTjgb7jgaAs44G/44Gh44GTDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgb/jgYvjgZMNCivjgoTjgb7jgZDjgaEs44GV44Go44GTDQor44KE44G+44GQ44GhLOOBqOOCguOBkw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44KE44GZ44Gy44KNDQor44KE44G+44KC44GoLOOBquOBiuOBjQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgoTjgb7jga0s44GL44Ga44Gy44KNDQor44KE44G+44GV44GNLOOBr+OCi+OBruOCig0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgY0NCivjgoTjgb7jgZbjgY0s44G+44GV44KG44GNDQor44KE44G+44GV44GNLOOBqOOBl+OChA0KK+OChOOBquOBjOOCjyzjgZ/jgZHjgZcNCivjgoTjgarjgY7jgaAs44KE44GZ44GKDQor44GK44GuLOOBsuOBp+OBruOBtg0KK+OChOOBquOBjuOBleOCjyzjgoTjgZnjgZcNCivjgoTjgZbjgY0s44Gq44GK44GNDQor44KE44GW44KPLOOBm+OBhOOBmA0KK+OCiOOBk+OChOOBvizjgbLjgo3jgZMNCivjgojjgZPjgoTjgb4s44Gf44GR44GXDQor44KI44KCLOOBjeOCh+OBhuOBmA0KK+OCiOOBl+OBoCzjgbLjgafjgYoNCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOBr+OCi+OBsuOBkw0KK+OCiOOBl+OBr+OCiSzjgYLjgobjgb8NCivjgojjgZfjga/jgoks44G+44GV44Gy44GnDQor44KI44GX44KC44KKLOOBn+OBi+OBlw0KK+OBnOOBo+OBpCzjgbLjgafjgogNCivjgYLjgbks44KI44GX44Gf44GgDQor44GC44Gg44GhLOOBk+OBhuOBmA0KK+OBguOBhOOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgYLjgYvjgYgs44G/44Gh44GTDQor44GC44KT44Gp44GGLOOBvuOBjQ0KK+OBguOBleOBvyzjgb/jgZUNCivjgYTjgb7jgarjgYss44Gv44KL44KIDQor44G544Gj44G3LOOChuOBhuOBmeOBkQ0KK+OBueOBo+OBtyzjgbLjgo3jgYLjgY0NCivjgaHjgYvjga/jgoks44GK44GV44KADQor44G144GY44GELOOBv+OBpOOBqOOBlw0KK+OBteOBmOOBleOBjSzjgZ/jgYvjgobjgY0NCivjgbXjgY/jgZfjgb4s44GC44Ga44GVDQor44GP44KN44GgLOOBqOOBl+OBvw0KK+OCguOCiizjgb7jgZXjgbLjgacNCivjgo/jgZ/jgarjgbks44Gf44GL44GIDQor44GP44KN44GgLOOBguOBleOBkw0KK+OBv+OChOOBhuOBoSzjgZjjgoXjgpPjgZMNCivjgYTjgajjgYYs44GN44GP44GTDQor44GE44GE44GgLOOBvuOChuOBvw0KK+OBi+OCj+OBrizjgb7jgYQNCivjgYLjgYTjgYbjgoks44Go44GX44GKDQor44Gu44GW44GNLOOBpuOCi+OBguOBjQ0KK+OBs+OBn+OBqyzjgYLjgoTjgb8NCivjgZ/jgavjgYLjgYQs44Gg44GE44GZ44GRDQor44GC44GK44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBjSzjgY3jgZXjgY8NCivjgYLjgYrjgY0s44GL44Ga44KG44GNDQor44GC44GK44KE44GOLOOBkeOCk+OBnw0KK+OBguOBi+OBq+OBlyzjgarjgYrjgbLjgo0NCivjgYLjgZXjgYos44G+44GV44Gy44GTDQor44GC44GV44GP44KJLOOBi+OBiA0KK+OBguOBl+OBluOCjyzjgYvjgZrjgY0NCivjgYLjgZ/jgY8s44Gy44KN44GXDQor44GC44Gg44GhLOOChuOBhuOBkw0KK+OBhOOBqOOBhizjgobjgooNCivjgZfjgb7jgoLjgags44GC44Go44KADQor44GV44GE44Go44GGLOOBvuOBleOCiw0KK+OBl+OBruOBr+OCiSzjgYvjgaTjgb8NCivjgYrjgYvjga4s44Gy44Gn44GTDQor44GK44GL44KC44GoLOOBsuOCjeOBlw0KK+OBsuOCieOBi+OCjyzjgojjgZTjgo3jgYYNCivjgZnjgYzjgazjgb4s44Go44KC44G/44GhDQor44GC44Gq44GW44KPLOOBv+OBruOCiw0KK+OBguOCieOBhCzjgajjgZfjgYvjgZoNCivjgYLjgonjgYQs44GN44KT44KEDQor44GC44KJ44GL44KPLOOChuOBv+OBkw0KK+OBguOCieOBi+OBrSzjgYLjgY3jgZMNCivjgYLjgonjgY0s44GX44GS44Gu44KKDQor44GC44KT44Gp44GGLOOBsuOCjeOBsuOBlQ0KK+OBhOOBhuOBoSzjgb7jgZPjgagNCivjgYTjgZHjgaAs44KE44GZ44Gy44KNDQor44GE44GR44KELOOBvuOBleOBjQ0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44G+44GV44G/DQor44GE44GX44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgYTjgZfjgYzjgY0s44Gy44KN44GXDQor44GE44GX44GQ44KNLOOBi+OBiuOCiw0KK+OBhOOBl+OBr+OCiSzjgb7jgZXjgY0NCivjgYTjgZ3jgoDjgoks44GP44G/44GTDQor44GE44Gf44GM44GNLOOBjeOCiOOBvw0KK+OBhOOBhOOBoCzjgZfjgo3jgYYNCivjgYTjgaHjgYvjgo8s44Gd44KIDQor44GE44Gh44GL44KPLOOCiOOBl+OBqOOBlw0KK+OBhOOBpyzjgYTjgZ/jgosNCivjgYTjgajjgYYs44Gy44KN44G144G/DQor44GE44Gs44GELOOBvuOBjeOBqA0KK+OBhOOBruOBhuOBiCzjga7jgbbjgbLjgo0NCivjgYTjgb7jgavjgZcs44KA44Gt44Gf44GLDQor44GE44G+44Gv44KE44GXLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgaTjgZANCivjgYTjgo/jgZXjgY0s44G+44KG44G/DQor44GE44KP44KC44GoLOOBkeOBhOOBhOOBoQ0KK+OBhuOBiOOBrizjgYjjgYTjgZgNCivjgYbjgYjjga4s44GL44Ga44Gu44KKDQor44GG44Gh44GE44GRLOOCiOOBl+OBguOBjQ0KK+OBhuOBoeOChOOBvizjgojjgZfjgZ/jgYsNCivjgYbjgoHjgaAs44GX44KF44GG44GYDQor44GG44KB44KA44KJLOOBleOCiA0KK+OBhuOCgeOCguOBqCzjgaHjgbvjgZMNCivjgYbjgovjgZfjgbDjgoks44KI44GX44Gy44GTDQor44GI44GQ44G+LOOBiOOCig0KK+OBiOOCiSzjgarjgYrjgoQNCivjgYrjgYbjgZXjgYss44G+44GV44Gf44GLDQor44GK44GK44GL44KPLOOBvuOBleOBv+OBpA0KK+OBiuOBiuOBleOCjyzjgb7jgZXjgbLjgZMNCivjgYrjgZfjgb4s44KI44GX44Gf44GLDQor44GK44GX44G+LOOBvuOBquOBtg0KK+OBiuOBiuOBmeOBjCzjgZ/jgaTjgbLjgZMNCivjgYrjgYrjgZ/jgass44Gy44Gn44GNDQor44GK44GK44GkLOOBvuOBleOBteOBvw0KK+OBiuOBiuOBpOOBiyzjgZ/jgaDjgbLjgZUNCivjgYrjga0s44G+44GV44KG44GNDQor44GK44GK44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBr+OBlyzjgZHjgpPjgYTjgaENCivjgYrjgYrjga/jgZcs44GR44KT44GUDQor44GK44GK44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBiuOBiuOCiOOBlyzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgoLjgags44Gf44Gg44KG44GNDQor44GK44GM44GV44KP44KJLOOCiOOBl+OBkw0KK+OBiuOBjOOCjyzjgbLjgafjga7jgooNCivjgYrjgY/jgZ/jgass44GU44GGDQor44GK44GP44KA44KJLOOChuOBhuOBkw0KK+OBiuOBkOOCiSzjgbLjgo3jgZMNCivjgYTjgYTjgYvjgo8s44GR44KT44GE44Gh44KNDQor44GK44GQ44KJLOOBleOBqOOBlw0KK+OBiuOBluOCjyzjgZ/jgYvjga7jgooNCivjgYrjgZbjgo8s44Gy44Gn44Gy44GTDQor44GK44GK44GuLOOChOOBmeOBruOCig0KK+OBi+OBjeOCguOBqCzjgozjgYTjgZMNCivjgYvjgY3jgoLjgags44Gy44KN44GXDQor44GL44GS44KE44G+LOOBqOOCguOBvw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYvjgZ3jgoos44KE44GZ44Gy44GoDQor44GL44Gk44G/LOOBquOBiuOBjQ0KK+OBi+OBqOOBhizjgarjgYrjgZMNCivjgYvjgajjgYYs44Gu44KK44GTDQor44GL44Go44GGLOOBl+OBkuOBruOCig0KK+OBi+OBqOOBhizjgaDjgYTjgZnjgZENCivjgYvjgajjgYYs44GR44GE44GYDQor44GR44Ga44GLLOOBguOBjeOCiQ0KK+OBi+OBqeOCj+OBjSzjgb/jgaTjgZfjgo3jgYYNCivjgYvjga3jgZMs44GC44GN44Gy44KNDQor44GL44Gu44GGLOOBruOCiuOBkw0KK+OBi+OBv+OChOOBvizjgbLjgo3jgYvjgZoNCivjgYvjgo/jgZfjgb4s44Gy44KN44KG44GNDQor44GL44KP44GbLOOBleOBqOOCiw0KK+OBi+OCj+OBrizjgYvjgZrjgY0NCivjgYvjgo/jgoLjgags44G+44GV44Gf44GLDQor44GL44KP44KC44GoLOOBl+OCkw0KK+OBi+OCj+OBmyzjgarjgYrjgY0NCivjgYvjgpPjgaAs44Gy44Gn44Go44GXDQor44GN44GP44GhLOOBsuOBleOChuOBjQ0KK+OBjeOBj+OBoSzjgYLjgY3jgZMNCivjgY3jgY/jgaEs44Gu44G244GKDQor44GN44Gf44GC44KJ44GXLOOBvuOBhOOBkw0KK+OBjeOBn+OBiuOBiyzjgb/jgobjgY0NCivjgY3jgZ/jgZjjgb4s44GC44GN44Gy44KNDQor44GN44Gf44KA44KJLOOBn+OBkeOBvw0KK+OBjeOBn+OCgOOCiSzjgYLjgaTjgZcNCivjgY3jgabjgoks44GV44Go44GXDQor44GN44Gu44GX44GfLOOBmOOCheOCk+OBkw0KK+OBjeOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjgY3jgorjgYYs44Gf44GR44GXDQor44GP44GV44GL44G5LOOBvuOBiOOBkw0KK+OBj+OBvOOBnyzjgZPjgZnjgZENCivjgY/jgb7jgYzjgYQs44GR44KT44GY44KN44GGDQor44GP44G+44GuLOOBleOCig0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgagNCivjgY/jgovjgZfjgb4s44GC44GN44KI44GXDQor44Gq44GL44GM44KPLOOBoeOBiw0KK+OBk+OBhOOBpyzjgbLjgafjgY0NCivjgZPjgpPjga4s44G+44GV44GXDQor44GT44KC44GoLOOChuOBhuOBkw0KK+OBk+OBjCzjgY/jgavjga/jgosNCivjgZPjgZjjgb4s44Gf44GE44GYDQor44GT44Gr44GXLOOBi+OCiOOBkw0KK+OBk+OBsOOChOOBlyzjgZvjgYTjgYYNCivjgZPjgb7jgaQs44GR44GE44GE44GhDQor44GT44G/44KELOOBl+OCk+OChA0KK+OBk+OCk+OBqSzjgZXjgajjgZcNCivjgZPjgpPjgaks44Gk44Go44KADQor44GU44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgoQNCivjgZXjgYTjgajjgYYs44GT44GG44GYDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBleOBi+OCguOBqCzjgZ/jgZHjgYoNCivjgZXjgY/jgb4s44Go44GX44GL44GaDQor44GX44G/44GaLOOBquOBiuOBjQ0KK+OBleOBoOOBoeOBiyzjgZHjgYTjgZjjgoUNCivjgZXjgags44GV44KI44GTDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBleOBqOOBhizjgbLjgajjgb8NCivjgZXjgajjgYYs44G/44GLDQor44GV44Go44GGLOOBi+OBpOOChuOBjQ0KK+OBleOCj+OBoCzjgZjjgoXjgpPjgZgNCivjgYTjgZ3jgo8s44G+44GV44Gy44GTDQor44GX44KCLOOBn+OBi+OBguOBjQ0KK+OBl+OCheOBhizjgb7jgZXjgoQNCivjgZfjgYrjgYvjgo8s44GC44KE44GuDQor44GX44GK44GW44KPLOOBvuOBleOBsuOBkw0KK+OBl+OBi+OBhuOBoSzjgb/jgaTjgosNCivjgZfjgZrjgoos44Gf44GR44GXDQor44GX44GuLOOBpuOBpOOBmA0KK+OBl+OBruOBluOBjSzjgZjjgoXjgpPjgZjjgo3jgYYNCivjgZfjga7jgaAs44G+44GZ44G/DQor44GX44Gu44GgLOOChuOBjeOBkw0KK+OBl+OBsOOBluOBjSzjgYLjgY3jgbLjgagNCivjgZfjgbDjgZ8s44GV44GK44KKDQor44GX44G+44KA44KJLOOBruOBvOOCiw0KK+OBl+OBv+OBmizjgb/jgb7jgZMNCivjgZfjgb/jgZos44KG44GG44GYDQor44GX44G/44GaLOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgY3jgZ/jgass44KG44GG44GE44GhDQor44GX44KJ44GuLOOBn+OBi+OChuOBjQ0KK+OBmeOBiOOBsuOCjSzjgZHjgpMNCivjgZnjgYzjgYQs44G/44GN44GKDQor44GZ44GM44KI44GXLOOBkeOCk+OBmA0KK+OBmeOBjOOCj+OCiSzjgZfjgZLjgbXjgb8NCivjgZnjgY7jgYbjgoks44Gu44KK44GC44GNDQor44GZ44GO44GX44G+LOOBl+OCheOCk+OBmeOBkQ0KK+OBmeOBjuOCguOBqCzjgbLjgZXjgZcNCivjgZnjgZrjgYvjgo8s44KI44GX44GIDQor44GZ44GgLOOBguOBjeOCiOOBlw0KK+OBmeOBv+OBi+OCjyzjgYvjgaTjgYLjgY0NCivjgZnjgb/jga4s44GT44GG44GYDQor44Gb44GN44GQ44GhLOOBl+OBkuOBvw0KK+OBneOBiOOBmOOBvizjgoTjgZnjgarjgooNCivjgZ/jgYrjgYss44Gf44Gg44GXDQor44Gf44GL44GNLOOBjeOCh+OBhuOBkw0KK+OBn+OBi+OBl+OBvizjgZfjgpPjgYTjgaENCivjgZ/jgYvjgZss44GN44KI44Gf44GLDQor44Gf44GL44Gv44GXLOOBi+OBpOOChA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgoQNCivjgZ/jgYvjga/jgZcs44GI44GE44GE44GhDQor44Gf44GN44Gf44GrLOOBquOBqg0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgbbjgb8NCivjgZ/jgZHjgaAs44Gf44Gg44KG44GNDQor44Gf44GR44GgLOOBkeOBhOOBhOOBoQ0KK+OBn+OBkeOBoCzjgYTjgY/jgbLjgZMNCivjgZ/jgZHjgoDjgoks44Gq44GK44Gy44GVDQor44Gf44GULOOBvuOBleOBkw0KK+OBn+OBjeOBluOCjyzjgaHjgYvjgZMNCivjgZ/jgarjgYss44KI44GG44GTDQor44Gf44Gq44GLLOOCiuOCh+OBhuOBmeOBkQ0KK+OBn+OBquOBiyzjgZHjgpPjgZgNCivjgYTjgo/jga4s44GL44Ga44GX44GSDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBq+OBiCzjgZXjgaDjgojjgZcNCivjgZ/jgavjgZDjgaEs44GL44Ga44GIDQor44Gf44Gr44GQ44GhLOOBmA0KK+OBn+OBq+OBvuOBpCzjgbLjgo3jgZcNCivjgZ/jgbDjgZ8s44G/44KP44GTDQor44Gf44G+44GNLOOBn+OBpOOChA0KK+OBhOOBm+OCguOBqCwNCivjgZ/jgb/jgoQs44GC44GNDQor44Gh44KD44KC44GoLOOBteOBleOBlw0KK+OBoeOBrizjgojjgYbjgYTjgaHjgo3jgYYNCivjgaTjgYvjgoLjgags44KI44GG44GTDQor44Gk44Gh44Gv44GXLOOCgOOBreOBsuOCjQ0KK+OBpuOCieOBleOCjyzjgZ/jgaTjgoQNCivjgags44G/44Gh44GTDQor44G144GP44GX44G+LOOBquOBiuOBlw0KK+OBqOOBsCzjgY3jgofjgYbjgZMNCivjgajjgb/jgojjgZcs44Gy44Go44GNDQor44Go44KA44KNLOOBquOBpOOBsuOBkw0KK+OBqOOCiOOBl+OBvizjgZjjgoXjgpPjgYTjgaENCivjgajjgorjgoTjgb4s44Gq44GK44KG44GNDQor44Gq44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBhOOBpyzjgb/jgaHjgYvjgZoNCivjga/jgZ8s44G144GV44GKDQor44Gq44GL44GM44GNLOOBv+OBjQ0KK+OBquOBi+OBjOOCjyzjgZ/jgYvjgZMNCivjgarjgYvjgZbjgo8s44KI44GX44GTDQor44Gq44GL44GnLOOBl+OCh+OBhuOBkw0KK+OBquOBi+OBr+OCiSzjgYLjgaTjgZcNCivjgZ/jgZHjgYbjgaEs44GL44Gk44Gy44GVDQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgZ/jgZHjgZcNCivjgarjgZks44Gy44KN44GXDQor44Gr44GE44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBq+OBl+OBiuOBiyzjgbLjgafjgYLjgY0NCivjgavjgZfjgYvjgo8s44GC44GN44KJDQor44Gr44GX44GW44KPLOOBl+OBkuOCiw0KK+OBq+OBl+OBqCzjgoTjgZnjgZMNCivjgavjgZfjga4s44GT44GG44GYDQor44Gr44GX44Gv44KJLOOBquOBiuOBjQ0KK+OBq+OBl+OCgOOCiSzjgY/jgavjgoLjgooNCivjga3jgoLjgags44GV44Gh44KIDQor44Gu44GQ44GhLOOBiOOBvw0KK+OBruOBkOOBoSzjgb7jgZXjgoQNCivjga7jgZjjgoos44KI44GX44Gq44GKDQor44Gu44GY44KKLOOBn+OBi+OBsuOCjQ0KK+OBruOCgOOCiSzjgYvjgZrjgbLjgZMNCivjga/jgaPjgZ8s44GC44GN44GTDQor44Gv44GX44GwLOOBoeOBi+OBkw0KK+OBr+OBl+OCguOBqCzjgobjgYsNCivjga/jgZfjgoLjgags44GE44Gh44KN44GGDQor44GE44Gu44GG44GILOOBjeOCiOOBlw0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZMNCivjga/jgZvjgYzjgo8s44GR44KT44GE44GhDQor44Gv44GfLOOBi+OBmuOBjQ0KK+OBr+OBnyzjgojjgZfjgYvjgaQNCivjga/jgZ/jga4s44G+44GE44GTDQor44Gv44KE44GXLOOBsuOCjeOChuOBjQ0KK+OBr+OChOOBlyzjgY/jgb/jgZMNCivjga/jgonjgaAs44Go44KC44GTDQor44Gv44KJ44GgLOOBkeOCk+OBhOOBoQ0KK+OBsOOBsCzjgbLjgo3jgbXjgb8NCivjgbDjgbAs44GC44GZ44GLDQor44Gy44GQ44GhLOOBruOBtuOBsuOBkw0KK+OBsuOBkOOBoSzjgY3jgofjgYbjgZMNCivjgbLjgZXjgY0s44GU44GG44GYDQor44Gy44GY44KKLOOBiOOCig0KK+OBsuOCieOChOOBvizjgZ/jgYvjgobjgY0NCivjgbXjgY/jgaAs44G+44KG44G/DQor44G144GY44GELOOBsuOCjeOBteOBvw0KK+OBmeOBjOOBhCzjgZXjgajjgb8NCivjgbXjgZjjgZ8s44GL44Ga44KEDQor44G144GY44GfLOOChuOBjeOBkw0KK+OBteOBmOOBnyzjga7jgbbjgZMNCivjgbXjgZjjgZ/jgass44GV44Go44GXDQor44G144GY44Gq44G/LOOBl+OBkuOChuOBjQ0KK+OBteOBmOOBrizjgZ/jgaTjgobjgY0NCivjga7jga7jgoDjgoks44GL44Gk44GYDQor44G144GbLOOBn+OBpuOCiw0KK+OBmeOBjuOCguOBqCzjgojjgYbjgYTjgaHjgo3jgYYNCivjgbvjgZ3jgYvjgo8s44Gf44Gk44GKDQor44G744KK44GG44GhLOOBquOBiuOBvw0KK+OBu+OCiuOBi+OCjyzjgbLjgo3jgYLjgY0NCivjgb7jgY3jga4s44GE44GP44GTDQor44G+44GN44GuLOOBruOCiuOBsuOBkw0KK+OBvuOBl+OBkyzjgajjgZfjgbLjgZMNCivjgb7jgZnjgaAs44GL44Ga44KEDQor44G+44GZ44G244GhLOOBn+OBi+OBlw0KK+OBvuOBmeOBtuOBoSzjgYLjgY3jgbLjgo0NCivjgb7jgaTjgYQs44G+44GN44GTDQor44G+44Gk44GW44KPLOOBvuOBleOBqA0KK+OBqOOBv+OBquOBjCzjgZ/jgYvjgZcNCivjgb7jgaTjgarjgYws44KI44GX44GTDQor44G+44Gk44Gq44GMLOOChuOBjQ0KK+OBmeOBmuOBjSzjgoTjgZnjgZgNCivjgb7jgaTjgoDjgoks44GR44GE44GE44GhDQor44G+44Gk44KC44GoLOOBsuOBp+OBteOBvw0KK+OBvuOBpOOCguOBqCzjgajjgoLjgbLjgZUNCivjgb7jgaTjgoTjgb4s44Gu44KK44GTDQor44G+44Gk44KE44G+LOOBk+OBhuOBmA0KK+OBvuOBpOOChOOBvizjgabjgaTjgoQNCivjgb7jgaTjgojjgZcs44GC44GN44GTDQor44G+44GuLOOBm+OBhOOBmA0KK+OBvuOCi+OBiuOBiyzjgajjgZfjgoTjgZkNCivjgb/jgYvjgb8s44KI44GG44GTDQor44G/44GNLOOBsuOCjeOBjQ0KK+OBv+OBnuOBkOOBoSzjgb7jgZXjgb8NCivjgb/jgZ8s44G/44Gu44KLDQor44G/44GtLOOBoeOBguOBjQ0KK+OBv+OBreOBiizjgZXjgajjgosNCivjgZXjgajjgYYs44GL44Gk44Gu44KKDQor44GE44GP44GfLOOBguOChA0KK+OBv+OChOOBluOBjSzjgbLjgafjgY0NCivjgZ/jgYvjgY7jgo8s44GX44GS44KLDQor44G/44KI44GXLOOCiOOBhuOBkw0KK+OCgOOBi+OBhCzjgb/jgaTjgZ/jgYsNCivjgoDjgonjgYvjgb8s44G+44GV44GC44GNDQor44GE44GX44GgLOOBpOOBi+OBlQ0KK+OCgOOCieOBi+OBvyzjgZXjgajjgZcNCivjgoDjgonjgYvjgb8s44GL44Ga44Gf44GLDQor44KA44KJ44KE44G+LOOBk+OBhuOBmA0KK+OCgOOCieOChOOBvizjgb7jgZPjgagNCivjgoDjgo3jgYQs44G+44GV44Gf44GLDQor44KC44Gf44GELOOBi+OBmuOBvuOBlQ0KK+OCguOBqOOBjSzjgYvjgZrjgoQNCivjgoLjgajjgoDjgoks44GT44GG44GYDQor44KC44KKLOOBi+OBpOOBsuOCjQ0KK+OBi+OBmyzjgYLjgY3jgojjgZcNCivjgoLjgorjgZfjgZ8s44GL44Ga44Gy44KNDQor44KC44KK44GfLOOBquOBiuOBjQ0KK+OCguOCjeOBqOOBvyzjgbLjgafjga7jgbYNCivjgoLjgo3jga/jgZcs44KG44GN44GTDQor44GL44KP44KC44GoLOOBsuOCjeOBruOCig0KK+OChOOBkOOBoSzjgabjgovjgbLjgZMNCivjgoTjgZjjgb4s44Gq44GK44GTDQor44KE44GZ44GL44KPLOOBsuOCjeOBlw0KK+OChOOBmeOBoCzjgb7jgZXjgbLjgagNCivjgoTjgaTjgZrjgYss44G+44KK44GTDQor44KE44Gq44GO44GV44KPLOOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgY3jgpPjgoQNCivjgoTjgb7jgZXjgY0s44Gf44GL44KEDQor44KE44G+44GW44GNLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBluOBjSzjgojjgZfjgZMNCivjgoTjgb7jgZbjgY0s44Gb44GE44GY44KN44GGDQor44KE44G+44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBvuOBoCzjgarjgYrjgY0NCivjgoTjgb7jgaAs44Gf44GL44Gu44KKDQor44KE44G+44Gq44GLLOOBl+OCheOBhuOBhOOBoQ0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgY0NCivjgoTjgb7jgoLjgags44G+44GV44GTDQor44KE44G+44KC44GoLOOBl+OCk+OBn+OCjeOBhg0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgb7jgaTjgYos44G+44GZ44G/DQor44KI44GOLOOBoeOBqOOBmw0KK+OCiOOBk+OChOOBvizjgbLjgafjgY0NCivjgojjgZPjgoTjgb4s44KI44GG44GTDQor44KI44GX44GL44KPLOOBquOBiuOBsuOBpw0KK+OCiOOBl+OBi+OCjyzjgojjgZfjgZMNCivjgojjgZfjgaAs44GT44GG44GYDQor44KP44GP44GELOOBpuOBpOOChA0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZ/jgo3jgYYNCivjgo/jgZ/jgarjgbks44GX44G7DQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOBqA0KK+OCj+OBn+OBquOBuSzjgb7jgarjgbYNCivjga/jgoTjgZcs44Gf44GL44GXDQor44KE44G+44GgLOOBruOBtuOChA0KK+OCj+OBi+OBsOOChOOBlyzjgZXjgajjgZcNCivjgYTjgo/jgoDjgoks44Gu44KK44G+44GVDQor44KP44Gf44Gq44G5LOOBruOBvOOCiw0KK+OBj+OCj+OBl+OBvizjgZnjgZDjgosNCivjgYrjgbDjgZ8s44GV44Go44G/DQor44GC44Gq44GW44KPLOOBsuOBi+OCiw0KK+OChOOBjizjgZPjgZnjgZENCivjgYLjgYvjgYos44Go44KC44GL44GaDQor44GX44G/44GaLOOBquOBpOOBkw0KK+OBleOBi+OCguOBqCzjgbLjgafjga7jgbYNCivjgYLjgYrjgY0s44GX44GS44GC44GNDQor44GC44Ga44G+LOOBk+OBhuOBhOOBoQ0KK+OBhOOBhOOBoCzjgYjjgaoNCivjgYTjgZHjgYbjgaEs44KB44Gw44GIDQor44GE44GX44GL44KPLOOBpuOBpOOBig0KK+OBhOOBneOBjOOBhCzjgb7jgZPjgagNCivjgYTjgajjgYYs44Gf44Gg44Gy44KNDQor44GE44GwLOOBguOBmuOBlQ0KK+OBhOOCj+OCguOBqCzjgZfjgpPjgZgNCivjgYbjgYjjgZXjgYss44Gf44GR44Gy44KNDQor44GG44GI44GuLOOBvuOCguOCiw0KK+OBhuOBiOOBsuOCiSzjgZHjgpPjgZQNCivjgYbjgaHjgoTjgb4s44GR44KT44GYDQor44GG44KB44Gq44GELOOBmeOBmeOCgA0KK+OBiOOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjgYrjgY3jgZ8s44GY44KF44KT44GE44GhDQor44GK44GK44GP44G8LOOBsuOCjeOBlw0KK+OBiuOBiuOBn+OBqyzjgYLjgoQNCivjgYrjgYrjgaQs44Gy44KN44GTDQor44GK44GK44Gk44GLLOOCiOOBl+OBvw0KK+OBiuOBi+OBl+OCjSzjgZfjgo3jgYYNCivjgYrjgaAs44GC44Gk44GXDQor44GK44GuLOOBsuOCjeOBvw0KK+OBi+OBqOOBhizjgojjgZfjgobjgY0NCivjgYvjga3jgbLjgZUs44Gq44GK44GTDQor44GL44G/44KELOOBiuOBleOCgA0KK+OBi+OCj+OBhCzjgZ/jgY/jgojjgZcNCivjgYvjgo/jgYrjgYss44Gy44Gn44GNDQor44GN44Gf44GuLOOBmOOCheOCk+OBhOOBoQ0KK+OBjeOBtuOBlyzjgaTjgbgNCivjgY3jgoDjgoks44G+44GV44Gf44GLDQor44GN44KA44KJLOOBvuOBleOBkw0KK+OBj+OBleOBiyzjgZXjgajjgb8NCivjgY/jgbAs44Gf44GL44GXDQor44GP44G844GfLOOBl+OCjeOBhg0KK+OBj+OCjeOBhOOCjyzjgZfjgpPjgZgNCivjgY/jgo/jgbDjgoks44GI44GE44GYDQor44GT44GE44GRLOOBmeOBv+OBig0KK+OBk+OBhOOBn+OBsOOBlyzjgaTjgYvjgZUNCivjgZPjgYbjgaAs44Gy44Gn44GKDQor44GT44GG44GgLOOBvuOBleOBn+OBkQ0KK+OBk+OBl+OCgOOCiSzjgYLjgaTjgZcNCivjgZPjgoTjgarjgY4s44Gy44GV44GTDQor44Gv44Go44KKLOOChuOBhuOBkw0KK+OBleOBi+OBhuOBiCzjgZXjgo8NCivjgYLjgbks44GT44GG44GE44GhDQor44GV44Go44GGLOOChOOBmeOBv+OBpA0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgZXjgajjgYYs44KI44GX44GKDQor44GX44G+44GgLOOCiuOBiA0KK+OBhOOBvuOBhCzjgYvjgaTjgYLjgY0NCivjgZnjgYzjgazjgb4s44Gh44KIDQor44Gb44GNLOOBguOBjeOBsuOCjQ0KK+OBm+OBrizjgZ/jgYvjgoTjgZkNCivjgYLjgbks44G+44GV44Gv44KLDQor44Gf44GL44GZ44GMLOOBvuOChuOBvw0KK+OBn+OBi+OBmeOBjizjga7jgbbjgZMNCivjgZ/jgYvjga/jgZcs44Go44KC44G/DQor44Gf44GL44Gv44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgbLjgagNCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Gf44GL44Gv44GXLOOBsuOBleOBvw0KK+OBn+OBjeOCguOBqCzjgobjgYbjgZ8NCivjgZ/jgY/jgbws44KI44GX44KG44GNDQor44Gf44GR44GG44GhLOOBqOOCguOBkw0KK+OBn+OBkeOBquOBiyzjgobjgY3jgbLjgZMNCivjgZ/jgarjgYss44KC44Go44GE44GhDQor44Gf44Gq44GLLOOBoeOBmuOCiw0KK+OBn+OBsOOBnyzjgYvjgaTjgobjgY0NCivjgZ/jgb/jgoQs44Gf44GR44GXDQor44Gf44KA44KJLOOCjOOBhOOBkw0KK+OBoeOCheOBhuOBvizjgbLjgo3jgZ/jgYsNCivjgbvjgpPjgZTjgYYs44KG44GG44GTDQor44Gq44GL44GKLOOBruOBtuOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgZPjgYbjgYTjgaENCivjgarjgYvjgZ7jga4s44Gy44Gn44Gu44KKDQor44Gq44GL44GuLOOBv+OBpOOBsuOCjQ0KK+OBq+OBo+OBnyzjga/jgaoNCivjgavjgo8s44KK44KH44GG44GE44GhDQor44Gu44GYLOOBsuOCjeOBguOBjQ0KK+OBr+OBluOBrizjgZ/jgYvjgZcNCivjga/jgZfjgoLjgags44Go44GK44KLDQor44Gv44GX44KC44GoLOOChuOBhuOBkw0KK+OBr+OChOOBlyzjgaHjgYrjgooNCivjga/jgoTjgZcs44Go44GG44GTDQor44Gv44KJ44GQ44GhLOOBn+OBi+OBlw0KK+OBr+OCi+OBkOOBoSzjgajjgZfjgYoNCivjgbLjgonjgacs44GE44GV44KADQor44Gy44KJ44GuLOOBvuOBleOBn+OBiw0KK+OBsuOCieOChOOBvizjgobjgY0NCivjgbXjgYvjgZbjgo8s44Gy44KN44G/DQor44G144GP44G+44GZLOOBi+OCiA0KK+OBteOBj+OCguOCiizjgb7jgZXjgosNCivjgbXjgZjjgYvjgo8s44GX44GS44KLDQor44G744GX44GuLOOBruOCiuOBkw0KK+OBu+OBneOBrizjgYLjgY3jgbLjgagNCivjgb7jgaTjgYrjgYss44KI44GX44Gq44KKDQor44G+44Gk44KA44KJLOOBquOBv+OBkw0KK+OBv+OBmuOBi+OBvyzjgabjgaTjgo3jgYYNCivjgb/jgaTjgYQs44Gf44GE44GZ44GRDQor44G/44Gu44GL44G/LOOBqOOBl+OChuOBjQ0KK+OBv+OChOOCguOBqCzjgZ/jgaTjgZcNCivjgoDjgonjgYvjgb8s44GR44GE44GTDQor44KE44GfLOOBquOBiuOBkw0KK+OChOOBquOBjuOBnyzjgb/jga7jgosNCivjgoTjgb7jgZDjgaEs44GT44GG44GYDQor44KE44G+44GX44GfLOOBv+OBoeOBig0KK+OChOOBvuOCguOBqCzjgobjgYbjgYTjgaHjgo0NCivjgojjgZfjgZ/jgZEs44Gy44Gn44Gu44KKDQor44KI44GX44KA44KJLOOBiOOCig0KK+OBsuOBkOOBoSzjgZ/jgZHjgZcNCivjga/jgZfjgoLjgags44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOChuOBjQ0KK+OBguOBjeOBsCzjgZ/jgZHjgbLjgZMNCivjgYLjgY3jgoLjgags44G/44Gk44KIDQor44GC44G+44KELOOBvuOBleOCiw0KK+OBguOCk+OBqeOBhizjgabjgaTjgo3jgYYNCivjgYLjgpPjgZbjgo8s44Gu44G244Gy44KNDQor44GC44GV44Gv44GfLOOBi+OBmuOBsuOBqA0KK+OBsOOBsCzjgb/jgaHjgbLjgagNCivjgbnjgaPjgZfjgocs44Gm44KL44Gy44GoDQor44Gh44GL44KC44GoLOOBleOBiuOCig0KK+OBoeOCh+OBhizjgaDjgYTjgZnjgZENCivjgbXjgZjjgbLjgoks44G/44KP44GTDQor44G144GY44GELOOBkeOBhOOBkw0KK+OBteOBmOOBn+OBqyzjgojjgZfjgYvjgaQNCivjgbXjgYvjgaAs44G+44GV44GC44GNDQor44G144KL44Gg44GmLOOBquOBiuOBjQ0KK+OBteOCi+OChOOBvizjgbLjgo3jgobjgY0NCivjgZTjgYbjgaAs44GN44KI44Gu44G2DQor44GT44GE44GRLOOCiOOBl+OChuOBjQ0KK+OBr+OBi+OBvuOBoCzjgZPjgYbjgZ7jgYYNCivjga/jgZvjgYzjgo8s44Gf44GL44GKDQor44Gv44GX44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBr+OBo+OBnyzjgZHjgpPjgYTjgaENCivjga/jgaPjgajjgoos44Gf44GL44Gy44KNDQor44Gv44KE44GL44KPLOOBsuOCjeOBjQ0KK+OBr+OChOOBi+OCjyzjgarjgovjgaTjgZANCivjgbLjgazjgb4s44Gf44GP44KEDQor44Gy44KN44GNLOOBqOOCguOBsuOBpw0KK+OBu+OCiuOBruOBhuOBoSzjgobjgYbjgZgNCivjgbvjgZ3jga4s44GC44Gk44GTDQor44G144GY44GK44GLLOOBsuOBp+OBjQ0KK+OBteOCi+OBnyzjgarjgovjgY0NCivjgbXjgZXjga4s44GR44KTDQor44G144GX44G/LOOBiuOBleOCgA0KK+OBhOOBn+OBqSzjgbLjgajjgZcNCivjgYTjgaAs44G+44GV44Gy44KNDQor44GE44Gv44KJLOOBkeOBhA0KK+OBhOOBhOOBoCzjgZ/jgYvjgbLjgo0NCivjgYTjgarjgoTjgb4s44Gy44KN44GL44GaDQor44GE44GuLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgoHjgZDjgb8NCivjgYTjgZfjgaAs44KI44GX44Gk44GQDQor44GE44GX44KC44GoLOOChOOBmeOCiOOBlw0KK+OBhOOBl+OCjyzjgb/jgaTjgosNCivjgYTjgZfjgo/jgZ/jgoos44Gy44KN44GL44GkDQor44GE44Gf44GP44KJLOOBquOBu+OBkw0KK+OBhOOBqOOBhizjgZ/jgYvjgbLjgo0NCivjgYTjgajjgYYs44GX44KF44GG44GE44GhDQor44GE44KP44GELOOBquOBquOBkw0KK+OBhOOBluOCjywNCivjgZjjgbYs44GZ44GQ44KLDQor44GL44Gw44KE44G+LOOBvuOBleOBjQ0KK+OBi+OBhCzjgobjgYbjgZMNCivjgYvjgY3jgazjgb4s44GY44KF44KTDQor44GL44GN44GW44GNLOOBvuOBleOBjQ0KK+OBi+OBj+OBoCzjgZfjgoXjgYbjgZnjgZENCivjgYvjgarjgYzjgo8s44GX44KTDQor44GL44KT44G5LOOBn+OBkeOBig0KK+OBi+OCk+OBoCzjgoTjgZnjgbLjgagNCivjgYvjgZXjgaAs44G/44Gh44Gf44GLDQor44GL44KP44GELOOBqOOCguOBkw0KK+OBleOBleOBjSzjgYTjgY/jgYgNCivjgYvjgo/jgZss44GV44G7DQor44GN44KC44GoLOOBv+OBjeOBrQ0KK+OBjeOBn+OBr+OCiSzjga7jgbbjgYoNCivjgY3jgZ/jgoDjgoks44KI44GX44GKDQor44GT44Gw44KE44GXLOOBsuOCjeOBiA0KK+OBk+OBtuOBkSzjgobjgYbjgZMNCivjgZPjgYTjgZrjgb8s44GL44Gq44GTDQor44GT44G/44KE44G+LOOBvuOCiuOBkw0KK+OBk+OCk+OBruOBi+OBmuOBsuOCjSzjgoTjgZnjgbLjgagNCivjgZPjgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GT44KT44GuLOOBk+OBhuOBhOOBoQ0KK+OBj+OBvCzjgb7jgZXjga7jgbYNCivjgY/jgbzjgYvjgo8s44Gq44Gk44GNDQor44GP44Gp44GGLOOBqOOCguOBiw0KK+OBj+OCiuOBr+OCiSzjgYvjgaTjgYTjgaENCivjgY/jgo3jgY4s44GV44GI44GTDQor44G+44Gh44GgLOOBr+OCi+OBvw0KK+OBvuOBmOOBvizjgoTjgZnjgZMNCivjgYTjgZfjgZos44Gu44KK44KG44GNDQor44G+44GL44G5LOOBsuOCjeOCiA0KK+OBvuOCi+OChOOBvizjgbLjgafjgYLjgY0NCivjgb7jgZnjgaAs44GL44KIDQor44G+44Gk44GM44GV44GNLOOBguOBjeOCiQ0KK+OBvuOBpOOBhCzjgZ/jgZHjgZcNCivjgb7jgaTjgYQs44GV44GK44KKDQor44G+44Gk44KC44GoLOOBkeOCk+OBmA0KK+OBvuOCj+OBn+OCiizjgYvjgpPjgZgNCivjgb/jgaHjgoLjgags44Go44GX44Gy44KNDQor44G/44GNLOOBmeOBv+OBkw0KK+OBv+OBpOOBvizjgZ/jgYvjga7jgooNCivjgb/jgYbjgoks44GR44GE44GUDQor44G/44KPLOOBvuOBk+OBqA0KK+OBv+OChOOCguOBqCzjgYvjgaTjgbLjgZUNCivjgb/jgoTjgoLjgags44KE44GZ44Gu44G2DQor44G/44KE44KC44GoLOOBn+OBkeOBruOBtg0KK+OBv+OChOOBnyzjgb7jgZXjgZcNCivjgoDjgonjgYvjgb8s44Go44GK44KLDQor44Gf44Gv44KJLOOBruOCiuOBkw0KK+OBv+OBmuOBn+OBqyzjgajjgoLjgYsNCivjgoLjgoos44KG44GNDQor44KC44KK44GQ44GhLOOBvuOBleOBsuOBkw0KK+OCguOCiuOBi+OCjyzjgbLjgo3jgZcNCivjgoLjgorjgoLjgags44GL44Ga44G/DQor44KC44KK44GfLOOCjOOBhOOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgZMNCivjgYLjgafjgYzjgo8s44GC44GEDQor44Gq44GM44GV44GLLOOBsuOBi+OCiw0KK+OBquOBjOOBnyzjgZjjgoXjgooNCivjgarjgYzjgZ8s44GL44Gk44Gu44G2DQor44GE44GW44KPLOOBi+OBiuOCig0KK+OBquOBi+OBv+OBrSzjgb7jgoLjgosNCivjgarjgYvjgoDjgoks44Gy44KN44Gu44KKDQor44Gq44GL44KA44KJLOOBn+OBpOOChA0KK+OBhOOCguOBqCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44GKLOOChuOBhuOBmA0KK+OBquOBi+OChOOBvizjgYbjgZfjgpMNCivjgarjgYvjgZbjgo8s44GN44KI44GXDQor44Gq44G/44GNLOOBr+OCi+OCiOOBlw0KK+OBq+OBhOOBvyzjgYLjgY3jgbLjgo0NCivjgavjgYTjgZzjgY0s44GL44GK44KKDQor44Gr44GX44GnLOOBsuOBp+OBguOBjQ0KK+OBq+OCjyzjgbLjgafjgY0NCivjga7jgbks44G/44GVDQor44GK44GK44GfLOOBl+OBkuOBguOBjQ0KK+OBiuOBjOOCjyzjgb7jgZXjgojjgZcNCivjgYrjgZDjgZks44KG44GG44GZ44GRDQor44GK44GK44KC44GoLOOBl+OCh+OBhuOBmA0KK+OBiuOBl+OBvizjgZ/jgYvjga7jgooNCivjgYrjgYrjgZ8s44GR44KT44GE44GhDQor44GK44GK44KELOOBsuOBv+OBkw0KK+OBhOOBl+OBi+OCjyzjgojjgYYNCivjgYrjgYvjgaAs44Gf44GR44GXDQor44GK44GPLOOBteOBv+OChuOBjQ0KK+OBiuOBj+OBoCzjgb7jgZXjgY0NCivjgYrjgZfjgY/jgbws44GR44KT44GE44GhDQor44GK44Gc44GNLOOBi+OBpOOBsuOBkw0KK+OCieOBhCzjgobjgYbjgZgNCivjgYTjgajjgYYs44Go44KC44KEDQor44GV44GE44GNLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgoQNCivjgojjgZfjgaAs44G/44Gh44KE44GZDQor44GV44GTLOOBl+OBkuOBv+OBpA0KK+OBleOBleOBmOOBvizjgZjjgoXjgpPjgoQNCivjgZXjgZXjgY0s44KG44GN44GTDQor44GV44Go44GGLOOBpOOBkOOBsuOBpw0KK+OBhOOCj+OCguOBqCzjgYvjgZrjgbLjgZMNCivjgZXjgajjgYYs44Gh44GI44GTDQor44GV44KP44GgLOOBsuOBp+OChOOBmQ0KK+OBm+OBjeOBi+OCjyzjgYTjgZrjgb8NCivjgZvjgY3jga0s44G/44Gk44GKDQor44GX44Gw44GfLOOBquOBiuOBjQ0KK+OBl+OBkuOBr+OCiSzjgZfjgpPjgoQNCivjgZfjgb7jgYrjgYss44GC44GN44Gy44GTDQor44GX44G/44GaLOOBi+OBmuOBsuOCjQ0KK+OBl+OCgizjgb7jgZXjgYLjgY0NCivjgZfjgoLjgoDjgoks44Gf44GL44GXDQor44GX44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBneOCgeOChCzjgYLjgY3jgbLjgZMNCivjgZnjgYjjgojjgZcs44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBsuOBp+OChuOBjQ0KK+OBmeOBmuOBjSzjgarjgYrjgY0NCivjgZ/jgYvjgaAs44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLA0KK+OBn+OBi+OBmyzjgb7jgarjgbYNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44Gf44GR44GELOOBsuOBleOCiOOBlw0KK+OBn+OBkeOCguOBqCzjga/jgZjjgoENCivjgZ/jgb7jgYQs44Go44GX44Gy44GTDQor44Gf44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBn+OCgOOCiSzjgZXjgajjgosNCivjgYTjgZfjgYvjgo8s44Gy44Go44GXDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgZ/jgavjgZDjgaEs44Gf44GR44Gu44KKDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBn+OBiw0KK+OBn+OBq+OBkOOBoSzjgZHjgpPjgZgNCivjgZ/jgavjgZDjgaEs44GR44KTDQor44GE44GX44GgLOOBguOBpOOBlw0KK+OBn+OBq+OBl+OBnyzjgbXjgb/jga4NCivjgabjgonjgavjgZcs44Gk44KI44GXDQor44Go44GK44KE44G+LOOBjeOCh+OBhuOBkw0KK+OBqOOBv+OBnyzjgb/jgo8NCivjgajjga3jgYzjgo8s44Gf44GPDQor44Go44KI44GgLOOBruOCiuOBkw0KK+OBqOOCiOOBnyzjgZfjgoXjgYbjgZgNCivjgaTjgaHjgoQs44KI44GX44GTDQor44GE44GX44GL44KPLOOBquOBiuOBjQ0KK+OBpOOCgOOCiSzjgajjgZfjgYLjgY0NCivjgaTjga7jgYvjgo8s44KI44GX44G/DQor44GG44Gh44GgLOOBsuOBqOOBlw0KK+OBhuOBleOBvyzjgZ/jgZHjgZcNCivjgo/jgZjjgb4s44KK44GTDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OCj+OBn+OBquOBuSzjgojjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44KE44KI44GEDQor44KE44GOLOOBkeOBhOOBhOOBoQ0KK+OChOOBjizjgY3jgofjgYbjgZMNCivjgoTjgY/jgo8s44Gy44KN44G144G/DQor44KE44G+44GgLOOBsuOCjeOBjQ0KK+OChOOBvuOBoCzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgZDjgaEs44Go44GX44KG44GNDQor44KE44G+44Gu44GP44GhLOOBvuOBleOBkw0KK+OChOOBvuOBl+OBnyzjgZPjgYbjgYTjgaENCivjgoTjgb7jgZfjgZ8s44Gq44GK44KG44GNDQor44KE44G+44GW44GNLOOBsuOBp+OChuOBjQ0KK+OChOOBvuOBluOBjSzjgobjgZ/jgYsNCivjgoTjgarjgYzjgo8s44Gf44Gk44KN44GGDQor44KE44GZ44GgLOOBqOOCiOOBguOBjQ0KK+OChOOBmeOBiCzjgajjgoLjgobjgY0NCivjgYTjgZ3jgYzjgYQs44Gf44Gg44Gu44G2DQor44KE44Gf44GM44GELOOBiOOCig0KK+OCiOOBl+OBoCzjgorjgofjgYbjgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44GK44GL44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBguOBiuOBjSzjgb7jgZXjgosNCivjgYLjgY3jgbAs44GC44GN44GTDQor44GC44G5LOOBguOBjeOBkw0KK+OBguOBvuOBrizjgb7jgZXjgYoNCivjgYLjgorjgoLjgags44GX44KF44GG44GYDQor44GC44KT44Gp44GGLOOChuOBjQ0KK+OBhOOBi+OCjyzjgZ/jgYTjgbjjgYQNCivjgYTjgZfjgYQs44Gu44KK44Gy44KNDQor44GE44GX44GL44KPLOOBquOBiuOBkw0KK+OBhOOBl+OBmuOBiyzjgobjgb8NCivjgYTjgZfjgbDjgZcs44GX44KF44KT44GZ44GRDQor44GE44GX44KC44GoLOOCiuOCh+OBhuOBmeOBkQ0KK+OBhOOBpyzjgZXjgajjgZMNCivjgYTjgaHjga7jgZss44GV44Go44GXDQor44GE44Gq44GgLOOBvuOBquOBtg0KK+OBhOOBrOOBhCzjgoTjgZnjgogNCivjgYTjga7jgYbjgYgs44G+44G/44GTDQor44GE44KE44G+LOOBk+OBhuOBmA0KK+OBhOOCj+OBleOBjSzjgb/jgZrjgb7jgZUNCivjgYTjgo/jgb4s44GL44Ga44GTDQor44GE44KP44G+44GkLOOBiuOBleOBquOBig0KK+OBhuOBiOOBoCzjgbLjgo3jgZMNCivjgYbjgYjjga4s44Gy44KN44GNDQor44GG44Gh44GgLOOBn+OBi+OBig0KK+OBhuOBqSzjgZHjgpPjgZgNCivjgYbjgoHjga/jgoks44Gf44GL44GXDQor44GI44GQ44GhLOOBqOOBv+OBleOBtg0KK+OBiOOBruOBjSzjgojjgZfjgZMNCivjgYjjgoLjgags44G/44Gk44KC44GoDQor44GI44KC44KKLOOBm+OBhOOChA0KK+OBquOBi+OBjOOCjyzjgarjgYrjgYLjgY0NCivjgYrjgYrjgZ8s44Gy44Gn44KG44GNDQor44GK44GM44GfLOOChOOBmeOBlw0KK+OBiuOBjOOCjyzjga7jgbbjgZ/jgYsNCivjgYrjgYzjgo8s44KM44GE44GTDQor44GK44GP44GELOOBn+OBj+OBmA0KK+OBiuOBj+OCgOOCiSzjgoLjgajjgZMNCivjgYrjgYrjgZ/jgass44Gm44KL44GC44GNDQor44GK44Gk44Go44KCLOOChuOBjeOBkw0KK+OBiuOBq+OBluOCjyzjgZfjgZLjgY0NCivjgYrjga4s44Gu44KK44GC44GNDQor44GK44Gw44GqLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBiuOBvuOBjOOCiizjgb7jgZXjgoQNCivjgYvjgY3jgZbjgo8s44Gm44Gk44Gy44KNDQor44GL44GR44GyLOOBiOOCiuOBkw0KK+OBi+OBleOBr+OCiSzjgb7jganjgYsNCivjgYvjgZgs44GK44GV44KADQor44GL44GY44GfLOOBn+OBi+OBig0KK+OBi+OBmOOBnyzjgZ/jgYvjgYoNCivjgYvjgZjjgoTjgb4s44G/44Gu44KLDQor44GL44Go44GGLOOCiOOBl+OBruOBtg0KK+OBi+OBquOBoCzjgZHjgYQNCivjgYvjga3jgZMs44Gu44G244GL44GkDQor44GL44Gt44GTLOOCiuOCh+OBhuOBnw0KK+OBhOOBn+OBrizjgZHjgpPjgZnjgZENCivjgarjgYzjgaTjgb4s44GX44KF44GG44G444GEDQor44GL44Gu44GGLOOBm+OBhOOBmA0KK+OBi+OBvuOBiCzjgarjgYrjgY0NCivjgYvjgo/jgYQs44Gm44Gk44GKDQor44GL44KP44G+44GfLOOBsuOCjeOBjQ0KK+OBi+OCk+OBrizjgb7jgYTjgZMNCivjgY3jgYbjgaEs44GE44Ga44G/DQor44GN44GXLOOCiOOBhuOBkw0KK+OBjeOBn+OBjOOCjyzjgajjgoLjga7jgbYNCivjgY3jga7jgZfjgZ8s44Gq44KK44Go44GXDQor44GN44KH44GG44GM44GPLOOBvuOBk+OBqA0KK+OBj+OBvCzjgajjgoLjga7jgooNCivjgY/jgbzjgZ8s44Gf44GP44KEDQor44GP44G844GfLOOBl+OCk+OBuuOBhA0KK+OBj+OCiuOBr+OCiSzjgorjgYgNCivjgY/jgorjgoTjgb4s44GR44GE44GTDQor44GE44GX44GM44GNLOOBqOOBl+OBteOBlQ0KK+OBj+OCjeOBhCzjgYTjgaTjgo3jgYYNCivjgZPjgYbjgZXjgY0s44GT44GG44GE44GhDQor44GT44GG44GgLOOBguOBpOOBlw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Gm44Gk44KEDQor44GT44Gw44KE44GXLOOChuOBhuOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgYTjga7jgYbjgYgs44Gu44G244GC44GNDQor44GV44GE44G7LOOBquOCi+OBsuOCjQ0KK+OBleOBi+OBjOOCjyzjgojjgYbjgbjjgYQNCivjgYvjgo/jgoDjgoks44KG44Gf44GLDQor44GV44GV44GK44GLLOOCiOOBhuOBkw0KK+OBleOBleOBjSzjga7jgbzjgosNCivjgZXjgajjgYYs44Gu44KK44GL44GaDQor44GV44Go44GGLOOBvuOBquOBtg0KK+OBleOBquOBoCzjgYrjgZXjgoANCivjgZXjgovjgoTjgb4s44GR44KT44GE44GhDQor44GX44GK44GkLOOBiOOBhOOBmeOBkQ0KK+OBl+OBiuOBruOChCzjgZfjga7jgbYNCivjgZfjgYrjgoTjgb4s44Gu44G844KLDQor44GX44GO44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBl+OBl+OBqSzjgY/jgavjgYoNCivjgZfjga7jgZbjgY0s44GL44Ga44Gy44GoDQor44GX44Gw44GfLOOBv+OBruOCiw0KK+OBl+OBv+OBmiwNCivjgZfjgofjgYbjga4s44GX44KT44GE44GhDQor44GX44KJ44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBjuOBiuOBiyzjgb/jgaTjgYvjgZoNCivjgZnjgY7jga/jgoks44GN44KI44GX44GSDQor44GZ44Ga44GNLOOBsuOBleOBpuOCiw0KK+OBmeOBmuOBjSzjgZfjgZLjgobjgY0NCivjgZnjgb/jgoTjgb4s44Gb44GE44GYDQor44Gb44Gj44GfLOOBvuOBleOBjQ0KK+OBhOOBl+OCj+OBnyzjgaDjgYTjgZjjgoUNCivjgZvjgpPjgZTjgY8s44G/44Gu44KLDQor44Gf44GL44GK44GLLOOChuOBvw0KK+OBn+OBi+OBluOCjyzjgZ/jgYvjgZfjgZINCivjgZ/jgYvjga/jgZcs44GC44KE44GTDQor44Gf44GL44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBn+OBjeOBqCzjgbLjgafjgY0NCivjgZ/jgarjgYss44GL44GaDQor44Gf44Gq44GLLOOBguOBjeOBkw0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgZ/jgarjgbks44GR44KT44GYDQor44Gf44Gr44GQ44GhLOOBvuOBquOBtg0KK+OBoeOCg+OCj+OCk+OChCzjgojjgZfjga/jgosNCivjgabjgonjgZXjgYss44Gy44KN44GNDQor44Go44GT44KNLOOBmOOCheOCk+OBhOOBoQ0KK+OBquOBi+OBhCzjgZ/jgYvjgZcNCivjgarjgYvjgYos44GX44KT44GYDQor44Gq44GM44GK44GLLOOBv+OBuw0KK+OBquOBi+OBjOOCjyzjgoLjgajjgYLjgY0NCivjgarjgYvjgZjjgb4s44GZ44Gy44GhDQor44Gq44GM44GbLOOBn+OBpOOChA0KK+OBquOBi+OBrizjgZvjgYTjgZ8NCivjgarjgYvjga4s44GYDQor44Gq44GM44GuLOOChuOBhuOBkw0KK+OBhOOBkeOBoCzjgYLjgY3jgZMNCivjgarjgYvjgoDjgoks44G+44KK44GTDQor44Gq44GL44KE44G+LOOBi+OBpOOBqOOBlw0KK+OBq+OBiizjgZjjgoXjgpPjgYTjgaENCivjgavjgZfjgYos44Gu44KK44GTDQor44Gr44GX44GL44GELOOBqOOBl+OBv+OBpA0KK+OBq+OBl+OBluOBiyzjgojjgZfjgZMNCivjgavjgZfjgaAs44Gg44GE44GZ44GRDQor44Gr44GX44GgLOOBn+OBi+OBlw0KK+OBhOOBhOOBmOOBvizjgb7jgZXjgY0NCivjgavjgZfjga/jgoks44GL44Ga44KG44GNDQor44Gr44GX44KA44KJLOOBi+OBmuOChA0KK+OBreOCjeOCgSzjgbLjgo3jgZcNCivjga7jgZjjgb4s44GV44Gt44Gy44KNDQor44Gu44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBr+OBl+OBsCzjga7jgorjgYvjgZoNCivjga/jgaHjgoQs44Gf44GL44Gy44KNDQor44Gv44Gj44Go44KKLOOBkw0KK+OBhOOBhOOBoCzjgbLjgo3jgobjgY0NCivjga/jgbYs44G+44GT44GoDQor44Gv44KE44GL44KPLOOBpuOBpOOCjeOBhg0KK+OBr+OChOOBlyzjgarjgYrjgZMNCivjga/jgoTjgZfjgb4s44Gy44Gn44GXDQor44Gv44KJLOOBn+OBj+OBvw0KK+OBsuOBjOOBl+OBoCzjgb7jgZXjgosNCivjgZvjgY3jgZDjgaEs44GN44KH44GG44GE44GhDQor44Gy44KJ44GELOOBi+OBiuOCig0KK+OBsuOCjeOBmeOBiCzjgbLjgo3jgobjgY0NCivjgbLjgo3jga/jgZ8s44Gf44GP44KEDQor44G144GP44GX44G+LOOBv+OBpOOBig0KK+OBteOBmOOBiizjgabjgpPjgbrjgYQNCivjgbXjgZjjgZ8s44KG44GG44GE44Gh44KN44GGDQor44G144GY44G+44GNLOOChuOBjeOBsuOBkw0KK+OBteOBmOOCj+OCiSzjgajjgYrjgosNCivjgbXjgovjgYTjgaEs44KG44GG44GZ44GRDQor44G744GV44GLLOOBn+OBkeOBlw0KK+OBu+OBl+OBrizjgZPjgYbjgZgNCivjgbvjgoos44KG44GN44GTDQor44G744KK44KC44GoLOOChuOBhuOBmA0KK+OBu+OCk+OBvizjgobjgY3jga7jgbYNCivjgb7jgYjjgYvjgo8s44Gf44GR44Gv44KLDQor44G+44GI44GgLOOBn+OBi+OBsuOBqA0KK+OBvuOBiOOBoCzjgb/jgY3jgYoNCivjgb7jgYjjgaAs44Gf44Gk44KEDQor44G+44GV44GELOOBj+OBvw0KK+OBvuOBpOOBhCzjgbLjgafjga7jgbYNCivjgb7jgaTjgZbjgo8s44Gh44GL44KJDQor44G+44Gk44GgLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBqOOCgizjgb7jgZXjgarjgYoNCivjgb7jgaTjgarjgYws44GR44KT44GYDQor44G+44Gk44KC44GoLOOCiOOBhuOBmeOBkQ0KK+OBv+OBmuOBkOOBoSzjgajjgoLjgZ/jgYsNCivjgb/jgoTjgoLjgags44G+44KG44G/DQor44G/44KE44KC44GoLOOChOOBmeOBmA0KK+OCgOOCieOBi+OBvyzjgYvjgZrjgbLjgacNCivjgoDjgonjgYvjgb8s44G+44GV44Gy44KNDQor44KA44KJ44Gq44GLLOOBleOBqOOBlw0KK+OCguOBoeOBmuOBjSzjgZ/jgY/jgoQNCivjgoLjgajjgY/jgoks44Go44KC44GTDQor44KC44KKLOOBj+OBq+OBi+OBmg0KK+OCguOCiuOChCzjgbvjgb7jgowNCivjgoTjgZnjgYQs44Gf44GE44GS44KTDQor44KE44GZ44GgLOOBv+OBjeOBkw0KK+OChOOBmeOBoCzjgY3jgojjgbLjgagNCivjgoTjgZ8s44GL44Ga44Gy44KNDQor44KE44Gf44GNLOOBruOBtuOBig0KK+OChOOBoSzjgbXjgb/jgbLjgZMNCivjgoTjga4s44Gy44KN44GXDQor44KE44G+44GE44Ga44G/LOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBiuOBiyzjgb7jgZXjgY0NCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOCiOOBl+OBruOCig0KK+OChOOBvuOBluOBjSzjgYLjgY3jgYoNCivjgoTjgb7jgZbjgY0s44Gq44GqDQor44KE44G+44GX44GfLOOBvuOBhOOBkw0KK+OChOOBvuOCguOBqCzjgZHjgpMNCivjgojjgZPjgZzjgY0s44Gf44GE44GhDQor44KI44GX44GgLOOBquOBiuOBqA0KK+OCiOOBl+OBrizjgoTjgZnjgYoNCivjgojjgZfjgb8s44Gf44GL44GXDQor44KI44GgLOOBn+OBi+OBsuOCjQ0KK+OCiOOBoCzjgbLjgo3jgYLjgY0NCivjgo3jgZgs44G144G/44GC44GNDQor44KP44GgLOOBvuOBvw0KK+OCj+OBn+OBquOBuSzjgobjgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44Gn44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBig0KK+OCj+OBn+OBuSzjgZ/jgYvjgZcNCivjgYvjga7jgYYs44Gf44GL44Go44GXDQor44Gr44Gj44GfLOOBiuOBleOCgA0KK+OBguOBiuOBjSzjgZfjgoXjgYYNCivjgYLjgYrjgY0s44Gv44Gq44GTDQor44GC44GK44KE44G+LOOBvuOBleOBguOBjQ0KK+OBguOBiuOChOOBvizjgazjgYQNCivjgYLjgY3jgbAs44GR44GE44GE44GhDQor44GC44GV44GgLOOBvuOCiuOBkw0KK+OBguOBoOOBoSzjgajjgoLjgb8NCivjgYLjgaDjgaEs44KG44GG44GTDQor44GC44Go44G5LOOBr+OCi+OBqA0KK+OBguOBuSzjgYvjgaTjgbLjgZMNCivjgYLjgbks44Gu44G244GKDQor44GC44G5LOOBvuOChuOBvw0KK+OBguOBvuOBrizjgb7jgY0NCivjgYLjgb7jga4s44GY44KF44KT44GE44Gh44KNDQor44GC44KJ44GL44KPLOOCiuOCh+OBhuOBmeOBkQ0KK+OBguOCiuOBnyzjgojjgYbjgbjjgYQNCivjgYLjgorjgajjgoIs44Gy44KN44GXDQor44GC44KT44GW44GELOOBsuOBp+OBguOBjQ0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYLjgpPjganjgYYs44KK44GI44GTDQor44GE44GM44KJ44GXLOOBv+OBiuOBkw0KK+OBhOOBkeOBoCzjgYTjgZrjgb8NCivjgZ/jgYvjga/jgZcs44GC44Gk44GKDQor44GE44GX44Gw44GXLOOBn+OBoOOBlw0KK+OBhOOBl+OCgOOCiSzjgobjgb/jgZMNCivjgYTjgZfjgoLjgags44G+44KK44GTDQor44GE44Gh44GELOOBkeOBhOOBkw0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgagNCivjgYTjgaHjgYvjgo8s44G+44GN44GTDQor44GE44Gh44Gu44GbLOOBjeOCiOOBlw0KK+OBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgYTjgajjgYYs44G+44GV44KLDQor44GE44Go44GGLOOCiuOBlQ0KK+OBhOOBquOBiuOBiyzjgb7jgZXjgbXjgb8NCivjgYTjgarjgbAs44Gy44KN44Gf44GRDQor44GE44Gs44Ga44GLLOOBvuOChuOBvw0KK+OBhOOBruOBhuOBiCzjgbLjgafjgYrjgb8NCivjgYTjga7jgYvjgo8s44GX44KF44KT44GZ44GRDQor44GE44G+44GELOOBn+OBkeOBlw0KK+OBhOOBvuOBl+OCheOBjyzjgorjgofjgYYNCivjgYTjgo/jgYQs44Go44KC44Gy44GTDQor44GE44KP44GX44G+LOOBl+OCheOBhuOBhOOBoQ0KK+OBhuOBiOOBnuOBrizjgoHjgZDjgb8NCivjgYbjgYjjgaAs44Gf44GL44Gy44KNDQor44GG44GI44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBhuOBiOOBr+OCiSzjgoLjgajjgZMNCivjgYvjgY3jgZ8s44GR44KTDQor44GG44GV44G/LOOBsuOBmOOCig0KK+OBhuOBoeOBoCzjgbLjgo3jgY0NCivjgYbjgaHjgaAs44GC44KE44GTDQor44GG44Gh44G844KKLOOBv+OBleOBqA0KK+OBhuOCgeOBjOOBhCzjgYvjgZrjgYgNCivjgYbjgoHjgaQs44GC44GN44Gy44GTDQor44GG44KB44GuLOOBn+OBkeOBlw0KK+OBhuOCieOBi+OCjyzjgobjgY0NCivjgYbjgonjgbks44GX44GS44Gy44GVDQor44GI44GQ44GhLOOBn+OBoOOBlw0KK+OBiOOBmuOBvyzjgYTjgY/jgogNCivjgYjjga7jgoLjgags44Gf44KN44GGDQor44GE44G+44Gr44GXLOOBsuOCjeOChuOBjQ0KK+OBiOOBruOCguOBqCzjgbXjgb/jgZMNCivjgYjjgpPjgaks44KI44GX44GNDQor44GK44GE44GL44KPLOOBvuOBleOBjQ0KK+OBiuOBhOOBi+OCjyzjgobjgY3jgbXjgb8NCivjgYrjgYrjgYQs44KI44GG44GYDQor44GK44GK44GE44GXLOOBvuOBleOBr+OCiw0KK+OBiuOBiuOBnyzjgbXjgb/jgYvjgZoNCivjgYrjgYrjgaTjgYss44GX44KT44GZ44GRDQor44GK44GK44Gr44GXLOOBi+OBpOOBguOBjQ0KK+OBiuOBiuOBq+OBlyzjgb/jgaHjgYgNCivjgYrjgYvjgaAs44KE44GZ44GKDQor44GK44GL44GgLOOBvuOBleOCiw0KK+OBiuOBi+OBrizjgobjgY0NCivjgYrjgYvjgbks44KI44GX44Gy44KNDQor44GK44GL44G5LOOBsuOBp+OBguOBjQ0KK+OBiuOBi+OCgOOCiSzjgorjgofjgYYNCivjgYrjgYvjgoLjgags44G/44GNDQor44GK44GL44KC44GoLOOBv+OChuOBjQ0KK+OBiuOBjOOCjyzjgZ/jgYjjgZMNCivjgYrjgYzjgo8s44Go44GK44KLDQor44GK44GP44GgLOOBkeOCkw0KK+OBiuOBj+OBoCzjgabjgaTjgoQNCivjgYrjgZbjgY0s44G+44G/44GTDQor44GK44GuLOOBquOBiuOBkw0KK+OBiuOBiuOChOOBvizjgZ/jgYvjgZcNCivjgYvjgYTjgZrjgYss44Go44GX44G144G/DQor44GL44GM44G/LOOBiOOCiuOBiw0KK+OBi+OBjeOBnyzjgYvjgYrjgosNCivjgYvjgY8s44GT44GG44GYDQor44GL44GV44GELOOChuOBjeOBruOCig0KK+OBi+OBmOOBhCzjgYLjgYvjga0NCivjgYvjgZjjgZ8s44Gq44GK44KEDQor44GL44Gf44GILOOChuOBhuOBmOOCkw0KK+OBi+OBn+OChOOBvizjgb/jgaTjgZMNCivjgYvjgaQs44Go44GK44KLDQor44GL44Go44GGLOOBn+OBjw0KK+OBi+OBqOOBhizjgaDjgYTjgZnjgZENCivjgYvjgb8s44GC44Gk44GTDQor44GL44Gt44GTLOOBj+OBq+OBsuOBqA0KK+OBi+OBvuOBoCzjgYvjgZrjgbLjgo0NCivjgYvjgb8s44KI44GX44Gm44KLDQor44GL44G/44Gy44GVLOOChuOBhuOBmA0KK+OBi+OBv+OCguOBqCzjgYvjgYrjgooNCivjgYvjgb/jgoQs44GL44Ga44GKDQor44GL44G/44KE44G+LOOBvuOBjQ0KK+OBi+OCj+OBi+OBvyzjgb7jgZnjgb8NCivjgYvjgo/jgZXjgY0s44Gy44Go44GXDQor44GL44KP44GbLOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OBr+OBnyzjgZ/jgZHjgaHjgYsNCivjgYvjgo/jga/jgoks44GY44KF44KT44GTDQor44GL44KP44KA44KJLOOBi+OBmuOBsuOCjQ0KK+OBi+OCj+OCguOBqCzjgZHjgYTjgZnjgZENCivjgYvjgo/jgoLjgags44Gy44KN44GXDQor44GL44KP44KC44GoLOOBv+OBoeOBig0KK+OBi+OCk+OBoCzjgZ/jgZHjgZcNCivjgY3jgY/jgaEs44GI44KKDQor44GN44Gf44GM44KPLOOBvuOBleOBtuOBvw0KK+OBjeOBn+OBquOBjCzjgZXjgYvjgYgNCivjgY3jgZ/jga4s44GX44KT44GUDQor44GN44Gf44KA44KJLOOBn+OBpOOChA0KK+OBjeOBn+OCguOBqCzjgaTjgajjgoANCivjgY3jga7jgYgs44Gy44KN44GXDQor44GN44G244GbLOOBn+OBi+OBiA0KK+OBjeOCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgY3jgoDjgoks44Go44KC44GNDQor44GN44KC44GoLOOBsuOBp+OChuOBjQ0KK+OBjeOCguOBqCzjgobjgooNCivjgY7jgofjgYbjgbYs44Gy44KN44GTDQor44GP44GrLOOBv+OBuw0KK+OBj+OBq+OBvuOBlSzjgb/jgYjjgZMNCivjgY/jgb7jgZXjgYss44Gf44GE44Gb44GkDQor44GP44KJ44GX44GSLOOBguOBjeOBig0KK+OBj+OCiuOBr+OCiSzjgZ/jgZHjgZcNCivjgZPjgYTjgZEs44KB44GQ44G/DQor44GT44GE44GR44GgLOOBn+OBpOOCjeOBhg0KK+OBk+OBhOOBmuOBvyzjgbLjgo3jgZcNCivjgZPjgYTjgazjgb4s44G/44Gh44GTDQor44GT44Gk44GLLOOBi+OBmuOBguOBjQ0KK+OBk+OBjCzjgZfjgZLjgY0NCivjgZPjgZfjgoLjgags44Gy44KN44G/44GkDQor44GT44Gg44G+LOOBn+OBhOOBoeOCjeOBhg0KK+OBk+OBoOOBvizjgb7jgZXjgYvjgZoNCivjgZTjgajjgYYs44GC44KK44KI44GXDQor44GT44Gr44GXLOOBqOOCguOBkw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44GNDQor44GT44Gw44KE44GXLOOChOOBmeOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgbLjgagNCivjgZPjgb7jgY0s44Gf44Gk44KEDQor44GT44G+44GwLOOBi+OBmuOBruOCig0KK+OBk+OBv+OChCzjgYvjgaTjgbLjgZMNCivjgZPjgoTjgb4s44G+44GV44Gu44KKDQor44GT44KE44G+LOOChOOBmeOBruOCig0KK+OBleOBhOOBjSzjgajjgoLjgbLjgZUNCivjgZXjgYTjgZTjgYYs44G/44KP44GTDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgabjgaTjgYoNCivjgZXjgYTjgajjgYYs44GE44GV44KADQor44GE44GM44KJ44GXLOOBl+OCh+OBhuOBlA0KK+OBleOBiOOBkOOBlSzjgarjgb8NCivjgZXjgYvjgYQs44GC44GN44KJDQor44GV44GL44GM44G/LOOBhOOBoeOCjeOBhg0KK+OBleOBi+OBrSzjgaDjgYTjgY0NCivjgZXjgYvjgoLjgags44Go44KC44Gu44KKDQor44GV44GL44KC44GoLOOBvuOBk+OBqA0KK+OBleOBj+OCieOBhCzjgbLjgo3jgb8NCivjgZXjgY/jgonjgaAs44KK44KH44GG44GYDQor44GV44GT44KTLOOBvuOBleOBsuOCjQ0KK+OBleOBleOBjSzjgarjgarjgYgNCivjgZXjgZXjga/jgoks44KP44GL44GTDQor44GV44Go44GGLOOBkuOCkw0KK+OBleOBqOOBhizjgZjjgoXjgpPjgYTjgaENCivjgZXjgajjgYYs44GR44KT44GUDQor44GV44Go44GGLOOBquOBiuOBqA0KK+OBleOBrizjgbLjgafjgYLjgY0NCivjgZXjgo8s44GR44KT44GUDQor44GX44G244KELOOBn+OBoOOBlw0KK+OBl+OBtuOChCzjgbLjgafjgYoNCivjgZfjgb7jgaAs44G+44Gq44GIDQor44GX44G+44GgLOOBsuOBp+OBn+OBkQ0KK+OBl+OBvuOBoCzjgoTjgojjgYQNCivjgZfjgb/jgZos44KG44GN44GKDQor44GX44G/44GaLOOBoOOBhOOBmeOBkQ0KK+OBl+OBv+OBmizjgbLjgafjgY0NCivjgZfjgb/jgZos44GC44GN44GuDQor44GX44G/44GaLOOBquOBiuOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgZHjgYTjgZnjgZENCivjgZfjgoIs44GV44Go44GXDQor44GX44KH44GG44GgLOOBl+OBkuOBruOCig0KK+OBmOOCk+OBrizjgb7jgZPjgagNCivjgZjjgpPjga4s44KK44KF44GG44GYDQor44GX44KT44G+44GhLOOBn+OBkeOBlw0KK+OBmeOBjuOBhCzjgb7jgZXjgarjgYoNCivjgZnjgY7jgYrjgYss44Gf44GL44Gy44GTDQor44GZ44GO44KC44GoLOOBv+OBoeOBruOCig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgokNCivjgZnjgZrjgY0s44Gg44GE44GZ44GRDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgZfjgZINCivjgZnjgZrjgY0s44KG44GG44GE44Gh44KN44GGDQor44Gb44GKLOOBruOCiuOBkw0KK+OBm+OBjSzjgZ3jgYYNCivjgYTjgZfjga/jgb4s44GR44KT44GoDQor44Gd44Gu44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBn+OBhCzjgojjgZfjgYLjgY0NCivjgZ/jgYvjgYTjgo8s44GN44KI44GXDQor44Gf44GL44GOLOOChuOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgb7jgY3jgZMNCivjgZ/jgYvjga/jgZcs44Gu44G244KG44GNDQor44Gf44GL44Gv44GXLOOBvuOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgZcNCivjgZ/jgYvjga/jgZcs44GC44GN44Gy44GTDQor44Gf44GL44KA44GPLOOBkeOCk+OBlw0KK+OBn+OBkOOBoSzjgbLjgo3jgZMNCivjgZ/jgZHjgYbjgaEs44KI44GX44GTDQor44Gf44GR44GL44KPLOOBvuOBleOBlw0KK+OBn+OBkeOCjyzjgZfjgpPjgZgNCivjgZ/jgaDjgb7jgaQs44Gy44Gn44GNDQor44Gf44Gf44KJLOOBk+OBhuOBmA0KK+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZ/jgavjgoLjgags44KG44GG44GYDQor44Gf44Gt44KA44KJLOOBguOBjeOBteOBvw0KK+OBn+OBr+OCiSzjgZXjgajjgZcNCivjgZ/jgoDjgoks44Gy44KN44GXDQor44Gg44KTLOOBn+OBi+OChuOBjQ0KK+OBhOOBhOOBoCzjgoDjga3jga7jgooNCivjgaHjgbAs44GI44GE44GZ44GRDQor44Gh44KH44GG44Go44GPLOOBsuOBp+OChuOBjQ0KK+OBpOOBi+OBr+OCiSzjgbLjgo3jgobjgY0NCivjgaTjgaTjgb8s44G+44GT44GoDQor44Gk44KC44KKLOOBvuOCiuOBkw0KK+OBpuOCieOBl+OBnyzjgobjgYbjgYTjgaHjgo3jgYYNCivjganjgYQs44KG44Gf44GLDQor44Gp44GELOOCiOOBl+OBiA0KK+OBqeOBhCzjgojjgYbjgYTjgaENCivjgajjgZfjgb4s44GT44GG44G444GEDQor44Gq44GE44Go44GGLOOBk+OBhuOBmA0KK+OBquOBi+OBhCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgYQs44GX44KF44GG44G444GEDQor44Gq44GL44GKLOOBjeOBu+OBkw0KK+OBquOBi+OBjOOCjyzjgaHjgYLjgY0NCivjgarjgYzjgZXjgY0s44GL44GK44KKDQor44Gq44GL44GY44G+LOOBn+OBi+OBteOBvw0KK+OBquOBi+OBmOOBvizjga7jgZ7jgoANCivjgarjgYvjgZfjgb4s44GV44Gq44GIDQor44Gq44GL44GgLOOBjeOCiOOBkw0KK+OBquOBi+OBr+OCiSzjgb/jgarjgZMNCivjgarjgYvjgoDjgoks44GY44KF44KT44Ge44GGDQor44Gq44GL44KA44KJLOOBl+OCheOBhuOBn+OCjeOBhg0KK+OBquOBi+OCgOOCiSzjgobjgooNCivjgarjgYvjgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBv+OBpOOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgbLjgZMNCivjgarjgYvjgoDjgoks44Gy44Gn44KEDQor44G744GX44GuLOOBqOOBl+OBr+OCiw0KK+OBquOBi+OCguOBqCzjgYLjgY3jgZMNCivjgYTjgZHjgaAs44G+44GV44Gf44GLDQor44Gq44GL44KC44KKLOOBqOOBiuOCiw0KK+OBquOBjOOCiOOBlyzjgZ/jgYvjgb7jgZUNCivjgarjgafjga/jgoks44Gy44KN44GXDQor44Gq44Gq44KC44KKLOOBpOOBqOOCgA0KK+OBquOCieOBleOBiyzjgbLjgo3jgZcNCivjgarjgpPjgbAs44KG44GNDQor44Gr44GXLOOBpOOBreOBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgbLjgafjgYLjgY0NCivjgavjgZfjgaAs44GR44KT44GXDQor44Gr44GX44KA44KJLOOChuOBjQ0KK+OBruOBkOOBoSzjgZXjgajjgZcNCivjga7jgaAs44GR44KT44GE44GhDQor44Gu44Gq44G/LOOBmeOBkOOCiw0KK+OBruOBruOBhOOBoeOChCzjgb7jgZnjgYoNCivjga7jgoDjgoks44Go44KC44Gy44GTDQor44Gu44KC44GoLOOChuOBhuOBhOOBoQ0KK+OBr+OBjOOChCzjgarjgYrjgobjgY0NCivjga/jgY7jgo/jgoks44KE44GZ44KG44GNDQor44Gv44GPLOOBqOOCguOBsuOBqA0KK+OBr+OBlyzjgZ/jgYvjgZcNCivjga/jgZfjgZrjgoEs44KG44GG44GTDQor44Gv44GX44GwLOOBvuOBk+OBqA0KK+OBr+OBm+OBuSzjgZ/jgYvjgb7jgZUNCivjga/jgZ8s44G+44GV44G/44GhDQor44Gv44Gf44GILOOBv+OBjeOBqA0KK+OBr+OBn+OBrizjgYLjgY3jgojjgZcNCivjga/jgaHjga4s44GZ44GZ44KADQor44Gv44Gj44Go44KKLOOChuOBhg0KK+OBr+OChOOBlyzjgozjgYTjgZMNCivjga/jgoTjgZfjgaAs44GC44GN44KJDQor44Gv44KE44G144GtLOOCiOOBl+OBguOBjQ0KK+OBr+OCiSzjgZ/jgaTjgZgNCivjga/jgonjgaAs44GP44G/44GTDQor44Gv44KJ44GgLOOBvuOBleOBkw0KK+OBhOOBruOBkOOBoSzjgYvjgaTjgbXjgb8NCivjga/jgonjgaAs44Gf44GL44KG44GNDQor44Gy44GM44GX44KE44G+LOOCiOOBhuOBkw0KK+OBsuOBkOOBoSzjgbLjgafjgY0NCivjgbLjgZQs44Gy44KN44GXDQor44Gy44Gg44GuLOOBqOOCguOChA0KK+OBsuOBvuOBjSzjgajjgoLjga7jgooNCivjgY/jgonjgZfjgZIs44GL44Ga44KG44GNDQor44GE44GX44Gv44KJLOOCjOOBhOOBkw0KK+OBsuOCieOBnyzjgZfjgZLjgYoNCivjgbLjgo3jgZXjgo8s44KG44GN44GTDQor44Gy44KN44GfLOOBkeOBhOOBkw0KK+OBteOBi+OBleOCjyzjgb/jgY3jgZMNCivjgbXjgYvjgZbjgo8s44KK44GIDQor44G144GL44GW44KPLOOBn+OBi+OBlw0KK+OBteOBj+OCgOOCjSzjgb7jgZXjgajjgoINCivjgbXjgZjjgYQs44Gm44Gk44KEDQor44GE44Go44GGLOOBkeOBhOOBkw0KK+OBteOBmOOBhCzjgb/jgYrjgZMNCivjgbXjgZjjgarjgYws44GR44GE44GYDQor44G144GY44Gq44GMLOOBteOBv+OBkw0KK+OBteOBmOOCj+OCiSzjga7jgorjgbLjgo0NCivjgbXjgZjjgo/jgoks44KK44GIDQor44G144GY44KP44KJLOOBquOBiuOChuOBjQ0KK+OBteOBn+OBpOOBjizjgaTjgojjgZcNCivjgbXjgZ/jgaTjgoLjgoos44GX44Ga44GLDQor44G144KL44Gv44GfLOOBruOBtuOBguOBjQ0KK+OBteOCi+OChCzjgb7jgorjgZMNCivjgbjjgpPjgb8s44G+44GV44KLDQor44G744GXLOOBvuOBhOOBkw0KK+OBu+OBl+OBrizjgYvjgaTjgYLjgY0NCivjgbvjgoos44GN44G/44Gy44KNDQor44G744KK44GILOOBl+OCk+OBmA0KK+OBu+OCiuOBiuOBiyzjgYLjgaTjgZMNCivjgbvjgorjgYvjgo8s44Go44KC44Gy44KNDQor44G+44GI44G144GtLOOBquOBv+OBkw0KK+OBvuOBjeOBrizjgoTjgZnjga7jgooNCivjgb7jgZnjgaAs44GK44GP44GoDQor44G+44Gk44GG44KJLOOBn+OBkeOBlw0KK+OBvuOBpOOBl+OBnyzjgYLjgY3jgZcNCivjgb7jgaTjgoLjgags44Gy44Gn44Gf44GLDQor44GE44GQ44GhLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOChOOBvizjgb7jgZXjgbLjgo0NCivjgb7jgarjgbks44Gh44GuDQor44G+44KL44KE44G+LOOBquOBiuOChuOBjQ0KK+OBv+OBhuOCiSzjgb/jgaHjgosNCivjgb/jgY0s44Gf44GL44KG44GNDQor44G/44Gk44Gv44GXLOOBiOOBhOOBhOOBoQ0KK+OBv+OBpOOBuSzjgb7jgZXjgagNCivjgb/jgajjgbks44Gy44GV44KEDQor44Gh44KH44GG44Go44GPLOOBn+OBvuOBjQ0KK+OBhOOBkeOBteOBmCzjga7jgbbjgojjgZcNCivjgb/jgoTjgZbjgY0s44G+44GV44Gv44KLDQor44G/44KE44GW44GNLOOBguOBjeOCiQ0KK+OBv+OChOOBl+OBnyzjgojjgYbjgZMNCivjgb/jgoTjgZ8s44Gf44GL44GXDQor44KA44GT44GG44KE44G+LOOBv+OBoeOBsuOBpw0KK+OCgOOCieOBhCzjgb/jgbsNCivjgoDjgonjgYvjgb8s44G+44G/DQor44KA44KJ44GL44G/LOOBv+OBpOOBguOBjQ0KK+OCgOOCieOBnyzjgajjgoLjgobjgY0NCivjgoDjgonjgb7jgaQs44G+44GV44KG44GNDQor44KC44Go44GNLOOBmOOCheOCk+OBnw0KK+OCguOBqOOCiOOBlyzjgZvjgYTjgYTjgaENCivjgoLjgb/jgoTjgb4s44GI44GE44GYDQor44KC44KKLOOBn+OBi+OBlw0KK+OCguOCiizjgZ/jgZHjgoQNCivjgoLjgorjgYbjgYgs44KI44GX44Gf44GLDQor44GE44Gu44GG44GILOOBguOBjeOBruOCig0KK+OCguOCiuOBhuOBoSzjgZfjgpPjgZ/jgo3jgYYNCivjgoLjgorjgZ8s44KG44GG44GNDQor44KE44GO44GV44KPLOOBi+OBmuOBvw0KK+OChOOBl+OBvizjgZPjgYbjgZgNCivjgoTjgZnjgaAs44G144G/44Gy44GTDQor44KE44GuLOOBv+OBjQ0KK+OChOOBrizjgZ/jgaDjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44GY44KF44KTDQor44KE44G+44GV44GNLOOBteOBv+OBsuOBkw0KK+OChOOBvuOBluOBjSzjga7jgbbjgbLjgZMNCivjgoTjgb7jgZfjgZ8s44GR44GE44GYDQor44KE44G+44GX44GfLOOBguOBpOOBlw0KK+OChOOBvuOBoCzjgZ/jgaTjgYoNCivjgoTjgb7jgaos44GL44GqDQor44KE44G+44G/44GhLOOBkeOBhOOBmeOBkQ0KK+OBhOOBquOBiyzjgZLjgpPjgZ8NCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44KC44GoLOOBn+OBj+OChA0KK+OChOOBvuOCguOBqCzjgbLjgafjgYoNCivjgoTjgb7jgoLjgags44KA44Gt44Gf44GLDQor44KG44GwLOOChuOBn+OBiw0KK+OCiOOBk+OBn+OBqyzjgb7jgZPjgagNCivjgojjgZPjgoTjgb4s44KI44GX44GKDQor44KI44GX44GgLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBoCzjgajjgZfjgYvjgZoNCivjgYTjgo/jgZXjgY0s44Go44GX44GL44GaDQor44KI44GX44GgLOOCiuOCh+OBhg0KK+OCiOOBoCzjgYjjgb8NCivjgo/jgYvjgb7jgaQs44G/44Gh44GIDQor44KP44GVLOOCiuOCh+OBhuOBkw0KK+OCj+OBoCzjgYvjgYrjgosNCivjgo/jgZ/jgarjgbks44GR44GE44Ge44GGDQor44GE44KP44GP44KJLOOBiOOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Ga44G/44GtDQor44KP44Gf44Gq44G5LOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OCj+OBn+OBquOBuSzjgobjgY0NCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYvjgZoNCivjgo/jgZ/jgarjgbks44Go44GX44GIDQor44GK44GK44GELOOBruOBtuOBsuOCjQ0KK+OBhOOBhOOBoCzjgobjgY3jgZMNCivjgoDjgYvjgYQs44Gf44GL44GXDQor44G144G/44Gv44KJLOOBi+OBiuOCig0KK+OBi+OCj+OBlOOBiCzjgb7jgZXjga/jgosNCivjgY/jgo3jgYvjgo8s44Gy44KN44G/DQor44GT44GG44GgLOOBleOBqOOCiw0KK+OBteOBmOOBnyzjgobjgYbjgZMNCivjgZPjgbDjgoTjgZcs44Gf44GR44GXDQor44Gv44G+44KA44KJLOOBi+OCiA0KK+OBhOOCj+OBmyzjgoTjgZnjgbLjgo0NCivjgZ/jgZHjgaAs44G+44GV44KLDQor44GK44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBv+OBmuOBnyzjgZXjgajjgosNCivjgYTjgYTjgaAs44GC44Gk44GXDQor44GC44GE44Gv44KJLOOChOOBmeOBkw0KK+OBguOBiuOBhizjgajjgZfjgY0NCivjgYLjgYrjgY0s44GX44KT44GT44GGDQor44GC44GK44GwLOOBsuOCjeOCiOOBlw0KK+OBguOBjeOCguOBqCzjgZnjgZnjgoANCivjgYLjgZXjgYQs44KG44GG44GTDQor44GE44GX44KE44G+LOOBl+OCheOCk+OBmeOBkQ0KK+OBguOBleOBiizjgYjjgb/jgZMNCivjgYLjgZXjgaAs44Go44GX44GNDQor44GC44GV44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOBleOBrizjgbXjgZjjgYoNCivjgYLjgZXjga4s44Go44KC44Gy44GTDQor44GC44GW44G/LOOBqOOBl+OChuOBjQ0KK+OBguOBmeOBvizjgZfjgoXjgYbjgbjjgYQNCivjgYLjgZ3jgYYs44KG44GLDQor44GC44Gg44GhLOOBjeOCh+OBhuOBhOOBoQ0KK+OBguOBqOOBvyzjga7jgorjgbLjgo0NCivjgYLjgarjgb8s44KE44GZ44Gy44GVDQor44GC44G5LOOBvuOBleOBiuOBvw0KK+OBguOBuSzjgb7jgZPjgagNCivjgYLjgbks44G+44GT44GoDQor44GC44G+44GuLOOBvuOBleOBqOOBlw0KK+OBguOChOOBuSzjgZ/jgo3jgYYNCivjgZ/jgZHjgY3jgZ8s44G+44Gq44G2DQor44GC44KJ44GELOOBvuOBjQ0KK+OBhOOBpOOBrizjgb/jgY3jgYoNCivjgYLjgorjgYvjgo8s44KI44GX44Gu44G2DQor44GC44KK44GfLOOBk+OBhuOBhOOBoQ0KK+OBguOCk+OBmOOChSzjgaTjgojjgZcNCivjgYLjgpPjganjgYYs44G+44GV44GNDQor44GC44KT44Gp44GGLOOCiuOCheOBhuOBnw0KK+OBhOOBoeOBruOBmyzjgZPjgZrjgYgNCivjgYTjgYTjgazjgb4s44Gy44KN44KG44GNDQor44GE44GG44GILOOCiOOBl+OBguOBjQ0KK+OBhOOBjOOCieOBlyzjgYLjgY3jgZMNCivjgYTjgZHjgYbjgaEs44GK44KK44GLDQor44GE44GR44GM44G/LOOBv+OBruOCiw0KK+OBhOOBkeOBoCzjgZ/jgZHjgZcNCivjgYTjgorjgZ8s44KE44GZ44GC44GNDQor44GE44GR44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBkeOBoCzjgZfjgofjgYbjgYTjgaENCivjgYTjgZHjgaAs44GY44KN44GGDQor44GE44GX44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBl+OBhCzjgajjgoLjgZMNCivjgYTjgZfjgYQs44Gq44GK44G/DQor44GE44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBhOOBvuOBhCzjgZ/jgZHjgZcNCivjgYTjgZfjgYvjgo8s44KK44KH44GG44G444GEDQor44GE44GX44GL44KPLOOBqOOCguOBruOBtg0KK+OBhOOBl+OBkOOCjSzjgobjgY3jgbLjgo0NCivjgYTjgZfjgaAs44Gf44Gk44KG44GNDQor44GE44Gb44GNLOOBn+OBkeOBlw0KK+OBhOOBoeOBjSzjgb7jgZXjgagNCivjgYTjgaHjga7jgZss44Go44KC44Gy44KNDQor44GE44Gh44Gu44G/44KELOOBteOBv+OBn+OBkQ0KK+OBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYTjgajjgYYs44Gu44KK44GTDQor44GE44Gq44GgLOOCiOOBl+OBn+OBiw0KK+OBhOOBquOBsCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjga/jgoks44GN44KI44Gf44GLDQor44GE44Gu44GG44GILOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjga7jgorjgZMNCivjgYTjga7jgYbjgYgs44Go44KC44KG44GNDQor44GE44G+44GE44Ga44G/LOOBguOBpOOBlw0KK+OBhOOBvizjgZXjgajjgZMNCivjgYTjgb7jgaAs44G/44GKDQor44GE44G+44GaLOOBpOOCiOOBlw0KK+OBhOOBvuOCgOOCiSzjgb/jgaTjgajjgZcNCivjgYTjgorjgZ/jgass44Gf44GP44GYDQor44GE44KP44GNLOOBn+OBpOOChA0KK+OBhOOCj+OBleOBjSzjgb7jgooNCivjgYTjgo/jgZXjgY0s44G+44GqDQor44GE44KP44GZ44GOLOOBv+OBiw0KK+OBhOOCj+OBr+OBlyzjgYTjgaHjgo3jgYYNCivjgYTjgo/jgbbjgaEs44Gq44G7DQor44GE44KP44G744KKLOOBguOBjeOBsuOBkw0KK+OBhuOBiOOBoCzjga7jgbbjgYgNCivjgYbjgYjjgb7jgaQs44Gf44GL44GXDQor44GG44GZ44GELOOBqOOCguOBhOOBoQ0KK+OBhuOBmeOBhCzjgb7jgZXjgbLjgo0NCivjgYbjgaHjgaAs44GL44GK44KKDQor44GG44Gk44G/LOOBvuOBjeOBkw0KK+OBhuOCgeOBoCzjgbLjgafjga7jgbYNCivjgYbjgonjga4s44KE44GZ44Gy44KNDQor44GI44GM44KPLOOBn+OBkeOBlw0KK+OBiOOBluOBjSzjgYLjgaTjgZMNCivjgYjjgajjgYYs44GR44KT44GYDQor44GI44Gu44KC44GoLOOBr+OCi+OBsuOCiQ0KK+OBiOOBruOCguOBqCzjgYLjgY3jgokNCivjgYjjgb4s44GC44GN44GTDQor44GI44KT44GpLOOBsuOBleOBruOCig0KK+OBiOOCk+OBqSzjgojjgZfjgb7jgZUNCivjgYrjgYTjgZ/jgass44KG44GNDQor44GK44GGLOOCiOOBl+OBsuOCjQ0KK+OBiuOBiuOBhCzjgYvjgYrjgosNCivjgYrjgYrjgYgs44GC44GN44Gy44KNDQor44GK44GNLOOBguOChA0KK+OBiuOBiuOBj+OBvCzjgbXjgb/jga7jgooNCivjgYrjgYrjgZXjgo8s44GE44GV44GKDQor44GK44GK44GV44KPLOOBsuOBleOBlw0KK+OBhOOCj+OBjeOCiizjgo/jgZ/jgosNCivjgYrjgYrjgZnjgb8s44KC44Go44Gy44GTDQor44GK44GK44GfLOOBv+OBpOOBsuOCjQ0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgaTjgYss44GC44GN44Gu44KKDQor44GK44GK44Gk44GLLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBpOOBiyzjgajjgoLjgbLjgo0NCivjgYrjgYrjgaTjgY0s44GY44KF44KTDQor44GK44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBq+OBlyzjgojjgYbjgZMNCivjgYrjgYrjgbws44G+44GV44GTDQor44GK44G+LOOBjeOCiOOBlw0KK+OBiuOCgOOCiSzjgZfjga7jgbYNCivjgYrjgoDjgoks44GP44G/DQor44GE44GX44GELOOBquOBiuOBkw0KK+OBiuOBiuOCguOCiizjgojjgZfjgbLjgo0NCivjgYrjgYrjgoLjgoos44Gy44KN44GL44GaDQor44GK44GK44KC44KKLOOBruOBtuOBsuOBlQ0KK+OBiuOBiuOCj+OBoCzjgZ/jgYvjgbXjgb8NCivjgYrjgYvjgYQs44KM44GEDQor44GK44GL44GW44GNLOOBqOOCguOBv+OBoQ0KK+OBiuOBi+OBluOBjSzjgYvjgZrjgbLjgagNCivjgYTjgZHjgaAs44GC44GN44GKDQor44GK44GL44GuLOOBiOOBhOOBhOOBoQ0KK+OBiuOBi+OBuSzjgYbjgonjgokNCivjgYrjgYvjgoLjgags44GI44Gk44GTDQor44GK44GM44KPLOOChuOBhuOBkw0KK+OBiuOBjOOCjyzjgYLjgY3jgokNCivjgYrjgYzjgo8s44KK44KH44GG44GE44GhDQor44GK44GM44KPLOOBjeOCiOOBrg0KK+OBiuOBiuOBjOOCj+OCiSzjgY/jgavjga/jgosNCivjgYrjgY/jga/jgoks44GV44Go44GXDQor44GK44GP44KE44G+LOOBvuOBkw0KK+OBiuOBkOOCiSzjgoTjgZnjga/jgosNCivjgY3jgZ/jgoDjgoks44G+44KK44GTDQor44GK44GW44KPLOOBl+OBkuOBv+OBpA0KK+OBiuOBoSzjgoLjgajjgbLjgo0NCivjgYrjga4s44Gf44GL44GXDQor44GK44GK44GuLOOBoeOBiw0KK+OBiuOBruOBp+OCiSzjgZHjgpPjgZcNCivjgYrjgbDjgZ8s44GL44Gk44KI44GXDQor44GK44GK44KE44G+LOOBoeOBmuOCiw0KK+OBiuOCk+OBnyzjgoHjgZDjgb8NCivjgYTjgo/jgZ8s44Gf44GR44GXDQor44GL44GE44G244GNLOOChuOBvw0KK+OBi+OBjeOCguOBqCzjgb7jgaHjgZMNCivjgYvjgZbjgZDjgaEs44G+44GV44Gu44KKDQor44GL44GV44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OBmCzjgZXjgYrjgooNCivjgYvjgZjjgoDjgoks44Gv44KL44GqDQor44GL44GX44KP44GELOOBruOCiuOBkw0KK+OBi+OBl+OCj+OBsOOCiSzjgarjgYrjgoQNCivjgYvjgZ/jgY/jgoks44KI44GX44KG44GNDQor44GL44Gf44KE44G+LOOBvuOBhOOBkw0KK+OBi+OBpOOBrizjgZ/jgYvjga7jgooNCivjgYvjgaks44Gh44GI44GTDQor44GL44Go44GGLOOBruOBtuOChuOBjQ0KK+OBhOOBneOBrizjgb/jganjgooNCivjgYvjgajjgYYs44Gf44GL44GXDQor44GL44Go44GGLOOBl+OBuw0KK+OBi+OBqOOBhizjgYLjgY3jgojjgZcNCivjgYvjgajjgoos44GR44KT44GYDQor44GL44Gq44GV44GLLOOCguOBqOOBsuOCjQ0KK+OBi+OBquOBluOCjyzjgb/jgaHjgZMNCivjgYvjgarjgoTjgb4s44GL44Gq44GTDQor44GL44Gt44GTLOOChuOBjeOBig0KK+OBi+OBreOBkyzjgajjgoLjgZMNCivjgYvjga3jgaAs44KC44Go44GNDQor44GM44G/LOOBsuOCjeOBlw0KK+OBi+OCgeOBiuOBiyzjgb7jgarjgb8NCivjgYvjgonjgZXjgo8s44GC44GN44Gm44KLDQor44GL44KJ44GX44G+LOOBjeOCiOOBteOBvw0KK+OBi+OCi+OBhOOBlyzjgYTjgZrjgb8NCivjgYvjgo/jgYQs44Gq44GK44KG44GNDQor44GL44KP44GELOOBn+OBi+OBiuOBvw0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgb8NCivjgYvjgo/jgYvjgb8s44GR44KT44GfDQor44GL44KP44GaLOOBguOBpOOBlw0KK+OBi+OCj+OBquOBiyzjgYjjgYTjgZnjgZENCivjgYvjgo/jga4s44Gf44GL44GXDQor44GL44KP44Gw44GfLOOBquOBiuOChA0KK+OBi+OCj+OBuSzjgZfjgbsNCivjgYvjgo/jgb8s44GX44KT44GYDQor44GL44KT44Gw44GXLOOBv+OBoeOBkw0KK+OBi+OCk+OBsOOCiSzjgYLjgaTjgZcNCivjgY3jgZfjgYQs44KE44GZ44GIDQor44GN44GX44GgLOOBguOBjeOBsuOCjQ0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgY0NCivjgY3jgZ/jgZfjgo0s44GL44Ga44KI44GXDQor44GN44Gf44Gv44KJLOOCiOOBl+OBi+OBmg0KK+OBjeOBn+OCgOOCiSzjgojjgYbjgYTjgaENCivjgY3jgaks44Gh44GI44GTDQor44GN44Gu44GX44GfLOOCj+OBi+OBkw0KK+OBiOOBoCzjgYjjgYQNCivjgY3jgoDjgoks44Gq44Gk44GTDQor44GN44KA44KJLOOBl+OBkuOCiw0KK+OBjeOCgOOCiSzjgYLjgaTjgZcNCivjgY3jgojjgarjgYws44Gu44KK44G/44GkDQor44GN44KI44G/44KELOOBn+OBi+OBig0KK+OBjeOCiuOChCzjgb7jgZXjgY0NCivjgYTjgajjgYYs44Go44KC44KEDQor44GP44GX44GgLOOBjeOCh+OBhuOBkw0KK+OBj+OBmOOCieOBiuOBiyzjgaDjgYTjgY0NCivjgY/jgavjgoLjgags44Gf44GR44Go44GXDQor44GP44Gs44GOLOOBqOOBiuOCiw0KK+OBj+OBvCzjgYLjgaTjgZcNCivjgY/jgbzjgZXjgo8s44G+44GV44GNDQor44GP44G844GfLOOBn+OBi+OBsuOCjQ0KK+OBj+OCgeOBrizjga7jgbbjgYoNCivjgYTjgZfjgZDjgo0s44Gf44KN44GGDQor44GP44KJLOOBqOOCguOBguOBjQ0KK+OBj+OCieOBleOCjyzjgbXjgb/jga/jgosNCivjgY/jgonjgZ8s44KK44KH44GG44GTDQor44GP44KN44GL44KPLOOBn+OBi+OBsuOBlQ0KK+OBj+OCjeOBmSzjgb7jgb/jgZMNCivjgY/jgo3jgoTjgarjgY4s44GV44KT44GX44KN44GGDQor44GE44Gq44Go44G/LOOBoOOBhOOBmeOBkQ0KK+OBk+OBhOOBkSzjgb7jgobjgZMNCivjgZPjgYTjgZEs44KP44Gf44KLDQor44GT44GE44GX44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgabjgovjgb8NCivjgZPjgYTjgZrjgb8s44Gu44KK44G+44GVDQor44GT44GE44GnLOOBvuOBqeOBiw0KK+OBk+OBmuOBvizjgb7jgYTjgZMNCivjgZPjgpPjga4s44GC44Gk44GTDQor44GT44KE44G+LOOBoOOBhOOBjQ0KK+OBk+OCiizjgZ/jgYvjgbLjgacNCivjgYvjgaTjgYvjgo8s44Gb44GE44GE44Gh44KN44GGDQor44GT44GM44GuLOOBguOBjeOBteOBvw0KK+OBk+OBl+OBhCzjgajjgoLjgbLjgo0NCivjgZPjgZfjgb7jgoss44Gg44GE44Go44GPDQor44GT44GZ44GOLOOBvuOBleOBlw0KK+OBk+OBm+OBjSzjgb7jgarjgbYNCivjgZPjgZ/jgass44KE44GE44GhDQor44GT44Gg44G+LOOBm+OCk+OBmA0KK+OBk+OBq+OBlyzjgZ/jgb/jgZMNCivjgZPjgavjgZcs44Gf44Gg44GXDQor44GT44GwLOOBqOOCguOBjQ0KK+OBk+OBsOOBn+OBkSzjgZHjgYTjgYTjgaENCivjgZPjgbDjgoTjgZcs44GC44GN44GTDQor44GT44Gw44KE44GXLOOChOOBmeOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgYbjgZgNCivjgZPjgbDjgoTjgZcs44G+44GV44KEDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgojjgYbjgbjjgYQNCivjgZPjgbDjgoTjgZcs44Gy44KN44GTDQor44GT44G844KKLOOBj+OBq+OBsuOBkw0KK+OBk+OBvuOBpCzjgaTjgojjgZcNCivjgZPjgoTjgb4s44Gk44GO44GKDQor44GT44KT44GuLOOBn+OBi+OBkw0KK+OBleOBhOOBqOOBhizjgajjgoLjgYgNCivjgZXjgYTjgajjgYYs44GC44Gk44GTDQor44GV44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgajjgYYs44G144GN44GTDQor44GV44GL44GELOOBoeOBsuOCjQ0KK+OBleOBi+OBhCzjgY3jgojjgZcNCivjgZXjgYvjgYQs44G/44Gt44GKDQor44GV44GL44GN44Gw44KJLOOBqOOBl+OBjQ0KK+OBleOBi+OBkOOBoSzjgYTjgaHjgo3jgYYNCivjgYTjgo/jgZXjgY0s44KM44GE44GTDQor44GV44GL44KC44GoLOOBruOCiuOBig0KK+OBleOBi+OCguOBqCzjgojjgYbjgZgNCivjgZXjgYvjgoLjgags44GY44KF44KT44GTDQor44GV44GV44GNLOOBi+OBpOOBqOOBlw0KK+OBleOBleOBjSzjgZPjgZXjgY8NCivjgZXjgZXjgY0s44GY44KF44KT44GTDQor44GV44GV44GNLOOCjOOBqg0KK+OBhOOBvuOBr+OBlyzjgbLjgo3jgb8NCivjgZXjgaTjgb8s44Gf44GL44KG44GNDQor44GV44Go44GGLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBqOOBhizjgobjgYbjgZgNCivjgZXjgajjgYYs44Go44KC44GP44GrDQor44GV44Go44GGLOOBvuOCiuOBkw0KK+OBleOBqOOBhizjgZPjgYbjgY0NCivjgZXjgajjgYYs44KG44G/44GTDQor44GV44GuLOOBl+OBrg0KK+OBhOOBl+OBkOOCjSzjgbLjgafjgZ/jgYsNCivjgZXjgo/jgoTjgarjgY4s44G/44Gk44Gy44KNDQor44GX44GK44GfLOOBkeOBhOOBmeOBkQ0KK+OBl+OBjSzjgobjgYbjgZMNCivjgZfjgZLjgYrjgYss44KM44GEDQor44GX44GS44GfLOOBvuOCguOCiw0KK+OBl+OBl+OBqSzjgorjgYsNCivjgZfjgarjgaAs44KI44GX44GTDQor44GE44GnLOOCiOOBl+OBteOBvw0KK+OBl+OBsOOBnyzjgojjgYbjgZMNCivjgZfjgbDjgZ8s44GC44KK44Gy44GoDQor44GX44Gw44GfLOOCiuOCh+OBhg0KK+OBl+OBsOOBnyzjgZfjgoXjgYbjgYTjgaENCivjgZfjgb7jgZos44KC44Gq44G/DQor44GX44G+44GgLOOCiOOBl+OBleOBoA0KK+OBl+OBvuOBmizjgaTjga3jgYoNCivjgZfjgb/jgZos44Gy44Gn44Gf44GgDQor44GX44G/44GaLOOBj+OBq+OBiA0KK+OBl+OCguOBr+OBlyzjgbLjgo3jga7jgbYNCivjgZfjgoLjgoTjgb4s44GL44GK44KKDQor44GY44KH44GGLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgY3jgofjgYbjgZMNCivjgZnjgYzjgZ8s44Gu44G244GIDQor44GZ44GM44KELOOBguOBjeOBsuOCjQ0KK+OBmeOBjuOBnyzjgZ/jgYvjgbLjgo0NCivjgZnjgY7jgarjgYss44GI44GE44GYDQor44GZ44GO44KC44GoLOOBteOBv+OBig0KK+OBmeOBjuOChOOBvizjgYvjgZrjgaoNCivjgZnjgY7jgoTjgb4s44KG44GG44GYDQor44GZ44GO44KE44G+LOOBqOOBiuOCiw0KK+OBmeOBkuOBrizjgZTjgYYNCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgafjgYLjgY0NCivjgZnjgZrjgY0s44GT44GG44GYDQor44GZ44Ga44GNLOOChuOBhuOBkw0KK+OBhOOCj+OBleOBjSzjgajjgoLjgbXjgb8NCivjgZnjgZrjgY0s44KI44GG44GTDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBhOOBoeOBi+OCjyzjgorjgYsNCivjgZvjgY0s44G+44GV44KI44GXDQor44Gb44GN44GQ44GhLOOBkeOBhOOBkw0KK+OBm+OBjeOChCzjgZHjgpPjgZgNCivjgZvjgZMs44GR44KT44Gf44KN44GGDQor44Gb44KJLOOBsuOCjeOChuOBjQ0KK+OBneOBjCzjgobjgYsNCivjgZ3jgYws44GI44GE44GTDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBi+OBv+OChCzjgYvjgZnjgb8NCivjgZ3jgpPjgY8s44Go44GX44GL44GaDQor44Gf44GL44GNLOOChuOBv+OBkw0KK+OBn+OBi+OBjizjgojjgZfjga/jgosNCivjgZ/jgYvjgZXjgY0s44KE44GZ44GKDQor44GE44GR44GgLOOBsuOBqOOBlw0KK+OBn+OBi+OBl+OBvizjgoTjgZnjgbLjgagNCivjgZ/jgYvjga4s44GR44KT44GE44GhDQor44Gf44GL44GuLOOBsuOBp+OBjQ0KK+OBn+OBi+OBrizjgb7jgY3jgZMNCivjgZ/jgYvjga4s44Gq44GK44Gy44KNDQor44Gf44GL44GuLOOCiOOBl+OBsuOBlQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgZ/jgYvjga/jgZcs44GT44GG44G444GEDQor44Gf44GL44Gv44GXLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgYzjgY8NCivjgZ/jgYvjga/jgZcs44GL44GqDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOCig0KK+OBn+OBi+OBvuOBpCzjgbLjgo3jgZcNCivjgZ/jgYzjgb8s44Gy44Go44GXDQor44Gf44GL44G/44GW44KPLOOCiuOCheOBhuOBjQ0KK+OBn+OBi+OCieOBoCzjgZfjgpPjgYTjgaENCivjgZ/jgY3jgYvjgo8s44GI44G/44GTDQor44Gf44GN44GW44KPLOOBhOOCj+OBig0KK+OBhOOBhOOBrizjgobjgb8NCivjgZ/jgZHjgYQs44KI44GX44Gy44KNDQor44Gf44GR44GG44GhLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgY3jgogNCivjgZ/jgZHjgY3jgZ8s44G+44GNDQor44Gf44GR44Gq44GLLOOBteOBv+OBig0KK+OBn+OBkeOBruOBhuOBoSzjgorjgofjgYbjgZgNCivjgZ/jgZHjga/jgaos44G144G/DQor44GE44Go44GGLOOBqOOBj+OBkw0KK+OBn+OBkeOCguOBqCzjgb7jgZXjgosNCivjgZ/jgZHjgoLjgags44GL44Ga44Gy44GTDQor44Gf44GULOOBmeOBmeOCgA0KK+OBn+OBleOBiyzjgojjgZfjga7jgbYNCivjgZ/jgZjjgb4s44Gy44KN44GL44GaDQor44Gf44GX44KNLOOCiOOBl+OBkw0KK+OBn+OBl+OCjSzjgZTjgYYNCivjgZ/jgZ/jgoks44GV44Gq44GIDQor44Gf44Gh44Gw44GqLOOBguOChOOBkw0KK+OBhOOBoeOCgOOCiSzjgZXjgajjgZcNCivjgZ/jgabjgYTjgZcs44KG44GNDQor44Gf44Gm44GuLOOBsuOBleOBlw0KK+OBn+OBpuOBrizjgaDjgYTjgZ4NCivjgZ/jgarjgYss44GR44KT44GE44Gh44KNDQor44Gf44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgarjgYrjgZMNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBkw0KK+OBn+OBquOBiyzjgoTjgZnjgZcNCivjgZ/jgarjgYss44KI44GG44GTDQor44GM44G/LOOBvuOBk+OBqA0KK+OBn+OBquOBvyzjgaTjga3jgYoNCivjgZ/jgass44G+44G/DQor44Gf44Gr44GQ44GhLOOChuOBv+OBkw0KK+OBquOBi+OBiuOBiyzjgobjgY0NCivjgZ/jgavjgZbjgo8s44KI44GX44Gu44KKDQor44Gf44Gr44GgLOOBruOBtuOChuOBjQ0KK+OBn+OBq+OCguOBqCzjgYLjgY3jgb8NCivjgZ/jga7jgYrjgYss44G/44GI44GTDQor44Gf44Gw44GfLOOBvuOBleOBjQ0KK+OBn+OBr+OCiSzjgb/jgYvjgZMNCivjgZ/jgoDjgoks44KG44GN44Gy44KNDQor44Gh44GL44GW44KPLOOBruOCiuOBsuOBqA0KK+OBoeOBrizjgZ/jgYvjga7jgbYNCivjgaHjga/jgoks44Gy44GV44GuDQor44Gh44KF44GGLOOBleOChOOBiw0KK+OBoeOCheOBhuOBvizjgZHjgYTjgYTjgaENCivjgaTjgYvjgaAs44Gy44Gn44Gf44GRDQor44Gk44GL44KC44GoLOOBruOBtuOBn+OBiw0KK+OBpOOBi+OCguOBqCzjgobjgZ/jgYsNCivjgaTjgaAs44Go44KC44Gu44KKDQor44Gk44Gh44GgLOOBvuOBleOBig0KK+OBpOOBoeOChCzjgZvjgozjgaoNCivjgaTjgaHjgoQs44GC44GNDQor44Gk44Gt44GNLOOBj+OBv+OBkw0KK+OBp+OBv+OBmyzjgZ/jgYvjgZcNCivjgabjgonjgYrjgYss44GL44Gq44GTDQor44GE44Ga44G/LOOBguOBpOOBlw0KK+OBqOOBhizjgZvjgYTjgZgNCivjgajjgZgs44G+44GV44GTDQor44Go44GX44GK44GLLOOBv+OBmeOBmg0KK+OBqOOBoCzjga/jgarjgYgNCivjgajjgbPjgarjgYQs44GC44GN44GTDQor44Go44KC44GELOOBv+OBreOBjQ0KK+OBqOOChOOBvizjgYLjgYTjgZMNCivjgajjgojjgZfjgb4s44GT44GG44GE44GhDQor44Go44KI44GgLOOBn+OBj+OChA0KK+OBqOOCiOOBr+OBvizjgajjgZfjgYoNCivjgarjgYzjgYgs44GR44KT44GYDQor44Gq44GM44GILOOBl+OBuw0KK+OBquOBi+OBiizjgajjgoLjgbLjgacNCivjgarjgYvjgYos44GR44KT44Gf44KN44GGDQor44Gq44GL44GY44G+LOOBqOOCguOBkw0KK+OBquOBi+OBmOOBvizjgojjgZfjgZ/jgYsNCivjgarjgYvjgZjjgb4s44Gk44KI44GXDQor44Gq44GM44GX44G+LOOBvuOCig0KK+OBquOBjOOBmyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZ7jga4s44GY44KF44KT44GTDQor44Gq44GL44GfLOOBguOBleOBkw0KK+OBquOBjOOBnyzjgojjgZfjgbLjgZMNCivjgarjgYzjgags44G+44KK44GTDQor44Gq44GL44Gr44GXLOOBkuOCkw0KK+OBquOBi+OBrizjgojjgZfjgZMNCivjgarjgYzjga4s44Gy44KN44GNDQor44Gq44GM44GuLOOBn+OBi+OBlw0KK+OBquOBjOOBrizjgabjgaTjgoQNCivjgarjgYzjga/jgoks44KI44GX44KG44GNDQor44Gq44GL44Gy44GM44GXLOOCgeOBkOOBvw0KK+OBquOBi+OCgOOCiSzjgY3jgbXjgb8NCivjgYTjgazjgZrjgYss44Go44KC44GL44GaDQor44Gq44GL44KA44KJLOOBteOBv+OBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgajjgZcNCivjgarjgYvjgoDjgoks44G/44G7DQor44Gq44GL44KA44KJLOOBvuOBleOBi+OBpA0KK+OBquOBi+OChCzjgobjgZ/jgYsNCivjgarjgYvjgoQs44GR44GEDQor44Gq44KJ44GV44GNLOOBruOBtuOBquOCig0KK+OBquOCiuOBnyzjgorjgoXjgYbjgZ8NCivjgarjgorjgZ8s44KI44GX44GTDQor44Gr44GE44GgLOOBqOOCguOBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgYTjgo/jgYoNCivjgavjgZfjgoDjgoks44Gh44GO44KKDQor44Gr44GX44KA44KJLOOBn+OBhOOBhOOBoQ0KK+OBq+OBl+OCgOOCiSzjgYvjgaTjgb8NCivjgavjgZfjgoTjgb4s44Go44GK44KLDQor44Gr44GX44KE44G+LOOBruOCiuOBvuOBlQ0KK+OBq+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgavjgo8s44KG44GN44GIDQor44Gs44G+44GfLOOBquOBiuOBkw0KK+OBrOOBvuOBnyzjgZ/jgYvjgbLjgo0NCivjgazjgb7jgaAs44Gk44KI44GXDQor44Gt44GO44GXLOOBhOOBleOBig0KK+OBruOBluOBjSzjgZ/jgYvjgarjgYoNCivjga7jgYzjgb8s44KG44GLDQor44Gu44GgLOOBn+OBpOOChA0KK+OBruOBr+OCiSzjgaTjgojjgZcNCivjga7jgbbjga/jgoks44KG44GG44GTDQor44Gv44GMLOOBvuOBleOBqA0KK+OBr+OBjuOCj+OCiSzjgZ/jgaDjgYvjgZoNCivjga/jgY7jgo/jgoks44GL44Gk44KJDQor44Gv44GX44Ga44KBLOOBn+OBi+OBlw0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgobjgY0NCivjga/jgZfjgoLjgags44Gd44KI44GLDQor44Gv44GX44KC44GoLOOBguOBjeOCiQ0KK+OBr+OBm+OBjOOCjyzjgb7jgZPjgagNCivjga/jgZvjgYzjgo8s44G+44KG44G/DQor44Gv44Gb44GM44KPLOOBi+OBmuOBn+OBiw0KK+OBr+OBm+OBuSzjgojjgYbjgbjjgYQNCivjga/jgZ8s44G+44GV44Gy44KNDQor44Gv44Gf44GR44KE44G+LOOBr+OBmuOBjQ0KK+OBr+OBn+OBquOBiyzjgYTjgY/jgZ7jgYYNCivjga/jgZ/jga4s44GC44Gk44KIDQor44Gv44Gj44Go44KKLOOBguOBjeOCiOOBlw0KK+OBr+OBquOBluOBjSzjgZ/jgaTjgoQNCivjga/jgarjgbbjgZUs44GK44GV44KADQor44Gv44Gq44KA44KJLOOBlOOBhg0KK+OBsOOBsCzjgYLjgY3jgZMNCivjga/jgb7jgZXjgY0s44KI44GX44KG44GNDQor44Gv44G+44GgLOOBpOOBkOOBjQ0KK+OBr+OChOOBlyzjgb7jgarjgbYNCivjga/jgoTjgZcs44Gf44GR44Gy44KNDQor44Gv44KE44GXLOOBvuOBk+OBqA0KK+OBr+OChOOBlyzjgorjgofjgYYNCivjga/jgoks44G+44GV44Gy44GnDQor44Gv44KJ44GX44G+LOOBiuOBleOCgA0KK+OBr+OCieOBoCzjgarjgYrjgoQNCivjga/jgonjgaAs44KK44GIDQor44Gv44KL44Gf44GrLOOBn+OBi+OBsuOCjQ0KK+OBsuOBjOOBl+OBrizjgb7jgY0NCivjgbLjgYzjgZfjgoTjgb4s44KG44GGDQor44Gy44GQ44GhLOOBl+OBkuOBv+OBpA0KK+OBhOOBl+OBr+OCiSzjgZ/jgZHjgojjgZcNCivjgbLjgZjjgYvjgZ8s44Gy44KN44GC44GNDQor44Gy44GzLOOBn+OBpOOBqA0KK+OBsuOCh+OBhuOBiCzjgajjgoLjgbLjgo0NCivjgbLjgonjgYQs44Gy44Gn44Gu44KKDQor44Gy44KJ44GL44KPLOOBmOOCheOCk+OChA0KK+OBsuOCieOBjyzjgZfjgZLjgY0NCivjgbLjgonjgZXjgo8s44GR44KT44GYDQor44GE44Gu44Gv44KJLOOBn+OBj+OBsuOCjQ0KK+OBsuOCieOBnyzjgY/jgavjgaTjgZANCivjgbLjgonjgazjgb4s44GL44Ga44GKDQor44Gy44KJ44GuLOOBn+OCjeOBhg0KK+OBsuOCieOChOOBvizjgZfjgZLjgosNCivjgbLjgo3jgYbjgaEs44KM44GEDQor44Gy44KN44GK44GLLOOChuOBi+OBkw0KK+OBsuOCjeOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgbXjgY/jgYQs44G+44GV44GNDQor44G144GP44GgLOOBn+OBi+OBsuOCjQ0KK+OBteOBj+OBoCzjgZnjgZnjgoANCivjgZPjgoos44GN44KH44GG44GTDQor44G144GY44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOBmOOBhCzjgaDjgYTjgZ4NCivjgYTjgacs44Gh44GI44GTDQor44G144GY44GELOOBsuOCjeOBi+OBmg0KK+OBteOBmOOBiizjgZ/jgYvjgobjgY0NCivjgbXjgZjjgYrjgYss44GR44KT44GE44GhDQor44G144GY44GP44KJLOOBjeOBj+OBkw0KK+OBteOBmOOBleOCjyzjgZPjgYbjgZgNCivjgbXjgZjjgZXjgo8s44GR44KT44Gf44KN44GGDQor44G144GY44GX44GSLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBnyzjgZHjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44Gu44KK44GKDQor44G144GY44GoLOOChuOBiw0KK+OBteOBmOOBquOBjCzjgarjgYzjgb7jgZUNCivjgbXjgZjjgo/jgoks44Go44KC44Gv44KLDQor44G144GY44KP44KJLOOBqOOBl+OBjQ0KK+OBteOBmyzjgYvjgYrjgosNCivjgbXjgovjgYvjgo8s44G+44GV44G/44GkDQor44G144KL44GL44KPLOOChuOBhuOBhOOBoQ0KK+OBhOOBl+OBhCzjgaDjgYTjgZnjgZENCivjgbXjgovjgZXjgo8s44Gy44KN44GNDQor44G144KL44GfLOOBk+OBhuOBhOOBoQ0KK+OBteOCi+OBnyzjgojjgZfjgYLjgY0NCivjgbXjgovjgZ8s44Gq44GK44GTDQor44G144KPLOOBv+OBig0KK+OBu+OBlyzjgb7jgobjgb8NCivjgbvjgZ3jgaAs44GR44GE44GZ44GRDQor44GE44GX44GELOOBsuOCjeOBv+OBoQ0KK+OBu+OCiuOBi+OCjyzjgarjgYrjgZMNCivjgbvjgorjgZPjgZcs44Gy44KN44GC44GNDQor44G744KT44GgLOOBruOBvOOCiw0KK+OBvuOBiOOBi+OCjyzjgovjgb8NCivjgb7jgYjjgaAs44G/44Gq44GTDQor44G+44GI44GgLOOBn+OCjeOBhg0KK+OBvuOBiOOBoCzjgZ/jgYvjgZcNCivjgb7jgYjjga4s44GV44Go44GXDQor44G+44GNLOOBquOBvw0KK+OBvuOBjeOBnuOBrizjgZXjgoTjgYsNCivjgb7jgY3jgZ8s44GL44Gk44KG44GNDQor44G+44GN44GuLOOCgOOBreOBjQ0KK+OBvuOBleOBjSzjgobjgZrjgosNCivjgb7jgZnjgZbjgY0s44KI44GX44GTDQor44G+44GZ44GgLOOChuOBhuOBmeOBkQ0KK+OBvuOBmeOBtuOBoSzjgYvjgZrjgbLjgo0NCivjgb7jgaHjgaAs44G/44KG44GNDQor44G+44Gk44GG44KJLOOBiOOCiuOBkw0KK+OBvuOBpOOBi+OCjyzjgoLjgajjgogNCivjgb7jgaTjgZbjgY0s44Gg44GE44GZ44GRDQor44G+44Gk44GW44GNLOOBvuOBjQ0KK+OBvuOBpOOBl+OBnyzjgZPjgZrjgYgNCivjgb7jgaTjgZfjgb4s44Gy44Gn44GKDQor44G+44Gk44GgLOOBl+OBkuOChuOBjQ0KK+OBvuOBpOOBoCzjgZ/jgYvjgZcNCivjgb7jgaTjgaAs44GC44KG44G/DQor44G+44Gk44Gq44GMLOOBn+OBi+OBlw0KK+OBvuOBpOOBquOBvyzjgZPjgYbjgZgNCivjgb7jgaTjgbDjgoks44Gu44KK44G144G/DQor44G+44Gk44Gw44KJLOOBleOBqOOBvw0KK+OBvuOBpOOBv+OChCzjgZHjgpPjgYTjgaENCivjgb7jgaTjgoLjgags44G+44GT44GoDQor44G+44Gk44KC44GoLOOBi+OBmuOBsuOBpw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgbXjgb8NCivjgb7jgaTjgoLjgags44KG44GG44GZ44GRDQor44G+44Gk44KC44GoLOOBsuOCjeOBkw0KK+OBvuOBpOOChOOBvizjgaHjgZrjgZMNCivjgb7jgarjgbks44KK44KH44GG44GZ44GRDQor44G+44KL44KE44G+LOOBvuOBleOBjQ0KK+OBvuOCi+OChOOBvizjgbLjgo3jgY0NCivjgb/jgYbjgoks44KE44GZ44G/44GkDQor44G/44GP44GrLOOBteOBv+OBquOCig0KK+OBv+OBmuOBi+OBvyzjgbLjgafjgY0NCivjgb/jgaTjga/jgZcs44Gu44KK44KI44GXDQor44G/44Gq44GoLOOBsuOCjeOChuOBjQ0KK+OBv+OBquOBvyzjgZ/jgYvjgobjgY0NCivjgb/jgbXjga0s44KI44GX44Gy44KNDQor44G/44KE44GM44KPLOOBvuOBleOBlw0KK+OBv+OChOOBleOBiyzjgZfjga7jgbYNCivjgb/jgoTjgZbjgo8s44GY44KF44KTDQor44KA44KJ44GKLOOBvuOBleOBkw0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgb8NCivjgoDjgonjgZ8s44GR44KT44GZ44GRDQor44KA44KJ44G+44GkLOOBruOBtuOChuOBjQ0KK+OCgOOCieOChOOBvizjgajjgZfjgYoNCivjgoDjgonjgoTjgb4s44GL44Ga44GC44GNDQor44KB44GQ44KNLOOBqOOCguOBsuOBkw0KK+OCguOBoeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgoLjgajjgojjgZcs44G+44GT44GoDQor44KC44KC44GaLOOChuOBjeOBkw0KK+OCguOCiizjgb7jgZXjgY0NCivjgoLjgoos44KE44GZ44Gf44GLDQor44KC44KKLOOBv+OBuw0KK+OCguOCiizjgZ/jgb7jgogNCivjgoLjgorjgZ8s44GR44KT44GYDQor44KC44KK44GfLOOBkeOCk+OBhOOBoeOCjQ0KK+OCguOCiuOBrizjgb/jgaHjgYoNCivjgoLjgorjgoLjgags44Gf44GL44GXDQor44KC44KK44KC44GoLOOChuOBjeOBkw0KK+OCguOCiuOChOOBvizjgYvjgZrjgobjgY0NCivjgoLjgorjgo/jgY0s44G144G/44GC44GNDQor44KE44GOLOOBkeOBhOOBmeOBkQ0KK+OChOOBjizjgobjgZ/jgYsNCivjgoTjgY/jgZfjgZgs44GK44GV44KADQor44KE44GTLOOBpOOCiOOBlw0KK+OChOOBluOCjyzjgZHjgpPjgYTjgaENCivjgoTjgZnjgb4s44GR44KT44GY44KN44GGDQor44KE44Go44GULOOBguOBhA0KK+OBjOOCkyzjga/jgarjgYgNCivjgoTjgarjgbYs44GV44Go44GXDQor44KE44GuLOOBl+OCheOBhuOBk+OBhg0KK+OChOOBtuOBnyzjgbLjgo3jgZcNCivjgoTjgb7jgYbjgaEs44KG44GN44GTDQor44KE44G+44GG44GhLOOBv+OBpOOBr+OCiw0KK+OChOOBvuOBkOOBoSzjgorjgofjgYYNCivjgoTjgb7jgZDjgaEs44KE44GZ44G+44GVDQor44KE44G+44GQ44GhLOOBquOBiuOBkw0KK+OBmOOBoOOBhCzjgbLjgo3jgYLjgY0NCivjgoTjgb7jgZDjgaEs44GI44GE44GfDQor44KE44G+44GQ44GhLOOBm+OBhOOBkw0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgZXjgY0s44KE44GZ44Gy44KNDQor44KE44G+44GV44GNLOOBmOOCheOCkw0KK+OChOOBvuOBluOBjSzjgYLjgaTjgoQNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44KNDQor44KE44G+44GX44GfLOOBvuOBleOBqA0KK+OChOOBvuOBl+OBnyzjgZ/jgY/jgoQNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44KE44G+44GgLOOChOOBmeOBig0KK+OChOOBvuOBoCzjgZ/jgaTjgZgNCivjgoTjgb7jgaAs44KE44GZ44Gy44GVDQor44KE44G+44GgLOOBjeOCh+OBhuOBkw0KK+OChOOBvuOBqOOChCzjgb7jgorjgZMNCivjgoTjgb7jgarjgYss44Gy44G144G/DQor44KE44G+44Gq44GXLOOBmOOCheOCkw0KK+OChOOBvuOBq+OBlyzjgarjgYrjgY0NCivjgoTjgb7jgoLjgags44Gh44GLDQor44KE44G+44KC44GoLOOBi+OBmuOChA0KK+OChOOBvuOCguOBqCzjgorjgYsNCivjgoTjgb7jgoLjgags44G+44Gq44G/DQor44KE44G+44KC44GoLOOCiOOBhuOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZ/jgaTjgoQNCivjgojjgZPjgZ8s44Go44KC44G144G/DQor44KI44GT44GfLOOBl+OBkuOChuOBjQ0KK+OCiOOBk+OBnyzjgYvjgogNCivjgojjgZPjgaYs44Gb44GE44GE44Gh44KN44GGDQor44KI44GX44GK44GLLOOBn+OBi+OBlw0KK+OCiOOBl+OBiuOBiyzjgYLjgaTjgZcNCivjgojjgZfjgYrjgYss44Gy44Gn44GoDQor44KI44GX44GL44KPLOOBn+OBj+OChA0KK+OCiOOBl+OBi+OCjyzjgorjgofjgYbjgYTjgaENCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44KI44GX44GgLOOBmOOCheOCk+OBkw0KK+OCiOOBl+OBoCzjgYLjgYvjga0NCivjgojjgZfjga4s44G/44Gu44KLDQor44KI44GX44G/LOOBvuOBleOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgY/jgavjgbLjgZMNCivjgojjgaAs44Gu44KK44Gy44GVDQor44KI44Gt44GW44KPLOOBguOCieOBnw0KK+OCiuOCheOBhuOBqCzjgZHjgYQNCivjgo/jgYvjgaTjgY0s44GX44KT44GZ44GRDQor44KP44GN44GW44GLLOOBl+OCk+OChA0KK+OCj+OBjeOBnyzjgobjgYbjgZnjgZENCivjgo/jgY3jgZ8s44Go44GK44KLDQor44KP44GN44KC44GoLOOBl+OCh+OBhuOBkw0KK+OCj+OBoCzjgZ/jgYvjgZcNCivjgo/jgaAs44GC44GN44GTDQor44KP44Gf44GbLOOBoOOBhA0KK+OCj+OBn+OBquOBuSzjgoTjgZnjga/jgosNCivjgo/jgZ/jgarjgbks44Gd44GGDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgarjgYrjgZMNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44GN44Gu44GX44GfLOOChuOBhuOBkw0KK+OBguOBiuOBjSzjgojjgZfjgbLjgZMNCivjgoTjgarjgY7jga/jgoks44GN44KI44GXDQor44GC44G+44GTLOOCiOOBl+OBig0KK+OBk+OCk+OBqeOBhizjgZfjgYrjgooNCivjgZfjgonjgYvjgo8s44KI44GG44GTDQor44GT44KE44G+LOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBqSzjgb7jgZPjgagNCivjgoLjgoos44Go44GX44GKDQor44GK44GK44GuLOOBsuOBp+OCiOOBlw0KK+OBvuOBrizjgYLjgY0NCivjgarjgYzjga4s44GZ44G/44GTDQor44GV44Go44GGLOOBiOOCig0KK+OBv+OChOOBluOBjSzjgYLjgoQNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GN44KA44KJLOOBsuOBp+OBqOOBlw0KK+OCiOOBk+OBiizjgZHjgpPjgZgNCivjgYbjgaHjgoDjgoks44Gh44Gq44GkDQor44GU44GX44G+LOOCiuOCheOBhuOBhOOBoQ0KK+OBleOBiOOBjSzjgb/jgY0NCivjgarjgYvjgZjjgb4s44Gy44KN44G/DQor44GE44KP44G/LOOBv+OBuw0KK+OBiOOBkizjgozjgYQNCivjgYbjgoHjgZ7jga4s44GL44GK44KKDQor44GV44GP44KJ44GELOOBvuOBvw0KK+OCj+OBn+OBquOBuSzjgb7jgoQNCivjgarjgYzjgYQs44GX44KH44GG44GUDQor44GK44Gd44GM44G/LOOBguOBpOOBsuOBkw0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjgojjgZcNCivjgZ/jgYvjgZnjgYss44KI44GX44GL44GaDQor44GK44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBl+OCieOBhCzjgobjgZ/jgYsNCivjgb7jgaTjgYbjgoks44G+44GT44GoDQor44Gq44GL44GW44KPLOOCiOOBl+OBsuOBlQ0KK+OBvuOBpOOBhCzjgobjgYbjgYTjgaENCivjgZPjgZvjgY0s44GT44GG44Gf44KN44GGDQor44Gk44GL44GgLOOBruOCiuOChuOBjQ0KK+OBpuOCieOBj+OCiSzjgojjgYbjgZgNCivjgavjgbjjgYQs44GN44KI44GXDQor44GL44KP44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBsuOBlCzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GN44KI44Gu44KKDQor44G144KL44GfLOOBn+OBi+OChuOBjQ0KK+OCguOBoeOBmuOBjSzjgbLjgo3jgobjgY0NCivjgYrjgYvjgaAs44Gf44Gk44GXDQor44GV44GE44Go44GGLOOChuOBjeOBkw0KK+OBi+OCj+OBr+OCiSzjgobjgY0NCivjgZnjgZrjgYvjgZEs44Gf44GP44KEDQor44GE44Go44GGLOOBguOBpOOBkw0KK+OBhOOBl+OBmuOBiyzjgbLjgZXjgagNCivjgZ/jgbnjgYQs44KE44GZ44G+44GVDQor44GU44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBleOBiyzjgajjgYrjgosNCivjgYvjgo/jgYQs44GL44Ga44G+DQor44KP44Gf44Gq44G5LOOCiOOBl+OBi+OBmg0KK+OBmeOBmuOBjSzjgYTjgaTjgbXjgb8NCivjgb7jgaTjgoTjgb4s44Gy44KN44GXDQor44Gv44KJLOOCiuOCh+OBhuOBuOOBhA0KK+OBpOOBsOOBjSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgoTjgZnjgYQs44Gf44GL44KG44GNDQor44GT44Gw44KE44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBiuOBi+OBuSzjgZXjgobjgooNCivjgYrjgYzjgo8s44GX44KH44GG44GTDQor44KE44G+44GQ44GhLOOBleOBqOOBlw0KK+OBteOBmOOBi+OCjyzjgZHjgpPjgZgNCivjgYTjgarjgYzjgY0s44Gy44Gn44Go44GXDQor44Gh44GeLOOBqOOBl+OBsuOBkw0KK+OBr+OBquOBoCzjgZjjgoXjgpPjgoQNCivjgYrjgYrjgZMs44KC44Go44GC44GNDQor44GK44GK44GP44KJLOOBmeOBv+OBsuOCjQ0KK+OBvuOBpOOBiizjgaTjgajjgoANCivjgYjjgpPjgaks44G+44KK44GTDQor44G744KK44G5LOOCguOBqOOBmA0KK+OBi+OBpCzjgabjgaTjgbLjgo0NCivjgYrjgZ/jgYss44G+44GV44Gu44G2DQor44Gf44GL44Gv44GXLOOBqOOBl+OChA0KK+OCgOOCieOChOOBvizjgobjgYbjgZMNCivjgojjgZfjgYrjgYss44GV44KG44KKDQor44GL44GELOOCiOOBl+OBiA0KK+OBn+OBi+OBr+OBlyzjgo/jgYvjgZMNCivjgZDjgpPjgZIs44Gf44G+44KIDQor44KE44GuLOOBn+OBhA0KK+OBr+OChOOBlyzjgYLjgoTjgZMNCivjgb/jgYbjgoks44G+44Gq44G/DQor44GC44GK44KE44GOLOOBsuOCjeOBn+OBiw0KK+OBn+OBi+OBoCzjgajjgY/jgbLjgZMNCivjgazjgb7jgZ8s44GR44KT44GYDQor44GL44Gf44GK44GLLOOBi+OBiuOCiw0KK+OBl+OBv+OBmizjgZXjgaHjgZMNCivjgZfjgb/jgZos44KG44GG44GTDQor44G+44Gk44KA44KJLOOBn+OCjeOBhg0KK+OBiuOCiuOBqCzjgZXjgajjgZcNCivjgZPjgZ/jgass44G144G/44Gy44GTDQor44GK44GK44Gv44GXLOOCiuOCh+OBhg0KK+OBi+OCk+OBm+OBjSzjgZHjgYTjgZMNCivjgY3jgZ/jgoDjgoks44GT44GG44Gf44KN44GGDQor44GV44GP44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgZPjga/jgoks44Go44GK44KLDQor44GE44Gv44KJLOOBkeOBhOOBkw0KK+OBpOOBmOOBhuOCiSzjgYvjgZrjgbLjgo0NCivjgarjgYvjgoDjgoks44Gk44KI44GXDQor44GC44GK44GNLOOBguOBjeOBkw0KK+OBguOBiuOChOOBvizjgaDjgYTjgZnjgZENCivjgYLjgYvjgYTjgZEs44Gy44KN44G/DQor44GC44GL44GkLOOBmOOCheOCkw0KK+OBguOBjeOBr+OCiSzjgZfjgoXjgpPjgZnjgZENCivjgYLjgY3jgoLjgags44G+44KKDQor44GC44GV44GP44KJLOOBn+OBi+OBlw0KK+OBguOBleOBrizjgorjgofjgYYNCivjgYLjgbPjgoss44GC44GE44GTDQor44GC44G5LOOBruOCiuOBn+OBiw0KK+OBguOBuSzjgobjgY0NCivjgYLjgbks44Gf44GP44KEDQor44GC44G544GL44KPLOOBqOOCguOBkw0KK+OBguOCieOBhCzjga7jgorjgbLjgagNCivjgYLjgonjgYQs44G+44GV44Go44GXDQor44GC44KJ44GL44KPLOOBsuOCjeOBjQ0KK+OBguOCieOBjSzjgZ/jgYvjgYLjgY0NCivjgYLjgonjgY0s44Gy44KN44GXDQor44GC44KK44GILOOBvuOBleOBteOBvw0KK+OBguOCk+OBqeOBhizjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgYTjgaAs44GY44KF44KT44GE44GhDQor44GE44GR44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OBhOOBkeOBoCzjgZ/jgZHjgZcNCivjgYTjgZHjgaAs44Gq44GK44GNDQor44GE44GX44GELOOBruOBtuOChOOBmQ0KK+OBhOOBl+OBhCzjga/jgoTjgagNCivjgYTjgZfjgYzjgY0s44G/44KE44GTDQor44GE44GX44GL44KPLOOChuOBjQ0KK+OBhOOBl+OBi+OCjyzjgobjgb/jgZMNCivjgYTjgZfjgZbjgo8s44Gm44KL44GNDQor44GE44GX44Ga44G/LOOBl+OCheOBhuOBuOOBhA0KK+OBhOOBl+OBnOOBjSzjgaDjgYTjgZnjgZENCivjgYTjgZfjgaAs44KG44GG44GYDQor44GE44GX44GgLOOCjOOBhOOBkw0KK+OBhOOBl+OBoCzjgojjgZfjgZ/jgYsNCivjgYTjgZfjgaUs44Gf44GL44GXDQor44GE44GX44Gv44KJLOOBteOBv+OBquOBig0KK+OBhOOBl+OBvuOCiyzjgZfjgoXjgYbjgYTjgaENCivjgYTjgZ/jgass44Gf44GL44GXDQor44GE44Gf44Gv44KJLOOBsuOBleOBpOOBkA0KK+OBhOOBoeOBvizjgarjgYrjgagNCivjgYTjgajjgYYs44KG44GG44GTDQor44GE44Go44GGLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBhOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgYTjgajjgYYs44GC44GN44GTDQor44GE44Go44GGLOOBl+OBmuOBkw0KK+OBhOOBqOOBhizjgYrjgY0NCivjgYTjgajjgYYs44Gk44KI44GXDQor44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBhOOBquOBjOOBjSzjgZfjgZLjgY0NCivjgYTjgarjgb8s44KM44GKDQor44GE44GuLOOBv+OBjQ0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgY0NCivjgYTjga7jgYbjgYgs44Gf44GL44GXDQor44GE44G+44GKLOOBmOOCheOCk+OBuuOBhA0KK+OBhOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgYTjgo/jgYvjgb8s44KG44GG44GZ44GRDQor44GE44KP44GP44KJLOOChuOBn+OBiw0KK+OBhOOCj+OBluOBjSzjgbLjgo3jgZ/jgYsNCivjgYTjgo/jgZ8s44GT44GG44GYDQor44GE44KP44KC44GoLOOBsuOCjeOBjQ0KK+OBhuOBiOOBmeOBjizjgZjjgoXjgpPjgZMNCivjgYbjgYjjgaAs44G+44GV44KEDQor44GG44GI44Gf44GLLOOBl+OCh+OBhuOBmA0KK+OBhuOBiOOBoSzjgb7jgooNCivjgYbjgYjjga4s44GR44KT44GYDQor44Gy44KK44KF44GGLOOBk+OBhuOBmA0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYbjgaHjgaAs44GC44KEDQor44GG44Gh44GgLOOBjeOBhOOBoQ0KK+OBhuOBoeOBr+OBlyzjgZTjgYYNCivjgYbjgaHjgoTjgb4s44KM44G/DQor44GG44KB44Gv44KJLOOBquOBpOOBkw0KK+OBhuOCiuOBn+OBqyzjgb7jgZnjgb8NCivjgYrjgYTjgYvjgo8s44GR44KT44Gf44KN44GGDQor44GK44GK44GELOOBqOOCguOChuOBjQ0KK+OBiuOBiuOBhCzjgYvjgojjgZMNCivjgYrjgYrjgYTjgZcs44G+44GV44Gy44GTDQor44GK44GG44GhLOOBkeOCk+OBl+OCkw0KK+OBiuOBiuOBiCzjgaDjgYTjgZnjgZENCivjgYrjgYrjgYrjgYss44G+44GV44Gy44KNDQor44GK44GK44GL44KPLOOBvuOBleOChA0KK+OBiuOBiuOBj+OBvCzjgorjgofjgYYNCivjgYrjgYrjgY/jgb4s44Gu44KK44Gy44KNDQor44GK44GK44GfLOOBruOBtuOBsuOCjQ0KK+OBiuOBiuOBn+OBqyzjgZfjgZrjgYsNCivjgYrjgYrjgaQs44Gh44GIDQor44GK44GK44GkLOOBpuOBpOOChA0KK+OBiuOBiuOBpOOBiyzjgZjjgoXjgpMNCivjgYrjgYrjgaTjgYss44Gm44KL44Gy44KNDQor44GK44GK44Gk44GLLOOBguOBjeOCiQ0KK+OBiuOBiuOBpOOBiyzjgZHjgYQNCivjgYrjgYrjgaTjgbws44G+44GV44G/44GkDQor44GK44GK44Gv44GfLOOBguOBjeOBkw0KK+OBiuOBiuOBvuOBlSzjgZ/jgaTjgYoNCivjgYrjgYrjgoQs44GR44GE44GYDQor44GK44GK44KE44G+LOOBn+OBhOOBmeOBkQ0KK+OBiuOBiyzjgZ/jgo3jgYYNCivjgYrjgYvjgZjjgb4s44G/44Gk44Gu44G2DQor44GK44GL44GgLOOBn+OBpOOChA0KK+OBiuOBi+OBoCzjgaHjgbLjgo0NCivjgYrjgYvjgaAs44Gu44KK44KI44GXDQor44GK44GL44GgLOOBleOBqOOBlw0KK+OBiuOBi+OBoCzjgovjgb8NCivjgYrjgYvjga/jgZ8s44Gf44Gk44KEDQor44GK44GL44G5LOOChOOBmeOBvuOBlQ0KK+OBiuOBi+OCguOBqCzjgbLjgZXjgZcNCivjgYrjgYvjgoLjgags44KI44GX44Gu44KKDQor44GK44GL44KC44GoLOOBsuOBp+OBjQ0KK+OBiuOBjOOCjyzjgZHjgYTjgZMNCivjgYrjgYzjgo8s44Gg44GE44GZ44GRDQor44GK44GP44GgLOOBk+OBhuOBuOOBhA0KK+OBiuOBj+OBqCzjgZXjgaENCivjgYrjgY/jgarjgYss44Gb44GE44GXDQor44GK44GQ44KJLOOBn+OCjeOBhg0KK+OBiuOBluOBjSzjga7jgbbjgYLjgY0NCivjgYrjgZXjgaAs44Gy44KN44GXDQor44GK44GW44KPLOOBsuOCjeOBvw0KK+OBiuOBmOOBvizjgb7jgZPjgagNCivjgYrjgZjjgb4s44G+44GV44GXDQor44GK44Gw44KJLOOChuOCiuOBkw0KK+OBi+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYvjgY3jgY/jgoks44G+44GV44KG44GNDQor44GL44GN44KC44GoLOOBpuOBpOOChA0KK+OBi+OBjyzjgZPjgYbjgZgNCivjgYvjgZLjgoTjgb4s44Gf44Gg44Gy44GVDQor44GL44GY44Gq44GMLOOChuOBn+OBiw0KK+OBi+OBl+OBvizjgojjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44Gf44GL44Gy44KNDQor44GL44Gf44GO44KKLOOBquOBpOOBkw0KK+OBi+OBn+OChOOBvizjgb7jgbLjgagNCivjgYvjgaks44KG44G/44GTDQor44GL44Go44GGLOOCiuOBpOOBkw0KK+OBi+OBqOOBhizjgorjgofjgYYNCivjgYvjgajjgYYs44G144G/DQor44GL44Go44GGLOOCjOOBhOOBkw0KK+OBi+OBqOOBhizjgZnjgb/jgowNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBpuOBpOOChA0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgYvjgajjgYYs44KP44Gf44KLDQor44GL44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBquOCguOBqCzjgYLjgY3jgZMNCivjgYvjgarjgoQs44GX44KT44KEDQor44GL44Gt44GTLOOCiOOBl+OBi+OBmg0KK+OBi+OBreOCguOCiizjgobjgYYNCivjgYvjgo8s44KI44GX44GL44GaDQor44GL44KP44GELOOBk+OBhuOBmA0KK+OBi+OCj+OBhCzjga/jgovjgZMNCivjgYvjgo/jgYvjgb8s44G+44GV44GK44G/DQor44GL44KP44GQ44GhLOOBoeOBi+OBkw0KK+OBi+OCj+OBkOOBoSzjgZfjgoXjgpPjgZnjgZENCivjgYvjgo/jgZDjgaEs44Go44GX44Gy44GTDQor44GL44KP44GQ44GhLOOBsuOCjeOBjQ0KK+OBi+OCj+OBkOOBoSzjgZnjgZnjgoANCivjgYvjgo/jgZTjgYTjgZcs44Gf44GL44KG44GNDQor44GL44KP44GX44G+LOOBlOOCjeOBhg0KK+OBi+OCj+OBqizjgZ/jgZHjgZcNCivjgYvjgo/jga7jgbks44KG44GN44GTDQor44GL44KT44GuLOOChOOBmeOBruOBtg0KK+OBjeOBj+OBoSzjga7jgZ7jgb8NCivjgY3jgZcs44KM44GE44GTDQor44GN44GX44KC44GoLOOBn+OBkeOBlw0KK+OBjeOBl+OCjSzjgoTjgZnjgZcNCivjgY3jgZ/jgYos44GX44KTDQor44GN44Gf44Gv44G+LOOBn+OBkeOBruOCig0KK+OBjeOBn+OCgOOCiSzjgojjgZfjga7jgooNCivjgY3jganjgZPjgo0s44GC44Gk44GXDQor44GN44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBjeOCgOOCiSzjgb7jgZPjgagNCivjgY3jgoDjgoks44GC44GE44GTDQor44GN44KK44GC44GRLOOBiOOBhOOBleOBjw0KK+OBj+OBjeOCguOBqCzjgajjgZfjgY0NCivjgY/jgbws44GP44Gr44KG44GNDQor44GP44G844GfLOOBvuOChuOBvw0KK+OBj+OBvuOBj+OCiSzjgorjgYsNCivjgY/jgb7jgaAs44KG44GG44GZ44GRDQor44GP44G+44KC44GoLOOBsuOCjeOBguOBjQ0KK+OBj+OCgSzjgb7jgZXjgbLjgagNCivjgY/jgonjgoQs44GT44GG44G444GEDQor44GP44KK44KP44GNLOOBvuOBjeOBkw0KK+OBj+OCj+OBsOOCiSzjgobjgYvjgooNCivjgZTjgYYs44Gm44KL44GKDQor44GT44GE44GRLOOBleOBqOOCiw0KK+OBk+OBhOOBkSzjgozjgYrjgaoNCivjgZPjgZXjgYss44KA44Gk44G/DQor44GT44GG44GgLOOBguOChOOBkw0KK+OBk+OBjCzjgZPjgYbjgYTjgaENCivjgZPjgY/jgbws44KC44KC44GIDQor44GT44GP44KJLOOCiuOBiA0KK+OBk+OBlCzjgorjgoXjgYbjgZgNCivjgZPjgZXjgY0s44KK44KH44GG44GZ44GRDQor44GT44GY44G+LOOBsuOCjeOBkw0KK+OBk+OBp+OCiSzjgYvjgZrjgagNCivjgZTjgajjgYYs44Gg44GE44GZ44GRDQor44GU44Go44GGLOOBkeOBhOOBkw0KK+OBlOOBqOOBhizjgYvjgZrjga7jgooNCivjgZPjga/jgZ8s44Gh44KI44G/DQor44GT44Gw44KE44GXLOOBqOOBiuOCiw0KK+OBk+OBsOOChOOBlyzjgarjgbvjgZMNCivjgZPjgb7jgaTjgbDjgoks44G/44G7DQor44GT44G/44KELOOBqOOBj+OBkw0KK+OBk+OBv+OChOOBvizjgb7jgZXjgojjgZcNCivjgZPjgoTjgarjgY4s44GX44KT44KEDQor44GT44KE44G+LOOBn+OBi+OBkw0KK+OBk+OCk+OBqSzjga7jgbbjgYsNCivjgZPjgpPjga4s44Gu44G244G7DQor44GV44GE44Go44GGLOOBsuOCjeOBsuOBpw0KK+OBleOBhOOBqOOBhizjgZfjgZLjgosNCivjgZXjgYTjgajjgYYs44GR44KT44GE44GhDQor44GV44GE44Go44GGLOOBkeOCk+OBlA0KK+OBleOBhOOBqOOBhizjgYLjgYQNCivjgZXjgYvjgYQs44KK44KH44GG44GZ44GRDQor44GV44GL44GuLOOChuOBjeOBkw0KK+OBleOBi+OCguOBqCzjgo/jgZ/jgosNCivjgZXjgYvjgoLjgags44Gh44GL44KJDQor44GV44GP44KJ44GELOOBvuOBleOBteOBvw0KK+OBleOBleOBjSzjgojjgZfjgZMNCivjgZXjgZXjgY0s44Gf44GR44KG44GNDQor44GV44GV44GNLOOChuOBjeOBig0KK+OBleOBleOBjSzjgZXjgY0NCivjgZXjgZXjgY0s44KE44GZ44Gy44KNDQor44GV44GV44GuLOOBguOBi+OBjg0KK+OBleOBoOOCguOBqCzjgZLjgpPjgZPjgYYNCivjgZXjgajjgYYs44Gy44KN44GNDQor44GV44Go44GGLOOChuOBhuOBhOOBoeOCjQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44Gf44GL44Gy44KNDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBleOBquOBoCzjgb7jgZXjgobjgY0NCivjgZXjga3jgZfjgZIs44Go44GX44Gu44G2DQor44GV44GuLOOBi+OBmuOBsuOBkw0KK+OBl+OBkuOBqOOBvyzjgZXjgajjgZMNCivjgZfjga7jga/jgoks44KC44KK44Gy44GTDQor44GX44Gw44GL44KPLOOBkeOCk+OBmOOCjeOBhg0KK+OBl+OBsOOBrizjgorjgofjgYYNCivjgZfjgb7jgaAs44Gf44GR44GXDQor44GX44G+44GgLOOBn+OBpOOCjeOBhg0KK+OBl+OBv+OBmizjgZ/jgYvjgYoNCivjgZfjgoDjgoks44Gf44GL44Gu44KKDQor44GX44KA44KJLOOBn+OBkeOBlw0KK+OBl+OCguOBi+OCjyzjgajjgoLjgoQNCivjgZfjgoLjgbXjgZgs44Gu44G244Gy44GTDQor44GX44KC44KE44G+LOOBsuOBp+OBi+OBmg0KK+OBl+OCh+OBhizjgbLjgo3jgobjgY0NCivjgZfjgonjgYQs44KK44GIDQor44GX44KJ44GMLOOBk+OBhuOBmA0KK+OBl+OCieOBi+OCjyzjgoTjgZnjgZMNCivjgZfjgonjgZks44G/44KG44GNDQor44GX44KPLOOBkeOCk+OBhOOBoQ0KK+OBl+OCk+OBkSzjgarjgYTjgZfjgpMNCivjgZfjgpPjganjgYYs44Go44KC44GL44GaDQor44GZ44GM44Gv44KJLOOBsuOCjeOBi+OBmg0KK+OBmeOBjuOBhuOBoSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgZnjgY7jgYbjgoks44Gh44GC44GNDQor44GZ44GO44GV44KPLOOCiOOBhuOBkw0KK+OBmeOBjuOBr+OCiSzjgbLjgo3jga7jgbYNCivjgZnjgY7jgoLjgags44Gm44KL44KG44GNDQor44GZ44GO44KE44G+LOOBn+OBpOOChA0KK+OBmeOBmuOBjSzjgb7jgZXjgobjgY0NCivjgZnjgZrjgY0s44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBn+OBhOOBmeOBkQ0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgZnjgZrjgY0s44G+44GV44KEDQor44GZ44Ga44GNLOOCiuOCheOBhuOBnw0KK+OBmeOBmuOBjSzjga7jgorjgZMNCivjgZnjgZrjgY0s44G/44GL44GTDQor44GZ44GgLOOCiuOCk+OChA0KK+OBmeOBqCzjgabjgaTjgoQNCivjgZnjgb/jgaAs44GC44GN44Gy44KNDQor44Gb44GNLOOBguOBpOOBquOCig0KK+OBm+OBjSzjgYvjgZrjgY0NCivjgZvjgpPjgaAs44KG44GN44GTDQor44Gd44KB44G/44KELOOBoeOBiA0KK+OBneOChCzjgbLjgo3jgY0NCivjgaDjgYTjgb7jgoss44GC44GN44KJDQor44Gf44GL44GKLOOBr+OBquOBiA0KK+OBn+OBi+OBjizjgYvjgogNCivjgZ/jgYvjgZbjgo8s44Gg44KTDQor44Gf44GL44GbLOOBkeOCk+OBmA0KK+OBn+OBi+OBrSzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GY44KF44KT44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgarjgYoNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOBvuOBquOBtg0KK+OBn+OBi+OChOOBvizjgobjgY3jgYoNCivjgZ/jgY3jgYbjgaEs44KK44GIDQor44Gf44GN44GL44KPLOOBguOBjeOCiQ0KK+OBn+OBjeOBkOOBoSzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgY3jgZbjgo8s44GV44Go44GXDQor44Gf44GN44GW44KPLOOBk+OBhuOBmOOCjeOBhg0KK+OBn+OBjeOBluOCjyzjgaHjgbLjgo0NCivjgZ/jgY3jgZ8s44GC44GN44KJDQor44Gf44GQ44GhLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBkeOBhCzjgY/jgavjgYoNCivjgZ/jgZHjgYbjgaEs44GX44KT44GUDQor44Gf44GR44GgLOOChuOBhuOBhOOBoeOCjQ0KK+OBn+OBkeOBr+OCiSzjgojjgYbjgZMNCivjgZ/jgabjga4s44Gq44GK44Gf44GLDQor44Gf44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgZnjgZnjgoANCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gq44GLLOOBquOBig0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44Gq44GLLOOBquOBiuOBkw0KK+OBn+OBquOBiyzjgYjjgorjgZMNCivjgZ/jgarjgYss44G/44Gk44GIDQor44Gf44Gq44G5LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBn+OBqyzjgaHjgYvjgogNCivjgZ/jgavjgYvjgo8s44KI44GX44Gk44GQDQor44Gf44Gr44Gq44GLLOOBsuOCjeOBn+OBiw0KK+OBn+OBq+OCguOBqCzjgaHjgZrjgosNCivjgZ/jgazjgb4s44G144G/44Gy44GTDQor44Gf44Gw44GfLOOBmOOCheOCkw0KK+OBn+OBsOOBnyzjgZMNCivjgZ/jgbDjgZ8s44KI44GG44GZ44GRDQor44Gf44Gw44GfLOOBkeOBhOOBn+OCjeOBhg0KK+OBn+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgZ/jgovjgY0s44KG44GNDQor44Gf44KT44GYLOOBjeOCiOOBruOCig0KK+OBoeOBsCzjgYvjgZrjgobjgY0NCivjgaHjgbAs44Gy44KN44GL44GaDQor44Gk44GL44GgLOOCiuOBiA0KK+OBpOOBjeOCguOBqCzjgYLjgaTjgZcNCivjgaTjgZgs44Gy44KN44GXDQor44Gk44GgLOOBjeOBv+OBsuOBkw0KK+OBpOOBoeOCguOBqCzjgZfjgpPjgZQNCivjgaTjgaTjgb8s44Go44KC44GTDQor44Gk44Gk44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OBpOOBvOOBnyzjgb7jgZXjgoQNCivjgabjgYQs44KP44GL44G/DQor44Gm44KJ44GL44GpLOOBv+OBpOOBguOBjQ0KK+OBv+OBruOBhuOCiSzjgb7jgarjgbYNCivjgabjgovjgYQs44G+44KKDQor44Gp44GELOOBk+OBhuOBn+OCjeOBhg0KK+OBqOOBhizjgb7jgY3jgZMNCivjgajjgYbjgYvjgYTjgorjgpMs44KG44G/DQor44Gp44GG44KB44KTLOOBiOOBpOOBkw0KK+OBqOOBhuOBi+OBhCzjgYvjgYrjgooNCivjgajjgY/jgarjgYws44GN44G/44Gf44GLDQor44Go44GP44KE44G+LOOBn+OBhOOBjA0KK+OBqOOBl+OBvizjgb/jgo/jgZMNCivjganjgYbjgaEs44Go44KC44KG44GNDQor44Go44Gu44GELOOBguOBjeOBkw0KK+OBqOOBruOCgOOCiSzjgorjgYjjgZMNCivjgajjgb/jgZ8s44GP44Gr44GKDQor44Go44KC44GuLOOBsuOBp+OBi+OBmg0KK+OBqOOCiuOBhCzjgb7jgoLjgosNCivjgarjgYzjgYQs44Go44KC44Gu44KKDQor44Gq44GL44GM44KPLOOBhOOBj+OBvg0KK+OBquOBi+OBjOOCjyzjgojjgZfjga7jgooNCivjgarjgYvjgYzjgo8s44Gg44GE44GZ44GRDQor44Gq44GL44GW44GoLOOCguOBqOOBruOBtg0KK+OBquOBi+OBl+OBvizjgaHjgYvjgZMNCivjgarjgYzjgZ8s44KG44GLDQor44Gq44GL44GuLOOBi+OBqg0KK+OBquOBjOOBrizjgorjgofjgYbjgZ8NCivjgarjgYzjga4s44KK44KH44GGDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GL44KA44KJLOOBpuOBpOOChA0KK+OBquOBi+OCguOCiizjgajjgY/jgZMNCivjgarjgYvjgoTjgb4s44Go44KC44Gy44KNDQor44Gq44KL44GbLOOBn+OBi+OBlw0KK+OBquOCk+OBlCzjgb7jgZXjgY0NCivjgarjgpPjgbAs44GR44KTDQor44Gq44KT44GwLOOBk+OBhuOBmA0KK+OBq+OBhOOBvyzjgZPjgYbjgbjjgYQNCivjgavjgZfjgYos44KI44GG44GYDQor44Gr44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBiuOBiyzjgajjgoLjgZMNCivjgavjgZfjgZXjgYss44G+44G/DQor44Gr44GX44GW44GNLOOBn+OBj+OBvg0KK+OBq+OBl+OBluOCjyzjgarjgYrjgY0NCivjgavjgZfjga4s44GV44Go44GXDQor44Gs44G+44Gf44GNLOOCguOBqOOBjQ0KK+OBreOBjuOBlyzjgorjgYsNCivjga3jgoTjgb4s44Gf44GR44GXDQor44Gu44GgLOOBoeOBguOBjQ0KK+OBruOBkOOBoSzjga7jgorjgZMNCivjga7jgZDjgaEs44KI44GG44GZ44GRDQor44Gu44GQ44GhLOOBkeOBhOOBmA0KK+OBruOBkOOBoSzjgZfjgpPjgY3jgaENCivjga7jgZbjgY0s44Gg44GE44GZ44GRDQor44Gu44GgLOOBsuOCjeOBkw0KK+OBruOBvOOCiizjgojjgZfjgbLjgo0NCivjga7jgoDjgoks44GX44KF44GG44GE44GhDQor44Gu44KA44KJLOOBv+OBleOBkw0KK+OBruOCgOOCiSzjgZHjgpPjgZgNCivjga/jgY7jgo/jgoks44GX44KH44GG44Gf44KN44GGDQor44Gv44GX44GQ44GhLOOBqOOBl+OBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgbXjgb8NCivjgb7jgY0s44GL44Ga44GoDQor44Gv44Gb44GM44KPLOOBn+OBkeOBig0KK+OBr+OBm+OBjOOCjyzjgYrjgZXjgoANCivjga/jgaAs44GC44KE44GTDQor44Gv44Gj44Go44KKLOOChuOBhuOBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgb7jgobjgZMNCivjgbDjgbAs44G+44GV44GNDQor44Gw44GwLOOBkeOCk+OBmA0KK+OBsOOBsCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgbDjgbAs44KK44GL44GTDQor44Gv44G+44GgLOOBj+OBv+OBkw0KK+OBr+OBvuOBoCzjgaDjgYTjgZgNCivjga/jgb7jgaAs44KK44GVDQor44Gv44G+44GgLOOBteOBv+OBsuOCjQ0KK+OBr+OBvuOBrizjgb7jgZXjgobjgY0NCivjga/jgoTjgZcs44GC44GN44Gu44KKDQor44Gy44GQ44GhLOOBk+OBhuOBjQ0KK+OBsuOBleOBpOOBrSzjgb7jgZPjgagNCivjgbLjgZfjgazjgb4s44GC44Gk44GXDQor44Gz44KH44GG44Gp44GGLOOBsuOCjeOBkw0KK+OBsuOCieOBhCzjgb7jgZXjgYvjgZoNCivjgbLjgonjgYrjgYss44G/44GNDQor44Gy44KJ44GL44KPLOOBqOOCguOBsuOCjQ0KK+OBsuOCieOBleOCjyzjgZ/jgY/jgZgNCivjgbLjgonjgZfjgb4s44GY44KN44GGDQor44Gy44KJ44GfLOOBvuOBv+OBkw0KK+OBsuOCieOBrizjgoTjgojjgYQNCivjgbLjgovjgb4s44KG44GG44GE44GhDQor44Gy44KN44GbLOOBsuOBp+OBjQ0KK+OBsuOCjeOBmyzjgYvjgaTjgojjgZcNCivjgbLjgo3jgZ8s44Gy44KN44GXDQor44G144GP44GELOOBguOBmuOBlQ0KK+OBteOBj+OBoCzjgZ/jgYvjgZcNCivjgbXjgY/jgbAs44GL44Gq44KBDQor44G144GP44KA44KJLOOChuOBv+OBkw0KK+OBteOBj+OCguOBqCzjgaDjgYTjgZnjgZENCivjgbXjgZjjgYQs44GR44KTDQor44G144GY44GELOOChuOBjQ0KK+OBteOBmOOBhCzjgb/jgo8NCivjgbXjgZjjgYjjgaAs44Gy44GV44GL44GaDQor44G144GY44GfLOOBsuOBp+OBi+OBmg0KK+OBteOBmOOBnyzjgobjgY3jgZMNCivjgbXjgZjjgaQs44Gf44GR44GXDQor44G144GY44GuLOOBn+OBi+OBuw0KK+OBteOBmOOCguOBqCzjgZXjgajjgZMNCivjgbXjgZjjgo/jgoks44Gf44GP44GoDQor44G144GY44KP44KJLOOCiuOBqg0KK+OBteOBmOOCj+OCiSzjgY/jgb8NCivjgbXjgovjgYvjgo8s44KK44KH44GGDQor44G7LOOBvuOBleOBruOCig0KK+OBu+OBl+OBrizjgoDjga3jgajjgoINCivjgbvjgZ3jgYvjgo8s44Gm44KL44Gy44GTDQor44G744KK44GL44KPLOOBl+OCheOBhuOBmA0KK+OBu+OCk+OBlOOBhizjgojjgZfjgYLjgY0NCivjgb7jgYjjgaAs44GC44Gk44GXDQor44G+44GK44GLLOOBpOOBqOOCgA0KK+OBvuOBmeOBtuOBoSzjgaTjgojjgZcNCivjgb7jgZnjgb/jgaQs44GN44KH44GG44G444GEDQor44G+44Gk44GELOOBkeOCk+OBn+OCjeOBhg0KK+OBvuOBpOOBiizjgbLjgafjga7jgooNCivjgb7jgaTjgYrjgYss44GN44KH44GG44GZ44GRDQor44G+44Gk44GK44GLLOOBleOBoeOBkw0KK+OBvuOBpOOBoCzjgorjgofjgYYNCivjgb7jgaTjgbDjgoks44GC44GN44GTDQor44KP44Gf44Gq44G5LOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOChOOBvizjgZ/jgZHjgZcNCivjgb7jgaTjgoTjgb4s44G/44Gk44Gm44KLDQor44G+44Gk44KE44G+LOOCiOOBl+OBjQ0KK+OBvuOBqOOBsCzjgajjgoLjgbLjgo0NCivjgb/jgYbjgoks44G+44GV44GNDQor44G/44Gk44GOLOOBn+OBkeOBlw0KK+OBv+OBqCzjgZfjgoXjgYbjgYTjgaENCivjgb/jga7jgYbjgoks44KE44GZ44Gy44GVDQor44G/44KELOOBguOBjeOCiQ0KK+OBv+OChOOBkSzjgbLjgafjgb7jgZUNCivjgb/jgoTjgZfjgZ8s44GC44GEDQor44G/44KE44GX44GfLOOChuOBjeOBig0KK+OBv+OChOOBnyzjgYLjgY3jgbLjgo0NCivjgb/jgoTjgoLjgags44Gf44Gk44KEDQor44G/44KE44KC44GoLOOBj+OBq+OBkw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgbLjgo0NCivjgoDjgY/jgaAs44Go44KC44GC44KKDQor44KA44GX44GLLOOChuOBjeOBkw0KK+OCgOOBqOOBhizjgYLjgY3jgokNCivjgoDjgonjgYvjgb8s44KG44GLDQor44KA44KJ44GL44G/LOOBi+OBquOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgo0NCivjgoDjgonjgYvjgb8s44Gy44Gn44Gk44GQDQor44KA44KJ44Gf44GrLOOCguOBqOOBsuOCjQ0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgZMNCivjgoDjgonjgoTjgb4s44KI44GX44GC44GNDQor44KC44Gh44Ga44GNLOOBqOOBl+OBsuOBkw0KK+OCguOCiuOBkOOBoSzjgb/jgZXjgagNCivjgoLjgorjgZ8s44G+44G/DQor44KC44KK44Gw44KE44GXLOOBk+OBhuOCgeOBhA0KK+OCguOCjeOBqCzjgbLjgo3jgZ/jgaQNCivjgoTjgYjjgYzjgZcs44Gy44Gn44KG44GNDQor44KE44GK44KE44G+LOOBkuOCk+OBnw0KK+OChOOBjOOBvyzjgojjgZfjgbLjgo0NCivjgoTjgY4s44GR44GE44GYDQor44KE44GQ44KJLOOBl+OCk+OBmA0KK+OChOOBmeOBk+OBoSzjga7jgbzjgosNCivjgoTjgZnjgaAs44KG44GG44GZ44GRDQor44KE44GZ44GgLOOBruOCiuOBkw0KK+OChOOBvuOBkOOBoSzjgobjgYbjgZnjgZENCivjgoTjgb7jgZDjgaEs44GX44KH44GG44GX44KTDQor44KE44G+44GgLOOCj+OBhOOBkeOCkw0KK+OChOOBvuOBoCzjgb/jgZrjgbsNCivjgoTjgb7jgaAs44GC44GN44KJDQor44KE44G+44G/44GhLOOBi+OBpOOChuOBjQ0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZMNCivjgoTjgb7jgoLjgags44Gy44KN44G/DQor44KG44GNLOOBvuOBv+OBkw0KK+OChuOBv+OBsCzjgZHjgYTjgYTjgaENCivjgobjgoks44GR44KT44GE44GhDQor44KI44GT44GZ44GLLOOBr+OCi+OBruOBtg0KK+OCiOOBk+OBnyzjgYLjgYQNCivjgojjgZPjgoTjgb4s44GC44KE44GTDQor44KI44GX44GK44GLLOOBquOBiuOBkw0KK+OCiOOBl+OBiuOBiyzjgYvjgZrjgbLjgo0NCivjgojjgZfjgZbjgo8s44KG44GG44GTDQor44KI44GX44GgLOOBv+OBpOOCiw0KK+OCiOOBl+OBoCzjgYLjgYvjgooNCivjgojjgZfjgaAs44Gf44GL44GXDQor44KI44GX44GuLOOBi+OBmuOBvw0KK+OCiOOBl+OCgOOCiSzjgobjgYbjgZMNCivjgorjgoXjgYYs44GI44GE44GYDQor44KN44GPLOOBguOBjeOBkw0KK+OBleOBi+OCguOBqCzjgZHjgYTjgZMNCivjgo/jgZ/jgarjgbks44KM44GE44GqDQor44KP44Gf44Gq44G5LOOChuOBteOBkw0KK+OCj+OBn+OBquOBuSzjgobjgYYNCivjgo/jgZ/jgarjgbks44Gf44GL44GTDQor44KP44Gf44Gq44G5LOOChOOCiOOBhA0KK+OCj+OCieOBsyzjgbLjgo3jga7jgooNCivjga7jgZbjgo8s44KG44GG44GTDQor44GP44G8LOOChOOBmeOBkw0KK+OCiOOBl+OCguOBqCzjgZMNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OBsuOCjeOBleOCjyzjgorjgYgNCivjgb/jgbLjgoks44KK44KH44GG44G444GEDQor44GK44GK44GuLOOBsuOCjeOChuOBjQ0KK+OBiuOBoCzjgYvjgZrjgbLjgZMNCivjgYrjgYrjgbDjgZ/jgZEs44G/44G744GTDQor44GL44Gp44GILOOBguOBhA0KK+OBq+OBl+OBoCzjgajjgojjgbLjgo0NCivjgb7jgaTjgoLjgags44KI44GX44GC44GNDQor44G/44GO44GfLOOBvuOBqg0KK+OBv+OChOOCguOCiizjgb/jgYoNCivjgoTjgb7jgZfjgZ8s44G+44Gp44GLDQor44KE44G+44GgLOOBl+OCk+OBlA0KK+OBruOCiuOBqOOBvyzjgaHjgYgNCivjgYTjgZHjgaAs44KG44GG44GZ44GRDQor44KC44KK44GfLOOCiuOCh+OBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgorjgofjgYYNCivjgb/jgZ8s44KI44GX44Gu44KKDQor44GE44Gs44GELOOBkeOCkw0KK+OBqOOBhizjga7jgorjgobjgY0NCivjgb7jgY3jga4s44G+44KKDQor44Gq44Gk44KBLOOBl+OCk+OChA0KK+OBiuOBruOBp+OCiSzjgY/jgavjgbLjgo0NCivjgYrjgYrjgZ8s44G/44GN44GTDQor44GG44KL44GX44GV44GTLOOCiuOBpOOBkw0KK+OBleOBi+OBjeOBsOOCiSzjgZfjgZLjga7jgooNCivjgYLjgYrjgY0s44GI44GE44GZ44GRDQor44GC44GK44GNLOOBquOBiuOBqA0KK+OBguOBiuOBjSzjgobjgYbjgZMNCivjgYLjgYvjgYzjgo8s44KC44Go44GTDQor44GC44GL44Gk44GLLOOBi+OBmuOBsuOBqA0KK+OBguOBi+OBu+OCiizjgZHjgYTjgZjjgo3jgYYNCivjgYLjgY3jgoTjgb4s44GL44Ga44Gy44KNDQor44GC44GV44GELOOBpuOCi+OBvw0KK+OBguOBleOBhCzjgZfjgpPjgbrjgYQNCivjgYLjgZXjgYrjgYss44GR44KT44GYDQor44GC44GV44Gs44G+LOOBguOChA0KK+OBguOBnSzjgarjgYrjgbXjgb8NCivjgYLjgZ/jgZEs44Go44GX44GNDQor44GC44Gg44GhLOOBl+OCk+OBlA0KK+OBguOBuSzjgZ/jgYvjgb/jgaENCivjgYLjgbks44Gu44G244KE44GZDQor44GC44G5LOOChuOBjeOBiA0KK+OBguOCieOBhCzjgaTjgojjgZcNCivjgYLjgorjgb4s44Go44KC44GTDQor44GE44GE44Ga44GLLOOBoOOBhOOBmeOBkQ0KK+OBhOOBjOOCieOBlyzjgobjgZ/jgYsNCivjgYTjgZHjgaAs44GT44Ga44GIDQor44GE44GR44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBkeOBr+OBnyzjgbLjgo3jgY0NCivjgYTjgZbjgo8s44Gh44Gv44KLDQor44GE44GX44GELOOChOOBmeOBlw0KK+OBhOOBl+OBi+OCjyzjgorjgofjgYbjgZMNCivjgYTjgZfjgZDjgo0s44GC44GN44Gy44KNDQor44GE44GX44GgLOOBk+OBhuOBn+OCjeOBhg0KK+OBhOOBl+OBoCzjgZ/jgaTjgYoNCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GE44GX44Gv44KJLOOBn+OBi+OBsuOCjQ0KK+OBhOOBl+OCguOBqCzjgb7jgobjgZMNCivjgYTjgZ3jga/jgZ8s44GC44GV44GTDQor44GE44Gf44G/LOOBn+OBi+OBguOBjQ0KK+OBhOOBoeOBi+OCjyzjgarjgovjgZ/jgYsNCivjgYTjgaPjgZfjgY0s44Gf44Gk44KEDQor44GE44GnLOOBquOCi+OBvw0KK+OBhOOBpyzjgZPjgYbjgZgNCivjgYTjgajjgYYs44G+44KG44G/DQor44GE44Go44GGLOOBmOOCheOCk+OBuuOBhA0KK+OBhOOBqOOBhizjgb7jgZXjgYoNCivjgYTjgajjgYYs44Gq44Gk44GTDQor44GE44Go44GGLOOBvuOBhA0KK+OBhOOBruOBhuOBiCzjgb7jgZPjgagNCivjgYTjga7jgYbjgYgs44KI44GG44GZ44GRDQor44GE44Gu44GG44GILOOBquOBiuOBjQ0KK+OBhOOBruOBhuOBiCzjgYvjgaTjgY0NCivjgYTjga7jgY/jgaEs44Gu44KK44KG44GNDQor44GE44G+44GELOOCiuOBuw0KK+OBhOOBvuOBjeOCheOBhuOCjOOBhCzjgozjgYTjgZMNCivjgYTjgb7jgZzjgY0s44GP44G/44GTDQor44GE44G+44KA44KJLOOBvuOBmeOBvw0KK+OBhOOBvuOCgOOCiSzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgo/jgYQs44GV44Go44KLDQor44GE44KP44GELOOBn+OBi+OBlw0KK+OBhOOCj+OBleOBjSzjgajjgoLjgZMNCivjgYTjgo/jgZss44GZ44GZ44KADQor44GE44KP44GfLOOBk+OBhuOBmA0KK+OBhOOCj+OBpyzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgo/jgoDjgoks44G+44GV44Gy44GoDQor44GG44GI44GgLOOBteOBv+OBig0KK+OBhuOBiOOBrizjgb7jgZXjgbXjgb8NCivjgYbjgYjjga4s44GX44KT44GYDQor44GG44GL44GELOOBsuOCjeOBjQ0KK+OBhuOBleOBvyzjgb7jgorjgZMNCivjgYbjgaHjgYbjgb8s44KK44GI44GTDQor44GG44Gh44KE44G+LOOBvuOBleOBteOBvw0KK+OBhuOCieOBr+OCiSzjgZ/jgYTjgZgNCivjgYjjgY4s44Gf44GL44Gy44GTDQor44GI44GY44KKLOOBsuOCjeOBlw0KK+OBiOOBruOBjeOBqSzjgojjgorjgZMNCivjgYjjgoLjgoos44GE44Gk44GNDQor44GI44KT44GpLOOBr+OBmOOCgQ0KK+OBiuOBiuOBhCzjgarjgaTjgZMNCivjgYrjgYrjgYTjgZEs44Go44KC44GL44GaDQor44GK44G144KJLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBi+OCjyzjgojjgZfjgZMNCivjgYrjgY3jgZ8s44KG44GN44Gu44KKDQor44GK44GK44GV44KPLOOBvuOBleOChuOBjQ0KK+OBiuOBiuOBnyzjgajjgoLjgZMNCivjgYrjgYrjgZ8s44GC44GN44Gq44GKDQor44GK44GK44GfLOOCiOOBhuOBuOOBhA0KK+OBiuOBiuOBn+OBqyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgZ/jgass44KG44GN44Gy44GnDQor44GK44GK44Gk44GLLOOCguOBqOOBhA0KK+OBiuOBiuOBpOOBiyzjgojjgZfjga7jgooNCivjgYrjgYrjgaTjgYss44Gg44GE44GY44KN44GGDQor44GK44GK44Gk44GNLOOBleOBqOOCiw0KK+OBiuOBqSzjgZ/jgY/jgb8NCivjgYrjgajjgpPjgbks44Gf44Gk44KEDQor44GK44GuLOOBvuOBleOBsuOBkw0KK+OBiuOBrizjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44Gf44Gk44KEDQor44GK44GK44Gv44GfLOOBguOBjeOCiQ0KK+OBiuOBiuOBv+OBoSzjgb/jgbsNCivjgYrjgYrjgoTjgb4s44G/44GN44Gy44GoDQor44GK44GL44GW44GNLOOBn+OBpOOBteOBvw0KK+OBiuOBi+OBmOOBvizjgb/jgarjgZMNCivjgYrjgYvjgaAs44GL44Ga44Gy44KNDQor44GK44GL44GgLOOBn+OBj+OBvg0KK+OBiuOBi+OCguOBqCzjgZ/jgZHjgZcNCivjgYrjgYvjgoLjgags44Gg44GE44GZ44GRDQor44GK44GM44KPLOOBmOOCheOCkw0KK+OBiuOBjuOBnyzjgajjgZfjgbXjgb8NCivjgYrjgY/jgY/jgbws44Gf44GL44GXDQor44GK44Gh44GC44GELOOBqOOCguOBruOCig0KK+OBiuOBvuOBnyzjgZHjgpMNCivjgYvjgZUs44KG44GN44GTDQor44GL44GX44KPLOOBoOOBhOOBmeOBkQ0KK+OBi+OBqOOBhizjgZPjgYbjgbjjgYQNCivjgYvjgajjgYYs44Gf44Gg44GXDQor44GL44Gq44GELOOBkeOCk+OBhOOBoQ0KK+OBi+OBquOChOOBvizjgaDjgYTjgZnjgZENCivjgYvjga3jgZMs44G144G/44KEDQor44GL44Gt44Gk44GNLOOBmOOCheOCk+OChA0KK+OBi+OBreOBvuOCiyzjgYLjgZrjgZUNCivjgYvjgbnjgYbjgaEs44Gq44GK44GoDQor44GL44G/44KA44KJLOOBi+OBiuOCig0KK+OBi+OBv+OChCzjgZXjgaHjgZMNCivjgYvjgb/jgoQs44GT44GG44GE44Gh44KN44GGDQor44GL44KP44GELOOChuOBv+OBkw0KK+OBi+OCj+OBhCzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44KJ44GEDQor44GL44KP44GV44GNLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBleOBjSzjgabjgaTjgYLjgY0NCivjgYvjgo/jgZXjgY0s44Gy44KN44GNDQor44GL44KP44GX44G+LOOBn+OBi+OBig0KK+OBi+OCj+OBnyzjgZHjgYTjgYTjgaENCivjgYvjgo/jgb7jgZ8s44GT44GG44GfDQor44GL44KP44KC44GoLOOBkeOBhOOBmeOBkQ0KK+OBjeOBl+OCguOBqCzjgYLjgY3jgojjgZcNCivjgY3jgZfjgo0s44GR44GE44GfDQor44GN44GgLOOBiOOBhOOBmeOBkQ0KK+OBjeOBn+OBiuOBiyzjgZjjgoXjgpMNCivjgY3jgZ/jga4s44G+44GV44Gy44GTDQor44GN44Gf44Gv44KJLOOBneOBhuOBuOOBhA0KK+OBjeOBn+OCgOOCiSzjgZ/jgo3jgYYNCivjgY3jgZ/jgoLjgags44G/44G7DQor44GN44KA44KJLOOBn+OBkeOBsuOCjQ0KK+OBjeOCgOOCiSzjgbXjgb/jgagNCivjgY3jgoLjgags44GR44GE44GTDQor44GN44KTLOOCiOOBl+OChuOBjQ0KK+OBj+OBl+OChOOBvizjgYLjgY3jgogNCivjgY/jganjgYYs44Go44KC44Gu44KKDQor44GP44Gp44GGLOOBl+OCheOCk+OBmeOBkQ0KK+OBj+OCgeOBhuOBoSzjgZHjgpPjgZgNCivjgY/jgonjgZfjgZIs44GT44GG44GYDQor44GP44KJ44GhLOOBi+OBmuOBsuOCjQ0KK+OBj+OCieOBquOBiyzjgZ/jgZHjgZcNCivjgY/jgorjga/jgoks44KI44GG44GZ44GRDQor44GP44KN44GNLOOBvuOBleOBjQ0KK+OBj+OCjeOBleOBiyzjgojjgYbjgZMNCivjgY/jgo/jga/jgoks44GX44GuDQor44KG44GILOOBi+OBpOOBruOCig0KK+OBk+OBhOOBmuOBvyzjgZfjgpPjgoQNCivjgZPjgYbjgZjjgb4s44KI44GX44Gy44GTDQor44GT44GG44GgLOOBi+OBpOOChuOBjQ0KK+OBk+OCk+OBrizjgZHjgpPjgYTjgaENCivjgZPjgYws44GX44KH44GG44GE44GhDQor44GT44GMLOOBn+OBj+OBmA0KK+OBk+OBj+OBtuOCkyzjgaHjgYvjgZMNCivjgZPjgZXjgYss44GC44GN44GTDQor44GT44Gj44GmLOOBvuOBhOOBkw0KK+OBr+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44KG44GLDQor44GT44Gw44KE44GXLOOBsuOBp+OBjQ0KK+OBk+OBsOOChOOBlyzjgYLjgpPjgaoNCivjgZPjgbDjgoTjgZcs44Gu44KK44GC44GNDQor44GT44Gw44KE44GXLOOBjeOBv+OBsuOBkw0KK+OBk+OBvuOBpCzjgZfjgpPjgZnjgZENCivjgZPjgb7jgaTjgbDjgoks44G144G/DQor44GT44KB44Gg44GrLOOBpuOBpOOCjeOBhg0KK+OBleOBhOOBjSzjgYLjgaTjgZcNCivjgZXjgYTjgajjgYYs44GR44KT44GE44GhDQor44GV44GL44GELOOBsuOCjeOBguOBjQ0KK+OBleOBi+OBkOOBoSzjgZ/jgo3jgYYNCivjgZXjgY/jgb4s44KG44GN44GTDQor44GV44GTLOOBvuOChA0KK+OBleOBleOBhCzjgarjgYrjgoQNCivjgZXjgZXjgYos44GL44Ga44GN44G/DQor44GV44GV44GNLOOBr+OBquOBkw0KK+OBleOBleOBjSzjgb7jgZXjgYoNCivjgZXjgajjgYYs44GL44Gk44Gy44GTDQor44GV44Go44GGLOOBi+OBmuOChuOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgbLjgagNCivjgZXjgajjgYYs44G+44GV44GNDQor44GV44Go44GGLOOBv+OBjQ0KK+OBleOBqOOBhizjgb7jgZXjgZMNCivjgZXjgajjgYYs44G/44GNDQor44GV44Go44GGLOOBruOBtuOChuOBjQ0KK+OBleOBqOOBhizjgorjgofjgYbjgZXjgY8NCivjgZXjga4s44G+44GV44GTDQor44GV44GuLOOBquOBjuOBlQ0KK+OBleOBr+OCiSzjgZ/jgYvjgbXjgb8NCivjgZXjgovjgoTjgb4s44Gf44GL44KG44GNDQor44GV44KP44GQ44GhLOOBguOChA0KK+OBl+OBhCzjgYjjgb8NCivjgZfjgYrjgZbjgY0s44Gy44Gn44GC44GNDQor44GX44GK44GgLOOBiOOBhOOBmA0KK+OBl+OBjSzjgb7jgZXjgosNCivjgZfjgaAs44KI44GX44Gy44KNDQor44GX44Gu44Gv44KJLOOBsuOBqOOBlw0KK+OBl+OBruOBr+OCiSzjgbLjgZXjgZcNCivjgZfjgbbjgZXjgo8s44KI44GG44GZ44GRDQor44GX44G+44GgLOOCiuOCheOBhuOBnw0KK+OBl+OBvuOBoCzjgb/jgbvjgZMNCivjgZfjgb7jgaAs44GR44KT44Gf44KN44GGDQor44GX44G/44GaLOOBn+OBpOOBig0KK+OBl+OBv+OBmizjgo/jgZ/jgosNCivjgZfjgb/jgZos44Go44KC44GTDQor44GX44G/44GaLOOBleOBqOOBkw0KK+OBl+OBv+OBmizjgZjjgoXjgpPjgYTjgaENCivjgZfjgb/jgZos44GY44KN44GGDQor44GX44KCLOOBjeOBrOOBiA0KK+OBl+OCguOBluOBjSzjgZ/jgaTjgbLjgZMNCivjgZfjgoLjgZjjgb4s44GI44GE44GE44Gh44KN44GGDQor44GX44KC44GkLOOBn+OBi+OBsuOCjQ0KK+OBl+OCguOBrizjgYLjgY3jgbLjgZMNCivjgZfjgoLjgoQs44KI44KK44GTDQor44GX44KJ44GZLOOBl+OCk+OBlA0KK+OBmeOBjuOBhuOCiSzjgb7jgZXjga7jgbYNCivjgZnjgY7jgYbjgoks44Go44GX44KN44GGDQor44GZ44Ga44GNLOOBqOOCguOBvw0KK+OBmeOBmuOBjSzjgYjjgorjgZMNCivjgZnjgZrjgY0s44KG44GG44GZ44GRDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgojjgZfjgY0NCivjgZnjgags44GV44Go44GXDQor44GZ44Gq44GgLOOBleOBqOOBlw0KK+OBmeOChOOBvizjgaDjgYTjgZnjgZENCivjgZvjgYos44GL44GK44KKDQor44Gb44GNLOOBk+OBhuOBuOOBhA0KK+OBm+OBjeOBrSzjgb/jgaTjgosNCivjgZvjgY3jgbAs44G+44GNDQor44Gb44GoLOOBkeOBhOOBmA0KK+OBm+OCk+OBlOOBjyzjga7jgorjgbLjgZUNCivjgZvjgpPjgaAs44KG44GG44GTDQor44Gb44KT44GwLOOBv+OBmuOBuw0KK+OBneOCgeOChCzjgZHjgYTjgZQNCivjgZ/jgYvjgY4s44Gy44Gn44GNDQor44Gf44GL44GOLOOBguOBhA0KK+OBn+OBi+OBjizjga7jgorjgobjgY0NCivjgZ/jgYvjgZss44KI44GG44GE44Gh44KN44GGDQor44Gf44GL44GgLOOCiOOBhuOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgobjgY0NCivjgZ/jgYvjga/jgZcs44KI44GX44Gu44KKDQor44Gf44GL44Gv44GXLOOBn+OBi+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZ/jgYvjga/jgZcs44G/44GLDQor44Gf44GL44Gv44GXLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OBv+OBluOCjyzjgZPjgZrjgYgNCivjgZ/jgY3jgZbjgo8s44GR44GE44Ge44GGDQor44Gf44GQ44GhLOOBjeOCh+OBhuOBkw0KK+OBn+OBkeOBl+OBnyzjgZHjgpMNCivjgZ/jgZHjgaAs44GL44Ga44G+DQor44Gf44GR44GgLOOChuOBhuOBmA0KK+OBn+OBkeOBoCzjgZPjgYbjgZgNCivjgZ/jgZHjgarjgYss44Gf44GL44Gy44KNDQor44Gf44GR44Gv44KJLOOBv+OBjeOBkw0KK+OBn+OBkeOChOOBvizjgb/jgaTjgosNCivjgZ/jgZgs44G/44GLDQor44Gf44GgLOOCiOOBl+OBn+OBiw0KK+OBoOOBpizjgY/jgb/jgZMNCivjgZ/jgarjgYss44Gh44GL44G144G/DQor44Gf44Gq44GLLOOBruOCiuOBsuOBkw0KK+OBn+OBquOBiyzjgZ/jgY/jgarjgYwNCivjgZ/jgarjgYss44Gf44GL44KG44GNDQor44Gf44Gq44GLLOOBn+OBi+OChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjga7jgooNCivjgZ/jgavjgZPjgZcs44GR44KT44Gf44KN44GGDQor44Gf44Gr44GuLOOBn+OBi+OBguOBjQ0KK+OBn+OBtuOBjSzjgZ/jgo3jgYYNCivjgZ/jgbbjgaEs44KI44GX44Gy44GoDQor44Gf44G+44GK44GNLOOBvuOBleOCiOOBlw0KK+OBn+OBvuOBjOOCjyzjgajjgoLjgZMNCivjgZ/jgoDjgoks44GR44GE44GTDQor44Gf44KB44Gu44KKLOOCiOOBhuOBuOOBhA0KK+OBn+OCk+OBrizjgYjjgooNCivjgZ/jgpPjgbws44GC44GN44Gy44GTDQor44Gh44GgLOOBi+OBpOOBsuOBlQ0KK+OBoeOBreOCkyzjgobjgY0NCivjgaTjgYzjga3jgZbjgo8s44Gu44G244KG44GNDQor44Gk44GL44Gv44KJLOOBv+OBmuOBuw0KK+OBpOOBoeOChCzjgb7jgobjgb8NCivjgaTjgaHjgoQs44KI44GG44GZ44GRDQor44Gk44Gh44KELOOChOOBmeOChuOBjQ0KK+OBpOOBmuOBjSzjgb7jgb8NCivjgaTjgZrjgonjga/jgoks44GV44Gh44GTDQor44Gk44Gt44KI44GXLOOBpuOCi+OBruOBtg0KK+OBpOOBvOOBhuOBoSzjgYLjgY3jgbXjgb8NCivjgaTjgovjgZfjgb4s44KK44GIDQor44Gn44GQ44GhLOOBn+OBj+OChA0KK+OBpuOBmuOBiyzjgb/jgaTjga7jgbYNCivjgabjgonjgYvjgo8s44Gf44GL44GXDQor44Gm44KJ44GQ44GhLOOCgOOBreOBruOCig0KK+OBpuOCieOBl+OBvizjgZHjgpPjgZgNCivjgabjgonjgaAs44KI44GX44GNDQor44Go44GM44GXLOOBoOOBhOOBmeOBkQ0KK+OBqOOBj+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgajjgZbjgo8s44KG44GG44GTDQor44Go44Gz44GK44GLLOOBn+OBkeOBlw0KK+OBqOOBvuOCiuOBrizjgZjjgoXjgpPjgZMNCivjgajjgb/jgYQs44GY44KF44KT44GTDQor44Go44G/44GW44KPLOOBguOChA0KK+OBqOOBv+OBnyzjgZ/jgYTjgaENCivjgajjgb/jgZ8s44KG44GG44GfDQor44Go44G/44Gq44GMLOOCiOOBhuOBkw0KK+OBqOOCiOOBoCzjgZ3jgYbjgZ/jgo3jgYYNCivjgajjgonjgZ/jgass44G+44GV44GTDQor44Gq44GE44Go44GGLOOBn+OBi+OBig0KK+OBquOBjOOBhCzjgaHjgYgNCivjgarjgYzjgYQs44GY44KF44KT44GTDQor44Gq44GL44GE44GRLOOBl+OCk+OBlA0KK+OBquOBi+OBhuOBiCzjgaDjgYTjgZnjgZENCivjgarjgYzjgYos44KK44KH44GG44GTDQor44Gq44GL44GT44GYLOOBleOChOOBiw0KK+OBquOBjOOBleOBiyzjgZPjgYbjgZgNCivjgarjgYvjgZjjgb4s44KG44GN44GTDQor44Gq44GL44GY44G+LOOBvuOCig0KK+OBquOBjOOBnyzjgYvjgaTjgoQNCivjgarjgYzjgZ8s44GC44Gk44Gy44GVDQor44Gq44GM44GfLOOBquOBiuOBjQ0KK+OBquOBi+OBpOOCiyzjgbLjgo3jgYLjgY0NCivjgarjgYzjga4s44KE44GZ44GKDQor44Gq44GL44KA44KJLOOBleOBqOOCiw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GP44G/44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgobjgYsNCivjgarjgYvjgoDjgoks44G+44GV44GC44GNDQor44Gq44GL44KA44KJLOOBiOOBhOOBmA0KK+OBquOBpOOBr+OCiSzjgZXjgoTjgYsNCivjgarjgorjgZXjgaAs44GX44KT44GZ44GRDQor44Gq44KT44G2LOOBruOBtuOChuOBjQ0KK+OBq+OBi+OBhOOBqeOBhizjgajjgoLjgoQNCivjgavjgZcs44Gd44GG44GE44Gh44KN44GGDQor44Gr44GXLOOBquOBiuOChuOBjQ0KK+OBq+OBl+OBiizjgajjgZfjgoQNCivjgavjgZfjgYvjgo8s44GR44KT44GYDQor44Gr44GX44GP44KJLOOBleOBqOOBkw0KK+OBq+OBl+OBluOCjyzjgYTjgZXjgoANCivjgavjgZfjgZbjgo8s44GI44KK44GqDQor44Gr44GX44GgLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBoCzjgorjgofjgYbjgbjjgYTjgZ8NCivjgavjgZfjgoTjgb4s44Gy44GV44Gu44KKDQor44Gs44Gu44KELOOBl+OBkuOBig0KK+OBrOOBvuOBluOBjSzjgobjgY3jgYoNCivjgazjgb7jgZ8s44Gf44GR44GXDQor44Gu44Gp44G/LOOCiuOBqg0KK+OBruOBvyzjgb7jgZXjgY0NCivjga7jgZDjgaEs44GL44Ga44KI44GXDQor44Gu44GY44G+LOOBpuOCi+OBguOBjQ0KK+OBruOBmOOCiizjgajjgZfjgobjgY0NCivjga7jgaAs44G/44GN44GTDQor44Gu44GgLOOChuOBjeOBkw0KK+OBruOCgOOCiSzjgZfjgpPjgbjjgYQNCivjga7jgoDjgoks44GL44Ga44GIDQor44Gu44KA44KJLOOBi+OBmuOBig0KK+OBr+OBk+OBl+OBvizjgo/jgZ/jgosNCivjga/jgZfjgoLjgags44KK44KH44GGDQor44Gv44GX44KC44GoLOOBkeOBhA0KK+OBr+OBm+OBjOOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgZ/jgZHjgoTjgb4s44KG44G144GTDQor44Gv44Gj44GfLOOChuOBsg0KK+OBr+OBo+OBqOOCiizjgZXjgajjgb8NCivjga/jgarjgYQs44Gf44GR44Gv44KLDQor44Gv44Gq44GgLOOBkeOBhOOBmeOBkQ0KK+OBr+OBvuOBkOOBoSzjgZHjgpMNCivjga/jgb7jgaAs44G+44Gq44G/DQor44Gv44G+44GgLOOBkeOBhOOBkw0KK+OBr+OBvuOBrizjgZ/jgYvjgobjgY0NCivjga/jgoTjgYvjgo8s44KG44GNDQor44Gv44KE44GXLOOBpuOBpOOBig0KK+OBr+OChOOBlyzjgajjgoLjgarjgYwNCivjga/jgoTjgZcs44GR44KT44Gf44KN44GGDQor44Gv44KJLOOBoeOBi+OBkw0KK+OBr+OCiSzjgoTjgZnjgYLjgY0NCivjga/jgonjgaAs44G/44GIDQor44Gy44GI44GL44GfLOOBleOBqOOBkw0KK+OBsuOBjOOBlSzjgYLjgaTjgZcNCivjgbLjgYzjgb8s44Gb44GE44GYDQor44Gy44GN44GuLOOBpuOBpOOBmA0KK+OBsuOBoCzjgZ/jgYvjgZcNCivjgbLjgaDjgYss44GX44KTDQor44Gy44Gn44GX44G+LOOBv+OBjeOBkw0KK+OBleOBi+OBhCzjgZjjgoXjgpPjgoQNCivjgbLjgonjgYQs44Gv44KE44GoDQor44Gy44KJ44GE44KPLOOBiOOBpOOBkw0KK+OBsuOCieOBnyzjgbLjgafjgY0NCivjgbLjgonjgbDjgoTjgZcs44Gq44GK44KG44GNDQor44Gy44KN44GbLOOBguOChOOBkw0KK+OBteOBi+OBiizjgb/jgobjgY0NCivjgbXjgY/jgYQs44Gy44Gn44Gy44GTDQor44G144GP44GW44GNLOOBv+OCjOOBhA0KK+OBteOBj+OBoCzjgojjgYbjgbjjgYQNCivjgbXjgY/jgaAs44KE44GZ44Gy44KNDQor44G144GP44GgLOOBvuOBleOCiw0KK+OBteOBj+OBoCzjgZjjgoXjgpPjgYTjgaENCivjgbXjgY/jga/jgoks44KG44GN44GTDQor44G144GP44KA44KNLOOBsuOCjeOBteOBvw0KK+OBteOBmOOBhuOCiSzjgYLjgoQNCivjgbXjgZjjgYrjgYss44GT44GG44GE44Gh44KN44GGDQor44G144GY44GK44GLLOOBvuOChA0KK+OBteOBmOOBnyzjgZfjgZLjgosNCivjgbXjgZjjgoLjgags44KG44GL44KKDQor44G144GY44KC44GoLOOBiOOCiuOBkw0KK+OBteOBmOOCj+OCiSzjgYLjgY3jgbLjgo0NCivjgbXjgZ/jgoDjgows44GE44GV44GKDQor44G144KL44GV44KPLOOBhOOBoeOCjeOBhg0KK+OBteOCi+OBnyzjgbLjgZXjgYoNCivjgbXjgovjgoQs44Gy44Gn44GKDQor44G744GT44KJLOOBvuOBpOOBig0KK+OBu+OBl+OBrizjgZnjgb/jgYoNCivjgbvjgZfjga4s44Gf44KC44GkDQor44G744Gd44GuLOOBsuOCjeOBv+OBoQ0KK+OBu+OCiizjgajjgZcNCivjgbvjgorjgYbjgaEs44GI44Gk44GKDQor44G744KK44GK44GLLOOChOOBmeOBig0KK+OBu+OCiuOBkOOBoSzjgZjjgoXjgpPjgYTjgaENCivjgbvjgpPjgb4s44GE44GV44GKDQor44G+44GI44GL44KPLOOBqOOCguOChuOBjQ0KK+OBvuOBiOOBmOOBvizjgZPjgYbjgZgNCivjgb7jgYjjgaAs44Go44GX44Gy44KNDQor44G+44GI44Gv44KJLOOBqOOBl+OBsuOBkw0KK+OBvuOBjSzjgZfjgZLjga7jgooNCivjgb7jgY3jga4s44Gf44GR44GKDQor44G+44GZ44GELOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgY3jgojjgZcNCivjgb7jgZnjgaAs44G+44GV44G/44GkDQor44G+44Gk44GELOOBi+OCk+OBmA0KK+OBj+OBvuOBjOOBhCzjgYvjgaTjgbLjgZMNCivjgYvjga3jgZMs44KK44KH44GG44GYDQor44GT44G/44KELOOBruOBvOOCiw0KK+OBk+OBjOOBhOOBqCzjgb/jgaHjgZMNCivjgYvjgpPjgbDjgoTjgZcs44Gm44KL44G+44GVDQor44GN44Gu44GX44GfLOOBr+OCi+OBsuOBkw0KK+OBjeOBj+OBoSzjgb/jga7jgosNCivjgZPjgb7jgbAs44KG44Gf44GLDQor44GT44GP44G2LOOBv+OBpOOBkw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44Gm44KL44GKDQor44GN44Gk44Gf44GLLOOBoeOCheOBhuOBkeOCkw0KK+OBvuOBpOOBiizjgZ/jgYvjgobjgY0NCivjgYvjgo/jgYQs44G+44Gq44G2DQor44GP44KK44Gv44KJLOOBqOOBiuOCiw0KK+OBi+OBqeOBrizjgbLjgo3jgojjgZcNCivjgYvjgb/jgY/jgbws44GR44KT44GYDQor44GL44KP44GQ44GhLOOBn+OBi+OBlw0KK+OBi+OBvuOBnyzjgb7jgZXjgoLjgagNCivjgYvjgpPjgaAs44GL44Ga44G/DQor44GL44KT44GgLOOBv+OBpOOBig0KK+OBk+OBl+OCgOOCiSzjgajjgZfjgobjgY0NCivjgb7jgaTjgYos44GN44KI44GXDQor44GP44GV44GNLOOBmOOCheOCk+OBmA0KK+OBi+OCguOBr+OCiSzjgb7jgZXjgbXjgb8NCivjgYvjgZXjgZjjgb4s44Go44GX44G+44GVDQor44G+44Gk44GNLOOCiOOBl+OBi+OBmg0KK+OBi+OBv+OBj+OCiSzjgaTjga3jgYoNCivjgY/jgorjga/jgoks44Gu44G244GC44GNDQor44Gq44GL44GhLOOBjeOCiOOBlw0KK+OBi+OBjOOCjyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GL44KT44GuLOOBqOOBl+OBig0KK+OBvuOBpOOBl+OBnyzjgbXjgb/jgYoNCivjgYvjgZfjgo/jgaAs44GK44GV44KADQor44GT44KT44GuLOOBi+OBmuOBig0KK+OBk+OBmeOBjizjgojjgZfjgb8NCivjgZPjgoLjgoos44Go44GX44KN44GGDQor44GL44KP44GuLOOChuOBjeOBig0KK+OBjeOBn+OCgOOCiSzjgZ/jgZHjgbLjgZMNCivjgYvjgZjjgb4s44Gm44Gk44KEDQor44GL44Go44GGLOOBsuOBp+OBig0KK+OBk+OChOOBrizjgobjgY3jgYoNCivjgYvjgaTjgb7jgZ8s44Go44GX44GL44GaDQor44GP44KP44GgLOOBkeOBhOOBmA0KK+OBk+OBn+OBqyzjgoTjgb7jgagNCivjgYvjgZjjgYbjgaEs44Gu44G244GTDQor44GT44KT44GpLOOBn+OBi+OBlw0KK+OBk+OCk+OBqSzjgojjgZfjgYvjgZoNCivjgb7jgaTjgarjgb8s44GX44KT44KEDQor44GL44GM44KE44G+LOOBvuOBleOBr+OCiw0KK+OBi+OBreOBkyzjgoTjgZnjgbLjgZMNCivjgZPjgoTjgb4s44KE44GZ44Gv44KLDQor44GN44Gk44GL44KPLOOBk+OBhuOBm+OBhA0KK+OBi+OBl+OBj+OCiSzjgYvjgpPjgZgNCivjgY/jgo3jgY0s44KI44GX44KG44GNDQor44GT44GE44Ga44G/LOOBl+OCheOBhuOBuOOBhA0KK+OBj+OBnCzjgb/jgY3jgYoNCivjgYvjgo/jgYvjgb8s44GR44GE44GTDQor44GL44G/LOOBleOBoeOBig0KK+OBjeOCgOOCiSzjgajjgYrjgosNCivjgb7jgaTjga4s44GL44Ga44Gy44GVDQor44GN44GP44GfLOOBiuOBleOCgA0KK+OBj+OBvuOBoCzjgb7jgZXjgYLjgY0NCivjgY/jgavjga/jgoks44GX44KF44KT44GE44GhDQor44GT44GY44G+LOOChuOBn+OBiw0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjga7jgooNCivjgojjga3jgY/jgoks44KI44GX44Gf44G/DQor44GT44Gw44KE44GXLOOBpOOBreOBig0KK+OBk+OBsOOChOOBlyzjgabjgaTjgYoNCivjgZPjgZjjgofjgYYs44GV44Gq44GIDQor44GN44KA44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYLjgY0NCivjgZPjgpPjgaks44Gu44G244GL44GaDQor44GL44KP44GELOOBqOOBl+OBi+OBpA0KK+OBj+OBvuOBr+OCiSzjgZHjgpPjgZgNCivjgY3jgZss44G/44Gh44KE44GZDQor44GL44GX44GP44G+LOOBkeOCk+OBnuOBhg0KK+OBi+OBkyzjgZjjgoXjgpPjgYTjgaENCivjgYTjgZfjgYzjgYQs44KI44GX44GC44GNDQor44GL44G/44GQ44GhLOOBn+OBoOOBlw0KK+OBj+OCguOBoCzjgajjgZfjgYoNCivjgZPjgb7jgaQs44GX44KH44GG44GE44GhDQor44GL44Gt44GgLOOBv+OBpOOBig0KK+OBjeOBj+OBoSzjgojjgZfjgbLjgZUNCivjgZPjgZ/jgass44KI44GX44KG44GNDQor44GT44Gw44KE44GXLOOChOOBmeOBqA0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgYoNCivjgYvjga3jgZMs44Gy44KN44GC44GNDQor44GL44KCLOOCiOOBl+OBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgYjjgYTjgZgNCivjgY/jgb7jga4s44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOCiOOBl+OBiA0KK+OBjeOCgOOCiSzjgYvjgZrjgbLjgZUNCivjgY3jgZfjgoLjgags44Gy44KN44Gy44GVDQor44GN44KA44KJLOOBjeOBl+OBig0KK+OBi+OBv+OBkOOBoSzjgabjgaTjgoQNCivjgY3jgoDjgoks44G+44GV44Gv44GhDQor44GT44Gw44KE44GXLOOBl+OCheOCk+OBmA0KK+OBi+OBqeOBj+OCiSzjgYvjgarjgZMNCivjgY3jgZ/jgoDjgoks44Gy44Gn44KIDQor44GL44Gk44GNLOOBsuOBleOBlw0KK+OBi+OCk+OBluOBjSzjgb7jgZXjga7jgbYNCivjgYvjgZ/jgY7jgoos44GE44GP44G/DQor44GT44Gw44KE44GXLOOBruOBtuOBkw0KK+OBk+OBvuOBpOOBluOBjSzjgZPjgYbjgZ7jgYYNCivjgY3jgZ8s44Gy44KN44Gu44KKDQor44GL44Gk44Gv44KJLOOBl+OCheOBhg0KK+OBk+OBkOOCjCzjgYLjgY3jgYgNCivjgZPjgZjjgb4s44GC44Gk44GXDQor44GT44KB44GgLOOBsuOBleOBlw0KK+OBk+OBq+OBlyzjgZHjgpPjgYTjgaENCivjgY/jgo/jga/jgoks44KE44GZ44G+44GVDQor44GT44KE44G+LOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgorjgobjgY0NCivjgYvjgZjjgoLjgags44KI44GX44GC44GNDQor44GP44G+44GW44KPLOOBi+OBpOOBvw0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgZPjgbDjgZfjgYzjgo8s44Gy44Go44GXDQor44GL44G/44KELOOChuOBhg0KK+OBvuOBpOOCguOBqCzjgZfjgofjgYbjgZgNCivjgZPjga/jgZcs44GI44GE44Ge44GGDQor44GT44Gg44G+LOOBnOOCk+OBhOOBoQ0KK+OBi+OCj+OBi+OBvyzjgYvjgZrjgb8NCivjgb7jgaTjgoLjgags44Gv44KL44GKDQor44GL44GE44GpLOOBv+OBuw0KK+OBjeOCgOOCiSzjgajjgZfjgYoNCivjgY/jgZQs44GN44KI44G/DQor44G+44Gk44KC44GoLOOCiOOBl+OChuOBjQ0KK+OBvuOBpOOChOOBvizjgorjgofjgYbjgZnjgZENCivjgb7jgovjgoTjgb4s44GV44Gh44GTDQor44GT44KT44GuLOOBjeOCiOOBlw0KK+OBj+OCjeOBjSzjgZjjgoXjgpMNCivjgZPjgb/jgoQs44KK44KH44GG44GTDQor44GN44KA44KJLOOBquOBiuOChuOBjQ0KK+OBjeOBrizjgb/jgYINCivjgZPjgb7jgaQs44KG44GNDQor44GL44Gt44Gh44GLLOOCiuOCh+OBhuOBmeOBkQ0KK+OBi+OBquOBn+OBqyzjgorjgYgNCivjgZPjgbDjgoTjgZcs44KI44GX44KN44GGDQor44GN44Gf44KE44G+LOOBi+OBquOBkw0KK+OBi+OBmCzjgbLjgo3jgZMNCivjgYvjgo/jgZfjgb4s44Gq44GK44GNDQor44GN44KA44KJLOOBvuOBjeOBkw0KK+OBk+OBsOOCiSzjgZ/jgY/jgb4NCivjgY3jgZ/jgYzjgo8s44Gq44GK44Gf44GLDQor44G+44KL44KE44G+LOOBquOBu+OBkw0KK+OBi+OCguOCkyzjgb7jgZXjgZcNCivjgb/jgYbjgoks44Gf44GL44GXDQor44G/44GX44G+LOOBi+OBpOOBsuOCjQ0KK+OBv+OBmeOBjizjgajjgoLjgYLjgY0NCivjgb/jgZrjgZ8s44GY44KF44KT44GTDQor44G/44Ga44KC44GoLOOBquOCi+OBjQ0KK+OBv+OBnuOBkOOBoSzjgb7jgZXjgZMNCivjgb/jgZrjgYss44KG44Gf44GLDQor44G/44Gq44G/LOOBn+OBkeOCiw0KK+OBv+OBquOBv+OBn+OBqyzjgb7jgZXjgagNCivjgb/jga3jgZ8s44KG44GN44GTDQor44G/44KE44GELOOBk+OBhuOBnw0KK+OBv+OChOOBiuOBiyzjgZHjgpPjgo3jgYYNCivjgb/jgoTjgZbjgY0s44G+44KG44G/DQor44G/44KE44GW44GNLOOBmOOCheOCig0KK+OBv+OChOOBr+OCiSzjgZ/jgaTjgbLjgZMNCivjgb/jgojjgZcs44GC44GN44Gu44G2DQor44KA44KJ44GL44G/LOOBvuOBleOBsuOBpw0KK+OCgOOCieOBjSzjgYLjgaTjgZMNCivjgoDjgonjgZ8s44GR44KT44GYDQor44KA44KJ44GfLOOBv+OBoeOChA0KK+OCgOOCieOBnyzjgoHjgZDjgb8NCivjgoDjgonjgoTjgb4s44G+44GV44GTDQor44KC44Go44GuLOOChOOBmeOBvuOBlQ0KK+OCguOCiizjgajjgZfjgobjgY0NCivjgoLjgoos44Gq44GKDQor44KC44KK44GfLOOBsuOBp+OBqOOCgg0KK+OCguOCiuOBnyzjgorjgYgNCivjgoLjgorjgoTjgb4s44GC44Gk44GXDQor44KC44KK44KE44G+LOOBi+OBiuOCig0KK+OChOOBluOCjyzjgYvjgZrjgZMNCivjgoTjgZjjgb4s44Go44KC44Gy44KNDQor44KE44Gq44GO44GgLOOBiOOCiuOBkw0KK+OChOOBvuOBjOOBnyzjgZHjgYTjgYTjgaENCivjgoTjgb7jgYvjgo8s44GX44KT44KEDQor44KE44G+44GQ44GhLOOBleOBqOOBvw0KK+OChOOBvuOBkOOBoSzjgobjgY0NCivjgoTjgb7jgZDjgaEs44Gf44Gg44KG44GNDQor44KE44G+44GV44GNLOOBvuOBleOBjQ0KK+OChOOBvuOBluOBjSzjgZHjgpMNCivjgoTjgb7jgZfjgZ8s44GX44KF44GP44G7DQor44KE44G+44GgLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBoCzjgZHjgpPjgYTjgaENCivjgoTjgb7jgaAs44GX44KF44KTDQor44KE44G+44Gq44GLLOOBvuOBleOBlw0KK+OChOOBvuOBrSzjgZfjgpPjgZQNCivjgoTjgb7jgoLjgags44KE44GZ44Gu44KKDQor44KE44G+44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgafjgobjgY0NCivjgobjgYvjgo8s44GV44Go44GXDQor44KG44GWLOOBguOBjeOBkw0KK+OChuOBn+OBqyzjgorjgYgNCivjgobjgZ/jgass44Gg44GE44GZ44GRDQor44KI44GULOOBqOOCguOBruOCig0KK+OCiOOBk+OBvOOCiizjgb7jgZXjgZ/jgZENCivjgojjgZfjgYrjgYss44Gf44Gg44GC44GNDQor44KI44GX44GL44KPLOOBsuOCjeOBvw0KK+OCiOOBl+OBoCzjgbLjgo3jgZ/jgYsNCivjgojjgZfjgaAs44GN44KH44GG44GTDQor44KI44GX44KC44GoLOOCguOBqOOBig0KK+OCiOOBreOBoCzjgobjgb/jgZMNCivjgo/jgYvjgZXjgoQs44GX44Ga44GLDQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgbLjgo0NCivjgb/jgaTjgoTjgb4s44G+44GV44G/DQor44Gy44KJ44GK44GLLOOCiuOBlQ0KK+OBi+OCk+OBrizjgYvjgaTjgagNCivjgo/jgZMs44KK44GIDQor44GC44GK44GNLOOCj+OBn+OCiw0KK+OBguOBi+OBiizjgb7jgZXjga7jgooNCivjgYLjgYvjgY4s44KK44KH44GG44G444GEDQor44GC44GL44GXLOOBsuOCjeOBkw0KK+OBguOBi+OBpOOBiyzjgoTjgZnjgobjgY0NCivjgYLjgYvjga/jga0s44Gy44KN44GC44GNDQor44GC44GL44G744KKLOOChuOBhuOBkw0KK+OBguOBjeOCguOBqCzjgaHjgYgNCivjgYLjgY3jgoTjgb4s44G/44G7DQor44GC44GV44GELOOBvuOBleOBi+OBmg0KK+OBguOBleOBrizjgoTjgZnjgbLjgo0NCivjgYLjgZXjgbIs44GC44GV44GTDQor44GC44GV44G5LOOBi+OCiA0KK+OBguOBr+OCjOOCkyzjgaDjgYTjgZnjgZENCivjgYLjgbks44Go44GX44Gy44GTDQor44GC44G5LOOBi+OBiuOCiw0KK+OBguOBuSzjgbLjgo3jgbXjgb8NCivjgYLjgb7jga4s44G+44GV44G/DQor44GC44KB44KC44KKLOOBguOCiuOBlQ0KK+OBguOCieOBhCzjgbLjgafjgYoNCivjgYLjgonjgYQs44GI44Gk44GTDQor44GC44KJ44GELOOBi+OBpOOBsuOCjQ0KK+OBguOCieOBn+OBqyzjgZXjgaTjgY0NCivjgYLjgorjgarjgYss44Go44KC44Gy44KNDQor44GE44GE44GULOOBruOCiuOBguOBjQ0KK+OBhOOBhOOBoCzjgb7jgobjgb8NCivjgYTjgZHjgaAs44KI44GX44Gf44GLDQor44GE44GT44GMLOOBiOOBv+OBkw0KK+OBhOOBl+OBhCzjgYvjgYrjgooNCivjgYTjgZfjgYrjgYss44Gf44GL44GXDQor44GE44GX44GW44GLLOOChuOBjeOBiA0KK+OBhOOBl+OBmOOBvizjgb/jgYoNCivjgYTjgZfjgaAs44KG44GEDQor44GE44GX44GpLOOChuOBjeOBkw0KK+OBhOOBl+OBrizjgZ/jgYvjgYoNCivjgYTjgZfjgb7jgbbjgZcs44GC44GN44Gy44GoDQor44GE44Gb44KKLOOBiuOBqOOBsuOBkw0KK+OBhOOBneOBuSzjga/jgovjgYsNCivjgYTjgZ/jgass44Gf44GL44GC44GNDQor44GE44Ga44GuLOOBv+OBpOOBsuOCjQ0KK+OBhOOBp+OBrizjgojjgYbjgbjjgYQNCivjgYTjgajjgYYs44KI44GG44GTDQor44GE44Go44GGLOOBv+OBpOOBn+OBiw0KK+OBhOOBqOOBhizjgojjgZfjgYLjgY0NCivjgYTjgajjgYYs44KG44GL44KKDQor44GE44Go44GGLOOBvuOBqg0KK+OBhOOBqOOBhizjgZ/jgZHjgZcNCivjgYTjgajjgoTjgb4s44GC44Gk44GXDQor44GE44GqLOOBguOBjeOCiQ0KK+OBhOOBquOBleOBjSzjgoTjgZnjga7jgooNCivjgYTjgarjgbAs44KI44GG44GZ44GRDQor44GE44Gq44GwLOOBn+OBoOOBlw0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYTjga7jgYbjgYgs44Gu44G244Gf44GLDQor44GE44Gu44GG44GILOOBvuOCiuOBkw0KK+OBhOOBuSzjgY3jgofjgYbjgZMNCivjgYTjgb7jgYQs44KG44GN44GIDQor44GE44G+44GK44GLLOOBl+OCheOBhuOBuOOBhA0KK+OBhOOBvuOCgOOCiSzjgb7jgZXjgZcNCivjgYTjgo/jgZ8s44Gf44GR44Gy44KNDQor44GE44KP44GfLOOCiOOBl+OBsuOCjQ0KK+OBhOOCj+OBnyzjgYrjgZXjgoANCivjgYTjgo/jgb8s44KG44GG44GTDQor44GE44KP44KC44GoLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhuOBiOOBoCzjgozjgYTjgZMNCivjgYbjgYjjga4s44GV44KJDQor44GG44GI44Gv44KJLOOBn+OBi+OBruOCig0KK+OBhuOBi+OBhCzjgbLjgZXjgarjgYwNCivjgYbjgaDjgYzjgo8s44KG44GG44GE44GhDQor44GG44Gh44KE44G+LOOBsuOCjeOBvuOBlQ0KK+OBhuOBpOOBvyzjgbLjgo3jgobjgY0NCivjgYbjgaTjgb8s44G+44KK44GTDQor44GG44GuLOOBvuOBk+OBqA0KK+OBiOOBjOOBl+OCiSzjgZfjgoXjgpPjgZnjgZENCivjgYjjgajjgYYs44Gy44KN44GNDQor44GI44Go44G/LOOBsuOBp+OBvw0KK+OBiOOCk+OBqSzjgoHjgZDjgb8NCivjgYjjgpPjgaks44Gy44KN44GNDQor44GK44GL44GpLOOBn+OBi+OBsuOBlQ0KK+OBiuOBiuOBj+OCiSzjgbLjgo3jgZMNCivjgYrjgYrjgZXjgYss44Gf44Gm44GNDQor44GK44GK44GV44GLLOOBk+OBhuOBn+OCjeOBhg0KK+OBiuOBiuOBleOCjyzjgZXjgaENCivjgYrjgYrjgZnjgb8s44GV44Go44GTDQor44GK44GfLOOBoeOBiOOBkw0KK+OBiuOBiuOBn+OBqyzjgb7jgZPjgagNCivjgYrjgYrjgavjgZcs44G+44GV44Gy44KNDQor44GK44GK44Gr44GXLOOBv+OBpOOCiw0KK+OBiuOBiuOBq+OBlyzjgoDjgZXjgZcNCivjgYrjgYrjgavjgZcs44G+44GV44GKDQor44GK44GK44GuLOOBquOBu+OBkw0KK+OBiuOBiuOBrizjgb/jgYvjgZMNCivjgYrjga4s44KI44GG44GTDQor44GK44G+44GkLOOCiOOBhuOBmeOBkQ0KK+OBiuOCgOOCiSzjgajjgoLjgZMNCivjgYrjgYrjgoQs44KG44GN44GIDQor44GK44GLLOOBruOCiuOBsuOBqA0KK+OBiuOBi+OBhCzjgZHjgpPjgYTjgaENCivjgYrjgYvjgYbjgaEs44Go44KC44Gu44KKDQor44GK44GL44GgLOOChuOBhuOBjQ0KK+OBiuOBi+OBoCzjgb7jgorjgZMNCivjgYrjgYvjga4s44KE44GZ44G144G/DQor44GK44GL44KA44KJLOOBguOBi+OCig0KK+OBiuOBi+OCguOBqCzjgZ3jgYYNCivjgYrjgYzjgo8s44GE44Ga44G/DQor44GK44GM44KPLOOBk+OBmuOBiA0KK+OBiuOBjOOCjyzjgY3jgpPjgoQNCivjgYrjgYzjgo8s44G/44Gh44GTDQor44GK44GM44KPLOOBn+OBj+OChA0KK+OBiuOBjOOCjyzjgobjgb/jgZMNCivjgYrjgY7jga4s44GI44KK44GTDQor44GK44GPLOOBleOChOOBiw0KK+OBiuOBj+OBi+OCjyzjgbLjgo3jgYLjgY0NCivjgYrjgY/jgaAs44GC44GN44GKDQor44GK44GP44KA44KJLOOBleOBqOOBkw0KK+OBiuOBluOBjSzjgZ/jgYvjgobjgY0NCivjgYrjgZjjgb4s44Gf44GL44GXDQor44GK44Gc44GNLOOBkeOBhOOBhOOBoQ0KK+OBiuOBoCzjgbLjgo3jgobjgY0NCivjgYrjgaAs44GC44Gk44GTDQor44GK44Gh44GC44GELOOBquOBiuOBjQ0KK+OBiuOBqOOBjOOCjyzjgorjgofjgYbjgZMNCivjgYrjga4s44G/44Ga44GNDQor44GK44GK44Gv44KJLOOBkeOBhOOBkw0KK+OBi+OBhOOBmOOBvizjgZHjgpPjgZ8NCivjgYvjgYzjgo8s44Go44KC44G/44GkDQor44GL44GN44GKLOOBn+OBi+OChA0KK+OBi+OBkeOBsizjgajjgoLjgb8NCivjgYvjgZXjgYQs44Gq44GK44GTDQor44GL44GV44G/LOOCiOOBl+OBteOBvw0KK+OBi+OBmOOBnyzjgZHjgYTjgYTjgaENCivjgYvjgZjjgZ/jgass44G+44GV44Gq44KKDQor44GL44GX44G+LOOChOOBmeOBsuOCjQ0KK+OBi+OBl+OBvizjgobjgYbjgZMNCivjgYvjgZjjgoLjgags44GC44KE44GTDQor44GL44GZ44GMLOOBleOBquOBkw0KK+OBi+OBmyzjgozjgYTjgZMNCivjgYvjgZ/jgY7jgoos44GL44Ga44GX44GSDQor44GL44Gf44KE44G+LOOCiuOCh+OBhuOBkw0KK+OBi+OBn+OChOOBvizjgobjgYbjgZgNCivjgYvjgajjgYYs44Gy44Go44GXDQor44GL44Go44GGLOOBj+OBq+OBguOBjQ0KK+OBi+OBqOOBhizjgZHjgpPjgYTjgaHjgo0NCivjgYvjgarjgZbjgo8s44Gy44KN44GL44GaDQor44GL44Gt44G/44GkLOOBqOOCguOBruOCig0KK+OBi+OBruOBhizjgobjgY3jgYgNCivjgYvjgb7jgZ8s44Gy44KN44Gf44GLDQor44GL44G/44GW44GNLOOBvuOBleOBqOOBlw0KK+OBi+OBvyzjgojjgYbjgYTjgaENCivjgYvjgoHjgZ/jgYss44Gf44GE44GZ44GRDQor44GL44KCLOOBkeOCk+OChA0KK+OBi+OCj+OBhCzjgajjgoLjgYvjgZoNCivjgYvjgo/jgYQs44GY44KF44KKDQor44GL44KP44GL44G/LOOBn+OBi+OBlw0KK+OBi+OCj+OBi+OBvyzjgb/jgYoNCivjgYvjgo/jgZDjgaEs44GC44KG44G/DQor44GL44KP44GQ44GhLOOBi+OBmuOBsuOBpw0KK+OBi+OCj+OBkOOBoSzjgZXjgajjgZcNCivjgYvjgo/jgZXjgY0s44GY44KTDQor44GL44KP44GV44GNLOOBquOBiuOBjQ0KK+OBi+OCj+OBquOBvyzjgYLjgY3jgZMNCivjgYvjgo/jga0s44GL44Gq44GTDQor44GL44KP44Gw44GfLOOBguOChuOBvw0KK+OBi+OCj+OCgOOCiSzjgoLjgYYNCivjgYvjgo/jgoLjgags44KG44GGDQor44GL44KT44GgLOOBv+OBqeOCig0KK+OBi+OCk+OBoCzjgarjgYrjgZcNCivjgYvjgpPjga4s44G+44GV44GTDQor44GN44GX44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBjeOBn+OBjOOCjyzjgZ/jgZHjgZcNCivjgY3jgZ/jga/jgoks44Go44KC44Gv44KLDQor44GN44Gf44KA44KJLOOBl+OCh+OBhg0KK+OBjeOBn+OCgOOCiSzjgZfjgpPjgZQNCivjgY3jgazjgoQs44Go44GX44G/DQor44GN44Gu44GX44GfLOOBpuOBpA0KK+OBjeOBr+OCiSzjgZ/jgaTjgoQNCivjgY3jgoDjgoks44KI44GX44GL44GaDQor44GN44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBjeOCgOOCiSzjgYLjgY3jgojjgZcNCivjgY3jgoDjgoks44GY44KF44KTDQor44GN44KI44GX44G+LOOBr+OCi+OBvw0KK+OBjeOCiOOBmuOBiyzjgobjgY0NCivjgY3jgoks44Gf44GL44GXDQor44GN44KK44GV44GTLOOBpuOBo+OBuuOBhA0KK+OBjeOCkyzjgZXjgobjgooNCivjgY3jgpMs44Gq44GK44GTDQor44GP44Gr44GI44GgLOOBi+OBmuOBguOBjQ0KK+OBj+OBvCzjgZTjgYYNCivjgY/jgb7jga4s44Gf44GR44GoDQor44GP44KJ44GfLOOBguOBjeOBsuOCjQ0KK+OBj+OCieOBr+OBlyzjgZ/jgYvjgYLjgY0NCivjgY/jgows44Go44GK44KLDQor44GP44KN44GELOOCiOOBl+OBn+OBiw0KK+OBj+OCjeOBjSzjgobjgYbjgZMNCivjgY/jgo/jga4s44Gy44KN44Gf44GLDQor44GU44GGLOOBleOBiA0KK+OBlOOBhuOBoCzjgZ/jgZHjgbLjgo0NCivjgZPjgYws44GR44GEDQor44GT44GP44GX44KH44GGLOOBpOOCiOOBlw0KK+OBk+OBleOBiyzjgZfjgoXjgYbjgYTjgaHjgo3jgYYNCivjgZPjgZjjgb4s44KK44KH44GG44GZ44GRDQor44GT44Ge44GuLOOBguOBhOOCjw0KK+OBk+OBoOOBvizjgYTjgY/jgYoNCivjgZPjgabjgoks44GN44G/44Gy44KNDQor44GT44Gn44KJLOOBl+OCk+OBn+OCjeOBhg0KK+OBlOOBqOOBhizjgZ/jgaDjga7jgooNCivjgZTjgajjgYYs44Gy44KN44GTDQor44GT44Gr44GXLOOBv+OBleOBjQ0KK+OBk+OBq+OBlyzjgojjgYbjgZMNCivjgZPjgavjgZcs44Go44KC44KEDQor44GT44Gw44KE44GXLOOBquOBpOOBkw0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgZPjgbDjgoTjgZcs44Gh44GIDQor44GT44Gw44KE44GXLOOBpOOCiOOBlw0KK+OBk+OBtuOBmyzjgbLjgafjgobjgY0NCivjgZPjgb7jgY0s44Gy44KN44Gq44GKDQor44GT44G+44GW44KPLOOBn+OBi+OBvuOBlQ0KK+OBk+OBvuOBpOOBsOOCiSzjgajjgoLjgbLjgZUNCivjgZPjgoTjgb4s44GE44Gh44KN44GGDQor44GT44KT44GpLOOBsuOCjeOBkw0KK+OBleOBhOOBjSzjgYvjgYrjgosNCivjgZXjgYQs44GL44Ga44KEDQor44GV44GE44Go44GGLOOBjeOCh+OBhuOBkw0KK+OBleOBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44Gm44KL44Gy44GVDQor44GV44GE44Go44GGLOOBr+OBmOOCgQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgb8NCivjgZXjgYTjgajjgYYs44G144G/44GTDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBleOBhOOBqOOBhizjgb7jgY3jgZMNCivjgZXjgYvjgYQs44Gf44GL44KG44GNDQor44GV44GL44G/LOOBn+OBi+OBlw0KK+OBleOBi+OCguOBqCzjgZPjgYbjgZgNCivjgZXjgYvjgoLjgags44Gy44Gn44GNDQor44GV44GL44KC44GoLOOBvuOBleOCiOOBlw0KK+OBleOBi+OCguOBqCzjgarjgarjgZMNCivjgZXjgYvjgoLjgags44KI44GG44GE44Gh44KN44GGDQor44GV44GP44KJ44GELOOBleOBoOOCiOOBlw0KK+OBleOBj+OCieOBjizjgarjgbvjgZMNCivjgZXjgZXjgY0s44G+44GV44GNDQor44GV44GV44GNLOOChuOBv+OBiA0KK+OBleOBqOOBhizjgbXjgY/jgZ/jgo3jgYYNCivjgZXjgajjgYYs44GX44KF44GG44GV44GPDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgYLjgY0NCivjgZXjgajjgYYs44GR44KT44GE44Gh44KNDQor44GV44Go44GGLOOBi+OBmuOBv+OBoQ0KK+OBleOBqOOBhizjgobjgb8NCivjgZXjgajjgYYs44KK44KH44GG44GZ44GRDQor44GV44GuLOOBqOOBiuOCiw0KK+OBleOBrizjgorjgofjgYbjgZnjgZENCivjgZXjgo/jgZXjgY0s44Gf44GL44GXDQor44GV44KP44GgLOOBsuOCjeOBkw0KK+OBleOCk+OBuuOBhCzjgZXjgajjgosNCivjgZfjgYrjgZrjgYss44GC44Gk44GXDQor44GX44GuLOOBi+OBmuOBruOCig0KK+OBl+OBsOOBnyzjgYvjgZrjgZ/jgYsNCivjgZfjgb4s44GY44KF44KTDQor44GX44G+44GuLOOBqOOBl+OBguOBjQ0KK+OBl+OBv+OBmizjgojjgZfjgZMNCivjgZfjgb/jgZos44G+44G/DQor44GX44KC44GL44KPLOOCiOOBl+OBiuOBvw0KK+OBl+OCguOCgOOCiSzjgYjjgYTjgbYNCivjgZfjgoXjgY/jgoos44G+44Gq44G/DQor44GX44KH44GG44GY44G+LOOBn+OBpOOBig0KK+OBl+OCh+OBhuOBoCzjgY/jgb8NCivjgZfjgonjgYTjgZcs44Gu44KK44GL44GaDQor44GX44KJ44GL44GfLOOBmOOCheOCkw0KK+OBl+OCieOBleOBjSzjgoLjgoLjgZMNCivjgZfjgo3jgZ8s44G+44GV44Gy44KNDQor44GY44KT44GQ44GG44GYLOOBl+OBkuOBi+OBmg0KK+OBl+OCk+OBn+OBqyzjgZHjgpPjgZ8NCivjgZfjgpPjgbws44Gu44G244KG44GNDQor44GY44KT44G8LOOCguOBqOOBr+OCiw0KK+OBl+OCk+OCgOOCiSzjgbLjgafjgajjgZcNCivjgZnjgYzjgYQs44Gk44Go44KADQor44GZ44GO44KC44GoLOOBv+OBuw0KK+OBmeOBjuOCguOCiizjgbLjgo3jgZMNCivjgZnjgY7jgoTjgb4s44Gf44GL44GtDQor44GZ44GO44KE44G+LOOBmOOCheOCkw0KK+OBmeOBjuOChOOBvizjgZ/jgY/jgb4NCivjgZnjgZrjgY0s44GN44GP44GTDQor44Gb44GM44KPLOOBmOOCheOCkw0KK+OBm+OBjSzjgZHjgpPjgZgNCivjgZvjgY3jga0s44Gy44KN44GXDQor44Gb44GN44KC44GoLOOBi+OBpOOBguOBjQ0KK+OBm+OBqCzjgYLjgaTjgZcNCivjgZvjgoks44GL44Ga44KI44GXDQor44Gd44Gn44KE44G+LOOBneOCieOBkw0KK+OBneOBruOBhCzjgabjgovjgYgNCivjgZ/jgYTjgoks44G+44GV44GXDQor44Gf44GL44GNLOOBv+OBoeOCiw0KK+OBn+OBi+OBr+OBlyzjgozjgYQNCivjgZ/jgYvjga/jgZcs44G/44Gt44GTDQor44Gf44GL44Gv44GXLOOBqOOCguOBig0KK+OBn+OBi+OBr+OBvizjgZPjgYbjgY0NCivjgZ/jgYvjgb/jgoQs44Gh44Gv44KLDQor44Gf44GL44KE44Gq44GOLOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OChOOBvizjgZXjgajjgZcNCivjgZ/jgZDjgaEs44KP44Gf44KLDQor44Gf44GR44GG44GhLOOBguOBpOOBlw0KK+OBn+OBkeOBluOBjSzjgb7jgobjgZMNCivjgZ/jgZHjgZfjgZ8s44GV44Go44G/DQor44Gf44GR44KC44GoLOOBsuOCjeOBqOOCgg0KK+OBn+OBoCzjgYLjgaTjgZMNCivjgZ/jgaHjgYvjgo8s44G+44GT44GoDQor44Gf44Gh44Gw44GqLOOBquOBiuOBqA0KK+OBn+OBpOOBjOOCjyzjgajjgoLjgZMNCivjgZ/jgarjgYss44KE44GZ44Gu44KKDQor44Gf44Gq44GLLOOBguOBjeOCiA0KK+OBn+OBquOBiyzjgb7jgZXjgZ/jgYsNCivjgZ/jgarjgYss44GT44GG44GZ44GRDQor44Gf44Gq44GLLOOBleOBoeOBiA0KK+OBn+OBquOBiyzjgZfjgofjgYbjgbjjgYQNCivjgZ/jgarjgbks44Gu44KK44GTDQor44Gf44Gr44GQ44GhLOOBn+OBkeOBlw0KK+OBn+OBq+OCj+OBjSzjgbLjgo3jgbXjgb8NCivjgZ/jgbDjgZ8s44KI44GX44Gy44GVDQor44Gf44Gv44KJLOOBkeOCk+OBmA0KK+OBn+OBvuOBjSzjgarjgYrjgZMNCivjgZ/jgb7jgoDjgoks44G+44GT44GoDQor44Gf44KL44G/LOOBsuOCjeOBvw0KK+OBn+OCk+OBsOOCiSzjgorjgofjgYbjgZMNCivjgaHjgYvjgaQs44Gm44Gk44Gy44GTDQor44Gh44GwLOOBi+OBu+OCig0KK+OBoeOCh+OBhizjgorjgofjgYbjgZ8NCivjgaTjgYvjgaAs44Gm44Gk44KEDQor44Gk44GL44KC44GoLOOBleOBoeOBiw0KK+OBpOOBmOOCguOBqCzjgb/jgY0NCivjgaTjgaHjgaAs44GR44GE44GTDQor44Gk44Gh44KELOOBn+OBi+OBguOBjQ0KK+OBpOOBoeOChCzjgaHjgYvjgokNCivjgaTjgaTjgb8s44GV44Go44GXDQor44Gk44G844GP44KJLOOBn+OBj+OChA0KK+OBpOOCgOOCiSzjgajjgoLjgYgNCivjgabjgZfjgb4s44GC44GN44GTDQor44Gm44KJ44GV44GNLOOBvuOBleOBsuOBqA0KK+OBpuOCieOBleOBjSzjgY/jgb8NCivjgabjgonjgaAs44Gf44GR44Gv44KLDQor44Gp44GELOOBqOOCguOBkw0KK+OBqeOBhCzjga7jgbbjgZ/jgYsNCivjgajjgYYs44Gy44KN44GTDQor44Go44GN44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBqOOBjeOBqCzjgorjgofjgYbjgZnjgZENCivjgajjgY/jgaAs44GI44G/DQor44Go44GX44Ga44G/LOOBvuOBuw0KK+OBqOOBoCzjgZfjgoXjgpPjgZnjgZENCivjgajjgojjgaAs44Gy44KN44GC44GNDQor44Gq44GE44Go44GGLOOCiuOCh+OBhuOBnw0KK+OBquOBi+OBhCzjgb7jgZXjgajjgZcNCivjgarjgYvjgYos44GC44GN44Gy44GTDQor44Gq44GM44GKLOOBiOOCiuOBkw0KK+OBquOBi+OBjOOCjyzjgajjgoLjgb8NCivjgarjgYzjgZXjgYss44G/44Gh44GTDQor44Gq44GL44GV44GLLOOChOOBmeOBsuOCjQ0KK+OBquOBjOOBleOBjSzjgobjgYbjgYTjgaHjgo0NCivjgarjgYvjgZbjgo8s44KG44GG44G444GEDQor44Gq44GL44GW44KPLOOCiOOBhuOBkw0KK+OBquOBi+OBl+OBvizjgobjgYbjgoQNCivjgarjgYvjgZjjgb4s44GI44G/44GTDQor44Gq44GL44GX44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZfjgoXjgYbjgZ/jgo3jgYYNCivjgarjgYvjgZjjgb4s44KK44KH44GG44GZ44GRDQor44Gq44GL44GgLOOBi+OCiOOBkw0KK+OBquOBi+OBoCzjgYLjgoTjgZMNCivjgarjgYzjgaTjgYss44GE44GV44GKDQor44Gq44GL44GoLOOBl+OCheOBhuOBmA0KK+OBquOBi+OBq+OBlyzjgb/jganjgooNCivjgarjgYvjgavjgZcs44GZ44GZ44KADQor44Gq44GL44Gr44GXLOOBhOOBn+OCiw0KK+OBquOBjOOBvuOBpCzjgb7jgZXjgbLjgo0NCivjgarjgYvjgoDjgoks44GX44GS44Go44GXDQor44Gq44GL44KA44KJLOOBjeOCh+OBhuOBkw0KK+OBquOBi+OCgOOCiSzjgYLjgoTjgZMNCivjgarjgYvjgoDjgoks44G+44KGDQor44Gq44GL44KA44KJLOOBkeOBhOOBkw0KK+OBquOBi+OCgOOCiSzjgarjgYrjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GL44GaDQor44Gq44GL44KA44KJLOOBleOChOOBkw0KK+OBquOBi+OCguOCiizjgabjgaTjgoQNCivjgarjgYvjgoQs44KG44GG44GYDQor44Gq44GL44KE44G+LOOBn+OBkeOBlw0KK+OBquOBmSzjgZPjgYbjgZgNCivjgarjgorjgajjgb8s44GX44KT44Gf44KN44GGDQor44Gq44KT44G2LOOBqOOCguOChA0KK+OBq+OBhOOBvyzjgoTjgZnjgZ/jgYsNCivjgavjgZfjgYvjgo8s44Gd44Gu44GTDQor44Gr44GX44GuLOOChuOBiw0KK+OBq+OBl+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgazjgYvjgaAs44KI44GX44GTDQor44Gs44G+44GfLOOChuOBhuOBhOOBoQ0KK+OBrOOBvuOBnyzjgZXjgajjgZcNCivjga7jgYzjgb8s44GV44Go44GXDQor44Gu44GOLOOBguOChOOBkw0KK+OBruOBj+OBiizjgYvjgYrjgooNCivjga7jgZDjgaEs44Gf44GL44KG44GNDQor44Gu44GW44GNLOOBquOBpOOBrQ0KK+OBruOBmCzjgobjgY0NCivjga7jgb4s44KM44GE44GTDQor44Gu44KA44KJLOOBvuOBleOBig0KK+OBruOCgOOCiSzjgobjgYbjgYTjgaENCivjgbDjgZPjgZcs44GX44KT44GUDQor44Gv44GX44KC44GoLOOBquOBiuOBkw0KK+OBr+OBmeOBrOOBvizjgaHjgYgNCivjga/jgZss44KI44GG44GE44GhDQor44Gv44Gb44GM44KPLOOBsuOCjeOBlw0KK+OBr+OBn+OBjOOCjyzjgZjjgoXjgpPjgZMNCivjga/jgZ/jgZHjgoTjgb4s44KG44GG44GTDQor44Gv44Gf44GuLOOCiOOBhuOBkw0KK+OBr+OBquOBhCzjgorjgYsNCivjga/jgb7jgZXjgY0s44G+44GT44GoDQor44Gv44G+44GgLOOBsuOCjeOBn+OBiw0KK+OBr+OBvuOBpyzjgZ/jgYvjgZcNCivjga/jgoTjgYvjgo8s44GC44GNDQor44Gv44KE44GXLOOBguOChA0KK+OBr+OChOOBlyzjgZXjgajjgZMNCivjga/jgoTjgZcs44GV44Go44GXDQor44Gv44KE44GXLOOBmOOCheOCkw0KK+OBr+OChOOBlyzjgojjgYbjgZMNCivjga/jgoTjgZcs44GZ44GZ44KADQor44Gv44KJLOOBqOOCguOBsuOBlQ0KK+OBr+OCieOBl+OBqizjga7jgbbjgY0NCivjga/jgonjgaAs44GC44Gk44GXDQor44Gv44KJ44GgLOOBv+OBqeOCig0KK+OBr+OCi+OBqizjgZfjgoXjgYbjgZnjgZENCivjgbLjgY3jgZ8s44Gy44Gn44GoDQor44Gy44Gg44GELOOBvuOChuOBvw0KK+OBsuOCieOBhCzjgY3jgofjgYbjgZMNCivjgbLjgonjgYQs44KG44GG44GZ44GRDQor44Gy44KJ44GELOOBiOOCiuOBkw0KK+OBsuOCieOBhOOCjyzjgY/jgb/jgZMNCivjgbLjgonjgYos44Gy44Gn44GL44GaDQor44Gy44KJ44GL44KPLOOBvuOBjQ0KK+OBsuOCieOBnyzjgojjgZfjgYLjgY0NCivjgbLjgonjgb7jgaQs44Gf44GL44GKDQor44Gy44KN44GILOOBguOBpOOBlw0KK+OBsuOCjeOBmyzjgbLjgafjga7jgooNCivjgbXjgYvjgZbjgo8s44Gy44Gn44KG44GNDQor44G144GL44G744KKLOOBruOCiuOBsuOCjQ0KK+OBteOBj+OBl+OBvizjgb7jgY3jgYoNCivjgbXjgY/jgaAs44Gy44KN44KG44GNDQor44G144GP44GgLOOBsuOCjeOBteOBvw0KK+OBteOBj+OBoCzjgZXjgoTjgYsNCivjgbXjgZjjgYQs44KK44GI44GTDQor44G144GY44GL44KPLOOBi+OBmuOBvw0KK+OBteOBmOOBnyzjgZHjgpPjgZgNCivjgbXjgZjjgZ8s44G+44GV44GKDQor44G144GY44GfLOOCiOOBl+OCjeOBhg0KK+OBteOBmOOCgOOCiSzjgajjgoLjgobjgY0NCivjgbXjgZjjgoDjgoks44GC44GN44GTDQor44G144GY44KC44GoLOOBl+OCh+OBhuOBuOOBhA0KK+OBteOBmOOCguOBqCzjgorjgoXjgYbjgbjjgYQNCivjgbXjgZjjgo/jgoks44GR44GE44GV44GPDQor44G144GY44KP44KJLOOBleOBqOOBlw0KK+OBteOBn+OBi+OBnyzjgZjjgo3jgYYNCivjgbXjgarjgYQs44GV44Gh44GTDQor44G144KL44GL44KPLOOBsuOCjeOBkw0KK+OBteOCi+OBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgbXjgovjgb7jgZ8s44Go44KC44KEDQor44G744GXLOOChuOBjQ0KK+OBu+OBl+OBhuOCiSzjgbLjgo3jgZcNCivjgbvjgZfjgo0s44GE44Gk44G/DQor44G744Gd44GgLOOBl+OCheOCk+OBlA0KK+OBu+OCiizjga7jgbbjgbLjgacNCivjgbvjgoos44KG44GNDQor44G744KK44GILOOBruOBtuOBqA0KK+OBu+OCiuOBkOOBoSzjga7jgZ7jgoANCivjgbvjgpPjgaos44GL44GK44KLDQor44G744KT44G8LOOBsuOCjeOChuOBjQ0KK+OBvuOBiOOBi+OCjyzjgb/jgo8NCivjgb7jgYjjgaAs44GT44GZ44GRDQor44G+44GI44GgLOOBn+OBi+OBlw0KK+OBvuOBiOOBoCzjgYjjgaTjgZMNCivjgb7jgY3jgYbjgaEs44GR44GE44GYDQor44G+44GN44GuLOOBl+OCh+OBhuOBkw0KK+OBvuOBjeOCguOBqCzjgajjgoLjga7jgooNCivjgb7jgZXjgajjgYbjgb8s44G+44GE44GTDQor44G+44GZ44GELOOCiOOBhuOBmeOBkQ0KK+OBvuOBmeOBoCzjgb7jgZXjgobjgY0NCivjgb7jgZnjgaAs44G/44G7DQor44G+44Gk44GELOOBv+OBig0KK+OBvuOBpOOBhuOCiSzjgYvjgZrjgbLjgZUNCivjgb7jgaTjgYrjgYss44GC44GN44Gy44KNDQor44G+44Gk44GK44GLLOOBqOOCguOBkw0KK+OBvuOBpOOBiuOBiyzjgb7jgobjgb8NCivjgb7jgaTjgYrjgYss44Gg44GE44GZ44GRDQor44G+44Gk44GL44GSLOOBsuOBleOBig0KK+OBvuOBpOOBl+OBnyzjgZXjgajjgZcNCivjgb7jgaTjgarjgYws44KP44Gf44KLDQor44G+44Gk44Gw44KJLOOBruOBnuOBvw0KK+OBvuOBpOOBsOOCiSzjgYLjgY3jgZMNCivjgb7jgaTjgoLjgags44Gy44KN44G/44GkDQor44G+44Gk44KC44GoLOOBu+OBj+OBqA0KK+OBvuOBpOOChOOBvizjgb7jgYTjgZMNCivjgb/jgYbjgoks44KK44KH44GGDQor44G/44GG44KJLOOBguOBpOOBlw0KK+OBv+OBhuOCiSzjgYLjgaTjgZcNCivjgb/jgYbjgoks44GN44KI44G+44GVDQor44G/44GNLOOChuOBhuOBmA0KK+OBv+OBmuOBi+OCjyzjgbLjgo3jgobjgY0NCivjgb/jgZrjgZ/jgass44KG44GN44GTDQor44G/44Ga44GuLOOChuOBhuOBm+OBhA0KK+OBv+OBneOBrizjgZ/jgaDjgb7jgZUNCivjgb/jgZ7jga/jgZ8s44Gh44GIDQor44G/44Gq44GM44KPLOOBvuOBoeOBkw0KK+OBv+OBquOBjOOCjyzjgYLjgoQNCivjgb/jgarjgb8s44Gy44KN44KG44GNDQor44G/44Gq44G/LOOBn+OBi+OBlw0KK+OBv+OBquOBv+OBi+OBnyzjgZ/jgYvjga7jgbYNCivjgb/jgarjgb/jgoDjgoks44Gy44Gn44GNDQor44G/44Gv44KJLOOBvuOBleOBjQ0KK+OBv+OCgOOCiSzjgb/jgY3jgZMNCivjgb/jgoTjgYQs44Gu44G244GC44GNDQor44G/44KE44GW44GNLOOBguOBpOOBlw0KK+OBv+OChOOBluOCjyzjgarjgYrjgoQNCivjgb/jgoTjgZbjgo8s44GC44GN44KJDQor44G/44KE44KA44KJLOOBi+OBiuOCig0KK+OBv+OChOOCgOOCiSzjgYLjgoQNCivjgb/jgoTjgoLjgags44KG44GG44G444GEDQor44G/44KE44KC44GoLOOBvuOBleOChA0KK+OBv+OCiOOBlyzjgaTjgYvjgZUNCivjgoDjga3jgoDjgoks44Gh44GL44G144G/DQor44KA44KJ44GL44GfLOOBqOOCguOChuOBjQ0KK+OCgOOCieOBmuOBvyzjgb/jgaTjga7jgooNCivjgoDjgonjgZ8s44GP44G/44GTDQor44KA44KJ44GfLOOBvuOBjQ0KK+OCgOOCieOCguOBqCzjgYvjgZrjga7jgbYNCivjgoDjgonjgoTjgb4s44Gq44GKDQor44KC44KKLOOBquOBiuOBkw0KK+OCguOCiizjgYvjgaTjgb7jgZUNCivjgoLjgoos44GC44Gk44Gy44GTDQor44KC44KKLOOBj+OBv+OBkw0KK+OCguOCiizjgb/jgY0NCivjgoLjgorjgYbjgaEs44Gu44KK44GTDQor44KC44KK44GX44GfLOOChuOBhuOBhOOBoeOCjQ0KK+OCguOCiuOBn+OBqyzjgYvjgZrjgagNCivjgoLjgorjgoLjgags44GS44KTDQor44KC44KK44KE44G+LOOBk+OBhuOBmA0KK+OCguOCjeOBiCzjgbLjgo3jgYvjgZoNCivjgoTjgZQs44G/44Gu44KLDQor44KE44GZ44GM44GNLOOBqOOCguOBteOBvw0KK+OChOOBmeOBoCzjgYLjgoTjgZMNCivjgoTjgZnjgoLjgags44GC44Gk44GXDQor44KE44Gk44Gq44G/LOOBguOBjeOBig0KK+OChOOBquOBjuOBleOCjyzjgZHjgYTjgZnjgZENCivjgoTjgarjgY7jga/jgoks44GX44KT44GZ44GRDQor44KE44G244Gq44GLLOOBn+OBhOOBlw0KK+OChOOBvuOBhuOBoSzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgYrjgYss44Gf44Gg44GXDQor44KE44G+44GK44GLLOOBquOBiuOChA0KK+OChOOBvuOBiuOBjSzjgbLjgo3jgobjgY0NCivjgoTjgb7jgYzjgZ8s44G+44GT44GoDQor44KE44G+44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgZMNCivjgoTjgb7jgZfjgZ8s44G+44Gp44GLDQor44KE44G+44GX44GfLOOBoeOBiA0KK+OChOOBvuOBoCzjgaHjgYgNCivjgoTjgb7jgaAs44GY44KF44KT44GYDQor44KE44G+44GgLOOBruOBtuOBkw0KK+OChOOBvuOBoCzjgYLjgoQNCivjgoTjgb7jgaAs44G+44GN44GTDQor44KE44G+44Gq44GLLOOCgeOBkOOBvw0KK+OChOOBvuOCgOOCiSzjgYTjgaPjgZvjgYQNCivjgoTjgb7jgoDjgo0s44GL44Gq44GTDQor44KE44G+44KC44GoLOOBk+OBhuOBuOOBhA0KK+OChOOBvuOCguOBqCzjgabjgovjgbLjgZMNCivjgoTjgb7jgoLjgags44G+44GV44KG44GNDQor44KE44G+44KC44GoLOOBv+OBpOOCiOOBlw0KK+OChOOBvuOCguOBqCzjgb/jga7jgosNCivjgoTjgb7jgoLjgags44GX44Gu44G2DQor44KE44G+44KC44GoLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgYLjgZnjgYsNCivjgoTjgb7jgoLjgags44KP44Gf44KLDQor44KG44GC44GVLOOBj+OBv+OBkw0KK+OChuOBjSzjgarjgYrjgZMNCivjgobjgorjgoTjgb4s44Gu44KK44Gy44KNDQor44KI44GT44GfLOOBguOBpOOBsuOBlQ0KK+OCiOOBk+OBr+OBvizjgajjgZfjgobjgY0NCivjgojjgZPjgoTjgb4s44GC44KG44G/DQor44KI44GT44KE44G+LOOBi+OBmuOBjQ0KK+OCiOOBl+OBiuOBiyzjgY3jgofjgYbjgZMNCivjgojjgZfjgYrjgYss44G+44GE44GTDQor44KI44GX44GK44GLLOOBvuOCiuOBkw0KK+OCiOOBl+OBoCzjgZ/jgYvjgajjgZcNCivjgojjgZfjgaAs44Gq44GK44GTDQor44KI44GX44GgLOOBquOBiuOBkw0KK+OCiOOBl+OBoCzjgb7jgorjgYgNCivjgojjgZfjgaAs44KG44GG44GYDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OCiOOBl+OBrizjgobjgYsNCivjgojjgZfjgbLjgo0s44KG44G/DQor44KI44GX44G+44GkLOOBqOOBiuOCiw0KK+OCiOOBl+OCgOOCiSzjgaDjgYTjgZnjgZENCivjgojjgZfjgoDjgoks44GL44Ga44G144G/DQor44KP44GL44G+44GkLOOBsuOCjeOChA0KK+OCj+OBjeOBnyzjgYvjgZrjgYoNCivjgo/jgY3jgZ8s44GR44KT44GX44KN44GGDQor44KP44GX44GKLOOCiOOBl+OBguOBjQ0KK+OCj+OBl+OBluOCjyzjgaHjgYLjgY0NCivjgo/jgaAs44GE44GV44KADQor44KP44GgLOOBqOOBl+OBig0KK+OCj+OBoCzjgYTjgZXjgYoNCivjgo/jgaAs44Gf44GR44GXDQor44KP44GgLOOBi+OBpOOBiA0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgZfjgpMNCivjgo/jgZ/jgarjgbks44Go44GP44GYDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgY3jgojjgYrjgb8NCivjgo/jgZ/jgarjgbks44KI44GX44Gy44KNDQor44KP44Gf44Gq44G5LOOCiOOCiuOBv+OBpA0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgZgNCivjgoTjgb7jgZDjgaEs44KC44Go44GYDQor44GZ44Ga44GNLOOBmOOCjeOBhg0KK+OBleOBleOBrizjgZnjgZnjgoANCivjgYvjga3jgZMs44Gf44GR44GXDQor44GP44G844GfLOOCjOOBhOOBkw0KK+OBk+OBmeOBkeOBjOOCjyzjgb7jgZXjgarjgYoNCivjgYvjgarjgYQs44GV44G244KN44GGDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBk+OBoOOBvizjgZ/jgYvjgbLjgZMNCivjgZPjgbDjgoTjgZcs44Go44GX44Gy44KNDQor44GT44GY44G+LOOBqOOBiuOCiw0KK+OBi+OCgeOChOOBvizjgYvjgZrjgbLjgZMNCivjgY/jgonjgbDjgoTjgZcs44Gu44G244GKDQor44GL44KT44GgLOOBi+OBmuOChuOBjQ0KK+OBk+OCk+OBrizjgZjjgoXjgpPjgZgNCivjgYvjgo/jgZfjgb4s44G+44GV44Gq44KKDQor44GL44KP44GL44G/LOOBk+OBhuOBmA0KK+OBi+OBquOBiyzjgYvjgY/jgZ/jgo3jgYYNCivjgYvjgo/jgoDjgoks44Gy44KN44GG44G/DQor44GN44KA44KJLOOBl+OCheOCk+OBhOOBoQ0KK+OBi+OBmeOBjCzjgbLjgo3jgZcNCivjgZPjgZjjgb4s44KC44Go44KI44GXDQor44GL44KP44GuLOOBk+OBhuOBhOOBoQ0KK+OBi+OCj+OBqizjgojjgZfjgb7jgZUNCivjgZPjgZrjgb4s44Gf44GR44GXDQor44GL44KP44GV44GNLOOBvuOBleOBguOBjQ0KK+OBi+OBn+OBrizjgb7jgZXjgYLjgY0NCivjgYvjgZ/jgaAs44GC44GN44GKDQor44GN44GP44GhLOOBvuOBleOBiuOBvw0KK+OBi+OBv+OBhuOCiSzjgYvjgZrjgbLjgacNCivjgYvjga3jgaAs44Gm44Gk44GKDQor44GT44KT44GuLOOChOOBmeOBig0KK+OBi+OCj+OCguOBqCzjgZfjgZLjgb8NCivjgYvjgbDjgoQs44Gy44KN44GXDQor44GT44G244GP44KNLOOBkeOCk+OBjeOBoQ0KK+OBj+OBvuOBjOOBhCzjgobjgYbjgZgNCivjgZPjgpPjga4s44Gy44Gn44GNDQor44GT44KE44G+LOOBl+OCh+OBhuOBhOOBoQ0KK+OBjeOBn+OBl+OCjSzjgbLjgajjgZcNCivjgZPjgaDjgb4s44Gf44GR44GXDQor44GL44Go44GGLOOBiOOBhOOBhOOBoQ0KK+OBjeOCgOOCiSzjgajjgZfjga/jgosNCivjgZPjgYTjgacs44GE44GV44GKDQor44GP44KE44G+LOOBn+OBkeOBlw0KK+OBjeOCiuOBr+OCiSzjgoLjgorjgbLjgo0NCivjgYvjgogs44G+44GV44Gf44GgDQor44GL44Gt44GTLOOBqOOBl+OBig0KK+OBk+OBr+OCiSzjgYTjgo/jgYoNCivjgYvjgajjgYYs44KG44GN44GKDQor44GT44GELOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBi+OChOOBvizjgYTjgZXjgYoNCivjgZPjgYTjgZEs44GP44Gr44Gy44GTDQor44GT44GY44G+LOOBguOBjeOBqA0KK+OBk+OBvuOBpCzjgb7jgZXjgZgNCivjgY3jgZ/jgoDjgoks44Gu44KK44KI44GXDQor44GN44Gf44KP44GNLOOBnOOCk+OBhOOBoeOCjQ0KK+OBi+OBleOBmOOBvizjgbLjgo3jgbXjgb8NCivjgY3jgoDjgoks44Gm44Gk44KN44GGDQor44GL44G/44GQ44GhLOOBleOBoeOBig0KK+OBi+OBqOOBhizjgbXjgZjjgYoNCivjgYvjgo/jgoDjgoks44Go44GX44Gy44GoDQor44GL44Gp44GfLOOBruOBtuOBn+OBiw0KK+OBiuOBiuOBn+OBkSzjgZfjgZLjgosNCivjgYvjgajjgYYs44Go44KC44G/DQor44GN44GuLOOBruOBtuOBsuOBlQ0KK+OBi+OBvyzjgb7jgZXjgb8NCivjgY3jgY/jgaEs44G+44GV44KG44GNDQor44GL44GN44GG44GhLOOBsuOCjeOBsuOBlQ0KK+OBk+OBmOOBvizjgb7jgZXjgb8NCivjgYvjgZ/jgYrjgYss44GX44KF44KT44GZ44GRDQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBjeOBn+OBluOCjyzjgb7jgZXjgYLjgY0NCivjgZPjgb/jga0s44KC44Go44KG44GNDQor44GP44G8LOOBn+OBi+OChuOBjQ0KK+OBjeOBn+OBmuOCgSzjgYvjgZrjgajjgZcNCivjgZPjgbDjgoTjgZcs44GL44Gk44GKDQor44GL44KP44GQ44GhLOOCiOOBl+OBsuOBkw0KK+OBkeOBjOOBleOCjyzjgbLjgZXjgZcNCivjgZPjgYbjgaEs44G/44Gh44GKDQor44GT44KE44G+LOOBqOOBiuOCiw0KK+OBi+OCj+OBjeOBnyzjgZ/jgYvjgbLjgacNCivjgYvjgo/jgb/jgaQs44GX44KH44GG44Ge44GGDQor44GL44Gf44Gy44KJLOOBguOBpOOBig0KK+OBi+OCj+OBjuOBlyzjgbLjgo3jgZcNCivjgZPjgpPjgaks44KI44GX44G/44GkDQor44GN44KA44KJLOOBguOBjeOBsuOBkw0KK+OBj+OBvOOChOOBvizjgZfjgpPjgZ/jgo3jgYYNCivjgY/jgb7jgoLjgags44G+44GV44GNDQor44GL44KP44GfLOOBteOBv+OCiA0KK+OBj+OBq+OBruOBtizjgoTjgZnjgYoNCivjgYvjgb7jgaAs44Gf44GL44GXDQor44GL44GPLOOBiuOBleOCgA0KK+OBi+OBreOBkyzjgYrjgZXjgoANCivjgZPjgbDjgoTjgZcs44GC44GN44KJDQor44GL44GX44GKLOOBkeOCk+OBmA0KK+OBi+OBquOBhOOCjyzjgZHjgYTjgZgNCivjgZHjgpPjgoLjgaEs44Gf44Gg44GXDQor44GN44GP44GhLOOBiuOBleOCgA0KK+OBi+OBluOBvizjgoTjgZnjgYLjgY0NCivjgZPjgb7jgaTjgoLjgags44GI44GE44GTDQor44GT44KT44GpLOOBi+OBpOOBsuOBkw0KK+OBjeOBj+OBl+OBvizjgYvjgaTjgb7jgZUNCivjgZPjgbDjgoTjgZcs44Gb44GE44GTDQor44GP44G+44GM44GELOOBvuOBleOBqOOBlw0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgZMNCivjgb7jgovjgbDjgoTjgZcs44Gf44GL44GXDQor44KA44Go44GGLOOBi+OBpOOBvw0KK+OBv+OBn+OBqyzjgZ/jgZHjgZcNCivjgb/jgo8s44G+44GV44GXDQor44GX44G/44GaLOOBpOOBqOOCgA0KK+OBv+OBmuOBrizjgajjgZfjgYoNCivjgb7jgaHjgaAs44GL44Ga44GKDQor44G+44Gk44GELOOBi+OBmuOBn+OBvw0KK+OBv+OBhuOCiSzjgorjgoXjgYbjgYTjgaENCivjgbLjga4s44KK44KH44GG44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBrizjgbLjgo3jgobjgY0NCivjgb7jgovjgYQs44G+44GV44Gu44KKDQor44KA44KJ44GV44GNLOOBqOOBl+OBig0KK+OBvuOBleOBiyzjgbLjgafjga7jgooNCivjgb/jga3jgZ8s44Gf44GR44G/DQor44G+44Gk44Gq44GMLOOChuOBn+OBiw0KK+OBv+OBquOBjOOCjyzjgZvjgYTjgZgNCivjgb/jgoTjgZEs44Gq44GK44GC44GNDQor44G+44Gk44KC44GoLOOBkeOCk+OBhOOBoQ0KK+OBv+OBleOCjyzjgajjgZfjgobjgY0NCivjgb7jgYjjgaAs44GT44GG44Ge44GGDQor44GG44Gg44GM44KPLOOBqOOBl+OBi+OBpA0KK+OBv+OChOOBr+OCiSzjgZPjgYbjgZgNCivjgoDjgonjgYQs44GX44KH44GG44GYDQor44G+44Gk44KC44KKLOOBl+OBkuOBjQ0KK+OBvuOBleOBjSzjgY3jgY/jgYoNCivjgb/jgYbjgoks44GI44GE44GYDQor44KC44Go44G/44KELOOBjeOCiOOBlw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgbXjgb8NCivjgb7jgajjgbAs44G+44GV44GC44GNDQor44G/44GG44KJLOOBqOOBl+OBig0KK+OBvuOBpOOBi+OCjyzjgYvjgZrjgbLjgo0NCivjgb/jgZrjgZ/jgass44Gq44GK44Gy44GTDQor44G/44KE44GuLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBoCzjgbXjgZXjgaHjgYsNCivjgb/jgZks44GC44GN44KJDQor44G+44Gk44KE44G+LOOBqOOBl+OBiA0KK+OBv+OChOOCguOBqCzjgZ/jgaDjgYLjgaQNCivjgb/jgZrjga4s44G144G/44GKDQor44G+44KL44KE44G+LOOBm+OBhOOBmA0KK+OBvuOCi+OBkyzjgb/jgaHjgZ/jgYsNCivjgoLjgaHjgaAs44Go44GK44KLDQor44KC44Go44Gv44GXLOOBvuOCguOCiw0KK+OBv+OBmuOChCzjgZPjgYbjgZgNCivjgb/jgoTjgZbjgY0s44G/44Gh44G+44GVDQor44G/44KE44GM44KPLOOBv+OBpOOCiw0KK+OCgOOCieOBl+OBvizjgZ/jgaDjgYoNCivjgb7jgZnjgZXjgZMs44Gb44GE44GE44GhDQor44KC44KKLOOBhOOBoeOCjeOBhg0KK+OCguOCiuOBnyzjgYvjgZrjgYoNCivjgb/jgarjgb8s44KI44GX44GC44GNDQor44G/44KE44GNLOOBvuOBleOBig0KK+OCguOCiuOChOOBvizjgZHjgpPjgZgNCivjgb/jgZrjgZ8s44KI44GX44GKDQor44G+44Gk44GELOOBv+OBpOOBkA0KK+OBvuOBpOOBiizjgb7jgZXjgogNCivjgb7jgaTjgZfjgZ8s44KG44Gf44GLDQor44GT44Gw44KE44GXLOOBi+OBpOOBvw0KK+OCgOOBi+OBiCzjgb7jgZXjgZgNCivjgoLjgorjgYQs44GO44KH44GYDQor44KC44KK44GfLOOBn+OBhOOBnuOBhg0KK+OCgOOBi+OBhCzjgb7jgZXjgYoNCivjgb7jgaTjgYos44Go44GN44KPDQor44KA44KJ44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYoNCivjgb/jgoTjgZXjgags44G/44Gu44KLDQor44G/44KE44GW44KPLOOCiOOBl+OBig0KK+OCguOCiuOCgOOCiSzjgZ/jgYvjgZcNCivjgoDjgonjga4s44Gy44Gn44GKDQor44G+44GZ44GgLOOBv+OBruOCiw0KK+OCgOOCieOBnyzjga7jgbbjgYoNCivjgb/jgoTjgZXjgYss44GR44KT44GYDQor44KC44Go44Gw44KE44GXLOOBvuOBleOBv+OBpA0KK+OBv+OBmuOBrizjgobjgorjgZMNCivjgoLjgoLjgYQs44KI44GX44GKDQor44G+44Gk44GgLOOBqOOBj+OBig0KK+OBmeOBjOOCj+OCiSzjgarjgYrjgYgNCivjgb7jgaTjgbDjgoks44G+44GT44GoDQor44G+44Gk44KC44GoLOOBv+OBruOCiw0KK+OBv+OChOOBr+OCiSzjgYLjgaTjgojjgZcNCivjgoDjgonjgYTjgZcs44G+44KC44KLDQor44G+44Gk44KA44KJLOOBvuOCguOCiw0KK+OBv+OCiOOBlyzjgabjgaTjgojjgZcNCivjgoLjgorjgoLjgags44GL44Ga44GKDQor44G/44Ga44Gf44GrLOOBn+OBkeOBlw0KK+OBvuOBpOOBsCzjgYLjgaTjgZcNCivjgb7jgaTjgYQs44GL44KTDQor44KA44KJ44GL44G/LOOBi+OBmuOBig0KK+OCguOCiuOBnyzjgZfjgZLjga/jgosNCivjgoDjgonjgZ8s44GX44GS44GKDQor44G+44GV44GNLOOBsuOCjeOBlw0KK+OBv+OChOOBluOBjSzjgojjgZfjgY0NCivjgb7jgaTjgbDjgoks44GX44KT44GE44GhDQor44KA44KJ44G+44GkLOOBguOBpOOBlw0KK+OCguOCiizjga7jgbbjgobjgY0NCivjgoLjgorjgoDjgoks44G+44GV44GL44GaDQor44GZ44KPLOOCiOOBl+OBvw0KK+OBk+OCj+OBn+OCiizjgarjgYrjgY0NCivjgb7jgaTjgZbjgY0s44KI44GX44Gu44G2DQor44G+44Gj44GV44GNLOOBvuOBleOBsuOCjQ0KK+OBv+OBn+OBjyzjgZHjgYTjgZ7jgYYNCivjgb7jgaTjgYvjgo8s44GV44Go44GXDQor44KC44GOLOOBl+OBkw0KK+OBvuOBtuOBoSzjgY3jgojjgZcNCivjgb7jgaTjgoLjgags44Go44GX44KN44GGDQor44KC44KKLOOCiuOCh+OBhuOBhOOBoQ0KK+OBvuOBpOOBhuOCiSzjgYvjgZrjgarjgooNCivjgb7jgYjjgaAs44GC44GN44GKDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBvuOBiOOBq+OBlyzjgbLjgo3jgZcNCivjgb7jgovjgoTjgb4s44Gq44GK44KEDQor44G+44Gk44GgLOOBn+OBi+OBig0KK+OBvuOBjSzjgajjgZfjgbLjgZMNCivjgoLjgYbjgYgs44GX44KT44GE44Gh44KN44GGDQor44KA44KJ44GELOOBqOOCiOOBvw0KK+OBvuOBpOOBhCzjgY/jgavjgbLjgZMNCivjgoLjgorjgZ8s44G+44GV44KLDQor44G+44GI44GgLOOBn+OBi+OBtuOBvw0KK+OCgOOCieOBhuOBoSzjgYTjgZXjgoANCivjgb/jgaTjgoTjgZks44GC44GN44KJDQor44KC44KKLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgZXjgajjgZcNCivjgb7jgaTjgYos44G+44GV44G144G/DQor44G+44KL44KE44G+LOOBguOBjeOBig0KK+OBvuOBpOOBjOOBiCzjgZfjgZLjgbLjgo0NCivjgYvjgb/jgY/jgoks44GT44GG44GE44GhDQor44G/44Gp44KK44GL44KPLOOChuOBhuOBmOOCjeOBhg0KK+OBvuOBmeOBoCzjgZfjgZLjga7jgbYNCivjgb/jgabjgoks44KE44GZ44GKDQor44G+44Gk44Gq44GMLOOBguOBjeOCiQ0KK+OCguOCiuOBiuOBiyzjgojjgZfjgb8NCivjgb/jgZ3jgYos44GI44Gk44GKDQor44KA44KJ44KE44G+LOOBi+OBpOOCiOOBlw0KK+OCguOCiuOCguOBqCzjgZfjgZLjgosNCivjgoLjgoos44Gk44Go44KADQor44G+44GZ44GgLOOBsuOCjeOBn+OBiw0KK+OBv+OChOOCguOBqCzjgYvjgaTjgb7jgZUNCivjgoDjgonjgZ8s44KI44GX44Gm44KLDQor44G/44Gq44G/44GV44KPLOOBi+OBmuOBsuOCjQ0KK+OBvuOBl+OBvizjgZnjgb/jgbLjgo0NCivjgoLjgorjgZDjgaEs44KI44GX44GC44GNDQor44G+44Gk44GELOOBn+OBi+OBlw0KK+OBvuOBiOOBi+OCjyzjgbLjgajjgZcNCivjgoLjgaHjgZrjgY0s44GY44KF44KTDQor44G+44GZ44GgLOOBl+OCk+OBjeOBoQ0KK+OBvuOBpOOCguOBqCzjgZjjgoXjgpPjgZ7jgYYNCivjgoLjgorjgarjgYws44GL44Ga44Gu44KKDQor44G+44GZ44GgLOOBsuOCjeOBn+OBvw0KK+OBv+OBhuOCiSzjgY/jgavjgYoNCivjgb7jgaTjga4s44Gf44Gg44GKDQor44G+44Gk44GK44GLLOOCiOOBl+OBpuOCiw0KK+OBvuOBoeOBhCzjgZPjgYbjgYTjgaENCivjgb/jgZrjgZ/jgass44Go44GX44GKDQor44G+44Gk44KC44GoLOOCiOOBl+OBruOCig0KK+OBvuOBleOBjSzjgbLjgafjgagNCivjgb7jgaTjgoLjgags44Gf44GR44GXDQor44G/44Gk44KELOOBsuOBp+OChOOBmQ0KK+OBv+OBmuOBrizjgZjjgo3jgYYNCivjgb7jgYjjgaAs44G144G/44GKDQor44KA44KJ44G+44GkLOOBkeOCk+OBmA0KK+OCgOOBleOBl+OBrizjgYLjgY3jgokNCivjgb7jgYjjga/jgZ8s44G+44GV44Gy44GTDQor44G+44Gk44GW44KPLOOCiOOBl+OBig0KK+OBv+OBpOOBhCzjgojjgZfjgYvjgZoNCivjgoLjgoLjgaAs44G/44Gk44GL44GaDQor44G+44Gk44GKLOOBi+OBpOOBvw0KK+OBv+OCjyzjgZfjgoXjgYbjgZgNCivjgoDjgonjgYvjgb8s44Gm44Gk44KEDQor44G/44GL44G/LOOBr+OCi+OBjQ0KK+OBrOOBi+OBluOCjyzjgZfjgpPjgZgNCivjgarjgYvjgoDjgoks44GX44Ga44GIDQor44Gr44GX44KA44KJLOOBj+OBq+OBsuOBkw0KK+OBq+OBo+OBnyzjgZHjgpPjgZgNCivjgarjgYzjgaTjgoYs44Go44GN44KE44GZDQor44Gr44GE44GuLOOBsuOCjeOBlw0KK+OBn+OBtuOBoSzjgZHjgpPjgZgNCivjgavjgZfjga4s44GV44G244KN44GGDQor44Gs44GL44GfLOOBn+OCguOBpA0KK+OBq+OBl+OCgOOCiSzjgbLjgZXjgYoNCivjgarjgYzjga4s44Gf44GL44KG44GNDQor44Gq44GL44GM44KPLOOCiOOBl+OBguOBjQ0KK+OBq+OBl+OChOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44KNDQor44Gr44GX44GgLOOBv+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgYoNCivjga7jgoDjgoks44KG44GN44GKDQor44Gq44GL44KC44GoLOOBruOCiuOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgYvjgZrjgZ/jgb8NCivjgarjgovjgZXjgo8s44Gk44Gt44GKDQor44Gq44GE44Go44GGLOOBn+OBkeOBig0KK+OBruOBuSzjgojjgZfjgbLjgacNCivjgavjgZfjgaos44KE44GZ44Gu44KKDQor44Gu44KA44KJLOOBn+OBoOOBlw0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgZjjgo3jgYYNCivjgavjgYvjgYTjganjgYYs44KI44GX44KE44GZDQor44Gq44GL44GgLOOBn+OBpOOBig0KK+OBq+OBl+OBqizjgY3jgb/jgbLjgagNCivjgarjgorjgZ8s44Go44GX44GKDQor44Gu44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OBruOChCzjgZPjgYbjgY0NCivjgarjgYzjgYQs44G+44GV44GoDQor44Gq44GL44KA44KJLOOBjeOCiOOBlw0KK+OBq+OBhOOBmuOBvizjgZ/jgYvjgb8NCivjgarjgYvjgYzjgb8s44GX44KF44GG44GE44GhDQor44Gq44GM44GfLOOBjeOBl+OBig0KK+OBq+OBl+OBluOCjyzjga/jgaTjgYgNCivjga7jgZss44GY44KF44GG44KN44GGDQor44Gq44GM44GELOOChuOBjeOBig0KK+OBq+OBl+OBluOCjyzjgb7jgZXjgYoNCivjgarjgYvjga/jgZ8s44GL44Ga44Go44GXDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBoCzjgb7jgaTjgYoNCivjga7jgarjgYss44G+44GV44GNDQor44Gq44GL44GM44KPLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBl+OBvizjgZ/jgb/jgYoNCivjgarjgYvjgoLjgags44G+44GV44KLDQor44Gr44GX44GK44GLLOOBsuOCjeOBlw0KK+OBq+OBl+OBvuOBiCzjgZfjgpPjgZ/jgo3jgYYNCivjgarjgYvjgoDjgoks44G+44GV44GKDQor44Gq44GL44Gr44GXLOOBi+OBmuOBig0KK+OBruOBoCzjgoDjgaTjgoQNCivjgarjgYvjgoDjgoks44GC44GN44Gy44GTDQor44Gq44GL44GW44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OBq+OBl+OBoCzjgojjgZfjgo3jgYYNCivjgavjgZfjgaAs44Gf44Gg44KG44GNDQor44Gr44GELOOCiuOCh+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgbLjgajjgZcNCivjgarjgYvjgYbjgaEs44KE44GZ44GKDQor44Gq44GL44GY44G+LOOBi+OBmuOBn+OBiw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgb8NCivjga7jgoDjgoks44GP44Gr44Gy44GTDQor44Gr44GX44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBruOBquOBiyzjgZ/jgaDjgbLjgZMNCivjgavjgZfjgoDjgoks44Go44GX44Gy44GnDQor44Gr44GX44GKLOOBjeOCiOOBlw0KK+OBquOBjOOBiizjgY3jgojjgZcNCivjgavjgYTjgb8s44GR44KT44GYDQor44Gq44GL44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBreOBmuOBiyzjgojjgZfjga7jgooNCivjgarjgYvjgoDjgoks44KG44GN44Go44GXDQor44Gq44GL44GW44GoLOOBpuOBpOOChA0KK+OBguOBleOBrizjgZjjgoXjgpMNCivjga7jgYzjgb8s44GP44Gr44Gy44KNDQor44Gq44GL44GY44G+LOOBi+OBmuOBsuOBkw0KK+OBquOBhOOBqOOBhizjgYvjgZrjgYLjgY0NCivjgarjgYvjgoDjgoks44KI44GX44Gu44KKDQor44Gq44GL44Gr44GXLOOBjeOCiOOBguOBjQ0KK+OBquOBi+OBoCzjgZ/jgb/jgYoNCivjgarjgYzjgZXjgo8s44Gf44GL44GXDQor44Gq44GM44GuLOOBi+OBmuOChuOBjQ0KK+OBq+OBo+OBnyzjgobjgZ/jgYsNCivjgarjgpPjgbAs44G/44Gk44Gy44KNDQor44Gu44Ga44GILOOBj+OBq+OBv+OBpA0KK+OBquOBjOOBvyzjgbLjgo3jgZcNCivjgarjgYzjgYQs44GY44KF44KT44GE44GhDQor44Gq44GL44Gv44KJLOOBv+OBmuOBuw0KK+OBquOBi+OBmOOBvizjgZ/jgZHjgojjgZcNCivjgarjgYvjgZjjgb4s44GL44Gk44GKDQor44Gr44GX44GgLOOBguOBjeOBsuOBkw0KK+OBquOBiuOBhCzjgZfjgaHjgo3jgYYNCivjgarjgbnjgZfjgb4s44KI44GX44G+44GVDQor44Gq44GL44GuLOOBl+OCh+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjga/jgovjgYoNCivjga7jgaAs44G/44Gk44KI44GXDQor44Gq44GL44GbLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OBmOOBvizjgb/jgaTjgZfjgZINCivjgarjgYzjgZXjgo8s44Gf44Gg44GXDQor44Gr44G444GELOOBv+OBpOOCiA0KK+OBquOBjOOBhCzjgorjgofjgYbjgZnjgZENCivjgarjgYvjgZfjgb4s44Gf44GL44GKDQor44Gq44GL44GKLOOBm+OBhA0KK+OBquOBi+OBjOOCjyzjga7jgbbjgYoNCivjgarjgYTjgajjgYYs44GT44GG44GE44Gh44KN44GGDQor44Gu44GY44G+LOOChuOBhuOBmeOBkQ0KK+OBquOBjOOBrizjgobjgY3jgYoNCivjgavjgZfjgaAs44GL44Ga44GKDQor44Gq44GL44GgLOOBjeOCiOOBlw0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjga7jgZnjgZENCivjgarjgYvjgZjjgb4s44KA44Gt44Gf44GLDQor44Gt44KC44GoLOOBjeOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgarjgYzjgajjgoIs44G+44GV44G/DQor44Gq44GL44KA44KJLOOBsuOBqOOBvw0KK+OBquOBi+OChOOBvizjgojjgZfjgYoNCivjgarjgYvjgoDjgoks44G744Ga44G/DQor44Gq44GL44KA44KJLOOBteOBv+OBruOCig0KK+OBruOBmOOBvizjgabjgaTjgo3jgYYNCivjgarjgYzjgbXjgaEs44KE44GZ44KNDQor44Gq44GL44GuLOOBlOOBhOOBoQ0KK+OBq+OBl+OChOOBvizjgZfjgpPjgYTjgaENCivjgarjgYvjgoDjgoks44G+44GV44KG44GNDQor44Gq44GM44GX44G+LOOBquOBiuOBmA0KK+OBq+OCjyzjgobjgZ/jgYsNCivjgarjgYvjga4s44KE44GZ44GC44GNDQor44GK44Gr44GW44KPLOOChuOBjeOBig0KK+OBiuOBl+OBi+OBnyzjgb7jgZXjgYoNCivjgYrjgYss44GL44Gk44Gy44KNDQor44GK44GP44KE44G+LOOBruOBvOOCiw0KK+OBiuOBjSzjgZnjgb/jgYoNCivjgYrjgYvjgb/jgoQs44GR44KT44GYDQor44GK44GQ44KJLOOBvuOBleOBjQ0KK+OBiuOBiuOBpyzjgb7jgZXjga7jgooNCivjgYrjga7jgaAs44G+44GV44Gy44GTDQor44GK44GK44Gr44GXLOOBvuOBleOBjQ0KK+OBiuOBj+OBoCzjgY3jgofjgYbjgYTjgaHjgo3jgYYNCivjgYrjgY/jgaAs44Go44GX44GKDQor44GK44GM44KPLOOBk+OBhuOBmA0KK+OBiuOBrizjgb7jgZXjgYoNCivjgYrjgYrjgZnjgb8s44GT44GG44GYDQor44GK44GK44Gk44GLLOOBn+OBi+OBlw0KK+OBiuOBiuOBqOOCgizjgb7jgZXjgYLjgY0NCivjgYrjgYvjgZbjgY0s44KG44GG44GYDQor44GK44GK44Gv44GXLOOBsuOCjeOBlw0KK+OBiuOBjuOBrizjgbXjgb/jgYoNCivjgYrjgZXjgaAs44GX44Ga44GC44GNDQor44GK44GK44GwLOOBsuOBleOBlw0KK+OBiuOBl+OBvizjgYLjgoTjgZMNCivjgYrjgYrjgYvjgo8s44GL44Ga44KEDQor44GK44GL44KC44GoLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgajjgYrjgosNCivjgYrjga4s44GN44KI44GoDQor44GK44GL44GuLOOBqOOBiuOCiw0KK+OBiuOBluOCjyzjgobjgY3jgb7jgZUNCivjgYrjga/jgY8s44Gy44KN44GXDQor44GK44GX44Gf44GrLOOBn+OBi+OBlw0KK+OBiuOBluOCjyzjgbLjgo3jgZcNCivjgYrjgYrjga/jgZcs44Gf44GL44Gu44G2DQor44GK44GK44Gv44GfLOOBk+OBhuOBqOOBjw0KK+OBiuOBruOBp+OCiSzjgb/jgoQNCivjgYrjga4s44G144G/44GKDQor44GK44GK44GK44GLLOOBteOBmOOBkw0KK+OBiuOBiuOBrizjgojjgZfjga7jgooNCivjgYrjgYrjga/jgZcs44KG44Gf44GLDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBiuOCguOCiizjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgZfjgb4s44GTDQor44GK44GL44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBsuOCjeOBmyzjgajjgoLjgobjgY0NCivjgYrjgYrjgb/jgZos44KE44GZ44GKDQor44GK44GK44GuLOOBv+OBpOOBig0KK+OBiuOBoeOBguOBhCzjgb7jgZXjgbLjgZUNCivjgYrjgYvjgbks44Gf44GEDQor44GK44GK44Gf44GrLOOBguOBjeOBsuOCjQ0KK+OBiuOBj+OBrizjgZfjgZLjgYoNCivjgYrjgYrjgZnjgYws44GR44KT44GE44GhDQor44GK44GK44Gu44GNLOOBi+OBiuOCiw0KK+OBiuOBiuOBhOOBlyzjgZgNCivjgYrjgYvjgaAs44KC44Go44Gk44GQDQor44GK44GK44G/44KELOOChuOBjeOBsuOCjQ0KK+OBleOBn+OBkSzjgaTjga3jgYoNCivjgYrjgaDjgY4s44Gv44Gh44KN44GGDQor44GK44GK44GfLOOBleOBqOOCiw0KK+OBiuOBteOBoSzjgZ/jgaDjgojjgZcNCivjgYrjgYrjgYvjgo8s44GL44GK44KLDQor44GK44GL44GpLOOBleOBqOOCiw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgY0NCivjgYrjgY7jgZXjgo8s44KG44GN44Gy44KNDQor44GK44GL44G5LOOBguOBpOOBlw0KK+OBiuOBqOOCiOOBlyzjgbLjgafjgYoNCivjgYrjgYzjgo8s44Gf44Gk44KN44GGDQor44GK44KK44GM44GVLOOChOOBmeOBn+OBkQ0KK+OBiuOBiuOBsCzjgobjgY3jgZMNCivjgYrjgbDjgZ8s44Gf44GL44GXDQor44GK44GK44GuLOOBn+OBi+OCiOOBlw0KK+OBiuOBiuOBleOBiyzjgb7jgZXjgoQNCivjgYrjgYrjgb/jga0s44GR44KT44Ge44GGDQor44GK44GK44GfLOOCiOOBl+OBsuOBkw0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgYoNCivjgYrjgYrjgZPjgZcs44GX44GS44GNDQor44GK44GW44KPLOOBsuOBp+OBig0KK+OBiuOBi+OBuSzjgZHjgYTjgYTjgaENCivjgYrjgYrjgbzjgoks44GI44GE44GY44KN44GGDQor44GK44GK44GfLOOBmOOCh+OBhuOBhOOBoeOCjeOBhg0KK+OBiuOBluOBjSzjgZjjgoXjgpPjgYTjgaENCivjgYrjgY/jgaAs44KE44GZ44Gy44KNDQor44GK44GW44KPLOOBpuOCi+OBguOBjQ0KK+OBiuOBi+OBoCzjgZnjgZnjgoANCivjgYrjgYrjgaTjgYss44GT44GG44GYDQor44GK44Gu44Gn44KJLOOBk+OBhuOBhOOBoQ0KK+OBiuOBl+OBiizjgZ/jgaDjgZfjgZINCivjgYrjgaDjgZfjgb4s44Gf44Gg44GXDQor44GK44GW44GNLOOBl+OBkuOCiw0KK+OBvuOBiOOBoCzjgb/jgaTjgYoNCivjgYrjgY0s44G+44GV44GKDQor44GK44Gu44GgLOOBqOOBjeOBiA0KK+OBiuOBquOBjizjgYLjgY3jgokNCivjgYrjgY/jgaAs44KI44GX44GN44KIDQor44GK44GK44Gy44KJLOOBm+OBpOOBmA0KK+OBiuOBruOBluOCjyzjgajjgZfjgbLjgZMNCivjgYrjgY7jga/jgoks44GP44Gr44GC44GNDQor44GK44GK44GP44G+LOOBi+OBmuOBig0KK+OBiuOBiuOBr+OCiSzjga7jgbbjgbLjgo0NCivjgYrjgY0s44GL44Gk44GZ44GRDQor44GK44GM44KPLOOBn+OBpOOChA0KK+OBiuOBiuOChCzjgbLjgafjgbsNCivjgYrjgYrjgZXjgo8s44GV44G244KN44GGDQor44GK44GK44Gv44KJLOOBsuOCjeOCiOOBlw0KK+OBiuOBoCzjgZ/jgYvjgZMNCivjgYrjgZbjgo8s44G/44Gk44GKDQor44GK44GM44GfLOOCiuOCh+OBhuOBmeOBkQ0KK+OBiuOBi+OBrizjgYLjgY3jgZMNCivjgYrjgYrjgYTjgZcs44GX44G+DQor44GK44Gq44GELOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBpOOBiyzjgZjjgoXjgpPjgZMNCivjgYrjgYrjgaTjgYss44Gm44Gk44GKDQor44GK44GE44GnLOOCiOOBl+OBguOBjQ0KK+OBiuOBjeOChOOBvizjgYvjgZrjgZMNCivjgYrjgZDjgZcs44GC44GR44G/DQor44GK44GgLOOChOOBmeOBlw0KK+OBiuOBi+OBsOOChOOBlyzjgZ/jgaDjgbLjgo0NCivjgYrjgYrjgZ/jgass44GY44KF44KT44GYDQor44GK44GK44Gk44GNLOOBguOChuOBvw0KK+OBiuOBi+OBoCzjgbLjgo3jgZcNCivjgYrjgYrjgZnjgb8s44Gh44Gv44KLDQor44GK44GK44GE44GM44KPLOOBn+OBi+OBr+OCiw0KK+OBiuOBi+OBoCzjgZnjgZnjgoANCivjgYrjgZbjgo8s44GL44Ga44Gy44GTDQor44GK44GK44Gf44GrLOOBpuOBpOOCjeOBhg0KK+OBiuOBluOBjSzjgbLjgo3jgobjgY0NCivjgYrjgYrjgZ8s44G+44GV44GTDQor44KE44Gq44GO44KELOOChuOBi+OCig0KK+OBquOBi+OBn+OBqyzjgZfjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gy44Gn44GXDQor44G/44GP44GrLOOCiOOBl+OBsuOCjQ0KK+OBmeOBmuOBjSzjgZjjgoXjgpPjgYTjgaENCivjga/jgaDjga4s44KG44GN44G+44GVDQor44G/44KE44G+LOOBi+OBiuOCig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgagNCivjgZfjgonjgYrjgYzjgo8s44KJ44GE44GfDQor44Gq44GL44KA44KJLOOBguOBneOBiw0KK+OBvuOBpOOBluOBjSzjgY3jgYTjgaHjgo3jgYYNCivjgoTjgb7jgZfjgZ8s44Gf44GL44KI44GXDQor44GX44KC44KE44G+LOOBl+OBkuOCiw0KK+OBteOBn+OCgOOCiSzjga7jgbbjgobjgY0NCivjgY/jgo8s44Gf44GL44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OBv+OBpA0KK+OCiOOBk+OChOOBvizjgbLjgo3jgYLjgY0NCivjgbLjgovjgb4s44KG44GN44GTDQor44Gf44Gh44GL44KPLOOBquOBiuOBvw0KK+OCj+OBi+OBsOOChOOBlyzjgabjgovjgb8NCivjgZ/jgYvjga/jgZ8s44Go44KCDQor44GC44G5LOOBiOOBv+OBkw0KK+OBm+OBjSzjgorjgoXjgYbjgZQNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44KE44G+44GtLOOCiOOBl+OBsuOCjQ0KK+OBn+OBluOCjyzjgZjjgoXjgpPjgZgNCivjgYvjgZjjgYvjgo8s44GC44GV44GTDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OBhuOBoSzjgb7jgorjgYgNCivjgYrjgYrjgoTjgb4s44Gu44G244GTDQor44GX44KT44G/44KH44GGLOOBmOOCheOCk+OBkw0KK+OBn+OBoeOCj+OBoCzjgarjgYrjgb8NCivjgYrjgYrjgY/jgbws44Gm44Gk44KEDQor44Go44GG44GU44GGLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBj+OCiSzjgZ/jgYvjga/jgosNCivjgYTjgajjgYYs44GR44KT44Gd44GGDQor44KE44G+44GW44GNLOOBm+OBhA0KK+OBi+OBluOBvizjga/jgovjgobjgY0NCivjgYvjgpPjgbDjgoTjgZcs44Gy44Gn44GKDQor44GV44GV44GuLOOCgeOBhOOBkw0KK+OBi+OCj+OBl+OBvizjgb/jgobjgY0NCivjgZfjgpPjgZDjgYYs44Gu44KK44GC44GNDQor44GT44GE44Ga44G/LOOBn+OBj+OChA0KK+OBi+OBreOBkyzjgojjgZfjgb8NCivjgZPjgbDjgoTjgZcs44GZ44GI44Gk44GQDQor44GL44KC44GX44GfLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OCgOOCiSzjgZXjgaHjgogNCivjga/jgZvjgYzjgo8s44Gf44GL44GXDQor44GP44KK44Gv44KJLOOBsuOCjeOBteOBvw0KK+OBi+OBquOBiuOBiyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44KG44GN44Gf44GLDQor44Gy44GE44GXLOOBn+OBi+OChuOBjQ0KK+OBq+OBuOOBhCzjgYTjgY/jgZMNCivjgb7jgovjgZ8s44Gq44GK44GTDQor44Go44GK44KE44G+LOOBquOBvw0KK+OBm+OBjeOBluOCjyzjgaHjgYsNCivjgYLjgorjgb4s44KE44KI44GEDQor44GP44KK44Gv44KJLOOBqOOCguOBiA0KK+OBmeOBv+OBrizjgb/jga7jgosNCivjgojjgZfjgaAs44Gy44Gn44GNDQor44GN44Gu44GX44GfLOOBqOOCguOBkw0KK+OBiuOBoeOBguOBhCzjgb/jgobjgY0NCivjgYbjgb7jgoTjga/jgoks44KE44GZ44G/DQor44G744Gd44GL44KPLOOBsuOCjeOBkw0KK+OBteOBi+OBjOOCjyzjgZfjgpPjgZgNCivjgYvjgo/jgoDjgoks44GI44GE44Ge44GGDQor44G+44Gk44GELOOBkeOBhOOBkw0KK+OCiOOBl+OCguOBqCzjgZ/jgYvjgbLjgo0NCivjgYbjgarjgYvjgb8s44Go44KC44GTDQor44GL44Gt44G+44GkLOOBleOBjeOBkw0KK+OBi+OCj+OBi+OBvyzjgb7jgZPjgagNCivjgajjgojjgaAs44Gy44Gn44GKDQor44KE44GuLOOBguOBjeOBsuOBkw0KK+OBm+OBjSzjgZ/jgYvjgYLjgY0NCivjgarjgYvjgavjgZcs44Gy44Go44GXDQor44Gv44GX44KC44GoLOOBguOBjQ0KK+OBteOBi+OChCzjgY/jgavjgYLjgY0NCivjgb/jgoTjgoLjgags44Gy44Gn44GP44GrDQor44Gf44GR44GgLOOBqOOBl+OBteOBvw0KK+OBv+OChOOBluOCjyzjgb/jgY3jgYoNCivjgYTjgZHjgaAs44GL44Ga44Gy44GTDQor44GK44GX44G+LOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgYjjgorjgZMNCivjgZTjgajjgYYs44KG44GG44GE44Gh44KN44GGDQor44GG44GX44GU44KBLOOBsuOCjeOBlw0KK+OBj+OCj+OChOOBvizjgbLjgo3jgYLjgY0NCivjgaTjgYvjgaAs44Gh44Gv44KLDQor44KA44KJ44GfLOOBoeOBi+OBig0KK+OBleOBqOOBhizjgojjgZfjgZ/jgYsNCivjgY/jgo3jgaAs44GL44GK44KKDQor44GZ44GO44KC44GoLOOBj+OBq+OBig0KK+OChOOBmeOBoCzjgZPjgYbjgYTjgaENCivjgY3jgYbjgaEs44GV44Go44GXDQor44GR44Gp44GG44GE44KTLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgaHjgYsNCivjgarjgYvjgoDjgoks44Gy44KN44GC44GNDQor44GP44KK44Gv44KJLOOBqOOCiOOBsuOBkw0KK+OBn+OBjeOBluOCjyzjgYvjgZrjga7jgooNCivjgYbjgYjjgaAs44Gy44Gn44GC44GNDQor44GT44G5LOOBsuOBp+OBguOBjQ0KK+OBruOBkOOBoSzjgbXjgb/jgYoNCivjgZPjgpPjga4s44Go44KC44Gy44GTDQor44Go44G/44GfLOOBi+OBquOCgQ0KK+OBiuOBiuOBnyzjgobjgY3jgZMNCivjgb7jgY0s44Gy44GL44KLDQor44GC44G+44GuLOOBkeOCk+OBhOOBoeOCjQ0KK+OBk+OBv+OBrSzjgYLjgY3jgbLjgo0NCivjgZXjgajjgYYs44Go44KC44KEDQor44GE44G+44GnLOOChuOBhuOBmA0KK+OBvuOBpOOBquOBjCzjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44G+44Gk44GKLOOBi+OBiA0KK+OBleOBhOOBqOOBhizjgY3jgofjgYbjgYTjgaENCivjgojjgZfjgZbjgo8s44KP44Gf44KLDQor44GG44KE44G+LOOBkeOBhOOBkw0KK+OBguOCk+OBqeOBhizjgb7jgZXjgbLjgZMNCivjgZnjgZrjgY0s44GV44Go44GXDQor44KI44GX44GgLOOBi+OBmuOBqOOBlw0KK+OBi+OCj+OBoCzjgYjjgb/jgZMNCivjgbXjgY/jgaAs44GR44GEDQor44KC44KK44GX44G+LOOBvuOBleOBlw0KK+OBpOOBoeOBoCzjgajjgYrjgosNCivjgZXjgYvjgYQs44G/44Gh44KE44GZDQor44Gk44GL44GgLOOBguOBpOOBlw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jgZcNCivjgZ/jgoDjgoks44GT44GG44GYDQor44KP44Gf44Gq44G5LOOBquOBiuOBjQ0KK+OBk+OBmeOBjizjgZ/jgYvjgYLjgY0NCivjgbLjgonjgZ8s44GR44GE44GfDQor44GZ44GO44KE44G+LOOCiOOBl+OChuOBjQ0KK+OCguOCiuOBi+OCjyzjgoLjgajjga/jgosNCivjgYvjganjgZ8s44GC44GN44Gy44KNDQor44GV44GuLOOBsuOCjeOBlw0KK+OBiuOBluOBjSzjgabjgaTjgYoNCivjgojjgZPjgb7jgaQs44GL44Gk44Gy44GVDQor44Gf44Gq44GLLOOChuOBv+OBkw0KK+OBhOOBl+OBleOBiyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYTjgZfjgZbjgo8s44KG44Ga44GNDQor44GT44Gw44KE44GXLOOBmOOCheOCkw0KK+OCiOOBl+OBoCzjgajjgoLjgYLjgY0NCivjgY3jgoDjgoks44KK44GI44GTDQor44GK44GK44Gk44GLLOOBn+OBkeOCiw0KK+OBguOBoOOBoSzjgZ/jgYvjgZcNCivjgYLjgYvjgZXjgYss44GX44KH44GG44GYDQor44G/44KE44KC44GoLOOBv+OBqeOCig0KK+OBhOOBoeOCgOOCiSzjgYvjgYrjgooNCivjgYrjgZfjgZ8s44Gu44G244KG44GNDQor44G744KT44GgLOOBiuOBleOCgA0KK+OBi+OChOOBrOOBvizjgZPjgYbjgZgNCivjga7jgZbjgY0s44KG44GG44GYDQor44GL44Gp44KP44GNLOOBteOBmOOBiA0KK+OBiuOBmCzjgoTjgZnjgbLjgo0NCivjgZ/jgZDjgaEs44KE44GZ44Gk44GtDQor44Gf44GR44GE44GXLOOBguOBjeOBqA0KK+OBsuOCieOBhCzjgZfjgpPjgZgNCivjgYvjgarjgZbjgo8s44GY44KF44KT44GE44GhDQor44G144KL44GL44KPLOOBiOOCiuOBiw0KK+OCguOCiuOBquOBiyzjgb7jgZXjgogNCivjgYLjgonjgYQs44Go44GX44GC44GNDQor44Gf44Gq44GLLOOCiOOBl+OBruOCig0KK+OBl+OBv+OBmizjgojjgZfjgobjgY0NCivjgYTjgaHjga/jgoks44G+44GV44KLDQor44GN44Gf44Gu44Gv44KJLOOBsuOBp+OBsuOCjQ0KK+OBjeOBn+OBiizjgajjgoLjgbLjgagNCivjgoLjgorjgoLjgags44Gy44Gn44GNDQor44GN44Gf44KA44KJLOOCiuOBi+OBkw0KK+OBleOBleOBluOCjyzjgZ/jgZHjgZcNCivjgb7jgaTjgYrjgYss44Gq44GK44GTDQor44GT44GG44KJLOOBn+OBi+OBsuOCjQ0KK+OBv+OCjyzjgbLjgo3jgZMNCivjgojjgZfjgYrjgYss44Gy44KN44GTDQor44G744KKLOOChuOBv+OBkw0KK+OBleOBhOOBqOOBhizjgojjgZfjgbLjgagNCivjgarjgYzjgZss44Gy44Gn44Gv44KLDQor44KC44KK44GX44G+LOOBsuOCjeOBiw0KK+OBiuOCj+OCiizjgb7jgY3jgZMNCivjgZ/jgarjgYss44G/44GNDQor44Gm44KJ44KA44KJLOOBqOOBl+OBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgY3jgofjgYbjgZ7jgYYNCivjgZXjgYTjgajjgYYs44Gy44KN44Gu44KKDQor44GN44KA44KJLOOBn+OBkeOBlw0KK+OBr+OBl+OCguOBqCzjgojjgZfjgbLjgZUNCivjgarjgYvjgYzjgo8s44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOBvuOBleOBiuOBjQ0KK+OBr+OBjuOCj+OCiSzjgY/jgavjgbLjgZMNCivjgavjgZfjgYvjgo8s44Go44KC44G/DQor44GN44Gf44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBhuOCiSzjgoTjgZnjgYoNCivjgYLjgZXjgaAs44Gy44Gn44KIDQor44GN44Gf44Ga44KBLOOBguOCieOBnw0KK+OBreOCguOBqCzjgo/jgYvjgZMNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44Gf44Gq44GLLOOBi+OBmuOBsuOCjQ0KK+OBguOBoOOBoSzjgYvjgZrjgbLjgZMNCivjga/jgoks44G+44GV44KG44GNDQor44GC44GL44G+44GkLOOBkeOCk+OBlA0KK+OBhOOBvuOCgOOCiSzjgYLjgaTjgZcNCivjgoDjgonjgoTjgb4s44KI44GG44GYDQor44Gf44GR44GG44GhLOOBn+OBi+OChuOBjQ0KK+OBmuOBlyzjgoTjgZnjgYoNCivjgZPjgbDjgoTjgZcs44GL44G7DQor44KE44G+44GW44GNLOOBguOBpOOBkw0KK+OBr+OBvuOBkOOBoSzjgZ3jgYbjgYTjgaENCivjgYvjgZLjgoTjgb4s44Gy44KN44KG44GNDQor44GL44Gq44KC44KKLOOBsuOBp+OBjQ0KK+OBi+OBqOOCiizjgaTjgojjgZcNCivjgYLjgonjgYQs44GX44KH44GG44G444GEDQor44G/44KE44GfLOOBvuOCiuOBkw0KK+OBmeOBmuOBjSzjgYjjgb/jgZMNCivjga/jgovjgZ8s44Gy44Gn44KEDQor44Gq44GL44GW44KPLOOBn+OBi+OBlw0KK+OBmeOBjCzjgb7jgZXjgobjgY0NCivjgb7jgYjjgafjgoks44Gm44KL44KG44GNDQor44GC44KJ44G+44GNLOOBguOBpOOBlw0KK+OBjeOBn+OBrizjgZ/jgaTjgoQNCivjgojjgZfjga4s44GX44GS44G/44GkDQor44G/44GP44KK44KELOOCiOOBhuOBkw0KK+OBiuOBj+OBruOBjizjgZHjgpPjgZgNCivjgZXjgY/jgonjgYQs44KI44GX44GL44GkDQor44GT44KT44GpLOOBquOBig0KK+OBmeOBmuOBjSzjga7jgorjgZMNCivjgY/jgorjga/jgoks44GP44G/44GTDQor44KA44GT44GG44GQ44GhLOOBvuOBjQ0KK+OBteOBmOOBhCzjgYLjgY3jgbLjgo0NCivjgYvjgZIs44KG44GG44GTDQor44G+44GI44GgLOOBruOBtuOChA0KK+OBquOBjOOBu+OCiizjgobjgY3jgZMNCivjgaTjgZgs44KC44KC44GTDQor44GN44KA44KJLOOBl+OCk+OBn+OCjeOBhg0KK+OBvuOBpOOBiizjgZPjgYbjgYTjgaENCivjgZ/jgabjga4s44Gu44KK44KI44GXDQor44GN44KA44KJLOOBvuOBk+OBqA0KK+OBmeOBluOBjSzjgZ/jgaTjgoQNCivjgYTjgo/jgZXjgY0s44G/44KE44GzDQor44GV44Go44GGLOOChuOCig0KK+OBq+OBo+OBnyzjgaDjgYTjgYvjgpMNCivjgZ/jgarjgYss44G+44KKDQor44GX44G+44GgLOOBguOBi+OBrQ0KK+OBn+OBq+OBkOOBoSzjga7jgorjgZMNCivjgbvjgpPjgaAs44GZ44Gq44GKDQor44Gq44GL44Gf44GrLOOBn+OBi+OBlw0KK+OBv+OChOOBmOOBvizjgZfjgoXjgpMNCivjgY/jgY3jgoTjgb4s44GT44GG44GYDQor44Gb44GN44GtLOOCiuOCh+OBhuOBn+OCjeOBhg0KK+OCiOOBl+OBr+OCiSzjgZXjgajjgosNCivjgbLjgonjgZ8s44G+44GV44GL44GaDQor44Gq44GM44GV44KPLOOBqOOBl+OBig0KK+OBquOBi+OBjOOBjSzjgZHjgYTjgZMNCivjgY/jgo3jgYvjgo8s44KE44GZ44KG44GNDQor44GL44GR44Gf44KKLOOBkeOCk+OBmOOCjeOBhg0KK+OBhOOBqOOBhizjgYvjgojjgZMNCivjgb7jgYjjgYvjgo8s44GY44KF44KT44GYDQor44G+44Gk44GgLOOBguOBjeOBig0KK+OBj+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgYTjgYTjgZrjgYss44KP44GL44GTDQor44G+44GY44G+LOOBsuOBp+OChuOBjQ0KK+OCgOOCieOBnyzjgajjgoLjgZMNCivjgYLjgY3jgYTjgZEs44KG44GG44GE44GhDQor44Gq44G/44GNLOOBpuOBpOOChA0KK+OCiOOBl+OBrizjgb/jgY3jgZMNCivjgZnjgZrjgY0s44KG44GNDQor44Gf44KA44KJLOOBv+OBqeOCig0KK+OBi+OCgeOBoCzjgZfjgpPjgoQNCivjgavjgZcs44KE44GZ44GXDQor44GE44Gq44GK44GLLOOBkeOCk+OBmA0KK+OBhOOCj+OBleOBjSzjgobjgYbjgZgNCivjgYvjgpPjgaAs44Gq44G/DQor44Gf44GgLOOBiOOBhOOBjQ0KK+OBhuOBpCzjgajjgoLjgYLjgY0NCivjgZfjgb7jgaAs44G+44GV44GKDQor44KI44GX44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBj+OBjOOCjyzjgojjgZfjgbXjgb8NCivjgZnjgZrjgY0s44GR44GE44GTDQor44Gf44KT44G9LOOBv+OBreOBkw0KK+OCj+OBoCzjgarjgYrjgZMNCivjgYbjgovjgZfjga/jgoks44GI44GE44GZ44GRDQor44GE44GE44GKLOOBn+OCjeOBhg0KK+OBq+OBhOOBr+OCiSzjgY3jgofjgYbjgZMNCivjgYrjgoDjgoks44Gf44GP44KEDQor44GE44Gu44GG44GILOOBnOOCk+OBmOOCjeOBhg0KK+OCguOCiuOBquOBjCzjgajjgZfjgbLjgo0NCivjgZXjga4s44Gy44KN44GXDQor44Gq44GL44Gf44GrLOOBvuOBleOChOOBmQ0KK+OBguOBuSzjgb7jgZXjgarjgYoNCivjgYbjgaHjgaAs44GR44KT44GYDQor44Gy44KN44GfLOOChuOBhuOBleOBjw0KK+OBhOOCj+OBj+OCiSzjgYvjgYTjgZjjgo3jgYYNCivjgYTjgZfjgYrjgYss44Gy44Gn44GC44GNDQor44Go44GN44GfLOOBquOBpOOBkw0KK+OBjeOBruOBl+OBnyzjgarjgYrjgZnjgZENCivjgb/jgZrjga4s44GC44GE44GTDQor44KE44GZ44GILOOBvuOBleOBvw0KK+OBhOOCj+OCguOBqCzjgZXjgajjgosNCivjgoTjgb7jgZgs44KG44GL44KKDQor44GT44GV44GELOOChuOBhuOBkw0KK+OBj+OBvCzjgajjgZfjgYgNCivjgaHjgbAs44Gy44GL44KLDQor44KE44Gk44Gf44GrLOOBguOBpOOBlw0KK+OBhOOBjOOCieOBlyzjgZ/jgYvjgZrjgb8NCivjgYLjgonjgYvjgo8s44GC44GL44GtDQor44Gm44KJ44GV44GNLOOCguOBqOOBguOBjQ0KK+OBm+OBlOOBiCzjgZXjgajjgZMNCivjgajjgY/jgZfjgb4s44G+44GV44GTDQor44Gw44KT44Gp44GGLOOBl+OCh+OBhuOBkw0KK+OBn+OBjeOBluOCjyzjgZHjgpPjgZgNCivjgb/jgZrjgZXjgY0s44GR44KT44Gf44KN44GGDQor44Gf44GN44GQ44GhLOOBkeOBhA0KK+OBsuOBiuOBjSzjgb7jgZXjgZcNCivjgarjgYvjgYQs44GC44Gk44G/DQor44GK44GE44GL44KPLOOCjOOBhOOBkw0KK+OBvuOBpOOCgOOCiSzjgaHjgZDjgZUNCivjgYjjgpPjgaks44KI44GX44GKDQor44Gf44GY44G+LOOBleOBqOOBkw0KK+OChOOBvuOBluOBjSzjgYjjgYTjgZgNCivjgZvjga7jgYos44GT44GG44GYDQor44Gv44KJ44GgLOOBqOOBl+OBvuOBlQ0KK+OBteOBj+OBhCzjgajjgoLjgYsNCivjgb7jgaTjgYbjgoks44GR44GEDQor44GL44KP44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBpuOCieOCguOBqCzjgZ/jgYvjgb/jgaENCivjga/jgY7jgo/jgoks44Gf44GP44G/DQor44Gq44GL44GX44G+LOOBiOOBv+OBkw0KK+OBjeOBruOBl+OBnyzjgb/jgaHjgYoNCivjgYLjgonjgYQs44Gh44Ga44KLDQor44KA44KJ44KE44G+LOOBmOOCheOCk+OBkw0KK+OBleOBiOOBkOOBlSzjgajjgoLjgb8NCivjgZ/jgarjgYss44G/44Gk44GTDQor44G+44GI44GgLOOBiuOBleOCgA0KK+OBv+OChOOBluOBjSzjgYvjgZrjgb8NCivjgYTjgZHjgbks44GC44GN44KJDQor44GP44KP44Gw44KJLOOBn+OBi+OBruOCig0KK+OCiOOBoCzjgZ/jgYvjgYoNCivjgZ/jgaHjgbDjgaos44KE44GZ44GC44GNDQor44KE44G+44GQ44GhLOOCiOOBl+OBguOBjQ0KK+OBhOOBl+OBr+OCiSzjgZHjgYTjgZMNCivjgZ/jgY3jgZbjgo8s44G+44GV44GC44GNDQor44Gy44KJ44GuLOOCiOOBl+OBtuOBvw0KK+OBi+OCj+OBleOBjSzjgZ/jgYvjgojjgZcNCivjgoTjgb7jgoLjgags44Gy44GV44Go44GXDQor44GC44KJ44GbLOOBguOBpOOBlw0KK+OChOOBquOBjuOBleOCjyzjgb7jgZXjga7jgbYNCivjgZfjgYrjgoQs44GC44GN44GIDQor44GV44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBqOOBhizjgbLjgajjgb8NCivjgYrjga4s44KI44GX44Gf44GLDQor44GN44Gf44Gv44G+LOOChOOBmeOBvuOBlQ0KK+OBlOOBqOOBhizjga7jgorjgZMNCivjgavjga7jgb/jgoQs44G+44KG44G/DQor44GG44GZ44GELOOBqOOCguOBruOCig0KK+OBv+OBmuOBl+OBvizjgZ/jgZHjgosNCivjgZnjganjgYYs44G+44GT44GoDQor44GE44GR44GgLOOBguOBjeOBkw0KK+OBquOBi+OBsuOBjOOBlyzjgYLjgorjgZfjgZINCivjgY/jgorjgoLjgags44KN44KP44KLDQor44Go44GgLOOBsuOCjeOBn+OBiw0KK+OBr+OBi+OBvuOBnyzjgYLjgaTjga7jgbYNCivjgZ/jgavjgZDjgaEs44Gv44KL44G/DQor44GE44G+44Gc44GNLOOBhOOBj+OBkw0KK+OBu+OCiuOBiizjgb7jgobjgb8NCivjgYvjgZnjgYws44Gk44KI44GXDQor44GL44KP44GbLOOBquOBiuOBkw0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZ/jgYvjgarjgZcs44Gu44G244GC44GNDQor44G+44Gk44GX44GfLOOBn+OBi+OBlw0KK+OChOOBkOOBoSzjgbLjgafjgY0NCivjgYvjga3jgZMs44GL44Ga44KG44GNDQor44Gy44Gg44GLLOOBv+OBig0KK+OBleOBo+OBlSzjgZ/jgYTjgaENCivjgZ3jgYws44Gf44GP44KEDQor44GZ44GO44GG44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBleOBqOOBhizjgYLjgb/jgZMNCivjgZ/jgavjgbDjgoTjgZcs44GV44Gh44GTDQor44Gr44GX44GK44GLLOOBn+OBi+OBlw0KK+OBqOOCguOBquOBjCzjgarjgYrjgY0NCivjgYrjgYrjga/jgZcs44Gy44Gn44GNDQor44Gq44GM44GX44G+LOOBm+OBhOOBnw0KK+OBn+OBq+OBjOOBjSzjgZvjgYTjgZMNCivjgZPjgYbjgaAs44GT44G/44GqDQor44GN44KI44GuLOOBleOBqOOBlw0KK+OChOOBvuOBi+OCjyzjgajjgZfjgYoNCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44KC44Gm44GOLOOBk+OBhuOBmA0KK+OBiuOBiuOBrOOBvizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GX44GS44GKDQor44G144KL44GE44GILOOCiOOBl+OBkw0KK+OBguOBhOOCguOBqCzjgoLjgajjgbXjgb8NCivjgojjgZPjgYos44GP44Gr44GKDQor44Gr44GX44GL44KPLOOBkeOCk+OBmA0KK+OBs+OBqOOBhizjgojjgZfjgarjgYwNCivjgY3jgZ/jgoDjgoks44GX44KT44KEDQor44KE44G+44GL44KPLOOBleOBoOOBr+OCiw0KK+OBqOOBv+OBnyzjgZ/jgZHjgZcNCivjgaTjgaHjgaAs44Gy44Gn44GoDQor44GE44GX44GQ44KNLOOCiuOBiA0KK+OBvuOBpOOBiizjgajjgYrjgosNCivjgYbjgYjjgoLjgags44GT44GG44GE44Gh44KN44GGDQor44GE44GE44GgLOOBv+OBjeOBkw0KK+OBmeOBmuOBjSzjgZfjgZLjgbLjgo0NCivjgZ/jgoDjgoks44GL44Ga44KI44GXDQor44GK44GP44GgLOOBruOBvOOCiw0KK+OBu+OCiizjgojjgZfjgb8NCivjgY/jgZXjgaTjgZAs44KE44GZ44GXDQor44KE44G+44GgLOOBvuOBleOBquOBig0KK+OBguOBleOBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgajjgY/jgaAs44G+44KT44Gq44KKDQor44GE44Gn44GfLOOCiOOBl+OBsuOCjQ0KK+OBhOOBqOOBhizjgabjgovjgb/jgaENCivjgZXjgajjgYYs44GN44GE44Gh44KN44GGDQor44Gk44GY44GV44KPLOOBkeOBhA0KK+OBiuOBrizjgZPjgYbjgZgNCivjgYTjgo/jgb4s44Gu44G244GC44GNDQor44Gg44GE44GU44GPLOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOCgOOCiSzjgojjgZfjgYvjgZoNCivjga/jgZvjgYzjgo8s44Go44GX44GL44GaDQor44GE44GOLOOBn+OBi+OBsuOCjQ0KK+OBvuOBi+OBuSzjgb7jgZXjgYvjgaQNCivjgYrjgYvjgoLjgags44GL44Gk44GKDQor44GK44GK44Gv44KJLOOChuOBjeOBquOBig0KK+OBm+OBjeOChOOBvizjgYvjgZrjgYoNCivjgY3jgZ/jgZjjgb4s44Gy44KN44GC44GNDQor44Go44KK44GG44G/LOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBluOBjSzjgZ/jgabjgYoNCivjgYbjgYQs44KI44GX44Gy44GoDQor44GP44KJ44KC44GhLOOBi+OBmuOBsuOCjQ0KK+OBl+OBiuOBrOOBvizjgbLjgafjgajjgZcNCivjgonjgYTjgZ8s44GE44GP44GKDQor44GX44KC44GT44GG44G5LOOBruOBtuOBi+OBmg0KK+OBleOCj+OBrizjgabjgovjgYoNCivjgZXjgYvjgavjgZcs44KG44GG44GYDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBm+OBhOOBrizjgZHjgYTjgZ7jgYYNCivjgZnjgZrjgY0s44GC44GN44KI44GXDQor44GV44GL44KC44GoLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgZfjgo3jgYYNCivjgZXjgo/jga4s44GL44Gk44KEDQor44GX44GMLOOBpuOBpOOChA0KK+OBlOOBqOOBhizjgajjgY/jgb7jgZUNCivjgZnjgaAs44GY44KF44KT44GYDQor44GZ44Ga44GNLOOCiOOBl+OBkw0KK+OBleOBi+OBjeOBsOOCiSzjgajjgZfjgYoNCivjgZXjgajjgYYs44GR44KT44GYDQor44GV44GL44GQ44GhLOOCiOOBl+OBruOCig0KK+OBmeOBjuOBleOBjSzjgb/jgaTjgY/jgasNCivjgZnjgYjjgY0s44Gf44GL44GXDQor44GZ44Ga44GNLOOBruOBtuOBguOBjQ0KK+OBl+OBsOOBnyzjgZPjgajjgZgNCivjgZnjgY7jgoTjgb4s44Gf44Gg44GKDQor44GV44GL44GELOOBvuOBleOChuOBjQ0KK+OBl+OBv+OBmizjgZ/jgaDjgZcNCivjgZnjgY7jgoLjgags44Go44GX44GKDQor44GV44Go44GGLOOBn+OBj+OBmA0KK+OBm+OBjSzjgYrjgZXjgoANCivjgZXjgY/jgonjgYQs44Gv44KL44KG44GNDQor44Gb44GN44GQ44GhLOOBk+OBmeOBkQ0KK+OBleOBqOOBhizjgYjjgYTjgZgNCivjgZnjgZrjgY0s44KG44GG44Gu44GZ44GRDQor44GV44GE44Go44GGLOOBn+OBoOOBig0KK+OBm+OBjeOBrSzjgajjgojjgbXjgb8NCivjgZnjgZrjgY0s44Gk44Go44KADQor44GE44GE44GgLOOBjeOCiOOBn+OBiw0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZXjgZXjgY0s44G/44Gk44GKDQor44GZ44GI44Gq44GMLOOBqOOBl+OBig0KK+OBleOBi+OCguOBqCzjgbLjgafjgYLjgY0NCivjgZXjgYTjgajjgYYs44G+44GV44G/DQor44GZ44GM44GKLOOBpuOBpOOBmA0KK+OBl+OBvuOBmizjgb/jga7jgosNCivjgZXjgYTjgajjgYYs44G144G/44GKDQor44GX44Gu44GW44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgojjgZfjgobjgY0NCivjgZnjgarjgYws44GR44KTDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgZHjgYTjgZ/jgo3jgYYNCivjgZvjgY3jga0s44GV44Gg44Gu44KKDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOCj+OBoCzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44GL44Ga44GKDQor44GX44KC44Ge44GuLOOBn+OBoOOBsuOBkw0KK+OBmeOBiCzjgZ/jgYvjgZcNCivjgZXjganjgajjgoIs44GC44GN44KJDQor44Gb44GN44GtLOOBkeOCk+OBmeOBkQ0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZXjgpPjgZQs44KI44GX44Gu44G2DQor44GZ44Gp44GGLOOBj+OBq+OBguOBjQ0KK+OBneOBruOBoCzjgarjgYrjgb8NCivjgZfjgb4s44G/44Gu44KLDQor44GV44Go44GGLOOCiOOBreOBnuOBhg0KK+OBleOBqOOBhizjgajjgb/jgYoNCivjgZfjgbbjgoQs44GL44Ga44GC44GNDQor44GV44Go44GGLOOBi+OBmuOBig0KK+OBleOBqOOBhizjgabjgovjgbLjgZMNCivjgZXjgYvjgZ8s44KI44Gt44GKDQor44GV44GE44Go44GGLOOBiuOBleOCgA0KK+OBmeOCj+OBjSzjgZ/jgYvjgZcNCivjgZ3jgoos44Gf44GR44GYDQor44GV44GL44KC44GoLOOBl+OCheOCk+OBhOOBoQ0KK+OBl+OCieOBhOOBlyzjgb7jgZXjgajjgZcNCivjgZnjgZrjgY0s44GC44GN44GKDQor44GX44G+44GgLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44KI44GX44GKDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgZXjgajjgYYs44Gk44Go44KADQor44GX44GS44G+44GkLOOBjeOCiOOBlw0KK+OBleOBjOOCiSzjgZ/jgYvjgajjgZcNCivjgZXjgYTjgajjgYYs44KG44GN44GKDQor44GX44KT44GQ44GGLOOBn+OBi+OBig0KK+OBmeOBjOOBrOOBvizjgabjgovjga7jgbYNCivjgZ3jgYws44Gf44GR44GXDQor44GV44GV44GNLOOBruOBtuOChuOBjQ0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgZXjgo/jgaAs44Gm44Gk44GKDQor44Gd44G+LOOBiuOBleOCgA0KK+OBl+OBsOOBnyzjgZ/jgZHjgYoNCivjgZXjgajjgYYs44G/44Gh44GTDQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBl+OBvuOBoCzjgbLjgafjgYoNCivjgZXjgZXjgY0s44Gu44G244GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBhOOBqOOBhizjgZfjgZLjgosNCivjgZfjgoLjgacs44Gy44Gn44GNDQor44GV44GV44GNLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgojjgYYNCivjgZXjgajjgYYs44Gy44GV44GKDQor44GV44KP44GgLOOBl+OCk+OBhOOBoQ0KK+OBl+OCjeOBleOBjSzjgojjgYbjgYTjgaENCivjgZfjgbDjgYQs44GZ44GZ44KADQor44GV44GE44Go44GGLOOBv+OBoeOBig0KK+OBmeOBmuOBjSzjgajjgZfjgYoNCivjgZ3jgYzjgbks44GE44GV44GKDQor44Gb44GM44KPLOOBoeOBsuOCjQ0KK+OBl+OBv+OBmizjgb/jga7jgosNCivjgZnjgZrjgY0s44KI44GG44GY44KN44GGDQor44GX44KN44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBl+OBhOOBqizjgojjgZfjgYoNCivjgZXjgoTjgb4s44G+44KC44KLDQor44GV44GL44KC44GoLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gf44Gg44KI44GXDQor44GZ44Ga44GNLOOBpuOBpOOCjeOBhg0KK+OBleOBleOBmyzjgYvjgaTjgobjgY0NCivjgZXjgY/jgonjgYQs44G+44GV44GNDQor44GX44G+44GgLOOBm+OBhOOBmA0KK+OBleOBqOOBhizjgYvjgaTjgbLjgo0NCivjgZfjgoLjga4s44KI44GG44GZ44GRDQor44GZ44Ga44GNLOOCiOOBl+OBquOCig0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgYoNCivjgZfjgb/jgZos44Gf44GR44GKDQor44GV44GuLOOCiOOBl+OBruOBtg0KK+OBmeOBmuOBjSzjgZPjgYbjgbjjgYQNCivjgZfjgb7jgaAs44GL44Ga44Gy44GTDQor44GZ44Ga44GNLOOBr+OCi+OBsuOBlQ0KK+OBmeOBjuOBteOBmCzjgbLjgajjgZcNCivjgZXjgYvjgYQs44GX44KT44GE44GhDQor44GV44GL44GQ44GhLOOBiOOBhOOBmA0KK+OBmeOBjOOCj+OCiSzjgaDjgYTjgZXjgY8NCivjgZfjga7jgZrjgYss44GY44KF44KT44GE44GhDQor44GX44GMLOOBv+OBpOOBig0KK+OBleOBi+OBjOOBvyzjgajjgojjgb4NCivjgZnjgZrjgY0s44GL44Ga44KG44GNDQor44GZ44GO44GuLOOBsuOBp+OBig0KK+OBmeOBjuOBhuOCiSzjgZnjgZnjgoANCivjgZfjgb/jgZos44GL44Ga44G/DQor44GZ44Ga44GNLOOBn+OBkeOBl+OBkg0KK+OBleOBleOBkyzjgZvjgYTjgZ7jgYYNCivjgZvjgY0s44KG44GN44KI44GXDQor44GV44Go44GGLOOBn+OBpOOBmA0KK+OBl+OBvizjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GN44KI44Gm44KLDQor44GV44GL44KC44GoLOOCiOOBl+OBi+OBmg0KK+OBleOBleOBjSzjgbLjgo3jgZcNCivjgZfjgb7jgaAs44GE44Gd44GYDQor44GV44GE44Go44GGLOOBn+OBoOOBsuOBlQ0KK+OBl+OBiuOBnyzjgajjgojjgYoNCivjgZfjgYrjgaAs44GE44GV44KADQor44GZ44GgLOOBiOOBhOOBmA0KK+OBl+OBhOOBqizjgZHjgpPjgZ7jgYYNCivjgZfjgYrjga7jgoQs44Gm44Gk44GKDQor44GV44GE44GX44KH44GGLOOChOOBmeOBsuOCjQ0KK+OBneOBhOOBoCzjgYjjgYTjgYTjgaENCivjgZ3jgb4s44GL44KT44GYDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZ/jgZHjgb/jgaENCivjgZfjgYrjgbDjgoks44GN44KI44GIDQor44GV44GV44GK44GLLOOCiOOBl+OBn+OBiw0KK+OBleOBleOBjSzjgb/jgaTjga7jgbYNCivjgZvjgags44G144G/44GKDQor44GX44KF44Gp44GGLOOBn+OBi+OBig0KK+OBleOBi+OCguOBqCzjgbLjgo3jgZcNCivjgZXjgY/jgb4s44Gf44GL44GXDQor44GX44Gu44GW44KPLOOBpOOCiOOBlw0KK+OBl+OBiuOBsOOCiSzjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgYQs44KG44Ga44KLDQor44GV44Go44GGLOOCgeOBkOOCgA0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZXjgZXjgbks44Gy44KN44GXDQor44GV44Go44GGLOOCiuOCheOBhuOBnuOBhg0KK+OBmeOBjuOBhuOCiSzjgobjgYbjgZ7jgYYNCivjgZXjgYvjgYQs44G+44GV44GKDQor44Gd44G+LOOBruOBtuOBig0KK+OBneOBhuOChCzjgZvjgYTjgZgNCivjgZ3jga3jgYvjgaQs44GC44GN44KJDQor44Gb44GN44GtLOOBn+OBkeOBig0KK+OBmeOBmuOBjSzjga7jgorjgYoNCivjgZvjgY3jga0s44Go44GX44Gk44GQDQor44GV44GL44GN44Gw44KJLOOBi+OBmuOBqOOBlw0KK+OBl+OCguOBi+OCj+OBuSzjgZHjgpMNCivjgZXjgo/jgoDjgoks44Gq44KL44G/DQor44Gb44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgZPjgZrjgYgNCivjgZXjgYvjgb7jgY0s44Gy44Gn44GC44GNDQor44GV44GM44KPLOOBqOOBl+OBsuOBlQ0KK+OBmeOBjuOChOOBvizjgZ/jgZHjgobjgY0NCivjgZnjgY7jgoLjgags44GTDQor44Gb44GKLOOChuOBhuOBmA0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgYvjgYQs44G/44GN44GKDQor44GV44GP44KJ44GELOOBn+OBoOOBsuOCjQ0KK+OBm+OBjeOBrSzjgb7jgZXjga7jgooNCivjgZXjgajjgYYs44Gv44Gk44G/DQor44GX44G/44GaLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgajjgZfjgYoNCivjgZXjgYTjgajjgYYs44G+44GV44GKDQor44GV44GP44KJ44GELOOBvuOBleOBguOBjQ0KK+OBmeOBjuOChOOBvizjgoTjgZnjgYoNCivjgZfjgZrjgYss44Gy44GV44Gq44GKDQor44GX44KJ44GL44KPLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgobjgZrjgosNCivjgZXjgY3jgoLjgoos44GE44KP44GKDQor44GV44Go44GGLOOBpuOBpOOBig0KK+OBm+OBjeOBkOOBoSzjgYrjgY3jgajjgZcNCivjgZvjgY3jga0s44Gu44KK44GTDQor44GX44Gw44GfLOOBk+OBhuOBmOOCjeOBhg0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44GV44GKDQor44GV44Go44GGLOOBruOCiuOBig0KK+OBm+OBjeOBrSzjgYrjgZXjgoANCivjgZXjgYvjgYQs44Gv44KL44Gy44GTDQor44GV44GV44GKLOOBl+OCk+OBmA0KK+OBmeOBqeOBhizjgb7jgZPjgagNCivjgoLjgoos44GX44KH44GG44GYDQor44GX44G/44GaLOOBiOOBhOOBnuOBhg0KK+OBleOBqOOBhizjgabjgovjgYoNCivjgZnjgZrjgY0s44GE44GV44GKDQor44GX44KA44KJLOOBsuOCjeOBqOOBlw0KK+OBl+OBsOOBleOBjSzjgbLjgo3jgZcNCivjgZnjgYzjgb7jgZ8s44GL44Ga44GKDQor44GZ44Ga44GNLOOBsuOCjeOBlw0KK+OBl+OBiuOBruOChCzjgY3jgojjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Go44GX44KN44GGDQor44Gk44GN44KE44G+LOOBjeOBj+OBig0KK+OBpOOBruOBoCzjgojjgZfjgY0NCivjgZ/jgYvjga/jgZcs44Gq44GK44GoDQor44Go44GP44GW44KPLOOCguOCiuOBr+OCiw0KK+OBn+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgYvjgY4s44Gy44Gn44GKDQor44Gf44GL44GuLOOBpuOCi+OBv+OBpA0KK+OBn+OBr+OCiSzjgY3jgojjgYvjgZoNCivjgajjgojjgZXjgo8s44GT44GG44GE44GhDQor44Go44KI44G+44GZLOOBkeOBhOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga7jgbYNCivjgZ/jgZHjgYbjgaEs44Gm44GE44GYDQor44Gf44GN44GE44GXLOOCiuOCh+OBhuOBmA0KK+OBn+OBi+OBhOOBlyzjgZfjgZLjgYoNCivjgZ/jgYvjgZXjgY0s44GR44KT44GYDQor44Gf44Gr44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgajjgZcNCivjgZ/jgarjga/jgZcs44GT44GG44GYDQor44Gf44G+44GNLOOBsuOCjeOBlw0KK+OBqOOBsCzjgb7jgZXjgZcNCivjgZ/jgbDjgZ8s44Gf44GL44GXDQor44Gk44GYLOOBn+OBi+OBig0KK+OBn+OBquOBiyzjgYLjgaTjgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44KKDQor44Go44GP44Gq44GMLOOBjeOBv+OBig0KK+OBn+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgY3jgZbjgo8s44GL44Gk44GX44GSDQor44Go44G/LOOBn+OBreOBvuOBlQ0KK+OBpOOBmCzjgZHjgYTjgZMNCivjgYbjgaHjgaAs44Go44GX44GKDQor44Gf44Gq44GLLOOBhOOCj+OBig0KK+OBpOOBreOCiOOBlyzjga7jgorjgYvjgZoNCivjgZ/jgYvjga4s44KA44Gt44GKDQor44Gf44GL44Gv44GXLOOChuOBjeOBoQ0KK+OBn+OBi+OChOOBquOBjizjgojjgYbjgYTjgaENCivjgZ/jgZHjgaAs44GR44GE44GZ44GRDQor44Gf44G8LOOChuOBn+OBiw0KK+OBn+OBquOBiyzjgYvjgZrjgYoNCivjgZ/jgZHjgYbjgaEs44G+44GV44GNDQor44Gf44GL44KE44GZLOOBqOOCiOOBvw0KK+OBpOOBoeOChCzjgobjga/jgaQNCivjgajjgY/jgarjgYws44GR44KT44GYDQor44Gk44Gh44GgLOOBquOBiuOBi+OBnw0KK+OBpOOBvOOBhCzjgYjjgYTjgYjjgaQNCivjgZ/jgYvjga/jgZcs44G+44GV44GX44GSDQor44Gk44GL44KC44GoLOOBleOBoOOCgA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgajjgoLjgaTjga0s44GZ44GZ44KADQor44Gh44GYLOOBqOOBl+OBr+OCiw0KK+OBleOBqOOBhizjgZvjgYTjgZgNCivjgZ/jgYvjgZ8s44Gk44Gt44GKDQor44Go44Gv44GfLOOCiOOBl+OBvw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgZ/jgYvjga/jgb4s44KI44GX44GC44GNDQor44Gm44KJ44GV44KPLOOBquOBiuOBkw0KK+OBn+OBi+OBsOOChOOBlyzjgZfjgofjgYbjgZgNCivjgabjgonjgaAs44GX44KF44GG44GYDQor44Gk44GL44GgLOOBm+OBhOOBmA0KK+OBn+OBquOBiyzjgbLjgafjgYoNCivjgajjgorjgb7jgoss44Gf44G/44GKDQor44Gk44Gh44GgLOOBvuOCguOCiw0KK+OBn+OBjeOCguOBqCzjgajjgZfjgbLjgZMNCivjgZ/jgY3jgYQs44Gy44Gn44GC44GNDQor44Gf44Gt44GgLOOBkeOCk+OBmA0KK+OBn+OCgOOCiSzjgojjgZfjga7jgooNCivjgZ/jganjgZPjgo0s44Gy44GV44GKDQor44Gf44GL44GKLOOBvuOBmeOBvw0KK+OBn+OBquOBiyzjgbLjgYvjgosNCivjgZ/jgYvjga/jgZcs44Gv44Gk44GKDQor44Gf44GL44Gv44GXLOOBl+OBkuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgbXjgZjjgYoNCivjgajjgb/jgZ8s44Go44GK44KLDQor44Gf44GL44Gv44GXLOOBguOBpOOBruOCig0KK+OBn+OBq+OBkOOBoSzjgb/jgaHjgYLjgY0NCivjgZ/jgarjgYss44KG44GG44Ge44GGDQor44Gk44G844GELOOBsuOCjeOBvw0KK+OBn+OBkeOBhuOBoSzjgbvjgbbjgpMNCivjgaTjgaAs44Go44KI44GXDQor44Gf44GR44GgLOOBvuOBleOChuOBjQ0KK+OBn+OBkeOBhCzjgZfjgZLjgYoNCivjgaTjgZjjgYvjgo8s44KG44GG44GE44GhDQor44Gf44GR44KA44KJLOOBm+OBhOOBmOOChQ0KK+OBn+OBjSzjgb7jgZXjgYLjgY0NCivjgZ/jgYvjgaAs44G+44GV44GC44GNDQor44Gf44GN44GW44KPLOOBl+OBkuOCiw0KK+OBn+OBquOBiyzjgb7jgZXjgZgNCivjgZ/jgavjgoDjgoks44Gf44GR44KI44GXDQor44KI44GX44GW44KPLOOBvuOBleOBr+OCiw0KK+OBpOOBreOBi+OCjyzjgZ/jgo3jgYYNCivjgZ/jgarjgYss44Gy44KN44GXDQor44Gf44GL44GgLOOBi+OBpOOBig0KK+OBpOOCiyzjgYLjgY3jgokNCivjgZ/jgass44G+44GV44Gy44KNDQor44Gf44GQ44GhLOOBhOOBleOBig0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZ7jgYYNCivjgZ/jgavjgZDjgaEs44GL44Ga44Gy44KNDQor44Gf44Gq44GLLOOBruOCiuOBv+OBpA0KK+OBpOOBmCzjgobjgYbjgYTjgaENCivjgZ/jgarjgYss44GL44Gk44G/DQor44Gk44KG44GNLOOBsuOBleOBig0KK+OBn+OBvuOCiyzjgb7jgZXjgb8NCivjgaTjgaHjgoQs44GR44GE44GYDQor44Gk44KL44GK44GLLOOBruOBtuOBig0KK+OBn+OBi+OBr+OBlyzjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44GTDQor44Go44GG44G144GP44GYLOOBqOOBl+OBig0KK+OBn+OBquOBiyzjgYrjgY3jgaTjgZANCivjgZ/jgYvjgY4s44GN44KH44GG44GTDQor44Gf44GL44Gv44GXLOOCiOOBl+OBsuOBlQ0KK+OBn+OBq+OBkOOBoSzjgorjgofjgYbjgZgNCivjgajjgojjgaAs44Gy44Go44GXDQor44Gf44GL44GOLOOBn+OBkeOBlw0KK+OBn+OBkeOBhCzjgZfjgZLjgosNCivjgaTjgaAs44G144G/44GKDQor44Gk44Gt44Gy44KNLOOBmOOCheOCk+OBmA0KK+OBn+OBjeOBluOCjyzjgajjgZfjgYoNCivjgZ/jgaHjgbDjgaos44GU44GE44GhDQor44Gf44GL44Gv44GXLOOBi+OBpOOChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgZPjgZnjgZENCivjgZ/jgZHjgaAs44GL44Ga44GoDQor44Gk44Gh44KELOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYLjgY0NCivjgZ/jga7jgYbjgYgs44Gy44GT44GV44G244KN44GGDQor44Gf44GL44Gw44Gf44GRLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBr+OBlyzjgb7jgZ/jgZXjgbbjgo3jgYYNCivjgbXjgarjgY0s44Gm44KL44KE44GZDQor44Gf44GR44GgLOOBi+OBpOOBvuOBlQ0KK+OBqOOBj+OBquOBjCzjgZ/jgaQNCivjgYLjgZXjgYQs44KG44GG44GYDQor44Gf44GL44Gv44GXLOOBv+OBjeOBkw0KK+OBn+OBi+OBr+OBlyzjga7jgorjgYoNCivjgZ/jgYzjgo8s44GX44KH44GG44GE44GhDQor44Gf44Gq44GLLOOBruOBtuOChuOBjQ0KK+OBn+OBoeOBi+OCjyzjgZ/jgZHjgZcNCivjgZ/jgZDjgaEs44GL44Ga44KI44GXDQor44Gf44GL44GV44GNLOOBguOBjeOCiQ0KK+OBn+OBvuOBiuOBjSzjgZfjgZrjgYoNCivjgZ/jgarjgYss44Gb44GE44GE44Gh44KN44GGDQor44Gf44GL44GuLOOBl+OCkw0KK+OBn+OBkeOBhuOBoSzjgZfjgZLjgosNCivjgaTjgaAs44Gb44KT44GYDQor44Gf44GL44Gq44G/LOOBvuOBleOCiw0KK+OBpOOBjeOBquOCjyzjgojjgZfjgarjgYoNCivjgajjgb/jgoLjgoos44GZ44GZ44KADQor44Gf44GR44GgLOOBqOOBiuOCiw0KK+OBqOOBjOOBlyzjgabjgaTjgbLjgZMNCivjgaTjgZrjgY0s44GX44GS44Go44GXDQor44Go44Gz44GfLOOBruOBtuOBguOBjQ0KK+OBqOOCguOBquOBjCzjgaTjga3jgYvjgZoNCivjgaTjgaTjgYQs44GX44GS44GC44GNDQor44Gf44GL44GOLOOBmOOCheOCk+OBmA0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgajjgZcNCivjgZ/jgYvjga4s44Go44GX44Gy44KNDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBqOOBvuOBpOOCiizjgZfjgo3jgYYNCivjgZ/jgYvjgY4s44GE44Gk44GKDQor44Gf44GL44GX44G+LOOBteOBv+OBig0KK+OBn+OBr+OCiSzjgojjgZfjgYLjgY0NCivjgZ/jgarjgYss44GL44Ga44GTDQor44Gf44GL44GgLOOCiOOBl+OBig0KK+OBqOOCiuOBhCzjgb/jgaTjgobjgY0NCivjgZ/jgZHjgbks44Gu44G244KG44GNDQor44Gk44GL44KC44GoLOOBguOBjeOBig0KK+OBn+OCgOOCiSzjga7jgbbjgbLjgo0NCivjgajjgb/jgarjgYws44GV44GL44GIDQor44Gf44GL44GE44KPLOOBleOBqOOBlw0KK+OBn+OBsOOBnyzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44GP44Gr44GKDQor44Gm44KT44G944GG44KK44KTLOOBneOBhuOBhOOBoQ0KK+OBpuOCieOBhuOBoSzjgZXjgaDjgobjgY0NCivjgZ/jgYvjga/jgZcs44GN44KI44GXDQor44Gf44GL44GbLOOBoeOBi+OCiQ0KK+OBn+OBkeOCgOOCiSzjgoLjgajjgYQNCivjgZ/jgoDjgYvjgYQs44G144G/44GKDQor44Gf44GL44Gv44GXLOOChuOBhuOBmA0KK+OBn+OBkeOBpCzjgYvjgaTjgZgNCivjgZ/jga7jgYrjgYss44GZ44GZ44KADQor44Gf44GL44Gv44GXLOOBn+OBoOOBlw0KK+OBqOOBiuOChOOBvizjgY3jgojjga7jgbYNCivjgZ/jgZHjgYbjgaEs44GC44Gk44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBig0KK+OBhuOBl+OBiizjgobjgZrjgosNCivjgYbjgZnjgY4s44GL44Ga44Gy44KNDQor44GG44Gh44KE44G+LOOCiOOBhuOBhOOBoQ0KK+OBhuOCgeOBoCzjgYvjgZrjgZnjgZENCivjgYbjgZHjgoLjgoos44G+44GV44GqDQor44GG44Gh44GgLOOBv+OBoeOChA0KK+OBhuOBiOOBoCzjgbLjgZXjgYoNCivjgYbjgaHjgaAs44GR44GE44GYDQor44GG44Gk44GNLOOBpuOBpOOBig0KK+OBhuOBiOOBoCzjgb/jgY3jgbLjgZMNCivjgYbjgaHjgaAs44Gy44Gn44GNDQor44GG44GI44Gv44KJLOOBl+OCheOBhg0KK+OBhuOBiOOCgOOCiSzjga7jgbbjgoQNCivjgYbjgaHjgaAs44GV44Gg44KG44GNDQor44GG44Gh44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBhuOBoeOBoCzjgZHjgpPjgZnjgZENCivjgYbjgaHjgaAs44GR44GE44GE44GhDQor44GG44GI44GNLOOBguOBjeOBkw0KK+OBhuOBi+OBmCzjgb7jgZXjgabjgosNCivjgYbjgaHjgaAs44G+44GV44GC44GNDQor44GG44GI44KA44KJLOOBsuOBp+OBig0KK+OBhuOBl+OBiizjgajjgY/jgZgNCivjgYbjgoHjgoDjgoks44Go44GX44GKDQor44GG44KB44GX44G+LOOCiuOBjeOBpOOBkA0KK+OBhuOBk+OCkyzjgYvjgYrjgosNCivjgYbjgaHjgYTjgZEs44GY44KF44KT44GE44GhDQor44GG44KL44GX44GuLOOBn+OBi+OBguOBjQ0KK+OBhuOBoeOBquOBlyzjgbjjgYTjgZ8NCivjgYbjgZDjgZUs44G+44GV44KG44GNDQor44GG44GuLOOBqOOBl+OBsuOBpw0KK+OBhuOBiOOBjSzjgb/jga7jgosNCivjgYbjgYjjgoLjgags44GR44KTDQor44GG44GI44KA44KJLOOChuOBjeOBig0KK+OBhuOBiOOBr+OCiSzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44GX44KT44G644GEDQor44KP44Gf44Gq44G5LOOBsuOBleOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgb8NCivjgo/jgZ/jgarjgbks44GN44KT44KEDQor44KP44GL44KA44KJLOOChOOBmeOCjQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgZgNCivjgo/jgZ/jgarjgbks44KI44GX44Gf44GLDQor44KP44Gf44Gq44G5LOOBsuOCjeOBr+OCiw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgarjgooNCivjgo/jgZ/jgarjgbks44Gy44Gn44GKDQor44KP44Gf44Gq44G5LOOBi+OBpOOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgYLjgY0NCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44KP44GN44GfLOOBk+OBhuOCgeOBhA0KK+OCj+OBn+OBquOBuSzjgajjgY3jgYoNCivjgo/jgZ/jgarjgbks44GT44KT44GU44GGDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgYrjgZXjgoANCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44KP44Gf44Gq44G5LOOBmeOBv+OBn+OBoA0KK+OCj+OBoCzjgoTjgZnjgZcNCivjgo/jgZ/jgarjgbks44Gf44Gk44Gy44GTDQor44KP44GgLOOBn+OBkeOBv+OBpA0KK+OCj+OBoCzjgbvjgb7jgowNCivjgo/jgZ/jgarjgbks44G+44GV44GC44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgYLjgY0NCivjgo/jgYvjgbDjgoTjgZcs44G/44Gt44GKDQor44KP44Gf44Gq44G5LOOBsuOBleOBig0KK+OBiuOBiuOBnyzjgb7jgZPjgagNCivjgbXjgZjjgo/jgoks44GZ44G/44GC44GNDQor44GT44GE44GRLOOBv+OBoeOBig0KK+OBi+OBn+OBiuOBiyzjgabjgaTjgoQNCivjgbLjgo3jgZfjgZIs44GN44KI44GXDQor44GX44KT44GW44KPLOOBsuOCjeOBlw0KK+OBv+OBmuOBi+OBvyzjgb7jgZXjgb/jgaQNCivjgarjgYvjgZjjgb4s44GR44GE44GE44GhDQor44G144GP44GX44G+LOOBl+OBkuOBjQ0KK+OBquOBiyzjgbLjgo3jgZcNCivjgbLjgonjgoTjgb4s44G+44GV44GTDQor44Gr44KP44KE44G+LOOBi+OBpOOBmA0KK+OBl+OBv+OBmizjgZ3jgYbjgZjjgo3jgYYNCivjgbXjgovjgZXjgo8s44Gk44KI44GXDQor44GV44GP44KJ44GELOOBv+OBmuOBuw0KK+OBn+OBkeOBquOBiyzjgYLjgaTjga7jgbYNCivjgZnjgY7jgYbjgoks44GL44KI44GTDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBu+OBl+OBi+OCjyzjgb7jgZXjgYoNCivjgYrjgYzjgo8s44GE44GV44GKDQor44GL44GX44KP44GOLOOBkw0KK+OBleOBi+OBhCzjgbLjgo3jgZMNCivjgoLjgoos44Gv44KL44GKDQor44G744KT44G8LOOBruOBtuOChuOBjQ0KK+OBhOOBhOOBmOOBvizjgojjgZfjgYLjgY0NCivjgZPjgZjjgb4s44Gf44GL44GKDQor44Gf44GL44Gv44GXLOOBruOBvOOCiw0KK+OBr+OBnyzjgZfjgofjgYbjgZnjgZENCivjgYrjgYzjgo8s44GC44GN44Gu44KKDQor44Gk44Gh44KELOOBi+OBpOOChA0KK+OBk+OChOOBvizjgYTjgZXjgYoNCivjgbXjgovjgb8s44Gm44Gk44GKDQor44GP44KBLOOBpOOBreOBig0KK+OBj+OCieOBnyzjgZvjgaTjgYoNCivjgYbjgZfjgZjjgb4s44G+44GV44GL44GaDQor44GI44Gw44GoLOOBi+OBpOOBruOCig0KK+OBleOBqOOBhizjga7jgbbjgobjgY0NCivjgoDjgZfjgoMs44Gq44GK44Gy44GTDQor44KG44GC44GVLOOBvuOCguOCiw0KK+OBjeOBj+OBoSzjgarjgYrjgY0NCivjgb7jgaTjgbDjgoTjgZcs44Gm44KL44KI44GXDQor44G+44Gk44GELOOBguOBjeOCiQ0KK+OBn+OBkeOCgOOCiSzjgbLjgo3jgZcNCivjgabjgonjgZfjgb4s44KI44GG44GZ44GRDQor44GP44KJLOOBsuOBp+OBj+OBqw0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgYbjgYjjgaAs44GE44GV44GKDQor44Gv44KE44GXLOOBl+OCk+OBhOOBoQ0KK+OBi+OCj+OBqizjgaDjgYTjgZjjgo3jgYYNCivjga/jgoTjgZcs44GL44Ga44GKDQor44Gn44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBl+OBtuOBjSzjgZ/jgZHjgZcNCivjga/jgb4s44Gf44Gk44GKDQor44GI44KT44GpLOOBk+OBhuOBluOBtuOCjeOBhg0KK+OBv+OChOOCguOBqCzjgZ/jgYvjgbLjgZUNCivjgb7jgaTjgaAs44Gy44KN44GXDQor44KE44G+44KC44GoLOOBqOOCguOBkw0KK+OCgOOCieOBi+OBvyzjgZfjgZLjgYoNCivjgYrjgYvjgaAs44Gg44GE44GN44GhDQor44KP44Gf44Gq44G5LOOBi+OBmuOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgYLjgY3jgogNCivjgojjgZfjgaAs44GZ44G/44KG44GNDQor44GK44GK44KC44KKLOOBvuOBleOBruOCig0KK+OBv+OBmuOBn+OBqyzjgbLjgZXjgYgNCivjgZnjgY7jgYbjgoks44GL44Ga44GKDQor44Gu44Gq44GLLOOBv+OBpOOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgYTjgZXjgoANCivjgZXjgYTjgajjgYYs44Gf44GR44GKDQor44GK44GK44GL44KP44KJLOOBkuOCk+OBn+OCjeOBhg0KK+OBi+OBqeOBhOOBkSzjgZ/jgZHjgZ/jgaANCivjgb7jgaTjgoLjgags44Gu44KK44GL44GaDQor44Gq44GLLOOBn+OBi+OBig0KK+OBi+OBqOOBhizjgZHjgpPjgZ7jgYYNCivjgYvjgo/jgYTjgZcs44KG44GG44GTDQor44Gq44GM44GV44KPLOOBpOOBqOOCgA0KK+OBmeOChOOBvizjgY/jgpPjgo3jgYYNCivjgY/jgb7jgZfjgo0s44Gy44KN44GXDQor44Gf44GL44Gw44KE44GXLOOBsuOBp+OBig0KK+OBk+OCk+OBqSzjgZHjgpPjgZ7jgYYNCivjgYTjgarjgbAs44GV44Go44KLDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgb/jgYvjgZMNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GC44GN44KE44G+LOOChuOBn+OBiw0KK+OBn+OBi+OBoCzjgYLjgY3jgokNCivjgZXjgo/jgYQs44G+44GV44Gy44GTDQor44Gq44GL44GfLOOBjeOCiOOChuOBjQ0KK+OBhOOBn+OBsCzjgobjgYbjgYTjgaENCivjgY/jgavjgY7jgZ8s44KI44GG44GE44GhDQor44KE44G+44GgLOOCiOOBhuOBkw0KK+OChOOBvuOBoCzjgobjgYbjgZMNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44Gh44KN44GGDQor44GG44KB44KA44KJLOOBruOCiuOBsuOBkw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgYLjgY0NCivjgYvjga3jgb/jgaQs44Gf44Gg44GKDQor44GN44GpLOOBvuOBleOBlw0KK+OBi+OBreOBjSzjgZ/jgaDjgYoNCivjgZPjgoDjgoks44G+44GV44Gy44KNDQor44G144GY44KC44KKLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBl+OBnyzjgabjgovjgZ/jgZENCivjgY/jgorjgoTjgb4s44G+44GV44Gy44KNDQor44Go44GW44KPLOOBn+OBi+OBlw0KK+OBhOOBl+OBhCzjgaHjgYvjgajjgZcNCivjgZ/jgYvjga/jgZcs44KI44GG44GE44GhDQor44Gf44Gq44GLLOOBi+OBmuOBvw0KK+OBhOOBl+OBluOBjSzjgabjgaTjgYoNCivjga/jgonjgaAs44G+44GV44Gy44KNDQor44Go44GP44Gy44GVLOOBl+OBkuOChOOBmQ0KK+OBhOOBl+OCgOOCiSzjgZ/jgaDjgbLjgo0NCivjgYbjgYjjgaAs44Gf44GL44GXDQor44GK44G144GhLOOBj+OBq+OBsuOCjQ0KK+OChOOBpOOCi+OBjizjgb/jgaTjgYoNCivjgb/jgarjgags44G+44KG44G/DQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBv+OBquOBvyzjgoTjgZnjgYoNCivjgYrjgYss44GC44GN44GKDQor44GE44Gh44GL44KPLOOBi+OBmuOBig0KK+OBiuOBiuOBj+OBvCzjgbLjgafjgY0NCivjgYTjgZfjgaAs44Gy44KN44KG44GNDQor44Go44G/44GfLOOBhOOBleOBig0KK+OBsuOCieOBiuOBiyzjgbLjgo3jgbLjgZUNCivjgYvjgajjgYYs44Gy44Gn44GKDQor44GK44KA44KJLOOCgOOBpOOBig0KK+OBiuOBleOBmOOBvizjgajjgZfjgoQNCivjgbXjgarjgZPjgZcs44Gb44Gk44GKDQor44GT44GG44GgLOOBsuOBp+OBguOBjQ0KK+OBguOBleOBiuOBiyzjgZ/jgaTjgYoNCivjgYvjgZnjgYws44GC44GR44G/DQor44KC44KC44Gv44KJLOOBtuOCk+OBhOOBoQ0KK+OBhuOBiOOCgOOCiSzjgajjgZfjgbLjgacNCivjgYrjgbDjgZ8s44GL44Ga44GTDQor44GK44Gu44GgLOOChuOBjeOBig0KK+OBv+OChOOBl+OBnyzjgYvjgpPjgZgNCivjgbvjgZ3jgoQs44KE44GZ44GKDQor44KE44GX44KNLOOChuOBjeOBig0KK+OCj+OBn+OBquOBuSzjgYLjgaTjgZcNCivjgY3jgoDjgoks44Go44GN44GhDQor44GL44G/44GY44KH44GGLOOBsuOBleOBiA0KK+OBleOBqOOBhizjgojjgZfjgYrjgY0NCivjgb7jgaTjgZfjgb4s44GC44GN44KJDQor44GL44Gf44KE44G+LOOCiOOBhuOBkw0KK+OBsuOCieOBrizjgZTjgbjjgYQNCivjgarjgYvjgonjgYQs44Gg44GE44GZ44GRDQor44KI44GT44KE44G+LOOBsuOBleOBig0KK+OBiuOBiuOBjOOBrSzjgajjgoLjgbLjgo0NCivjgY3jgoDjgoks44G+44GT44GoDQor44Gu44GW44GVLOOCiOOBl+OBruOCig0KK+OCguOCiuOBrizjgYvjgZrjgZfjgZINCivjgYjjgaHjgZTjgoQs44G/44Gh44Gy44GTDQor44G144GP44GX44G+LOOBsuOBp+OBig0KK+OBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgYTjgZHjgaAs44KG44GN44GTDQor44Go44GP44Gq44GMLOOCiuOBiA0KK+OBjeOCguOBqCzjgYLjgYTjgZMNCivjgYrjgZfjgaAs44GV44Go44GTDQor44Gv44GX44KC44GoLOOBruOCiuOBi+OBmg0KK+OBruOBkOOBoSzjgajjgZfjga7jgooNCivjgb/jgoTjgbks44GL44Ga44GoDQor44GP44KP44Gv44KJLOOChOOBmeOBiA0KK+OBjeOCgOOCiSzjgbLjgo3jgb8NCivjgYrjgaAs44GL44Ga44KG44GNDQor44GC44GE44GW44KPLOOBn+OBv+OBig0KK+OBhuOBiOOBrizjgYvjgaTjgYoNCivjgb7jgaTjgbDjgoks44Gu44KK44KG44GNDQor44Gf44G+44GELOOBi+OBmuOBv+OBoQ0KK+OBl+OCieOBhCzjgojjgZfjgYoNCivjgYrjgYrjga/jgZcs44GT44GG44GYDQor44Gf44G/44KELOOBteOBv+OChA0KK+OBr+OCieOBoCzjgojjgZfjgZMNCivjgYbjgZnjgYQs44Gf44GL44GXDQor44GT44KKLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBruOBoCzjgZfjgZLjgbLjgZMNCivjgarjgb/jgY0s44G+44GV44GoDQor44Gq44GL44GKLOOBvuOBleOBv+OBpA0KK+OBi+OBqeOChCzjgYLjgY3jgokNCivjgYrjga4s44Go44GX44Gy44GnDQor44GX44G244GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBhOOCj+OBleOCjyzjgb7jgarjgbYNCivjgZ/jgbbjgZss44GE44Gh44KN44GGDQor44GK44GV44KPLOOBn+OBi+OCiOOBlw0KK+OBquOBi+OBoOOBhCzjgZHjgpPjgZgNCivjgYjjgYzjgZfjgoks44Gy44KN44KG44GNDQor44GV44GV44GNLOOBi+OBpOOBig0KK+OBteOBj+OBoSzjgYvjgZrjgbLjgZMNCivjgojjgZfjgoTjgZks44GU44GGDQor44KP44Gf44Gq44G5LOOBk+OBleOBqA0KK+OBhuOBiOOBrizjgozjgYTjgZMNCivjgYjjgajjgYYs44G+44GV44Gu44KKDQor44KI44GX44GgLOOBvuOBleOBig0KK+OBn+OBkeOBhCzjgobjgYbjgYTjgaENCivjga/jgoTjgZcs44Gy44GV44GXDQor44G+44Gf44GNLOOBl+OCk+OBlA0KK+OCguOCiuOCguOBqCzjgYTjgaHjgo3jgYYNCivjgYTjga/jgoks44GR44KT44GYDQor44Gk44GL44Gv44KJLOOBpuOCi+OBig0KK+OBi+OBruOBhizjgajjgoLjgZMNCivjgoDjga3jgobjgY0s44Gy44Gn44G+44GVDQor44GK44GK44Gk44G8LOOCiOOBl+OBn+OBiw0KK+OChOOBvuOCguOCiizjgYvjgaTjgYoNCivjgYLjgpPjganjgYYs44Gb44GE44GNDQor44KE44G+44GW44GNLOOCiOOBl+OBguOBjQ0KK+OBn+OBjeOCguOBqCzjgojjgYbjgYTjgaENCivjgZ/jgZHjgoDjgoks44Gq44GK44GL44GaDQor44KA44KJ44GL44G/LOOBvuOBk+OBqA0KK+OBn+OBi+OBnyzjga7jgorjgYoNCivjgbLjgo3jgZss44Gk44Gf44Gy44KNDQor44KE44GP44KPLOOBn+OBi+OBlw0KK+OBl+OCk+OBkOOCiuOCh+OBhizjgojjgYbjgZMNCivjgZ/jgaEs44G+44GV44GXDQor44GV44Go44GGLOOBi+OBmuOBig0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgZnjganjgYYs44GX44KH44GG44GTDQor44G744KT44G+LOOBsuOCjeOBjQ0KK+OBiuOBiuOBpOOBvCzjgajjgZfjgYoNCivjgYvjgZbjgb4s44G/44Gk44Gy44KNDQor44GC44GM44KPLOOBv+OBu+OBkw0KK+OBhOOBruOBhuOBiCzjgorjgoXjgYbjgYTjgaENCivjgYLjgonjgYQs44G+44GV44GhDQor44GG44GI44KA44KJLOOChuOBn+OBiw0KK+OBq+OBl+OBj+OCiSzjgb7jgZXjgbLjgo0NCivjgb/jgoTjgZbjgY0s44KI44GX44GL44GaDQor44G144GP44GgLOOCguOCiuOBvuOBlQ0KK+OBpOOCiuOChCzjgZ/jgaDjgYoNCivjgZ/jgarjgYss44Gy44KN44GL44GaDQor44GK44GM44KPLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjga/jgb7jgZDjgaEs44Gf44GP44GYDQor44GL44KB44GgLOOBi+OBpOOChA0KK+OCguOCguOBr+OCiSzjgbLjgafjgYoNCivjgbLjgonjgYos44Gf44GL44GTDQor44Gf44GL44GgLOOBquOBiuOChuOBjQ0KK+OBhOOBkeOBoCzjgojjgZfjgbLjgo0NCivjgZnjgZrjgY0s44GC44GN44KJDQor44Gf44GL44Gv44GXLOOBi+OBmuOCiOOBlw0KK+OBn+OBquOBiyzjgZjjgo3jgYYNCivjgZvjgoks44Gf44GE44GhDQor44Gf44GR44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBu+OCiuOBjeOCiizjgb7jgoLjgosNCivjgYTjgZHjgaAs44G/44Gu44KLDQor44GC44KJ44GNLOOBm+OBjeOBrQ0KK+OBiuOBiuOBpOOBiyzjgYvjgZrjgYTjgaHjgo3jgYYNCivjgY/jgavjgb7jgaQs44Gb44GE44GW44G244KN44GGDQor44GG44GX44GwLOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgb7jgZXjgagNCivjgYTjgZfjgYQs44G/44GN44GKDQor44GL44GgLOOBguOBjeOCiQ0KK+OChOOBjizjgZ/jgaDjgYoNCivjgbLjgonjgYQs44GT44GG44GE44Gh44KN44GGDQor44GP44KN44GbLOOBsuOCjeOBlw0KK+OBiuOBi+OBuSzjgYTjgZXjgoANCivjgYvjga3jgZMs44Go44GX44KG44GNDQor44GT44GY44G+LOOBleOBqOOCiw0KK+OBq+OBl+OCiOOCiizjgb/jga7jgosNCivjgarjgYvjgZjjgofjgYYs44GY44KN44GGDQor44Gv44GX44GP44KJLOOBpOOBqOOCgA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgYoNCivjgYbjgYjjgY/jgZUs44Gu44G244GC44GNDQor44GX44Gw44GfLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgabjgovjgYoNCivjgYTjgarjgbAs44GL44Ga44GoDQor44GY44KF44KT44GE44Gh44KNLOOBguOBjeOBruOCig0KK+OBr+OChOOBi+OCjyzjgbLjgafjgYoNCivjgYTjgajjgYYs44Gf44GR44GXDQor44GN44KC44GoLOOBvuOBleOBpOOBkA0KK+OBhOOBoCzjgbLjgo3jgZcNCivjgbvjgYbjgZjjgofjgYYs44GL44Gk44Gy44GTDQor44G744KK44GELOOBpOOBreOBig0KK+OBi+OBhOOBmyzjgYLjgaTjgZcNCivjga/jgZfjgoLjgags44KE44GZ44GC44GNDQor44GZ44Ga44GNLOOBsuOBqOOBlw0KK+OBi+OBreOBleOBiyzjgojjgZfjgYoNCivjgoTjgb7jgZDjgaEs44KG44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOBi+OBmg0KK+OBmeOBqeOBhizjgb7jgZXjgbLjgZMNCivjgYrjgYrjgbAs44G/44G744GTDQor44KA44KJ44GfLOOBqOOBl+OBkw0KK+OBguOBjeOChOOBvizjgb7jgZXjgZcNCivjgYLjgZnjgb4s44Gf44GR44GKDQor44GL44KP44GY44KKLOOBsuOBp+OBig0KK+OBvuOBpOOCguOBqCzjgY3jgofjgYbjgZgNCivjgZfjgo3jgoTjgb4s44GTDQor44G144GY44GELOOBguOBpOOBkw0KK+OBlOOBqOOBhizjgaDjgYTjgZnjgZENCivjgZ/jgavjgYLjgYQs44KE44GZ44G+44GVDQor44GL44Gk44G844KKLOOBvuOBjQ0KK+OBsuOBguOBpizjgY/jgb/jgZMNCivjgabjgonjgYQs44GC44GN44GTDQor44Gv44KT44GgLOOBvuOBleOBkw0KK+OBv+OBl+OBvizjgbLjgo3jgb8NCivjgZ/jgYvjgZfjgb4s44GL44Ga44G/DQor44G+44Gk44GgLOOBguOBjeOCiQ0KK+OBk+OCk+OBqSzjga7jgorjgZMNCivjgYTjgZ/jgoQs44GR44KT44GYDQor44G+44Gk44KC44GoLOOBquOBiuOBn+OBkQ0KK+OBhOOBhOOChOOBvizjgbLjgafjgYoNCivjgZjjgaPjgags44GL44Gk44Gy44KNDQor44GP44G844GfLOOBleOBoeOBkw0KK+OBhOOBl+OBkOOCjSzjgYjjgYTjgZgNCivjgoLjgoos44GG44Gk44G/DQor44GL44KT44GuLOOBleOBoeOBkw0KK+OBhOOBqOOBhizjgZvjgYTjgZgNCivjgojjgZfjgaAs44KK44KF44GG44GYDQor44G+44KL44KE44G+LOOBj+OBq+OBig0KK+OBleOBqOOBhizjgarjgbsNCivjgZPjgYbjgaAs44KI44GG44GYDQor44KP44Gf44GrLOOBvuOCguOCiw0KK+OBleOBmyzjgYTjgY/jgYoNCivjgZ3jgajjgoTjgb4s44GL44Gk44Gu44KKDQor44G744KT44GgLOOBpuOCi+OBj+OBqw0KK+OBhOOBrOOBhCzjgobjgZ/jgYsNCivjgZnjgZrjgY0s44KI44GX44Gu44KKDQor44GT44Gr44GXLOOCiOOBl+OBruOBtg0KK+OBmeOBjuOBhCzjgobjgY3jgbLjgZUNCivjgYLjgonjgY0s44Gu44G244GKDQor44Gy44KJ44GK44GLLOOChOOBmeOBlw0KK+OBiuOBiuOBpOOBiyzjgoDjgaTjgYoNCivjgYvjgajjgYYs44GX44GS44GKDQor44GX44GK44GuLOOBsuOCjeOBlw0KK+OBi+OBn+OChOOBvizjgbLjgo3jga7jgooNCivjgbXjgaHjgYvjgb8s44Gf44GR44Gy44GTDQor44Gy44KJ44GNLOOBn+OCguOBpA0KK+OBhOOCj+OBleOBjSzjgY3jgb/jgYoNCivjgYjjga7jgY0s44GY44KF44KTDQor44GE44KP44GfLOOBm+OBhOOBhOOBoQ0KK+OBl+OCheOBqOOBhizjgZ/jgaDjgZcNCivjgajjgYrjgoTjgb4s44G+44Gk44Gu44KKDQor44GT44GE44GnLOOBmOOCheOCk+OBluOBtuOCjQ0KK+OBn+OBquOBuSzjgobjgYbjgZjjgo3jgYYNCivjgoTjgb7jgoLjgags44GX44KF44KT44GE44GhDQor44GL44GE44Gv44GkLOOBm+OBhOOBlw0KK+OBguOCieOBhCzjgYvjgaTjgZgNCivjgYbjgYjjgaAs44KG44GG44Ge44GGDQor44GP44KJ44GK44GLLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBk+OBsOOChOOBlyzjgYjjgaTjgbLjgo0NCivjgZ/jgoHjgaHjgYss44Gf44Gm44GKDQor44KI44GX44GgLOOBl+OBmuOBig0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgZXjgYvjgZfjgZ8s44GL44Gt44GKDQor44KP44GgLOOBqOOBl+OBguOBjQ0KK+OBhOOBqOOBhizjgoTjgZnjgYoNCivjgojjgZfjgaAs44GL44Gk44GYDQor44KI44Gt44GgLOOBqOOBl+OBsuOBpw0KK+OBiuOCgOOCiSzjgb7jgZXjgb8NCivjgZ/jgYvjgY4s44GX44Gh44KN44GGDQor44GG44Gh44KE44G+LOOBguOBjeOBkw0KK+OBi+OBl+OCj+OBjizjgZHjgYTjgZMNCivjgavjgZfjgaAs44Gb44Gk44GKDQor44GK44GX44GLLOOBn+OBkeOBig0KK+OBiOOBmOOBvizjgajjgoLjga7jgooNCivjgYrjgYss44GR44KT44GE44GhDQor44KI44GX44GgLOOChOOBmeOBiA0KK+OBhOOBvuOBhCzjgoTjgZnjgZfjgo3jgYYNCivjgoTjgb7jgb/jgaEs44Go44KC44GTDQor44GC44GE44KC44GuLOOBi+OBpOOBig0KK+OBsuOBrizjgoLjgajjgZMNCivjgZ/jgYvjga/jgZcs44G/44GV44GTDQor44KI44GT44GfLOOBiOOBhOOBkw0KK+OBhOOBruOBhizjgZ/jgYjjgZMNCivjgojjgZfjgaAs44Gy44KN44GTDQor44KI44GX44GK44GLLOOBguOBjeOBkw0KK+OBhuOCgeOBluOCjyzjgYbjgY3jgZMNCivjgabjgonjgYos44Gy44KN44Gy44GVDQor44GL44KP44Gv44KJLOOBr+OCi+OBig0KK+OBr+OBm+OBjOOCjyzjgb/jga7jgosNCivjgY3jgZcs44Gm44KL44GTDQor44Gv44GX44Ga44KBLOOBv+OBpOOBsuOCjQ0KK+OCiOOBl+OBoCzjgoHjgZDjgb8NCivjgb/jga3jgbXjgZgs44Gq44GK44GTDQor44G744KT44GgLOOChuOBvw0KK+OBn+OBi+OBleOCjyzjgb/jgobjgY0NCivjgYrjgYrjga/jgZcs44KI44GG44GTDQor44GL44GM44KPLOOBoeOBiw0KK+OBq+OBl+OBoCzjgb7jgooNCivjgYTjgZ/jgYzjgY0s44GC44GN44GTDQor44GC44GN44KE44G+LOOBruOCiuOBsuOCjQ0KK+OBiuOBoeOCiizjgoTjgZnjgbLjgo0NCivjga7jgZbjgo8s44GT44GG44GYDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgaHjgYgNCivjgYLjgbks44Gq44GK44GoDQor44GP44GZ44Gu44GNLOOBqOOCguOBkw0KK+OBr+OChOOBlyzjgoTjgZnjgbLjgo0NCivjgYrjgYrjgYQs44Gq44GK44G/DQor44GL44G/44GK44GLLOOBr+OCi+OCiOOBlw0KK+OBguOBjeOChOOBvizjgYTjgZXjgYoNCivjgYLjgorjgZ8s44GL44Gk44G/DQor44GN44Gf44KA44KJLOOBv+OBoeOChuOBjQ0KK+OBvuOBmeOCgOOCiSzjgZ/jgYvjga7jgooNCivjgYrjgYrjgZXjgo8s44GR44KTDQor44GL44KP44GELOOBv+OBruOCiw0KK+OBhOOBn+OBjOOBjSzjgbLjgafjgYoNCivjgoLjgoos44Gf44GL44GKDQor44GC44GK44GNLOOBv+OBjeOBig0KK+OBteOBmOOBl+OCjSzjgZPjgYbjgZgNCivjgZfjgb/jgZos44KC44Go44GX44GSDQor44KA44KJ44GL44G/LOOBv+OCiOOBlw0KK+OBquOBi+OBmOOBvizjgabjgaTjgYoNCivjgoLjgY4s44GC44GN44GKDQor44G/44GG44KJLOOBi+OBmuOBig0KK+OBn+OBi+OBvuOBpCzjgZHjgpPjgZgNCivjgZ/jgYvjgaAs44GX44KH44GG44GE44GhDQor44GT44KT44GpLOOBvuOBleOBkw0KK+OBquOBi+OBmOOBvizjgbLjgajjgZcNCivjga3jgozjgYQs44Gy44KN44GXDQor44GG44GX44GPLOOBiuOBleOCgA0KK+OBjeOBn+OBluOCjyzjgZMNCivjgZXjgaPjgZUs44Gu44G244Gy44KNDQor44GE44Gj44GX44GNLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OBrizjga7jgorjgaTjgZANCivjgYTjgZfjga/jgoks44G144G/44Gf44GLDQor44GL44KB44GK44GLLOOBn+OBoOOBig0KK+OBjeOBhuOBoSzjga7jgorjgYvjgZoNCivjgarjgYzjgYQs44Gy44Go44GXDQor44Gu44GQ44GhLOOBv+OBoeOBig0KK+OBiuOBl+OBnyzjgZ/jgYvjgYoNCivjgojjgZfjgoDjgoks44Go44GX44G/44GhDQor44GC44GL44G744KKLOOBv+OBpOOBruOBtg0KK+OBvuOCi+OBquOBjCzjgojjgZfjgaTjgZANCivjgojjgZfjga4s44GT44GG44Gf44KN44GGDQor44KE44GuLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgbLjgacNCivjgoTjgb7jgZDjgaEs44GL44Gk44Go44GXDQor44Gb44KT44Gp44GgLOOBvuOBleOCiw0KK+OChOOBmeOBoCzjgYLjgY3jgokNCivjgojjgZPjgYgs44GY44KF44KT44GE44GhDQor44KE44G+44GX44GfLOOBm+OBhOOBluOBtuOCjeOBhg0KK+OCiOOBl+OBoCzjgajjgb/jgZ7jgYYNCivjgoTjgb7jgZfjgZ8s44GZ44GZ44KADQor44KE44GZ44GELOOBi+OBmuOBig0KK+OChOOBvuOBiuOBiyzjgY3jgofjgYbjgZnjgZENCivjgojjgZPjgZss44Go44KC44GX44GSDQor44KE44G+44GQ44GhLOOBkeOCk+OBmA0KK+OChOOBr+OBjizjgoTjgZnjga/jgosNCivjgoTjgb7jgYrjgYss44Gy44KN44G+44KLDQor44KI44Gk44KELOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZMNCivjgojjgZfjgYvjgo8s44Go44GX44KN44GGDQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBmA0KK+OChOOBvuOBiuOBiyzjgbLjgo3jgZMNCivjgojjga3jgb/jgaQs44Gb44GE44GYDQor44KI44GX44GgLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBluOBjSzjgabjgaTjgYoNCivjgoTjgb7jgoLjgags44Gy44GL44KLDQor44KE44G+44GQ44GhLOOBv+OBruOCiw0KK+OChOOBvuOBhuOBoSzjgZXjgYvjgYgNCivjgojjgZfjgZbjgo8s44GL44Gk44G/DQor44KI44GX44GK44GLLOOBi+OBpOOBsuOBqA0KK+OChOOBvuOCguOBqCzjga7jgbbjgYoNCivjgoTjgb7jgYrjgYss44G/44Gh44Go44GXDQor44KE44G+44GW44GNLOOBguOBjeOCiQ0KK+OCiOOBl+OCgOOCiSzjgb7jgZXjgbLjgZMNCivjgoTjgZnjgaAs44GT44GG44GYDQor44KE44G+44GX44GfLOOBm+OBhOOBhOOBoQ0KK+OChOOBoCzjgZfjgpPjgoQNCivjgojjgZfjgaAs44GE44Gh44KN44GGDQor44KE44G+44KC44GoLOOBpOOBqOOCgA0KK+OChOOBvuOBoCzjgZTjgo3jgYYNCivjgojjga3jgaAs44GL44GK44KLDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBoCzjgY/jgZnjgYoNCivjgoTjgb7jgZDjgaEs44Gf44GL44G144G/DQor44KE44G+44GQ44GhLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZMNCivjgojjgZfjgaAs44GZ44GZ44KADQor44KE44G+44GX44GfLOOBl+OCh+OBhuOBnuOBhg0KK+OChOOCk+OBuSzjgYLjgaTjgbLjgo0NCivjgoTjgb7jgZDjgaEs44Gu44KK44KI44GXDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBmA0KK+OChOOBvuOBrSzjgZPjgYbjgZjjgo3jgYYNCivjgoTjgb7jgZXjgY0s44GR44KT44Gf44KN44GGDQor44KE44GZ44GK44GLLOOChuOBjeOBig0KK+OChOOBvuOBoCzjgYjjgYTjgZ7jgYYNCivjgojjgZfjgZbjgo8s44GY44KN44GGDQor44KE44GY44G+LOOBguOBjeOCiQ0KK+OChOOBquOBhCzjgabjgaTjgYoNCivjgoTjgb7jgZbjgY0s44GL44Ga44GKDQor44KE44G+44GG44GhLOOBteOBj+OBv+OBoQ0KK+OChOOBvuOBluOBjSzjgZnjgZnjgoANCivjgojjgZfjga4s44Gf44Gk44KG44GNDQor44KE44G+44GL44GSLOOBn+OBoOOBruOBtg0KK+OChOOBjizjgZjjgaTjga7jgooNCivjgoTjgZnjgaAs44G+44GV44GKDQor44KE44G+44KELOOBruOBtuOBig0KK+OBn+OBi+OBkOOBoSzjga7jgbzjgosNCivjgojjgZfjgaAs44Gy44KN44GXDQor44KI44GX44GuLOOBk+OBhuOBmA0KK+OChOOBvuOCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgoTjgY4s44GL44Gk44Gu44KKDQor44KE44G+44GgLOOBk+OBmeOBkQ0KK+OChuOBi+OCjyzjgb7jgZXjgajjgZcNCivjgoTjgb7jgoLjgags44GY44KH44GG44GYDQor44KE44G+44Gf44GrLOOBsuOCjeOBpOOBkA0KK+OChOOBvuOCgOOCjSzjgojjgZfjgYvjga0NCivjgojjgZfjgaAs44Go44GX44Gy44GTDQor44KI44GT44GL44KPLOOBqOOCguOCiOOBlw0KK+OChOOBvuOBluOBjSzjgZPjgYbjgYTjgaENCivjgoTjgb7jgoLjgags44Gf44GR44GKDQor44KI44GX44GuLOOBjeOCiOOBlw0KK+OChOOBvuOBrSzjgojjga3jgZ/jgYsNCivjgoTjgZnjgarjgYws44GC44GN44Gy44KNDQor44KE44Gq44GLLOOBkeOBhOOBhOOBoQ0KK+OChOOBvuOBrSzjgabjgaTjgYoNCivjgoTjgb7jgYbjgaEs44KI44GX44KG44GNDQor44KE44G+44GQ44GhLOOChuOBhuOBmA0KK+OChOOBvuOCj+OBjSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgYvjgo8s44GY44KF44KT44GE44GhDQor44KE44G+44GgLOOBi+OBmuOBvw0KK+OCiOOBk+OChOOBvizjgZfjgofjgYbjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KE44Gd44G/DQor44KE44G+44GQ44GhLOOBruOBvOOCiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgojjgZcNCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44Gq44GLLOOBi+OBmuOBvw0KK+OChOOBvuOCguOBqCzjgZ/jgaDjga/jgosNCivjgojjgZfjgaAs44Gf44GL44GKDQor44KE44G+44GgLOOBleOBqOOCiw0KK+OChOOBvuOBiuOBiyzjgojjgZfjgajjgoINCivjgojjgZPjgoTjgb4s44G+44GV44Gy44GVDQor44KE44G+44GV44GNLOOBruOCiuOBig0KK+OChOOBvuOCguOBqCzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgYvjgo8s44G+44GV44KI44GXDQor44KE44GG44GhLOOBn+OBoOOCiOOBlw0KK+OCiOOBl+OBr+OCiSzjgYvjgaTjgZgNCivjgojjgZPjgb/jgZ4s44GX44GS44KLDQor44KE44G+44KC44GoLOOBl+OCheOBhuOBnuOBhg0KK+OChOOBvuOCguOBqCzjgabjgovjgYoNCivjgoTjgb7jgoLjgags44GI44GE44GE44Gh44KN44GGDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OBoCzjgbXjgb/jgbLjgo0NCivjgoTjgZnjgYQs44G/44Gu44KLDQor44KE44G+44GQ44GhLOOBl+OBkuOCiw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgokNCivjgojjgZPjgZ8s44GI44GE44GE44GhDQor44KI44GX44GgLOOChuOBn+OBiw0KK+OCiOOBk+OChOOBvizjgbLjgafjgY0NCivjgoTjgZnjgYQs44GL44Ga44KC44GoDQor44KE44G+44GV44GNLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBiuOBiyzjga7jgbbjgYoNCivjgojjgZfjgaAs44GX44KF44KT44KN44GPDQor44KE44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgojjgYbjgZgNCivjgojjgZfjgaAs44Gb44GE44Ge44GGDQor44KE44G+44GW44GNLOOBm+OBhOOBl+OCjeOBhg0KK+OChOOBvuOBrSzjgarjgYrjgZgNCivjgobjgZ/jgass44GZ44GZ44KADQor44KI44Gt44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OCiOOBl+OBrizjgaDjgYTjgZnjgZENCivjgojjgZfjgaAs44Gf44GR44GKDQor44KI44GX44KC44KKLOOBsuOBleOBqOOCiA0KK+OCiOOBl+OCj+OCiSzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44Go44GX44GNDQor44KI44GX44GgLOOBqOOBl+OBi+OBmg0KK+OCiOOBl+OBoCzjgoDjgaTjgYoNCivjgoTjgb7jgoLjgags44KC44KK44Gy44GTDQor44GT44GY44G+LOOBj+OBq+OBi+OBpA0KK+OBiuOBrizjgZfjgZLjgYoNCivjgb7jgYjjgYvjgo8s44GT44GG44Gf44KN44GGDQor44GT44KT44GuLOOBruOBtuOChuOBjQ0KK+OBvuOBjeOBmyzjgY3jgojjgZcNCivjga7jgoDjgoks44G+44GV44Gf44GLDQor44KE44GZ44Gv44KJLOOBvuOBleOBsuOBkw0KK+OBquOBjOOBl+OBvizjgYLjgaTjgojjgZcNCivjgY3jgZ/jga/jgZcs44G+44GV44GKDQor44Gk44KLLOOBjeOCiOOBv+OBoQ0KK+OBpOOBj+OBoCzjgb/jgaHjgYoNCivjgabjgonjgYbjgaEs44Gf44GR44GXDQor44KE44G+44GgLOOBleOBqOOCiw0KK+OBm+OCk+OBsCzjgZnjgZnjgoANCivjgZXjgYjjgY0s44Gu44KK44GKDQor44GK44GL44GgLOOBl+OCh+OBhuOBhOOBoQ0KK+OBv+OChOOBhuOBoSzjgbLjgZXjgYoNCivjgZPjgpPjgaks44Go44GX44GKDQor44G144GN44GC44GSLOOChOOBmeOBig0KK+OBhOOBl+OBi+OCjyzjgaHjgojjgZ/jgZENCivjgYTjgo/jgoLjgags44G+44GV44GKDQor44GP44G8LOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBn+OBquOBiyzjgbLjgo3jgYvjgaQNCivjgo/jgaAs44Gu44KK44GKDQor44GE44KP44GKLOOBpOOBreOBruOCig0KK+OBj+OBvuOBjOOBhCzjgZ/jgYvjgbLjgo0NCivjgZnjgZrjgY0s44Gy44KN44G144G/DQor44Gf44GL44KA44KJLOOBsuOCjeOBlw0KK+OBq+OBl+OBhuOCiSzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgb/jgaTjgZgs44G+44GV44GXDQor44Gf44GN44GN44GfLOOBguOBjeOCiQ0KK+OBiuOBhuOBoSzjgZHjgpPjgZgNCivjgZPjgb4s44GC44GN44GKDQor44G+44GZ44GgLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgajjgZfjgo3jgYYNCivjgYTjgYTjgZrjgYss44GL44Ga44Gy44GTDQor44G+44KL44KE44G+LOOBruOBtuOBguOBjQ0KK+OBqOOBl+OBn+OBqyzjgajjgYrjgosNCivjga/jgarjgbbjgaEs44G+44GV44Gy44KNDQor44GE44G+44GELOOBvuOBleOBnuOBhg0KK+OBiuOBi+OBsuOCjSzjgaTjga3jgYoNCivjgY3jgoDjgoks44Go44GX44Gy44GTDQor44Gf44GY44G+LOOBvuOBleOBr+OCiw0KK+OBi+OCk+OBoCzjgaTjgonjgobjgY0NCivjganjgYQs44GK44GV44KADQor44GC44KJ44GM44GNLOOChOOBmeOBruOBtg0KK+OBjeOCheOBhuOBneOBmOOCkyzjgZHjgpPjgZnjgZENCivjgZ/jgZHjgYbjgaEs44Gk44Gt44KIDQor44GG44Gs44G+LOOBsuOBp+OBquOCig0KK+OChOOBvuOBkOOBoSzjgojjgZfjgZ/jgYsNCivjgojjgoLjgoos44KC44Go44Gy44GVDQor44GX44G+44GW44GNLOOBj+OBq+OBsuOBkw0KK+OBqOOBj+OChCzjgajjgZfjgYoNCivjgoTjgb7jgaAs44GC44GN44KJDQor44G144GL44KELOOBl+OBkuOBig0KK+OBiOOBkOOBoSzjga/jgovjgYoNCivjgZXjga4s44Gy44Gn44Gu44G2DQor44Go44GP44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBqOOCgizjgZXjgaDjgoANCivjgZfjgonjgYrjgYzjgo8s44Gy44KN44GXDQor44Gy44KJ44GuLOOBn+OBhOOBjQ0KK+OBiuOBoCzjgobjgYbjgZgNCivjgZ/jgarjgYss44KK44KH44GG44Ge44GGDQor44G144GY44GfLOOBguOBjeOCiQ0KK+OBguOCieOBhCzjgYLjgY3jgbLjgacNCivjgbXjgZjjgZ8s44KG44GG44GYDQor44Gq44GL44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBq+OBlyzjgYvjgZrjgZfjgZINCivjga/jgoks44GC44GN44Gy44KNDQor44Gh44GwLOOBqOOBl+OBkw0KK+OBhOOBl+OCj+OBnyzjgajjgZfjgbLjgZUNCivjgoTjgZDjgaEs44Gf44GR44Gy44KNDQor44Gm44GY44G+LOOBi+OBmuOBig0KK+OBn+OBpOOBnyzjgZfjgZLjgosNCivjgY/jgZXjgYss44Gf44GR44GXDQor44G144KL44GfLOOBn+OBkeOBr+OCiw0KK+OBlOOBqOOBhizjgb7jgZXjga7jgbYNCivjgYrjgaDjgY7jgoos44Gf44Gg44GXDQor44GP44G+44GM44GELOOBn+OBkeOCiw0KK+OCgOOCieOBi+OBvyzjgb/jgZrjgbsNCivjgb/jgoDjgoks44G+44GV44GKDQor44KI44GT44GELOOBj+OBq+OBsuOBkw0KK+OBhOOBquOBkizjgajjgoLjgobjgY0NCivjgYLjgoHjgb/jgoQs44G/44Gk44GKDQor44GE44Gu44GG44GILOOBleOBoOOBig0KK+OBrOOBvuOBnyzjgZjjgpPjgYTjgaENCivjgZXjgYvjgoLjgags44GU44G444GEDQor44Gy44KJ44G+44GkLOOBleOBoOOBig0KK+OBquOCiuOBnyzjgYvjgYrjgosNCivjgaTjga3jgb8s44GE44Gh44KN44GGDQor44Gf44GL44GX44G+LOOBteOBleOBsuOBkw0KK+OBv+OBmSzjgYvjgZrjgb8NCivjgZXjgY3jgoTjgb4s44KI44GX44Gy44GTDQor44G144GY44KP44KJLOOBn+OBoOOBlw0KK+OBqOOBv+OBnyzjgb7jgZXjgbLjgo0NCivjgaTjgarjgo/jgY0s44G/44Gt44GKDQor44Gv44Gb44GM44KPLOOBn+OBkeOBlw0KK+OBteOBj+OBluOCjyzjgobjgYbjgZ7jgYYNCivjgZTjgYjjgZEs44GC44GN44KJDQor44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBiOOBsOOBqCzjgZHjgYTjgZMNCivjgZPjgbDjgoTjgZcs44GX44KT44GE44Gh44KN44GGDQor44Gy44KJ44Gk44GLLOOBjeOCiOOBlw0KK+OBleOBqOOBhizjga7jgbbjgYoNCivjgYTjga7jgYbjgYgs44GC44GN44KJDQor44Gv44GZ44Gs44G+LOOBvuOBleOBig0KK+OBteOCi+OBr+OBnyzjgYLjgZXjgZMNCivjgYbjgYjjga4s44GC44Gk44GXDQor44Gf44GR44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBj+OBq+OBn+OBkSzjgojjgZfjgYoNCivjgbLjgonjgZ8s44KG44GG44GTDQor44Gv44Gb44GM44KPLOOBkuOCkw0KK+OBteOBj+OBr+OCiSzjgYLjgaTjgZcNCivjgbXjgarjgZDjgaEs44Go44GK44KLDQor44GC44G+44GuLOOBruOCiuOBkw0KK+OBiuOBiuOBrizjgb/jgZrjga7jgooNCivjgZnjgo8s44Gu44KK44GTDQor44Gu44GM44G/LOOBv+OBiw0KK+OBhuOCgeOBrizjgoTjgZnjgobjgY0NCivjgYTjgZHjga4s44KG44GG44GTDQor44Gq44GL44GY44G+LOOBr+OBquOBkw0KK+OBhOOBl+OBhCzjgY3jgofjgYbjgZMNCivjgZXjgYTjgajjgYYs44Go44KC44GTDQor44Gf44Gq44GLLOOBi+OBmuOChuOBjQ0KK+OBn+OBpuOBhOOBlyzjgajjgZfjgYvjgZoNCivjgZnjgZrjgY0s44KI44GX44Gy44GTDQor44GN44Gu44GX44GfLOOBsuOBi+OCiw0KK+OBiuOBiuOBleOCjyzjgojjgZfjgbLjgo0NCivjgYTjgacs44GV44GN44GTDQor44GK44GM44KPLOOBl+OBuw0KK+OBiOOBruOCguOBqCzjgo/jgY3jgZMNCivjgYrjgZbjgo8s44G/44Ga44G7DQor44Gv44Gf44GR44KE44G+LOOBqOOCguOBsuOCjQ0KK+OBhOOBhOOBoCzjgb/jgaTjgYLjgY0NCivjgZfjga7jgZbjgY0s44GY44KF44KT44GE44GhDQor44GK44GL44GgLOOCiuOBiOOBkw0KK+OBn+OBi+OBvizjgb7jgZXjgZcNCivjgoTjgY4s44Gy44KN44KG44GNDQor44GV44GL44GELOOBvuOBleOCiA0KK+OBl+OBv+OBmizjgZPjgYbjgZgNCivjgbvjgorjgYvjgo8s44KI44GG44GTDQor44Gq44GM44GKLOOBk+OBhuOBuOOBhA0KK+OBsuOCieOBhOOBlyzjgb7jgooNCivjgZXjgYzjgo8s44Gf44KC44GkDQor44Gv44KJ44GgLOOBvuOBleOBvw0KK+OBn+OBi+OBr+OBlyzjgorjgoXjgYbjgYTjgaENCivjgZ/jgaEs44G+44GV44KIDQor44Gy44GILOOBjeOBv+OBig0KK+OBn+OBoCzjgb/jgarjgZMNCivjgojjgZfjgoLjgags44Gy44KN44GTDQor44KC44Gh44Ga44GNLOOBoeOBsuOCjQ0KK+OBn+OBquOBiyzjgZPjgYbjgZgNCivjgZ/jgZDjgaEs44G+44KG44G/DQor44GV44Go44GGLOOBhOOBj+OBig0KK+OBleOBi+OBl+OBnyzjgobjgY3jgYgNCivjgYvjgo/jgZfjgb4s44G+44KG44G/DQor44G744KK44GQ44GhLOOBi+OBiuOCig0KK+OBteOBj+OBvizjgZnjgb/jgZ/jgYsNCivjgYvjgo/jgZ/jgass44GC44GN44KJDQor44GY44Gz44GNLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgb/jgaTjgosNCivjgZfjgYrjgaQs44GE44GV44GKDQor44Go44Gw44GfLOOBruOCiuOBi+OBmg0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgZMNCivjgYrjgbXjgaEs44Gy44KN44G/44GhDQor44GX44Gu44Gv44KJLOOBruOBtuOBig0KK+OChOOBvuOBi+OCjyzjgYvjgZrjgZ/jgaANCivjgZ/jgoDjgoks44Go44GX44GKDQor44Gv44Gf44GR44KE44G+LOOBn+OBi+OBkw0KK+OBn+OBquOBiyzjgbLjgYvjgosNCivjgYvjgarjgZbjgo8s44Gy44Gn44GC44GNDQor44Gf44GL44Gv44GXLOOBiOOCiuOBkw0KK+OBteOBmOOCgOOCiSzjgb/jgarjgZMNCivjgarjgYzjgZfjgb4s44KI44GX44KG44GNDQor44GN44Gu44GX44GfLOOBqOOBjeOBkw0KK+OBk+OCk+OBqSzjgb7jgb8NCivjgYLjgpPjgbks44G+44Gq44G/DQor44GV44GE44Go44GGLOOBhOOBmuOBvw0KK+OBguOBleOBoCzjgb/jgY0NCivjgY3jga7jgZfjgZ8s44G144G/44GIDQor44GL44Gp44KELOOBguOBjeOBkw0KK+OBhuOBiOOBoCzjgajjgYrjgosNCivjgZXjgYTjgajjgYYs44KC44GrDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBluOBjSzjgZfjgoLjgpMNCivjgYrjgZbjgo8s44Gm44KL44Gy44GVDQor44Gv44KE44GXLOOBiuOBleOCgA0KK+OChOOBjOOCjyzjgb/jgaHjgYoNCivjgZ/jgYvjga/jgZcs44Gf44G/44GKDQor44Go44G/44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBguOBoOOBoSzjgobjgYbjgZ7jgYYNCivjgYLjgYvjgYTjgo8s44GX44KH44GG44GZ44GRDQor44GL44GM44KELOOChuOBjeOBruOBtg0KK+OBguOCieOBhCzjgZXjgYrjgooNCivjgYrjgZfjgY3jgoos44Gf44GL44GXDQor44KE44G+44KA44KJLOOBiOOBhOOBmA0KK+OBn+OBi+OChOOBvizjgajjgZfjgobjgY0NCivjgojjgZPjgoTjgb4s44GK44GV44KADQor44Gw44KTLOOBpOOBkOOBig0KK+OBhOOBmuOBvyzjgojjgZfjga7jgooNCivjgb/jgZrjga4s44Gf44Gg44GKDQor44G244KT44KELOOBv+OBruOCiw0KK+OBpuOCieOBiuOBiyzjgZfjgofjgYbjgZgNCivjgb/jgoTjgZfjgZ8s44G/44Gu44KLDQor44GC44GV44G+LOOBkeOBhOOBkw0KK+OBleOBleOBjSzjgabjgaTjgYoNCivjgavjgZfjgYos44KI44KK44GoDQor44G144KL44KELOOBpuOBpOOBig0KK+OBhOOBvuOBoCzjgbLjgafjgobjgY0NCivjgYTjgZfjga/jgoks44GE44GP44GIDQor44Gv44GX44KC44GoLOOBv+OBjeOBig0KK+OBvuOCi+OChOOBvizjgajjgoLjgobjgY0NCivjgYvjgZgs44GL44Ga44Gf44GLDQor44GL44Gt44GTLOOBr+OBquOBkw0KK+OBquOBi+OBoCzjga7jgorjgbLjgagNCivjgaHjgZbjgo8s44Gq44G7DQor44GV44KPLOOBguOBleOBkw0KK+OBqOOBjOOCgSzjgb/jgo/jgZMNCivjgojjgZfjgaAs44GS44KTDQor44GK44GK44GuLOOBsuOCjeOBkw0KK+OChOOBkyzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgYvjgo8s44GC44GN44Gu44KKDQor44GT44Go44GgLOOBsuOCjeOBkw0KK+OBleOBjOOCjyzjgYvjgZrjgb4NCivjga7jgZDjgaEs44GL44Ga44G+44GVDQor44Gn44KT44G8LOOBsuOCjeOBteOBvw0KK+OBr+OCi+OBjSzjgYLjgY3jgbLjgZMNCivjgYTjga0s44GX44KH44GG44GI44GEDQor44GK44GK44GuLOOBj+OBq+OBig0KK+OBi+OBreOBoCzjgZ/jgaTjgbLjgZMNCivjga7jgZDjgaEs44GC44GN44KJDQor44GK44GK44GwLOOBsuOCjeOBv+OBpA0KK+OBiuOBnyzjgajjgY/jgYTjgaHjgo3jgYYNCivjgZfjgoLjgb7jgY0s44KE44GZ44GKDQor44KP44Gf44Gy44GNLOOChuOBhuOBkw0KK+OChOOBvuOCguOBqCzjgb7jgooNCivjgbXjgZjjgoDjgoks44G+44KK44GTDQor44Gd44GG44G/44KELOOBkeOCk+OBmA0KK+OBl+OBvizjgY/jgb8NCivjgZXjgZXjgY0s44Gf44GL44KG44GNDQor44GL44GM44KPLOOCjOOBhOOBkw0KK+OBn+OBkeOBhuOBoSzjgY/jgb/jgZMNCivjgZXjgYTjgY0s44G/44KI44GTDQor44GE44Go44GGLOOBruOCiuOBkw0KK+OBjeOCgOOCiSzjgojjgYbjgZgNCivjgZ/jgbDjgZ8s44Gf44GL44Gy44KNDQor44GP44KBLOOBqOOCiOOBguOBjQ0KK+OBn+OBi+OBoCzjgb7jgorjgZMNCivjgZ/jgoDjgoks44G/44GIDQor44Gf44GL44G+44GkLOOBvuOBjeOBkw0KK+OBl+OCjeOBl+OBnyzjgZfjgoXjgYbjgZXjgY8NCivjgYvjgajjgYYs44Go44KC44KG44GNDQor44GC44KP44GELOOBqOOBl+OBruOCig0KK+OBu+OBleOBiyzjga7jgorjgZMNCivjgZ/jgarjgYss44KL44G/DQor44G/44Gy44KJLOOBl+OCheOBhuOBleOBjw0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjgYrjgZbjgo8s44KG44GN44GKDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBv+OChOOBluOBjSzjgorjgoXjgYbjgZ7jgYYNCivjgoLjgorjgZ/jgass44KG44GL44KKDQor44GE44KP44GQ44KNLOOBpOOBqOOCgA0KK+OBhuOBiOOBvizjgZfjgofjgYbjgZMNCivjgbXjgYvjgZ8s44Gh44GLDQor44Gy44KN44GbLOOBguOBjeOBkw0KK+OBiuOBi+OBoCzjgbLjgo3jgb8NCivjgYvjgajjgYYs44GC44KK44GLDQor44G+44GNLOOBleOChuOCig0KK+OBruOBoCzjgajjgoLjgYvjgZoNCivjgY/jgbws44GN44KH44GG44GTDQor44Gr44GX44GN44GK44KKLOOBpOOBjuOBig0KK+OChOOBrizjgZjjgoXjgpPjgZMNCivjgYvjgo/jgoDjgZPjgYYs44Gq44GK44GNDQor44KE44GZ44KA44KJLOOBv+OCiOOBkw0KK+OBqOOBq+OBlyzjgajjgoLjgZMNCivjgoTjgb7jgoLjgags44Gy44GL44KLDQor44GX44KC44GgLOOBoOOBhOOBmeOBkQ0KK+OBiuOBiuOBn+OBqyzjgY/jgavjgYoNCivjgYrjga7jgZXjgags44Gv44KTDQor44GL44Gq44GW44KPLOOBsuOCjeOBguOBjQ0KK+OBiuOBi+OCguOBqCzjgb/jgo/jgZMNCivjgZXjgYTjgajjgYYs44G/44Gq44GTDQor44GL44GX44KP44Gw44KJLOOBruOBtuOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjga7jgbYNCivjgZXjgYTjgajjgYYs44G+44Gq44G2DQor44G+44Gk44GgLOOCiOOBl+OBguOBjQ0KK+OBn+OBoeOBluOBjSzjgo/jgYvjgZMNCivjgZPjgpPjgaks44Go44KC44GTDQor44GX44G/44GaLOOBoOOBhOOBmeOBkQ0KK+OBquOBjOOBiuOBiyzjgYvjgYrjgooNCivjgarjgYvjgYzjgo8s44GC44Gk44GXDQor44Gf44GL44GoLOOBsuOCjeOChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgarjgovjgZss44GN44KI44G/DQor44GK44GQ44G+LOOBi+OBiA0KK+OBn+OBi+OBr+OBlyzjgb/jgarjgYgNCivjgY3jgY/jgaEs44Gb44GE44GTDQor44GV44Go44GGLOOBr+OBmOOCgQ0KK+OBiOOCk+OBqSzjgb7jgorjgZMNCivjgZ/jgoDjgoks44Go44KC44Gu44KKDQor44KE44G+44KC44GoLOOBk+OBhuOBmA0KK+OBguOBleOBhCzjgojjgZfjgbLjgo0NCivjgoLjgoos44GK44GV44KADQor44Gf44GL44GX44KNLOOCgeOBkOOBvw0KK+OBiuOBiyzjgZXjgYTjgYsNCivjgYvjgajjgYYs44Go44GX44KEDQor44GE44GQ44GhLOOBleOBoeOBkw0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgojjgZfjgaAs44GT44GG44GYDQor44GC44GN44KC44GoLOOBvuOBqeOBiw0KK+OBq+OBl+OBhCzjgZjjgoXjgpPjgZgNCivjgo/jgZfjgYrjgYss44GT44GG44GYDQor44GE44Gs44G+44KLLOOBsuOCjeOBmA0KK+OBu+OBlyzjgZfjgZrjgYsNCivjgojjga3jgoTjgb4s44G+44GV44Gu44G2DQor44GP44KN44G5LOOChuOBhuOBhOOBoQ0KK+OBhOOBl+OBhCzjgbLjgZXjgYgNCivjgbLjgZDjgaEs44GY44KF44KT44GE44GhDQor44Gq44GL44GgLOOBn+OBi+OBr+OCiw0KK+OBiuOBruOBp+OCiSzjgarjgYrjgZMNCivjgajjgaAs44Go44GX44KG44GNDQor44G+44GI44GgLOOBsuOCjeOBkw0KK+OBquOBjOOBhCzjgobjgY3jgZMNCivjgZPjgazjgZ8s44Gy44GV44KI44GXDQor44GX44Gw44GV44GNLOOBi+OBpOOBqOOBlw0KK+OBhuOBi+OBhCzjgYLjgY3jgYsNCivjgZnjgZrjgY0s44Gh44Gv44KLDQor44Gy44KJ44GNLOOBruOBtuOBkw0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZMNCivjgoTjgb7jgaAs44G+44GV44G/DQor44GL44Gp44GP44KJLOOBvuOBleOBlw0KK+OBn+OBi+OBleOBjSzjgZPjgYbjgZgNCivjgarjgYvjgZ8s44GN44KI44G/DQor44Gf44Gr44GL44KPLOOBu+OBmuOBiA0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjgoQNCivjgb/jgarjgb8s44GC44KE44G/DQor44GK44GK44Gs44GNLOOBv+OBruOCiw0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44Gf44GL44GKDQor44Gy44GgLOOBiuOBleOCgA0KK+OBleOBj+OBvizjgZfjgb4NCivjgavjgYjjgaAs44Gf44GL44GXDQor44KI44GT44GELOOCjOOBvw0KK+OCiOOBreOBj+OCiSzjgZ/jgZHjgYoNCivjgbDjgpPjgbAs44KK44GIDQor44KE44G+44GgLOOBguOBjeOBsuOBpw0KK+OBhOOBvuOCgOOCiSzjgovjgorjgZMNCivjgYTjgZHjgaAs44Gh44GC44GNDQor44Gq44GL44KA44KJLOOBv+OBquOBkw0KK+OBmeOBqeOBhizjgorjgYgNCivjgarjgYvjgZ3jga0s44GL44GK44KKDQor44GK44GK44GV44KPLOOBoeOBi+OBkw0KK+OBleOBqOOBhizjgZfjgaHjgo3jgYYNCivjgYjjgYTjganjgoEs44KG44GNDQor44GE44GM44KJ44GXLOOBv+OBiw0KK+OBn+OChCzjgZ/jgYvjgZMNCivjgYrjgYrjgbLjgoks44KI44GX44GTDQor44GV44GL44KC44GoLOOBleOBqOOBlw0KK+OBmeOBjuOCguOBqCzjgZPjgYbjgZgNCivjgYvjgajjgYYs44G/44Gq44GTDQor44KI44GX44GELOOBn+OBoOOBsuOCjQ0KK+OBhOOCj+OChCzjgojjgYbjgZMNCivjgY3jga7jgZfjgZ8s44GN44KH44GG44GTDQor44GZ44GO44GV44KPLOOBi+OBmuOCiA0KK+OCj+OBoCzjgb/jgojjgZMNCivjgb/jgoTjgZfjgZ8s44GI44G/44GTDQor44GG44GI44GuLOOBruOBtuOBkw0KK+OBiuOBiuOBn+OBjSzjgobjgb/jgZMNCivjgYTjgZfjgbDjgZcs44GN44KH44GG44GTDQor44GE44KP44GX44GfLOOBvuOBleOBig0KK+OBhOOBl+OBi+OCjyzjgbLjgafjgbLjgZMNCivjgY3jgZcs44Gf44Gm44GKDQor44G+44KL44KE44G+LOOBsuOBleOBig0KK+OBu+OCk+OBvizjgZ/jgYvjgYoNCivjgY/jgZnjgoLjgags44GE44GV44GKDQor44GE44G+44GuLOOBjeOBv+OBsuOBpw0KK+OBiuOBiuOBq+OBlyzjgZvjgYTjgZ7jgYYNCivjgoTjgb7jgaAs44GX44KH44GGDQor44G144GY44GK44GLLOOBqOOCieOBig0KK+OBr+OBquOBoCzjgoTjgZnjgYvjgZoNCivjgZfjgbDjgZ8s44GC44GV44GKDQor44G/44KE44GX44GfLOOChuOBjeOBig0KK+OBi+OBleOBr+OCiSzjgb7jgZXjgYoNCivjgYrjgYrjgoTjgZEs44Gv44KL44GKDQor44GE44G+44GELOOBj+OBq+OBig0KK+OBk+OBm+OBjSzjgb7jgorjgZMNCivjgYrjgYrjgZ8s44Gu44G844KLDQor44G+44Gh44GELOOBi+OBmuOBsuOCjQ0KK+OBjeOBj+OBoSzjgZvjgaTjgYoNCivjgbLjgZDjgaEs44GL44Ga44GIDQor44G/44Gq44KI44GXLOOBmOOCheOCk+OBmA0KK+OBmeOBmuOBjSzjgbLjgo3jgYvjgZoNCivjgarjgpPjgbAs44Gq44GK44GNDQor44GK44GK44Gr44GXLOOBoOOBhOOBleOBjw0KK+OBr+OChOOBl+OBoCzjgZ/jgYvjgajjgZcNCivjgZ/jgarjgYss44Gy44Gn44Gy44KNDQor44GL44Gt44GTLOOBi+OBmuOBruOCig0KK+OBpOOBoeOChCzjgajjgoLjgobjgY0NCivjgYTjgYTjgaAs44GI44Gk44GKDQor44G144KL44KELOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgZANCivjga/jgovjga/jgoks44Gf44GL44GXDQor44G744KK44GILOOCiOOCiuOBl+OBkg0KK+OBiuOBiuOBnyzjgZ/jgZHjgZcNCivjgZnjgZrjgY0s44KE44GZ44Gk44GQDQor44GK44GoLOOBvuOBleOBqOOBlw0KK+OBquOBi+OBjOOCjyzjgb7jgobjgb8NCivjgYvjgo/jgZfjgb4s44KI44GG44G444GEDQor44Gm44KJ44KC44GoLOOChuOBhuOBmOOCjeOBhg0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgojjganjgarjgo8s44KG44GL44KKDQor44GT44Gg44GE44KJLOOBsuOBp+OBguOBjQ0KK+OBi+OBj+OCieOBhCzjgojjgYbjgZMNCivjgYrjgZDjgoos44Gy44KN44KI44GXDQor44Gv44GfLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOCiizjgYvjgZrjgYoNCivjgojjgZfjgYrjgYss44Gb44GE44GYDQor44GX44GS44GfLOOBv+OBoeOBguOBjQ0KK+OBi+OCj+OBkOOBoSzjgajjgoLjgbLjgo0NCivjgYvjga3jgZMs44G+44GV44GKDQor44GC44GV44GyLOOBn+OBoOOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYLjgorjgoTjgb4s44Gk44GQ44GKDQor44Gk44GY44GfLOOBn+OBpOOBig0KK+OCiOOBl+OBr+OBlyzjgbLjgafjgYoNCivjgb/jgZfjgb4s44Gb44GE44GXDQor44GV44Go44GGLOOBi+OBpOOBmA0KK+OBi+OBreOBvuOCiyzjgYjjgaTjgbLjgo0NCivjgYvjga3jgZMs44KE44GZ44GXDQor44GI44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBv+OBpOOBj+OBoSzjgZjjgoXjgpMNCivjgoLjgoos44GN44G/44GKDQor44GK44GhLOOBm+OBhOOBhOOBoQ0KK+OBvuOBiOOBi+OCjyzjgYvjgZrjgYoNCivjgZ/jgarjgYss44G+44GV44Gu44KKDQor44GK44KK44GM44GVLOOBvuOBpOOBruOCig0KK+OBk+OBm+OBjSzjgYvjgYrjgosNCivjgbLjgonjgoTjgb4s44Gf44Gg44GXDQor44GT44G844KKLOOBiOOBpOOCiOOBlw0KK+OBquOBi+OBhuOBiCzjgZ/jgaTjgYoNCivjgZnjgajjgYYs44G+44GV44GKDQor44GU44Go44GGLOOBjeOCiOOBsuOBkw0KK+OBpOOBi+OCguOBqCzjgbLjgo3jgb/jgaENCivjgYjjgbPjga/jgoks44KI44GX44GC44GNDQor44KC44KK44GuLOOBsuOBp+OBruOCig0KK+OBmeOBmuOBjSzjgb7jgZXjgYLjgY0NCivjgojjgZfjgaAs44G+44GT44GoDQor44GE44G+44GELOOBvuOBleOBjQ0KK+OBsuOBrizjgoDjga3jgZ/jgYsNCivjgojjgZfjgaAs44G/44GqDQor44GK44Gr44Ga44GLLOOBmeOBv+OBn+OBoA0KK+OBn+OBi+OBjizjgb7jgZXjgbLjgZMNCivjgYrjgoDjgoks44GL44Gk44Gy44GoDQor44GG44Gh44KE44G+LOOBiOOBpOOBkw0KK+OBj+OCjeOBi+OCjyzjgojjgZfjga7jgbYNCivjgoTjgb7jgZfjgZ8s44Gf44GN44GKDQor44Gr44GX44GgLOOBsuOBleOBiA0KK+OBi+OBl+OCj+OBjizjgbLjgo3jgZcNCivjgYvjga3jgZMs44KG44GN44GTDQor44GP44G+44GgLOOBv+OBjeOBig0KK+OBk+OBmOOBvizjgarjgYrjgZrjgb8NCivjgZfjgonjgYQs44Gm44Gk44Gy44GTDQor44G144KL44GL44KPLOOCiuOBiA0KK+OCgOOBl+OBhizjgZ/jgaDjgYLjgY0NCivjgojjgZfjga4s44Go44GX44GKDQor44GZ44GO44GG44KJLOOBm+OBhOOBhOOBoQ0KK+OBteOBmOOBleOCjyzjgb7jgooNCivjgZXjgajjgYYs44GC44GN44Gy44KNDQor44GI44GW44GNLOOBn+OBi+OChuOBjQ0KK+OCgOOCieOBi+OBvyzjgZ/jgYvjgYoNCivjgavjgo/jgoTjgb4s44G+44Gk44KC44KKDQor44KE44GZ44GuLOOBv+OBiw0KK+OBqeOBhuOBoCzjgajjgoLjgbLjgZMNCivjgYvjgZjjgYQs44KC44Gq44G/DQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBvuOBpOOBquOCiizjgYTjgZXjgYoNCivjgYrjgYrjgbDjgoTjgZcs44GT44GG44GN44GhDQor44Gf44GL44Gv44GXLOOBn+OBj+OChA0KK+OBvuOBpOOCgOOCiSzjgoTjgZnjgb7jgZUNCivjgZPjgoLjgoos44G+44GN44GTDQor44Gu44Ge44GILOOBi+OBmuOBiA0KK+OBiuOBrizjgY3jgojjgb8NCivjgYvjgpPjga4s44GT44Ga44GIDQor44GV44Go44GGLOOBkeOBhOOBkw0KK+OBruOBquOBiyzjgo/jgYvjgZMNCivjgYvjgo/jga/jgoks44KG44G/DQor44Gq44GL44KA44KJLOOBvuOChuOBvw0KK+OChOOBvuOBl+OBnyzjgajjgZfjgYvjgZoNCivjgZPjgYbjgYTjgaEs44KC44KC44GIDQor44GE44Gf44KELOOBsuOBp+OBig0KK+OChOOBvizjgbXjgb/jgZMNCivjgoTjgb7jgoLjgags44Gd44GG44GE44Gh44KN44GGDQor44GP44KJ44GfLOOChOOBmeOBkw0KK+OBi+OCj+OBmizjgYTjgZ/jgosNCivjgb/jgYvjgb8s44GT44GG44GE44GhDQor44Gf44GN44GM44KPLOOCiOOBl+OBi+OBmg0KK+OBn+OBquOBiyzjgbLjgo3jgYLjgY0NCivjgb/jgoTjgZ8s44Gf44GL44Gm44KLClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMzg1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQKQEAgLTAsMCArMSwyMjc0OSBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivjgqLjgq3jg6Ljg4gs44Ok44K544KqDQor44Ki44Kt44OQLOOCt+OCsuODqw0KK+OCouODqeOCpCzjg5Ljg4fjgqLjgq0NCivjgqLjg6njgqQs44Kx44Oz44Kk44OBDQor44Ki44Kr44Ks44OvLOODiOOCt+OCqg0KK+OCouODqeOCrSzjgrvjgqTjgrQNCivjgqLjgqTjgqvjg68s44OO44Oq44KqDQor44Ki44Kt44OOLOODpuOCreOCqg0KK+OCouOCreODpOODnizjg4Tjg6jjgrcNCivjgqLjgrXjgqQs44OS44OI44K3DQor44Ki44OZLOODnuODouODqw0KK+OCouODquOCrCzjg4Tjg4jjg6ANCivjgqLjgq3jgr8s44Oo44K344OG44OrDQor44Ki44Kr44OE44KrLOOCq+OCuuODkuOCsw0KK+OCouODqeOCpCzjg57jgrXjg4/jg6sNCivjgqLjgrXjg4/jg6ks44Kr44K644KqDQor44Ki44OE44OfLOODnuOCteOCouOCrQ0KK+OCouODr+ODpCzjg5Ljg4jjgrcNCivjgqLjgrXjgqvjg68s44OI44K344Ki44KtDQor44Ki44Kq44KtLOOCquOCteODoA0KK+OCouODr+OCuizjgqLjgq3jg6kNCivjgqLjgq3jgq/jgrUs44Oo44Km44K544KxDQor44Ki44Kq44Ok44KuLOODj+ODhOOCq+OCug0KK+OCouOCuOOCteODryzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgqTjgr0s44Ok44K544K3DQor44Ki44Kq44K344OeLOODgeODqOOCq+OCug0KK+OCouODiOOCpizjg57jgrXjg5LjgrMNCivjgqLjgrXjg44s44Oo44K344OkDQor44Ki44Oq44KsLOOCveOCpuOCpOODgQ0KK+OCouOCquOCrSzjg6rjg6fjgqbjg5jjgqQNCivjgqLjgqTjgqvjg68s44Om44Kt44KqDQor44Ki44Kt44K/LOODnuOCteODkuODrQ0KK+OCouOCteODjizjg47jg6rjgqLjgq0NCivjgqLjgrXjg4gs44OS44OH44K3DQor44Ki44Op44KtLOODqOOCt+OCq+OCug0KK+OCouODs+ODieOCpizjg6TjgrnjgrcNCivjgqLjgrXjgqvjg68s44OS44Ot44K3DQor44Kk44Kk44OALOODnuOCs+ODiA0KK+OCpOODr+OCteODryzjg57jgrXjgq0NCivjgqTjgrfjgqvjg68s44Oe44K144KqDQor44Kk44OO44Km44KoLOODkuODreODkuODiA0KK+OCpOOCt+ODj+ODqSzjg6jjgrfjg47jg6oNCivjgqbjgqvjgrgs44K144OB44KzDQor44Km44Oh44K/44OLLOOCq+ODhOODkuOCsw0KK+OCquOCseOCv+ODiyzjgrHjg7PjgrgNCivjgqrjgqrjgrnjgq4s44Ki44Kt44OS44OtDQor44Kq44Kq44Kr44OvLOODn+OCreODkuOCsw0KK+OCq+ODiOOCpizjg57jgrXjg4jjgrcNCivjgqvjg6Is44Oe44K144Ki44KtDQor44Kv44Oe44Ks44KkLOODnuOCteOCtw0KK+OCs+ODs+ODiSzjgqLjgq3jg6kNCivjgrnjgq7jg6Ljg4gs44Kq44K144OgDQor44OP44Oe44K144KtLOODqOOCt+ODjuODqg0KK+ODgeODgCzjgrfjg6Xjg7PjgrgNCivjg4rjgqvjg6Djg6ks44Kx44Kk44K+44KmDQor44OK44Ks44K/LOODgeOCqOOCsw0KK+OCteODr+ODoOODqSzjgqvjg4HjgrMNCivjg4rjg6vjgqos44Oo44K344OO44OWDQor44OK44Oq44K/LOODpuODn+OCsw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrMNCivjg5Xjgrjjgr8s44Kx44Kk44KzDQor44OV44K444Ov44OpLOOCv+OCq+OCsw0KK+ODluODqOOCpizjg4bjg4TjgqoNCivjg5vjg6os44Kz44Km44K4DQor44Of44OK44Of44Og44OpLOODgeOCouOCrQ0KK+ODn+ODpOOCuOODnizjg4Hjg6jjg6oNCivjg6Tjg57jg4As44Oe44OqDQor44Ok44Oe44Kw44OBLOOCv+OCq+OCtw0KK+ODpOODiuOCruODj+ODqSzjg5/jg4njg6oNCivjg6jjgrfjg44s44K344Oz44Kk44OBDQor44OL44Kk44OALOOCr+ODi+ODkuOCsw0KK+OCquOCquOCpOODpOODnizjg6bjgqbjgrMNCivjgqvjg4rjgqzjg68s44Kk44OB44Ot44KmDQor44Kt44Og44OpLOODquOCqOOCsw0KK+ODhOOCq+OCtuOCrSzjg5/jg5sNCivjgqvjg6/jg4As44OK44Kq44KzDQor44Ki44K144Kr44OvLOODn+OCteOCsw0KK+OCt+ODouODhCzjg57jgrXjgqLjgq0NCivjgqrjgqss44K/44Kr44OS44OIDQor44Kq44Ks44OvLOOCs+OCueOCsQ0KK+OCv+OCpOODqSzjgrfjg6fjgqbjgqTjg4ENCivjgqTjgrfjg44s44Kt44Oo44OK44KsDQor44Kt44Of44K344OeLOOCouOCreODqQ0KK+OCteODiOOCpizjg4bjg4Tjg6QNCivjg6Tjg57jg4As44Kq44K144OgDQor44Kq44Kq44K/LOODiuOCquODn+ODgQ0KK+ODnuOCqOODgCzjg5Ljg4fjg4jjgrcNCivjgqvjgrbjg6njgrcs44Of44OE44OrDQor44K044OI44KmLOOCq+ODhOODjuODqg0KK+ODm+OCtyzjg57jg6Ljg6sNCivjgq/jg63jg4As44K344Oz44OkDQor44OE44Kr44Ov44KtLOODiOOCt+ODpA0KK+OCpOODiuOCrOOCrSzjg57jgrXjg5Ljg60NCivjgqTjg6/jg6Ljg4gs44K/44Oi44OEDQor44OE44Or44K/LOOCv+OCq+OCtw0KK+OCpOOCt+OCuOODnizjg6rjg6fjgqbjg5jjgqQNCivjg6Tjg57jg4rjgqss44OS44Ot44OI44K3DQor44Km44Ko44KtLOOCouOCreOCsw0KK+ODi+OCt+ODoOODqSzjgqLjg4TjgrMNCivjg6/jgqTjg4As44K/44OA44K3DQor44Oo44K344OALOODq+ODnw0KK+OCt+ODluODpCzjg6bjgr/jgqsNCivjgqLjg4jjgqYs44Oe44K144OO44OqDQor44Of44Ok44K/LOOCq+OCquODqw0KK+OCquOCquOCv+OCrSzjg4Tjgq7jgqoNCivjgq3jg6jjgqrjgqss44Oe44Kz44OIDQor44Kq44Kq44K/44OLLOOCv+OCq+OCtw0KK+ODi+OCt+ODr+OCrSzjg4rjgqrjg58NCivjg4vjgrfjg6Tjg54s44K/44Kr44K3DQor44Of44K344OeLOOCv+OCq+ODpuOCrQ0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjgqTjg57jgqos44Of44K644ObDQor44Kq44K244KtLOOCs+OCpuOCuA0KK+OCu+OCreODpCzjg57jgrXjg6bjgq0NCivjg4Tjgq/jg4As44OO44OW44Om44KtDQor44Of44Oo44K3LOODjuODluODnuOCtQ0KK+ODqOOCt+ODnyzjgr/jgqvjg6bjgq0NCivjgrXjgrXjgqrjgqss44K/44Kr44K3DQor44Kq44K344OeLOODgeODj+ODqw0KK+OCr+ODnOOCvyzjg4HjgrrjgrMNCivjgrfjg5Djg6Tjg54s44K344Ol44Km44K+44KmDQor44Kq44Kq44Kv44OcLOODiOODiuODnw0KK+OCv+ODgeODjizjgrjjg6Xjg7MNCivjg6/jg4As44Of44OB44OoDQor44Oe44OE44K344K/LOODnuOCteODouODqg0KK+OCs+ODoOODqSzjg6Tjgrnjg5LjgrMNCivjg57jgq3jgrfjgr8s44Kx44Kk44KzDQor44Ki44Kr44KqLOODpOOCueODkuODrQ0KK+ODj+OCt+ODouODiCzjg5Ljg4jjgrcNCivjgqrjgqrjg44s44Kr44K644KqDQor44K744Kt44Oi44OILOODqOOCt+OCqg0KK+ODnuOCqOODgCzjg4Hjgqvjg6kNCivjg5/jg4Tjg5vjg6os44OK44Kq44KtDQor44Of44OK44Of44K+44OOLOODnuOCteOCrQ0KK+OCu+OCrOODryzjgqvjgqrjg6oNCivjgrnjgrrjgq0s44OI44Oo44K4DQor44Kt44K/44Ks44OvLOODqOOCt+OCv+OCqw0KK+ODqOOCt+ODpOOCuSzjgrjjg63jgqYNCivjg6Tjg57jg6Ljg4gs44Oe44OqDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODr+OCq+ODnyzjg6jjgqYNCivjg57jgq3jg44s44OK44Kq44KtDQor44K544K644KtLOODnuOCteOCqg0KK+ODleODq+OCteODryzjgrXjg4jjgrcNCivjg4/jg6Tjgrcs44K4DQor44Kk44Oe44OL44K3LOODiOOCt+ODkuOCsw0KK+ODn+ODpOODouODiCzjg6bjgqsNCivjg57jgq0s44Kv44OL44Ki44KtDQor44Kz44Kk44OHLOOCteODmw0KK+ODr+OCv+ODiuODmSzjg57jgrXjgrMNCivjgqrjgqrjg4/jgrcs44OS44OI44K3DQor44Ki44Kr44KqLOOCouOCreOCqg0KK+OCouOCteOCpCzjgqvjgrrjgrMNCivjgqTjg57jgqQs44K/44Kr44K3DQor44Kt44OpLOODnuOCteODkuOCsw0KK+ODi+OCt+ODoOODqSzjg4bjg6vjgq0NCivjg6jjgrfjgqvjg68s44OI44K344Om44KtDQor44Of44OK44OfLOOCseODs+OCuA0KK+ODhOODq+OCvyzjg47jg6rjgqoNCivjg4rjgqvjg6Djg6ks44K444Ol44Oz44Kk44OBDQor44K/44OK44KrLOOCseODs+OCuA0KK+ODnuODhOOCpuODqSzjgr/jgrHjgrcNCivjgrnjgq7jgr8s44K4DQor44Kr44Ov44KkLOODiOOCt+OCqg0KK+OCs+OCr+ODnCzjgrXjg4Tjgq0NCivjg4Tjg4As44Oe44Kz44OIDQor44Of44Ok44K/44KxLOODiOOCt+OCv+OCqw0KK+OCr+ODreOCteODryzjg6jjgrfjgqvjgroNCivjgrnjg5/jg5Ljg6ks44Oe44K144OS44KzDQor44K/44Kr44KtLOODnuOCteOCqg0KK+OCpOOCt+ODiCzjgrPjgqbjgq0NCivjg6Tjg57jg4As44Oi44OI44Kr44K6DQor44OL44Kk44OELOODjuODluOCouOCrQ0KK+OCpOODr+ODoOODqSzjgqvjg7PjgrgNCivjgqvjg6/jg4rjg5ks44Oo44K344OS44OtDQor44OK44Ks44KkLOODkuODreODpuOCrQ0KK+ODpOODnuODjSzjg4HjgqLjgq0NCivjgqTjg57jgqQs44K/44Kr44Om44KtDQor44OK44Kr44KqLOOCpOOCteOCqg0KK+OCquOCt+OCreODqizjg5Xjg5/jg4/jg6sNCivjgqTjgrfjgqvjg68s44K444Ol44OzDQor44Kq44Kr44K444OeLOOCuOODpeODsw0KK+OCquOCquODi+OCtyzjg57jgrXjg4/jg6sNCivjgrnjgrrjgq0s44OG44OEDQor44Ok44Oe44OK44KrLOOCteODhOODnw0KK+OCv+ODi+OCsOODgSzjgqvjgrrjg5Ljg60NCivjgqvjg6/jg5ks44OI44Kt44KqDQor44Kz44Oz44OOLOODn+OCrQ0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgr/jgqvjg6Tjg54s44K344Oz44Kk44OBDQor44Oi44Oq44Of44OBLOOCpOOCv+ODqw0KK+ODm+ODquOCq+ODryzjgqvjg4Tjg58NCivjg5Xjgq/jgqQs44K/44Oe44KzDQor44Kt44K/44Og44OpLOOCouOCreODqQ0KK+ODiuOCq+ODj+ODqSzjg5Ljg63jg58NCivjgqTjg4HjgqQs44OS44OH44OO44OqDQor44Kk44Ov44K1LOOCq+ODqOOCsw0KK+OCueOCuuOCrSzjgrfjg6Xjg7PjgrgNCivjg6jjg43jgr/jg4ss44Kr44OE44OV44OfDQor44K/44OOLOOCv+OCseOCtw0KK+OCt+ODkOOCvyzjg5Ljg4fjg6gNCivjgqTjg47jgqbjgqgs44Oe44K144OO44OqDQor44Kk44K344Kr44OvLOODiOOCt+OCqg0KK+OCreOCtyzjg57jgrXjg58NCivjgqLjg6/jgqgs44Ki44OE44K3DQor44K/44Kx44KqLOODqOOCt+OCouOCrQ0KK+OCreODjuOCt+OCvyzjgqvjgrrjg5LjgrMNCivjg4Tjgqvjg4As44OV44Of44Ki44KtDQor44Ki44Oq44OJ44OhLOODiOOCt+ODpuOCrQ0KK+OCreODg+OCq+ODryzjg4jjgrfjgqLjgq0NCivjgqrjgqzjgrXjg6/jg6ks44OS44K144Kr44K6DQor44OK44Ks44K7LOOCv+OCq+ODkuODrQ0KK+ODj+ODq+ODpOODnizjgqLjg4Tjg5LjgrMNCivjgqrjgros44Ok44K544KqDQor44Kz44K144KrLOODiOOCt+OCq+OCug0KK+OCt+ODqeOCteOCrSzjg4jjgqrjg6sNCivjgr/jg4rjg5ks44OE44OI44OgDQor44Kk44Kx44Ks44OfLOODhOODqOOCtw0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgqTjg4ENCivjg57jg4Tjg5Djg6ks44OK44Kq44OIDQor44OK44Kr44Ks44OvLOODouODquODkuODrQ0KK+OCquOCrOODryzjgrvjgqTjgrgNCivjg6jjgrfjg4As44Oe44K144OO44OWDQor44Kk44KxLOOCteODgOODjuODlg0KK+OCv+ODi+OCsOODgSzjg57jgrXjg5/jg4ENCivjg57jgqjjg4As44OS44Ot44K3DQor44OS44Op44OOLOOCv+OCq+ODpuOCrQ0KK+OCt+ODn+OCuizjgq3jg5/jgrMNCivjg6Tjg57jg4As44Ki44Kt44OI44K3DQor44K/44OK44KrLOODkuODreOCouOCrQ0KK+OCs+ODnuODhOOCtuOCrSzjg57jg6Ljg6sNCivjgqvjg4jjgqYs44Oe44K144Kr44K6DQor44Kq44OvLOODjuODquOCsw0KK+OCpOODr+ODoOODqSzjg5Ljg63jgr/jg4ANCivjgqTjg6rjgqgs44Kr44K644Om44KtDQor44Ki44Kr44Ok44OeLOODnuOCteODpuOCrQ0KK+OCouOCreODouODiCzjg5Ljg63jgqLjgq0NCivjgqvjg5/jg6Djg6ks44Ki44Kt44OS44KzDQor44K544Of44K/LOOCq+OCquODqw0KK+ODj+ODnuOCteOCrSzjgqLjg4TjgrcNCivjg6Tjgrnjg4As44Oe44Oi44OrDQor44K/44Kx44Og44OpLOODn+OCreODpA0KK+ODoOODqeOCq+ODnyzjg4jjg5/jg4TjgrANCivjg4rjgqvjgrjjg54s44OS44K144OI44OiDQor44Oi44Oq44Oi44OILOOCs+OCpuOCuA0KK+OCu+OCreOCsOODgSzjgr/jgqvjg6bjgq0NCivjg4rjgqvjgrjjg54s44Oe44K144OS44KzDQor44Kt44Ks44OvLOODkuODreODkuOCtQ0KK+OCv+OCq+ODkuODqSzjgr/jgqvjgrcNCivjg6Ljg4Hjg4As44Ki44OE44K3DQor44Kr44Oh44Ok44OeLOOCv+OCq+OCtw0KK+OCquODpOODnuODgCzjg57jgrXjg5LjgrUNCivjgr/jg4rjgqss44OG44Or44OS44K1DQor44Ob44Oz44OeLOOCt+ODs+OCuA0KK+OCreODjuOCt+OCvyzjg6Tjgrnjg5LjgrMNCivjgrfjg47jg4Tjgqss44OO44OW44K344KyDQor44Ki44Kk44OP44OpLOODpOOCueODleODnw0KK+ODiuOCrOODnuODhCzjgqjjgqTjgrgNCivjg4jjg6jjg6Djg6ks44Oe44K144Ki44KtDQor44OS44Op44OOLOOCv+OCq+OCtw0KK+OCreODoOODqSzjgrjjg6Xjg7MNCivjgqTjgrHjg4As44K744Kk44K4DQor44Kk44K344OP44OpLOODpuOCpuOCsw0KK+ODjuOCsOODgSzjg57jgrXjg6sNCivjgrPjgrHjg4Qs44Of44OE44Oe44K1DQor44Kq44Kv44Ok44OeLOOCouODhOODkuOCsw0KK+ODj+ODnuOCsOODgSzjgrfjg7PjgrgNCivjg4TjgrjjgrXjgqss44OS44OH44Ki44KtDQor44Kk44OB44Kr44OvLOOCteODiOODqw0KK+ODqOOCt+ODgCzjgrvjgqTjgrQNCivjg6Tjg57jg4As44Oo44Km44Kk44OBDQor44K344Of44K6LOODpOOCueOCtw0KK+OCteOCq+OCrOODnyzjg47jg6rjgqvjgroNCivjgrPjgrnjgq4s44OS44K144OS44KzDQor44OL44K344OALOOCu+OCpOOCuA0KK+OCpOOCpOODgCzjgqvjg4Tjg6kNCivjgqbjg4Hjg4As44Ok44K544OfDQor44Oi44OI44Ok44OeLOODgeODj+ODpA0KK+ODn+ODpOODouODiCzjgqTjgq/jg6gNCivjgrPjg5Djg6Tjgrcs44Ok44K544K3DQor44Kr44OI44KmLOODkuODreODpuOCrQ0KK+OCt+ODqeOCpCzjgrXjg4jjgrcNCivjg4/jgq7jg6/jg6ks44Kz44Km44K4DQor44Ok44Oe44Km44OBLOODpuOCreODkuODhw0KK+ODn+ODhOODj+OCtyzjgqvjgqrjg6oNCivjg6Ljg7Pjgrgs44Oo44Km44Kk44OBDQor44K/44Kt44Oi44OILOODjuODquOCsw0KK+OCquOCr+ODgCzjgrfjg6XjgqbjgrgNCivjg4Tjgqvjg6Ljg4gs44K344Ol44Km44K4DQor44Og44Kz44OP44OpLOODpOOCueOCpOOCrw0KK+OCteODq+ODpCzjg5/jg4HjgqoNCivjgqrjgqvjgrjjg54s44OI44K344OS44KzDQor44Ob44K344OOLOODkuOCteODiA0KK+ODm+OCtyzjg5Ljg63jg5Xjg58NCivjg5Xjgrfjg58s44Kz44Km44Kk44OBDQor44K/44Kr44OP44K3LOOCv+ODhOODpA0KK+ODi+OCt+ODpOODnizjgrfjg7PjgrgNCivjg4Tjg6vjg57jg4Es44K344On44Km44Kk44OBDQor44OI44Of44K/LOODiuODq+ODiA0KK+OCpuODgeODgCzjg4jjgqrjg6sNCivjgqrjgqrjgr/jgqss44Om44Km44KzDQor44K144Kr44KkLOOCv+OCq+ODkuOCtQ0KK+OCveOCrOODmSzjgqvjg4Tjg58NCivjg6/jg4As44Kx44Oz44K4DQor44Kz44K144KrLOODnuOCteODnw0KK+OCouOCvSzjgqLjgrHjg58NCivjgqLjg6njgqQs44OI44K344OP44OrDQor44K544Ku44Og44OpLOOCt+OCsuOCqg0KK+OCouOCreODqOOCtyzjgqvjgrrjgqoNCivjgqLjgrXjgqvjg68s44OE44OI44OgDQor44Ov44OALOOCteOCq+OCqA0KK+OCpOOCseODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqvjg6Ljg4gs44Oq44On44Km44K4DQor44Ki44Kq44KtLOODnuOCteODqw0KK+OCpuOCqOOCteODryzjg4Tjg6jjgrcNCivjgqbjg6Tjg54s44OS44OH44Ki44KtDQor44OK44Kr44OP44OeLOOCueOCueODoA0KK+OCq+ODr+ODouODiCzjg57jgrXjg6bjgq0NCivjgrnjgqjjg57jg4Qs44K444Ol44Oz44K4DQor44OK44Ks44KkLOOCteODiOOCtw0KK+ODiuOCq+ODj+ODqSzjg6bjgqbjgr7jgqYNCivjg4rjg6/jgr8s44OK44Oq44Ki44KtDQor44Kr44OE44K244OvLOODkuODreOCtw0KK+ODpOODnuOCpuODgSzjg5/jg6bjgq0NCivjgqLjgqvjgq7jgrcs44OE44Oo44K3DQor44Kv44K144K644OfLOODiOOCt+ODkuOCsw0KK+ODm+OCq+ODqizjg5Ljg63jgrcNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Kt44Oq44KmLOODkuODreOCrQ0KK+OCquOCrOODryzjg57jgrXjg4gNCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44Ki44Kk44Og44OpLOODhOODiOODoA0KK+OCpOOCrOODqeOCtyzjg57jgrXjg4gNCivjgqvjg6/jg6/jgq0s44K/44Kr44Of44OBDQor44Oe44Ko44K144KrLOODiOODouODn+ODhA0KK+ODnuODhOOCt+ODnizjgqLjg4TjgrcNCivjg57jg4Tjg6Ljg4gs44OS44OH44OIDQor44Kr44K/44KkLOODnuOCteODkuODrQ0KK+OCs+OCuOODnizjg57jgrXjgqLjgq0NCivjg4Tjgrjjg6Ljg4gs44OI44Kq44OrDQor44OK44Ov44K/LOOCteODiOOCtw0KK+ODleOCuOOCv+ODiyzjgqvjgrrjg5LjgrMNCivjgq3jgrss44OG44OE44Ot44KmDQor44K144Kr44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+OCueOCuuOCrSzjg4jjgrfjg6bjgq0NCivjg4/jg57jgrXjgq0s44Oe44K144OS44OtDQor44Oo44K344OALOODkuODiOOCtw0KK+ODm+ODg+OCvyzjgrfjgrLjg5Ljg4gNCivjg57jgrnjgrMs44OS44K144KqDQor44K/44Kx44OK44KrLOOCs+OCueOCsQ0KK+OCpOOCt+OCpCzjg4/jg6vjgq0NCivjgr/jgrXjgqss44OS44Ot44K3DQor44Oe44OE44OALOODnuOCteODkuODrQ0KK+ODj+OCvyzjgr/jgqvjgrcNCivjgqLjgq3jg6Tjg54s44Om44K/44KrDQor44K/44Kr44OP44K3LOODpOOCueODkuODiA0KK+ODpOODnuOCq+ODryzjgrfjg6fjgqbjgrgNCivjg6jjgrPjg4Es44Oe44K144OS44OtDQor44Oo44ON44K/44OLLOOCreOCpOODgeODreOCpg0KK+ODleOCuOODjizjg6bjgqbjgrnjgrENCivjg4/jgrvjgqzjg68s44Kr44OE44OI44K3DQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+OCouODs+ODqeOCryzjg57jgrXjgrMNCivjg4/jgrfjg6Ljg4gs44OO44OW44Om44KtDQor44Kk44OK44OALOODrOOCpOOCsw0KK+ODpuOCsizjg57jgrXjg6jjgrcNCivjgqTjg57jg4As44Kk44K644OfDQor44K144Kr44Oi44OILOOCq+OCuuODkuOCtQ0KK+ODiOODqOODiuOCrCzjg6Tjgrnjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44OG44OE44KqDQor44OP44OK44KkLOODqOOCt+ODjuODqg0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjg4rjgqvjg6Djg6ks44Oo44K344OP44OrDQor44Kr44K444Og44OpLOODqOOCt+ODkuOCsw0KK+OCpOOCt+OCrOOCrSzjgrHjg7Pjgr7jgqYNCivjg4/jg4Pjg4jjg6os44Oe44K144KqDQor44Ki44Oe44OOLOODquODp+OCpg0KK+ODn+OCq+ODnyzjgqvjgqrjg6sNCivjg5Xjg6vjg4bjg6ks44Oe44Om44OfDQor44Oe44Of44OkLOODkuODh+OCrQ0KK+ODhOODq+ODjizjg6Djg4TjgrMNCivjgqLjgrXjgqQs44Ok44K544KtDQor44OO44Og44OpLOOCt+OCsuOCqg0KK+ODqOOCs+ODpOODnizjgrfjg7PjgrgNCivjgqTjgrHjg4As44Om44K/44KrDQor44Ki44Oz44OJ44KmLOOCouOCreOCqg0KK+OCquOCq+ODpOOCuSzjg6TjgrnjgrMNCivjgrTjg4jjgqYs44OS44OH44Ki44KtDQor44Kr44Ov44K344OeLOOCv+OCq+OCsw0KK+ODj+OCruODr+ODqSzjgqjjg6oNCivjgqLjgr/jg6njgrcs44Om44Of44KzDQor44K/44Kr44Ok44OeLOODiOOCt+ODkuODiA0KK+ODi+OCt+ODpOODnizjg4jjgrfjg6bjgq0NCivjgqjjg4HjgrQs44K344Oz44Kk44OBDQor44Ok44Oe44K244KtLOODqOOCt+ODkuODrQ0KK+ODoOODreODpCzjg4bjg4TjgqoNCivjgq3jg6Djg6ks44Om44Kt44KqDQor44OK44Kr44OP44OpLOODleODn+OCqg0KK+OCpuOCqOODjizjgr/jgqvjgrcNCivjg6jjgrfjg4As44Kx44Oz44K/DQor44OE44Kr44Oi44OILOOCv+ODgOOCtw0KK+OCquOCtuOCrSzjg4jjgqrjg6sNCivjgqLjgrfjgqvjg68s44Ok44K544K344KyDQor44ON44Ku44K3LOODiOODouODjuODqg0KK+OCreODpeOCpuODjizjgrfjg6XjgqbjgqTjg4ENCivjgrXjg4jjgqYs44Oo44K344OS44OHDQor44Kk44OO44Km44KoLOOCq+OCuuODkuOCsw0KK+OCreOCr+OCuuODnyzjg57jgrXjg6sNCivjg57jg4Tjg6Ljg4gs44OA44Kk44K144KvDQor44OP44Ok44K3LOOCv+OCq+OCqg0KK+ODleOCr+OCquOCuCzjgqvjg7PjgrgNCivjg4rjg6vjgrss44Kx44Oz44K/44Ot44KmDQor44Oe44OE44Oi44OILOODnuOCteOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg5/jgq0s44OO44OW44KqDQor44OK44Kr44K/44OLLOODqOOCt+OCouOCrQ0KK+ODn+ODpOOCrOODryzjg5Xjg5/jg47jg6oNCivjgqLjg6rjg6jjgrcs44Kk44Kv44KqDQor44K344Op44KkLOODqOOCt+ODpuOCrQ0KK+ODn+ODiuODnyzjg57jgrXjg6jjgrcNCivjg4jjg6rjgrTjgqgs44OV44K444KqDQor44Kz44K544KsLOOCv+ODgOOCtw0KK+ODhOOCuOODjizjgqvjgrrjg5Ljg60NCivjgqrjgrDjg6ks44Ok44K544OS44OtDQor44Kq44Oq44K/LOODgeOCq+OCtw0KK+OCouODn+ODouODiCzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgrXjgqss44OI44Kq44OrDQor44OP44Ok44K3LOODqOOCt+ODkuODrQ0KK+ODn+ODiuODnyzjg5/jg47jg6sNCivjg6jjgrfjg4As44OI44K344OS44KzDQor44OL44K344OP44OpLOODqOOCt+OCqg0KK+OCquOCr+OCrOODryzjg57jgrXjg4jjg6INCivjg4Tjgrgs44OG44Or44Om44KtDQor44OK44Kr44KkLOOCv+OCq+OCtw0KK+ODi+OCt+ODoOODqSzjg4TjgrDjgqoNCivjg4vjgr/jg4rjgqQs44Kx44Oz44K0DQor44Kv44OJ44KmLOODkuODreOCtw0KK+OCteOCpCzjgr/jgqvjgqoNCivjgrfjg6fjgqYs44Oe44OK44OWDQor44Kk44OO44Km44KoLOOCq+OCquODqw0KK+OCv+ODi+OCsOODgSzjg5Ljg63jgr/jg40NCivjg4rjgqvjg4vjgrcs44K344Oz44K4DQor44Kq44Kq44Oi44OqLOODkuODreODpuOCrQ0KK+OCr+ODnuOCrOOCpCzjgr/jgqvjg6bjgq0NCivjgqTjgrfjgqLjgqQs44OI44Oo44Kr44K6DQor44OP44Ku44OP44OpLOOCq+OCuuODjuODqg0KK+OCv+OCrOOCvyzjgrHjg7PjgrgNCivjgrnjgrrjgq0s44Of44OB44KqDQor44Kv44OcLOOCvOODs+OCteOCrw0KK+OCq+ODiuOCpuODgSzjgrfjg7Pjg6QNCivjg4vjgrfjgqos44OS44OH44KtDQor44Kk44OK44OALOODkuODh+ODjuODlg0KK+OCv+OCseOCpOODgSzjgrfjg7PjgrgNCivjgqLjg7Pjg4njgqYs44Oe44Kz44OIDQor44Oe44OE44OK44OfLOOCt+ODp+OCpuOCpOODgQ0KK+ODn+ODiuOCr+ODgSzjgrfjg6XjgqbjgrXjgq8NCivjgqvjg4rjgqbjg4Es44OK44Kq44KtDQor44Kq44Kq44Kk44Ok44OeLOODjuODnOODqw0KK+ODnuOCueODgCzjgrfjg6fjgqbjgrgNCivjg6Tjgq7jg4/jg6ks44OI44K344KqDQor44Of44K644OOLOOCseODs+OCuA0KK+ODjuODluOCr+ODnyzjg4jjgqrjg6sNCivjg4rjg4As44K/44Kr44Ki44KtDQor44K/44Kx44K/44OLLOODleODiOOCtw0KK+OCpOODnuOCpOOCuuODnyzjgqTjg4Hjg63jgqYNCivjgqTjg4rjg4As44Kk44K144KqDQor44Kk44Oe44OLLOOCv+OCq+ODleODnw0KK+OCquOCrSzjg57jgrXjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Oo44Km44K544KxDQor44Kk44Kk44KqLOODkuODreODiOODog0KK+OCpOOCt+ODgCzjgqvjg4Tjg6QNCivjg5Ljg6njgr8s44Kz44Km44K4DQor44Kk44K/44Ks44KtLOOCq+OCuuODkuODrQ0KK+ODpOODnuODleOCryzjgrXjg4jjgrcNCivjgrXjg4jjgqYs44OO44Oq44KqDQor44OK44Kr44Ks44OvLOODquODp+OCpg0KK+OCquOCteOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgqrjgqTjgqvjg68s44OO44OW44Ki44KtDQor44Kr44K344KqLOODqOOCt+ODkuODrQ0KK+ODm+OCt+OCtuOCrSzjgrfjgrLjgq0NCivjgrvjgq3jgrjjg54s44Kz44Km44K4DQor44Kq44Kr44Oe44KoLOODjuODquODkuODrQ0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgrPjgqTjg4cs44K/44Kr44OK44KqDQor44K/44Kr44OP44K3LOOCu+OCpOOCuA0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg4bjg6njgrfjg54s44K/44Kv44KqDQor44Ok44Oe44K344K/LOODnuOCteOCouOCrQ0KK+ODjuOCuyzjg5Ljg4fjg6bjgq0NCivjg57jg4Tjg57jgqgs44Ki44Om44OfDQor44Oo44K344K/LOODjuODquOCouOCrQ0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjg4/jg6ks44OO44Oq44OS44KzDQor44Ok44Oe44Km44OBLOOCseODs+OCuA0KK+OCq+ODnyzjgqvjg4Tjg6bjgq0NCivjgrnjgqzjgqQs44K/44OE44Om44KtDQor44K/44Kr44OOLOODqOOCt+ODjuODlg0KK+ODiOOCs+ODrSzjg6jjgrfjg5Ljg60NCivjgrnjgrrjgq0s44K544K544OgDQor44K144K144KtLOOCouODhOODpuOCrQ0KK+ODhOODjuODgCzjg4bjg4Tjg63jgqYNCivjg6Tjg57jgrXjgq0s44OG44OE44OkDQor44Of44Km44OpLOOCq+ODhOODnw0KK+OCquODgOOCruODqizjgqLjg4TjgrMNCivjg4/jg6Tjgrcs44K344Oz44OB44On44KmDQor44OI44Of44Kq44KrLOODkuODiOOCtw0KK+OCpOOCsOODgSzjgrvjgqTjgqTjg4ENCivjgrPjg7Pjg4ks44K/44Kr44K3DQor44Kv44OcLOODkuODh+OCqg0KK+OCr+ODqeODjOOCrSzjgq3jg6fjgqbjgrMNCivjg4jjg5/jg57jg4Qs44OK44Kq44KzDQor44Kv44Ot44Kr44OvLOODnuOCteOCouOCrQ0KK+ODjuOCtuODryzjgrnjg5/jgqoNCivjgqvjg6/jgrXjgq0s44Kv44OL44Ki44KtDQor44K/44Kx44OALOOCq+ODhOODpA0KK+OCt+ODjuODj+ODqSzjgqLjgq3jg5Ljg60NCivjg5Xjg6vjg6Qs44K344Ky44OrDQor44OK44Kr44Og44OpLOOCteODiOODqw0KK+ODpOOCuOODnizjg4jjgqrjg6sNCivjg4vjgrfjgqzjgq0s44Kt44Oo44K3DQor44OK44Kr44Ks44OvLOOCveOCpg0KK+ODkuODqeODpOODnizjgrfjg6Xjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44Og44OE44OS44OtDQor44Oo44K344Og44OpLOODpuOCpuOCuA0KK+ODhOODgCzjgr/jgqvjg6bjgq0NCivjgqvjg4Tjg6njgqQs44Ov44K/44OrDQor44Of44OK44KkLOODiOOCt+OCq+OCug0KK+OCv+OCreOCsOODgSzjgqvjgrrjgqoNCivjg6/jgrHjg5ks44Oo44K344OS44OtDQor44OL44K344Kr44OvLOODnuOCteODpA0KK+OCt+ODqeOCrOOCrSzjg5Ljg63jgqLjgq0NCivjg5Djg5As44Oe44K144Kr44K6DQor44Ki44Kr44OqLOODquODp+OCpuOCuA0KK+OCouODmSzjgr/jgq/jg6QNCivjgqvjgqQs44Kv44OL44OS44OtDQor44Kq44Kq44Oi44OqLOODkuODh+OCq+ODhA0KK+OCueOCuuOCrSzjgr/jgqvjgrcNCivjg4rjgqzjgrXjg68s44OS44OI44K3DQor44K144Ov44OALOOCqOODn+OCsw0KK+OCouOCuuODnizjg47jg5bjg6bjgq0NCivjgqrjg44s44OS44OH44KtDQor44Kr44Ov44OL44K3LOODjuODluODkuODhw0KK+ODnuODiuODmSzjgqvjgrrjg5Ljg60NCivjgqLjg6rjg6Tjg54s44Om44Km44K4DQor44OL44K344Kr44OvLOOCreODqOOCtw0KK+OCouODhOODnyzjgrfjg6XjgqbjgrgNCivjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44OS44Ot44K/LOODiOOCt+ODpA0KK+ODm+OCq+OCvuODjizjgqvjgrrjg4gNCivjg5vjgrfjg44s44Ok44K544OS44OtDQor44Ok44Oe44Kw44OBLOODnuOCs+ODiA0KK+OCouOCrOOCvyzjgrPjgqbjgrgNCivjg57jg6vjgqos44Oo44K344Om44KtDQor44Kz44Kk44OHLOODkuODreOCouOCrQ0KK+OCq+ODn+ODoOODqSzjg57jgrXjg5Ljg4cNCivjgrXjgqTjg4jjgqYs44OK44Kq44KtDQor44OV44Kv44Of44OELOOCouODhOOCtw0KK+ODkuODqeODpOODnizjg5Ljgqvjg6sNCivjgrXjgqTjg4jjgqYs44OG44OE44OkDQor44Kk44Kx44KqLOODn+ODjuODqw0KK+ODleODq+OCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgqTjg4As44OS44Ot44Ki44KtDQor44Of44Ok44K244KtLOODouODiOODkuODrQ0KK+ODqOOCt+ODgCzjg6Tjgrnjg6bjgq0NCivjgq3jgq/jgr8s44Ko44Oq44KzDQor44OB44OQLOODhuODhOOCqg0KK+ODiOODquODpOODnizjg6rjg4TjgqoNCivjgqjjgrbjg68s44Oq44Ol44Km44K/44Ot44KmDQor44Kq44Kq44OQLOODqOOCt+OCv+ODnw0KK+ODpOODnuODouODiCzjgqrjgrXjg6ANCivjg4vjgrfjgqvjg68s44Oe44K144OO44OWDQor44Ko44Oz44OJLOODnuOCteODj+ODqw0KK+ODleOCr+OCpCzjgqrjgrXjg6ANCivjg4/jg57jg44s44Oo44Km44Kk44OBDQor44Kt44K/44OP44OpLOOCseODs+OCuOODp+OCpg0KK+OCteODiOOCpizjg6bjgq3jg5Ljg60NCivjg57jg4Tjgqos44Oe44K144OV44OfDQor44OI44Oo44K/LOODkuODh+ODpA0KK+ODkuODqeODouODiCzjg4jjgrfjg5Ljg4cNCivjg6Tjg57jg6Ljg4gs44Kz44Km44K/44Ot44KmDQor44OP44Oe44OALOODnuODpuODnw0KK+OCpOODr+OCq+ODnyzjg5/jg47jg6sNCivjgq/jg5ws44OG44OE44KqDQor44Ko44Oz44OJLOOCq+OCuuODkuODrQ0KK+OCq+OCsuODpOODnizjg57jgrXjg47jg6oNCivjg4vjgqTjg6Qs44OI44Oi44Om44KtDQor44Kz44Km44OBLOODpuOCpuOCueOCsQ0KK+OCouODgOODgSzjgrfjgrLjg6bjgq0NCivjg4/jg6Tjgrcs44K344Ol44Oz44K4DQor44OK44Kr44OOLOODnuOCs+ODiA0KK+OCpOOCt+ODj+ODnizjg57jgrXjg5Ljg60NCivjgrPjgq/jg5ws44Oq44Ol44Km44Kk44OBDQor44Kr44Ov44OOLOODj+OCuOODoQ0KK+ODiuOCq+OCuOODnizjg47jg6rjg5LjgrMNCivjgr/jgqTjg6ks44OE44Oo44K3DQor44K/44Kx44KuLOODquODhOOCqg0KK+ODouODquOCt+ODnizjg4jjg6LjgrMNCivjg4rjgqvjg6Djg6ks44OS44Ot44Ki44KtDQor44OO44Kw44OBLOODkuODreOCrQ0KK+OCouODqeOCrSzjg6Tjgrnjg4bjg6sNCivjgqLjg6ks44OS44Ot44K3DQor44Kk44OI44KmLOODiuOCquOCsw0KK+ODj+ODpOOCteOCqyzjg5Xjg4jjgrcNCivjgrPjg4Tjgqss44Oe44K144Kr44K6DQor44K/44Kx44Km44OBLOODkuODreOCtw0KK+OCpOODr+OCvyzjgr/jgqvjgrcNCivjg57jgqjjg4As44Oo44K344KqDQor44Ob44K944Kr44OvLOODnuOCteODkuODrQ0KK+OCouODqeOCpCzjg6Tjgrnjg5Ljg60NCivjgqrjgqrjgq/jg6ks44Kr44Oz44K4DQor44K/44Kx44Kz44K3LOOCouODhOOCtw0KK+ODpOODnuOCsOODgSzjgrHjg7PjgrgNCivjgrfjg5/jgros44Kr44OE44OI44K3DQor44Kk44OI44KmLOODqOOCt+ODhOOCsA0KK+OCpOOCuuODnyzjgqvjg43jg5/jg4QNCivjgrTjg4jjgqYs44K944Km44K/44Ot44KmDQor44Kq44Kq44OE44OcLOOCq+OCuuODnw0KK+OCq+ODn+OCs+OCrOODryzjgrfjg7PjgqTjg4ENCivjgr/jgrHjgqQs44K144OI44KzDQor44Of44Ok44OP44OpLOODnuOCteOCtw0KK+OCouODr+OCuCzjgqLjg4TjgqoNCivjgqbjgrfjg63jg4As44Kr44Kq44OrDQor44Oi44Oq44Kk44K644OfLOODj+OCuOODoQ0KK+ODiuOCrOODjizjgqLjg4TjgrcNCivjgr/jg4rjgqss44Og44ON44Om44KtDQor44OV44Kr44KoLOOCseODs+OCuA0KK+ODleODq+ODpCzjg5/jgrXjgqoNCivjg5/jgrrjg5Ljgq0s44Oo44K344KqDQor44Kv44OcLOODn+ODhOODqOOCtw0KK+OCv+OCsOODgSzjg5Xjg5/jgqLjgq0NCivjg4rjgqvjgqos44OE44Ku44OIDQor44Ok44Oe44K344K/LOODpuOCpuOCpOODgQ0KK+OCr+ODreOCrSzjgrfjg6fjgqbjgrQNCivjg57jg4Tjg4As44Kx44Oz44Kk44OBDQor44Kq44OA44K444OeLOODiuODm+ODnw0KK+ODm+ODqizjg6bjgq3jgqoNCivjgr/jg4vjgrDjg4Es44OE44ON44Ok44K5DQor44Ki44Op44KkLOODiOOCt+ODjuODqg0KK+OCtOODiOOCpizjg4bjg4TjgrgNCivjg4jjg43jgqzjg68s44OO44Oq44Om44KtDQor44Oi44Oq44K/LOOCv+OCq+OCsw0KK+ODleODq+OCq+ODryzjgrfjgrLjgqoNCivjg6bjgq0s44Oo44K344OO44OqDQor44K344Op44Kk44K3LOOCv+OCq+ODkuODrQ0KK+OCpOOCseODpCzjgrXjg4HjgrMNCivjg6/jgr/jg4rjg5ks44K/44OE44Kq44KtDQor44K/44OL44Kw44OBLOOCs+OCpuOCpOODgQ0KK+ODnuOCueODgCzjgrfjg47jg5YNCivjg5/jgrrjgrDjg4Es44K444Ot44KmDQor44OP44Ok44Of44K6LOODpuODnw0KK+ODm+OCq+ODqizjgqLjgq3jg5LjgrMNCivjgqTjgrfjgqQs44OO44Oq44OS44KzDQor44K344Op44Kk44K3LOODnuOCteODkuOCsw0KK+OCt+ODouOCq+ODr+ODqSzjgrfjgrLjg5Ljg60NCivjg6Ljg6rjg6Ljg4gs44OI44Oi44KzDQor44Kk44OI44KmLOODkuODreOCtw0KK+OCquOCquODpCzjgrHjgqTjgrgNCivjg5/jg6jjgrcs44Of44OO44OrDQor44K344OQ44K/LOODjuODquODkuODrQ0KK+OCv+ODs+OCtuODsyzjg4jjg6Ljg5LjgrMNCivjgqTjg6/jgrXjgq0s44OS44OH44Kr44K6DQor44OV44Kv44KkLOOCteODiOOCtw0KK+ODouODquODkOODpOOCtyzjgqvjgrrjg6QNCivjg6Tjg57jg4As44OS44OH44OfDQor44OV44K444Ov44OpLOOCteODiOOCtw0KK+ODiuODhOODoSzjg6Tjgrnjg4gNCivjgrfjg47jg4/jg6ks44OS44Ot44K3DQor44Kq44K144OALOODnuOCteOCtw0KK+ODleOCuOODj+ODqSzjgr/jgrHjg5Ljg4gNCivjg5Xjgrjjg6Ljg4gs44OS44Ot44OfDQor44Kt44OOLOODqOOCt+OCqg0KK+ODpOODnuODouODiCzjg6Ljg4jjgq0NCivjgqTjgrfjgrjjg54s44Oi44Oq44OS44OtDQor44Kk44KsLOOCouOCreODqQ0KK+ODiuOCq+OCqCzjg4DjgqTjgrgNCivjg6Tjg44s44Om44Km44K4DQor44Kr44OK44Of44OELOOCquOCteODoA0KK+OCueOCuuOCrSzjg4bjg6vjgqoNCivjgr/jgqvjg4As44Oq44On44Km44KzDQor44Kk44K344OQ44K3LOODkuODreODpuOCrQ0KK+OCquOCquODhOODnCzjg5/jg4Tjg4/jg6sNCivjgrnjgq4s44K/44Kr44K3DQor44OP44Ok44K344Kw44OBLOODkuODreOCtw0KK+ODhuODqeOCt+OCvyzjgqvjgrrjgqoNCivjgrfjg6Ljg6Tjg54s44Oo44K344OV44OfDQor44Of44Ok44K244KtLOODn+ODhOODqw0KK+ODouODqizjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44OI44K3DQor44OH44Ki44KkLOOCreODqOODkuODrQ0KK+ODm+ODqizjg4jjgrfjg6bjgq0NCivjgqLjg43jgrbjgq0s44Kr44K644KqDQor44Kv44Oc44K/LOOCv+OCq+ODkuODrQ0KK+OCtCzjg57jgrXjg4jjgrcNCivjg5Ljgq3jg4As44OS44Ot44K3DQor44K144Kr44Kw44OBLOODjuODquOCouOCrQ0KK+ODqOOCt+OCpCzjgr/jgqvjgrcNCivjgq3jgr/jg4/jg6ks44Kr44OE44OIDQor44OV44K444KkLOODn+ODieODqg0KK+ODiuODoeOCrSzjg6TjgrnjgrMNCivjg6jjgrfjg6Djg6ks44OI44K344KqDQor44K/44Og44OpLOODgOOCpOOCueOCsQ0KK+OCpuODn+ODjizjg5Ljg63jgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44Oo44K344Oi44OILOOCv+OCseOCtw0KK+ODjeODouODiCzjg6jjgrfjg5Xjg58NCivjg5/jg6Tjgrbjgq0s44Oe44K144OS44KzDQor44K/44Kr44Oi44OqLOODgeOCqOOCsw0KK+OCr+ODnuOCrOOCpCzjgq/jg4vjgqoNCivjgrTjgqbjg4As44Kz44Km44K/44Ot44KmDQor44OP44K/LOOCs+OCpuOCpOODgQ0KK+OCr+OCuuODnyzjgrXjg4HjgrMNCivjg4rjg4TjgqQs44Kk44Kv44KqDQor44K344Oe44OALOODkuODh+OCqg0KK+OCquOCquODhOOCrSzjgqvjgrrjg5Ljg60NCivjg57jg5/jg6Qs44OS44Ot44Kr44K6DQor44K144OI44KmLOOCseODs+OCuA0KK+OCs+ODkOODqizjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgq0s44Ok44K544Om44KtDQor44Kr44ON44KzLOODnuOCteOCrQ0KK+OCquODjizjg4jjgqrjg6sNCivjgqrjgqrjg6Tjg54s44Oo44K344KoDQor44Oe44OI44OQLOODnuOCteODj+ODqw0KK+OCpOOCv+OCr+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjg4Djgrfjg54s44Kr44OE44Ot44KmDQor44K344Kk44KtLOODjuODquOCsw0KK+OCt+ODkOOCvyzjgqvjgrrjg5Ljg60NCivjgqvjg4Tjg6ks44OB44Kr44KzDQor44Ki44Op44KkLOODqOOCt+ODjuODqg0KK+OCteOCpOODiOOCpizjg4Tjg6jjgrcNCivjg57jg4Tjg6Ljg4gs44Oe44K144OO44OqDQor44Km44Ko44Ok44OeLOODn+ODhOODiuODqg0KK+ODnuODjizjgrfjg7PjgqTjg4ENCivjg5/jgrXjgqos44OK44Kq44KtDQor44K944OO44OZLOOCreODn+ODpuOCrQ0KK+OCueOCuuOCrSzjgqLjgq3jgqoNCivjg6Tjgr/jg4ss44Kt44On44Km44KzDQor44Og44K/LOODnuODiuODlg0KK+ODnuODq+ODpOODnizjg5Xjg5/jgqLjgq0NCivjg5Xjg4As44K/44Kr44Oo44K3DQor44Kz44OQ44Ok44K3LOOCseOCpOOCpOODgeODreOCpg0KK+ODr+OCv+ODiuODmSzjgqvjgqrjg6sNCivjgqrjg4As44Oe44Kz44OIDQor44Kq44OV44OBLOODnuOCteOCqg0KK+OCv+ODiuOCqyzjgrfjgrLjgqoNCivjgrXjg6/jgq0s44Oe44K144K3DQor44K144Kk44OI44KmLOODkuODreOCtw0KK+ODj+OCruODjizjg47jg5zjg6sNCivjgqbjgrfjg6Tjg54s44K/44Kr44K3DQor44Kq44Kv44OS44OpLOODjuODluODkuODrQ0KK+ODqOOCt+OCpOOCsSzjgrXjg4rjgqgNCivjgrPjg7Pjg44s44Om44Km44KzDQor44OO44OALOODiOOCt+OCqg0KK+OCqOODs+ODiSzjg4jjgrfjg6bjgq0NCivjgrnjgrrjgq0s44Of44OE44KqDQor44K/44OK44KrLOODqOOCt+ODkuODrQ0KK+OCreODiSzjgrHjgqTjgrgNCivjgqTjg4jjgqYs44Oe44K144OO44OWDQor44OV44K444Ov44OpLOODiOOCt+ODj+ODqw0KK+ODj+OCu+OCrOODryzjgqLjgq3jg6kNCivjg57jgrnjg6Ljg4gs44Kx44Kk44K4DQor44Kr44KkLOODkuODiOOCtw0KK+OCv+OCq+ODj+OCvyzjg4jjg6LjgrMNCivjg5Ljg4fjgrfjg54s44Kr44K644OO44OqDQor44K/44Kr44Ok44OeLOOCt+OCsuOCrQ0KK+ODn+ODpOOCrSzjg6bjgr/jgqsNCivjg5Xjgrss44Kr44K644OS44KzDQor44Oi44Oi44KkLOODkuODreODpOOCuQ0KK+ODhOODpuOCrSzjg5/jg4TjgrANCivjgqvjg6/jg4/jg6ks44K344Ky44OrDQor44Oe44OE44KkLOOCouOCreODkuODrQ0KK+ODj+ODiuODryzjg57jgrXjg5Ljg60NCivjg5Ljg6/jg4As44OG44OE44OkDQor44Oe44K544KkLOOCv+OCq+OCtw0KK+OCq+ODiOOCpizjgr/jg4Djg4TjgrANCivjgr/jgrHjg54s44OV44Of44KqDQor44K344Op44Kk44K3LOODqOOCt+OCqg0KK+ODleODq+OCq+ODryzjgrfjg6fjgqbjgqTjg4ENCivjg4bjgrjjg54s44Ki44Kt44OpDQor44Ki44Kt44Oi44OILOOCteODiOOCtw0KK+OCueOCruODpOODnizjg5Ljg63jgqLjgq0NCivjg4rjg7Pjg5Ys44Om44Kt44OS44OtDQor44OE44K444OOLOOCseODsw0KK+ODhuODqeOCteOCqyzjgqTjg4Pjgrfjg7MNCivjgrXjgqvjgqQs44OS44OH44Ki44KtDQor44Kv44OcLOOCouODhOOCtw0KK+ODnuODq+OCv+ODiyzjg57jgrXjg6QNCivjgr/jgqvjg4/jgrcs44Of44OO44OrDQor44Oe44OE44Km44OpLOOCt+ODs+ODpA0KK+OCv+ODiuOCqyzjgrvjg7PjgrgNCivjg6bjgrbjg68s44K/44Kr44Ki44KtDQor44K/44Kr44OP44K3LOOCq+OCuuODpA0KK+OCquOCquODkCzjgrfjg7PjgrQNCivjg57jgqjjgqvjg68s44OI44Kq44OrDQor44OL44OvLOODiOOCquODqw0KK+OCq+ODr+ODoOODqSzjg57jgrXjgq0NCivjgrPjgqTjgrEs44Kr44K644KoDQor44Kv44Oq44K344K/LOODiOOCt+ODpuOCrQ0KK+ODkuODreOCuyzjgqrjgrXjg6ANCivjgrPjg7Pjg44s44K/44Kv44OkDQor44OP44K744Ks44OvLOODkuODreODkuOCsw0KK+OCpOODiOOCpizjg5Ljg63jgrcNCivjgq3jgrbjgq0s44Ki44OE44K3DQor44Ko44OK44OfLOODjuODquOCouOCrQ0KK+ODhOOCq+ODiuOCqyzjg5Xjg5/jgqLjgq0NCivjgrXjgqvjg6Ljg4gs44OS44Ot44OfDQor44Oe44OE44OQ44OpLOODkuODh+OCqg0KK+ODhuODqeOCpCzjgrfjgrLjgqLjgq0NCivjgqrjgrfjgr8s44K/44Kr44Oo44K3DQor44K/44OK44KrLOODqOOCt+OCouOCrQ0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjgqTjgrfjgrDjg60s44Oo44K344OIDQor44OP44K344Oi44OILOOCueODn+OCsw0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OI44Kq44OrDQor44OV44Or44Kr44OvLOODiOOCt+ODjuODlg0KK+ODpOODnuODgCzjg5Ljg63jg4gNCivjgqTjgq/jgr8s44K344On44Km44KzDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5Ljg60NCivjgqvjgrMs44K/44OE44K4DQor44Oe44K544OALOODkuODreODjuODqg0KK+OCq+ODn+OCuCzjgr/jgqvjg6bjgq0NCivjgqTjg4/jg6ks44Kr44K644OS44OtDQor44Ki44K144OfLOOCq+OCuuODkuODrQ0KK+ODiuOCq+OCuOODnizjgr/jgqvjgrcNCivjgrPjgr/jgq0s44OG44OE44OkDQor44Kr44Ov44Oi44OILOOCqOOCpOOCpOODgQ0KK+OCq+ODr+OCt+ODnizjgqvjgrrjg5LjgrMNCivjgqLjgrrjg54s44Oq44Ol44Km44K4DQor44OK44Kr44OOLOOCt+ODpeOCpuOCpOODgQ0KK+ODkuODqeODjizjgrXjg4jjgrcNCivjgr/jgqvjg4/jgrcs44Oe44K144OrDQor44OV44Kr44OkLOODouODouOCrQ0KK+OCquOCquODkCzjgr/jgrHjgrcNCivjgrXjgq/jg6njgqQs44OS44Ot44Ki44KtDQor44K144Kr44KkLOOCpOODg+OCu+OCpA0KK+OCouOCquOCrSzjgr/jgq/jgqoNCivjg6jjgrfjg4As44Ok44K544K3DQor44Kz44OP44K3LOODnuOCteODjuODqg0KK+ODnuODhOOCpuODqSzjg4bjg4Pjg5rjgqQNCivjgrXjg4jjgqYs44Kq44K144OgDQor44OL44K344Kt44Kq44OqLOODiOODouOCsw0KK+ODn+ODqOOCtyzjg6jjgrfjg5LjgrUNCivjgrPjgrnjgq4s44OE44Kr44K1DQor44K144OI44KmLOOCv+OCq+OCpOODgQ0KK+ODleOCuOOCpCzjg6jjgrfjg5Ljg60NCivjg5Xjg4rjg4As44Kr44K644OS44KzDQor44K544Ku44K/LOODiOOCquODqw0KK+OCt+ODp+OCpuODgCzjgqvjgrrjg5Ljg60NCivjg6Ljg6rjgrfjgr8s44OI44K344KqDQor44OS44OpLOODkuODiOOCtw0KK+OCt+ODs+OCv+OCryzjg5Ljg63jg6bjgq0NCivjg5Ljgqzjgrfjg4As44OI44K344Om44KtDQor44Kv44Oq44K/LOODnuOCteODqOOCtw0KK+OCpOODiuODgCzjg6bjgqbjgrXjgq8NCivjg4vjgrfjg44s44OI44K344OkDQor44Kk44Kx44K444OqLOODjuODquOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg4rjgqrjg5Ljg60NCivjg4rjgqvjgqvjg4ks44Oo44Km44Kk44OBDQor44Kk44OO44Oe44K/LOODkuODreOCtw0KK+ODhOODq+ODnyzjg5Ljg63jg6jjgrcNCivjg5Ljg6njg6Ljg4gs44K344Ky44KtDQor44Of44Oo44K3LOODleODn+OCouOCrQ0KK+OCouODr+ODjizjgr/jgqvjgrcNCivjgqLjgq3jgr8s44Oo44K344KoDQor44OS44Ks44K344Ok44OeLOOCv+OCseOCtw0KK+OCteODiOOCpizjg5Ljg63jg58NCivjgqvjg6/jgrXjgq0s44Kx44Kk44Kk44OBDQor44Oe44Or44Ok44OeLOODj+ODhOOCqg0KK+OCueODiuOCrCzjg5Ljg4fjgq0NCivjgqTjg57jgqQs44K/44Of44KzDQor44OV44K444KkLOODpuOCreOCqg0KK+ODnuOCreOCvyzjg5/jg4TjgqoNCivjgqTjg4jjgqYs44K/44OE44K3DQor44K/44Kr44OP44K3LOODquODpeOCpuOCpOODgQ0KK+OCreODquODnizjgrfjg7PjgrgNCivjgqrjgqrjg4vjgrcs44OI44Oi44Om44KtDQor44Of44OO44K344OeLOOCv+OCseODkuODiA0KK+OCteODiOOCpizjgqvjgrrjgr/jgqsNCivjg6Tjg57jgrfjgr8s44K/44Kr44Om44KtDQor44Of44K/44Og44OpLOODnuODpuODnw0KK+OCteODiOOCpizjgrfjgrLjg6sNCivjg4jjg57jg4Qs44K/44Oe44OfDQor44Ko44OT44K344OeLOODpOOCueODpuOCrQ0KK+ODr+ODgCzjgqvjgrrjg6QNCivjgrnjgrrjgq0s44Kt44Oo44K/44KrDQor44K544Ks44OP44OpLOODn+ODhOODqw0KK+OCv+OCsOODgSzjg5Ljg63jg6ANCivjg4jjgqzjgrcs44Oe44K144OS44KzDQor44OK44Ks44OP44OpLOOCteODiOODqw0KK+ODpOODnuODouODiCzjgrHjgqTjgrMNCivjgr/jgrHjg4As44Oe44K144Om44KtDQor44K144OI44KmLOODn+ODjuODqw0KK+OCv+OCq+ODn+ODpCzjg5Ljg4fjg47jg5YNCivjgqLjgqrjgq0s44K/44Kr44OS44OtDQor44Kz44Ok44KuLOOCueODn+OCv+OCqw0KK+OCquODjuOCtuOCrSzjg6rjg6fjgqbjgrnjgrENCivjg6Ljg6rjgr8s44OO44Oq44KzDQor44K144Kv44Op44KuLOODpuODn+OCsw0KK+OCquOCq+OCteOCqyzjg5Ljg63jg47jg6oNCivjg6Tjg57jgrDjg4Es44Kz44K544KxDQor44Kr44Ov44K344OeLOODqOOCt+ODjuODqg0KK+OCpOODr+ODjizjgqvjgrrjg47jg6oNCivjgrTjgqbjgrMs44Ok44K544OP44OrDQor44Oi44Oq44K/LOODpOOCueOCuA0KK+OCt+OCsuOCv+OCqyzjg4rjgqrjgq0NCivjg4bjgrrjgqss44Ko44Kk44K144KvDQor44Kq44K/LOODhOODqOOCtw0KK+ODpOODnuODgCzjg57jgrXjg4/jg6sNCivjg5Xjgqvjg4As44OS44K144Om44KtDQor44OP44K744OZLOODouODiOOCouOCrQ0KK+ODnuODhOODjizjgqLjg4TjgrcNCivjg4Tjgrjjgqvjg68s44Kx44Oz44Kk44OB44OtDQor44Oe44OE44Oi44OILOOCq+ODhOODnw0KK+OCu+ODjuOCqizjg4/jgrjjg6ENCivjg47jg6Djg6ks44K144OI44K3DQor44Ki44Op44KkLOODiOODqOOCt+OCsg0KK+OCquOCsOODqizjgrnjg5/jgqgNCivjgrjjg7Pjg44s44Oe44K144OS44OtDQor44OS44Ot44K644OfLOODn+ODjuODqw0KK+ODnuODhOOCpCzjgrnjgrnjg6ANCivjgrfjg5Djgrbjgq0s44Ki44OE44K3DQor44Kk44OO44Km44KoLOODkuODh+OCqg0KK+OCv+ODiuOCqyzjg5Ljg4fjgqvjgroNCivjgrXjgr0s44OK44Kq44OV44OfDQor44K344Op44OP44OeLOOCouOCreODkuOCsw0KK+OCv+ODiuOCqyzjg4rjgqrjgq0NCivjg4rjgqvjg6Djg6ks44Ok44K544OS44OtDQor44Kk44K344Ks44OfLOODqOOCt+OCouOCrQ0KK+OCt+ODkOOCvyzjg4bjg4Pjg5rjgqQNCivjg47jgrDjg4Es44Ki44Om44OfDQor44Kk44OB44OQLOOCs+OCpuOCuA0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjgrMNCivjg6jjgrfjg58s44OS44OH44OfDQor44OV44K444Kr44OvLOODkuODreODpuOCrQ0KK+OCq+ODiOOCpizjg4Tjg6jjgrcNCivjgr/jgqvjg4/jgrcs44Kk44K144OgDQor44OV44K444K144OvLOOCq+OCuuOCqg0KK+ODn+OCuuOCv+ODiyzjg4jjg6Ljg5Xjg58NCivjgrvjgq3jgrDjg4Es44Oo44K344Ot44KmDQor44Oe44Ko44Kr44OvLOODoOODhOODnw0KK+OCouODqeOCpCzjg6rjg6XjgqbjgrgNCivjg6Ljg6os44Kx44Kk44K/44Ot44KmDQor44K144OI44KmLOODiuOCquOCsw0KK+OCr+ODr+OCvyzjgrfjg6fjgqbjgqTjg4ENCivjgqrjgrDjg6os44OS44Ot44K3DQor44OS44Op44KkLOOCq+ODhOODkuOCsw0KK+ODi+OCt+ODoOODqSzjg5Xjg5/jg4jjgrcNCivjgqrjgqrjgq/jg6ks44OS44K144OO44OqDQor44K944OO44OZLOOCouOCreOCsw0KK+OCpOOCpOODgCzjg6TjgrnjgqLjgq0NCivjgrPjgrDjg4Es44Ko44Kk44Kk44OB44Ot44KmDQor44Oi44Ot44Ob44K3LOODkuODh+OCq+OCug0KK+ODj+ODnuODgCzjg47jg6rjgqvjg4QNCivjgqvjg4rjgrbjg68s44Kr44K644Om44KtDQor44Oe44OE44OQLOOCt+OCsuODqw0KK+OCpOODr+OCvyzjg5Ljg4fjg4jjgrcNCivjgqLjgrrjg4Es44Oe44K144OrDQor44Kz44Oz44OJLOOCpOOCteOCqg0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjgqoNCivjgqLjg57jg44s44OS44Ot44Ki44KtDQor44Kr44K/44OALOOCquOCteODoA0KK+OCv+ODoeODkuODrSzjg6Ljg4jjgrMNCivjg57jg4Tjg4As44K/44Kr44K3DQor44OK44Oq44Kk44K3LOODpOOCueODqOOCtw0KK+OCquOCreOCvyzjg6Ljg6rjg5/jg4ENCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44K544K644KtLOODpuOCpuOCuA0KK+ODnuODs+ODnSzjgqvjg4Tjg58NCivjgqTjg4HjgqQs44Kx44Oz44K4DQor44Kz44Kk44OHLOODiOODouOCsw0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjgrMNCivjg4rjgqvjgqzjg68s44Kr44K644KqDQor44Kq44OP44OeLOOCv+OCq+OCtw0KK+OCv+OCq+ODj+OCvyzjg5Ljg63jg58NCivjgrPjgrDjg4Es44K/44Kr44K3DQor44Of44Ok44Ks44OvLOOCq+OCuuODpA0KK+OCt+ODkOODpOODnizjg4/jgrjjg6ENCivjgqLjg6njgqQs44Ok44K544OS44OtDQor44Ov44K/44OK44OZLOOCueOCueODoA0KK+ODiuOCq+ODoOODqSzjg6bjgr/jgqsNCivjg5Xjg6vjg4/jgr8s44Oe44K144OK44OqDQor44K/44OL44Kw44OBLOODiuOCquOCueOCsQ0KK+ODm+ODs+ODgCzjgrnjgrnjg6ANCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44K/44Kr44KtLOODj+ODq+ODn+ODhA0KK+OCreOCr+ODgSzjgrfjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Kz44Km44Kk44OBDQor44OP44OpLOODnuOCteOCqg0KK+ODpOODnuODouODiCzjgr/jgqvjg5Ljg60NCivjg6Djg6njgqvjg58s44OI44Oi44Ok44K5DQor44OQ44OQLOODnuOCteODkuOCsw0KK+ODj+OCu+OCrOODryzjg4jjgrfjg5LjgrMNCivjgrXjgrXjgq0s44Ki44Kt44OV44OfDQor44Ki44OE44K/LOODkuODiOODnw0KK+OCv+ODgeOCq+ODryzjg5Ljg63jg4TjgrANCivjg5Ljg6njg6Ljg4gs44OS44OH44Ki44KtDQor44OK44Kr44Og44OpLOODiOOCt+ODpA0KK+ODhOODoOODqSzjgr/jgqvjgqoNCivjgr/jgqvjg4/jgrcs44K944Km44Kk44OB44Ot44KmDQor44Oo44Kz44Ok44OeLOODn+ODjuODqw0KK+OCs+OCv+OCsSzjg5/jg4TjgqoNCivjgqLjg7Pjg6njgq8s44K/44Kr44K3DQor44Of44K644OOLOOCt+ODs+OCpOODgQ0KK+OCquOCquODjOOCrSzjgqLjgq3jg6kNCivjgrXjgqvjgqQs44OP44K444OhDQor44Kq44K/LOOCt+ODp+OCpuOCvuOCpg0KK+ODj+ODpOOCtyzjg47jg6rjgqoNCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44K/44OK44KrLOODjuODquOCsw0KK+ODj+ODq+ODj+ODqSzjg4jjgqbjgrQNCivjgqrjgqrjg4Tjgqss44Oe44K144Om44KtDQor44Kt44K/44Ks44OvLOODkuODh+ODnw0KK+ODqOOCs+OCvyzjgqvjg4Pjg5rjgqQNCivjg6jjgrfjg6Djg6ks44Ki44OE44KzDQor44Kq44Kq44OS44OpLOOCt+ODs+OCpOODgQ0KK+ODgeODo+OCrSzjgrfjgrLjg5Ljg4cNCivjgrXjgqvjgrDjg4Es44Kz44Km44Kk44OBDQor44K544K644KtLOOCouOCreODkuODrQ0KK+ODgeOCq+OCtuODryzjg57jg6bjg58NCivjg4rjgqvjgrjjg54s44Oe44K144OO44OqDQor44Ov44K/44OK44OZLOOCv+ODgOOCqg0KK+OCt+ODkCzjgrjjg6Xjg7PjgrMNCivjgrXjgqvjgqQs44OB44OP44OrDQor44Ok44Oe44Of44K144KrLOODhuODhOOCqg0KK+ODqOOCt+OCrOODnyzjgqLjgq3jg6kNCivjg5Ljg6njg4Ys44Oe44K144Om44KtDQor44Ov44Kv44K344OeLOOCv+ODgOOCtw0KK+OCouOCteODnizjg4Hjgqvjg6kNCivjgqLjgrrjg58s44K/44OA44K3DQor44Kk44OK44Kq44KrLOODkuODreOCq+OCug0KK+OCteODiuOCpCzjg5Ljg63jgrcNCivjg6Tjg57jgqbjg4Es44Ok44K544OS44OtDQor44Kk44OP44OpLOODiOOCt+ODkuOCsw0KK+OCv+ODpOODnizjgqrjgrXjg6ANCivjgrXjgrXjgq0s44K344Oz44OkDQor44OV44K444Km44OBLOODiOOCt+OCouOCrQ0KK+OCpuOCt+OCuOODnizjgrfjg7PjgqTjg4ENCivjg47jg47jg6Djg6ks44Oe44K144K/44KrDQor44OL44K3LOOCv+OCseODkuODrQ0KK+OCpOOCseODgCzjg5Ljg63jg58NCivjgrnjgq7jgr/jg4ss44OS44Ot44K3DQor44Kq44K244KtLOOCv+OCseOCtw0KK+OCs+OCseODhCzjgqLjgq3jg5LjgrUNCivjgrXjg4jjgqYs44Oo44Km44K544KxDQor44K744Oz44OQLOOCouODhOOCtw0KK+OCouOCuuODnizjg5Ljg4fjg4gNCivjg4rjgqrjgqQs44Kk44OB44Ot44KmDQor44Ob44K344OOLOODqOOCt+OCrQ0KK+OCq+ODn+ODpCzjg6Tjgrnjg5Ljg60NCivjg6Djg6njgr8s44OS44OI44K3DQor44Kk44OB44Of44OkLOOCseOCpOOCsw0KK+OCv+ODq+OCpCzjg6TjgrnjgqLjgq0NCivjg4/jgq7jg4/jg6ks44Of44Ov44KzDQor44K/44Kr44OP44K3LOOCv+OCq+OCtw0KK+OCquODgeOCouOCpCzjg5Ljg4jjgrcNCivjgqLjgq3jg6Tjg54s44Kx44Kk44K544KxDQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+ODj+ODpOOCtyzjg5Ljg4fjgqoNCivjg6Tjg57jgrDjg4Es44Of44OE44OrDQor44OI44Kz44OtLOODiuOCquOCv+OCqw0KK+OCq+OCueODpCzjgqjjg4TjgrMNCivjgqTjg6rjgqgs44K344Ol44Km44K4DQor44Og44Op44Kk44K3LOODn+ODiuOCsw0KK+OCt+ODs+OCv+ODiyzjg6rjg6XjgqbjgrgNCivjgqbjgqjjg44s44Of44ObDQor44Km44OB44OALOOCs+OCpuOCuA0KK+ODj+OCu+OCrOODrywNCivjgq/jg63jg4As44Or44Oq44KzDQor44Kk44OI44KmLOOCq+ODhOODkuODrQ0KK+ODm+ODquOCpuODgSzjg57jg6QNCivjgqrjgqrjg4/jgr8s44OO44OW44Ki44KtDQor44Ob44Oz44OALOODkuODh+ODpuOCrQ0KK+ODiuOCq+ODoOODqSzjgrnjgrnjg6ANCivjgrXjgqjjgq0s44Kq44Kt44Oi44OqDQor44Ki44OZLOODhuODq+ODkuOCtQ0KK+OCpuODoeODgCzjgr/jgqvjg5Ljg60NCivjg4zjg54s44Oe44K144Om44KtDQor44K/44OW44OBLOODpuOCv+OCqw0KK+OCreODoOODqSzjg5/jg4Tjg6sNCivjgqbjg4As44K/44Kr44OfDQor44Ki44Kq44KtLOODjuODquOCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg4gNCivjg5XjgrjjgrPjgrcs44K144OI44K3DQor44K544Of44OALOOCreODqOOCtw0KK+OCr+OCuuODj+ODqSzjg47jg5zjg6sNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ki44Op44K/LOOCteODiOODnw0KK+ODreODg+OCq+OCryzjg57jg6bjg58NCivjgqTjg47jgqbjgqgs44Of44OE44Oe44K1DQor44OE44K444Oi44OILOODnuOCteODnw0KK+ODn+OCpuODqSzjg4rjg4rjgrMNCivjg43jg6Ljg4gs44Oo44K344KqDQor44Ki44Oh44Of44OkLOODqOOCt+OCq+OCug0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgqLjgqTjg5As44OO44OW44K/44KrDQor44Oo44ON44K244OvLOOCt+ODs+ODpA0KK+ODleOCuOODoOODqSzjgrfjg6XjgqYNCivjg6rjg6Xjgqbjg4gs44OS44Ot44OfDQor44Ov44K/44OK44OZLOODiOODouODnw0KK+OCreOCv+OCrOODryzjgrfjg7PjgrgNCivjgqLjgr/jg6njgrcs44OI44Oi44OK44KqDQor44Kt44Kv44OBLOOCuOODpeODsw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgr/jg4rjgqss44OS44Ot44K3DQor44Kk44Kx44OALOODkuODreODiuODqg0KK+ODqOOCs+OCq+ODryzjg5/jg4Tjg5LjgrMNCivjgq/jgrXjg4TjgrAs44K/44Kr44K3DQor44Of44K644OOLOOCseODs+OCuA0KK+ODiuOCrOODm+ODqizjgrPjgqbjgqTjg4ENCivjgrnjgq7jg6Ljg4gs44Kz44Km44K4DQor44Ki44Oz44OJ44KmLOODhOODjeOCqg0KK+OCv+OCq+ODpOODiuOCrizjg5Ljg63jg5Xjg58NCivjgrfjg5As44Oe44K144KzDQor44Kr44Of44Ok44OeLOOCq+OCuuODkuODrQ0KK+OCquOCquODkuODqSzjg5Ljg63jg58NCivjg5vjg7Pjg54s44OP44Or44Om44KtDQor44K/44OQ44K/LOODjuODluODqOOCtw0KK+OCqOODs+ODiSzjgrHjg7PjgqTjg4ENCivjgqTjgrfjgqzjgq0s44K744Kk44K4DQor44K344OQLOODpuOCpuOCpOODgeODrQ0KK+ODpOODnuODgCzjg57jgrXjg5Ljg4gNCivjgr/jgqvjg44s44Kr44OE44KqDQor44Oo44K344OALOOCv+ODhOODpA0KK+OCouODnuOCteOCrSzjg4jjgrfjg5LjgrMNCivjgqrjgrfjgqvjg68s44K344Oz44K4DQor44OL44K344OOLOODn+ODm+OCsw0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjg4/jg57jgqrjgqss44OI44Oi44KzDQor44K144OOLOOCv+OCq+OCq+OCug0KK+OCueOCqOOCt+OCsizjgq/jg4vjg4bjg6sNCivjg4rjgqvjgr8s44OS44Ot44OfDQor44Kz44OQ44Ok44K3LOODkuODh+ODpuOCrQ0KK+OCueODieOCpizjg6TjgrnjgrcNCivjg4Tjg4Tjg58s44Kt44Oo44OS44OIDQor44Of44K/44OLLOOCs+OCpuOCuA0KK+OCpOOCt+ODgCzjg6Tjgrnjg5Xjg58NCivjgqTjgqTjgrrjgqss44Om44K/44KrDQor44K344Op44KkLOODpuODnw0KK+ODpOODnuODgCzjgqTjg6/jgqoNCivjg4Tjgrjjgqvjg4ks44Kr44K644KzDQor44Oe44OE44OK44KsLOOCs+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgqvjgrrjgqgNCivjg5/jg4rjg58s44OS44Ot44K3DQor44K144Kr44KkLOODnuOCteODpuOCrQ0KK+OCpuOCqOOCrSzjgrfjgqrjg6oNCivjgqrjg4As44Oe44K144KqDQor44Oe44Ko44OALOOCu+OCpOOCuA0KK+ODh+OCreOCv+ODiyzjgrjjg6Xjg7MNCivjgqLjg57jg44s44K/44Kr44OS44OtDQor44Of44Ok44Kz44K3LOOCt+OCsuOCq+OCug0KK+OCouODs+OCtuOCpCzjg4jjgrfjg5/jg4ENCivjgqbjg6Hjg4As44Om44Kt44KqDQor44K/44Kt44K244OvLOOCouODhOOCtw0KK+ODoOODqeODi+OCtyzjgq3jg6jjgrcNCivjgq/jg6rjg4/jg6ks44OI44K344OS44KzDQor44Ok44Oe44K144KtLOODnuODqg0KK+OCquOCquODhOOCqyzjg5/jg4Tjg5Ljg60NCivjgqLjg5/jg44s44K/44Kr44K3DQor44Oi44OqLOODpOOCueODjuODqg0KK+ODi+OCt+ODouODqizjgrfjg7PjgrgNCivjgr/jgrHjg44s44Oe44K144KqDQor44K344Oz44Ks44KtLOODqOOCt+OCq+OCug0KK+ODnuODhOOCqizjg6jjgrfjgq0NCivjg5Xjgrjjg40s44Oe44K144KtDQor44Kr44OK44Oe44OrLOODkuODreODqOOCtw0KK+OCq+ODiuOCtuODryzjgr/jg4Tjg6bjgq0NCivjgrfjg5/jgros44Oq44Ol44Km44K4DQor44Ov44OALOOCpOODhOOCsw0KK+OCpOOCt+OCr+ODqSzjgr/jgrHjgrcNCivjg5Xjgq/jg4As44Ki44Kt44OS44OtDQor44Km44Kr44KkLOODqOOCt+OCsw0KK+OCouODquODnizjgqrjgrXjg6ANCivjgqrjgqrjgr8s44K/44Kr44Ki44KtDQor44Oi44Oq44K/44OLLOOCv+OCq+OCtw0KK+OCouODgOODgSzjg6jjgrfjg5Ljg60NCivjgq/jg57jg4cs44Oe44K144OO44OqDQor44Ki44OpLOOCueOCueODoA0KK+ODj+OCt+ODouODiCzjg4jjgqrjg6sNCivjg4jjg6jjgqrjgqss44Oe44Kz44OIDQor44Kq44Kq44OELOODhuODhOODreOCpg0KK+ODn+ODpOOCrSzjgrHjgqTjgqTjg4ENCivjgqTjgrfjgqvjg68s44K444Ol44Oz44Kk44OBDQor44Kk44Ks44Op44K3LOODiuOCquODhOOCsA0KK+OCquOCquODi+OCtyzjgq3jg7Pjg6QNCivjgrfjg6njgqTjgrcs44Kz44Km44Kk44OBDQor44Oo44Kz44OhLOODqOOCt+OCouOCrQ0KK+ODleOCuOODouODiCzjgqvjgrrjg5Ljg60NCivjgqvjg7Pjg44s44Oi44Oq44Ok44K5DQor44K/44OB44OQ44OKLOODn+ODgeOCqg0KK+ODpOODnuODgCzjg4Hjg4rjg58NCivjgqLjgrXjg58s44K344Ky44KqDQor44Of44Km44OpLOODpOOCueOCtw0KK+ODiOOCr+ODkuODrSzjg5Ljg63jg47jg5YNCivjg6Ljg6rjgqvjg68s44Oe44K144OO44OWDQor44Kk44OI44KmLOODn+OCreODkuOCtQ0KK+OCteODjizjg4jjg6Ljg5/jg4QNCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44K344Oi44OI44OOLOODnuODiuODlg0KK+ODnuOCq+ODmSzjgrXjg4jjg58NCivjgqTjg4jjgqYs44Kz44Km44K4DQor44OE44Kv44OALOOCuOODpeODs+OCuA0KK+ODqOOCt+OCq+ODryzjg5/jg4TjgrANCivjgr/jgqvjg6Tjg4rjgq4s44OS44Ot44KtDQor44Ob44Oz44OALOOCv+OCq+ODqOOCtw0KK+ODi+OCt+ODjizjg6bjgqbjgrgNCivjgq3jg6Djg6ks44Oo44K344OS44OtDQor44Kr44OI44KmLOOCs+OCpuOCpOODgQ0KK+OCquOCquODj+OCvyzjgrjjg6Xjg7MNCivjgqbjg4Tjg58s44Kr44K644OS44KzDQor44Ki44Oz44OJ44KmLOOCq+OCuuODkuOCtQ0KK+ODj+ODnuOCv+ODiyzjg5/jg47jg6sNCivjgq3jg47jgrfjgr8s44K/44Kr44OV44OfDQor44Kr44Ov44K7LOODiOOCt+OCv+OCqw0KK+OCpuOCqOODjizjg6jjgrfjg5LjgrMNCivjgrfjgqvjg54s44Oq44On44Km44K4DQor44K544K644KtLOODnuOCteODpuOCrQ0KK+ODleOCuOOCquOCqyzjg57jgrXjg5Ljg60NCivjgqTjg47jgqbjgqgs44OI44Oi44OS44OtDQor44Kt44K/44K244KtLOODpOOCueODpuOCrQ0KK+OCouOCpOODmSzjg5Ljg63jgrcNCivjgqrjgqrjgqvjg68s44K144Kr44KoDQor44K/44Kx44KkLOODpOOCueODj+ODqw0KK+OCq+ODqeODj+OCtyzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44Oe44Om44OfDQor44Ki44Op44KkLOODkuODreOCtw0KK+OCpOODjuODgCzjg47jg6rjg6bjgq0NCivjgqrjgq/jg6Djg6ks44Ko44OqDQor44Oe44Or44KkLOOCuOODpeODs+OCsw0KK+ODkuODreOCuuODnyzjgqLjgq3jg5LjgrUNCivjg6/jgrfjgros44K/44Kv44OkDQor44Oo44K344Og44OpLOOCv+OCq+ODkuOCtQ0KK+OCq+ODhOODnuOCvyzjgr/jgqvjgrcNCivjg57jgrnjgqvjg68s44Kr44OE44OpDQor44Kk44Ov44KqLOOCt+ODpeOCpuOCuA0KK+ODpOODnuODouODiCzjg6jjgrfjg5Ljg4gNCivjgr/jg4rjgqss44K144OI44OrDQor44K/44Kx44Km44OBLOODjuODquODpuOCrQ0KK+ODjuODj+ODqSzjgrfjg6Xjgqbjgr7jgqYNCivjg5Xjg4rjg4/jgrcs44Kr44K644OO44OqDQor44OK44K044K3LOOCseODs+OCuA0KK+OCpuODoeODgCzjgqvjgrrjg6QNCivjgqLjgq3jg6Tjg54s44OS44OI44K3DQor44OK44Kr44OALOODnuOCteODiA0KK+OCteOCpOODiOOCpizjg6HjgrDjg58NCivjgr/jg4/jg6ks44K444Ol44Oz44Kk44OB44OtDQor44OL44K344Oe44OELOODqOOCt+ODkuODrQ0KK+ODkuODqeODn+ODhCzjg57jgrPjg4gNCivjg6Hjgqvjgr8s44Oe44K144OrDQor44K/44Kr44OfLOODquODpeOCpuOCv+ODreOCpg0KK+OCveODjuODgCzjg5Ljg4fjg6bjgq0NCivjg5/jg6Tjgrbjgq0s44Om44Km44K4DQor44Oe44Or44Ok44OeLOODkuODh+OCouOCrQ0KK+ODhOODjuOCq+ODryzjg57jgrXjgrcNCivjg4/jg6njg4As44Kr44OE44OfDQor44OE44K4LOODhOOCsOODkuOCsw0KK+OCpOOCrOODqeOCtyzjg4jjgrfjgqoNCivjg6jjgrfjg4As44Kr44Kq44OqDQor44K/44Kx44Ks44K/LOOCs+OCpuOCrQ0KK+OCouODmSzjg6rjg6fjgqbjgrgNCivjgqLjgqvjg4zjg54s44OI44Kv44OS44OtDQor44Kr44Ov44OALOODkuODreOCouOCrQ0KK+OCv+OCtCzjg5Ljg63jgrcNCivjgqvjg5/jg6Djg6ks44Oe44K144K3DQor44Oe44OE44OkLOOCsuODsw0KK+OCpOODr+OCvyzjgqLjgq3jg5LjgrMNCivjg57jgqjjgqvjg68s44K144OI44K3DQor44Ok44Oe44Kw44OBLOODrOOCpOOCsw0KK+OCt+ODreOCt+OCvyzjg4jjg6Ljg5Ljg60NCivjg6Tjg57jgrfjgr8s44Oe44K144OIDQor44OE44K444Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiuOCqyzjg6jjgrfjg5Xjg58NCivjg5/jg4rjg58s44OI44Oi44OS44OtDQor44K144OI44KmLOODqOOCt+OCouOCrQ0KK+OCpuOCquOCuuODnyzjgqLjgq3jg6kNCivjgrnjgq7jg6Tjg54s44OS44Ot44Om44KtDQor44OB44OQLOODnuOCteODpuOCrQ0KK+OCq+ODiuOCpCzjgrXjg4jjgrcNCivjg57jg4Tjg6Tjg54s44OE44Oo44K3DQor44K/44Kr44OOLOOCouOCreODqQ0KK+OCr+ODnuOCrOOCpCzjgrPjgqbjgqTjg4ENCivjgr/jgrHjgrPjgrcs44Og44OE44OS44K1DQor44OV44K/44OQLOODiOOCt+OCouOCrQ0KK+OCpuODoeOCtuOCrSzjgqvjgrrjgr/jg4ANCivjgqrjgqTjg6/jgrEs44Oo44Km44K544KxDQor44OK44Ks44OE44KrLOODnuODiuODlg0KK+OCpOODnuOCrOODryzjg5Ljg4jjg58NCivjg4/jgrfjg6Ljg4gs44Ki44Kt44OpDQor44Kq44Kq44OS44OpLOODpuOCpuOCv+ODreOCpg0KK+ODn+ODpOODkuODqSzjg5/jg4HjgqLjgq0NCivjg47jgrDjg4Es44Kx44Kk44K+44KmDQor44K544Ku44Oi44OILOOCq+OCuuODleODnw0KK+OCq+ODr+OCsOODgSzjgqvjg4Tjg47jg6oNCivjgrfjg47jgrss44OE44Oo44K3DQor44OK44Oq44K144OvLOODqOOCt+ODkuODiA0KK+ODkuODreOCuyzjgqLjgq3jg5Ljg60NCivjg4vjgrfjgrbjgq0s44K544K544OgDQor44Oi44OqLOODjuODluODpuOCrQ0KK+ODleOCq+OCqizjg6jjgrfjgrMNCivjg5/jg6Tjgrjjg54s44Kx44Kk44K+44KmDQor44Oe44OE44OOLOOCq+OCuuOCt+OCsg0KK+OCpOODr+OCpCzjgrfjgrLjg47jg5YNCivjgqvjgqQs44Of44OJ44OqDQor44K/44OK44KrLOOCr+ODi+OCsw0KK+ODgeODkCzjg57jgrXjg58NCivjgr3jg44s44OS44Ot44K3DQor44Oo44Kz44Ok44OeLOOCouOCreODkuOCtQ0KK+OCv+OCq+OCt+ODnizjgrjjg6Xjg7MNCivjgqrjgqvjg6Ljg4gs44Kz44Km44K4DQor44Of44Ok44Kr44OvLOODgOOCpOOCueOCsQ0KK+ODoOODqeODouODiCzjg4jjg6LjgqLjgq0NCivjgq3jg6Djg6ks44Kz44Km44Kk44OBDQor44Oe44OE44OK44KsLOODpuODn+OCsw0KK+ODleOCr+ODgCzjg4Tjg4jjg6ANCivjgqrjgqrjg4vjgrcs44Oe44K144K3DQor44Ki44KkLOODkuODh+OCq+OCug0KK+ODnuOCqOODgCzjg5LjgrXjgqvjgroNCivjgqTjg47jgqbjgqgs44Oo44K344OfDQor44Kk44Kk44OALOOCv+OCq+ODkuOCtQ0KK+ODleOCuOOCpCzjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgqQs44K/44Kv44OkDQor44Oe44OE44KkLOOCpuOCpOODqg0KK+OCpOODnuODgCzjgrfjg7PjgrgNCivjg5/jg6TjgrEs44Ki44OE44K3DQor44K144Kr44KkLOODkuODreODkuOCtQ0KK+OCq+ODiOOCpizjgqrjgrXjg6ANCivjgqTjg6/jgr8s44OK44Kq44OIDQor44Kq44Kq44OOLOODnuOCteODpA0KK+OCpOOCveODmSzjgr/jgqvjg6jjgrcNCivjgqrjg6Tjg57jg4As44OE44OI44OgDQor44OI44Km44K444OeLOOCv+ODhOODkuODrQ0KK+OCv+OCseOCpuODgSzjgqvjgrrjg5LjgrMNCivjg4rjgqvjg6Tjg54s44Oe44K544KqDQor44K344Op44Kk44K3LOOCquOCteODoA0KK+OCq+ODjuODnuOCvyzjgqLjg4TjgrcNCivjgrnjg4njgqYs44K/44Kr44OS44OtDQor44K344Op44Ok44OeLOOCouOCreODkuODrQ0KK+OCquOCquODpCzjg57jgrXjg6sNCivjg5/jg4rjgqzjg68s44OI44Oi44OS44OtDQor44Kt44Og44OpLOOCv+ODhOODpA0KK+OCv+OCq+OCrizjg4DjgqTjgr4NCivjgrXjg4jjgqYs44Om44Kt44KqDQor44OV44K444Ov44OpLOODn+ODhOODqw0KK+OCpOODouODiCzjg6jjgqbjgr8NCivjgqbjgqjjg44s44OI44Oi44OS44OtDQor44Kt44On44Km44OOLOOCseODs+OCtA0KK+OCreODquOCpizjg6jjgrfjgr/jg4ANCivjgq/jg5zjgr8s44OE44ON44KqDQor44Kz44K744KtLOOCv+OCq+OCtw0KK+OCueOCtuOCrSzjg57jgrXjg5Ljg60NCivjgr/jgqvjgrXjgq0s44Ok44K544OS44K1DQor44OE44Kr44Oi44OILOOCt+ODs+OCpOODgQ0KK+ODiuOCpOODiOOCpizjgrHjg7PjgrgNCivjg4rjgqvjgrTjg6Es44OS44Ot44Kr44K6DQor44OK44Kr44Og44OpLOODkuODh+ODpOOCuQ0KK+ODj+OCruODr+ODqSzjgqvjg4Tjg58NCivjg57jg4Tjg6Ljg4gs44Kr44Oo44KzDQor44Kz44Oz44OOLOODqOOCt+ODkuOCtQ0KK+OCteOCpOOCsOOCtSzjgr/jg6Ljg4QNCivjg5vjg7Pjg4As44Om44Kt44KqDQor44K/44OK44KrLOODkuODreOCtw0KK+ODnuODhOODiOODnyzjgqvjg6jjgrMNCivjgqLjgqvjgrXjgqss44OS44Ot44Ki44KtDQor44K744Oz44Ks44OzLOOCouOCreODkuODhw0KK+OCv+OCseOCqizjg47jg6rjgqvjgroNCivjg6Djg6njgr8s44OS44Ot44Om44KtDQor44Kr44Ov44K7LOODiOODouODkuODrQ0KK+ODi+OCt+OCtuOCrSzjgr/jg4Tjg6bjgq0NCivjg5jjgqTjg4jjgqYs44Ko44Kk44Kk44OBDQor44Kq44Kq44K144OvLOODnuOCteODj+ODqw0KK+OCpuOCqOODgCzjg6jjgqbjgqTjg4ENCivjgqvjg4rjg6Tjg54s44Ok44K544OS44KzDQor44OP44Op44OALOODiOODouODpuOCrQ0KK+ODiuOCq+OCrOODryzjgqLjg4TjgrcNCivjg5/jg6Tjg6Ljg6os44Oe44Kz44OIDQor44Kr44KkLOOCseODs+OCuA0KK+OCreOCsOODgSzjgrfjg6XjgqbjgrgNCivjgrXjgr/jgrEs44Kx44Oz44K4DQor44Kq44Kq44Kq44KrLOODiOOCt+ODreOCpg0KK+ODiuOCq+OCtuODryzjgrPjgqbjgrgNCivjg6Tjgrnjgqrjgqss44Oe44K144OS44OHDQor44Kv44Ot44Of44OELOODpOOCueOCv+OCqw0KK+OCq+ODiuODgCzjg5Ljg4fjgq0NCivjg57jg6vjgqvjg68s44OS44OH44KtDQor44OK44Ks44K144OvLOOCv+OCseODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg6XjgqYNCivjgqjjg7Pjg4ks44Oe44K144OO44OqDQor44Kk44Oz44OK44OfLOODj+ODq+OCqg0KK+ODpOODnuODouODiCzjgq3jg6jjgr/jgqsNCivjg4rjgqzjgq/jg6ks44K144OI44K3DQor44Km44Ko44OOLOODnuODgeOCsw0KK+ODi+OCt+OCtuOCqyzjg5/jgqsNCivjgrXjg4jjgqYs44OG44OE44Ot44KmDQor44Oi44Oq44Ok44OeLOOCv+ODhOOCqg0KK+OCs+ODj+ODpOOCuyzjgrfjgrLjgqoNCivjg4njgqTjgr8s44OS44Ot44K3DQor44Ob44K944Kr44OvLOODjuODluOCqg0KK+OCouOCquOCrSzjg5/jg4TjgqQNCivjg57jgrnjg5/jg4As44OI44Oi44OS44KzDQor44Kq44OBLOODnuOCteOCpOODgQ0KK+OCueOCuuOCrSzjgrHjg7PjgrgNCivjgrnjgq7jg6Tjg54s44Kx44Oz44Kk44OBDQor44OV44K444Ov44OpLOOCu+OCpOODpA0KK+OCv+ODiuODmSzjg5/jg4Tjg6bjgq0NCivjg4jjg4As44Ki44OE44K3DQor44OE44Oc44KkLOODpOOCueOCqg0KK+OCueOCruOCvyzjg57jgrXjg47jg6oNCivjgqLjg4Djg4Es44Kx44Kk44K/DQor44OV44K444KkLOODnuOCteOCrQ0KK+OCueOCrOODouODqizjg5Ljg63jgrcNCivjg6Tjgrnjg4As44OK44Kq44OS44KzDQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCrOODnyzjg57jgrXjg6sNCivjg4jjg5/jg6Tjg54s44Om44Km44K4DQor44OP44ON44OALOODpOOCueODpuOCrQ0KK+OCquOCtuOCrSzjgr/jgrHjgrcNCivjgqrjgrDjg6ks44Ok44K544Om44KtDQor44OG44Op44K144KtLOODjuODluODpA0KK+ODhOODgeODpCzjgqjjg4TjgrMNCivjgqrjgqvjg4As44OG44Or44KqDQor44Ki44OZLOODjuODluODpuOCrQ0KK+OCouODmSzjg5/jg4TjgqgNCivjg6Ljg6rjg6/jgq0s44Kz44Km44Kk44OB44Ot44KmDQor44OP44Ok44OOLOOCseODs+OCvw0KK+ODiOODn+ODiuOCrCzjgrjjg6Xjg7MNCivjgrnjgrrjgq0s44Of44KtDQor44Kr44K/44Ku44OqLOOCteODiOOCtw0KK+OCouODj+ODqSzjg4/jg6Tjg4gNCivjg5vjgrcs44OK44OK44KzDQor44Kk44K344Kr44OvLOOCv+ODhOODpA0KK+OCt+ODouODoOODqSzjg6jjgrfjg5LjgrUNCivjg6/jgq3jg6Ljg4gs44Of44Om44KtDQor44Kr44Ov44OGLOOCv+OCq+OCtw0KK+OCouODluODqeOCq+ODryzjgqvjgrrjgqrjg58NCivjg6jjgrfjgr/jgrEs44K/44Kr44K3DQor44Kk44K344OALOODnuOCteODpuOCrQ0KK+ODm+ODs+ODgCzjg4jjgrfjg63jgqYNCivjgrfjgr/jg54s44Oo44K344KqDQor44OO44Kw44OBLOOCv+OCseOCtw0KK+ODn+OCuuOCpCzjgqLjg6TjgqoNCivjgqLjg7Pjg4njgqYs44OK44Kq44OV44OfDQor44Oo44ON44K344OeLOODiuODhOODnw0KK+OCouOCreOCvyzjgrjjg6Xjg7PjgrMNCivjgqbjgqgs44Ki44OE44K3DQor44K544KuLOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCuOODnizjg57jg6oNCivjgqvjgrXjgqrjgqss44OI44K344OS44KzDQor44OO44OALOODhuODhOODleODnw0KK+ODnuODhOOCtuODryzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg6/jgr/jg5ks44K/44OE44KqDQor44Ki44Kk44K244OvLOOCseOCpOOCuOODreOCpg0KK+OCpOODr+OCtSzjgrfjg7MNCivjgrPjgqws44Ki44Kt44OS44KzDQor44OS44Ks44K344K/44OLLOODkuODh+ODleODnw0KK+OCpOOCseODgCzjg4jjgrfjg6QNCivjgqLjgq3jg4rjgqss44Ok44K544OP44OrDQor44OV44K444K/LOOCq+OCuuODpA0KK+ODpOODnuOCquOCqyzjg5LjgrXjgr/jgqsNCivjg6/jg4Es44K744OE44OkDQor44Km44Ko44OOLOOCseODs+OCv+ODreOCpg0KK+OCpuOCt+OCrSzjgqvjgrrjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44OP44Or44OS44KzDQor44Kr44OI44KmLOODnuOCteODiOOCtw0KK+ODiuOCrOOCpCzjgr/jg4Djg5Ljg60NCivjg5Xjgq/jg4As44Ki44Ok44KzDQor44OK44Kr44K/44OLLOOCqOODnw0KK+ODkuODqeOCteODryzjg4rjgqzjgrMNCivjg5/jg6Tjgrbjgq0s44Oe44K144OrDQor44OG44Op44K344OeLOODoOODjeOCq+OCug0KK+OCouODqeOCpCzjg4HjgqwNCivjgr/jg4rjgqss44K344Oz44Kk44OBDQor44Kr44ON44KzLOOCv+OCq+OCouOCrQ0KK+OCteODiOOCpizjg4bjg4TjgrgNCivjg4rjg6rjgr8s44K344Ol44Km44Kk44OBDQor44OK44Ks44K344OeLOOCuOODpeODs+OCpOODgeODrQ0KK+OCteOCq+ODjizjg4jjgrfjgqoNCivjg5/jgqbjg6ks44K144OI44K3DQor44Ok44Oe44Kw44OBLOOCseOCpA0KK+OCquODh+ODqSzjg4rjgqrjg4jjgrcNCivjgqLjg5ks44Ki44OE44K3DQor44Kz44OA44OeLOOCq+OCuuODkuODrQ0KK+ODpOODnuODouODiCzjg5Ljg63jg6bjgq0NCivjgqrjgrfjg54s44OI44Kq44OrDQor44Kk44K344K6LOODhOODiOODoA0KK+OCq+ODs+ODkOODpOOCtyzjg6bjgq3jgqoNCivjgqrjgqrjgqvjg68s44OS44Ot44Om44KtDQor44OS44Ko44OALOOCv+OCseODkuOCsw0KK+OCpOODjuODnuOCvyzjg5Ljg63jg58NCivjg57jgq3jgr8s44OI44K344OkDQor44Ks44OK44OPLOOCv+OCq+ODpuOCrQ0KK+ODj+ODpOOCq+ODryzjg5Ljg63jg6bjgq0NCivjgqLjgqvjg4zjg54s44OG44OE44OkDQor44Og44Ot44Kr44OvLOODnuOCteODjuODqg0KK+OCquODjizjgrHjgqTjgrnjgrENCivjgq3jg6Djg6ks44K344On44Km44K0DQor44OP44K/44K244OvLOODpOOCueOCsw0KK+ODleOCuOOCvyzjg57jgrXjgq0NCivjgqbjgqjjg4As44OA44Kk44K544KxDQor44Ok44Oe44OO44Km44OBLOOCpOOCteOCqg0KK+ODleODq+OCvyzjg6jjgrfjg5Ljg60NCivjgqrjgq/jg6Tjg54s44Kx44Oz44Kk44OB44OtDQor44Kk44OI44KmLOODleODn+OCqg0KK+OCquOCteODiuOCpCzjgrvjgqTjgqTjg4ENCivjgrPjgr/jg4ss44K/44Kx44K3DQor44Kq44Kq44OE44KrLOOCv+ODgOOCouOCrQ0KK+ODleOCr+OCt+ODnizjgrPjgrnjgrENCivjgqTjgqTjgrrjgqss44Kx44OzDQor44Ov44K/44OK44OZLOODhuODq+OCouOCrQ0KK+ODouODquOCvyzjgrHjg7PjgqTjg4Hjg60NCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Ob44Oz44OALOODiOOCt+OCouOCrQ0KK+OCq+ODiOOCpizjgqLjgq3jg47jg6oNCivjgqLjgrXjg4zjg54s44Ok44K544OS44OtDQor44Ki44K644OeLOODnuOCteOCqg0KK+ODhuODqeOCteODryzjg5/jg4TjgqoNCivjgqLjgqvjgrcs44OE44ON44KqDQor44Kr44OI44KmLOODiuOCquODiA0KK+OCquODjuOCteODiCzjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44OE44KwDQor44OO44Og44OpLOODkuODh+ODnw0KK+OCpOODjuOCpuOCqCzjgqjjgqTjgqTjg4ENCivjg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44K/44Og44OpLOOCrOOCrw0KK+OCteOCq+OCpCzjgrnjgqjjg47jg5YNCivjgrnjgq7jg6Djg6ks44Oq44On44KmDQor44OI44Of44Ok44OeLOOCseOCpA0KK+OCq+OCreOCtuODryzjg4jjgrfjgqLjgq0NCivjg4vjgrfjgr/jg4ss44K344On44Km44Kk44OB44Ot44KmDQor44Ki44K144Kv44OpLOOCt+ODs+ODpA0KK+OCpOOCt+OCtuOCrSzjgrXjg4jjgrcNCivjg57jg4Tjg6Ljg4gs44K344Oz44Kk44OB44Ot44KmDQor44OK44Ks44KqLOODiOOCt+OCqg0KK+OCreODjizjg6rjgqgNCivjgqLjg5ks44K/44K544KvDQor44OILOOCs+OCpuOCuA0KK+ODpOODnuOCrSzjgrPjgqbjgqTjg4ENCivjgqLjg6njgqQs44Ky44OzDQor44Ok44Oe44OALOOCseOCpOOCuA0KK+OCquOCr+ODoOODqSzjgqvjgrrjgqgNCivjg4/jg6ks44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Oi44OILOOCq+ODhOODkuOCtQ0KK+ODiuOCq+ODoOODqSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqLjg6njgqQs44Kr44K644OkDQor44Kk44Kx44OJLOODnuOCteOCv+OCqw0KK+OCpOODiOOCpizjgrHjgqTjgrgNCivjgqTjg4jjgqYs44Om44Km44K4DQor44Km44Oq44Ol44KmLOOCouOCreODqQ0KK+OCpuODgeODpOODnizjgr/jg4DjgrcNCivjgqjjg47jg6Ljg4gs44OS44Ot44Of44OBDQor44Ko44K644OpLOODiOOCquODqw0KK+OCquOCquODhOOCqyzjgrHjgqTjgrnjgrENCivjgqjjg4vjg6Ms44K544K544OgDQor44Ki44Kr44KqLOOCseOCpOOCueOCsQ0KK+OCquOCquODi+OCtyzjgrfjg6fjgqbjgrgNCivjgqvjgqzjg6Qs44Kk44OK44OzDQor44Kr44Oe44K/LOOCv+OCq+ODkuODrQ0KK+OCq+ODr+OCq+ODnyzjg47jg5bjg5LjgrUNCivjgrXjgrXjgq0s44Ok44K544Oo44K3DQor44K/44Kr44OP44K3LOODiuOCquODkuOCsw0KK+OCv+ODgCzjgrPjgqbjgqTjg4ENCivjg4vjgrfjg44s44Oe44K144Oo44K3DQor44Ki44K144KqLOODiuOCquOCrQ0KK+ODj+OCt+ODouODiCzjg4rjgqrjgq0NCivjg4/jg4Pjg4jjg6os44K/44Kr44KzDQor44Ob44K3LOOCv+OCqg0KK+ODm+ODquOCvyzjgrfjg7PjgqTjg4ENCivjg57jgqjjgr7jg44s44OK44Or44OS44OHDQor44Oe44Ko44K444OeLOODn+ODjuODqw0KK+ODn+ODpOOCtuOCrSzjg6bjg5/jgrMNCivjgqLjg6njgqQs44Oo44K344OfDQor44Oi44OqLOOCs+OCueOCsQ0KK+ODnuOCqOODgCzjg5Ljg63jgrcNCivjgqrjg4Es44Kx44OzDQor44Ki44K144Kv44OpLOODjuODquOCqg0KK+OCpuOCteODnyzjgqLjg4TjgrcNCivjgqrjgq/jg6Tjg54s44K/44Kr44K3DQor44Kr44Oq44OkLOOCv+OCq+ODkuOCsw0KK+OCpuOCqOODgCzjg5Ljg4fjg6bjgq0NCivjgqrjgr/jg5ks44Kx44Kk44K+44KmDQor44Kt44Og44OpLOOCpOOCteODoA0KK+OCr+OCt+ODgCzjg6jjgrfjg4/jg6sNCivjgqLjg57jg48s44Kz44Km44K4DQor44Kz44Oz44OJLOODqOOCt+OCrQ0KK+OCt+ODn+OCuizjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgrnjgrrjgq0s44K344Ol44Km44Kz44KmDQor44K544OzLOOCueODn+OCqg0KK+OCv+ODieOCs+ODrSzjg5Ljg4jjgrcNCivjg4jjg43jgrXjgq8s44Kk44K144OgDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODnuOCueODgCzjg5Ljg63jgqoNCivjg5/jg6Tjgrbjgq0s44Of44OP44OrDQor44Oo44K344OK44KsLOOCouOCreODkuOCtQ0KK+ODqOOCs+OCq+ODryzjgr/jgq/jg54NCivjg4Tjg4Hjg6Qs44Oe44Om44OfDQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+OCv+ODiuODmSzjg57jgrXjgrgNCivjgqTjg4jjgqYs44Kx44Kk44K544KxDQor44OK44Ks44KqLOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjgr/jgrHjgrcNCivjgr/jg4As44OI44Oi44OS44OtDQor44Ki44Kt44Oi44OILOOCt+ODpeODs+OCueOCsQ0KK+OCv+ODoOODqSzjg57jg6Ljg6sNCivjgr/jg6Djg6ks44Kr44K644Om44KtDQor44Kq44KrLOODn+ODgeODj+ODqw0KK+OCteOCr+ODqeOCrizjgrHjg7PjgqTjg4ENCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Oi44Oq44Kq44KrLOOCv+ODgOOCtw0KK+ODpOOCsOODgSzjg6bjgqbjgrcNCivjg5/jg6Tjg6Ljg4gs44K144OI44K3DQor44K344Op44Kr44OvLOODkuODh+OCrQ0KK+OCquOCquODhOOCqyzjg5Ljg4fjgq0NCivjg6Tjg57jg6Ljg4gs44OI44Oi44Ok44K5DQor44OK44Kr44Oe44OBLOODpOOCueODleODnw0KK+ODr+OCq+ODj+ODqSzjg6TjgrnjgqoNCivjgqLjgq0s44K/44Kr44K3DQor44K/44Kt44K/LOOCq+OCuuODkuODrQ0KK+OCouODqeOCq+ODryzjgrHjgqTjgqTjg4ENCivjg57jg4Tjgqos44Kz44Km44K4DQor44OB44On44KmLOODpuOCpuOCpOODgQ0KK+OCr+ODreODgCzjgrfjgrLjg6sNCivjg6Tjg57jgrfjgr8s44K/44Ot44KmDQor44OI44Oi44Kq44KrLOOCqOODn+OCsw0KK+ODiuOCq+OCqizjg6/jgr/jg6sNCivjgqLjgr0s44OG44Or44Kr44K6DQor44OV44Kv44OALOODjuODluOCv+OCqw0KK+OCouOCquOCrSzjg5Ljg4jjgrcNCivjgq/jg6ss44OS44K144OIDQor44Og44Op44Kr44OfLOODpOOCueODkuODrQ0KK+OCr+ODreODgCzjgr/jgq/jg6QNCivjg5/jgqvjg58s44Ki44Kt44OS44OtDQor44Kr44Of44Og44OpLOODkuODreODpuOCrQ0KK+OCreOCv+OCuOODnizjg4rjgqrjgq0NCivjg57jg6vjg6Tjg54s44Oo44K344OS44K1DQor44K144K/44KxLOOCseODs+OCpOODgQ0KK+ODouODhuOCrSzjgr/jgrHjgrcNCivjg4jjg5/jgr8s44OV44KtDQor44OL44OvLOODleODn+OCsw0KK+OCv+OCq+ODkOOCv+OCsSzjgrfjgrLjg47jg6oNCivjgqLjgrrjg54s44Oe44K144OrDQor44OV44Or44OkLOOCteODgeOCsw0KK+ODiuOCuSzjg6jjgrfjg5Ljg60NCivjgrPjg6os44Oe44OqDQor44Kk44Kx44OALOODnuOCteODkuODrQ0KK+OCtOODiOOCpizjgrPjgqbjgrgNCivjg5Xjgq/jg4As44OS44Ot44Om44KtDQor44K544Ks44OP44OpLOOCuOODpeODs+OCuA0KK+OCreODoOODqSzjg4jjgrfjg5LjgrMNCivjgr/jgqvjgrss44Oe44OqDQor44OL44K344Kq44KrLOODquODp+OCpg0KK+ODleODq+OCq+ODryzjg4bjg4TjgqoNCivjgq/jg4njgqYs44Kx44Oz44Kk44OBDQor44K/44Kr44OP44K3LOOCseODs+ODiA0KK+ODpOODnuODouODiCzjg6jjgrfjg5Ljg60NCivjg5/jg6Tjg6Ljg4gs44Oq44On44Km44OY44KkDQor44OO44K/LOODpuOCreODkuODrQ0KK+ODiuOCq+ODoOODqSzjgrfjg47jg5YNCivjgqLjgq3jg5As44Of44OkDQor44Kk44Ov44KtLOODnuOCs+ODiA0KK+OCq+ODiOOCpizjgrfjg5sNCivjg6Ljg6rjg6Ljg4gs44Oe44K144Kr44K6DQor44OK44Kr44Og44OpLOOCq+OCuuODiOOCtw0KK+ODiuOCq+ODpOODnizjgqvjgrrjg6QNCivjgqrjgqrjgr/jg4ss44K344Ky44OS44OtDQor44K544Ku44Ok44OeLOODn+ODjuODqw0KK+OCueODsyzjg4jjg6jjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44OS44Ot44K3DQor44Ob44Oz44OJLOODpuOCv+OCqw0KK+ODj+OCrCzjgqvjgq/jgrgNCivjgrfjgqrjgrbjgq0s44Kr44K644OS44KzDQor44OV44K444OOLOODn+ODjuODqw0KK+OCquODjizjgrHjg7PjgrgNCivjgqLjg7Pjg4njgqYs44Oo44K344KqDQor44Ok44Oe44Kw44OBLOODiOOCt+OCouOCrQ0KK+OCr+ODreODgCzjgr/jgqvjgrcNCivjgqbjg44s44Oq44On44Km44Kk44OBDQor44Kk44OI44Km44K/44OLLOOCv+OCseODkuOCsw0KK+OCquOCqyzjgqjjg4Tjg58NCivjg5/jgqbjg6ks44OO44OW44Om44KtDQor44OP44K344Oi44OILOOCq+ODig0KK+OCqOODouODiCzjg57jgrPjg4gNCivjgrPjgqws44OS44Ot44K3DQor44Kt44OP44OpLOODkuODreOCtw0KK+ODnuODhOODgCzjg5Xjg5/jgr/jg4ANCivjg6Tjg57jg4As44Ki44Kt44KzDQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgQ0KK+ODpOODj+OCvyzjg5Ljg4fjgqoNCivjgr/jgrbjgq0s44Kx44Kk44K/DQor44Ok44Oe44Oi44OILOODquODpeOCpuOCpOODgQ0KK+OCv+OCq+ODgCzjg5Ljg63jg58NCivjg47jg4As44Oe44K144OE44KwDQor44K144Kk44Of44On44KmLOOCq+OCquODqw0KK+OCs+ODkOODpOOCtyzjgqLjg6njgr8NCivjg5Xjgrjjgq0s44Kx44Oz44K4DQor44K344Op44K144KrLOODleODn+OCqg0KK+OCv+OCq+ODj+OCtyzjg4jjgqrjg6sNCivjg6Tjg4Qs44Ki44OE44KqDQor44Km44Kq44K/44OLLOODleODn+ODkuOCsw0KK+OCv+ODoOODqSzjg4jjgrfjg5LjgrMNCivjg57jg4Tjgqos44K144OI44K3DQor44OK44Kr44K244OvLOOCv+OCr+ODpA0KK+OCreODgCzjg6bjgq3jgrMNCivjgr/jg7PjgrIs44OG44OE44Ot44KmDQor44OS44Ot44K7LOOCueOCueODoA0KK+ODnuODhOOCt+ODnizjg5/jg4Hjg6QNCivjgqrjgqvjg44s44K144OI44OrDQor44Ki44Kq44KtLOODqOOCpuOCpOODgeODreOCpg0KK+ODj+OCu+OCrOODryzjg6rjg6XjgqbjgrgNCivjg4vjgrfjg5vjg6os44OB44Kr44OpDQor44Kk44K344K644KrLOOCv+OCq+ODpA0KK+ODhOODnOOCpCzjg5Ljg4fjg6bjgq0NCivjgqTjgrfjg4As44Oe44K144OrDQor44OP44K344Oi44OILOOCteODiOODqw0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjgqLjgq3jg6Tjg54s44OS44Ot44KtDQor44Of44OE44OP44K3LOOCt+OCsuODqw0KK+OCtOOCt+ODnizjgqvjgrrjgqoNCivjg5Xjgq/jg4As44OS44Ot44K3DQor44Ok44Oe44K344K/LOODiuOCquODleODnw0KK+ODiuOCq+OCtuODryzjg5LjgrXjgrcNCivjg4vjgrfjgqvjg68s44OS44OI44K3DQor44Kk44Kx44Km44OBLOOCq+OCuuODpuOCrQ0KK+OCv+OCrOODnyzjgr/jgqvjgqoNCivjgqvjg6/jgq3jgr8s44Kx44Oz44K444Ot44KmDQor44OK44Kr44Og44OpLOOCrOOCrw0KK+OCs+ODnuOCpCzjgrPjgrnjgrENCivjg5vjgrfjg6Qs44Ki44Om44OgDQor44K544Of44OILOODnuOCteODleODnw0KK+ODm+OCt+ODjizjgqvjgrrjgqoNCivjg4rjgqvjg6Qs44K344Oz44Kk44OBDQor44OP44OpLOODn+OCuuODmw0KK+ODoOODreODpOODnizjgqvjgrrjg5LjgrMNCivjg6Ljg6os44OS44OH44KtDQor44K344Op44Kk44K3LOODnuOCteODkuODrQ0KK+ODkuODqeODjizjgrPjgqbjgrgNCivjg4/jgrfjg6Ljg4gs44Om44Km44KzDQor44Ki44OZLOOCuOODpeODs+OCuA0KK+OCpOOCt+OCq+ODryzjgqLjg6rjgqvjg4QNCivjgqLjgrrjg54s44Oo44K344OfDQor44Kq44Kq44OE44KrLOODjuODluOCqg0KK+OCpOODiOOCpizjgrHjgqQNCivjgqrjgrfjg54s44OB44Kr44KqDQor44Kz44K244KkLOOCreODqOODkuODrQ0KK+OCq+ODr+OCq+ODnyzjg57jgrXjg4jjgrcNCivjg4rjgqvjg44s44Og44ON44OS44KzDQor44Km44K444Oi44OILOODnuOCteODkuOCsw0KK+OCreOCt+ODgCzjg5Ljg4jjgrcNCivjgrPjgqTjgrrjg58s44OO44Oq44KzDQor44OK44Kk44OI44KmLOODiOOCt+ODkuODrQ0KK+ODqOOCt+OCuuODnyzjg6jjgrfjgq0NCivjgrnjgq7jg6Ljg6os44OI44K344OS44OtDQor44Ki44Kq44KtLOODiOODouODj+ODqw0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4ENCivjgqTjgqws44OO44Oq44Kr44ONDQor44Kr44Ov44OQ44K/LOODjuOCvuODnw0KK+OCt+ODkOOCvyzjg5Ljg63jg5Ljg4cNCivjg4Djg7Ms44Oe44OK44OfDQor44K/44Kw44OBLOOCq+OCuuODkuODrQ0KK+ODnuODgeODgCzjg4jjg6LjgqoNCivjgqLjgrfjg4As44Om44Km44KzDQor44Ki44Oz44OJ44KmLOODhuOCpOOCuA0KK+ODoOODiOOCpizjgqvjg4Tjg47jg6oNCivjgrPjg6Tjg54s44Kt44Oo44OIDQor44K544K644KtLOOCseOCpOOCpOODgQ0KK+ODjuODoOODqSzjgrjjg6Xjg7MNCivjgqTjg4jjg6Qs44Oe44K144OI44K3DQor44OB44Kr44Kq44KrLOODhOODiOODoA0KK+OCuOODs+ODlizjg5/jg4Hjg6TjgrkNCivjgqLjg4Djg4Es44Oe44K144K3DQor44Kr44Ov44KkLOODpOOCueOCtw0KK+ODn+ODjuODryzjgrPjgqbjgqTjg4ENCivjgqLjgrXjg5Is44OI44K344Ki44KtDQor44Kq44Kq44K/LOODqOOCt+OCouOCrQ0KK+OCv+ODiuOCqyzjgq3jg6jjgrcNCivjgq3jg6ks44Oe44K144K3DQor44Ok44Oe44K244KtLOODn+OCqw0KK+ODpOODnuOCpuODgSzjg5/jg4Tjg6sNCivjg5vjg4Pjgr8s44Oo44K344OO44OqDQor44Ki44Op44Kr44OvLOOCt+OCsuOCqg0KK+OCquOCr+ODoOODqSzjgrjjg6Xjg7MNCivjgqvjg43jgrMs44Kk44K/44OrDQor44Ki44Ok44OOLOOCs+OCpuOCrQ0KK+ODj+ODpOOCq+ODryzjg4jjg6Ljg4rjg6oNCivjgqTjg4jjgqYs44Oe44K144OS44KzDQor44Kq44Kv44Og44OpLOODkuOCteODjuODqg0KK+OCv+ODs+OCtuODryzjgr/jg4TjgqoNCivjgrXjgq3jg44s44Oo44K344OS44OtDQor44Kr44Ov44OP44OpLOODiOOCquODqw0KK+OCv+ODq+OCpCzjg6jjgrfjgqoNCivjgqLjg6rjg6Ljg4gs44Ki44OE44K3DQor44Ko44OT44KzLOODiOODouODiuODqg0KK+ODkuODjizjgqvjg4Tjg6QNCivjg6Tjg57jg4As44K344On44Km44Oo44KmDQor44Kq44Kq44OOLOOCr+ODnw0KK+OCv+OCseOCt+OCvyzjg6bjg6rjgrMNCivjg4/jg6Tjgrcs44Kt44On44Km44KzDQor44Kk44K344OALOOCseODsw0KK+OCt+OCquODpCzjgr/jgrHjgrcNCivjgqLjg7Pjg4njgqYs44OO44Oc44OrDQor44Oe44OE44OQ44OpLOODnuOCteODleODnw0KK+ODi+OCt+ODgCzjg57jgrXjg6sNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Kk44Kx44OALOOCuOODpeODsw0KK+ODj+ODpOODnyzjg5Ljg4fjgqoNCivjgrnjgrrjgq0s44K344On44Km44K+44KmDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCpOOCt+OCq+ODryzjg4jjgrfjgqLjgq0NCivjgqLjgrXjg58s44Kx44Oz44K4DQor44OP44K/44Kx44Ok44OeLOOCv+OCq+OCtw0KK+ODm+ODquODn+OCvizjgrHjgqTjgrnjgrENCivjg57jg6vjgr/jg4ss44OB44OS44OtDQor44K144OI44KmLOOCouOCreOCqg0KK+OCteOCq+ODiuOCqyzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44OI44Oi44OS44KzDQor44Kk44OI44KmLOOCq+OCquODqw0KK+ODleODq+ODiuOCrCzjg4/jg6vjg5LjgrMNCivjg5Xjgq/jgrfjg54s44Oe44K144OIDQor44Of44K644Ks44OfLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpuODgSzjg5/jg4HjgqoNCivjg4jjg6rjgqbjg58s44Of44OO44OrDQor44ON44Ku44K3LOOCt+OCsuOCrQ0KK+OCs+ODpOODnizjgqLjgq3jg47jg6oNCivjgqrjgrfjg54s44OK44K544KqDQor44Kr44K/44Kq44KrLOOCv+OCq+OCtw0KK+OCv+OCreOCsOODgSzjg5Ljg4fjg5Xjg58NCivjgrPjg57jg4Qs44Kr44K644KqDQor44Ok44KuLOOCv+OCq+OCtw0KK+OCv+OCq+OCrizjg6jjgrfjgqoNCivjg57jgrnjgqQs44OG44OE44Ot44KmDQor44OP44Ok44K3LOODkuODiOOCtw0KK+OCouODjeOCv+OCpCzjg57jgrXjg6bjgq0NCivjgq3jg4/jg6ks44Kx44Oz44Kk44OBDQor44K144Kk44OI44KmLOOCt+OCsuOCqg0KK+OCreOCv+ODr+OCrSzjg5/jg4Hjg5LjgrMNCivjg47jgrDjg4Es44OS44Ot44Of44OBDQor44K144Kr44Kw44OBLOODouODiOOCpA0KK+ODi+OCtyzjg6bjgq3jg5/jg4QNCivjgqTjgrHjg4As44OG44OE44KqDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCpOODnuOCpCzjg57jgrXjg5Ljg4gNCivjg6Tjg57jg4As44K344Ky44Kk44KvDQor44K/44OK44KrLOODpOOCueODkuOCtQ0KK+OCquOCquOCteOCsyzjg57jgrPjg4gNCivjgrPjg6Djg60s44Kr44OK44OhDQor44K144Kk44OI44KmLOODkuODh+OCrQ0KK+OCueOCuuOCrSzjgrHjg7PjgqTjg4ENCivjg5Xjg4rjg4jjgqzjg68s44Om44Kr44OqDQor44Kk44K344KkLOODhuODq+OCouOCrQ0KK+ODnuODhOOCpCzjg47jg5zjg6sNCivjgrnjgqjjg5Ljg6ks44OS44OI44K3DQor44OS44Ot44K/44OLLOODqOOCt+OCqg0KK+ODkuOCrOOCtyzjgq3jg6jjgrcNCivjgqTjg6Djg6ks44Ki44OE44KzDQor44Ki44OZLOODpOOCueODjuODqg0KK+ODqOODjeOCr+ODqSzjg47jg5bjg4jjgrcNCivjg6/jgr/jg4rjg5ks44Oo44K344Of44OEDQor44K544KsLOODkuODreOCtw0KK+OCteODjizjg5Ljg63jgrcNCivjgrfjg5As44OI44Oi44K4DQor44Ok44Oe44Kw44OBLOOCt+ODpeODs+OCuA0KK+OCreOCtuODryzjg6jjgrfjg5Ljg60NCivjgqvjgrXjg57jgq0s44Oo44K344Ot44KmDQor44Kt44Og44OpLOOCseOCpOOCueOCsQ0KK+ODhOODq+ODnyzjgqLjgq3jg5LjgrUNCivjgqLjgqrjgq0s44K344On44Km44KzDQor44Kk44K344OALOODouODiOOCtw0KK+ODouODrSzjgqLjgq3jgqoNCivjgqrjgq/jg6Djg6ks44OS44Ot44Om44KtDQor44K/44Kr44KuLOOCs+OCpuOCuA0KK+OCpOOCseODpCzjg5/jg4HjgqoNCivjg4jjg5/jg6Tjg54s44Kr44K644Of44OEDQor44Ok44KuLOOCv+OCq+OCqg0KK+ODiOODn+OCrSzjg4bjg4Tjg63jgqYNCivjg4jjg47jg6Djg6ks44Of44OO44OrDQor44Ok44OE44K644KrLOODiOOCt+ODkuODrQ0KK+ODluODnizjgrHjg7Pjgrfjg6fjgqYNCivjg4rjgqvjgrbjg68s44OV44Of44OI44OiDQor44Ok44Oe44K244KtLOODqOOCpuOCsw0KK+ODnuODhOOCt+OCvyzjgrfjg47jg5YNCivjgqTjg4As44K344OzDQor44K544K644KtLOODqOOCt+ODkuODrQ0KK+ODiuOCq+ODjizjg6Tjgrnjg5Ljg60NCivjgqvjg6/jgrDjg4Es44Oe44K144KqDQor44K/44Kr44OP44K3LOODhOODiOODoA0KK+OCpOOCt+ODgCzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqbjg4As44K144OI44OrDQor44OV44K444Ov44OpLOODquODpeOCpuOCuA0KK+OCs+OCpOODhyzjg4jjgrfjgr/jgrENCivjg4Tjgqvjg4As44OY44Kk44OP44OBDQor44OS44Op44Ok44OeLOODkuODreOCtw0KK+OCpuODgeODiOODnyzjgqLjgq3jg6kNCivjgqTjg57jg4/jg6ks44OS44Ot44Oo44K3DQor44Km44Ko44OALOODkuODiOOCtw0KK+OCteOCteOCq+ODryzjg6jjgrfjg5Ljg60NCivjgqLjgqTjgqvjg68s44K/44Kr44Ki44KtDQor44Km44Ko44KtLOOCv+OCq+ODqOOCtw0KK+ODiuOCq+ODpOODnizjg6jjgrfjg58NCivjgqrjgqrjgrXjg68s44Oo44K344Kr44K6DQor44K/44Kr44Kq44KrLOODiOOCt+ODpuOCrQ0KK+ODr+ODgCzjg4Tjgq7jgqoNCivjgqTjg4zjgrrjgqss44Kv44OL44OS44K1DQor44K/44OK44KrLOOCs+OCpuOCreODgQ0KK+OCv+OCseODgCzjgq3jg6jjgr/jgqsNCivjg6Tjg57jg4As44OO44Oc44OrDQor44Ok44OK44KuLOODkuODh+ODkuODrQ0KK+OCv+OCseOCt+OCvyzjg6jjgrfjgr/jgrENCivjg4vjgrcs44K/44OE44OS44KzDQor44Kq44Kq44K/44KxLOODpuOCpuOCpOODgQ0KK+ODi+OCv+ODiuOCpCzjgrfjgrLjgqoNCivjg5vjg7Pjg54s44OO44OW44OS44KzDQor44OK44Kr44OOLOODqOOCt+ODjuODqg0KK+ODn+ODpOOCt+OCvyzjg5Ljg4fjgq0NCivjgqbjgqjjg44s44K444Ol44Oz44K444Ot44KmDQor44OQ44OQLOOCteODgOODoA0KK+ODn+ODpOOCtuOCrSzjg57jgrXjgqoNCivjgq/jg4vjgqQs44OE44OI44OgDQor44Kz44OQ44Ok44K3LOOCseOCpOOCuA0KK+ODnuOCueODgCzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44Kz44Km44K4DQor44OE44Kr44KqLOODkuODreOCrQ0KK+OCq+ODr+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgqvjg6/jg5Djgr8s44Kz44Km44K+44KmDQor44Ki44Kr44K144KrLOOCuOODpeODs+OCsw0KK+OCpOOCpOODgCzjg4bjg4Tjg6QNCivjgrfjg6njg4/jg54s44K/44OA44K3DQor44OI44Ks44OvLOODkuODreODpuOCrQ0KK+OCpOODiOOCpizjg5Ljg4fjgqTjg4ENCivjgqrjgqvjg5ks44Oe44K144K3DQor44Ov44K/44OK44OZLOODkuODreOCqg0KK+OCteOCq+ODkCzjg4jjgrfjg5Ljg60NCivjg5Ljg63jgrXjg68s44OS44OI44K3DQor44OK44Kr44Og44OpLOOCt+OCsuODqw0KK+ODpOOCueOCpCzjgrXjg4jjgrcNCivjg5Ljg6njgr8s44Kr44K644OS44K1DQor44Kt44K/44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCouODnuODjizjg4bjg4Tjg6QNCivjg4Tjgrjjg6Djg6ks44Ko44OE44Ot44KmDQor44Kr44Ov44K144KtLOOCs+OCpuOCpOODgQ0KK+OCpuOCqOODoOODqSzjgr/jgrHjgrcNCivjg6Djg6njgqvjg58s44K344Ky44OKDQor44Kk44OO44Km44KoLOOCreODqOOCtw0KK+ODj+OCvCzjgrHjg7MNCivjg4jjgrfjg5Ljg60s44Kt44Of44OS44OtDQor44Kz44OQ44Ok44K3LOOCt+OCsuODpuOCrQ0KK+OCpOODjizjgr/jg4Djg47jg6oNCivjgqLjgrXjg44s44Om44Km44Kk44OBDQor44Oi44OqLOOCs+OCpuOCuA0KK+OCpOODiuOCtuODryzjgrPjgqbjg6jjgqYNCivjgrPjg5Djg6Tjgrcs44OG44Or44OS44OtDQor44K144Kr44KtLOODqOOCt+ODkuOCsw0KK+OCpuODgeODpOODnizjgrvjgqTjgrgNCivjg57jg4rjg5ks44Ok44K544KtDQor44Kq44Kq44Ok44OeLOOCseODs+OCuA0KK+OCt+ODn+OCuizjg57jgrXjg5LjgrMNCivjg6jjg43jg6Djg6ks44OS44Ot44Om44KtDQor44OQ44Op44OALOOCouOCreODkuOCsw0KK+ODleODq+OCvuODjizjg6jjgrfjgqvjgroNCivjg5Xjgrjjg6Ljg4gs44Kr44K644Ki44KtDQor44K144OOLOODnuODouODqw0KK+OCq+ODr+ODjizjgqjjgqTjgrMNCivjg5vjgrfjgqvjg68s44Kz44Km44K4DQor44K144K144Oi44OILOODouODiOODhOOCsA0KK+OCueODieOCpizjg57jgrXjg4gNCivjgrXjg4jjgqYs44K/44Kr44KqDQor44OP44Ok44K3LOODkuODreOCtw0KK+ODkOODkCzjg5Ljg4fjg47jg6oNCivjg5Djg5As44OS44OI44K3DQor44Kq44Kq44Ok44ONLOODkuODh+OCqg0KK+ODiuOCrOOCteODryzjg6Tjgrnjg6bjgq0NCivjgrXjgqvjg6Ljg4gs44Oe44K144OP44OrDQor44Ki44Kq44KtLOOCu+OCpOOCuA0KK+ODoOODiuOCq+OCvyzjg57jgrXjg4/jg6sNCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Kr44Ov44OQ44K/LOODkuODreODpuOCrQ0KK+OCueOCruODouODiCzjg5/jg4HjgqoNCivjg5Djg7Pjg4njgqYs44K444Ol44OzDQor44OO44Og44OpLOOCouOCreODkuOCsw0KK+OCs+ODs+ODjizjg6jjgrfjg5/jg4ENCivjgqvjg6/jgqQs44Kr44K644OO44OqDQor44Km44Ko44OOLOODjuODluODpuOCrQ0KK+ODj+ODqeODgCzjg5Ljg63jgrcNCivjgqvjg47jgqYs44Ki44Kt44OpDQor44Kq44Kq44OP44K/LOODn+OCreOCqg0KK+OCueODieOCpizjgr/jgqvjgrcNCivjg57jg4Tjg4As44OS44OI44K3DQor44Kk44Kx44Ks44OfLOODnuOCs+ODiA0KK+OCt+ODqeOCpCzjgrHjg7Pjgrfjg7MNCivjgrXjg4jjgqYs44K/44Kr44Ki44KtDQor44K144Kr44KkLOOCv+OCseOCtw0KK+OCquOCrSzjg4jjgrfjg6bjgq0NCivjgqvjg6/jg6Djg6ks44Kx44Oz44K4DQor44Ok44Oe44OALOODkuODreOCqg0KK+OCpOODiOOCpizjgqLjgq3jg5LjgrUNCivjgqTjgqvjg58s44OP44Or44KqDQor44Ki44K644Oe44KqLOODkuODh+ODiA0KK+ODleOCuOODoOODqSzjg4jjgqrjg6sNCivjgq3jgr/jg6Djg6ks44Om44Km44K4DQor44OI44Ks44OfLOODiOOCt+ODnw0KK+OCs+OCueOCsizjg57jgrXjgqoNCivjgrvjgq0s44OS44Ot44Om44KtDQor44Kr44Ov44K344OeLOODiOODouODpuOCrQ0KK+OCv+OCq+OCpCzjg6bjgqbjgrQNCivjgqLjgq3jg6Tjg54s44Om44Kt44KqDQor44K544K644KtLOODiOOCt+ODleODnw0KK+ODiuOCq+ODoOODqSzjgrfjg6XjgqbjgqTjg4ENCivjg4vjgrfjg44s44K/44Kr44Om44KtDQor44Of44Ok44KxLOOCv+OCq+ODkuODrQ0KK+ODqOODjeODouODgSzjg6Ljg4jjgrgNCivjgr/jgqvjgrfjg54s44K344Ky44KqDQor44K144Kr44KkLOODiOOCt+ODjuODqg0KK+OCquOCquODhOOCrSzjgqLjgq3jg4jjgrcNCivjgqvjg6/jgrXjgq0s44Of44KtDQor44OL44K344Kr44OvLOOCv+OCreOCqg0KK+OCteOCr+ODqeOCpCzjgrHjg7PjgrgNCivjgrnjgq4s44OS44OH44Ki44KtDQor44Ob44Oq44Kz44K3LOODiOOCquODqw0KK+ODouODqizjgqvjg4Tjg6QNCivjg4/jgrHjg4As44K/44Kr44K3DQor44OL44Kk44OALOOCt+ODs+OCpOODgQ0KK+OCreOCr+OCv+ODiyzjgrXjg4jjgrcNCivjgr/jgrHjg47jgrfjgr8s44K344Ol44Km44OY44KkDQor44K/44Kr44OP44K3LOODkuODreODnw0KK+OCv+ODiuODmSzjg57jgrXjgrMNCivjgqTjgrHjg6Ljg4gs44OO44Oq44KzDQor44Oe44OE44Ok44OeLOODpuOCreOCsw0KK+ODqOOCt+OCtuODryzjg6jjgrfjg5LjgrUNCivjgqLjgqvjgqQs44Of44OO44OrDQor44OL44K344Kq44KrLOOCu+OCpOOCpOODgeODreOCpg0KK+OCv+OCseODouODiCzjg47jg5bjgqoNCivjg4jjgq/jg4As44Oo44K344KqDQor44Kq44Kq44Oi44OqLOODpOOCueODkuODrQ0KK+OCq+ODiOOCpizjgr/jg4TjgrcNCivjgqvjg6/jg4gs44OV44Of44KqDQor44Oe44Ko44OALOOCveOCpuOCpOODgQ0KK+OCr+ODreOCrSzjg57jgrXjg6jjgrcNCivjgqTjgqTjg4As44Kv44Of44KzDQor44Kz44Ok44OK44KuLOODj+OCuOODoQ0KK+ODnuODhOODiuOCrCzjgqLjg4TjgrcNCivjgqTjg4jjgqYs44Ok44K544Ki44KtDQor44Ok44Oe44Oi44OILOOCv+ODhOOCqg0KK+ODhOODhOOCpCzjg4jjgrfjgqLjgq0NCivjgr/jg4rjgqss44Of44OO44OrDQor44OV44Kv44K344OeLOOCt+ODpeODs+OCpOODgQ0KK+OCs+OCuOODnizjg6jjgrfjg5LjgrMNCivjg4vjgrfjg4As44Of44OE44KwDQor44OL44K344Ok44OeLOOCuOODpeODs+OCsw0KK+OCueOCuuOCrSzjg4DjgqTjgrnjgrENCivjgqTjgqTjgrjjg54s44K/44Kr44K3DQor44K/44Oe44KkLOOCueOCueODoA0KK+OCs+ODs+ODjizjgqrjgrXjg6ANCivjg5/jg57jgrks44OI44K344Of44OEDQor44Oo44ON44OP44OpLOOCu+OCpOOCpOODgQ0KK+ODqOOCt+ODgCzjgqvjgrrjg58NCivjg5Xjgq/jg4As44OS44Ot44K3DQor44K144OI44KmLOODkuODreOCouOCrQ0KK+ODpOODnuODouODiCzjg5Ljg63jgrcNCivjgq3jgr/jgrQs44OO44Oc44OrDQor44K144Oz44OOLOODiOODouODiOOCtw0KK+ODpOOCteOCqyzjg4jjgrfjgqoNCivjg6Djg6njgr8s44K344Ky44OfDQor44OK44Kr44Oi44OILOOCouOCreOCtw0KK+OCteOCr+ODqeOCpCzjgqvjgrrjgrfjgrINCivjg4/jg6njg4As44Oo44K344Oi44OIDQor44K144OI44KmLOOCouODhOOCqg0KK+OCteOCpOODiOOCpizjg5/jg4TjgqoNCivjgr3jg40s44Kx44Kk44KzDQor44OP44K544OfLOOCouOCreODkuODrQ0KK+ODkuODqeOCvyzjgqvjgrrjg5Ljg60NCivjg6Tjg4rjgq7jgrXjg68s44OO44OW44KqDQor44K/44OB44OQ44OKLOODqOOCpuOCsw0KK+OCpOODiOOCpizjg57jgrXjgrrjg58NCivjg4/jg6ks44Ki44Kt44OpDQor44K144Kk44OI44KmLOODiOOCt+ODkuODrQ0KK+OCpOODiOOCpizjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kr44K644OkDQor44Km44OB44Ok44OeLOOCt+OCsuODqOOCtw0KK+OCq+OCrOODryzjgrHjgqTjgqTjg4ENCivjgr/jgq3jgrbjg68s44Om44Km44K444OzDQor44K344OK44Ks44OvLOOCr+ODi+ODkuOCsw0KK+OCq+OCreODj+ODqSzjgrfjg63jgqYNCivjgrnjgqzjg4zjg54s44K444Ol44Oz44Kk44OBDQor44Kr44Oh44KkLOODiOOCt+ODpA0KK+OCquOCr+ODhCzjgqvjgrrjg4jjgrcNCivjgqTjgrfjgqvjg68s44K344On44Km44K344Ol44OzDQor44K544Ku44Km44OpLOODouODquOCqg0KK+OCpuODoeODgCzjg5LjgrXjgrcNCivjg5/jg4rjgrDjg4Es44Kk44OB44Ot44KmDQor44Ob44K344OOLOOCv+OCseODkuOCsw0KK+ODi+OCt+ODpOODnizjgrvjgqTjgrgNCivjgr/jgrHjg4As44K/44OE44OkDQor44K144Kr44KkLOOCreOCpOODgeODreOCpg0KK+ODpOODhOODgCzjgr/jgrHjgrcNCivjg6Ljg6rjgr8s44Kx44Kk44K+44KmDQor44K144Kt44OeLOODiuOCquODkuODrQ0KK+OCouODqeOCpCzjg6bjgr/jgqsNCivjgr/jgrHjg4As44K/44Kr44KzDQor44K/44Og44OpLOODqOOCt+OCsw0KK+OCquOCq+ODgCzjg4/jg6vjg58NCivjg6Tjg57jg40s44OB44OP44OrDQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCouOCquODjizjgr/jg4TjgqoNCivjgrnjgq7jg6Tjg54s44Kr44ON44Oo44K3DQor44OV44Oq44OP44OpLOOCq+OCuuOCqg0KK+ODr+OCv+ODiuODmSzjg47jg5bjg4gNCivjgqvjg4Qs44OE44Kr44K1DQor44K144OP44OpLOODkuODreODnw0KK+OCq+OCr+OCvyzjgqLjgq3jg5LjgrMNCivjgqjjg47jg6Ljg4gs44K/44Kr44K3DQor44Ov44K/44OK44OZLOODnuOCs+ODiA0KK+ODpOODluOCrSzjg57jgrXjg5Ljg60NCivjgqLjg57jgrXjgq0s44Kz44Km44Kk44OBDQor44Oo44Kz44K/LOODnuOCteODkuODhw0KK+ODm+ODquODjuOCpuODgSzjg4jjgrfjgqLjgq0NCivjgq3jg4/jg6ks44OE44ON44KqDQor44K/44Kx44OALOODhOODq+ODnuODhA0KK+OCpOODjeODiizjg57jgrXjg5LjgrMNCivjg4rjgqss44Kr44K644OS44OtDQor44Kk44OB44Ok44OK44KuLOOCv+ODgOOCtw0KK+OCueOCuuOCrSzjgrfjg6fjgqbjgrHjgqQNCivjg4rjg6vjgrfjg54s44OK44Kq44Kt44OBDQor44K344Op44Kk44K3LOOCv+OCq+OCtw0KK+OCquODjizjg4jjgqrjg6sNCivjg6jjgrfjgqrjgqss44Kr44K644OkDQor44Oe44OE44Km44OpLOODkuODreOCq+OCug0KK+ODleOCuOOCvyzjg4bjg4TjgrgNCivjgqTjg6/jg58s44OI44Oo44OP44OrDQor44OI44Kv44K344KyLOOCseOCpOOCuA0KK+OCv+ODiuODgCzjgq3jg5/jg5LjgrMNCivjgqrjgqvjg44s44Kr44K644Oe44K1DQor44Oi44OB44K644KtLOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+OCt+ODnizjgrPjgqbjgqTjg4ENCivjg4jjg6rjgqbjg58s44Kr44K644KqDQor44K/44Kr44OfLOODqOOCt+OCv+OCqw0KK+ODj+ODpOOCuyzjg4jjg6Ljg6bjgq0NCivjgr/jgqvjg4/jg6ks44Ko44Kk44K4DQor44Kt44OzLOODnuOCteODpuOCrQ0KK+OCueOCruODpOODnizjg5Ljg4fjg5Ljg60NCivjgq3jgr/jgrjjg54s44Kz44Km44K4DQor44OL44OD44K/LOODqOOCt+ODjuODlg0KK+OCquOCqyzjg6bjgq3jg47jg5YNCivjgqrjgqrjg4/jgrcs44OS44Ot44K3DQor44OP44Op44OALOOCreODj+ODgeODreOCpg0KK+ODr+OCreOCteOCqyzjg5Ljg63jgrcNCivjgqTjg6/jg4rjgqws44Kx44Kk44Kk44OBDQor44Kr44Ov44K344OqLOODn+ODhOOCqg0KK+OCpOODiuODouODiCzjg57jgrXjgqvjgroNCivjgrXjg68s44OS44Ot44Om44KtDQor44K/44Kx44OALOOCv+OCseODkuOCsw0KK+OCpOOCpOODgCzjg6jjgrfjg5Ljg4gNCivjgqvjgrjjg44s44Oe44Oi44OrDQor44Of44OvLOODj+ODq+OCq+OCug0KK+ODleOCr+OCpCzjgrHjgqTjgqTjg4ENCivjgrnjgqjjg4rjgqws44OI44Kq44OrDQor44Kv44OL44Ko44OALOODpuOCv+OCqw0KK+OCreOCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjgqTjg4ks44OI44Kq44OrDQor44Kq44Kv44OALOODquODp+OCpuOCueOCsQ0KK+ODm+ODquOCq+ODryzjgqvjg4Tjgq0NCivjgrnjgqjjg6Ljg4gs44OG44OE44OkDQor44Oo44Kz44Ok44OeLOODiOOCt+ODkuODrQ0KK+ODleOCuOODouODiCzjg4jjg5/jgqoNCivjgq3jgrss44K344On44Km44K4DQor44OL44K344Og44OpLOODkuODh+ODkuOCsw0KK+OCv+OCq+ODgCzjgrPjgqbjgrgNCivjg4Tjgqvjg4As44Oe44K144Kr44K6DQor44OI44Oo44OALOOCqOOCpOOCuA0KK+OCteODjizjg4jjgqrjg6sNCivjg4vjgrfjg4As44Oe44K144OS44KzDQor44Kq44Kq44Oi44OqLOOCpOODgeODreOCpg0KK+OCquOCtuOCrSzjg4jjgqrjg6sNCivjgqTjgrfjg57jg6ss44K344Ky44Ok44K5DQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+OCq+OCt+ODr+ODkOODqSzjg47jg5zjg6sNCivjgqLjgrXjg44s44Ok44K544Kr44K6DQor44OS44Op44OOLOOCt+ODs+OCuA0KK+OCv+ODi+ODpOODnizjg4bjg4Tjg63jgqYNCivjgqbjg6Hjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kq44Og44OpLOODkuODh+OCqg0KK+OCteOCq+OCsOODgSzjgq3jg6jjgqvjgroNCivjgqrjgqvjg6Djg6ks44K344On44Km44K0DQor44Ok44Oe44Oi44OILOOCouOCreODqQ0KK+OCqOODgeOCtCzjgrPjg6zjgqLjgq0NCivjgrXjg6/jg4As44Ok44K544OS44KzDQor44Oo44Kz44KkLOOCq+OCuuODpuOCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqsNCivjg6Tjgrks44Kr44Kq44OrDQor44K/44Kr44KqLOOCuOODpeODs+OCsw0KK+OCq+ODhOODqeOCquOCqyzjgrfjg7Pjgr7jgqYNCivjg4Tjg5zjgqQs44Oe44K144OS44KzDQor44OE44K4LOOCt+OCsuOCqg0KK+OCv+OCq+ODj+OCtyzjgqLjgq3jgqoNCivjgrnjgq7jgq0s44K/44Kr44KtDQor44K/44Kx44Km44OBLOOCv+OCq+ODkuODrQ0KK+OCq+ODnyzjg4jjgrfjgqvjgroNCivjgrPjg5Djg6Tjgqvjg68s44Ok44K544OS44KzDQor44Ki44Kq44OILOOCuOODhOOCuA0KK+OCv+ODgCzjg6jjg6rjgrMNCivjg5Ljg4Djgqss44OO44Oq44KzDQor44OL44K344Og44OpLOODgeOCqOOCsw0KK+OCqOODkOODqSzjg4Tjg43jgqoNCivjg5/jgrrjg6Ljg4gs44Kr44K644OkDQor44K544K644KtLOOCreODqOOCtw0KK+OCt+OCpOODiizjg4/jg6vjg6jjgrcNCivjgrfjgqrjgr8s44Of44OE44OS44KzDQor44OK44Kr44OP44OpLOOCs+OCpuOCpOODgQ0KK+OCtOOCpuODgCzjgq3jg6jjgrcNCivjg5Xjg6vjgr8s44Oe44K144OS44K1DQor44Oe44K544Oi44OILOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+OCrOODryzjgq3jgqTjg4ENCivjgqTjg4ks44K/44Kr44Om44KtDQor44Oo44Oq44OV44K4LOODjuODnOODqw0KK+ODnuODhOODouODiCzjgqLjgq3jg6kNCivjgrXjgqTjg4jjgqYs44Kv44OL44Ki44KtDQor44OK44OE44KkLOODkuODh+OCrQ0KK+OCpuOCquODjizjgqvjgqrjg6oNCivjgr/jg4rjgrQs44Kx44Kk44KzDQor44K/44Oe44Ks44OvLOODjuODquODkuODiA0KK+OCquOCqyzjgr/jgqvjgrcNCivjg5Xjgq/jgrfjg54s44Oe44K144OrDQor44Kq44Kr44OALOODpuOCpuOCsw0KK+OCreODjuOCt+OCvyzjg5Ljg4fjg5LjgrMNCivjgrfjg5/jgros44Ki44Kt44OpDQor44Kz44OQ44Ok44K3LOOCreODqOOCv+OCqw0KK+ODjuODgCzjg57jgrXjgrcNCivjgqvjg47jgqYs44OE44Kw44OS44OtDQor44Kr44K444Kq44KrLOOCouOCreODkuODiA0KK+OCquOCquODjizjgr/jgqvjgrcNCivjgqrjgqrjg4/jgrcs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCs+OCpOOCuuODnyzjgqTjgq/jgqoNCivjgr/jg4rjgqss44OS44OI44K3DQor44OV44Kv44OALOODiOOCt+ODpA0KK+ODiuOCq+OCtuODryzjg47jg5zjg6sNCivjg5vjg6rjgqvjg68s44K144OI44K3DQor44Km44OB44Ok44OeLOODouODquODkuODrQ0KK+OCpOOCuuOCv+ODiyzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jgq3jgqQs44OI44K344KzDQor44K/44Kr44K7LOODjuODluODhOOCsA0KK+ODnuOCueOCtuOCrSzjgr/jgqvjgrcNCivjgqLjg7Pjg4njgqYs44OI44Kq44OrDQor44Kr44K/44Ku44OqLOOCt+OCsuOCpOODgeODreOCpg0KK+ODouODquODpOODnizjg4jjgrfjg6QNCivjgrXjg4jjgqYs44Ki44Kt44OS44OtDQor44OS44Or44Kr44OvLOOCteODiOOCtw0KK+OCpuOCqOODgCzjg57jgrXjgqoNCivjg4rjgqss44OI44K344K/44KrDQor44Of44Ok44K244KtLOODkuODreOCtw0KK+OCquOCquOCr+ODnCzjg57jgrXjgr/jgqsNCivjgr/jg4Hjgqvjg68s44Oe44Kz44OIDQor44Ov44K/44OK44OZLOODn+ODgeODiuOCqg0KK+OCouOCteOCq+ODryzjgrvjgqTjgrgNCivjgqvjg6/jg4/jg6ks44Oe44K144OkDQor44Kq44K144OALOODj+OCuOODoQ0KK+OCteOCq+OCpCzjg4/jg6vjgqoNCivjgq/jg6rjg6Tjg54s44K144OK44KoDQor44K144Kk44OI44KmLOOCs+OCuuOCqA0KK+OCueOCreOCrOODqSzjg6jjgrfjgrMNCivjgqLjgrHjg5Is44Kv44Of44KzDQor44OP44Ok44K3LOOCreODqOODnw0KK+OCq+ODr+OCvyzjg4rjgqrjg58NCivjgrfjg57jgqzjgq0s44Of44K144KoDQor44Ob44OqLOOCq+OCuuODqA0KK+ODjuODoOODqSzjg6jjgrfjgrMNCivjg4jjg6Djg6ks44K344Oz44Kk44OBDQor44Kv44OcLOOCreODqOOCsw0KK+ODi+OCt+ODouODiCzjg47jg6rjg5Ljg4gNCivjg6jjgrfjg4As44Kz44Km44K4DQor44K144KuLOOCv+OCq+ODqOOCtw0KK+OCq+ODs+ODjizjgrHjgqTjgrMNCivjg6Tjg5bjg44s44Oe44K144KtDQor44Ok44K544OK44KsLOODkuODreODpuOCrQ0KK+ODkuOCrOOCt+OCpuOCqCzjg5Ljg63jg5Ljg4gNCivjgrPjgrXjgq0s44Oe44K144Om44KtDQor44OK44KrLOODiOOCt+ODkuODrQ0KK+OCquODjizjg4jjgqrjg6sNCivjg6Djg6njgr8s44Kz44Km44K+44KmDQor44K344On44Km44K4LOODkuODh+OCouOCrQ0KK+OCq+ODr+ODouODiCzjgqLjgq3jg5Ljg60NCivjgqjjgrXjgq0s44Oe44K144OrDQor44Ko44Kk44OJ44OhLOODkuODh+OCq+OCug0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjg6Ljg4jjg6Tjg54s44Ok44K544Kr44K6DQor44OP44Oe44OALOOCouOCreODqQ0KK+OCs+OCt+OCq+ODryzjg4jjgrfjgqoNCivjg4/jg6Tjgrcs44Oe44K144OP44OrDQor44Ok44Oe44K244KtLOODpuOCreODpA0KK+ODnuODhOODouODiCzjg6jjgrfjg57jgrUNCivjgqrjg44s44K344Oz44Kk44OBDQor44OP44OK44OvLOOCv+ODgOOCtw0KK+ODj+OCu+OCrOODryzjgrHjgqTjgrgNCivjg5/jg6Tjgr8s44Oe44K144Ki44KtDQor44Kt44K/44K244OvLOODnuOCteOCq+OCug0KK+OCqOODs+ODiSzjg6Tjgrnjg5LjgrMNCivjg4rjgqzjgrXjgqss44Oo44K344Ki44KtDQor44Oo44K344Oi44OILOODkuODreODn+ODhA0KK+OCr+ODreOCteODryzjgrHjg7PjgrXjgq8NCivjg57jg6vjg6Tjg54s44Oo44K344OP44OrDQor44OK44Kr44OL44K3LOOCq+OCuuODpuOCrQ0KK+ODqOOCt+ODgCzjgrHjgqTjgqTjg4ENCivjg5Xjgq/jgr8s44OS44OH44OkDQor44OV44K444K144OvLOOCq+ODhOODkuOCsw0KK+OCteOCr+ODnizjg6jjgrfjg4/jg6sNCivjg4/jgrfjg6Ljg4gs44Kr44OE44OfDQor44Ov44OALOODnuOCteOCquODnw0KK+ODi+OCt+OCtuOCrSzjg47jg5bjgqoNCivjg5Xjgqvjgqzjg68s44Ko44OE44KzDQor44Ki44Kq44Ok44OeLOODnuOCteOCq+OCug0KK+OCreODqOOCv+ODiyzjg4Tjg4jjg6ANCivjg4jjg6rjg4/jg6ks44OS44Ot44Om44KtDQor44OK44Ks44OOLOOCv+OCseOCtw0KK+OCquOCquOCrCzjg6bjgr/jgqsNCivjgrXjgqvjg44s44K/44Kr44K3DQor44Of44OE44OP44K3LOODnuOCteODkuODrQ0KK+OCouODquODouODiCzjgrvjgqTjgrMNCivjg6jjgrfjg57jg4Qs44K/44Kr44Ki44KtDQor44Ki44Kq44Ok44KuLOOCouOCreOCqg0KK+ODpOODnuODgCzjg57jgrXjg5LjgrMNCivjg6Djg6njgr8s44Om44Of44KzDQor44Kk44Oq44KoLOOCt+ODs+OCpOODgQ0KK+ODpOODnuOCtuOCrSzjg57jgrXjg47jg6oNCivjgqjjgr7jgqgs44Kx44Kk44Kk44OBDQor44K144OI44KmLOODhOODqOOCtw0KK+OCquOCquOCvyzjgq3jg6jjgrcNCivjgqTjg47jgqYs44Oi44Oq44OS44OIDQor44Kr44OJLOOCv+ODhOODpA0KK+OCteOCteOCrSzjg6jjgrfjg5Ljg60NCivjgqvjgrHjg5Is44Oo44K344OS44OtDQor44OE44OB44OkLOOCq+OCuuODpA0KK+ODnuOCteOCquOCqyzjgrfjg6fjgqbjgr7jgqYNCivjgrnjgrrjgq0s44Ok44K544KqDQor44OI44ONLOODiOODn+ODkuODrQ0KK+OCquOCquODr+ODgCzjg47jg6rjgqLjgq0NCivjgqbjgqjjgq0s44Oe44K144OIDQor44Oe44Ko44OALOOCq+OCuuODjuODqg0KK+ODleOCuOOCquOCqyzjg6TjgrnjgrMNCivjgqbjg6njg5ks44OK44Kq44KzDQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCpOOCteOCqyzjg57jgrXjgqLjgq0NCivjg4vjgrfjgrXjgqss44OO44OW44KqDQor44Kk44Ov44K1LOOCqOOCpOOCpOODgQ0KK+OCv+OCr+OCt+ODnizjg6jjgrfjgqoNCivjg4Tjgqvjg6Ljg4gs44OV44Of44KqDQor44K144Kv44OeLOOCv+OCseODkuOCsw0KK+ODkuODp+OCpuODieOCpizjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Kz44Km44Kk44OB44Ot44KmDQor44K144K144KtLOODnuOCteOCqg0KK+ODleOCr+ODr+OCrSzjg4jjgrfjg6QNCivjgqrjgq/jg6Djg6ks44Oe44K144Oo44K3DQor44K/44Kr44OP44K3LOODiOODqOODkuOCsw0KK+OCt+ODreOCpCzjg6TjgrnjgrcNCivjgrPjgqvjg5Ys44K/44OA44KqDQor44OO44Kw44OBLOODkuODreOCrQ0KK+OCv+OCq+ODhCzjg5Ljg63jgqvjgroNCivjg6jjg43jgrbjg68s44OG44OE44OkDQor44K144Kr44Kk44OALOODpOOCueODkuODrQ0KK+OCs+OCpOOCuuODnyzjg5/jg4Tjg6QNCivjg57jgqjjg4As44Kr44OE44Om44KtDQor44Oe44Oz44OALOOCv+ODgOOCtw0KK+OCs+OCsOODrCzjgqTjg4Hjg63jgqYNCivjgqLjgq3jg6Ljg4gs44Oo44K344OIDQor44K/44Kx44Og44OpLOODiOODouOCouOCrQ0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjg6Tjg57jgqbjg4Es44K444Ol44Oz44Kk44OBDQor44K144Ko44KtLOODpuOCpuOCuA0KK+ODr+OCq+ODkOODpOOCtyzjg47jg5bjg6bjgq0NCivjgqLjgq3jg6Ljg4gs44Oe44K144OS44KzDQor44Oo44K344OALOODkuODreOCouOCrQ0KK+OCteODiOOCpizjg4Tjg43jgqoNCivjgqrjgrfjg54s44Ok44K544OI44K3DQor44K144K144KtLOODnuOCteODkuODhw0KK+OCouODqeOCpCzjgqLjgq3jg5Ljg4cNCivjg6/jgr/jg4rjg5ks44OG44OE44K4DQor44Kk44Kx44Oi44OILOODpuOCreOCqg0KK+OCreOCr+OCpCzjgrPjgqbjgqTjg4ENCivjg5Ljg6njgr8s44OS44Ot44OfDQor44Oe44Kt44Km44OBLOOCv+OCr+ODpA0KK+OCs+OCu+OCrSzjgrfjg63jgqYNCivjg4vjgrfjgqvjg68s44Ok44K544OS44OtDQor44Kk44Ks44Op44K3LOODleODn+OCqg0KK+OCv+ODiuOCqyzjgr/jg4Djg4Tjg40NCivjg5vjg7Pjg4As44Ko44Kk44Kk44OBDQor44OP44OD44K/LOODkuODreODnw0KK+ODj+ODqeODgCzjg5LjgrXjgqvjgroNCivjg6jjgrfjg4As44Kq44K144OgDQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+OCs+OCpOOCuuODnyzjg6rjg6fjgqbjgqTjg4ENCivjgrPjgrnjg4As44OK44Kq44OS44K1DQor44Of44Ok44KxLOODnuOCteOCouOCrQ0KK+ODleOCuOODpCzjgr/jgrHjgrcNCivjg57jgrXjgq0s44Ki44Kt44OpDQor44K144Kv44Op44KkLOODkuODh+OCrQ0KK+ODi+OCt+ODpOODnizjg6jjgrfjgqoNCivjgqvjg6/jgrss44K/44Kr44OO44OWDQor44Kq44Kr44K244OvLOOCt+ODs+ODpA0KK+OCouOCteOCqyzjg4jjgrfjg6bjgq0NCivjgqrjgqzjg68s44OO44OW44Ki44KtDQor44OK44Ks44K144OvLOODj+OCuOODoQ0KK+OCreOCv+ODr+OCrSzjg57jgrXjgqoNCivjgrfjg5/jgros44Oe44K144OO44OqDQor44Kz44OQ44Ok44K3LOODnuOCteODj+ODqw0KK+OCv+ODgeODkOODiizjgrfjgrLjgrMNCivjgqTjg57jg4rjgqss44K144OI44OfDQor44Km44K344Oe44OrLOOCseODsw0KK+OCquOCq+ODoOODqSzjgrHjg7PjgqTjg4ENCivjg6Tjg57jg44s44Om44Km44Kk44OBDQor44Kt44K/44Og44OpLOODn+ODgeOCq+OCug0KK+OCv+OCq+ODnuODhCzjg5Ljg4fjgq0NCivjg4jjgq3jgqvjg68s44Kr44K644OS44OHDQor44Kk44Kx44OALOODiOOCt+ODpA0KK+OCpOOCt+ODgCzjg47jg5bjgr/jgqsNCivjgr/jg4vjg4/jg6ks44Of44OE44KuDQor44Kq44Ks44OvLOODkuODiOOCtw0KK+OCv+ODiuOCqyzjgrfjg6fjgqbjgrnjgrENCivjg4rjgqss44Kx44Kk44KzDQor44OI44Oi44K244OvLOODjuODluOCsw0KK+ODj+ODqeODgCzjgrvjg4TjgrMNCivjg4/jg4rjg5bjgrUs44Ki44OE44KzDQor44OI44Kv44Kq44KrLOOCouODhOOCtw0KK+ODmeODg+OCt+ODpyzjg57jgrXjg5Ljg60NCivjg4rjgqvjgrfjg54s44Kr44OE44OS44KzDQor44Ki44K144Kv44OpLOODpOOCueODkuOCsw0KK+ODn+ODpOODh+ODqSzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44OK44Kq44KtDQor44Oo44K344Og44OpLOODqOOCt+ODkuOCtQ0KK+OCteODryzjg57jgrXjg6bjgq0NCivjg4rjgqvjg6Tjg54s44Kz44Km44Kk44OBDQor44OS44Op44K244OvLOODqOOCt+ODkuODrQ0KK+ODleOCuOODr+ODqSzjg57jgrXjgqLjgq0NCivjgrnjgqzjg6/jg6ks44OI44Kq44OrDQor44K/44OL44Ks44OvLOODnuODquOCqg0KK+ODm+ODs+ODgCzjg6Tjgrnjg4gNCivjg4/jg4rjgqQs44Kz44Km44Kk44OBDQor44Ko44Kw44OBLOOCteOCr+ODoeOCpA0KK+OCq+OCteOCpCzjg6jjgqbjgqTjg4ENCivjgq/jg63jgrXjg68s44OS44Ot44K3DQor44K/44K444OeLOOCt+ODsw0KK+OCteODiOOCpizjgr/jg4TjgrcNCivjg5Ljg5Pjg44s44OE44ON44KqDQor44K544Ks44OkLOOCt+ODpeOCpg0KK+OCr+ODqeOCvyzjgrPjgqbjgqTjg4ENCivjg57jgrnjg4As44OP44Or44KtDQor44K544Ku44OP44OpLOOCseOCpOOCsw0KK+OCq+ODjeOCsyzjg6jjgrfjg6bjgq0NCivjgqvjg4Qs44K/44Kr44K3DQor44Oe44OrLOODkuODreODpA0KK+OCv+ODiuOCqyzjg5Ljg4fjgqvjgroNCivjg4jjgrfjgqrjgqss44Ki44Kt44OpDQor44K344Ky44OOLOODquODp+OCpuOCuA0KK+ODpOODnuODouODiCzjgrXjg4jjg58NCivjg4rjgqvjgqzjg68s44Kr44OE44OfDQor44Ok44Oe44Kw44OBLOODkuODreOCrQ0KK+OCq+ODr+ODouODqizjg6jjgrfjg5Ljg60NCivjg6Djg6njg6Tjg54s44Oe44K144OrDQor44K344Ol44KmLOODiuOCquODpA0KK+OCpOOCseODgCzjg5Ljg63jg6bjgq0NCivjgrPjg4Djg54s44K/44OE44KqDQor44Kr44OI44KmLOOCteODiOODqw0KK+ODj+OCr+ODgeODp+OCpizjgqTjgrXjgqoNCivjgqvjgrLjg7Ms44Kr44Kq44OrDQor44OG44K644KrLOOCs+OCpuOCuA0KK+OCv+ODi+OCsOODgSzjg57jgrXjgr/jgrENCivjg4bjg6njg4As44OK44Kq44KtDQor44Kr44OI44KmLOOCv+OCq+OCrQ0KK+ODiuOCpOODiOOCpizjgr/jgrHjgqoNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOOCseODs+OCuA0KK+OCv+ODiuOCqyzjg5Ljg4fjg4jjgrcNCivjgrXjgrXjgq0s44Ov44K/44OrDQor44Ob44Oz44OALOODn+ODgeODiA0KK+ODkuOCqOODgCzjgqLjgq3jgqoNCivjgrXjgqvjgqQs44Kr44K644OO44OqDQor44Kr44OE44OfLOOCv+OCq+OCtw0KK+OCv+OCseODmSzjgr/jgqvjgrcNCivjg47jgrDjg4Es44OE44Oo44K3DQor44Ov44OALOOCqOOCpOOCuA0KK+OCpuOCqOODpOODnizjgrHjg7PjgrgNCivjgqbjgqjjg44s44K/44Kr44OS44OtDQor44K/44Oz44K0LOODkuODh+OCqg0KK+ODoOODqeOCq+ODnyzjgqvjg4Tjg58NCivjgqLjg6njgq0s44Kz44Km44K+44KmDQor44Ki44Op44K7LOODnuOCueODkuODrQ0KK+ODpOODnuODouODiCzjgrfjg63jgqYNCivjg6/jgrfjgqos44OS44Ot44Om44KtDQor44Ov44Kx44K444OeLOODqOOCt+ODleODnw0KK+OCs+OCpOOCuuODnyzjgrHjg7PjgrnjgrENCivjg4jjgq/jg6Tjg54s44OI44K344OV44OfDQor44OI44Of44OK44KsLOOCseODs+OCuA0KK+OCreOCt+ODgCzjgrvjgqTjgrgNCivjgrHjg7Ms44Of44OB44OS44OtDQor44OS44Ot44K7LOODqOOCt+ODpuOCrQ0KK+OCpuODgeODpOODnizjgrHjg7PjgqTjg4ENCivjg6/jgqvjgrnjgq4s44K/44OA44K/44KrDQor44Kk44K344Kw44OtLOOCq+ODhOODjuODqg0KK+ODi+OCt+ODoOODqSzjg5Ljg63jgqvjgroNCivjgqTjg47jg57jgr8s44Kr44Kq44OrDQor44OE44OE44OfLOODiOOCt+ODkuOCsw0KK+OCpOODquOCqCzjgqLjg4TjgrcNCivjgrXjgqTjg4jjgqYs44Kr44K644KqDQor44Km44Ko44OOLOOCt+ODs+OCpOODgQ0KK+ODm+ODs+ODgCzjgqrjgrXjg6ANCivjgq3jgr/jg6Djg6ks44Kr44Oo44KzDQor44Ok44Oe44Ks44OfLOODiuODnw0KK+ODiuOCq+ODi+OCtyzjg57jgrXjg5Ljg60NCivjgqbjgqjjg4As44K/44Kr44K3DQor44OS44Ot44K/LOODr+OCv+ODqw0KK+OCpuOCqOODgCzjg4jjg6Ljgq0NCivjgqTjgrHjg4As44OS44Ot44K3DQor44OP44OK44OW44K1LOODqOODquODjuODlg0KK+OCs+ODgOODnizjg5Ljg63jgqLjgq0NCivjgqrjgqvjg6Ljg4gs44OK44Kq44KtDQor44K544K644KtLOODkuODreODn+ODhA0KK+OCueOCuuOCrSzjg5LjgrXjgqgNCivjg4vjgqTjgq/jg6ks44Ki44Kt44OS44OtDQor44OL44K344OALOODkuODreODkuOCtQ0KK+OCquOCteODmSzjgrjjg6Xjg7PjgqTjg4ENCivjg5vjgr3jgqvjg68s44Kx44Oz44Kk44OBDQor44Kk44Oe44KqLOODqOOCpuOCpOODgQ0KK+ODleOCuOOCvyzjg6jjgrfjg47jg5YNCivjgqrjgqrjg44s44Oo44K344OO44OqDQor44OK44Kr44Ok44OeLOODqOOCt+OCqg0KK+ODj+ODpOOCtyzjgrHjgqTjgrgNCivjgrnjgqzjg4/jg6ks44Kr44K644OO44OqDQor44OP44Op44OALOOCpOODgeODreOCpg0KK+OCouODmSzjgrfjg6Xjg7PjgqTjg4ENCivjgqLjg5ks44Kx44Kk44Kk44OBDQor44Ki44OZLOOCseODs+OCpOODgQ0KK+OCouODgOODgSzjgr/jg4Djg5Ljg60NCivjgqLjgqTjg5As44OA44Kk44K544KxDQor44Ki44Kr44OQ44ONLOOCq+OCuuOCqg0KK+OCouODs+ODieOCpizjgqjjgqTjg5sNCivjgqLjg7Pjg4njgqYs44OI44Oi44Om44KtDQor44Ki44Kq44KtLOODnuOCteOCtw0KK+OCt+OCpOOCrSzjg5Ljg63jgrcNCivjgqLjg6njgqQs44K344On44Km44Kk44OBDQor44Ki44Op44KkLOODiOOCquODqw0KK+OCouODqeOCpCzjgr/jgrHjgrcNCivjgqLjg6njgqvjg68s44Kk44K144KqDQor44Ki44Op44KtLOOCv+ODhOODpA0KK+OCouODqeOCrSzjgr/jgqvjg6bjgq0NCivjgqLjg6njgq0s44Kt44Oo44OP44OrDQor44Ki44Op44KtLOOCq+OCuuOCouOCrQ0KK+OCouODqeODnuOCrSzjg57jgq3jgqoNCivjgqLjg6njg6Es44K/44Kr44ONDQor44Ki44Oq44Og44OpLOOCv+OCseOCtw0KK+OCouOCteODnyzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgrrjg54s44OS44Ot44Oo44K3DQor44OQ44OQLOODkuODh+OCq+OCug0KK+ODkOODkCzjg6Ljg4jjgrMNCivjg4Hjg5As44OO44OW44Ki44KtDQor44OB44OQLOOCs+OCpuOCpOODgQ0KK+ODgeODjizjg4jjg6Ljg6bjgq0NCivjg4DjgqTjgrPjgq8s44Oo44K344OO44OWDQor44OH44Kw44OBLOODkuODreODjuODqg0KK+ODh+OCrSzjg6jjgrfjgqLjgq0NCivjg4njgqQs44OO44OW44OS44KzDQor44Ko44OA44K144OvLOODkuODh+OCrQ0KK+OCqOOCsOODgSzjg6jjgrfjg4rjg6oNCivjgqjjg7Pjg4ks44Kr44K644OtDQor44Ko44Oz44OJLOODnuOCteOCqg0KK+OCqOODquOCq+ODryzjg6bjgqbjgrMNCivjg5XjgrjjgqQs44OS44Ot44K3DQor44OV44K444Oi44OILOODkuODh+ODiA0KK+ODleOCuOODouODiCzjg57jg6bjg58NCivjg5Xjgrjjg44s44Oo44K344Ki44KtDQor44OV44Kr44OP44OpLOOCouOCreODqQ0KK+ODleOCq+ODnyzjg4rjgqrjgq0NCivjg5Xjgqvjg6Tjg54s44OO44OW44Om44KtDQor44OV44Kv44OALOODnuOCteODpuOCrQ0KK+ODleOCr+OCpCzjg57jgrXjg5LjgrMNCivjg5Xjgq/jg6Ljg4gs44OS44Ot44K3DQor44OV44Kv44OK44KsLOODnuOCteODkuOCsw0KK+ODleOCr+OCt+ODnizjg47jg5bjgqoNCivjg5Xjgq/jgrfjg54s44Kr44K644K/44KrDQor44OV44OK44KtLOOCteOCq+OCqA0KK+ODleODiuOCrSzjg6Tjgrnjg5Xjg58NCivjg5Xjg6vjg6Qs44Kk44K144KqDQor44K044Km44OP44OpLOODqOOCt+ODkuOCtQ0KK+OCtOODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jgqws44K/44OA44K3DQor44OP44Ku44OOLOOCq+OCuuODrQ0KK+OCpOODgeODoOODqSzjg57jgrPjg4gNCivjg4/jg54s44OK44Kq44KtDQor44OP44OK44OALOODnuOCteODqOOCtw0KK+OCpOODkCzjgq3jg6jjgrXjg4ANCivjg4/jgrvjg5ks44Kr44OE44OY44KkDQor44OP44K744Ks44OvLOODiOOCt+ODreOCpg0KK+ODj+OCt+ODouODiCzjg47jg6rjgqLjgq0NCivjg4/jgrcs44OK44Kq44Ki44KtDQor44OP44K/44OOLOODjuODluODkuODrQ0KK+ODj+ODiOODqizjgrfjg7Pjgr/jg63jgqYNCivjg4/jg6Tjgrcs44Ki44Kt44OS44KzDQor44OP44Ok44K3LOOCs+OCpuOCuA0KK+ODkuODgOOCqyzjgqvjgrrjgrMNCivjg5Ljgqzjgrcs44Kt44Oo44K/44KrDQor44Oe44OOLOODqOOCt+OCq+OCug0KK+ODkuODqeOCpCzjg6jjgrfjgr/jgqsNCivjgqvjg5/jgrXjgq0s44OI44K344OS44KzDQor44OS44Op44OOLOODnuOCteODkuOCsw0KK+ODkuODreOCpCzjg5Ljg4fjgqoNCivjg5Ljg63jg6Ljg6os44Oo44K344OP44OrDQor44OS44Ot44K144OvLOOCouODhOOCtw0KK+ODkuODreOCteODryzjgqrjgrXjg6ANCivjg5Ljg63jgrss44K344Oz44Kk44OBDQor44Ob44Oz44OALOODqOOCpg0KK+ODm+ODs+ODnizjg5Ljg63jg6TjgrkNCivjg5vjg6rjg5ks44K344Ky44OrDQor44Ob44Oq44KoLOODkuODreOCtw0KK+ODm+ODquOCsOODgSzjg6bjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OI44K344OS44OHDQor44Ob44OqLOODj+OCuOODoQ0KK+ODm+ODqizjg5Ljg63jg58NCivjg5vjgrfjgqvjg68s44OO44Oq44Om44KtDQor44Ob44K944Kr44OvLOOCueOCueODoA0KK+ODkuODp+OCpuODieOCpizjg57jgrXjg4/jg6sNCivjgqTjg5Djg6njgq0s44Om44Km44Kk44OBDQor44Kk44OB44Kq44KrLOOCouODhOODleODnw0KK+OCpOOCseODgCzjgr/jgqvjg5Ljg4gNCivjgqTjg57jgqQs44Oo44K344K/44KrDQor44Kk44Oe44Og44OpLOOCv+OCq+OCouOCrQ0KK+OCpOODnuODiuOCqyzjg4jjg6Ljg6QNCivjgqTjg4rjg4As44OS44Ot44K3DQor44Kk44OK44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCpOODjuOCpuOCqCzjgrXjg4jjg6sNCivjgqLjg6njgqQs44OI44K344OfDQor44Kk44OO44Km44KoLOOCqOOCpOOCuA0KK+OCpOOCt+OCpCzjgq3jg6jjg58NCivjgqTjgrfjgqQs44OS44Ot44K3DQor44Kk44K344Kr44OvLOODn+OCreOCqg0KK+OCpOOCt+OCq+ODryzjgqLjgq3jg6kNCivjgqTjgrfjgqrjgqss44Oe44Kz44OIDQor44Kk44K944OALA0KK+OCpOODiOOCpizjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44OB44K644KzDQor44Kk44OI44KmLOOCq+OCuuODkuODiA0KK+OCpOODiOOCpCzjgr/jg4DjgrcNCivjgqTjg4jjgqYs44K344Oz44K4DQor44Kk44Ov44KkLOOCouOCreODqQ0KK+OCpOOCuuODn+ODpCzjg57jgrXjg47jg6oNCivjgqvjgrjjgr8s44K144OI44K3DQor44Kr44Oh44KkLOOCt+ODs+OCuA0KK+OCq+ODiuOCpCzjg57jgrXjg5Ljg60NCivjgqvjg4rjgrbjgrcs44OO44Oq44KzDQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCq+ODjeOCsyzjg57jgrPjg4gNCivjgqvjg47jgqYs44Kk44Kv44KqDQor44Kr44Oq44KmLOOCt+OCsuOCuA0KK+ODhOOCreOCuCzjgr/jgqvjg47jg6oNCivjgqvjgrXjg57jg4Qs44OS44Ot44Om44KtDQor44Kr44K/44Ku44K3LOODnuOCteOCtw0KK+OCq+OCv+ODpOODnizjgqLjgq3jg6kNCivjgqvjgr/jg6Tjg54s44OG44OE44Oh44KkDQor44Kk44K944OALOOCv+OCq+OCqg0KK+OCq+OCv+ODpOODnizjgrPjgqbjgrgNCivjgqvjg4jjgqYs44K144OE44KqDQor44Kr44OI44KmLOODnuOCs+ODiA0KK+OCq+ODiOOCpizjg6TjgrnjgrcNCivjgqvjg4jjgqYs44OB44KoDQor44Kr44OE44Oe44K/LOOCv+OCr+ODpA0KK+OCq+ODr+ODmSzjg6bjgq3jg47jg5YNCivjgqvjg6/jg5ks44Ki44OE44K3DQor44Kr44Ov44OZLOODoOODjeODkuODiA0KK+OCq+ODr+ODgCzjgrHjg7PjgrnjgrENCivjgqvjg6/jg4As44Ki44Kt44OS44KzDQor44Kr44Ov44Oi44OILOOCouOCreOCqg0KK+OCq+ODr+OCv+ODiyzjgrvjgqTjgq0NCivjgq3jg5/jgrrjgqss44Of44OB44OtDQor44Kt44Og44OpLOOCq+OCuuODpA0KK+OCreODoOODqSzjg6rjg6fjgqbjgr/jg63jgqYNCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kt44K144KrLOODkuODh+OCqg0KK+OCreOCt+ODgCzjgr/jgqvjgrMNCivjgq3jgr/jgqzjg68s44Kt44On44Km44Kk44OBDQor44Kt44K/44Og44OpLOODqOOCt+ODkuODrQ0KK+OCreOCvyzjg5Ljg4fjg4gNCivjgq3jg6jjg44s44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCq+ODhOODjuODqg0KK+OCs+ODgOODnizjgqvjgrrjg4rjg6oNCivjg4njg5Is44OS44Op44Ok44K5DQor44Kz44OP44OpLOODnuOCteOCrQ0KK+OCs+OCpOODhyzjg4jjgrfjg6QNCivjgrPjgqTjg68s44OS44On44Km44K4DQor44Kz44Kk44K644OfLOODj+ODq+OCsw0KK+OCs+ODnuODhCzjg6Tjgrnjgr/jgqsNCivjgrPjg6Hjg4As44OS44Ot44Om44KtDQor44Kz44Oz44OJLOODn+OCrQ0KK+OCs+ODs+ODiSzjg4jjgqrjg6sNCivjgrPjg4vjgrcs44K444Ol44Oz44K4DQor44Kz44K144KrLOODkuODreOCouOCrQ0KK+OCs+OCv+OCrSzjgrjjg6Xjg7MNCivjgrPjgr/jg4ss44OS44OH44KtDQor44Kz44OI44OW44KtLOODkuODreOCtw0KK+OCv+OCt+ODrSzjgqvjgrrjg47jg6oNCivjgq/jg5zjgr8s44Om44Kt44Oe44K1DQor44Kv44OcLOODhuODhOODpA0KK+OCr+ODieOCpizjg57jgrXjg4gNCivjgq/jg57jgqzjgqQs44Ok44K544OS44OtDQor44Kv44Ot44K7LOOCquOCteODoA0KK+OCr+OCt+ODnizjg6TjgrnjgrMNCivjgq/jgrfjg5/jg6Qs44Kz44Km44KtDQor44Kv44OE44Kr44KxLOOCt+ODs+OCpOODgQ0KK+OCr+ODr+ODjizjgrfjg6Xjgqbjgr7jgqYNCivjg57jg4Tjg4rjgqws44OS44OH44KtDQor44Oe44Ko44OALOODpuOCpuOCuA0KK+ODnuOCqOODj+ODqSzjgrXjg4jjgrcNCivjgqjjg47jgq0s44OI44K344OkDQor44Oe44Ko44Kr44OvLOOCs+OCpuOCuOODreOCpg0KK+ODnuOCqOOCrSzjgqLjg6TjgrMNCivjg57jg7Pjg44s44K344Oz44KuDQor44Oe44OOLOOCqOOCpOOCuA0KK+ODnuODs+OCv+ODiyzjg6jjgqbjgqTjg4ENCivjg57jg6vjg6Tjg54s44Ok44K544OS44OtDQor44Oe44K7LOOCq+OCuuODkuOCsw0KK+ODnuOCueOCtuODryzjg57jgrXjgqoNCivjg57jg4Tjg4As44Of44OE44OO44OqDQor44Oe44OE44KkLOOCpOODhOOCsw0KK+ODnuODhOOCpCzjg57jgrXjg4gNCivjg57jg4Tjg6Ljg4gs44Ok44K544Ki44KtDQor44Oe44OE44Og44OpLOOCq+OCuuOCouOCrQ0KK+ODnuODhOODjizjg47jg6rjg6bjgq0NCivjg57jg4Tjgrbjgq0s44Os44Kk44KzDQor44Of44KtLOOCt+OCsuODqw0KK+ODn+OCs+ODgCzjg4bjg6vjg6bjgq0NCivjg5/jg6Djg6ks44Kr44K644K/44KrDQor44Of44Og44OpLOOCt+OCsuODjuODlg0KK+ODn+ODiuODnyzjgrXjg4jjgrcNCivjg5/jg4rjg58s44OO44OW44OS44OtDQor44Of44OK44OILOODpOOCueOCtw0KK+ODn+ODjeODnuODhCzjg47jg6rjgrMNCivjg5/jg40s44Oe44K144K/44KrDQor44Of44K344OeLOODkuODreODpuOCrQ0KK+ODn+ODryzjg57jgrXjg5Ljg60NCivjg5/jg6TjgrDjg4Es44K/44Kr44OS44OtDQor44Of44Oo44K3LOODpuOCpuOCsw0KK+ODn+OCuuOCvyzjgrjjg6Xjg7PjgrMNCivjg6Ljg6Ljg47jgqQs44Kx44Kk44K544KxDQor44Ob44Oz44OALOOCv+OCseOCtw0KK+ODouODquOCvyzjg6TjgrnjgrcNCivjg6Ljg6rjgr8s44Ki44Kt44OS44KzDQor44Oi44OqLOOCouOCreODqQ0KK+ODouODqizjgqLjg4TjgrcNCivjg6Ljg6os44Kr44K644OS44OtDQor44Oi44OqLOODn+ODjuODqw0KK+ODouODqizjgr/jgqvjgrcNCivjg6Djg43jg6Djg6ks44OI44K344Of44OEDQor44Og44Op44Kr44OfLOODqOOCpuOCuA0KK+ODoOODqeOCquOCqyzjgrPjgqbjgrgNCivjg5/jg6fjgqbjgqws44OS44Ot44KtDQor44OK44Ks44Of44ONLOODnuOCteOCtw0KK+ODpOODnuODgCzjgrfjg7PjgqTjg4ENCivjg4rjgqzjgqos44OI44K344Kr44K6DQor44OK44Ks44K/LOOCseODs+OCuA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4rjgqvjgqzjg68s44K/44Ot44KmDQor44OK44Kr44Kk44OBLOODkuODreODjuODqg0KK+OCteOCteOCrSzjg4TjgqvjgrUNCivjg4rjgqvjgrjjg54s44OS44Ot44K3DQor44OK44Kr44K344OeLOOCveOCpuOCv+ODreOCpg0KK+ODiuOCq+OCs+OCuCzjgr/jg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Oe44K144OV44OfDQor44OK44Kr44Og44OpLOOCteODiOOCtw0KK+ODiuOCq+ODoOODqSzjg4jjgqrjg6sNCivjg4rjgqvjg6Djg6ks44K444Ol44OzDQor44OK44Kr44Og44OpLOODgOOCpOOCueOCsQ0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgrMNCivjg4rjgqvjg6Djg6ks44Oo44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCr+ODn+OCsw0KK+ODiuOCq+ODi+OCtyzjg4jjgrfjg6bjgq0NCivjg4rjgqvjg44s44OG44OE44OkDQor44OK44Kr44OOLOOCreODs+ODpA0KK+ODiuOCq+OCt+OCqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4rjgqvjgr8s44Kr44OK44KzDQor44OK44Kr44Ok44OeLOOCv+OCq+OCtw0KK+ODiuODs+OCsSzjgqLjg4TjgrcNCivjg4rjg6njgrbjgq0s44K/44Kk44OB44Ot44KmDQor44OK44Oq44K7LOODpuOCreODkuODrQ0KK+ODiuODq+OCquOCqyzjgqTjgrXjg6ANCivjg43jg6Ljg4gs44K/44OA44K3DQor44OL44Og44OpLOOCueOCueODoA0KK+ODi+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4vjgrfjg6Djg6ks44OE44OI44OgDQor44OL44K344OOLOOCq+OCuuODnuOCtQ0KK+ODi+OCt+OCt+OCvyzjg4bjg4Tjg47jg6oNCivjg4vjgrfjgqbjg4Es44K344Ol44Km44Kk44OBDQor44OL44K344Ok44OeLOODiuOCquODkuODiA0KK+ODpOOCuOODnizjg6jjgrfjgqgNCivjg4vjgrfjgrbjg68s44Om44K/44KrDQor44OL44OvLOOCouOCreODqQ0KK+ODjuODluODiuOCrCzjg5/jg4TjgrcNCivjg47jgqzjg58s44Oe44Kz44OIDQor44OO44Kw44OBLOOCt+ODs+OCpOODgQ0KK+ODjuOCsOODgSzjg5/jg6bjgq0NCivjg47jg54s44OI44Oo44OfDQor44OO44OeLOOCs+OCpuOCpOODgQ0KK+ODjuODoOODqSzjgrPjgqbjgrgNCivjg47jg6Djg6ks44OO44Oq44KqDQor44OO44Og44OpLOOCt+ODpeODs+OCpOODgeODreOCpg0KK+ODjuOCuyzjgr/jg4DjgqLjgq0NCivjg47jgrbjg68s44Oo44Km44Kk44OBDQor44OM44Kt44KkLOOCq+ODhOODnw0KK+ODjOODnuOCqizjgqLjgq3jg6kNCivjg4zjg57jgr8s44Kr44K644OS44OtDQor44Kq44OB44Ki44KkLOOCv+OCq+ODpuOCrQ0KK+OCquODgeOCouOCpCzjg6jjgrfjgqoNCivjgqrjg4Djg4/jg6ks44Kk44Kv44KqDQor44Kq44OALOODn+ODjuODqw0KK+OCquOCrOOCteODr+ODqSzjgrfjg6XjgqbjgrgNCivjgqrjg4njg57jg6os44OI44Km44Kk44OB44Ot44KmDQor44Kq44Kr44OJLOODleODn+OCqg0KK+OCquODnuOCtSzjgqLjgq3jg6kNCivjgqrjg4rjgqws44OS44Ot44Om44KtDQor44Kq44Kq44OOLOODkuODh+ODpuOCrQ0KK+OCquOCquOCteOCrSzjgqLjg4TjgrcNCivjgqrjgqrjgrXjg68s44OS44OH44K/44KrDQor44Kq44Kq44K544OfLOOCq+OCuuODpuOCrQ0KK+ODpOODnuOCt+OCvyzjg57jgrXjg6sNCivjgqrjgqrjgr8s44OK44Oz44OG44OEDQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquODhOOCqyzjgr/jg4Tjg6QNCivjg57jg4Tjg4rjgqws44Oo44K344Ki44KtDQor44Kq44Kq44Ok44OeLOODjuODquODpuOCrQ0KK+OCquOCq+ODgCzjg6rjgqgNCivjgqrjgqvjg4As44K/44Kx44K3DQor44Kq44Kr44OALOODkuODreODleODnw0KK+OCquOCq+ODgCzjg6jjgrfjg47jg6oNCivjgqrjg47jg4fjg6ks44K/44Kr44KqDQor44Kq44Kr44Oi44OILOODkuODreODpuOCrQ0KK+OCquOCq+OCtuOCrSzjgr/jgqvjgqLjgq0NCivjgqrjgq/jg4As44OI44K344Om44KtDQor44Kq44KvLOODjuODluODpuOCrQ0KK+OCquODjizjgrXjg4HjgrMNCivjgqrjg44s44Kx44Kk44Kk44OB44Ot44KmDQor44Kq44Oq44OGLOOCseODs+OCpOODgQ0KK+OCquOCteODgCzjg6Djg4Tjg58NCivjgrXjgqTjg4jjgqYs44Og44OE44KqDQor44K144Kk44OI44KmLOOCt+ODs+OCtA0KK+OCteOCpOODiOOCpizjgrfjg6XjgqbjgrgNCivjgrXjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44K144Kk44OI44KmLOODpuOCv+OCqw0KK+OCteOCpOODiOOCpizjgqvjgrrjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44K144Kr44KkLOOCpOODgeODreOCpg0KK+OCpOOCt+OCtuOCrSzjg6bjgq3jg47jg6oNCivjgrXjgqvjg6Ljg4gs44OS44Ot44K3DQor44K144Kr44OO44Km44KoLOODkuODh+OCqg0KK+OCteOCq+OCpuOCqCzjgqvjgrrjg57jgrUNCivjgrXjgrPjg4As44OO44OW44KqDQor44K144Kv44Op44KkLOOCt+OCsuODjuODqg0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjgrXjg4zjgq0s44Oq44Ol44Km44K/44Ot44KmDQor44K144K144KtLOOCouOCreODiA0KK+ODiOODn+OCvyzjg4jjg6Ljg4rjg6oNCivjgrXjg4jjgqYs44OG44OE44KqDQor44K144OI44KmLOODiuOCquOCrQ0KK+OCteODiOOCpizjg6jjgrfjg47jg6oNCivjgrXjg4jjgqYs44Oe44K144Om44KtDQor44K144OI44KmLOODiOOCt+ODpA0KK+OCteODiOOCpizjgqLjg4TjgrMNCivjgrXjg6/jg4As44Oe44K144OIDQor44K744KqLOOCseODs+OCteOCrw0KK+OCu+OCtuOCpCzjgqvjgrrjg6TjgrkNCivjgrfjg5Djgr8s44K/44Kx44OS44KzDQor44K344OQ44K/LOODqOOCpg0KK+OCt+OCrOOCrSzjgqLjgq3jg5LjgrMNCivjgrfjg5/jgros44OS44Ot44OgDQor44K344Of44K6LOODqOOCt+ODnw0KK+OCt+ODn+OCuizjgqLjgq3jg6kNCivjgrfjg5/jgros44Ki44Kt44OI44K3DQor44K344Of44K6LOODkuODh+OCqg0KK+OCt+ODouODoOODqSzjg5Ljg63jgqLjgq0NCivjgrfjg47jg4/jg6ks44Kr44K644OS44OtDQor44K344Op44OELOODnuOCs+ODiA0KK+OCt+ODreOCt+OCvyzjgrXjg4jjgrcNCivjgrfjg6fjgqbjgrgs44Om44Km44KzDQor44K344On44Km44Of44OELOODqOOCt+ODkuODrQ0KK+OCveODgCzjgqvjg4TjgrnjgrENCivjgr3jg6Ljg6os44K/44OE44KqDQor44K944KmLOOCq+OCuuODkuOCsw0KK+ODiuOCqyzjg6bjgqbjgrgNCivjgrnjgq7jg6Djg6ks44Kx44Kk44K3DQor44K544Ku44OOLOODnuOCteODkuODrQ0KK+OCueOCruOCteODryzjg47jg5bjg6bjgq0NCivjgrnjgq7jgr8s44K144Om44OqDQor44K544Ku44Km44OBLOOCt+ODs+OCueOCsQ0KK+OCueOCruODpOODnizjgqLjgq3jg47jg6oNCivjgrnjgq7jg6Tjg54s44Oe44K144OO44OqDQor44K544Ku44Ok44OeLOOCq+OCuuODnw0KK+OCueOCuuOCrSzjgrfjg7Pjg6QNCivjgrnjgrrjgq0s44Om44Km44K4DQor44K544K644KtLOOCt+ODsw0KK+OCueOCuuOCrSzjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44OI44K344Ki44KtDQor44K544K644KtLOODkuODh+ODiA0KK+OCueOCuuOCrSzjgrPjgqbjgqTjg4ENCivjgrnjgrrjgq0s44Om44Km44KzDQor44K/44OB44OQ44OKLOOCv+OCq+OCtw0KK+OCv+OCpOODqSzjgqLjgq3jg6kNCivjgr/jgqTjg6ks44OS44OH44Ki44KtDQor44K/44Kr44OALOODkuODreODpuOCrQ0KK+OCv+OCq+OCrizjg57jgrXjgqvjgroNCivjgr/jgqvjg4/jgrcs44OO44Oq44Kk44OEDQor44K/44Kr44OP44K3LOOCv+OCq+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4/jgrjjg6ENCivjg57jgrnjgrbjg68s44OS44OI44K3DQor44K/44Kr44OP44K3LOODnuOCteOCouOCrQ0KK+OCv+OCq+ODnizjg5LjgrXjg4gNCivjgr/jgqvjg44s44Of44Ko44KzDQor44K/44Kr44OOLOOCq+OCuuODqOOCtw0KK+OCv+OCq+OCteOCqyzjg4/jgrjjg6ENCivjgr/jgqvjgrss44Kr44OE44K4DQor44K/44Kr44K/LOOCr+ODn+OCsw0KK+OCv+OCq+ODpOODnizjgqLjg4TjgrcNCivjgr/jgqvjg6Tjg4rjgq4s44Ki44Oq44OS44OtDQor44K/44Kx44OALOOCqOODqg0KK+OCv+OCseODgCzjgqLjgq3jg6kNCivjg5XjgrjjgqQs44Ki44OE44KzDQor44K/44Kx44OO44OqLOOCpOOCr+OCtw0KK+OCv+OCseOCt+OCvyzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqbjg4Es44Om44Km44K4DQor44K/44Kx44Km44OBLOOCv+OCq+ODiOOCtw0KK+OCv+OCreOCtuODryzjg57jgrXjgqLjgq0NCivjgr/jgq3jgrbjg68s44OE44Oo44K3DQor44K/44Oe44KtLOOCteODiOOCsw0KK+OCv+ODoOODqSzjgqLjgq3jg5Ljg60NCivjgr/jg6Djg6ks44OG44OE44ONDQor44K/44Og44OpLOODjuODluOCqg0KK+OCv+ODiuOCqyzjgrfjg6fjgqbjgrQNCivjg6/jgr/jg4rjg5ks44Ki44Kt44OS44OtDQor44K/44OL44Ok44OeLOODjuODnOODqw0KK+OCv+ODiyzjgqvjgrrjg5LjgrMNCivjg4bjg6njgq3jgr8s44OK44Ks44OO44OqDQor44OG44K644KrLOOCt+ODs+OCpOODgQ0KK+ODiOODkOODqizjgrnjgrnjg6ANCivjg4jjgqzjgrcs44K444Ol44Oz44Kk44OBDQor44Ok44Oe44OALOOCseODs+OCpOODgQ0KK+ODiOOCreOCvuODjizjgrfjgrLjgqoNCivjg4jjg5/jg4rjgqws44Oi44OI44OS44K1DQor44OI44Of44OK44KsLOOCt+ODs+OCuA0KK+ODiOODn+OCvyzjgrfjg7PjgrgNCivjg4jjg5/jgr8s44OG44OE44KqDQor44OI44Oi44Kq44KrLOODkuODiOOCtw0KK+ODiOODjuOCteOCrSzjg6jjgrfjg47jg6oNCivjg4jjg6rjgrbjg68s44Ko44OfDQor44Kz44Kk44KxLOODkuODreOCsw0KK+ODiOODqOOCq+ODryzjg57jgrXjg6jjgrcNCivjg4jjg6jjgqvjg68s44OS44K144Oo44K3DQor44OE44Oc44KkLOOCv+ODgOOCtw0KK+ODhOOCq+ODgCzjg4jjgqrjg6sNCivjg4Tjgq/jgqQs44OS44K144K3DQor44OE44Or44Kr44OvLOOCqOOCpOOCuA0KK+ODhOODhOOCpCzjg4jjgrfjgqvjgroNCivjg4Tjg4TjgqQs44Om44Km44K4DQor44Km44OB44OALOODkuODreOCrQ0KK+OCpuODgeODgCzjgrjjg6Xjg7PjgqTjg4ENCivjgqbjg4Hjg54s44K344Ol44Oz44Kk44OBDQor44Km44OB44Ok44OeLOOCouOCreODkuODrQ0KK+OCpuODgCzjg5LjgrXjg6jjgrcNCivjgqbjgqjjg4As44Kr44K644OO44OqDQor44Km44Ko44OOLOOCreODqOOCtw0KK+OCpuOCqOODjizjg47jg6rjgqoNCivjgqbjgqjjg44s44K/44Kr44K3DQor44Km44Kx44Ks44OvLOOCv+OCq+ODpuOCrQ0KK+OCpuODnuOCuuODoSzjg6jjgrfjg5Ljg60NCivjgqbjg6Hjg6Djg6ks44Kt44Of44OS44OtDQor44Ov44OALOODkuODreOCtw0KK+ODr+ODgCzjg6Tjgrnjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Oq44On44KmDQor44Kk44Kk44OALOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrcNCivjg6/jgr/jg6os44Ok44K544Oo44K3DQor44Ok44KuLOODqOOCt+ODpuOCrQ0KK+ODpOODnuODgCzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgqws44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODnuOCteODjuODqg0KK+ODpOODnuOCsOODgSzjg5Ljg4fjgqoNCivjg6Tjg57jgrDjg4Es44Oe44K144K3DQor44Ok44Oe44Oi44OILOODhuODhOODpA0KK+ODpOODnuODouODiCzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Kr44K644Om44KtDQor44Ok44Oe44Oi44OILOODkuODh+OCtw0KK+ODpOODnuODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Kr44K644OIDQor44Ok44Oe44Oi44OILOOCq+OCquODqw0KK+ODpOODnuODouODiCzjg57jgrXjg6jjgrcNCivjg6Tjg57jg4rjgqss44Ko44Kk44K4DQor44Ok44Oe44K344K/LOOCteODiOODqw0KK+ODpOODnuOCpuODgSzjgqvjgrrjgqLjgq0NCivjg6Tjg57jgrbjgq0s44OP44Or44OS44KzDQor44Ok44Oe44K244KtLOODnuOCteODiOOCtw0KK+ODpOODnuOCtuOCrSzjgrHjg7PjgrgNCivjg6Tjg44s44Om44Kt44KqDQor44Ok44OOLOOCs+OCpuOCpOODgQ0KK+ODpOOCueODgCzjgr/jgrHjgrcNCivjg6Tjgrnjg57jg4Qs44Kr44OE44OK44OqDQor44Ok44K544Oi44OILOOCs+OCpuOCuA0KK+ODpOOCueODi+ODryzjgr/jgqvjg6bjgq0NCivjg6jjg4As44Kq44K144OgDQor44Oo44OALOOCpOOCteOCqg0KK+ODqOOCt+ODgCzjg6jjgrfjg5Ljg60NCivjg6jjgrfjgqQs44K/44OE44OkDQor44Oo44K344OK44KsLOODpuODn+OCsw0KK+ODqOOCt+ODjizjgr/jg4Tjg58NCivjg6jjgrfjgr/jgrEs44Ki44Kt44OS44OtDQor44K/44Kt44K244OvLOOCv+OCq+OCtw0KK+ODpOODnuOCsOODgSzjgqvjgrrjg6jjgrcNCivjgqvjg5Djgrfjg54s44Kr44K644OS44K1DQor44K144Kv44OpLOODpuOCpuOCueOCsQ0KK+ODoOODqeODpOODnizjg5Ljg63jg6bjgq0NCivjg5Ljgq3jg4As44Kr44K644OfDQor44Og44Op44KkLOOCr+ODi+ODkuODrQ0KK+ODmyzjgqLjgq3jg6kNCivjgqjjg7Pjg4ks44K744Kk44K4DQor44OG44Op44Og44OpLOOCv+ODhOOCqg0KK+ODr+OCv+ODiuODmSzjgr/jgqvjg5LjgrMNCivjgqTjg57jgqQs44K344Ky44OkDQor44Oi44Oq44Oi44OILOODiOOCt+OCq+OCug0KK+OCs+ODpOODqizjgrvjgqTjgrgNCivjg57jg4Tjg5/jg6Qs44Om44Km44Kk44OBDQor44K344OQ44K/LOOCq+OCuuOCqg0KK+ODgeOCt+ODrSzjg6jjgrfjg5Ljg60NCivjgqTjgr/jg58s44OS44OH44KqDQor44Kq44K244KtLOODkuODiOOCtw0KK+ODleOCr+ODouODiCzjg57jgrXjg4TjgrANCivjgqrjgqvjg4As44OS44Ot44K3DQor44K144Ov44OALOODkuODreOCtw0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Oo44K344OO44OqDQor44Oe44OE44Kq44KrLOODpOOCueODjuODqg0KK+ODn+ODqOOCtyzjg47jg6rjg6jjgrcNCivjg6Tjg57jg4rjgqss44Kz44Km44K444Ot44KmDQor44K344Of44K6LOODkuODiOOCtw0KK+OCs+ODj+ODqSzjg57jgrXjg47jg6oNCivjg4vjgrfjgqvjg68s44OS44Ot44K3DQor44Kk44Oe44KkLOODpOOCueOCqg0KK+ODleOCuOODoOODqSzjg5Ljg63jg6bjgq0NCivjgrPjgrjjg54s44Ok44K544Om44KtDQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCreOCr+ODgSzjgqvjg4Tjg5LjgrMNCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44Ok44Oe44K344K/LOODkuODh+OCouOCrQ0KK+OCouODmSzjgrfjg7PjgrgNCivjg4bjgrrjgqss44K/44Kr44K3DQor44K/44OK44KrLOODr+OCv+ODqw0KK+ODi+ODryzjg5/jg47jg6sNCivjgqvjg6HjgqQs44Of44K644ObDQor44Ok44OOLOODn+ODhOOCqg0KK+ODiuOCq+ODnuODqyzjg6TjgrnjgrcNCivjgqrjgqrjg4/jgr8s44Oe44K144OO44OqDQor44Ok44K544Ok44OeLOODnuOCteODkuODrQ0KK+OCq+OCueOCrCzjg5/jg4TjgqoNCivjgqTjgrfjgqQs44Ki44Kt44OS44KzDQor44OV44K444Oi44OqLOODjuODquOCsw0KK+OCpOODr+ODouODiCzjg5Ljg63jgrcNCivjg6Tjg57jgrfjgr8s44Or44Of44KzDQor44Kt44K/LOODiOODouODnw0KK+ODoOODqeOCquOCqyzjg6bjgqbjgrMNCivjgqTjgrDjgrUs44Oo44K344K644OfDQor44OK44Ks44K144OvLOODkuODreOCuA0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg5Ljg60NCivjgqrjg4Djgrjjg54s44Om44K/44KrDQor44Kq44Kq44K/LOODnuODnw0KK+ODj+OCruODjizjg4rjgqrjgqTjg4Hjg63jgqYNCivjg6Tjg5bjgq0s44OI44K344Ki44KtDQor44Kk44KtLOODqOOCt+ODiOOCtw0KK+OCteOCpOODiOOCpizjg57jgrXjg4gNCivjg6Tjg57jg4As44K/44Kr44K3DQor44OK44Kr44Ok44OeLA0KK+ODoOODqeODnuODhCzjgqvjgqrjg6sNCivjgr/jgrfjg60s44K344On44Km44Kk44OBDQor44Kk44K344OP44OpLOODnuOCteODpuOCrQ0KK+OCt+ODkOOCquOCqyzjgr/jg4TjgqoNCivjg4rjgqvjgqos44Ok44K544OO44OqDQor44OV44K444K/LOODiOOCt+OCrQ0KK+OCteOCr+OCvyzjg57jgrXjg6bjgq0NCivjg4/jgr8s44K544K544OgDQor44Kq44Kq44Ok44OeLOOCv+ODgOOCtw0KK+OCv+OCtCzjgq3jg6fjgqbjgrMNCivjg57jg4Tjg6Djg6ks44Kr44K644KqDQor44Kk44OI44KmLOODnuOCteODpuOCrQ0KK+OCreODoOODqSzjgr/jgrHjgqoNCivjgqLjgqrjgq0s44Of44OE44K/44KrDQor44Kz44Oe44Ks44K/LOODkuODh+ODiOOCtw0KK+ODiuODqeODoOODqSzjgqvjgrrjgrMNCivjg5Xjgrjjg6Ljg4gs44Oe44K144KtDQor44Of44Ok44K144KrLOODiOOCt+ODkuOCsw0KK+ODj+ODpOOCtyzjg57jgrXjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kr44K644OS44KzDQor44Kq44Ks44K144Ov44OpLOOCt+ODp+OCpuOCuA0KK+OCquOCquODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqvjg6/jgqQs44OI44Oi44Om44KtDQor44K344Oe44K6LOODqOOCpuOCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgq3jgrfjgrMNCivjg57jgqjjgrbjg68s44Kk44K644OfDQor44OP44OALOOCq+OCquODqw0KK+ODnuODhOODkuODqSzjgqjjg6oNCivjgrnjgq7jg4/jg6ks44OO44Oc44OrDQor44OK44Kr44K444OeLOODqOOCt+ODjuODlg0KK+ODj+OCv+OCseODpOODnizjg4bjg4Tjg6QNCivjgqLjgqrjgq0s44Oe44K144OS44KzDQor44K344OW44Kr44OvLOOCreODqOODkuOCtQ0KK+OCpOOCt+ODgCzjgrfjgrLjg6sNCivjgqrjgqvjg4As44K/44Kr44K3DQor44Kk44OI44KmLOOCouOCreODqQ0KK+OCq+ODiOOCpizjg57jgrXjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44OK44Kq44Of44OEDQor44Og44Op44K144OvLOODn+ODjuODqw0KK+ODn+ODmyzjg57jgrXjg47jg6oNCivjgrnjgqzjg40s44Oo44K344OO44OWDQor44Kk44K344Kr44OvLOODqOOCt+ODkuOCsw0KK+OCquOCqyzjg6Tjgrnjg5Ljg60NCivjgqTjg6/jg58s44Om44Of44KzDQor44OK44Kr44Ok44OeLOODkuODreOCtw0KK+OCpOODiOOCpizjgqvjgrrjgq0NCivjgrnjgq7jg6Tjg54s44K344Oz44Kk44OBDQor44Kr44K344Oi44OILOODqOOCt+OCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjgqLjgqrjg6Tjg54s44OS44OH44OO44OqDQor44K344OQ44K/LOOCseODs+OCpOODgQ0KK+ODnuODhOOCqizjg6jjgrfjg47jg6oNCivjgrfjg47jg6Djg6ks44Ki44Kq44KkDQor44OV44Or44Kr44OvLOODqOOCt+ODleODnw0KK+ODouODiOOCrSzjgrfjg6XjgqbjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OB44KqDQor44Ki44Oz44OJ44KmLOODnuOCteODkuODrQ0KK+OCv+OCseODkizjgrXjg4HjgrMNCivjgqTjgrfjgqQs44Ki44Kt44OV44OfDQor44OO44OB44K7LOOCq+OCuuODkuOCsw0KK+ODn+ODpOODiuOCrCzjg4jjgrfjgrMNCivjgrfjg7Pjg4njgqYs44OS44Ot44OfDQor44Kq44Kq44K/LOODn+ODqOOCsw0KK+OCv+ODiyzjg6jjgrfjgqLjgq0NCivjgrPjg6Djg60s44OV44Of44OO44OqDQor44Kk44Ov44K1LOODkuODreODn+ODgQ0KK+ODnuODhOODouODiCzjg5Ljg4fjgqLjgq0NCivjgq3jg6Djg6ks44OS44K144OIDQor44Ki44Kq44KtLOOCouOCreODkuOCsw0KK+ODnuODhOODkOODpOOCtyzjg5Ljg63jgrcNCivjgrTjg4jjgqYs44OV44Of44Om44KtDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCueOCruOCv+ODiyzjg4/jg6vjgqoNCivjgqrjgq/jg44s44Om44Kt44KqDQor44K144Kv44Op44OALOOCt+ODs+ODmuOCpA0KK+ODoOOCs+ODpOODnizjg47jg6rjgrMNCivjgqTjg4jjgqYs44K144OI44K3DQor44Ok44Oe44Oi44OILOOCv+ODgOOCtw0KK+ODpOODnuODouODiCzjg57jgrXjg4jjgrcNCivjgqvjg43jgrMs44K344Ol44Km44OY44KkDQor44Ok44Oe44K244KtLOODpOOCueODkuODrQ0KK+ODiuOCq+ODoOODqSzjg4jjg6INCivjg5/jg68s44Kq44K144OgDQor44K144Og44Kr44OvLOOCt+ODreOCpg0KK+ODiuOCq+ODgCzjg4jjgrfjg6bjgq0NCivjg6jjgrfjg4jjg58s44Kx44Oz44Kk44OBDQor44K/44Kr44K344OeLOODhOODjeOCuA0KK+OCpOOCt+OCsizjgqLjgq3jgrMNCivjgrnjgqjjg4/jg6ks44OS44Ot44Om44KtDQor44Kk44OO44Km44KoLOODkuODh+ODnw0KK+ODjuOCuOODniwNCivjgrXjgq/jg54s44K144OB44KoDQor44K144OOLOODqOOCt+ODn+ODgQ0KK+ODoOODqeOCquOCqyzjgqvjg4TjgrgNCivjg5/jgqbjg6ks44Oq44Ol44Km44K+44KmDQor44K144Kr44Oi44OILOOCuOODpeODsw0KK+ODiuODq+OCqizjgrvjgqTjgrMNCivjg4/jgrvjgqzjg68s44Of44OE44OS44OtDQor44Kq44Kr44OALOODhuODhOOCqg0KK+ODpOODkuODrSzjg47jg5bjg6bjgq0NCivjg5Djg5As44K/44Kv44OkDQor44Ki44K/LOOCouODpOODjg0KK+ODiuOCrOOCuyzjgq3jg6jjgrcNCivjgqvjg6/jgqgs44Kk44K644OfDQor44Of44Km44OpLOODnuOCreODqA0KK+ODleOCuOOCvyzjgrXjg4jjgrMNCivjg4Tjg6vjg58s44Oo44K344KqDQor44Oi44OB44K644KtLOOCqOODn+OCsw0KK+ODqOOCt+ODgCzjgqvjgrrjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Oe44K144OV44OfDQor44Ok44K544Oi44OILOODn+ODhOODj+ODqw0KK+ODjeODouODiCzjgr/jgq/jgrgNCivjg5Ljg4Djgqss44Km44Ko44Of44OEDQor44Oe44K544OALOOCr+ODn+OCsw0KK+ODiOOCr+ODiuOCrCzjg5Xjg5/jg5Ljg4gNCivjg4rjgqvjgrbjg68s44K544K544OgDQor44OV44K444OK44OvLOODqOOCt+ODj+ODqw0KK+ODqOODk+OCq+ODryzjgqvjgrrjg5Ljg60NCivjgq3jgr/jg4As44K/44Kx44K3DQor44Oo44K344OOLOODpOOCueODkuODrQ0KK+ODkOODkCzjg6jjgrfjg4gNCivjgq/jg63jgqvjg68s44OS44Ot44K3DQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg4jjgrfjgqoNCivjg4Tjg4Hjg4As44Ki44OE44KzDQor44K544K644KtLOODn+ODpuOCrQ0KK+ODn+OCuuODjizjgqLjgq3jg6kNCivjgr/jg4vjg6Ljg4gs44K/44Kv44OfDQor44Kk44Kx44OOLOODoeOCsOODnw0KK+OCpOODiOOCpizjgrfjg6fjgqbjgrMNCivjgr/jgrHjg4As44OI44Kq44OrDQor44Oe44Ko44OALOOCs+OCpuODmOOCpA0KK+OCr+ODieOCpizjgqvjg4Tjg58NCivjgqvjgrLjg6Tjg54s44Of44ON44KqDQor44Ok44Oe44Kr44KyLOODqOOCpuOCuA0KK+OCteOCqOOCsOOCtSzjg6zjgqTjgrMNCivjg5/jgrrjgr/jg4ss44OK44Kq44KzDQor44Kv44OJ44KmLOODiOOCt+ODkuOCsw0KK+OCs+OCquODquODpOODnizjg5/jgrrjg5sNCivjgqvjgr/jg6jjgrss44Oo44K344KoDQor44Kq44K144OALOOCseOCpOOCsw0KK+ODpOOCruODj+OCtyzjgrfjg6XjgqbjgqTjg4ENCivjgrnjg58s44K/44OE44KqDQor44K/44OK44KrLOOCouODhOOCtw0KK+OCr+ODieOCpizjg6bjgq3jgqoNCivjgr/jgrHjg5Is44Ki44Kt44OpDQor44Ki44Oh44Of44OkLOODn+ODgeODkuODrQ0KK+ODiuOCq+ODoOODqSzjgr/jgqvjgrcNCivjgq3jg6jjg5/jg4Qs44Kx44Oz44K4DQor44Kk44K644Of44OALOODqOOCt+OCqw0KK+ODleODiuOCrSzjg5Ljg63jgqLjgq0NCivjgr/jgrHjgrfjgr8s44Kr44K644OS44KzDQor44Of44Km44OpLOOCreOCr+OCqg0KK+OCpOOCt+ODkOOCtyzjg47jg5bjgrMNCivjg6Ljg6rjgqLjgqQs44Kx44Kk44K4DQor44Og44Op44Ok44OeLOOCqOOCpOOCuOODpQ0KK+OCquOCteODryzjg6Tjgrnjg47jg6oNCivjg5Xjgqvjg4As44Oo44K344Kr44K6DQor44Ok44Oe44OALOODkuODh+ODkuOCsw0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgqrjg47jg4fjg6ks44OI44Of44KqDQor44OP44Ok44K144KrLOODnuOCteODn+ODgQ0KK+OCquOCquODhOOCqyzjg5Ljg4fjg5LjgrMNCivjg4jjgqrjg6Tjg54s44OS44Ot44K/44KrDQor44Kr44Ov44OP44OpLOODn+ODhOODqw0KK+OCqOODk+OCteODryzjg57jgrXjgq0NCivjg6Tjg57jgqvjg68s44OG44OE44OkDQor44Ok44Oe44Oi44OILOODpOOCueODiOODog0KK+OCueOCuuOCrSzjg4jjgqrjg6sNCivjgqrjg6Tjg57jg4As44K/44Kr44K3DQor44Oe44OE44Ok44OeLOODquODpeOCpuOCpOODgQ0KK+OCouODmSzjg47jg5bjg5Ljg60NCivjgqLjg5ks44Ok44K544KqDQor44Ki44OZLOOCq+OCuuODnuOCtQ0KK+OCouODmSzjg6bjgq3jgqoNCivjgqLjgrLjgr8s44K444Ol44Oz44Kk44OBDQor44Ki44Kr44OP44ONLOODkuODh+ODkuODrQ0KK+OCouOCseODiuOCrCzjgrjjg6Xjg7MNCivjgqLjgq3jg6Tjg54s44K344Ky44KqDQor44Ki44Kt44K244OvLOODkuODh+OCq+OCug0KK+OCouODnuODgCzjg5/jgq3jgqoNCivjgqLjg57jg44s44Oe44K144K3DQor44Ki44Oi44KmLOOCouOCreOCqg0KK+OCouODs+ODieOCpizjg5Ljg4fjgqLjgq0NCivjgqLjg7Pjg4njgqYs44OK44Kq44KtDQor44Ki44Oz44OJ44KmLOODiOOCt+ODleODnw0KK+OCouOCquODjizjg5Ljg63jgq0NCivjgqLjgqrjg6Tjg54s44Kk44Ov44KqDQor44Ki44Op44KkLOOCq+OCuuODkuODrQ0KK+OCouODqeOCq+ODryzjg5Ljg4fjgrcNCivjgqLjg6rjg6Ljg4gs44OS44OH44KtDQor44Ki44Oq44KqLOODnuOCs+ODiA0KK+OCouOCteOCpCzjgqLjgq3jg6kNCivjgqLjgrXjgqvjg68s44Oo44K344OS44OIDQor44Kv44Ot44KtLOODpuOCreODjuODqg0KK+OCouOCuuODnizjgrfjg7PjgrgNCivjg5Djg7Pjg44s44Oe44K144Kt44OoDQor44OZ44OE44Ok44KvLOOCseODs+OCtA0KK+ODk+ODiOOCpizjgrjjg7MNCivjg4Hjg5As44OS44Ot44K3DQor44OB44Ol44KmLOOCq+ODhOOCrQ0KK+OCqOODgCzjgrHjg7PjgqTjg4Hjg60NCivjgqjjg7Pjg4ks44OK44Kq44OfDQor44Ko44K144KtLOOCt+ODs+OCpOODgQ0KK+ODleOCuOOCpCzjg5Ljg63jgrcNCivjg5XjgrjjgqQs44OV44Of44KqDQor44OV44K444Oi44OILOOCouOCreODqQ0KK+ODleOCuOOCvyzjgq3jg6jjg4rjgqoNCivjg5Xjgrjjgr8s44Ki44Kt44OS44OtDQor44OV44K444Ov44OpLOOCteODiOOCtw0KK+ODleOCq+OCtuODryzjg4jjg6Ljg5Ljg4gNCivjg5Xjgq/jg4As44K544K544OgDQor44OV44Kv44OP44OpLOODpOOCueODkuOCsw0KK+ODleOCr+OCt+ODnizjgqvjgrrjg6jjgrcNCivjg5Xjgq/jg4njg6Es44Kr44K644OS44K1DQor44OV44Kv44Ok44OeLOOCteODiOOCtw0KK+ODleODiuODkOOCtyzjg57jgrXjg6bjgq0NCivjg5Xjg6vjg4Djg4Ys44Ki44Kt44OS44KzDQor44OV44Or44K144OvLOOCt+ODs+OCuA0KK+ODleODq+OCvyzjg6rjgq3jg6QNCivjg5Xjg6vjg6Qs44K344Oz44Kk44OBDQor44OV44K344KtLOODpuOCpuOCpOODgQ0KK+ODj+ODnuODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg4/jg4rjg4As44Kr44OE44OO44OqDQor44OP44OK44OfLOODkuODh+OCqg0KK+ODj+ODqeODgCzjgqLjgq3jg6kNCivjg4/jg6vjgqvjg68s44Kk44K644OfDQor44OP44K744Ks44OvLOODqOOCpuOCpOODgQ0KK+OCquOCquODhCzjg6Djg43jg5Ljg60NCivjg4/jgrfjg6Ljg4gs44Ki44OE44K3DQor44OP44K344Oi44OILOOCqOODn+OCsw0KK+ODj+OCueODouODiCzjgqLjg4TjgrcNCivjg4/jg4Pjg4jjg6os44OE44Oo44K3DQor44OP44Ok44K144KrLOOCv+OCq+OCqg0KK+ODkuODgOOCqyzjgrHjgrXjgqoNCivjg5LjgrDjg4Es44Kx44Kk44KzDQor44OS44Kw44OBLOODleOCteODpuOCrQ0KK+ODkuOCuOOCr+ODrSzjg4rjgqrjg6bjgq0NCivjg5Ljg6njgqvjg68s44K444Ol44Oz44Kk44OBDQor44OS44Op44OOLOODkuODreODqA0KK+ODkuODqeOCvyzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrss44K144OB44KzDQor44OS44K144OALOOCv+OCq+OCtw0KK+ODm+ODqizjg47jg6rjg6TjgrkNCivjg5vjgqbjg6Qs44Kr44K644OS44KzDQor44Ob44Oz44OALOOCt+OCsuODpuOCrQ0KK+ODm+ODs+ODnizjgr/jg4Tjg6QNCivjgr/jg4rjgqss44OE44Oo44K3DQor44Ob44K344K444OeLOOCv+ODhOOCqg0KK+ODm+OCt+OCqyzjgr/jgrHjgrcNCivjg5vjgr3jg4As44OB44Ko44OfDQor44Kk44OB44Kr44OvLOODpOOCueODkuODrQ0KK+OCpOODgeODoOODqSzjgrHjgqTjgrQNCivjgqTjgqzjg44s44Of44OJ44OqDQor44Kk44Kk44OALOODnuOCteODpuOCrQ0KK+OCpOOCpOOCquOCqyzjg5Ljg63jgrcNCivjg4rjgqzjg44s44K144OI44OrDQor44Kk44Kx44K244OvLOODjuODluODpOOCuQ0KK+OCpOODouODiCzjgrnjg5/jg6wNCivjgqTjg4rjgrrjg58s44Ok44K544OP44OrDQor44Kv44K344Of44OkLOOCt+ODs+OCpOODgQ0KK+OCpOODjuOCpuOCqCzjgrfjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Ki44Kt44OpDQor44Kk44OO44Km44KoLOODiOODouODpuOCrQ0KK+OCpOODjOODhOOCqyzjg4rjgqrjgq0NCivjgqTjgrXjgrgs44OS44OH44OIDQor44Kk44K344OALOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCt+ODgCzjgqTjgrXjgqoNCivjgqTjgrfjg4As44Kv44OL44Ki44KtDQor44Kk44K344Ks44KtLOOCqOODquOCsw0KK+OCpOOCt+OCrOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjgqvjgrjjgr/jg4ss44Kq44K144OgDQor44Kk44K344OP44OpLOODkuODreODpuOCrQ0KK+OCpOOCt+ODoOODqSzjg57jgrXjg5LjgrMNCivjgqTjgrfjg6Tjg54s44K344Ol44Km44Kk44OBDQor44Kk44K344K244KtLOODjuODluOCqg0KK+OCpOOCveODmSzjg6jjgrfjg5LjgrMNCivjgqTjgr3jgrbjgq0s44Oe44K144Ki44KtDQor44Kk44OI44KmLOODgeOCr+OCtQ0KK+OCpOODiOOCpizjg5LjgrXjg4gNCivjgqTjg6/jgqLjgrUs44Kx44Oz44K/44Ot44KmDQor44Kk44Ov44KkLOODiuOCquOCv+OCqw0KK+OCpOODr+ODnizjgrXjg4jjgrcNCivjgqTjg6/jg6Ljg4gs44Oo44Km44Kk44OBDQor44Kk44Ov44OK44KsLOODkuODreODjuODqg0KK+OCpOODr+OCt+OCvyzjgrfjgrMNCivjgqTjg6/jgr8s44Kr44K644Oe44K1DQor44Kk44Ov44K/LOOCqOOCpOOCuA0KK+OCq+ODieODr+OCrSzjgrXjg4jjgrcNCivjgqvjgrLjg6Tjg54s44Kx44Oz44Kk44OBDQor44Ov44K/44OK44OZLOOCpOOCuuODnw0KK+OCq+ODn+ODpCzjgq/jg4vjgqLjgq0NCivjgqvjg5/jg6Qs44Kx44Oz44Kk44OBDQor44Kr44Oz44OQ44Ok44K3LOOCreODs+OCuA0KK+OCq+ODjuOCpizjg5Ljg63jgrcNCivjgqvjg6rjg6Qs44OK44Oq44Ok44K5DQor44Kr44K144KtLOOCuOODpeODsw0KK+OCq+OCt+ODnizjg57jgrXjgqoNCivjgqvjgrnjg6Qs44Ki44Kt44OpDQor44Kr44OI44KmLOOCv+OCq+OCrQ0KK+OCq+ODiOOCpizjgqvjgrrjg5Ljg60NCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOODn+ODhOOCsA0KK+OCq+ODiOOCpizjg5Ljg4fjg47jg6oNCivjgqvjg4jjgqYs44OS44Ot44Om44KtDQor44Kr44Ov44OQ44K/LOODgOOCpA0KK+OCq+ODr+ODkOOCvyzjgqLjg4TjgrcNCivjgqvjg6/jgrDjg4Es44OS44OH44Of44OBDQor44Kr44Ov44OP44OpLOODkuODreODnw0KK+OCq+ODr+ODj+ODqSzjgqvjgrrjg5Xjg58NCivjgqvjg6/jgrjjg6os44Of44OB44KqDQor44Kr44Ov44Kr44OfLOODhuODhOOCqg0KK+OCq+ODr+OCr+ODnCzjgqvjgrrjg4jjgrcNCivjgqvjg6/jg57jgr8s44K/44Kr44OO44OWDQor44Kr44Ov44Og44OpLOODkuODiOOCtw0KK+OCq+ODr+ODjizjg47jg6rjgqLjgq0NCivjgqvjg6/jgrXjgq0s44Oe44K144OS44OIDQor44Kr44Ov44K344OeLOODiOOCt+ODkuOCtQ0KK+OCq+ODr+OCuizjg57jgrXjg47jg6oNCivjgq3jg5Djgrcs44OS44OH44OS44KzDQor44Kt44Oe44OBLOODnuOCteOCrQ0KK+OCreODouODiCzjgr/jgrHjgrcNCivjgq3jg6Djg6ks44K/44Kv44OkDQor44Kt44Oz44OQ44OpLOODqOOCt+ODn+ODgQ0KK+OCreODjuOCt+OCvyzjg6TjgrnjgrcNCivjgq3jg47jgrfjgr8s44OS44Ot44KtDQor44Kt44Oq44K144OvLOOCpOODgeODreOCpg0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44OS44Ot44Ki44KtDQor44Kz44OQ44Ok44K3LOODnuOCteOCqg0KK+OCs+ODkOODpOOCtyzjg5Xjgrjjg5LjgrMNCivjgrPjg4Djg54s44Kz44Km44K4DQor44Kz44OA44OeLOOCquOCteODoA0KK+OCv+OCq+ODoOODqSzjg6Ljg4jjg5LjgrMNCivjgrPjg5Ljg4rjgr8s44Om44Km44K544KxDQor44Kz44Oz44OOLOODkuODreOCtw0KK+OCs+ODs+ODjizjgr/jgqvjg5Ljg60NCivjgrPjg6Tjg54s44Kz44Km44K4DQor44Kz44K644KtLOODiOOCt+OCqg0KK+ODiOOCpuODieOCpizjgrPjgqbjgrgNCivjgrPjgrjjg54s44K344Oz44K4DQor44Kz44Oz44OJLOOCouOCreODqQ0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Oe44K144OI44K3DQor44Kz44Oz44OOLOOCq+OCquODqw0KK+OCs+OCv+OCrSzjg5Ljg4jjgrcNCivjgrPjg6TjgqTjgrcs44Of44KrDQor44Kz44Ok44OK44KuLOODjuODnOODqw0KK+OCr+ODnCzjgrHjg7Pjgr/jg63jgqYNCivjgq/jg4njgqYs44Kt44Of44OS44OIDQor44Kv44Oe44Ks44KkLOODiuOCquODpuOCrQ0KK+OCr+ODnuOCrSzjgrfjg7PjgrgNCivjgq/jg6njg4Es44K/44Kr44Om44KtDQor44Kv44Op44K/LOOCs+OCueOCsQ0KK+OCr+ODquOCvyzjg5/jgq0NCivjgq/jg6rjg6Tjg54s44K344Ol44Oz44K4DQor44Kv44Ot44OALOOCs+OCueOCsQ0KK+OCr+ODreOCq+OCrizjg57jgrXjg47jg5YNCivjgq/jg63jgrXjg68s44K344Oz44K4DQor44Kv44Ot44K144OvLOOCu+OCpOOCrQ0KK+OCr+ODr+ODjizjg5Ljg63jgr/jgqsNCivjg57jgqjjg5Djgrcs44OI44K344Ki44KtDQor44Oe44Ko44K244OvLOODjuODluODpuOCrQ0KK+ODnuODjizjg6jjgrfjgqoNCivjg57jg6vjg6/jgqss44OS44OH44OK44KqDQor44Km44OB44Ok44OeLOOCv+ODhOOCqg0KK+ODnuOCueODgCzjgrjjg6Xjg7MNCivjg57jg4TjgqQs44K344Ky44KtDQor44Oe44OE44KkLOOCteODiOOCtw0KK+ODnuODhOODouODiCzjgrfjg7PjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OS44K144OIDQor44Oe44OE44OK44KsLOODnuOCteODiOOCtw0KK+ODnuODhOOCt+ODnizjg6Ljg6rjg5Ljg60NCivjg57jg4Tjgrfjgr8s44K/44OA44K3DQor44Oe44OE44K244KtLOOCv+OCseOCtw0KK+OCpOODiuOCpOOCtyzjg6jjgrfjgqoNCivjg5/jgqvjg58s44Kx44Kk44Kk44OBDQor44Of44OK44KuLOOCouOCreODn+ODhA0KK+ODn+ODhOODpOODnizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5/jgqbjg6ks44K344Ky44KtDQor44Of44Ok44KxLOOCouODhOOCtw0KK+ODn+ODpOODouODiCzjgqLjg4TjgrMNCivjg5/jg6Tjgr8s44Kz44Km44K4DQor44Of44Ok44Km44OBLOODnuOCteOCrQ0KK+ODn+ODpOOCpuODgSzjgqTjg4Hjg63jgqYNCivjg5/jg6Tjgrbjg68s44Ki44Kt44OpDQor44Of44Ok44K244OvLOOCv+OCq+OCtw0KK+ODn+ODqOODgCzjgr/jgqvjg5LjgrUNCivjg5/jgr7jg5bjg4Es44Kx44Oz44K4DQor44Of44K+44K/LOOCv+OCseOCqg0KK+ODgeODkCzjg5Ljg63jg5LjgrUNCivjg5/jgrrjg4/jgrcs44Oe44Kz44OIDQor44Of44K644Oe44OBLOOCu+OCpOOCuA0KK+ODn+OCuuOCv+ODiyzjgrXjg4jjgrcNCivjg5/jgrrjgr/jg4ss44OE44Oo44K3DQor44Of44K644K/44OLLOODkuODreODpuOCrQ0KK+ODouODgeOCuuOCrSzjg5/jg47jg6sNCivjg6Ljg6rjg6Ljg4gs44OK44OK44KzDQor44Oi44Oq44K/44OLLOOCv+OCq+OCtw0KK+ODouODquOCvyzjg4jjg6jjg5LjgrMNCivjg6Ljg6rjgr8s44K/44Kr44K3DQor44Oi44Oq44Ov44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCquOCr+OCpCzjgr/jgrHjg5LjgrMNCivjg6Ljg6os44K/44Kx44OfDQor44Oi44OqLOOCv+OCq+ODpuOCrQ0KK+ODoOOCs+ODpOODnizjg5Ljg63jg6bjgq0NCivjg6Djg6njg4Ys44K344Oz44Kk44OBDQor44Og44OI44KmLOOCq+ODhOOCrQ0KK+ODiuOCrOOCpCzjg5/jg4Tjg5Ljg60NCivjg4rjgqzjg44s44Of44OE44OI44K3DQor44OK44Ks44Kq44KrLOOCv+OCq+ODkuODrQ0KK+ODiuOCrOOCuyzjgqvjg4Tjg58NCivjg4rjgqzjgr8s44OS44Ot44Om44KtDQor44OK44Ks44K/LOODouODiOOCrQ0KK+ODiuOCrOODryzjgrfjg7PjgqTjg4ENCivjg4rjgqvjg57jg6ss44Oo44K344KtDQor44OK44Kr44Og44OpLOOCouOCreODqQ0KK+ODiuOCq+ODoOODqSzjg4jjg6LjgrMNCivjgqLjg5ks44Oo44Km44Kk44OB44Ot44KmDQor44OK44Kr44Og44OpLOODiOOCt+ODpA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjgrfjg54s44OS44K144Oo44K3DQor44OK44Kr44K344KqLOODkuODreODpuOCrQ0KK+ODiuOCqyzjg47jg6rjgrMNCivjg4rjg5/jgq0s44OO44Oq44Kr44K6DQor44OK44Oz44OWLOODkuODreOCt+OCsg0KK+ODpOODnuOCsOODgSzjgrfjg7PjgrgNCivjg4vjgqTjg58s44K344Ky44OV44OfDQor44OL44K344OALOODkuODreODqOOCtw0KK+ODi+OCt+ODgCzjgqjjgqTjgrgNCivjg4vjgrfjg4As44Oe44K144Ki44KtDQor44OL44K344OALOOCueOCueODoA0KK+ODi+OCt+OCr+ODnCzjgqLjgq3jg5Ljg60NCivjg4vjgrfjg6Djg6ks44K/44Kr44Ki44KtDQor44OL44K344Og44OpLOODhOODqOOCtw0KK+ODi+OCt+OCqizjg57jgrXjg4gNCivjg4vjgrfjgqos44K344Oz44K4DQor44OL44K344Ok44OeLOOCv+OCq+OCtw0KK+ODpOOCrOODryzjgrHjgqTjgrgNCivjg4vjg4Pjgr8s44OS44Ot44OfDQor44OO44OZ44Kq44KrLOOCouOCreODmw0KK+ODjuOCuOODqizjg6jjgrfjg47jg5YNCivjg47jg6Djg6ks44OG44OE44OkDQor44OO44OK44KrLOOCq+ODhOOCtw0KK+OCquODkOODiizjg5/jg47jg6sNCivjgqrjg4HjgqLjgqQs44OI44K344Om44KtDQor44Kq44OB44Of44K6LOOCv+OCq+OCtw0KK+OCquODgSzjg5/jg4Tjg47jg6oNCivjgqrjg4Djgqrjgqrjg4/jg6ks44K344Oz44K0DQor44Kq44OALOODkuODreOCq+OCug0KK+OCquOCrOOCvyzjg57jgrXjgq0NCivjgqrjgqzjg68s44Oe44K144OI44K3DQor44Kq44Ks44OvLOOCqOODhOOCsw0KK+OCquOCsOODqSzjg4rjgqrjg6bjgq0NCivjgqrjgqrjg5Ljg6ks44OO44OW44Om44KtDQor44Kq44Kq44OS44OpLOOCpOODgeODreOCpg0KK+OCquOCquOCpOOCtyzjgqLjgq3jg6kNCivjgqrjgqrjgqTjgrcs44Oe44Kz44OIDQor44Kq44KtLOOCq+ODpg0KK+OCquOCquOCr+ODnCzjgqvjgrrjgrMNCivjgqrjgqrjg44s44Kx44Kk44KzDQor44Kq44Kq44OM44OeLOOCt+OCsuODjuODlg0KK+OCquOCquODjOODnizjg4rjg6vjgrcNCivjgqrjgqrjgr/jgq0s44Oe44K144OS44OHDQor44Kq44Kq44K/LOODiOOCquODqw0KK+OCquOCquOCvyzjg6jjgrfjg4rjgqwNCivjgqrjgqrjgr8s44Kz44Km44Kk44OBDQor44Kq44OILOODnuOCteOCuuODnw0KK+OCquOCquODhOODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjg6Tjgq4s44Oe44K144OS44OtDQor44Kq44Kq44Ok44OeLOOCouODhOOCtw0KK+OCquOCpOOCqCzjgqvjgrrjg6QNCivjgqrjgrjjg54s44Ki44Kt44OpDQor44Kq44Kr44OZLOOCpOODgeODreOCpg0KK+OCquOCq+ODgCzjg4jjgqrjg6sNCivjgqrjgqvjg6Ljg4gs44Oe44K144KtDQor44Kq44Kr44ONLOOCv+OCq+OCtw0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjgqrjgqvjg44s44Oe44K144KzDQor44Kq44Kr44K244KtLOODj+ODq+ODkuOCsw0KK+ODr+OCv+ODiuODmSzjg57jgrXjg4jjgrcNCivjgqrjgq/jg4As44Ki44OE44OS44OtDQor44Kq44Kv44OOLOOCq+ODhOOCtw0KK+OCquODiuODpCzjgqvjgrrjgrMNCivjgqrjg44s44Kt44Oo44K3DQor44Kq44OOLOOCt+ODs+ODpA0KK+OCquOCquODjizjg6bjgr/jgqsNCivjgqrjgrXjg4rjgqQs44Kt44Oo44Ki44KtDQor44Kq44K244KtLOODkuODh+OCqg0KK+OCteOCpOODiOOCpizjg6jjgrfjg58NCivjgrXjgqTjg4jjgqYs44K444Ol44OzDQor44K144K4LOODpOOCueODkuODhw0KK+OCteOCuCzjgqvjgrrjgqoNCivjgrXjgqvjgqQs44Kr44K644OS44KzDQor44K144Kr44KkLOODiOODouOCueOCsQ0KK+OCteOCq+OCr+ODqSzjgr/jgqvjg5Ljg60NCivjgrXjgqvjgqbjgqgs44Ok44K544Om44KtDQor44K144K144OZLOODnuOCs+ODiA0KK+OCteOCteOCrSzjg5Ljg4fjgqvjgroNCivjg4rjg5/jgq0s44OS44Ot44K3DQor44K144K/44KxLOOCq+ODhOODkuODrQ0KK+OCteOCv+OCsSzjg6/jgq0NCivjgrXjg4jjgqYs44K344Ol44Km44Kk44OBDQor44K144OI44KmLOOCv+OCseOCtw0KK+OCteODiOOCpizjg4rjgqrjgq0NCivjgrXjg4jjgqYs44Om44Km44K+44KmDQor44K144OI44KmLOOCt+OCsuOCrQ0KK+OCteODiOOCpizjg5Ljg63jgrcNCivjgrXjg6/jg4As44OP44K444OhDQor44K744Kt44Kw44OBLOODkuODreOCouOCrQ0KK+OCu+OCreODouODiCzjg4jjgrfjg6bjgq0NCivjgrvjgq3jg40s44Kt44Kk44OBDQor44K744Kt44Kq44KrLOODnuODouODqw0KK+OCu+OCreODpCzjg5Ljg63jgqLjgq0NCivjgrvjgq0s44K444Ol44Oz44Kk44OB44OtDQor44K744Oz44K/LOODjuODquOCouOCrQ0KK+OCt+ODkOOCvyzjgrXjg4jjgrcNCivjgrfjgqTjg4os44OV44Of44OP44OrDQor44K344Kk44OkLOODkuODh+OCrQ0KK+OCt+ODnuODkOODpOOCtyzjg57jg6Ljg6sNCivjgrfjg57jg4As44K344Oz44Kk44OB44Ot44KmDQor44K344Oe44OALOODn+ODgeODiOOCtw0KK+OCt+ODnuODoOODqSzjgqLjgq3jg5Ljg4gNCivjgrfjg5/jgros44OS44OH44OI44K3DQor44K344Of44K6LOOCpOOCv+ODqw0KK+OCt+ODouODoOODqSzjgqvjg4TjgqLjgq0NCivjgrfjg47jg4As44Kz44Km44K4DQor44K344OO44OP44OpLOODouODiOODpuOCrQ0KK+OCt+OCquOCtuODryzjg47jg5bjg6bjgq0NCivjgrfjg6njgqTjgrcs44Om44Km44K4DQor44K344Op44K144KtLOODqOOCpuOCsw0KK+OCt+ODqeODiOODqizjg5Ljg4fjgrgNCivjgrfjgrXjgqQs44Oe44K144OS44OtDQor44K344On44Km44OALOOCseOCpOOCueOCsQ0KK+OCveOCpizjg4rjgqrjgq0NCivjgr3jg47jg5ks44OI44Kq44OrDQor44K544OJ44KmLOOCt+ODpeODs+OCpOODgQ0KK+OCueODieOCpizjgrXjg4jjgrMNCivjgrnjgq7jgqbjg6ks44OK44Kq44KtDQor44K544Ku44Ok44OeLOODquODp+OCpuOCpOODgQ0KK+OCueOCruODpOODnizjg4jjg6LjgrgNCivjgrnjg5/jg4As44OS44Ot44KtDQor44K544Of44Kr44OvLOODkuODiOOCtw0KK+OCueOCuuOCrSzjg5/jg43jgqvjgroNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLOOCouODhOOCtw0KK+OCueOCuuOCrSzjg4jjgrfjg4rjg6oNCivjgrnjgrrjgq0s44Oo44K344Om44KtDQor44K544K644KtLOODpOOCueOCvg0KK+OCueOCuuOCrSzjg4/jgrjjg6ENCivjgrnjgrrjgq0s44Kr44K644Ki44KtDQor44Ob44K944Kr44OvLOODpuODqg0KK+OCv+ODluOCtyzjgqTjgq/jgr8NCivjgr/jg4Hjgrbjg68s44OO44Oq44OV44OfDQor44K/44OALOOCv+OCq+OCouOCrQ0KK+OCv+ODgCzjg5Ljg63jg4jjgrcNCivjgr/jgqvjgr8s44Om44Km44K544KxDQor44K/44Kr44Ks44KtLOODkuODh+OCq+OCug0KK+ODpOODnuOCtuOCrSzjg4rjgqrjgq0NCivjgr/jgqvjg4/jgrcs44Oo44K344OE44KwDQor44K/44Kr44OP44K3LOODkuODreOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg6TjgrkNCivjgr/jgqvjg44s44K/44Kr44OS44OtDQor44K/44Kr44K144KtLOOCv+OCq+OCtw0KK+OCv+OCq+OCuSzjgqvjgrrjg6gNCivjgr/jgqvjg4jjg6os44Kz44Km44K4DQor44K/44Kr44Ok44OeLOODnuOCteODnw0KK+OCv+OCq+ODpOODnizjgrfjgrLjg6sNCivjgr/jgqvjg6Tjg54s44Om44Km44K4DQor44K/44Kr44OkLOODqOOCt+OCq+OCug0KK+OCv+OCseODgCzjgr/jgqjjgrMNCivjgr/jgrHjg4As44OS44Ot44Om44KtDQor44Oe44OE44Kq44KrLOODqOOCt+ODkuODrQ0KK+OCv+OCseOCpCzjg47jg5bjg5LjgrMNCivjgr/jgrHjgqbjg4Es44OI44Oi44Kq44KtDQor44K/44Kx44Km44OBLOODjuODquODiOOCtw0KK+OCv+OCsSzjgrHjgqTjgrMNCivjgr/jgq3jg5/jg6Qs44OI44Oi44OS44OtDQor44K/44Oe44K/44OLLOOCq+OCuuOCouOCrQ0KK+OCv+ODoOODqSzjg6jjgrfjg5Ljg60NCivjgr/jg6Djg6ks44Kx44Oz44K4DQor44K/44OK44KrLOOCq+OCuuODkuOCtQ0KK+OCv+ODiuOCqyzjg4jjg6Ljg6TjgrkNCivjgr/jg4rjgqss44Ki44Ok44KzDQor44K/44OK44KrLOODjuODquODkuODrQ0KK+OCv+ODi+ODouODiCzjgrfjg7PjgqTjg4ENCivjgr/jg4vjg6Tjg54s44Ki44Kt44OS44KzDQor44K/44Oz44OOLOOCquOCteODoA0KK+OCv+ODjizjg5LjgrXjgqoNCivjg4bjg6njgrbjg68s44Ki44Kt44OpDQor44OI44Kv44K344KyLOOCteODiOODqw0KK+OCtOODiOOCpizjg4rjgqrjgq0NCivjg4jjg5/jg4rjgqws44OS44Ot44OS44K1DQor44OI44Oz44K344On44KmLOODkuODh+ODpuOCrQ0KK+ODhOODnOOCpCzjgrfjg6fjgqbjgqTjg4ENCivjg4Tjg5zjgr8s44K344On44Km44K4DQor44OE44K444Og44OpLOODiuOCquOCrQ0KK+ODnuODhOODoOODqSzjgqLjgq3jg6kNCivjg4Tjgqvjg4As44OS44OH44KtDQor44OE44ON44Oo44K3LOOCteODiOODnw0KK+ODhOODq+OCquOCqyzjg57jgrXjg6QNCivjg4Tjg6ss44Oo44K344KqDQor44Km44OB44OALOODkuODh+ODpuOCrQ0KK+OCpuOCqOODgCzjgr/jg6Ljg4QNCivjgqbjg6HjgrXjgq0s44Kt44Oo44K3DQor44Km44Op44Kr44OvLOODpuOCpuOCuA0KK+OCpuODqeOCq+ODryzjgqvjgrrjgrcNCivjg6/jg4As44K444Ol44OzDQor44Ov44Kr44OQ44Ok44K3LOOCseODs+OCuA0KK+ODr+OCq+ODnuODhCzjg6jjgrfjgqvjgroNCivjg6/jgr/jg4rjg5ks44Ki44OE44KzDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODqizjgrPjgqbjgrgNCivjg6Tjg5ks44Kz44Km44Kk44OBDQor44Ok44OP44KuLOOCt+ODs+OCuA0KK+ODpOODnuODgCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg4As44Kr44K644OS44OtDQor44Ok44Oe44Kz44K3LOODnuOCteODpuOCrQ0KK+ODpOODnuODouODiCzjgr3jgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Ki44OE44K3DQor44Ok44Oe44Oi44OILOODqOOCpuOCpOODgQ0KK+ODpOODnuODouODiCzjgrXjg4ENCivjg6Tjg57jg6Ljg4gs44Oe44K144OfDQor44Ok44Oe44Km44OBLOODiOOCquODqw0KK+ODpOODnuODjizjg5Ljg63jg5Xjg58NCivjg6Tjg57jgqrjgqss44OI44Oi44K/44KrDQor44Ok44Oe44K344K/LOODiOOCt+ODkuODhw0KK+ODpOODnuOCpuODgSzjgr/jgrHjgrcNCivjg6Tjg57jgrbjgq0s44OS44Ot44Oe44K1DQor44Ok44Oe44K244KtLOODpuOCq+ODqg0KK+ODpOODiuOCruOCt+ODnizjg57jgrnjg58NCivjg6Tjg57jg6Ljg4gs44Of44Kr44KzDQor44Ok44OOLOOCv+OCq+ODkuOCsw0KK+ODpOOCtuOCrSzjgr/jgrHjgrcNCivjg6jjgrQs44Ok44K544OP44OrDQor44Oo44Kz44KkLOOCq+ODhOODnuOCtQ0KK+ODqOOCs+ODn+OCvizjg4jjgrfjgq0NCivjg6jjgrPjgr8s44Om44Km44K4DQor44Oo44Kz44K/LOODkuOCteOCqg0KK+ODqOOCs+OCvyzjg6bjgqbjgrMNCivjg6jjgrfjg4As44K344Oz44Kk44OB44Ot44KmDQor44Oo44K344OALOODnuODgeOCsw0KK+ODqOOCt+ODleOCtSzjgqTjgq/jg5Xjg58NCivjg6jjgrfjg4/jg6ks44OI44Oi44Oe44K1DQor44Oo44K344Kk44KoLOODj+OCuOODoQ0KK+ODqOOCt+OCq+ODryzjg4HjgqgNCivjg6jjgrfjgqvjg68s44Of44OE44OS44OtDQor44Oo44K344KqLOODpuOCpuOCuA0KK+ODpuOCouOCtSzjg57jgrXjg6jjgrcNCivjg6bjgq0s44Ki44Kt44OpDQor44Ki44OA44OBLOODiOOCt+ODpuOCrQ0KK+OCquOCquODi+OCtyzjgqvjgrrjgqoNCivjgqrjgqrjgr8s44Of44Ov44KzDQor44Ki44K144OOLOODn+ODgeOCsw0KK+ODi+OCt+ODoOODqSzjg5/jg4Tjg6jjgrcNCivjg6Tjg57jg4As44OS44Ot44OO44OqDQor44K144KkLOOCr+ODi+OCqg0KK+ODn+ODpOODouODiCzjgqvjgrrjgqoNCivjgrnjgrrjgq0s44Kr44K644OS44KzDQor44OV44Kv44KkLOOCr+ODi+ODpA0KK+OCquOCr+ODgCzjg5LjgrXjgrMNCivjgrXjgqTjg4jjgqYs44K/44Kr44KqDQor44OV44Or44OkLOOCq+ODhOODnw0KK+ODouODiOODpOODnizjg4rjgqrjg5Ljg60NCivjg6jjgrfjgrbjgq0s44Om44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCouODhOODreOCpg0KK+ODiOOCreODryzjgrfjg6XjgqbjgqTjg4ENCivjgqTjg4rjg4As44Oe44K144OE44OKDQor44OI44Kt44OvLOODjuODquODpuOCrQ0KK+ODqOOCt+ODgCzjgr/jgqvjg6bjgq0NCivjgr/jgqvjg44s44Kx44Kk44KzDQor44Km44Ko44OALOODiOODouOCsw0KK+ODhOODgeODpCzjg6bjgqbjgrMNCivjgrfjg6Ljgqvjg68s44OV44Of44OS44KzDQor44Oe44OE44KkLOOCq+ODhOODnw0KK+OCueOCrOODpCzjg6jjgrfjgqoNCivjg5/jg47jgrDjg4Es44Ok44K544KzDQor44Km44Ko44OALOODkuOCq+ODqw0KK+OCpOODjizjg4jjg6LjgrgNCivjg57jgqjjg4As44Oe44Kz44OIDQor44OE44Oc44K/LOODjuODquOCqg0KK+ODqOOCt+ODnyzjgqTjgq/jgqoNCivjgqTjg4Hjgqvjg68s44K344Ky44OS44OtDQor44Ob44OqLOODkuODh+ODpA0KK+ODj+ODpOOCtyzjg6bjgr/jgqsNCivjgrfjg5Djgr8s44Kk44Kv44KzDQor44Kz44OQ44Ok44K3LOODnuOCueODkuOCsw0KK+OCquOCquOCr+ODnCzjgr/jgrHjgrcNCivjgqTjg6/jgr8s44OO44OW44Om44KtDQor44OV44K444K/LOODnuOCteODkuODrQ0KK+OCreOCv+ODoOODqSzjgqvjgrrjgqoNCivjgq/jg63jgq0s44Kx44Kk44KzDQor44Ok44Oe44Oi44OILOOCv+OCq+OCtw0KK+ODpOODnuODkOOCvyzjg6bjgq3jgrMNCivjgrXjgqTjg4jjgqYs44K344Ol44Km44Kk44OBDQor44OV44K444Ov44OpLOOCv+ODgOOCtw0KK+OCpOODiOOCpizjgqvjgrrjg4gNCivjgqTjgqTjgrEs44OI44Kq44OrDQor44K144Og44Kr44OvLOOCouOCreODjuODqg0KK+OCouOCuuODnizjg57jgrXjgq0NCivjgqLjgqrjgq0s44Ki44OE44K3DQor44OV44K444K/LOODhOODjeOCqg0KK+ODn+ODqOOCtyzjg4jjgrfjgqvjgroNCivjgrvjgq3jg6Tjg54s44Oo44K344KqDQor44OG44Op44OALOODhuODq+ODkuOCtQ0KK+OCqOODs+ODiSzjgr/jgrHjgrcNCivjgqvjgq3jg6Ljg4gs44Kx44Oz44K444Ot44KmDQor44OV44Or44OkLOOCpOODr+OCqg0KK+ODnuOCreODoOODqSzjgr/jgrHjgqoNCivjgrPjg7Pjg44s44OS44Ot44K3DQor44K544Ku44K144KtLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+ODgCzjgrfjgrLjgqoNCivjg4/jgq7jg6/jg6ks44OS44Ot44K3DQor44Ok44K244KtLOODpuOCpuOCuA0KK+ODi+ODjuODn+ODpCzjgqvjgrrjgqoNCivjgrPjgrXjgqss44OS44Ot44Ok44K5DQor44K144OOLOOCt+ODs+OCtA0KK+OCteOCpOODiOOCpizjg4DjgqTjgrnjgrENCivjgrfjg6Ljgrss44K/44Kr44Oo44K3DQor44K/44Kr44OP44K3LOOCq+OCuuODkuODiA0KK+OCv+ODhOOCquOCqyzjg57jgrXjgq0NCivjgr/jg5Djgr8s44Oo44K344K/44KrDQor44OK44Kq44KkLOODnuOCteOCsw0KK+ODiuOCrOOCvyzjg57jgrXjgqoNCivjg4vjgrfjgqrjgqss44K344Ky44OrDQor44Oe44OE44Kr44OvLOOCouODhOOCtw0KK+ODn+OCuuODjizjg6bjgqbjgrMNCivjg4jjgq/jg4rjgqws44Kx44Kk44KzDQor44Og44Op44Kr44OfLOODkuODreOCrQ0KK+ODpOOCueOCq+ODryzjg4jjgrfjg47jg6oNCivjg6Tjg57jgrDjg4Es44Om44Kt44KqDQor44Oo44Kz44Km44KoLOOCv+ODgOOCtw0KK+OCouOCuuODnizjg47jg5zjg6sNCivjgqTjg4rjg4As44Of44OE44Om44KtDQor44Kk44K344KkLOODjuODnOODqw0KK+OCpOODnuODi+OCtyzjgr/jgrHjgqoNCivjgqrjgqvjg44s44Kr44ON44Of44OEDQor44Kt44K3LOODiOOCt+OCsw0KK+OCr+ODnOOCvyzjg57jgrXjg47jg6oNCivjgrPjg5/jg4rjg58s44Oe44Om44OfDQor44Ki44Kk44Ok44OeLOOCt+ODp+OCpuOCuOODreOCpg0KK+OCteODjizjg4Hjgqvjg6kNCivjgr/jgq3jgqzjg68s44K344Ky44Oo44K3DQor44Kz44Oz44OOLOODkuODreODpOOCuQ0KK+OCu+ODs+ODgOOCpCzjgr/jgqvjgrcNCivjg4vjg6/jg44s44OS44OH44K544KxDQor44K3LOODiuOCquODqOOCtw0KK+OCq+ODiOOCpizjgqvjgrrjg4rjg6oNCivjgqLjgqvjgrXjgqss44Kv44OL44KqDQor44Kq44Oz44K644KrLOODkuODreOCtw0KK+OCs+OCrCzjgrPjgqbjgqTjg4ENCivjg4/jg6Tjgqvjg68s44OI44Oi44OfDQor44OP44K744Ks44OvLOODnuOCteODqOOCtw0KK+ODleODq+OCq+ODryzjgr/jgrHjgrcNCivjg5Xjgrjjgqvjg4ks44Om44Km44K4DQor44OI44OO44Kr44OvLOOCv+OCseOCtw0KK+ODnuODhOOCqizjg6jjgrfjgqoNCivjgq3jg5/jgrrjgqss44Oe44K144OO44OqDQor44Kq44OBLOODnuOCs+ODiA0KK+OCpOODgeOCs+ODj+ODqSzjg57jgrXjg6TjgrkNCivjgqTjgrHjg4As44Ki44Kt44KzDQor44Ki44Op44K/44KxLOOCpOOCr+OCqg0KK+OCpOOCseODgCzjg4jjgq3jgqoNCivjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44Kk44Kx44OALOOCqOODhA0KK+OCpOOCpOODgCzjg57jgrXjg4gNCivjgqrjgqrjgq/jg54s44Kr44K644KoDQor44Kv44K144OQLOODnuOCteOCrQ0KK+OCs+ODkOODpOOCtyzjgrXjg6jjgrMNCivjgrTjg4jjgqYs44Kr44K644OkDQor44K544K644KtLOODouODiOODjuODqg0KK+OCu+OCreODjSzjg5Ljg63jgrcNCivjgr/jgqvjg4As44OI44K344Om44KtDQor44Kz44Oz44OJLOODqOOCpuOCueOCsQ0KK+OCv+OCseODpOODnizjgrHjgqTjgrfjg63jgqYNCivjgr/jgqvjgqTjg4Es44Kq44K144OgDQor44K944OALOOCseODs+OCuA0KK+OCv+ODjizjg57jgrPjg4gNCivjgrfjg47jgrbjgq0s44K144OI44K3DQor44OP44Op44OALOOCouODpA0KK+OCr+ODieOCpizjgqvjg4TjgrMNCivjg4Tjg47jg4As44OK44Kq44KzDQor44OV44Or44Kr44OvLOODiOOCt+OCouOCrQ0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44OI44Kq44OrDQor44Ok44Oe44K344K/LOODqOOCt+ODj+ODqw0KK+ODpuOCq+ODryzjg6jjgrfjgqoNCivjg6jjgrfjg4As44Ko44Kk44KzDQor44OP44Ok44K3LOODiOOCt+OCv+OCqw0KK+OCv+ODs+ODjizjgqjjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oe44Kz44OIDQor44OK44Oq44Ki44KkLOODqOOCt+ODjuODqg0KK+OCv+OCq+ODoOODqSzjgqLjgq3jgqoNCivjgr/jg7Pjg44s44OG44OE44KqDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCpOODgQ0KK+OCtOODiOOCpizjg4jjgqrjg6sNCivjgrTjgqbjg4As44Kt44On44Km44KzDQor44OK44Kr44K344OeLOODn+ODhOOCqg0KK+ODm+OCt+ODjizjg5Xjg5/jgr/jg4ANCivjg6/jgrMs44OK44Kq44KtDQor44K544K644KtLOOCt+OCsuOCqg0KK+ODqOOCt+ODnuODhCzjg57jgrXjgq/jg4sNCivjg4rjg5/jgqrjgqss44K344Oz44K4DQor44Ok44Oe44Kw44OBLOODkuODreOCq+OCug0KK+OCpOOCt+ODkOOCtyzjg57jgrPjg4gNCivjgqTjgrfjg4As44K744Oz44OkDQor44Km44OB44Ok44OeLOOCu+OCpOOCuA0KK+OCqOODs+ODiSzjgrfjgrLjg6sNCivjg4rjgqvjg44s44Oe44K144OV44OfDQor44Kk44Oe44KkLOOCq+OCuuOCqg0KK+OCquOCteODiuOCpCzjgqLjg4TjgrcNCivjgrXjgqvjg6Ljg4gs44Kt44Oo44K3DQor44K344Kq44OfLOODgeOCq+OCtw0KK+OCt+ODnuOCtuOCrSzjg4rjgqrjgq0NCivjg4bjg6vjg6Qs44OI44K344OkDQor44OK44Kr44K/44OLLOODiuOCquOCrQ0KK+ODj+OCruODr+ODqSzjgq3jg6jjgqvjgroNCivjg5Ljgqzjgrcs44K344On44Km44KzDQor44Ob44Oq44Km44OBLOODqOOCt+OCqg0KK+ODn+OCvuODreOCrizjg4rjgqrjgq0NCivjg6Ljg6os44K/44Oi44OEDQor44Kk44OO44Km44KoLOOCv+OCseODkuOCsw0KK+OCt+ODgCzjg5/jg4Hjg6gNCivjg6Tjg57jg6Ljg4gs44Of44OB44KzDQor44Ok44Oe44Oi44OILOODkuODh+OCouOCrQ0KK+OCquOCquOCv+OCrSzjgqvjgrrjg6QNCivjg5Xjgrgs44K144OK44KoDQor44Ki44Kt44Oi44OILOODnuODouODqw0KK+OCpOOCpOOCuOODnizjgqLjgq3jgrMNCivjgqrjgrDjg54s44Om44Of44KzDQor44K144OI44KmLOOCv+OCq+OCqg0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Kr44K644Oo44K3DQor44OP44OpLOOCu+OCpOOCpOODgeODreOCpg0KK+ODleOCuOODnuOCrSzjgrfjg7Pjg6QNCivjg6Djg63jgr8s44Of44OE44Oe44K1DQor44Oi44OqLOODiOOCquODqw0KK+ODn+OCvuOCsOODgSzjg4jjgrfjg6bjgq0NCivjgqTjgrHjg4/jgr8s44OS44Ot44Om44KtDQor44Kq44Ks44OvLOODkuODreOCv+OCqw0KK+OCpuOCqOODjizjg57jgrXjg4jjgrcNCivjgr/jg4rjgqss44Kr44K644OS44OtDQor44Kz44OQ44Ok44K3LOODnuOCteOCq+OCug0KK+OCr+ODreOCuSzjg6TjgrnjgrgNCivjgq3jgr/jgqzjg68s44OS44Ot44K3DQor44K344OO44OfLOODnuOCteODpuOCrQ0KK+ODj+OCuyzjg6bjgqbjgr7jgqYNCivjg4bjg6vjg4zjg54s44Oo44Km44KzDQor44Kt44Kv44OBLOOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjg47jg6rjg6bjgq0NCivjgqrjgqrjgqvjg68s44K344Oz44OIDQor44Kq44Kq44OL44K3LOOCveOCpuOCpOODgQ0KK+OCouODmSzjg57jgrXjg5Ljg4gNCivjgqLjg4Djg4Es44OS44OH44KtDQor44Ki44OA44OBLOODnuOCteODiA0KK+OCouODgOODgSzjg4jjgrfjg6bjgq0NCivjgqLjgrQs44Kr44Kq44OqDQor44Ki44Kk44OP44OpLOOCouOCreODkuOCsw0KK+OCouOCpOODj+ODqSzjg5Ljg4fjgqoNCivjgqLjgqTjgrbjg68s44K444Ol44Oz44Kk44OBDQor44Ki44Kr44Oe44OELOOCv+ODhOOCqg0KK+OCouOCq+ODnizjg4jjg6Ljg58NCivjgqLjgqvjgrss44Oe44K144Om44KtDQor44Ki44Kr44Ok44OeLOOCt+ODs+OCsuODsw0KK+ODleOCr+OCt+ODnizjg4jjg6Ljg44NCivjgqLjgq3jg5As44OE44OI44OgDQor44Ki44Kt44OOLOODj+ODq+OCrQ0KK+OCouOCreOCt+OCqyzjg6bjgqbjgrgNCivjg4rjg6Hjgq0s44OK44Kq44OfDQor44Ki44Kt44K644KtLOOCt+ODs+OCpOODgQ0KK+OCouODnuODgCzjg6bjgq3jgqoNCivjgqLjg57jg44s44OI44Kq44OrDQor44Ki44Of44OOLOODjuODluODj+ODqw0KK+OCouODs+ODmSzjg6TjgrnjgrcNCivjgqLjg7Pjg4njgqYs44OS44Ot44OI44K3DQor44Ki44Oz44K244KkLOOCv+OCq+ODqOOCtw0KK+OCouODs+OCtuOCpCzjg5Ljg63jgrcNCivjgqLjgqrjgq0s44K144OI44K3DQor44Ki44Kq44Ok44KuLOOCv+OCq+OCqg0KK+OCouOCquODpOOCrizjg5Ljg63jg6bjgq0NCivjgqLjgqrjg6Tjgq4s44OS44K144K3DQor44Ki44Op44Kr44OvLOOCv+OCpOOCueOCsQ0KK+OCouODqeOCq+ODryzjg57jgrXjg6bjgq0NCivjgqLjg6njgq0s44OI44K344Om44KtDQor44Ki44Op44Ok44K5LOODkuODiOOCtw0KK+OCouODqSzjgqLjgq3jgqoNCivjgqLjg6rjgr8s44Kt44On44Km44KzDQor44Ki44K144OALOOCr+ODi+OCqg0KK+OCouOCteODgCzjg5Ljg63jgqLjgq0NCivjgqLjgrXjgqvjg68s44OO44Oq44KoDQor44Ki44K144Kv44OpLOODiOODouODpuOCrQ0KK+ODiuOCq+OCteODiCzjgqLjgq3jg6kNCivjgqLjgrXjg44s44Oo44K344OS44OtDQor44Ki44K144OqLOOCq+OCuuOCrQ0KK+OCouODhOODnyzjgqLjgq3jg6jjgrcNCivjgqLjg6/jgqss44Kr44OE44OfDQor44OQ44OQLOOCq+OCuuODkuODrQ0KK+ODkOODsyzjgrHjg7Pjgr7jgqYNCivjg5Djg7Ms44Ov44K/44OrDQor44OQ44OzLOOCs+OCpuOCv+ODreOCpg0KK+ODgeODp+OCpuOCtSzjg57jgrXjgrcNCivjg4DjgqTjg4ks44Kx44Kk44K344OzDQor44OA44Kk44Oi44OzLOODiuOCquODkuOCsw0KK+ODh+ODoOODqSzjg6jjgrfjg4gNCivjg4njgqQs44K/44Kr44K3DQor44Ko44OT44OM44OeLOOCouOCseODnw0KK+OCqOOCsOODgSzjgrjjg6Xjg7MNCivjgqjjg4/jg6ks44Kr44K644KqDQor44Ko44OK44OfLOODiuODhOOCsw0KK+OCqOODiOOCpizjg6jjgrfjg4rjg6sNCivjgqTjg6/jgrXjgq0s44Kr44K644KqDQor44Ko44K244KtLOODpuOCpuOCuA0KK+ODleOCuOOCqOODgCzjgrjjg6Xjg7MNCivjg5Xjgrjjgqgs44Kz44Km44Kk44OBDQor44OV44K444Ks44KtLOODqOOCt+ODgeOCqw0KK+ODleOCuOOCpCzjg4jjgrfjg6bjgq0NCivjg5XjgrjjgqQs44Ki44Kt44OpDQor44OV44K444KkLOOCuOODpeODs+OCpOODgQ0KK+ODleOCuOOCpCzjg5/jg6bjgq0NCivjg5XjgrjjgqQs44K344Ky44OO44OqDQor44OV44K444Kr44OvLOOCt+ODs+OCpOODgQ0KK+ODleOCuOODouODqizjg4jjg6Ljg44NCivjg5Xjgrjjg6Ljg4gs44K344On44Km44K0DQor44OV44K444Oi44OILOOCt+ODjg0KK+ODleOCuOODjizjgr/jgqvjgrcNCivjg5Xjgrjjgqrjgqss44Ok44K544K3DQor44Kq44Kw44OpLOOCouODpOOCsw0KK+ODleOCuOOCvyzjg57jgrXjg4gNCivjg5Xjgrjjgr8s44K144OI44OrDQor44OV44K444K/LOODpuOCreOCqg0KK+ODleOCuOOCvyzjgrfjg6fjgqbjgrgNCivjg5Xjgrjjg6/jg6ks44OS44Ot44K3DQor44OV44Kr44OALOOCouODhOOCtw0KK+ODleOCq+OCqizjg5/jg4Tjg5Ljg60NCivjg5Xjgqvjgqos44Of44K144KtDQor44OV44Kr44K7LA0KK+ODleOCr+ODgSzjg6jjgrfjg5Ljg60NCivjg5Xjgq/jg4As44Om44Km44KzDQor44OV44Kv44OALOODleODn+ODkuOCsw0KK+ODnuODhOOCq+ODryzjg5Ljg4fjgqoNCivjg5Xjgq/jg4As44Of44KrDQor44OV44Kv44OALOODpuOCreOCsw0KK+ODleOCr+ODgCzjgrHjg7PjgrgNCivjg5Xjgq/jg4/jg6ks44Om44Kt44KqDQor44OV44Kv44KkLOODkuODreOCtw0KK+ODleOCr+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjgq/jgqrjgqss44K344Oz44K0DQor44K344KsLOODiuOCquODiA0KK+ODleOCr+OCt+ODnizjgqLjg4TjgrcNCivjg5Xjgq/jgrfjg54s44OB44Kr44KzDQor44OV44Kv44K344OeLOODiuOCquOCrQ0KK+OCquOCquODjizjg4rjgqrjgq0NCivjg5Xjg4rjg4Qs44OI44K344Om44KtDQor44K044Km44OALOODqOODquOCsw0KK+OCtOOCpuODgCzjg5Ljg4fjgqLjgq0NCivjgrTjgqYs44Kr44Kk44Ot44KmDQor44Kz44Kw44OsLOOCreODs+ODpA0KK+OCtOODiOOCpizjgr/jgqvjgrcNCivjgrTjg4jjgqYs44Om44Kt44OoDQor44OP44KsLOODquODp+OCpuOCpOODgQ0KK+ODj+OCruODr+ODqSzjgq3jgq/jgqoNCivjg4/jg57jg4As44Ki44Kt44KqDQor44Oe44Ko44OALOOCseODs+OCpOODgQ0KK+ODj+ODnuODj+OCvyzjg47jg5zjg6sNCivjg4/jg57jg44s44OO44OW44OS44OtDQor44OP44OK44OW44K1LOODquODpeOCpuOCpOODgeODreOCpg0KK+ODj+ODiuOCvyzjg6jjgrfjgrgNCivjg4/jg4rjg5/jg4Qs44Oo44K344K/44KrDQor44OP44Oz44OALOOCueODn+ODiA0KK+ODj+ODqeODgCzjgqLjg6TjgrMNCivjg4/jg6njg4As44OV44Of44KqDQor44OP44Op44OALOOCuOODpeODs+OCpOODgQ0KK+ODj+ODqeODgCzjg57jgrXjg47jg6oNCivjg4/jg6ks44Oe44K144Om44KtDQor44OP44OpLOODn+ODpuOCrQ0KK+ODj+OCu+OCrOODryzjg57jgrPjg4gNCivjg4/jgrfjgrDjg4Es44Kk44K144KqDQor44OP44K344Oi44OILOODnuOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjg47jg6rjgq0NCivjg4/jgr/jgrHjg6Tjg54s44K144OI44K3DQor44OP44K/44OK44KrLOOCreODqOOCtw0KK+ODj+ODhOOCt+ODnizjgrHjg7MNCivjg4/jg4Pjg4jjg6os44Oo44K344OS44K1DQor44OP44OD44OI44OqLOODhOODjeODkuOCtQ0KK+ODj+ODg+ODiOODqizjg57jgrXjgrMNCivjg4/jg4Pjg4jjg6os44OV44Of44KqDQor44OP44OD44OI44OqLOODpuOCreODkuOCsw0KK+ODj+ODg+ODiOODqizjg6jjgrfjg47jg6oNCivjg4/jg6Tjgqvjg68s44Ki44Kt44OpDQor44OP44Ok44K344OALOODnuOCteODpA0KK+OCq+ODs+ODgCzjgrHjg7PjgrgNCivjg4/jg6Tjgrcs44Kz44Km44K4DQor44OP44Ok44K3LOODhOODqOOCtw0KK+ODj+ODpOOCtyzjg5Ljg63jgrcNCivjg4/jg6Tjgrcs44Kr44OE44OfDQor44OI44OT44Kr44OvLOODn+ODpuOCrQ0KK+ODkuOCsuOCvyzjg6jjgqbjgqTjg4ENCivjg5LjgrDjg4Es44Of44OE44OS44OtDQor44OS44Kw44OBLOODpuOCpuOCsw0KK+ODkuOCuOOCq+ODryzjg6jjgrfjg47jg6oNCivjg5LjgqvjgqQs44Oe44OJ44KrDQor44OS44OK44K/LOOCuOODpeODsw0KK+ODkuODjizjgrfjg6fjgqbjgqTjg4ENCivjg5Ljg44s44K/44Kr44Om44KtDQor44OS44Op44KuLOODpOOCueOCtw0KK+ODqOODouODgCzjgqvjgrrjg4gNCivjg5Ljg6njg44s44Oe44K144OO44OWDQor44OS44Op44OOLOODkuODreODpuOCrQ0KK+ODkuODqeOCteODryzjgqvjgrrjg5Ljg60NCivjg5Ljg6njgr8s44Oe44K144OS44OtDQor44Ki44K144OOLOODkuODreOCtw0KK+ODkuODqeOCvyzjg5LjgrXjgqoNCivjg5Ljg6njg4Tjgqss44K/44Kx44K3DQor44OS44Ot44Kr44OvLOODleODn+OCouOCrQ0KK+ODkuODreODiuOCqyzjgqvjgrrjg5LjgrUNCivjg5Ljg63jgrss44OS44K144Om44KtDQor44K/44K344OtLOOCreODn+OCsw0KK+ODkuODreOCuyzjg57jgrPjg4gNCivjg5Ljgrfjg4zjg54s44OS44Ot44OO44OWDQor44Kk44Ov44Oi44OILOOCuOODpeODsw0KK+ODkuOCpuODqSzjg5Ljg4jjgrcNCivjgrnjgq7jg6Ljg4gs44K744Kk44Kk44OBDQor44Ob44Oz44OeLOODpOOCueODpuOCrQ0KK+ODm+ODs+ODnizjg4Tjg6jjgrcNCivjg5vjg7Pjg54s44K/44Kk44OpDQor44Ob44Oz44OeLOOCv+ODhOODreOCpg0KK+ODm+ODquOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjg5vjg6rjgqos44Kr44OE44Oo44K3DQor44Ob44OqLOOCq+OCuuOCqg0KK+ODm+ODqizjgqLjg4TjgrcNCivjg5vjg6os44Kz44Km44Kk44OBDQor44Ob44K344OOLOOCt+ODs+OCuA0KK+ODm+OCt+ODjizjgqLjgq3jgrMNCivjg5vjgrfjg44s44OV44OI44K3DQor44Ob44K3LOODkuODreOCsw0KK+ODm+OCvSzjgqvjgrrjg58NCivjg5vjgr/jg4Ys44Om44KrDQor44Kk44OB44Kr44OvLOODpuODn+OCsw0KK+OCpOODgeOCq+ODryzjgrXjg4jjgrcNCivjgqTjg4Hjgq0s44K/44Kx44K3DQor44Kk44OB44OO44K7LOOCouODqg0KK+OCpOODgCzjg4rjgqrjgq0NCivjgqTjg4fjgqQs44Oe44K144Kr44K6DQor44Kk44Ks44Op44K3LOODpuOCpuOCuA0KK+OCpOOCsOODgSzjgrTjgqYNCivjgqTjgqTjg4As44Ko44Kk44K244OW44Ot44KmDQor44Kk44Kk44OALOODleOCuOOCqg0KK+OCpOOCpOOCuOODnizjg5Ljg63jg6bjgq0NCivjgqTjgqTjgrjjg54s44Kr44K644OO44OqDQor44Kk44Kk44Og44OpLOODqOOCt+ODjuODlg0KK+OCpOOCpOODjizjg5Ljg4fjgq0NCivjgqTjgqTjgrrjgqss44OS44Ot44K3DQor44Kk44Kk44K644KrLOOCq+ODhOODkuOCsw0KK+ODj+ODq+OCvyzjg4jjgrfjgrMNCivjgqTjgrHjg4As44OK44Kq44OS44OtDQor44K544K644KtLOODiOOCquODqw0KK+OCpOOCseODgCzjgq/jg4vjg5Ljg60NCivjgqTjgr3jg5ks44Kz44Km44K4DQor44Kk44Kx44Ok44OeLOOCueOCruOCqg0KK+OCpOOCr+OCvyzjg4jjgrfjgqLjgq0NCivjgqTjg57jgqTjgrrjg58s44OB44K644KzDQor44Oi44Oq44K344K/LOOCt+OCsuOCrQ0KK+OCpOODnuOCpCzjgr/jg4DjgrcNCivjgqTjg57jg6Djg6ks44Oe44OK44OWDQor44Kk44Oe44Og44OpLOODjuODquODpuOCrQ0KK+OCpOODiuODnyzjgrHjg7Pjg6QNCivjgqTjg47jgqbjgqgs44Ok44K544OS44OHDQor44Kk44OO44Km44KoLOODkuODreOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44K/44KrDQor44Kk44OO44Km44KoLOODn+ODhOOCsw0KK+OCpOODjOOCpCzjg6bjgq3jg4jjgrcNCivjgqTjgrfjg4As44Oe44OK44OWDQor44Kk44K344OALOODiOOCt+ODkuODrQ0KK+OCpOOCt+ODgCzjg6bjgr/jgqsNCivjgqTjgrfjgrDjg60s44Oe44OqDQor44Kk44K344Kw44OtLOODkuODreOCtw0KK+OCpOOCt+ODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrfjgqQs44Kr44Kq44OrDQor44Kk44K344KkLOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCpCzjgrPjgqbjgrgNCivjg6bjgq3jg57jgrUs44Oe44K144OI44K3DQor44Kk44K344Kr44OvLOOCv+OCq+OCtw0KK+OCpOOCt+OCq+ODryzjg6jjgqbjgrMNCivjgqTjgrfjgq/jg6ks44Om44K/44KrDQor44Kk44K344Oi44OqLOODkuODreOCouOCrQ0KK+OCpOOCt+ODouODiCzjg6rjgqgNCivjgqTjgrfjg6Ljg4gs44K144OB44KzDQor44Kk44K344Kq44KrLOODpuOCqw0KK+OCpOOCt+OCquOCqyzjg47jg5bjgqoNCivjgqTjgrfjg6/jgr8s44OK44Kq44OS44K1DQor44Kr44OzLOODqOOCpuOCpOODgeODreOCpg0KK+OCpOOCt+OCtuOCqyzjgqvjg6jjgrMNCivjgqTjgr3jgqzjgqQs44K/44Kr44OS44OtDQor44Kk44K/44OQ44K3LOOCt+ODs+OCpOODgQ0KK+OCpOOCv+ODkOOCtyzjgrfjgrLjgq0NCivjgrXjgq7jg6Qs44OS44OH44Ki44KtDQor44Kk44OI44KmLOODhuODhOODpA0KK+OCpOODiOOCpizjgqLjgrHjg58NCivjgqTjg4jjgqYs44OO44K+44OgDQor44Kk44OI44KmLOODiuOCquODqOOCtw0KK+OCpOODiOOCpizjgqvjgrrjgrfjgrINCivjgqTjg4jjgqYs44OK44Kq44Om44KtDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCteOCq+OCpCzjgrPjgqbjgqTjg4ENCivjgqTjg4jjgqYs44Kr44K644Om44KtDQor44Kk44Ov44KkLOOCq+OCquODqw0KK+OCt+ODnuODoOODqSzjg5XjgrXjg4HjgqsNCivjgqTjg6/jgqQs44Kt44On44Km44KzDQor44Kr44Ov44OK44KrLOOCq+OCuuODnw0KK+OCpOODr+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgqTjg6/jg6Ljg4gs44K144Ok44KrDQor44Kk44Ov44Oi44OILOODkuODh+OCouOCrQ0KK+OCv+OCseODgCzjgrXjg4HjgrMNCivjgqTjg6/jg6Djg6ks44OS44Ot44Om44KtDQor44Kk44Ov44OK44KsLOODkuODh+OCqg0KK+OCpOODr+OCqizjgrPjgqbjgqTjg4ENCivjgqTjg6/jgrXjgq0s44K/44OE44OS44KzDQor44Kk44Ov44K144KtLOODiOODqeODkuOCsw0KK+OCu+OCrOODryzjg57jgrXjgr/jgqsNCivjgqTjg6/jgrfjg60s44Oo44K344OS44K1DQor44Kk44K644OfLOODnuOCs+ODiA0KK+OCq+OCqOODquODpOODnizjg4rjgqrjgq0NCivjgqvjgqzjg58s44Kk44Kv44KqDQor44Kr44Ks44OfLOOCt+OCsuODqOOCtw0KK+OCq+OCuOOCv+ODiyzjgqvjgrrjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Ko44Kk44Kk44OBDQor44Kr44Kt44OM44OeLOODkuODreOCouOCrQ0KK+OCq+OCryzjg5Ljg63jg6bjgq0NCivjgqvjg57jg4As44Oe44Kz44OIDQor44Kk44OK44Ks44KtLOODnuOCteOCqA0KK+OCq+ODnuODouODiCzjgr/jgqjjgrMNCivjgqvjg57jgr/jg4ss44OK44Kq44OV44OfDQor44Kr44Oe44K/LOODiOODouOCsw0KK+ODpOODnuODgCzjgqjjgqTjgrgNCivjgqvjg6Hjg4As44Ki44Kt44KzDQor44Kr44Oh44OkLOODkuODh+OCrQ0KK+OCq+ODnyzjg57jgrPjg4gNCivjgqvjg5/jgqos44Oe44OK44OfDQor44Kr44Of44OkLOODnuOCteODjuODqg0KK+OCq+ODouODiCzjg6jjg6rjgrMNCivjgqvjg4rjg4As44Oe44K144K/44KrDQor44Kr44OK44KkLOOCreODp+OCpuOCsw0KK+OCq+ODiuOCpCzjg6rjgqjjgrMNCivjgqvjg4rjgrbjg68s44K144OA44Kk44OBDQor44Kr44Oz44OALOOCv+OCq+ODkuODrQ0KK+OCq+ODjeOCpOODgSzjgqLjgq3jgqoNCivjgqvjg43jgrMs44OS44Ot44OW44OfDQor44Kr44ON44KzLOODnuOCueOCqg0KK+OCq+ODjeOCsyzjgrfjg6XjgqbjgrgNCivjgqvjg43jgrMs44K/44Kx44OS44KzDQor44Kr44ON44KzLOODpOOCqA0KK+OCq+ODjeOCsyzjg5LjgrXjgrcNCivjgqvjg43jg57jg6ss44Ki44OE44K3DQor44Kr44Oq44OkLOODqOOCt+ODjuODlg0KK+OCq+ODq+ODmSzjgq3jg6fjgqbjgrgNCivjgqvjgrfjg54s44OS44Ot44Om44KtDQor44Kr44K344Ov44KuLOODqOOCt+ODpuOCrQ0KK+OCq+OCt+ODr+OCrizjg5Ljg63jgrcNCivjgqvjgrnjg6Qs44Kx44Kk44K0DQor44Kr44K544OkLOOCt+ODp+OCpuOCsw0KK+OCq+OCueODpCzjgr/jgqvjgrcNCivjgqvjgr/jg44s44Kx44Oz44Kk44OBDQor44K344Op44KtLOOCq+ODhOOCqg0KK+OCq+OCv+OCquOCqyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqvjgr/jgqrjgqss44Ki44OE44K3DQor44Kr44K/44Ok44OeLA0KK+OCq+ODiOOCpizjgr/jg4bjgqoNCivjgqvjg4jjgqYs44OS44Ot44K3DQor44Kr44OI44KmLOODkuODreOCsw0KK+OCq+ODiOOCpizjg5Ljg63jg6QNCivjgqvjg4jjgqYs44K/44Kx44K3DQor44K044OI44KmLOODkuODreOCq+OCug0KK+OCq+ODhOODpCzjg5Ljg63jgrcNCivjgqvjg6/jg4As44Of44OB44KqDQor44Kr44Ov44OALOOCteODgeOCsw0KK+OCq+ODr+OCsOODgSzjgrXjg4jjgrcNCivjgqvjg6/jg4/jg6ks44K744Kk44Kk44OB44Ot44KmDQor44Kr44Ov44OP44OpLOODkuODreOCouOCrQ0KK+OCq+ODr+ODj+OCvyzjg5Ljg63jg6bjgq0NCivjgqvjg6/jgqQs44K444Ol44Oz44Kk44OBDQor44Kr44Ov44KkLOOCq+ODqOOCsw0KK+OCq+ODr+OCpCzjg5/jg5sNCivjgqvjg6/jgqvjg58s44K/44Kx44K3DQor44Kr44Ov44Kt44K/LOODiOODouOCouOCrQ0KK+OCq+ODr+OCreOCvyzjg6TjgrnjgrMNCivjgqvjg6/jg6Djg6ks44Om44Kt44Oe44K1DQor44Kr44Ov44Og44OpLOODpuOCrQ0KK+OCq+ODr+ODoOODqSzjg57jgrXjg6bjgq0NCivjgqvjg6/jgr7jgqgs44Of44OKDQor44OV44K/44Kv44OBLOOCv+ODgOOCtw0KK+OCreODgCzjg6Tjgrnjg5Ljg60NCivjgq3jg4As44Oo44K344OV44OfDQor44Kt44OJLOOCouOCreOCqg0KK+OCreODj+ODqSzjgqvjg4Tjg4jjgrcNCivjgq3jgq/jg4Es44Kz44Km44K4DQor44Kt44Kv44OBLOOCouOCpOOCsw0KK+OCreOCr+OCvyzjgqTjgrXjgqoNCivjgq3jg6Ljg4gs44Kr44K644Oe44K1DQor44Kt44Og44OpLOODn+ODjuODqw0KK+OCreODoOODqSzjg4rjg5vjg58NCivjgq3jg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Kt44Og44OpLOOCueODn+ODkuODrQ0KK+ODnuODhOODouODiCzjgr/jgq/jg63jgqYNCivjgq3jg6Djg6ks44OI44K344KqDQor44Kt44Og44OpLOOCuOODpeODs+OCsw0KK+OCquOCq+OCtuOCrSzjgr/jgrHjgqoNCivjgq3jg6Djg6ks44Om44KrDQor44Kt44Og44OpLOOCouODhOOCtw0KK+OCreODjuOCt+OCvyzjgrHjgqTjgrMNCivjgq3jgrcs44Kt44Of44OS44KzDQor44Kt44K5LOOCuOODpeODs+OCsw0KK+OCreOCv+OCq+OCvCzjg47jg5bjgq0NCivjgq3jgr/jg6Djg6ks44Ki44Kt44KqDQor44Kt44Km44OBLOODiuOCquODiA0KK+OCreOCpuODgSzjgr/jgqvjgr7jgqYNCivjgq3jg6jjgr8s44OA44Kk44K544KxDQor44Kz44OQ44Ok44K3LOODnuOCteODj+ODqw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Of44Oo44KzDQor44Kz44OQ44Ok44K3LOODqOOCt+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgr/jgqvjgrcNCivjgrPjg5Djg6Tjgrcs44OS44OH44Ki44KtDQor44Kz44OQ44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqoNCivjgrPjg5Djg6Tjgrcs44OS44Ot44OS44OHDQor44OS44Ot44K7LOODj+ODq+OCqg0KK+OCs+ODh+ODqSzjgqLjgq3jg5Ljg60NCivjgrPjgqzjgqQs44OS44K144K/44KrDQor44Kz44Kw44OsLOOCq+OCuuOCqg0KK+ODouODquOCvyzjg5/jg4Hjg5LjgrMNCivjgrPjg6Ljg4gs44Oo44Km44K544KxDQor44Kz44Oz44OOLOOCouOCreODkuODrQ0KK+OCs+OCteOCqyzjg6jjgrfjg6bjgq0NCivjgrPjgqTjgrEs44Kt44Oo44K3DQor44Kz44Kk44KxLOODqOOCpuOCpOODgQ0KK+OCs+OCpOOCtyzjgqLjgq3jgqoNCivjgrPjgrjjg54s44Kr44K644K/44KrDQor44Kz44K444OeLOODhuODhA0KK+OCs+OCr+ODmyzjgqvjg4Tjg6QNCivjgrPjgq/jg57jgqQs44Of44Ko44KzDQor44Kz44Oe44Ks44K/LOODnuOCs+ODiA0KK+OCs+ODnuOCrSzjgqvjgrrjg6bjgq0NCivjgrPjg57jg4Qs44Oo44Km44Kk44OBDQor44Kz44Oe44OELOOCouODhOOCtw0KK+OCs+ODn+ODjSzjgqvjg4Tjg47jg6oNCivjgrPjg5/jg6Tjg54s44Oo44K344OO44OWDQor44Kz44Oi44Kq44KrLOODleODn+OCqg0KK+OCs+ODouODqizjgrfjgrLjg47jg6oNCivjgrPjg7Pjg4ks44OS44Ot44K3DQor44Kz44Oz44OJLOODn+OCreOCqg0KK+OCs+ODs+ODiSzjg6jjgrfjgr7jgqYNCivjgrPjg7Pjg4ks44K/44Kr44Om44KtDQor44Kz44Oz44OJ44KmLOOCv+ODhOODiA0KK+OCs+ODs+ODjizjg4bjg4TjgqoNCivjgrPjgrnjgq4s44Oo44Km44Kk44OBDQor44Kz44Km44OALOODiOOCt+ODpuOCrQ0KK+OCs+ODpOODiuOCrizjg47jg5bjg5LjgrMNCivjgq/jg5zjgr8s44OS44Ot44Om44KtDQor44Kv44Oc44K/LOODiuOCquOCrQ0KK+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgq/jg4njgqYs44K044KmDQor44Kv44KsLOOCt+OCsuODqw0KK+OCr+OCuOODnizjgqjjg6oNCivjgq/jg57jg4As44OS44Ot44K3DQor44Kv44Oe44KtLOODnuOCrQ0KK+OCr+ODnuOCr+ODqSzjgqvjg4Tjg4gNCivjgq/jg57jg6Ljg4gs44Ki44Kt44OS44KzDQor44Kv44Oi44Kr44OvLOODkuODreODjuODqg0KK+OCr+ODqeOCt+ODnizjgrPjgqbjgqTjg4ENCivjgq/jg6rjg4/jg6ks44Kz44Km44K4DQor44Kv44Oq44OP44OpLOODpuODn+OCsw0KK+OCr+ODquODoOODqSzjgrfjg6XjgqbjgrgNCivjgq/jg6rjgrks44OS44Ot44K3DQor44Kv44Oq44Ok44OeLOODpuOCreOCqA0KK+OCr+ODquODpOODnizjgrjjg6Xjg7PjgqTjg4ENCivjgq/jg63jg4As44Ki44Kt44OpDQor44Kv44Ot44Kr44OvLOODkuODreOCtw0KK+OCr+ODreOCrSzjg47jg5bjg6QNCivjgq/jg63jgrXjgq0s44OO44OW44Ki44KtDQor44Kv44Ot44K5LOODkuODreOCtw0KK+OCr+OCt+ODgCzjg6/jgr/jg6sNCivjgq/jgrnjg4As44Oo44K344KzDQor44Kv44Ov44OQ44OpLOOCpOODgeODreOCpg0KK+OCpuODgeODgCzjgrHjgqTjgqTjg4ENCivjg57jgqjjg4As44Ok44K544OS44KzDQor44OL44OvLOOCt+OCsuODn+ODhA0KK+ODnuOCqOODkuODqSzjg57jgrXjg4gNCivjg57jgqjjgqvjg68s44OS44OH44K/44KrDQor44Oe44Kt44Og44OpLOODkuODreODn+ODhA0KK+ODnuOCreODjizjg6bjgqbjgrgNCivjg57jgq3jg44s44Oe44OqDQor44Oo44Km44Kz44K/LOODn+ODgeODpOOCuQ0KK+ODnuODq+ODpOODnizjgr/jg4DjgrcNCivjg57jgrnjg4As44Of44Kt44KqDQor44Oe44K544OALOODhuODq+OCouOCrQ0KK+ODnuOCueODkuODrSzjgq3jg58NCivjg57jgrnjg6Tjg54s44K/44Kv44K4DQor44Oe44OE44OQ44OpLOOCs+OCpuOCuA0KK+ODnuODhOODkOODqSzjg6Tjgrnjg4rjg6oNCivjg57jg4Tjg4DjgqTjg6ks44Oe44K144OIDQor44Oe44OE44OALOOCt+OCsuOCqg0KK+OCteOCteODouODiCzjgrXjg6bjg6oNCivjg57jg4Tjg4As44OI44K344OfDQor44Oe44OE44OV44K1LOOCq+ODhOOCuA0KK+ODnuODhOOCpCzjg4jjgqrjg6sNCivjg57jg4TjgqQs44K444Ol44Oz44Kk44OBDQor44Oe44OE44KtLOOCouOCreODkuOCsw0KK+OCq+ODjuOCpizjg5Ljg63jg6bjgq0NCivjg57jg4Tjg6Ljg4gs44Om44Km44Kk44OBDQor44Oe44OE44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODnuODhOODouODiCzjg5XjgrjjgqoNCivjg4/jgrfjg6Ljg4gs44K344On44Km44K4DQor44Oe44OE44Og44OpLOOCreODi+ODgQ0KK+ODnuODhOODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg4rjg58s44OS44Ot44Om44KtDQor44Oe44OE44OK44OfLOODpuOCreOCqg0KK+ODgeODkCzjg4bjg4Tjg6QNCivjg57jg4Tjgrfjg5As44Kz44Km44Kk44OBDQor44Oe44OE44K344K/LOODkuODreOCtw0KK+ODnuODhOOCt+OCvyzjgqjjgqTjgqTjg4ENCivjg57jg4Tjgqbjg6ks44Kk44OB44Ot44KmDQor44Oe44OE44K244KtLOOCv+ODgOOCtw0KK+OCpOODnuOCpCzjg57jgrXjg6bjgq0NCivjg57jg6bjg6Tjg54s44Ki44OE44K3DQor44Oh44OzLOODnuOCteODiA0KK+ODn+ODgeOCrOODnyzjg47jg6rjgqoNCivjg5/jg4/jg6ks44OP44Or44KzDQor44Of44KtLOOCouODhOOCtw0KK+ODn+ODouODqizjg5Ljg63jgrcNCivjg5/jg4rjg5/jgrDjg4Es44Kr44OK44OhDQor44Of44OK44K644KtLOODiuOCquODpuOCrQ0KK+ODn+ODjeODoOODqSzjg6bjgqvjg6oNCivjg5/jgrfjg4os44Kr44K644OS44OtDQor44Of44OE44KkLOOCv+OCseODj+ODqw0KK+ODn+OCpuODqSzjg6jjgqbjgqTjg4ENCivjg5/jgqbjg6ks44Kx44Oz44Kk44OBDQor44Og44Op44Kr44OfLOODnuOCteODj+ODqw0KK+ODn+ODryzjgrfjgrLjg6bjgq0NCivjg5/jg6Tjgqzjg68s44Oe44K144KqDQor44Of44Ok44KuLOODn+ODgeOCsw0KK+ODn+ODpOODj+ODqSzjg4jjgrfjgqoNCivjg5/jg6Tjg4/jgrcs44Kt44On44Km44KzDQor44Of44Ok44Kr44OvLOODnuOCteODiOOCtw0KK+ODn+ODpOOCrSzjg57jgrXjgrrjg58NCivjg5/jg6Tjg6Ljg4gs44K744Kk44K4DQor44Of44Ok44Oi44OILOODkuODreOCtw0KK+ODn+ODpOODouODiCzjg57jgrXjg5Ljg60NCivjg5/jg6TjgrXjgqss44OK44Kq44KtDQor44Of44Ok44K/44KxLOOCt+OCsuODnw0KK+ODn+ODpOOCvyzjg4jjgrfjg5Ljg60NCivjg5/jg6Tjgr8s44Om44Km44K4DQor44Of44Ok44K/LOODnuOCteODn+ODgQ0KK+OCr+ODreODgCzjgrHjgqTjgrMNCivjg5/jg6jjgrcs44OK44Kq44KzDQor44Of44K644Kz44K3LOODnuOCreOCqg0KK+ODn+OCuuOCs+OCtyzjg4jjgrfjgqoNCivjg5/jgrrjg44s44K/44OE44OkDQor44Of44K644OOLOODjuODluODj+ODqw0KK+ODn+OCuuOCv+ODiyzjgrfjg7PjgrgNCivjg6Ljg6os44K344On44Km44K4DQor44Oi44OqLOODjuODquOCsw0KK+ODouODquOCq+ODryzjgqLjgq3jgrMNCivjg6Ljg6rjgq0s44Ok44K544OS44OtDQor44Oi44Oq44K344K/LOODqOOCt+ODnw0KK+ODouODquOCvyzjgr/jg4DjgrcNCivjg6Ljg6rjgr8s44Kr44K644OS44OtDQor44Oi44Oq44Ok44OeLOODiOOCt+OCqg0KK+ODouODquOCvuODjizjg4Tjg6jjgrcNCivjg6Ljg6os44K144OI44OrDQor44Oi44OqLOOCq+ODhOODiOODnw0KK+ODouODqizjg6TjgrnjgqoNCivjg6Ljg6os44OS44Ot44OO44OqDQor44Oi44Ot44K644OfLOODjuODnOODqw0KK+OCpOODjuODj+ODiizjgqvjgrrjgqoNCivjgrPjgrjjg54s44K344Oz44K0DQor44Og44Kr44KkLOOCv+ODhOODnw0KK+ODoOOCq+OCpCzjgrXjg4HjgqoNCivjg6Djg6njgqQs44OB44OK44OEDQor44Og44Op44Kr44OfLOODiOOCquODqw0KK+ODoOODqeOCq+ODnyzjg4Hjg4/jg6sNCivjg6Djg6njg57jg4Qs44Oe44K144Kr44K6DQor44OL44OvLOOCq+ODhOODkuODrQ0KK+ODoOODqeOCvyzjgrXjg4jjgrcNCivjg6Djg6njgr8s44Kk44OB44Ot44KmDQor44Kq44Kq44OOLOOCv+OCq+OCtw0KK+ODoOODqeODpOODnizjg4Hjg4/jg6sNCivjg6Djg4jjgqYs44OS44Ot44OkDQor44Og44OI44KmLOOCv+OCq+OCtw0KK+ODoOODiOOCpizjgqLjg57jg40NCivjg6Djg4Tjgrfjgqss44Ko44Kk44Kk44OBDQor44OK44Ks44KkLOODkuODreOCtw0KK+ODiuOCrOOCpCzjgqvjg4Tjg6bjgq0NCivjg4rjgqzjg6Ljg4gs44Kx44Oz44Kk44OBDQor44Ki44Op44KkLOOCv+OCseODiOOCtw0KK+ODiuOCrOOCqizjg6Tjgrnjg4rjg6oNCivjg4rjgqzjgrXjg68s44Ki44OE44K3DQor44OK44Ks44K144OvLOOCq+OCuuODiA0KK+ODiuOCrOODpOODnizjgqLjgq3jg5Ljg60NCivjg4rjgqTjg4jjgqYs44OV44K144OO44OWDQor44OK44Kk44OI44KmLOOCq+ODhOOCqg0KK+ODiuOCq+ODkOODpOOCtyzjgqvjgrrjg5LjgrUNCivjg4rjgqvjg4Djg4Ys44Kz44Km44Kk44OBDQor44OK44Kr44Ks44KtLOODnuOCteODjuODqg0KK+ODiuOCrOOCqCzjgr/jgqvjg6bjgq0NCivjg4rjgqvjgqzjg68s44OG44Or44K4DQor44OK44Kr44Ks44OvLOODiOOCt+ODpuOCrQ0KK+ODiuOCq+OCtOODoSzjg6jjgrfjg4rjg6oNCivjg4rjgqvjg5Ljg6ks44Om44K/44KrDQor44OK44Kr44KkLOOCqOODn+OCsw0KK+ODiuOCq+OCuOODnizjgqvjg4Tjg4jjg6INCivjg4rjgqvjgrjjg54s44Of44Ko44KzDQor44OK44Kr44K444OeLOODiuOCquODpA0KK+ODiuOCq+OCuOODnizjgqjjg6oNCivjg4rjgqvjgrjjg54s44OE44ON44Ki44KtDQor44OK44Kr44K444OeLOOCseOCpOOCpOODgQ0KK+ODiuOCq+OCuOODnizjg4rjgqrjg5Ljg4cNCivjg4rjgqvjg57jgr8s44OO44Oq44OS44OtDQor44OK44Kr44Of44OBLOOCt+ODpeODs+OCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjg57jgrXjgq0NCivjg4rjgqvjg6Djg6ks44OI44K344Ki44KtDQor44OK44Kr44Og44OpLOODnuOCs+ODiA0KK+ODiuOCq+ODoOODqSzjg4bjg6vjg5Ljg60NCivjg4rjgqvjg6Djg6ks44K344Oz44K4DQor44OK44Kr44Og44OpLOODj+OCuOODoQ0KK+ODiuOCq+ODoOODqSzjg47jg6rjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44Om44KtDQor44OK44Kr44Og44OpLOOCq+OCuuODkuOCsw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4rjgqvjg6Djg6ks44OK44Kq44KtDQor44OK44Kr44OL44K3LOODiOOCt+OCouOCrQ0KK+OCquOCquODi+OCtyzjg57jgrXjg47jg6oNCivjg4rjgqvjg4vjgrcs44OI44K344Om44KtDQor44OK44Kr44OL44K3LOODjuODluODpOOCuQ0KK+ODiuOCq+ODjizjgq3jg6jjgr/jgqsNCivjgqrjgqvjgrbjg68s44Kr44Oo44KzDQor44OK44Kr44OOLOODjuOCvuODnw0KK+ODiuOCq+ODjizjg6jjgrfjg5Xjg58NCivjg4rjgqvjg44s44Oi44Ko44KzDQor44OK44Kr44Kq44KrLOODhuODhOODpA0KK+ODiuOCq+OCqizjg5Xjg5/jgrMNCivjg4rjgqvjgqos44Ko44Kk44K4DQor44OK44Kr44K7LOOCs+OCpuOCtw0KK+ODiuOCq+OCveOCrizjg57jgrXjg4jjg58NCivjg4rjgqvjgr8s44K344Ky44KzDQor44OK44Kr44OE44KrLOOCv+OCq+OCtw0KK+ODiuOCq+ODhOOCqyzjg57jgrPjg4gNCivjg4rjgqvjg6Tjg54s44OS44OH44KtDQor44OK44Kr44Ok44OeLOOCouODhOOCtw0KK+ODiuOCq+ODpOODnizjgr/jg4Tjg6QNCivjg4rjgqvjg6Tjg54s44Kz44Km44OY44KkDQor44OK44Kr44Ok44OeLOOCq+ODhOODkuOCsw0KK+ODiuOCq+OCtuODryzjg5/jg4TjgrANCivjg4rjg5/jgq0s44Kv44OL44KqDQor44OK44Op44K344OeLOODnuOCteOCouOCrQ0KK+ODiuODqSzjgr/jgrHjg5LjgrMNCivjgq/jg4njgqYs44OS44K144K3DQor44OK44OE44OOLOODn+ODgeODj+ODqw0KK+ODiuODhOODpOODnizjg6bjgqbjgrMNCivjgqjjg4jjgqYs44OS44Ot44K3DQor44OL44OY44KkLOOCv+OCq+OCtw0KK+OCquOCr+ODjizjgrXjg6bjg6oNCivjg57jgqjjg5vjg6os44OS44Ot44OfDQor44OL44K344OALOODkuODiOOCtw0KK+ODi+OCt+OCsOODgSzjgr/jg4TjgqoNCivjg6Ljg6os44Om44Kt44KzDQor44OL44K344Kr44OvLOODnuOCteOCtw0KK+ODi+OCt+OCr+ODqSzjgrfjgrLjg6sNCivjg4vjgrfjg6Ljg4gs44Oe44K144KtDQor44OL44K344KqLOODiOOCt+ODkuOCsw0KK+ODi+OCt+ODr+OCrSzjgrHjgqTjgrMNCivjg4vjgrcs44Oe44K144OrDQor44OL44OvLOODnuOCteOCrQ0KK+ODjuODluODnuOCtSzjg5/jgrXjg4gNCivjg47jg4As44Oi44OI44OS44KzDQor44OO44Kw44OBLOOCv+OCq+OCtw0KK+ODjuOCsOODgSzjgrHjg7MNCivjg47jg5vjg6os44OS44OH44Om44KtDQor44OO44K/44OLLOODnuOCteOCv+OCsQ0KK+ODjuODnizjgrXjg4jjgrcNCivjg47jg5/jg6Tjg54s44OI44K344Ot44KmDQor44OO44Oi44OILOODiOOCt+OCouOCrQ0KK+OCv+ODs+OCtuODsyzjg5/jg4HjgqoNCivjgqrjgqrjgqvjg68s44Kr44K644OS44KzDQor44OO44OO44Ok44OeLOODnuOCteOCrQ0KK+ODjuODquOCq+ODjSzjg57jgrXjg6sNCivjg47jg60s44K744Kk44Kk44OBDQor44OOLOOCt+ODs+OCpOODgQ0KK+OCquODkOODiizjg5Ljg63jgrcNCivjgqrjg5Pjg4rjgr8s44Ki44Kt44OS44KzDQor44Kq44OB44Ki44KkLOODqOOCt+ODjuODqg0KK+OCt+ODnuODoOODqSzjg5Ljg63jgrcNCivjgqrjg4Djg40s44Oo44K344Kr44K6DQor44Kq44Ks44OvLOODiuOCquODnw0KK+OCquOCsOODqSzjg5Ljg4fjg4jjgrcNCivjgqrjgrDjg6ks44K744Kk44K4DQor44Kq44Kw44OpLOOCt+ODs+OCueOCsQ0KK+OCquOCquOCsOODrSzjgqTjg6/jgqoNCivjgqrjgqrjg5Djg6Tjgrcs44Kx44Kk44K+44KmDQor44Kq44Kq44OQ44Ok44K3LOODpOOCueODpuOCrQ0KK+OCquOCquODkCzjgqjjg6rjgrMNCivjgqrjg4Es44K344Oz44K0DQor44Kq44Kq44OHLOODiOOCt+ODkuOCsw0KK+OCquOCquODm+ODqizjg47jg6rjgqoNCivjgqrjg5ss44Kz44K544KxDQor44Kq44Kq44Kk44K3LOODouODiOOCpOODgQ0KK+OCquOCrSzjg6jjgrfjg6bjgq0NCivjgqrjgqrjgq/jg5ws44Oe44K144OS44OtDQor44Kq44Kq44Kv44OcLOODnuOCteOCr+ODiw0KK+OCquOCquODn+ODgSzjgr/jgrHjg47jg6oNCivjgqrjg6Djg6ks44OE44ON44Ki44KtDQor44Kq44Kq44OL44K3LOOCpOOCteOCqg0KK+OCquODjizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqrjg6njgqQs44K544K544OgDQor44Kq44K144KtLOOCteODiOOCtw0KK+OCquOCquOCteODryzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgqrjgqrjgrXjg68s44K/44OA44K3DQor44Kq44Kq44K144OvLOODquODpeOCpuOCuA0KK+OCquOCquOCv+ODiyzjgrHjg7PjgrgNCivjgqrjgqrjgr8s44OK44Kq44KtDQor44Kq44Kq44OI44OiLOOCouOCreOCqg0KK+OCquOCtuOCrSzjgrPjgqbjgrgNCivjgqrjgqrjg4Tjgqss44K/44Kx44K3DQor44Kq44Kq44OE44KrLOODiOOCt+ODreOCpg0KK+OCquOCquODhOOCrSzjg4bjg4Tjg6QNCivjgqrjgqrjg6Qs44Oe44K144OS44OtDQor44Kq44OS44OjLOOCr+ODi+ODkuOCsw0KK+OCquOCquODpCzjgrnjgrDjg6sNCivjgqrjgqvjg4As44OE44Kw44KqDQor44Kq44Kr44OALOODqOOCt+ODkuODrQ0KK+OCquOCq+ODgCzjg4jjgrfjg5Ljg60NCivjgqrjgqvjg4As44K344Oz44Kk44OBDQor44Kq44Kr44OP44OpLOODkuODreOCrQ0KK+OCquOCq+ODouODiCzjg6jjgrfjgqoNCivjgq/jgrXjg5As44OS44Ot44K3DQor44Kq44Kr44Og44OpLOODnuOCteOCq+OCug0KK+OCquOCq+ODoOODqSzjg57jgrXjgq0NCivjgqrjgqvjg44s44OS44Ot44K3DQor44OI44OT44K/LOOCt+ODpeOCpuODmOOCpA0KK+ODm+OCveOCq+ODryzjgrPjgqbjgrgNCivjgqbjgqjjg4As44OI44Oo44Kr44K6DQor44Kz44K744KtLOODpuODnw0KK+OCv+OCtuODryzjgrfjg6Xjg7PjgrgNCivjg6Tjg57jgrbjgq0s44Oo44K344Kr44K6DQor44Ko44Kw44OBLOODkuODreODpuOCrQ0KK+ODouODgeODgCzjgrnjgrnjg6ANCivjgqLjgq3jg6Ljg4gs44Kt44Ko44KkDQor44OL44K3LOOCouODhOOCrQ0KK+OCpOODnuOCpOOCtyzjgrfjgrLjg4jjgrcNCivjgr/jgqvjg6Tjgrks44OO44OW44Oo44K3DQor44OP44K/LOODnuOCteODpuOCrQ0KK+ODleOCuOOCteODryzjgqLjgq3jg6kNCivjg6Djg4jjgqYs44OS44K144K3DQor44Oi44K/44KkLOOCt+ODs+OCpOODgQ0KK+OCv+ODgCzjgr/jgqvjg6bjgq0NCivjgrPjgqTjgrrjg58s44Kr44K644Oo44K3DQor44OE44Oc44Kv44OpLOOCs+OCpuOCvuOCpg0KK+ODkuODqeODkOODpOOCtyzjg5Ljg63jgrgNCivjg4Tjgrjjgqvjg68s44OS44Ot44Kr44K6DQor44Of44OE44Kk44K3LOOCu+OCpOOCpOODgQ0KK+ODpOODnuOCt+OCvyzjgrHjg7PjgrgNCivjg57jg6vjgqrjgqss44OO44OW44K/44KrDQor44OV44Kr44KqLOODiOOCquODqw0KK+ODhOODoOODqSzjgqvjg4rjgrMNCivjg57jg6bjg58s44OI44K344KoDQor44Ki44Op44Kr44OvLOODn+ODieODqg0KK+OCquODleODgSzjgrjjg6Xjg7MNCivjgrXjgrXjg6Ljg6os44Om44K/44KrDQor44K144OI44KmLOOCouOCreODqQ0KK+OCv+OCq+OCrizjg57jgrPjg4gNCivjgr/jg4rjgqss44Oe44K144Of44OEDQor44OE44Oc44K0LOODleODn+ODkuOCsw0KK+ODiOODquOCteODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjgrDjgq0s44Kx44Kk44K0DQor44OP44K744Ks44OvLOODiOODouODpuOCrQ0KK+ODj+ODpOOCtyzjgrPjgqbjgrgNCivjg5Ljg6njg6Tjg54s44K344Ky44OrDQor44OV44Kv44K344OeLOODiOOCt+OCrQ0KK+ODnuODhOOCt+ODnizjgqvjgrrjg5Ljg60NCivjg6jjgrfjgqQs44OS44OH44KtDQor44Kk44K344KkLOODjuODquOCsw0KK+OCpOODnuOCpCzjg5/jg6bjgq0NCivjg4rjgqvjg4Tjgrgs44Om44Kt44KoDQor44Ob44Kk44OALOODhOODjeOCqg0KK+OCteODr+ODj+OCvyzjg5/jg4Tjg6sNCivjgr/jg4/jg6ks44K344On44Km44K4DQor44K/44Kr44OP44K3LOODn+ODjeODnuOCtQ0KK+OCueOCuuOCrSzjg5Ljg4fjgqLjgq0NCivjg6jjgrPjg6Tjg54s44Kx44Oz44K4DQor44Kk44K344Kr44OvLOOCseODs+OCuA0KK+OCouOCteODjizjg6jjgrfjgr/jgqsNCivjgqvjg43jgrMs44K344Ol44Km44K4DQor44Kv44Ot44K7LOODqOOCpuOCueOCsQ0KK+OCteOCq+OCreODkOODqSzjgqLjg6njgr8NCivjgqvjgrXjg54s44Kx44Kk44KzDQor44K544Ku44Ok44OeLOODqOOCt+ODnuOCtQ0KK+OCueODgCzjg4bjg4Tjg6QNCivjgr/jg4rjgqss44Ki44OkDQor44OE44Oc44KkLOOCqOODhOOCsw0KK+ODj+OCt+ODouODiCzjg4HjgqjjgrMNCivjg5Xjgq/jg4Es44K144OI44OfDQor44Ki44Op44KkLOODiOODouOCsw0KK+OCv+ODiuOCqyzjgrHjg7PjgrgNCivjg6Tjgrfjg54s44OK44Kq44Om44KtDQor44Kr44Ov44Oe44K/LOOCv+OCseODjuODqg0KK+OCueODs+ODgCzjgqLjg4Tjg6QNCivjg5/jgrrjgr/jg4ss44Of44OO44OrDQor44Ok44Oe44Kz44K3LOODjuODquODpuOCrQ0KK+OCouODnuOCrOODpCzjg6bjg6Hjg44NCivjgqLjg6njgq0s44OS44K144OoDQor44Kk44Oe44KkLOODiOOCt+ODj+ODqw0KK+OCpOODnuOCtuOCrSzjgr/jgqvjg5LjgrUNCivjgq3jg6Djg6ks44Kr44OE44OS44OHDQor44K544Ku44Ok44OeLOOCpOOCteOCqg0KK+OCueOCuuOCrSzjg4DjgqTjgrnjgrENCivjg4Tjg6ss44Of44OO44OrDQor44OP44Kz44K244KtLOOCouOCreODqQ0KK+OCv+OCreOCtuODryzjg4Tjg6jjgrcNCivjgqTjg4jjgqYs44Kr44K644OO44OWDQor44Oe44K544OALOODqOOCt+ODjuODqg0KK+ODhOODkOOCrSzjg4HjgqLjgq0NCivjg5/jgrnjg58s44OB44Kr44KzDQor44Ok44Kk44K/LOODnuOCrQ0KK+OCq+ODr+ODhCzjg5Ljg4jjgrcNCivjg4Tjgqvjg4As44K/44Kx44OS44KzDQor44OK44Kr44Oi44OILOODleODn+OCsw0KK+ODleODiuODk+OCrSzjgrXjg4rjgqgNCivjg6jjgrfjgrbjg68s44Kt44On44Km44KzDQor44OI44Km44OeLOODqOOCpuOCsw0KK+OCu+OCrSzjg57jg6oNCivjg6Djg6njgr8s44OK44Kq44KtDQor44Kr44K/44Ok44OeLOODnuOCteODkuODrQ0KK+OCreODiSzjgrfjg6XjgqbjgrgNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44K344OO44Of44OkLOODiOODouOCq+OCug0KK+OCv+ODiuOCqyzjgqvjgrrjg6bjgq0NCivjg4/jg6ks44Oo44K344OO44OqDQor44Oi44Oq44K/44OLLOOCt+ODp+OCpuODmOOCpA0KK+OCpOODgeODjuOCuyzjgqvjgrrjg6bjgq0NCivjg5Xjgrjjg6Ljg4gs44Kr44OE44Om44KtDQor44Km44Ko44OOLOOCs+OCpuOCuA0KK+OCt+OCt+ODiSzjg4jjgrfjg47jg6oNCivjg5/jgqbjg6ks44K544K544OgDQor44Km44OB44OALOODq+ODn+OCsw0KK+ODieOCpCzjgrPjgqbjgqTjg4ENCivjgr3jgrnjg58s44OI44K344Om44KtDQor44Oo44K344OALOODnuOCteODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjgqoNCivjg6Tjg57jgrDjg4Es44OK44Ko44KzDQor44K144K1LOODpuOCreOCsw0KK+ODj+OCu+OCrOODryzjgqvjgqrjg6oNCivjgqLjg4Tjgr8s44Oo44K344KqDQor44Kk44OB44Kr44OvLOODnuOCteOCouOCrQ0KK+OCpuODjizjgrXjg4jjg58NCivjgqrjgqzjg68s44Om44Kt44KzDQor44Kq44OALOODkuODreOCq+OCug0KK+OCv+OCq+OCteOCrSzjg57jgq3jgrMNCivjgr/jgqvjg4/jgrcs44OE44Oo44K3DQor44K/44OALOOCv+ODgOOCtw0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjg4jjgq/jg4rjgqws44OS44Ot44K3DQor44OI44Of44K/LOOCuOODpeODs+OCsw0KK+ODiuOCpOODiOOCpizjg6rjgqgNCivjg4/jg6njg4As44Ko44Of44KzDQor44OS44Op44Kr44OvLOODiOODouOCsw0KK+ODleODiuODouODiCzjg5Ljg63jgr/jgqsNCivjg4njg5Djgrcs44Om44KtDQor44Of44Km44OpLOODgeOCsw0KK+ODqOOCt+ODgCzjg5Ljg63jgqLjgq0NCivjgqrjgqrjgr/jgrEs44K444Ol44Oz44K4DQor44Kv44Op44K/LOODpOOCueODkuODrQ0KK+OCr+ODquOCvyzjgrXjg4jjgrcNCivjg4Djg7Ms44Oe44Kz44OIDQor44Oi44Oq44K344OeLOOCt+ODs+OCuA0KK+ODqOOCt+ODgCzjg6jjgqbjgrgNCivjg6/jgqvjg5Djg6Tjgrcs44Om44Of44KzDQor44Ki44Ky44Oe44OELOODkuODreODn+ODgQ0KK+OCpOOCt+OCsOODrSzjgrPjgrnjgrENCivjgqvjg4jjgqYs44Kr44K644OS44OtDQor44K144Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+ODiuOCpOODiOOCpizjg5/jg4Hjg6gNCivjg5/jg6Tjg57jgqgs44OI44K344OkDQor44Kr44OJ44Ov44KtLOOCouODhOOCtw0KK+ODleOCr+ODouODiCzjg5/jgq3jgqoNCivjg4vjgrfjg4/jg6ks44Ki44Kt44OpDQor44Kq44Kr44Ok44OeLOOCq+OCuuODiuODqg0KK+OCquOCq+ODpOOCuSzjg5/jgqjjgrMNCivjgq/jg63jgqvjg68s44OI44Kq44OrDQor44Kq44Kt44K/LOODqOOCt+ODkuOCtQ0KK+OCquOCr+ODn+ODpCzjg57jgrXjgqvjgroNCivjgqrjgq/jg6Djg6ks44OA44KkDQor44Kq44OO44OALOODiuODq+ODnw0KK+OCquODjuODh+ODqSzjg5Ljg4jjgrcNCivjgqrjg44s44OP44Or44Om44KtDQor44Kq44OOLOODiuOCquODleODnw0KK+OCquODjizjg6jjgrfjg5Xjg58NCivjg57jg4TjgqQs44OG44Or44KqDQor44Kq44K944Ko44Ks44OvLOODpOOCueODiuODqg0KK+OCquOCtuOCrSzjg47jg5bjg6bjgq0NCivjgqrjgrzjgq0s44OS44Ot44Om44KtDQor44K/44Kr44OOLOOCpOOCteOCqg0KK+ODquODp+OCpuOCq+OCpCzjg6jjgrfjgq0NCivjgrXjgrLjgrXjgqss44Oq44Ol44Km44Kk44OBDQor44K144Ku44OkLOOCreODp+OCpuOCpOODgQ0KK+OCteOCpOOCvyzjg57jgrXjg5Ljg60NCivjgrXjgqTjg4jjgqYs44Ki44Kt44Of44OEDQor44K144Kk44OI44KmLOOCtOODreOCpg0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgrXjgqTjg4jjgqYs44OE44ON44KqDQor44K144Kk44OI44KmLOODquOCqw0KK+OCteOCq+OCsOODgSzjg5Ljg4fjgqLjgq0NCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K344Oe44OALOODkuODreOCtw0KK+OCteOCq+OCreODkOODqSzjgqTjg4Tjg63jgqYNCivjgrXjgqvjg6Ljg4gs44Kx44Oz44K4DQor44K144Kr44Oi44OILOODnuOCteOCrQ0KK+OCteOCq+ODouODiCzjg6Djg43jg5Ljg60NCivjgrXjgqvjg6os44OO44OW44OS44OtDQor44K144Kr44K/LOOCteODiOODqw0KK+OCteOCr+ODnizjgrfjg7PjgrgNCivjgrXjgq/jg6njgqQs44K/44Kr44OO44OWDQor44K144Kv44Op44KkLOOCv+OCq+OCtw0KK+OCteOCr+ODqeOCpCzjg6jjgrfjg5Ljg60NCivjgrXjg7Pjg47jgqbjg57jg6ss44Om44Kt44KqDQor44K144OOLOODpuOCv+OCqw0KK+OCteOCteODmSzjgr/jg4Tjg63jgqYNCivjgrXjgrXjgq0s44K344Oz44K0DQor44K144K144KtLOODiOODouODkuODrQ0KK+OCteOCteOCrSzjgr/jgrHjgrcNCivjgrXjgrXjgq0s44OK44Kq44OIDQor44Oo44K344OALOODkuODreOCtw0KK+OCteODiOOCpizjg6jjgrfjg5LjgrMNCivjgrXjg4jjgqYs44Kr44K644OO44OqDQor44K144OI44KmLOOCv+OCq+ODjuODqg0KK+OCteODiOOCpizjg4/jg6Tjg4gNCivjgrXjg4jjgqYs44Ok44K544OS44KzDQor44K144OI44KmLOODqOOCt+ODpuOCrQ0KK+OCteODiOOCpizjg6jjgrfjg4gNCivjgrXjg4jjgqYs44Ki44Kt44KqDQor44K144OI44KmLOODnuOCteOCsw0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4jjgqYs44Om44Km44Kk44OBDQor44K144OI44KmLOODgeOCouOCrQ0KK+OCteODiOOCpizjgqvjgrrjg6QNCivjgrXjg4jjgqYs44Oe44K144OfDQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODr+OCpOODhyzjg6bjgqbjgqTjg4ENCivjgrXjg6/jgqQs44Kz44Km44Kk44OB44Ot44KmDQor44K144Ok44OK44KuLOODnuODqg0KK+OCu+OCrOODryzjg6jjgrfjg5Ljg60NCivjgrvjgqTjg5/jg6Qs44OS44Ot44K3DQor44K744Kk44Ok44OeLOOCt+OCsuOCrQ0KK+OCu+OCreOCq+ODryzjgqLjgq3jg6kNCivjgrvjgq0s44Kz44Km44K4DQor44K744KtLOOCv+OCseOCtw0KK+OCu+ODs+ODgCzjg5Ljg63jgr/jgqsNCivjgrvjg7PjgrTjgq8s44Kt44On44Km44KzDQor44K744OOLOODiOOCt+OCouOCrQ0KK+OCu+OCt+ODoizjgrPjgqbjgrgNCivjgrvjgr/jgqss44Kx44KkDQor44K544KsLOODquODp+OCpuOCpOODgQ0KK+ODn+ODiuODnyzjg6TjgrnjgrcNCivjgrfjg5Djgr8s44OB44Ki44KtDQor44K344OW44OkLOODkuODreODn+ODgQ0KK+OCt+ODluODpCzjg4Tjg6jjgrcNCivjgrfjg5bjg6Qs44Oe44K144OO44OqDQor44K344Kk44OOLOODkuODreOCsw0KK+OCt+OCq+OCvyzjgr/jgqvjg5Ljg60NCivjgrfjgq3jg5Ys44OS44Ot44K3DQor44K344Oe44OALOODnuOCteODkuODrQ0KK+OCt+ODnuODgCzjg5Ljg63jgrcNCivjgrfjg57jgqzjg58s44OI44K344Ki44KtDQor44K344Oe44Oi44OqLOODnuOCteODkuOCsw0KK+OCt+ODnuODoOODqSzjg6bjgq3jg47jg6oNCivjgrfjg57jgrbjgq0s44Kz44KmDQor44K344Oe44K244KtLOOCv+OCq+OCouOCrQ0KK+OCt+ODn+OCuizjgqjjgqTjgr7jgqYNCivjgrfjg5/jgros44Oq44KoDQor44K344Of44K6LOODkuODreOCtw0KK+OCt+ODouODgCzjgrHjgqTjg5/jg7MNCivjgrfjg6Ljg5Ljg6ks44Kz44Km44K/44Ot44KmDQor44K344OO44OP44OpLOOCouOCreODkuODrQ0KK+OCt+ODjuODj+ODqSzjg57jg4rjg5YNCivjgrfjg47jgrbjgq0s44OO44OW44KzDQor44K344OO44K244KtLOODkuODreOCrQ0KK+OCt+ODs+ODnSzjgqvjgrnjg58NCivjgrfjg7Pjgr/jg4ss44Om44Km44K4DQor44Kq44Kq44Kt44OJLOOCveODiOODkuODrQ0KK+OCt+OCquODjOODnizjgq3jg6jjg58NCivjgrfjgqrjgr8s44Kv44OL44Ki44KtDQor44K344Kq44OkLOODnuOCteODkuODrQ0KK+OCt+OCquOCtuODryzjgqTjgrXjgqoNCivjgrfjg6njgqQs44K344Ky44KtDQor44K344Op44K144KtLOODkuODreOCtw0KK+OCt+ODqeODiOODqizjg57jgrXjg4jjgrcNCivjgrfjg6njg4jjg6os44K/44Kr44OS44OtDQor44K344Ot44KtLOODkuODiOOCtw0KK+OCt+ODreOCt+OCvyzjgrfjgrLjgq0NCivjgqvjgrfjg54s44Oo44K344KqDQor44K344Ol44KmLOOCtOOCpOODgQ0KK+OCpOODnuOCpCzjg5Ljg4fjg4/jg6sNCivjgr3jgqjjg4As44OS44Ot44KzDQor44K944KsLOOCpOOCuuODqw0KK+OCveODryzjgqvjgrrjg4rjg6oNCivjgrnjg4As44Kz44Km44Kk44OBDQor44K544OALOODnuOCteODqw0KK+OCueODgCzjg4rjgqrjgq0NCivjgrnjgqjjg4As44OO44Oq44Oo44K3DQor44K544Ko44Oi44OqLOOCteOCreOCsw0KK+OCueOCqOOCquOCqyzjgrfjg6fjgqbjgqTjg4ENCivjgrnjgqzjg6/jg6ks44K344Oz44K4DQor44K544Ky44OOLOODpOOCueODkuODrQ0KK+OCueOCruODouODiCzjg6TjgrnjgqoNCivjgrnjgq7jgr8s44Om44Km44Kk44OB44OtDQor44K544Ku44Ok44OeLOODn+ODhOOCqg0KK+OCueOCruODpOODnizjgrHjgqTjgqTjg4Hjg63jgqYNCivjgrnjgq7jg6Tjg54s44Ko44Kk44K4DQor44K544Of44OI44OiLOODjuODnOODqw0KK+OCueODnyzjg6bjgq0NCivjgrnjg4rjgqws44OS44OH44Om44KtDQor44K544K244KtLOODhuODhOODpA0KK+OCueOCuuOCrSzjg4bjg6vjg58NCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44K544K644KtLOODpOOCueOCtw0KK+OCueOCuuOCrSzjg6bjgq3jgqoNCivjgrnjgrrjgq0s44K344OO44OWDQor44K544K644KtLOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjg4jjgrfjg6QNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLOOCq+OCuuOCouOCrQ0KK+OCueOCuuOCrSzjgrHjgqTjgrgNCivjgqrjgqrjg4vjgrcs44Oe44K144OP44OrDQor44K544K644KtLOODjuODluOCqg0KK+OCueOCuuOCrSzjg47jg6rjg6bjgq0NCivjgrnjgrrjgq0s44Oq44On44Km44K544KxDQor44K/44OcLOOCt+ODsw0KK+OCv+ODluODgSzjgr/jg4Tjg6QNCivjgr/jg5bjgrUs44OI44K344OV44OfDQor44K/44OB44Kr44OvLOODpOOCueODpuOCrQ0KK+ODkuODqeOCrSzjg6bjgqbjgqTjg4ENCivjgr/jgqzjgqQs44Ok44K544K3DQor44K/44Ks44OvLOODn+ODmw0KK+OCv+OCrCzjg47jg5bjgr/jgqsNCivjgr/jgrDjg4Es44Of44K144KqDQor44K/44Kw44OBLOOCt+ODsw0KK+OCv+OCsOODgSzjg5/jg4rjgrMNCivjgr/jgqvjg5Djgr/jgrEs44Oo44Km44Kk44OBDQor44K/44Kr44KuLOOCseODs+OCv+ODreOCpg0KK+OCv+OCq+ODj+ODqSzjg4jjgrfjg6QNCivjgr/jgqvjg4/jgrcs44OI44K344Om44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjgrvjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oo44K344OS44K1DQor44K/44Kr44OP44K3LOODj+ODq+OCteODgA0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgrMNCivjgr/jgqvjg4/jgrcs44Oe44K144Om44KtDQor44K/44Kr44OP44K3LOODkuODh+OCqg0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgrfjgrINCivjgr/jgqvjg4/jgrcs44OO44Oq44OS44KzDQor44K/44Kr44OP44K3LOODiOODqOODnw0KK+OCv+OCq+ODj+OCtyzjg5/jg47jg6sNCivjgr/jgqvjgqTjgrcs44OI44Oi44Ki44KtDQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCv+OCq+ODnyzjg5/jg47jg6sNCivjgr/jgqvjg6Djg6ks44K344Ot44KmDQor44K/44Kr44OK44K3LOODqOOCt+ODjuODqg0KK+ODj+OCu+OCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg44s44Kt44On44Km44KzDQor44K/44Kr44Kq44KrLOOCv+OCq+OCrQ0KK+OCv+OCq+OCquOCqyzjg47jg5bjg6bjgq0NCivjgr/jgqvjgr/jg4ss44Ki44Kt44OpDQor44K/44Kr44OE44K4LOOCq+ODhOOCuA0KK+OCv+OCq+ODhOOCqyzjgq3jg6jjgrcNCivjgr/jgqvjg4Qs44Oe44K144OfDQor44K/44Kr44Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODpOODnizjg4jjgqrjg6sNCivjgr/jgqvjg6Tjg54s44Ok44K544K3DQor44K/44Kx44OALOOCs+OCpuOCpOODgQ0KK+OCv+OCseODgCzjg6Tjgrnjg47jg6oNCivjgr/jgrHjg4As44K/44Kr44Kr44K6DQor44K/44Kx44OALOODiuOCquODkuODiA0KK+OCv+OCseODouODiCzjg47jgr7jg58NCivjgr/jgrHjg6Ljg4gs44Kr44OE44K3DQor44K/44Kx44Km44OBLOOCv+OCq+OCsw0KK+OCv+OCseOCpuODgSzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqbjg4Es44Om44Km44Kk44OBDQor44K/44Kx44Km44OBLOODiOOCquODqw0KK+OCv+OCreODouODiCzjgr/jgqvjg5Ljg60NCivjgr/jg57jg4Es44OS44Ot44K3DQor44K/44Og44OpLOODiOOCt+ODkuODrQ0KK+OCv+ODiuODmSzjg4TjgqvjgrUNCivjgr/jg4rjgqss44Kx44Kk44KzDQor44K/44OK44KrLOODiuOCruOCtQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6bjgq0NCivjgr/jg4rjgqss44Oe44KtDQor44K/44OK44KrLOODkuODreODleODnw0KK+OCv+ODiuOCqyzjgq/jg4vjg5LjgrMNCivjgr/jg4rjgqss44Kr44Kq44OqDQor44K/44Oz44OALOODn+OCreOCsw0KK+OCv+ODi+ODgCzjgq3jg5/jg5sNCivjgr/jg4vjgqzjg68s44Oo44K344K/44KrDQor44K/44OL44Og44OpLOODqOOCt+ODiuODqg0KK+OCv+ODiyzjg5Ljg63jg5bjg58NCivjgr/jgrfjg60s44Om44Kt44KqDQor44OS44Op44K144KrLOODjuODluODpuOCrQ0KK+OCv+ODr+ODgCzjgqjjgqTjgqjjg4QNCivjgr/jg6/jg6ks44K344Oz44K4DQor44OG44Op44OALOODiOODqOODkuOCtQ0KK+ODhuODqeOCteOCrSzjg5Ljg63jg6bjgq0NCivjg4bjg6njgrfjg54s44OS44OH44KzDQor44Kz44OQ44Ok44K3LOOCv+OCpOOCvuOCpg0KK+ODhuODqeOCpuODgSzjg6Tjgrnjg5/jg4QNCivjg6/jgr/jg4rjg5ks44K344Oz44Kk44OBDQor44OI44Kt44OI44OiLOODnuOCteODjuODqg0KK+ODiOOCr+ODgCzjgr/jgqvjg6bjgq0NCivjgrXjgq/jg6njgq4s44OO44Oq44OS44K1DQor44OI44Of44Oi44OILOODnuOCteODkuOCsw0KK+ODiOODn+OCvyzjg5Ljg4fjgqoNCivjg4jjg6Ljg58s44OS44Ot44Of44OEDQor44OI44Oz44Kw44KmLOODnuOCteOCtw0KK+ODiOODquOCpuODnyzjg5Ljg63jgrnjgrENCivjg4jjg6jjg4As44Kr44OE44OS44K1DQor44OI44Oo44K144OILOODkuODreOCtw0KK+ODiOODqOOCt+ODnizjg4bjg4Tjg6QNCivjg4Tjg4Hjg4As44K444Ol44OzDQor44OE44OB44Oi44OILOODnuOCs+ODiA0KK+ODhOODgeODpCzjg6HjgrDjg58NCivjg4Tjg4As44K/44OE44Ot44KmDQor44OE44OALOODpuOCqw0KK+ODhOOCuOODouODiCzjg6bjgq3jgqoNCivjg4Tjgrgs44OO44Oq44KqDQor44OE44K4LOODkuODreOCtw0KK+ODhOOCq+OCtOOCtyzjg4jjgrfjgqvjgroNCivjg4Tjgqvjg6Ljg4gs44Kx44Kk44K4DQor44OE44Kt44OA44OGLOODkuODreOCtw0KK+ODouODquOCvyzjgrPjgqbjgr7jgqYNCivjg4Tjg6vjgr8s44K344OO44OWDQor44OE44K344OeLOODiOODouOCouOCrQ0KK+ODhOOCtyzjg4jjgrfjg5LjgrMNCivjg4Tjg4Tjg58s44K544Of44OIDQor44OE44Ok44OeLOODpOOCueOCrQ0KK+OCpuODgeODgCzjg6bjgq3jgqoNCivjgqbjg4Hjg4As44Oo44Km44KzDQor44Km44OB44Ok44OeLOOCv+OCseOCtw0KK+OCpuODgCzjg6bjgqvjg6oNCivjgqbjgqjjg4As44K144Kq44OqDQor44Km44Ko44OALOODkuODreOCtw0KK+ODhOOCq+ODouODiCzjg4Hjgqjjg58NCivjgqbjgqjjg4As44OS44OH44KqDQor44Kt44Kt44On44KmLOODqOOCt+OCv+OCqw0KK+OCpuOCqOODgCzjgqTjgq/jgqgNCivjgqbjgqjjgrDjg6os44OI44Kq44OrDQor44Km44Ko44OP44OpLOODkuODreODpuOCrQ0KK+OCpuOCqOODnuODhCzjgqvjg4Tjg6QNCivjgrXjg4jjgqYs44Kr44K644OS44KzDQor44Km44Ko44OOLOODkuODh+OCv+OCqw0KK+OCpuOCqOODjizjg6jjgrfjgrMNCivjgqbjgqjjg44s44OS44Ot44Om44KtDQor44Km44Ko44OOLOOCt+OCsuOCrQ0KK+OCpuOCqOODjizjg5Ljg4fjgq0NCivjgqbjgqjjg6Tjg54s44OS44Ot44OO44OqDQor44Km44Oh44OALOOCq+ODiuOCpg0KK+OCpuODoeOCq+ODryzjgqvjg6gNCivjg4rjgqzjgr8s44OO44Oq44KzDQor44Km44Op44K0LOODiOODqOODkuODrQ0KK+OCpuODq+OCt+OCtuOCqyzjg6bjgq3jgqoNCivjgr/jgqvjg4/jgrcs44K344On44Km44Kk44OBDQor44Km44OE44OO44Of44OkLOOCt+ODs+ODmuOCpA0KK+ODr+ODgCzjgqvjgrrjg5Ljg60NCivjg6/jg4As44Of44Kt44KoDQor44Ov44OALOOCt+OCuuOCqg0KK+ODr+OCq+ODkOODpOOCtyzjg6bjg5/jgrMNCivjg6/jgqvjg5Djg6Tjgrcs44Kr44K644OS44KzDQor44Ov44Kr44Oe44OELOOCq+OCuuOCrQ0KK+ODr+OCq+ODnuODhCzjgrPjgqbjgrgNCivjg6/jgq3jg6Ljg4gs44OK44Oq44OIDQor44Ov44Kv44KkLOOCt+ODpeOCpuOCuA0KK+OCpOODiOOCpCzjg6jjgrfjg5LjgrUNCivjg6/jgr/jg5ks44Kr44OE44OkDQor44Ov44K/44OZLOODiuOCquOCv+OCqw0KK+ODr+OCv+ODiuODmSzjgrfjg6Xjg7PjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ov44K/44OK44OZLOOCv+ODgOOCtw0KK+ODr+OCv+ODiuODmSzjgqjjgqTjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44OI44K3DQor44Ov44K/44OK44OZLOODkuODreODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4zjgq0s44Oe44K144OrDQor44Ok44OW44K344K/LOODn+ODieODqg0KK+ODpOODluOCvyzjg5/jg4Tjg6jjgrcNCivjg6Tjg5bjgqbjg4Es44K344On44Km44OY44KkDQor44Ok44K444OeLOODqOOCpuOCsw0KK+ODpOOCr+OCt+OCuCzjg5Xjg5/jg5Ljg60NCivjg6Tjg57jg4As44Om44Kt44KzDQor44Ok44Oe44OALOODkuODreOCqA0KK+ODpOODnuODgCzjg5LjgrUNCivjg6Tjg57jg4As44Ki44Kt44OO44OWDQor44Ok44Oe44OALOOCouOCreOCqg0KK+ODpOODnuODgCzjgqjjgqTjgrnjgrENCivjg6Tjg57jgqzjg58s44OS44Ot44OV44OfDQor44Ok44Oe44Kw44OBLOOCuOODreOCpg0KK+ODpOODnuOCsOODgSzjgrPjgqbjgrgNCivjg6Tjg57jgqvjg68s44K344OzDQor44Ok44Oe44Kz44K3LOOCv+OCq+OCtw0KK+ODpOODnuODouODiCzjgqLjgq3jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Kx44KkDQor44Ok44Oe44Oi44OILOODnuOCteODn+ODgQ0KK+ODpOODnuODouODiCzjg5Ljg63jg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Ko44Kk44K4DQor44Ok44Oe44Oi44OILOODkuODreODleODnw0KK+ODpOODnuODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44Kr44Ov44Kw44OBLOOCouOCreODqQ0KK+ODpOODnuODoOODrSzjg5Ljg63jg5/jg4ENCivjgqTjg6/jgr8s44K/44Kx44K3DQor44Ok44Oe44Kq44KrLOOCq+OCuuODkuODrQ0KK+ODpOODnuOCteOCrSzjg5Ljg4fjgq/jg4sNCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44Ok44Oe44K344K/LOODhOODiOODoA0KK+ODpOODnuOCt+OCvyzjg4jjgrfjgqLjgq0NCivjg6Tjg57jgrfjgr8s44Ki44Kt44KzDQor44Ok44Oe44K344K/LOODkuODreODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5Ljg4cNCivjg6Tjg57jgrfjgr8s44Kr44OE44Om44KtDQor44Ok44Oe44K344K/LOOCouOCreODqQ0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrbjgq0s44Kr44Kq44OrDQor44Ok44Oe44K244KtLOOCs+OCpuOCuA0KK+ODpOODiuOCrOODryzjg57jgrXjg5Ljg60NCivjgr/jgqvjgqrjgqss44OS44Kr44OrDQor44Ok44OK44K7LOODquODp+OCpuOCpOODgQ0KK+ODpOODjizjg4jjg6Ljg6bjgq0NCivjg6Tjgqos44Ko44Oq44KzDQor44Ok44K544OALOODiOOCt+ODleODnw0KK+ODpOOCueOCq+ODryzjg5Ljg4jjg58NCivjg6jjgqzjgqQs44Kz44Km44Kk44OBDQor44Oo44Kz44Ks44OvLOOCu+OCpOOCuA0KK+ODqOOCs+OCteODryzjg57jgrXjg6bjgq0NCivjg6jjgrPjgr8s44Of44OK44KzDQor44Oo44Kz44K/LOODpOOCueOCtw0KK+ODqOOCs+OCpuODgSzjg4Tjg4jjg6ANCivjg4rjgqvjg6Tjg54s44Ki44OE44K3DQor44Oo44Kz44Ok44OeLOODj+ODq+ODkuOCsw0KK+ODqOOCs+ODpOODnizjg57jgrXjgqoNCivjg6jjg43jg4/jg6ks44OI44K344Om44KtDQor44Oo44ON44Og44OpLOOCv+ODgOOCtw0KK+ODqOOCt+ODgCzjg57jgrXjg4jjgrcNCivjg5/jg6Tjg6Djg6ks44OE44OI44OgDQor44Oo44K344OALOOCreODn+OCouOCrQ0KK+ODqOOCt+ODgCzjg57jgrXjgqvjg4QNCivjg4rjgqss44Oo44K344OS44OtDQor44Oo44K344Og44OpLOODqOOCpuOCpOODgQ0KK+ODqOOCt+ODoOODqSzjg5Ljg63jg58NCivjg4zjg57jgqos44Of44ON44KqDQor44Oo44K344K244KtLOOCqOOCpOOCuA0KK+ODiuOCq+ODoOODqSzjgrHjg7PjgrgNCivjg6bjgqLjgrUs44Oq44On44Km44K/DQor44Om44KyLOOCv+OCq+ODkuODrQ0KK+ODpuOCq+ODryzjg6jjgrfjgr/jgqsNCivjg57jg4Tjg4As44Oo44K344OE44KwDQor44Ki44OZLOODpOOCueODkuODrQ0KK+ODj+OCu+OCrOODryzjgqvjg4Tjg57jgrUNCivjg4/jgrfjg6Ljg4gs44OS44OI44K3DQor44OS44Op44OE44KrLOOCv+ODouODhA0KK+ODm+OCt+OCq+ODryzjg5/jg47jg6sNCivjg5vjgr3jg6Qs44K344On44Km44K4DQor44Kk44K344OP44OpLOOCv+OCq+OCtw0KK+OCpOODr+OCrSzjgr/jg4Hjg4/jg6sNCivjgqvjg43jg4As44Kz44Km44K4DQor44Kt44Og44OpLOOCv+OCseOCtw0KK+OCs+ODs+ODjizjg57jgrPjg4gNCivjg57jg4Tjg4As44Oo44K344OS44K1DQor44Of44Ok44K344K/LOOCt+OCsuODiOODog0KK+OCteOCq+ODouODiCzjg57jg6oNCivjg47jg6Djg6ks44K344Oz44Kk44OBDQor44Kq44Kq44OQ44Ok44K3LOOCqOODhOOCsw0KK+OCteOCpOODiOOCpizjg6bjgq3jgqgNCivjgrXjgrXjgqzjg68s44Om44Km44KzDQor44K144OI44KmLOODpOODqOOCpA0KK+OCt+OCrCzjg57jgrXjg5/jg4QNCivjgrfjg47jg4/jg6ks44Oe44K144K3DQor44K344On44KmLOODoeOCsOODnw0KK+OCv+OCseOCrOODryzjg5/jgqjjgrMNCivjgr/jg4Tjg58s44Om44K/44KrDQor44OI44Of44KoLOODjuODquODkuOCsw0KK+ODr+OCv+ODiuODmSzjg57jg6Ljg6sNCivjg6Tjg57jg4As44Om44Km44Kk44OBDQor44Ok44Oe44OALOODiOODn+ODkuODrQ0KK+ODpOODnuODouODiCzjgr/jgrHjgrcNCivjg6Tjg57jgrbjgq0s44Oe44K144KqDQor44Kz44Oe44OE44K244KtLOODgeOCouOCrQ0KK+ODleODgeODgCzjg57jgrXjg5LjgrMNCivjgr/jg4rjgqss44Kr44K644Om44KtDQor44OP44Ok44K3LOOCteODm+ODqg0KK+ODiuOCrOOCvyzjgrvjgqTjgqTjg4ENCivjg5Djg5As44Oe44Kz44OIDQor44Ki44Kr44OeLOOCv+OCq+OCtw0KK+OCq+OCtuODnizjgqvjgrrjgrfjgrINCivjg6Ljg6os44OS44Ot44Ki44KtDQor44Kk44Kx44OALOODhOODqOOCtw0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg4gNCivjg5/jg54s44OV44Of44KqDQor44Ki44Oz44OJ44KmLOODiOODouODkuODrQ0KK+ODnuOCqOOCvuODjizjg5/jg4Tjg5Ljg60NCivjgqrjgr/jgqss44Kz44Km44Kk44OBDQor44OP44Ok44K3LOODnuOCteODkuODrQ0KK+OCpuOCqOODjizjgqvjgrrjgr/jgqsNCivjg4Tjg47jg4As44Kx44Kk44Kk44OBDQor44K544OJ44KmLOOCv+OCq+ODiOOCtw0KK+OCteOCq+ODouODiCzjg5/jg4TjgqLjgq0NCivjgr/jg4rjgqss44Oi44Oq44K344KyDQor44Kz44OI44Km44OALOODpuOCreODjuODqg0KK+OCq+ODq+ODmSzjg5Xjg5/jg5Ljg60NCivjgrXjgqTjg4jjgqYs44OG44Or44Oo44K3DQor44OS44Op44OOLOODkuODreOCsw0KK+OCteODiOOCpizjg5Ljg63jg57jgrUNCivjg4rjgqvjg6Tjg54s44Kx44Oz44Kk44OBDQor44OO44OALOODpuODquOCsw0KK+ODnizjg6Tjgrnjg5Ljg60NCivjgrfjg4rjgqzjg68s44OB44Kr44OpDQor44OK44Ks44Ok44K5LOOCs+OCpuOCuA0KK+OCouOCquOCrSzjgrPjgqbjgrgNCivjg4rjgqvjgr8s44OP44Ok44OIDQor44Of44Kv44Oq44OkLOODhuODq+ODpuOCrQ0KK+ODnuODq+ODpOODnizjg5Ljg4fjg4jjgrcNCivjgqjjg4Hjgrzjg7Ms44OS44K144K3DQor44OK44Kr44OL44K3LOOCt+ODp+OCpuOCpOODgQ0KK+ODj+OCruOCqizjg4jjg6Ljg5LjgrMNCivjgr/jg6Djg6ks44Oe44K144Ki44KtDQor44K/44Kw44OBLOODqOOCt+ODiOOCtw0KK+OCquOCtuODryzjgqrjgrXjg6ANCivjg6TjgqrjgqTjgr8s44OI44K344OS44OtDQor44Ki44K144OOLOODjuODquODpOOCuQ0KK+OCr+OCteODjizjg4bjg6vjg5Ljg60NCivjg4/jg57jg4As44Oe44K144K4DQor44Kk44Oq44Ok44OeLOODj+ODiuOCsw0KK+ODoOODqeOCvyzjg4rjgqrjg6QNCivjgqLjgrXjg44s44Oo44Km44K4DQor44K/44Kr44OOLOOCseODs+OCpOODgQ0KK+ODpOODnuOCsOODgSzjgqLjgq3jg4jjgrcNCivjg6Djg6njgqvjg58s44OO44Oq44OS44OtDQor44K/44OK44KrLOOCq+ODhOOCuA0KK+OCv+OCq+OCquOCqyzjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Of44K144ObDQor44Of44ON44Ku44K3LOODiuOCquODpA0KK+OCouODmSzjg47jg6rjgqLjgq0NCivjgqLjg5ks44Of44K644ObDQor44Ki44OZLOOCt+ODpeODs+OCuA0KK+OCouODmSzjg5Ljg4fjgq0NCivjgqLjgqzjg4Tjg54s44Ki44Kt44OpDQor44Ki44Kk44K244OvLOOCv+OCq+OCtw0KK+OCouOCq+OCpOOCsSzjgrjjg6Xjg7PjgrMNCivjgqLjgq3jg6Ljg4gs44Oo44K344OO44OWDQor44Ki44Kt44K/44OkLOODpuOCreOCqg0KK+OCouOCreODpOODnizjg4jjgrfjg6bjgq0NCivjgqLjgq/jg4Qs44K344Ky44KtDQor44Ki44Oe44OOLOOCv+ODgOOCq+ODhA0KK+OCouODnuODjizjgqLjg4Tjg47jg6oNCivjgqLjg57jg44s44OV44Of44KoDQor44Ki44Oh44Of44OkLOOCq+OCuuODnw0KK+OCouODs+ODieOCpizjg57jgrXjg5Ljg60NCivjgqLjg7Pjg4njgqYs44OG44Oz44K744KkDQor44Ki44Oz44K244KkLOODpuOCpuOCuA0KK+OCouOCquOCrSzjg6rjg4TjgrMNCivjgqLjgqrjgq0s44K/44Kr44Om44KtDQor44Ki44Kq44KtLOOCteODgOODj+ODqw0KK+OCouODqeOCpCzjg4/jg6vjg5Ljg4gNCivjgqLjg6njgq0s44Oo44Km44Kk44OBDQor44Ki44Op44KtLOOCt+OCsuODn+ODhA0KK+OCouODqeODpCzjg6jjgrfjgr/jgqsNCivjgqLjg6rjg6jjgrcs44OI44Oi44OO44OWDQor44Ki44K144OS44OKLOODqOOCpuOCpOODgQ0KK+OCouOCteOCpCzjg4rjg6rjg4gNCivjgqLjgrXjg58s44OS44Ot44Om44KtDQor44Ki44K144OE44KxLOOCq+OCuuODpuOCrQ0KK+OCouOCvSzjgq/jg4vjgqvjgroNCivjgqLjgrrjg54s44Oe44Kz44OIDQor44Ki44K644OeLOOCteODiOOCsw0KK+ODkOODkCzjgrnjg5/jgrMNCivjg5Djg5As44OI44Oi44KzDQor44Kr44KsLOODqOOCt+OCrQ0KK+ODkOODkCzjg6bjgqbjgrnjgrENCivjg5Djg7Ms44Om44KrDQor44OT44Or44Kr44OvLOODrOOCpOOCsw0KK+ODnOOCpizjg5Xjgq/jgqoNCivjg4DjgqTjgrQs44K344Ol44Oz44K544KxDQor44OA44Kk44K044KvLOOCuOODpeODs+OCpOODgQ0KK+ODieODkOOCtyzjg4jjgqrjg6sNCivjgqjjg5PjgrXjg68s44OS44Ot44K3DQor44Ko44OP44OpLOODkuODreODiOOCtw0KK+ODleODgeOCrOODnyzjg6rjg6Xjgqbjgr/jg63jgqYNCivjg5Xjgrjjg5Djg6Tjgrcs44OS44Ot44K3DQor44OV44K444Ko44OALOODquODp+OCpuOCpOODgQ0KK+ODleOCuOOCpCzjgrvjgqTjgrQNCivjg5XjgrjjgqQs44K344Oz44K4DQor44OV44K444KkLOODqOOCt+ODjuODqg0KK+ODleOCuOOCpCzjg57jgrXjg6QNCivjg5XjgrjjgqQs44OS44OH44Ki44KtDQor44K144Kr44Oi44OILOOCt+ODpeOCpuODmOOCpA0KK+OCreOCv+ODgCzjgqjjgqTjgqTjg4ENCivjg5XjgrjjgqQs44Kr44Kq44OrDQor44OV44K444KkLOOCt+ODs+OCpOODgQ0KK+ODleOCuOOCpCzjgr/jg4Tjg6QNCivjg5Xjgrjjgqvjg68s44Kr44K644OS44KzDQor44OV44K444Oi44OqLOOCreODp+OCpuOCsw0KK+ODleOCuOODouODiCzjg5Ljg63jgrcNCivjg5Xjgrjjg44s44K744Kk44K4DQor44OV44K444K144OvLOODkuODreOCv+OCqw0KK+ODleOCuOOCvyzjg4jjgrfjg6QNCivjg5Xjgrjjgr8s44OS44Ot44K3DQor44OV44K444K/LOOCseOCpOOCuA0KK+OCr+OCueODouODiCzjg5Ljg63jg5Xjg58NCivjg5Xjgrjjg6/jg6ks44OS44Ot44K3DQor44OV44K444Ov44OpLOOCseOCpA0KK+ODleOCuOODr+ODqSzjg57jgrPjg4gNCivjg5Xjgrjjg6/jg6ks44OS44Ot44OgDQor44OV44K444Ov44OpLOODiOOCt+OCrQ0KK+ODleOCq+ODnOODqizjg5Ljg4fjgqoNCivjg5Xjgqvjg58s44K144OK44KoDQor44OV44Kr44OfLOODkuOCteOCsw0KK+ODleOCr+ODgCzjg6bjgqbjgrMNCivjg5Xjgq/jg4As44K144OI44OfDQor44OV44Kv44OALOOCuOODpeODsw0KK+ODleOCr+ODgCzjg6bjgqsNCivjg5Xjgq/jgqQs44OO44Oq44OB44KrDQor44OV44Kv44KkLOODiOODouOCuA0KK+ODleOCr+ODiuOCrCzjgrHjg7PjgrgNCivjg5Xjgq/jg4rjgqws44Oe44K144Ok44K5DQor44OV44Kv44Kq44KrLOODn+ODjuODqw0KK+ODleOCr+OCquOCqyzjgqTjgrXjgqoNCivjg5Xjgq/jgrcs44Ok44K544OO44OqDQor44OV44Kv44K344OeLOODiOOCt+ODpuOCrQ0KK+ODleOCr+ODiOODoSzjgrvjgqTjgrgNCivjg5Xjgq/jg6Tjg54s44Kr44OE44OS44OIDQor44OV44OK44OQ44K3LOODiOOCquODqw0KK+ODleODq+ODjizjgqLjgq3jg6kNCivjg5Xjg6vjg6Qs44OI44K344Om44KtDQor44OV44Or44OkLOODkuODreODpuOCrQ0KK+ODleODq+ODpOODnizjg5/jg47jg6sNCivjg5Xjgr/jg5As44Om44Of44KzDQor44Ki44OK44OfLOODkuOCteODjuODqg0KK+ODleOCv+ODnyzjg5XjgrjjgqoNCivjg5Xjgr/jg6Djg6ks44OI44Oi44KzDQor44Ks44OJLOODkuOCteOCtw0KK+OCtOOCpizjg6rjg6fjgqbjgrMNCivjgrTjgqbjg4As44K344OzDQor44K044KrLOOCv+ODhOODpA0KK+OCtOODiOOCpizjg4jjgrfjgr/jgqsNCivjgrTjg4jjgqYs44K344OO44OWDQor44OP44OWLOOCt+ODp+OCpuOCuA0KK+ODj+OCrCzjgqLjg4TjgrcNCivjg4/jgq4s44Kx44Oz44K4DQor44OP44OeLOOCv+ODgOODkuODrQ0KK+ODj+ODnuODgCzjg57jgrXjg6sNCivjg4/jg57jg44s44Kq44K144OgDQor44OP44Oe44OOLOOCv+ODhOODpA0KK+ODj+ODnuOCt+ODnizjg6bjg58NCivjg4/jg57jgrfjg54s44K144OA44Of44OEDQor44OP44OK44KkLOODhuODhOOCqg0KK+ODj+ODqSzjgr/jg4Tjgq0NCivjgqrjgr8s44Kz44Km44Kk44OBDQor44OP44Op44OALOODiuOCquOCrQ0KK+ODj+ODqeOCsyzjgr/jg4Tjg5Ljg60NCivjg4/jgrss44Om44K/44KrDQor44OP44K744Ks44OvLOODkuODreOCtw0KK+ODj+OCu+OCrOODryzjgrfjg6fjgqbjgrgNCivjg4/jgrfjg6Ljg4gs44K144OI44K3DQor44OP44K344Oi44OILOOCu+ODhOOCqg0KK+ODj+OCt+ODouODiCzjgqLjgrHjg58NCivjg4/jgrfjgrrjg6Es44Oe44K144KtDQor44OP44K344K644OhLOODiuOCquOCrQ0KK+ODj+OCvyzjgrfjg7PjgqTjg4ENCivjg4/jgr8s44Oo44K344OS44KzDQor44OP44K/LOOCv+OCseODkuOCsw0KK+ODj+OCv+ODjizjgq3jg6fjgqbjgrMNCivjg4/jgr/jg44s44Ok44K544Om44KtDQor44OP44K/44OOLOODqOOCt+ODkuODrQ0KK+ODhOODgCzjg5Ljg63jgrMNCivjg4/jg6Tjgqvjg68s44Oo44K344OO44OqDQor44OP44Ok44OOLOOCq+ODiuOCsw0KK+ODj+ODpOOCtyzjgrXjgqrjg6oNCivjg4/jg6Tjgrcs44K544K544OgDQor44OP44Ok44K3LOODjuODluODpuOCrQ0KK+ODj+ODpOOCtyzjg5Ljg63jg6bjgq0NCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OP44Ok44K344K/44OLLOOCouOCreODqQ0KK+ODkuOCrOOCt+ODjizjgq3jg5/jgr/jgrENCivjg5LjgrDjg4Es44Kr44K644OS44KzDQor44OS44Kw44OBLOOCt+ODs+OCpOODgeODreOCpg0KK+ODkuODoeODjizjg6TjgrnjgrcNCivjg5Ljg6njg5Djg6Tjgrcs44Om44Km44KzDQor44OS44Op44KkLOODpuOCpuOCpOODgQ0KK+ODkuODqeOCq+ODryzjg5Ljg63jgrcNCivjg5Ljg6njgq0s44OS44Ot44K3DQor44OS44Op44OOLOOCu+OCpOODquODp+OCpg0KK+OCouOCquOCrSzjg5/jg4HjgrMNCivjg5Ljg6njgqrjgqss44Oe44K144OkDQor44OS44Op44K144KrLOODkuODreODpuOCrQ0KK+ODkuODqeODpOODnizjg6jjgrfjg47jg6oNCivjg5Ljg63jg4/jgr8s44Om44Km44Kk44OB44OtDQor44Oe44Ko44Kr44OvLOODpOOCueODkuODrQ0KK+ODkuODreOCuyzjg57jg4rjg5YNCivjg5Ljg63jgrss44OS44Ot44Oo44K3DQor44OS44Ot44K/LOODnuOCteODjuODlg0KK+ODkuODreODr+OCv+ODqizjgr/jgqvjg5Ljg60NCivjg5Ljg63jg5/jg4Qs44OS44Ot44K3DQor44OS44Km44OpLOODnuODouODqw0KK+ODm+ODnCzjgr/jgqTjgrnjgrENCivjg5vjgq/jg6ks44Oe44Kz44OIDQor44Ob44Oz44OALOOCpOOCteOCqg0KK+ODm+ODs+ODgCzjg6jjgqbjgrMNCivjgrnjgrrjgq0s44OS44OH44KtDQor44Ob44Oz44K044KmLOOCq+OCuuOCv+OCqw0KK+ODm+ODquOCsOODgSzjgq3jgqTjg4Hjg63jgqYNCivjg5vjg6rjgqQs44Kt44OL44OBDQor44Ob44Oq44Kr44OvLOODhuODq+OCqg0KK+ODm+OCt+ODjizjg6Tjgrnjg5Ljg60NCivjg5vjgr3jgqvjg68s44OS44OH44Om44KtDQor44Ob44K944OfLOODkuODreOCouOCrQ0KK+ODm+ODg+OCvyzjgqvjgrrjgqLjgq0NCivjgqTjg5bjgqss44OO44OW44Of44OBDQor44Kk44OW44KtLOODkuODh+ODpuOCrQ0KK+OCpOODgeOCq+ODryzjg5Ljg63jgrcNCivjgqTjg4Hjg6Djg6ks44Kt44Of44KoDQor44Kk44OALOOCq+ODiuODoQ0KK+OCpOODgCzjg4Hjg4/jg6sNCivjgqTjg4cs44Ok44K544OS44OHDQor44Kk44OHLOOCreODqOOCv+OCqw0KK+OCpOODhyzjg4rjgqrjg6bjgq0NCivjgqTjg4fjgr8s44K/44Kr44K3DQor44Kk44Ks44Op44K3LOOCseOCpOOCsw0KK+OCpOOCrOODqeOCtyzjg6bjgq3jg6QNCivjgqTjgrIs44K144OE44KtDQor44Kk44Kk44OALOOCt+ODp+OCpuOCvuOCpg0KK+OCpOOCpOODgCzjgr/jgqvjg6bjgq0NCivjgqTjgqTjg4As44K/44Oe44OfDQor44Kk44Kk44OALOODqOOCt+ODkuOCtQ0KK+OCpOOCpOODj+ODqSzjg5Ljg63jgrcNCivjgqTjgqTjgrjjg54s44K/44Kx44K3DQor44Kk44Kx44OALOOCq+ODhOODpA0KK+OCpOOCseODgCzjg57jgrXjgqLjgq0NCivjgqTjgrPjg54s44OO44OW44Oe44K1DQor44Kk44Oe44KkLOOCreODqOODkuODiA0KK+OCpOODnuOCpCzjg57jgrPjg4gNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44Kk44Oe44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCpOODnuODiuODqizjgr/jg4Tjg6QNCivjgqTjg57jgrzjgq0s44K444Ol44Oz44K4DQor44Kk44OK44OALOODnuODpuODnw0KK+OCpOODiuODnuOCuSzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44Om44KtDQor44Kk44OHLOODnuOCteODkuODrQ0KK+OCpOODrOOCpCzjg57jgrXjg6sNCivjgqTjgrfjg4/jg6ks44Of44OE44OfDQor44Kk44K344OP44OpLOODn+ODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjg4rjgqrjgq0NCivjgqTjgrfjg4/jg6ks44K544K544OgDQor44Kk44K344OP44OpLOOCuOODpeODs+OCpOODgQ0KK+OCpOOCt+OCpCzjgr/jgqvjg6bjgq0NCivjgqTjgrfjgqQs44OI44Oi44Om44KtDQor44Kk44K344Kr44OvLOODpuOCpuOCuA0KK+OCpOOCt+OCq+ODryzjg4rjgqrjg5Xjg58NCivjgqTjgrfjg6Djg6ks44OS44Ot44Om44KtDQor44Kk44K344Ov44K/44OqLOODnuOCueODnw0KK+OCpOOCt+OCtuOCrSzjg47jg6rjg6jjgrcNCivjgqTjgrfjgrrjgqss44OK44Kq44OI44KvDQor44Kk44K944OOLOODn+ODhOODiOOCtw0KK+OCpOOCveODpOODnizjg5/jg4Tjg47jg5YNCivjgqTjgrnjg4As44K344Ky44KqDQor44Kk44K/44Kv44OpLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44OS44Ot44OV44OfDQor44Kk44OI44KmLOODqOOCt+ODnuOCtQ0KK+OCpOODiOOCpizjg4/jg6vjgqoNCivjg57jg4TjgqQs44K/44Kx44OS44KzDQor44Kk44OI44KmLOOCv+OCseODkuOCsw0KK+OCpOODiOOCpizjg57jgrXjg4HjgqsNCivjgqTjg4jjgqYs44Oe44K144OS44KzDQor44Kk44Ov44Kr44OfLOODhOODiOODoA0KK+OCpOODr+OCtSzjg4jjgrfjg58NCivjgqTjg6/jgrXjgq0s44Om44Km44K4DQor44Kk44Ov44K144KtLOODiuOCquODpuOCrQ0KK+OCpOODr+OCt+OCvyzjg5/jg4Hjgr/jgqsNCivjgqTjgrrjg58s44OI44Kq44OrDQor44Kk44OI44KmLOOCouODhOOCtw0KK+OCpOOCuuODnyzjg4jjg5jjgqQNCivjgqTjgrrjg5/jgrXjg68s44K744Kk44K4DQor44K444Oz44OOLOODpOOCueOCtw0KK+ODn+ODiSzjg6rjg6XjgqbjgrgNCivjgqvjgqws44Ki44Kx44OfDQor44Kr44Ks44OfLOODleOCteOCqg0KK+OCq+OCsuODpOODnizjg5LjgrXjg4rjgqwNCivjgqvjgqQs44OS44OI44K3DQor44Kr44Kk44OALOOCs+OCpuOCuA0KK+OCq+OCpOOCuizjgr/jgrHjg5Ljg4gNCivjgqvjgrjjgr8s44K4DQor44Kr44Kx44OSLOOCouOCseODnw0KK+OCq+OCreODouODiCzjg4jjg6Ljg5Ljg60NCivjgqvjgq3jg4zjg54s44K144OB44KzDQor44Kr44Kt44OM44OeLOOCt+OCuuOCqw0KK+OCq+ODnuOCvyzjg4jjgrfjgqgNCivjgqvjg57jgr8s44Kx44Oz44Kk44OBDQor44Kr44Of44Kw44OBLOODn+OCqOOCsw0KK+OCq+ODn+ODoOODqSzjg6jjgrfjgqoNCivjgqvjg43jgrMs44Oe44K144OO44OqDQor44Kr44OK44Oe44OrLOOCuA0KK+OCq+ODiuOCtuODryzjg57jg6Ljg6sNCivjgqvjg7Pjg5ks44K/44Kr44OS44OtDQor44Kr44Oz44OALOOCs+OCpuOCvuOCpg0KK+OCq+ODjeODj+ODqSzjgrHjg7MNCivjgrTjg4jjgqYs44K344Ky44Kr44K6DQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCq+ODjeOCsyzjg6Tjgrnjg4rjgqoNCivjgqvjg43jgrMs44Ki44Kt44OpDQor44Kr44ON44KzLOODkuODh+ODiOOCtw0KK+OCq+ODjeOCsyzjg5Ljg63jg5Xjg58NCivjgqvjg43jg5/jg4Qs44OS44Ot44Of44OEDQor44Kr44ON44Og44OpLOOCq+OCuuOCqg0KK+OCq+ODjeOCvyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44Oo44ON44Oi44OBLOODiuOCquOCtw0KK+OCq+ODs+ODjizjg6Tjgrnjg57jgrUNCivjgqvjgrXjgqQs44Om44Kr44OqDQor44Kr44K344OeLOOCs+OCpuOCuOODreOCpg0KK+OCv+OCq+OCrizjg5Ljg4fjgq0NCivjgq3jgr/jg6Djg6ks44Oe44K144OfDQor44Kr44K/44Kq44KrLOODpOOCueODpuOCrQ0KK+OCq+OCv+OCquOCqyzjgqvjgrrjg5LjgrMNCivjgqvjgr/jgqrjgqss44K344Ky44Om44KtDQor44Kr44K/44K7LOODpOOCueODiuODqg0KK+OCq+OCv+ODpOODnizjg5/jg4HjgrMNCivjgqvjgr/jg6Tjg54s44OK44Kq44Om44KtDQor44Kr44K/44Ok44OeLOODpuOCpuOCsw0KK+OCq+OCv+ODpOODnizjgq3jg6fjgqbjgrMNCivjgqvjg4jjgqYs44Ok44K544OS44OtDQor44Kr44OI44KmLOODkuODreOCouOCrQ0KK+OCq+ODiOOCpizjgrfjg7PjgqTjg4ENCivjgqvjg4jjgqYs44OE44OI44OgDQor44Kr44OI44KmLOODkuODreODpuOCrQ0KK+OCq+ODiOOCpizjg4jjgrfjg5Ljg60NCivjgqvjg4jjgqYs44Oo44K344OfDQor44Kr44OI44KmLOODpuOCpuOCuA0KK+OCq+ODiOOCpizjg4Tjg4jjg6ANCivjgr3jg6Hjg6Qs44K444Ol44Oz44KzDQor44Kr44Ov44OQ44K/LOODnuOCs+ODiA0KK+OCq+ODr+OCsOODgSzjg57jgrXjgqTjg4ENCivjgqvjg6/jgrDjg4Es44K344Oz44OkDQor44K/44Oe44Ks44OvLOOCs+OCpuOCpOODgeODreOCpg0KK+OCq+ODr+ODj+ODqSzjg5LjgrXjgrcNCivjgqvjg6/jg4/jg6ks44K444Ol44Oz44K4DQor44Kr44Ov44OS44OILOOCq+ODhOODkuOCtQ0KK+OCq+ODr+OCpCzjg47jg6rjg5LjgrUNCivjgqvjg6/jgqQs44OO44Oq44KzDQor44OP44Ku44Ov44OpLOOCt+OCsuOCrQ0KK+ODiuODq+OCsSzjgr/jgqvjgrcNCivjgqvjg6/jgrXjgq0s44Oo44K344OS44OtDQor44Kr44Ov44K344OeLOODpuOCq+ODqg0KK+OCq+ODr+OCt+ODnizjg6bjgq3jgrMNCivjgqvjg6/jgr8s44Om44K/44KrDQor44Kr44Ok44OeLOODkuODreOCq+OCug0KK+OCq+OCtuODnuODhOODqizjg5Ljg63jgrMNCivjgq3jg4ks44K/44Kr44OV44OfDQor44Kt44Ks44OfLOODnuODiuODlg0KK+OCreOCtOOCtyzjg5LjgrXjg6QNCivjg6Ljg6rjgrXjg68s44Kt44Oo44K3DQor44Kt44Kv44OBLOODn+ODhOOCsA0KK+OCreOCr+ODgSzjgq3jgqTjg4ENCivjgq3jgq/jg4Es44OO44Oq44KqDQor44Kt44Kv44OpLOOCq+ODhOODnw0KK+OCreODoOODqSzjg4Tjg43jgqoNCivjgq3jg6Djg6ks44OS44Ot44KtDQor44Kt44Og44OpLOOCouOCseODnw0KK+OCreODoOODqSzjg4jjg6Ljg5LjgrUNCivjgq3jg6Djg6ks44Kr44OE44OO44OqDQor44Kt44Og44OpLOOCseOCpOOCpOODgQ0KK+OCreODoOODqSzjg57jgrXjgq0NCivjgq3jg6Djg6ks44Oe44K144Om44KtDQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+OCreODoOODqSzjg47jg6rjgrMNCivjgq3jg6Djg6ks44K344Oz44Kt44OBDQor44Kt44OO44K344K/LOOCv+OCpOOCsw0KK+OCreODjuOCt+OCvyzjg4jjgrfjg5LjgrMNCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kt44K344OZLOODkuODreOCrQ0KK+OCreOCt+ODgCzjg6jjgrfjg47jg6oNCivjgq3jgrfjg6Ljg4gs44K/44Kx44K3DQor44Kt44K344Oi44OILOOCv+ODhOODpA0KK+OCreOCvyzjgr/jgqvjg5/jg4ENCivjgq3jgr/jgqLjgq0s44OS44Ot44Om44KtDQor44Kt44K/44OALOODkuODreODpuOCrQ0KK+OCreOCv+OCrOODryzjg4jjgrfjg6bjgq0NCivjgq3jgr/jg5vjg6os44OS44Ot44Om44KtDQor44Kt44K/44K444OeLOOCv+ODhOODpA0KK+OCreOCv+ODoOODqSzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44K344Ky44Oo44K3DQor44Kz44OQ44Ok44K3LOOCq+OCuuODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4Hjg5Xjg6YNCivjgrPjg5Djg6Tjgrcs44Ok44K544Om44KtDQor44K344Op44KkLOODgOOCpOOCueOCsQ0KK+OCs+ODkOODpOOCtyzjg5Ljg63jg6bjgq0NCivjgrPjg5Djg6Tjgrcs44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODiOOCt+ODpA0KK+OCs+ODkOODpOOCtyzjg4jjgrfjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44OV44OfDQor44Kz44OA44OeLOODkuODreODpuOCrQ0KK+OCs+OCruOCvyzjgrHjgqTjgqTjg4ENCivjgrPjgrDjg6ws44Oo44K344Kr44K6DQor44Kz44OP44K3LOODjuODquOCt+OCsg0KK+OCs+OCtCzjgr/jgqvjg5Ljg4cNCivjgrPjg7Pjg44s44Oo44KmDQor44Kz44Oz44OOLOOCreODs+ODpA0KK+OCs+ODs+ODjizjg6Tjgrnjg5Ljg60NCivjgrPjg7Pjg47jgrks44OS44Ot44Kr44K6DQor44Kz44Kk44OHLOOCs+OCpuOCuA0KK+OCs+ODnuODhOODkOODqSzjg5Ljg4fjg4jjgrcNCivjgrPjg5/jg6Qs44Kq44K144OgDQor44Kz44Of44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCs+ODouODgCzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Kr44K644Oe44K1DQor44Kz44Oz44OJLOODnuOCteODiA0KK+OCs+ODs+ODiSzjg5Ljg4jjgrcNCivjgrPjg7Pjg4ks44Kr44OE44OkDQor44Kz44Oz44OJLOOCq+OCuuODiOOCtw0KK+OCs+ODi+OCtyzjgqLjgq3jg47jg6oNCivjgrPjgrUs44Oe44K144OIDQor44Kz44K544KuLOOCseODs+OCpOODgeODrQ0KK+OCs+OCv+OCrSzjg57jgrXjg6bjgq0NCivjgrPjgr/jg4ss44Kx44Kk44Kk44OBDQor44Kz44Ok44OeLOODn+OCrQ0KK+OCs+ODpOODnizjg5Ljg63jg58NCivjgrPjg6Tjg54s44Kr44OE44OS44KzDQor44Kz44K244OvLOODnuOCteODjuODqg0KK+OCs+OCuuODqyzjg6jjgrfjgqLjgq0NCivjgq/jg5zjgr8s44OS44Ot44K3DQor44Kv44Oc44K/LOOCuOODpeODs+OCsw0KK+OCr+ODnOODpCzjg4jjg6LjgrMNCivjgq/jg4njgqYs44K444Ol44OzDQor44K744OO44KqLOODkuODiOOCtw0KK+OCr+ODnuOCrOOCpCzjgqvjgrrjg47jg6oNCivjgq/jg6njg4njg58s44Kt44Oo44OV44OfDQor44Kv44Op44Oi44OILOODjuODquODpuOCrQ0KK+OCr+ODqeODiOODnyzjgrHjgqTjgrnjgrENCivjgq/jg6rjg44s44Ok44K544OS44OtDQor44Kv44Oq44OkLOODpuOCpuOCpOODgQ0KK+OCr+ODreODgCzjg5Ljg63jgrcNCivjgq/jg63jgqvjg68s44Of44OE44Ki44KtDQor44Kv44K144Kr44OvLOODjuODluODn+ODhA0KK+OCr+OCteODjizjgrXjg4jjgrcNCivjgq/jg6/jg5Djg6ks44OI44K344OS44OtDQor44Kv44Ov44OOLOODpOOCueODkuODrQ0KK+ODqOOCt+ODgCzjgrXjg4jjg6sNCivjgq/jgrrjg44s44OS44Ot44Kr44K6DQor44Oe44OB44OALOODkuODreOCtw0KK+ODnuOCqOODgCzjgrHjg7PjgqTjg4ENCivjg57jgqjjgqvjg68s44Of44ON44Kr44K6DQor44Kq44Kq44K/44OLLOOCv+ODgOOCt+OCsg0KK+ODnuOCrSzjgr/jgq/jg6QNCivjg57jgq3jg44s44OI44K344KqDQor44Oe44Or44Kq44KrLOODpOOCueODkuODrQ0KK+ODnuODq+ODpOODnizjgrjjg6Xjg7PjgrPjgqYNCivjg57jg6vjg6Tjg54s44OO44Oq44OS44OtDQor44Oe44Or44Ok44OeLOODn+ODjuODqw0KK+ODnuOCteOCpCzjgrfjg7PjgrQNCivjg57jgrXjgq0s44OS44OH44OoDQor44Oe44K7LOOCv+OCq+OCtw0KK+ODnuOCueODgCzjg6bjgr/jgqsNCivjg57jg4jjg5As44K/44Kr44OI44K3DQor44Oe44OI44OQLOOCr+ODi+ODkuOCsw0KK+ODnuODhOODkOODqSzjgr/jgqvjgqLjgq0NCivjg57jg4TjgqQs44OS44K144K3DQor44Oe44OE44KkLOODpOOCueODkuODrQ0KK+ODnuODhOOCq+ODryzjgrvjgqTjgqTjg4ENCivjg57jg4Tjg6Ljg6os44K344On44Km44K+DQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+ODnuODhOODouODiCzjg57jgrXjg6jjgrcNCivjg57jg4Tjg6Ljg4gs44K344Ky44OrDQor44Oe44OE44Oi44OILOOCuOODpeODs+OCsw0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg57jg4Tjg6Ljg4gs44OI44Kq44OrDQor44Oe44OE44Oi44OILOOCteODgOOCqg0KK+ODnuODhOOCqizjgqvjgrrjg6jjgrcNCivjg57jg4Tjgqrjgqss44K/44Kx44OI44K3DQor44Oe44OE44K344OeLOOCv+OCq+ODkuODrQ0KK+ODiuOCq+ODi+ODryzjg4jjgrfjg63jgqYNCivjg57jg4Tjg6Tjg54s44K444Ol44OzDQor44Oe44OE44Ok44OeLOOCuOODpeODs+OCuA0KK+ODnuODhOOCtuODryzjg5Ljg4fjg6gNCivjg5/jg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Of44OL44Ol44KmLOOCs+OCpuOCpOODgQ0KK+ODn+OCvyzjg57jg4rjg5YNCivjg5/jgr8s44OS44Ot44Kr44K6DQor44Of44K/44Og44OpLOOCuOODpeODsw0KK+ODn+ODhOODgCzjgqrjgrXjg6ANCivjg5/jg4Tjg4As44K444Ol44Oz44Kk44OBDQor44Of44OE44Oe44K/LOODqOOCt+ODjuODqg0KK+ODn+ODhOOCquOCqyzjgqLjg6TjgrMNCivjg5/jgqbjg6ks44Kt44On44Km44KzDQor44Of44Km44OpLOODn+ODieODqg0KK+ODn+ODr+OCvyzjg4rjgqrjgq0NCivjg4rjgqzjgrss44K/44Kr44K3DQor44Of44Ok44KxLOOCouOCreOCqg0KK+ODn+ODpOOCsSzjg6bjgqvjg6oNCivjg5/jg6Tjg54s44K744Kk44K4DQor44Of44Ok44Oi44OILOODhuODhOOCqg0KK+ODn+ODpOODouODiCzjg5Ljg4jjg58NCivjg5/jg6Tjg4rjgqws44Oe44K144Kr44OEDQor44Of44Ok44K244KtLOODouODiOODleODnw0KK+ODn+OCuuODkCzjg5Ljg63jgrcNCivjg5/jgrrjg4zjg54s44Kr44OE44OfDQor44Of44K644K144KtLOODn+ODrw0KK+ODn+OCuuOCvyzjg47jg6rjgqLjgq0NCivjg6Ljg4Hjgrrjgq0s44K344Ol44Km44Kk44OBDQor44Oi44OB44K644KtLOOCouODhOOCrQ0KK+ODouODgeOCuuOCrSzjg4Hjgqvjg6kNCivjg6Ljgq4s44OS44Ot44K3DQor44Oi44Oi44K7LOODhOODqOOCtw0KK+ODkuODqeODjizjgqLjgq3jg5Ljg4cNCivjg6Ljg6os44Om44Km44KtDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODouODqizjg57jgrXjg6bjgq0NCivjg6Ljg6os44K344Ky44KqDQor44Oi44Oq44Kr44OvLOOCt+ODs+OCuA0KK+ODpOOCruOCt+OCvyzjgqTjgrXjgqoNCivjg6Ljg6rjg6Ljg4gs44Kz44Km44Kk44OB44Ot44KmDQor44Oi44Oq44Oi44OILOOCs+OCpuOCuA0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg6Ljg6rjgqrjgqss44Ki44Kt44OS44KzDQor44Oi44Oq44K344K/LOODquOCqA0KK+ODouODquOCvyzjgq/jg4vjg5Ljg60NCivjg6Ljg6rjgr8s44Kt44Oo44Ko44KkDQor44Kr44ON44KzLOOCq+OCuuOCouOCrQ0KK+ODouODquOCvyzjg57jgrXjg6bjgq0NCivjg6Ljg6rjg6/jgq0s44OO44OW44Om44KtDQor44Oi44Ot44OJ44OfLOODqOOCpuOCpOODgQ0KK+ODouODiOODj+OCtyzjg6jjgrfjg5Ljg4cNCivjg6Ljg4jjgrjjg54s44OG44OE44KqDQor44Oi44OI44KtLOOCseOCpOOCsw0KK+ODouODqizjg5/jg68NCivjgqbjgrnjgqQs44Kr44Kq44OrDQor44Og44Op44Kr44OfLOOCv+OCseOCqg0KK+ODoOODqeOCq+ODnyzjg4DjgqTjgrvjgqQNCivjg6Djg6njgqvjg58s44OS44OH44K3DQor44Og44Op44Kr44OfLOODkuODiOOCtw0KK+ODoOODqeOCvyzjg6jjgrfjgqoNCivjg6Djg6njgr8s44Kt44Oo44OS44KzDQor44Og44Op44Ok44OeLOOCteODiOOCtw0KK+ODoOODiOOCpizjg6jjgrfjg5Ljg60NCivjg4rjg4DjgrDjg4Es44K544Of44OIDQor44OK44Ks44OP44K3LOOCpOOCteOCqg0KK+ODiuOCrOOCpCzjg57jgrXjg5Ljg60NCivjg4rjgqzjg6Djg6ks44Oe44Kz44OIDQor44OK44Ks44KqLOODnuOCteODnw0KK+ODiuOCrOOCt+ODnizjg5/jg4Hjg47jg6oNCivjg4rjgqzjgrfjg54s44Of44Oo44KzDQor44OK44Ks44K/LOODiuOCquODqg0KK+ODiuOCrOOCvyzjg47jg5zjg6sNCivjg4rjgqzjg4Tjgqss44OO44Oq44Om44KtDQor44OK44Ks44Ok44OeLOOCteODiuOCqA0KK+OCpuODgeODgCzjgr/jgqvjg5Ljg4cNCivjgqbjg4Hjgr7jg44s44K/44Kr44K3DQor44OK44Kr44OALOODiOOCt+ODpA0KK+ODiuOCq+OCrOODryzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjgqzjg68s44Om44Kt44OS44OtDQor44OK44Kr44Ks44OvLOODgeODj+ODqw0KK+ODiuOCq+OCrOODryzjg4rjgqrjg6bjgq0NCivjg4rjgqvjgrjjg54s44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44K444OeLOODkuODreOCouOCrQ0KK+ODiuOCq+OCuOODnizjgq3jg6fjgqbjgrMNCivjg4rjgqvjg5/jg4Es44Oq44Ol44Km44Kk44OBDQor44OK44Kr44Oi44OILOODpOOCueODiOODog0KK+ODiuOCq+ODouODiCzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOODpuODn+OCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjgqLjgq3jg6Tjg54s44K/44Kr44K4DQor44OK44Kr44Og44OpLOODkuODh+ODiA0KK+ODiuOCq+ODoOODqSzjg4Tjg4jjg6ANCivjg4rjgqvjg6Djg6ks44K/44Kr44KzDQor44OK44Kr44Og44OpLOODpuOCreOCsw0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg5LjgrMNCivjg4rjgqvjg6Djg6ks44K744Kk44K4DQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg58NCivjg4rjgqvjg6Djg6ks44K144OI44K3DQor44OK44Kr44OOLOOCv+OCq+OCtw0KK+ODiuOCq+ODjizjgrHjgqTjgrgNCivjg4rjgqvjgrfjg54s44OO44Oq44KqDQor44OK44Kr44OE44OcLOODnuOCteODkuOCsw0KK+ODiuOCq+ODhOOCqyzjg4bjg4Tjg63jgqYNCivjg4rjgqvjg6Tjg54s44Oe44Kz44OIDQor44OK44Kr44Ok44OeLOODnuOCteODkuOCsw0KK+ODiuOCq+OCtuODryzjgqrjgrXjg6ANCivjg4rjgqrjg4Tjgqss44Ki44Kt44KzDQor44OK44Op44OP44OpLOOCteODiOOCtw0KK+ODiuODq+OCt+ODnizjg57jgrXjgrMNCivjg4rjg4jjg6os44OS44Ot44K/44KrDQor44OL44Kk44K444OeLOODpuOCqw0KK+ODi+OCpOODpCzjg6rjgqsNCivjg4vjgrcs44OI44K344OS44K1DQor44OL44K3LOODnuOCteODkuODrQ0KK+ODi+OCt+ODlizjgqLjg6TjgrMNCivjg4vjgrfjg4As44K/44OE44OkDQor44OL44K344OP44OpLOOCv+OCq+OCouOCrQ0KK+ODi+OCt+OCq+ODryzjg57jgrXjgrMNCivjgr/jg4rjgqss44Kk44K144KqDQor44OL44K344Kr44OvLOODnuOCteODiA0KK+ODi+OCt+ODouODiCzjg5Ljg4fjgqLjgq0NCivjg4vjgrfjg6Ljg4gs44OK44Kq44KzDQor44OL44K344Og44OpLOOCv+OCq+OCtw0KK+ODi+OCt+ODoOODqSzjgrPjgqbjgr7jgqYNCivjg4vjgrfjg44s44Kx44Oz44K4DQor44OL44K344OOLOOCt+ODs+ODpA0KK+ODi+OCt+OCquOCqyzjg57jgrXjg47jg5YNCivjg4vjgrfjgrbjgq0s44Kx44Oz44K4DQor44OL44K344K244OvLOODgOOCpOOCueOCsQ0KK+ODi+ODryzjg6Ljg6rjg6jjgrcNCivjg47jg5Ys44Of44OO44OrDQor44OO44Ks44Kk44OILOODjuODluODpuOCrQ0KK+ODjuOCsOODgSzjg6jjgqbjgrMNCivjg47jgrgs44OS44Ot44Om44KtDQor44OO44K444OeLOODjuODquOCqg0KK+ODjuODoOODqSzjgqLjgq3jgrMNCivjg47jg6Djg6ks44K344Oz44Kk44OBDQor44OO44OK44KrLOODpuOCreODjuODqg0KK+ODiuOCq+OCuOODnizjg4Hjg5Xjg6YNCivjg47jgrbjgq0s44Of44Kt44KqDQor44OO44K244KtLOODqOOCt+ODpuOCrQ0KK+ODjOODryzjgr/jgrHjgrcNCivjgqrjg4Es44K/44Kr44K3DQor44Kq44OB44Ki44KkLOODiOOCt+ODpuOCrQ0KK+OCquODgCzjgqLjg4TjgrcNCivjgqrjgqzjgrXjg6/jg6ks44Oo44K344Om44KtDQor44Kq44Ks44K144Ov44OpLOODiOODn+OCqg0KK+OCquOCrOOCvyzjgqvjgrrjg4/jg6sNCivjgqrjgqzjg68s44Kx44Oz44Kk44OBDQor44Kq44Ku44OP44OpLOODkuODreOCrQ0KK+OCquOCquODj+ODqSzjgqvjg4Tjg58NCivjgqrjgqrjg5As44Om44Of44KzDQor44Kq44Kq44OQLOOCqOOCpOOCuA0KK+ODnuODhOODgCzjgrfjgrLjg6bjgq0NCivjgqrjgqrjgqgs44Om44Km44K4DQor44Kq44Kq44Ks44KtLOOCq+OCuuODkuODrQ0KK+OCt+ODp+OCpuOCuOODnizjg4jjgrfjg5Ljg4cNCivjgqrjg4/jg54s44OS44Ot44Om44KtDQor44Kq44Kq44OP44K3LOOCseOCpOOCsw0KK+OCquOCruODjizjgrfjgrLjgq0NCivjgqrjgqrjgqvjg68s44Kz44Km44Kk44OBDQor44Kq44Kq44Kr44Ov44OpLOODnuODiuODlg0KK+OCquOCrSzjg57jgrXjg5LjgrMNCivjg43jg6Ljg4gs44K444Ol44OzDQor44Kq44Kq44Kv44OcLOODjuODluODpuOCrQ0KK+OCquOCquOCr+ODqSzjg4jjg6Ljg5LjgrMNCivjgqrjg54s44OI44Oi44OS44K1DQor44Kq44Kq44Of44KrLOODhuODhOOCtw0KK+OCquOCquODouODqizjg5Ljg4fjg58NCivjgqrjgqrjg6Ljg6os44OS44Ot44Ki44KtDQor44Ov44K/44OK44OZLOOCq+OCuuOCouOCrQ0KK+OCquOCquODi+OCtyzjg5/jg4Tjg6sNCivjgqrjgqrjg4vjgrcs44Oe44K144OS44OHDQor44Kq44OOLOOCteODiuOCqA0KK+OCquODjizjgrjjg6Xjg7PjgrMNCivjgqrjgqrjg4zjg54s44Oe44K144KqDQor44Kq44K344OeLOOCv+OCq+ODpuOCrQ0KK+OCquOCt+ODnizjg57jgrXjgrcNCivjgqrjgqrjgr8s44Oe44K144Om44KtDQor44Kq44Kq44K/LOODouODiOOCpA0KK+OCquOCquOCvyzjgqvjgqrjg6sNCivjgqrjgqrjgr/jgqss44OI44K344Ki44KtDQor44Kq44Kq44K/44KxLOOCteOCqOOCsw0KK+OCquOCquOCv+OCsSzjg5Ljg4fjg5Xjg58NCivjgqrjgqrjgr/jg4ss44Kv44OL44KqDQor44Kq44Kq44OE44OcLOOCouODhOODpuOCrQ0KK+OCquOCquODhOOCqyzjg4bjg4TjgqoNCivjgqrjgqrjg4Tjgqss44OI44K344OS44KzDQor44Kq44Kq44OE44KtLOOCpOOCuuODnw0KK+OCteOCs+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqrjgqrjg68s44K144OI44K3DQor44Kq44Kq44OkLOOCuOODpeODs+OCu+OCpA0KK+OCquOCpOOCq+ODryzjg57jgrXjgq0NCivjgqrjgqvjg5ks44Oe44OK44OWDQor44Kz44OQ44Ok44K3LOOCveOCpg0KK+OCquOCq+ODgCzjg6Tjgrnjg5/jg4QNCivjgqrjgqvjg4As44OG44OE44K4DQor44Kq44Kr44OALOODhuODhOODpA0KK+OCquOCq+ODouODiCzjg5Ljg4fjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44OS44OH44OO44OWDQor44Oh44OpLOODkuODreODpuOCrQ0KK+OCquOCq+ODjizjgqvjgrrjg47jg6oNCivjgqrjgqvjgrbjgq0s44Kr44K644Om44KtDQor44Kq44Kt44K/LOOCteODiOOCsw0KK+OCquOCr+ODgCzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgqrjgq/jg4zjgq0s44Oe44K144Kr44K6DQor44Kq44Oz44OALOODgeOCuuOCsw0KK+OCquODs+ODgCzjg5Ljg6njgr/jgqsNCivjgqbjg4Tjg58s44Oe44K144OS44OtDQor44Kq44Kq44OOLOOCv+OCq+OCtw0KK+OCquOCquODjizjg6bjgq3jg5Ljg60NCivjgqvjg6/jg6Ljg4gs44OS44OH44Om44KtDQor44Kr44OJLOOCr+ODi+ODkuODrQ0KK+OCquOCt+ODnizjgrfjg63jgqYNCivjgqrjgqrjgrnjg58s44Ki44Kt44OpDQor44Kq44Kq44K/LOOCq+OCuuODpuOCrQ0KK+OCquODquOCpCzjgrfjg6Xjg7PjgrgNCivjgqrjg6rjgr8s44K344Ol44Km44Kk44OBDQor44Kq44Kq44K144KrLOODiOODqOODkuODhw0KK+OCquOCveODjuOCpCzjg6bjgq3jgqoNCivjgqrjgrbjgrUs44Om44Kt44OO44OWDQor44Kq44K244OvLOOCv+ODhOOCuA0KK+OCquOCtuODryzjg4rjgqrjg47jg6oNCivjgqrjgrbjg68s44Ok44K544OS44OtDQor44K344Op44OI44OqLOOCuOODpeODsw0KK+OCquOCvuODjSzjgqLjgq3jgqoNCivjgrXjg44s44OS44Ot44OS44K1DQor44K144Kk44OI44KmLOODnuOCteODnw0KK+OCteOCpOODiOOCpizjg4rjgqrjgq0NCivjgrXjgqTjg4jjgqYs44Of44Ko44KzDQor44K144Kk44OI44KmLOOCseOCpOOCuA0KK+OCteOCpOODiOOCpizjg4HjgqvjgrMNCivjgrXjgqvjgqQs44OS44Ot44OfDQor44K144Kr44KkLOOCseODs+OCuA0KK+OCteOCq+OCpCzjg57jgrPjg4gNCivjgrXjgqvjgq3jg5Djg6ks44Of44OE44Ki44KtDQor44K144Kr44Oi44OILOODrOOCpOOCsw0KK+OCteOCq+ODouODiCzjg6jjgrfjgqoNCivjgrXjgqvjg6Ljg4gs44OI44Oi44KzDQor44K144Kr44Oi44OILOOCuOODpeODs+ODmuOCpA0KK+OCteOCq+ODouODiCzjgqvjgqrjg6sNCivjgrXjgqvjg6Djg6ks44Kx44Oz44K4DQor44K144Kr44ONLOOCs+OCpuOCuA0KK+OCteOCq+OCvyzjg57jgrXjg5LjgrMNCivjgrXjgqvjgr8s44Oe44K144OS44OtDQor44Ki44Kv44K/44Ks44OvLOODnuOCteODkuODrQ0KK+OCteOCr+ODqeOCpCzjg57jgrXjg4gNCivjgrXjgq/jg6njgqQs44Or44Oq44KzDQor44Oe44OE44OQ44OpLOODquODp+OCpuOCsw0KK+OCteOCr+ODqeOCpCzjgrXjg4jjg6sNCivjgrXjg4rjgq4s44Oo44K344KtDQor44K144OOLOODpuOCreOCsw0KK+OCquOCquOCrOOCrSzjg4Hjg5Ljg60NCivjgrXjgrXjgq0s44OV44Of44OS44OtDQor44K144K144KtLOODiOOCquODqw0KK+OCteOCteOCrSzjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgq0s44Kk44Kv44OV44OfDQor44K144K144KtLOODiuOCrOODnuOCtQ0KK+OCteOCteOCrSzjg4jjg6LjgrMNCivjgrXjgr/jgrEs44K/44Kr44Om44KtDQor44Kz44OA44OeLOODnuOCteODkuODrQ0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44OV44K444KqDQor44K144OI44KmLOODkuODh+ODj+ODqw0KK+OCteODiOOCpizjg57jg6Ljg6sNCivjgrXjg4jjgqYs44Oe44Om44OfDQor44K144OI44KmLOOCt+ODreOCpg0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrXjg4jjgqYs44OS44OH44OO44OqDQor44K144OI44KmLOOCseOCpOOCpOODgQ0KK+OCteODiOOCpizjgqLjgq3jg5Ljg60NCivjgrXjg4jjgqYs44OS44OH44KtDQor44K144Kr44KkLOOCseODs+OCuA0KK+OCteODr+ODgCzjgrPjgqbjgr/jg63jgqYNCivjgrvjgqzjg68s44K144OI44OrDQor44K744Kk44OOLOOCt+ODp+OCpuOCuA0KK+OCu+OCrSzjg4Tjg4jjg6ANCivjgrvjgq3jg4ks44K344Oz44K4DQor44K744Kt44OOLOODjuODquODkuODrQ0KK+OCu+OCqizjgr/jgqvjg6bjgq0NCivjgrvjg6rjgqvjg68s44Kq44K144OgDQor44K344OQ44K144KtLOODkuODreODjuODqg0KK+OCt+OCrCzjgqvjg4rjg58NCivjgrfjgrLjg6ss44Oo44K344KzDQor44K344Oe44OALOOCouODhOOCtw0KK+OCt+ODnuODgCzjg5/jg4TjgqgNCivjgrfjg57jg4As44Oe44Kz44OIDQor44K344Oe44OALOOCq+OCquODqw0KK+OCt+ODnuODouODiCzjg5/jg4Tjg6TjgrkNCivjgrfjg57jg6Djg6ks44K/44OE44OkDQor44K344Oe44OOLOOCv+OCq+OCtw0KK+OCt+ODn+OCuizjgr/jgqvjgqLjgq0NCivjgrfjg5/jgros44OI44K344OS44OtDQor44K344Of44K6LOOCv+ODgOOCtw0KK+OCt+ODn+OCuizjg4Tjg4jjg6ANCivjgrfjg5/jgros44Kz44Km44K444Ot44KmDQor44K344Of44K6LOOCteODiOODqw0KK+OCt+ODn+OCuizjg5/jgrrjgq0NCivjgrfjg6Ljg4As44OS44Ot44Om44KtDQor44K344Oi44Ks44KtLOOCseODs+ODpA0KK+OCt+ODouODj+OCvyzjg5Ljg63jg6bjgq0NCivjgrfjg6Ljg6Djg6ks44OO44OW44OS44OtDQor44K344Oi44Kq44KrLOODiOOCt+OCouOCrQ0KK+OCt+ODoOODqSzjgrfjg6fjgqbjgqTjg4ENCivjg6Tjgqjjgqzjgrcs44Ki44OE44KzDQor44K344OO44K244KtLOOCouODhOOCtw0KK+ODj+OCruODr+ODqSzjg5Ljg4fjgqoNCivjgrfjgqrjg4As44Oe44K144OS44OIDQor44K344Kq44K/LOODkuOCteODqOOCtw0KK+OCt+OCquOCtuODryzjgrHjg7PjgqTjg4ENCivjgrfjg6njgqQs44K/44Kx44K3DQor44K344Op44Kk44K3LOODiOODouODkuOCtQ0KK+OCt+ODp+OCpuODgCzjgrHjg7PjgrgNCivjgrfjg6XjgqYs44OI44Oi44KzDQor44K944Oh44OkLOODnuOCteOCtw0KK+OCueODgCzjgq/jg5/jgrMNCivjgrnjgqgs44OS44OH44KqDQor44K544Ko44K/LOODkuODh+OCqg0KK+OCt+ODluOCpOODgSzjg5Ljg4fjg6bjgq0NCivjgrnjgqzjg44s44OS44Ot44Om44KtDQor44K544Ks44Ov44OpLOODkuOCteOCv+OCqw0KK+OCueOCruOCqCzjgqvjg4Tjg4jjgrcNCivjgrnjgq7jg57jgrUs44Kx44Kk44K/DQor44K544Ku44Oi44OqLOODjuODluODpuOCrQ0KK+OCueOCruODouODiCzjg4jjgqrjg6sNCivjgrnjgq7jgrXjgq0s44Oo44Km44KzDQor44K544Ku44Km44OpLOODpuOCreOCqg0KK+OCueOCruOCpuODqSzjgrjjg6Xjg7PjgqTjg4ENCivjg5/jgrrjgqrjg4Es44K/44Kr44K3DQor44K544Ku44Ok44OeLOODnuOCteODpA0KK+OCueOCruODpOODnizjg57jg4rjg5YNCivjgrnjgq7jg6Tjg54s44Kx44OzDQor44K544Ku44Ok44OeLOOCv+OCseOCtw0KK+OCueODnyzjg57jgrXjg6Ljg4gNCivjgr/jg5njgqQs44Oo44K344OO44OqDQor44K544OK44OfLOODkuODreOCsw0KK+OCueOCteODryzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Ki44Kt44KzDQor44K544K644KtLOOCqOOCpOOCuA0KK+OCueOCuuOCrSzjg5Ljg4fjg6bjgq0NCivjgrnjgrrjgq0s44OS44Ot44Ki44KtDQor44K544K644KtLOOCq+ODiuOCsw0KK+OCueOCuuOCrSzjgqvjg4rjgrMNCivjgrnjgrrjgq0s44Kr44K644Oo44K3DQor44K544K644KtLOOCseODs+OCvw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Oe44K144OO44OqDQor44K544K644KtLOODiuODquODnuOCtQ0KK+OCv+ODmSzjg6rjg6XjgqbjgqTjg4Hjg63jgqYNCivjgr/jg4Hjg4/jg6ks44K/44Kr44K3DQor44K/44KyLOODiOOCt+OCrQ0KK+OCv+OCsOODgSzjg6/jgr/jg6sNCivjg4rjgqvjgr8s44Ov44K/44OrDQor44K/44Kw44OBLOOCt+ODsw0KK+OCv+OCuOODnizjgqLjgq3jg6kNCivjgr/jgrjjg54s44Oe44Kz44OIDQor44K/44Kr44OALOOCs+OCpuOCpOODgQ0KK+OCv+OCq+OCruODryzjg5/jg4Tjg5Ljg60NCivjgr/jgqvjg4/jgrcs44Kr44K644Oo44K3DQor44K/44Kr44OP44K3LOODkuODreODpOOCuQ0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg47jg6oNCivjgr/jgqvjg4/jgrcs44Of44OE44OI44K3DQor44K/44Kr44Kv44OpLOOCs+OCpuOCuA0KK+OCv+OCq+OCr+ODqSzjg6Tjgrnjg57jgrUNCivjgr/jgqvjg4/jgrcs44Ok44OS44OtDQor44K/44Kr44OP44K3LOOCouOCreODleODnw0KK+OCv+OCq+ODj+OCtyzjgqrjgrXjg6ANCivjgr/jgqvjg4/jgrcs44Om44Km44K4DQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg4TjgqvjgrUNCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OBDQor44K/44Kr44OP44K3LOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg57jgrPjg4gNCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44Kv44OpLOODhOODiOODoA0KK+OCv+OCq+ODn+ODpCzjgr/jg57jg58NCivjgr/jgqvjgrXjgrQs44Kv44OL44OS44KzDQor44K/44Kr44K144KtLOODnuOCteODiA0KK+OCv+OCq+OCuyzjg57jgrXjg5Ljg4gNCivjgr/jgqvjg4Tjgqss44K344Oz44Kk44OBDQor44K/44Kr44Ok44OK44KuLOOCt+OCsuODqw0KK+OCv+OCq+ODpOODiuOCrizjg6Tjgqjjgq3jg4ENCivjgr/jgrHjg4Es44OS44OH44Ki44KtDQor44K/44Kx44OALOODkuODreOCtw0KK+OCv+OCseODgCzjgqTjg4Tjg5Ljg4gNCivjgr/jgrHjgqzjg58s44Kr44OE44OfDQor44K/44Kx44OS44K1LOODnuOCs+ODiA0KK+OCv+OCseOCpCzjg47jg5bjgqoNCivjgr/jgrHjgqQs44K/44OA44Om44KtDQor44K/44Kx44Kr44OvLOOCv+OCseODkuOCsw0KK+OCv+OCseODoOODqSzjg4jjgrfjg5Ljg4cNCivjgr/jgrHjg4rjgqss44OI44K344OS44OtDQor44Kk44Oe44KkLOODqOOCpuOCpOODgQ0KK+OCv+OCseOCteOCsyzjg6jjgqbjgqTjg4ENCivjgr/jgrHjgrfjg54s44Kr44OE44K344Ot44KmDQor44K/44Kx44Km44OBLOODkuODreODiOOCtw0KK+ODkuODgOOCqyzjg4jjgqrjg6sNCivjgr/jgq3jg6Ljg4gs44Of44OJ44OqDQor44K/44Kt44K244OvLOOCreOCr+ODnw0KK+OCv+ODnuOCpCzjg57jgrXjg6sNCivjgr/jg6Djg6ks44K344On44Km44Kk44OBDQor44K/44OK44OZLOOCqOOCpOOCuA0KK+OCv+ODiuODmSzjg6jjgqbjg5jjgqQNCivjgr/jg4rjgqss44Ki44Kt44OIDQor44K/44OK44KrLOOCpOOCteODoA0KK+OCv+ODiuOCqyzjg5/jg4njg6oNCivjgr/jg4rjgqss44Oo44K344OK44OqDQor44K/44OK44KrLOODpOOCueOCuA0KK+OCv+ODiuOCqyzjgr/jgqvjgrcNCivjgr/jg4rjgqss44Ki44Oq44OS44OIDQor44K/44OK44KrLOOCt+ODs+OCtA0KK+OCv+ODiuOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOOCv+OCq+OCtw0KK+OCteODjizjg5Ljg63jg5Xjg58NCivjgr/jg4ss44Ko44Kk44Kk44OB44Ot44KmDQor44K/44OL44Og44OpLOODqOOCt+ODleODnw0KK+OCv+ODi+ODpOODnizjg4DjgqTjgrnjgrENCivjgr/jgrXjgqss44Ok44K544Oe44K1DQor44Kr44OI44KmLOOCqOOCpOOCuA0KK+ODhuODqeODgCzjg6jjgrfjg6bjgq0NCivjg4bjg6njg57jgqgs44Oe44KtDQor44OG44Op44OL44K3LOODjuODluODpuOCrQ0KK+ODhuODqeODi+OCtyzjg5Ljg63jg5/jg4QNCivjg4bjg6njgr7jg44s44Kr44Kq44OqDQor44OI44OT44K/LOODnuOCteODnw0KK+OCpOOCuuODn+OCteODryzjg5Ljg4fjgq0NCivjg4jjg4As44K144OI44K3DQor44OI44Kw44OBLOOCv+OCseOCtw0KK+ODiOODnuODhCzjg4jjg6LjgqLjgq0NCivjgqLjgq3jg6Djg6ks44OO44OW44Om44KtDQor44OI44Kt44K/44KxLOOCv+OCseOCtw0KK+ODiOOCr+ODnuOCuSzjgqLjgq3jg5Ljg60NCivjg4jjgq/jgr/jgrEs44Ki44Kt44OS44KzDQor44OI44Oe44KtLOOCq+OCuuODpA0KK+ODiOODn+OCpCzjg57jgrXjg5Ljg60NCivjg4jjg5/jgr8s44Kt44Of44KqDQor44OI44Of44Ok44OeLOODnuOCteODiA0KK+ODiOODouODgCzjgq/jg5/jgrMNCivjg4jjg6Ljg4rjgqws44Oe44K144OO44OqDQor44OI44K144KrLOODiuOCquODiA0KK+ODiOODg+ODiOODqizjgqLjgq3jg5LjgrMNCivjg57jg4Tjgqos44Oo44K344Om44KtDQor44OI44Oo44OALOODqOOCt+ODpuOCrQ0KK+ODhOODnOOCpCzjgqLjgq3jg6kNCivjgqvjg4jjgqYs44OI44K344OS44OtDQor44OE44OB44OkLOOCq+OCuuOCtw0KK+ODhOODgCzjgrfjg7PjgrQNCivjg4Tjgrgs44Oe44K144OS44KzDQor44OE44K4LOODqOOCpuOCpOODgQ0KK+ODhOOCuOODjizjg6jjgqbjgrnjgrENCivjg4TjgqvjgrPjgrcs44Ki44Kt44OpDQor44OE44Kr44Oi44OILOOCt+OCsuODkuODrQ0KK+ODhOOCq+OCtuOCrSzjg5Xjg5/jg5Ljg60NCivjg4Tjgq3jgqLjgrcs44Ki44Kt44OpDQor44OE44Kt44K244OvLOOCs+OCpuOCuA0KK+ODhOODn+OCvyzjgqjjgqTjgqTjg4ENCivjgqjjg7Pjg4ks44K/44OA44OS44KzDQor44OE44OILOODiOOCt+ODkuODrQ0KK+ODhOODoOODqSzjg6jjgrfjgqoNCivjg4Tjg43jgqvjg68s44K944OO44K544KxDQor44OE44Or44Kq44KrLOODqOOCt+ODkuOCsw0KK+ODhOODq+OCvyzjg47jg6rjgrMNCivjg4Tjg6vjgr8s44Oi44OI44Om44KtDQor44OE44Or44K/LOOCv+ODhOODpuOCrQ0KK+ODhOODhOODnyzjgrfjg6Xjg7Pjg6QNCivjg4Tjg4Tjg58s44Kr44OE44OfDQor44OE44Ov44KzLOODpuOCqw0KK+ODhOODpOODnizjgq3jg6jjg5XjgrUNCivjgqbjg4Hjg4As44K344On44Km44KzDQor44Km44OB44OALOODnuOCteODkuODrQ0KK+OCpuODgeODgCzjgrvjg4TjgrMNCivjgqbjg4Hjg6Tjg54s44K344Oz44K0DQor44Km44OB44Ok44OeLOODkuODh+OCqg0KK+OCpuODiSzjgq3jg6jjg58NCivjgqbjgqjjg4As44OP44Or44KtDQor44Km44Ko44OALOODqOOCpuOCueOCsQ0KK+ODnuODhOODoOODqSzjg4DjgqTjgrjjg63jgqYNCivjgqbjgqjjg4As44Ki44Kx44OfDQor44Km44Ko44OALOOCouOCreOCqg0KK+OCpuOCqOODnuODhCzjg5Ljg4fjgqoNCivjgqbjgqjjg44s44OS44Ot44OfDQor44Km44Ko44OOLOOCuOODpeODs+OCuA0KK+OCpOOCt+ODgCzjgqvjgrrjg5LjgrMNCivjgqbjg6Hjg4As44Kz44Km44K744KkDQor44Km44Oh44Ks44KtLOOCr+ODi+OCsw0KK+OCpuODjizjg57jg6Ljg6sNCivjgqbjg6njg4/jgrcsDQor44K344Of44K6LOOCteODiOOCtw0KK+OCqOOCrOOCt+ODqSzjgr/jg4DjgrcNCivjgrnjgqjjgqvjg40s44OG44Or44Om44KtDQor44Km44OELOODiOOCquODqw0KK+OCpuODhOODj+OCtyzjg4jjgrfjg5Ljg60NCivjgqbjg4Tjg58s44Kx44Kk44Kk44OBDQor44Ov44OALOODhOODjeODleODnw0KK+ODr+ODgCzjgr/jg4Tjg58NCivjgq3jgr/jg6/jgq0s44K744Kk44KtDQor44Ov44K344K6LOODj+ODq+ODiuOCrA0KK+ODr+OCv+ODmSzjg5Xjg5/jg6gNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ov44K/44OK44OZLOODnuOCteODpA0KK+ODr+OCv+ODiuODmSzjgrXjg4jjg58NCivjg6/jgr/jg4rjg5ks44K344Oz44Kk44OBDQor44Ov44K/44OK44OZLOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg4Tjg4jjg6ANCivjg6/jgr/jg4rjg5ks44Oo44K344Ki44KtDQor44Ov44K/44OK44OZLOODhOODjeOCqg0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6gNCivjg6/jgr/jg4rjg5ks44Ko44Kk44K4DQor44Ov44K/44OK44OZLOODkuODreOCsw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44OE44K3DQor44Ov44K/44OK44OZLOODpuOCpuOCuOODreOCpg0KK+ODr+OCv+ODiuODmSzjg6TjgrnjgqoNCivjgqjjg4/jg6ks44Ki44OE44K3DQor44Ov44K/44OK44OZLOODkuODh+OCouOCrQ0KK+ODr+OCv+ODqeOCpCzjgrjjg63jgqYNCivjg6Tjgqjjgqzjgrcs44Kq44K144OgDQor44Ok44OP44KuLOOCt+ODjuODlg0KK+ODpOODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg4As44K/44Kx44K3DQor44Ok44Oe44OALOODqOOCpuOCuA0KK+OCs+ODs+ODiSzjg4jjgrfjg6QNCivjg6Tjg57jg4As44Ki44OE44K3DQor44Ok44Oe44OALOOCquOCteODoA0KK+ODpOODnuODgCzjg5/jgq0NCivjg6Tjg57jg4As44Ki44Kt44OS44OtDQor44Ko44OO44Oi44OILOODkuODreOCtw0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kt44Oz44OkDQor44OV44K444K/LOODnuOCteODiOOCtw0KK+ODpOODnuOCsOODgSzjgrXjg4jjgrMNCivjg6Tjg57jgrDjg4Es44Ok44K544OS44OtDQor44Ko44K244KtLOODkuODiOOCtw0KK+ODpOODnuOCsOODgSzjgrXjg4jjg6sNCivjg6Tjg57jg6Ljg4gs44K144OI44K3DQor44Ok44Oe44Oi44OILOODiOOCquODqw0KK+ODpOODnuODouODiCzjg6TjgrnjgrcNCivjg6Tjg57jg6Ljg4gs44K/44Kx44K3DQor44Ok44Oe44Oi44OILOOCs+OCpuOCpOODgQ0KK+ODpOODnuODouODiCzjgrPjgqbjgq0NCivjg6Tjg57jg6Ljg4gs44OI44K344Om44KtDQor44Ok44Oe44Oi44OILOODnuOCteODqw0KK+ODpOODnuODiuOCqyzjg5Ljg63jgrcNCivjg6Tjg57jg40s44Of44OB44OrDQor44Ok44Oe44OO44Kv44OBLOOCteODiOOCtw0KK+ODpOODnuOCteOCrSzjgr/jgqvjgrcNCivjg6Tjg57jgrfjgr8s44Oe44K144Kr44K6DQor44Ok44Oe44K344K/LOODkuODreOCrQ0KK+ODpOODnuOCt+OCvyzjgrHjgqTjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrfjgr8s44Kz44Km44KtDQor44Ok44Oe44K344K/LOOCt+OCsuODnw0KK+OCt+OCteOCpCzjg57jgrXjg6bjgq0NCivjg6Tjg57jgrfjgr8s44OI44K344OS44OtDQor44Ok44Oe44Km44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCpuODgSzjg57jgrPjg4gNCivjg6Tjg57jgrbjgq0s44OS44OH44KqDQor44Ok44Oe44K244KtLOOCv+ODgOOCtw0KK+ODpOODnuOCtuOCrSzjg6Djg4Tjg58NCivjg6Tjg4rjgq7jg6Ljg4gs44K/44Kx44K3DQor44Ok44OOLOODquODp+OCpuOCuA0KK+ODpOODjizjg5Ljg63jgq0NCivjg6Tjgrfjg60s44Ok44K544K3DQor44Ok44K244OvLOODnuOCs+ODiA0KK+ODqOODgCzjgrfjg6Xjg7PjgrnjgrENCivjg6jjgq4s44OV44Of44Om44KtDQor44Oo44Kz44KkLOOCs+OCpuOCuA0KK+ODqOOCs+ODpOODnizjgrHjg7Pjgrfjg6fjgqYNCivjg6jjg43jgrbjgq0s44OV44OI44K3DQor44Oo44K344OALOOCuOODpeODsw0KK+ODqOOCt+ODgCzjg6rjgqjjgrMNCivjg6jjgrfjg4As44Kr44K644Oo44K3DQor44Oo44K344OALOOCuOODpeODs+OCsw0KK+OCqOODk+ODiizjgrvjgqTjgqTjg4ENCivjg6jjgrfjg4As44K/44OA44K3DQor44Oo44K344OALOOCv+ODhOOCqg0KK+ODqOOCt+OCpOOCsSzjg6Tjgrnjg47jg6oNCivjg6jjgrfjg6Djg6ks44Of44OE44Om44KtDQor44Oo44K344Og44OpLOOCteODiOODqw0KK+ODqOOCt+ODjizjgrfjg7PjgqTjg4ENCivjg6jjgrfjgqos44OO44Oc44OrDQor44Oo44K344K/44KxLOOCt+OCsuODqOOCtw0KK+ODpuOCouOCtSzjg4bjg4TjgrgNCivjgqrjgqrjg6/jg4As44K344On44Km44K4DQor44Ko44Kw44OBLOOCteODiOODqw0KK+OCquOCtuODryzjgqvjg4Tjg6bjgq0NCivjgrXjg4jjgqYs44Of44OE44Ki44KtDQor44K344Oz44K/44OLLOOCv+OCseODnw0KK+OCueOCruOCv+ODiyzjg6jjgrfjg5LjgrMNCivjgr/jgqvjg4/jgrcs44Kk44K644OfDQor44K/44Kt44K244OvLOODiuOCquOCrQ0KK+ODn+ODqOODgCzjgrHjg7PjgrgNCivjg6Tjg57jg4As44Kt44Oo44K3DQor44Ok44OP44KuLOOCteODiOOCtw0KK+OCreODpCzjgr/jg4DjgrcNCivjg5/jgrvjgq0s44OO44Oq44Kr44K6DQor44Ko44OO44Oi44OILOOCseODs+OCv+ODreOCpg0KK+OCteOCr+ODqeODgCzjg57jgrXjgq0NCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44OQ44OQLOOCv+OCseOCqg0KK+OCouODnCzjgqvjgqrjg6oNCivjgqLjg4Djg4Es44Kz44Km44OY44KkDQor44Ki44Kr44K144KrLOODnuOCteODkuODrQ0KK+OCouODnuOCteOCrSzjg5Ljg4fjg4gNCivjgqLjgqrjgq0s44Kr44Oz44K4DQor44Ki44K844Ks44OfLOOCt+OCsuOCq+OCug0KK+OCqOODieODjizjg5Xjg5/jg5Ljg60NCivjg4njgqQs44Kr44K644KqDQor44OV44K444KkLOODiOODouODkuODiA0KK+ODleOCuOOCpCzjgrXjg6bjg6oNCivjg5Xjgrjjg6Ljg4gs44OS44Ot44KtDQor44OV44K444Oi44OILOOCv+OCseOCtw0KK+ODleOCr+ODj+ODqSzjg47jg5bjg6bjgq0NCivjg5Xjgq/jgqrjgqss44OG44OE44OkDQor44OV44Kv44K344OeLOOCseODs+OCpOODgQ0KK+ODleOCteODpOODnizjgrPjgqbjgqTjg4ENCivjgrTjg4jjgqYs44Oo44K344OS44OtDQor44OP44Oe44OZLOOCqOOCpOOCuA0KK+ODj+ODiuODgCzjgrHjgqTjgrnjgrENCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44OtDQor44OS44OTLOOCteOCq+OCqA0KK+ODkuODqeODhOOCqyzjgqvjgrrjg6bjgq0NCivjgqTjgqvjg6os44K/44Kr44Om44KtDQor44Kk44Kv44K/LOOCouOCreODkuOCsw0KK+OCpOODnuOCpCzjg4bjg4TjgrcNCivjgqTjgrfjg4/jg6ks44Ok44K544OS44OtDQor44Kk44K944OALOOCs+OCpuOCpOODgQ0KK+OCpOOCveOCtuOCrSzjg6jjgrfjgr/jgqsNCivjgrjjg7PjgrDjgqYs44Oo44K344Ki44KtDQor44OK44KkLOODn+ODjuODqw0KK+OCuOODp+OCpuODi+OCtyzjgqrjgrXjg58NCivjgqvjgrjjg4/jg6ks44Oo44K344Ki44KtDQor44Kr44Oe44K/LOOCv+ODhOODpA0KK+OCq+ODoeOCpCzjgqLjgq3jg6kNCivjgqvjg5/jg6Tjg54s44OG44OE44OkDQor44Kr44OI44KmLOOCv+ODhOOCuA0KK+OCq+ODiOOCpizjg4jjgrfjg6bjgq0NCivjgqjjg58s44OS44OH44Ki44KtDQor44Kr44Ov44Oi44OqLOODnuODouODqw0KK+OCreODoOODqSzjg6jjgrfjg5Ljg60NCivjgq3jg6Djg6ks44Kr44K644KqDQor44Kt44K344OZLOOCr+ODi+ODkuOCsw0KK+OCreOCt+OCq+ODryzjgqvjgrrjg6jjgrcNCivjgq3jgr/jgqzjg68s44K344Oz44Kk44OBDQor44Kt44K/44OK44KrLOODoeOCsOODnw0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Ky44OzDQor44Kz44Kk44KxLOODiOOCpuOCvw0KK+OCs+OCpOOCuuODnyzjgqvjgrrjg6QNCivjgrPjgrjjg54s44K/44Kr44OS44K1DQor44Kz44OL44K3LOOCreODqOOCq+OCug0KK+OCs+ODpOODnizjgr/jgq/jg6QNCivjgq/jg4njgqYs44Kr44K644OkDQor44Kv44Oe44K144KtLOODqOOCt+OCouOCrQ0KK+OCr+ODreODgCzjg5Ljg63jgqvjgroNCivjgq/jgrXjgqss44K344Oz44K0DQor44Ko44Oz44OJLOOCseODs+OCuA0KK+ODnuOCqOOCq+ODryzjg57jgrXjg5Ljg60NCivjg57jg6vjgr8s44OS44OH44KtDQor44Oe44OE44K344K/LOOCt+ODs+OCtA0KK+ODn+OCr+ODiyzjg4jjg5/jgqoNCivjgqjjg7Pjg4ks44Oo44K344OO44OqDQor44Of44ONLOODpOOCueOCv+OCqw0KK+ODn+OCpuODqSzjgrfjg6XjgqbjgqTjg4ENCivjg5/jgr7jgrDjg4Es44K344On44Km44K4DQor44Ob44OzLOODqOOCt+OCouOCrQ0KK+ODn+OCuuOCt+ODnizjgrfjgrLjg6sNCivjgqjjg4As44K/44Kr44K3DQor44OK44Ks44KqLOOCouODhOOCtw0KK+ODiuOCq+ODoOODqSzjg4jjgqrjg6sNCivjg4rjgqvjg4vjgrcs44Om44Km44K4DQor44OK44Kr44OOLOODqOOCpuOCsw0KK+ODiuOCq+OCqizjgqvjg4Tjg6QNCivjg43jg6Ljg4gs44Oe44K144Om44KtDQor44OL44K344Kr44OvLOOCs+OCpuOCuA0KK+ODi+OCt+ODr+OCrSzjgrHjg7PjgqTjg4ENCivjg47jg4As44K/44Kr44KzDQor44OO44Kw44OBLOODn+ODiOOCtw0KK+OCquODgeOCouOCpCzjgrPjgqbjgrgNCivjgqrjgqrjg4/jgrcs44Ok44K544Oo44K3DQor44Kq44OOLOOCv+OCr+OCuA0KK+OCqOODnyzjg5Ljg4fjgqoNCivjgqrjgq/jg6Djg6ks44Oe44K144OS44OtDQor44Kq44Kv44OOLOODkuODh+ODn+ODhA0KK+OCqOODs+ODiSzjg6jjgrfjgr/jg4ANCivjgqrjgqrjg4vjgrcs44Ki44Kt44OpDQor44Kq44K244KtLOOCr+ODi+ODj+ODqw0KK+OCteOCqOOCrSzjg47jg6rjg6bjgq0NCivjgrXjgqzjg68s44OO44Oc44OrDQor44K144Kv44OeLOODnuOCteODmw0KK+OCteODiOOCpizjgrfjgrLjgqLjgq0NCivjgrXjg4jjgqYs44Of44OE44OS44OtDQor44K144OvLOOCreODqOOCv+OCqw0KK+OCu+OCrOODryzjgrPjgqbjgrgNCivjgrvjgq0s44Om44Kt44KqDQor44K744Oz44OALOOCseODs+OCuA0KK+OCt+ODluODpCzjgrfjg6XjgqbjgqTjg4ENCivjgrfjg5/jgros44Oo44K344OP44OrDQor44K344Oz44OH44OzLOOCouOCreODqOOCtw0KK+OCt+OCquOCvyzjg5Ljg4jjgrcNCivjgrfjg6Xjgq/jgr/jg4ss44OI44K344KqDQor44K544Ok44OeLOODkuODreOCsw0KK+OCueOCuuODoOODqSzjgqTjgrXjgqoNCivjgr/jgqvjgqrjgqss44Oo44K344Om44KtDQor44K/44Kx44Km44OBLOOCq+ODhOODjuODqg0KK+OCv+OCseOCpuODgSzjgqvjgrrjgrcNCivjgr/jg57jgqQs44Oe44K144OS44OtDQor44K/44OzLOOCq+OCuuODkuODrQ0KK+OCv+ODiuOCqyzjgrHjg7PjgrQNCivjgqjjg4jjgqYs44OG44Or44Ki44KtDQor44K/44OL44OS44OpLOOCq+OCuuODkuODrQ0KK+OCv+ODi+ODpOODnizjgq3jgq/jgqoNCivjgr/jgqrjgqss44K344Ky44KtDQor44K/44K344OeLOODnuOCteODpuOCrQ0KK+OCv+OCtuODryzjg5/jgq3jgqoNCivjg4jjgq3jgr8s44Kr44OE44Oo44K3DQor44OI44Of44K/LOOCt+OCsuOCrQ0KK+ODiOODn+OCvyzjgrHjg7PjgrgNCivjg4jjg5/jgr8s44Ki44Kt44KqDQor44OE44K444OZLOODkuODreOCsw0KK+ODhOOCuOOCq+ODryzjgrHjg7PjgqTjg4ENCivjgqjjg7Pjg4ks44K444Ol44Oz44KzDQor44Of44Ok44K244KtLOODnuOCreOCsw0KK+ODr+ODgCzjg6jjgrfjgr/jgqsNCivjg6/jgr/jg4rjg5ks44OS44Ot44OfDQor44Ok44Oe44OALOODiuOCquODpA0KK+ODpOODnuODgCzjgr/jg4DjgrcNCivjg6Tjg57jg4As44K144Ok44KrDQor44Ok44Oe44Kw44OBLOODjuODquOCqg0KK+ODpOODnuODouODiCzjgr/jgqvjgrMNCivjg6Tjg57jgqrjgqss44Kr44OE44OO44OqDQor44Ok44Oe44K344K/LOODjuODluOCqg0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5LjgrUNCivjg6Tjg57jgr7jgqgs44OS44Ot44Oe44K1DQor44Ok44KqLOODpOOCueODj+ODqw0KK+ODpOOCueODgCzjgrXjg4jjgrcNCivjg6jjg4Tjgr/jg4ss44Oo44K344KqDQor44Oo44K344OP44OpLOODkuODh+OCqg0KK+ODqOOCs+OCpuODqSzjg57jgrXjgqoNCivjg5Ljg6njgrss44K344Ky44KqDQor44Oe44OE44KkLOOCpOODgeOCv+ODreOCpg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrUNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Kr44OI44KmLOODiOOCt+OCr+ODiw0KK+OCr+ODi+ODiOODoizjg47jg5bjg6bjgq0NCivjgqjjg7Pjg4ks44K044KmDQor44Kk44OI44KmLOOCteODiOODqw0KK+OCquOCq+OCtuOCrSzjg5Ljg4fjgqoNCivjg5Ljg63jg4/jgrcs44Ok44K544KqDQor44K144Kr44KtLOODqOOCpuOCsw0KK+ODn+OCrSzjg4jjgq3jgrMNCivjgq/jg57jgq0s44Oe44K144KqDQor44K/44Ok44OeLOODhuODhOOCqg0KK+OCquOCquODr+OCrSzjgq3jg4/jg4ENCivjg5/jg6fjgqbjg4njgqYs44Oe44K144OIDQor44Kr44OI44KmLOODkuODreODqOOCtw0KK+ODkOODkCzjg5/jgq3jgqoNCivjgqvjg43jgrMs44OP44Or44OS44KzDQor44Kz44Kw44OsLOODkuODreOCouOCrQ0KK+OCv+OCseODgCzjg6jjgrfjg47jg6oNCivjgqTjg4Hjg6Djg6ks44Oe44Oi44OrDQor44Kk44OI44KmLOODjuODnOODqw0KK+OCpuOCqOODj+ODnizjg5/jg47jg6sNCivjg4rjgqvjgqQs44Kz44Km44K4DQor44Kz44OQ44Ok44K3LOODnuOCteOCqg0KK+OCt+ODnuODgCzjg57jg4rjgqoNCivjg6HjgrDjg60s44K344Ky44OrDQor44Ok44Oe44OkLOODkuODreOCtw0KK+ODleOCuOOCvyzjg5/jg4TjgrANCivjg57jg4jjg5As44OB44OS44OtDQor44Kk44OI44KmLOODouODiOOCq+OCug0KK+ODiuOCq+OCpCzjgrfjgrrjgqoNCivjgqrjgqvjg4As44Oe44K144OS44OIDQor44OO44Oi44OILOODiOOCt+OCrQ0KK+ODiuOCrOOCt+ODnizjg6jjgqbjgrgNCivjg6jjg43jgqvjg68s44K/44Oi44OEDQor44Ov44K/44OK44OZLOODiOOCquODqw0KK+ODoOODqeODnuODhCzjg4jjg6Ljg4HjgqsNCivjgq3jgr/jg4ss44Om44Km44Kk44OB44OtDQor44Of44Kr44OfLOODkuODreOCtw0KK+OCouODgOODgSzjg5/jg4TjgqoNCivjgqTjg47jgqbjgqgs44Oe44K144Ki44KtDQor44Kq44Kr44OALOOCv+OCq+OCouOCrQ0KK+OCq+ODr+OCt+ODnizjg4bjg4TjgqoNCivjgrvjgq0s44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODqOOCt+OCuA0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6sNCivjgq/jg6rjg4/jg6ks44OB44OP44OrDQor44Ov44K/44OK44OZLOOCseOCpOOCueOCsQ0KK+ODleOCuOOCq+OCvyzjg5/jg4TjgqoNCivjg6jjgrfjg4gs44OO44Oq44KqDQor44Kr44Ov44K7LOOCquOCteODoA0KK+OCv+ODiuOCqyzjg57jgrPjg4gNCivjgqTjg57jgqQs44Kx44Oz44K4DQor44Kz44Og44OtLOODpuOCreODiOOCtw0KK+ODnuOCqOODgCzjgqjjgqTjgrQNCivjgrPjgqTjgrEs44Kq44K144OgDQor44Ov44K/44OK44OZLOODn+ODgeOCouOCrQ0KK+OCs+ODs+ODiSzjg5LjgrXjg4jjgrcNCivjgqTjgrfjgqQs44OS44K144OkDQor44Of44K344OeLOOCv+OCq+OCtw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqvjgroNCivjg6Tjg57jgrfjgr8s44Kx44Oz44K4DQor44K/44OK44KrLOODquODp+OCpuOCvuOCpg0KK+ODpOODnuODgCzjg57jgrXjg4jjgrcNCivjgqvjg5/jg6Qs44Of44OB44Ok44K5DQor44Ok44Oe44Oi44OILOODquOCreOCqg0KK+OCt+OCquOCtuOCrSzjg4jjgqrjg6sNCivjg4rjgqvjg6Djg6ks44OB44Kr44K3DQor44K/44Kx44Oi44OILOOCteODgeOCqg0KK+ODgOOCseODpOODnizjg5Ljg63jg6bjgq0NCivjgqLjg6njgqvjg68s44K844Oz44K4DQor44Oo44Kz44K/LOODnuOCteODpuOCrQ0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg5LjgrMNCivjgqLjg6njgqvjg68s44OI44K344KqDQor44Kq44Kq44Of44OBLOODnuOCs+ODiA0KK+ODnuODhOOCrSzjgqjjgqTjgq0NCivjgq/jgrfjg5Pjgq0s44K544Kx44OS44OHDQor44OL44OD44K/LOODhuODq+ODkuOCsw0KK+ODhOODnOOCpuODgSzjg5/jgq3jgqoNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44K/44Kx44Og44OpLOODiOOCt+ODkuODrQ0KK+OCv+ODiuODmSzjgqvjgrrjgqoNCivjg57jgqjjg4As44Oi44OI44Kv44OLDQor44K544Ks44OP44OpLOODhuODhOOCqg0KK+OCq+ODjeOCsyzjgrfjg6fjgqbjgrgNCivjg6Tjg57jgqbjg4Es44Oe44K144OS44KzDQor44Kr44Of44K244OvLOODkuODreODleODnw0KK+OCs+OCrCzjg4jjgq/jg5Ljg60NCivjg4Tjg6vjgrXjgq0s44K544OK44KqDQor44OS44Ks44K3LOODleODn+ODkuODrQ0KK+OCpOOCt+ODgCzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjgqzjg68s44OP44Or44KqDQor44OG44Op44K344OeLOODkuOCteODj+ODqw0KK+OCreOCv+ODoOODqSzjgrfjg6Xjg7PjgrgNCivjg4/jg4Pjg4jjg6os44OS44OH44OfDQor44K144K144KtLOODqOOCt+ODkuODrQ0KK+ODm+OCqyzjgrHjg7Pjgr/jg63jgqYNCivjg47jg6Djg6ks44OG44Or44KqDQor44OP44Ok44OOLOOCq+OCuuOCqg0KK+OCouODs+OCtuOCpCzjgrfjg7PjgqTjg4ENCivjg5Xjg6vjg44s44Kt44Oo44OS44OHDQor44OL44K344Ov44KtLOOCr+ODiw0KK+ODj+OCu+OCrOODryzjg57jgrXjgqoNCivjgqTjg6/jgr8s44K/44Kr44Om44KtDQor44OI44OALOODkuODreOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg4gNCivjg5Xjg6vjgqTjgrcs44Oe44K544OfDQor44OK44Kr44Og44OpLOODleOCuOOCqg0KK+ODiuOCq+OCrOODryzjg5Ljg4fjgqoNCivjg4rjgqvjg54s44K/44OE44OkDQor44K544Ks44Ov44OpLOODnuOCueOCsw0KK+ODnuODhOODouODiCzjg4Tjg4jjg6ANCivjg4/jgrfjg6Ljg4gs44Oo44Km44K/44Ot44KmDQor44OK44Kr44OELOODpOOCueOCq+OCug0KK+OCteODiOOCpuODqizjgqLjgq3jg6kNCivjgqTjgq3jgr8s44Om44Kt44OO44OWDQor44Kt44Kv44OBLOOCv+OCseOCtw0KK+OCueODiCzjg57jgrXjg58NCivjgrfjg5Djgr8s44OS44K144OO44OqDQor44OK44Kk44OI44KmLOOCs+OCpuOCuA0KK+ODouODqizjgqvjgrrjgrMNCivjgqTjg4jjgqQs44Ki44Kt44OpDQor44Kk44OI44KmLOOCseODs+OCuA0KK+ODnuODhOOCtuOCrSzjg57jgrXjg47jg6oNCivjgqbjgqjjg44s44Of44OE44OO44OqDQor44Kr44K/44Kq44KrLOOCreODqOOCq+OCug0KK+ODkOODs+ODieOCpizjgr/jg4TjgqoNCivjgrXjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44Kk44Ov44KkLOOCt+OCsuODqw0KK+OCt+ODouODpOODnizjg5/jg47jg6sNCivjgqLjgqvjg57jg6ss44Kq44K144OgDQor44K044OI44KmLOODj+OCuOODoQ0KK+ODnuODhOODgCzjgrnjgrnjg6ANCivjg43jgqzjg58s44OI44K344KqDQor44Ok44Oe44K344K/LOODnuOCteOCquODnw0KK+ODqOODjeODpOODnizjg6rjg6Xjgqbjg5jjgqQNCivjgqTjgrfjg6Tjg54s44OS44K144KqDQor44Ki44OZ44Kr44OvLOODrOOCpOOCuA0KK+OCpOODnuODoOODqSzjgrfjgrLjg6sNCivjgqTjg6/jg4rjgqws44Of44OO44OrDQor44Km44Ko44OALOOCr+ODi+ODkuOCsw0KK+ODleOCuOOCq+ODryzjg6bjgq3jgqoNCivjgr/jg6Djg6ks44Oo44K344OS44K1DQor44Kr44K344KkLOODnuOCteODiA0KK+ODqOODjeODgCzjg57jgrXjgqoNCivjg6jjgrPjg4Qs44Ki44Kt44KqDQor44Ki44K144KqLOODpuOCpuOCuA0KK+OCv+ODiuOCqyzjgrHjgqTjgrgNCivjgr/jg4rjgqss44K/44OA44OfDQor44Ok44K344KtLOODpOOCueODpuOCrQ0KK+OCq+OCpOOCrOOCpCzjgr/jgrHjgrcNCivjgr3jgqzjg5ks44Om44Kt44KqDQor44OV44Or44Kr44OvLOOCseODs+OCuA0KK+OCq+ODr+OCpuODgSzjg6bjgqbjgqTjg4ENCivjg5XjgrjjgqQs44OO44Oq44Om44KtDQor44Kk44Kx44OO44OkLOOCv+ODhOOCqg0KK+OCquODgSzjg47jg6rjgqoNCivjg4rjgqvjg6Ljg4gs44OK44Kq44OP44OrDQor44Ov44Kr44OQ44Ok44K3LOODj+ODrOOCqg0KK+OCouODqeOCrSzjg5Xjg5/jgqoNCivjg6Tjg5ks44OS44OH44KqDQor44K/44Kr44OP44K3LOODpOOCueODkuODrQ0KK+OCt+ODkOODjizjg5/jg4TjgqoNCivjgr/jgqzjgrfjg6ks44OI44K344KqDQor44K544Of44K/LOODhuODhOODpA0KK+OCteODiOOCpizjgrPjgqbjgrjjg63jgqYNCivjg4Hjg44s44K344Ky44OIDQor44Ok44Oe44OALOODpOOCueODkuODrQ0KK+OCpOOCrOODqeOCtyzjg47jg6rjg6jjgrcNCivjgqTjgrHjgqzjg58s44Kx44Oz44Kk44OBDQor44OV44OK44OALOOCv+OCq+ODpuOCrQ0KK+OCpOODjuOCpuOCqCzjgr/jgqvjg6jjgrcNCivjg4vjgrfjg6Tjg54s44OS44Ot44K3DQor44Kk44K344OP44OpLOODiOOCt+OCv+OCqw0KK+OCueOCuuOCrSzjgr/jgqTjg4ENCivjgrPjg6Ljg6rjg6Qs44Kr44K644KqDQor44OB44Ol44Km44K0LOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjg5/jg6Tjg6Ljg4gs44OE44OI44OgDQor44OK44Kr44K/LOOCv+OCq+ODpuOCrQ0KK+OCpOODquOCv+ODiyzjgr/jgq/jgqoNCivjgqrjgqzjg68s44Om44Kt44OBDQor44Kq44ONLOOCseODs+OCuA0KK+OCs+ODnuODhCzjg57jgrXjgqLjgq0NCivjg5/jg47jg68s44OS44Ot44K3DQor44OV44K444Kr44OvLOODiuOCquODiA0KK+OCq+ODr+OCsOODgSzjg6Tjgrnjg5Ljg60NCivjg4Hjg5As44OI44K344OS44KzDQor44OK44Kr44OL44K3LOOCteODgOOCqg0KK+OCteOCr+ODnizjg5Ljg4jjgrcNCivjgr/jgrHjg57jgrUs44OI44K344Om44KtDQor44K744KtLOODqOOCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Xjg5/jgqoNCivjg5Xjgrjjg6Ljg4gs44Ok44K544KqDQor44Kq44Kw44OqLOOCv+ODhOOCuA0KK+OCpOOCt+ODkOOCtyzjgq3jg6jjgrcNCivjgqLjgrbjg58s44K344Ky44OrDQor44Kq44Ks44K144Ov44OpLOODiuOCquOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg63jgrcNCivjgr/jg4rjg5ks44Kx44Oz44K4DQor44Oi44Oq44Ok44OeLOOCt+ODpeOCpuODmOOCpA0KK+OCreOCv+OCtuODryzjg5Ljg4fjg4jjgrcNCivjgqvjg4rjgrbjg68s44Kr44OE44KqDQor44OP44Op44OALOODnuOCteODiA0KK+OCquOCr+ODpOODnizjgrXjg4jjgrcNCivjgrfjg5/jgros44K744Kk44K4DQor44Kk44OO44Oe44K/LOODpuOCreOCqg0KK+ODleODq+OCteODryzjgrvjgqTjgq0NCivjgr/jgrHjgqbjg4Es44K344Ot44KmDQor44Kq44Kq44OOLOODhOODiOODoA0KK+ODouODreOCquOCqyzjgrHjg7PjgrgNCivjgrfjg47jgrbjgq0s44OV44Of44Ki44KtDQor44OO44Kw44OBLOOCt+OCsuOCouOCrQ0KK+OCt+ODnuODgCzjgrPjgqbjgrgNCivjgqvjg6/jgrXjgq0s44Om44K/44KrDQor44Kq44Kq44Kr44OvLOODnuOCs+ODiA0KK+OCteODoeOCt+ODnizjg57jgrXjg5Ljg60NCivjg5vjgr3jgrjjg54s44Kr44K644OS44KzDQor44Ov44K/44OK44OZLOODiOODn+OCqg0KK+OCq+ODr+ODiuODnyzjg57jgrXjgqLjgq0NCivjgq/jgrXjg44s44Kx44Kk44K144KvDQor44OE44OB44K/LOODiOODouOCouOCrQ0KK+OCquOCquODj+OCtyzjgrPjgqbjgrgNCivjg47jg4As44Of44Kt44KqDQor44Ov44K/44OK44OZLOODkuOCteOCqg0KK+ODqOOCt+OCv+OCsSzjg6Tjgrnjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Ki44Kt44OpDQor44Kk44Ov44OkLOOCv+OCq+OCqg0KK+OCteOCq+ODouODiCzjg6Ljg4jjg4/jg6sNCivjgq/jg5zjgr8s44K344On44Km44K4DQor44Kk44K944Ok44OeLOOCs+OCpuOCpOODgQ0KK+OCquOCquODjizjg5/jg4TjgqLjgq0NCivjgqLjg5ks44K/44OE44KqDQor44Kq44OA44Ov44OpLOODn+ODgeOCqg0KK+OCreOCpuODgSzjgrHjg7PjgrgNCivjgqTjgrfjgqvjg68s44OI44K344OV44OfDQor44Oo44K344OALOOCv+ODhOOCqg0KK+ODgeODo+ODkOOCv+OCsSzjg57jgrXjg5Xjg58NCivjgrXjgqvjgqQs44Oo44K344KqDQor44Kq44Kq44K/LOODqOOCpuOCuA0KK+ODiuOCq+ODjizjg57jgrXjg58NCivjg4/jg4As44K/44Kr44K3DQor44OK44Kr44Ok44OeLOOCuOODpeODs+OCuA0KK+OCteOCq+OCsOODgSzjgrHjg7PjgrgNCivjg4rjgqzjgrfjg54s44Ok44K544KqDQor44K144Ks44OpLOODiOOCt+ODkuODrQ0KK+OCq+ODr+ODjizjgr/jg4Djg6jjgrcNCivjgqvjg43jgrMs44Kk44K144KqDQor44OK44Kr44OALOODn+ODhOODqw0KK+OCouODnuODjizjgr/jgqvjgrcNCivjg6Tjgrbjgq0s44K344Ol44Km44K4DQor44OS44Op44Ku44OOLOOCq+OCuuOCqg0KK+OCv+ODkOOCvyzjgqTjg4HjgqoNCivjgq/jg4vjg6bjgq0s44Ok44K544OS44OtDQor44Kq44Kv44Km44OBLOODkuODreODjuODqg0KK+OCueOCruODouODiCzjg5Ljg4fjgrgNCivjg4rjgqvjg6Djg6ks44Oq44On44Km44K4DQor44K544Ku44K144KtLOODr+OCv+ODqw0KK+ODpOODnuOCt+OCvyzjgr/jgqvjg4bjg6sNCivjg47jg6Djg6ks44Kr44K644OfDQor44K344Oe44OALOODn+ODhOODqw0KK+ODleOCr+ODgCzjgqvjgrrjg47jg6oNCivjgrXjg4jjgqYs44OS44OH44KqDQor44Kq44Kv44Oc44OqLOODkuODreOCtw0KK+ODqOOCs+OCq+ODryzjg57jgrXjg58NCivjg4fjg7Pjg4As44Kt44Oo44K3DQor44OV44Kv44OK44KsLOOCueOCueODoA0KK+OCv+OCq+OCt+ODnizjg5/jg4Tjgq4NCivjgqvjg4jjgqYs44OG44OE44KqDQor44Kk44K344Kw44OtLOOCouOCreODjuODqg0KK+OCpOOCseODmSzjgq/jg4vjg6bjgq0NCivjgqrjgqrjg4Tjgqss44K544K544OgDQor44K344Of44K6LOODqOOCt+ODjuODqg0KK+OCueOCuuOCrSzjgr/jgqvjgqoNCivjg4Tjg6Qs44Oe44Kz44OIDQor44Km44OB44OALOODnuOCteOCv+OCqw0KK+OCquODgSzjgrHjg7PjgqTjg4ENCivjgqLjg6rjgqws44K/44Kx44K3DQor44OK44Kr44K344OeLOOCq+ODhOOCuA0KK+ODnuOCteOCrSzjg57jg4Tjg58NCivjg4rjgqvjgrfjg54s44Oe44K144KqDQor44Ki44K144OP44OpLOODnuOCteODqOOCtw0KK+OCtOODiOOCpizjg5LjgrXjgqoNCivjgqbjgqjjg57jg4Qs44OS44Ot44K3DQor44K144Kt44Oi44OqLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODgCzjg4Tjg4jjg6ANCivjg5Xjgrjjgr8s44Ok44K544Oo44K3DQor44Ok44Ku44K344K/LOODiOOCt+OCqg0KK+ODoOODreODleOCtyzjg57jgrXjg5Ljg60NCivjgqvjg6Hjg4As44Ko44Kk44Kk44OBDQor44Kk44Kr44OvLOODkuODreOCv+ODgA0KK+ODpOODnuOCtuOCrSzjg5Ljg63jgrcNCivjg4Tjg6vjg4/jgrcs44Oe44Kz44OIDQor44Of44OO44K344OeLOODjuODquOCqg0KK+OCreOCt+ODouODiCzjg57jgrPjg4gNCivjgr/jgrHjgrfjgr8s44Oe44K144K3DQor44OK44Kr44K/LOOCt+ODs+OCpOODgQ0KK+OCqOODs+ODiSzjgq3jg6jjgrcNCivjg6Ljg6rjg6Qs44Kx44Kk44Oh44KkDQor44Kv44Oc44K/LOOCueODn+OCqg0KK+ODiuOCquODj+ODqSzjg5Ljg63jgrcNCivjgq/jgrIs44Kx44Oz44K4DQor44Kr44K144OOLOODnuOCteODj+ODqw0KK+OCpOOCpOODoOODqSzjgr/jgqvjgrcNCivjgqrjgqrjgr8s44Oe44K144Om44KtDQor44K/44Kx44KzLOODkuODreODleODnw0KK+ODoOODqeOCs+OCtyzjg4jjgrfjgqoNCivjg6jjgrfjg4As44Kx44Oz44K4DQor44Ki44K144OOLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODgCzjg57jgrXjg4jjgrcNCivjg4/jg6Tjgrcs44OG44OE44Ot44KmDQor44K544K644KtLOOCv+ODhOODpA0KK+OCquODgCzjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg57jgqbjg4Es44Kt44Oo44K3DQor44Kr44Ov44Kr44OfLOODhOODjeOCqg0KK+OCpuOCueODgCzjgrPjgqbjgrgNCivjgrXjg4jjgqYs44K344Oz44Kk44OBDQor44Kv44Op44K344OeLOOCt+ODs+OCuA0KK+ODnuOCuyzjg47jg5zjg6sNCivjgrPjg7Pjg44s44OS44Ot44K3DQor44Oe44OE44K244OvLOOCouOCreODqQ0KK+OCt+ODnuODgCzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Oo44K344OO44OqDQor44Kq44Kq44Kv44OcLOOCseODs+OCuA0KK+OCquOCsOODqSzjgqvjgrrjg47jg6oNCivjgrXjgq/jg54s44Ko44Kk44K4DQor44OO44Kw44OBLOODkuODreODjuODqg0KK+ODkuODiuOCvyzjgrPjgqbjgqTjg4ENCivjg5XjgrjjgqQs44K344Ol44Oz44Kk44OBDQor44K544Ku44Oi44OILOODnuOCteOCtw0KK+ODhOOCq+ODj+ODqSzjgrTjg63jgqYNCivjg5/jg4Tjg4rjgqws44Oe44K144Ki44KtDQor44OK44Kr44Og44OpLOODnuOCteODqOOCtw0KK+ODpOOCuOODnizjgr/jgrHjgrcNCivjgqvjg5/jgr8s44K544K544OgDQor44OS44KsLOOCuOODpeODs+OCrQ0KK+ODn+ODiuOCrOODryzjg6jjgrfjg4bjg6sNCivjg4jjg58s44K/44Kr44KqDQor44K144Kr44Kt44OQ44OpLOODkuODreOCtw0KK+OCq+OCr+OCvyzjgqLjgq3jg5Ljg60NCivjg4Tjg4Hjg6Qs44OS44OH44Om44KtDQor44Og44Op44K/LOOCseODsw0KK+OCv+ODiuODmSzjgqLjgq3jg6kNCivjgrfjg6Ljg4As44Oo44K344OO44OqDQor44OE44Kr44Oi44OILOOCr+ODqeOCuA0KK+ODj+ODiuODj+OCvyzjg5Ljg4fjgqoNCivjgqvjg7Pjg4As44K344Oz44K4DQor44Kr44Ov44OALOODpuOCreOCqg0KK+ODqOOCt+OCpCzjg4Tjg43jgqoNCivjgq/jg6njg6Qs44Kt44OY44KkDQor44OG44Op44K344OeLOODkuODh+ODpuOCrQ0KK+OCreOCv+OCrOODryzjg6jjgrfjgqoNCivjgqTjg4cs44OI44K344OS44OtDQor44OE44OrLOODkuOCteOCqg0KK+OCpuODhOODjuODn+ODpCzjg4jjgrfjgqvjgroNCivjg4rjgqvjgrbjg68s44Oe44K144OS44OIDQor44OS44OALOODqOOCt+ODjuODlg0KK+ODm+OCveOCq+ODryzjg5Ljg4fjgrgNCivjg4HjgrDjgrUs44K744Kk44K4DQor44K944Km44OkLOODkuODreODnw0KK+ODpOODnuOCsOODgSzjgrPjgqbjg5jjgqQNCivjgrXjgqvjg4Ys44OV44Of44KqDQor44Ki44Ov44K/LOOCt+OCsuODqw0KK+ODr+OCq+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgqjjg7Pjgrjjg6Xjgqbjgrgs44Oe44Kz44OIDQor44OO44Kw44OBLOOCs+OCpuOCpOODgQ0KK+OCq+ODr+ODoOODqSzjg57jgrXjgqoNCivjg6Ljg6rjg6Ljg4gs44Of44Kt44KqDQor44Oo44ON44OP44OKLOOCv+ODgOODkuODrQ0KK+OCuOODgCzjgqLjgq3jgqoNCivjgqbjgqjjg4As44Kx44Oz44K4DQor44K344OO44OP44OpLOOCpOOCteODoA0KK+OCv+OCq+ODpOODnizjg57jgrXjgqvjgroNCivjg6Tjg57jg6Djg60s44Oe44K144OO44OWDQor44Ov44KtLOOCuOODpeODs+OCsw0KK+OCouODnuODjizjg57jg4TjgqoNCivjg5vjgr3jgqvjg68s44OI44K344KqDQor44OI44Km44K044KmLOODkuODreODkuOCtQ0KK+ODiuOCqyzjg4jjg5/jgqoNCivjg47jg4As44K/44Kr44OO44OqDQor44Ok44Oe44K344K/LOODgeOCqOOCsw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgrcNCivjg4rjgqzjgqrjgqss44Kz44Km44K4DQor44K344OW44OkLOODqOOCt+OCq+OCug0KK+OCu+ODquOCtuODryzjgrPjgqbjgr7jgqYNCivjg5Xjgrjjg6Ljg6os44K744Kk44K4DQor44OV44Kv44OALOOCv+ODhOODkuODrQ0KK+ODleOCuOOCvyzjgr/jgqvjg5LjgrUNCivjg6Tjg57jgrgs44OS44OH44Ki44KtDQor44Kz44OQ44Ok44K3LOOCpOOCuuODnw0KK+OCs+ODkOODpOOCtyzjgq3jg6jjgrcNCivjgrfjgrfjgq/jg6ks44Oo44K344Ki44KtDQor44Kz44Kw44OsLOODnuOCteODj+ODqw0KK+ODouODqizjg6jjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44OO44Oq44K/44KrDQor44Kk44Kk44K444OeLOODjuODquODpuOCrQ0KK+OCreOCv+OCrOODryzjg6jjgrfjg4bjg6sNCivjgr/jg6Djg6ks44K/44OA44Oo44K3DQor44OK44Ks44K344OeLOODpOOCueOCqA0KK+OCqOODjuOCrSzjgqTjgrrjg58NCivjgrXjg4jjgqYs44Oo44K344OO44OWDQor44Oe44OE44Oi44OILOODqOOCt+OCqg0KK+OCpuOCqOODgCzjg5Ljg63jgqoNCivjg5/jgrrjgr/jg4ss44Ki44Kt44OpDQor44Ki44Kr44K3LOOCv+ODhOOCqg0KK+ODiuOCq+ODouODiCzjgqrjgrXjg6ANCivjg4rjgqvjg6Tjg54s44OS44Ot44OO44OWDQor44OV44K444KkLOODpOOCueODkuODrQ0KK+ODiuOCq+ODpOODnizjgrfjg6fjgqbjgqTjg4ENCivjg6jjg43jg5/jg4Qs44OG44OE44KqDQor44K/44Kr44K7LOODiOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg5Ljg4jjgrcNCivjg5Xjgqvjgrbjg68s44OI44K344OO44OWDQor44Kr44Ky44Km44OpLOODnuOCteODnw0KK+OCt+ODs+ODieOCpizjgqvjg4TjgrgNCivjgrfjg5/jgros44K/44OE44OfDQor44K144Kr44K344K/LOODqOOCt+ODjg0KK+ODn+ODpOODoOODqSzjg4jjgqrjg6sNCivjgr/jg4rjgqss44Oe44K144OI44K3DQor44K/44Kr44Kk44K3LOOCueOCueODoA0KK+OCpOOCt+OCrOOCrSzjgrHjg7PjgrgNCivjgr/jgqvjg4As44Oo44K344Kr44K6DQor44K/44OG44Kk44K3LOOCq+OCuuODiuOCqw0KK+OCteOCq+OCvyzjg5Ljg4fjgqoNCivjg6jjgrPjg4/jgr8s44OI44K344OS44KzDQor44Kv44OkLOOCv+ODouODhA0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg4cNCivjgq3jgr/jg4As44OP44Or44KqDQor44Oo44K344OALOOCt+ODs+OCuOODreOCpg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg58NCivjg4rjg6rjgr8s44Of44OE44Oo44K3DQor44Kk44OM44KkLOODnuOCteODqOOCtw0KK+ODpOOCueOCq+ODryzjg5Xjg5/jgqoNCivjg47jgrDjg4Es44K544OK44KqDQor44K344On44Km44OALOOCpOODgeOCvuOCpg0KK+ODpOODnuODgCzjg4bjg6vjg5LjgrUNCivjg6/jgq/jg4As44OE44OI44OgDQor44Ki44OZLOOCteODgOODkuODrQ0KK+OCv+OCseOCq+ODryzjgr/jgqvjgqoNCivjgrXjg4jjgqYs44OS44OH44KtDQor44OP44OK44Kq44KrLOODqOOCt+OCqg0KK+OCquOCquODjizjg5Ljg4fjgqoNCivjgr/jg4rjgqss44Kx44Oz44K+44KmDQor44OE44OO44OALOOCouOCreOCqg0KK+ODiuODnuOCqCzjgrHjg7PjgrgNCivjgr/jgqvjg4/jgrcs44K/44OA44OS44K1DQor44OK44Kr44K444OeLOOCt+OCsuODqw0KK+ODiuOCq+ODoOODqSzjgq3jg5/jgrMNCivjgqbjg6rjgqYs44OP44Or44K/44KxDQor44OV44K444Kk44OvLOODleODn+ODkuOCsw0KK+OCteOCteOCrSzjgr/jgqvjgrcNCivjgq3jg6Djg6ks44Om44K/44KrDQor44K/44Kr44KuLOOCt+ODpeOCpuOCpOODgQ0KK+OCq+OCv+ODpOODnizjg5Ljg63jg4gNCivjgqTjgrDjg4Es44Kq44K144OgDQor44Ki44OZLOODhuODq+OCqg0KK+OCueOCuuOCrSzjgr/jgqvjg5Ljg60NCivjg5Ljg6ks44Kr44K644OS44OtDQor44OK44K044K3LOODkuODh+OCouOCrQ0KK+OCouODgOODgSzjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44Oe44Oi44OrDQor44Kv44OL44Kr44K/LOOCueOCueODoA0KK+ODnuODhOOCpCzjg57jgrPjg4gNCivjgrPjgqTjg4cs44Of44OE44KqDQor44OS44Ot44K/LOODkuODreODpOOCuQ0KK+ODiOODn+ODiuOCqyzjg6jjgrfjgqoNCivjg6/jgq3jgr8s44OV44K444KqDQor44Km44Oh44Og44OpLOOCt+ODp+OCpuOCuA0KK+ODleOCsSzjg6jjgqbjgqTjg4ENCivjgqbjgqjjg57jg4Qs44Kr44OE44OfDQor44Oe44OE44K244KtLOODpOOCueODkuODrQ0KK+ODiuOCq+ODjizjg4Tjg6Ljg6sNCivjgrPjg4Djgqss44K/44Kx44KqDQor44OS44Ot44K/44OLLOOCseODs+OCuA0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4ENCivjgrXjg44s44K444Ol44Oz44Kk44OB44OtDQor44K344Of44K6LOODqOOCt+OCq+OCug0KK+OCq+ODs+OCtuOCrSzjg4bjg6vjg6jjgrcNCivjgqrjgqrjgrXjgq8s44Kr44K644KqDQor44Ov44K344OALOODnuOCteODkuODhw0KK+OCr+ODi+ODouODiCzjg6Tjgrnjg57jgrUNCivjgrfjg63jgqvjg68s44Oe44Kz44OIDQor44Kr44Ov44OP44OpLOOCseODs+OCpOODgQ0KK+OCquOCqyzjg4Tjg43jgqvjgroNCivjgrPjg6Ljg6os44Oo44K344Ki44KtDQor44OP44Ok44K3LOOCt+OCsuOCouOCrQ0KK+OCq+ODjeOCsyzjgqTjgq/jgqoNCivjgqvjg4njgqTjgrEs44OK44Kq44Of44OBDQor44Kq44Kr44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODoOODrSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgr/jg5bjg4Es44OK44Kq44KzDQor44Ok44Oe44Oi44OILOOCouOCreODjuODqg0KK+OCquOCquOCtSzjgr/jgqvjgrcNCivjgqTjg6rjgqgs44K344Oz44Kk44OB44Ot44KmDQor44K/44Kr44OPLOOCq+OCuuODkuOCsw0KK+OCv+OCpOODqSzjg4/jg6vjgqoNCivjg5/jg4rjg58s44Ok44K544Oe44K1DQor44Kk44Kx44OALOOCt+OCsuODqw0KK+OCouOCquOCrSzjg5Xjg5/jgqoNCivjg6Tjg57jgqbjg4Es44K4DQor44Oo44K344OP44OpLOODnuOCteODleODnw0KK+OCteOCteOCrSzjgqLjgq3jg5Ljg4gNCivjg5/jgrrjgr/jg4ss44OI44K344Kk44OBDQor44OS44Op44OOLOOCq+ODhOODpuOCrQ0KK+ODiuOCrOOCvyzjgqLjgq3jg6kNCivjgqvjgr/jg6Tjg54s44Kx44KkDQor44Kq44OALOODquODp+OCpuOCuA0KK+OCqOODjuODouODiCzjg6bjgqbjgq0NCivjgr/jgrHjg4rjgqss44K144Kr44KoDQor44Oe44OE44K244KtLOODkuODreOCtw0KK+ODnuODhOODkOODqSzjgrPjgqbjgrgNCivjg6Tjg57jgrfjgr8s44K744OE44KzDQor44Oh44Kw44OtLOODkuODreODqOOCtw0KK+OCquOCtuOCrSzjg5Ljg4fjg6bjgq0NCivjgqrjgqrjgqzjg58s44Kz44Km44Kk44OBDQor44Kq44Oe44KoLOOCt+ODs+OCpOODgQ0KK+OCreODgCzjgqvjg7PjgrgNCivjgqbjgqjjg44s44Kq44K144OgDQor44Kq44Kr44OALOOCq+ODhOODpuOCrQ0KK+OCq+ODiuOCteOCrSzjg4jjg5/jgqoNCivjg6Tjgqvjg5ks44OS44Ot44Om44KtDQor44OK44Og44OpLOODpuODn+OCsw0KK+OCpOOCpOOCuOODnizjg6Ljg4jjgqLjgq0NCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44Oi44OB44K644KtLOODqOOCt+ODjuODlg0KK+ODluODs+ODpCzjg4jjgrfjgqoNCivjgqrjgqvjg44s44Ok44K544KqDQor44K/44Kx44Km44OBLOOCteODiOOCtw0KK+OCpuOCqOODjizjg4jjgqrjg6sNCivjg5Xjgrjjg6Ljg4gs44OS44OH44OIDQor44Kr44Ov44Kw44OBLOODn+ODhOODj+ODqw0KK+OCv+OCreODouODiCzjg57jgrXjg47jg6oNCivjgqvjgr/jgqrjgqss44K344Ky44OrDQor44Kv44K144Kr44OvLOODiuOCquOCrQ0KK+OCouOCteOCpCzjg5Ljg4jjgrcNCivjg6Ljg6os44Ko44Kk44Kk44OBDQor44Kv44OcLOODqOOCt+OCr+ODiw0KK+OCouODs+ODieOCpizjgqTjg4Hjg63jgqYNCivjgqbjg6njg6Tjg54s44Kq44K144OgDQor44Kv44Oq44K/LOODqOOCt+OCqg0KK+OCpOODjuOCpuOCqCzjgr/jgrHjgrcNCivjgqvjg43jgqvjg68s44OS44OH44KqDQor44Km44Ko44Oi44OILOODquODp+OCpuOCvuOCpg0KK+ODiuOCq+OCqizjgrHjg7PjgqTjg4ENCivjgqrjgqvjg6Ljg4gs44OP44Or44KqDQor44OL44K344Og44OpLOOCreODqOOCtw0KK+ODpOODgCzjgqvjgrrjgqrjg58NCivjgq3jg4ks44Kq44K144OgDQor44Kq44Kr44OQ44Ok44K3LOODn+ODhOODkuODrQ0KK+OCq+ODr+OCt+ODnizjgrjjg6Xjg7Pjgr7jgqYNCivjg4/jgrfjgq0s44K/44Kr44Of44OBDQor44Of44Ok44Oi44OILOOCpOODgeODreOCpg0KK+ODiuOCq+OCqizjgr/jgqvjg5LjgrMNCivjg57jg4Tjgqrjgqss44Om44Kt44KqDQor44OS44OT44OOLOODkuODreODnw0KK+ODi+OCt+OCq+ODryzjgqvjgqrjg6sNCivjgqvjg5bjgr8s44Kx44Oz44K4DQor44Ov44K/44OK44OZLOOCreODqOOCtw0KK+ODpOODnuODjizjgrPjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44K344Ky44Of44OEDQor44K544K644KtLOODpuOCpuOCuA0KK+OCr+ODr+ODj+ODqSzjgrXjg4jjgrcNCivjg6Ljg6rjgr8s44OI44K344OS44OtDQor44OV44K444KkLOOCueODn+ODqOOCtw0KK+ODiuOCrOOCt+ODnizjg4Tjg43jg6bjgq0NCivjgqTjg4rjg6Djg6ks44Oe44K144OS44OtDQor44Kq44K244OvLOODkuODiOOCtw0KK+OCv+OCreODouODiCzjgq/jg4vjgqoNCivjg5/jg6Tjgrfjgr8s44OS44K144K3DQor44Oi44Km44OqLOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg5/jg4TjgqoNCivjg4rjgqzjg44s44Oi44OI44Ki44KtDQor44OP44Op44OILOODqOOCt+OCqg0KK+ODnuODn+ODpCzjg4jjgrfjgqvjgroNCivjg5Ljgqzjgrfjg5Djgr8s44OS44OH44KqDQor44OL44K344K/44OLLOOCteODiOOCtw0KK+OCv+OCq+OCryzjg47jg5bjg6bjgq0NCivjg4/jg4rjg4As44Of44OO44OrDQor44Ki44K144OOLOODn+ODgeOCqg0KK+ODkOODkCzjg5Ljg63jgrcNCivjgqTjg4jjgqYs44K344Oz44Kt44OBDQor44Kk44Kk44OALOOCseODs+OCtw0KK+OCs+ODj+ODpOOCq+ODryzjgr/jgrHjg5LjgrMNCivjg5Xjgrjjg6/jg6ks44Kr44OE44OfDQor44K344Ol44Kv44OqLOODpOOCueODkuOCsw0KK+ODpuOCv+ODiyzjgrHjg7MNCivjg6Djg43jgqvjg68s44Kk44Kv44KzDQor44Kr44Oz44OOLOODnuOCteODkuODrQ0KK+ODi+ODiCzjgqvjg4Tjg58NCivjgr/jg6Djg6ks44Oo44K344Ki44KtDQor44OK44Kr44K344OeLOOCteODiOOCtw0KK+OCquOCquOCvyzjg4HjgqvjgrMNCivjgqTjg47jgqbjgqgs44Oo44K344KzDQor44Kv44Oe44Oe44OrLOOCseODs+OCuA0KK+OCv+ODiuOCqyzjgrfjgrLjg6sNCivjg57jgqjjg4As44Oe44K144Ki44KtDQor44Ki44OfLOODjuODluOCqg0KK+ODn+ODiuODiCzjgqLjgq3jg6kNCivjg4vjgrfjg4As44Kr44K644KqDQor44Kk44K344OP44OpLOOCteODluODreOCpg0KK+ODiuOCq+OCt+ODnizjg4jjgrfjgqoNCivjgqTjgq/jgr8s44Ok44K544OS44K1DQor44Kq44KtLOOCv+ODgOOCqg0KK+OCq+OCrOODryzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjg5Ljg6njgqvjg68s44OI44K344KqDQor44Ok44Oe44K244KtLOODiOOCt+ODjuODqg0KK+OCr+ODnuOCrOOCpCzjgrPjgqbjgrjjg63jgqYNCivjgr/jgrfjg60s44Of44OE44K344KyDQor44K144OOLOODkuODh+ODnuOCtQ0KK+ODn+ODieODquOCq+ODryzjg5Xjg5/jg5LjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Oo44K344OfLOODkuODreOCsw0KK+OCpOODiuODnyzjg5Ljg4fjg4gNCivjg6/jgr/jg4rjg5ks44Kt44Oo44K3DQor44Kz44KsLOODiOODouODkuODhw0KK+OCueOCrOODr+ODqSzjg6Tjgrnjg5Ljg60NCivjgr/jgrHjgqbjg4Es44Oo44Km44Kk44OBDQor44Ko44OALOODqOOCt+ODreOCpg0KK+OCouODs+ODieOCpizjg5Ljg63jgqoNCivjgr/jg6vjgqQs44Om44K/44KrDQor44K044OI44KmLOODkuODreOCtw0KK+OCt+ODouOCrOOCrSzjgrfjgrLjg6sNCivjg4rjgqzjgr8s44Om44Kt44KqDQor44Ob44K344Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCs+ODn+ODiuODnyzjg57jgrXjgqoNCivjgqvjgqws44Oo44KmDQor44OP44K844Kr44OvLOODjuODluOCqg0KK+ODgeODkCzjgrfjgrrjgqsNCivjgqbjg6njg44s44K144OI44K3DQor44Kz44Oz44OOLOODiOOCt+OCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg6jjgrcNCivjg6Ljg6Ljgrss44Om44Km44KzDQor44OE44KyLOOCuOODpeODs+OCuA0KK+ODpOOCueOCs+ODgSzjg6Tjgrnjgr/jgqsNCivjg5vjgr3jgrbjg68s44K344On44Km44Kk44OBDQor44K544Ku44Ok44OeLOOCq+ODhOODpuOCrQ0KK+OCouODmSzjgr/jgrHjg6bjgq0NCivjgr/jg4rjgqss44OO44OW44Om44KtDQor44K744Kk44KxLOODpOOCueODkuODrQ0KK+ODhOOCsizjg57jgrXjg47jg5YNCivjg6/jgqvjg5Djg6Tjgrcs44Ki44Kt44KqDQor44Kq44Kq44Kv44OcLOOCv+OCq+OCqg0KK+OCquOCq+ODmSzjg5Xjg5/jgqoNCivjgqTjg6/jgqQs44OS44K144KqDQor44K/44OK44KrLOODhuODq+ODpuOCrQ0KK+ODpOODnuODouODiCzjg5/jg4TjgqoNCivjgr/jgqvjg6Tjg54s44OK44Kq44KtDQor44K/44K444OeLOODkuODh+ODjuODqg0KK+OCq+OCuuOCt+ODrSzjg57jgrXjg4/jg6sNCivjgrPjgqTjg4cs44K/44Kr44K3DQor44Kr44OiLOOCv+ODhOODjuODqg0KK+OCreOCv+OCuOODnizjg6jjgrfjg6bjgq0NCivjg4/jg57jg44s44K344Ky44OrDQor44Kk44Kk44Ok44OeLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgqTjg4ENCivjgq3jgr8s44K344Ky44Om44KtDQor44Kk44K344K/44OLLOOCteODiOOCtw0KK+OCr+OCuOODoSzjgrXjg4DjgqoNCivjgq3jgrfjgqvjg68s44Kr44K644KqDQor44OK44Ks44OOLOODnuOCteODkuODrQ0KK+ODqOODoOODqSzjgr/jg4Djg47jg6oNCivjg4rjgqvjgrfjg54s44OI44K344Om44KtDQor44Oi44OqLOOCqOOCpOOCuA0KK+ODpOODnuOCuCzjg6jjgrfjgqvjgroNCivjgqrjgrzjgq0s44Oe44K144K/44KrDQor44Kk44OK44OALOODpOOCueOCtw0KK+ODj+ODpOOCuyzjgr/jgqvjgrcNCivjg5vjg7Pjg50s44K544K544OgDQor44Kq44Kq44OkLOOCq+ODs+OCuA0KK+OCreOCv+ODoOODqSzjgr/jgqvjgrcNCivjg4jjgrfjg7Ms44K144OI44OrDQor44K/44Kx44KkLOODpOOCueODleODnw0KK+OCquOCq+ODpOODnizjg47jg5bjgqoNCivjgqTjgrfjgrrjgqss44Kz44Km44K/44Ot44KmDQor44OP44K/LOODiOOCt+OCouOCrQ0KK+OCueOCrOODj+ODqSzjg6bjgqbjgrgNCivjgqTjg6/jg58s44Ok44K544KqDQor44Om44Oi44OILOODkuODh+OCqg0KK+OCreOCv+OCrOODryzjg6bjgr/jgqsNCivjgqTjg4/jg6ks44Om44Km44K+44KmDQor44OO44Og44OpLOOCpOODgeODreOCpg0KK+ODn+ODpOOCteOCqyzjgrHjg7PjgrgNCivjg6jjgrfjg4As44OI44Oi44Oo44K3DQor44OV44Kr44OALOOCv+OCq+OCtw0KK+ODleOCuOODr+ODqSzjgqvjgrrjg5/jg4QNCivjgq3jg4gs44OI44K344Ki44KtDQor44Km44Ko44Oi44OqLOOCpOOCteOCqg0KK+ODpOODnuOCq+ODryzjg57jgrXjg58NCivjgq/jg63jg4As44Of44OB44OtDQor44Kq44Kq44OE44KrLOODkuODreOCtw0KK+OCpuOCqOODgCzjg6bjgqbjgrgNCivjgr3jg44s44Of44Kt44KqDQor44OA44KkLOODiOODouODn+ODgQ0KK+OCt+ODs+OCvuOCpizjg5Ljg63jgqvjgroNCivjgqbjgqjjg4As44Om44K/44KrDQor44Ov44Kr44Of44OkLOOCq+OCuuODnw0KK+OCq+ODoOODqSzjg5Xjg5/jg4TjgrANCivjg5Xjg6vjgr/jg4ss44K/44Kr44Oe44K1DQor44Kr44OE44Km44OpLOOCq+ODhOODnw0KK+OCr+ODnuOCpCzjgrvjgqTjgrgNCivjg5Djg5As44OP44Or44OE44KwDQor44Kr44ON44OI44OiLOOCv+ODhOODnw0KK+ODoOODqeODj+OCtyzjg4jjgqrjg6sNCivjg4njgqQs44K/44Kr44K3DQor44OK44Of44Kr44OvLOOCt+OCsuODj+ODqw0KK+OCv+OCq+OCquOCqyzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44Oq44Ol44Km44Kk44OB44Ot44KmDQor44Ov44K/44OK44OZLOODqOOCvg0KK+OCv+ODgCzjg57jgrXjg5Ljg60NCivjgqLjg6rjg54s44Oo44K344OG44OrDQor44OK44Ks44OOLOODiOOCt+ODjuODqg0KK+ODpOODjizjg4bjg6vjg6bjgq0NCivjgqTjgrXjgqss44Om44Kt44OS44OtDQor44Kk44OI44KmLOODiOOCr+OCpOODgQ0KK+ODpOODnuOCtuOCrSzjgrnjg5/jgqoNCivjgq/jg44s44Kr44K644KqDQor44K344OQLOOCseODs+OCuA0KK+OCreODoOODqSzjgqLjgq3jg6kNCivjgrnjg5/jg4As44Kr44K644KqDQor44Oi44OI44Ks44Kk44OILOODkuODreOCq+OCug0KK+ODi+ODryzjgrfjgrLjgrMNCivjgr/jgrHjgqbjg4Es44Om44Km44K4DQor44K/44Og44OpLOOCq+OCuuODqOOCtw0KK+ODnOOCpuOCvyzjgrHjgqTjgrnjgrENCivjgqvjg4njg6Qs44Om44Km44K0DQor44OP44Op44OALOODqOOCt+ODjuODlg0KK+ODn+ODhOOCpOOCtyzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44Kx44Kk44K544KxDQor44Og44Op44OP44K3LOODnuOCs+ODiA0KK+ODi+OCt+OCq+ODryzjgrfjg7PjgqTjg4ENCivjg57jgrnjg4As44Kz44Km44K4DQor44Kq44Kq44K/LOOCr+ODi+OCqg0KK+ODleOCr+OCpCzjg57jgrXjgqoNCivjgqvjgrLjg6Tjg54s44Kx44Oz44K4DQor44OK44Ks44OE44KrLOOCv+ODgOODpuOCrQ0KK+OCr+OCteODjizjgrfjgrLjgqoNCivjgrPjgrjjg54s44OS44Ot44Om44KtDQor44Kv44Op44K/LOOCv+ODgOOCtw0KK+OCv+OCseOCpuODgSzjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrHjg4As44Ki44OE44KqDQor44K/44Kr44OOLOODpuOCv+OCqw0KK+OCr+ODqeODpCzjgrfjg7PjgqTjg4ENCivjgqrjg44s44OE44OI44OgDQor44OK44Kr44OALOOCuOODpeODs+OCvuOCpg0KK+ODiOOCr+ODouODiCzjgr/jgqvjgqLjgq0NCivjgqrjgqrjg4/jgrcs44OI44K344OV44OfDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODj+ODs+ODgCzjg4bjg4TjgqoNCivjgqTjgrfjg4/jg6ks44K744Kk44K4DQor44Oo44K344OP44OpLOOCteODiOOCtw0KK+OCv+ODhuOCpOOCtyzjg4jjgrfjg5LjgrMNCivjgqTjg4jjgqYs44K344OV44OfDQor44K144OI44KmLOOCv+OCq+OCqg0KK+OCquOCquOCr+ODqSzjgrfjg6fjgqbjgrjjg63jgqYNCivjg4rjgqvjgrnjgrgs44Oo44Km44Kk44OBDQor44K/44Kk44OpLOODkuODreOCtw0KK+OCreODkuODqSzjg4/jg6vjg5LjgrMNCivjg4rjgqvjgrjjg54s44OS44OH44OE44ONDQor44Ok44Oe44K244KtLOODiOOCreOCqg0KK+ODiOODk+OCvyzjgqLjgq3jg6kNCivjg4rjgqvjgrbjg68s44OP44Or44KqDQor44OL44K344OP44OpLOOCq+OCuuOCqg0KK+ODoeOCsOODrSzjgrjjg6Xjg7PjgrgNCivjg57jg6vjg6Tjg54s44Kz44Km44K+44KmDQor44Kt44Kv44OBLOODkuOCteODjuODqg0KK+OCouOCquOCrSzjg6jjgrfjg58NCivjgq3jg4Pjgr/jgqss44K/44Of44KqDQor44Ok44K544KkLOODpuOCreOCsw0KK+OCpOODgeODnuODqyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jgrbjgq0s44OI44K344Om44KtDQor44K544Ks44OP44OpLOOCuOODpeODs+OCpOODgQ0KK+ODiOODn+ODiuOCrCzjg6jjgrfjg5LjgrMNCivjg4Hjgq7jg6os44Ko44Kk44K444Ot44KmDQor44Kq44Kq44OQLOODpuODquOCsw0KK+ODnuODhOOCpCzjg5Xjgq/jg58NCivjg5Ljg6njg6Tjg54s44Oe44K144OS44OtDQor44Ok44Oe44Og44OpLOODn+ODhOODjuODlg0KK+OCquOCquODhyzjg57jgrXjg58NCivjg6jjgrfjg4rjgqws44OB44Kr44KoDQor44Kz44K444OeLOOCv+OCseODjuODqg0KK+ODiOODn+ODiuOCrCzjg4HjgqjjgrMNCivjgrXjgqws44OG44OE44OkDQor44OP44OpLOODpuOCpuOCuOODreOCpg0KK+ODiOODn+ODqOOCtyzjgr/jgqvjgrcNCivjg6jjgrfjg4As44K944OO44KoDQor44OS44Op44OQ44Ok44K3LOODkuODreOCq+OCug0KK+ODnuODhOODiSzjg5Ljg4fjgqoNCivjgqTjg57jg5Xjgq8s44Om44Km44K3DQor44Kt44Oo44K7LOOCt+ODs+ODpA0KK+ODj+ODiuODluOCtSzjgrnjgrnjg6ANCivjg4Hjg5As44OI44K344OO44OqDQor44Ok44Oe44K244KtLOODquODpeOCpuOCuA0KK+ODiuOCq+ODj+ODqSzjgrHjg7PjgrgNCivjgqrjg44s44Kz44Km44OY44KkDQor44Km44Ko44Oe44OELOOCq+ODqOOCsw0KK+OCouOCreODpOODnizjg57jgrXjgqLjgq0NCivjg4jjgr/jg4ss44Oo44Km44Kk44OBDQor44Oo44ON44OALOODnuOCteODkuODrQ0KK+ODleODq+OCr+OCtSzjgrXjgqvjgqgNCivjg5Ljg63jg6Qs44OO44Oq44OS44OtDQor44Oo44K344OALOOCt+ODs+OCteOCrw0KK+OCq+ODjeOCsyzjgrfjgrLjg6sNCivjg4rjgqzjgr8s44Oe44K144OP44OrDQor44Kk44OZLOOCt+ODs+OCuA0KK+OCu+OCreODjSzjg57jgrXjg6bjgq0NCivjgqrjgqvjg4As44Oe44K144OP44OrDQor44Kr44OK44KkLOOCq+ODs+OCu+OCpA0KK+OCteODiOOCpizjg5Ljg4jjgrcNCivjgrXjgqvjgq3jg5Djg6ks44Oo44K344KqDQor44Kk44Oe44KkLOODn+ODj+ODqw0KK+ODkuODoeOCuCzjgrfjg7Pjgr7jgqYNCivjgqrjgq7jg4/jg6ks44Oe44K144Oo44K3DQor44K/44Kx44Og44OpLOOCv+OCq+ODjuODqg0KK+ODiOOCquODpOODnizjgr/jgqvjgrcNCivjgq3jgr/jg4/jg6ks44K/44Kr44OS44K1DQor44Kq44Kq44K144KrLOOCq+ODhOODkuOCsw0KK+OCquOCquOCs+OCpuODgSzjgqvjgrrjg57jgrUNCivjgr/jgqvjgqos44OO44Oq44KzDQor44Km44OJLOODiOOCt+ODreOCpg0KK+OCpuODjizjgq3jg7PjgrQNCivjg5Xjgrjjgq0s44OS44Ot44OfDQor44K144OI44KmLOODiOOCt+OCqg0KK+OCpOOCveOCrOOCpCzjg57jgrXjg58NCivjgqvjg6njgrXjgq0s44Oo44K344KqDQor44Ok44Oe44OALOOCv+ODouODhA0KK+ODr+ODgCzjgqjjg4TjgqoNCivjgrfjg5Djgr8s44OI44K344KqDQor44K344Kq44K244KtLOOCv+ODhOOCqg0KK+OCt+OCrCzjg5/jg4Tjg47jg5YNCivjgq/jg6rjgr8s44Of44OB44KqDQor44OP44K344Oi44OILOODqOOCt+ODreOCpg0KK+ODqOOCt+ODoOODqSzjgr/jgqvjgrcNCivjg5/jg6Tjgrbjgq0s44OS44Ot44OO44OqDQor44Kt44K/44Ks44OvLOOCreODj+ODgeODreOCpg0KK+OCquODgOOCsSzjg4Hjgqvjg6kNCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44Ok44Oe44Kk44K3LOOCreODqOOCouOCrQ0KK+OCquOCvOOCrSzjg5Ljg63jgrcNCivjgr/jgqvjgqQs44K144OI44OfDQor44Kr44ON44KzLOOCseODs+OCuA0KK+ODj+ODqeODgCzjg5Ljg4fjg6bjgq0NCivjgrfjg57jg4As44Kx44Oz44K144KvDQor44Ok44OK44KuLOOCv+OCseOCqg0KK+OCueOCuuOCrSzjgr/jgqvjg5Ljg4gNCivjgr/jgqvjg4/jgrcs44Ok44K544KqDQor44Kq44Kw44Oq44Ok44OeLOODiOOCquODqw0KK+ODr+OCv+ODiuODmSzjg47jg5bjg6bjgq0NCivjg6Tjg57jg6Djg6ks44Kx44Oz44K4DQor44K/44Kr44OP44K3LOOCv+ODgOODkuODhw0KK+OCt+OCquOCuOODnizjgqvjgqrjg6sNCivjg4Tjg6vjgqrjgqss44OI44Kq44OrDQor44Kk44OI44KmLOODiOOCt+ODn+ODgQ0KK+ODnuODhOOCpuODqSzjgrvjgqTjgq0NCivjg6Tjg57jg6Ljg4gs44K/44Kr44KqDQor44Kv44Oe44OfLOODpuOCpuOCvuOCpg0KK+OCseODs+ODqOOCtyzjgr/jgqvjgrcNCivjg6Tjg57jgqvjgrIs44Oo44K344Ki44KtDQor44K044OI44KmLOODkuODreOCqg0KK+OCv+OCseOCpuODgSzjg57jgrXjg4jjgrcNCivjg4/jg6Tjgrcs44Kr44K644Om44KtDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCpOODiizjg6rjg6fjgqYNCivjgqTjg47jgqbjgqgs44K/44Kr44Om44KtDQor44OL44K344Kr44OvLOODkuODh+OCqg0KK+ODj+ODs+ODgCzjgq3jg6jjgrgNCivjgr/jg4bjg5Djg6Tjgrcs44Kr44K644Oo44K3DQor44Kq44K344OeLOOCr+ODi+ODkuOCsw0KK+OCt+ODkOOCvyzjg4/jg6vjgq0NCivjg5/jgqbjg6ks44Ki44OE44K3DQor44Kz44Kr44K0LOOCq+OCuuODjuODqg0KK+OCpOOCpOODgCzjg6bjgr/jgqsNCivjgr/jgrHjgrnjgqgs44Kr44K644OfDQor44Kk44Ks44Op44K3LOODhuODhOODpA0KK+ODnuOCueODpOODnizjg6jjgrfjgqoNCivjgrXjgq/jg6Tjg54s44Kr44K644KqDQor44K144Kv44Op44KkLOOCseODsw0KK+OCv+ODnuODqizjg57jgrXjgqoNCivjgqTjg57jg4vjgrcs44Of44OO44OrDQor44Kq44Ks44OvLOODnuOCteODkuODiA0KK+ODj+OCruODr+ODqSzjgq3jg6jjgrcNCivjgqrjgqrjgq/jg4ss44OS44OH44OS44KzDQor44Kk44Kx44OALOOCu+OCpOOCpOODgQ0KK+ODnuOCqOOCuOODnizjgqLjgq3jg6kNCivjgqTjg6/jgqQs44Kr44OE44OfDQor44Ok44Oe44OALOODnuOCteOCrQ0KK+OCueODgCzjg57jgrXjg4gNCivjg4jjgq3jg68s44Kq44K144OgDQor44OP44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCv+OCseODouODiCzjgqvjgrrjgqoNCivjgqvjg7Pjg5Djg6Tjgrcs44Oe44K144KqDQor44OI44K244OvLOODhOODiOODoA0KK+OCv+ODhuODjizjgrfjg7PjgrQNCivjgqvjg7Pjg5ks44Kx44Kk44KzDQor44Kq44Kv44OALOODqOOCt+ODiA0KK+OCv+ODouODiCzjg4jjg5/jgqoNCivjg4rjgqzjgqQs44OO44OW44K/44KrDQor44Kq44K244OvLOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjg6Tjgrnjg4rjg6oNCivjgrPjg7Pjg4ks44Ki44Kt44KqDQor44ON44Ku44K3LOOCv+ODgOOCtw0KK+OCv+ODiuOCqyzjg4bjg4TjgqoNCivjgrPjg6Djg60s44Oq44On44Km44Kk44OBDQor44Oo44K344OALOODiOODqOODleODnw0KK+OCpOOCpOOCuOODnizjg5Ljg63jg58NCivjg4vjgqTjg5vjg6os44Kr44K644KqDQor44Kz44Oi44Oq44OkLOODqOOCt+OCv+OCqw0KK+OCt+ODs+ODieOCpizjg5Ljg4fjgrrjg58NCivjg6Tjg44s44Oo44Km44Kk44OBDQor44K/44OK44KrLOODnuOCteODiOOCtw0KK+ODj+OCruOCv+ODiyzjg63jgq/jg63jgqYNCivjgrPjgrnjgq4s44OA44Kk44Kt44OBDQor44Kk44OZLOODjuODquOCqg0KK+OCq+ODiuOCtuODryzjg5Ljg63jgrcNCivjgr/jg4As44K/44OA44OS44K1DQor44OK44Ks44K/LOODquODpeOCpuOCueOCsQ0KK+OCq+ODnuODgCzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44Kq44Kk44OHLOODnuOCs+ODiA0KK+OCv+OCq+OCr+ODqSzjg5Ljg63jgrcNCivjg6Tjgrnjg57jg4Qs44K544K544OgDQor44Oe44OrLOODqOOCt+ODkuOCtQ0KK+OCr+ODnOOCvyzjg47jg5zjg6sNCivjgr/jg5Djgr8s44Kx44Kk44Kk44OBDQor44Oi44Oq44K/LOODjuODquOCqg0KK+OCr+ODi+ODiOODoizjg4Tjg43jgrgNCivjgqLjgrXjg4zjg54s44OS44Ot44Kr44K6DQor44Ob44K344OKLOODpOOCueOCqg0KK+ODjuOCtuODryzjg4/jg6vjg5LjgrUNCivjg57jg4Tjg6Djg6ks44K344Oz44Kk44OBDQor44OS44Op44Kr44K/LOOCq+OCuuOCqg0KK+ODkuODqeODnizjg4/jg6vjgqoNCivjgrfjg5/jgros44K/44Kr44K3DQor44Oo44Kz44Kr44OvLOODr+OCv+ODqw0KK+OCreOCr+ODgSzjgqLjg4TjgrcNCivjgq/jg63jgrXjg68s44Kk44K144OgDQor44K/44Kx44Km44OBLOODhuODhOOCqg0KK+ODkuODqeOCrCzjg6jjgqbjgrgNCivjgrXjgqTjg4jjgqYs44OO44Oq44KqDQor44Km44OB44Oc44OqLOOCs+OCpuOCpOODgQ0KK+OCpOODiuODoOODqSzjg6jjgrfjg4/jg6sNCivjgqrjgrXjg4As44K/44Kr44K3DQor44K544Ku44Ok44OeLOOCv+OCq+ODiOOCtw0KK+OCpOODnuOCuizjg6Tjgrnjgr/jg4ANCivjgqbjg6njg44s44Oe44K144Oo44K3DQor44Oi44OB44K644KtLOOCq+OCuuOCqg0KK+OCueOCrOODryzjgrfjgrLjg6sNCivjgqTjgrHjg4As44OI44K344KqDQor44K/44OK44KrLOODj+ODq+OCqg0KK+OCteOCpOODiOOCpizjgr/jg4TjgrgNCivjg5Xjgrjjgr8s44OI44K344Of44OBDQor44Of44Ok44ONLOODhOODiOODoA0KK+OCq+ODnuODgCzjg5/jg47jg6sNCivjg43jgq7jgrcs44Oo44K344OO44OqDQor44Kq44Kv44Ks44OvLOODpuOCreOCqg0KK+ODj+ODpOOCtyzjg5LjgrXjgrcNCivjg5Djg5As44OO44OW44OS44KzDQor44Ok44Oe44Oi44OILOODhOODiOODoA0KK+OCqOODs+ODiSzjg47jg5zjg6sNCivjgr3jg6Hjg6Qs44Kq44K144OgDQor44Ki44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCouODmSzjgqLjgq3jg6kNCivjg4Hjg5As44K/44OE44KqDQor44K/44Kr44Ok44OeLOODn+ODjuODqw0KK+ODpOODnuOCrSzjg6bjgqbjgrgNCivjgr/jgrHjgqbjg4Es44K344Ky44OV44K1DQor44K/44Kx44OZLOOCv+OCq+OCqg0KK+OCouODgOODgSzjg6jjgrfjgqLjgq0NCivjgr/jgqvjgrfjg54s44Ki44Kt44OpDQor44Oo44Kz44Ok44OeLOODjuODquODiuOCqg0KK+OCt+ODqeOCpOODgSzjg57jgrXjg6sNCivjgq/jg4njgqYs44K344Ky44KqDQor44K544K644KtLOOCreODqOOCtw0KK+OCv+OCq+OCt+ODnizjgr/jgqvjgrcNCivjg6Tjg57jgqzjgr8s44Of44OO44OrDQor44Oo44K344OALOOCv+OCr+OCqg0KK+ODn+ODpOOCq+ODryzjgrHjg7PjgrgNCivjgrXjgrXjgq0s44Og44OE44OfDQor44Kk44OH44Km44OpLOOCq+OCuuOCsw0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjgqTjg4jjgqYs44Ki44OE44OS44KzDQor44Kq44Kq44OELOOCv+OCseOCtw0KK+ODleOCqOOCrSzjg4jjgrfjgqvjgroNCivjgrfjg6Ljg5XjgrUs44Ki44OE44K3DQor44Of44Ok44Kr44OvLOODnuOCteOCv+OCqw0KK+ODj+OCt+ODouODiCzjgr/jgqvjgrcNCivjg6Tjg57jgr7jgqgs44Kz44Km44K4DQor44OL44Kk44Kv44OpLOODjuODluOCqg0KK+ODr+OCv+ODiuODmSzjg4jjgrfjg47jg6oNCivjg6Djg63jg5Xjgrcs44Kr44OKDQor44Kr44Oz44OALOOCq+ODhOODnuOCtQ0KK+OCr+ODieOCpizjgrHjgqTjgrMNCivjgr/jgqvjg4/jg6ks44Ov44K/44OrDQor44Kq44Kr44OALOOCseOCpOOCuA0KK+ODieOCpCzjgrXjg4jjg6sNCivjgr/jg4rjg5ks44Oe44Oi44OrDQor44Kz44Og44OtLOOCseODs+OCpOODgQ0KK+ODouODquODpOODnizjg5Xjg5/jgrMNCivjgqLjg6njg57jgq0s44OO44OW44KqDQor44Kz44K344OZLOOCq+OCuuODrQ0KK+OCteODjizjg47jg5bjg5Ljg60NCivjgqrjgqvjg4As44Oo44K344Oe44K1DQor44OV44K444Ov44OpLOOCreODp+OCpuOCsw0KK+ODnuODhOOCqizjgqvjgrrjg58NCivjgr/jg4rjgqss44Of44ON44KqDQor44Kt44OP44OpLOODiuOCquOCrQ0KK+ODi+OCt+ODj+OCvyzjg6bjgqYNCivjg4vjgrfjg6/jgq0s44Oo44K344K/44KrDQor44Kq44Kr44K244KtLOODkuODreOCq+OCug0KK+ODleOCuOODr+ODqSzjgqrjgrXjg6ANCivjg6Tjgrnjg4As44Om44Kr44KzDQor44Kq44KrLOOCreODp+OCpg0KK+ODm+OCveODjizjgrfjgrLjgqoNCivjgqLjgqvjgrcs44K/44Kv44OeDQor44OK44Kr44KkLOOCs+OCpuOCpOODgQ0KK+ODpOOCueODgCzjgq3jgq/jgrgNCivjg4bjg6njg6Djg6ks44OV44Of44K/44KrDQor44Kv44Oc44K/LOODqOOCt+ODpuOCrQ0KK+OCs+ODi+OCtyzjgrfjgrLjg58NCivjg47jg6Djg6ks44Ki44Kt44OpDQor44Kk44OO44K7LOOCr+ODi+OCsw0KK+ODr+OCv+ODiuODmSzjg6Tjgrnjg5LjgrMNCivjg4vjgrfjgqos44Kr44K644OS44K1DQor44Oi44Of44KtLOOCs+OCueOCsQ0KK+OCueODiuODgCzjg5Ljg63jgr/jgqsNCivjgr/jgrHjgqbjg4Es44K144OB44KzDQor44Ki44Kt44K7LOODkuODreOCtw0KK+OCt+OCquOCvyzjg6jjgrfjg5LjgrMNCivjgq3jg4ks44Oo44K344Ki44KtDQor44Kk44K344Ov44K/44OqLOODiOOCt+OCqg0KK+OCt+ODqeOCrOODnyzjgr/jgqvjg5Ljg60NCivjgqbjg4Hjg4rjgqws44OS44OH44OkDQor44K/44OK44KrLOOCt+ODs+OCpOODgeODreOCpg0KK+OCr+ODreOCteOCrSzjg4bjg4TjgqoNCivjgqrjg4jjgrcs44Om44Km44Kk44OBDQor44K144OI44KmLOODnuOCteOCqg0KK+OCueOCuuOCrSzjg57jgrXjg6bjgq0NCivjg5Ljg63jgr8s44K144Kk44K4DQor44Ok44OO44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCteOCq+ODouODiCzjg57jg6Ljg6sNCivjgrPjg6Djg60s44Oe44K144OIDQor44Kk44Oe44K/LOODqOOCpuOCpOODgQ0KK+ODm+OCveODpCzjgqvjgrrjgr/jgqsNCivjg4bjg6njgrXjgqss44Oe44K144Om44KtDQor44Ob44Oz44OeLOOCq+OCuuOCqA0KK+OCq+OCueOCrCzjg5Ljg63jgrfjgrINCivjg57jg4Tjg4DjgqTjg6ks44Ko44Kk44K4DQor44Kr44Ov44Kr44OfLOOCt+ODpeOCpuOCuA0KK+ODjeOCtOODrSzjgrfjg7PjgrgNCivjg5Xjgq/jg4As44Ko44Kk44K+44KmDQor44K544K644KtLOODkuODreOCtw0KK+ODiOODnuODhCzjg6jjgrfjgrgNCivjgqTjg44s44K/44OE44Ot44KmDQor44K544K644KtLOOCuOODpeODs+OCuA0KK+OCouOCteOCpCzjgqvjgrrjgqoNCivjg4/jg6ks44K/44Kr44OO44OqDQor44Ob44K3LOOCr+ODi+OCq+ODhA0KK+ODiuODq+OCq+ODryzjgqvjgrrjg47jg6oNCivjgqrjg4As44K/44Kr44Ki44KtDQor44Kq44OQ44OKLOOCt+OCsuODpOOCuQ0KK+OCv+ODi+OCtuODryzjg57jgrXjg5Ljg60NCivjg5Xjgrjjgqrjgqss44K/44Kr44K3DQor44K044OI44KmLOOCv+OCq+OCuA0KK+OCs+ODrOODiuOCrCzjg4jjgrfjgqLjgq0NCivjgr/jgqvjg4/jgrcs44OA44Kk44K544KxDQor44K/44Kr44OpLOODn+ODhOODj+ODqw0KK+OCquOCquOCr+ODryzjgq3jg6jjgrcNCivjgr/jg4rjgqss44OS44OH44Kr44K6DQor44K144OI44KmLOODjuODquOCqg0KK+OCt+ODnuODjOOCrSzjgrHjg7MNCivjgr3jg40s44OS44Ot44K3DQor44K/44OK44KrLOOCq+OCuuOCqg0KK+ODleOCuOODoOODqSzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44K344Oz44K4DQor44OP44K344Oi44OILOODpOOCueOCv+OCqw0KK+ODkuODq+ODnizjgqLjgq3jg6kNCivjg5vjgrfjg5As44OS44OH44OoDQor44Kr44Oh44Ov44OqLOODkuODreODnw0KK+OCquOCr+OCpCzjg5Ljg63jgrcNCivjg5LjgrXjg6Ljg4gs44Kq44K144OgDQor44K544K644KtLOOCreODqOOCtw0KK+ODkuODqeOCteODryzjg6jjgrfjgr/jgqsNCivjgq3jgr/jg4cs44OO44Oq44Ki44KtDQor44OV44Kv44OALOOCq+OCuuODkuOCtQ0KK+OCt+OCquOCtuOCrSzjgrHjgqTjgrgNCivjg6Djg4jjgqYs44Om44K/44KrDQor44OL44K344Kq44KrLOOCteODluODreOCpg0KK+ODhOODnOODjizjg5Ljg63jg5LjgrUNCivjg4rjg4Tjgqbjg6Es44OI44K344Oe44K1DQor44K/44OL44Ks44KtLOODkuODreOCouOCrQ0KK+OCquOCquOCueOCrCzjgqvjgrrjgqoNCivjgqbjg4Hjg4As44OS44OH44KqDQor44Kr44OI44KmLOOCqOOCpOOCuA0KK+OCteOCteOCrSzjg5Ljg4fjgqoNCivjgqvjgrfjg54s44OO44Oq44KqDQor44Ki44Kr44K144KrLOOCq+OCuuOCqg0KK+OCq+ODr+OCq+ODnyzjg6jjgqbjgqTjg4ENCivjgrfjg4ks44K/44OE44OkDQor44Ok44Oe44Km44OBLOODqOOCt+ODkuODhw0KK+OCq+ODjizjg6bjgr/jgqsNCivjg4/jg6ks44Kk44Kv44KqDQor44Oe44OE44OQ44OpLOOCseODs+OCuA0KK+ODhuODqeOCq+ODiSzjgqvjgrrjg5Ljg60NCivjgrfjgqrjgr8s44Oo44K344OO44OqDQor44Kq44Kr44OALOODkuODiOOCtw0KK+OCr+ODreODgCzjg6rjg6fjgqYNCivjg6Ljg6rjg6Ljg4gs44OV44K444KqDQor44K744KtLOODkuODreOCtw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgr/jgrHjgq/jgrUs44OS44Ot44K3DQor44K/44Ks44K344OpLOODjuODluOCqg0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjgrXjgqjjgq0s44Kx44Kk44K4DQor44K/44OE44K244OvLOOCreODn+OCouOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg4jjgrcNCivjg5Xjg6vjgqvjg68s44Kt44Oo44K3DQor44K/44Og44OpLOODleODn+ODiA0KK+ODhOODquODpCzjg57jg4HjgqoNCivjgrXjgqvjgrDjg4Es44OV44Of44OI44K3DQor44OV44Kv44K344OeLOODqOOCpuOCpOODgQ0KK+OCquOCquOCq+ODryzjg5Ljg63jgrcNCivjg5Xjgrjjgr8s44K344Ol44Oz44K544KxDQor44Kr44Ov44Kw44OBLOOCq+ODhOODjuODqg0KK+ODiOOCreOCquOCqyzjg4bjg6vjgqoNCivjg4rjgqvjg44s44OI44Of44KqDQor44Kk44OO44Km44KoLOODnuOCteODpuOCrQ0KK+OCr+ODi+ODiOOCtyzjgr/jgq/jg63jgqYNCivjgrXjgqvjgr8s44Kz44Km44Kk44OBDQor44Oi44Oq44Kr44OvLOODhOODjeOCqg0KK+ODjuOCsOODgSzjg5Ljg63jgrcNCivjgq/jg5zjgr8s44Og44OE44OfDQor44OK44Kr44Kq44KrLOOCv+ODhOOCqg0KK+ODjuODleOCuCzjgrHjgqTjgrgNCivjg6Ljgqzjg6os44Ko44Kk44K4DQor44Oe44Ko44K244KtLOOCpOOCteOCqg0KK+OCquOCquODhOOCqyzjgrfjgrLjg6jjgrcNCivjg5/jgrrjgr8s44Kx44Oz44OO44K544KxDQor44K544Ku44Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCq+OCrOODryzjg6jjgrfjgr/jgqsNCivjg4vjgrfjg4/jg6ks44Oo44K344OV44OfDQor44OG44K644KrLOOCt+ODs+OCpOODgQ0KK+OCt+OCquODnyzjg5/jg4TjgqoNCivjgqrjgqrjg4/jg6ks44K/44OA44Ki44KtDQor44Ki44K144Kv44OpLOOCouOCreODkuODrQ0KK+OCt+ODnuODgCzjg4bjg4Tjg6QNCivjgrfjg57jgqvjg68s44K544K544OgDQor44OP44K344Oi44OILOODkuODiOOCtw0KK+OCpuOCuizjgrfjgrrjgqoNCivjgr/jgqvjgq/jg68s44Oe44K144OO44OWDQor44Of44OB44K/LOOCt+ODpeODs+OCpOODgQ0KK+OCpuOCqOODgCzjgqbjgqTjg6oNCivjgrfjgqws44K/44Kr44OE44KwDQor44Kk44Kx44OfLOODn+ODhOOCsA0KK+ODouODqizjg57jgrXjgqLjgq0NCivjgqvjgrfjg6Ljg4gs44Oe44K544OfDQor44Kk44K344OP44OpLOODgeOCqOOCsw0KK+OCq+ODjeOCsyzjg4HjgqjjgrMNCivjgr/jgqvjg4/jgrcs44OI44K344KqDQor44Oi44OI44KkLOODnuOCteOCqg0KK+OCs+OCv+OCsSzjg5/jg4HjgqoNCivjgqvjgrXjgqQs44K544Ko44KzDQor44Kr44OI44KmLOODjuODquOCsw0KK+OCs+OCr+ODnCzjgrHjgqTjgrMNCivjg6/jgqvjg6Tjg54s44K344Ky44OkDQor44K144OK44OALOODnuOCteODkuOCsw0KK+OCteOCq+OCvyzjg4jjg5/jg6jjgrcNCivjg47jg6Djg6ks44Of44OE44KqDQor44OP44Ok44Kr44OvLOOCq+OCuuODnw0KK+ODn+ODpOOCtuOCrSzjgrfjgrLjgqoNCivjgqrjg4vjg4Tjgqss44Kx44Oz44K4DQor44Kk44OHLOOCquOCteODoA0KK+ODiuOCrOOCteOCsyzjgr/jgqvjg47jg6oNCivjgqTjg4jjgqYs44Of44OB44K/44KrDQor44Kr44ON44K/44KxLOODhuODq+OCouOCrQ0KK+OCr+ODnOOCvyzjgq3jg6jjg6bjgq0NCivjgqLjg6rjg54s44Kx44Kk44KzDQor44Ov44Kr44KqLOODkuODreOCtw0KK+OCpOOCt+OCtuOCqyzjgr/jgqvjg6bjgq0NCivjgqrjgr8s44K844Oz44OP44OB44Ot44KmDQor44K144Kr44Oi44OILOOCseOCpOOCtA0KK+OCquOCquODm+ODqizjg6bjgq3jgqoNCivjgrfjg7Pjgr/jg4ss44OI44K344Ki44KtDQor44Km44OB44Ok44OeLOOCv+OCq+OCtw0KK+ODkuODqeOCvyzjg5/jg4rjgrMNCivjgqLjg6rjgr7jg44s44K144OI44KzDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCouOCquODpOOCrizjg57jgrXjgqLjgq0NCivjg4rjgqvjg6Djg6ks44K144OA44KqDQor44Kk44Kk44OALOODn+ODgeOCqg0KK+ODiuOCt+OCrSzjgqvjgqrjg6sNCivjg6Djg6njgrss44Kr44K644KqDQor44Oe44OE44KqLOOCseOCpOOCtA0KK+OCteODiOOCpizjgrfjg63jgqYNCivjgqLjgrXjg4zjg54s44K344Oz44Kk44OB44Ot44KmDQor44OV44K/44OfLOODpOOCueODnuOCtQ0KK+ODleODiuODiCzjgq/jg4vjg58NCivjg5Xjgrjjgr8s44Om44Of44KzDQor44OV44Or44Kr44OvLOOCv+OCseOCqg0KK+ODleODiuODj+OCtyzjg5LjgrXjg6QNCivjg5bjg4jjgqYs44OS44Ot44Om44KtDQor44Kr44OO44KmLOOCq+ODhOODkuODrQ0KK+OCquOCreODhCzjg5Ljg63jgr/jgqsNCivjgr/jgqvjgq7jg68s44Kk44K144OgDQor44Ob44K344OOLOODgeOCqOOCsw0KK+ODi+OCt+OCuOODnizjgq/jg4vjg5Ljg60NCivjgqvjg57jgr8s44OB44Ki44KtDQor44OE44K444Oi44OILOODiOOCt+OCpOODgQ0KK+ODj+ODiuODgCzjgrfjg7PjgrgNCivjg5Ljg63jgrss44Oe44K144KqDQor44OL44K344OALOODkuODiOOCtw0KK+OCpuOCqOOCrSzjg4jjgrfjgqvjgroNCivjg6jjgrfjg44s44Kt44Oo44KqDQor44Kt44K/44Og44OpLOOCu+OCpOOCpOODgQ0KK+OCt+ODn+OCuizjg5/jg4HjgrMNCivjgqTjgrfjgrbjgq0s44OS44K144K3DQor44OP44Ok44K3LOODn+ODhOODjuODlg0KK+OCreOCr+ODgSzjg5Ljg4fjg5Xjg58NCivjgqrjgqvjg4ks44OE44Kw44KqDQor44Kz44Og44OpLOOCt+OCsuODqw0KK+ODj+OCt+ODouODiCzjg4Tjg4jjg6ANCivjg4rjgqvjg4Tjgqss44K/44Kx44K3DQor44Kq44Kq44Kk44K3LOODnuOCueODqOOCtw0KK+OCr+ODreODgCzjg57jgrXjg6jjgrcNCivjg4rjgqvjgqQs44Oe44K144OfDQor44Kt44K/44K244OvLOODjuODquOCouOCrQ0KK+OCreOCt+ODgCzjgrfjgrLjg6sNCivjgqvjg4rjg57jg6ss44Oe44Kz44OIDQor44Ki44Op44KkLOOCt+OCuuOCqg0KK+ODleOCv+ODhOOCrizjg4/jg6vjgqoNCivjgq3jgq/jg4Es44OI44K344KqDQor44Kk44Kk44OALOODpOOCueOCtw0KK+ODiuOCq+OCqCzjgqLjgq3jgqoNCivjg5Ljg6njg57jg4Qs44Of44OO44OrDQor44OL44K344Kq44KrLOOCuOODpeODs+OCvuOCpg0KK+OCteODiOOCpizjgrHjgqTjgq0NCivjg6Ljg6os44OP44Or44KqDQor44Ob44K344OOLOOCpOOCteOCqg0KK+ODpOODnuOCsOODgSzjg47jg5bjg5Ljg60NCivjgqbjgrnjgqQs44Oo44Km44Kk44OBDQor44Oe44OE44OQ44OpLOOCqOOCpOOCpOODgQ0KK+OCouODquOCteOCqyzjg57jgrXjgq0NCivjg4vjgrfjgqos44Ko44Kk44K4DQor44Kt44OALOODhuODhOOCqg0KK+ODpOODjizjg6bjgqbjgqTjg4ENCivjgqvjg4jjgqYs44Kx44Oz44K/DQor44Ov44K/44OK44OZLOODgeODkuODrQ0KK+ODj+ODpOOCtyzjg6TjgrnjgqoNCivjg6/jgr/jg5ks44Oo44Km44Kk44OBDQor44Ov44K/44OK44OZLOODnuOCteOCqg0KK+ODpuOCsOODgSzjg5Ljg63jgrMNCivjg6Tjg57jg6Ljg4gs44OS44K144K3DQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCq+OCpOOCuizjgrHjg7PjgqTjg4ENCivjg5vjgrfjg44s44OS44OH44KqDQor44K344OO44OP44OpLOODjuODluODkuODrQ0KK+OCquOCquODjOODnizjg57jg6Ljg6sNCivjg5/jg68s44K/44Kx44K3DQor44Ob44Oq44Og44KtLOODqOOCt+ODng0KK+OCpOOCt+OCv+ODhizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg5/jg5Xjg40s44Kt44Oo44K3DQor44Oi44Of44KtLOODnuOCs+ODiA0KK+ODj+OCu+OCrOODryzjg4bjg6vjgqoNCivjgrnjgq7jg6Tjg54s44K344Ol44Oz44K4DQor44OE44Kv44OALOOCv+ODgOOCtw0KK+OCouODgOODgSzjg5Xjg5/jg47jg6oNCivjg4fjgrbjg68s44K/44OA44Oo44K3DQor44Kq44K/LOOCreODqOOCtw0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjgrvjgq3jgrDjg4Es44Of44OE44OO44OqDQor44Kz44Kv44OW44OzLOODqOOCt+OCrQ0KK+ODm+OCt+ODiizjg6bjgq3jg5Xjg58NCivjgqbjg6njg44s44Kz44Km44Kk44OBDQor44K/44Kx44Og44OpLOODpOOCueODkuODrQ0KK+ODiOOCr+ODiuOCrCzjg5Ljg4jjgrcNCivjgq/jg6rjg4/jg6ks44OS44OH44OIDQor44Kq44Kv44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjg57jg4Tjgrfjgr8s44Kx44Kk44K+44KmDQor44K/44Kx44OALOODn+ODgeOCsw0KK+ODi+OCt+OCrSzjg6Ljg4jjg6jjgrcNCivjgqbjg6Hjg4As44K144Kr44KoDQor44Ob44Oz44OALOOCpOOCr+OCqg0KK+OCq+ODoizjgqvjgrrjgqbjg58NCivjgqbjgrfjg4As44OE44Oo44K3DQor44K144Kk44OI44KmLOODkuODreODhOOCsA0KK+ODj+OCueODgCzjg57jgrnjgqoNCivjg5/jgqvjg68s44Oo44Km44KzDQor44Km44OB44OALOOCr+ODi+ODkuOCsw0KK+ODi+OCt+OCtuOCrSzjgrfjg6fjgqbjgqTjg4ENCivjgqTjgqzjg6njgrcs44K344On44Km44K4DQor44Ov44K/44OK44OZLOOCouOCteOCsw0KK+OCt+ODnuODoOODqSzjgrPjgqbjgrgNCivjgqvjg4jjgqYs44OO44Oq44KzDQor44Kr44Ov44OZLOOCt+ODp+OCpuOCsw0KK+OCteOCq+ODouODiCzjg6jjgqbjgrgNCivjg6Ljg6rjgrfjgr8s44Oi44OI44Oo44K3DQor44K544Ks44OP44OpLOODquODp+OCpg0KK+ODiOODn+ODpOODnizjgqvjg4Tjg5LjgrMNCivjg5Xjgq/jg4As44OE44Oo44K3DQor44Kq44OI44K244KtLOOCouODhOODkuOCsw0KK+ODleOCuOODouODqizjgr/jgqvjgqoNCivjgrPjg6Ljg6os44Kt44Oo44Om44KtDQor44OV44Kv44OK44KsLOODnuOCteOCouOCrQ0KK+ODn+ODpOODj+ODqSzjgqvjg4Tjg47jg6oNCivjgrjjg7Pjg44s44Of44OE44KqDQor44Kt44Og44OpLOOCqOOCpOOCsw0KK+OCpOODiuOCrOOCrSzjg6bjgq3jgrMNCivjg6Ljg6os44OO44Oq44KqDQor44Ov44K/44OK44OZLOOCq+ODhOODjuODqg0KK+ODhOOCuOODouODiCzjgqLjgq3jgqoNCivjg6Ljg7Pjgrzjg7Ms44OS44Ot44Om44KtDQor44OK44Og44OpLA0KK+ODpOODnuODouODiCzjgqjjg6rjgrMNCivjg4/jgrfjg6Ljg4gs44OS44Ot44KtDQor44Ki44Op44KkLOODpOOCueODjuODqg0KK+ODleOCuOOCpCzjg5Ljg63jgrcNCivjg6/jgr/jg4rjg5ks44OG44OEDQor44OP44K744Ks44OvLOODiOODqOOCq+OCug0KK+OCt+OCsuODpOOCuSzjgqjjgqTjgqTjg4ENCivjg6Tjg57jg47jgqQs44K/44Kv44OeDQor44Kz44OQ44Ok44K3LOODnuOCteODqw0KK+ODiuOCrOOCpCzjg6jjgrfjgqLjgq0NCivjgrXjg68s44OO44OW44KqDQor44Oe44OE44Oo44K3LOODn+ODgeOCqg0KK+OCteOCpOODiOOCpizjgqvjgqrjg6sNCivjgqvjg47jgqYs44OS44Ot44Ki44KtDQor44Km44K344K044OhLOODpOOCueOCqg0KK+OCpOOCt+OCpCzjgrPjgqbjgrgNCivjgqbjgrnjgq0s44Kk44K644OrDQor44K544OJ44KmLOODqOOCt+OCqg0KK+OCq+OCuOODpOODnizjgr/jgqvjgq3jg58NCivjgqrjgqrjg5As44OS44OH44KtDQor44K544OvLOODleODn+OCqg0KK+OCpOODr+OCvyzjg6Tjgrnjg4gNCivjg4jjgqYs44OP44K444OhDQor44Kq44Kk44Kr44OvLOODkuODiOOCtw0KK+ODkuODqeOCpCzjgqjjgqTjgrMNCivjgr/jgqvjgrfjg54s44OI44K344KqDQor44OV44Of44OOLOODkuODreOCtw0KK+OCquOCq+OCtuOCrSzjg47jg6rjgqoNCivjgrfjg6njgq0s44Oe44K144OE44ONDQor44K/44Kx44Oi44OILOODpuOCpuOCuA0KK+ODnuODhOODouODiCzjg47jg6rjg5LjgrMNCivjg57jg4Tjg5Djg6ks44OS44Ot44K3DQor44Ko44OT44OP44OpLOOCs+OCpuOCuA0KK+ODleOCuOODjizjg6TjgrnjgqoNCivjg5Xjgqvjg6Qs44Oe44K144OS44OtDQor44Ob44K344OOLOOCv+OCq+OCtw0KK+OCq+OCv+ODpOODnizjgrXjg4HjgrMNCivjgqLjg6njgqvjg68s44Oe44K144Om44KtDQor44K/44Kr44OOLOOCq+OCuuOCqg0KK+OCr+ODreODgCzjg6Tjgrnjg5Ljg60NCivjgqTjg4jjgqYs44K444Ol44Oz44KzDQor44Kz44K244KkLOODn+ODhOODqw0KK+OCpuOCqOODpOODnizjgq3jg6jjgrcNCivjg4/jg4Pjg4jjg6os44OI44K344KtDQor44OL44K344Og44OpLOODiOOCt+OCv+OCqw0KK+ODleODq+OCq+ODryzjgr/jgqvjgqoNCivjg6Tjgrfjgq0s44K344Ky44KtDQor44Ob44OJ44Ok44OeLOODkuODh+OCqg0KK+OCqOODiOOCpizjg4jjg6Ljg5LjgrMNCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44K744Kt44Kw44OBLOOCpOOCteODoA0KK+OCv+ODiuODmSzjg5Ljg4fjg4jjgrcNCivjgr/jgrHjg4As44OI44K344Om44KtDQor44K344Oz44K/44OLLOOCq+OCv+OCtw0KK+OCr+ODnOOCvyzjgq3jg6jjgrcNCivjgrnjgq7jgqrjgqss44K144OI44OfDQor44Ok44Oe44K244KtLOOCteODgOODjuODqg0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgqbjgqjjg44s44OI44K344K/44KxDQor44K344Oe44Oi44OILOOCs+OCueOCsQ0KK+OCreOCv+ODjizjg57jgrXjg58NCivjgqTjgqTjgrrjgqss44Oq44On44Km44KzDQor44Kk44K644OfLOOCreODp+OCpuOCuA0KK+ODj+ODqeODgCzjgr/jgqvjg6bjgq0NCivjgqrjg4HjgqLjgqQs44K144OI44K3DQor44Ok44Oe44Km44OBLOOCouOCreODkuODrQ0KK+OCqOOCsOODgSzjg5Ljg4fjg4Tjg40NCivjg4/jgq7jg6/jg6ks44K/44Kx44K3DQor44K/44Kr44KuLOOCv+OCseODjuODqg0KK+OCquOCr+ODouODiCzjg57jg4rjg5YNCivjg57jg4Tjgrbjgq0s44Oq44On44Km44Kk44OBDQor44Kk44OB44Og44OpLOODpuODquOCsw0KK+ODn+ODpOOCteOCqyzjg4jjg6LjgrMNCivjg5/jg6Tjgr8s44K744Kk44Kk44OBDQor44OK44Ks44KqLOOCt+ODp+OCpuOCreODgQ0KK+OCpOODr+OCqizjg57jgrXjgrcNCivjg5Xjgqvjgrbjg68s44K344Ky44OrDQor44K/44Og44OpLOODnuOCteOCqg0KK+OCreODquODpeOCpizjgr/jg4DjgqoNCivjg57jg4Tjgrbjgq0s44Oo44K344KqDQor44Kr44OI44KmLOODhuODq+ODn+ODhA0KK+ODn+OCvyzjg4rjgqrjg4gNCivjgqTjgrfjgqQs44Kk44K144OgDQor44Kq44Kr44Oi44OILOODhuODhOOCqg0KK+OCpuOCqOOCquOCqyzjg47jg5bjgqoNCivjgq3jg6fjgqbjg44s44Oe44K144OIDQor44Kr44ON44KzLOODpuOCpuOCvuOCpg0KK+OCteOCr+ODqeOCpCzjgq3jg6fjgqbjgrMNCivjg6/jgqvjg5Djg6Tjgrcs44OI44K344OS44OHDQor44Ov44K/44OK44OZLOODqOOCt+ODkuODrQ0KK+OCouOCteOCpCzjg4vjgrnjgrENCivjgqvjg4njg44s44Om44Km44K4DQor44Ok44Oe44K244KtLOODiOODqOODkuODrQ0KK+OCouODr+ODjizjg4jjgrfjg6bjgq0NCivjgqrjgqzjg68s44K/44Kr44OO44OqDQor44K844Oz44KxLOODiOOCt+OCqg0KK+ODleOCr+ODouODiCzjg4jjg6Ljg5LjgrMNCivjgqrjg4ks44Kr44K644OO44OqDQor44Oi44Oq44Oi44OILOOCv+OCq+OCqg0KK+ODiOOCpuODnOOCpizjgqvjgrrjg58NCivjgqvjgr/jg6Tjg54s44Oe44K144K3DQor44OK44Ks44Oe44OELOOCv+OCq+OCouOCrQ0KK+ODr+OCv+ODmSzjg6jjgrfjg58NCivjgqTjgrfjgq0s44Om44KmDQor44Kk44OK44Ks44OvLOODpuOCpuOCsw0KK+ODiuOCq+ODjizjgr/jgqvjg4/jg6sNCivjg4vjgrfjg6Tjg54s44Ok44K544Oo44K3DQor44K344Oi44OALOODn+ODqOOCsw0KK+OCt+OCsuOCvyzjgr/jgqvjgqoNCivjg57jg4Tjg6Ljg4gs44OS44Ot44K344KyDQor44Kr44K/44Ok44OeLOODpuOCpg0KK+OCveODjizjgqvjg4Tjg58NCivjgqTjgrvjgq0s44Om44Kt44KqDQor44Kk44OI44KmLOODqOOCt+OCq+OCug0KK+OCu+OCreODjSzjg57jgrXjgqoNCivjg6Djg6njg6Tjg54s44OV44K444KqDQor44Oe44Or44Ok44OeLOOCseOCpOOCuA0KK+OCr+ODreOCteODryzjg6jjgrfjg5Xjg58NCivjgrnjg58s44OI44Kq44OrDQor44OO44Kw44OBLOODpuOCpuOCuA0KK+OCteODiOOCpuODnyzjg5Ljg4fjgq0NCivjgqrjgqrjgqvjg68s44OE44Kw44OS44OIDQor44OK44Kr44OOLOODkuODh+ODjuODqg0KK+OCquOCquOCpOOCtyzjgrgNCivjg4/jg5Ys44Ki44Kt44OpDQor44Km44OB44OALOODjuODquODnuOCtQ0KK+ODn+OCrSzjg5Xjg5/jg47jg5YNCivjgrnjgrrjgq0s44OE44ON44Om44KtDQor44Kr44K144OP44OpLOOCpOOCuuODnw0KK+OCquOCquOCr+ODnCzjgqvjgrrjg4/jg6sNCivjgqvjgr/jgqvjg58s44OO44Oq44Kr44K6DQor44K/44Kr44OP44K3LOODiOOCt+ODkuOCsw0KK+OCpOOCt+OCq+ODryzjgqvjgrrjg6QNCivjgr/jgqvjg4jjg6os44K/44Kr44KqDQor44K/44OL44Kw44OBLOOCt+ODs+OCuA0KK+OCu+OCrSzjg6bjgq3jg57jgrUNCivjgq/jg5zjgr8s44Oe44K144OIDQor44Ki44OZ44Kr44OvLOODoOODhOOCqg0KK+ODleOCuOODnuOCrSzjgr/jgrHjgrcNCivjgqvjgr/jg6Tjg54s44Oe44K144Om44KtDQor44Kz44Ok44OeLOOCseODs+OCuA0KK+ODj+OCt+ODouODiCzjgqLjgrHjg58NCivjgrnjg58s44Of44OB44KqDQor44OL44K344Kr44OvLOODkuODreOCtw0KK+OCteODr+ODnizjgqLjg6TjgrMNCivjg4/jgrfjg6Ljg4gs44Om44Km44KzDQor44OK44Kr44K/LOODpOOCueODnuOCtQ0KK+OCpuODgeODpOODnizjg5Ljg63jgrcNCivjgrXjgrXjgq0s44Oe44OqDQor44Ki44K144OP44OpLOODn+ODhOODkuODrQ0KK+ODi+ODg+OCvyzjg5Xjg5/jgrMNCivjg4Djg7Ms44Or44Oq44KzDQor44K544Ku44K/LOODhuODhOOCtw0KK+ODpOODnuODouODiCzjgrfjg7PjgqTjg4ENCivjgqrjg5Xjg4Es44Of44KtDQor44Kz44OQ44Ok44K3LOODn+ODr+OCsw0KK+ODn+ODqOOCtyzjgrPjgqbjgq3jg4ENCivjgqTjgrfjg4As44OS44OH44OS44KzDQor44Kq44OL44KtLOODjuODnOODqw0KK+OCr+ODquODj+ODqSzjgr/jg5/jgqoNCivjgrfjg6njgqQs44OE44Kr44K1DQor44K144Kr44OL44K3LOOCseODs+OCpOODgQ0KK+OCquODgCzjg5LjgrXjgrcNCivjgqvjg57jgrks44Kx44Oz44K+44KmDQor44OK44Kr44Ks44OvLOODnuOCteODqOOCtw0KK+OCq+OCt+ODouODiCzjgq3jg6fjgqbjgqTjg4ENCivjg5Djg7Pjg4njgqYs44Om44K644OrDQor44OV44K/44OfLOODnuOCteOCtw0KK+ODpOODnuOCt+OCvyzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Om44Km44K4DQor44Kr44Ky44Ok44OeLOODn+ODjuODqw0KK+OCouOCueODnizjg47jg5bjgqoNCivjgrfjg6Ljg6Djg6ks44Om44Km44Kk44OBDQor44Ok44Oe44Kw44OBLOOCv+ODgOOCtw0KK+ODpOODnuODiCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44K344Ky44OrDQor44Oe44OE44OA44Kk44OpLOOCq+OCuuODpA0KK+ODnuODhOODoOODqSzjg4jjgrfjg5/jg4ENCivjgrPjg7Pjg44s44Oo44K344OkDQor44Kq44Kq44OP44K3LOODpOOCteODluODreOCpg0KK+OCreOCr+OCvyzjgrfjgrLjgq0NCivjg6jjgrfjgqrjgqss44OS44Ot44K3DQor44K144OOLOODqOOCt+OCqg0KK+OCv+ODiuOCqyzjg6bjgq3jg47jg6oNCivjgrXjgrXjgq0s44K544K544OgDQor44Kr44Ov44Kw44OBLOOCouODhOOCtw0KK+ODpOODnuOCt+OCvyzjgr/jg4TjgqoNCivjgr/jgrHjg6Djg6ks44OV44Of44KqDQor44OV44Kv44OBLOOCq+OCuuOCqA0KK+ODnuODiuOCqyzjg4jjg5/jgqgNCivjgqLjg6njgq0s44K/44Kr44OO44OWDQor44OS44Op44OOLOODqOOCt+OCq+OCug0KK+ODiuOCq+ODoOODqSzjg4Tjg4jjg6ANCivjg4/jgrfjg6Ljg4gs44OI44K344Kr44OEDQor44Kr44OI44KmLOOCpOOCr+OCsw0KK+ODj+ODnuOCq+ODryzjgq/jg4vjgqoNCivjg4/jg6Tjgrcs44Kx44Kk44KzDQor44Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjgqTjg4Hjg63jgqYNCivjgr/jgrHjgqbjg4Es44Kr44K644OS44KzDQor44OL44K3LOOCs+OCpuOCpOODgQ0KK+OCpOODr+ODm+ODqizjg4jjgrfjg57jgrUNCivjgqTjg57jgqQs44Kv44Of44KzDQor44Oi44Oq44OOLOOCv+OCq+OCtw0KK+ODi+OCt+ODj+ODqSzjgrHjgqQNCivjgq3jg6rjg6Qs44OS44K144OIDQor44K144OI44KmLOODiOODqOOCsw0KK+ODm+OCveODgCzjg5LjgrXjgrMNCivjgr/jgqvjg4/jgrcs44K/44OA44K3DQor44OK44Kr44K444OeLOOCt+OCsuODqw0KK+ODpOOCueODj+ODqSzjg4rjg6vjg6bjgq0NCivjgq/jg63jgqTjg68s44K/44Kr44K3DQor44Kr44OiLOODkuODreOCtw0KK+OCouOCq+ODnuODhCzjgq/jg4vjgqLjgq0NCivjgq3jgr/jg6Djg6ks44Oe44Om44OfDQor44OL44K344OALOODpuOCreOCsw0KK+OCquOCq+ODgCzjgrfjg7PjgqTjg4ENCivjgrXjgrXjgq0s44OI44K344Om44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCt+ODn+OCuizjgqTjgrXjg6ANCivjgqjjg7Pjg4ks44K344Oz44K544KxDQor44Km44OA44Ks44OvLOODhuODq+OCqg0KK+OCt+ODn+OCuizjg47jg6rjg5Xjg58NCivjgqLjgqrjg6Tjgq4s44K744Kk44K+44KmDQor44OP44K344Oi44OILOOCq+OCuuOCqg0KK+OCv+OCseOCpuODgSzjg5Ljg4fjgqLjg4QNCivjgqLjg6njgqQs44Ok44K544K3DQor44Kk44K344K444OeLOOCpOOCteOCqg0KK+OCs+OCrOODjSzjg5Ljg4fjgqoNCivjgrXjg6/jgrfjg54s44K344Oz44Kk44OBDQor44K/44Kr44Ok44OK44KuLOODn+ODjuODqw0KK+ODnuOCteODgCzjg5Ljg63jg5/jg4ENCivjgrfjg5/jgros44Ki44Kt44OS44OHDQor44Kq44OO44OH44OpLOOCv+OCq+OCqg0KK+OCv+ODiuOCqyzjg5/jg4Tjg6sNCivjg47jg6Djg6ks44OO44OW44KqDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODgCzjg4jjgrfjgrnjgrENCivjgrXjgr/jgrEs44K344Oz44K4DQor44K144Kk44OI44KmLOODnuODouODqw0KK+ODn+ODpOOCrizjg5Ljg63jgrcNCivjgr/jgqvjgrfjg54s44Kx44Kk44K4DQor44Kr44OQ44OkLOODkuODreODleODnw0KK+OCpOOCt+OCtuOCrSzjgrfjg7PjgqTjg4ENCivjgqvjgqzjg6Qs44Oo44Km44Kk44OBDQor44Kz44K/44OLLOOCv+OCr+ODouODqg0KK+OCs+OCueODgCzjg6TjgrnjgqLjgq0NCivjgqTjgrjjg6os44Om44K/44KrDQor44Oe44Or44Ok44OeLOOCv+ODn+ODpA0KK+OCq+ODiuOCpCzjg6jjgrfjgqoNCivjg6Tjgq4s44Of44OE44KwDQor44OV44K444OOLOOCteODiOOCtw0KK+OCs+ODh+ODqSzjg57jgrXjg4gNCivjgrnjgq7jgqos44Oe44K144Om44KtDQor44K544Ks44OP44OpLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5/jg4Tjg6TjgrkNCivjgqrjgqss44OP44Or44Ok44K5DQor44Kk44K344Oe44OrLOOCquOCteODoA0KK+ODn+ODpOOCtuOCrSzjgrPjgqbjgr7jgqYNCivjg4/jg57jg44s44Of44OB44KqDQor44Kz44K/44K444OeLOODqOOCt+ODjuODqg0KK+OCv+OCq+OCt+ODnizjgqLjgrHjg5Xjg58NCivjg4Tjgqvjg4As44K744Kk44Kk44OBDQor44OK44Kr44Og44OpLOOCq+ODhOODleODnw0KK+OCv+OCseODgCzjg57jgrXjg47jg6oNCivjg6Tjgrnjg6Djg60s44OP44Or44OS44KzDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODleOCuOOCt+ODnizjgrfjgrLjg57jgrUNCivjgqrjgqvjg4As44K/44Kx44K3DQor44Ki44OkLOODn+ODhOODnuODqw0KK+ODiuOCq+ODoOODqSzjg5/jg4Tjg57jg6sNCivjgr/jgqvjg4/jgrcs44K/44Kx44OS44OtDQor44K544Ks44OP44OpLOOCt+OCsuOCv+ODgA0KK+ODpuOCouOCtSzjgrHjg7PjgrgNCivjgqTjgrfjgqQs44Og44ON44Oo44K3DQor44Kq44Kq44Kv44OcLOODkuODreODiOOCtw0KK+OCquOCteODryzjg57jgrXjgr/jgrENCivjg6Tjg57jg6Ljg4gs44Of44Kt44KqDQor44Kk44Oe44Kk44K644OfLOOCq+OCuuODkuOCsw0KK+OCquOCq+ODgCzjg6jjgrfjg5Ljg60NCivjg4rjgqvjg6Djg6ks44Kv44OL44KqDQor44K/44OK44KrLOOCreODqOOCtw0KK+ODiuOCq+ODjizjgr/jgq/jgqoNCivjgqrjgqrjg6Ljg6os44Kr44K644OS44KzDQor44Ok44Oe44Oi44OILOOCq+OCuuOCqg0KK+ODiuOCrOOCpCzjg6bjgq3jg57jgrUNCivjgrPjg5Djg6Tjgrcs44Oo44K344OP44OrDQor44OS44Kt44OBLOODkuOCteOCtw0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg4Tjgqvjg6Ljg4gs44OE44OI44OgDQor44Kk44OO44Km44KoLOODnuOCteODiA0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg6kNCivjgrnjg5/jgqvjg68s44Kr44Kq44OrDQor44OV44Kv44OALOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODouODiCzjgrvjg4TjgrMNCivjgrXjgqTjg4jjgqYs44Om44Km44KzDQor44Kr44Oz44OQLOODqOOCt+ODn+ODhA0KK+OCteODqeOCpCzjg57jgrXjgqLjgq0NCivjgrXjgqvjgq0s44K344On44Km44K4DQor44Ok44K544KkLOOCv+OCq+OCtw0KK+OCq+ODn+ODoOODqSzjgr/jgqvjgrcNCivjgrvjg5ks44Oo44K344K/44KrDQor44Oo44K344OALOODiOOCt+OCq+OCug0KK+ODiuOCrOOCuyzjgr/jg4DjgrcNCivjg5Xjgq/jg4Es44Kk44K644OfDQor44OV44Kv44OALOOCuA0KK+ODjuODiuOCqyzjg47jg5bjg5LjgrMNCivjgqTjg57jg4As44Oe44K144OS44OtDQor44OL44K344Kr44OvLOODnuOCueOCsw0KK+OCs+ODpOODjizjg5Ljg4fjgqoNCivjg4rjgqvjgrbjg68s44Ki44Kt44KqDQor44Kq44Ks44OvLOOCv+OCq+OCtw0KK+ODiuOCq+ODpOODnizjg4/jg6vjg5LjgrUNCivjg4zjg47jgqvjg68s44Kx44Kk44KzDQor44K944ONLOODleODn+OCqg0KK+ODn+OCvuOCsOODgSzjg6bjgq3jgqoNCivjgrPjg5Djg6Tjgrcs44Kk44Ov44KqDQor44Oo44K344Oe44OELOODnuOCteOCqg0KK+OCquOCquODj+ODqSzjg57jgrXjgqrjg58NCivjg6Tjg57jg4As44K344Oz44K4DQor44Of44OO44Kw44OBLOODqOOCt+ODjuODqg0KK+OCt+ODs+ODoeODsyzjgr/jgqvjg5Xjg58NCivjg47jgrss44Oe44K144KqDQor44Kk44Ov44OP44K3LOODquODp+OCpuOCpOODgQ0KK+OCouOCq+OCpCzjgr/jgrHjgrcNCivjg4Tjgr/jg6Ljg4gs44Oe44K144OP44OrDQor44OK44Kr44Oi44OILOODn+ODjuODqw0KK+OCr+ODgOODiuODnyzjg57jgrXjg6bjgq0NCivjgqTjg4Hjg4As44K/44Kr44K3DQor44Ok44OOLOOCqOOCpOOCuA0KK+ODnuODhOOCrSzjgq3jg5/jgqoNCivjgrXjgrXjgq0s44Oo44K344K344KyDQor44OV44Or44OOLOOCq+OCquODqw0KK+ODleOCuOOCvyzjgqLjgq3jg6kNCivjgqTjg47jgqbjgqgs44Of44OJ44OqDQor44K/44OkLOODn+ODhOODpOOCuQ0KK+ODn+ODpOOCtuODryzjgr/jg63jgqYNCivjg6/jgr/jg4rjg5ks44Oo44Km44KzDQor44Ki44Kv44ONLOODiOOCt+ODreOCpg0KK+ODm+OCt+ODjizjgrfjg7PjgqTjg4ENCivjg6jjgrfjg4As44Kr44K644KqDQor44Km44Ko44Og44OpLOODjuODnOODqw0KK+OCq+ODn+ODpCzjgrHjg7PjgrgNCivjgrnjgrrjgq0s44K/44Kx44K3DQor44Ki44Oz44OJ44KmLOOCv+OCq+ODj+ODqw0KK+ODiOODqOOCpOOCuuODnyzjg4jjgrfjgqoNCivjgq/jg6/jg4os44OO44Oq44KzDQor44OL44Kk44OfLOOCq+ODhOOCtw0KK+ODn+OCpuODqSzjgqrjgrXjg6ANCivjg47jg6Djg6ks44Ki44Kt44OpDQor44Kq44Kr44OALOOCuOODpeODsw0KK+OCouOCteODjOODnizjgqvjgrrjg5Ljg60NCivjgrXjgrXjgqos44OS44OH44Om44KtDQor44Kk44OK44Ks44KtLOODnuOCteODiA0KK+OCueOCrOODr+ODqSzjgrXjg4jjgrcNCivjgrfjg6fjgqbjgrgs44K/44Kx44K144OADQor44K/44Ks44OvLOODn+ODjuODqw0KK+OCveOCrCzjg47jg5bjg4jjg6INCivjgrfjg6fjgqbjg68s44Kt44Oo44OfDQor44Oe44OE44Kr44OvLOODkuODreODpuOCrQ0KK+OCt+ODouODoOODqSzjg6bjgqbjgrgNCivjg6/jgr/jg4rjg5ks44OK44Kq44Om44KtDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCuA0KK+OCpOOCpOODgCzjgrPjgqbjgqTjg4ENCivjg5Xjgq/jg6Ljg4gs44Kx44Oz44Kk44OBDQor44Og44Op44Ok44OeLOODkuODreOCrQ0KK+ODm+ODqizjg57jgrXjgqLjgq0NCivjg6Tjg57jg44s44OS44OH44KqDQor44OL44K344Ov44KtLOODqOOCpuOCuA0KK+ODnuODhOOCqizjg57jgrXjg4oNCivjgqrjgqvjg6Ljg4gs44Oe44Kz44OIDQor44Kq44Kq44K144KtLOOCseODs+OCpOODgQ0KK+OCpuODoeODouODiCzjg4rjgqrjg5Xjg58NCivjgqrjgqvjg6Djg6ks44Ki44K/44OrDQor44Kz44Kk44KxLOOCs+OCpuOCu+OCpA0KK+OCquOCquOCv+ODiyzjg57jgrXjgqLjgq0NCivjgqvjgr/jgqrjgqss44Oe44K144KtDQor44Kq44Kr44OALOOCt+ODgeODreOCpg0KK+ODleOCr+OCt+ODnizjg6jjgrfjgqoNCivjgqjjg4Djg4rjgqss44Ok44K544OO44OqDQor44K544K644KtLOOCt+OCsuODqw0KK+OCpOODgeOCq+ODryzjgrvjgqTjgqTjg4ENCivjgq/jg63jgqvjg68s44Kt44Oo44K3DQor44K144OI44KmLOOCreODqOODkuOCtQ0KK+OCquOCquOCteODryzjgqvjgrrjg5LjgrMNCivjg6Ljg4Hjgrrjgq0s44K544Ko44OS44OtDQor44Ok44Oe44K344K/LOOCseOCpOOCpOODgeODreOCpg0KK+OCpOODgeOCq+ODryzjgr/jgqvjgrcNCivjg5Xjgqvjgrbjg68s44Kr44K644ObDQor44Kv44Oc44K/LOODjuODluOCqg0KK+ODi+OCt+ODoOODqSzjgrPjgqbjgrgNCivjg43jgq7jgrcs44OS44K144Om44KtDQor44Kz44Oz44OJLOOCseODs+OCuA0KK+ODleODq+ODpCzjg5/jg4Tjgq4NCivjgrPjg5Djg6Tjgrcs44K/44OE44KqDQor44K/44Og44OpLOODkuODreODkuOCsw0KK+ODn+ODhOODj+OCtyzjg4DjgqTjg4/jg4Hjg63jgqYNCivjgq/jg57jgrbjg68s44Kr44OE44OfDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODkuODreODhCzjgqvjgrrjg5/jg4QNCivjgqvjg43jg4As44Om44K/44KrDQor44Ki44K9LOODpuOCreOCqg0KK+OCqOODk+ODj+ODqSzjgq3jgqTjg4ENCivjg6TjgrnjgqQs44Kv44OL44KqDQor44K544OJ44KmLOODkuODreOCsw0KK+ODpOODj+OCvyzjg57jgrXjg47jg6oNCivjgrXjgqvjgqQs44OI44Oi44OS44OtDQor44K144KsLOODqOOCt+OCqg0KK+ODpOODnuOCtuOCrSzjgqjjg5/jgrMNCivjg4rjgqvjg6Djg6ks44Oo44Km44KzDQor44Kk44K244OvLOODkuODreODgeOCqw0KK+OCouODqeOCpCzjgrHjg7PjgqTjg4ENCivjgqbjg5bjgqvjgr8s44K144OA44OfDQor44Ov44K/44OM44KtLOOCv+ODgOODpuOCrQ0KK+ODkuOCt+OCvyzjg47jg5zjg6sNCivjgqvjg4jjgqYs44Om44Km44KzDQor44Ok44Oe44ONLOODqOOCt+ODiA0KK+ODpOODnuOCt+OCvyzjg5Ljg63jgrcNCivjg47jg6Djg6ks44Oo44K344Ot44KmDQor44Ok44OK44KkLOODnuOCteODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5/jg4ENCivjgqLjgqrjgq0s44Ki44Kt44OpDQor44Ok44K344OtLOOCueOCueODoA0KK+OCouOCteODnizjg57jgrXjg5Ljg60NCivjgqrjgq/jg4As44OV44Of44KqDQor44Kk44K344OQ44K3LOODpuOCpuOCuA0KK+ODn+ODiuODn+ODhyzjg5Ljg4fjgqLjgq0NCivjgqTjg4zjgrrjgqss44Kz44Km44OY44KkDQor44OI44Kt44OvLOODqOOCt+ODj+ODqw0KK+ODn+OCpuODqSzjg6Tjgrnjg47jg5YNCivjg57jg5bjg4Es44OI44K344OP44OrDQor44Kq44OQ44OpLOODkuODreODpuOCrQ0KK+ODnuODhOOCrSzjg5Ljg63jgrcNCivjgqjjgrDjg4Es44Kx44Oz44Kk44OBDQor44Kq44Kq44OfLOOCv+OCseOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgrHjgrcNCivjgqLjg6njgqvjg68s44K344Oz44K4DQor44K544Ks44OOLOOCouOCreODqQ0KK+ODpOOCueOCpCzjgrPjgqbjg5jjgqQNCivjg5/jg6Tjg6Ljg4gs44OS44Ot44Ok44K5DQor44OV44K444Ku44OvLOOCs+OCpuOCpOODgQ0KK+OCreOCv+OCrOODryzjg5/jgq3jgqoNCivjgr/jg4vjgrDjg4Es44Of44OE44OrDQor44Kz44K444OeLOODqOOCt+OCouOCrQ0KK+OCouODnuOCq+ODryzjg6bjgr/jgqsNCivjgqrjgqrjg4zjgq0s44Om44K/44KrDQor44K/44OK44OZLOOCs+OCpuOCuA0KK+ODnuODq+ODj+OCtyzjgqTjgrXjgqoNCivjg6Tjg4njg6Qs44K444Ol44Oz44Kk44OBDQor44Kq44Kq44Ks44KvLOODqOOCt+ODkuODrQ0KK+OCteOCq+OCvyzjgrPjgqbjg5jjgqQNCivjg4/jg6ks44OS44OH44OfDQor44K/44Kr44KuLOODkuODh+OCqg0KK+OCouOCpOODj+ODqSzjgqLjgq3jg6kNCivjgqrjgqrjgr8s44OI44Kq44OrDQor44Ki44Kt44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCt+ODn+OCuizjgr/jgqvjgqoNCivjgrPjg5Djg6Tjgrcs44Kq44K144OV44OfDQor44OP44K/44Oi44OILOOCseODs+OCuA0KK+OCpuOCueODgCzjgr/jgqvjg47jg5YNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44OK44Kr44Ks44OvLOODhuODhOOCqg0KK+ODnuODhOODkOODqSzjg4/jg6vjgqoNCivjgq/jg4zjgq4s44Om44K/44KrDQor44Kq44Ks44OvLOODqOOCt+OCqg0KK+ODhOOCuCzjgqvjgrrjgr/jgqsNCivjgqvjg6/jgqQs44Kx44Kk44Kk44OB44Ot44KmDQor44K544Ks44Ov44OpLOOCt+ODpeOCpuOCpOODgQ0KK+ODoOODiOOCpizjgqvjgrrjgqoNCivjgqrjg5Djg6ks44Ok44K544OI44K3DQor44Kr44OI44KmLOOCv+OCq+ODpuOCrQ0KK+OCq+ODluODqeOCrSzjg6bjgq3jgqoNCivjg6/jgqvjgr/jg5ks44OE44OI44OgDQor44Kq44Ks44OvLOOCs+OCpuOCt+ODreOCpg0KK+OCpOODr+OCteOCrSzjg5Ljg63jg6bjgq0NCivjg4rjg6rjgr8s44Kq44K144OgDQor44Ki44Kt44Ok44OeLOOCv+OCq+OCtw0KK+ODn+ODhOOCpCzjgrHjgqTjgqTjg4ENCivjgqjjg7Pjg4ks44Om44K/44KrDQor44Oo44ON44K/LOOCouOCreOCqg0KK+OCouOCquOCpCzjgq3jg6jjgrcNCivjgqrjgqvjg6Ljg4gs44Oo44K344OS44K1DQor44Kq44Kq44OE44KrLOOCt+ODs+OCpOODgQ0KK+ODleOCr+ODouODqizjgrXjgqvjgqgNCivjg4bjgrfjg54s44Kr44K644Oe44K1DQor44OP44OeLOODkuODh+OCrQ0KK+ODqOOCt+ODgCzjg4/jgrjjg6ENCivjgqvjg6/jg5ks44Oo44K344OP44OrDQor44K/44OK44KrLOODpOOCueODjuODqg0KK+OCv+OCq+ODj+OCtyzjgq3jg6fjgqbjgqTjg4ENCivjgr/jg4rjg5ks44OV44Of44Ki44KtDQor44Ki44K9LOODkuODreOCpOODgQ0KK+OCv+OCq+ODgCzjg5Ljg63jgrcNCivjg5/jg6Tjg44s44OI44K344KqDQor44Km44Ko44K644OfLOODkuODiOOCtw0KK+OCpOODgeOCq+ODryzjg6TjgrnjgqLjgq0NCivjgqLjgrXjg68s44OI44Oi44OV44OfDQor44Kk44OK44Oi44OILOOCq+OCuuOCqg0KK+ODouODquODpCzjg5Ljg4jjgrcNCivjg4rjgqvjgr/jg4ss44Kx44OzDQor44Of44Ok44Oi44OILOOCpOODgeOCvuOCpg0KK+ODn+OCr+ODiyzjgqjjgqTjgqTjg4ENCivjgq3jgr/jg6Djg6ks44K/44OA44Oe44K1DQor44Ok44K/44OZLOODnuOCteODkuODhw0KK+ODiuOCrOOCq+ODryzjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg4os44Kr44K644KqDQor44K144Kv44OeLOODn+ODhOODqw0KK+OCouODqeOCpCzjg4jjgrfjgqoNCivjgrfjg57jg4As44OK44Kq44KzDQor44OG44K644KrLOOCt+ODpeODs+OCpOODgQ0KK+OCpuOCqOODjizjgrfjg6Xjg7PjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kq44Kq44Kv44Ov44OALOODnuODiuODlg0KK+ODqOOCs+ODpOODnizjg6jjgrfjgqrjg58NCivjg6/jgr/jg4rjg5ks44Oo44Km44Kk44OBDQor44OL44K344Og44OpLOOCouOCreODjuODqg0KK+OCv+OCq+ODnuODhCzjgrPjgqbjgqTjg4ENCivjg4vjgrfjg6Djg6ks44K/44OE44OeDQor44Kk44OB44KtLOODkuODreOCtw0KK+OCpOODr+OCt+OCvyzjg47jg5bjg4Tjg4oNCivjgqrjg44s44OI44K344KqDQor44OL44K344KtLOOCv+ODhOOCqg0KK+OCteODryzjgqvjgrrjgqoNCivjgr/jgqvjg58s44Kq44K144OgDQor44Ok44K544OV44KvLOOCseODs+OCuA0KK+OCquOCquOCvyzjg5Ljg63jgrcNCivjgqrjgqvjg6Ljg4gs44OS44Ot44Oe44K1DQor44K144Kr44KkLOODpOOCueOCqg0KK+ODleOCuOODouODiCzjg4jjgq3jgqoNCivjg57jg4Tjg6Ljg4gs44K344Ky44OO44OqDQor44Kq44Kq44Ok44OWLOOCq+OCuuODpA0KK+ODi+OCt+ODoOODqSzjgrfjg6XjgqbjgqTjg4ENCivjg5vjg6rjgqbjg4Es44Kx44Kk44Kk44OBDQor44Kk44K344Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg4rjg6rjgqoNCivjgr/jgrHjgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44Oi44OI44Ok44OeLOOCs+OCpuOCt+ODreOCpg0KK+ODqOOCt+ODiuOCrCzjgrPjgqbjgrgNCivjg5Xjg6vjgqvjg68s44Of44OB44KqDQor44K/44OL44Kw44OBLOODqOOCt+OCqg0KK+OCv+OCseOCs+OCtyzjg57jgrXjg4jjgrcNCivjg4Tjg6Djg6ks44Kz44Km44K744KkDQor44Kq44OOLOOCt+OCsuOCqg0KK+OCquOCq+ODouODiCzjgrXjg4jjgrcNCivjg5Xjg6vjgr8s44Oe44K144OS44OtDQor44OL44K344OOLOOCveOCpuOCpOODgeODreOCpg0KK+ODn+OCuuOCv+ODiyzjg5Ljg63jg6bjgq0NCivjgrPjg6Tjg54s44OS44K144K3DQor44Kt44Kv44OBLOOCseODs+OCpOODgQ0KK+OCquOCquOCs+OCpuODgSzjg57jgrXjgqLjgq0NCivjgqvjg6/jgr8s44K/44Kr44K3DQor44Kv44OP44OpLOODqOOCt+ODpuOCrQ0KK+ODleODq+ODj+OCtyzjgrPjgqbjgr7jgqYNCivjgr/jgqvjg6jjgrcs44OV44Of44OI44OoDQor44Kr44K5LOODjuODluODpuOCrQ0KK+OCouODn+ODouODiCzjgrnjgrnjg6ANCivjg6Djg43jg4jjgqYs44OI44K344KqDQor44Oe44OE44Oi44OILOOCueOCueODoA0KK+OCv+OCq+ODiuOCtyzjg57jgrXjgqLjgq0NCivjgqLjgq3jgr8s44OI44K344KqDQor44K/44Kr44OP44K3LOODpOOCueODn+ODgQ0KK+ODiuOCrOOCpCzjgr/jgqvjgrcNCivjg6jjgrfjg4As44OE44Kr44K1DQor44Oe44OE44Oi44OILOODpOOCueOCouOCrQ0KK+ODiOOCr+ODgCzjg5/jg4HjgqoNCivjg5Ljg6njgqQs44OO44K+44OgDQor44Kq44Kv44K344OeLOOCv+OCq+OCtw0KK+ODnuOCt+OCvyzjgrfjgrLjgqoNCivjg6Tjg57jg4As44Kt44Of44OS44OtDQor44K144Kv44Op44KkLOODiOODouOCqg0KK+OCv+OCreOCtuODryzjgrXjg4jjgrcNCivjg57jgrnjgrMs44Om44Km44K4DQor44K344Oz44Kr44OvLOODkuODreOCqA0KK+OCquOCquOCv+ODiyzjgr/jg4Djg5Ljg60NCivjgqvjg6/jg44s44Oo44K344Of44OEDQor44Ki44Op44Kr44OvLOODhuODhOOCqg0KK+OCouODgOODgSzjgr/jgqvjg6bjgq0NCivjgqbjg4Hjg4As44Kx44Oz44K4DQor44Kz44OP44OpLOODiOOCt+ODkuOCsw0KK+OCquOCquODj+OCtyzjgqvjgrrjg5LjgrMNCivjgqvjg6Hjgqrjgqss44Oo44K344KqDQor44Of44Og44OpLOODiOODn+OCqg0KK+OCpOOCrSzjg6jjgr4NCivjgqLjgrfjgrrjgqss44OS44Ot44K3DQor44Ok44Oe44Oi44OILOODkuODreODjuODqg0KK+ODqOOCt+ODgCzjgqrjgrXjg6ANCivjg4/jg6njgqrjgqss44Kr44OE44Ok44K5DQor44Km44Or44Ov44K3LOODkuODreOCtw0KK+OCquODs+ODgCzjgrHjg7PjgrgNCivjgqTjg7Pjg4ks44Oe44K144KqDQor44K/44Kx44OK44KrLOODnuOCteODiOOCtw0KK+ODleOCuOOCteODryzjg57jg6Ljg6sNCivjgqrjgqrjg6Ljg6os44Oe44K144Om44KtDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+OCt+ODp+OCpuOCuCzjg6jjgrfjg47jg6oNCivjgq3jgr/jgrjjg54s44Oo44K344Ki44KtDQor44Kk44OI44KmLOOCouOCreODqQ0KK+ODkuODqeOCqizjgqvjgrrjgr/jgqsNCivjgrnjg5/jg6Ljg4gs44OO44OW44OkDQor44OK44Kr44K/44OLLOODkuODreOCtw0KK+OCouODqeOCt+ODnizjg6bjgq3jgqoNCivjgqvjgr/jg6Tjg54s44Om44Kt44OO44OWDQor44Km44Ko44OALOODnuOCteODkuODrQ0KK+ODleOCuOODouODiCzjg5Ljg63jg5Xjg58NCivjg6Tjg57jg4/jgr8s44Oq44Ol44Km44K4DQor44Kq44Kq44K/44OLLOODhOODiOODoA0KK+OCpOOCpOODjOODnizjg6jjgrfjg5Ljg60NCivjg4rjgqzjgrXjg68s44Oo44K344Ot44KmDQor44Ok44K544OALOOCt+ODpeOCpuOCuA0KK+ODleOCr+OCt+ODnizjg6rjg6fjgqbjgqTjg4ENCivjgrXjgqvjgq3jg5Djg6ks44Ki44Ok44KzDQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+ODqOOCs+OCtuODryzjg5Xjg5/jgr/jgqsNCivjgqvjg4njg44s44Kr44K644OfDQor44Ok44Oe44Kq44KrLOOCreODqOOCtw0KK+OCq+ODn+OCv+ODiyzjg5Ljg63jgq0NCivjgqvjg4jjgqYs44Ko44OE44Ot44KmDQor44OO44Oi44OILOODiOOCt+OCq+OCug0KK+OCueOCruODouODiCzjgrvjgqTjgqTjg4ENCivjg5Xjgrjjg44s44Kz44Km44K4DQor44Kk44OO44Km44KoLOOCt+ODp+OCpuOCuA0KK+ODj+OCuyzjg57jgrXjgqvjg4QNCivjg6Ljg6os44Ko44Op44OWDQor44Kr44Ov44OQ44K/LOODkuODh+OCqg0KK+OCq+ODr+OCvuOCqCzjgrfjg6fjgqbjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44OA44Kk44K344OzDQor44OS44Ot44Oe44K1LOODpOOCueODkuODrQ0KK+OCreOCt+ODouODiCzjgq/jg4vjgqoNCivjg5Ljg6njg4Tjgqss44Of44OO44OrDQor44Km44Ko44OALOODqOOCt+ODpuOCrQ0KK+OCouODqeOCpCzjg4jjgrfjg5LjgrMNCivjgqTjgqTjg4As44Oe44K144Om44KtDQor44OS44Ot44K344OeLOOCt+ODp+OCpuOCvuOCpg0KK+OCpOOCteOCqyzjgqvjg4Tjg5Ljg60NCivjgrnjgrrjgq0s44Oo44K344KqDQor44Kv44Op44Oi44OBLOOCv+OCq+OCqg0KK+OCteOCpOODiOOCpizjg57jgrXjgqoNCivjgrnjgrrjgq0s44Of44OE44KwDQor44OV44Kr44OkLOODhuODhOOCuA0KK+OCteOCq+OCpCzjg4jjgrfjg63jgqYNCivjgqrjgqrjg6/jg4As44OI44K344KqDQor44Kr44Oh44OkLOOCq+ODhOODnw0KK+OCr+OCteOCpuODqSzjg4jjgrfjgqoNCivjg6/jg4As44Kr44K644KqDQor44K044OI44KmLOOCreODp+OCpuOCpOODgQ0KK+ODkuODqeODleOCryzjgqLjgq3jg6kNCivjg6Ljg63jg6Qs44OS44OH44OI44K3DQor44Kk44Kx44OALOOCteODgOODpuOCrQ0KK+ODnuOCueODgCzjg57jgrXjg4/jg6sNCivjg5/jgrrjg44s44OI44K344K/44KrDQor44OP44Ok44K3LOOCreODqOODiOOCtw0KK+OCouOCquOCrSzjg4jjgrfjg5LjgrMNCivjgrPjg5Djg6os44Oe44K144Om44KtDQor44Of44K144OvLOOCteODluODreOCpg0KK+OCv+OCq+OCrizjg4bjg4TjgqoNCivjgqjjg7Pjg4ks44Kx44Oz44Kk44OBDQor44K544Ks44K144OvLOOCu+OCpOOCuA0KK+OCquODquODj+ODqSzjg4jjg6jjg58NCivjg57jg4Tjg4rjgqws44K/44Kr44OV44OfDQor44Kr44K144KkLOOCreODqOOCouOCrQ0KK+OCu+ODoOODqSzjgr/jgqvjgrcNCivjgrXjgq/jg6njgqQs44K/44Kr44Ki44KtDQor44OG44Op44Kr44OJLOODqOOCt+ODpuOCrQ0KK+ODleOCuOOCvyzjg6TjgrnjgqLjgq0NCivjgqvjg6/jg47jg5ks44Kr44Kk44OBDQor44Ki44Kq44OQLOODnuOCteODqw0KK+ODoOODqeODouODiCzjg6bjgq3jg6jjgrcNCivjg4Tjg5zjgqbjg4Es44K/44Kr44K3DQor44OV44Or44K344On44KmLOODleOCuOOCqg0KK+OCt+ODkOODpOODnizjg5Xjg5/jgqoNCivjg6Tjg57jg6Ljg4gs44K/44Kr44OS44OtDQor44Km44OB44OALOODkuODreODleODnw0KK+ODnuOCqOOCtuODryzjg4jjg5/jgqoNCivjgrPjg6Djg6ks44Ki44Kt44OO44OWDQor44Ok44Oe44K144KtLOODqOOCt+OCuA0KK+OCpuOCt+OCrSzjgqvjgrrjg58NCivjg57jg4Hjg6Tjg54s44K344On44Km44K4DQor44OV44K444OM44KtLOOCueOCueODoA0KK+ODiuOCq+ODoOODqSzjg57jg4Tjg58NCivjgq/jgrnjg6Ljg4gs44OG44Or44KqDQor44K544K644KtLOODqOOCt+OCqg0KK+OCpuOCqOODpOODnizjg4jjgrfjg6bjgq0NCivjgrPjgqTjgrEs44OS44Ot44K3DQor44OP44K744Ks44OvLOODn+ODhOOCouOCrQ0KK+ODleODq+OCq+ODryzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg4As44Ki44Kt44KqDQor44Om44OP44Op44KuLOODn+ODhOODqOOCtw0KK+OCquOCt+ODnizjg47jg6rjg6bjgq0NCivjgr3jg40s44Oe44K144OS44OtDQor44OI44Km44OeLOOCteODgeODkuODrQ0KK+OCv+OCq+ODj+OCtyzjgrfjgrrjgqoNCivjgqvjgrHjg4/jgr8s44Oe44K144KqDQor44Kk44K344KkLOOCt+OCsuODqw0KK+OCteODiOOCpizjg47jg6rjg6bjgq0NCivjg6Djg6njg6Tjg54s44Kx44Oz44K4DQor44Ob44Oq44Kw44OBLOODnuOCs+ODiA0KK+ODiuOCq+OCtuODiCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44Oe44Kz44OIDQor44Kr44ON44KzLOODquODpeOCpuOCvuOCpg0KK+OCq+OCt+ODnizjg4jjgrfjg47jg5YNCivjg4jjgrDjg4Es44OS44Ot44OgDQor44Kz44Of44Ok44OeLOOCreODn+OCouOCreODqQ0KK+ODpOODnuOCquOCqyzjg6jjgrfjg47jg5YNCivjgr/jgqvjg4/jgrcs44Kx44Kk44Kk44OBDQor44Oi44Oq44K/LOOCseOCpOOCpOODgQ0KK+ODqOOCs+OCpCzjg6jjgrfjg47jg5YNCivjg5Ljg6njgqQs44Kx44Kk44Kk44OBDQor44K344Kk44OQ44K3LOODnuOCteOCv+OCsQ0KK+OCq+ODjeOCsyzjg57jgrXjg5Xjg58NCivjg4rjgqvjg40s44OO44OW44OP44OrDQor44K744Kt44Kw44OBLOODhuODhOOCqg0KK+ODn+ODouODqizjgr/jgqvjg5LjgrMNCivjgq3jgq/jg4Es44Oe44K144K/44KrDQor44Ok44Oe44Oi44OILOOCq+ODhOOCuA0KK+OCouODqeOCq+ODryzjgr/jgqvjgqoNCivjg4jjg6Ljgq/jg4ss44Oe44K144KtDQor44OI44Of44K/LOODjuODquOCq+OCug0KK+OCv+OCq+ODj+OCtyzjgrfjg6Xjgqbjg5jjgqQNCivjg4jjgqzjgrcs44OO44OW44KqDQor44Kr44Ov44Og44OpLOODiOOCt+ODkuODrQ0KK+ODleOCr+ODiuOCrCzjgrHjgqTjgrgNCivjg57jgq3jgr8s44OI44Kv44OfDQor44K144OOLOODn+ODjuODqw0KK+OCteODiOODoOODqSzjgrHjgqTjgrgNCivjgrXjgqvjg44s44K444Ol44Oz44OkDQor44OE44OB44OP44K3LOOCt+OCsuOCouOCrQ0KK+OCpuOCqOODjizjgrHjg7Pjgr7jgqYNCivjg4rjgqvjgqzjg68s44OS44OH44Ki44KtDQor44OI44Kv44OK44KsLOOCseODs+OCuA0KK+OCpOODiOOCpizjgqvjgrrjgqoNCivjg5LjgrXjg57jg4Qs44OI44Oo44OI44K3DQor44Kq44Kq44OE44KrLOOCq+ODoeOCqg0KK+OCq+ODr+ODouODiCzjgrfjgrLjgq0NCivjg47jg6Djg6ks44Oo44K344Kk44OBDQor44Kr44OO44KmLOODpuOCv+OCqw0KK+OCpuOCqOOCteOCqyzjg6bjgqbjgrgNCivjg5Xjgrjjg6/jg6ks44OS44Op44KqDQor44Kq44Ks44OvLOODnuOCteODiA0KK+OCr+ODqeOCvyzjg4jjg6Ljg5Xjg58NCivjg4/jg4rjgr3jg4gs44OI44Oo44OV44OfDQor44OL44K344Kr44OvLOOCv+OCq+ODqOOCtw0KK+OCqOODk+OCuSzjg5Ljg4fjgqoNCivjg6Tjgrnjg47jg6os44Oo44K344OP44OrDQor44K144Kr44KkLOOCv+OCseOCtw0KK+ODnuOCqOODgCzjg6jjgrfjgqLjgq0NCivjg5Xjgq/jg4As44K344Ky44K/44KrDQor44Ok44Oe44Oi44OILOODnuOCteOCuuODnw0KK+OCt+OCquOCvyzjg6Tjgrnjg57jgrUNCivjg6Djg6njgqvjg58s44OI44Oi44OoDQor44Kk44Kv44OfLOOCv+OCq+OCtw0KK+ODiuOCq+OCrizjg6bjg58NCivjg4jjgq/jg57jg4Qs44K/44Kr44KqDQor44K/44OL44KkLOODiOOCt+ODpuOCrQ0KK+OCquOCquODpOODnizjgrHjg7PjgrgNCivjgr/jg44s44K/44Kr44OB44ObDQor44Kq44Kq44K/LOODkuODreODjuODlg0KK+OCr+ODnuODjizjgqLjgq3jgqoNCivjgrXjg6/jgrDjg4Es44Oe44K144Kv44OLDQor44Ki44K144OOLOOCq+OCuuOCqg0KK+OCteOCq+OCsOODgSzjg47jg6rjg6bjgq0NCivjg6/jgr/jg4rjg5ks44OE44OI44OgDQor44Kr44OI44KmLOOCq+OCuuOCqg0KK+ODnuOCqOOCq+ODryzjgr/jgqvjgrcNCivjg57jg4Tjg6Ljg4gs44Kr44K644KqDQor44Oe44OE44Oi44OILOODiOOCt+OCqg0KK+ODpOODnuODiuOCqyzjgqjjgqTjgrgNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44OV44K444K/LOOCv+ODhOOCqg0KK+ODpOOCrizjg57jgrXjg58NCivjgqTjg6/jgqQs44Oe44K144K/44KrDQor44OV44Kv44K344OeLOODkuODh+ODnw0KK+ODleODq+OCq+ODryzjgrPjgqbjgqTjg4ENCivjgqrjgqzjgr8s44Oe44K144OO44OqDQor44K544K644KtLOOCv+ODgOODkuOCsw0KK+OCt+OCq+ODnizjgr/jgqvjgrcNCivjgq3jgrfjg6Ljg4gs44K344Ol44Oz44Kk44OBDQor44Kz44Ot44KuLOOCq+ODhOODnw0KK+ODleOCv+ODnyzjgq3jg6jjgrcNCivjg6Tjgrfjg60s44OI44K344KqDQor44OP44Oq44Kk44KxLOODqOOCt+ODj+ODqw0KK+OCt+ODoOODqSzjgqLjg6rjg57jgrUNCivjg4rjgqzjgq/jg6ks44Kk44OB44Ot44KmDQor44Of44OK44OfLOOCs+OCpuOCuA0KK+ODiOOCr+ODiuOCrCzjgq3jg6jjgrcNCivjgr/jg4rjgqss44OV44Kv44OgDQor44OG44Op44K144KtLOOCt+ODreOCpg0KK+OCq+ODiOOCpizjg4jjgqrjg6sNCivjg5/jgrrjg44s44Oo44K344Ki44KtDQor44K/44Oi44OILOODkuODiOOCtw0KK+OCpuODgeODgCzjg5Ljg63jgqvjgroNCivjgr/jgrHjgqTjg4Es44Oo44K344Om44KtDQor44OS44OT44OOLOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg6rjg6fjgqbjg5jjgqQNCivjg6/jgr/jg4rjg5ks44OS44Ot44K/44OADQor44OV44Kr44OALOODnuOCteODkuODrQ0KK+OCpOOCt+OCv+ODiyzjgqvjgrrjg5LjgrUNCivjgqTjg4cs44Oo44K344Om44KtDQor44OL44Kk44K144OILOODnuOCteODpuOCrQ0KK+OCueODiuODj+ODqSzjgrfjg6fjgqbjgrgNCivjgrfjg5/jgros44Oe44K144KqDQor44Kr44OI44KmLOODjuODquODpuOCrQ0KK+ODiuOCpOODiOOCpizjgrjjg6Xjg7PjgrgNCivjgrPjgqTjgrEs44OI44Km44K544KxDQor44Kt44K/44Og44OpLOODiOODqOODkuOCsw0KK+OCq+OCrOODryzjg4jjgrfjg6bjgq0NCivjgqTjgrHjg4As44K/44Kr44K3DQor44Kr44OO44KmLOOCv+OCq+OCtw0KK+OCquOCq+ODouODiCzjgr3jgqbjgrgNCivjgrPjg5Djg6Tjgrcs44K144OA44OS44OtDQor44Kk44K344KkLOODnuOCteODkuODrQ0KK+OCteOCqOOCrSzjg57jgrnjg6bjgq0NCivjgrXjg6/jg4As44K/44Kr44K3DQor44K044OI44KmLOODjuODluODpuOCrQ0KK+OCquODjizjg57jgrXjg5Ljg60NCivjg5Xjg4rjgqrjgqss44Oe44K144Ki44KtDQor44K344Oz44OkLOODnuOCteOCq+OCug0KK+ODm+ODs+OCtuODryzjg5Ljgqvjg6sNCivjg6Tjg57jgqbjg4Es44K344Ky44K4DQor44Kk44K344OOLOODhOODiOODoA0KK+OCpOOCquOCryzjg5Ljg4fjg4jjgrcNCivjgqLjg6njgq0s44Oo44Km44KzDQor44OV44K444Ov44KtLOODn+ODjuODqw0KK+OCpOODgeODoOODqSzjg57jgrXjgq0NCivjg4/jg6Tjgrcs44Oo44K344K144OADQor44Oi44OqLOOCv+OCr+OCuA0KK+OCreODoOODqSzjgrfjgrLjg6sNCivjg6bjgq3jg5Xjgq0s44Oe44K144OS44K1DQor44OP44Ku44Oi44OILOOCpOODr+OCqg0KK+ODj+OCt+ODouODiCzjg5Ljg4fjgqoNCivjgq3jgr/jg6Tjg54s44Oo44K344OG44OrDQor44OV44K444Oi44OqLOOCseODs+OCuA0KK+OCquOCr+ODjizjgqrjgrXjg6ANCivjg6Tjg57jg4As44Of44OE44KqDQor44K/44K0LOOCv+OCq+OCtw0KK+OCouOCteOCpCzjg6jjgrfjg5Ljg60NCivjg6Ljg6rjg44s44OS44Ot44K3DQor44Of44OK44KkLOOCseOCpOOCsw0KK+ODouODquOCteODryzjg4jjg6jjgrMNCivjg4rjg6rjgrXjg68s44OV44Of44KzDQor44Oi44Oq44Oi44OILOODnuOCteODqw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjg47jg6oNCivjgrfjg57jg4As44OS44OH44KtDQor44K544K644KtLOODn+OCteOCsw0KK+ODleOCr+ODgCzjgrHjgqQNCivjgqLjg6njgqQs44Ki44Kt44OO44OWDQor44K/44OL44Ok44OeLOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCq+ODouODiCzjg57jg4TjgqoNCivjg4DjgqTjg6Ljg7Ms44Of44OO44OrDQor44OP44Ok44K3LOODqOOCt+ODiuOCqg0KK+OCpOOCt+ODgCzjg5Xjgq/jgqoNCivjg5Ljg63jgrXjg68s44Oo44K344Of44OBDQor44Oo44K344Kq44KrLOODnuOCteOCuuODnw0KK+ODnuODhOODouODiCzjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrjjg54s44K144Kr44KoDQor44Kt44K/LOOCteODiuOCqA0KK+ODi+OCt+ODoOODqSzjgrfjgrLjgqvjgroNCivjg4/jg4Pjg4jjg6os44OS44OH44KqDQor44Ok44Oe44Oi44OILOOCq+OCuuOCqg0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgq3jgr/jg6Djg6ks44Oe44K544OfDQor44K/44OK44KrLOODiOODn+OCqg0KK+OCpOOCquOCrSzjg4jjg5/jg6TjgrkNCivjgqvjg57jgr8s44Kz44Km44K4DQor44K344Of44K6LOODkuODreOCtw0KK+ODnuOCueOCquOCqyzjg5Ljg4fjgqoNCivjgrXjg6/jg4As44K344On44Km44KzDQor44OK44Kr44Kk44K3LOOCv+OCseODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg57jgrXjg5Ljg60NCivjg6jjgrfjgrbjg68s44Ki44Kt44KqDQor44K144K144Kq44KrLOODjuODquOCouOCrQ0KK+ODpOODnuOCsOODgSzjg4jjgrfjgqoNCivjgqTjg57jg5Xjgq8s44K/44OA44K3DQor44Kr44Of44OkLOODiOODn+OCqA0KK+ODr+OCtSzjg5Ljg4fjgqoNCivjgq3jgq/jg4Es44Ki44Kt44OS44KzDQor44Km44Kr44KkLOODn+OCreOCqg0KK+OCpOODr+ODnizjgrvjgqTjgqTjg4ENCivjg4Tjgrgs44OW44Oz44K4DQor44K/44Kx44OALOOCteODgOODhOOCsA0KK+OCu+ODiOOCrOODryzjgrfjgrLjg4jjgrcNCivjgrPjgrfjg6Djg6ks44Oe44K144K3DQor44Ov44K/44OK44OZLOOCuOODpeODs+OCpOODgQ0KK+OCpuOCteODnyzjg5/jg4Tjg47jg5YNCivjgqrjgqvjg4As44OI44K344OS44KzDQor44OV44K444Ov44OpLOOCt+ODp+OCpuOCuA0KK+OCq+ODiOOCpizjg6Tjgrnjg6bjgq0NCivjgqTjgrfjg4/jg6ks44Oe44K144OrDQor44OS44OK44K/LOOCreODp+OCpuODmOOCpA0KK+OCpuOCqOOCueOCrizjgrfjgrLjg5Ljg60NCivjgrfjg5Djgr8s44OO44OW44Kr44K6DQor44Kq44Kv44OALOODnuOCteODqw0KK+OCueODiuODpOODnizjg6jjgrfjgqoNCivjgqTjg57jgqQs44Ki44Kt44OS44KzDQor44OK44Kr44Og44OpLOODjuODluOCqg0KK+ODiuOCq+ODouODqizjgrPjgqbjgrgNCivjg5XjgqvjgrXjg68s44Og44ON44OS44K1DQor44Of44K644K/LOOCt+ODs+OCpOODgQ0KK+OCquODjizjgqvjgrrjgrcNCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44K344Ol44OJ44KmLOODn+ODjuODqw0KK+ODleOCr+OCpCzjgr/jg4Tjg5LjgrMNCivjg47jg4As44Kr44OK44KoDQor44Kq44Kq44OOLOODj+ODq+OCrQ0KK+OCs+OCrOODnyzjg6jjgrfjg57jgrUNCivjg5/jgq0s44Oe44K144Om44KtDQor44Kk44Kx44OALOODleODn+OCqg0KK+ODleOCuOODouODqizjg4jjgrfjg5LjgrMNCivjgr/jgqvjg4As44Kr44K644KqDQor44Kk44Kx44OALOODjuODluOCvuOCpg0KK+OCpOODiOOCpizjg47jg5bjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44K144Ov44OALOODnuOCteODleODnw0KK+ODnuOCqOOCuOODnizjg57jgrPjg4gNCivjgqTjg4rjg6Djg6ks44K544K544OgDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+OCuOODnizjgrfjg47jg5YNCivjgqTjg6/jg54s44Oo44K344Om44KtDQor44Ov44Kr44OE44KtLOODkuODh+OCrQ0KK+ODj+OCu+OCrOODryzjg6jjgrfjg63jgqYNCivjgqTjg47jgqbjgqgs44K/44Kr44K3DQor44Kr44K144OP44OpLOOCs+OCpuOCuA0KK+ODi+OCt+ODpOODnizjg57jgrXjg5Ljg60NCivjgrnjg4njgqYs44K444Ol44Oz44Kk44OBDQor44Kq44Kr44OZLOODiOOCt+ODkuODrQ0KK+ODleOCr+ODkCzjgrHjg7PjgrgNCivjg57jg4Tjg4rjgqws44Ok44K544KqDQor44K144Kr44KkLOODkuODreODkuOCsw0KK+ODleOCuOOCvyzjg6bjgq3jgqoNCivjg4rjgqvjg6Tjg54s44K/44Kr44Ok44K5DQor44Oo44ON44OALOOCseODs+OCvuOCpg0KK+OCr+ODnuOCvyzjgrPjgqbjgqTjg4ENCivjgrPjg6Tjg54s44OS44Ot44Om44KtDQor44Oo44ON44Ok44OeLOOCv+OCseOCtw0KK+ODleOCuOOCq+ODryzjgrHjg7PjgrgNCivjg4/jg6rjgqzjg6Qs44OS44Ot44Ki44KtDQor44OP44K744Ks44OvLOOCq+OCuuODkuODiA0KK+ODqOOCt+ODgCzjgr/jg4DjgrcNCivjgq/jgrnjg47jgq0s44Oo44K344OV44OfDQor44K/44Kr44OP44K3LOOCteODgeOCsw0KK+ODiuOCrOOCvyzjgrfjg7PjgrgNCivjgr3jg47jgq/jg6ks44OS44Ot44K3DQor44Oe44K544Oi44OILOODqOOCt+OCqg0KK+OCquOCruODj+ODqSzjg5Ljg63jgrcNCivjg6jjgrfjg4As44Oe44OK44OWDQor44K/44OK44KrLOODnuOCteODkuOCsw0KK+OCqOODgCzjgrvjgqTjgqTjg4ENCivjg4rjgqss44K/44Oi44OEDQor44Kk44Kk44K644KrLOODjuODnOODqw0KK+ODhuODqeODi+OCtyzjg57jgrXjg47jg5YNCivjg5Xjgq/jgqQs44K744Kk44K4DQor44OH44Og44OpLOOCq+OCuuODkuOCsw0KK+OCteOCqOOCrSzjgrfjgrLjg4/jg6sNCivjgqbjg4Hjg4As44OS44OH44OO44OqDQor44K344Kk44OKLOODjuODluOCqg0KK+ODleODq+ODpCzjg6jjgrfjg4/jg6sNCivjg4rjgqzjgq/jg5ws44Kq44K144OgDQor44OG44Op44Km44OBLOODkuODh+OCouOCrQ0KK+OCquOCquOCv+OCqyzjg57jgrXjgqLjgq0NCivjg5Xjgrjjg6jjgrcs44OI44Kq44OrDQor44K144Kk44OI44KmLOODnuOCteOCqg0KK+OCr+ODreOCteODryzjg5XjgrXjgqgNCivjgqTjgrfjgqvjg68s44Kx44Oz44K944KmDQor44Oo44K344OOLOOCv+OCq+OCtw0KK+OCs+ODn+ODpCzjgqvjgrrjg6jjgrcNCivjg6Tjg57jgqzjgr8s44OI44K344KqDQor44OE44OkLOOCq+OCquODqw0KK+ODi+OCt+ODjizjg47jg6rjg6bjgq0NCivjgqbjg4Hjg4As44OS44K144KqDQor44Ov44K/44OK44OZLOOCq+OCuuODn+ODgQ0KK+ODouODquOCvyzjg47jg5zjg6sNCivjgrPjgrfjg4As44Kz44Km44K+44KmDQor44OS44Ot44K7LOODquODp+OCpuODmOOCpA0KK+ODqOOCt+ODoOODqSzjgqvjg4Tjg4jjgrcNCivjg5/jgqbjg6ks44Oo44K344Kr44K6DQor44Kz44Kk44K644OfLOODkuODh+ODjuODlg0KK+ODhuODqeOCqizjg5/jg4Tjg5Ljg60NCivjgrvjgqzjg68s44Of44OB44KqDQor44Kr44Kk44K644KrLOOCouOCreODqQ0KK+ODleOCr+ODnuOCuSzjgrnjgrrjg6gNCivjgqTjg4jjgqbjgros44K4DQor44K744Kt44Ks44OfLOODkuODreOCtw0KK+ODleOCuCzjgqTjgrrjg58NCivjg6jjgrfjg6Djg6ks44Kt44Oo44K4DQor44OV44Or44Oi44OILOODqOOCt+ODpuOCrQ0KK+OCv+OCreOCvyzjg57jg4rjg5YNCivjgqrjgqvjg4As44OS44Ot44OS44K1DQor44K/44Kr44OP44K3LOOCouOCreODqQ0KK+OCv+ODi+ODleOCuCzjg57jgrXjgqLjgq0NCivjgqTjg57jgqrjgqss44Kr44K644OS44OtDQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODpOODnuODouODiCzjgqvjgqrjg6sNCivjg6jjg4As44Ok44K544KqDQor44OV44Kr44Ok44OeLOODkuODreOCtw0KK+ODpOODnuOCsOODgSzjg5LjgrXjgqoNCivjgrXjg44s44Kt44OfDQor44K/44Kr44OP44K3LOODpuODqg0KK+ODnuODhOODouODiCzjgq3jg6jjgrcNCivjg6Tjg44s44OS44K144K3DQor44Ki44Kt44OQLOOCq+OCuuODqOOCtw0KK+ODn+ODieODquOCq+ODryzjg5Ljg63jg5/jg4QNCivjgr/jgqvjgrcs44Of44Oo44KzDQor44OV44Or44Kr44OvLOODn+ODjuODqw0KK+ODkuOCreOCvyzjgqjjgqTjgrgNCivjgqrjgrbjgq0s44Oo44K344Ki44KtDQor44Ki44Kq44KtLOOCt+OCsuOCquODnw0KK+OCteOCqOOCsOOCtSzjg57jgrXjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44OS44Ot44K3DQor44Kz44OL44K3LOODpuOCpuOCuA0KK+OCquOCquODi+OCtyzjgrfjg6Xjg7PjgrnjgrENCivjg5LjgrDjg4Es44OV44K444KtDQor44Kv44Oc44K/LOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuOCsOODgSzjgrfjg63jgqYNCivjg5Xjg6vjgqvjg68s44Oe44K144OIDQor44OK44Oq44K/LOOCpOODgeODreOCpg0KK+OCv+ODiuOCqyzjg5XjgrXjgqTjg4ENCivjg4/jgr/jgrHjg6Tjg54s44OG44OE44KqDQor44Of44Ok44Oi44OILOODn+OCteOCqg0KK+ODjuOCtuOCrSzjg6Tjgrnjg4/jg6sNCivjg4/jgrvjgqzjg68s44OB44On44Km44K344Ot44KmDQor44K344Op44Kr44OvLOODqOOCt+ODkuOCsw0KK+OCouOCpOODgCzjgrPjgqbjg5jjgqQNCivjg5Ljg63jgqvjg68s44OS44Ot44K3DQor44Oq44Ol44Km44Kr44OvLOODhOODqOODoA0KK+ODpOODnuOCsOODgSzjg57jgrnjg58NCivjgq/jg6rjgrXjgq0s44OS44OH44KqDQor44Oi44Oq44Oi44OILOODqOOCt+ODn+ODgQ0KK+OCr+ODnOOCvyzjg57jgrXjgqLjgq0NCivjgq/jg57jgrXjgrMs44Oi44Oq44K344KyDQor44Ki44OA44OBLOOCseODs+OCvw0KK+OCs+ODs+ODjizjg5Ljg63jgqLjgq0NCivjg6Tjg57jg6Ljg4gs44Ko44OE44KzDQor44Kk44Ov44KkLOODquODp+OCpuOCvw0KK+OCquOCquODj+ODqSzjg5Ljg4fjgqoNCivjgqTjgrfjg4/jg6ks44OI44Oi44OO44OqDQor44Ki44Kq44KtLOOCv+OCseOCtw0KK+ODouODqizjg6jjg6rjgrMNCivjg63jg4Pjg53jg7Pjgq4s44Oe44K144Ki44KtDQor44Kr44OI44KmLOOCs+OCpuOCpOODgQ0KK+OCteODiOOCpizjg6TjgrnjgqoNCivjg57jgqjjgr7jg44s44Ko44Kk44K444Ot44KmDQor44OV44K444Oi44OILOODkuODh+ODjuODlg0KK+OCv+ODi+ODoOODqSzjg5Ljg63jgrcNCivjg4rjgqvjg4vjgrcs44Om44K/44KrDQor44K/44Kr44OP44K3LOOCt+ODs+OCuA0KK+ODiuOCq+OCpCzjgqvjgrrjg58NCivjgr/jgqvjg4/jgrcs44K/44Kx44OV44OfDQor44K344OiLOODpuOCpuOCpOODgeODrQ0KK+OCt+ODkOOCvyzjgqTjgrXjg6ANCivjg5Xjg6vjg5/jg4Es44Oo44K344KqDQor44K/44Kx44OALOOCouOCreODqQ0KK+ODleOCuOOCvyzjg5Ljg63jgrcNCivjgqvjgq7jg6Tjg54s44OG44OE44OkDQor44Ov44OBLOODnuOCteODjuODqg0KK+ODleOCuOOCvyzjg5Ljg4jjgrcNCivjgrPjg7Pjg4ks44K344Ky44OO44OqDQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+ODleOCr+OCpCzjg5Ljg4fjg6bjgq0NCivjgrnjgqzjg6/jg6ks44Kz44Km44K444On44KmDQor44OV44Kr44Ok44OeLOOCouOCreODqQ0KK+OCpOODnuOCpCzjg57jgrXjgr/jgqsNCivjgrXjg4jjgqYs44Kv44OL44OS44KzDQor44Kr44OK44K244OvLOOCq+OCuuOCqg0KK+ODleODgeOCtuOCrSzjgqrjgrXjg6ANCivjg4Tjgqvjg4As44K344On44Km44Kk44OBDQor44Kk44K344K244KtLOOCv+OCq+ODpuOCrQ0KK+ODiOOCr+ODqSzjg5/jgq3jgqoNCivjg4jjg47jgrXjgq0s44Oi44OI44Oo44K3DQor44K/44Kr44KtLOODkuODh+OCqg0KK+ODleOCuOOCvyzjg5Ljg63jg6bjgq0NCivjg4rjgqzjgrss44Os44Kk44KzDQor44K/44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODhOODnyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44Om44Km44Kk44OBDQor44OV44Kv44K/LOOCv+OCq+ODiuOCqg0KK+OCr+ODr+ODj+ODqSzjg6jjgrfjg6bjgq0NCivjg5Xjgrjjgr8s44Ko44Kk44K+44KmDQor44Kk44OK44Kv44OeLOODiOOCt+OCsw0KK+ODn+OCteOCqizjgrPjgqbjgr7jgqYNCivjg4rjgqvjgrfjgr8s44Oe44Kz44OIDQor44Kq44Kv44Ok44OeLOODpuOCpuOCuA0KK+ODiuOCrOOCqCzjgqvjgrrjg5Ljg60NCivjg4rjgqzjgqQs44K344On44Km44K0DQor44Ok44Oe44K244KtLOODnuOCteODqw0KK+OCt+ODqeOCpOOCtyzjgrfjg6fjgqbjgqTjg4ENCivjgqbjgqjjg4As44K344Ky44OrDQor44Kq44K444OeLOODkuODreOCouOCrQ0KK+ODkuODreOCuyzjg57jgrXjg47jg5YNCivjg5Ljg6njg44s44Oe44K144OrDQor44OV44Or44K/LOOCv+OCq+OCqg0KK+OCs+ODjOODnizjgqvjgqrjg6sNCivjgr/jgqvjg6Tjg54s44OI44Oi44OP44OrDQor44Ki44K144K344K/LOODnuOCteODleODnw0KK+ODqOODhOODj+OCtyzjg5Ljg63jgrcNCivjg4Tjg4Hjg6Qs44K/44Kr44OfDQor44Kq44Kq44OL44K3LOOCpOOCteOCqg0KK+ODpOODnuOCsOODgSzjgrfjg6fjgqbjgrgNCivjgrfjgrrjg44s44Kk44K144OgDQor44OP44K344OZLOODquODp+OCpuOCpOODgQ0KK+ODm+ODquOCpCzjg5/jg6jjgrcNCivjg4rjgqzjgqrjgqss44OO44Oq44KzDQor44Kv44Oq44K/LOOCt+ODp+OCpuODmOOCpA0KK+OCreODkCzjgrXjg4rjgqgNCivjgqTjg4As44Oe44OB44KzDQor44OV44Kv44OI44OfLOOCq+OCuuODnw0KK+OCs+ODkOODpOOCtyzjg47jg5zjg6sNCivjgqTjg6os44Kx44Oz44Kk44OBDQor44K144K/LOODnuOCueOCsA0KK+ODnuODq+ODpOODnizjg5Ljg63jg5Xjg58NCivjgqLjgqrjg6Tjg54s44K344Ky44OrDQor44K344Oz44OJ44KmLOODpOOCueOCqg0KK+OCouOCpOOCq+ODryzjgq3jg6fjgqbjgrgNCivjgrXjgqvjg47jgqbjgqgs44Kx44Oz44Kk44OBDQor44OV44K444Oe44KtLOOCv+ODgOOCouOCrQ0KK+OCq+ODr+ODj+ODqSzjg57jgrPjg4gNCivjg6Djg6njgr8s44OS44OH44Om44KtDQor44Oo44K344OALOODpuOCpuOCpOODgQ0KK+OCpOOCv+OCr+ODqSzjg4bjg4Tjg6QNCivjgrjjgr7jg5Djg6ks44Oo44KmDQor44K/44OK44KrLOODiOOCt+OCqg0KK+OCq+OCuOODr+ODqSzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kq44K144OgDQor44OP44K544Kk44KxLOOCt+ODpeOCpuOCuA0KK+ODiOOCpuODnizjg6bjg5/jgrMNCivjgqvjg6/jgq3jgr8s44Ki44Kt44OpDQor44Oe44OE44Oi44OILOODpOOCueODkuOCsw0KK+ODj+OCu+OCrOODryzjg5/jg4TjgqoNCivjg5XjgrjjgqQs44OI44Kq44OrDQor44OO44Og44OpLOODn+ODgeOCv+OCqw0KK+ODqOOCpuOCs+OCvyzjg5Ljg4fjgqoNCivjgqvjg4rjgrbjg68s44Kz44Km44K+44KmDQor44Oe44K544Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCq+ODjuOCpizjg5Ljg63jgrcNCivjg5Xjg4rjg6Tjg54s44Ko44OE44KqDQor44Ok44Oe44K344K/LOOCreODgeODkuOCsw0KK+OCteODiOOCpizjg57jgrXjgqvjgroNCivjgqvjg6Hjg6Ljg4gs44Oo44K344OV44OfDQor44Kk44OI44KmLOOCreODqOOCtw0KK+OCquOCr+ODoOODqSzjgrfjgrLjgqoNCivjg5XjgrjjgqQs44OG44Or44KqDQor44Kt44OP44OpLOOCv+OCq+OCtw0KK+ODjuODoOODqSzjg6rjgrXjgq8NCivjgqLjgq/jgr/jgqzjg68s44OE44OI44OgDQor44Kk44K344OALOOCr+ODi+OCqg0KK+OCpuODoeODj+ODqSzjgrfjgrLjg6sNCivjgqrjgqrjgq4s44OK44Kq44Om44KtDQor44Kz44Oz44OJLOODj+ODq+OCqg0KK+OCv+OCseODgCzjgrHjgqTjgrMNCivjg57jg4TjgqQs44OV44Of44Ko44KkDQor44Kr44Of44Kq44KrLOODnuOCteODqw0KK+OCq+ODouOCt+OCvyzjg5Ljg63jg58NCivjg6Tjg4rjgq7jgrXjg68s44K/44Kx44OS44OtDQor44K/44Kx44Km44OBLOODnuODouODqw0KK+ODouODs+ODnizjg5/jg47jg6sNCivjgqTjgqTjg4As44Kr44OK44KoDQor44OP44K744Ks44OvLOODiOOCt+OCuA0KK+ODiuOCrOODm+ODqizjg5Ljg63jgrcNCivjg6Ljg6rjgqrjgqss44K/44OA44OO44OqDQor44OL44K344Ok44OeLOOCouOCreOCqg0KK+ODpOODnuODouODiCzjg6TjgrnjgqoNCivjgqTjgrfjg4As44OI44K344KqDQor44OV44Or44OJLOODnuOCteOCqg0KK+OCq+ODs+ODgCzjg57jgrXjgqLjgq0NCivjgqTjgrfjg4As44K344Ky44OrDQor44K144Kk44OI44KmLOOCv+OCq+ODkuODrQ0KK+OCreODoOODqSzjg5Ljg4jjgrcNCivjgqTjg6/jg58s44Ok44K544OO44OWDQor44Oi44OqLOOCt+ODpeOCpuOCpOODgQ0KK+OCv+OCq+ODpOODnizjgrfjg6fjgqbjgr7jgqYNCivjg4/jg6TjgrfjgrDjg4Es44Ki44Kt44OS44KzDQor44K144Kk44OI44KmLOODpOOCueOCqg0KK+OCt+ODkOOCv+OCrSzjgq/jg4vjgqLjgq0NCivjgqrjgq7jg4/jg6ks44Oo44K344OP44OrDQor44Kr44OI44KmLOOCpOOCteODnw0KK+ODleOCr+ODiCzjg4rjgqrjg6QNCivjgqrjg4As44OS44OH44Ki44KtDQor44K144OI44KmLOODnuOCteODkuODrQ0KK+ODiuOCq+ODoOODqSzjg6bjgr/jgqsNCivjg4/jg57jg4As44K/44Kr44OS44OtDQor44Kq44Ks44K144Ov44OpLOODhuODhOODpA0KK+ODoOODqeOCrSzjgqvjgrrjg5LjgrMNCivjgqrjgqrjg4/jgrcs44Ki44Kt44OS44OIDQor44K/44Kr44OOLOOCv+OCq+OCtw0KK+ODiuOCq+OCtuODryzjgqvjgrrjg4jjgrcNCivjg5/jg6Tjgrgs44Ki44Kt44OS44OtDQor44K544Ko44OK44KsLOODpOOCueOCqg0KK+OCv+OCv+OCrSzjgqLjgq3jg6kNCivjg6jjgrfjg4As44Kk44Ov44KqDQor44Ki44Kq44KtLOODkuODh+OCtw0KK+OCueOCruODoOODqSzjgqvjgqrjg6sNCivjgqTjg4jjgqYs44Oe44K144OI44K3DQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjgqTjgrXjg6ANCivjgqvjgr/jg6Tjg54s44OI44K344OS44KzDQor44K144Kk44OI44KmLOODnuOCteOCtw0KK+OCv+OCuOODnizjg5Ljg63jgrcNCivjgqLjg5ks44Oo44Km44Kk44OB44Ot44KmDQor44OK44Kr44K444OeLOOCt+OCsuOCrQ0KK+ODpOODnuOCsOODgSzjg57jgrPjg4gNCivjg6/jgq3jgrbjgqss44Oe44K144OS44KzDQor44K144KzLOOCteODgOODiA0KK+OCquOCquODhOOCqyzjg4jjg6Ljg5Ljg60NCivjg4Tjgqvjg6Ljg4gs44K544K544OgDQor44Kk44OO44Km44KoLOODleODn+OCqg0KK+ODiuOCrOOCqizjg4jjgqrjg6sNCivjgqbjg6njg5As44Oe44K144KqDQor44Kz44K444OeLOODpOOCueODkuODrQ0KK+OCv+OCseODgCzjg6bjgqbjgrgNCivjgqLjgqrjg44s44K444Oz44Kk44OBDQor44Kk44K644Kr44OvLOODjuODluOCqg0KK+OCr+ODieOCpizjgqvjgrrjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OI44K344Om44KtDQor44Oe44OE44KqLOODnuOCteODleODnw0KK+OCpOODiuOCrOOCrSzjgrfjg7PjgqTjg4ENCivjg4vjgrfjg6Ljg4gs44K344On44Km44Kk44OBDQor44Kk44OO44Km44KoLOODkuODiOOCtw0KK+OCquODjuODh+ODqSzjg4bjg4Tjg6QNCivjgqTjgrfjgrbjgqss44OI44K344OS44KzDQor44OP44Ku44Ov44OpLOOCseODs+OCvuOCpg0KK+ODleODq+OCvyzjg57jgrXjg6sNCivjgqbjgqjjgrjjg54s44OI44Of44KqDQor44OM44Oe44K/LOOCt+ODpeOCpuOCpOODgQ0KK+OCqOODs+ODiSzjg57jgrXjg5Ljg60NCivjgqvjgqzjg6Tjg54s44K344Oz44OkDQor44Om44Oq44Oi44OILOODkuODiOOCtw0KK+ODleODgSzjgr/jg4DjgqoNCivjg5Xjgrjjgqrjgq0s44OS44Ot44OO44OWDQor44K144Kk44OI44KmLOODnuOCteODiOOCtw0KK+ODnuODhOODouODiCzjg5/jg4TjgqLjgq0NCivjg5Ljg63jgrss44Oo44K344Kr44OEDQor44OQ44OQLOOCuOODpeODs+OCpOODgeODrQ0KK+OCs+ODkOODpOOCtyzjg5Ljg63jg6bjgq0NCivjgrnjgrrjgq0s44Oe44K144OfDQor44OK44Kr44Ok44OeLOOCq+OCuuOCqg0KK+OCreOCtyzjg5Ljg63jgrcNCivjgqLjgrXjg44s44Oe44K144Kr44K6DQor44Ko44Oz44OJLOOCouOCreOCqg0KK+OCpOOCt+ODkOOCtyzjg4DjgqTjgrQNCivjgqvjgqTjg4As44Of44OE44KqDQor44Kk44Kx44K444OeLOODkuODh+OCouOCrQ0KK+ODj+ODqeODgCzjg4jjgrfjgqoNCivjg4/jg57jg44s44Kz44OO44OgDQor44Kr44Ov44KkLOODn+ODgeODqw0KK+ODr+ODgCzjg4jjgrfjg57jgrUNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCouOCr+ODhCzjg6jjgrfjg47jg6oNCivjgqTjg4jjgqYs44Kt44Oo44OfDQor44Ki44Oz44OJ44KmLOOCpOODr+OCuA0KK+OCouOCpOOCtuODryzjg5Xjg4jjgrcNCivjgq/jg5zjgr8s44Kt44Oo44K3DQor44OV44Kr44Km44OfLOOCteODiOOCtw0KK+OCt+ODn+OCuizjg5Ljg4jjgrcNCivjgr/jgqvjg4/jgrcs44K144OI44K3DQor44OK44Of44KtLOODhuODhOODreOCpg0KK+ODjuOCtuODryzjg6TjgrnjgrcNCivjgrPjgqTjgr/jg5Djgrcs44Kt44Oo44OS44OtDQor44K/44OG44Kk44K3LOODkuODreODnw0KK+OCq+ODr+OCq+ODnyzjgqvjgrrjgqoNCivjgrPjg5Djg6Tjgrcs44Kr44K644OO44OqDQor44Kq44OO44K644KrLOODkuODh+OCqg0KK+OCv+OCsOODgSzjg5/jg4TjgrANCivjgr/jgqvjg4/jgrcs44Oe44K144Ki44KtDQor44K144OI44KmLOODpOOCueODkuODrQ0KK+OCr+ODr+ODj+ODqSzjgrfjg63jgqYNCivjgrvjg4gs44K144OI44K3DQor44K044KxLOODkuODh+OCrQ0KK+ODqOOCt+ODoOODqSzjgq3jg6jjgrcNCivjgr/jgqvjg6Tjg54s44OO44OW44Om44KtDQor44K144K144KtLOODpuOCreOCqg0KK+OCq+ODjuOCpizjgrfjgrLjgq0NCivjgr/jgqvjg4/jgrcs44K344Ky44OP44OrDQor44OK44Ks44Kq44KrLOODiOODouODpuOCrQ0KK+OCueOCuuOCrSzjg5Ljg4fjgq0NCivjg6Tjg57jgrDjg4Es44Ki44Kt44OpDQor44Oi44OqLOOCteODiOODqw0KK+OCueOCuuOCrSzjgqTjg4TjgqoNCivjgqbjgqjjg6Djg6ks44Oe44K144OI44K3DQor44Ok44OW44OP44OpLOODn+ODhOODqOOCtw0KK+OCt+ODqeOCpOOCtyzjgqvjgrrjgq0NCivjgq3jgq/jgr8s44Oe44K144OO44OWDQor44OK44Kr44KkLOODn+ODhOODjuODqg0KK+OCr+ODqeODouODiCzjg6bjgr/jgqsNCivjgrnjg5/jg6jjgrcs44OS44OH44KqDQor44K/44Kr44KuLOODkuODreODkuOCtQ0KK+OCt+ODp+OCpuOCuCzjg47jg6rjgqoNCivjgqrjgrXjg4As44Oe44K144Om44KtDQor44Ki44K144OOLOOCteODiOOCtw0KK+OCpOODr+OCtSzjgq3jg6jjgrcNCivjg5Djg5As44Om44K/44KrDQor44OS44Ot44K/LOOCteODiOODqw0KK+ODleOCuOODouODiCzjg5/jgrXjgrMNCivjgrXjg44s44Oe44K144OrDQor44Oi44OI44KtLOODpOOCueODpuOCrQ0KK+OCpOODiOOCpizjg57jgrXjg47jg6oNCivjgqbjgrHjgqzjg68s44OV44Of44KqDQor44Km44Oh44OQ44Ok44K3LOOCpOOCteOCqg0KK+OCpOODiuODiOODnyzjgqvjgrrjg6jjgrcNCivjgr/jgqvjg6Tjg4rjgq4s44Oe44K144Ki44KtDQor44OP44OpLOOCpOOCteOCqg0KK+ODiuOCq+ODj+ODqSzjg5bjg7Pjg63jgqYNCivjgrXjgqTjgr/jgrEs44K744Kk44K4DQor44Kr44K344Ok44OeLOODkuODreOCtw0KK+OCteOCq+OCpCzjg4jjg6Ljg6bjgq0NCivjgqTjg4jjgqYs44OO44Oq44Kr44OEDQor44OK44Kr44Og44OpLOODqOOCt+ODjuODlg0KK+OCquOCquODjuOCrizjgr/jgrHjgrcNCivjgqTjgqvjg58s44Om44K/44KrDQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCt+OCpOODiizjg4jjg5/jgqoNCivjgr/jg57jg47jgqQs44K344On44Km44Kk44OBDQor44Kv44OcLOODkuODh+OCouOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjg5vjg4Pjgr8s44OS44OI44K3DQor44Ob44Kr44OqLOOCv+OCq+ODpuOCrQ0KK+OCteODiOOCpizjgqLjgq3jgqoNCivjg5vjgrfjg44s44K344Ol44Km44Kk44OBDQor44Kr44OW44Op44KuLOODiOOCt+ODkuODrQ0KK+OCquOCteODgCzjg4jjgrfjg5Xjg58NCivjgrnjgqjjg5Ljg60s44K/44Kr44KqDQor44Og44Op44Kr44OvLOODqOOCt+ODnw0KK+OCpOODr+OCteOCrSzjgrHjg7PjgrgNCivjg6Tjg57jg6Djg6ks44K344Oz44K4DQor44Oi44Oq44K/LOOCv+ODhOOCqg0KK+OCpOOCseODgCzjg6jjgrfjg47jg6oNCivjg6Tjgqbjg4Es44OS44Ot44K3DQor44Ok44Oe44K344K/LOOCq+OCuuODkuODhw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgqLjg4rjg7Ms44Ko44OE44K4DQor44OL44K344OOLOOCv+ODhOODreOCpg0KK+OCs+OCt+ODn+OCuizjg6TjgrnjgqoNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44Ko44Ks44OvLOODiOOCt+OCqg0KK+ODpOODnuOCtuOCrSzjgr/jg4Tjg5Ljg60NCivjgqTjg57jgrzjgq0s44Oo44K344OV44OmDQor44K544K644KtLOODkuODh+OCrQ0KK+ODi+OCt+ODj+ODqSzjg6bjgqbjgqTjg4ENCivjgqrjgqvjg5ks44Kk44K144OgDQor44K144Kr44KkLOODnuOCteODkuODrQ0KK+OCv+ODgCzjg4jjgrfjgqoNCivjgrnjgqjjg6jjgrcs44Of44Kt44KqDQor44OP44Ok44K3LOOCpOOCv+ODqw0KK+OCv+OCq+ODj+OCtyzjgrHjg7PjgrgNCivjgrPjgqLjgrcs44OP44K444OhDQor44Oi44Oq44Kr44OvLOOCqOOCpOOCtw0KK+OCq+ODiOOCpizjg6Tjgrnjgq/jg4sNCivjg57jgqjjg5As44Oe44K144OS44OtDQor44Ok44OOLOOCv+ODhOOCqg0KK+OCpOODiOOCpizjg6jjgrfjg4/jg6sNCivjg4rjgqvjgqQs44OS44Ot44K3DQor44Kq44OA44Ku44OqLOOCq+OCuuOCqg0KK+OCqOODs+ODiSzjg4bjg4TjgqoNCivjgr/jgrHjgqQs44Ok44K544Om44KtDQor44OK44Kr44K/44OLLOODn+ODgeODjuODqg0KK+OCpOODr+OCteOCrSzjg4jjg6Ljg5Ljg60NCivjgqvjg6njgqvjgrUs44Ki44Kt44OS44OtDQor44Ki44K144OOLOOCseODs+OCpOODgQ0KK+OCpOODr+ODluODgSzjg57jgrXjg6sNCivjg4/jg7Pjg4As44OI44Kq44OrDQor44OG44Op44KqLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpCzjg6jjgrfjg6Ljg4gNCivjg4/jgrfjg6Ljg4gs44Oo44K344OfDQor44Of44Ok44K144KrLOODhOODiOODoA0KK+ODhuODqeODgCzjgqTjg4Hjg63jgqYNCivjgrXjgqvjgr8s44Ok44K544Om44KtDQor44OK44Ks44OkLOOCq+ODhOODnw0KK+ODj+OCt+ODouODiCzjgrHjg7PjgrgNCivjgqrjgqrjgq/jg6ks44OE44OI44OgDQor44OK44Kr44K144KtLOODn+ODhOOCsA0KK+OCreODquODj+ODqSzjg4jjgrfjg6bjgq0NCivjgqLjg6njgqQs44K344Ol44Oz44K4DQor44Kk44Ov44OOLOODkuODreODpuOCrQ0KK+ODj+ODg+ODiOODqizjg5Ljg63jg47jg6oNCivjgrnjgrrjgq0s44OI44Kq44OrDQor44OL44K344OP44OpLOODkuODreOCtw0KK+OCteOCteOCrSzjgrfjgrrjgqoNCivjg4/jg4rjg5XjgrUs44OE44OI44OgDQor44OO44OJ44OOLOOCv+ODhOODpuOCrQ0KK+OCq+ODr+ODkOOCvyzjgq/jg4vjgqoNCivjgrfjg5/jgros44Oo44K344OK44KqDQor44OK44Ks44K344OeLOODhOOCsOODkuOCsw0KK+ODouODqizjgqvjgrrjgqoNCivjgrfjg5/jgros44K344Ky44Ki44KtDQor44OS44K144Ok44K5LOOCseOCpOOCvuOCpg0KK+OCq+OCv+OCpuODqSzjgrfjgrLjg6bjgq0NCivjgr/jgrHjg6Djg6ks44Ki44Kt44Of44OEDQor44Kk44Oe44OL44K3LOODnuOCteODiA0KK+OCquOCq+ODgCzjgqLjgq3jg5LjgrMNCivjg4rjgqvjgqgs44Kq44K144OgDQor44K344Ot44OOLOOCuOODpeODs+OCpOODgQ0KK+ODqOOCs+ODpOODnizjg47jg5bjgqoNCivjgqrjgqvjgrbjg68s44Oe44K144OS44KzDQor44Kr44OfLOODjuODquODiOOCtw0KK+OCr+ODnuODmSzjg57jgrXjgqoNCivjgrfjg5/jgros44K/44OE44Ot44KmDQor44Ok44OK44Ku44K144OvLOOCt+ODp+OCpuOCpOODgQ0KK+ODnuOCreODjizjg6bjgqbjgrgNCivjgrXjg68s44Ov44K/44OrDQor44Km44K344Ot44OALOOCr+ODi+OCqg0KK+ODnuODgeODgCzjg4TjgqvjgrUNCivjgrPjg5Djg6Tjgrcs44K/44Kr44KqDQor44K344Ky44Og44OpLOODiOOCt+ODj+ODqw0KK+ODkuOCsOODgSzjgr/jgqvjgrcNCivjgqTjgqTjg4zjg54s44Oe44K144Om44KtDQor44Kk44K644OfLOODn+ODjuODqw0KK+ODj+ODpOOCtyzjg5Ljg63jg4jjgrcNCivjg6Tjgq4s44OB44OP44OrDQor44Kq44Kq44Kr44Ov44OpLOOCreODqOOCv+OCsQ0KK+ODleOCr+OCquOCuCzjgqrjgrXjg6ANCivjgqbjgqzjgrjjg7Ms44Oe44K144OfDQor44K/44OK44OZLOOCt+ODsw0KK+OCtOOCt+ODnizjg57jgrXjg5Ljg4cNCivjgqLjg7Pjg4njgqYs44OS44Ot44K3DQor44Kq44OA44OeLOODpuOCreOCqg0KK+OCquOCq+OCtuOCrSzjgqTjg6/jgqoNCivjgqTjgrfjgqvjg68s44OV44Of44Om44KtDQor44Og44Op44Ok44OeLOODnuOCteOCsw0KK+ODj+ODpOOCteOCqyzjgrHjgqTjgrgNCivjg4rjgqvjgrjjg54s44K/44KvDQor44K/44Kx44Oi44OILOODqOOCt+ODnw0KK+OCreOCv+OCuOODnizjgrjjg6Xjg7PjgrMNCivjg5/jgqvjg58s44OK44OfDQor44Ov44Op44K344OKLOOCuOODpeODs+ODpA0KK+OCreODoOODqSzjgrfjg7MNCivjgqrjgrbjg68s44Oo44K344Kr44K6DQor44Ok44Oe44Og44OpLOODkuODiOOCtw0KK+ODqOOCt+ODgCzjgrfjgrLjgq0NCivjgr/jg4Hjg5Djg4os44K/44Kv44Ot44KmDQor44Oe44OE44Oi44OILOODjuODquODjuOCueOCsQ0KK+ODn+OCt+ODnizjg5Ljg4fjgqLjgq0NCivjgrvjgq0s44OS44Ot44K3DQor44K/44Kr44OP44K3LOODpOOCueODkuOCtQ0KK+OCquOCquOCpOOCsSzjg57jgrXjgrcNCivjg5Xjgrjjg6Ljg4gs44K344Ol44Km44K4DQor44Oo44K344Og44OpLOODjuODluODkuOCsw0KK+OCs+ODkOODpOOCtyzjg6HjgqTjgrgNCivjgqrjgqrjgqzjg58s44Oo44K344Om44KtDQor44Kr44KkLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCq+OCqOODhCzjg57jgrXjg4/jg6sNCivjg6Ljg63jgqQs44K/44Kr44OS44OtDQor44Of44K644OOLOOCpOOCr+OCqg0KK+OCquOCquODhOOCqyzjgqLjgq3jg5LjgrMNCivjgqrjgqrjgr8s44Kr44Kq44OrDQor44K744Kt44ONLOODquODpeOCpuOCuA0KK+ODn+ODpOOCsOODgSzjgqvjgrrjgr/jgqsNCivjg6jjg43jg4As44OK44Ob44KzDQor44Ob44Oq44Km44OBLOODnuOCteOCsw0KK+OCqOOCsOODgSzjgqvjg4Tjg58NCivjgqbjgrfjg63jg57jg4Qs44Kr44K644OfDQor44Kk44Kk44OALOODpuOCreODkuODrQ0KK+ODqOOCt+ODgCzjg6jjgrfjg58NCivjg4rjgqvjgrss44Ki44Kt44KqDQor44K544K644KtLOODpuOCpuOCsw0KK+OCquOCpOOCq+ODryzjgqjjgqTjgrMNCivjgqvjg6/jg5ks44K144OE44KzDQor44K/44OL44K244OvLOOCv+OCq+OCqg0KK+OCq+ODjeOCsyzjg4/jg6vjg6gNCivjg5Xjgrjjgqrjgqss44Kx44Kk44KzDQor44Og44Op44Kq44KrLOODhOODqOOCtw0KK+OCpuODjOODnizjgrHjgqTjgrMNCivjg5/jg6TjgrEs44OV44Kt44KzDQor44OK44Kr44Og44OpLOODgeOCouOCrQ0KK+OCquOCquODryzjg57jgrXjg4/jg6sNCivjg43jg6Ljg4gs44Kk44OB44Ot44KmDQor44OL44K344Og44OpLOODiOODouODkuOCtQ0KK+OCv+ODhOODnyzjgqTjg6/jgqoNCivjgrXjg4jjgqYs44Ki44Kt44KqDQor44K544OO44OP44OpLOODiOOCt+ODkuOCsw0KK+OCouOCueODnizjgq3jg6jjgqvjgroNCivjgr/jgqvjg5As44OO44OW44Ki44KtDQor44Oo44K344Og44OpLOOCteODiOOCtw0KK+OCouODmSzjg4rjgqrjg4gNCivjgq3jgq/jg4Es44Kx44Kk44K4DQor44OK44Kr44Og44OpLOOCq+OCuuODnuOCtQ0KK+ODj+ODoOODqSzjg4Tjg4jjg6ANCivjgrnjgrrjgq0s44OO44OW44OS44OIDQor44Kr44Ov44Og44OpLOODiOOCt+ODpA0KK+ODkuODk+ODjizjg5LjgrXjgqgNCivjgq3jgr/jg4As44Oe44K144OS44OtDQor44K144OI44KmLOODhOODjeOCqg0KK+OCq+ODiOOCpizjgqvjgrrjgqoNCivjgqTjg4jjgqYs44Om44Km44K4DQor44OV44Kv44OI44OfLOODnuOCteODqw0KK+ODoOODreOCuuODnyzjg57jgrXjg5Ljg60NCivjg6Tjg57jg4rjgqss44K444Ol44Oz44Kk44OBDQor44Kq44Kr44OALOOCseODs+OCpOODgQ0KK+ODiOOCpuOCtOOCpizjgr/jgrHjgrcNCivjg4rjg6rjgr8s44K/44Kr44K3DQor44Kk44Kx44K244KtLOOCv+OCseOCtw0KK+OCq+ODr+ODkOOCvyzjgrfjg63jgqYNCivjg57jg4Tjgqrjgqss44OO44OW44KqDQor44OK44Kr44OALOODkuODreOCtw0KK+OCteODiOOCpizjgrfjg7Pjg6QNCivjgr/jgrHjgrbjg68s44Oo44K344OS44OtDQor44Ok44OK44Ks44OvLOODkuODreOCtw0KK+ODpOODnuOCteOCrSzjg47jg6rjg6bjgq0NCivjgrfjgqzjgq0s44OO44Oq44Ki44KtDQor44Om44OfLOOCv+OCseOCtw0KK+OCquOCtuOCrSzjg4Tjg4jjg6ANCivjg4rjgqzjgrfjg54s44K/44Kk44K544KxDQor44Ok44OW44Km44OBLOODkuOCteOCqg0KK+ODm+OCveODpCzjg5LjgrXjgrcNCivjg4vjgrfjgrbjg68s44K944Km44K4DQor44OP44Ok44OfLOODqOOCt+OCqg0KK+ODj+OCu+OCrOODryzjg4rjgqrjg58NCivjgqvjg6/jgrXjgq0s44Kr44OE44OS44KzDQor44OI44Oo44Kk44K644OfLOOCv+OCq+ODpuOCrQ0KK+OCquOCr+ODoOODqSzjg57jgrXjg4gNCivjg6Tjg57jg4As44OO44OW44OS44OtDQor44OL44OvLOOCqOOCpOODkuOCsw0KK+ODi+OCt+OCtuOCrSzjg5Ljg63jgrcNCivjgrnjgq7jg6Ljg4gs44K344Ky44OrDQor44Kq44Kq44K144OvLOODiOODouODiuOCqg0KK+ODiOODgCzjg4jjgrfjgqLjgq0NCivjg4rjgqvjg44s44Oo44K344Kr44OEDQor44Of44Km44OpLOODkuOCteOCtw0KK+ODpOODnuOCtuOCrSzjg4rjgqrjg6bjgq0NCivjgrXjgqvjg6Ljg4gs44OS44Op44KvDQor44Ok44Oe44OALOODn+ODgeOCsw0KK+OCpOODjuOCpuOCqCzjgqvjg6jjgrMNCivjg6TjgrnjgqQs44Oe44K144OoDQor44Oe44OE44OALOODpuODnw0KK+OCq+OCv+OCquOCqyzjgqLjgrHjg58NCivjgrnjgrrjgq0s44Kx44Kk44KzDQor44OP44Ok44K3LOOCseOCpOOCsw0KK+ODj+ODnuODnuODhCzjg6TjgrnjgrMNCivjg4/jg57jg44s44Ko44OqDQor44Of44K644K/44OLLOODn+ODqOOCsw0KK+OCueODn+OCvyzjg6Ljg4jjg4HjgqsNCivjg4/jg6Tjgrcs44Oe44Kt44KzDQor44OI44Kv44OK44KsLOODpuODn+OCsw0KK+OCq+ODiOOCpizjg47jg5bjgrMNCivjg57jg4Tjgqbjg6ks44Of44Ko44KzDQor44OS44Oj44Kv44OKLOODkuODh+OCsw0KK+OCouODs+OCtuOCpCzjg6jjgqbjgrMNCivjg5Xjgqvjg57jg4Es44K544Of44KqDQor44Of44K144KtLOOCv+OCseOCtw0KK+ODouODgeOCuuOCrSzjg4jjg6jjg5LjgrMNCivjgqLjgqrjg6Tjgq4s44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODpuOCreODkuODhw0KK+OCreOCuyzjgqLjgq3jg6kNCivjgqbjgqjjg6Ljg6os44K344Ky44OrDQor44Ki44K644OeLOODn+OCqOOCsw0KK+OCquODgOOCr+ODqSzjg5Ljg63jg5/jg4ENCivjgr/jg4rjgqss44OS44K144KqDQor44OI44Kk44K/44OLLOOCq+ODhOODreOCpg0KK+ODpOODnuOCtuOCrSzjgrHjg7PjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44K/44Kr44K3DQor44Oe44OE44Of44OkLOODnuOCteODkuOCsw0KK+ODleOCt+ODnyzjg4Hjgqvjg4gNCivjgq3jg6fjgqbjg6Tjg54s44OG44Or44KqDQor44Oo44K344OALOOCseOCpOOCsw0KK+OCpuODq+OCt+ODiSzjgqLjg4TjgrMNCivjgrvjgqos44Of44Ko44KzDQor44Of44OK44Kr44OvLOODhOOCreOCsw0KK+ODleOCuOODjizjgqvjgrrjg6bjgq0NCivjg5Ljg63jgr8s44K/44Kr44K3DQor44Kq44Kq44K/LOODqOOCt+ODnw0KK+OCquOCquOCrCzjg57jgrXjg47jg6oNCivjg4rjgqzjg4/jg54s44K/44OE44KqDQor44K444Oz44OOLOODpOOCueOCrQ0KK+OCpOODgeOCq+ODryzjg4/jgrjjg6ENCivjg4/jg6Tjgrcs44K/44OA44K3DQor44OP44K/44OkLOODiOOCt+ODpuOCrQ0KK+ODm+ODquOCs+OCtyzjg47jg5bjg5LjgrMNCivjgqvjg4ss44Ki44Kt44KqDQor44Ob44Oz44OALOODouODiOODkuOCtQ0KK+ODhOODgeODpCzjg4jjg5/jgqoNCivjgr/jg57jg4Ys44Of44OE44OrDQor44Om44Kr44OvLOOCqOOCpOOCuA0KK+OCteOCq+OCpCzjg6bjgqbjgrgNCivjg5/jg6Tjgrgs44Om44Km44Kk44OBDQor44K/44Og44OpLOODkuODiOOCtw0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjg57jg6sNCivjgrXjg44s44Oe44K144Kr44K6DQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCs+ODkOODpOOCtyzjg6bjgq3jgqoNCivjgqTjg4As44Kk44OB44Ot44KmDQor44K744Kt44Oi44OILOODqOOCt+ODkuODrQ0KK+OCq+ODr+ODnuOCvyzjgqvjgrrjgqoNCivjgq/jg5ws44OS44Ot44K3DQor44K/44Kr44OOLOODpOOCueODkuODrQ0KK+ODr+OCv+ODiuODmSzjg6Tjg6jjgqQNCivjgqTjgqvjg6vjgq4s44Of44OO44OrDQor44K144OI44KmLOOCv+ODgOOCtw0KK+ODkuODgOOCqyzjg6jjgrfjg5LjgrMNCivjg6jjgrfjgqQs44Kz44Km44K+44KmDQor44K344Oe44Og44OpLOOCqOOCpOODrQ0KK+OCquODkyzjg4jjgrfjgqoNCivjg4rjgqvjgrjjg54s44OI44Kv44OO44OWDQor44Ob44K344OOLOODjuODnOODqw0KK+OCq+ODr+ODouODiCzjgrjjg6Xjg7PjgrgNCivjg4vjgrfjg4As44Ok44K544OS44OHDQor44K344Of44K6LOODnuOCteOCouOCrQ0KK+OCv+ODoOODqSzjgrjjg6Xjg7MNCivjg4jjg6jjgrfjg54s44Oo44K344Of44OEDQor44Ko44Oz44OJLOOCv+OCq+OCqg0KK+OCquOCrOODryzjg4rjg4TjgqLjgq0NCivjgq3jgr/jg4/jg6ks44OV44Of44KqDQor44Kq44Kw44OLLOOCseODs+OCuA0KK+OCquODluODgSzjgrHjgqTjgr7jgqYNCivjg5/jg6jjgrcs44Kr44K644KqDQor44Kk44Kx44OOLOOCt+ODs+OCpOODgQ0KK+OCpuOCqOODnuODhCzjgqvjg4TjgqLjgq0NCivjg5Xjgq/jgrbjg4gs44Oq44Ol44Km44Kk44OBDQor44Ki44Kq44KtLOOCv+OCq+OCtw0KK+OCteODoeOCuOODnizjgrXjg4HjgqoNCivjgq3jg4njg54s44Kx44Oz44K4DQor44Kz44OA44Kk44OpLOOCreOCr+OCqg0KK+ODkuOCsOODgSzjgr/jg4TjgqoNCivjg57jgqjjgrfjg60s44Kr44K644OS44OtDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+ODiuOCq+OCrOODryzjg6jjgqbjgrnjgrENCivjgqTjg47jgqbjgqgs44Ok44K544OS44OHDQor44OI44Oq44KmLOODnuOCteOCouOCrQ0KK+ODnuODq+ODpOODnizjg4rjgqrjgq0NCivjg57jg4Tjgqbjg6ks44Kx44Oz44K4DQor44K/44Oh44OB44KrLOOCq+OCquODqw0KK+OCteOCteOCrSzjgq3jg6fjgqbjgrMNCivjgqrjgqrjgr/jgq0s44K344Oz44K544KxDQor44Kq44Ks44OvLOODnuOCs+ODiA0KK+ODnuODhOODnyzjg57jgrnjgqgNCivjgqLjg6rjg57jg4Qs44K344Ky44KqDQor44Kz44Op44KvLOODpuOCpuOCvuOCpg0KK+ODn+ODpOOCt+OCvyzjg5/jg47jg6sNCivjgqrjgrrjg4Es44Of44OE44KqDQor44K144Kr44Kt44OQ44OpLOOCv+OCq+OCsw0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjg5Ljg63jgrss44OI44Oi44KzDQor44OE44OB44OALOODiOOCt+OCouOCrQ0KK+ODj+OCt+ODqSzjg4Hjg6gNCivjg5Xjg63jg6Ljg4gs44Of44OO44OrDQor44Kz44K144KrLOOCouOCreODkuODrQ0KK+OCv+OCseOCpOODgSzjg6jjgqbjgqTjg4ENCivjg4bjg6njg4As44Oo44K344Kr44K6DQor44Kz44Kk44OHLOODkuODh+OCrQ0KK+OCteOCpOODiOOCpizjgrfjg6fjgqbjgqTjg4ENCivjg5/jg6Tjg4rjgqws44OO44Oq44OS44KzDQor44OL44K344Og44OpLOOCt+ODs+ODpA0KK+OCv+ODiuOCqyzjg6bjgqbjgr7jgqYNCiss44Om44Of44KzDQor44Om44Kv44OS44OtLOODrOOCpOOCsw0KK+ODqOOCt+ODr+ODqSzjgrjjg6Xjg7MNCivjgqLjgqrjgq0s44Or44Of44KzDQor44K/44OG44Kk44K3LOODpuODquOCsw0KK+OCv+OCseODgCzjg4jjg5/jgrMNCivjg6Tjgrnjg4As44OV44K444KzDQor44Ki44Kq44KtLOODkuODh+ODpuOCrQ0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjgqLjg4Djg4Es44Ki44Kt44KzDQor44OO44Kw44OBLOODqOOCt+ODjuODlg0KK+ODr+OCv+ODiuODmSzjgrfjgrLjg6bjgq0NCivjgr/jgrHjg4jjg58s44Kz44Km44Kk44OBDQor44Kv44Oq44Ov44KtLOODnuOCteOCrQ0KK+OCreOCv+OCuuODoSzjg6Ljg4jjg5LjgrMNCivjgqrjgrXjg4As44OI44K344KqDQor44Ki44K344Ks44KkLOODqOOCt+OCv+OCqw0KK+OCteOCq+OCt+OCvyzjgq3jg6jjgrcNCivjg4Tjg4Hjg4As44K344Ol44Oz44Kk44OBDQor44Kq44Kr44OALOODn+ODgeOCqg0KK+OCv+ODiuOCqyzjg5Ljg4fjg4HjgqsNCivjgqrjgqrjgr/jgrTjgrcs44Kz44Km44K+44KmDQor44Kv44Ot44K144KrLOOCqOOCpOOCuA0KK+OCueOCtuOCrSzjgqLjg4TjgrcNCivjgqvjg43jg5/jg4Qs44OS44Ot44Om44KtDQor44Oe44OILOOCq+OCuuODpuOCrQ0KK+ODiOODqOODleOCryzjg57jgrXjgqoNCivjgqLjg6njgqQs44OS44Ot44Kr44K6DQor44OV44K444Kr44OvLOODjuODluOCouOCrQ0KK+ODqOOCs+OCqizjgr/jgqvjg6jjgrcNCivjgqLjg57jg44s44OP44Or44KqDQor44Kq44Kq44OOLOOCv+OCq+ODleODnw0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjgqvjg4jjgqYs44Oe44K144Om44KtDQor44K144Kk44OI44KmLOODn+ODhOOCqg0KK+OCquOCpizjgqvjg4Tjg58NCivjg5/jg6Tjgrbjgq0s44Kk44K144KqDQor44Kt44OkLOODleODn+OCv+ODng0KK+ODleOCuOOCvyzjgqvjgrrjg5LjgrMNCivjg6DjgqvjgqQs44Oo44Km44Kk44OBDQor44Oe44OE44Oi44OILOOCq+OCquODqw0KK+OCq+ODr+OCpCzjg6bjgq3jgqoNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K/44KrDQor44K/44Kx44Km44OBLOODquODp+OCpuOCuA0KK+OCs+OCuOODnizjg5Ljg4fjgqoNCivjg4/jgrvjgqzjg68s44K/44OE44KqDQor44Kz44KsLOODpOOCueOCqg0KK+ODpOODnuODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqrjgr8s44Of44OO44OrDQor44Ok44Oe44Oi44OILOOCt+ODs+OCueOCsQ0KK+OCteOCr+ODqeODouODiCzjg5Xjgrjjg4gNCivjg6Tjg4rjgq7jgrXjg68s44Kv44OL44KqDQor44OV44Kv44KkLOOCs+OCpuOCuA0KK+OCq+ODiOOCpizjgqvjgrrjg58NCivjgqTjg6/jgr8s44Ok44K544Om44KtDQor44OV44K444Oi44OILOOCv+ODgOODleOCtQ0KK+OCreODjuOCt+OCvyzjgqLjgq3jg5LjgrMNCivjg6Tjg57jg4As44K444Ot44KmDQor44Kv44Op44Oe44KoLOOCs+OCpuOCuA0KK+OCr+ODqeOCvyzjgr/jgqvjgrcNCivjg6jjgrPjgqQs44OV44Of44OI44K3DQor44Kz44OQ44Ok44K3LOODkuODh+ODpA0KK+OCq+ODiOOCpizjg6Ljg6rjg6jjgrcNCivjg57jgrnjgqQs44OS44OI44K3DQor44Km44Op44K/LOODhuODq+OCouOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg5Ljg60NCivjgqbjgrfjgrTjg6Es44Oe44K144K/44KrDQor44OP44Op44KkLOOCt+ODs+OCuA0KK+OCpuODgOOCrOODryzjg4jjgrfjg63jgqYNCivjgr/jgqvjgq4s44Kr44K644Om44KtDQor44Of44Ok44K244KtLOOCteODiOODnw0KK+ODpOODnuODoOODqSzjg57jgrXjg5Ljg60NCivjg6Tjg57jgq7jgrcs44Oq44Ol44Km44Kk44OBDQor44Kz44Oe44OELOODqOOCt+OCv+OCqw0KK+ODj+ODnuOCsOODgSzjg6bjgqsNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Ok44Oe44OALOODpOOCueODjuODqg0KK+OCq+OCrOODryzjg5/jg4HjgqoNCivjgq3jgq/jg4Es44OV44Of44KtDQor44Kv44K4LOODpOOCueOCtw0KK+OCpOODiOOCpizjg5LjgrXjgqLjgq0NCivjgqvjg6/jgrDjg4Es44Oo44K344Kr44K6DQor44Ki44Op44KtLOOCt+ODs+OCueOCsQ0KK+OCquOCq+ODmSzjg5Ljg63jg58NCivjgrPjg5zjg6os44K344Oz44Kk44OBDQor44Kq44OBLOOCquOCteODoA0KK+ODnuODq+OCqizjg4/jgrjjg6ENCivjgrXjg4jjgqYs44K344Ol44Oz44K544KxDQor44K/44OK44KrLOODkuODh+ODjuODqg0KK+ODnuODhOODpOODnizjg4jjgrfjgqoNCivjgqrjgqrjg4Tjgqss44Kv44OL44KqDQor44Ok44Oe44Oi44OILOOCseODs+OCuA0KK+ODleOCuOOCqizjg5/jg4TjgqgNCivjg47jg6Djg6ks44OS44K144K/44KrDQor44OS44Ot44K7LOODjuODquODqOOCtw0KK+OCouODs+OCtuOCpCzjgrfjgrLjg47jg6oNCivjgqrjgqrjg4Tjg5ws44Of44OB44OtDQor44K144Kk44OI44KmLOODquODpeOCpuOCuA0KK+OCpOODiOOCpizjgrXjg4jjgrcNCivjg6/jg6njgrXjg68s44Kt44Kv44KqDQor44Ki44Op44Kr44OvLOODpOOCueODiuODqg0KK+OCtOODnyzjgrjjg6Xjg7MNCivjgqjjg7Pjg4ks44K144OB44KqDQor44Oo44K344OALOODnuOCteODj+ODqw0KK+OCpuODgeODgCzjg5Ljg4fjgqoNCivjgqLjgrXjgqTjg40s44OG44OE44OkDQor44Kq44K344OeLOOCt+OCsuOCqg0KK+OCv+ODiuOCqyzjgr/jg4TjgqoNCivjgqrjgqrjgrMs44Oe44K144Ot44KmDQor44Kk44K644OELOODiuOCquODqw0KK+ODj+ODpOOCtyzjg57jgrXjg6bjgq0NCivjg5Xjgrjjgq0s44OI44Kq44OrDQor44K344Kq44Kr44KkLOOCq+OCuuODkuOCsw0KK+ODiuOCrOODleODgSzjgq3jg6jjg4TjgrANCivjg57jg4Tjg6Ljg4gs44K/44Kk44Kk44OBDQor44Kr44OI44KmLOODkuODreOCtw0KK+ODr+OCv+ODiuODmSzjgrHjgqTjgrgNCivjg4/jg57jgrDjg4Es44Oq44Ol44Km44Kk44OBDQor44Kr44ON44KzLOODpuOCv+OCqw0KK+OCteODiOOCpizjg4jjgrfjgqoNCivjgqrjgqrjgqQs44Oe44K144KtDQor44OP44Ok44K3LOOCu+OCpOOCuA0KK+OCreODn+ODhOOCqyzjg57jgrXjgqoNCivjg5Xjgq/jg4As44Oe44Oi44OrDQor44OK44Kr44Og44OpLOOCv+ODgOOCtw0KK+ODpOODkOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44K/44Kr44Om44KtDQor44OI44Kv44OALOODiOODouOCq+OCug0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg5Ljg60NCivjgqTjg4jjgqYs44Of44OE44KqDQor44OO44Kw44OBLOODqOOCpuOCpOODgeODreOCpg0KK+OCq+ODr+ODiizjg47jg6rjgqoNCivjg4rjgqvjg44s44OE44Ok44KzDQor44Ok44Oe44OALOODnuOCteOCsw0KK+ODkuODqeODnuODhCzjgr3jgqbjgr/jg63jgqYNCivjgqLjg6njgqQs44OI44K344Om44KtDQor44Oo44K344OOLOOCq+OCquODqg0KK+ODj+ODnuODgCzjgqvjgrrjgqoNCivjgqrjgqrjgr8s44OI44K344OS44KzDQor44K344OQ44K/LOODnuOCueOCouOCrQ0KK+ODr+OCq+ODpOODnizjgqLjgq3jg5Ljg60NCivjg5vjgrcs44Kt44Oo44K3DQor44Of44OvLOODnuOCteOCqg0KK+OCv+ODiuOCqyzjg6bjgqbjgrgNCivjgqvjg4rjg6Qs44OO44Oq44OS44KzDQor44K/44Kx44OK44KrLOOCuOODsw0KK+OCteODiOOCpizjg4jjgrfjg6bjgq0NCivjg5/jgrrjgrfjg54s44OI44Oo44Km44Kk44OBDQor44OG44Op44OALOOCt+OCsuODqw0KK+ODouODquODpCzjgr/jg4Djg6bjgq0NCivjgrnjgq7jg6Tjg54s44Oi44OI44OP44OrDQor44Km44OfLOODj+ODq+OCqg0KK+OCreOCsOODgSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqbjg6vjg6/jgrcs44K/44Kx44K3DQor44OS44Op44Oe44OELOODn+ODgeOCquOCrQ0KK+OCpOOCuuODjyzjg4/jg6vjgqoNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44K144OI44KmLOODnuOCueOCqg0KK+OCt+OCsuODjuODlizjgrHjg7PjgrgNCivjg6jjgrfjg6Ljg4gs44Kr44K644KqDQor44K344OQ44K/LOODhOODqOOCtw0KK+ODleODiuOCs+OCtyzjgqTjg4Hjgr7jgqYNCivjgrnjg4rjg4As44Ok44K544K444Ot44KmDQorLOODpOOCueOCqg0KK+OCreOCr+ODnizjg4rjgqrjg5LjgrMNCivjgrnjg4gs44K144OI44K3DQor44OL44K344K244OvLOODkuODh+OCqg0KK+OCs+ODkOODpOOCtyzjg5/jg4TjgrMNCivjgqvjg6/jgrTjgqgs44Oe44K144OS44KzDQor44Kk44K444OeLOODleODn+OCqg0KK+ODi+OCt+OCqizjg5Ljg63jgrcNCivjg4vjgrfjg6Tjg54s44OO44OW44Om44KtDQor44K144Kk44OI44KmLOODqOOCt+OCouOCrQ0KK+OCq+ODieODr+OCrSzjg5Ljg63jg58NCivjg5Ljg63jgrss44K/44Kr44KqDQor44K/44Kw44OBLOOCv+OCq+ODqOOCtw0KK+OCv+OCq+ODgCzjg4jjgrfjg4/jg6sNCivjg6/jgr/jg4rjg5ks44Kx44Oz44K4DQor44Kr44OI44KmLOOCt+OCsuOCouOCrQ0KK+ODiuOCq+ODj+ODqSzjgq/jg4vjgqoNCivjgqTjgrfjgq/jg5ws44Oq44Ol44Km44Kk44OBDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODr+OCq+ODnuODhCzjgrPjgqbjgrgNCivjgqvjg6/jgrfjg54s44OS44Ot44Om44KtDQor44Kr44K/44Oi44OILOOCseODs+OCuA0KK+OCv+OCq+ODpOODnizjgq3jg5/jg5LjgrMNCivjg4Tjg4Hjg4As44K/44OE44K3DQor44K/44OB44OQ44OKLOODkuODh+OCqg0KK+OCs+ODkOODpOOCtyzjgqLjgq3jg6kNCivjg4Tjg4As44OI44K344Om44KtDQor44Oi44Oq44Kr44OvLOODpuOCreOCqg0KK+OCquOCr+ODjizjg6jjgrfjgqoNCivjgqTjg57jgqQs44Oe44Oi44OrDQor44Og44Op44KqLOOCv+ODgOOCtw0KK+OCt+ODouODoOODqSzjgrjjg63jgqYNCivjgqjjg7Pjg4ks44OI44K344OO44OWDQor44Ob44K344Kv44OeLOODnuOCteODj+ODqw0KK+OCq+ODr+OCuyzjgrfjg7PjgrXjgq8NCivjg57jg4Hjg4As44Og44ON44K3DQor44Kz44OQ44Ok44K3LOOCv+ODhOOCqg0KK+ODj+ODgCzjg5Ljg63jgrcNCivjg4Tjgq/jg4As44Oe44K144OP44OrDQor44OL44K344Kr44OvLOOCt+ODp+OCpg0KK+ODm+ODs+ODgCzjg5Ljg63jg58NCivjg6/jgrfjgqrjgqss44OI44K344OS44OtDQor44Og44Ot44KkLOODqOOCpg0KK+ODpOOCueODgCzjg57jgrXjgrcNCivjg6jjgrfjg4As44OS44Ot44Om44KtDQor44Ob44OqLOOCouODhOOCsw0KK+OCs+OCpuODgCzjgrPjgqbjgqjjgqQNCivjgqvjg57jg4As44Ko44Kk44K4DQor44Km44Ko44Og44OpLOODkuODreODnw0KK+ODnuODhOODkOODqSzjgqvjgrrjg6QNCivjg5/jg4rjg4jjgrDjg4Es44K344Ky44OrDQor44Kv44Ks44OG44OzLOODpOOCueOCtw0KK+OCpOODr+OCuyzjg47jg5bjg5Ljg60NCivjg4/jg6Tjgrcs44Of44OE44OS44OtDQor44Kk44Kv44OK44OfLOOCt+ODs+OCuA0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgrPjg6Tjg54s44OS44Ot44Of44OBDQor44Kq44OI44Oe44OrLOODqOOCt+ODkuODiA0KK+ODiuOCrOOCpCzjg6Ljg4jjg4/jg6sNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44Kk44Oe44KkLOOCv+ODhOODqw0KK+ODnuOCueODgCzjgr/jgqvjg5Ljg60NCivjgqvjg6/jg5ks44Oq44On44Km44K/DQor44K144OI44KmLOOCseOCpOOCuA0KK+OCteOCsyzjg57jgrXjg4/jg6sNCivjg6DjgqvjgqQs44K444Ol44Oz44Kk44OBDQor44Kq44K344OeLOOCr+OCueOCv+OCqw0KK+ODhOODgeODpCzjgqTjgrrjg58NCivjg4/jg6TjgrfjgrDjg4Es44OI44K344Ki44KtDQor44K144OI44KmLOOCu+OCpOOCpOODgQ0KK+ODoOODqeOCteODiCzjg6bjgq3jg5LjgrMNCivjg4/jg6vjg6Tjg54s44Oe44K144KqDQor44K344Ky44Oi44OqLOOCt+ODpeODs+OCpOODgQ0KK+ODleODiuOCrSzjg5LjgrXjgqoNCivjg6/jg4As44Kk44Kv44OIDQor44OE44Oc44KrLOOCt+ODs+OCueOCsQ0KK+ODiOODgCzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg6Tjg57jg6Djg6ks44K/44OA44Ki44KtDQor44Kk44K344Kw44OtLOOCt+ODs+OCpOODgQ0KK+ODleODiuODj+OCtyzjg6bjgq0NCivjgrnjgrrjgq0s44Oo44K344KqDQor44Oo44K344OALOOCreODn+ODkuODrQ0KK+ODr+OCv+ODiuODmSzjg4Tjgq7jgqoNCivjg4rjgqvjg4vjgrcs44K/44Kr44Of44OEDQor44Ok44Oe44Oi44OILOOCuOODpeODs+OCuA0KK+OCpOOCt+OCq+ODryzjg57jgrXjg6bjgq0NCivjgr/jgrHjgqbjg4Es44Kz44Km44Kk44OBDQor44Kq44Kv44OOLOOCteODiOOCtw0KK+ODgOODhizjgrjjg6Xjg7MNCivjgr/jg5ks44Oe44K144OI44K3DQor44Ok44KuLOODquODp+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjgqvjgrrjgqoNCivjg5Xjg6vjgr8s44K/44Kr44Om44KtDQor44Kr44Ov44Kw44OBLOODquODpeOCpuOCv+ODreOCpg0KK+ODj+OCueOCsyzjg6jjgrfjg47jg6oNCivjg4rjgqzjg5/jg40s44K344Ol44Oz44K4DQor44K/44Kx44K344K/LOOCteODiOOCtw0KK+OCouOCq+OCqizjgqvjgrrjg6bjgq0NCivjg6/jgq3jg6Ljg4gs44K/44Kr44K3DQor44K/44K144KrLOOCseODs+OCuA0KK+ODiuOCq+OCt+ODnizjg6Tjgrnjg6jjgrcNCivjgr/jgrHjg4rjgqss44OS44Ot44Ki44KtDQor44Ok44Oe44K344K/LOODiuOCquODkuOCsw0KK+OCr+ODnOOCqCzjg4bjg6vjgqoNCivjgqrjgrDjgrcs44K344On44Km44Kk44OBDQor44Ki44K144KrLOOCt+OCsuODiOOCtw0KK+OCqOOCsOODgSzjg5Ljg63jg6jjgrcNCivjgqrjgqrjgrXjgq0s44Oe44Kz44OIDQor44Kq44Kv44OALOOCq+OCuuOCqg0KK+OCquOCr+ODoOODqSzjgqvjgrrjg60NCivjgqvjg4rjg57jg6ss44Oo44K344OS44KzDQor44Kt44OO44K344K/LOOCquOCteODoA0KK+OCteOCteOCrSzjgq3jg6jjg5Ljg4cNCivjgr/jgqvjg44s44K/44OE44KqDQor44OP44K344OALOOCt+OCsuODqw0KK+ODm+OCtyzjg6bjgqbjgrnjgrENCivjg5/jgrrjg44s44Kr44OE44OS44KzDQor44Of44OE44OP44K3LOOCv+ODhOODpA0KK+ODouODiOODj+OCtyzjg57jgrXjgrcNCivjg6Tjg57jg4As44OG44OE44K4DQor44OK44Ks44OOLOODnuOCteODpuOCrQ0KK+OCpOOCt+OCpCzjg6bjgq3jg5Ljg60NCivjgqvjg6Hjg4As44Kr44Kq44OrDQor44Kt44OP44K/LOOCv+OCseODkuODhw0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg6ANCivjgrfjg6njg5Xjg40s44K/44Kr44Oo44K3DQor44OK44OE44OP44OpLOODkuODreOCouOCrQ0KK+ODi+OCt+ODj+ODqSzjg6Tjgrnjg5LjgrUNCivjg4/jgrfjg5As44K/44Kv44KqDQor44OS44K344OM44OeLOODkuODreODleODnw0KK+ODkuODk+ODpCzjgrfjg7Pjgr/jg63jgqYNCivjg5/jg6Qs44OS44OH44OP44OrDQor44Og44Op44Kr44OfLOODleODn+OCqg0KK+ODoOODqeOCvyzjg4/jgrjjg6ENCivjg6/jgr/jg4rjg5ks44K344On44Km44Kk44OBDQor44Kq44Kq44OL44K3LOODkuODreOCouOCrQ0KK+OCv+OCseOCt+OCvyzjg5Ljg63jgrcNCivjg4Tjg5Djgq3jg6Ljg4gs44Ok44K544K3DQor44OP44Oe44Kq44KrLOOCv+OCseOCqg0KK+ODn+OCuuODjizjg4jjg6jjgr/jgqsNCivjgqLjg5ks44OS44Ot44OfDQor44Ki44Op44Kk44K3LOODnuOCteODnw0KK+OCteODiOOCpizjg57jgrXjgqLjgq0NCivjgrXjg6/jg44s44K744Kk44K244OW44Ot44KmDQor44K344Oi44K444On44KmLOOCv+ODgOODnw0KK+OCv+OCq+ODgCzjgqvjgrrjg5Ljg4cNCivjg4rjgqzjgr8s44Ok44K544OS44OtDQor44OL44K344OP44K/LOODnuOCteODleODnw0KK+ODj+ODpOOCtyzjgr3jgqbjgqTjg4ENCivjg5vjgr3jgqvjg68s44Ki44Kt44OpDQor44Ki44Kq44KtLOODn+OCreODiOOCtw0KK+ODqOOCt+ODgCzjg5Ljg63jg4jjgrcNCivjg6/jgr/jg4rjg5ks44K/44Kr44KqDQor44Kk44Ov44K144OvLOOCv+OCq+ODj+ODqw0KK+ODjuOCuyzjgrnjgqjjgqoNCivjg5Ljg6njgrfjgr8s44OS44Ot44Ok44K5DQor44Oo44K344K244OvLOODkuODh+OCqg0KK+ODoOODiOOCpizjgrHjgqTjgr7jgqYNCivjg5/jg6/jgqbjg6ks44OS44OH44Ki44KtDQor44Kt44Kv44OBLOODj+OCuOODoQ0KK+OCqOOCvuOCqCzjg5Ljg63jg58NCivjgqTjgrfjgqvjg68s44K/44Kx44K3DQor44Kk44OB44Kr44OvLOOCv+OCq+OCtw0KK+ODj+ODqeODgCzjg6jjgrfjgr/jgqsNCivjg6Djg6njgr8s44Oo44K344OIDQor44Kk44OI44KmLOODn+OCreOCqg0KK+ODm+OCt+ODiizjgrHjgqTjg6QNCivjg4jjgq/jg4As44OO44Oq44KqDQor44K/44Kw44OqLOOCq+OCuuODqOOCtw0KK+OCteOCteOCrSzjg4jjg6Ljg6bjgq0NCivjgr/jg57jg6ss44OP44Or44KqDQor44OL44K344OP44K3LOOCt+OCsuOCqg0KK+OCuOODhOOCq+ODryzjgqvjgrrjg5LjgrMNCivjgrnjgrrjgq0s44K144Kk44OBDQor44Kq44Kq44OL44K3LOOCreODn+OCsw0KK+ODiuOCrOOCteOCrSzjg6bjgqbjgrMNCivjgqTjgqTjg4As44OS44OH44OfDQor44K/44Kr44OOLOODnuOCteODkuODrQ0KK+ODkuOCteODjizjg4jjgrfjg4TjgrANCivjgqTjg47jgqbjgqgs44OS44OH44KtDQor44Kk44K344Kv44OpLOODnuOCteODpuOCrQ0KK+OCouOCreODpOODnizjgrPjgqbjgrgNCivjgqTjg4Hjgqvjg68s44K744Oz44OqDQor44Kt44Ks44OvLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjg6jjg4As44Of44Kt44KqDQor44Ki44Op44KtLOODpuOCpuOCuA0KK+OCueOCruODj+ODqSzjg5Ljg4fjg5LjgrUNCivjgqvjg6/jgrDjg4Es44OG44Kk44K4DQor44Of44OkLOODnuOCteODkuOCsw0KK+OCpOOCseOCqizjg5Ljg63jg6bjgq0NCivjgrXjgq/jg6njgqQs44OV44K444KqDQor44Kz44K344OOLOODqOOCpuOCueOCsQ0KK+OCreOCr+OCq+ODryzjgqvjgrrjgqoNCivjg6bjgqLjgrUs44K/44Kr44K3DQor44K544K644KtLOODpuOCpuOCuA0KK+ODnuOCueODgCzjgrfjg7Pjgr/jg63jgqYNCivjgqLjg6njgqQs44Ok44K544KqDQor44Kk44Kx44OALOODiOOCt+OCqg0KK+OCreOCuSzjgqLjgq3jg6kNCivjgqbjgrfjg6Tjg54s44Os44KkDQor44Kr44Oe44K/LOOCqOODhOOCtw0KK+OCpuOCteODnyzjgq3jg6jjgrcNCivjg4rjgqvjg44s44K/44Kx44K3DQor44Kr44Kt44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCreOCuOODnizjg5Ljg63jg6bjgq0NCivjg6DjgqvjgqQs44Oe44K144Oo44K3DQor44OK44Ks44Ok44OeLOODnuOCteOCsw0KK+ODj+ODg+ODiOODqizjg57jgrXjgqoNCivjg5/jgrfjg54s44OE44Oo44K3DQor44K044OI44KmLOOCr+ODi+ODiOOCtw0KK+OCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqrjgqzjgr8s44Kr44Oo44KzDQor44Kv44K144OQLOODj+ODq+ODpuOCrQ0KK+ODhuODqeOCqCzjg5LjgrXjg4gNCivjg5vjg7Pjg4As44OO44Oq44KqDQor44Ki44Kv44K/44Ks44OvLOODn+ODjuODqw0KK+ODn+ODpOOCs+OCtyzjg6TjgrnjgqgNCivjg5Xjgq/jgrfjg54s44Kx44Kk44K544KxDQor44K344OO44K644KrLOODiOODouOCsw0KK+OCquOCquOCv+OCrSzjgrfjg6fjgqbjgrgNCivjg4rjgqzjg57jg4Qs44K744Kk44Kk44OB44Ot44KmDQor44Ki44Op44KkLOODnuOCteODqw0KK+ODnuODhOODgCzjgrXjg4Hjg6gNCivjg5Xjgrjjgr8s44Ki44OE44OfDQor44Kr44Of44Kw44OBLOODkuODreOCouOCrQ0KK+OCq+ODiOOCpizjg5Ljg4jjgrcNCivjg6Tjg57jgrbjgq0s44K/44Kx44OO44OqDQor44Km44Oh44K/44OLLOOCouODhOOCsw0KK+ODiuODq+OCuyzjgrjjg6Xjg7PjgrMNCivjgq/jg5ws44Kv44OL44KqDQor44Kv44Op44K/LOODkuODreODpuOCrQ0KK+OCs+ODs+ODiSzjg4bjg6vjgqoNCivjgr/jgrHjgqbjg4Es44Of44Kt44OkDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+OCv+OCq+ODgCzjg6jjgrfjgqvjgroNCivjgqLjgq/jg4Qs44Kr44OE44Om44KtDQor44OI44Oq44KkLOODkuODreODnw0KK+ODouODquOCquOCqyzjg6bjg5/jgrMNCivjgqvjgq/jgr/jg4ss44Oe44OK44OWDQor44K/44Kx44Kk44OBLOODgeOCqOOCsw0KK+OCv+OCpCzjgrHjgqTjgrMNCivjg4Tjg4Hjg6Qs44Oe44K144OV44OfDQor44Oe44K544OALOODnuOCteOCv+OCqw0KK+OCq+ODs+ODgCzjg5LjgrXjgqoNCivjg6Tjg57jgqbjg6ks44Ok44K544Oo44K3DQor44Kt44OO44K344K/LOOCt+OCsuODn+ODhA0KK+ODm+OCteOCqyzjgq/jg4vjgqoNCivjg57jg6vjgqrjgqss44OS44OH44Om44KtDQor44Kr44Oe44K/LOODkuODreOCtw0KK+ODj+OCv+ODiuOCqyzjg57jgrXjg58NCivjgq/jg63jg48s44Oo44Km44KzDQor44OI44OE44KrLOODqOOCpuOCsw0KK+OCpOOCt+OCpCzjg5Xjg6gNCivjg6Ljg6rjgr8s44Oe44OBDQor44Ob44Oz44OeLOOCt+OCsuODqw0KK+OCouODqeOCq+OCrSzjg6jjgrfjg4jjg6INCivjgr/jgrEs44K/44Kx44OS44KzDQor44Kk44K644OP44OpLOODiuOCquOCq+OCug0KK+ODkuOCteODiOODnyzjgr/jg63jgqYNCivjgrnjgrrjgq0s44Oo44K344OS44OtDQor44OL44K344OK44KrLOODkuOCteODjuODqg0KK+ODn+OCuuODjizjgrPjgqbjgr7jgqYNCivjg6Ljg6rjg6Djg6ks44Ki44Kt44OpDQor44K/44Kr44OP44K3LOODiOOCt+OCq+OCug0KK+OCt+OCsuODiOODoSzjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44Om44Km44K4DQor44Oe44Ko44Kr44OvLOODnuOCteODnw0KK+ODqOOCt+OCpCzjg4jjgrfjg47jg6oNCivjg5vjgr3jg6Qs44OS44OH44OS44KzDQor44K144Kr44Oi44OILOOCq+OCuuOCqg0KK+OCs+OCpOOCuuODnyzjgrfjgrLjg58NCivjg4vjgrcs44Ok44K544OV44OfDQor44Kr44ON44KzLOOCouOCreODqQ0KK+OCueODn+OCr+ODqSzjgrfjg6fjgqbjg5jjgqQNCivjg6jjgrPjgqos44K/44Kr44KqDQor44K144K144KtLOOCq+OCuuOCqg0KK+ODj+ODpOOCtyzjgqLjgq3jg6kNCivjgr/jg4rjgqss44Kt44Oo44K3DQor44Ki44Kt44Ok44OeLOODiOODn+OCqg0KK+OCteOCpOOCuSzjg6jjgrfjgqvjgroNCivjg47jgqzjg58s44K744Kk44K4DQor44OI44Oo44K344OeLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+OCt+ODsyzjgr/jgqvjgrcNCivjg5Xjgq3jg44s44Oi44Oq44Oo44K3DQor44Kk44Kx44OALOOCq+OCuuOCreODgQ0KK+OCquODgOODr+ODqSzjg6rjg4QNCivjgr/jgqvjg4/jgrcs44OI44K344Kr44OEDQor44Kx44Kk44OeLOOCuOODpeODsw0KK+OCt+ODn+OCuizjgrPjgqbjgrgNCivjgqTjg57jgqTjgrrjg58s44OI44Oi44K4DQor44Oi44Oq44K/LOODpuODn+OCsw0KK+ODouODqizjg6Tjgrnjg58NCivjg57jgqjjgqvjg68s44Ok44K544Kr44K6DQor44Ok44OK44Ku44OALOOCueOCueODoA0KK+ODoOODqeODouODiCzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Ob44K944KoLOODnuOCteODkuOCsw0KK+OCpOOCt+OCr+ODqSzjgrvjgqTjgrgNCivjg5Ljg63jgqvjg68s44Om44Km44K4DQor44Kr44Op44K344OeLOOCv+OCq+OCtw0KK+ODnuODgeODgCzjgrfjg7PjgqTjg4ENCivjg6Ljg6rjg6Tjg54s44OS44K144OO44OqDQor44K/44Kx44Og44OpLOODhuODhOOCvuOCpg0KK+ODhOOCq+ODouODiCzjgqLjgq3jg5Xjg58NCivjg6Tjg57jgrDjg4Es44OS44Ot44OS44OIDQor44K944Oh44OkLOOCouOCreOCqg0KK+ODiuOCq+OCtOODoSzjg5Ljg4fjgqoNCivjgqTjg6/jg4rjgqws44Kx44Kk44K544KxDQor44K744Kt44OkLOOCseODs+OCuA0KK+ODhuODqeOCpCzjgqvjgrrjg5Ljg60NCivjgr/jg4rjgqss44OS44OH44KqDQor44K744Kt44OkLOOCuOODpeODs+ODreOCpg0KK+OCteOCr+ODqeOCpCzjgqjjg5/jgrMNCivjgqTjgr3jg5ks44Oe44OE44K/44Ot44KmDQor44Oe44OE44Kq44KrLOOCv+OCq+ODkuOCsw0KK+OCpOODgSzjg57jgrXjg47jg6oNCivjg6Tjg57jg6Ljg4gs44K344Ot44KmDQor44OH44Kw44OBLOOCv+OCq+ODiOOCtw0KK+ODkuODqeODnuODhCzjg6jjgrfjgqoNCivjg5/jgrrjg44s44Kk44K144OgDQor44OI44Of44OK44KsLOODnuOCteODkuODrQ0KK+OCv+OCq+OCt+ODnizjg5Ljg4jjgrcNCivjg47jgqzjg58s44OS44Ot44K3DQor44Kq44Kq44OELOODkuODreODleODnw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgqTjg4ENCivjg4bjg6njg4As44OI44K344Kr44K6DQor44K144Kk44OI44KmLOOCv+ODhOODpA0KK+OCouOCteODjizjgr/jgqvjg6QNCivjgrfjg6Ljg6Djg6ks44OO44Oq44OI44K3DQor44Kq44Kq44Kk44K3LOODjuODquODqOOCtw0KK+OCv+ODiuOCqyzjg4Tjg43jgqoNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K3DQor44OS44Op44Oe44OELOOCt+OCsuODqw0KK+OCv+OCseOCpuODgSzjg5/jg47jg6sNCivjgrfjgrLjg4/jg6ks44OG44Or44Oe44K1DQor44Kq44Kr44Oi44OILOODj+OCuOODoQ0KK+ODoOODqeODpOODnizjg6Ljg4jjgrMNCivjgrPjg57jg4Tjg5Djg6ks44K344K644KqDQor44Ko44OQ44K/LOOCseODs+OCuA0KK+OCquOCquOCvyzjgrTjg63jgqYNCivjg4bjg6njgqos44OS44Ot44Om44KtDQor44Kq44Kq44K144OvLOODnuOCteODqw0KK+OCq+ODr+OCt+ODnizjgr/jg4Tjg58NCivjgqLjg6njgqQs44Oe44K144K3DQor44OP44K344K644OhLOOCouOCreODqQ0KK+ODn+OCuuOCt+ODnizjgrPjgqbjgrgNCivjg5Ljg6njg57jg4Qs44Ko44OE44KqDQor44Kq44Kv44Og44OpLOODqOOCt+OCsw0KK+ODn+OCuuODiuOCqyzjgrPjgqbjgrcNCivjg5vjg6rjgqbjg4Es44K344Ol44Km44Kk44OBDQor44K/44Kt44Oi44OILOODiOOCt+OCqg0KK+ODpOOCueODkCzjgrPjgqbjgrgNCivjgq3jgr/jg44s44Oi44OI44OO44OWDQor44OL44K344OALOODpuOCreOCqg0KK+OCpOOCt+OCq+ODryzjg4jjgrfjg58NCivjgqrjgqrjg5As44OS44K144KqDQor44Kr44K344Ov44KuLOOCq+OCuuODpuOCrQ0KK+OCteODiOOCpizjgqrjgrXjg6ANCivjg57jg4Tjg4As44Ki44Kt44KqDQor44Kz44Og44OtLOODiuOCquOCrQ0KK+ODoOODqeOCvyzjg5Ljg4fjg6bjgq0NCivjgrXjgrXjgqzjg68s44Kr44K644KqDQor44K144K/44KxLOODj+ODq+ODiOOCtw0KK+OCr+ODr+ODjizjg5LjgrXjgqoNCivjgrTjg4jjgqYs44Kr44OE44OfDQor44OV44K444KkLOOCt+ODs+OCpOODgQ0KK+ODn+OCuuOCs+OCtyzjgrHjg7PjgqTjg4ENCivjg5Xjgrjjg57jgq0s44Kr44K644OkDQor44Kk44OH44K/LOODkuODiOOCtw0KK+ODiuOCq+ODhOOCqyzjgr/jgqvjgrcNCivjgqbjg7Pjg44s44K/44Kx44OfDQor44K544K644KtLOOCq+OCuuODkuODrQ0KK+ODj+ODnizjg5Ljg63jgrcNCivjg4jjg5/jgr8s44K/44Kr44KqDQor44K/44OL44OELOODpuOCpuOCtA0KK+OCueOCuuOCrSzjg57jgrXjg5/jg4ENCivjgqrjgq/jg6Djg6ks44OB44Oo44K4DQor44OV44Kv44K344OeLOOCq+OCuuODkuOCsw0KK+OCquOCquODj+OCtyzjg5Ljgqvjg6sNCivjg6Tjg57jgrfjgr8s44K/44Kr44KqDQor44Kr44Ov44OfLOOCu+OCpOOCpOODgQ0KK+ODj+ODq+OCvyzjgrHjg7PjgqTjg4Hjg60NCivjg5/jg6Tjg6Ljg4gs44OS44Ot44K3DQor44OE44K444K/LOODpuOCpuOCsw0KK+OCpOODnuODoOODqSzjg57jgrXjgqoNCivjgrXjg4jjgqYs44K144OW44Ot44KmDQor44OK44Kr44K444OeLOODpuOCreOCsw0KK+OCt+OCpOODjizjgrfjgrLjgqoNCivjgrTjg4jjgqYs44Of44OO44OrDQor44Kr44OI44KmLOODouODiOODj+ODqw0KK+ODiuOCrOOCpCzjg4HjgqjjgrMNCivjgqbjg4Hjg44s44Ki44OE44K3DQor44Ko44Kk44K444OeLOOCquOCteODoA0KK+ODpOODnuODiuOCqyzjgrPjgqbjgrgNCivjg4rjgqvjg6Djg6ks44OO44OW44KqDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCu+ODoOODqSzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqvjgqzjg68s44Kr44OE44OS44OtDQor44K/44OkLOOCv+OCq+OCtw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jg47jg6oNCivjgqTjgrfjgqvjg68s44Kz44Km44Kk44OBDQor44K744Kt44Kw44OBLOOCt+ODp+OCpuOCpOODgeODreOCpg0KK+OCquOCquODjizjg6jjgrfjg6bjgq0NCivjgqrjgqTjgqvjg68s44OI44K344OkDQor44Kk44Ov44KkLOOCr+ODi+ODpOOCuQ0KK+OCouOCteODkizjgrHjg7PjgrgNCivjgrTjg4jjgqYs44Kr44Kq44OrDQor44Kr44ON44K/44KxLOOCq+ODiuODoQ0KK+OCpuOCqOODnuODhCzjg4jjgrfjg47jg6oNCivjg5Xjgq/jgrfjg54s44OS44Ot44K4DQor44OV44Kv44OALOOCv+OCq+ODpuOCrQ0KK+OCueOCuuOCrSzjgq3jg6fjgqbjgrMNCivjgqrjgrDjg6ks44Om44Kt44OS44KzDQor44OS44Op44OHLOODjuODluOCq+OCug0KK+OCquOCt+OCsizjgr/jgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Ko44Oq44KzDQor44K144K144KtLOOCqOODhOOCqg0KK+OCtOODs+ODgCzjg57jgrXjg6sNCivjg57jg4Tjgqrjgqss44K744Kk44K4DQor44Km44Oh44K244OvLOODnuOCteODhOOCsA0KK+ODi+OCt+OCqizjgqvjgrrjg4rjg6oNCivjgrPjgrjjg54s44Om44Km44K+44KmDQor44K/44OL44Kw44OBLOODqOOCt+ODhOOCsA0KK+OCquOCquOCruOCuSzjg5Ljg63jgrcNCivjgrXjg4Djg5LjgrUs44Kz44Km44Kk44OBDQor44OV44K444Ov44OpLOODouODquOCqg0KK+ODj+ODg+ODiOODqizjg4rjgqrjg6bjgq0NCivjgqvjg57jgr8s44OI44K344KqDQor44OI44OQLOODnuOCs+ODiA0KK+ODpOODnuODgCzjgr/jg4Djg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Of44Kt44KqDQor44K/44Kx44Km44OBLOOCv+OCseOCtw0KK+OCouODqeOCrSzjg5Ljg4fjg5Xjg58NCivjg4vjgrfjgqos44K744OE44KzDQor44Oi44Oq44Km44OBLOOCteODiuOCqA0KK+OCpOODr+OCvyzjg5Ljg4fjgqLjgq0NCivjgrXjgrXjgq0s44Oe44K144Ot44KmDQor44Oe44Ko44Ks44OvLOODpOOCueODhOOCsA0KK+ODleOCr+ODi+OCtyzjgqvjgrrjg47jg5YNCivjgqbjgqjjg4As44OI44Oi44OoDQor44Ok44Oe44Ku44K3LOODnuOCs+ODiA0KK+OCquODjizjgrHjg7PjgrgNCivjg5Xjgrjjgr8s44OV44Kv44Kt44OBDQor44Kt44K/44Og44OpLOODqOOCt+ODn+ODhA0KK+ODqOOCt+ODj+ODqSzjg6bjg6rjgrMNCivjgqTjg6/jgrXjg68s44K/44Kv44OfDQor44Kz44Oe44OELOOCv+ODhOODqOOCtw0KK+OCv+ODi+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgrPjgrXjgqss44OS44K144K/44KxDQor44K/44K344OeLOODnuOCteODpuOCrQ0KK+ODi+OCt+OCquOCqyzjgqvjg4Tjg6bjgq0NCivjgrnjgrrjgq0s44OI44K344KqDQor44K044OI44KmLOODpOOCueODkuODqQ0KK+OCq+ODr+ODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jgrjjg54s44K344On44Km44K4DQor44Kr44Oz44OOLOOCouOCreOCqg0KK+OCq+OCv+OCt+ODnizjgrfjg7Pjg6QNCivjg4/jgrfjg6Ljg4gs44Of44K544K6DQor44OK44Kr44OALOODkuODreOCtw0KK+OCq+OCteODj+ODqSzjgrvjgqTjgqTjg4ENCivjg4bjg6njg6Ljg4gs44K/44Kr44Ki44KtDQor44Ov44Kr44Oe44OELOODnuODiuODnw0KK+OCpOODiOOCpizjg4jjgrfjg4TjgrANCivjg6/jg4As44OS44OH44OfDQor44K/44Oz44K4LOODkuODreOCouOCrQ0KK+OCquOCquODhOOCqyzjg6HjgrDjg58NCivjg4Tjgrjjg6Ljg4gs44Kx44Kk44Kk44OBDQor44K744Oq44K244OvLOODjuODluODj+ODqw0KK+ODiOODjuOCteOCrSzjg5Xjg5/jgqgNCivjgr/jgqvjgq4s44Of44OB44KzDQor44Kq44OV44OBLOOCq+ODhOODiuODqg0KK+OCouODnuODjizjg5/jg4HjgqoNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44K/44OQ44K/LOODpuOCpuOCuA0KK+ODiOODqOOCuuODnyzjg57jgrXjgqLjgq0NCivjgrfjg6Xjgq/jg6Qs44Oo44K344Ot44KmDQor44K/44Kr44OOLOOCt+ODs+OCpOODgQ0KK+ODoOODqeOCq+ODnyzjg5Ljg4jjgrcNCivjgqTjgrfjgrrjgqss44OO44OW44Oo44K3DQor44Kk44Kk44K644KrLOODiOOCt+ODkuOCsw0KK+OCt+ODqeOCpCzjgqLjgq3jg6kNCivjg5Xjgq/jg4/jg6ks44K544Ko44OP44OrDQor44Kk44OK44Ks44KtLOODhuODhOOCqg0KK+ODkuODqeOCt+ODnizjg5Ljg4jjgrcNCivjg4Tjgrjjg5Djg6Tjgrcs44Ki44OE44K3DQor44Oe44OE44KqLOODnuOCteODnw0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Ljg6rjg44s44K/44Kr44KqDQor44K/44K444OeLOODiOOCt+OCqg0KK+ODjuOCtuOCrSzjgrjjg6Xjg7MNCivjgqLjg4Djg4Es44OO44OW44K/44KrDQor44K/44Kr44OkLOOCv+OCq+OCtw0KK+OCquODjizjg57jgrXjgqoNCivjg57jg4Tjg6Ljg4gs44Kr44OE44Ki44KtDQor44OP44K344Oi44OILOOCq+OCuuODkuODhw0KK+OCq+ODjizjg6TjgrnjgrcNCivjgr/jgrHjg4As44OV44Of44KzDQor44Kt44Oq44OP44OpLOOCseOCpOOCsw0KK+OCv+ODiuOCqyzjg6Tjgrnjg5LjgrMNCivjg4jjg6rjgqQs44Ki44Kt44OO44OWDQor44OK44Kr44K344OeLOODnuOCteOCqg0KK+OCu+OCueODnyzjgrjjg6Xjg7MNCivjg57jgqjjg47jgr3jg44s44Kr44K644OK44OqDQor44K044OI44KmLOOCt+ODs+OCuA0KK+ODm+ODqizjg6bjgq3jg6jjgrcNCivjgr/jgqvjgqTjg6ks44Kt44On44Km44Kk44OBDQor44K/44OL44OALOOCouOCreODkuODrQ0KK+ODleODq+ODieOCpCzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjgqrjgqrjgq7jg6Qs44Oe44K144OK44KqDQor44OK44Kr44K444OeLOODjuODluODqOOCtw0KK+ODm+ODquOCq+ODryzjgqvjgrrjg5Ljg60NCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44Ki44Kq44KtLOODjuODluODpuOCrQ0KK+OCquOCr+ODj+OCvyzjg57jgrXjg5Ljg60NCivjgq/jg6/jg5Djg6ks44Om44Km44K544KxDQor44Kr44Oz44OALOODkuODreODn+ODhA0KK+OCueOCruODouODiCzjg6rjg6fjgqYNCivjg6Tjg57jg6Ljg4gs44OS44OH44Ki44KtDQor44Kr44ON44KzLOODnuOCteODqw0KK+ODiuODquOCvyzjg6Ljg4jjg6bjgq0NCivjg4vjgrfjgqos44K/44Kx44OS44OtDQor44Kk44Kr44OqLOODj+ODq+OCqg0KK+ODleODq+OCq+ODryzjgrHjg7PjgqTjg4ENCivjgqLjg6njgqQs44K744Kk44K4DQor44Kv44K644Kr44OfLOODkuODreOCtw0KK+OCtOODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jg4/jg6ks44Oe44K544OfDQor44Ok44Oe44OALOOCt+OCsuODqw0KK+OCpOOCuCzjg4jjgrfjg63jgqYNCivjgq/jg6njg6Ljg4Es44Of44Kt44KqDQor44OV44K444Ov44OpLOODkuODh+OCueOCrg0KK+OCv+OCseODgCzjgrXjg4jjgrcNCivjgr/jgqvjg47jgrss44Ko44OE44KqDQor44OI44Oi44Og44OpLOOCt+OCsuODleODnw0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrXjgqvjgq3jg5Djg6ks44Oe44K144Om44KtDQor44Of44Ok44K244KtLOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44Oo44K344OS44KzDQor44K044OI44KmLOODn+ODgeOCqg0KK+ODi+OCt+ODgCzjgrHjgqTjgqTjg4ENCivjg4rjgqvjgrfjg54s44Of44OE44OS44OtDQor44Kt44Og44OpLOOCt+OCsuODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg57jgrXjg4jjgrcNCivjgqrjgrfjg54s44K/44Kx44K3DQor44Kq44Kq44OkLOODnuODouODqw0KK+ODn+ODpOODouODiCzjg57jgrXjg47jg6oNCivjg6Tjg57jgrfjgr8s44Kq44K144OgDQor44K/44OK44KrLOODnuOCueODnw0KK+ODouODqizjgqLjg4TjgrcNCivjg4rjg6vjg58s44Kq44K144OgDQor44K044OI44KmLOODgOOCpOOCuOODreOCpg0KK+ODpOODnuODgeOCqyzjgqLjgq3jg6kNCivjgrXjgrXjgq0s44Oe44K144OS44OIDQor44Kt44K344OALOODn+ODgeOCqg0KK+OCquOCquODpOODnizjg6jjgqbjgrnjgrENCivjgrfjgqTjg44s44Kr44OE44OkDQor44Kk44K644Of44K144OvLOODqOOCt+ODiOODog0KK+OCq+ODn+ODoOODqSzjg4DjgqTjg4ENCivjgrXjgqvjgqQs44Kx44Oz44Kk44OBDQor44K044OI44KmLOOCq+OCuuOCqg0KK+OCq+ODiOOCpizjgq3jgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcs44Kz44Km44K4DQor44Kv44OOLOOCv+ODhOODkuOCsw0KK+OCpOODr+ODluODgSzjg57jgrXjg4TjgrANCivjg5vjg7Pjg5Ys44Oe44K144OV44OfDQor44Oi44Oq44K/LOOCuOODpeODsw0KK+OCu+OCreODpCzjgrMNCivjg4zjg57jgr8s44Kr44K644OkDQor44K044OI44KmLOODoeOCpOOCteOCpA0KK+ODnuODiuODmSzjg57jgrXjg6sNCivjgqTjg57jgq3jgr8s44K344On44Km44K4DQor44Kz44OA44KrLOOCseODs+OCuA0KK+ODqOOCt+ODgCzjgr/jgrHjg5LjgrUNCivjgrXjg4jjgqYs44K/44Kx44K3DQor44Kv44K544OfLOOCq+OCuuODpuOCrQ0KK+ODj+OCruODr+ODqSzjg4jjgrfjgqvjgroNCivjg5Xjg6vjgrss44OG44Or44OS44KzDQor44Og44Op44K/LOOCt+ODp+OCpuOCsw0KK+OCquOCr+ODoOODqSzjg57jgrXjg5LjgrMNCivjgr/jg4vjgqzjg58s44K/44Kk44OBDQor44OK44Kr44Og44OpLOOCt+ODs+OCuA0KK+OCs+OCpOOCuuODnyzjg57jgrXjg5LjgrMNCivjgrnjg4njgqYs44OS44Ot44K3DQor44Kk44OHLOODhuODhOODpA0KK+OCt+ODouODjizjgqvjgrrjg5Ljg60NCivjgr/jgqvjgq4s44Oo44K344Ki44KtDQor44K144Kr44KkLOOCouODhOOCtw0KK+OCpOODjuOCpuOCqCzjgqvjgrrjgqoNCivjg5Xjg6vjgr8s44Of44OB44OO44OWDQor44Ki44K144KkLOOCreODqOOCtw0KK+ODleOCq+OCteODryzjgq/jg4vjg5LjgrMNCivjgrTjgqvjgqTjg4Es44Kz44Km44K4DQor44Kq44Kq44OE44KrLOODpOOCueODjuODqg0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgqTjg47jgqbjgqgs44K344Ky44OrDQor44K/44Kx44OALOODnuOCteODpuOCrQ0KK+ODnuOCueODgCzjg6jjgrfjg5LjgrMNCivjg6Tjg57jg6Ljg4gs44OO44Oc44OrDQor44Kq44Kq44OP44OpLOODnuODiuODlg0KK+ODleODiuODhCzjgqvjgrrjg5LjgrMNCivjgrPjg6Tjg54s44K444Ol44Oz44K+44KmDQor44Ok44Oe44K244KtLOODiOOCt+ODkuODrQ0KK+OCv+OCuOODqizjg5/jg43jg4/jg6sNCivjgrXjg4jjgqYs44OE44Oo44K3DQor44OK44Ks44K344OeLOOCuOODreOCpg0KK+ODhOODgCzjgr/jgqvjgrcNCivjg4rjgqzjgqos44OI44Oi44OfDQor44Kq44Kq44K544KuLOODkuODreODpuOCrQ0KK+OCpOODiOOCpizjg4jjg6Ljg4rjg6oNCivjgr/jg57jgqQs44Om44K/44KrDQor44Of44Ok44K344K/LOODqOOCpuOCpOODgeODreOCpg0KK+ODn+OCt+ODnizjg6jjgrfjg5Ljg60NCivjg5vjg6rjgqQs44OK44Kq44Ki44KtDQor44K044OI44KmLOODnuOCs+ODiA0KK+ODpOOCqizjgrjjg6Xjg7PjgqTjg4ENCivjg5Ljgrjjg6Qs44K/44OE44OkDQor44Ob44Oq44KkLOODkuODh+OCuA0KK+OCv+OCseODgCzjgr/jgqvjg6jjgrcNCivjg6Tjgrnjg4rjgqws44Kr44OE44OfDQor44Ok44Oe44K244KtLOODkuODh+ODkuODiA0KK+ODpOODjizjgqLjgq3jg6kNCivjgrfjg6/jgq8s44Of44OO44OrDQor44Kr44Of44OOLOOCouOCreODqQ0KK+ODiuOCq+OCuOODnizjgr/jgqTjgrjjg63jgqYNCivjg57jgrnjg4As44Kv44OL44OS44KzDQor44Kq44OV44OBLOOCuOODreOCpg0KK+ODleOCr+OCtuOCrSzjg6zjgqTjgrMNCivjgqTjgr/jgqzjgq0s44K344Ky44KtDQor44K344OiLOODgeOCqA0KK+ODleOCr+OCpCzjg47jg5bjgqLjgq0NCivjgqTjg5Ms44K444Oz44Kk44OBDQor44Kz44Og44Kr44KkLOOCreODqOODnw0KK+ODleOCuOOCqCzjg47jg5bjg6bjgq0NCivjg57jg4Tjgq0s44Kr44K644OS44KzDQor44Kz44OQ44Ok44K3LOOCq+OCuuODqOOCtw0KK+OCtOOCpuODgSzjgqvjgrrjg4jjgrcNCivjg4/jgrvjgqzjg68s44Kx44OzDQor44Kr44Ov44K044KoLOODiOODouODleODnw0KK+ODiuOCrOOCteODryzjgr/jgqTjgrvjgqQNCivjg6Tjg57jgrfjgr8s44K144Kr44KoDQor44Kk44K344K244KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCquODgCzjg5/jg4Hjg5Ljg60NCivjgrfjg7Pjg4njgqYs44K/44Kr44Ki44KtDQor44K344Oi44K144KzLOODj+ODq+ODkuOCtQ0KK+ODhOODhOODnyzjgq3jg6jjgrcNCivjgq3jgr/jgqrjgqss44Kr44K644OS44KzDQor44Kt44K/44K244OvLOOCs+OCpuOCuA0KK+ODiuOCq+OCquOCqyzjgqjjgqTjgrgNCivjgqTjgrfjg5Djgrcs44Of44Om44KtDQor44OP44K344Kw44OBLOODn+ODr+OCsw0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg5Ljg60NCivjgqrjgqrjg5As44Kr44OK44OhDQor44OP44OpLOOCq+OCuuODpA0KK+OCt+ODn+OCuizjgrPjg5/jg4oNCivjgqTjgrbjg68s44Oo44K344OS44KzDQor44Oo44K344Ok44OeLOOCouOCreODqQ0KK+OCueOCruODouODiCzjg5Ljg63jg6bjgq0NCivjgrPjg57jg4Qs44Kz44Km44Kk44OBDQor44OY44Oz44OfLOOCs+OCpuOCvuOCpg0KK+ODleOCq+ODgCzjg47jg6rjg5Xjg58NCivjgrPjg5Djg6Tjgrcs44Oo44K344OS44K1DQor44K544Ku44Oi44OILOOCseODs+OCuA0KK+ODqOOCs+ODpOODnizjg4Tjg4jjg6ANCivjgr/jg4rjgqss44OO44Oq44OS44KzDQor44Of44Ok44K/44OLLOOCteODiOODqw0KK+ODj+OCu+OCrOODryzjgqLjg4TjgrcNCivjgq3jgr/jgqzjg68s44K/44Kr44Ki44KtDQor44OV44Kv44Kq44KrLOODkuODreODpuOCrQ0KK+OCquODoOODqSzjgrXjg4jjg6sNCivjgqTjgrDjg4Es44Oe44Kz44OIDQor44OP44Ok44K3LOODnuODquOCsw0KK+ODkuODqeOCpCzjgqvjgqjjgrMNCivjgqrjgqrjg6Ljg6os44Os44Kk44KzDQor44Kq44Ku44OOLOOCpOODgeODreOCpg0KK+OCv+ODoOODqSzjg5/jg4TjgqoNCivjgr/jgrHjg4As44OS44OH44Ki44KtDQor44Of44Ok44OK44KsLOOCs+OCpuOCpOODgeODreOCpg0KK+ODkuODqeOCpCzjg47jg6rjg57jgrUNCivjg4vjgrfjg6Djg6ks44OS44Ot44Om44KtDQor44OP44OW44OBLOODkuODh+OCq+OCug0KK+OCquOCquOCr+ODqSzjg6jjgrfjgqLjgq0NCivjg4/jg4Pjgr8s44Ko44Kk44K4DQor44Kk44Kz44OeLOODkuODreODpuOCrQ0KK+OCouOCteODkuODiizjgr/jgqvjgrcNCivjgqvjg47jgqYs44K344Oz44K0DQor44OK44Kr44OL44K3LOOCt+ODpeOCpuOCuA0KK+ODn+ODpOOCtuOCrSzjg5Ljg63jg6ANCivjgqTjg4Hjgqvjg4ks44OI44Oo44Ki44KtDQor44OK44Ks44K144OvLOOCouOCreODjuODlg0KK+ODj+ODnuOCsOODgSzjg4/jg6vjgqoNCivjg6Tjgrfjg60s44OS44Ot44OO44OqDQor44Og44Op44KqLOODnuOCrQ0KK+OCquOCquOCruODnuODgSzjgqLjgq3jg6kNCivjgrfjg63jgr8s44Oe44K144Om44KtDQor44OG44K344OeLOODn+ODhOOCqg0KK+OCq+ODr+OCteOCrSzjg6Tjgrnjg6bjgq0NCivjg6Tjg57jg4As44Kq44K144OgDQor44Ob44Oz44OALOODnuOCteODkuODhw0KK+OCq+ODjeOCsyzjgrfjgrLjg6sNCivjg57jg4Tjgrfjg54s44OS44Ot44K644OfDQor44Kz44Of44OkLOOCs+OCpuOCuA0KK+ODr+ODgCzjg4Tjg6jjgrcNCivjg6jjgrfjg4As44K/44Kr44K3DQor44Oi44Oq44K144KtLOODpuOCpuOCuA0KK+OCpOODnuODkuOCrOOCtyzjg5Ljg4fjgqoNCivjgq/jg6njg6Ljg4Es44Ov44K/44OrDQor44Om44Kr44OvLOOCteODiOOCtw0KK+ODhuODqeOCqizjgrjjg63jgqYNCivjgrPjg7Pjg4ks44Oe44KtDQor44K144Kk44OI44KmLOODnuOCteODpuOCrQ0KK+ODqOOCt+ODiuOCrCzjg5Ljg63jgrcNCivjg6bjgqLjgrUs44OP44Or44Om44KtDQor44K744Oz44KsLOODqOOCt+OCqg0KK+ODi+OCt+OCsOODgSzjg4jjgrfjgqLjgq0NCivjgqbjgqjjg4As44OK44Kq44KtDQor44Ok44Oe44Kq44KrLOODiOOCt+OCqg0KK+ODpOODnuODouODiCzjgqvjgrrjgqoNCivjg5Xjgrjjgqvjg68s44OI44K344K/44KxDQor44Kq44Kw44OpLOOCv+OCq+OCtw0KK+OCq+ODr+ODjizjg5Ljg4fjgqoNCivjgqvjg43jgrrjgqss44OS44Ot44Ki44KtDQor44Kq44Kr44Oi44OILOODpuOCpuOCueOCsQ0KK+OCq+ODr+ODhOOCrSzjgqvjgrrjgqoNCivjgrnjgqjjg6jjgrcs44K/44OE44OkDQor44Kr44Ov44OZLOOCt+OCsuODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg6bjgq0NCivjg6Ljg6os44K344Oz44K544KxDQor44K544Ku44Ok44OeLOODhuODhOOCuA0KK+ODnuOCqOODpOODnizjgq3jg6jjgrcNCivjgrPjg6Hjgr/jg4ss44Om44Km44K4DQor44OV44K444Ov44OpLOOCreODqOOCtw0KK+OCouODh+OCrOODryzjg5Ljg63jg6bjgq0NCivjg4jjg5/jgrbjg68s44Kq44K144OgDQor44OK44Kr44K/LOODnuOCteOCouOCrQ0KK+OCv+ODgeODkOODiuOCrSzjg4/jg6vjgqLjgq0NCivjgrPjg4Djg54s44K344On44Km44K0DQor44OP44OK44KkLOODgeODmw0KK+ODgeODjuODjSzjgqvjgrrjgqoNCivjgrfjg5/jgros44Kz44Km44Kk44OBDQor44K/44Kt44K244OvLOODnuOCteODiA0KK+OCr+ODieOCpizjgrHjg7PjgrgNCivjg6Ljg6rjgqrjgqss44Oe44K144Kr44K6DQor44Kr44ON44OS44OpLOOCouOCreOCqg0KK+OCteODiOOCpizjg5Ljg63jg47jg5YNCivjg6Tjg5Djg4os44OI44K344KqDQor44K144Kr44K644OhLOODkuODreODpuOCrQ0KK+ODj+OCt+ODouODiCzjgq3jg6gNCivjg6jjg47jg6Ljg4gs44OS44OH44KtDQor44OQ44Oz44K344On44KmLOOCr+ODi+OCqg0KK+ODleODgeOCqCzjgqvjgrrjgqoNCivjgrnjgrrjgq0s44Kk44Kv44KqDQor44K544K644KtLOODpuOCreODjuODqg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgqvjg4jjgqYs44K/44Kr44OE44KwDQor44Kv44K544OALOOCq+OCuuOCpOODgQ0KK+ODn+ODpOOCv+OCsSzjg6jjgrfjg5Ljg60NCivjgrXjg44s44OS44OH44K4DQor44Oe44Or44K/LOODiOOCt+OCouOCrQ0KK+ODnuOCreOCvyzjg57jg6rjgrMNCivjgqvjgrfjg6/jgq4s44OP44K444OhDQor44K/44OLLOODqOOCt+ODnw0KK+OCouODquODpOOCuSzjgqjjg4TjgqoNCivjgqvjg4jjgqYs44K344Ol44Km44K4DQor44K/44OK44KrLOODnuOCteODkuODiA0KK+ODhOOCuOOCvyzjg5Ljg63jgrcNCivjgqrjgqrjgqzjg6/jg6ks44K/44OA44KqDQor44Og44Op44K144OvLOODiOOCt+ODkuODrQ0KK+OCu+OCreODouODiCzjg5LjgrXjgrcNCivjg4Tjgrjjg6Ljg4gs44OS44K144OIDQor44K344Kq44K/44OLLOODqOOCpuOCpOODgeODreOCpg0KK+ODn+ODryzjg4jjgrfjgqoNCivjg4rjgqzjgrXjgqss44K744Kk44K4DQor44Kz44Kk44OHLOOCouOCreODqQ0KK+OCquOCsOODqSzjg4Tjg4jjg6ANCivjg4Tjg4Tjg58s44K/44Kr44OO44OqDQor44OV44Kr44OfLOOCuOODpeODs+OCpOODgQ0KK+ODqOOCt+ODgCzjgr/jgqvjgrcNCivjg6Ljg63jg5vjgrcs44K544K544OgDQor44K344Kq44OOLOOCv+ODgOODkuODhw0KK+ODpOODnuOCsOODgSzjg47jg5bjg5/jg4ENCivjg57jg5/jg6Qs44OE44Kr44K1DQor44K144Kk44OI44KmLOOCt+OCsuODpuOCrQ0KK+OCouOCreODpOODnizjgq3jg6jjgrcNCivjgqLjg4Djg4Es44Kr44K644OS44OtDQor44Kr44Ov44OOLOODiOOCt+ODn+ODhA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg5Ljg60NCivjg6Tjg57jgrDjg4Es44OI44K344KtDQor44K144Kv44OeLOODkuODh+ODnw0KK+ODouODgeOCuuOCrSzjg6jjgrfjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Oo44Km44K4DQor44Kz44OQ44Ok44K3LOOCu+OCpOOCuA0KK+OCreOCtyzjg5/jg6zjgqQNCivjg4/jg6TjgrXjgqss44Of44OB44OoDQor44Kz44OV44K4LOODnuOCteODjuODlg0KK+OCteOCpOODiOOCpizjgqLjgq3jgrMNCivjg47jg6Djg6ks44K344Ol44Oz44K4DQor44Oe44OE44KkLOODpuOCreOCqg0KK+ODj+ODpOOCt+ODgCzjg57jgrXjgqgNCivjgqrjgqzjg68s44K/44Kr44K3DQor44Ob44Oz44OALOOCv+OCq+OCtw0KK+OCs+OCtuODryzjg6jjgrfjg6Ljg4gNCivjgrXjgrXjgq0s44OS44OH44Ki44KtDQor44Ov44OALOOCreODqOOCtw0KK+ODpOODnuODr+OCrSzjgr/jg58NCivjg5XjgrjjgqQs44OP44Or44OoDQor44K/44Kt44K244OvLOODpOOCueODkuOCsw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjg5/jgqvjg58s44K144OI44K3DQor44Of44OvLOODjuODnOODqw0KK+OCquODgSzjg5Ljg63jgrcNCivjg5Xjgrjjgr8s44Kx44Kk44K4DQor44OK44Ks44K/LOOCpOODgeODreOCpg0KK+OCr+ODnOOCvyzjg6jjgqbjgrMNCivjgqLjgqrjgqzjgq0s44Ky44OzDQor44Kr44Oq44Ok44OJLOODiuOCquOCsw0KK+ODn+ODj+OCtyzjgrfjg7PjgqTjg4ENCivjg6Djg6njg57jg4Qs44OB44Ko44KzDQor44Kr44K/44Ok44OeLOOCquOCteODoA0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgqrjgqrjgq7jgr0s44Kt44Oo44K/44KrDQor44OQ44OQLOODnuOCteOCq+OCug0KK+ODn+OCt+ODnizjg57jgrXjg5LjgrMNCivjg6Tjg44s44Kq44K144OgDQor44OK44Kr44K444OeLOOCouOCreODkuOCsw0KK+OCv+OCseOCt+OCvyzjgq3jg6fjgqbjgrMNCivjg4rjgqvjg44s44Of44OO44OrDQor44K/44Kr44OOLOODpuOCrQ0KK+OCq+ODr+ODgCzjgqvjgrrjg57jgrUNCivjgr/jgrjjg54s44Kz44Km44K/44Ot44KmDQor44Oi44OB44K644KtLOOCreODqOOCtw0KK+OCreODoOODqSzjgqvjg4Tjg58NCivjgqLjgq3jg5ss44OI44Of44Oi44OIDQor44Ok44Oe44Oi44OILOOCouOCrQ0KK+OCq+ODr+OCuyzjg6bjgr/jgqsNCivjgrXjgrUs44OS44K144KqDQor44OO44K7LOOCq+OCuuODiuODqg0KK+ODkuODqeOCvyzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44K344Ol44Km44Kk44OBDQor44Ki44Ks44OvLOODpuOCpuOCueOCsQ0KK+ODhuODqeODouODiCzjg5Ljg63jg5Xjg58NCivjgqrjgrbjgq0s44K144Kr44KoDQor44Oi44OqLOOCreODp+OCpuOCsw0KK+OCpuODhCzjg5Ljg4jjgrcNCivjg6/jgqvjg57jg4Qs44OI44K344K144OADQor44Kk44Oe44KkLOODleODn+OCsw0KK+OCr+ODnCzjgr/jgqvjg5Ljg60NCivjgr/jgqvjg44s44K444Ol44Oz44K4DQor44OS44OT44OOLOODkuODh+OCqg0KK+OCueOCuuOCrSzjg4/jg6vjgq0NCivjgr/jg4rjgqss44K/44Kr44OP44OrDQor44K144Kr44Oi44OqLOOCq+ODqOOCsw0KK+OCv+OCreOCtuODryzjg4bjg4QNCivjg6jjgrfjgqvjg68s44K/44Ko44KzDQor44OI44Oo44OALOODquODpeOCpuOCpOODgQ0KK+OCpuODqeOCt+ODnizjg6bjgqbjgrgNCivjgrPjg7Pjg44s44Oi44OI44OS44OtDQor44OG44Op44Kr44OvLOOCv+OCseODiuOCrA0KK+OCs+ODkOODpOOCtyzjgqLjgq3jg5LjgrMNCivjgq3jg6Djg6ks44K/44Kr44KzDQor44Kr44Of44KqLOODrOOCpA0KK+OCr+ODrOODkOODpOOCtyzjgq3jg6jjg58NCivjgqvjg43jg4As44OS44Ot44KzDQor44Kr44Ov44Oi44OILOOCs+OCpuODmOOCpA0KK+OCpOODnuODoOODqSzjg6jjgrfjg5Ljg60NCivjgrPjg4/jgq7jgrbjg68s44Of44OO44OrDQor44K344OO44K244KtLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+ODoeOCsOODrSzjgrXjg4jjgrcNCivjgq/jg4vjgrXjg4As44Oe44K144OP44OrDQor44Oi44OqLOOCreODqA0KK+OCq+ODr+OCruOCtyzjgr/jgqvjg6bjgq0NCivjgqrjgqrjgrnjgqws44Kr44Ko44OHDQor44K544OALOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjgq3jg6jjgqvjgroNCivjgqTjgrfjgrMs44K444Ol44OzDQor44K544K644KtLOODiuOCquODpA0KK+OCreOCr+ODgSzjgqvjgrrjg5LjgrMNCivjgqrjgq7jgr8s44Ki44Kt44OpDQor44K/44Kr44Ok44OeLOOCv+OCq+ODiOODqQ0KK+ODiuOCq+OCt+ODnizjgq3jg6jjgrcNCivjg4Tjgrjjg6Ljg4gs44OS44Ot44K3DQor44OP44Ok44OeLOOCr+ODi+ODkuODrQ0KK+OCpOOCv+OCrOOCrSzjg57jgrXjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44OS44Ot44Ki44KtDQor44Ki44OA44OBLOODkuODreOCtw0KK+OCreOCv+ODnyzjg5Ljg63jg5Ljg4cNCivjgr/jg57jgq0s44Of44OB44KqDQor44Oe44Ko44OALOODpuOCpuOCuA0KK+OCouODgOODgSzjgrfjg6fjgqbjgr7jgqYNCivjgr/jg57jg4As44Kw44Oz44K4DQor44Oi44Oq44Kw44OBLOODpuOCpuOCuA0KK+ODqOOCt+ODiuOCrCzjg47jg6rjgrMNCivjg57jgqjjg4As44K/44Ko44KzDQor44Ov44K/44OK44OZLOOCv+ODnuOCrQ0KK+OCv+OCq+ODj+OCtyzjg6jjg6rjgr/jgqsNCivjgqTjgrfjgrMs44OG44OE44Ot44KmDQor44Kq44K444OeLOOCq+ODhOOCuA0KK+OCt+ODkOODpOODnizjg6jjgrfjgqLjgq0NCivjgrfjg5As44K/44Kx44OS44KzDQor44OI44Oi44OOLOOCseODs+OCpOODgQ0KK+OCueODnyzjg57jgrXjg5Xjg58NCivjg5/jg4Tjg4rjgqws44Ki44Kt44KzDQor44Km44Op44OOLOODnuOCteOCrQ0KK+ODqOOCs+OCuuOCqyzjgrXjg4jjgrcNCivjg5Xjgrjjgqvjg68s44OP44Or44OS44OtDQor44Kr44OW44Op44KuLOODnuOCteODpuOCrQ0KK+ODqOOCt+ODgCzjg6bjgr/jgqsNCivjgrXjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Ok44OOLOOCv+OCq+ODkuOCtQ0KK+ODqOOCs+OCvyzjg4rjgqrjg58NCivjg4rjgqvjg6Djg6ks44Ki44OE44K3DQor44OK44Of44K144OILOODnuOCteOCq+OCug0KK+ODjeOCruOCtyzjgrHjgqTjgr7jgqYNCivjgq3jg44s44OO44Oc44OrDQor44OK44Kr44K444OeLOOCouOCreODqQ0KK+ODhOODhOODnyzjgrfjg6XjgqbjgqTjg4ENCivjgrPjgqbjg4As44Ok44K544OS44KzDQor44Ob44OqLOODn+ODpuOCrQ0KK+OCs+ODs+ODjizjgqvjgrrjg6QNCivjg6/jg4As44Om44Of44KzDQor44Oe44OE44OK44KsLOOCteODgOOCqg0KK+ODi+OCt+ODoOODqSzjg4jjgrfjg6bjgq0NCivjgqTjgqQs44Ok44K544OS44OtDQor44Ok44K544KkLOODiuOCquOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg6XjgqbjgqTjg4ENCivjg6Tjg57jgrXjgq0s44Oe44K144OS44OtDQor44K544K644KtLOODpOOCueODpuOCrQ0KK+OCpOODr+OCvyzjg4/jg6vjg5LjgrMNCivjgrfjgrLjg6Ljg6os44K/44Kr44K3DQor44Kk44Oe44Og44OpLOODjuODluOCv+OCqw0KK+ODhOOCq+ODouODiCzjgqLjgq3jg6gNCivjgqTjg4jjgqYs44K344Oz44K544KkDQor44Kv44OcLOOCuOODreOCpg0KK+OCteODiuOCqCzjgqvjgrrjg57jgrUNCivjgrPjg4Djg54s44Ki44Kt44KqDQor44Kk44OI44KmLOOCq+ODhOOCtw0KK+OCouOCr+ODhCzjg6jjgqbjgrMNCivjgqLjgr/jg6njgrcs44Of44Ko44KzDQor44K/44Kw44OqLOOCuOODpeODs+OCsw0KK+ODjizjgr/jg4Tjg6QNCivjgqLjgqvjg57jg4Qs44Kx44Oz44K444Ot44KmDQor44Ki44K144OOLOOCseODs+OCuA0KK+ODiuOCq+OCrOODryzjg57jgrXjgqLjgq0NCivjgqvjg6/jgrfjg54s44Ki44K144KzDQor44K144OI44KmLOODkuODh+OCqg0KK+OCquOCsOODqSzjgrvjgqTjgrgNCivjgqTjgrfjg5Djgrcs44OS44Ot44Om44KtDQor44Oe44OE44Kq44KrLOOCv+OCq+ODqOOCtw0KK+OCv+OCreOCtuODryzjg57jgrXjg6jjgrcNCivjgqTjgr/jgq/jg6ks44K144OI44K3DQor44Ob44Oz44K044KmLOODqOOCt+OCq+OCug0KK+ODiuOCrOODpOOCuSzjgr/jgqvjg6bjgq0NCivjgqbjg4Hjg4As44OS44Ot44K3DQor44Ok44Oe44K344K/LOODhOODjeOCqg0KK+OCpOOCt+OCsOODrSzjg5Ljg63jgrcNCivjg6Ljg6os44OI44Oo44OS44KzDQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+ODkuOCsOODgSzjgrfjgrLjg4gNCivjgq3jg4gs44K344Oz44Kk44OBDQor44K/44OK44KrLOOCq+OCuuODpuOCrQ0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg60NCivjgrnjgqzjgqQs44Kx44Oz44K4DQor44Oo44ON44K244OvLOODqOOCt+OCq+OCug0KK+OCouODqeOCq+ODryzjg6rjg6XjgqbjgrgNCivjgqTjg47jg4As44Ok44K544OS44K1DQor44Kr44OI44KmLOODnuOCteOCqg0KK+OCq+OCsuODpOODnizjg57jgrXjgrcNCivjg5/jg6Tjg6/jgq0s44OI44K344OS44KzDQor44Of44OB44Ok44OeLOOCv+ODgOODpOOCuQ0KK+ODouODqizjg4jjgrfjgqLjgq0NCivjg6Ljg6rjgrXjg68s44K344Oz44Kk44OB44Ot44KmDQor44OL44K344Og44OpLOOCq+ODhOODpuOCrQ0KK+OCteOCpOODiOOCpizjg6Tjgrnjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Oo44Km44K544KxDQor44Oe44OE44Km44OpLOODqOOCt+OCouOCrQ0KK+ODj+OCu+OCrOODryzjg4Tjg4jjg6ANCivjgqbjg4Hjg4As44K444Ol44Oz44Kk44OBDQor44Ok44K544OALOOCs+OCpuOCpOODgQ0KK+OCpOOCt+ODgCzjg4jjgqrjg6sNCivjg6Ljg6rjg44s44Kr44OE44Oe44K1DQor44Kt44K/44Ok44OeLOODqOOCt+ODkuODrQ0KK+OCteOCq+ODouODiCzjg6jjgrfjg47jg6oNCivjgr3jgqbjg5/jg6Qs44OS44Ot44Om44KtDQor44Kt44Kv44OBLOOCt+ODs+OCpOODgQ0KK+OCt+ODluOCpCzjgrPjgqbjgrgNCivjg4jjg5/jgr8s44Ki44OE44K3DQor44Oi44OqLOOCs+OCpuOCuA0KK+ODpOODnuOCsOODgSzjgrjjg6Xjg7PjgrgNCivjgq3jgr/jg6Tjg54s44Oo44K344OS44OtDQor44Oe44Oz44Oi44OILOOCouOCreODqQ0KK+OCv+ODiuOCqyzjg6bjgr/jgqsNCivjg6Ljg6os44Kr44K644OS44OtDQor44Kk44K/44Kv44OpLOOCpOOCteODoA0KK+OCpOODgeODn+ODpCzjg57jgrXjgrcNCivjg4vjgrfjg6Tjg54s44Kr44OE44K4DQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+ODj+ODs+OCrOOCpCzjg4/jg6vjgqoNCivjg4rjgqzjg44s44Kx44Kk44Kk44OB44Ot44KmDQor44K344OQLOOCseODs+OCuA0KK+OCs+OCuOODnizjgrnjgrnjg6ANCivjgr/jgr/jg44s44K144OI44K3DQor44Kr44Ov44OQ44K/LOODnuOCteODkuOCsw0KK+OCv+OCseODgCzjgr/jg63jgqYNCivjgqrjg6Djg6ks44Kk44Kv44Ot44KmDQor44K144KzLOODkuODreOCtw0KK+OCpOOCt+ODj+ODqSzjg5/jg47jg6sNCivjgqTjg4Hjg47jgrss44K544K544OgDQor44Kt44K344OALOODqOOCt+ODnw0KK+ODn+OCq+ODnyzjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44K/44Kv44K4DQor44K144K144KtLOOCouODpuODnw0KK+ODqOODjeODn+ODhCzjgqvjgrrjg4rjg6oNCivjgrvjgq3jg40s44Oo44K344OK44OqDQor44Kk44Oe44OL44K3LOOCreODqOOCv+ODgA0KK+OCouOCquOCrSzjgr/jg4DjgrcNCivjgrnjgq7jg6Tjg54s44Kk44K144KqDQor44OK44Kr44Oi44OqLOODqOOCt+ODleODnw0KK+OCt+ODnuODgCzjg57jgrXjg5LjgrMNCivjg57jgrnjg4As44OV44K144KqDQor44OE44Oc44KkLOODkuODreOCtw0KK+OCu+OCreODpCzjgrnjgrnjg6ANCivjgq3jgrjjg54s44OO44Oq44KqDQor44Oo44K344K644OfLOODkuODh+OCv+OCqw0KK+ODpOODiuOCruODgOODhizjgrfjg7Pjg6QNCivjgrfjgrLjg57jg4Qs44OP44Or44Ok44K5DQor44Kk44OO44Km44KoLOODiuOCquOCrQ0KK+OCv+OCseOCpuODgSzjgrHjgqTjgrMNCivjgr/jg4rjgqss44K/44Kx44K3DQor44OS44Ks44K3LOOCt+ODpeOCpuOCuA0KK+OCv+OCq+OCvyzjg4rjgqrjg5Ljg60NCivjg4rjgqvjgqQs44OE44Ku44KqDQor44OP44K744Ks44OvLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiyzjgr/jgqvjgrcNCivjgrPjg5Djg6Tjgrcs44Of44Kt44OI44OoDQor44K/44Kr44OP44K3LOOCouOCteOCsw0KK+OCouODmSzjg57jgrXjg4gNCivjgrPjg5Djg6Tjgrcs44Oo44K344K+44KmDQor44Kq44OOLOOCpOOCr+ODpA0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jg5Ljg60NCivjgq/jg63jg4As44Ki44OE44K3DQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+OCouODmSzjgrfjg7PjgrgNCivjgqTjg47jgqbjgqgs44Oo44Km44KzDQor44Ko44Oz44OJLOODqOOCt+OCqg0KK+ODjuODjuOCt+OCvyzjgrfjgrLjg5Xjg58NCivjgqvjg4rjgqQs44Kv44Of44KzDQor44Kz44K/44KtLOOCuA0KK+OCv+OCq+ODj+OCtyzjg6jjgqbjgrMNCivjgrfjgrLjg6Tjg54s44OI44Of44KqDQor44OV44Kr44OALOOCouOCreOCqg0KK+OCt+OCquOCuCzjgqvjg4Tjg6bjgq0NCivjg6Ljg6rjg6Qs44OV44Of44OS44OtDQor44Kq44Kq44OE44KrLOODnuOCteODpA0KK+OCouODmSzjg57jgrXjgr/jgqsNCivjg5Ljg6njgqQs44K/44Kr44Om44KtDQor44Og44Op44Oe44OELOOCuOODpeODsw0KK+ODn+OCuuOCvyzjg57jgrXjg58NCivjg5vjg6rjgqgs44Kr44K644Om44KtDQor44OS44Kr44K1LOODnuOCteOCv+OCqw0KK+OCquOCt+OCv+ODiyzjg57jgrPjg4gNCivjgrPjg5Djg6Tjgrcs44Kr44OE44OfDQor44Kv44Op44OP44K3LOODkuODh+ODpuOCrQ0KK+ODkuODqeODkOODqyzjgr/jgrHjgqoNCivjg5Xjgrjjgqjjg4As44Oe44Kz44OIDQor44OI44K244OvLOOCq+ODhOODnw0KK+ODpOODiuOCuyzjgrfjgrLjg6sNCivjgq/jg5zjgr8s44Oo44K344KqDQor44Oe44Of44OkLOODnuOCteOCrQ0KK+ODpuODj+ODqeOCrizjg57jgrXjg58NCivjg4Hjg6fjgqbjg4rjg7Ms44Oo44K344Oe44OtDQor44Of44Oo44K3LOODiOOCquODqw0KK+ODjuOCuOODnizjg6jjgrfjg47jg6oNCivjg6Ljg6rjgrXjgq0s44Oe44Kz44OIDQor44Kz44Ok44OeLOODiOOCt+OCouOCrQ0KK+OCq+ODiOOCpizjg5Ljg63jgq0NCivjgq3jg47jgrfjgr8s44Ok44OB44OoDQor44Kr44Ov44Og44OtLOOCteODiOOCtw0KK+ODouODqizjgrHjgqTjgqTjg4ENCivjg5Ljg6njgrfjgr8s44K144OA44KtDQor44Kr44Ov44K344OeLOODquODp+OCpg0KK+ODleODq+OCq+ODryzjgqLjgq3jg4gNCivjgqTjg7Pjg4fjg7Ms44Oe44K144OS44KzDQor44Ok44Oe44OALOODpOOCueODpuOCrQ0KK+ODhOOCr+ODgCzjg5/jg47jg6sNCivjgqTjg6/jgrXjgq0s44Oe44K144OS44OIDQor44Kq44Oe44KoLOOCquOCteODoA0KK+OCueOCuuOCrSzjg57jgrXjg6bjgq0NCivjg4/jg6ks44Oe44K144OS44KzDQor44K144Kr44KkLOOCv+ODhOODoOODjQ0KK+ODouODquODpCzjgqvjgrrjg57jgrUNCivjg5/jg6Tjg6Ljg4gs44OI44K344OS44OtDQor44K344Ky44K/LOODnuOCteODkuODrQ0KK+OCpOOCt+OCq+ODryzjg5Ljg4fjg47jg6oNCivjgr/jgrbjgq0s44K144OA44OgDQor44K544Ko44OS44OtLOODoOODjeODpA0KK+OCq+ODjeODgCzjgrPjgqbjgqTjg4ENCivjgrnjgqjjg5Ljg60s44K444Ol44Oz44Kk44OBDQor44K144K144KtLOODquODpeOCpuOCteOCrw0KK+ODkuODpOODnizjgr/jg4Tjg4/jg6sNCivjgq3jg4njgrDjg4Es44Oo44K344OS44OtDQor44K344Oe44OALOODiOOCt+ODpuOCrQ0KK+ODn+ODpOOCsSzjg5Ljg4jjg58NCivjg6Ljg6os44K444Ot44KmDQor44K344Op44Kr44OvLOOCs+OCpuOCuA0KK+ODr+OCq+ODkOODpOOCtyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrfjgr8s44Kr44K644KqDQor44Ki44Oe44OOLOOCuOODpeODs+OCuA0KK+OCv+OCseOCpOODgSzjg5Ljg63jgr/jgqsNCivjgrfjg7Ms44Kx44Kk44KzDQor44Kr44K144OP44OpLOODhuODhOODpA0KK+OCv+ODiuOCqyzjgrHjgqTjgrcNCivjgqrjgq/jg4As44Ki44Kt44OpDQor44Kr44OI44KmLOODiOODouOCsw0KK+OCq+ODr+OCteOCrSzjg57jgrXjgrMNCivjgqvjg4jjgqYs44Kr44K644KqDQor44Kk44OB44K7LOODnuOCteOCouOCrQ0KK+OCreOCv+OCrOODryzjgrLjg7Pjg5jjgqQNCivjg6TjgrnjgqQs44Oo44K344OO44OWDQor44Ko44OALOODiOODn+OCq+OCug0KK+ODj+ODpOOCtyzjgr/jg4TjgrgNCivjg4rjgqzjgqQs44K144OI44K3DQor44OI44OO44Og44OpLOODnuOCteODjuODqg0KK+OCv+ODiuOCqyzjg47jg5bjg6bjgq0NCivjgq/jg6rjg5Djg6Tjgrcs44Oo44K344OO44OqDQor44Kt44Og44OpLOOCq+ODhOOCsw0KK+ODj+OCvOOCrSzjg47jg5bjg6bjgq0NCivjgqLjg7Pjg44s44Ki44OE44K3DQor44K/44Kr44Oo44K3LOODqOOCt+OCteODiA0KK+OCouODs+OCtuOCpCzjgrfjg6fjgqbjgrjjg63jgqYNCivjgr/jgqvjg4/jgrcs44Kq44K144OgDQor44OP44Op44OOLOODhOODjeOCqg0KK+ODiuOCq+OCrOODryzjgqvjg4Tjg6jjgrcNCivjg4vjgrfjgqvjg68s44Om44Kt44KqDQor44K344OW44OkLOOCq+OCuuODkuODrQ0KK+OCq+ODiOOCpizjg47jg5bjg5Ljg60NCivjgqLjg4Djg4Es44OI44K344OS44OtDQor44K144Kv44Op44KkLOODpOOCueOCv+OCqw0KK+OCr+OCteODjizjg4jjgrfjg5Ljg60NCivjg5/jg4rjg5/jgr7jg44s44Of44OO44OrDQor44OE44K444Og44OpLOOCouOCreODiOOCtw0KK+ODpOODnuODgCzjgqTjgrXjg6ANCivjgqvjg4Tjgrfjg54s44K344Ky44OfDQor44Kz44Ok44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODkOOCvyzjgqLjgq3jg6kNCivjgqLjg4Djg4Es44Oo44K344OS44OtDQor44OS44Ot44OOLOOCu+OCpOOCpOODgQ0KK+ODhOOCtuOCrSzjg5Ljg63jgqLjgq0NCivjgr/jg4Hjg5Djg4os44K344Ky44Ki44KtDQor44OZ44OD44K344OnLOOCq+OCuuODnw0KK+ODnuODhOOCt+OCvyzjg4Hjg6Xjgqbjgr7jgqYNCivjgr/jg4vjgrDjg4Es44Kx44Oz44K344Ol44KmDQor44OK44Kr44OI44OiLOODoOODhOODnw0KK+ODi+OCt+ODoOODqSzjg5Ljg63jgrcNCivjg5/jgqbjg6ks44Oe44Kz44OIDQor44Kz44Oz44OJLOOCquOCteODoA0KK+ODnuODhOOCpCzjg57jgrXjgq0NCivjg57jg4Tjg6Ljg4gs44OS44Ot44Kr44K6DQor44Ob44Oq44KkLOODkuODreOCtw0KK+ODnuOCueODouODiCzjg4Tjg4jjg6ANCivjg4rjgqvjgrjjg54s44OB44Kr44K3DQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+ODn+ODryzjg5Ljg63jg6bjgq0NCivjgqTjgrfjg5Djgrcs44Ok44K544K3DQor44Ko44Kw44OBLOODjuODquODkuOCtQ0KK+OCpOODiuODleOCryzjgrjjg6Xjg7MNCivjg6/jgr/jg4zjgq0s44Ok44K544OS44OtDQor44OS44Kw44OBLOODqOOCt+ODkuOCsw0KK+OCpOOCseODjizjgq3jgq/jgqoNCivjgqbjg6Hjg4/jg6ks44Oe44OK44OWDQor44OO44K244OvLOOCv+ODgOOCtw0KK+OCpOODnuOCpCzjg57jgrXjgq0NCivjgr/jgqvjg4/jgrcs44Kr44OE44K4DQor44Kk44Kk44OALOODj+ODq+ODkuOCtQ0KK+ODleOCuOOCq+ODryzjgqvjgqrjg6sNCivjg4vjgrfjgqgs44K/44OA44OS44KzDQor44Kz44K544KyLOODkuODreOCtw0KK+OCquOCquOCvyzjgrjjg6Xjg7PjgrMNCivjg47jgrgs44Kv44OL44OS44KzDQor44Kz44Oc44OqLOODn+OCreOCqg0KK+OCueOCruODpOODnizjg6jjgrfjgqLjgq0NCivjgqvjg6/jgr8s44OG44OE44OS44KzDQor44K144Oh44K344OeLOODn+ODjeOCqg0KK+OCs+ODpOODnizjgq3jg6jjgr/jgqsNCivjgqjjg7PjgqvjgqQs44K/44Kr44K3DQor44Kz44Oi44OALOODhOODiOODoA0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg6Tjg57jg6Djg6ks44Kr44K644Oe44K1DQor44Ko44OO44Oi44OILOODrOOCpOOCuA0KK+OCv+OCq+ODgCzjg5LjgrXjgr/jg4ANCivjg4rjgqvjg5/jgr4s44Om44Of44KzDQor44Kq44Kr44Og44OpLOODkuODreOCtw0KK+OCq+ODn+ODkOODpOOCtyzjgrvjgqTjgrgNCivjg5Xjgrjjg6Ljg6os44Of44Kt44KqDQor44Kv44Ot44OALOOCt+ODs+OCpOODgQ0KK+OCteODiOOCpizjg6jjg6rjgqgNCivjg6jjgrfjg6Djg6ks44K/44Kt44KqDQor44Oi44K/44KkLOOCv+OCr+OCuA0KK+ODoOODqeOCvyzjg4jjgqrjg6sNCivjg5/jg68s44OK44Kq44OIDQor44Kk44OP44OpLOOCqOODnw0KK+OCpOODnuOCpCzjgr/jgqvjgrcNCivjg5Ljg44s44Kr44K644KqDQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+OCu+ODiCzjg6jjgqbjgrgNCivjgq/jg57jgqzjgqQs44Ok44K544OS44OtDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg6bjgqbjgrMNCivjg6TjgrXjgqss44OS44Ot44K3DQor44K144OI44KmLOOCouOCreODkuODrQ0KK+ODn+ODpOOCv+OCsSzjg5Ljg63jg47jg5YNCivjg57jg4Tjgqbjg6ks44OS44OI44K3DQor44Oe44OE44K344K/LOODnuOCs+ODiA0KK+OCpuODqeODmSzjgqTjgrXjg6ANCivjgrfjgqzjgq0s44Oe44K144Oo44K3DQor44OG44Op44OALOODqOOCt+ODkuODiA0KK+OCpOODr+ODouODiCzjg6jjgrfjgqLjgq0NCivjgqTjg47jgqbjgqgs44K444Ot44KmDQor44Oi44OB44K644KtLOODpuOCreOCqg0KK+ODqOOCt+OCuuODnyzjgqjjgqTjgqTjg4ENCivjg5/jgqbjg6ks44Of44OE44OrDQor44Of44K644OOLOOCv+OCq+ODpuOCrQ0KK+ODqOOCt+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjg6vjgqQs44Oo44K344OS44OtDQor44OP44Ok44K3LOOCt+OCsuOCouOCrQ0KK+OCt+ODqeOCpOOCtyzjg5Ljg4fjgqoNCivjgrnjgqzjg6/jg6ks44K/44OE44KqDQor44OK44Kr44KkLOOCseOCpOOCpOODgQ0KK+ODjuODleOCuCzjg6jjgrfjg4/jg6sNCivjgrXjg4jjgqYs44OS44Ot44Kr44K6DQor44Kv44Ot44OALOOCreOCpOODgQ0KK+OCpOOCseODgCzjgr/jgqvjgrcNCivjgrXjgqws44Kx44Kk44K3DQor44Of44Ok44Kr44OvLOOCpOOCr+ODkuOCtQ0KK+ODr+ODqeOCt+ODiizjgrfjgrLjg6sNCivjgq3jgr/jgqzjg68s44OO44OW44Om44KtDQor44Kk44Oe44KkLOODleODn+OCouOCrQ0KK+ODn+OCteOCrSzjg5Ljg63jg47jg5YNCivjgqTjgrfjg4As44K/44Kx44K3DQor44Oq44Kv44OpLOODkuODh+OCouOCrQ0KK+OCt+ODp+OCpuOCuCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5Xjgq/jg4rjgqws44Oo44K344Kr44K6DQor44Kv44Ot44KtLOOCv+OCq+OCqg0KK+ODnuOCv+OCrSzjgrfjg6fjgqbjgrbjg7MNCivjgrvjgq3jg40s44Oe44K144OP44OrDQor44Ok44Oe44K344K/LOODn+ODhOODkuODrQ0KK+OCv+ODiuOCqyzjg6jjgrfjgqLjgq0NCivjgqrjgqrjg4/jg54s44Oe44K144OS44OtDQor44Kq44Kq44OE44OcLOODqOOCt+OCouOCrQ0KK+OCv+OCpCzjg5LjgrXjg4/jg6sNCivjg4Tjg6vjg6Qs44Oe44K144OO44OqDQor44Oo44K344OALOODqOOCpuOCpOODgQ0KK+ODnuOCueODn+ODhCzjgr/jgqvjgrcNCivjgqvjgrnjg6Qs44K344Ky44KqDQor44Oo44K344OALOODn+ODjuODqw0KK+OCq+ODr+ODoOODqSzjg5Ljg4fjgq0NCivjg4/jg6Tjgrcs44Kv44OL44OS44KzDQor44Kv44OL44Oi44OILOODnuOCteODpuOCrQ0KK+OCouODqeOCq+ODryzjg5Ljg4rjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44Kk44K344Kw44OtLOOCu+OCpOOCuA0KK+ODj+ODpOODnyzjgqvjg4Tjg5LjgrMNCivjg5/jg4rjg5/jgr7jg44s44Kt44Oz44K4DQor44K144Kr44K/LOODn+ODjuODqw0KK+OCq+ODr+ODouODiCzjg5Xjg5/jgqvjgroNCivjg6Djg6njgqrjgqss44Ok44K544OO44OqDQor44Kk44OI44KmLOODqOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjg5/jg4HjgqoNCivjg47jg6Djg6ks44Oe44K144Kr44K6DQor44K144OI44KmLOODj+ODq+ODig0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Oe44K144Kr44OEDQor44OM44Or44KtLOODkuODh+ODkuOCsw0KK+ODqOOCt+ODgCzjg6jjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44OS44Op44KkLOODqOOCt+ODpuOCrQ0KK+OCreODoOODqSzjgr/jgqvjgrcNCivjgqrjgq8s44Ot44KmDQor44OP44Ok44K144KrLOODpOOCueOCsw0KK+OCouOCteODjizjgrHjg7PjgrgNCivjg5XjgrjjgrXjgq0s44K344Oz44OkDQor44Ki44Kt44Oi44OILOODquOCqw0KK+OCt+ODnuODgCzjg57jgrXjgqgNCivjg5/jgrrjgqvjg58s44Oe44K144OP44OrDQor44OK44Kr44Ks44OvLOODiOOCquODqw0KK+OCteODiOOCpizjg4bjg4Tjg6QNCivjgrPjg5Djgrfjg6os44Kx44Oz44K4DQor44Ki44Op44KtLOODqOOCt+OCqg0KK+OCueOCuuOCrSzjg4rjgqrjg4jjgrcNCivjg4vjgrfjg4cs44K744OEDQor44Kq44OB44Ki44KkLOODqOOCt+ODkuOCtQ0KK+ODjuODiuOCqyzjgr/jgqvjgrcNCivjg6TjgrnjgqQs44Oq44Ol44Km44K4DQor44Kz44OP44K/LOOCseODs+OCpOODgQ0KK+ODn+ODjuOCt+ODnizjgqLjg4TjgqoNCivjg4bjg6njgrfjg54s44Kt44Of44OS44KzDQor44Ok44Kv44OvLOODqOOCt+OCqg0KK+OCueOCrOODr+ODqSzjg5/jg4HjgqoNCivjg5/jg4Tjg4/jgrcs44OG44OE44Ot44KmDQor44OO44Og44OpLOODjuODquOCsw0KK+ODgeODp+OCpizjgqLjgrrjg58NCivjgrXjg4jjgqYs44Oq44On44Km44KzDQor44K344K644OP44OpLOODrOOCpOOCsw0KK+ODj+ODpOOCt+OCq+ODryzjgrHjg7PjgrgNCivjg4vjg68s44Oo44K344KqDQor44Of44Ko44OOLOOCseODs+OCpOODgQ0KK+OCt+ODnuODgCzjg5Ljg4fjg4gNCivjg4rjgqvjg6Djg6ks44OI44K344KqDQor44OS44Op44OOLOODquODp+OCpuOCpOODgQ0KK+ODpOODnuODiOODpCzjgqvjgrrjg5LjgrMNCivjg4Tjg47jg4As44Ok44K544OO44OqDQor44Kz44OQ44Ok44K3LOODjuODluOCouOCrQ0KK+OCteOCq+OCr+ODqSzjgq3jg6fjgqbjgrMNCivjg57jg4Tjg4As44Oe44K144Ki44KtDQor44Kk44Oe44Og44OpLOOCu+OCpOOCtw0KK+ODpOOCruODj+OCtyzjg4rjgqrjgrMNCivjgqrjgq7jg44s44OS44Ot44KqDQor44K/44OK44KrLOODqOOCt+ODnuOCtQ0KK+ODkuOCrCzjg6jjgrfjgqvjgroNCivjgrXjgrMs44OE44OI44OgDQor44K/44K244KtLOOCv+ODouODhA0KK+OCpOOCpOODgCzjg57jgrXjg4/jg6sNCivjgqTjgqTjg4As44Oq44On44Km44K544KxDQor44Oe44OE44Kw44OeLOOCt+OCsuODmw0KK+ODoOODqeOCvyzjgrHjg7MNCivjg6Tjgrnjg6Ljg4gs44Oe44Kz44OIDQor44K344Of44K6LOODkuODreOCtw0KK+ODr+OCr+OCpCzjg6jjgrfjgr/jgqsNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44Kt44K/44KkLOODiOOCt+ODkuOCsw0KK+OCouODgOODgSzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjg4/jg4rjg5bjg4Es44OP44K444OhDQor44K144OI44KmLOOCr+ODi+ODkuODrQ0KK+OCouODqeOCpCzjg4jjgrfjg5LjgrMNCivjgr/jgrHjg4rjgqss44K144OI44K3DQor44Kr44KkLOODn+ODm+OCsw0KK+OCouOCq+ODgCzjgrfjgrrjgqoNCivjgq/jg4vjgrnjgqgs44OS44Ot44Ki44KtDQor44Oe44Ko44Kr44OvLOOCouOCreODqQ0KK+ODn+ODiuODnyzjg5/jg4TjgrcNCivjgr/jgq3jgqzjg58s44OS44OH44Om44KtDQor44Oe44OE44KkLOODnuOCs+ODiA0KK+OCt+ODqeOCpCzjg57jgrXjg5/jg4ENCivjgr/jgrHjg6jjgrcs44K744Kk44OO44K544KxDQor44K/44Kr44OALOOCreODqOOCv+OCqw0KK+OCv+OCq+OCrizjgr/jgqvjg5LjgrMNCivjgq/jg4njgqYs44Kt44Oo44K/44KrDQor44K344Oe44OALOODjuODluOCsw0KK+OCq+ODiOOCpizjgqvjgrrjgqoNCivjgrfjgq7jg6fjgqYs44OS44OH44Ki44KtDQor44OS44Ot44OOLOOCveOCquOCuOODow0KK+OCreODjuOCt+OCvyzjg6jjgrfjgqgNCivjgrfjg5/jgros44K344On44Km44K+44KmDQor44K344Og44OpLOODkuODreOCouOCrQ0KK+OCr+OCteOCq+ODqizjg5/jg5sNCivjgqvjg6vjg5ks44OI44K344OP44OrDQor44Oe44OE44Oi44OILOODiuOCquODpuOCrQ0KK+OCt+ODnuODoOODqSzjg4jjg57jgrUNCivjgqvjg4Tjgqvjg68s44K/44Kr44KqDQor44Kk44K6LOOCpOOCteOCqg0KK+OCteOCr+ODqeODouODiCzjgqTjg4TjgrgNCivjg6Ljg6rjgr8s44K444Ot44KmDQor44K/44OK44OZLOOCr+ODi+OCpOODgQ0KK+ODj+ODg+ODiOODqizjg5Xjg5/jg4gNCivjg6rjg6XjgqbjgrQs44K344Ol44Oz44Kk44OBDQor44Kq44Oe44OE44K244OvLOODnuOCteODj+ODqw0KK+OCquODiOODryzjg6bjgq3jg6jjgrcNCivjgrPjg4Djg54s44K744Kk44Kk44OBDQor44Kr44Ok44K344OeLOODpuOCpuOCuA0KK+OCs+ODkOODpOOCtyzjgrfjgrLjg6sNCivjgq/jg4vjgqjjg4As44Oe44Kt44KqDQor44Kz44KmLOOCq+OCuuODiuODqg0KK+ODi+OCt+ODpOODnizjg5Ljg4jjg58NCivjg6/jg4As44OS44Ot44OkDQor44OL44K344Oi44OILOOCv+OCq+OCtw0KK+OCteOCpOODiOOCpizjgqvjg4Tjg47jg6oNCivjg4jjgrfjg54s44Oo44Km44Kk44OBDQor44Kq44Kq44OE44KrLOODm+OCs+OCrw0KK+OCquODjizjg57jgrXjg6sNCivjgrnjgrrjgq0s44K/44Kr44K3DQor44K144Kv44Op44KkLOOCv+OCq+OCtw0KK+OCquOCvOOCrSzjgr/jgqvjgrcNCivjgqrjgqvjg4As44Oe44K144Of44OEDQor44Kq44Ks44OvLOODkuODreOCtw0KK+OCpOOCseOCrOODnyzjg5Ljg4fjg4jjgrcNCivjgrPjg57jg4Qs44K/44Kr44OO44OqDQor44Oo44K344KkLOODqOOCt+OCouOCrQ0KK+ODkuODqeODjizjgrfjg6fjgqbjgqTjg4ENCivjgr/jgqvjgrnjgqss44OS44Ot44K3DQor44OP44K344Oi44OILOODpOOCueODpuOCrQ0KK+OCr+ODr+OCqCzjgq3jgq/jgqoNCivjgqvjg43jg57jg4Qs44Kr44ON44OS44OHDQor44Oe44OE44KqLOOCseOCpOOCpOODgQ0KK+OCpOODiSzjgr/jgqvjg5LjgrMNCivjgqTjg44s44K444Ol44Oz44Kk44OBDQor44K144Kk44OI44KmLOOCv+OCseOCtw0KK+OCq+ODn+ODpOODnizjgrPjgqbjgrgNCivjgrPjgrfjg6Ljg4gs44Kz44Km44Kk44OBDQor44Kq44Kq44Ks44Ov44OpLOODqOOCt+ODjuODlg0KK+OCv+OCq+ODj+OCtyzjg57jgrPjg4gNCivjg4rjgqzjg57jg4Qs44K344Oz44Kk44OBDQor44K544K644KtLOOCtOODreOCpg0KK+ODhuODqeOCqizjg6jjgqbjgrgNCivjg5vjg6rjgrEs44Kr44Kq44OrDQor44K544K644KtLOOCv+OCq+OCtw0KK+OCquOCrOODryzjgrPjgqbjgqTjg4ENCivjg5/jg6Tjg6Ljg4gs44OO44OW44KqDQor44Kq44Kq44K544OfLOODkuODreODpuOCrQ0KK+OCpOODr+ODluODgSzjg47jg5bjg6TjgrkNCivjg57jg4Tjgqbjg6ks44K/44OE44KqDQor44K144Ov44OBLOODgeOCq+OCqg0KK+ODhuODqeODgCzjgrvjg4TjgrMNCivjgqTjg5Djg6Tjgrcs44Om44K/44KrDQor44Kk44Ov44K7LOOCuOODpeODs+OCpOODgeODrQ0KK+OCquOCrOODryzjgrvjgqTjgrgNCivjgqLjgr0s44Ok44K544OI44OiDQor44OV44Kv44Oi44OILOOCteODpuODqg0KK+OCpOODhyzjg5Xjg5/jgr/jgqsNCivjgqvjg6/jgrXjgq0s44OG44OE44K4DQor44OP44Or44OKLOODnuOCteODjuODqg0KK+OCv+OCuOODnizjg6bjgq3jg5Xjg58NCivjgqvjg4rjg6Tjg54s44Oo44Km44K4DQor44K/44OK44KrLOODr+OCv+ODqw0KK+ODnuODhOOCtuOCrSzjg57jgrXjgqoNCivjgqTjg47jgrXjgqss44Kz44Km44K4DQor44Kq44K344Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCv+OCseOCpuODgSzjgr/jgqvjgrcNCivjgrXjgrXjgqrjgqss44OI44K344Om44KtDQor44Kz44Oi44OqLOODnuOCteOCouOCrQ0KK+OCv+OCuOODnizjg5Ljg63jgqLjgq0NCivjgqTjgrHjgqzjg58s44Kx44Oz44K4DQor44Ok44Oe44Kw44OBLOODnuOCteOCouOCrQ0KK+OCq+ODr+OCq+ODnyzjgrfjgrLjgq0NCivjgqTjgrvjgq0s44Ko44Kk44K544KxDQor44K/44Kx44OALOODkuODh+ODpuOCrQ0KK+OCv+OCq+ODpOOCuSzjg57jg4rjg5YNCivjgqvjg6Hjg4As44K/44Kx44OI44K3DQor44OV44K444OOLOODnuOCs+ODiA0KK+ODn+OCteOCrSzjg6Tjgrnjg47jg6oNCivjg4rjgqvjg6Djg6ks44OI44K344Ki44KtDQor44Kq44Ks44OvLOOCs+OCpuOCuA0KK+ODiuOCq+OCtuODryzjg5Ljg4fjg4jjgrcNCivjgrvjgq0s44Ok44K544Kv44OLDQor44Oo44K344Kr44OvLOOCv+OCr+ODpA0KK+OCv+OCrOODryzjgr/jgqvjgrcNCivjg5/jgr/jg4ss44OI44K344OS44KzDQor44K544Ko44K/LOOCouOCreODkuODiA0KK+OCpOODjOOCpCzjgrHjg7MNCivjgqrjgrXjg4As44K144OI44K3DQor44OV44Or44Kr44OvLOOCq+ODhOOCqg0KK+OCueOCuuOCrSzjg57jgrPjg4gNCivjgq3jgr/jg6Djg6ks44Oq44On44Km44K544KxDQor44Kz44Oe44OELOODkuODreOCv+OCqw0KK+OCouOCteODgCzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqvjg7Pjgrbjgq0s44Ok44K544Oe44K1DQor44Km44K544KkLOODqOOCt+ODleODnw0KK+ODleODq+ODpCzjg4jjgrfjg5LjgrMNCivjg6jjgrHjg6Djg6ks44OV44Of44Oo44K3DQor44Oo44Kz44KoLOODqOOCt+OCrQ0KK+OCouOCq+OCpOODryzjg4jjgrfjg5LjgrMNCivjg5Xjgq/jgrfjg54s44OS44Ot44Ok44K5DQor44Ok44K444OeLOODpOOCueOCtw0KK+ODj+ODqSzjg5/jg6bjgq0NCivjgq3jgrfjg4As44Om44Km44K+44KmDQor44Kv44OcLOODn+ODhOODqw0KK+OCq+OCv+OCruODqizjg6Tjgrnjg47jg6oNCivjgqTjg4HjgqQs44OV44Of44OkDQor44Oe44OE44KtLOODiOOCt+OCouOCrQ0KK+ODr+OCseODmSzjgrHjg7PjgrgNCivjg57jg6vjg6Tjg54s44OS44OH44KqDQor44OE44OQ44KtLOOCt+OCsuODqw0KK+OCteODjizjg5Ljg63jgrcNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OI44K3DQor44OV44Kv44Ok44OeLOODnuOCteOCouOCrQ0KK+OCpuOCqOODoOODqSzjg57jgrXjg6sNCivjgq/jg6/jgqvjg4ks44Oq44KtDQor44Kv44OL44Oe44OELOODnuOCteODqw0KK+OCq+OCv+OCquOCqyzjg47jg6rjg6bjgq0NCivjg4jjg5/jgr8s44Kr44K644OO44OqDQor44OK44Kr44Og44OpLOOCouODhOODkuOCsw0KK+OCr+ODieOCpizjg6jjgrfjg4bjg6sNCivjgqrjg5bjg4Es44OG44Or44OS44KzDQor44Oo44K344Kr44OvLOODiOOCquODqw0KK+OCq+OCsuODpOODnizjg57jgrPjg4gNCivjg4jjg4As44Kx44Kk44Kk44OBDQor44K/44Kr44OP44OpLOOCteODiOOCtw0KK+ODnuODhOOCt+OCvyzjgrfjg7PjgrgNCivjgrPjg4DjgqTjg6ks44OS44OH44K3DQor44K344Oz44Kr44KkLOODouODiOOCqg0KK+ODhuODqeODgCzjg57jgrXjg5Ljg4gNCivjgqvjg6/jgq3jgr8s44OP44K444OhDQor44Of44Km44OpLOOCteODiuOCqA0KK+OCouODmSzjg5Ljg4jjgrcNCivjg4vjgrfjgqvjg68s44Om44Kt44OS44OtDQor44Ob44K944OALOOCpOODr+OCqg0KK+ODnuOCueODgCzjg6jjgrfjgqoNCivjgqvjgrbjg54s44K/44Kx44K3DQor44Ki44Op44Oe44KtLOOCq+OCuuOCqg0KK+ODr+OCv+ODjOOCrSzjg5/jg4Tjgq4NCivjgrXjgqvjg6Ljg4gs44OE44Oo44K3DQor44Ki44Oe44Ks44OfLOOCt+ODsw0KK+OCs+ODs+ODjizjgqTjgrXjgqoNCivjgqrjgq/jg4As44Oo44K344OO44OqDQor44Kq44OP44KvLOODn+ODhOOCqg0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg5Xjg58NCivjg4rjgqvjg6Djg6ks44Om44Km44Kk44OBDQor44Km44K344Ok44OeLOODpuOCreOCqg0KK+ODpOOCt+OCrSzjgqLjgqTjgqTjg4Hjg63jgqYNCivjgq3jg47jgrss44K344Ol44Oz44Kk44OBDQor44Ov44Kr44Ok44OeLOOCs+OCpuOCpOODgQ0KK+OCpOODnuOCpCzjg57jgrXjg6bjgq0NCivjg57jgqjjg4As44Kt44Oo44K3DQor44Oe44OE44K344K/LOOCqOOCpOOCuA0KK+ODkuODqeOCsOODgSzjg5Ljg63jgrcNCivjg6/jg4As44Ki44OE44KzDQor44Ov44K/44OK44OZLOOCveOCpuOCpOODgQ0KK+ODnuODhOOCpCzjgrfjg7PjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Of44Kt44KqDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+OCv+OCreOCvyzjg6jjgrfjg4gNCivjg57jgrnjg4As44OI44Oi44KzDQor44Of44Ok44Km44OBLOODnuODpuODnw0KK+OCt+ODoOODqSzjgrXjgqvjgqgNCivjg57jg4TjgqQs44K/44Kt44KzDQor44OP44Op44OP44K/LOODiOODn+OCv+ODreOCpg0KK+ODkuOCteOCv+ODiyzjgqLjg4TjgrcNCivjgqvjgqzjg58s44Oe44K144OE44KwDQor44Oo44K344Og44OpLOODpuOCpuOCuA0KK+OCquOCquODhOOCqyzjgrHjgqTjgrQNCivjgr/jg4rjgqss44K344Oz44Kk44OBDQor44OS44Op44OOLOOCt+ODpeOCpg0KK+OCv+OCseOCueOCqCzjg4bjg4Tjg6QNCivjg4vjgrfjg44s44Oo44K344Om44KtDQor44Kq44Kq44OE44KrLOODoeOCsOODnw0KK+OCquODgCzjgrfjg7PjgrgNCivjgrfjg5/jgros44Om44K/44KrDQor44OP44Oe44Oi44OILOOCv+OCq+ODqOOCtw0KK+ODn+ODpOODnuOCqCzjg57jgrXjg4rjg6oNCivjg4rjgqzjgrfjg54s44Ko44Kk44K4DQor44Of44OE44OhLOOCs+OCpuOCuA0KK+OCq+OCtOOCv+ODiyzjg6jjgrfjgqvjgroNCivjg6jjgrPjg6Tjg54s44K/44Kr44OV44OfDQor44K144Kr44K/LOOCseODs+OCuA0KK+OCquOCpOOCr+ODnCzjgqLjgq3jg5Ljg4cNCivjgq/jg6njg6Ljg4Es44OS44Ot44OkDQor44Ki44Oz44K244KkLOODnuOCteODpuOCrQ0KK+ODleOCr+OCt+ODnizjg6rjgqgNCivjg4rjgqvjg6Djg6ks44OS44OI44OfDQor44Kk44OI44KkLOODpuODquOCsw0KK+ODm+OCt+ODjizjg5/jg4HjgrMNCivjgrPjgqTjg4cs44OS44Ot44OS44KzDQor44Kq44K244KtLOOCuOODpeODsw0KK+OCu+OCuOODoizjg57jgrXjg5/jg4ENCivjgrnjg4njgqYs44Oe44K144Of44OEDQor44Kr44K444Ov44OpLOODn+ODieODqg0KK+OCueOCuuOCrSzjgqvjg4Tjg5Ljg60NCivjg5vjgrfjg44s44OP44Or44KzDQor44OK44Kr44Og44OpLOODqOOCt+OCouOCrQ0KK+ODouODquOCvyzjgqLjgq3jgqvjgroNCivjg6Tjg57jgrbjgq0s44OI44K344OS44KzDQor44Kq44Kv44Ks44OvLOODnuOCteODkuOCsw0KK+ODiuOCrOODj+ODnizjg5Ljg63jg6bjgq0NCivjg6jjgrfjg6Djg6ks44Ki44Kt44Of44OEDQor44Oe44OE44OALOOCv+OCq+ODiOOCtw0KK+ODm+OCq+OCvuODjizjgqLjg4Tjg5LjgrUNCivjgqLjg5ks44OI44K344OE44KwDQor44OK44Ks44KkLOOCs+OCpuOCuA0KK+ODiOOCrOOCtyzjg4jjgrfjg5Ljg4gNCivjg6Tjgrbjgq0s44OG44Kk44K+44KmDQor44Ok44Oe44Km44OBLOODkuODh+OCrQ0KK+ODn+OCteOCrSzjg4rjgqrjgq0NCivjg6jjgrfjg4As44K344Oz44K4DQor44OK44Kr44Oi44OILOOCt+OCsuODqw0KK+OCt+ODjuODj+ODqSzjg4Tjg43jgqvjgroNCivjg4rjgqvjg4vjgrcs44Ki44Kt44OpDQor44Ok44K444OeLOOCreODqOOCtw0KK+ODiOODqOODleOCryzjg6bjgqbjgrgNCivjgr/jgqvjgrfjg54s44Kr44OE44K4DQor44OV44K344OL44K3LOOCreODn+OCqA0KK+ODoOOCq+OCpCzjg4bjg4Tjg6QNCivjg4vjgrfjg6Djg6ks44OS44Ot44Om44K3DQor44Kr44Ov44OQ44K/LOOCteODiOOCtw0KK+ODoOOCq+OCqOODgCzjgrXjg4jjg6sNCivjgrfjgrvjgq0s44Kk44OD44K344OzDQor44Kr44K/44Kq44KrLOODqOOCt+ODkuODhw0KK+ODiuOCpOODiOOCpizjg5Ljg63jgq0NCivjg5/jg4gs44Ok44K544OIDQor44Kq44Kq44OL44K3LOODiOOCt+ODreOCpg0KK+ODqOOCs+ODpOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44K/44OE44Ki44KtDQor44Kk44K244OvLOODkuOCteODjuODqg0KK+OCv+ODi+OCrOODryzjg4jjg5/jgqgNCivjgrnjgq7jgr8s44Om44KrDQor44Kq44K344K/LOODnuOCteODpuOCrQ0KK+OCt+ODnuODgCzjg4jjg6LjgrMNCivjg6Tjg57jg6Djg6ks44Kz44Km44Kk44OBDQor44OV44Kv44Kq44KrLOODnuOCteOCtw0KK+ODpOODiuODqizjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44K344Oz44K4DQor44K144Kr44KkLOOCteODiOODqw0KK+ODpOODnuODgCzjg6bjgq3jg5Ljg60NCivjg6Tjg57jgrPjgrcs44K344Ky44OrDQor44OO44Oi44OILOODiOOCt+ODpuOCrQ0KK+OCv+OCseOCt+OCvyzjg6Ljg4jjgq0NCivjg5/jg47jg4As44K344Ky44Om44KtDQor44Ki44K144KkLOOCt+ODmw0KK+ODoOODjeODpOOCuSzjg5Ljg4fjg6bjgq0NCivjgqvjg6/jg4vjgrcs44Oe44Kz44OIDQor44K144Kr44Kw44OBLOODpOOCueODkuOCtQ0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5LjgrMNCivjgqLjgrXjgqrjgqss44OS44OH44OO44OWDQor44Kt44OO44K344K/LOODn+OCreOCvuOCpg0KK+ODn+ODnizjgq3jg6jjg58NCivjg5Xjgq/jg6Ljg6rjgr8s44K344Ky44KqDQor44Kr44K444Ok44OeLOODqOOCt+OCsw0KK+ODpOODnuOCtuOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrXjg4jjgqYs44OI44K344OkDQor44Kr44Ov44OZLOODn+ODhOODkuOCsw0KK+ODnuODq+ODpOODnizjg47jg5bjg6jjgrcNCivjgqrjgqzjg6njg40s44OO44OW44KzDQor44OJ44KkLOODpuOCpuOCvuOCpg0KK+OCv+ODiuOCqyzjg5/jg4TjgqoNCivjgqrjgq7jgrfjg54s44Kq44K144OgDQor44Kk44OO44Km44KoLOODkuODreODpuOCrQ0KK+ODleODq+ODpCzjg5Ljg63jg47jg6oNCivjg5Xjgq/jgqQs44OE44Oo44K3DQor44Oe44K544OALOOCv+OCq+ODkuODrQ0KK+ODm+ODs+ODgCzjg6bjg5/jgrMNCivjg4rjgqvjg4vjgrcs44OK44Kq44K/44KrDQor44Of44Ok44Oe44KoLOODiuOCquODkuOCsw0KK+OCquOCq+ODjizjg5Ljg4fjgqoNCivjg5Djg5As44Oo44Km44Kk44OB44Ot44KmDQor44OA44Kx44Ok44OeLOOCteOCr+OCsw0KK+ODpOODnuOCsOODgSzjg6TjgrnjgqoNCivjg4/jg6Tjgrcs44OI44K344Ot44KmDQor44OI44Of44K644KrLOODpOOCueODkuODrQ0KK+ODiuOCq+ODi+OCtyzjg4/jg6vjg5LjgrUNCivjgqLjg5ks44OP44K444OhDQor44Ki44Kq44Ok44KuLOODkuODreOCsw0KK+ODhuODqeODr+OCrSzjgq3jg6jjgrMNCivjgqvjgr/jgq7jg6os44OO44Oc44OrDQor44OK44Kr44Ks44OvLOODnuOCteOCqg0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgqbjgqjjg4As44OS44Ot44OfDQor44OV44K444Ov44OpLOOCouOCreODkuODrQ0KK+ODj+ODpOOCteOCqyzjgr/jg4Tjg58NCivjgq3jg6Djg6ks44OS44Ot44K3DQor44K044OI44KmLOODnuOCteODkuODrQ0KK+OCt+ODoOODqSzjgrHjgqTjgr7jgqYNCivjgrvjgq0s44OI44K344Kr44K6DQor44Ki44Kk44K244OvLOOCouOCreOCqg0KK+ODjuODoOODqSzjgrPjgrnjgrENCivjgqvjg7Pjg4As44K344Ol44Km44K4DQor44Km44Op44KkLOODnuOCueODnw0KK+ODouODiOODpOODnizjg6jjgrfjg4/jg6sNCivjgqvjg5/jg6Djg6ks44OG44OE44KqDQor44OS44Op44KkLOODnuOCteODpuOCrQ0KK+OCouODqeOCpCzjg4jjg6Ljg4rjg6oNCivjgrXjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44Oe44Kt44OP44OpLOODnuOCteOCtw0KK+OCquOCquODr+OCryzjgqrjgrXjg6ANCivjg6Ljg4Hjgrrjgq0s44Oe44K144OS44OtDQor44OP44Oz44Ks44KkLOODqOOCt+ODkuODrQ0KK+OCpOODjuOCpuOCqCzjgqvjgrrjg5Ljg4gNCivjg4rjgqzjgqTjgrcs44Kr44OE44OfDQor44OL44K344Oi44OILOOCouOCreODqQ0KK+ODhOODgeODpCzjgrfjg6fjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44K/44Kr44K3DQor44Ob44OzLOOCt+ODp+OCpuOCtA0KK+OCpOODr+OCpCzjgr/jg4Tjg6QNCivjgq/jg5ws44Oe44K144KqDQor44OP44Kz44KkLOODnuOCteOCqg0KK+ODr+OCv+ODiuODmSzjg47jg6rjgqoNCivjgrnjgq7jgr8s44OI44K344Of44OEDQor44OK44Kr44Og44OpLOOCq+OCuuODkuODrQ0KK+OCq+ODqeOCteOCrSzjgrPjgqbjgqTjg4ENCivjg47jg6rjg57jg4Qs44Of44OE44OS44KzDQor44Kv44K544Oi44OILOOCv+OCq+ODqOOCtw0KK+ODi+OCt+ODoOODqSzjgrXjg4jjgrcNCivjgrPjgrnjgrIs44Oe44K144OKDQor44OV44Kv44Of44OELOODpOOCueODnw0KK+ODpOODnuOCsOODgSzjgrXjg5bjg63jgqYNCivjgqTjgrfjgrDjg60s44Kr44K644OfDQor44OI44Kv44OALOODiuOCquODpA0KK+OCouODquODiOODnyzjgrjjg4Tjg63jgqYNCivjg5Ljg6Tjg54s44K344Oz44Kk44OBDQor44OS44Ot44K7LOODnuOCteODiOOCtw0KK+ODi+OCt+ODgCzjg4jjgqrjg6sNCivjg4/jg4Pjg4jjg6os44Oo44K344OfDQor44OS44Op44OQ44Ok44K3LOOCseODs+OCpOODgQ0KK+ODj+ODqeOCt+ODnizjgqjjgqTjgrgNCivjg4/jg6ks44K/44Of44KqDQor44OP44Oe44OOLOOCq+OCuuODpuOCrQ0KK+ODj+ODnuODgCzjg57jgrXjg4jjgrcNCivjg4/jgrfjg6Ljg4gs44Kr44OE44OS44KzDQor44OP44Ok44K3LOODkuOCteOCuA0KK+ODkuOCsOODgSzjg57jgrXjg58NCivjg5Ljg6njg44s44Om44K/44KrDQor44Ob44Oz44OeLOODnuOCteODj+ODqw0KK+ODj+ODq+ODnuOCtyzjg6jjgrfjg57jgrUNCivjg4/jgrfjg6Ljg4gs44Ok44K544KqDQor44OS44OALOOCv+OCq+OCtw0KK+ODkuODqeOCueOCqyzjg4Hjg6fjgqbjgrgNCivjg4/jgq7jg6/jg6ks44Kz44Km44Kk44OBDQor44OP44Oe44OALOOCreODn+OCqA0KK+ODj+OCt+ODouODiCzjg5/jg4Hjg4/jg6sNCivjg5vjg7Pjg54s44Of44Oo44K3DQor44Ob44Kr44OqLOODpOOCueODkuODrQ0KK+ODj+ODqeODgCzjg5/jg4HjgrMNCivjg4/jg6Tjgrcs44Kx44Oz44K4DQor44Ob44Oq44OZLOOCq+OCuuOCqg0KK+ODj+OCt+ODouODiCzjg57jgrXjgqoNCivjg4/jgrvjgqzjg68s44K/44OA44Kr44K6DQor44OS44Ot44OZLOODn+OCreOCqg0KK+ODj+OCt+ODouODiCzjgqvjgrrjg58NCivjg5Ljg6njg44s44Oe44K144Om44KtDQor44OP44K344Oi44OILOOCseODsw0KK+ODkuOCuOOCq+OCvyzjg4Tjgq7jgqgNCivjgqrjgqrjg4zjg54s44Kk44K144KqDQor44OP44OW44OELOODkuODreODpuOCrQ0KK+ODkuODgOOCqyzjgqvjgrrjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44Kt44Oz44OkDQor44OP44Oe44OOLOODiuOCquOCrQ0KK+ODkuOCt+ODjOODnizjg47jg5bjg6bjgq0NCivjg4/jg6ks44Oo44K344OfDQor44OP44OK44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODj+ODqSzjgrHjg7PjgrgNCivjg4/jgqws44K/44Kx44KqDQor44OP44OK44OALOODnuOCteODjuODqg0KK+ODkuODqeODpOODiuOCrizjg47jg5bjgr/jgqsNCivjg5vjg6rjgqvjg68s44Of44OE44OO44OqDQor44Ob44Oq44Kr44OvLOOCseODsw0KK+ODj+OCt+ODouODiCzjgqLjgq3jgrMNCivjg4/jgr8s44OI44K344OS44KzDQor44OS44Op44KkLOOCuOODpeODsw0KK+ODj+ODqeOCsOODgSzjg6Tjgrnjg57jgrUNCivjg5Ljg6njgqos44Om44Km44Kk44OBDQor44OP44K344K644OhLOOCq+ODs+OCvw0KK+ODhOOCuCzjg57jg4rjg5YNCivjgrXjgq/jg6njgrbjg68s44OS44OH44OI44K3DQor44Ki44OZLOOCs+OCpuOCpOODgQ0KK+OCouODmSzjg57jgrXjg5Ljg60NCivjgqLjg5ks44OS44Ot44K/DQor44Ki44OZLOOCs+OCpuOCuA0KK+OCouODmSzjgqrjgrXjg6ANCivjgqLjg5ks44K/44Kr44KqDQor44Ki44Kr44KuLOODpOOCueODkuODiA0KK+OCquOCq+ODouODiCzjgrfjgrrjgqoNCivjgqjjg7Pjg4ks44Of44OB44KzDQor44Ki44Kr44Kk44K3LOODhOODjeODj+ODqw0KK+ODi+OCt+ODiizjg57jgrPjg4gNCivjgqLjgq3jg6Ljg4gs44OI44K344KqDQor44Ki44Kt44K644KtLOODnuOCteODiOOCtw0KK+ODkuODqeODkOODpOOCtyzjgrfjgrLjg57jgrUNCivjgqLjg6Hjg5/jg6Qs44Ki44Kt44OpDQor44Ki44Of44OOLOOCouOCreODkuODrQ0KK+OCouODiuODnyzjg57jgrXjgqvjgroNCivjgqLjg4rjgrbjg68s44Kr44Kq44OrDQor44Ki44Oz44OJ44KmLOODpuOCpuOCvuOCpg0KK+OCouODs+ODieOCpizjg5Ljg63jgq0NCivjgqLjgqrjg6Tjg54s44Oe44K144KtDQor44Ki44Kq44Ok44OeLOOCs+OCpuOCuA0KK+OCouOCquODpOODnizjgrfjg7PjgqTjg4ENCivjgqLjg6njgqQs44Kz44Km44Kk44OBDQor44Ki44Op44KkLOODnuOCteOCtw0KK+OCouODqeOCpCzjg57jgrPjg4gNCivjgqLjg6njgqQs44K/44Oe44KqDQor44Ki44Op44KkLOODnuOCteODpOOCuQ0KK+OCouODqeOCrSzjg5/jg6bjgq0NCivjgrnjgqzjg6/jg6ks44OI44Oi44OfDQor44Ki44K144OSLOOCt+OCsuODqw0KK+OCouOCteOCr+ODqSzjgr/jgqvjgrcNCivjgqLjgrXjg58s44OV44Of44OI44K3DQor44Ki44K144Og44OpLOOCq+ODhOODnw0KK+ODpOODnuOCt+ODiizjgqvjgrrjgqoNCivjgqLjgrXjg6os44Oe44K144KzDQor44Ki44K144K6LOODiOODouOCsw0KK+OCouODhOODnyzjg6jjgrfjg6bjgq0NCivjg5Djg7Ms44OS44Ot44Ok44K5DQor44OZ44OD44K344OnLOOCseOCpOOCpOODgQ0KK+ODgeODkCzjgqLjgrMNCivjg4Hjgqvjgq3jg6gs44OK44Kq44OS44K1DQor44OB44Og44OpLOOCv+ODn+OCqA0KK+ODieODkOOCtyzjgr/jgrHjgqoNCivjgqjjg5Djgrcs44K344On44Km44OY44KkDQor44Ko44OT44OP44OpLOODqOOCt+ODleODnw0KK+OCqOOCrOODnyzjg6bjgq3jgqoNCivjgqjjgrDjg4Es44Om44Kt44K/44KrDQor44Ko44Kw44OBLOOCteODiOOCtw0KK+OCqOOCuOODqizjgrnjgrDjg6sNCivjgqjjg7Pjg4ks44Oe44Om44OfDQor44Ko44Oz44OJLOOCv+ODhOOCqg0KK+OCqOODjuODouODiCzjg6jjgrfjg4TjgrANCivjg5Xjg4Hjg44s44OI44Kq44OrDQor44OV44K444KkLOOCquOCteODoA0KK+ODleOCuOOCpCzjg4bjg4QNCivjgqTjgrfjgqQs44K444Ol44OzDQor44Og44Op44Ok44OeLOODiOOCt+ODkuOCtQ0KK+ODleOCuOOCq+OCvyzjgr/jg4Tjg6QNCivjg5Xjgrjjgqvjg68s44Kr44K644OI44OiDQor44OV44K444Oe44OrLOODkuOCteODiA0KK+ODleOCuOODouODiCzjgq/jg4vjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44K/44OA44Oo44K3DQor44OV44K444Oi44OILOODiOOCt+OCq+OCug0KK+ODleOCuOODjizjg6Tjgrnjg4jjg6INCivjg5Xjgrjjgqos44OI44K344Ki44KtDQor44OV44K444K144KrLOOCteODiOOCtw0KK+ODleOCuOOCteODryzjg47jg6rjgqoNCivjg5XjgrjjgrXjg68s44K/44Kr44OS44OtDQor44OV44K444K/LOODnuOCteODpuOCrQ0KK+ODleOCuOOCvyzjg57jgrXjg6bjgq0NCivjg5Xjgrjjg6/jg6ks44OI44Kq44OrDQor44OV44K444Ov44OpLOODnuOCteODpuOCrQ0KK+ODleOCuOODr+ODqSzjgrfjg7Pjgrfjg6fjgqYNCivjg5Xjgqvjg4As44OV44Of44OS44OtDQor44OV44Kr44Ks44OvLOOCouODhOODkuODrQ0KK+ODleOCq+ODjizjgrHjgqQNCivjg5Xjgqvjg68s44K744Kk44K4DQor44OV44Kr44OkLOODiOOCt+OCq+OCug0KK+ODleOCq+OCtuODryzjg5Ljg4jjgrcNCivjg5Xjgq/jg4As44Kz44Km44K4DQor44OV44Kv44KkLOODkuODreOCtw0KK+ODleOCr+ODouODiCzjg5Ljg63jgr/jgqsNCivjg5Xjgq/jg6Ljg4gs44OS44Ot44Ki44KtDQor44OV44Kv44Oi44OILOODnuOCteODkuOCsw0KK+ODleOCr+ODouODiCzjgrnjgrnjg6ANCivjg5Xjgq/jgrfjg54s44OS44Ot44Om44KtDQor44OV44Kv44OI44OfLOODquODpeOCpuOCteOCrw0KK+ODleODiuOCrSzjgrfjg7PjgrgNCivjg5Xjg6vjgrXjg68s44K/44Ot44KmDQor44Ki44OT44KzLOODnuOCteODpuOCrQ0KK+ODleOCuyzjg47jg6rjgqoNCivjg5Xjgrvjgqzjg68s44Oo44K344OK44KqDQor44OV44K344OfLOODiuOCquODkuOCtQ0KK+OCruODnizjgqvjgrrjg6jjgrcNCivjgrTjg58s44Oe44Kz44OIDQor44K044OI44KmLOODjuODquOCsw0KK+OCtOODiOOCpizjg4jjg6LjgqLjgq0NCivjgrTjg4jjgqYs44OS44K144OO44OqDQor44Kw44Oz44K4LOODn+ODqA0KK+ODj+OCruODr+ODqSzjg6jjgrfjgrMNCivjg4/jgq7jg6/jg6ks44Kk44OB44Ot44KmDQor44OP44Kk44OOLOODkuOCteODqOOCtw0KK+ODj+OCq+ODnuODgCzjg47jg6rjg6bjgq0NCivjg4/jg57jg4As44Om44KtDQor44OP44Oe44OALOODpuOCreOCqg0KK+ODj+ODnuOCsOODgSzjgrHjg7PjgrgNCivjg4/jg6ks44K344Oz44Kk44OBDQor44OP44OpLOOCreODqOOCv+OCqw0KK+ODj+ODqSzjgq/jg4vjg5LjgrMNCivjg4/jg6ks44Oe44K144OK44OqDQor44OP44Op44OALOODnuOCueODnw0KK+ODj+ODqeODgCzjg5/jg4rjgrMNCivjg4/jg6njg4As44OO44Oq44KzDQor44OP44Op44KzLOOCv+OCq+ODkuODrQ0KK+ODj+ODq+ODiizjgr/jgqvjgqLjgq0NCivjg4/jgrvjgqzjg68s44K/44Kv44OkDQor44Kq44K344OeLOOCouOCreODqQ0KK+ODj+OCt+ODouODiCzjgr/jgqvjgrcNCivjg4/jgr/jg44s44Kr44K644OS44OtDQor44OP44K/44K244OvLOOCq+OCuuODn+ODgQ0KK+ODj+ODiCzjg57jgrXjgrcNCivjg4/jg4Tjg58s44Ki44K644K1DQor44OP44OD44OI44OqLOODiOODouODpuOCrQ0KK+ODj+ODpOOCq+ODryzjg4jjgrfjg5Ljg60NCivjg4/jg6Tjgqvjg68s44Ki44OE44Ot44KmDQor44OP44Ok44Kr44OvLOODiOOCt+ODkuOCsw0KK+ODj+ODpOODjizjgqLjg4TjgrcNCivjg4/jg6Tjgrss44K344Oz44K0DQor44OP44Ok44K3LOOCv+OCq+ODj+ODqw0KK+ODj+ODpOOCtyzjgqvjgqrjg6oNCivjg4/jg6Tjgrcs44Oo44K344OS44OtDQor44OP44Ok44K3LOOCseOCpOOCuA0KK+ODj+ODpOOCtyzjgrvjgqTjgr8NCivjgqTjg6Ljg4gs44Oe44K144Oo44K3DQor44OP44Ok44OELOODkuODreOCtw0KK+ODkuOCrOOCrSzjg5Ljg4fjgqLjgq0NCivjg5Ljgqzjgrcs44K544Of44KzDQor44OS44OOLOOCseODs+OCuA0KK+ODkuODqeODkOODpOOCtyzjg4rjgqrjg4gNCivjg5Ljg6njg44s44Kr44K644OS44OtDQor44OS44Op44OOLOOCseOCpOOCpOODgQ0KK+ODkuODqeOCquOCqyzjg57jg6bjg58NCivjg4/jg6njgrXjgq0s44K/44OE44OkDQor44OS44Op44OGLOODkuODh+OCqg0KK+ODkuODqeODpOODnizjg4jjgqrjg6sNCivjg5Ljg63jgqgs44Oo44K344Kr44K6DQor44OS44Ot44Kr44OvLOOCt+ODpeOCpuOCpOODgQ0KK+ODkuODreOCuyzjg5Ljg4fjgr/jgqsNCivjg5Ljg63jgrcs44OO44OW44KzDQor44OS44K144Og44ONLOOCseOCpOOCsw0KK+ODm+ODs+ODgCzjgrPjgqbjgqTjg4ENCivjg5vjg6rjgqvjg68s44OO44Oq44Ki44KtDQor44Ob44Oq44Kz44K3LOOCt+ODs+OCpOODgQ0KK+ODm+ODquOCs+OCtyzjg5Ljg63jg6bjgq0NCivjg5vjgrcs44Om44Kt44KqDQor44Ob44K344KzLOODnuOCteODkuODrQ0KK+ODkuODqeOCteODryzjgrXjg4Djg6bjgq0NCivjg5vjgr3jgqQs44K344Oz44Kk44OBDQor44OS44On44Km44OJ44KmLOOCv+OCq+OCtw0KK+ODkuODp+OCpuODieOCpizjg6bjgqbjgrnjgrENCivjgqTjg5ks44K344Oz44Kk44OBDQor44Kk44OB44Kr44OvLOODnuOCteODkuODrQ0KK+OCpOODgeOCq+ODryzjg57jgrXjg6sNCivjgqTjg4Hjgqvjg68s44Om44OfDQor44Kk44OB44OO44Of44OkLOODn+ODhOODqw0KK+OCpOODhyzjg5/jg4Tjg6bjgq0NCivjgqTjg4cs44Om44OqDQor44Kk44Ks44Op44K3LOODpOOCueODpuOCrQ0KK+OCpOOCrOODryzjgq3jg6jjgrcNCivjgqTjgrDjg4Es44K344Oz44OkDQor44Kk44Kk44OALOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCpOODgCzjg5Ljg63jgrcNCivjgqTjgqTjgrjjg54s44Kz44Km44Kk44OBDQor44Kk44Kk44OE44KrLOODjuODluOCqg0KK+OCpOOCpOOCuuOCqyzjgqvjgrrjg47jg6oNCivjgqTjgqTjgrrjgqss44Ki44Oq44K1DQor44Kk44Kr44Op44K3LOODiOODouOCrQ0KK+OCpOOCseODgCzjg4rjgqrjgq0NCivjgqTjgrHjg4As44Oe44K144OV44OfDQor44Kk44Kx44OALOOCuOODpeODsw0KK+OCpOOCseODgCzjg5Ljg4fjg4gNCivjgqTjgrHjg4rjgqws44OS44Ot44KqDQor44Of44OE44Oi44OILOODkuODreOCv+OCqw0KK+OCpOOCseODpOODnizjg5Ljg63jg6bjgq0NCivjgqTjgrHjgrYs44OS44OI44K3DQor44Kk44Kx44K244KtLOOCquOCteODoA0KK+OCpOOCr+OCvyzjg4bjg6vjg6bjgq0NCivjgqTjg57jgqQs44Oo44K344OO44OqDQor44Kk44Oe44Kk44K644OfLOODjuODquODkuODrQ0KK+OCpOODnuODoOODqSzjg5Ljg63jg6bjgq0NCivjgqTjg57jg6Djg6ks44Ko44Kk44OqDQor44Kk44Oe44OL44K3LOODiOODouODkuODrQ0KK+OCpOODiuOCrOOCrSzjgqvjgqrjg6oNCivjgqTjg4rjgqzjgq0s44Kr44OE44Om44KtDQor44Kk44OK44Ks44OvLOOCv+ODhOODpA0KK+OCpOODiuODmyzjg57jgrXjg6sNCivjgqTjg4rjg58s44OS44Ot44Of44OBDQor44Kk44OK44OE44KwLOODn+OCteOCqg0KK+OCpOODiuODqOOCtyzjgr/jg4TjgqoNCivjgqTjg44s44Kr44K644OIDQor44Kk44OO44Kq44KrLOOCt+ODs+ODpA0KK+OCpOODjuOCpuOCqCzjgr/jgqvjg6bjgq0NCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44OO44Km44KoLOODkuODh+OCq+OCug0KK+OCpOODjuOCpuOCqCzjgr/jgqvjgrcNCivjgqTjg47jgqbjgqgs44K/44Kr44Ki44KtDQor44Kk44OO44Km44KoLOODpuOCpuOCpOODgQ0KK+OCpOODjuOCpuOCqCzjgq3jgq/jgqoNCivjgqTjg6rjgrXjg68s44Ki44Kt44OS44KzDQor44Kk44K7LOODpuOCreOCqg0KK+OCpOOCu+OCrSzjgqvjg4Tjg6QNCivjgqTjgrfjg4As44Ok44K544OO44OqDQor44Kk44K344OALOODhOODqOOCtw0KK+OCquOCq+ODgCzjg4/jg6vjg58NCivjgqTjgrfjgqQs44Ko44Kk44K4DQor44Ok44Oe44OALOODkuODreODluODnw0KK+OCueOCruODj+ODqSzjg5Ljg63jgr/jgqsNCivjgqTjgrfjgqvjg68s44Kr44OE44OpDQor44Kk44K344Kr44OvLOODnuOCteOCsw0KK+OCpOOCt+OCq+ODryzjg57jgrXjg58NCivjgqTjgrfjg57jg6ss44OO44Oq44KzDQor44Kk44K344Oi44OILOOCv+ODhOOCqg0KK+OCpOOCt+ODouODiCzjg57jgrXjg5Ljg60NCivjgqTjgrfjg6Ljg4gs44Kx44Oz44K4DQor44Kk44K344OOLOOCq+OCr+OCpOODgeODreOCpg0KK+OCpOOCt+ODhOOCqyzjgrXjg4jjgrcNCivjgqTjgrfjg6/jgr8s44K/44Kv44OkDQor44Kk44K344Ov44K/LOODpuOCpuOCuA0KK+ODkuODqeODkOODpOOCtyzjgqjjgqTjgrgNCivjgqTjgrfjgrbjgq0s44Oi44OI44OO44OqDQor44Kk44K344K644KrLOODiOOCquODqw0KK+OCpOOCveODgCzjgr/jgrHjgrcNCivjg4jjgqrjgqss44OI44K344Om44KtDQor44Kv44Oq44OP44OpLOOCseOCpOOCuA0KK+OCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Kk44OI44KmLOOCqOODhOOCrQ0KK+OCpOODiOOCpizjg6jjgqbjgrgNCivjgqTjg4jjgqYs44K144OI44K3DQor44Kk44OB44Ok44OK44KuLOOCt+OCsuODkuODiA0KK+OCpOODiOOCpizjg4Tjg43jg5Ljg60NCivjg4rjgqzjgr8s44Kr44OE44OfDQor44Kk44OI44KmLOOCv+OCq+ODj+ODqw0KK+OCq+ODn+OCq+ODryzjgr/jg4Djg5/jg4QNCivjgqTjg6/jgqQs44OO44Oc44OrDQor44Kk44Ov44Kr44OvLOODhuODq+ODkuOCtQ0KK+OCpOODr+ODnyzjg4jjgrfjg5LjgrMNCivjgqTjg6/jg58s44K/44Kr44K3DQor44Kk44Ov44Oi44OILOODiOODouOCsw0KK+OCpOODr+ODiuOCrCzjg57jgrXjg5Ljg60NCivjgqTjg6/jgrXjgq0s44Kx44Kk44KzDQor44Kk44Ov44K144KtLOODleODn+OCq+OCug0KK+OCpOODr+OCuyzjg5Ljg63jg6bjgq0NCivjgqTjg6/jgrfjgr8s44Kq44K144OgDQor44Kk44Ov44K/LOOCs+OCpuOCu+OCpA0KK+OCpOODr+OCvyzjgrXjg4jjgrcNCivjgqTjg6/jgr/jg4Ys44OS44OH44KtDQor44Kk44K644OfLOODn+ODrw0KK+OCuOODs+ODjizjgr/jgqvjg6TjgrkNCivjgqvjgqzjg68s44OS44OH44KqDQor44Kr44Kk44OM44OeLOODjuODluOCqg0KK+OCq+OCuOOCvyzjgr/jgqvjg5/jg4ENCivjgqvjgrHjgqzjg68s44Kr44K644K/44KrDQor44Kr44Kt44OM44OeLOODiuOCquOCrQ0KK+OCq+ODnuODgCzjgr/jgqvjg5Ljg60NCivjgqvjg57jgr8s44OS44Ot44KtDQor44Kr44Oh44K/44OLLOOCr+ODi+OCouOCrQ0KK+OCq+ODnyzjg57jgrXjg47jg6oNCivjgqvjg5/jg6Djg6ks44Oe44K144K3DQor44Kr44Of44Ok44OeLOODnuOCteODpuOCrQ0KK+OCq+ODiuOCpuODgSzjgr/jgqvjg6bjgq0NCivjgr/jgrHjgqbjg4Es44Of44KtDQor44Kr44ON44KzLOODpOOCueODjuODlg0KK+OCq+ODjeOCsyzjg6Tjgrnjgq0NCivjgqvjg7Pjg4zjgq0s44K744Kk44Kk44OBDQor44Kr44OO44KmLOOCreODqOOCr+ODiw0KK+OCq+ODqeODj+OCtyzjg5Ljg63jgqLjgq0NCivjgqvjgrXjgqQs44Of44OO44OrDQor44OO44Og44OpLOOCqOODn+OCsw0KK+OCq+OCteOCpCzjg6Ljg6LjgrMNCivjgqvjgrss44K444Ol44Oz44Kk44OBDQor44Kr44K344Kv44OpLOODqOOCt+ODreOCpg0KK+OCq+OCt+ODoOODqSzjgrXjg4jjgrcNCivjgqvjgrfjg6/jgq4s44Kr44Oo44KzDQor44Kr44K/44OOLOODhuODq+ODkuOCtQ0KK+OCq+OCv+OCquOCqyzjg6TjgrnjgrcNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Kr44OI44KmLOODiuOCquOCrQ0KK+OCq+ODiOOCpizjgrHjgqQNCivjgqvjg4jjgqYs44Oe44K144OP44OrDQor44Kr44OI44KmLOOCv+OCq+OCouOCrQ0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjgqvjg4jjgqbjgqrjgqss44Om44Kr44OqDQor44Kr44OE44KkLOOCuA0KK+OCq+ODhOODnuOCvyzjg5/jg47jg6sNCivjgqvjg6/jg5Djgr8s44K/44Kr44KqDQor44Kr44Ov44OB44OkLOODiOOCt+OCouOCrQ0KK+OCq+ODr+ODgCzjg6rjgrvjgqQNCivjgqvjg6/jg4As44OS44Ot44Om44KtDQor44Kk44Oq44K144OvLOODleODn+OCqg0KK+OCq+ODr+OCpCzjg5/jg68NCivjgqvjg6/jgqvjg58s44Kx44Oz44K4DQor44Kr44Ov44Kr44OfLOODn+ODjuODqw0KK+OCq+ODr+ODnyzjgqLjgq3jg6kNCivjgqvjg6/jg6Djg6ks44Kx44Oz44K4DQor44Kk44K344KkLOODpOOCueOCrQ0KK+OCq+ODr+ODjizjg57jgrXjg5Ljg60NCivjgqvjg6/jg6Djg6ks44Kt44Oo44OS44OtDQor44Kr44Ov44K144KtLOODjuODluODpuOCrQ0KK+OCq+ODr+OCuyzjg4rjgqrjgq0NCivjgqvjg6/jgrss44OS44Ot44K3DQor44Kr44Ov44K7LOOCqOOCpOOCuA0KK+OCq+ODr+OCt+ODnizjgqjjgqTjgrMNCivjgqvjg6/jgr/jg4ss44Kv44OL44OS44KzDQor44Kx44Kk44OALOODnuOCteOCouOCrQ0KK+OCreODgCzjgrfjgrLjgrMNCivjgq3jg4Djg4Es44K344Ky44KqDQor44Kt44OP44OpLOODiOODouOCqA0KK+OCreOCr+OCq+ODryzjg6bjgqvjg6oNCivjgq3jg6Ljg4gs44Oe44K144OS44OHDQor44Kt44Og44OpLOOCseODs+OCpOODgQ0KK+OCq+ODnuOCvyzjg5Ljg63jg6bjgq0NCivjgqTjgq/jg58s44Oe44Om44OfDQor44Kt44OO44K344K/LOOCt+OCsuOCq+OCug0KK+OCreODjuOCpuODgSzjg57jgq0NCivjgq3jgrcs44K/44Kv44K3DQor44Kt44K344Oi44OILOOCq+OCuuODkuODrQ0KK+OCreOCpuODgSzjg4jjg6jjgqLjgq0NCivjgrPjg5As44OS44Ot44Om44KtDQor44Oi44OqLOODkuODh+OCrQ0KK+OCs+ODkOODpOOCq+ODryzjgr/jgrHjgrcNCivjgq/jg5zjgr8s44OS44OI44K3DQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCquOCquOCq+ODryzjgrfjg7MNCivjgrPjg5Djg6Tjgrcs44OG44OE44K4DQor44Kz44OQ44Ok44K3LOOCreODqOODjuODqg0KK+OCs+ODnuOCvyzjgqjjgqTjgr/jg4QNCivjgrPjg5Djg6Tjgrcs44Kr44OE44OfDQor44Kz44OQ44Ok44K3LOOCq+ODhOODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5LjgrMNCivjgrPjg4Djg54s44Ok44K544K3DQor44Kz44Ko44K4LOODhOODiOODoA0KK+OCs+OCsOODgSzjgrHjg7PjgrgNCivjgrPjg4/jgr8s44OI44K344OS44KzDQor44Kz44OS44OpLOOCreODn+OCqg0KK+ODiuOCq+OCrOODryzjg6rjgqjjgrMNCivjgrPjg6Tjg54s44Ki44Kt44OpDQor44Kz44Kk44OHLOODqOOCt+ODreOCpg0KK+OCs+OCpOODhyzjgrjjg6Xjg7MNCivjgrPjgqTjgrEs44K344Ky44OrDQor44Kz44Kk44K644OfLOODouODiOOCsw0KK+OCs+OCuOODnizjgr/jgq/jg6QNCivjgrPjgrHjgrDjg4Es44Ok44K544Oe44K1DQor44Kz44Kv44OcLOODqOOCpuOCsw0KK+OCs+ODnuODhCzjgr/jgqvjgrMNCivjgrPjg57jg4Qs44Om44Of44KzDQor44Kz44Of44OkLOODqOOCpuOCuA0KK+OCs+ODs+ODiSzjgqvjgrrjg4jjgrcNCivjgrPjg7Pjg4ks44Ki44Kt44OpDQor44Kz44Oz44OJLOODn+OCqA0KK+OCs+ODs+ODiSzjgr/jgqvjg6bjgq0NCivjgrPjg7Pjg4ks44K/44OE44KqDQor44Kz44OL44K3LOOCv+OCq+OCsw0KK+OCs+OCteOCqyzjg57jgrXjg5Ljg60NCivjgrPjgrvjgq0s44OI44K344OS44KzDQor44Kz44K344Kk44K3LOOCv+ODhOODpA0KK+OCs+OCt+OCqizjg57jgrXjg4jjgrcNCivjgrPjgrnjgrIs44OI44K344Ki44KtDQor44Kz44Km44OkLOODnuOCteODjuODqg0KK+OCs+ODpOODnizjgqvjgrrjgrcNCivjgrPjg6Tjg54s44Kq44K144OgDQor44K/44Kx44OBLOOCt+ODpeOCpuOCvuOCpg0KK+OCr+ODnCzjg4jjgrfjg6QNCivjgq/jg5ws44OE44OI44OgDQor44Kv44OcLOODleODn+OCrQ0KK+OCr+OCrOOCpCzjgr/jgqvjg6bjgq0NCivjgqTjgqvjg6njgrcs44Kr44K644OS44OtDQor44Kv44Oe44K244OvLOODjuODluOCsw0KK+OCr+ODi+ODn+ODhCzjg5LjgrXjg6jjgrcNCivjgq/jg44s44K744Kk44K3DQor44Ob44K344OOLOODiOOCt+ODpA0KK+OCr+ODqeOCt+OCsizjgrPjgqbjgrgNCivjgq/jg6rjg4/jg6ks44Of44KrDQor44OK44Kr44Ks44OvLOOCt+ODp+OCpuOCpOODgQ0KK+ODpOODiuOCruODgCzjg6bjgq3jgqoNCivjgq/jg6rjg6Tjg54s44OS44OH44Ki44KtDQor44Kv44Ot44Kr44OvLOODkuODh+ODpuOCrQ0KK+OCr+OCteOCq+ODryzjgrHjgqTjgqTjg4ENCivjgq/jgrXjg4rjgq4s44Kq44K144OgDQor44Kv44K144OOLOODkuODh+ODkuOCsw0KK+OCr+OCuyzjgrXjg4jjg6sNCivjgq/jgrfjg4As44OB44KoDQor44Kv44K544OALOOCs+OCpuOCpOODgeODreOCpg0KK+OCr+OCueOCrSzjg4HjgqjjgrMNCivjgq/jgrnjg58s44Om44K/44KrDQor44Oe44Ko44OALOOCv+ODhOODpA0KK+ODnuOCqOODgCzjgqLjgq3jgqoNCivjg57jgqjjgqvjg68s44OS44Ot44KzDQor44Oe44Ko44Kr44OvLOOCv+OCq+OCqg0KK+ODnuOCrOODquODleODgSzjg6jjgrfjgqoNCivjg57jgq3jg44s44OB44OS44OtDQor44Oe44Kt44OOLOOCseODs+OCuA0KK+ODnuODiuODmSzjg57jgrXjg6gNCivjgqLjgqzjg4Tjg54s44K/44OE44Om44KtDQor44Oe44Or44KqLOOCt+OCsuODqw0KK+ODnuODq+OCvyzjg4rjgqrjgq0NCivjg57jg6vjg6Tjg54s44Om44KrDQor44Oe44Or44Ok44OeLOODnuOCs+ODiA0KK+ODnuODq+ODpOODnizjgr/jgqvjg5Ljg60NCivjg57jg6vjg6Tjg54s44Om44Km44K4DQor44Oe44K544OALOODhuODq+ODn+ODhA0KK+ODnuOCueODgCzjg4jjgrfjg6QNCivjgqvjg7Pjg5Djg6ks44Kk44K644OfDQor44Oe44OE44OQ44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjg4Hjg4jjgrsNCivjg57jg4Tjg4As44Kv44OL44OO44OqDQor44Oe44OE44OALOODnuOCteODpuOCrQ0KK+ODnuODhOOCpCzjg5Ljg63jg6bjgq0NCivjg57jg4TjgqQs44Oo44K344OO44OqDQor44Oe44OE44KkLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+ODnuODhOOCpCzjg4Hjg6jjgrMNCivjg57jg4Tjg6Ljg4gs44Ki44OE44K3DQor44Oe44OE44Oi44OILOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg57jgrXjgqvjg4QNCivjg57jg4Tjg6Ljg4gs44K344Oz44OkDQor44Oe44OE44Kq44KrLOODn+ODmw0KK+ODiuODq+OCuyzjg6rjg6XjgqbjgrgNCivjg57jg4Tjg6Qs44OO44OW44OS44KzDQor44Oh44K244OvLOODkuODiOOCtw0KK+ODn+OCruOCvyzjg57jg6bjg58NCivjg5/jgqvjg58s44K344On44Km44K4DQor44Of44Og44OpLOOCq+OCuuODpA0KK+ODpOODiuOCrizjgrPjgqbjgqTjg4ENCivjg5/jg4rjgqvjgr8s44Oe44K144Om44KtDQor44Of44ONLOODnuOCteODpOOCuQ0KK+ODn+ODjSzjg6TjgrnjgqjjgqQNCivjg5/jg47jg68s44Kt44Oo44KoDQor44Of44K144OvLOODnuOCreOCsw0KK+ODn+OCteODryzjgr/jgqvjg5Ljg60NCivjg5/jgrfjg54s44OE44Oo44K3DQor44Of44K/44Og44OpLOODiOODouODkuODrQ0KK+ODn+ODiCzjg47jg5bjgqoNCivjg5/jg4Tjg5Ljg6ks44Oe44Oq44KzDQor44Of44OE44Kk44K3LOODnuOCteODleODnw0KK+ODn+ODhOODiuODqizjgr/jgqvjgqgNCivjg5/jgqbjg6ks44OS44Ot44Kr44K6DQor44Of44Ok44OZLOOCseODs+OCuA0KK+ODn+ODpOOCuOODnizjgrfjgrLjgq0NCivjg5/jg6Tjg6Ljg4gs44K344Ky44OrDQor44Of44Ok44Oi44OILOODiOODouODnw0KK+ODn+ODpOOCteOCqyzjg6bjgqbjgqTjg4Hjg60NCivjg5/jg6TjgrXjgqss44Kx44Oz44Kk44OB44OtDQor44Of44Ok44K344K/LOODkuODreOCqw0KK+ODn+ODpOOCt+OCvyzjgrjjg6Xjg7PjgrMNCivjg5/jg6Tjgrbjgq0s44OO44Oq44K344KyDQor44Of44Ok44K244OvLOOCq+ODhOODnw0KK+ODn+ODpOOCtuODryzjgr/jgqvjg6bjgq0NCivjg5/jgr7jg4/jgrcs44K/44Kx44OS44KzDQor44K144Kr44KkLOODkuODreOCtw0KK+ODn+OCuuODjizjg5Ljg63jgqLjgq0NCivjg5/jgrrjgqrjg4Es44K/44Kr44KqDQor44Of44K644K344OeLOOCseODs+OCuA0KK+ODn+OCuuOCvyzjgrHjg7PjgrgNCivjg6Ljg4Hjg4/jg6ks44Kv44OLDQor44Oi44OB44K644KtLOOCs+OCpuOCpOODgQ0KK+ODouODouOCuyzjgrfjg6XjgqbjgqTjg4ENCivjg6Ljg6os44OS44Ot44KtDQor44Oi44OqLOOCouOCreODkuODrQ0KK+ODouODqizjg4HjgqgNCivjg6Ljg6os44OP44K644KtDQor44Oi44OqLOODkuODh+OCrQ0KK+ODouODqizjg57jg6Ljg6sNCivjg6Ljg6rjgqvjg68s44Oe44K144OoDQor44Oi44Oq44Oi44OILOODpOOCueODkuODrQ0KK+ODouODquODouODiCzjgrPjgqbjgqTjg4ENCivjg6Ljg6rjg6Ljg4gs44Oe44OK44OWDQor44Oi44Oq44Og44OpLOOCt+ODs+OCpOODgQ0KK+ODouODquODjizjgqvjgrrjg58NCivjg6Ljg6rjgrXjg68s44Kv44OL44Kr44K6DQor44K344Oe44Kq44KrLOOCquOCteODoA0KK+ODouODquOCt+OCvyzjg6bjgqsNCivjg6Ljg6rjg6Tjg54s44OS44Ot44KzDQor44Oi44Ot44Kq44KrLOODn+ODhOODkuODrQ0KK+ODouODreODiOODnyzjg4rjgqrjgq0NCivjg6Ljg4jjgq0s44K/44OA44OI44K3DQor44Oi44OI44OOLOOCq+ODhOODpuOCrQ0KK+ODouODiOOCv+OCqyzjg5Ljg4fjgq0NCivjg6DjgrDjg6vjg54s44K/44Kv44K4DQor44Og44Kr44KkLOODqOOCt+ODnw0KK+OCouODs+ODieOCpizjgqTjg6/jgqoNCivjg4/jg40s44Kz44Km44KtDQor44Og44Op44Kr44OfLOODiOOCt+OCq+OCug0KK+ODoOODqeODnuODhCzjg4Tjg4jjg6ANCivjg6Djg6njgrfjgrIs44Kr44K644Om44KtDQor44K344Oi44Og44OpLOOCuOODpeODsw0KK+ODoOODqeOCvyzjg57jgrPjg4gNCivjg5/jg6fjgqbjgqws44K/44Kr44Om44KtDQor44OK44Ks44OP44OpLOODkuODreOCtw0KK+OCpOODiOOCpizjgqvjg4Tjg58NCivjg4rjgqzjgqQs44Kx44Kk44K/DQor44OK44Ks44KkLOODiOOCquODqw0KK+OCpOODr+ODiCzjg6jjgrfjgq0NCivjgr/jgrHjgrfjgrIs44OB44Ob44KzDQor44OK44Ks44KqLOOCouOCreODkuODrQ0KK+ODiuOCrOOCqizjg5/jg4Hjg47jg6oNCivjg4rjgqzjgqos44Kk44K144KoDQor44OV44Kv44OE44KrLOOCseOCpOOCsw0KK+ODiuOCrOOCteODryzjg5Ljg4fjgq0NCivjg4rjgqzjgrXjg68s44Ok44K544OS44OtDQor44OK44Ks44K7LOOCueOCueODoA0KK+ODiuOCrOOCt+ODnizjgqLjgq3jgqoNCivjg4rjgqzjgr/jg4ss44OV44Of44OS44KzDQor44OK44Ks44Ov44KtLOODkuODreODpOOCuQ0KK+ODiuOCrOODpOODnizjg57jgrXjg5Ljg4cNCivjg4rjgrTjg6Qs44Oi44Oq44KqDQor44OK44Kk44OI44KmLOODjuODluODpuOCrQ0KK+ODiuOCpOODiOOCpizjgrXjg4Djg5/jg4QNCivjg4rjgqvjg4As44K/44Kv44OkDQor44OK44Kr44Ks44KtLOODkuODreOCouOCrQ0KK+ODiuOCq+OCrOODryzjg4bjg6vjg47jg5YNCivjg4rjgqvjgqzjg68s44OI44K344OS44OtDQor44OK44Kr44Ks44OvLOODpOOCueODkuODrQ0KK+ODiuOCq+OCrOODryzjg57jgrXjgrcNCivjg4rjgqvjgrjjg54s44OI44Kq44OrDQor44Ob44Oq44Km44OBLOODiOODqOOCuA0KK+ODiuOCq+ODj+ODqSzjgqvjgrrjg5Ljg4gNCivjg4rjgqvjgrjjg54s44Kr44K644Om44KtDQor44OK44Kr44K444OeLOOCs+OCpuOCuA0KK+OCreOCr+OCvyzjg5/jgqsNCivjg4rjgqvjgrjjg54s44OI44K344Ki44KtDQor44OK44Kr44Oe44OrLOODiOOCt+OCsw0KK+ODiuOCq+ODoOODqSzjg6jjgrcNCivjg4rjgqvjg6Djg6ks44Oe44Kz44OIDQor44OK44Kr44Og44OpLOODgeOCqA0KK+ODiuOCq+ODoOODqSzjg47jg6rjgrMNCivjg4rjgqvjg6Djg6ks44K/44Kr44KqDQor44OK44Kr44Og44OpLOOCv+OCq+OCtw0KK+ODiuOCq+ODoOODqSzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44K344Ky44Kr44K6DQor44OP44OD44OI44OqLOODnuODiuODlg0KK+ODiuOCq+ODoOODqSzjgrXjg5bjg63jgqYNCivjg4rjgqvjg6Djg6ks44OI44Kq44OrDQor44OK44Kr44Og44OpLOOCv+ODhOOCuA0KK+ODn+ODpOODouODiCzjgqTjgrrjg6sNCivjg4rjgqvjg4vjgrcs44OS44OH44OIDQor44OK44Kr44OL44K3LOOCueODiuOCqg0KK+ODiuOCq+ODjizjg6jjgrfjgqLjgq0NCivjg4rjgqvjg44s44OB44Om44KtDQor44OK44Kr44OOLOODpOOCueODkuODhw0KK+ODiuOCq+ODjizjgqrjgrXjg6ANCivjg4rjgqvjg44s44OE44Kr44K1DQor44OK44Kr44OOLOOCseOCpA0KK+ODiuOCq+ODjizjg6jjgrfjg47jg5YNCivjg4rjgqvjgqos44K/44Kr44OS44OtDQor44OK44Kr44Kq44KrLOODnuOCteOCq+ODhA0KK+ODiuOCq+OCt+ODnizjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrfjg54s44Kr44K644OK44OqDQor44K344OK44OALOOCouOCreODqQ0KK+ODiuOCq+OCvyzjgqvjgrrjg4rjg6oNCivjg4rjgqvjg6Qs44K/44Kv44K4DQor44K144Kk44Kr44OvLOODkuODiOOCtw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrcNCivjg4rjgqvjgrbjg68s44Oe44OfDQor44OK44Oe44OELOODnuODnw0KK+ODiuODquOCvyzjgr/jgq/jgrgNCivjg4rjgrnjg44s44K/44Kr44Ki44KtDQor44ON44Oi44OILOODn+ODjeOCouOCrQ0KK+ODjeOCquOCpCzjg57jgrPjg4gNCivjg43jgros44OK44Kq44KtDQor44OL44Kk44Og44OpLOOCq+OCuuODnuOCtQ0KK+ODi+OCpOODpOODnizjg4HjgqvjgrINCivjg4vjgqTjg6Tjg54s44OS44Ot44K3DQor44OL44OO44Of44OkLOODkuODreOCtw0KK+ODi+ODjuODn+ODpCzjgqvjgrrjgqLjgq0NCivjg4vjgrcs44K/44Kr44KqDQor44OL44K344OALOODnuOCteODjuODqg0KK+ODi+OCt+ODgCzjg57jgrXjgrcNCivjg4vjgrfjg4njg44s44Oo44K344OO44OqDQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCreODiSzjgqLjgq3jg5LjgrMNCivjg4vjgrfjg6Djg6ks44Ki44Kt44OpDQor44OL44K344OKLOODgOOCpOOCpOODhA0KK+ODi+OCt+OCqizjgrjjg6Xjg7PjgrgNCivjgqTjg47jgqbjgqgs44Kr44K644OI44K3DQor44OL44K344K244OvLOOCv+OCq+OCouOCrQ0KK+ODi+OCt+OCuuOCqyzjg4jjgrfjg6QNCivjg4vjg4Pjgr8s44OS44OI44OfDQor44OO44OALOODr+OCq+OCsw0KK+ODjuODoOODqSzjgrXjg4jjgrcNCivjg47jg47jg6Djg6ks44OS44Ot44Om44KtDQor44OO44Oq44OP44K3LOOCpOOCteOCqg0KK+ODkuODjizjgqvjgrrjg6bjgq0NCivjg47jgrbjgq0s44K344OzDQor44OO44K244OvLOODnuOCteODkuODrQ0KK+ODjOODnuODjizjg47jg5bjgrMNCivjgqrjg5Pjgrss44OS44Ot44KtDQor44Kq44Oc44Kr44K/LOOCseODs+OCueOCsQ0KK+OCquODgSzjgqLjgq3jg5Ljg60NCivjg4/jgrvjgqzjg68s44Of44OE44Ki44KtDQor44Oe44OK44OZLOODkuODreODpuOCrQ0KK+OCquODgCzjgqvjg4Tjg58NCivjgqrjg4As44K344Oz44K544KxDQor44Kq44OALOODkuODh+ODkuODrQ0KK+OCquODgCzjgrjjg6Xjg7PjgrMNCivjgqrjg4Djgq/jg6ks44Ku44OnDQor44Kq44Ks44K/LOODkuODiOOCtw0KK+OCquOCrOODryzjg4jjgrfjg5LjgrMNCivjgqLjg5ks44Oo44Km44K544KxDQor44Kq44Kw44OBLOOCs+OCpuOCrQ0KK+OCquOCsOODnizjg57jgrXjg6jjgrcNCivjgqrjgrDjg6ks44K/44Oe44KtDQor44Kq44Kw44OpLOODkuODh+OCqg0KK+ODoOOCteOCtyzjg5/jg4Tjg6sNCivjgqrjgrDjg6ks44Oe44K144OS44KzDQor44Kq44Kw44OqLOODnuOCs+ODiA0KK+OCquOCquODkCzjgrHjg7PjgrgNCivjgqrjgqrjg4/jgrcs44Oo44Km44Kk44OBDQor44Kq44Kq44KkLOODkuODreOCq+OCug0KK+OCquOCquOCpOOCqCzjgrHjg7PjgrgNCivjgqrjgqrjgq/jg5ws44OP44Or44K3DQor44Kq44Kq44Kv44OeLOOCpOOCteODoA0KK+OCquOCquOCr+ODnizjg5Ljg63jgrcNCivjgqrjg44s44Kr44OE44OfDQor44Kq44Kq44OM44OeLOOCq+ODqOOCsw0KK+OCv+OCq+OCuyzjg6jjgrfjg5Ljg4cNCivjgqrjgqrjgrXjg68s44OS44OH44KtDQor44Kq44Kq44K144OvLOODkuODreOCtw0KK+OCquOCquOCteODryzjgrHjg7PjgrgNCivjgqrjgqrjgrXjg68s44K944Km44K544KxDQor44Kq44K344OeLOODnuODquOCsw0KK+OCquOCt+ODnizjg5Ljg63jgqoNCivjgqrjgrfjg54s44Of44OE44OS44OtDQor44Kq44Kq44K/LOOCt+ODs+OCuA0KK+OCquOCquOCv+OCqyzjg5Ljg63jg6bjgq0NCivjgqrjgqrjgr/jgq0s44K/44Kx44K3DQor44Kq44Kq44K/44OLLOODqOOCpuOCuA0KK+OCquOCquODhOOCqyzjg5Ljg63jg47jg5YNCivjgqrjgqrjg4Tjgqss44OG44OE44KqDQor44Kq44Kq44OvLOODnuOCs+ODiA0KK+OCquOCquODr+ODgCzjg5Ljg63jg47jg6oNCivjgqrjgqrjg6Tjg54s44OS44OI44K3DQor44Kq44K+44ONLOODjuODluODpuOCrQ0KK+OCquOCqyzjg6TjgrnjgrcNCivjgqrjgqss44OS44Ot44Ki44KtDQor44Kq44KrLOOCq+OCuuOCt+OCsg0KK+OCquOCqyzjgr/jgqvjg47jg6oNCivjgqrjgqvjg4As44K/44Kr44Oo44K3DQor44Kq44Kr44OALOODkuODiOOCtw0KK+OCquOCq+ODgCzjg57jgrXjg6bjgq0NCivjgqrjgqvjg4As44OI44Oo44Ki44KtDQor44Kq44Kr44OJ44OhLOOCreODqOOCq+ODhA0KK+OCquOCq+ODouODiCzjg6TjgrnjgrcNCivjgqrjgqvjg6Ljg4gs44Kz44Km44K4DQor44Kq44Kr44Oi44OILOODkuODreOCtw0KK+OCquOCq+ODoOODqSzjg6rjgqsNCivjgqrjgqvjg44s44Ki44Kt44OpDQor44Kq44Kr44OO44OkLOODn+ODhOODqw0KK+OCquOCq+OCqizjg6TjgrnjgrgNCivjgqrjgqvjgrbjgq0s44OS44OH44KqDQor44Kq44KtLOODkuODreODpuOCrQ0KK+OCquOCreODouODiCzjg57jgrXjg5LjgrMNCivjgqrjgq/jg6Djg6ks44OI44Oi44KzDQor44Kq44Kv44Og44OpLOODpuOCreODkuOCsw0KK+OCquOCr+ODjizjgqLjgqQNCivjgqrjg57jgr8s44Ki44Kt44Oo44K3DQor44Kq44OL44KtLOODkuODreODpuOCrQ0KK+OCquODi+ODhOOCqyzjg57jgrXjgqLjgq0NCivjgqrjg47jg4fjg6ks44Ki44Kt44OpDQor44Kq44OO44K244OvLOODkuODh+ODhOOCsA0KK+OCquOCquODi+OCtyzjgrHjg7MNCivjgqrjgqrjg4vjgrcs44Kv44OL44Oo44K3DQor44Kq44Kq44OE44KrLOODiuOCquODkuOCtQ0KK+OCquOCteODgCzjg4jjg6Ljg47jg5YNCivjgqrjgrXjgq0s44K/44Kr44K3DQor44Kq44K144OK44OfLOOCt+OCuuODqOOCtw0KK+OCquODpOODnuODgCzjg6Tjgrnjg47jg6oNCivjgqrjgrbjg68s44Kz44Km44K444Ot44KmDQor44Kq44K244OvLOOCt+ODreOCpg0KK+OCquOCtuODryzjg6Tjgrnjg47jg6oNCivjgrXjgqjjgrDjgrUs44Ok44K544OO44OqDQor44K144Ko44KtLOODqOOCt+ODkuODrQ0KK+ODiuOCq+OCuOODnizjgr/jgrHjgrcNCivjgrXjgqTjgr8s44OB44Ko44KzDQor44Kq44Ks44OvLOODpOOCueODj+ODqw0KK+OCteOCpOODiOOCpizjgqvjgrrjg5LjgrUNCivjgrXjgqTjg4jjgqYs44K/44Kr44OS44KzDQor44K144Kk44OI44KmLOODqOOCt+ODjuODqg0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrgNCivjgrXjgqvjgqQs44OS44OH44OO44OqDQor44K144Kr44KkLOOCseOCpOOCuA0KK+OCteOCq+OCpCzjgr/jgrHjgrcNCivjgrXjgqvjgqQs44K/44KvDQor44K144Kr44KkLOOCt+ODp+OCpuOCtA0KK+OCteOCq+OCpOODqizjg5Ljg63jg6bjgq0NCivjgrXjgqvjgq0s44Kt44On44Km44KzDQor44K144Kr44OeLOODnuOCteODjuODqg0KK+OCteOCq+ODnuOCrSzjg57jgrXjg4jjg6INCivjgrXjgqvjg6Ljg4gs44Oe44K144OI44K3DQor44K144Kr44Oi44OILOOCteODiOODqw0KK+OCteOCq+ODouODiCzjgrfjg6XjgqbjgqTjg4ENCivjgrXjgqvjgr8s44K/44Kr44K3DQor44K144Kr44Km44KoLOOCv+OCq+ODpuOCrQ0KK+OCteOCq+OCuuODoSzjgr/jgq/jg58NCivjg4rjgqvjg44s44OI44Oi44OS44OtDQor44K144Kv44OeLOODqOOCt+ODkuOCsw0KK+OCteODs+ODnOODs+ODnuODhCzjgqvjgrrjg5Ljg60NCivjgrXjg44s44K/44Kx44K3DQor44K144OOLOODiOOCt+ODleODnw0KK+OCteOCteOCrOODryzjg6bjgr/jgqsNCivjgrXjgrXjgq0s44Om44Oq44KzDQor44K144K144KtLOODpOOCueODpuOCrQ0KK+OCteOCteOCrSzjgqvjgrrjg6jjgrcNCivjgrXjgrXjgq0s44Kz44Km44K4DQor44K144K144K244OvLOODiOOCt+ODpuOCrQ0KK+OCteODiOOCpizjg6TjgrnjgrcNCivjgrXjg4jjgqYs44Kr44OE44OS44OIDQor44K144OI44KmLOODqOOCt+OCv+OCqw0KK+OCteODiOOCpizjgr/jgqvjg6bjgq0NCivjgrXjg4jjgqYs44OO44OW44K/44KrDQor44K144OI44KmLOODpuOCpuOCueOCsQ0KK+OCteODiOOCpizjg5Ljg4fjg6bjgq0NCivjgrXjg4jjgqYs44K144OI44K3DQor44K144OI44KmLOOCquOCteODoA0KK+OCteODiOOCpizjg57jg6bjg58NCivjgrXjg4jjgqYs44OO44OW44KqDQor44K144OI44KmLOODkuODh+ODjuODqg0KK+OCteODhOODnizjg5/jg6/jgrMNCivjgrXjg6/jgrDjg4Es44OK44Kq44OIDQor44K144Ov44KkLOODn+ODgeODkuODrQ0KK+OCteODr+ODqeOCrizjg6TjgrnjgqoNCivjgrXjg6/jgr/jg4ss44Kv44OL44KqDQor44K744Kk44K/LOOCouODhOOCtw0KK+OCu+OCrSzjg57jgrXjg57jg60NCivjgrvjgq0s44OO44OW44OS44OtDQor44K744KtLOODjuODquODpOOCuQ0KK+OCu+OCreODj+ODqSzjgqLjgq3jg6kNCivjgrvjgq3jg40s44Om44Km44K544KxDQor44K744Kt44ONLOODkuODreODpuOCrQ0KK+OCt+ODqeOCpOOCtyzjg57jgrXjg5Ljg60NCivjgrvjg7Pjgqws44OO44OW44KqDQor44K744OOLOODjuODquODpuOCrQ0KK+OCu+OCt+ODoizjgrfjg6XjgqbjgqTjg4ENCivjgrvjg4gs44K/44OE44KqDQor44K744OI44Kw44OBLOOCv+ODhOODpA0KK+ODhuODq+ODpCzjg6bjgqbjgqTjg4ENCivjgrfjgqTjg5As44Oq44KrDQor44K344OQ44OOLOODiOODouODpuOCrQ0KK+OCt+ODkOOCteOCrSzjgqTjgq/jgrMNCivjgrfjg5Djgr8s44OG44OE44Ot44KmDQor44K344OW44K144OvLOODnuOCteODleODnw0KK+OCt+ODluOCteODryzjg6jjgrfjg5Ljg60NCivjgrfjg4Es44OA44Kk44Ko44KkDQor44K344OB44K/LOOCv+OCq+ODpuOCrQ0KK+OCt+OCsuODkuOCtSzjg4jjgqrjg6sNCivjgrfjgrLjgrXjg68s44Of44Om44KtDQor44Og44Op44K/LOODquODpeOCpuOCv+ODreOCpg0KK+OCt+ODnuOCuizjgr/jgqvjg4TjgrANCivjgrfjg57jgros44K/44OE44K3DQor44Kt44K344OALOOCv+OCq+OCtw0KK+OCt+ODn+OCuizjg5/jg4HjgqoNCivjgrfjg5/jgros44Ko44Kk44Kk44OBDQor44K344Of44K6LOODkuODreOCtw0KK+OCt+ODn+OCuizjg4/jg6Tjg4jjgrcNCivjgrfjg5/jgros44Kv44Oz44K4DQor44K344Of44K6LOOCseOCpOOCsw0KK+OCt+ODn+OCuizjg5Ljg63jgrfjgrINCivjg5/jg6TjgrPjgrcs44OI44K344OS44OtDQor44K344Oi44Of44OBLOODnuODquOCsw0KK+ODiuOCq+ODkOODpOOCtyzjgqvjgqrjg6sNCivjgrfjg6LjgqrjgrUs44K/44Kx44K3DQor44K344Oi44OE44K4LOOCt+ODs+OCuA0KK+OCt+ODiuODgCzjg4HjgqvjgrcNCivjgrfjg4rjgqzjg68s44OO44OW44KqDQor44K344Oz44Oi44OILOODnuOCteODkuODrQ0KK+OCt+ODjizjg6jjgrfjg47jg6oNCivjgrfjg47jg4As44Oq44Ol44Km44K/44Ot44KmDQor44K344OO44OALOODj+ODhOOCqA0KK+OCt+ODjuOCtuOCrSzjgrfjg6fjgqbjgrgNCivjgrfjgqrjgr/jg4ss44OG44OE44OS44OtDQor44K344Kq44OkLOODhOOCq+OCtQ0KK+OCt+ODqeODmSzjgqTjg4PjgrvjgqQNCivjgrfjg6njgqzjgq0s44Oo44K344OP44OrDQor44K344Op44KkLOOCq+OCuuODkuOCsw0KK+OCt+ODqeOCpOOCtyzjgqjjg4Tjg5Ljg60NCivjgrfjg6njgqTjgrcs44OS44Ot44K3DQor44K344Op44KtLOOCq+OCuuODkuODrQ0KK+OCt+OCuuOCvyzjgrHjgqTjgrMNCivjgrfjg6fjgqbjgrgs44Kx44Kk44K/DQor44K944OO44OALOODn+ODieODqg0KK+OCueODieOCpizjg6Ljg4jjg6bjgq0NCivjgrnjgqjjg4As44K744Kk44KzDQor44K544Ko44OE44KwLOOCv+OCq+OCtw0KK+OCueOCrOOCvyzjg6TjgrnjgrnjgrENCivjgrnjgqzjg6/jg6ks44Oo44K344Ki44KtDQor44K544Ku44OOLOODqOOCt+ODjuODlg0KK+OCueOCruOCteOCrSzjg6bjgqbjgrgNCivjgrnjgq7jgrfjg54s44Oe44K144OrDQor44OK44Ks44KkLOODnuODquOCsw0KK+OCueOCruODpOODnizjg4jjgrfjg5Ljg60NCivjgrnjg58s44Kr44OE44OS44OtDQor44K544Of44K/44OLLOOCt+ODs+OCpOODgQ0KK+OCueOCteOCrSzjg5Ljg63jg6bjgq0NCivjgrnjgrnjgq0s44Kz44Km44Kk44OBDQor44K544Ok44OeLOODiOODouODjuODqg0KK+OCueOCuuOCrSzjg5/jg4HjgqoNCivjgrnjgrrjgq0s44Kx44Oz44Kk44OBDQor44K544K644KtLOOCs+OCpuOCpOODgQ0KK+OCv+OCuOODnizjgrXjg4jjgq0NCivjgrnjgrrjgq0s44K/44Kv44OkDQor44K544K644KtLOODpOOCueOCsw0KK+OCueOCuuOCrSzjg6bjgr/jgqsNCivjgrnjgrrjgq0s44Ki44Kt44KzDQor44K544K644KtLOOCouODhOOCtw0KK+OCueOCuuOCrSzjg5Ljg4fjg4jjg6INCivjgrnjgrrjgq0s44OS44OH44OI44K3DQor44K544K644KtLOODkuODh+ODiOOCtw0KK+OCueOCuuOCrSzjg5Ljg63jgq0NCivjgrfjg6Xjgq/jg6Qs44K444Ol44Oz44Kk44OBDQor44K/44OB44OQ44OKLOOCq+ODqA0KK+OCv+ODgeODpOODnizjgrPjgqbjgqTjg4ENCivjgr/jg4njgrPjg60s44Oe44K144Ki44KtDQor44K/44Ks44OvLOODnuOCteODkuODiA0KK+OCv+OCsOODgSzjg6Ljg4jjgqvjgroNCivjgr/jgrDjg4Es44OK44Kq44Om44KtDQor44K/44Kw44OBLOODjuODluODkuOCtQ0KK+OCv+OCpCzjg47jg6rjgqoNCivjgr/jgrjjg54s44K144OB44KoDQor44K/44Kr44OALOOCteODiOODqw0KK+OCv+OCq+ODgCzjgrfjgrLjg47jg5YNCivjgr/jgqvjgq4s44K544K544OgDQor44Of44Ok44Oi44OILOOCv+OCq+OCtw0KK+OCv+OCq+ODj+ODnizjg4bjg4TjgqoNCivjgr/jgqvjg4/jgrcs44Ok44K544Ki44KtDQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+OCv+OCq+ODj+OCtyzjg4Tjg4jjg6ANCivjgr/jgqvjg4/jgrcs44Oe44K144Om44KtDQor44K/44Kr44OP44K3LOODnuOCs+ODiA0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjg6rjg6XjgqYNCivjgr/jgqvjg4/jgrcs44OI44K344OS44K1DQor44K/44Kr44OP44K3LOODpOOCueOCtw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44Ok44K544OO44OqDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg6Ljg4jjg6TjgrkNCivjgr/jgqvjg4/jgrcs44Om44Kt44KoDQor44K/44Kr44OP44K3LOODpOOCueOCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44Oo44K344OS44K1DQor44K/44Kr44OP44K3LOODiOOCt+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgrXjg4jjgrMNCivjgr/jgqvjg4/jgrcs44OS44OH44KtDQor44K/44Kr44OP44K3LOOCpOODgeODreOCpg0KK+OCv+OCq+ODj+OCtyzjg47jg5bjgqLjgq0NCivjgr/jgqvjg4/jgrcs44Of44OE44OrDQor44K/44Kr44OK44K3LOOCt+ODsw0KK+OCv+OCq+ODjizjgqvjg4Tjg47jg6oNCivjgr/jgqvjgqrjgqss44OG44OE44OkDQor44K/44Kr44K7LOOCt+OCsuOCrQ0KK+OCv+OCq+OCt+ODiizjgrPjgqbjgrvjgqQNCivjgr/jgqvjgrfjg4os44OA44Kk44K144KvDQor44K/44Kr44K/LOODkuODreOCouOCrQ0KK+OCv+OCq+ODpOODnizjg5Ljg63jg6bjgq0NCivjgr/jgqvjg6Tjg4rjgq4s44K444Ol44OzDQor44K/44Kx44OQ44Ok44K3LOOCq+ODhOODnw0KK+ODn+OCq+ODnyzjgrHjgqTjgrnjgrENCivjgr/jgrHjgqQs44Oe44Kz44OIDQor44K/44Kx44KtLOODnuOCt+ODpeOCpg0KK+OCv+OCseODouODqizjg47jg5bjg5LjgrMNCivjgr/jgrHjg6Djg6ks44Kq44K144OgDQor44K/44Kx44Km44OBLOOCseODsw0KK+OCv+OCseODpCzjgrfjg6fjgqbjgqTjg4ENCivjgr/jgrHjg6Tjg54s44OI44K344Ki44KtDQor44K/44Kt44Kw44OBLOODiOOCt+OCq+OCug0KK+OCv+OCreOCt+OCvyzjg4jjgrfjg6bjgq0NCivjgr/jgq3jgrbjg68s44Ki44Kt44OpDQor44K/44Oe44KkLOOCt+OCsuODqw0KK+OCv+ODn+ODpCzjgqLjgq3jgrMNCivjgr/jg6Djg6ks44Oo44Km44K544KxDQor44K/44OK44OZLOODkuODreODpuOCrQ0KK+OCv+ODiuODj+OCtyzjg6jjgrfjg6bjgq0NCivjgr/jg4rjgqss44K344Ky44OIDQor44K/44OK44KrLOODkuODh+ODjuODqg0KK+OCv+ODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg4rjgqss44OS44Ot44KtDQor44K/44OK44KrLOODpuOCreOCsw0KK+OCv+ODiuOCqyzjg5Ljg63jgrMNCivjgr/jg4rjgqss44K444Ol44Oz44Kk44OBDQor44K/44OK44KrLOOCt+ODsw0KK+OCv+ODiuOCqyzjg57jgrXjgqvjgroNCivjgr/jg4rjgqss44K444Ol44Oz44KzDQor44Kz44OA44OeLOODqOOCt+ODkuOCsw0KK+OCv+ODiuOCqyzjgqLjgrXjgqoNCivjgr/jg4rjgqss44OO44Oq44Ki44KtDQor44K/44OK44KrLOOCteODiOOCtw0KK+OCv+ODiuOCqyzjgqrjgrXjg6ANCivjgr/jg4rjg6Djg6ks44K144OI44K3DQor44K/44Oz44OQLOOCq+OCuuODiuODqg0KK+OCv+ODi+OCsOODgSzjgrHjgqTjgrgNCivjgr/jg4vjgrDjg4Es44K444Ol44Oz44KzDQor44K/44OL44KkLOOCsuODsw0KK+OCv+ODi+ODoOODqSzjg4jjg6Ljg47jg6oNCivjgr/jg4vjg6/jgq0s44Kq44K144OgDQor44K/44Or44KkLOOCt+ODp+OCpuOCuA0KK+OCv+OCteOCrSzjgqvjgrrjg6bjgq0NCivjgr/jgrfjg60s44Oe44K144OkDQor44K/44OG44Kk44K3LOODiuOCquODpA0KK+OCv+OCpuODgSzjg6rjg6fjgqbjgrMNCivjgr/jgqbjg6ks44OS44Ot44Ki44KtDQor44OG44Op44OALOODqOOCt+OCqg0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjg4bjg6njg4vjgrcs44Oi44Oq44Om44KtDQor44OG44Op44K344K/LOODkuODreOCtw0KK+ODhuODq+OCreODiizjgqLjgq3jg6gNCivjg4jjg5ks44Ko44Oq44KzDQor44OI44Km44K044KmLOOCv+OCq+ODj+ODqw0KK+ODiOOCsOODgSzjgqjjgqTjgrgNCivjg4jjgrgs44Kr44OE44OO44OqDQor44OI44Of44OK44KsLOODnuOCteODiA0KK+ODiOODn+ODiuOCrCzjg6Tjgrnjg57jgrUNCivjg4jjg5/jgqrjgqss44OK44Kq44KtDQor44OI44Of44K/LOOCueOCsOODqw0KK+ODiOODn+ODpOODnizjg5Ljg63jgr/jgqsNCivjg4jjg43jgqzjg68s44Ki44Kt44OpDQor44OI44K344OK44OqLOOCuOODpeODs+OCsw0KK+ODiOODqOODgCzjgrPjgqbjgrgNCivjg4jjg6jjg4As44Kr44OE44OkDQor44OI44Oo44OALOODnuOCteODkuOCsw0KK+OCquOCquODouODqizjg6jjgqbjgqTjg4Hjg63jgqYNCivjg4jjgrrjgqss44OS44OH44KqDQor44Ok44Oe44Kr44OvLOODquODpeOCpuODmOOCpA0KK+ODhOODnOOCpCzjgrjjg6Xjg7PjgrMNCivjg4Tjg4Hjg4/jgrcs44Kr44OE44OfDQor44OE44OB44OOLOODn+ODjuODqw0KK+ODhOODgeODpCzjg6jjgrfjg5Ljg60NCivjg57jgq0s44OS44OH44OO44OqDQor44OE44OALOODn+ODhOODjuODlg0KK+ODhOOCrOODryzjgrHjg7PjgrgNCivjg4Tjgrgs44K144OI44K3DQor44OE44K4LOODiOODqOOCq+OCug0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4Tjgqvjg4As44OS44Ot44Om44KtDQor44OE44Kr44Oi44OILOOCreODqOOCtw0KK+ODhOODoOODqSzjgr/jgqvjg6bjgq0NCivjg4Tjg4rjgrfjg54s44Om44Kt44KqDQor44Kq44Kv44Ok44OeLOODnuODouODqw0KK+ODhOODjuODgCzjgrXjg4Djg4/jg6sNCivjg4Tjg47jgqzjgqQs44Ok44K544OO44OqDQor44OE44K344OeLOODjuODnOODqw0KK+ODhOODhOODnyzjg5Ljg63jgrcNCivjg4Tjgrrjgq0s44Kr44OE44OfDQor44OE44Or44Kq44KrLOODkuODh+ODiA0KK+OCpuODgeODgCzjg5LjgrXjgrcNCivjgqbjg4Hjg4As44Oe44K144OrDQor44Km44OB44OALOODnuOCteODleODnw0KK+OCpuODgeODgCzjg6TjgrnjgrcNCivjgqbjg4Hjg44s44Ki44Kt44OS44KzDQor44Km44OB44OO44Kv44OpLOODoeOCsOODnw0KK+OCpuODgeODpOODnizjg5/jg4Hjg4/jg6sNCivjgqbjg4Hjg6Tjg54s44K/44Kr44OO44OqDQor44Km44OB44Ok44OeLOODjuODluODkuODrQ0KK+OCpuODgCzjgrHjgqTjgrgNCivjgqbjgqjjg4As44K344Ky44OrDQor44Km44Ko44OALOODiuODhOOCsw0KK+OCpuOCqOODgCzjg6jjgrfjg4gNCivjgqbjgqjjg4As44OI44K344OP44OrDQor44Km44Ko44OP44OpLOOCt+OCsuODqw0KK+OCpuOCqOODj+ODqSzjg57jgrXjgqoNCivjgqbjgqjjg4/jg6ks44K344Oz44K4DQor44Km44Ko44K444OeLOODkuODreODpuOCrQ0KK+OCpuOCqOOCrSzjgqjjg6rjgrMNCivjgqbjgqjjg6Djg6ks44Kv44OL44OS44OtDQor44Km44Ko44OOLOOCv+OCq+ODkuODhw0KK+OCpuOCqOODjizjg4jjgq/jg5Ljg60NCivjgqbjgqjjg44s44Om44Km44K4DQor44Km44Ko44Ok44OeLOODqOOCt+OCsw0KK+OCpuOCpCzjgrHjgqTjgrnjgrENCivjgqbjg6Hjg4As44K344On44Km44Kk44OBDQor44Km44Oh44OALOOCouODhOOCtw0KK+OCpuODoeODgCzjg4Hjg4/jg6sNCivjgqbjg6Hjg4As44Kx44Oz44K4DQor44Km44Oh44OP44OpLOODnuOCs+ODiA0KK+OCpuODoeOCq+ODryzjg57jgrXjg47jg6oNCivjgqbjg6vjgrfjg4Djg4ss44Oe44K144Om44KtDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+OCpuOCteODnyzjg6bjgqbjgrMNCivjgqbjgrfjg57jg6ss44K/44OE44OS44OtDQor44Km44K344Ok44OeLOOCq+ODhOODpuOCrQ0KK+OCpuOCueOCpCzjgrPjgqbjg5jjgqQNCivjgqbjgrnjgqQs44Kq44K144OgDQor44Km44OE44OfLOOCuOODreOCpg0KK+OCteOCteOCrOODryzjgqvjgrrjgqLjgq0NCivjgr3jg6Hjg6Qs44Kx44Oz44K4DQor44Ov44OALOODnuOCteOCqg0KK+ODr+ODgCzjg57jgrXjg6jjgrcNCivjg6/jg4As44Oo44K344Ki44KtDQor44K/44OO44Km44KoLOODpuOCpuOCpOODgQ0KK+ODr+OCt+ODgCzjg5Ljg4fjgqLjgq0NCivjg6/jgr/jgqQs44Of44OB44Ki44KtDQor44Ov44K/44OK44OZLOODnuOCteODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jgqoNCivjg6/jgr/jg4rjg5ks44Kr44K644OS44K1DQor44Ov44K/44OK44OZLOOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjgq0NCivjg6/jgr/jg4rjg5ks44OI44Kq44OrDQor44Ov44K/44OK44OZLOODkuODreODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6Tjgq4s44Kr44K644KqDQor44Ok44K0LOODnuOCteODkuOCsw0KK+ODpOODj+OCrizjg4rjgqrjg5Xjg58NCivjg6Tjgq/jgrcs44Kq44K144OgDQor44Ok44Oe44OALOODrOOCpOOCrQ0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg6Tjg57jg4As44OI44Of44Ok44K5DQor44Ok44Oe44OALOODiOOCt+ODkuODrQ0KK+ODpOODnuODgCzjg4jjgrfjgqoNCivjg6Tjg57jg4As44Oo44K344KqDQor44Ok44Oe44OALOODpuOCqw0KK+ODpOODnuOCrOOCvyzjgr/jgrHjgrcNCivjg6Tjg57jgq7jgrcs44Oe44K144KoDQor44OP44OqLOODnuOCteODpuOCrQ0KK+ODpOODnuOCsOODgSzjgqvjg4TjgrcNCivjg6Tjg57jgrDjg4Es44OI44Oi44Kr44K6DQor44Ok44Oe44Kw44OBLOODiOODouODnw0KK+OCouOCquODhOOCqyzjg6jjgrfjgrXjg4gNCivjg6Tjg57jgrDjg4Es44Oe44K144OO44OqDQor44Ok44Oe44K4LOODn+ODgeOCqg0KK+ODpOODnuODouODiCzjg5Ljg63jg47jg6oNCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44Kk44OBDQor44Ok44Oe44Oi44OILOOCseODs+OCuOODreOCpg0KK+ODpOODnuODouODiCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44Ot44OV44OfDQor44Ok44Oe44Oi44OILOOCv+OCq+ODpuOCrQ0KK+ODpOODnuODouODiCzjgqLjgq3jg5Ljg4cNCivjg6Tjg57jg6Ljg4gs44OI44K344OO44OqDQor44Ok44Oe44Oi44OILOOCqOOCpOOCuA0KK+ODpOODnuODouODiCzjg57jg4rjg5YNCivjg6Tjg57jg6Ljg4gs44OI44K344Om44KtDQor44Ok44Oe44Oi44OILOODiuOCquODleODnw0KK+ODpOODnuODoOODqSzjg4jjg6LjgqvjgroNCivjg6Tjg57jg4rjgqss44Om44K/44KrDQor44Ok44Oe44K344OKLOOCt+ODs+OCuA0KK+ODpOODnuOCt+OCvyzjg6bjgq3jg5Ljg60NCivjg6Tjg57jgrfjgr8s44Oq44Oz44K444OlDQor44Ok44Oe44K344K/LOOCseODs+OCuA0KK+ODpOODnuOCt+OCvyzjg5Ljg4jjgrcNCivjg6Tjg57jg4Ys44Kx44KkDQor44Ok44Oe44Km44OBLOOCouOCreODqQ0KK+ODpOODnuOCtuOCrSzjg6bjgq3jg5LjgrUNCivjg6Tjg57jgrbjgq0s44OO44Oc44OrDQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOODiuOCrizjgqvjgrrjgqoNCivjg6Tjg4rjgq7jg4As44Kz44Km44Kk44OB44Ot44KmDQor44Ok44OK44Ku44OALOODn+ODmw0KK+ODpOODiuOCpCzjgrXjg4jjgrcNCivjg6Tjg4rjgqss44K/44OA44K3DQor44Ok44K544OALOODnuOCteODnw0KK+ODpOOCueODgCzjgqTjg6/jgqoNCivjg6Tjgrnjg4As44K744Kt44KzDQor44Ok44K544Oi44OILOOCq+OCuuODpA0KK+ODpOODhOOCqyzjg4rjgqrjgq0NCivjg6Tjgrbjg68s44Of44K644ObDQor44Oo44OALOODhuODhOODpA0KK+ODqOODieOCrOODryzjg47jg6rjgqoNCivjg6jjg4As44OS44Ot44OO44OqDQor44Oo44Kz44OP44K/LOODkuODreODpA0KK+ODqOOCs+ODpOODnizjgqTjg6/jgqoNCivjg6jjgrPjg6Tjg54s44K344Ky44OrDQor44Oo44Oi44OqLOOCouOCreODqOOCtw0KK+ODqOODjeODouODgSzjg6jjgrfjg4TjgrANCivjg6jjg63jgrrjg6Qs44OK44Kq44OS44K1DQor44Oo44K344OALOOCv+ODhOOCvuOCpg0KK+ODqOOCt+ODgCzjgr/jgqvjgrcNCivjg6jjgrfjg4As44OO44Oq44KqDQor44OV44K444K144KtLOOCs+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjg5Ljg4jjgrcNCivjg6jjgrfjg4As44OG44OE44KqDQor44Oo44K344Oe44OELOODgeODj+ODqw0KK+ODqOOCt+ODouODiCzjg6bjgqbjgrnjgrENCivjg6jjgrfjg6Djg6ks44Kr44OE44OkDQor44Kk44K344OQ44K3LOOCv+ODgOOCtw0KK+ODqOOCt+ODjizjgr/jg4Tjg6QNCivjgr/jgqvjg44s44Kx44Kk44K0DQor44Om44OP44K3LOOCt+ODp+OCpuOCsw0KK+OCqOODgOODkuODrSzjg5/jg4njg6oNCivjg4/jg6njg4As44Oe44K144Om44KtDQor44OP44Ok44K144KrLOODquODpeOCpuOCu+OCpA0KK+OCpOODiuOCrOOCrSzjg57jgrXjgq0NCivjgqTjg47jgqbjgqgs44K144OI44K3DQor44Kk44K344OP44OpLOOCv+OCq+OCtw0KK+OCs+OCuOODnizjg6Tjgrnjg5LjgrUNCivjgrPjgrnjgq4s44K344Oz44K0DQor44Kv44Oc44K/LOODiuODq+ODnw0KK+ODouODqizjgr/jgqvjgrcNCivjg4rjgqvjg5Djg6Tjgrcs44OK44Kq44OS44K1DQor44ON44Oi44OILOOCv+OCq+OCtw0KK+ODi+ODjuODn+ODpCzjgrHjgqQNCivjgqrjgqzjg68s44Oh44Kw44OfDQor44Kq44Kq44K/44OLLOODnuOCteOCsw0KK+OCu+OCrSzjgq/jg58NCivjgrfjg5bjgr/jg4ss44OE44OI44OgDQor44K344Oz44OILOODkuODreODpuOCrQ0KK+OCveODluOCqCzjg5Ljg4jjgrcNCivjgr/jgqvjg4/jgrcs44K/44Kx44K3DQor44K/44Kr44K7LOODnuODn+OCsw0KK+ODiOODqOODgCzjg5Ljg63jg5Ljg4cNCivjgqbjgqjjg4As44K344Oz44K/44Ot44KmDQor44Ok44Oe44Oi44OILOODpOOCueODpuOCrQ0KK+ODpOODnuOCuuODnyzjg5Ljg63jgrcNCivjg6jjgrfjg4As44Kz44Km44K4DQor44Ki44K144Kr44KkLOODiuODq+ODiOOCtw0KK+ODleOCr+OCvyzjgqvjgrrjg58NCivjgqvjg6/jgrXjgq0s44Kr44K644KqDQor44OS44Ot44K7LOODqOOCt+OCq+OCug0KK+OCq+OCteODj+ODqSzjgrvjg4TjgrMNCivjgqrjgrbjg68s44Kx44Kk44Kk44OBDQor44Kr44OI44KmLOOCseOCpOOCpOODgQ0KK+ODiuOCq+ODoOODqSzjgrvjgqTjgqjjgqQNCivjgr/jgrDjg4Es44OS44Ot44OgDQor44Ki44OA44OBLOODquODp+OCpuOCu+OCpA0KK+OCouOCq+OCtyzjg6jjgrfjg5LjgrUNCivjgqLjgq3jg6Tjg54s44Ko44OfDQor44Ki44Kq44KtLOOCt+ODp+OCpuOCuA0KK+OCouODqeOCrSzjg4jjg6Ljgr/jgrENCivjgqLjgrXjg5Is44OV44Of44OO44OqDQor44Ki44K144OOLOODiOOCt+ODkuOCsw0KK+OCouODr+ODjizjgqrjgrXjg6ANCivjgqLjg6/jg44s44K444Ol44Oz44K444Ot44KmDQor44OJ44Km44K4LOODiuOCquODpuOCrQ0KK+ODieOCpuOCvuODjizjgrvjgqTjg6QNCivjg5Xjg4Hjgqvjg58s44Kr44OE44Ot44KmDQor44OV44K444KkLOOCseODs+OCuA0KK+ODleOCuOOCpCzjgrPjgqbjgqTjg4ENCivjg5XjgrjjgqTjgqgs44OO44OW44OkDQor44Kz44OvLOOCt+ODpeODs+OCpOODgQ0KK+ODleOCuOOCt+ODrSzjg57jgrXjgqoNCivjg5Xjgrjjgr8s44Oo44Km44KzDQor44OV44K444K/LOODkuODreODpuOCrQ0KK+ODleOCuOODr+ODqSzjgrPjgqbjgrgNCivjg5Xjgq/jg4As44OK44Kq44Om44KtDQor44OV44Kv44OALOOCv+ODhOOCqg0KK+ODleOCr+ODgCzjgrHjg7MNCivjgrXjgqTjg4jjgqYs44Kq44K144OfDQor44OV44Kv44Ok44OeLOOCuOODpeODs+OCpOODgQ0KK+ODleODq+ODj+OCvyzjgrPjgqbjgrgNCivjgrTjg4jjgqYs44OS44Ot44Kr44K6DQor44OP44Og44OtLOOCquOCteODoA0KK+ODj+OCuyzjgr/jgq/jg5LjgrUNCivjg4/jgrfjg6Ljg4gs44Oe44K144OS44OtDQor44OP44K344Oi44OILOOCuOODpeODs+OCpOODgQ0KK+ODj+ODg+ODiOODqizjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44Kr44OE44OS44KzDQor44OP44Ok44K3LOODiOOCt+OCouOCrQ0KK+ODj+ODpOOCtyzjg57jgrXjgqvjgroNCivjg4/jg6Tjgrcs44K344Ky44Of44OEDQor44OP44Ok44K3LOODoeOCpA0KK+ODj+ODpOOCtyzjg57jgrXjg4TjgrANCivjg5Ljg5Ms44OS44Ot44Om44KtDQor44OS44Kw44OeLOOCv+OCr+ODpA0KK+ODkuODqeOCpCzjg5Ljg63jgr/jgqsNCivjg5Ljg6njgqvjg68s44OE44ON44OI44OiDQor44OS44Op44OOLOOCq+OCuuODkuOCsw0KK+ODkuODreODiuOCqyzjg5/jg47jg6sNCivjg5vjg6rjgrDjg4Es44OO44OW44Ki44KtDQor44Ob44K144KrLOOCteODiOOCtw0KK+ODm+OCveODpCzjgrvjgqTjgrgNCivjgqTjg4HjgqQs44K344Ky44Om44KtDQor44Kk44OB44Kr44OvLOODouODiOODkuODrQ0KK+OCpOOCsOODnizjgqjjgqTjgqTjg4ENCivjgqTjgqTjgrXjgqss44Oe44Om44OfDQor44Kk44Kr44OvLOOCpOODr+OCqg0KK+OCpOOCseODgCzjgqLjg6bjgrMNCivjgqTjgrHjg4As44Kk44Kv44K444Ot44KmDQor44Kk44Kx44Ks44OfLOODnuODouODqw0KK+OCpOODjuOCpuOCqCzjgrfjg63jgqYNCivjgqTjg47jgqbjgqgs44OS44K144Ki44KtDQor44Kz44OQ44Ok44K3LOODiOOCr+OCuOODreOCpg0KK+OCpOOCt+ODkOOCtyzjg6Tjgrnjg5LjgrUNCivjgqTjgrfjg4As44Oo44K344Om44KtDQor44Kk44K344Oe44OrLOODn+ODrw0KK+OCpOOCt+OCuuOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgr0s44OS44OH44Ki44KtDQor44Kk44OI44KmLOODkuODh+OCouOCrQ0KK+OCpOODiOOCpizjgqLjgq3jg5LjgrMNCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOOCteODr+OCsw0KK+OCpOODiOOCpizjg4bjg4Tjg6QNCivjgqTjg4jjgqYs44Oo44K344Of44ONDQor44Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCpOODr+OCvyzjgrXjg4jjgrcNCivjgqvjg6rjg6Qs44K744Kk44Kk44OBDQor44Ks44K144KtLOOCt+OCsuOCqg0KK+OCq+OCrCzjgqvjgrrjg5LjgrUNCivjgqvjgrLjg6Tjg54s44OE44Oo44K3DQor44Kr44K444OK44OfLOOCv+OCq+ODpuOCrQ0KK+OCq+ODn+ODkuODqeOCvyzjg5Ljg63jg6bjgq0NCivjgqvjg4rjg6Ljg6os44K/44OE44OkDQor44Kr44ON44KzLOODhuODq+OCqg0KK+OCq+ODjeOCsyzjg6jjgrfjgqoNCivjgqvjg4vjg68s44Ki44Kt44OpDQor44Kr44K144OeLOODjuODquODnuOCtQ0KK+OCq+OCuyzjg5Ljg63jg6bjgq0NCivjgqvjgrfjg6Djg6ks44OV44Of44OI44K3DQor44Kr44K/44Kq44KrLOOCseODs+OCuA0KK+OCq+ODiOOCpizjgrjjg6Xjg7PjgrMNCivjgqvjg4jjgqYs44Kx44Kk44K4DQor44Kr44OI44KmLOOCs+OCpuOCvw0KK+OCq+ODiOOCpizjgqLjgq3jg5LjgrMNCivjgqvjg4jjgqYs44OO44OW44OS44OHDQor44Kr44Ov44OBLOOCseOCpOOCsw0KK+OCq+ODr+OCsOODgSzjg4HjgrXjg4gNCivjgqvjg6/jg44s44Of44OE44KqDQor44Kr44Ov44K344OeLOODhuODhOOCuA0KK+OCreOCr+ODgSzjg4jjg6LjgqLjgq0NCivjgq3jg6Ljg4gs44Oo44K344OS44OtDQor44Kt44Og44OpLOOCq+ODhOODpA0KK+OCreODjuOCt+OCvyzjg4bjg4QNCivjgq3jgrfjg4/jg6ks44OE44Kw44Ki44KtDQor44Kt44K344Kr44OvLOODkuODh+ODpuOCrQ0KK+OCreOCvyzjg6rjgqgNCivjgq3jgr/jgqzjg68s44Of44OB44OP44OrDQor44Kt44K/44OOLOODquOCqOOCsw0KK+OCreOCv+ODpOODnizjgrvjgqTjgrMNCivjgq3jg6jjgqrjgqss44Oe44K144OoDQor44Kt44Oo44K7LOODhOOCq+OCtQ0KK+OCs+ODkOODqizjgr/jg4bjgq0NCivjgrPjg5Djg6Tjgrcs44Kr44Kq44OrDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCv+ODreOCpg0KK+OCs+ODnOODqizjgr/jg57jg58NCivjgrPjgqTjg68s44K/44Kx44K3DQor44Kz44K444OeLOODleODn+ODqA0KK+ODj+OCt+ODouODiCzjgrPjgqbjgqTjg4ENCivjgrPjg5/jg6Tjg54s44K/44Kr44OS44OtDQor44Kz44Oz44OJLOODiOODouODpuOCrQ0KK+OCs+ODs+ODiSzjg47jg6rjgrMNCivjgrPjg7Pjg4ks44Oo44Km44K544KxDQor44Kz44K344Kr44OvLOOCouOCreODleODnw0KK+OCs+ODhuOCrOODryzjgrHjg7PjgrgNCivjgrPjg68s44OO44OW44Om44KtDQor44Kv44Oc44K/LOOCt+ODp+OCpuOCpOODgQ0KK+OCr+ODnOOCvyzjg5Ljg63jg6bjgq0NCivjgq/jg4njgqYs44OP44Ok44OIDQor44Kv44KsLOODqOOCt+ODkuODrQ0KK+ODouODqizjg6bjgq3jg5Ljg60NCivjgq/jg4vjgr/jgrEs44OP44K444OhDQor44Kv44Op44Kr44KxLOODkuODreOCq+OCug0KK+OCr+ODqizjg57jgrXjg5Ljg4gNCivjgq/jgrXjg5Xjgqss44K344OO44OWDQor44Kv44Ov44OQ44OpLOODiOOCquODqw0KK+ODnuODgeODgCzjg5Ljg63jg6bjgq0NCivjg57jg6vjg6Tjg54s44Om44KtDQor44K/44Kx44Km44OBLOOCouOCreOCqg0KK+ODnuODhOODkCzjgqLjg4TjgrcNCivjg57jg4Tjg5Djg6ks44K/44Kx44OtDQor44Oe44OE44OA44Kk44OpLOODnuOCrQ0KK+ODnuODhOODouODiCzjg6jjg6rjgrMNCivjg57jg4Tjg6Ljg4gs44Oo44K344Ki44KtDQor44Oe44OE44OK44KsLOODn+ODmw0KK+ODnuODhOOCqizjg57jgrXjg6QNCivjg57jg4Tjgqos44OO44Oq44Om44KtDQor44Oe44OE44KqLOOCt+ODs+ODpA0KK+ODn+OCr+ODiyzjg6TjgrnjgrcNCivjg5/jg4rjgqzjg68s44Ov44K/44OrDQor44Of44OK44Ks44OvLOOCt+OCsuODqw0KK+ODn+ODjuODhizjg4jjg6LjgqLjgq0NCivjg5/jgr8s44Oo44K344Kv44OLDQor44Of44OI44OhLOOCv+OCseOCtw0KK+ODn+ODhOODpOODnizjgrfjg6XjgqbjgqTjg4ENCivjg5/jg6Tjg4Es44K/44Kr44OV44OfDQor44Of44Ok44K4LOOCs+OCpuOCuA0KK+ODn+ODpOOCuOODnizjg5/jg4TjgqoNCivjg5/jg6Tjgr8s44Kx44Kk44KzDQor44Of44Ok44K244KtLOOCreODqOOCouOCrQ0KK+ODn+ODpOOCtuOCrSzjg57jgrPjg4gNCivjg5/jg6Tjgrbjg4gs44Oo44K344OK44OqDQor44Of44Ok44K244OvLOODkuODreOCrQ0KK+ODn+OCvuOCsOODgSzjg6Ljg4jjgrMNCivjg5/jgrrjgqQs44Oe44K144Oo44K3DQor44Oi44Oz44OOLOOCqOOCpOOCuA0KK+ODouODqizjg5/jg4Tjg5Ljg60NCivjg6Ljg6os44OO44Oq44K544OfDQor44Oi44Oq44K/LOOCr+ODq+ODnw0KK+ODouODquOCvyzjg4jjgrfjgqLjgq0NCivjg6Ljg6rjg6Tjg54s44Oe44Oq44KzDQor44Og44Op44Kr44OfLOODquODpeOCpuOCpOODgQ0KK+ODoOODqeOCq+ODnyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg6Djg6njgqvjg58s44Of44OO44OrDQor44Og44Op44Oe44OELOOCt+ODs+OCueOCsQ0KK+ODoOODreOCvuODjizjg5Ljg63jgqLjgq0NCivjg4rjgqzjg5bjg4Es44OS44Ot44K3DQor44OK44Ks44OOLOODn+ODhOODqw0KK+ODiuOCrOOCuyzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqzjgr/jg4ss44K344ObDQor44OK44K044OkLOODkuODreOCouOCrQ0KK+ODiuOCq+OCrOODryzjgqvjgqrjg6oNCivjg4rjgqvjg5/jg4Es44K344On44KmDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg47jg6oNCivjg4rjgqvjg44s44OS44Ot44K3DQor44OK44Kr44K344OeLOODkuODreODjuODqg0KK+ODi+OCt+ODgCzjgrjjg6Xjg7MNCivjg4vjgrfjg4/jg6ks44Ki44OE44OIDQor44OL44K344Og44OpLOOCt+ODs+ODpA0KK+ODi+OCt+OCquOCqyzjgqvjgrrjg5LjgrMNCivjg47jgrDjg4Es44OO44Oc44OrDQor44OO44K7LOODnuOCteOCuuODnw0KK+OCquODkOOCvyzjg6bjgqbjgrgNCivjgqrjg4HjgqLjgqQs44Kk44Kv44KzDQor44Kq44OB44Ki44KkLOODkuODh+ODkuOCsw0KK+OCquOCrOODryzjgr/jgqvjgrcNCivjgqrjgqzjg68s44Oe44K144OIDQor44Kq44Ks44OvLOOCv+ODn+ODpA0KK+OCquOCrOODryzjgqvjg4Tjg4jjgrcNCivjgqrjgq7jg44s44Oe44Om44OfDQor44Kq44Kw44OpLOOCv+OCq+OCouOCrQ0KK+OCs+ODs+ODiSzjg6Tjgrnjg6bjgq0NCivjgqrjgqrjgqgs44Oe44K144Of44OBDQor44Kq44Kq44Ks44KtLOOCuOODreOCpg0KK+OCquOCquODi+OCtyzjg47jg6rjgqLjgq0NCivjgqrjgqrjg44s44Oe44K144Of44OBDQor44Kq44Kq44K/LOODkuODreOCtw0KK+OCquOCt+ODrSzjgqvjgrrjgrfjgrINCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kq44K/44K344OtLOODkuODh+OCrQ0KK+OCquOCquODhCzjg57jgrXjgqvjgroNCivjgqrjgqrjg4Qs44Oh44Kw44OfDQor44Kq44Kq44Ok44KuLOOCqOOCpOOCuA0KK+OCquOCquODpOODnizjg4Hjg4/jg6sNCivjgqrjgqvjg6Ljg4gs44OS44Ot44OW44OfDQor44Kq44Kr44Ok44OeLOODn+ODhOODqOODqg0KK+OCquOCseOCv+ODiyzjgr/jg4TjgrMNCivjgqrjgq/jg6Tjg54s44Kv44Of44KzDQor44Kq44OO44OH44OpLOODkuODh+ODiOOCtw0KK+OCquOCtuODryzjg5/jg47jg6sNCivjgrXjgqTjg4jjgqYs44Kr44K644OS44OHDQor44K144Kk44OI44KmLOODhuODq+OCqg0KK+OCteOCpOODiOOCpizjgr/jgqvjg47jg5YNCivjgrXjgqvjgrDjg4Es44OS44Ot44Kr44K6DQor44K144Kr44OK44KrLOODouODiOODoA0KK+OCteOCq+ODi+ODryzjg6jjg6rjgrMNCivjgrXjgqvjgqbjg4Es44OI44K344K/44KrDQor44K144Kv44Op44KkLOODhOODiOODoA0KK+OCteOCr+ODqeOCpCzjg57jgrXjg6bjgq0NCivjgrXjg44s44K/44Kv44OkDQor44K144K144KtLOODnuOCteODnw0KK+OCteOCteOCrSzjgqjjg6oNCivjgrXjgrXjgq0s44Oq44KoDQor44K144K144OeLOODnuOCteOCq+OCug0KK+OCteODiOOCpizjgr/jgrHjg6QNCivjgrXjg4jjgqYs44OS44Ot44Om44KtDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCteODiOOCpizjg5/jg68NCivjg4vjgrfjg57jgr8s44OG44OE44KqDQor44K144Ov44OALOODnuOCteODkuOCtQ0KK+OCu+ODs+ODkCzjg6bjgqbjgqTjg4ENCivjgrvjg4gs44Oo44K344OO44OqDQor44K344OW44OkLOODpuOCreOCqg0KK+OCt+OCpCzjg5/jgrXjgrMNCivjgrfjg57jg4As44Kz44Km44OY44KkDQor44K344Oe44OALOODn+OCqA0KK+OCquOCq+ODouODiCzjg57jgrXjg4jjgrcNCivjgrfjg4rjgqzjg68s44K144OB44KoDQor44K344Oz44Kr44OvLOODkuOCteODpA0KK+OCt+ODs+OCreODpeOCpizjg57jgrXjg6bjgq0NCivjgrfjg47jg4As44OG44Or44KoDQor44K344OO44OP44OpLOOCu+OCpOOCpOODgQ0KK+OCouOCteOCq+ODryzjgqvjgqrjg6sNCivjgrfjgqrjg4/jg6ks44Oe44K144OIDQor44K344Ot44K/LOOCq+ODhOODkuODrQ0KK+OCueOCruODouODiCzjgqvjgrrjg5Ljg4cNCivjgrnjgq7jg6Tjg54s44Kt44Oo44K/44KrDQor44K544Kw44OBLOODjuODluOCsw0KK+ODouODreODiOODnyzjg4/jg6vjgrMNCivjgrnjgrrjgq0s44Oe44K144OV44OfDQor44K/44Kw44OBLOOCouOCreOCqg0KK+OCv+OCsOODgSzjg6bjgqbjgrgNCivjgr/jg4/jg6ks44OS44Ot44Om44KtDQor44K/44Kr44KuLOODqOOCt+OCqg0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgqoNCivjgr/jgqvjgqQs44Kx44Oz44K4DQor44K/44Kr44Ok44OeLOOCq+OCuuOCsw0KK+OCv+OCsSzjg4rjgqrjgq0NCivjgr/jgrHjg5Djg6Tjgrcs44Oq44Ol44Km44K4DQor44K/44Kx44Kr44OvLOOCuOODpeODs+OCsw0KK+OCv+OCseOCpuODgSzjgqvjg5vjg6sNCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44K/44Kx44Km44OBLOODkuODh+OCrQ0KK+OCv+ODn+ODpCzjg57jgrXjgqvjgroNCivjgr/jg6Djg6ks44OS44Ot44K3DQor44K/44OK44OZLOODnuOCteODkuODrQ0KK+OCv+ODiuOCqyzjgrHjgqTjgrMNCivjgr/jg4rjgqss44OO44OW44KzDQor44K/44OK44KrLOODhOODqOOCtw0KK+OCv+ODi+OCsOODgSzjgqLjg4TjgrcNCivjgr/jg4vjgrDjg4Es44Kr44K644OS44OtDQor44K/44OL44Og44OpLOOCv+ODhOOCqg0KK+OCv+ODjuOCpuOCqCzjgqLjgq3jg5Ljg60NCivjgr/jg6vjgrXjg68s44Ki44Kt44KzDQor44K/44K344OtLOODiOOCt+ODj+ODqw0KK+ODhuODqeODgCzjg6bjgq3jg5LjgrMNCivjg4jjgqbjgqws44OS44OH44Of44ONDQor44OI44Ks44K3LOOCt+OCsuOCqg0KK+ODiOOCpuOCtOOCpizjgrfjg7Pjg6QNCivjg4jjgq/jg4rjgqws44Ki44Ok44KzDQor44OI44Oi44OOLOOCq+OCuuODnw0KK+ODiOODqOODgCzjg6jjgqbjgrjjg63jgqYNCivjg4Tjg4Hjg6Qs44OS44Ot44Ki44KtDQor44OE44Kr44OP44OpLOODjuODluODkuODrQ0KK+OCpuODqeOCteOCrSzjg6bjgqbjgrgNCivjg6/jg4As44OI44Oi44Ok44K5DQor44Ov44OALOODrOOCpOOCsw0KK+ODr+OCv+ODiuODmSzjg57jgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OV44Of44KqDQor44Ok44Ku44OM44OeLOOCseOCpOOCsw0KK+ODpOODnuODgCzjg4jjgrfjgqLjgq0NCivjg6Tjg57jg4As44OS44K144K3DQor44Ok44Oe44OALOOCseOCpOOCuA0KK+ODpOODnuODouODiCzjg57jgrXjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44OS44OH44OIDQor44Ok44Oe44Oi44OILOOCv+ODhOODpA0KK+ODpOODnuODouODiCzjg6bjgq3jg5Ljg60NCivjg6Tjg57jg4rjgqss44OB44OS44OtDQor44Ok44Oe44OK44KrLOOCq+OCquODqw0KK+ODpOODnuOCt+OCvyzjg57jgrXjg5Ljg60NCivjg5LjgrDjg4Es44K444Ol44Oz44K4DQor44Ok44Oe44K244KtLOODleODn+ODjg0KK+ODpOODiuOCrizjg5Ljg63jgrcNCivjg6Tjgrnjg4As44OO44OW44Om44KtDQor44Ok44K544KoLOODiOOCt+ODpA0KK+ODqOOCs+OCqCzjg47jg5bjgqLjgq0NCivjg6jjgrPjg6Tjg54s44Oq44Ko44KzDQor44Oo44ON44OP44OpLOOCs+OCpuOCpOODgQ0KK+ODqOODjeODn+ODhCzjg57jgrPjg4gNCivjg6jjg6rjg57jg4Qs44OI44Oi44KzDQor44Oo44K344OALOODleODn+ODkuODrQ0KK+ODqOOCt+ODjizjg5/jg4Tjg5Ljg60NCivjg6jjgrfjgr/jgq0s44Kq44K144OgDQor44Om44Kr44OvLOOCuOODpeODs+ODpA0KK+ODpuODqizjg4jjg6LjgqoNCivjg6Ljg6os44K/44Kr44OS44K1DQor44K144K144KtLOOCq+ODhOODkuOCsw0KK+OCt+ODqeODj+ODnizjgr/jgrHjg5Ljg60NCivjg4bjg7Pjg5Hjgq8s44Om44Km44Kk44OB44OtDQor44Km44OB44OALOODiuOCquODpA0KK+ODpOODnuOCpuODqSzjg4jjgqrjg6sNCivjg57jg4TjgrDjg54s44OV44Of44KzDQor44Ki44OZLOODkuODreODpuOCrQ0KK+OCouODmSzjgqvjg4Tjg58NCivjgqLjg5ks44Kr44K644KqDQor44Ki44OZLOODiuOCquOCouOCrQ0KK+OCouODgOODgSzjg4rjg4rjgqoNCivjgqLjgqTjg4/jg6ks44OE44Oo44K3DQor44Ki44K444OeLOODpOOCueOCouOCrQ0KK+OCouOCq+OCteOCqyzjg4jjgqrjg6sNCivjgqLjgq3jg6Ljg4gs44Kz44Km44K+44KmDQor44Ki44Kt44Ok44OeLOOCv+OCq+OCtw0KK+OCouOCreODpOODnizjgr/jg4Tjg6QNCivjgqLjgq/jg40s44OS44Ot44K3DQor44Ki44Oe44OOLOODnuODiuODlg0KK+OCouODnuODjizjg4HjgqLjgq0NCivjgqLjg6Hjg5/jg6Qs44Oe44K144OE44KwDQor44Ki44Oz44OJ44KmLOODn+OCrQ0KK+OCouODs+ODieOCpizjg5/jg68NCivjgqLjg7Pjg4njgqYs44Kr44K644KqDQor44Ki44Oz44K444KtLOODpuOCpuOCsw0KK+OCouODs+ODmuOCpOOCuCzjgrfjg6Xjg7PjgqTjg4ENCivjgqLjgqrjgq0s44Oo44K344KzDQor44Ki44Kq44KtLOOCt+OCsuODj+ODqw0KK+OCouOCquOCrSzjg6bjgq3jgrMNCivjgqLjgqrjgq0s44K444Ol44OzDQor44Ki44Kq44KtLOODiOOCt+OCouOCrQ0KK+ODj+ODqeOCt+ODnizjg6rjgqsNCivjgqLjgqrjgq0s44OE44OI44OgDQor44Ki44Kq44KtLOODiuOCquODkuOCtQ0KK+OCouOCquODpOOCrizjgr/jgqvjg6bjgq0NCivjgqLjgqrjg6Tjg54s44Oo44Km44Kk44OBDQor44Ki44Kq44Ok44OeLOOCseOCpOOCueOCsQ0KK+OCouODqeOCpCzjgrPjgqbjgqTjg4ENCivjgqLjg6njgq0s44Oe44Kz44OIDQor44Ki44Op44KtLOOCq+ODhOOCuA0KK+OCouODqeOCvyzjg5/jgq0NCivjgqLjg6njg6Qs44K344Oz44Kk44OBDQor44Kz44OQ44Ok44Kr44OvLOODpOOCueODkuODrQ0KK+OCouODquOCvyzjg4rjg6vjg5Ljg4gNCivjgqLjgrXjg5As44Oo44K344Om44KtDQor44Ki44K144KrLOODiOODouODgeOCqw0KK+OCouOCteOCr+ODqSzjgr/jg4TjgqoNCivjgqLjgrXjg44s44K344Ol44Km44K4DQor44Ki44K144OOLOODiOODouOCouOCrQ0KK+OCouOCt+ODmSzjg57jgrXjg5LjgrMNCivjgqLjg6/jg5/jg6Qs44OS44Ot44Om44KtDQor44Ki44K244OfLOODhOODiOODoA0KK+OCouOCvOODpOODiuOCrizjg5Ljg63jg58NCivjgqLjgrrjg54s44Oq44KoDQor44Ki44K644OeLOOCv+OCq+ODpuOCrQ0KK+OCouOCuuODnizjg4rjgqrjg6bjgq0NCivjg5Djg5As44Oo44K344Kr44K6DQor44OQ44OQLOOCq+ODhOODpuOCrQ0KK+ODkOODkCzjg4DjgqTjgrnjgrENCivjg5Djg4rjgqss44Kr44K644OkDQor44K144K/44KxLOOCseOCpOOCsw0KK+ODgeODkCzjg6Ljg4jjg4/jg6sNCivjg4Hjgq7jg6ks44OO44OW44OS44KzDQor44OB44OP44OpLOOCv+OCq+ODleODnw0KK+ODgeOCq+OCpCzjgqLjg4TjgrcNCivjg4Hjg6Xjgqbjg54s44K/44Kx44K3DQor44OA44KkLOODnuOCteODkuODrQ0KK+ODgOOCpOOCqizjg5Ljg4fjgq0NCivjg4Djg4Ys44OS44Ot44K3DQor44OH44Kw44OBLOOCs+OCpuOCuA0KK+ODh+ODryzjgqjjg5/jgrMNCivjg4njgqQs44K/44Kk44K+44KmDQor44Ko44OT44K144OvLOODkuODreODn+ODhA0KK+ODiuOCq+ODoOODqSzjgr/jgqvjgrMNCivjgqjjgqTjg6Ljg6os44OP44Or44OfDQor44Ko44Oz44OJLOODiuOCquOCrQ0KK+OCqOODs+ODiSzjgr/jgqvjgqoNCivjgqjjg47jg6Ljg4gs44Kx44Kk44KzDQor44OV44K444KkLOODkuODreOCq+OCug0KK+ODleOCuOOCpCzjgrHjg7PjgqTjg4Hjg60NCivjg5XjgrjjgqQs44K/44OE44OO44OqDQor44OV44K444KkLOODn+ODhOODqOOCtw0KK+ODleOCuOOCpCzjg4jjgrfjgqLjgq0NCivjg5Xjgrjjgqvjg68s44K344OO44OWDQor44OV44K444Oi44OqLOOCouOCreOCsw0KK+OCouOCquOCrSzjgqLjgq3jg6kNCivjg5Xjgrjjg6Ljg4gs44OK44Kq44OkDQor44OV44K444Kq44KrLOODhuODhOODreOCpg0KK+ODleOCuOOCvyzjg6Tjgrnjg5LjgrUNCivjg5Xjgrjjgr8s44Og44OE44KqDQor44OV44Kr44KqLOOCt+ODs+OCpOODgQ0KK+ODleOCr+ODgCzjgqvjg4Tjg5LjgrMNCivjg5Xjgq/jg4As44OS44Ot44K3DQor44OV44Kv44KkLOODkuODh+OCqg0KK+ODleOCr+OCpCzjgrPjgqbjgrgNCivjg5Xjgq/jg6Ljg4gs44OS44OH44K/44KrDQor44OV44Kv44K344OeLOODkuODh+ODjuODlg0KK+ODleOCr+OCt+ODnizjg47jg5bjgrMNCivjg5Ljg44s44K144OBDQor44OV44Kv44K244OvLOOCreODp+OCpuOCsw0KK+ODleOCr+OCtuODryzjg5/jgq3jgrMNCivjg5Xjg4rjg4As44Om44Km44KzDQor44OV44Or44OA44OGLOOCseOCpOOCsw0KK+ODleODq+ODpCzjgrHjgqTjgrnjgrENCivjg5Xjgr/jg6Djg6ks44Of44Kt44OkDQor44OK44Kr44Og44OpLOODouODiOODkuOCtQ0KK+OCtOODiOOCpizjgrfjgrLjgq0NCivjgrTjg4jjgqYs44Kr44K644OkDQor44K044OI44KmLOOCq+OCpOODgeODreOCpg0KK+OCtOODiOOCpizjg6jjgqbjgrMNCivjg4/jg5As44Oo44Km44KzDQor44OP44OB44Ok44OeLOODnuOCteODnw0KK+ODj+OCruODr+ODqSzjgrfjg7MNCivjg4/jg57jg5ks44K/44Kr44Om44KtDQor44OP44Oe44OALOODqOOCt+ODnw0KK+ODj+ODnuODgCzjgr/jgqvjg5Ljg4cNCivjg57jgqjjgqrjgqss44OS44OI44K3DQor44OP44OK44OfLOODpOOCueODkuODhw0KK+ODj+ODiuOCquOCqyzjgqLjgq3jgrMNCivjgrvjgrbjgqQs44OK44Kq44KtDQor44OP44OpLOODquODp+OCpuOCuA0KK+OCteODiOOCpizjgrvjgqTjgrQNCivjg4/jg6ks44Ki44OE44K3DQor44OP44Op44OALOODiuODhOODnw0KK+ODj+ODqeODgCzjgqjjgqTjgqTjg4ENCivjg4/jg6njg4As44Kr44K644OS44KzDQor44OP44Op44OALOODnuOCteOCouOCrQ0KK+ODj+ODqeODgCzjg5/jg4Tjg47jg6oNCivjg4/jg6rjg54s44OK44Kq44KtDQor44Ob44Oz44OeLOODjuODluOCouOCrQ0KK+ODj+ODq+ODpOODnizjgrfjgrLjg6sNCivjg4/jgrss44Oo44Km44Kk44OBDQor44OP44K744Ks44OvLOOCv+ODhOOCqg0KK+ODj+OCu+OCrOODryzjg6Tjg6jjgqQNCivjg4/jgrvjgqzjg68s44Kx44Oz44K/44Ot44KmDQor44OP44K744Ks44OvLOOCouOCreODkuOCsw0KK+ODj+OCt+OCsOODgSzjg5Ljg4jjgrcNCivjg4/jgrfjg6Ljg4gs44Kr44OE44KzDQor44OP44K344Oi44OILOOCq+OCuuODpA0KK+ODj+OCt+OCuuODoSzjgrPjgqbjgr/jg63jgqYNCivjg4/jgrfjgrrjg6Es44Of44OvDQor44OP44K344K644OhLOOCt+ODpeODs+OCueOCsQ0KK+ODj+OCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jgr/jg44s44OB44Kr44OpDQor44OP44K/44OOLOOCq+OCuuODiOODog0KK+ODj+ODiOODqizjg4rjgqrjgq0NCivjg4/jg4Pjg4jjg6os44K/44Kx44K3DQor44OP44OD44OI44OqLOODqOOCpuOCpOODgQ0KK+ODj+ODg+ODiOODqizjgqLjgq3jg5LjgrMNCivjg4/jg4Pjg4jjg6os44Om44KtDQor44OP44OD44OI44OqLOOCteODiOOCtw0KK+ODj+ODg+ODiOODqizjg57jgrXjgq0NCivjg4/jg4Pjg4jjg6os44Ov44K/44OrDQor44OP44Ok44Kr44OvLOOCseOCpOOCsw0KK+ODj+ODpOOCq+ODryzjg4rjgqrjg58NCivjg4/jg6Tjg58s44K544Of44OS44OIDQor44OP44Ok44K3LOODkuODh+OCouOCrQ0KK+ODj+ODpOOCtyzjg6bjg5/jgrMNCivjg4/jg6Tjgrcs44Oe44K144K/44KrDQor44OP44Ok44K3LOODnuODpuODnw0KK+ODj+ODpOOCtyzjg6Tjgrnjg5Ljg60NCivjgrXjgrXjgr/jg4ss44Ki44Kt44OpDQor44OP44Ok44K3LOODnuOCteODjuODqg0KK+ODj+OCtuODnizjgrvjgqTjgqTjg4ENCivjg5jjg7Pjg58s44Kr44OK44KzDQor44OS44OTLOODiOODouODnw0KK+ODkuODgOOCqyzjg4jjgqbjgrMNCivjg5Ljg4Djgqss44Om44Km44KzDQor44OS44OA44KrLOOCv+ODreOCpg0KK+ODkuOCqOODgCzjg5/jg4HjgqvjgroNCivjg5Ljgqzjgq0s44K344On44Km44K4DQor44OS44Ks44K3LOODqOOCt+ODkuOCtQ0KK+ODkuOCpOODieODoSzjg5Ljg63jg5/jg4ENCivjg5Ljgrjjgq/jg60s44K744Kk44Kk44OBDQor44OV44Kv44KkLOOCpOOCteOCqg0KK+ODkuODnizjg6jjgrfjgq0NCivjg5Ljgqrjgq0s44OI44Km44Oh44KkDQor44OS44Op44KkLOODnuODqg0KK+ODn+OCrSzjg57jgrXjg6bjgq0NCivjg5Ljg6njg44s44OV44Kt44OoDQor44OS44Op44OOLOOCq+OCuuODkuODrQ0KK+ODkuODqeOCvyzjgrfjg63jgqYNCivjg5Ljg6njg4Tjgqss44OV44Of44Kr44K6DQor44Ob44OALOODkuODreOCrQ0KK+ODkuODqeODpOODnizjg4rjgqrjgrMNCivjg5Ljg63jg5ks44Kt44Kv44OfDQor44OS44Ot44KkLOODnuOCteODkuODrQ0KK+ODkuODreOCteODryzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrXjg68s44OK44Kq44KzDQor44OS44Ot44K544KoLOOCuOODpeODs+OCsw0KK+ODkuODreOCvyzjgqrjgrXjg6ANCivjg4/jg6Tjg54s44Om44Km44KzDQor44OS44Ot44Ov44K/44OqLOOCteODpuODqg0KK+ODkuOCteODouODiCzjg5/jgqvjgrMNCivjg5LjgrXjg44s44Oo44K344Ki44KtDQor44OS44K144Om44KtLOODpuOCq+ODqg0KK+ODkuOCt+ODgCzjg5Ljg63jgrcNCivjg5Ljgrfjgr/jg4ss44Ok44K544K3DQor44Ov44OALOODleODn+OCqA0KK+ODkuODpOODnizjg47jg5bjg5LjgrMNCivjgqLjg6rjgq/jg6ks44Om44K/44KrDQor44Ob44Oz44OALOODn+ODjuODqw0KK+ODm+ODs+ODgCzjgrHjgqTjgrnjgrENCivjg5vjg7PjgrTjgqYs44Oe44K144OIDQor44Ob44Oz44OeLOODpuOCpuOCpOODgQ0KK+ODm+ODs+ODnizjgqLjgq3jg47jg5YNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44K/DQor44Ob44OqLOODnuODiuODlg0KK+ODm+ODqizjgqLjgq3jg4gNCivjg5vjg6rjg5ks44OI44K344Om44KtDQor44Ob44Oq44KoLOOCouOCreODjuODqg0KK+ODm+ODquOCqCzjg57jgrXjg5LjgrMNCivjg5vjg6rjgqgs44K/44OA44K3DQor44Ob44Oq44Km44OBLOODqOOCt+ODleODnw0KK+ODm+OCt+ODkCzjg4jjgqrjg6sNCivjg5vjgrfjgqvjg68s44OS44OH44KqDQor44Kr44OI44KmLOODiuOCquOCrQ0KK+ODm+OCt+ODiizjgrPjgqbjgqTjg4ENCivjg5vjg6os44OO44Oq44Om44KtDQor44Ob44K344OOLOOCv+OCq+OCtw0KK+ODm+OCveODgCzjg47jg5bjgqoNCivjg5vjg4Pjgr8s44K144Kq44OqDQor44Ob44OB44OJLOOCv+OCq+ODpA0KK+OCpOODluOCqyzjg6jjgrfjg4bjg6sNCivjgqTjg4Hjgqvjg68s44OS44OI44K3DQor44Kk44OB44Kr44OvLOODnuODquOCsw0KK+OCpOODgeODnuOCuSzjg4Tjg4jjg6ANCivjgqTjg4Hjg47jgrss44Kr44OE44OfDQor44Kk44OHLOODnuOCteODkuOCsw0KK+OCpOOCrOODqeOCtyzjg57jgrXjg4gNCivjgqTjgqzjgr8s44Ko44Kk44Kk44OB44Ot44KmDQor44Kk44KkLOODpuODquOCsw0KK+OCpOOCpOODgCzjg57jgrXjg6jjgrcNCivjgqTjgqTjg4As44Oe44K144Om44KtDQor44Kk44Kk44OALOOCt+ODs+OCuA0KK+OCpOOCpOODjizjgqTjg4Hjg63jgqYNCivjgqTjgqTjg6jjg6os44Of44OB44OP44OrDQor44Kk44Kk44K644KrLOODnuOCs+ODiA0KK+OCpOOCq+ODq+OCrizjgqvjg4Tjg6QNCivjgqTjgqvjg68s44Kx44Kk44K544KxDQor44Kk44Kx44OBLOODnuODnw0KK+OCpOOCseODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjgrHjg4As44Oi44OI44OP44OrDQor44Kk44Kx44OALOOCv+OCq+OCsw0KK+OCpOOCseODgCzjgr/jgqvjg6bjgq0NCivjgqTjgrHjgqzjg58s44OI44Oi44OS44OtDQor44Kk44Kx44K444OqLOOCq+OCuuODpA0KK+OCpOOCseOCv+OCrSzjgq/jg4vjgqrjg58NCivjgqTjgq/jg6Ljg4gs44K344OzDQor44Kk44Oe44KkLOOCv+OCseOCtw0KK+OCpOODnuOCpCzjg6zjgqTjgrMNCivjg5vjgr3jgqQs44Kx44Oz44K/44Ot44KmDQor44Kk44Oe44KkLOOCteODluODreOCpg0KK+OCpOODnuODi+OCtyzjgr/jgrHjgrcNCivjgqTjg4rjg4As44OP44K444OhDQor44Kk44OK44Ks44KtLOODnuODiuODlg0KK+OCpOODiuOCsizjgrHjg7PjgqTjg4ENCivjg4/jgrbjg54s44OS44K144Oi44OIDQor44Kk44OOLOOCuOODpeODsw0KK+OCpOODjuODnuOCvyzjgrHjgqTjgr/jg63jgqYNCivjgqTjg47jgqbjgqgs44Oq44KoDQor44Ok44K544Kr44OvLOOCv+OCq+ODkuODiA0KK+ODj+ODqyzjg4jjgqrjg6sNCivjgqTjg47jgqbjgqgs44OG44Or44KqDQor44Kk44OO44Km44KoLOODhOODiOODoA0KK+OCpOODjuOCpuOCqCzjg5Xjg5/jg47jg6oNCivjgqTjg47jgqbjgqgs44OS44Ot44OS44K1DQor44Kk44Kq44KtLOODnuOCteODn+ODgQ0KK+OCpOODquOCqCzjg47jg5bjg6bjgq0NCivjgqTjgrXjgqss44OI44Kq44OrDQor44Kk44K144KrLOODr+OCv+ODqw0KK+OCquOCquODouODqizjgrHjg7PjgqTjg4Hjg60NCivjgqTjgrfjg5Djgrcs44Oe44OK44OWDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+ODgCzjgqbjg6njg6kNCivjgqTjgrfjg4/jg6ks44Oo44K344OIDQor44Kk44K344OP44OpLOODj+ODq+OCqg0KK+ODkuODqeODiCzjg5Ljg4fjgqoNCivjgqTjgrfjgqQs44Kx44Kk44K444Ot44KmDQor44Kk44K344KkLOODn+OCreOCqg0KK+OCpOOCt+OCpCzjgqLjg4TjgrcNCivjgqTjgrfjgqQs44OP44Or44KqDQor44Kk44K344KkLOOCseOCpOOCuA0KK+OCpOOCt+OCpCzjg57jgrXjgrMNCivjg4/jg43jgqTjgrcs44K344Oz44K544KxDQor44Kk44K344KkLOODpOOCueOCtw0KK+OCpOOCt+OCq+ODryzjg6jjgqbjgrMNCivjgqTjgrfjgqvjg68s44Oo44Km44K544KxDQor44Kk44K344Kr44OvLOODqOOCt+ODkuOCsw0KK+OCpOOCt+OCq+ODryzjg6bjgqsNCivjgqTjgrfjgqvjg68s44OO44Oq44KzDQor44Kk44K344Kq44KrLOODqOOCt+ODpuOCrQ0KK+OCpOOCt+ODhOOCqyzjg4jjgrfjg6bjgq0NCivjgqTjgrfjg6/jgr8s44Ki44Oq44OS44OtDQor44Kk44K344K244KrLOOCs+OCpuOCuA0KK+OCpOOCt+OCtuOCqyzjgqjjgqTjgqTjg4ENCivjgqTjgrfjgrbjgq0s44Kz44Km44K4DQor44Kk44K344K644KtLOODiuOCquODiA0KK+OCpOOCvSzjgrfjgrLjg5Ljg4gNCivjgqTjgr3jgqzjgqQs44Om44Km44KzDQor44Kk44K/44OQLOODpuOCpuOCuA0KK+OCpOODiOOCpizjgqTjg47jg6oNCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg5Djg7MNCivjgqTjg4jjgqYs44K144OI44K3DQor44Kk44OI44KmLOOCouODhOOCtw0KK+ODkuODgOOCqyzjg5Ljg4fjg4TjgrANCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODpuOCrQ0KK+ODi+OCtyzjgrfjg7PjgqTjg4ENCivjgqTjg6/jg4Djg6ws44Oo44K344OO44OqDQor44Kk44Ov44OP44K3LOODpuOCpuOCsw0KK+OCpOODr+OCrSzjg5/jgrrjg5sNCivjgqTjg6/jg6Ljg4gs44Oo44K344OO44OqDQor44Kk44Ov44K144KtLOODjuODluOCq+OCug0KK+ODkuODqeODhOOCqyzjg5Ljg63jgrcNCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44Kk44Ov44K144KtLOODnuOCteODpuOCrQ0KK+OCpOODr+OCteOCrSzjg5Ljg63jg6bjgq0NCivjgrjjg7PjgrDjgqYs44K144OI44KzDQor44Kk44Ov44K344KyLOODnuOCs+ODiA0KK+OCpOODr+OCvyzjg5Ljg63jgrcNCivjgrjjg7PjgrDjgqYs44Oo44K344OO44OqDQor44K0LOODpOOCueOCq+OCug0KK+OCq+OCrCzjgqvjg4Tjg6QNCivjgqvjgqzjg5Ys44K344Oz44K444Ot44KmDQor44Kr44Ku44Ok44OeLOODkuODh+OCqg0KK+OCq+OCpCzjg6bjgqbjgr7jgqYNCivjgqvjgqTjg4As44OO44Oq44Om44KtDQor44Kr44Kk44OALOODjuODquODnuOCtQ0KK+OCq+ODnuODgSzjg5Ljg63jg6bjgq0NCivjgqvjg57jg4As44Oe44K144KzDQor44Kr44Oe44Ob44OqLOODiOODouODkuOCsw0KK+OCq+ODnuOCvyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg6Hjg4As44Oe44Om44OfDQor44Kr44Oh44KkLOODleODn+ODkuOCsw0KK+OCq+ODn+ODjizjgr/jgrHjgrcNCivjgqvjg5/jg44s44OS44OI44K3DQor44Kr44Of44OI44OOLOODquODpeOCpuOCuA0KK+OCq+ODn+ODpCzjg47jg5bjg6bjgq0NCivjgqvjg5/jg6Qs44OB44Ki44KtDQor44Kr44Of44Ok44OeLOOCseODs+OCrg0KK+OCq+ODouODsyzjg5Ljg4fjgq0NCivjgqvjg6Ljg7Ms44Ko44Kk44K/44Ot44KmDQor44Kr44OzLOODiOODouODjuODqg0KK+OCq+ODiuOCpCzjg47jg6rjgrMNCivjgqvjg4rjgqQs44K544Of44KzDQor44Kr44OK44K4LOODnuOCteODpuOCrQ0KK+OCq+ODiuOCquOCqyzjgr/jg5/jgqoNCivjgqvjg4rjgrbjg68s44Kr44OE44OS44K1DQor44Kr44Oz44OZLOOCteOCquODqg0KK+OCq+ODs+ODgCzjg6Tjgrnjgr/jgqsNCivjgqvjg7Pjg4As44OB44KoDQor44Kr44ON44KtLOOCqOOCpOOCueOCsQ0KK+OCq+ODjeOCreODqCzjg5Ljg63jg4gNCivjgqvjg43jgrMs44OS44Ot44Om44KtDQor44Kr44ON44K344K/LOOCq+OCuuODkuODrQ0KK+OCq+ODjeODpOOCuSzjg4rjgqrjg6QNCivjgqvjg47jgqYs44K344Oz44K4DQor44Kr44OO44KmLOOCv+OCseOCtw0KK+OCq+ODs+OCuuOCpCzjgr/jg5/jg6bjgq0NCivjgqvjgrXjg4/jg6ks44OK44OK44KzDQor44Kr44K144OP44OpLOODkuODh+ODkuOCtQ0KK+OCq+OCteOCpCzjgqjjgqTjgqTjg4ENCivjgqvjgrXjg57jg4Qs44Kv44OL44OI44K3DQor44Kr44K144OiLOOCseODs+OCpOODgeODrQ0KK+OCv+ODnuOCv+ODiyzjgrfjg54NCivjgqvjgrfjg6/jgq4s44Om44Oq44OfDQor44Kr44K344Ov44Kw44OpLOODkuODh+ODpuOCrQ0KK+OCq+OCv+ODgCzjgrXjg4HjgrMNCivjgqvjgr/jgqrjgqss44OK44Kq44KtDQor44Ob44K3LOODkuODreODiA0KK+OCq+OCv+OCquOCqyzjgrfjg6XjgqbjgrgNCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Kr44OI44KmLOODpOOCueODpuOCrQ0KK+OCq+ODiOOCpizjg6Ljg6rjg5Ljg60NCivjgqvjg4jjgqYs44K344Oz44Kk44OBDQor44Kr44OI44KmLOODquODp+OCpuOCvw0KK+OCq+ODiOOCpizjgrHjgqTjgrMNCivjgqvjg4jjgqYs44OG44Or44OS44KzDQor44Kr44OI44KmLOOCuOODpeODs+OCsw0KK+OCq+ODiOOCpizjg5/jg4Hjg6QNCivjgqvjg4jjg44s44Kt44Oo44K3DQor44Kr44OE44Og44OpLOODkuODh+OCrQ0KK+OCq+ODr+ODkOOCvyzjgqTjg4Hjg63jgqYNCivjgqvjg6/jgrTjgqgs44Ki44Kt44OpDQor44Kr44Ov44Kw44OBLOOCs+OCpuOCuA0KK+OCq+ODr+ODj+ODqSzjg57jgrnjg58NCivjgqvjgrfjg6Djg6ks44Om44Km44KzDQor44Kr44Ov44KkLOODiuOCquODnw0KK+OCq+ODr+OCpCzjg5Ljg63jg6bjgq0NCivjgqvjg6/jg6Ljg4gs44Oe44OK44OWDQor44Kr44Ov44Og44OpLOOCteODiOODqw0KK+OCq+ODr+ODoOODqSzjgrfjg6XjgqbjgrgNCivjgqvjg6/jg4os44Om44Kt44OS44OIDQor44Kr44Ov44OKLOODnuOCteOCq+OCug0KK+OCq+ODr+ODiuODnyzjg5Ljg4fjg5LjgrMNCivjgqvjg6/jg44s44K344Oz44K4DQor44Kr44Ov44K7LOOCuOODpeODs+OCpOODgeODrQ0KK+ODj+ODqeODgCzjgrfjg6XjgqbjgrPjgqYNCivjgqvjg6/jgrfjg54s44OO44OW44KzDQor44Kr44K244OfLOODiuOCquODiA0KK+OCq+OCuuOCteODryzjg6Tjgrnjg5Ljg60NCivjgq3jg5Djg6Tjgrcs44Om44Km44Kk44OBDQor44Kt44OALOOCv+OCseOCtw0KK+OCreODj+ODqSzjg6jjgrfjg5LjgrMNCivjgq3jgq/jg4Es44OS44Ot44K3DQor44Kt44Kv44OBLOOCpOODgeODreOCpg0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgq3jgq/jgqQs44OE44Oo44K3DQor44Kt44Oi44OILOODqOOCpuOCsw0KK+OCreODoOODqSzjg47jg5bjg6bjgq0NCivjgq3jg6Djg6ks44OE44Oo44K3DQor44Kt44Og44OpLOODiOOCt+ODhOOCsA0KK+OCreODoOODqSzjgr/jgqvjg5LjgrUNCivjgq3jg6Djg6ks44OP44Or44OfDQor44Kt44OOLOOCq+OCuuODnuOCtQ0KK+OCreODquODjizjgqvjgrrjg6QNCivjgq3jgrXjg4zjgq0s44Oe44Kz44OIDQor44Kt44K3LOODnuOCteOCrQ0KK+OCreOCtyzjg4rjgqrjgq0NCivjgq3jgrfjg4As44K144OI44K3DQor44Kt44K344Kr44OvLOOCt+ODsw0KK+ODkuODqeODhizjgrfjg7PjgrgNCivjgq3jgrfjg4rjg58s44Ok44K544Oe44K1DQor44Kt44K9LOODqOOCt+OCqg0KK+OCreOCvyzjg5Ljg4fjgqLjgq0NCivjgq3jgr/jgqzjg68s44OK44Kq44OfDQor44Kt44K/44K444OeLOODkuODreODpuOCrQ0KK+OCreOCv+OCuOODnizjgrvjgqTjgqsNCivjgq3jgr/jg6Djg6ks44OO44Oq44KzDQor44Kt44K/44OOLOODiOOCt+ODpuOCrQ0KK+OCreOCv+OCtuOCrSzjgr/jg4DjgrcNCivjgq3jgr/jgrbjg68s44K/44OE44K3DQor44Kt44Oo44OP44OpLOODhOODiOODoA0KK+ODj+OCt+ODouODiCzjgqrjgrXjg6ANCivjg47jgrbjgq0s44OV44Of44Kt44OoDQor44Kz44OQ44Ok44K3LOODleODn+OCqg0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44KtDQor44Kz44OQ44Ok44K3LOOCv+OCq+ODj+ODqw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Ki44OE44K3DQor44Kz44OQ44Ok44K3LOOCqOOCpOOCuA0KK+OCs+ODkOODpOOCtyzjgrXjg4HjgrMNCivjgrPjg5Djg6Tjgrcs44K344On44Km44K4DQor44Kz44OQ44Ok44K3LOODiOODouODkuODrQ0KK+OCs+OCpuODgSzjg6bjgq0NCivjgrPjg4Djg54s44Ok44K544OS44OtDQor44Kz44KsLOOCouOCreODkuODrQ0KK+ODiOOCpuODieOCpizjgrfjg6XjgqbjgqTjg4ENCivjgrPjg4/jg6ks44OK44Kq44K544OfDQor44Kz44OSLOODj+ODq+ODnw0KK+OCs+ODs+ODjizjg5Ljg63jg5Xjg58NCivjgrPjgqTjgrEs44OI44Kq44OrDQor44Kz44Kk44OvLOODiOODouODpuOCrQ0KK+OCs+OCpOOCuuODnyzjgrfjg6XjgqbjgrQNCivjgrPjgrjjgqss44Of44Ko44KzDQor44Kz44K444OeLOODiuOCrOOCqg0KK+OCs+OCuOODnizjg6rjg4HjgrMNCivjgrPjgrjjg54s44Kr44K644OS44KzDQor44Kz44K444OeLOOCteODiOOCtw0KK+OCs+ODnuODhOODkOODqSzjg6rjg6Xjgqbjgr8NCivjgrPjg5/jg6Qs44Kt44Oo44K3DQor44Kz44Oi44OALOOCouOCreODqOOCtw0KK+OCs+ODoOODrSzjg4jjgrfjg6bjgq0NCivjgrPjg7Pjg4ks44OK44OE44OfDQor44Kz44Oz44OJLOOCseODs+OCuA0KK+OCs+ODs+ODiSzjgrHjg7PjgqTjg4ENCivjgrPjgrXjgrEs44Kz44Km44Kk44OBDQor44Kz44K7LOOCv+OCq+OCtw0KK+OCs+OCueOCrizjgr/jgrHjgrcNCivjgrPjgrrjgqss44Ok44K544OO44OqDQor44Kv44OcLOODj+ODq+ODnw0KK+OCr+ODnCzjgr/jgrHjg5Ljg60NCivjgq/jg5ws44OK44Kq44KtDQor44Kv44OcLOOCt+OCsuOCqg0KK+OCr+ODnCzjg5Ljg63jgrcNCivjgq/jg4njgqYs44Oe44OqDQor44Kv44OJ44KmLOOCu+OCpOOCpOODgQ0KK+OCr+ODieOCpizjg57jgrXjgq0NCivjgq/jg57jgqvjg68s44Kx44Oz44K4DQor44Kv44Oe44Kv44OpLOOCseODs+OCpOODgQ0KK+OCr+ODnuOCt+ODrSzjgrvjgqTjgqTjg4ENCivjgq/jg57jgr8s44K344Ot44KmDQor44Kv44OL44Oi44OILOOCuOODpeODs+OCuA0KK+OCr+ODqeODouODgSzjgrfjg6XjgqbjgqTjg4ENCivjgq/jg6njgrfjg54s44OS44Ot44K3DQor44Kv44Oq44OP44OpLOOCq+OCuuODkuODrQ0KK+ODkuODqeOCpCzjgrPjgqbjgrgNCivjgq/jg6rjg4/jg6ks44Oo44K344Om44KtDQor44Kv44Oq44OP44OpLOOCq+ODhOODqA0KK+OCr+ODquODj+ODqSzjg6bjgqbjgrgNCivjgq/jg6rjg4/jg6ks44OG44OE44KqDQor44Kv44Oq44OP44K3LOODn+ODhOODjuODlg0KK+OCr+ODquOCuSzjg6jjgqbjgrMNCivjgq/jg63jg4As44Ki44OE44K3DQor44Kv44Ot44OALOODkuODreODpuOCrQ0KK+OCr+ODreOCrSzjgr/jgqvjg5Ljg60NCivjgq/jg63jgq0s44OI44Oi44KzDQor44Kv44Ot44KtLOOCqOOCpOOCuA0KK+OCr+ODreODoSzjg57jgrPjg4gNCivjgq/jg63jgrXjg68s44Ko44Kk44K444Ot44KmDQor44Kv44Or44Of44OkLOOCs+OCpuOCrQ0KK+OCr+OCteODpOODiuOCrizjg57jgrXjg4jjgrcNCivjgq/jgrnjg47jgrss44OK44Kq44Kq44OfDQor44Kv44Ov44OP44OpLOOCt+ODs+OCuA0KK+ODnuODgeODgCzjg6jjgqbjgrMNCivjg57jg4Djg6njg6Es44OI44K344K/44KrDQor44Oe44Ko44OALOOCteODiOOCtw0KK+ODnuOCqOODgCzjgrXjg4jjg6sNCivjg57jgqjjg4As44K344Oz44Kk44OB44Ot44KmDQor44Oe44Ko44Ks44OvLOODleODn+ODkuODhw0KK+ODnuOCqOODj+ODqSzjgq7jg7PjgrgNCivjg57jgqjjgq3jgr8s44Kr44K644KzDQor44Oe44Kt44OOLOOCv+OCq+ODkuODrQ0KK+OCt+ODluOCv+ODiyzjgrPjgqbjgrgNCivjg57jg4rjg5ks44Oo44K344OO44OqDQor44Oe44Or44Ok44OeLOOCouOCreODqQ0KK+ODnuODq+ODpOODnizjg5Ljg63jg6bjgq0NCivjg57jg6vjg6Tjg54s44Kx44Kk44Kk44OBDQor44Oe44K144Kq44KrLOOCv+OCq+OCtw0KK+ODnuOCueODluODgSzjg6jjgrfjg47jg6oNCivjg57jgrnjg4As44Om44Km44KzDQor44Oe44K544OALOODqOOCt+ODj+ODqw0KK+ODnuOCueODgCzjgr/jgqvjg4jjgrcNCivjg57jgrnjg4As44K/44Kv44OkDQor44Oe44K544OALOODkuODreOCq+OCug0KK+ODnuOCueODgCzjg5Ljg63jgq0NCivjg57jg4Tjg5As44OO44K+44OfDQor44OP44OpLOOCseODs+OCuA0KK+ODnuODhOODgCzjgrHjg7PjgrgNCivjg57jg4Tjg4As44OA44Kk44K544KxDQor44Oe44OE44OV44K4LOOCouOCreOCqg0KK+ODnuODhOODleOCuCzjgqvjgrrjg4rjg6oNCivjgr/jg4Hjgq/jgqQs44Of44KtDQor44Oe44OE44KkLOOCt+ODs+OCuA0KK+ODnuODhOOCq+ODryzjgr/jgqvjg5Ljg60NCivjg57jg4Tjg57jg6ss44K344Ol44Km44K144KvDQor44Oe44OE44Oi44OILOOCouOCreOCqg0KK+ODnuODhOODouODiCzjgqvjgrrjg47jg6oNCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OS44KzDQor44Oe44OE44Oi44OILOODjuODquOCsw0KK+ODnuODhOODouODiCzjg5Ljg63jgrcNCivjg57jg4Tjg6Ljg4gs44OE44OI44OgDQor44K344Kq44OQ44OpLOOCt+ODs+OCpOODgQ0KK+ODnuODhOODoOODqSzjgrfjg6Xjg7PjgqTjg4ENCivjg57jg4Tjg6Djg6ks44Oo44K344OO44OqDQor44Oe44OE44OK44KsLOODpuOCreOCsw0KK+ODnuODhOODiuOCrCzjg57jgrXjg5Ljg60NCivjg57jg4Tjg4rjg58s44Oo44K344KzDQor44Oe44OE44KqLOODiOOCt+ODpA0KK+ODnuODhOOCqizjg4jjg6Ljg5Ljg60NCivjg57jg4Tjgqrjgqss44Ko44Kk44KzDQor44OP44Ok44K344OALOOCq+OCuuODkuODrQ0KK+ODnuODhOOCquOCqyzjgrvjgqTjgqTjg4ENCivjgqLjgrzjg6Tjg4rjgq4s44K744Kk44K4DQor44Oe44OE44Kq44KrLOOCt+ODs+OCtA0KK+ODnuODhOOCquOCqyzjg5Ljg63jgqLjgq0NCivjg57jg4Tjgrss44K/44Kr44Om44KtDQor44Oe44OE44K344OeLOOCseODs+OCuA0KK+ODnuODhOOCt+OCvyzjgrPjgqbjgrgNCivjg57jg4Tjgr/jg4ss44K344Oz44K4DQor44Oe44OE44Ov44KrLOOCteODiOOCtw0KK+ODnuODhOODpOODnizjgqLjgq3jg6kNCivjg57jg4Tjgrbjgq0s44Kt44Kv44KqDQor44Oe44OE44OK44KsLOODnuOCs+ODiA0KK+ODm+ODs+ODiizjgq3jg6/jg6ANCivjg6Hjgqvjgr8s44Kx44Oz44K4DQor44Of44Kr44K444OqLOOCreODp+OCpuOCsw0KK+ODn+OCq+ODnyzjgrfjg7PjgrnjgrENCivjg5/jgqvjg58s44OS44OH44KqDQor44Of44KtLOODnuOCteODpuOCrQ0KK+ODn+ODn+OCvyzjg5/jg4Hjg60NCivjg5/jg4rjgq/jg4Es44OV44Of44OP44OrDQor44Of44OK44OfLOOCteODiOOCtw0KK+ODn+ODiuODnyzjg4jjg6Ljg6bjgq0NCivjg5/jg4rjg58s44Ki44Kt44OpDQor44Of44OK44OILOOCt+ODp+OCpuOCuA0KK+ODn+ODjSzjg6jjgrfjgr/jgqsNCivjg5/jg40s44Ki44OE44K3DQor44Of44K344OeLOOCs+OCpuOCuA0KK+ODn+OCt+ODnizjgqrjgrXjg6ANCivjg5/jgr3jg44s44OS44Ot44OS44K1DQor44Of44K/44Og44OpLOODnuOCteODiOOCtw0KK+ODn+OCv+ODs+ODgCzjgrHjg7PjgqTjg4ENCivjg5/jg4Tjg5ws44Oo44K344Kr44K6DQor44Of44OE44Oc44K3LOODiOOCt+ODkuODrQ0KK+ODj+OCueODoOODqSzjg4jjgrfjg5Xjg58NCivjg5/jg4Tjg4/jgrcs44OS44Ot44Of44OEDQor44K344OK44OALOODkuODreODpuOCrQ0KK+ODn+ODhOODnizjgqvjgrrjg5Ljg4gNCivjg5/jg6Tjg4/jg6ks44K444OE44OkDQor44Of44Ok44OP44OpLOODkuODh+ODj+ODqw0KK+ODn+ODpOOCpCzjg5/jgqjjgrMNCivjg5/jg6Tjgrjjg54s44Om44Kr44KzDQor44Of44Ok44Oi44OILOOCq+OCuuODiuODqg0KK+ODn+ODpOODouODiCzjg5Ljg4fjg47jg6oNCivjg5/jg6Tjgrfjgr8s44OS44Ot44Om44KtDQor44Of44Ok44K/LOODkuODreODpuOCrQ0KK+ODn+ODpOOCvyzjgqvjgqrjg6sNCivjg5/jg6Tjgqbjg4Es44Kx44Oz44K4DQor44Of44Ok44Km44OBLOOCquOCteODoA0KK+ODn+ODpOOCpuODqSzjgr/jgrHjg5LjgrUNCivjg5/jg6Tjgrbjgq0s44K/44Kx44K3DQor44OP44K344Kw44OBLOOCt+OCsuOCrQ0KK+ODn+ODpOOCtuODryzjgrPjgqbjgrgNCivjg5/jg6Tjgrbjg68s44Ki44Kt44KqDQor44Of44Ok44K6LOODpOOCueODkuODiA0KK+ODn+OCvuOCq+ODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg5/jgrrjg44s44OG44OE44OS44KzDQor44Of44K644OOLOODiOOCt+ODpuOCrQ0KK+ODn+OCuuOCv+ODiyzjg47jg5bjg6bjgq0NCivjg6Ljg4Hjg4As44Ki44Kt44OS44OtDQor44Oi44OB44K644KtLOOCouOCreOCqg0KK+ODouODgeOCuuOCrSzjgrjjg63jgqYNCivjg5/jg6jjgrcs44K/44Kr44K3DQor44Oi44OqLOODnuOCteOCrQ0KK+ODouODqizjg57jgrXjgrcNCivjg6Ljg6os44OA44Kk44Kk44OBDQor44Oi44OqLOODnuOCteODpuOCrQ0KK+ODouODqizjg4bjg4Tjg6QNCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44OqLOODhOODjeOCouOCrQ0KK+ODouODqizjgqTjgrrjg58NCivjg6Ljg6os44OS44Ot44Kr44K6DQor44Oi44Oq44Kw44OBLOODkuODreOCrQ0KK+ODouODquOCq+ODryzjgrPjgqbjgrgNCivjg6Ljg6rjg4rjgqws44Oe44K144K3DQor44Oi44Oq44K144KtLOOCouOCseODnw0KK+ODouODquOCvyzjg6jjgqbjgqTjg4ENCivjg6Ljg6rjgr8s44Ko44Kk44K4DQor44Oi44Oq44OkLOODoOODhOOCqg0KK+ODouODquODpOODnizjg5Ljg4fjgqoNCivjg6Ljg4bjgq4s44Of44OE44OS44OtDQor44Oi44OI44KtLOOCr+ODi+ODkuODrQ0KK+ODj+OCruODr+ODqSzjg47jg5bjg6jjgrcNCivjg6DjgqvjgqTjg4As44K344KzDQor44Og44ON44OS44OtLOODkuODh+ODpuOCrQ0KK+ODoOODjeOCq+OCvyzjgqvjgrrjg6jjgrcNCivjg6Djg6njgqvjg58s44OE44Oo44K3DQor44Og44Op44Kr44OfLOODpOOCueODkuODrQ0KK+ODoOODqeOCq+ODnyzjg6TjgrnjgqoNCivjg6Djg6njgrPjgrcs44OS44Ot44KzDQor44Og44Op44Oe44OELOODnuOCteODiA0KK+ODoOODqeODjOOCrSzjgrHjgqTjgrgNCivjg6Djg6njgr8s44Om44Kt44Oi44OIDQor44Og44Op44K/LOODnuOCteOCrQ0KK+ODoOODqeOCvyzjgrvjgqTjgrgNCivjg6Djg6njg6Tjg54s44Oo44K344OP44OrDQor44Ok44Oe44K344K/LOOCouOCreODkuODrQ0KK+ODoOODreOCvyzjg5Ljg63jgqvjgroNCivjg5/jg6fjgqbjgrjjg7Ms44Of44OB44KqDQor44OK44Ks44KkLOODjuODquOCsw0KK+ODiuOCrOODjOODnizjg6bjgq3jgqoNCivjg4rjgqzjgqos44Ko44OqDQor44OK44Ks44Kq44KrLOODn+ODmw0KK+ODiuOCrOOCteODryzjgqvjgqrjg6sNCivjg4rjgqzjgrfjg54s44K/44Kr44K3DQor44OK44Ks44K344OeLOODqOOCt+OCq+OCug0KK+ODiuOCrOOCvyzjg6jjgrfjg6TjgrkNCivjg4rjgqzjgr8s44OB44Ko44KzDQor44OP44K744Ks44OvLOODkuODreOCouOCrQ0KK+OCpOOCrOODqeOCtyzjgqvjgrrjg5Ljg60NCivjg4rjgqzjg6Tjg54s44Kx44Oz44K4DQor44OK44Ks44Oo44K3LOODnuOCteOCq+ODhA0KK+ODiuOCpOODiOOCpizjg57jgrXjgq0NCivjg4rjgqvjg5Djg6Tjgrcs44Oe44K144OO44OqDQor44OK44Kr44Ks44OvLOOCt+ODs+OCpOODgQ0KK+ODiuOCq+OCtOODoSzjgrXjg4jjgrcNCivjg4rjgqvjgrfjg54s44OI44K344Ki44KtDQor44OK44Kr44K444OeLOODpOOCueODnuOCtQ0KK+ODiuOCq+OCuOODnizjg6bjgqbjgrMNCivjg4rjgqvjgrjjg54s44OG44Or44OfDQor44OK44Kr44K444OeLOOCr+ODqeODiA0KK+ODiuOCq+OCuOODnizjg6bjgqbjgrgNCivjg4rjgqvjgq/jgq0s44K344Oz44Kk44OB44Ot44KmDQor44OK44Kr44Oe44OrLOODquOCqw0KK+ODiuOCq+ODn+ODgSzjg5/jgqsNCivjg4rjgqvjg6Ljg4gs44Om44Kt44OS44OtDQor44OK44Kr44Oi44OILOODkuODreOCq+OCug0KK+ODiuOCq+ODouODiCzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44OS44Ot44OV44OfDQor44OK44Kr44Og44OpLOODnuOCteODiuODqg0KK+ODiuOCq+ODoOODqSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4rjgqvjg6Djg6ks44K744Kk44K4DQor44OK44Kr44Og44OpLOOCq+OCuuODjuODqg0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgrgNCivjg4rjgqvjg6Djg6ks44OG44Or44Om44KtDQor44OP44Ku44Ov44OpLOOCteODiOOCsw0KK+ODiuOCq+ODoOODqSzjg57jgq3jgrMNCivjg4rjgqvjg6Djg6ks44OS44OH44Om44KtDQor44OK44Kr44Og44OpLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjgrHjg7Pjgr8NCivjg4rjgqvjg44s44Ok44K544K3DQor44OK44Kr44KqLOODpuOCpuOCsw0KK+ODiuOCq+OCqizjg5Ljg63jg6bjgq0NCivjg4rjgqvjgqrjgqss44OI44Oi44Om44KtDQor44OK44Kr44K344OeLOOCteODiOOCtw0KK+ODi+OCt+OCuOODnizjgr/jgqvjgrcNCivjg4rjgqvjg6Qs44Ov44K/44OrDQor44OK44Kr44Ok44OeLOODkuODreOCtw0KK+ODiuOCq+OCtuODiCzjgqvjg4TjgqLjgq0NCivjg4rjg57jgr/jg6Es44Oe44Oi44OrDQor44OK44Oh44OpLOODouODquODkuODiA0KK+ODiuODiuODnyzjgr/jg4Djg4jjgrcNCivjg4rjg7Pjg5As44K/44Kr44KqDQor44OK44OzLOOCseOCpOOCueOCsQ0KK+ODiuODs+ODnSzjgqLjgq3jg6kNCivjg4rjg6njg5Ys44OS44OH44KtDQor44OK44Oq44OP44OpLOODkuODreODnw0KK+ODiuODquODiOODnyzjg4rjgqrjgq0NCivjg4rjg6vjgrfjg54s44Oe44Kz44OIDQor44OK44K544Kr44OvLOOCuOODpeODs+ODpA0KK+ODiuODiOODqizjgrHjg7Pjg6QNCivjg43jgq7jgrcs44Ko44Of44KzDQor44ON44Oi44OILOOCpOOCuuODnw0KK+ODi+OCqOODgCzjg4jjgqrjg6sNCivjg4vjgqTjgrjjg54s44Oe44Kz44OIDQor44OL44Kk44Kv44OpLOODnuOCteODqw0KK+ODi+OCpOODhOODnizjgrHjg7PjgrgNCivjg4vjgqTjgrbjg68s44Oo44K344OO44OqDQor44OL44K344OALOODkuODreODkuODiA0KK+ODi+OCt+ODgCzjgr/jgrHjgrcNCivjg4vjgrfjg4As44Ko44Kk44K4DQor44OL44K344OALOODkuODh+ODiA0KK+ODkuODgOOCqyzjg6bjgq3jg57jgrUNCivjg4vjgrfjg4As44Ok44K544KqDQor44OL44K344Kr44OJLOOCouODhOOCtw0KK+ODi+OCt+OCq+ODryzjgqjjgqTjgrjjg6UNCivjg4vjgrfjgqvjg68s44OI44Oi44Ki44KtDQor44OL44K344Kr44OvLOODnuOCteODjuODlg0KK+ODi+OCt+ODouODiCzjg5Ljg4fjg6QNCivjg4vjgrfjg6Djg6ks44Oe44K144OO44OqDQor44OL44K344OKLOOCreODqOOCtw0KK+ODi+OCt+ODjizjg5Ljg63jgqvjgroNCivjg4vjgrfjgr8s44Of44KtDQor44OV44Kr44OfLOOCq+OCuuODqA0KK+ODi+OCt+ODr+OCrSzjgr/jgrHjg5LjgrMNCivjg4vjgrfjg6Tjg54s44Kr44OE44K3DQor44OL44K344Ok44OeLOODkuODiOOCtw0KK+ODi+OCt+OCtuODryzjg6jjgrfjg5Ljg60NCivjg4vjg4Pjgr8s44OS44Ot44Oo44K3DQor44OL44Ov44K/LOODm+OCuuODnw0KK+ODi+ODr+ODpOODnizjg4HjgroNCivjg47jgqLjg58s44Kv44OL44KzDQor44OO44Oc44Oq44K/44OGLOODnuODiuODlg0KK+ODjuODgCzjgr/jgqvjg6bjgq0NCivjg47jgqzjg68s44OS44Ot44OkDQor44OO44Kw44OBLOODiOODouOCouOCrQ0KK+ODjuOCsOODgSzjgr/jgqvjgrcNCivjg47jgrjjg6os44OS44Ot44Om44KtDQor44OO44Oi44OILOODpuOCpuOCsw0KK+ODjuODoOODqSzjg5/jgq3jgrMNCivjg4/jg6TjgrXjgqss44Kr44K644OS44OtDQor44OO44Og44OpLOODnuOCteODkuODrQ0KK+ODjuODiCzjgr3jg47jg58NCivjg47jgrbjgq0s44OI44K344OkDQor44Kz44K144KrLOODpOOCueOCtw0KK+OCquODkOODiizjgqLjg6TjgrMNCivjgqrjg4Es44Oe44K144OG44OrDQor44Kq44OALOODj+ODq+ODjuODlg0KK+OCquOCrOOCteODr+ODqSzjgqvjgrrjg4bjg6sNCivjgqrjgqzjgr8s44OS44Ot44Ok44K5DQor44Kv44KtLOODpuOCv+OCqw0KK+OCquOCq+ODgCzjg5Ljg63jgqLjgq0NCivjgqrjgqzjg68s44OS44Ot44Om44KtDQor44Kq44Ks44OvLOODnuOCteODpuOCrQ0KK+OCquOCrOODryzjg6Tjgrnjg47jg6oNCivjgqrjgq7jg4/jg6ks44Kr44K644OI44K3DQor44Kq44Ku44OOLOOCs+OCpuOCpOODgQ0KK+OCquODlizjg5/jgqsNCivjgqrjgqrjg4/jg6ks44K/44OA44OS44KzDQor44OP44Oe44Oi44OILOODpOOCueOCsw0KK+OCquOCquODj+ODqSzjg6bjgqbjgrgNCivjgqrjg4/jgrcs44K144OI44K3DQor44Kq44Kq44Kr44OvLOODnuOCteODiA0KK+OCquOCquOCr+ODnCzjg57jgrXjgqLjgq0NCivjgqrjgqrjg5/jg6Qs44K744Kk44K4DQor44Kq44Kq44Oi44OqLOODhuODhOODpA0KK+OCquODoOODqSzjg6rjg6fjgqbjgqTjg4ENCivjgqrjgqrjg4vjgrcs44Oe44K144K/44KrDQor44Kq44Kq44OOLOODkuODreODpOOCuQ0KK+OCquOCquODjOOCrSzjgqvjgrrjgqoNCivjgqrjgqrjgrXjgq0s44K144OI44K3DQor44Kq44Kq44K144KtLOODpuOCpuOCsw0KK+OCquOCquOCteODryzjgrfjg63jgqYNCivjgqrjgrfjg54s44K/44Kx44K3DQor44Kq44K344OeLOOCv+OCq+OCqg0KK+OCquOCt+ODnizjg4Tjg4jjg6ANCivjgqrjgqrjgr8s44Ok44K544KqDQor44Kq44Kq44K/LOODjuODluODkuODrQ0KK+OCquOCquOCvyzjg5/jgqsNCivjgqrjgqrjgr8s44OS44Ot44K3DQor44Ki44Oz44OJ44KmLOOCseODs+OCpOODgQ0KK+OCquOCv+OCqyzjgr/jgqvjgqLjgq0NCivjgqrjgqrjgr/jgq0s44OV44OI44K3DQor44Kq44Kq44K/44OLLOOCq+OCuuODkuOCsw0KK+OCquOCquOCv+ODiyzjg47jg6rjg5LjgrUNCivjgqrjgqrjgr/jg4ss44Oe44K144Kr44K6DQor44OP44Ok44K3LOODpuOCreOCsw0KK+OCquOCquODhOODnCzjgr/jgrHjg5LjgrUNCivjgqrjgqrjg4Tjgqss44Oo44K344OO44OqDQor44Kq44Kq44OE44KrLOOCqOOCpOOCrQ0KK+OCquOCquODhOOCqyzjgqLjg4TjgrcNCivjg4/jg6Tjgrcs44Ko44Of44KzDQor44Kq44Kq44OE44OrLOODn+ODgeOCqA0KK+OCquODleODgSzjg4jjgrfjgrMNCivjgqrjgqrjg68s44K/44Kx44K3DQor44Kq44Kq44OkLOODoOODjeOCqg0KK+OCquOCuOOCqizjg5Xjg5/jg47jg5YNCivjgqrjgqss44Oe44K144OI44K3DQor44Kq44Kr44OZLOOCouODpuODoA0KK+OCquOCq+ODgCzjg57jgrXjgq0NCivjgqrjgqvjg4As44K/44Kr44OkDQor44Kq44Kr44OALOODiOOCquODqw0KK+OCquOCq+ODgCzjg5Ljg63jg6bjgq0NCivjgqrjgqvjg6Ljg4gs44K/44Kr44Om44KtDQor44Kq44Kr44Oi44OILOODpuOCpg0KK+OCquOCq+ODouODiCzjg4jjg6Ljg6bjgq0NCivjgqrjgqvjg6Djg6ks44OS44Ot44Kv44OLDQor44Kq44Kr44Og44OpLOOCseOCpOOCpOODgQ0KK+OCquOCq+OCtuOCrSzjg5Ljg63jg4jjgrcNCivjgqrjgqvjgrbjgq0s44Kz44Km44K/44Ot44KmDQor44Kq44Kt44OOLOOCq+OCquODqw0KK+OCquOCr+ODgCzjg4/jgrjjg6ENCivjgqrjgq/jg4As44Oe44K144OO44OqDQor44Kq44Kv44Ks44OvLOOCuOODpeODs+OCpOODgQ0KK+ODj+OCruODj+ODqSzjgrHjg7PjgrgNCivjgqrjgq/jgqbjg4Es44Og44ON44K3DQor44Kq44Kq44OfLOOCouODpOOCsw0KK+OCquODoOODqSzjg5Ljg4jjgrcNCivjgqrjg7Pjg4As44Kr44K644OS44OtDQor44Kq44Kq44OOLOODpuOCv+OCqw0KK+OCquOCquODjizjg5Ljg6fjgqbjgr7jgqYNCivjgqrjgqrjg44s44Of44OO44OrDQor44Kq44Kq44OOLOOCt+ODpeODs+OCueOCsQ0KK+OCquODjuODh+ODqSzjg57jgrXjg5LjgrMNCivjgqrjg47jg4fjg6ks44Oo44K344OO44OqDQor44Kq44OO44OH44OpLOODiOOCt+OCqg0KK+OCquODjuODoOODqSzjg5/jg47jg6sNCivjgqrjg47jgrbjg68s44K344Oz44OkDQor44Kq44Kq44OM44KtLOODhuODhOODreOCpg0KK+OCquODjizjgr/jgqvjgqLjgq0NCivjgqrjgqrjg6Tjg54s44OS44OI44K3DQor44Kq44Oq44OJLOODkuODh+OCouOCrQ0KK+OCquODquOCt+OCreODgCzjgrPjgqbjgqTjg4ENCivjgqrjgqrjgrXjgqss44K/44OA44KqDQor44Kq44Ok44OeLOOCv+OCpOODgQ0KK+OCquOCtuOCrSzjgr/jg4Tjg6QNCivjgqrjgrbjgq0s44Oo44K344Oe44K1DQor44Kq44K244OvLOODpuOCpuOCueOCsQ0KK+OCs+OCtuODryzjg5Ljg63jgrcNCivjgqrjgrbjg68s44Oe44K144OP44OrDQor44Kq44K244OvLOOCv+OCseOCtw0KK+ODj+OCv+ODiuOCqyzjg5/jg4Tjg5Ljg60NCivjgrXjgqjjgq0s44Oq44On44Km44KzDQor44K144Kk44OALOODouODouOCsw0KK+OCteOCpOOCsOOCtSzjg5Ljg63jgrcNCivjg4/jg7Pjg4As44K/44Kx44K3DQor44K144Kk44OI44KmLOODpOOCueODiOODog0KK+OCteOCpOODiOOCpizjg57jgrXjg5LjgrUNCivjgrXjgqTjg4jjgqYs44K344Ky44OS44OIDQor44K144Kr44OBLOODnuOCteOCqg0KK+OCteOCq+OCsOODgSzjgrPjgqbjgrgNCivjgrXjgqvjgqQs44Of44OO44OrDQor44K144Kr44KkLOOCs+OCpuOCvuOCpg0KK+ODkuODqeODjizjgqLjgq3jg5Ljg60NCivjgrXjgqvjgqQs44Ki44Kt44OpDQor44K144Kr44KkLOODkuODreODnw0KK+OCteOCq+OCpCzjg5/jgq3jgqoNCivjgrXjgqvjgqQs44OK44Kq44KtDQor44K144Kr44Oi44OILOOCv+OCq+OCtw0KK+OCteOCq+ODouODiCzjg6Tjgrnjg5Ljg60NCivjg5Ljg63jgrss44Oo44K344Ki44KtDQor44K144Kr44Oi44OILOODqOOCpuOCreODgQ0KK+OCteOCq+OCvyzjg4jjg6LjgrgNCivjgq3jgrfjg4As44OS44Ot44Ki44KtDQor44K144KzLOOCouOCq+OCtw0KK+OCteOCr+ODnizjg57jgrXjg6sNCivjgrXjgq/jg6njg5As44Ko44OfDQor44K144Kv44Op44KkLOODj+ODq+ODnw0KK+OCteOCr+ODqeODpOODnizjg5Ljg63jgrcNCivjgrXjg6Hjgrfjg54s44Kr44K644Oo44K3DQor44K144Oz44OZLOODnuOCs+ODiA0KK+OCteODq+ODr+OCv+ODqizjg57jgrXjgq0NCivjg4/jgrvjgqzjg68s44Oe44K144OIDQor44K144K144KoLOODiuOCquOCrQ0KK+OCteOCteODj+ODqSzjg6rjg6fjgqbjgrgNCivjgrXjgrXjgq0s44K/44Kr44Oe44K1DQor44K144K144KtLOOCv+OCq+OCtw0KK+OCteOCteOCrSzjg6bjgr/jgqsNCivjgrXjgrXjgq0s44Om44Kt44KzDQor44OP44OT44OtLOODpuOCv+OCqw0KK+OCteOCteOCqizjgqvjgrrjgrfjgrINCivjgrXjgrXjgqrjgqss44OI44Oi44KzDQor44K144K144K/44OLLOODqOOCt+ODnw0KK+OCteOCvyzjg4jjg6Ljg58NCivjgrXjgr/jgrEs44OI44K344KtDQor44K144OI44KmLOOCuOODpeODsw0KK+ODm+OCt+ODjizjgrHjgqTjgrgNCivjgrXjg4jjgqYs44Oe44K144OP44OrDQor44OP44OD44OI44OqLOOCt+ODs+ODpA0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44K344Ky44KtDQor44K144OI44KmLOODpuOCreOCv+OCqw0KK+OCteODiOOCpizjg6rjg6fjgqbjgqTjg4ENCivjgrXjg4jjgqYs44K/44OE44KtDQor44K144OI44KmLOOCseOCpOOCuA0KK+OCteODiOOCpizjg57jg6rjgqoNCivjgrXjg4jjgqYs44OI44K344Ki44KtDQor44K144OI44KmLOOCseOCpOOCpOODgQ0KK+ODkuODqeODjizjg5Ljg63jgqLjgq0NCivjgrXjg4jjgqYs44OS44Ot44Om44KtDQor44K144OI44KmLOODpOOCueODjuODqg0KK+OCteODr+ODgCzjgrHjgqTjgqTjg4ENCivjgrXjg6/jg4As44Kz44Km44OY44KkDQor44K144Ov44OV44K4LOOCv+OCq+ODkuODrQ0KK+OCteODr+OCrSzjgrPjgqbjg5jjgqQNCivjgrXjg6/jg6Djg6ks44OS44Ot44K3DQor44K744Ks44OvLOOCt+ODs+OCv+ODreOCpg0KK+OCu+OCrOODryzjgqvjgrrjgq0NCivjgrvjgq0s44Oq44OE44KzDQor44K744KtLOOCv+OCpOODgQ0KK+OCu+OCreOCsOODgSzjg5LjgrXjgrcNCivjgrvjgq3jg40s44Kr44K644Ki44KtDQor44K744Kt44ONLOOCq+ODhOODnw0KK+ODkuODqeODjizjgqjjgqTjgqTjg4ENCivjgrvjg7PjgrTjgq8s44Ok44K544K3DQor44K744KqLOODkuODreOCtw0KK+OCu+ODqSzjgr/jg4DjgrcNCivjgrvjg6ks44OS44Ot44Kr44OEDQor44K344OQ44OP44OpLOOCq+OCuuODjg0KK+OCt+ODkOOCvyzjgqvjgrrjg5LjgrMNCivjgrfjg5Djgr8s44OI44Oi44OS44OtDQor44OP44K744Ks44OvLOODiOODouODn+ODhA0KK+OCt+ODkOOCvyzjg6bjgr/jgqsNCivjgrfjg5Djgr8s44Oe44K144K/44KxDQor44K344OQ44K/LOODnuOCteODpuOCrQ0KK+OCt+ODkOOCtuOCrSzjg57jgrXjgrMNCivjgrfjg5bjgr/jg4ss44OI44Oi44OP44OrDQor44K344OW44OkLOODiOODouOCq+ODhA0KK+OCt+ODgeODkuODp+OCpizjgq3jg5/jgqLjgq0NCivjgrfjgq0s44Oe44K144OrDQor44K344Kt44K344OeLOOCv+OCseOCtw0KK+OCt+ODnizjgqLjgq3jgrMNCivjgrfjg54s44Kz44K544KxDQor44K344Oe44OALOOCq+ODhOODkuODrQ0KK+OCt+ODnuODjOOCrSzjgr/jgqvjgrcNCivjgrfjg57jgqrjgqss44Ok44K544K/44KrDQor44K344Oe44K344K/LOODiuOCquODkuODrQ0KK+OCt+ODnuOCuizjgrHjgqTjgqTjg4ENCivjgrfjg5/jgros44OS44OH44KtDQor44K344Of44K6LOOCseOCpOOCueOCsQ0KK+ODj+OCu+OCrOODryzjg4HjgqjjgrMNCivjgrfjg5/jgros44Oe44K144KqDQor44K344Of44K6LOODpuODquOCsw0KK+OCt+ODn+OCuizjgqvjgrrjg5LjgrUNCivjgrfjg6LjgqzjgqQs44OI44K344KzDQor44K344Oi44Kr44Ov44OZLOOCouOCreODkuODrQ0KK+OCt+ODouOCquOCqyzjgqLjgq3jg5Ljg60NCivjgrfjg6LjgrXjgqss44OS44OH44Om44KtDQor44K344Oi44Ok44OeLOODhuODhOODpA0KK+OCt+ODs+ODnOODqizjg5Ljg63jgqgNCivjgrfjg47jg4/jg6ks44OK44Kq44K/44KrDQor44K344OO44OP44OpLOODkuOCteODiOOCtw0KK+OCt+ODjuOCtuOCrSzjg5Ljg63jgrcNCivjgrfjg47jgrbjgq0s44Oo44K344KzDQor44K344OO44K644KrLOOCseODs+OCpOODgQ0KK+OCt+ODs+ODpCzjg5Ljg4fjgrMNCivjgrfjgqrjgr8s44K444Ol44Oz44Kt44OBDQor44K344Kq44K/44OLLOOCseODs+OCuA0KK+OCt+OCquODpCzjg4jjgqrjg6sNCivjgrfjg6njg4/jg54s44Of44OB44OS44K1DQor44K344Op44KkLOODn+OCqw0KK+OCt+ODqeOCpOOCtyzjg5/jgrUNCivjgrfjg6njgqTjgrcs44Ok44K544OS44OIDQor44K344Op44Kk44K3LOODhOODiOODoA0KK+OCt+ODqeOCrSzjgrHjgqTjgrnjgrENCivjgrfjg6njgrXjgq0s44Kr44K644Om44KtDQor44K344On44Km44OK44K0LOOCv+OCq+OCt+OCsg0KK+OCquOCquODpOODnizjg5/jgqsNCivjgrfjg6Xjg4jjgqYs44OS44Ot44KtDQor44K344Oi44Kk44K6LOODqOODquODiA0KK+OCveOCqOODgCzjgr/jgq/jg58NCivjg5vjg6rjg44s44OS44Ot44Kr44OEDQor44K944OI44K444OeLOODleODiOOCtw0KK+OCueODgCzjg6HjgqTjgrjjg63jgqYNCivjgrnjg4As44Kz44Km44KzDQor44K544OJ44KmLOODkuODh+ODkuODiA0KK+OCueOCrCzjg4/jgrjjg6ENCivjgrnjgqzjg4zjg54s44OS44Ot44Kr44K6DQor44K544Ks44Ov44OpLOOCseOCpA0KK+OCueOCruODkOODpOOCtyzjg57jgrXjg4jjgrcNCivjgrnjgq7jg6Ljg4gs44Of44KrDQor44K544Ku44Oi44OILOODjuODluOCsw0KK+OCueOCruODoOODqSzjg47jg6rjg5LjgrMNCivjgrnjgq7jg44s44K144OI44OrDQor44K544Ku44K144KtLOOCt+ODs+OCpOODgQ0KK+OCueOCruOCteODryzjgr/jgqvjgqoNCivjgrnjgq7jgr8s44K/44Kr44Om44KtDQor44OP44Ok44K3LOOCv+ODnw0KK+OCueOCruOCpuODqSzjg4jjgqrjg6sNCivjgrnjgq7jg6Tjg54s44OI44K344OkDQor44K544Ku44Ok44OeLOOCt+ODs+OCuA0KK+OCueOCtCzjg6TjgrnjgqoNCivjgrnjgqTjgr8s44Oo44K344OS44K1DQor44K544Of44OALOOCouODhOOCtw0KK+OCueODn+OCq+ODryzjgrXjg4jjgrcNCivjgrnjg4rjgqws44OI44Kq44OrDQor44K544OO44OP44OpLOODnuOCteODnw0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgrnjgrrjgq0s44OI44Oi44Om44KtDQor44K544K644KtLOODqOOCt+ODpuOCrQ0KK+OCueOCuuOCrSzjg57jgrXjg5Xjg58NCivjgrnjgrrjgq0s44K344On44Km44K0DQor44K544K644KtLOOCv+OCseODkuODrQ0KK+OCueOCuuOCrSzjg6jjgrfjg47jg6oNCivjgrnjgrrjgq0s44Kr44K644OVDQor44K544K644KtLOOCouOCreOCsw0KK+OCueOCuuOCrSzjgqvjg4Tjg5LjgrMNCivjgrnjgrrjgq0s44K344Ky44OrDQor44Ok44Oe44Kr44OvLOOCv+ODhOOCqg0KK+OCueOCuuOCrSzjgqLjgrXjgrMNCivjgrnjgrrjgq0s44Ki44Kt44OS44KzDQor44OP44KsLOODkuODreOCq+OCug0KK+OCueOCuuOCrSzjgqTjgrXjg4gNCivjgrnjgrrjgq0s44Kr44Kq44OqDQor44K544K644OOLOOCq+ODhOODleODnw0KK+OCt+ODpeODiOOCpizjgq/jg4vjg5Ljg4cNCivjgr/jg5Djg6ks44Oe44KzDQor44K/44OALOODnuOCteODqw0KK+ODj+ODquOCrOOCpCzjgr/jgqvjg47jg5YNCivjgr/jg4As44Oe44K144Om44KtDQor44K/44Ks44K344OpLOODn+ODiuOCsw0KK+OCv+OCsOODgSzjg5/jg6bjgq0NCivjgr/jgrDjg4Es44OO44OW44Ki44KtDQor44K/44K444OeLOOCt+ODs+OCuA0KK+OCv+OCuOODnizjgrfjg7PjgrgNCivjg5vjg4Pjgr8s44K344Ol44Oz44Kk44OBDQor44K/44Kr44OALOODiOODouODjuODqg0KK+OCv+OCq+OCrizjg4jjgrfjgqvjgroNCivjgr/jgqvjgq4s44Oo44Km44Kk44OBDQor44K/44Kr44KuLOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjgqjjgqTjgrMNCivjg4/jgrfjgrDjg4Es44OS44Ot44Ki44KtDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjg58NCivjgr/jgqvjg4/jgrcs44OS44Ot44Of44OBDQor44K/44Kr44OP44K3LOOCq+ODhOODiOOCtw0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjgrMNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44K/44Kr44OP44K3LOODiOODouODkuODrQ0KK+ODj+OCu+OCrOODryzjg4bjg6vjgqoNCivjgr/jgqvjg4/jgrcs44Kx44Oz44K/44Ot44KmDQor44K/44Kr44OP44K3LOODkuODh+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg58NCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OBDQor44K/44Kr44OP44K3LOODqOOCt+ODn+ODhA0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg5Ljg60NCivjgr/jgqvjg4/jgrcs44Kk44OB44K/44Ot44KmDQor44K/44Kr44OP44K3LOOCouODhOODjuODqg0KK+OCv+OCq+ODj+OCtyzjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44OV44K144OS44KzDQor44Kq44Kq44OfLOOCseODs+OCuA0KK+OCv+OCq+ODkuODqSzjg5/jg47jg6sNCivjgr/jgqvjgqQs44Oo44K344OI44OiDQor44K/44Kr44Of44OkLOOCs+OCpuOCuA0KK+OCv+OCq+ODiuOCtyzjg6rjg5sNCivjgr/jgqvjg44s44Of44Kt44KzDQor44K/44Kr44OOLOODqOOCt+ODkuODrQ0KK+OCv+OCq+ODjizjgr/jg57jg6gNCivjgr/jgqvjg44s44Oo44K344OS44OIDQor44K/44Kr44OOLOOCouOCreODkuODrQ0KK+ODj+ODpOOCq+ODryzjg6Ljg4jjg5Ljg60NCivjgr/jgqvjgrfjg54s44K/44OA44K3DQor44K/44Kr44K5LOOCq+ODhOODjuODqg0KK+OCv+OCq+ODiOOCpuODqizjg5Ljg4fjg5LjgrMNCivjgr/jgqvjg4jjg6os44OV44K144OfDQor44K/44Kr44OkLOODjuODquOCouOCrQ0KK+OCv+OCsSzjgqLjgq3jg5Ljg60NCivjgr/jgrHjg4As44K744Kk44K4DQor44K/44Kx44OALOOCpOOCuuODnw0KK+ODm+ODqizjgrPjgqbjgr7jgqYNCivjgr/jgrHjg4As44K344Oz44Kk44OBDQor44K/44Kx44OP44OpLOODkuOCq+ODqw0KK+OCv+OCseOCpCzjgrfjg7PjgqTjg4ENCivjgr/jgrHjg6Ljg4gs44Ki44KtDQor44K/44Kx44Oi44OILOOCouOCreOCueOCsQ0KK+OCv+OCseODiuOCqyzjgrHjg7PjgqTjg4ENCivjg4/jg6Tjgrcs44Oe44K144OS44KzDQor44K/44Kr44KuLOODnuOCteOCrQ0KK+OCv+OCseODiOODnyzjg57jgrXjg47jg6oNCivjgr/jgrHjgqbjg4Es44Of44ObDQor44K/44Kx44Km44OBLOODn+ODhOOCqg0KK+OCv+OCseOCpuODgSzjg47jg5bjg6jjgrcNCivjgr/jgrHjg6Tjgrks44Os44Kk44K4DQor44K/44Kx44K244OvLOODquODp+OCpuOCuA0KK+OCv+OCreODkCzjgrXjg4jjgrcNCivjgr/jgq/jg5ws44K/44Kr44OO44OqDQor44OP44OL44Ol44KmLOODhOODqOOCtw0KK+OCv+ODnuODqOODqizjg6bjgqbjgrMNCivjgr/jg6Ljg4Qs44Om44Km44K/DQor44K/44Og44OpLOODkuODreODpuOCrQ0KK+OCv+ODoOODqSzjgqLjgrHjg58NCivjgr/jg6Djg6ks44Ki44Kt44OpDQor44K/44OK44OZLOODpOOCueODjuODqg0KK+OCv+ODiuODmSzjg5Ljg4fjg5LjgrMNCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOODqOOCt+ODpuOCrQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Ki44OE44K3DQor44K/44Kx44OALOODqOOCt+OCsw0KK+OCv+ODiuOCqyzjgr/jg4DjgrcNCivjg4/jgrvjgqzjg68s44Oe44K144OrDQor44K/44OK44KrLOODkuODh+ODpuOCrQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6jjgrcNCivjgr/jg4rjgqss44Oe44OK44OWDQor44K/44OK44KrLOOCq+ODhOOCrQ0KK+OCv+ODiuOCqyzjg57jgrPjg4gNCivjgr/jg4rjgqss44Om44Km44KzDQor44K/44OK44KrLOOCs+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg6jjgrfjgqoNCivjgr/jg4rjgqss44OI44Kq44OrDQor44K/44OLLOODkuODreOCsw0KK+ODn+OCv+ODiyzjg5jjgqTjgrQNCivjgr/jg4vjgrDjg4Es44OS44OH44Ki44KtDQor44OP44OD44OI44OqLOODkuODreOCsw0KK+OCv+ODi+OCsOODgSzjgrHjg7PjgqTjg4ENCivjgr/jg4vjgrDjg4Es44Om44Km44KzDQor44K/44OL44Kw44OBLOOCq+ODhOODkuOCsw0KK+OCv+ODi+OCq+ODryzjgrHjg7PjgrcNCivjgr/jgrXjgqss44Oe44Kz44OIDQor44K/44K344OeLOOCseOCpOOCueOCsQ0KK+OCv+ODhuOCq+ODryzjg57jgrXjg6sNCivjgr/jg4bjg44s44Kz44Km44K4DQor44OG44Op44K444OeLOODj+OCuOODoQ0KK+ODhuODqeODnuOCqCzjgrvjgqTjgqTjg4Hjg63jgqYNCivjg4bjg6njgrXjg68s44Oe44Kz44OIDQor44OG44Op44Ok44OeLOODn+ODqOOCsw0KK+ODhuOCt+ODnizjgqjjg4Tjg57jgrUNCivjg4jjg4As44Oi44OI44Om44KtDQor44OI44OI44OfLOOCv+OCseODkuOCsw0KK+ODiOOCquODpOODnizjg6bjgq3jg5LjgrMNCivjg4jjgq3jg68s44OB44Ko44KzDQor44OV44Kv44Ok44OeLOOCseODs+OCuA0KK+ODiOOCr+OCtuODryzjg57jgrXjg6sNCivjg4jjg5/jg4rjgqws44Kz44Km44K4DQor44OI44Of44K/LOODkuODh+OCtw0KK+ODiOODn+ODpOODnizjgqvjgrrjg47jg6oNCivjgrXjg6/jg6Djg6ks44K/44OE44OfDQor44OI44Oq44K044KoLOOCteODgOODpuOCrQ0KK+ODiOODquOCv+ODiyzjg5Ljg4fjg47jg6oNCivjg4jjgrXjgqss44K344Ol44Km44K4DQor44OE44Oc44KkLOODnuOCteODkuOCsw0KK+ODkuODqeODkOODpOOCtyzjg4jjg6Ljg4rjg6oNCivjg4Tjg4Hjg4As44OS44Ot44Om44KtDQor44OE44OB44K/44OLLOODkuODh+OCrQ0KK+ODhOODgeODpCzjgrfjgrLjg4gNCivjg4Tjg4As44OS44Ot44K3DQor44OE44OALOOCouODhOODqOOCtw0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4TjgrjjgqQs44Kr44K644KqDQor44OE44K444Og44OpLOODiuODq+ODiA0KK+ODhOOCuOODoOODqSzjgr/jgqvjgrcNCivjg4Tjgrjjg44s44K344Ol44Km44Kk44OBDQor44OE44K444K144OvLOODpuODnw0KK+ODhOOCq+ODgCzjgr/jgqTjgr7jgqYNCivjg4Tjgqvjg4/jg6ks44OG44OE44KqDQor44OE44Kr44Oi44OILOODpOOCueOCrQ0KK+ODhOOCq+ODouODiCzjg6jjgrfjg58NCivjg4Tjgqvjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44OE44ON44OALOODnuOCteODkuODrQ0KK+ODhOODjuODgCzjgr/jgrHjgrcNCivjg4Tjg47jg4As44Kx44Oz44Kk44OB44OtDQor44OE44Or44Oe44OrLOOCv+OCq+OCtw0KK+ODhOOCteOCqyzjgrHjg7MNCivjg4Tjg4TjgqQs44K/44Kr44K344KyDQor44OE44OE44OfLOODnuOCteODjuODqg0KK+ODhOODhOODnyzjg57jgrXjg4/jg6sNCivjg4Tjg4Tjg5/jg4/jg6ks44K/44Kr44KqDQor44Km44OB44OALOODnuOCs+ODiA0KK+OCpuODgeODgCzjgrXjg4Djg6bjgq0NCivjg4/jg6Tjgrcs44K/44Kr44Om44KtDQor44Km44OB44OALOOCv+ODhOODpA0KK+OCpuODgeODjizjgrXjg4jjgrcNCivjgqbjg4Hjg6Tjg54s44Ki44Ok44OODQor44Km44OA44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCpuOCqOODgCzjg5Ljg63jg6bjgq0NCivjgqbjgqjjg4As44Kx44Oz44K4DQor44Km44Ko44OALOOCv+OCseOCtw0KK+ODjeOCuizjg4jjgrfjgqLjgq0NCivjgqbjgqjjg6Djg6ks44K144OI44K3DQor44Km44Ko44Og44OpLOOCt+ODp+OCpuOCvw0KK+OCpuOCqOODoOODqSzjgrHjg7PjgqTjg4ENCivjgqbjgqjjg44s44K344Oz44OkDQor44Km44Ko44OOLOODiOODouODleODnw0KK+OCpuOCqOOCteODryzjg4jjgrfjg5Ljg60NCivjgqbjgqjjg4Tjg5ws44Oo44K344K/44KrDQor44Km44Ko44OE44KtLOODqOOCt+ODhuODqw0KK+OCpuOCseODjizjg6bjgqbjgrnjgrENCivjgqbjg57jg4/jgrcs44OS44OH44OV44OfDQor44Km44Oh44OALOODpOOCueOCv+OCqw0KK+OCpuODoeODoOODqSzjgqvjgqrjg6sNCivjgqbjg5/jg4As44Kz44Km44Kt44OBDQor44Km44Kq44K644OfLOOCteODs+ODmuOCpA0KK+OCpuODqeOCvyzjgrvjg7Pjgr8NCivjgqbjgrfjgq/jgrUs44OI44K344Om44KtDQor44Km44K544OK44OfLOOCuOODpeODsw0KK+ODr+ODgCzjgrjjg6Xjg7PjgqTjg4ENCivjg6/jg4As44Kr44Kq44OqDQor44Ov44OALOODn+OCrQ0KK+ODr+ODgCzjg5/jg4Tjg47jg6oNCivjg6/jgqvjgrss44K144OI44Oo44K3DQor44Ov44KtLOOCv+ODgOOCtw0KK+ODr+OCv+ODiuODmSzjgr/jgrHjgrcNCivjg6/jgr/jg4rjg5ks44OI44Oi44Ki44KtDQor44Ov44K/44OK44OZLOODqOOCt+ODkuOCtQ0KK+ODr+OCv+ODiuODmSzjg4bjgqTjgrgNCivjg6/jgr/jg4rjg5ks44Oo44K344KtDQor44Ov44K/44OK44OZLOODqOOCt+ODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg4gNCivjg6/jgr/jg4zjgq0s44Oo44K344OS44K1DQor44Ov44K/44OM44KtLOODkuODh+OCqg0KK+ODr+OCv+ODqizjg5Ljg63jg5/jg4QNCivjg4/jgrfjgrDjg4Es44K444Ol44Oz44OkDQor44Ok44OWLOOCs+OCpuOCuA0KK+ODpOOCruODjOODnizjg5/jg4TjgqLjgq0NCivjg6Tjgrjjg54s44OK44Kq44KtDQor44Ok44Oe44OALOOCt+OCsuODleODnw0KK+ODpOODnuODgCzjg6jjgrfjgr/jgqsNCivjg6Tjg57jg4As44Om44Km44K544KxDQor44Ok44Oe44OALOODpuOCpuOCsw0KK+ODpOODnuODgCzjgqLjgq3jgqLjg4QNCivjg6Tjg57jg4As44Ki44Kt44OpDQor44Ok44Oe44OALOODgeOCqA0KK+ODpOODnuODgCzjg5Ljg63jgrMNCivjg6Tjg57jg4As44Kr44K644OfDQor44Ok44Oe44OALOODnuOCteODqOOCtw0KK+ODkuOCteODjizjg6rjgqsNCivjg6Tjg57jg4As44K144OI44K3DQor44Ok44Oe44OALOOCteODpOOCqw0KK+ODpOODnuODleOCuCzjgr/jg4Tjg6QNCivjg6Tjg57jgq7jg68s44Ok44K544OS44KzDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44OO44Oq44Om44KtDQor44Ok44Oe44Kw44OBLOODpuOCpA0KK+ODpOODnuOCsOODgSzjgqTjgrXjgqoNCivjg6Tjg57jgrDjg4Es44OG44OE44OkDQor44Ok44Oe44Kw44OBLOOCv+OCseODj+ODqw0KK+ODpOODnuOCsOODgSzjgqLjgq3jg6kNCivjg6Tjg57jgrDjg4Es44K/44Kr44OS44OtDQor44Ok44Oe44Kr44OvLOODpuOCreOCsw0KK+ODpOODnuODouODiCzjg5Ljg63jgrcNCivjg6Tjg57jg6Ljg4gs44Kr44OK44KzDQor44Of44K644K/44OLLOOCreODn+OCqg0KK+ODpOODnuODouODiCzjg5/jg4njg6oNCivjg6Tjg57jg6Ljg4gs44Of44OE44OS44OtDQor44Ok44Oe44Oi44OILOODqOODjuOCueOCsQ0KK+ODpOODnuODouODiCzjg4rjgqrjg4gNCivjg6Tjg57jg6Ljg4gs44K/44Kr44K3DQor44Ok44Oe44Oi44OILOOCq+ODhOOCuA0KK+ODpOODnuODouODiCzjgqvjgroNCivjg6Tjg57jg6Ljg4gs44Kr44K644Ki44KtDQor44Ok44Oe44Oi44OILOODkuODiuOCsw0KK+ODpOODnuODouODiCzjgrfjg7PjgqTjg4ENCivjg6Tjg57jg40s44Oe44Kz44OIDQor44Ok44Oe44ONLOODpOOCueODkuOCtQ0KK+ODpOODnuOCt+OCvyzjg4jjgrfjgqoNCivjg6Tjg57jgrfjgr8s44Kr44K644OS44K1DQor44OP44Oz44OALOOCpOOCteOCqg0KK+ODpOODnuOCpuODgSzjg6jjgrfjg6QNCivjg6Tjg57jgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44Ok44Oe44Km44OpLOOCv+OCq+OCtw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg4gNCivjg6Tjg57jgrbjgq0s44Kr44K644Oo44K3DQor44Ok44Oe44K244KtLOOCseODs+OCpOODgQ0KK+OCv+ODoOODqSzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrbjgq0s44K144OI44K3DQor44Ok44Oe44K244KtLOOCv+OCq+OCqg0KK+ODpOODnuOCvuOCqCzjgr/jgqvjgrcNCivjg6Tjg4rjgq7jgrXjg68s44Om44Of44KzDQor44Ok44OOLOOCv+OCseOCtw0KK+ODpOOCueODgCzjg5Ljg4fjgq0NCivjg6Tjgrnjg4/jg6ks44Kx44Kk44KzDQor44Kz44K344Oi44OILOODouODiA0KK+ODj+OCruODr+ODqSzjg5/jgq3jgqoNCivjg6jjgrPjgr8s44OG44Or44OS44K1DQor44Oo44Kz44Ok44OeLOOCv+OCseOCtw0KK+ODqOODouODgCzjgqLjgq3jg6kNCivjg6jjg4rjgqws44K144OI44K3DQor44Oo44ON44OALOODkuODreOCv+OCsQ0KK+ODqOODjeODpOODnizjgrXjg4Hjg6gNCivjg6jjg43jgrbjg68s44Ko44OqDQor44Oo44ON44K244OvLOODiOODouODkuOCtQ0KK+ODqOOCt+ODgCzjg57jg6bjg58NCivjg6jjgrfjg4As44OG44Or44Ok44K5DQor44Oo44K344OALOOCq+ODhOODkuODrQ0KK+ODqOOCt+ODgCzjg57jgrXjg4gNCivjg6jjgrfjg4As44Ki44Kt44OS44K1DQor44Oo44K344OALOOCteODgeOCsw0KK+ODqOOCt+ODgCzjgrHjg7PjgrQNCivjg6jjgrfjg4As44Kt44Oo44OS44OIDQor44Oo44K344Kw44OBLOODjuODluOCsw0KK+ODqOOCt+OCpCzjg6bjgq3jgqoNCivjg6jjgrfjgqTjgrEs44Kt44Oo44Om44KtDQor44Oo44K344Oe44OELOOCseODs+OCv+ODreOCpg0KK+ODqOOCt+ODjizjg5LjgrXjg6jjgrcNCivjg6jjgrfjg44s44K344Ky44KqDQor44Oo44K344K244OvLOOCquOCteODoA0KK+ODqOODhOOCv+ODiyzjg5/jg4Tjg5Ljg60NCivjg6bjgq3jgrbjg40s44K744Kk44K4DQor44Om44Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCuuOCtyzjg6bjgq3jgqoNCivjgqLjg6njgqQs44Oe44K144OIDQor44OV44K444KtLOODpuOCpuOCpOODgQ0KK+ODkuODqeODjizjgrfjgrLjg6sNCivjgqvjg6Hjg6Tjg54s44OS44OH44OO44OWDQor44Kz44K444OeLOOCq+OCuuOCqg0KK+ODiuOCq+OCqizjg6HjgrDjg58NCivjgqTjg6/jgqvjg68s44K944Km44K/44Ot44KmDQor44OE44OB44OkLOOCv+ODhOODpA0KK+OCpOOCuOODrSzjgrPjgqbjgrgNCivjgq/jg4njgqYs44OI44Oi44KzDQor44OK44Ks44K344OeLOOCq+OCuuODkuODiA0KK+ODj+OCt+OCsOODgSzjgqvjg4Tjg6bjgq0NCivjg4Tjg4Hjg6Qs44Kx44Kk44KzDQor44Kk44K344Oe44OELOODkuODreODpOOCuQ0KK+ODj+ODqeODgCzjg5Ljg63jgr/jgqsNCivjg5/jgrrjg44s44OV44Of44KqDQor44Ob44K344OOLOODj+ODq+OCqg0KK+OCouODmSzjgrfjgrLjg47jg6oNCivjgqLjg5ks44K/44Kr44KzDQor44Ki44OZLOODpuOCv+OCqw0KK+OCouODmSzjgqjjgqTjgqTjg4ENCivjgqLjg5bjgqvjg68s44Of44K1DQor44Ki44OA44OBLOOCseODs+OCv+ODreOCpg0KK+OCouOCpOOCtuODryzjgq3jg6rjgrMNCivjgqLjgrjjg60s44Oe44K144Om44KtDQor44Ki44Kr44KkLOODiOOCt+OCouOCrQ0KK+OCv+ODouODiCzjg5/jgq3jgqoNCivjgqLjgqvjgqTjgrcs44Ko44Kk44OBDQor44Ki44Kr44K3LOODnuODpuODnw0KK+OCouOCreOCpOOCsSzjg6Tjgrnjg5Ljg60NCivjgqLjgq3jgr8s44OO44Oq44OB44KrDQor44Ki44Kt44Ok44OeLOODoOODhOODnw0KK+OCouODnuOCrOOCpCzjg5Ljg4fjg5Xjg58NCivjgqLjg57jgqzjgr8s44K/44Kr44K3DQor44Ki44Oe44OOLOODn+ODmw0KK+OCouODoeODn+ODpCzjgqvjg4Tjg58NCivjgqLjg7Pjg4njgqYs44Kr44K644OS44OtDQor44Ki44Oz44OJ44KmLOOCv+OCq+ODpuOCrQ0KK+OCouODs+ODieOCpizjg4DjgqTjgrQNCivjgqLjg7Pjg4njgqYs44K344Oz44K0DQor44Ki44Oz44K244KkLOODnuOCteODkuODhw0KK+OCouOCquOCrSzjg57jgrXjg4jjgrcNCivjgqLjgqrjgq0s44Ki44Kt44OV44OfDQor44Ki44Kq44Ok44KuLOOCouODhOODiA0KK+OCouOCquODpOODnizjg6bjgqbjgrMNCivjgqLjg6njgqQs44Oe44K144K3DQor44Ki44Op44KkLOODiOODouODiuODqg0KK+OCouODqeOCrSzjg4jjgrfjg5/jg4QNCivjgqLjg6njg6Qs44OS44Ot44Ki44KtDQor44Ki44Oq44OeLOOCt+ODs+OCpOODgQ0KK+OCouODquOCv+OCsSzjgrvjgqTjgrgNCivjgqLjgrXjg4As44K/44Kx44KqDQor44Ki44K144OSLOODpuOCpuOCuA0KK+OCouOCteODjizjgrjjg6Xjg7PjgrMNCivjgqLjgrfjg4As44K144OI44K3DQor44Ki44K344Kr44OvLOOCteODiOOCtw0KK+ODkOODkCzjg6Tjgrnjg6bjgq0NCivjg5Djg5As44K/44Kr44OP44OrDQor44OQ44OQLOOCseODs+OCuA0KK+ODgeODkCzjgrjjg6Xjg7PjgrMNCivjgrTjg4jjgqYs44Oe44K144OS44KzDQor44OB44On44KmLOOCqOOCpOOCuA0KK+ODgOOCpOODiSzjg6bjgqbjgrMNCivjg4njgqLjgqQs44Kz44Km44K4DQor44OJ44KkLOODiOODouODkuODrQ0KK+ODm+OCveOCpCzjgr/jgq/jgrgNCivjg4njgqQs44Kk44K144KqDQor44OJ44KkLOOCseODs+OCpOODgQ0KK+OCqOOCrOOCt+ODqSzjg5Ljg4fjgr/jgqsNCivjgqjjgrDjg4Es44Ok44K544OS44OtDQor44Ko44OQ44OpLOODhOODiOODoA0KK+OCqOODs+ODiSzjgrfjg7PjgqTjg4ENCivjgqjjg7Pjg4ks44K144OI44K3DQor44Ki44Oe44OqLOOCseODs+OCuA0KK+OCqOODjuODouODiCzjgq3jg6jjg58NCivjgqjjg47jg6Ljg4gs44Oe44K144OfDQor44Ko44OO44Oi44OILOOCouOCreODqQ0KK+OCqOODjuODouODiCzjg4Hjgqvjg6kNCivjgqjjgrbjgq0s44Kr44K644OS44OIDQor44OV44K444OP44OpLOODnuOCteODj+ODqw0KK+ODleOCuOOCpCzjgr/jgqvjgrcNCivjg5XjgrjjgqQs44K144OE44KtDQor44OS44Or44Kr44OvLOOCseODsw0KK+ODleOCuOOCpCzjg57jgrXjg5LjgrMNCivjg5XjgrjjgrXjg68s44OP44Or44OfDQor44OV44K444K144OvLOODkuODreODpuOCrQ0KK+ODkuOCtCzjgqvjg4Tjg6bjgq0NCivjg5Xjgrjjgr8s44OE44Oo44K3DQor44OV44K444K/LOOCv+OCq+OCtw0KK+ODleOCuOODr+ODqSzjg4jjgqrjg6sNCivjg5Xjgqvjg58s44Ok44K544Om44KtDQor44OV44Kr44K244OvLOOCv+OCseOCtw0KK+ODj+OCu+OCrOODryzjg6jjgqbjgrnjgrENCivjg5Xjgq/jg4As44K444Ol44Oz44KzDQor44OV44Kv44Oi44OILOODn+ODhOOCqg0KK+ODleOCr+ODoOODrSzjgr/jgqvjgrcNCivjg5Xjgq/jg60s44Ok44K544KzDQor44OV44Kv44K3LOODkuODreODnw0KK+ODleOCr+OCt+ODnizjgr/jgqvjg58NCivjg5Xjgq/jgrfjg54s44K344Oz44Kk44OBDQor44OP44Ku44Ov44OpLOODiOOCt+OCqg0KK+ODleOCr+OCt+ODnizjgqLjgq3jg6kNCivjg5Xjg4rjgq0s44OK44Kq44KtDQor44OV44OK44Kv44OcLOODleODn+OCqg0KK+ODj+ODqeODgCzjg5/jg47jg6sNCivjg5Xjg6vjg4/jgr8s44Oi44OI44OV44OfDQor44OV44Or44Kr44OvLOODnuODgeOCsw0KK+ODleODq+ODouODiCzjgr/jgqvjgrcNCivjg5Xjg6vjg6Qs44OI44Oi44OkDQor44OV44K344OfLOODkuODreODnw0KK+OCtOOCpuODgCzjg5/jgq3jgqoNCivjgqTjg6rjgqgs44K344Oz44K4DQor44Kk44K344OP44OpLOOCouOCreODqQ0KK+OCpOODgeOCq+ODryzjg57jgrXjg6bjgq0NCivjgqTjg5As44Oe44OfDQor44Kk44Ov44K144KtLOOCteOCqOOCsw0KK+OCpOODjuOCpuOCqCzjgqLjg6TjgrMNCivjgqTjgqTjg6Ljg6os44Oe44K144OS44OtDQor44Kk44OP44OpLOOCu+OCpOOCuA0KK+OCpOODr+ODoOODqSzjgrfjg6fjgqbjgr8NCivjgqTjg4rjgqzjgq0s44Om44Kt44KqDQor44Kk44K344K444OeLOOCq+OCuuODkuODrQ0KK+OCpOODiOOCpizjgrfjg63jgqYNCivjgrTjg7Pjg4njgqYs44K344Ol44Km44K4DQor44K044OI44KmLOOCueODn+ODrA0KK+OCpOOCt+OCq+ODryzjg57jgrXjg5LjgrMNCivjgqTjg4jjgqYs44Oe44K144OO44OWDQor44Kk44K744KtLOODquOCsw0KK+OCtOODiOOCpizjg5Ljg63jg6bjgq0NCivjg4/jg4As44OS44OH44Ki44KtDQor44OP44Ku44Ov44OpLOODn+ODr+OCsw0KK+ODj+OCruODr+ODqSzjg4jjg6LjgrMNCivjg4/jgqTjgrjjg54s44Ki44Kk44KzDQor44OP44Oe44OALOODkuODreOCtw0KK+ODj+ODnuODjizjg5Ljg63jg4TjgrANCivjg4/jg57jgqrjgqss44Kz44K544KxDQor44OP44OK44OJLOODn+ODjuODqw0KK+ODj+ODiuOCvyzjg4bjg4Tjg6QNCivjg4/jg6ks44OI44Oi44OS44KzDQor44OP44OpLOODpuOCpuOCuA0KK+ODj+ODqSzjgr/jgrHjgrcNCivjg4/jg6ks44Kt44On44Km44KzDQor44OP44Op44OALOOCt+ODsw0KK+ODj+ODqeODgCzjgr/jgrHjgrcNCivjg4/jg6njg4As44Ki44Kt44OS44OIDQor44K544K644KtLOOCv+OCseODrQ0KK+ODj+ODqeOCrCzjgr/jg4Tjg6QNCivjg4/jg6njg58s44Kx44Oz44K/44Ot44KmDQor44OP44Op44Ok44OeLOODjuODluODkuOCsw0KK+ODj+ODqeOCvuODjizjg47jg5bjg5Ljg60NCivjg4/jgrvjg5ks44K/44Kv44K4DQor44Kr44ON44KzLOODiOODouOCouOCrQ0KK+ODhOODgeODgCzjg6jjgqbjgqTjg4ENCivjg4/jgrfjg6Ljg4gs44Oq44KoDQor44OP44K344Oi44OILOODleODn+ODkuODrQ0KK+ODj+OCt+ODouODiCzjgqvjg4rjgqgNCivjg4/jgrfjg6Ljg4gs44K144OI44K3DQor44OP44K344Oi44OILOOCv+OCq+OCouOCrQ0KK+ODj+OCt+ODouODiCzjg5Ljg4fjgq0NCivjg4/jgrfjg6Ljg4gs44OS44OH44KtDQor44OP44K344Oi44OILOODqOOCt+ODkuOCsw0KK+ODj+OCvyzjgrHjgqTjgrMNCivjg4/jg4Pjg4jjg6os44OS44OH44Ki44KtDQor44OP44OD44OI44OqLOODnuOCs+ODiA0KK+ODj+ODg+ODiOODqizjgrvjgqTjgrgNCivjg4/jg6Tjgqvjg68s44Kt44Oo44K3DQor44OP44Ok44Kr44OvLOODkuODh+ODj+ODqw0KK+ODj+ODpOOCteOCqyzjg6jjgrfjgqvjgroNCivjg4/jg6TjgrXjgq0s44K744Kk44K0DQor44OP44Ok44K3LOODiOOCt+ODkuOCsw0KK+ODj+ODpOOCtyzjgr/jgqvjg6jjgrcNCivjg4/jg6Tjgrcs44K/44Kr44OK44OqDQor44OP44Ok44K3LOODpOOCueOCrQ0KK+ODj+ODpOOCtyzjgqLjgq3jg6kNCivjg4/jg6Tjgrfjg4As44Kx44Oz44K+44KmDQor44OS44OTLOOCq+OCuuODjuODlg0KK+ODkuOCrOOCtyzjg6Tjgrnjg5Ljg60NCivjg5Ljgqzjgrcs44Kr44K644KqDQor44OS44Kw44OBLOOCs+OCpuOCpOODgeODreOCpg0KK+ODkuOCuOOCq+OCvyzjgrHjg7PjgrgNCivjg5Ljgrjjg6Qs44Oo44K344KqDQor44OS44OK44KsLOOCv+OCseOCtw0KK+ODkuODqeOCq+ODryzjg5Ljg4fjgqLjgq0NCivjg5Ljg6njg44s44OS44Ot44KzDQor44OS44Op44OOLOOCpOOCv+ODqw0KK+ODkuODqeODjizjgr/jg4DjgqoNCivjg5Ljg6njgqos44K/44Kr44OS44OIDQor44OS44Op44K344OeLOODiuOCquOCrQ0KK+ODkuODqeODpOODnizjg4jjgrfjg63jgqYNCivjg5Ljg6njg6Tjgrks44OS44OI44K3DQor44OS44Oq44KtLOOCseODs+OCpOODgeODrQ0KK+ODkuODreODnuOCtSzjg6/jgr/jg6sNCivjg5Ljg63jg6Ljg4gs44K344Oz44K4DQor44OS44Ot44Kq44KrLOODnuODiuODlg0KK+ODkuODreOCuyzjg6bjg5/jgrMNCivjg5Ljg63jgrss44Oe44OE44K/44Ot44KmDQor44Km44Oh44OALOODquODp+OCpuOCpOODgQ0KK+ODm+ODs+ODgCzjgrXjg4rjgqgNCivjg5vjg7Pjg4ks44K/44Kx44K3DQor44Ob44Oq44Oi44OILOODpOOCueODpuOCrQ0KK+ODm+ODquODjizjgqvjgrrjgrfjgrINCivjg5vjg6rjgqbjg4Es44K/44Kr44ONDQor44Ob44K144KrLOOCouOCreOCsw0KK+ODm+OCt+ODjizjg57jgrPjg4gNCivjg5vjgrfjg6Tjg54s44Of44Ku44OV44OfDQor44Ob44K944Kr44OvLOODhuODhOODpA0KK+ODm+OCveOCq+ODryzjg6jjgrfjg5Ljg60NCivjg5vjgr3jgqvjg68s44K344Ky44KqDQor44Ob44K944OkLOODkuODreOCtw0KK+OCpOODkOODqeOCrSzjg47jg5bjgqoNCivjgqTjg4Hjg4/jg6ks44OS44K144Of44OEDQor44Kk44OB44OP44OpLOOCv+OCq+OCtw0KK+OCpOODgeODj+ODqSzjg47jg5bjgrMNCivjgqTjg4Hjgqvjg68s44Kx44Oz44Kk44OBDQor44Kk44OB44OO44K7LOOCteODiOOCtw0KK+OCpOODgCzjgr/jgrHjgrcNCivjgqTjg4fjgrDjg4Es44Kr44K644OS44OIDQor44Kk44OJLOODnuOCteOCtw0KK+OCpOOCrOODqeOCtyzjgqvjg4Tjg47jg5YNCivjgqTjgqzjg6njgrcs44Om44Kt44OS44KzDQor44Kk44Ks44Op44K3LOODkuODreOCtw0KK+OCpOOCpOODgCzjg5Ljg63jgqoNCivjgqTjgqTjg4As44Kr44OE44OI44K3DQor44Kk44Kk44K444OeLOOCs+OCpuOCuA0KK+OCpOOCseODgCzjg6rjg6fjgqYNCivjgqTjgrHjg4As44OI44Oi44OfDQor44Kk44Kx44OALOODiOODouODnw0KK+OCpOOCseODgCzjg6jjgqbjgrMNCivjgqTjg57jgqQs44Kz44Km44KtDQor44Kk44Oe44Kk44K644OfLOOCseOCpOOCsw0KK+OCpOODnuOCpOOCuuODnyzjg5/jg68NCivjgqTjg57jg6Djg6ks44Kq44K144OgDQor44Kk44Oe44Og44OpLOODn+ODjuODqw0KK+OCpOODouODsyzjgqvjgrrjg6bjgq0NCivjgqTjg4rjg4As44Oe44K544OfDQor44Kk44OK44Ks44KtLOOCq+OCuuODpA0KK+OCpOODiuOCrOOCrSzjg5/jg4Tjg6QNCivjgqTjg4rjg6Djg6ks44K/44Kr44K3DQor44Kk44OK44Og44OpLOODiOODouODjuODqg0KK+OCpOODjizjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqTjg47jgqvjg68s44Ki44K544KzDQor44Kk44OO44Oe44K/LOOCq+OCuuODkuODiA0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgqvjgroNCivjgqTjg47jgqbjgqgs44K144OI44K3DQor44Kk44OO44Km44KoLOOCt+ODmw0KK+OCpOODjuOCpuOCqCzjg6Tjgrnjg5Ljg60NCivjgqTjg47jgqbjgqgs44Om44Km44K4DQor44Kk44OO44Km44KoLOODpuOCpuOCvw0KK+OCpOODjuOCpuOCqCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjg4zjgqQs44K344Oz44Kk44OB44Ot44KmDQor44Kk44OM44K344OeLOODnuODpuODnw0KK+OCpOODquOCqCzjg57jgrXjg47jg6oNCivjgqTjgrXjgqss44K344Ky44OrDQor44Kk44K344OQLOODgeODkuODrQ0KK+OCpOOCt+ODkOOCtyzjg4DjgqTjgrnjgrENCivjgqTjgrfjg5Djgrcs44OS44OH44KtDQor44Kk44K344OALOODkuODreODn+ODhA0KK+OCpOOCt+ODgCzjg5Ljg63jgrcNCivjgqTjgrfjg4As44Kr44OE44OS44OtDQor44Kk44K344OALOOCseOCpOOCpOODgQ0KK+OCpOOCt+OCrOODnyzjgrPjgqbjgqTjg4ENCivjgqTjgrfjgrDjg60s44Kz44Km44K4DQor44Kk44K344OP44OpLOODnuODquOCsw0KK+OCpOOCt+OCpCzjg57jgrXjg5Ljg60NCivjgqTjgrfjgqQs44OK44Kq44OfDQor44Kk44K344KkLOODjuODnOODqw0KK+OCpOOCt+OCpCzjgrvjg4TjgrMNCivjgqTjgrfjgqQs44K/44OA44K3DQor44Kk44K344KkLOOCv+OCq+ODj+ODqw0KK+OCpOOCt+OCq+ODryzjg4jjgrfjgqoNCivjgqTjgrfjg57jg6ss44OE44Oo44K3DQor44Kr44Ov44K6LOODqOOCpuOCpOODgQ0KK+OCpOOCt+OCuuOCqyzjg6bjgq3jgqoNCivjgqTjgr/jg6Qs44OO44Oq44OS44K1DQor44Kk44Kk44OALOOCouOCreODkuODrQ0KK+OCpOODiOOCpizjg5Ljg63jg5/jg4ENCivjgqTjg4jjgqYs44OS44Ot44K3DQor44Kk44OI44KmLOOCpOOCr+OCqg0KK+OCpOODiOOCpizjgqvjgrrjg6QNCivjgqTjg4jjgqYs44K344On44Km44KzDQor44Kk44OI44KmLOOCq+OCuuODkuODrQ0KK+OCpOODiOOCpizjgrjjg6Xjg7MNCivjgqTjg4jjgqYs44Oe44Kz44OIDQor44Kk44OI44KmLOOCquOCteODoA0KK+OCpOODiOOCpizjg6jjgrfjg57jgrUNCivjgqTjg4jjgqYs44Oe44K144Om44KtDQor44Kk44OI44KmLOODnuOCteODnw0KK+OCpOODiOOCpizjg5Ljg63jgqLjgq0NCivjgqTjg4jjgqYs44K/44Oe44KtDQor44Kk44OI44KmLOOCreODqOOCv+OCqw0KK+OCpOODiOOCpizjg57jgrXjg5Xjg58NCivjgqTjg4jjgqYs44OS44Ot44Kr44K6DQor44Kk44OI44KmLOODpuOCreOCqg0KK+OCpOODiOOCpizjgqjjgqTjgrgNCivjgqTjg4jjgqYs44Of44Ob44KzDQor44Kk44Ov44KkLOOCv+OCq+ODpuOCrQ0KK+OCpOODr+OCpCzjgqvjgrrjgrfjgrINCivjgqTjg6/jg58s44Kt44Oo44K3DQor44Kk44Ov44Og44OpLOODqOOCt+OCv+OCqw0KK+OCpOODr+ODiuOCrCzjg4rjgqrjgrMNCivjgqTjg6/jgqos44Kr44K644Ki44KtDQor44Kk44Ov44K144KtLOODquODpeOCpuOCsw0KK+OCpOODr+OCvyzjgq3jg6jjgrMNCivjgqTjg6/jgr8s44Of44OE44OS44OtDQor44Kk44Ov44K/LOOCt+ODs+OCuA0KK+OCpOOCuuODnyzjg47jgr7jg6ANCivjgrjjg7Pjg5As44OE44ON44OO44OqDQor44OO44Km44OBLOODquOCqA0KK+ODqeOCryzjg6jjgrfjg47jg6oNCivjgqvjgqzjg58s44OS44Ot44K3DQor44Kr44Ks44OvLOOCseOCpOOCvw0KK+OCq+OCsuODpOODnizjgr/jg57jgq0NCivjgqvjgqQs44K444Ol44OzDQor44Kr44K444Oi44OILOOCv+OCr+ODpA0KK+OCq+OCuOODr+ODqSzjgrvjgqTjgrgNCivjgq/jg6rjg4/jg6ks44Ko44Kk44K4DQor44Kr44Kt44Og44OpLOOCuOODpeODsw0KK+OCq+OCreODjuOCrSzjgr/jgqvjgqLjgq0NCivjgqvjgq3jgqbjg4Es44OS44Ot44Om44KtDQor44Kr44Kt44K244KtLOOCs+OCpuOCuA0KK+OCq+OCsyzjg4jjgrfjg5LjgrMNCivjgqvjg6Hjgrfjg54s44OA44Kk44K544KxDQor44Kr44Of44Ko44K5LOOCqOOCpOOCpOODgQ0KK+OCq+ODn+OCr+ODqSzjg5Ljg63jgrcNCivjgqvjg5/jg6Djg6ks44Kz44Km44Kk44OB44Ot44KmDQor44Kr44Of44K/44KtLOODnuOCteOCuA0KK+OCq+ODn+ODqOOCt+OCq+ODryzjg57jgrXjg6bjgq0NCivjgqvjg7Ms44K/44Kv44OkDQor44Kr44OK44KkLOODiOOCt+OCq+OCug0KK+OCq+ODs+ODkOODpOOCtyzjgqTjg4Hjg63jgqYNCivjgqvjg7Pjg4As44Oo44K344OS44OIDQor44Kr44ON44KzLOOCv+OCq+ODpuOCrQ0KK+OCq+ODjeOCsyzjg6Tjgrnjg6bjgq0NCivjgqvjg43jgr8s44K/44Kr44K3DQor44Kr44OO44KmLOODnuODpuODnw0KK+OCq+ODquODjizjg5Ljg63jgrcNCivjgqvjgrXjg58s44Kr44OK44KoDQor44Kr44K144OK44OfLOOCv+OCq+ODiA0KK+OCq+OCuyzjg57jg6Ljg6sNCivjgqvjgrnjgqws44OS44Ot44K3DQor44Kr44K544OkLOODnuOCteODiuODqg0KK+OCq+OCv+OCquOCqyzjg47jg6rjgrMNCivjgqvjg4jjgqYs44OK44Kq44KzDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODiOOCpizjg57jgrXjg6bjgq0NCivjgqvjg4jjgqYs44OO44Oq44Ki44KtDQor44Kr44OI44KmLOOCv+ODgOOCouOCrQ0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOOCv+OCq+ODpuOCrQ0KK+OCq+ODiOOCpizjgqLjgq3jg5Ljg4gNCivjgqvjg4jjgqYs44K444Ot44KmDQor44Kr44OE44Oe44K/LOOCr+ODnw0KK+OCq+ODhOODqSzjg57jgrXjgq0NCivjgqvjg6/jg5ks44Oo44K344Om44KtDQor44Kr44Ov44OALOOCv+OCseOCtw0KK+OCq+ODr+OCsOODgSzjg5Ljg4fjgq0NCivjgrXjgqTjg4jjgqYs44OS44OH44K/44KrDQor44Kr44Ov44Kw44OBLOOCpOOCr+OCsw0KK+OCq+ODr+ODj+OCvyzjgqvjgqrjg6oNCivjgqvjg6/jgqvjg58s44Kr44K644Oo44K3DQor44Kr44Ov44Kr44OfLOOCseODs+OCpOODgQ0KK+ODpOOCuOODnizjg5/jg4Tjg6gNCivjgqvjg6/jg6Ljg4gs44OE44Oo44K3DQor44Kr44Ov44Og44OpLOODkuODh+OCouOCrQ0KK+OCq+ODr+ODoOODqSzjg5Ljg63jgrcNCivjgqvjg6/jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Kr44Ov44Og44OpLOODnuODqg0KK+OCq+ODr+ODjizjg57jgrXjg5LjgrMNCivjgqvjg6/jg44s44Oe44K144Kr44OEDQor44Kr44Ov44K144KtLOOCt+OCsuODpuOCrQ0KK+OCq+ODr+OCuyzjgrHjg7PjgrgNCivjgqvjg6/jgrfjg54s44OI44K344OkDQor44Kr44Ov44K344OeLOODqOOCt+ODj+ODqw0KK+OCq+ODr+OCt+ODnizjg5Ljg4fjgq0NCivjgqvjg6/jgrfjg54s44Ok44K544OO44OWDQor44Kt44OALOODn+ODjuODqw0KK+OCreOCr+ODgSzjgqvjgrrjg6QNCivjgq3jgq/jg4Es44K/44Kr44OS44OHDQor44Ok44Oe44Oi44OILOODpOOCueODkuODrQ0KK+OCouOCreODqOOCtyzjg6Tjgrnjg5Ljg60NCivjgq3jgq/jg4Es44Oe44Oi44OrDQor44Kt44Kv44OBLOOCv+ODhOODpA0KK+OCreOCr+ODgSzjg5/jg4Tjg6sNCivjgq3jgq/jg4Es44Ki44Kt44KzDQor44Kt44Og44OpLOODleODn+ODkuOCsw0KK+OCreODoOODqSzjg57jgrXjg5LjgrMNCivjgq3jg6Djg6ks44Ki44Kt44OS44KzDQor44Kt44Og44OpLOOCouODhOOCtw0KK+OCreODoOODqSzjg5Ljg63jgrcNCivjgq3jg6Djg6ks44Oe44K144KtDQor44Kt44Og44OpLOODn+ODjuODqw0KK+OCq+ODiOOCpizjgrfjg6fjgqbjgrgNCivjgq3jg4rjgrss44Om44Km44K4DQor44Kt44ONLOODnuOCteOCsw0KK+OCreODjizjgqLjgq0NCivjgq3jg44s44Kr44K644OS44OtDQor44Kt44OO44K344K/LOOCseOCpOOCvw0KK+OCreODqSzjg6jjgqbjgrMNCivjgq3jgrfjg6Ljg4gs44OI44Kq44OrDQor44Kt44K/44OQ44K/44KxLOOCouOCreOCqg0KK+OCreOCv+ODkOOCv+OCsSzjgr/jgqvjg5LjgrMNCivjgq3jgr/jgqzjg68s44Kq44K144OgDQor44Kt44K/44Ks44OvLOODgeOCq+OCsw0KK+OCreOCv+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgr/jgqvjg4/jgrcs44Oh44Kw44OfDQor44Kt44K/44Ok44OeLOOCqOOCpOOCuA0KK+OCreODqOODiuODqizjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K3DQor44Kz44OQ44Ok44K3LOODiOOCt+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjgqLjgq3jgrMNCivjgrPjg5Djg6Tjgrcs44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgqLjgq0NCivjgrPjg5Djg6Tjgrcs44OK44Kq44KtDQor44Kk44OI44KmLOOCt+ODs+OCuA0KK+OCs+ODs+ODjizjg6jjgqbjgqTjg4ENCivjgrPjg7Pjg44s44K/44Kr44Of44OEDQor44Kz44Oz44OOLOODkuODreOCtw0KK+OCs+ODs+ODjizjgqvjgrrjgqLjgq0NCivjgrPjgqTjgrEs44OI44Oi44OV44OfDQor44Kz44K444OeLOODr+OCv+ODqw0KK+OCs+OCr+OCt+ODp+OCpizjg57jgrXjg6sNCivjgrPjg57jgq0s44Kr44K644OkDQor44Oe44Kr44OZLOOCteODluODreOCpg0KK+OCs+ODnuODhCzjgr/jgrHjgrcNCivjgrPjg57jg4Qs44OS44Ot44KoDQor44Kz44Oz44OJLOOCt+ODsw0KK+OCs+ODs+ODiSzjgr/jgq/jg58NCivjgrPjg7Pjg4ks44Oe44K144Om44KtDQor44Kz44K344OQLOODn+OCrQ0KK+ODqOOCs+OCqCzjg6Tjgrnjg47jg6oNCivjgrPjg4bjgqzjg68s44Oe44K144OO44OqDQor44Kz44Oz44OOLOOCq+OCuuOCouOCrQ0KK+OCs+ODpOODnizjg6zjgqTjgrMNCivjgrPjg6Tjg54s44Oi44OI44Kv44OLDQor44Kz44Ok44OeLOODkuODreOCv+OCqw0KK+OCs+OCtuOCuSzjg4jjgrfjg47jg6oNCivjgq/jg4HjgqTjgrcs44Kr44K644OI44K3DQor44Kv44Ku44Of44OkLOODquODpeOCpuOCueOCsQ0KK+OCr+OCuOODqeOCpCzjgqLjg4TjgrcNCivjgq/jg57jg47jg5/jg4ks44OS44Ot44K3DQor44Kv44Oe44K244KtLOODiOODouOCrQ0KK+OCr+ODrOODnuODhCzjgr/jgqvjg5Ljg4cNCivjgq/jg6rjgq0s44Oe44K144Om44KtDQor44Kv44Oq44Ok44OeLOODiOOCt+ODreOCpg0KK+OCr+ODquODpOODnizjg5Ljg63jgrcNCivjgq/jg63jg5ks44OK44Kq44OIDQor44Kv44Ot44K144OvLOODiOODouOCouOCrQ0KK+OCr+ODreOCteODryzjg6Tjgrnjg6bjgq0NCivjgq/jg6rjg6XjgqYs44Oo44K344KoDQor44Kv44K144OOLOOCq+ODhOODpuOCrQ0KK+OCr+ODr+ODj+ODqSzjgrjjg6Xjg7MNCivjgq/jgrrjg44s44Oo44K344K/44KrDQor44Kt44Ol44Km44OALOOCv+OCr+ODpA0KK+ODnuODluODgSzjgrHjg7PjgqTjg4ENCivjg57jg4Hjgr8s44Oe44K144KtDQor44Oe44Ko44OALOODqOOCpuOCpOODgQ0KK+ODnuOCqOOCpOOCqCzjgqLjgq3jg5Xjg58NCivjg57jgqjjgqvjg68s44OB44Ki44KtDQor44Oe44Oe44OALOODkuODreOCtw0KK+ODnuODiuODmSzjg5Ljg63jgr/jgqsNCivjg57jg4rjg5ks44Kr44K644KqDQor44Oe44Or44Kk44OBLOODnuOCteODpuOCrQ0KK+ODnuODq+OCv+ODiyzjgr/jgqvjg5Ljg4cNCivjg57jg6vjg6Tjg54s44K/44Kr44KzDQor44Oe44K144Kq44KrLOOCv+OCq+ODpuOCrQ0KK+ODnuOCueODgCzjgr/jg4Tjg58NCivjg57jgrnjg4As44OE44Oo44K3DQor44Oe44K544OALOODqOOCt+ODluODnw0KK+ODnuOCueODgCzjg6bjgq3jgrMNCivjg57jgrnjg4As44OS44Ot44Kr44K6DQor44Oe44OE44OQ44OpLOOCs+OCpuOCvuOCpg0KK+ODnuODhOODgCzjgqvjg4Tjg6QNCivjg57jg4Tjg4As44OS44Ot44Om44KtDQor44Oe44OE44OA44Kk44OpLOODiOOCt+ODleODnw0KK+ODnuODhOOCqOODgCzjgqLjg6bjg58NCivjg57jg4TjgqQs44OS44OH44K3DQor44Oe44OE44KkLOODkuODreOCrQ0KK+ODnuODhOODouODiCzjg47jg5bjgqoNCivjg57jg4Tjg6Ljg4gs44K744Kk44Kk44OBDQor44Oe44OE44Oi44OILOOCq+OCuuODkuODrQ0KK+ODnuODhOODouODiCzjgq3jg6jjgqvjgroNCivjg57jg4Tjg6Ljg4gs44Kt44On44Km44KzDQor44Oe44OE44Oi44OILOODqOOCt+OCrQ0KK+ODnuODhOODouODiCzjg4rjg6rjgqLjgq0NCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OO44OqDQor44Oe44OE44Oi44OILOOCseODsw0KK+ODnuODhOODouODiCzjg4jjgrfjgqvjgroNCivjg57jg4Tjg6Ljg4gs44Kx44OzDQor44Oe44OE44Oi44OILOODgOOCpA0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjg6Djg6ks44Kv44OfDQor44Oe44OE44OK44KsLOOCseODs+OCuOODreOCpg0KK+ODnuODhOODjizjgqvjgrrjg4gNCivjg57jg4Tjgqos44Oq44Ol44Km44Kk44OBDQor44Oe44OE44KqLOOCv+OCq+OCqg0KK+ODnuODhOOCquOCqyzjgr/jgrHjgrcNCivjg57jg4Tjgqrjgqss44Kr44K644OO44OqDQor44Oe44OE44Kq44KrLOOCv+ODgOOCouOCrQ0KK+ODnuODhOOCquOCqyzjg5Ljg63jgrcNCivjg57jg4Tjgqrjgqss44Ki44OE44K3DQor44Oe44OE44K344OeLOOCreODn+OCqg0KK+ODnuODhOOCv+ODiyzjgqLjg6QNCivjg57jg4Tjg6Tjg54s44Kz44Km44K/44Ot44KmDQor44Of44OB44Oi44OILOODnuODpuODnw0KK+ODn+OCqOOCrSzjgr/jgq/jg63jgqYNCivjg5/jgqvjg58s44Kr44K644OfDQor44Of44Kr44OfLOODqOOCt+OCv+OCqw0KK+ODn+ODiuOCrOODryzjg4Tjg6jjgrcNCivjg5/jg4rjgqvjg68s44K344On44Km44KzDQor44Of44K344OeLOOCq+OCuuODnw0KK+ODn+OCt+ODnizjgrfjg47jg5YNCivjg5/jgrfjg54s44OS44Ot44Ki44KtDQor44Of44K/44OBLOOCs+OCpuOCuA0KK+ODn+ODhOODgCzjg4rjgqrjgq0NCivjg5/jg4Tjg4/jgrcs44K444Ol44OzDQor44Of44OE44KkLOODkuODreOCtw0KK+ODn+ODhOODouODiCzjgq3jg6jjg58NCivjg5/jgqbjg6ks44Kt44On44Km44K4DQor44Of44Km44OpLOODnuOCteODkuODrQ0KK+ODn+ODpOODmSzjgqLjgq3jg6kNCivjg5/jg6Tjg4Es44Oe44K144Om44KtDQor44Of44Ok44K444OeLOOCouOCreODjuODqg0KK+ODkOODsyzjg57jg4rjg5YNCivjg5/jg6Tjg6Ljg4gs44OI44K344Ki44KtDQor44Oo44Kz44KoLOOCs+OCpuOCvuOCpg0KK+ODn+ODpOOCteOCqyzjgrHjgqTjgqTjg4ENCivjg5/jg6Tjgr8s44OS44Ot44Om44KtDQor44Of44Ok44K/LOOCq+OCuuOCqg0KK+ODn+ODpOOCpuODgSzjg57jgrXjg5Ljg60NCivjgqbjg4Hjg6Tjg54s44Of44Kt44KzDQor44K144Kr44KkLOODquODp+OCpuOCueOCsQ0KK+ODn+ODpOOCtuODryzjg4jjgrfjgqLjgq0NCivjg5/jgr7jg5bjg4Es44Ko44Kk44KzDQor44Of44K+44Kw44OBLOOCouOCreODqQ0KK+ODn+OCvuOCsOODgSzjgqTjgrrjg58NCivjg5/jgrrjg6Ljg4gs44Ki44OE44OS44KzDQor44Of44K644OOLOODnuOCteODqOOCtw0KK+ODn+OCuuODjizjg57jgrXjg6bjgq0NCivjg5/jgrrjg44s44Om44Km44K4DQor44Of44K644K344OeLOODpuOCreOCqg0KK+ODn+OCuuOCvyzjg6bjgr/jgqsNCivjg5/jgrrjgr/jg4ss44OS44K144OIDQor44Oi44KuLOOCq+OCuuODjuODqg0KK+ODouOCrizjg6Ljg6bjg6sNCivjg6Ljgq4s44OS44Ot44K3DQor44Oi44Oi44K7LOODgOOCpOOCueOCsQ0KK+ODouODs+ODnizjg6bjgqbjgrgNCivjg6Ljg6os44Os44Kk44KzDQor44Oi44OqLOOCseOCpOOCueOCsQ0KK+ODouODqizjgrHjg7PjgqTjg4ENCivjg6Ljg6os44Oe44K144OS44OtDQor44Oi44OqLOODquOCqw0KK+ODouODqizjg4Tjg4jjg6ANCivjg6Ljg6rjg6Ljg4gs44Om44Kt44OS44OtDQor44Oi44Oq44OOLOODqOOCpuOCueOCsQ0KK+ODqOOCt+ODgCzjg4rjgqrjg5Xjg58NCivjg6Ljg6rjgr8s44OS44OH44OO44OWDQor44Oi44Oq44K/LOOCq+OCuuODkuOCtQ0KK+ODouODquOCvyzjgqvjg4Tjg58NCivjg6Ljg6rjgr8s44Oo44K344OkDQor44Oi44Oq44K/LOOCt+OCsuOCqg0KK+ODouODquODr+OCrSzjgr/jgq/jgqoNCivjg6Ljg60s44Oo44K344Ot44KmDQor44Oi44K/44KkLOODkuODreOCtw0KK+ODouODiOODkOODpOOCtyzjgrXjg4jjg6sNCivjg6Ljg4jjg4/jgrcs44K344Ky44Oe44K1DQor44Oi44OI44Ok44OeLOODnuOCteODjuODqg0KK+ODouODiOOCtuODryzjg6bjgqbjgrgNCivjg6Djgqvjg68s44Kk44OE44KzDQor44Og44OK44Kr44K/LOODleODn+OCsw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jgqLjgq0NCivjg6Djg6njgqvjg58s44Oo44K344KtDQor44Og44Op44Kr44OfLOODkuODreODpuOCrQ0KK+ODoOODqeOCq+ODnyzjg6TjgrnjgrMNCivjg6Djg6njgqvjg58s44Ki44Kt44OS44K1DQor44Og44Op44Kr44OvLOODnuOCteOCsw0KK+ODoOODqeODiuOCqyzjg57jg6bjgrMNCivjg6Djg6njgr8s44OI44Oi44OO44OqDQor44Og44Op44K/LOODkuODreOCrQ0KK+ODoOODqeODpOODnizjgrHjg7PjgrgNCivjg6Djg6njg6Tjg54s44OS44Ot44K3DQor44Og44Ot44OP44K3LOOCs+OCpuOCuA0KK+ODoOODiOOCpizjgqvjgqrjg6sNCivjg6Djg4jjgqYs44Ki44Kt44KzDQor44OK44OQLOODkuODreODpuOCrQ0KK+ODiuOCrOOCpCzjg57jgrXjg6sNCivjg4rjgqzjgqQs44OK44Kq44Ki44KtDQor44OK44Ks44OOLOOCq+ODhOODpA0KK+ODiuOCrOODjizjgr/jg57jg58NCivjg4rjgqzjgqos44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOOCq+OCuuODkuODrQ0KK+ODiuOCrOOCquOCsSzjgrXjg4jjgrcNCivjg4rjgqzjgqrjgrUs44Ki44Kt44OS44OtDQor44OK44Ks44K344OeLOOCq+ODhOODpA0KK+ODiuOCrOOCt+ODnizjgq/jg58NCivjg4rjgqzjgr8s44Of44KtDQor44Kq44Kq44OQLOOCteODiOOCtw0KK+ODiuOCrOOCvyzjgrfjg7PjgrgNCivjg4rjgqzjgr8s44K344On44Km44OY44KkDQor44OK44Ks44K/44OLLOODhOODqOOCtw0KK+ODiuOCpOODiOOCpizjg6Tjgrnjg47jg6oNCivjg4rjgqvjg4Es44Oo44K344OP44OrDQor44OK44Kr44OALOODqOOCt+ODpuOCrQ0KK+ODiuOCq+ODgOOCpCzjg6bjgqbjgqTjg4ENCivjg4rjgqvjgqzjg68s44OK44Kq44Om44KtDQor44OK44Kr44Ks44OvLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+OCrOODryzjgqLjg4TjgrcNCivjg4rjgqvjgqzjg68s44OS44Ot44Om44KtDQor44OK44Kr44OP44OpLOOCuOODpeODsw0KK+ODiuOCq+OCpCzjgrHjgqTjgqTjg4ENCivjg4rjgqvjgqQs44K344OODQor44OK44Kr44K444OeLOOCv+OCq+OCtw0KK+ODiuOCq+OCuOODnizjgrPjgqbjgrgNCivjg4rjgqvjg6Djg6ks44K344Ol44Km44K0DQor44OK44Kr44Og44OpLOODnuOCteODpuOCrQ0KK+OCreODn+ODkuODqSzjg5/jgqsNCivjgqTjg4jjgqYs44K/44Kr44OS44K1DQor44OK44Kr44Og44OpLOOCs+OCpuOCuA0KK+ODiuOCq+ODoOODqSzjgr/jg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Kr44K644Om44KtDQor44OK44Kr44Og44OpLOODj+OCuOODoQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44KtDQor44OK44Kr44Og44OpLOODn+OCrQ0KK+ODiuOCq+ODoOODqSzjg4jjg6LjgqoNCivjg4rjgqvjg4vjgrcs44Kk44K644OrDQor44OK44Kr44OL44K3LOOCv+OCq+ODkuODrQ0KK+ODiuOCq+ODjizjg6bjgqbjgrMNCivjg4rjgqvjg44s44Ok44K544Ki44KtDQor44OK44Kr44OOLOODhuODhOODpA0KK+ODiuOCq+ODjizjgqvjgrrjg47jg6oNCivjg4rjgqvjg44s44Ki44OE44K3DQor44OK44Kr44KqLOOCouOCreOCsw0KK+ODiuOCq+OCteOCryzjgrfjg6fjgqbjgr/jg4QNCivjg4rjgqvjgrss44OS44Ot44K/44KrDQor44OK44Kr44K/LOOCr+ODq+ODnw0KK+ODiuOCq+OCvyzjg5Ljg63jg58NCivjg4rjgqvjgr8s44Ok44K544OS44OtDQor44OK44Kr44K/44KxLOOCv+OCr+OCqg0KK+ODiuOCq+ODpOODnizjg5Xjg5/jgqoNCivjg4rjg5/jgq0s44Kx44Kk44K3DQor44OK44OK44K144OvLOODiuODn+OCuA0KK+ODiuODs+ODkCzjg4DjgqTjgrnjgrENCivjg4rjg7Pjg6Ljgq8s44Ko44Of44KzDQor44ON44Oi44OILOODiuODhOOCsw0KK+ODjeODouODiCzjg5/jg4TjgqLjgq0NCivjg4vjgqQs44Oo44K344KzDQor44OL44Kk44OHLOODkuODh+ODhOOCsA0KK+ODi+OCpOOCr+ODqSzjg5Ljg4fjg6QNCivjg4vjgqTjgrrjg54s44K/44Kk44OB44Ot44KmDQor44OL44Kr44OfLOOCouOCreODqQ0KK+ODi+OCt+ODkOODpOOCtyzjg57jgrXjg5LjgrMNCivjg4vjgrfjg4As44Oo44K344OkDQor44OL44K344OP44OpLOOCt+OCreOCsw0KK+ODi+OCt+ODj+ODqSzjgrXjg4jjgrcNCivjg4vjgrfjgqvjg68s44K/44Kr44OS44OtDQor44OL44K344Kr44K8LOOCq+OCuuODjuODqg0KK+ODi+OCt+ODn+ODpCzjgrXjg4jjgrcNCivjg4vjgrfjg6Djg6ks44K344Oz44Kk44OBDQor44OL44K344Og44OpLOOCreODr+ODoA0KK+ODi+OCt+ODpOODnizjg5Ljg4jjgrcNCivjg4vjgrfjg6Tjg54s44Oi44OI44Ki44KtDQor44OL44OD44K/LOOCq+ODhOOCouOCrQ0KK+ODi+ODryzjgq3jg6jjgrcNCivjg4jjgqbjgrTjgqYs44Oe44OK44OWDQor44OL44OvLOOCq+ODhOODpA0KK+ODjuODluODj+ODqSzjgrPjgqbjgrgNCivjgqrjgqzjg68s44Om44Km44KzDQor44OO44Ks44OfLOOCquOCteODoA0KK+ODjuOCrOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg47jg6Ljg4gs44Of44KrDQor44OO44Og44OpLOODnuODiuODlg0KK+ODjuODoOODqSzjgr/jgqvjg5Ljg60NCivjg47jgr7jgqgs44OP44K444OhDQor44OM44Oe44K/LOODhuODhA0KK+OCquODgOOCuOODnizjgqjjg6oNCivjgqrjgqrjgqzjgqjjg6os44OI44Kq44OrDQor44Kq44Ks44K/LOODkuODh+OCrQ0KK+OCquOCrOODryzjgrfjgrLjg6sNCivjgqrjgqzjg68s44K/44Kx44KqDQor44Kq44Kq44KuLOOCv+OCseOCtw0KK+OCquOCruOCr+ODnCzjg6jjgqbjgrjjg63jgqYNCivjgqrjgrQs44OI44Oi44KtDQor44Kq44Kw44OpLOODkuODreODpuOCrQ0KK+OCquOCquODkCzjg4jjg6Ljg5Ljg60NCivjgqrjgqrjg5Djg6Tjgrcs44Oo44Oq44KzDQor44Kq44Kq44KoLOODqOOCpuOCpOODgQ0KK+OCquOCquOCrOODnizjgrPjgqbjgqTjg4ENCivjgqrjg4/jgrcs44OK44Kq44KtDQor44Kq44Kq44Kk44K3LOOCseODs+OCuA0KK+OCquOCquOCq+ODryzjg6Tjgrnjg5LjgrMNCivjgqrjgqrjgq3jg4ks44Oe44K144KqDQor44Kq44Kq44Kv44OcLOODkuODreODpuOCrQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jg5Xjg58NCivjgqrjgqrjgq/jg54s44Oe44Kz44OIDQor44Kq44OeLOODnuODouODqw0KK+OCquODnuOCqCzjg6Djg4Tjg63jgqYNCivjgqrjg57jgqgs44K/44Kr44K3DQor44Kq44Kq44Oi44OqLOODiOODouODkuODrQ0KK+OCquOCquODouODqizjg5/jg4Tjg6jjgrcNCivjgqrjgqrjg6Ljg6os44OK44Kq44KtDQor44Kq44Kq44Oi44OqLOODkuODreOCrQ0KK+OCquOCquODouODqizjg57jgrXjg6TjgrkNCivjgqrjgqrjg6Ljg4gs44Of44OE44OrDQor44Kq44Kq44OL44K3LOOCouOCpOOCsw0KK+OCquOCquODi+OCtyzjgrHjg7PjgrgNCivjgqrjgqrjg4vjgrcs44Oe44K144OG44OrDQor44Kq44OOLOOCouOCreODqQ0KK+OCquOCquODjOODnizjg5Ljg63jgq0NCivjgqrjgqrjgrXjgqss44Oq44K1DQor44Kq44Kq44K144OvLOOCv+OCq+ODkuODrQ0KK+OCquOCquOCteODryzjgrnjg5/jgrMNCivjgqrjgrfjg54s44K/44Kr44K3DQor44Kq44K344OtLOOCt+ODs+OCpOODgQ0KK+OCquOCquOCvyzjgqLjgrXjgrMNCivjgqrjgqrjgr8s44Ki44OE44KqDQor44Kq44Kq44K/LOODkuODh+ODpuOCrQ0KK+OCquOCquOCvyzjg57jgrXjg58NCivjgqrjgqrjgr8s44Og44ON44Ok44K5DQor44Kq44Kq44K/LOOCt+ODs+OCpOODgeODreOCpg0KK+OCquOCquOCv+ODiyzjg6Tjgrnjg5Ljg60NCivjgqrjgqrjg4Qs44OS44Ot44Om44KtDQor44Kq44Kq44OE44KrLOOCv+OCq+OCtw0KK+OCquOCquODhOOCrSzjgqLjgq3jg5Ljg60NCivjgqrjgqTjgqvjg68s44Of44OB44KqDQor44Kq44KrLOODqOOCt+ODkuOCtQ0KK+OCquOCqyzjg5Ljg4fjgq0NCivjgqrjgqss44OV44Of44KzDQor44Kq44Kr44OALOODn+OCrQ0KK+OCquOCq+ODgCzjg6TjgrnjgrcNCivjgqrjgqvjg4As44Om44Km44Kk44OBDQor44Kq44Kr44OALOOCteODiOODqw0KK+OCquOCq+OCsOODgSzjg47jg5bjg5Ljg60NCivjgqrjgqvjgqQs44Om44K/44KrDQor44Kq44Kr44Oe44OELOOCv+OCq+ODkuODrQ0KK+OCquOCq+ODouODiCzjg6jjgrfjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Ko44Kk44Kk44OBDQor44Kq44Kr44Oi44OILOODkuODh+OCqg0KK+OCquOCq+ODouODiCzjg57jgrXjg5bjg58NCivjgqrjgqvjg6Ljg4gs44Oe44K144OS44OtDQor44Kq44Kr44Oi44OILOODn+ODgeODj+ODqw0KK+OCquOCq+ODouODiCzjg47jg6rjgqoNCivjgqrjgqvjg44s44OI44Oi44OS44OtDQor44Kq44Kr44K244KtLOODpuOCreODiA0KK+OCquOCreODouODiCzjgqjjg4TjgrMNCivjgqrjgq/jg44s44Oo44K344K/44OfDQor44Kq44Kv44Ok44OeLOODpOOCueOCqg0KK+OCquOCquODnyzjgrfjgrLjg6sNCivjgqrjgqrjg44s44OK44Kq44KtDQor44Kq44Kq44OOLOODkuODreODleODnw0KK+OCquOCquODjizjg5Ljg63jgrcNCivjgqrjgqrjg47jgrss44K444Ol44Oz44KzDQor44Kq44OO44K244KtLOOCv+OCq+OCtw0KK+OCquODquOCqCzjg6jjgrfjgrMNCivjgqrjgrbjgq0s44Oe44K144KzDQor44OI44Kv44Of44OkLOODhuODhOODpA0KK+OCteOCpOODgSzjgqvjgqrjg6oNCivjgrXjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44K144Kk44OI44KmLOODkuODiOOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg4fjgqLjgq0NCivjgrXjgqTjg4jjgqYs44OS44Ot44K/44KrDQor44K144Kk44OI44KmLOODpuOCv+OCqw0KK+OCteOCpOODiOOCpizjg6Tjgrnjg5LjgrMNCivjgrXjgqTjg4jjgqYs44K/44Kk44K3DQor44K144Kk44OI44KmLOOCq+OCquODqw0KK+ODj+OCq+ODnuODgCzjgqvjg6gNCivjgrXjgqvjgrDjg4Es44Kz44Km44K4DQor44K144Kr44KkLOODnuODquOCsw0KK+OCteOCq+OCreODkOODqSzjgr/jgqvjgqoNCivjgrXjgqvjgq3jg6Ljg4gs44Oo44K344KoDQor44K144Kr44Oi44OILOOCqOOCpOOCuA0KK+OCteOCq+ODouODiCzjgqjjg6oNCivjgrXjgqvjg6Ljg4gs44OS44OH44OS44OtDQor44K144Kr44Oi44OILOOCpOOCuuODnw0KK+OCteOCq+ODouODiCzjgrHjgqTjgqTjg4ENCivjg5/jgr/jg4ss44Kx44Oz44Kk44OBDQor44K144Kr44Km44OBLOOCr+ODi+ODkuOCsw0KK+OCteOCreODouODiCzjg57jgrXjg5LjgrMNCivjgrXjgq/jg54s44Of44OE44OrDQor44K144Kv44Op44KkLOODouODiOODjuODqg0KK+OCteODjizjg6rjgq3jg6QNCivjgrXjg44s44Oq44Ol44Km44Kk44OBDQor44K144OOLOOCt+ODpeOCpuOCvuOCpg0KK+OCteOCteODgCzjgrfjg6Xjg7PjgrnjgrENCivjgrXjgrXjg4/jg6ks44K544K544OgDQor44K144K144KtLOOCv+OCq+ODkuODiA0KK+OCteOCteOCrSzjg4jjgrfjg5LjgrMNCivjgrXjgrXjgq0s44Ok44K544OV44OfDQor44OI44OA44OLLOODhOODqOOCtw0KK+OCteOCteOCrSzjgrvjgqTjgrgNCivjgrXjgr/jgrEs44OE44ON44OO44OqDQor44K144OI44KmLOODpOOCueODkuODrQ0KK+OCteODiOOCpizjgrfjg7PjgrQNCivjgrXjg4jjgqYs44OS44K144OP44OrDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+OCteODiOOCpizjg6jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44K/44Kr44Kr44K6DQor44K144OI44KmLOODquOCqOOCsw0KK+OCteODiOOCpizjg4jjgqrjg6sNCivjgrXjg4jjgqYs44Om44Km44Kk44OBDQor44K144OI44KmLOODj+ODq+OCqg0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrXjg4jjgqYs44OO44Oc44OrDQor44K144OI44KmLOOCs+OCpuOCuA0KK+OCteODiOOCpizjg4DjgqTjgrnjgrENCivjgrXjg4jjgqYs44Ki44Kt44OpDQor44K144OI44KmLOOCseOCpOOCv+ODreOCpg0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4jjgqYs44K444Ol44Oz44K4DQor44K144OI44KmLOODiOODouOCrQ0KK+OCteODr+ODgCzjgrHjgqTjgr/jg63jgqYNCivjgrXjg6/jg4As44Oe44KzDQor44K144Ov44OALOODn+ODgeODqA0KK+OCpOODr+OCvyzjg57jg6bjg58NCivjgrXjg6/jgqQs44OI44K344OS44KzDQor44K144Ov44KkLOOCveOCpuOCpOODgeODreOCpg0KK+OCteODpOODjizjgqTjgq/jg6QNCivjgrvjgq0s44K/44Kx44K3DQor44K744Kt44Kw44OBLOODnuOCteODqOOCtw0KK+OCu+OCreOCsOODgSzjg5/jgqsNCivjgrvjgq3jgrDjg4Es44Ki44Kt44OpDQor44K744Kt44ONLOOCouOCreODkuODrQ0KK+OCu+OCreODjizjgr/jgqvjgrcNCivjgrvjg7Pjg4os44OI44K344Of44OEDQor44K744Oq44K244OvLOODkuODreODpuOCrQ0KK+OCu+ODiCzjgqvjg4Tjg6QNCivjgrfjg5Djgr8s44Kz44Km44Kk44OBDQor44K344OQ44K/LOODnuOCteODkuODhw0KK+OCt+ODkOOCvyzjgrHjgqTjgrnjgrENCivjgrfjg5Djgr/jg4ss44K144OI44K3DQor44K344OW44K/44OLLOOCreODp+OCpuOCsw0KK+OCt+OCrCzjgrXjg4jjg6sNCivjgrfjgrLjg47jg5Ys44Kr44K644Oo44K3DQor44K344OeLOODn+OCreOCsw0KK+OCt+ODnuODgCzjg6zjgqTjgrjjg63jgqYNCivjgrfjg57jg4As44K144OI44KzDQor44K344Oe44Og44OpLOODqOOCt+ODn+ODhA0KK+OCt+ODn+OCuizjgr/jgrHjgqvjgroNCivjgrfjg5/jgros44K144OA44Of44OBDQor44K344Oi44OQ44Ok44K3LOOCreODqOOCtw0KK+OCt+ODouOCrOODryzjgrPjgqbjgrgNCivjgrfjg6Ljg5LjgrTjgrcs44OG44OE44OS44K1DQor44K344Oi44Kk44OHLOOCv+OCpOOCtw0KK+OCt+ODiuODgCzjgqvjg4Tjg58NCivjgrfjg43jgqQs44Om44KrDQor44K344Oz44Ks44KkLOOCv+ODgOOCtw0KK+OCt+ODjuODgCzjgrPjgqbjgrgNCivjgrfjg47jg4/jg6ks44K/44Kr44OS44OtDQor44K344OO44K244KtLOODiOODouODqOOCtw0KK+OCt+OCquODpCzjgr/jgq/jg6QNCivjgrfjg6njg4/jg54s44K/44Ot44KmDQor44K344Op44Kk44K3LOODpuOCpuOCpOODgQ0KK+OCt+ODqeOCpOOCtyzjgr/jgqvjgrcNCivjgrfjgr/jg6ks44K/44Kx44K3DQor44K344On44Km44K4LOODkuODreODpuOCrQ0KK+OCt+ODp+OCpuOCuCzjgrfjg7MNCivjg57jgrnjg6Tjg54s44Oe44K144OS44OHDQor44K344Ol44OI44KmLOODpuODn+OCsw0KK+OCveOCqOODgCzjg5Ljg4fjgqvjgroNCivjgr3jg40s44OS44OH44KtDQor44K944ON44OALOOCv+OCr+OCqg0KK+OCveODjuODmSzjg57jgrXjg5Ljg60NCivjgr3jg47jg5ks44Oe44K144K3DQor44K944Op44OOLOODn+ODmw0KK+OCueODgCzjg4rjgqrjg5Ljg60NCivjgrnjgqzjgqQs44OO44Oq44Om44KtDQor44K544Ks44Ov44OpLOOCu+OCpOODng0KK+OCueOCruODouODiCzjgr/jgqvjg5Ljg60NCivjgrnjgq7jg6Ljg4gs44K/44Kr44Oe44K1DQor44K544Ku44Km44OpLOODqOOCt+ODjuODqg0KK+OCueOCruODpOODnizjg57jgrXjg5Ljg60NCivjgrnjgq7jg6Tjg54s44OS44OH44Oe44K1DQor44K544Ku44Ok44OeLOODrOOCpOOCsw0KK+OCueOCuOODo+OCryzjgr/jgqvjg6TjgrkNCivjgrnjgqss44OI44Kq44OrDQor44K544Kx44Ks44OvLOODkuODreODpuOCrQ0KK+OCueODn+ODiuOCrCzjgq3jg5/jgrMNCivjgrnjg5/jgqrjgqss44OI44Oi44OkDQor44K544OK44Ok44OeLOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjg57jgrXjg6QNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44Kk44K344KkLOODpOOCueODkuOCsw0KK+OCueOCuuOCrSzjgrfjgrLjg6sNCivjgrnjgrrjgq0s44K/44Kr44Om44KtDQor44K544K644KtLOODkuODh+ODkuODrQ0KK+ODpOODnuOCt+ODrSzjg5Ljg4fjgq0NCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K544K644KtLA0KK+OCueOCuuOCrSzjgqvjg4Tjg6bjgq0NCivjgrnjgrrjgq0s44Kr44K644OO44OqDQor44K544K644KtLOOCs+OCpuOCpOODgQ0KK+OCv+ODkOOCsyzjgq/jg5/jgrMNCivjgr/jg5Djgr8s44Oe44K144KtDQor44OK44Kr44K444OeLOODhuODq+ODpuOCrQ0KK+OCv+ODkOOCvyzjg6jjgrfjg4TjgrANCivjgr/jg4Hjg5Djg4os44OI44K344Om44KtDQor44K/44Ks44OfLOOCv+OCpOOCu+OCpA0KK+ODnuODnuODgCzjgrHjg7PjgrgNCivjgr/jgqzjg68s44Oe44Kz44OIDQor44K/44K444OeLOODouODiOODkuODrQ0KK+OCv+OCq+ODkOODpOOCtyzjg6bjgq0NCivjgr/jgqvjg4As44OI44Oi44OoDQor44K/44Kr44OALOOCv+OCq+ODkuODrQ0KK+OCv+OCq+OCrizjgqjjg58NCivjgr/jgqvjgq4s44OA44Kk44K544KxDQor44K/44Kr44OP44K3LOOCt+ODs+ODpA0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jgqoNCivjgr/jgqvjg4/jgrcs44OS44Ot44KtDQor44K/44Kr44OP44K3LOODkuODreOCsw0KK+OCv+OCq+ODj+OCtyzjgqTjgrrjg6sNCivjgr/jgqvjg4/jgrcs44Oe44K144KtDQor44K/44Kr44OP44K3LOODn+OCt+ODp+OCpg0KK+ODr+OCv+ODiuODmSzjg57jgq0NCivjgr/jgqvjg4/jgrcs44Ok44K544K3DQor44K/44Kr44OP44K3LOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjg5jjgqQNCivjgr/jgqvjg4/jgrcs44Oe44K144OV44OfDQor44K/44Kr44KkLOODkuODh+OCrQ0KK+OCv+OCq+OCr+ODqSzjgrHjg7PjgrnjgrENCivjgr/jgqvjgq/jg6ks44K344ObDQor44K/44Kr44Oe44OBLOOCq+ODhOODjuODqg0KK+OCv+OCq+ODnuODhCzjgqLjgq3jg6jjgrcNCivjg57jg4Tjg4rjgqws44Ok44K544OS44OtDQor44K/44Kr44Oi44OILOODqOOCt+OCrQ0KK+OCv+OCq+ODoOODqSzjg47jg5bjgqvjg4QNCivjgr/jgqvjgqrjgqss44K044KmDQor44K/44Kr44K544KuLOODj+ODq+OCsw0KK+OCv+OCq+ODpCzjg5Ljg4fjgqLjgq0NCivjgr/jgqvjg6Tjg54s44OS44Ot44Om44KtDQor44Kt44K/44OP44OpLOOCseODs+OCpOODgQ0KK+OCv+OCseODgCzjgq/jg4vjg5Ljg4cNCivjgr/jgrHjg4As44Oe44K144OS44OtDQor44K/44Kx44OP44OKLOODnuOCteOCq+ODhA0KK+OCv+OCseODnuODhCzjg57jgrXjg58NCivjgr/jgrHjgqrjgqss44Of44OO44OrDQor44Kk44K344Kr44OvLOODouODiOODleODnw0KK+OCv+OCseOCt+OCvyzjg4rjgqrjgq0NCivjgr/jgrHjgr/jg4ss44OO44OW44Om44KtDQor44K/44Kx44Km44OBLOOCteODiOOCtw0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgr/jgrHjg6Tjg54s44K/44Kx44K3DQor44K/44Kx44K244OvLOOCreODqOOCuA0KK+OCv+OCreOCtuODryzjg4Tjg4jjg6ANCivjgr/jgq3jgrbjg68s44OB44Kr44OpDQor44K/44Oe44KkLOODiOODouODpuOCrQ0KK+OCv+ODiuODj+OCtyzjg47jg5bjg6bjgq0NCivjgr/jg4rjgqss44Kx44Oz44K/44Ot44KmDQor44K/44OK44KrLOOCs+OCueOCsQ0KK+OCv+ODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg4rjgqss44OS44Ot44K3DQor44K/44OK44KrLOOCseOCpOOCsw0KK+OCv+ODiuOCqyzjg6Ljg4jjgq0NCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OK44KrLOOCq+OCuuODkuODiA0KK+OCv+ODiuOCqyzjg6bjgqbjgrMNCivjgr/jg4rjgqss44Ko44Kk44Kk44OBDQor44K/44OK44KrLOOCqOOCpOOCuA0KK+OCv+ODiuOCqyzjg4Tjg43jg5Ljg60NCivjgr/jg4rjgqss44Oe44K144OS44OtDQor44K/44OK44KrLOODjuODquODkuODrQ0KK+OCv+ODiuOCqyzjgqvjgrrjg4rjgqoNCivjgr/jg4rjgqss44OO44Oc44OrDQor44Kk44K344OALOOCseODs+ODpA0KK+OCv+ODiuOCqyzjgqvjgrrjgqoNCivjgr/jg4vjgrDjg4Es44K344Ky44OrDQor44K/44OL44Kw44OBLOOCseODs+OCpOODgQ0KK+OCv+ODi+OCpCzjg6bjg6rjgrMNCivjgr/jg4vjg6Djg6ks44Of44OB44OoDQor44K/44OL44Kq44KrLOODiOODouOCsw0KK+OCv+ODs+ODjizjg6bjgq3jgqoNCivjgr/jg4zjg54s44Oe44Oi44OrDQor44Oo44Kz44Ok44OeLOODr+OCv+ODqw0KK+OCv+OCt+ODrSzjgqLjgq3jg6kNCivjgr/jgrfjg60s44Kx44Oz44Kk44OBDQor44K/44OGLOODkuODh+ODiA0KK+OCv+OCpuODqSzjg57jgrPjg4gNCivjgr/jgr7jgqgs44Om44Km44KzDQor44K/44K644KxLOODnuOCs+ODiA0KK+ODhuODs+ODoizjgqvjg6jjgrMNCivjg4bjg6njg4As44OB44Ko44KzDQor44OG44Op44Oi44OILOOCqOOCpOOCuA0KK+ODhuODqeOCquOCqyzjgrHjgqQNCivjg4bjgrrjgqss44OS44Ot44Om44KtDQor44OI44Kw44OBLOOCuOODpeODs+OCsw0KK+ODiOOCpuODnizjgrPjgqbjgqTjg4ENCivjg4jjgqbjg54s44OS44Ot44Ok44K5DQor44OI44Kq44Ok44OeLOOCq+OCuuODpuOCrQ0KK+ODiOOCreOCquOCqyzjgr/jgqvjgrfjgrINCivjgr/jg4vjg6Tjg54s44OS44OH44Ki44KtDQor44Of44Km44OpLOOCveOCpuOCpOODgQ0KK+ODiOOCr+ODqSzjgqvjgrrjgqoNCivjg4jjgq/jg6Tjg54s44OS44Ot44OkDQor44OI44Of44Kk44K3LOOCr+ODi+ODkuOCsw0KK+ODiOODn+OCq+ODryzjg47jg6rjgrMNCivjg4jjg5/jg4rjgqws44Ki44OE44K3DQor44OI44Of44K/LOODleODn+OCqA0KK+ODiOODn+OCvyzjg6Ljg4jjg6jjgrcNCivjgqrjgqrjg6Ljg6os44Oe44K144Om44KtDQor44OI44Oi44K/LOODkuODh+ODkuOCsw0KK+ODiOODouODjizjgrHjgqTjgrgNCivjg4jjg6rjgqvjgqQs44OK44Kq44KtDQor44OI44Oq44Km44OfLOODqOOCt+ODjuODlg0KK+ODiOODhOOCqyzjgqLjg6TjgrMNCivjg4jjg6jjg4As44Kx44Kk44Kk44OBDQor44OI44Oo44OALOODn+OCreODkuODrQ0KK+ODiOODqOOCquOCqyzjgr/jgq/jg47jg5YNCivjg4Tjg4Hjg4As44Kz44Km44K4DQor44OE44OALOOCs+OCpuOCpOODgQ0KK+ODhOOCuOOCv+ODiyzjg57jgrXjg4TjgrANCivjg4Tjgqvjg6Ljg4gs44Oo44K344OG44OrDQor44OE44Kr44Oi44OILOODkuODreOCouOCrQ0KK+ODhOOCq+ODr+OCrSzjg57jgrXjgr/jgqsNCivjg4Tjg6vjg57jgq0s44Oo44Km44KzDQor44Kk44OB44OQ44Oz44Ks44K7LOODpuOCreOCsw0KK+OCteOCq+OCpCzjg5/jg5vjgrMNCivjgqbjg4Hjg4As44Kr44K644OS44OtDQor44Kr44OK44Kq44KrLOOCs+OCpuODmOOCpA0KK+OCpuODgeODgCzjgr/jg4Tjg6QNCivjgqbjg4Hjgqbjg58s44OK44Kq44OS44KzDQor44Km44OB44Ok44OeLOODleODn+OCv+OCqw0KK+OCpuODgeODpOODnizjg6bjgq0NCivjgqbjg4As44Ki44OE44KzDQor44Km44OA44Ks44OvLOOCv+ODreOCpg0KK+OCquOCt+ODnizjgqLjg4TjgrMNCivjgqbjgqjjg4As44Ko44Kk44KrDQor44Km44Ko44OALOODqOOCt+ODn+ODhA0KK+OCpuOCqOODj+ODqSzjg5Ljg4fjg6bjgq0NCivjgqbjgqjjg6Djg6ks44Oe44K144KtDQor44Km44Ko44OOLOOCquOCteODoA0KK+OCpuOCqOODjizjg5Ljg63jg47jg6oNCivjgqbjgqjjgrnjgq4s44Oe44K144OfDQor44Km44Ko44OE44KtLOOCv+OCpOODgQ0KK+OCpuOCq+ODryzjg57jgrXjg5Ljg4cNCivjgqbjg57jgrrjg6Es44K344Oz44OkDQor44Km44Oh44OP44OpLOODiOOCt+OCqg0KK+OCpuODoeODoOODqSzjg5Ljg63jg5Xjg58NCivjgqbjg6Hjgrbjg68s44OS44Ot44K3DQor44Km44OOLOODkuODreOCtw0KK+OCpuODjizjg5LjgrXjg6QNCivjgqbjg6njg6Ljg4gs44Kx44KkDQor44Km44Or44OeLOODnuOCteODleODnw0KK+OCpuOCt+ODkCzjg5/jg47jg6sNCivjg4rjgqzjgr8s44Oq44Ol44Km44K/DQor44Km44K344Kw44K1LOODiOOCt+OCouOCrQ0KK+ODj+OCu+OCrOODryzjg6jjgrfjgqLjgq0NCivjgrXjgqvjg57jgq0s44Om44OqDQor44Km44Ov44OZLOODnuOCteODpuOCrQ0KK+ODr+ODgCzjgqLjgq3jgrMNCivjg6/jgqvjgqos44Kx44Kk44K4DQor44Ov44Kr44KqLOODrOOCpOOCsw0KK+ODr+OCreOCvyzjg6jjgqbjgrMNCivjgqTjg47jg57jgr8s44OS44Ot44OfDQor44Ov44Kv44KkLOODnuOCteODpA0KK+ODr+OCt+OCtuODryzjgrHjgqTjgrMNCivjg6/jgrfjgrrjgqss44Kz44Km44K4DQor44Ov44K/44OZLOODnuOCteODiOOCtw0KK+ODr+OCv+ODiuODmSzjg47jg6rjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44Ov44K/44OK44OZLOOCt+OCsuODqw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgqoNCivjg6/jgr/jg4rjg5ks44OE44Oo44K3DQor44Ov44K/44OK44OZLOODiOODouODpuOCrQ0KK+ODr+OCv+ODiuODmSzjg4DjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44KtDQor44Ov44K/44OK44OZLOODkuODreOCq+OCug0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg58NCivjg4jjg6jjgr8s44OS44OI44K3DQor44Ov44K/44OqLOOCseOCpOOCsw0KK+ODiOODn+ODpOOCuSzjg4jjgrfjg5LjgrUNCivjg6Tjgqjjgqzjgq0s44Oo44K344Ki44KtDQor44Ok44KuLOODn+ODqOOCsw0KK+ODpOOCrizjg6jjgrfjg57jgrUNCivjg6Tjgq7jg4zjg54s44OA44Kk44K544KxDQor44Ok44KvLOOCouOCreODiA0KK+ODpOODnuODgCzjgqvjgrrjg5LjgrMNCivjg6Tjg57jg4As44Oe44KtDQor44Ok44Oe44OALOODqOOCpuOCsw0KK+ODpOODnuOCruOCtyzjgqLjg4TjgrcNCivjg6Tjg57jgrDjg4Es44Kz44Km44Kk44OBDQor44Ok44Oe44Kw44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuOCsOODgSzjgqvjgqrjg6sNCivjg6Tjg57jgrDjg4Es44Ki44Kt44OpDQor44Ok44Oe44Kz44K3LOODgOOCpOOCueOCsQ0KK+ODpOODnuODouODiCzjg57jgrXjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Kx44Oz44K4DQor44Ok44Oe44Oi44OILOOCv+OCseOCqg0KK+ODpOODnuODouODiCzjgrvjgqTjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44K344Ol44Km44K4DQor44K/44OB44OQ44OKLOODnuOCteODiOOCtw0KK+ODpOODnuODouODiCzjgrjjg6Xjg7MNCivjg6Tjg57jg6Ljg4gs44Kx44Oz44Kk44OBDQor44OP44Op44K/44OLLOODiOODouOCsw0KK+ODpOODnuODiuOCqyzjgr/jgqvjgrcNCivjg6Tjg57jg40s44Oo44K344OV44OfDQor44Ok44Oe44K344K/LOOCouOCreODkuOCsw0KK+ODpOODnuOCt+OCvyzjg5Ljg63jgrcNCivjg6Tjg57jgrfjgr8s44OK44Kq44KzDQor44Ok44Oe44K/44OLLOOCv+OCq+OCtw0KK+ODpOODnuOCpuODgSzjg4jjg6LjgrMNCivjg6Tjg57jgrbjgq0s44Ki44Kt44OpDQor44Ok44OKLOODkuODreOCouOCrQ0KK+ODpOODiuODmSzjg5Ljg63jgq0NCivjg6Tjg4rjgqzjg68s44Oq44On44KmDQor44Ok44OK44KuLOODiOOCt+OCouOCrQ0KK+ODpOODiuOCruODgCzjg6rjg6XjgqbjgqTjg4ENCivjg6TjgrXjgqss44Kr44K644OS44OHDQor44Ok44K544OALOODnuOCteODn+ODhA0KK+ODpOOCueODleOCryzjg6bjgr/jgqsNCivjg6Tjgrnjgqvjg68s44Kt44Oo44Kr44K6DQor44Oo44Kz44K144OvLOOCv+OCr+ODpA0KK+ODqOOCs+OCvyzjg5Ljg63jgrcNCivjg6jjgrPjgr8s44Kr44K644OS44OtDQor44OP44Op44OALOOCs+OCueOCsQ0KK+ODqOOCs+OCpuODgSzjg57jgrXjg5Ljg60NCivjg6jjgrPjgqbjg4Es44K344Oz44K544KxDQor44Oo44Kz44Ok44OeLOODnuOCs+ODiA0KK+ODqOOCs+ODpOODnizjgqvjgrrjg47jg5YNCivjg6jjg43jg4As44OK44Kq44KtDQor44Oo44ON44OOLOODiuOCquODnw0KK+OCq+OCteODj+ODqSzjgrXjg4jjg58NCivjg6jjgrfjg4As44OS44OH44KqDQor44Oo44K344OALOOCuOODpeODsw0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjg6jjgrfjg4As44OK44Kq44OIDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODieODoSzjgrfjgrrjgqsNCivjg6jjgrfjg4/jg6ks44K/44Kr44OS44OtDQor44Oo44K344KkLOOCteODiOODqw0KK+ODqOOCt+OCpCzjg57jgrPjg4gNCivjg6jjgrfjgqvjg68s44K344Kq44OqDQor44Oo44K344OfLOOCv+OCpOOCrQ0KK+ODqOOCt+ODjizjg5Xjg5/jgqoNCivjg6jjgrfjg44s44Ok44K544K3DQor44Oo44K344OOLOODiOODouOCsw0KK+ODqOOCt+OCquOCqyzjgrHjg7PjgqTjg4ENCivjg6jjgrfjgqrjgqss44Kz44Km44Kk44OB44Ot44KmDQor44Oo44K344K/44KxLOOCv+ODgOOCtw0KK+ODqOOCt+OCtuODryzjg4jjgrfjgqvjg4QNCivjg6bjgrrjg4/jg6ks44Kz44Km44K4DQor44K844Oz44KyLOOCq+OCuuOCv+OCqw0KK+OCuuOCtyzjg5/jgqoNCivjgrTjg58s44OS44Ot44KtDQor44K044OI44KmLOODkuODreOCtw0KK+OCpOOCseODgCzjgr/jgrHjg4/jg6sNCivjgqTjg54s44Oe44K144OS44OtDQor44Ki44OZLOODnuODiuODlg0KK+OCq+ODiOOCpizjgrfjgrLjg6sNCivjgqvjg6/jg5Djgr8s44K344Ky44OrDQor44Kz44OQ44Ok44K3LOODpuOCreODkuOCsw0KK+OCs+ODs+ODiSzjgq/jg4vjg6Djg40NCivjgq/jg5ws44Oe44K144OS44KzDQor44Kv44Op44Oi44OBLOODqOOCpuOCsw0KK+ODnuODq+ODpOODnizjg6jjgrfjgqLjgq0NCivjg6Ljg6rjgqvjgq8s44Om44Kt44KqDQor44Og44Op44Kq44KrLOODkuODreODpuOCrQ0KK+ODiuOCrOOCt+ODnizjg6jjgqbjgrMNCivjg4rjgqss44OI44K344OkDQor44OK44Kr44OP44OpLOOCv+OCr+ODpA0KK+ODiuOCq+ODoOODqSzjg4Tjg6jjgrcNCivjg4rjgqvjgrss44OI44OfDQor44OK44Oq44K/LOODkuOCteOCqA0KK+ODi+OCt+ODoOODqSzjgqjjg5/jgrMNCivjg47jg4rjgqss44OS44OH44OK44KqDQor44Kq44Ks44OvLOODqOOCt+OCqg0KK+OCquOCsOODqSzjg4jjgqrjg6sNCivjgqrjgqrjg58s44Oe44Kz44OIDQor44Kq44Kr44OOLOODnuOCteODpA0KK+OCt+ODnuODgCzjgrjjg6Xjg7PjgrgNCivjgrfjg5/jgros44Kr44K644OO44K344OzDQor44K344Og44OpLOODkuODh+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5/jg4Tjg57jgrUNCivjgr/jgqvjg57jg4Qs44Kx44Oz44Kk44OBDQor44Km44Ko44OALOODoOODhOOCqg0KK+OCpuOCuCzjgrTjgqYNCivjgqbjg4Tjg58s44K344Ol44Km44Kk44OBDQor44Ki44OZLOODqOOCpuOCpOODgQ0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgr/jgqvjg47jgqbjg4Es44Kx44Oz44K144KvDQor44Kk44OO44Km44KoLOODoOODjeODkuODrQ0KK+ODiuOCq+ODj+ODqSzjg5Ljg4jjgrcNCivjgqLjg4Djg4Es44Om44K/44KrDQor44OK44Kr44OOLOODkuODreOCrQ0KK+OCouOCpOODkCzjg47jg6rjgqLjgq0NCivjgqLjgqTjg5As44K/44Kx44K3DQor44Ki44Kk44OQLOOCteODiOOCtw0KK+OCouOCpOODgCzjg57jgrXjg5Ljg60NCivjgqLjgqTjg4/jg6ks44Ki44OE44K3DQor44Ki44Kr44Kk44K3LOODnuOCteOCquODnw0KK+OCouOCq+OCpOODryzjg6jjgrfjg5Ljg60NCivjgqLjgqvjgqrjgq4s44OI44K344OS44OHDQor44Ki44Kt44K/LOODhOODqOOCtw0KK+OCouODnuODjizjg4rjgqrjgrMNCivjgqLjgqrjgq0s44OS44Ot44KzDQor44Ki44Kq44KtLOODpuOCreOCsw0KK+OCouOCquODjOODnizjg5Ljg4jjgrcNCivjgqLjgqrjg6Tjgq4s44Ko44Kk44K4DQor44Ki44Op44KtLOOCouOCreODqQ0KK+OCouODquODnuODgSzjg4jjgrfjg47jg5YNCivjgqLjg6rjgr8s44OS44OH44Ki44KtDQor44Ki44K144OALOODhuODhOODpA0KK+OCouOCteOCqOODgCzjgr/jgqvjg5Ljg60NCivjgqLjgrXjg4/jg6ks44Oo44K344OP44OrDQor44Ki44K144Kr44OvLOOCq+OCuuODkuOCsw0KK+OCouOCteODouODiCzjg4Tjg4jjg6ANCivjgqLjgrXjg44s44Om44K/44KrDQor44Ki44K/44Kw44OBLOODkuODreOCtw0KK+OCouODpOOCrSzjg4/jg6vjgrMNCivjg5Djg5As44K344Ol44Oz44K544KxDQor44OQ44OQLOOCq+OCquODqw0KK+ODkOODkCzjg4rjg4rjgrMNCivjg5Djg7Ms44K/44Kx44K3DQor44OA44Kk44Kz44KvLOODn+ODgeODqA0KK+ODgOODhizjgrfjgrLjg5LjgrMNCivjgrXjg44s44K444Ol44Oz44Kk44OBDQor44Of44OE44Kq44KrLOOCt+OCsuOCrQ0KK+ODh+ODs+ODgCzjgqvjgrrjg5LjgrMNCivjg4njgqQs44Ko44OfDQor44Ko44Oz44OJLOODiOODouODkuOCsw0KK+OCqOODs+ODiSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqjjgrbjg68s44OK44Oq44OS44OHDQor44OV44K444KoLOOCv+OCseODleODnw0KK+ODleOCuOOCpCzjgqvjgrrjg5Ljg60NCivjg5XjgrjjgqQs44Oe44K144Ki44KtDQor44OV44K444Oe44KtLOODnuOCteOCq+ODhA0KK+ODleOCuOODouODiCzjg5/jg68NCivjg5Xjgrjjg6Ljg4gs44Of44Kt44KqDQor44OV44K444Og44OtLOOCs+OCpuOCuA0KK+ODouODreOCuuODnyzjgqvjg7PjgrgNCivjg5XjgrjjgrXjg68s44Kx44Oz44K4DQor44OV44K444K/LOODkuODreODpuOCrQ0KK+ODleOCq+OCuyzjgr/jg4Tjg6QNCivjg5Xjgq/jg4As44K344K744KkDQor44OV44Kv44OJ44OhLOOCv+OCq+OCtw0KK+ODleOCr+OCpCzjg5LjgrXjgrcNCivjg5Xjgq/jg4rjgqws44OV44Of44OS44K1DQor44OV44Kv44K344OeLOODkuODh+OCqg0KK+ODleOCr+OCtuODryzjg57jg6rjgqsNCivjg5Xjg6vjg5Djg6Tjgrcs44Ki44Kt44OpDQor44OV44Or44Kr44OvLOODkuODh+OCrQ0KK+ODleODq+OCq+ODryzjgqLjgrHjg58NCivjgrTjgqYs44OP44OKDQor44K044Oe44OrLOOCueOCueODoA0KK+OCtOODiOOCpizjgrfjg6fjgqYNCivjgrTjg4jjgqYs44K/44OE44OkDQor44K044OI44KmLOODgeOCuuOCqw0KK+ODjuODouODiCzjgqvjgqrjg6sNCivjg4/jgq7jg6/jg6ks44Oq44Ol44Km44K/DQor44OP44Kk44Ok44OeLOOCreODp+OCpuOCsw0KK+ODj+ODnizjgqvjgrrjg5/jg4ENCivjg4/jg57jg4Es44K344Ol44Km44Kk44OBDQor44OP44Oe44OALOODiuOCquODkuOCtQ0KK+ODj+ODnuOCv+ODiyzjgrfjgrLjgqoNCivjg4/jg4rjgqQs44Ok44K544OS44OIDQor44OP44OK44K/LOODkuODqeOCrw0KK+ODj+ODjeOCuCzjg5Ljg63jgrMNCivjg4/jg7Pjgrbjg68s44Oe44K144OS44KzDQor44OP44OpLOODn+ODmw0KK+ODj+ODqSzjgrfjg7PjgrgNCivjg4/jg6njg4As44Kr44K644OS44OHDQor44OP44Op44OALOOCreODqOOCtw0KK+ODj+OCu+OCrOODryzjg6bjgr/jgqsNCivjg4/jgrvjgqzjg68s44OK44Kq44KzDQor44OP44K744Ks44OvLOODhuODhOODpA0KK+ODj+OCt+OCsOODgSzjg57jgrXjg6jjgrcNCivjg4/jgrfjg6Ljg4gs44Ok44K544Om44KtDQor44K044OI44KmLOOCseOCpA0KK+OCq+OCuOODr+ODqSzjg6jjgrfjgrMNCivjg4/jgrnjg58s44OE44Kw44OO44OqDQor44Kr44K/44Ok44OK44KuLOOCqOOCpOOCpOODgQ0KK+ODj+OCv+OCseODpOODnizjgrfjg7PjgqTjg4ENCivjg6Djg6njgqQs44Of44OE44Om44KtDQor44OP44K/44OLLOODquODpeOCpuOCpOODgQ0KK+ODj+ODg+ODiOODqizjg6Tjgrnjg47jg5YNCivjg4/jg4Pjg4jjg6os44K/44Kr44Om44KtDQor44OP44Ok44K3LOOCv+OCq+ODpuOCrQ0KK+OCquOCquOCueODnyzjg57jgrXjgrMNCivjg4/jg6Tjgrcs44Kr44K644OK44OqDQor44OP44Ok44K3LOODqOOCt+ODjuODlg0KK+ODj+ODpOOCt+ODgCzjgrXjgq0NCivjg5Ljgqws44K/44Kx44KqDQor44OS44Ks44K3LOODquODpeOCpuOCueOCsQ0KK+ODkuOCrOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjg4jjg6jjg4As44Om44Km44Kk44OB44OtDQor44OS44OOLOOCv+OCseODkuOCsw0KK+ODkuODqSzjg4bjg4Tjg6QNCivjg5Ljg6njg6Ljg4gs44K444Ol44Oz44KzDQor44OS44Op44KqLOODnuOCteODiA0KK+ODkuODqeOCqizjg57jgrXjg6bjgq0NCivjg5Ljg6njgr8s44OK44Kq44OfDQor44OS44Op44Ok44OeLOOCv+OCseOCtw0KK+ODkuODreOCpCzjgr/jgqvjgrcNCivjg5Ljg63jgqvjg68s44OO44Oq44Kr44K6DQor44OS44Ot44Kr44OvLOODqOOCv+ODreOCpg0KK+ODkuODreODnuOCuSzjgqvjgrrjg6bjgq0NCivjg5Ljg63jgrss44Of44OE44OrDQor44OS44Ot44K7LOOCv+OCq+OCqg0KK+ODkuOCt+ODpCzjgrXjg4jjgrcNCivjg5vjgqbjgrfjg6fjgqYs44Ki44Kt44KzDQor44Ob44Oz44OALOODn+ODm+OCsw0KK+ODj+ODpOOCtyzjg47jgr7jg6ANCivjg5vjg7Pjg54s44K/44Kx44K3DQor44Ob44Oq44Kw44OBLOODhuODq+OCqg0KK+ODm+ODquOCpCzjg5Ljg63jg58NCivjg5vjgrcs44Ki44Kt44OS44KzDQor44Ob44K944KkLOOCq+ODhOODpA0KK+ODm+OCveODnyzjg6TjgrnjgqoNCivjg5vjg4Pjgr8s44Oe44K144OS44OHDQor44OV44Kv44Ot44KkLOOCseODs+OCuA0KK+ODleODq+ODpCzjgqLjgq3jg5Ljg4gNCivjgqTjg5bjgqss44K944Km44Kk44OBDQor44Kk44OB44OQLOOCv+OCq+OCtw0KK+OCpOODgeODj+ODqSzjg5Ljg63jgrcNCivjgqTjg4Hjgqvjg68s44OS44Ot44K3DQor44Kk44OB44Og44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+OCpOODgeODjuOCu+OCrSzjg4jjgrfjg5Ljg60NCivjgqTjgqTjg4As44OI44K344OkDQor44Kk44Kk44OALOOCuOODpeODs+OCsw0KK+OCpOOCpOOCuOODnizjg6jjgqbjgrMNCivjgrfjg47jg4/jg6ks44OP44K444OhDQor44Kk44Kx44OALOODquOCqA0KK+OCpOOCseODgCzjg6bjgq0NCivjgqTjgrHjg4As44Om44K/44KrDQor44Kk44Kx44OALOODqOOCpuOCsw0KK+OCpOOCseOCtuODryzjgqvjgrrjgr/jgqsNCivjgqTjg57jgqQs44Oe44Om44OfDQor44Kk44Oe44KkLOOCseOCpOOCvw0KK+OCpOODnuOCpCzjgq/jg4vjg5LjgrMNCivjgqTjg57jgq0s44Of44OO44OrDQor44Kk44Oe44Og44OpLOOCseODs+OCueOCsQ0KK+OCpOODouODiCzjgrfjg6fjgqbjgqTjg4ENCivjgqLjg5ks44Oo44K344Ok44K5DQor44Kk44OK44OALOODpuOCreOCsw0KK+OCpOODjuOCpuOCqCzjg4jjg6Ljg5Ljg60NCivjgqTjg47jgqbjgqgs44K/44Kr44K3DQor44Kk44OO44Km44KoLOODnuOCteODkuOCsw0KK+OCpOODjuOCpuOCqCzjgqvjgrrjgqoNCivjgqTjg6rjgqgs44Oo44K344OS44KzDQor44OE44Or44Kq44KrLOODkuODiOOCtw0KK+OCquOCquODj+OCtyzjg5LjgrXjg4jjgrcNCivjgqTjgrfjg4As44Om44Km44K4DQor44Kk44K344OALOOCseODs+OCuA0KK+OCpOOCt+ODgCzjgrPjgqbjgrgNCivjgqTjgrfjg4As44OP44K444OhDQor44Kk44K344Kw44OtLOODqOOCt+OCrQ0KK+OCpOOCt+ODj+ODqSzjgrfjgrLjgqoNCivjgqTjgrfjg4/jg6ks44K444Ol44Oz44KzDQor44Kk44K344KkLOODn+ODhOODkuOCsw0KK+OCpOOCt+OCq+ODryzjg57jgrXjg47jg6oNCivjgqTjgrfjgqvjg68s44Ki44Kt44OpDQor44Kk44K344Ov44K/LOODnuOCteODjuODqg0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgqTjg4jjgqYs44Ki44Kt44KzDQor44Kk44OI44Ok44OeLOODiOOCt+OCqg0KK+OCpOODhOOCrSzjgqvjgrrjg5Ljg60NCivjgqTjg6/jgq0s44Kz44Km44K/44Ot44KmDQor44Kk44Ov44K144KtLOOCv+OCseOCtw0KK+OCpOOCuuODhCzjg6bjgqbjgrgNCivjgrjjg5Ys44Ko44Of44KzDQor44Kr44OJ44KkLOODhuODq+ODpOOCuQ0KK+OCouODgOODgSzjgrHjg7PjgrgNCivjgqvjgqQs44K/44Kr44Om44KtDQor44Kr44Kk44K7LOODkuODreOCouOCrQ0KK+OCq+OCpOOCuuOCqyzjg5Ljg63jgrMNCivjgqvjgrjjg6/jg6ks44OS44Ot44K3DQor44Kr44KtLOOCq+ODhOODiOOCtw0KK+OCq+OCreODnyzjgrPjgqbjgrgNCivjgrnjgq7jgr8s44Os44Kk44KtDQor44Kr44Kv44K/44OLLOODpOOCueOCsw0KK+OCq+ODn+ODkOODpOOCtyzjgqvjg4Tjg5LjgrMNCivjgqvjg5/jgqzjgq0s44OO44Oq44OS44OHDQor44Kr44Of44OkLOOCteODiOOCtw0KK+OCq+ODouODgCzjgrPjgqbjgqTjg4ENCivjgqvjg6Ljg4gs44K/44Oi44OEDQor44Kr44Oz44OQ44Ok44K3LOODouODiOODkuODrQ0KK+OCq+ODjeOCsyzjgrfjg7PjgrQNCivjgqvjg43jgrMs44Of44OE44OkDQor44Kr44ON44KzLOOCr+ODi+ODkuOCsw0KK+OCq+ODjeOCsyzjg5/jg4TjgqoNCivjgqvjg4vjgrXjg68s44K/44OE44OkDQor44Kr44OrLOOCv+OCq+ODpuOCrQ0KK+OCq+OCt+ODr+OCrizjg4bjg4Tjg6QNCivjgqvjgrnjg58s44Oo44Km44Kk44OB44Ot44KmDQor44Kr44K/44Ku44OqLOODiuOCquODpuOCrQ0KK+OCq+ODiOOCpizjg5/jg4Tjg5Ljg60NCivjgqvjg4jjgqYs44Ki44OE44K3DQor44Kr44OI44KmLOODpuOCpuOCsw0KK+OCq+ODiOOCpizjg47jg5bjgqoNCivjgqvjg4jjgqYs44K/44OE44Ot44KmDQor44K/44Kw44OBLOOCuOODpeODs+OCsw0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg4jjgqYs44Kz44KmDQor44Kr44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCq+ODhOODqSzjgqLjgq3jg6kNCivjgr3jgrQs44Kx44OzDQor44Kr44Ov44OS44OILOODnuOCs+ODiA0KK+OCq+ODr+OCpCzjg6rjgqjjgrMNCivjgqvjg6/jgqvjg58s44Kz44Km44K4DQor44Kr44Ov44OfLOOCt+OCsuODqw0KK+OCq+ODr+ODoOODqSzjgrfjg7PjgrgNCivjgqvjg6/jg6Djg6ks44OG44Or44KtDQor44Kr44Ov44K144KtLOODkuODreOCtw0KK+OCq+ODr+OCteOCrSzjg4jjg6LjgqvjgroNCivjgqvjg6/jgqbjg4Es44Oe44K144Ki44KtDQor44Kr44OE44KtLOOCouOCreODiOODog0KK+OCreODgCzjg5jjgqTjgrgNCivjgq3jg4njgrPjg60s44OS44Ot44K3DQor44Oi44OqLOOCseODs+OCuA0KK+OCreOCr+ODgSzjg57jgrPjg4gNCivjgq3jgq/jgqzjg68s44Of44KoDQor44Kt44Og44OpLOODn+ODhOODkuODrQ0KK+OCreODoOODqSzjgrXjg4jjg6sNCivjgq3jg6Djg6ks44K/44Kx44K3DQor44Kt44Og44OpLOOCv+OCr+ODnw0KK+OCreODjuOCt+OCvyzjg4jjg6jjgq0NCivjgq3jg47jgrfjgr8s44Oo44K344Ki44KtDQor44Kt44OO44K344K/LOODqOOCt+ODj+ODqw0KK+OCreODjuOCt+OCvyzjg6bjgqvjg6oNCivjgq3jgrfjg4As44Om44Kt44KzDQor44Kt44K344Kr44OvLOODnuOCteODkuOCsw0KK+OCreOCvyzjg4jjgrfjgqoNCivjgq3jgr/jgrDjg4Es44Kx44Kk44K544KxDQor44Ki44Oe44OOLOODn+ODgeODqA0KK+OCreOCv+ODoOODqSzjg57jg4rjg5YNCivjgq3jgr/jg6Tjg54s44OB44OS44OtDQor44Kz44OQ44Ok44K3LOODiuOCquODiA0KK+OCs+ODkOODpOOCtyzjg6Ljg4jjg47jg6oNCivjgrPjg5Djg6Tjgrcs44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOODpOOCueODhuODqw0KK+OCs+ODkOODpOOCtyzjg4jjg6LjgqLjgq0NCivjgrPjg5Djg6Tjgrcs44K444Ol44Oz44K4DQor44Ki44Oh44K344K/LOODiuOCquOCrQ0KK+OCs+ODkOODpOOCtyzjgrPjgqbjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44OS44Ot44OfDQor44Kz44OQ44Ok44K3LOOCseODs+OCuA0KK+OCs+ODkOODpOOCtyzjgq3jg6jjgr/jgqsNCivjgrPjg5Djg6Tjgrcs44Oe44Om44OfDQor44Kz44OQ44Ok44K3LOODgOOCpOOCueOCsQ0KK+OCs+ODkOODpOOCtyzjgr/jgqvjg5Ljg60NCivjgqrjg4As44Oe44K144OS44KzDQor44Kz44Oc44OqLOODkuODh+ODnw0KK+OCs+ODgOOCpOODqSzjg47jg5bjg5Ljg60NCivjgrPjg4Djg54s44K744Kk44K4DQor44Kr44Ov44Kw44OBLOOCouODhOOCtw0KK+OCs+ODgOODhizjg5/jg4Tjg6sNCivjgrPjgqws44OO44Oq44Om44KtDQor44Kz44KsLOOCouOCreODqQ0KK+OCs+OCrOODjeODnuODqyzjg57jgrXjg58NCivjgrPjg4/jg6ks44OI44Oi44OK44OqDQor44Kz44Km44OALOOCseODs+OCpOODgQ0KK+OCs+ODs+ODjizjg57jg4rjg5YNCivjgrPjgrbjgqQs44Kz44Km44Kk44OBDQor44Kz44Kk44KxLOOCouOCreOCqg0KK+OCs+OCpOOCuuODnyzjg57jgrXjgqoNCivjgrPjgrjjg54s44Ok44K544OtDQor44Kz44K444OeLOOCseODsw0KK+OCs+ODnuODhCzjgr/jgqvjgrcNCivjgrPjg6Ljg6os44Oo44K344K/44KrDQor44Kz44Oz44OJLOODiOODouODjuODqg0KK+OCs+ODs+ODiSzjgqTjgrXjg6ANCivjgrPjg7Pjgr8s44Kx44Oz44Kk44OBDQor44Kz44K/44KrLOODn+ODhOODjuODqg0KK+OCs+OCv+OCsSzjg57jgrXjgq0NCivjgrPjg6Tjg54s44OI44Km44Ot44KvDQor44Kv44OcLOODkuODreOCtw0KK+OCr+ODnOOCrSzjgqTjgq/jgrMNCivjgq/jg5zjgr8s44Oo44Km44Kk44OBDQor44Kv44KsLOOCv+ODhOOCuA0KK+OCr+ODnuOCrOOCpCzjg6Tjgrnjg4rjg6oNCivjgq/jg4vjg6Ljg6os44Oo44Km44Kk44OBDQor44Kv44Op44Oi44OILOOCuOODpeODsw0KK+OCr+ODqeOCteODryzjgqLjg4TjgrcNCivjgq/jg6njgrfjg4os44Kr44OE44OS44OIDQor44Kv44Op44K/LOOCteODiOOCtw0KK+OCr+ODquODouODiCzjgr/jgrHjgqoNCivjgq/jg6rjgr8s44Oo44K344Oe44K1DQor44Kv44Ot44OALOODiOOCt+OCq+OCug0KK+OCr+ODreODgCzjg5Ljg4fjgqLjgq0NCivjgq/jg63jgqvjg68s44K344Oz44K0DQor44Kv44Ot44KtLOODhOODqOOCtw0KK+OCr+ODreOCteOCrSzjg6rjg6fjgqbjgqTjg4ENCivjgq/jg63jgrXjg68s44OS44Ot44Om44KtDQor44Kv44Oq44Ol44KmLOOCseODs+OCuA0KK+OCr+ODr+OCvyzjg57jgrXjg5LjgrMNCivjgq/jgrrjg58s44K/44Kr44OS44OtDQor44Oe44OW44OBLOOCv+OCr+ODnw0KK+ODnuOCqOODgCzjg6Tjgrnjg5Ljg60NCivjg57jgqjjg4As44Kx44Kk44K3DQor44Oe44Ko44Ks44OvLOOCouOCreODkuOCsw0KK+ODnuOCqOOCq+ODryzjg6Tjgrnjg4jjgrcNCivjg57jgq3jgqos44K744Kk44Kk44OBDQor44Oe44Oh44OP44OpLOOCouOCreODkuODrQ0KK+ODnuOCteODgCzjg5Ljg63jg6bjgq0NCivjg57jgrnjg4As44Oo44Km44K544KxDQor44Oe44K544OALOODkuODreOCtw0KK+ODnuOCueODgCzjgr/jgqvjgrcNCivjg57jgrnjg4As44OI44Oi44KzDQor44Oe44K544Ok44OeLOODquODhOOCsw0KK+ODnuODhOODgCzjg6Djg4Tjg58NCivjg57jg4Tjg4As44OK44Kq44OfDQor44Oe44OE44Ko44OALOODhOODqOOCtw0KK+ODnuODhOOCpCzjgr/jgqvjg57jgrUNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44Oe44OE44Oi44OILOOCseOCpOOCuA0KK+ODnuODhOODouODiCzjgrvjgqTjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Om44Km44Kk44OBDQor44Oe44OE44Oi44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg6jjgqbjgr/jg63jgqYNCivjg57jg4Tjg4rjgqws44Oe44K144Om44KtDQor44Oe44OE44OOLOODpOOCueODkuOCsw0KK+ODnuODhOODjizjgrfjg7PjgqTjg4ENCivjg57jg4Tjgqrjgqss44Of44OB44KzDQor44Oe44Om44OfLOOCouOCreODqQ0KK+ODoeOCq+OCvyzjg5Ljg63jgq0NCivjg6Hjg6ks44Kz44Km44K4DQor44Of44K/44OLLOOCv+ODreOCpg0KK+ODn+OCv+ODiyzjg5/jg4Hjg5Ljg4gNCivjg5/jg4gs44Om44Of44KzDQor44Of44Ok44Ks44OfLOOCt+OCsuODkuOCtQ0KK+OCpOOCquOCrSzjg57jgrXjgqLjgq0NCivjg5/jg6Tjg6Ljg4gs44Ki44Kt44OS44OtDQor44Of44Ok44Og44OpLOODiOODouODpuOCrQ0KK+ODn+ODpOODjizjgr/jgqvjgqLjgq0NCivjg5/jg6Tjgqbjg4Es44Oe44K144OP44OrDQor44Of44Ok44K244KtLOODnuOCteOCq+ODhA0KK+ODouODgeOCuuOCrSzjg6bjgq0NCivjg6Ljg6LjgqQs44OS44OH44Oe44K1DQor44Oi44OqLOODpuOCqw0KK+ODouODqizjgq/jg5/jgrMNCivjg6Ljg6rjg6Ljg4gs44Oo44Km44Kk44OBDQor44Oi44Oq44Oi44OILOODoOODhOOCsw0KK+ODouODquOCquOCqyzjgrHjg7PjgrgNCivjg6Ljg6rjgrXjg68s44OI44Oi44OS44OtDQor44Oi44Oq44K/LOOCq+OCuuODqOOCtw0KK+ODouODquOCvyzjg5Ljg63jg47jg5YNCivjg6Ljg6rjgr8s44Ki44Kt44OS44KzDQor44Oi44Oq44K/LOOCt+ODs+ODpA0KK+ODouODquODpOODnizjgr/jgqvjgrcNCivjg6Ljg6rjg6Tjg54s44K/44OE44OS44KzDQor44Oi44OG44KuLOODiOOCquODqw0KK+ODoOODqeOCq+ODnyzjg57jgrXjgqLjgq0NCivjgqLjgrXjg44s44Kx44Oz44K0DQor44Ki44Om44Kr44OvLOOCteODiOOCtw0KK+ODoOODqeOCqizjg4DjgqTjgrnjgrENCivjg6Djg6njgqrjgqss44K344Ky44OrDQor44Og44Op44K/LOODiOODouOCq+OCug0KK+ODoOOCt+OCouOCsSzjgqjjg5/jgrMNCivjg6Djgr8s44OS44K144K3DQor44OK44OZ44KkLOODnuOCteODkuODrQ0KK+ODiuOCrOOCpCzjgrPjgqbjgqTjg4ENCivjg4rjgqzjgqQs44Oe44K144KzDQor44OK44Ks44Of44ONLOOCteODpuODqg0KK+ODiuOCrOOCteODryzjgr/jg4DjgrcNCivjg4rjgqzjgr8s44OG44OE44KqDQor44OK44Ks44Ok44OeLOODhuODhOODpA0KK+ODiuOCsOODqSzjg6bjg5/jgrMNCivjg4rjgqTjg4jjgqYs44OS44Ot44K3DQor44OK44Kr44Ks44OvLOODquODpeOCpuOCuA0KK+ODiuOCq+OCrOODryzjg6bjg5/jgrMNCivjg4rjgqvjgqzjg68s44Ok44K544K3DQor44OK44Kr44Ks44OvLOODnuOCteODkuODrQ0KK+ODiuOCq+ODj+ODqSzjgr/jgqvjgrMNCivjg4rjgqvjgqQs44K344Ky44OrDQor44OK44Kr44KkLOOCv+OCq+ODkuODrQ0KK+ODiuOCq+OCuOODnizjg4jjgqrjg6sNCivjg4rjgqvjgrjjg54s44Om44Of44KzDQor44OK44Kr44K444OeLOOCq+ODhOODpA0KK+OCteODr+ODgCzjg5/jgqjjgrMNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OO44OWDQor44OQ44Oz44OQLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg5Ljg4gNCivjg4rjgqvjg6Djg6ks44Kz44Km44Kk44OBDQor44OK44Kr44Og44OpLOODnuOCteODjuODqg0KK+ODiuOCq+ODoOODqSzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44Oe44OqDQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg5Ljg60NCivjg4rjgqvjg44s44OV44Of44KzDQor44OK44Kr44OOLOODkuODreOCq+OCug0KK+ODiuOCq+OCqizjg47jg5bjg6bjgq0NCivjg4rjgqvjgrfjg54s44Ok44K544OS44OtDQor44OK44Kr44K/LOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCvyzjgqLjgq3jgrMNCivjg4rjgqvjg6Tjg54s44OK44Kq44Ok44K5DQor44OK44Kr44Ok44OeLOODkuODreODleODnw0KK+ODiuOCq+ODpOODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjg6Tjg54s44Kx44Kk44KzDQor44OK44Kr44K244OvLOOCq+ODhOODpA0KK+ODiuOCq+OCtuODryzjgrHjgqTjgrnjgrENCivjg4rjgqzjgqrjgqss44Om44K/44KrDQor44OK44OK44K344OjLOODqOOCt+ODkuODrQ0KK+ODiuODquOCvyzjg4Tjg6jjgrcNCivjg4rjg6rjgr8s44Oe44Kz44OIDQor44OK44K5LOOCv+OCseOCtw0KK+ODiuOCueOCvyzjg5Ljg63jgrcNCivjg4vjgrcs44Kr44ON44OO44OWDQor44OL44K344OALOODjuODluODpuOCrQ0KK+ODi+OCt+ODoOODqSzjgrXjg4HjgqoNCivjg57jgrXjg4As44K/44Kx44OS44KzDQor44OL44K344Og44OpLOODiOODouOCsw0KK+ODi+OCt+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4vjgrfjgqos44Oo44K344K/44OADQor44OL44K344Ok44OeLOODn+ODiuOCsw0KK+ODi+ODg+OCvyzjgqvjgqrjg6oNCivjg47jgqzjg58s44Ok44K544OS44OtDQor44OO44OK44KrLOOCv+OCq+ODkuODrQ0KK+ODjuOCuyzjg5Ljg4fjgqoNCivjg47jgr/jg5ks44K344Oz44K0DQor44OO44OILOOCuOODpeODs+OCpOODgQ0KK+ODjuODhizjg5Ljg63jgq0NCivjg4zjgq/jgqQs44Oe44K144OS44OtDQor44Kq44OBLOOCouOCreODkuOCsw0KK+OCquODgeOCouOCpCzjg4jjgrfjg6bjgq0NCivjgqrjg4As44Oo44K344Kr44K6DQor44Kq44Ks44K144Ov44OpLOODpuOCpuOCuA0KK+OCquOCrOODryzjg6jjgqbjgrgNCivjgqrjgqzjg68s44Kz44Km44K4DQor44Kq44Ks44OvLOODnuOCteODkuOCsw0KK+OCquOCrOODryzjg57jgrXjg6QNCivjgqrjgqzjg68s44OK44Kq44K/44KxDQor44Kq44Ks44OvLOODiOODouODnw0KK+OCquOCruODjizjg57jgrPjg4gNCivjgqrjgqrjg5As44Oe44K144OS44OHDQor44K/44Kt44Of44OkLOODpuOCreOCqg0KK+OCquOCquODj+OCtyzjgr/jg4Djg6bjgq0NCivjgqrjgqrjg4/jgrcs44K/44Kv44Of44OzDQor44Kq44Kq44KkLOODgeOCteODiA0KK+OCquOCquOCq+ODryzjgqjjg58NCivjgqrjgqrjg6Ljg6os44K444Ol44Oz44KrDQor44Kq44Og44OpLOODnuODpg0KK+OCquODiuOCq+ODj+ODqSzjgr/jgrHjg4TjgrANCivjgqrjgqrjg4vjgrcs44Oo44K344OO44OqDQor44Kq44OOLOOCouOCreOCsw0KK+OCquOCquOCquOCqyzjgr/jgqvjgrcNCivjgqrjgrfjg54s44OO44OWDQor44Kq44K344OeLOOCseODs+OCpOODgQ0KK+OCpOOCseODnuODhCzjgr/jgqvjgrMNCivjgqrjgqrjgr8s44K/44Kx44K3DQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquOCvyzjgrXjg4HjgrMNCivjgqrjgqrjgr8s44K/44Of44KzDQor44OV44Kv44OALOODn+OCqA0KK+OCquOCvOOCrSzjgrHjgqTjgqTjg4ENCivjgqrjgqTjg4As44OS44OI44K3DQor44Kq44Kk44K4LOOCr+ODi+ODkuODrQ0KK+OCquOCq+ODgCzjgrfjg7PjgrgNCivjgrnjgq7jg6Ljg4gs44K/44Kr44Om44KtDQor44Kq44Kr44K244KtLOODpOOCueODkuODrQ0KK+OCquOCq+OCtuOCrSzjg6TjgrnjgrcNCivjgqrjgqvjgrbjg68s44OS44OI44K3DQor44Kq44Kv44OALOODhuODhOODpA0KK+OCquOCr+ODgCzjg57jgrXjgq0NCivjgqrjgq/jg6Djg6ks44K344Ky44OrDQor44Kq44Kv44Og44OpLOODkuODh+ODkuODiA0KK+OCquOCr+ODjizjgrPjgqbjgr/jg63jgqYNCivjgqrjgq/jg6Tjg54s44Ki44Kt44OS44OtDQor44Kq44OOLOODiuOCquODnw0KK+OCquOCquODjOOCrSzjg5Ljg4fjg47jg6oNCivjgqrjgqrjg4/jgrcs44OI44K344KqDQor44OI44Kq44OkLOODnuOCteODkuODrQ0KK+OCquODiOOCsOODrSzjg47jg5bjg6bjgq0NCivjgrXjgqTjgrTjgqYs44K/44Kx44OS44OtDQor44K144Kk44OI44KmLOODqOOCt+OCv+ODreOCpg0KK+OCteOCpOODiOOCpizjgqLjgq3jg5LjgrUNCivjgrXjgqTjg4jjgqYs44OV44Of44OS44KzDQor44K144Kk44OI44KmLOODkuODreOCrQ0KK+OCteOCpOODiOOCpizjg5Ljg63jgrcNCivjgrXjgqTjg4jjgqYs44K444Ol44OzDQor44K144Kk44OI44KmLOOCq+ODs+OCuA0KK+OCteOCq+OCqOODgOODiyzjg5/jgqsNCivjgrXjgqvjgqQs44OO44OW44Ok44K5DQor44K144Kr44KkLOODiOOCr+OCuOODreOCpg0KK+OCteOCq+OCvyzjg4Tjg6jjgrcNCivjgrXjgqvjgr8s44Kr44K644OS44KzDQor44K144Kv44OeLOOCv+OCq+ODkuODrQ0KK+OCteOCr+ODqeODkOODpOOCtyzjgqLjg4TjgrcNCivjgrXjgq/jg6njgqQs44Oe44OE44KqDQor44K144Kv44K/LOODqOOCt+OCouOCrQ0KK+OCteOCteOCrSzjg57jgrXjgqvjgroNCivjgrXjgrXjgq0s44Ki44Kt44OpDQor44K144K144KtLOOCteODgeOCsw0KK+OCteOCteOCrSzjg6jjgrfjg6bjgq0NCivjgrXjgrXjg6Es44Oo44Km44Kk44OBDQor44K144OI44KmLOOCq+OCuuODjuODqg0KK+OCteODiOOCpizjg57jgrXjg5LjgrMNCivjgrXjg4jjgqYs44Oo44K344OS44OtDQor44K144OI44KmLOODqOOCt+ODreOCpg0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrXjg4jjgqYs44OS44Ot44OfDQor44K144OI44KmLOODkuODreOCtw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjgrXjg4jjgqYs44K344On44Km44K4DQor44K144OI44KmLOODpOOCqA0KK+OCteODiOOCpizjgq/jg5/jgrMNCivjgrXjg4jjgqYs44OS44Ot44Ok44K5DQor44K144OI44KmLOODquOCqA0KK+OCteODr+ODgCzjgr/jgqvjg40NCivjgrXjg6/jg4/jgrcs44K/44OE44Om44KtDQor44K144Ov44OOLOOCq+OCuuODkuODrQ0KK+OCu+OCsOODgSzjgrfjg6Xjgqbjg5jjgqQNCivjgrvjgq0s44OI44Oi44KzDQor44K744Kt44Kw44OBLOODqOOCt+ODkuODrQ0KK+OCu+OCreOCsOODgSzjgrXjg4jjgrcNCivjgrfjg5As44Kr44Kq44OqDQor44K344OQ44K/LOOCouODpOOCsw0KK+OCt+ODkOOCvyzjg57jgrXjg4/jg6sNCivjgrfjg5bjg6Qs44K/44Kr44K3DQor44K344Oe44OALOOCt+ODpeOCpuOCuA0KK+OCt+ODn+OCuizjgqvjg4Tjg6bjgq0NCivjgqTjgrfjgqvjg68s44K/44Kr44Om44KtDQor44K344Of44K6LOODiOODouODkuODrQ0KK+OCt+ODn+OCuizjgqvjg4Tjg6bjgq0NCivjgrfjg5/jgros44Kx44Oz44K4DQor44K344Of44K6LOOCseODs+OCv+ODreOCpg0KK+ODleOCuOOCqOODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgrfjg6Ljg6Tjg57jg4As44K344Oz44Kk44OBDQor44K344OK44Ks44OvLOODiOODouODkuODhw0KK+OCt+ODs+ODpCzjg5/jg4Tjg47jg6oNCivjgrfjgqrjg58s44K344Oz44K4DQor44K344Kq44OELOOCq+ODhOODkuOCsw0KK+OCu+OCreOCsOODgSzjg4jjgqrjg6sNCivjg4Tjg47jg4As44K/44Kr44K3DQor44K344Op44K144KrLOOCouODhOOCqg0KK+OCt+ODreOCt+OCvyzjg5Ljg63jg6bjgq0NCivjgrfjgr/jg6ks44OS44K144K3DQor44K344On44KmLOOCuOODpeODs+OCpOODgQ0KK+OCueOCrOODr+ODqSzjg5/jg5sNCivjgrnjgqzjg6/jg6ks44K144OI44K3DQor44K544Ku44Oi44OILOOCt+ODp+OCpuOCpOODgQ0KK+OCueOCruOCvyzjg4jjg6LjgqvjgroNCivjgrnjgq7jgr8s44Oe44K144Oo44OqDQor44K544Ku44K/LOOCq+ODhOODkuOCsw0KK+OCueOCruOCpuODqSzjgrXjg4jjgrMNCivjgrnjgq7jgqbjg6ks44OI44Oo44OS44K1DQor44K544Ku44Ok44OeLOODn+OCuuODmw0KK+OCpOOCseOCvuOCqCzjg57jgrXjg4jjgrcNCivjgrnjgq7jg6Tjg54s44OS44Ot44Ki44KtDQor44K544KrLOODiOODouODpuOCrQ0KK+OCueOCseOCrOODryzjg47jg5bjg6jjgrcNCivjgrnjg5/jg47jgqbjgqgs44OS44OH44KtDQor44K544Of44Oo44K3LOOCv+ODjeOCq+OCug0KK+OCueODn+ODqOOCtyzjg4jjgrfjg5/jg4QNCivjgrnjg4rjg58s44OS44Ot44Om44KtDQor44K544K644KtLOODpOODgeODqA0KK+OCueOCuuOCrSzjg57jg6Ljg6sNCivjgrnjgrrjgq0s44Ki44Kt44OS44OtDQor44K544K644KtLOOCouOCreODqQ0KK+OCueOCuuOCrSzjg5Ljg63jgqLjgq0NCivjgrnjgrrjgq0s44Kk44OD44Oa44KkDQor44K544K644KtLOODnuOCteODiA0KK+OCueOCuuOCrSzjg47jg5bjgqLjgq0NCivjgrfjg6fjgqbjgrgs44K344K6DQor44K344On44KmLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCv+ODkOOCvyzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgr/jg4As44OI44K344KqDQor44K/44OJ44Kz44OtLOODkuODh+ODpuOCrQ0KK+OCv+OCrOODnyzjgrPjgqbjgrgNCivjgr/jgrDjg4Es44K/44Kr44K3DQor44K/44Kw44OBLOODkuODreOCouOCrQ0KK+OCv+OCpCzjg57jgrXjg4bjg6sNCivjgr/jgqTjg6ks44Ki44OE44K3DQor44K/44Kk44K1LOODn+ODhOODkuODrQ0KK+OCv+OCuOODnizjgq3jg6jjgrcNCivjgr/jgqvjg4As44K/44OA44OK44KqDQor44K/44Kr44OALOOCqOODhOODreOCpg0KK+OCv+OCq+OCrizjg4bjg4Tjg63jgqYNCivjgr/jgqvjg4/jgrcs44Ki44OE44OkDQor44K/44Kr44OP44K3LOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg4jjgqrjg6sNCivjgr/jgqvjg4/jgrcs44OK44Kq44KtDQor44K/44Kr44OP44K3LOOCteODiOOCtw0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrgNCivjgr/jgqvjg4/jgrcs44OI44K344KqDQor44K/44Kr44OP44K3LOODpuOCpuOCueOCsQ0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjgq0NCivjgr/jgqvjg4/jgrcs44Oo44K344OV44OfDQor44K/44Kr44KkLOOCt+ODjuODlg0KK+OCv+OCq+ODjizjgqvjg7PjgrMNCivjgr/jgqvjgrfjg54s44OK44Kq44OkDQor44K/44Kr44Ok44OeLOODkuODh+ODhOOCsA0KK+OCv+OCseODgCzjgqvjgrrjg6jjgrcNCivjgr/jgrHjgqTjg4Es44Kx44Kk44K544KxDQor44K/44Kx44Oe44K1LOOCseODs+OCpOODgQ0KK+OCv+OCseODoOODqSzjgrfjg5sNCivjgr/jgrHjg6Djg6ks44K344Ol44Oz44K544KxDQor44K/44Kx44OK44KrLOODiuOCquODiA0KK+OCv+OCseOCt+OCvyzjgrfjg6fjgqbjgr7jgqYNCivjgr/jgrHjgqbjg4Es44Ki44OE44OIDQor44K/44Kx44Km44OBLOODkuODiOOCtw0KK+OCv+OCseOCpuODgSzjgqjjgqTjgqTjg4Hjg63jgqYNCivjgr/jgq3jgqvjg68s44Ki44OE44K3DQor44K/44Kt44Kt44K/LOOCv+OCq+OCtw0KK+OCv+OCreOCtuODryzjg5Ljg4fjg4gNCivjgr/jgrMs44Oo44K344KtDQor44K/44Kr44OOLOODouODiOODpuOCrQ0KK+OCv+ODnuOCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jg57jgq0s44Kq44K144OgDQor44K/44Og44OpLOOCq+OCuuOCv+OCqw0KK+OCv+ODiuODmSzjg5Ljg63jg47jg5YNCivjgr/jg4rjg5ks44OV44Of44KqDQor44K/44OK44KrLOOCreODp+OCpuODmOOCpA0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjgrMNCivjgr/jg4rjgqss44Of44ObDQor44K/44OK44KrLOODqOOCt+ODkuOCtQ0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjgr/jg4rjgqss44Oe44K144Oo44K3DQor44K/44OLLOOCq+OCuuODiuODqg0KK+OCv+ODi+OCsOODgSzjg47jg5bjg5Ljg60NCivjgr/jg4vjgrfjg6fjgqYs44K344Oz44K0DQor44K/44OG44Ok44OeLOODqOOCt+ODleODnw0KK+OCv+ODhOODnyzjg57jgrnjg58NCivjgr/jgqbjg6ks44K/44Kr44OI44K3DQor44K/44K244OvLOODiOODouODpuOCrQ0KK+OCv+OCuuOCsSzjgrvjgqTjgqTjg4ENCivjg4bjg6njg4As44Kx44Kk44KzDQor44OI44Km44OeLOOCq+OCuuODkuODrQ0KK+ODiOOCquODpOODnizjgqvjgrrjg5Ljg60NCivjg4jjg6Hjgqrjgq8s44Ki44Kt44KqDQor44OI44Of44Kk44KoLOODj+ODpOODiA0KK+ODleOCv+ODhOOCrizjg5Ljg63jgrcNCivjg4jjg6Ljg4jjgrcs44Kx44Oz44K4DQor44OI44ON44Ks44OvLOOCouOCreOCsw0KK+OCquOCr+ODoOODqSzjg47jg6rjg5LjgrMNCivjg4jjgrfjgrfjgrIs44OS44Ot44K3DQor44OI44Oo44OALOOCq+OCuuODiuODqg0KK+ODiOODqOODiuOCqyzjg57jgrXjg6QNCivjg4Tjg5Djgq0s44OG44OE44OkDQor44OE44OB44Oi44OILOODleODn+OCqg0KK+ODhOODgCzjgrXjg4jjgrcNCivjg4Tjg4As44Kr44OoDQor44OE44OALOODiOOCt+OCqA0KK+ODhOOCuOOCpCzjg4jjg6Ljgr/jgqsNCivjg4Tjgrjjg6Djg6ks44OO44Oq44KzDQor44OE44Kr44OP44OpLOODiOOCt+ODreOCpg0KK+ODhOODjuODgCzjgrfjg6fjgqbjgrgNCivjg4Tjg6vjgq4s44OP44Or44OS44KzDQor44OE44Or44K/LOODhuODq+ODkuOCsw0KK+ODhOOCt+ODnizjgq3jg4zjg6gNCivjg4Tjg4TjgqQs44OS44Ot44Om44KtDQor44OE44OB44OALOOCq+ODhOODpuOCrQ0KK+OCpuODgeODgCzjgrXjg4jjg6sNCivjgqbjg4Hjg4As44K/44Kv44K4DQor44Km44OB44Kv44OpLOOCv+OCseOCtw0KK+OCpuODgeOCv+ODiyzjgqvjg4TjgrMNCivjgqbjgqjjg4As44K144Kt44KzDQor44Km44Ko44OALOODgeOCqA0KK+OCpuOCqOODgCzjgqzjgq8NCivjgqbjgqjjg4As44Ki44Kt44OO44OqDQor44Km44Ko44Og44OpLOODkuODreOCsw0KK+OCpuOCqOODjizjg5Ljg63jgrcNCivjgqbjgqjjg4Tjgq0s44Oe44KtDQor44Kk44KxLOODnuOCteODqw0KK+OCpuODoeODgCzjg5/jg5sNCivjgqbjg6Hjg6Djg6ks44OK44OE44KzDQor44Km44OO44KtLOODjuODluODkuOCsw0KK+OCpuODqeOCt+OCvyzjg4jjg6LjgrMNCivjgqbjg6njgr8s44OI44Oi44Om44KtDQor44Km44K344KqLOODqOOCt+OCqg0KK+OCpuOCv+OCrOODryzjg4bjg4Tjg6QNCivjg6/jg4As44OI44Oi44KzDQor44Ov44OALOOCouOCreODkuODiA0KK+ODr+ODgCzjg5Ljg63jgr/jg4QNCivjg6/jg4As44Oe44K144OS44OtDQor44Ov44Ks44OE44OeLOOCt+ODp+OCpuOCpOODgQ0KK+ODr+OCq+ODnuODhCzjg6bjgqbjgrgNCivjg6/jgq3jgr8s44OS44Ot44Ki44KtDQor44Ov44KzLOODkuODreOCq+OCug0KK+ODr+ODquOCq+OCvyzjg4rjgqrjg6bjgq0NCivjg6/jgrfjgros44K344On44KmDQor44Ov44K/44OK44OZLOOCt+ODpeODs+OCuA0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg6bjgq0NCivjg6/jgr/jg4rjg5ks44OI44K344KqDQor44Ov44K/44OK44OZLOOCrOOCrw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg5Xjg58NCivjgqrjg6Djg6ks44OS44Ot44OS44OHDQor44Ov44K/44OK44OZLOOCs+OCpuOCu+OCpA0KK+ODr+OCv+ODiuODmSzjg4rjgqrjgrMNCivjg6/jgr/jg4rjg5ks44Oq44Ol44Km44Kk44OBDQor44Ov44K/44OK44OZLOODhuODhOODreOCpg0KK+ODpOOCrizjg4jjg6Ljg58NCivjg6Tjgq4s44Om44Km44KzDQor44Ok44Oe44OALOOCv+OCq+ODiA0KK+ODpOODnuODgCzjg47jg6rjg4jjgrcNCivjg6Tjg57jg4As44OS44OH44OV44OfDQor44Ok44Oe44OALOOCt+OCsuOCqg0KK+ODpOODnuODgCzjgr/jgrHjg5Ljg60NCivjg6Tjg57jg5Xjgq8s44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODnuODquOCsw0KK+ODpOODnuOCsOODgSzjg6jjgqbjgrgNCivjg6Tjg57jgrDjg4Es44Oo44Km44KzDQor44Ok44Oe44Kw44OBLOODkuODreOCq+OCug0KK+ODpOODnuOCuCzjg4jjgqrjg6sNCivjg6Tjg57jgqvjg68s44Kz44Km44K4DQor44Ok44Oe44Oi44OILOOCv+OCq+ODjuODqg0KK+ODpOODnuODouODiCzjgrHjg7PjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Of44OE44K+44KmDQor44Ok44Oe44Oi44OILOODpuOCreOCsw0KK+ODpOODnuODouODiCzjg5Ljg63jg6TjgrkNCivjg6Tjg57jg6Ljg4gs44Kz44Km44K4DQor44Ok44Oe44Oi44OILOODnuOCteOCrQ0KK+ODpOODnuODouODiCzjg6bjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44Om44K/44KrDQor44Ok44Oe44OKLOOCu+OCpOOCpOODgeODreOCpg0KK+ODpOODnuOCteOCrSzjgqvjg4Tjg58NCivjg6Tjg57jgrfjgr8s44OO44Oq44OI44K3DQor44Ok44Oe44K344K/LOODiOOCquODqw0KK+ODpOODnuOCtuOCrSzjg5Ljg63jgrcNCivjg6Tjg4rjgq4s44Oq44On44KmDQor44Ok44OOLOOCseODs+OCv+ODreOCpg0KK+ODpOOCt+ODrSzjgr/jgrHjgrcNCivjg6TjgrnjgqQs44OV44OI44K3DQor44Ok44K544Og44OtLOOCv+OCq+OCtw0KK+ODpOOCueOCpuOCuCzjg6jjgrfjg6bjgq0NCivjg6jjgrPjgqgs44OS44OH44OO44OqDQor44Oo44Kz44KkLOODnuODpA0KK+ODqOOCs+ODn+OCvizjgq3jg6jjgrfjgrINCivjg6jjgrPjg6Tjg54s44Oe44K144OS44KzDQor44Oo44ON44K244OvLOOCq+OCuuODkuOCsw0KK+ODqOOCt+ODgCzjgrHjg7Pjg6QNCivjg6jjgrfjg4As44OO44OW44OS44OtDQor44Oo44K344OALOOCq+ODhOODpA0KK+ODqOOCt+ODgCzjgqvjgrrjgqLjgq0NCivjg6jjgrfjg4As44OI44Oi44OfDQor44Oo44K344KkLOOCt+OCsuODiA0KK+ODqOOCt+ODoOODqSzjg4bjg6vjgqvjgroNCivjg6jjgrfjg6Tjg54s44Ko44Kk44K4DQor44Oo44K344K244OvLOOCteODgeOCsw0KK+ODleOCuOOCt+ODnizjgrHjg7Pjgr/jg63jgqYNCivjg6bjgqLjgrUs44Kx44KkDQor44Om44KtLOOCu+ODhOOCsw0KK+ODpuOCrSzjgqLjgq3jg6gNCivjg6bjgqQs44OA44Kk44K544KxDQor44Ki44OA44OBLOODiuOCquOCv+OCsQ0KK+ODkOODsyzjgr/jgqvjgrcNCivjg5Xjg6vjgqQs44Oo44K344OO44OqDQor44OP44K744Ks44OvLOODj+OCuOODoQ0KK+ODkuODqeOCq+ODryzjg57jg4rjg5YNCivjgqTjg4jjgqYs44OI44K344OS44KzDQor44Kk44Ov44K144KtLOODquODp+OCpuOCuA0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjgqvjg6/jg4/jg6ks44Oo44K344Of44OEDQor44Oe44Ko44OP44OpLOOCquOCteODoA0KK+ODnuODhOOCv+ODiyzjgrfjgrLjgqoNCivjg6Ljg6rjgqTjg4Es44Ko44Kk44K444Ot44KmDQor44OL44K344Km44OBLOODjuODluODpuOCrQ0KK+ODleOCuOODnuOCrSzjgr/jgqTjgr7jgqYNCivjgqrjgqrjg4/jg6ks44K/44Kr44K3DQor44K144OK44OALOODkuODh+OCouOCrQ0KK+OCveODjSzjg4Tjg4jjg6ANCivjg4jjg47jg6Djg6ks44Oo44K344Om44KtDQor44K344Of44K6LOOCseOCpA0KK+ODn+OCt+ODnizjg57jg6rjgrMNCivjg5Xjgrjjgr8s44K/44Ot44KmDQor44OV44K444K/LOODkuODh+OCrQ0KK+ODleOCuOOCvyzjg6jjgqYNCivjg5Xjgrjjg6/jg6ks44Kz44Km44K444Ot44KmDQor44OV44K444Ol44KmLOOCt+ODs+OCpOODgQ0KK+ODleOCq+ODgCzjgr/jgq/jg6QNCivjg5Xjgq/jg4As44Om44K/44KrDQor44OV44Kv44OS44K1LOODiuOCquOCv+OCqw0KK+ODleOCr+OCtuODiCzjgqLjg6QNCivjg5Xjgq/jgrbjg68s44K/44Kr44K3DQor44OV44Or44K144OvLOOCreODj+ODqw0KK+ODj+OCrOODryzjgr/jgqvjgrcNCivjg4/jgq4s44OS44Ot44K/44KrDQor44OP44Op44OALOODn+ODhOODqw0KK+ODj+ODqeODgCzjg47jg5bjg5Ljg60NCivjg4/jg6njg4As44Oe44KtDQor44OP44Op44Oe44KtLOODiuOCquOCsw0KK+ODj+OCu+OCrOODryzjg6rjgqgNCivjg4/jgrvjgqzjg68s44OS44OH44Ki44KtDQor44OP44K344KqLOODpuOCqw0KK+ODj+OCueODnyzjg5Ljg63jgrcNCivjg4/jgrnjg58s44Kx44Oz44Kk44OB44OtDQor44OP44OD44OI44OqLOODqOODquOCsw0KK+OCpOOCt+OCq+ODryzjg5bjg7Pjg5rjgqQNCivjg4/jg6Tjgrcs44K/44Kr44KzDQor44OS44Op44OOLOOCv+OCr+ODpA0KK+ODkuODqeODjizjgqvjgrrjgqLjgq0NCivjg5Ljg6njg44s44OI44K344Ki44KtDQor44OS44Ot44OZLOODkuODh+OCrQ0KK+OCt+ODjuODgCzjgrHjg7PjgrgNCivjg5LjgrXjg4As44K/44Kr44Om44KtDQor44ObLOOCv+OCseOCtw0KK+ODm+ODs+OCtOOCpizjg4bjg6vjg5LjgrMNCivjg5vjgrcs44Of44OB44KzDQor44Ob44K344OOLOODnuOCteOCrQ0KK+ODm+OCveOCq+ODryzjg5Ljg63jgqvjgroNCivjg5vjgr3jg44s44Om44OfDQor44Kr44OI44KmLOODqOOCt+ODreOCpg0KK+OCpOOCrizjg6jjgqbjgrMNCivjgqTjgrHjg4As44OI44K344Om44KtDQor44Kk44Kv44OtLOODjuODquODkuODrQ0KK+OCpOODnuOCpCzjgqvjgrrjg6jjgrcNCivjgqTjg4rjg4As44Kz44Km44OY44KkDQor44Kk44OO44Kw44OBLOOCv+OCq+ODpuOCrQ0KK+OCpOOCt+OCsOODrSzjg4TjgrDjgqvjgroNCivjgqTjgrfjgqvjg68s44OS44Ot44KtDQor44Kk44K344Kr44OvLOOCseODs+OCuA0KK+OCpOOCt+OCtuOCrSzjg6bjgqvjg6oNCivjgqTjgrfjgrzjgq0s44Oo44K344OIDQor44Kk44OI44KmLOODhuODhOODpA0KK+OCpOODiOOCpizjg57jgrXjg6jjgrcNCivjgqTjg4jjgqYs44OK44Kq44KtDQor44Kk44OI44KmLOODqOOCt+ODnw0KK+OCpOODnuOCrOODryzjgrHjgqQNCivjgqTjgrbjg68s44Kz44Km44K4DQor44Kk44K644OfLOOCt+ODp+OCpuOCuA0KK+OCpOOCuuODn+ODgOODhizjg47jg6rjg4jjgrcNCivjgqvjg5bjg6njgq4s44Kr44Kq44OqDQor44Kr44Of44Ok44OeLOODiOOCquODqw0KK+OCq+ODiuODpOODnizjgrPjgqbjgrgNCivjgqvjg4rjgrbjg68s44K444Ot44KmDQor44Kr44Oz44OQ44OpLOOCq+ODhOODqOOCtw0KK+OCq+ODs+ODgCzjg6bjgqbjgrMNCivjgqvjg7Pjg4As44Of44K544Oe44OrDQor44Kr44ON44KzLOODiuODquODiOODog0KK+OCq+OCt+ODoOODqSzjg5Ljg63jgrcNCivjgqvjgr/jgq7jg6os44K344Oz44K544KxDQor44Kr44OI44KmLOODkuODreODjuODqg0KK+OCq+ODiOOCpizjg47jg5bjg5LjgrUNCivjgqvjg6/jg4As44OP44Or44OfDQor44Kr44Ov44K544OfLOODqOOCpuOCsw0KK+OCreODiSzjgrfjg6Xjg7PjgqTjg4ENCivjgq3jgq/jg4Es44OO44OW44OS44OtDQor44Kt44Oi44OILOOCv+OCr+ODpA0KK+OCreODoOODqSzjgrHjg7Pjgr8NCivjgq3jg7Pjg4ks44Of44OB44OP44OrDQor44Kt44K/44Og44OpLOODn+ODmw0KK+OCreOCv+ODjizjgrXjg4DjgqoNCivjgq3jgr/jg6/jgr/jgrss44K544K544OgDQor44Kt44OD44K/LOODpOOCueOCsw0KK+OCreODpOODnizjgrvjgqTjgrgNCivjgq3jg6jjgr8s44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOOCuOODpeODs+OCuA0KK+OCs+ODkOODpOOCtyzjg6jjgqbjgrMNCivjgrPjgqws44Ki44OE44OkDQor44Kz44OP44OpLOOCv+OCq+ODpuOCrQ0KK+OCs+OCuOODiizjgrHjg7MNCivjgrPjg7Pjg44s44Kx44Kk44K0DQor44Kz44K644KrLOODnuOCteOCrQ0KK+OCs+OCpOODhyzjgrfjg7PjgrgNCivjgrPjg57jg4Qs44Oq44Ol44Km44K544KxDQor44Kz44Of44OK44OILOOCt+ODpeOCpuOCuA0KK+OCs+ODouODqizjgrXjg4jjgrMNCivjgrPjg7Pjg4ks44OS44Ot44OS44KzDQor44Kz44OL44K3LOODjuODquOCsw0KK+OCr+ODnOODpOODnizjgr/jg4DjgqLjgq0NCivjgq/jg57jgqzjgqQs44Oq44On44Km44K4DQor44Kv44Oe44K/LOOCv+OCq+OCsw0KK+OCr+ODquODj+ODqSzjgr/jgrHjgrcNCivjgq/jg6rjg4/jg6ks44Kx44Kk44KzDQor44Kv44Oq44K/LOOCteODiOOCtw0KK+OCr+OCteODjizjg5Ljg63jg5Xjg58NCivjgq/jgrfjg4As44Ki44Kt44OS44KzDQor44Oe44Ko44OALOODpuOCrQ0KK+ODnuOCrSzjgrHjgqTjgrnjgrENCivjg57jgq3jgr8s44K344Oz44K4DQor44Oe44Or44Ok44OeLOODhOODjeOCqg0KK+ODnuOCueODgCzjg4DjgqTjg4ENCivjg57jg4Tjg5Djg6ks44OB44Kr44OpDQor44Oe44OE44OQ44OpLOODkuODh+ODiOOCtw0KK+ODnuODhOOCpCzjgrHjgqTjgrMNCivjg57jg4Tjg6Ljg4gs44Oe44K144Om44KtDQor44Oe44OE44Og44OpLOOCt+ODs+OCv+ODreOCpg0KK+ODnuODhOOCqizjgqvjgrrjg5Ljg60NCivjg5/jgqvjg58s44Of44OE44KqDQor44Of44KtLOOCv+OCq+OCouOCrQ0KK+ODn+ODjuOCpuODqSzjgrvjgqTjgrgNCivjg5/jgrfjg54s44Kx44Oz44Kk44OBDQor44Of44OE44OK44KsLOODqOOCt+ODpuOCrQ0KK+ODn+OCpuODqSzjg57jgrXjg47jg6oNCivjg5/jg68s44K/44Kr44OO44OWDQor44Of44Ok44KqLOODpOOCueODj+ODqw0KK+ODn+ODpOOCvyzjgqvjg4rjgqYNCivjg5/jgrrjgr/jg4ss44Kr44K644OS44KzDQor44Of44K644K/44OLLOODkuODh+ODjuODlg0KK+ODouODgeOCuuOCrSzjg5/jg4Tjg6sNCivjg6Ljg4Hjgrrjgq0s44Kv44Of44KzDQor44Oi44OB44K644KtLOODjuODluODpuOCrQ0KK+ODouOCrizjg5Ljg63jgrcNCivjg6Ljg6os44K144OI44OrDQor44Oi44OqLOOCv+ODgOODkuOCsw0KK+ODouODqizjgr/jg4Djg6bjgq0NCivjg6Ljg6os44OI44Oi44OS44K1DQor44Oi44OqLOODiOOCt+OCrQ0KK+ODouODquODpOODnizjg4jjgrfjgqoNCivjg6Ljg63jgqrjgqss44Om44KtDQor44Oi44OI44OQLOODgOOCpOOCteOCrw0KK+ODoOODjeODiCzjgqvjg4Tjg57jgrUNCivjg6Djg6njgqQs44Oo44K344KzDQor44Og44Op44Kq44KrLOOCseODsw0KK+ODoOODreOCpCzjg5Ljg4fjg5Ljg60NCivjg4rjgqzjg5Xjgrgs44Kt44Of44OS44OIDQor44OK44Ks44KkLOOCouOCreODqQ0KK+ODiuOCpOODiOOCpizjg6bjgq3jgrMNCivjg4rjgqTjg4jjgqYs44K/44Ot44KmDQor44OK44Kr44Ks44OvLOODn+ODjuODqw0KK+ODiuOCq+ODj+ODqSzjg5/jg6TjgrMNCivjg4rjgqvjgrjjg54s44Om44K/44KrDQor44OK44Kr44K444OeLOODnuOCteODkuOCsw0KK+ODiuOCq+ODoOODqSzjgr/jgrHjgrcNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCouODpA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44OK44Kr44Og44OpLOOCouODhOOCtw0KK+ODiuOCq+ODoOODqSzjg5LjgrXjg4gNCivjg6Tjg57jg4As44K/44Kr44K3DQor44OK44Kr44KqLOOCqOOCpOOCuA0KK+ODiuOCq+ODhOOCq+OCtSzjgq3jg6jjgrcNCivjg4rjgqvjg6Tjg54s44Oe44OqDQor44OK44Og44OpLOODoOODjeODpuOCrQ0KK+ODiuOCueODjizjg4rjgqrjgq0NCivjg4vjgqTjgrzjgq0s44OI44K344OP44OrDQor44OL44K344Kr44OvLOOCs+OCpuOCvuOCpg0KK+ODi+OCt+OCreOCquODqizjg6jjgrfjgqLjgq0NCivjg4vjgrfjgrbjg68s44Kr44OE44OO44OqDQor44OO44Ki44KtLOODqOOCpuOCsw0KK+ODjuODgCzjgrHjg7Pjgr/jg63jgqYNCivjg47jg4As44Om44Km44KzDQor44OO44Kw44OBLOODkuOCteOCtw0KK+ODjuODoOODqSzjg5Ljg4fjgq0NCivjgqrjg4HjgqLjgqQs44Kz44K544KxDQor44Oi44OqLOODnuODquOCsw0KK+OCquOCrOOCteODr+ODqSzjg5/jg4Tjg5LjgrUNCivjgqrjgqzjgrXjg6/jg6ks44K/44OE44K3DQor44Kq44Ks44OvLOODquODp+OCpuOCsw0KK+OCquOCrOODryzjgr/jgqvjg5Ljg60NCivjgqrjgqzjg68s44Ok44K544OS44K1DQor44Kq44Kw44OpLOODleODn+ODjuODqg0KK+OCquOCsOODqSzjg57jgrXjgq0NCivjgqrjgqrjgqTjgrcs44OS44Ot44OkDQor44Kq44Kq44Kr44OvLOODiOOCt+OCouOCrQ0KK+OCquOCquOCq+ODryzjgrjjg6Xjg7PjgrMNCivjgqrjgqvjgrws44OK44Kq44KtDQor44Kq44KtLOODhuODhOODpA0KK+OCquODoOODqSzjgqLjg4TjgrcNCivjgqrjgqrjgrnjg58s44Oe44K144OS44OtDQor44Kq44Kq44K/LOODleODn+ODkuOCsw0KK+OCquOCquOCv+OCsSzjg4bjg4TjgrgNCivjgqrjgqrjgr/jg4ss44Kx44OzDQor44Kq44Kq44Ok44OeLOOCseODs+OCuA0KK+OCquOCvOOCrSzjg5Ljg63jgrcNCivjgqrjgqvjg6Ljg4gs44K444Ol44OzDQor44Kq44Kr44Og44OpLOOCs+OCpuOCt+ODsw0KK+OCquOCq+ODoOODqSzjg57jg6Ljg6sNCivjgqrjgq/jg6Djg6ks44Oe44OK44OfDQor44Kq44Oz44OALOODjuODquODkuOCsw0KK+OCquODjuODh+ODqSzjg47jg6rjg6bjgq0NCivjgqrjg6Tjg5ks44K/44Kr44OO44OqDQor44K144KsLOODiOOCt+OCouOCrQ0KK+OCteOCpOODiOOCpizjg6bjgqbjgrMNCivjgrXjgqvjgqQs44K144OK44KoDQor44Kk44KuLOOCouOCreODjuODqg0KK+OCteOCq+ODouODiCzjg5LjgrXjg40NCivjgrXjgqvjg6Ljg4gs44Oo44K344OS44OtDQor44K144Kr44OE44KuLOOCq+OCuuOCqg0KK+OCteOCq+OCpuOCqCzjgrHjg7PjgrgNCivjgrXjgq/jg54s44Oe44Oq44KzDQor44K144Kv44OpLOOCqOOCpOOCrQ0KK+OCteODiuODgCzjg6jjgrfjg5Ljg60NCivjgrXjgrXjgq0s44K/44Kx44KqDQor44K144K144KtLOODiuOCquODpA0KK+OCteODiOOCpizjgqvjg4Tjg6bjgq0NCivjgrXjg4jjgqYs44K/44Kr44OS44OtDQor44K144OI44KmLOODiOOCt+OCouOCrQ0KK+OCteODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjgrXjg4jjgqYs44OS44OH44OS44K1DQor44K144OI44KmLOOCq+ODhOODkuODrQ0KK+OCteODiOOCpizjgq3jg6fjgqbjgrMNCivjgrXjg4jjgqYs44Ok44K544OS44OIDQor44K144OI44KmLOOCq+OCuuODkuODhw0KK+OCteODiOOCpizjgrXjg4jjg58NCivjgrvjgqTjgrEs44Oe44K144OO44OqDQor44K744KtLOODqOOCpuOCpOODgQ0KK+OCu+OCrSzjg4bjg4Tjg6QNCivjgrvjgq0s44OG44OEDQor44K744Kt44Kw44OBLOOCv+OCseOCtw0KK+OCu+OCvyzjg4jjgrfjgqoNCivjgrfjg7PjgqzjgqQs44Ki44Kt44KzDQor44K344OQ44K/LOODqOOCt+OCsw0KK+OCt+ODkOOCvyzjg6bjgq3jg47jg6oNCivjgrfjg5bjgq0s44K444Ot44KmDQor44K344Ky44OI44OfLOOCq+OCuuODn+ODhA0KK+OCt+OCrCzjg5Ljg63jgrcNCivjgrfjgqTjg5As44Of44KrDQor44K344Oe44OALOOCpOODgeODreOCpg0KK+OCt+ODnuOCq+ODryzjgrfjgrLjg6sNCivjgrfjg5/jgros44K544K544OgDQor44K344Of44K6LOOCv+OCq+ODhOODig0KK+OCt+ODn+OCuizjgqrjgrXjg6ANCivjgrfjg5/jgros44K/44Kr44K3DQor44K344Oi44Og44OpLOOCv+OCq+OCtw0KK+OCt+ODouODoOODqSzjgqLjgq3jg6kNCivjgrfjgqrjgrjjg6os44OS44Ot44K3DQor44K344Kq44K244OvLOOCouODpOOCsw0KK+OCt+ODqeOCpCzjg6bjgqbjgrMNCivjgrfjg6njgqvjg68s44OV44Of44KoDQor44K944Oe44OzLOOCuOODsw0KK+OCveOCpuODpCzjg57jgrXjg4gNCivjgr3jg47jg4As44Oe44Om44OfDQor44K544OALOODiOODouODj+ODqw0KK+OCueOCrOODjizjgrHjg7PjgqTjg4ENCivjgrnjgqzjg4zjg54s44K144OI44K3DQor44K544Ks44OvLOOCu+OCpOOCpOODgQ0KK+OCueOCruOCpuODqSzjgq3jg6fjgqbjgrnjgrENCivjgrnjgq7jg6Tjg54s44OI44Oi44OS44OtDQor44K544K644KtLOOCseODsw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Ki44OE44K3DQor44K544K644KtLOOCt+ODs+OCpOODgeODreOCpg0KK+OCt+ODp+OCpuOCuCzjg4bjg4Tjg6QNCivjgr/jgrDjg4Es44Kr44OE44OkDQor44K/44Kk44OpLOOCv+ODgOODiA0KK+OCv+OCuOODnizjg6rjgqgNCivjgr/jgqvjg4As44K/44Kr44OO44OqDQor44Kq44Kr44Ok44OeLOOCouOCteOCsw0KK+OCv+OCq+OCruOCtyzjg5/jgqvjgrMNCivjgr/jgqvjg4/jgrcs44K344Oz44Kk44OB44Ot44KmDQor44K/44Kr44OP44K3LOODpOOCueOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg6jjgrcNCivjgr/jgqvjg4/jgrcs44OI44Kq44OrDQor44K/44Kr44OP44K3LOOCreODp+OCpuOCsw0KK+OCv+OCq+OCrSzjg6jjgqbjgqTjg4ENCivjgr/jgqvjgqrjgqss44K/44Kv44OkDQor44K/44Kr44Kq44KrLOODkuODreODpuOCrQ0KK+OCpOODnuOCpOOCuuODnyzjg6jjgrfjgqoNCivjgr/jgqvjgrXjg68s44K/44Kr44K3DQor44K/44Kr44K5LOODhOODqOOCtw0KK+OCv+OCseOCpCzjgrvjg4TjgrMNCivjgr/jgrHjg4rjgqss44K/44Kx44K3DQor44K/44Kx44K244KtLOODqOOCt+OCsw0KK+OCv+ODnuOCpOOCtyzjg5Ljg4fjgqLjgq0NCivjgr/jg57jgq0s44K344Ky44OrDQor44K/44OK44KrLOOCouOCreODqQ0KK+OCv+ODi+OCsOODgSzjg4rjgqrjgq0NCivjgr/jgqbjg4Es44OS44Ot44OK44KqDQor44OG44Op44Of44OELOODgOOCpOOCueOCsQ0KK+ODiOODgCzjg57jg6QNCivjg4jjg5/jg4rjgqws44K344Oz44Kk44OB44Ot44KmDQor44OI44Of44K/LOOCouOCreODqA0KK+ODiOODs+OCsOOCpizjg5Ljg4fjg4jjgrcNCivjg4Tjg43jgqvjg68s44OS44Ot44OV44OfDQor44OE44OE44KkLOOCq+ODhOODqOOCtw0KK+OCpuODgeODgCzjgr/jgrHjgrcNCivjgqbjg4Hjg4/jgrcs44K/44Kv44KqDQor44Km44Ko44OALOODnuOCteODkuOCsw0KK+OCpOODiOOCpizjg6jjgqbjgqTjg4ENCivjgqbjgqjjg4As44OS44Ot44K3DQor44Km44Ko44OP44OpLOODkuODh+OCouOCrQ0KK+ODleOCuOOCvyzjgrfjg5sNCivjgqbjg6Hjg4As44OG44OE44OkDQor44Km44Oh44OP44OpLOODpOODqOOCpA0KK+OCpuODqeODmSzjg5LjgrXjgrMNCivjg6/jgr/jg5ks44Ok44K544K3DQor44Ok44Ks44K144KtLOOCueODn+OCqw0KK+ODpOOCruODouODiCzjg5Ljg63jgrcNCivjg6Tjgrjjg54s44Kr44OE44OfDQor44Ok44Oe44OALOODn+ODgeOCsw0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg6Tjg57jg4As44Of44Kr44KzDQor44Ok44Oe44Kw44OBLOOCteODiOOCsw0KK+ODpOODnuOCsOODgSzjg4jjg6LjgrMNCivjg6Tjg57jg6Ljg4gs44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOODpOOCueODkuODrQ0KK+ODpOODnuODouODiCzjg4rjgqrjgq0NCivjg6Tjg57jg6Ljg4gs44Kz44Km44K4DQor44Ok44Oe44ONLOOCq+OCuuODkuODrQ0KK+ODpOODnuOCteOCrSzjg4/jg6vjg47jg6oNCivjg6Tjg57jgrfjgr8s44Kr44K644KtDQor44Ok44Oe44K244KtLOODnuOCteODpuOCrQ0KK+ODpOODnuOCteOCrSzjg4jjgrfjg6QNCivjg6Tjg4rjgqzjg68s44K/44Kx44K3DQor44Ok44OK44Ku44OALOODpOOCueOCqg0KK+OCquODjizjg5Ljg4fjg47jg5YNCivjg6Tjg4rjgq7jgrXjg68s44Ok44K544K3DQor44Ok44K244KtLOODiuOCquOCrQ0KK+ODpOOCtuODryzjgrvjgqTjgrgNCivjg6jjgrPjg6Tjg54s44OS44Ot44KzDQor44Oo44Kz44Ok44OeLOOCv+OCseOCtw0KK+ODqOODoizjgq3jg6fjgqbjgrgNCivjg6jjgrfjg4As44OS44OH44KqDQor44Oo44K344OALOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjg4/jg6vjg5LjgrMNCivjg6jjgrfjg4/jg6ks44Ki44Om44OfDQor44Oo44K344OP44OpLOODnuOCteODkuODhw0KK+ODqOOCt+ODouODqizjgr/jgqvjgrcNCivjgrzjg4Pjg4Qs44OS44OH44OoDQor44Ki44OZLOODqOOCt+OCv+ODgA0KK+OCouODgOODgSzjgrPjgqbjgrgNCivjgqLjgqTjgqvjg68s44OS44Ot44OV44OfDQor44Ki44Kr44KoLOODn+ODgeOCsw0KK+OCouODs+ODieOCpizjg57jgq0NCivjgqLjgrXjg58s44Of44K1DQor44Kk44Oe44OK44KrLOODj+ODq+ODqA0KK+ODmeODg+ODlyzjg6bjgqbjgrnjgrENCivjg5njg4Pjg5cs44OS44Ot44Ki44KtDQor44OB44Kr44OP44OpLOOCquOCteODoA0KK+ODleOCuOOCpCzjg5/jg4Tjg4jjgrcNCivjg5XjgrjjgrXjgq0s44K/44Kr44Om44KtDQor44OV44Kv44K344OeLOOCouOCuuOCtQ0KK+OCr+ODreODgCzjg4jjgrfjg58NCivjg6Ljg6os44Oe44K144OS44OHDQor44Ov44K/44OK44OZLOOCv+OCq+OCqA0KK+OCr+ODreODgCzjgqLjgrXjgrMNCivjg5/jg6Tjgqbjg4Es44K444Ol44Oz44KzDQor44Kk44OI44KmLOOCreOCr+OCsw0KK+OCpOOCpOODgCzjg57jg6bjg58NCivjgqvjg6/jg44s44Oe44KkDQor44Ki44Kk44Km44OpLOODiOOCt+OCqg0KK+ODjuOCtuOCrSzjg4bjg6vjgqLjgq0NCivjg5Pjgr/jg4ss44Ki44Ok44OfDQor44K/44OL44Ki44KkLOODgOOCpOOCueOCsQ0KK+OCouOCquOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgq0s44Kt44K144KvDQor44Ki44Kq44KtLOOCq+OCuuODpuOCrQ0KK+OCouOCquODpOOCrizjgrHjg7Pjgr8NCivjgqLjgqvjg4vjgrcs44OK44Kq44OS44OtDQor44Ki44K144KqLOODnuOCteODkuOCsw0KK+OCouOCteOCr+ODqSzjgqvjgqgNCivjgqLjgrfjgrbjg68s44Kr44K644KtDQor44Ki44K/44KvLOODkuODreOCtw0KK+OCouODgOODgSzjg6bjgqbjgrMNCivjgqTjg4jjgqYs44Om44OqDQor44K344Oe44Oi44OILOOCouODiOODoA0KK+OCteOCpOODiOOCpizjg57jgrXjg6sNCivjgrfjg47jg4/jg6ks44Kr44OE44OfDQor44Kq44Kr44OOLOODkuODh+OCsw0KK+OCquOCq+ODouODiCzjg5Ljg63jgrcNCivjg5Ljg6njgqvjg68s44Oo44K044Ot44KmDQor44K544Ks44OM44OeLOODiOODouODn+ODgQ0KK+OCouODiuOCtuODryzjg5/jg47jg6sNCivjgqLjg6njgqQs44OI44K344Kr44K6DQor44Ki44Op44KkLOOCreODs+ODpA0KK+OCouODqeOCq+ODryzjg6bjg5/jgrMNCivjgqLjg6njgqvjg40s44Ki44Kt44KzDQor44Ki44Op44KtLOOCt+OCsuODjuODqg0KK+OCouODs+ODieOCpizjg5Ljg63jg5LjgrUNCivjgqTjgqbjg4Es44Oe44Kz44OIDQor44Kk44Kx44OALOODpOOCueODkuODrQ0KK+OCpOOCseODpCzjg57jgrXjgq0NCivjgqTjgrfjgqvjg68s44OS44Ot44K3DQor44Kk44K344Kr44OvLOODnuOCteODnw0KK+OCpOOCt+OCq+ODryzjg5Ljg63jgrcNCivjgqTjgrfjgqvjg68s44Kz44Km44Kk44OBDQor44Kk44K344Ks44KtLOODkuODreOCtw0KK+OCpOOCt+OCsOODrSzjgqvjgqrjg6sNCivjgqTjgrfjg4/jg6ks44Oe44K144KtDQor44Kk44K944Og44OpLOOCr+ODn+OCsw0KK+OCpOOCv+OCrOOCrSzjgq3jg6jjg58NCivjgqTjgqTjg4As44K344Ot44KmDQor44Kk44OB44Kr44OvLOOCveODqA0KK+OCpOODgeOCq+ODryzjg6jjgrfjg4jjgrcNCivjgqTjg4cs44Kk44K/44OrDQor44Kk44OI44KmLOODkuODreODleODnw0KK+OCpOODjOOCpCzjg57jgq3jg4gNCivjgqTjg47jgqbjgqgs44OO44OW44OS44OtDQor44Kk44Oe44OL44K3LOODoOODjeOCv+OCqw0KK+OCpOODnuODj+ODpOOCtyzjgrfjg7PjgqTjg4ENCivjgqTjg6/jgrXjgq0s44Oe44K144OE44KwDQor44Kk44Ov44K144KtLOODnuODpuODnw0KK+OCpOODr+ODouODiCzjgrHjgqTjgqTjg4ENCivjgqbjgqjjg44s44Ko44Kk44K4DQor44Km44Ko44OOLOOCq+OCuuODjuODqg0KK+OCpuODgeOCpOOCsSzjg6jjgrfjgqLjgq0NCivjgqbjg4Hjg6Tjg54s44Oo44K344K/44KrDQor44Km44Oh44OALOOCt+ODpeOCpuOCuA0KK+OCpuODoeODoOODqSzjgrXjg6gNCivjgqbjg6Hjg6Ljg4gs44OB44Ob44KzDQor44Km44Or44K344OQ44OpLOODqOOCt+ODkuOCsw0KK+OCqOOCsOODnizjgqjjg6oNCivjgqjjg6ks44OK44Kq44OkDQor44Kq44Km44K144KrLOODnuOCteOCv+OCqw0KK+OCquOCquOCq+ODryzjg57jgrXjg5/jg4QNCivjgqrjgqrjgrXjg68s44Oe44K144OS44KzDQor44Kq44K344OeLOODqOOCt+OCv+OCqw0KK+OCquOCt+ODnizjg57jg4rjg5YNCivjgqrjgqrjgrnjgqws44K/44OE44OS44KzDQor44Kq44Kq44K/44OLLOODkuODh+OCrQ0KK+OCquOCquODhCzjg57jgrXjg5Xjg58NCivjgqrjgqrjg4Tjgqss44K/44OA44OS44K1DQor44Kq44ONLOODnuOCteODpuOCrQ0KK+OCquOCquODjizjgqLjgq3jg6kNCivjgqrjgqrjg4/jgrcs44Kx44Oz44Kk44OBDQor44Kq44Kq44OP44K3LOOCseODs+OCtA0KK+OCquOCquODkOODpOOCtyzjgrfjg7PjgrgNCivjgqrjgqrjg6jjgrcs44K/44Kr44Om44KtDQor44Kq44Kr44Oi44OILOOCv+ODgOODpuOCrQ0KK+OCquOCrOOCteODr+ODqSzjg6jjgrfjgrMNCivjgqrjgqzjg68s44OS44OH44OO44OqDQor44Kq44Kv44K/44OLLOOCtOOCpg0KK+OCquOCr+ODoOODqSzjg6bjgqbjgrMNCivjgqrjgrDjg6ks44OS44Ot44KzDQor44Kk44Kk44Kr44OvLOOCseODs+OCpOODgeODrQ0KK+OCquOCsOODqSzjgrXjg4jjgrcNCivjgqrjgrbjg68s44K/44Kr44OO44OqDQor44Kq44K244OvLOODkuODh+ODkuOCsw0KK+OCquOCquODjizjg6Tjgrnjg47jg6oNCivjgqvjgq3jg6Ljg4gs44Os44Kk44KzDQor44Kr44Kt44Oi44OILOODkuODreOCtw0KK+OCq+OCsuODpOODnizjg4jjg6Ljg58NCivjgqTjgrfjgqvjg68s44OS44Ot44K3DQor44Kr44K944OqLOODpOOCueODkuODiA0KK+OCq+ODhOODnyzjg4rjgqrjgq0NCivjgqvjg4jjgqYs44OK44Kq44KzDQor44Kr44OI44KmLOODjuODquOCsw0KK+OCq+ODiOOCpizjgrfjgrLjg47jg6oNCivjgqvjg4jjgqYs44OA44Kk44K544KxDQor44Kr44OI44KmLOOCseOCpOOCuA0KK+OCseOCuuOCqyzjgqLjgq3jg6kNCivjgqvjg4njg6/jgq0s44Of44OE44K344Ot44KmDQor44Kr44ON44KzLOOCouOCreODkuODrQ0KK+OCq+ODjuOCpizjg47jg6rjgrMNCivjgqvjg5/jg6Tjg54s44OS44Ot44Kr44K6DQor44Kr44Ov44K344OeLOODkuODreODpuOCrQ0KK+OCq+ODr+OCuyzjgrXjg4jjg6sNCivjgqvjg6/jg44s44Kr44K644KtDQor44Kr44Ov44Oi44OILOODnuOCteOCv+OCqw0KK+OCq+ODr+ODouODiCzjgrfjg7MNCivjgqvjg6/jgrss44OK44Kq44KtDQor44Kr44Oz44OALOODkuODh+ODiOOCtw0KK+OCreOCr+ODgSzjg5LjgrXjg6bjgq0NCivjgq3jgq/jg4Es44Ki44Kt44KzDQor44Kt44Kv44OBLOODjuODluOCqg0KK+OCreOCv+OCouODqeOCtyzjg57jgqTjgrMNCivjgq3jgr/jgqrjgqss44Of44Om44KtDQor44Kt44K/44K444OeLOOCouOCreODkuODrQ0KK+OCreOCv+ODoOODqSzjgr/jgrHjg58NCivjgq3jgr/jg6Djg6ks44Ki44OE44K3DQor44Kt44OG44OpLOOCteODiOOCtw0KK+OCreODjuOCt+OCvyzjgrjjg6Xjg7PjgrMNCivjgq3jg6Djg6ks44K/44Kr44OS44OtDQor44Kt44Oq44KmLOOCv+OCseOCtw0KK+OCr+OCteOCq+ODmSzjg57jgqjjgrMNCivjgq/jg5zjgr8s44Kz44K544KxDQor44Kv44Oe44Ks44KkLOOCseODs+OCuOODreOCpg0KK+OCr+ODnuODjizjgrXjg6oNCivjgq/jg6rjg4/jg6ks44Oe44K144OIDQor44Kv44Or44K344OeLOOCouOCreODqOOCtw0KK+ODiuOCq+OCrOODryzjg4HjgqsNCivjgrPjgqTjg4cs44OS44OH44KtDQor44Kz44Oz44OOLOODnuOCteOCtw0KK+OCs+ODouODiCzjg6bjgqbjgrMNCivjgrPjgqws44Kv44OL44OP44OrDQor44Kz44K444OeLOOCv+OCpOOCuA0KK+OCs+ODi+OCtyzjgqvjg6jjgrMNCivjgrPjg5Djg6Tjgrcs44K744Kk44KmDQor44Kz44Oe44OELOOCseOCpOOCpOODgQ0KK+OCs+ODn+ODpCzjgrfjg7Pjg6QNCivjgrPjg7Pjg4ks44K144OI44K3DQor44Kz44Oz44OJLOODhOODiOODoA0KK+OCtOODiOOCpizjg4DjgqTjgrnjgrENCivjgrXjgqTjg4jjgqYs44K/44OE44OkDQor44K144Kk44OI44KmLOOCs+OCpuOCuA0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgrXjgqvjg6Ljg4gs44K/44Kx44KqDQor44K144Kv44OeLOODiOOCt+OCq+OCug0KK+OCt+ODn+OCuizjg4rjgqrjgq0NCivjgrXjg4Djg4Hjgqss44Kx44Kk44K444OlDQor44K144OILOOCteODqOOCsw0KK+OCteODiOOCpizjgrjjg6Xjg7MNCivjgrXjg4jjgqYs44OS44OI44OfDQor44K144OI44KmLOODn+OCqw0KK+OCteODiOOCpizjgqvjg4Tjg6bjgq0NCivjgrXjg6/jg4As44K444Ol44Oz44K4DQor44Kk44K944OvLOODnuOCteODkuOCsw0KK+OCt+ODoizjgr/jgqvjgqLjgq0NCivjgrfjg6XjgqYs44Oe44K144OkDQor44K344Kq44Kr44OvLOOCouODpOODjg0KK+OCt+OCquOCtuODryzjg57jgrXjg5LjgrMNCivjgrfjgqvjgqbjg4Es44Of44OE44OrDQor44K344K644OqLOOCv+OCseOCtw0KK+OCt+ODjizjg4bjg4TjgrgNCivjgrfjg47jgrbjgq0s44K444Ol44Oz44K444Ot44KmDQor44K344OO44OALOODnuOCueODnw0KK+OCt+ODjuODgCzjg6bjgq3jgrMNCivjgrfjg5Djgrbjgq0s44Ki44Kt44OS44OIDQor44K344OQ44K/LOOCteOCquODqg0KK+OCt+ODnuODoOODqSzjg47jg5zjg6sNCivjgrfjg5/jgros44Of44Oe44KzDQor44K344Of44K6LOODpuOCpuOCuA0KK+OCt+ODn+OCuizjgrXjg4jjgrcNCivjgrfjg5/jgros44K344Oz44Kk44OB44Ot44KmDQor44K/44Kt44K/44OLLOODpuOCpuOCpOODgQ0KK+OCt+ODqeODjizjgr/jgqvjg6bjgq0NCivjgrnjgqjjg5Ljg60s44Kx44OzDQor44K544Ks44KkLOODn+OCreOCqg0KK+OCueOCrOODqOOCtyzjgrHjg7PjgrgNCivjgrnjgqzjg6/jg6ks44K344Ky44OV44OfDQor44K544Ku44Km44OpLOODjuODquOCouOCrQ0KK+OCueOCruOCt+ODnizjgrfjg6Xjg7PjgrnjgrENCivjgrnjgq7jg6Ljg4gs44OS44K144K3DQor44K544K644Kr44OvLOODqOOCt+OCqA0KK+OCueODgCzjgqLjgq3jg6jjgrcNCivjgrnjg5/jgqvjg68s44Kr44OE44Ki44KtDQor44K544Of44OOLOOCs+OCpuOCuA0KK+OCu+OCreOCsOODgSzjgrfjgrLjg58NCivjgr3jgqjjgrjjg54s44Ok44K544OK44OqDQor44K/44Kq44KrLOOCv+ODgOOCtw0KK+OCv+OCq+OCrSzjgq3jg6fjgqbjgrMNCivjgr/jgqvjgrfjg54s44K344Oz44Kk44OBDQor44K/44Kr44K7LOOCreODqOOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg6QNCivjgr/jgqvjg4/jgrcs44K/44OE44OkDQor44K/44Kr44OP44K3LOOCqOOCpOOCpOODgQ0KK+OCv+OCreOCv+ODiyzjg4rjg4oNCivjgr/jgrHjgqbjg4Es44OS44Ot44OW44OfDQor44K/44Kx44OALOOCv+ODgOODpuOCrQ0KK+OCv+OCseODgCzjgrHjgqTjgqTjg4ENCivjgr/jgrHjg4As44Kk44Kv44OS44KzDQor44K/44Kx44Og44OpLOODiuOCquODkuOCtQ0KK+OCv+OCtCzjg57jgrXjgrMNCivjgr/jgq3jgrbjg68s44OB44Kr44KzDQor44K/44OK44KrLOODqOOCpuOCsw0KK+OCv+ODiuOCqyzjg6rjg6fjgqbjgrnjgrENCivjgr/jg4rjgqss44Kx44Oz44K4DQor44Kk44Ov44OOLOOCq+OCuuOCt+OCsg0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjgr/jg4vjgqgs44K144OA44Oo44K3DQor44K/44OL44Kw44OBLOOCq+OCuuOCqA0KK+OCv+ODi+OCsOODgSzjgrgNCivjgr/jg4vjg57jg4Qs44OS44Ot44K3DQor44K/44OQ44K/LOODn+ODr+OCsw0KK+OCv+ODnuOCrSzjgr/jg4Tjg6QNCivjgqTjgrvjg6Ljg4gsDQor44K/44Of44OkLOOCouOCrQ0KK+ODgeODo+ODouODiCzjg5XjgrXjgrcNCivjg4Hjg44s44Oo44Km44Kk44OB44Ot44KmDQor44OE44Kr44Oi44OILOODqOOCpuOCsw0KK+ODhOODgeODj+OCtyzjg6Djg43jg5Ljg60NCivjg4bjg6njgrXjg68s44K/44OE44OkDQor44OILOODn+ODgeOCsw0KK+ODleOCr+OCt+ODnizjg4rjgqrjgrcNCivjg4jjg5As44Kt44On44Km44KzDQor44OI44Of44Oo44K3LOODkuODiOOCrQ0KK+ODiOODoOODrSzjg4rjg4Tjg5LjgrMNCivjg4jjg6jjgrfjg54s44K444Ol44Oz44Kk44OBDQor44OI44Oq44Ok44OeLOODiuOCquODpuOCrQ0KK+ODiuOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqTjg4cs44Of44OB44Kr44K6DQor44OP44K/LOODleOCteOCqg0KK+ODiuOCq+OCrOOCrSzjg5/jgq0NCivjg4rjgqvjgqzjg68s44K/44Kr44KzDQor44OK44Kr44K244OvLOODqOOCt+OCsw0KK+ODiuOCq+ODhyzjgrfjg6fjgqbjgrMNCivjg4rjgqvjg4/jg6ks44Ki44OE44K3DQor44K/44Kx44Km44OBLOOCq+ODhOODkuOCtQ0KK+ODiuOCq+ODoOODqSzjgrXjg4jjgrcNCivjg4rjgqvjg6Djg6ks44K/44Kx44K3DQor44OK44K5LOODkuODreOCtw0KK+ODi+OCpOODoOODqSzjg4jjgrfjg5Ljg60NCivjg4vjgrfjgqrjgqss44OS44OH44Ki44KtDQor44OL44K344Kr44OvLOOCouOCreODqQ0KK+ODi+OCt+OCtuODryzjgrfjgrLjg6sNCivjg4vjgrfjg4gs44Ok44K544KzDQor44OL44K344OOLOOCs+OCpuOCuA0KK+ODi+OCt+ODj+ODqSzjg4rjgqrjgq0NCivjg4vjgrfjg6Djg6ks44Kv44OL44Oi44OqDQor44ON44Oi44OILOOCteODgeODqA0KK+ODjuOCsOODgSzjgqjjg58NCivjg47jgrDjg4Es44Oe44K144OkDQor44OO44K444OqLOODqOOCt+ODiuOCqg0KK+ODjuOCuOODqizjgr/jgqvjg5Ljg60NCivjg47jg6Djg6ks44Kr44K644OS44KzDQor44OP44OD44K/LOOCouOCreOCsw0KK+ODj+OCt+ODkCzjg4HjgqvjgrMNCivjg4/jgrfjg6Ljg4gs44Om44KrDQor44OP44K344Oi44OILOOCpOODgeODreOCpg0KK+OCpOODjuOCpuOCqCzjgq3jg6jjgrcNCivjg4/jgrfjg6Ljg4gs44K/44Kr44KzDQor44OP44K744Ks44OvLOOCseODs+OCpOODgQ0KK+ODj+OCvyzjgqvjgrrjgq0NCivjg4/jgr8s44Oo44K344Kr44OEDQor44OP44K/44OOLOODnuOCpOOCsw0KK+ODj+ODpOOCtyzjg5Ljg63jg6bjgq0NCivjg4/jg6Tjgrcs44Kv44Of44KzDQor44OP44Op44OALOODiOODouOCsw0KK+ODj+ODqeODgCzjgrHjg7PjgqTjg4ENCivjg5Djg5As44OS44Ot44OV44OfDQor44OQ44OQLOOCouOCueOCqw0KK+ODkuOCsOODgSzjg47jg5bjg5LjgrMNCivjg5LjgrDjg4Es44Kt44On44Km44KzDQor44OS44K144KtLOOCtOOCpuOCuA0KK+ODkuOCuOODqizjgqjjg6oNCivjg5Ljg6njg6Tjg54s44K/44Kr44Om44KtDQor44OV44Kv44OALOODnuODpuODnw0KK+ODleOCuOOCpCzjg5Ljg63jg5Xjg58NCivjgrnjgqzjgqQs44K144OI44OfDQor44OV44K444K/LOOCq+OCuuODpA0KK+ODleOCuOOCvyzjg6bjgq3jgrMNCivjg5Xjgrjjgr8s44OO44OW44KzDQor44OV44K444K/44OLLOOCteODiOOCtw0KK+ODleOCuOODiuODnyzjgrfjgrLjg6bjgq0NCivjg5Xjgrjjg44s44K/44OE44Om44KtDQor44OO44OO44Og44OpLOOCq+ODhOOCuA0KK+ODleOCuyzjgr/jg4bjg6sNCivjgrnjgq7jg6Ljg4gs44Oo44Km44Kk44OB44Ot44KmDQor44Ob44K944Kr44OvLOOCv+ODhOOCqg0KK+ODm+ODquOCpuODgSzjg4rjgqrjg58NCivjg5vjg6rjgqvjg68s44OS44Ot44Ki44KtDQor44Oe44Kt44OOLOOCpOOCr+OCsw0KK+ODnuOCreODjizjg47jg6rjg5LjgrMNCivjg57jgrfjgrMs44OI44K344OS44KzDQor44Oe44K544OALOOCq+OCuuODpA0KK+ODnuOCueODluODgSzjgr/jgqvjgrcNCivjg57jgrnjg5bjg4Es44Ki44Kt44OS44OtDQor44Oe44OE44KkLOODnuOCreOCsw0KK+ODnuODhOOCtuODryzjg57jgrXjg4gNCivjg4jjg5/jg4rjgqws44K/44Kr44K3DQor44Oe44OE44OK44KsLOODqOOCt+OCsw0KK+ODnuODhOODiuOCrCzjg6bjgq0NCivjgrnjgrrjgq0s44Ok44K544K4DQor44Oe44OE44Og44OpLOOCseOCpOOCpOODgQ0KK+ODnuODhOODouODiCzjg5Ljg4fjg5Xjg58NCivjg57jg4Tjg6Ljg4gs44OI44Oi44OS44K1DQor44Oe44OE44Ok44OeLOODjuODquOCsw0KK+ODnuODhOODpOODnizjgrPjgqbjgrgNCivjg57jg4Tjg6Tjg54s44OG44OE44OkDQor44Oe44OE44Oo44K3LOOCouOCreOCsw0KK+ODnuODjizjgrvjgqTjgrgNCivjg57jg6vjgqrjgqss44OI44K344Ok44K5DQor44Of44Kr44OfLOODqOOCpuOCsw0KK+ODn+OCrSzjg5Ljg63jgq0NCivjg5/jgr7jgrDjg4Es44Oe44K144OfDQor44Of44K/LOODn+ODjuODqw0KK+ODn+ODjSzjg4HjgqLjgq0NCivjg5/jg43jgqos44K144OI44OrDQor44K144OI44KmLOOCq+ODhOODjuODqg0KK+OCpOOCr+OCvyzjgqLjg6QNCivjg5/jg6Tjgrbjgq0s44OS44OH44KtDQor44K/44Kr44Ku44OvLOOCt+OCsuODqw0KK+ODn+ODqOOCtyzjg6jjgqbjgrMNCivjg6DjgqvjgqQs44Of44OE44K/44KrDQor44Og44Op44Kr44OfLOODnuOCteOCouOCrQ0KK+OCpOOCt+ODgCzjg4TjgqvjgrUNCivjg6Djg6njgqvjg58s44K144OI44K3DQor44Og44Op44Kr44OfLOOCq+OCuuOCv+OCqw0KK+ODoOODqeODpOODnizjgrPjgqbjgrgNCivjg6Djg6njg6Tjg54s44Oe44Kz44OIDQor44Og44Ot44KkLOODnuOCteOCv+OCqw0KK+ODouOCv+OCpCzjgqvjgrrjg57jgrUNCivjg6Ljg4jjgq0s44Kr44K644OkDQor44Oi44OI44Og44OpLOOCs+OCpuOCuA0KK+ODouODqizjgqvjg4Tjg5Ljg60NCivjgqvjgrss44Ki44Kt44Oo44K3DQor44Oi44Oq44K344K/LOOCq+OCuuODkuODrQ0KK+ODouODquOCvyzjg4rjgqrjgq0NCivjg6Ljg63jg4jjg58s44OS44OH44OO44OWDQor44Oi44Ot44OP44K3LOODpuOCreOCsw0KK+OCq+ODr+ODouODiCzjg5Ljg63jg47jg6oNCivjg6TjgrDjg4Es44OG44Or44OS44KzDQor44Ok44K444OeLOODiuOCquOCsw0KK+ODpOOCueOCq+ODryzjg5Ljg63jgrcNCivjg6Tjgrnjg4As44Oe44K144OS44OIDQor44Ok44OE44K644KrLOODnuODquOCsw0KK+ODpOODiuOCruOCteODryzjg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kt44Oz44OkDQor44Ok44Oe44K144KtLOOCv+OCq+ODpA0KK+ODpOODnuOCtuOCrSzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrbjgq0s44Oo44K344KzDQor44Ok44Oe44K244KtLOOCu+OCpOOCuOODreOCpg0KK+ODpOODnuODgCzjgrHjg7Pjgr/jg63jgqYNCivjg6Tjg57jg4As44OK44Kq44KtDQor44Ok44Oe44OALOOCv+OCq+ODjuODqg0KK+ODpOODnuODiuOCqyzjgrfjg6XjgqbjgqTjg4ENCivjgq/jg6rjg4/jg6ks44Oe44K144KtDQor44Ok44Oe44Oi44OILOODnuOCteOCsw0KK+ODpOODnuODouODiCzjgrfjg7Pjgr/jg63jgqYNCivjg6Tjg57jg6Ljg4gs44Ok44K544K3DQor44Oe44OE44KqLOODnuOCueODnw0KK+ODqOOCrizjg4Hjg4jjgrsNCivjg6jjgrPjg6Tjg54s44OS44OH44KtDQor44Oo44Kz44Ok44OeLOODqOOCpuOCsw0KK+ODqOOCt+OCq+ODryzjg4rjgqrjg5Ljg4cNCivjg6jjgrfjgqvjg68s44Oo44K344KzDQor44Oo44K344OALOOCs+OCpuOCuA0KK+ODr+OCr+OCpCzjg4bjg4Tjg6QNCivjg6/jgr/jg4rjg5ks44Kx44Oz44K/44Ot44KmDQor44Ov44K/44OK44OZLOOCt+ODmw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg4gNCivjg6/jgr/jg4rjg5ks44Oe44OK44OWDQor44OP44Ok44K3LOOCv+OCq+OCtw0KK+ODpOODnuODgCzjg47jg5bjg6QNCivjg6/jgqvjg5Djg6Tjgrcs44K144OI44K3DQor44Kk44Ov44Og44OpLOODjuODquODnuOCtQ0KK+ODr+OCv+ODiuODmSzjg47jg5zjg6sNCivjgq/jg6/jgrfjg54s44K544Kw44OrDQor44Kq44OQ44K/LOOCteODiOODnw0KK+OCouODiuOCtuODryzjg5Ljgqvjg6sNCivjg6Tjgq4s44Kz44K544KxDQor44Ki44Kr44KqLOODiOODouOCq+OCug0KK+OCt+ODn+OCuizjg4rjg4TjgrMNCivjgrXjgqvjg6Ljg4gs44OS44OH44OO44OWDQor44Ki44Kq44KtLOOCt+OCsuOCouOCrQ0KK+OCouOCuuODnizjgrPjgqbjgqTjg4ENCivjgqTjgqTjg4As44Ko44OKDQor44Kk44Kx44Km44OBLOODoeODkOOCqA0KK+OCpOOCt+OCq+ODryzjg4bjg4TjgqoNCivjgqTjgr3jgqzjgqQs44Oe44Kz44OIDQor44Kk44OI44KmLOOCv+ODgOODkuODrQ0KK+OCpOODkCzjgqLjgrrjgrUNCivjgqTjg6/jg6Ljg4gs44K344Oz44K4DQor44Km44Ko44K144KrLOOCv+OCseODkuODrQ0KK+OCpuOCqOODjizjg57jg6Ljg6sNCivjgqbjgqjjg5Ljg6ks44Kx44Oz44K0DQor44Km44OB44Ok44OeLOOCseODs+OCuA0KK+OCpuODoeODiuOCpCzjgrnjgrnjg6ANCivjgqjjg6Djg6ks44K/44Kr44OS44OtDQor44Kq44Kt44K/LOOCuOODpeODs+OCpOODgQ0KK+OCquOCquOCr+ODnCzjg5Ljg63jgrcNCivjgqrjgqrjgr/jg4ss44Ki44OkDQor44Kq44Kq44OELOODkuODreOCsw0KK+OCquOCquODhOOCqyzjg6jjgrfjg58NCivjgqrjgqvjgrfjg60s44K344Ot44KmDQor44Kq44OALOOCouODhOOCtw0KK+OCquODjizjg5Ljg63jg58NCivjgqvjg4jjgqYs44Oo44K344Om44KtDQor44Kr44ON44OS44K1LOODiuOCquOCsw0KK+OCq+ODn+ODpCzjgqrjgrXjg6ANCivjgqvjg6/jgqQs44K/44Kv44Oo44K3DQor44Kr44Ov44Kq44KrLOODkuODh+OCrQ0KK+OCreOCv+ODjizjgrjjg6Xjg7PjgqTjg4ENCivjgq3jg5bjgrcs44OE44OYDQor44Kt44Og44OpLOODnuOCteOCv+OCqw0KK+OCreODoOODqSzjg57jgrXjgrMNCivjgq/jgrXjgqss44K144OI44OfDQor44Kv44OQLOOCv+OCq+OCtw0KK+OCr+ODnOOCvyzjgrfjg63jgqYNCivjgq/jg63jgqTjg68s44K344Oz44K4DQor44Kv44Ov44OQ44OpLOOCqOOCpOOCuA0KK+OCs+OCpOOCsSzjgrnjg5/jgqoNCivjgrPjgqTjgr/jg5Djgrcs44OE44Kr44K1DQor44Kz44Km44OALOODkuODh+OCqg0KK+OCs+OCpuODgCzjg57jgrXjgr/jgrENCivjgrPjgrfjg6Djg6ks44Ki44OE44K3DQor44Kz44Ok44OK44KuLOODkuOCteOCsw0KK+ODj+ODiOODqizjg6bjgqbjgrMNCivjgrXjgqvjgqbjgqgs44K144OvDQor44Ki44OZLOOCs+OCpuOCpOODgQ0KK+OCteODiOOCpizjg6Tjgrnjg5/jg4QNCivjgrXjg4jjgqYs44Oe44Om44OfDQor44K144OI44KmLOODqOOCt+OCqg0KK+OCt+ODnuODgCzjg6rjgqgNCivjgqTjg57jgqQs44Kr44OE44Ki44KtDQor44K544Ks44OM44OeLOODgeODqA0KK+OCu+OCrSzjgqLjgq3jg5Ljg60NCivjgrvjg44s44K/44Kr44Ok44K5DQor44Ki44OZLOODnuOCteODj+ODqw0KK+OCv+OCq+OCueOCrCzjg57jg6bjg58NCivjgr/jgqvjgrnjgq4s44OO44OW44KzDQor44K/44Kr44OP44K3LOODiOODouODnw0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjgr/jg63jgqYNCivjgr/jgqvjg4/jgrcs44Ki44Kt44OS44OIDQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5LjgrXjg58NCivjgr/jgq3jg6Ljg4gs44Om44Km44K/DQor44K/44Kv44OcLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpuODgSzjg4jjg6LjgrMNCivjgr/jgrHjg4rjgqss44Om44Kt44OS44KzDQor44K/44OK44KrLOODouODiOOCpOODgQ0KK+OCv+ODiuOCqyzjg4Hjgrrjg6sNCivjgr/jg5Djgr8s44Kr44OE44Om44KtDQor44K/44Of44OkLOOCv+OCseOCtw0KK+OCv+ODoOODqSzjg6zjgqTjgrMNCivjg4Hjg6Xjgqbjg54s44OS44Ot44K/44KrDQor44Ob44Oz44K044KmLOODpuOCpuOCsw0KK+ODiuOCq+OCqizjg47jg5bjgqLjgq0NCivjg4rjgqvjgqzjg68s44Kz44Km44Kk44OBDQor44OK44Kr44K+44OOLOODkuODh+ODjuODqg0KK+ODiuOCq+ODjizjg5/jg4Tjg5Ljg60NCivjg4vjg4Pjgr8s44OP44OKDQor44OL44OvLOODquODp+OCpuOCpOODgQ0KK+ODjuOCuCzjg5Ljg63jgqLjgq0NCivjg4/jgrbjg44s44K/44Kr44K3DQor44OP44K344Oi44OILOODiOOCquODqw0KK+ODj+OCt+ODouODiCzjg6bjgqbjgrMNCivjg4/jg6Tjgrcs44OB44Kq44OqDQor44OP44Ok44K3LOODiOOCpuOCsw0KK+ODj+ODqeOCsOODgSzjgr/jgqvjgrcNCivjg4/jg6vjgrDjg4Es44OI44K344KqDQor44OS44Op44OHLOOCpOOCteODoA0KK+ODkuODqeODjizjg57jgrXjgr/jgqsNCivjg5Ljg6njg6Tjg54s44Om44KtDQor44OV44Kr44K244OvLOODkuODreODnw0KK+ODleOCr+ODnuOCuSzjgqvjg6gNCivjg5Xjgq/jg6Ljg6os44Oe44K144OrDQor44OV44K444Kr44OvLOOCt+OCsuODqw0KK+ODm+OCt+ODjizjg47jg6rjgrMNCivjg5vjgr3jg44s44Ki44Kt44OS44OIDQor44Oe44OE44Kq44KrLOODqOOCt+ODiuODqg0KK+ODnuODhOODoOODqSzjg4rjg5/jgrMNCivjg5/jgrrjgqvjg58s44OG44OE44Ot44KmDQor44Of44OE44KkLOOCv+OCpOOCueOCsQ0KK+ODn+ODjuOCq+ODnyzjg4jjgrfjg6bjgq0NCivjg5/jg6Tjg6Ljg4gs44K/44OE44K3DQor44Og44Op44Kr44OfLOOCseOCpOOCsw0KK+ODpOOCvyzjg4rjgqrjgrMNCivjg6Tjg4rjgq7jgr8s44Of44OO44OrDQor44Ok44Oe44Kw44OBLOOCs+OCpuOCuA0KK+ODpOODnuOCt+OCvyzjg5/jg4HjgqoNCivjg6Tjg57jg6Ljg4gs44Om44Km44Kk44OB44OtDQor44Oo44K344K/44KxLOODkuODh+ODjuODqg0KK+ODqOOCt+ODoOODqSzjgqjjg6oNCivjg5LjgrDjg4Es44K/44Kx44K3DQor44OP44K344Oi44OILOOCouODhOOCtw0KK+ODr+OCv+ODiuODmSzjg6bjgq0NCivjgqLjgq3jg5As44K/44Kx44OS44KzDQor44Ki44Kt44Oi44OILOODn+ODhOODqA0KK+OCouODnuODpCzjg57jgrXjg6sNCivjgqLjg7Pjg4njgqYs44OG44OE44Ot44KmDQor44Ki44Oz44K244OvLOODjuODluODkuODrQ0KK+OCouOCteODj+OCvyzjgqvjgrrjg5Ljg4gNCivjg5Djg5As44Of44OB44OS44OIDQor44OZ44OD44K344OnLOODhuODq+ODkuODiA0KK+ODgeOCq+ODouODiCzjgrXjgqrjg6oNCivjg4Hjg6fjgqYs44OA44Kk44K544KxDQor44OV44K444OS44OpLOODn+ODr+OCsw0KK+ODleOCuOOCpCzjgrHjgqTjgrMNCivjg5Xjgrjjgr/jg4ss44Oo44K344Kr44OEDQor44OV44Kr44OALOODnuOCteOCouOCrQ0KK+ODleODq+ODgOODhizjg4rjgqrjgq0NCivjg5Xjg6vjg6Tjg54s44OS44Ot44Om44KtDQor44K044Km44OALOOCreODqOODjuODlg0KK+OCs+OCpOOCsSzjg6jjgrfjg6bjgq0NCivjg4/jgqvjg57jg4As44Kz44Km44K+44KmDQor44OP44K744Ks44OvLOOCv+OCq+OCqg0KK+ODj+OCt+ODouODiCzjgrPjgqbjgqTjg4ENCivjg4/jg4Pjgr8s44Kx44Oz44Kk44OBDQor44OP44OD44OI44OqLOOCv+OCq+ODkuODrQ0KK+ODj+ODpOOCq+ODryzjg5Ljg63jgq0NCivjg4/jg6Tjgqvjg68s44OK44Or44OE44KwDQor44OS44OM44OeLOOCv+OCr+ODpA0KK+ODkuODreOCrSzjg4jjg6Ljg5Ljg4cNCivjg5vjg6rjg47jgqbjg4Es44Om44Km44K4DQor44Ob44K944OOLOOCouODhOOCsw0KK+ODleOCuOOCquOCqyzjg5Ljg4fjgq0NCivjg5Xjg6vjgr8s44OK44Or44KtDQor44OV44K144OOLOOCseODsw0KK+ODleOCt+ODnyzjgqrjgrXjg6ANCivjgqTjgr/jg4ks44OS44OI44K3DQor44Kk44OALOODnuOCteODkuODrQ0KK+OCpOODj+ODqSzjgrHjgqQNCivjgqTjgqTjg4As44K/44Kr44OS44OtDQor44Kk44OK44Ok44OeLOODkuODreOCq+OCug0KK+OCpOODjizjgrjjg6Xjg7PjgqTjg4ENCivjgqTjg47jgqbjgqgs44Oh44Kw44OfDQor44Kk44K344OALOODqOOCt+ODhOOCsA0KK+OCpOOCt+ODouODiCzjg6Tjgrnjg6jjgrcNCivjgqTjgrfjg68s44Of44OE44OrDQor44Kk44K344Ov44K/44OqLOODkuODreOCq+ODhA0KK+OCpOOCv+OCr+ODqSzjg4rjg5vjgrMNCivjgqTjg4jjgqYs44K/44Kr44OS44OtDQor44Kk44OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+OCpOODr+OCpCzjg4rjg4rjgrMNCivjgqTjgrbjg68sDQor44K444OWLOOCueOCsOODqw0KK+OCq+ODkOODpOODnizjg57jgrXjgq0NCivjgqvjgqQs44Om44Km44KzDQor44Kr44Kt44OM44OeLOOCuOODpeODsw0KK+OCq+OCreOCtuOCrSzjg57jgrXjgq0NCivjgqvjgq/jg4As44K344Ol44Km44K544KxDQor44Kr44OK44Ks44OvLOOCt+ODsw0KK+OCq+ODs+ODmSzjgr/jgrHjgqoNCivjgqvjg7Pjg4As44Ok44K544OS44OIDQor44Kr44K144OALOODn+ODgeOCv+OCqw0KK+OCq+ODr+OCpCzjg4jjg6LjgrMNCivjgrXjgrXjgq0s44Kk44Kv44KoDQor44Kr44Ov44K7LOOCteODmw0KK+OCreODouODiCzjg5/jgq3jg40NCivjgq3jgr/jg4/jg6ks44OO44OW44KqDQor44Kt44K/44Og44OpLOODqOOCt+OCqg0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgqgNCivjgrPjg5bjgrEs44Om44Km44KzDQor44Kz44Kk44K644OfLOOCq+ODiuOCsw0KK+OCs+ODn+ODpOODnizjg57jg6rjgrMNCivjgrPjg7Pjg47jgqvjgrrjg5Ljg60s44Ok44K544OS44OIDQor44Kz44K344Kr44OvLOOCv+OCq+ODpuOCrQ0KK+OCs+ODs+ODjizjgrPjgqbjgqTjg4ENCivjgq/jg5ws44Oe44K144OO44OWDQor44Kv44Oc44Kr44OvLOODiuODhOOCrQ0KK+OCr+ODieOCpizjg4jjg6LjgqsNCivjgq/jg6rjg4/jg6ks44Kr44OE44Kk44OBDQor44Kv44Ot44KuLOOCteOCqOOCsw0KK+ODnuODgeODgCzjg4/jg6vjg58NCivjg57jgrjjg54s44Ok44K544KzDQor44Kk44K344K6LOODjuODquODpuOCrQ0KK+ODnuOCq+ODmSzjg5Ljg63jg6gNCivjg57jg6vjg6Tjg54s44OS44OH44Ki44KtDQor44Oe44K544OALOOCq+ODqA0KK+ODnuODhOOCrOOCteOCrSzjgqLjgq3jg6kNCivjg57jg4TjgqQs44K/44Kx44K3DQor44Oe44OE44KkLOOCteOCquODqg0KK+ODnuODhOODouODiCzjgrHjg7PjgrgNCivjg57jg6/jgr/jg6os44Kr44Oz44K4DQor44Of44OB44Oi44OILOODiOOCt+ODkuODrQ0KK+ODn+OCrSzjgrnjg5/jgrMNCivjg5/jg4Tjg54s44K/44Kr44OO44OqDQor44Of44Km44OpLOOCseOCpOOCtA0KK+ODn+ODryzjg57jgrPjg4gNCivjg5/jg6Tjg6Ljg4gs44Kr44OE44OS44K1DQor44Of44Ok44Oi44OILOODpOOCueODjuODlg0KK+ODn+ODpOODouODiCzjgr/jgrHjg47jg5YNCivjg5/jg6Tjgr8s44Oe44K144K3DQor44Og44Op44Kr44OfLOODiOOCquODqw0KK+OCv+ODj+ODqSzjg47jg6rjgrMNCivjg5/jgrrjgr/jg4ss44OI44Oi44KrDQor44Oi44OqLOODpuOCrQ0KK+ODouODquOCsOODgSzjg57jgrXjg5LjgrMNCivjg6Ljg6rjgqvjg68s44OS44Ot44K3DQor44Oi44Oq44Oi44OILOOCq+OCuuODnw0KK+ODouODquOCvyzjg6zjgqTjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44KzDQor44Ki44OH44Ks44OvLOOCouOCpA0KK+ODiuOCrOOCteOCqyzjg5Ljgqvjg6sNCivjg4rjgqzjgr8s44K444Ol44OqDQor44OK44Ks44K/LOOCq+ODhOODjuODlg0KK+OCpOOCtuODryzjgqvjgqrjg6oNCivjg4rjgqvjg5/jg40s44Oe44Oi44OrDQor44OK44Kr44Og44OpLOODkuODreODjuODqg0KK+ODiuOCq+ODoOODqSzjgr/jg4Tjg6QNCivjgqTjg6Ljg4gs44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+OCqizjg6bjgqbjgrgNCivjg4rjgqvjg6Tjg54s44Km44K344OzDQor44OK44Kr44K244OvLOOCreODqOOCtw0KK+ODiuODn+OCrSzjg4/jg6vjg6jjgrcNCivjg4vjgqTjg58s44Ki44Kt44OS44OtDQor44OL44Kk44K844KtLOOCq+OCquODqg0KK+ODi+OCt+ODhyzjg5Ljg4fjgqLjgq0NCivjg4vjg68s44OS44OH44KtDQor44OO44OZLOODn+OCtQ0KK+OCquOCquOCvyzjgrfjgrLjgqLjgq0NCivjgqrjgqzjg68s44Oe44K144Oo44K3DQor44Kq44Kw44K5LOODpuOCpuOCueOCsQ0KK+OCquOCquODouODiCzjgrfjg6fjgqbjgrgNCivjgqrjgrfjg54s44K/44Kr44OO44OqDQor44Kq44Kq44K/LOOCseODs+OCpOODgQ0KK+OCquOCquODpCzjg5Ljg5/jgrMNCivjgqTjgrfjgqvjg68s44Oo44KmDQor44Kq44Kr44OALOOCv+OCseOCtw0KK+OCquOCryzjg5Xjg5/jg6bjgq0NCivjgqrjgq/jg4As44Oe44K144KtDQor44Kq44K344Kv44OcLOOCseODs+OCpOODgQ0KK+OCquOCvOOCrSzjgqvjg4Tjg5LjgrMNCivjg6njgqQs44Om44Km44K4DQor44Kk44OI44KmLOODiOODouODpA0KK+OCteOCpOOCrSzjg5Ljg63jgrcNCivjgrXjgqTjg4jjgqYs44K/44OE44OkDQor44Oo44K344OALOODn+ODgeODpOOCuQ0KK+OCteOCsyzjgrfjgrLjg5/jg4QNCivjgrXjgrXjgrjjg54s44K444Ol44Oz44OkDQor44K144K144KtLOODpuOCreOCsw0KK+OCteODiOOCpizjg4TjgrDjg5Ljg4cNCivjgqTjg6/jg6Ljg4gs44Kr44K644OS44KzDQor44K144OI44KmLOODgeOCqOOCsw0KK+OCteODr+ODgCzjg5Ljg4fjg6TjgrkNCivjgrvjgq3jgqvjg68s44Kk44K644OfDQor44K744Kt44ONLOODn+ODhOOCqg0KK+OCt+ODkOOCvyzjg4rjgqrjgq0NCivjgrfjgrLjg4/jg6ks44K344Oz44OkDQor44K344Oe44Kq44KrLOOCouOCreODkuOCsw0KK+OCt+ODn+OCuizjgqvjgrrjg5Ljg60NCivjgrfjg6Is44Oe44K144Ki44KtDQor44K344Oi44Og44OpLOOCv+OCq+OCtw0KK+OCt+ODoOODqSzjgr/jgqvjg5LjgrUNCivjgr3jg6Hjg6Qs44Ki44Kt44OS44KzDQor44K544Ko44Oo44K3LOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjg5Ljg4fjg6bjgq0NCivjgrnjgrrjgq0s44OK44Kq44KtDQor44K/44Kr44OALOOCpOODgeODreOCpg0KK+OCv+OCq+ODj+OCtywNCivjgr/jgqvjgrss44Oe44OK44OWDQor44K/44Kx44OALOOCouOCreODqQ0KK+OCv+OCseOCpCzjg5LjgrXjg6jjgrcNCivjgr/jgrHjg6Ljg4gs44OP44K444OhDQor44K/44Oe44KkLOODiOOCt+ODkuOCsw0KK+OCv+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgr/jg6Djg6ks44K144OI44OrDQor44Kk44K344Kr44OvLOODkuODiOOCtw0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgr/jg4rjgqss44Oe44K144OS44OtDQor44K/44OL44Kw44OBLOOCv+OCseODjuODqg0KK+OCv+ODi+OCsOODgSzjg5Ljg63jgr/jgqsNCivjgr/jg4vjgrDjg4Es44Kx44Oz44K4DQor44K/44OL44Kw44OBLOOCseODsw0KK+OCpOOCt+ODgCzjgqLjg4TjgrcNCivjgr/jg4vjgrfjgr8s44OV44Of44OODQor44OG44Op44OL44K3LOODhOODqOOCtw0KK+ODiOOCquODpOODnizjgq3jg6fjgqbjgrMNCivjg4jjg5/jgr8s44Of44OvDQor44OI44ON44Ks44OvLOOCv+OCrw0KK+ODiOODqOODgCzjg47jg6rjgrMNCivjg4jjg6jjgr8s44K344Ol44Km44K4DQor44OE44OB44OkLOODqOOCt+OCsw0KK+OCpOOCt+OCq+ODryzjg4rjgqrjgq0NCivjg4Tjg6Djg6ks44OI44K344Ki44KtDQor44OE44OO44Kr44OvLOODqOOCt+ODnw0KK+OCpuODgeODgCzjg5Ljg4jjgrcNCivjgqbjgrXjg58s44K/44Kx44K3DQor44Ov44K444OeLOODquOCsw0KK+ODr+OCv+ODiuODmSzjg57jgq0NCivjg6/jgr/jg4rjg5ks44Oo44Km44Kk44OBDQor44Ov44K/44OK44OZLOODpOODqOOCpA0KK+ODpOOCrizjgrHjgqTjgqTjg4ENCivjg6Tjgq4s44Kt44On44Km44KzDQor44Ok44Kv44OvLOODkuODreODleODnw0KK+ODpOODnuODgCzjg5Ljg63jgq0NCivjg6Tjg57jg4As44K/44Kr44Om44KtDQor44Ok44Oe44Kw44OBLOODiOOCt+ODpuOCrQ0KK+ODpOODnuODjuOCr+ODgSzjg57jgrXjgrMNCivjg6Tjg57jgrfjgr8s44Kz44Km44Kk44OBDQor44Ok44Oe44K344K/LOODiuOCquODpuOCrQ0KK+ODpOODnuOCtuOCrSzjg5Ljg4fjg6bjgq0NCivjg6Tjg57jgrbjgq0s44Om44K/44KrDQor44Ok44OK44Ks44OvLOOCv+ODhOODreOCpg0KK+ODpOOCueODgCzjg4jjg6jjgqLjgq0NCivjg6Tjgrnjgqgs44OI44Oi44Om44KtDQor44Kk44K944Ks44KkLOOCv+ODgOODjuODlg0KK+ODpOOCv+OCrOOCpCzjgqjjg6oNCivjg6jjgrfjg4As44Oq44On44Km44KzDQor44K/44Kr44OP44K3LOODnuOCteOCrQ0KK+OCquOCq+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqLjgqrjgq0s44Oe44K144OrDQor44Ki44Kt44OQLOOCouOCreOCsw0KK+OCouODmSzjgqLjgq3jgrMNCivjgqLjg57jg44s44Oe44K144KqDQor44Ki44Oq44Oi44OILOOCt+ODpeOCpuOCuA0KK+OCouODs+ODieOCpizjg6bjgq0NCivjgqTjgqvjg68s44K/44Kk44OY44KkDQor44Kk44K344KkLOODjuODquODkuODrQ0KK+OCpOOCt+OCq+ODryzjg4rjgqrjgrMNCivjgqTjgrfjgrrjgqss44Om44OfDQor44Kk44K344OQ44K3LOOCt+ODpeODs+OCueOCsQ0KK+OCpOOCt+ODouODiCzjg6rjg6fjgqbjgrnjgrENCivjgqTjg4cs44K144OI44KzDQor44Kk44OB44OO44K7LOOCteODiOOCtw0KK+OCpOODiuODgCzjg57jg4rjg5YNCivjgqTjg4zjgqQs44Ok44K544OoDQor44Kk44OO44Km44KoLOODnuODn+OCsw0KK+OCpOODpOODnizjgrPjgqbjgrgNCivjgqTjg6/jgrXjgq0s44Of44K644Oe44K1DQor44Kk44Ov44OeLOOCq+OCuuOCsw0KK+OCpOODr+ODnuODhCzjgqrjgrXjg4rjgqoNCivjgqbjgqjjg4As44OS44Ot44KzDQor44Km44Ko44OOLOODkuODreOCrQ0KK+OCpuODgeODgCzjgr/jgqvjgqoNCivjgqbjg4ks44Kx44Oz44K4DQor44Km44Oh44OP44OpLOOCv+OCq+OCtw0KK+OCqOOCsOODgSzjg4jjg5/jgrXjg5YNCivjgqjjg47jgq0s44Oo44K344KzDQor44Ko44Oi44OILOODn+ODhOODouODiA0KK+OCqOODouODqizjgrvjgqTjg6QNCivjg4rjgqvjgqzjg68s44OK44Kq44Ki44KtDQor44Kq44Kq44K/LOODkuODh+ODpuOCrQ0KK+OCquOCrOOCvyzjg6TjgrnjgrcNCivjgqrjgqzjg68s44OO44OW44K/44KrDQor44Kq44Ks44OvLOODrOOCpOOCsw0KK+OCquOCr+OCpCzjgr/jgq/jgrgNCivjgqrjgq/jg6Djg6ks44Oi44OI44KzDQor44Kq44Kq44K/44OLLOODhuODq+OCouOCrQ0KK+OCquODhOODiOODoizjg6bjgq3jgrMNCivjgqrjg4vjgrbjg68s44K344Ky44KtDQor44Kq44OOLOODjuODquOCouOCrQ0KK+OCquODkOODiizjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqrjg57jgqzjg6os44Oe44K144OkDQor44Kr44Kt44K244OvLOODhuODhOODkuODrQ0KK+OCq+OCseODkizjgqjjg6rjgrMNCivjgqvjgrXjg4/jg6ks44Oe44OJ44KrDQor44Kr44K4LOOCquOCteODoA0KK+OCq+OCuOOCvyzjgr/jgqvjgqoNCivjgqvjgrjjgr8s44K/44Kr44KqDQor44Kr44K444Ok44OeLOODn+ODjuODqw0KK+OCq+ODiOOCpizjg6jjgrfjg47jg5YNCivjgqvjg4rjg4As44Kx44KkDQor44Kr44ON44KzLOODjuODluOCq+ODhA0KK+OCq+ODjeOCsyzjg6rjg6fjgqbjgr8NCivjgqTjgr/jg44s44Kx44Oz44K544KxDQor44OK44Ks44OE44OeLOOCt+ODpeOCpuODmOOCpA0KK+OCq+ODjuOCpizjgrvjgqTjgrgNCivjgqvjg57jgqgs44OK44Kq44KtDQor44Kr44Ov44KkLOODhuODhOOCqg0KK+OCq+ODr+ODnuOCvyzjg5Ljg63jgq0NCivjgqvjg7Pjg44s44Oe44Kk44KzDQor44Kt44Km44OBLOOCpOOCuuODnw0KK+OCreOCtyzjg6jjgqbjgrMNCivjgq3jgr/jgqzjg68s44OI44Oi44OO44OWDQor44Kt44OO44K344K/LOODiuODquODiOOCtw0KK+OCreODp+OCpuOCrOOCryzjg57jgrPjg4gNCivjgq/jg5ws44OI44Oi44OO44OqDQor44Kv44Oc44K/LOOCv+OCr+ODpA0KK+OCr+ODnOOCvyzjgrfjg7Pjg5rjgqQNCivjgq/jg6rjg4/jg6ks44Oq44KoDQor44Kv44Oq44Ok44OeLOOCseOCpOOCsw0KK+OCpOOCt+OCrOOCrSzjg4jjgrfjg5XjgrUNCivjgq/jg63jgqQs44Kk44OE44Ot44KmDQor44Kz44Km44K144KtLOOCs+OCpuOCpOODgQ0KK+OCs+OCpuODgCzjgqLjg4TjgrcNCivjgrPjg5Djg6Tjgrcs44OO44OW44Ki44KtDQor44Kz44OQ44Ok44K3LOODhuODhOODpA0KK+OCs+ODkOODpOOCtyzjg6bjgqbjgrnjgrENCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44Kk44OO44Km44KoLOODjuODluOCouOCrQ0KK+OCteOCpOODmyzjg4rjg6vjg5Ljg60NCivjgrXjgqvjgqzjg68s44Oo44Km44OY44KkDQor44Kr44Ov44Og44OpLOODpuOCv+OCqw0KK+OCteOCteOCquOCqyzjg6jjgqbjgrMNCivjgrXjgrXjgq0s44OO44Oc44OrDQor44K144OI44KmLOODjuODquOCq+OCug0KK+OCteODiOOCpizjg57jg4rjg5YNCivjgrXjg4rjg4As44Kq44K144OgDQor44K144Or44Ok44OeLOOCseODs+OCpOODgQ0KK+OCt+OCquODhCzjgqjjgqTjgrnjgrENCivjgrfjgqrjg47jg6Qs44K344OO44OWDQor44K344Kq44Ok44OeLOODjuODnOODqw0KK+OCt+OCruODj+ODqSzjg5Ljg63jg6bjgq0NCivjgrfjgrfjg4ks44Kv44OL44KqDQor44K344OO44K244KtLOOCq+OCuuODkuODiA0KK+OCt+ODkOOCvyzjg5/jg47jg6sNCivjgrfjg5/jgrosDQor44K344On44Km44OOLOOCt+ODs+OCpOODgQ0KK+OCt+ODqeOCrSzjg5Ljg63jg6bjgq0NCivjgrnjgq7jgqrjgqss44Of44OE44Kr44K6DQor44K544Ku44OP44OpLOOCreODqOOCt+OCsg0KK+OCueOCuuOCrSzjg5LjgrXjg4bjg6sNCivjgrnjgrrjgq0s44K344Ky44Om44KtDQor44K544Of44Ok44OeLOOCu+OCpOOCuA0KK+OCu+ODg+OCvyzjg57jgrXjgq0NCivjgqTjgrfjg6/jgr8s44OA44Kk44K444OlDQor44K744Oz44K044KvLOODn+ODjuODqw0KK+OCv+OCq+OCquOCqyzjg6bjg58NCivjgr/jgqvjgrbjg68s44K/44Kr44K344KyDQor44K/44Kr44OP44K3LOOCouODpOOCsw0KK+OCv+OCq+ODoOODqSzjgr/jgqvjg6bjgq0NCivjgr/jgq3jg4gs44OS44OH44KtDQor44K/44OK44KrLOOCq+OCug0KK+OCv+ODiuOCqyzjgqLjgq3jgrMNCivjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44K/44OK44OZLOOCseODs+OCuA0KK+OCv+ODi+OCsOODgSzjg57jg4rjg5YNCivjg4Hjg6Pjg6/jg7Pjg6Qs44Oo44K344OP44OrDQor44OG44Op44K144KrLOODkuODreOCrQ0KK+ODiOOCs+ODrSzjgrjjg6Xjg7PjgqTjg4ENCivjg4rjgqvjgqQs44K/44Kr44K3DQor44OK44Kr44KqLOOCt+ODs+OCuA0KK+ODiuOCrOOCquOCqyzjg5/jg5sNCivjg4rjgqvjgqzjg68s44Oi44OI44Ki44KtDQor44OK44Kr44K444OeLOOCueODkuODgQ0KK+ODiuOCrOOCuyzjgr/jg4Tjg6QNCivjg4rjgqvjg44s44K744Kk44K/DQor44OK44Kr44OOLOOCuA0KK+ODiuOCrOODjizjg6bjgqbjgrMNCivjgqTjgrHjg4As44Ki44Kt44KzDQor44OK44Kr44Og44OpLOODnuODquOCsw0KK+ODiuOCq+ODpOODnizjgqvjg4Tjg4jjgrcNCivjg4vjgqos44K444Ol44Oz44Kk44OBDQor44OL44K344KqLOODjuODquOCsw0KK+ODi+OCt+OCq+OCpCzjg4jjgrfjg5/jg4QNCivjg4vjgrfjgrbjgqss44Oo44K344KzDQor44OL44K344OALOODgOOCpOOCueOCsQ0KK+ODi+OCt+ODgCzjgr/jgqvjgrcNCivjgqTjgqTjgrjjg54s44Oe44K144KtDQor44OL44K344OP44OpLOOCq+OCuuODpuOCrQ0KK+ODi+OCt+ODoOODqSzjgqvjgrrjg6QNCivjg43jg63jg6Es44OS44Ot44K3DQor44OO44K444OeLOOCteODjeODkuODrQ0KK+ODjuODiuOCqyzjg4DjgqTjgrnjgrENCivjg4/jgrfjg5As44OO44Oq44Kr44K6DQor44OP44OB44OkLOOCv+OCq+ODkuODrQ0KK+ODj+ODg+ODiOODqizjgrMNCivjgqTjgqTjg4As44OS44Ot44Om44KtDQor44OP44OWLOODnuOCs+ODiA0KK+ODj+ODpOOCq+ODryzjg4bjg4Tjg63jgqYNCivjg4/jg6Tjgrcs44OK44Kq44KzDQor44OP44Ok44K344OeLOODkuODh+OCtw0KK+ODj+ODqSzjgr/jgq/jg58NCivjg5Ljgqzjgrfjg4As44Oe44K144OrDQor44K744Kt44Kw44OBLOOCreODp+OCpuOCpOODgQ0KK+ODkuODqeOCpCzjgqvjgqrjg6oNCivjg5Ljg63jgrnjgqgs44OS44Ot44Om44KtDQor44OS44Ot44OP44K/LOOCv+OCr+ODpA0KK+ODleOCr+OCt+ODnizjg5/jg4TjgqoNCivjg5Xjgrjjgqos44OG44Oz44Oa44KkDQor44OV44K444K/LOODpuOCpuOCpOODgeODreOCpg0KK+ODleOCuOODnuOCrSzjg6bjgq3jg5LjgrMNCivjg5Xjgrjjg6/jg6ks44OI44Kq44OrDQor44OV44Or44Kk44OBLOODpuOCpuOCueOCsQ0KK+ODm+OCteOCqyzjgr/jgrHjgrcNCivjg5vjgrfjg44s44Kz44Km44K4DQor44Ob44OqLOODpuOCreOCsw0KK+ODm+ODquODouODiCzjg6bjgqbjgrgNCivjg5vjg7Pjg54s44Om44Kt44OO44OWDQor44Oe44Ko44Kr44OvLOOCv+OCseODj+ODqw0KK+ODnuOCqOODgCzjgr/jgqvjg5Ljg4gNCivjg57jgqjjg4As44Of44Kt44KqDQor44Oe44Ko44OALOOCv+ODhOODpA0KK+ODnuOCteOCpCzjgq/jg58NCivjg57jg4TjgqQs44OS44OH44OO44OWDQor44Oe44OE44K244OvLOODgeOCq+ODqQ0KK+ODnuODhOODgCzjgr/jgqvjg6bjgq0NCivjg57jg4Tjg4jjg6Is44Oe44K144OK44KqDQor44Oe44OE44OK44KsLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg6jjgqbjgrnjgrENCivjg5/jgrrjgrDjg4Es44OI44Oi44K/44KrDQor44Of44Ok44Oi44OILOODnuODpuODnw0KK+ODn+ODpOODouODiCzjg6TjgrnjgrgNCivjg6Djg6njgqvjg58s44Kr44K644OS44OHDQor44Og44Op44Kr44OfLOODnuOCteODkuODrQ0KK+ODoOODqeODiuOCqyzjgrXjg4jjgrcNCivjg6Ljg4Hjgrrjgq0s44K/44Kv44OkDQor44Oi44OI44Kv44OpLOODiOODouOCsw0KK+ODouODqizjgq/jg4vjgqvjgroNCivjg6Ljg6rjg6Qs44Ob44Oe44OsDQor44Ok44K544KkLOOCv+OCpOOCsuODsw0KK+ODpOOCueODgCzjg5/jgq3jgrMNCivjg6Tjgrnjg4As44Kt44Oo44OS44OIDQor44Ok44K/LOOCq+OCuuODkuODrQ0KK+ODpOOCv+OCrSzjg47jg5bjgqoNCivjg6Tjg4Es44OV44Of44OS44KzDQor44Ok44OOLOODkuODreOCtw0KK+ODpOODnuOCpOOCuuODnyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jgqrjgqss44Oe44K144KtDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjg47jg6oNCivjg6Tjg57jgrbjgq0s44Ki44Kt44KqDQor44Ok44Oe44K244KtLOODiuODig0KK+ODpOODnuOCt+OCvyzjg57jgqTjgrMNCivjg6Tjg57jg6Ljg4gs44Kx44OzDQor44Oo44Kz44K844KtLOOCv+OCpOODgQ0KK+ODqOOCt+ODgCzjg4rjgqrjg4gNCivjg6jjgrfjg44s44Ok44K544KqDQor44Oo44K344OfLOOCv+OCq+OCtw0KK+ODqOODgCzjgr/jgqvjg5Ljg60NCivjg6jjg4As44OS44Ot44Ki44KtDQor44Ot44K4LOODleODn+OCouOCrQ0KK+ODr+ODgCzjg57jg58NCivjg6/jgr/jg4rjg5ks44Om44Kt44KqDQor44Ov44K/44OK44OZLOODkuODh+OCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjgqoNCivjg6/jgr/jg5ks44K/44Kr44K3DQor44Kr44OO44KmLOOCv+OCq+ODiOOCtw0KK+ODi+ODg+OCvyzjgqrjgrXjg6ANCivjgqLjgqrjgq0s44K344Ol44KmDQor44Ki44Kq44KtLOODj+ODiuOCsw0KK+OCouOCquODpOODnizjg57jgrXjgqLjgq0NCivjgqLjgqrjg6Tjg54s44OM44KkDQor44Ki44Kt44OQLOOCseOCpOOCpOODgQ0KK+OCouOCteODgCzjg57jg6rjgrMNCivjgqLjg4Djg4Es44OI44Oi44OfDQor44Ki44OA44OBLOODpuOCpuOCsw0KK+OCouODiOODmSzjg4/jg6vjg4gNCivjgqLjg5ks44Kr44OE44OS44KzDQor44Ki44OZLOODjuODluOCqg0KK+OCouODmSzjg57jg6bjg58NCivjgqLjg57jg44s44Oe44KtDQor44Ki44Oe44OOLOOCuOODpeODs+OCpOODgeODrQ0KK+OCouODqeOCq+ODryzjg6rjg6fjgqbjgrnjgrENCivjgqLjg6rjgr8s44Oo44Km44OY44KkDQor44Ki44Oq44OI44OiLOODkuODreOCtw0KK+OCouODs+OCtuOCpCzjg5Ljg4fjgqLjgq0NCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Ki44Oz44OJ44KmLOODquOCqOOCsw0KK+OCpOOCrOODqeOCtyzjg5/jgqrjgrMNCivjgqTjgrHjg4As44Kk44K644OfDQor44K/44Kr44OP44K3LOOCouODhOOCqg0KK+OCpOOCt+ODkOOCtyzjgr/jg4DjgrcNCivjgqTjgrfjg6Djg6ks44Om44Of44KzDQor44Kk44K344Oi44OILOODnuODquOCsw0KK+OCpOODgeOCpCzjgrHjgqTjgrMNCivjgqTjg4Hjgqvjg68s44OS44Ot44OIDQor44Kk44OB44Kr44OvLOODnuOCreOCsw0KK+OCpOODgeODjuOCuyzjgq3jg6jjgrcNCivjgqTjg4jjgqYs44Ki44Kt44OS44OtDQor44Kk44OI44KmLOODnuOCteODqw0KK+OCpOODiOOCpizjg6rjgrUNCivjgqTjg4rjgqrjgqss44Oe44K144OV44OfDQor44Kk44OK44OQLOODkuODreOCv+OCsQ0KK+OCpOODjOOCuuOCqyzjg57jg6bjg58NCivjgqTjg47jgqbjgqgs44OS44OH44Kq44OfDQor44Kk44OO44Kr44OvLOOCt+ODpeODs+OCueOCsQ0KK+OCpOODnuOCpCzjgr/jgrHjgrcNCivjgqTjg57jgrfjg6Xjgq8s44Oq44On44KmDQor44Kk44Ov44KkLOODiOODouODkuOCsw0KK+OCpOODr+OCt+ODnizjgrfjg6XjgqbjgqTjg4ENCivjgqbjgqjjgr7jg44s44Oh44Kw44OfDQor44Km44Ko44OALOOCv+OCq+ODkuODrQ0KK+OCpuOCqOODj+ODqSzjgr/jgqvjg6bjgq0NCivjgqbjgqjjg4/jg6ks44Oi44OI44KzDQor44Kr44Kt44K/LOOCseODsw0KK+OCpuOCteODnyzjg5Ljgrjjg6oNCivjgqbjg4Hjg4As44OS44Ot44KtDQor44Km44OB44OALOOCouODpOOCsw0KK+OCpuODgeODnOODqizjg5/jgrXjg4gNCivjgqbjg6HjgqzjgqQs44Kr44K644KoDQor44Km44Oh44OELOOCouOCreODkuOCsw0KK+OCpuODoeODjizjgr/jgrHjgrcNCivjgqbjg6njgqvjg68s44Om44KtDQor44Km44Op44OZLOOCt+OCsuODkuOCtQ0KK+OCqOOCsOODgSzjgr/jg4DjgrcNCivjgqjjgrrjg58s44Kk44Kv44OoDQor44Ko44OO44Oi44OILOOCv+ODreOCpg0KK+OCpOODnuODi+OCtyzjg5Ljg63jg6bjgq0NCivjgqjjg47jg6Ljg4gs44OV44Of44KzDQor44Ko44Oz44OJLOODqOOCt+OCrQ0KK+OCquOCpOOCq+ODryzjg57jgrXjgq0NCivjgqrjgqTjgqvjg68s44Om44Kt44OV44OfDQor44Kq44Kq44KkLOODqOOCpuOCuA0KK+OCquOCquOCpOOCtyzjg57jgrXjg4/jg6sNCivjgqrjgqrjgr8s44OV44Of44Kr44K6DQor44Kq44Kq44OE44KrLOOCt+ODs+OCueOCsQ0KK+OCquOCquODi+OCtyzjgqvjg4TjgqLjgq0NCivjgqrjgqrjg4vjgrcs44Of44OB44KoDQor44Kq44Kr44OALOODpOOCueOCqg0KK+OCquOCq+ODgCzjg57jgrXjg6sNCivjgqrjgqvjg44s44Om44KtDQor44Kq44Kr44OZLOODqOOCt+ODkuODrQ0KK+OCquOCq+ODmSzjg5Ljg4fjgqLjgq0NCivjgqrjgqvjg6Djg6ks44Oq44On44KmDQor44Kq44Kr44Oi44OILOODn+OCrQ0KK+OCquOCq+ODouODiCzjg5/jg6bjgq0NCivjgqrjgqzjg68s44K/44Ko44KzDQor44Kq44Ks44OvLOODiOOCquODqw0KK+OCquOCr+ODgCzjgrHjg7MNCivjgqrjgq/jg4As44OG44OE44OkDQor44Kq44K244KtLOODnuODn+OCsw0KK+OCquODjizjg4rjgqrjgrMNCivjgqrjgqrjg6Tjg54s44K/44Kr44K3DQor44Kr44Kk44K644KrLOODiOOCt+ODleODnw0KK+OCq+OCrOODnyzjgqjjg6rjgqsNCivjgqvjgq3jgr8s44Kr44Kq44OrDQor44Kr44KvLOOCs+OCpuOCuA0KK+OCq+OCteOCpCzjg6bjgq3jg47jg6oNCivjgqvjgrjjgqQs44Ki44Kr44ONDQor44Kr44K444K/LOODiuOCquODpA0KK+OCq+OCv+OCqCzjg6bjgqbjgrjjg7MNCivjgqvjgr/jg6Tjg54s44Of44OE44KzDQor44Kr44OELOODiOOCquODqw0KK+OCq+ODiOOCpizjgr/jgq8NCivjgqvjg4jjgqYs44OA44Kk44K544KxDQor44Kr44OfLOOCouODhOOCsw0KK+OCq+ODjeOCsyzjgq/jg4vjg5Ljg4gNCivjgqvjg57jg4As44Kr44K644OS44OtDQor44Kr44OfLOODqOOCt+ODhuODqw0KK+OCq+ODn+ODkuOCtSzjg6bjgqbjgrgNCivjgqvjg5/jg6Ljg4gs44Kr44Kq44OqDQor44Kr44Of44OkLOOCq+OCuuOCqg0KK+OCq+ODn+ODpOODnizjg57jgq0NCivjgqvjg6/jgqvjg58s44Oe44K544OfDQor44Kr44Ov44K144KtLOODkuODiOOCtw0KK+OCq+ODr+OCuyzjg5Ljg63jgqvjgroNCivjgqvjg6/jg4/jgr8s44K/44Kx44OB44KrDQor44Kr44Ov44OP44OpLOOCuOODpeODs+OCsw0KK+OCq+ODr+ODoOODqSzjgqvjgrrjg5Ljg60NCivjgqvjg6/jg6Ljg4gs44Kx44Kk44K544KxDQor44Kr44Ov44Oi44OILOODkuODreOCtw0KK+OCq+ODr+ODouODiCzjg5/jg4HjgqoNCivjgqvjg7Pjg4As44K/44Kx44K3DQor44Kt44Kv44OBLOOCqOODqg0KK+OCreOCv+OCrOODryzjg57jgrXjg5bjg58NCivjgq3jgr/jg4rjgqws44K144Kr44KoDQor44Kt44K/44OOLOOCt+ODs+OCtA0KK+OCreOCv+ODoOODqSzjgr/jg4Tjg6QNCivjgq3jgr/jg6Ljg4gs44OE44OI44OgDQor44Kt44OO44KoLOODkuODreOCtw0KK+OCreODluOCuyzjgr/jgqvjgqgNCivjgq3jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Kt44Og44OpLOODiOODouOCrQ0KK+OCreODouODiCzjg5Ljg4fjg6bjgq0NCivjgq3jg6Ljg4gs44Om44OqDQor44Ku44On44Km44OWLOODkuODreOCsw0KK+OCr+ODiyzjg5/jg5sNCivjgq/jg4vjg57jgrUs44Of44Ko44KzDQor44Kv44Oe44K144KrLOOCv+OCpOOCu+ODhA0KK+OCr+ODqeOCt+OCsizjgqLjgq3jgqoNCivjgq/jg6rjg4/jg6ks44K/44Kx44K3DQor44Kz44Kk44KxLOODoeOCsOODnw0KK+OCs+OCpOOCseODgCzjgr/jg4Tjg63jgqYNCivjgrPjgqTjgrrjg58s44OS44Ot44K3DQor44Kz44Kk44OM44OeLOODn+ODgeOCsw0KK+OCs+ODhOOCqyzjgqvjgrrjgqLjgq0NCivjgrPjgqws44K344Ky44KtDQor44Kz44K344Oi44OILOODkuODreODn+ODhA0KK+OCs+ODgOODnizjgr/jgqTjg4Hjg63jgqYNCivjgrPjg4Djg54s44Oe44K144Kr44K6DQor44K044OI44KmLOOCouODquODqOOCtw0KK+OCs+ODi+OCtyzjg4jjg6LjgrMNCivjgrPjg5Djg6Tjgrcs44Oo44K344K4DQor44Kz44OQ44Ok44K3LOODnuOCteOCrQ0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjgr/jgqsNCivjgrPjg5Djg6Tjgrcs44OS44OH44OS44OIDQor44Kz44Oe44KtLOOCv+ODhOODpA0KK+OCs+ODnuODkCzjgqvjgrrjg47jg6oNCivjgrPjg5/jg6Qs44Kr44OE44OS44KzDQor44Kz44Ok44OeLOODnuOCteODjuODqg0KK+OCs+ODpOODnizjg6Tjgrnjg47jg6oNCivjgrXjgqTjgq0s44OI44Oi44OS44K1DQor44K144Kk44K044KmLOODn+ODr+OCsw0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgrXjgqTjg4jjgqYs44OG44OE44KqDQor44K144Kk44OI44KmLOOCpOOCteODoA0KK+OCpOOCrOODqeOCtyzjgrfjg6fjgqbjgrQNCivjgrXjgqjjgrDjgrUs44OK44OfDQor44K144Kr44KkLOOCouOCreODqQ0KK+OCteOCq+OCrOODnyzjgqTjg4Hjg63jgqYNCivjgrXjgqvjg40s44OA44Kk44KtDQor44K144Kr44Oi44OILOODiOODouODjuODqg0KK+OCteOCq+ODouODiCzjg57jgrPjg4gNCivjgrXjgq/jg6njgqQs44OS44Ot44OfDQor44K144Kv44Op44OALOODquODp+OCpuOCuA0KK+OCteOCs+ODsyzjg57jgrXjg5Ljg60NCivjgrXjgrXjgq0s44OK44OK44KoDQor44K144K144OP44OpLOODr+OCq+OCsw0KK+OCteODiOOCpizjgrLjg7MNCivjgrXjg4jjgqYs44K444Ol44Oz44Kk44OBDQor44K144OI44KmLOOCseODs+OCtA0KK+OCteODiOOCpizjg4rjgqrjg4gNCivjgrXjg44s44OS44OH44Ki44KtDQor44K144OvLOOCseODs+OCtA0KK+OCt+ODluODpCzjgr/jg4DjgrcNCivjgrfjg5bjg6Qs44OS44OH44KqDQor44K344Oe44OALOODnuODiuOCqA0KK+OCt+ODnuODgCzjg5Ljg4fjgr/jgrENCivjgrfjg57jg4As44Ok44Oo44KkDQor44K344Of44K6LOODpuOCreOCqg0KK+OCt+ODn+OCuizjg4DjgqTjgrnjgrENCivjgrfjg5/jgros44OS44OH44KtDQor44K344Of44K6LOOCouOCreODjg0KK+OCt+ODn+OCuizjg4rjgqrjg6bjgq0NCivjgqTjg47jgqbjgqgs44Kx44Kk44K544KxDQor44K344OiLOOCteODiOOCtw0KK+OCt+ODp+OCpuODgCzjgrfjgrLjg47jg6oNCivjgrjjg7Pjg44s44Oe44Kz44OIDQor44K444Oz44OOLOODquODpeOCpuOCuA0KK+OCt+ODs+ODnuODgSzjgr/jgrHjgrcNCivjgrnjgq7jgqQs44Oe44K144OK44KqDQor44K544Ku44Kq44KrLOOCv+OCq+ODkuOCsw0KK+OCueOCruODouODiCzjg5/jg4Hjg47jg6oNCivjgrnjgrrjgq0s44Kr44K644OS44OpDQor44K544K644KtLOODgOOCpOOCueOCsQ0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg60NCivjgrnjgrrjgq0s44OS44Ot44K344KyDQor44K544K644KtLOODpuOCpuOCpOODgeODreOCpg0KK+OCu+OCqizjg47jg6rjgrMNCivjgrvjgq0s44K944KmDQor44Kk44K344OP44OeLOOCseODs+ODiA0KK+OCveODjuODgCzjgrPjgqbjgr/jg63jgqYNCivjgr/jgqQs44Oo44K344Ki44KtDQor44K/44Kr44Kk44OvLOOCreODqOOCtw0KK+OCv+OCq+OCrizjg6bjgqbjgrgNCivjgr/jgqvjg4/jgrcs44Oe44Kt44KzDQor44K/44Kr44OP44K3LOODjuODluODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgq3jgrMNCivjgr/jgqvjg4/jgrcs44K/44Kx44K3DQor44K/44Kr44OP44K3LOOCouOCreODkuOCsw0KK+OCv+OCq+ODoOOCryzjgrHjg7PjgrcNCivjgr/jgrDjg4Es44OS44Ot44KzDQor44K/44Kx44Km44OBLOODqOOCt+OCsw0KK+OCv+OCseOCq+ODryzjg57jgrXjgrcNCivjgr/jgrHjg68s44K344Oz44K4DQor44K/44OA44Oe44OELOODkuODh+OCrQ0KK+OCv+OCv+ODqSzjgrPjgqbjgrgNCivjgr/jg4rjgqss44K/44Kr44K3DQor44K/44OL44Oi44OILOODpuOCpuOCuA0KK+OCv+ODjeODoOODqSzjgqLjgq3jg5Xjg58NCivjgr/jg4/jg6ks44K144OI44K3DQor44K/44Og44OpLOODkuODreOCtw0KK+ODgOODsyzjgr/jgqvjg6bjgq0NCivjgqTjgqTjg4As44Og44ON44OO44OqDQor44OB44OQLOOCqOOCpOOCueOCsQ0KK+ODgeODp+OCpuODiOOCryzjg5Ljg4fjg6bjgq0NCivjg4Tjgqvjg4/jg6ks44OS44Ot44Om44KtDQor44OE44OE44OfLOODnuOCs+ODiA0KK+ODhOODouODqizjg57jg6rjgrMNCivjg4bjg6njgrfjgr8s44Om44Km44Kk44OB44Ot44KmDQor44OJ44KkLOODpuOCv+OCqw0KK+ODieOCpCzjg6jjgrfjgqgNCivjg4njgqQs44Oo44Km44Kk44OBDQor44OI44K344OeLOOCs+OCpuODmOOCpA0KK+ODiuOCpOODiOOCpizjgrPjgqbjgrgNCivjg4rjgqvjgqQs44Oe44K144OS44OtDQor44OK44Kr44KkLOOCt+ODpeOCpuODmOOCpA0KK+ODiuOCq+OCqizjgq3jg5vjgrMNCivjg4rjgqvjgqzjg68s44OB44Ki44KtDQor44OK44Ks44K144KtLOOCq+OCquODqg0KK+ODiuOCq+OCuOODnizjgr/jgqvjg5Xjg58NCivjg4rjgqvjgrjjg54s44OO44K+44OgDQor44OK44Kr44K344OeLOOCteODiuOCqA0KK+ODiuOCq+ODgCzjgq3jg6jjgrMNCivjg4rjgqvjg4/jg6ks44Of44OK44KzDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCvuOCpg0KK+ODiuOCq+ODoOODqSzjgrfjg6Xjgqbjgr/jg63jgqYNCivjg4rjgqvjg6Djg6ks44Om44OqDQor44OK44Kr44Og44OpLOOCveOCpuOCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjg5/jg4Tjg5Ljg60NCivjg4rjgqvjg6Djg6ks44Kr44OE44OS44KzDQor44OK44Kr44Og44OpLOODkuODh+ODpA0KK+ODm+OCt+ODjizjg4jjgrfjg4/jg6sNCivjg4rjgqvjg6Ljg4gs44Ki44Kt44KzDQor44Kk44Kx44OALOODnuOCteOCv+OCqw0KK+ODiuOCq+ODouODqizjg4jjgqrjg6sNCivjg4rjgqzjg6jjgrcs44K/44Kr44Oe44K1DQor44OK44OH44OP44OpLOODkuODreOCtw0KK+ODiuODiuODouODqizjg4Tjg4jjg6ANCivjg4rjg6njgrXjgqss44OS44Ot44K3DQor44OK44Oz44OQLOODpuOCrQ0KK+ODi+OCtyzjg4Tjg43jgqLjgq0NCivjg4vjgrfjgqvjg68s44OS44OH44Ki44KtDQor44OL44K344OALOOCseODs+OCtw0KK+ODi+OCt+ODoOODqSzjg6bjgq0NCivjg47jgrDjg4Es44K144OI44K3DQor44OO44OALOOCseODs+OCpOODgQ0KK+ODjuODiuODnyzjgrnjgrDjg6sNCivjg47jg47jgqTjg4Hjg6Qs44Oe44K544KqDQor44OO44Og44OpLOODiOODouODkuOCsw0KK+ODjuODouODiCzjg6bjgqbjgqTjg4ENCivjg4/jgqzjg6Qs44OK44Kq44Om44KtDQor44OP44Ku44Ov44OpLOODpOOCueODpuOCrQ0KK+ODj+OCryzjg4jjg6Ljg5Ljg4gNCivjg4/jgrcs44K/44Kr44K3DQor44OP44K344K644OhLOODpuOCpuOCsw0KK+ODj+OCt+ODkCzjg57jgrPjg4gNCivjg4/jgrvjg5ks44K/44Kr44Oe44K1DQor44OP44K/LOODnuOCteODn+ODgQ0KK+ODj+OCv+OCqCzjg5/jgq3jg4gNCivjg4/jgr/jg44s44Ki44Kt44Oo44K3DQor44OP44OB44OOLOOCueOCueODoA0KK+ODj+ODg+ODiOODqizjg6bjgqYNCivjg4/jg6Tjgrcs44Os44Kk44KzDQor44OP44Ok44K344OALOOCouOCreODqQ0KK+ODj+ODpOODleODjSzjg6jjgrfjgqLjgq0NCivjg4/jg6ks44K/44OE44K4DQor44OP44Op44OALOOCr+ODn+OCsw0KK+ODj+ODqeODgCzjg57jgrXjgrMNCivjgqTjg47jgrDjg4Es44Kr44OE44OV44OfDQor44OP44Op44OALOOCv+OCq+ODpuOCrQ0KK+ODkuOCrOOCt+ODpOODnizjg6jjgqbjgrMNCivjg5LjgrDjg4Es44OS44OH44KtDQor44OS44K0LOODkuODreOCtw0KK+ODkuODgOODjizjg4jjg6Ljg6QNCivjg5Ljg57jgq0s44OI44Oi44OO44OqDQor44Kv44Op44K344KyLOOCq+OCuuODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjg6zjgqTjgrMNCivjg5Ljg6njgr8s44K344Ky44KqDQor44OS44Ot44K144OvLOODpuOCreOCsw0KK+ODkuODreOCvyzjgrHjgqTjgrMNCivjg5XjgqvjgrXjg68s44Of44Kt44KzDQor44OV44Kr44K244OvLOODquOCqA0KK+ODleOCq+OCtuODryzjgr/jgqvjgrcNCivjg5Xjgq/jg6Djg60s44Oe44K144OI44OiDQor44OV44K444KkLOODhuODhOODpA0KK+OCpOODiOOCpizjgrHjgqTjgrMNCivjg5XjgrjjgqQs44Of44Kq44KzDQor44OV44K444OK44KsLOOCseOCpOOCuA0KK+ODleOCuOODiuOCrCzjg5Xjg5/jgrMNCivjg5Xjgrjjg6/jg6ks44OO44Oq44OS44OtDQor44OV44K444Ov44OpLOODquOCqA0KK+ODleOCuOODr+ODqSzjg4rjgqrjg6bjgq0NCivjg5Xjgr/jg4Tjgq4s44OE44Oo44K3DQor44OV44K/44OE44Oi44OqLOOCt+OCuuOCqw0KK+ODleODq+ODj+OCvyzjg47jg5bjgqLjgq0NCivjg5Xjg6vjg6Qs44Oe44Oq44KzDQor44OY44Oz44OfLOODnuOCteODqw0KK+ODm+OCtyzjg57jgqTjgrMNCivjg5vjgrfjg44s44Kr44OE44Ki44KtDQor44Ob44OqLOOCreODn+ODkuODrQ0KK+ODm+ODquOCqCzjgrfjg7PjgrgNCivjg5vjg6rjgqrjgqss44Ki44OE44KzDQor44Ob44Oq44Kr44OvLOODiOODouODkuODrQ0KK+ODnuOCqOODleODjSzjg4rjg5/jgrMNCivjg57jgq3jg44s44Ok44K544OO44OqDQor44Oe44K544OALOOCquOCr+ODiA0KK+ODnuODhOOCpuODqSzjgr/jgrHjgrcNCivjg57jg4Tjgrfjgr8s44Ki44Kt44K3DQor44Oe44OE44Oi44OILOODkuODh+OCv+OCqw0KK+OCpOOCsOODgSzjgr/jgqvjg5Ljg60NCivjg57jg4Tjg6Tjg54s44Oe44K144OS44OtDQor44Oe44OK44OZLOODgeODjg0KK+ODnuODq+ODpOODnizjg4rjgqrjg6bjgq0NCivjg5/jgqbjg6ks44Of44OB44OrDQor44Of44KtLOOCv+OCq+ODpuOCrQ0KK+ODn+ODhOODj+OCtyzjgqjjgqTjgqTjg4ENCivjg5/jg4Tjg5ks44Oe44K144OIDQor44Of44OI44OZLOODkuOCteODpA0KK+ODgeODp+OCpuODiOOCryzjgr/jg57jgq0NCivjgqTjgrHjg5Xjgrgs44OO44OW44Oo44K3DQor44Of44Ok44K244KtLOODnuOCteODj+ODqw0KK+ODn+ODpOOCtuOCrSzjgqLjgq3jg6kNCivjg5/jg6Tjgrfjgr8s44Oo44Km44KzDQor44Of44Ok44K/LOOCv+OCq+OCtw0KK+ODoOOCs+OCpuODpOODnizjg5/jg4Hjg5Ljg4cNCivjg6Djg6njgqQs44Of44ObDQor44Og44Op44Kr44OfLOODnuODnw0KK+ODoOODqeOCq+ODnyzjg5/jg4TjgqLjgq0NCivjg6Djg6njgr8s44OI44Oi44Om44KtDQor44Og44Op44Oe44OELOODnuOCteODpuOCrQ0KK+ODouODiOOCrSzjgrjjg6Xjg7Pjgr8NCivjg6Ljg4jjg6jjgrcs44K744Kk44Kk44OBDQor44Oi44Of44Ok44OeLOOCqOOCpOOCuA0KK+ODouODqizjgr/jgqvjgrcNCivjg6Ljg6os44K/44Kx44OkDQor44Oi44Oq44Km44KoLOODqOOCt+OCv+OCqw0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg47jg6oNCivjg6Ljg6rjgqbjg4Es44K344Oz44K/44Ot44KmDQor44Oi44Oq44K/LOODpuOCpuOCrQ0KK+ODpOOCruOCteODryzjgqvjgrrjg58NCivjg6Tjgrfjg54s44Kz44Km44K4DQor44Ok44K544OALOODleODn+ODkuOCsw0KK+ODpOODjizjg5/jgq0NCivjg6Tjg44s44K/44OA44K/44KrDQor44Ok44Oe44Kw44OBLOOCuOODpeODsw0KK+ODpOODnuOCteOCrSzjg5Xjg5/jg5LjgrMNCivjg6Tjg57jgrbjgq0s44OO44OW44OS44KzDQor44Ok44Oe44K344K/LOOCseOCpOOCuA0KK+ODpOODnuOCt+OCvyzjgqLjg4TjgrcNCivjg6Tjg57jg4As44K/44OE44KqDQor44Ok44Oe44OKLOOCq+ODig0KK+ODpOODnuODn+ODgSzjgrHjgqTjgrnjgrENCivjgqTjg4rjgqss44Ky44Oz44K/DQor44Ok44Oe44Oi44OILOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjgr/jgq/jg6QNCivjg6Tjg57jg6Ljg4gs44OS44OH44KqDQor44Ok44Oe44Oi44OILOODoOODjeOCv+OCqw0KK+ODpuODkCzjg6bjgr/jgqsNCivjg6jjgrPjgr/jg4ss44Oe44Kz44OIDQor44Oo44Kz44Ok44OeLOODqOOCt+OCqg0KK+ODqOOCt+ODgCzjgqvjgrrjg5Ljg60NCivjg6jjgrfjg4As44OI44K344Kr44K6DQor44Kk44Ov44K144KtLOODiOOCt+OCq+OCug0KK+ODqOOCt+ODgCzjg6rjg6fjgqYNCivjg6jjg4As44Ko44OfDQor44Ov44Kr44Oe44OELOODn+ODgeOCqA0KK+ODr+OCtSzjg6rjg6fjgqbjgrMNCivjg6/jg4As44Kr44Kq44OrDQor44Ov44K/44OK44OZLOOCseOCpOOCvuOCpg0KK+OCpOODr+OCr+ODqSzjgqjjgqTjgqTjg4ENCivjg6/jgr/jg4rjg5ks44OS44OH44Om44KtDQor44Ov44K/44OK44OZLOOCq+OCuuODn+ODjQ0KK+ODr+OCv+ODiuODmSzjgrfjg6fjgqbjgr/jg63jgqYNCivjg6/jgr/jg4rjg5ks44Om44KtDQor44Ov44K/44OK44OZLOOCt+OCsuODqw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kt44Oo44Kr44K6DQor44Ov44K/44OK44OZLOODiOOCt+OCqA0KK+OCquOCquOCpCzjg47jg5bjg5Ljg60NCivjgqTjgqTjg4As44Om44Kt44KzDQor44Og44Kr44KkLOOCv+OCq+OCtw0KK+ODleODn+ODj+ODqSzjgqvjgqrjg6oNCivjgqvjg6/jgrTjgqgs44Oe44K144OP44OrDQor44Kv44Ot44Kr44OvLOODkuODreODnw0KK+OCs+OCpuODgCzjgrXjg4jjg6sNCivjg5Xjgrjjgr8s44Om44Km44KzDQor44Kz44OQ44Ok44K3LOOCv+OCseOCtw0KK+ODj+ODnuODoOODqSzjgqvjg6gNCivjgqTjg6/jgrss44Ok44K544OS44OtDQor44K/44Kx44OALOODnuOCteODqw0KK+OCquOCrOODryzjg5Ljg63jgqLjgq0NCivjg5/jgrrjgr8s44K144OI44OrDQor44Kk44Kk44OALOOCouODhOOCtw0KK+OCouOCpOODj+ODqSzjg6TjgrnjgrMNCivjgqLjgqrjgqYs44OI44K344KtDQor44Ki44Kq44KtLOOCt+ODs+OCs+OCpg0KK+OCouOCquODkCzjg5Ljg63jg6jjgrcNCivjgqLjgq3jg6Ljg4gs44K544K544OgDQor44Ki44K144KkLOODpuOCpuOCsw0KK+OCpOOCt+ODpOODnizjgrfjg6Xjg7PjgrnjgrENCivjgqLjgrXjgqos44Ko44Of44KzDQor44Ki44K144OALOODiOOCt+OCrQ0KK+OCouOCteODgCzjgrHjg7Pjgr/jg63jgqYNCivjgqLjgrXjg44s44OV44K444KqDQor44Ki44K144OOLOODiOODouODkuOCsw0KK+OCouOCtuODnyzjg4jjgrfjg6bjgq0NCivjgqLjgrnjg54s44K344Ol44Km44OY44KkDQor44Ki44K944KmLOODpuOCqw0KK+OCouODgOODgSzjgq3jg6fjgqbjgqTjg4ENCivjgqLjg4jjg58s44OO44Oq44OS44OtDQor44Ki44OK44OfLOODpOOCueODkuOCtQ0KK+OCouODmSzjg57jgrXjgqrjg58NCivjgqLjg5ks44Oe44Kz44OIDQor44Ki44OZLOODnuOCs+ODiA0KK+OCouODnuODjizjg57jgrXjg4jjgrcNCivjgqLjg6Tjg5ks44K/44Ot44KmDQor44K/44Kx44Kt44K/LOODnuODiuODlg0KK+OCouODqeOCpCzjg57jgq0NCivjgqTjg4Tjg44s44Of44Kt44KqDQor44Ki44Oq44Kr44OvLOODqOOCt+ODjuODlg0KK+OCouODquOCvyzjgrPjgqbjgqTjg4ENCivjgqLjg7Pjgrjjg6Us44OE44Oo44K3DQor44Ki44Oz44OJ44KmLOODnuOCteOCrQ0KK+OCouODs+ODieOCpizjg6rjg6Xjgqbjgr8NCivjgqTjg4Hjg47jgrss44Kz44K644KoDQor44Kk44Kk44OM44OeLOODkuODreODpuOCrQ0KK+OCpOOCpuOCqCzjg6jjgrfjgqLjgq0NCivjgqTjgqzjg6njgrcs44Ki44Kt44KzDQor44Kk44Kx44Km44OBLOOCquODquOCqw0KK+OCpOOCseOCrOODnyzjg5/jg47jg6sNCivjgqTjgrHjg4As44K/44Kx44K3DQor44Kk44Oq44K/LOODpOOCueOCouOCrQ0KK+OCpOOCseODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqTjgrHjg4As44K344On44Km44Kk44OBDQor44Kk44Kx44OALOOCuOODreOCpg0KK+OCpOOCt+OCpCzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrfjgqQs44OI44Oi44KzDQor44Kk44K344KkLOODiuOCquODnw0KK+OCpOOCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjgqTjg57jgqQs44K/44Kx44K3DQor44Kk44K344Kr44OvLOODquODp+OCpuODmOOCpA0KK+OCpOOCt+OCq+ODryzjg4jjg6Ljg47jg5YNCivjgqTjgrfjgrDjg60s44Om44Kt44OS44OtDQor44Kk44K344OALOOCv+ODhOODpuOCrQ0KK+OCpOOCu+OCrSzjgr/jgrHjgrcNCivjgqTjg4Hjgq0s44Oe44K144OIDQor44Kk44OB44OO44K7LOODiOODouODkuODrQ0KK+OCpOODgeODjuODn+ODpCzjg5Xjg5/jgr/jgrENCivjgqTjg4jjgqYs44K344Oz44Kk44OBDQor44Kk44OI44KmLOODjuODquOCsw0KK+OCpOODiuODgCzjg6jjgrfjgr/jgqsNCivjgqTjg4rjg5As44K744Kk44Kk44OB44Ot44KmDQor44Kk44OP44OpLOOCreODqOOCv+OCqw0KK+OCpOODjuOCpuOCqCzjgqrjgrXjg6ANCivjgqTjg47jgqbjgqgs44OO44Oq44KzDQor44Kk44OO44Km44KoLOODiOODouODpuOCrQ0KK+OCpOODnuOCpOOCuuODnyzjgqLjg4TjgrcNCivjgqTjg54s44K144OI44KzDQor44Kk44Oe44OALOODn+OCqg0KK+OCpOODnuOCuizjg4Tjg6jjgrcNCivjgqTjg57jg6Djg6ks44Of44OE44OI44K3DQor44Kk44Oq44K/44OLLOOCv+OCr+OCuA0KK+OCpOODr+OCrSzjgr/jg4Tjg6QNCivjgqTjg6/jgrXjgq0s44Oe44OqDQor44Kk44Ov44K144KtLOODnuODig0KK+OCpOODr+OCueOCrizjg5/jgqsNCivjgqTjg6/jg4/jgrcs44Kk44OB44Ot44KmDQor44Kk44Ov44OW44OBLOODiuODmw0KK+OCpOODr+ODm+ODqizjgqLjgq3jg5LjgrMNCivjgqbjgqjjg4As44OO44OW44KoDQor44Km44Ko44Oe44OELOOCv+OCq+OCtw0KK+OCpuOCueOCpCzjg4jjg6LjgqTjg4ENCivjgqbjgrnjgqQs44Oe44K144OS44OtDQor44Km44OB44OALOOCq+OCquODqg0KK+OCpuODhOODnyzjg57jgq3jgrMNCivjgqbjg6Hjg4As44OS44OH44OO44OWDQor44Km44Op44OOLOODpOOCueODkuODrQ0KK+OCqOOCrOODryzjgr/jgrHjgrcNCivjgqjjgrbjgq0s44Ki44OE44KzDQor44Ko44OI44KmLOOCseODs+OCuA0KK+OCqOODjuODouODiCzjg4/jg6vjg5Ljg6kNCivjgqjjg47jg6Ljg4gs44Ki44Kt44OpDQor44Ko44OeLOOCouOCreOCsw0KK+OCqOODs+ODiSzjg5LjgrXjg47jg6oNCivjgqjjg7Pjg4ks44Oo44K344Oe44K1DQor44Kq44Kk44K/44OLLOODpuOCrQ0KK+OCquOCpizjg6jjgrfjg5Ljg60NCivjgqrjgqrjgqQs44Kr44Kq44OrDQor44Kq44Kq44KoLOOCouOCreODkuODrQ0KK+OCquOCrSzjgqLjg6QNCivjgqrjgqrjgq/jg5ws44OV44Of44OO44OqDQor44Kq44Kq44K144OvLOOCpOOCteOCqg0KK+OCquOCquOCteODryzjg5LjgrXjgrcNCivjgqTjg6/jgq3jg6os44Ov44K/44OrDQor44Kq44Kq44K544OfLOODouODiOODkuOCsw0KK+OCquOCquOCvyzjg5/jg4Tjg5Ljg60NCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kq44OE44KrLOOCouOCreODjuODqg0KK+OCquOCquODhOOCqyzjgrPjgqbjgqTjg4ENCivjgqrjgqrjg4Tjgqss44OI44Oi44OS44OtDQor44Kq44Kq44OE44KtLOOCuOODpeODsw0KK+OCquODiuOCqyzjg4DjgqTjgrnjgrENCivjgqrjgqrjg4vjgrcs44Oo44Km44KzDQor44Kq44Kq44OcLOODnuOCteOCsw0KK+OCquODnizjgq3jg6jjgrcNCivjgqrjg6Djg6ks44K344OO44OWDQor44Kq44Og44OpLOOCr+ODnw0KK+OCpOOCt+OCpCzjg4rjgqrjgrMNCivjgqrjgqrjg6Ljg6os44Oo44K344OS44OtDQor44Kq44Kq44Oi44OqLOODkuODreOCq+OCug0KK+OCquOCquODouODqizjg47jg5bjg5LjgrUNCivjgqrjgqrjg6/jg4As44K/44Kr44OV44OfDQor44Kq44Kr44KkLOODrOOCpA0KK+OCquOCq+OCtuOCrSzjg4jjg6Ljg5/jg4ENCivjgqrjgqvjgrbjgq0s44Kr44K644OS44OIDQor44Kk44Kx44OALOOCouOCreOCqg0KK+OCquOCq+ODjizjgqjjgqTjgqTjg4ENCivjgqrjgqvjg5ks44Km44Op44OpDQor44Kq44Kr44Oi44OILOOCqOODhOOCsw0KK+OCquOCrOODryzjg6bjgqbjgrMNCivjgqrjgqzjg68s44Ki44Kt44OpDQor44Kq44Ks44OvLOODquODp+OCpuOCpOODgQ0KK+OCquOCrOODryzjgq3jg6jjg44NCivjgqrjgqrjgqzjg6/jg6ks44Kv44OL44OP44OrDQor44Kq44Kv44OP44OpLOOCteODiOOCtw0KK+OCquOCr+ODpOODnizjg57jgrMNCivjgqrjgrDjg6ks44Ok44K544OP44OrDQor44Kt44K/44Og44OpLOODnuODquOCsw0KK+OCquOCtuODryzjgrfjgrLjg5/jg4QNCivjgqrjg4Es44Oi44OI44OS44OtDQor44Kq44OOLOOCv+OCq+OCtw0KK+OCquOCquODjizjg4HjgqsNCivjgqrjg47jg4fjg6ks44Kx44Oz44K3DQor44Kq44OQ44K/LOOCq+ODhOODqOOCtw0KK+OCquOCquODpOODnizjg4Hjgrrjg6sNCivjgqrjg7Pjgr8s44Oh44Kw44OfDQor44Kk44Ov44K/LOOCv+OCseOCtw0KK+OCq+OCpOODluOCrSzjg6bjg58NCivjgqvjgq3jg6Ljg4gs44Oe44OB44KzDQor44Kr44K244Kw44OBLOODnuOCteODjuODqg0KK+OCq+OCteOCtuOCrSzjg6jjgrfjg5Ljg60NCivjgqvjgrgs44K144Kq44OqDQor44Kr44K444Og44OpLOODj+ODq+ODig0KK+OCq+OCt+ODr+OCpCzjg47jg6rjgrMNCivjgqvjgrfjg6/jg5Djg6ks44OK44Kq44OkDQor44Kr44K/44Kv44OpLOODqOOCt+ODpuOCrQ0KK+OCq+OCv+ODpOODnizjg57jgqTjgrMNCivjgqvjg4Tjg44s44K/44Kr44OO44OqDQor44Kr44OJLOODgeOCqOOCsw0KK+OCq+ODiOOCpizjg47jg5bjg6bjgq0NCivjgqTjgr3jg44s44Of44OJ44OqDQor44Kr44OI44KmLOOCv+OCq+OCtw0KK+OCq+ODiOOCpizjgrfjg5sNCivjgqvjg4jjgqYs44Ki44Kt44Oo44K3DQor44Kr44OI44OqLOOCseODs+OCuA0KK+OCq+ODiuOCteOCqyzjg6Ljg4jjg5Ljg60NCivjgqvjg4rjgrbjg68s44Of44OB44KzDQor44Kr44OK44Ok44OeLOOCq+ODiuOCsw0KK+OCq+ODjeOCsyzjg6bjgq3jgqoNCivjgqvjg43jgrMs44OI44Oi44KzDQor44Kr44ON44OALOODouODiOOCrQ0KK+OCrOODnyzjg5Ljg63jgrcNCivjgqvjg6Hjgqrjgqss44Oe44OK44OfDQor44Kr44Op44K144OvLOOCouOCreODhuODqw0KK+OCq+ODqeOCt+ODnizjgq3jg6jjg5Xjg58NCivjgqvjg6vjgqTjgrcs44Kk44K644OfDQor44Kr44Ov44KkLOODiuOCquODpuOCrQ0KK+OCq+ODr+OCpCzjgr/jgqvjgqrjg58NCivjgqvjg6/jgqvjg58s44Oe44K144OfDQor44Kr44Ov44Kr44OfLOOCseODs+OCvw0KK+OCq+ODr+OCuizjgqLjg4TjgrcNCivjgqvjg6/jg4rjgqss44Ko44Kk44K544KxDQor44Kr44Ov44OOLOOCv+OCq+OCtw0KK+OCq+ODr+ODkOOCvyzjg4rjgqrjg6QNCivjgqvjg6/jg5ks44K344ObDQor44Kr44Ov44OfLOOCt+ODs+OCuA0KK+OCq+ODs+ODkOOCtyzjg5/jg4HjgrMNCivjgqvjg7Pjg5Djg6ks44Ki44OE44K3DQor44Kt44K344KkLOODpOOCueOCqA0KK+OCreOCt+ODgCzjgqLjgq3jg5Ljg60NCivjgq3jgr/jgqzjg68s44Oe44K144KtDQor44Kt44K/44K344OtLOOCq+OCuuODqOOCtw0KK+OCreOCv+ODj+ODqSzjg6jjgrfjgqvjgroNCivjgq3jgr/jg6Djg6ks44Oo44Km44Kk44OBDQor44Kt44OJLOODgeOCqOOCsw0KK+OCreODjuOCt+OCvyzjg6/jgqvjgrMNCivjgqjjg4As44Ko44KkDQor44Kt44Og44OpLOODiuODhOOCsw0KK+OCreODoOODqSzjgrfjgrLjg6sNCivjgq3jg6Djg6ks44Ki44OE44K3DQor44Kt44Oo44OK44KsLOODjuODquODn+ODhA0KK+OCreODqOODn+ODpCzjgr/jgqvjgqoNCivjgq3jg6rjg6Qs44Oe44K144KtDQor44Kk44OI44KmLOODiOODouODpA0KK+OCr+OCt+ODgCzjgq3jg6fjgqbjgrMNCivjgq/jgrjjg6njgqrjgqss44OA44Kk44KtDQor44Kv44OL44Oi44OILOOCv+OCseODiOOCtw0KK+OCr+ODjOOCrizjg4jjgqrjg6sNCivjgq/jg5ws44Ki44OE44K3DQor44Kv44Oc44K144OvLOODnuOCteOCrQ0KK+OCr+ODnOOCvyzjgr/jgqvjg5Ljg60NCivjgq/jg6Hjg44s44OO44OW44KqDQor44Kk44K344Kw44OtLOOCv+ODreOCpg0KK+OCr+ODqSzjg4jjg6LjgqLjgq0NCivjgq/jg6njgrXjg68s44OV44Of44OP44OrDQor44Kv44Op44K/LOODquODp+OCpuOCsw0KK+OCr+ODreOCq+ODryzjgr/jgqvjg5LjgrUNCivjgq/jg63jgrks44Oe44Of44KzDQor44Kv44Ot44Ok44OK44KuLOOCteODs+OCt+ODreOCpg0KK+OCpOODiuODiOODnyzjg4DjgqTjgrnjgrENCivjgrPjgqTjgrEs44Oe44Om44KzDQor44Kz44Kk44KxLOODr+OCv+ODqw0KK+OCs+OCpOOCt+OCq+ODryzjg5Ljg4fjg6bjgq0NCivjgrPjgqTjgrrjg58s44OG44Or44OfDQor44Kz44Kk44K644OfLOODjuODquODnuOCtQ0KK+OCs+OCpOODhyzjg57jg4njgqsNCivjgrPjgrrjg54s44Oe44Kk44KzDQor44Kz44Oz44OOLOOCouODhOOCsw0KK+OCs+ODpOODnizjg4DjgqTjgq0NCivjgrPjg6os44K/44Kr44OS44OHDQor44Kr44OE44Kr44OvLOOCu+OCpOOCpOODgeODreOCpg0KK+OCs+OCrOODjizjgqLjgq3jg5Xjg58NCivjgrPjgrfjgqQs44OI44Oi44OS44OtDQor44Kz44K344Oe44OrLOODgOOCpOODiOOCrw0KK+OCs+OCueOCrizjg57jgrXjgrcNCivjgrPjgrvjgq0s44Oe44OK44OWDQor44Kz44K/44OLLOODpOOCpOODgQ0KK+OCs+ODgOODnizjgrvjg7PjgrgNCivjgrPjg4vjgrcs44K/44Of44KzDQor44Kz44OL44K3LOOCv+ODgOOCtw0KK+OCs+ODkCzjg4jjg6Ljgq0NCivjgrPjg5Djgr/jgrEs44Kx44Kk44Kk44OBDQor44Kz44OQ44Ok44K3LOOCouOCreOCsw0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Oo44Km44K4DQor44Kz44OQ44Ok44K3LOODnuOCteODpA0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqoNCivjg4rjgqvjg6Djg6ks44Oo44Km44OY44KkDQor44Kz44OQ44Ok44K3LOODkuODreOCsw0KK+OCs+ODnOODqizjgq/jg4vjg5LjgrMNCivjgrPjg57jg4Qs44OE44Oo44K3DQor44Kz44Ok44OeLOODhOOCruOCqg0KK+OCs+ODs+ODjizjgr/jgqvjgrMNCivjgrXjgqTjg4jjgqYs44OI44Oi44KoDQor44K144Kk44OI44KmLOOCouODhOOCsw0KK+OCteOCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OI44KmLOODleOCreOCsw0KK+OCteOCq+OCpCzjg4Hjg5Ljg60NCivjgrXjgqvjgqQs44Kt44Oo44K3DQor44K144Kr44KkLOODn+ODjeOCqg0KK+OCteOCq+OCreODkOODqSzjg4jjgrfjgq0NCivjgrXjgqvjgrDjg4Es44Kk44OB44Ot44KmDQor44Kk44Ov44K144KtLOODrOOCpOOCsw0KK+OCteOCq+ODouODiCzjg47jg6rjgqoNCivjgrXjgqvjg6Ljg4gs44Oo44Km44K4DQor44K144Kr44Oi44OILOOCuOODpeODs+OCsw0KK+OCteOCteOCrSzjgqvjg4Tjg4jjgrcNCivjgrXjgrXjgq0s44Kz44K144KvDQor44K144K144KtLOOCuOODpeODs+OCsw0KK+OCteOCteOCrSzjg6zjg4oNCivjgqTjg57jg4/jgrcs44OS44Ot44OfDQor44K144OE44OfLOOCv+OCq+ODpuOCrQ0KK+OCteODiOOCpizjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrXjg4jjgqYs44Om44Km44K4DQor44K144OI44KmLOODiOODouOCr+ODiw0KK+OCteODiOOCpizjg57jg6rjgrMNCivjgrXjg4jjgqYs44Kz44Km44KtDQor44K144OI44KmLOODpuODn+OCsw0KK+OCteODjizjgrfjg44NCivjgqTjgrfjgrDjg60s44OS44OH44K/44KrDQor44K144Ov44Ok44OK44KuLOODn+ODhOODkuODrQ0KK+OCt+OCquOCvyzjgrHjgqTjgrnjgrENCivjgrfjgq0s44Om44Km44KzDQor44K344Ky44Kq44KrLOODrOOCpA0KK+OCt+OCsuOCvyzjg57jg6Ljg6sNCivjgrfjgrfjg4ks44Oq44KrDQor44K344OK44OALOODqOOCt+OCsw0KK+OCpOODhyzjg6jjgrfjg5Xjg58NCivjgrfjg5Djgr8s44Oo44Km44KzDQor44K344OQ44K/LOOCouODquODkuODiA0KK+OCt+ODkOOCvyzjg6rjg6fjgqYNCivjgrfjg5Djgr8s44K344Ol44Km44Kk44OBDQor44K344Oe44K6LOODouODiuODnw0KK+OCt+ODnuODgCzjg6jjgrfjgrXjg4ANCivjgrfjg57jgros44OE44ON44KqDQor44K344Of44K6LOODkuODh+OCv+ODgA0KK+OCt+ODn+OCuizjgq/jg4vjgqgNCivjgrfjg6Ljg4/jgrcs44OS44Ot44OO44OWDQor44K344Oi44Ok44OeLOOCq+OCquODqg0KK+OCuOODp+OCpizjgr/jgqvjgrcNCivjgqTjg4jjgqYs44Kt44On44Km44KzDQor44K544Ks44K/LOODjuODluOCqA0KK+OCueOCrOODpCzjgqLjgq3jg5Ljg60NCivjgrnjgq7jgr8s44K/44Kr44OS44OtDQor44K544Ku44OK44KrLOOCqOOCpOOCuA0KK+OCueOCruODouODiCzjg5Xjg5/jgqoNCivjgrnjgq7jg6Tjg54s44Kr44K644OKDQor44K544Ku44Ok44OeLOODpuOCpuOCuA0KK+OCueOCruODpOODnizjg4jjgqrjg6sNCivjgrnjgrLjg44s44K044KmDQor44K544K644KtLOOCs+OCpuOCuA0KK+OCueOCuuOCrSzjg57jgrXjg5Ljg60NCivjgrnjgrrjgq0s44OS44OH44Ki44KtDQor44K544K644KtLOOCs+OCpuOCuA0KK+OCueOCuuOCrSzjg6bjgqbjgrMNCivjgqTjg6/jgrXjgq0s44OI44Oi44OV44OfDQor44K544K644KtLOODqOOCpuOCsw0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgqTjg4Hjgqvjg68s44Oq44KrDQor44K744KtLOODnuOCteODqOOCtw0KK+OCu+OCreOCsOODgSzjgrHjgqTjgrMNCivjgrvjgq3jg6Qs44Kx44Oz44K4DQor44K744KzLOOCseODs+OCv+ODreOCpg0KK+OCu+ODqSzjg5Ljg63jg6bjgq0NCivjgr3jgqws44Om44KrDQor44K944KsLOOCqOOCpOOCsw0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgqvjg5/jg6Qs44Kr44K544OfDQor44K944Oz44KvLOODiOOCt+OCq+OCug0KK+OCv+OCq+OCrSzjg6bjg5/jgrMNCivjgr/jgqvjgq4s44Oo44K344OP44OrDQor44K/44Kr44K144KtLOODpOOCueOCqg0KK+OCpOOCseODgCzjg5Ljg4jjgrcNCivjgr/jgqvjgrfjg54s44Ok44K544OS44OIDQor44K/44Kr44OOLOOCseODs+OCpOODgQ0KK+OCv+OCq+ODjizjg5Ljg4fjgq0NCivjgr/jgqvjg44s44Oe44Kt44KzDQor44K/44Kr44OOLOODiuOCquODkuODrQ0KK+OCv+OCq+ODjizjg6jjgrfjg5LjgrUNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44K/44Kr44OP44K3LOOCs+OCpuODmOOCpA0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcs44Ks44KvDQor44K/44Kr44OP44K3LOOCq+ODig0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg47jg6oNCivjgr/jgqvjg57jg4Qs44OS44Ot44K3DQor44K/44Ks44OfLOODkuODiOOCtw0KK+OCv+OCq+ODn+OCtuODryzjg6rjg6Xjgqbjgq0NCivjgr/jgqvjg6njg4As44K344Oz44Kk44OBDQor44K/44Kt44Kr44OvLOOCqOODn+OCsw0KK+OCv+OCreOCtuODryzjgqTjg6/jgqoNCivjgqTjgqTjg44s44Om44OfDQor44K/44Kx44KkLOODqOOCt+ODkuODrQ0KK+OCv+OCseOCpuODgSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgr/jgrHjgqbjg4Es44K/44Kr44Kt44OoDQor44K/44Kx44Kt44K/LOODnuOCrQ0KK+OCv+OCseODiuOCqyzjg5Xjg5/jgqoNCivjgr/jgrHjg47jgqbjg4Es44Oq44On44Km44K4DQor44K/44Kx44OP44OKLOODleODnw0KK+OCpOODiOOCpizjg4jjgq/jgrMNCivjgr/jgrHjg6Ljg4gs44Oe44K144OrDQor44K/44Kx44Oi44OILOOCq+OCuuODkuOCsw0KK+OCv+OCtCzjgrnjgrnjg6ANCivjgr/jgrXjgqss44Oo44K344OO44OWDQor44K/44K444OeLOODkuODreOCq+OCug0KK+OCv+OCt+ODrSzjg6jjgrfjgrMNCivjgr/jgrfjg60s44K044KmDQor44K/44K/44OpLOOCteODiuOCqA0KK+OCv+ODgeODkOODiizjgqLjg6TjgrMNCivjgqTjg4Hjg6Djg6ks44K144OI44K3DQor44K/44OG44Kk44K3LOODpuOCrQ0KK+OCv+ODhuODjizjg5LjgrXjgrcNCivjgr/jg4bjg44s44OA44Kk44K+DQor44K/44OK44KrLOOCseODs+OCpOODgeODrQ0KK+OCv+ODiuOCqyzjg57jgrXjg5Ljg60NCivjgr/jg4rjgqss44OK44Kq44KzDQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjgrMNCivjgr/jg4rjgqss44Ok44K544K3DQor44K/44OK44KrLOODqOOCpuOCsw0KK+OCrOODnyzjg57jgrPjg4gNCivjgr/jg4rjg58s44OE44ON44KqDQor44K/44OLLOODnuODnw0KK+OCv+ODi+OCsOODgSzjg6bjg5/jgrMNCivjg4rjgqvjgqrjgqss44Om44KtDQor44K/44OL44K244OvLOODqOOCt+ODjuODqg0KK+OCv+ODi+ODgCzjg47jg5bjg6bjgq0NCivjgr/jg4vjg6Ljg4gs44Ki44Kt44OfDQor44K/44OO44Kq44KrLOODn+OCqOOCsw0KK+OCv+ODkOOCvyzjg57jgrXjgq0NCivjgr/jg4/jg6ks44Of44Kr44KzDQor44K/44Og44OpLOODpuOCreODkuODrQ0KK+ODgeOCq+OCtuODryzjg47jg6rjg5Ljg4gNCivjg4Hjg44s44K/44Kr44OO44OWDQor44OB44OP44OpLOODkuOCteODjg0KK+ODgeODpeOCpizjgrXjg6TjgqsNCivjg4Hjg6Xjgqbjg54s44Kx44Kk44Kk44OBDQor44OE44Kr44OALOODkuODh+OCv+OCsQ0KK+ODhOOCq+ODouODiCzjg47jg5bjgr/jgqsNCivjg4Tjgqvjg6Ljg4gs44Om44K/44KrDQor44OE44OALOODiOODouODjuODqg0KK+ODhOODgeODgCzjg57jgrXjgqoNCivjg4Tjg4Hjg6Qs44K744Os44OKDQor44OE44OB44OkLOOCouOCrQ0KK+ODhOODjeOCrSzjgq/jg5/jgrMNCivjg4fjg5/jgrss44K/44Kr44K3DQor44OG44Op44Kq44KrLOOCq+ODiuOCsw0KK+OCpOOCuuODnyzjgqLjg4TjgrcNCivjg4jjgqYs44K744Kk44K4DQor44OI44K4LOODnuOCteOCsw0KK+ODiOOCt+OCquOCqyzjg5/jgrnjgroNCivjg4jjg4As44OP44OK44KoDQor44OI44OT44OK44KkLOOCouOCreOCsw0KK+ODiOODouOCpCzjg5/jg43jgq0NCivjg4jjg6Tjg54s44Ki44Kk44KzDQor44OI44Oo44K344OeLOOCs+OCpuOCpOODgQ0KK+ODiOODqOODgCzjgr/jgq/jg6QNCivjg4jjg6jjg4/jg54s44OI44K344KqDQor44OK44Ks44KoLOOCseODs+OCuA0KK+ODiuOCrOOCqCzjgrfjg5sNCivjg4rjgqvjgqos44OI44Oi44OS44OHDQor44OK44Kr44KqLOOCseODs+OCv+ODreOCpg0KK+ODiuOCq+OCuOODnizjg4jjg6LjgrMNCivjg4rjgqvjgrjjg54s44Oo44K344K/44KrDQor44OK44Kr44K444OeLOODhOODqOOCtw0KK+ODiuOCrOOCt+ODnizjg57jg6oNCivjg4rjgqzjgrss44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44K+44OOLOOCuOODpeODs+OCsw0KK+ODiuOCq+OCvyzjgqLjgrXjgrMNCivjg4rjgqzjgr8s44Oo44K344OS44KzDQor44OK44Ks44OILOODnuODquOCsw0KK+ODiuOCq+ODi+OCtyzjgrLjg7MNCivjg4rjgqvjg44s44Oo44K344KzDQor44OK44Ks44OOLOODkuODreOCrQ0KK+ODiuOCrOODjizjgr/jgqvjgrcNCivjg4rjgqzjg44s44OG44OE44OkDQor44OK44Ks44OP44OpLOODqOOCt+ODpuOCrQ0KK+ODiuOCq+ODkuOCrOOCtyzjg6HjgrDjg58NCivjg4rjgqvjg6Djg6ks44Kt44OV44OfDQor44Kk44OM44K644KrLOODiOODouOCq+OCug0KK+ODiuOCq+ODoOODqSzjg5Xjg5/jgq0NCivjg4rjgqvjg6Djg6ks44OS44OI44K3DQor44OK44Kr44Og44OpLOODn+ODmw0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqvjg4QNCivjg4rjgqvjg6Qs44Om44K/44KrDQor44OK44Kr44OkLOOCseOCpA0KK+ODiuODqeOCteOCrSzjg47jg5bjg4rjg6oNCivjg4rjg6rjgr8s44Oq44Ol44Km44K/DQor44OK44Oq44K/LOODqOOCt+OCsw0KK+ODi+OCpOODgCzjg4jjg6LjgqLjgq0NCivjg4vjgrfjgqvjg68s44Kk44Ov44KqDQor44OL44K344Og44OpLOODgeOCruODqg0KK+ODi+OCt+ODoOODqSzjgr/jgqTjgqTjg4ENCivjg4vjgrfjg6Djg6ks44Kr44OE44OfDQor44OL44K344Ok44OeLOODiOOCquODqw0KK+ODi+OCt+ODpOODnizjg47jg6rjg57jgrUNCivjg4vjg6Djg6ks44OS44Ot44Om44KtDQor44OL44OvLOODpuOCreOCqA0KK+ODjOODnuOCvyzjg4rjgqrjgrMNCivjg4zjg57jgr8s44K/44Kr44OS44OtDQor44OM44Oe44OALOODhOODqOOCtw0KK+ODjeOCruOCtyzjgqTjgrXjgqoNCivjg47jgrbjgq0s44K/44Kr44OK44KqDQor44OO44Ks44OfLOODpuOCqw0KK+ODjuODgCzjgr/jg4Tjg6QNCivjg47jg4/jg6ks44OE44Oo44K3DQor44OO44OW44OP44OpLOODpuOCpuOCsw0KK+ODj+OCrCzjg57jgrXjg4gNCivjg4/jgq7jg6/jg6ks44K/44OA44Kr44K6DQor44OP44Ku44Ov44OpLOOCq+ODhOODqQ0KK+ODj+OCt+OCuuODoSzjgr/jgqvjgrcNCivjg4/jgrfjg6Ljg4gs44K/44Kr44Om44KtDQor44OP44K344Oi44OILOOCveODqOOCqw0KK+ODj+OCt+ODouODiCzjgqLjgq3jg6kNCivjg4/jgrvjgqzjg68s44Oe44Kz44OIDQor44OP44K744Ks44OvLOODnuODpuODnw0KK+ODj+OCu+OCrOODryzjgqvjgrrjgr/jgqsNCivjg4/jgrvjg5ks44Oo44Km44OY44KkDQor44OP44K/LOODnuOCteODkuODrQ0KK+ODj+OCv+OCseODpOODnizjg4/jgrrjgq0NCivjg4/jgr/jg4rjgqss44Kk44Kv44K+44KmDQor44OP44K/44OOLOOCouODhOODqA0KK+ODj+ODg+ODiOODqizjgqLjgq3jg6jjgrcNCivjg4/jg4rjgrbjgq0s44K/44OE44OkDQor44OP44OK44OW44K1LOOCquOCteODoA0KK+ODj+ODiuODoOODqSzjgrTjgqYNCivjg5Djg5As44Ki44Kt44KzDQor44OP44Oe44K144KtLOODqOOCt+ODpuOCrQ0KK+ODj+ODnuODgCzjg4TjgrDjgq0NCivjg4/jg6Tjgrcs44Oe44OK44OWDQor44OP44Ok44K3LOOCv+OCseODkuODrQ0KK+ODj+ODpOOCtyzjg57jgrPjg4gNCivjg4/jg6Tjgrcs44Oq44On44KmDQor44OP44OpLOODnuOCteODkuODhw0KK+ODj+ODqeOCt+ODnizjgqrjgrXjg6ANCivjg4/jg6njg4As44OK44Kq44OkDQor44OP44Op44OALOODquOCqA0KK+ODj+ODq+OCv+ODiyzjgr/jgqvjg5Ljg60NCivjg5Ljgqzjgrfjg44s44Oe44KtDQor44OS44Ks44K344Ok44OeLOODpuOCpg0KK+ODkuOCsOODgSzjgrfjgrLjg5/jg4QNCivjgqTjgrfjg4/jg6ks44K/44Kx44Oo44K3DQor44OS44K444Kr44K/LOODkuODreOCouOCrQ0KK+ODkuODkyzjgr/jg4Tjg4gNCivjg5Ljg6fjgqbjgqgs44OI44Oi44OS44OtDQor44OS44Op44KkLOODkuODh+ODjuODqg0KK+ODkuODqeOCq+ODryzjgrjjg6Xjg7Pjg6QNCivjg5Ljg6njgq8s44K344Ky44KtDQor44OS44Op44K144OvLOOCseODs+OCuA0KK+OCpOODjuODj+ODqSzjgr/jgq/jg5Ljg60NCivjg5Ljg6njgr8s44Kv44OL44OE44KwDQor44OS44Op44OM44OeLOOCq+OCuuOCqg0KK+ODkuODqeODjizjgr/jg63jgqYNCivjg5Ljg6njg6Tjg54s44K344Ky44OrDQor44OS44Ot44Km44OBLOODrOOCpA0KK+ODkuODreOCquOCqyzjg6bjgqvjgrMNCivjg5Ljg63jgqvjg68s44Kx44Oz44K/44Ot44KmDQor44OV44Kv44KkLOODnuOCteOCrQ0KK+ODleOCr+ODgCzjgr/jgqvjg5Ljg60NCivjg5Xjgq/jg4As44K544K544OgDQor44Kz44OqLOOCreODp+OCpuOCsw0KK+ODleOCuOOCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5XjgrjjgqQs44OA44Kk44K+DQor44Kk44OHLOODgeOCqOOCsw0KK+ODleOCuOOCpCzjg5Ljg63jgqvjgroNCivjg5Xjgrjjgqos44K/44Kr44Om44KtDQor44OV44K444Kq44KrLOOCseODs+OCpOODgQ0KK+ODleOCuOOCr+ODqSzjgq3jgq/jgrMNCivjg5XjgrjjgrXjg68s44Kz44Km44K4DQor44OV44K444K144OvLOOCseODs+OCv+ODreOCpg0KK+ODleOCuOOCt+OCsizjgrHjgqTjgqTjg4ENCivjg5Xjgrjjgr8s44Kx44Oz44Kk44OBDQor44Kk44OO44Km44KoLOODjuODquOCqg0KK+ODleOCuOODiCzjg6bjgqsNCivjg5Xjgrjjg4rjgqws44OK44Ks44Oe44K1DQor44OV44K444Ov44OpLOODiOODouODj+ODqw0KK+ODleOCuOODr+ODqSzjg4jjgrfjgq0NCivjg5Xjgrss44Kr44Kq44OrDQor44OV44Or44Kr44OvLOODnuOCteODn+ODhA0KK+ODleODq+OCq+ODryzjg6bjgqbjgqTjg4ENCivjgqTjgrfjgqQs44OA44Kk44K544KxDQor44OV44Or44K144OvLOODkuODreOCrQ0KK+ODleODq+OCvyzjgrPjgqbjgqTjg4ENCivjg5Xjg6vjgr8s44Oo44K344Ki44KtDQor44OV44Or44K/LOODiuOCquOCsw0KK+ODleODryzjg5/jgqoNCivjg5vjgrcs44Oe44Om44OfDQor44Ob44K944OALOOCseOCpOOCueOCsQ0KK+OCpOOCt+OCpCzjg5Ljg63jg5/jg4ENCivjg5vjg6rjgqvjg68s44OK44Kq44KzDQor44Ob44Oq44Kz44K3LOODkuODreOCouOCrQ0KK+ODm+ODs+ODgCzjg47jg5zjg6sNCivjg57jgqjjgqvjg68s44Or44OfDQor44Oe44Ko44OALOODn+ODiuOCsw0KK+ODnuOCqOODgCzjgr/jg63jgqYNCivjg57jgqjjg4As44K/44Kr44K3DQor44Oe44Ko44OOLOOCteODiOOCtw0KK+ODnuOCrSzjg4rjg58NCivjg57jgq3jgr7jg44s44K144Ok44KrDQor44Oe44Kt44K/LOOCq+ODhOODpuOCrQ0KK+ODnuOCreODjizjg6Djg43jgq0NCivjg57jgrXjgq0s44Om44K644OrDQor44Oe44K544K244KtLOODqOOCt+OCsw0KK+ODnuOCueODgCzjg6bjgqbjgrnjgrENCivjg57jgrnjg5bjg4Es44Kr44K644OS44OtDQor44Oe44OB44OALOODn+ODpuOCrQ0KK+ODnuODhOOCpuODqSzjgqjjg6rjgrMNCivjg57jg4Tjgqvjg68s44Oi44OI44OoDQor44Oe44OE44K244KtLOODgOOCpOOCueOCsQ0KK+ODnuODhOOCtuOCrSzjg57jgq0NCivjg57jg4Tjgrfjgr8s44Kz44K644KoDQor44Oe44OE44K344OeLOODkuODh+OCqg0KK+ODnuODhOODgCzjgrfjgrLjg6bjgq0NCivjg57jg4Tjg4As44K/44Kr44K3DQor44Oe44OE44OALOOCouODpuODnw0KK+ODnuODhOODiuOCrCzjgr/jgqvjgrcNCivjg57jg4Tjg4rjg58s44Kz44Km44K4DQor44Oe44OE44OQ44OpLOODjuODquODleODnw0KK+ODnuODhOODkOODqSzjgrXjg4jjg58NCivjg57jg4Tjg5/jg6Qs44Kx44Oz44Kk44OBDQor44Oe44OE44Oi44OILOODnuOCs+ODiA0KK+ODnuODhOODouODiCzjgqvjgrrjg5Ljg4cNCivjg57jg4Tjg6Ljg4gs44K/44Kx44OV44OfDQor44Oe44OE44Oi44OILOODpuOCpuOCueOCsQ0KK+ODnuODhOODouODiCzjg5Ljg63jgrMNCivjg57jg4Tjg6Tjg54s44OB44K644KzDQor44Oe44OK44OZLOODquODp+OCpuOCueOCsQ0KK+ODnuODq+ODpOODnizjg57jgrXjgq0NCivjg57jg6vjg6Tjg54s44OS44Ot44KtDQor44Of44Km44OpLOODpOOCueODn+ODhA0KK+ODn+OCr+ODiyzjg5Xjg5/jg4rjg6oNCivjg5/jgrrjgqvjg58s44OS44OH44KtDQor44Of44OE44OP44K3LOODjuODquODqOOCtw0KK+ODn+ODiuODiCzjg5Ljg63jg6bjgq0NCivjg5/jg4rjg58s44K/44Kr44Om44KtDQor44Of44OV44ONLOODqOOCt+ODkuODrQ0KK+ODn+ODpOOCrOODryzjg57jgrXjgrcNCivjg5/jg6TjgrXjgqss44K344OO44OWDQor44Of44Ok44K244OvLOOCuOODpeODsw0KK+ODoOODqeOCqizjg57jgrXjgrMNCivjg6Djg6njgqvjg58s44Oe44K144OfDQor44Og44Op44K/LOOCseODs+OCueOCsQ0KK+ODoOODqeODnuODhCzjg47jg5bjg6bjgq0NCivjg6Djg6njg6Tjg54s44OI44K344KqDQor44Og44Op44Ok44OeLOOCq+OCuuOCouOCrQ0KK+ODoeOCsOODrSzjg4jjg6Ljg5LjgrMNCivjg6Ljg4Hjgrrjgq0s44Kz44Km44Kk44OBDQor44Oi44OI44Oo44K3LOODnuOCs+ODiA0KK+ODouODouOCuizjg6bjgq3jgrMNCivjg6Ljg6os44Oe44K144KtDQor44Oi44OqLOODpOOCueOCv+OCqw0KK+ODouODqizjg5/jg5sNCivjg6Ljg6os44K/44Oe44OoDQor44Oi44Oq44K/LOOCseODs+OCuA0KK+ODouODquOCvyzjgrHjg7PjgqTjg4Hjg60NCivjg6Ljg6rjg44s44Of44OB44KqDQor44Oi44Oq44Oi44OILOOCv+OCq+OCtw0KK+ODouODquODouODiCzjg6bjgq3jgrMNCivjg6Ljg6rjg6Tjg54s44Kr44K644Om44KtDQor44Oi44Oq44Ov44KtLOODleODn+OCouOCrQ0KK+ODpOOCrizjgrHjgqTjgrnjgrENCivjg6Tjgq4s44Om44K/44KrDQor44Ok44Kv44K344K4LOOCquOCteODoA0KK+ODpOOCsyzjg4Tjg6jjgrcNCivjg6Tjgrbjg68s44Kx44Oz44Kk44OBDQor44Ok44K544OeLOOCseODs+OCuOODreOCpg0KK+ODpOODiOOCtCzjgqLjgqQNCivjgqzjg7Ms44OP44OK44KoDQor44Ok44OK44OWLOOCteODiOOCtw0KK+ODpOODjizjgrfjg6XjgqbjgrPjgqYNCivjg6Tjg5bjgr8s44OS44Ot44K3DQor44Ok44Oe44Km44OBLOODpuOCreOCsw0KK+ODpOODnuOCpuODgSzjg5/jg4Tjg4/jg6sNCivjg6Tjg57jgrDjg4Es44Oq44On44KmDQor44Ok44Oe44Kw44OBLOODpOOCueODnuOCtQ0KK+ODpOODnuOCsOODgSzjg4rjgqrjgrMNCivjgrjjg4DjgqQs44OS44Ot44Ki44KtDQor44Ok44Oe44Kw44OBLOOCqOOCpOOCvw0KK+ODpOODnuOCsOODgSzjgrvjgqTjgrMNCivjg6Tjg57jgrDjg4Es44Kz44Km44K4DQor44Ok44Oe44K144KtLOODpOOCueODkuODrQ0KK+ODpOODnuOCteOCrSzjgrjjg6Xjg7MNCivjg6Tjg57jgrbjgq0s44Ki44OE44OkDQor44Ok44Oe44K344K/LOOCq+OCuuODkuODrQ0KK+ODpOODnuOCt+OCvyzjg57jgrXjg4gNCivjg6Tjg57jgrfjgr8s44K/44Kv44OkDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODpOODnuODgCzjg6TjgrnjgqoNCivjg6Tjg57jg4As44K/44OE44K4DQor44Ok44Oe44OALOODpOOCueODkuOCtQ0KK+ODpOODnuODgCzjgq3jg6fjgqbjgrMNCivjg6Tjg57jg4jjg6Qs44Oe44Oq44KzDQor44Ok44Oe44OK44KrLOODkuODleODnw0KK+ODpOODnuODiuOCtyzjgrjjg6Xjg7MNCivjg6Tjg57jg4vjgrcs44OK44Kq44KtDQor44Ok44Oe44Oi44OILOODgeOCqw0KK+ODpOODnuODouODiCzjgqvjgrrjg6QNCivjg6Tjg57jg6Ljg4gs44Oq44KrDQor44Ok44Oe44Oi44OILOODnuODiuODnw0KK+ODpOODnuODouODiCzjg6jjgqbjgrnjgrENCivjg6Tjg57jg6Ljg4gs44K/44OE44OkDQor44Oo44Kz44K/LOODiOODouODleODnw0KK+ODqOOCs+OCvyzjgrfjgrLjg6bjgq0NCivjg6jjgrPjgr8s44Kr44OoDQor44Oo44Kz44OGLOOCu+OCpOOCpOODgeODreOCpg0KK+ODqOOCt+OCquOCqyzjgr/jgqvjgrcNCivjg6jjgrfjgqrjgqss44Ki44OE44K3DQor44Oo44K344Kq44KrLOODkuODh+ODiA0KK+ODqOOCt+OCq+ODryzjgr/jgq/jg6QNCivjg6jjgrfjgqvjg68s44Oq44On44Km44Kk44OBDQor44Oo44K344OALOODnuOCteODpuOCrQ0KK+ODqOOCt+ODgCzjgrjjg6Xjg7PjgrMNCivjg6jjgrfjg4As44Ki44Kr44ONDQor44Oo44K344OOLOODn+ODjuODqw0KK+ODqOOCt+ODnyzjg57jgrXjg6bjgq0NCivjg6jjgrfjg6Djg6ks44Kv44OL44OS44KzDQor44Oo44OALOODjuODquODkuOCtQ0KK+ODqOODjeOCtuODryzjgqLjg6njgr8NCivjg6rjg6Xjgqbjg4gs44Kx44KkDQor44Ov44Kr44OE44KtLOOCt+ODs+OCueOCsQ0KK+ODr+OCreOCtuOCqyzjgrfjg7Pjg6QNCivjg6/jgq3jgr8s44Om44Km44K544KxDQor44Ov44Kt44K/LOODiOOCquODqw0KK+ODr+OCreODouODiCzjgrfjg6fjgqbjgrMNCivjg6/jg4As44K/44Kr44K3DQor44Ov44OALOOCouOCreOCsw0KK+ODr+OCv+OCuyzjg4DjgqQNCivjg6/jgr/jg4rjg5ks44Ok44K544OP44OrDQor44Ov44K/44OK44OZLOOCveOCpg0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44OK44Kq44KzDQor44Ov44K/44OK44OZLOODqOOCt+OCv+OCqw0KK+OCreODjuOCt+OCvyzjg6bjgqbjgrMNCivjgqLjgqrjgq0s44Oo44K344OS44KzDQor44Ok44OK44Ku44OP44OpLOOCreODqOOCtw0KK+OCouODnuOCsyzjg6jjgrfjgqoNCivjgrPjg7Pjg4njgqYs44K344Kq44OqDQor44K344Op44Kr44OvLOODqOOCpuOCsw0KK+OCs+ODpOODnizjgr/jgqvjg6bjgq0NCivjgrPjg7Pjg4ks44Oe44Kz44OIDQor44Oi44OqLOODiOOCt+OCqg0KK+OCquOCquODjizjg5Ljg4fjg6jjgrcNCivjg57jg44s44Ki44KtDQor44OK44Ks44OOLOOCueODn+OCsw0KK+OCteODiOOCpizjgqjjg6oNCivjg5/jg6Tjgrbjgq0s44Ki44OkDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCreODoOODqSzjg5Ljg4fjg4jjgrcNCivjg6jjgrPjgqos44Kx44Oz44K4DQor44Km44OB44Og44OpLOODgeODiuODhA0KK+OCtOOCt+ODnizjg6rjg6XjgqbjgqTjg4ENCivjgrXjgqjjgq0s44Of44KtDQor44OK44Kr44K444OeLOODkuODreODnw0KK+OCpOODr+ODnyzjg5/jg5sNCivjgqjjgrIs44Os44KkDQor44Km44Oh44K+44OOLOOCq+OCquODqg0KK+OCteOCr+ODqeOCpCzjg57jg58NCivjg6/jgr/jg4rjg5ks44Oe44OkDQor44OK44Ks44KkLOOCt+ODp+OCpuOCtA0KK+OCquOCveOCrOODnyzjgqLjg4Tjg5LjgrMNCivjgq/jg63jgqvjg68s44Oe44K144Oo44K3DQor44K/44Kr44K544KrLOODqOOCt+OCq+OCug0KK+OCquODkOOCvyzjg57jgrXjg5LjgrMNCivjgrfjg6njgqQs44Om44K/44KrDQor44Oe44OE44Km44OpLOODnuOCs+ODiA0KK+ODiuOCq+OCtuODryzjg6jjgrfjg5LjgrUNCivjg57jg4TjgqQs44Om44Km44Kk44OBDQor44Kz44K744KtLOOCs+OCpuOCv+ODreOCpg0KK+ODhOOCq+ODgCzjg47jg6rjg6bjgq0NCivjg4bjg6njgq/jg6ks44Oo44Km44K4DQor44OL44OY44KkLOOCreODqOOCtw0KK+OCq+ODr+ODoOODqSzjgr/jgqvjg6bjgq0NCivjg5LjgrQs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCreODqOODjuODqg0KK+ODleODq+OCvyzjgr/jgqvjg6bjgq0NCivjg6Ljg4Hjgrrjgq0s44OS44Ot44Om44KtDQor44Kq44Kr44OALOOCv+ODhOOCtw0KK+OCteOCpOODiOOCpizjg6bjgq3jgrMNCivjgqvjg6/jg4/jg6ks44Om44KtDQor44K544K644Kr44KxLOOCv+OCr+ODpA0KK+OCpOODiOOCpizjgqLjg4TjgrMNCivjgqTjgrfjgrrjgqss44OS44K144OIDQor44K/44OZ44KkLOODpOOCueODnuOCtQ0KK+OCtOODiOOCpizjgqLjgq3jg5Ljg60NCivjgrfjg6LjgrXjgqss44OI44Kq44OrDQor44Kr44Ov44KkLOOCq+OCuuODng0KK+ODr+OCv+ODiuODmSzjg6jjgrfjgqvjgroNCivjgrnjgrrjgq0s44Kk44OE44OV44OfDQor44Oe44OE44Ok44OeLOODkuODreOCtw0KK+ODj+ODqSzjg6rjg6fjgqbjg5jjgqQNCivjg4Tjg5Djgq0s44K744Kk44Kk44OB44Ot44KmDQor44Ok44K544KkLOOCv+OCq+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrHjg7Pjgr/jg63jgqYNCivjgqrjgqvjg5ks44K144Om44OqDQor44Kq44Ks44OvLOOCt+ODp+OCpuOCsw0KK+ODpOODnuOCsOODgSzjgrXjg4jjgrcNCivjg5Xjgrjjgqvjg68s44Kx44Oz44K4DQor44Kk44OK44Ks44KtLOODkuODh+ODiOOCtw0KK+ODgeOCvizjg4jjgrfjg5LjgrMNCivjg4/jg4rjg4As44K444Ol44Oz44OkDQor44Kq44Kq44KzLOODouODiOOCouOCrQ0KK+OCquOCquOCr+ODqSzjgrnjg5/jg5Ljg60NCivjg57jg4Tjgqos44OE44OI44OgDQor44Ko44Oz44OJLOODnuODquOCsw0KK+ODm+ODquODmSzjg6Ljg4jjgrgNCivjgqvjg4Qs44OG44OE44OS44OtDQor44Kq44K/44KrLOODnuOCteODjuODlg0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjg6QNCivjg6Djg6njg6Tjg54s44Om44Km44KzDQor44Oo44K344Kq44KrLOOCteODpuODqg0KK+OCq+OCpCzjg6jjgrfjgqgNCivjgr/jgqvjg4/jgrcs44Ov44Kr44KzDQor44Kw44Oz44KyLOOCv+ODnuODqA0KK+ODpOODjizjgr/jgqQNCivjg4/jg6Tjgrcs44Ki44Ok44KzDQor44Of44Km44OpLOODnuODiuODnw0KK+OCouOCquODpOOCrizjg5Ljg63jgr/jgqsNCivjgr/jgqvjg4As44OI44Kv44OS44KzDQor44OM44Oe44K/LOOCseODs+OCuA0KK+OCq+OCv+OCquOCqyzjgqvjgqrjg6sNCivjgrfjg5/jgros44K144OB44KzDQor44K344Of44K6LOODpuOCpuOCsw0KK+ODnuODhOODoOODqSzjgr/jg63jgqYNCivjgqrjg6rjg4gs44K144OI44K3DQor44Kz44K/44OLLOODleODn+ODkuOCsw0KK+OCquOCquODj+OCtyzjg6rjg6fjgqYNCivjgqvjg7Pjgrvjgq0s44Kx44Kk44KzDQor44Kt44K/44Og44OpLOOCs+OCpuOCv+ODreOCpg0KK+OCteOCr+OCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6jjgrfjg4As44K/44Kr44K3DQor44Kz44OP44OpLOODiOOCquODqw0KK+OCpOODj+ODqSzjgrHjgqTjgrMNCivjg4Tjgrjjgqbjg6ks44Kr44K644OS44OtDQor44OK44Kr44Og44OpLOODhOODqOOCtw0KK+OCouOCquOCrSzjgqLjgq3jgrMNCivjgqLjgqrjg6Tjg54s44OA44Kk44K544KxDQor44Ki44Kr44Kk44KxLOODkuODreODnw0KK+OCouOCq+ODhCzjgrjjg6Xjg7MNCivjgqLjgq3jg4/jg6ks44K344Ol44Oz44K544KxDQor44Ki44Kt44Oi44OILOODnuODqg0KK+OCouOCteOCr+ODqSzjgr/jgqvjgrcNCivjgqLjgrXjg44s44Oq44On44KmDQor44Ki44OT44OrLOOCouOCpOOCsw0KK+OCouODmSzjg47jg6rjgr/jgqsNCivjgqLjg5ks44Om44KtDQor44Ki44OZLOOCv+OCr+ODpA0KK+OCouODmeOCq+ODryzjg4jjg6LjgrMNCivjgqLjg6njgqQs44OO44Oq44OS44OIDQor44Ki44Op44KkLOODnuOCteODiOOCtw0KK+OCouODqeOCq+ODryzjg5Ljg63jgq0NCivjgqLjg6njgq0s44K/44Kr44Ki44KtDQor44Ki44Op44KtLOODkuODreOCtw0KK+OCouODquOCqCzjg57jgrXjg5Xjg58NCivjgqLjg7Pjg4njgqYs44Kx44Oz44K/44Ot44KmDQor44Kk44Kk44OALOOCuOODpeODs+OCpOODgQ0KK+OCpOOCseODgCzjgrfjg6Xjg7PjgrnjgrENCivjgqTjgrHjg4As44K/44Kx44K3DQor44Kk44Kx44OALOODiuOCquOCrQ0KK+OCpOOCt+OCpCzjg47jg5bjg6TjgrkNCivjgqTjgrfjgqQs44OP44Ok44OIDQor44Kk44K344Ks44KtLOODn+ODpOOCsw0KK+OCpOOCt+OCq+ODryzjg6bjgq0NCivjgqTjgrfjgqvjg68s44Om44Of44KzDQor44Kk44K344K244OvLOODhuODq+OCrQ0KK+OCpOOCt+OCuuODnyzjgrfjg6Xjgqbjg5jjgqQNCivjgqTjgrfjgrzjgq0s44OA44Kk44K544KxDQor44Kk44K344OALOODpuOCpuOCuA0KK+OCpOOCt+ODgCzjg6zjgqTjgrMNCivjgqTjgrfjg4As44Oo44K344K/44KrDQor44Kk44K344OFLOOCv+OCq+OCtw0KK+OCpOOCt+ODj+ODqSzjg5Xjg5/jg4rjgqoNCivjgqTjgrfjg57jg6ss44K344Ol44Km44Kk44OBDQor44Kk44K/44OLLOOCv+OCq+OCtw0KK+OCpOOCv+ODj+ODqSzjg5LjgrXjg4TjgrANCivjgqTjg4Hjg54s44OK44Kq44OIDQor44Kk44OI44KmLOODpuOCpuOCsw0KK+OCpOODiOOCpizjg6bjgqbjgqTjg4Hjg63jgqYNCivjgqTjg4jjgqYs44OS44Ot44Kr44K6DQor44Kk44OI44KmLOOCouOCreOCsw0KK+OCpOODiOOCpizjgrfjgrrjgrMNCivjgqTjg4jjgqYs44Kq44KtDQor44Kk44OI44KmLOODhOODqOOCtw0KK+OCpOODiOOCpizjg5Ljg63jg6bjgq0NCivjgqTjg4rjgqzjgq0s44K344Ky44KtDQor44Kk44OK44OfLOODrOOCqg0KK+OCpOODjizjg5/jgq0NCivjgqTjg47jgqbjgqgs44Oe44K144KtDQor44Kk44OO44Km44KoLOOCv+OCq+OCtw0KK+OCpOODnuOCqizjgrjjg6Xjg7Pjg5rjgqQNCivjgqTjg57jg4As44Kx44Oz44Kk44OBDQor44Kk44Ov44Kr44OfLOODpuOCpuOCueOCsQ0KK+OCpOODr+OCr+ODqSzjg6bjgr/jgqsNCivjgqTjg6/jgrbjgq0s44OS44Ot44K/44KrDQor44Kk44Ov44K/LOOCs+OCpuOCuA0KK+OCpOODr+ODouODiCzjg5Ljg63jgq0NCivjgqbjgqjjgrnjgq4s44K444Ol44Oz44KzDQor44Km44Ko44OALOODnuOCteODpA0KK+OCpuOCqOOCv+OCqyzjgrfjg6fjgqbjgrgNCivjgqbjgqjjg4Es44Oe44OqDQor44Km44Ko44OOLOOCseODs+OCuA0KK+ODkuODquODpeOCpizjgrPjgqbjgrgNCivjgqbjgqjjg6Djg6ks44Oe44K144OS44OtDQor44Km44OB44OALOOCouODpA0KK+OCpuODgeODgCzjgq3jgqTjg4ENCivjgqbjg4Hjg4/jgrcs44K044KmDQor44Km44OB44Ok44OeLOODrOODnw0KK+OCpuODoeODj+ODqSzjg4rjg4TjgrMNCivjgqbjg6rjgr/jg4ss44Oe44K544OfDQor44Kq44Kk44Kr44OvLOOCseODs+OCv+ODreOCpg0KK+OCquOCquOCpCzjg4jjg6Ljg6bjgq0NCivjgqrjgqrjgqQs44Kr44Oo44KzDQor44Kq44Kq44Kk44K3LOODnuOCteODkuOCsw0KK+OCquOCpuODgSzjgrHjg7Pjgrfjg7MNCivjgqrjgqrjgqgs44OA44Kk44K544KxDQor44Kq44Kq44Kq44KrLOODnuOCteODkuODrQ0KK+OCquOCquOCq+ODryzjg57jgrXjg6QNCivjgqrjgqrjgq/jg5ws44Oq44On44KmDQor44Kq44Kq44Kv44OeLOODjuODquODkuODrQ0KK+OCquOCquOCvyzjg47jg5bjg5Ljg60NCivjgqrjgqrjgr/jg4ss44K344K644KrDQor44Kq44Kq44OELOODgeOCqA0KK+OCquOCquODhCzjg4bjg4Tjg6QNCivjgqrjgqrjg4Tjgqss44K444Ol44OzDQor44Kq44Kq44OE44KrLOODhuODq+ODkuODrQ0KK+OCquOCquODhOOCqyzjgqLjgq3jg6kNCivjgqrjgqrjg4Tjgqss44Kx44KkDQor44Kq44Kq44OE44OcLOODnuOCteODn+ODhA0KK+OCquOCquODj+OCvyzjgqLjgq3jgrMNCivjgqrjgqrjg57jgrUs44K/44OE44KqDQor44Kq44Kq44OkLOOCseOCpOOCuA0KK+OCquOCquODpOODnizjgr/jgqTjgrnjgrENCivjgqrjgqss44K/44Ot44KmDQor44Kq44Kr44K444OeLOODn+ODhOODjuODlg0KK+OCquOCq+ODgCzjgr/jg4Tjg6QNCivjgqrjgqvjg4As44OB44OS44OtDQor44Kq44Kr44OALOODjuODquODqOOCtw0KK+OCquOCq+ODgCzjgrXjg4jjgrcNCivjgqrjgqvjg4As44Or44OfDQor44Kq44Kr44OP44K/LOOCv+ODhOODpA0KK+OCquOCq+ODmSzjg6Tjgrnjg57jgrUNCivjgqrjgqvjg6Ljg4gs44OS44K144K3DQor44Kq44Kr44Oi44OILOODqOOCt+ODjuODqg0KK+OCquOCq+ODouODiCzjg5Ljg4fjgq0NCivjgqrjgqzjg68s44Kx44Kk44KzDQor44Kq44Ks44OvLOODgOOCpOOCueOCsQ0KK+OCquOCr+ODgCzjgrPjgqbjg5jjgqQNCivjgqrjgq/jg4gs44K144OBDQor44Kq44Kv44OK44KrLOOCu+OCpOOCtw0KK+OCquOCsOODqSzjgr/jg63jgqYNCivjgqrjgrbjgq0s44OO44OW44Ki44KtDQor44Kq44K144OALOODkuODreOCtw0KK+OCquOCtuODryzjg5Ljg63jg58NCivjgqrjgrjjg54s44Oe44Kz44OIDQor44Kq44K444OeLOODnuOCteOCtw0KK+OCquODkOODqSzjg6bjg6rjgrMNCivjgqvjgqTjg4jjgqYs44K/44Kr44K3DQor44Kr44Kt44Kv44OpLOODnuOCteODpuOCrQ0KK+OCq+OCreODouODiCzjg4bjg4Tjg6QNCivjgqvjgq8s44Kz44Km44K4DQor44Kr44Ky44Ok44OeLOOCv+ODgOODkuOCtQ0KK+OCq+OCuOODiuOCrCzjg6bjgr/jgqsNCivjgqvjgrfjg54s44Oo44K344OS44KzDQor44Kr44K/44Kq44KrLOOCv+OCq+ODkuODrQ0KK+OCq+OCv+OCruODqizjg4rjg4TjgrMNCivjgqvjgr/jg6Tjg54s44Oe44OS44OIDQor44Kr44OJLOODpuODn+OCsw0KK+OCq+ODiOOCpizjg6rjg4TjgrMNCivjgqvjg4jjgqYs44Oq44On44KmDQor44Kr44OI44KmLOODleODnw0KK+OCq+ODiOOCpizjg6zjgqTjgrMNCivjgqvjg4jjgqYs44K544Of44OsDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODiOOCpizjg4bjg4Tjg6QNCivjgqvjg4jjgqYs44K144OI44K3DQor44Kr44OI44KmLOODr+OCv+ODqw0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg4rjg6Ljg4gs44Ki44Kt44KzDQor44Kr44OK44OkLOOCt+ODs+ODpA0KK+OCq+ODjeOCsyzjg6jjgrfjgqvjgroNCivjgqvjg43jg6Ljg6os44Om44KmDQor44Kr44OvLOODqOOCt+OCq+OCug0KK+OCq+ODr+OCpCzjgrPjgqbjgrgNCivjgqvjg6/jgqQs44OP44Or44KzDQor44Kr44Ov44Kr44OfLOODnuOCteOCquODnw0KK+OCq+ODr+OCsOODgSzjg4HjgqvjgrMNCivjgqvjg6/jgrDjg4Es44K344Ol44Oz44K544KxDQor44Kr44Ov44Kw44OBLOODiOOCt+ODkuOCsw0KK+OCq+ODr+OCsOODgSzjg5Ljg63jgq0NCivjgqvjg6/jgrDjg4Es44K544K544OgDQor44Kr44Ov44K044Kk44K3LOOCv+OCq+ODpuOCrQ0KK+OCq+ODr+OCt+ODnizjgrTjg63jgqYNCivjgqvjg6/jg4os44K/44Kx44K3DQor44Kr44Ov44OO44OZLOODpuOCreOCsw0KK+OCq+ODs+ODjizjg6Tjgrnjg47jg5YNCivjgq3jgq/jg4Es44OO44K+44OfDQor44Kt44K3LOODrOOCpOOCsw0KK+OCreOCt+ODouODiCzjgr/jgrHjgrcNCivjgq3jgrfjg60s44Ok44K544K3DQor44Kt44K/44KqLOOCt+ODsw0KK+OCreOCv+ODj+ODnizjgr/jgrHjg47jg6oNCivjgq3jgr/jg6Djg6ks44Oo44K344OO44OqDQor44Kt44OJ44Kz44OtLOOCouODhOOCtw0KK+OCreODoOODqSzjgrPjgqbjgqTjg4ENCivjgq3jg6Djg6ks44Oe44Kz44OIDQor44Kt44Og44OpLOOCouOCpOOCsw0KK+OCreODquOCouOCsSzjgqjjgqTjgrXjgq8NCivjgq/jgq3jg6Ljg4gs44OI44K344KtDQor44Kv44OcLOOCr+ODi+ODpuOCrQ0KK+OCr+ODnOOCvyzjg57jg6bjg58NCivjgq/jg57jgq/jg6ks44Oq44KrDQor44Kv44Oe44OALOODpuOCpuOCueOCsQ0KK+OCr+ODnuODouODiCzjg5Ljg63jgqLjgq0NCivjgq/jg6Es44Oe44K144OS44OIDQor44Kv44Op44OkLOOCs+OCpuODmOOCpA0KK+OCr+ODquODr+OCrSzjg57jgq3jgrMNCivjgq/jg6/jg5Djg6ks44Om44Kr44OqDQor44K044KmLOODhuODq+OCqg0KK+OCs+OCpOOCsSzjgrXjg4jjg6sNCivjgrPjgqTjgrEs44Os44Kq44OKDQor44Kz44K144KrLOODoOODhOODnw0KK+OCs+OCpuODgCzjgqLjg6TjgrMNCivjgrPjgqws44Kz44Km44Kk44OBDQor44Kz44Kv44OcLOODouODouOCqA0KK+OCs+OCr+ODqSzjg6rjgqgNCivjgrPjgrQs44Oq44Ol44Km44K4DQor44Kz44K144KtLOODquODp+OCpuOCueOCsQ0KK+OCs+OCuOODnizjg5Ljg63jgrMNCivjgrPjg4fjg6ks44Kr44K644OIDQor44K044OI44KmLOODgOOCpOOCueOCsQ0KK+OCtOODiOOCpizjgrHjgqTjgrMNCivjgrTjg4jjgqYs44Kr44K644OO44OqDQor44Kz44OP44K/LOODgeODqOODnw0KK+OCs+ODkOODpOOCtyzjg4jjgqrjg6sNCivjgrPjg5Djg6Tjgrcs44OK44Ob44KzDQor44Kz44Oe44OE44OQ44OpLOODn+ODmw0KK+OCs+ODn+ODpCzjg4jjgq/jgrMNCivjgrPjg5/jg6Tjg54s44Oe44K144Oo44K3DQor44Kz44Ok44OK44KuLOOCt+ODs+ODpA0KK+OCs+ODpOODnizjgr/jgqvjgrMNCivjgrPjg7Pjg4ks44OO44OW44KrDQor44Kz44Oz44OOLOODjuODluODmw0KK+OCteOCpOODiOOCpizjg5Ljg63jg5Ljg4cNCivjgrXjgqTjg4jjgqYs44K344Ky44OrDQor44K144Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgrHjg7PjgrQNCivjgrXjgqTjg4jjgqYs44Ki44KkDQor44K144Kr44KkLOODquODp+OCpuOCueOCsQ0KK+OCteOCq+ODjizjg6bjgq3jgrMNCivjgrXjgqvjg6Ljg4gs44Ov44K/44OrDQor44K144Kr44Oi44OILOODgeOCq+ODqQ0KK+OCteOCr+ODqeOCpCzjg57jgrXjg5Xjg58NCivjgrXjgrXjgq0s44Oo44K344KzDQor44K144K144KtLOOCv+OCseODpuOCrQ0KK+OCteOCteOCrSzjg6bjgq3jgqoNCivjgrXjgrXjgq0s44K144KtDQor44K144K144KtLOODpOOCueODkuODrQ0KK+OCteOCteODjizjgqLjgqvjgq4NCivjgrXjg4Djg6Ljg4gs44Ky44Oz44Kz44KmDQor44K144OI44KmLOODkuODreOCrQ0KK+OCteODiOOCpizjg6bjgqbjgqTjg4Hjg60NCivjgrXjg4jjgqYs44K/44Kr44K3DQor44K144OI44KmLOOCv+OCq+ODkuODrQ0KK+OCteODiOOCpizjg4jjg6LjgrMNCivjgrXjg4rjg4As44Oe44K144Om44KtDQor44K144ON44K344KyLOODiOOCt+ODjuODlg0KK+OCteODjizjgqvjgrrjg5LjgrMNCivjgrfjgrLjg4jjg58s44K144OI44KzDQor44K344OO44OP44OpLOODouODquODkuOCsw0KK+OCt+ODkOOCq+ODryzjgrHjg7Pjgrjjg63jgqYNCivjgrfjg5Djg44s44Oq44On44KmDQor44K344Oe44OALOOCv+OCseOCtw0KK+OCt+ODnuODgCzjgr/jg4Tjg63jgqYNCivjgrfjg5/jgros44K/44Kr44KqDQor44K344Og44OpLOOCv+OCq+ODjuODqg0KK+OCt+ODoOODqSzjgr/jgrHjgrcNCivjgrfjg6Ljgqvjg68s44OI44Oi44OkDQor44K344Oi44OV44K4LOODjuODluODkuOCsw0KK+OCt+ODouODpOODnizjg5Ljg4fjgqvjgroNCivjgrfjg6fjgqYs44OS44Ot44Om44KtDQor44K344Op44KkLOODquOCqA0KK+OCt+ODqeOCrCzjgrPjgqbjgrgNCivjgrfjg6njgqvjg68s44Ok44K544KzDQor44K344Op44K5LOODn+ODpuOCrQ0KK+OCt+ODryzjgrHjg7PjgqTjg4ENCivjgrfjg7PjgrEs44OK44Kk44K344OzDQor44K344Oz44OJ44KmLOODiOODouOCq+OCug0KK+OCueOCrOODj+ODqSzjg5Ljg63jgqvjgroNCivjgrnjgq7jgqbjg4Es44K344On44Km44K/44Ot44KmDQor44K544Ku44Km44OpLOODgeOCouOCrQ0KK+OCueOCruOCteODryzjg6jjgqbjgrMNCivjgrnjgq7jg4/jg6ks44OS44Ot44OO44OWDQor44K544Ku44Oi44OILOODhuODq+ODpuOCrQ0KK+OCueOCruODpOODnizjgr/jg4Tjg6QNCivjgrnjgrrjgq0s44Oe44K144Om44KtDQor44K544K644KtLOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjgr/jgqTjgrnjgrENCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44K544K644KtLOODnuOCteODpA0KK+OCueOCuuOCrSzjg6rjg6Xjgqbjgr8NCivjgrnjgrrjgq0s44OO44Oq44KzDQor44K544K644KtLOODn+OCq+OCsw0KK+OCueODgCzjg6rjg7Pjg6QNCivjgrnjg4gs44OG44OE44OkDQor44K544Of44OALOOCouOCreODkuODrQ0KK+OCu+OCrSzjgqLjg4Tjg4rjg6oNCivjgrvjgq0s44Kr44K644KtDQor44K744Oz44OALOODpuOCreOCsw0KK+OCveODoeODn+ODpCzjg4HjgqgNCivjgr3jg6Qs44OS44Ot44KtDQor44OA44Kk44Oe44OrLOOCouOCreODqQ0KK+OCv+OCq+OCqizjg4/jg4rjgqgNCivjgr/jgqvjgq4s44Kr44OoDQor44K/44Kr44K244OvLOODgOODsw0KK+OCv+OCq+OCuyzjgrHjg7PjgrgNCivjgr/jgqvjg40s44K144OI44K3DQor44K/44Kr44OP44K3LOOCuOODpeODs+OCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44OS44Ot44OK44KqDQor44K/44Kr44OP44K3LOODkuODreODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jg4rjg5YNCivjgr/jgqvjg6Tjg54s44Om44Kt44KqDQor44K/44Kt44Km44OBLOODquOCqA0KK+OCv+OCreOCq+ODryzjgqLjgq3jg6kNCivjgr/jgq3jgrDjg4Es44Kx44Oz44K/44Ot44KmDQor44K/44Kt44K244OvLOOCteODiOOCtw0KK+OCv+OCreOCtuODryzjgrPjgqbjgrjjg63jgqYNCivjgr/jgq3jgrbjg68s44OB44OS44OtDQor44K/44Kt44K/LOOCouOCreODqQ0KK+OCv+OCsOODgSzjgrHjg7Pjgr/jg63jgqYNCivjgr/jgrHjgqQs44Kv44OL44KqDQor44K/44Kx44Km44OBLOOCt+ODs+OCtA0KK+OCv+OCseODgCzjg6bjgqbjgqTjg4Hjg60NCivjgr/jgrHjg4/jg6ks44Oo44Km44KzDQor44K/44OG44OOLOODiuOCquOCv+OCqw0KK+OCv+ODiuOCqyzjg4DjgqTjgrnjgrENCivjgr/jg4rjgqss44K544K544OgDQor44K/44OK44KrLOOCouOCreODqQ0KK+OCv+ODiuOCqyzjg4rjgqoNCivjgr/jg4rjgqss44K744Kk44K4DQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODiuOCqyzjg4rjgqrjgrMNCivjgr/jg4rjgqss44Ko44Oq44KzDQor44K/44OK44KrLOODn+ODhOOCqA0KK+OCv+ODiuODmSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgr/jg4ss44OB44Kr44OoDQor44K/44OL44Kr44OvLOODqOOCt+ODhOOCsA0KK+OCv+ODi+ODiuOCqyzjg5Ljg63jgr/jgqsNCivjgr/jg4vjg6Ljg4gs44OB44K644OrDQor44K/44OM44OeLOODleODn+ODkuOCsw0KK+OCv+ODkOOCvyzjgrjjg6Xjg7MNCivjgr/jg5Djgr8s44KzDQor44K/44OQ44K/LOODqOOCpuOCueOCsQ0KK+OCv+ODkOOCvyzjgrHjgqTjgr/jg63jgqYNCivjgr/jg6Djg6ks44Kz44Km44Kk44OBDQor44K/44Or44KtLOODpuOCrQ0KK+OCv+ODs+OCuCzjgq3jg6jjg47jg6oNCivjg4Hjg5As44Kr44K644Om44KtDQor44OB44OQLOODkuODreOCq+OCug0KK+ODhOOCq+ODgCzjg6rjgqgNCivjg4Tjgq3jg6Ljg4gs44Ki44OE44K3DQor44OE44K4LOODkuODreOCtw0KK+ODhOODgCzjgq3jg5/jg5LjgrMNCivjg4Tjg4Hjg6Ljg4gs44K344Oz44K0DQor44OE44OE44OfLOODiOODouOCsw0KK+ODhOODhOODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg4Tjg5zjgr8s44Oe44K144OkDQor44OG44KkLOODr+OCq+ODnw0KK+ODhuODqeOCq+ODiSzjg5/jg4TjgqLjgq0NCivjg5/jg47jgqbjg6ks44Oe44OK44OWDQor44OG44Or44KkLOODnuODqg0KK+ODieOCpCzjgrPjgqbjgr/jg63jgqYNCivjg4jjgqYs44Oe44Kt44KzDQor44OI44Km44Kr44Kk44Oq44OzLOODpuODnw0KK+ODieOCpuODoeODsyzjgqjjg4TjgrMNCivjg4jjgqbjgqvjgqQs44Kr44Kq44OqDQor44OI44Kv44OK44KsLOOCreODn+OCv+OCqw0KK+ODiOOCr+ODpOODnizjgr/jgqTjgqwNCivjg4jjgrfjg54s44Of44Ov44KzDQor44OJ44Km44OBLOODiOODouODpuOCrQ0KK+ODiOODjuOCpCzjgqLjgq3jgrMNCivjg4jjg47jg6Djg6ks44Oq44Ko44KzDQor44OI44Of44K/LOOCr+ODi+OCqg0KK+ODiOODouODjizjg5Ljg4fjgqvjgroNCivjg4jjg6rjgqQs44Oe44Oi44OrDQor44OK44Ks44KkLOODiOODouODjuODqg0KK+ODiuOCq+OCrOODryzjgqTjgq/jg54NCivjg4rjgqvjgqzjg68s44Oo44K344OO44OqDQor44OK44Kr44Ks44OvLOODgOOCpOOCueOCsQ0KK+ODiuOCq+OCtuODiCzjg6Ljg4jjg47jg5YNCivjg4rjgqvjgrfjg54s44OB44Kr44KzDQor44OK44Ks44K/LOODpuOCqw0KK+ODiuOCq+ODjizjgqvjg4oNCivjg4rjgqzjg44s44Oq44On44Km44K/DQor44OK44Ks44OOLOODquODp+OCpg0KK+ODiuOCq+ODoOODqSzjg6jjgqbjgrMNCivjg4rjgqvjg6Djg6ks44K144OI44K3DQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCq+ODoOODqSzjg4bjg4Tjg6QNCivjg4rjgqvjg6Ljg6os44OI44Kv44KzDQor44OK44Kr44Ok44OeLOODiOODouODkuODrQ0KK+ODiuODq+OCuyzjgr/jgqvjgrcNCivjg4rjg7PjgrQs44Oe44K144KtDQor44OK44Oz44OQLOOCseODsw0KK+ODiuODs+ODkCzjgrPjgqbjgrgNCivjg4vjgqTjg58s44Kz44Km44OY44KkDQor44OL44K344KqLOODqOOCpuOCuA0KK+ODi+OCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjg4vjgrfjgqrjgqss44OI44Oi44KzDQor44OL44K344K144KrLOODnuODnw0KK+ODi+OCt+OCtuOCrSzjgr/jgq/jg54NCivjg4vjgrfjgrbjg68s44OK44Kq44KtDQor44OL44K344OOLOOCteODiOOCtw0KK+ODjOODnuOCv+OCrSzjg6Ljg4jjgq0NCivjg43jgq7jgrcs44Oq44KrDQor44ON44Ok44OeLOOCv+OCseOCtw0KK+ODjuODgCzjg4HjgqLjgq0NCivjg47jgrDjg4Es44OO44Oq44KzDQor44OO44Kw44OBLOODqOOCpuOCueOCsQ0KK+ODjuOCsOODgSzjgrHjgqTjgrgNCivjg47jgrDjg4Es44K344Oz44Kt44OBDQor44OO44K244KtLOODgOOCpOOCueOCsQ0KK+ODjuODgCzjg5Ljg63jgrMNCivjg47jg5zjg6os44Oo44K344OS44OtDQor44OO44Og44OpLOOCt+ODpeOCpuOCpOODgQ0KK+ODjuODoOODqSzjg5/jgrXjgrMNCivjg47jg6Djg6ks44Kx44Oz44K4DQor44OP44Ku44Ov44OpLOOCt+ODp+OCpuOCv+ODreOCpg0KK+ODj+OCt+OCsOODgSzjg4jjgrfjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44K/44Kr44OV44OfDQor44Oe44KtLOOCq+OCuuODiA0KK+ODj+OCu+OCrOODryzjgr/jgrHjgqoNCivjg4/jgrvjgqzjg68s44Kq44K144OgDQor44OP44OALOOCouODpOOCsw0KK+ODj+ODg+ODiOODqizjg6bjgqbjgqTjg4ENCivjg4/jg4Pjg4jjg6os44Oe44Om44KzDQor44OQ44OQLOODnuOCteOCrQ0KK+ODkOODkCzjgrHjg7PjgrgNCivjg5Djg5As44K344Oz44Kk44OB44Ot44KmDQor44OQ44OQLOODquOCq+OCsw0KK+ODj+ODnuODgCzjgq/jg5/jgrMNCivjg4/jg57jg4As44OA44Kk44K4DQor44OP44Oe44OALOODquOCtQ0KK+ODj+ODnuODgCzjg5Xjg5/jg5Ljg60NCivjg4/jg57jg44s44Oe44K144Om44KtDQor44OP44Ok44K3LOOCouOCreODjuODqg0KK+ODkuOCsOODgSzjgrPjgqbjgq0NCivjg5LjgrXjg4Tjg40s44Oe44Kz44OIDQor44OS44K344OM44OeLOOCouODhOOCtw0KK+ODk+ODp+OCpuODieOCpizjg5Ljg63jgrMNCivjg5Ljg6njgqQs44Oe44K144Kr44K6DQor44OS44Op44Kq44KrLOODn+OCrQ0KK+ODkuODqeOCq+ODryzjg4jjg6Ljg5Ljg60NCivjg5Ljg6njgrXjg68s44K/44Kv44K4DQor44OS44Op44K344OeLOOCuOODreOCpg0KK+ODkuODqeOCvyzjg57jg5/jgrMNCivjg5Ljg6njg44s44Ok44Oo44KkDQor44OS44Or44OeLOODpuOCpuOCpOODgQ0KK+ODkuODreOCuyzjg5Ljg4fjgq0NCivjg5Ljg63jgrss44Kr44OE44Oo44K3DQor44OS44Ot44K/LOODkuODreOCtw0KK+ODleOCr+OCpCzjgqLjgrrjgrUNCivjg5Xjgq/jg4As44K/44Kr44K3DQor44OV44Kv44OQLOOCq+ODiuODoQ0KK+ODleOCr+ODoOODqSzjg6bjg5/jgrMNCivjg5Xjgq/jg6Ljg4gs44OA44Kk44K544KxDQor44OV44K444KkLOOCseODsw0KK+ODleOCuOOCpCzjg6bjgq0NCivjg5XjgrjjgqQs44Of44OvDQor44OV44K444Ko44OALOODkuOCteOCq+OCug0KK+ODleOCuOOCvyzjg5Ljg4fjgqvjgroNCivjg5Xjgrjjgr8s44Om44Kt44KzDQor44OV44K444OELOOCv+OCseOCtw0KK+ODleOCuOODjizjgr/jgqvjg5sNCivjg5Xjgrjjg6Ljg4gs44K144OI44KzDQor44OV44K444Ov44OpLOOCv+OCr+ODiA0KK+ODleOCuOODr+ODqSzjg6rjg4oNCivjg5Xjgrjjg6/jg6ks44Kv44OfDQor44OV44Or44Kr44OvLOODquODp+OCpg0KK+ODmyzjg57jgrXjg47jg6oNCivjg5vjgrfjg44s44Og44ON44OI44OiDQor44Ob44K944Kr44OvLOODhuODq+ODkuOCsw0KK+ODm+ODquOCq+ODryzjgrfjg6XjgqbjgrgNCivjg5vjg7PjgrTjgqYs44Oo44K344Ki44KtDQor44Oe44Ko44OALOOCouODhOOCtw0KK+ODnuOCquOCqyzjg4Tjg4jjg6ANCivjg57jgrnjg5bjg4Es44OE44Oo44K3DQor44Oe44K544Of44OELOOCreODp+OCpuODmOOCpA0KK+ODnuODhOOCpCzjgrHjg7Pjgr/jg63jgqYNCivjg57jg4Tjgqos44OS44OH44OO44OqDQor44Oe44OE44Kq44KrLOOCreODp+OCpuOCueOCsQ0KK+ODnuODhOOCquOCqyzjgrXjg4HjgrMNCivjg57jg4Tjg4As44Oq44On44KmDQor44Oe44OE44OQ44OpLOOCouOCreOCsw0KK+ODr+OCv+ODiuODmSzjg4DjgqTjgrnjgrENCivjg57jg4Tjg6Tjg54s44K/44Kx44K3DQor44Oe44OE44Ok44OeLOODn+ODhOODhuODqw0KK+ODnuODhOODpOODnizjg6jjgrfjgq0NCivjg57jg4jjg5As44OI44Oi44OS44OtDQor44Of44Km44OpLOODnuOCteOCrQ0KK+ODn+ODhOOCrizjgr/jgrHjgrcNCivjg5/jg4gs44K344Ol44Km44Kk44OBDQor44Of44OO44Km44OpLOODpOOCueODkuOCtQ0KK+ODn+ODpCzjgqLjgq3jg6kNCivjg5/jg6TjgrEs44OS44OH44Oe44K1DQor44Of44Ok44K344K/LOOCouOCpA0KK+ODn+ODpOOCt+OCvyzjg6bjgq3jgqoNCivjg5/jg6Tjgr8s44Ki44Kt44OS44OtDQor44Of44Ok44Oi44OILOOCv+ODhOODpA0KK+ODn+ODpOODouODiCzjgq/jg4vjgrMNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OS44OtDQor44Og44Kv44OALOODiOODouOCouODqg0KK+ODoOOCt+OCqyzjg6bjgq3jgrMNCivjg6Djg4jjgqYs44Ki44Kt44OpDQor44Og44Op44Kr44OfLOODpuOCqw0KK+ODoOODqeOCq+ODnyzjgqvjg4rjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44OtDQor44Og44Op44Kr44OfLOODkuODh+ODhOOCsA0KK+ODoOODqeOCv+ODiyzjg6Ljg4jjg5Ljg60NCivjg6Djg6njg57jg4Qs44Oe44K144KzDQor44Og44Op44Ok44OeLOODqOOCt+OCouOCrQ0KK+ODouODgeOCuuOCrSzjg4jjgrfjg5LjgrMNCivjg6Ljg6rjgrDjg4Es44Of44K144OIDQor44Oi44Oq44K/LOODnuODnw0KK+ODouODquODkOODpOOCtyzjgrPjgqbjg6HjgqQNCivjg6Ljg63jg4gs44OS44Ot44K/44OEDQor44Ok44Ko44Ks44K3LOODkuODh+ODpuOCrQ0KK+ODpOOCquODpOODnizjgrLjg7Pjgr8NCivjg6Tjgqzjg58s44Oo44K344OS44OtDQor44Ok44KuLOOCseOCpOOCuA0KK+ODpOOCsOODqSzjgrfjg7PjgrgNCivjg6TjgrnjgrPjg4Es44OO44Oc44OrDQor44Ok44K544OALOODpuOCpuOCueOCsQ0KK+ODpOOCueODgCzjg47jg6rjgrMNCivjg6Tjg57jgrDjg4Es44Om44Km44K544KxDQor44Ok44Oe44Kw44OBLOOCt+ODp+OCpuOCt+ODsw0KK+ODpOODnuODgCzjg6/jgqTjgrHjg7MNCivjg6Tjg57jg4As44Of44K644ObDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODpOODnuODn+ODgSzjgqvjg4Tjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44KzDQor44Ok44Oe44Oi44OILOODkuODreODnw0KK+ODpuOCrSzjg57jg5/jgrMNCivjg6bjg5/jg5As44Kx44Kk44Kk44OBDQor44Om44OpLOOCseODs+OCpOODgQ0KK+ODqOOCs+OCueOCqyzjg4/jg6vjg47jg5YNCivjg6jjgrPjgr8s44Ki44KkDQor44Oo44Kz44Ok44OeLOOCouODpOOCsw0KK+ODqOOCt+OCquOCqyzjg4rjgqrjgrMNCivjg6jjgrfjgqrjgqss44Kr44K644OS44OtDQor44Oo44K344K244OvLOODpuOCpuOCsw0KK+ODqOOCt+ODgCzjg5/jg4Tjg6sNCivjg6jjgrfjg4As44Ki44Kr44OqDQor44Oo44K344OALOOCv+OCq+OCtw0KK+ODqOOCt+ODjizjgqvjgrrjg58NCivjg6jjgrfjg6Djg6ks44Om44Km44KzDQor44Oq44Ol44KmLOOCqOOCpOOCuA0KK+ODreOCryzjgqLjgq3jgrMNCivjgrXjgqvjg6Ljg4gs44Kx44Kk44KzDQor44Ov44K/44OK44OZLOODrOOCpOODig0KK+ODr+OCv+ODiuODmSzjg6bjg5XjgrMNCivjg6/jgr/jg4rjg5ks44Om44KmDQor44Ov44K/44OK44OZLOOCv+OCq+OCsw0KK+ODr+OCv+ODiuODmSzjg6Tjg6jjgqQNCivjg6/jg6njg5Ms44OS44Ot44OO44OqDQor44OO44K244OvLOODpuOCpuOCsw0KK+OCr+ODnCzjg6TjgrnjgrMNCivjg6jjgrfjg6Ljg4gs44KzDQor44Ok44Oe44Oi44OILOOCv+OCq+OCtw0KK+ODpOODnuODouODiCzjgr/jgqvjgrcNCivjg5Ljg63jgrXjg68s44Oq44KoDQor44Of44OS44OpLOODquODp+OCpuODmOOCpA0KK+OCquOCquODjizjg5Ljg63jg6bjgq0NCivjgqrjg4As44Kr44K644OS44KzDQor44Kq44Kq44OQ44K/44KxLOODn+ODm+OCsw0KK+OCq+ODieOCqCzjgqLjgqQNCivjg4vjgrfjg4As44OI44Oo44OS44OtDQor44Oe44OE44Oi44OILOODqOOCt+OCouOCrQ0KK+ODn+OCruOCvyzjg57jg4oNCivjg5/jg6Tjg6Ljg6os44Of44KqDQor44Ok44Oe44K344K/LOODnuODieOCqw0KK+ODpOODnuODgCzjgrfjg7PjgrQNCivjg47jg6rjg4jjg58s44OB44KoDQor44Kk44Kx44OALOODpuOCpuOCueOCsQ0KK+ODouODquOCvyzjg6rjg6fjgqbjgrgNCivjgr/jgrHjgqbjg4Es44Oq44On44KmDQor44Of44K/LOODqOOCt+ODjuODqg0KK+OCpOODjOOCpCzjgrHjg7MNCivjg4jjgqYs44OO44Oq44Om44KtDQor44Oe44Kt44OOLOODnuODqg0KK+ODiuODhOODoSzjgrfjg7Pjg6QNCivjgqrjg47jg4fjg6ks44Kv44OL44OS44OtDQor44Kq44Kq44K/LOODn+OCreOCsw0KK+OCpuODq+OCt+OCteOCsyzjg6rjg4TjgrMNCivjgrXjgqvjgq3jg5Djg6ks44K344Ky44OO44OqDQor44Ki44Kq44KtLOOCqOOCpOOCueOCsQ0KK+OCouOCquOCrSzjg4rjgqrjg4gNCivjgqLjgqrjgq0s44Om44Km44KzDQor44Ki44Kr44Ks44OvLOODouODiOOCsw0KK+OCouOCq+ODhOOCqyzjgqvjgrrjg5Ljg4gNCivjgqLjgqvjg5vjg6os44Kx44Kk44K444Ot44KmDQor44Ki44Kt44Ok44OeLOOCq+OCuuODkuODrQ0KK+OCouOCteOCpCzjg4bjg6vjg58NCivjgqLjgrXjgqQs44K344Oz44Oa44KkDQor44Ki44K144Kq44KrLOOCseODs+OCuA0KK+OCouOCteODjOODnizjgqLjg6QNCivjgqLjgr0s44OK44Kq44OV44OfDQor44Ki44K/44KxLOODiOOCt+OCrQ0KK+OCouODgOODgSzjgrfjg7PjgrQNCivjgqLjg5ks44K/44Kr44Of44OBDQor44Ki44OZLOODjuODluODpOOCuQ0KK+OCouODmSzjg6bjgq3jgqgNCivjgqLjg6njgqQs44OE44Oo44K3DQor44Ki44Oq44OeLOODiOODouOCsw0KK+OCpOOCpOOCuuOCqyzjg4DjgqTjgrnjgrENCivjgqTjgqzjg6njgrcs44Om44K/44KrDQor44Kk44Kx44OALOOCs+OCuuOCqA0KK+OCpOOCseODgCzjgrHjg7Pjgr/jg63jgqYNCivjgqTjgrHjg4/jgr8s44OS44Ot44KtDQor44Kk44K244OvLOODgeODj+ODqw0KK+OCpOOCt+OCpCzjg6TjgrnjgrcNCivjgqTjgrfjgqvjg68s44Oq44On44Km44KzDQor44Kk44K344Kw44OtLOOCouOCreODkuODrQ0KK+OCpOOCt+ODgCzjgrPjgqbjgr/jg63jgqYNCivjgqTjgrfjg4As44K/44OE44KqDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjgr/jgqvjg5Ljg60NCivjgqTjgrfjg6Ljg4gs44Oe44Om44KzDQor44Kk44K944OP44K/LOOCouOCteOCsw0KK+OCpOOCv+ODnyzjgr/jgqvjgqLjgq0NCivjgqTjg4Hjgqvjg68s44OK44Or44K/44KrDQor44Kk44OD44K344KtLOOCv+ODhOODpA0KK+OCpOODhyzjg4rjg6vjg58NCivjgqTjg4cs44Kz44Km44K4DQor44Kk44OI44KmLOODnuODpuODnw0KK+OCpOODiOOCpizjgrjjg6Xjg7Pjg5rjgqQNCivjgqTjg4jjgqYs44Oe44K144KqDQor44Kk44OI44KmLOODiuODhOOCsw0KK+OCpOODiOOCpizjg57jgqQNCivjgqTjg47jgqbjgqgs44Oe44Kz44OIDQor44Kk44OO44Km44KoLOODqOOCpuOCueOCsQ0KK+OCpOODjuOCpuOCqCzjg4rjgqrjgq0NCivjgqTjg47jgqbjgqgs44Kr44OE44KtDQor44Kk44OO44Kv44OBLOODjuODquODpuOCrQ0KK+OCpOODnuOCpCzjg6rjg5sNCivjgqTjg57jgq3jg6Xjgqbjg6zjgqQs44Os44Kk44KzDQor44Kk44Oe44K844KtLOOCr+ODn+OCsw0KK+OCpOODnuODoOODqSzjg57jgrnjg58NCivjgqTjg57jg6Djg6ks44Kx44Oz44Kk44OB44OtDQor44Kk44Ov44KkLOOCteODiOODqw0KK+OCpOODr+OCpCzjgr/jgqvjgrcNCivjgqTjg6/jgrXjgq0s44OI44Oi44KzDQor44Kk44Ov44K7LOOCueOCueODoA0KK+OCpOODr+OCvyzjgrPjgqbjgrgNCivjgqTjg6/jg4cs44Kx44Oz44K/44Ot44KmDQor44Kk44Ov44Og44OpLOODnuOCteODkuODiA0KK+OCpuOCqOODgCzjg5Xjg5/jgqoNCivjgqbjgqjjg44s44Oe44K144OV44OfDQor44Km44Ko44OOLOOCt+ODs+OCuA0KK+OCpuOCq+OCpCzjg5Ljg63jgq0NCivjgqbjgrXjg58s44Oe44Oq44KzDQor44Km44OB44Km44OfLOODquOCqOOCsw0KK+OCpuODgeODpOODnizjg57jgrXjg5Xjg58NCivjgqbjg6njg4/jg6ks44K/44Kk44K4DQor44Ko44KuLOOCv+OCq+ODkuOCsw0KK+OCqOOCuOODqizjg5Ljg63jgrcNCivjgqjjg47jgq3jg4ks44Oo44Oq44KzDQor44Ko44Oi44OqLOOCpOODhOOCrQ0KK+OCqOODs+ODiSzjg4/jgrjjg6ENCivjgqrjgqrjgqQs44OK44OE44KzDQor44Kq44Kq44Kk44KxLOODiOODouOCq+OCug0KK+OCquODleODqSzjg4DjgqTjgrnjgrENCivjgqrjgqrjgqvjg68s44Oo44K344KzDQor44Kq44Kt44K/LOODpuOCreODjuODqg0KK+OCquOCquOCteODryzjg57jgrXjg6bjgq0NCivjgqrjgqrjgr8s44OI44Oi44KzDQor44Kq44Kq44K/LOOCouOCreODiuOCqg0KK+OCquOCquOCvyzjg6jjgqbjg5jjgqQNCivjgqrjgqrjgr/jg4ss44K/44Kr44Ki44KtDQor44Kq44Kq44K/44OLLOODpuOCreODkuODhw0KK+OCquOCquODhOOCqyzjg6Ljg4jjgqQNCivjgqrjgqrjg4Tjgqss44Oo44K344OO44OqDQor44Kq44Kq44OE44KrLOODgOOCpOOCuOODreOCpg0KK+OCquOCquODhOOCrSzjgrXjg4jjg6sNCivjgqrjg4ks44K/44Kv44OfDQor44Kq44OI44Oz44OZLOOCv+ODhOODpA0KK+OCquODjizjg57jgrXjg5LjgrMNCivjgqrjg44s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOOCv+ODhOODpA0KK+OCquOCquODj+OCvyzjgqLjgq3jg6kNCivjgqrjgqrjg5/jg4Es44Of44ObDQor44Kq44Kq44Ok44OeLOODn+OCreODkuODiA0KK+OCquOCq+OCtuOCrSzjgr/jg4Tjg5Xjg58NCivjgqrjgqvjgrjjg54s44Of44OK44KzDQor44Kq44Kr44OALOOCq+OCuuODkuODrQ0KK+OCquOCq+ODgCzjgr/jgq/jg54NCivjgqrjgqvjg6Ljg4gs44K/44Kx44K3DQor44Kq44Kr44Oi44OILOODgOOCpOOCueOCsQ0KK+OCquOCrOODryzjgrjjg6Xjg7MNCivjgqrjgq7jgr8s44OI44K344OV44OfDQor44Kq44Kv44Kv44OcLOOCv+OCq+OCtw0KK+OCquODgeOCouOCpCzjg4jjg6Ljg47jg6oNCivjgqrjg57jgr8s44Kx44OzDQor44Kr44K1LOODpuOCreOCsw0KK+OCq+OCt+ODryzjg4DjgqTjgrnjgrENCivjgqvjg4jjgqYs44Kz44Km44OY44KkDQor44Kr44OI44KmLOOCv+ODgOOCtw0KK+OCq+ODiuOCpCzjgrHjg7PjgqTjg4ENCivjgqvjg4rjg6Tjg54s44OA44Kk44K544KxDQor44Kr44ON44KzLOODleODn+ODpA0KK+OCq+ODjeODhOOCrSzjgrjjg6Xjg7Pjg6QNCivjgqvjg43jg57jg6ss44Ki44K644K1DQor44Kr44OZ44Km44OBLOODiuOCquODiA0KK+OCq+ODn+ODoOODqSzjgqvjgqrjg6oNCivjgqvjg5/jg6Qs44K144OB44KzDQor44Kr44Of44OkLOOCs+OCpuOCpOODgeODreOCpg0KK+OCq+ODr+OCpCzjg6bjg5/jgrMNCivjgqvjg6/jgqQs44OS44Ot44K3DQor44Kr44Ov44Kr44OfLOODqeOCpA0KK+OCq+ODr+OCteOCrSzjg6Tjgrnjg5Ljg60NCivjgqvjg6/jgrXjgq0s44OG44OE44Ki44KtDQor44Kr44Ov44K144KtLOODkuODreOCrQ0KK+OCq+ODr+OCt+ODnizjgr/jgqvjgqoNCivjgqvjg6/jgr8s44Kx44Kk44Kk44OBDQor44Kr44Ov44Oe44K/LOOCs+OCpuOCvw0KK+OCq+ODr+ODouODiCzjgrHjgqTjgrnjgrENCivjgq3jgrfjg6Ljg4gs44Ki44Kt44Oo44K3DQor44Kt44K344OtLOOCseOCpOOCvw0KK+OCreODgCzjgqjjgqTjgrnjgrENCivjgq3jgr/jgqrjgqss44K444Ol44OzDQor44Kt44K/44OOLOODnuOCteODkuOCsw0KK+OCreOCv+ODj+ODqSzjgr3jgqbjg5jjgqQNCivjgq3jgr/jg6Djg6ks44K/44Ot44KmDQor44Kt44K/44Oi44OILOODn+ODmw0KK+OCreODoOODqSzjgr/jgrHjg5Ljg60NCivjgq3jg6Djg6ks44OV44Of44OIDQor44Kt44Oi44OILOOCseOCpOOCsw0KK+OCreODsyzjg6jjgrfjg6bjgq0NCivjgq/jgrfjg6Tjg54s44Ki44Kt44OoDQor44Kv44OJ44KmLOODiOODouODjuODqg0KK+OCr+ODieOCpizjgrfjg6Xjg7PjgrnjgrENCivjgq/jg6Hjgqbjg4Es44Kx44Oz44K4DQor44Kv44Op44K344KyLOOCs+OCpuOCuA0KK+OCr+ODqeODgSzjgqvjgrrjg5Ljg60NCivjgq/jg6njg4rjgqss44K/44Kx44K3DQor44Kv44Oq44OP44OpLOODqOOCpuOCueOCsQ0KK+OCr+ODreOCrSzjg57jgrXjgq0NCivjgq/jg63jgrXjgqss44Oo44Km44KzDQor44Kv44Ov44OP44OpLOOCt+ODjg0KK+ODpuOCqCzjgqvjg4Tjg47jg6oNCivjgrPjgqTjgrrjg58s44K344Oz44OkDQor44Kz44Km44K444OeLOODqOOCt+ODkuOCsw0KK+OCs+OCpuODgCzjgqvjg4Tjg6bjgq0NCivjgrPjg7Pjg44s44Kx44Oz44Kk44OBDQor44Kz44KsLOOCt+ODp+OCpuOCpOODgQ0KK+OCs+OCrCzjgr/jgq/jgrgNCivjgrPjgq/jg5bjg7Ms44OB44Kr44KzDQor44Kz44K144KrLOOCouOCreOCsw0KK+OCs+ODg+ODhizjg57jgqTjgrMNCivjg4/jgr/jg4rjgqss44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODpuOCqw0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjgq0NCivjgrPjg5Djg6Tjgrcs44Ki44Oz44OKDQor44Kz44OQ44Ok44K3LOODjuODquOCouOCrQ0KK+OCs+ODkOODpOOCtyzjgq3jg5/jg5LjgrMNCivjgrPjg57jg4Qs44K344Oz44K544KxDQor44Kz44Oe44OE44OQ44OpLOODleODnw0KK+OCs+ODoeODgOODiyzjg4bjg4Tjg63jgqYNCivjgrXjgqTjgq0s44Ki44OE44K3DQor44K144Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCteOCq+OCpCzjg5Ljg63jgqLjgq0NCivjgrXjgqvjgrDjg4Es44K/44Ot44KmDQor44K144Kv44OeLOODpuOCreOCsw0KK+OCteOCsyzjg57jg6QNCivjgrXjgrXjgqQs44OK44Kq44OkDQor44K144K144KqLOOCq+OCuuOCreODnw0KK+OCteOCteOCrSzjg4/jg4rjgrMNCivjgrXjgrXjgq0s44Oe44K144KqDQor44K144OI44KmLOOCq+ODhOODkuOCsw0KK+OCteODiOOCpizjgqvjgrrjg6bjgq0NCivjgrXjg4jjgqYs44OS44Ot44OS44OIDQor44K144OI44KmLOODnuOCteOCrQ0KK+OCteODiOOCpizjg5/jgq0NCivjgrXjg4jjgqYs44Oe44K144KzDQor44K144OI44KmLOODn+OCrQ0KK+OCteODiOOCpizjg47jg5bjg6bjgq0NCivjgrXjg4jjgqYs44Oq44On44Km44K144KvDQor44K144OOLOODnuOCteOCsw0KK+OCteODjizjg4rjgq7jgrUNCivjgrXjg4/jg6ks44K/44Kr44OV44OfDQor44K144Or44Ok44OeLOOCv+OCq+ODpuOCrQ0KK+OCteODr+OCsOODgSzjgqLjg6QNCivjgrfjgqQs44Ko44OfDQor44K344Kq44K244KtLOODkuODh+OCouOCrQ0KK+OCt+OCquODgCzjgqjjgqTjgrgNCivjgrfjgq0s44Oe44K144OrDQor44K344OALOODqOOCt+ODkuODrQ0KK+OCt+ODjuODj+ODqSzjg5Ljg4jjgrcNCivjgrfjg47jg4/jg6ks44OS44K144K3DQor44K344OW44K144OvLOODqOOCpuOCueOCsQ0KK+OCt+ODnuODgCzjg6rjg6Xjgqbjgr8NCivjgrfjg57jg4As44Of44Ob44KzDQor44K344Oe44OALOOCseODs+OCv+ODreOCpg0KK+OCt+ODn+OCuizjgr/jg4TjgqoNCivjgrfjg5/jgros44Ov44K/44OrDQor44K344Of44K6LOODiOODouOCsw0KK+OCt+ODn+OCuizjgrXjg4jjgrMNCivjgrfjg5/jgros44K444Ol44Oz44Kk44OBDQor44K344Of44K6LOOCuOODreOCpg0KK+OCt+ODoizjgq3jg4zjgqgNCivjgrfjg6Ljgrbjgq0s44K/44OE44OS44KzDQor44K344Oi44K444OeLOOCqOOCpOOCpOODgeODreOCpg0KK+OCt+ODouODhCzjgr/jgqvjg5Ljg60NCivjgrfjg6Ljg44s44Ki44Kt44OS44KzDQor44K344Oi44OkLOODqOODquOCsw0KK+OCt+ODqeOCuSzjgrfjg7PjgrQNCivjgrnjgq7jgqbjg6ks44Oe44K144OO44OWDQor44K544Ku44Km44OpLOODiOOCt+ODreOCpg0KK+OCueOCuuOCrSzjg4jjg6Ljg58NCivjgrnjgrrjgq0s44Ko44Oq44KzDQor44K544K644KtLOODpuOCpuOCueOCsQ0KK+OCueOCuuOCrSzjg6jjgrfjg47jg6oNCivjgrnjgrrjgq0s44Oo44K344KtDQor44K544OILOOCteODiOOCtw0KK+OCueODiuODgCzjgrXjg4jjgrcNCivjgrnjg6Tjg54s44OA44Kk44K544KxDQor44K744KqLOOCq+OCquODqg0KK+OCu+OCrSzjgrPjgqbjg5jjgqQNCivjgrvjgq3jg40s44Of44OE44OrDQor44K744Kt44OQLOODnuOCrQ0KK+OCu+ODiCzjgrHjgqTjgrgNCivjgrvjg7PjgrTjgq8s44OO44Oq44OS44K1DQor44K744Oz44OALOODpuOCpuOCsw0KK+OCu+ODs+ODkCzjg5/jgrrjg5sNCivjgr3jg6Hjg6Qs44Kx44Kk44K0DQor44K/44Kr44KuLOODkuODh+OCrQ0KK+OCv+OCq+OCrizjgqLjgqQNCivjgr/jgqvjgq4s44OO44Oq44Om44KtDQor44K/44Kr44K7LOODqOOCpuOCpOODgeODreOCpg0KK+OCv+OCq+ODgCzjg6jjgqbjgrnjgrENCivjgr/jgqvjg4/jgrcs44Ok44K544Om44KtDQor44K/44Kr44OP44K3LOODqOOCt+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg47jg6oNCivjgr/jgqvjg4/jgrcs44Oe44K144OIDQor44K/44Kr44OP44K3LOODn+OCqw0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5Ljg60NCivjgr/jgqvjg5/jgrbjg68s44Kz44K644KoDQor44K/44Kt44K244OvLOOCseOCpOOCvuOCpg0KK+OCv+OCsOODgSzjgq3jg6fjgqbjgrMNCivjgr/jgrHjgrfjgr8s44Kx44OzDQor44K/44Kx44OALOOCq+OCuuODng0KK+OCv+OCseODgCzjg6bjgqbjgrgNCivjgr/jgrHjg4As44Kz44Km44K4DQor44K/44Kx44OK44KrLOOCv+OCq+ODkuODrQ0KK+OCv+OCseODj+ODqSzjg5/jgq3jgrMNCivjgr/jgrHjg6Tjg54s44Of44OE44OrDQor44K/44K4LOODn+OCqw0KK+OCv+ODgCzjg6jjgrfjgr/jgqsNCivjg4Djg4Ys44Kv44Of44KzDQor44K/44OK44KrLOODgeOCq+ODleODnw0KK+OCv+ODiuOCqyzjg47jg6rjg5LjgrMNCivjgr/jg4rjgqss44K/44Kv44OK44KsDQor44K/44OK44KrLOOCv+OCq+ODpuOCrQ0KK+OCv+ODiuOCqyzjgr/jgqvjg6bjgq0NCivjgr/jg4vjgrDjg4Es44K/44Kr44OO44OqDQor44K/44OL44Kz44K3LOOCseODs+OCv+ODreOCpg0KK+OCv+ODi+ODjizjgr/jgqvjgqLjgq0NCivjgr/jg5bjgq0s44K/44Ot44KmDQor44K/44OW44OBLOODqOOCt+ODkuODiA0KK+OCv+ODnuOCquOCrSzjg57jgrXjg6jjgrcNCivjgr/jg57jgqzjg68s44OI44Oi44KzDQor44K/44Og44OpLOOCseOCpOOCsw0KK+OCv+ODoeODjuODqizjg6jjgqbjg5jjgqQNCivjgr/jg7Pjg44s44Ko44OqDQor44K/44Oz44OcLOOCouOCreODkuOCsw0KK+ODgeODgCzjgqvjg4Tjg5LjgrUNCivjg4Hjg43jg7Ms44Om44KtDQor44OE44Ks44ON44K244OvLOODjuODluODpuOCrQ0KK+ODhOOCq+ODj+ODqSzjg5/jgrrjg5sNCivjg4Tjg4Hjg6Qs44Oe44Om44OfDQor44OE44OB44OkLOODqOOCpuOCueOCsQ0KK+ODhOODgeODpCzjg6Tjgrnjg6bjgq0NCivjg4Tjgrrjgq0s44Oe44OfDQor44OE44K644Op44OP44OpLOOCteODgeOCsw0KK+ODhOODjeODqOOCtyzjg4bjg6vjg47jg5YNCivjg4Tjg5zjgqbjg4Es44Ki44Kt44OV44OfDQor44OE44Or44K344OeLOODquOCqA0KK+ODh+OCsOODgSzjgr/jgq/jg6QNCivjg4bjgrrjgqss44Of44OE44OO44OWDQor44OG44Op44Kr44OvLOOCv+OCq+OCtw0KK+ODhuODqeOCsOODgSzjg6Djg43jg47jg6oNCivjg4bjg6njgrfjg54s44Kx44Oz44K4DQor44OG44Op44OALOODqOOCt+OCrQ0KK+ODiOOCrOOCtyzjg4DjgqTjgrnjgrENCivjg4jjgq/jg6Djg6ks44Kz44Km44Kk44OBDQor44OI44K244OvLOODpuOCpuOCsw0KK+ODiOODk+OCquOCqyzjgr/jgrHjgrcNCivjg4jjg57jg6rjg44s44K444Ol44Oz44KzDQor44OI44Of44KkLOOCuOODpeODs+OCsw0KK+ODiOODn+OCtuODryzjgqLjg6QNCivjg4jjg5/jgr8s44K/44Kk44OBDQor44OI44Of44K/LOODpuOCpuOCvw0KK+ODiOODn+ODiuOCrCzjg6jjgqbjgrMNCivjg4jjg6jjg4As44K944Km44K/44Ot44KmDQor44OI44Op44K/44OLLOODnuOCteOCsw0KK+ODiuOCpOODiOOCpizjgr/jgqvjgqoNCivjg4rjgqzjgqQs44OB44KoDQor44OK44Ks44KkLOOCuOODpeODs+OCsw0KK+ODiuOCq+OCpOOCsSzjgrfjg7PjgrQNCivjg4rjgqvjgqbjgqgs44OA44Kk44K544KxDQor44OK44Ks44KqLOODquODp+OCpuOCsw0KK+ODiuOCq+OCs+OCuCzjgrXjg6TjgqsNCivjg4rjgqzjgrXjgqss44Kz44Km44K4DQor44OK44Kr44K444OeLOODpuOCreOCsw0KK+ODiuOCq+OCuOODnizjg57jg6oNCivjg4rjgqzjgr8s44Kr44OE44OkDQor44OK44Ks44K/LOOCouODhOODkuOCtQ0KK+ODiuOCrOOCvyzjg4rjgqrjgq0NCivjg4rjgqvjg4Tjg6ss44OS44Ot44Ki44KtDQor44OK44Ks44OOLOODpOOCueOCqg0KK+ODiuOCq+ODoOODqSzjgrXjg4jjg6sNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCr+ODn+OCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Om44KrDQor44OK44Kr44Og44OpLOODnuOCteOCouOCrQ0KK+ODiuOCq+ODoOODqSzjgqjjgqTjgrgNCivjg4rjg4Tjg4/jg6ks44K144Ok44KrDQor44OK44Oq44K144OALOOCt+ODs+OCueOCsQ0KK+ODiuODs+ODlizjg47jg5bjg6bjgq0NCivjg4vjgqvjgqTjg4njgqYs44OI44Oi44OkDQor44OL44K3LOOCveOCpuOCpOODgeODreOCpg0KK+ODi+OCtyzjg4rjgqrjg6bjgq0NCivjg4vjgrfjgqos44OI44K344OkDQor44OL44K344Kr44OvLOOCseODs+OCuA0KK+ODi+OCt+OCr+ODqSzjgrXjg4jjgrMNCivjg4vjgrfjgrbjg68s44Kk44K144OgDQor44OL44K344K244OvLOOCqOODquODig0KK+ODi+OCt+ODgCzjgrfjg7PjgqTjg4ENCivjg4vjgrfjg4As44Oq44On44Km44OY44Kk44K/DQor44OL44K344Ok44OeLOODkuOCteODjuODqg0KK+ODjOODjuODpCzjgrfjgrLjgqoNCivjg4zjg57jgrbjgq0s44Om44Kt44KqDQor44OM44Oe44K/LOOCv+OCseOCtw0KK+ODjuODieODnyzjg6rjg4oNCivjg47jg58s44Oe44K144KtDQor44OO44Kw44OBLOOCq+OCuuODqOOCtw0KK+ODjuOCuOODnizjg4bjg6vjgqLjgq0NCivjg47jgrjjg6os44OI44K344Om44KtDQor44OO44OALOODn+OCreOCsw0KK+ODjuODgCzjg6bjgq3jgrMNCivjg47jg6Djg6ks44K344Oz44OY44KkDQor44OO44Og44OpLOOCq+OCuuOCqA0KK+ODjuODoOODqSzjgqvjgrrjgqoNCivjg4/jgrPjgrfjg54s44Ov44K/44OrDQor44OP44K344Oi44OILOODquODp+OCpg0KK+ODj+OCt+ODouODiCzjgrHjgqQNCivjg4/jgrvjgqzjg68s44Kx44Oz44K/44Ot44KmDQor44OP44K/44Kx44Ok44OeLOODpuODleOCsw0KK+ODj+ODg+OCvyzjg6bjg5INCivjg4/jg4Pjg4jjg6os44K144OI44OfDQor44OP44OK44KkLOOCv+OCseODj+ODqw0KK+ODj+ODiuODgCzjgrHjgqTjgrnjgrENCivjg4/jg57jgrDjg4Es44Kx44OzDQor44OP44Oe44OALOODnuODiuODnw0KK+ODj+ODnuODgCzjgrHjgqTjgrMNCivjg4/jg57jg44s44K/44Kr44Om44KtDQor44OP44Ok44Kr44OvLOODpuOCrQ0KK+ODj+ODpOOCtyzjg4bjg4TjgqoNCivjg4/jg6Tjgrcs44OI44Oi44OK44KsDQor44OP44Ok44K3LOOCseODs+OCv+ODreOCpg0KK+ODj+ODqSzjg4HjgqvjgrMNCivjg4/jg6ks44Ok44K544Ki44KtDQor44OP44Op44OALOODn+OCqA0KK+ODkuOCqOOCq+OCvyzjgrXjg4jjgrMNCivjg5LjgqzjgrUs44Ki44OE44K3DQor44OS44Ks44OfLOOCu+OCpOOCuA0KK+ODkuOCreODjizjg4bjg4TjgrgNCivjg5Ljg4As44K/44Kr44K3DQor44OS44OA44KrLOOCt+ODsw0KK+ODkuODh+OCt+ODnizjg5/jgq3jgrMNCivjgrXjgqvjgqQs44K444Ol44Oz44OkDQor44OS44Op44KkLOODj+ODpOODiA0KK+ODkuODqeOCpOODryzjgqjjg4TjgrMNCivjg5Ljg6njgr8s44OS44OH44KtDQor44OS44Op44OQ44Ok44K3LOODiuOCquODpuOCrQ0KK+ODkuODreOCuyzjgqLjg6TjgrMNCivjg5Xjgqvjgqos44Of44Om44KtDQor44OV44Kv44KkLOODkuODh+ODkuOCsw0KK+ODleOCr+OCtuOCrSzjg5/jg6zjgqQNCivjg5Xjgq/jg4As44Oo44Km44OY44KkDQor44OV44Kv44OALOODpOOCueODkuODrQ0KK+ODleOCr+ODgCzjg57jgrXjg6sNCivjg5Xjgq/jg4As44K444Ol44Oz44Kk44OBDQor44OV44Kv44OP44OpLOODpuOCreOCsw0KK+ODleOCr+ODoOODrSzjg5Ljg63jg5Xjg58NCivjg5Xjgrjjgqbjg6ks44Ki44OkDQor44OV44K444Kq44KrLOOCs+OCpuOCpOODgeODreOCpg0KK+ODleOCuOOCquOCqyzjg57jg6QNCivjg5Xjgrjjgr8s44K344Ky44OrDQor44OV44K444Oi44OILOODpuOCq+ODqg0KK+ODleOCuOODouODiCzjgqjjg6rjgrMNCivjg5Xjgrjjg6/jg6ks44Ki44Kt44OS44OtDQor44OV44K/44Og44OsLOOCpOOCteOCqg0KK+ODleODq+OCteODryzjgqTjg4Hjg63jgqYNCivjg5Xjg6vjgr8s44OS44K144KqDQor44OV44Or44OkLOODkuODh+OCqg0KK+ODm+OCs+ODqSzjg57jg4TjgqoNCivjg5vjgrfjg44s44K544Of44KqDQor44Ob44K344OOLOOCv+ODouODhA0KK+ODm+OCveODjizjg5Ljg63jg5/jg4ENCivjg5vjg6os44OI44K3DQor44Ob44Oq44Km44OBLOOCqOODhOOCqg0KK+ODm+ODquOCquOCqyzjg6TjgrnjgqoNCivjg5vjg6rjgrDjg4Es44K444Ol44Oz44Kk44OBDQor44Ob44Oz44OeLOOCpOOCteOCqg0KK+ODnuOCqOOCq+ODryzjg4jjg6Ljg6bjgq0NCivjg57jgqjjgrjjg54s44Kz44Km44K4DQor44Oe44Ko44OALOODiOOCt+ODkuODrQ0KK+ODnuOCqOODj+ODqSzjg4jjgrfjg5LjgrMNCivjg57jgq0s44K344Ky44OO44OqDQor44Oe44Kt44OOLOOCv+OCseOCqg0KK+ODnuOCueOCpCzjg5Ljg63jgrcNCivjg57jgrnjg4As44Kt44Oo44K3DQor44Oe44K544OALOODnuOCteODn+ODhA0KK+ODnuODhOOCpCzjgqvjg7PjgrgNCivjgq/jg57jgqzjgqQs44Kr44OE44OS44KzDQor44Kr44ON44KzLOODquODp+OCpuOCuA0KK+OCs+ODn+ODpCzjg47jg5zjg6sNCivjgrPjgqzjgqTjg4gs44Of44OB44KzDQor44Kr44Oz44OQ44Ok44K3LOODhuODq+ODnuOCtQ0KK+OCreODjuOCt+OCvyzjg4/jg6vjg5LjgrMNCivjgq3jgq/jg4Es44Of44OO44OrDQor44Kz44Oe44OQLOODpuOCv+OCqw0KK+OCs+OCr+ODlizjg5/jg4TjgrMNCivjgrPjg5Djg6Tjgrcs44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOODhuODq+OCqg0KK+OCreODhOOCv+OCqyzjg4Hjg6XjgqbjgrHjg7MNCivjg57jg4Tjgqos44K/44Kr44Om44KtDQor44Kr44Ov44KkLOODnuODiuODlg0KK+OCr+ODquODj+ODqSzjg4jjgqrjg6sNCivjgqvjg4njg44s44OS44Ot44Oo44K3DQor44Kr44Of44Kv44OcLOOCseODs+OCuA0KK+OCq+ODr+OCsOODgSzjgr/jgqvjgrcNCivjgqvjg57jgr8s44Oe44K144Oi44OIDQor44Kr44Oz44OALOOCq+OCuuODnw0KK+OCq+ODs+ODgCzjg5/jg4TjgqoNCivjgrPjgrfjg6Djg6ks44OI44K344Om44KtDQor44Oe44OE44KqLOOCreODqOOCtw0KK+OCr+OCteOCrSzjgrjjg6Xjg7PjgrgNCivjgqvjg6Ljg4/jg6ks44Oe44K144OV44OfDQor44Kr44K144K444OeLOODiOOCt+ODnuOCtQ0KK+ODnuODhOOCrSzjg6jjgrfjgqvjgroNCivjgqvjg5/jgq/jg6ks44OE44ON44KqDQor44Kv44Oq44OP44OpLOODjuODluOCouOCrQ0KK+ODiuOCq+ODgSzjgq3jg6jjgrcNCivjgqvjgqzjg68s44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOOCu+OCpOOCuA0KK+OCq+ODs+ODjizjg4jjgrfjgqoNCivjg57jg4Tjgrfjgr8s44OV44Of44KqDQor44Kr44K344Ov44OALOOCquOCteODoA0KK+OCs+ODs+ODjizjgqvjgrrjgqoNCivjgrPjgrnjgq4s44Oo44K344OfDQor44Kz44Oi44OqLOODiOOCt+ODreOCpg0KK+OCq+ODr+ODjizjg6bjgq3jgqoNCivjgq3jgr/jg6Djg6ks44K/44Kx44OS44KzDQor44Kr44K444OeLOODhuODhOODpA0KK+OCq+ODiOOCpizjg5Ljg4fjgqoNCivjgrPjg6Tjg44s44Om44Kt44KqDQor44Kr44OE44Oe44K/LOODiOOCt+OCq+OCug0KK+OCr+ODr+ODgCzjgrHjgqTjgrgNCivjgrPjgr/jg4ss44Ok44Oe44OIDQor44Kr44K444Km44OBLOODjuODluOCsw0KK+OCs+ODs+ODiSzjgr/jgqvjgrcNCivjgrPjg7Pjg4ks44Oo44K344Kr44K6DQor44Oe44OE44OK44OfLOOCt+ODs+ODpA0KK+OCq+OCrOODpOODnizjg57jgrXjg4/jg6sNCivjgqvjg43jgrMs44Ok44K544OS44KzDQor44Kz44Ok44OeLOODpOOCueODj+ODqw0KK+OCreODhOOCq+ODryzjgrPjgqbjgrvjgqQNCivjgqvjgrfjgq/jg6ks44Kr44Oz44K4DQor44Kv44Ot44KtLOODqOOCt+ODpuOCrQ0KK+OCs+OCpOOCuuODnyzjgrfjg6Xjgqbjg5jjgqQNCivjgq/jgrws44Of44Kt44KqDQor44Kr44Ov44Kr44OfLOOCseOCpOOCsw0KK+OCq+ODnyzjgrXjg4HjgqoNCivjgq3jg6Djg6ks44OI44Kq44OrDQor44Oe44OE44OOLOOCq+OCuuODkuOCtQ0KK+OCreOCr+OCvyzjgqrjgrXjg6ANCivjgq/jg57jg4As44Oe44K144Ki44KtDQor44Kv44OL44OP44OpLOOCt+ODpeODs+OCpOODgQ0KK+OCs+OCuOODnizjg6bjgr/jgqsNCivjgq/jg6rjg4/jg6ks44Oe44K144OO44OqDQor44Oo44ON44Kv44OpLOODqOOCt+OCv+ODnw0KK+OCs+ODkOODpOOCtyzjg4Tjg43jgqoNCivjgrPjg5Djg6Tjgrcs44OG44OE44KqDQor44Kz44K444On44KmLOOCteODiuOCqA0KK+OCreODoOODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44Oe44K144Ki44KtDQor44Kz44Oz44OJLOODjuODluOCq+OCug0KK+OCq+ODr+OCpCzjg4jjgrfjgqvjg4QNCivjgq/jg57jg4/jg6ks44Kx44Oz44K4DQor44Kt44K7LOODn+ODgeODpOOCuQ0KK+OCq+OCt+OCr+ODnizjgrHjg7Pjgr7jgqYNCivjgqvjgrMs44K444Ol44Oz44Kk44OBDQor44Kk44K344Ks44KkLOODqOOCt+OCouOCrQ0KK+OCq+ODn+OCsOODgSzjgr/jg4DjgrcNCivjgq/jg6Ljg4As44OI44K344KqDQor44Kz44Oe44OELOOCt+ODp+OCpuOCpOODgQ0KK+OCq+ODjeODgCzjg5/jg4TjgqoNCivjgq3jgq/jg4Es44Oo44K344OS44K1DQor44Kz44K/44OLLOODqOOCt+ODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjg4gNCivjgqvjg6/jgrDjg4Es44Oo44K344KqDQor44Kr44ON44KzLOODkuODreOCouOCrQ0KK+OCq+ODoizjg6jjgrfjgqLjgq0NCivjgqvjg6/jg6Djg6ks44Ko44Kk44K4DQor44Kv44Oe44OOLOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqgNCivjgq3jg6Djg6ks44Kr44K644OS44K1DQor44Kt44K344Oi44OILOODkuODreODkuOCtQ0KK+OCreODoOODqSzjgq3jgrfjgqoNCivjgqvjg5/jgrDjg4Es44OG44OE44OkDQor44Kt44Og44OpLOODnuOCteODj+ODgQ0KK+OCs+ODkOODpOOCtyzjgrfjg6Xjg7PjgrgNCivjgqvjg4njgq/jg6ks44Kr44OK44KzDQor44Kt44K/44Og44OpLOODkuODh+ODqA0KK+OCq+ODhOOCrSzjg5LjgrXjgrcNCivjgqvjg7Pjgrbjgq0s44Oe44K144OO44OWDQor44Kr44K/44Ku44OqLOOCpOOCr+ODnw0KK+OCs+ODkOODpOOCtyzjg47jg5bjgrMNCivjgrPjg57jg4Tjgrbjgq0s44Kz44Km44K+44KmDQor44Kt44K/LOODkuODreODjuODqg0KK+OCq+ODhOODj+ODqSzjgrfjg6XjgqYNCivjgrPjgrDjg6ws44Ki44Kt44KoDQor44Kz44K444OeLOOCouODhOOCtw0KK+OCs+ODoeODgCzjg5LjgrXjgrcNCivjgrPjg4vjgrcs44Kx44Oz44Kk44OBDQor44Kv44Ov44OP44OpLOODpOOCueODnuOCtQ0KK+OCs+ODpOODnizjg5Ljg4fjgqLjgq0NCivjg57jg4Tjg6Ljg4gs44OO44Oq44Om44KtDQor44Kr44K444Oi44OILOODqOOCt+OCouOCrQ0KK+OCr+ODnuOCtuODryzjgqvjg4Tjg58NCivjgq3jg6Djg6ks44OI44K344KqDQor44Kz44OQ44K344Ks44OvLOODkuODiOOCtw0KK+OCq+ODn+ODpCzjg6bjgqYNCivjg57jg4Tjg6Ljg4gs44K344On44Km44K4DQor44Kz44OP44K3LOOCqOOCpOOCvuOCpg0KK+OCs+ODgOODnizjgrzjg7PjgqTjg4ENCivjgqvjg6/jgqvjg58s44Kr44K644OfDQor44Oe44OE44Oi44OILOODj+ODq+OCqg0KK+OCq+OCpOODiSzjg5/jg5sNCivjgq3jg6Djg6ks44OI44K344KqDQor44Kv44K0LOOCreODqOODnw0KK+ODnuODhOODouODiCzjg6jjgrfjg6bjgq0NCivjg57jg4Tjg6Tjg54s44Oq44On44Km44K544KxDQor44Oe44Or44Ok44OeLOOCteODgeOCsw0KK+OCs+ODs+ODjizjgq3jg6jjgrcNCivjgq/jg63jgq0s44K444Ol44OzDQor44Kz44Of44OkLOODquODp+OCpuOCsw0KK+OCreODoOODqSzjg4rjgqrjg6bjgq0NCivjgq3jg44s44Of44KiDQor44Kz44Oe44OELOODpuOCrQ0KK+OCq+ODjeODgeOCqyzjg6rjg6fjgqbjgrnjgrENCivjgqvjg4rjgr/jg4ss44Oq44KoDQor44Kz44OQ44Ok44K3LOODqOOCt+ODreOCpg0KK+OCreOCv+ODpOODnizjgqvjg4rjgrMNCivjgqvjgrgs44OS44Ot44KzDQor44Kr44Ov44K344OeLOODiuOCquOCrQ0KK+OCreODoOODqSzjg57jgq3jgrMNCivjgrPjg5Djg6ks44K/44Kv44OeDQor44Kt44K/44Ks44OvLOODiuOCquOCv+OCqw0KK+ODnuODq+ODpOODnizjg4rjg5vjgrMNCivjgqvjg6Ljg7Ms44Oe44K144K3DQor44Of44Km44OpLOOCv+OCq+OCtw0KK+ODn+OCt+ODnizjgqvjg4Tjg5Ljg60NCivjg5/jgrnjgq4s44OI44Oi44Ki44KtDQor44Of44K644K/LOOCuOODpeODs+OCsw0KK+ODn+OCuuODouODiCzjg4rjg6vjgq0NCivjg5/jgr7jgrDjg4Es44Oe44K144KzDQor44Of44K644KrLOODpuOCv+OCqw0KK+ODn+ODiuODnyzjgr/jgrHjg6sNCivjg5/jg4rjg5/jgr/jg4ss44Oe44K144OIDQor44Of44ON44K/LOODpuOCreOCsw0KK+ODn+ODpOOCpCzjgrPjgqbjgr8NCivjg5/jg6Tjgqrjgqss44Kx44Oz44Ot44KmDQor44Of44Ok44K244KtLOODnuODpuODnw0KK+ODn+ODpOOCtuOCrSzjgrjjg6Xjg6oNCivjg5/jg6Tjg4/jg6ks44K/44OE44OS44KzDQor44Of44Oo44K3LOOCouOCreODjuODlg0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5Ljg4cNCivjg6Djg6njgq0s44Ki44OE44KzDQor44Og44Op44K/LOOCseODs+OCuA0KK+ODoOODqeOCvyzjg5/jg4Hjg6QNCivjg6Djg6njgr8s44Oh44Kw44OfDQor44Og44Op44Ok44OeLOODnuOCteOCsw0KK+ODouODiOODjizjg6Tjgrnjg57jgrUNCivjg6Ljg6os44OI44K344Om44KtDQor44Oi44OqLOODiuOCqg0KK+ODouODquOCvyzjg5Ljg4fjg4jjg6INCivjg6Ljg6rjgr8s44Oq44KoDQor44Oi44Oq44Ok44OeLOOCouODhOOCtw0KK+ODouODquODpOODnizjgqvjgqrjg6oNCivjg6Tjgrbjg68s44Kr44K644KzDQor44Ok44K444OeLOODiOODouODkuODrQ0KK+ODpOODiuOCruODgCzjgqjjg6rjgrMNCivjg6Tjg57jgqzjgr8s44Kx44Kk44Kk44OBDQor44Ok44Oe44Kr44OvLOOCt+ODs+ODpA0KK+ODpOODnuOCsOODgSzjgrXjg4jjg58NCivjg6Tjg57jgrDjg4Es44Om44KtDQor44Ok44Oe44Kw44OBLOOCv+ODgOODpuOCrQ0KK+ODpOODnuOCteOCrSzjg57jgrXjgq0NCivjg6Tjg57jgrbjgq0s44Kx44OzDQor44Ok44Oe44K344K/LOOCt+ODpeOCr+ODmw0KK+ODpOODnuODgCzjg6jjgrfjgqLjgq0NCivjg6Tjg57jg4As44Kx44Oz44Kk44OBDQor44Ok44Oe44OALOOCt+ODpeODsw0KK+ODpOODnuODiuOCqyzjg57jgrXjgrcNCivjg6Tjg57jg40s44K344Oz44K0DQor44Ok44Oe44Oi44OILOODpOOCueODjuODqg0KK+ODpOODnuODouODiCzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44OH44Om44KtDQor44Om44Kr44OvLOOCteODiOOCtw0KK+ODpuOCtizjgqLjgq3jgrMNCivjg6bjgr/jg4ss44Oq44KoDQor44Om44K/44OLLOODgOOCpOOCueOCsQ0KK+ODqOOCtCzjg4jjg6Ljg47jg6oNCivjg6jjgrPjg5zjg6os44Oe44K144K/44KxDQor44Oo44K344Kq44KrLOOCv+ODgOOCouOCrQ0KK+ODqOOCt+OCq+ODryzjg5Ljg63jg58NCivjg6jjgrfjg4As44OS44Ot44K/44KrDQor44Oo44K344OALOOCreODp+OCpuOCsw0KK+ODqOOCt+ODouODiCzjg6Ljg4jjgqoNCivjg6jjg43jg4As44Om44Of44KzDQor44Ov44Kr44K144OkLOOCt+OCuuOCqw0KK+ODr+OCv+ODiuODmSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg6/jgr/jg4rjg5ks44Ok44K544OS44OtDQor44Of44OE44Ok44OeLOODnuOCteODnw0KK+ODkuODqeOCquOCqyzjg6rjgrUNCivjgqvjg7Pjg44s44Kr44OE44OIDQor44Ov44KzLOODquOCqA0KK+OCouOCquOCrSzjg6/jgr/jg6sNCivjgqLjgqvjgqos44Oe44K144OO44OqDQor44Ki44Kr44KuLOODquODp+OCpuODmOOCpA0KK+OCouOCq+OCtyzjg5Ljg63jgrMNCivjgqLjgqvjg4Tjgqss44Ok44K544Om44KtDQor44Ki44Kr44OP44ONLOODkuODreOCouOCrQ0KK+OCouOCq+ODm+ODqizjg6bjgqbjgrMNCivjgqLjgq3jg6Ljg4gs44OB44KoDQor44Ki44Kt44Ok44OeLOODn+ODmw0KK+OCouOCteOCpCzjg57jgrXjgqvjgroNCivjgqLjgrXjg44s44Ok44K544OS44OtDQor44Ki44K144OSLOOCouOCteOCsw0KK+OCouOCteODmSzjgqvjg6gNCivjgqLjg4/jg6zjg7Ms44OA44Kk44K544KxDQor44Ki44OZLOODiOOCt+ODkuOCsw0KK+OCouODmSzjgqvjgqrjg6sNCivjgqLjg5ks44OS44Ot44OV44OfDQor44Ki44Oe44OOLOODnuOCteODnw0KK+OCouODoeODouODqizjgqLjg6rjgrUNCivjgqLjg6njgqQs44OS44OH44KqDQor44Ki44Op44KkLOOCqOODhOOCsw0KK+OCouODqeOCpCzjgqvjg4Tjg5Ljg60NCivjgqLjg6njgr/jg4ss44K144OE44KtDQor44Ki44Oq44OK44KrLOODiOODouODkuODrQ0KK+OCpOOCpOOCtCzjg47jg6rjgqLjgq0NCivjgqTjgqTjg4As44Oe44Om44OfDQor44Kk44Kx44OALOODqOOCt+OCv+OCqw0KK+OCpOOCs+OCrCzjgqjjg5/jgrMNCivjgqTjgrfjgqQs44Kr44Kq44OqDQor44Kk44K344Kq44KrLOOCv+OCq+OCtw0KK+OCpOOCt+OCtuOCqyzjg6bjgq3jgqgNCivjgqTjgrfjgrjjg54s44Of44KqDQor44Kk44K344OALOODpuOCpA0KK+OCpOOCt+ODiSzjg6bjgq3jgrMNCivjgqTjgrfjg44s44K/44Kr44KqDQor44Kk44K344Oe44OW44K3LOOCouOCreODkuODiA0KK+OCpOOCu+ODqizjgqrjg4jjg5LjgrMNCivjgqTjgr3jg5ks44OP44Or44KrDQor44Kk44K/44OLLOOCv+OCq+OCouOCrQ0KK+OCpOOCuuODjizjg5/jg4Tjg5Ljg60NCivjgqTjg4fjg44s44Oo44Km44OY44KkDQor44Kk44OI44KmLOODqOOCpuOCsw0KK+OCpOODiOOCpizjg5/jg4Tjgr/jgqsNCivjgqTjg4jjgqYs44Oo44K344Ki44KtDQor44Kk44OI44KmLOODpuOCq+ODqg0KK+OCpOODiOOCpizjg57jg4oNCivjgqTjg4jjgqYs44K/44Kx44K3DQor44Kk44OI44Ok44OeLOOCouODhOOCtw0KK+OCpOODiizjgqLjgq3jg6kNCivjgqTjg4rjgrXjgq0s44Ok44K544OO44OqDQor44Kk44OK44OQLOODqOOCpuOCueOCsQ0KK+OCpOODiuODkCzjgr/jg4DjgrcNCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kk44OO44Km44KoLOODjuODluOCv+OCqw0KK+OCpOODjuOCpuOCqCzjg57jg6rjgrMNCivjgqTjg5ks44Kt44On44Km44KzDQor44Kk44Oe44KkLOODpuOCreOCqA0KK+OCpOODnuOCquOCqyzjgrfjg6Xjgqbjg5jjgqQNCivjgqTjg57jg6Djg6ks44Oe44K144K3DQor44Kk44Ov44K/LOOCv+OCseODkuODrQ0KK+OCpOODr+OCvyzjg6jjgrfjg5Ljg60NCivjgqTjg6/jgr8s44Kq44K144OgDQor44Kk44Ov44OfLOODpuOCpuOCsw0KK+OCpOODr+ODouODiCzjgrHjg7PjgqTjg4Hjg60NCivjgqbjgqjjg4As44Os44Kk44KzDQor44Km44Ko44OOLOOCteODqQ0KK+OCpuOCqOODj+ODqSzjgr/jgqvjg47jg6oNCivjgqbjgqvjgqQs44OS44K144OK44KsDQor44Km44OA44Ks44OvLOODpuOCpuOCpOODgQ0KK+OCpuODgeODpOODnizjg5Ljg63jg57jgrUNCivjgqbjg4Tjg58s44OS44Ot44Om44KtDQor44Km44OE44OfLOODnuODquOCsw0KK+OCpuODjizjg57jgrPjg4gNCivjgqjjgqzjgrfjg6ks44K344Ol44Oz44K544KxDQor44Ko44OI44KmLOODkuODreOCrQ0KK+OCqOODiOODnyzjg5Ljg4fjg58NCivjgqjjg7Pjg4ks44Oh44Kw44OfDQor44Ko44Oz44OJLOODkuODreOCrQ0KK+OCquOCq+ODiSzjgr/jgqvjg5LjgrUNCivjgqrjgqrjgq/jg6ks44OS44Ot44KzDQor44Kq44Kq44K144KrLOOCv+ODhuOCrQ0KK+OCquOCquOCteOCqyzjgrPjgqbjgr/jg63jgqYNCivjgqrjgqrjgrXjg68s44K144OBDQor44Kq44Kq44K544OfLOOCteODiOOCsw0KK+OCquOCvyzjg4HjgqjjgrMNCivjgqrjgqrjgr/jg4ss44Oe44Kz44OIDQor44Kq44Kq44OL44K3LOODnuOCteODkuODrQ0KK+OCquOCquODi+OCtyzjg5/jg4Tjg6sNCivjgqrjgqrjg4vjgrcs44Og44K144K3DQor44Kq44Kq44OL44K3LOODnuOCteOCqg0KK+OCquOCquODjizjg4rjg5vjgrMNCivjgqrjgqrjg44s44Of44Kr44KzDQor44Kq44OOLOODqOOCpuOCsw0KK+OCquODnuODhCzjg6jjgqbjgrnjgrENCivjgqrjg6Djg6ks44OI44Oi44KzDQor44Kq44Kq44OkLOODpuOCreOCqA0KK+OCquOCqyzjg47jg6rjg5Ljg4gNCivjgqrjgqvjgqQs44Kx44Oz44Kk44OBDQor44Kq44Kr44Km44OBLOODiOODouODjuODqg0KK+OCquOCq+ODgCzjg6bjgqbjgq0NCivjgqrjgqvjg4As44Oe44Oq44KzDQor44Kq44Kr44OOLOODpOOCueODleODnw0KK+OCquOCq+ODoOODqSzjgqLjgqvjg6oNCivjgqrjgqvjg6Ljg4gs44K944KmDQor44Kq44Ks44OvLOOCpOOCuuODnw0KK+OCquOCrOODryzjgrPjgrrjgqgNCivjgqrjgqzjg68s44Kt44Oz44OkDQor44Kq44Ks44OvLOODn+ODgeOCsw0KK+OCquOCrOODryzjgr/jgq/jg6QNCivjgqrjgqzjg68s44Om44Of44KzDQor44Kq44Ku44OOLOOCqOODquOCsw0KK+OCquOCryzjgrXjg6TjgqsNCivjgqrjgq/jgqvjg68s44OS44Ot44Ki44KtDQor44Kq44Kv44OALOOCouOCreOCqg0KK+OCquOCr+ODoOODqSzjgrXjg4jjgrMNCivjgqrjgrbjgq0s44K/44Kr44Om44KtDQor44Kq44K444OeLOOCv+OCq+OCtw0KK+OCquOCvOOCrSzjgrHjgqTjgqTjg4ENCivjgqrjg4As44OS44Ot44Om44KtDQor44Kq44OALOOCouODhOOCsw0KK+OCquODgeOCouOCpCzjg4rjgqrjgq0NCivjgqrjg4jjgqzjg68s44Oq44On44Km44KzDQor44Kq44OOLOODn+OCuuOCrQ0KK+OCquOCquODj+ODqSzjgrHjgqTjgrMNCivjgqvjgqTjgrjjg54s44Kx44Oz44K/DQor44Kr44Ks44OvLOODiOODouODn+ODhA0KK+OCq+OCreOCqizjgr/jgqvjg6QNCivjgqvjgrHjg5Is44OI44Oi44OfDQor44Kr44K144KkLOODiuOCquOCsw0KK+OCq+OCteODnyzjg6jjgrfjg5Xjg58NCivjgqvjgrjjgr8s44Kx44Kk44Kk44OBDQor44Kr44K444K/44OLLOODnuOCteODiuODqg0KK+OCq+OCt+ODnizjg6Tjgrnjg5Ljg60NCivjgqvjgrfjg54s44Om44Km44KzDQor44Kr44K444Oi44OILOOCouODpOOCsw0KK+OCq+OCueOCrCzjgrXjg4rjgrMNCivjgqvjgrss44Os44Kk44KzDQor44Kr44K/44Ku44OqLOOCq+OCuuOCt+OCsg0KK+OCq+OCv+ODpOODnizjg6rjg6fjgqbjgrMNCivjgqvjgr/jg6Tjg54s44Om44Km44K4DQor44Kr44OI44KmLOODkuODiOOCtw0KK+OCq+ODiOOCpizjgq/jg4vjgqLjgq0NCivjgqvjg4jjgqYs44Kx44Oz44Kk44OB44OtDQor44Kr44OK44K244OvLOODkuODreOCq+OCug0KK+OCq+ODjeODn+ODhCzjg4jjg6Ljg47jg6oNCivjgqvjg47jgqYs44Om44Kt44KoDQor44Kr44Oe44K/LOODkuODreOCv+OCqw0KK+OCq+ODn+OCtuOCrSzjg57jgrXjg4jjgrcNCivjgqvjg58s44Oo44Km44Kk44OBDQor44Kr44Oh44K/44KrLOOCv+OCpOOCueOCsQ0KK+OCq+ODoizjgrHjg7Pjg6QNCivjgqvjg6/jgqQs44OI44Oi44Kr44K6DQor44Kr44Ov44KkLOOCuOODpeODqg0KK+OCq+ODr+OCq+ODnyzjgr/jgqvjgrcNCivjgqvjg6/jgqvjg58s44Of44KqDQor44Kr44Ov44Kw44OBLOOCouODpuODnw0KK+OCq+ODr+OCsOODgSzjgqvjgrrjg5Ljg4cNCivjgqvjg6/jgrDjg4Es44K144OI44K3DQor44Kr44Ov44K144KtLOOCuOODsw0KK+OCq+ODr+OCteOCrSzjg4rjgqrjgq0NCivjgqvjg6/jg4rjg58s44Ki44Kt44KzDQor44Kr44Ov44ONLOOCq+ODiuOCsw0KK+OCq+ODr+ODkOOCvyzjgqLjg6bjg58NCivjgqvjg6/jg6Djg6ks44Oi44KmDQor44Kr44Ov44Oi44OILOODpuOCpg0KK+OCq+ODs+ODgCzjg5/jg4njg6oNCivjgqvjg7Pjg4As44OK44Kq44K3DQor44Kr44Oz44OOLOODnuOCteOCsw0KK+OCreOCt+ODouODiCzjgrHjg7Pjgr/jg63jgqYNCivjgq3jgr/jgqzjg68s44K/44Kx44K3DQor44Kt44K/44OP44OpLOODiOODouODj+ODqw0KK+OCreOCv+ODoOODqSzjgrfjg6fjgqYNCivjgq3jgr/jg6Djg6ks44K344Oz44K0DQor44Kt44OM44OkLOODiOOCt+ODnw0KK+OCreODjuOCt+OCvyzjg4bjg4QNCivjgq3jg4/jg6ks44K/44OE44OkDQor44Kt44Og44OpLOODqOOCt+OCq+OCug0KK+OCreODoOODqSzjg57jgrXjg5Ljg60NCivjgq3jg6Djg6ks44Ki44Kt44Oo44K3DQor44Kt44Og44OpLOOCuOODpeODsw0KK+OCreODqOOCt+ODnizjg4/jg6vjg58NCivjgq3jg6jjgrrjgqss44Om44KtDQor44Kt44OpLOOCv+OCq+OCtw0KK+OCreODquOCteOCsyzjg4bjg4Pjg5rjgqQNCivjgq3jg7Ms44K144Om44OqDQor44Kt44OzLOODiuOCquOCsw0KK+OCr+ODi+OCqOODgCzjgqvjgrrjgqLjgq0NCivjgq/jg5ws44K044KmDQor44Kv44Oe44OOLOOCv+OCseODiA0KK+OCr+ODqeOCvyzjgqLjgq3jg5Ljg60NCivjgq/jg6njg4/jgrcs44K/44Kr44Ki44KtDQor44Kv44OsLOODiOOCquODqw0KK+OCr+ODreOCpCzjg6jjgrfjgr/jgqsNCivjgq/jg63jgq0s44Om44Km44KzDQor44Kv44Ov44OOLOODkuODreOCv+OCqw0KK+OCtOOCpizjgrXjgqgNCivjgrTjgqbjg4As44K/44Kx44OS44OtDQor44Kz44KsLOOCseOCpA0KK+OCs+OCr+OCt+ODp+OCpizjg4Tjg6jjgrcNCivjgrPjgrXjgqss44K344Ol44Km44Kk44OB44Ot44KmDQor44Kz44K444OeLOODquODp+OCpuOCueOCsQ0KK+OCs+OCvuODjizjgqLjgqTjg68NCivjgrPjg4Djg54s44Kk44Kv44KqDQor44Kz44OG44OpLOOCreODn+ODkuODrQ0KK+OCs+ODh+ODqSzjgrfjg7Pjgr/jg63jgqYNCivjgrTjg4jjgqYs44K/44OA44OO44OqDQor44K044OI44KmLOODkuODreOCsw0KK+OCs+ODi+OCtyzjg5/jgrXjgq0NCivjgrPjg4vjgrcs44Oo44Km44KzDQor44Kz44OL44K3LOODiOODouODpA0KK+OCs+ODkOODpOOCtyzjg4rjg4TjgrMNCivjgrPjg5Djg6Tjgrcs44Kz44Km44K4DQor44Kz44OQ44Ok44K3LOODgeOCqA0KK+OCs+ODkOODpOOCtyzjg4Tjg6jjgrcNCivjgrPjg5bjgrss44OS44OH44Om44KtDQor44Kz44Oe44KtLOODkuODreODiuOCqg0KK+OCs+ODnuOCtuODryzjgr/jgqvjg57jgrUNCivjgrPjg57jg4Tjg5Djg6ks44OI44Oi44OS44K1DQor44Kz44Ok44OeLOOCpOODgeODreOCpg0KK+OCs+ODs+ODiSzjg5Ljg63jgrMNCivjgrXjgqTjgq0s44Kr44Kq44OrDQor44K144KkLOOCq+OCuuODpA0KK+OCteOCpOODiOOCpizjgq3jg6fjgqbjgrMNCivjgrXjgqTjg4jjgqYs44Kz44Km44Kk44OBDQor44K144Kk44OI44KmLOODhuODq+ODkuOCtQ0KK+OCteOCpOODiOOCpizjg4/jgrjjg6ENCivjgrXjgqTjg4jjgqYs44OS44Ot44OfDQor44K144Kk44OI44KmLOODleODn+OCsw0KK+OCteOCpOODiOOCpizjg5Ljg4jjgrcNCivjgrXjgqTjg4jjgqYs44Oe44Kt44KzDQor44K144Kr44KkLOOCv+OCq+ODpuOCrQ0KK+OCteOCq+ODnyzjgr/jgqvjgrcNCivjgrXjgqvjg6Ljg4gs44Kz44Km44K4DQor44K144Kr44Oi44OILOODkuODh+OCrQ0KK+OCteOCq+ODouODiCzjg57jgrXjg6jjgrcNCivjgrXjgqvjg6Ljg4gs44OK44OK44KzDQor44K144Kr44Oi44OILOODqOOCpuOCpOODgeODreOCpg0KK+OCteOCr+ODqeOCpCzjgrXjg4Djg6jjgrcNCivjgrXjgq/jg6njgq4s44OK44Ob44KzDQor44K144K144KtLOODnuOCteOCrQ0KK+OCteOCteOCrSzjg6bjg5/jgqgNCivjgrXjg4jjgqYs44OV44Kv44K/44Ot44KmDQor44K144OI44KmLOOCt+ODpeOCpuOCteOCrw0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgrXjg4jjgqYs44Ki44KtDQor44K144OI44KmLOOCseODs+OCpOODgeODrQ0KK+OCteODiOOCpizjgqvjgrrjg5/jg4ENCivjgrXjg4jjgqYs44Om44OfDQor44K144OI44KmLOODquODp+OCpuOCueOCsQ0KK+OCteODjizjg4jjgqrjg6sNCivjgrXjg44s44Oq44On44Km44K544KxDQor44K144Ov44K144KtLOOCv+OCq+OCtw0KK+OCteODr+ODgCzjg5Ljg63jgrMNCivjgrXjg7Pjg5rjgqQs44K144OI44OrDQor44K344Kq44K644KrLOOCouODhOOCtw0KK+OCt+ODjizjgqvjgrrjg47jg6oNCivjgrfjg5Djgr8s44Kr44K644K/44KrDQor44K344OeLOOCuOODpeODsw0KK+OCt+ODnuODjizjg4jjgrfjgqLjgq0NCivjgrfjg5/jgros44Oo44K344KzDQor44K344Of44K6LOODnuODnw0KK+OCt+ODouOCq+ODryzjg6jjgrfjgqrjg58NCivjgrfjg6Ljg6Djg6ks44Ko44Kk44OWDQor44K344Ol44Kv44OqLOODnuODiuODnw0KK+OCt+ODp+OCpuOCuOODnizjgr/jg4TjgqoNCivjgrfjg6fjgqbjg4As44Kv44OfDQor44K344Op44Kk44K3LOODjuODquOCq+OCug0KK+OCt+ODqeOCq+OCvyzjgrjjg6Xjg7MNCivjgrfjg6njgrXjgq0s44Oi44Oi44KzDQor44K344Ot44K/LOODnuOCteODkuODrQ0KK+OCuOODs+OCsOOCpuOCuCzjgrfjgrLjgqvjgroNCivjgrfjg7Pjgr/jg4ss44Kx44Oz44K/DQor44K344Oz44OcLOODjuODluODpuOCrQ0KK+OCuOODs+ODnCzjg6Ljg4jjg4/jg6sNCivjgrfjg7Pjg6Djg6ks44OS44OH44OI44K3DQor44K544Ks44KkLOODhOODiOODoA0KK+OCueOCruODouODiCzjg5/jg5sNCivjgrnjgq7jg6Ljg6os44OS44Ot44KzDQor44K544Ku44Ok44OeLOOCv+OCq+ODjQ0KK+OCueOCruODpOODnizjgrjjg6Xjg7MNCivjgrnjgq7jg6Tjg54s44K/44Kv44OeDQor44K544K644KtLOOCreOCr+OCsw0KK+OCu+OCrOODryzjgrjjg6Xjg7MNCivjgrvjgq0s44Kx44Oz44K4DQor44K744Kt44ONLOODkuODreOCtw0KK+OCu+OCreODouODiCzjgqvjg4TjgqLjgq0NCivjgrvjg4gs44Ki44OE44K3DQor44K744OpLOOCq+OCuuODqOOCtw0KK+OCveODh+ODpOODnizjgr3jg6njgrMNCivjgr3jg47jgqQs44OG44Or44KoDQor44K/44Kk44OpLOODnuOCteOCtw0KK+OCv+OCq+OCrSzjg5/jg4Hjg6sNCivjgr/jgqvjg4/jgrcs44Os44KkDQor44K/44Kr44OP44K3LOODn+ODjeOCsw0KK+OCv+OCq+ODj+OCtyzjg4jjg6LjgqoNCivjgr/jgqvjg4/jg54s44Kz44Km44KtDQor44K/44Kr44Of44OkLOODgeODj+ODqw0KK+OCv+OCq+ODpOODiuOCrizjgqvjgrrjg5LjgrMNCivjgr/jgqvjg6Tjg54s44K144OI44K3DQor44K/44Kw44OBLOODr+OCv+ODqw0KK+OCv+OCseOCpuODgSzjgqLjg4TjgrcNCivjgr/jgrHjgrbjgq0s44Oe44Om44KzDQor44K/44Kx44K344K/LOOCteODiOODnw0KK+OCv+OCseODouODiCzjg5Ljg63jg4jjg6INCivjgr/jg4As44Ki44OE44KzDQor44K/44OB44Kr44OvLOODnuOCs+ODiA0KK+OCv+ODgeODkOODiizjg4rjgqrjg4gNCivjgr/jg4Tjgqzjg68s44OI44Oi44KzDQor44K/44OK44KrLOODpOOCueODjuODqg0KK+OCv+ODiuOCqyzjgqLjgq3jg6gNCivjgr/jg4rjgqss44Oe44K144K/44KrDQor44K/44OK44KrLOOCs+OCpuOCueOCsQ0KK+OCv+ODiuOCqyzjgrXjg4HjgqgNCivjgr/jg4rjgqss44K344On44Km44OY44KkDQor44K/44OK44OZLOODjuODquOCsw0KK+OCv+ODi+OCsOODgSzjgr/jgrHjgrcNCivjgr/jg4vjg6/jgq0s44OS44Ot44OV44OfDQor44K/44OQ44K/LOODqOOCt+ODkuOCtQ0KK+OCv+ODj+ODqSzjgrHjg7PjgrgNCivjgr/jg57jgq0s44OK44Kq44KzDQor44K/44Oe44Og44OpLOODnuOCs+ODiA0KK+OCv+ODq+ODnyzjg5Ljg63jg58NCivjgr/jg7Pjg5Djg6ks44Oq44On44Km44KzDQor44OB44Kr44OELOODhuODhOODkuOCsw0KK+ODgeODkCzjgqvjg5vjg6oNCivjg4Hjg6fjgqYs44Oq44On44Km44K/DQor44OE44Kr44OALOODhuODhOODpA0KK+ODhOOCq+ODouODiCzjgrXjg4HjgqsNCivjg4Tjgrjjg6Ljg4gs44Of44KtDQor44OE44OB44OALOOCseOCpOOCsw0KK+ODhOODgeODpCzjgr/jgqvjgqLjgq0NCivjg4Tjg4Hjg6Qs44OB44Kr44OpDQor44OE44OE44OfLOOCteODiOOCtw0KK+ODhOODnOOCr+ODqSzjgr/jgq/jg6QNCivjg4Tjg6Djg6ks44OI44Oi44KoDQor44OG44K344OeLOOCouOCreOCsw0KK+ODhuODqeOCteOCrSzjg57jgrXjg5Ljg4gNCivjg4bjg6njgrXjgq0s44Kv44OfDQor44OG44Op44OALOOCv+OCseODj+ODqw0KK+ODieOCpCzjg4jjg6LjgrMNCivjg4njgqQs44OO44OW44K/44KrDQor44OI44KmLOODkuODreOCsw0KK+ODiOOCreOCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4jjgq3jg4gs44Oq44On44Km44K544KxDQor44OI44Kv44OALOOCqOODnw0KK+ODiOOCt+OCuuODnyzjg57jg5sNCivjg4jjg4As44K344Ol44Oz44K544KxDQor44OI44Oo44OALOODkuODreOCouOCrQ0KK+ODiuOCpOODiOOCpizjg6rjg6fjgqbjgr8NCivjg4rjgqvjgqQs44Oe44K144OI44K3DQor44OK44Kr44KqLOOCouOCreODkuOCsw0KK+ODiuOCrOOCqizjgqjjg6rjgrMNCivjg4rjgqvjgqzjg68s44OI44Oi44OfDQor44OK44Ks44K144KrLOODn+ODgeOCsw0KK+ODiuOCq+OCteOCqyzjg6Tjgrnjg5Ljg60NCivjg4rjgqzjgrXjgq0s44Om44Km44Kk44OB44OtDQor44OK44Kr44K244OvLOODpuOCpuODmOOCpA0KK+ODiuOCq+OCtuODryzjg6jjgqbjgrMNCivjg4rjgqvjgrfjg54s44Om44Km44OkDQor44OK44Kr44K444OeLOOCqOODn+OCsw0KK+ODiuOCq+OCt+ODnizjgqLjgq3jg5Ljg60NCivjg4rjgqvjgrjjg54s44K344Ol44Km44K/44Ot44KmDQor44OK44Kr44K444OeLOODquODp+OCpuOCueOCsQ0KK+ODiuOCq+ODgCzjgqvjg6jjgrMNCivjg4rjgqvjg4As44Ki44Ok44KzDQor44OK44Ks44OE44KrLOOCpOOCteOCqg0KK+ODiuOCq+ODiCzjgrfjg6XjgqbjgrgNCivjg4rjgqvjg4vjgrcs44Of44OJ44OqDQor44OK44Kr44OL44K3LOOCueOCueODoA0KK+ODiuOCq+ODi+OCtyzjgqTjgr/jg6sNCivjg4rjgqzjg57jg4Qs44Oe44K144OS44OtDQor44OK44Kr44Og44OpLOOCt+OCsuODiOOCtw0KK+ODiuOCq+ODoOODqSzjgq3jg6fjgqbjgrMNCivjg4rjgqvjg6Djg6ks44Ki44Ok44KzDQor44OK44Kr44Og44OpLOODnuODpg0KK+ODiuOCq+ODoOODqSzjgrHjgqTjgrMNCivjg4rjgqvjg6Djg6ks44OK44Kq44KzDQor44OK44Kr44Og44OpLOODkuODreOCq+OCug0KK+ODiuOCq+ODoOODqSzjgrXjg6TjgrMNCivjg4rjgqvjg6Ljg6os44OG44OE44OkDQor44OK44Kr44OkLOODpuOCpuOCuA0KK+ODiuOCq+ODpOODnizjgr/jgrHjgrcNCivjg4rjgrks44Kz44Km44K4DQor44OK44Oq44OI44OfLOOCt+ODs+OCv+ODreOCpg0KK+ODiuODs+ODlizjg4jjg6Ljg6QNCivjg4vjgqTjg58s44Ok44K544K/44KrDQor44OL44K344Kr44OvLOOCveODjuOCsw0KK+ODi+OCt+ODjizjg6bjgqsNCivjg4vjgrfjg6Tjg54s44K/44Kr44OS44OtDQor44OM44Kr44OALOODqOOCt+OCsw0KK+ODjOODnuOCvyzjg6bjgqbjgqTjg4ENCivjg4zjg57jgr8s44K144OI44K3DQor44OO44Ks44OfLOOCteODiOOCtw0KK+ODjuOCrizjgqLjg6TjgrMNCivjg47jgq/jgqos44Kr44Kq44OqDQor44OO44Kw44OBLOOCv+OCq+ODpuOCrQ0KK+ODjuOCtuOCrSzjg4rjg4Tjg40NCivjg47jgrgs44Om44KtDQor44OO44OeLOODrOOCpOOCsw0KK+ODjuODoOODqSzjg57jgrXjgqoNCivjg47jg6Djg6ks44Om44Km44Kk44OBDQor44OQ44Kz44K3LOOCt+ODs+OCtA0KK+ODj+OCt+ODouODiCzjg4rjgqrjgrMNCivjg4/jgrnjg4zjg54s44OB44KoDQor44OP44K7LOODqOOCpuOCpOODgQ0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrcNCivjg4/jgr/jgqzjg68s44K444Ol44Oz44KzDQor44OP44K/44Kx44Ok44OeLOODpuOCpuOCsw0KK+ODj+OCv+ODjizjg6jjgqbjgrMNCivjg4/jg4rjgqQs44Oq44KrDQor44OP44Oe44K144KtLOODnuOCs+ODiA0KK+ODj+ODnuODgCzjg5Ljg63jgr/jgqsNCivjg4/jg57jg4cs44K/44Kr44K3DQor44OP44Ok44Kr44OvLOOCouOCrQ0KK+ODj+ODpOOCtyzjgqLjg6QNCivjg4/jg6Tjgrcs44K144OI44KzDQor44OP44Ok44K3LOOCteODiOOCtw0KK+ODj+ODpOOCtyzjgrjjg6Xjg7MNCivjg4/jg6Tjgrcs44Oo44Km44KzDQor44OP44Ok44K3LOOCueOCueODoA0KK+ODj+ODqSzjg4jjg6Ljg5LjgrUNCivjg4/jg6njgrfjg4os44OO44OW44KtDQor44OP44Op44OALOOCouODhOOCtw0KK+ODj+ODqeODgCzjg5/jg4njg6oNCivjg4/jg6vjg4os44K344Ol44Km44K544KxDQor44OS44Kt44K/LOODkuODh+ODiA0KK+ODkuODgOOCpCzjg57jg6bjg58NCivjg5Ljg6njgqQs44Kt44On44Km44KzDQor44OS44Op44KkLOODpuOCpuOCueOCsQ0KK+ODkuODqeOCpCzjgqjjg6rjgrMNCivjg5Ljg6njgqTjg68s44Kv44Of44KzDQor44OS44Op44KqLOODkuODh+OCq+OCug0KK+ODkuODqeOCq+ODryzjg57jgq0NCivjg5Ljg6njgr8s44Oo44K344Ki44KtDQor44OS44Op44Oe44OELOOCv+OCq+OCqg0KK+ODkuODreOCqCzjgqLjg4TjgrcNCivjg5Ljg63jgrss44OS44OH44OO44OqDQor44OV44Kr44K244OvLOODkuODh+ODpuOCrQ0KK+ODleOCq+ODm+ODqizjg47jg6rjg5Ljg60NCivjg5Xjgq/jgrfjg54s44Oe44Kt44KqDQor44OV44Kv44OALOODkuODreODpuOCrQ0KK+ODleOCr+ODgCzjg5Ljg63jg5Xjg58NCivjg5Xjgq/jg4As44K144Ok44KrDQor44OV44K444KkLOODquOCqOOCsw0KK+ODleOCuOOCq+ODryzjgqvjgrrjg58NCivjg5Xjgrjjgr8s44Kx44Oz44K4DQor44OV44K444K/LOODnuOCteOCqg0KK+ODleOCuOOCvyzjg6jjgrfjg63jgqYNCivjg5Xjgrjjg6Djg6ks44OI44Oi44Om44KtDQor44OV44K444Og44OpLOOCouOCreOCsw0KK+ODleOCuOODouODiCzjgrfjg6fjgqbjg5jjgqQNCivjg5Xjgrjjg6Ljg4gs44Oq44Ol44Km44OY44KkDQor44OV44K444Ov44OpLOOCseOCpOOCteOCrw0KK+ODleOCuOODr+ODqSzjgrXjg4jjgrcNCivjg5Xjgr/jgqvjgr8s44K444Ot44KmDQor44OV44OK44KkLOOCteODgeOCsw0KK+ODleODq+OCq+ODryzjg5Ljg63jgrMNCivjg5Xjg6vjgqvjg68s44K444Ol44Oz44Kk44OBDQor44OV44Or44Oe44K/LOODiOODouODpA0KK+ODm+OCtyzjg6bjgq0NCivjg5vjgrfjgqbjg6ks44OS44Ot44K3DQor44Ob44K344OtLOOCpOODhOODnw0KK+ODm+OCveODgCzjgrfjg6Xjg7PjgrQNCivjg5vjg6os44OO44OW44OS44OHDQor44Ob44OqLOODpuOCrQ0KK+ODm+ODquOCqCzjg47jg5bjg4gNCivjg5vjg6rjgrDjg4Es44OO44K+44OgDQor44Ob44Oz44OKLOOCq+OCquODqw0KK+ODm+ODs+ODnCzjg5Ljg63jg6bjgq0NCivjg57jgqjjgqvjg68s44Of44OvDQor44Oe44Ko44OALOOCs+OCueOCsQ0KK+ODnuOCqOODgCzjgr/jgqvjgrcNCivjg57jgqjjg4As44Ko44OE44KzDQor44Oe44Kt44Km44OBLOOCseOCpOOCuA0KK+ODnuOCreODjizjgrfjg6fjgqbjgrMNCivjg57jgq3jg6Ljg4gs44OI44Oi44OO44OqDQor44Oe44K144OI44Km44OfLOODnuOCpOOCsw0KK+ODnuOCueOCpCzjg6jjgqbjgrnjgrENCivjg57jgrnjg4As44Oe44K144Om44KtDQor44Oe44K544OALOODn+ODmw0KK+ODnuODhOOCpCzjg5/jgqoNCivjg57jg4Tjgqbjg6ks44Kr44K644OS44K1DQor44Oe44OE44Kq44KrLOOCouOCreODkuODrQ0KK+ODnuODhOOCquOCqyzjg4jjg6LjgrMNCivjg57jg4Tjgqrjgqss44Oe44Om44OfDQor44Oe44OE44Kq44KrLOODgOOCpOOCueOCsQ0KK+ODnuODhOOCq+OCsizjg5LjgrXjgqoNCivjg57jg4Tjgrfjgr8s44K144OI44K3DQor44Oe44OE44OK44KsLOODr+OCv+ODqw0KK+ODnuODhOODkOODqSzjg47jgr7jg58NCivjg57jg4Tjg5Djg6ks44Ki44Kt44KzDQor44Oe44OE44Oi44OILOODkuODreODn+ODhA0KK+ODnuODhOODouODiCzjg5vjgq/jg4gNCivjg57jg4Tjg6Tjg54s44Oe44Kk44KzDQor44Of44Km44OpLOODquODp+OCpg0KK+ODn+OCpuODqSzjgqLjg4TjgrcNCivjg5/jgqbjg6ks44Ki44OE44K3DQor44Of44Km44OpLOOCreODqOODnuOCtQ0KK+ODn+OCrSzjg6bjgqbjgrgNCivjg5/jgrrjgqvjg68s44OS44Ot44Om44KtDQor44Of44K644K/44OLLOODpuOCreOCsw0KK+ODn+OCuuODjizjg6bjgqbjgrvjgqQNCivjg5/jgr3jg44s44K/44OA44Oe44K1DQor44Of44K+44OP44K/LOODgeOCqA0KK+ODn+ODiuOCrOODryzjg57jg4HjgrMNCivjg5/jg4rjgqzjg68s44Ki44OkDQor44Of44OK44OfLOODkuODreODpuOCrQ0KK+ODn+ODiuODnyzjgr/jgqvjgrcNCivjg5/jg4rjg5/jgqvjgr8s44K/44Kr44OO44OWDQor44Of44OK44Of44Og44OpLOODkuODh+OCrQ0KK+ODn+ODj+ODqSzjg57jgrXjgq0NCivjg5/jg6Djg6ks44Of44Kt44KzDQor44Of44Ok44KkLOODjuODluOCouOCrQ0KK+ODn+ODpOOCtuOCrSzjgqLjg4TjgrcNCivjg5/jg6Tjgrbjg68s44OK44Kq44OkDQor44Of44Ok44K244OvLOOCouOCreODqQ0KK+ODn+ODpOODoOODqSzjgqvjgqrjg6oNCivjg5/jg6Tjg6Djg6ks44Ki44OkDQor44Of44Ok44Oi44OILOODpuOCpuODmOOCpA0KK+ODn+ODpOODouODiCzjg57jgrXjg6QNCivjg5/jg6jjgrcs44OE44Kr44K1DQor44Og44ON44Og44OpLOODgeOCq+ODleODnw0KK+ODoOODqeOCq+OCvyzjg4jjg6Ljg6bjgq0NCivjg6Djg6njgrrjg58s44Of44OE44OO44OqDQor44Og44Op44K/LOOCr+ODn+OCsw0KK+ODoOODqeOCvyzjg57jgq0NCivjg6Djg6njg6Ljg4gs44Kr44K644OO44OWDQor44Og44Op44Ok44OeLOODiuOCqg0KK+ODouODqizjg4rjgqrjgrMNCivjg6Ljg6os44Kr44OE44Oe44K1DQor44Oi44OqLOOCouODhOODkuOCsw0KK+ODouODqizjgq/jg5/jgrMNCivjg6Ljg6os44Of44KtDQor44Oi44Oq44Km44OBLOODjuODquOCsw0KK+ODouODquOCt+OCvyzjg6bjgqbjgqTjg4Hjg60NCivjg6Ljg6rjgr/jg4ss44Kr44K644OIDQor44Oi44Oq44Oi44OILOOCsuODsw0KK+ODouODquODpOODnizjgrPjgqbjgrgNCivjg6Ljg63jgqgs44OS44Ot44Kr44K6DQor44Ok44K0LOODn+ODjuODqw0KK+ODpOOCueOCrOOCrSzjg4jjg6Ljg5Xjg58NCivjg6Tjgrnjg4As44Ki44Ok44KzDQor44Ok44K544Oi44OILOOCouODhOOCtw0KK+ODpOODhOODiuODnyzjgqLjgq3jgqoNCivjg6Tjg4rjgq7jgrXjg68s44Kx44Kk44K544KxDQor44Ok44OK44Ku44OP44OpLOOCt+ODs+OCueOCsQ0KK+ODpOODluODiuOCqyzjgr/jgqTjgrcNCivjg6Tjg57jgqbjg4Es44K/44Kr44Om44KtDQor44Ok44Oe44Kq44KrLOOCv+ODgOOCtw0KK+ODpOODnuOCquOCqyzjg4rjgqrjg6QNCivjg6Tjg57jgqrjgq0s44OS44Ot44Om44KtDQor44Ok44Oe44Ks44K/LOODnuOCs+ODiA0KK+ODpOODnuOCsOODgSzjgrfjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44OS44Ot44KzDQor44Ok44Oe44K344K/LOODnuODieOCqw0KK+ODpOODnuOCt+OCvyzjg4HjgqgNCivjg6Tjg57jg4As44OB44KoDQor44Ok44Oe44OALOOCuOODpeODs+OCuA0KK+ODpOODnuODgCzjg47jg5bjgrMNCivjg6Tjg57jg4As44Ki44OkDQor44Ok44Oe44OALOODnuOCreOCsw0KK+ODpOODnuODiuOCqyzjg6HjgrDjg58NCivjg6Tjg57jg6Djg6ks44Kk44OD44K744KkDQor44Ok44Oe44Og44OtLOOCq+ODiuOCsw0KK+ODpOODnuODouODiCzjgrPjgqbjg5jjgqQNCivjg6Tjg57jg6Ljg4gs44OG44Or44OS44KzDQor44Ok44Oe44Oi44OILOODnuOCteODpuOCrQ0KK+ODpOODnuODouODiCzjg5/jg4Tjg6jjgrcNCivjg6Tjg57jg6Ljg4gs44Of44OO44OrDQor44Ok44Oe44Oi44OILOOCt+ODjuODlg0KK+ODpOODnuODouODiCzjg4jjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44Ki44K544KrDQor44Ok44Oe44Oi44OILOODr+OCv+ODqw0KK+ODpuOCouOCtSzjgq/jg5/jgrMNCivjg6bjgq0s44OK44Kq44KzDQor44Om44Oq44Ok44OeLOODjuODquODkuODrQ0KK+ODqOOCs+OCvyzjgqLjg4Tjg5LjgrUNCivjg6jjgrPjg4/jg54s44OI44K344Om44KtDQor44Oo44Kz44Ok44OeLOOCouODpuODnw0KK+ODqOOCs+ODpOODnizjgqvjgrrjgq0NCivjg6jjgrfjgqrjgqss44Kt44On44Km44KzDQor44Oo44K344Kq44KrLOODnuOCpOOCsw0KK+ODqOOCt+OCquOCqyzjg57jg6rjgrMNCivjg6jjgrfjg4As44K/44Kr44OI44K3DQor44Oo44K344OALOODiuOCquOCsw0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjg6jjgrfjg4As44Oe44Oq44KoDQor44Oo44K344OALOODpuOCpuOCuA0KK+ODqOOCt+ODgCzjg6bjgqbjgrgNCivjg6jjgrfjg44s44Om44KrDQor44Oo44K344OS44OtLOODpuODnw0KK+ODqOOCt+ODnuODhCzjg4jjgqrjg6sNCivjg6jjgrfjg6Djg6ks44OA44Kk44K544KxDQor44Oo44K344Og44OpLOOCq+OCuuODleODnw0KK+ODr+OCq+ODnuODhCzjg5Ljg63jg6QNCivjg6/jgq3jgr8s44Kr44K644KqDQor44Ov44Kt44K/LOOCseODs+OCt+ODreOCpg0KK+ODr+OCt+OCqizjg6jjgrfjgqLjgq0NCivjg6/jgrfjgrbjg68s44OB44Ki44KtDQor44Ov44OALOOCpOOCteODoA0KK+ODr+ODgCzjg4jjgrfjgqoNCivjg6/jg4As44Kk44K144KqDQor44Ov44OALOOCv+OCseOCtw0KK+ODr+ODgCzjgqvjg4TjgqgNCivjg6/jgr/jg4rjg5ks44Kr44K644K344OzDQor44Ov44K/44OK44OZLOODiOOCr+OCuA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjg6/jgr/jg4rjg5ks44Kt44Oo44Kq44OfDQor44Ov44K/44OK44OZLOODqOOCt+ODkuODrQ0KK+ODr+OCv+ODiuODmSzjg6jjg6rjg5/jg4QNCivjg6/jgr/jg4rjg5ks44Kx44Kk44K4DQor44Ok44Oe44Kw44OBLOODouODiOOCuA0KK+OCueOCuuOCrSzjgrjjg63jgqYNCivjgrXjgrXjg44s44K544K544OgDQor44Kr44ON44KzLOOCv+OCseOCtw0KK+OCr+ODnOOCvyzjg6zjgqTjgrMNCivjgrPjgrnjgrHjgqzjg68s44Oe44K144OK44KqDQor44Kr44OK44KkLOOCteODluODreOCpg0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgrPjg4Djg54s44K/44Kr44OS44KzDQor44Kz44OQ44Ok44K3LOODiOOCt+ODkuODrQ0KK+OCs+OCuOODnizjg4jjgqrjg6sNCivjgqvjg6Hjg6Tjg54s44Kr44K644OS44KzDQor44Kv44Op44OQ44Ok44K3LOODjuODluOCqg0KK+OCq+ODs+ODgCzjgqvjgrrjg6bjgq0NCivjgrPjg7Pjg44s44K444Ol44Oz44K4DQor44Kr44Ov44K344OeLOODnuOCteODiuODqg0KK+OCq+ODr+OCq+ODnyzjgrPjgqbjgrgNCivjgqvjg4rjgqss44Kr44Kv44K/44Ot44KmDQor44Kr44Ov44Og44OpLOODkuODreOCpuODnw0KK+OCreODoOODqSzjgrfjg6Xjg7PjgqTjg4ENCivjgqvjgrnjgqws44OS44Ot44K3DQor44Kz44K444OeLOODouODiOODqOOCtw0KK+OCq+ODr+ODjizjgrPjgqbjgqTjg4ENCivjgqvjg6/jg4os44Oo44K344Oe44K1DQor44Kz44K644OeLOOCv+OCseOCtw0KK+OCq+ODr+OCteOCrSzjg57jgrXjgqLjgq0NCivjgqvjgr/jg44s44Oe44K144Ki44KtDQor44Kr44K/44OALOOCouOCreOCqg0KK+OCreOCr+ODgSzjg57jgrXjgqrjg58NCivjgqvjg5/jgqbjg6ks44Kr44K644OS44OHDQor44Kr44ON44OALOODhuODhOOCqg0KK+OCs+ODs+ODjizjg6TjgrnjgqoNCivjgqvjg6/jg6Ljg4gs44K344Ky44OfDQor44Kr44OQ44OkLOODkuODreOCtw0KK+OCs+ODluOCr+ODrSzjgrHjg7Pjgq3jg4ENCivjgq/jg57jgqzjgqQs44Om44Km44K4DQor44Kz44Oz44OOLOODkuODh+OCrQ0KK+OCs+ODpOODnizjgrfjg6fjgqbjgqTjg4ENCivjgq3jgr/jgrfjg60s44OS44OI44K3DQor44Kz44OA44OeLOOCv+OCseOCtw0KK+OCq+ODiOOCpizjgqjjgqTjgqTjg4ENCivjgq3jg6Djg6ks44OI44K344OP44OrDQor44Kz44Kk44OHLOOCpOOCteOCqg0KK+OCr+ODpOODnizjgr/jgrHjgrcNCivjgq3jg6rjg4/jg6ks44Oi44Oq44OS44OtDQor44Kr44OoLOODnuOCteOCv+ODgA0KK+OCq+ODjeOCsyzjg4jjgrfjgqoNCivjgrPjg4/jg6ks44Kk44Ov44KqDQor44Kr44OI44KmLOODpuOCreOCqg0KK+OCs+OCpCzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqvjg6Tjg54s44Kk44K144KqDQor44Kz44Kk44KxLOOCr+ODi+ODkuOCsw0KK+OCs+OCuOODnizjgqLjgq3jg4gNCivjgrPjg57jg4Qs44Oe44K144K4DQor44Kt44K/44Og44OpLOODjuODquODqOOCtw0KK+OCreOCv+ODr+OCrSzjgrzjg7PjgqTjg4Hjg60NCivjgqvjgrXjgrjjg54s44OS44Ot44OV44OfDQor44Kt44Og44OpLOODhuODhOODreOCpg0KK+OCq+ODn+OCsOODgSzjgrXjg4HjgqoNCivjgqvjg4jjgqYs44OV44K444KqDQor44Kr44Ov44Og44OpLOODiOOCt+ODkuODiA0KK+OCq+ODieOCvyzjg47jg5bjgr/jgqsNCivjgqrjgqrjgr/jgrEs44K344Ky44OrDQor44Kr44OI44KmLOODiOODouODnw0KK+OCreODjizjg47jg5bjg5LjgrUNCivjgqvjg58s44Oe44K144OfDQor44Kt44Kv44OBLOODnuOCteODpuOCrQ0KK+OCq+OCreOCpuODgSzjg5Ljg63jg5LjgrUNCivjgrPjgrjjg54s44Oe44K144OfDQor44Kr44K/44Kq44KrLOOCt+ODpeODs+OCueOCsQ0KK+OCr+ODnOOCvyzjg5Ljg63jg6bjgq0NCivjgq3jgr/jgrbjg68s44Oe44K144Ki44KtDQor44Kz44Of44ONLOODouODiOODpuOCrQ0KK+OCr+ODnCzjgr/jgqvjg6bjgq0NCivjgq3jgr/jgrrjg6Es44Kr44K644OI44K3DQor44Kz44OQ44Ok44K3LOOCq+ODhOOCqg0KK+OCq+ODr+OCsOODgSzjg6jjgrfjg5LjgrMNCivjgrHjgqzjgrXjg68s44OS44K144K3DQor44Kz44Km44OBLOODn+ODgeOCqg0KK+OCs+ODpOODnizjg4jjgqrjg6sNCivjgqvjg6/jgq3jgr8s44K/44Kr44OS44OHDQor44Kr44Ov44Of44OELOOCt+ODp+OCpuOCvuOCpg0KK+OCq+OCv+ODkuODqSzjgqLjg4TjgqoNCivjgqvjg6/jgq7jgrcs44OS44Ot44K3DQor44Kz44Oz44OJLOODqOOCt+ODn+ODhA0KK+OCreODoOODqSzjgqLjgq3jg5LjgrMNCivjgq/jg5zjg6Tjg54s44K344Oz44K/44Ot44KmDQor44Kv44Oe44Oi44OILOODnuOCteOCrQ0KK+OCq+ODr+OCvyzjg5Xjg5/jg6gNCivjgq/jg4vjg47jg5Ys44Ok44K544KqDQor44Kr44Oe44OALOOCv+OCq+OCtw0KK+OCq+OCryzjgqrjgrXjg6ANCivjgqvjg43jgrMs44Kq44K144OgDQor44Kz44OQ44Ok44K3LOOCouOCreODqQ0KK+OCq+OCt+OCqizjgrHjg7PjgrgNCivjgqvjg4rjgqTjg68s44Kx44Kk44K4DQor44Kx44Oz44Oi44OBLOOCv+ODgOOCtw0KK+OCreOCr+ODgSzjgqrjgrXjg6ANCivjgqvjgrbjg54s44Ok44K544Ki44KtDQor44Kz44Oe44OE44Oi44OILOOCqOOCpOOCsw0KK+OCs+ODs+ODiSzjgqvjg4Tjg5LjgrMNCivjgq3jgq/jgrfjg54s44Kr44OE44Oe44K1DQor44Kz44OQ44Ok44K3LOOCu+OCpOOCsw0KK+OCr+ODnuOCrOOCpCzjg57jgrXjg4jjgrcNCivjgqvjg4jjgqYs44Kr44K644OS44KzDQor44Oe44Or44OQ44Ok44K3LOOCv+OCq+OCtw0KK+ODoOODiOOCpizjgqvjg4Tjg58NCivjg5/jgr/jg4ss44K/44Kx44K3DQor44Of44OvLOODnuOCteOCtw0KK+OCt+ODn+OCuizjg4Tjg4jjg6ANCivjg5/jgrrjg44s44OI44K344KqDQor44Oe44OB44OALOOCq+OCuuOCqg0KK+ODnuODhOOCpCzjgqvjgrrjgr/jg58NCivjg5/jgqbjg6ks44Oq44Ol44Km44Kk44OBDQor44OS44OOLOODquODp+OCpuOCpOODgQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5Ljg60NCivjg5/jg6Tjg44s44OS44Ot44Om44KtDQor44Oe44Or44KkLOODnuOCteODjuODqg0KK+ODoOODqeOCteOCrSzjg4jjgrfjgqoNCivjg57jgrXjgqss44OS44OH44OO44OqDQor44Of44ON44K/LOOCv+OCseODnw0KK+ODnuODhOODiuOCrCzjg6bjgr/jgqsNCivjg5/jg4rjgqzjg68s44K744Kk44K4DQor44Of44Ok44KxLOODiuOCquOCouOCrQ0KK+ODnuODhOODouODiCzjgrHjg7PjgqTjg4ENCivjg5/jgrXjg68s44OI44K344Om44KtDQor44Oe44Ko44OALOOCs+OCpuOCvuOCpg0KK+OCpuODgOOCrOODryzjg4jjgrfjgqvjg4QNCivjg5/jg6Tjg4/jg6ks44Kz44Km44K4DQor44Og44Op44KkLOOCt+ODp+OCpuOCuA0KK+ODnuODhOODouODqizjgrfjgrLjgq0NCivjg57jgrXjgq0s44Kt44Kv44KqDQor44Of44Km44OpLOOCqOOCpOOCuA0KK+ODouODiOODn+ODpCzjgq3jg6jjgrcNCivjg6Djg6njgqvjg58s44OS44Ot44OV44OfDQor44Oe44OI44OQLOODnuOCteOCouOCrQ0KK+ODn+OCpuODqSzjg4jjgrfjgqoNCivjg57jg4Tjgqvjg68s44Kr44K644OS44OtDQor44Of44K644K/44OLLOODiuOCquODkuOCsw0KK+ODn+ODpOODjizjg57jgrXjg6bjgq0NCivjg57jg4Tjg4As44OV44K144OB44KrDQor44Of44K5LOOCouOCreODqQ0KK+ODnuODhOODpOODnizjg4jjgrfjgqgNCivjg5/jg6Tjg6Ljg4gs44K/44OA44Ki44OEDQor44Of44K644OOLOODleODn+OCqg0KK+ODnuODq+ODpOODnizjgrvjgqTjgrgNCivjg57jg6vjgrMs44Of44OB44K/44KrDQor44Oi44OB44OALOODiOOCquODqw0KK+ODouODiOODj+OCtyzjg57jg6Ljg6sNCivjg5/jgrrjg6Qs44Kz44Km44K4DQor44Of44Ok44K244KtLOODn+ODgeODnuOCtQ0KK+ODn+ODpOOCrOODryzjg5/jg4Tjg6sNCivjg6Djg6njgrfjg54s44K/44OA44KqDQor44Oe44K544K144KzLOOCu+OCpOOCpOODgQ0KK+ODouODqizjgqTjg4Hjg63jgqYNCivjg6Ljg6rjgr8s44Kr44K644KqDQor44Of44OK44OfLOODqOOCt+OCouOCrQ0KK+ODn+ODpOOCrSzjg57jgrXjgqoNCivjg6Ljg6rjg6Tjg54s44Kx44Oz44K4DQor44Of44K644K/LOODqOOCt+OCqg0KK+ODnuODhOOCpCzjg5/jg4TjgrANCivjg57jg4Tjgqos44Oe44K144OoDQor44Oe44OE44K344K/LOODpuOCv+OCqw0KK+OCs+ODkOODpOOCtyzjgqvjg4Tjg58NCivjg6Djgqvjgqgs44Oe44K144K4DQor44Oi44Oq44KkLOOCruODp+OCuA0KK+ODouODquOCvyzjgr/jgqTjgr7jgqYNCivjg6DjgqvjgqQs44Oe44K144KqDQor44Oe44OE44KqLOODiOOCreODrw0KK+ODoOODqeODpOODnizjg6jjgrfjg5LjgrMNCivjg57jg4Tjg6Ljg4gs44OI44K344KqDQor44Of44Ok44K144OILOODn+ODjuODqw0KK+ODn+ODpOOCtuODryzjg6jjgrfjgqoNCivjg6Ljg6rjg6Djg6ks44K/44Kr44K3DQor44Og44Op44OOLOODkuODh+OCqg0KK+ODnuOCueODgCzjg5/jg47jg6sNCivjg6Djg6njgr8s44OO44OW44KqDQor44Of44Ok44K144KrLOOCseODs+OCuA0KK+ODouODiOODkOODpOOCtyzjg57jgrXjg5/jg4QNCivjg5/jgrrjg44s44Om44Oq44KzDQor44Oi44Oi44KkLOODqOOCt+OCqg0KK+ODnuODhOODgCzjg4jjgq/jgqoNCivjgrnjgqzjg6/jg6ks44OK44Kq44KoDQor44Oe44OE44OQ44OpLOODnuOCs+ODiA0KK+ODnuODhOODouODiCzjg5/jg47jg6sNCivjg5/jg6Tjg4/jg6ks44Ki44OE44Oo44K3DQor44Og44Op44Kk44K3LOODnuODouODqw0KK+ODnuODhOODoOODqSzjg57jg6Ljg6sNCivjg5/jg6jjgrcs44OG44OE44Oo44K3DQor44Oi44Oq44Oi44OILOOCq+OCuuOCqg0KK+ODn+OCuuOCv+ODiyzjgr/jgrHjgrcNCivjg57jg4Tjg5As44Ki44OE44K3DQor44Oe44OE44KkLOOCq+ODsw0KK+ODoOODqeOCq+ODnyzjgqvjgrrjgqoNCivjg6Ljg6rjgr8s44K344Ky44OP44OrDQor44Og44Op44K/LOOCt+OCsuOCqg0KK+ODnuOCteOCrSzjg5Ljg63jgrcNCivjg5/jg6Tjgrbjgq0s44Oo44K344KtDQor44Oe44OE44OQ44OpLOOCt+ODs+OCpOODgQ0KK+ODoOODqeODnuODhCzjgqLjg4TjgrcNCivjg6Ljg6os44OO44OW44Om44KtDQor44Oi44Oq44Og44OpLOODnuOCteOCq+OCug0KK+OCueODryzjg6jjgrfjg58NCivjgrPjg6/jgr/jg6os44OK44Kq44KtDQor44Oe44OE44K244KtLOODqOOCt+ODjuODlg0KK+ODnuODg+OCteOCrSzjg57jgrXjg5Ljg60NCivjg5/jgr/jgq8s44Kx44Kk44K+44KmDQor44Oe44OE44Kr44OvLOOCteODiOOCtw0KK+ODouOCrizjgrfjgrMNCivjg57jg5bjg4Es44Kt44Oo44K3DQor44Oe44OE44Oi44OILOODiOOCt+ODreOCpg0KK+ODouODqizjg6rjg6fjgqbjgqTjg4ENCivjg57jg4Tjgqbjg6ks44Kr44K644OK44OqDQor44Oe44Ko44OALOOCouOCreOCqg0KK+ODnuOCueODgCzjg5Ljg63jgrcNCivjg57jgqjjg4vjgrcs44OS44Ot44K3DQor44Oe44Or44Ok44OeLOODiuOCquODpA0KK+ODnuODhOODgCzjgr/jgqvjgqoNCivjg57jgq0s44OI44K344OS44KzDQor44Oi44Km44KoLOOCt+ODs+OCpOODgeODreOCpg0KK+ODoOODqeOCpCzjg4jjg6jjg58NCivjg57jg4TjgqQs44Kv44OL44OS44KzDQor44Oi44Oq44K/LOODnuOCteODqw0KK+ODnuOCqOODgCzjgr/jgqvjg5bjg58NCivjg6Djg6njgqbjg4Es44Kk44K144OgDQor44Of44OE44Ok44K5LOOCouOCreODqQ0KK+ODouODqizjgrHjg7PjgrgNCivjg57jg4Tjg4As44K144OI44K3DQor44Oe44OE44KqLOODnuOCteODleODnw0KK+ODnuODq+ODpOODnizjgqLjgq3jgqoNCivjg57jg4Tjgqzjgqgs44K344Ky44OS44OtDQor44Kr44Of44Kv44OpLOOCs+OCpuOCpOODgQ0KK+ODn+ODieODquOCq+ODryzjg6bjgqbjgrjjg63jgqYNCivjg57jgrnjg4As44K344Ky44OO44OWDQor44Of44OG44OpLOODpOOCueOCqg0KK+ODnuODhOODiuOCrCzjgqLjgq3jg6kNCivjg6Ljg6rjgqrjgqss44Oo44K344OfDQor44Of44K944KqLOOCqOODhOOCqg0KK+ODoOODqeODpOODnizjgqvjg4Tjg6jjgrcNCivjg6Ljg6rjg6Ljg4gs44K344Ky44OrDQor44Oi44OqLOODhOODiOODoA0KK+ODnuOCueODgCzjg5Ljg63jgr/jgqsNCivjg5/jg6Tjg6Ljg4gs44Kr44OE44Oe44K1DQor44Og44Op44K/LOODqOOCt+ODhuODqw0KK+ODn+ODiuODn+OCteODryzjgqvjgrrjg5Ljg60NCivjg57jgrfjg54s44K544Of44OS44OtDQor44Oi44Oq44Kw44OBLOODqOOCt+OCouOCrQ0KK+ODnuODhOOCpCzjgr/jgqvjgrcNCivjg57jgqjjgqvjg68s44OS44OI44K3DQor44Oi44OB44K644KtLOOCuOODpeODsw0KK+ODnuOCueODgCzjgrfjg7Pjgq3jg4ENCivjg57jg4Tjg6Ljg4gs44K444Ol44Oz44K+44KmDQor44Oi44Oq44OK44KsLOOCq+OCuuODjuODqg0KK+ODnuOCueODgCzjg5Ljg63jgr/jg58NCivjg5/jgqbjg6ks44Kv44OL44KqDQor44Oe44OE44OOLOOCv+ODgOOCqg0KK+ODnuODhOOCquOCqyzjg6jjgrfjg4bjg6sNCivjg57jg4HjgqQs44Kz44Km44Kk44OBDQor44Of44K644K/44OLLOODiOOCt+OCqg0KK+ODnuODhOODouODiCzjg6jjgrfjg47jg6oNCivjg57jgrXjgq0s44OS44OH44OIDQor44Oe44OE44Oi44OILOOCv+OCseOCtw0KK+ODn+ODhOODpCzjg5Ljg4fjg6TjgrkNCivjg5/jgrrjg44s44K444Ot44KmDQor44Oe44Ko44OALOODleODn+OCqg0KK+ODoOODqeODnuODhCzjgrHjg7PjgrgNCivjg6DjgrXjgrfjg44s44Ki44Kt44OpDQor44Oe44Ko44OP44K/LOODnuOCteODkuOCsw0KK+ODnuODhOOCtuODryzjg6jjgrfjgqoNCivjg5/jg4TjgqQs44Oo44K344Kr44K6DQor44Oi44Oi44OALOODn+ODhOOCq+OCug0KK+ODnuODhOOCqizjgqvjg4Tjg58NCivjg5/jg68s44K344Ol44Km44K4DQor44Og44Op44Kr44OfLOODhuODhOODpA0KK+ODn+OCq+ODnyzjg4/jg6vjgq0NCivjg4zjgqvjgrbjg68s44K344Oz44K4DQor44OK44Kr44Og44OpLOOCt+OCuuOCqA0KK+ODi+OCt+ODoOODqSzjgq/jg4vjg5LjgrMNCivjg4vjg4Pjgr8s44Kx44Oz44K4DQor44OK44Ks44OE44OmLOODiOOCreODpOOCuQ0KK+ODi+OCpOODjizjg5Ljg63jgrcNCivjgr/jg5bjg4Es44Kx44Oz44K4DQor44OL44K344OOLOOCteODluODreOCpg0KK+ODjOOCq+OCvyzjgr/jg6Ljg4QNCivjg4vjgrfjg6Djg6ks44OS44K144KqDQor44OK44Ks44OOLOOCv+OCq+ODpuOCrQ0KK+ODiuOCq+OCrOODryzjg6jjgrfjgqLjgq0NCivjg4vjgrfjg6Tjg54s44OS44Ot44K3DQor44OK44Kr44K444OeLOODnuOCteODkuODrQ0KK+ODi+OCt+ODgCzjg5/jg4TjgqoNCivjg4rjgqvjg6Djg6ks44OV44Of44KqDQor44OO44Og44OpLOODpuOCreOCqg0KK+ODiuOCq+ODouODiCzjg47jg6rjgqLjgq0NCivjg4rjgqvjgqzjg68s44Kr44K644K/44OfDQor44OK44Or44K144OvLOODhOODjeOCqg0KK+ODiuOCpOODiOOCpizjgr/jgrHjgqoNCivjg47jg5ks44Oo44K344OS44OHDQor44OL44K344OKLOODpOOCueODjuODqg0KK+ODjuODoOODqSzjgr/jg4DjgrcNCivjg4rjgqvjg6Djg6ks44K344Oz44K444Ot44KmDQor44OL44Kr44Kk44OJ44KmLOODqOOCt+ODpOOCuQ0KK+ODiuOCq+ODgCzjgr/jg4TjgqoNCivjg4vjgrfjg4os44Kt44Of44OS44OIDQor44OK44Oq44K/LOODiOOCt+OCqg0KK+ODjuOCsOODgSzjg6jjgrfjg5Ljg60NCivjg47jg6Qs44Kz44Km44KtDQor44OK44Ks44KkLOODnuOCteODiA0KK+ODiuOCq+ODoOODqSzjgq3jg6jjgrcNCivjg4vjgqTjgrrjg54s44K/44Kr44OfDQor44OK44Kr44Ks44OfLOOCt+ODpeOCpuOCpOODgQ0KK+ODiuOCrOOCvyzjgq3jgrfjgqoNCivjg4vjgrfjgrbjg68s44OP44OE44KoDQor44OO44K7LOOCuOODpeOCpuODreOCpg0KK+ODiuOCrOOCpCzjg6bjgq3jgqoNCivjg4vjgrfjgrbjg68s44Oe44K144KqDQor44OK44Kr44OP44K/LOOCq+OCuuODiOOCtw0KK+ODiuOCq+OCuOODnizjg5Ljg63jgrcNCivjg4rjgqvjg4As44Oe44OE44KqDQor44OO44OK44KrLOODnuOCteOCrQ0KK+ODiuOCq+OCrOODryzjg57jgrXjgqLjgq0NCivjg4rjgqvjgrfjg54s44K/44Of44KqDQor44OK44Kr44Oi44OILOODnuOCteODqw0KK+ODi+OCt+OCquOCqyzjg5Ljg63jgrcNCivjg4vjgrfjg57jgqgs44K344Oz44K/44Ot44KmDQor44OK44Kr44Og44OpLOODnuOCteOCqg0KK+ODiuOCq+ODi+OCtyzjgqvjgrrjgqoNCivjg47jg4As44Og44OE44OkDQor44OK44Kr44Og44OpLOOCouOCreODkuOCsw0KK+ODiuOCq+OCtuODryzjg6rjg6fjgqbjgqTjg4ENCivjg4vjgrfjg4As44Oo44K344Ot44KmDQor44OL44K344OALOOCv+ODgOODpuOCrQ0KK+ODi+OCpCzjg6rjg6fjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44OS44OI44K3DQor44OK44Kr44Km44OBLOODpOOCueOCqg0KK+ODiuOCq+OCuOODnizjgqvjgrrjgr/jgqsNCivjg4rjgqvjg6Djg6ks44Oe44K144OfDQor44OO44Og44OpLOOCr+ODi+ODkuOCsw0KK+ODi+OCt+ODoOODqSzjg6Tjgrnjg5Ljg60NCivjg47jg4rjgqss44K/44OA44OS44KzDQor44OL44K344Og44OpLOODiOOCt+ODkuODhw0KK+ODi+OCt+OCqizjgq3jg6jjgrcNCivjg4rjgqzjgqos44Kt44Oo44K3DQor44OL44Kk44OfLOOCseODs+OCuA0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6bjgq0NCivjg43jgrrjgqss44Oo44K344OO44OqDQor44OK44Kr44Og44OpLOODpuOCreODiOOCtw0KK+ODiuOCq+OCtuODiCzjg4bjg4Tjg6QNCivjgqLjgrXjg44s44K444Ol44OzDQor44OO44Ks44OfLOOCr+ODi+ODkuODrQ0KK+ODiuOCq+OCuOODnizjgqvjgrrjg5LjgrMNCivjg4rjgqTjg4jjgqYs44Kr44K644Ki44KtDQor44OK44Kr44Og44OpLOODqOOCt+ODjuODqg0KK+ODiuOCq+ODi+OCtyzjgq3jg6jjgqLjgq0NCivjg4rjgqvjg4As44K/44Of44KqDQor44OK44Ks44K144OvLOOCv+OCq+OCtw0KK+ODiuOCrOODjizjgqvjgrrjg6bjgq0NCivjg4vjg4Pjgr8s44Om44K/44KrDQor44OK44Oz44OQLOODn+ODhOODkuODrQ0KK+ODjuOCuuOCqCzjgq/jg4vjg5/jg4QNCivjg4rjgqzjg58s44OS44Ot44K3DQor44OK44Ks44KkLOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+ODj+ODqSzjg5/jgrrjg5sNCivjg4rjgqvjgrjjg54s44K/44Kx44Oo44K3DQor44OK44Kr44K444OeLOOCq+ODhOOCqg0KK+ODi+OCt+ODgCzjgqLjgq3jg5LjgrMNCivjg4rjgqrjgqQs44K344OB44Ot44KmDQor44OK44OZ44K344OeLOODqOOCt+ODnuOCtQ0KK+ODiuOCq+ODjizjgrfjg6fjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44OP44Or44KqDQor44OO44OALOODn+ODhOODqOOCtw0KK+ODiuOCq+OCuyzjg4jjgrfjgqLjgq0NCivjg4rjgqvjgrjjg54s44Of44OE44K344KyDQor44OK44Ks44K144OvLOOCv+ODgOOCtw0KK+ODi+ODmOOCpCzjg5/jg4Tjg6gNCivjg4rjgqzjgqQs44Oq44On44Km44K544KxDQor44OK44Kr44K344OeLOOCv+OCq+OCqg0KK+ODiuOCq+OCqizjgrvjgqQNCivjg4rjgqvjgqzjg68s44OO44OW44KqDQor44OK44Kk44OI44KmLOOCs+OCpuOCpOODgeODreOCpg0KK+ODjuOCuOODnizjg6bjgqbjgrnjgrENCivjg4rjgqzjg44s44Om44Kt44KqDQor44OL44K344OALOOCq+OCuuOCqg0KK+ODiuOCq+ODgCzjgq3jg6jjgrcNCivjg4rjgqvjg4/jg6ks44K/44Kr44OO44K544KxDQor44OK44Kr44K444OeLOODoOODjeOCv+OCqw0KK+ODjeODouODiCzjgq3jg6jjgrcNCivjg4rjgqvjg6Djg6ks44Kx44Oz44K4DQor44OK44Ks44OI44OiLOODnuOCteODnw0KK+ODiuOCq+ODoOODqSzjg5Ljg4jjg58NCivjg4rjgqvjg6Tjg54s44Oo44K344KqDQor44OK44Kr44Og44OpLOODm+OCuuODnw0KK+ODiuOCq+ODoOODqSzjg5Xjg5/jg47jg6oNCivjg47jgrjjg54s44OG44OE44Ot44KmDQor44OK44Ks44OV44OBLOODpOOCueODrQ0KK+ODiuOCq+ODjizjgrTjgqTjg4ENCivjg4vjgrfjg6Tjg54s44K344Oz44Kk44OBDQor44OK44Kr44Og44OpLOODnuOCteODpuOCrQ0KK+ODiuOCrOOCt+ODnizjg4rjgqrjgrgNCivjg4vjg68s44Om44K/44KrDQor44OK44Kr44OOLOODpOOCueOCouOCrQ0KK+OCquODi+OCtuODryzjg6bjgq3jgqoNCivjgqrjgrfjgqvjgr8s44Oe44K144KqDQor44Kq44KrLOOCq+ODhOODkuODrQ0KK+OCquOCr+ODpOODnizjg47jg5zjg6sNCivjgqrjgq0s44K544Of44KqDQor44Kq44Kr44Of44OkLOOCseODs+OCuA0KK+OCquOCsOODqSzjg57jgrXjgq0NCivjgqrjgqrjg4cs44Oe44K144OO44OqDQor44Kq44OO44OALOODnuOCteODkuOCsw0KK+OCquOCquODi+OCtyzjg57jgrXjgq0NCivjgqrjgq/jg4As44Kt44On44Km44Kk44OB44Ot44KmDQor44Kq44Kv44OALOODiOOCt+OCqg0KK+OCquOCrOODryzjgrPjgqbjgrgNCivjgqrjg44s44Oe44K144KqDQor44Kq44Kq44K544OfLOOCs+OCpuOCuA0KK+OCquOCquODhOOCqyzjgr/jgqvjgrcNCivjgqrjgqrjg4jjg6Is44Oe44K144Ki44KtDQor44Kq44Kr44K244KtLOODpuOCpuOCuA0KK+OCquOCquODj+OCtyzjg5Ljg63jgrcNCivjgqrjgq7jg44s44OV44Of44KqDQor44Kq44K144OALOOCt+OCuuOCouOCrQ0KK+OCquOCquODkCzjg5LjgrXjgrcNCivjgqrjgrfjg54s44Ki44Ok44KzDQor44Kq44Kq44Kr44OvLOOCq+OCuuODpA0KK+OCquOCq+ODouODiCzjg5Ljg63jgrcNCivjgqrjgqzjg68s44OI44Kq44OrDQor44Kq44OOLOOCreODqOODiA0KK+OCquOCq+ODjizjg4jjgqrjg6sNCivjgqrjgrbjg68s44Om44Kt44Oe44K1DQor44Kq44OP44KvLOODkuODreOCtw0KK+OCquOCt+OCv+ODiyzjgr/jgqvjgrcNCivjgqrjgrbjg68s44OS44Ot44K3DQor44Kq44Kq44OP44K3LOOCv+OCq+ODjuODlg0KK+OCquOCquODj+OCvyzjgrPjgqbjg4jjgq8NCivjgqrjg47jg4fjg6ks44Of44OkDQor44Kq44OOLOODleODn+OCqg0KK+OCquOCquOCquOCqyzjg5XjgrjjgrMNCivjgqrjgqrjg44s44Oo44K344OO44OqDQor44Kq44Kq44OP44K3LOODpuOCv+OCqw0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqrjg6Ljg6os44Kx44Oz44K/44Ot44KmDQor44Kq44K344OeLOOCsw0KK+OCquOCq+ODouODiCzjgrPjgqbjgqTjg4ENCivjg5Ljg63jgrss44OI44Oi44Om44KtDQor44Kq44Kq44Of44K6LOODpOOCueOCqg0KK+OCquOCquODjizjg5/jg4TjgqoNCivjgqrjg4HjgqLjgqQs44Oe44K144OS44K1DQor44Kq44Kr44OZLOOCv+OCpA0KK+OCquOCquOCv+ODiyzjgqLjgq3jg5Ljg60NCivjgqrjgq/jg44s44K344Ky44KqDQor44Kq44Kq44K544KsLOOCseODs+OCpOODgQ0KK+OCquOCquODjuOCrSzjgqvjgqrjg6sNCivjgqrjgqrjgqTjgrcs44K4DQor44Kq44Kr44OALOODouODiOODhOOCsA0KK+OCquOCquODn+ODpCzjg6bjgq3jg5Ljg60NCivjgrXjgr/jgrEs44OE44ON44KqDQor44Kq44OA44KuLOODj+ODgeODreOCpg0KK+OCquOCquOCvyzjgrXjg4jjg6sNCivjgqrjg5Xjg4Es44K/44OA44Oo44K3DQor44Kq44Kq44Kr44OvLOOCq+OCquODqw0KK+OCquOCq+ODiSzjgrXjg4jjg6sNCivjgqrjgqrjgrXjg68s44OS44OH44KtDQor44Kq44Ku44K144OvLOODpuOCreODkuODrQ0KK+OCquOCq+ODmSzjgqLjg4TjgrcNCivjgqrjg4jjg6jjgrcs44OS44OH44KqDQor44Kq44Ks44OvLOOCv+ODhOODreOCpg0KK+OCquODquOCrOOCtSzjg6Tjgrnjgr/jgrENCivjgqrjgqrjg5As44Om44Kt44KzDQor44Kq44OQ44K/LOOCv+OCq+OCtw0KK+OCquOCquODjizjgr/jgqvjg6jjgrcNCivjgqrjgqrjgrXjgqss44Oe44K144OkDQor44Kq44Kq44Of44ONLOOCseODs+OCvuOCpg0KK+OCquOCquOCvyzjg6jjgrfjg5LjgrMNCivjgqTjg47jgqbjgqgs44Ki44Kt44KqDQor44Kq44Kq44Kz44K3LOOCt+OCsuOCrQ0KK+OCquOCtuODryzjg5Ljg4fjgqoNCivjgqrjgqvjg5ks44Kx44Kk44Kk44OBDQor44Kq44Kq44Oc44OpLOOCqOOCpOOCuOODreOCpg0KK+OCquOCquOCvyzjgrjjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqrjgrbjgq0s44K444Ol44Oz44Kk44OBDQor44Kq44Kv44OALOODpOOCueODkuODrQ0KK+OCquOCtuODryzjg4bjg6vjgqLjgq0NCivjgqrjgqvjg4As44K544K544OgDQor44Kq44Kq44OE44KrLOOCs+OCpuOCuA0KK+OCquODjuODh+ODqSzjgrPjgqbjgqTjg4ENCivjgqrjgrfjgqos44K/44OA44K344KyDQor44Kq44OA44K344OeLOOCv+ODgOOCtw0KK+OCquOCtuOCrSzjgrfjgrLjg6sNCivjg57jgqjjg4As44Of44OE44KqDQor44Kq44KtLOODnuOCteOCqg0KK+OCquODjuODgCzjg4jjgq3jgqgNCivjgqrjg4rjgq4s44Ki44Kt44OpDQor44Kq44Kv44OALOODqOOCt+OCreODqA0KK+OCquOCquODkuODqSzjgrvjg4TjgrgNCivjgqrjg47jgrbjg68s44OI44K344OS44KzDQor44Kq44Ku44OP44OpLOOCr+ODi+OCouOCrQ0KK+OCquOCquOCr+ODnizjgqvjgrrjgqoNCivjgqrjgqrjg4/jg6ks44OO44OW44OS44OtDQor44Kq44KtLOOCq+ODhOOCueOCsQ0KK+OCquOCrOODryzjgr/jg4Tjg6QNCivjgqrjgqrjg6Qs44OS44OH44ObDQor44Kq44Kq44K144OvLOOCteODluODreOCpg0KK+OCquOCquODj+ODqSzjg5Ljg63jg6jjgrcNCivjgqrjg4As44K/44Kr44KzDQor44Kq44K244OvLOODn+ODhOOCqg0KK+OCquOCrOOCvyzjg6rjg6fjgqbjgrnjgrENCivjgqrjgqvjg44s44Ki44Kt44KzDQor44Kq44Kq44Kk44K3LOOCt+ODng0KK+OCquODiuOCpCzjg5Ljg63jg6bjgq0NCivjgqrjgqrjg4Tjgqss44K444Ol44Oz44KzDQor44Kq44Kq44OE44KrLOODhuODhOOCqg0KK+OCquOCpOODhyzjg6jjgrfjgqLjgq0NCivjgqrjgq3jg6Tjg54s44Kr44K644KzDQor44Kq44Kw44K3LOOCouOCseODnw0KK+OCquODgCzjg6TjgrnjgrcNCivjgqrjgqvjg5Djg6Tjgrcs44K/44OA44OS44OtDQor44Kq44Kq44K/44OLLOOCuOODpeODs+OCuA0KK+OCquOCquODhOOCrSzjgqLjg6bjg58NCivjgqrjgqvjg4As44OS44Ot44K3DQor44Kq44Kq44K544OfLOODgeODj+ODqw0KK+OCquOCquOCpOOCrOODryzjgr/jgqvjg4/jg6sNCivjgqrjgqvjg4As44K544K544OgDQor44Kq44K244OvLOOCq+OCuuODkuOCsw0KK+OCquOCquOCv+ODiyzjg4bjg4Tjg63jgqYNCivjgqrjgrbjgq0s44OS44Ot44Om44KtDQor44Kq44Kq44K/LOODnuOCteOCsw0KK+ODpOODiuOCruODpCzjg6bjgqvjg6oNCivjg4rjgqvjgr/jg4ss44K344Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODkuODh+OCtw0KK+ODn+OCr+ODiyzjg6jjgrfjg5Ljg60NCivjgrnjgrrjgq0s44K444Ol44Oz44Kk44OBDQor44OP44OA44OOLOODpuOCreODnuOCtQ0KK+ODn+ODpOODnizjgqvjgqrjg6oNCivjgr/jgqvjg4/jgrcs44Oe44K144OIDQor44K344Op44Kq44Ks44OvLOODqeOCpOOCvw0KK+ODiuOCq+ODoOODqSzjgqLjgr3jgqsNCivjg57jg4Tjgrbjgq0s44Kt44Kk44OB44Ot44KmDQor44Ok44Oe44K344K/LOOCv+OCq+ODqOOCtw0KK+OCt+ODouODpOODnizjgrfjgrLjg6sNCivjg5Xjgr/jg6Djg6ks44OO44OW44Om44KtDQor44Kv44OvLOOCv+OCq+OCtw0KK+ODiuOCq+ODoOODqSzjg4jjgrfjg5/jg4QNCivjg6jjgrPjg6Tjg54s44OS44Ot44Ki44KtDQor44OS44Or44OeLOODpuOCreOCsw0KK+OCv+ODgeOCq+ODryzjg4rjgqrjg58NCivjg6/jgqvjg5Djg6Tjgrcs44OG44Or44OfDQor44K/44Kr44OP44K/LOODiOODog0KK+OCouODmSzjgqjjg5/jgrMNCivjgrvjgq0s44Oq44Ol44Km44K0DQor44Ok44Oe44K244KtLOODkuODiOOCtw0KK+ODpOODnuODjSzjg6jjgrfjg5Ljg60NCivjgr/jgrbjg68s44K444Ol44Oz44K4DQor44Kr44K444Kr44OvLOOCouOCteOCsw0KK+OCteODiOOCpizjg57jgrXjg5Ljg60NCivjgqvjg6/jgqbjg4Es44Oe44Oq44KoDQor44Kq44Kq44Ok44OeLOODjuODluOCsw0KK+OCt+ODs+ODn+ODp+OCpizjgrjjg6Xjg7PjgrMNCivjgr/jg4Hjg6/jg4As44OK44Kq44OfDQor44Kq44Kq44Kv44OcLOODhuODhOODpA0KK+ODiOOCpuOCtOOCpizjg5Ljg63jg6bjgq0NCivjg4rjgqzjgq/jg6ks44K/44Kr44OP44OrDQor44Kk44OI44KmLOOCseODs+OCveOCpg0KK+ODpOODnuOCtuOCrSzjgrvjgqQNCivjgqvjgrbjg54s44OP44Or44Om44KtDQor44Kr44Oz44OQ44Ok44K3LOODkuODh+OCqg0KK+OCteOCteODjizjg6HjgqTjgrMNCivjgqvjg6/jgrfjg54s44Of44Om44KtDQor44K344Oz44Kw44KmLOODjuODquOCouOCrQ0KK+OCs+OCpOOCuuODnyzjgr/jgq/jg6QNCivjgqvjg43jgrMs44Oo44K344OfDQor44Kz44OQ44Ok44K3LOOCueOCqOODhOOCsA0KK+OCq+ODouOCt+OCvyzjgrfjg6XjgqbjgqTjg4ENCivjgr/jg6Djg6ks44K144OB44OoDQor44OP44K744Ks44OvLOOCv+OCq+OCtw0KK+OCr+ODquODj+ODqSzjg5Ljg63jg5Xjg58NCivjgqvjg4rjgqrjgqss44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOODpuOCreOCv+OCqw0KK+ODkuOCpOOCtyzjgr/jgqvjg6bjgq0NCivjg4vjg5jjgqQs44Kk44Kv44KzDQor44Oe44Or44K/LOODiuOCquOCsw0KK+ODiOOCquODpOODnizjg4rjg58NCivjgrvjgq3jgrbjg68s44OB44KrDQor44Ki44Oq44OeLOODpOODqOOCpA0KK+OCr+ODquODj+ODqSzjg4jjg6LjgqgNCivjgrnjg5/jg44s44Of44OO44OrDQor44Oo44K344OALOODkuODh+OCrQ0KK+OCreODjuOCt+OCvyzjg4jjg6LjgrMNCivjgqrjg4HjgqLjgqQs44Of44Om44KtDQor44Km44Oe44Ok44OP44OpLOODpOOCueODnw0KK+ODm+OCveOCq+ODryzjg5Ljg63jgrMNCivjg5Xjgqvjgqzjg68s44K344Oz44K4DQor44Kr44Ov44Og44OpLOOCqOOCpOOCvuOCpg0KK+ODnuODhOOCpCzjgrHjgqTjgrMNCivjg6jjgrfjg6Ljg4gs44K/44Kr44OS44OtDQor44Km44OK44Kr44OfLOODiOODouOCsw0KK+OCq+ODjeODnuODhCzjgrXjgq3jgrMNCivjgqvjg6/jgqvjg58s44Oe44Kz44OIDQor44OI44Oo44OALOODkuODh+OCqg0KK+ODpOODjizjgqLjgq3jg5LjgrMNCivjgrvjgq0s44K/44Kr44Ki44KtDQor44OK44Kr44OL44K3LOODkuODiOOCtw0KK+ODj+OCt+ODouODiCzjgqLjgq0NCivjg5Xjgqvjg6Qs44Kv44OL44Ki44KtDQor44Of44Ok44Oi44OILOODkuODh+OCr+ODiw0KK+OCv+OCseODgCzjg4jjgrfjg5Xjg58NCivjg5/jg6Tjgrbjg68s44Of44Kt44KqDQor44Kk44Kx44OALOOCq+OCuuODkuOCsw0KK+OCquOCt+ODnizjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Ko44Oq44KzDQor44K044OI44KmLOODpuOCpuOCpOODgeODreOCpg0KK+OCpuOCt+OCtOODoSzjg5Ljg63jgrcNCivjgq/jg6/jg6Tjg54s44OS44Ot44Ki44KtDQor44OE44Kr44OALOODgeODj+ODqw0KK+ODoOODqeOCvyzjg4HjgqvjgqoNCivjgrXjg4jjgqYs44Oo44K344K/44KrDQor44Kv44Ot44OALOOCq+OCquODqg0KK+OCueOCruODouODiCzjgq/jg4vjgqoNCivjg6Tjgrnjg4As44Kz44Km44Kk44OBDQor44Kt44Km44OBLOOCteODiOOCtw0KK+OCseODieOCpuOCpOODsyzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jg4rjgqss44OB44KrDQor44OK44Kr44Og44OpLOODkuODreOCouOCrQ0KK+OCr+ODquODj+ODqSzjg4jjg6jjg5LjgrMNCivjgr/jgq3jgrbjg68s44Kr44K644OO44OqDQor44Km44Ko44OALOODkuODh+OCouOCrQ0KK+OCs+ODmSzjg5Ljg4fjgqLjgq0NCivjg47jgrDjg4Es44OV44Of44KqDQor44Kz44Oz44OOLOODiOODouODkuOCsw0KK+ODiOODn+OCvyzjgqvjg4rjg6ENCivjgqrjgqrjgr8s44Om44Kt44KzDQor44Oe44KtLOODkuOCq+ODqw0KK+OCouODnuODjizjgrHjg7PjgqTjg4Hjg60NCivjgrPjg5/jg40s44Ki44Kt44OS44OtDQor44K144OI44KmLOODiOODouODpA0KK+OCpOODnuODhyzjg6bjgqbjgrgNCivjg57jg4Tjg4rjgqws44K/44OE44OkDQor44K544K644KtLOOCv+OCseOCtw0KK+ODnuODhOOCqizjgqvjgqgNCivjgrXjgqTjg4jjgqYs44Kt44On44Km44Kk44OBDQor44Oo44K344K244OvLOODr+OCv+ODqw0KK+OCpuODpOODnizjgrHjgqTjgrMNCivjgqLjg7Pjg4njgqYs44Oe44K144OS44KzDQor44K544K644KtLOOCteODiOOCtw0KK+ODqOOCt+ODgCzjgqvjgrrjg4jjgrcNCivjgqvjg6/jg4As44Ko44Of44KzDQor44OV44Kv44OALOOCseOCpA0KK+ODouODquOCt+ODnizjg57jgrXjgrcNCivjg4Tjg4Hjg4As44OI44Kq44OrDQor44K144Kr44KkLOODn+ODgeODpOOCuQ0KK+ODhOOCq+ODgCzjgqLjg4TjgrcNCivjg4/jg4Pjg4jjg6os44OS44Ot44K3DQor44K/44Og44OpLOOCs+OCpuOCuA0KK+ODr+OCv+ODiuODmSzjg4rjgqrjgq0NCivjgrPjgrnjgq4s44K/44Kr44Ki44KtDQor44OS44Op44K/LOOCseOCpOOCvw0KK+OCueOCruODpOODnizjg6jjgrfjg6bjgq0NCivjg6Ljg6rjgqvjg68s44Oi44OI44OP44OrDQor44Kr44OJ44K/LOOCouOCreODkuODrQ0KK+OCteODjizjg5Ljg63jgrcNCivjgqrjgrbjgq0s44OG44OE44KqDQor44Oo44Kz44Oe44OELOOCq+ODhOODkuOCtQ0KK+OCv+ODiuOCqyzjg6bjg5/jgrMNCivjgqTjgrfjgrXjgqss44Kz44Km44Kk44OB44Ot44KmDQor44Kk44K344K244OvLOODpuOCuuOCrQ0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7MNCivjg6jjgrfjg4As44OI44Oi44Ki44KtDQor44Kt44Og44OpLOODquOCqOOCsw0KK+OCquOCquODhOOCqyzjgr/jgrHjg6sNCivjgqLjg4Djg4Es44K/44Kr44K3DQor44Ki44Kr44K144KrLOOCt+ODp+OCpuOCuA0KK+ODn+ODpOODouODiCzjg5/jg4njg6oNCivjgqTjg4Hjg6Djg6ks44Kr44Kq44OqDQor44Kq44K344K/LOODjuODluODpuOCrQ0KK+ODm+ODs+ODgCzjgqrjgrXjg6ANCivjgqvjg6Tjg4zjg54s44Kz44Km44K4DQor44OO44K244KtLOODpuOCpuOCuA0KK+OCq+ODieODr+OCrSzjg5XjgrjjgqgNCivjgqrjgrgs44Ok44K544OS44OtDQor44K/44Kw44OBLOODpOOCueODhOODjQ0KK+OCv+OCseOCpOOCtyzjgqLjgq3jg4gNCivjg5Ljg6njgqQs44K344Oz44K4DQor44Kr44OK44K244OvLOOCuOODpeODs+OCpOODgQ0KK+ODleODq+OCq+ODryzjgqjjg6rjgqsNCivjg6Ljg6rjg4rjgqss44Oe44K144OoDQor44Ki44Op44KkLOODiOOCt+OCouOCrQ0KK+OCv+ODiuOCqyzjg6jjgrfjg47jg6oNCivjgrfjg5/jgros44Oo44K344Om44KtDQor44Kk44OB44OP44OpLOODnuOCteODqw0KK+OCreOCv+ODjuODj+ODqSzjg5Ljg4fjg5Ljg60NCivjgq3jgr/jgqos44OI44Oi44OS44OIDQor44Oi44Oq44Oi44OILOODkuODh+OCrQ0KK+OCreOCv+ODoOODqSzjg6rjgqvjgrMNCivjgrXjgrXjgrbjg68s44K/44Kx44K3DQor44Oe44OE44Kq44KrLOODiuOCquOCsw0KK+OCs+OCpuODqSzjgr/jgqvjg5Ljg60NCivjg5/jg68s44OS44Ot44KzDQor44Oo44K344Kq44KrLOODkuODreOCsw0KK+ODm+ODqizjg6bjg5/jgrMNCivjgrXjgqTjg4jjgqYs44Oo44K344OS44OIDQor44OK44Ks44K7LOODkuODh+ODj+ODqw0KK+ODouODquOCt+ODnizjg5Ljg63jgqsNCivjgqrjg6/jg6os44Oe44Kt44KzDQor44K/44OK44KrLOODn+OCrQ0KK+ODhuODqeODoOODqSzjg4jjgrfjg57jgrUNCivjgrPjg5Djg6Tjgrcs44Kt44On44Km44K+44KmDQor44K144Kk44OI44KmLOODkuODreODjuODqg0KK+OCreODoOODqSzjgr/jgrHjgrcNCivjg4/jgrfjg6Ljg4gs44Oo44K344OS44K1DQor44OK44Kr44Ks44OvLOODhuODhOODpA0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqrjgq0NCivjg4/jgq7jg6/jg6ks44Kv44OL44OS44KzDQor44OL44K344Kr44OvLOODiOODouODnw0KK+OCreOCv+OCuOODnizjgrPjgqbjgqTjg4ENCivjgr/jgqvjgqbjg6ks44Ok44K544KqDQor44Ki44K144OALOODkuODh+ODqA0KK+OCreOCv+OCuuODoSzjgqLjg6njgr8NCivjg43jg6Ljg4gs44Ov44Kr44KzDQor44K/44OK44KrLOODnuOCteODkuOCsw0KK+OCv+ODiuOCqyzjgqvjgrrjg5Ljg60NCivjgqLjg4Djg4Es44Kr44K644OS44KzDQor44OP44OpLOODnuOCteODpuOCrQ0KK+OCouOCq+ODnuODhCzjgrHjg7PjgrQNCivjgqTjg57jg6Djg6ks44Ki44OE44K3DQor44Og44Op44Ok44OeLOODqOOCpuOCuA0KK+OCv+OCseOCpuODgSzjgr/jgqvjg6bjgq0NCivjgrrjgrcs44Ok44K544KqDQor44Kz44OQ44Ok44K3LOOCq+ODmw0KK+ODpOODnuOCtuOCrSzjgqLjg4TjgrMNCivjg4/jg57jgrDjg4Es44K944Km44Kk44OBDQor44Kr44Ky44Ok44OeLOODkuODreODpuOCrQ0KK+OCq+ODiuODouODqizjg5Ljg4fjgq0NCivjgqvjg4jjg6os44OE44Oo44K3DQor44Ki44Op44KkLOOCt+ODp+OCpuODmOOCpA0KK+ODn+ODpOOCvyzjg57jg6rjgrMNCivjgrnjgrrjgq0s44Ko44Of44KzDQor44OP44Or44K/LOODkuODh+ODpA0KK+ODiuOCq+OCtuODryzjgr/jgqvjgrcNCivjgrnjgqws44Oe44K144Om44KtDQor44Oe44Ko44OH44OpLOODhuODq+ODpuOCrQ0KK+OCouODqeODnuOCrSzjgqLjg4TjgrcNCivjgq3jgr/jg44s44K/44OE44OkDQor44Oo44K344OOLOOCt+OCsuODn+ODhA0KK+ODn+OCr+ODquODpCzjg6jjgqbjgrMNCivjgqrjgq/jg47jgq4s44Kx44Oz44K4DQor44K144Kv44Op44KkLOODqOOCt+OCq+ODhA0KK+OCs+ODs+ODiSzjg4rjgqoNCivjgrnjgrrjgq0s44OO44Oq44KzDQor44Kv44Oq44OP44OpLOOCr+ODn+OCsw0KK+ODoOOCs+OCpuOCsOODgSzjg57jgq0NCivjg5XjgrjjgqQs44Ki44Kt44OS44OtDQor44Kr44KyLOODpuOCpuOCsw0KK+ODnuOCqOODgCzjg47jg5bjg6QNCivjg4rjgqzjg5vjg6os44Om44Kt44KzDQor44OE44K4LOODouODouOCsw0KK+OCreODoOODqSzjgrfjg7Pjgr/jg63jgqYNCivjg57jg4Tjgqos44Kz44Km44Kk44OBDQor44K/44OG44OOLOODjuODquODqOOCtw0KK+OCreODoOODqSzjg57jgrPjg4gNCivjgrnjgrbjgq0s44K/44OE44OkDQor44Kk44Ov44K144KtLOODn+ODpOODkw0KK+OCteODiOOCpizjg6bjg6oNCivjg4vjg4Pjgr8s44OA44Kk44Kr44OzDQor44K/44OK44KrLOODnuODqg0KK+OCt+ODnuODgCzjgqLjgqvjg40NCivjgr/jg4vjgrDjg4Es44OO44Oq44KzDQor44Ob44Oz44OALOOCueODiuOCqg0KK+ODiuOCq+OCv+ODiyzjgr/jgqvjgrcNCivjg5/jg6Tjgrjjg54s44K344Ol44OzDQor44Kv44Kt44Ok44OeLOOCs+OCpuOCuA0KK+OCu+OCreODjSzjg6rjg6fjgqbjgr/jg63jgqYNCivjg6jjgrfjg4/jg6ks44K144OI44OrDQor44OS44Op44K/LOODnuOCteOCq+OCug0KK+ODiuOCrOOCteODryzjg4jjgrfjgqoNCivjg4rjgqvjgqzjgq0s44Kx44Kk44KzDQor44Kv44Ot44Kr44OvLOODpOOCueODpuOCrQ0KK+OCq+OCseOCv+ODqizjgrHjg7Pjgrjjg63jgqYNCivjgqTjg4jjgqYs44Kr44Oo44KzDQor44Oe44Ko44Kr44OvLOOCuOODpeODs+OCuA0KK+ODnuODhOODgCzjgqLjgq3jgqoNCivjgq/jg6/jg4/jg6ks44Oe44Kz44OIDQor44Kk44Kk44K644KrLOODr+OCq+OCsw0KK+ODnuOCuOODnizjg5Ljg4fjg6bjgq0NCivjg6Djg6njgr8s44OI44Oi44KzDQor44Ki44Kt44Kk44KxLOODpuOCpuOCpOODgQ0KK+ODiuODn+OCrSzjg4bjg4Tjg6QNCivjg6jjgrfjg44s44Of44Kt44KzDQor44K544K644KtLOODpuOCrQ0KK+OCv+ODoOODqSzjg5/jg4njg6oNCivjgqvjg6Hjg4As44K344Oz44OkDQor44OL44K3LOODpOOCueOCtw0KK+OCpOODiuOCquOCqyzjgrHjg7PjgrgNCivjgqTjg6/jgrXjgq0s44Om44Km44K4DQor44Kr44Oz44OALOODiuODnw0KK+OCv+ODgCzjgqjjgqTjgq0NCivjgqbjg4Qs44OI44Oi44Ki44KtDQor44K344Oe44OALOODnuOCteOCqg0KK+ODqOOCt+ODgCzjg5Ljg63jg6bjgq0NCivjgqrjgq/jgqzjg68s44Oo44K344OV44OfDQor44K544K644KtLOOCseOCpOOCsw0KK+OCv+ODs+ODnSzjg5/jg43jgrMNCivjg6/jg4As44OK44Kq44KzDQor44Km44Or44K344OP44OpLOOCqOOCpOOCueOCsQ0KK+OCpOOCpOOCqizjgr/jg63jgqYNCivjg4vjgqTjg4/jg6ks44Kt44On44Km44KzDQor44Kq44Og44OpLOOCv+OCr+ODpA0KK+OCpOODjuOCpuOCqCzjgrzjg7Pjgrjjg63jgqYNCivjg6Ljg6rjg4rjgqws44OI44K344OS44OtDQor44K144OOLOODkuODreOCtw0KK+ODiuOCq+OCv+ODiyzjg57jgrXjg6TjgrkNCivjgqLjg5ks44Oe44K144OK44KqDQor44Km44OB44OALOOCseODs+OCuA0KK+ODkuODreOCvyzjg6bjgqbjgrXjgq8NCivjgqTjg6/jgq/jg6ks44Kr44Kk44K444Ot44KmDQor44Kk44K344Kq44KrLOODkuODh+OCouOCrQ0KK+ODiOOCreOCvyzjg4rjg4TjgrMNCivjgq3jg47jgrfjgr8s44OK44Kq44K544KxDQor44Of44K644OOLOOCouOCpOOCsw0KK+ODpOOCueOCqCzjg57jgrXjg58NCivjgqTjg6/jg6Ljg4gs44K144OI44OrDQor44Ok44Oe44K4LOODpuOCq+ODqg0KK+OCs+OCteOCpCzjg6bjgqbjgrMNCivjgq/jg5ws44OI44K344KoDQor44OB44OQLOODkuOCq+ODqw0KK+ODpOODhOOCv+ODiyzjgqLjg4TjgrcNCivjgqTjgqzjg6njgrcs44K/44Kr44K644OfDQor44Ki44Op44Kr44OvLOOCouOCq+ODjQ0KK+ODhuODqeOCteOCrSzjg6Ljg4jjgqLjgq0NCivjgrvjgrTjgqgs44K144OI44KzDQor44OI44Kv44K344OeLOODnuOCteOCsw0KK+ODkOODs+ODieOCpizjgrfjg6fjgqbjgrMNCivjgr/jgq3jgrbjg68s44Kx44Oz44K4DQor44Of44K644K144KtLOOCseODs+OCv+ODreOCpg0KK+OCv+OCreOCsOODgSzjgrHjgqQNCivjg5Ljgqrjgq0s44Oe44K144K3DQor44OK44Kr44KkLOOCouODhOODnw0KK+OCquOCpOOCq+ODryzjg6zjgqTjgrMNCivjg57jg4Tjg6Djg6ks44OB44Kw44K1DQor44Ko44Oz44OJLOODqOOCt+OCqg0KK+OCv+OCuOODnizjgrXjg4jjgrMNCivjg6Tjg57jgrbjgq0s44Ko44Kk44K4DQor44K744OO44KqLOOCs+OCpuOCuA0KK+ODj+ODqeODgCzjg4jjgrfjg57jgrUNCivjg5Xjgq/jgqQs44OI44Oi44KrDQor44Oe44OE44Km44OpLOOCseOCpA0KK+OCq+ODr+ODoOODqSzjg6bjgqbjgqTjg4ENCivjg4bjg6njg6Ljg4gs44K/44Kr44Of44OBDQor44OP44Ku44Ov44OpLOOCv+OCr+ODnw0KK+ODiuOCq+OCt+ODnizjgqjjg5/jgrMNCivjgq3jg47jgrfjgr8s44Of44OB44KqDQor44Ki44Op44KkLOODgeOCuuODqw0KK+ODoOODqeODpOODnizjgrjjg6Xjg7PjgrMNCivjgrXjgqjjgrDjgrUs44OI44Oi44OfDQor44K/44OK44KrLOODn+ODhOOCsw0KK+ODnuOCqOODgCzjgqrjgrXjg6ANCivjg5/jg6Tjgrbjgq0s44Kr44K644OfDQor44Kk44Kx44OZLOOCouOCreODqQ0KK+OCr+ODr+ODkOODqSzjgr/jgqvjg47jg6oNCivjg6jjg4As44K/44Kr44KqDQor44K/44OB44OQ44OKLOODpOOCueOCouOCrQ0KK+ODpOODnuOCsOODgSzjg6jjgrfjgqLjgq0NCivjgqTjgrfjg4/jg6ks44Kx44Kk44KzDQor44K/44Kt44K244OvLOODnuOCteOCouOCrQ0KK+ODkuODqeODjizjg6jjgrfjg5bjg58NCivjgqvjg6/jgrXjgq0s44K/44Kr44Oo44K3DQor44Ok44Oe44Oi44OILOODkuOCteODiOOCtw0KK+OCouODqeOCuyzjgqLjg4TjgrcNCivjg6Tjg4rjgq7jgrXjg68s44Oe44K144OO44OWDQor44K344Kq44OkLOOCouOCreOCqA0KK+OCteODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg4jjgqYs44OS44OI44OfDQor44Kq44OOLOODqOOCt+OCv+OCqw0KK+OCreOCv+ODj+ODnizjg6Tjgrnjg57jgrUNCivjgrTjg4jjgqYs44OO44Oq44KzDQor44OL44OO44Of44OkLOODnuODpuODnw0KK+OCpuOCueOCpCzjg4jjg6Ljg47jg6oNCivjg5/jgrrjgrfjg54s44K/44Kx44OrDQor44K544OJ44KmLOODnuOCs+ODiA0KK+OCpOOCseODgCzjgqLjgq3jgrMNCivjg4rjgqvjg5Ljgqzjgrcs44Ki44Oq44K344KyDQor44Kv44Oq44Oi44OILOODreODr+ODqw0KK+ODiOODgCzjg5Ljg63jgr/jgqsNCivjg4/jgqvjg57jgr8s44Ki44OE44OO44OWDQor44K/44OL44Kw44OBLOODj+ODq+ODnw0KK+OCpOODnuOCvOOCrSzjgqTjgq/jgrMNCivjg5vjg6rjgqos44Oe44Om44OfDQor44Kr44K544KsLOODhOODqOOCtw0KK+OCq+ODr+OCuyzjg4rjgqrjgrMNCivjgrXjg4jjgqYs44OS44Ot44OfDQor44K/44Kr44OK44K3LOODjuODluOCouOCrQ0KK+ODnuODhOOCt+OCvyzjgr/jgqvjgrcNCivjg6TjgrDjg4Es44OS44OH44KtDQor44Kr44ON44KzLOOCq+OCuuODpuOCrQ0KK+ODkuODgOOCqyzjg5/jgqoNCivjgrXjg4PjgrUs44K/44Kk44OBDQor44K944KsLOOCv+OCr+ODpA0KK+OCueOCruOCpuODqSzjgrHjg7Pjgr/jg63jgqYNCivjgrXjg4jjgqYs44Ki44Of44KzDQor44K/44OL44OQ44Ok44K3LOOCteODgeOCsw0KK+ODi+OCt+OCquOCqyzjgr/jgqvjgrcNCivjg4jjg6Ljg4rjgqws44OK44Kq44KtDQor44Kq44Kq44OP44K3LOODkuODh+OCrQ0KK+ODiuOCrOOCt+ODnizjgrvjgqTjgr8NCivjgr/jg4vjgqzjgq0s44K744Kk44KzDQor44Kz44Km44OALOOCs+ODn+ODig0KK+OCreODqOODjizjgrXjg4jjgrcNCivjg6Tjg57jgqvjg68s44OI44K344KqDQor44OK44Kr44K444OeLOODkuODreOCtw0KK+ODouODhuOCrizjgrPjgqbjgrgNCivjgqrjgqrjg4zjg54s44Om44K/44KrDQor44K144OI44KmLOOCt+OCsuOCqg0KK+ODleODq+OCpOOCqCzjg6jjgrfjgrMNCivjgqLjgqTjg6Ljg4gs44Oi44OI44OV44OfDQor44Oo44Kz44KqLOOCr+ODi+OCqg0KK+ODi+OCt+OCq+ODryzjgrHjg7PjgrgNCivjg5Pjg4jjgqYs44Oo44K344OK44KsDQor44Kt44K/44Og44OpLOOCt+ODs+ODpA0KK+ODpOODnuOCq+ODryzjgrXjg4Djg4/jg6sNCivjg4jjg5/jgr8s44K/44Kx44K3DQor44OE44OB44OALOODkuODh+ODiA0KK+OCpOOCt+OCsOODrSzjg6rjgqgNCivjg57jg4Tjgqos44OI44Kq44OrDQor44Km44Ko44Oi44OILOOCs+OCpuOCpOODgeODreOCpg0KK+OCpOOCpOODgCzjg5/jgq3jgrMNCivjgrnjgrrjgq0s44K344Ky44OS44OtDQor44K/44Og44OpLOOCq+OCuuODqOOCtw0KK+OCquOCr+ODgCzjg47jg5zjg6sNCivjg5vjg6os44Oo44K344OfDQor44Kv44K144OE44KwLOODpOOCueOCtw0KK+ODpOODnuODgCzjg57jgrXjg4rjgqoNCivjgqLjgrXjg4/jg6ks44K/44Kr44OS44OtDQor44OI44Kv44OALOODnuODs+ODiuODqg0KK+OCpOODh+OCvyzjg6jjgrfjg5Ljg60NCivjgqTjg4jjgqYs44OG44Or44Of44OBDQor44K144OI44KmLOOCreOCpOODgeODreOCpg0KK+ODhOOCuOOCteODryzjgrHjgqQNCivjgqrjg44s44Kz44Km44K4DQor44Kk44Ov44OeLOODjuODluOCouOCrQ0KK+ODgOOCpOOCtOOCryzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jg6Djg6ks44Oo44K344Kr44K6DQor44OP44K744Ks44OvLOODiOOCt+OCq+OCug0KK+OCpOOCrizjgr/jgqvjg5Ljg60NCivjg57jgqvjg5ks44Oe44K144Kr44OEDQor44Kq44Kr44Oi44OILOOCq+ODhOOCqg0KK+OCquOCquODj+ODqSzjg6bjgq3jg4rjgqoNCivjgrvjgq3jg6Tjg54s44Kr44K644KqDQor44Kt44K/44K444OeLOODkuODreOCouOCrQ0KK+ODiOODquOCpuODnyzjg57jgrXjg5Ljg60NCivjg5/jg6Tjgrbjgq0s44K/44OG44KqDQor44Km44KkLOODqOOCt+ODkuODiA0KK+OCr+ODqeODouODgSzjgqvjgrrjg5Ljg60NCivjgrfjgqrjg4zjg54s44OS44OH44OI44K3DQor44Op44Kk44K/LOOCpOOCr+OCqg0KK+OCt+ODouOCs+OCpuODmSzjg47jg5bjgqvjgroNCivjgrXjg6/jg44s44OG44Or44KqDQor44K144Kr44OL44K3LOODpuOCpuOCuA0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrvjgqTjg44s44Kx44Kk44K+44KmDQor44K544K644KtLOOCouOCreODqOOCtw0KK+OCteOCq+ODouODiCzjg4jjgrfjgqoNCivjgrnjgrrjgq0s44K344Ot44KmDQor44K144Ov44OOLOOCq+ODhOODpA0KK+OCt+OCrCzjg4bjg4Tjg6QNCivjgrTjg4jjgqYs44OI44Kv44Oe44K1DQor44K544OALOOCuOODpeODs+OCuA0KK+OCueOCuuOCrSzjg6jjgrfjgrMNCivjgrXjgqvjgq3jg5Djg6ks44OI44K344KqDQor44K144OI44KmLOOCseODs+OCuA0KK+OCteOCq+OCsOODgSzjg6jjgrfjg47jg6oNCivjgrnjgq7jgrXjgq0s44Of44OE44Kv44OLDQor44K544Ko44KtLOOCv+OCq+OCtw0KK+OCueOCuuOCrSzjg47jg5bjgqLjgq0NCivjgrfjg5Djgr8s44Kz44OI44K4DQor44K544Ku44Ok44OeLOOCv+ODgOOCqg0KK+OCteOCq+OCpCzjg57jgrXjg6bjgq0NCivjgrfjg5/jgros44K/44OA44K3DQor44K544Ku44Oi44OILOODiOOCt+OCqg0KK+OCteODiOOCpizjgr/jgq/jgrgNCivjgrvjgq0s44Kq44K144OgDQor44K144Kv44Op44KkLOODj+ODq+ODpuOCrQ0KK+OCu+OCreOCsOODgSzjgrPjgrnjgrENCivjgrXjg4jjgqYs44Ko44Kk44K4DQor44K544K644KtLOODpuOCpuODjuOCueOCsQ0KK+OCteOCpOODiOOCpizjgr/jg4DjgqoNCivjgrvjgq3jg40s44OI44Oo44OV44OfDQor44K544K644KtLOODhOODiOODoA0KK+OCpOOCpOODgCzjgq3jg6jjgr/jgqsNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K144K144KtLOODn+ODhOOCqg0KK+OCueOCqOODiuOCrCzjg4jjgrfjgqoNCivjgrXjgqvjg6Ljg4gs44OS44OH44Ki44KtDQor44K144Kk44OI44KmLOODnuOCteODnw0KK+OCueOCrOOCqizjg4bjg4TjgrgNCivjgrfjg57jgros44Of44OO44OrDQor44K144Kk44OI44KmLOODleODn+OCqg0KK+OCt+ODjuOCtuOCrSzjgqLjgq3jg6kNCivjgrnjgrrjgq0s44Oo44K344Om44KtDQor44K544OK44KsLOOCseODsw0KK+OCteODiOOCpizjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Kx44Kk44K/44Ot44KmDQor44K744Kt44ONLOOCteODgOODjuODqg0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrXjg6/jg4As44Ki44Kt44OpDQor44K144Kk44OI44KmLOOCq+OCuuOCqg0KK+OCt+ODouOCvuODjizjgr/jg4Djg5LjgrMNCivjgrnjgqgs44K/44Kr44K3DQor44K144OJ44OI44OiLOOCouOCreODqQ0KK+OCu+OCreODjSzjgrHjg7PjgrnjgrENCivjgrXjg4jjgqYs44K144OI44K3DQor44K144Oz44K0LOODqOOCt+ODjuODlg0KK+OCueODieOCpizjgq/jg4vjgqLjgq0NCivjgr3jg47jg4As44OK44Kq44OfDQor44K344OeLOODn+ODjuODqw0KK+OCteODiOOCpizjg6jjg43jgr7jgqYNCivjgrXjg4jjgqYs44OI44Of44KqDQor44K344OW44OkLOOCq+OCuuOCouOCrQ0KK+OCteODiOOCpizjgqvjgrrjgqoNCivjgrXjg4jjgqYs44OG44Or44OS44KzDQor44K144Kr44K/LOODqOODjeOCqg0KK+OCteOCpOODiOOCpizjgqrjgrXjg6ANCivjgrnjg6/jgq0s44K/44Kr44K3DQor44K944OqLOOCv+OCseOCuA0KK+OCteOCq+ODouODiCzjgrfjg6Xjg7PjgqTjg4ENCivjgrfjg6njgqTjgrcs44Oe44K144OI44K3DQor44K544K644KtLOOCouOCreOCqg0KK+OCt+ODnuODgCzjg4jjgrfjgqoNCivjgrnjgrrjgq0s44Oe44K144OS44OtDQor44K544K644KtLOODqOOCt+OCqg0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgrnjgrrjgq0s44Kt44Oo44K3DQor44K144OI44KmLOODhOODiOODoA0KK+OCt+OCsuODnuODhCzjgq3jg6jjgrcNCivjgrXjgqzjg6ks44K/44Kr44OI44K3DQor44K144Kk44OI44KmLOODpuOCreOCqg0KK+OCt+ODs+OCsOOCpizjgr/jgqvjgqoNCivjgrnjgqzjg4zjg54s44OG44Or44OO44OWDQor44K944KsLOOCv+OCseOCtw0KK+OCteOCteOCrSzjg47jg5bjg6bjgq0NCivjgrXjg4jjgqYs44K344Ky44OrDQor44K144Ov44OALOODhuODhOOCqg0KK+OCveODnizjgqrjgrXjg6ANCivjgrfjg5Djgr8s44K/44Kx44KqDQor44K144OI44KmLOODn+ODgeOCsw0KK+OCteODiOOCpizjgq3jg6jjgrcNCivjgrfjg57jg4As44OS44OH44KqDQor44K144K144KtLOODjuODluOCqg0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrXjgqTjg4jjgqYs44K344Ky44OrDQor44K344Oi44OHLOODkuODh+OCrQ0KK+OCteOCteOCrSzjg4jjgrfjgqoNCivjgrXjg4jjgqYs44Oo44KmDQor44K144OI44KmLOODkuOCteOCqg0KK+OCteODr+ODgCzjgrfjg7PjgqTjg4ENCivjgrfjg63jgrXjgq0s44Oo44Km44Kk44OBDQor44K344OQ44KkLOOCueOCueODoA0KK+OCteOCpOODiOOCpizjg5/jg4HjgqoNCivjgrnjgrrjgq0s44OI44K344KqDQor44K944Ks44OZLOOCpOOCteOCqg0KK+OCu+OCrOODryzjg4Hjg5Ljg60NCivjgrfjg5/jgros44Of44OO44OrDQor44K544K644KtLOODqOOCpuOCuOODreOCpg0KK+OCt+ODreODpOODnizjg6jjgrfjg5LjgrMNCivjgrfjgqTjg4os44Oo44K344KqDQor44K144Ok44OeLOODnuODouODqw0KK+OCteOCq+ODouODiCzjg57jgrPjg4gNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K544K644KtLOOCv+ODgOODqOOCtw0KK+OCueOCuuOCrSzjg4bjg4Tjg63jgqYNCivjgrXjgrXjgrss44Kr44OE44Om44KtDQor44K144Kv44Op44KkLOODnuOCteOCrQ0KK+OCt+ODnuODgCzjgrvjgqTjgrgNCivjgrXjg4jjgqYs44Kr44OE44OS44OtDQor44K344Oi44OOLOODqOOCpuOCueOCsQ0KK+OCueOCuuOCrSzjg6jjgrfjg4rjg6oNCivjgrnjgq7jg6Ljg4gs44Oe44K144KqDQor44K344Of44K6LOOCv+OCseOCqg0KK+OCteODjizjg6jjgrfjg47jg5YNCivjgrnjgrrjgq0s44Kz44Km44OY44KkDQor44K344Oe44OALOOCq+OCuuODkuOCsw0KK+OCueOCuuOCrSzjg4/jg6vjg5LjgrUNCivjgrnjgq7jg5Xjgrgs44OS44OI44K3DQor44K144Kr44KkLOOCt+ODs+OCpOODgQ0KK+OCteOCq+OCsOODgSzjgqjjgqTjgrgNCivjgrnjgqzjg6/jg6ks44OA44Kk44K144KvDQor44K344OO44K644KrLOOCuOODpeODs+OCpOODgQ0KK+OCt+OCrCzjg5/jg4TjgqoNCivjgrXjgqvjgqzjg58s44OI44Oo44OeDQor44K544K644KtLOOCq+OCuuODpuOCrQ0KK+OCueOCruODjizjg5Ljg4fjgqoNCivjgrnjgq7jgqbjg6ks44K544K544OgDQor44K344Of44K6LOOCq+OCuuODnw0KK+OCueOCuuOCrSzjgr/jgrHjgrfjgrINCivjgrXjgrXjgrMs44K744Kk44K+44KmDQor44K744KtLOODpuOCreODqOOCtw0KK+OCteODiOOCpizjgr/jg4TjgrgNCivjgrfjg54s44OS44Ot44K3DQor44K544K644KtLOOCreODqOODhuODqw0KK+OCteOCq+ODouODiCzjg6jjgrfjgqvjgroNCivjgrXjgrXjgq0s44OS44Ot44K3DQor44K344Oe44OALOOCpOOCveOCuA0KK+OCteOCpOODiOOCpizjgr/jg4Djg5LjgrUNCivjgrfjgqrjgr8s44OI44Oo44KqDQor44K344Kq44OALOOCpOOCteODoA0KK+OCueODgCzjgqjjgqTjgrgNCivjgrfjgqTjg4os44Kx44Oz44K+44KmDQor44K344Kq44OO44OkLOODhuODhOOCqg0KK+OCteOCpOOCt+ODp+OCpizjg6Tjgrnjg5Ljg60NCivjgr3jgqTjg4As44Ko44Kk44Kk44OBDQor44K944OeLOOCq+ODs+OCuA0KK+OCteODiOOCpizjg5Ljg63jgrcNCivjgrXjg4jjgqYs44K/44Kx44Of44OBDQor44K344Kq44OQ44OpLOOCreODqOOCqA0KK+OCteOCteOCquOCqyzjg6jjgrfjgr/jgqsNCivjgrXjgrXjgq0s44Of44OE44OO44OWDQor44K744OILOODleODn+OCqg0KK+OCt+ODpeODieOCpizjgr/jgqvjgqoNCivjgrXjgqvjg6Ljg4gs44OS44Ot44K3DQor44K144Kv44OeLOOCv+OCq+OCtw0KK+OCt+ODjuOCtuODryzjg4Tjg6jjgrcNCivjgrfjgqrjg5Djg6ks44OS44Ot44Om44KtDQor44K144Kv44Op44KkLOODpuOCuuODqw0KK+OCteODiOOCpizjg6HjgrDjg6ANCivjgrXjgq/jg6njgqQs44OI44K344KqDQor44K144K144OZLOODkuODreOCtw0KK+OCteODiOOCpizjg6rjg6Xjgqbjgr7jgqYNCivjgrnjgq7jgqbjg6ks44Om44Km44K+44KmDQor44K144Kr44KkLOODnuOCteOCqg0KK+OCveODnizjg47jg5bjgqoNCivjgr3jgqbjg6Qs44K744Kk44K4DQor44K944ON44Kr44OELOOCouOCreODqQ0KK+OCu+OCreODjSzjgr/jgrHjgqoNCivjgrnjgrrjgq0s44OO44Oq44KqDQor44K744Kt44ONLOODiOOCt+ODhOOCsA0KK+OCteOCq+OCreODkOODqSzjgqvjgrrjg4jjgrcNCivjgrfjg6Ljgqvjg6/jg5ks44Kx44OzDQor44K144Ov44Og44OpLOODiuODq+ODnw0KK+OCu+OCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kz44K644KoDQor44K144Kr44Oe44KtLOODkuODh+OCouOCrQ0KK+OCteOCrOODryzjg4jjgrfjg5LjgrUNCivjgrnjgq7jg6Tjg54s44K/44Kx44Om44KtDQor44K544Ku44Oi44OILOOCsw0KK+OCu+OCqizjg6bjgqbjgrgNCivjgrXjgqTjg4jjgqYs44K/44Kr44K3DQor44K144Kr44KkLOODn+OCreOCqg0KK+OCteOCr+ODqeOCpCzjgr/jg4Djg5Ljg60NCivjgrvjgq3jg40s44Oe44K144OO44OqDQor44K144OI44KmLOODj+ODhOODnw0KK+OCt+ODn+OCuizjgr/jgqvjgrcNCivjgrfjg5/jgros44OI44K344KqDQor44K144Kk44OI44KmLOODnuOCteOCqg0KK+OCteOCr+ODqeOCpCzjg57jgrXjgqLjgq0NCivjgrnjgq7jg6Tjg54s44Ok44K544KqDQor44K344K644KrLOODkuOCteODiuOCqg0KK+OCt+ODqeOCq+ODryzjgqLjgq3jg6kNCivjgrXjgqTjg4jjgqYs44Om44K644OrDQor44K144Kt44Oi44OqLOOCpOODr+OCqg0KK+OCteODiOOCpizjg4bjg4TjgqoNCivjgrvjgq3jgrDjg4Es44Kq44Kt44OI44K3DQor44K744Kt44ONLOODjuODquOCsw0KK+OCt+ODkOOCvyzjgrPjgqbjgrjjg63jgqYNCivjgrnjgrrjgq0s44K/44Kr44OS44OtDQor44K144Kk44OI44KmLOODkuOCteOCqg0KK+OCteODiOOCpizjg47jg6rjgqoNCivjgrvjgq3jg40s44Kq44K144OgDQor44K144Kr44KkLOODj+ODq+ODkuOCsw0KK+OCteOCteOCqizjgrfjg7PjgrgNCivjgrnjg4njgqYs44Oe44Kz44OIDQor44Oi44OqLOOCt+ODp+OCpuOCuA0KK+OCt+ODn+OCuizjgqjjgqTjgr7jgqYNCivjgrXjg4jjgqYs44OG44Or44KqDQor44K544K644KtLOOCpOOCteOCqg0KK+OCt+ODoOODqSzjg5Ljg63jg4jjgrcNCivjgrfjg5DjgrXjgq0s44OS44Ot44K3DQor44K544Ks44Oe44K/LOOCq+OCuuOCqg0KK+OCueOCuuOCrSzjg5Ljg63jgrcNCivjgrfjgqrjg47jg6Qs44Kt44Oo44Kr44K6DQor44K/44Kr44OP44K3LOODiOOCt+ODreOCpg0KK+ODhOOCreODpOODnizjgq3jgq/jgqoNCivjg4Tjg47jg4As44Oo44K344KtDQor44K/44Kr44OP44K3LOODiuOCquODiA0KK+ODiOOCr+OCtuODryzjg6Ljg6rjg4/jg6sNCivjgr/jgrDjg4Es44Oe44K144KqDQor44K/44Kr44KuLOODkuODh+OCqg0KK+OCv+OCq+ODjizjg4bjg6vjg5/jg4QNCivjgr/jg4/jg6ks44Kt44Oo44Kr44K6DQor44OI44Oo44K144OvLOOCs+OCpuOCpOODgQ0KK+ODiOODqOODnuOCuSzjgrHjgqTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Oe44K144OO44OWDQor44K/44Kx44Km44OBLOODhuOCpOOCuA0KK+OCv+OCreOCpOOCtyzjg6rjg6fjgqbjgrgNCivjgr/jgqvjgqTjgrcs44K344Ky44KqDQor44K/44Kr44K144KtLOOCseODs+OCuA0KK+OCv+ODi+OCrOODryzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44Oe44K144OI44K3DQor44K/44OK44OP44K3LOOCs+OCpuOCuA0KK+OCv+ODnuOCrSzjg5Ljg63jgrcNCivjg4jjg5As44Oe44K144K3DQor44K/44OQ44K/LOOCv+OCq+OCtw0KK+ODhOOCuCzjgr/jgqvjgqoNCivjgr/jg4rjgqss44Ki44OE44K3DQor44K/44Kr44OP44K3LOODnuOCteODjuODqg0KK+ODiOOCr+ODiuOCrCzjgq3jg5/jgqoNCivjgr/jgrDjg4Es44Oe44K144KqDQor44K/44Kt44K244OvLOOCq+ODhOOCt+OCsg0KK+ODiOODnyzjgr/jg43jg57jgrUNCivjg4Tjgrgs44Kx44Kk44KzDQor44Km44OB44OALOODiOOCt+OCqg0KK+OCv+ODiuOCqyzjgqTjg6/jgqoNCivjg4Tjg43jg6jjgrcs44OO44Oq44Kr44K6DQor44K/44Kr44OOLOODoOODjeOCqg0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jg4ENCivjgr/jgqvjg6Tjg4rjgq4s44Oo44Km44Kk44OBDQor44K/44Kx44OALOOCseOCpOOCueOCsQ0KK+OCv+ODnCzjg6bjgr/jgqsNCivjgr/jg4rjgqss44Kr44K644KqDQor44K/44Kx44Km44OBLOODnuOCteOCrQ0KK+OCv+OCq+ODpOOCuSzjg4jjg6jjg58NCivjg4Tjg4Hjg6Qs44Om44OP44OEDQor44OI44Kv44OK44KsLOOCseODs+OCuA0KK+ODhOODgeODgCzjg4rjgqrjgqvjgr8NCivjg4Tjg5zjgqQs44Ko44Kk44Ko44OEDQor44K/44Kr44OP44K3LOODnuOCteOCt+OCsg0KK+ODhOOCq+ODouODiCzjgrXjg4Djg6ANCivjgr/jg4rjgqss44K344Ky44OrDQor44OI44Oi44OE44ONLOOCueOCueODoA0KK+ODgeOCuCzjg4jjgrfjg4/jg6sNCivjgrXjg4jjgqYs44K744Kk44K4DQor44K/44Kr44K/LOODhOODjeOCqg0KK+ODiOODj+OCvyzjg6jjgrfjg58NCivjgr/jgqvjg4/jgrcs44Of44OO44OrDQor44K/44Kr44OP44OeLOODqOOCt+OCouOCrQ0KK+ODhuODqeOCteODryzjg4rjgqrjgrMNCivjgr/jgqvjg5Djg6Tjgrcs44K344On44Km44K4DQor44OG44Op44OALOOCt+ODpeOCpuOCuA0KK+ODhOOCq+ODgCzjgrvjgqTjgrgNCivjgr/jg4rjgqss44OS44OH44KqDQor44OI44Oq44Oe44OrLOOCv+ODn+OCqg0KK+ODhOODgeODgCzjg57jg6Ljg6sNCivjgr/jgq3jg6Ljg4gs44OI44K344OS44KzDQor44K/44Kt44KkLOODkuODh+OCouOCrQ0KK+OCv+ODjeODgCzjgrHjg7PjgrgNCivjgr/jg6Djg6ks44Oo44K344OO44OqDQor44K/44OJ44Kz44OtLOODkuOCteOCqg0KK+OCv+OCq+OCqizjg57jgrnjg58NCivjgr/jg4rjgqss44OS44Kr44OrDQor44K/44Kr44OP44K3LOODj+ODhOOCqg0KK+OCv+OCq+ODj+OCtyzjgrfjgrLjg6bjgq0NCivjgr/jgqvjg4/jgrcs44OV44K444KqDQor44OI44Of44K/LOODiOOCquODqw0KK+OCv+OCq+ODj+OCtyzjgqLjg4Tjg47jg6oNCivjgr/jg4vjgrDjg4Es44Of44OB44Ki44KtDQor44K/44OK44KrLOODpuOCpuOCvuOCpg0KK+ODhOODnOOCpCzjg5Ljg63jg58NCivjgr/jgrHjgqbjg4Es44Ob44OW44OzDQor44OE44OALOODiOODqOOCtw0KK+OCv+OCseODgCzjg57jgrXjg6bjgq0NCivjgr/jgrHjgqQs44K344Ky44KqDQor44OE44K444Kr44OvLOODpuOCpuOCpOODgQ0KK+OCv+OCseODoOODqSzjgrvjgqTjgrjjg6UNCivjgr/jgq0s44Oe44K144Ki44KtDQor44K/44Kr44OALOODnuOCteOCouOCrQ0KK+OCv+OCreOCtuODryzjgrfjgrLjg6sNCivjgr/jg4rjgqss44Oe44K144K4DQor44K/44OL44Og44OpLOOCv+OCseODqOOCtw0KK+ODqOOCt+OCtuODryzjg57jgrXjg4/jg6sNCivjg4Tjg43jgqvjg68s44K/44Ot44KmDQor44K/44OK44KrLOODkuODreOCtw0KK+OCv+OCq+ODgCzjgqvjg4TjgqoNCivjg4Tjg6ss44Ki44Kt44OpDQor44K/44OLLOODnuOCteODkuODrQ0KK+OCv+OCsOODgSzjgqTjgrXjgqoNCivjgr/jg4rjgqss44K444Ol44Oz44K+44KmDQor44K/44OL44Kw44OBLOOCq+OCuuODkuODrQ0KK+OCv+ODiuOCqyzjg47jg6rjg5/jg4QNCivjg4Tjgrgs44Om44Km44Kk44OBDQor44K/44OK44KrLOOCq+ODhOODnw0KK+ODhOODpuOCrSzjg5LjgrXjgqoNCivjgr/jg57jg6ss44Oe44K144OfDQor44OE44OB44OkLOOCseOCpOOCuA0KK+ODhOODq+OCquOCqyzjg47jg5bjgqoNCivjgr/jgqvjg4/jgrcs44OG44OE44KqDQor44K/44Kr44OP44K3LOODn+ODhOOCsw0KK+ODiOOCpuODleOCr+OCuCzjg4jjgrfjgqoNCivjgr/jg4rjgqss44Kq44Kt44OE44KwDQor44K/44Kr44KuLOOCreODp+OCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjg5LjgrUNCivjgr/jg4vjgrDjg4Es44Oq44On44Km44K4DQor44OI44Oo44OALOODkuODiOOCtw0KK+OCv+OCq+OCrizjgr/jgrHjgrcNCivjgr/jgrHjgqQs44K344Ky44OrDQor44OE44OALOODleODn+OCqg0KK+ODhOODjeODkuODrSzjgrjjg6Xjg7PjgrgNCivjgr/jgq3jgrbjg68s44OI44K344KqDQor44K/44OB44OQ44OKLOOCtOOCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg6bjgq0NCivjgr/jg4vjgrDjg4Es44Kz44K544KxDQor44K/44Kx44OALOOCq+OCuuODiA0KK+ODhOODgeODpCzjgrHjg7PjgqTjg4ENCivjgr/jgqvjg4/jgrcs44OI44K344Ki44KtDQor44K/44OO44Km44KoLOODkuOCs+OCteODluODreOCpg0KK+OCv+OCq+ODkOOCv+OCsSzjg57jgrXjg47jg5YNCivjgr/jgqvjg4/jgrcs44Oe44K/44K144OW44Ot44KmDQor44OV44OK44KtLOODhuODq+ODpOOCuQ0KK+OCv+OCseODgCzjgqvjg4Tjg57jgrUNCivjg4jjgq/jg4rjgqws44K/44OEDQor44Ki44K144KkLOODpuOCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5/jgq3jgrMNCivjgr/jgqvjg4/jgrcs44OO44Oq44KqDQor44K/44Ks44OvLOOCt+ODp+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg47jg5bjg6bjgq0NCivjgr/jg4Hjgqvjg68s44K/44Kx44K3DQor44K/44Kw44OBLOOCq+OCuuODqOOCtw0KK+OCv+OCq+OCteOCrSzjgqLjgq3jg6kNCivjgr/jg57jgqrjgq0s44K344K644KqDQor44K/44OK44KrLOOCu+OCpOOCpOODgeODreOCpg0KK+OCv+OCq+ODjizjgrfjg7MNCivjgr/jgrHjgqbjg4Es44K344Ky44OrDQor44OE44OALOOCu+ODs+OCuA0KK+OCv+OCq+ODiuODnyzjg57jgrXjg6sNCivjg4Tjgq3jg4rjg68s44Oo44K344OK44KqDQor44OI44Of44Oi44OqLOOCueOCueODoA0KK+OCv+OCseODgCzjg4jjgqrjg6sNCivjg4jjgqzjgrcs44OG44OE44OS44KzDQor44OE44K644KtLOOCt+OCsuODiOOCtw0KK+ODiOODk+OCvyzjg47jg5bjgqLjgq0NCivjg4jjg6Ljg4rjgqws44OE44ON44Kr44K6DQor44OE44OE44KkLOOCt+OCsuOCouOCrQ0KK+OCv+OCq+OCrizjgrjjg6Xjg7PjgrgNCivjgr/jg4vjgrDjg4Es44Kr44K644OI44K3DQor44K/44Kr44OOLOODiOOCt+ODkuODrQ0KK+OCv+ODiuOCqyzjgrXjg4jjgrcNCivjg4jjg57jg4Tjg6os44K344Ot44KmDQor44K/44Kr44KuLOOCpOODhOOCqg0KK+OCv+OCq+OCt+ODnizjg5Xjg5/jgqoNCivjgr/jg4/jg6ks44Oo44K344Ki44KtDQor44K/44OK44KrLOOCq+OCuuOCsw0KK+OCv+OCq+ODgCzjg6jjgrfjgqoNCivjg4jjg6rjgqQs44Of44OE44Om44KtDQor44K/44Kx44OZLOODjuODluODpuOCrQ0KK+ODhOOCq+ODouODiCzjgqLjgq3jgqoNCivjgr/jg6Djg6ks44OO44OW44OS44OtDQor44OI44Of44OK44KsLOOCteOCq+OCqA0KK+OCv+OCq+OCpOODryzjgrXjg4jjgrcNCivjgr/jg5Djgr8s44Kx44Oz44K4DQor44K/44Kr44OP44K3LOOCr+ODi+OCqg0KK+ODhuODs+ODneOCpuODquODsyzjgr3jgqbjgqTjg4ENCivjg4bjg6njgqbjg4Es44K144OA44Om44KtDQor44K/44Kr44OP44K3LOOCreODqOOCtw0KK+OCv+OCq+OCuyzjg4Hjgqvjg6kNCivjgr/jgrHjg6Djg6ks44Oi44OI44KkDQor44K/44Og44Kr44KkLOODleODn+OCqg0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrgNCivjgr/jgrHjg4Qs44Kr44OE44K4DQor44K/44OO44Kq44KrLOOCueOCueODoA0KK+OCv+OCq+ODj+OCtyzjgr/jg4DjgrcNCivjg4jjgqrjg6Tjg54s44Kt44Oo44OO44OWDQor44K/44Kx44Km44OBLOOCouODhOOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgqoNCivjgqbjgrfjgqos44Om44K644OrDQor44Km44K544KuLOOCq+OCuuODkuODrQ0KK+OCpuODgeODpOODnizjg6jjgqbjgqTjg4ENCivjgqbjg6Hjg4As44Kr44K644K544KxDQor44Km44Kx44Oi44OqLOODnuOCteODig0KK+OCpuODgeODgCzjg5/jg4Hjg6QNCivjgqbjgqjjg4As44OS44K144KqDQor44Km44OB44OALOOCseOCpOOCuA0KK+OCpuODhOOCrSzjg4bjg4TjgqoNCivjgqbjgqjjg4As44Of44Kt44OS44KzDQor44Km44OB44OALOODkuODh+OCrQ0KK+OCpuOCqOODj+ODqSzjgrfjg6XjgqYNCivjgqbjgqjjg6Djg6ks44OO44OW44OkDQor44Km44OB44OALOOCteODgOODpuOCrQ0KK+OCpuODgeODoOODqSzjgrHjgqTjgqTjg4ENCivjgqbjg4Hjg4As44Kx44Oz44K544KxDQor44Km44OB44OALOOCseOCpOOCpOODgQ0KK+OCpuOCqOOCrSzjgqLjgq3jgrMNCivjgqbjgqvjgrgs44Oe44K144OG44OrDQor44Km44OB44OALOODnuOCteOCouOCrQ0KK+OCpuOCqOODoOODqSzjg5Ljg4fjgqoNCivjgqbjgrfjgqos44OI44Kv44K4DQor44Km44Oh44Og44OpLOODiOOCt+OCqg0KK+OCpuODoeOCt+ODnizjg6rjgq3jg4TjgrANCivjgqbjgrPjg7Ms44Kr44Kq44OrDQor44Km44OB44Kk44KxLOOCuOODpeODs+OCpOODgQ0KK+OCpuODq+OCt+ODjizjgr/jgqvjgqLjgq0NCivjgqbjg4Hjg4rjgrcs44OY44Kk44K/DQor44Km44Kw44K1LOODnuOCteODpuOCrQ0KK+OCpuODjizjg4jjgrfjg5Ljg4cNCivjgqbjgqjjgq0s44Of44OO44OrDQor44Km44Ko44Oi44OILOOCseODsw0KK+OCpuOCqOODoOODqSzjg6bjgq3jgqoNCivjgqbjgqjjg4/jg6ks44OS44Ot44K3DQor44Km44Ko44OALOOCt+ODs+ODmuOCpA0KK+ODr+OCv+ODiuODmSzjg5LjgrXjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44OE44OfDQor44Ov44K/44OK44OZLOOCreODs+ODpA0KK+ODr+OCq+ODoOODqSzjg6Tjgrnjg60NCivjg6/jgr/jg4rjg5ks44OS44OH44K4DQor44Ov44K/44OK44OZLOODqOOCt+OCv+OCqw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg4/jg6sNCivjg6/jgr/jg4rjg5ks44Kr44OE44OK44OqDQor44Ov44K/44OK44OZLOODkuODh+OCqg0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Ok44K544Ki44KtDQor44Ov44K/44OK44OZLOOCv+ODgOOCtw0KK+ODr+OCreOCvyzjgrPjgqbjg6HjgqQNCivjg6/jgr/jg4rjg5ks44OI44Kt44KqDQor44Ov44K/44OK44OZLOOCs+ODs+OCtOOCpg0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6/jgr/jg4rjg5ks44Kq44K144OgDQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+ODr+OCv+ODiuODmSzjgrnjg5/jgr/jg4ANCivjg6/jg4As44Ok44K544K3DQor44Ov44K/44OK44OZLOOCv+ODhOODkuOCsw0KK+ODr+ODgCzjgr/jgrHjg5/jg4QNCivjg6/jg4As44Ob44Oe44OsDQor44Ov44K/44OK44OZLOODnuOCteOCouOCrQ0KK+ODr+OCv+ODiuODmSzjgqLjgq3jg6kNCivjg6/jgr/jg4rjg5ks44K344Ky44Ki44KtDQor44Ov44Kr44OQ44Ok44K3LOODn+ODjeOCqg0KK+ODr+OCv+ODiuODmSzjg5LjgrXjgqoNCivjgqrjgqrjgr8s44Oe44Kz44OIDQor44OV44K444Ov44OpLOOCueODn+OCouOCrQ0KK+OCs+OCpOOCsSzjg5/jg4HjgqoNCivjgqvjgr/jgqrjgqss44OG44OE44OkDQor44OS44Ot44K344KyLOOCreODqOOCtw0KK+OCt+ODs+OCtuODryzjg5Ljg63jgrcNCivjg5/jgrrjgqvjg58s44Oe44K144Of44OEDQor44OK44Kr44K444OeLOOCseOCpOOCpOODgQ0KK+ODleOCr+OCt+ODnizjgrfjgrLjgq0NCivjg4rjgqss44OS44Ot44K3DQor44OS44Op44Ok44OeLOODnuOCteOCsw0KK+ODi+ODr+ODpOODnizjgqvjg4TjgrgNCivjgrfjg5/jgros44K944Km44K444Ot44KmDQor44OV44Or44K144OvLOODhOODqOOCtw0KK+OCteOCr+ODqeOCpCzjg5/jgrrjg5sNCivjgr/jgrHjg4rjgqss44Ki44OE44OO44OWDQor44K544Ku44Km44OpLOOCq+ODqOOCsw0KK+OCq+ODiOOCpizjgrHjg7PjgrgNCivjg5vjgrfjgqvjg68s44Oe44K144KqDQor44Kq44Ks44OvLOOCpOOCteOCqg0KK+OCq+OCt+ODr+OCrizjgrMNCivjgrXjgqvjgqQs44OS44Ot44KzDQor44Oi44OqLOODj+ODq+OCqg0KK+ODm+ODs+ODnCzjg47jg5bjg6bjgq0NCivjgqTjgqTjgrjjg54s44Oo44K344Ki44KtDQor44Kz44K444OeLOOCv+OCq+OCqg0KK+OCv+OCq+ODj+OCtyzjg47jg5zjg6sNCivjg4/jgr8s44K344On44Km44K544KxDQor44Kq44Ks44OvLOOCouOCreODjuODqg0KK+ODhOODgeODpCzjgqvjg4Tjg6QNCivjgrPjg6Tjg54s44Kk44K144KqDQor44OV44Or44OfLOODhuODhOOCqg0KK+OCr+ODoSzjg4Tjg43jgqoNCivjgq/jg6njgr8s44K744OE44KqDQor44Km44K344K444OeLOODnuOCteOCq+OCug0KK+OCqOODkOODiCzjgqvjg4Tjg47jg6oNCivjgrXjg4jjgqYs44OO44OW44Om44KtDQor44Og44K344OjLOODiuOCquODkuOCsw0KK+ODpuOCouOCtSzjg57jg6Ljg6sNCivjgq3jgq/jg4Es44OK44Kq44KtDQor44Oe44OE44OQ44Ok44K3LOODhuODq+ODqOOCtw0KK+ODnuODhOOCpCzjgqLjgq3jg6kNCivjgr/jgrHjg6Djg6ks44OS44Ot44K3DQor44OG44Op44K344OeLOODqOOCpuOCueOCsQ0KK+OCr+ODqSzjg5Ljg4fjgq/jg4sNCivjg57jg4TjgqQs44Oo44K344KqDQor44Km44Ko44OALOOCpOOCteOCqg0KK+ODj+ODpOOCtyzjgrfjg7PjgqTjg4ENCivjgqvjg6/jg4os44OA44Kk44K444Ot44KmDQor44OP44Ok44K3LOOCq+OCuuOCqg0KK+ODh+ODouODiCzjg57jgrXjg5Ljg60NCivjgrfjg5bjgq0s44K/44Kx44K3DQor44OP44OeLOOCv+ODhOOCqg0KK+OCqOODs+ODiSzjgrPjgqbjgrbjg5bjg63jgqYNCivjg5/jg6Tjg6Ljg4gs44K/44Kr44OS44K1DQor44Oe44OE44OALOODkuODreOCtw0KK+ODpOODnuODouODiCzjg4jjg6LjgrMNCivjg6Djg6njgqvjg58s44K344Ky44KqDQor44Kq44Kr44OALOODgOOCpOOCreODgQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg6bjgq0NCivjgqTjg6/jgrXjgq0s44Ki44Kt44OoDQor44Oo44K344OALOOCueODn+ODpuOCrQ0KK+OCquOCquODouODqizjg57jgrXjg47jg6oNCivjg5/jgrrjgr/jg4ss44OS44K144KoDQor44K544Ku44Km44OpLOOCq+OCuuOCqg0KK+ODjuODiuOCqyzjg5/jg4Tjgr/jgqsNCivjg6/jgr/jg4rjg5ks44Kk44K144OgDQor44K144Kk44OI44KmLOOCv+OCseOCqg0KK+OCquOCquOCq+ODr+ODqSzjgrLjg7Pjgr/jg63jgqYNCivjgqvjg4njgqTjgrEs44K/44Kx44K/44OADQor44Oe44OE44Oi44OILOODjuODquOCq+OCug0KK+ODiuOCqyzjgr/jgqvjgqoNCivjgqvjg4jjgqYs44Kx44Oz44K+44KmDQor44Kr44Ov44Kk44K3LOODpuOCpuOCsw0KK+ODiuOCrOOCteODryzjg4Tjg4jjg6ANCivjgrnjg6Tjg54s44Kv44Oz44Ot44KmDQor44Kv44Oe44K344OtLOODkuODreOCtw0KK+OCv+OCq+ODkOODpOOCtyzjg5Ljg4fjgqoNCivjgrPjg7Pjg4ks44Kx44Oz44K+44KmDQor44Kk44OK44OQLOOCteODiOODqw0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Of44Kr44KzDQor44K544K644KtLOODpuOCpuOCuA0KK+OCouOCreODpOODnizjg6bjgr/jgqsNCivjgr/jgqvjg4As44Ki44Kt44OpDQor44K144Ov44KkLOODnuOCteODkuOCsw0KK+ODiuOCq+OCvyzjgq3jg6jjg6bjgq0NCivjgqTjgr/jg5As44Om44Km44Kk44OBDQor44Kv44OL44Ku44K/LOODqOOCpuOCpOODgQ0KK+ODpOODnuODgCzjg6jjgqbjgrMNCivjg6Tjg57jg4As44Om44Km44KzDQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgeODreOCpg0KK+OCpuODoeODoOODqSzjg47jg6rjg5LjgrMNCivjgrPjg5Djg6Tjgrcs44OO44OW44Ki44KtDQor44Kr44ON44Of44OELOOCv+ODgOOCqg0KK+OCreODiSzjg57jgrXjgrcNCivjgqvjg43jgq0s44K/44OA44KqDQor44Kz44Og44OpLOODnuOCteODkuODrQ0KK+ODleOCuOODouODqizjgrHjg7PjgqTjg4ENCivjg6Tjg57jgrfjgr8s44OG44Or44K/44KxDQor44Kv44Oq44Ok44OeLOODnuOCteODkuODrQ0KK+ODiOOCtuODryzjgr/jgqvjgrcNCivjgqTjgrfjgqQs44OB44Kr44OI44K3DQor44K/44Kr44OP44K3LOODqOOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgqvjgrrjg58NCivjgqTjgrfjgrbjgq0s44OG44OE44KqDQor44OP44Op44OALOODnuOCteODkuODrQ0KK+ODiOOCr+ODkuOCtSzjgrfjgrLjg6TjgrkNCivjgqTjgrfjg6Djg6ks44K/44OA44OS44OtDQor44Km44Ko44OALOOCv+OCq+OCtw0KK+OCquODleODgSzjgq/jg4vjg5Ljg60NCivjg6Tjg4Tjg6vjgq4s44Of44OE44KqDQor44Of44OK44OILOODnuODpuODnw0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg5/jg4rjg58s44Ok44K544KqDQor44Kq44KrLOOCouOCreOCqg0KK+OCpOODgeOCq+ODryzjgqvjgrrjgqoNCivjgqrjgqrjgq/jg5ws44OS44OH44KtDQor44Kk44K344OALOODkuODreODpuOCrQ0KK+ODiOODn+OCvyzjgqTjgrXjgqoNCivjg5Ljg6njgqrjgqss44OS44Ot44OS44K1DQor44Kr44OI44KmLOODkuODh+OCqg0KK+OCquODoOODqSzjg6Djg4TjgqoNCivjgqrjgrXjgrjjg54s44OI44K344OkDQor44OV44OK44Kz44K3LOOCu+ODhOOCqg0KK+OCs+OCpuODgCzjg5Ljg4fjgqLjgq0NCivjgqLjgrXjgqrjgqss44K/44OE44KqDQor44Kr44K544KsLOOCouOCseODnw0KK+ODouODouODj+ODqSzjg5bjg7PjgqTjg4ENCivjgqbjgqjjg6Djg6ks44OI44K344OS44OHDQor44Kq44OQ44K/LOOCq+OCuuOCsw0KK+OCquODjuODgCzjg6bjgq3jgqoNCivjg5/jg6Tjgrfjgr8s44Kr44Oz44K4DQor44Ob44K944OkLOODpOOCueOCqg0KK+ODpOOCt+ODrSzjg6bjgq3jgqoNCivjg6/jgr/jg4rjg5ks44Ki44OE44K3DQor44Kt44Og44OpLOODiOOCreODgQ0KK+OCq+ODn+OCuOODp+OCpizjg5LjgrXjgqgNCivjgrXjg4jjgqYs44Oo44K344Kq44KtDQor44Oe44OE44K344OeLOOCouOCreODqQ0KK+OCq+OCv+ODpOODnizjg6jjgqbjgrMNCivjg5Ljg6njg44s44K044OY44KkDQor44OK44Kr44Op44KkLOODgOOCpOOCueOCsQ0KK+ODqOOCs+ODpOODnizjg5LjgrXjgqoNCivjgqrjgqrjgqzjg40s44OI44Oi44OS44OtDQor44Kt44Og44OpLOODnuOCs+ODiA0KK+ODjuOCtuOCtSzjg6jjgrfjg47jg6oNCivjg6Ljg6rjg44s44Kr44K644K344KyDQor44Ko44OB44K044OkLOODn+ODgeODkuOCsw0KK+ODleOCr+OCt+ODnizjg5Ljg4fjgqoNCivjgqTjg4jjgqYs44Oe44K144Om44KtDQor44Kk44Kx44OALOODpuOCreOCsw0KK+ODiOOCr+ODiuOCrCzjg6rjgqgNCivjgq3jg6Ljg4gs44Ki44Kk44KzDQor44Kq44K344OALOOCteODiOOCsw0KK+ODj+OCt+ODouODiCzjg47jg6rjgqvjgroNCivjg47jgrDjg4Es44OI44K344OO44OqDQor44Of44Ok44OZLOOCq+OCuuODiA0KK+OCr+ODr+ODj+ODqSzjg6TjgrnjgqgNCivjgq3jg6Djg6ks44OS44Ot44OfDQor44Kq44OALOOCq+OCuuODpuOCrQ0KK+OCouOCpOOCtuODryzjgr/jg5/jgqoNCivjgqbjgqjjg44s44Kr44OE44KqDQor44Oe44OE44OQ44OpLOODjuODquODpuOCrQ0KK+OCv+ODnuOCpCzjgqvjgrrjg5/jg4ENCivjgrfjg6njgqQs44Oo44K344KqDQor44Kq44Kq44OP44K3LOOCs+OCpuOCuA0KK+OCv+ODn+ODpCzjg5Xjg5/jg6QNCivjg4/jg6njg4As44Oo44K344KzDQor44Km44K544KkLOOCv+OCq+OCtw0KK+OCs+ODqizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg47jg4As44K344Ky44OS44KzDQor44OK44Of44KtLOODnuOCteODiA0KK+ODiuOCq+OCqizjg57jgrXjg5/jg4QNCivjgqvjg4njg6Qs44Ki44Kt44OpDQor44Kq44OOLOODiOOCt+ODkuODhw0KK+OCt+ODluOCq+ODryzjgrfjg7PjgqTjg4ENCivjgqTjg6/jgrXjg68s44Oe44OK44OWDQor44K/44OW44K7LOOCpOODgeODreOCpg0KK+OCquOCteODryzjgr/jgqvjg6jjgrcNCivjg4rjgqvjg4DjgqQs44Kx44Oz44K4DQor44Ko44Ks44K344OpLOODkuODreODpuOCrQ0KK+OCteOCteOCrSzjgqvjg4TjgqoNCivjg5Xjgq/jg4Es44Kr44K644OS44KzDQor44Oo44K344Ok44K5LOOCtOOCpg0KK+ODr+OCv+ODiuODmSzjgrPjgrXjg4gNCivjgqbjgqjjg44s44Os44Kk44KzDQor44Ko44OI44KmLOODnuOCteODjuODqg0KK+ODqOOCt+ODgCzjg57jgrXjgqoNCivjgr/jgrHjgqQs44Om44Km44Kk44OBDQor44OP44Ok44K3LOODkuOCteOCtw0KK+ODnuOCv+OCrSzjgrfjg7PjgrQNCivjg6Ljg6rjg6Ljg4gs44Kk44OB44Ot44KmDQor44Kk44OP44OpLOOCseODs+OCuA0KK+ODhOOCq+ODj+ODqSzjg4bjg6vjgqoNCivjgqvjg47jgqYs44OI44Oi44KzDQor44Og44ON44Om44KtLOODkuODh+ODnuOCtQ0KK+OCquOCquODhOODnCzjg6jjgrfjgr/jgqsNCivjg6Tjg57jg6Ljg6os44Kr44OE44KqDQor44Ki44Oz44OJ44KmLOOCu+OCpOOCrQ0KK+ODpOODnuOCtuOCrSzjg6jjgrfjgqLjgq0NCivjgr/jgq3jg6Ljg4gs44Oo44Km44Kk44OBDQor44K/44Kx44Og44OpLOODiuOCquOCq+OCug0KK+ODoOODqeOCq+ODnyzjg57jgrPjg4gNCivjgr/jgqvjgr8s44OO44Oq44KqDQor44OS44Ot44K7LOODhOOCv+ODkuODrQ0KK+ODpOOCr+ODryzjgr/jgqvjgrcNCivjgrfjg7PjgrDjg6rjg6fjgqYs44Oo44Km44KzDQor44K/44OBLOODnuOCteOCtw0KK+OCteODiOOCpizjgqvjgrrjgqoNCivjg6Tjg57jg6Ljg4gs44Oe44K144OS44OtDQor44K544OJ44KmLOOCt+ODp+OCpuOCsw0KK+ODm+ODs+ODnizjg5Ljg63jgq0NCivjgqrjgqrjg4Tjg5ws44OI44K344KqDQor44Kr44K244OeLOODn+ODhOODkuODrQ0KK+OCouOCrOODryzjg5/jg5vjgrMNCivjgqTjg47jgqbjgqgs44Oq44Ol44Km44Kk44OBDQor44Ki44Op44KkLOODnuOCteODgQ0KK+OCpuOCqOODoOODqSzjg6bjgr/jgqsNCivjg4vjgrfjgq/jg6ks44Oe44K144OS44OtDQor44Of44Ok44K244KtLOODqOOCt+OCq+OCug0KK+ODleOCr+ODgCzjg6Ljg6rjg57jgrUNCivjg4Tjg6rjg6Qs44K/44OA44KqDQor44K/44OK44KrLOODkuODreOCq+OCug0KK+OCquOCrOODryzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Of44OO44OrDQor44OP44Oe44Kw44OBLOOCv+OCr+OCuA0KK+OCq+ODoeODgCzjgqvjg4Tjg6QNCivjg6Ljg6Ljg4/jg6ks44OS44OH44KqDQor44OS44Op44KqLOOCv+OCq+OCsw0KK+OCv+OCq+ODgCzjg4rjgqrjg6bjgq0NCivjgqTjgrHjg4As44Oo44K344OS44OtDQor44K544K644KtLOOCouOCreODqQ0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg6jjgrcNCivjgr/jg4rjgqss44K444Ot44KmDQor44K744OpLOOCv+OCpOODgQ0KK+OCv+OCseODoOODqSzjg4jjgrfjgqLjgq0NCivjg5vjg6rjgq3jg6os44Oe44Oi44OrDQor44Kk44Kx44OALOODn+ODjuODqw0KK+OCouODqeOCrSzjgrvjgq3jg40NCivjgqrjgqrjg4Tjgqss44Kr44K644Kk44OB44Ot44KmDQor44Kv44OL44Oe44OELOOCu+OCpOOCtuODluODreOCpg0KK+OCpuOCt+ODkCzjgr/jgqvjgrcNCivjg4/jg6Tjgrcs44Oe44K144OIDQor44Kk44K344KkLOODn+OCreOCqg0KK+OCq+ODgCzjgqLjgq3jg6kNCivjg6Tjgq4s44K/44OA44KqDQor44OS44Op44KkLOOCs+OCpuOCpOODgeODreOCpg0KK+OCr+ODreOCuyzjg5Ljg63jgrcNCivjgqrjgqvjg5ks44Kk44K144OgDQor44Kr44ON44KzLOODiOOCt+ODpuOCrQ0KK+OCs+OCuOODnizjgrXjg4jjg6sNCivjg4vjgrfjg6jjg6os44Of44OO44OrDQor44OK44Kr44K444On44KmLOOCuOODreOCpg0KK+ODj+OCt+OCr+ODqSzjg4Tjg4jjg6ANCivjgr/jgqvjg4/jgrcs44K/44OE44KqDQor44Km44Ko44Kv44K1LOODjuODluOCouOCrQ0KK+OCt+ODkOOCvyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44OG44Or44KqDQor44Kk44OK44OQLOOCq+OCuuODiA0KK+OCuOODpeODs+OCpOODgeODrSzjgqLjgq3jg47jg6oNCivjg4/jg6Tjgqvjg68s44OS44OH44KqDQor44Kk44OI44KmLOOCv+OCseOCtw0KK+OCreODouODiCzjg57jgrXjg4TjgrANCivjgqTjg4As44OS44Ot44K3DQor44Ob44Km44K444On44KmLOOCq+ODhOODkuOCsw0KK+ODm+ODquOCpCzjg4Tjg43jgqoNCivjgqvjgqTjgrss44Ki44OE44K3DQor44OP44K344Oi44OILOODpOOCueOCouOCrQ0KK+OCueOCuuOCrSzjg5Ljg4jjgrcNCivjgqvjg43jgrXjgqss44Oo44K344KqDQor44Ok44Oe44Kw44OBLOODpuOCpuOCuA0KK+OCueOCuuOCrSzjg57jgrXjgqvjgroNCivjgrnjg4njgqYs44Oe44K144OS44KzDQor44Kq44Kq44OQLOODn+ODm+OCsw0KK+ODoOODqeOCvyzjg4jjgrfjgrMNCivjgqLjgq3jg6Tjg54s44Oe44K144K3DQor44Ki44K544OeLOOCv+OCseOCqg0KK+OCq+ODr+OCuOODqizjg5Ljg4fjgqoNCivjg57jg4Tjg6Ljg4gs44Kt44On44Km44K4DQor44K344Ot44Ok44OeLOOCsw0KK+ODleOCuOOCpCzjgqLjg4TjgrMNCivjgrTjg4jjgqYs44OA44Kk44K544KxDQor44K/44OL44Ki44KkLOODpOOCueODnuOCtQ0KK+OCq+ODhOODnOODqizjg57jgq0NCivjg5LjgqLjg4Ys44Kv44Of44KzDQor44OG44Op44KkLOOCouOCreOCsw0KK+ODj+ODs+ODgCzjg57jgrXjgrMNCivjg5/jgrfjg54s44OS44Ot44OfDQor44K/44Kr44K344OeLOOCq+OCuuODnw0KK+ODnuODhOODgCzjgqLjgq3jg6kNCivjgrPjg7Pjg4ks44OO44Oq44KzDQor44Kk44K/44OkLOOCseODs+OCuA0KK+ODnuODhOODouODiCzjg4rjgqrjgr/jgrENCivjgqTjgqTjg6Tjg54s44OS44OH44KqDQor44K444OD44OILOOCq+ODhOODkuODrQ0KK+OCr+ODnOOCvyzjgrXjg4HjgrMNCivjgqTjgrfjgrDjg60s44Ko44Kk44K4DQor44Oi44OqLOOCpuODhOODnw0KK+OCq+ODs+ODjizjgrXjg4HjgrMNCivjgqTjg4jjgqYs44K744Kk44K4DQor44Oo44K344OALOODquODpeOCpuOCuA0KK+ODnuODq+ODpOODnizjgq/jg4vjgqoNCivjgrXjg4jjgqYs44OK44ObDQor44Kz44Km44OALOODqOOCpuOCuA0KK+ODr+OCv+ODiyzjg57jg6Ljg6sNCivjgrXjgrss44Kk44Kv44KqDQor44K944OI44Ok44OeLOOCq+ODhOODjuODqg0KK+ODm+ODs+ODgCzjg4bjg6vjgq/jg4sNCivjgqTjg4zjgqQs44Om44K/44KrDQor44K544K644KtLOODqOOCt+ODjuODqg0KK+OCs+ODi+OCtyzjg6jjgrfjg47jg5YNCivjgrnjgq7jgqQs44Om44Kt44OS44K1DQor44Ki44Op44KtLOODjuODluOCqg0KK+ODkuODqeOCquOCqyzjg6TjgrnjgrcNCivjgqrjgqrjg4Tjgqss44Og44OE44KqDQor44Kr44OI44KmLOOCt+OCsuOCqg0KK+OCt+OCquODjizjg5Ljg63jgrcNCivjgqvjgr/jg6Tjg54s44OS44Ot44OO44OqDQor44OV44OB44Kr44OfLOOCv+OCseODkuOCsw0KK+ODkuODqeOCrSzjgr/jg6Ljg4QNCivjgqTjg6/jgrXjgq0s44Kt44Of44KqDQor44Ko44OO44KtLOOCuOODpeODsw0KK+OCpOODr+OCvyzjgrvjgqTjgqTjg4ENCivjgrfjg6Xjg4jjgqYs44K/44OA44K3DQor44OI44Kq44Ok44OeLOODnuODhOODjuODqg0KK+OCs+OCpOODhyzjgrjjg6Xjg7Pjgrbjg5bjg60NCivjgr/jg4rjg5ks44Om44Km44K444Ot44KmDQor44Ok44Oe44Oi44OILOOCt+ODpeODs+OCpOODgQ0KK+OCq+OCpOODj+ODhCzjgrvjgqTjgrcNCivjgqLjg6njgqQs44Kr44OE44K4DQor44Km44Ko44OALOODpuOCpuOCvuOCpg0KK+OCr+ODqeOCquOCqyzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgrPjg5Djg6Tjgrcs44Ko44OE44OS44OtDQor44K/44Oh44OB44KrLOOCv+ODhuOCqg0KK+ODqOOCt+ODgCzjgrfjgrrjgqoNCivjg57jg4Tjg6Ljg4gs44K344Ky44OrDQor44K144Kr44K344K/LOOCq+ODjeOCqg0KK+ODr+ODgCzjg4jjgrfjgqLjgq0NCivjgqTjg4jjgqYs44Ok44K544KqDQor44Oo44K344OALOOCq+ODhOOCuA0KK+ODqOODjeODgCzjg4jjgrfjg5Ljg4cNCivjgqrjg6Djg6ks44Oe44K144OfDQor44K/44Kr44KuLOOCt+ODgeODreOCpg0KK+OCpuODgeODpOODnizjgqLjgq3jgrMNCivjgqvjgrfjg6/jgq4s44Kx44Kk44KzDQor44OL44K344OALOOCu+ODhOOCqg0KK+OCquOCt+OCqyzjgr/jgrHjgqoNCivjgqjjgrjjg54s44OI44Oi44OO44OqDQor44Kq44KrLOOCseODs+OCpOODgQ0KK+ODqOOCt+ODgCzjg6TjgrnjgqgNCivjgqTjg57jgqQs44Ok44K544K344Ot44KmDQor44Ok44Oe44Of44OBLOODiOODouOCsw0KK+OCouOCpOODouODjizjgqvjg4TjgqoNCivjg5Ljg44s44Oi44OI44KzDQor44K/44Kr44OP44K3LOODn+OCteOCsw0KK+ODqOOCs+OCvyzjgqjjgqTjgrMNCivjgqTjg47jgqYs44K/44Ko44KzDQor44Oo44K344OALOODkuODreOCsw0KK+ODqOOCt+OCquOCqyzjgqLjgq3jgrMNCivjgqbjg6Hjgrbjg68s44Km44Kt44KzDQor44OG44Op44KqLOODkuODreODkuOCtQ0KK+OCq+ODr+ODj+ODqSzjg4/jg6vjgqoNCivjg4/jgrvjgqzjg68s44Of44OO44OrDQor44Kt44K3LOODhuODq+OCsw0KK+ODj+OCt+OCuuODoSzjg5/jg4Tjg5Ljg60NCivjg6jjgrfjg4As44Oh44Kw44OfDQor44Of44ON44OV44K4LOODiuOCquOCsw0KK+ODm+ODs+ODgCzjg6bjg58NCivjgr/jgqvjgrXjg68s44Of44Om44KtDQor44Kq44Kq44OP44K3LOODqOOCpuOCsw0KK+OCq+OCrOODryzjg4HjgqsNCivjg4vjgrfjg4As44Oe44OqDQor44Kk44K/44Ks44KtLOOCouOCreOCsw0KK+OCouOCreODpOODnizjg47jg6rjg5Ljg60NCivjgqrjg4Hjg6os44Ok44K544OS44OtDQor44OO44K244OvLOOCs+OCpuOCuA0KK+OCteOCpOODiOOCpizjgrHjg7PjgrgNCivjgq3jg6Djg6ks44OB44KoDQor44Ki44OZLOODiuOCquODiA0KK+OCr+OCueODjuOCrSzjg4jjg6LjgrMNCivjg4/jg6Tjgrcs44Ok44K544OS44OtDQor44Kq44Kq44KkLOODiuOCquODnw0KK+OCq+ODn+OCquOCqyzjg4/jg6vjg6jjgrcNCivjgqLjgq3jg6Tjg54s44Kk44K144KqDQor44Ki44Oq44K/LOOCq+ODhOODnw0KK+OCreOCv+ODoOODqSzjg5/jg4Hjg6bjgq0NCivjg57jgrnjg6Djg6ks44K/44Kr44OO44OqDQor44Kq44Kq44K144OvLOOCseODsw0KK+OCq+ODr+OCpCzjg5/jg47jg6sNCivjgqTjgr/jgqzjgq0s44OS44OH44KqDQor44Oi44OqLOOCv+OCq+OCqg0KK+OCouOCquOCrSzjg5/jgq3jgqoNCivjg5Xjgrjjgrfjg60s44Kz44Km44K4DQor44K344Of44K6LOODouODiOOCt+OCsg0KK+ODoOODqeOCq+ODnyzjg5/jg6jjgrcNCivjg4rjgqvjgrjjg54s44OG44OE44KqDQor44Oi44KuLOOCouOCreOCqg0KK+ODn+OCpuODqSzjgqvjgrrjgqoNCivjgr/jgqvjg57jg4Qs44Kx44Oz44K4DQor44K/44Kr44OALOOCt+ODp+OCpuOCpOODgQ0KK+OCs+ODs+ODiSzjg57jgrXjgrMNCivjg4rjgqvjgrjjg54s44OS44OI44K3DQor44ON44Os44KkLOODkuODreOCtw0KK+OCpuOCt+OCryzjgqrjgrXjg6ANCivjgq3jgr/jgrbjg68s44KzDQor44K144OD44K1LOODjuODluODkuODrQ0KK+OCpOODg+OCt+OCrSzjg6jjgrfjg5Ljg60NCivjgqvjg6/jg44s44OO44Oq44OE44KwDQor44Kk44K344OP44OpLOODleODn+OCv+OCqw0KK+OCq+ODoeOCquOCqyzjgr/jg4DjgqoNCivjgq3jgqbjg4Es44OO44Oq44Kr44K6DQor44OK44Ks44KkLOODkuODiOOCtw0KK+ODjuOCsOODgSzjg5/jg4HjgqoNCivjgqrjgrfjgr8s44K/44Kr44KqDQor44Oo44K344Og44OpLOODiOOCt+ODn+ODgQ0KK+OCouOCq+ODm+ODqizjg5/jg4Tjg47jg5YNCivjg57jg6vjg4rjgqws44Oo44K344OE44KwDQor44Oo44K344OOLOOCs+OCpuOCv+ODreOCpg0KK+ODpOODjizjg6jjgrfjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Oe44K144OS44OHDQor44Ok44Oe44Kw44OBLOOCq+ODhOODiOOCtw0KK+OCu+ODs+ODieODgCzjg57jgrXjg6sNCivjg6Tjgrnjg4As44Ki44Kt44OpDQor44Oo44Kz44KoLOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuOCt+OCvyzjgrvjgqTjgrbjg5bjg63jgqYNCivjg6jjgrfjg4As44OI44Of44K+44KmDQor44Ok44Oe44K344K/LOOCueOCueODoA0KK+ODpOOCueOCpCzjgqvjgrrjgqoNCivjg6Tjg57jgqrjgqss44Kt44On44Km44K544KxDQor44Oo44Kz44K7LOODiOODouOCt+OCsg0KK+ODpOODnuOCsOODgSzjgrHjg7PjgrgNCivjg6Tjg4/jgq4s44Ok44K544OP44OrDQor44Ok44Oe44Kq44KrLOODkuODreODnuODqw0KK+ODqOODhOODpCzjg4jjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44KzDQor44Oo44K344Kr44OvLOODiOOCt+ODreOCpg0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgrgNCivjg6Tjg57jgqrjgqss44OS44Ot44KzDQor44Oo44ON44Of44OELOOCu+OCpOOCuA0KK+ODqOOCt+ODgCzjgrHjg7PjgqTjg4ENCivjg6Tjg57jgrbjgq0s44OG44OE44KqDQor44Ok44Oe44Oi44OILOODkuOCq+ODqw0KK+ODpOODnuOCsOODgSzjg5/jg47jg6sNCivjg6Tjg57jgqbjg4Es44K144Kr44KoDQor44Oo44K344K244OvLOOCq+ODhOODnw0KK+ODqOOCt+OCquOCqyzjgqvjg4Tjg5Ljg4gNCivjg6Tjg57jg6Ljg4gs44OO44OW44KqDQor44Ok44Oe44Kq44KrLOODn+ODgeODiOOCtw0KK+ODpOODnuOCtuOCrSzjgqLjgq3jg6kNCivjg6jjgrfjg6Djg6ks44Oe44K144OS44KzDQor44Ok44K544OALOOCs+OCpuOCuA0KK+ODpOODnuOCt+OCvyzjgrvjgqTjgqTjg4ENCivjg6Tjg4As44K344Oz44OkDQor44Oo44K344OALOOCpOODgeODreOCpg0KK+ODpOODnuODouODiCzjg4Tjg4jjg6ANCivjg6Tjg57jg4As44K044Ot44KmDQor44Oo44ON44OALOOCq+OCquODqw0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg6Tjg57jg4As44Kv44K544KqDQor44Ok44Oe44Kw44OBLOOCv+OCq+ODleODnw0KK+ODpOODnuOCsOODgSzjg5Xjg5/jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44K/44Kr44KzDQor44Oo44K344OALOOCueOCueODoA0KK+ODpOODnuOCt+OCvyzjgrfjg6fjgqbjgr7jgqYNCivjg6Tjg7Pjg5ks44Ki44OE44OS44OtDQor44Ok44Oe44Kw44OBLOODjuODquODqOOCtw0KK+ODpOODnuODouODiCzjgrjjg6Xjg7PjgrgNCivjg6Tjg57jg40s44Kz44Km44K444Ot44KmDQor44Ok44Oe44K144KtLOOCseODs+OCv+ODreOCpg0KK+ODpOOCueOCquOCqyzjg6bjgq3jgqoNCivjg6Tjg57jg4As44Ko44Kk44K+44KmDQor44Oo44K344K244OvLOOCuOODreOCpg0KK+ODpOOCuOODnizjgqLjgq3jg6kNCivjg6Tjg4rjgqQs44OG44OE44KqDQor44Ok44Oe44K244KtLOOCq+OCuuOCqg0KK+ODpOODnuOCpuODgSzjg5Xjgq/jg5/jg4ENCivjg6Tjg57jgrbjgq0s44K544K544OgDQor44Oo44K344OOLOOCv+ODhOODpuOCrQ0KK+ODpOODnuOCq+OCsizjgr/jg4Djg47jg5YNCivjg6Tjgq4s44K444OE44OO44OqDQor44Ok44K544OALOODnuOCteOCqg0KK+ODpOODnuODpCzjg47jg5bjgqoNCivjgr/jgqvjgrDjg4Es44OO44Oc44OrDQor44Oo44K344OALOODkuODreOCtw0KK+ODqOOCt+ODjizjgrPjgqbjgrgNCivjg6Tjg57jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Ok44KuLOOCq+ODhOODjuODqg0KK+ODpOODnuODgCzjgrPjgrnjgrENCivjg6bjgqvjg68s44Oe44K144OI44K3DQor44Ok44Oe44Oi44OILOOCuOODp+OCpuOCuA0KK+ODpOODnuOCv+ODiyzjg5Ljg63jg4TjgrANCivjg6Tjg57jg6Djg60s44Oo44K344Kr44ONDQor44Oo44K344OALOODiOOCt+ODkuOCsw0KK+ODqOOCs+OCq+ODryzjg4jjg6Ljg6jjgrcNCivjg6Tjg57jgrbjgq0s44Kz44Km44Kk44OBDQor44Ok44Oe44Oi44OILOOCv+OCseOCqg0KK+ODqOOCt+ODjizjgq3jg6jjgrcNCivjg6Tjg57jg40s44Oo44ON44K/44KrDQor44Ok44K544OK44KsLOOCouOCreODkuODrQ0KK+ODpOODiuOCqyzjgrHjgqTjgqTjg4ENCivjg6Tjg57jg40s44OG44OE44KqDQor44Ok44Oe44Km44OBLOODqOOCt+ODpuOCrQ0KK+ODpOODnuOCsOODgSzjg6bjgqbjgrgNCivjg6Tjg57jg6/jgq0s44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODgCzjgqvjgrrjg58NCivjg6jjgrPjg6Tjg54s44K344On44Km44K/44Ot44KmDQor44Ok44Oe44Oi44OILOODpOOCveODnw0KK+ODpOODnuOCsOODgSzjg47jg5zjg6sNCivjg6Tjg57jgrDjg4Es44K/44Kr44Oo44K3DQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuODiuOCqyzjgqvjgrrjg58NCivjg6Tjg57jg6Ljg4gs44K/44OA44OP44OrDQor44Oo44K344OALOOCv+OCq+OCqg0KK+ODpOODnuODgCzjgrXjg4jjg6sNCivjg6Tjg57jgqrjgqss44Oo44K344OI44OiDQor44Oo44Kz44Ok44OeLOODnuOCteODkuOCtQ0KK+ODpOODnuOCteOCrSzjg47jg6rjgqoNCivjg6Tjg57jg6Ljg4gs44Kr44OE44OS44KzDQor44Ok44Oe44Kr44OvLOODnuOCteODqOOCtw0KK+ODpOOCpuODgSzjgr/jg4Djg6jjgrcNCivjg6jjgrfjg4/jg6ks44Kr44OE44K4DQor44Oo44Kz44Of44K+LOOCt+OCsuODqw0KK+ODpOODnuODouODiCzjgrfjg6Xjgqbjgr7jgqYNCivjg6Tjg57jg6Ljg4gs44OG44Or44KqDQor44Ok44Oe44Oi44OILOOCqOOCpOOCpOODgeODreOCpg0KK+ODqOOCt+ODgCzjg57jgrXjg5Ljg60NCivjg6jjgrfjg4As44OV44Of44OS44OtDQor44Ok44K544KkLOODn+ODjuODqw0KK+ODpOODnuOCsOODgSzjgrfjgrLjg6sNCivjg6Tjg57jg6Ljg4gs44Ki44Kt44OpDQor44Oo44Kz44K/LOOCqOOCpOOCpOODgQ0KK+ODqOOCt+ODgCzjg6bjgr/jgqsNCivjg6jjgrPjg6Tjg54s44OS44OH44KtDQor44Ok44K544KkLOOCq+OCuuODouODiA0KK+ODpOODnuOCteOCrSzjgqvjgrrjg5Ljg60NCivjg6jjgrfjgqrjgqss44OO44OW44KqDQor44Oo44K344OALOOCt+ODpeODs+ODreOCrw0KK+ODpOODnuODgCzjgqvjg4Tjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Oo44Km44K4DQor44Oo44K344OALOOCu+OCpOOCvuOCpg0KK+ODpOODnuOCtuOCrSzjgrvjgqTjgrfjg63jgqYNCivjg6Tjg57jg40s44OK44Kq44K4DQor44Om44K/44OLLOOCueOCueODoA0KK+ODqOODjeOCtuODryzjg6jjgrfjg5Ljg60NCivjg6jjgrfjg44s44OA44Kk44K544KxDQor44Oo44K344OALOOCv+OCseOCqg0KK+ODqOOCt+ODouODqizjg5LjgrXjg4jjg6gNCivjg6jjgrfjg6/jg6ks44K/44Kx44K3DQor44Ok44Oe44OALOODiOOCt+OCrQ0KK+ODqOOCt+ODgCzjg4jjgrfjgqvjgroNCivjg6jjgrfjg4As44Og44OE44KqDQor44Ok44Oe44Oi44OILOODouODquODkuOCsw0KK+OCs+OCuOODnizjgq/jg4vjgqvjg4QNCivjgqrjg44s44K344Ky44KqDQor44Oe44Ko44Kr44OvLOOCs+OCpuOCv+ODreOCpg0KK+OCs+ODs+ODjizjg47jg5bjg6bjgq0NCivjg57jgq3jgrss44Kt44Oo44K3DQor44OO44Og44OpLOODnuOCteOCv+OCqw0KK+ODpOOCueODj+ODqSzjg57jgrXjg5LjgrMNCivjg4rjgqzjgrfjg54s44Ki44OE44Oo44K3DQor44Kt44K/44OP44K3LOODnuOCteOCqg0KK+ODhOODqyzjgq3jg6jjg5/jg4ENCivjg4Tjgq/jg4As44Of44OB44KqDQor44OG44Op44Km44OBLOOCv+OCseOCtw0KK+ODpOODnuODgCzjgrXjg4jjg6sNCivjgrvjg7Pjg5As44K544K544OgDQor44K144Ko44KtLOODjuODquOCqg0KK+OCquOCq+ODgCzjgrfjg6fjgqbjgqTjg4ENCivjg5/jg6Tjgqbjg4Es44OS44K144KqDQor44Kz44Oz44OJLOODiOOCt+OCqg0KK+ODleOCreOCouOCsizjg6TjgrnjgqoNCivjgqTjgrfjgqvjg68s44OB44Oo44K/44KxDQor44Kk44Ov44Oi44OILOODnuOCteOCqg0KK+OCr+ODnCzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgr/jg4rjgqss44OS44Ot44Kr44OEDQor44Ov44OALOODjuODquOCqg0KK+OCpOODr+OCqizjg4Tjg43jg47jg6oNCivjgq/jg57jgqzjgqQs44K/44Kr44OS44OtDQor44K544K644KtLOODkuODreODleODnw0KK+OCv+OCq+ODoOODqSzjg5Ljg63jgrcNCivjg4vjgrfjgqbjg6ks44K744Kk44Kk44OB44Ot44KmDQor44Of44OE44K4LOODnuOCteOCtw0KK+OCv+OCreOCreOCvyzjgqLjgq3jg6kNCivjgqrjgqbjg4Es44Kx44Oz44K4DQor44Kz44OeLOOCouOCreOCqg0KK+ODnuOCueODgCzjgrHjg7PjgrgNCivjgqvjg4jjgqYs44OI44K344Ot44KmDQor44Kk44Kk44K644KrLOOCq+OCuuODkuOCsw0KK+ODnuODq+ODpOODnizjg47jg5bjgqLjgq0NCivjg4jjgrfjgr/jg4ss44OI44Kq44OrDQor44OP44OK44OW44OBLOODnuOCteODkuODrQ0KK+OCpOODnuOCpCzjg57jgrXjgr7jgqYNCivjgqrjgqvjg5Ljg60s44OE44ON44KqDQor44Kt44Og44OpLOODiOOCt+ODkuOCsw0KK+OCv+OCuOODnizjg57jgrXjg4/jg6sNCivjgqvjg7Pjg4As44OE44Op44Om44KtDQor44OJ44KkLOOCquOCteODoA0KK+OCouODqeOCrOOCrSzjg6Tjgrnjg47jg5YNCivjgq3jg6Xjgqbjgr3jgrjjg7Ms44Kx44Oz44K544KxDQor44K/44Kx44Km44OBLOODhOODjeODqA0KK+OCpuODjOODnizjg5Ljg4fjg4rjg6oNCivjg6Tjg57jgrDjg4Es44Oo44K344K/44KrDQor44Oo44Oi44OqLOODouODiOODkuOCtQ0KK+OCt+ODnuOCtuOCrSzjgq/jg4vjg5LjgrMNCivjg4jjgq/jg6Qs44OI44K344KqDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODleOCq+ODpCzjgrfjgrLjgqoNCivjgqjjgrDjg4Es44OP44Or44KqDQor44K144OOLOODkuODh+ODjuODlg0KK+ODiOOCr+ODjizjgqLjgq3jg6kNCivjgqrjgqrjg4jjg6Is44K144OA44OgDQor44K344Op44Kq44Ks44OvLOODkuODreOCtw0KK+ODkuODqeODjizjgr/jgqTjgq0NCivjgqrjg4As44Om44Km44K4DQor44K/44OK44KrLOODquODp+OCpuOCvuOCpg0KK+ODleOCuOOCvyzjgqLjgq3jg6kNCivjgqLjg6njgqQs44Ki44Kt44OS44OHDQor44OV44K444K/LOODpuOCpuOCuA0KK+ODiuOCq+OCrOODryzjg5Ljg63jg6bjgq0NCivjg4rjgqvjg4vjgrcs44Kr44K644K344KyDQor44OP44OpLOOCouOCreODkuODrQ0KK+ODgeODkCzjg4jjgrfjgrMNCivjgqTjgrfjg6/jgr8s44OI44K344OS44K1DQor44Ok44Kw44OBLOOCv+OCseODkuODrQ0KK+ODhuOCuOODnizjgqvjgrrjgqoNCivjgr/jg4Tjgr8s44K344Ky44OrDQor44Kv44K144KrLOOCv+OCseOCtw0KK+ODleODq+OCvyzjgr/jgrHjg4/jg6sNCivjgrTjg4jjgqYs44Oe44K144OO44OWDQor44Kq44OA44Ku44OqLOOCv+ODgOOCtw0KK+OCr+ODnuOCrOOCpCzjgr/jgrHjg6sNCivjg6Djg6njgqvjg58s44Of44K644ObDQor44Of44Og44OpLOODnuOCteOCqg0KK+ODqOOCs+OCpCzjgq/jg4vjg5LjgrMNCivjgqTjg4rjgrIs44OI44Oi44Om44KtDQor44Ki44Oh44Of44OkLOODn+ODhOOCqg0KK+OCpOODjuOCpuOCqCzjgrXjg4DjgqoNCivjg4zjg57jgr8s44K444Oz44Kk44OBDQor44K144Kr44Oi44OILOOCtOODmOOCpA0KK+ODkuODqeODnuODhCzjgrXjg4DjgqoNCivjg4rjg6rjgr8s44Kr44Kq44OrDQor44OE44ON44OfLOOCpOODgeODreOCpg0KK+OCv+OCq+OCt+ODnizjg5XjgrXjg5LjgrMNCivjg5/jgrks44Kr44K644OfDQor44K144Kt44Ok44OeLOODqOOCt+ODkuOCsw0KK+ODleOCuOODr+ODqSzjgr/jg4DjgrcNCivjg4jjg5/jgr8s44Oe44K144OS44OtDQor44OE44OK44Ov44KtLOODn+ODjeOCqg0KK+ODj+OCu+OCrOODryzjgr/jgrHjgrcNCivjg5Xjgq/jgrbjg68s44Om44Km44K+44KmDQor44K044Ko44KxLOOCouOCreODqQ0KK+ODiuOCqyzjg57jgrXjg5Ljg60NCivjgqjjg5Djg4gs44Kx44Kk44KzDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCpOODgeODreOCpg0KK+ODkuODqeODhOOCqyzjgq3jg6jjgrcNCivjgrXjg4jjgqYs44OO44OW44KqDQor44Kk44OO44Km44KoLOOCouOCreODqQ0KK+ODj+OCueODjOODnizjg57jgrXjgqoNCivjg5Xjg6vjg4/jgr8s44Ki44K144KzDQor44Km44Ko44OOLOOCouODhOOCtw0KK+OCv+OCseODiuOCqyzjg57jgrXjg5Ljg60NCivjgq/jg4vjgr/jgrEs44Oo44K344KqDQor44OS44Op44K/LOODpuOCpuOCsw0KK+ODj+OCu+OCrOODryzjgrLjg7MNCivjg5Xjgq/jg4/jg6ks44Ki44OE44K3DQor44OV44OK44Kw44OBLOODiOOCquODqw0KK+OCouODnuODjizjg47jg6rjgrMNCivjgqrjgqrjg44s44Of44K644OO44OqDQor44K544OvLOODjuODquOCsw0KK+ODjuOCrOODnyzjg5/jgqsNCivjgqbjg6Hjg44s44Ok44K544Om44KtDQor44Kk44Kx44OOLOODpuOCpuOCsw0KK+ODiuOCq+OCuOODnizjg4/jg4rjgrMNCivjgqTjgrfjgqQs44Kt44On44Km44KzDQor44K144Kk44OI44KmLOODiOODouOCsw0KK+OCv+ODiuOCqyzjgqvjgrrjg6bjgq0NCivjgr/jg4bjgqTjgrcs44OI44K344Kr44K6DQor44K544K644KtLOODqOOCt+ODkuOCsw0KK+OCreODjuOCt+OCvyzjg5Ljgqvjg6sNCivjgqrjgqrjgrXjg68s44Oo44K344OS44OtDQor44Kk44OHLOOCteOCreOCsw0KK+OCquOCrOODryzjgrfjg5sNCivjgqjjg47jg6Ljg4gs44Ov44Kt44KzDQor44Kq44K244OvLOODn+OCuuODmw0KK+ODj+OCv+OCseODpOODnizjg4jjg6Ljg5Ljg60NCivjgqTjgqTjg4As44Of44OE44Ki44KtDQor44K344OO44K244KtLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODgCzjg6rjgqjjgrMNCivjgr/jgqvjg54s44Oe44K144K3DQor44Ok44KuLOODkuODreODpuOCrQ0KK+OCteOCq+OCpCzjg57jgrXjg6gNCivjgrfjg5/jgros44Kz44Km44K4DQor44Ob44Oq44Kr44OvLOODqOOCpuOCsw0KK+ODiuOCrOOCqizjgrPjgqbjg5jjgqQNCivjg5Ljg6njgqTjgrcs44Oe44OqDQor44K144Ks44OvLOOCv+ODouODhA0KK+ODj+ODqeODgCzjg57jgrXjg58NCivjgr/jgqvjg4/jgrcs44Oq44Ol44Km44Kk44OBDQor44K/44OBLOODnuOCteODqA0KK+ODkuOCqCzjgq3jg5/jgqoNCivjgr/jg4As44Of44OK44KzDQor44Oo44K344Oi44OILOODkuODreOCsw0KK+ODouODgeOCuuOCrSzjg4Hjg5Ljg60NCivjgr/jg4rjgqss44Kz44Km44K4DQor44K/44Kw44OBLOODnuODpuODnw0KK+OCteODiOOCpizjgqTjgq/jgqoNCivjgrXjgqvjgrfjgr8s44Om44Kt44KoDQor44Kr44Ov44K344OeLOODnuODpuODnw0KK+ODm+ODquOCsOODgSzjgqvjgqrjg6oNCivjg5Xjgq/jg54s44K544Of44K/44KrDQor44Kr44Ov44K/44OLLOOCouOCreODqQ0KK+OCuOODk+OCrSzjgqrjgrXjg6ANCivjgrXjgqTjg4jjgqYs44Of44OE44OrDQor44K344Kq44OELOOCpOOCteOCqg0KK+ODiOODkOOCvyzjg47jg6rjgqvjgroNCivjg6Tjg57jg6Ljg4gs44Oe44K144OS44KzDQor44Kq44OV44OBLOODkuODreODn+ODgQ0KK+OCt+ODjuODj+ODqSzjg47jg5bjgqoNCivjg6Tjg57jgqvjg68s44Kr44K644K/44OADQor44K/44Og44OpLOODiOOCt+OCqg0KK+ODj+OCv+OCseODpOODnizjgr/jgqvjgrMNCivjgr/jg4rjgqss44OS44Kr44OrDQor44Kr44OK44K244OvLOODkuODh+OCouOCrQ0KK+OCv+OCq+ODj+OCtyzjgqjjg6rjgrMNCivjg5Xjgrjjg6Djg6ks44Of44OK44KzDQor44OK44Ks44K344OeLOODqOOCt+ODpuOCrQ0KK+OCreODjuOCt+OCvyzjg4jjgq3jgrMNCivjgrPjg7Pjg4ks44Oe44OfDQor44Ki44Oz44OZLOODnuODiuODnw0KK+OCteOCpOODiOOCpizjgqTjgrrjg58NCivjgqLjgrXjg4As44Of44KtDQor44Kt44OO44K344K/LOODleODn+OCqA0KK+OCq+ODieODpCzjgqLjgq3jgrMNCivjgqbjgqjjg4As44OI44Kq44OrDQor44K144Kk44OI44KmLOODouODiw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg5Ljg60NCivjgqTjgrfjgrbjgq0s44K344Oi44OzDQor44Kq44K244OvLOODhuODq+ODkuOCtQ0KK+ODj+ODpOOCtyzjgqrjgrXjg6ANCivjg6Tjgqzjg68s44Of44OB44KqDQor44K/44Kr44OP44K3LOOCv+ODn+OCqg0KK+ODiOODn+ODpOODnizjg6jjgrfjgqLjgq0NCivjgqLjg4Djg4Es44Om44Km44K+44KmDQor44Ki44Kr44Kk44OvLOOCt+ODp+OCpuOCueOCsQ0KK+OCq+OCrOODpCzjg6bjgq3jg47jg5YNCivjgqLjg6njgqQs44K144Kq44OqDQor44Kq44K344Kt44OqLOOCv+OCq+OCtw0KK+ODpOODnuODoOODqSzjgqjjgqTjgrgNCivjgr/jgqvjg6Tjg54s44OI44K344Om44KtDQor44Oo44Kz44Ok44OeLOOCquOCteODoA0KK+ODkOODsyzjg4TjgrDjgqoNCivjgqTjgrrjg58s44Oo44K344OO44OqDQor44Of44K644OOLOOCv+ODgOOCqg0KK+ODluODs+ODpCzjg5/jg47jg6sNCivjg4bjg6njgqrjgqss44K344On44Km44K4DQor44Of44Ok44K344K/LOODn+ODjuODqw0KK+OCouOCteODnizjgrHjgqTjgrMNCivjgrXjgrXjgq0s44OG44OE44KqDQor44OL44K344KqLOODqOODquODiA0KK+ODleODq+ODpCzjg4bjg4TjgqoNCivjgqTjg57jg4As44OS44OH44Om44KtDQor44Kk44K344OP44OpLOOCpOOCr+OCqA0KK+ODj+OCt+ODouODiCzjg5/jgq3jgqoNCivjg57jg6vjg6Tjg54s44OI44Oi44Om44KtDQor44Kr44K4LOOCq+OCuuOCv+OCqw0KK+OCq+ODjeOCsyzjg4/jg4rjgrMNCivjg4rjgqvjg4As44OO44Oq44OS44OIDQor44OB44K244OvLOODiuODmw0KK+OCteODryzjgqLjgrXjgrMNCivjg4jjgqzjg6Es44Of44Ov44KzDQor44Oo44K344OALOOCsuODsw0KK+OCquOCquODjizjg5Ljg63jgrMNCivjg6TjgrMs44Oe44K144OS44KzDQor44Kk44K344Kr44OvLOOCouOCreODjuODqg0KK+OCs+ODiOODgCzjg5Ljg63jgrMNCivjgrXjgqzjg68s44Kr44K644OeDQor44OO44Kw44OBLOOCq+OCuuODnuOCtQ0KK+ODh+ODs+ODnCzjg5Ljg63jg5Xjg58NCivjg4/jg6vjgq0s44Ki44Kt44OS44KzDQor44Kk44ONLOOCt+ODp+OCpuOCqOOCpA0KK+OCquOCquODjizjgq/jg4vjgqoNCivjgqvjg43jg4As44K/44OE44OS44KzDQor44OO44Kw44OBLOOCouOCreODqQ0KK+OCquOCquODkCzjg5Ljg63jg5/jg4QNCivjgqrjgr8s44OI44Kv44Kk44OB44Ot44KmDQor44K344Oi44Oe44KtLOODpOOCueOCqg0KK+ODr+OCv+ODkuOCrSzjg6bjgqbjgrMNCivjg6Tjg57jg6Ljg4gs44Oe44OqDQor44OV44K444Og44OpLOODnuODquOCsw0KK+OCveOCpuODn+ODpCzjgrHjg7PjgrgNCivjgrfjg54s44Kv44OfDQor44K144K144KtLOOCv+OCq+ODpuOCrQ0KK+OCq+OCrOODryzjg6zjgqTjgrMNCivjgr/jgrHjgqbjg4Es44Kv44Of44KzDQor44K144Kk44KtLOODn+ODqOOCsw0KK+OCpOODiOOCpizjg47jg6rjgrMNCivjgq3jg6Djg6ks44Oo44Km44K4DQor44K/44OQ44K/LOOCv+OCq+ODkuODrQ0KK+OCr+ODoSzjg4jjg6jjgqLjgq0NCivjgr/jgqvjg4As44Oe44Oq44KzDQor44K/44Og44OpLOODn+OCqA0KK+OCv+OCq+ODnuODhCzjg57jgq3jgrMNCivjgrfjg63jgrfjgr8s44K344Ol44Km44K144KvDQor44Kr44OI44KmLOODiOODouODpuOCrQ0KK+OCouODr+OCpCzjg4jjgrfjg47jg6oNCivjg5vjgrXjgqss44OO44Oq44KzDQor44K/44OK44KrLOODq+ODnw0KK+ODn+ODkuODqSzjgrfjg6XjgqbjgrXjgq8NCivjgrXjg4jjgqYs44Kx44Kk44KzDQor44Kq44K244OvLOODpuOCreOCqg0KK+OCueOCuuOCrSzjgrHjg7PjgrgNCivjg5/jg6Tjgrbjgq0s44Oq44Ol44Km44K+44KmDQor44Oi44Oq44K/44OLLOODpuOCq+ODqg0KK+OCpOODr+OCsOODrSzjg4Tjg4jjg6ANCivjgqbjgqjjg54s44K344On44Km44KzDQor44OV44Kr44K/LOODgeOCqw0KK+ODkuODreOCuyzjgqLjgq3jgrMNCivjgqrjgqvjg4As44OS44Ot44OfDQor44Kr44OI44KmLOOCouODquOCqw0KK+ODnuOCrSzjgrXjg6bjg6oNCivjg47jg4As44OI44Oi44Kr44K6DQor44Kv44OcLOOCreODp+OCpuOCsw0KK+ODi+OCt+OCreOCquODqizjg4Tjgq7jgqoNCivjg6Tjg44s44K444Ol44Oz44KzDQor44Kr44Ov44Og44Kz44KmLOODiuOCquOCrQ0KK+ODpOOCueODoOODqSzjg5/jg6jjgrMNCivjg4jjg4vjgrcs44OI44Oi44KzDQor44Ok44Oe44Oi44OILOODkuOCq+ODqw0KK+OCt+ODouODgCzjg4DjgqTjgrnjgrENCivjgqrjgqrjgr/jg4ss44Kv44OL44KqDQor44Kq44OO44K144OILOODj+ODsw0KK+OCq+ODiuOCtuODryzjg5Ljg63jgqLjgq0NCivjgqrjgqvjg6Ljg4gs44Of44Ov44KzDQor44K144Kk44OI44KmLOODn+ODiuOCsw0KK+OCq+OCt+ODr+ODkOODqSzjg47jg5bjgrMNCivjgr/jgqvjg4/jgrcs44Oe44K144OO44OWDQor44K144Kk44OI44KmLOODnuODiuODlg0KK+ODnuODhOODgCzjg6jjgrfjgqLjgq0NCivjgr/jg4Hjgrbjgq0s44Ov44Kr44KzDQor44Kz44Oz44OJLOODiOODouOCsw0KK+OCt+ODn+OCuizjg4DjgqTjgrnjgrENCivjg4rjgqzjgqrjgqss44Kr44Kq44OqDQor44OK44Kr44Ks44OvLOOCouODhOOCtw0KK+OCv+OCq+ODiCzjg5Ljg63jg6bjgq0NCivjgq3jg6Djg6ks44K/44Kr44K3DQor44OK44Or44K7LOOCreODqOODnw0KK+OCquOCsOODnizjgqvjgqgNCivjgr/jgqvjg4/jgrcs44Of44OK44KoDQor44Kt44Kv44OBLOOCu+OCpOOCsw0KK+OCteODiOOCpizjg4/jgrjjg6ENCivjgqjjg7Pjg4ks44Oe44Oq44KzDQor44K/44Og44OpLOODiOODouODjuODqg0KK+ODpOODnuODouODiCzjgrPjgqbjgrgNCivjgqLjgrXjgqQs44Oo44K344OS44OtDQor44Oi44OqLOOCquOCteODoA0KK+OCv+OCq+OCt+ODrSzjg6HjgrDjg58NCivjgqrjgqss44K144Kk44KrDQor44Kr44OI44KmLOODiOOCt+ODpA0KK+OCpOOCsOODgSzjgrXjg4HjgrMNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44Oo44K344OALOOCs+OCpuOCuA0KK+OCouOCreODouODiCzjg57jg4njgqsNCivjg4vjgrfjgqQs44K444Ol44Oz44K4DQor44Ov44K344Kq44KrLOOCs+OCpuOCuA0KK+OCpOODjOODnuODqyzjg5Ljg63jgrgNCivjg5vjgrcs44K344K644KrDQor44Oo44ON44Ok44OeLOODnuOCteODjuODlg0KK+OCr+ODreODmSzjg6bjgqbjgqTjg4ENCivjgqTjgrfjgqQs44OS44K144KoDQor44OS44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+ODiuOCq+ODgCzjgr/jgqvjg4/jg6sNCivjgqrjg47jg4fjg6ks44OK44Kq44KzDQor44OI44OALOODiOOCt+ODpuOCrQ0KK+ODnuOCqOODgCzjg5Ljg63jgrMNCivjg4rjgqzjgqQs44Om44Kt44KzDQor44Kz44OM44K/LOODkuOCteODqOOCtw0KK+OCt+ODkOOCteOCrSzjgqvjg4Tjg4jjgrcNCivjgqbjgqvjgqQs44Ki44Kt44KrDQor44K544K644KtLOODgeODj+ODqw0KK+ODkuODqeOCrSzjg47jg5bjgrMNCivjg4rjgqvjg6Djg6ks44Om44Km44KzDQor44Ok44Oe44OALOODnuOCteODnw0KK+OCq+ODieOCr+ODqSzjg57jgrXjgrcNCivjgr/jgqvjgrXjgq0s44Kz44Km44K4DQor44OK44Kr44K/LOOCreODqOODnw0KK+OCv+ODi+OCq+ODryzjg5vjgrrjgqgNCivjg4vjgrfjg6Djg6ks44Oe44K144OkDQor44Of44OK44OfLOOCouODpOODnw0KK+OCquOCquODjOOCrSzjg5/jg47jg6sNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K/44Kr44OP44K3LOOCv+OCq+OCqg0KK+ODkuODgCzjgqrjgrXjg6ANCivjgrXjgq/jg54s44K344OeDQor44OL44Ko44OALOOCv+OCq+OCtw0KK+ODqOOCs+OCpCzjg6zjg58NCivjg6jjg43jgq/jg6ks44K/44Kx44KqDQor44OQ44Oz44OQLOODquOCqA0KK+ODpOODnuODgCzjgqLjgq3jg5Ljg4cNCivjgqTjg57jg6Djg6ks44Or44Oq44KzDQor44Kk44Kx44OALOODgeOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg5/jg4rjgrMNCivjgrnjg4njgqYs44Oq44KoDQor44OK44Kr44K944ONLOOCq+OCquODqg0KK+OCquOCquOCteODryzjg4HjgqvjgrMNCivjgrXjg4jjgqYs44K344OB44Ot44KmDQor44Ko44Kk44OJ44OhLOODpuOCrQ0KK+OCpOOCrOODqeOCtyzjg5/jgqsNCivjgr/jg6Qs44K/44Kr44KzDQor44Kq44Kq44OS44OpLOODqOOCt+OCsw0KK+OCteOCq+ODouODiCzjgrXjg4jjgrcNCivjgrnjgq7jg6Ljg4gs44Kz44Km44K4DQor44Kr44OI44KmLOODn+ODiuOCsw0KK+ODqOOCt+OCpCzjgr/jg4Djg5Ljg60NCivjgqTjg6/jg6Qs44Oo44Km44KzDQor44Kt44OO44K344K/LOOCreODp+OCpuOCsw0KK+OCueOCruOCteODryzjgqvjgrrjg6gNCivjg6/jg4As44Of44Oo44KzDQor44Of44Ok44K344K/LOOCqOODn+OCsw0KK+OCpuOCqOODjizjg47jg5bjgrMNCivjgqrjgqrjgr/jgq0s44Om44Of44KzDQor44Kk44K344OQ44K3LOOCreODp+OCpuOCsw0KK+OCpOODr+OCt+OCvyzjg57jgrXjgqoNCivjgqTjgrfjgqvjg68s44OS44OH44OS44KzDQor44Kt44K3LOOCv+ODhuOCqg0KK+ODnuODq+ODpOODnizjg5LjgrXjgqoNCivjg5vjg7Pjg54s44K/44Kr44KqDQor44Kv44K544Oi44OILOOCpOOCteOCqg0KK+OCpOODnuODjizjgq3jg5/jg5Ljg4cNCivjgqrjgqrjg4vjgrcs44K744Kk44K+44KmDQor44Ok44Oe44OALOOCt+ODp+OCpg0KK+ODleOCuOOCquOCqyzjg4jjg6njgqoNCivjg4/jg4rjg4As44Ok44K544Kr44K6DQor44K344OQ44K/LOOCouOCteOCqg0KK+ODn+ODpOOCt+OCvyzjg6bjgq3jgqoNCivjgqvjgrXjg4/jg6ks44Oe44K144KqDQor44Kq44Kq44Ok44KxLOODj+ODq+OCqg0KK+OCpOODnuOCpCzjgq/jg4vjgqoNCivjgrPjgrvjgq0s44Oe44Oq44KzDQor44Kq44Kq44K/LOODjuODnOODqw0KK+ODnuODgeOCpCzjgqvjgrrjg5Ljg60NCivjgq3jgq/jg4Es44K744OE44KqDQor44OS44Kw44OBLOOCq+OCuuOCqA0KK+ODn+ODiuODqOOCtyzjgrjjg6Xjg7PjgrgNCivjgrnjgrrjgq0s44OS44Ot44Kr44K6DQor44OK44Oz44OQLOODiuOCquOCrQ0KK+OCquOCquODi+OCtyzjg4DjgqTjgrXjgq8NCivjg4/jg6Tjgrfjg4As44K/44Kr44OI44K3DQor44K/44OK44KrLOODkuODh+ODkuODrQ0KK+OCq+ODjeOCsyzjgqvjgrrjg47jg6oNCivjg4Tjg4Hjg6Qs44OI44Oi44Om44KtDQor44Kk44Kk44OALOOCqOODhOOCqg0KK+ODleODq+ODpCzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44Of44OE44KwDQor44OP44Or44OP44OpLOOCv+OCq+OCtw0KK+ODm+ODquOCqCzjg6jjg6rjgrfjgrINCivjgqrjgqrjgr8s44K/44Kx44K3DQor44K544K644KtLOODpOOCueODhOOCsA0KK+OCquODiCzjg57jgrXjg4jjgrcNCivjg4rjgqvjgqzjg68s44Oe44Om44OfDQor44Kr44Ov44K344OeLOODqOOCpuODmOOCpA0KK+ODhuODqeODouODiCzjg6bjgqbjgrjjg63jgqYNCivjgq3jg6Djg6ks44Ki44Kt44OpDQor44Oo44OJ44OK44OvLOODpuOCq+ODqg0KK+OCs+ODgOOCpOODqSzjg5Ljg4fjgqLjgq0NCivjgqvjgq/jg6njgqQs44Oo44Km44KzDQor44Kq44Kw44OqLOODkuODreODqOOCtw0KK+ODj+OCvyzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg6os44Kr44K644KqDQor44Oo44K344Kq44KrLOOCu+OCpOOCuA0KK+OCt+OCsuOCvyzjg5/jg4HjgqLjgq0NCivjgqvjg6/jgrDjg4Es44OI44Oi44OS44OtDQor44Kr44ON44KzLOODnuOCteOCqg0KK+OCouOCteODkizjgr/jg4DjgqLjgq0NCivjg6/jgr/jg4rjg5ks44Kz44Km44K4DQor44Ki44Oq44Ok44OeLOODhOOCsOOCqg0KK+ODhOOCuOOCvyzjgr/jg4TjgqoNCivjg6jjgrfjg4/jgrcs44OS44OH44KqDQor44Of44K344OeLOOCu+OCpOOCtw0KK+OCteODiOOCpizjgqvjg4TjgrgNCivjgqvjg43jg57jg6ss44Ko44OE44OS44OtDQor44Kr44ON44KzLOODpOOCueOCtw0KK+OCqOOCuOODnizjg5Ljg63jgqLjgq0NCivjg5/jg4Tjgq/jg4Es44K444Ol44OzDQor44Oi44OqLOOCreODn+OCqg0KK+OCquODgSzjgrvjgqTjgqTjg4ENCivjg57jgqjjgqvjg68s44Kr44K644KqDQor44K/44OK44KrLOODnuOCteODjuODqg0KK+OCquODquOCrOOCtSzjg57jg4Tjg47jg6oNCivjgrPjgrvjgq0s44Kr44Kq44OrDQor44OS44Op44Ok44OeLOOCv+ODgOOCtw0KK+OCs+ODnOODqizjgqjjg4Tjg6jjgrcNCivjg4rjgqvjgqbjgqgs44K/44OE44KqDQor44K544OI44KmLOODnuOCteOCqg0KK+OCtOODiOOCpizjgq3jg6jjg5LjgrMNCivjg4Tjgqvjg6Ljg4gs44OS44Ot44Of44OBDQor44Ko44OT44OP44OpLOODqOOCt+OCouOCrQ0KK+ODouODquODjizjg5Ljg4fjg47jg6oNCivjgrnjgrrjgq0s44Oe44K144Ki44KtDQor44Oo44K344OALOODnuOCs+ODiA0KK+OCpOODnuOCpCzjg57jgrXjgq0NCivjg5Ljg44s44Og44ON44K/44KrDQor44Oo44K344OALOODn+ODig0KK+OCquODi+OCuuOCqyzjgrnjg5/jgr/jg4ANCivjgr/jgqvjgq4s44Oe44K144OS44KzDQor44Kq44Og44OpLOOCq+ODhOODkuODiA0KK+OCpuODgeODpOODnizjgqjjg4TjgrMNCivjgq/jg63jgqvjg68s44Oo44K344OO44OWDQor44Ok44Oe44K344K/LOOCv+OCreOCqg0KK+ODi+OCt+ODgCzjg5LjgrXjgqgNCivjgqvjgrfjg6/jgq4s44OS44Ot44K3DQor44Kr44ON44KzLOODpuOCreOCsw0KK+OCr+ODnuODgCzjg5/jgq3jgqoNCivjgrPjgrjjg54s44OK44Kq44K644OfDQor44K344Op44KkLOODhuODhOODkuOCsw0KK+ODleODq+OCq+ODryzjg6rjgqgNCivjg6DjgrfjgqYs44K/44OA44Ki44KtDQor44Oo44K344OOLOODiOOCt+OCqg0KK+OCueOCruOCpuODqSzjgrvjgqTjgqTjg4ENCivjg5XjgrjjgrXjg68s44Oe44OqDQor44K144OI44KmLOOCouOCreODkuODrQ0KK+OCqOOCtuOCrSzjgr/jgqvjg6bjgq0NCivjg6Djg6njgqvjg58s44K/44Kr44KqDQor44OL44Ov44Ok44OeLOODnuODhOODouODqg0KK+ODpOOCueODjizjg5/jgqsNCivjg4njgqbjg4As44OI44Oi44OS44KzDQor44Kr44K444KkLOODouODiuODnw0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjg57jg4Tjg4rjg6os44Kk44K144KqDQor44Kq44Kq44OQ44Ok44K3LOOCs+OCpuOCreODgQ0KK+OCv+OCq+ODj+OCtyzjgr/jgq/jg6QNCivjg57jg4Tjg6Djg6ks44Ok44K544Oe44K1DQor44Kz44Oi44OqLOODnuOCreOCsw0KK+ODjuOCvuOCqCzjgqvjgrrjgqgNCivjgqrjg44s44Kt44Oo44OfDQor44Kr44Oz44OOLOOCs+OCuuOCqA0KK+OCteODiOOCpizjgrHjgqTjgrMNCivjg47jg4rjgqss44Ov44Kr44KzDQor44Kr44Ov44OP44OpLOODpuODnw0KK+ODiuOCq+ODoOODqSzjg57jg6bjg58NCivjg6Tjg57jgrfjgr8s44OI44K344Kr44K6DQor44Kz44Km44Kk44OBLOODouODouOCqA0KK+OCpOOCv+ODpCzjg5Ljg4fjgqoNCivjg6Tjg54s44OV44Of44KzDQor44Ok44Oe44Oi44OILOOCveOCpuOCpOODgeODreOCpg0KK+OCr+ODqeOCvyzjg6TjgrnjgrMNCivjgqvjg6/jgros44Kk44K/44OrDQor44Of44Kr44OfLOOCs+OCpuOCpOODgQ0KK+OCv+OCreOCrOODryzjg6jjgrfjgqvjgroNCivjgr/jg4rjgqss44OS44Ot44Ki44KtDQor44Of44Ok44K/LOOCv+OCq+ODhuODqwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0tvcmVhbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFjYTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0CkBAIC0wLDAgKzEsNDk3OTUgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor6rCA7J6s67KUDQor6rCA7Zqo66a8DQor6rCA6ri46riwDQor6rCA7JuQ7ZWZDQor6rCA7J6s7JmEDQor6rCA64+Z7IiYDQor6rCA7KSR7KKFDQor6rCA67OR67SJDQor6rCI67O06riIDQor6rCI7IOB7KKFDQor6rCI7Jq06raMDQor6rCI7IiY7Je0DQor6rCI7KKF7JqpDQor6rCI67OR7JuQDQor6rCI6riw7IStDQor6rCI64us642VDQor6rCQ64+Z7ZuIDQor6rCQ6rCR7Jq0DQor6rCQ6rCV7ZWYDQor6rCQ6rWt7Z2sDQor6rCQ7KCV7ZmUDQor6rCQ7ISx7LKgDQor6rCQ66+87LKgDQor6rCQ7ISx7JuQDQor6rCV6rK96rWsDQor6rCV7JiB7IOdDQor6rCV7LaY7IudDQor6rCV7Jqp642VDQor6rCV6rK966GADQor6rCV67OR6recDQor6rCV7ZWc7IiYDQor6rCV7KCV7J20DQor6rCV6rK966GdDQor6rCV7KKF7IiYDQor6rCV6rec67SJDQor6rCV66eM7ISxDQor6rCV6rK97IiZDQor6rCV7ISd7ZWYDQor6rCV7KCV7ZmUDQor6rCV7KCQ7KGwDQor6rCV6rK97J24DQor6rCV7Iq57ZiEDQor6rCV67OR7ZeMDQor6rCV7J2A7ZmYDQor6rCV6rK97J6QDQor6rCV66qF7YOcDQor6rCV7ISx7KGwDQor6rCV66+47KGwDQor6rCV6rK97J6QDQor6rCV7KKF7Z2sDQor6rCV7Jqp7ISdDQor6rCV6riw7ZWYDQor6rCV6rOh7KeADQor6rCV64yA7IicDQor6rCV64yA7IicDQor6rCV6rK96re8DQor6rCV6rSR7IudDQor6rCV7ZqM7KGwDQor6rCV7ISd7IiYDQor6rCV7KKF7LaYDQor6rCV6rWs7Iq5DQor6rCV7J6s7LKgDQor6rCV7Lap6rWsDQor6rCV6rSR7Je0DQor6rCV6rWs7ZmYDQor6rCV66eM7JiBDQor6rCV7KKF7ZmYDQor6rCV6ri467KUDQor6rCV6reA7KCQDQor6rCV7J6l7JqwDQor6rCV6riw7JqpDQor6rCV7KCV7Zy0DQor6rCV6reA7ZmYDQor6rCV7KCQ7IicDQor6rCVIOuwqQ0KK+qwleqyve2YuA0KK+qwleq3vOyImA0KK+qwleqyveyImA0KK+qwleyaqe2biA0KK+qwleuzkeyInA0KK+qwleq3vO2ZmA0KK+qwle2VtOyEoA0KK+qwle2ZjeyEnQ0KK+qwley2mOq3nA0KK+qwleq4iOuwsA0KK+qwleuqheyXsA0KK+qwleyEuO2DnA0KK+qwleynhOyImQ0KK+qwleq4iOuwsA0KK+qwleyiheyXsA0KK+qwleygleyKuQ0KK+qwleyblOu2hA0KK+qwleq4iOyekA0KK+qwleyyoOyImA0KK+qwleqyve2VmQ0KK+qwleyEne2DnA0KK+qwleq4sOyInA0KK+qwle2YhOyEoA0KK+qwleyDge2VmA0KK+qwleyerOynhA0KK+qwleq4sOyZhA0KK+qwleygleykgA0KK+qwleuzuO2ZmA0KK+qwle2VmO2VhA0KK+qwleq4sOybkA0KK+qwleyCrO2drA0KK+qwleyaqeusuA0KK+qwleybkOynhA0KK+qwleq4sOyehA0KK+qwleyDgeyhsA0KK+qwleuPme2DnA0KK+qwleyerO2XjA0KK+qwleq4sO2YlQ0KK+qwleyInOu0iQ0KK+qwleq0keyYpQ0KK+qwleyduO2drA0KK+qwleq4sO2YlQ0KK+qwleuzkeyaqQ0KK+qwle2DnO2DnA0KK+qwleu0ieybkA0KK+qwleq4uOybkA0KK+qwle2Vme2YhA0KK+qwleyerOyLnQ0KK+qwleqwkeyCvA0KK+qwleuCqOykkQ0KK+qwleygleyehA0KK+qwleyYgeybkA0KK+qwle2DnO2YuA0KK+qwleuCqOykkQ0KK+qwleyaqeynhA0KK+qwleuNleuLrA0KK+qwle2YhO2doA0KK+qwleuFuO2YlQ0KK+qwleygkOyhsA0KK+qwle2ajOu2hA0KK+qwleyYgeyLnQ0KK+qwleuLrOyImA0KK+qwley2mOyYgQ0KK+qwleyWteyyoA0KK+qwleyiheynhA0KK+qwleuMgOyEnQ0KK+qwleq1kO2VmQ0KK+qwleyDgeyjvA0KK+qwleydtOyyoA0KK+qwleuMgOyYgQ0KK+qwleywqOyInA0KK+qwleyYgeq1rQ0KK+qwleyImO2drA0KK+qwleuMgOyaqQ0KK+qwleyIme2WpQ0KK+qwleyDge2drA0KK+qwleycpOyyoA0KK+qwleuMgOyaqQ0KK+qwle2DnO2DnQ0KK+qwleq3nOyIoA0KK+qwle2Zje2VmQ0KK+qwleuMgOydtQ0KK+qwleunjOq4uA0KK+qwleydvOuemA0KK+qwleyDgeyEnQ0KK+qwleuMgOynhA0KK+qwleuCqO2YuA0KK+qwleyDge2YuA0KK+qwleustOydmA0KK+qwleuMgO2YhA0KK+qwleyYgeuegA0KK+qwleyEoOq4iA0KK+qwleywveyXtA0KK+qwleuMgO2YlQ0KK+qwleyerOyImA0KK+qwleyInOq3vA0KK+qwleyerO2ZmA0KK+qwleuMgO2drA0KK+qwle2VtOyDnQ0KK+qwleyImO2YhA0KK+qwleq3nOyImQ0KK+qwleuNleyImA0KK+qwleqyveybkA0KK+qwle2WpeyEnQ0KK+qwleustOuNlQ0KK+qwleuNleyaqQ0KK+qwleyZhO2DnA0KK+qwleyYpeybkA0KK+qwleykkeyehA0KK+qwleuNleycpA0KK+qwle2DnOyatA0KK+qwleyepeuhgA0KK+qwleyYge2VmQ0KK+qwleuPmeykkQ0KK+qwleyaqeyXtA0KK+qwleyImOyatA0KK+qwlSDquIgNCivqsJXrj5nssqANCivqsJXri6zrjZUNCivqsJXqt4Dtg5wNCivqsJXrqoXtlZkNCivqsJXrj5nssqANCivqsJXqtJHslZQNCivqsJXsg4HrqqgNCivqsJXsmKXrp4wNCivqsJXrj5ntmIQNCivqsJXtg5zshK0NCivqsJXsnqzsiKANCivqsJXsi6DsobANCivqsJXrkZDsp4QNCivqsJXsg4Hqta0NCivqsJXsnKHsl7QNCivqsJXsmIHsooUNCivqsJXroZ3spJENCivqsJXshLHrs7UNCivqsJXrr7zshJ0NCivqsJXshKDsnpANCivqsJXrp4zsiJgNCivqsJXqtIDtmIQNCivqsJXsnqztmY0NCivqsJXrs5HshKANCivqsJXrp4ztnaUNCivqsJXsoJDquLANCivqsJXqt4DsgrANCivqsJXsspzsnKQNCivqsJXrp5DrtoQNCivqsJXsnqzqtawNCivqsJXsiJzsobANCivqsJXsoJXsuaANCivqsJXrp5DsnoQNCivqsJXsnqzsiJgNCivqsJXsmIHsmqkNCivqsJXrs5HssKwNCivqsJXrqoXqtIANCivqsJXrqoXsobANCivqsJXsnqzsnbQNCivqsJXshJ3tmLgNCivqsJXrqoXslZQNCivqsJXsiJjqs6QNCivqsJXqtozqt5wNCivqsJXshLHqtawNCivqsJXrrLTspJENCivqsJXtg53ssqANCivqsJXsooXtmZgNCivqsJXrjIDshJ0NCivqsJXrrLjrj4wNCivqsJXssqDtmLgNCivqsJXsg4Hsp4QNCivqsJXtmZjrnoANCivqsJXrrLjsiKANCivqsJXsmqntmLgNCivqsJXtmJXtmIQNCivqsJXtmITshK0NCivqsJXrr7jsiJkNCivqsJXsirntmZQNCivqsJXtg5zsi50NCivqsJXshLHsnpANCivqsJXrs5Hqt5wNCivqsJXshLHrs7UNCivqsJXsnbzsooUNCivqsJXrj5ntnawNCivqsJXrs5HshJ0NCivqsJXssL3rr7gNCivqsJXtlYTquLANCivqsJXqs4TtmIQNCivqsJXrs5Hsl7QNCivqsJXrs7XquLgNCivqsJXqtJHsiJgNCivqsJXsmIHshJ0NCivqsJXrs5HtmZgNCivqsJXsl7Dro6ENCivqsJXssqDsiKANCivqsJXsp4TsnbQNCivqsJXrs7XstpgNCivqsJXrj5nssqANCivqsJXsoJXsobANCivqsJXsg4HrsLENCivqsJXrtInsmrANCivqsJXsm5DsiJgNCivqsJXrqoXtmLgNCivqsJXqtoztmIQNCivqsJXrtoTrj4QNCivqsJXrj4TshJ0NCivqsJXtlbTtg5wNCivqsJXsnITshK0NCivqsJXsgqztmIQNCivqsJXtm4TsiJgNCivqsJXsnKTsg4ENCivqsJXtnazqta0NCivqsJXsgrzroZ0NCivqsJXrqoXshJ0NCivqsJXtmZTsnoQNCivqsJXssqDtmZQNCivqsJXsgrzrrLgNCivqsJXqsJXsiJgNCivqsJXrs7XtmLgNCivqsJXshKDshK0NCivqsJXsgrzrrLgNCivqsJXtlZztmIQNCivqsJXsmqnqsJENCivqsJXtg5zrj5kNCivqsJXsgrzsobANCivqsJXtg5zsoJUNCivqsJXssL3snbwNCivqsJXtlbTsm5ANCivqsJXsg4HrsLENCivqsJXrs7XsmqkNCivqsJXquLDsl7QNCivqsJXssL3qt5wNCivqsJXsg4Hrs7UNCivqsJXqsr3soJwNCivqsJXsiJzsm5ANCivqsJXsiJzsl7QNCivqsJXsg4HrtIkNCivqsJXsmIHsnZgNCivqsJXsooXsnKQNCivqsJXtmqjsm5ANCivqsJXsg4HsnKQNCivqsJXsiJjsmIENCivqsJXri6zssqANCivqsJXsmIHsiJkNCivqsJXsg4HtnawNCivqsJXrs5HrsLANCivqsJXsiJzqt5wNCivqsJXqt4Dsg4ENCivqsJXshJ3rjIANCivqsJXsnbjsmrQNCivqsJXsm5DsiJgNCivqsJXsoJXsi50NCivqsJXshJ3so7wNCivqsJXsmqnrs7UNCivqsJXtnazquLgNCivqsJXsooXrgqgNCivqsJXshJ3so7wNCivqsJXtg5zrtIkNCivqsJXshLHtlZwNCivqsJXsg4HshLENCivqsJXshKDrj5kNCivqsJXrqoXrqoUNCivqsJXquLDqsJENCivqsJXtnazsiJgNCivqsJXshKDsobANCivqsJXstpjstpwNCivqsJXsnbjshJ0NCivqsJXsoJXsmKUNCivqsJXshLHrnb0NCivqsJXtmITroZ0NCivqsJXtlZnsp4ENCivqsJXsm5TshK0NCivqsJXshLHrsLANCivqsJXsm5Tsp4QNCivqsJXsg4HtmZgNCivqsJXsp4TtmZgNCivqsJXshLHsnbwNCivqsJXsoJXsnpANCivqsJXri6zso7wNCivqsJXsnqzqtZANCivqsJXshLHtlbQNCivqsJXquLDsiJkNCivqsJXsmqnrqoUNCivqsJXrqoXtl4wNCivqsJXshLjqt5wNCivqsJXquLDquLANCivqsJXsoJXquLANCivqsJXrkZDsnpANCivqsJXshozspIANCivqsJXsnqztmLgNCivqsJXsoJXquLANCivqsJXqtJHquLANCivqsJXsiJjquLANCivqsJXqs4TtmIQNCivqsJXsp4TtmJUNCivqsJXsnbjtmLgNCivqsJXsiJjsp4QNCivqsJXsiJztmZQNCivqsJXsooXsi50NCivqsJXsiKDrr7wNCivqsJXsiJjtmJUNCivqsJXsnqzrsLANCivqsJXsmKXsnYANCivqsJXshLHquLANCivqsJXsiJntnawNCivqsJXrgpnsmrANCivqsJXtlYTrtoQNCivqsJXsooXsi50NCivqsJXsiJzqsr0NCivqsJXsmIHsm5ANCivqsJXrs7Xsl7QNCivqsJXquIjslYUNCivqsJXsiJzsmKUNCivqsJXstpjtmZgNCivqsJXrjIDqsr0NCivqsJXsg4HrgpwNCivqsJXsiJzsnbQNCivqsJXsooXsnbwNCivqsJXqsr3soJUNCivqsJXrs5Htl4wNCivqsJXsi6Dqt6ANCivqsJXtl4zsiJgNCivqsJXrp5DsobANCivqsJXsnYDsiJkNCivqsJXsi6DsmIENCivqsJXtmLjrp4wNCivqsJXsmIHtg5wNCivqsJXsmqnroZ0NCivqsJXsi6DsmIENCivqsJXtmLjsmqkNCivqsJXsiJjsi50NCivqsJXstpjsiJgNCivqsJXsi6DsnoQNCivqsJXsnZjssKwNCivqsJXtjJDshKANCivqsJXsirnrrLgNCivqsJXsi6DssKwNCivqsJXrs5Hsm4UNCivqsJXrs7XrnpgNCivqsJXrp4zsl7QNCivqsJXsi6Dtg50NCivqsJXrqoXqtawNCivqsJXtmITqsJENCivqsJXsnbjshJ0NCivqsJXsjI3rk50NCivqsJXsspzsmqkNCivqsJXsnqzqta0NCivqsJXquLDsobANCivqsJXslrjsiKANCivqsJXsnZjsiJgNCivqsJXqsr3tmLgNCivqsJXqt7zsm5ANCivqsJXsl7DqtawNCivqsJXtnazshJ0NCivqsJXsmIHspIANCivqsJXrs5Hsp4QNCivqsJXsl7DsnbQNCivqsJXssL3sl7ANCivqsJXsg4HtnawNCivqsJXsg4Hsl7QNCivqsJXsmIHqt5wNCivqsJXsnqzrtIkNCivqsJXtmLjqtIANCivqsJXsl7Dsp4QNCivqsJXsmIHsiJgNCivqsJXtjJDtmLgNCivqsJXsmIHtmIQNCivqsJXquIjtnLQNCivqsJXsmIHsiJgNCivqsJXqsr3siJgNCivqsJXsnqzsi50NCivqsJXsspzsnbQNCivqsJXsmIHsiJgNCivqsJXqtJHtg5wNCivqsJXrqbTsoJwNCivqsJXsnKTshJ0NCivqsJXsmIHsiJgNCivqsJXtmZjroYANCivqsJXqs4TqtJENCivqsJXrp5Dqt5wNCivqsJXsmIHsiJgNCivqsJXrs5Hrj4QNCivqsJXsmqnqsqwNCivqsJXsgrzsi50NCivqsJXsmIHsm5ANCivqsJXtlbTtmZgNCivqsJXshKDsiJgNCivqsJXrp5Dsp4QNCivqsJXsmKXqtawNCivqsJXtlZnsm5ANCivqsJXrp4zshKANCivqsJXsuaDsi50NCivqsJXsmKXqtawNCivqsJXrs5HtnawNCivqsJXsiJjqtJENCivqsJXtmansnbQNCivqsJXsmKXquIgNCivqsJXtg5zsooUNCivqsJXsoJXquLANCivqsJXsg4HsgrwNCivqsJXsmbjsiJwNCivqsJXsnbjssKwNCivqsJXrs5Htg50NCivqsJXsl7Dsi50NCivqsJXsmqnrjZUNCivqsJXrs5HrtIkNCivqsJXshJ3snbwNCivqsJXsg4Hsl7ANCivqsJXsmqnsi50NCivqsJXqsr3smqkNCivqsJXsmIHtmZQNCivqsJXsnYTsoJUNCivqsJXsmqntjJANCivqsJXrtoDtnawNCivqsJXshLHsnpANCivqsJXsg4HsiJwNCivqsJXsmqntnawNCivqsJXsnqzsnbQNCivqsJXslaDtg5wNCivqsJXshJ3rr7gNCivqsJXsm5DsoJUNCivqsJXshJ3smrQNCivqsJXsiJjquLANCivqsJXrjIDrsLANCivqsJXsm5Dsp4QNCivqsJXquLDtmLgNCivqsJXrj5nsnpANCivqsJXtmY3sh4QNCivqsJXsm5Dtg5wNCivqsJXri7Tsi50NCivqsJXsooXtg5wNCivqsJXssL3si50NCivqsJXsnKDrs7UNCivqsJXqsr3rjZUNCivqsJXsoJXrqoUNCivqsJXsiJzsiJgNCivqsJXsnKHrrLgNCivqsJXshJ3rjIANCivqsJXsmIHsiJwNCivqsJXsnqztlZwNCivqsJXsnKTrk50NCivqsJXshLHtlZgNCivqsJXsmqnquIgNCivqsJXqt5zsobANCivqsJXsnKTsnpANCivqsJXsmrHslZQNCivqsJXrspTqta0NCivqsJXsnbTsobANCivqsJXsnbjsiJgNCivqsJXsmqnsm5ANCivqsJXsnqzsmqkNCivqsJXsooXsnbgNCivqsJXsnbjsl7QNCivqsJXrs5Hqt5wNCivqsJXsnYDtg5wNCivqsJXrsLDslaANCivqsJXsnbzrtoQNCivqsJXsnbjrhYQNCivqsJXrtoTsnKQNCivqsJXsoJXtnaANCivqsJXsnbztmLgNCivqsJXsnqXsi50NCivqsJXsnqzsiJgNCivqsJXquLDsl7QNCivqsJXsnqXsiJgNCivqsJXqsr3shLENCivqsJXrj5nsl7QNCivqsJXshLHquLANCivqsJXsnqzsmIENCivqsJXsiJjsl7ANCivqsJXtmY3so7wNCivqsJXstpjrs7gNCivqsJXsoITssqANCivqsJXtg5ztmLgNCivqsJXshLHsiJwNCivqsJXsmIHquLgNCivqsJXsoJDrjZUNCivqsJXtl4zsm4UNCivqsJXrr7zssKwNCivqsJXrp4zsmIENCivqsJXsoJDrs7UNCivqsJXqsJHsmqkNCivqsJXtlbTso7wNCivqsJXrs5HtmIQNCivqsJXsoJDsiJkNCivqsJXsg4HsiJgNCivqsJXsnqzstpwNCivqsJXtmY3rjIANCivqsJXsoJXquLgNCivqsJXrkZDsiJgNCivqsJXrrLjqta0NCivqsJXqsr3shJ0NCivqsJXsoJXrqqgNCivqsJXsooXqtIANCivqsJXsg4Hrs7UNCivqsJXtlbTrj4QNCivqsJXsoJXrs7UNCivqsJXrrLjtmLgNCivqsJXshLHtlYQNCivqsJXquLDqta0NCivqsJXsoJXshJ0NCivqsJXquLDssqANCivqsJXsnqzroZ0NCivqsJXsoJDtmIQNCivqsJXsoJXsiJkNCivqsJXqsr3smrANCivqsJXsnqzsnpANCivqsJXsiKDsmrANCivqsJXsoJXsiJkNCivqsJXsiJjtnawNCivqsJXshLHsi50NCivqsJXsoJXsmrQNCivqsJXsoJXsiJkNCivqsJXrs7XshJ0NCivqsJXtjJDsg50NCivqsJXshJ3rsLANCivqsJXsoJXslaANCivqsJXsmrDrp4wNCivqsJXqtazqt5wNCivqsJXsm5Dsl7QNCivqsJXsoJXsl7QNCivqsJXsnqztmLgNCivqsJXsmIHqs6QNCivqsJXsooXsnKANCivqsJXsooXrjZUNCivqsJXsmYTtmIQNCivqsJXsg4HtmLgNCivqsJXqtazsi50NCivqsJXsooXrp4wNCivqsJXrqoXshLgNCivqsJXshLHrspQNCivqsJXsmIHrsLANCivqsJXsooXsl7QNCivqsJXrjIDrp4wNCivqsJXsnqztmLgNCivqsJXshKDtmIQNCivqsJXsooXssKgNCivqsJXrjIDtg5wNCivqsJXtmLjsoJUNCivqsJXtg5zshKANCivqsJXsooXtlYQNCivqsJXtmITrjIANCivqsJXtg5zsnbQNCivqsJXsp4DspIANCivqsJXso7zshJ0NCivqsJXrjIDsobANCivqsJXqtZDqt6ANCivqsJXqsr3tmZQNCivqsJXso7zsm5ANCivqsJXsiJztg5wNCivqsJXqsJXsmYQNCivqsJXsmIHsl7QNCivqsJXso7ztm4gNCivqsJXquLDrjZUNCivqsJXquIjquLANCivqsJXsmIHsiJwNCivqsJXspJHrtoANCivqsJXsiJzstpwNCivqsJXtlZzsiJgNCivqsJXrj5nqtZANCivqsJXsp4TsmIENCivqsJXtg5zsi50NCivqsJXsnKDtmZgNCivqsJXsmIHrjIANCivqsJXsp4TtmLgNCivqsJXrjIDqtawNCivqsJXrp5DqtJENCivqsJXsg4HsiJgNCivqsJXsp4TtmLgNCivqsJXsmKXrjIANCivqsJXqt7zsm5ANCivqsJXrp4zstpwNCivqsJXssL3roZ0NCivqsJXsoJXshK0NCivqsJXslpHqt7wNCivqsJXsnbjsoJUNCivqsJXssL3shJ0NCivqsJXqsJzsi50NCivqsJXtg5ztmZgNCivqsJXsooXsiJgNCivqsJXssL3shK0NCivqsJXsoJXrj5kNCivqsJXsooXqt5wNCivqsJXqsJDtmLgNCivqsJXssL3siJgNCivqsJXrrLTsl7ANCivqsJXtlbTtmZgNCivqsJXsmqnsmrQNCivqsJXssL3sm5ANCivqsJXrqoXtlZkNCivqsJXsmIHqt5wNCivqsJXrrLTri7QNCivqsJXsspzshJ0NCivqsJXrj5nrrLgNCivqsJXsnKTsobANCivqsJXspIDssqANCivqsJXstqnqt5wNCivqsJXsmqnqtIANCivqsJXsirnsm5ANCivqsJXsm5DsobANCivqsJXsvozsiJgNCivqsJXsnqzsoJANCivqsJXsg4HssqANCivqsJXshJ3qs4QNCivqsJXtg5zrrLgNCivqsJXstpjtmZgNCivqsJXqt5zsmrQNCivqsJXsg4HsobANCivqsJXtg5zsg4ENCivqsJXsooXquLgNCivqsJXshLHsnbQNCivqsJXsmIHrsLANCivqsJXtg5zshJ0NCivqsJXtko3siKANCivqsJXsl7Drp4wNCivqsJXsmqnshLgNCivqsJXtg5zshLENCivqsJXsoJXtlZwNCivqsJXsooXtg5wNCivqsJXsoJXqsr0NCivqsJXtg5zsiJgNCivqsJXrj5nrqqgNCivqsJXri6zsmqkNCivqsJXtg5zrnoANCivqsJXtg5zsiJwNCivqsJXqtJHrqoUNCivqsJXsmIHrj4wNCivqsJXsiJzshJ0NCivqsJXtg5zsirkNCivqsJXshJ3snqUNCivqsJXtg5zqt5wNCivqsJXsmIHtnawNCivqsJXtg5zsnbwNCivqsJXsoJXsmIENCivqsJXsmIHtnawNCivqsJXqt5zsiJwNCivqsJXtg5zsnpANCivqsJXsoJDsm5ANCivqsJXrrLjtl4wNCivqsJXtlbTso7wNCivqsJXtg5zsp4QNCivqsJXssYTsobANCivqsJXsiJjrjZUNCivqsJXrp4zrj4QNCivqsJXtg5zsp4QNCivqsJXsmqnrjIANCivqsJXquLjqt7wNCivqsJXsp4DsiJkNCivqsJXtg5ztmJUNCivqsJXsmIHtnJgNCivqsJXqsr3snqwNCivqsJXtnaXshK0NCivqsJXtg5ztmLgNCivqsJXsiJztmZgNCivqsJXqsr3quLANCivqsJXsoJXtmLgNCivqsJXtjJTqtowNCivqsJXqt5zsnpANCivqsJXtjJDtg5wNCivqsJXsnKTsobANCivqsJXtlYTsnoQNCivqsJXqt7zsg4ENCivqsJXsmrDshKANCivqsJXshLHtmZgNCivqsJXtlZnqtawNCivqsJXsoJXsi50NCivqsJXslaDsg4ENCivqsJXqtJHquLANCivqsJXtlZnqt5wNCivqsJXssKztmZgNCivqsJXrtoDshK0NCivqsJXsnbjso7wNCivqsJXtl4zspJENCivqsJXtlbTsm5ANCivqsJXrgpnrp4wNCivqsJXtg5zsiJgNCivqsJXtmITshJ0NCivqsJXsg4HrhbgNCivqsJXsnqzsnpANCivqsJXqsJHsiJgNCivqsJXtmITsmYQNCivqsJXsiJnstpwNCivqsJXquIjrpqwNCivqsJXslpHsiJkNCivqsJXtmJzsm5ANCivqsJXsmIHsooUNCivqsJXsjI3snbwNCivqsJXquLDsiJkNCivqsJXtmLjqsr0NCivqsJXrj5ntmZgNCivqsJXqsr3soJANCivqsJXshLHsooUNCivqsJXtmY3qt7wNCivqsJXstpjtg50NCivqsJXsmIHsm5ANCivqsJXqsr3qta0NCivqsJXtmY3rsLANCivqsJXtl4zsi50NCivqsJXsm5DqtZANCivqsJXsmqnsiJkNCivqsJXtmY3shK0NCivqsJXsooXsnoQNCivqsJXssL3tmLgNCivqsJXqs6Tsm5ANCivqsJXtmqjqt7wNCivqsJXqt4DrspQNCivqsJXsiJzssKwNCivqsJXrp4zsmKUNCivqsJXtnJjqt5wNCivqsJXsnqztmLgNCivqsJXsiJjsobANCivqsJXtg5zqt6ANCivqsJXtnJjqt5wNCivqsJXrs5HsooUNCivqsJXtg5zsg4ENCivqsJXtnazsiJgNCivqsJXtnaXssKwNCivqsJXrr7jquLANCivqsJXsooXsi6ANCivqsJXquLDtg5wNCivqsJXtnazqsJENCivqsJXsnqztmLgNCivqsJXqt4Dsi5wNCivqsJXshJ3si50NCivqsJXtnazqt5wNCivqsJXtlbTshLENCivqsJXshLHqt7wNCivqsJXsmqnrj4QNCivqsJXtnazshJ0NCivqsJXrqoXqt7wNCivqsJXrtIntlZwNCivqsJXsoJXtm4gNCivqsJXtnazsmIENCivqsJXsvozsmrANCivqsJXsiJjtmIQNCivqsJXshLHsl7ANCivqsJXtnazsoJANCivqsJXsnZjsi50NCivqsJXqsr3siJgNCivqsJXssL3sl7QNCivqsr3qtoztmLgNCivqsr3smIHsiJgNCivqsr3qsr3qtZANCivqsr3smqnsi50NCivqsr3rkZDtmLgNCivqsr3sg4Htg5wNCivqsr3smKXsmrENCivqsr3shJ3rgqgNCivqsr3shLjtmLgNCivqsr3smqnsnpANCivqsr3rp7nsnpANCivqsr3shJ3sl7QNCivqs6DqtJHsiJgNCivqs6DtmY3quLgNCivqs6DquLDsnpANCivqs6DssL3shJ0NCivqs6DqtJHsiJkNCivqs6DsnqzspIANCivqs6DsmIHso7wNCivqs6Dsp4TsiJgNCivqs6DqtJHtnawNCivqs6Dsg4HqtowNCivqs6DsooXsmKUNCivqs6DtmY3siJgNCivqs6Dqt4DsnoQNCivqs6DsmrDqt5wNCivqs6Dqsr3sm5ANCivqs6DsnqzsnbUNCivqs6DrjIDsooUNCivqs6DrqoXsmrANCivqs6Drp4nshKQNCivqs6Dsl7DsnbgNCivqs6DrjZXsmqkNCivqs6Dqsr3si6wNCivqs6Dso7ztmLgNCivqs6Ag7IudDQor6rOg642V7J20DQor6rOg67O17ZiEDQor6rOg7YOA6rCRDQor6rOg7J6s7JqwDQor6rOg64+Z7IicDQor6rOgIOyVlA0KK+qzoO2YhO2YhA0KK+qzoO2VnOyImA0KK+qzoOuPme2YhA0KK+qzoOuzte2DnA0KK+qzoOynhOqzpA0KK+qzoOunjO2YuA0KK+qzoOuemOyehA0KK+qzoOqwkeyhsA0KK+qzoOustOycpA0KK+qzoOyEseyInA0KK+qzoOunkOuCqA0KK+qzoOuNle2ZlA0KK+qzoOuRkOyEsQ0KK+qzoO2DnO2YuA0KK+qzoOuqheyLnQ0KK+qzoO2Vme2aqA0KK+qzoOuPmeyImQ0KK+qzoOqzpOuTnQ0KK+qzoOuvvO2drA0KK+qzoOyZuO2YuA0KK+qzoOq0keydtA0KK+qzoOyDgeyImQ0KK+qzoOuzkeyasQ0KK+qzoOyerOyLnQ0KK+qzoOuPme2VtA0KK+qzoOyghO2YuA0KK+qzoOuzke2drA0KK+qzoOunjOydvA0KK+qzoOyaqe2ZlA0KK+qzoOuPme2DnA0KK+qzoOyEneq2jA0KK+qzoOyInOyVoA0KK+qzoOygkOyEnQ0KK+qzoOyerOyhsA0KK+qzoOyEneybkA0KK+qzoO2ZjeuegA0KK+qzoOyInO2YuA0KK+qzoO2DnOu0iQ0KK+qzoOyEseybhQ0KK+qzoOq2jOyInA0KK+qzoOyatOyjvA0KK+qzoOyYgeyImQ0KK+qzoOyImOq2jA0KK+qzoOyaqeq4sA0KK+qzoOyyoOyhsA0KK+qzoOuzteyImA0KK+qzoOyImOu5iA0KK+qzoOqzhOujoQ0KK+qzoOuzkeyatA0KK+qzoOuNleyImA0KK+qzoOyInOunuQ0KK+qzoOyiheyjvA0KK+qzoO2MkOyInA0KK+qzoOyerOuztQ0KK+qzoOyInO2YuA0KK+qzoOyijOyLnQ0KK+qzoOyEseq1kA0KK+qzoOq3vOyyoA0KK+qzoOyLnOuqqQ0KK+qzoOygle2YuA0KK+qzoOyEne2drA0KK+qzoOyEneyasQ0KK+qzoOyYgeq4uA0KK+qzoOqwkeyImQ0KK+qzoOyiheyekA0KK+qzoO2VtO2VtA0KK+qzoOyYgeybkA0KK+qzoOyerO2drA0KK+qzoOyYgeuhnQ0KK+qzoOyiheyaqQ0KK+qzoOycoOynhA0KK+qzoOyYgeyImA0KK+qzoOyInO2DnQ0KK+qzoOydke2VnA0KK+qzoOycpOuylA0KK+qzoO2DnOq4uA0KK+qzoOustOuNlQ0KK+qzoOywveyEnQ0KK+qzoOydgOyEoA0KK+qzoOyEseybkA0KK+qzoOyEne2YuA0KK+qzoO2ZjeyImQ0KK+qzoOydmOunjA0KK+qzoOyaqeybkA0KK+qzoOynhOykgA0KK+qzoOyehOyInA0KK+qzoOydmOynhA0KK+qzoOyCvO2biA0KK+qzoOuPmeyEoA0KK+qzoOybkO2drA0KK+qzoOyduOyEnQ0KK+qzoO2DnOywrA0KK+qzoOyiheyhsA0KK+qzoOuvvOuPmQ0KK+qzoOydvO2ZmA0KK+qzoOq4sOydtQ0KK+qzoOyGjOyErQ0KK+qzoO2YleyImA0KK+qzoOyepeq1rQ0KK+qzoOqwke2YnA0KK+qzoOygkOuCqA0KK+qzoOyynOq3oA0KK+qzoOyerOyZhA0KK+qzoOyiheyInA0KK+qzoOqyveqyvQ0KK+qzoOyXsOq3vA0KK+qzoOygleyEnQ0KK+qzoOyehO2DnQ0KK+qzoO2DnOyngA0KK+qzoOy2mO2drA0KK+qzoOygleyEnQ0KK+qzoOu0ieq4sA0KK+qzoOyKueq4sA0KK+qzoO2YhO2YlQ0KK+qzoOykkeyEnQ0KK+qzoOyaqe2drA0KK+qzoOq4sO2YuA0KK+qzoOyYgeyImA0KK+qzoOywveyEnQ0KK+qzoOyDgeyasA0KK+qzoOynhOyInA0KK+qzoOuPhOyImA0KK+qzoOyyoOq3nA0KK+qzoOycpOyhsA0KK+qzoOyDgeyyoA0KK+qzoOyiheyImA0KK+qzoOy2qeq1rQ0KK+qzoO2MkO2ZmA0KK+qzoOyYge2DnA0KK+qzoOyYpeqxtA0KK+qzoO2DnOqyvQ0KK+qzoOyInOugqA0KK+qzoOyInOunjA0KK+qzoOyYgeq3vA0KK+qzoO2VmeusuA0KK+qzoOqyveyInA0KK+qzoOyDgeyImA0KK+qzoOu2gOuztA0KK+qzoO2YhOyCsA0KK+qzoOu0ieydvA0KK+qzoOqyveq4uA0KK+qzoOyInO2drA0KK+qzoO2aqOyYgQ0KK+qzoOuPmeq4sA0KK+qzoOuvuOy2nA0KK+qzoO2YhOydgA0KK+qzoO2aqOyYgQ0KK+qzoOyEseunjA0KK+qzoOyehOuylA0KK+qzoO2DnO2DnA0KK+qzoO2aqOyYgQ0KK+qzoOyGjOyaqQ0KK+qzoOyasOyImA0KK+qzoO2VmeyImQ0KK+qzoO2drOyEnQ0KK+qzoOyaqeu2hA0KK+qzoOyerOyEnQ0KK+qzoOyerOyasA0KK+qzteq0keyaqQ0KK+qzteq4iOy2qQ0KK+qzteygleuguQ0KK+qzteyEuOydtQ0KK+qzteunjOyImA0KK+qzteydgOyEnA0KK+qzteq3vOyImA0KK+qzteyehOyImA0KK+qzteuqheyImA0KK+qzteu2gOyInA0KK+qzte2VtOyEnQ0KK+qzteyiheyVlA0KK+qzteuzkeuemA0KK+qzteuzkeq3vA0KK+qzte2ZlOuPhA0KK+qzteywveq4sA0KK+qzteyEneu2lQ0KK+qzteyerOu2hA0KK+qzteyerOybkA0KK+qzteyihe2VmQ0KK+qzteyEneydtA0KK+qzteywveyImA0KK+qzteq4sOykkQ0KK+qzte2Zje2cmA0KK+qzteyEneyyoA0KK+qzteyduO2YuA0KK+qztey2mOyYgQ0KK+qzteyEneuNlQ0KK+qzteyImOuCqA0KK+qzteyMjeyInA0KK+qzteyerOuPhA0KK+qzteyerOyEnQ0KK+qzteyInOu2hA0KK+qzteyLoO2YhA0KK+qzteygleyEsQ0KK+qzteycpOunjA0KK+qzteyLnOuPmQ0KK+qzteynhOyaqQ0KK+qzteyDge2YhA0KK+qzte2MkOyYpQ0KK+qzteyWteyImA0KK+qzteyerOyatA0KK+qzteyImOyImA0KK+qzte2YhO2drA0KK+qzteyYgeuMgA0KK+qzteyiheyasA0KK+qzteyiheyImQ0KK+qzteyYgeyEnQ0KK+qzteyYgeyEoA0KK+qzteyEseq3vA0KK+qzteydteyIoA0KK+qzteyynOuPhA0KK+qzteyYgeyekA0KK+qzteqyveyEsQ0KK+qzteykgOyImA0KK+qzteyEse2YuA0KK+qzteyehOyEnQ0KK+qzteyDgeyXsA0KK+qzteuLrOynhA0KK+qzteuzkeyLnQ0KK+qzteyerOqwkQ0KK+qzteyerOyInA0KK+qzteydvO2YhA0KK+qzteyInO2drA0KK+qzteyerOyImQ0KK+qzteykgOyaqQ0KK+qzte2drOuegA0KK+qzteyWuOyLnQ0KK+qzteyerOydtQ0KK+qzteyyoO2DnQ0KK+qzteyImO2YuA0KK+qzte2DnOyXtA0KK+qzteyerOydtQ0KK+qzteq0keyIoA0KK+qzte2DnO2ZmA0KK+qzteuzke2YhA0KK+qzteyiheyXtA0KK+qzteuzte2YhA0KK+qzte2MkOuNlQ0KK+qzteuRkOq4iA0KK+qzteyihey2mA0KK+qzte2Sje2ZlA0KK+qzteqzhOyYgQ0KK+qztey2mOyImA0KK+qzteyihey2mA0KK+qzteuNleyXtA0KK+qzteyiheq4sA0KK+qztey5oO2VmQ0KK+qzvSDtj6wNCivqs73rs5HsmrANCivqs73quLDsi50NCivqs73tg5zsiJgNCivqs73qsJHsmIENCivqs73rp4ztmIQNCivqs73rs5HshLENCivqs73soJXrj5kNCivqs73qsr3qt7wNCivqs73qtJHtmZQNCivqs73ssL3quLANCivqs73rr7jsoJUNCivqs73qsr3ro6ENCivqs73smIHsl7ANCivqs73sg4HsiJgNCivqs73ssq3smKUNCivqs73qsr3siJwNCivqs73rj5nshJ0NCivqs73tlbTrrLgNCivqs73qtJHqt5wNCivqs73qsr3smqkNCivqs73tg5zsl7ANCivqs73tjJTshKANCivqs73sp4TsmKUNCivqs73qsr3tmLgNCivqs73tlZzsiJgNCivqs73sooXshK0NCivqs73suaDsnpANCivqs73qtJHshK0NCivqs73rjZXtnawNCivqs73tmqjsobANCivqs73snYTsiKANCivqs73qtJHshK0NCivqs73tg5zsiJwNCivqs73snYDsl7QNCivqs73rkZDspIANCivqs73qtJHsiJgNCivqs73rp4zshJ0NCivqs73sooXsoJUNCivqs73snKTsnbwNCivqs73qtZDsiJwNCivqs73rgqjtmLgNCivqs73sp4Ttg5wNCivqs73qt7zsiJgNCivqs73qtozshK0NCivqs73ssKjsi50NCivqs73sooXssKwNCivqs73rj5nrtoQNCivqs73quLDshKQNCivqs70g6rK9DQor6rO96riw7IiYDQor6rO966eQ7Zi4DQor6rO96riw7IicDQor6rO97KKF642VDQor6rO97Iq57YyQDQor6rO97JaR7IiYDQor6rO96riw7KeEDQor6rO97IK87JiBDQor6rO96rec7ZmYDQor6rO97J287KO8DQor6rO96ri47ZWcDQor6rO97LC96riwDQor6rO96rK97J6sDQor6rO97ZiE7Je0DQor6rO96ri47ZmYDQor6rO97IiY7YyQDQor6rO97Jq067CwDQor6rO97Jqp7ZiEDQor6rO964Ko7JilDQor6rO97KKF7JqwDQor6rO96rWQ6riwDQor6rO97YOc6rWtDQor6rO964W47LC9DQor6rO97ISx7Zi4DQor6rO97KSA6rWsDQor6rO9IOyImA0KK+qzveuPhOyYgQ0KK+qzve2drOykgA0KK+qzveyaqeyLnA0KK+qzveqyveyEsQ0KK+qzveuPhOyYgQ0KK+qzveyGjOyEnQ0KK+qzveycpOyInA0KK+qzveyYgeyYpQ0KK+qzveuPiOyYgQ0KK+qzveqzhOyImQ0KK+qzveyImOunjA0KK+qzveu0ieq3nA0KK+qzveuPmeuTnQ0KK+qzveyerOunjA0KK+qzveyEse2YuA0KK+qzveygleuTnQ0KK+qzveuPmeunjA0KK+qzveu2hOq3nA0KK+qzveyaqeyXtA0KK+qzveq1kO2ZmA0KK+qzveuPmeuvvA0KK+qzveq3nOyImQ0KK+qzveuqheqzpA0KK+qzveuLrOu2gA0KK+qzveuPmeyLoA0KK+qzveuzteyInA0KK+qzveq4iOyLnQ0KK+qzveuqheyImA0KK+qzveuPmeyaqQ0KK+qzveusuO2YuA0KK+qzveq3gO2ZlA0KK+qzve2YhOqxuA0KK+qzveuPmeyaqQ0KK+qzveq0keyEoA0KK+qzveydvOq4uA0KK+qzveq0keykgA0KK+qzveuPme2XjA0KK+qzve2DnOykgA0KK+qzve2DnO2cmA0KK+qzveyiheyEnQ0KK+qzveuRkOyLnQ0KK+qzveyaqey2mA0KK+qzveyaqeuwsA0KK+qzveuPmeqzpA0KK+qzveunjOyImA0KK+qzveqyve2YuA0KK+qzve2aqOyImA0KK+qzveyYgeyImQ0KK+qzveunjOyImA0KK+qzveq3nOyEnQ0KK+qzve2ZlOuPjA0KK+qzveyYgeuCqA0KK+qzveunjOyhsA0KK+qzveyXsO2YhA0KK+qzveq0gOydvA0KK+qzveyYge2DnQ0KK+qzveunjO2YuA0KK+qzveyYgeykgA0KK+qzveyerO2DnA0KK+qzveyInOybhQ0KK+qzveunkOyaqQ0KK+qzveyKueydtA0KK+qzveu0ieq3vA0KK+qzveygle2YlQ0KK+qzveuqheyErQ0KK+qzveyepeyYgQ0KK+qzvSDshJ0NCivqs73spIDsiJwNCivqs73rqoXsi50NCivqs73rp4zsmrANCivqs73ssL3sl7QNCivqs73shLHsmKUNCivqs73rqoXsmrENCivqs73smrDsi50NCivqs73sooXqsJENCivqs73sooXsm5ANCivqs73rqoXtmLgNCivqs73snqzsnoQNCivqs73rs5Hsi50NCivqs73tlbTrqoUNCivqs73rrLTshKANCivqs73snbzsiJwNCivqs73snqzsp4QNCivqs73rqoXtlokNCivqs73rrLTsnbUNCivqs73rgpztmIQNCivqs73smKXsmKQNCivqs73soJXsmIENCivqs73rrLTtmIQNCivqs73sl4XstpwNCivqs73tl4zquLANCivqs73smIHsp4QNCivqs73rrLjsiJwNCivqs73qsbTshLENCivqs73tg5zsmrANCivqs73ri6ztlZkNCivqs73rr7jshJ0NCivqs73tmZTsmIENCivqs73rpqzsl7QNCivqs73qsr3sm5ANCivqs73rr7zssL0NCivqs73quLDsmrANCivqs73suaDsnbwNCivqs73soJXquLANCivqs73rspTqtowNCivqs73siJjtm4gNCivqs73siJjsmIENCivqs73shLHsm5ANCivqs73rs5Hrj4QNCivqs73snqzsmqkNCivqs73sooXsp4QNCivqs73soJXquLANCivqs73rs5HrrLUNCivqs73ssKjsmKUNCivqs73slaDsiJgNCivqs73quLDshJ0NCivqs73rs5HsiJgNCivqs73qtoztmZQNCivqs73spp3roZ0NCivqs73tg5ztmIQNCivqs73rs5HsiJkNCivqs70g7KCcDQor6rO97ZW06rK9DQor6rO9642V66y4DQor6rO967OR7Je0DQor6rO97LCo64KoDQor6rO97ZuI7J6sDQor6rO96rK97YOcDQor6rO967OR7JikDQor6rO97ISg7JikDQor6rO96rOE67CwDQor6rO97LCo7JewDQor6rO967OR7JyoDQor6rO97J247Zi4DQor6rO97ZmY7JqpDQor6rO97ZW07ISdDQor6rO967OR7LKgDQor6rO97ISx7KeEDQor6rO967OR7KO8DQor6rO97JuQ7KeEDQor6rO967OR7YOcDQor6rO97J6s66+4DQor6rO97Z2s7IudDQor6rO97KSA7Je0DQor6rO967OR7YOcDQor6rO97Jyg7IicDQor6rO97ZmN7J6QDQor6rO97Jyk7ISgDQor6rO967OR7ZeMDQor6rO97Zi47Je0DQor6rO97J6E7JqwDQor6rO97Jyk642VDQor6rO967O07IicDQor6rO96riw7ZiEDQor6rO96rCV7JiBDQor6rO97YOc7J6QDQor6rO967SJ7ISgDQor6rO966qF6ri4DQor6rO97KKF7J6QDQor6rO97IOB66GdDQor6rO967SJ7ZWYDQor6rO97J286529DQor6rO97ISx6rCcDQor6rO97J6s7KGwDQor6rO967aA7LmYDQor6rO97Jyk7IiYDQor6rO97JiB7ISdDQor6rO97KCV7JqwDQor6rO967aE6recDQor6rO97J6E7Zi4DQor6rO96rCV7Zi4DQor6rO97Jqp642VDQor6rO967aE7ZicDQor6rO97ISx7IiZDQor6rO97Iic7Z2sDQor6rO964+Z7ISgDQor6rO97IKs7JiBDQor6rO967OR67SJDQor6rO9IOuwsA0KK+qzvSDstpwNCivqs73sg4HqsJENCivqs73shoztg50NCivqs73ssL3shK0NCivqs73ssq3rs7UNCivqs73sg4HqsbQNCivqs73smKXtmZQNCivqs73siJztg5wNCivqs73shKDsi50NCivqs73sg4Hqta0NCivqs73tjJDquLANCivqs73smrHquLgNCivqs73sl7Dqsr0NCivqs73sg4Hqt5wNCivqs73shLHquLANCivqs73rj5nsiJwNCivqs73sooXsnqwNCivqs73sg4Hqt5wNCivqs73shLjtmLgNCivqs73quLDqt7wNCivqs73sp4Tqta0NCivqs73sg4Hrj4QNCivqs73smIHshK0NCivqs73sirnrtIkNCivqs73smqntmIENCivqs73sg4HrkZANCivqs73sooXsmIENCivqs73sm5DshLENCivqs73sm5DsoJwNCivqs73sg4HsmIENCivqs73rj4TqtowNCivqs73rtoDrtIkNCivqs73snbjsl7QNCivqs73sg4HsmKQNCivqs73shozsnqwNCivqs73rs5HsnpANCivqs73tg5zsi50NCivqs73sg4HsobANCivqs73sg4HquLANCivqs73rkZDtlZgNCivqs73tjJDtmLgNCivqs73sg4HssqANCivqs73tmLjsi50NCivqs70g6re8DQor6rO97KKF7YOcDQor6rO97IOB7LaYDQor6rO97JiB7J24DQor6rO97JiB7IicDQor6rO97KKF7IK8DQor6rO97IOB7ZWZDQor6rO97KKF7IiYDQor6rO97IOB7KGwDQor6rO97Jyk7ISdDQor6rO97IOB7ZiEDQor6rO97KO87LKgDQor6rO97JaR656YDQor6rO97KO86rWsDQor6rO97IOB7ZiEDQor6rO97ZiE66GADQor6rO97KO87JiBDQor6rO97Jqw7YOcDQor6rO97ISd7J20DQor6rO97IiY7Z2sDQor6rO97LCs7KeEDQor6rO96riw7YOcDQor6rO97ISd7KGwDQor6rO97ISx7Je0DQor6rO97YyQ7Z2sDQor6rO9642V7IiYDQor6rO97ISx6recDQor6rO97ISx7KSADQor6rO97ISx6raMDQor6rO97KCQ7J24DQor6rO97ISx6recDQor6rO97J247ISdDQor6rO97ZKN6re8DQor6rO97Zi464yADQor6rO97ISx7IStDQor6rO97KCV6re8DQor6rO97IiY7IicDQor6rO97YOc65OdDQor6rO97ISx7JiBDQor6rO97KKF7LKgDQor6rO96rK97ZiEDQor6rO966qF7JWUDQor6rO97ISx7Zi4DQor6rO965GQ7KSADQor6rO97Jyk7IiYDQor6rO97KeE7Z2sDQor6rO97ISx7ZmUDQor6rO97Zic7KO8DQor6rO97YOc7ZiEDQor6rO97IiY7IudDQor6rO97IaM7ISgDQor6rO97IaM7ZWZDQor6rO97ISx7KO8DQor6rO964Ko7KO8DQor6rO97IaM7IicDQor6rO97Kad7ZaJDQor6rO96reA6recDQor6rO97J6s7ZmUDQor6rO97IiY6re8DQor6rO97KKF7KO8DQor6rO9IOyImA0KK+qzveygkO2VtA0KK+qzveyImOyXsA0KK+qzveyEse2YuA0KK+qzveyiheq4sA0KK+qzveyEneyEnQ0KK+qzveyImOyYgQ0KK+qzveyerOqyvQ0KK+qzveyLoOyYgQ0KK+qzveyerO2ctA0KK+qzveyImO2ZmA0KK+qzveyDgeyEnQ0KK+qzveyInOyImA0KK+qzveyEseyErQ0KK+qzveyInOyYgQ0KK+qzveygleq3vA0KK+qzveyEseygnA0KK+qzveqzhO2YhA0KK+qzveyInOydtA0KK+qzve2DnOyglQ0KK+qzveyYge2YhA0KK+qzveq0keyImA0KK+qzveyInO2YuA0KK+qzve2YuOyEoA0KK+qzveuzkeyynA0KK+qzveyImOu5iA0KK+qzveyIoOyaqQ0KK+qzveqyveq4iA0KK+qzve2ZjeuqhQ0KK+qzve2ajO2ZmA0KK+qzveyLoOyErQ0KK+qzveuqheyXtA0KK+qzveyiheq4sA0KK+qzve2Vme2biA0KK+qzveyLoO2aqA0KK+qzveyLoOyYgQ0KK+qzveqyveydkQ0KK+qzveqyve2YuA0KK+qzveyWkeuCqA0KK+qzve2DnO2DnA0KK+qzveuFuOuPhA0KK+qzveuPmeuqqA0KK+qzveyWkeybhQ0KK+qzveyDgeyImA0KK+qzveuLrO2ZjQ0KK+qzveuPmeqzpA0KK+qzveyXtOq3nA0KK+qzveyYge2YuA0KK+qzveyihe2DnA0KK+qzveq0keykgA0KK+qzveyYgeq4uA0KK+qzveyerOydkQ0KK+qzveycpOyImQ0KK+qzve2MlOyasA0KK+qzveyYgeq4uA0KK+qzveyImOuPmQ0KK+qzveyhsOyYpQ0KK+qzve2DnOqwkQ0KK+qzveyYgeunjA0KK+qzveyYgeyynA0KK+qzveyyoO2YuA0KK+qzveyjvOuPmQ0KK+qzveyYgeyDgQ0KK+qzveywveuPmQ0KK+qzveydvOq1kA0KK+qzve2dpe2ZmA0KK+qzveyYgeyErQ0KK+qzve2YuOyImQ0KK+qzve2YleyInA0KK+qzveq4sOyXtA0KK+qzveyYgeyYpQ0KK+qzveuvuOy2mA0KK+qzve2DnOyEnQ0KK+qzveyImOyEnQ0KK+qzveyYgeyekA0KK+qzveyaqeyjvA0KK+qzve2Vme2DnA0KK+qzveyGoeu0iQ0KK+qzveyYgeyhsA0KK+qzve2DnOyImA0KK+qzveqyveuPmQ0KK+qzve2DnOyasA0KK+qzveyYgeyyoA0KK+qzveyYgeq3vA0KK+qzveusuOyCvA0KK+qzveuzke2YhA0KK+qzveyYge2DnA0KK+qzveybkOyaqQ0KK+qzve2DnO2OuA0KK+qzveynhOyasA0KK+qzveyYge2YuA0KK+qzveyerOyImA0KK+qzveu0ieyLnQ0KK+qzveqyveyYpA0KK+qzveyYge2ZlA0KK+qzvSDsg4ENCivqs73tlYTshLENCivqs73rjIDsnbUNCivqs73smIHtnawNCivqs73shLHtmLgNCivqs73qsr3smYQNCivqs73smKTssqANCivqs73smKXshKANCivqs73sooXqta0NCivqs73sooXtmIQNCivqs73tg5ztmIQNCivqs73smKXsl7ANCivqs73rs5HtkZwNCivqs73tmY3sspwNCivqs73rqoXqsJENCivqs73smZXqt5wNCivqs73tlYTquLANCivqs73sm5DsobANCivqs73sg4HtmZgNCivqs73smbjshK0NCivqs73shLHsi50NCivqs73smIHshK0NCivqs73shLHsi50NCivqs73smqnsiJgNCivqs73tg5zrk50NCivqs73so7zrj5kNCivqs73tjJTsoJUNCivqs73smqnsiJkNCivqs73snqzsobANCivqs73snbjsnbQNCivqs73qt5zqsJUNCivqs73smqnsiJwNCivqs73sp4DrtIkNCivqs73si6DrspQNCivqs73tmY3tmLgNCivqs73smrDsi50NCivqs73tmY3sl7ANCivqs73tg5zsnbQNCivqs73soJDrp7kNCivqs73smrDsl7QNCivqs73tmZjssqANCivqs73tg5ztmLgNCivqs73sobDsiJgNCivqs73smrDsmIENCivqs73smqnrj4QNCivqs73rqqjqt5wNCivqs73soJDsiJwNCivqs73sm5Dqt5wNCivqs73qtIDsmKQNCivqs73sooXtlbQNCivqs73snbzroZwNCivqs73sm5Dqt5wNCivqs73sjI3qta0NCivqs73sm5Tqs6QNCivqs73so7zsi50NCivqs73sm5DsmIENCivqs73snbzsnbwNCivqs73qs7XsnbwNCivqs73rj4TrjZUNCivqs73sm5DsmIENCivqs73tmITsnpANCivqs73tjJTsg50NCivqs73snKDqt5wNCivqs73snKDshLENCivqs73snqzsi50NCivqs73shJ3siJkNCivqs73rgqjstpwNCivqs73snKDtg5wNCivqs73quLDsiJwNCivqs73qt7zqtowNCivqs73tnazqtowNCivqs73snKTqtJENCivqs73smqnsm5ANCivqs73qsJXsoJUNCivqs73quLDsmIENCivqs73snKTqtawNCivqs73rs5HshLENCivqs73smqnsi50NCivqs73siJzshKANCivqs73snKTqt5wNCivqs73rs5Hrs7UNCivqs73sgrzsmYQNCivqs73smKXsl7ANCivqs73snYDsl7QNCivqs73qtZDqt6ANCivqs73sooXsg4ENCivqs73rtoDsmKQNCivqs73snYTsiJwNCivqs73snqzsiJgNCivqs73rj4TshKANCivqs73quLDshKANCivqs73snZjtmLgNCivqs73rtoTqsIANCivqs73smIHtmZgNCivqs73qtJHqt7wNCivqs73snbzro6ENCivqs73snbjqsJENCivqs73qsJHshK0NCivqs73shLHssqANCivqs73snoTsiJgNCivqs73quLDso7wNCivqs73ssL3tmZQNCivqs73sp4TsmKQNCivqs73snpDsmqkNCivqs73sooXtnawNCivqs73sl7DrgqgNCivqs73snYDsm5ANCivqs73snqzqsr0NCivqs73smKTqt7wNCivqs73rp4zsobANCivqs73rs5Hrj4QNCivqs73snqzqt7wNCivqs73spIDroZ0NCivqs73tmJXsnpANCivqs73snKTsiJgNCivqs73snqzshJ0NCivqs73tmLjssYQNCivqs73shLHquLgNCivqs73tnazqtIANCivqs73snqzsi50NCivqs73tmoztmIQNCivqs73qs4TtmJENCivqs73stpjrjZUNCivqs73snqzsl7QNCivqs73shLHquLANCivqs73tmITsiJgNCivqs73sgrzsspwNCivqs73snqzsmIENCivqs73sgrDsiJkNCivqs73soJXsmrQNCivqs73smrHsnpANCivqs73snqzsmIENCivqs73shLHtg5wNCivqs73sg4Hsi50NCivqs73smqntlZgNCivqs73snqzsmIENCivqs73smIHsiJgNCivqs73sm5DsiJwNCivqs73smqnsi50NCivqs73snqzsmrENCivqs73rqoXsiJkNCivqs73smIHquIgNCivqs73sl7DssqANCivqs73snqzsm5ANCivqs73shJ3qtawNCivqs73tmITsnqwNCivqs73tmLjtmLgNCivqs73snqzsspwNCivqs73sgrzsiJgNCivqs73rjZXsmqkNCivqs73ssL3quLANCivqs73snqzssqANCivqs73qtJHtlbQNCivqs73sgrztmLgNCivqs73tg5zssqANCivqs73snqzssqANCivqs73sooXrj4wNCivqs73sooXsp4QNCivqs73rrLTstpwNCivqs73snqztmLgNCivqs73rjIDsl7ANCivqs73qsr3slpENCivqs73smIHsiJgNCivqs73snqztmZgNCivqs73soJXsm5ANCivqs73siJjsooUNCivqs73smIHrj4QNCivqs73snqztm4gNCivqs73ssKjtmLgNCivqs73snpHsobANCivqs73smqnsnbwNCivqs73soJDsmqkNCivqs73snqzstpwNCivqs73smbjqt5wNCivqs73soJXsobANCivqs73soJXrp4wNCivqs73quLDtnaANCivqs73tg5ztnawNCivqs73snqzsnpANCivqs73soJXsl7ANCivqs73soJzsooUNCivqs73soJXsnKgNCivqs73siJzsiJgNCivqs73sooXqtIANCivqs73qsr3snqwNCivqs73slYjsiJgNCivqs73qtJHtmZgNCivqs73sooXqta0NCivqs73smIHsl7QNCivqs73sooXsiJgNCivqs73sm5DsnpANCivqs73sooXqtowNCivqs73shJ3slrgNCivqs73sg4HssqANCivqs73qsJHsmKUNCivqs73sooXrjIANCivqs73snbzrtIkNCivqs73smbjsiJgNCivqs73tnazsmIENCivqs73sooXrjIANCivqs73tlZzshKANCivqs73so7zrrLgNCivqs73quLDsnpANCivqs73sooXrjZUNCivqs73qsbTsmIENCivqs73sg4HquLANCivqs73soJXshJ0NCivqs73sooXrp4wNCivqs73snKTqtawNCivqs73qt7zsi50NCivqs73so7zsiJkNCivqs73sooXslZQNCivqs73soJXrp4wNCivqs73sooXssqANCivqs73smIHsmqkNCivqs73sooXsl7QNCivqs73soJXquLANCivqs73snqzslZQNCivqs73siJztmLgNCivqs73sooXso7wNCivqs73quLjsi5wNCivqs73tl4zrjIANCivqs73rs5HsooUNCivqs73sooXtlZkNCivqs73roYDtmLgNCivqs73rgqjtlZkNCivqs73smIHsp4QNCivqs73sooXtmJUNCivqs73soJXtnawNCivqs73rrLTso7wNCivqs73sg4HsnbwNCivqs73sooXtm4gNCivqs73sp4Ttg5wNCivqs73soJXtmLgNCivqs73spIDssqANCivqs73so7zshJ0NCivqs73qtJHsi50NCivqs73sooXsobANCivqs73tg5zshJ0NCivqs73so7zshK0NCivqs73smrDrnpgNCivqs73qt4DrjZUNCivqs73qsr3siJgNCivqs73sp4DsmIENCivqs73sooXspIANCivqs73tg5zrjIANCivqs73snqXtnJgNCivqs73sp4Tqs6QNCivqs73rtInqsJENCivqs73rqoXrj5kNCivqs73sooXtmLgNCivqs73sp4TsiJgNCivqs73sirnsl7QNCivqs73sgrzsiJwNCivqs73smKTsiJwNCivqs73ssKjsg4ENCivqs73sooXrk50NCivqs73snqzsp4QNCivqs73qs4TtmZgNCivqs73ssKjsmqkNCivqs73tmqjsiJgNCivqs73rp4zsnpANCivqs73sgrzsm5ANCivqs73ssL3shK0NCivqs73rj5nsmrANCivqs73snbzqtIANCivqs73soJXsgrwNCivqs73ssL3siJgNCivqs73smrTsnKgNCivqs73smIHsmqkNCivqs73quLDslrgNCivqs73ssL3si50NCivqs73sm5DshJ0NCivqs73tmITsi6QNCivqs73quLDsiJgNCivqs73ssL3smZUNCivqs73smIHrj5kNCivqs73ssL3snKQNCivqs73sm5DsmYQNCivqs73sspzshJ0NCivqs73snITtg50NCivqs73rgqjtmZgNCivqs73sgrzsnbQNCivqs73ssqDsiJgNCivqs73rs7XshK0NCivqs73sirnrtoQNCivqs73tg5zsmKUNCivqs73ssqDtmZgNCivqs73soJXso7wNCivqs73qsr3tlqUNCivqs73ssL3tnawNCivqs73suaDsmqkNCivqs73sp4TsobANCivqs73slaDshKANCivqs73sooXsmKUNCivqs73tg5zqsr0NCivqs73tg5zsoJUNCivqs73sm5DsiJgNCivqs73snKTquLANCivqs73tg5zshJ0NCivqs73rj5nsi50NCivqs73rrLTsnbwNCivqs73rjIDsobANCivqs73tg5zshJ0NCivqs73sg4Hsl7ANCivqs73shLjsi50NCivqs73smIHtnawNCivqs73tg5zshK0NCivqs73snqzrp4wNCivqs73shKDqsr0NCivqs73qsbTstpwNCivqs73tg5zsi50NCivqs73sg4Hsi50NCivqs73snqzsi50NCivqs73tlbTqtowNCivqs73tg5zsi50NCivqs73quLDsiJgNCivqs73shJ3tg50NCivqs73rj5ntm4gNCivqs73tg5zsl7QNCivqs73smIHqsbQNCivqs73tjJDsiJgNCivqs73stpjsmrANCivqs73tg5zsmIENCivqs73spIDtmLgNCivqs73smqnshJ0NCivqs73quLDtmZgNCivqs73tg5zsmqkNCivqs73rrLjsobANCivqs73tg5ztmZgNCivqs73snqzsiKANCivqs73tg5zspJENCivqs73rgqjrhYQNCivqs73smrHtmLgNCivqs73ssL3sl7QNCivqs73tg5ztmZgNCivqs73rjZXqt7wNCivqs73ssq3smqkNCivqs73rqoXsi50NCivqs73tg5ztnawNCivqs73rr7jsobANCivqs73qsJHrj5kNCivqs73qt7nsnbUNCivqs73tg53sl7QNCivqs73sirnrp4wNCivqs73quLDrrLgNCivqs73tmZjrjIANCivqs73tjJDqsJwNCivqs73sg4HtmLgNCivqs73sooXsnpANCivqs73rqoXtmY0NCivqs73tjJDsiJgNCivqs73tg5zqtJENCivqs73so7zsmqkNCivqs73qtJHtl4wNCivqs73tj4nshK0NCivqs73rp4zsl7ANCivqs73shLHro6ENCivqs73sspzrsLANCivqs73tkZzqsr0NCivqs73sg4HrqqgNCivqs73smbjshLENCivqs73rs5Hrj5kNCivqs73tlZnstpwNCivqs73soJXstpwNCivqs73so7ztg5wNCivqs73sp4TsmrANCivqs73tlZzqs6QNCivqs73smIHsmqkNCivqs73rspTtl4wNCivqs73ssKjsobANCivqs73tlZzsiJgNCivqs73rs5Htg50NCivqs73shLHtmLgNCivqs73tg5zshK0NCivqs73tlZzsmIENCivqs73smqnsiJkNCivqs73spIDshJ0NCivqs73tmITtg50NCivqs73tlbTqt5wNCivqs73tmITtmLgNCivqs73rs5HrtoQNCivqs73shLHquLANCivqs73tlbTrp4wNCivqs73quLDspIANCivqs73sirnsmrANCivqs73tlZzspJENCivqs73tlbTshJ0NCivqs73rj5ntl4wNCivqs73tg5ztg5wNCivqs73rrLjsi50NCivqs73tlbTshJ0NCivqs73snqzsiJgNCivqs73tg5ztmY0NCivqs73qtJHri6wNCivqs73tmLjsiJwNCivqs73qsr3tnawNCivqs73soJDsiJwNCivqs73smIHroZ0NCivqs73tmY3qt5wNCivqs73sooXtmLgNCivqs73rj5ntmIQNCivqs73siJzsl7QNCivqs73tmZTsl7QNCivqs73tg5zrspQNCivqs73slrXqt5wNCivqs73smrDsiJgNCivqs73tm4Tsl7QNCivqs73tjJDtmIQNCivqs73spIDqtowNCivqs73slrXsmKQNCivqs73tnJjshowNCivqs73smqnsiJgNCivqs73shLHstpgNCivqs73sgrzsi50NCivqs73tnaXshK0NCivqs73tg5zspIANCivqs73tg5zsgrwNCivqs73qsr3quLgNCivqs73tnazsiJwNCivqs73qsr3shK0NCivqs73rjZXsmrANCivqs73sp4Tsp5ENCivqs73tnazsm4UNCivqs73rrLjsl7QNCivqs73rs5HspIANCivqs73tmJztmIQNCivqtazqsr3shJwNCivqtazsooXsobANCivqtazsjI3shJ0NCivqtazssKjrtoANCivqtazqsr3siJkNCivqtazsm5DsmKUNCivqtaztlZzqta0NCivqtazshKTsmrANCivqtazqsr3siJkNCivqtazrk53siJkNCivqtazsiJjtnawNCivqtazsnKTrjIANCivqtazqt4DtmZQNCivqtazsg4HtmZQNCivqtazrp5DroZ0NCivqtazrqoXtg5wNCivqtazquLjtmowNCivqtazshLHsp4QNCivqtazsnbzsg4ENCivqtazrjZXsmrANCivqtazrj5nrp4wNCivqtazqsr3tmIQNCivqtazsnbjsnbQNCivqtazshLHsiJgNCivqtazrj5nshJ0NCivqtazqt7zrtIkNCivqtazsgrzsi50NCivqtazsooXtl4wNCivqtazrj5nsiJgNCivqtazsnqzsm5ANCivqtazrs5HtmIQNCivqtazsjI3smrANCivqtazrj5nsm5ANCivqtazstqnsiJwNCivqtazquLDrgqgNCivqtazshJ3rs5ENCivqtazrj5nssqANCivqtazsirntnawNCivqtazsnbzsi50NCivqtazquLDsi50NCivqtazrkZDshKANCivqtazrqoXsmrQNCivqtazso7ztmLgNCivqtazsmIHsiJwNCivqtazrqoXsiJkNCivqtazrs7XtnawNCivqtazsiJzsmKUNCivqtaztg5zrnpgNCivqtazrr7ztmowNCivqtazqt5zshKANCivqtazquIjsmrENCivqtazqsr3tlZkNCivqtazrs5HsiJgNCivqtazri6zshK0NCivqtazsmIHshJ0NCivqtaztnazsi50NCivqtazrs5HssKwNCivqtazsiJzroKgNCivqtazrkZDqt7wNCivqtazsnbTsiJgNCivqtazrs7jshKANCivqtazsiJztnawNCivqtazsiJjrs5ENCivqtazsiJjstpgNCivqtazrs7jsirkNCivqtazsnKTsm4UNCivqtazsmIHsiJgNCivqtazso7zso7wNCivqtazrs7jtmIQNCivqtazsnqzsnpANCivqtazqtJHtmIQNCivqtaztlZzsiKANCivqtazrtoDsnoQNCivqtazsnqztl4wNCivqtazsoJXtkZwNCivqtaztg5zshKQNCivqtazshJ3rtIkNCivqtaztg5ztg5wNCivqtazsnqzsi50NCivqtaztg5zsnbUNCivqtazshKDsnbQNCivqtaztmY3rqqgNCivqtaztmITssqANCivqtazrrLTsnKQNCivqtazsmqnquLgNCivqtazsiJjsm4UNCivqtazquLDsi50NCivqtazssqDsiJgNCivqtazsmqntg5wNCivqtazsmIHtg50NCivqtazsmbjtmZQNCivqtazspJHtmLgNCivqtazsnbTsmqkNCivqtaztg5ztlZgNCivqtazrj4jsnqwNCivqtazsooXsiJgNCivqtazsnpDqtIANCivqtazssL3tmIQNCivqtazsm5DshKANCivqtazqtazquLANCivqtazsnpDrjZUNCivqtazsoJXrtoANCivqtaztg5ztmLgNCivqtazquLDtmLgNCivqtazsnpDsmrANCivqtazsnKTsmKQNCivqtazsooXrqqkNCivqtazshJ3shLENCivqtazsnpDsnbUNCivqtazrj5nrj5kNCivqtazsnqztmZQNCivqtazrtInquLANCivqtazsoJDsi50NCivqtazshLHsnpANCivqtazrp4zsl7ANCivqtazsg4HspJENCivqtazsoJzrgqgNCivqtazquIjsnbQNCivqtazsl7DtmZgNCivqtazsmqnsuZgNCivqtazspJHshJwNCivqtaztlZnsnpANCivqtazsoJXri6wNCivqtazssKjsl7ANCivqtazstpjsi50NCivqtazsp4Ttg5wNCivqtazsnqXsiJwNCivqtazsm5Dsl7ANCivqtazstpjsi50NCivqtazquLDquLgNCivqtazsmIHqt6ANCivqtazrj5ntg4ENCivqtazstqnrqqgNCivqtazrs7XsnpANCivqtazrs5HtlZwNCivqtaztm4jtnawNCivqtaztg5ztnawNCivqtazrrLTsmqkNCivqtazrs5Hqs6ANCivqtazrj5nshJ0NCivqtaztj4nquLgNCivqtazshLHsi50NCivqtazsgrzrkZANCivqtazsmIHtnawNCivqtaztmITsmKUNCivqtaztmqjtnawNCivqtazsiJzsmqkNCivqtazslpHsmqkNCivqtaztmZTsnbQNCivqtazsg4Hqt5wNCivqtazshLHsm5ANCivqtazsmIHsiJgNCivqtaztnazqsr0NCivqtazrs5HssqANCivqtazsnqzspIANCivqtazsmIHroZ0NCivqtaztnazsiJkNCivqtazsmIHrspQNCivqtazrtIntl4wNCivqtazrtoDsiJgNCivqta3snKTtmZgNCivqta3sg4HshJ0NCivqta3tmZjrgqgNCivqta3rr7ztg5wNCivqtowg7IiYDQor6raM7JiB6rWtDQor6raM64yA7ZiEDQor6raM7KCV7KO8DQor6raM6rCR7KGwDQor6raM7IOB656ADQor6raM7ISx7ZiEDQor6raM7YOc6recDQor6raM6rK96rSADQor6raM7J6s7JuQDQor6raM6riw7IicDQor6raM7IOB7IiYDQor6raM6rK9642VDQor6raM7LC97JewDQor6raM7KCQ7LaYDQor6raM67SJ7JuFDQor6raM6rK9656ADQor6raM7ISd7ISxDQor6raM7J6s67mIDQor6raM7IiY7ISdDQor6raM6rK97IOdDQor6raM6rec6ri4DQor6raM7ZmN7KO8DQor6raM6riw7JykDQor6raM6rK97IiZDQor6raM6riw7JuQDQor6raM7Lap7JikDQor6raM7Z2l7IOBDQor6raM6rK97IigDQor6raM7Jqp7Z2sDQor6raM6rec7IutDQor6raM7KKF7JilDQor6raM6rK97J6QDQor6raM7KKF7ZmYDQor6raM7LC964+ZDQor6raM7ISx6rCRDQor6raM6rK97KGwDQor6raM7JiB7ISdDQor6raM7JiB7ZiEDQor6raM7Ja17IStDQor6raM6rK97ZmYDQor6raM67SJ6riwDQor6raM7ISx7IicDQor6raM7KeE64+MDQor6raM6rSR7IudDQor6raM7Z2s7LC9DQor6raM7ISx7IOBDQor6raM7ISx7KeADQor6raM6rSR7JuFDQor6raM67KU67CwDQor6raM66qF64+ZDQor6raM7J6s7IStDQor6raM6rSR7Zi4DQor6raM7Iq57JiBDQor6raM7LKg6rOkDQor6raM7IK86rWtDQor6raM6reA64KoDQor6raM7Iq57JikDQor6raM7J247ISdDQor6raM7ISg65OdDQor6raM6reA7J6EDQor6raM64W47ZmYDQor6raM6raM7ZiEDQor6raM7ISd6re8DQor6raM6riI7JWFDQor6raM7KCV7IiYDQor6raMIO2YuA0KK+q2jO2XjOuqqA0KK+q2jOq4iOyXsA0KK+q2jOqyveyXtA0KK+q2jOyImOybkA0KK+q2jOunjO2aqA0KK+q2jOq4sOuPmQ0KK+q2jOycpOyInA0KK+q2jOq4iOykgA0KK+q2jOyLnOq4sA0KK+q2jOq4sOyErQ0KK+q2jOyepeyZhA0KK+q2jOunjOq1kA0KK+q2jOygkO2YuA0KK+q2jOq4sOyEsQ0KK+q2jOyYgey2nA0KK+q2jO2XjOyImA0KK+q2jOqzhOuPhA0KK+q2jOq4sOyImA0KK+q2jOuqheyImA0KK+q2jOuzte2ctA0KK+q2jOyXsOuvvA0KK+q2jOq4sOyYgQ0KK+q2jOyyoOq4sA0KK+q2jOyihey2mA0KK+q2jO2drO2YuA0KK+q2jOq4sOyaqQ0KK+q2jOuNleyImQ0KK+q2jOydvOyEnQ0KK+q2jOq4sO2DnA0KK+q2jOq4sOyihQ0KK+q2jOygle2MlA0KK+q2jOq4iO2ZmA0KK+q2jOqwke2ZjQ0KK+q2jOq4sOyyoA0KK+q2jOyYgeyXtA0KK+q2jOyEneyVoA0KK+q2jOyerO2drA0KK+q2jOq4sO2XjA0KK+q2jO2VtOyLoA0KK+q2jOuNleq3vA0KK+q2jOqzhOu5iA0KK+q2jOuCqOyImA0KK+q2jOyZuOyInA0KK+q2jOymneyErQ0KK+q2jOyDgeuPhA0KK+q2jOuKoOydtA0KK+q2jOyaqeyLnQ0KK+q2jOywveyErQ0KK+q2jOyEuOyaqQ0KK+q2jOuLrOy2nA0KK+q2jOyEseyImA0KK+q2jOyInOyasQ0KK+q2jOycpOydtQ0KK+q2jOuMgOyYgQ0KK+q2jOywrOyyoA0KK+q2jOyEse2ZlA0KK+q2jOydvOyglQ0KK+q2jOuMgOycpA0KK+q2jOuPmeyImA0KK+q2jOynhOuvvA0KK+q2jOq4sO2drA0KK+q2jOuNleyaqQ0KK+q2jOyEseyekA0KK+q2jOyerO2biA0KK+q2jOy2mOy2nA0KK+q2jOuPhOyduA0KK+q2jOyKue2XjA0KK+q2jOy2mOq4sA0KK+q2jOuPmeuylA0KK+q2jOuPjOydtA0KK+q2jOyImOq4uA0KK+q2jO2MkOyEnQ0KK+q2jOyynOyErQ0KK+q2jOuPmeq2jA0KK+q2jOyiheyYgQ0KK+q2jOyiheuhnQ0KK+q2jO2YhOybhQ0KK+q2jOuRkOumrA0KK+q2jOyiheyVlA0KK+q2jOuzkeyYgQ0KK+q2jOq4sOqyvQ0KK+q2jOuRkO2YhA0KK+q2jO2XjOyhsA0KK+q2jOyDgeyXsA0KK+q2jOyaqeq4sA0KK+q2jOuTneyImA0KK+q2jOqyveybhQ0KK+q2jOuPhOyImA0KK+q2jO2VhOyYgQ0KK+q2jOugue2YhA0KK+q2jOyInO2biA0KK+q2jOywveq4sA0KK+q2jO2Zje2ZlA0KK+q2jOunkOyImA0KK+q2jOydvOq1kA0KK+q2jOq0keykgA0KK+q2jOynhOyDnQ0KK+q2jOunkOyaqQ0KK+q2jOuMgOybkA0KK+q2jOyihe2YuA0KK+q2jOusuOyihQ0KK+q2jOunkOyehA0KK+q2jOuzteqzpA0KK+q2jOqyveq3nA0KK+q2jOydvOq3vA0KK+q2jOuqheuztQ0KK+q2jOyduOyImA0KK+q2jOynhO2bhA0KK+q2jO2YuOyEnQ0KK+q2jOuqheyCvA0KK+q2jO2DnOyyoA0KK+q2jOydkeynhA0KK+q2jOyInO2YuA0KK+q2jOuqheyaqQ0KK+q2jO2bhOyCvA0KK+q2jOygleyXsA0KK+q2jOyYge2ZjQ0KK+q2jOustOybhQ0KK+q2jOyehOq2jA0KK+q2jO2DnOyYpQ0KK+q2jOyaqeynhA0KK+q2jOustO2ZjQ0KK+q2jOusuOuNlQ0KK+q2jOyiheqzhA0KK+q2jO2DnO2ZlA0KK+q2jOuvuOuegA0KK+q2jOyjvOyXsA0KK+q2jOygleuMgA0KK+q2jOyerOyImA0KK+q2jOuvuOuegA0KK+q2jOyEneyekA0KK+q2jOyImOq1rA0KK+q2jOyXheyekA0KK+q2jOuvuOyYgQ0KK+q2jOq4sOyYgQ0KK+q2jOyaqeybhQ0KK+q2jOyZleyYgQ0KK+q2jOuvuOyekA0KK+q2jOyiheyCvA0KK+q2jOuLrOuMgA0KK+q2jO2PieyInA0KK+q2jOuvuOyekA0KK+q2jO2DnOyekA0KK+q2jOyasOyEoA0KK+q2jOyYgeyasA0KK+q2jOuzkeusuA0KK+q2jOyjvOq1kA0KK+q2jOyepeyglQ0KK+q2jO2DnOyDgQ0KK+q2jOuzkeyyoA0KK+q2jOyWuO2YhA0KK+q2jOuPme2RnA0KK+q2jO2DnOq1sA0KK+q2jOuzteq4uA0KK+q2jOyLoO2ZjQ0KK+q2jOuRkO2ZjQ0KK+q2jOyLnOq4uA0KK+q2jOuzteq4uA0KK+q2jOygleyglQ0KK+q2jOuzkeyYpQ0KK+q2jO2DnOyglQ0KK+q2jOuzteunjA0KK+q2jOyerOybkA0KK+q2jOyYgeyekA0KK+q2jO2aqOuCqA0KK+q2jOuzteyjvA0KK+q2jOyiheyXsA0KK+q2jO2ZlOyLnQ0KK+q2jOyEseyglQ0KK+q2jOu0ie2VmQ0KK+q2jOyEoOuNlQ0KK+q2jOqyve2drA0KK+q2jO2Zje2drA0KK+q2jOu2hO2WpQ0KK+q2jOygleugrA0KK+q2jOyDgeuvuA0KK+q2jOyEse2VmQ0KK+q2jOu2hO2WpQ0KK+q2jOyduOq3nA0KK+q2jOu0ieyLnQ0KK+q2jOq4sO2VnA0KK+q2jOyCvOufiQ0KK+q2jOyerO2ZmA0KK+q2jOyehOyEnQ0KK+q2jO2VhOumvQ0KK+q2jOyCvOyIoA0KK+q2jOyerOu0iQ0KK+q2jOuNleq4sA0KK+q2jOyEseuwsA0KK+q2jOyDgeq3nA0KK+q2jOq4sOuztQ0KK+q2jO2DnOydtA0KK+q2jOyDgeuwsA0KK+q2jOyDgeyasA0KK+q2jOyasO2ZmA0KK+q2jOuRkOyImQ0KK+q2jOuzkeyEnQ0KK+q2jOyEneyasA0KK+q2jOybkOygnA0KK+q2jO2DnOydtA0KK+q2jOyYgeyXtA0KK+q2jOyEoOuztQ0KK+q2jOykkeyEnQ0KK+q2jO2YhOyInA0KK+q2jOyYgeyEsQ0KK+q2jOyEoO2drA0KK+q2jOyDgeq1rA0KK+q2jOuqheybkA0KK+q2jOyjvOyYgQ0KK+q2jOyEoO2drA0KK+q2jOuvuOyyoA0KK+q2jOyiheyImA0KK+q2jOuMgOy2nA0KK+q2jOyEseq3vA0KK+q2jOuPmeyEnQ0KK+q2jOyiheq4sA0KK+q2jOygleyaqQ0KK+q2jOyEseq4sA0KK+q2jOuzkeybhQ0KK+q2jOyEuOyEnQ0KK+q2jOyImO2drA0KK+q2jOyEseuMgA0KK+q2jOyaqey2nA0KK+q2jOygleyyoA0KK+q2jOyaqeykgA0KK+q2jOyEseybhQ0KK+q2jOyjvOyasA0KK+q2jO2VhOyEsQ0KK+q2jOygle2YuA0KK+q2jOyEseykgA0KK+q2jOyaqeyyoA0KK+q2jOygle2YuA0KK+q2jOybkO2drA0KK+q2jOyEuOyaqQ0KK+q2jOq3gO2drA0KK+q2jOyDgeyYgQ0KK+q2jOyDge2YuA0KK+q2jOyEuOyaqQ0KK+q2jOuCmOusuA0KK+q2jOyerOyLnQ0KK+q2jOyerOyImQ0KK+q2jOyGjOq0gA0KK+q2jOuzkeynhA0KK+q2jOuqheqzpA0KK+q2jOq0keyYpA0KK+q2jOyGjOuPjA0KK+q2jOuPmeusuA0KK+q2jOusuOybkA0KK+q2jOyEuO2DnQ0KK+q2jOyImOunjA0KK+q2jOygkOyYpQ0KK+q2jOybkO2VmQ0KK+q2jOuPmeyXtA0KK+q2jOyImOunjA0KK+q2jOu2hOyImA0KK+q2jOq3nOy2nA0KK+q2jOygle2drA0KK+q2jOyImOybkA0KK+q2jOqyvey2nA0KK+q2jOq4sO2RnA0KK+q2jOyiheyjvA0KK+q2jOyImOyekA0KK+q2jOyiheq1rA0KK+q2jOyerOuwsA0KK+q2jOydmO2DgQ0KK+q2jOyImOyekA0KK+q2jOycpOyaqQ0KK+q2jOywqO2YuA0KK+q2jOq0ke2YhA0KK+q2jOyImOyekA0KK+q2jOuqheyhsA0KK+q2jOydgOyLnQ0KK+q2jOygle2YuA0KK+q2jOyImOyekA0KK+q2jOuPme2YuA0KK+q2jOyduOydtA0KK+q2jOuzkeuqqA0KK+q2jOyInOuNlQ0KK+q2jOyngO2VmQ0KK+q2jOuvuOq4sA0KK+q2jOyLnOq1rQ0KK+q2jOyInOuqqQ0KK+q2jOyEseyEnQ0KK+q2jOuzke2YuA0KK+q2jOyaqeqxtA0KK+q2jOyInOyYpQ0KK+q2jOyCrO2YuA0KK+q2jOyerOuLrA0KK+q2jOyEse2ZjQ0KK+q2jOyInO2ZmA0KK+q2jOq4iOybkA0KK+q2jOq3gOyihQ0KK+q2jOykkeq3vA0KK+q2jOyVlOyasA0KK+q2jOqwkeyInA0KK+q2jOuztOyekA0KK+q2jOycpOyImA0KK+q2jOyVoOyekA0KK+q2jOqzhOyDnQ0KK+q2jOuMgOy2mA0KK+q2jOyYgeyImQ0KK+q2jOyXsOyjvA0KK+q2jO2DnOyImA0KK+q2jOuMgOyaqQ0KK+q2jO2VnOybkA0KK+q2jOyYgeqzhA0KK+q2jOygleyImA0KK+q2jOyaseyhsA0KK+q2jOyDgeyXtA0KK+q2jOyYgeq0gA0KK+q2jO2VnOyjvA0KK+q2jOykkeq1rQ0KK+q2jO2DnOqyvQ0KK+q2jOyYgeq1kA0KK+q2jOyaqeq4uA0KK+q2jOy2qe2YlQ0KK+q2jO2VmeykgA0KK+q2jOyYgeq1rA0KK+q2jOyEse2VmQ0KK+q2jOyihe2WpQ0KK+q2jOyduOuztQ0KK+q2jOyYgeq1rA0KK+q2jOyEseyaqQ0KK+q2jOyjvOyImA0KK+q2jOyKue2YuA0KK+q2jOyYgeq1rA0KK+q2jOuzkeuPjA0KK+q2jOuzkeq1kA0KK+q2jOq4sOyEoA0KK+q2jOyYgeq1rQ0KK+q2jOugpOusuA0KK+q2jOyDge2DnA0KK+q2jOq4sOuPmQ0KK+q2jOyYgeq3vA0KK+q2jOyDgeuztQ0KK+q2jO2YuOyEnQ0KK+q2jOyDge2ZmA0KK+q2jOyYgeuMgA0KK+q2jOyEneuztQ0KK+q2jOyiheyekA0KK+q2jOustOyekA0KK+q2jOyYgeuPiA0KK+q2jOuzte2VnA0KK+q2jOq4sOyImQ0KK+q2jOyDgeyLnQ0KK+q2jOyYgeuhnQ0KK+q2jOynhOyImA0KK+q2jOyduOyasA0KK+q2jOyDgeqzpA0KK+q2jOyYgeuqqQ0KK+q2jOq2jOuMgA0KK+q2jO2VhO2DnA0KK+q2jOyerOq4uA0KK+q2jOyYgeusuA0KK+q2jOuFuOyXsA0KK+q2jOuPhOyImA0KK+q2jOyekOyLnQ0KK+q2jOyYgeuztA0KK+q2jOyaqeuCqA0KK+q2jOyiheq4uA0KK+q2jOyEuO2drA0KK+q2jOyYgeuztQ0KK+q2jOqyveyYpQ0KK+q2jOustOyImA0KK+q2jOywrOyerA0KK+q2jOyYgeuztQ0KK+q2jOynhOyLnQ0KK+q2jOydgOyasA0KK+q2jOyImOywrA0KK+q2jOyYgeu0iQ0KK+q2jOyduOq3vA0KK+q2jO2drOqyvQ0KK+q2jOyihe2drA0KK+q2jOyYgeu0iQ0KK+q2jOywveq3vA0KK+q2jOyYpey2nA0KK+q2jOykgO2YuA0KK+q2jOyYgeyImA0KK+q2jOyKueyjvA0KK+q2jOyepeyEnQ0KK+q2jOuqheyYgQ0KK+q2jOyYgeyInA0KK+q2jOunue2YhA0KK+q2jOydvOqyvQ0KK+q2jOustO2YuA0KK+q2jOyYgeyInA0KK+q2jOyaqeyehA0KK+q2jOuPmeqwkQ0KK+q2jOuzteybkA0KK+q2jOyYgeyInA0KK+q2jOyEseunjA0KK+q2jOyYge2YuA0KK+q2jOyyoOyEuA0KK+q2jOyYgeyVhA0KK+q2jOygleq3nA0KK+q2jOqzhOqwkQ0KK+q2jOyEseyInA0KK+q2jOyYgeydvA0KK+q2jOuMgOq4sA0KK+q2jOuzkeqzhA0KK+q2jOyYgeyImA0KK+q2jOyYgeygnA0KK+q2jOyEoOyDnQ0KK+q2jOu2hOyErQ0KK+q2jOyEseyekA0KK+q2jOyYgeyjvA0KK+q2jOuNleumrA0KK+q2jOq0ke2VtA0KK+q2jOq0keyInA0KK+q2jOyYgeykgA0KK+q2jO2DnOyImA0KK+q2jOyYgeu2hA0KK+q2jOydmOq4uA0KK+q2jOyYgeywvQ0KK+q2jOuNleqyvQ0KK+q2jOq4iO2aqA0KK+q2jOq4sOydtA0KK+q2jOyYgey5oA0KK+q2jOyEseyYgQ0KK+q2jOq4iOqyvQ0KK+q2jOq4iOuwsA0KK+q2jOyYge2DnQ0KK+q2jOyaqe2ZmA0KK+q2jO2DnOq4sA0KK+q2jOyaqeykgA0KK+q2jOyYge2VhA0KK+q2jOyerOyImA0KK+q2jOygle2drA0KK+q2jOy2mOyImA0KK+q2jOyYge2VmA0KK+q2jOyYpeyjvA0KK+q2jOq3gOujoQ0KK+q2jOyYge2ZlA0KK+q2jOyYge2VmA0KK+q2jO2YhOy2nA0KK+q2jOyDgeydtQ0KK+q2jOygleuMgA0KK+q2jOyYge2XjA0KK+q2jOy2mOyLnQ0KK+q2jOq4sOybkA0KK+q2jO2DnOyXtA0KK+q2jOyYge2YhA0KK+q2jOuzkeyXsA0KK+q2jOqyveuwsA0KK+q2jOyngOustA0KK+q2jOyYge2YuA0KK+q2jOycpOq1rQ0KK+q2jOyEne2YuA0KK+q2jOygleyhsA0KK+q2jOyYge2ZmA0KK+q2jOychOq4uA0KK+q2jOy5oO2ZlA0KK+q2jOuqheq0kQ0KK+q2jOyYpOq0kQ0KK+q2jO2DnOyImA0KK+q2jO2ZmOyekA0KK+q2jOyiheuRkA0KK+q2jOyYpOq0kQ0KK+q2jOq4uOqzpA0KK+q2jOq0keyImA0KK+q2jOyiheudvQ0KK+q2jOyYpOq3vA0KK+q2jOyDgeyhsA0KK+q2jOykkeq3oA0KK+q2jOyEoOqxtA0KK+q2jOyYpOq3vA0KK+q2jOyImOq4sA0KK+q2jOyiheyLnQ0KK+q2jOq4uOqxtA0KK+q2jOyYpOujoQ0KK+q2jOyYge2DnA0KK+q2jOuvuOyImA0KK+q2jOunjOyLnQ0KK+q2jOyYpOunjA0KK+q2jO2DnOyglQ0KK+q2jOygkOu0iQ0KK+q2jO2YleyDgQ0KK+q2jOyYpOunjA0KK+q2jOq4iO2VmQ0KK+q2jOyEseyXtA0KK+q2jOq2jOyyoA0KK+q2jOyYpOuqhQ0KK+q2jOyerOq2jA0KK+q2jOqzoeuPmQ0KK+q2jOq4sOunjA0KK+q2jOyYpOyDgQ0KK+q2jO2DnO2drA0KK+q2jOuRkO2YuA0KK+q2jOyEneyLnQ0KK+q2jOyYpOyDgQ0KK+q2jOunjOq3vA0KK+q2jOyGjOygnA0KK+q2jOyYpeusuA0KK+q2jOyYpOyDgQ0KK+q2jOyiheynhA0KK+q2jOyEneyErQ0KK+q2jO2biOuNlQ0KK+q2jOyYpOyEnQ0KK+q2jOygleybkA0KK+q2jOyEseyImA0KK+q2jOygleyasA0KK+q2jOyYpOyEnQ0KK+q2jO2DnOugqA0KK+q2jOuhneygnA0KK+q2jOynhOyyoA0KK+q2jOyYpOyEnQ0KK+q2jOydgOyglQ0KK+q2jOuCqO2VmQ0KK+q2jOyduOyImA0KK+q2jOyYpOyEsQ0KK+q2jOudveyasA0KK+q2jOyZuO2YuA0KK+q2jOyerOunjA0KK+q2jOyYpOyEsQ0KK+q2jOyYgeq1rA0KK+q2jOuFuOyImA0KK+q2jOuzkeuPhA0KK+q2jOyYpOyEsQ0KK+q2jOydgOyyoA0KK+q2jO2aqOyYgQ0KK+q2jOyXsOyIoA0KK+q2jOyYpOyEsQ0KK+q2jOyKueq1rA0KK+q2jOyaqeyXtA0KK+q2jOq4sOqyvQ0KK+q2jOyYpOyImA0KK+q2jOuPmeqwgQ0KK+q2jOyDgeuwsA0KK+q2jOyYge2YhA0KK+q2jOyYpOyImA0KK+q2jOyEse2VnA0KK+q2jO2DnOuNlQ0KK+q2jOygkOu2hA0KK+q2jOyYpOyImA0KK+q2jOuPmeuFhA0KK+q2jOybkOuNlQ0KK+q2jOyngOyaqQ0KK+q2jOyYpOyKuQ0KK+q2jOuPmeyLoA0KK+q2jOyiheusuA0KK+q2jCDtg5wNCivqtozsmKTsl7QNCivqtoztmozsl7ANCivqtozsmIHqt5wNCivqtozsoJXstpwNCivqtozsmKTsmrENCivqtozrqoXsmrENCivqtoztmY3smIENCivqtozquLDsl7QNCivqtozsmKTsm4UNCivqtozsnqzquLANCivqtozrp7nqs6QNCivqtozsooXshK0NCivqtozsmKTso7wNCivqtozrj4TsnqwNCivqtozsmIHsi50NCivqtozsmIHtlZwNCivqtozsmKTspIANCivqtoztmY3qsr0NCivqtozshLHstpwNCivqtozso7ztmqgNCivqtozsmKTstpQNCivqtoztlZzsmqkNCivqtozqsr3ssL0NCivqtozshJ3tmLgNCivqtozsmKTsuaANCivqtoztmLjtlZgNCivqtozsnqzsnKgNCivqtozsg4HsnbQNCivqtozsmKTtmIQNCivqtozsmIHtnawNCivqtozrs5Hsl7QNCivqtozrrLjtmLgNCivqtozsmKTtmLgNCivqtoztg5zsspwNCivqtozqsJHstpwNCivqtozrp4ztmZgNCivqtozsmKTtnJgNCivqtozqtazsmIENCivqtozrqoXrsLANCivqtozsnqztnawNCivqtozsmKXshLENCivqtozrs7XtmLgNCivqtozrjZXso7wNCivqtozsnqzshLENCivqtozsmKXstpwNCivqtozrk53roKQNCivqtozqsr3snKQNCivqtozshLHsi50NCivqtozsmbjsiJgNCivqtozsmIHsmrENCivqtozrrLjsnoQNCivqtozrqoXsiJkNCivqtozsmqnquLANCivqtoztjJDsiJgNCivqtozsnbTqsr0NCivqtozsoJXqs6QNCivqtozsmqnrk50NCivqtozshLHrtIkNCivqtozsmKjsmqkNCivqtozshJ3soJUNCivqtozsmqnrp4wNCivqtozsp4Drj5kNCivqtozqsr3tl4wNCivqtozsi6DtnawNCivqtozsmqnssqANCivqtozsmqnshLENCivqtozsnbzsmKUNCivqtoztmansmrQNCivqtozsmqntg5wNCivqtozrqoXsiJgNCivqtozsmrHroKgNCivqtozqsr3roYANCivqtozsmqntg5wNCivqtozsooXtmLgNCivqtozrjZXrj5kNCivqtoztjJDtmJUNCivqtozsmqntg5wNCivqtozrj5ntnawNCivqtozslrjssL0NCivqtoztlZzsiJgNCivqtozsm5Dqta0NCivqtozqtJHsmqkNCivqtozshLHspIANCivqtozsmIHsnbQNCivqtozsm5DsobANCivqtozssL3tnawNCivqtozsi6TsiKANCivqtoztg5ztlZkNCivqtozsm5DstpwNCivqtozsoJXsobANCivqtozrs5HssYQNCivqtozsp4TquLANCivqtozsm5Ttg5wNCivqtozsoJXquLgNCivqtozslpHsiKANCivqtozsp4Tsl7QNCivqtozsnYDsoJUNCivqtozshozrj4QNCivqtozrs7XrtoQNCivqtozrnpjqsr0NCivqtozsnZjtmqgNCivqtozsmYTroZwNCivqtozrs5HspJENCivqtozrp4zsl7QNCivqtozsnbXtmIQNCivqtozshLHtmIQNCivqtozshJ3qt5wNCivqtozrs5Hsm5ANCivqtozsnoTshKANCivqtozrqoXtg50NCivqtoztmITsm5ANCivqtozsgrzsmqkNCivqtozsnqzqsbQNCivqtozqt7zsiJgNCivqtozsg4HqtowNCivqtozsnbjssL0NCivqtozsnqzrjZUNCivqtozrqoXtg5wNCivqtozsnbTsnKQNCivqtozsmIHqt7wNCivqtozsnqztmZQNCivqtozrj5nsnbwNCivqtozsnqXsiJgNCivqtozssKjtnawNCivqtozsoJDsiJwNCivqtoztmqjshKANCivqtozquLDsiJgNCivqtozsmIHtmqgNCivqtozsoJDtg5wNCivqtozsoJXtnawNCivqtozrs7Tqs6QNCivqtozrr7jslrUNCivqtozsoJXslYQNCivqtozqt5zrs7UNCivqtozsnqzsg4ENCivqtozsgrzsnpANCivqtozsoJXsmKQNCivqtozqsrjsmKUNCivqtozsg4HtmLgNCivqtoztmJXsiJgNCivqtozsoJXtnawNCivqtoztla3siJkNCivqtoztlYTsiJwNCivqtozsg4HsnZgNCivqtozsoJztmLgNCivqtozsnbTsi50NCivqtozsnqzsnbQNCivqtozsp4TsnbUNCivqtozsooXrr7wNCivqtozsg4HsobANCivqtozsnqzsi50NCivqtozsmIHsiJgNCivqtozsooXslYgNCivqtozsnKTquLANCivqtozsmrDshKANCivqtozsmqnrjZUNCivqtozsooXsnoQNCivqtozsnbjtnawNCivqtozsmIHtmZgNCivqtozrp4zsmKQNCivqtozsoozqt7wNCivqtozquLDsl7QNCivqtozsnYDsmIENCivqtozsnKTsi50NCivqtozso7zssKwNCivqtozshJ3tlZkNCivqtoztl4zsmKQNCivqtozrrLjsiJgNCivqtozso7ztmIENCivqtozsgqzsiJwNCivqtozsnqXquLANCivqtozsooXtnawNCivqtozspIDsmrANCivqtozsooXsl7ANCivqtozsmIHtmIENCivqtozrs7XsmqkNCivqtozspIDsmrANCivqtozsmIHsl7ANCivqtozqt7zsiJgNCivqtozsnqzqt7wNCivqtozspIDsnbwNCivqtozsmrDqt7wNCivqtozrs5Hsi50NCivqtozsmKXsoJwNCivqtozspIDsnbwNCivqtozso7zssKwNCivqtozsmqnrs5ENCivqtozrrLjtmZQNCivqtozspIDsnbwNCivqtozspJHtmLgNCivqtozquLDtg5wNCivqtozqt5zquLgNCivqtozspJHqt5wNCivqtoztmJXssqANCivqtozquLDtmLgNCivqtozrqoXrr7wNCivqtozspJHquLANCivqtozsmqnri6wNCivqtozsg4Hrj4QNCivqtozqsIDtlYQNCivqtozspJHquLANCivqtozsiJztmZQNCivqtozslrXtmIQNCivqtozsiJjsiJkNCivqtozspJHri6wNCivqtoztmY3sl7ANCivqtozsi6DstpgNCivqtozqsr3si50NCivqtozspJHrjIANCivqtozsgrzsiJgNCivqtozsnqzshJ0NCivqtozsnKTsnbUNCivqtozspJHrjIANCivqtozsnqzshKANCivqtozsnqzrqoUNCivqtozrrLTshLENCivqtozspJHrp4wNCivqtozsiJzshJ0NCivqtozrj4jtmZgNCivqtozqs4Tsl7ANCivqtozspJHsg4ENCivqtozsooXstpwNCivqtozsnqXqtowNCivqtozrqoXsl7QNCivqtozspJHsg4ENCivqtozslYjsp4QNCivqtozsnITsnqwNCivqtoztmITsm5ANCivqtozspJHshJ0NCivqtozsirntkZwNCivqtozrjZXsnZENCivqtozrs5Hrk50NCivqtozspJHsl7QNCivqtozrs5Hqt6ANCivqtozshLHqsr0NCivqtozsmIHsnpANCivqtozspJHsl7QNCivqtozqsr3qsIENCivqtozsnqXstpwNCivqtozrtInsm4UNCivqtozspJHssqANCivqtoztj4nssqANCivqtoztmLjshJ0NCivqtozqsr3snbUNCivqtozspJHtmZQNCivqtozsmIHri6gNCivqtozqt7zspIANCivqtozrs7TsoJUNCivqtozsp4DsmIENCivqtozsiJzsooUNCivqtozqt4DsmrENCivqtozqs4TquLgNCivqtozsp4Tsg4ENCivqtozsmrDsnoQNCivqtozssqDssqANCivqtozsooXsi6ANCivqtozssKjrgqgNCivqtozstpjquLANCivqtozsiJjsl7QNCivqtozrgqjsl7ANCivqtozssKjsiKANCivqtozrtInsiJgNCivqtoztmITsl7QNCivqtozsooXsmqkNCivqtozssKjsl7ANCivqtozquLjsnbQNCivqtozsnqXsl7QNCivqtozrr7jsiJwNCivqtozssL3quLANCivqtozsoJXsm5QNCivqtozshJ3rk50NCivqtozsmrTroZ0NCivqtozssL3si50NCivqtoztnaXsnbQNCivqtozshLHtmLgNCivqtozsmIHsmrENCivqtozssL3tmZQNCivqtozsp4TrtIkNCivqtozsoJXrsLANCivqtozshLjsiJgNCivqtozstpjqtoENCivqtozsirnsmrQNCivqtozrr7zsmKUNCivqtozqsr3smrANCivqtozstpjsi50NCivqtozrrLjtkZwNCivqtozspIDtm4gNCivqtozssKjsnqwNCivqtozstpjsi50NCivqtozsg4Hsl7QNCivqtozsg4Hsi50NCivqtozshLHrsLANCivqtozstpjsmKQNCivqtoztlZzquLANCivqtozsg4Hqt7wNCivqtozsmIHsnoQNCivqtozstpjsnpANCivqtozsnYTrspQNCivqtozquIjsiJgNCivqtoztlbTrqqkNCivqtozstpjsnpANCivqtozsmIHtmLgNCivqtozspIDtmZQNCivqtozrs7XsiJgNCivqtozstpjsnpANCivqtozsjI3tlYQNCivqtozsooXshK0NCivqtozsmIHsl6wNCivqtozstpjtg5wNCivqtozsiJzqtawNCivqtoztlbTssqANCivqtozquLjtnawNCivqtozsuaDrp4wNCivqtozsooXsobANCivqtoztmZjsiJgNCivqtozqt7zrtIkNCivqtoztg5zqtIANCivqtozshozshLENCivqtozqsr3smKUNCivqtozsg4Hqt6ANCivqtoztg5zqtIANCivqtozrqoXtm4gNCivqtozsooXssqANCivqtozrqoXsiJkNCivqtoztg5zqta0NCivqtoztg5zqt5wNCivqtozsg4HsspwNCivqtozsnbjsiJgNCivqtoztg5zqt7wNCivqtozso7ztmLgNCivqtozsmqnrsLANCivqtozrp4ztmLgNCivqtoztg5zri6wNCivqtozrqoXqtawNCivqtozsmIHqtIANCivqtozsmIHstpwNCivqtoztg5zrj5kNCivqtozssL3sm4UNCivqtozrs5HssqANCivqtoztmLjsiJkNCivqtoztg5zsg50NCivqtozrjZXsnqwNCivqtozrgpzrrLgNCivqtoztnazrjZUNCivqtoztg5zsiJkNCivqtozsg4HshJ0NCivqtozsm5DslZQNCivqtoztlZnsmbgNCivqtoztg5zsiKANCivqtozrj5ntm4gNCivqtozrj5nrqoUNCivqtozsoJDtnawNCivqtoztg5zsi50NCivqtozsoJXtnawNCivqtoztg5zshJ0NCivqtozsnKTqt7wNCivqtoztg5zsi50NCivqtozsg4HquLANCivqtoztg5zsiJkNCivqtozrspTsnbgNCivqtoztg5zslZQNCivqtozsoJDshLENCivqtozsmIHshKANCivqtozshLHsgrwNCivqtoztg5zsmqkNCivqtozrtIntnaANCivqtozsi5zssqANCivqtozsnZjrk50NCivqtoztg5zsmrANCivqtozrs5HsmKUNCivqtozqsr3si50NCivqtozsiJjsl70NCivqtoztg5zsm5ANCivqtozsiJjqtIANCivqtozsoJXrtIkNCivqtozsnqzsnbwNCivqtoztg5zsnbwNCivqtozsmIHtnawNCivqtozrrLjtmZgNCivqtozspJHshJ0NCivqtoztg5zsoJUNCivqtoztg5ztmIQNCivqtozsirntm4gNCivqtozsmIHsm5ANCivqtoztg5zsooUNCivqtozsmIHsmIENCivqtozsnqztmZgNCivqtozsnqXrtIkNCivqtoztg5zssL0NCivqtoztmITsl7QNCivqtozsoJXrqoUNCivqtozruJ3rj4QNCivqtoztg5zssqANCivqtozshLHri6gNCivqtozshJ3smrENCivqtozsg4HrtoQNCivqtoztg5zssqANCivqtozsoJXqsJENCivqtozroZ3siJgNCivqtoztmITsnbQNCivqtoztg5ztl4wNCivqtozrrLTshLENCivqtozspJHqt7wNCivqtozsmIHshK0NCivqtoztg5ztmY0NCivqtozrp4zsnbwNCivqtozsoJXrp4wNCivqtozsmIHtmZQNCivqtoztg5ztnJgNCivqtozsmrDqtawNCivqtozquLDsgrANCivqtozssKzsi50NCivqtoztg5ztnawNCivqtozsooXrj5kNCivqtozsmIHqsbQNCivqtozsspzsmqkNCivqtoztg53sooUNCivqtozrs5Hrp4wNCivqtozspIDsnqwNCivqtozrqqjrj4QNCivqtoztjJDsiJwNCivqtozsmqnsl7ANCivqtozstqnsiJgNCivqtozsmIHsi50NCivqtoztlbTssqANCivqtoztg5zsmqkNCivqtoztg5zssqANCivqtozsnqzsp4QNCivqtoztmIHrj5kNCivqtozsmIHslpENCivqtozsjI3soJUNCivqtozrrLTshK0NCivqtoztmIHrpaANCivqtozqsr3stpgNCivqtozsm5DsgrwNCivqtozsoJXquLANCivqtoztmIHsmrANCivqtoztmITtmLgNCivqtozsnqXsoJwNCivqtozslpHsm5ANCivqtoztmIHsnbwNCivqtozqsr3sobANCivqtozsmqnsiJwNCivqtozsjI3tlZgNCivqtoztmIHsooUNCivqtozsp4Tsi6ANCivqtoztnazshKANCivqtozshLHssqANCivqtoztmIHtg5wNCivqtoztmJXsi50NCivqtozsgrzsnpANCivqtozrp5DsiJkNCivqtoztmIHtmLgNCivqtozrs7XrnpgNCivqtozsm5DqtawNCivqtozsnbzsiJwNCivqtoztmIHtm4gNCivqtozsooXrj5kNCivqtozsg4HtnawNCivqtozquLDsiJwNCivqtoztmITsiJwNCivqtozsooXtmIQNCivqtozshozsobANCivqtozshJ3smqkNCivqtoztmY3quLANCivqtozrs5HsspwNCivqtozshJ3quLANCivqtozqtZDrnpgNCivqtoztmY3quLANCivqtozsiJzshK0NCivqtozsoJDquLgNCivqtozsnqztmLgNCivqtoztmZTsnpANCivqtozshLHsiJwNCivqtoztlbTrgqgNCivqtozqtazssKgNCivquIjquLDsiJkNCivquIjshLHsiJgNCivquIjqsr3shLgNCivquIjquIjqt7wNCivquIjshLjtmZgNCivquIjsmIHsmqkNCivquIjqsr3qta0NCivquIjsoJXso7wNCivquIjsnoTrhYQNCivquIjqt7zsmrANCivquIjtg5ztnawNCivquIjsiJzsmrANCivquIjsnqztmIQNCivquIjrp5DstpwNCivquIjtmLjsiJgNCivquIjrhbjtnawNCivquIjsnqztmLgNCivquIjsnqztmZgNCivquIjrs5HsiJwNCivquIjrs5HsiJwNCivquLDqtJHshK0NCivquLDqt4DrtIkNCivquLDsnqzslpENCivquLDrj5nsiJwNCivquLDqtJHshK0NCivquLDshLHqt7wNCivquLDtmITtnawNCivquLDsnqztmZQNCivquLDqtJHshK0NCivquLDsmIHshKANCivquLDsi5zshKANCivquLDshJ3tmLgNCivquLDqtozshK0NCivquLDsoJXrqqgNCivquLDshKDsoJwNCivquLDsp4Tqs6QNCivquLDrgqjshK0NCivquLDsp4TsnoQNCivquLDsmqnsiJwNCivquLDshLHtmY0NCivquLDrp5DsnoQNCivquLDsooXqt7wNCivquLDtg5ztnJgNCivquLDsg4HspIANCivquLDrrLTshK0NCivquLDsnqzsnqwNCivquLDrrLTtl4wNCivquLDshozrjIANCivquLDrspTshJ0NCivquLDshLHrspQNCivquLDsoJDsg50NCivquLDslrjsiJwNCivquLDshLHtmIQNCivquLDsnbjrj4wNCivquLDsnoTsp4ANCivquLDsoJXshKANCivquLDshLjqta0NCivquLDsirnrtIkNCivquLDssqDtm4gNCivquLDssqDshK0NCivquLDshLjroZ0NCivquLDrjIDtg5wNCivquLDsoJXshJ0NCivquLDsnKTqsr0NCivquLDshLjroZ0NCivquLDssL3tmIQNCivquLDsooXrj4QNCivquLDsoJXshLENCivquLDshLjrrLgNCivquLDshLHspJENCivquLDsg4HsiJwNCivquLDsmrHsobANCivquLDshLjspIANCivquLDsg4HsspwNCivquLDrjZXsgrANCivquLDrtoTqtJENCivquLDsi6Dqta0NCivquLDsmqnsiJgNCivquLDqt7zslYUNCivquLDso7ztm4gNCivquLDsmrDqt7wNCivquLDrr7jsmrANCivquLDrs5HtmIQNCivquLDsooXsiJgNCivquLDsmrDri6wNCivquLDsmIHsnKQNCivquLDqt5zrjIANCivquLDrj5ntlZgNCivquLDsmrDrtIkNCivquLDrs5HshJ0NCivquLDrrLTtmIQNCivquLAg7JuQDQor6riw7Jqw67aEDQor6riw7LC96rOkDQor6riw7KKF6raMDQor6riw7YOc7Z2sDQor6riw7Jqw7IicDQor6riw7Z2s7YOcDQor6riw7JuU7KeEDQor6riw66qF6rOkDQor6riw7Jqw7KKFDQor6riw64us7JewDQor6riw64W464+MDQor6riw7JiB7IiZDQor6riw7Jqw7KO8DQor6riw7Jil656ADQor6riw7ZW07KGwDQor6riw7IiY7LacDQor6riw7Jqw7LKgDQor6riw7KKF7JqxDQor6riw7KKF66GADQor6riw64+Z7KSADQor6riw7Jqw7ZW0DQor6riw64yA7JuQDQor6riw7YyQ7ISdDQor6riw7IK87ISdDQor6riw7J247ZiEDQor6riw7Jqx6recDQor6riw7KKF7JqwDQor6riw7IK87KeEDQor6riw7J247Z2sDQor6riw7KO87KGwDQor6riw7YyQ6rWtDQor6riw7KKF7KeEDQor6riw7J287ISgDQor6riw7ISx7JqpDQor6riw7ZmN7JqpDQor6riw7J2A6ri4DQor6riw7KCQ7ZmYDQor6riw7KCQ7JqpDQor6riw6rK97JiBDQor6riw7KeE7IudDQor6riw7KCV7IStDQor6riw7ZWZ7ISdDQor6riw7KSA65OdDQor6riw7ISx7Z2sDQor6riw7KKF7ISdDQor6riw7YOc7IOdDQor6riw7J6s7ISgDQor6riw7JmE66+4DQor6riw7KSA7ISdDQor6riw7Jyg67SJDQor6riw67OR6recDQor6riw7KKF7ZiEDQor6riw7KeE7JewDQor6riw7Iq57JeFDQor6riw7LaY7Je0DQor6riw6riw7KO8DQor6riw7LKt6ri4DQor6riw7ISg7Zi4DQor6riw7YyQ7Zi4DQor6riw7Jil7IudDQor6riw7ZaJ64KoDQor6riw7KeE7LacDQor6riw64+E7KKFDQor6riw6re86rOkDQor6riw7Zqo7JewDQor6riw64K07Jq0DQor6riw7KeE7LacDQor6riw7KeE7Je0DQor6riw7Z2s7ISdDQor6riw7KCV7LKcDQor6riw7YOc67O1DQor6riw7Iah7YOcDQor6ri47ISd7ZmYDQor6ri47J287JuQDQor6ri47Iq57KeEDQor6ri466qF7KGwDQor6rmAIOuTsQ0KK+q5gOqwkeyEoA0KK+q5gOydmOyImA0KK+q5gOyYpOyXtA0KK+q5gCDshLENCivquYDrgqjsiJgNCivquYDqs6Hrs7UNCivquYDrqoXsmYQNCivquYAg7ISxDQor6rmA7JiB7JilDQor6rmA64+Z6re8DQor6rmA6rSR6recDQor6rmAIOyaqQ0KK+q5gOyIoOuPmQ0KK+q5gOq4sOy2mA0KK+q5gOq4sOyaqQ0KK+q5gCDsm5ANCivquYDsiJzrrLUNCivquYDrgqjqtZANCivquYDtnaztm4gNCivquYAg7JykDQor6rmA6rSR6riwDQor6rmA7LKg7J6QDQor6rmA7Jik6rOkDQor6rmAIOyduA0KK+q5gOyiheq4uA0KK+q5gOyEse2YhA0KK+q5gO2DnOunjA0KK+q5gCDssq0NCivquYDsmqnshLENCivquYDsnqzsspwNCivquYDsmIHtmZgNCivquYAg7ZiBDQor6rmA7Jew7J28DQor6rmA66+47Z2gDQor6rmA7ZmU6riwDQor6rmAIO2YhA0KK+q5gOyKueuemA0KK+q5gOyWte2YuA0KK+q5gOykke2YlQ0KK+q5gCDtmLgNCivquYDquLDrgqgNCivquYDrqoXqs6QNCivquYDsmrTrj5kNCivquYAg7ZuIDQor6rmA7ISd7JqpDQor6rmA7J287JqpDQor6rmA7JiB7LKgDQor6rmA6rCA7Z2sDQor6rmA7ZW06rK9DQor6rmA67SJ7LKgDQor6rmA7KCV7J6QDQor6rmA6rCB7KSRDQor6rmA7J6s65GQDQor6rmA7LaY7IiYDQor6rmA7LKt7Zy0DQor6rmA6rCR66OhDQor6rmA7ISx66qoDQor6rmA7LaY7IudDQor6rmA6rCR7ZmYDQor6rmA6rCR66eMDQor6rmA7KKF7JilDQor6rmA7KKF7IudDQor6rmA7Zic6rCRDQor6rmA6rCR66y4DQor6rmA642V66GdDQor6rmA66qF7KeBDQor6rmA6rec7YOcDQor6rmA6rCR7IOdDQor6rmA7Jyk7IudDQor6rmA67OR7KCVDQor6rmA7KKF64KoDQor6rmA6rCR7IiYDQor6rmA7KeE7ISdDQor6rmA7Iic6regDQor6rmA7Z2s7ZmYDQor6rmA6rCR7IiYDQor6rmA6rK97KSRDQor6rmA7JiB7IiYDQor6rmA7ZW07LKgDQor6rmA6rCR7IicDQor6rmA67OR7Zi4DQor6rmA7J246rWsDQor6rmA6riw7IK8DQor6rmA6rCR7JewDQor6rmA7ZmY64+ZDQor6rmA642V66qoDQor6rmA7IOB7JiBDQor6rmA6rCR7KO8DQor6rmA6rK97KCVDQor6rmA7LC97Z2gDQor6rmA7J6s7Jq0DQor6rmA6rCR7KSADQor6rmA7JiB66qoDQor6rmA7ZWE6recDQor6rmA7Iic7ZWZDQor6rmA6rCR7KeEDQor6rmA7J6l7ZiEDQor6rmA7YOc7IiYDQor6rmA7Jik67KUDQor6rmA6rCR7KeEDQor6rmA65GQ6ri4DQor6rmA7Jew7ZWEDQor6rmA6rK97IicDQor6rmA6rCR7ZiEDQor6rmA7KKF7J6QDQor6rmA7YOc7Zi4DQor6rmA7KKF7IudDQor6rmA6rCV642VDQor6rmA7Z2l7JuQDQor6rmA7JuQ7LaYDQor6rmA7J247JikDQor6rmA6rCV7IiYDQor6rmA7KO87J6QDQor6rmA7IOB7ZmYDQor6rmA7ZiE66a8DQor6rmA6rCV7IudDQor6rmA66+47IiYDQor6rmA7YyQ7Zi4DQor6rmA6rK97IiYDQor6rmA6rCV7ZaJDQor6rmA6rSR7ZGcDQor6rmA7JiB7ZiEDQor6rmA7Zic64uIDQor6rmA6rCV7Zi4DQor6rmA66y07ZiEDQor6rmA67O07Z2sDQor6rmA7LC97Zi4DQor6rmA6rCV7ZmUDQor6rmA7LaY7JiBDQor6rmA7KeE7JewDQor6rmA7JeF7J6QDQor6rmA6rCc7ISgDQor6rmA7Zqo7KGwDQor6rmA7ISx7LKgDQor6rmA67O07JykDQor6rmA6rG06rCcDQor6rmA67OR67SJDQor6rmA7Zi47IigDQor6rmA7J6s7J28DQor6rmA6rG06riwDQor6rmA7Jqp7IiYDQor6rmA7ISg7IOBDQor6rmA7ISx6ri4DQor6rmA6rG0642VDQor6rmA7ISd7J24DQor6rmA7KCB64+EDQor6rmA7J6s7LKcDQor6rmA6rK96rWsDQor6rmA7LKg7IiYDQor6rmA7Jqp66WgDQor6rmA7IOB7IiYDQor6rmA6rK964+EDQor6rmA7KSA7KO8DQor6rmA6re87JiBDQor6rmA7ISx7JuQDQor6rmA6rK9656ADQor6rmA7J2A7Jq0DQor6rmA7J6s7JewDQor6rmA64yA7IudDQor6rmA6rK966GADQor6rmA64us7Zi4DQor6rmA7IS47ZmNDQor6rmAIOyImA0KK+q5gOqyveunjA0KK+q5gOyEseydvA0KK+q5gOuNleyaqQ0KK+q5gOyEneyImQ0KK+q5gOqyveyDgQ0KK+q5gOunjO2DnA0KK+q5gOyepeyImA0KK+q5gOuqhe2ZlA0KK+q5gOqyveyEnQ0KK+q5gOyiheyImA0KK+q5gOyImOyglQ0KK+q5gOq3nO2YhA0KK+q5gOqyveyImA0KK+q5gOyihe2YuA0KK+q5gOybkOugqA0KK+q5gOyYge2ZlA0KK+q5gOqyveyImA0KK+q5gOyaqeyImA0KK+q5gOyYgeyImA0KK+q5gOyiheyImA0KK+q5gOqyveyImA0KK+q5gOyihe2DnQ0KK+q5gOyEseyEoA0KK+q5gOuPmeyaqQ0KK+q5gOqyveyImA0KK+q5gOyekeq1kA0KK+q5gOyYgeq3nA0KK+q5gOq0keqyrA0KK+q5gOqyveyImA0KK+q5gOq1kOyhsA0KK+q5gOyduOuNlQ0KK+q5gOq2jOykgA0KK+q5gOqyveyImQ0KK+q5gOyYgeyekA0KK+q5gO2DnOybkA0KK+q5gO2DnO2YhA0KK+q5gOqyveyLnQ0KK+q5gOyihe2YuA0KK+q5gOyaqeyInA0KK+q5gOyerOyekA0KK+q5gOqyveyVlA0KK+q5gOq1req1sA0KK+q5gOycpOyhsA0KK+q5gO2MkO2YuA0KK+q5gOqyveyVoA0KK+q5gOuRkOuNlQ0KK+q5gOqwke2ZqQ0KK+q5gOuPme2YuA0KK+q5gOqyveyVoA0KK+q5gOyjvO2VhA0KK+q5gOustOq4iA0KK+q5gOyDge2YuA0KK+q5gOqyveyYpA0KK+q5gOqyveycpA0KK+q5gOuzteuztQ0KK+q5gO2XjOyerA0KK+q5gOqyveyYpA0KK+q5gOyWuOyEoA0KK+q5gOydvOybhQ0KK+q5gOustO2drA0KK+q5gOqyveyYpQ0KK+q5gO2DnOq2jA0KK+q5gOyYgeq0gA0KK+q5gO2VmOyyoA0KK+q5gOqyveyasA0KK+q5gOyImOy2nA0KK+q5gOycpOyekA0KK+q5gOyLnOq3nA0KK+q5gOqyveybkA0KK+q5gO2DnO2MlA0KK+q5gO2MlOyDgQ0KK+q5gOq0ke2YhA0KK+q5gOqyveybkA0KK+q5gOycpOuztQ0KK+q5gOygleu2hA0KK+q5gOyEseyYpA0KK+q5gOqyveyduA0KK+q5gOyerOyEoA0KK+q5gOyEseuNlQ0KK+q5gOuLrOq3oA0KK+q5gOqyveyekA0KK+q5gO2ZlOuTnQ0KK+q5gOyYgeyasA0KK+q5gOq0keydtA0KK+q5gOqyveyekA0KK+q5gOyEneyerA0KK+q5gOusuOyDnQ0KK+q5gOybkO2YhA0KK+q5gOqyveyekA0KK+q5gOyerOybkA0KK+q5gOy5oO2YhA0KK+q5gO2YhOyInA0KK+q5gOqyveyekA0KK+q5gOyEuO2drA0KK+q5gOuzke2YuA0KK+q5gOyerOyaqQ0KK+q5gOqyveyerA0KK+q5gOyerOq0gA0KK+q5gOuvuO2ZjQ0KK+q5gOyihe2YuA0KK+q5gOqyveyhsA0KK+q5gOyihe2VmQ0KK+q5gOuzuOyYgQ0KK+q5gOyEuOyasA0KK+q5gOqyveyhsA0KK+q5gOuqheyImA0KK+q5gOyYgeyEoA0KK+q5gOyehOuPjA0KK+q5gOqyveyihQ0KK+q5gOynhOyduA0KK+q5gOynhOuPmQ0KK+q5gOyDge2DnA0KK+q5gOqyve2DnA0KK+q5gOydvOyEnQ0KK+q5gOq1re2DnQ0KK+q5gOykke2ZmA0KK+q5gOqyve2DnA0KK+q5gOyyoO2drA0KK+q5gOyInO2drA0KK+q5gOyDgeq3vA0KK+q5gOqyve2DnA0KK+q5gOuPmeuylA0KK+q5gOyWkeq4sA0KK+q5gOyImOyDnQ0KK+q5gOqyve2DnA0KK+q5gOyDgeqzhA0KK+q5gOyDgeuPmQ0KK+q5gOyerOqzpA0KK+q5gOqyve2MlA0KK+q5gOyDgeynhA0KK+q5gOyXrOyEnQ0KK+q5gOyiheyatA0KK+q5gOqyve2YuA0KK+q5gOyerO2DnQ0KK+q5gOyerOy2nA0KK+q5gOyjvOyImA0KK+q5gOqyve2YuA0KK+q5gOywveyjvA0KK+q5gOyYgeykgA0KK+q5gOuRkO2YuA0KK+q5gOqyve2YuA0KK+q5gOy2mOq3nA0KK+q5gOqyveyInA0KK+q5gOyLnO2VnA0KK+q5gOqyve2ZmA0KK+q5gO2Vme2DnQ0KK+q5gOyerOy2nA0KK+q5gO2DnO2YhA0KK+q5gOqyve2ZmA0KK+q5gOyaqeyLpA0KK+q5gOq0keyngA0KK+q5gOunieyInA0KK+q5gOqyve2drA0KK+q5gOydvOyImA0KK+q5gOygleyYgQ0KK+q5gOy2mOyImQ0KK+q5gOqyve2drA0KK+q5gOyYgeyaqQ0KK+q5gO2DnOyViA0KK+q5gO2VhOyVoA0KK+q5gOqyve2drA0KK+q5gOykgOuwqQ0KK+q5gOyerO2ZmA0KK+q5gOy+jOq3vA0KK+q5gOqyve2drA0KK+q5gOuLrOyhsA0KK+q5gO2YhOq3nA0KK+q5gOyaqeybkA0KK+q5gOqyve2drA0KK+q5gOustOyImA0KK+q5gOyGjOyekA0KK+q5gOu0ieyasQ0KK+q5gOqyve2drA0KK+q5gOyYgeq1rQ0KK+q5gOyDgeuPmQ0KK+q5gOyerOyekA0KK+q5gOqzhOycpA0KK+q5gOyDgeyInA0KK+q5gOygleyLnQ0KK+q5gOygleyVlA0KK+q5gOqzhO2DnQ0KK+q5gOyiheydvA0KK+q5gOynhOq3uQ0KK+q5gOyEseyasA0KK+q5gOqzhO2VnA0KK+q5gOykkeyekA0KK+q5gOydgO2ZjQ0KK+q5gOyYge2YuA0KK+q5gOqzhO2YuA0KK+q5gOydvOyaqQ0KK+q5gOygleyErQ0KK+q5gOyerOyEoA0KK+q5gOqzteyjvA0KK+q5gOybkOyLnQ0KK+q5gOyInOyyoA0KK+q5gOq4sO2ZmA0KK+q5gOq0gOuRkA0KK+q5gOygkO2drA0KK+q5gOyaqeynhA0KK+q5gOywqOyImA0KK+q5gOq0gOyYgQ0KK+q5gO2YuO2ZmA0KK+q5gO2YuO2VmA0KK+q5gOybkO2doA0KK+q5gOq0gOyasA0KK+q5gOykke2YlQ0KK+q5gOyEoOyEnQ0KK+q5gOustOuPmQ0KK+q5gOq0gOydtA0KK+q5gOyEneq4sA0KK+q5gOyLoOuPhA0KK+q5gOynhO2VmA0KK+q5gOq0keqzpA0KK+q5gOyImOyXvQ0KK+q5gOyaqeybhQ0KK+q5gOyInOyImQ0KK+q5gOq0keq3nA0KK+q5gO2drO2ZmA0KK+q5gOq4sO2dpQ0KK+q5gOq1rOuPhA0KK+q5gOq0keuNlQ0KK+q5gOq4uOq3vA0KK+q5gOygleq2jA0KK+q5gOyerOyXtA0KK+q5gOq0keuPmQ0KK+q5gOyjvO2DnQ0KK+q5gOustO2drA0KK+q5gOydgOq1rA0KK+q5gOq0keuRkA0KK+q5gOygle2drA0KK+q5gOyerOq2jA0KK+q5gOq0keyaqQ0KK+q5gOq0keyEnQ0KK+q5gOywveyKuQ0KK+q5gOyKueuFgA0KK+q5gOyDgeyLnQ0KK+q5gOq0keyEnQ0KK+q5gOuzkeyyoA0KK+q5gOyYgeuPmQ0KK+q5gOyjvOyekA0KK+q5gOq0keyImA0KK+q5gOuPmeq4uA0KK+q5gOuPhOu0iQ0KK+q5gOyerOyyoA0KK+q5gOq0keyImA0KK+q5gO2DnOyEnQ0KK+q5gOyWkeyLnQ0KK+q5gOuPhOqyvQ0KK+q5gOq0keyImA0KK+q5gOyEseyImA0KK+q5gOy2mOyasA0KK+q5gOu2hOyhsA0KK+q5gOq0keyImA0KK+q5gOygleyIoA0KK+q5gOq0ke2ZlA0KK+q5gO2ZlO2YuA0KK+q5gOq0keyImA0KK+q5gOq3ueyatA0KK+q5gOu2hO2ZmA0KK+q5gOuRkO2YuA0KK+q5gOq0keyImA0KK+q5gO2VtO2PrA0KK+q5gOynhOyLnQ0KK+q5gOuhneuTnQ0KK+q5gOq0keyImA0KK+q5gOuzkeyImA0KK+q5gOyEseqyvQ0KK+q5gOyyoO2biA0KK+q5gOq0keyLnQ0KK+q5gOq4iO2ZmA0KK+q5gOyerOyLnQ0KK+q5gOydvO2YhA0KK+q5gOq0keyXsA0KK+q5gOuPmeyyoA0KK+q5gOyerOyImA0KK+q5gOqwleq4sA0KK+q5gOq0keyXsA0KK+q5gOykgO2ZlA0KK+q5gOuNleyhsA0KK+q5gOyEseuemA0KK+q5gOq0keyXtA0KK+q5gOuzkeyasA0KK+q5gOqyveq3nA0KK+q5gOy2mOyerA0KK+q5gOq0keyXtA0KK+q5gO2YleyErQ0KK+q5gOuLrOu5iA0KK+q5gOyEseu0iQ0KK+q5gOq0keyXvQ0KK+q5gOyYgeq3oA0KK+q5gOyEseybkA0KK+q5gOyInOugqA0KK+q5gOq0keyYgQ0KK+q5gOqwkeyjvA0KK+q5gO2WieyyoA0KK+q5gOywqOq4uA0KK+q5gOq0keyYgQ0KK+q5gOq3nOyatA0KK+q5gOygle2YuA0KK+q5gOyerOyImA0KK+q5gOq0keyYgQ0KK+q5gOykgOyLnQ0KK+q5gO2DnOydtA0KK+q5gOyaqeu2hA0KK+q5gOq0keyasA0KK+q5gOqyveyImA0KK+q5gOq4sOqzpA0KK+q5gOyjvOuMgA0KK+q5gOq0keybhQ0KK+q5gOyasOyehA0KK+q5gOyasO2ZjQ0KK+q5gOyYgeyErQ0KK+q5gOq0keybhQ0KK+q5gOqwkeyekA0KK+q5gOqxtOyImA0KK+q5gO2drOyhsA0KK+q5gOq0keybhQ0KK+q5gOuvvOy5oA0KK+q5gOyGjOyImA0KK+q5gO2drO2aqA0KK+q5gOq0keybhQ0KK+q5gOqyveyImA0KK+q5gOq0keq3vA0KK+q5gOyaqeuhnQ0KK+q5gOq0keycpA0KK+q5gOyWkeyxhA0KK+q5gOydvOyEnQ0KK+q5gOynhO2ZmA0KK+q5gOq0keydvA0KK+q5gOqwkeykkQ0KK+q5gO2YuOyImA0KK+q5gOygleuqqQ0KK+q5gOq0keydvA0KK+q5gOyDgeyasA0KK+q5gOyerOyyoA0KK+q5gOq4sOyImA0KK+q5gOq0keyhsA0KK+q5gO2DnOuwsA0KK+q5gOyduOyaqQ0KK+q5gOqyveyInA0KK+q5gOq0keynhA0KK+q5gO2DnOyImA0KK+q5gOyYpOyZhA0KK+q5gOqxtOuPhA0KK+q5gOq0ke2DnQ0KK+q5gOyCvOyImA0KK+q5gOqyveyngQ0KK+q5gO2aqOyVlA0KK+q5gOq0ke2DnQ0KK+q5gOq4sO2ZlA0KK+q5gOywrO2YhA0KK+q5gOyImOyEoA0KK+q5gOq0ke2YhA0KK+q5gOuPmeyaqQ0KK+q5gOyEuO2ZmA0KK+q5gOyerOyatA0KK+q5gOq0ke2YuA0KK+q5gOuFuOuvvA0KK+q5gOyaqeyImA0KK+q5gOyInOuFhA0KK+q5gOq0ke2YuA0KK+q5gOqyveyasA0KK+q5gOyihe2WpQ0KK+q5gOustOyImA0KK+q5gOq0ke2ZlA0KK+q5gOygle2YuA0KK+q5gOyyoO2VmQ0KK+q5gOqwleuPiA0KK+q5gOq0ke2ajA0KK+q5gOyXsOyatA0KK+q5gOyehOq2jA0KK+q5gOyEseyhsA0KK+q5gOq0ke2aqA0KK+q5gOuqheyKuQ0KK+q5gOydvOybhQ0KK+q5gOunkO2YuA0KK+q5gOq0ke2drA0KK+q5gOyEoOyasA0KK+q5gOyInOq4uA0KK+q5gO2VtOyCvA0KK+q5gOq1kOudvQ0KK+q5gOyYgeybkA0KK+q5gOyEne2ZmA0KK+q5gOydvOyjvA0KK+q5gOq1kOyInA0KK+q5gOuMgOyXtA0KK+q5gOyYgeyErQ0KK+q5gCDsl7QNCivquYDqtZDspIANCivquYDqt7zso7wNCivquYDsg4Hrj4QNCivquYDquLDrsLANCivquYDqtZDspIANCivquYDtlZzqt5wNCivquYDsooXssqANCivquYDspJHqtIANCivquYDqtZDtg5wNCivquYDtlZzrrLgNCivquYDsmIHsi50NCivquYDquLDshJ0NCivquYDqtZDtnawNCivquYDssKjsl7QNCivquYDsmIHtmLgNCivquYDqsr3quLANCivquYDqtazrtIkNCivquYDshKDqt5wNCivquYDsp4Tsi50NCivquYDsmqnrjZUNCivquYDqtaztmIQNCivquYDsnbTsmrANCivquYDsm5Dqt7wNCivquYDsooXsm4UNCivquYDqtaztmIQNCivquYDqtJHsi50NCivquYDsg4HssqANCivquYDrs7XrqqkNCivquYDqta3rj5kNCivquYDstpjsg4ENCivquYDrp4zqt7wNCivquYDrs5HshKANCivquYDqta3rj5kNCivquYDrj4TsiJgNCivquYDshLHso7wNCivquYDquLDtl4wNCivquYDqtbDrgqgNCivquYDrp4zsiJgNCivquYDsooXsmrENCivquYDsmIHshKANCivquYDqtbDsnpANCivquYDsnKTsnpANCivquYDsmIHrs7UNCivquYDrtInshKQNCivquYDqtozsi50NCivquYDsiJzsnqwNCivquYDtlYTsnpANCivquYDrjZXtlqUNCivquYDqt4DqtIANCivquYDsi6DtlZkNCivquYDquLDshKANCivquYDssqDsnYANCivquYDqt4DrgqgNCivquYDsg4Hsl7QNCivquYDtnazsmIENCivquYDsnbzsl7ANCivquYDqt4DrjZUNCivquYDsoJDrqqgNCivquYDsmqnrgpwNCivquYDquLjstpQNCivquYDqt4DshKANCivquYDtnazsnpANCivquYDsg4HshLENCivquYDqt5zsiJgNCivquYDqt4DsiJwNCivquYDsnqztmIQNCivquYDshJztmZgNCivquYDsirntlqUNCivquYDqt4Dsl7ANCivquYDsmIHsmqkNCivquYDtg5zsi50NCivquYDsg4HtmIQNCivquYDqt4Dsl7ANCivquYDsoJXsiJwNCivquYDsmbjqta0NCivquYDsnbztmLgNCivquYDqt4Dsl7QNCivquYDqsbTtmZgNCivquYDsoJXtmLgNCivquYDssL3sooUNCivquYDqt4DsmqkNCivquYDsp4TtmLgNCivquYDrs5HssqANCivquYDso7zsnpANCivquYDqt4DsobANCivquYDsoJXrgqgNCivquYDquLDsmKUNCivquYDsnZjsiJgNCivquYDqt5zrjIANCivquYDssqDsiJgNCivquYDrrLjso7wNCivquYDsmqnqt7wNCivquYDqt5zrsLANCivquYDsmIHtnLQNCivquYDspJHsiJgNCivquYDsgrzsi50NCivquYDqt5zsg4ENCivquYDtg5zshKwNCivquYDspIDsl7QNCivquYDqt5ztg50NCivquYDqt5zshK0NCivquYDsmIHsobANCivquYDrj5nqt5wNCivquYDsnqzrtoQNCivquYDqt5zshK0NCivquYDsg4HsiJgNCivquYDsi6Tsm5ANCivquYDsmIHsnKgNCivquYDqt5zshLENCivquYDrhbjshK0NCivquYDtmY3tmIQNCivquYDqtJHssqANCivquYDqt5zsmIENCivquYDsmqnsiJgNCivquYDshLjqtoENCivquYDrs5HsiJgNCivquYDqt5zsmrANCivquYDsmIHstpwNCivquYDtjJTqta0NCivquYDtmY3siJgNCivquYDqt5zsmrENCivquYDsnbjsmIENCivquYDsm5Dsp4QNCivquYDsm5DrrLgNCivquYDqt5zssqANCivquYDsmqnsnpANCivquYDquLDsiJgNCivquYDtlbTsl7ANCivquYDqt5zssqANCivquYDsi6DtmZgNCivquYDsirnsmqkNCivquYDsoJXqtowNCivquYDqt5zssqANCivquYDsooXrrLQNCivquYDso7zqt7wNCivquYDtg5ztmIQNCivquYDqt5zssqANCivquYDssL3qtowNCivquYDtlbTquLANCivquYDtmLjsi50NCivquYDqt5ztg5wNCivquYDsg4Hsl7QNCivquYDsmqnsmrANCivquYDshJ3tjJQNCivquYDqt5ztg5wNCivquYDqta3rjZUNCivquYDsnbTsnqwNCivquYDtmITsi50NCivquYDqt5ztmIQNCivquYDsmIHslYUNCivquYDtmLjsiJgNCivquYDspIDtmIQNCivquYDqt5ztmIQNCivquYDrspTqt7wNCivquYDsnqzqt7wNCivquYDshLHtmakNCivquYDqt5ztmIQNCivquYDrtInsi50NCivquYDrj5ntmLgNCivquYDsg4HsmIENCivquYDqt5ztmZgNCivquYDrr7jsp4QNCivquYDsiJjsiJgNCivquYDsmqnshKANCivquYDqt5ztnawNCivquYDrqoXrnb0NCivquYDssKjshKANCivquYDrkZDtmIQNCivquYDqt7zsg50NCivquYDrj5nrj4QNCivquYDtlZnshJ0NCivquYDqtJHsobANCivquYDqt7zsi50NCivquYDsoJXtmIQNCivquYDslaDrs7UNCivquYDsnqztmLgNCivquYDqt7zsi50NCivquYDsg4HqtZANCivquYDqta3rk50NCivquYDsnqzsnbUNCivquYDqt7zspJENCivquYDsp4Dtg5wNCivquYDsnKTqta0NCivquYDrtInsmrQNCivquYDqt7ztmLgNCivquYDsg4HsnqwNCivquYDsiJzrrLgNCivquYDsiJzsmIENCivquYDqt7ztmLgNCivquYDtmJzso7wNCivquYDsmIHsl7QNCivquYDtjJDsiJgNCivquYDquIjrgpwNCivquYDqtJHsmrANCivquYDqsr3rj4QNCivquYDqsr3siKANCivquYDquIjrs7QNCivquYDrhbjrj4QNCivquYDsoJXsoJwNCivquYDsmIHshLENCivquYDquIjshJ0NCivquYDtmZjtmIQNCivquYDrqoXsmrENCivquYDtlZzsm4UNCivquYDquIjshKANCivquYDsg4Hsi50NCivquYDquIjsmIENCivquYDtlbTtmZgNCivquYDquIjsiJwNCivquYDssKjssqANCivquYDshozsmKUNCivquYDtmY3rtIkNCivquYDquIjsiJwNCivquYDsg4HsoJwNCivquYDtnaztmZgNCivquYDsmIHsiJgNCivquYDquIjsiJwNCivquYDsooXslYUNCivquYDrqoXsl7QNCivquYDtg5ztmJUNCivquYDquIjsl7ANCivquYDsmqntmZgNCivquYDsnKTsmqkNCivquYDshLHrs7QNCivquYDquIjsl7ANCivquYDsmqntmLgNCivquYDrp4zsspwNCivquYDtlZnso7wNCivquYDquIjsmKUNCivquYDslaDshLENCivquYDsoJXsoJUNCivquYDtmY3smrANCivquYDquIjsmKUNCivquYDquLDshJ0NCivquYDrp4zrp4wNCivquYDsmqnsl7QNCivquYDquIjsmqkNCivquYDtg4DsnbwNCivquYDsuZjrtIkNCivquYDqtJHsnbwNCivquYDquIjsnbQNCivquYDqsr3qt7wNCivquYDsm5Dsp4QNCivquYDstpjsiJgNCivquYDquIjsnbQNCivquYDstpjsi50NCivquYDsnqzsg4ENCivquYDrspTqta0NCivquYDquIjsnbQNCivquYDsiJjqt5wNCivquYDsmrDtjJQNCivquYDsg4Hqt6ANCivquYDquIjsnpANCivquYDrtoTrj5kNCivquYDso7zsnbQNCivquYDtlbTqt5wNCivquYDquIjsnpANCivquYDqt7ztmIQNCivquYDshKDtlZkNCivquYDtlbTtmZgNCivquYDquIjtlZgNCivquYDsnbjtmJUNCivquYDtmqjshKANCivquYDsnYTtmakNCivquYDquI3tmLgNCivquYDssL3rk50NCivquYDsp4TsobANCivquYDqt5zrj4wNCivquYDquLDqs6ANCivquYDrj4jrsLANCivquYDrrLjsooUNCivquYDsnbjtlZgNCivquYDquLDqt6ANCivquYAg7ZmYDQor6rmA7YOc6rOkDQor6rmA7J6s7ZmYDQor6rmA6riw6regDQor6rmA7JiB7JuFDQor6rmA7ZW07J24DQor6rmA7IK87JikDQor6rmA6riw64WEDQor6rmA66y47J6QDQor6rmA7JiB7ISgDQor6rmA6rSR6recDQor6rmA6riw64WEDQor6rmA64+Z7J6QDQor6rmA7JiB67KUDQor6rmA67SJ7IicDQor6rmA6riw64WEDQor6rmA7J2467KUDQor6rmA6rCV7IicDQor6rmA7ZaJ7LKgDQor6rmA6riw642VDQor6rmA6riI7Jq0DQor6rmA7KCV7ZmYDQor6rmA7ZWE6riwDQor6rmA6riw642VDQor6rmA6rK97JqpDQor6rmA7ZmN7IiZDQor6rmA64+Z7IiYDQor6rmA6riw642VDQor6rmA6rK96regDQor6rmA65GQ7JilDQor6rmA7KCV7IStDQor6rmA6riw64+EDQor6rmA7J6s7Zi4DQor6rmA7JuQ7ZWcDQor6rmA7ZmN7J6QDQor6rmA6riw66+4DQor6rmA6rOh66eMDQor6rmA7J247J6sDQor6rmA7JWU7KO8DQor6rmA6riw67KUDQor6rmA6riw7ISdDQor6rmA7YOc64yADQor6rmA7Jq07IiYDQor6rmA6riw67ORDQor6rmA66eM6recDQor6rmA7Jqp66y4DQor6rmA7YOc7JewDQor6rmA6riw67SJDQor6rmA7Iic7KSRDQor6rmA6rec6riwDQor6rmA64+Z66eMDQor6rmA6riw67SJDQor6rmA6rSR6raMDQor6rmA7ZeM7IStDQor6rmA7J6l7IudDQor6rmA6riw67aEDQor6rmA66qF7ISgDQor6rmA67OR7IicDQor6rmA7IOB7ZuIDQor6rmA6riw7IK8DQor6rmA7Iic6rK9DQor6rmA7IOB7IiYDQor6rmA7JiB7IigDQor6rmA6riw7ISdDQor6rmA66eM7Z2sDQor6rmA7J6l64yADQor6rmA7IiY7KCVDQor6rmA6riw7ISdDQor6rmA7IOB7LKgDQor6rmA64+Z7Je0DQor6rmA7ISg7ZiEDQor6rmA6riw7ISgDQor6rmA6rSR64yADQor6rmA7JiB7Je0DQor6rmA7J2Y7IudDQor6rmA6riw7ISxDQor6rmA7Y+J7IiYDQor6rmA6riI656YDQor6rmA7Z2s7ZWYDQor6rmA6riw7IiYDQor6rmA7ZW067aEDQor6rmA7IaM64KoDQor6rmA7ISg6riwDQor6rmA6riw7IiYDQor6rmA7KCV7KSADQor6rmA6rSR64+ZDQor6rmA64+Z7JiBDQor6rmA6riw7IiYDQor6rmA7J6s66GdDQor6rmA7KKF7IiZDQor6rmA7LCo7IiYDQor6rmA6riw7IiYDQor6rmA7KKF7J6sDQor6rmA7JaR6rK9DQor6rmA7YOc6riwDQor6rmA6riw7IiYDQor6rmA7J6Q7J2ADQor6rmA7JiB7LKgDQor6rmA7ZWc7IudDQor6rmA6riw7IiYDQor6rmA7YOc7IiYDQor6rmA7ZiB7JikDQor6rmA7ISx7JiBDQor6rmA6riw7IicDQor6rmA7KSA7IiZDQor6rmAIOyLnQ0KK+q5gOyEseuzkQ0KK+q5gOq4sOyIoA0KK+q5gOydvOq3nA0KK+q5gOuzkeq2jA0KK+q5gOyaqe2VnA0KK+q5gOq4sOyIoA0KK+q5gOq0keybkA0KK+q5gO2DnOq3nA0KK+q5gOydmOyYpA0KK+q5gOq4sOyLnQ0KK+q5gO2DnOyImQ0KK+q5gOyInO2VmA0KK+q5gOq3nOq1rA0KK+q5gOq4sOyLnQ0KK+q5gOyDgeyEnQ0KK+q5gO2DnOyasA0KK+q5gOybkOycpA0KK+q5gOq4sOyLnQ0KK+q5gOygleyerA0KK+q5gO2aqOydvA0KK+q5gOynhOyEnQ0KK+q5gOq4sOyLnQ0KK+q5gOynhOyIoA0KK+q5gOuzkeyynA0KK+q5gOyaqe2biA0KK+q5gOq4sOyLnQ0KK+q5gOyerOyerA0KK+q5gOyYgeyXtA0KK+q5gOqyveyYpQ0KK+q5gOq4sOyXsA0KK+q5gOyYgeqxtA0KK+q5gOq3vOyInA0KK+q5gOyVlOykgA0KK+q5gOq4sOyXsA0KK+q5gO2VhOyXtA0KK+q5gOu0ieyEnQ0KK+q5gOynhOyaqQ0KK+q5gOq4sOyXtA0KK+q5gOyZhOyYpQ0KK+q5gOyEne2YhA0KK+q5gOustOyEuA0KK+q5gOq4sOyYgQ0KK+q5gOyaqeuLrA0KK+q5gOuzkeq4sA0KK+q5gOqwke2ZmA0KK+q5gOq4sOyYpQ0KK+q5gO2Yle2YhA0KK+q5gOq4iOu5iA0KK+q5gO2MkOyYpQ0KK+q5gOq4sOyaqQ0KK+q5gOq4sOyEnQ0KK+q5gO2DnOyyoA0KK+q5gOq2jOyYgQ0KK+q5gOq4sOyaqQ0KK+q5gOyEoOybkA0KK+q5gOyLoOuwsA0KK+q5gOyerOuvuA0KK+q5gOq4sOyaqQ0KK+q5gOuPhOq3nA0KK+q5gOycpOyhsA0KK+q5gOyiheyVlA0KK+q5gOq4sOybkA0KK+q5gOyInOq4sA0KK+q5gO2Zjeq3nA0KK+q5gOqwleyasA0KK+q5gOq4sOybkA0KK+q5gO2drOyInA0KK+q5gO2DnOyVhQ0KK+q5gOybkOyEoA0KK+q5gOq4sOybkA0KK+q5gOqzteq2jA0KK+q5gOyImOuPmQ0KK+q5gOyYge2ZmA0KK+q5gOq4sOyglQ0KK+q5gO2VtOuvuA0KK+q5gOycpOydtQ0KK+q5gOygleyInA0KK+q5gOq4sOykgA0KK+q5gOyihe2VmQ0KK+q5gOuqhe2drA0KK+q5gOyMje2ZlA0KK+q5gOq4sOykgA0KK+q5gOyerOq3nA0KK+q5gO2DnO2drA0KK+q5gOq4sO2ZlA0KK+q5gOq4sOykkQ0KK+q5gOyduO2YuA0KK+q5gOyLpOq4sA0KK+q5gOusuOyErQ0KK+q5gOq4sOyyoA0KK+q5gOygleyDnQ0KK+q5gOyViOuNlQ0KK+q5gOq4sOq3vA0KK+q5gOq4sOyyoA0KK+q5gOyGjOyImA0KK+q5gOq2jO2DnA0KK+q5gO2DnOyynA0KK+q5gOq4sOyyoA0KK+q5gOyiheyglQ0KK+q5gOyerO2VmQ0KK+q5gO2VmeyImA0KK+q5gOq4sO2DnA0KK+q5gOyaqeyLnQ0KK+q5gOygleynhA0KK+q5gO2YuOynhA0KK+q5gOq4sO2VhA0KK+q5gOyImOyEnQ0KK+q5gO2DnOyekA0KK+q5gOuzkeyatA0KK+q5gOq4sO2YhA0KK+q5gOywqOq3vA0KK+q5gOybkOuNlQ0KK+q5gOq3vOyEnQ0KK+q5gOq4sO2YhA0KK+q5gOuPme2drA0KK+q5gOyInOyglQ0KK+q5gOyInOyImA0KK+q5gOq4sO2YkQ0KK+q5gOuFuOyImQ0KK+q5gOygle2YuA0KK+q5gOyerOu2hA0KK+q5gOq4sO2YuA0KK+q5gOuLrOyIoA0KK+q5gOuFuO2biA0KK+q5gOuPmeuztA0KK+q5gOq4sO2YuA0KK+q5gOygkOynhA0KK+q5gOyDge2drA0KK+q5gOydmO2DgQ0KK+q5gOq4sO2YuA0KK+q5gOycpOyaqQ0KK+q5gO2DnO2biA0KK+q5gOyYgeyihQ0KK+q5gOq4sO2YuA0KK+q5gO2VmOuwsA0KK+q5gOyYgeyXtA0KK+q5gOynhO2YhA0KK+q5gOq4sO2ZjQ0KK+q5gOuPmeyYgQ0KK+q5gOyInO2DnA0KK+q5gOyInO2drA0KK+q5gOq4sO2ZjQ0KK+q5gOyaqeybkA0KK+q5gOuzke2VnA0KK+q5gOyEseyImA0KK+q5gOq4sO2ZjQ0KK+q5gOyerOyLnQ0KK+q5gOyDgeybkA0KK+q5gO2MkO2YlQ0KK+q5gOq4sO2ZmA0KK+q5gOyyoOuylA0KK+q5gOyjvOu0iQ0KK+q5gOu0ieyXtA0KK+q5gOq4sO2ZmA0KK+q5gOq2geycqA0KK+q5gOqzpOyEnQ0KK+q5gOyInOyerA0KK+q5gOq4sO2ZmA0KK+q5gOyDgeqyvQ0KK+q5gOyImOykgA0KK+q5gO2DnOyasA0KK+q5gOq4sO2drA0KK+q5gOydvOyekA0KK+q5gOyDge2ctA0KK+q5gOyerOyEnQ0KK+q5gOq4uOuPmQ0KK+q5gOuzkeqwlQ0KK+q5gO2dpeyInA0KK+q5gOuvuOyyoA0KK+q5gOq4uOuPmQ0KK+q5gO2Vmeq3nA0KK+q5gOywveq3nA0KK+q5gOuzkeuhnQ0KK+q5gOq4uOyDgQ0KK+q5gOqyveusuA0KK+q5gOqyveyaqQ0KK+q5gOuPmeyngA0KK+q5gOq4uOyImA0KK+q5gOq4sOyynA0KK+q5gOyaqeyEoA0KK+q5gOuCmeq4uA0KK+q5gOq4uO2ZmA0KK+q5gOyatOyIoA0KK+q5gO2DneyYgQ0KK+q5gOycpO2DnA0KK+q5gOuCmOynhOyekA0KK+q5gOygleyImOyaqQ0KK+q5gOybkOyasOyYgQ0KK+q5gOygleyInOyglQ0KK+q5gOuCmO2YhA0KK+q5gOyaqeuPmQ0KK+q5gOyngOyYgQ0KK+q5gOyKueq2jA0KK+q5gOuCmeuPmQ0KK+q5gOyDge2DnA0KK+q5gOyYgeujoQ0KK+q5gO2YhO2YuA0KK+q5gOuCme2YuA0KK+q5gOyImOyDgQ0KK+q5gOu0ie2RnA0KK+q5gOu2gO2YhA0KK+q5gOuCnOydtA0KK+q5gOygkOqyuA0KK+q5gOykgOq2jA0KK+q5gO2drOyIoA0KK+q5gOuCqOq3vA0KK+q5gO2YnO2YuA0KK+q5gOyynOydvA0KK+q5gOunjOydtA0KK+q5gOuCqOq4sA0KK+q5gOyKueunjA0KK+q5gOyduOuMgA0KK+q5gOyerOyXsA0KK+q5gOuCqOyImA0KK+q5gOyXsO2drA0KK+q5gOyEse2YuA0KK+q5gO2VtO2DgQ0KK+q5gOuCqOyImA0KK+q5gOywqO2YuA0KK+q5gOyihe2YuA0KK+q5gOygleyYpQ0KK+q5gOuCqOyImA0KK+q5gCDsmKUNCivquYDsnoTsnbQNCivquYDsmIHtkZwNCivquYDrgqjsiJwNCivquYDsnbzri6wNCivquYDtnaztnawNCivquYDtmITrsLANCivquYDrgqjsmqkNCivquYDsnqzsnbUNCivquYDtg5zqtawNCivquYDtlbTsmrANCivquYDrgqjsmrANCivquYDtl4zshKANCivquYDqsr3shKANCivquYDsuZjshJ0NCivquYDrgqjsnbQNCivquYDsoJXsoJUNCivquYDqs6HquLANCivquYDrj5nsm5ANCivquYDrgqjsobANCivquYDssYTtmIQNCivquYDrjZXsnbwNCivquYDrp4zqt7wNCivquYDrhbjsiJgNCivquYDrj5nsi50NCivquYDtmITsnpANCivquYDssL3ssqANCivquYDri6TrgqgNCivquYDsiJjsm4UNCivquYDtlbTso7wNCivquYDssKzqs4QNCivquYDri6zrp4kNCivquYDssqDtmLgNCivquYDsooXqs6QNCivquYDrs5HsnbwNCivquYDri6zrp4kNCivquYDtmY3slaANCivquYDquLDshLENCivquYDsooXsm5ANCivquYDri6zrtoQNCivquYDsuZjtmLgNCivquYDsmbjshKANCivquYDqsr3qtZANCivquYDri6zshLENCivquYDsl7DtmZgNCivquYDsnqztmLgNCivquYDrrLjslZQNCivquYDri6zsiJgNCivquYDrj5nrtIkNCivquYDsmIHtmIQNCivquYDsmIHrp4wNCivquYDri6zsi50NCivquYDsspzqs6QNCivquYDrkZDsmKUNCivquYDsp4DsmqkNCivquYDri6zsi50NCivquYDshozqt7wNCivquYDsiJzsiKANCivquYDsmIHsm4UNCivquYDri6zslZQNCivquYDtg5zqtbANCivquYDrs7XsiJgNCivquYDsoJXtmZgNCivquYDri6zsnKANCivquYDqtJHsiJkNCivquYDsiJzquLANCivquYDsmKXspIANCivquYDri6ztg5wNCivquYDshKDrn4kNCivquYDrr7jsiKANCivquYDshozsp4ANCivquYDri6ztmLgNCivquYDsoJXtmZgNCivquYDrs5HshK0NCivquYDquLjsmrANCivquYDri6ztmZQNCivquYDtlYTtlqUNCivquYDsmIHsnpANCivquYDsmIHrjZUNCivquYDrjIDqsr0NCivquYDsg4HrtIkNCivquYDsiJjsi50NCivquYDshLHtg5wNCivquYDrjIDqt5wNCivquYDrr7jrk50NCivquYDsnKTspIANCivquYDsmIHtg50NCivquYDrjIDquLANCivquYDtmITtlYQNCivquYDsp4TtmIQNCivquYDrrLTrgqgNCivquYDrjIDquLANCivquYDsg4Hsi50NCivquYDshLHtmIENCivquYDsnKTrs7UNCivquYDrjIDshJ0NCivquYDtmanrp4wNCivquYDsnqXrjZUNCivquYDshLHtmY0NCivquYDrjIDshLENCivquYDssqDtl4wNCivquYDsg4Hsm5ANCivquYDsnqztmZgNCivquYDrjIDsiJgNCivquYDsg4HquLANCivquYDshLHssqANCivquYDsirnstpwNCivquYDrjIDsi50NCivquYDrs5HquLANCivquYDsnqztmZQNCivquYDssKzsmIENCivquYDrjIDsi50NCivquYDsoJXssqANCivquYDrk53sobANCivquYDsg4Hqt7wNCivquYDrjIDsi50NCivquYDrr7zssqANCivquYDsoJXso7wNCivquYDsooXqtowNCivquYDrjIDsl7ANCivquYDsiJzsiKANCivquYDtmqjshKANCivquYDrrLTsg4ENCivquYDrjIDsmqkNCivquYDsnYDrr7gNCivquYDqt5zshJ0NCivquYDtmITtmZgNCivquYDrjIDsm5ANCivquYDsnqzssL0NCivquYDtmJXsnoQNCivquYDrqoXrp4wNCivquYDrjIDsnKQNCivquYDquLDsl7ANCivquYDqsr3shJ0NCivquYDsooXroYANCivquYDrjIDsnZENCivquYDsiJjstpwNCivquYDrgpntmZgNCivquYDsnbzsi6QNCivquYDrjIDsnbwNCivquYDrj4TssqANCivquYDrs7TtmLgNCivquYDsnoTssqANCivquYDrjIDsnbwNCivquYDtnazspIANCivquYDsnYTshJ0NCivquYDsnKTquLANCivquYDrjIDsooUNCivquYDrj5nrp4wNCivquYDsnqztmZQNCivquYDrjZXrsKkNCivquYDrjIDsp4QNCivquYDsoJXsmKUNCivquYDrtIntmowNCivquYDso7zsm5ANCivquYDrjIDtmIQNCivquYDsg4HqtowNCivquYDstpjsmKQNCivquYDsmqnssL0NCivquYDrjIDtmIQNCivquYDrjIDtmLgNCivquYDrs7XshJ0NCivquYDshLHtnLQNCivquYDrjIDtmIQNCivquYDsg4Htg50NCivquYDsnKTtnawNCivquYDrhbjqs6QNCivquYDrjIDtmLgNCivquYDqs7zsiJgNCivquYDsnqzsiJgNCivquYDrtInshLENCivquYDrjIDtmZgNCivquYDquLDsiJgNCivquYDqs4TtlZwNCivquYDshLHshJ0NCivquYDrjIDtnawNCivquYDsnYDtmZgNCivquYDsooXsl7QNCivquYDrs5HtnawNCivquYDrjZXqs6ANCivquYDsg4HruYgNCivquYDtlbTqs6QNCivquYDsooXrp4wNCivquYDrjZXqs6QNCivquYDsnbzsiJgNCivquYDquLDshLENCivquYDsnqXshJ0NCivquYDrjZXrpqwNCivquYDquLDsm5ANCivquYDsp4DsoJUNCivquYDsirntmLgNCivquYDrjZXrprwNCivquYDrp4zrrLgNCivquYDquIjsoJUNCivquYDqsJXrj5kNCivquYDrjZXrp4wNCivquYDsooXrsLANCivquYDrtInsi50NCivquYDsoJXtkZwNCivquYDrjZXsiJgNCivquYDsg4HsiJgNCivquYDsoJXtnawNCivquYDsmIHsobANCivquYDrjZXsiJgNCivquYDtg5zroZwNCivquYDsl7DssqANCivquYDso7zsmqkNCivquYDrjZXsiJwNCivquYDsg4Hsl7QNCivquYDsooXquLANCivquYDtmZTqsJENCivquYDrjZXsiJwNCivquYDshLHrkZANCivquYDsiJjsl7ANCivquYDtlZjrrLUNCivquYDrjZXsl7ANCivquYDqt4DtmIQNCivquYDsmbjtlZwNCivquYDqtJHsnpANCivquYDrjZXsl7ANCivquYDshLHsnbQNCivquYDtlZzqt5wNCivquYDsooXrsLANCivquYDrjZXsl7QNCivquYDsnoTstpgNCivquYDsnqzqt5wNCivquYDsg4HtmIQNCivquYDrjZXsmqkNCivquYDsmqnsmYQNCivquYDtlbTsmqkNCivquYDshKDsm4UNCivquYDrjZXsm5ANCivquYDrgqjrp4wNCivquYDssL3rj4wNCivquYDsiJjqs6QNCivquYDrjZXsobANCivquYDtmITsgrwNCivquYDsmIHqtawNCivquYDspIDsoJwNCivquYDrjZXsobANCivquYDqsr3qt5wNCivquYDtg5zqt5wNCivquYDsnbjssqANCivquYDrjZXspJENCivquYDshLHroZwNCivquYDshJ3si50NCivquYDrrLTsiJgNCivquYDrjZXtlbQNCivquYDtmLjssqANCivquYDtmY3ssL0NCivquYDsm5DtnJgNCivquYDrj4Tqsr0NCivquYDtg5zso7wNCivquYDqsr3shKANCivquYDsiJjsm5ANCivquYDrj4TquLANCivquYDsg4HsooUNCivquYDrj5nrjIANCivquYDquLDsiJgNCivquYDrj4TslZQNCivquYDsmIHtm4gNCivquYDso7zqt6ANCivquYDtmJzsiJkNCivquYDrj4TsmIENCivquYDrtInqtowNCivquYDtg5zrr7gNCivquYDrtInquLgNCivquYDrj4Tsm5ANCivquYDsmIHqt7wNCivquYDrhbjrqqkNCivquYDsoJXrp5ANCivquYDrj4TsnKQNCivquYDtg5zsiJwNCivquYDshLjsi50NCivquYDsnqztnawNCivquYDrj4TspJENCivquYDsuaDsmqkNCivquYDshLHsmIENCivquYDsnqzqs6QNCivquYDrj4TtlZwNCivquYDqtJHrjZUNCivquYDshLHqt5wNCivquYDrqoXsmrQNCivquYDrj4Ttm4gNCivquYDssKjsmKUNCivquYDrtInqsJENCivquYDqsJXrqqgNCivquYDrj4TtnawNCivquYDsmqnshKANCivquYDtlbTsnbwNCivquYDsnqzsmKQNCivquYDrj5nqs6QNCivquYDsnbTshJ0NCivquYDsmqntg50NCivquYDshLHshJ0NCivquYDrj5nqtowNCivquYDtg5zrs5ENCivquYDsnbzrj4QNCivquYDsnbjsi50NCivquYDrj5nqt7wNCivquYDqsbTrjZUNCivquYDsoJXrs7UNCivquYDsmIHsnbwNCivquYDrj5nquLANCivquYDsmqnrjIANCivquYDtnaXquLANCivquYDrjIDtmLgNCivquYDrj5nquLANCivquYDqsr3rkZANCivquYDsnoTtmLgNCivquYDsirnsiJgNCivquYDrj5nquLANCivquYDsiJjsmrQNCivquYDrqoXrjZUNCivquYDrqoXtmZgNCivquYDrj5nquLgNCivquYDquLDrqqgNCivquYDrs7XshKANCivquYDsmIHsiJgNCivquYDrj5nrgqgNCivquYDsnKTrp4wNCivquYDsoJXsiJwNCivquYDshKDsiJwNCivquYDrj5nroYANCivquYDrqoXsiJgNCivquYDqsJXsiJkNCivquYDshJ3rk50NCivquYDrj5nrp4wNCivquYDtg5ztmZgNCivquYDsjI3tmqgNCivquYDsgrztnawNCivquYDrj5nshK0NCivquYDsg4Hsl7ANCivquYDsnKDsm5ANCivquYDsnqXqtowNCivquYDrj5nshLENCivquYDtlbTqsr0NCivquYDqsr3shKANCivquYDshKDroZ0NCivquYDrj5nshLENCivquYDqtbDsmIENCivquYDrp7ntmLgNCivquYDqsJHspIANCivquYDrj5nsiJkNCivquYDsm5TtmZgNCivquYDtg5zqtZANCivquYDsnKTsiJgNCivquYDrj5nsiJwNCivquYDsg4HshKANCivquYDsnqzssYQNCivquYDrr7jrnb0NCivquYDrj5nsi50NCivquYDsiJnrp4wNCivquYDsooXstpwNCivquYDsnKTquLANCivquYDrj5nsi50NCivquYDtlZntlZkNCivquYDquLDquLANCivquYDsiJjsmqkNCivquYDrj5nsl7QNCivquYDspIDsiJwNCivquYDrqoXqsr0NCivquYDrs5HtmZgNCivquYDrj5nsl7QNCivquYDsoJXrpaANCivquYDqtJHrgqgNCivquYDsmqnqt5wNCivquYDrj5nsl7QNCivquYDsnqzsnbQNCivquYDtg5zshK0NCivquYDsnbztmZgNCivquYDrj5nsmqkNCivquYDsmrHsnKQNCivquYDtl4zsmrANCivquYDrs5HssqANCivquYDrj5nsm5ANCivquYDssKjquLgNCivquYDsoJXsnYANCivquYDsgqzsl7QNCivquYDrj5nso7wNCivquYDsg4Hrk50NCivquYDstqnso7wNCivquYDsmqnssKwNCivquYDrj5nso7wNCivquYDspIDrjZUNCivquYDtmY3snYANCivquYDrj5nqt7wNCivquYDrj5nspIANCivquYDtmY3tmJUNCivquYDtlbTtmIQNCivquYDsmIHqt5wNCivquYDrj5nsp4QNCivquYDsnqzqtIANCivquYDtlYTqs6QNCivquYDsiJjtmIQNCivquYDrj5nsp4QNCivquYDtnazsgrwNCivquYDshLHtm4QNCivquYDsnbjrj5kNCivquYDrj5nstpgNCivquYDsoJXrqqkNCivquYDsoJzsmqkNCivquYDtg5zsi50NCivquYDrj5nstpgNCivquYDsnKTsiKANCivquYDrqoXqt5wNCivquYDsmIHri6wNCivquYDrj5nstpgNCivquYDsnbjtmIQNCivquYDspJHtmIQNCivquYDsirnrnpgNCivquYDrj5ntmIQNCivquYDsmqntmZQNCivquYDsp4TsiJgNCivquYDsoJXtmowNCivquYDrj5ntmLgNCivquYDsiJzqsr0NCivquYDrs5HshK0NCivquYDsiJjshJ0NCivquYDrj5ntmZgNCivquYDsnKTsmKQNCivquYDsooXsg4ENCivquYDrr7jsnbQNCivquYDrj5ntmZgNCivquYDstpjqsr0NCivquYDsooXsiKANCivquYDtla3quLANCivquYDrj5ntmZgNCivquYDrs5HqtawNCivquYDshLHsi50NCivquYDsnbzsmqkNCivquYDrj5ntmZgNCivquYDshJ3smKQNCivquYDrgpnsi5wNCivquYDqsr3shLENCivquYDrj5ntmZgNCivquYDrs5HsiJgNCivquYDsnbjsm4UNCivquYDssL3ssqANCivquYDrj5ntmqgNCivquYDtg5ztmY0NCivquYDrgqjspIANCivquYDsl7Dsm5ANCivquYDrj5ntmqgNCivquYDsoJXsi50NCivquYDqtazqt5wNCivquYDqt5zsnoQNCivquYDrkZDsi50NCivquYDssL3tmLgNCivquYDqt7zsiJwNCivquYDrrLTrkZQNCivquYDrkZDsl7ANCivquYDtnazri6wNCivquYDsmIHspIANCivquYDsm5DsobANCivquYDrkZDsl7ANCivquYDsmIHsiJkNCivquYDsnbjqs6QNCivquYDsnbjsnbwNCivquYDrkZDsmYQNCivquYDssKjsg50NCivquYDsg4Hrj5kNCivquYDssL3rhYQNCivquYDrkZDsspwNCivquYDsm5DtmLgNCivquYDrp4zrp4wNCivquYDtg5zsg4ENCivquYDrkZDstpwNCivquYDstpjsoJUNCivquYDsoJXsiJwNCivquYDsiJzqsbQNCivquYDrkZDtmLgNCivquYDsoJXsmIENCivquYDsmqntnawNCivquYDrspTrsLENCivquYDrkZDtmZgNCivquYDsnqzqt5wNCivquYDsg4HsnoQNCivquYDtlYTtmZgNCivquYDrkZDtnawNCivquYDsmIHssqANCivquYDtlZjsl7QNCivquYDsooXsobANCivquYDrk53qt5wNCivquYDtjJDqtIANCivquYDsoJXtm4gNCivquYDsg4HsspwNCivquYDrk53shJ0NCivquYDsmIHtlZkNCivquYDtmY3qsr0NCivquYDrjIDtnLQNCivquYDrk53smqkNCivquYDtg5zqtawNCivquYDsnbjsiJgNCivquYDtlbTqt5wNCivquYDrk7HquLgNCivquYDsiJzsm4UNCivquYDsnqzsmrANCivquYDrp5DtmZQNCivquYDrp4zqt6ANCivquYDtm4Tsi6wNCivquYDshKDtnawNCivquYDsmIHtmIQNCivquYDrp4zquIgNCivquYDsooXsiJkNCivquYDsoJXrkZANCivquYDsmrTtmLgNCivquYDrp4zquIgNCivquYDrs5HtmIQNCivquYDtg5zsiKANCivquYDsnbjtnawNCivquYDrp4zquLgNCivquYDsp4DspIANCivquYDrjZXrp4wNCivquYDshLjtmIQNCivquYDrp4zquLgNCivquYDrp4zrrLgNCivquYDssYTshK0NCivquYDqsr3rgqgNCivquYDrp4zri6wNCivquYDsg4HtlZwNCivquYDsmqnquLgNCivquYDsmIHqt5wNCivquYDrp4zrjZUNCivquYDqta3siJgNCivquYDrr7jtmY0NCivquYDtmITsmYQNCivquYDrp4zrjZUNCivquYDsiJjsiJgNCivquYDsnqzsmKQNCivquYDsoJXtmLgNCivquYDrp4zrj4QNCivquYDsmrDri6wNCivquYDtlZzsi50NCivquYDtg5zsmqkNCivquYDrp4zrk50NCivquYDquLDqsJENCivquYDsuaDsi50NCivquYDsmYTqtawNCivquYDrp4zrs7UNCivquYDrs7XsmqkNCivquYDsnbTsooUNCivquYDshJ3smKUNCivquYDrp4zshJ0NCivquYDrs5HshK0NCivquYDshLHsm5ANCivquYDsnoTqt5wNCivquYDrp4zshKANCivquYDrjZXsobANCivquYDssKjsiJwNCivquYDtg5zslaANCivquYDrp4zsiJgNCivquYDtmqjrtIkNCivquYDrrLjqtJENCivquYDtg5ztjJANCivquYDrp4zsiJgNCivquYDquIjso7wNCivquYDrtInsiJgNCivquYDrs5HsiKANCivquYDrp4zsiJgNCivquYDrp6Tri6wNCivquYDsnKTshLENCivquYDsnqztmIQNCivquYDrp4zsiKANCivquYDsmqntmLgNCivquYDquIjtmZgNCivquYDsiJztmLgNCivquYDrp4zsl7QNCivquYDtmY3sl7QNCivquYDsnqXqtowNCivquYDsnbjshJ0NCivquYDrp4zsmqkNCivquYDsg4HrjZUNCivquYDspIDqs6QNCivquYDsooXsiJwNCivquYDrp4zsm5ANCivquYDssL3tmLgNCivquYDtlbTsnpANCivquYDsm5DssqANCivquYDrp4zsm5ANCivquYDsmIHsiJwNCivquYDsp4Dqt7wNCivquYDssL3ssqANCivquYDrp4zsnbQNCivquYDsg4HsiJwNCivquYDsmIHtj4kNCivquYDrjIDsiJgNCivquYDrp4zsobANCivquYDsnpDsl7QNCivquYDsiJntmLgNCivquYDsoJXrj4QNCivquYDrp4zsooUNCivquYDrj5nshLENCivquYDsp4DstpwNCivquYDsooXqt6ANCivquYDrp4ztg5wNCivquYDrj5nqt7wNCivquYDshJ3qt7wNCivquYDshJ3snqwNCivquYDrp4ztm4gNCivquYDsoJXsiJgNCivquYDsg4Hrj4QNCivquYDssL3qt5wNCivquYDrp5DrgpwNCivquYDrs7Xsl7QNCivquYDtnaztmLgNCivquYDtnazrjZUNCivquYDrp5DrnpgNCivquYDsirnquLANCivquYDsiJzsiJgNCivquYDrj5nrtIkNCivquYDrp5DroKgNCivquYDsoJXtmLgNCivquYDstpzsm5ANCivquYDsmKXsp4QNCivquYDrp5DrtoQNCivquYDtg5zsl7ANCivquYDssKjquIgNCivquYDsnKTqtowNCivquYDrp5DshJ0NCivquYDquLDrnpgNCivquYDsnqzsmIENCivquYDsiJzsnoQNCivquYDrp5DshKANCivquYDri6zssqANCivquYDqtJHsnKQNCivquYDrs7XspIANCivquYDrp5DsiJgNCivquYDspIDshKANCivquYDtg5zroZ0NCivquYDri6zquLANCivquYDrp5DsiKANCivquYDrj5nsmrANCivquYDtg5zqta0NCivquYDsiJjsnbQNCivquYDrp5DslZQNCivquYDsmIHsiKANCivquYDtjJDsmIENCivquYDsnbzsiJkNCivquYDrp5DsnbQNCivquYDsiJzrtoQNCivquYDqsbTqs6QNCivquYDsoJXsmZUNCivquYDrp5DsnoQNCivquYDsmqnqta0NCivquYDrj5nsooUNCivquYDtg5ztmLgNCivquYDrp5DsobANCivquYDssqDrjZUNCivquYDrqoXqt5wNCivquYDqtJHsnpANCivquYDrp7ntmZgNCivquYDtlZzri6wNCivquYDsmIHqt7wNCivquYDqt7nsnbQNCivquYDrqoXqs6QNCivquYDsiKDrp4wNCivquYDsnbzsnbQNCivquYDtjJDrjIANCivquYDrqoXqs6QNCivquYDshoztlqUNCivquYDquLDtmLgNCivquYDsnqzrpaANCivquYDrqoXqta0NCivquYDsg4HtmLgNCivquYDssKjtnawNCivquYDsooXtmLgNCivquYDrqoXqt5wNCivquYDsnKTrspQNCivquYDtg5zrgqgNCivquYDrqoXssqANCivquYDrqoXqt5wNCivquYDqsr3tmLgNCivquYDsooXrj4wNCivquYDrj5nsi50NCivquYDrqoXrnb0NCivquYDqsJHquLANCivquYAg7ISgDQor6rmA7Iq57JykDQor6rmA66qF7IStDQor6rmA67OR7IicDQor6rmA7Iq57IiYDQor6rmA7ISx7Z2gDQor6rmA66qF7IiYDQor6rmA7LCo7Zi4DQor6rmA66y06raMDQor6rmA7IiZ7IicDQor6rmA66qF7IiYDQor6rmA7YOc7ZmYDQor6rmA66+47KO8DQor6rmA7ZW06rWtDQor6rmA66qF7IiZDQor6rmA7KCQ7IiYDQor6rmA7ZmU6rWsDQor6rmA7YOc6riwDQor6rmA66qF7IiZDQor6rmA67OR642VDQor6rmA7LC964yADQor6rmA7JWI7ZmNDQor6rmA66qF7IiZDQor6rmA7YOc7IiYDQor6rmA66qF7IudDQor6rmA7KKF7IicDQor6rmA66qF7IicDQor6rmA7YOc7KGwDQor6rmA7Jik7ZmUDQor6rmA7Jqp7IiYDQor6rmA66qF7IicDQor6rmA7YOc7J20DQor6rmA7ZiE6rOkDQor6rmA7J6E6rWsDQor6rmA66qF7IicDQor6rmA7JiB7ZmUDQor6rmA7KCV7KGwDQor6rmA7Jil7IiZDQor6rmA66qF7IicDQor6rmA6rec7ZmUDQor6rmA7ISx7KKFDQor6rmA6reA7KSADQor6rmA66qF7IudDQor6rmA7J2E7J2ADQor6rmA64+E67CcDQor6rmA7Jq0656YDQor6rmA66qF7JWgDQor6rmA66y47Zi4DQor6rmA7YOc6rK9DQor6rmA7JuQ7IicDQor6rmA66qF7JikDQor6rmA7J287IiZDQor6rmA7Jyk7Z2sDQor6rmA7ZmY7IS4DQor6rmA66qF7JilDQor6rmA64+E7Zi4DQor6rmA7LGE7JqpDQor6rmA65GQ7Je0DQor6rmA66qF7J6QDQor6rmA7ZiE7J6QDQor6rmA7IOB65OdDQor6rmA7IiY7JmEDQor6rmA66qF7J6QDQor6rmA66y47JyoDQor6rmA6rec7IicDQor6rmA7YOc7JmEDQor6rmA66qF7KCVDQor6rmA7ZmN7JiBDQor6rmA6rec7Zi4DQor6rmA7JiB7YOcDQor6rmA66qF7KSRDQor6rmA7ISx7IaMDQor6rmA7Iic7YOdDQor6rmA7KCE6recDQor6rmA66qF7KeEDQor6rmA7ZWt67O1DQor6rmA7Iic656YDQor6rmA7KeE6riIDQor6rmA66qF7KeEDQor6rmA7LaY6recDQor6rmA7KCV7IudDQor6rmA64Kc7JiBDQor6rmA66qF7LKgDQor6rmA7KKF7JiBDQor6rmA7J6Q7IicDQor6rmA7ISx67aVDQor6rmA66qF7LKgDQor6rmA7YOc7JykDQor6rmA7J287IigDQor6rmA6rSR66GADQor6rmA66qF7LacDQor6rmA7LaY7ZmUDQor6rmA7IaM7Z2sDQor6rmA7Iic6riwDQor6rmA66qF7LacDQor6rmA66eM7J20DQor6rmA7KCV7JaRDQor6rmA7YOc7LKgDQor6rmA66qF7LacDQor6rmA7Iic7KeEDQor6rmA64KZ7IiZDQor6rmA7ISx6rOkDQor6rmA66qF7ZWYDQor6rmA7J6s7IiYDQor6rmA64+Z7Zi4DQor6rmA7LC97ISdDQor6rmA66qF7ZWZDQor6rmA64Ko7Zi4DQor6rmA7YOc7Je0DQor6rmA7Iic6recDQor6rmA66qF7Zi4DQor6rmA7ISd7J28DQor6rmA7J6s67aEDQor6rmA6rSA7IicDQor6rmA66qF7ZmUDQor6rmA7IOB7LKgDQor6rmA7J287Zi4DQor6rmA66+87JiBDQor6rmA66qF7ZmYDQor6rmA7KCV7IiYDQor6rmA6ri464+ZDQor6rmA7LCo6ri4DQor6rmA66qF7Z2sDQor6rmA7IOB7ZmUDQor6rmA7IOB7IudDQor6rmA64+Z7JilDQor6rmA66qF7Z2sDQor6rmA6riw7Z2sDQor6rmA6rK96rCADQor6rmA7Iic6riwDQor6rmA66qF7Z2sDQor6rmA7IOB7ZiEDQor6rmA6riw7YOcDQor6rmA65GQ6rWsDQor6rmA66yY7JuUDQor6rmA67OR7KO8DQor6rmA7J6s6rWQDQor6rmA6riw7KCVDQor6rmA66y06re8DQor6rmA7J6l7ISgDQor6rmA6rCR7J28DQor6rmA7ZeM7J6sDQor6rmA66y06riIDQor6rmA66eM7LacDQor6rmA7ISx7IudDQor6rmA6rOE7IicDQor6rmA66y067CwDQor6rmA64us7Zy0DQor6rmA64Ko7KGwDQor6rmA7J6s6rOkDQor6rmA66y067CwDQor6rmA6ri47KSADQor6rmA7J6s7LKgDQor6rmA7J6s65OdDQor6rmA66y07ISgDQor6rmA6rSR64+ZDQor6rmA67OR7KeEDQor6rmA7YOc7YOBDQor6rmA66y07IudDQor6rmA67OR64yADQor6rmA7ISx6rWsDQor6rmA7ISx7ZiEDQor6rmA66y07JewDQor6rmA6rec7Zi4DQor6rmA7ZW07JqpDQor6rmA6rOE7IudDQor6rmA66y07Je0DQor6rmA6rK97Zi4DQor6rmA67KU7J6QDQor6rmA7IOB7YOBDQor6rmA66y07Je0DQor6rmA7YOc6rCRDQor6rmA7JyE7IiYDQor6rmA7KeE7LacDQor6rmA66y07LKgDQor6rmA7ZmY7J28DQor6rmA7ZiE7IiYDQor6rmA7J6s6recDQor6rmA66y07YOcDQor6rmA67O17JqxDQor6rmAIOyLnQ0KK+q5gOyiheyYgQ0KK+q5gOustO2YhA0KK+q5gOustOyImA0KK+q5gOuqheyImA0KK+q5gOunjOyhsA0KK+q5gOustO2YuA0KK+q5gOyiheyImA0KK+q5gO2DnO2ZmA0KK+q5gO2ZjeyWuA0KK+q5gOustO2ZmA0KK+q5gOq3gOyaqQ0KK+q5gOq0gOyynA0KK+q5gOq3nOyLnQ0KK+q5gOustO2ZmA0KK+q5gOyGjOuPmQ0KK+q5gOydhOuPjA0KK+q5gOycpOydtA0KK+q5gOusuOq1rA0KK+q5gOyYgeq3oA0KK+q5gOyerOyImA0KK+q5gOyEseyEnQ0KK+q5gOusuOq4sA0KK+q5gOygleq0gA0KK+q5gO2DnO2ZjQ0KK+q5gOq4sOyErQ0KK+q5gOusuOuPjA0KK+q5gOyihe2drA0KK+q5gOq4sOyynA0KK+q5gO2MkO2drA0KK+q5gOusuOuwsA0KK+q5gOyInOyXsA0KK+q5gOq1kOyImA0KK+q5gOyiheu0iQ0KK+q5gOusuOuwsA0KK+q5gOyEseyYpQ0KK+q5gOyaqeuPhA0KK+q5gOyDgeyImA0KK+q5gOusuOyImA0KK+q5gOuqveqzpA0KK+q5gOyerO2drA0KK+q5gOywveyLnQ0KK+q5gOusuOyImA0KK+q5gO2MkOyEoA0KK+q5gOuzkeyLnQ0KK+q5gOyYgeqzpA0KK+q5gOusuOyImA0KK+q5gOyImOybkA0KK+q5gO2DnOq0kQ0KK+q5gOyduO2drA0KK+q5gOusuOyLnQ0KK+q5gOuPmeumvA0KK+q5gOyEoOq4sA0KK+q5gOygleuNlQ0KK+q5gOusuOyXtA0KK+q5gOyEseykgA0KK+q5gOybkOyhsA0KK+q5gOyerOyasA0KK+q5gOusuOyXtA0KK+q5gOycpOunjA0KK+q5gOyerOykgA0KK+q5gOyDgeuPmQ0KK+q5gOusuOyYgQ0KK+q5gOyYgeyLnQ0KK+q5gOu2hO2VmA0KK+q5gOydmO2VmA0KK+q5gOusuOyaqQ0KK+q5gOydvOuztA0KK+q5gOygleyImA0KK+q5gOunkOyjvA0KK+q5gOusuOyjvA0KK+q5gOyEseybkA0KK+q5gOyerOunjA0KK+q5gOq4sOyasQ0KK+q5gOusuO2YuA0KK+q5gOuqheq1rQ0KK+q5gOyiheuPmQ0KK+q5gOyWteyynA0KK+q5gOuvuOqyvQ0KK+q5gOyLoOyaqQ0KK+q5gOyYge2ctA0KK+q5gOyImOyyoA0KK+q5gOuvuOyImQ0KK+q5gOyYgeq4sA0KK+q5gOyaqeykgA0KK+q5gOyerOyImA0KK+q5gOuvuOyYpQ0KK+q5gOyynOq1rA0KK+q5gOyatOynhA0KK+q5gOuztOyasA0KK+q5gOuvuOyekA0KK+q5gOyiheq3vA0KK+q5gOyDge2VhA0KK+q5gOuLrOq3vA0KK+q5gOuvuOyglQ0KK+q5gOyCvOq4uA0KK+q5gOq0keqzpA0KK+q5gOyEseyInA0KK+q5gOuvuOyglQ0KK+q5gOyDgeykgA0KK+q5gOuzkeyInA0KK+q5gOyaqeyXsA0KK+q5gOuvvOyVoA0KK+q5gOq3vOyXtA0KK+q5gOyYge2ZmA0KK+q5gOyaqeyaqQ0KK+q5gOuvvOyasA0KK+q5gOuNle2YhA0KK+q5gOqwleycpA0KK+q5gOqwgO2YuA0KK+q5gOuvvOyekA0KK+q5gOyepeuztQ0KK+q5gOyduOyhsA0KK+q5gOyEseyYgQ0KK+q5gOuvvOyglQ0KK+q5gOyerO2drA0KK+q5gOuzkeyekA0KK+q5gO2Zje2YuA0KK+q5gOuvvOyyoA0KK+q5gOyInOyLnQ0KK+q5gOuqheq1kA0KK+q5gOyihey2mA0KK+q5gOuylOyImA0KK+q5gOyYge2biA0KK+q5gO2VtOyLnQ0KK+q5gOydteyInA0KK+q5gOuylOykgA0KK+q5gOuzkeq2jA0KK+q5gOu0ieyXsA0KK+q5gOuzkeyErQ0KK+q5gOuylOy2nA0KK+q5gOq4sO2YhA0KK+q5gOyepeuRkA0KK+q5gO2aqOq1rA0KK+q5gOuylO2DnA0KK+q5gOyWkeq4uA0KK+q5gO2DnOyInA0KK+q5gOyaqeyerA0KK+q5gOuzkeq0gA0KK+q5gOy2qe2biA0KK+q5gOyaqeq4sA0KK+q5gOyImO2YuA0KK+q5gOuzkeq2jA0KK+q5gOyYge2DnQ0KK+q5gOyDgeyImA0KK+q5gOynhOyasQ0KK+q5gOuzkeq3nA0KK+q5gO2YuOqwkA0KK+q5gOuvuOuFuA0KK+q5gOuCme2YuA0KK+q5gOuzkeq3vA0KK+q5gOqzhOq4sA0KK+q5gO2XjOusuA0KK+q5gOydvO2ZmA0KK+q5gOuzkeq4sA0KK+q5gOyaqeyIoA0KK+q5gOyImeyhsA0KK+q5gOyDgeyasQ0KK+q5gOuzkeuLrA0KK+q5gOywqOyErQ0KK+q5gOyDgeyYgQ0KK+q5gOy2qeyYgQ0KK+q5gOuzkeuNlQ0KK+q5gOq3nOyXtA0KK+q5gOyDgeykgA0KK+q5gOunjOyasA0KK+q5gOuzkeuNlQ0KK+q5gOy2qeyImA0KK+q5gOygkOuFuA0KK+q5gOyWuOyLnQ0KK+q5gOuzkeugpA0KK+q5gOyGoe2YuA0KK+q5gOyImOu0iQ0KK+q5gOyihe2drA0KK+q5gOuzkeugqA0KK+q5gOyiheqzpA0KK+q5gOyKueyImQ0KK+q5gOyiheyXsA0KK+q5gOuzkeumvA0KK+q5gOuFuOyImQ0KK+q5gOuPmeyaqQ0KK+q5gOyEseq3oA0KK+q5gOuzkeunjA0KK+q5gO2YuO2ctA0KK+q5gOyImOyekA0KK+q5gOusuOuPhA0KK+q5gOuzkeyCvA0KK+q5gOyEseybkA0KK+q5gOyasOyImQ0KK+q5gOybkOu0iQ0KK+q5gOuzkeyCvA0KK+q5gOyduOyImA0KK+q5gOywveyInA0KK+q5gOuPmeq1rQ0KK+q5gOuzkeyDgQ0KK+q5gOuzuOyekA0KK+q5gOq3nOyZhA0KK+q5gOyiheqwkQ0KK+q5gOuzkeyImA0KK+q5gOy5mOyInA0KK+q5gOuPmeyYgQ0KK+q5gOuztOuqqA0KK+q5gOuzkeyImA0KK+q5gOyXsOyEnQ0KK+q5gOyImOyInA0KK+q5gOyYgeuPhA0KK+q5gOuzkeyImA0KK+q5gOyEneuemA0KK+q5gOyiheyYgQ0KK+q5gO2YnOq2jA0KK+q5gOuzkeyLnQ0KK+q5gCDrtoANCivquYDrj4TsmqkNCivquYDrp4zrj4QNCivquYDrs5Hsl7ANCivquYDtlbTstpgNCivquYDsooXrj4QNCivquYDqsJXshK0NCivquYDrs5Hsl7QNCivquYDsiJnsiJwNCivquYDsoJXsiJgNCivquYDsirnquLgNCivquYDrs5HsmYQNCivquYDshJ3quLgNCivquYDsnKTsmrANCivquYDsmqnrspQNCivquYDrs5HsmqkNCivquYDshozrp4wNCivquYDrj5nquLgNCivquYDsmqnquLANCivquYDrs5HsmrANCivquYDsmqnso7wNCivquYDrp5Dsl70NCivquYDsnYDsiJgNCivquYDrs5HsmrANCivquYDrs5HsmKUNCivquYDsm5DqtawNCivquYDsmrDsiJgNCivquYDrs5Hsm5ANCivquYDssL3roZ0NCivquYDri6ztmLgNCivquYDtlYTsooUNCivquYDrs5HsnbUNCivquYDso7ztmLgNCivquYDsirnshJ0NCivquYDrtInrj4QNCivquYDrs5Hso7wNCivquYDsoJXrrLgNCivquYDtmITroYANCivquYDsg4Hqt7wNCivquYDrs5HspIANCivquYDtmY3sm5ANCivquYDquLDshLENCivquYDtg53siJgNCivquYDrs5HspIANCivquYDsoJXsiJgNCivquYDtko3showNCivquYDrqoXqt5wNCivquYDrs5Hsp4QNCivquYDqsr3snbwNCivquYDtmJXsp4QNCivquYDsnqztmZgNCivquYDrs5HssqANCivquYDsnKDquLANCivquYDsmIHtlZkNCivquYDrqoXshLENCivquYDrs5HstpgNCivquYDri6ztmIQNCivquYDtg5zsiJwNCivquYDrjZXsnpANCivquYDrs5Htg5wNCivquYDsnYDrrLgNCivquYDsoJXsmrANCivquYDsnbjsiJwNCivquYDrs5HtmLgNCivquYDqsr3si50NCivquYDrjZXtlYQNCivquYDtg5zrjZUNCivquYDrs5HtmLgNCivquYDtmqjshK0NCivquYDsmZXtmZgNCivquYDsiJjtg5wNCivquYDrs5HtmZgNCivquYDrs5HtmZgNCivquYDsg4Hrj4QNCivquYDsoJXsiJkNCivquYDrs5Htm4gNCivquYDtg5zquIgNCivquYDtnazsi6QNCivquYDqta3sg4ENCivquYDrs5Htm4gNCivquYDsp4TshKANCivquYDso7zqta0NCivquYDqtazquLANCivquYDrs5HtnawNCivquYDsmKXtmLgNCivquYDtlbTtmLgNCivquYDsoJXsiJkNCivquYDrs7TtmZgNCivquYDsl6zsobANCivquYDqsJHtnJgNCivquYDsnoTqs6QNCivquYDrs7XrnoANCivquYDri6zrtoQNCivquYDsiJjsnpANCivquYDrjIDquIgNCivquYDrs7XroKgNCivquYDsnqzqs6QNCivquYDsooXslaANCivquYDsmIHsmIENCivquYDrs7XroYANCivquYDsooXsi50NCivquYDtlYTrj4QNCivquYDsg4HssqANCivquYDrs7XshJ0NCivquYDsoJDshJ0NCivquYDrspTsoJUNCivquYDquLDsobANCivquYDrs7XsiJgNCivquYDrs5HsmrANCivquYDsmIHqt5wNCivquYDqtZDrr7wNCivquYDrs7XsiJgNCivquYDsg4Hrj5kNCivquYDsnKTrp4wNCivquYDsmIHtg50NCivquYDrs7XsiJkNCivquYDqsr3snpANCivquYDrr7jtmLgNCivquYDsmbjtmZgNCivquYDrs7XsiJwNCivquYDshLHtnawNCivquYDrj5ntmZgNCivquYDtg5zqt5wNCivquYDrs7XsiJwNCivquYDsi6DsobANCivquYDrs5HshK0NCivquYDsmIHsmKUNCivquYDrs7XsiKANCivquYDsg4HqtawNCivquYDshLjqsJENCivquYDrrLTrj4gNCivquYDrs7Xsi5wNCivquYDsnqzshKANCivquYDsmIHsl7QNCivquYDsnqzsnbUNCivquYDrs7Xsi6wNCivquYDrtIntm4gNCivquYDsiJjrtoQNCivquYDrj4TtmIQNCivquYDrs7Xsl7ANCivquYDqs4Tqt5wNCivquYDsnKTsm5ANCivquYDsmqntmLgNCivquYDrs7Xsl7ANCivquYDsnbjrnpgNCivquYDsp4TrtIkNCivquYDsg4HquLANCivquYDrs7XsmqkNCivquYDsmKXrtIkNCivquYDsmIHroYANCivquYDtlZnquLANCivquYDrs7XsnoQNCivquYDsmqnsmqkNCivquYDtg5zssqANCivquYDsnYTtg50NCivquYDrs7XsobANCivquYDstpjsiJkNCivquYDrp4zroZ0NCivquYDqtJHsmqkNCivquYDrs7XspIANCivquYDquLDrkZANCivquYDrp4zqsr0NCivquYDsnqztlbQNCivquYDrs7XtmIQNCivquYDsp4TsmrANCivquYDquLDqt5wNCivquYDtg5zspIANCivquYDrs7XtnawNCivquYDquLDsl7ANCivquYDtlYTqtowNCivquYDrp4zqs6QNCivquYDrtInqsJENCivquYDsnKTtnawNCivquYDsmIHsnKgNCivquYDsmIHqt7wNCivquYDrtInqtIANCivquYDqtJHrj4QNCivquYDsg4HsmrENCivquYDsm5Dsl7QNCivquYDrtInqtowNCivquYDsiJjsi50NCivquYDqt4DshLENCivquYDsg4HsnbQNCivquYDrtInqtowNCivquYDsp4TqtowNCivquYDshLHquLgNCivquYDstpjsooUNCivquYDrtInquLANCivquYDtg5zsiJwNCivquYDtg5zqt5wNCivquYDrj5nshKANCivquYDrtInquLANCivquYDspJHsmIENCivquYDqsJHsmIENCivquYDsnbTshJ0NCivquYDrtInquLgNCivquYDtg5zspIANCivquYDsooXtnawNCivquYDqsJXtnawNCivquYDrtInriqANCivquYDshJ3ssqANCivquYDsnZjslbwNCivquYDqtJHtlZkNCivquYDrtInrj4QNCivquYDqt7ztg50NCivquYDstpTshJ0NCivquYDsi6Dsp4QNCivquYDrtInshKANCivquYDtnaXrp4wNCivquYDrgqjsiJkNCivquYDshLHrtoQNCivquYDrtInshKANCivquYDrkZDrqqkNCivquYDsoJXsmKUNCivquYDquIjsl7QNCivquYDrtInshK0NCivquYDssL3rj4QNCivquYDrjIDrp4wNCivquYDquLDsnpANCivquYDrtInsiJgNCivquYAg642VDQor6rmA7KKF7J6QDQor6rmA7KCV7ZiEDQor6rmA67SJ7IiYDQor6rmA7J6s7KGwDQor6rmA7KO87ZWZDQor6rmA7Zqo7LCsDQor6rmA67SJ7J6QDQor6rmA64+Z7JqxDQor6rmA65GQ7IicDQor6rmA7ISx7KSADQor6rmA67SJ7KO8DQor6rmA7Iic7YOcDQor6rmA7Iq57JqpDQor6rmA64+Z7JqxDQor6rmA67SJ7KeEDQor6rmA7Jyk64K0DQor6rmA7J6s7IudDQor6rmA6rK96ri4DQor6rmA67SJ7KeEDQor6rmA7YOc7ZmYDQor6rmA7IOB64KoDQor6rmA64+Z7J6sDQor6rmA67SJ7Zi4DQor6rmA7KSA7IudDQor6rmA7J2A6recDQor6rmA7Zqo66y0DQor6rmA67SJ7Zi4DQor6rmA66y47ZeMDQor6rmA7Z2s7JqwDQor6rmA6reA7Z2sDQor6rmA67SJ7Zi4DQor6rmA6rK97IiYDQor6rmA7ZWZ65OdDQor6rmA7ZW07Zi4DQor6rmA67aA6re8DQor6rmA67aE7JewDQor6rmA7Zqo7IOdDQor6rmA6riw6regDQor6rmA67aA7ZiVDQor6rmA7JiB7IK8DQor6rmA7KCV64+ZDQor6rmA67OR7KGwDQor6rmA67aE64KoDQor6rmA7KCV7J6QDQor6rmA6ri47KO8DQor6rmA64yA67aEDQor6rmA67aE7ISgDQor6rmA7Z2s64usDQor6rmA7IK87IudDQor6rmA7YOc6rWsDQor6rmA67aE7JWFDQor6rmA7KCV7JqpDQor6rmA7IiY67CwDQor6rmA7KCc642VDQor6rmA67aE7Je0DQor6rmA6rSR7Zi4DQor6rmA7JiB7IiYDQor6rmA6rSR7IiYDQor6rmA67aE7J20DQor6rmA64+Z656YDQor6rmA7YOc7J6QDQor6rmA7YOc7IicDQor6rmA67aE7J20DQor6rmA7JiB6rOEDQor6rmA7Jqw64KoDQor6rmA7JaR7KSADQor6rmA67aE7KGwDQor6rmA7LCo7Z2sDQor6rmA6rSA64yADQor6rmA7ISx7ISgDQor6rmA7IKs6rOkDQor6rmA7YOc7IudDQor6rmA7KeE7JqwDQor6rmA7IiY7IudDQor6rmA7IKs7IicDQor6rmA7IOB7LKgDQor6rmA7J6s7KSADQor6rmA7KKF7KGwDQor6rmA7IKs7J28DQor6rmA7Jyk7JiBDQor6rmA6rK96riwDQor6rmA6riw64+ZDQor6rmA7IKs7KGwDQor6rmA7KCV7IiYDQor6rmA7ISx7LKgDQor6rmA66eM7JWgDQor6rmA7IK86rWtDQor6rmA7ISx6re8DQor6rmA6rec7Zi4DQor6rmA6riw67aEDQor6rmA7IK864KoDQor6rmA7Jqp7JqwDQor6rmA7YOc7KSRDQor6rmA67OR7ISxDQor6rmA7IK864+ZDQor6rmA7IK87YOcDQor6rmA7KCV7IudDQor6rmA7JqU7ISdDQor6rmA7IK866qFDQor6rmA7LC97Z2sDQor6rmA7ZmN7Z2sDQor6rmA7YOc7IicDQor6rmA7IK867CpDQor6rmA67OR67SJDQor6rmA7JiB7ZuIDQor6rmA66Ck6ri4DQor6rmA7IK867SJDQor6rmA6riw6raMDQor6rmA7JiB7KSADQor6rmA7KKF7IudDQor6rmA7IK87IOBDQor6rmA64yA7IiYDQor6rmA66qF6rWsDQor6rmA7IOB7Z2sDQor6rmA7IK87IiYDQor6rmA7Z2s7IOBDQor6rmA7KKF7KSRDQor6rmA6riI656YDQor6rmA7IK87IiYDQor6rmA7KKF7Jq0DQor6rmA7KCV7ZiEDQor6rmA7JiB7IiYDQor6rmA7IK87JqpDQor6rmA7J217KeEDQor6rmA66qF7Zi4DQor6rmA7J6s7JuQDQor6rmA7IK87JqpDQor6rmA7ISx64+ZDQor6rmA7Iic66GcDQor6rmA7IaM7Zi4DQor6rmA7IK87KGwDQor6rmA7JiB656YDQor6rmA67O17ZWcDQor6rmA7JuQ7ZmYDQor6rmA7IK87KeEDQor6rmA7JiB7KKFDQor6rmA7KKF6recDQor6rmA7KKF7ZW0DQor6rmA7IK87LacDQor6rmA7YOc7LaYDQor6rmA7J286rWsDQor6rmA7IOB7KSADQor6rmA7IK87LacDQor6rmA7Jyk7IudDQor6rmA7KeE6riIDQor6rmA7JiB7ISdDQor6rmA7IK87Zi4DQor6rmA7LKg7IOBDQor6rmA7J2467SJDQor6rmA7J2Y7Zi4DQor6rmA7IOBDQor6rmA7YOdDQor6rmA7LKgDQor6rmA7YOcDQor6rmA7IOB6rOkDQor6rmA7JiB6rWsDQor6rmA7IOB67mIDQor6rmA65GQ7KKFDQor6rmA7IOB6rOkDQor6rmA7KeE7JWUDQor6rmA6rO17ZiEDQor6rmA7KeE6recDQor6rmA7IOB6rOkDQor6rmA7KSA7LacDQor6rmA7Iic7J6QDQor6rmA7ISx7Jq0DQor6rmA7IOB6rSADQor6rmA7Z2s7IiYDQor6rmA7ISg6raMDQor6rmA7IiY7IStDQor6rmA7IOB6rWsDQor6rmA7ISg7ISdDQor6rmA66+47JqpDQor6rmA7ZW07ISgDQor6rmA7IOB6rWsDQor6rmA7YOc7ZWYDQor6rmA6rec7JewDQor6rmA7Jew7IiYDQor6rmA7IOB6rWsDQor6rmA6re57J28DQor6rmA7YOc7Jq0DQor6rmA7KKF7JqpDQor6rmA7IOB6rWsDQor6rmA7Z2s7ZuIDQor6rmA7ZW07JuQDQor6rmA7Jyk7LacDQor6rmA7IOB6raMDQor6rmA67OR7ZGcDQor6rmA7IOB7LKcDQor6rmA7ZWE64KcDQor6rmA7IOB6recDQor6rmA7ISx6rK9DQor6rmA6rOh7LCsDQor6rmA6reA7Zi4DQor6rmA7IOB6recDQor6rmA7Iic6rOkDQor6rmA66qF7JewDQor6rmA7LKc67ORDQor6rmA7IOB6recDQor6rmA7Jqp7JiBDQor6rmA7KKF7IStDQor6rmA7KKF7IiZDQor6rmA7IOB6recDQor6rmA66y07Z2sDQor6rmA7Jqw7LacDQor6rmA6rK96riwDQor6rmA7IOB6regDQor6rmA7JiB7IiYDQor6rmA7J2Y7J28DQor6rmA7J2R7Z2sDQor6rmA7IOB6re8DQor6rmA7LaY7YOBDQor6rmA7ISx7KCQDQor6rmA7JuQ7JilDQor6rmA7IOB6re8DQor6rmA7LCo67SJDQor6rmA7KCV67KUDQor6rmA7KKM7IicDQor6rmA7IOB6riwDQor6rmA7Z2s67CwDQor6rmA7KKF642VDQor6rmA67OR7KCVDQor6rmA7IOB6ri4DQor6rmA7Jqx7Zy0DQor6rmA7J2867CwDQor6rmA7IS47IiYDQor6rmA7IOB642VDQor6rmA7ZW07ISgDQor6rmA64yA6rCRDQor6rmA7Jew67SJDQor6rmA7IOB642VDQor6rmA7LC967SJDQor6rmA7J6s7ISgDQor6rmA7J6s7Z2sDQor6rmA7IOB642VDQor6rmA6rK97YOcDQor6rmA67aE7LKcDQor6rmA6rCR7IiYDQor6rmA7IOB642VDQor6rmA7Iic64usDQor6rmA7J6s7Zi4DQor6rmA66+47KeEDQor6rmA7IOB64+IDQor6rmA7Jqp7J6QDQor6rmA7JiB7IudDQor6rmA67OR7Zi4DQor6rmA7IOB66GdDQor6rmA66+47IStDQor6rmA7Zi47Zi4DQor6rmA6rK97IudDQor6rmA7IOB66eMDQor6rmA7J2E7JqwDQor6rmA66qF7JqpDQor6rmA7Je07KeEDQor6rmA7IOB66eMDQor6rmA64us7IS4DQor6rmA7J6Q7JqxDQor6rmA7Jyk7Zi4DQor6rmA7IOB66y4DQor6rmA7Jil7JqpDQor6rmAIOywvQ0KK+q5gO2drO2DnQ0KK+q5gOyDgeusuA0KK+q5gOyaqeyaqQ0KK+q5gO2XjO2DnQ0KK+q5gOuqhe2YhA0KK+q5gOyDgeuvuA0KK+q5gOq4sOyYgQ0KK+q5gOyxhOydvA0KK+q5gOyEse2YuA0KK+q5gOyDgeuwsA0KK+q5gOyYgeq4uA0KK+q5gOuqhe2YhA0KK+q5gOyDgeyInA0KK+q5gOyDgeyEnQ0KK+q5gOy2lOyXsA0KK+q5gOycpOqxtA0KK+q5gOygleyXtA0KK+q5gOyDgeyErQ0KK+q5gOyiheyLnQ0KK+q5gOyInOy2nA0KK+q5gOyiheq1rQ0KK+q5gOyDgeyImA0KK+q5gOyWuOuNlQ0KK+q5gOyCvO2YnA0KK+q5gOyImOuemA0KK+q5gOyDgeyImA0KK+q5gOyerOydtA0KK+q5gOyDge2YhA0KK+q5gOqwleyEoA0KK+q5gOyDgeyImA0KK+q5gOygleu0iQ0KK+q5gO2DnOyYpQ0KK+q5gOyCvOuemA0KK+q5gOyDgeyImA0KK+q5gOynhOuPmQ0KK+q5gOy5oOydtA0KK+q5gOyEse2VnA0KK+q5gOyDgeyImQ0KK+q5gO2ZjeyEnQ0KK+q5gOuzkeyhsA0KK+q5gOyblO2ZmA0KK+q5gOyDgeyIoA0KK+q5gO2YuOuwsA0KK+q5gOyCvOyEnQ0KK+q5gOyGkOyEnQ0KK+q5gOyDgeyLnA0KK+q5gOyepeycpA0KK+q5gOq4sO2YhA0KK+q5gOyerOydtA0KK+q5gOyDgeyLnQ0KK+q5gOyiheyEsQ0KK+q5gOydgO2ZlA0KK+q5gOy2mO2YhA0KK+q5gOyDgeyXsA0KK+q5gOyYge2DnA0KK+q5gOynhOq0gA0KK+q5gOyEoOykgA0KK+q5gOyDgeyXsA0KK+q5gOyaqe2VtA0KK+q5gOyDgeqzpA0KK+q5gOqxtOybkA0KK+q5gOyDgeyXtA0KK+q5gOuNleywrA0KK+q5gOycpOyasA0KK+q5gOyjvOyEsQ0KK+q5gOyDgeyXtA0KK+q5gOuzke2biA0KK+q5gOyDgeq3vA0KK+q5gOuqheuLrA0KK+q5gOyDgeyYgQ0KK+q5gOq4iOuPmQ0KK+q5gOu2hOyEnQ0KK+q5gOykkeyLnQ0KK+q5gOyDgeyYpA0KK+q5gOuzke2YuA0KK+q5gOyInOuPmQ0KK+q5gOywveyaqQ0KK+q5gOyDgeyaqQ0KK+q5gOygle2YhA0KK+q5gO2ZjeykgA0KK+q5gOunkOq1kA0KK+q5gOyDgeyaqQ0KK+q5gOywrOybkA0KK+q5gOq4sOyLnQ0KK+q5gOuztO2VmA0KK+q5gOyDgeyaqQ0KK+q5gOykgOuNlQ0KK+q5gOycpOq3vA0KK+q5gOydvOujoQ0KK+q5gOyDgeyatA0KK+q5gOyXsO2YuA0KK+q5gOuvuOqzpA0KK+q5gOqyveunjA0KK+q5gOyDgeybkA0KK+q5gOuPmeqzhA0KK+q5gOygkO2drA0KK+q5gOuPhOyLnQ0KK+q5gOyDgeycpA0KK+q5gOydkeusuA0KK+q5gO2YuOuhnQ0KK+q5gOyduOyDnQ0KK+q5gOyDgeycqA0KK+q5gOyYge2VmA0KK+q5gO2ZlOyInA0KK+q5gOqyveuhnQ0KK+q5gOyDgeycqA0KK+q5gOyaqeyImA0KK+q5gOuPmeq3vA0KK+q5gOyerOyEsQ0KK+q5gOyDgeycqA0KK+q5gOynhO2DnA0KK+q5gOq0ke2VmQ0KK+q5gO2VtOyhsA0KK+q5gOyDgeydkQ0KK+q5gOu0ieq4sA0KK+q5gOuzkeq1rQ0KK+q5gOuFuOq3oA0KK+q5gOyDgeydvA0KK+q5gOycpO2VmQ0KK+q5gOyDgeyihQ0KK+q5gOq0keyglQ0KK+q5gOyDgeydvA0KK+q5gOuzkeywrA0KK+q5gOywve2YlQ0KK+q5gOyEneyErQ0KK+q5gOyDgeydvA0KK+q5gOyGjOuMgA0KK+q5gOyKueudvA0KK+q5gOyDgeq3vA0KK+q5gOyDgeyerA0KK+q5gOycoOyImA0KK+q5gOqxtOybkA0KK+q5gOyihe2ZmA0KK+q5gOyDgeyhsA0KK+q5gOy2mOuPhA0KK+q5gOyLneuNlQ0KK+q5gOuPme2YuA0KK+q5gOyDgeyihQ0KK+q5gOy2mOyErQ0KK+q5gO2ZjeyImA0KK+q5gOyerOyZhA0KK+q5gOyDgeykkQ0KK+q5gOyDge2drA0KK+q5gOyDge2bhA0KK+q5gOyepeu0iQ0KK+q5gOyDgeynhA0KK+q5gOuFuOyEnQ0KK+q5gOuLrOuCqA0KK+q5gOyaqeybkA0KK+q5gOyDgeynhA0KK+q5gOuqheyEnQ0KK+q5gOuzkeyXtA0KK+q5gOydgOyIoA0KK+q5gOyDgeyynA0KK+q5gOyInOynhA0KK+q5gO2DnOq1rA0KK+q5gOyYgeyekA0KK+q5gOyDgeyyoA0KK+q5gOyGoeyImA0KK+q5gOyLpO2VnA0KK+q5gO2YhOyYgQ0KK+q5gOyDgeyyoA0KK+q5gOyaqeq4uA0KK+q5gOyDge2YuA0KK+q5gOq4iOyekA0KK+q5gOyDgeyyoA0KK+q5gOuCqOyEnQ0KK+q5gOyYgeyImA0KK+q5gOybheuMgA0KK+q5gOyDge2DnA0KK+q5gOuvuOyEnQ0KK+q5gO2YuOq3nA0KK+q5gOyYgeyYpQ0KK+q5gOyDge2DnA0KK+q5gOyngO2YuA0KK+q5gOykgOyEsQ0KK+q5gO2DnOyLnQ0KK+q5gOyDge2DnA0KK+q5gOykke2YuA0KK+q5gOyKueuztQ0KK+q5gOyerOq2jA0KK+q5gOyDge2VmA0KK+q5gOyDgeyErQ0KK+q5gOuptO2YuA0KK+q5gOyDgeyYpQ0KK+q5gOyDge2VnA0KK+q5gO2YuO2biA0KK+q5gOu0ieq2jA0KK+q5gOuPmeyLnQ0KK+q5gOyDge2XjA0KK+q5gOyYgeyekA0KK+q5gOyngO2YuA0KK+q5gOq0gO2YhA0KK+q5gOyDge2YgQ0KK+q5gOyYge2ZmA0KK+q5gOyihe2drA0KK+q5gOuqheywrA0KK+q5gOyDge2YhA0KK+q5gOqyveykgA0KK+q5gOygkOu0iQ0KK+q5gOykke2VmQ0KK+q5gOyDge2YhA0KK+q5gOyCvOyImA0KK+q5gO2aqOy2mA0KK+q5gOyYgeuztQ0KK+q5gOyDge2YhA0KK+q5gOyEse2ZmA0KK+q5gOq4sOusuA0KK+q5gOyiheyEsQ0KK+q5gOyDge2YuA0KK+q5gOyasOq3nA0KK+q5gOqyveqwkQ0KK+q5gOywve2YhA0KK+q5gOyDge2YuA0KK+q5gOydgO2YhA0KK+q5gOq4sOqyvQ0KK+q5gOqyveuTnQ0KK+q5gOyDge2YuA0KK+q5gOuzteyIoA0KK+q5gOyerOyInA0KK+q5gOu2hO2aqA0KK+q5gOyDge2YuA0KK+q5gOuCtO2DnQ0KK+q5gOydgOyEsQ0KK+q5gOydgOyekA0KK+q5gOyDge2ZjQ0KK+q5gOyYgeyVlA0KK+q5gOyImeuvuA0KK+q5gOyxhO2drA0KK+q5gOyDge2ZmA0KK+q5gOydvO2ZmA0KK+q5gOy2mO2YuA0KK+q5gOuvuO2YhA0KK+q5gOyDge2biA0KK+q5gOyerO2VmA0KK+q5gOuLrOyInA0KK+q5gOyasO2YuA0KK+q5gOyDge2drA0KK+q5gOq0keyYgQ0KK+q5gOqxtOq4sA0KK+q5gOunjOyyoA0KK+q5gOyDge2drA0KK+q5gOq4sOyYpQ0KK+q5gO2XjO2drA0KK+q5gOusuOyImQ0KK+q5gOyDge2drA0KK+q5gO2DnOyasA0KK+q5gO2VmeyIoA0KK+q5gOyaqeyEnQ0KK+q5gOyEnOyVlA0KK+q5gOuMgO2DnA0KK+q5gOqzhOyEnQ0KK+q5gOyiheq4iA0KK+q5gOyEneqzpA0KK+q5gOyInOyVoA0KK+q5gO2DnOyhsA0KK+q5gOuFuO2drA0KK+q5gOyEneq0gA0KK+q5gOuzteyWkQ0KK+q5gOyaqe2ZmA0KK+q5gO2VtO2YhA0KK+q5gOyEneq3nA0KK+q5gOyYgeq3nA0KK+q5gO2DnOuTnQ0KK+q5gOyiheyYgQ0KK+q5gOyEneq3oA0KK+q5gOqyve2drA0KK+q5gOuMgO2ZqQ0KK+q5gOywqOyaqQ0KK+q5gOyEneq3vA0KK+q5gOygkOqyvQ0KK+q5gO2MkO2VhA0KK+q5gOygleyynA0KK+q5gOyEneq3vA0KK+q5gOyduOyYpQ0KK+q5gOywveyXtA0KK+q5gO2DnOyEuA0KK+q5gOyEneq3vA0KK+q5gOqwkeunjA0KK+q5gOygleyVlA0KK+q5gO2VtOqzpA0KK+q5gOyEneuFuA0KK+q5gOygleuRkA0KK+q5gOuPhOywvQ0KK+q5gOyIme2RnA0KK+q5gOyEneuPhA0KK+q5gOyInOyerA0KK+q5gO2DnOybkA0KK+q5gO2VtOunjA0KK+q5gOyEneuPmQ0KK+q5gO2MkOyghA0KK+q5gOyaqe2YuA0KK+q5gOydvOyImA0KK+q5gOyEneuegA0KK+q5gOyiheu0iQ0KK+q5gOuzkeyImA0KK+q5gOybkO2PiQ0KK+q5gOyEneyImA0KK+q5gOu0ieuNlQ0KK+q5gOy2mOyXtA0KK+q5gOunkOq3vA0KK+q5gOyEneyInA0KK+q5gOq4uOuztQ0KK+q5gOqyveyIoA0KK+q5gOyhsO2YhA0KK+q5gOyEneyVlA0KK+q5gOuPmeyCvA0KK+q5gOuMgOyLnQ0KK+q5gOqyve2YuA0KK+q5gOyEneyXsA0KK+q5gOq3gOu0iQ0KK+q5gOyDgey2nA0KK+q5gOynhOqxtA0KK+q5gOyEneyXtA0KK+q5gOynhO2YhA0KK+q5gOuFuOu0iQ0KK+q5gOq4uOyVoA0KK+q5gOyEneydtA0KK+q5gO2DnOyXsA0KK+q5gOyatOyLnQ0KK+q5gO2DnOunjA0KK+q5gOyEneyerA0KK+q5gOuLrO2DgQ0KK+q5gOyiheuhnQ0KK+q5gOyDge2YhA0KK+q5gOyEneyhsA0KK+q5gOq2jOydtQ0KK+q5gOusuOq3nA0KK+q5gOyDgeuylA0KK+q5gOyEneyihQ0KK+q5gO2XjOq3nA0KK+q5gOuvuOykgA0KK+q5gO2DnOunjA0KK+q5gOyEneykgA0KK+q5gOuPmeyEnQ0KK+q5gOuvuOydvA0KK+q5gOq4sOuztQ0KK+q5gOyEneynhA0KK+q5gOyDgeyEnQ0KK+q5gOyImOyehA0KK+q5gOyaqeyhsA0KK+q5gOyEneyynA0KK+q5gOqyveq0gA0KK+q5gOyYgeycoA0KK+q5gOyEseyEnQ0KK+q5gOyEneyyoA0KK+q5gOyerOq4iA0KK+q5gOyYgeyaqQ0KK+q5gOq3nOykgA0KK+q5gOyEne2ZmA0KK+q5gOyGjOyepQ0KK+q5gOuCmeyInA0KK+q5gOuMgOyglQ0KK+q5gOyEoOq1kA0KK+q5gOyYgeyImA0KK+q5gOykkeqwkQ0KK+q5gOyEseyImA0KK+q5gOyEoOuNlQ0KK+q5gOyYgeyehA0KK+q5gOuzkeyErQ0KK+q5gOygleyImA0KK+q5gOyEoOunjA0KK+q5gOyEseygnA0KK+q5gOywqOyYpA0KK+q5gOy2mOyImA0KK+q5gOyEoOuvuA0KK+q5gOywveyekA0KK+q5gO2aqOuvuA0KK+q5gOygleyImA0KK+q5gOyEoOu0iQ0KK+q5gOyaqeycpA0KK+q5gOuzteyEsQ0KK+q5gOyasOyYgQ0KK+q5gOyEoOu2hA0KK+q5gOyEseyEsQ0KK+q5gO2VhO2DnA0KK+q5gOq0ke2YhA0KK+q5gOyEoOyIoA0KK+q5gOynhOyekA0KK+q5gO2ZjeqwgQ0KK+q5gO2DnOyynA0KK+q5gOyEoOyasA0KK+q5gOuzteyaqQ0KK+q5gOyihe2drA0KK+q5gOuzte2ZmA0KK+q5gOyEoOyasQ0KK+q5gOygkOyaqQ0KK+q5gOuzkeyImA0KK+q5gOyDgeyImA0KK+q5gOyEoOyasQ0KK+q5gOq4sOyatA0KK+q5gOykgO2YuA0KK+q5gO2VtOyerA0KK+q5gOyEoOydtA0KK+q5gOygleyImA0KK+q5gOyDgeyImQ0KK+q5gOq4sOyekA0KK+q5gOyEoOydtA0KK+q5gOy2mOyasA0KK+q5gOygleyLnQ0KK+q5gOyInOyduA0KK+q5gOyEoOydtA0KK+q5gOqyve2YuA0KK+q5gOyEoOyImA0KK+q5gO2drOyErQ0KK+q5gOyEoOydtA0KK+q5gOycpOybkA0KK+q5gOygle2RnA0KK+q5gOycpOq1sA0KK+q5gOyEoOydtA0KK+q5gOyYgeyVoA0KK+q5gOyerOyImA0KK+q5gOyCvOq3nA0KK+q5gOyEoOyekA0KK+q5gOq3vOyjvA0KK+q5gOuPmeykkQ0KK+q5gOqyveyEnQ0KK+q5gOyEoOyekA0KK+q5gOygleugqA0KK+q5gOuPmeyekA0KK+q5gO2ZjeuPmQ0KK+q5gOyEoOykkQ0KK+q5gOyEneyEoA0KK+q5gOyYge2biA0KK+q5gOyXsOynhA0KK+q5gOyEoO2DnA0KK+q5gOyYgeyLnQ0KK+q5gOq3nOybhQ0KK+q5gOyerOynhA0KK+q5gOyEoO2DnA0KK+q5gOuzkeuPjA0KK+q5gOyDgeuNlQ0KK+q5gOyMje2RnA0KK+q5gOyEoO2DnA0KK+q5gOyDge2WiQ0KK+q5gOyYgeuPmQ0KK+q5gOyImOyhsA0KK+q5gOyEoO2aqA0KK+q5gOyImOyynA0KK+q5gOyYpeydvA0KK+q5gOyihe2PrA0KK+q5gOyEoO2drA0KK+q5gOyiheuLrA0KK+q5gOustOq4sA0KK+q5gOqyveyEnQ0KK+q5gOyEoO2drA0KK+q5gOyCvO2ZlA0KK+q5gOydmO2VnA0KK+q5gOyhsOqzoA0KK+q5gOyEoO2drA0KK+q5gOyjvOyehA0KK+q5gO2ZmOq4sA0KK+q5gO2YgeyImA0KK+q5gOyEpOyekA0KK+q5gOyjvOuPmQ0KK+q5gOyDgeyIoA0KK+q5gOyerOybkA0KK+q5gOyEseqzhA0KK+q5gOywqOycpA0KK+q5gOuNleu5iA0KK+q5gOqyve2drA0KK+q5gOyEseqzpA0KK+q5gOyYpeq4uA0KK+q5gOyduOuPmQ0KK+q5gOyGjO2biA0KK+q5gOyEseqzpA0KK+q5gOyCrOyEpA0KK+q5gO2MkOunjA0KK+q5gOuPmeyynA0KK+q5gOyEseqzpA0KK+q5gOycpOykgA0KK+q5gO2DnOq3oA0KK+q5gO2MlOyYpQ0KK+q5gOyEseqzpA0KK+q5gOynhO2VmA0KK+q5gOyGjO2aqA0KK+q5gOyEse2ZmA0KK+q5gOyEseq1rA0KK+q5gOyerOydvA0KK+q5gOyiheyImA0KK+q5gOyasOyInA0KK+q5gOyEseq1rA0KK+q5gOyDgeuMgA0KK+q5gOyduOyImA0KK+q5gOyYgeuMgA0KK+q5gOyEseq1rA0KK+q5gOunjO2ZmA0KK+q5gO2drOq4sA0KK+q5gOyEneu2hA0KK+q5gOyEseq1rA0KK+q5gOyYgeusuA0KK+q5gOuzkeq1rA0KK+q5gOynhOq2jA0KK+q5gOyEseq1rA0KK+q5gO2DnOq4sA0KK+q5gOyInOygkA0KK+q5gOyDgeyhsA0KK+q5gOyEseq3nA0KK+q5gOyInOyyoA0KK+q5gOyCrOq3nA0KK+q5gOydvO2YuA0KK+q5gOyEseq3nA0KK+q5gOustOuwsA0KK+q5gOyYge2YhA0KK+q5gOyerOyYpQ0KK+q5gOyEseq3nA0KK+q5gOu0ieq3nA0KK+q5gOynhOyasA0KK+q5gOyEseuPhA0KK+q5gOyEseq3vA0KK+q5gOuylOyImQ0KK+q5gO2biOyyoA0KK+q5gOyasO2ZmA0KK+q5gOyEseq3vA0KK+q5gO2YuO2drA0KK+q5gO2DnOyekA0KK+q5gOyKueyEoA0KK+q5gOyEseq4sA0KK+q5gOyihe2YhA0KK+q5gOygkOuylA0KK+q5gOyaqeyImA0KK+q5gOyEseq4sA0KK+q5gOyehOygnA0KK+q5gOyEseydvA0KK+q5gOuzke2DnA0KK+q5gOyEseq4sA0KK+q5gOyYpeq1rQ0KK+q5gO2DnO2ZlA0KK+q5gOyynO2drA0KK+q5gOyEseq4sA0KK+q5gOyYgeu2hA0KK+q5gOyYpeyEnQ0KK+q5gOuNleq0gA0KK+q5gOyEseq4sA0KK+q5gOuFuOybkA0KK+q5gOyYgeyLnQ0KK+q5gOycpOuPmQ0KK+q5gOyEseq4sA0KK+q5gOyatOyatA0KK+q5gOyYgeyInA0KK+q5gOyDgeyihQ0KK+q5gOyEseq4sA0KK+q5gOuzkeyjvA0KK+q5gOustO2YuA0KK+q5gOyaqe2VmQ0KK+q5gOyEseq4sA0KK+q5gOyDgeyasA0KK+q5gOuzke2VmQ0KK+q5gOygleynhA0KK+q5gOyEseuCqA0KK+q5gOykkeyDgQ0KK+q5gOykgO2drA0KK+q5gOyiheyZhA0KK+q5gOyEseuNlQ0KK+q5gO2VtOyaqQ0KK+q5gOyYgeq1rA0KK+q5gOyDgeynhA0KK+q5gOyEseuPhA0KK+q5gOybkOqzpA0KK+q5gOyduOybkA0KK+q5gOudveyLnQ0KK+q5gOyEseuPhA0KK+q5gOu0ieydtA0KK+q5gOycoOyxhA0KK+q5gOygleyhsA0KK+q5gOyEseudvQ0KK+q5gOyDge2ZmA0KK+q5gOyjvOy5oA0KK+q5gOyXsOyYpQ0KK+q5gOyEseugrA0KK+q5gOygleyyoA0KK+q5gOyDgeyyoA0KK+q5gOyWteuqqQ0KK+q5gOyEseuhgA0KK+q5gOydkeyjvA0KK+q5gOyImO2ZmA0KK+q5gO2DgOyImQ0KK+q5gOyEseuloA0KK+q5gO2YuOyImA0KK+q5gOqyve2YuA0KK+q5gO2YhOudvQ0KK+q5gOyEseunjA0KK+q5gOywveydvA0KK+q5gOyyoO2RnA0KK+q5gO2drO2VmQ0KK+q5gOyEseuqqQ0KK+q5gOq0keunjA0KK+q5gO2DneyWuA0KK+q5gOynhOyGjA0KK+q5gOyEseusuA0KK+q5gOq3vOq4sA0KK+q5gOydhOyjvA0KK+q5gOyInOuPjA0KK+q5gOyEseuwsA0KK+q5gOygleyDnQ0KK+q5gOyGjOq2jA0KK+q5gOqxtOq4sA0KK+q5gOyEseuwsA0KK+q5gOq0gOqxtA0KK+q5gOygle2drA0KK+q5gOyEse2ZmA0KK+q5gOyEseuztQ0KK+q5gOyaqe2drA0KK+q5gOu2hO2PrA0KK+q5gOq4sOuqqQ0KK+q5gOyEseuztQ0KK+q5gOyaqe2YhA0KK+q5gOq0keuqqA0KK+q5gOykgO2DnQ0KK+q5gOyEseyDnQ0KK+q5gOuqhe2ZjQ0KK+q5gOyjvOybhQ0KK+q5gOyiheqxtA0KK+q5gOyEseyEoA0KK+q5gOq4sO2ZjQ0KK+q5gOygkO2DgQ0KK+q5gOyerOq2jA0KK+q5gOyEseyImA0KK+q5gOyEoOyImQ0KK+q5gOuCmeynhA0KK+q5gOu2hOusuA0KK+q5gOyEseyImA0KK+q5gOuPmeygnA0KK+q5gOy2mOuwlQ0KK+q5gOq4sOybhQ0KK+q5gOyEseyImA0KK+q5gO2DnOuztQ0KK+q5gOyZhOyYpQ0KK+q5gOq0keyInA0KK+q5gOyEseyImA0KK+q5gOy2mOydtQ0KK+q5gOq4uO2YuA0KK+q5gOyEseyYgQ0KK+q5gOyEseyInA0KK+q5gOyEuOynhA0KK+q5gOyGjOyLnQ0KK+q5gOq3vOynhA0KK+q5gOyEseyLnQ0KK+q5gOyaqeyjvA0KK+q5gOyekOyLnQ0KK+q5gOuqhe2ZjQ0KK+q5gOyEseyXtA0KK+q5gOyYgeyasA0KK+q5gOygleq0kQ0KK+q5gO2XjOydvA0KK+q5gOyEseyXtA0KK+q5gOustOyInA0KK+q5gOyLrOyehA0KK+q5gOqwkeyImA0KK+q5gOyEseyXtA0KK+q5gOyynOydvA0KK+q5gOyerOuMgA0KK+q5gOyYgeuPhA0KK+q5gOyEseyXtA0KK+q5gOuPmeyLnQ0KK+q5gOycoOyLnQ0KK+q5gOyYgeudvQ0KK+q5gOyEseyYgQ0KK+q5gOyduOuNlQ0KK+q5gOy2qeuqqQ0KK+q5gOyEse2YuA0KK+q5gOyEseyaqQ0KK+q5gOuCqOyInA0KK+q5gOyihe2ZmA0KK+q5gOusuOq3nA0KK+q5gOyEseyaqQ0KK+q5gOyZuOuPmQ0KK+q5gOy5oOuPhA0KK+q5gOqyveuFuA0KK+q5gOyEseyaqQ0KK+q5gOykkeyyoA0KK+q5gOyImO2YhA0KK+q5gOyYpeuztQ0KK+q5gOyEseyasA0KK+q5gOyepeyIoA0KK+q5gOyYgeyglQ0KK+q5gO2DnOyynA0KK+q5gOyEseyasA0KK+q5gOqxtOq4uA0KK+q5gOuqheyLnQ0KK+q5gOq0gOq3vA0KK+q5gOyEseyasA0KK+q5gOuqheyEpA0KK+q5gOyCvOyduA0KK+q5gOyihe2drA0KK+q5gOyEseyasA0KK+q5gOydmOyasA0KK+q5gOyImOyduA0KK+q5gOyLnOyIoA0KK+q5gOyEseyasQ0KK+q5gOyGjOuRkA0KK+q5gOq3vOuwsA0KK+q5gOyEseyImA0KK+q5gOyEseyatA0KK+q5gOq3vOynhA0KK+q5gOyYgeuLrA0KK+q5gO2YhO2DnA0KK+q5gOyEseyatA0KK+q5gOyerOyihQ0KK+q5gOygley2mA0KK+q5gOq0keyInA0KK+q5gOyEseyatA0KK+q5gOqyve2YuA0KK+q5gOynhO2ZmA0KK+q5gOunjOq3vA0KK+q5gOyEseycpA0KK+q5gOygleyEnQ0KK+q5gOuPhOyjvA0KK+q5gOuzke2VnA0KK+q5gOyEseydvA0KK+q5gOyLnO2VmQ0KK+q5gOyImO2VmQ0KK+q5gOqwleq4sA0KK+q5gOyEseydvA0KK+q5gOyepeqwnA0KK+q5gOuNleq1kA0KK+q5gOq3vOuPmQ0KK+q5gOyEseydvA0KK+q5gOuzkeyasA0KK+q5gOyDgeyWuA0KK+q5gOq4sOybhQ0KK+q5gOyEseyerA0KK+q5gOq0keyyoA0KK+q5gOuzkey5mA0KK+q5gOyerOyInA0KK+q5gOyEseyhsA0KK+q5gOyerO2ZmA0KK+q5gOunjOyyoA0KK+q5gOyXsOyInA0KK+q5gOyEseyjvA0KK+q5gOuNle2DnA0KK+q5gOybkOq3nA0KK+q5gOyerO2YuA0KK+q5gOyEseykgA0KK+q5gO2DnOyInA0KK+q5gOygleq4sA0KK+q5gO2YnOuTnQ0KK+q5gOyEseynhA0KK+q5gOyaqeyjvA0KK+q5gOq4iOyZhA0KK+q5gOyerOuPhA0KK+q5gOyEseynhA0KK+q5gOy2mOydtA0KK+q5gO2YhOyhsA0KK+q5gO2drOuhgA0KK+q5gOyEsey2nA0KK+q5gOyihe2YuA0KK+q5gCDsmqkNCivquYDsnKDshK0NCivquYDshLHsuZgNCivquYDrs5Hrj4QNCivquYDsnqzsp4QNCivquYDsnqzshJ0NCivquYDshLHtg5wNCivquYDsoJXtmLgNCivquYDsmqntlbQNCivquYDshLHquLgNCivquYDshLHtg5wNCivquYDsp4TtmZgNCivquYDrqoXshKANCivquYDsmIHssqANCivquYDshLHtg5wNCivquYDtmqjsoJANCivquYDtg5zsooUNCivquYDsmZXshowNCivquYDshLHtg5wNCivquYDtg5zrnoANCivquYDrhbjtnawNCivquYDquLDshKANCivquYDshLHtg50NCivquYDsiJjssqANCivquYDsoJDsmrANCivquYDshLHsnKQNCivquYDshLHtlYQNCivquYDrs5HsmIENCivquYDsnqztmLgNCivquYDrs5HsiKANCivquYDshLHtlZwNCivquYDsooXsnqwNCivquYDsm5Tqsr0NCivquYDtmY3shKANCivquYDshLHtmLgNCivquYDrs5HquLgNCivquYDrqoXso7wNCivquYDtmqjrjZUNCivquYDshLHtmLgNCivquYDrjZXrqoUNCivquYDrp4zquLANCivquYDshLHqt7wNCivquYDshLHtmLgNCivquYDrhbjquLANCivquYDsnqzsmKUNCivquYDrqoXrjZUNCivquYDshLHtmZgNCivquYDsvozrrLgNCivquYDsmIHrpoQNCivquYDtg5ztlZgNCivquYDshLHtmZgNCivquYDsnYTrj4QNCivquYDshJ3rtIkNCivquYDsiJjsmqkNCivquYDshLHtm4gNCivquYDsg4HsiJgNCivquYDtjJDroZwNCivquYDssKjsnbQNCivquYDshLHtm4gNCivquYDsmKXtg5wNCivquYDsmIHrk50NCivquYDshJ3sobANCivquYDshLHtm4gNCivquYDssqDrtIkNCivquYDsooXspIANCivquYDssKzrqoUNCivquYDshLHtnawNCivquYDsg4Hso7wNCivquYDtlbTsiJgNCivquYDsoJXsl7QNCivquYDshLHtnawNCivquYDsnqzslaANCivquYDqsr3tg50NCivquYDsmIHsspwNCivquYDshLHtnawNCivquYDsiJzsmrANCivquYDsmKXrjZUNCivquYDsooXtnawNCivquYDshLjquLANCivquYDshLHtg5wNCivquYDsirnrnoANCivquYDrtInsi50NCivquYDshLjrjZUNCivquYDsooXsmqkNCivquYDtlbTtmZgNCivquYDsg4Hqta0NCivquYDshLjsl7ANCivquYDtg5zsi50NCivquYDshLHtmY0NCivquYDsnbzrjZUNCivquYDshLjsmYQNCivquYDsiJjrnb0NCivquYDsooXsnpANCivquYDrtoTshK0NCivquYDshLjsmrQNCivquYDrj5nshJ0NCivquYDtlonsiKANCivquYDqtJHsg4ENCivquYDshLjtmLgNCivquYDrr7jsp4QNCivquYDtlbTqtawNCivquYDsmqnqtowNCivquYDshLjtm4gNCivquYDqt5zsm5ANCivquYDtmITrj5kNCivquYDsp4TshowNCivquYDshozqsr0NCivquYDrtoDshLENCivquYDsnqztmIQNCivquYDssqDshKANCivquYDshozrgqgNCivquYDsmIHrj5kNCivquYDqtIDsm4UNCivquYDquLDsm4UNCivquYDshozrjZUNCivquYDtlYTrs7UNCivquYDqtIDtnLQNCivquYDsoJXsiJwNCivquYDshozrjZUNCivquYDtg5zsmIENCivquYDsm5DquLANCivquYDquLDqtawNCivquYDshozrj4QNCivquYDsiJjtmIQNCivquYDsnKTrgqgNCivquYDsnqzqtZANCivquYDshozrj4QNCivquYDsnoTrjZUNCivquYDqt5zsm5ANCivquYDqt5zssqANCivquYDshozrk50NCivquYDrtIntmZgNCivquYDtg5ztmZgNCivquYDrs5Hsp4QNCivquYDshozrsLANCivquYDqs4TsobANCivquYDsmIHsmqkNCivquYDsiJnsl7QNCivquYDshozshKANCivquYDtg53slaANCivquYDstpjsiJgNCivquYDtjJDslrgNCivquYDshozsiJwNCivquYDsmqnsmIENCivquYDquLDslrUNCivquYDsoJXtmLgNCivquYDshozsl7ANCivquYDslYXshKANCivquYDtmITspJENCivquYDrgqjsiKANCivquYDshozsobANCivquYDshLHsiJkNCivquYDsg4Hsl7QNCivquYDsmIHtnawNCivquYDshozssqANCivquYDrs5HqsJENCivquYDsmqnrnoANCivquYDrp4ztnLQNCivquYDshozssqANCivquYDsl7DtlZkNCivquYDshLHtnawNCivquYDquLDshJ0NCivquYDshozstpgNCivquYDrjIDtg5wNCivquYDqsr3snbQNCivquYDsooXrqqkNCivquYDshoztlZwNCivquYDsmrDrrLgNCivquYDsooXspIANCivquYDsmIHtnawNCivquYDshoztlqUNCivquYDrs5HssqANCivquYDqsJXqt7wNCivquYDsoJXroKgNCivquYDsiJjqsJENCivquYDsmqnsnbwNCivquYDsobDrrLQNCivquYDqsJHtmLgNCivquYDsiJjqsJUNCivquYDtg5zsmrANCivquYDtlbTrsLANCivquYDtnazqsr0NCivquYDsiJjqsr0NCivquYDqsr3tmLgNCivquYDrtIntnawNCivquYDspJHqt5wNCivquYDsiJjqtIANCivquYDsoJXsm5ANCivquYDtmJzrqqgNCivquYDrs5HsiJgNCivquYDsiJjquLgNCivquYDqs4TsnpANCivquYDtmY3tlZkNCivquYDsmIHrprwNCivquYDsiJjquLgNCivquYDsiJjsm5ANCivquYDsiJjrjIANCivquYDtnazsnoQNCivquYDsiJjquLgNCivquYDslrXsm4UNCivquYDsmIHsl7ANCivquYDsnqXsmrANCivquYDsiJjquLgNCivquYDrr7jsmrQNCivquYDtg5zsmrANCivquYDrtoTrqoUNCivquYDsiJjrhYQNCivquYDrj5ntmLgNCivquYDtnaztj6wNCivquYDquLjshKANCivquYDsiJjrj5kNCivquYDsp4DsiJwNCivquYDshLHsmrANCivquYDso7zstpwNCivquYDsiJjrp4wNCivquYDsooXssKwNCivquYDsiJjtg5wNCivquYDrs7TrkZANCivquYDsiJjrs5ENCivquYDsiJjrtoQNCivquYDsoJXrj4QNCivquYDsp4TsnbQNCivquYDsiJjrs7UNCivquYDtnazshJ0NCivquYDshLHspIANCivquYDtmY3tmZgNCivquYDsiJjrs7UNCivquYDquLDrsLENCivquYDsmIHsnbQNCivquYDrtInrtoQNCivquYDsiJjsg4ENCivquYDssL3rgqgNCivquYDssYTqs6QNCivquYDspJHsmqkNCivquYDsiJjshJ0NCivquYDsiJjtlZkNCivquYDtg5ztg5wNCivquYDsg4Hsi50NCivquYDsiJjshKANCivquYDrrLTtmLgNCivquYDtlZzshKANCivquYDsoJDsmKUNCivquYDsiJjsi50NCivquYDrrLTtmIQNCivquYDrqoXsmqkNCivquYDqsr3rp4wNCivquYDsiJjsl7ANCivquYDsmIHqt5wNCivquYDqt5zsiJgNCivquYDsnqXssqANCivquYDsiJjsl7QNCivquYDrqoXquIgNCivquYDsmqntlZkNCivquYDrp5DshKANCivquYDsiJjsl7QNCivquYDsoJXtmLgNCivquYDtmqjstpwNCivquYDsg4HsmYQNCivquYDsiJjsmIENCivquYDshJ3sl7ANCivquYDtlonqt7wNCivquYDsg4HsiJgNCivquYDsiJjsmqkNCivquYDsoJXshJ0NCivquYDsp4Tso7wNCivquYDstpjrj4wNCivquYDsiJjsmrQNCivquYDtg5zrqoUNCivquYDrgpnsp4QNCivquYDsnpDsiJgNCivquYDsiJjsm4UNCivquYDsnqzsiJgNCivquYDsp4TrspQNCivquYDqtJHsm4UNCivquYDsiJjsm5ANCivquYDrs7XshKANCivquYDsnqzsnYANCivquYDsnbzshJ0NCivquYDsiJjsnbUNCivquYDrqqjquLANCivquYDrjIDsl7QNCivquYDso7zsl70NCivquYDsiJjsnbwNCivquYDsnbjquLANCivquYDquLDsnqwNCivquYDrs5HtmZgNCivquYDsiJjsoJUNCivquYDqtJHtnaANCivquYDsnqzquIgNCivquYDri6zsi50NCivquYDsiJjsooUNCivquYDstqnsl7QNCivquYDsiJzsnpANCivquYDqsr3sobANCivquYDsiJjspIANCivquYDquLDsiJwNCivquYDrs5HrtIkNCivquYDshLHrhYQNCivquYDsiJjssL0NCivquYDsnbztmLgNCivquYDtg5ztmLgNCivquYDsnbjsmrANCivquYDsiJjssqANCivquYDsl7TsnKQNCivquYDsmKXtmLgNCivquYDsi5zsiJgNCivquYDsiJjssqANCivquYDqs4Tqt6ANCivquYDsiJzshKANCivquYDsm4XrtoQNCivquYDsiJjtg5wNCivquYDrk7HquLgNCivquYDrgpjquLANCivquYDsg4HsmIENCivquYDsiJjtg5wNCivquYDstpjstpgNCivquYDsnYDsobANCivquYDrqoXsiJgNCivquYDsiJjtg50NCivquYDquIjsiJwNCivquYDsoJXsobANCivquYDtg5zshKANCivquYDsiJjtg50NCivquYDsmrDquLANCivquYDssL3quLANCivquYDsnbjsiKANCivquYDsiJjtmIQNCivquYDrr7jsi50NCivquYDsnqXro6ENCivquYDsoJXqtoENCivquYDsiJjtmIQNCivquYDqtJHsnpANCivquYDsp4TtmIQNCivquYDquIjqt6ANCivquYDsiJjtmLgNCivquYDssL3smrANCivquYDsnbzsi50NCivquYDsm5DquLgNCivquYDsiJjtmLgNCivquYDso7zrp4wNCivquYDshLHsnpANCivquYDsnbXsnpANCivquYDsiJjtmLgNCivquYDsg4Hro6ENCivquYDrsKnsm5ANCivquYDsnKDtlZwNCivquYDsiJjtmLgNCivquYDsmYTsnbwNCivquYDtlonrjZUNCivquYDrs5HtmIQNCivquYDsiJjtmZQNCivquYDsp4DsiJgNCivquYDshLHsm5ANCivquYDshLHtlZwNCivquYDsiJjtmZgNCivquYDstpjtmIENCivquYDrj5nsp4QNCivquYDrj5nsmKUNCivquYDsiJjtmZgNCivquYDrs5HrspQNCivquYDshLHssqANCivquYDso7zshJ0NCivquYDsiJjtmqgNCivquYDsmIHsl7ANCivquYDsoJXrjZUNCivquYDsnKTsiJgNCivquYDsiJjtmqgNCivquYDrs5HsoJANCivquYDsmIHsobANCivquYDqs4TsmKQNCivquYDsiJnsnbQNCivquYDsoJXssqANCivquYDsnqXrnpgNCivquYDshJ3siJgNCivquYDsiJnsnpANCivquYDsmqnspJENCivquYDsm5TsoJUNCivquYDsg4HrhbgNCivquYDsiJnsnpANCivquYDri7TsiJgNCivquYDsmrDsiJwNCivquYDsgrzsiJkNCivquYDsiJnsnpANCivquYDqt5zshKANCivquYDtlbTtmZQNCivquYDsooXqt7wNCivquYDsiJntmIQNCivquYDsnqXsobANCivquYDsnqXtg5wNCivquYDrrLTsmIENCivquYDsiJntnawNCivquYDsp4Tsg4ENCivquYDrj5nsl7QNCivquYDtlbTshLgNCivquYDsiJzqta0NCivquYDspIDqtowNCivquYDsnbjtg50NCivquYDsooXsiJgNCivquYDsiJzquIgNCivquYDsmIHtlYQNCivquYDsmIHsiKANCivquYDsiJnqtowNCivquYDsiJzquLANCivquYDsnKTqt7wNCivquYDshozshKANCivquYDsirnsl7ANCivquYDsiJzrgqgNCivquYDsmIHshLENCivquYDrrLjrtIkNCivquYDshLHtmZQNCivquYDsiJzrgqgNCivquYDsiJzsi50NCivquYDsiJzquLgNCivquYDssqDsm5ANCivquYDsiJzrgqgNCivquYDrqoXqt5wNCivquYDrrLjsobANCivquYDssL3smIENCivquYDsiJzrgqgNCivquYDtmJXsnpANCivquYDrj4TtmLgNCivquYDqtoztl4wNCivquYDsiJzrjZUNCivquYDsg4HsiJwNCivquYDsp4Tsm4UNCivquYDsnITssqANCivquYDsiJzrj5kNCivquYDrqoXsnbwNCivquYDsooXtnLQNCivquYDsnqzsg4ENCivquYDsiJzrk50NCivquYDsmIHsnbwNCivquYDshLjsl7QNCivquYDshJ3tmY0NCivquYDsiJzroYANCivquYDrs5HspIANCivquYDtlZzqt7wNCivquYDqt5ztmZgNCivquYDsiJzrsLANCivquYDqtJHsm5ANCivquYDsg4Hso7wNCivquYDsoJDshK0NCivquYDsiJzrtoQNCivquYDsmrDqsr0NCivquYDtg5zsiJgNCivquYDsooXtg4ENCivquYDsiJzsg50NCivquYDsi6DsgrwNCivquYDsmIHsmIENCivquYDsooXtm4gNCivquYDsiJzshKANCivquYDqtZDquLANCivquYDsoJztmZQNCivquYDsoJXtnawNCivquYDsiJzshKANCivquYDqs6TtlZkNCivquYDshLHqtawNCivquYDsm5DtlZkNCivquYDsiJzsi50NCivquYDsoJXtmZgNCivquYDsmqnso7wNCivquYDrp5DtnLQNCivquYDsiJzslaANCivquYDsg4HssL0NCivquYDtmJzrj4QNCivquYDtmIHsmqkNCivquYDsiJzsl7ANCivquYDsooXsnbwNCivquYDsoJXsiJgNCivquYDsooXrj5kNCivquYDsiJzsl7ANCivquYDsg4HsnKQNCivquYDsnqztmLgNCivquYDstpjsp4QNCivquYDsiJzsl7ANCivquYDsmIHsi50NCivquYDsmIHsgrwNCivquYDsi6Dsm5ANCivquYDsiJzsmKUNCivquYDtmITsobANCivquYDqsr3tg5wNCivquYDrj4Tsl7QNCivquYDsiJzsmYQNCivquYDrs5HrtoQNCivquYDsoJXso7wNCivquYDsmKTsmKQNCivquYDsiJzsnbQNCivquYDtg5zsmIENCivquYDsiJztmLgNCivquYDsmIHshKANCivquYDsiJzsnbQNCivquYDtlontlqUNCivquYDshLHrjIANCivquYDtlZjrj5kNCivquYDsiJzsnbQNCivquYDsiJztmZgNCivquYDrs7TqtawNCivquYDsmIHsmIENCivquYDsiJzsnoQNCivquYDrkZDsg50NCivquYDsnqzquLANCivquYDtnaztg5wNCivquYDsiJzsnoQNCivquYDsmYTtnaANCivquYDstpjtmZgNCivquYDsiJjsiJgNCivquYDsiJzsnpANCivquYDrtInsiJgNCivquYDshJ3qtIANCivquYDrrLjsp4ANCivquYDsiJztmLgNCivquYDqsr3rrLQNCivquYDsoJXsmqkNCivquYDrspTsobANCivquYDsiJztmZQNCivquYDsmIHsnbQNCivquYDsiJjrjZUNCivquYDrgpnsl7ANCivquYDsiJztnawNCivquYDsoJXrp5ANCivquYDsoJXsi50NCivquYDsmKXrjIANCivquYDsiJztnawNCivquYDsnqzsi50NCivquYDtlbTtlZwNCivquYDqtJHqtowNCivquYDsiJztnawNCivquYDrtoTsi50NCivquYDsm5DtmLgNCivquYDqta3si50NCivquYDsiKDsnbQNCivquYDsnZjtnawNCivquYDshLHslZQNCivquYDrp4zsnqwNCivquYDsiKDsnbQNCivquYDspIDsp4ENCivquYDsoJXquLANCivquYDqt4Drj4wNCivquYDsirnqtawNCivquYDrj5ntmIQNCivquYDsmIHsnbgNCivquYAg7IicDQor6rmA7Iq56rWsDQor6rmA7ZmU7ZW0DQor6rmA7Iic66a8DQor6rmA64+Z7IudDQor6rmA7Iq566qpDQor6rmA7IOB7IStDQor6rmA7KKF7ZmUDQor6rmA7JiB7IiZDQor6rmA7Iq566+8DQor6rmA7KCQ64+MDQor6rmA7YOc7JqpDQor6rmA6riw6re8DQor6rmA7Iq57KCVDQor6rmA7KKF7Zi4DQor6rmA7IOB7ISdDQor6rmA7LaY7IiYDQor6rmA7Iq57KeEDQor6rmA7J6l7LKgDQor6rmA7Jyg6re8DQor6rmA7KKF64yADQor6rmA7Iq57Zi4DQor6rmA7YyQ7IicDQor6rmA66qF7Z2sDQor6rmA7KCV6riIDQor6rmA7Iuc6rK9DQor6rmA7KSA7ZmYDQor6rmA7Iq57Zi4DQor6rmA7Zi47J6EDQor6rmA7Iuc642VDQor6rmA7KSA7Z2sDQor6rmA7IOB7YyQDQor6rmA7ISd66y4DQor6rmA7Iuc64+ZDQor6rmA7JuQ7ZmYDQor6rmA7YOc6rWQDQor6rmA67KU6re8DQor6rmA7Iuc656YDQor6rmA67OR6recDQor6rmA6re57JWgDQor6rmA64Ko66qoDQor6rmA7Iuc7Jq0DQor6rmA7JiB7ZuIDQor6rmA7Jqp7J28DQor6rmA7Z2s7IudDQor6rmA7Iuc7ZWYDQor6rmA7Jyk7IiYDQor6rmA7Jqp7ZmYDQor6rmA6re87KCQDQor6rmA7Iuc7ZmYDQor6rmA66eM7LCsDQor6rmA7KO87Zi4DQor6rmA67aE642VDQor6rmA7Iuc7ZmYDQor6rmA7KeE7YOcDQor6rmA7Jqw6rK9DQor6rmA7ZWY656YDQor6rmA7Iud6recDQor6rmA7ISx7Ja1DQor6rmA7J207KO8DQor6rmA7IOB7JuQDQor6rmA7Iug7IiZDQor6rmA7ZWE7KGwDQor6rmA67OR7IiZDQor6rmA7KCV64usDQor6rmA7Iug7IudDQor6rmA64Ko7Zi4DQor6rmA7Iic7ISdDQor6rmA7YOc7KSADQor6rmA7Iug7Je0DQor6rmA7YOc7JuQDQor6rmA7ZeM7JuQDQor6rmA7ZWE7KCQDQor6rmA7Iug7JqwDQor6rmA67O164+EDQor6rmA7ZuI7ISdDQor6rmA7J6s7JuQDQor6rmA7Iug7J28DQor6rmA64yA7YOcDQor6rmA67aE7ZalDQor6rmA7ZiE7IiYDQor6rmA7Iuk6rK9DQor6rmA7J6E64usDQor6rmA7KCV7Zi4DQor6rmA67OR7IudDQor6rmA7Iuk6rSRDQor6rmA64us7Zi4DQor6rmA7KCQ7IStDQor6rmA7KO87JqxDQor6rmA7Iuk6rSRDQor6rmA64+E7IiYDQor6rmA64W47Je0DQor6rmA7LaY7JuQDQor6rmA7IyN6ri4DQor6rmA7KCV642VDQor6rmA7JiB64W4DQor6rmA7JaR7ISgDQor6rmA7IyN66GADQor6rmA6rK967O1DQor6rmA7JiB7Zi4DQor6rmA7YOc7IiYDQor6rmA7IyN67SJDQor6rmA6riI7JmEDQor6rmA7Jqp7JuQDQor6rmA66y47Jq0DQor6rmA7IyN7IStDQor6rmA7J2464+EDQor6rmA6rK97Zi4DQor6rmA7KKF6raMDQor6rmA7IyN7JWUDQor6rmA64+Z7IiZDQor6rmA6riw6rWsDQor6rmA7Iic7J6QDQor6rmA7JWE7IiYDQor6rmA7IaQ6raMDQor6rmA7KKF7IiYDQor6rmA6riI7J20DQor6rmA7JWF7J20DQor6rmA7Iic7IiYDQor6rmA7Jyk7IiYDQor6rmA64+Z7YOcDQor6rmA7JWI7IiYDQor6rmA7Iic6ri4DQor6rmA7IOB7IiYDQor6rmA6rSR7YOcDQor6rmA7JWU64KoDQor6rmA7J6l7IOdDQor6rmA67SJ7JikDQor6rmA67OR7JilDQor6rmA7JWg7JewDQor6rmA7J217JuQDQor6rmA7L6M7JilDQor6rmAIOuqqA0KK+q5gOyWkeyEnQ0KK+q5gOynhOyatA0KK+q5gO2VtOyEoA0KK+q5gOyYgeybkA0KK+q5gOyWkeyInA0KK+q5gOyDgeyErQ0KK+q5gOyEse2DnA0KK+q5gO2drOyXtA0KK+q5gOyWkeyInA0KK+q5gOywveykgA0KK+q5gOyekeudvQ0KK+q5gOyerOyIoA0KK+q5gOyWkeyLnQ0KK+q5gOq1kOyXtA0KK+q5gOydvOuNlQ0KK+q5gOuemOy2nA0KK+q5gOyWkeybhQ0KK+q5gOyDgeuemA0KK+q5gOyEoO2YhA0KK+q5gOyEseqzpA0KK+q5gOyWkeybhQ0KK+q5gOyInOyEnQ0KK+q5gOuqheyInA0KK+q5gOqyveyLnQ0KK+q5gOyWkeybkA0KK+q5gOyduOq4sA0KK+q5gOuqhe2VnA0KK+q5gOyEse2RnA0KK+q5gOyWkeyjvA0KK+q5gOq0gOq1rA0KK+q5gOu0ieydvA0KK+q5gOyjvOyatA0KK+q5gOyWke2ajA0KK+q5gOuvvO2drA0KK+q5gOq0keyaqQ0KK+q5gOyYpe2ZmA0KK+q5gOyWke2doA0KK+q5gOyerO2VnA0KK+q5gOuMgOq3nA0KK+q5gOyImOuNlQ0KK+q5gOyWke2drA0KK+q5gOq3nOq3nA0KK+q5gOustOyasA0KK+q5gOqwleunjA0KK+q5gOyWteuFhA0KK+q5gOyyoO2ZlA0KK+q5gOuNleqyvQ0KK+q5gOyEuOusuA0KK+q5gOyWteunjA0KK+q5gOycpOyImA0KK+q5gO2YhOqxuA0KK+q5gO2DnOuloA0KK+q5gOyWteuwsA0KK+q5gOy5mO2YuA0KK+q5gOuzkeyEsQ0KK+q5gOyInOyDnQ0KK+q5gOyWteyImA0KK+q5gOu0ieq0gA0KK+q5gOyYgeyVhQ0KK+q5gOycpOq2jA0KK+q5gOyWuOyImQ0KK+q5gOyEseycpA0KK+q5gOusuO2ZjQ0KK+q5gOyiheuzuA0KK+q5gOyWuOyLnQ0KK+q5gOyImOybkA0KK+q5gOy2mOyLnQ0KK+q5gOu2hOqyvQ0KK+q5gOyXsOyEoA0KK+q5gOu0ie2ZmA0KK+q5gOuzte2YhA0KK+q5gO2ZjeqyvQ0KK+q5gOyXsOyEoA0KK+q5gOyiheuloA0KK+q5gO2ZjeyLnQ0KK+q5gOuMgOuPmQ0KK+q5gOyXsOyImA0KK+q5gOy2mOqzpA0KK+q5gOyYge2ZmA0KK+q5gOydmOyekA0KK+q5gOyXsOyImA0KK+q5gOygleq3nA0KK+q5gOygleyEsQ0KK+q5gOyMjeyYpA0KK+q5gOyXsOyImA0KK+q5gOyCvOyLnQ0KK+q5gOyaqey4oQ0KK+q5gOydtOydvA0KK+q5gOyXsOyInA0KK+q5gOq4iOyEnQ0KK+q5gOynhOuPhA0KK+q5gO2WieyihQ0KK+q5gOyXsOydtA0KK+q5gOunjOyLnQ0KK+q5gOuylO2DgQ0KK+q5gOyiheyerA0KK+q5gOyXsOyhsA0KK+q5gOyduOyyoA0KK+q5gOuPmeq3vA0KK+q5gOunkOyImA0KK+q5gOyXsOyhsA0KK+q5gOyEseyDnQ0KK+q5gOyduOq3nA0KK+q5gOyaqeyekA0KK+q5gOyXsOyjvA0KK+q5gOyEneyVlA0KK+q5gOyGjOuPmQ0KK+q5gOyEoOyImA0KK+q5gOyXsO2WpQ0KK+q5gOyduOyihQ0KK+q5gO2DnOyaqQ0KK+q5gOyYgeyInA0KK+q5gOyXsO2drA0KK+q5gOyWkeq3vA0KK+q5gOygkOyjvA0KK+q5gOuzkeyjvA0KK+q5gOyXsO2drA0KK+q5gO2Yle2ZjQ0KK+q5gOyerOq4uA0KK+q5gOyImOq4uA0KK+q5gOyYgeqwkQ0KK+q5gOyiheuztA0KK+q5gOywrOqyvQ0KK+q5gO2DnOyYgQ0KK+q5gOyYgeqzhA0KK+q5gOycpOu2hA0KK+q5gOyYpeq3nA0KK+q5gO2DnOuPhA0KK+q5gOyYgeqzhA0KK+q5gOqwkeyImQ0KK+q5gOq1rOqzhA0KK+q5gOuPmeyXsA0KK+q5gOyYgeqztQ0KK+q5gOyDge2ZlA0KK+q5gOyEuOyasA0KK+q5gOyynOyXsA0KK+q5gOyYgeq0gA0KK+q5gOygleqyvQ0KK+q5gO2VtOuvvA0KK+q5gOyaqeyerA0KK+q5gOyYgeq0kQ0KK+q5gOycpOq4uA0KK+q5gOychOyImA0KK+q5gOqyveq3nA0KK+q5gOyYgeq1kA0KK+q5gOyYge2DnA0KK+q5gOq4sO2DnA0KK+q5gOyiheqwgQ0KK+q5gOyYgeq1rA0KK+q5gOyxhO2ZlA0KK+q5gOyiheybkA0KK+q5gOuzkeydvA0KK+q5gOyYgeq1rA0KK+q5gOybkOybkA0KK+q5gOyaqe2drA0KK+q5gOyyoOyaqQ0KK+q5gOyYgeq1rA0KK+q5gOyYge2DnA0KK+q5gOyYge2YhA0KK+q5gO2VtOyLnQ0KK+q5gOyYgeq1rQ0KK+q5gOykgOyaqQ0KK+q5gOyehOyImA0KK+q5gOuptOyEsQ0KK+q5gOyYgeq1rQ0KK+q5gOuPmeyEsQ0KK+q5gOyEse2YhA0KK+q5gOyerO2YuA0KK+q5gOyYgeq3gA0KK+q5gOyInOynhA0KK+q5gOyInOyaqQ0KK+q5gOygleuPmQ0KK+q5gOyYgeq3nA0KK+q5gOyaqeuylA0KK+q5gOuPme2ZmA0KK+q5gOyImOynhA0KK+q5gOyYgeq3nA0KK+q5gOyEneyEsQ0KK+q5gOqyveqyvQ0KK+q5gO2VmeyYgQ0KK+q5gOyYgeq3nA0KK+q5gOyaqeyLnQ0KK+q5gOq3gOuNlQ0KK+q5gOyYge2XjA0KK+q5gOyYgeq3nA0KK+q5gO2VnOyhsA0KK+q5gOq1rOyerA0KK+q5gOyYgeyWtQ0KK+q5gOyYgeq3nA0KK+q5gOuzkeyImA0KK+q5gO2bhOuPhA0KK+q5gO2DnO2ZmA0KK+q5gOyYgeq3oA0KK+q5gOyerOq3nA0KK+q5gOuvvO2doA0KK+q5gO2VhOyaqQ0KK+q5gOyYgeq3vA0KK+q5gOynhOycpA0KK+q5gOyerOyLrA0KK+q5gOyerOydvA0KK+q5gOyYgeq3vA0KK+q5gOyasO2ZmA0KK+q5gOqyve2DnA0KK+q5gO2YhOu0iQ0KK+q5gOyYgeq4sA0KK+q5gOuqheyYpQ0KK+q5gOycpOyehA0KK+q5gOqyveyaqQ0KK+q5gOyYgeq4sA0KK+q5gOq0ke2YuA0KK+q5gOqyve2ZmA0KK+q5gOqyveyYpA0KK+q5gOyYgeq4sA0KK+q5gOqxtOyjvA0KK+q5gOyEneydmA0KK+q5gO2YleyatA0KK+q5gOyYgeq4sA0KK+q5gO2VnOykkQ0KK+q5gOuPmeyImQ0KK+q5gOyWkeyYgQ0KK+q5gOyYgeq4uA0KK+q5gO2drOyEnQ0KK+q5gOyEseuemA0KK+q5gOywve2YhA0KK+q5gOyYgeq4uA0KK+q5gOuqhe2YuA0KK+q5gOykkeyaqQ0KK+q5gOyaqe2DnA0KK+q5gOyYgeq4uA0KK+q5gOyiheyImA0KK+q5gO2MkOyaqQ0KK+q5gOyaqeyImQ0KK+q5gOyYgeq4uA0KK+q5gOyEneyInA0KK+q5gOyYpOyLnQ0KK+q5gOyYgeyEnQ0KK+q5gOyYgeuMgA0KK+q5gO2VtOuFhA0KK+q5gOyaqeydtA0KK+q5gOuFuOyyoA0KK+q5gOyYgeuMgA0KK+q5gOyngOq3nA0KK+q5gO2DnO2drA0KK+q5gOygle2drA0KK+q5gOyYgeuPhA0KK+q5gO2DnOyEnQ0KK+q5gO2DnOyerA0KK+q5gOyDgeyynA0KK+q5gOyYgeuPhA0KK+q5gOyerOuhnQ0KK+q5gOyGjOyLnQ0KK+q5gOyihe2YuA0KK+q5gOyYgeuPiA0KK+q5gOygleuPhA0KK+q5gOyihe2VmQ0KK+q5gOyehOyErQ0KK+q5gOyYgeuTnQ0KK+q5gOyehO2YhA0KK+q5gOyduOuPmQ0KK+q5gOuvuOyInA0KK+q5gOyYgeudvQ0KK+q5gOygleq3vA0KK+q5gOywve2WpQ0KK+q5gOyDgeyInA0KK+q5gOyYgeuegA0KK+q5gOyLoOqyvQ0KK+q5gOyaqeuPhA0KK+q5gOyblO2ZmA0KK+q5gOyYgeuegA0KK+q5gOyerO2ZmA0KK+q5gOycpOyaqQ0KK+q5gOyCvOuNlQ0KK+q5gOyYgeunjA0KK+q5gOuhneydvA0KK+q5gOy2mOyyoA0KK+q5gOunkOq0kQ0KK+q5gOyYgeunjA0KK+q5gOydvOu2gA0KK+q5gOyerO2DnA0KK+q5gO2YuOq3nA0KK+q5gOyYgeunjA0KK+q5gOyKueqwkQ0KK+q5gOyMjeqxtA0KK+q5gOyiheyhsA0KK+q5gOyYgeunjA0KK+q5gOyepeyLnQ0KK+q5gOq3gOydkQ0KK+q5gOygkOyLnQ0KK+q5gOyYgeuqqA0KK+q5gOyLnO2YuA0KK+q5gOywqOuPmQ0KK+q5gOyEseyEoA0KK+q5gOyYgeuqqA0KK+q5gOyEseyInA0KK+q5gOyiheyekA0KK+q5gOq0keyYgQ0KK+q5gOyYgeuvuA0KK+q5gOybkOq4sA0KK+q5gOyDge2YhA0KK+q5gOyerOyImA0KK+q5gOyYgeuvuA0KK+q5gOyiheyEsQ0KK+q5gOydmOydtA0KK+q5gOyEoO2YhA0KK+q5gOyYgeuwsA0KK+q5gOyYgeq4uA0KK+q5gOuqheusuA0KK+q5gOywveydtA0KK+q5gOyYgeuwsA0KK+q5gOycpOyIoA0KK+q5gOyYgeq3vA0KK+q5gO2Vme2ajA0KK+q5gOyYgeu0iQ0KK+q5gOyihe2YuA0KK+q5gOyImOuwsQ0KK+q5gOyduO2ZmA0KK+q5gOyYgeu0iQ0KK+q5gOyDgeyEnQ0KK+q5gOq0keq1rQ0KK+q5gOyEseqyvQ0KK+q5gOyYgeu2gA0KK+q5gOyerO2YuA0KK+q5gOq4uOq3vA0KK+q5gO2DnOuemA0KK+q5gOyYgeu5iA0KK+q5gOygleyduA0KK+q5gOusuOyEnQ0KK+q5gOyImOybkA0KK+q5gOyYgeyCvA0KK+q5gOyImOyEnQ0KK+q5gOyaqeqzpA0KK+q5gOyerOyglQ0KK+q5gOyYgeyCvA0KK+q5gOq3nOyXtA0KK+q5gOydte2ZmA0KK+q5gOyYge2ZmA0KK+q5gOyYgeyDgQ0KK+q5gOyYgeyngQ0KK+q5gOywveyImA0KK+q5gOyEseyekA0KK+q5gOyYgeyEnQ0KK+q5gOyDge2WpQ0KK+q5gOyerOyImA0KK+q5gOynhOyEuA0KK+q5gOyYgeyEnQ0KK+q5gOyImOuvuA0KK+q5gOustOyyoA0KK+q5gOq3nOykgA0KK+q5gOyYgeyEnQ0KK+q5gOyDgeyYgQ0KK+q5gOyDgeq3nA0KK+q5gOu0ieycpA0KK+q5gOyYgeyEnQ0KK+q5gO2YleyXsA0KK+q5gO2MkOyErQ0KK+q5gOyDgeydvA0KK+q5gOyYgeyEnQ0KK+q5gOydhOyLnQ0KK+q5gOuzkeyEoA0KK+q5gOydtOqyvQ0KK+q5gOyYgeyEnQ0KK+q5gOuvuOuztQ0KK+q5gOyYgeuhnQ0KK+q5gOuMgOunjA0KK+q5gOyYgeyEsQ0KK+q5gOybkO2XjA0KK+q5gOunueydtA0KK+q5gOuzkeyasA0KK+q5gOyYgeyImA0KK+q5gO2XjOyDgQ0KK+q5gOq4iOyInA0KK+q5gOyerOu2hA0KK+q5gOyYgeyImA0KK+q5gO2drOyImQ0KK+q5gOyEuOq4uA0KK+q5gOuzkeyImA0KK+q5gOyYgeyImA0KK+q5gO2YleyVoA0KK+q5gOqwkeq4sA0KK+q5gO2drOyXtA0KK+q5gOyYgeyImA0KK+q5gOyerOq1kA0KK+q5gOyInOq0kQ0KK+q5gOyaqe2YhA0KK+q5gOyYgeyImA0KK+q5gOu0ie2drA0KK+q5gOuMgOyLnQ0KK+q5gO2aqOyyoA0KK+q5gOyYgeyImA0KK+q5gOyEneyyoA0KK+q5gOustOustQ0KK+q5gOyyoOyekA0KK+q5gOyYgeyImA0KK+q5gOyWkeq4sA0KK+q5gOygleyasA0KK+q5gOyYgeq3oA0KK+q5gOyYgeyImA0KK+q5gOygkOu2hA0KK+q5gOyInOycpA0KK+q5gOyaqe2DnA0KK+q5gOyYgeyImA0KK+q5gOqwkeuCnA0KK+q5gOyjvO2drA0KK+q5gOuzkeyXtA0KK+q5gOyYgeyImA0KK+q5gOqyve2drA0KK+q5gOyduO2YuA0KK+q5gOyXsOyglQ0KK+q5gOyYgeyImA0KK+q5gOuRkOuPhA0KK+q5gO2VhO2DnA0KK+q5gOyduOyLnQ0KK+q5gOyYgeyImA0KK+q5gOy2mO2XjA0KK+q5gOykgOyInA0KK+q5gOyDgeq4sA0KK+q5gOyYgeyImA0KK+q5gOyEse2YuA0KK+q5gOq4iOyhsA0KK+q5gOyjvOydtA0KK+q5gOyYgeyImA0KK+q5gO2XjOq2jA0KK+q5gOynhOuFuA0KK+q5gOqzhOq4uA0KK+q5gOyYgeyImQ0KK+q5gOyDgeq3vA0KK+q5gO2VnOuqqQ0KK+q5gOyDgeyXtA0KK+q5gOyYgeyImQ0KK+q5gOygleyXsA0KK+q5gOydtOyEnA0KK+q5gOqzhOq3vA0KK+q5gOyYgeyImQ0KK+q5gOq2jOyyoA0KK+q5gOyaqeuNlQ0KK+q5gOuPmeunjA0KK+q5gOyYgeyImQ0KK+q5gOyerOq3nA0KK+q5gOunkOu2hA0KK+q5gOyaqeykgA0KK+q5gOyYgeyImQ0KK+q5gOuMgOyImA0KK+q5gOuvvOyLnQ0KK+q5gOyYgeyEoA0KK+q5gOyYgeyImQ0KK+q5gO2drOq3oA0KK+q5gOyiheqyvQ0KK+q5gOybkOuqqA0KK+q5gOyYgeyImQ0KK+q5gOyyoOyYgQ0KK+q5gOyngOusuA0KK+q5gO2YnOuwsA0KK+q5gOyYgeyImQ0KK+q5gOyImOyduA0KK+q5gOyYgeynhA0KK+q5gOykkeqwkQ0KK+q5gOyYgeyImQ0KK+q5gOqwke2cmA0KK+q5gOywqOyaqQ0KK+q5gOq4sOyEoA0KK+q5gOyYgeyImQ0KK+q5gOydmOqyvQ0KK+q5gO2VnOq1rQ0KK+q5gOygle2WiQ0KK+q5gOyYgeyImQ0KK+q5gOyerOyerA0KK+q5gOuLrOyLnQ0KK+q5gOq4iOu2hA0KK+q5gOyYgeyImQ0KK+q5gO2Dne2DnQ0KK+q5gOq3vO2YuA0KK+q5gOy5mOq1kA0KK+q5gOyYgeyInA0KK+q5gOybkOyXsA0KK+q5gOybkOyLpA0KK+q5gOqyveyImA0KK+q5gOyYgeyInA0KK+q5gOqzhOuNlQ0KK+q5gOyDgeyyoA0KK+q5gOq4sOq4sA0KK+q5gOyYgeyInA0KK+q5gOyblOyXtA0KK+q5gOyEse2ZmA0KK+q5gOuPmeyihQ0KK+q5gOyYgeyInA0KK+q5gOyynOyEsQ0KK+q5gO2Zjeq1rA0KK+q5gOyXsO2YnA0KK+q5gOyYgeyLnQ0KK+q5gOyDgeq4uA0KK+q5gOyEneyXsA0KK+q5gO2drOq0gA0KK+q5gOyYgeyLnQ0KK+q5gOywveyVoA0KK+q5gOuMgOuylA0KK+q5gOyKueyehA0KK+q5gOyYgeyLnQ0KK+q5gO2YhOyaqQ0KK+q5gOyghOuTnQ0KK+q5gOuvvO2ZlA0KK+q5gOyYgeyLnQ0KK+q5gOyaqeyjvA0KK+q5gOyehOyVlA0KK+q5gOuzke2YuA0KK+q5gOyYgeyLnQ0KK+q5gO2DnOyLnQ0KK+q5gOyaqeyImA0KK+q5gOygleydtA0KK+q5gOyYgeyLnQ0KK+q5gO2Yleq3vA0KK+q5gOyDge2doA0KK+q5gOykke2YuA0KK+q5gOyYgeyLnQ0KK+q5gOyDgeyLnQ0KK+q5gOq1rOyImQ0KK+q5gO2Sje2drA0KK+q5gOyYgeyLnQ0KK+q5gOuMgO2VnA0KK+q5gOyLnOyYpQ0KK+q5gOyehOq0gA0KK+q5gOyYgeyLnQ0KK+q5gOyepeyImQ0KK+q5gO2MkO2YhA0KK+q5gOyerOyLnQ0KK+q5gOyYgeyLnQ0KK+q5gOywveybhQ0KK+q5gOyerO2biA0KK+q5gOyiheyInA0KK+q5gOyYgeyLoA0KK+q5gO2DnOyImA0KK+q5gOuPmeyErQ0KK+q5gOq1reqwkQ0KK+q5gOyYgeyYpQ0KK+q5gOyduO2YhA0KK+q5gOyEse2drA0KK+q5gOyerOuztQ0KK+q5gOyYgeyYpQ0KK+q5gOywve2VnA0KK+q5gOu0ieugpA0KK+q5gO2ZjeyasQ0KK+q5gOyYgeyYpQ0KK+q5gO2DneuTnQ0KK+q5gOyYpOyYgQ0KK+q5gOq4sOyhsA0KK+q5gOyYgeyYpQ0KK+q5gOuMgO2ZmA0KK+q5gOuzke2YlQ0KK+q5gOyYgeyLnQ0KK+q5gOyYgeyZhA0KK+q5gOunie2YuA0KK+q5gOyYgeunjA0KK+q5gOyGjO2ZlA0KK+q5gOyYgeyZhA0KK+q5gOyDgeyxhA0KK+q5gOyngOydvA0KK+q5gOygleykgA0KK+q5gOyYgeyasA0KK+q5gOuPmeyatA0KK+q5gOu2hOyYgQ0KK+q5gO2drOuqqA0KK+q5gOyYgeyblA0KK+q5gOyYgeyyoA0KK+q5gO2DnOunjA0KK+q5gOuLrO2YuA0KK+q5gOyYgeycpA0KK+q5gOygleunjA0KK+q5gOq4sOyEsQ0KK+q5gOyYgeq4sA0KK+q5gOyYgeydgA0KK+q5gOyDgeyErQ0KK+q5gO2DnOuztQ0KK+q5gOuLrOusuA0KK+q5gOyYgeydtA0KK+q5gOyDgeuwsA0KK+q5gOyYgeyXsA0KK+q5gOyKueuPjA0KK+q5gOyYgeyduA0KK+q5gOyYge2YuA0KK+q5gO2YnOyerA0KK+q5gOuemOuPhA0KK+q5gOyYgeydvA0KK+q5gO2DnO2DnA0KK+q5gOyYpeq3nA0KK+q5gOyngO2ZlA0KK+q5gOyYgeydvA0KK+q5gOuzkeuqqA0KK+q5gOyyreyLnQ0KK+q5gOqyveynhA0KK+q5gOyYgeyekA0KK+q5gO2DgOybkA0KK+q5gOyCrO2drA0KK+q5gOuzke2YuA0KK+q5gOyYgeyekA0KK+q5gOyImeynhA0KK+q5gOyGjOq4uA0KK+q5gO2DnO2DnA0KK+q5gOyYgeyekA0KK+q5gOygleyImQ0KK+q5gO2DnOq4uA0KK+q5gOyCvOyDnQ0KK+q5gOyYgeyekA0KK+q5gO2DnOqzoA0KK+q5gOyGjOy2mA0KK+q5gOuvvOyXsA0KK+q5gOyYgeyekA0KK+q5gOyDgeywrA0KK+q5gOuCmeq3nA0KK+q5gOyKueyXtA0KK+q5gOyYgeyekA0KK+q5gOyasOykgA0KK+q5gOyLnOyIoA0KK+q5gO2VtOyImQ0KK+q5gOyYgeyekA0KK+q5gOqwle2aqA0KK+q5gOyerOybhQ0KK+q5gOyYge2YhA0KK+q5gOyYgeyekA0KK+q5gO2YuO2DnA0KK+q5gOynhOyaqQ0KK+q5gOuvvOyInA0KK+q5gOyYgeyhsA0KK+q5gOyduOuztQ0KK+q5gOq0keyerA0KK+q5gOywqOq1kA0KK+q5gOyYgeyhsA0KK+q5gOyiheyehQ0KK+q5gOqyveyImA0KK+q5gOuPmeyYgQ0KK+q5gOyYgeyjvA0KK+q5gOuMgOyLnQ0KK+q5gOyImOyhsA0KK+q5gOyaqe2ZjQ0KK+q5gOyYgeykgA0KK+q5gOybkOyasA0KK+q5gOyerOyaqQ0KK+q5gOyDge2drA0KK+q5gOyYgeykgA0KK+q5gOqzpOyynA0KK+q5gOyCrOyZhA0KK+q5gOyEneq3vA0KK+q5gOyYgeykgA0KK+q5gCDquLgNCivquYDshLHsnpANCivquYDshJ3ro6ENCivquYDsmIHspIANCivquYDrtInsiJgNCivquYDquIjsiJgNCivquYDtlYTsmqkNCivquYDsmIHsp4QNCivquYDssKjtjJQNCivquYDsg4HqtawNCivquYDsspztmZQNCivquYDsmIHsp4QNCivquYDsl7DshKANCivquYDsoJXsp4ANCivquYDrp5Dso7wNCivquYDsmIHsp4QNCivquYDsnKDtnawNCivquYDsnqXsnbwNCivquYDtmLjqt7wNCivquYDsmIHsp4QNCivquYDsooXsobANCivquYDsmIHtlZwNCivquYDtg5zro6ENCivquYDsmIHsp5ENCivquYDqt7zsnpANCivquYDsoJXqtowNCivquYDri6zssqANCivquYDsmIHsp5ENCivquYDsmrDtmIQNCivquYDsoJXqsbQNCivquYDrj5nsiJgNCivquYDsmIHssqANCivquYDrj5nsl7ANCivquYDtlZzshKANCivquYDrkZDtg5wNCivquYDsmIHssqANCivquYDsg4HtlokNCivquYDsoJXqs4QNCivquYDsmIHqtowNCivquYDsmIHssqANCivquYDqsr3tlZkNCivquYDrs7XtmIQNCivquYDsg4HqtowNCivquYDsmIHstpgNCivquYDqt5ztm4gNCivquYDsgrzsmrANCivquYDshLHtmZgNCivquYDsmIHstpgNCivquYDshLHsm5ANCivquYDsmIHstpwNCivquYDsg4HqtowNCivquYDsmIHstpwNCivquYDshLHqt7wNCivquYDsnqzrj5kNCivquYDqt7ztmZgNCivquYDsmIHstpwNCivquYDsg4Htg50NCivquYDsmIHqta0NCivquYDsnqzsnqwNCivquYDsmIHstpwNCivquYDtmITrj4QNCivquYDsnKTsmKUNCivquYDtmLjsmqkNCivquYDsmIHstpwNCivquYDrp4ztmZQNCivquYDsooXsmYQNCivquYDsmrDrj4QNCivquYDsmIHsuaANCivquYDsg4HsiJwNCivquYDsmIHsi50NCivquYDsnKTqt5wNCivquYDsmIHtg5wNCivquYDtlZzroZ0NCivquYDsmIHsnpANCivquYDrs5HsnbwNCivquYDsmIHtg5wNCivquYDsg4HtmIQNCivquYDsmbjrqqgNCivquYDrtoTrjIANCivquYDsmIHtg50NCivquYDsmIHsi50NCivquYDsl7DsmKUNCivquYDsooXssKwNCivquYDsmIHtg50NCivquYDsm5Ttl4wNCivquYDrp5DtmqgNCivquYDssq3sspwNCivquYDsmIHtg50NCivquYDsiJjsoJUNCivquYDqt5zsmrANCivquYDtm4jrjZUNCivquYDsmIHtg50NCivquYDsooXtg5wNCivquYDtmLjrspQNCivquYDrs7XsmqkNCivquYDsmIHtlZkNCivquYDsnbXsmKQNCivquYDsg4HsiJgNCivquYDsnbjqt5wNCivquYDsmIHtlZwNCivquYDsm5DqtIANCivquYDshLHtmJUNCivquYDsm5TquLgNCivquYDsmIHtmIQNCivquYDtmLjquLANCivquYDquIjsm5ANCivquYDtg5zsiJgNCivquYDsmIHtmLgNCivquYDsmIHqtawNCivquYDsnqzsl7ANCivquYDsiKDsm5ANCivquYDsmIHtmLgNCivquYDsmIHtmZgNCivquYDtmqjqtowNCivquYDqsr3qt7wNCivquYDsmIHtmLgNCivquYDsmKTqt5wNCivquYDsoJDsoIENCivquYDssKjtmZgNCivquYDsmIHtmLgNCivquYDsiJzsi50NCivquYDshoztg5wNCivquYDtlZnsiKANCivquYDsmIHtmLgNCivquYDshozsmrANCivquYDsnqzsmIENCivquYDsiJzshK0NCivquYDsmIHtmLgNCivquYDtmITshJ0NCivquYDrs5HsiKANCivquYDsooXrqqgNCivquYDsmIHtmLgNCivquYDsooXrjIANCivquYDsoJXssqANCivquYDtmITtmZgNCivquYDsmIHtmLgNCivquYDstqnsl7ANCivquYDrs5HtmIQNCivquYDtjJDsooUNCivquYDsmIHtmLgNCivquYDshLHroZwNCivquYDrp4zssqANCivquYDsmIHrjZUNCivquYDsmIHtmZQNCivquYDsooXsmrANCivquYAg6rK9DQor6rmA7ZeM7KSADQor6rmA7JiB7ZmYDQor6rmA6rCR7IicDQor6rmA7J6s7JWgDQor6rmA7ISx66eMDQor6rmA7JiB7ZmYDQor6rmA7JiB7KGwDQor6rmA7J247ZmYDQor6rmA6riw7J28DQor6rmA7JiB7ZmYDQor6rmA7Z2s7JiBDQor6rmA6rSR7JWgDQor6rmA7LC97KCVDQor6rmA7JiB7ZmYDQor6rmA66+86rK9DQor6rmA67SJ7ZmYDQor6rmA7J6l7Iq5DQor6rmA7JiB7ZmYDQor6rmA7KCV64yADQor6rmA7ZiE7IiZDQor6rmA7IOB67CwDQor6rmA7JiB7Z2sDQor6rmA7IOB7IS4DQor6rmA7KCV7Z2sDQor6rmA7IK865OdDQor6rmA7JiB7Z2sDQor6rmA7KKF7ZmYDQor6rmA7IOB67aADQor6rmA7J287IicDQor6rmA7JiB7Z2sDQor6rmAIOyekA0KK+q5gOydvOyEnQ0KK+q5gOyEneuTnQ0KK+q5gOyYge2drA0KK+q5gOyaqeyDgQ0KK+q5gOqyveyEnQ0KK+q5gOyGjOq3vA0KK+q5gOyYge2drA0KK+q5gOq3nO2drA0KK+q5gOyYgeyepQ0KK+q5gOyerOyImA0KK+q5gOyYge2drA0KK+q5gOynhO2DnA0KK+q5gO2Zje2DnA0KK+q5gOyEseuRkA0KK+q5gOyYpOq4iA0KK+q5gOqyveyyoA0KK+q5gOygle2XjA0KK+q5gOyEseydtA0KK+q5gOyYpOq4sA0KK+q5gOuTneuNlQ0KK+q5gOyerOyhsA0KK+q5gOqyveyEnQ0KK+q5gOyYpOyImA0KK+q5gOunjO2drA0KK+q5gOygleuztQ0KK+q5gOuRkOyerA0KK+q5gOyYpOykkQ0KK+q5gOyEseyihQ0KK+q5gOyEseumrA0KK+q5gOycpOuztA0KK+q5gOyYpOykkQ0KK+q5gO2DnOykkQ0KK+q5gOy5oOuegA0KK+q5gOyImO2ZlA0KK+q5gOyYpO2DnA0KK+q5gOyDgeq4uA0KK+q5gOyerOyEsQ0KK+q5gOq3nOq4sA0KK+q5gOyYpO2YhA0KK+q5gOyYgeyInA0KK+q5gOyngO2DnA0KK+q5gOyDge2ZmA0KK+q5gOyYpeuCqA0KK+q5gOy2qeyjvA0KK+q5gOq4sOykgA0KK+q5gOynhOq4uA0KK+q5gOyYpeu2hA0KK+q5gOyduO2VnA0KK+q5gOq4sOyImA0KK+q5gOqwkeyXtA0KK+q5gOyYpeyEoA0KK+q5gOybkO2WpQ0KK+q5gOuMgOyDnQ0KK+q5gO2DnOybkA0KK+q5gOyYpeyEoA0KK+q5gOyEneyehA0KK+q5gOuqhe2XjA0KK+q5gOq0gOyEuA0KK+q5gOyYpeyEoA0KK+q5gOu0ieq3nA0KK+q5gOyYgeyaqQ0KK+q5gO2DnOyasA0KK+q5gOyYpeyImA0KK+q5gO2VnOq3vA0KK+q5gOy2mOuPmQ0KK+q5gOuzke2DnA0KK+q5gOyYpeyInA0KK+q5gOuCmeuqhQ0KK+q5gOykkeyInA0KK+q5gOyYgeq1kA0KK+q5gOyYpeyInA0KK+q5gO2DnOyjvA0KK+q5gOydgOyEnQ0KK+q5gOydvOyaqQ0KK+q5gOyYpeyInA0KK+q5gOuMgO2VmQ0KK+q5gOyKueyEoA0KK+q5gOq3nO2YuA0KK+q5gOyYpeyInA0KK+q5gO2DnOyImA0KK+q5gOyZuOydtA0KK+q5gO2VnOyIoA0KK+q5gOyYpeyInA0KK+q5gOyDge2XjA0KK+q5gOunjOyYgQ0KK+q5gOyerOq4sA0KK+q5gOyYpeyIoA0KK+q5gOywrOywrA0KK+q5gO2drO2ZmA0KK+q5gOyGoeyXsA0KK+q5gOyYpeyXsA0KK+q5gOyEoOyImA0KK+q5gOyYge2YuA0KK+q5gOq0keyaqQ0KK+q5gOyYpeydtA0KK+q5gOyaqeuqqQ0KK+q5gOynhOyImA0KK+q5gOyInOy2mA0KK+q5gOyYpeydtA0KK+q5gOuPmeyYgQ0KK+q5gOq3nOyEsQ0KK+q5gOyYpeyInA0KK+q5gOyYpeyekA0KK+q5gOydke2drA0KK+q5gOyerOuztQ0KK+q5gOu0ie2drA0KK+q5gOyYpeyglQ0KK+q5gOyEseudvQ0KK+q5gCDsmIENCivquYDtmLjshLENCivquYDsmKXspJENCivquYDtl4ztmZgNCivquYDshJ3quLgNCivquYDshLHspIANCivquYDsmKXsspwNCivquYDsg4HrqqgNCivquYDtl4zrp4wNCivquYDtg5zsiJgNCivquYDsmYTshJ0NCivquYDtmZTqtawNCivquYDtlZnsiKANCivquYDsooXsnpANCivquYDsmYTsiJgNCivquYDtlontg5wNCivquYDqt5zrqqkNCivquYDshLHquLANCivquYDsmYTsiJwNCivquYDshLHrjIANCivquYDsiJzsiJkNCivquYDqsr3smqkNCivquYDsmZXqt5wNCivquYDrp5DsiJkNCivquYDsm5Tsl7QNCivquYDsooXsi50NCivquYDsmZXsiJwNCivquYDtlZntg5wNCivquYDrtInsmKUNCivquYDrj5nslZQNCivquYDsmbjrp4wNCivquYDsmIHsp4QNCivquYDsnqzrj5kNCivquYDsmIHsobANCivquYDsmbjrp4wNCivquYDsnbzquLANCivquYDrs5HsnqwNCivquYDsoJXruYgNCivquYDsmbjrtoQNCivquYDsnbjsobANCivquYDsmIHsl7ANCivquYDsiJztmqgNCivquYDsmbjsg4ENCivquYDrjZXsirkNCivquYDsnYDsiJgNCivquYDrtInsmqkNCivquYDsmbjsg50NCivquYDsmIHtmIQNCivquYDssL3tmZQNCivquYDsm5DsmrQNCivquYDsmbjsiJgNCivquYDquIjsiJgNCivquYDsp4TshJ0NCivquYDsiJjtmLgNCivquYDsmbjsiJwNCivquYDrp5DtmLgNCivquYDrp5DsmqkNCivquYDsp4TshLENCivquYDsmbjsiJwNCivquYDshozrs7UNCivquYDsoJXsi50NCivquYDrp4zsnbQNCivquYDsmbjsiKANCivquYDsmqnshLENCivquYDtg5zsi50NCivquYDso7zqs4QNCivquYDsmqnqsJENCivquYDrs5HshKANCivquYDquIjqsJENCivquYDssqDsnbwNCivquYDsmqnqsrgNCivquYDspJHtm4gNCivquYDtg5ztmIQNCivquYDsmIHtmZgNCivquYDsmqnqtawNCivquYDqs4TsnKgNCivquYDsmIHsl7ANCivquYDsirnrsLANCivquYDsmqnqta0NCivquYDsooXrnpgNCivquYDsnqzquLANCivquYDrjZXshLENCivquYDsmqnqta0NCivquYDrjZXshJ0NCivquYDsmIHsiJgNCivquYDsnbztl4wNCivquYDsmqnqt5wNCivquYDtg5zssqANCivquYDsooXsiJgNCivquYDsmKXtg5wNCivquYDsmqnqt5wNCivquYDtjJDrj4wNCivquYDqt5ztmZgNCivquYDqsJHqsr0NCivquYDsmqnqt5wNCivquYDshLHshKANCivquYDsnYDsiJgNCivquYDsoJXrqoUNCivquYDsmqnqt6ANCivquYDsoJXsiJgNCivquYDsiJjsnbwNCivquYDtmY3qt5wNCivquYDsmqnqt7wNCivquYDsnoTrtoANCivquYDshJ3rtoQNCivquYAg7Zi4DQor6rmA7Jqp6re8DQor6rmA7J6s65OdDQor6rmA7ZmN7IudDQor6rmA64+Z7Z2gDQor6rmA7Jqp6re8DQor6rmA64Ko6re8DQor6rmA7Jqp7ISdDQor6rmA67OR7ZWYDQor6rmA7Jqp6riwDQor6rmA7IaM7Zi4DQor6rmA7Zqo7JikDQor6rmA7YyQ7KKFDQor6rmA7Jqp6ri4DQor6rmA7ISx7ZmpDQor6rmA65GQ7IigDQor6rmA7KCV67CwDQor6rmA7Jqp6ri4DQor6rmA6rSR6rWtDQor6rmA7YOc7J20DQor6rmA67SJ7JqpDQor6rmA7Jqp64KoDQor6rmA7ZiE642VDQor6rmA7ISg66qoDQor6rmA7KCV6re8DQor6rmA7Jqp64yADQor6rmA7JiB7YOcDQor6rmA7KSA6rOkDQor6rmA7Iic7IudDQor6rmA7Jqp64yADQor6rmA7YOc7IiYDQor6rmA7LKg7Je0DQor6rmA7LaY642VDQor6rmA7Jqp642VDQor6rmA7J6l7IicDQor6rmA7Jm47YOcDQor6rmA7Ja17IiYDQor6rmA7Jqp64+EDQor6rmA7IiY7ISdDQor6rmA64+Z7ZWYDQor6rmA67OR7LKcDQor6rmA7Jqp64+MDQor6rmA7KKF7IOBDQor6rmA7Iic6re8DQor6rmA7J6E7ZmYDQor6rmA7Jqp64+ZDQor6rmA67OR7ZqoDQor6rmA7IOB6recDQor6rmA7KSR6riwDQor6rmA7Jqp65OdDQor6rmA6riw7JeFDQor6rmA7JuQ7ZiEDQor6rmA7ZW07ZiEDQor6rmA7Jqp66eMDQor6rmA7KKF66y4DQor6rmA7LC97IudDQor6rmA6riI6recDQor6rmA7Jqp66eMDQor6rmA7KKF67CwDQor6rmA67aA7Zi4DQor6rmA7YOc7ZGcDQor6rmA7Jqp66y4DQor6rmA67OR66qFDQor6rmA7KCV7JuQDQor6rmA66eM7IigDQor6rmA7Jqp67CwDQor6rmA7Jil7Z2sDQor6rmA7ZW07JqpDQor6rmA7ZW07ZiEDQor6rmA7Jqp67CwDQor6rmA7Iic642VDQor6rmA7Jyk67O1DQor6rmA7KCV7JewDQor6rmA7Jqp7ISdDQor6rmA7KKF7ZmYDQor6rmA67OR7IiYDQor6rmA7JiB7YOdDQor6rmA7Jqp7ISdDQor6rmA642V7JykDQor6rmA6riw6riwDQor6rmA7Je07JqpDQor6rmA7Jqp7ISgDQor6rmA7YOc7JilDQor6rmA7IiY6rWQDQor6rmA7Iic7IK8DQor6rmA7Jqp7IiYDQor6rmA7J6s7YOcDQor6rmA7JiB64+ZDQor6rmA7Jyk7IiYDQor6rmA7Jqp7IiYDQor6rmA7J2R7JqxDQor6rmA7Jil7IicDQor6rmA7KKF64KoDQor6rmA7Jqp7IiYDQor6rmA7IOB7IiYDQor6rmA7LCo656ADQor6rmA7ISd6rOEDQor6rmA7Jqp7IiYDQor6rmA7KKF7ISdDQor6rmA7KKF7ZiEDQor6rmA7KKF66GADQor6rmA7Jqp7IiYDQor6rmA7IK87ISdDQor6rmA7KKF7LKcDQor6rmA7J6s7JqwDQor6rmA7Jqp7IiYDQor6rmA7LaY67SJDQor6rmA7JiB7KeEDQor6rmA6riw7KCVDQor6rmA7Jqp7IiYDQor6rmA7IaM7Z2gDQor6rmA7IiY656YDQor6rmA7LC97J6QDQor6rmA7Jqp7IiYDQor6rmA7Iq564KoDQor6rmA65GQ64+ZDQor6rmAIO2ZmA0KK+q5gOyaqeyIoA0KK+q5gOqyveydtA0KK+q5gOyYpeuqhQ0KK+q5gOyihe2DgQ0KK+q5gOyaqeyIoA0KK+q5gOuqheyEnQ0KK+q5gOyYgeq1rA0KK+q5gOyImO2YhA0KK+q5gOyaqeyLnQ0KK+q5gOyXsOyaqQ0KK+q5gOyDge2ZmA0KK+q5gOyerOyImA0KK+q5gOyaqeyLnQ0KK+q5gOyerOyhsA0KK+q5gOyasO2drA0KK+q5gOuzkeulnA0KK+q5gOyaqeyVlA0KK+q5gOygle2YuA0KK+q5gOyEnOu0iQ0KK+q5gOuPmeuwsA0KK+q5gOyaqeyVlA0KK+q5gOuzkeuegA0KK+q5gOyDgeyEoA0KK+q5gOuzkeycqA0KK+q5gOyaqeyatA0KK+q5gOygleq3nA0KK+q5gOq3gOq4sA0KK+q5gOy2qeyImQ0KK+q5gOyaqeyatA0KK+q5gOustOyImA0KK+q5gOyjvO2MlA0KK+q5gOunue2YhA0KK+q5gOyaqeyatA0KK+q5gOygley2mA0KK+q5gOyEseyInA0KK+q5gOuqhe2ZmA0KK+q5gOyaqeyatA0KK+q5gOygle2doA0KK+q5gOyYgeyasA0KK+q5gOydmOuNlQ0KK+q5gOyaqeycpA0KK+q5gOynhOyhsA0KK+q5gOyImOqwkQ0KK+q5gOyYgeqwgQ0KK+q5gOyaqeydtA0KK+q5gOygleyLnQ0KK+q5gOynhOyYgQ0KK+q5gO2Vmeq3nA0KK+q5gOyaqeydtQ0KK+q5gOyerO2YuA0KK+q5gOuPmeykgA0KK+q5gOuPhOyaqQ0KK+q5gOyaqeyekA0KK+q5gO2VmeyaqQ0KK+q5gOy2mO2VmA0KK+q5gO2drOyZhA0KK+q5gOyaqeyghA0KK+q5gOyEseyZhA0KK+q5gOyerOybkA0KK+q5gO2DnOyXtA0KK+q5gOyaqeyjvA0KK+q5gO2YhOq3vA0KK+q5gOyEseyInA0KK+q5gOyEoOyekA0KK+q5gOyaqeyjvA0KK+q5gOyEneyhsA0KK+q5gO2VtOyaqQ0KK+q5gOyWteyEnQ0KK+q5gOyaqeykgA0KK+q5gOycpOyYgQ0KK+q5gOyEseyerA0KK+q5gOyYgeyngA0KK+q5gOyaqeykgA0KK+q5gOuLrOq1kA0KK+q5gOyYgeyImA0KK+q5gOygleqyuA0KK+q5gOyaqeyyoA0KK+q5gOyerOq0kQ0KK+q5gOyEse2biA0KK+q5gOyduO2ZmA0KK+q5gOyaqeyyoA0KK+q5gOyImOyLnQ0KK+q5gOycpOyyoA0KK+q5gOykkeuqqQ0KK+q5gOyaqeyyoA0KK+q5gOywqOyhsA0KK+q5gOydhOyErQ0KK+q5gOyImOyImA0KK+q5gOyaqey2nA0KK+q5gOyYgeyErQ0KK+q5gOuzkeyhsA0KK+q5gOunjO2YuA0KK+q5gOyaqey2nA0KK+q5gOywveykgA0KK+q5gOygleycpA0KK+q5gOyYgeuNlQ0KK+q5gOyaqe2DnQ0KK+q5gO2VnOyhsA0KK+q5gOyaqeyImA0KK+q5gOydtOyIoA0KK+q5gOyaqe2DnQ0KK+q5gO2Yle2VmQ0KK+q5gOq0keyLnQ0KK+q5gOyerOyekA0KK+q5gOyaqe2MkA0KK+q5gOyiheybkA0KK+q5gOyiheq4uA0KK+q5gOuPme2YuA0KK+q5gOyaqe2VmQ0KK+q5gOyEsey5mQ0KK+q5gOustOyLpA0KK+q5gOyYgeyEsQ0KK+q5gOyaqe2VtA0KK+q5gOyInOyImA0KK+q5gOuqhe2DgQ0KK+q5gOyDgeunuQ0KK+q5gOyaqe2YhA0KK+q5gOyerO2WpQ0KK+q5gOyYgeycpA0KK+q5gOyEneq3nA0KK+q5gOyaqe2YuA0KK+q5gOyiheunjA0KK+q5gOuPmeyVhQ0KK+q5gOyyoOyErQ0KK+q5gOyaqe2ZlA0KK+q5gO2ZlOyImA0KK+q5gO2VtOyLnQ0KK+q5gOuzteyWuA0KK+q5gOyaqe2ZlA0KK+q5gOuniO2ZmA0KK+q5gOyaqey2mA0KK+q5gOuzkeu2hA0KK+q5gOyaqe2ZlA0KK+q5gOustOqyvQ0KK+q5gOqyveuPmQ0KK+q5gOydhOq3oA0KK+q5gOyaqe2ZmA0KK+q5gOyerOqyvQ0KK+q5gOyEseyEoA0KK+q5gOqwke2YuA0KK+q5gOyaqe2ZmA0KK+q5gOyImOyZhA0KK+q5gOyEuOyViA0KK+q5gOuRkO2drA0KK+q5gOyaqe2ZmA0KK+q5gOuPmeyasA0KK+q5gO2drOqzpA0KK+q5gOyEseycpA0KK+q5gOyaqe2ZmA0KK+q5gOyduOyLnQ0KK+q5gOuCqOyVoA0KK+q5gOybkOyVlA0KK+q5gOyaqe2ajA0KK+q5gO2DgOq3vA0KK+q5gOyYgeyImQ0KK+q5gO2VreyYgQ0KK+q5gOyasOqyrA0KK+q5gOycpOuztQ0KK+q5gOyEneyEsQ0KK+q5gOyduO2DnA0KK+q5gOyasOqzpA0KK+q5gOuqheyaqQ0KK+q5gOyEuOynhA0KK+q5gOyInOyEnQ0KK+q5gOyasOq4iA0KK+q5gOyerOuPhA0KK+q5gOyDgeq4sA0KK+q5gO2YleuFuA0KK+q5gOyasOq4sA0KK+q5gOuLpOyasA0KK+q5gOuzkeyaqQ0KK+q5gOy2mOydtA0KK+q5gOyasOyEnQ0KK+q5gO2Vme2ZlA0KK+q5gOuqheu2gA0KK+q5gOyiheuNlQ0KK+q5gOyasOyImA0KK+q5gOyerOq4uA0KK+q5gOyYpeyImA0KK+q5gOqwkeqzpA0KK+q5gOyasOyLnQ0KK+q5gO2ZjeudvQ0KK+q5gOqyveyekA0KK+q5gO2YuOuemA0KK+q5gOyasOyLnQ0KK+q5gOygleuhnQ0KK+q5gOyCvOyhsA0KK+q5gOyDgeyImA0KK+q5gOyasOyXsA0KK+q5gOyCvOyhsA0KK+q5gOuLrOyInA0KK+q5gOygleuPmQ0KK+q5gOyasOyihQ0KK+q5gOyerOyatA0KK+q5gOyjvO2YuA0KK+q5gOuzkeuPmQ0KK+q5gOyasOykkQ0KK+q5gOyduOq3nA0KK+q5gOuzkeq2jA0KK+q5gOustO2ZmA0KK+q5gOyasOywrA0KK+q5gOycoOyXtA0KK+q5gO2YhOyYgQ0KK+q5gOyKueyLnQ0KK+q5gOyasOyyoA0KK+q5gOyjvOuPhA0KK+q5gOu0ieq4sA0KK+q5gOyerOyynA0KK+q5gOyasO2VnA0KK+q5gOuzte2YuA0KK+q5gOyiheyZhA0KK+q5gOyngOuqqA0KK+q5gOyasO2YhA0KK+q5gOuzke2drA0KK+q5gOyImOq1rQ0KK+q5gOyjvOyerA0KK+q5gOyasO2YhA0KK+q5gOqyveyDgQ0KK+q5gOyDgeq4sA0KK+q5gOyerOqzpA0KK+q5gOyasO2ZmA0KK+q5gOyiheusmA0KK+q5gO2ZjeyatA0KK+q5gOyDge2DnA0KK+q5gOyasO2drA0KK+q5gOyihe2YuA0KK+q5gOyEse2PiQ0KK+q5gOydmOq3nA0KK+q5gOyaseyDnQ0KK+q5gOuPhOu2hA0KK+q5gOq1reu0iQ0KK+q5gOyEseyLnQ0KK+q5gOyaseywvQ0KK+q5gOynhOyekA0KK+q5gOykkeunjA0KK+q5gOq4sO2YuA0KK+q5gOyatOq4uA0KK+q5gOyxhOyInA0KK+q5gOyYgeunjA0KK+q5gOy2mOycpA0KK+q5gOyatOuCqA0KK+q5gOyynOyXsA0KK+q5gO2VtOq3vA0KK+q5gOyduOyInA0KK+q5gOyatOuwsA0KK+q5gOq4sOuemA0KK+q5gOyehOyImA0KK+q5gOuPmeybkA0KK+q5gOyatOyEuA0KK+q5gOyDgeuLrA0KK+q5gOyerOyEpA0KK+q5gOyYpeykgA0KK+q5gOyatOyLnQ0KK+q5gOywveq3vA0KK+q5gOusuOq3vA0KK+q5gOyatOyImQ0KK+q5gOyatOyLnQ0KK+q5gOuzkeuFgA0KK+q5gO2DnO2biA0KK+q5gOywveq4sA0KK+q5gOyatOyasA0KK+q5gO2drOuqhQ0KK+q5gOygleybkA0KK+q5gOyEoOydgA0KK+q5gOyatOyasA0KK+q5gOyInOyXtA0KK+q5gOyYgeywrA0KK+q5gOyaqeyehA0KK+q5gOyatOyhsA0KK+q5gOyYgeyLoA0KK+q5gOyYgeuhgA0KK+q5gOq3oOydvA0KK+q5gOyatO2DnA0KK+q5gOq0keuFuA0KK+q5gOyEseyasQ0KK+q5gOuPhOyImA0KK+q5gOyatO2YuA0KK+q5gOq3vOq4uA0KK+q5gOqwle2YuA0KK+q5gOq3vOq3nA0KK+q5gOybkOqzpA0KK+q5gOyGjO2YuA0KK+q5gO2YhOq3oA0KK+q5gOyerOyInA0KK+q5gOybkOq3nA0KK+q5gOyYpOyYgQ0KK+q5gOunjO2drA0KK+q5gOyDgeyInA0KK+q5gOybkOq4sA0KK+q5gOyGjOy5oA0KK+q5gOq3vOyImA0KK+q5gOyImOuztQ0KK+q5gOybkOq4uA0KK+q5gOuqveyihQ0KK+q5gO2DnOq1rA0KK+q5gOyiheyImA0KK+q5gOybkOuPhA0KK+q5gOyInOyImQ0KK+q5gOuPhOyasA0KK+q5gOuFuOyImA0KK+q5gOybkOuPjA0KK+q5gOq0keyImA0KK+q5gOyerOyaqQ0KK+q5gO2DnOydvA0KK+q5gOybkOyDgQ0KK+q5gOuvuOyekA0KK+q5gOyDgeyasA0KK+q5gOyyoOydvA0KK+q5gOybkOyEnQ0KK+q5gOuzte2XjA0KK+q5gOyKueyXtA0KK+q5gOyCvOuNlQ0KK+q5gOybkOyEnQ0KK+q5gOyasO2ZmA0KK+q5gOyYpeyEoA0KK+q5gOq0ke2YuA0KK+q5gOybkOyImA0KK+q5gO2YhOyIoA0KK+q5gO2DnOyEoA0KK+q5gOyaqeyDgQ0KK+q5gOybkOyLnQ0KK+q5gO2VnO2YhA0KK+q5gOyGjOq0gA0KK+q5gO2KueyImA0KK+q5gOybkOyLnQ0KK+q5gOywrOqzpA0KK+q5gO2VmO2VmQ0KK+q5gOyIoOyImA0KK+q5gOybkOyWtQ0KK+q5gOyEseqwkQ0KK+q5gOuMgOydvA0KK+q5gOygleyaqQ0KK+q5gOybkOyaqQ0KK+q5gOygleydtQ0KK+q5gOyImOusuA0KK+q5gOyehOybkA0KK+q5gOybkOy2nA0KK+q5gOywveq3vA0KK+q5gOuhgOq3oA0KK+q5gOuCqOyLnQ0KK+q5gOybkO2DnA0KK+q5gOyihe2drA0KK+q5gOydgOykkQ0KK+q5gOyYgeq1rA0KK+q5gOybkO2PrA0KK+q5gOyaqeyaqQ0KK+q5gOyDgeyInA0KK+q5gOq3nOq4uA0KK+q5gOybkO2YuA0KK+q5gOy2mOy2nA0KK+q5gOyYpeyhsA0KK+q5gOyEseyYpQ0KK+q5gOybkO2YuA0KK+q5gOy2mOq1rQ0KK+q5gOyEse2VnA0KK+q5gOq3nO2ctA0KK+q5gOyblOyDnQ0KK+q5gOywveq4sA0KK+q5gOygle2YhA0KK+q5gOyerOybkA0KK+q5gOyblOyEoA0KK+q5gO2aqOyXtA0KK+q5gOyYge2ZmA0KK+q5gOygkOydtQ0KK+q5gOyblOyInA0KK+q5gOydgOqwkQ0KK+q5gOuzkeumrA0KK+q5gOqyve2DnQ0KK+q5gOyblOyInA0KK+q5gOygle2YuA0KK+q5gOyEseq3nA0KK+q5gOyjvO2YuA0KK+q5gOyblOyVhQ0KK+q5gOyInOyekA0KK+q5gOygnOqxuA0KK+q5gOyDgeyXsA0KK+q5gOyblOyhsA0KK+q5gOyiheunjA0KK+q5gOunjOuylA0KK+q5gOyEseyImA0KK+q5gOyblO2ZlA0KK+q5gOuMgOuPiA0KK+q5gOyGjOuqhQ0KK+q5gOyblOq1rA0KK+q5gOyblO2ZlA0KK+q5gOyYgeyEnQ0KK+q5gO2aqOqwkQ0KK+q5gOuCqOuPhA0KK+q5gOychOyYgQ0KK+q5gOydmOyImA0KK+q5gOuwseyVvA0KK+q5gOyInOyInA0KK+q5gOycoOqzpA0KK+q5gOyasOuemA0KK+q5gOunkOyhsA0KK+q5gOyerOyasQ0KK+q5gOycoOq4iA0KK+q5gOuCqOyXsA0KK+q5gOq3nOuztQ0KK+q5gO2YhO2YuA0KK+q5gOycoOyLnQ0KK+q5gOyyoOyerA0KK+q5gOy5oOuCqA0KK+q5gO2DnO2YuA0KK+q5gOycoOyLnQ0KK+q5gOyInO2YuA0KK+q5gOyDgeq2jA0KK+q5gOyerOuztQ0KK+q5gOycpOqxtA0KK+q5gOyerOyyoA0KK+q5gOycpO2YuA0KK+q5gO2RnOyYpQ0KK+q5gOycpOqxtA0KK+q5gOygleyEoA0KK+q5gOq3gOuegA0KK+q5gOygleyYpQ0KK+q5gOycpOq0kQ0KK+q5gO2ZjeuwsA0KK+q5gOuzke2ZlA0KK+q5gOq0keyInA0KK+q5gOycpOq4sA0KK+q5gO2Zje2DnA0KK+q5gOyiheyyoA0KK+q5gCDshJ0NCivquYDsnKTrjZUNCivquYDshLHsmqkNCivquYDtmLjtmLgNCivquYDri6ztmIENCivquYDsnKTrj4wNCivquYDri6zsi50NCivquYDqsr3tnawNCivquYDssqDqt5wNCivquYDsnKTrj5kNCivquYDqt5zroYANCivquYDtjJDsiJwNCivquYDrs7Tqt7wNCivquYDsnKTrr7gNCivquYDsnZjsiJgNCivquYDqsr3rgqgNCivquYDsg4HrtoQNCivquYDsnKTrsLANCivquYDtmqjshLENCivquYDsirnshowNCivquYDsoJXtmZQNCivquYDsnKTrs7UNCivquYDtmITsmIENCivquYDsm5Dqta0NCivquYDsnqzsmIENCivquYDsnKTshJ0NCivquYDrjIDssqANCivquYDsg4HsnqwNCivquYDsmqntg5wNCivquYDsnKTshKANCivquYDsg4Hsl7ANCivquYDqsr3shKANCivquYDqtJHsiJkNCivquYDsnKTshKANCivquYDsmqnssqANCivquYDsmIHsnpANCivquYAg7JuQDQor6rmA7Jyk7ISgDQor6rmA64W47J20DQor6rmA7ISx6rOkDQor6rmA67OR6riwDQor6rmA7Jyk7ISsDQor6rmA7JiB7IiZDQor6rmA7IS464u0DQor6rmA7YOc6riwDQor6rmA7Jyk7IStDQor6rmA66+47JuQDQor6rmA7Iic7JqwDQor6rmA64yA7IiZDQor6rmA7Jyk7IiYDQor6rmA7IKs67KUDQor6rmA7ISc6raMDQor6rmA7YOc7ISdDQor6rmA7Jyk7IiYDQor6rmA6rK97JqpDQor6rmA66+47J28DQor6rmA6rWQ7Je0DQor6rmA7Jyk7IudDQor6rmA7KCV7IicDQor6rmA7KKF7KGwDQor6rmA7IOB7JuFDQor6rmA7Jyk7IudDQor6rmA6rCR7IiZDQor6rmA7ZWY7ZmUDQor6rmA7IS466y4DQor6rmA7Jyk7IudDQor6rmA7ISx7Je0DQor6rmA7IiY7IiYDQor6rmA7J6s7IOBDQor6rmA7Jyk7IudDQor6rmA7ZW07ZuIDQor6rmA7YOc7JewDQor6rmA7JiB7YOcDQor6rmA7Jyk7JilDQor6rmA67O17ZiEDQor6rmA67OR6rWtDQor6rmA67OR7IudDQor6rmA7Jyk7JuQDQor6rmA7IiY7JqxDQor6rmA66+87JilDQor6rmA7ISd64+EDQor6rmA7Jyk7J6QDQor6rmA67OR7JqpDQor6rmA7LaY7Z2sDQor6rmA7Iuc7Zi4DQor6rmA7Jyk7J6QDQor6rmA7J2866qoDQor6rmA7JiB64+ZDQor6rmA7LCo7ZqMDQor6rmA7Jyk7J6QDQor6rmA7JiB7ISdDQor6rmA7ISx7Je0DQor6rmA7LaU7J20DQor6rmA7Jyk7J6QDQor6rmA6riI7JewDQor6rmA7YOc7LKgDQor6rmA7YOc64qgDQor6rmA7Jyk7KCQDQor6rmA7KeE7JuQDQor6rmA67OR6re8DQor6rmA7Zal7ZiEDQor6rmA7Jyk7KKFDQor6rmA7KeE7LKgDQor6rmA67OR6rCRDQor6rmA7ZiE7LCsDQor6rmA7Jyk7LKcDQor6rmA7KeE7IiZDQor6rmA64+Z67ORDQor6rmA7YOd7Zi4DQor6rmA7Jyk7YOcDQor6rmA7KeE7JuFDQor6rmA66eQ7IiYDQor6rmA7Jqp7ISdDQor6rmA7Jyk7YOdDQor6rmA7J6s7Je0DQor6rmA7YyQ6rWQDQor6rmA7LaY7LaYDQor6rmA7Jyk7YOdDQor6rmA7IiY6raMDQor6rmA7LCs7IigDQor6rmA7JiB7ZmYDQor6rmA7Jyk7ZWYDQor6rmA7KCQ7JykDQor6rmA7Jq07IStDQor6rmA7J6s7IiYDQor6rmA7Jyk7ZWYDQor6rmA7ISg7J6sDQor6rmA7ZeM7Zi4DQor6rmA7J287IiYDQor6rmA7Jyk7ZWYDQor6rmA7Lmg64KoDQor6rmA7JiB66y4DQor6rmA7J287KCQDQor6rmA7Jyk7ZWYDQor6rmA64yA7JuFDQor6rmA7Jqx7JuFDQor6rmA7KKF7ISgDQor6rmA7Jyk7Zi4DQor6rmA6rK97KO8DQor6rmA6rSR7YOdDQor6rmA7ISx7JiBDQor6rmA7Jyk7Zi4DQor6rmA66+47YOBDQor6rmA66+47ZiEDQor6rmA67O164+ZDQor6rmA7J2A6riwDQor6rmA67SJ7ZiEDQor6rmA7ZmN7IiYDQor6rmA7ZW07Je0DQor6rmA7J2A64+ZDQor6rmA7Jqw6riwDQor6rmA7IK87Z2sDQor6rmA7ZuI64+EDQor6rmA7J2A66GADQor6rmA7ISx7J6sDQor6rmAIOyYgQ0KK+q5gOyEneq3oA0KK+q5gOydgOyImA0KK+q5gOygleyLnQ0KK+q5gOqwkeyImA0KK+q5gOyDge2VmQ0KK+q5gOydgOyImQ0KK+q5gOyjvOyImA0KK+q5gOyMjeu0iQ0KK+q5gOq4sOu0iQ0KK+q5gOydgOyImQ0KK+q5gOyYge2VmQ0KK+q5gO2Mve2YhA0KK+q5gOyInOyVoA0KK+q5gOydgOyLnQ0KK+q5gOyerOu0iQ0KK+q5gOqwleq4sA0KK+q5gOqyveunjA0KK+q5gOydgOyVhA0KK+q5gOuzteydtQ0KK+q5gOyImeyInA0KK+q5gOyInOyglQ0KK+q5gOydgOyYpQ0KK+q5gOygkOydmA0KK+q5gOyDgeyXtA0KK+q5gOyEseq3vA0KK+q5gOydgOydtA0KK+q5gOyDgeyjvA0KK+q5gOuzke2drA0KK+q5gOuzkeuqqA0KK+q5gOydgOyerA0KK+q5gO2DnO2YhA0KK+q5gOuzkeyXtA0KK+q5gOynhOyLnQ0KK+q5gOydgOyglQ0KK+q5gO2ZlOyLnQ0KK+q5gOyYge2biA0KK+q5gOygleyekA0KK+q5gOydgOyjvA0KK+q5gOyYge2drA0KK+q5gOuPmeq4sA0KK+q5gO2DnOyImQ0KK+q5gOydgOynhA0KK+q5gOycpOyaqQ0KK+q5gOyImeyLnQ0KK+q5gOyynOyInA0KK+q5gOydgO2drA0KK+q5gO2DnOyXsA0KK+q5gOyaqeydtA0KK+q5gOq4iOyDgQ0KK+q5gOydgO2drA0KK+q5gOygleyImA0KK+q5gOyiheq1kA0KK+q5gOyEseyEoA0KK+q5gOydhOq3nA0KK+q5gOyerOu5iA0KK+q5gOq1kO2VmQ0KK+q5gOyYgeyxhA0KK+q5gOydhOyEsQ0KK+q5gOyYgeyImA0KK+q5gOykgO2YuA0KK+q5gOyInO2bhA0KK+q5gOydhOyImA0KK+q5gOykgOyXsA0KK+q5gOyaqeywqA0KK+q5gOu2gOyImQ0KK+q5gOydhOyImA0KK+q5gO2YuOyasA0KK+q5gOq4sOyInA0KK+q5gOyCvOunjA0KK+q5gOydhOyehA0KK+q5gOybkOyEnQ0KK+q5gOybkOyInA0KK+q5gOyYpeyhsA0KK+q5gOydhOykgA0KK+q5gOqzoOunjA0KK+q5gOuLrOuPmQ0KK+q5gOuPmeyYpQ0KK+q5gOydkeq2jA0KK+q5gOq3nOyXtA0KK+q5gO2YuOuNlQ0KK+q5gOuPmeuvvA0KK+q5gOydkeq2jA0KK+q5gOybkOyehA0KK+q5gOyYgeyaqQ0KK+q5gOyiheuMgA0KK+q5gOydkeuPhA0KK+q5gOq0keuFuA0KK+q5gOuqhe2YuA0KK+q5gOyduOuPhA0KK+q5gOydkeuPjA0KK+q5gOykgO2ZmA0KK+q5gOyatOyerA0KK+q5gOyDgeq4sA0KK+q5gOydkeugrA0KK+q5gOyerOyZhA0KK+q5gOynhOydtA0KK+q5gOuzkeybkA0KK+q5gOydkeustA0KK+q5gOyYgeyImQ0KK+q5gOuzkeyYgQ0KK+q5gOygle2drA0KK+q5gOydmOqxtA0KK+q5gOuzkeuLrA0KK+q5gOycpOyInA0KK+q5gO2YhO2XjA0KK+q5gOydmOq3vA0KK+q5gOyerO2biA0KK+q5gOqwleyEnQ0KK+q5gO2VhO2VnA0KK+q5gOydmOq3vA0KK+q5gOyDge2YuA0KK+q5gOy5mOy2nA0KK+q5gOynhOyasA0KK+q5gOydmOyImA0KK+q5gOyerOyhsA0KK+q5gOuPme2ZmA0KK+q5gOyyreyhsA0KK+q5gOydmOyImA0KK+q5gOyihe2YuA0KK+q5gOqyveyEsQ0KK+q5gOy2mOydtA0KK+q5gOydmOydvA0KK+q5gOyerOyImQ0KK+q5gOydgOuztQ0KK+q5gOyEse2drA0KK+q5gOydmOyglQ0KK+q5gOy2mOyYgQ0KK+q5gOyDgeyDgQ0KK+q5gOyasOq4uA0KK+q5gOydmO2YhA0KK+q5gOygleyDnQ0KK+q5gOykkeyXtA0KK+q5gOyYgeyEnQ0KK+q5gOydtOq3vA0KK+q5gOyepeyjvA0KK+q5gO2ZmOuqqQ0KK+q5gOuzteydtA0KK+q5gOydtOuPmQ0KK+q5gOq4sOuTnQ0KK+q5gOywveq3nA0KK+q5gOygleq3uQ0KK+q5gOydtOyImA0KK+q5gOygleq0gA0KK+q5gOyerOyImA0KK+q5gOydvOyXsA0KK+q5gOyduOq1rQ0KK+q5gOq4iOunjA0KK+q5gOusuOyekA0KK+q5gOyerO2dpQ0KK+q5gOyduOq3nA0KK+q5gOyKueyEnQ0KK+q5gOyInO2YuA0KK+q5gOyDgeyglQ0KK+q5gOyduOq3nA0KK+q5gOuNleuLrA0KK+q5gOywqOydvA0KK+q5gOqyveyasA0KK+q5gOyduOuNlQ0KK+q5gOuzkeyglQ0KK+q5gOykgOuRkA0KK+q5gOyEne2YuA0KK+q5gOyduOuwsA0KK+q5gOq4sOuPhA0KK+q5gO2DnOyaqQ0KK+q5gOuRkOyYgQ0KK+q5gOyduOyErQ0KK+q5gOyxhOusuA0KK+q5gOq1req4sA0KK+q5gO2YhOyEnQ0KK+q5gOyduOyImA0KK+q5gOydgOyekA0KK+q5gOykgOyImA0KK+q5gO2DnOykgA0KK+q5gOyduOyImA0KK+q5gOqzpOuztA0KK+q5gOydmOqyvQ0KK+q5gOy2mOybhQ0KK+q5gOyduOyImA0KK+q5gOygle2drA0KK+q5gOygkOyjvA0KK+q5gOyYgeyXtA0KK+q5gOyduOyImA0KK+q5gOuqhey5oA0KK+q5gOyiheyaqQ0KK+q5gOyerOyasA0KK+q5gOyduOyImQ0KK+q5gOyyoOydgA0KK+q5gOyYgeyEoA0KK+q5gOuqheyEoA0KK+q5gOyduOyLnQ0KK+q5gOq4uOq1kA0KK+q5gOyDgeyyoA0KK+q5gOyInOuhgA0KK+q5gOyduOyerA0KK+q5gOyepeyDgQ0KK+q5gOyDgeyYpQ0KK+q5gOyDgeyInA0KK+q5gOyduOyjvA0KK+q5gOyZhOydvA0KK+q5gOyEoOyDgQ0KK+q5gOyInO2YuA0KK+q5gOyduO2DgQ0KK+q5gOuMgOy2lA0KK+q5gOyDgeyCvA0KK+q5gO2XjOyIoA0KK+q5gOyduO2DnA0KK+q5gOyYgeyLnQ0KK+q5gOuPme2DnQ0KK+q5gCDsm5ANCivquYDsnbjtg5wNCivquYDtlYTshJ0NCivquYDqtJHqtZANCivquYDsnqzslZQNCivquYDsnbjtg50NCivquYDrj5nsoJUNCivquYDsnbztg50NCivquYDsoJXsiKANCivquYDsnbjtmIENCivquYDsnbTqsJENCivquYDssKztg5wNCivquYDtmJzspIANCivquYDsnbjtmIQNCivquYDsmqnsnKQNCivquYDsiJjsiJgNCivquYDrs5HshKANCivquYDsnbjtmLgNCivquYDso7zsm4UNCivquYDqtJHtl4wNCivquYDsmIHsl7QNCivquYDsnbjtmZgNCivquYDrp4zssqANCivquYDsiJztmLgNCivquYDsnqzsm5ANCivquYDsnbjtmowNCivquYDsiJjslZQNCivquYDtmY3tmLgNCivquYDtmqjssqANCivquYDsnbzqs6QNCivquYDsoJXso7wNCivquYDsnqXsi50NCivquYDso7ztmIQNCivquYDsnbzqs6QNCivquYDqsJHqtawNCivquYDtlbTsmIENCivquYDtlZnsl7QNCivquYDsnbzqt5wNCivquYDshozsmrANCivquYDsg4Hqt5wNCivquYDsmIHrtoQNCivquYDsnbzrhYQNCivquYDsiJjqt4ANCivquYDsoJXrtoQNCivquYDsnqzsiJwNCivquYDsnbzrkZANCivquYAg7LmgDQor6rmA7YOc7JiBDQor6rmA7IOB7J28DQor6rmA7J2866eMDQor6rmA7JiB6riwDQor6rmA7J6s7IiYDQor6rmA6re864W4DQor6rmA7J2867SJDQor6rmA67OR67O1DQor6rmA7Jyg7IicDQor6rmA6rOh66asDQor6rmA7J2867SJDQor6rmA6reA7J20DQor6rmA7IOB7JqwDQor6rmA6riw6re8DQor6rmA7J287ISdDQor6rmA7JiB7KGwDQor6rmA7KCV7IiYDQor6rmA64+E7IudDQor6rmA7J287IiYDQor6rmA7YOc7ZmUDQor6rmA7ISx7KGwDQor6rmA7IK87Zi4DQor6rmA7J287IiYDQor6rmA7JuF7IudDQor6rmA7ISx7JuFDQor6rmA67aA7ZWcDQor6rmA7J287IicDQor6rmA7LKc7YOBDQor6rmA66qF7J24DQor6rmA7J6s7ISxDQor6rmA7J287IigDQor6rmA65Od7ISxDQor6rmA7ZiE7KO8DQor6rmA7IiY7IudDQor6rmA7J287JqpDQor6rmA7YOc7LKgDQor6rmA7Z2s7JewDQor6rmA7ZiE7IicDQor6rmA7J287JqpDQor6rmA7JmV7Zi4DQor6rmA7Jq07YOcDQor6rmA7Jqw64KoDQor6rmA7J287JuFDQor6rmA6re86ri4DQor6rmA64us7IigDQor6rmA6reA6re8DQor6rmA7J287YOcDQor6rmA7J6s6ri4DQor6rmA7Jqp6rK9DQor6rmA7KSA7Je0DQor6rmA7J287YOcDQor6rmA7IiY7IicDQor6rmA7ZmN7Zi4DQor6rmA7KCV7ISgDQor6rmA7J287ZW0DQor6rmA7JiB7LKgDQor6rmA7JiB66qpDQor6rmA64yA64W4DQor6rmA7J287Zi4DQor6rmA7JiB7IiYDQor6rmA7IyN7Zi4DQor6rmA64KZ7JqpDQor6rmA7J287Zi4DQor6rmA7Iq564KoDQor6rmA7J6s7IicDQor6rmA6rK96rK9DQor6rmA7J287ZmNDQor6rmA7ISx7IiZDQor6rmA7ISg7LKgDQor6rmA7JiB64yADQor6rmA7J287ZmUDQor6rmA6rOg6regDQor6rmA7YyQ7ZuIDQor6rmA6re86riIDQor6rmA7J287ZmYDQor6rmA7KCV7Je0DQor6rmA7ZmU7IiYDQor6rmA7KSA7IiYDQor6rmA7J287ZmYDQor6rmA67OR7Z2UDQor6rmA6riw7J20DQor6rmA7KKF64KoDQor6rmA7J287Z2sDQor6rmA7ZiE7Zi4DQor6rmA7KeA66WgDQor6rmA6rCV6riwDQor6rmA7J287Z2sDQor6rmA7YOc7LKcDQor6rmA66eM7JiBDQor6rmA66y47Z2sDQor6rmA7J6E6rOkDQor6rmA7IOB7Z2sDQor6rmA7Jm47IudDQor6rmA7Lmg7JqpDQor6rmA7J6E7IicDQor6rmAIOyEoA0KK+q5gOyhsO2YhA0KK+q5gOuvuO2YuA0KK+q5gOyehOyjvA0KK+q5gOuzteyEsQ0KK+q5gOyEseyImA0KK+q5gOqyveq0gA0KK+q5gOyekOq3vOqygA0KK+q5gOu2gOynhOq4sA0KK+q5gOunpOycoOq3nA0KK+q5gOygleyImOyYpA0KK+q5gOyekO2drA0KK+q5gOyEseyXtA0KK+q5gOqyveuCqA0KK+q5gOq4iO2YuA0KK+q5gOyepeuwsA0KK+q5gOyEuO2drA0KK+q5gOyYge2YuA0KK+q5gOyduOq3vA0KK+q5gOyepeuztA0KK+q5gOycoOyerA0KK+q5gOyYpeuPhA0KK+q5gO2YhOq0gA0KK+q5gOyepeyYpQ0KK+q5gOqyveyLnQ0KK+q5gOyduOuFhA0KK+q5gOydgOyErQ0KK+q5gOyepeybkA0KK+q5gOyyoOyZhA0KK+q5gO2VmeyLnQ0KK+q5gOygnOq3gA0KK+q5gOyepeybkA0KK+q5gOuzte2YuA0KK+q5gOyYgeyXtA0KK+q5gOq4sOyEnQ0KK+q5gOyepe2ZmA0KK+q5gOyerO2WpQ0KK+q5gOyInOyImA0KK+q5gOycoOyErQ0KK+q5gOyepe2drA0KK+q5gOyatOuylA0KK+q5gOyYgeyhsA0KK+q5gOyngO2VmA0KK+q5gOyerOqzpA0KK+q5gOy2mOyhsA0KK+q5gOyasO2ZmA0KK+q5gOyerOuztQ0KK+q5gOyerOq0kQ0KK+q5gO2DnOyXtA0KK+q5gOqwleq4sA0KK+q5gOyYge2YuA0KK+q5gOyerOq1rA0KK+q5gOyDgeyErQ0KK+q5gOq0keqxtA0KK+q5gOyDgeuPiA0KK+q5gOyerOq3nA0KK+q5gOyInO2DnA0KK+q5gOyZhOuCqA0KK+q5gO2VtO2ZjQ0KK+q5gOyerOq3nA0KK+q5gOq3vOuNlQ0KK+q5gOuzke2drA0KK+q5gOyEseq4sA0KK+q5gOyerOq3nA0KK+q5gOqwleyjvA0KK+q5gOygleuPhA0KK+q5gO2YhOyXsA0KK+q5gOyerOq3nA0KK+q5gOq4sOyaqQ0KK+q5gOy2mOyekA0KK+q5gOyEneyekA0KK+q5gOyerOq3oA0KK+q5gOyCvOq1rA0KK+q5gOuvvOyXtA0KK+q5gOuzkeyIoA0KK+q5gOyerOq3vA0KK+q5gOyLoOynhA0KK+q5gOyerOybkA0KK+q5gOyaqeq4uA0KK+q5gOyerOuCqA0KK+q5gOyImOyVoA0KK+q5gOqxtOuNlQ0KK+q5gOyDgeuCqA0KK+q5gOyerOuCqA0KK+q5gOuRkOq3nA0KK+q5gOqxtO2ZlA0KK+q5gO2MkOyekA0KK+q5gOyerOuMgA0KK+q5gOyynOybkA0KK+q5gOyEseq3nA0KK+q5gO2DnO2ZmA0KK+q5gOyerOuNlQ0KK+q5gOyerOyasA0KK+q5gOyEseyjvA0KK+q5gOuPhOyaqQ0KK+q5gOyerOuNlQ0KK+q5gOykkeq3nA0KK+q5gOuNleuLrA0KK+q5gOustOyjvA0KK+q5gOyerOuNlQ0KK+q5gOyduOuLrA0KK+q5gOyYge2YuA0KK+q5gOydmOyhsA0KK+q5gOyerOuNlQ0KK+q5gOyInOq3vA0KK+q5gOyerO2doA0KK+q5gOyYgeyInA0KK+q5gOyerOuPhA0KK+q5gOybkOyImA0KK+q5gOyEseybkA0KK+q5gO2DnOq3oA0KK+q5gOyerOuPhA0KK+q5gOyEseq3nA0KK+q5gOyYgeybkA0KK+q5gOywve2YhA0KK+q5gOyerOuPmQ0KK+q5gOywveyEuA0KK+q5gO2VhOyDgQ0KK+q5gOyYgeyYgQ0KK+q5gOyerOuTnQ0KK+q5gOyasOyInA0KK+q5gOydhOq3oA0KK+q5gOyehOunjA0KK+q5gOyerOunjA0KK+q5gOyaqe2VmQ0KK+q5gOq4iOyLnQ0KK+q5gO2VnO2ZmA0KK+q5gOyerOunjA0KK+q5gOyDge2YuA0KK+q5gOyDgeyImA0KK+q5gOyDge2ZmA0KK+q5gOyerOunjA0KK+q5gOyEoOybhQ0KK+q5gOyYge2ajA0KK+q5gOydtOyhsA0KK+q5gOyerOusuA0KK+q5gOuzkeyKuQ0KK+q5gOywveyXtA0KK+q5gOyEseybhQ0KK+q5gOyerOuztQ0KK+q5gO2drO2YuA0KK+q5gO2YuOyyoA0KK+q5gOq3nOyglQ0KK+q5gOyerOu0iQ0KK+q5gOuPmeyImA0KK+q5gO2DnO2DnA0KK+q5gOyerOyLnQ0KK+q5gOyerOyDnQ0KK+q5gOuqheq3vA0KK+q5gOygleq2jA0KK+q5gOq3nOyaqQ0KK+q5gOyerOyEnQ0KK+q5gOynhO2YuA0KK+q5gOuzkeyaqQ0KK+q5gOuMgOyEsQ0KK+q5gOyerOyEoA0KK+q5gOyEne2YuA0KK+q5gO2VtOyhsA0KK+q5gOyerOynhA0KK+q5gOyerOyErQ0KK+q5gOuqheustQ0KK+q5gOusuOyEsQ0KK+q5gO2MkOynhA0KK+q5gOyerOyImA0KK+q5gOyYgeuPhA0KK+q5gOyaqeqzpA0KK+q5gOyjvOyhsA0KK+q5gOyerOyImA0KK+q5gOyerOyYpQ0KK+q5gOyDgeuvvA0KK+q5gOycpO2YuA0KK+q5gOyerOyImA0KK+q5gO2DnO2VnA0KK+q5gOusuOynhA0KK+q5gO2Vmeq2jA0KK+q5gOyerOyImA0KK+q5gO2YuO2doA0KK+q5gOuzkeu0iQ0KK+q5gOuMgOyErQ0KK+q5gOyerOyImA0KK+q5gOustOq3nA0KK+q5gOychOyyoA0KK+q5gO2VtOyVlA0KK+q5gOyerOyInA0KK+q5gOydgOyImQ0KK+q5gOy2mOydtA0KK+q5gOuCqOyEpA0KK+q5gOyerOyLnQ0KK+q5gOuPmeyImA0KK+q5gOq4iOybkA0KK+q5gOyYgeq3vA0KK+q5gOyerOyWkQ0KK+q5gOydgOymnQ0KK+q5gOyGjOyXtA0KK+q5gOyerOyImA0KK+q5gOyerOyXsA0KK+q5gOygleq4sA0KK+q5gO2DnOyaqQ0KK+q5gOygle2YhA0KK+q5gOyerOyXsA0KK+q5gOyImOyEnQ0KK+q5gOyYgeyEnQ0KK+q5gOyYgeyCvA0KK+q5gOyerOyXtA0KK+q5gOyngOyEnQ0KK+q5gOynhOyImQ0KK+q5gOyaqeyaqQ0KK+q5gOyerOyXtA0KK+q5gOuPhOuylA0KK+q5gOyerOyImA0KK+q5gCDsnbQNCivquYDsnqzsl7QNCivquYDsmbjtm4gNCivquYDquIjrspQNCivquYDqsr3shJ0NCivquYDsnqzsmIENCivquYDrs5HtmZQNCivquYDtmY3smYQNCivquYDstqnsg4ENCivquYDsnqzsmIENCivquYDsmIHqt5wNCivquYDrrLTrjIANCivquYDsmKXquLgNCivquYDsnqzsmIENCivquYDssYTrhYANCivquYDtg5ztmJUNCivquYDsiJjqs6QNCivquYDsnqzsmKUNCivquYDsnKTsm5ANCivquYDshLHsiJkNCivquYDqsr3shJ0NCivquYDsnqzsmKUNCivquYDshLHssqANCivquYDqtJHsiJkNCivquYDsmIHshKANCivquYDsnqzsmqkNCivquYDsnKTshKANCivquYDrjIDqt7wNCivquYDtmqjtmIQNCivquYDsnqzsmqkNCivquYDsmYTsl7QNCivquYDsiJzroZ0NCivquYDsmqntmLgNCivquYDsnqzsmqkNCivquYDrs7Xsl7QNCivquYDquLDqtowNCivquYDsg4HshK0NCivquYDsnqzsmqkNCivquYDshLHrspQNCivquYDsnbTrn4kNCivquYDsmKXsoJUNCivquYDsnqzsmrANCivquYDqsr3smYQNCivquYDtmLjqtZANCivquYDsg4Hsl7QNCivquYDsnqzsm5ANCivquYDsmIHtmowNCivquYDshLHsobANCivquYDqsr3tg5wNCivquYDsnqzsm5ANCivquYDrs7XsoJUNCivquYDsg4HrgqgNCivquYDsiJztmZgNCivquYDsnqzsnbwNCivquYDsg4Hsm4UNCivquYDsuZjtmLgNCivquYDsnqztnawNCivquYDsnqzsnoQNCivquYDsooXtmLgNCivquYDrj4jquLANCivquYDrs5Hso7wNCivquYDsnqzsoIQNCivquYDsnqzsi50NCivquYDsmqnsmKUNCivquYDsgrzqtZANCivquYDsnqzssqANCivquYDslaDstpwNCivquYDtnaztmY0NCivquYDsg4HshJ0NCivquYDsnqzssqANCivquYDsiJjtg5wNCivquYDsm5DqtawNCivquYDtl4zqtowNCivquYDsnqzssq0NCivquYDsooXtlZgNCivquYDqt7zsmrQNCivquYDrqoXsi50NCivquYDsnqztlZkNCivquYDsmqnsiJwNCivquYDsoJDqtZANCivquYDtmY3smqkNCivquYDsnqztlZwNCivquYDtlZzquLANCivquYDrj5nsiJgNCivquYDtlZnrj4QNCivquYDsnqztmIQNCivquYDrr7zsmqkNCivquYDsooXsp4QNCivquYDrj5nsp4QNCivquYDsnqztmIQNCivquYDsnqXquLgNCivquYDri6zqt7wNCivquYDsnoTsmYQNCivquYDsnqztmIQNCivquYDsmIHshKANCivquYDqsr3siJgNCivquYDrj5nrk50NCivquYDsnqztmIQNCivquYDtmJXsiJgNCivquYDrspTspIANCivquYDsi5ztg5wNCivquYDsnqztmLgNCivquYDquIjqtIANCivquYDrtIntmZgNCivquYDshLHsiJkNCivquYDsnqztmLgNCivquYDsi6TsnqwNCivquYDrj5nshKANCivquYDstpjsl7QNCivquYDsnqztmLgNCivquYDsnbzsiJwNCivquYDsirntmIQNCivquYDrgqjsl7ANCivquYDsnqztmY0NCivquYDtmqjsmKUNCivquYDrtInqs6QNCivquYDqsJXsiJgNCivquYDsnqztmY0NCivquYDtg5zsmIENCivquYDrr7jtmLgNCivquYDsnqzsp4QNCivquYDsnqztmZQNCivquYDsoJXsmrANCivquYDsnKTrkZANCivquYDquLDsmrANCivquYDsnqztmZQNCivquYDstqnsl7ANCivquYDshLHshK0NCivquYDsmIHsnKQNCivquYDsnqztmZQNCivquYDsooXqt5wNCivquYDsmKXsoJUNCivquYDsm5DshKANCivquYDsnqztmZgNCivquYDsooXtg5wNCivquYDsooXtmLgNCivquYDsp4TsooUNCivquYDsnqztmZgNCivquYDsspztmLgNCivquYAg642VDQor6rmA7KCV6ri4DQor6rmA7J6s7ZmYDQor6rmA7KeE64WEDQor6rmA7KCQ7IicDQor6rmA7J287JqpDQor6rmA7J6s7ZmYDQor6rmA7JuQ7JiBDQor6rmA6rK96recDQor6rmA6rK97LacDQor6rmA7J6s7ZmYDQor6rmA7J6s7ISgDQor6rmA7Z2s7JqwDQor6rmA7KKF6rCRDQor6rmA7J6s7ZuEDQor6rmA7ISc7J20DQor6rmA7J207J20DQor6rmA7KeA6regDQor6rmA7J6s7ZuEDQor6rmA7Zic7ZmNDQor6rmAIO2ZmA0KK+q5gOyEoOyZhA0KK+q5gOyerO2bhQ0KK+q5gO2ajOyaqQ0KK+q5gOyImOyjvA0KK+q5gOyImO2YuA0KK+q5gOyerO2biA0KK+q5gOygleuztA0KK+q5gOqyveyImA0KK+q5gOyerOyImQ0KK+q5gOyerO2biA0KK+q5gOq0keuPhA0KK+q5gOygleqyvQ0KK+q5gOyiheqyvQ0KK+q5gOyerO2drA0KK+q5gOygle2YhA0KK+q5gOq1re2YhA0KK+q5gOuylO2drA0KK+q5gOygge2ZmA0KK+q5gOuzkeyWuA0KK+q5gOuzkeyIoA0KK+q5gOyerOybkA0KK+q5gOyghOq3oA0KK+q5gOqyveyEoA0KK+q5gOyEoOyLpA0KK+q5gOuzkeyduA0KK+q5gOyghOq4sA0KK+q5gOyerOq3vA0KK+q5gOyYgeynhA0KK+q5gOuzkeydtA0KK+q5gOygkOq3vA0KK+q5gOyYgeyErQ0KK+q5gOu2hOyxhA0KK+q5gOqyveyEnQ0KK+q5gOygkOuCqA0KK+q5gOq4sOyEoA0KK+q5gOyatOyyoA0KK+q5gOunjOyaqQ0KK+q5gOygkOuPjA0KK+q5gOuqheyasA0KK+q5gOyynO2ZmA0KK+q5gOyaqe2drA0KK+q5gOygkOuhgA0KK+q5gOuMgOyerA0KK+q5gOuNleu2hA0KK+q5gOunjOyInA0KK+q5gOygkOunjA0KK+q5gOuzte2DnA0KK+q5gOyaqeuCqA0KK+q5gOyZuOq1rA0KK+q5gOygkOu0iQ0KK+q5gOycpOyInA0KK+q5gOydke2ZmA0KK+q5gOybkOyYgQ0KK+q5gOygkOyDnQ0KK+q5gCDtkZwNCivquYDrgqjsmqkNCivquYDsgrzqs6QNCivquYDsoJDsiJgNCivquYAg7J20DQor6rmA66y07J21DQor6rmA6rSR6riwDQor6rmA7KCQ7IiYDQor6rmA7J247IudDQor6rmA7KO87KeEDQor6rmA7JeF66CoDQor6rmA7KCQ7IiZDQor6rmA7JiB7ZiEDQor6rmA7YOc7JilDQor6rmA642V7IiYDQor6rmA7KCQ7IicDQor6rmA7LCo7JqxDQor6rmA7Iq57ZWZDQor6rmA7IOB7IStDQor6rmA7KCQ7IicDQor6rmA7J2466eMDQor6rmA66eM7IiYDQor6rmA7Jyk7JiBDQor6rmA7KCQ7IigDQor6rmA7J287J6QDQor6rmA6riI7JuQDQor6rmA7Jq07KO8DQor6rmA7KCQ7IigDQor6rmA7KCQ7IigDQor6rmA64Ko66eMDQor6rmA7ISx7KSADQor6rmA7KCQ7JilDQor6rmA64+Z7JewDQor6rmA7IiY7ZmYDQor6rmA7YOc7ISgDQor6rmA7KCQ7J6QDQor6rmA7IOB7ZmYDQor6rmA66eM7YOcDQor6rmA64+Z7IiZDQor6rmA7KCQ7LKgDQor6rmA7ISx7KGwDQor6rmA66qF64KoDQor6rmA6rK966GADQor6rmA7KCQ7LacDQor6rmA7LC97IicDQor6rmA66eM7JqpDQor6rmA7ISx7YOdDQor6rmA7KCQ7YyUDQor6rmA7LaY66GdDQor6rmA64+Z6rWQDQor6rmA7Jqp7ZmUDQor6rmA7KCQ7Zi4DQor6rmA66eM64usDQor6rmA7ZmN7IudDQor6rmA7JiB7ZiEDQor6rmA7KCQ7ZmYDQor6rmA67OR7JyoDQor6rmA7J247ISgDQor6rmA7KO867O0DQor6rmA7KCV6rCVDQor6rmA7Z2s66OhDQor6rmA7Jqp7J6sDQor6rmA67OR66+8DQor6rmA7KCV6rCVDQor6rmA7LGE7Je0DQor6rmA6rG06riwDQor6rmA7KKF64+ZDQor6rmA7KCV6rG0DQor6rmA64Ko67CwDQor6rmA7JuQ7KeEDQor6rmA7YOc6riwDQor6rmA7KCV6rG0DQor6rmA7KCV656ADQor6rmA7J247J6QDQor6rmA7YOc7ZmYDQor6rmA7KCV6rOgDQor6rmA7KSR7ISdDQor6rmA6rCE6recDQor6rmA7ISx7IiYDQor6rmA7KCV6raMDQor6rmA7KCV6rOkDQor6rmA7J2E64KoDQor6rmA7KSA7JuFDQor6rmA7KCV6raMDQor6rmA7ISd7JuFDQor6rmA6riw7JqwDQor6rmA7Zqo7ZmpDQor6rmA7KCV6recDQor6rmA6rWQ7ZWcDQor6rmA7ISx7ISdDQor6rmA7ZmN7JiBDQor6rmA7KCV6recDQor6rmA7Iig7IiZDQor6rmA6re87IiYDQor6rmA7IS47JqwDQor6rmA7KCV6re8DQor6rmA67SJ7IudDQor6rmA7KKF7JewDQor6rmA7KCV7Zy0DQor6rmA7KCV6re8DQor6rmA7IiY7YOdDQor6rmA7KCV6riwDQor6rmA7Jqp7JykDQor6rmA7KCV6re8DQor6rmA7KeE7JqpDQor6rmA7JiB6re8DQor6rmA7YOc7LacDQor6rmA7KCV6riwDQor6rmA67OR7Z2sDQor6rmA64+Z64+EDQor6rmA7IiZ7KO8DQor6rmA7KCV6ri4DQor6rmA7Jqw66aEDQor6rmA7JuQ7ZuIDQor6rmA7J6s64+EDQor6rmA7KCV6ri4DQor6rmA7Jqp7LKgDQor6rmA7ZmN7IiYDQor6rmA7Jqp7Zi4DQor6rmA7KCV64KoDQor6rmA7ZW07IStDQor6rmA7J2R6riwDQor6rmA7Jqx7KO8DQor6rmA7KCV64yADQor6rmA7Jew7LGEDQor6rmA7J247LKgDQor6rmA66+47YOdDQor6rmA7KCV64yADQor6rmA7KKF7ZuIDQor6rmA7IOB64+ZDQor6rmA7JuQ7IicDQor6rmA7KCV642VDQor6rmA7J2Y7KGwDQor6rmA7Iic6rOkDQor6rmA7KSA7KCcDQor6rmA7KCV64+EDQor6rmA7Jik6recDQor6rmA7KCV7KSADQor6rmA7ISg7LKgDQor6rmA7KCV64+ZDQor6rmA7ISx7KSADQor6rmA7IK87IiYDQor6rmA7LKc7ZmYDQor6rmA7KCV65OdDQor6rmA7ZWc7JaRDQor6rmA7ISx6rOkDQor6rmA7JiB7IOdDQor6rmA7KCV65OdDQor6rmA7Jyk6rOkDQor6rmA64+Z7IicDQor6rmA7LC97IiYDQor6rmA7KCV65OdDQor6rmA7ISx7ISdDQor6rmA67OR7Zi4DQor6rmA7IiY7ZuIDQor6rmA7KCV6529DQor6rmA7Jew7IeEDQor6rmA7Iq57JiBDQor6rmA7ZiV64yADQor6rmA7KCV66GdDQor6rmA7JiB7IiZDQor6rmA7KKF7IOBDQor6rmA67OR7YOcDQor6rmA7KCV66y1DQor6rmA7J2A7J24DQor6rmA7JiB6rOgDQor6rmA7J6s7ZWZDQor6rmA7KCV66y4DQor6rmA6rec7ZiEDQor6rmA7J247IiYDQor6rmA6raM7KeADQor6rmA7KCV66+4DQor6rmA64us7IOBDQor6rmA7J6s7JaRDQor6rmA66qF7IiYDQor6rmA7KCV66+8DQor6rmA6riw656RDQor6rmA7KCV7IudDQor6rmA7ISg6re8DQor6rmA7KCV67CwDQor6rmA7KSR7ISdDQor6rmA7KKF7IiYDQor6rmA7ISx6recDQor6rmA7KCV67KUDQor6rmA7ISx7KGwDQor6rmA7JiB7LC9DQor6rmA7Z2s6rWsDQor6rmA7KCV67KUDQor6rmA7JiB7JuQDQor6rmA7IKs6re8DQor6rmA7YOc6rWtDQor6rmA7KCV67O1DQor6rmA7KKF7JqwDQor6rmA7ISx6ri4DQor6rmA7J246riwDQor6rmA7KCV67SJDQor6rmA7J6s6recDQor6rmA7KCV7IicDQor6rmA7J287YOdDQor6rmA7KCV67SJDQor6rmA7JuF7IudDQor6rmA7J6s7JykDQor6rmA7ISx7IudDQor6rmA7KCV67aADQor6rmA7Jil7IiYDQor6rmA7KCQ64KoDQor6rmA7KCV6rWsDQor6rmA7KCV67aADQor6rmA66y07J6QDQor6rmA7JiB7Zi4DQor6rmA6rCR6rWtDQor6rmA7KCV67aADQor6rmA6rK96raMDQor6rmA66qF7IiYDQor6rmA6rec7JqwDQor6rmA7KCV67mIDQor6rmA66eM6recDQor6rmA7IOB7KCVDQor6rmA6rK97IicDQor6rmA7KCV7IOBDQor6rmA7J6s6regDQor6rmA67OR7Je0DQor6rmA7Iic7YOdDQor6rmA7KCV7IOdDQor6rmA7J207ZmYDQor6rmA7KKF6rWsDQor6rmA6riw7ZiEDQor6rmA7KCV7ISdDQor6rmA7YOc7IiYDQor6rmA7JuQ7IudDQor6rmA7JuQ67SJDQor6rmA7KCV7ISgDQor6rmA7J6s7KCVDQor6rmA7J246rCRDQor6rmA7KeE7Z2gDQor6rmA7KCV7ISgDQor6rmA64us7ISgDQor6rmA67SJ7Je9DQor6rmA7IiY7IStDQor6rmA7KCV7ISgDQor6rmA7YOc7IicDQor6rmA7Zmp7ZiEDQor6rmA7JiB7KO8DQor6rmA7KCV7IiYDQor6rmA67KU656YDQor6rmAIOydtA0KK+q5gOyngOyImQ0KK+q5gOygleyImA0KK+q5gOyCvOyekA0KK+q5gOykkeyEnQ0KK+q5gOyCrOyImA0KK+q5gOygleyImA0KK+q5gOyEneq2jA0KK+q5gOyYpeyXsA0KK+q5gOyduOyImQ0KK+q5gOygleyImA0KK+q5gO2VnOydvA0KK+q5gOygle2YnA0KK+q5gOyYgeyynA0KK+q5gOygleyImA0KK+q5gOq3nOyXsA0KK+q5gOygleuqhQ0KK+q5gOyiheyVlA0KK+q5gOygleyImA0KK+q5gOuzke2YuA0KK+q5gOyGjOuCqA0KK+q5gOyiheyCvA0KK+q5gOygleyImA0KK+q5gO2DgeynhA0KK+q5gOqyveybkA0KK+q5gOq0keyasQ0KK+q5gOygleyImQ0KK+q5gOyyoO2drA0KK+q5gOyYge2YuA0KK+q5gOyEneq2jA0KK+q5gOygleyImQ0KK+q5gOu0ieyDgQ0KK+q5gOy2qeuztA0KK+q5gOygleyyoA0KK+q5gOygleyImQ0KK+q5gOyiheyyoA0KK+q5gOyxhOyerA0KK+q5gOykgOyEnQ0KK+q5gOygleyInA0KK+q5gOyaqeuqqA0KK+q5gOygle2DnQ0KK+q5gOyatOuPhA0KK+q5gOygleyInA0KK+q5gOuzkeydtA0KK+q5gOyatOykgA0KK+q5gOykke2YuA0KK+q5gOygleyInA0KK+q5gOyEseyatA0KK+q5gOy2nOyImA0KK+q5gOyDgeuFhA0KK+q5gOygleyInA0KK+q5gOuMgOyyoA0KK+q5gCDrqqkNCivquYDsmqnsmrQNCivquYDsoJXsiJwNCivquYDsm5TsiJwNCivquYDsmIHsiJwNCivquYDsnqXrr7wNCivquYDsoJXsiJwNCivquYDsooXslaANCivquYDsmrDstpwNCivquYDsnYTtlZkNCivquYDsoJXsiKANCivquYDtg5ztlqUNCivquYDqtJHsiJgNCivquYDsnKTso7wNCivquYDsoJXsi50NCivquYDsmKXsl7QNCivquYDsnqzquLANCivquYDsnbjsmKUNCivquYDsoJXslaANCivquYDsl7DsmIENCivquYDsnYDsnbwNCivquYDrs5HtlZwNCivquYDsoJXslaANCivquYDrhbjsp4QNCivquYDsnqzqtawNCivquYDtg5zsl7QNCivquYDsoJXslpENCivquYDsmqnshLENCivquYDsiJnqt4ANCivquYDtlZzsi50NCivquYDsoJXsl7ANCivquYDtlqXsl70NCivquYDtl4ztmLgNCivquYDtlYTqtawNCivquYDsoJXsl7QNCivquYDsooXsl7QNCivquYDsiJjsl7ANCivquYDsmKXshKANCivquYDsoJXsl7QNCivquYDshLHtnawNCivquYDsooXtg5wNCivquYDsg4HsiJwNCivquYDsoJXsl7QNCivquYDrgqjsi50NCivquYDsnITtm4gNCivquYDtlZjstpgNCivquYDsoJXsmKQNCivquYDsg4HtmIQNCivquYDsg4HsiJwNCivquYDsp4TtmY0NCivquYDsoJXsmKUNCivquYDrj4TtnawNCivquYDrp4ztl4wNCivquYDquIjrp4wNCivquYDsoJXsmKUNCivquYDrtoDquLANCivquYDrtInqt6ANCivquYDshLHtmqgNCivquYDsoJXsmqkNCivquYDsoJXsl7QNCivquYDsg4Hqt5wNCivquYDslpHslYUNCivquYDsoJXsmrANCivquYDtg5zsiJgNCivquYDtg5zrqqkNCivquYDshJ3siJgNCivquYDsoJXsm4UNCivquYDsmqnsmqkNCivquYDquLDsm5ANCivquYDtg4DtmLgNCivquYDsoJXsnKQNCivquYDrtInsiKANCivquYDssKjqtawNCivquYDssL3smrQNCivquYDsoJXsnYANCivquYDrqoXqt7wNCivquYDqsr3si50NCivquYDsnqzrpqwNCivquYDsoJXsnbQNCivquYDrjIDsiJwNCivquYDqsr3sl7ANCivquYDsmIHsiJgNCivquYDsoJXsnbQNCivquYDtjJDqt7wNCivquYDsooXshJ0NCivquYDqsr3quLANCivquYDsoJXsnbwNCivquYDri6zrp4wNCivquYDsmqnsiJgNCivquYDsiJjtmLgNCivquYDsoJXsnpANCivquYDsnbjsmrANCivquYDsirnrj4QNCivquYDsiJzsmIENCivquYDsoJXsnqwNCivquYDqsr3sm5ANCivquYDqsr3rr7gNCivquYDsmrDsmrQNCivquYDsoJXssKgNCivquYDshLHqsr0NCivquYDtmIHtmLgNCivquYAg7JygDQor6rmA7KCV7LCoDQor6rmA6riI7ISdDQor6rmA7J6s7Z2lDQor6rmA7YyQ6raMDQor6rmA7KCV7LacDQor6rmA7ISx7ISxDQor6rmA7ZKN67ORDQor6rmA7Iic7JqpDQor6rmA7KCV7LmYDQor6rmA64+Z7KeEDQor6rmA7J6s7JewDQor6rmA7IiY7ZiEDQor6rmA7KCV7YOcDQor6rmA7IK87J6sDQor6rmA67SJ7KSADQor6rmA7ISd7Z2sDQor6rmA7KCV7YOcDQor6rmA7IOB7IiYDQor6rmA64+Z7Je0DQor6rmA7IK87ZmUDQor6rmA7KCV7YOcDQor6rmA7JaR6rCRDQor6rmA7ZmU66+4DQor6rmA7KeE7Zi4DQor6rmA7KCV7ZWZDQor6rmA7Jil7JWUDQor6rmA642V642VDQor6rmA64yA7J21DQor6rmA7KCV7ZWZDQor6rmA7KCV7ZiEDQor6rmA64yA7ZmYDQor6rmA67OR67O1DQor6rmA7KCV7ZeMDQor6rmA7KCV7LC9DQor6rmA67OR64+MDQor6rmA6rSA7ZmUDQor6rmA7KCV7Zi4DQor6rmA7Jq07ZiEDQor6rmA7KCQ642VDQor6rmA7Ius7JewDQor6rmA7KCV7Zi4DQor6rmA7JiB67O1DQor6rmA7ZiE66qpDQor6rmA7KCV7ZmNDQor6rmA7KCV7Zi4DQor6rmA7KCV66CoDQor6rmA7J6s7YOcDQor6rmA7IiY7J6EDQor6rmA7KCV7Zi4DQor6rmA7IOB7YOcDQor6rmA7J6s6riwDQor6rmA7IOB7JiBDQor6rmA7KCV7Zi4DQor6rmA67OR7KSADQor6rmA7KCV7JqpDQor6rmA7KKF7J28DQor6rmA7KCV7Zi4DQor6rmA7KSR642VDQor6rmA7Zi47JuFDQor6rmA7ZiE7YOBDQor6rmA7KCV7Zi4DQor6rmA7KKF67CwDQor6rmA6rSR66qFDQor6rmA6rSA7JykDQor6rmA7KCV7Zi4DQor6rmA7KO87Zi4DQor6rmA64yA7JqpDQor6rmA7JiB7ZmYDQor6rmA7KCV7Zi4DQor6rmA6rK97JiBDQor6rmA7ISd7ISdDQor6rmA66eM7JuQDQor6rmA7KCV7Zi4DQor6rmA7YOc7ZmYDQor6rmA7J2464+IDQor6rmA6rCR7IStDQor6rmA7KCV7ZmNDQor6rmA66eM7IudDQor6rmA7IOB7KCVDQor6rmA7JuQ7JiBDQor6rmA7KCV7ZmUDQor6rmA7J6s7JuFDQor6rmA7LC97ISgDQor6rmA7ISd7LKgDQor6rmA7KCV7ZmUDQor6rmA7KKF7KSADQor6rmA7J6s7ZWcDQor6rmA7KCQ7ZiEDQor6rmA7KCV7ZmYDQor6rmA7J247IudDQor6rmA7JiB7ZiEDQor6rmA7Iic6rWtDQor6rmA7KCV7ZmYDQor6rmA7ZmN67SJDQor6rmA7KSR7Je0DQor6rmA7KCV7ZWcDQor6rmA7KCV7ZmYDQor6rmA642V7Zi4DQor6rmA67OR6rWQDQor6rmA7KeE7IiYDQor6rmA7KCV7ZmYDQor6rmA7Y+J67ORDQor6rmA66eQ7ISxDQor6rmA7Zmp7Zi4DQor6rmA7KCV7ZmYDQor6rmA7ISd7IOdDQor6rmA7KKF7IiYDQor6rmA7Iug7LKgDQor6rmA7KCV7ZmYDQor6rmA7LaY7IiZDQor6rmA6ri47ISdDQor6rmA7J6s6riwDQor6rmA7KCV7ZmYDQor6rmA66qF64+MDQor6rmA7Z2s6recDQor6rmA7J287IiZDQor6rmA7KCV7ZmYDQor6rmA64Ko7ZeMDQor6rmA6rK97ZuIDQor6rmA7KCV7ISxDQor6rmA7KCV7ZuIDQor6rmA7J2A7Ja4DQor6rmA7Iq57Iq5DQor6rmA7KCV7JikDQor6rmA7KCV7Z2gDQor6rmA7JuQ7ZmYDQor6rmA7Jyk642VDQor6rmA7J287IigDQor6rmA7KCV7Z2sDQor6rmA7JiB642VDQor6rmA67SJ7J20DQor6rmA6rK97IudDQor6rmA7KCV7Z2sDQor6rmA7KSA7JqpDQor6rmA6rK97KO8DQor6rmA64Ko6rCRDQor6rmA7KCV7Z2sDQor6rmA7J207Zi4DQor6rmA64+Z7ZiEDQor6rmA64+E6rOkDQor6rmA7KCV7Z2sDQor6rmA7KKF7JuQDQor6rmA7Zic6rWtDQor6rmA7J287Zi4DQor6rmA7KCV7Z2sDQor6rmA7J6s7JqpDQor6rmA7Jyk7IiYDQor6rmA7Jm47YyUDQor6rmA7KCV7Z2sDQor6rmA7Iic7IiZDQor6rmA7YOc64+ZDQor6rmA7KCQ7ISdDQor6rmA7KCc6riwDQor6rmA6rK97JilDQor6rmA7Iq57ZuIDQor6rmA66eQ7Z2sDQor6rmA7KCc7JuQDQor6rmA7Jm47LaYDQor6rmA7ISx7LKgDQor6rmA7J6s7IiYDQor6rmA7KCc7LKcDQor6rmA7IiY642VDQor6rmA67O17ZmUDQor6rmA7LaY7ZiEDQor6rmA7KCc7ZiEDQor6rmA7KCQ7IudDQor6rmA7YOc7KGwDQor6rmA7ZmU7Zi4DQor6rmA7KCc7Z2gDQor6rmA64yA7KSADQor6rmA6riw7ISdDQor6rmA7Z2s6ri4DQor6rmA7KCc7Z2gDQor6rmA7IS47LacDQor6rmA7Jqp64+MDQor6rmA7IS47Zi4DQor6rmA7KGw7JuFDQor6rmA7ZiV7J28DQor6rmA6reA7YOcDQor6rmA66y06rK9DQor6rmA7KKF6rCRDQor6rmA7KKF7IStDQor6rmA7IOB6rWsDQor6rmA66qF7Z2sDQor6rmA7KKF6rKwDQor6rmA7JiB6rK9DQor6rmA6riw7IiYDQor6rmA7Lap66qpDQor6rmA7KKF6rK9DQor6rmA7IOB64yADQor6rmA7YOc7ISdDQor6rmA7J2M66CkDQor6rmA7KKF6rSRDQor6rmA67OR7JqpDQor6rmA7KCV7Jq0DQor6rmA7L6M67SJDQor6rmA7KKF6rWsDQor6rmA7Jil7J28DQor6rmA7KeE7JqwDQor6rmA64yA7LGEDQor6rmA7KKF6rWsDQor6rmA7J6s7IudDQor6rmA7Iic64yADQor6rmA7ISd7J20DQor6rmA7KKF6rWsDQor6rmA6rOE7ZWZDQor6rmA7Iic6raMDQor6rmA7IOB7IiZDQor6rmA7KKF6rWsDQor6rmA7KKF66GdDQor6rmA65GQ7KGwDQor6rmA6rK96recDQor6rmA7KKF6rWsDQor6rmA6rWs7IudDQor6rmA7JiB7ZiEDQor6rmA66yY7J6sDQor6rmA7KKF6rWsDQor6rmA7JuU7KGwDQor6rmA7IaM7YyUDQor6rmA7JiB7ZmYDQor6rmA7KKF6rWsDQor6rmA7JyE642VDQor6rmA7LaY7J6QDQor6rmA7Jil6recDQor6rmA7KKF6recDQor6rmA7ISd7JuFDQor6rmA7JuQ7ZalDQor6rmA7JiB66eMDQor6rmA7KKF6recDQor6rmA7KeE7JuQDQor6rmA7KCQ6re8DQor6rmA7Jyg7IiYDQor6rmA7KKF6recDQor6rmA7JuQ7JykDQor6rmA7KCQ6ri4DQor6rmA7KCV7JuQDQor6rmA7KKF6recDQor6rmA7YOc7LacDQor6rmA7IiY7ZmYDQor6rmA6rK97Zi4DQor6rmA7KKF6regDQor6rmA7YOc7J6sDQor6rmA7ZmY7ISgDQor6rmA7KCV7Zi4DQor6rmA7KKF6re8DQor6rmA6riw7JqwDQor6rmA7J2E7LKcDQor6rmA7J6s7Je0DQor6rmA7KKF6riwDQor6rmA7JiB67O1DQor6rmA65Od7IiYDQor6rmA64yA642VDQor6rmA7KKF6ri4DQor6rmA7KKF6re8DQor6rmA7ZiE7IOBDQor6rmA7ZiE7ZiEDQor6rmA7KKF6ri4DQor6rmA7ZW07Je0DQor6rmA64+Z64yADQor6rmA7ISd6rWsDQor6rmA7KKF6ri4DQor6rmA64KZ7ISxDQor6rmA6riI6raMDQor6rmA6rCR7J24DQor6rmA7KKF6ri4DQor6rmA7IKs7IudDQor6rmA7KSR7ZmUDQor6rmA66qF7IudDQor6rmA7KKF64usDQor6rmA7J6s7ZGcDQor6rmA7Jik66a9DQor6rmA7LCo7IudDQor6rmA7KKF64usDQor6rmA7KeE7ZuIDQor6rmA6rCV7LmYDQor6rmA642V7ZiEDQor6rmA7KKF64yADQor6rmA7ZWc7IudDQor6rmA7J247Zi4DQor6rmA67OR7ZuIDQor6rmA7KKF64yADQor6rmA7Jew64yADQor6rmA7IOB64+MDQor6rmA6rK97ISgDQor6rmA7KKF642VDQor6rmA7YyQ7Zi4DQor6rmA7IS47JqwDQor6rmA7Jqp7ISdDQor6rmA7KKF656YDQor6rmA7ISd64+ZDQor6rmA7IOB6riIDQor6rmA7LCo7ZiEDQor6rmA7KKF66a9DQor6rmA7J6s7IOBDQor6rmA7KKF7ZmUDQor6rmA66eM7J6EDQor6rmA7KKF66eMDQor6rmA7J286riwDQor6rmA6rCV7ZmNDQor6rmA6rK97KeEDQor6rmA7KKF66eMDQor6rmA7ZiE7YOcDQor6rmA67O17IudDQor6rmA7KCV64+EDQor6rmA7KKF66eMDQor6rmA7J6l64KoDQor6rmA7KKF7J20DQor6rmA7Jqw7ZmNDQor6rmA7KKF67CwDQor6rmA7IaM6re8DQor6rmA7J2Y7JqpDQor6rmA6riw7IiYDQor6rmA7KKF67CwDQor6rmA7IOB7KCVDQor6rmA7Lmg7IudDQor6rmA7Jqp7IiZDQor6rmA7KKF67CxDQor6rmA7Zi47IiYDQor6rmA7J6s7Zi4DQor6rmA7J2E6rOEDQor6rmA7KKF67KUDQor6rmA67aA7JqpDQor6rmA67O16529DQor6rmA6riw7IiYDQor6rmA7KKF67KUDQor6rmA7ZiV7KO8DQor6rmA7Jyk7J20DQor6rmA6rec7LKgDQor6rmA7KKF67O1DQor6rmA7KeE7IiZDQor6rmA7KKF7JqwDQor6rmA7LKc66eQDQor6rmA7KKF67O1DQor6rmA7JiB7ISdDQor6rmA7IOB7JqwDQor6rmA7JuU6rWsDQor6rmA7KKF67O1DQor6rmA7KKF7Z2gDQor6rmA6rK97KO8DQor6rmA7J247Zi4DQor6rmA7KKF67O1DQor6rmA7ISx7Zy0DQor6rmA7IOB7ZWcDQor6rmA7Z2s7JewDQor6rmA7KKF67O1DQor6rmA7KKF6rK9DQor6rmA65GQ6riwDQor6rmA7KKF7ZiBDQor6rmA7KKF67SJDQor6rmA7KSA7KO8DQor6rmA6riw6raMDQor6rmA7IOB7JiBDQor6rmA7KKF7ISdDQor6rmA7YOc7IS4DQor6rmA7KCV7IiZDQor6rmA64+E7Zi4DQor6rmA7KKF7ISdDQor6rmA66eM7Z2sDQor6rmA7Jew6raMDQor6rmA7Z2s7YOcDQor6rmA7KKF7ISdDQor6rmA7J6s642VDQor6rmA67SJ67aEDQor6rmA66y47ISgDQor6rmA7KKF7ISgDQor6rmA67OR7ISdDQor6rmA6riw6rWsDQor6rmA7ZeM7IStDQor6rmA7KKF7ISgDQor6rmA642V6re8DQor6rmA7YOc64yADQor6rmA66+47J28DQor6rmA7KKF7ISxDQor6rmA7Z2s7JuQDQor6rmA7YOc7IiZDQor6rmA7J247ISdDQor6rmA7KKF7ISxDQor6rmA66y07J6sDQor6rmA7IOB6rCVDQor6rmA7JuQ7JilDQor6rmA7KKF7IiYDQor6rmA7Z2s7KeEDQor6rmA65Od7IiYDQor6rmA66qF6regDQor6rmA7KKF7IiYDQor6rmA6riI67SJDQor6rmA66y07IicDQor6rmA67OR66eMDQor6rmA7KKF7IiYDQor6rmA7LKg7ZmNDQor6rmA7Jil7KeEDQor6rmA66qF7YOcDQor6rmA7KKF7IiYDQor6rmA7ZWc6recDQor6rmA7KeE6recDQor6rmA7LCo7LGEDQor6rmA7KKF7IicDQor6rmA7IiY7IutDQor6rmA7J6s7Z2sDQor6rmA7Jyk7LKcDQor6rmA7KKF7IudDQor6rmA66m0642VDQor6rmA7ZiE7IaMDQor6rmA7ZmY7IiYDQor6rmA7KKF7IudDQor6rmA7JiB7JuFDQor6rmA7LaY7J6EDQor6rmA7ISx7ZmYDQor6rmA7KKF7IutDQor6rmA7IOB7LKgDQor6rmA67SJ67O1DQor6rmA7J6s7J20DQor6rmA7KKF7Ja1DQor6rmA66y47Jq0DQor6rmA66eM7ZiEDQor6rmA7LCo7Zi4DQor6rmA7KKF7JewDQor6rmA7ISx7YOcDQor6rmA7Z2s642VDQor6rmA7JiB7JuQDQor6rmA7KKF7JewDQor6rmA7Lmg7IudDQor6rmA7ZWZ7J2ADQor6rmA642V7LCsDQor6rmA7KKF7Je0DQor6rmA7ZmN64yADQor6rmA66y46rSRDQor6rmA64+E7LKcDQor6rmA7KKF7Je9DQor6rmA7J2464KoDQor6rmA7ZWE7JiBDQor6rmA7IaM7KGwDQor6rmA7KKF7JiBDQor6rmA66y47IudDQor6rmA66eQ7IiYDQor6rmA66y06re8DQor6rmA7KKF7JikDQor6rmA66+86re8DQor6rmA7Jyk7YyQDQor6rmA7JiB7KSADQor6rmA7KKF7JqxDQor6rmA7ZmU7J28DQor6rmA7J6s7ISgDQor6rmA7Jik7JiBDQor6rmA7KKF7Jq0DQor6rmA7Iic7ZGcDQor6rmA6rG06raMDQor6rmA7KKF7LaYDQor6rmA7KKF7JuQDQor6rmA6rec7IicDQor6rmA7KSR7JqxDQor6rmA7IOB7JiBDQor6rmA7KKF7JuQDQor6rmA7ZmN7JWUDQor6rmA7Jqw6ri4DQor6rmA6re866eMDQor6rmA7KKF7JuQDQor6rmA7ZmU7IOdDQor6rmA7IS47YOBDQor6rmA7ZWE6recDQor6rmA7KKF7JykDQor6rmA64yA67ORDQor6rmA7LKg7KCVDQor6rmA6riw7JqpDQor6rmA7KKF7JyoDQor6rmA6rSR7JiBDQor6rmA7IOB64yADQor6rmA6rCR6rWsDQor6rmA7KKF7J20DQor6rmA7ISx6riwDQor6rmA7IiZ7IicDQor6rmA7IOB7J20DQor6rmA7KKF7J20DQor6rmA7IOB7ZqoDQor6rmA67O46ri4DQor6rmA7ZiE6raMDQor6rmA7KKF7J28DQor6rmA7YOc7ISdDQor6rmA65Od7ZqoDQor6rmA65Od7Z2sDQor6rmA7KKF7KGwDQor6rmA7Zi47J6FDQor6rmA7ZiE642VDQor6rmA7LmY66eMDQor6rmA7KKF7KeEDQor6rmA7Iic7KO8DQor6rmA7YOc7KCVDQor6rmA7ZWE7Zi4DQor6rmA7KKF7KeEDQor6rmA67KU66y4DQor6rmA67OR7JuQDQor6rmA7Jqp7Zi4DQor6rmA7KKF7LKgDQor6rmA7KCV7ZmUDQor6rmA7KCV7Zi4DQor6rmA7KKF7LKgDQor6rmA7KKF7LKgDQor6rmA642V7ZmUDQor6rmA7Iic7J24DQor6rmA7LC9642VDQor6rmA7KKF7LKgDQor6rmA7KSA7IiZDQor6rmA64yA65OdDQor6rmA7KCQ7KGwDQor6rmA7KKF7YOcDQor6rmA7JiB7IicDQor6rmA7KKF7KGwDQor6rmA66eM7ISdDQor6rmA7KKF7YOcDQor6rmA7Iic7KeEDQor6rmA6riw6rCRDQor6rmA7J287IicDQor6rmA7KKF7YOcDQor6rmA7JiB7JqwDQor6rmA7Zi46rK9DQor6rmA7J2Y7JilDQor6rmA7KKF7YOcDQor6rmA7KO86rWsDQor6rmA7Iq57IudDQor6rmA7Lmg6re8DQor6rmA7KKF7YOcDQor6rmA7LGE7LKcDQor6rmA7IiY7IiYDQor6rmA7IOB7KCcDQor6rmA7KKF7YOcDQor6rmA7LmY64KoDQor6rmA64+Z6rWsDQor6rmA64+Z7JqpDQor6rmA7KKF7YOcDQor6rmA7YOc67SJDQor6rmA7LKc7IOBDQor6rmA7Iah6rK9DQor6rmA7KKF7ZWYDQor6rmA7JiB67aEDQor6rmA6rec7JWFDQor6rmA7IK87ZiEDQor6rmA7KKF7ZWZDQor6rmA67OR7JiBDQor6rmA7Jqp7JuQDQor6rmA7KCV7JiBDQor6rmA7KKF7ZWZDQor6rmA7Jyg7J20DQor6rmA7Iud7YOcDQor6rmA7KCV7JewDQor6rmA7KKF7ZWcDQor6rmA7Jqp7J6QDQor6rmA7KeE7J6EDQor6rmA7ZmY7JiBDQor6rmA7KKF7ZW0DQor6rmA7ZiE7LCsDQor6rmA6rec7IudDQor6rmA7JiB7JaRDQor6rmA7KKF7ZiEDQor6rmA7ZyY7JmEDQor6rmA7J247KCVDQor6rmA6ri464KoDQor6rmA7KKF7ZiEDQor6rmA67SJ7ZuIDQor6rmA7ZeM6riwDQor6rmA6rCR66C5DQor6rmA7KKF7Zi4DQor6rmA7J6s7IudDQor6rmA7J6s6rK9DQor6rmA7ZmN7ZmYDQor6rmA7KKF7Zi4DQor6rmA7IOB7ISdDQor6rmA64+E6recDQor6rmA7JuQ6rKwDQor6rmA7KKF7Zi4DQor6rmA7J2Y7JuQDQor6rmA7LCo7IiYDQor6rmA6rWs7Zi4DQor6rmA7KKF7ZmUDQor6rmA7ZiE7KSRDQor6rmA6riw66a9DQor6rmA7J287IK8DQor6rmA7KKF7ZmUDQor6rmA67SJ7KSRDQor6rmA66eM7JuFDQor6rmA7IiY7ZWZDQor6rmA7KKF7ZmYDQor6rmA7IS47Je9DQor6rmA7J6s642VDQor6rmA7ZW07KGwDQor6rmA7KKF7ZmYDQor6rmA66eQ7ZWEDQor6rmA64+Z7IStDQor6rmA7Jqp7ISxDQor6rmA7KKF7ZuIDQor6rmA7J207JiBDQor6rmA7J287IicDQor6rmA7IOB7IiYDQor6rmA7KKF7Z2gDQor6rmA7Jqp6re8DQor6rmA7JuU7IudDQor6rmA7LC96ri4DQor6rmA7KKF7Z2sDQor6rmA7Jqw7LacDQor6rmA66qo7IiZDQor6rmA7Jqp7ISgDQor6rmA7KO86rCRDQor6rmA7KSR7JqpDQor6rmA7ZiE7ZmNDQor6rmA7YOc6rK4DQor6rmA7KO8642VDQor6rmA7J6s67KUDQor6rmA7KeE642VDQor6rmA7J2Y64W4DQor6rmA7KO867O1DQor6rmA64yA7J6QDQor6rmA7KKF656ADQor6rmA67SJ7Z2sDQor6rmA7KO867SJDQor6rmA7Iq57ZmYDQor6rmA7J217IiYDQor6rmA7IiY7KeEDQor6rmA7KO87IOBDQor6rmA6reA7LKgDQor6rmA7JuQ7JaRDQor6rmA6rOE7J20DQor6rmA7KO87IOBDQor6rmA7KeE7ZiEDQor6rmA7IK87IiYDQor6rmA7JiB6rK9DQor6rmA7KO87ISdDQor6rmA64+Z7JqwDQor6rmA7KKF7ISgDQor6rmA7JuU7ISgDQor6rmA7KO87ISdDQor6rmA7ISd6re8DQor6rmA7J287ZmYDQor6rmA66+47J6QDQor6rmA7KO87ISxDQor6rmA7ISg7JqpDQor6rmA6re87JewDQor6rmA6rWs7JqpDQor6rmA7KO87IicDQor6rmA64+Z7YOcDQor6rmA7J6s6raMDQor6rmA7JuU6recDQor6rmA7KO87J24DQor6rmA7Iuc67SJDQor6rmA7Zi47ZGcDQor6rmA7KSR7J6sDQor6rmA7KO87J28DQor6rmA7KKF7JewDQor6rmA7Jqp7IiYDQor6rmA7LC97ISdDQor6rmA7KO87YOcDQor6rmA7Jq07Z2sDQor6rmA7KKF7YOcDQor6rmA7J287LKgDQor6rmA7KO87YOdDQor6rmA7ISd67aEDQor6rmA7J247KGwDQor6rmA7JuQ7KeEDQor6rmA7KO87ZWYDQor6rmA7ISd7JiBDQor6rmA7YOc7IudDQor6rmAIOyasA0KK+q5gOyjvO2VmQ0KK+q5gOyDge2YuA0KK+q5gOyYge2biA0KK+q5gOyduOuqqQ0KK+q5gOyjvO2YhA0KK+q5gO2YuO2drA0KK+q5gOuzke2YuA0KK+q5gOyCvOuemA0KK+q5gOyjvO2YuA0KK+q5gOuNleyhsA0KK+q5gOyaqeyImA0KK+q5gO2VmOywrA0KK+q5gOyjvO2ZmA0KK+q5gOygleuPhA0KK+q5gOyjvOyDnQ0KK+q5gOyImeyImA0KK+q5gOyjvO2doA0KK+q5gOyniOydtA0KK+q5gOuqhe2cmA0KK+q5gOydvOuMgA0KK+q5gOyjveyEoA0KK+q5gOycoOydvA0KK+q5gOunkO2VmQ0KK+q5gO2Vmeq1rA0KK+q5gOykgOqzpA0KK+q5gO2cmOyDgQ0KK+q5gCDrjZUNCivquYDsmqnrj5kNCivquYDspIDqt5wNCivquYDssL3snbQNCivquYDsmIHroZwNCivquYDsp4Drpr0NCivquYDspIDquLANCivquYDsgrzroKgNCivquYDsi5zsi50NCivquYDsm5Dsm5ANCivquYDspIDrs7QNCivquYDssq3tmIQNCivquYDsmqnsnKgNCivquYDrgqjsiJgNCivquYDspIDsi50NCivquYDtjJDshJ0NCivquYDsnqzslYQNCivquYDsoJXsnbwNCivquYDspIDsi50NCivquYDtm4jspIANCivquYDsg4Hsp4QNCivquYDsooXsoJUNCivquYDspIDsl7ANCivquYDsiJzshJ0NCivquYDsoJXsoJUNCivquYDtmLjqsbQNCivquYDspIDsmIENCivquYDtjJDtmLgNCivquYDtlbTtmLgNCivquYDqsr3ssqANCivquYDspIDsmrANCivquYDsg4Hsi50NCivquYDsnKTsl7QNCivquYDtlbTtg5wNCivquYDspIDsm4UNCivquYDshJ3qt5wNCivquYDqsJHrjZUNCivquYDsooXsmIENCivquYDspIDsnpANCivquYDsooXsiJgNCivquYDsg4Hrj4QNCivquYDrqoXqs6QNCivquYDspIDssqANCivquYDtmITsiJwNCivquYDtnJjqsIANCivquYDsnKTsm4UNCivquYDspIDtg50NCivquYDrrLTtmLgNCivquYDtlZntmLgNCivquYDtg5zsnpANCivquYDspIDtg50NCivquYDtlZztmY0NCivquYDsnYDqtowNCivquYDsg4HssqANCivquYDspIDtmLgNCivquYDsmIHsnbwNCivquYDspJHrk7ENCivquYDtmITshKANCivquYDspIDtmLgNCivquYDsmqnrgqgNCivquYDsooXsiJwNCivquYDsmqnsnbQNCivquYDspIDtmLgNCivquYDsnKTsl7ANCivquYDsg4Hrp4wNCivquYDtlZjsg4ENCivquYDspIDtmZgNCivquYDshLHsm5ANCivquYDtlZztmIQNCivquYDrs5Hqsr0NCivquYDspJHqsbQNCivquYDsoJDquLANCivquYDshLHtmZgNCivquYDso7ztnawNCivquYDspJHqsbQNCivquYDqsr3shK0NCivquYDsnqzsiJgNCivquYDrj5nsobANCivquYDspJHqtJENCivquYDquIjtnLQNCivquYDshLHtmIQNCivquYDsl7Drk50NCivquYDspJHqt7wNCivquYDrj5nsl7QNCivquYDsm5DsiJgNCivquYDqtJHtmIQNCivquYDspJHquLANCivquYDtlZztmZQNCivquYDsiJzsiJgNCivquYDsg4HtmIENCivquYDspJHroKgNCivquYDsmIHsiJwNCivquYDsmbjtmLgNCivquYDsnKDsg4ENCivquYDspJHroKgNCivquYDsnZHsiJwNCivquYDspIDtmZQNCivquYDsg4Hsi50NCivquYDspJHshJ0NCivquYDrj5nsmrQNCivquYDsg4HsnKQNCivquYDqta3tmZgNCivquYDspJHsiJgNCivquYDsg4Hrk50NCivquYDsmrTslrUNCivquYDsiJjqtJENCivquYDspJHsiJgNCivquYDqt5zsi6QNCivquYDquIjrjZUNCivquYDtmY3shLENCivquYDspJHsm5ANCivquYDsg4HtmLgNCivquYDshLHsmrANCivquYDssqDtmLgNCivquYDspJHsnbwNCivquYDtmqjrsLANCivquYDsmbjroKwNCivquYDsiJntg5wNCivquYDspJHsnpANCivquYDrj5ntmLgNCivquYDrjIDtmLgNCivquYDsnbjtg50NCivquYDspJHtmIQNCivquYDsmIHquLANCivquYDqs4TtmLgNCivquYDqsr3siJgNCivquYDspJHtmJwNCivquYDsmrDsl7QNCivquYDrqoXtmLgNCivquYDquLDqs6QNCivquYDspJHtnawNCivquYDsoJDshJ0NCivquYDtnazsmqkNCivquYDrtoTssL0NCivquYDspp3siJkNCivquYDssKjrk50NCivquYDsnYTtmIQNCivquYDqsJHslaANCivquYDspp3siJwNCivquYDsiJjssYQNCivquYDrs5HrhbgNCivquYDrj4Ttg5wNCivquYDspp3spIANCivquYDsm5DsiJgNCivquYDsmIHtmZgNCivquYDslaDsoJwNCivquYDsp4Dqt7wNCivquYDsmqnsmKQNCivquYDsspzshJ0NCivquYDtlZzsooUNCivquYDsp4DrtIkNCivquYDsiJzsm5ANCivquYDsg4HtmLgNCivquYDtmqjqt7wNCivquYDsp4DrtIkNCivquYDshKDsnpANCivquYDtg5ztmLgNCivquYDsmIHsnbwNCivquYDsp4DsirkNCivquYDsirnsi50NCivquYDsirnsmqkNCivquYDtmITrrLUNCivquYDsp4DslaANCivquYDqt4DsmqkNCivquYDtlZzsmIENCivquYDtlZnsm5ANCivquYDsp4Dsl7ANCivquYDshLHtnawNCivquYDsooXqsJENCivquYDshLHqta0NCivquYDsp4DtmIQNCivquYDsnqzsiJgNCivquYDsooXtkZwNCivquYDrs5HsiKANCivquYDsp4DtmJwNCivquYDsnbjrj5kNCivquYDstpjslZQNCivquYDtmY3tmIQNCivquYDsp4DtnawNCivquYDtg5zsm5ANCivquYDsgrztmZQNCivquYDrqoXtnawNCivquYDsp4Tqsr0NCivquYDrj5nsobANCivquYDrs7Xsi6wNCivquYDsmqntmY0NCivquYDsp4Tqs6QNCivquYDsl7DtmIQNCivquYDsmqnsiJgNCivquYDsmqnqtowNCivquYDsp4Tqs6QNCivquYAg7JilDQor6rmA7Iic7IudDQor6rmA6riw7IiYDQor6rmA7KeE6rOkDQor6rmA7ISg7J6QDQor6rmA7ISg7Zi4DQor6rmA66eM7IicDQor6rmA7KeE6rWsDQor6rmA7YOc7J28DQor6rmA7LKg7JuQDQor6rmA7KCV7J28DQor6rmA7KeE6raMDQor6rmA66y47J6sDQor6rmA7J2A6re8DQor6rmA7Jew7ZiVDQor6rmA7KeE6raMDQor6rmA6rec6raMDQor6rmA7J6s7ZmUDQor6rmA7KCV7Zi4DQor6rmA7KeE6recDQor6rmA7LaY7IudDQor6rmA7JiB7IicDQor6rmA7Zic6rSADQor6rmA7KeE6recDQor6rmA7J6s7J6lDQor6rmA7ZiV7ZiEDQor6rmA67OR7Zi4DQor6rmA7KeE6recDQor6rmA7IOB7KGwDQor6rmA7KeE7IiZDQor6rmA66+47ZiEDQor6rmA7KeE6riwDQor6rmA7KCQ7J6QDQor6rmA64Ko7J20DQor6rmA65Ox7LacDQor6rmA7KeE64yADQor6rmA65GQ7IOdDQor6rmA7ZKN7JW8DQor6rmA67OR7KCQDQor6rmA7KeE64yADQor6rmA7ZmN7JqxDQor6rmA6re87LKgDQor6rmA65GQ7IicDQor6rmA7KeE64+ZDQor6rmA6rK97IiZDQor6rmA7JuQ7KeEDQor6rmA64+Z7Zi4DQor6rmA7KeE64+ZDQor6rmA67OR7IiYDQor6rmA7J2A7KGwDQor6rmA7ZmY7YOcDQor6rmA7KeE64+ZDQor6rmA7Jqw65OdDQor6rmA7IOB7IicDQor6rmA7YOc64+ZDQor6rmA7KeE66GdDQor6rmA7LKg66a8DQor6rmA7ISx7KSADQor6rmA7LKc6rCRDQor6rmA7KeE67CwDQor6rmA7Iic66qpDQor6rmA7YOc7LKgDQor6rmA7ISx7JuFDQor6rmA7KeE7ISdDQor6rmA6riw7ZeMDQor6rmA7KCV7YOcDQor6rmA7J6s64+MDQor6rmA7KeE7ISdDQor6rmA7YOd7ZalDQor6rmA7KKF7J28DQor6rmA64yA7J28DQor6rmA7KeE7IStDQor6rmA7L6M7J28DQor6rmA7J6s64+EDQor6rmA7KCV6rSADQor6rmA7KeE7IStDQor6rmA7ZuE7ZmYDQor6rmA7J2Y7ZWYDQor6rmA7IOB7J6QDQor6rmA7KeE7IiYDQor6rmA7JiB66eMDQor6rmA7IOB7ISgDQor6rmA7JuQ7LCoDQor6rmA7KeE7IiYDQor6rmA7Jqp6rK9DQor6rmA7JiB7KCcDQor6rmA7J286rWsDQor6rmA7KeE7IiZDQor6rmA7JiB7ZiEDQor6rmA7KKF7Zi4DQor6rmA7Jew7KO8DQor6rmA7KeE7IiZDQor6rmA66eQ7ZmYDQor6rmA64+Z7LaYDQor6rmA6raB7ZWcDQor6rmA7KeE7IigDQor6rmA7YOc7YOcDQor6rmA7JuQ7IOBDQor6rmA6rK967CwDQor6rmA7KeE7IudDQor6rmA7Jqw7ZeMDQor6rmA7ISx7ISdDQor6rmA6riw7JqwDQor6rmA7KeE7IudDQor6rmA7J6s7Je0DQor6rmA7J6s7IiYDQor6rmA7IS47KKFDQor6rmA7KeE7Je0DQor6rmA7IOB7IudDQor6rmA6riw65OdDQor6rmA7J2864+ZDQor6rmA7KeE7JiBDQor6rmA6rec7IiYDQor6rmA7KCV6recDQor6rmA7JiB7JWUDQor6rmA7KeE7JiBDQor6rmA7J2064+ZDQor6rmA7YOc7IudDQor6rmA6riw7ZalDQor6rmA7KeE7JikDQor6rmA7ISx7IudDQor6rmA7KCE6riwDQor6rmA7JuQ64KoDQor6rmA7KeE7JqpDQor6rmA66+46re8DQor6rmA7Jyk7JuFDQor6rmA7Iq57LKgDQor6rmA7KeE7JqwDQor6rmA7JiB7KKFDQor6rmA7Lmg7ZiEDQor6rmA7JiB7IiYDQor6rmA7KeE7JuFDQor6rmA7YOc7KCVDQor6rmA7ZiV67O1DQor6rmA67OR64+EDQor6rmA7KeE7J28DQor6rmA7KCV7LaYDQor6rmA7J247ZuIDQor6rmA7LGE6rG0DQor6rmA7KeE7KKFDQor6rmA7J2466eMDQor6rmA7KKF7IiYDQor6rmA7Jew7LKcDQor6rmA7KeE7KO8DQor6rmA7KeE7Z2sDQor6rmA64yA7J20DQor6rmA7LC97LmgDQor6rmA7KeE7LKcDQor6rmA7Jqp7Z2sDQor6rmA7LCs7JuFDQor6rmA7IiY7KO8DQor6rmA7KeE7YOcDQor6rmA64yA7ZuIDQor6rmA7KCV7IiYDQor6rmA7KCQ7Je0DQor6rmA7KeE7YOcDQor6rmA67OR7JuQDQor6rmA7KCV7IicDQor6rmA7JiB7LaYDQor6rmA7KeE7YOcDQor6rmA6re87Je0DQor6rmA7J6s7ISgDQor6rmA6riw6rCVDQor6rmA7KeE7YOcDQor6rmA7J286rKsDQor6rmA7J286ri4DQor6rmA7KCV7JiBDQor6rmA7KeE7YOdDQor6rmA6riw7YOBDQor6rmA7YOc7IicDQor6rmA7JuQ7KeEDQor6rmA7KeE7ZWZDQor6rmA7KO87J6QDQor6rmA7J247YOcDQor6rmA7J6s66WcDQor6rmA7KeE7ZWZDQor6rmA66eM7KCVDQor6rmA7ZW07ZiVDQor6rmA67OR66y0DQor6rmA7KeE7ZiVDQor6rmA7Ja47KeEDQor6rmA7IiY7JuQDQor6rmA7J6s7J28DQor6rmA7KeE7Zi4DQor6rmA7J6s64+IDQor6rmA7KCV7Zi4DQor6rmA7KKF6riwDQor6rmA7KeE7Zi4DQor6rmA7ZmN7LKgDQor6rmA7J6s7IudDQor6rmA7Iic64KoDQor6rmA7KeE7Zi4DQor6rmA7J6s7ZmYDQor6rmA7J216riwDQor6rmA7KCV7Zi4DQor6rmA7KeE7Zi4DQor6rmA7Jqp7JqpDQor6rmA6rWs7KSADQor6rmA7J286recDQor6rmA7KeE7ZmNDQor6rmA7KCV7LCsDQor6rmA7IKs7ISdDQor6rmA7ISx7YOcDQor6rmA7KeE7ZmYDQor6rmA7JiB7JikDQor6rmA7IiY7IiZDQor6rmA7YOc7ISdDQor6rmA7KeE7ZqoDQor6rmAIOq2jA0KK+q5gOydvO2ZmA0KK+q5gOyEseq4uA0KK+q5gOynhO2drA0KK+q5gOyGjOyInA0KK+q5gOuNleyekA0KK+q5gOybkOyEoA0KK+q5gOynhO2drA0KK+q5gOq4sO2VmQ0KK+q5gOyerOydvA0KK+q5gOyiheq1rA0KK+q5gOynhO2drA0KK+q5gOuMgOyatA0KK+q5gO2DnOq2jA0KK+q5gOu0ie2ZmA0KK+q5gOynhO2drA0KK+q5gOyImOybkA0KK+q5gOyInOu0iQ0KK+q5gOyXsOyIoA0KK+q5gOyniO2MkA0KK+q5gOyImOuPjA0KK+q5gOyiheq2jA0KK+q5gOq0keyImA0KK+q5gOywqOuFuA0KK+q5gOyEneyehA0KK+q5gOuzkeyaqQ0KK+q5gOyiheuCqA0KK+q5gOywqOu0iQ0KK+q5gOyerOqxtA0KK+q5gOqwkeyXsA0KK+q5gOyerOynhA0KK+q5gOywqOyEnQ0KK+q5gOyYge2biA0KK+q5gOyInOyLnQ0KK+q5gOygleuRkA0KK+q5gOywqOyEnQ0KK+q5gOuzke2YuA0KK+q5gOyLnOyLnQ0KK+q5gOq4sOyLrA0KK+q5gOywqOyVlA0KK+q5gOycpOyIoA0KK+q5gOyYpOygnA0KK+q5gOyyreudvQ0KK+q5gOywqOyVlA0KK+q5gOydvO2VnA0KK+q5gOyDge2ZmA0KK+q5gOydgO2biA0KK+q5gOywqOyXsA0KK+q5gOyaqeyImA0KK+q5gOyDgeqyvQ0KK+q5gOyDgeycqA0KK+q5gOywqOyYgQ0KK+q5gOuPhO2VtA0KK+q5gOq3nOyImA0KK+q5gO2MkO2drA0KK+q5gOywqOyynA0KK+q5gOq1reyhsA0KK+q5gOyImeq3nA0KK+q5gOyCvOq0gA0KK+q5gOywqOy2nA0KK+q5gOygleuPjA0KK+q5gOyerOuPmQ0KK+q5gO2VnOyImQ0KK+q5gOywqO2ZjQ0KK+q5gOyZhOyglQ0KK+q5gOq3gOusuA0KK+q5gO2XjOyInA0KK+q5gOywqO2drA0KK+q5gOy2mO2YuA0KK+q5gOuCmeyyoA0KK+q5gOyImOyWuA0KK+q5gOywrOqyvQ0KK+q5gOuFuOyErQ0KK+q5gOyXsOq4sA0KK+q5gO2DnOykgA0KK+q5gOywrOyImA0KK+q5gOyepeyasQ0KK+q5gOq4sOyerA0KK+q5gOusmO2ZmA0KK+q5gOywveq1rA0KK+q5gOuqhe2YuA0KK+q5gOygleydtA0KK+q5gOq3vO2DnA0KK+q5gOywveq3vA0KK+q5gOu2hOyEnQ0KK+q5gOy2mOyImQ0KK+q5gOygleyyoA0KK+q5gOywveq3vA0KK+q5gOyEseyImA0KK+q5gOqyve2DnA0KK+q5gOq4sOq3uQ0KK+q5gOywveq4sA0KK+q5gO2DgOyLnQ0KK+q5gOu0ieuFlQ0KK+q5gOuvvOyCvA0KK+q5gOywveq4sA0KK+q5gOyImOyEnQ0KK+q5gOyepeuTnQ0KK+q5gOycpOq3nA0KK+q5gOywveusuA0KK+q5gOyDgeuwsA0KK+q5gOyEoOyImA0KK+q5gOuzke2drA0KK+q5gOywveuwsA0KK+q5gOygleyLnQ0KK+q5gOywveyImA0KK+q5gOuPmeyInA0KK+q5gOywveyEoA0KK+q5gOyIme2YhA0KK+q5gOqyveyyoA0KK+q5gOyYgeyYpA0KK+q5gOywveyEsQ0KK+q5gOyDge2DnA0KK+q5gOyWteq4sA0KK+q5gOq4sO2ctA0KK+q5gOywveyImA0KK+q5gOyImO2ZmA0KK+q5gOuzkeuCqA0KK+q5gOyImOyyoA0KK+q5gOywveyImA0KK+q5gOyaqe2YuA0KK+q5gO2DnO2drA0KK+q5gOq3nO2aqA0KK+q5gOywveyImA0KK+q5gOyDgeykgA0KK+q5gOyKueyXsA0KK+q5gO2YuOyVlA0KK+q5gOywveyImQ0KK+q5gOuzkeyImQ0KK+q5gOyDgeyInA0KK+q5gOyLoOq3vA0KK+q5gOywveyLnQ0KK+q5gOqyveyLnQ0KK+q5gOqxtOunjA0KK+q5gOyerOyImA0KK+q5gOywveyLnQ0KK+q5gOyEseykgA0KK+q5gOyepeyekA0KK+q5gOyynOyXsA0KK+q5gOywveyLnQ0KK+q5gOyZuOyVhA0KK+q5gOyEneyhsA0KK+q5gOyEneyImA0KK+q5gOywveyVoA0KK+q5gOyiheuPmQ0KK+q5gOuCqOq2gQ0KK+q5gOybkOuRkA0KK+q5gOywveyWtQ0KK+q5gOyaqeyInA0KK+q5gOyKueuwsA0KK+q5gOygleqzhA0KK+q5gOywveyWtQ0KK+q5gOuzkeu0iQ0KK+q5gOyasO2drA0KK+q5gOuPme2YhA0KK+q5gOywveyXtA0KK+q5gOygle2YuA0KK+q5gOyerOq3vA0KK+q5gOyDge2ZmA0KK+q5gOywveyXtA0KK+q5gOyYgeyasQ0KK+q5gO2DnOunjA0KK+q5gOygleyEoA0KK+q5gOywveyXtA0KK+q5gOuqheuNlQ0KK+q5gOq4sOy2nA0KK+q5gOygle2VnA0KK+q5gOywveyZhA0KK+q5gOyerOyerA0KK+q5gOydhOyImA0KK+q5gOyDgeu2hA0KK+q5gOywveyatA0KK+q5gOyiheydhA0KK+q5gOyYgeq3nA0KK+q5gOq3nO2YuA0KK+q5gOywveydvA0KK+q5gOu2gOyInA0KK+q5gOyDge2ZlA0KK+q5gO2DnOy2mA0KK+q5gOywveynhA0KK+q5gOuwse2YhA0KK+q5gOyynOq3nA0KK+q5gOyYgeuwsA0KK+q5gOywve2DnA0KK+q5gOygleyImQ0KK+q5gOykgO2drA0KK+q5gOyCsOq3nA0KK+q5gOywve2VmQ0KK+q5gOusuOusuA0KK+q5gO2MkOuTnQ0KK+q5gO2DnOyyoA0KK+q5gOywve2VtA0KK+q5gO2aqO2YuA0KK+q5gO2cmO2YuA0KK+q5gOyYpeq3nA0KK+q5gOywve2YhA0KK+q5gO2drO2DnQ0KK+q5gOygleyaqQ0KK+q5gO2VtOq1kA0KK+q5gOywve2YhA0KK+q5gOyehOyYpQ0KK+q5gOuqhe2YuA0KK+q5gOyyoOycpA0KK+q5gOywve2YuA0KK+q5gOqyveykgA0KK+q5gOyEseyyoA0KK+q5gO2YhOyImA0KK+q5gOywve2YuA0KK+q5gO2ZmOyImA0KK+q5gOuzkeyEnQ0KK+q5gOq4sOq3nA0KK+q5gOywve2YuA0KK+q5gO2DneynhA0KK+q5gOygleq3vA0KK+q5gOygleyImA0KK+q5gOywve2YuA0KK+q5gOygle2VmQ0KK+q5gO2Yle2YgQ0KK+q5gOykkey2mA0KK+q5gOywve2YuA0KK+q5gO2DnO2YhA0KK+q5gOq4iOyInA0KK+q5gOu0ieyInA0KK+q5gOywve2YuA0KK+q5gOyDgeyyoA0KK+q5gOyEseuNlQ0KK+q5gOq4sOyduA0KK+q5gOywve2ZmA0KK+q5gOywveq4uA0KK+q5gOuCqOq4sA0KK+q5gOyerO2DnA0KK+q5gOyxhOyImA0KK+q5gOuNleusuA0KK+q5gO2VnOuztQ0KK+q5gOyLpO2ctA0KK+q5gOyxhOyLnQ0KK+q5gOybkOq4sA0KK+q5gOyDge2DnA0KK+q5gOyEne2ZmA0KK+q5gOyynOuTnQ0KK+q5gOykgOyImQ0KK+q5gOyerOyXsA0KK+q5gOybkO2drA0KK+q5gOyynOyEnQ0KK+q5gOyYgeyWuA0KK+q5gOyerOyImA0KK+q5gO2Wieq1rA0KK+q5gOyynOyImA0KK+q5gOu0ie2drA0KK+q5gOuRkOydtA0KK+q5gOyYgeu2hA0KK+q5gOyynO2VmQ0KK+q5gO2VtOq3oA0KK+q5gOyYge2YuA0KK+q5gOyCvOu0iQ0KK+q5gOyynO2YuA0KK+q5gOq3gO2VhA0KK+q5gOq4iOuztQ0KK+q5gOygleydvA0KK+q5gOyyoOq4sA0KK+q5gOyInO2VtA0KK+q5gOuPmeuegA0KK+q5gOyihe2biA0KK+q5gOyyoOuRkA0KK+q5gOuPmeyImA0KK+q5gOyDge2VnA0KK+q5gOyYgeuTnQ0KK+q5gOyyoOuekQ0KK+q5gOy2mOyZhA0KK+q5gOyEoOuNlQ0KK+q5gOyduOuztQ0KK+q5gOyyoOyImA0KK+q5gOyduOuPmQ0KK+q5gOyEseu5iA0KK+q5gOyerOq1kA0KK+q5gOyyoOyImA0KK+q5gO2MkO2YhA0KK+q5gOq2jOyImA0KK+q5gOyYgeyglQ0KK+q5gOyyoOyImA0KK+q5gOygleykkQ0KK+q5gOyImOq3nA0KK+q5gOygleyXtA0KK+q5gOyyoOyImA0KK+q5gO2cmO2YhA0KK+q5gOyEseyEnQ0KK+q5gOqyveyhsA0KK+q5gOyyoOyImA0KK+q5gOyDgeyyoA0KK+q5gOqyveyImQ0KK+q5gO2VtOy2mA0KK+q5gOyyoOyImA0KK+q5gOyepeq4iA0KK+q5gOyYgeuPmQ0KK+q5gO2DnOydvA0KK+q5gOyyoOyglQ0KK+q5gOyCrO2DnA0KK+q5gOygleykgA0KK+q5gOyngO2biA0KK+q5gOyyreyEnQ0KK+q5gOyblO2drA0KK+q5gOyDgeyImA0KK+q5gOuzkeq4uA0KK+q5gOy2lOufiQ0KK+q5gOq4sOuqqQ0KK+q5gOyerOyaqQ0KK+q5gOywve2YlQ0KK+q5gOy2lOyekA0KK+q5gOyiheuhnQ0KK+q5gO2drOusuA0KK+q5gOynhOyLnQ0KK+q5gOy2lO2ZmA0KK+q5gOyDge2YhA0KK+q5gOq4sOybhQ0KK+q5gOqyve2WiQ0KK+q5gOy2mOq3oA0KK+q5gOq4sOyXsA0KK+q5gOyCrOujoQ0KK+q5gOyjvOu2hA0KK+q5gOy2mOq4uA0KK+q5gOu2hOyYpQ0KK+q5gO2DnOyInA0KK+q5gOuzkeyImA0KK+q5gOy2mOuFgA0KK+q5gOyerOuniQ0KK+q5gO2MkOyErQ0KK+q5gOygkOyYgQ0KK+q5gOy2mOuwsA0KK+q5gO2MkOq3vA0KK+q5gOydteyEnQ0KK+q5gOyEuOyImA0KK+q5gOy2mOuztQ0KK+q5gOygleyYpA0KK+q5gOyInO2YhA0KK+q5gO2DnOyLnQ0KK+q5gOy2mOyDnQ0KK+q5gOykke2YuA0KK+q5gOqyveyyoA0KK+q5gOyerOynhA0KK+q5gOy2mOyImA0KK+q5gOydvOuloA0KK+q5gOuCqOyyoA0KK+q5gO2VtOyInA0KK+q5gOy2mOyLnQ0KK+q5gOyIme2YuA0KK+q5gO2YnOy2nA0KK+q5gOyYgeyEnQ0KK+q5gOy2mOyLnQ0KK+q5gOyInOyErQ0KK+q5gOyEseuTnQ0KK+q5gOyduO2DnQ0KK+q5gOy2mOyLpA0KK+q5gO2YuO2YuA0KK+q5gOyerOyasA0KK+q5gOyjvOyYpQ0KK+q5gOy2mOyekA0KK+q5gOuPme2VnA0KK+q5gOu0ieyhsA0KK+q5gOyDgeyduA0KK+q5gOy2mOyekA0KK+q5gOyYgeuPmQ0KK+q5gOq3nOyYpA0KK+q5gOqzoe2ZmA0KK+q5gOy2mOyekA0KK+q5gOq3nOuqhQ0KK+q5gO2ZjeqwkQ0KK+q5gOyDgeyWkQ0KK+q5gOy2mO2VmA0KK+q5gOqyveq1kA0KK+q5gOyepeykgA0KK+q5gOu0ieykgA0KK+q5gOy2mO2VmA0KK+q5gOuPmeyLnQ0KK+q5gO2DnOyEoA0KK+q5gOyInOyInA0KK+q5gOy2mO2drA0KK+q5gOyiheyyoA0KK+q5gOyaqeyXsA0KK+q5gOq4iO2biA0KK+q5gOy2qeq2jA0KK+q5gOy5mOqxtA0KK+q5gOyYgeyekA0KK+q5gOyWkeq4sA0KK+q5gOy2qeuCqA0KK+q5gOyYgeydvA0KK+q5gOyImOuvuA0KK+q5gOyjvOq2jA0KK+q5gOy2qeu2gA0KK+q5gOyerO2YuA0KK+q5gOyaqeyImA0KK+q5gOq0keq2jA0KK+q5gOy2qeybkA0KK+q5gOyKueyInA0KK+q5gOyYpOyDgQ0KK+q5gOyEneyImA0KK+q5gOy2qeybkA0KK+q5gOyDgeq1kA0KK+q5gOuRkOyXhQ0KK+q5gOycpOu0iQ0KK+q5gOy2qe2XjA0KK+q5gO2ZjeyYpQ0KK+q5gO2YuOyLnQ0KK+q5gOynhO2DnA0KK+q5gOy2qe2ZmA0KK+q5gOyYgeq4uA0KK+q5gOy5oOyImA0KK+q5gO2MkOyaqQ0KK+q5gOy2qe2biA0KK+q5gOy2qeyyoA0KK+q5gOyEoO2VmQ0KK+q5gOyYgeq3vA0KK+q5gOy2qe2drA0KK+q5gOuNle2DnQ0KK+q5gOyepeq4sA0KK+q5gOuPmeqwkQ0KK+q5gOy5mOq2jA0KK+q5gOycpOyYgQ0KK+q5gCDtg5wNCivquYDspJHstpwNCivquYDsuZjqtowNCivquYDri6TsmqkNCivquYDrqoXsnbwNCivquYDqsr3snKQNCivquYDsuZjqtowNCivquYDsooXquLANCivquYDsmIHsiJwNCivquYDsnYTsmIENCivquYDsuZjshKANCivquYDsoJDsl7ANCivquYDsnqXsg4ENCivquYDsmKXqtowNCivquYDsuZjsnbwNCivquYDsg4HtlZgNCivquYDsmIHqt7wNCivquYDrj5nrqqgNCivquYDsuZjtm4gNCivquYDquIjrsLANCivquYDssKjtg5wNCivquYDsgqzsiJkNCivquYDsuZjtnJgNCivquYDso7zsnpANCivquYDssL3si50NCivquYDsooXqt6ANCivquYDsuaDrj5kNCivquYDsp4Drp4wNCivquYDrp4zshJ0NCivquYDsoJXqtowNCivquYDsuaDrj5kNCivquYDsoJXquLANCivquYDrj5ntmakNCivquYDrj4TtnLQNCivquYDsuaDshKANCivquYDssL3siJgNCivquYDrqoXtmZgNCivquYDsnYTstpgNCivquYDsuaDsmqkNCivquYDsmqnsiJgNCivquYDsp4Trj5kNCivquYDso7zsl7QNCivquYDsuaDsmqkNCivquYDqtJHsmrANCivquYDso7zstpwNCivquYDshJ3smZUNCivquYDsuaDtmY0NCivquYDquIjtnawNCivquYDshJ3smqkNCivquYDtmITsmIENCivquYDsuaDtnawNCivquYDqtazsmrANCivquYDsnYzrj5kNCivquYDsmKXsg4ENCivquYDsvozshJ0NCivquYDsnbjsi50NCivquYDtj4nsobANCivquYDrqoXshK0NCivquYDtg4Dsm5ANCivquYDsnbztlZgNCivquYDshJ3tmLgNCivquYDsmIHquLANCivquYDtg5zqs6QNCivquYDrhbjtg5wNCivquYDsoJDsiJwNCivquYDqsr3tmZgNCivquYDtg5zqtZANCivquYDsnKTrsLANCivquYDshLjrjZUNCivquYDshJ3tmIQNCivquYDtg5zqtawNCivquYDsg4HssL0NCivquYDsmqnsiJkNCivquYDsoJXtmIQNCivquYDtg5zqtawNCivquYDsnKTrjZUNCivquYDrgpzsm5ANCivquYDtnazstpwNCivquYDtg5zqtowNCivquYDqsr3siJgNCivquYDtmY3rnpgNCivquYDtg5zqsr0NCivquYDtg5zqt5wNCivquYDsiJjrj5kNCivquYDsg4HtmIQNCivquYDrtInsi50NCivquYDtg5zqt7wNCivquYDsmIHtm4gNCivquYDrjZXqsbgNCivquYDqsr3sg4ENCivquYDtg5zqt7wNCivquYDtjJDsobANCivquYDshJ3tmIQNCivquYDshLHqtawNCivquYDtg5zquLgNCivquYDqt5zssqANCivquYDslrjtnawNCivquYDqt4Tqsr0NCivquYDtg5zquLgNCivquYDssL3tmIQNCivquYDsnqzquLANCivquYDsp4TquLANCivquYDtg5zrj4QNCivquYDsmIHsiJgNCivquYDtmLjshJ0NCivquYDsi6DsnpANCivquYDtg5zrj4wNCivquYDqt7zshLENCivquYDsmqnri6wNCivquYDsmIHspIANCivquYDtg5zrj5kNCivquYDtlZzrtoQNCivquYDshLHqtawNCivquYDshLjsiJgNCivquYDtg5zrj5kNCivquYDrgqjquLANCivquYDshLHrj4QNCivquYDsmIHshKANCivquYDtg5zrp4wNCivquYDrtoTqtawNCivquYDsmIHtlZkNCivquYDrqoXsg4ENCivquYDtg5zrqoUNCivquYDsp4TroZwNCivquYDrtInsiJwNCivquYDsooXrj5kNCivquYDtg5zrrLgNCivquYDsnqzshLENCivquYDtg5zssqANCivquYDsspzsiJgNCivquYDtg5zrs7UNCivquYDqtJHsmrENCivquYDsnqztkZwNCivquYDshJ3shKANCivquYDtg5zrtIkNCivquYDrj5nqt7wNCivquYDrqoXsp4QNCivquYDqsr3tlZkNCivquYDtg5zshJ0NCivquYDtl4zsmrQNCivquYDsiJzrspQNCivquYDqsr3tg5wNCivquYDtg5zshKANCivquYDshLHrgqgNCivquYDsnbjrs7UNCivquYDsiJjqtawNCivquYDtg5zshK0NCivquYDrp4ztmLgNCivquYDtlYTtmLgNCivquYDtlZntlbQNCivquYDtg5zshK0NCivquYDsnYTrqoUNCivquYDsmrDtmIQNCivquYDsmqnsnqwNCivquYDtg5zshLENCivquYDrs5Hqt7wNCivquYDshLHsmIENCivquYDqt5zsl7QNCivquYDtg5zsiJgNCivquYDsp4TspIANCivquYDsoJDtm4gNCivquYDsoJXtlZgNCivquYDtg5zsiJgNCivquYDsiJjsm5ANCivquYDsnYTsiJgNCivquYDsl7TshJ0NCivquYDtg5zsiJgNCivquYDsm5Dsi50NCivquYDrtInstpwNCivquYDshKDsi50NCivquYDtg5zsiJgNCivquYDsmIHsiJgNCivquYDsmrTslZQNCivquYDtmZTrsLANCivquYDtg5zsiJgNCivquYDtlZntmLgNCivquYDsnqztmZQNCivquYDsmbjtmJwNCivquYDtg5zsiJgNCivquYDsp4Tqt7wNCivquYDsnYDsiJgNCivquYDqta3qsJwNCivquYDtg5zsiJkNCivquYDsi6DsoJUNCivquYDsmIHsmrANCivquYDsooXqtawNCivquYDtg5zsiJkNCivquYDsnYTtg50NCivquYDspIDtnawNCivquYDsp4Tsl7ANCivquYDtg5zsiJwNCivquYDrs5Hsl7ANCivquYDsmYTshKANCivquYDsmbjsmrANCivquYDtg5zsiJwNCivquYDquLDtmZgNCivquYDtjJDsmYQNCivquYDsmIHqs6QNCivquYDtg5zsiKANCivquYDtg5zshKANCivquYDshLHsiJgNCivquYDrhbjsmqkNCivquYDtg5zsi50NCivquYDshJ3shJ0NCivquYDrs7XsiJgNCivquYDqtJHtmLgNCivquYDtg5zsi50NCivquYDsmqnrrLgNCivquYDsmIHspIANCivquYDsiJjslZQNCivquYDtg5zsl7ANCivquYDrtInrj4QNCivquYDsmqnsnKQNCivquYDspJHsl7QNCivquYDtg5zsl7QNCivquYDsmIHspIANCivquYDsiJzrqqgNCivquYDssL3snbwNCivquYDtg5zsl70NCivquYDqta3sgrwNCivquYDsp4Tqt5wNCivquYDsg4HsmKUNCivquYDtg5zsmIENCivquYDqt5zqt5wNCivquYDsnqzssqANCivquYDsnbjssqANCivquYDtg5zsmIENCivquYDshqHtmIQNCivquYDtlZzsp4QNCivquYDsnZHqt7wNCivquYDtg5zsmIENCivquYDshLHshLENCivquYDsg4HspIANCivquYDqsJHtnLQNCivquYDtg5zsmKQNCivquYDrrLTqtowNCivquYDtjJDsnoQNCivquYDsmIHquLgNCivquYDtg5zsmqkNCivquYDsp4TtmZQNCivquYDsm5DsgrANCivquYDrrLTsiJgNCivquYDtg5zsmqkNCivquYDrs5HtmLgNCivquYDsoJXtmZQNCivquYDsmrDtnawNCivquYDtg5zsmqkNCivquYDsmqnsiJgNCivquYDsgqzquLANCivquYDquLDsnoQNCivquYDtg5zsmqkNCivquYDsoJXsmKQNCivquYDrs7XsobANCivquYDrqoXsmIENCivquYDtg5zsmrENCivquYDsmrHsiJkNCivquYDsiJjshKANCivquYDsnKTsi50NCivquYDtg5zsmrQNCivquYDrj5nsiJgNCivquYDqt5zsnpANCivquYDsnqzshKANCivquYDtg5zsm5ANCivquYDrjZXquLANCivquYDshJ3stpwNCivquYDsmIHtmY0NCivquYDtg5zsm5ANCivquYDsp4DshJ0NCivquYDsmqnsi50NCivquYDsmIHquLgNCivquYDtg5zsm5ANCivquYDtnaztl4wNCivquYDqsr3sl7QNCivquYDsnKTsi50NCivquYDtg5zsm5ANCivquYDrs5HqtowNCivquYDsmqntnawNCivquYDsp4TtmIQNCivquYDtg5zsnKANCivquYDshLHsiJwNCivquYDrp4ztlZkNCivquYDsooXsi50NCivquYDtg5zsnKENCivquYDri6zsl7ANCivquYDrs5Hsi50NCivquYDshLHsoJwNCivquYDtg5zsnKgNCivquYDsmIHsiJgNCivquYDsg4HrjZUNCivquYDtmLjsmIENCivquYDtg5zsnYANCivquYDsoJDquLANCivquYDsg4Hqt7kNCivquYDshJ3rtIkNCivquYDtg5zsnZgNCivquYDsnbjrqoUNCivquYDsmIHqta0NCivquYDsp4TsmrENCivquYDtg5zsnbQNCivquYDsmIHrp5ANCivquYDrkZDsiJkNCivquYDquLDshK0NCivquYDtg5zsnbwNCivquYDsnKTsg50NCivquYDsnqzrjIANCivquYDsg4Hsi50NCivquYDtg5zsnbwNCivquYDsnbjtlZkNCivquYDtlZzquLgNCivquYDsoJXtl4wNCivquYDtg5zsnbwNCivquYDsg4HspIANCivquYDqtJHqtawNCivquYDsnbjtmZQNCivquYDtg5zsnbwNCivquYDqsJHshJ0NCivquYDtl4ztmZgNCivquYDso7zsiJwNCivquYDtg5zsnbwNCivquYDsoJDsmIENCivquYDsg4HshK0NCivquYDtg5zsobANCivquYDtg5zsoJUNCivquYDsoJXrtIkNCivquYDtg5ztmIQNCivquYDqt4DsiJgNCivquYDtg5zsobANCivquYDqsJHshJ0NCivquYDso7zsiJgNCivquYDquLDtg5wNCivquYDtg5zsobANCivquYDsooXspIANCivquYDsmIHsobANCivquYDsnbjtlbQNCivquYDtg5zspJENCivquYDrj5nsnbwNCivquYDsm5DtnawNCivquYDshLjsiJgNCivquYDtg5zspJENCivquYDtg5ztlZwNCivquYDsm5DsiJkNCivquYDrp4zsnpANCivquYDtg5zsp4ANCivquYDrtInroZ0NCivquYDsnoTqs6QNCivquYDsnqzsiJwNCivquYDtg5zsp4QNCivquYDrj4TsmrANCivquYDsoJXsi50NCivquYDtg5ztl4wNCivquYDtg5zssqANCivquYDsnbTqtIANCivquYDrtInsiJgNCivquYDrs5HsiJgNCivquYDtg5zssqANCivquYDrp5DtmZgNCivquYDrqoXsiJgNCivquYDsnqztmLgNCivquYDtg5zssqANCivquYDsooXsmrANCivquYDssKjtg5wNCivquYDsooXsi50NCivquYDtg5zssqANCivquYDrjIDspIANCivquYDshKDtmLgNCivquYDtg5ztg5wNCivquYDtg5zstpwNCivquYDsnKTrqqkNCivquYDshJ3tmLgNCivquYDqs4TspIANCivquYDtg5zstpwNCivquYDsoJXsi6QNCivquYDtg5zsi50NCivquYDshozspIANCivquYDtg5ztl4wNCivquYDtmITsl7QNCivquYDsmqnshqENCivquYDsg4HtmZgNCivquYDtg5ztmIQNCivquYDsooXsnbQNCivquYDtlZzsl7QNCivquYDsmIHsmrANCivquYDtg5ztmJUNCivquYDsnKTshLENCivquYDqt5zsmrANCivquYDsiJjtmIQNCivquYDtg5ztmJUNCivquYDtlbTsnqwNCivquYDsiJzrp4wNCivquYDtg5zshJ0NCivquYDtg5ztmLgNCivquYDsm5Dsm5ANCivquYDshLHssqANCivquYDsm4XsmIENCivquYDtg5ztmLgNCivquYDshqHqt5wNCivquYDsoJXsmrANCivquYDsg4HssqANCivquYDtg5ztmLgNCivquYDshKDtmIQNCivquYDrr7ztmZgNCivquYDsm5DspIANCivquYDtg5ztmLgNCivquYDsg4HrtoQNCivquYDsiJjrjZUNCivquYDsmIHsnoQNCivquYDtg5ztmLgNCivquYDsnYDrrLgNCivquYDsmIHsmrANCivquYDtmY3rspQNCivquYDtg5ztmLgNCivquYDsoJXsiJwNCivquYDsm5Tso7wNCivquYDsmKXsl4UNCivquYDtg5ztmLgNCivquYDsooXstpwNCivquYDtmLjrp4wNCivquYDsnYDqt7wNCivquYDtg5ztmLgNCivquYDsmqnsoJUNCivquYDrs5Hsm4UNCivquYDsmIHrj4QNCivquYDtg5ztmLgNCivquYDrjIDtmZgNCivquYDsooXslZQNCivquYDsg4Hsg50NCivquYDtg5ztmLgNCivquYDrj5nsmKUNCivquYDsmqnsobANCivquYDsnoTshKANCivquYDtg5ztmZQNCivquYDrs7XspIANCivquYDrgpzqt7wNCivquYDsooXslZQNCivquYDtg5ztmZgNCivquYDsoJXtmZQNCivquYDsiJjsiJkNCivquYDsnZjssqANCivquYDtg5ztmZgNCivquYDsp4DsiJgNCivquYDquLDrtIkNCivquYDsiJztmLgNCivquYDtg5ztnawNCivquYDsooXqsr0NCivquYDsmIHso7wNCivquYDrs5HquLANCivquYDtg5ztnawNCivquYDsiJzsiJgNCivquYDrj5nshK0NCivquYDsm5DssqANCivquYDtg5ztnawNCivquYDquIjsnbQNCivquYDsg4HsiJwNCivquYDsgrzrj4QNCivquYDtjJDqsr0NCivquYDqs4Tsi50NCivquYDsgrzrsLANCivquYDsmKTrk50NCivquYDtjJDqt5wNCivquYDshqHrj4gNCivquYDsiJzrpqwNCivquYDqt5zquLANCivquYDtjJDquLgNCivquYDtnaXqt7wNCivquYDshJ3rkZANCivquYDrs5HsmrENCivquYDtjJDrjZUNCivquYDrrLjsmqkNCivquYDsp4TshJ0NCivquYDsiJzqt7wNCivquYDtjJDrj4wNCivquYDsiJztmIQNCivquYDtnazqt5wNCivquYDtg5zshLENCivquYDtjJDrtIkNCivquYDsooXtmIQNCivquYDsnbjsnpANCivquYDrgqjsi6QNCivquYDtjJDshJ0NCivquYDsmKXtmLgNCivquYDtmqjsnpANCivquYDsnbjshLENCivquYDtjJDshJ0NCivquYDsmIHtlqUNCivquYDqsr3tnawNCivquYDrp5Dsl7QNCivquYDtjJDsiJgNCivquYDsnqzshJ0NCivquYDshLHshKANCivquYDtmITqt7wNCivquYDtjJDsiJgNCivquYDsiJjqt5wNCivquYDsooXtlZwNCivquYDqsr3siJgNCivquYDtjJDsiKANCivquYDshozsl7QNCivquYDsoJDsmrANCivquYDsooXrnoANCivquYDtjJDsl7ANCivquYDsoJXtmZgNCivquYDrqoXrj4wNCivquYDsjI3qt7wNCivquYDtjJDsl7QNCivquYDso7zsiJgNCivquYDsiJzsi50NCivquYDsp4TssqANCivquYDtjJDsmqkNCivquYDsnqzsm5ANCivquYDrtInquIgNCivquYDshKDsobANCivquYDtjJDsmrQNCivquYDsnqXsm5ANCivquYDqt7zqsJENCivquYDsnKTso7wNCivquYDtjJDsobANCivquYDsnbzrhYQNCivquYDtg5zsnYANCivquYDtjJDspJENCivquYDtjJDsp4QNCivquYDsiJzslZQNCivquYDqtJHqt5wNCivquYDrr7zsmqkNCivquYDtjJDtg5wNCivquYDssqDsg50NCivquYDsmIHtm4gNCivquYDqsJHsp5ENCivquYDtjJDtmIQNCivquYDsoJXqtZANCivquYDsooXsmqkNCivquYDrs5HsoJUNCivquYDtjJDtmLgNCivquYDrj5ntmLgNCivquYDquIjrnoANCivquYDsjI3so7wNCivquYDtjJTqs6QNCivquYDssL3rj5kNCivquYDsnqzsobANCivquYDtg5zrp4wNCivquYDtjJTrtIkNCivquYDtg5zsmrANCivquYDqta3qt5wNCivquYDshLjrjIANCivquYDtkZzsm5ANCivquYDsg4HrjIANCivquYDsg4HrsLANCivquYDssL3rprwNCivquYDtlYTqtawNCivquYDsnKTsnbwNCivquYDsmIHsiJwNCivquYDsnbXsi50NCivquYDtlYTsl7ANCivquYDqsr3tmZgNCivquYDsg4HshJ0NCivquYDshLjrp4wNCivquYDtlZjshJ0NCivquYDstpjtmLgNCivquYDsnbjshK0NCivquYDrrLTtkZwNCivquYDtlZjsobANCivquYDsoJXrp4wNCivquYDsirnrs5ENCivquYDqt5zqta0NCivquYDtlZnqtowNCivquYDqtJHrp4wNCivquYDquLDsnbgNCivquYDqt5zqta0NCivquYDtlZnquLANCivquYDsmrTsmIENCivquYDstpjqt7wNCivquYDrgqjtmZgNCivquYDtlZnquLANCivquYDsmIHquLANCivquYDtmansl7ANCivquYDso7zrrLgNCivquYDtlZnrj4QNCivquYDquIjtg5wNCivquYDsmKXqtowNCivquYDsiJzsmqkNCivquYDtlZnrtIkNCivquYDsiJzrjZUNCivquYDsiJztmIQNCivquYDsnYTsp4QNCivquYDtlZnrtIkNCivquYDtmY3tmZgNCivquYDsl4Xsg50NCivquYDtlbTsnpANCivquYDtlZnrtIkNCivquYDrsKnstpgNCivquYDsmKTqtowNCivquYDquLDtmIQNCivquYDtlZnshJ0NCivquYDsnYDqs6QNCivquYDrqoXsiJwNCivquYDrp5DssqANCivquYDtlZnsiJgNCivquYDshJ3smIENCivquYDtmY3tmZgNCivquYDrs5HtnawNCivquYDtlZnsmrANCivquYDsooXqs6QNCivquYDtl4ztnawNCivquYDtmITsnqwNCivquYDtlZnsmrANCivquYDrp4zsobANCivquYDsp4Tsl7ANCivquYDshLHquLANCivquYDtlZnsnKQNCivquYDsnbjshJ0NCivquYDqsJHqt7wNCivquYDtnazshLENCivquYDtlZnsnbQNCivquYDsooXtnawNCivquYDsmqnsiJwNCivquYDrtInsi50NCivquYDtlZnsnbQNCivquYDquLDsiJgNCivquYDsnqzqtIANCivquYDqt5zsi50NCivquYDtlZnso7wNCivquYDsoJXsmqkNCivquYDssqDrr7gNCivquYDtjJDtnawNCivquYDtlZzqs6QNCivquYDtmITsm5ANCivquYDshJ3rspQNCivquYDsuaDtmLgNCivquYDtlZzqtowNCivquYDtg5zqsJENCivquYDsooXsmIENCivquYDtjJDtmIQNCivquYDtlZzqt5wNCivquYDqt7zsoJUNCivquYDrqoXsnbQNCivquYDtlbTrsLANCivquYDtlZzqt5wNCivquYDsoJXtmZgNCivquYDsmIHsmqkNCivquYDqtJHqsr0NCivquYDtlZzquLANCivquYDquIjqtIANCivquYDrr7jtg5wNCivquYDtmJXqsJANCivquYDtlZzrj4QNCivquYDqt4DspIANCivquYDtmLjsiJkNCivquYDsmIHsnbQNCivquYDtlZzrsLANCivquYDtlbTsiJwNCivquYDqtozsm4UNCivquYDrp7nsnpANCivquYDtlZzshJ0NCivquYDrjZXsiJgNCivquYDsmIHsiKANCivquYDsmIHtlZkNCivquYDtlZzsiJgNCivquYDsnbjqt5wNCivquYDsmIHtmLgNCivquYDsooXsiJwNCivquYDtlZzsiJgNCivquYDsoJXssqANCivquYDtg5ztl4wNCivquYDrkZDspIANCivquYDtlZzsiJgNCivquYDsg4HtmZQNCivquYDshLHtg4ENCivquYDsnqzqsbgNCivquYDtlZzsiJgNCivquYDsmIHsnbQNCivquYDrj4jsiJgNCivquYDsiJjshLENCivquYDtlZzsiJwNCivquYDrrLjtmLgNCivquYDsnKTsobANCivquYDqs4TrjZUNCivquYDtlZzsiJwNCivquYDshJ3sobANCivquYDsnqzsm5QNCivquYDsgrzqt7wNCivquYDtlZzsi50NCivquYDtmJXtnawNCivquYDtmY3slaANCivquYDrgpztlbQNCivquYDtlZzsmqkNCivquYDsnKTtlZkNCivquYDsp4DquLgNCivquYDsiJjshKANCivquYDtlZzsobANCivquYDsooXroLkNCivquYDsirnssqANCivquYDqsr3smqkNCivquYDtlZzsooUNCivquYDsoJXtnawNCivquYDrr7jtnawNCivquYDrs5HrsLANCivquYDtlZzspJENCivquYDspJHrnpgNCivquYDrgqjqs6QNCivquYDshLHsiJwNCivquYDtlZztg5wNCivquYDrgpntg50NCivquYDsmqntmZQNCivquYDsmKXqt5wNCivquYDtlZztmLgNCivquYDsm5DsnbwNCivquYDrp4zrnoANCivquYDsnKTrs7QNCivquYDtlZztmY0NCivquYDsooXslaANCivquYDsnKTsoJUNCivquYDrjIDrjZUNCivquYDtlZztmY0NCivquYDsmrTsi50NCivquYDrj5nslZQNCivquYDsnbjtmZQNCivquYDtlZztnawNCivquYDqsJHrs7QNCivquYDsooXtnawNCivquYDqt4DsnbwNCivquYDtlbTqs6QNCivquYDsnqzso7wNCivquYDsmIHri6wNCivquYDquLDstpwNCivquYDtlbTrj5kNCivquYDsnKHtlZwNCivquYDshLHtnawNCivquYDqsJHquLANCivquYDtlbTrprwNCivquYDsg4HsmYQNCivquYDso7zshJ0NCivquYDtg5ztmZgNCivquYDtlbTrtIkNCivquYDsnZjsobANCivquYDtlZzrqqgNCivquYDrjIDtmLgNCivquYDtlbTshJ0NCivquYDqtJHspIANCivquYDshJ3sobANCivquYDrj5ntmLgNCivquYDtlbTshJ0NCivquYDssL3tmIQNCivquYDrr7ztmZgNCivquYDssqDrs7UNCivquYDtlbTshKANCivquYDsiJnsiJwNCivquYDsmIHqtowNCivquYDslpHssL0NCivquYDtlbTsiJgNCivquYDsm5DqtawNCivquYDsnoTtmZgNCivquYDssL3qt7wNCivquYDtlbTsiJgNCivquYDrjIDshLENCivquYDsl7DquLgNCivquYDtmZTrjZUNCivquYDtlbTsiJgNCivquYDrrLTquLANCivquYDtlbTquLANCivquYDrjZXsobANCivquYDtlbTsl7ANCivquYDsiJzrjZUNCivquYDsnZjsiJwNCivquYDshLHsnpANCivquYDtlbTsl7QNCivquYDqt4DrtIkNCivquYDsnbjsiJwNCivquYDsgrzshK0NCivquYDtlbTsmqkNCivquYDsooXqs6ANCivquYDshLHssqANCivquYDsmrTtmLgNCivquYDtlbTsnYANCivquYDquLDqt5wNCivquYDtmLjsiJgNCivquYDsmIHtm4UNCivquYDtlbTsnYANCivquYDsi6Dqt7wNCivquYDsoITqt5wNCivquYDquLDspIANCivquYDtlbTsnYANCivquYDshLjtmZgNCivquYDsooXrj5kNCivquYDsmKTtmLgNCivquYDtlbTsoJUNCivquYDrs5Hrj5kNCivquYDssKjsiJgNCivquYDqt4Dqt6ANCivquYDtlbTsobANCivquYDsnKTshLENCivquYDstpjsl7ANCivquYDsoJXtmLgNCivquYDtlbTsp4QNCivquYDsiJjqt7wNCivquYDtg5ztnawNCivquYDsnqzqs6QNCivquYDtlonsiJwNCivquYDshLHtlZgNCivquYDsoJXsiJgNCivquYDqsr3tmY0NCivquYDtlqXsl7ANCivquYDquLDrqoUNCivquYDsoJXtmZgNCivquYDqt7zssqANCivquYDtlqXsnbQNCivquYDrr7jtmZgNCivquYDsoJXsiJkNCivquYDsmqnrnpgNCivquYDtl4zqsJENCivquYDtmantg50NCivquYDquLDtmZQNCivquYDsmqnrgqgNCivquYDtl4zsi50NCivquYDsoJDsi50NCivquYDtmJzqsbQNCivquYDsiJzssqANCivquYDtl4zsnqwNCivquYDrk53sl7ANCivquYDqt5zsnbUNCivquYDsp4TrjIANCivquYDtl4ztg5wNCivquYDsmIHssqANCivquYDtg5zrtIkNCivquYDsnKTsl7ANCivquYDtmITquLANCivquYDrqoXshKANCivquYDrs7XsnbgNCivquYDquLDsmrQNCivquYDtmITquLANCivquYDtg5zsm5ANCivquYDtmLjtmY0NCivquYDshKDsl7QNCivquYDtmITrk50NCivquYDqt7nqsr0NCivquYDtmZjsmqkNCivquYDsmKXsnbUNCivquYDtmITrnpgNCivquYDsnZjsmrANCivquYDrs5HsobANCivquYDri6ztlbQNCivquYDtmITrrLUNCivquYDsmIHspIANCivquYDqsr3smqkNCivquYDqtJHstpwNCivquYDtmITrs7UNCivquYDsnqzsmqkNCivquYDrjZXtmIQNCivquYDtnazqt7wNCivquYDtmITshJ0NCivquYDtmLjsiJgNCivquYDrj5nro6ENCivquYDtmZjssqANCivquYDtmITsiJgNCivquYDrrLjsmrQNCivquYDrj5nquLANCivquYDsnqzsiJwNCivquYDtmITsiJgNCivquYDrs5HsnqUNCivquYDsnqztnawNCivquYDtlZnssqANCivquYDtmITsiJkNCivquYDsiJzrj4QNCivquYDshLHsmIENCivquYDsmrDtmLgNCivquYDtmITsiJkNCivquYDshLHrp4wNCivquYDspIDtmLgNCivquYDsnoTqt5wNCivquYDtmITsiJkNCivquYDqsJHrtIkNCivquYDsoJDqt5wNCivquYDsooXsmrENCivquYDtmITsmKUNCivquYDsg4Hqs6QNCivquYDsnqzshKANCivquYDsiJzrrLgNCivquYDtmITsmrENCivquYDspJHrjZUNCivquYDrp7nsiKANCivquYDsoJXsi50NCivquYDtmITsm4UNCivquYDsmIHsnqwNCivquYDri6zsnbgNCivquYDrqbTrsLANCivquYDtmITsnqwNCivquYDqtJHqt5wNCivquYDsg4HsiJgNCivquYDqtJHsiJgNCivquYDtmITssL0NCivquYDrj5nrjIANCivquYDsoJXrjZUNCivquYDtlZjssqANCivquYDtmITssqANCivquYDri6zsnKgNCivquYDshKDslZQNCivquYDsnqztmZgNCivquYDtmITssqANCivquYDtmY3tmIQNCivquYDrjZXshJ0NCivquYDsmrTsmIENCivquYDtmITssqANCivquYDsmIHtmZgNCivquYDsnpDsnbQNCivquYDsoJXtlZkNCivquYDtmJXqtawNCivquYDsmIHrs7UNCivquYDsooXsiJkNCivquYDsnqzsobANCivquYDtmJXrj5kNCivquYDrtInsi50NCivquYDqsr3rpZwNCivquYDsnKTtm4gNCivquYDtmJXrnb0NCivquYDsooXsmrQNCivquYDsoJXqtowNCivquYDsoJXsiJgNCivquYDtmJXshK0NCivquYDsg4HsiJwNCivquYDrj5ntmLgNCivquYDquLDshJ0NCivquYDtmJXsiJgNCivquYDtl4zsnbQNCivquYDsmIHsmIENCivquYDrrLTrr7wNCivquYDtmJXssqANCivquYDshLHsmrANCivquYDsooXsp5ENCivquYDtlYTsiJkNCivquYDtmJXtg5wNCivquYDrjIDrjZUNCivquYDshLHtlZkNCivquYDspJHsm5ANCivquYDtmJXtlbQNCivquYDsmIHqs6QNCivquYDsnYDqt5wNCivquYDsoJXsspwNCivquYDtmJXtnawNCivquYDsooXqtawNCivquYDtlZnquLANCivquYDrqoXtmZgNCivquYDtmJzqsr0NCivquYDrs5HsnpANCivquYDrs5Hri6wNCivquYDsgqzsiJkNCivquYDtmJzqsr0NCivquYDquLDqtbANCivquYDshLHsuZgNCivquYDrj4TsnYANCivquYDtmJzqsr0NCivquYDqsJXtnawNCivquYDsiJjrsLENCivquYDqt5zssqANCivquYDtmJzqsr0NCivquYDri6zrrLgNCivquYDrs5HtmZgNCivquYDsmrDsoJUNCivquYDtmJzsiJkNCivquYDsnqzrj5kNCivquYDsmIHslaANCivquYDtlbTsmrANCivquYDtmJzsmIENCivquYDsnbzsm5ANCivquYDsmKXsiJwNCivquYDsmKTqtowNCivquYDtmJzsnpANCivquYDsoJDtm4gNCivquYDrr7zsi50NCivquYDsmbjqtowNCivquYDtmLjqt7wNCivquYDssKjshKANCivquYDsooXsi50NCivquYDsnKDrtIkNCivquYDtmLjquLANCivquYDshLHsmIENCivquYDrs5HtnawNCivquYDrs5HsiJwNCivquYDtmLjro6ENCivquYDtmITssqANCivquYDsnqzsnbwNCivquYDso7zssqANCivquYDtmLjrtIkNCivquYDshLjrnb0NCivquYDrj5ntl4wNCivquYDsoJXsnpANCivquYDtmLjshJ0NCivquYDsmrDsmKUNCivquYDtnazsnbQNCivquYDsmqnrp4wNCivquYDtmLjshLENCivquYDssqDsiJgNCivquYDrtoTrsLANCivquYDsmIHsiJgNCivquYDtmLjslbwNCivquYDqsr3siJwNCivquYDsoITsiJwNCivquYDsg4HshJ0NCivquYDtmLjsmqkNCivquYDsmqnruYgNCivquYDrs7XsnKQNCivquYDsnKDqt5wNCivquYDtmLjsmqkNCivquYDrs5Htg5wNCivquYDsiJjshKANCivquYDsl7DspIANCivquYDtmLjsnbgNCivquYDsg4Hqt5wNCivquYDsoJXsp4QNCivquYDquLDsiKANCivquYDtmLjsnbwNCivquYDrrLjsnoQNCivquYDsnqXssq0NCivquYDtg5zrjZUNCivquYDtmLjsobANCivquYDsmIHtg50NCivquYDshLHqt5wNCivquYDrgqjtkZwNCivquYDtmLjspIANCivquYDsiJjqtJENCivquYDsmIHsiJwNCivquYDsmKXssL0NCivquYDtmLjssqANCivquYDsoJXtlZkNCivquYDrgpnsiKANCivquYDsp4TspIANCivquYDtmY3qsbQNCivquYAg7LaYDQor6rmA7Zi46riwDQor6rmA67OR7IicDQor6rmA7ZmN6rK4DQor6rmA64yA7IStDQor6rmA6riw7LaYDQor6rmA7YOc6riIDQor6rmA7ZmN6rWsDQor6rmA6riw7Zi4DQor6rmA642V7KO8DQor6rmA6rK97Zi4DQor6rmA7ZmN6rWtDQor6rmA7KKF7Zi4DQor6rmA7Z2l6riwDQor6rmA6rWs6recDQor6rmA7ZmN6recDQor6rmA7KCV6regDQor6rmA6rK97ISdDQor6rmA7Iig7ISxDQor6rmA7ZmN6recDQor6rmA7KCQ7ZWZDQor6rmA7YOc7Je0DQor6rmA7J6s7IiZDQor6rmA7ZmN6recDQor6rmA7ZWZ7IiYDQor6rmA7IOB7JqwDQor6rmA7J2Y7JiBDQor6rmA7ZmN6regDQor6rmA7IiY66eMDQor6rmA7JiB65OdDQor6rmA7YOc7YOcDQor6rmA7ZmN6re8DQor6rmA7KCV7LKcDQor6rmAIOyasA0KK+q5gOyYgeyLnQ0KK+q5gO2Zjeq3vA0KK+q5gOqzhO2ZlA0KK+q5gOyYgeuNlQ0KK+q5gOyaqeyInA0KK+q5gO2ZjeuLrA0KK+q5gOybkOuwsA0KK+q5gOyYpeq3nA0KK+q5gOyekOybhQ0KK+q5gO2ZjeuNlQ0KK+q5gO2VhOyynA0KK+q5gOyGjOuztQ0KK+q5gOywveyXtA0KK+q5gO2ZjeuylA0KK+q5gOyblOyYgQ0KK+q5gO2ZjeyasA0KK+q5gOyiheyaqQ0KK+q5gO2ZjeyErQ0KK+q5gOyiheyImA0KK+q5gO2DnOyerA0KK+q5gOykgOyEoA0KK+q5gO2ZjeyImA0KK+q5gOu0ieydvA0KK+q5gOyDgeuemA0KK+q5gOygleyYpQ0KK+q5gO2ZjeyImA0KK+q5gOynhOuCqA0KK+q5gO2DnOyImQ0KK+q5gOyGjOudvQ0KK+q5gO2ZjeyLnQ0KK+q5gOq0keyLnQ0KK+q5gO2aqOyynA0KK+q5gOq3nOu0iQ0KK+q5gO2ZjeyLnQ0KK+q5gOyDgeyasA0KK+q5gOyepe2VmQ0KK+q5gOyYpeyEsQ0KK+q5gO2ZjeyXtA0KK+q5gOuzkeyErQ0KK+q5gOyaqeq0kQ0KK+q5gOyImO2YuA0KK+q5gO2ZjeyXtA0KK+q5gOydvOyEsQ0KK+q5gOydmOuqqQ0KK+q5gOq3vO2DnA0KK+q5gO2ZjeyXvQ0KK+q5gO2VmeyEoA0KK+q5gOqwke2DnA0KK+q5gOyyoOq2jA0KK+q5gO2ZjeydvA0KK+q5gOynhOyImQ0KK+q5gOygkOyhsA0KK+q5gOyyoOuztQ0KK+q5gO2ZjeyhsA0KK+q5gOycoOydtA0KK+q5gO2MkO2ZmA0KK+q5gOq4iO2ZmA0KK+q5gO2ZjeykgA0KK+q5gOuPhOyasA0KK+q5gOuMgO2YhA0KK+q5gOyaqe2drA0KK+q5gO2ZlOyDnQ0KK+q5gOyjvOu5iA0KK+q5gOuzkeyImA0KK+q5gOyEoOydgA0KK+q5gO2ZlOyLnQ0KK+q5gOyynOykkQ0KK+q5gOy2mO2ZmA0KK+q5gOywveyYgQ0KK+q5gO2ZlOyLnQ0KK+q5gOyiheyYpQ0KK+q5gOyerO2drA0KK+q5gOyduOyhsA0KK+q5gO2ZmOyEsQ0KK+q5gOyCvOyyoA0KK+q5gOydvOunkA0KK+q5gOyduOyXsA0KK+q5gO2ZmOydtA0KK+q5gOunjOyLnQ0KK+q5gOyDgeyyoA0KK+q5gOqyveuvuA0KK+q5gO2ZmOydtA0KK+q5gOyerOqyvQ0KK+q5gOyerOq4uA0KK+q5gOuzteyInA0KK+q5gO2ZmOyyoA0KK+q5gOusuOq4sA0KK+q5gO2YhOqwkQ0KK+q5gOuMgOq3nA0KK+q5gO2ZmO2YuA0KK+q5gO2DnOyYgQ0KK+q5gOq0keu0iQ0KK+q5gOymneqyvQ0KK+q5gO2Zqeq3nA0KK+q5gOqyve2VtA0KK+q5gOuMgOyIoA0KK+q5gOyYgeyInA0KK+q5gO2aqOusuA0KK+q5gOyInOq0kQ0KK+q5gOyEoOuNlQ0KK+q5gOyIoOyVlA0KK+q5gO2aqOyEoA0KK+q5gOyInO2YhA0KK+q5gOuqheuqqA0KK+q5gOuzkeq4sA0KK+q5gO2aqOyEoA0KK+q5gO2MkOuegA0KK+q5gOyYpOyDgQ0KK+q5gOywveyhsA0KK+q5gO2aqOyImQ0KK+q5gOykkeybkA0KK+q5gOyhsOyLnQ0KK+q5gOq4sOykkQ0KK+q5gO2aqOyInA0KK+q5gOqxtO2VmQ0KK+q5gO2DnO2aqA0KK+q5gOyZhO2aqA0KK+q5gO2aqOyLnQ0KK+q5gOunjOuPmQ0KK+q5gOywve2drA0KK+q5gOyEseq0gA0KK+q5gO2aqOybkA0KK+q5gOuRkOyImA0KK+q5gOyEseykkQ0KK+q5gOyXsOyhsA0KK+q5gO2aqOygkA0KK+q5gOyCvOyasA0KK+q5gOyjvO2DnA0KK+q5gOq3nOyaqQ0KK+q5gO2aqOynhA0KK+q5gOu2gO2ZmA0KK+q5gOyEseycqA0KK+q5gOyYge2YuA0KK+q5gO2biOq1kA0KK+q5gOyDgeyIoA0KK+q5gOyEneydtA0KK+q5gOyduOyLnQ0KK+q5gO2dpeyImQ0KK+q5gOustOuztQ0KK+q5gOygnOq4sA0KK+q5gOyiheq1rA0KK+q5gO2drA0KK+q5gOyEnQ0KK+q5gOyVlA0KK+q5gOyInA0KK+q5gO2drOq4uA0KK+q5gOykgO2ajA0KK+q5gOyWuOqzhA0KK+q5gOyYgeyImA0KK+q5gO2drOuNlQ0KK+q5gOyerOyInA0KK+q5gOyImO2ZlA0KK+q5gOygkOyduA0KK+q5gO2drOuPhA0KK+q5gOuzkeq3nA0KK+q5gO2drOyXtA0KK+q5gOyyoOyaqQ0KK+q5gO2drOuPmQ0KK+q5gOusuOyasQ0KK+q5gOyEoOu2hA0KK+q5gOuPmeydtA0KK+q5gO2drOyEoA0KK+q5gOyXsOycpA0KK+q5gO2Wie2YuA0KK+q5gOygleuPmQ0KK+q5gO2drOyEsQ0KK+q5gOyYgeqyvQ0KK+q5gOyYpeqwkQ0KK+q5gOuPmeq3nA0KK+q5gO2drOyImA0KK+q5gOyWkeyghA0KK+q5gO2YhO2drA0KK+q5gO2DnO2YhA0KK+q5gO2drOyImA0KK+q5gOydvOq3nA0KK+q5gOyImOyImA0KK+q5gOyerOq3vA0KK+q5gO2drOyImA0KK+q5gOuCnO2ZmA0KK+q5gOuNleuNlQ0KK+q5gOyEoOyImA0KK+q5gO2drOyImA0KK+q5gOqwke2YuA0KK+q5gOq3gOuNlQ0KK+q5gOq3nOyduA0KK+q5gO2drOyImQ0KK+q5gOydtOqyvQ0KK+q5gOq3nO2XjA0KK+q5gO2XjOybkA0KK+q5gO2drOyInA0KK+q5gOyImeuPmQ0KK+q5gOq0keyXsA0KK+q5gO2aqOyImA0KK+q5gO2drOyInA0KK+q5gOyiheyInA0KK+q5gOyEoOuNlQ0KK+q5gOuzkeyyoA0KK+q5gO2drOyglQ0KK+q5gOyaqeqwgQ0KK+q5gOunjO2YuA0KK+q5gOydmO2YuA0KK+q5gO2drOykgA0KK+q5gO2ZlO2drA0KK+q5gO2Vme2VnA0KK+q5gOyEseyXtA0KK+q5gO2drOykgA0KK+q5gOygleyjvA0KK+q5gOusuOyInA0KK+q5gOynhO2biA0KK+q5gO2drOykgA0KK+q5gOyaqey2nA0KK+q5gOyatO2YuA0KK+q5gOyngO2biA0KK+q5gO2drOynhA0KK+q5gOygleyImQ0KK+q5gOyKue2DgQ0KK+q5gOqwkeyDgQ0KK+q5gO2drO2DnA0KK+q5gOybhe2drA0KK+q5gOyEne2ZmA0KK+q5gOqzteqyvQ0KK+uCmOqwkeyXsA0KK+uCmOq4sOyWuA0KK+uCmOqyveyEnA0KK+uCmO2YhOq1kA0KK+uCmOqxtOyImA0KK+uCmOygleydtA0KK+uCmO2DnOyXsA0KK+uCmO2DnOyImA0KK+uCmOq0keyImA0KK+uCmO2WieyYgQ0KK+uCmOyyoO2YuA0KK+uCmOyEoO2DnA0KK+uCmOq1re2DnQ0KK+uCmOyYge2ZjQ0KK+uCmOustOyEoA0KK+uCmOyCvO2YhA0KK+uCmOq3nOyLnQ0KK+uCmOyLoOunjA0KK+uCmOyjvOyYgQ0KK+uCmOqyveyYgQ0KK+uCmOq3nO2DnQ0KK+uCmO2bhOyInA0KK+uCmOyYgeyImA0KK+uCmCDsm5ANCivrgpjqt5ztg50NCivrgpjsmIHsnbUNCivrgpjssL3smrQNCivrgpjsoJXsmIENCivrgpjqt5ztg50NCivrgpjqsr3smKUNCivrgpjqt5zsiJgNCivrgpjshLHqsJENCivrgpjquIjsnpANCivrgpjrp4zrtoQNCivrgpjtg5ztmIQNCivrgpjrs5HqtZANCivrgpjquIjsnpANCivrgpjsm5DsnbQNCivrgpjtjJDsmIENCivrgpjqt5zrqoUNCivrgpjquLDrgqgNCivrgpjsmIHqtowNCivrgpjsnqzshJ0NCivrgpjquLDssYQNCivrgpjquLDsobANCivrgpjrjZXsiJwNCivrgpjsoJXso7wNCivrgpjsmIHsp4QNCivrgpjrh4zshLENCivrgpjquIjrp4kNCivrgpjsnKTtmLgNCivrgpjtmJXquLANCivrgpjrjIDtmIQNCivrgpjsnZjsiJgNCivrgpjsm5DsiJkNCivrgpjstqnsl7ANCivrgpjrjZXsi5wNCivrgpjshLHsm4UNCivrgpjsmIHqtIANCivrgpjsiJjsoJUNCivrgpjrj5nshKANCivrgpjsmIHrjIANCivrgpjsnqzrpr0NCivrgpjsiKDtg5wNCivrgpjrj5nsl7ANCivrgpgg7ZmYDQor64KY7ISx7ZiEDQor64KY67OR66GdDQor64KY64+Z7LaYDQor64KY67aA7Ja4DQor64KY7Iic66+4DQor64KY7KCV6rWsDQor64KY64+Z7LaYDQor64KY7ISx7JqwDQor64KY7JiB7LacDQor64KY7Zi46rK9DQor64KY66qF7LKgDQor64KY7IiY7ISgDQor64KY7IiY67SJDQor64KY7ZWZ7JuFDQor64KY66qF7LKgDQor64KY7KCV7YOcDQor64KY65Od7IiZDQor64KY7Iic7KeADQor64KY66y07Je0DQor64KY67KU7IigDQor64KY7ZW06rK9DQor64KY6rK96riwDQor64KY66y07Je0DQor64KY7J247ISgDQor64KY7ZW07J21DQor64KY7Iic7IudDQor64KY67OR7YOdDQor64KY7Iq57Z2sDQor64KY67OR67CwDQor64KY7IOB7Zy0DQor64KY67OR7YOdDQor64KY7LCo6rG0DQor64KY67SJ6re8DQor64KY6riI7ZmNDQor64KY7ISx7IiYDQor64KY64+Z7ISdDQor64KY7KeE7J6QDQor64KY642V7LacDQor64KY7ISx7YOdDQor64KY6rSR7J6QDQor64KY7JiB7JuQDQor64KY67OR7YOcDQor64KY7ISx7YOdDQor64KY64Ko7ISdDQor64KY7KCV7IiYDQor64KY7IKs642VDQor64KY7Iic7IS4DQor64KY7JiB7IigDQor64KY7Z2s7IudDQor64KY7JiB7Zi4DQor64KY7Iic7JewDQor64KY7ISx7Z2gDQor64KY7KCV7JikDQor64KY7ZeM7IudDQor64KY7IyN7ISgDQor64KY6reA7J28DQor64KY7J247JqwDQor64KY7KCV7ZiEDQor64KY7JaR6regDQor64KY7J2866qoDQor64KY7LKg7IOdDQor64KY6riw7JqpDQor64KY7Ja16riwDQor64KY7IiY7LKcDQor64KY7ZeM7JqxDQor64KY7JiB7J6sDQor64KY7JiB67KUDQor64KY7Iic6re8DQor64KY7J247KSADQor64KY67SJ7KeADQor64KY7JiB7IK8DQor64KY7IiY7JiBDQor64KY7J6s7IiYDQor64KY7KCV7ZmYDQor64KY7JiB7IK8DQor64KY7ZmN7Z2sDQor64KY7J6E7JiBDQor64KY7KKF66qFDQor64KY7JiB7IudDQor64KY64us7ISdDQor64KY67OR7ISgDQor64KY7YOc7KCVDQor64KY7JiB7JmEDQor64KY7KeE7IiYDQor64KY7ZmN7IiZDQor64KY7ZiE7IiYDQor64KY7JiB7JuQDQor64KY7Jm47Je0DQor64KY7Jil7IiYDQor64KY7Lap7IiYDQor64KY7JiB7J6QDQor64KY7JiB7ZuIDQor64KY7ZWZ6recDQor64KY66+47KeEDQor64KY7JiB7KO8DQor64KY6re87YyQDQor64KY7J287IiZDQor64KY6rec7JqwDQor64KY7JiB7KeEDQor64KY7IOB7ISdDQor64KY7ZiV7JqpDQor64KY7KKF7JqpDQor64KY7JiB7Zi4DQor64KY7LaY7Zi4DQor64KY6rK97ZiEDQor64KY7YOc7Je0DQor64KY7JiB7Z2sDQor64KY7LKg64KoDQor64KY67OR7IiYDQor64KY7IKs66+4DQor64KY7JiB7Z2sDQor64KY6rSR7IiYDQor64KY7KKF7JiBDQor64KY7IyN7JuQDQor64KY7Jqp7Je9DQor64KY7IiY7Zi4DQor64KY7Jqp7J6QDQor64KY7KCV7Zi4DQor64KY7Jqw642VDQor64KY7Iic7IudDQor64KY7Lmg7Z2sDQor64KY6rWt7IudDQor64KY7Jqw7JewDQor64KY7ISx7KGwDQor64KY64+Z7ISdDQor64KY6rK97JewDQor64KY7JuQ7IudDQor64KY7ISx7KSADQor64KY7KeE7ZiEDQor64KY7KKF7IiZDQor64KY7JuU67SJDQor64KY7Jq07KeRDQor64KY64+Z64+EDQor64KY7Jil7JWgDQor64KY7JuU7IOdDQor64KY7Jqp7Zi4DQor64KY7ISx6riwDQor64KY66eQ7ZWcDQor64KY7J217ZGcDQor64KY7Iic7IigDQor64KY6rSR7ZmNDQor64KY66+864KoDQor64KY7J6s6riwDQor64KY7J6s7JuFDQor64KY6rOE7Z2sDQor64KY7J6s7IiYDQor64KY7J6s7IudDQor64KY66eM7ISdDQor64KY7ISx7IiYDQor64KY6rK964KoDQor64KY7KCV6riIDQor64KY7LmY67KUDQor64KY67KU7KCVDQor64KY67OR7JqwDQor64KY7KCV7J2YDQor64KY66qF7Zi4DQor64KY7JiB66GcDQor64KY7Jyk64KoDQor64KY7KCV7YOcDQor64KY7J6s6rK9DQor64KY7ZWc7KSADQor64KY7JiB7IiYDQor64KY7KCV7Z2sDQor64KY66qF7ISdDQor64KY7Jq06riwDQor64KY66qF7JewDQor64KY7KKF6rOkDQor64KY7J6s7KeEDQor64KY7ISg64KoDQor64KY7KKF7IiYDQor64KY7KKF66y4DQor64KY67OR64+EDQor64KY7KCQ7JqpDQor64KY66y07KGwDQor64KY7KKF7Je0DQor64KY7KCV7J6EDQor64KY7IK866CoDQor64KY7J2A7JiBDQor64KY7KKF7YOcDQor64KY7ISx7Je0DQor64KY7Iic7ZmYDQor64KY7LaY64+EDQor64KY7KKF7YOdDQor64KY64+Z67aADQor64KY7Y+J7JilDQor64KY7KKF7IugDQor64KY7KKF7ZWcDQor64KY7J6s7ZmUDQor64KY7J247JyoDQor64KY7KCV7KO8DQor64KY7KO87YOdDQor64KY6ri47JqpDQor64KY7KO87JykDQor64KY7YOc7IudDQor64KY7KeA7JewDQor64KY67SJ7IudDQor64KY7JiB7ZmYDQor64KY67Cp7IicDQor64KY7KeE6rSADQor64KY7ZiE64usDQor64KY7YyQ7KGwDQor64KY7KeE7ZGcDQor64KY7KeE6rSADQor64KY7KCV66eMDQor64KY7JiB7IiZDQor64KY6rG07IiYDQor64KY7KeE6ri4DQor64KY67OR66+4DQor64KY6rCR7JikDQor64KY7Jqp7ZalDQor64KY7KeE64+EDQor64KY67SJ7Jq0DQor64KY7JiB7YOdDQor64KY7KCV7Jq0DQor64KY7KeE64+EDQor64KY66+87J6QDQor64KY6rCR7IiZDQor64KY7YyQ7J6QDQor64KY7KeE6529DQor64KY7ISg7ZiEDQor64KY7LCs7LKgDQor64KY6re87JewDQor64KY7KeE7IOBDQor64KY64Ko7J6QDQor64KY7JWI7ZiEDQor64KY7LKc7KSADQor64KY7KeE7JikDQor64KY7Z2s7LKgDQor64KY7Jil7ISxDQor64KY7JuQ64+MDQor64KY7KeE7JygDQor64KY7JuQ7Z2sDQor64KY7IiY64yADQor64KY7Iq57JikDQor64KY7KeE7ZWcDQor64KY7IOB7KeEDQor64KY7ZWc66GdDQor64KY7Jyk7IudDQor64KY7KeE7ZW0DQor64KY7KCQ7J6QDQor64KY6rK964yADQor64KY7Jqp6rCVDQor64KY7KeE7Z2sDQor64KY7KSR7IiYDQor64KY7IiY7IudDQor64KY6raM6rWQDQor64KY7LGE6rSADQor64KY6rCI7JuQDQor64KY7KCV7JikDQor64KY6rK97Zi4DQor64KY7LGE6raMDQor64KY7YOc64+ZDQor64KY7ISd7YOcDQor64KY7KKF7Zi4DQor64KY7LGE7ISxDQor64KY7Zqo6rK9DQor64KY7KCV6rSADQor64KY7IaM7JiBDQor64KY7LGE7IudDQor64KY7JiB6ri4DQor64KY7KKF7KGwDQor64KY6re87IudDQor64KY7LGE7ZalDQor64KY7KKF7YOcDQor64KY64yA7IusDQor64KY7YOc7LKgDQor64KY7LaY7YOdDQor64KY7YOc7JilDQor64KY7J6s7JqpDQor64KY7J207KeADQor64KY7YOc7J6EDQor64KY66qF7ZalDQor64KY7Lap7JykDQor64KY7J6s6re8DQor64KY7ZW07JqpDQor64KY7KKM7IicDQor64KY7JiB7ZiEDQor64KY7YOc7Zi4DQor64KY7ZW07JqpDQor64KY7Jq066y0DQor64KY67OR7LKgDQor64KY7J6s7ISgDQor64KY7Zi47JewDQor64KY66qF7LCsDQor64KY7ZmN7J6QDQor64KY7Jqp7ZuIDQor64KY7Z2s7Je0DQor64KY7ZmY7IStDQor64KY7Jyk7JqpDQor64KY7Jqp7J6QDQor64KY7Z2s7KCVDQor64KY7J287IudDQor64KY7Iq57Zi4DQor64KY7JuQ64+ZDQor64KoIO2biA0KK+uCqO2DnO2XjA0KK+uCqOu0ie2YuA0KK+uCqOuMgO2VtA0KK+uCqOqwnOqzpA0KK+uCqOyEseyIoA0KK+uCqO2drO2drA0KK+uCqOykkeq4sA0KK+uCqOq2geyglQ0KK+uCqO2MkOyLnQ0KK+uCqOyDgeyImQ0KK+uCqOq3nOuwsA0KK+uCqOq3nOuqhQ0KK+uCqOybkOyEoA0KK+uCqOyInOuvuA0KK+uCqOyerOuLrA0KK+uCqOq3nOynhA0KK+uCqOyEseybhQ0KK+uCqOyaqe2YuA0KK+uCqOuCme2PrA0KK+uCqOq4sOyIoA0KK+uCqOyYge2YlQ0KK+uCqOuMgOq0gA0KK+uCqOuqheyImA0KK+uCqOq4sOyglQ0KK+uCqOq4sO2YuA0KK+uCqOygkOyngQ0KK+uCqOybkOyImQ0KK+uCqOq4sO2ZjQ0KK+uCqOyEseq4sA0KK+uCqOyEseq3nA0KK+uCqOq3vOyXtA0KK+uCqOuNleyImA0KK+uCqOyerOuztQ0KK+uCqOyViOyVoA0KK+uCqOyDgeq4uA0KK+uCqOusuO2drA0KK+uCqOuwsO2YuA0KK+uCqOunkOyVlA0KK+uCqOydvOyLnQ0KK+uCqOuzkeuRkA0KK+uCqOywve2DnA0KK+uCqOyEoO2DnA0KK+uCqOyatOuztA0KK+uCqOuzkey2mA0KK+uCqOuMgOq1rA0KK+uCqOqyveq4sA0KK+uCqOq4iOyYgQ0KK+uCqOyDgeyImA0KK+uCqOyEneu0iQ0KK+uCqOyyoOq4sA0KK+uCqOynhOqzpA0KK+uCqOyDgeyIoA0KK+uCqOydgOuCqA0KK+uCqOq0keyLnQ0KK+uCqOycpOqzpA0KK+uCqOyDgeyXvA0KK+uCqOyCvO2biA0KK+uCqOu0ie2DnA0KK+uCqOycpO2DnA0KK+uCqOyDgeyduA0KK+uCqO2drOq0gA0KK+uCqOq0ke2YhA0KK+uCqOyYge2XjA0KK+uCqOyDge2biA0KK+uCqOyYgeyImA0KK+uCqO2MkO2YhA0KK+uCqOuMgOyErQ0KK+uCqOyEne2YhA0KK+uCqOqxtOq4sA0KK+uCqOyiheywvQ0KK+uCqOuqhe2DnA0KK+uCqOyEseyasA0KK+uCqOyDgeq0kQ0KK+uCqCDsiJgNCivrgqjsg4HtmLgNCivrgqjsiJjsmqkNCivrgqjtmY3rtIkNCivrgqjqt4Dsi50NCivrgqjtmITqs6QNCivrgqjsiJzsmrANCivrgqjsmIHrrLQNCivrgqjsmIHsnqwNCivrgqjtg5zspIANCivrgqjsmIHsmrANCivrgqjtjJDqt7wNCivrgqjsnqzqtZANCivrgqjsmqnqt7wNCivrgqjsmIHtmIQNCivrgqjsg4HshKANCivrgqjssL3rj4QNCivrgqjsoJXrrLgNCivrgqjsmIHtmIQNCivrgqjtlZjtmLgNCivrgqjrqoXsuZgNCivrgqjsnYTqt7wNCivrgqjsmKTsobANCivrgqjsg4HtmIQNCivrgqjsmIHqta0NCivrgqjrs5Htg50NCivrgqjsmKXtnawNCivrgqjsooXtmZQNCivrgqjsnqztmIQNCivrgqjsoJXsl7ANCivrgqjsmqnrjZUNCivrgqjsmIHslZQNCivrgqjrrLjtg50NCivrgqjsmIHtnawNCivrgqjsm5DrjZUNCivrgqjsooXquLANCivrgqjrj5nsnpANCivrgqjtg5zsiJwNCivrgqjsm5DtnawNCivrgqjrtInssqANCivrgqjri6ztla0NCivrgqjqs4Trj5kNCivrgqjsnKTsiJkNCivrgqjsnoTqtZANCivrgqjsooXsiJgNCivrgqjqt7zquLANCivrgqjsnKTsobANCivrgqjsmqntnawNCivrgqjsm5DsspwNCivrgqjsnbTsiJgNCivrgqjsnYDsoJUNCivrgqjrr7zrjIANCivrgqjrtoTtmZgNCivrgqjtmITtmZQNCivrgqjsnYTsiJwNCivrgqjsooXsmIENCivrgqjqsIDshKANCivrgqjsg4HqtawNCivrgqjsnbTsi50NCivrgqjssL3tg5wNCivrgqjssKzsiJgNCivrgqjrspTsp4QNCivrgqjsnbTsi50NCivrgqjqta3tnaANCivrgqjqtazstpwNCivrgqjsiJzsi6wNCivrgqjsnbTsp4ENCivrgqjsoJXsp4QNCivrgqjqtJHqsr0NCivrgqjssL3smKQNCivrgqjsnbjsi50NCivrgqjsgrztm4gNCivrgqjsnqXqta0NCivrgqjtg5zsi50NCivrgqjsnqzrp4wNCivrgqjsg4HsnbQNCivrgqjsooXrjZUNCivrgqjqtJHsiJgNCivrgqjsnqzrtIkNCivrgqjrrLTsmrANCivrgqjsgrzrp4wNCivrgqjtlonquLANCivrgqjsnqzsmrANCivrgqjrqoXsl7QNCivrgqjsmIHshK0NCivrgqjrgqjsi50NCivrgqjsnqzsmrANCivrgqjsiJztl4wNCivrgqjspIDqs6QNCivrgqjsoJXsiJgNCivrgqjsoJXtmLgNCivrgqjtmLjsp4QNCivrgqjsnbjsnpANCivrgqjsg4Hrp4wNCivrgqjsoJXtmLgNCivrgqjsnqzsoJUNCivrgqjsg4HsmrENCivrgqjsoJXsobANCivrgqjssL3quLANCivrgqjtmZTsl7QNCivrgqjsmKXrtIkNCivrgqjsmIHsmKUNCivrgqjssqDsmrANCivrgqjso7zsi50NCivrgqjsooXtmLgNCivrgqjrj5nslZQNCivrgqjstpjtmZQNCivrgqjrs5HrtoANCivrgqjsuaDtmLgNCivrgqjtnaXsi50NCivrgqjsuaDsobANCivrgqjtg5zrj5kNCivrgqjrs5HsmrANCivrgqjshKDqtowNCivrgqjtg5zsooUNCivrgqjtmLjshJ0NCivrgqjtmJzshLENCivrgqjsnqztlbQNCivrgqjtjJDspIANCivrgqjsnqztmIQNCivrgqjsm5Dqta0NCivrgqjsmIHsi50NCivrgqjtlZjsmrANCivrgqjsp4TsnbQNCivrgqjsg4HsiJwNCivrgqjspJHtmZQNCivrgqjtmITsnbwNCivrgqjrj4TtmY0NCivrgqjsiJjtmZQNCivrgqjsiJzsiJgNCivrgqjtmITsnbwNCivrgqjsnZjsiJwNCivrgqjtnazqt5wNCivrgqjquLjqt5wNCivrhbjqsJHsiJgNCivrhbjqtbDqtowNCivrhbjqt5zshLgNCivrhbjshLHslYQNCivrhbjqsr3rj4QNCivrhbjqsr3shJ0NCivrhbjtg5ztl4wNCivrhbjsnbzsnpANCivrhbjqtJHrjZUNCivrhbjrjIDsnKQNCivrhbjsmqnsnpANCivrhbjsgrzsooUNCivrhbjqtJHsm4UNCivrhbjqsJXslrgNCivrhbjsirnrj5kNCivrhbjqsr3qt7wNCivrhbjqt7zsl7QNCivrhbjtl4ztmLgNCivrhbjrrLTqt5wNCivrhbjrs5HsiJwNCivrhbjquLDqt7wNCivrhbjtlqXstpwNCivrhbjsgrzrr7gNCivrhbjspJHsp4QNCivrhbjquLDroZ0NCivrhbjspIDtg5wNCivrhbjsmbjqt5wNCivrhbjsooXtmZgNCivrhbjquLDsiJgNCivrhbjtnaztnawNCivrhbjrj5nshK0NCivrhbjsmKXshJ0NCivrhbjquLDssL0NCivrhbjshJ3siJwNCivrhbjshLHtm4QNCivrhbjsiJjsiJgNCivrhbjquLDtmIQNCivrhbjspIDsiJgNCivrhbjrj4TshJ0NCivrhbjsnqXtmZgNCivrhbjrjIDqs6QNCivrhbjrs5HshKANCivrhbjspJHsmrENCivrhbjtlZzsoJUNCivrhbjrj5nrgqgNCivrhbjssL3sg4ENCivrhbjsnqzsg50NCivrhbjsvozsiJkNCivrhbjrj5nrjZUNCivrhbjssL3slZQNCivrhbjqsr3rtoQNCivrhbjtmY3tg50NCivrhbjrj5nsiJgNCivrhbjtg5zsi50NCivrhbjsmKXsl7QNCivrhbjssqDqt5wNCivrhbjrj5nsobANCivrhbjqsrjsobANCivrhbjsmrDroZ0NCivrhbjqt7zsnpANCivrhbjrj5nsobANCivrhbjspJHtmLgNCivrhbjsnZjtlZwNCivrhbjsmIHtmZQNCivrhbjrqoXrtoQNCivrhbjsiJjsi50NCivrhbjsoJXtmZgNCivrhbjsoJXqsqwNCivrhbjrqoXslZQNCivrhbjsirnsiKANCivrhbjsmIHsoJANCivrhbjqsr3tg4ENCivrhbjrrLTsiJgNCivrhbjstpjsi50NCivrhbjsooXsoJUNCivrhbjsoJXsiJwNCivrhbjrrLTsooUNCivrhbjsnKTrj4wNCivrhbjsoJXsp4QNCivrhbjsnqzrp4wNCivrhbjrsKnsi50NCivrhbjsg4HqsJENCivrhbjsmIHsl7QNCivrhbjsnYTtg50NCivrhbjrs5HsmrANCivrhbjtl4zrj4QNCivrhbjsp4Ttg5wNCivrhbjssqDtmIQNCivrhbjrs7XsspwNCivrhbjsnKTsm5ANCivrhbjrqoXtmLgNCivrhbjssKjsiJwNCivrhbjrtInsl7QNCivrhbjso7zrpaANCivrhbjsmIHrrLgNCivrhbjsmqnrs5ENCivrhbjrtoTsobANCivrhbjspJHqt5wNCivrhbjtnazsspwNCivrhbjrj5nsiJgNCivrhbjsgqztmLgNCivrhbjsooXqsr0NCivrhbjsnbzsl6wNCivrhbjtmITsiJgNCivrhbjsgrzsiJgNCivrhbjsnbzsnbQNCivrhbjsmrDsiJgNCivrhbjsnbjsiJwNCivrhbjsg4HsiJgNCivrhbjspJHrprwNCivrhbjsnYDsiJgNCivrhbjsiJzrjZUNCivrhbjsg4Hsl7QNCivrhbjsp4TrtIkNCivrhbjsg4HqtawNCivrhbjstpjsp4QNCivrhbjsg4Htg5wNCivrhbjstpjtmLgNCivrhbjrr7ztmZQNCivrhbjsp4TsiJgNCivrhbjsg4HtlYQNCivrhbjrs5HsmrANCivrhbjsmIHqtZANCivrhbjsoJXqtbANCivrhbjsg4HtmZQNCivrhbjtg5zrp4wNCivrhbjtlZzrjIANCivrhbjsnqzsi50NCivrhbjshJ3siJgNCivrhbjtg5ztg5wNCivrhbjshLHtmZgNCivrhbjrs5HrrLgNCivrhbjshJ3si50NCivrhbjtlZzqsJENCivrhbjsooXtnawNCivrhbjtlZztmLgNCivrhbjshJ3si50NCivrhbjrs5HsiJkNCivrhbjshLHsg4ENCivrhbjrkZDsiJgNCivrhbjshJ3sl7QNCivrhbjsmIHsnpANCivrhbjrh4zssL0NCivrhbjsiJjssqANCivrhbjshJ3tmLgNCivrhbjrp5DquLANCivrhbjqtozrj4QNCivrhbjqsr3tmIENCivrhbjshLHrjIANCivrhbjquLjtmIQNCivrhbjsmqnrj4QNCivrhbjri6zquLANCivrhbjshLHrjZUNCivrhbjssqDqta0NCivrhbjrtIntlZwNCivrhbjtmY3tmZgNCivrhbjshLHroYANCivrhbjrj5ntmZgNCivrhbjsmIHshLENCivrhbjsg4HsnpANCivrhbjshLHsi50NCivrhbjtg5zsiJkNCivrhbjsp4TsmYQNCivrhbjrs5HstpwNCivrhbjshLHsl7QNCivrhbjsmIHquLANCivrhbjsg4HtnawNCivrhbjrs5HtmIQNCivrhbjshLHtmZgNCivrhbjrrLTsiJwNCivrhbjrs5HtmLgNCivrhbjsoJzquLANCivrhbjsiJjtlZwNCivrhbjsg4HquLANCivrhbjsoJXshKANCivrhbjsl7DtmIQNCivrhbjsiJzrgqgNCivrhbjsmIHshJ0NCivrhbjsoJXsobANCivrhbjrkZDsm5ANCivrhbjsiJzsobANCivrhbjqsr3sp4QNCivrhbjsmqnsi50NCivrhbjsirnsiJkNCivrhbjsiJztlZkNCivrhbjtlZzshLENCivrhbjsmIHqs6QNCivrhbjsg4Hsl7QNCivrhbjsiJztlbQNCivrhbjsiJztmZQNCivrhbjssL3rrLgNCivrhbjssL3tmIQNCivrhbjsmIHsiJgNCivrhbjsp4TsobANCivrhbjrs5Hrj5kNCivrhbjsiJjshLENCivrhbjsmIHsiJkNCivrhbjsiJjsooUNCivrhbjso7zslaANCivrhbjsuaDsl7ANCivrhbjsmYTqtawNCivrhbjsooXstpwNCivrhbjspIDsiJgNCivrhbjtg5zssqANCivrhbjsmYTsi50NCivrhbjsooXquLANCivrhbjsmKTtmZgNCivrhbjsoJXshJ0NCivrhbjsmqnqt5wNCivrhbjrj4TtmLgNCivrhbjshLHqsJENCivrhbjsnbzsoJwNCivrhbjsmqnrrLgNCivrhbjrqoXrgpwNCivrhbjqsr3sg4ENCivrhbjsiJzsi50NCivrhbjsmqnrspQNCivrhbjtg5zsmrANCivrhbjsiJjqtZANCivrhbjrs5Hqt6ANCivrhbjsmqnsi50NCivrhbjsmKTsiJkNCivrhbjtlZzrtoQNCivrhbjsg4HtmY0NCivrhbjsmqnsnpANCivrhbjsi5zstpgNCivrhbjqsr3qtIANCivrhbjrtoDtmJUNCivrhbjsmrTrj5kNCivrhbjssKjqta0NCivrhbjshLHtmZQNCivrhbjsooXsl7QNCivrhbjsm5TshKANCivrhbjsg4HsmKUNCivrhbjsgqzsi50NCivrhbjtjJDsmrANCivrhbjsnKTqt5wNCivrhbjrrLTsmrQNCivrhbjrjZXtg5wNCivrhbjsoJDrs7UNCivrhbjsnKTquIgNCivrhbjsmKTqtZANCivrhbjrqoXshJ0NCivrhbjsoJXquIgNCivrhbjsnYDshK0NCivrhbjqsr3quLgNCivrhbjsg4HqtIANCivrhbjqtJHsnpANCivrhbjsnYDtnawNCivrhbjrqoXsiJkNCivrhbjrqoXshJ0NCivrhbjrp4zsiJgNCivrhbjsnYTsl7ANCivrhbjtmITsiJgNCivrhbjrjIDsmqkNCivrhbjrs5Hsi6ANCivrhbjsnbjsg4ENCivrhbjsmrHsi50NCivrhbjqtJHtmZQNCivrhbjrqoXsl7ANCivrhbjsnbjtmLgNCivrhbjsm5DtmLgNCivrhbjsnqzsp4QNCivrhbjsmIHsmrANCivrhbjsnqXsiJgNCivrhbjsmIHso7wNCivrhbjrqoXqsr0NCivrhbjsooXtnLQNCivrhbjsnqXsmKQNCivrhbjstpjrtIkNCivrhbjsmrDsmKUNCivrhbjrjIDsm4UNCivrhbjsnqzsl7ANCivrhbjsmqnstpwNCivrhbjrs5Htg4ENCivrhbjsg4Hsg4ENCivrhbjsnqzsnKQNCivrhbjsnbXrtoANCivrhbjsnKTtnLQNCivrhbjri6ztmIQNCivrhbjsnqzssL0NCivrhbjrp4zsiJkNCivrhbjsoJXrp4wNCivrhbjsuaDquLgNCivrhbjsnqztmZgNCivrhbjsooXssqANCivrhbjtg5ztnawNCivrhbjtjJDsp4QNCivrhbjsnqztmZgNCivrhbjqt5zsiJwNCivrhbjsmIHtnawNCivrhbjri6ztmLgNCivrhbjsoJXsnbUNCivrhbjtlbTrp4wNCivrhbjshLHsi50NCivrhbjstpjsiJkNCivrhbjsoJXtmZgNCivrhbjsmIHqt7wNCivrhbjrp4zqs6QNCivrhbjsmqnsiKANCivrhbjsooXqtowNCivrhbjsmqnqt6ANCivrhbjsnbzsmKUNCivrhbjrp4zrj4QNCivrhbjsooXsmrQNCivrhbjsg4HsnbQNCivrhbjqt7zrjZUNCivrhbjrj5nquLANCivrhbjsooXtmIQNCivrhbjsspzsiJgNCivrhbjsnbzsiJwNCivrhbjsi5zsl7QNCivrhbjspIDtmIQNCivrhbjqsr3smqkNCivrhbjshLHqt7wNCivrhbjtlZzsmrANCivrhbjspIDtmIQNCivrhbjqtJHtmIQNCivrhbjrtInsnbQNCivrhbjsoJXtmZQNCivrhbjsp4Tsi50NCivrhbjtlZzshJ0NCivrhbjqt7zsi50NCivrhbjsp4TroKwNCivrhbjssL3rnb0NCivrhbjqsJXrgqgNCivrhbjsm5DsnbQNCivrhbjshKDsiJwNCivrhbjssL3shJ0NCivrhbjtmITsnbwNCivrhbjssqDqtowNCivrhbjrtoTtlZgNCivrhbjssL3tmLgNCivrhbjslrXtlZkNCivrhbjrrLTssqANCivrhbjtlYTtmIQNCivrhbjssL3tmZQNCivrhbjsoJXtg5wNCivrhbjrs5Hqs6QNCivrhbjsmqnsmrANCivrhbjssqDqt5wNCivrhbjquLjtg5wNCivrhbjtmLjssqANCivrhbjsmIHrp4wNCivrhbjstpjquLgNCivrhbjrqoXsl7ANCivrhbjqsr3tnawNCivrhbjsoJXsiJwNCivrhbjsuaDqt5wNCivrhbjsoJXsuZgNCivrhbjsoJXshJ0NCivrhbjrjIDsmrENCivrhbjtg5zquLgNCivrhbjtmY3qtIANCivrhbjtg5zqt7kNCivrhbjrrLTsnpANCivrhbjtg5zsiKANCivrhbjsp4TshKANCivrhbjsnqzsnpANCivrhbjsg4HsnbQNCivrhbjtg5zsm5ANCivrhbjtg5zrtIkNCivrhbjshLjrp4wNCivrhbjsmqnssqANCivrhbjtg53rtIkNCivrhbjsmqntmZQNCivrhbjstpjtnawNCivrhbjrjZXtmZgNCivrhbjtjJDqt5wNCivrhbjrhbjssqANCivrhbjsmIHshJ0NCivrhbjsiJztmLgNCivrhbjtlYTso7wNCivrhbjrqoXsm5ANCivrhbjquLDshKANCivrhbjsnqzsm5ANCivrhbjtlZzqt5wNCivrhbjsmIHsl7QNCivrhbjrr7jqtowNCivrhbjrrLjshLENCivrhbjtmITrsLANCivrhbjsooXsiJwNCivrhbjsg4Hqt5wNCivrhbjtlZztmZQNCivrhbjtmITsoJUNCivrhbjrkZDsg4ENCivrhbjsgrzsnbUNCivrhbjtmLjrtIkNCivrhbjtmJzqsr0NCivrhbjsp4jqt5wNCivrhbjqtJHshK0NCivrhbjsnqzsmqkNCivrhbjtmozspIANCivrhbjsoJXsiJgNCivrhbjtmLjspJENCivrhbjrkZDsnbwNCivrhbjtmqjrj5kNCivrhbjqsr3showNCivrhbjshLHshLENCivrhbjssKjshJ0NCivrhbjtm4Trk50NCivrhbjsnYTrsLANCivrhbjsnqzqs4QNCivrhbjrp4zsl7ANCivrhbjtnazsiJgNCivrhbjsmIHsm4UNCivrhbjshLHqt5wNCivrhbjsg4Hrp4wNCivrhbjtnazsl7QNCivrhbjtg5zsobANCivrhbjtg5ztg5wNCivrhbjsnqztmLgNCivrhbjtnazssKwNCivrhbjsnKTsmrENCivrhbjrhbjtmLgNCivrhbjsg4Hsl7QNCivrj4Tqt5ztg4ENCivrj4TsnoTsmqkNCivrj4TqtJHsiJgNCivrj4TtmLjquLANCivrj4Trj5nsirkNCivrj4TsnKTshLENCivrj4TsoJXsoIQNCivrj4Tso7ztg5wNCivrj4TrkZDtg4ENCivrj4TshoztmY0NCivrj4Trs5HqsbQNCivrj4Tso7zshJ0NCivrj4TrrLjtmZgNCivrj4TrrLjsl7ANCivrj4TssqDsmqkNCivrj4TtjJTqsJENCivrj4Trs5HquLANCivrj4TsnKjsnbUNCivrj4TsmIHsiJgNCivrj4TsiJzsnbgNCivrj4Tsg4HquLANCivrj4TtmLjsg50NCivrj4Ttg5zqsJENCivrj4Tqt5ztmZgNCivrj4Tsg4HssqANCivrj4Trs5HtmZgNCivrj4TshLHsmrANCivrj4Trs5HsmqkNCivrj4Tsg4HtmLgNCivrj4Tsnqzsi50NCivrj4TssKzsnpANCivrj4TsoIHsnqwNCivrj4TsiJjsmIENCivrj4TshozsmIENCivrj4Ttl4zsi50NCivrj4TtlZnsi50NCivrj4TsiJjsmIENCivrj4Tsmqnrs7QNCivrj4TsnqzsoJUNCivrj4TtmY3siJgNCivrj4Tsi6DsmrANCivrj4TquLDqt7wNCivrj4TtlbTsmqkNCivrj4TsoJXqt7wNCivrj4TsmIHssqANCivrj4TrtoTqt7wNCivrj4TtmITssL0NCivrj4TtlbTsg50NCivrj4TsmIHtnawNCivrj4TrrLjsnbQNCivrj4TrjZXsmrANCivrj4TquLDrp4wNCivrj4TsmKXtnawNCivrj4Tqs7XrprwNCivrj4TsnbjrtoQNCivrj4TtlbTsiJgNCivrj4Tsm5DsiJgNCivrj4TsmqnsiJwNCivrj4TsgrzssqANCivrj4TsmIHshKANCivrj4TsnoTsiKANCivrj4TsiJzsiJwNCivrj4Tqta3siJwNCivrj4TssKjtmLgNCivrj4Tsnqzrj5kNCivrj4TsmIHsnpANCivrj4TqtJHsiJkNCivrj4Tsg4Hsm5ANCivrj4Tsnqzrj5kNCivrj4TsnKTqsbQNCivrj4TshJ3shJ0NCivrj4Tsirnrp4wNCivrj4TsnqzsmrENCivrj4TsiJzssKwNCivrj4TrqoXqtawNCivrj4TssKjrjZUNCivrj4TsoJXrp4wNCivrj4TssL3tmLgNCivrj4Tsg4HquLANCivrj4TsnbzsmrANCivrj4TsoJXrtIkNCivrj4TtjJDquLgNCivrj4TsmKXroZwNCivrj4TssqDtnawNCivrj4TsoJXtg4ENCivrj4Tqsr3qt5wNCivrj4Tsnqzsi50NCivrj4TssqDshLgNCivrj4TsoJztmIQNCivrj4TrjZXsiJgNCivrj4TsvozshKANCivrj4TquLDtg5wNCivrj4TsooXtmZgNCivrj4Ttg5zqt7wNCivrj4TsooXroZ0NCivrj4TsnbjshKANCivrj4TspIDtg4ENCivrj4TsmIHrqqgNCivrj4TqsJztmZQNCivrj4Trs5Hsi50NCivrj4Tspp3sobANCivrj4TqsJHqtIANCivrj4TsmIHsiJwNCivrj4Ttg5zsiJgNCivrj4TssL3roZ0NCivrj4Trs5HtmZgNCivrj4Trs5Hrs7UNCivrj4TssL3shLENCivrj4TssL3siJgNCivrj4Ttg5ztnawNCivrj4TrrLjsp4QNCivrj4Tso7zsoJwNCivrj4TtjJTrp4wNCivrj4TtmqjsmqkNCivrj4TshKDsiJgNCivrj4TtmITsoJUNCivrj4TtlZjshJ0NCivrj4TtmZTqtZANCivrj4TsoJXsobANCivrj4Trp4zslpENCivrj4TtmITshJ0NCivrj4Tsl7DslZQNCivrj4TqtbDsi50NCivrj4Ttg5zstpgNCivrj4TtmITsmIENCivrj4TtlZzsg4ENCivrj4Trp4zshLENCivrj4Trj5nso7wNCivrj4TtmLjquLgNCivrj4TsnbjtmIQNCivrj4Tqt5zstpgNCivrj4TtmqjtnawNCivrj4TtmZTshJ0NCivrj4TrjIDshJ0NCivrj4Tsp4TshJ0NCivrj4TrhbjrqqkNCivrj4TtmozsmrQNCivrj4Tqsr3rj5kNCivrj4Trj5nsgrwNCivrj4Ttg5zsi50NCivrnbzqt5ztmIENCivrnbzquLDrtIkNCivrnbzsiJnquLANCivrnbzsnqzrj4wNCivrnbzrs5HtmLgNCivrnbzsnbzsmqkNCivrnbzsnqzsoJUNCivrnbzqtZDsobANCivrnbzrs7Tsm5ANCivrnbzquLDqsr0NCivrnbzrs5Hqt7wNCivrnbzssKjtmIQNCivrnbzshJ3rrLgNCivrnbzsooXrqqkNCivrnbzstqnquLANCivrnbzsmqnrr7gNCivrnbzshLjrp4wNCivrnbzri6zso7wNCivrnbzshoztmZgNCivrnbzsmYTtmLgNCivrnbzsl7Dri7kNCivrnbzsirnquLANCivrnbztg5zsm5ANCivrnbzsnKTsiJgNCivrnbzsmIHrhbgNCivrnbzrqoXqs4QNCivrnbzsooXqtIANCivrnbzqt5zsmIENCivrnbzsmIHrj4QNCivrnbztnazshLENCivrnbzrs5HsnbUNCivrnbzsm5Drj4wNCivrnbzsmIHspIANCivrnbzrr7jrnpgNCivrnbzsmIHsnoQNCivrnbzsgrzsmIENCivrnbzsmpTtlZwNCivrnbztnazsiJwNCivrnbzrp4zsl7ANCivrnbzso7zri7QNCivrnbzsmrDqs6QNCivrnbzsnbzqt6ANCivrnbzrkZDtg5wNCivrnbztnazrj4wNCivrnbzsnbjsiJgNCivrnbzshLjshK0NCivrnbztg5zsobANCivrnbzrjIDsi50NCivrnbzsnqXsiJgNCivrnbztlbTrj4QNCivrnbzsmIHrr7wNCivrnbzsiJjro6ENCivrnbzsooXssqANCivrnbztnaztmY0NCivrnbzsiJzsiJgNCivrnbzso7zqsbQNCivrnbzso7ztg50NCivrnbzrtInquLANCivrnbzrj4Tsp4QNCivrnbzsoJXshLENCivrnbzsp4TqsJUNCivrnbzsl7DshJ0NCivrnbzsiJzsiJwNCivrnbzrs5HsiJkNCivrnbzsp4Tsi50NCivrnbzsg4HtmZgNCivrnbzsnqzsiJkNCivrnbzsm5DquLgNCivrnbzsp4TtlZwNCivrnbzqt5zsg4ENCivrnbzsmIHsi50NCivrnbzsirnsmrQNCivrnbzsuZjsmrQNCivrnbzqsr3quLANCivrnbzsmqnsiJgNCivrnbzsoJXsp4QNCivrnbztg53sl7ANCivrnbzsg4HshJ0NCivrnbzsmIHshJ0NCivrnbzrtInsnqwNCivrnbztlZzquLgNCivrnbzsg4HsiJwNCivrnbzssL3snqwNCivrnbztmY3rp4wNCivrnbztmITrrLgNCivrnbzsnbzrp4wNCivrnbzsoJXsp4QNCivrnbztlYTso7wNCivrpZgg6rCVDQor66WY7J2A7J6QDQor66WY7JiB7JuQDQor66WY67O17Zi4DQor66WY6rCR66GdDQor66WY7JiB6rWsDQor66WY7YOc7IudDQor66WY7ZWY7IicDQor66WY6rSR7Je0DQor66WY7YOc7JiBDQor66WY7J6s7ZWZDQor66WY6rK964KoDQor66WY6rSR7KeADQor66WY7ZWo7IStDQor66WY7ZiE64+ZDQor66WY7ZWZ7IiYDQor66WY6re87IiZDQor66WY7JmE7ZuIDQor66WY7ZW07JqwDQor66WY66y067O1DQor66WY64+E7JqpDQor66WY7Iq57ISgDQor66WY7J207KeRDQor66WY7IOB656RDQor66WY64+Z7ZuIDQor66WY66y47J6EDQor66WY6re86riwDQor66WY7ZiE7JqxDQor66WY64+Z7ZuIDQor66WY7LKg6rCRDQor66WY7IKs66y0DQor66WY7IS47KKFDQor66WY67OR7LmgDQor66WY6riI7JWgDQor66WY66qF67aADQor66WY66y47ZqoDQor66WY7IOB66CsDQor66WY7LKg64+ZDQor66WY7J6s64+ZDQor66WY7ZiV7J20DQor66WY7IOB7JqwDQor66WY6rSR7JqpDQor66WY7KKF7J6sDQor66WY7J6s7LKgDQor66WY7ISx67O1DQor66WY7J2A7JilDQor66WY7KSR7ISxDQor66WY6rec64KoDQor66WY7ISx67O1DQor66WY66y47JewDQor66WY6riI6riwDQor66WY7IOB6re8DQor66WY7ISx7Zi4DQor66WY7JiB64yADQor66WY7Iuc7KGwDQor66WY7LKg7LKgDQor66WY7IiY67mIDQor66WY7ISx7JiBDQor66WY6ri46rWtDQor66WY66y47JqpDQor66WY7Iuc7J6sDQor66WY7ZiV7Z2sDQor66WY6rec7KCVDQor66WY7ZWZ65OdDQor66WY7Jew7J6QDQor66WY7IaM642VDQor66WY6rK97ZiEDQor66WY64+Z7IiYDQor66WY7Jqp7Z2sDQor66WY7IS47Zi4DQor66WY7IOB7YOcDQor66WY7Iic642VDQor66WY7Jyk7ZiVDQor66WY66eM7IudDQor66WY6rCV7KSADQor66WY6rSR67CwDQor66WY7J2Y7IiYDQor66WY7J2E6rOkDQor66WY67OR66+8DQor66WY7ISx7IukDQor66WY7J6l7ZmUDQor66WY7ISc7ZmNDQor66WY6riw7JiBDQor66WY7Iuk7ZWZDQor66WY7KKF656YDQor66WY7KKF7JqpDQor66WY64+Z7Zi4DQor66WY7Zi47ZiEDQor66WY7KKF66y4DQor66WY7IiY7ISgDQor66WY7Jqp7YOdDQor66WY7Zic7JiBDQor66WY7KKF7LGEDQor66WY7KKF7YOBDQor66WY7LC97IiYDQor66WY7IiY7ZmYDQor66WY7YOc66qFDQor66WY7IiY6rOkDQor66WY7ZiE7Zi4DQor66WY7J207JuQDQor66WY7YOc66y4DQor66WY7Iq57YOcDQor66WY7JiB7ZmYDQor66WY67SJ7ISdDQor66WY7YOc7LaYDQor66WY7KCV7ISgDQor66WY7ZWE7IK8DQor66WY7JuQ7Zi4DQor66WY7ZWE7ISgDQor66WY7KCV7IiYDQor66WY7JiB7LC9DQor66WY7IOB6riwDQor66WY7ZW067O1DQor66WY67O16riwDQor66WY7IiY7ISxDQor66WY7IOB7LacDQor66WY7ZW07JaRDQor66WY64+Z7KO8DQor66WY6riw67SJDQor66WY7YyQ7IudDQor66WY7ZW07LaYDQor66WY7Zic7Zi4DQor66WY7IS47JewDQor66WY7Iug7IicDQor66WY7Zi464yADQor66WY7ISg7JqwDQor66WY7IOB66y0DQor66WY7KCV6re5DQor66eI7ISd7J28DQor66eI64+Z7ZiBDQor66eI7YOc7ISgDQor66eI7IOB7ISdDQor66e56rK96529DQor66e57KO87JilDQor66e56riI6recDQor66e57Zic6regDQor66qo7IOB7JiBDQor66qo7JWU7YOcDQor66qo7ZW07IiYDQor66qo7ISx6ri4DQor66qp7ISx7IiYDQor66qp64us6re8DQor66qp7ZmU6raMDQor66qp7J6s7YyUDQor66y46rCV66+8DQor66y47LKg7ZiEDQor66y46riw7YOcDQor66y46ri47ZGcDQor66y46rG07YOdDQor66y47KKF7KSADQor66y464+Z66eMDQor66y47JiB7JikDQor66y46rK97IigDQor66y47ZeM7Zi4DQor66y47ZW0642VDQor66y467O07Zi4DQor66y46rK97JWgDQor66y47Jqp6riwDQor66y464yA7JiBDQor66y47ISx64yADQor66y46rK97Zi4DQor66y466qF7IigDQor66y47JiB7ZmYDQor66y46rCV7JuQDQor66y46rK97Z2sDQor66y47J2E64yADQor66y46rOE7ISgDQor66y47Jew7IudDQor66y46rOE64KoDQor66y47KCQ7Je0DQor66y47J6s6riwDQor66y47J6s7IStDQor66y46rOE7ISgDQor66y47ISd7KSADQor66y47YyQ7ISdDQor66y47J6s7JikDQor66y46rSR7J6sDQor66y47IOB7LacDQor66y47IyN7JuQDQor66y47ZiV66y4DQor66y46rWQ7J21DQor66y47KO87J6QDQor66y47J6s7J6sDQor66y47KCV7IStDQor66y46rWs7J2YDQor66y46rWQ7LKgDQor66y47Jqp7IiYDQor66y47KKF7IiYDQor66y46reA7Je0DQor66y47YOc6riwDQor66y47ISd7YOcDQor66y47YOc6rK9DQor66y46re87IudDQor66y46rWw7IugDQor66y47LC97IudDQor66y47ZiE7YOcDQor66y46re87JiBDQor66y47KCV7Z2sDQor66y47J6s7IicDQor66y466eQ7IiYDQor66y46re87JiBDQor66y46re87ZuIDQor66y47YOc7ZWYDQor66y47JiB7ZicDQor66y46riw7IiYDQor66y47IiY7IiZDQor66y47ISx6rK9DQor66y47Jyk66qpDQor66y46riw7YOdDQor66y464yA7JqwDQor66y47KSA7Z2sDQor66y47Iq566eMDQor66y46riw7YOdDQor66y47ZW07YOdDQor66y47Iic6raMDQor66y47KeE67O1DQor66y464Ko7IudDQor66y47JiB7KCEDQor66y47IOB6riIDQor66y47KKF7Je0DQor66y464Ko7LKcDQor66y47IOB7YOdDQor66y47ZmN6rK9DQor66y47KCV7IudDQor66y464us7IiYDQor66y47IOB6rCBDQor66y47ZmN6rK9DQor66y464KZ7IicDQor66y464yA7Z2sDQor66y47KSR7Je0DQor66y467OR67SJDQor66y47ISx64+MDQor66y464+Z7IiYDQor66y47LC97IicDQor66y47JiB7IiYDQor66y47IiY6ri4DQor66y465GQ7Je0DQor66y47Jqp7YOcDQor66y47J246re8DQor66y47J286rK9DQor66y466eM7Je0DQor66y47IOB67O1DQor66y47JiB7KCVDQor66y47ISx7KCVDQor66y466eQ7JewDQor66y466qF7ZmYDQor66y466eQ7IudDQor66y466+464W4DQor66y466ek7J6QDQor66y47IOB67aEDQor66y47KSR7Je0DQor66y47J287JilDQor66y466e57KO8DQor66y47YOc7Zi4DQor66y47IOB64yADQor66y47ISd7Je0DQor66y466qF7JqpDQor66y47KKF7IudDQor66y47Z2s7JWgDQor66y464yA7JuQDQor66y466y07JewDQor66y47KCV7ISdDQor66y47JiB7ZmUDQor66y47KeE7ISgDQor66y466+47JiBDQor66y467OR7JWgDQor66y47KKF7ZaJDQor66y466eQ7IiYDQor66y467OR6re8DQor66y47KCV64KoDQor66y47ZWZ7ISdDQor66y467OR7IiZDQor66y467OR7J24DQor66y47JiB7KCQDQor66y464+E7KGwDQor66y47ZW06re8DQor66y467OR7KeADQor66y47IOB7ISgDQor66y47J286riwDQor66y46riI6recDQor66y467O16rOkDQor66y466qF7YOBDQor66y47JuQ7ZmUDQor66y47ISx7ZiBDQor66y467O17IicDQor66y467OR6riwDQor66y46rCR7ZuIDQor66y47J6s7IicDQor66y467O17Je0DQor66y47Iq57YOcDQor66y466qF7IOBDQor66y47Z2s7ZmYDQor66y47IOB64+EDQor66y47ISx7IiZDQor66y47ISg7ZqoDQor66y46rCR7IudDQor66y47IOB656YDQor66y47ISx7KeEDQor66y467OR67CxDQor66y47LC97Je0DQor66y47IOB66qoDQor66y467O16re8DQor66y46riw7Ja4DQor66y47KKF7IicDQor66y47IOB7ISdDQor66y466y47JqwDQor66y47IOB7J6sDQor66y47KCV6rK9DQor66y47IOB7IiYDQor66y464+Z7ZuIDQor66y47ISd6rK9DQor66y47YOc7KO8DQor66y47IOB7IiYDQor66y47JWI7ISxDQor66y46riw7IudDQor66y47LKg7IudDQor66y47IOB7Jq0DQor66y47J6s7KSRDQor66y47KKF7KGwDQor66y47IyN7JuQDQor66y47IOB7JuFDQor66y467O167O1DQor66y47ISx7IiZDQor66y47ZiE656YDQor66y47IOB7ZiEDQor66y47LaY7J6QDQor66y46riw7JuQDQor66y47JiB7Y+sDQor66y47IOB7Zi4DQor66y47YOc7J6QDQor66y46riw7ISgDQor66y47YyQ6rCVDQor66y47IOB7ZmUDQor66y47J6s7JikDQor66y467OR656ADQor66y47YOc7Zi4DQor66y47IOB7Z2gDQor66y47Jqp66OhDQor66y464KZ7IicDQor66y466+47ISgDQor66y47IOB7Z2sDQor66y467OR7ZmUDQor66y47IOB7J6QDQor66y47IiZ7J6QDQor66y47ISg64KoDQor66y47IaM7IiYDQor66y47JiB7ISxDQor66y46rec7KSADQor66y47ISg7Zi4DQor66y47KKF7ZmNDQor66y467SJ6rK9DQor66y47ISd7ZWcDQor66y47ISx7KSADQor66y464+Z7J6QDQor66y47IOB642VDQor66y47JyE7Zi4DQor66y47IS47Je0DQor66y466y47LacDQor66y47KO87YOBDQor66y46rK96rK9DQor66y47Iic6rWsDQor66y47J6l7IiYDQor66y47KeE7JuQDQor66y47Jil67mIDQor66y47Iic66GADQor66y47ZqM67CwDQor66y47Jqp67O1DQor66y47KSA66y4DQor66y47Iic7J6QDQor66y47IOB7IiYDQor66y47JiB7Ja1DQor66y47YOc7J28DQor66y47Iic7KGwDQor66y47ZmN66qFDQor66y466y47IicDQor66y47ISx7JewDQor66y47Iic7ZalDQor66y467SJ7IigDQor66y47YOc6riwDQor66y47ZaJ6ri4DQor66y47Iug7ZiEDQor66y47KeE7ISdDQor66y47ISx7KCEDQor66y46rSR7IigDQor66y47JaR7JuFDQor66y47YOc7J28DQor66y47JiB7IudDQor66y47YyQ7ZmYDQor66y47JiB67O1DQor66y47KKF6riwDQor66y467aE66eMDQor66y47Jyk7ISdDQor66y47JiB7IOBDQor66y47ISx7JWEDQor66y47ISx7JiBDQor66y47J247KSADQor66y47JiB7ISdDQor66y47ZKN7IudDQor66y47JuU6riwDQor66y46rK97Zi4DQor66y47JiB7JikDQor66y47J2A642VDQor66y47YOc7J6EDQor66y47J6s7JeFDQor66y47JiB7LGEDQor66y467OR7JuQDQor66y46riw6re8DQor66y47J247LC9DQor66y47JiB7Z2sDQor66y47IK86riwDQor66y47Jew7IiYDQor66y47IOB7Ja4DQor66y47Jik6rWQDQor66y47Jqp7IicDQor66y47Iah7IicDQor66y47YOc66y4DQor66y47Jil7KO8DQor66y47J6s7Zi4DQor66y4642V6reADQor66y47Z2s7J24DQor66y47Jio7IiZDQor66y47Jqp7YOcDQor66y47Jil656YDQor66y47KKF7IStDQor66y47Jqp7Jq0DQor66y47KCV7J2ADQor66y47ISk6rWtDQor66y47JiB7Zi4DQor66y47Jqw7ISgDQor66y47YOc7IudDQor66y47J247IStDQor66y47Kad7JqwDQor66y47JuF7Je0DQor66y47IiY7IiZDQor66y47LC97LacDQor66y47J247IiYDQor66y47JuQ7LacDQor66y47Iic7IiYDQor66y46rG0642VDQor66y47KKF6ri4DQor66y47J2A6riwDQor66y47J246rWtDQor66y464+E66qoDQor66y466qF642VDQor66y47J2A7IudDQor66y47JuQ7IudDQor66y46rK97ISxDQor66y47YOc7ISdDQor66y47J2E7IOdDQor66y47IaM7ZuIDQor66y47ISx7ZWZDQor66y47ISd7J6QDQor66y47J2R7ZWZDQor66y47J247IudDQor66y47Iug7ZWcDQor66y47Iq57JygDQor66y47J216riwDQor66y46rec7JuQDQor66y464Kc642VDQor66y47ISx6riwDQor66y47J246rOkDQor66y46riw7J6sDQor66y47ISx6regDQor66y47JiB7JilDQor66y47J246riwDQor66y467O16recDQor66y47IOB7LKgDQor66y467OR7Z2sDQor66y47J246riwDQor66y47L6M7LKcDQor66y47Jyk7Z2sDQor66y47IOB7IudDQor66y47J247IiYDQor66y47Iic7Zi4DQor66y47IOB7J6sDQor66y466+87J2YDQor66y47J287KO8DQor66y47IaM7Zi4DQor66y47JiB7ZW0DQor66y47KSR64uIDQor66y47J6l7Jq0DQor66y47JiB6rOkDQor66y47KCV7IicDQor66y47J6s7JqpDQor66y47J6l7Zi4DQor66y47LCs7JqxDQor66y47J6s6rWQDQor66y47JWI7KGwDQor66y47J6s7LKgDQor66y47L6M64+EDQor66y47Jqp7KSADQor66y46ri47KGwDQor66y47J6s7Z2sDQor66y46riw6rCRDQor66y47Zqo7KO8DQor66y47KKF7Zi4DQor66y47KCE6rWtDQor66y47J2A7JqpDQor66y466eM7JuQDQor66y467O17KGwDQor66y47KCE6rWtDQor66y47J217Z2sDQor66y47J6s7Z2sDQor66y47Z2s7Je0DQor66y47KCQ656RDQor66y47ZiE7ZiEDQor66y47JiB6rWQDQor66y465GQ7YOcDQor66y47KCQ67aEDQor66y464yA66+8DQor66y47Iic7ZmYDQor66y47Jyk7JilDQor66y47KCV6rWtDQor66y466eQ7KKFDQor66y47Jm47J6QDQor66y47J6s7IiYDQor66y47KCV67KUDQor66y47JiB7KeEDQor66y47YOc6recDQor66y46re867O1DQor66y47KCV67aEDQor66y47ISx7IiYDQor66y46rK97ZmUDQor66y47KKF7KKFDQor66y47KCV7ISgDQor66y47KeA67SJDQor66y47Jil6raMDQor66y47ISd7ZmYDQor66y47KCV7IiYDQor66y46riI7IiZDQor66y47KCV7Zi4DQor66y47JiB7IiYDQor66y47KCV7IicDQor66y47KCV7IudDQor66y47Jqw7KSADQor66y47J2Y7IiYDQor66y47KCV7IigDQor66y46rG06re8DQor66y466y466C5DQor66y47JiB6rWsDQor66y47KCV7J6QDQor66y47Jik7IicDQor66y47J6s7ISdDQor66y47KCV7JqwDQor66y47KCV7J6QDQor66y47J286rWtDQor66y47KKF6rG4DQor66y46rG07IiYDQor66y47KCV7J6QDQor66y47Jew6re8DQor66y46rK964+ZDQor66y46riw7LKgDQor66y47KCV7J6QDQor66y47ISx7IukDQor66y47Iic7JewDQor66y47J247ISdDQor66y47KCV7Z2sDQor66y47JuQ7KSADQor66y47IaM7ZiEDQor66y466qF7Zi4DQor66y47KKF656YDQor66y47LaU67SJDQor66y466qF7Je0DQor66y47J2Y7YOcDQor66y47KO87ISgDQor66y47JuQ7ZmNDQor66y467O17ZuIDQor66y47Zi47IiYDQor66y47KO87IStDQor66y47LC964KoDQor66y464yA7ZmYDQor66y47Jqp7JiBDQor66y47KO87KKFDQor66y466eM7KO8DQor66y47YOc7Je0DQor66y467OR7Zy0DQor66y47KO87Zi4DQor66y47J6E66eMDQor66y46rK97JikDQor66y47KKF7IiYDQor66y47LCo6rSADQor66y47ISg7ZmNDQor66y47YOc6rWQDQor66y47J6s7KGwDQor66y47LC9656YDQor66y47Lmg7J2ADQor66y466eQ7IiYDQor66y47Jqp7KSADQor66y47LC97IudDQor66y47KKF7JqpDQor66y47IOB7IiYDQor66y467OR7YOdDQor66y47LC97Je0DQor66y47J6s6recDQor66y4642V7IStDQor66y467OR7IudDQor66y47LC97Je0DQor66y47IKs7JewDQor66y466y07JqwDQor66y47KeE7JuQDQor66y47LKg7Jq0DQor66y47Jyh7ISdDQor66y47KeE7IudDQor66y47YOc6rWtDQor66y47LaY7JilDQor66y47IOB7ZWZDQor66y47KO86ri4DQor66y464W46rCRDQor66y47YyQ6raMDQor66y467aE64usDQor66y466eQ7Zi4DQor66y47ZW07ZuIDQor66y47YyQ7IicDQor66y47Iic7JewDQor66y467OR7J28DQor66y47JiB7YOdDQor66y47YyQ7JikDQor66y47KKF7IiYDQor66y47JuQ7Z2sDQor66y47IOB7ZWZDQor66y47YyU67SJDQor66y47JiB64WADQor66y466eM7ISdDQor66y47ZW07ISgDQor66y47ZWE7IicDQor66y47YOc7KO8DQor66y47ZWc7KSADQor66y47ISx7IOBDQor66y47ZWZ7KGwDQor66y47J247JiBDQor66y47J6s7KO8DQor66y46rK96raMDQor66y47ZaJ7ISxDQor66y464us7ISgDQor66y47J247KCVDQor66y47LaY7J28DQor66y47ZiE7J6QDQor66y47IK86raMDQor66y47Jqp7LC9DQor66y46rSR67KUDQor66y47Zi47IudDQor66y466eM7IiYDQor66y47KeA7KGwDQor66y465Od7IudDQor66y47ZmN7J6sDQor66y47KCV7ZWcDQor66y467aE7Z2sDQor66y46raB7KSADQor66y47ZmN7J6sDQor66y47KSR6riwDQor66y47ZW07ZmYDQor66y47Jqp7YOcDQor66y47ZmN7KO8DQor66y47Jqp7ZyYDQor66y47J6l67O1DQor66y47Jyk64+EDQor66y47ZmU7LaYDQor66y47Jyk64KcDQor66y464us7J6EDQor66y47KeE6rWwDQor66y47ZmY7KO8DQor66y46re87Zi4DQor66y464+Z7IOBDQor66y47J6s7IicDQor66y47Zqo7Je0DQor66y46riw7JWgDQor66y47IOB7J28DQor66y465Ox64KoDQor66y47Z2s6rWQDQor66y464us7ZmYDQor66y47KCV6re8DQor66y47ZW07ISdDQor66y47Z2s7ISxDQor66y47Jik7JilDQor66y467OR64+EDQor66y47ZmN7J6QDQor66y47Z2s7IicDQor66y47JiB7IiYDQor66y47Z2s67ORDQor66y47IOB7Zi4DQor66y47Z2s7IudDQor66y466y07LaYDQor66y46rK97ZmUDQor66y466+47Zi4DQor66y47Z2s7JewDQor66y47ISx7JuQDQor66y47IOB7Je0DQor66y47Iq57KO8DQor66y47Z2s7JuQDQor66y47ISx7LKgDQor66y47Jil6regDQor66y466eQ67aEDQor66+86rO17IudDQor66+87J287LKgDQor66+87JiB67O0DQor66+87Iug7KSADQor66+864+E6riwDQor66+87JuQ6ri4DQor66+87Jq07ISdDQor66+87ISx7ZuIDQor66+866y47Z2sDQor66+87IaM7KO8DQor66+87KKF7ZmYDQor66+87J2Y7JuQDQor66+867OR6riwDQor66+87Jyk7Z2sDQor66+87ZmN6re8DQor66+864+E7IiYDQor66+867OR66qpDQor66+867aE6rWsDQor66+87KKF7IicDQor66+867aA7KCVDQor66+867OR7ISxDQor66+86ri467O1DQor66+87IiY7IigDQor66+87KO87KKFDQor66+867OR7JikDQor66+87LC97IiYDQor66+864Ko7J6sDQor66+87ISd7Z2sDQor66+867OR7JikDQor66+87KeE7JqwDQor66+864yA67CxDQor66+86rCV7ZmYDQor66+867OR7JikDQor66+87LC97Zi4DQor66+867OR7JykDQor66+87Jqp7JqxDQor66+867OR7JqwDQor66+87KeE7JqpDQor66+87KCV66qpDQor66+87ISg7IicDQor66+867OR7JqxDQor66+87KCV7JyhDQor66+87YOc7IiZDQor66+87J6s7ZiEDQor66+867OR7LC9DQor66+87KCV7IaMDQor66+87JiB7J6sDQor66+87KCQ7JikDQor66+867OR7LKcDQor66+86rOE7ISdDQor66+87Jyg7J20DQor66+87ISx7ZuIDQor66+867OR7ZiEDQor66+87KO87JeFDQor66+87ZiE7ISdDQor66+86riw6riwDQor66+867O16riwDQor66+87IiZ7J28DQor66+87JiB6rWsDQor66+87KO87ZiEDQor66+867SJ6re8DQor66+8IO2DnA0KK+uvvO2DnOyglQ0KK+uvvOyDgeybkA0KK+uvvOyEneyhsA0KK+uvvOyDge2ajA0KK+uvvOyEseyLnQ0KK+uvvOyduOykgA0KK+uvvOyEseq4sA0KK+uvvO2XjO2drA0KK+uvvOyMje2YhA0KK+uvvO2YuOyImA0KK+uvvOyEseyerA0KK+uvvCDsiJgNCivrr7zsg4HtmIQNCivrr7zsmIHsl7ANCivrr7zsmIHsmrANCivrr7ztmLjrhYQNCivrr7zqsr3smqkNCivrr7zquLDssqANCivrr7zsnqzquLANCivrr7zshLHssKgNCivrr7zrp4zrr7wNCivrr7ztirntlqUNCivrr7zsoJDsiJgNCivrr7zso7zso7wNCivrr7wg6rWQDQor66+86rK97Zi4DQor66+87KKF7ISgDQor66+87J287JewDQor66+87J6s7IiZDQor66+866qF64yADQor66+87KeE64W4DQor66+87KCV6recDQor66+87ZaJ7ZmNDQor66+87Jqp6riwDQor66+87KeE7IiYDQor66+87J6s7ZmYDQor66+87JiB7JWUDQor66+87IK87IiYDQor66+87LCs7IudDQor66+867OR7Je0DQor66+87LKg7IiYDQor66+87IiY7ZmYDQor66+87LC97IudDQor66+87Jm465OdDQor66+87KCV7JiBDQor66+87ISd7J2ADQor66+87LKg7KeEDQor66+87J207IicDQor66+87KCV7IicDQor66+87IiY66eMDQor66+87YOc7IudDQor66+87Zic7IiYDQor66+87JuQ6recDQor66+87J6s6recDQor66+87Zal656ADQor66+87IOB7IudDQor66+87ZKN65OdDQor66+866y46rSADQor66+87ZiE7IiZDQor66+86rK97Z2sDQor66+87J6s66eMDQor66+87IOB7IiZDQor66+87Zic7JuQDQor66+87YOc7J6sDQor66+87KCV7IudDQor66+865Od7KSADQor67CVIOq1kA0KK+uwleyaqeyhsA0KK+uwleyduOq4sA0KK+uwleuvvOyEnQ0KK+uwlSDqt7wNCivrsJXshKDqt7wNCivrsJXsg4HsmKUNCivrsJXsiJjqtowNCivrsJUg7JilDQor67CV6rSR65OdDQor67CV7Jqp6rOkDQor67CV7Jqw7KGwDQor67CVIOyaqQ0KK+uwleycpOuNlQ0KK+uwleuzuOqzpA0KK+uwleyaqeq2jA0KK+uwlSDsmqkNCivrsJXtg5zqsr0NCivrsJXshJ3tlZkNCivrsJXqs4TshJ0NCivrsJUg7J2ADQor67CV6riw7J6sDQor67CV6rK97IiZDQor67CV7YOc7IicDQor67CVIO2biA0KK+uwle2YuO2drA0KK+uwleywrOyImA0KK+uwleuPhOyXtA0KK+uwleqwkeuPhA0KK+uwleycpOyLnQ0KK+uwleyEuOyInA0KK+uwleyEneq3nA0KK+uwleqwkeyDgQ0KK+uwleyerOyYpQ0KK+uwleuNleyasA0KK+uwleyLoOqwkQ0KK+uwleqwkeyEoA0KK+uwle2DnOuztQ0KK+uwle2VtO2YuA0KK+uwleybkO2ZlA0KK+uwleqwkeyImA0KK+uwleuPmeuPmQ0KK+uwleydvO2drA0KK+uwleuPmeyEnQ0KK+uwleqwkeyImA0KK+uwleuPmeyLnQ0KK+uwleqyve2YhA0KK+uwleyepeuqqA0KK+uwleqwkeyInA0KK+uwle2DnOuztQ0KK+uwleygle2VnA0KK+uwleyEseyImQ0KK+uwleqwkeyVhQ0KK+uwleuzke2DnA0KK+uwleyiheyasA0KK+uwleyEse2YhA0KK+uwleqwkeyjvA0KK+uwleyehOyInA0KK+uwle2YgeyInA0KK+uwleyijOq3vA0KK+uwleqwleuzuA0KK+uwley2qeq3vA0KK+uwle2DnOuNlQ0KK+uwleuMgOyXsA0KK+uwleqwleyhsA0KK+uwle2aqO2DnQ0KK+uwleydvOyIoA0KK+uwleyXsOyasA0KK+uwleqxtOuPmQ0KK+uwleqyve2YuA0KK+uwleq4sO2YuA0KK+uwleyYgeuPhA0KK+uwleqyveq3nA0KK+uwleyDgeyGjA0KK+uwleuzte2ZmA0KK+uwle2DnOyehA0KK+uwleqyveq4sA0KK+uwleyYgeq3vA0KK+uwleyEne2YhA0KK+uwleyduOq4uA0KK+uwleqyveuLrA0KK+uwleyduOyihQ0KK+uwle2VtOu0iQ0KK+uwleq4sOyImA0KK+uwleqyveuPmQ0KK+uwleycpOuemA0KK+uwleywrOyVhA0KK+uwleyepeq1rA0KK+uwleqyveuPmQ0KK+uwleyehOq3vA0KK+uwleygle2ZmA0KK+uwleygleyaqQ0KK+uwleqyveyEoA0KK+uwleyInOynhA0KK+uwleyDgeyduA0KK+uwleq1rOyXsA0KK+uwleqyveyImA0KK+uwleuzkeyyoA0KK+uwleq1reqyvQ0KK+uwleyjvOyImA0KK+uwleqyveyImA0KK+uwle2DnOuPmQ0KK+uwleuNley2nA0KK+uwleyYgeyEsQ0KK+uwleqyveyImA0KK+uwleyasO2drA0KK+uwleynhOyhsA0KK+uwley2mO2VnA0KK+uwleqyveyImA0KK+uwleyehOy2nA0KK+uwleyDgeyerA0KK+uwleuCtOyXsA0KK+uwleqyveyIoA0KK+uwleyiheyDnQ0KK+uwleq4sOyErQ0KK+uwleyYpeq4sA0KK+uwleqyveyXtA0KK+uwle2ZlOyVhA0KK+uwle2YleyalA0KK+uwleyXsOuwsA0KK+uwleqyveyYgQ0KK+uwleyyreyyoA0KK+uwleyngOyEnQ0KK+uwleq4uOybkA0KK+uwleqyveyaqQ0KK+uwleyYpOq4uA0KK+uwleuzkeyImA0KK+uwle2DnO2MkA0KK+uwleqyveyasA0KK+uwleyerOyasQ0KK+uwleuylO2ZlA0KK+uwleuvvOyyoA0KK+uwleqyveybkA0KK+uwleuzkeyasA0KK+uwleuqheyEnQ0KK+uwleuNleyEnQ0KK+uwleqyveyerA0KK+uwleq3nOyynA0KK+uwleu0ieyEnQ0KK+uwleuzkeyEnQ0KK+uwleqyveyhsA0KK+uwle2ZjeusuA0KK+uwleywvey2nA0KK+uwleq4iOyImA0KK+uwleqyveykgA0KK+uwleunjOyerA0KK+uwleyMje2YhA0KK+uwleybkOy2mA0KK+uwleqyvey2nA0KK+uwleq0ke2OuA0KK+uwleyerOyEnQ0KK+uwleyatOqyvQ0KK+uwleqyve2YuA0KK+uwleyInOyglQ0KK+uwleyDgeq3vA0KK+uwleunjOyImA0KK+uwleqyve2YuA0KK+uwleuqheq3vA0KK+uwleyLoOyekA0KK+uwleynhOyImA0KK+uwleqyve2ZlA0KK+uwleycpOyyoA0KK+uwleq3vOyXtA0KK+uwleqwkeyImA0KK+uwleqyve2drA0KK+uwleydgOudvQ0KK+uwle2ZjeyImQ0KK+uwleydkeyaqQ0KK+uwleqzhOunjA0KK+uwleyEuOyInA0KK+uwleqyveuTnQ0KK+uwle2VmeyLrA0KK+uwleqzhOyInA0KK+uwle2VmOuTsQ0KK+uwleqyveygkA0KK+uwleusuOybkA0KK+uwleqzhOyInA0KK+uwleyjvO2YuA0KK+uwle2YleyynA0KK+uwle2VhOyYgQ0KK+uwleqzhOyInA0KK+uwle2DnOyLnQ0KK+uwleyerOyEoA0KK+uwle2MkOusuA0KK+uwleqzhOyWkQ0KK+uwleyerO2ZmA0KK+uwleyCrOyekA0KK+uwleyyoOyhsA0KK+uwleqzoOycpA0KK+uwleuPhOunjA0KK+uwleyYge2YuA0KK+uwleuvuOyyoA0KK+uwleqzoeyngA0KK+uwleyDge2DnA0KK+uwleykkeyImA0KK+uwle2XjOyEoA0KK+uwleq0gOyasQ0KK+uwleq4sOuNlQ0KK+uwle2ZmO2DnA0KK+uwleynhOuemA0KK+uwleq0keq3vA0KK+uwleu0ieyynA0KK+uwleyYgeq4sA0KK+uwle2YleyLnQ0KK+uwleq0keq3vA0KK+uwleywrOuPjA0KK+uwle2cmOyynA0KK+uwleyYgeyhsA0KK+uwleq0keq4sA0KK+uwlSDsp4QNCivrsJXstpTsmqkNCivrsJXsm5TssKgNCivrsJXqtJHrsLANCivrsJXtg5ztg5wNCivrsJXrrLjslZQNCivrsJXsooXsiJkNCivrsJXqtJHrsLANCivrsJXslpHrnpgNCivrsJXrs5Htg5wNCivrsJXsmrDshJ0NCivrsJXqtJHruYgNCivrsJXsooXrjZUNCivrsJXrqoXtmLgNCivrsJXqtJHsiJgNCivrsJXqtJHshJ0NCivrsJXtmITsiJgNCivrsJXsoJXrj4QNCivrsJXsooXrjZUNCivrsJXqtJHshKANCivrsJXquLDqs6QNCivrsJXrj5nrj4QNCivrsJXtg5zsmqkNCivrsJXqtJHsiJgNCivrsJXrs5Hrj4QNCivrsJXstpjshJ0NCivrsJXqs4TsiJgNCivrsJXqtJHsiJgNCivrsJXsg4HrqqgNCivrsJXtg5zsiJgNCivrsJXshLHquLgNCivrsJXqtJHsl7QNCivrsJXtlYTrjZUNCivrsJXshLHqs6QNCivrsJXsiJzrnb0NCivrsJXqtJHsl7QNCivrsJXsiJzquLANCivrsJXssL3shK0NCivrsJXsooXroKwNCivrsJXqtJHsmqkNCivrsJXrp4zsiJgNCivrsJXshJ3tj6wNCivrsJXsnYDsoJUNCivrsJXqtJHsmqkNCivrsJXquLDqt7wNCivrsJXtmY3rjZUNCivrsJXssL3qt7wNCivrsJXqtJHsmrENCivrsJXspJHsl7ANCivrsJXtlYTsoJUNCivrsJXtmZjsl7QNCivrsJXqtJHsp4QNCivrsJXsoJXrjZUNCivrsJXstpjstpwNCivrsJXtg5zroKgNCivrsJXqtJHsp4QNCivrsJXqt5zstpgNCivrsJXqtJHrqqgNCivrsJXrs5Hsl7ANCivrsJXqtJHtmLgNCivrsJXrrLTtl4wNCivrsJXsooXsiJwNCivrsJXshLHquLANCivrsJXqtJHtm4gNCivrsJXsuaDtm4gNCivrsJXrqoXtmLgNCivrsJXsspzsi50NCivrsJXqtZDssKwNCivrsJXrjZXqt7wNCivrsJXsiJzsiJgNCivrsJXsiJnsi50NCivrsJXqtazsl7QNCivrsJXsnYTsobANCivrsJXrp5DshJ0NCivrsJXssKjtmZgNCivrsJXqta3so7wNCivrsJXsl7DsiKANCivrsJXsg4HtnawNCivrsJXsg4HsnbQNCivrsJXqt4DsiJwNCivrsJXsmKXtmLgNCivrsJXsiJjsp4QNCivrsJXsg4HsnqUNCivrsJXqt4DtmZgNCivrsJXtg5zrsLANCivrsJXshLHqs6QNCivrsJXrp5DsooUNCivrsJXqt5zqt7wNCivrsJXtmY3siJgNCivrsJXssL3sl7ANCivrsJXtg5zrkZANCivrsJXqt5zrp4wNCivrsJXqsJHsp4QNCivrsJXsirntmLgNCivrsJXqsJXspIANCivrsJXqt5zrtIkNCivrsJXso7zsiKANCivrsJXsnbjsnKgNCivrsJXsnYDsiJgNCivrsJXqt5zsnbQNCivrsJXsg4Htm4gNCivrsJXshLjsl7ANCivrsJXsoJXso7wNCivrsJXqt5zsspwNCivrsJXsmIHtg50NCivrsJXrs5HsiJwNCivrsJXspJHro6ENCivrsJXqt5ztlZkNCivrsJXsmKXsnpANCivrsJXshLHsi50NCivrsJXtlZnsmrANCivrsJXqt5ztnaANCivrsJXrkZDtmLgNCivrsJXstqntmLgNCivrsJXssL3tmZgNCivrsJXqt7zrjZUNCivrsJXsg4HsmYQNCivrsJXrhbjshLENCivrsJXrj5ntmIQNCivrsJXqt7zrsLANCivrsJXsmIHsp4QNCivrsJXsmIHtmLgNCivrsJXsmrDqta0NCivrsJXqt7zrsLANCivrsJXquLDrjZUNCivrsJXrs7Xsg4ENCivrsJXsoJXsnpANCivrsJXqt7zsiJwNCivrsJXtg5zrsLANCivrsJXsg4HsnbwNCivrsJXrqoXri6wNCivrsJXqt7zsi50NCivrsJXqsr3shKANCivrsJXquLDspIANCivrsJXrs7XtnawNCivrsJXqt7zsmIENCivrsJXshLHsnqwNCivrsJXrtoDtmZgNCivrsJXsl7Dqt5wNCivrsJXqt7zsmrANCivrsJXsiJzsiJkNCivrsJXtlZztmLgNCivrsJXrrLTsmIENCivrsJXqt7zsnKQNCivrsJXshozsmrANCivrsJXsoJXqt5wNCivrsJXsg4HtmowNCivrsJXqt7zsnKQNCivrsJXrs7TtmLgNCivrsJXquLjsl7ANCivrsJXsmIHrqoUNCivrsJXqt7zsnpANCivrsJXsg4HsiJgNCivrsJXsoJXsl7QNCivrsJXtmITtnawNCivrsJXqt7ztlbQNCivrsJXshJ3ssqANCivrsJXri6zrnoANCivrsJXsmqnsi50NCivrsJXqt7ztmZQNCivrsJXsgqzslZQNCivrsJXtmZjsooUNCivrsJXquLDsg4ENCivrsJXqt7ztnawNCivrsJXrp4zshJ0NCivrsJXri7TsiJgNCivrsJXsnbjspIANCivrsJXquIjshJ0NCivrsJXsiJntmY0NCivrsJXshLHrs5ENCivrsJXssL3si50NCivrsJXquIjsl7ANCivrsJXsiJzsnpANCivrsJXsooXqs6QNCivrsJXssL3qtIANCivrsJXquIjso7wNCivrsJXsmqnsmYQNCivrsJXstpjsi50NCivrsJXsirnsi50NCivrsJXquLDqs6QNCivrsJXrr7zsnbQNCivrsJXsoJXtm4gNCivrsJXsmIHsiJwNCivrsJXquLDrqqgNCivrsJXso7zsiJwNCivrsJXqt5zsmIENCivrsJXtg5zqs4QNCivrsJXquLDrrLgNCivrsJXrgpnsnbQNCivrsJXqsr3snpANCivrsJXsirnrk50NCivrsJXquLDrtIkNCivrsJXshLHsmKQNCivrsJXquIjtmLgNCivrsJXquIjsiJwNCivrsJXquLDrtIkNCivrsJXsmIHsi50NCivrsJXsgrzsgrwNCivrsJXsnYDtmZgNCivrsJXquLDshLENCivrsJXsnpDshJ0NCivrsJXssqDtl4wNCivrsJXqsbTsm5ANCivrsJXquLDshLENCivrsJXqsJHrjZUNCivrsJXsnqzsooUNCivrsJXquLDsiJgNCivrsJXquLDsiJwNCivrsJXrjIDrj5kNCivrsJXrr7zsl7ANCivrsJXsmbjqsr0NCivrsJXquLDsmKUNCivrsJXsnqzrtIkNCivrsJXsmIHtmZQNCivrsJXtg5zssqANCivrsJXquLDsmYQNCivrsJXsm5DshKANCivrsJXsnqztg50NCivrsJXsiJzsl7QNCivrsJXquLDsm5ANCivrsJXsmIHqt7wNCivrsJXtg5zqsr0NCivrsJXsmIHshJ0NCivrsJXquLDsm5ANCivrsJXsmIHsl6wNCivrsJXsp4TtnawNCivrsJXsmIHtmLgNCivrsJXquLDsoJUNCivrsJXsvozshJ0NCivrsJXsnqztg5wNCivrsJXrs5HshJ0NCivrsJXquLDsooUNCivrsJXtmZTtnawNCivrsJXtlZnsmIENCivrsJXsnbjtg5wNCivrsJXquLDtg5wNCivrsJXrs5Htg5wNCivrsJXtmITsmrANCivrsJXsmIHtg5wNCivrsJXquLDtg5wNCivrsJXsmrDtg5wNCivrsJXsiJjrp4wNCivrsJXsnbzsiJwNCivrsJXquLDtg5wNCivrsJXrjIDsiJwNCivrsJXqs4TsnbUNCivrsJXslYjso7wNCivrsJXquLDtg50NCivrsJXtg5zqsJENCivrsJXsm5DrspQNCivrsJXsooXtmIQNCivrsJXquLDtmIQNCivrsJXquLDquLANCivrsJXrj4TsnqwNCivrsJXsspzssKwNCivrsJXquLDtmIQNCivrsJXtmLjshKANCivrsJXsnqXshK0NCivrsJXqsJHrp4wNCivrsJXquLDtmY0NCivrsJXquIjsnbUNCivrsJXsmIHqtZANCivrsJXrj4Tqt5wNCivrsJXquLDtmY0NCivrsJXsg4HtnawNCivrsJXsl7Dso7wNCivrsJXspJHsnbgNCivrsJXquLDtmY0NCivrsJXquLDsiJgNCivrsJXqt5ztnawNCivrsJXsg4HtnaANCivrsJXquLDtmY0NCivrsJXso7zsnbwNCivrsJXsg4HssKwNCivrsJXrr7zrp4wNCivrsJXquLDtmZQNCivrsJXsmqntj4kNCivrsJXsnqztnaANCivrsJXsoJXtmZgNCivrsJXquLDtm4gNCivrsJXrs5HtmLgNCivrsJXsirnqtowNCivrsJXrr7jtmZQNCivrsJXquLjtmqgNCivrsJXqsr3rjZUNCivrsJXsoJXsmYQNCivrsJXshLHsobANCivrsJXrgpntlZgNCivrsJXssKjrsLANCivrsJXsooXsiJwNCivrsJXspIDroYANCivrsJXrgqjshJ0NCivrsJXqsr3qtowNCivrsJXrp4zsoJUNCivrsJXsiJzsiJgNCivrsJXrgqjsiJkNCivrsJXssL3qt5wNCivrsJXtmLjsobANCivrsJXtlZnshK0NCivrsJXrgqjsi50NCivrsJXtjJDrj5kNCivrsJXqtJHsmrQNCivrsJXsoJXtg5wNCivrsJXrgqjsoJUNCivrsJXsnYTsnbwNCivrsJXsiJztmowNCivrsJXtg5zsp4QNCivrsJXrhbjqsJENCivrsJXsg4HtmZQNCivrsJXsmIHsi50NCivrsJXsoJXsnpANCivrsJXrhbjqsJENCivrsJUg6re8DQor67CV66+47KSADQor67CV7J6s7KO8DQor67CV64W46raMDQor67CV6riw7KeEDQor67CV7Zi47ZuIDQor67CV64yA7IudDQor67CV64W46riwDQor67CV7ISx7ISgDQor67CV7ISd7JqpDQor67CV66eM67KUDQor67CV64W466eMDQor67CV7JyE7JilDQor67CV7ISx6rK9DQor67CV7KeE7ZWEDQor67CV64W467aEDQor67CV7J6s7JilDQor67CV7IOB7J6QDQor67CV7YyU67CwDQor67CV64W47IicDQor67CV7ISx642VDQor67CV64us7Zi4DQor67CV7JiB642VDQor67CV64W47IugDQor67CV7IiZ7ZiEDQor67CV7YOc7IiYDQor67CV7YOc7ZiBDQor67CV64W47Je0DQor67CV7IiY7ZicDQor67CV7Je87ISdDQor67CV7KCV67aEDQor67CV64W47JiBDQor67CV6rSR64+ZDQor67CV7Ius66OhDQor67CV6rK97Zi4DQor67CV64W47JqpDQor67CV7J246recDQor67CV7J2464+EDQor67CV7JiB7IOdDQor67CV64W47JykDQor67CV7ZmN6recDQor67CV7KKF7Zi4DQor67CV7Jil67CwDQor67CV64W47JykDQor67CV7JiB7KSADQor67CV7JiB7JqpDQor67CV7ZWZ6re8DQor67CV64W47KCVDQor67CV7JuQ6recDQor67CV7Iic7IicDQor67CV7Jq07JykDQor67CV64W47LKgDQor67CV7J6s6rK9DQor67CV64+Z7ZGcDQor67CV7IS464+EDQor67CV64W47ZWZDQor67CV7LC97IiYDQor67CV7Iic7IOBDQor67CV7J2Y7IiYDQor67CV64W47ZiEDQor67CV7KKF7Zi4DQor67CV7KCV7JuFDQor67CV7KSA7JqpDQor67CV64W47ZmUDQor67CV7YOc7IigDQor67CV7J6E6recDQor67CV6rK96recDQor67CV64us6recDQor67CV7KCV7J28DQor67CV6re87IStDQor67CV7LC97KSADQor67CV64us7ISgDQor67CVIOyImQ0KK+uwleq2jOyInA0KK+uwleu0ieu0iQ0KK+uwleuLrOyImA0KK+uwleygleyEsQ0KK+uwleuNle2YuA0KK+uwleuPmeyehA0KK+uwleuLrOyaqQ0KK+uwleuFuO2ZjQ0KK+uwle2VnOyekA0KK+uwleyEneyInA0KK+uwleuLrO2ajA0KK+uwleygle2ZmA0KK+uwleybkOyEoA0KK+uwleuLrOuCqA0KK+uwleuMgOyEsQ0KK+uwleyerOyekA0KK+uwle2VtOyjvA0KK+uwleyYgeu0iQ0KK+uwleuMgOyEsQ0KK+uwleygleydvA0KK+uwleyZleyekA0KK+uwleynhO2YuA0KK+uwleuMgOyEsQ0KK+uwleywveyImA0KK+uwleqwkeyEsQ0KK+uwle2Yle2DnA0KK+uwleuMgOyEsQ0KK+uwleq3vOyyoA0KK+uwleywveq3vA0KK+uwleq4uOyEoA0KK+uwleuMgOyLnQ0KK+uwleyDgeyXtA0KK+uwleyEseyhsA0KK+uwleuzkeydvA0KK+uwleuMgOyLnQ0KK+uwleqyve2YuA0KK+uwle2DnOyYpQ0KK+uwleq4sOykgA0KK+uwleuMgOybkA0KK+uwleyImOyLpA0KK+uwleuqheyekA0KK+uwleuqhe2DnA0KK+uwleuMgOyyoA0KK+uwleuPmeyYgQ0KK+uwle2Vme2YuA0KK+uwleq3nOq4sA0KK+uwleuMgO2YlQ0KK+uwle2biOyVlA0KK+uwleyYpOyhsA0KK+uwleyiheuztQ0KK+uwleuNleq3vA0KK+uwle2MkOyyoA0KK+uwleyCvOyekA0KK+uwle2DnOq1rA0KK+uwleuNleyInA0KK+uwle2YuOu0iQ0KK+uwleyepeq4sA0KK+uwleqyveuCqA0KK+uwleuNleyVlA0KK+uwleuPmeyaqQ0KK+uwleyImOyEoA0KK+uwleycpOy2mA0KK+uwleuNleydtA0KK+uwleynhOuNlQ0KK+uwleyWteyEsQ0KK+uwleyYpeyLnQ0KK+uwleuPhOq4iA0KK+uwleqzhOyyoA0KK+uwleydgO2ZmA0KK+uwleyepeybkA0KK+uwleuPhOyEoA0KK+uwleygnOyasA0KK+uwleyYgeyYgQ0KK+uwle2YhOyImA0KK+uwleuPhO2ZmA0KK+uwleq3nO2ZlA0KK+uwleyatOyLnQ0KK+uwle2VmOyImQ0KK+uwleuPhO2ZmA0KK+uwleyduO2YuA0KK+uwleyYge2YuA0KK+uwleyaqeusuA0KK+uwleuPiO2XjA0KK+uwleyYgeydvA0KK+uwleygleq4sA0KK+uwleuMgO2VmA0KK+uwleuPmeq3vA0KK+uwleu0ieq4sA0KK+uwleq3oO2YuA0KK+uwleyaseu2hA0KK+uwleuPmeq4uA0KK+uwleyEuO2DnQ0KK+uwleyyreyerA0KK+uwle2VhO2DnA0KK+uwleuPmeuqhQ0KK+uwleuNleyInA0KK+uwleq0keyasA0KK+uwleyihe2YhA0KK+uwleuPmeuqhQ0KK+uwleyDgeuPjA0KK+uwleygle2DnA0KK+uwleyYgeq3nA0KK+uwleuPmeyEsQ0KK+uwleq4iOq3nA0KK+uwleuzkeqyvQ0KK+uwleqyveyXsA0KK+uwleuPmeyImA0KK+uwleyiheydvA0KK+uwleyYgeyekA0KK+uwleuMgOqzpA0KK+uwleuPmeyImA0KK+uwle2YnOyEoA0KK+uwleyDge2YuA0KK+uwle2drOyLnQ0KK+uwleuPmeyImA0KK+uwleuzke2ZlA0KK+uwleydmOydtA0KK+uwleyaqeyEoA0KK+uwleuPmeyImQ0KK+uwleq0keydvA0KK+uwleyasO2ZmA0KK+uwleq0ke2RnA0KK+uwleuPmeyLnQ0KK+uwleqyveyyoA0KK+uwleyiheydvA0KK+uwleuqheyngQ0KK+uwleuPmeyLnQ0KK+uwleyatOyInA0KK+uwleyEseyImQ0KK+uwleyDgeuvvA0KK+uwleuPmeyXtA0KK+uwleu0ieuztQ0KK+uwleq3vOyhsA0KK+uwleuqheykgA0KK+uwleuPmeyXtA0KK+uwleygleyLnQ0KK+uwleyLoOyIoA0KK+uwleyasOyyoA0KK+uwleuPmeyYgQ0KK+uwleuzkeyEoA0KK+uwleygleyYpQ0KK+uwleuCmeydtQ0KK+uwleuPmeyaqQ0KK+uwleyEneyglQ0KK+uwleq4sOuPmQ0KK+uwleyYpe2YuA0KK+uwleuPmeyasQ0KK+uwleyYgeyLnQ0KK+uwleuMgO2YhA0KK+uwley2qe2DnQ0KK+uwleuPmeyatA0KK+uwleuzteydtA0KK+uwleyiheunjA0KK+uwleq4sOyhsA0KK+uwleuPmeydvA0KK+uwleyerO2YlQ0KK+uwleunkOyImA0KK+uwleqzhOyImA0KK+uwleuPmeydvA0KK+uwleyDgeyXsA0KK+uwle2DnOq4sA0KK+uwleygkOyInA0KK+uwleuPmeyekA0KK+uwleyaqeuNlQ0KK+uwleuNleq1rA0KK+uwleyYgeugqA0KK+uwleuPmeyglQ0KK+uwleygleq3vA0KK+uwleyDge2VnA0KK+uwle2drO2YuA0KK+uwleuPmeykgA0KK+uwleyerOyEsQ0KK+uwleqyveyEsQ0KK+uwleuNleyLpA0KK+uwleuPmeykgA0KK+uwleyYgeygnA0KK+uwleuCqOyasQ0KK+uwleyaqe2ZmA0KK+uwleuPmeykgA0KK+uwle2VtO2drA0KK+uwleyerOyasA0KK+uwleunkOuwsA0KK+uwleuPmeyynA0KK+uwleyyoOycqA0KK+uwleqwleq3vA0KK+uwleyDgeydvA0KK+uwleuPmeyyoA0KK+uwleqwke2ZmA0KK+uwleyYgeuTnQ0KK+uwleusuOyXtA0KK+uwleuPmeyyoA0KK+uwleyYgeu0iQ0KK+uwleyYgeyImA0KK+uwle2MkO2YhA0KK+uwleuPmey2mA0KK+uwleyduOyYgQ0KK+uwleygleq3nA0KK+uwleydhOqzoA0KK+uwleuPme2XjA0KK+uwle2DneydvA0KK+uwleyDgeyasA0KK+uwleycpOyYgQ0KK+uwleuRkOyaqQ0KK+uwleyEseuNlQ0KK+uwleygle2ZlA0KK+uwleyInOyImQ0KK+uwleuRkOydtQ0KK+uwleydmOydtA0KK+uwleqwkeuvvA0KK+uwle2DnOyIoA0KK+uwleuRkO2XjA0KK+uwleunjOyghA0KK+uwleq0gOybkA0KK+uwleykgOyYpQ0KK+uwleuRkO2YuA0KK+uwley5mOyLnQ0KK+uwleq1kO2YuA0KK+uwleywve2ZmA0KK+uwleuRkO2ZmA0KK+uwleyYgeusuA0KK+uwleyYgeunjA0KK+uwleyaqe2ZmA0KK+uwleuRkO2drA0KK+uwleygkOyYgQ0KK+uwleuFuOyInA0KK+uwleyerO2YhA0KK+uwleuTneq3vA0KK+uwleynhOyImA0KK+uwleyEoOyLnQ0KK+uwleyInOyLnQ0KK+uwleuemO2VmA0KK+uwleywveyLnQ0KK+uwleq4sOyaqQ0KK+uwleyerO2aqA0KK+uwleunieuemA0KK+uwleq4uO2YuA0KK+uwleusuOyLnQ0KK+uwlSDsiJgNCivrsJXrp4zqt5wNCivrsJXsoJXshJ0NCivrsJXtnazsiJwNCivrsJXsoJXsnpANCivrsJXrp4zqt5wNCivrsJXsg4HtnawNCivrsJXsoJXspIANCivrsJXqt4DsmrQNCivrsJXrp4zshJ0NCivrsJXsmIHssYQNCivrsJXrp5DsmIENCivrsJXrs5HqsJENCivrsJXrp4zsiJgNCivrsJXsnqztnawNCivrsJXtmZTsm4UNCivrsJXtmITsmKQNCivrsJXrp4zsiJgNCivrsJXtg5zshJ0NCivrsJXtmITsmqkNCivrsJXsmrHqt5wNCivrsJXrp4zsiJgNCivrsJXsooXsmqkNCivrsJXrj5nssqANCivrsJXrs5HrjIANCivrsJXrp4zsi6wNCivrsJXtg5zsm5ANCivrsJXtlZzrj5kNCivrsJXtlbTtmZgNCivrsJXrp4zsoJUNCivrsJXtnazsmqkNCivrsJXsmIHsiJwNCivrsJXtg5zsooUNCivrsJXrp4zsobANCivrsJXsnbztmLgNCivrsJXshozqsr0NCivrsJXsiJjqs6QNCivrsJXrp4zstpwNCivrsJXsmIHtlZkNCivrsJXrs5HsmIENCivrsJXrrLTso7wNCivrsJXrp4ztnaANCivrsJXsoJXsuZkNCivrsJXqs4TroKwNCivrsJXsm5Tsi50NCivrsJXrp5DsiJgNCivrsJXqt5ztnawNCivrsJXtlbTstpwNCivrsJXrjIDstIgNCivrsJXrp5DsiJwNCivrsJXsnYDsiJgNCivrsJXsmqnqt5wNCivrsJXssKjsobANCivrsJXrp5DsiJwNCivrsJXrs7TsnbQNCivrsJXshLHtmIQNCivrsJXrs5HshJ0NCivrsJXrp5DsobANCivrsJXsnYTsl7QNCivrsJXsirnrgqgNCivrsJXqt5zsmrQNCivrsJXrp5DstpwNCivrsJXtg5zsiJgNCivrsJXsoJDtlZkNCivrsJXtg5ztlqUNCivrsJXrp5DtlZwNCivrsJXshozqt5wNCivrsJXsiJzqt7wNCivrsJXsiKDrqqgNCivrsJXrqoXrj4wNCivrsJXqta3spIANCivrsJXsoJXquLgNCivrsJXqt5zsp4QNCivrsJXrqoXrtIkNCivrsJXsnqXsmqkNCivrsJXqtJHshKANCivrsJXtlZzqsr0NCivrsJXrqoXsi50NCivrsJXtl4zssqANCivrsJXsoJXso7wNCivrsJXqsr3smKUNCivrsJXrqoXsmKUNCivrsJXssqDsiJkNCivrsJXsnYTtmIQNCivrsJXsnoTtkZwNCivrsJXrqoXsmqkNCivrsJXssKjtmZgNCivrsJXtlbTtlZwNCivrsJXssqDtg50NCivrsJXrqoXsnoQNCivrsJXrr7ztg50NCivrsJXtmZTsl7QNCivrsJXsooXsmIENCivrsJXrqoXsp4QNCivrsJXsm5DsnqwNCivrsJXtmY3tnawNCivrsJXtlZzsmIENCivrsJXrqoXssqANCivrsJXsg4HsiJgNCivrsJXsp4TshKANCivrsJXrjZXqtZANCivrsJXrqoXtlZwNCivrsJXtla3quLANCivrsJXspJHsuaANCivrsJXrs5HsiJgNCivrsJXrqoXtmLgNCivrsJXrjIDroZ0NCivrsJXsoJDsmqkNCivrsJXrs7Tsl7QNCivrsJXrqoXtmLgNCivrsJXsnqzsiJgNCivrsJXqsr3shK0NCivrsJXsiJjqtawNCivrsJXrqoXtmowNCivrsJXsnYDsnpANCivrsJXtg5zri6wNCivrsJXsooXrnoANCivrsJXrqoXtnawNCivrsJXrs5HsmKQNCivrsJXrrLTsiJwNCivrsJXsmIHssqANCivrsJXrrJjrhYQNCivrsJXsjI3qs6QNCivrsJXsmIHrj4wNCivrsJXsooXsiJgNCivrsJXrrLTquLgNCivrsJXslrjsnZENCivrsJXsoJXshJ0NCivrsJXrr7jtm4gNCivrsJXrrLTsm4UNCivrsJXsoJDsm5ANCivrsJXtg5zsmqkNCivrsJXssKjsiJgNCivrsJXrrLTsm4UNCivrsJXqtJHsp4QNCivrsJXqt5zsmrQNCivrsJXtmY3smqkNCivrsJXrrLTtmLgNCivrsJXssKjssKwNCivrsJXspIDshJ0NCivrsJXsg4HrjZUNCivrsJXrrLTtmZgNCivrsJXsooXquLANCivrsJXqsJHsmqkNCivrsJXqt4Dqt7kNCivrsJXrrLjqsJENCivrsJXrqoXqt7wNCivrsJXtmJXsmrANCivrsJXqtJHsi50NCivrsJXrrLjqtowNCivrsJXtjJDrtoQNCivrsJXrjIDsm5ANCivrsJXsmKXtmIQNCivrsJXrrLjqt5wNCivrsJXrs5HtmZgNCivrsJXtmY3ssqANCivrsJXsl4XshKANCivrsJXrrLjsiJgNCivrsJXsiJjtmLgNCivrsJXsmIHsi50NCivrsJXshKTsnKQNCivrsJXrrLjsi50NCivrsJXtlbTroKgNCivrsJXtlYTsl6wNCivrsJXsnYDsi50NCivrsJXrrLjsobANCivrsJXsmIHsiJgNCivrsJXrs5HsoJUNCivrsJXrs7TrqoUNCivrsJXrrLjsobANCivrsJXsmrTsiJwNCivrsJXshLHtmLgNCivrsJXsspzslYUNCivrsJXrrLjssqANCivrsJXtnazssqANCivrsJXrs5HsmIENCivrsJXso7zsnbQNCivrsJXrrLjtmLgNCivrsJXshLHslYUNCivrsJXsmqnroKgNCivrsJXtg5zsnbwNCivrsJXrrLjtnawNCivrsJXtjJDsooUNCivrsJXshJ3tmJUNCivrsJXrj5nssqANCivrsJXrr7jsnpANCivrsJXshLHquLANCivrsJXtlbTsiJwNCivrsJXtg5zqt5wNCivrsJXrr7jsnpANCivrsJXsnITrj4QNCivrsJXqsJXrsLANCivrsJXtlZzqtawNCivrsJXrr7jsnpANCivrsJXsoJXsmrQNCivrsJXsmIHrjZUNCivrsJXssL3tnawNCivrsJXrr7jsoJUNCivrsJXshLHtmLgNCivrsJXsg4HtmIQNCivrsJXsooXsmIENCivrsJXrr7jtmZQNCivrsJXsmKTtnawNCivrsJXsoJXtmIQNCivrsJXsiKDsobANCivrsJXrr7zsmrANCivrsJXsp4Tsi50NCivrsJXshLHrp4wNCivrsJXssKjqsr0NCivrsJXrsKnsnpANCivrsJXshLHtmZQNCivrsJXrjZXtj4kNCivrsJXsoJzqtawNCivrsJXrspTtg5wNCivrsJXrs5HsiJgNCivrsJXsjI3rjIANCivrsJXsoJXtmLgNCivrsJXrs5HqtawNCivrsJXrs5HsnqwNCivrsJXrgqjsmIENCivrsJXtg5zroZwNCivrsJXrs5Hqt7wNCivrsJXquLDsiJgNCivrsJXsoJXtnawNCivrsJXqsr3tnawNCivrsJXrs5HquLANCivrsJXrqoXssL0NCivrsJXsooXsiJwNCivrsJXsnYDshKANCivrsJXrs5HquLANCivrsJXqtJHrs7QNCivrsJXtmZTsi50NCivrsJXrr7jrnpgNCivrsJXrs5HquLANCivrsJXsmKXsnpANCivrsJXtg5zsl7QNCivrsJXrjIDrtIkNCivrsJXrs5HrgqgNCivrsJXshJ3qsr0NCivrsJXsmqnsnbQNCivrsJXsmIHsiJgNCivrsJXrs5Hrpr0NCivrsJXsmqntlZwNCivrsJXsp4TqtawNCivrsJXsoJXquLANCivrsJXrs5HrqqkNCivrsJXsoJDsnbwNCivrsJXtmITrr7wNCivrsJXsmIHtmZgNCivrsJXrs5HshKANCivrsJXsiKDsi50NCivrsJXsirnsnKgNCivrsJXrs5HsnpANCivrsJXrs5HsiJwNCivrsJXquIjsnpANCivrsJXqsr3smrQNCivrsJXsnqzssqANCivrsJXrs5HsmqkNCivrsJXtlZztmLgNCivrsJXsnqzsmIENCivrsJXsoJDslYUNCivrsJXrs5HsmqkNCivrsJXrjZXtmIQNCivrsJXsmIHsi50NCivrsJXsg4HrjZUNCivrsJXrs5Hsp4QNCivrsJXssL3tnawNCivrsJXtlZnsiJgNCivrsJXsnYDsi50NCivrsJXrs5HsspwNCivrsJXsm5Dsi50NCivrsJXsiJjsnoQNCivrsJXsmqntmLgNCivrsJXrs5Htl4wNCivrsJXsnqzsiJwNCivrsJXrr7zsiJgNCivrsJXsoJzshJ0NCivrsJXrs5HtmLgNCivrsJXqsr3siJgNCivrsJXsiJzrprwNCivrsJXsoJXsooUNCivrsJXrs5HtmLgNCivrsJXsnKTsp4ANCivrsJXsirntnawNCivrsJXsoJXsiKANCivrsJXrs5HtmLgNCivrsJXtg5ztlZwNCivrsJXsmqntmIQNCivrsJXsoJXtnawNCivrsJXrs7Tqt7wNCivrsJXtlbTsnpANCivrsJXqsIjrnoANCivrsJXsm4XshLgNCivrsJXrs7Xqt7wNCivrsJXstpjrj4QNCivrsJXsnKTsm4UNCivrsJXsnKTsiKANCivrsJXrs7XrgpwNCivrsJXrqoXqtZANCivrsJXshLHshJ0NCivrsJXsnITshJ0NCivrsJXrs7Xrp4wNCivrsJXshKDslZQNCivrsJXsiJjrtoANCivrsJXsnbTrqoUNCivrsJXrs7Xsl7ANCivrsJXtnaztmZgNCivrsJXsm5DsnpANCivrsJXsoJXsoJUNCivrsJXrtInqt7wNCivrsJXquLDquLgNCivrsJXsp4TtmLgNCivrsJXqt7zqt6ANCivrsJXrtInquLANCivrsJXsiJzsmrQNCivrsJXtmY3sobANCivrsJXrj5ntnawNCivrsJXrtInrs5ENCivrsJXqt5ztnawNCivrsJXsnbzspJENCivrsJXrrLTsg4ENCivrsJXrtInsg4ENCivrsJXsnqzsg50NCivrsJXrj5nrs7QNCivrsJXsiJzsoJUNCivrsJXrtInshJ0NCivrsJXrjZXqtowNCivrsJXsoJzrjZUNCivrsJUg6ri4DQor67CV67SJ7LacDQor67CV7KeA7KGwDQor67CV6rK97KeEDQor67CV7IiZ7JqpDQor67CV67SJ7ZWYDQor67CV7ISd7Z2sDQor67CV7JiB64+MDQor67CV7JiB6ri4DQor67CV67SJ7ZmYDQor67CV7KSA7KSADQor67CV7KCV7LCsDQor67CV7KCV7Zi4DQor67CV67aE7ISgDQor67CV7KKF7ZWEDQor67CV7Jyk6rOkDQor67CV7IK87ZmYDQor67CV67aE7IigDQor67CV7IOB65GQDQor67CV7JiB7IudDQor67CV64+E7KO8DQor67CV67aE7J20DQor67CV6rec7ZuIDQor67CV7JmE7ZWZDQor67CV67SJ7IudDQor67CV7IK864+ZDQor67CV6rec67O1DQor67CV7KCV7IudDQor67CV7Jqw7IicDQor67CV7IK87IigDQor67CV7JuQ7ISxDQor67CV66eM7JuQDQor67CV7YOc7IKwDQor67CV7IK87JWUDQor67CV7Jik7IOBDQor67CV7YOc7Zi4DQor67CV7JiB64+MDQor67CV7IK87KGwDQor67CV7Kad7JilDQor67CV7IOB7IicDQor67CV7Iic7IudDQor67CV7IK87KGwDQor67CV7Z2s65OdDQor67CV7J6E6raMDQor67CV7J6s66qoDQor67CV7IK87LacDQor67CV7KeE7J6sDQor67CV7JiB7LKcDQor67CV6rSR7Z2sDQor67CV7IK87ZeMDQor67CV7Jqp7JuQDQor67CV64+Z7LKgDQor67CV6rCV67SJDQor67CV7IOB6rWsDQor67CV7ISx7ZWYDQor67CV6riw67O1DQor67CV64Kc64+ZDQor67CV7IOB6recDQor67CV6rec7Zi4DQor67CV66qF7ZmYDQor67CV7Zqo7JqpDQor67CV7IOB6recDQor67CV66y46riwDQor67CV6rCR7IicDQor67CV67O17IiYDQor67CV7IOB6recDQor67CV7KeA7J20DQor67CV6rK966GADQor67CV7IOB7IudDQor67CV7IOB6recDQor67CV7J6s7Zi4DQor67CV7JiB7Zi4DQor67CV7Iic7J6EDQor67CV7IOB6riwDQor67CV6rCR64+ZDQor67CV7Iq564KoDQor67CV7JiB7ISgDQor67CV7IOB6ri4DQor67CV7J6l7ZmYDQor67CV7J287IiYDQor67CV7Iic7IStDQor67CV7IOB64usDQor67CV6rWQ7KO8DQor67CV6rSA7IiZDQor67CV7ZW0642VDQor67CV7IOB64+EDQor67CV6ri47ZWYDQor67CV7Zi47IiZDQor67CV7J28656ADQor67CV7IOB66GdDQor67CV6riw7ZmYDQor67CV7Iic7IudDQor67CV7J2E7J6QDQor67CV7IOB66WgDQor67CV7IiY7IiYDQor67CV64+Z7JuQDQor67CV6rSR7J20DQor67CV7IOB66eMDQor67CV7ZWZ67KUDQor67CV7J2E64+ZDQor67CVIOyerA0KK+uwleyDgeuylA0KK+uwleqyveu0iQ0KK+uwle2DnOyLnQ0KK+uwle2DnOq1kA0KK+uwleyDgeyEnA0KK+uwleyiheyekA0KK+uwleyerOyekA0KK+uwleykkeyImA0KK+uwleyDgeyImA0KK+uwleqyve2YuA0KK+uwle2XjOynhA0KK+uwleyerOyImA0KK+uwleyDgeyInA0KK+uwleyEseyekA0KK+uwleyduOyImA0KK+uwle2YhOyLnQ0KK+uwleyDgeyIoA0KK+uwleq3nOybkA0KK+uwleyduOyLnQ0KK+uwlSDtmIQNCivrsJXsg4Hsi50NCivrsJXrs5HsmrANCivrsJXsnKTsmqkNCivrsJXtmJXsmKUNCivrsJXsg4Hsi50NCivrsJXsnYDtg5wNCivrsJXsiJjtmLgNCivrsJUg7ZmUDQor67CV7IOB7JewDQor67CV7J247ZiEDQor67CV7KKF6rWsDQor67CV7J6l7IOBDQor67CV7IOB7Je0DQor67CV7Y+J7Zi4DQor67CV7ZW07ZiEDQor67CV7Iic7JilDQor67CV7IOB7JilDQor67CV67OR6riwDQor67CV64Ko7KeEDQor67CV67SJ64WEDQor67CV7IOB7JqpDQor67CV642V7Zi4DQor67CV66eQ7ZuIDQor67CV7JuQ7KCEDQor67CV7IOB7JqpDQor67CV66eM64+MDQor67CV7YOc7KO8DQor67CV66qF7LKgDQor67CV7IOB7JqxDQor67CV7JiB7LKgDQor67CV7IOB7LacDQor67CV7JiB6re8DQor67CV7IOB7JykDQor67CV7IiY7IicDQor67CV7KCV7IOBDQor67CV7YOc7IiYDQor67CV7IOB7YOcDQor67CV7Jqp6529DQor67CV7JiB7IiYDQor67CV7J287ZmYDQor67CV7IOB7YOcDQor67CV7J2A7JikDQor67CV64us7IiYDQor67CV7IyN7KadDQor67CV7IOB7ZiEDQor67CV7Jqp7IiYDQor67CV7KCV7J6QDQor67CV64+Z6recDQor67CV7IOB7Zi4DQor67CV7KeE7JuQDQor67CV7JiB7KGwDQor67CV7YyQ7IiYDQor67CV7IOB7ZmNDQor67CV7J2Y7IiYDQor67CV7YOc7J6sDQor67CV66qF66qoDQor67CV7IOB7ZuIDQor67CV67KU6recDQor67CV7JiB6rWQDQor67CV7J6s7J6QDQor67CV7IOB7Z2sDQor67CV642V7IiYDQor67CV7Zqo7IiZDQor67CV7KKF7KeEDQor67CV7IOB7Z2sDQor67CV7IiY7ISdDQor67CV7ZWE7Zi4DQor67CV7YOc7ZiEDQor67CV7ISd6recDQor67CV7JiB7Zi4DQor67CV7IK87JuQDQor67CV6rec7ISdDQor67CV7ISd6re8DQor67CV7J287IiYDQor67CV7IOB6riwDQor67CV7KSA642VDQor67CV7ISd64+ZDQor67CV65GQ7ZmYDQor67CV7KCV7ZiEDQor67CV6rec7LKgDQor67CV7ISd7IudDQor67CV7Lmg7ZWYDQor67CV7J247ZWYDQor67CV67OR64+ZDQor67CV7ISd7LKgDQor67CV7LaY6recDQor67CV7YOc7Z2sDQor67CV64+Z7KGwDQor67CV7ISg7JiBDQor67CV7IOB7LacDQor67CV7IOB7Z2sDQor67CV67OR64KoDQor67CV7ISg7JilDQor67CV67OR7IudDQor67CV642V6rWsDQor67CV64Ko7J21DQor67CV7ISg7KeEDQor67CV7Jew7IicDQor67CV7JiB7JewDQor67CV7IOB7JiBDQor67CV7ISg7Zi4DQor67CV7IOB7JqpDQor67CV7J6l66GdDQor67CV7LC97LKcDQor67CV7ISx6rOkDQor67CV7J287IiYDQor67CV7YOc7KGwDQor67CV7J6s7JWgDQor67CV7ISx6rWsDQor67CV7J287JuQDQor67CV7KCV67O0DQor67CV7JiB7JuQDQor67CV7ISx6recDQor67CV7J6s7IS4DQor67CV7JiB7Zi4DQor67CV7J2A7JuQDQor67CV7ISx6recDQor67CV7KCV66y4DQor67CV7Jyk7LKgDQor67CV6rec7ISxDQor67CV7ISx6recDQor67CV7IOB7J21DQor67CV7JiB7JiBDQor67CV7KKF7KGwDQor67CV7ISx6riwDQor67CV6riw7ZmUDQor67CV7IiY642VDQor67CV64yA6regDQor67CV7ISx6riwDQor67CV6rec7KSADQor67CV7Jqw7ISdDQor67CV7KCV7JewDQor67CV7ISx64KoDQor67CV7KeE7J6EDQor67CV7IaM7KO8DQor67CV7J2866GdDQor67CV7ISx64usDQor67CV66+47Zi4DQor67CVIOq4iA0KK+uwleyEuOyXtA0KK+uwleyEseuTnQ0KK+uwleuPmeyasQ0KK+uwleyEne2DnQ0KK+uwleyEoOuNlQ0KK+uwleyEseuTnQ0KK+uwleq0gOu2hA0KK+uwle2VhOyImA0KK+uwleq3vOyyrQ0KK+uwleyEseujoQ0KK+uwlSDsmKQNCivrsJXshKDsiJwNCivrsJXrj5nsooUNCivrsJXshLHrsLANCivrsJXsooXtg5wNCivrsJXsg4HrsLANCivrsJXsnqzslaANCivrsJXshLHrsLANCivrsJXshJ3si50NCivrsJXsmqntnLQNCivrsJXsoJDsl7ANCivrsJXshLHrsLANCivrsJXsooXtmowNCivrsJXrp4zsiJwNCivrsJXsp4Trj5kNCivrsJXshLHrsLANCivrsJXrqoXrjIANCivrsJXqtJHslZQNCivrsJXrj5nquLgNCivrsJXshLHrsLANCivrsJXsoJDtg5wNCivrsJXsnKTsmqkNCivrsJXtmansi50NCivrsJXshLHrspQNCivrsJXssL3si50NCivrsJXtlYTsmrANCivrsJXsoJXslZQNCivrsJXshLHrtIkNCivrsJXqtozssqANCivrsJXsnbjsobANCivrsJXtg5zqtowNCivrsJXshLHrtoQNCivrsJXsnbztnawNCivrsJXsnqzsiJwNCivrsJXsmrTsg4ENCivrsJXshLHruYgNCivrsJXsg4HsiJgNCivrsJXsooXso7wNCivrsJXsoJDssqANCivrsJXshLHsiJwNCivrsJXrqoXsiJkNCivrsJXtmY3tnawNCivrsJXrr7jtmZQNCivrsJXshLHsiJwNCivrsJXsnbjsnpANCivrsJXsmIHtnaANCivrsJXsoJXsnoQNCivrsJXshLHsi50NCivrsJUg7ZWZDQor67CV7IKs6recDQor67CV7ISx7ZuIDQor67CV7ISx7IukDQor67CV7ISx7IiYDQor67CV66+87IudDQor67CV7YOA6rWsDQor67CV7ISx7JaRDQor67CV7Jil7YOcDQor67CV7ZWE7ZmUDQor67CV7J247IigDQor67CV7ISx7Je0DQor67CV7Iah6re8DQor67CV7J287JewDQor67CV7ZiB7Zi4DQor67CV7ISx7Je0DQor67CV7Jil7IicDQor67CV7IOB7KGwDQor67CV7KeE7IukDQor67CV7ISx7JqpDQor67CV7ISx7J6RDQor67CV7J247IiYDQor67CV66+46rWQDQor67CV7ISx7JyoDQor67CV65GQ7Je0DQor67CV7Zmp7JikDQor67CV7IiY67SJDQor67CV7ISx7J28DQor67CV67SJ7ZmYDQor67CV7ISd642VDQor67CV6riI7JqwDQor67CV7ISx7LKgDQor67CV7Z2l7LCoDQor67CV6rCR7ISdDQor67CV7KKF6ri4DQor67CV7ISx7ZWcDQor67CV7KCV7Zi4DQor67CV7ZWE7IiYDQor67CV6rec64+EDQor67CV7ISx7ZiEDQor67CV6riw66+8DQor67CV7KKF67SJDQor67CV7KKF7Je0DQor67CV7ISx7ZiEDQor67CV7J287J6EDQor67CV7J286rK9DQor67CV7LC97IiYDQor67CV7ISx7Zi4DQor67CV7YOc7ISdDQor67CV7YOc7JqpDQor67CV7J6s6riwDQor67CV7ISx7Zi4DQor67CV7YOc6regDQor67CV7Zic7ISdDQor67CV66y07JuQDQor67CV7ISx7ZmYDQor67CV7J6s7IicDQor67CV7YOc7IicDQor67CV7JiB6riwDQor67CV7ISx7Z2sDQor67CV7Zi47KSADQor67CV7IaM7JqpDQor67CV6rec7IiYDQor67CV7IS47ZWZDQor67CV7JiB67aADQor67CV7YyQ7Je0DQor67CV66eM7JuFDQor67CV7IS47ZeMDQor67CV7YOc7LGEDQor67CV7Jyk7ZqMDQor67CV7JiB6recDQor67CV7IaM7ISgDQor67CV7ZaJ7LKgDQor67CV7Lap7IK8DQor67CV7Iud7ZiEDQor67CV7Iah6rKsDQor67CV7JiB7JqwDQor67CV7LaY7J20DQor67CV7ISx7ZiEDQor67CV7Iah7JewDQor67CV67SJ7LKgDQor67CV66q97Zi4DQor67CV7JiB7JqwDQor67CV7IiY6rCRDQor67CV7J247IukDQor67CV64yA7IiYDQor67CV6rCV7KKFDQor67CV7IiY6rG4DQor67CV7J6s7IiYDQor67CV7KeE7ZmUDQor67CV65GQ7ZeMDQor67CV7IiY6rK9DQor67CV7ISx7KeEDQor67CV7J6s7IudDQor67CV6rec7Jq0DQor67CV7IiY6recDQor67CV7ISg7ISxDQor67CV7LC9656ADQor67CV67OR64+EDQor67CV7IiY66qFDQor67CV7IOB7LKgDQor67CV64Ko7ISxDQor67CV7ISg6ri4DQor67CV7IiY66qpDQor67CV7YOc642VDQor67CV7IK86ri4DQor67CV7KCV7ZmNDQor67CV7IiY66+8DQor67CV7IiY64+EDQor67CV7ZeM7Je0DQor67CV7ISx7Je0DQor67CV7IiY67O1DQor67CV7KeE6rOkDQor67CV7LCo7JqpDQor67CV66y066asDQor67CV7IiY7Je0DQor67CV7ISd7IicDQor67CV67OR7JqwDQor67CV7J6s7ISgDQor67CV7IiY7JuQDQor67CV7IiY7IudDQor67CV7JiB7IiYDQor67CV67SJ7IiZDQor67CV7IiY7LCsDQor67CVIOyImA0KK+uwleyasOyXsA0KK+uwle2VmeyLoA0KK+uwleyImOyynA0KK+uwleyVoOuztQ0KK+uwleycpOyasA0KK+uwleuzteu5iA0KK+uwleyImO2VmQ0KK+uwleyerO2MlA0KK+uwleyiheqzpA0KK+uwle2Zjeq4uA0KK+uwleyImO2VnA0KK+uwleq0keyaqQ0KK+uwleyiheq3vA0KK+uwleusuOyduA0KK+uwleyImO2WpQ0KK+uwleyerO2ZmA0KK+uwleuzke2DnQ0KK+uwleqxtOyerA0KK+uwleyImO2YuA0KK+uwleq4iOyekA0KK+uwleygleq1rQ0KK+uwleunjOy2nA0KK+uwleyImO2drA0KK+uwleyerOyImA0KK+uwleyYgeyasA0KK+uwleyerOyXtA0KK+uwleyIme2YhA0KK+uwleyEseusuA0KK+uwleuCmeq4uA0KK+uwleyCrO2ctA0KK+uwleyIme2drA0KK+uwleyerOyyoA0KK+uwle2DnOyXtA0KK+uwleyblOuqqA0KK+uwleyInOqwkQ0KK+uwleyEseuPmQ0KK+uwleyiheyEnQ0KK+uwle2VtOyLnQ0KK+uwleyInOq0gA0KK+uwle2MkOydtA0KK+uwleyblOydtA0KK+uwleqwleyynA0KK+uwleyInOq4iA0KK+uwleyyoOq3oA0KK+uwle2DnOyLnQ0KK+uwleyiheyLnQ0KK+uwleyInOq4uA0KK+uwleyjvOyEsQ0KK+uwlSDsm4UNCivrsJXsoJXsm4UNCivrsJXsiJzrgqgNCivrsJXsiJzsiJgNCivrsJXshJ3si50NCivrsJXrj4TsmIENCivrsJXsiJzrjZUNCivrsJXsnqzsobANCivrsJXtlZjtmZgNCivrsJXtmLjsm5ANCivrsJXsiJzrj4QNCivrsJXrrLTsiJgNCivrsJXsg4HsiJkNCivrsJXsmIHrj5kNCivrsJXsiJzrj4wNCivrsJXsooXrsLANCivrsJXshJ3siJwNCivrsJXtlbTquLgNCivrsJXsiJzrj5kNCivrsJXtmITsiJgNCivrsJXqt5ztlZgNCivrsJXsnbztg50NCivrsJXsiJzrk50NCivrsJXsmIHsnbgNCivrsJXshLHtmLgNCivrsJXsirnsnqwNCivrsJXsiJzrs7UNCivrsJXsnYzsp4QNCivrsJXsmqnrjZUNCivrsJXssKjsmrQNCivrsJXsiJzshJ0NCivrsJXsg4HsnbQNCivrsJXtg5zsl7QNCivrsJXsnbjsiJgNCivrsJXsiJzslZQNCivrsJXsp4Tqsr0NCivrsJXsg4HsiJgNCivrsJXsmIHso7wNCivrsJXsiJzsmKUNCivrsJXsmrTsnKQNCivrsJXsmqnrnoANCivrsJXqtJHrqqkNCivrsJXsiJzsmKUNCivrsJXsmIHtmIQNCivrsJXsmqnsiJgNCivrsJXsoJDsmrANCivrsJXsiJzsmKUNCivrsJXssKzsnpANCivrsJXqtJHsmqkNCivrsJXsooXsooUNCivrsJXsiJzsmKUNCivrsJXspJHsi50NCivrsJXrtInshLENCivrsJXsl7DrqoUNCivrsJXsiJzsmKUNCivrsJXshozsiJwNCivrsJXsnYDtm4gNCivrsJXssL3qsJENCivrsJXsiJzsmKUNCivrsJXrjZXsoJwNCivrsJXtlbTtg5wNCivrsJXsmKTsmqkNCivrsJXsiJzsnoQNCivrsJXshLHsmqkNCivrsJXsiJjtl4wNCivrsJXrr7jrjIANCivrsJXsiJzsnpANCivrsJXshKDtmLgNCivrsJXslYjslZQNCivrsJXquLDsoJANCivrsJXsiJzsnpANCivrsJXqsr3tmIQNCivrsJXsooXsoJwNCivrsJXsuaDsiJkNCivrsJXsiJzsnpANCivrsJXtlZzsiJwNCivrsJXsmbjsobANCivrsJXstqnsm5ANCivrsJXsiJzsnpANCivrsJXsmKTqt5wNCivrsJXsp4TshKANCivrsJXsmIHsiJwNCivrsJXsiJzsobANCivrsJXsirnsl7ANCivrsJXssqDqsJUNCivrsJXsmqnsspwNCivrsJXsiJzsp4ENCivrsJXsmqnrqqkNCivrsJXssL3qta0NCivrsJXsoJXtg5wNCivrsJXsiJzssKwNCivrsJXtmY3siKANCivrsJXsp4Trs7UNCivrsJXsmIHsmrENCivrsJXsiJzsspwNCivrsJUg7IudDQor67CV7J6s7IudDQor67CV7Jqp7KSRDQor67CV7Iic7Zi4DQor67CV7Zqo67CwDQor67CV7IaM6riwDQor67CV7J2864KoDQor67CV7Iic7Z2sDQor67CV6rSR7ISdDQor67CV6rec7JqwDQor67CV6riw7IOBDQor67CV7Iig7ZeMDQor67CV7ZiE7IudDQor67CV6raM7Zi4DQor67CV66qF67aEDQor67CV7Iq56recDQor67CV7ZWE7IiYDQor67CV7KeB7JiBDQor67CV7KO87ZWcDQor67CV7Iq564yADQor67CV6riw7YOcDQor67CV7Iic7J6QDQor67CV7Iic7J28DQor67CV7Iq566a9DQor67CV7Jqp7Zi4DQor67CV7ISx7Zi4DQor67CV7J287ZWcDQor67CV7Iq566qpDQor67CV67OR7LCsDQor67CV64+E66eMDQor67CV7IiY6riIDQor67CV7Iug7JuFDQor67CV64+Z7ISdDQor67CV64+Z67aADQor67CV7YOc7ZiEDQor67CV7Iug7JyoDQor67CV7ISd7JiBDQor67CV64yA64+EDQor67CV7YOc7IiZDQor67CV7Iug7KCcDQor67CV7Iic7Z2sDQor67CV7IOB6regDQor67CV7JiB7IiYDQor67CV7Iug7KeADQor67CV6rK97ZiEDQor67CV66eM7KO8DQor67CV7KKF7YOdDQor67CV7Iug7ZWYDQor67CV7ISg7Zi4DQor67CV7KCQ7J28DQor67CV66qF7IicDQor67CV7Iug7ZqMDQor67CV7IOB7LKgDQor67CV6rK97JWUDQor67CV66eQ7Jq0DQor67CV7IyN7IigDQor67CV7KKF7JWUDQor67CV7Z2s7IiZDQor67CV7KCV67O1DQor67CV7JWU67aADQor67CV7Jqp6ri4DQor67CV7KKF7Z2sDQor67CV7J6l7KGwDQor67CV7JaR7IicDQor67CV65GQ7JykDQor67CV7LKt7IudDQor67CV7Lmg7KSRDQor67CV7JaR7ZqMDQor67CV67OR7KGwDQor67CV66eM6riwDQor67CV7KO87Zi4DQor67CV7Ja46recDQor67CV7IOB66eMDQor67CV7J6s7ISxDQor67CV7KO866OhDQor67CV7Ja47IiZDQor67CV66eM7IiYDQor67CV7ZmN6529DQor67CV6riI7ISdDQor67CV7Ja47JeFDQor67CV64Ko7KeEDQor67CV6riI7IOBDQor67CV7Jqp7IiYDQor67CV7Jew7IiYDQor67CV7Jq066qpDQor67CV7YOc7ISxDQor67CV66eM6raMDQor67CV7Jew7IicDQor67CV67OR7ISxDQor67CV7IOB7JikDQor67CV7KCQ7Zi4DQor67CV7Jew7IusDQor67CV7JiB7ISgDQor67CV7YOc642VDQor67CV7YyU7IudDQor67CV7Jew7JqpDQor67CV7KGw66eQDQor67CV7YOc64+EDQor67CV7IOB7KGwDQor67CV7Jew7LCoDQor67CV7J6s67O1DQor67CV7Iq57ZuIDQor67CV7KeE656ADQor67CV7Jew7ZmpDQor67CV7ZWZ7Zi4DQor67CV66qF656ADQor67CV7KCV6riwDQor67CV7Jew7Z2gDQor67CV7ISg7JqwDQor67CV7Z2s7IicDQor67CV7KCV7J6RDQor67CV7Jew7Z2sDQor67CV7J2A7IicDQor67CV7YOc66qFDQor67CV7KCV7JuUDQor67CV7JiB6recDQor67CV7KKF7Z2sDQor67CV7KeE7JykDQor67CV7IOB7KeEDQor67CV7JiB6ri4DQor67CV6reA66qoDQor67CV66y07JqxDQor67CV7J2Y7KeEDQor67CV7JiB642VDQor67CV7J6l7IudDQor67CV7IK86rWwDQor67CV7JiB7JuFDQor67CV7JiB65OdDQor67CV7ZWE7J24DQor67CV7Z2s7IudDQor67CV7KCV7IiYDQor67CV7JiB656ADQor67CV7Iug7JikDQor67CV7J6s6rG4DQor67CV7ISx7ISgDQor67CV7JiB66GdDQor67CV64+Z7JuQDQor67CV6riw7J20DQor67CV642V7LKgDQor67CV7JiB67SJDQor67CV642V7IicDQor67CV7LC964+EDQor67CV67OR7J28DQor67CV7JiB7ISgDQor67CV64+Z7IiYDQor67CV7IaM7JqpDQor67CV7ZWZ7KeEDQor67CV7JiB7ISgDQor67CV7LaY7Je0DQor67CV67O07IiYDQor67CV7JWg6rK9DQor67CV7JiB7ISgDQor67CV7KKF7ZyYDQor67CV7ZWY6riwDQor67CV7KeE7J20DQor67CV7JiB7IStDQor67CV67OR7JewDQor67CV7KCQ7ZWZDQor67CV7YOA6recDQor67CV7JiB7IiYDQor67CV7JiB7JWFDQor67CV7JiB6regDQor67CV6rec7Zi4DQor67CV7JiB7IigDQor67CV6rec6recDQor67CV7KSA7IudDQor67CV7J6s7IiYDQor67CV7JiB7IudDQor67CV7Iic7IiYDQor67CV7KKF7KGwDQor67CV7ZiV7KeEDQor67CV7JiB7IudDQor67CV7J6s7J6QDQor67CV66eM6riwDQor67CV7ISx7ISgDQor67CV7JiB7JikDQor67CV7J6s7Zi4DQor67CV7KSR7ZmUDQor67CV7Lap7IudDQor67CV7JiB7JqwDQor67CV7Iic67KUDQor67CV6rSR7ISxDQor67CV67OR7ZiEDQor67CV7JiB7JqxDQor67CV64+Z7ZmYDQor67CV7KeE7YOcDQor67CV7JiB66qFDQor67CV7JiB7J20DQor67CV6rK97ZmpDQor67CV7YOc7ZuIDQor67CV7JiB7JykDQor67CV7JiB7J28DQor67CV6rec66GdDQor67CV6rK967SJDQor67CV7ISd7IiYDQor67CV7JiB7J6QDQor67CV64Ko7Zi4DQor67CV7Iic7IScDQor67CV7ISx6rSADQor67CV7JiB7J6sDQor67CV7LC97IudDQor67CV66y47IiYDQor67CV7ZW07ISdDQor67CV7JiB7KCcDQor67CV7Jik7J6sDQor67CV7ZWY7J6sDQor67CV7KO86recDQor67CV7JiB7KGwDQor67CV6rSR7JuQDQor67CV67SJ7YOcDQor67CV6riw6rCRDQor67CV7JiB7KO8DQor67CV7KCV7JilDQor67CV66y47ZuIDQor67CV7J207JiBDQor67CV7JiB7KSADQor67CV642V7J6EDQor67CV67O16rWsDQor67CV7IK87IiYDQor67CV7JiB7LKgDQor67CV7ISx7ZmYDQor67CV7J6s7ISdDQor67CV7KCV7JWFDQor67CV7JiB7LKgDQor67CV64+Z66y4DQor67CV7Iuc6rKwDQor67CV7J6s7JuQDQor67CV7JiB7LKgDQor67CV7YOB7IicDQor67CV7ISd6rK9DQor67CV7Jq064+MDQor67CV7JiB7LKgDQor67CV7LC97ISdDQor67CV66eQ7IiYDQor67CV6riw7YOcDQor67CV7JiB7LaYDQor67CV7J6s66y4DQor67CV7L6M7ZmYDQor67CV7LKt6rK9DQor67CV7JiB7LacDQor67CV7IiY7YOdDQor67CV7IOB64WADQor67CV6rec67ORDQor67CV7JiB7YOcDQor67CV7KSR7JqpDQor67CV7J6s7ISdDQor67CV7JiB7KGwDQor67CV7JiB7ZWEDQor67CV7JiB67SJDQor67CV64us7IiYDQor67CV7JuQ7Iq5DQor67CV7JiB7ZWYDQor67CV64+Z7Je0DQor67CV7JiB67O1DQor67CV7Iic7IiYDQor67CV7JiB7ZmUDQor67CV7KeE67aEDQor67CV67OR7J6QDQor67CV66eM7IusDQor67CV7JiB7ZmUDQor67CV7KCV6rK9DQor67CV7J6l7Z2sDQor67CV7KSR7Z2sDQor67CV7JiB7ZmUDQor67CV7IOB7IiZDQor67CV7KSR7IiZDQor67CV6rSR7KGwDQor67CV7JiB7ZmYDQor67CV64Ko7JikDQor67CV7KO87JilDQor67CV7JuU7KO8DQor67CV7JiB7ZmYDQor67CV7Lmg65OdDQor67CV7Jqw67O1DQor67CV66eM7J2ADQor67CV7JiB7ZyYDQor67CV6reA7Zi4DQor67CV7KKF7IiYDQor67CV67SJ66CoDQor67CV7Jik65OdDQor67CV6rSR7JilDQor67CV7ZWZ7YOcDQor67CV7KKF7ISdDQor67CV7Jik7IicDQor67CV66qF7YOdDQor67CV7JiB7IiYDQor67CV7ZWZ7J2ADQor67CV7Jik7KO8DQor67CV7LaY7Zi4DQor67CV7Iq57IStDQor67CV7LaY7Zi4DQor67CV7Jil6regDQor67CV7KCV7ZmUDQor67CV7KeE7Iq5DQor67CV7JiB7KSRDQor67CV7Jil64+ZDQor67CV7ZeM642VDQor67CV7JiB7Je0DQor67CV6ri47IicDQor67CV7Jil7IiYDQor67CV7IiY7JiBDQor67CV6riw6re8DQor67CV7J6s7ZmNDQor67CV7Jil7IicDQor67CV7Jew7JmEDQor67CV67OR642VDQor67CV7J2A656YDQor67CV7Jil7IicDQor67CV7J6s7IS4DQor67CV7J2R7IicDQor67CV67O17IStDQor67CV7Jil7J20DQor67CV7Jqw7JiBDQor67CV64+Z7YOcDQor67CV7JiB7JmEDQor67CV7Jil7J6QDQor67CV6rK96recDQor67CV6rK967ORDQor67CV7ISx7JiBDQor67CV7Jil7YOcDQor67CV7IaM7ZmNDQor67CV64+Z7ZiEDQor67CV7ISx7ZiBDQor67CV7JmV66CsDQor67CV7KKF7ISgDQor67CV7ZmY7ZWYDQor67CV7Jqw7KSADQor67CV7Jm47IiYDQor67CV7ZiV7J6QDQor67CV7Jqw6riwDQor67CV66eM7ISdDQor67CV7Jm47ZmYDQor67CV7IOB7ZiEDQor67CV65GQ6rWtDQor67CV7Jqp7ISgDQor67CV7Jqp6rSADQor67CV64+Z7Zi4DQor67CV7JiB7ZmYDQor67CV7KKF7JyoDQor67CV7Jqp6rWsDQor67CV7YyQ7KSADQor67CV7ZiE7Zi4DQor67CV7KCV66y1DQor67CV7Jqp6raMDQor67CV7Iq5642VDQor67CVIO2ZlA0KK+uwleyerO2YuA0KK+uwleyaqeq3vA0KK+uwleycoOyYgQ0KK+uwleuzke2drA0KK+uwleuLrOuwsA0KK+uwleyaqeq3vA0KK+uwleuqheyDgQ0KK+uwle2DnO2DnQ0KK+uwleuzteyxhA0KK+uwleyaqeuMgA0KK+uwleyImOq4uA0KK+uwleusuOuqqQ0KK+uwleq0ke2YuA0KK+uwleyaqeuPhA0KK+uwleunjOq0gA0KK+uwleygkOyZhA0KK+uwleyMjeyYpQ0KK+uwleyaqeunjA0KK+uwleunkOuPhA0KK+uwleyIme2drA0KK+uwleywveunjA0KK+uwleyaqeuztA0KK+uwleyYgeyasA0KK+uwleuPmeq1rA0KK+uwle2drOq4sA0KK+uwleyaqeyEnQ0KK+uwleq4sOykgA0KK+uwleusmOynhA0KK+uwleyiheyInA0KK+uwleyaqeyImA0KK+uwleydmO2drA0KK+uwleyaqeuqqA0KK+uwleyaqeq0gA0KK+uwleyaqeyImA0KK+uwle2VtOykgA0KK+uwleyDgeyYgQ0KK+uwleyImey2mA0KK+uwleyaqeyImA0KK+uwleyjvO2VnA0KK+uwleq4sOq3nA0KK+uwleyZle2ZmA0KK+uwleyaqeyInA0KK+uwley2mOyLnQ0KK+uwleywveyXtA0KK+uwleyYgeunjA0KK+uwleyaqeyVlA0KK+uwleqyveq4sA0KK+uwleyDge2DnA0KK+uwleuCme2ZjQ0KK+uwleyaqeykgA0KK+uwleyXsOyLnQ0KK+uwle2DnOujoQ0KK+uwleykgOyImA0KK+uwleyaqeykgA0KK+uwleyDgeuhnQ0KK+uwleuPmeyXtA0KK+uwleyYgeq3nA0KK+uwleyaqeyyoA0KK+uwleyYgeyLnQ0KK+uwleyasOyImA0KK+uwleyerOq0gA0KK+uwleyaqeyyoA0KK+uwleuzke2ZmA0KK+uwleyVlOu0iQ0KK+uwleyDgeyXsA0KK+uwleyaqe2VmQ0KK+uwleuvvOyXsA0KK+uwleyYgeq1rQ0KK+uwleyDgeyXsA0KK+uwleyaqe2VmQ0KK+uwleq4sOyInA0KK+uwleyYgeq1rQ0KK+uwleyepeyEnQ0KK+uwleyaqe2VnA0KK+uwleyImOuCqA0KK+uwleyihe2YuA0KK+uwleunjOyEsQ0KK+uwleyaqe2XjA0KK+uwle2DnOyYpA0KK+uwleu0ieykkQ0KK+uwleyehOugrA0KK+uwleyaqe2XjA0KK+uwle2YnOyIoA0KK+uwleuPmeuztA0KK+uwleybkOyehA0KK+uwleyaqe2YhA0KK+uwleuRkOyImA0KK+uwley2mOq4sA0KK+uwleq0keybhQ0KK+uwleyaqe2YuA0KK+uwle2DnOyDnQ0KK+uwle2DnO2drA0KK+uwleyDgeuPjA0KK+uwleyaqe2YuA0KK+uwle2MkOyVlA0KK+uwleyaqeq4uA0KK+uwleyImOydvA0KK+uwleyasOuqqQ0KK+uwley2mO2YhA0KK+uwle2MkOydvA0KK+uwle2VmOqyvQ0KK+uwleyasOuvuA0KK+uwleqyveyekA0KK+uwleuPmeq3vA0KK+uwleyDgeyImA0KK+uwleyasOyLnQ0KK+uwleyepeyInA0KK+uwleykkeyLnQ0KK+uwleyepe2YuA0KK+uwleyatO2ZmA0KK+uwleyEseq2jA0KK+uwleyYge2ZmA0KK+uwleqyve2YuA0KK+uwleybkOq1rA0KK+uwleyiheyImA0KK+uwleyaqeyhsA0KK+uwleq0keyEnQ0KK+uwleybkOyEnQ0KK+uwleyiheuvvA0KK+uwleygleyEnQ0KK+uwleq0keyImA0KK+uwleybkOyEnQ0KK+uwleyYgeyhsA0KK+uwleyEoOydtA0KK+uwleuqheuvuA0KK+uwleybkOyXrA0KK+uwleqyveyhsA0KK+uwleyYgeqwkQ0KK+uwleyImOykkQ0KK+uwleybkOydtA0KK+uwleyDge2YuA0KK+uwleynhOuqqA0KK+uwleydmOq3vA0KK+uwleybkOyihQ0KK+uwleqwle2DgQ0KK+uwleyngO2YhA0KK+uwleydteyIoA0KK+uwleybkOyihQ0KK+uwleq4sO2YuA0KK+uwleyYgeq4sA0KK+uwleyEseudvA0KK+uwleybkO2DnA0KK+uwleyDgeyyoA0KK+uwle2YuOq3nA0KK+uwleyaqe2ZjQ0KK+uwleybkO2VmQ0KK+uwleydvO2drA0KK+uwleunjOyInA0KK+uwleygle2WpQ0KK+uwleybkO2ajA0KK+uwleyyoOyhsA0KK+uwleusuO2YlQ0KK+uwleykkeyxhA0KK+uwleyblOuCqA0KK+uwleyYgeybkA0KK+uwleycpOyLnQ0KK+uwleq2jO2VmQ0KK+uwleyblOyEoA0KK+uwleyihe2DnA0KK+uwleygleyLnQ0KK+uwleusuOyInA0KK+uwleyblOyImA0KK+uwleyerOyLnQ0KK+uwleqyveynhA0KK+uwleyYgeyXtA0KK+uwleychOyInA0KK+uwle2aqOyYgQ0KK+uwleyatO2VhA0KK+uwleyEuOuPmQ0KK+uwleychO2VnA0KK+uwleydvOq3nA0KK+uwleyaqeuwsA0KK+uwle2YhOyLnQ0KK+uwleycoOuNlQ0KK+uwlSDrpZwNCivrsJXsnbjsiJwNCivrsJXsmKXtj6wNCivrsJXsnKTrj4QNCivrsJXtmZjquLANCivrsJXquLDshKANCivrsJXshLHso7wNCivrsJXsnKTrnb0NCivrsJXsnbztnawNCivrsJXsooXsiJgNCivrsJXtmITsi50NCivrsJXsnKTrqqkNCivrsJXshozsiJwNCivrsJXrs7Xtg50NCivrsJXsg4HshKANCivrsJXsnKTsiJgNCivrsJXsnqzquLANCivrsJXrgqjsoJUNCivrsJXtg5zsobANCivrsJXsnKTsmKUNCivrsJXsp4TsmqkNCivrsJXtnazsp4QNCivrsJXshLHsnYANCivrsJXsnKTsoJUNCivrsJXtmITspIANCivrsJXrj5nsmqkNCivrsJXsiJnquLgNCivrsJXsnKTsoJUNCivrsJXsg4HshKANCivrsJXquIjqsJENCivrsJXsmIHsl7ANCivrsJXsnKTsoJUNCivrsJXsg4HrhbgNCivrsJXsnqztg5wNCivrsJXri6zso7wNCivrsJXsnKTspIANCivrsJXtmqjsp4QNCivrsJXsp4TslZQNCivrsJXsp4TsiJwNCivrsJXsnKTtl4wNCivrsJXsm5DtmIQNCivrsJXrs5HrrLgNCivrsJXtg5zsiJwNCivrsJXsnKTtmIQNCivrsJXrjIDtmLgNCivrsJXssYTsl7ANCivrsJXrp5DshKANCivrsJXsnKTtmZgNCivrsJXrhbjqtowNCivrsJXtg5zqt6ANCivrsJXsoJXsiJgNCivrsJXsnYDqsr0NCivrsJXrp5DquLgNCivrsJXsnKTsnbQNCivrsJXrs5Hrj4gNCivrsJXsnYDqtZANCivrsJXsmIHsiJwNCivrsJXtjJDssqANCivrsJXtlZzshLENCivrsJXsnYDrj5kNCivrsJXshKDtmZgNCivrsJXslYjso7wNCivrsJXsiJztmIQNCivrsJXsnYDsiJgNCivrsJXsiJzrrLgNCivrsJXtlYTsiJwNCivrsJXri6ztlZwNCivrsJXsnYDsiJgNCivrsJXtg5zqtowNCivrsJXsiJjquLgNCivrsJXtlZzssKwNCivrsJXsnYDsiJgNCivrsJXtl4ztnZQNCivrsJXsmqnsi50NCivrsJXstqnspIANCivrsJXsnYDso7wNCivrsJXshLjsiJwNCivrsJXtg5zsobANCivrsJXsmIHqta0NCivrsJXsnYDssKwNCivrsJXrtoTroYANCivrsJXsiJzrj5kNCivrsJXtlbTtmIQNCivrsJXsnYTshKANCivrsJXsoJXtmLgNCivrsJXquIjsiJwNCivrsJXqtJHtnawNCivrsJXsnZHrqqgNCivrsJXsm5Dqs6QNCivrsJXsnbjrp4wNCivrsJXstpjsl7QNCivrsJXsnZjsnbgNCivrsJXsmKXrtoANCivrsJXrtoDqt5wNCivrsJXsoJXsnbwNCivrsJXsnbTqt5wNCivrsJXsmIHqt7kNCivrsJXsnqzsiJwNCivrsJXsiJjsobANCivrsJXsnbTsg4ENCivrsJXrr7jrgqgNCivrsJXtjJDstpgNCivrsJXquLDsnpANCivrsJXsnbTsiKANCivrsJXshLHsi50NCivrsJXrj4Ttg5wNCivrsJXqs7XsiJgNCivrsJXsnbTtmJUNCivrsJXtg5zqt7wNCivrsJXstqnsiKANCivrsJXsnKTtmIENCivrsJXsnbTtmLgNCivrsJXtmqjsiJgNCivrsJXtmZTsobANCivrsJXsiJjsiJkNCivrsJXsnbTtmZgNCivrsJXquLDssqANCivrsJXqt7zsi50NCivrsJXshLjtg5wNCivrsJXsnbXqt5wNCivrsJXtlbTsiJgNCivrsJXsg4Hsl7QNCivrsJXsnqzssYQNCivrsJXsnbjqtowNCivrsJXrqoXsiJgNCivrsJXso7zrs7QNCivrsJXtg5zsi50NCivrsJXsnbjrsLANCivrsJXsoJXsiJgNCivrsJXqs4TsiJwNCivrsJXspIDtnawNCivrsJXsnbjsiJkNCivrsJXsoJXqt7wNCivrsJXsmIHrgqgNCivrsJXsspztmLgNCivrsJXsnbjsiJwNCivrsJXsiJjsmqkNCivrsJXssqDtg50NCivrsJXslpHrj4wNCivrsJXsnbjsiKANCivrsJXrp7nsiJgNCivrsJXsmIHslaANCivrsJXsg4HtmIQNCivrsJXsnbjsi50NCivrsJXsm5DrjZUNCivrsJXsiJjsm5ANCivrsJXshLHtg50NCivrsJXsnbjsnpANCivrsJXtmY3smKQNCivrsJXsnbjri6wNCivrsJXtmLjsmIENCivrsJXsnbjssqANCivrsJXsiJjsnbQNCivrsJXqsJHsi50NCivrsJXsnqXsmrANCivrsJXsnbjtkZwNCivrsJXtlbTsp4QNCivrsJXrj4TsmqkNCivrsJXsp4Tsm5ANCivrsJXsnbjtl4wNCivrsJXrs5HquLANCivrsJXsiJzsobANCivrsJXtlbTtmLgNCivrsJXsnbzqtowNCivrsJXsl7DsooUNCivrsJXrqoXsiJwNCivrsJXrjIDsmrANCivrsJXsnbzqtowNCivrsJXrp6Trs5ENCivrsJXsnqzsmqkNCivrsJXssL3qs6QNCivrsJXsnbzqt5wNCivrsJXsooXsuZgNCivrsJXsmrDshKANCivrsJXsg4HqtZANCivrsJXsnbzqt5wNCivrsJXrjIDrp4wNCivrsJXsnbjsiKANCivrsJXsoJXqt5wNCivrsJXsnbzrj5kNCivrsJXsnbjrsLANCivrsJXsmrDsm5ANCivrsJXsp4TshJ0NCivrsJXsnbzrj5kNCivrsJXsg4HrsLANCivrsJXsspzrrLgNCivrsJXqsJHsiKANCivrsJXsnbzrqoUNCivrsJXtlbTsobANCivrsJXsiJzssqANCivrsJXso7zqt6ANCivrsJXsnbzrs5ENCivrsJXsoJDrsLANCivrsJXrjIDrp4wNCivrsJXstqnshLENCivrsJXsnbzrtIkNCivrsJUg64KoDQor67CV7KCV7IigDQor67CV7Jyk7LKgDQor67CV7J287ISdDQor67CV66+867O1DQor67CV7KKF7J6lDQor67CV7Jil7KO8DQor67CV7J287ISgDQor67CV7ISx7KGwDQor67CV7IOB7LmgDQor67CV7ISx7KCVDQor67CV7J287JqpDQor67CV7KeE67SJDQor67CV7KKF67KUDQor67CV7YOc642VDQor67CV7J287ZeMDQor67CV7KCV7ISdDQor67CV6rSA7KKFDQor67CV7Jik64+MDQor67CV7J287Zi4DQor67CV7KeE7KKFDQor67CV7KKF7Z2sDQor67CV7KeE7IudDQor67CV7J287ZmUDQor67CV67OR66eMDQor67CV7Iic7Zi4DQor67CV7ZW07LKgDQor67CV7J6E6re5DQor67CV6rK97ISgDQor67CV7YOA7IiYDQor67CV64yA7Jq0DQor67CV7J6E7JuQDQor67CV67aA7JqpDQor67CV7J2867KUDQor67CV7IOB6rCVDQor67CV7J6Q64+ZDQor67CV64+E7ISdDQor67CV6riI7ISxDQor67CV7KeA6raMDQor67CV7J6l6ri4DQor67CV7J6l7KGwDQor67CV7ISx7ZmUDQor67CV7YOc642VDQor67CV7J6l66qFDQor67CV67OR7ISdDQor67CV7IOB7ZmNDQor67CV7KSA7Zi4DQor67CV7J6l7LacDQor67CV67SJ7ISgDQor67CV7IiY7IigDQor67CV7Lap7JuQDQor67CV7J6l7ZqMDQor67CV64W47ZWZDQor67CV6rK97IudDQor67CV7YOc7ZiEDQor67CV7J6l7Z2gDQor67CV7J2Y7KKFDQor67CV66eM7Z2gDQor67CV66qF7J6QDQor67CV7J6s6rCRDQor67CV7KO864+EDQor67CV7JWI7ZeMDQor67CV7IOB7J6sDQor67CV7J6s6rCRDQor67CV7Jqx7ZiEDQor67CV7YyQ7JiBDQor67CV67O07Z2gDQor67CV7J6s6rK9DQor67CV7J6s7IiYDQor67CV66qF6rK9DQor67CV66y06rK9DQor67CV7J6s6rK9DQor67CV6riI7IicDQor67CV7KCV7JmEDQor67CV7KKF7IudDQor67CV7J6s6rK9DQor67CV65Od7IudDQor67CV6rOh7IiYDQor67CV6rCR6re8DQor67CV7J6s6rOkDQor67CV7Jyk7JqpDQor67CV7KSA7Je0DQor67CV7ISx7Je0DQor67CV7J6s6rSADQor67CV7KCV64+EDQor67CV7IaM7LKtDQor67CV67OR7KO8DQor67CV7J6s6raMDQor67CV7JiB7ZmYDQor67CV66qF6recDQor67CV7Jqw7J2ADQor67CV7J6s6recDQor67CV6rK97J24DQor67CV7IOB7KO8DQor67CV7J6s67SJDQor67CV7J6s6recDQor67CV7ZiE7KGwDQor67CV7LKc65OdDQor67CV7KKF7JiBDQor67CV7J6s6recDQor67CV7JaR7Zi4DQor67CV64+Z7JuQDQor67CV7ISd6recDQor67CV7J6s6recDQor67CV6rK97Zi4DQor67CV7KSA6raMDQor67CV67SJ7J6QDQor67CV7J6s6recDQor67CV7J287J28DQor67CV7IiY7JewDQor67CV6ri47KGwDQor67CV7J6s6re8DQor67CV7Kad7JykDQor67CV7ZeM7IudDQor67CV7Jqp7KeEDQor67CV7J6s6re8DQor67CV6rec7ZalDQor67CV7ISx7ZiEDQor67CV7IiY7ZWYDQor67CV7J6s6riIDQor67CV64+Z7ISdDQor67CV7LaY7ZmYDQor67CV7YOc7IOdDQor67CV7J6s6riwDQor67CV7J6s7IiYDQor67CV7Lap7LKgDQor67CV7JiB6re8DQor67CV7J6s6riwDQor67CV7JiB7ZiEDQor67CV7ISx7IiYDQor67CV7Jqp6rCRDQor67CV7J6s6riwDQor67CV7J2A7Z2sDQor67CV7ISx7ISdDQor67CV7KKF6ri4DQor67CV7J6s64W4DQor67CV7JiB7KO8DQor67CV7JiB7Zi4DQor67CV7Z2s6recDQor67CV7J6s64+ZDQor67CV6rOE7KGwDQor67CV6riw7ZmUDQor67CV7YOc7IiYDQor67CV7J6s65GQDQor67CV7JiB66y4DQor67CV66y466eJDQor67CV6reA7Zi4DQor67CV7J6s656ADQor67CV7J2Y6rWsDQor67CV7Jil7J6QDQor67CV7ISg7ZWZDQor67CV7J6s66asDQor67CV7Ja47ZmYDQor67CV7Zic7ZmYDQor67CV7Iic7IStDQor67CV7J6s66a8DQor67CV7ISx64+EDQor67CV7YOc7YOcDQor67CV7Iq57YOcDQor67CV7J6s66eMDQor67CV7KCV7J6sDQor67CV7J6s7KeADQor67CV7Iic6riwDQor67CV7J6s66qFDQor67CV7IaM64+ZDQor67CV7KSA6rG0DQor67CV65297KGwDQor67CV7J6s67O1DQor67CV7YyQ7IicDQor67CV6riw66y1DQor67CV7KCV7KeEDQor67CV7J6s67aEDQor67CV7J247J6sDQor67CV7Jyk7Z2sDQor67CV7KKF64KoDQor67CV7J6s7IOBDQor67CV7IK87IudDQor67CV7IOB7ZuIDQor67CV7ZyY7ZmYDQor67CV7J6s7ISgDQor67CV7ISx7J6QDQor67CV64W47KSADQor67CV64yA6riwDQor67CV7J6s7Je0DQor67CV7Z2s656YDQor67CV7J6s7JWUDQor67CV7ZW07JiBDQor67CV7J6s7JiBDQor67CV7J247KGwDQor67CV7Jqp6recDQor67CV7ZmN7ZuIDQor67CV7J6s7JilDQor67CV7Jq07IStDQor67CV6rG07IicDQor67CV7KeE66qoDQor67CV7J6s7JilDQor67CV6reA7ZiEDQor67CV7LKg67O1DQor67CV642V66GdDQor67CV7J6s7JmEDQor67CV64+Z7KO8DQor67CV7ISd7Z2sDQor67CV7YOc7LGEDQor67CV7J6s7JmEDQor67CV7JiB7JiBDQor67CV7IOB6rCRDQor67CV67SJ7J20DQor67CV7J6s7JqpDQor67CV6rCV7ZiRDQor67CV7LCo6rG0DQor67CV67OR7KO8DQor67CV7J6s7Jq0DQor67CV7ISx7ISdDQor67CV6riw6re8DQor67CV66+47LacDQor67CV7J6s7JuQDQor67CV6raM64+ZDQor67CV7IOB66GADQor67CV66qF6re8DQor67CV7J6s7JuQDQor67CV7YOc7JewDQor67CV7ZW07IOBDQor67CV7Jm47IudDQor67CV7J6s7JykDQor67CV7ZeM6recDQor67CV6rec7JuFDQor67CV66y07IOBDQor67CV7J6s7J28DQor67CV7YOc7ZiEDQor67CV7ZmN6ri4DQor67CV7Zi47IudDQor67CV7J6s7J28DQor67CV7KKF7J6QDQor67CV7YOc6riwDQor67CV7ZWE7LKgDQor67CV7J6s7KeEDQor67CV7ZWt7KO8DQor67CV7KCQ7IudDQor67CV6riw6rG4DQor67CV7J6s7KeEDQor67CV7IiY7Z2sDQor67CV7J6s67SJDQor67CV67SJ7IudDQor67CV7J6s7LKgDQor67CV7IOB7KO8DQor67CV7J247IudDQor67CV7J6s67O1DQor67CV7J6s7LacDQor67CV7JaR7YOcDQor67CV7IOB7Zy0DQor67CV7J2Y7ZiEDQor67CV7J6s7ZWZDQor67CV7JuQ64+EDQor67CV7IOB7J28DQor67CV7ZmN7ZiEDQor67CV7J6s7ZWtDQor67CV7JiB7JuQDQor67CV7Jqw7ZWZDQor67CV642V7JiBDQor67CV7J6s7ZiEDQor67CV6riw7JiBDQor67CV64+Z7KSRDQor67CV7YOc7Z2sDQor67CV7J6s7ZiEDQor67CV7KeE6raMDQor67CV7KCV66y4DQor67CV7Jqp67CwDQor67CV7J6s7ZiEDQor67CV66y46rCVDQor67CV7Jyk6riwDQor67CV67OR7JewDQor67CV7J6s7Zi4DQor67CV7J247JuQDQor67CV67OR7KGwDQor67CV7J287ZiEDQor67CV7J6s7Zi4DQor67CV7KKF7IK8DQor67CV7J2Y7ZW0DQor67CV7J6s7YOcDQor67CV7J6s7Zi4DQor67CV7Jqw7IiZDQor67CV6rec7ISgDQor67CV7KeE64yADQor67CV7J6s7ZmNDQor67CV66eQ7Zi4DQor67CV7IOB7ISdDQor67CV6reA67CwDQor67CV7J6s7ZmNDQor67CV7YOc7IiYDQor67CV7YOc67O1DQor67CV7KeE7JuFDQor67CV7J6s7ZmNDQor67CV65GQ7Zi4DQor67CV7ISx7Zi4DQor67CV7JiB67SJDQor67CV7J6s7ZmNDQor67CV7Iig7ZmYDQor67CV7YOc7JiBDQor67CV6riw65OdDQor67CV7J6s7ZmYDQor67CV7LKg7JuFDQor67CV7J6s7IudDQor67CV6rK966GcDQor67CV7J6s7ZmYDQor67CV7KSR7Jq0DQor67CV7LC97Zy0DQor67CV7KeE7J6lDQor67CV7J6s7ZmYDQor67CV7Jqp7J6QDQor67CV66qF7JuQDQor67CV7J2A7KeADQor67CV7J6s7ZmYDQor67CV7KSR6re8DQor67CV7YOc7LKgDQor67CV7Jqw642VDQor67CV7J6s7ZuIDQor67CV7Jqw6riwDQor67CV7KKF7ZmYDQor67CV7JiB7IOBDQor67CV7KCQ64+ZDQor67CV7ISd7ISgDQor67CV7Jil7ZmNDQor67CV7KCV7ZiEDQor67CV7KCQ67O0DQor67CV7LC964+ZDQor67CV7LC97JmEDQor67CV6rWs7YOdDQor67CV7KCQ7IiYDQor67CV7KCQ7J20DQor67CV7ISd7IiYDQor67CV7Ja17JykDQor67CV7KCQ7IicDQor67CV642V66y1DQor67CV7LC97ZqMDQor67CV66qF7ZiEDQor67CV7KCQ7IigDQor67CV7KKF642VDQor67CV7KeE7ISgDQor67CV7ZiV7ZmUDQor67CV7KCQ7IigDQor67CV7ZmU7IudDQor67CV7JiB66qFDQor67CV6rSR7KO8DQor67CV7KCQ7IudDQor67CV67OR7ZmYDQor67CV66eM7Zi4DQor67CV7LCo7Ja4DQor67CV7KCQ7JqpDQor67CV65GQ7KGwDQor67CV7Jyk7Zi4DQor67CV6rOE7J6sDQor67CV7KCQ7J20DQor67CV7ZeM7ZmYDQor67CV66eM7KGwDQor67CV7ZeM7IiZDQor67CV7KCV6rWtDQor67CV7KSA7IiYDQor67CV64+Z6recDQor67CV7J2E7JiBDQor67CV7KCV6recDQor67CV7Jqw6riwDQor67CV7Iq566y4DQor67CV6rK97ZmUDQor67CV7KCV6riwDQor67CV67aA642VDQor67CV66qF7IOBDQor67CV7IOB7IiZDQor67CV7KCV6riwDQor67CV66yY7JuQDQor67CV7JiB6rK9DQor67CV7IOB6rK9DQor67CV7KCV64KoDQor67CV7IOB7ZiEDQor67CV7JiB7LaYDQor67CV7J6s64+MDQor67CV7KCV642VDQor67CV7KKF7J6QDQor67CV6riI7Je0DQor67CV7JiB7Zi4DQor67CV7KCV642VDQor67CV7KKF64KoDQor67CV7J6s6ri4DQor67CV67O17IiYDQor67CV7KCV64+EDQor67CV6rK97IiYDQor67CV7ISx7JilDQor67CV7Jew7IicDQor67CV7KCV64+EDQor67CV64+Z7Zi4DQor67CV64Ko6riwDQor67CV7YOc7IiYDQor67CV7KCV64+ZDQor67CV7ZWZ66qpDQor67CV7Iic67aEDQor67CV7J247IudDQor67CV7KCV65OdDQor67CV7ISg7IudDQor67CV7JiB7J6QDQor67CV7Iic7ZWZDQor67CV7KCV66GADQor67CV7IK87Zi4DQor67CV7YOc7JilDQor67CV7KO87Ja4DQor67CV7KCV67CwDQor67CV64yA7Zi4DQor67CV7ISx7ZeMDQor67CV67KU7J6sDQor67CV7KCV67SJDQor67CV6rSR6rWsDQor67CV66+47IiYDQor67CV66y47IiYDQor67CV7KCV67aADQor67CV7J6s7J6QDQor67CV7JiB7ISgDQor67CV7IiY7JWgDQor67CV7KCV7ISxDQor67CV7Z2s7Zi4DQor67CV67O166y4DQor67CV7JiB7Z2sDQor67CV7KCV7IiYDQor67CV64+Z7ISdDQor67CV7KKF67CwDQor67CV67OR7IiZDQor67CV7KCV7IiYDQor67CV7LaY7JewDQor67CV64+E6recDQor67CV7ISg67CwDQor67CV7KCV7IiYDQor67CV7ISx7LacDQor67CV7ISd7IudDQor67CV7JuU6ri4DQor67CV7KCV7IiYDQor67CV7Iq564KoDQor67CV7IaM7JuQDQor67CV7IiY7IiYDQor67CV7KCV7IiYDQor67CV6riw7ISgDQor67CV7J6E7J21DQor67CV7IOB7Iq5DQor67CV7KCV7IiYDQor67CV7Jqp642VDQor67CV7Jqp7LCsDQor67CV7ISd67O1DQor67CV7KCV7IicDQor67CV6rSA7J28DQor67CV65GQ7KGwDQor67CV7J6E642VDQor67CV7KCV7IicDQor67CV64yA64KoDQor67CV7J6s7LKgDQor67CV7Iic7IudDQor67CV7KCV7IudDQor67CV6riw7J28DQor67CV7JuU7ZWYDQor67CV7IiY7ZWYDQor67CV7KCV7IudDQor67CV67OR7JqwDQor67CV6riI6rSADQor67CV7KCV6rOkDQor67CV7KCV7IukDQor67CV7IOB7ISgDQor67CV7KKF7JuQDQor67CV67OR64yADQor67CV7KCV7JWgDQor67CV6rWt64KoDQor67CV7LC96ri4DQor67CV67OR7JqpDQor67CV7KCV7JewDQor67CV7ZWE7ZiEDQor67CV7JiB7KSRDQor67CV7J6s7JuFDQor67CV7KCV7Je0DQor67CV7Iq57IicDQor67CV7JiB66GADQor67CV7KKF7Zi4DQor67CV7KCV7JikDQor67CV7ZeM7JuFDQor67CV7J2464+EDQor67CV7YOc64+MDQor67CV7KCV7JqpDQor67CV7JiB7ISdDQor67CV7J287JqpDQor67CV7KO87ZiEDQor67CV7KCV7JqpDQor67CV7LaY7LKgDQor67CV65Od7KGwDQor67CV7ZWZ6recDQor67CV7KCV7Jq0DQor67CV7IOB7LacDQor67CV7ISd6riwDQor67CV7JuQ7LaYDQor67CV7KCV7Jq0DQor67CV64KZ7ZWZDQor67CV7KO87JuFDQor67CV67OR7ISdDQor67CV7KCV7J28DQor67CV6rK46rCRDQor67CV7KKF64+ZDQor67CV7JaR64W4DQor67CV7KCV7J6EDQor67CV64+Z7IiYDQor67CV6rSA7IiYDQor67CV6rK97ZiEDQor67CV7KCV7J6QDQor67CV7IOB7ZmUDQor67CV64+Z7IiYDQor67CV7LKc7KeEDQor67CV7KCV7J6QDQor67CV7Jqx7IicDQor67CVIOy2mA0KK+uwleyCrO2YhA0KK+uwleygleyekA0KK+uwleq4sO2YuA0KK+uwleyZuOyEnQ0KK+uwleycpOyhsA0KK+uwleygleyyoA0KK+uwleygkO2VmA0KK+uwleyImOuPmQ0KK+uwleyEseyLnQ0KK+uwleygley2nA0KK+uwleyYge2VmQ0KK+uwleyEoO2DnA0KK+uwleyInOy2nA0KK+uwleygle2VmA0KK+uwleuPmeyasQ0KK+uwleyKue2drA0KK+uwle2YnOyhsA0KK+uwleygle2VmA0KK+uwleyjvOq4sA0KK+uwleyEne2YhA0KK+uwleq0keuhnQ0KK+uwleygle2VmQ0KK+uwleyerOyEnQ0KK+uwleyYgeycpA0KK+uwleyjvOyInA0KK+uwleygle2VnA0KK+uwleuFuOyynA0KK+uwleyLnOuMgA0KK+uwleyYgeyImA0KK+uwleygle2WpQ0KK+uwlSDsg4ENCivrsJXsoJXtmIQNCivrsJXrs5Hrp4wNCivrsJXsoJXtl4wNCivrsJXsoJXrp4wNCivrsJXtnazsmqkNCivrsJXsmqntmLgNCivrsJXsoJXtmLgNCivrsJXquLDqt7wNCivrsJXsmIHqt6ANCivrsJXshLjsi50NCivrsJXsoJXtmZQNCivrsJXtmITsnbQNCivrsJXtlZztmLgNCivrsJXrtoTsp4QNCivrsJXsoJXtnawNCivrsJXquLDroKwNCivrsJXrj4Tsi50NCivrsJXsg4HssL0NCivrsJXsoJXtnawNCivrsJXtlqXtnawNCivrsJXrqoXtmLgNCivrsJXtjJDslYQNCivrsJXsoJXtnawNCivrsJXtlbTspJENCivrsJXstqnsmKUNCivrsJXqs4TsiKANCivrsJXsoJzrgqgNCivrsJXtnaztmZgNCivrsJXsmKTqt7wNCivrsJXsmZXshJ0NCivrsJXsobDsnbQNCivrsJXsnbTsobANCivrsJXrgqjrk50NCivrsJXsnoTrs7UNCivrsJXsobDsnbQNCivrsJXsmqnrspQNCivrsJXqsr3tmZgNCivrsJXsp4TshJ0NCivrsJXsooXqsbgNCivrsJXshKDsiJgNCivrsJXrs7TsiJwNCivrsJXqtJHrtIkNCivrsJXsooXqta0NCivrsJXso7zqsIANCivrsJXsnbjrj4QNCivrsJXqtJHsp4QNCivrsJXsooXqtowNCivrsJXtg5zrtIkNCivrsJXrgpzsiJkNCivrsJXsg4HrqqkNCivrsJXsooXqt5wNCivrsJXqs4TtnaUNCivrsJXsg4HquLANCivrsJXrjIDsmqkNCivrsJXsooXqt5wNCivrsJXshKDtmZQNCivrsJXshLjsoJwNCivrsJXshKDsl7QNCivrsJXsooXqt7wNCivrsJXrj5nsi50NCivrsJXquLDtnawNCivrsJXsoJXtmLgNCivrsJXsooXqt7wNCivrsJXqsr3ssqANCivrsJXsl7Dtm4gNCivrsJXsooXsl7ANCivrsJXsooXqt7wNCivrsJXrs5HsmIENCivrsJXsnqzrsLANCivrsJXsoJXsnpANCivrsJXsooXquLANCivrsJXrjIDqt7wNCivrsJXtmantmLgNCivrsJXsoJXsoJANCivrsJXsooXquLgNCivrsJXrgqjquLANCivrsJXquLDsiJkNCivrsJXstpjrtoQNCivrsJXsooXri6wNCivrsJXsnqzsoJUNCivrsJXsp4TstpwNCivrsJXrp7nsiJgNCivrsJXsooXrjIANCivrsJXsmIHqsr0NCivrsJXsooXsiJkNCivrsJXqs4TshJ0NCivrsJXsooXrk50NCivrsJXsmqnsiJwNCivrsJXrtInsnbQNCivrsJXtl4zsiJgNCivrsJXsooXrnb0NCivrsJXtnazqtowNCivrsJXrs5HsnKgNCivrsJXqsr3rjZUNCivrsJXsooXrnpgNCivrsJXsnqzrhbgNCivrsJXsnqzshLENCivrsJXrs5HshK0NCivrsJXsooXrr7wNCivrsJXtg5zsnKQNCivrsJXtmZjqtowNCivrsJXtmJzqtawNCivrsJXsooXrr7wNCivrsJXsm5Dtm4gNCivrsJXsmKXtmIQNCivrsJXsg4HstpwNCivrsJXsooXrs7UNCivrsJXqsr3sobANCivrsJXshLHsmIENCivrsJXrs5HtmLgNCivrsJXsooXsg4ENCivrsJXsmIHshK0NCivrsJXsmqnsmrANCivrsJXsgrztlZkNCivrsJXsooXshJ0NCivrsJXsmqnshLENCivrsJXshLHrnpgNCivrsJXsnqzqtIANCivrsJXsooXshJ0NCivrsJUg7KSRDQor67CV7ZmN7JWEDQor67CV7KO86re8DQor67CV7KKF7IStDQor67CV67OR64+EDQor67CV7KCc7ISgDQor67CV6rK96re8DQor67CV7KKF7IStDQor67CV7ISx7KGwDQor67CV7IK87IiYDQor67CV7J6s7JiBDQor67CV7KKF7IiYDQor67CV64+Z7ZWYDQor67CV7KO867SJDQor67CV7IOB6recDQor67CV7KKF7IiYDQor67CV6ri47ZmUDQor67CV7KCV7IudDQor67CV7KCV7IicDQor67CV7KKF7IiYDQor67CV7ZiE7KCVDQor67CV64+E6rSADQor67CV7IiY7Z2sDQor67CV7KKF7IiZDQor67CV7KeE7ISgDQor67CV7Jm47Y+sDQor67CV67OR66+8DQor67CV7KKF7IicDQor67CV7ZW06raMDQor67CV7KO87IiYDQor67CV64+Z6riwDQor67CV7KKF7IicDQor67CV7JiB7YOcDQor67CV7IiY7IStDQor67CV64yA7LCsDQor67CV7KKF7IigDQor67CV7ZW07Je0DQor67CV7KSR7JqwDQor67CV7Jqp7ZalDQor67CV7KKF7IudDQor67CV67O17IiYDQor67CV64Ko7JqpDQor67CV7YOc67CwDQor67CV7KKF7IudDQor67CV6rG07Zi4DQor67CV7LC97JqwDQor67CV7IyN64+EDQor67CV7KKF7IudDQor67CV7KCV6rOkDQor67CV67OR7IicDQor67CV7Jyk6riwDQor67CV7KKF7IudDQor67CV7JiB6rK9DQor67CV66qF7IK8DQor67CV7KO87IudDQor67CV7KKF7Je0DQor67CV7Jew7IigDQor67CV7Z2s7JuQDQor67CV7KKF7Zi4DQor67CV7KKF7Je0DQor67CV66eQ7ZmYDQor67CV642V7KGwDQor67CV7YOc7ZW0DQor67CV7KKF7JiBDQor67CV7KKF7Zi4DQor67CV7KCV7J6EDQor67CV6rSA6regDQor67CV7KKF7JikDQor67CV7Iic6rG0DQor67CV7YOc7LKgDQor67CV7LC966GdDQor67CV7KKF7JikDQor67CV6rSR7ZiEDQor67CV7KO87Je0DQor67CV7Z2s7ZmYDQor67CV7KKF7JilDQor67CV67OR7LKgDQor67CV7Jqp7IiYDQor67CV7IaM7ISdDQor67CV7KKF7JqwDQor67CV6re56rSADQor67CV66+87JuQDQor67CV7KCV7IiYDQor67CV7KKF7JqxDQor67CV6re87Iq5DQor67CV67SJ7IiZDQor67CV7IiY7ISdDQor67CV7KKF7JuQDQor67CV7IKs6raMDQor67CV7J287LacDQor67CV7YyQ67CwDQor67CV7KKF7JuQDQor67CV66y47Zi4DQor67CV7Jqp6riwDQor67CV6riI7IudDQor67CV7KKF7JyoDQor67CV7IK87ISxDQor67CV67SJ6529DQor67CV66+467aADQor67CV7KKF7J24DQor67CV7ISx7JilDQor67CV7J6s7IudDQor67CV7KCV6riwDQor67CV7KKF7KO8DQor67CV7IiY7ZWZDQor67CV7KKF64+EDQor67CV6rec67O1DQor67CV7KKF7KeEDQor67CV7KCQ7ZmYDQor67CV7J287JilDQor67CV65Od66GADQor67CV7KKF7KeEDQor67CV7YyQ7KCVDQor67CV7Jq07JqpDQor67CV64Ko7Jq0DQor67CV7KKF7LKgDQor67CV7IOB7Zi4DQor67CV7IiY6regDQor67CV7IOB7KGwDQor67CV7KKF7ZWcDQor67CV6rec7IudDQor67CV67OR7Z2sDQor67CV7ISx7ISdDQor67CV7KKF7Zi4DQor67CV66qF7ZmYDQor67CV66eM7IiYDQor67CV7IOB7YOcDQor67CV7KKF7Zi4DQor67CV7ISx6recDQor67CV7Iic7IudDQor67CV6rOE6rOkDQor67CV7KKF7Zi4DQor67CV7J6s7JqpDQor67CV7IOB7KSADQor67CV7Iq57JuQDQor67CV7KKF7Zi4DQor67CV7JiB6recDQor67CV67O17IigDQor67CV67OR7LGEDQor67CV7KKF7Zi4DQor67CV7KKF7ISdDQor67CV7Z2s7J24DQor67CV67aA7J6EDQor67CV7KKF7ZmUDQor67CV7ISx7ZiEDQor67CV6ri46recDQor67CV7Jqp7ISxDQor67CV7KKF7ZmUDQor67CV7LC966eMDQor67CV67OR6riwDQor67CV7KKF7KSADQor67CV7KKF7ZuIDQor67CV7J6E7ZiEDQor67CV7KO87Zi4DQor67CV7YyQ6rOkDQor67CV7KKF7ZuIDQor67CV67OR7JykDQor67CV64+Z7KSADQor67CV7J6l6riwDQor67CV7KKF7ZyYDQor67CV6rK97IicDQor67CV7LCs67aADQor67CV7J287IiYDQor67CV7KKF7Z2sDQor67CV67O07JiBDQor67CV7Lmg7KO8DQor67CV7JiB7KGwDQor67CV7KO86rSADQor67CV642V7Zi4DQor67CV7IOB7JWgDQor67CV7YOc7JWgDQor67CV7KO86rWtDQor67CV7KKF7IicDQor67CV64+E7ZmYDQor67CV7Zi467O1DQor67CV7KO864W4DQor67CV7IOB7ISdDQor67CV7IOB7LKgDQor67CV7ISx64+EDQor67CV7KO864+EDQor67CV7Zi47IiYDQor67CV6riw7IOdDQor67CV7ZW07JiBDQor67CV7KO864+MDQor67CV7Iug6riwDQor67CV6riw6rG4DQor67CV7J6s7IudDQor67CV7KO866eQDQor67CV7ZW07Jq0DQor67CV7LC97IiYDQor67CV7YOc7J28DQor67CV7KO867O1DQor67CV7ISg7JewDQor67CV7KCc7Y+sDQor67CV7J6s7ZWZDQor67CV7KO87ISdDQor67CV7ZiE7IiZDQor67CV7IiY7YOdDQor67CV6rec7YOdDQor67CV7KO87ISxDQor67CV6rOE66asDQor67CV64us6riwDQor67CV66eM7LmYDQor67CV7KO87IiYDQor67CV67O16rCRDQor67CV7Jqp7ZmYDQor67CV7IaM7Zi4DQor67CV7KO87JaRDQor67CV7YOc7JqpDQor67CV7KCV67O1DQor67CV7Jqp6ri4DQor67CV7KO87JikDQor67CV7YyQ7KGwDQor67CV6reA66eMDQor67CV7ISx656YDQor67CV7KO87JmEDQor67CV7Zi47JilDQor67CV7Z2s67CwDQor67CV6rK966GcDQor67CV7KO87JqwDQor67CV7IOB6rOkDQor67CV7ZmY66CoDQor67CV7IOB7IiYDQor67CV7KO87JuQDQor67CV7Iq57KSADQor67CV7Iq57ISgDQor67CV7KCV642VDQor67CV7KO87YOBDQor67CV7Zqo7JilDQor67CV7Jyk7IStDQor67CVIOq3vA0KK+uwleyjvO2DnA0KK+uwleyEseuPhA0KK+uwleyYgeyEoA0KK+uwleycpO2ZmA0KK+uwleyjvO2DnQ0KK+uwleyYgeuqhQ0KK+uwleyYgeq3nA0KK+uwleyDgeuztQ0KK+uwleyjvO2MlA0KK+uwleuptOuPjA0KK+uwleygleyXsA0KK+uwleyYgeyduA0KK+uwleyjvO2VtA0KK+uwleuzke2YhA0KK+uwleuqheyImA0KK+uwleuvuOuLrA0KK+uwleyjvO2YhA0KK+uwleyjvOyYpA0KK+uwleygleunjA0KK+uwleyEseyImQ0KK+uwleyjvO2ZmA0KK+uwleyInO2ZlA0KK+uwleyaqeyehA0KK+uwleyaqeyhsA0KK+uwleykgOq3nA0KK+uwleyerOyXsA0KK+uwleuzkeuwsQ0KK+uwleuPme2VnA0KK+uwleykgOustA0KK+uwleyerOyEnQ0KK+uwleuLrOyEnQ0KK+uwleyEne2YlQ0KK+uwleykgOuwsA0KK+uwleuMgOyLnQ0KK+uwle2VtO2YuA0KK+uwle2ZjeykgA0KK+uwleykgOyEnQ0KK+uwleyEseq3nA0KK+uwleyjvO2YuA0KK+uwleyImOqzpA0KK+uwleykgOyXtA0KK+uwleq3gOufiQ0KK+uwle2DnOyWuA0KK+uwleyerOuztQ0KK+uwleykgOyaqQ0KK+uwleyEneq3vA0KK+uwleywqOyIoA0KK+uwleuRkOyerA0KK+uwleykgO2DnA0KK+uwleyWke2VmA0KK+uwleykkeyImA0KK+uwleyYpeyEnQ0KK+uwleykgO2YuA0KK+uwleydgOuFhA0KK+uwle2VmeyInA0KK+uwleynhOyjvA0KK+uwleykgO2YuA0KK+uwleuPhOyLnA0KK+uwleyInOywqA0KK+uwleunjOqyvQ0KK+uwleykkeqxtA0KK+uwleynhOyLnQ0KK+uwleqwke2biA0KK+uwleyDgeyLnQ0KK+uwleykkeq3nA0KK+uwleyEneumvQ0KK+uwleyaqeyImA0KK+uwle2aqOyImA0KK+uwleykkeyxhA0KK+uwleyDgeyasA0KK+uwleyEseq4sA0KK+uwleyerOyEoA0KK+uwleyngOyErQ0KK+uwleyXsOq3oA0KK+uwleyImOyVlA0KK+uwleuzkeyghA0KK+uwleyngOyImA0KK+uwleyDgeyImA0KK+uwleyihe2YuA0KK+uwleyEoOuNlQ0KK+uwleyngOyIoA0KK+uwleuzkeyImA0KK+uwleykkeyasA0KK+uwleyYgeyYpQ0KK+uwleyngOyYpQ0KK+uwleuzkeycoA0KK+uwleyYgeynhA0KK+uwleyaqeyhsA0KK+uwleyngOyaqQ0KK+uwley2mO2YuA0KK+uwleyYgeyynA0KK+uwleq3vOyGjA0KK+uwleyngOyaqQ0KK+uwleyiheyLnQ0KK+uwleuMgOyErQ0KK+uwleyGjOyLnQ0KK+uwleyngOyjvA0KK+uwleynhOyLnQ0KK+uwleyYgeq3vA0KK+uwle2YuOyYgQ0KK+uwleyngO2VnA0KK+uwleyerO2ZmA0KK+uwley2mOyEoA0KK+uwleyCvOyjvA0KK+uwleyngO2YgQ0KK+uwleycpOyjvA0KK+uwleq4uOyEsQ0KK+uwleygleyekA0KK+uwleyngO2YuA0KK+uwleyasOq4uA0KK+uwleydteyImA0KK+uwle2DnOy2nA0KK+uwleyngO2ZmA0KK+uwleygkOuPhA0KK+uwleygle2ajA0KK+uwleynhOyImQ0KK+uwleyngO2biA0KK+uwleyiheyyoA0KK+uwleq3nOyImA0KK+uwleqwkeyasA0KK+uwleynhOq3nA0KK+uwleyEseyekA0KK+uwleybkO2XjA0KK+uwleu2gOqzpA0KK+uwleynhOq3nA0KK+uwleyImO2ZmA0KK+uwleuzkeyLnQ0KK+uwleyerOyImA0KK+uwleynhOu2gA0KK+uwleq4uO2YhA0KK+uwleyihe2DgQ0KK+uwle2YhOyekA0KK+uwleynhOyEsQ0KK+uwleuNleyEnQ0KK+uwleyDgeyLnQ0KK+uwleyduOuwsA0KK+uwleynhOyEsQ0KK+uwleustO2DnA0KK+uwleyDgeybhQ0KK+uwleqyve2ZmA0KK+uwleynhOyasA0KK+uwleyerOyihQ0KK+uwleuzkeyEoA0KK+uwleyYgeyaqQ0KK+uwleynhOyasA0KK+uwleyCvOyEsQ0KK+uwleq3oOuqhQ0KK+uwleuPme2drA0KK+uwleynhOyyoA0KK+uwleyImO2YuA0KK+uwleyImO2ZlA0KK+uwleuzkeyImA0KK+uwleynhO2XjA0KK+uwleyImeynhA0KK+uwleygleyekA0KK+uwleywrOyXtA0KK+uwleynhO2YuA0KK+uwleyMje2DnA0KK+uwleyXsOuloA0KK+uwle2DnO2YuA0KK+uwleynhO2ZlA0KK+uwleyerOyatA0KK+uwleyDgeyjvA0KK+uwle2WieycpA0KK+uwleynhO2ZmA0KK+uwleyEse2ZmA0KK+uwleuMgOuCqA0KK+uwleq4sO2DnA0KK+uwleywqOq3vA0KK+uwleusmOqzpA0KK+uwleqyveydtA0KK+uwleyDgeyImA0KK+uwleywqOunjA0KK+uwleygleyYpQ0KK+uwleyImeuPmQ0KK+uwleygleq3nA0KK+uwleywqOu0iQ0KK+uwleyyoOyKuQ0KK+uwleyerOyYpQ0KK+uwleuylOyEnQ0KK+uwleywqOyImA0KK+uwle2YhOyLnQ0KK+uwleyYgeyEoA0KK+uwleyjvOyjvA0KK+uwleywqOyehA0KK+uwleybkOyXsA0KK+uwleyYgeyLnQ0KK+uwle2VtOqzpA0KK+uwleywqO2XjA0KK+uwleyEoOyInA0KK+uwleywve2ZmA0KK+uwleyaqeuvvA0KK+uwleywrOq3nA0KK+uwle2DnOq0gA0KK+uwleygley2nA0KK+uwleydtO2drA0KK+uwleywrOuPmQ0KK+uwleyMjeuztQ0KK+uwleyaqeyImQ0KK+uwleuNle2VmQ0KK+uwleywrOu2gA0KK+uwleyepeyasA0KK+uwleyerO2YuA0KK+uwle2Vmeq1rQ0KK+uwleywrOyImA0KK+uwleyiheyImA0KK+uwleyerOuPmQ0KK+uwleyDgeyEoA0KK+uwleywrO2YhA0KK+uwleygleyImA0KK+uwleyEne2YuA0KK+uwleq3vOu0iQ0KK+uwleywrO2YuA0KK+uwleydteyYgQ0KK+uwleywvey2nA0KK+uwleyEseq0gA0KK+uwleywrO2YuA0KK+uwle2drOyImQ0KK+uwleyInOyLnQ0KK+uwle2DnO2drA0KK+uwleywrO2biA0KK+uwleq4sO2MkA0KK+uwleqwleuLqA0KK+uwleydvOyEnQ0KK+uwleywveqwkQ0KK+uwleynhO2DnA0KK+uwle2DnOyLnQ0KK+uwleygleycpA0KK+uwleywveq3nA0KK+uwleyblO2doA0KK+uwleyEseyLnQ0KK+uwleyaqeyEsQ0KK+uwleywveq3nA0KK+uwleyiheyLnQ0KK+uwleyInOqzoA0KK+uwleu0ieunjA0KK+uwleywveq3oA0KK+uwleyEneyXtA0KK+uwleyerO2ZmA0KK+uwleu2hOyEsQ0KK+uwleywveuMgA0KK+uwle2VmeyYgQ0KK+uwle2DnO2DnQ0KK+uwle2VnOqxtA0KK+uwleywveyImA0KK+uwleuemOyImA0KK+uwleqyve2drA0KK+uwleustO2ZmA0KK+uwleywveyImA0KK+uwleyDge2VmQ0KK+uwleyduO2YuA0KK+uwleyepe2DnQ0KK+uwleywveyInA0KK+uwleuPmeyImA0KK+uwleybkOq4uA0KK+uwleygleqzhA0KK+uwleywveyLnQ0KK+uwleyYgeyjvA0KK+uwleyInO2YuA0KK+uwleyerOyerA0KK+uwleywve2YhA0KK+uwleygleykgA0KK+uwleyEseydgA0KK+uwleyerOyekA0KK+uwleywve2YuA0KK+uwleyaqeyasQ0KK+uwleybkO2ZmA0KK+uwleyInO2YhA0KK+uwleywve2YuA0KK+uwleuPmeyImA0KK+uwle2ZlOq3nA0KK+uwleyEseq3vA0KK+uwleywve2YuA0KK+uwleykgO2ZmA0KK+uwleygkOyInA0KK+uwle2MkOunjA0KK+uwleywve2YuA0KK+uwleyDgeyXsA0KK+uwleyEneyInA0KK+uwleyihe2YuA0KK+uwleywve2ZmA0KK+uwleygleyImQ0KK+uwleyYpeyEoA0KK+uwleyYgeq4sA0KK+uwleyynOuNlQ0KK+uwleq3vOq4sA0KK+uwleq4sOyImA0KK+uwleyXsO2biA0KK+uwleyynOyErQ0KK+uwle2VtOyyoA0KK+uwleyZle2VmA0KK+uwleyCrO2ZlA0KK+uwleyynOyImA0KK+uwleyYgeyyoA0KK+uwleuPme2WpQ0KK+uwleykkeynhA0KK+uwleyynO2bhA0KK+uwleyEse2biA0KK+uwleyCvOycpA0KK+uwleqwkeq3nA0KK+uwleyyoOq3nA0KK+uwle2VnOq0kQ0KK+uwleyYgeuwsA0KK+uwleydgOyyoA0KK+uwleyyoOq3nA0KK+uwleuylOuekQ0KK+uwleyDge2biA0KK+uwle2aqO2ZmA0KK+uwleyyoOyImA0KK+uwleyerOq4sA0KK+uwleygleyasA0KK+uwleyYgeuztQ0KK+uwleyyoOyasA0KK+uwleyjvO2drA0KK+uwleyYge2biA0KK+uwleuPmeyImA0KK+uwleyyoO2YuA0KK+uwleykke2DnA0KK+uwle2DnOqzpA0KK+uwleuvuOyekA0KK+uwleyyoO2YuA0KK+uwleq3nOq3nA0KK+uwleuMgO2biA0KK+uwleyerOynhA0KK+uwleyyoO2ajA0KK+uwleyerO2ZjQ0KK+uwleqyveyErQ0KK+uwleq0keyImQ0KK+uwleyyreydtA0KK+uwleq2jOyImA0KK+uwleunjOyDgQ0KK+uwleuzteuzkQ0KK+uwleyyre2ajA0KK+uwleyiheq4sA0KK+uwleyLnOusuA0KK+uwleymneyInA0KK+uwley2mA0KK+uwleuzkQ0KK+uwleyInA0KK+uwleuRkA0KK+uwley2mOqyvQ0KK+uwleygkOuqqA0KK+uwleygleuegA0KK+uwleyGjO2ZqQ0KK+uwley2mOq0kQ0KK+uwleydteykgA0KK+uwleygleyDnQ0KK+uwley5oOyaqQ0KK+uwley2mOq4uA0KK+uwleyKueyEnA0KK+uwleuNleyImA0KK+uwleyYgeuPhA0KK+uwley2mOuztQ0KK+uwleyInOyYgQ0KK+uwleyEse2ZmA0KK+uwleyDgeunjA0KK+uwley2mOyEoA0KK+uwleustOyYpQ0KK+uwleuFuOyasA0KK+uwleuylOq3vA0KK+uwley2mOyImA0KK+uwleuNleuqhQ0KK+uwleuMgOyynA0KK+uwley2mOykgA0KK+uwley2mOyImA0KK+uwle2VtO2biA0KK+uwle2dpe2YuA0KK+uwle2YhOuvuA0KK+uwley2mOyLnQ0KK+uwleykkeuemA0KK+uwle2YuOyErQ0KK+uwleq4sOqzhA0KK+uwley2mOyYgQ0KK+uwleyEneyImQ0KK+uwleyiheyynA0KK+uwle2Vme2ZmA0KK+uwley2mOyYgQ0KK+uwleynhO2YhA0KK+uwleygleyEoA0KK+uwleuzkeuPmQ0KK+uwley2mOyYgQ0KK+uwle2DnO2YuA0KK+uwleyDgeybkA0KK+uwleuqheqyvQ0KK+uwley2mOydvA0KK+uwleyDgeqzpA0KK+uwleyDge2YuA0KK+uwleyCvO2drA0KK+uwley2mO2YuA0KK+uwleqyveuPhA0KK+uwleyaqe2ZmA0KK+uwle2DnOyerA0KK+uwley2mO2ZlA0KK+uwle2DnOyImA0KK+uwle2MkOyaqQ0KK+uwleq4sOyLpA0KK+uwley2mO2drA0KK+uwleq4iOyatA0KK+uwleyMjeuPhA0KK+uwleuRkOyyoA0KK+uwley2qe2doA0KK+uwleyEseyasA0KK+uwleuvuOq3oA0KK+uwleykkeyLnQ0KK+uwley5mOyImQ0KK+uwleyiheyEoA0KK+uwleyInOq0kQ0KK+uwleyynOyImA0KK+uwley5oOusuA0KK+uwleywveybkA0KK+uwle2PieustA0KK+uwleqyve2doA0KK+uwley5oOyaqQ0KK+uwleunjOyImA0KK+uwleyEneyImA0KK+uwle2VnOyjvA0KK+uwle2DnOqyvQ0KK+uwleuzkeuLrA0KK+uwley2qeyaqQ0KK+uwleyerOydtQ0KK+uwle2DnOqzpA0KK+uwleuzkeuPjA0KK+uwleqyveywrA0KK+uwleyduOyWkQ0KK+uwle2DnOq3nA0KK+uwleq4sOyInA0KK+uwleyiheq3nA0KK+uwleuPmeyXsA0KK+uwle2DnOq3nA0KK+uwleyEse2drA0KK+uwlSDsmKQNCivrsJXrjZXtnawNCivrsJXtg5zqt5wNCivrsJXrs5HsmrQNCivrsJXsnoTsl7ANCivrsJXrs7Xrp4wNCivrsJXtg5zqt6ANCivrsJXqtJHsiJgNCivrsJXrs5Hqt7wNCivrsJXsnYTsnbgNCivrsJXtg5zqt7wNCivrsJXshoztnawNCivrsJXsp4TrqqkNCivrsJXsnqzsiJwNCivrsJXtg5zqt7wNCivrsJXsoJXqt5wNCivrsJXsmqnsp4QNCivrsJXrjIDtmZQNCivrsJXtg5zrj5kNCivrsJXsmqnsmKUNCivrsJXsp4TqtawNCivrsJXsg4HsnpANCivrsJXtg5zrk50NCivrsJXsoJXslZQNCivrsJXsnqzsnKQNCivrsJXsooXsi50NCivrsJXtg5zrprwNCivrsJXstqntg5wNCivrsJXsi5ztmLgNCivrsJXrtInrtoQNCivrsJXtg5zrrLgNCivrsJXsiJjsobANCivrsJXsirnso7wNCivrsJXslZTshKANCivrsJXtg5zrspQNCivrsJXsmIHrr7gNCivrsJXtnaztm4gNCivrsJXsg4HsnbwNCivrsJXtg5zrtIkNCivrsJXsmqnrnpgNCivrsJXsooXqt7wNCivrsJXsmIHqt7wNCivrsJXtg5zrtIkNCivrsJXrqoXtg50NCivrsJXtg5zssqANCivrsJXsp4TsiJgNCivrsJXtg5zsg4ENCivrsJXssKzrtoANCivrsJXquIjsi50NCivrsJXslpHsiJwNCivrsJXtg5zshJ0NCivrsJXtlYTsiJgNCivrsJXshLHqt5wNCivrsJXrgqjtmZgNCivrsJXtg5zshKANCivrsJXtmLjsi50NCivrsJXtlbTshLENCivrsJXsiJjtmLgNCivrsJXtg5zshK0NCivrsJXsnqzqt5wNCivrsJXsvozshKANCivrsJXrgpnstpwNCivrsJXtg5zshLENCivrsJXslpHtg5wNCivrsJXsnqzruYgNCivrsJXsm5Dsi50NCivrsJXtg5zshLENCivrsJXsg4Hrs7QNCivrsJXtg5zsi50NCivrsJXsmIHqtIANCivrsJXtg5zsiJgNCivrsJXsg4Hqta0NCivrsJXsmrTqt7wNCivrsJXsmIHquLANCivrsJXtg5zsiJgNCivrsJXrtIntg50NCivrsJXqsbTsnKQNCivrsJXsmrDtg50NCivrsJXtg5zsiJwNCivrsJXtmZjtg50NCivrsJXqt7zsiJgNCivrsJXsg4HsiJwNCivrsJXtg5zsi50NCivrsJXsmIHqt7wNCivrsJXsnYDsmqkNCivrsJXsnbzsp4QNCivrsJXtg5zsi50NCivrsJXsooXsl7ANCivrsJXslpHsnqwNCivrsJXtlZntnawNCivrsJXtg5zslZQNCivrsJXsmrDsmKQNCivrsJXrs5Hrs7UNCivrsJXshozsl7QNCivrsJXtg5zsl7ANCivrsJXtko3snbQNCivrsJXrp4zrqoUNCivrsJXsiJnqt7wNCivrsJXtg5zsmIENCivrsJXsi5zrs7UNCivrsJXrj5nsiKANCivrsJXqsr3rs7UNCivrsJXtg5zsmIENCivrsJXsm5Dqt7wNCivrsJXqtJHroKgNCivrsJXsoJXsmIENCivrsJXtg5zsmYQNCivrsJXshLHsmKUNCivrsJXqt5zsl7QNCivrsJXtl4zsnpANCivrsJXtg5zsmqkNCivrsJXsmIHsiJwNCivrsJXsoJXssYQNCivrsJXrqoXtg5wNCivrsJXtg5zsmrANCivrsJXqtJHsiJgNCivrsJXqtJHqsr0NCivrsJXqt5zshK0NCivrsJXtg5zsm5ANCivrsJXsmqnsmIENCivrsJXssKjsiJgNCivrsJXqsJHsobANCivrsJXtg5zsnKQNCivrsJXtlZnsi50NCivrsJXrjIDquLgNCivrsJXtg5ztg50NCivrsJXtg5zsnbwNCivrsJXrrLTsi50NCivrsJXsmIHrp4wNCivrsJXspIDsiJgNCivrsJXtg5zsoJUNCivrsJXsgrzsiJwNCivrsJXsiJjtmIQNCivrsJXtnazsnoQNCivrsJXtg5zso7wNCivrsJXsg4HtmLgNCivrsJXsmqntmJUNCivrsJXshLHshKANCivrsJXtg5zso7wNCivrsJXsoJXqsr0NCivrsJXquLjsiJwNCivrsJXtmqjtmZgNCivrsJXtg5zssqANCivrsJXsmIHsnbQNCivrsJXsm5TtmLgNCivrsJXsp4TsiJgNCivrsJXtg5ztlZkNCivrsJXsoJXsiKANCivrsJXrgqjsp4QNCivrsJXtmJzsobANCivrsJXtg5ztl4wNCivrsJXsoJXrrLgNCivrsJXtlbTqta0NCivrsJXsl7DsiJwNCivrsJXtg5ztmIQNCivrsJXrj5nsiJgNCivrsJXsiJjsmIENCivrsJXsnYTtmIQNCivrsJXtg5ztmJUNCivrsJXshJ3tmLgNCivrsJXrs5Hqt7wNCivrsJXrrLTshKANCivrsJXtg5ztmLgNCivrsJXquLDquLANCivrsJXqsr3shK0NCivrsJXsmqnsiJgNCivrsJXtg5ztmLgNCivrsJXsnbXrtIkNCivrsJXsooXsobANCivrsJXsp4TquLANCivrsJXtg5ztmLgNCivrsJXsnoTroZ0NCivrsJXsooXstpgNCivrsJXssKjtmIQNCivrsJXtg5ztmY0NCivrsJXtl4ztg5wNCivrsJXrs5Hsp4QNCivrsJXsnqzshKANCivrsJXtg5ztmZQNCivrsJXrgqjquIgNCivrsJXsmIHsoJUNCivrsJXquLjtm4gNCivrsJXtg5ztmZgNCivrsJXsooXso7wNCivrsJXso7zsmrANCivrsJXshqHssqANCivrsJXtg5ztmowNCivrsJXsoJXsiJwNCivrsJXrj5nqtowNCivrsJXso7zsmIENCivrsJXtg5ztm4gNCivrsJXsnqzsiJkNCivrsJXsmIHsg4ENCivrsJXshKTquLgNCivrsJXtjJDqs6ANCivrsJXsoJXqtowNCivrsJXsiJzsiJkNCivrsJXtmqjqt7wNCivrsJXtjJDqt7wNCivrsJXrqoXsi50NCivrsJXsooXrjIANCivrsJXsmrHrj5kNCivrsJXtjJDrjZUNCivrsJXtg5zrp4wNCivrsJXsmIHtmLgNCivrsJXsmKXsnbQNCivrsJXtjJDrj4QNCivrsJXsooXsiJgNCivrsJXsiJjsiJgNCivrsJXsooXsi50NCivrsJXtjJDshJ0NCivrsJXsl7DqtowNCivrsJXsgrztmLgNCivrsJXsoJXsnbUNCivrsJXtjJDstpwNCivrsJXshLHrnpENCivrsJXquLDtmLgNCivrsJXshLHsi50NCivrsJXtjJDtl4wNCivrsJXsmIHso7wNCivrsJXrs7Tqs6ANCivrsJXsiJjshJ0NCivrsJXtjJTsiJgNCivrsJXsooXsiJgNCivrsJXqtaztg50NCivrsJXrrLjso7wNCivrsJXtko3slrgNCivrsJXtmZTsl7ANCivrsJXsiJjqt5wNCivrsJXtnazspIANCivrsJXtlZjqsr0NCivrsJXrrLTsi50NCivrsJXtnazrnoANCivrsJXqsr3snbQNCivrsJXtlZnshJwNCivrsJXtg5zsmqkNCivrsJXrj5nrtIkNCivrsJXsnKTsmrANCivrsJXtlZzqt5wNCivrsJXrrJjsm5ANCivrsJXssqDsnYANCivrsJXsi6DshJ0NCivrsJXtlZzquLANCivrsJXssqDsi50NCivrsJXtg5zsi50NCivrsJXqt7zrsLANCivrsJXtlZzsiJgNCivrsJXrtoDqt7wNCivrsJXrs5Hqt5wNCivrsJXsoJXtmLgNCivrsJXtlZzsobANCivrsJXsnqztmZgNCivrsJXshKDqsJENCivrsJXsnqXsgrwNCivrsJXtla3suZgNCivrsJXri6zsiJwNCivrsJXshLHsmqkNCivrsJXssYTsmKUNCivrsJXtlbTqt5wNCivrsJXtmqjsmKUNCivrsJXsiJjquLANCivrsJXsmqntm4gNCivrsJXtlbTrj4QNCivrsJXstpjqsJUNCivrsJXshJ3si50NCivrsJXshLHtmLgNCivrsJXtlbTrj4QNCivrsJXtg5zsi50NCivrsJXtnazquLANCivrsJXstpjrhbgNCivrsJXtlbTrj5kNCivrsJXrtIntmIQNCivrsJXqtJHquLANCivrsJXsiJzquLANCivrsJXtlbTrj5kNCivrsJXsi6Dqt5wNCivrsJXsl7Dsl7ANCivrsJXsoJXsmZUNCivrsJXtlbTrj5kNCivrsJXsoJXsgrwNCivrsJXsoJXtmZgNCivrsJXsnbjshJ0NCivrsJXtlbTro6ENCivrsJXquLjshK0NCivrsJXshLHsiJwNCivrsJXqt4DrtIkNCivrsJXtlbTro6ENCivrsJXrs5HsiJgNCivrsJXshLHsg4ENCivrsJXsiJjqtawNCivrsJXtlbTrtpUNCivrsJXrtoTsmIENCivrsJXsg4HshKANCivrsJXsnKDsl7ANCivrsJXtlbTshJ0NCivrsJXsnpDsiJwNCivrsJXqtazsnpANCivrsJXrtInsiJgNCivrsJXtlbTshLENCivrsJXqt5zsiJgNCivrsJXtm4Tsl7ANCivrsJXsmIHsiJgNCivrsJXtlbTsnpANCivrsJXsoJXqtawNCivrsJXquLDsnqwNCivrsJXsmIHrj5kNCivrsJXtlbTsobANCivrsJXrj4TsiJkNCivrsJXsg4HsnbQNCivrsJXsg4HsmqkNCivrsJXtlqXsl7ANCivrsJXrqbTquLANCivrsJXsgrztmZgNCivrsJXrj5nsmqkNCivrsJXtl4zqt5wNCivrsJXshLHtmowNCivrsJXtg5zsmrQNCivrsJXsoJXquLgNCivrsJXtl4zrjZUNCivrsJXsiJzsiJgNCivrsJXrqoXsgrwNCivrsJXrs5HtlZwNCivrsJXtl4zsm5ANCivrsJXsoJDshKANCivrsJXqt7zrgqgNCivrsJXssL3sspwNCivrsJXtmITrr7wNCivrsJXqsJHrtIkNCivrsJXsmIHtg50NCivrsJXsg4HsobANCivrsJXtmITshK0NCivrsJXsnqzshKANCivrsJXrs5Hsi50NCivrsJXslpHsiJgNCivrsJXtmITshK0NCivrsJXquIjshKANCivrsJXshLHsiJgNCivrsJXquLDtmY0NCivrsJXtmITsiJgNCivrsJXsnbjsiJwNCivrsJXqsJHtmZgNCivrsJXtmITqsJENCivrsJXtmITsiJgNCivrsJXtmozsp4QNCivrsJXqtJHroKgNCivrsJXsmKXrj4QNCivrsJXtmITsiJgNCivrsJXsnbjrj4QNCivrsJXquLDsl7QNCivrsJXtlZnquLANCivrsJXtmITsiJkNCivrsJXtg5zsmIENCivrsJXrs7XsmrANCivrsJXsirnrj4QNCivrsJXtmITsi6ANCivrsJXrtIntmY0NCivrsJXsmIHsm4UNCivrsJXsirnsl7QNCivrsJXtmITsl4UNCivrsJXquLDtl4wNCivrsJXsnYDsnpANCivrsJXsmIHsiJwNCivrsJXtmITsmrANCivrsJXqt5zqs4QNCivrsJXtmY3qt5wNCivrsJXsooXtmLgNCivrsJXtmITso7wNCivrsJXtg5zqsJUNCivrsJXspJHqt7wNCivrsJXsp4TsiJgNCivrsJXtmITssYQNCivrsJXsnbzsmIENCivrsJXsiJjqt5wNCivrsJXqs4TsoJwNCivrsJXtmITtg5wNCivrsJXsiJzshLENCivrsJXsnqztg4ENCivrsJXrj5nsl7QNCivrsJXtmITtmZgNCivrsJXsmIHquLANCivrsJXrs5Hrj5kNCivrsJXrj5nrtoQNCivrsJXtmJXrnpgNCivrsJXtlbTsm5ANCivrsJXssKjsmKUNCivrsJXquLDtlqUNCivrsJXtmJXshJwNCivrsJXsmIHtnawNCivrsJXsmIHsobANCivrsJXsm5DtmY0NCivrsJXtmJXsnqwNCivrsJXtmJXsnpANCivrsJXrs5HtlbQNCivrsJXtnazsmIENCivrsJXtmJzsnpANCivrsJXrtInsiJwNCivrsJXssqDsiJkNCivrsJXrtoTsmqkNCivrsJXtmLjqt5wNCivrsJXsmKXqtawNCivrsJXsg4HrrLgNCivrsJXsgrzsiJwNCivrsJXtmLjqt7wNCivrsJXsmIHsnKgNCivrsJXsooXshK0NCivrsJXsmIHqtawNCivrsJXtmLjrj5kNCivrsJXqsJHsmIENCivrsJXqt5zsobANCivrsJXsoJXtg5wNCivrsJXtmLjrtIkNCivrsJXsg4HtmZgNCivrsJXsooXsi50NCivrsJXtg5zslZQNCivrsJXtmLjshJ0NCivrsJXtlZzsi50NCivrsJXshLHqsJENCivrsJXtmqjrgqgNCivrsJXtmLjsoJUNCivrsJXssL3slZQNCivrsJXrj5nsooUNCivrsJXrqoXshKANCivrsJXtmLjsp4QNCivrsJXsmKXso7wNCivrsJXsnqzsiJgNCivrsJXrjZXssqANCivrsJXtmLjstpgNCivrsJXqsr3rp4wNCivrsJXsnqXsnbQNCivrsJXsg4Hsm5ANCivrsJXtmY3qt7wNCivrsJXrj5nsiJgNCivrsJXssKzquLANCivrsJXri6ztg5wNCivrsJXtmY3quLgNCivrsJXqsr3smIENCivrsJXsmqntlYQNCivrsJXtmZTsiJwNCivrsJXtmY3rj5kNCivrsJXqt4DshKANCivrsJXsnITssqANCivrsJXsiJzsmrANCivrsJXtmY3rrLUNCivrsJXshozrr7gNCivrsJXsmIHsnbUNCivrsJXrs7Xqt5wNCivrsJXtmY3ruYgNCivrsJXsnbjspIANCivrsJXtg5zqt6ANCivrsJXsgrzshKANCivrsJXtmZjsl7QNCivrsJXshLHtmZgNCivrsJXqtJHqtawNCivrsJXshLHsnqwNCivrsJXtmZjsnbQNCivrsJXsmIHsiJkNCivrsJXrr7jtl4wNCivrsJXrqoXslbwNCivrsJXtmanqsr0NCivrsJXrrLTsmrANCivrsJXtg53tmLgNCivrsJXsmqnsnKQNCivrsJXtmozqt7wNCivrsJXstpjtg50NCivrsJXshKDquIgNCivrsJXqtazquLgNCivrsJXtmqjqt5wNCivrsJXsg4HsiKANCivrsJXrp5DtmLgNCivrsJXrjIDsi50NCivrsJXtmqjsooUNCivrsJXrjZXroYANCivrsJXsp4Tsg4ENCivrsJXrs5Hqt5wNCivrsJXtnJjsgrwNCivrsJXsp4TsmKUNCivrsJXsmKXsm5ANCivrsJXsg4HsiJwNCivrsJXtnazrj5kNCivrsJXsiJjrj5kNCivrsJXsiJzshK0NCivrsJXsmIHtmLgNCivrsJXtnazrs7UNCivrsJXqsJHrgpwNCivrsJXsmIHtmIQNCivrsJXsnbztl4wNCivrsJXtnazsg4ENCivrsJXtmY3rj4QNCivrsJXsnqztmIQNCivrsJXsi5zsoJwNCivrsJXtnazshJ0NCivrsJXrs5HshLENCivrsJXqtJHsi50NCivrsJXsooXsnqwNCivrsJXtnazshLENCivrsJXshLHroKgNCivrsJXsoJXrrLgNCivrsJXsnqzshLgNCivrsJXtnazshLENCivrsJXqtJHquIgNCivrsJXrjIDrj4wNCivrsJXrtIntmZgNCivrsJXtnazshqENCivrsJXshKDrspQNCivrsJXrn4nssqANCivrsJXsnqzqta0NCivrsJXtnazsl7ANCivrsJXrr7zrjZUNCivrsJXrkZDtmLgNCivrsJXshLHrj5kNCivrsJXtnazsl7QNCivrsJXrj5nshJ0NCivrsJXtg5zsnqwNCivrsJXqsr3ssqANCivrsJXtnazsnqUNCivrsJXsooXrnoANCivrsJXsmKXqtowNCivrsJXrjZXsuZgNCivrsJXtnazsp4QNCivrsJXsiJjqt5wNCivrsJXshLHqsbgNCivrsJXsg4Hsg4ENCivrsJXtnazssYQNCivrsJXqsJHsm5ANCivrsJXsooXqsJENCivrsJXquLDqt7wNCivrsJXtnazssqANCivrsJXshLHrnpgNCivrsJXshLHrs7UNCivrsJXqsrjtmZgNCivrsJXtnazssqANCivrsJUg67SJDQor67CV7J6s7ZiEDQor67CV7KKF7ZmUDQor67CV7Z2s7YOcDQor67CV7LC964KoDQor67CV6ri46riwDQor67CV64yA7JqpDQor67CpIOq4uA0KK+uwqeydvO2YlQ0KK+uwqe2DnOygnA0KK+uwqeyaqeyXhQ0KK+uwqeqyveyhsA0KK+uwqeuPiOyImA0KK+uwqeyYpeykkQ0KK+uwqeyekOyErQ0KK+uwqeq4uOyglQ0KK+uwqeyLnO2YhA0KK+uwqeqxtO2VtA0KK+uwqeyKue2ZlA0KK+uwqeuNleykgA0KK+uwqeyYpeydtA0KK+uwqeyImOyaqQ0KK+uwqe2DnOyhsA0KK+uwqeuvuOyglQ0KK+uwqeyduO2ZlA0KK+uwqeyduOyLnQ0KK+uwqeyInO2YuA0KK+uwqeuzkeyErQ0KK+uwqeyiheyYgQ0KK+uwqeuzkeyglQ0KK+uwqeyYpeyImA0KK+uwqeyDgeqzpA0KK+uwqeyYgeyLnQ0KK+uwqeqyve2ZmA0KK+uwqeyYpOyXsA0KK+uwqeyKueq3nA0KK+uwqeyerOyImA0KK+uwqeyDgeybkA0KK+uwqeyDgeyatA0KK+uwqeyLoOyEoA0KK+uwqeyEoOyekA0KK+uwqeqwkeuPhA0KK+uwqeyDgeq1rA0KK+uwqeyYgeq3oA0KK+uwqeyehOyInA0KK+uwqeyDgeyasA0KK+uwqeuzkeyImA0KK+uwqeyYgeuMgA0KK+uwqe2YuOywvQ0KK+uwqeyihe2DnQ0KK+uwqeyerOyInA0KK+uwqeyYgeydtQ0KK+uwqeuCmeusmA0KK+uwqeygleyXsA0KK+uwqeuFuO2YuA0KK+uwqeyYpeq4iA0KK+uwqeyYgeq0gA0KK+uwqeuMgOyIoA0KK+uwqeyYgeuPhA0KK+uwqeybkOygnA0KK+uwqeyKueyerA0KK+uwqe2YhO2XjA0KK+uwqe2VnOyEsQ0KK+uwqeycpOyEoA0KK+uwqeyDgeuFuA0KK+uwqeq0key2nA0KK+uwqeydhOuNlQ0KK+uwqeycpOyhsA0KK+uwqey5oOyEoA0KK+uwqe2VreyekA0KK+uwqeygkO2drA0KK+uwqeygkOyInA0KK+uwqeyDgeybhQ0KK+uwqeykkeyVoA0KK+uwqeuzkeyWuA0KK+uwqeygkOyXsA0KK+uwqeygleyduA0KK+uwqeyEseybhQ0KK+uwqeyjvOq3nA0KK+uwqeygleyInA0KK+uwqeq4sOyekA0KK+uwqeyasOyImA0KK+uwqeyDgeyEoA0KK+uwqeyiheq4sA0KK+uwqeq4sOuCqA0KK+uwqeyjvOyXtA0KK+uwqeyerOyInA0KK+uwqeyjvOuCqA0KK+uwqe2MkOq1rA0KK+uwqeywqO2VmA0KK+uwqeuPhOyasA0KK+uwqe2DnO2biA0KK+uwqeyDgeyImA0KK+uwqeyYgeyImA0KK+uwqeqyveyEnQ0KK+uwqe2VnOyglQ0KK+uwqeustOu0iQ0KK+uwqeyngOuPmQ0KK+uwqeu2gOydvA0KK+uwqe2VnOyglQ0KK+uwqeyWteyEoA0KK+uwqeydkeyLpA0KK+uwqeunkOyZhA0KK+uwsCDsmqkNCivrsLDshLHtmLgNCivrsLDshJ3smKQNCivrsLDtg5zspIANCivrsLDqsJHrjZUNCivrsLDsnKTtmLgNCivrsLDrs5HrtoQNCivrsLDrs5HtmIQNCivrsLDqsJHshJ0NCivrsLDshJ3sobANCivrsLDsooXqt5wNCivrsLDsooXtm4gNCivrsLDqsr3rpZwNCivrsLDsooXstpwNCivrsLDsmKXsiJwNCivrsLDsooXqt5wNCivrsLDqsr3rs5ENCivrsLDsg4HsnbQNCivrsLDsmqntlZkNCivrsLDsmqnso7wNCivrsLDqsr3sl7QNCivrsLDtlbTssqANCivrsLDsiJjspIANCivrsLDqsJXsiJwNCivrsLDqsr3tmLgNCivrsLDtmITsmIENCivrsLDsoJXsnbQNCivrsLDtg5ztlZwNCivrsLDqs4TsiKANCivrsLDsooXsnpANCivrsLDshLjsiJgNCivrsLDsmIHrs7UNCivrsLDqtIDtmLgNCivrsLDsm5Drp4wNCivrsLDsnKTso7wNCivrsLDquLDqtawNCivrsLDqtJHsiJgNCivrsLDsnqztg50NCivrsLDsnbzrtoQNCivrsLDshLHtlZkNCivrsLDqtZDrrLgNCivrsLDtl4zsiJgNCivrsLDsnKTqt7wNCivrsLDrp4zsi50NCivrsLDqta3rpqwNCivrsLDrr7jrsLANCivrsLDsmIHtmZgNCivrsLDsiJjsmrANCivrsLDqtozsi50NCivrsLDsnqzslZQNCivrsLDtg5ztmLgNCivrsLDsoJXtmLgNCivrsLDqtoztlqUNCivrsLDshLHqs6ANCivrsLDsooXtl4wNCivrsLDsg4HrjZUNCivrsLDqt4DshKANCivrsLDquLjsmIENCivrsLDsmIHrjZUNCivrsLDsmIHsiJgNCivrsLDqt5ztmZgNCivrsLDtmLjsi50NCivrsLDtlbTssKwNCivrsLDsmqnshK0NCivrsLDqt7zsmKUNCivrsLDsmIHsg4ENCivrsLDsmIHsiJwNCivrsLDtmLjqt7wNCivrsLDqt7ztmLgNCivrsLDtlZjsm5ANCivrsLDrrLjshK0NCivrsLDsooXtmLgNCivrsLDquIjsiJwNCivrsLDshLjsm4UNCivrsLDsmIHsoJANCivrsLDrqoXtnawNCivrsLDquIjslYUNCivrsLDtlZzshKANCivrsLDsnYDqsJwNCivrsLDsmIHrk50NCivrsLDquLDrtIkNCivrsLDtg5zquLANCivrsLDsp4TrspQNCivrsLDshLHso7wNCivrsLDquLDrtoQNCivrsLDtl4zsp4ANCivrsLDsnqzsiJgNCivrsLDtlbTsmrENCivrsLDquLDshJwNCivrsLDquLDsiJwNCivrsLDsg4Hqt5wNCivrsLDspIDssqANCivrsLDquLDtmqgNCivrsLDsmIHtg5wNCivrsLDtlZnquLANCivrsLDrtoTtmZgNCivrsLDquLjtmZgNCivrsLDtmY3sg4ENCivrsLDsnbTspIANCivrsLDsirnsmqkNCivrsLDrgpntj6wNCivrsLDsoJXtmIQNCivrsLDshLHtmZQNCivrsLDrs5Hrj5kNCivrsLDrgqjsobANCivrsLDrqoXshJ0NCivrsLDqt7zsnbQNCivrsLDtl4zrr7gNCivrsLDrgqjtnawNCivrsLDrs5HquLgNCivrsLDqtJHssqANCivrsLDsnYTqt7wNCivrsLDri6zqtowNCivrsLDsgqzquLANCivrsLDsp4DsnqwNCivrsLDsiJzsmKUNCivrsLDrjIDsi50NCivrsLDsmIHquLANCivrsLDqsr3si50NCivrsLDsmqnsiKANCivrsLDrjIDtmLgNCivrsLDshLHsiJkNCivrsLDsm5DsiJwNCivrsLDsooXsm4UNCivrsLDrjZXrrLgNCivrsLDsmIHshLENCivrsLDsmIHsmqkNCivrsLDsooXsl7QNCivrsLDrjZXrrLgNCivrsLDsnKTtg5wNCivrsLDsiJjqta0NCivrsLDsnqzsiJgNCivrsLDrjZXshJ0NCivrsLDsooXrsLANCivrsLDsp4TsnbQNCivrsLDspJHquLANCivrsLDrjZXsiJgNCivrsLDrs7XtnaANCivrsLDsnpDqsJENCivrsLDsmIHsmqkNCivrsLDrjZXsnqwNCivrsLDqt7ztmZgNCivrsLDsooXshJ0NCivrsLDquLDsnpANCivrsLDrj4Tsl7ANCivrsLDsg4HtmZgNCivrsLDrj5nshJ0NCivrsLDsmIHsooUNCivrsLDrj4Tsl7ANCivrsLDsiJjqt5wNCivrsLDrp5Dsl7ANCivrsLDrtoTsnbwNCivrsLDrj5nsiJgNCivrsLDrs5HsnpANCivrsLDtg5ztmIQNCivrsLDsnbzqs6QNCivrsLDrj5nslrgNCivrsLDsoJXsnpANCivrsLDtnaXtnawNCivrsLDsiJzsgrwNCivrsLDrj5ntm4gNCivrsLDquLDsg4ENCivrsLDsmqnssqANCivrsLDsnqztlokNCivrsLDrp4zqtowNCivrsLDsg4HssqANCivrsLDsnZjsnbUNCivrsLDsnqzsnbwNCivrsLDrp4zsi50NCivrsLDstpjsnbQNCivrsLDsiJzstpgNCivrsLDsmIHrnpgNCivrsLDrp4zsi6QNCivrsLDrgqjsmqkNCivrsLDsm5DssqANCivrsLDtg5zsnbwNCivrsLDrp4zsmIENCivrsLDrrLTsl7ANCivrsLDsiJjqt7wNCivrsLDsnKTssqANCivrsLDrp4ztmIQNCivrsLDquLDtmY0NCivrsLDrr7jrjZUNCivrsLDtmY3snpANCivrsLDrp5Drp4wNCivrsLDtmJzrrLQNCivrsLDsoJXtnawNCivrsLDqsJHtmLgNCivrsLDrp5Drp4wNCivrsLDrs5HroKgNCivrsLDsiJzsmqkNCivrsLDshLHtg5wNCivrsLDrp5Dsi50NCivrsLDshJ3tg50NCivrsLDquLDqt5wNCivrsLDtmITsiJgNCivrsLDrrLTquLgNCivrsLDsmIHsnKQNCivrsLDqs4TsiJkNCivrsLDsmIHsmrANCivrsLDrrLTshLENCivrsLDsuaDqt7wNCivrsLDshLjshK0NCivrsLDquLDsiJgNCivrsLDrrLTtnaANCivrsLDtlZzsiJwNCivrsLDtlbTrs7QNCivrsLDsnKTtmIQNCivrsLDrrLjsnpANCivrsLDsp4TtnawNCivrsLDqsr3stpgNCivrsLDsiJzrj5kNCivrsLDrrLjtmLgNCivrsLDsnqzrjZUNCivrsLDsmIHsiJgNCivrsLDsnqztmZgNCivrsLDrrLjtnLQNCivrsLDshLHtlZgNCivrsLDtmZTsiJkNCivrsLDshKDquLANCivrsLDrspTsmqkNCivrsLDrj5nsiJgNCivrsLDrrLjqtIANCivrsLDtmITsi50NCivrsLDrs5Hqta0NCivrsLDquLDtmJwNCivrsLDtl4ztnawNCivrsLDssL3rgqgNCivrsLDrs5Hsm5ANCivrsLDrs5Hsi50NCivrsLDrqbTsl7QNCivrsLDsmIHsiKANCivrsLDrs5HsoJwNCivrsLDsoJXtnawNCivrsLDquIjrrLgNCivrsLDsmKXstpwNCivrsLDrs5HtlZgNCivrsLDqs4Tqt5wNCivrsLDsmIHsmKUNCivrsLDsmbjsmKUNCivrsLDrs5HtlbQNCivrsLDsnYDrj4QNCivrsLDrs7Xsm4UNCivrsLDtmJzsmrQNCivrsLDrs7Tqt7wNCivrsLDshJ3sobANCivrsLDqsr3sl7ANCivrsLDsg4Hqt7wNCivrsLDrs7XsiJwNCivrsLDshLHsobANCivrsLDsmIHssL0NCivrsLDtnazro6ENCivrsLDrtInquIgNCivrsLDrp5Dsp4QNCivrsLDspJHsiKANCivrsLDrr7ztlZkNCivrsLDrtInshJ0NCivrsLDsmKTsmrENCivrsLDtlYTsp4QNCivrsLDrrLjtmLgNCivrsLDrtInsmqkNCivrsLDsirntnaANCivrsLDsp4TshK0NCivrsLDsmIHtlZwNCivrsLDrtInsobANCivrsLDrs7XtlZwNCivrsLDstqnshLENCivrsLDshLHsmKQNCivrsLDrtIntmIQNCivrsLDsnqzshKANCivrsLDsp4Tsm5QNCivrsLDrrLTslaANCivrsLDrtIntmLgNCivrsLDsnqzsmrENCivrsLDrp4zsooUNCivrsLDsspztkZwNCivrsLDrtoTrnoANCivrsLDsooXsm5ANCivrsLDtlbTsi50NCivrsLDrjIDqtIANCivrsLDrtoTso7wNCivrsLDsmIHtmZQNCivrsLDrr7jrjZUNCivrsLDsooXsnpANCivrsLDsgrzsi50NCivrsLDsmIHsi50NCivrsLDrj5nsmrENCivrsLDsnoTquLANCivrsLDsgrztmZgNCivrsLDqt5zsi50NCivrsLDqsJHsp4ANCivrsLDsnqzrjZUNCivrsLDsg4HqtowNCivrsLDtlonsiJgNCivrsLDstpjsmKUNCivrsLDsiJzrk50NCivrsLDsg4Hqt5wNCivrsLDquLjsi50NCivrsLDrgqjsobANCivrsLDtlZzssqANCivrsLDsg4HquLgNCivrsLDspJHrnpgNCivrsLDtmJXsmrANCivrsLDshoztmY0NCivrsLDsg4HquLgNCivrsLDsnqzsl7ANCivrsLDrj5nsi50NCivrsLDtnaXqsrANCivrsLDsg4HquLgNCivrsLDrs5HqtawNCivrsLDqsJXrnpgNCivrsLDtg5zqt7wNCivrsLDsg4HrjIANCivrsLDrs5Hsl7ANCivrsLDspIDtg5wNCivrsLDtlZnquLgNCivrsLDsg4HrqqgNCivrsLDrp4ztmZQNCivrsLDsp4TtmLgNCivrsLDsmrTqtawNCivrsLDsg4HrtIkNCivrsLDssKjssqANCivrsLDshLHsmqkNCivrsLDsnqztmLgNCivrsLDsg4HrtIkNCivrsLDrr7jsobANCivrsLDsiJjshqENCivrsLDquLDsi50NCivrsLDsg4HsiKANCivrsLDshLHsi50NCivrsLDsoJDshLENCivrsLDrgqjsl7ANCivrsLDsg4Hsl7QNCivrsLDso7zslZQNCivrsLDsiJjtmowNCivrsLDrqoXsmKUNCivrsLDsg4HsmqkNCivrsLDquLDsnbwNCivrsLDrtoTrtoANCivrsLDsnqztlZwNCivrsLDsg4HsnbwNCivrsLDqt5zqt6ANCivrsLDsg4HsiJgNCivrsLDsooXsiJgNCivrsLDsg4HsooUNCivrsLAg7LKcDQor67Cw6rK965OdDQor67Cw6riw7ISgDQor67Cw7IOB7LC9DQor67Cw7LGE7JqwDQor67Cw6rCR7ISdDQor67Cw7IOB7YOcDQor67Cw7IOB7ZWcDQor67Cw7KCV7YOcDQor67Cw7IOB656YDQor67Cw7ZiE7IicDQor67Cw7IOB7ZiEDQor67Cw7KO87IicDQor67Cw7ISg66qpDQor67Cw67aA6ri4DQor67Cw7IOB7ZiEDQor67Cw7IOB7IiYDQor67Cw7J6s6rK9DQor67Cw7KKF64+ZDQor67Cw7IOB7Zi4DQor67Cw7JWg7J6QDQor67Cw7J6s7IiZDQor67Cw7JWg7ZmYDQor67Cw7IOB7ZuIDQor67Cw7YyQ7Jq0DQor67Cw7Jik7ZWZDQor67Cw7KO87Zi4DQor67Cw7IOB7Z2sDQor67Cw7Jik7KGwDQor67Cw6ri47JykDQor67Cw7J2R7IiYDQor67Cw7ISd66y4DQor67Cw6reA7ISxDQor67Cw6riw7IudDQor67Cw7KKF64+EDQor67Cw7ISd7JWUDQor67Cw7KSR7LKgDQor67Cw7YOc7IiZDQor67Cw7JuQ7JqwDQor67Cw7ISd7LacDQor67Cw6rK97JmEDQor67Cw7ISx7YOcDQor67Cw7J2A7J28DQor67Cw7ISg7JqpDQor67Cw64Kc7ISdDQor67Cw7LKg7JuQDQor67Cw7JiB7KSADQor67Cw7ISg7KCVDQor67Cw64+Z7IicDQor67Cw66+47Zi4DQor67Cw7J247JqUDQor67Cw7ISg7Zi4DQor67Cw7J287IudDQor67Cw7KeI7ZmYDQor67Cw7LKt7JiBDQor67Cw7ISx66GdDQor67Cw7Zmp64KoDQor67Cw7LC96rOkDQor67Cw7ISx6rWwDQor67Cw7ISx67KUDQor67Cw7ZWZ7IiZDQor67Cw7Jqp7ZmUDQor67Cw7IiY6recDQor67Cw7ISx7JqwDQor67Cw7KKF7IiYDQor67Cw6rCR6rK9DQor67Cw7Jq07JqwDQor67Cw7ISx7JqxDQor67Cw6rSR7ISdDQor67Cw7ZWt7ZWcDQor67Cw66+46rG0DQor67Cw7ISx7KGwDQor67Cw6riw7JWUDQor67Cw642V7Zi4DQor67Cw66eM67mIDQor67Cw7ISx7YOcDQor67Cw7ZmN6rSADQor67Cw7LKg7J6QDQor67Cw6reA7KGwDQor67Cw7ISx7ZWcDQor67Cw67O17KSADQor67Cw64+Z7JWgDQor67Cw7Jyg7IudDQor67Cw7ISx7ZicDQor67Cw7Jqp7ZiEDQor67Cw6rCV7IiZDQor67Cw642V67O1DQor67Cw7IS47Je0DQor67Cw7ISx6rWsDQor67Cw6rK97YOdDQor67Cw7JiB6rWtDQor67Cw7IaM67O1DQor67Cw7Iq57JuQDQor67Cw6rK967CwDQor67Cw6rK97ISdDQor67Cw7IaM7IicDQor67Cw67OR7JiBDQor67Cw7LC97Z2sDQor67Cw7KSA7IStDQor67Cw7IiY6rSRDQor67CwIOyihQ0KK+uwsO2MkOyEnQ0KK+uwsOuzkeyEsQ0KK+uwsOyImOq3nA0KK+uwsOyInO2ZlA0KK+uwsOyZuOyDgQ0KK+uwsOq4sOqwkQ0KK+uwsOyImOyekA0KK+uwsOyYgeyglQ0KK+uwsO2DnOyaqQ0KK+uwsOuPmeuPhA0KK+uwsOyImOyglQ0KK+uwsO2VnOyImA0KK+uwsOyIoOykgA0KK+uwsOuqheyaqQ0KK+uwsOyImO2YhA0KK+uwsOyImO2YuA0KK+uwsO2dpeyglQ0KK+uwsOyerOyInA0KK+uwsOyImO2YuA0KK+uwsOuCqOusuA0KK+uwsOuCnO2drA0KK+uwsOq0keuqqA0KK+uwsOyIme2ZmA0KK+uwsOyInOyImA0KK+uwsOyYgeyImA0KK+uwsOuqheuPhA0KK+uwsOyInOuNlQ0KK+uwsOygnOyVlA0KK+uwsOuCmO2ZmA0KK+uwsOyEse2YuA0KK+uwsOyInOyEnQ0KK+uwsOyInOq3nA0KK+uwsO2YhO2YuA0KK+uwsOyihe2VmQ0KK+uwsOyInOyXsA0KK+uwsOunkOyihQ0KK+uwsOynhOyZuA0KK+uwsOuCqOyaqQ0KK+uwsOyInOyYpQ0KK+uwsO2VtO2YuA0KK+uwsOyYgeyLnQ0KK+uwsOyDgeyEoA0KK+uwsOyInO2DnA0KK+uwsOyImOy2nA0KK+uwsOygleyatA0KK+uwsOyYgeq3nA0KK+uwsOyInO2doA0KK+uwsOywqOyYgQ0KK+uwsOyEoO2YuA0KK+uwsOq3vOyjvA0KK+uwsOyIoO2ZjQ0KK+uwsOyDgeqwkQ0KK+uwsOuzkeq3vA0KK+uwsO2ZjeyIoA0KK+uwsOyLoOq1rQ0KK+uwsOydhOynhA0KK+uwsOyDge2drA0KK+uwsOq1kOyEoA0KK+uwsOyLoO2YuA0KK+uwsOyihe2ZmA0KK+uwsOyEse2YuA0KK+uwsOyWkeuMgA0KK+uwsOyMjeyLnQ0KK+uwsOq0keyaqQ0KK+uwsOuvvO2YuA0KK+uwsOyCvOuegA0KK+uwsOyVlOydtA0KK+uwsOuLrOyhsA0KK+uwsOyiheyEoA0KK+uwsOuztO2DnA0KK+uwsOyYgeq4sA0KK+uwsO2VtOq4sA0KK+uwsOycoOyjvA0KK+uwsOyDge2YhA0KK+uwsOyYgeq4sA0KK+uwsOyiheq4sA0KK+uwsOuzkeyEoA0KK+uwsOyXsOyInA0KK+uwsOyYgeq4uA0KK+uwsOyerO2ZjQ0KK+uwsOuqhey5mA0KK+uwsOuemO2YhA0KK+uwsOyYgeuMgA0KK+uwsOq1kOyImA0KK+uwsO2WieyLnQ0KK+uwsOuzke2YuA0KK+uwsOyYgeuPhA0KK+uwsOyEneyDgQ0KK+uwsOuRkOq4sA0KK+uwsOq3gOyasA0KK+uwsOyYgeusuA0KK+uwsOymneyEnQ0KK+uwsOu0ieyXsA0KK+uwsOuzkeyasA0KK+uwsOyYgeusuA0KK+uwsOyehOyjvA0KK+uwsOq4sOybkA0KK+uwsO2DnO2ZlA0KK+uwsOyYgeuwsQ0KK+uwsOq4sOy5mA0KK+uwsOyaqeyInA0KK+uwsOygnOyImA0KK+uwsOyYgeyEnQ0KK+uwsOyImOuPmQ0KK+uwsOyDge2YhA0KK+uwsO2drOyekA0KK+uwsOyYgeyErQ0KK+uwsOyEseynhA0KK+uwsOyDgeyjvA0KK+uwsOyImOq2jA0KK+uwsOyYgeyImA0KK+uwsOy5oO2drA0KK+uwsOycpOy2mA0KK+uwsOyYgeq1rQ0KK+uwsOyYgeyLnQ0KK+uwsOyYge2ZmA0KK+uwsOq0ke2DnQ0KK+uwsOq0keyLnQ0KK+uwsOyYgeyLpA0KK+uwsOycpOuemA0KK+uwsOuzkeuPmQ0KK+uwsOyaqeyImQ0KK+uwsOyYgeyYpQ0KK+uwsOyghOq1kA0KK+uwsO2Vme2drA0KK+uwsO2DnOyInA0KK+uwsOyYgeybkA0KK+uwsOydhOuNlQ0KK+uwsOq0keyatA0KK+uwsOygnOuPmQ0KK+uwsOyYgeycqA0KK+uwsCDsnpANCivrsLDsnqztmqgNCivrsLDrj5nrgqgNCivrsLDsmIHsobANCivrsLDshKDqta0NCivrsLDtnazsmKUNCivrsLDsmqnsi50NCivrsLDsmIHsobANCivrsLDsooXsoJUNCivrsLDsmIHquLANCivrsLDsiJzrj5kNCivrsLDsmIHspIANCivrsLDrj5nrp4wNCivrsLDsmqntg5wNCivrsLDssL3rs7UNCivrsLDsmIHtg5wNCivrsLDri6ztmZgNCivrsLDsoJXtmLgNCivrsLDsmIHtnawNCivrsLDsmIHtlYQNCivrsLDsg4HsiKANCivrsLDssL3snpANCivrsLDsg4HrjIANCivrsLDsmIHtmLgNCivrsLDstpjsnpANCivrsLDshLHro6ENCivrsLDsnKTtmIQNCivrsLDsmIHtmLgNCivrsLDrsLHssKwNCivrsLDrrLTqs6QNCivrsLDsmIHshLENCivrsLDsmIHtmZgNCivrsLDqsJHsi50NCivrsLDsoJXqtawNCivrsLDrjZXtg5wNCivrsLDsmKXsiJwNCivrsLDssL3rn4kNCivrsLDsoJXquLgNCivrsLDrrLTsiJgNCivrsLDsmKXsnpANCivrsLDrjIDtmIQNCivrsLDshKDsmIENCivrsLDtmITsiJgNCivrsLDsmKXsooUNCivrsLDsoJXsnKQNCivrsLDtmJXsiJwNCivrsLDtlbTsi50NCivrsLDsmqnquLANCivrsLDtmqjruYgNCivrsLDsoJDso7wNCivrsLDsp4TsiJgNCivrsLDsmqnrk50NCivrsLDquIjsiJgNCivrsLDsmKTqt7wNCivrsLDtlZzshLENCivrsLDsmqnsiJwNCivrsLDrqoXshKANCivrsLDtjJDquIgNCivrsLDrjIDrspQNCivrsLDsmqnsiKANCivrsLDsoJXsmKQNCivrsLDsg4Hsm5ANCivrsLDsiJztmZgNCivrsLDsmqnsi50NCivrsLDsmqntmIQNCivrsLDqs4TshLENCivrsLDsgqztmLgNCivrsLDsmqnsi50NCivrsLDrjIDsnbwNCivrsLDshKDqsJENCivrsLDtlZzrp4wNCivrsLDsmqnslZQNCivrsLDrj4TroZ0NCivrsLDsnZjsiJwNCivrsLDtjJDso7wNCivrsLDsmqnsp4QNCivrsLDsiJjtnawNCivrsLDqsr3snbUNCivrsLDrj5nshLENCivrsLDsmqntg50NCivrsLDrs5HsiJwNCivrsLDsp4DsnqwNCivrsLDtlZzquIgNCivrsLDsmqntl4wNCivrsLDsnYDtnawNCivrsLDqtZDsoJUNCivrsLDssKzssqANCivrsLDsmqntmLgNCivrsLDsspzsmIENCivrsLDsi6TsiJgNCivrsLDsoJXsiJgNCivrsLDsmrDsm5ANCivrsLDrjZXsiJgNCivrsLDshLHshKANCivrsLDsp4TsiJgNCivrsLDsmrHquLANCivrsLDsnbzsoJANCivrsLDtlZzsp4ANCivrsLDshoztg5wNCivrsLDsm5DrtoQNCivrsLDshozquLANCivrsLDsiJnsobANCivrsLDstpjsiJgNCivrsLDsm5DshJ0NCivrsLDtmLjshLENCivrsLDssL3qt6ANCivrsLDsjI3tmIQNCivrsLDsm5DtkZwNCivrsLDssKzsobANCivrsLDsiJjspIANCivrsLDshKDsnoQNCivrsLDsm5DtmLgNCivrsLDsnbjsmrANCivrsLDsnpHsi50NCivrsLDsooXsiJgNCivrsLDsm5DtmZgNCivrsLDsiJzquLANCivrsLDtmY3rtoQNCivrsLDtlZnsiJgNCivrsLDsm5DtnawNCivrsLDqsr3snbQNCivrsLDssL3tnawNCivrsLDsnbjtm4QNCivrsLDsnKTshK0NCivrsLDtg5zqsbQNCivrsLDqt4DshJ0NCivrsLDtlZzrsLANCivrsLDsnKTsooUNCivrsLDrp5DsnbUNCivrsLDqtazrgqgNCivrsLDrkZDsoJUNCivrsLDsnKTsp4QNCivrsLDsoJXtnawNCivrsLDslrjsm4UNCivrsLDsmKXslrUNCivrsLDsnKTsspwNCivrsLDsoJXsiJgNCivrsLDsmIHqtIANCivrsLDquLDrnoANCivrsLDsnKTtkZwNCivrsLDsooXtmLgNCivrsLDsiJjsnKQNCivrsLDrs7Xqt7wNCivrsLDsnKTtlZwNCivrsLDtg5zqsJUNCivrsLDsooXroYANCivrsLDrs5Hsi50NCivrsLDsnYTrtIkNCivrsLDtmLjsm4UNCivrsLDsoJXtg5wNCivrsLDtmY3tmJwNCivrsLDsnYTshKANCivrsLDsnqzrjIANCivrsLDqsr3tmLgNCivrsLDssKzqtawNCivrsLDsnYzsl7ANCivrsLDsnbjsiJgNCivrsLDsnYDsp4QNCivrsLDsmqnshK0NCivrsLDsnZHsm5ANCivrsLDsmIHshKANCivrsLDshLHshKANCivrsLDtg5zstpwNCivrsLDsnZjtkZwNCivrsLDsmrDsmpQNCivrsLDsnKDqt7wNCivrsLDsp4DrrLgNCivrsLDsnZjtkZwNCivrsLDtmITtnawNCivrsLDsnYDshK0NCivrsLDtlbTrtIkNCivrsLDsnZjtkZwNCivrsLDsmIHslZQNCivrsLDstpjqsr0NCivrsLDsg4HroKQNCivrsLDsnbTtmZQNCivrsLDshLHtmZgNCivrsLDtl4ztm4gNCivrsLDquIjrp5ANCivrsLDsnbjquLANCivrsLDquLDsmrQNCivrsLDrqoXsl7ANCivrsLDrqoXrj5kNCivrsLDsnbjtmLgNCivrsLDrqoXqs6QNCivrsLDsooXrhYQNCivrsLDquLDsl7QNCivrsLDsnbzqsr0NCivrsLDsooXri6wNCivrsLDshqHqt7wNCivrsLDqtJHsiJgNCivrsLDsnbzqtowNCivrsLDrrLjsobANCivrsLDrqoXqt5wNCivrsLDsooXquLANCivrsLDsnbzshKANCivrsLDqsr3rnpgNCivrsLDqt7nsmKUNCivrsLDsmIHrp4wNCivrsLDsnbztmIQNCivrsLDsiJjtnawNCivrsLDssqDtmIQNCivrsLDsooXso7wNCivrsLDsnbztmIQNCivrsLDsm5DrsLANCivrsLDrqoXsnpANCivrsLDquLDqtIANCivrsLDsnbztmZQNCivrsLDsnqzqt7wNCivrsLDrj5nslZQNCivrsLDsooXtmIQNCivrsLDsnbztmZgNCivrsLDsnqXrprwNCivrsLDrs5HtmLgNCivrsLDsiJzshKANCivrsLDsnoTrj4QNCivrsLDsmIHqs4QNCivrsLDtl4ztmZQNCivrsLDstpjqtZANCivrsLDsnoTrj4QNCivrsLDsnqzsiJwNCivrsLDssYTshJ0NCivrsLDqt7zshK0NCivrsLDsnoTsiJwNCivrsLDshLjsi50NCivrsLDqsJXsi50NCivrsLDsmIHquIgNCivrsLDsnqXsiJgNCivrsLDsi6DsmrANCivrsLDslpHquLANCivrsLDrr7jsmKUNCivrsLDsnqXtmLgNCivrsLDsooXtmIQNCivrsLDqsr3siJgNCivrsLDrp5Dsp4ENCivrsLDsnqXtmLgNCivrsLDtmY3rtIkNCivrsLDrkZDsp4QNCivrsLDqt5zsl7QNCivrsLDsnqzqtIANCivrsLDrs5HsooUNCivrsLDsooXsp4QNCivrsLDtnazrsLANCivrsLDsnqzqtowNCivrsLDrhbjsi5wNCivrsLDrqoXsm5ANCivrsLDsiJjtnaANCivrsLDsnqzqt5wNCivrsLDrk53snKgNCivrsLDtmITqtawNCivrsLDslpHrtIkNCivrsLDsnqzrhYQNCivrsLDtjJDsiJgNCivrsLDsp4TshKANCivrsLDrjZXsnoQNCivrsLDsnqzrjZUNCivrsLDssKjrp4wNCivrsLDsmqnsi50NCivrsLDrj5nsiJgNCivrsLDsnqzrp4wNCivrsLDtg5zshLENCivrsLDsnqzsobANCivrsLDshLjtg50NCivrsLDsnqzrtIkNCivrsLDsiJjsmKQNCivrsLDsooXtmLgNCivrsLDshLHrtIkNCivrsLDsnqzsg4ENCivrsLDsiJjsiJgNCivrsLDshKDrn4kNCivrsLDsooXsobANCivrsLDsnqzsiJgNCivrsLDri6zsmrANCivrsLDrj4jtlYQNCivrsLDsiJjrj5kNCivrsLDsnqzsmIENCivrsLDshLHtj6wNCivrsLDssqDsnpANCivrsLDsmIHrp4wNCivrsLDsnqzsnKQNCivrsLDspIDsnqwNCivrsLDspIDtla0NCivrsLDsmIHtm4gNCivrsLDsnqzsnYANCivrsLDsg4HrgqgNCivrsLDqt5zsmqkNCivrsLDqtJHsmIENCivrsLDsnqzsnbUNCivrsLDsmIHsi50NCivrsLDshLjtmIQNCivrsLDsnYTtm4gNCivrsLDsnqztnaUNCivrsLDrj4Tsl7QNCivrsLDshLHsmIENCivrsLDsoJXsi50NCivrsLDsoJDrs7UNCivrsLDtg5zsmIENCivrsLDsirnsiJgNCivrsLDtlZnsmqkNCivrsLDsoJDshKANCivrsLDrj5nslZQNCivrsLDrkZDstpgNCivrsLDqt4DrhYQNCivrsLDsoJDtkZwNCivrsLDsoJXsmqkNCivrsLDrhbjsiJgNCivrsLDrqoXrp4wNCivrsLDsoJXqsJENCivrsLDsmIHsnbQNCivrsLDquLDtmIQNCivrsLDrj5nsnpANCivrsLDsoJXquLgNCivrsLDshozrs7UNCivrsLDsp4Tsi50NCivrsLDshLHsmIENCivrsLDsoJXrj4QNCivrsLDrr7jtmJUNCivrsLDsnqXsiJgNCivrsLDsmIHslZQNCivrsLDsoJXsiJgNCivrsLDquLjrs7QNCivrsLDsoJXtg5wNCivrsLDsooXrsLANCivrsLDsoJXsi50NCivrsLDrp5DqtJENCivrsLDstpjqtawNCivrsLDri6zsm5ANCivrsLDsoJXsm4UNCivrsLDsnZHsmqkNCivrsLDsm5DspIANCivrsLDquIjsm5ANCivrsLDsoJXsm5ANCivrsLDqsJHquLgNCivrsLDsp4TtmZQNCivrsLDtmY3smqkNCivrsLDsoJXsoJwNCivrsLDqsr3tjJQNCivrsLDrqoXtmIQNCivrsLDrnpjshJ0NCivrsLDsoJXtg5wNCivrsLDssL3qsr0NCivrsLDqsr3qtowNCivrsLDsm5DquLANCivrsLDsoJXtlZwNCivrsLDrjIDtmIQNCivrsLDssq3rsLANCivrsLDtl4zsmKQNCivrsLDsoJXtmZgNCivrsLDsiJjsmIENCivrsLDqt5zqt7wNCivrsLDrqoXsmKQNCivrsLDsoJXtnawNCivrsLDsoJXtmIQNCivrsLDsmIHtmZgNCivrsLDsnqXshKANCivrsLDsooXrp4wNCivrsLDsgrzqt5wNCivrsLDshLjsmqkNCivrsLDtg5zsiKANCivrsLDsooXsi50NCivrsLDrs5HslaANCivrsLDqsr3siKANCivrsLDssKjqta0NCivrsLDsooXsmrENCivrsLDtmY3siJgNCivrsLDquLDsi50NCivrsLDsooXsl6wNCivrsLDsooXssqANCivrsLDtmITshK0NCivrsLDqsr3smKQNCivrsLDsooXsnpANCivrsLDsooXtmZQNCivrsLDrjZXsi50NCivrsLDsooXtmLgNCivrsLDsnoTqt5wNCivrsLDsooXtnawNCivrsLDtg5zrj4QNCivrsLDsg4Hsl7QNCivrsLDqtZDrtIkNCivrsLDso7ztlZwNCivrsLDrp4zsiJgNCivrsLDsm5DquLANCivrsLDsmrTsm5ANCivrsLDspIDqt7wNCivrsLDsmKTsmqkNCivrsLDtmqjsnqwNCivrsLDsm5DslYUNCivrsLDspIDtmLgNCivrsLDsp4Dsi50NCivrsLDtg5zsm4UNCivrsLDsiJzqsr0NCivrsLDspJHtmLgNCivrsLDsmIHtmZgNCivrsLDshKDtm4gNCivrsLDshLHsiJgNCivrsLDsp4Trj5kNCivrsLDssKjsiJgNCivrsLDshLHtlZkNCivrsLDqsr3tmIQNCivrsLDsp4TsmIENCivrsLDso7zrp7kNCivrsLDsg4HshK0NCivrsLDshJ3snpANCivrsLDssKjrrLgNCivrsLDsnbzshJ0NCivrsLDqsJHtmLgNCivrsLDsnpDquLANCivrsLDssL3rjIANCivrsLDsp4DtlbQNCivrsLDqt5zsiJgNCivrsLDshKDqt6ANCivrsLDssL3siJgNCivrsLDshLHsiJgNCivrsLDrp5DtmZQNCivrsLDquIjqt5wNCivrsLDssL3si50NCivrsLDsoJXsiJwNCivrsLDsjI3sg4ENCivrsLDsmKTsl7QNCivrsLDssL3smrENCivrsLDri6zsmqkNCivrsLDsmKXslZQNCivrsLDqsr3sl7QNCivrsLDssL3snbgNCivrsLDsooXsmKQNCivrsLDqt4DsiJgNCivrsLDrs5HsobANCivrsLDssL3tmLgNCivrsLDtmLjsi50NCivrsLDsoJXrj4wNCivrsLDsmqnsmqkNCivrsLDssL3tmLgNCivrsLDsoJXtnawNCivrsLDshLHsmqkNCivrsLDsnYTtmIQNCivrsLDsspzrspQNCivrsLDri6zqt7wNCivrsLDsooXspIANCivrsLDsooXrjIANCivrsLDsuaDsp4QNCivrsLDsmIHqt7wNCivrsLDsnqzspJENCivrsLDsnbjtmLgNCivrsLDsuaDtmZgNCivrsLDrj4TssqANCivrsLDsnZjsl7QNCivrsLDsnqztmIQNCivrsLDtg5zqs6QNCivrsLDsgqzquIgNCivrsLDsiJnsiJgNCivrsLDtg5ztmLgNCivrsLDtg5zrp4wNCivrsLDsg4HtmLgNCivrsLDspIDtmLgNCivrsLDshqHrgqgNCivrsLDtg5zrqoUNCivrsLDsooXtg5wNCivrsLDsnbjsnKQNCivrsLDqt4DsmIENCivrsLDtg5zshJ0NCivrsLDsnbzsnpANCivrsLDsnqzsm5ANCivrsLDshLjqtowNCivrsLDtg5zsl7ANCivrsLDtmqjssqANCivrsLDshLHtmZgNCivrsLDqsr3tnawNCivrsLDtg5zsnpANCivrsLDsnqzsi6wNCivrsLDrs5HtlZwNCivrsLDsooXqs6QNCivrsLDtg5ztmIQNCivrsLDrnpjtmLgNCivrsLDrj5nsiJgNCivrsLDsnYTtmLkNCivrsLDtg5ztmLgNCivrsLDtlbTsnpANCivrsLDsmIHtnawNCivrsLDsmrDsiJwNCivrsLDtg5ztmLgNCivrsLDsg4HsiJgNCivrsLDqtJHqt5wNCivrsLDsnqztnawNCivrsLDtg5ztmZgNCivrsLDsp4TsnbwNCivrsLDsnqXtmZgNCivrsLDqsJHshKANCivrsLDtjJDsi50NCivrsLDrjZXslrgNCivrsLDrrLjrgqgNCivrsLDsooXsl7QNCivrsLDtjJDsnbQNCivrsLDsoJXsiJkNCivrsLDrs5HslZQNCivrsLDssKjsm5ANCivrsLDtlYTrgqgNCivrsLDshLHqs4QNCivrsLDqsr3quLANCivrsLDsoJXtmIQNCivrsLDtlYTroKgNCivrsLDtl4zsi50NCivrsLDshLHsnbUNCivrsLDsiJjspIANCivrsLDtlYTsl7ANCivrsLDtlZnqt7wNCivrsLDquLDrrLgNCivrsLDrr7jsg50NCivrsLDtlZjsmIENCivrsLDrr7jtmLgNCivrsLDtg5zsmrENCivrsLDsoJXsi50NCivrsLDtlZjsmIENCivrsLDsirnssqANCivrsLDsg4HsiJkNCivrsLDsiJzrk50NCivrsLDtlZjtmIQNCivrsLDsoJXrtoANCivrsLDrjIDrgqgNCivrsLDsnqztnawNCivrsLDtlZnrj4wNCivrsLDsmIHtlZgNCivrsLDrsLHtg5wNCivrsLDtg5ztnawNCivrsLDtlZnsi50NCivrsLDqs7XqtZANCivrsLDsnKTsmIENCivrsLDsmbjsiJwNCivrsLDtlZzrqqgNCivrsLDtlZnqt7wNCivrsLDsmKXtmZgNCivrsLDsgrzsiJgNCivrsLDtlZzrqqgNCivrsLDshLHtmZQNCivrsLDsmIHsiJwNCivrsLDshLHqtowNCivrsLDtlZzsobANCivrsLDsiJjsooUNCivrsLDrs5HtnawNCivrsLDqsbTtmIQNCivrsLDtlbTrp4wNCivrsLDspJHsiJwNCivrsLDtmITro6ENCivrsLDshLHtnawNCivrsLDtlbTshJ0NCivrsLDsm5DtnJgNCivrsLDquLDshLENCivrsLDsooztmLgNCivrsLDtlbTshLENCivrsLDshLHtmZQNCivrsLDsmIHsl7QNCivrsLDsg4HqtawNCivrsLDtlbTsiKANCivrsLDspJHqs6QNCivrsLDqsbTtnawNCivrsLDrgqjtnLQNCivrsLDtmITsiJwNCivrsLDsmrTqt7wNCivrsLDri6TqtowNCivrsLDtg5zrrLgNCivrsLDtmJXtlZwNCivrsLDsnoTsuZgNCivrsLDtmITsnpANCivrsLDrjZXtmY0NCivrsLDtmJzsiJkNCivrsLDsmIHtnLQNCivrsLDrjIDshJ0NCivrsLDsoJDsobANCivrsLDtmLjqsr0NCivrsLDrjIDsm5ANCivrsLDtg5zssqANCivrsLDsoJXsmrQNCivrsLDtmLjqtowNCivrsLDri6zso7wNCivrsLDssL3si50NCivrsLDso7zsm5ANCivrsLDtmLjsobANCivrsLDsoJDsnbQNCivrsLDshLHso7wNCivrsLDrs5HtnawNCivrsLDtmLjsp4QNCivrsLDrrLTtmJUNCivrsLDrrLTqs6QNCivrsLDquLDsmIENCivrsLDtmY3rjIANCivrsLDshJ3shJ0NCivrsLDsooXqt7wNCivrsLDrjIDstpwNCivrsLDtmY3rjZUNCivrsLDsooXsobANCivrsLDrhbjsiJgNCivrsLDsg4Hqta0NCivrsLDtmY3sl7QNCivrsLDshLjtmLgNCivrsLDsoJXtmLgNCivrsLDrs5Hsl7ANCivrsLDtmY3tg4ENCivrsLDsiJjqtJENCivrsLDsmqnrpZwNCivrsLDsooXqt7wNCivrsLDtmqjsmrENCivrsLDsiJjtmIQNCivrsLDtmY3qt7wNCivrsLDqtJHrgqgNCivrsLDtmqjsm5ANCivrsLDsmIHsiKANCivrsLDrrLjsiJgNCivrsLDsoJXtlZkNCivrsLDtmqjsm5ANCivrsLDsmqnqt5wNCivrsLDshLHsiJkNCivrsLDtg5ztnJgNCivrsLDtmqjso7wNCivrsLDsoJXsnbQNCivrsLDtg5zsg4ENCivrsLDsoJXquLANCivrsLEg7ISdDQor67Cx7IiY7Z2sDQor67Cx7J6s6regDQor67Cx7JiB7LacDQor67Cx6rCR7Z2gDQor67Cx7ZW07Z2sDQor67Cx7J6s7Z2sDQor67Cx7ISx7ZiEDQor67Cx6rK966a8DQor67Cx7Z2s6ri4DQor67Cx7KCV7KSADQor67Cx6rSR7J21DQor67Cx6rK97IicDQor67Cx6rK97LacDQor67Cx66+87IicDQor67Cx7KCV7IKwDQor67Cx6rK97LKgDQor67Cx7ISx67CxDQor67Cx7J247J6EDQor67Cx7KSA7JqwDQor67Cx6rSR7IiYDQor67Cx7KSR7ISgDQor67Cx7ZmN6regDQor67Cx7J2Y67O1DQor67Cx6rSR7JuFDQor67Cx7ZqM64+EDQor67Cx7Jqp7IudDQor67Cx7KO87Z2sDQor67Cx6rSR7J28DQor67Cx6riw7IudDQor67Cx7IaM6ri4DQor67Cx6rec7Z2sDQor67Cx6rSR7KCEDQor67Cx67O47J6sDQor67Cx7J2Y7KSADQor67Cx7ISx7IudDQor67Cx6raM7JqxDQor67Cx6rK97IicDQor67Cx7IOB7LKgDQor67Cx7ZmN7ISdDQor67Cx6re87Zi4DQor67Cx6riI7Je0DQor67Cx7KCV7ZmYDQor67Cx7J2E7Zi4DQor67Cx6riw7KGwDQor67Cx7Jq06re8DQor67Cx7Iic642VDQor67Cx7ZW07ZmYDQor67Cx6riw7YOcDQor67Cx642V7KSADQor67Cx66y07KO8DQor67Cx642V67aEDQor67Cx6ri47ISgDQor67Cx6rK97Zi4DQor67Cx7J6s7IStDQor67Cx6rK97ZmYDQor67Cx64Ko66OhDQor67Cx7ISd7ISxDQor67Cx7KeE66eMDQor67Cx7Iic7ISxDQor67Cx64Ko7ISdDQor67Cx66y47ISgDQor67Cx7Jm47JyoDQor67Cx7J6s7Je0DQor67Cx64Ko7IiYDQor67Cx64yA7J6QDQor67Cx6rWQ7YOcDQor67Cx6rec7IudDQor67Cx64Ko7KeEDQor67Cx7J287IS4DQor67CxIO2YuA0KK+uwseyEseq4sA0KK+uwseuFuOyImA0KK+uwseustOustA0KK+uwse2YuOyImQ0KK+uwseq4iOyZhA0KK+uwseuMgO2VmQ0KK+uwseyIoOybkA0KK+uwseyDge2YhA0KK+uwse2ZmOyVlA0KK+uwseuMgO2YhA0KK+uwseyjvOusuA0KK+uwseuRkOy2nA0KK+uwseuPhOusuA0KK+uwseuMgO2YuA0KK+uwseyYgeyaqQ0KK+uwseygkOyyoA0KK+uwseyaqeyyoA0KK+uwseuPhOu0iQ0KK+uwseq4sOuqhQ0KK+uwse2DnOy2nA0KK+uwseuqhe2YuA0KK+uwseuPmeyIoA0KK+uwse2YhOu2hA0KK+uwseygle2drA0KK+uwse2DnOyhsA0KK+uwseuPmeygnA0KK+uwseyjvOyXtA0KK+uwseydmO2DnQ0KK+uwse2MkOyLnQ0KK+uwseuPmeygnA0KK+uwseyaqeyatA0KK+uwseyynOyLnQ0KK+uwseyXsOyZlQ0KK+uwseuRkOyerA0KK+uwseyEseq3vA0KK+uwseqyveq1kA0KK+uwseyaqeykgA0KK+uwseuRkO2YhA0KK+uwseyDgeyWtQ0KK+uwseyEseq3nA0KK+uwseydvOyLrA0KK+uwseuRkO2YhA0KK+uwse2Zjeq4sA0KK+uwse2MkO2DnQ0KK+uwseuzteuNlQ0KK+uwseuRkO2YhA0KK+uwseuNleyImA0KK+uwseyYgeuztQ0KK+uwseyLoOyYpQ0KK+uwseuRkO2YhA0KK+uwseuPmeusuA0KK+uwseyDgeq4sA0KK+uwseyYgeyEoA0KK+uwseunjOq4sA0KK+uwseyjvO2ZmA0KK+uwsSDtmLgNCivrsLHsoJDsmqkNCivrsLHrp4zrjIANCivrsLHsoJXtmIQNCivrsLHsooXsmIENCivrsLHtmJXqt6ANCivrsLHrp5DsiJgNCivrsLHsp4jtmIQNCivrsLHqtIDtmZgNCivrsLHsoJXsmKUNCivrsLHrp6TtlqUNCivrsLHqsr3siJkNCivrsLHrk53tmIQNCivrsLHtnazshJ0NCivrsLHrqoXsiJgNCivrsLHsmIHrnb0NCivrsLHsnKTrnb0NCivrsLHsooXtmZgNCivrsLHrqoXtmIQNCivrsLHrj5nshJwNCivrsLHsnYDsiKANCivrsLHsnbztmLgNCivrsLHrqr3roKgNCivrsLHsiJzsi50NCivrsLHrqoXspIANCivrsLHrspTquLANCivrsLHrrLTqsJENCivrsLEg7ZiEDQor67Cx7J2A7LaYDQor67Cx7LCo64yADQor67Cx66y07JqpDQor67Cx64us7ISdDQor67Cx7ZeM7IiYDQor67Cx7IK87J6EDQor67Cx66y07KGwDQor67Cx6riw7Z2sDQor67Cx7ISx7ZuIDQor67Cx7KSR7Z2sDQor67Cx66y466eMDQor67Cx7IOB6riwDQor67Cx7Jyh7J2ADQor67Cx7J6s7IiYDQor67Cx66y47IOBDQor67Cx65GQ7IicDQor67Cx7IiZ642VDQor67Cx7KO87JiBDQor67Cx66y47ZiEDQor67Cx6re87YOcDQor67Cx67O17KCVDQor67Cx67SJ7JuQDQor67Cx66+87IiZDQor67Cx7KeE7IudDQor67Cx7LC97KSRDQor67Cx6rK97ZiEDQor67Cx67Cp6riwDQor67CxIOybkA0KK+uwseyYge2drA0KK+uwseqyvey5mA0KK+uwseuztOuwsA0KK+uwseyYgeyLnQ0KK+uwseuHjOyCvA0KK+uwse2VnOyDgQ0KK+uwseuztO2YhA0KK+uwseydtO2YuA0KK+uwseyYge2biA0KK+uwseustOyLnQ0KK+uwseuzteq4sA0KK+uwse2YhO2DgQ0KK+uwse2Yle2ZlA0KK+uwseyyre2YuA0KK+uwseuzteyInA0KK+uwseq4sOyhsA0KK+uwseyYge2ZmA0KK+uwseuvvOunjA0KK+uwseu0ieusuA0KK+uwseyDgeyXsA0KK+uwseq0keq4sA0KK+uwse2DnOyXhQ0KK+uwseu2gOyehA0KK+uwse2YuOyLnQ0KK+uwseyEseuCqA0KK+uwseyEne2biA0KK+uwseyCrOqwlQ0KK+uwseyngOyYgQ0KK+uwseq0ke2DnA0KK+uwseq3vO2YuA0KK+uwseyCvOyImA0KK+uwseygleuhgA0KK+uwseyerOyasA0KK+uwseuRkOynhA0KK+uwseyDgeqysA0KK+uwseyerOybhQ0KK+uwseqyvey5mA0KK+uwseyEseyxhA0KK+uwseyDgeuNlQ0KK+uwseuPmeyImQ0KK+uwseyiheq3nA0KK+uwseq3vOyXsA0KK+uwseyEneuPhA0KK+uwseyEseu0iQ0KK+uwseyerOyLnQ0KK+uwseyYge2drA0KK+uwseyEneyekA0KK+uwseybkOyYgQ0KK+uwseq3gO2YuA0KK+uwseyEseuNlQ0KK+uwseyEneykgA0KK+uwseq3nOynhA0KK+uwseyerOyglQ0KK+uwseyEseq1rQ0KK+uwseyEneynhA0KK+uwse2DnOyXsA0KK+uwseyYgeywrA0KK+uwseywrOuztQ0KK+uwseyEoO2YhA0KK+uwseyerO2WpQ0KK+uwseyepeyImA0KK+uwseywveyyoA0KK+uwseyEseq1rQ0KK+uwseyYgeyYpA0KK+uwseq1reyaqQ0KK+uwseq1rOyglQ0KK+uwseyEseq2jA0KK+uwseywveq3nA0KK+uwseyVhO2YuA0KK+uwseyEneq4uA0KK+uwseyEseq4sA0KK+uwseqwkeuNlQ0KK+uwseyEoO2YuA0KK+uwseydgOuPjA0KK+uwseyEseq4sA0KK+uwse2DnOumvA0KK+uwseyLoO2YuA0KK+uwseq1reynhA0KK+uwseyGjOuPjA0KK+uwseqyveyInA0KK+uwseyCvOyerA0KK+uwseychOq3nA0KK+uwseyGjOu2gA0KK+uwseygleuLrA0KK+uwseyaqe2YuA0KK+uwse2MkOyerA0KK+uwseyGjOyImA0KK+uwse2DnO2VmQ0KK+uwse2MkO2biA0KK+uwse2VmeunjA0KK+uwseyGjOybhQ0KK+uwseyEse2ZmA0KK+uwseyiheyhsA0KK+uwse2MkOq1rQ0KK+uwseyGjOyhsA0KK+uwseuLrOqyvQ0KK+uwseuPmeyImA0KK+uwseyaqeybkA0KK+uwseyGoe2VmQ0KK+uwseyEuOyhsA0KK+uwseu0ieq3oA0KK+uwseykgOyVlA0KK+uwseyImOyglQ0KK+uwseyiheyaqQ0KK+uwseu0iey2mA0KK+uwseuylOyDgQ0KK+uwseyImOywvQ0KK+uwse2DnOq4sA0KK+uwseyCvOuFuA0KK+uwseq4sO2YuA0KK+uwseyImeyekA0KK+uwseyaqeyImA0KK+uwseyYpeyhsA0KK+uwseyDge2YuA0KK+uwseyInOuNlQ0KK+uwseyiheyEnQ0KK+uwseyCrOyehA0KK+uwse2ZqeyYpQ0KK+uwseyInOyEoA0KK+uwseq4sOusuA0KK+uwseywveuTnQ0KK+uwse2YgeykgA0KK+uwseyInOyYpQ0KK+uwseuqheybkA0KK+uwseusuOyImA0KK+uwseygleyekA0KK+uwseyInO2DnA0KK+uwseyDgey2nA0KK+uwseyEseq3oA0KK+uwseq4sOqxtA0KK+uwseyKueq3nA0KK+uwseuPmeyImA0KK+uwseyEseyEnQ0KK+uwseyYpeyEsQ0KK+uwseyKueuNlQ0KK+uwse2VtO2ZmA0KK+uwseyaqeq3nA0KK+uwseuzke2VmA0KK+uwseyKueuhnA0KK+uwseuPmeq4uA0KK+uwseuqheyynA0KK+uwseyInO2drA0KK+uwseyKueunjA0KK+uwseygleyYgQ0KK+uwseygleyLnQ0KK+uwseq3nOyImA0KK+uwseyKueyXtA0KK+uwseyyoOywrA0KK+uwseykkeyasA0KK+uwseyGjOyInA0KK+uwseyKueyasQ0KK+uwseuvuOyImA0KK+uwseyIoOq3vA0KK+uwseyaqeq0kQ0KK+uwseyKue2DnA0KK+uwseygkOybkA0KK+uwseygleyImA0KK+uwseyEseq4uA0KK+uwseyKue2DnA0KK+uwseyYgeyyoA0KK+uwseyYgeq1rA0KK+uwseygle2aqA0KK+uwseyKue2DnQ0KK+uwseydgOq3uQ0KK+uwseyiheyEoA0KK+uwseuNle2VnA0KK+uwseyYgeq3nA0KK+uwseyYgeyYgQ0KK+uwseq3nOyIoA0KK+uwseyYge2DnA0KK+uwseyYgeq3nA0KK+uwse2dpeydmA0KK+uwseyImOuloA0KK+uwseyYge2ZjQ0KK+uwseyYgeq4sA0KK+uwseyEneyImA0KK+uwseyYge2ZmA0KK+uwseq4sOyImA0KK+uwseyYgeuwsA0KK+uwsey5oOyInA0KK+uwseunjOyYpA0KK+uwseyerOyYpA0KK+uwseyYgeyImA0KK+uwseyInOydtQ0KK+uwseuPhOq3vA0KK+uwseuqheyjvA0KK+uwseyYgeyImA0KK+uwseyDgeqxtA0KK+uwseuCqOuwsA0KK+uwseyiheq4uA0KK+uwseyYgeyLnQ0KK+uwseq0key2nA0KK+uwseydvOykgA0KK+uwsSDrqoUNCivrsLHsmIHso7wNCivrsLHtmZTsmrANCivrsLHtmY3snpANCivrsLHsmqnrs7QNCivrsLHsmIHspIANCivrsLHsmKXsiJgNCivrsLHshpDssqANCivrsLHsp4Tqt5wNCivrsLHsmIHssqANCivrsLHsnqzrj4QNCivrsLHrjIDtg5wNCivrsLHstpjsobANCivrsLHsmIHstpgNCivrsLHsmrTqta0NCivrsLHsnqztg5wNCivrsLHsmrTshKANCivrsLHsmIHtmLgNCivrsLHrs5Hsm5ANCivrsLHquLDtmqgNCivrsLHtjJDrj5kNCivrsLHsmIHtmLgNCivrsLHsg4HtmLgNCivrsLHsmIHqtowNCivrsLHsooXso7wNCivrsLHsmIHtmLgNCivrsLHsoJzrj5kNCivrsLHsiJztmZgNCivrsLHsmIHtlZwNCivrsLHsmIHtmLgNCivrsLHqt7zsobANCivrsLHsooXqt7wNCivrsLHqtZDsnpANCivrsLHsmIHtnawNCivrsLHsg4HquLANCivrsLHqt5zqtoENCivrsLHrtInsiJwNCivrsLHsmKXrnoANCivrsLHrrLjsnpANCivrsLHtmZjtnawNCivrsLHrj5nsp4QNCivrsLHsmrHsmqkNCivrsLHsl7DsiJgNCivrsLHspJHslrUNCivrsLHsnqztnawNCivrsLHsmrTroZwNCivrsLHshLHsooUNCivrsLHsnKTsiJwNCivrsLHshLHrrLgNCivrsLHsmrTsmrANCivrsLHssq3spJENCivrsLHshLHsmqkNCivrsLHshozsp4QNCivrsLHsmrTsmrANCivrsLHsoJXsi50NCivrsLHso7zsobANCivrsLHsooXtlYQNCivrsLHsmrTssqANCivrsLHrhbjsnbQNCivrsLHrtInsm5QNCivrsLHtg5zsiJgNCivrsLHsmrTtg5wNCivrsLHtlZzsl7ANCivrsLHsp4jrjIANCivrsLHshLHsuZgNCivrsLHsmrTtlZkNCivrsLHslpHrjIANCivrsLHqt5zsmqkNCivrsLHrtoTsiJkNCivrsLHsmrTtmLgNCivrsLHsnqzqs6QNCivrsLHsgrzsi50NCivrsLHsmIHrspQNCivrsLHsm4Xsl7QNCivrsLHtg5zqtowNCivrsLHsoJXsiJgNCivrsLHrs5Hqsr0NCivrsLHsm5DquLANCivrsLHsnqztg5wNCivrsLHsnZHtmZgNCivrsLHsooXqta0NCivrsLHsm5DsuZgNCivrsLHsnqztnawNCivrsLHsirntlqUNCivrsLHsnZjsiKANCivrsLHsnKDrtoQNCivrsLHtmZjsiJgNCivrsLHshoztmIQNCivrsLHsp4TtmIQNCivrsLHsnKTsi50NCivrsLHsg4HsiJwNCivrsLHsnqzsooUNCivrsLHspJHsiJkNCivrsLHsnKTssqANCivrsLHsg4Hrs7UNCivrsLHsmIHstpgNCivrsLHsnqzsiJwNCivrsLHsnKTssqANCivrsLHsnqzsi50NCivrsLHssL3tmLgNCivrsLHqtJHroKgNCivrsLHsnKTtmIQNCivrsLHsp4Drnb0NCivrsLHsoJXsl7QNCivrsLHsiJjspIANCivrsLHsnYDsi50NCivrsLHsm5DrqqgNCivrsLHtg5zsmqkNCivrsLHsooXsiJgNCivrsLHsnbjquLgNCivrsLHsmIHsiJgNCivrsLHquLDsl7ANCivrsLHrs7Xqs6QNCivrsLHsnbjshJ0NCivrsLHsmIHquLgNCivrsLHsgrzsobANCivrsLHshJ3rjZUNCivrsLHsnbjssKwNCivrsLHqs4TsiKANCivrsLHsnZjtmLgNCivrsLHsiJzsnoQNCivrsLHsnbjtmIQNCivrsLHsoJXsi50NCivrsLHshKDsnKQNCivrsLHshLHtmZgNCivrsLHsnbjtnaANCivrsLHsiJzsl7ANCivrsLHsmqnrqqgNCivrsLHsnqzsmrANCivrsLHsnbzquLANCivrsLHsiJzrs7UNCivrsLHrtInsiJwNCivrsLHsnYDtnawNCivrsLHsnbztmIQNCivrsLHsmqntmZgNCivrsLHtg5ztmZgNCivrsLHsnZjsmqkNCivrsLHsnqXqsJwNCivrsLHquLDrj5kNCivrsLHsnqzsmrQNCivrsLHsoJXquLgNCivrsLHsnqzrtIkNCivrsLHtjJDsiJkNCivrsLHsoJztmZQNCivrsLHqt5zsiJgNCivrsLHsnqzshKANCivrsLHtg5ztg50NCivrsLHrtoTshLENCivrsLHsooXquLANCivrsLHsnqztmIQNCivrsLHtlZnsnKQNCivrsLHtg5zsnKQNCivrsLHqs6TsiJgNCivrsLHsnqztmLgNCivrsLHsnqzqs6QNCivrsLHshqHsmKUNCivrsLHspIDrgqgNCivrsLHsnqztmLgNCivrsLHssL3soJUNCivrsLHtlZnsp4QNCivrsLHquIjshLENCivrsLHsoITtg5wNCivrsLHrj5nsmqkNCivrsLHshLHquLgNCivrsLHshLHsnpANCivrsLHsoJDrtIkNCivrsLHtlZnsm5ANCivrsLHsnqzsi50NCivrsLHrkZDqsr0NCivrsLHsoJDsiJgNCivrsLHtnazqtawNCivrsLHqt5zshKANCivrsLHsiJztg5wNCivrsLHsoJDsiJgNCivrsLEg7LaYDQor67Cx7ZW06regDQor67Cx7J6E7KeEDQor67Cx7KCV642VDQor67Cx7KCV7IaMDQor67Cx7YOc6regDQor67Cx7KKF7ZiEDQor67Cx7KCV7JiBDQor67Cx67OR7JqpDQor67Cx7KCV6raBDQor67Cx7KCQ6regDQor67Cx7KCV7JiBDQor67Cx7KCV7KSADQor67Cx7YOc7IudDQor67Cx7J6s6rWsDQor67Cx7KCV7JqpDQor67Cx67OR6rWsDQor67Cx7ISd7JmEDQor67Cx66eM6rWsDQor67Cx7KCV7KKFDQor67Cx7ZWE7ZGcDQor67Cx7JiB6re8DQor67Cx7KKF7KGwDQor67Cx7KCV7ZiEDQor67Cx7KCV7YOcDQor67Cx7YOc66y4DQor67Cx7JuF7JqwDQor67Cx7KCV7ZmYDQor67Cx7Jyk7IiYDQor67Cx64KZ7LacDQor67Cx6rCR64yADQor67Cx7KCV7Z2sDQor67Cx7ISx67SJDQor67Cx6riw7ZmNDQor67Cx6riw7IiYDQor67Cx7KKF6rOEDQor67Cx7Lmg7Z2sDQor67Cx6rK97IudDQor67Cx66eM7IiYDQor67Cx7KKF6riwDQor67Cx7JiB64yADQor67Cx7JiB7ZmYDQor67Cx6rec7J6QDQor67Cx7KKF7LKgDQor67Cx7ISx6rOgDQor67Cx6rK97JiBDQor67Cx7KKF7IigDQor67Cx7KeE7JuFDQor67Cx64+E7JykDQor67Cx67SJ7IudDQor67Cx7LKg7KSADQor67Cx7LC96riwDQor67Cx7J247ZWZDQor67Cx7J6s6recDQor67Cx7KCc7J2YDQor67Cx7LKt7Jq0DQor67Cx7IOB6riwDQor67Cx7Jil7IudDQor67Cx7J247J6sDQor67Cx7LaY6riwDQor67Cx7ZWt7ZuIDQor67Cx66y07ISdDQor67Cx7Iic7J6sDQor67Cx7YOc7JqxDQor67Cx7Iic7LC9DQor67Cx7ISx7J20DQor67Cx67O466y4DQor67Cx7YOc7KKFDQor67Cx7Jew66GdDQor67Cx7ZiE7KKFDQor67Cx7IiZ7LmYDQor67Cx7YOc7KeEDQor67Cx7IaM6rSRDQor67Cx67OR7KSADQor67Cx6rWs7Z2sDQor67Cx7YOc7ZiEDQor67Cx67OR7KeEDQor67Cx6re87KeEDQor67Cx7J6s7JewDQor67Cx7YOc7Zi4DQor67Cx7IiY7ISdDQor67Cx66eM7ZWEDQor67Cx67SJ7ZeMDQor67Cx7ZWZ6riwDQor67Cx7JiB7YOcDQor67Cx7IiY6rSADQor67Cx7KeE7YyUDQor67Cx7ZWZ7IiYDQor67Cx7Jil656ADQor67Cx7KKF7IOBDQor67Cx66eM7KeEDQor67Cx7ZWc6raMDQor67Cx7Lap7ZmUDQor67Cx7J2A6rCRDQor67Cx7JiB7IicDQor67Cx7ZiE7JqwDQor67Cx6rK967SJDQor67Cx7J6E7IiYDQor67Cx7KKF7IS4DQor67Cx7ZiE7ZWZDQor67Cx67aE7JuFDQor67Cx7JuU64+EDQor67CxIOyInA0KK+uwse2YhO2VmQ0KK+uwseyDgeyImA0KK+uwseyduOuhgA0KK+uwseyDgeydtQ0KK+uwse2YhO2VmQ0KK+uwseyYgeyLnQ0KK+uwse2DnOyLnQ0KK+uwseyDge2drA0KK+uwse2YleuPhA0KK+uwseyInOyehA0KK+uwseyerOykgA0KK+uwseq1rOyekA0KK+uwse2YleydvA0KK+uwseyjvOywrA0KK+uwseqyveybkA0KK+uwseuzteq3vA0KK+uwse2YuO2YhA0KK+uwseq0keyImQ0KK+uwseq3nOyXsA0KK+uwseyYgeydvA0KK+uwse2ZlOyImQ0KK+uwseq4sOyImQ0KK+uwseyiheyYgQ0KK+uwseyCrOuhnQ0KK+uzgOqwkeyhsA0KK+uzgOywveyYgQ0KK+uzgO2DneyEoA0KK+uzgOuPmeyXhQ0KK+uzgOqyveyLnQ0KK+uzgOyjvOq4sA0KK+uzgOyaqe2drA0KK+uzgOywveqwkQ0KK+uzgOq4iOyInA0KK+uzgOyerOu2hA0KK+uzgOuCqOyImQ0KK+uzgOyDge2YuA0KK+uzgOuPme2VhA0KK+uzgOykkeyEnQ0KK+uzgOyLoOybkA0KK+uzgOygleuPmQ0KK+uzgOuPme2VtA0KK+uzgOuzkeq3oA0KK+uzgOybkOy2nA0KK+uzgCDtlZwNCivrs4DrqoXqt7wNCivrs4DrjZXsl7QNCivrs4DsmIHtlZwNCivrs4Dsi5zrj5kNCivrs4Dsgqzro6ENCivrs4DsmqnsnqwNCivrs4Drs7TsiKANCivrs4Drr7zrprwNCivrs4Dsg4Hqt7wNCivrs4DslpHrrLgNCivrs4Drs5HrjZUNCivrs4Dso7zsmKUNCivrs4DshLHsiJgNCivrs4DtmY3siJwNCivrs4DqtZDsl7QNCivrs4Dso7zsm4UNCivrs4DshLHsm5ANCivrs4DsmIHspIANCivrs4DsiJjslZQNCivrs4DqtJHtnawNCivrs4DsiJzsl6wNCivrs4DsmIHsi50NCivrs4Drs5HsooUNCivrs4Dtg5zsooUNCivrs4DsmKTsi50NCivrs4DrrLjqsJENCivrs4DspIDtnLQNCivrs4DssL3siJgNCivrs4Dsmqnsi50NCivrs4DstpjrqqkNCivrs4Dri6zsmKUNCivrs4Drs5HsiJgNCivrs4Dsmqnsp4QNCivrs4Dqsr3snKANCivrs4DsmIHtmIQNCivrs4Dqsr3qtawNCivrs4DsnITsi50NCivrs4DshLHshK0NCivrs4Drs5HtmZQNCivrs4DspIDsmqkNCivrs4DsnKTsi50NCivrs4DqtJHsobANCivrs4DsoJXsiJgNCivrs4DshJ3tg5wNCivrs4DsnYDsi50NCivrs4DsiJzsi50NCivrs4DtlZnsm5ANCivrs4Drs7Xsm4UNCivrs4DsnbTqt5wNCivrs4DstqnsiJkNCivrs4DshJ3shKANCivrs4DshLHsmKUNCivrs4DsnqXsmrANCivrs4DrqoXsnKQNCivrs4Dtg5ztnawNCivrs4DtlYTtg50NCivrs4Dsnqzqs6QNCivrs4DsoJXsm5ANCivrs4DshLHsi50NCivrs4Dsg4HsobANCivrs4DsooXrtIkNCivrs4Dsg4HtmZgNCivrs4Drs5Hro6ENCivrs4DsmKXqtowNCivrs4DsooXsi50NCivrs4Dsg4HqtowNCivrs4DshLHrgrQNCivrs4DsoJXrgqgNCivrs4DssKzquLANCivrs4Dso7ztnawNCivrs4DsoJXslrUNCivrs4Dtg5zshowNCivrs4DssL3tmIENCivrs4DrjIDsnbwNCivrs4DsnYDqtowNCivrs4DrqoXsmIENCivrs4DssqDsmrANCivrs4Dtg5zsmqkNCivrs4DssL3siJgNCivrs4DspJHsiKANCivrs4DssqDsmrANCivrs4DsmIHtlqUNCivrs4DrqoXsnbQNCivrs4DsooXsmqkNCivrs4Dtg5zsiJgNCivrs4DsnqztmZQNCivrs4DqtozsmrANCivrs4DssL3qtawNCivrs4DtjJDqt5wNCivrs4DrqoXtg50NCivrs4DtlZntmIQNCivrs4DrjIDqtowNCivrs4DtmLjtmIQNCivrs4DsmqnqsbgNCivrs4Dqsr3tm4gNCivrs4Dtg5zqta0NCivrs4DtmZTsnpANCivrs4Dshozsl7ANCivrs4DrjIDsmrANCivrs4DqtozsiJgNCivrs4DtmZjqt5wNCivrs4DsnbjsiJgNCivrs4Dtm4jqt7wNCivrs4DsmIHsm4UNCivruYjsmrHstpwNCivruYjqtIDtm4gNCivruYjtlbTsirkNCivruYjrqoXsmrANCivruYjsooXsmrENCivruYjsspzslZQNCivruYjshJ3shJ0NCivruYjrj4jsiJwNCivruYjstpjsmKUNCivruYjsmqnsl7QNCivruYjspJHrs7UNCivruYjshKDsg50NCivsgqzrs7XtmZgNCivsgqzsoJXsiJkNCivsgqzsnYDtlZkNCivsgqzrs5HsmKQNCivsg4HsoJXqt6ANCivsg4HquLDsnpANCivsg4HsoJXtlbQNCivsg4HtmqjshJ0NCivshJzqsJHrrLgNCivshJzrrLjsiJkNCivshJzshLjsmrANCivshJzshLHshLgNCivshJzqsJHsiJgNCivshJzso73smKQNCivshJzsoJDri6wNCivshJzsnbzqt6ANCivshJzqsJHsiJgNCivshJzquLDtmZgNCivshJzrj5nsobANCivshJzqtJHsl7QNCivshJzqsr3qt5wNCivshJzsiJjri6wNCivshJzsmKXsmqkNCivshJzrgqjtmLgNCivshJzqsr3qt5wNCivshJztjJDshK0NCivshJzsp4Tqsr0NCivshJzsi6DtnawNCivshJzqsr3qt5wNCivshJzqsr3ssqANCivshJzsg4HspIANCivshJzsooXtmLgNCivshJzqsr3shJ0NCivshJzsnYDsiJkNCivshJzrjZXsmIENCivshJzsnqztnawNCivshJzqsr3siJgNCivshJzsg4HtmZgNCivshJzssKzqtZANCivshJzspIDqs6QNCivshJzqsr3siJkNCivshJzqsr3smKQNCivshJzri6zsiJwNCivshJzsspzrrLgNCivshJzqsr3slZQNCivshJzrs5HrnpgNCivshJzsnKTsnbgNCivshJzrkZDtlZkNCivshJzqsr3soJANCivshJzslrjshK0NCivshJzsmIHquLANCivshJzsmIHqt5wNCivshJzqsr3tmZQNCivshJztlbTslZQNCivshJztlZntlZkNCivshJzshJ3rsLANCivshJzqsr3tnawNCivshJzsnqztl4wNCivshJzsiJzsnbQNCivshJzrj5nshKANCivshJzqsr3tnawNCivshJzsmrTshK0NCivshJzrs7Xrs7UNCivshJzsg4HqtawNCivshJzqsr3tnawNCivshJzrj5nqt7wNCivshJzsooXqsbQNCivshJztm4Tsm5ANCivshJzqs4TshJ0NCivshJzrjZXtlZwNCivshJzsiJjtmIQNCivshJztlbTsm4UNCivshJzqs6Hsp4ANCivshJzrqoXqta0NCivshJzrkZDtg5wNCivshJzsoJXssYQNCivshJzqtJHsi50NCivshJzssKzsnqwNCivshJzspIDquLgNCivshJzsnKTsmrANCivshJzqtJHslYUNCivshJzsmKXsnqwNCivshJzsnqzrp4wNCivshJzsnbTqta0NCivshJzqtJHslrgNCivshJzsi6DsmrQNCivshJzssKjsmrANCivshJzrkZDsnpANCivshJzqtJHtg50NCivshJztg5zsiJkNCivshJzsg4HsmIENCivshJzsg4Hqt5wNCivshJzqtZDsmrENCivshJzsp4TsoJANCivshJzqtJHtnawNCivshJzslpHshKANCivshJzqtZDtnawNCivshJzshKDqt6ANCivshJzsirntkZwNCivshJzsooXrqoUNCivshJzqtZDtnawNCivshJzsmIHrspQNCivshJzrs5HsmIENCivshJzsmIHsm5ANCivshJzqtazshJ0NCivshJztmJXsiJwNCivshJzrs5HsnbQNCivshJzrtInquLANCivshJzqt7ztmLgNCivshJztmITrrLgNCivshJzsiJjsl7QNCivshJzsmYTssqANCivshJzquIjsnbQNCivshJzsoJXsnoUNCivshJzrs5HtmZQNCivshJzshJ3rj5kNCivshJzrgqjsiJkNCivshJztg5zshKANCivshJzqs4TsiKANCivshJzrk53shJ0NCivshJzrgqjsobANCivshJzrgqjtg5wNCivshJzsmrDsiJkNCivshJztg5zrjZUNCivshJzri6TsnoQNCivshJzrs5HsnKQNCivshJzssKjsiJgNCivshJzqt5zrrLgNCivshJzri6zshKANCivshJzsmIHquLANCivshJzqt5zsmIENCivshJzquLDspIANCivshJzrjIDqsr0NCivshJzsoJXshLENCivshJzqsJXsiJkNCivshJzshJ3shJ0NCivshJzrjIDqtIANCivshJzquLjsl7ANCivshJztlbTquLANCivshJzsoJXqtawNCivshJzrjIDtmZgNCivshJzsmIHsiJkNCivshJzsiJjtkZwNCivshJzrs5HroZ0NCivshJzrjZXshKANCivshJzsm5Drp4wNCivshJztmJXtg4ENCivshJzsgrzsiJwNCivshJzrj5nrjZUNCivshJzshJ3qt7wNCivshJzsnqzsl7QNCivshJzrqoXtnawNCivshJzrj5nsiJgNCivshJzsl7Dsl7ANCivshJzsi6Drj5kNCivshJztmJXtmLgNCivshJzrj5nsiJgNCivshJzsnKTshKANCivshJzquLDsmqkNCivshJzrqoXqt7wNCivshJzrj5nsnqwNCivshJzqtJHtmLgNCivshJzslZTsmYQNCivshJztg53rr7wNCivshJzrj5nspIANCivshJzqsr3quLgNCivshJztg5ztmZgNCivshJztlbTqt5wNCivshJzrj5ntm4gNCivshJzqsJHsi50NCivshJzrs5HsiJkNCivshJzssL3sobANCivshJzrkZDshKANCivshJzsiJzqs6ANCivshJwg7IStDQor7ISc7Iuc7IicDQor7ISc66eQ64+EDQor7ISc7JuQ64KoDQor7ISc67OR7Je0DQor7ISc7ZiE7Zi4DQor7ISc66eQ7ISgDQor7ISc6rWQ67O1DQor7ISc66y07IiYDQor7ISc6rec7JqpDQor7ISc66e57IiYDQor7ISc6riw7ISgDQor7ISc7YOc6riwDQor7ISc7JuQ7IigDQor7ISc66qF6rOkDQor7ISc6rSR6rOkDQor7ISc7JuQ7IudDQor7ISc7J2A7ZiEDQor7ISc66qF6rWQDQor7ISc7J247JuQDQor7ISc7Jqp7JilDQor7ISc7IaM7IStDQor7ISc66qF64usDQor7ISc7LaY7Ja1DQor7ISc6rK97ISgDQor7ISc67OR6rOkDQor7ISc66qF7IiYDQor7ISc7JiB7IiYDQor7ISc7Jil7ISgDQor7ISc7JiB7J20DQor7ISc66qF7JWUDQor7ISc7KKF7JuQDQor7ISc7ISg6rWQDQor7ISc66+47ZWZDQor7ISc66y064KoDQor7ISc7KCQ6ri4DQor7ISc7J287ZuIDQor7ISc7IOB7Zi4DQor7ISc66y07KGwDQor7IScIOyImA0KK+yEnOunjOyXtA0KK+yEnOynhO2YuA0KK+yEnOustOyihQ0KK+yEnOygleq3vA0KK+yEnOuCqOuhnQ0KK+yEnO2DnOyImA0KK+yEnOustO2YuA0KK+yEnOyDgeyImA0KK+yEnOuMgO2DnQ0KK+yEnO2VmOyglQ0KK+yEnOusuOuNlQ0KK+yEnOuPmeyEsQ0KK+yEnOy2qeyDgQ0KK+yEnOq0keu0iQ0KK+yEnOusuOyImA0KK+yEnOyiheycqA0KK+yEnOustOyhsA0KK+yEnOyaqeyIoA0KK+yEnOusuOyImA0KK+yEnOyaqeybkA0KK+yEnOyEseq4sA0KK+yEnOyYge2DnA0KK+yEnOuvuOqyvQ0KK+yEnOyyoOyatA0KK+yEnOyduOyLnQ0KK+yEnOygle2ZjQ0KK+yEnOuvuOyekA0KK+yEnOyEoO2DnA0KK+yEnOyGjO2YhA0KK+yEnOuzke2ZlA0KK+yEnOuvvOyEnQ0KK+yEnOyerOydvA0KK+yEnOyDgeyasA0KK+yEnOyInOyyoA0KK+yEnOuylOyLnQ0KK+yEnOqyveyjvA0KK+yEnOyImOyLnQ0KK+yEnOyInOyyoA0KK+yEnOuzkeyImA0KK+yEnOyEseqzpA0KK+yEnOyDgeuztA0KK+yEnOyerOumvQ0KK+yEnOuzkeyerA0KK+yEnOynhOyYpQ0KK+yEnOyInOu0iQ0KK+yEnOyInOyEnQ0KK+yEnOuztOq3vA0KK+yEnOywveyhsA0KK+yEnOyYpeyImA0KK+yEnO2DnOyekA0KK+yEnOuztOuNlQ0KK+yEnOuPhOyaqQ0KK+yEnOygle2YuA0KK+yEnOq4sOyekA0KK+yEnOuztOyYgQ0KK+yEnO2DnOyEnQ0KK+yEnO2VtOyynA0KK+yEnO2MkOyhsA0KK+yEnOuztOyatA0KK+yEnOydvOyInA0KK+yEnOy2mOydtA0KK+yEnOyDgeykkQ0KK+yEnOuztOybkA0KK+yEnOygleyErQ0KK+yEnOyEneyyoA0KK+yEnOywve2YuA0KK+yEnOuztOynhA0KK+yEnOuqheuNlQ0KK+yEnOydvOuNlQ0KK+yEnOyEneyhsA0KK+yEnOuztOywrA0KK+yEnOuMgO2YuA0KK+yEnOy5mOyYpQ0KK+yEnOustO2drA0KK+yEnOuztO2YgQ0KK+yEnOybkO2drA0KK+yEnO2ajOyImA0KK+yEnOydmOyImQ0KK+yEnOuztO2drA0KK+yEnOq0keyerA0KK+yEnOydhOyglQ0KK+yEnOydvOyLnQ0KK+yEnOuzteqyvQ0KK+yEnOuqhe2drA0KK+yEnOywveuwsA0KK+yEnOycpOyIoA0KK+yEnOuzteyInA0KK+yEnOyLnO2ZmA0KK+yEnOqyveydkQ0KK+yEnOyEneyLnQ0KK+yEnOu0ieq1kA0KK+yEnO2WieyLnQ0KK+yEnOyerOyZhA0KK+yEnOyduOyasA0KK+yEnOu0ieuNlQ0KK+yEnOyWkeykgA0KK+yEnOyInOyynA0KK+yEnOyerOuTnQ0KK+yEnOu2hOyInA0KK+yEnOq1re2ZjQ0KK+yEnOq0keyImA0KK+yEnO2MkOyImA0KK+yEnOyCrO2YhA0KK+yEnOyLnOyEsQ0KK+yEnOychOyErQ0KK+yEnOq2jOyImA0KK+yEnOyCvOq2jA0KK+yEnOyaqeu0iQ0KK+yEnOyEseq4sA0KK+yEnOywqOyYgQ0KK+yEnOyDgeq3vA0KK+yEnOyerOyLnQ0KK+yEnOuzkeq3nA0KK+yEnOyaqe2drA0KK+yEnOyDgeuFuA0KK+yEnOqyveyEoA0KK+yEnOunjOyLnQ0KK+yEnOydgOydtA0KK+yEnOyDgeuNlQ0KK+yEnOyImOq2jA0KK+yEnOybkOyihQ0KK+yEnOyyoOq4sA0KK+yEnOyDgeuPjA0KK+yEnOuzkeyInA0KK+yEnOykgOyhsA0KK+yEnCDsmrANCivshJzsg4HroZ0NCivshJzqtazrs5ENCivshJzssL3siJgNCivshJzsmrTsmrQNCivshJzsg4HroZ0NCivshJzsmKXquLgNCivshJzquIjshKANCivshJzsg4HshJ0NCivshJzsg4HroZ0NCivshJztg5zsm4UNCivshJzsm5DtmLgNCivshJzssL3tmZQNCivshJzsg4Hrp5ANCivshJzsmIHssqANCivshJztlZnqs6QNCivshJzsiJjsiJgNCivshJzsg4HrrLgNCivshJzqs4TsobANCivshJzshJ3qtawNCivshJzsm4XtmZgNCivshJzsg4HshLgNCivshJzrqoXsp4QNCivshJztg5ztmLgNCivshJzrs5Hqsr0NCivshJzsg4Hsi50NCivshJzssqDri7QNCivshJzsp4TqtZANCivshJzsmIHsmrENCivshJzsg4Hsl7QNCivshJzshLHsiJgNCivshJzsnYDssqANCivshJzrjZXtl4wNCivshJzsg4HsnpANCivshJzsgqzsl7QNCivshJzsmKXrj5kNCivshJzqt7zsl7QNCivshJzsg4HspIANCivshJzsgqzquLANCivshJzsnqXstpwNCivshJzshLHrk50NCivshJzsg4Htg5wNCivshJztmITtmLgNCivshJzqtJHtmZgNCivshJztlYTsiJgNCivshJzsg4Htg5wNCivshJzshLHsiJgNCivshJzsmIHsg4ENCivshJzqt5zsobANCivshJzsg4Htg5wNCivshJzsmKTsl7QNCivshJzsmIHssqANCivshJzqt7zrpqwNCivshJzsg4HtmIQNCivshJzsmKTtnawNCivshJzrtIntg5wNCivshJzsoJXsl7QNCivshJzsg4HtmIQNCivshJzrp4zsiJgNCivshJzsnYDsg50NCivshJzsg4Htg5wNCivshJzsg4HtmLgNCivshJzshJ3tm4gNCivshJzsnqXqt5wNCivshJzsmIHsobANCivshJzsg4HtmZQNCivshJzsnqzrqqgNCivshJzsmIHsooUNCivshJztlbTtnawNCivshJzsg4HtmZQNCivshJzsmqnsobANCivshJzquLDtnaANCivshJzshLHsiJgNCivshJzsg4HtmqgNCivshJzsooXsiJgNCivshJzsmKXqtawNCivshJzqsJHrrLgNCivshJzsg4HtnawNCivshJzssKzsl7QNCivshJzqsJHtmIQNCivshJzrs5HrtIkNCivshJzshJ3qtZANCivshJzsg4Hqt5wNCivshJzsmqnqtIANCivshJzshLjrp4wNCivshJzshJ3qt5wNCivshJztg5zsspwNCivshJzsmqntnawNCivshJzsooXrj4QNCivshJzshJ3smIENCivshJzsnKHquLANCivshJzrs5HsnYANCivshJzquLDquLANCivshJzshJ3snKQNCivshJzqsr3smrQNCivshJztg5zslpENCivshJzsmIHshLENCivshJzshJ3tmY0NCivshJzsiJztmIQNCivshJzsoJXssqANCivshJzrs5HsobANCivshJzshJ3tnawNCivshJzsnKDsm5ANCivshJzsoJXso7wNCivshJzsnKTsmrQNCivshJzshKDqtZANCivshJzrs5Hsl7ANCivshJzspJHsl7ANCivshJzsnqztmZQNCivshJzshLHqtZANCivshJzspJHsmrENCivshJztlbTsobANCivshJzrqoXsnbQNCivshJzshLHrp4wNCivshJzqsJHsiJgNCivshJzsnbjshJ0NCivshJztjJDsl7QNCivshJzshLHslZQNCivshJztlonrrLgNCivshJzsg4HtjJQNCivshJzsirnrjIANCivshJzshLHsnKQNCivshJzsmbjsiJkNCivshJzsoJDssqANCivshJzsmIHsnYANCivshJzshLHstpwNCivshJzsiJzsnqwNCivshJzsmIHrsLANCivshJzsooXtmZgNCivshJzshozqtowNCivshJzsnbzsobANCivshJzsooXsiJwNCivshJztg5zsi6wNCivshJzshozsmqkNCivshJzrj4TtlZkNCivshJzrs5HtlZwNCivshJzsiJjtmJUNCivshJzsiJjqsr0NCivshJzsnbzrjIANCivshJztmITsiJgNCivshJzrs7TtlZgNCivshJzsiJjsl7ANCivshJzsnqztmY0NCivshJzsnbjqt5wNCivshJztlbTshJ0NCivshJzsiJjsm4UNCivshJzsooXso7wNCivshJztmLjsoJUNCivshJzrs5HsmrANCivshJzsiJzqtZANCivshJzsl7Dtg5wNCivshJztg5zqsr0NCivshJzso7ztnawNCivshJzsiJzrgqgNCivshJzsmIHsnqwNCivshJztg5zsiJkNCivshJzsoJDrjIANCivshJzsiJzrj4QNCivshJzqsr3shLENCivshJzrs7TsmrANCivshJzsnqXshJ0NCivshJzsiJzrj4wNCivshJzrs5Hsm5ANCivshJzssL3rp4wNCivshJzsnbjquLANCivshJzsiJzrnoANCivshJztg5zsl7ANCivshJwg7KeEDQor7ISc7IOB64KcDQor7ISc7Iic7ISdDQor7ISc7LCo7IStDQor7ISc66qF7JikDQor7ISc7J6s7KGwDQor7ISc7Iic7J20DQor7ISc7J6s6riwDQor7ISc7J6s7Zi4DQor7ISc6rK97JqpDQor7ISc7Iq56riwDQor7ISc6rec7ZmNDQor7ISc7IOB7ZWYDQor7ISc7Jew7JiBDQor7ISc7Iq57JuQDQor7ISc66qF6recDQor7ISc7IOB7IudDQor7ISc6rSR7ZiEDQor7ISc7JiB6recDQor7ISc7J6s7J6QDQor7ISc7J2866a8DQor7ISc6ri47Zi4DQor7ISc7JiB64usDQor7ISc67SJ7ZalDQor7ISc7JiB6re8DQor7ISc6reA66GADQor7ISc7JiB64usDQor7ISc7KO87Je0DQor7ISc7JuQ7JilDQor7ISc7J6s64KoDQor7ISc7JiB64+MDQor7ISc7Z2s7JqpDQor7ISc7KKF7ZalDQor7ISc66qF7ZmYDQor7ISc7JiB66qpDQor7ISc7ZiE6riwDQor7ISc64yA6rCRDQor7ISc7ISx7JqpDQor7ISc7JiB7ISdDQor7ISc6rK97ZiEDQor7ISc7YyQ7JqwDQor7ISc67OR7IigDQor7ISc7JiB7IiYDQor7ISc7KeE7YOcDQor7ISc7KCV7JilDQor7ISc7ISd7YOcDQor7ISc7JiB7JuFDQor7ISc7IOB6recDQor7ISc67OR7YyMDQor7ISc6rK96ri4DQor7ISc7JiB7JuQDQor7ISc64yA7Zi4DQor7ISc67OR7ZmUDQor7ISc66y07JqpDQor7ISc7JiB7J2ADQor7ISc66qF7Zi4DQor7ISc7JiB7JWgDQor7ISc67OR7IicDQor7ISc7JiB7LC9DQor7ISc7IOB7IiZDQor7ISc7ZW06rOkDQor7ISc67OR6raMDQor7ISc7JiB7YOcDQor7ISc7KCV7Zi4DQor7ISc6riI7IStDQor7ISc7Zi464+ZDQor7ISc7Jik7KGwDQor7ISc7J6s67SJDQor7ISc7KSR7JqpDQor7ISc64yA7ZmYDQor7ISc7Jil7LacDQor7ISc6rCR64+ZDQor7ISc64+I67aADQor7ISc7Jqp7ZWcDQor7ISc7JmE7IudDQor7ISc7IOB7IiYDQor7ISc7J6s7ZWYDQor7ISc7YyQ66GdDQor7ISc7Jm47IiYDQor7ISc7Lap7YOdDQor7ISc7IOB67SJDQor7ISc66eJ7ZuIDQor7ISc7Jqp66eMDQor7ISc66eM6rSRDQor7ISc67OR7ZuIDQor7ISc6rec7J24DQor7ISc7Jqp67aADQor7ISc6riw7IicDQor7ISc67SJ7ZGcDQor7ISc7JiB66eMDQor7ISc7Jqp7ISdDQor7ISc7IiY67CwDQor7ISc6riw7KGwDQor7ISc66y07KO8DQor7ISc7Jqp7KGwDQor7ISc7ISg7KKFDQor7ISc7KSA7ZmYDQor7ISc7ISd7ZmNDQor7ISc7Jqp7YyQDQor7ISc7IOB7ZWZDQor7ISc7Jqp7KGwDQor7ISc7Zi47Zi4DQor7ISc7Jqp7ZW0DQor7ISc7LC97KKFDQor7ISc7Jik7JewDQor7ISc6riw7IicDQor7ISc7Jqp7ZW0DQor7ISc7KKF6rKsDQor7ISc7IiZ7IiYDQor7ISc7Jyk7J2RDQor7ISc7Jqp7Zi4DQor7ISc7KCV7Z2sDQor7ISc7IOB7ZmNDQor7ISc6re87ZuIDQor7ISc7Jqw7LKgDQor7ISc7ISx7IiZDQor7ISc66qF7LacDQor7ISc7YOc7Z2sDQor7ISc7JuF6ri4DQor7ISc7ZWY7LKcDQor7ISc6riI7ISdDQor7ISc7KKF7KSADQor7ISc7Jyg7IKwDQor7ISc7ISd7IudDQor7ISc67O07JWFDQor7ISc66eM7ZiVDQor7ISc7Jyk7ISdDQor7ISc7J6s64yADQor7ISc7L6M7Zi4DQor7ISc7LC97IiYDQor7ISc7Jyk7ISgDQor7ISc7Zi47JWgDQor7ISc7ISx6riwDQor7ISc7J6s7KCQDQor7ISc7Jyk7JilDQor7ISc7J6s66qpDQor7ISc7LaY7KKFDQor7ISc7J6s64KoDQor7ISc7Jyk7LacDQor7ISc7KKF7KSADQor7ISc7J247J6QDQor7ISc7KKF7KCVDQor7ISc7Jyk7Z2sDQor7ISc7Iuc6rG0DQor7ISc7ZmN7IiYDQor7ISc7LaY7Zi4DQor7ISc7J2A6rK9DQor7ISc7JiB6riwDQor7ISc7KO87YOcDQor7ISc67OR7ISdDQor7ISc7J207ISgDQor7ISc67OR7LmgDQor7ISc7J2R6ri4DQor7ISc7Jqp7IudDQor7ISc7J207KeEDQor7ISc7Jyk7J24DQor7ISc7KCV6rWQDQor7ISc7YOc7JqpDQor7ISc7J217IicDQor7ISc7ISd7ZWYDQor7ISc64us7JqwDQor7ISc7IiY6re8DQor7ISc7J24642VDQor7ISc67OR7KGwDQor7ISc7ZWZ6riwDQor7ISc66y07Z2sDQor7ISc7J247IicDQor7ISc7JiB7Zi4DQor7ISc6rG07JqpDQor7ISc7KKF7KGwDQor7ISc7J247Je0DQor7ISc6riw7IiYDQor7ISc7ISd7J6EDQor7ISc7ISx7IicDQor7ISc7J286rWQDQor7ISc7Jew7KCBDQor7ISc7J6s64KoDQor7ISc7J6s7YOcDQor7ISc7J2867aADQor7ISc7KKF64+ZDQor7ISc6rK97IicDQor7ISc7JiB7LCoDQor7ISc7J6E7ISgDQor7ISc7ISx7ZiEDQor7ISc6riI7JqwDQor7ISc7Ja164+ZDQor7ISc7J6E7KGwDQor7ISc7Z2s6raMDQor7ISc7LC97KeEDQor7ISc7IOB66y4DQor7ISc7J6l7YOdDQor7ISc64Ko6rK9DQor7ISc67aE7LaYDQor7ISc66+87IudDQor7ISc7J6s6rWQDQor7ISc7J2R7YOcDQor7ISc7ZiE7J20DQor7ISc7J6s7JqwDQor7ISc7J6s642VDQor7ISc7J247ISsDQor7ISc7LC97IOdDQor7ISc6riw6rCBDQor7ISc7J6s642VDQor7ISc7KeE6riwDQor7ISc7ISx7IudDQor7ISc7Iq57LKgDQor7ISc7J6s7Je0DQor7ISc7IKs6rCcDQor7ISc7LCo7JuQDQor7ISc67SJ64+ZDQor7ISc7J6s7JiBDQor7ISc7JiB7Zi4DQor7ISc7ZW064+EDQor7ISc7KeA7ISgDQor7ISc7J6s7ZaJDQor7ISc7KCV7JiBDQor7ISc7ISd7ZiEDQor7ISc7YOc7ZmNDQor7ISc7J6s7Zi4DQor7ISc7KCV7ZmYDQor7ISc64yA7JuQDQor7ISc7JiB7JuQDQor7ISc7J6s7ZmYDQor7ISc7KKF7ZWYDQor7ISc66y47J6sDQor7ISc7YOc7Jq0DQor7ISc7J6s7ZmYDQor7ISc64+Z6re8DQor7ISc7IOB7KSADQor7ISc6rSR7JikDQor7ISc7J6s7Z2sDQor7ISc66eM7JewDQor7ISc7IS46ri4DQor7ISc7J6s7J6sDQor7ISc7KCQ64+MDQor7ISc66qF7IOBDQor7ISc7J6s7ISdDQor7ISc6rSR6rWsDQor7ISc7KCQ7IiYDQor7ISc7JiB7LCsDQor7ISc7ISx7IudDQor7ISc64Ko6rWsDQor7ISc7KCQ7IiYDQor7ISc6re87ISxDQor7ISc7Jik7ZaJDQor7ISc7J6s7J6QDQor7ISc7KCQ7IigDQor7ISc64yA7IiYDQor7ISc7YOc7J6QDQor7ISc6riw7J6QDQor7ISc7KCQ7JWUDQor7ISc6raM7J2YDQor7ISc6riw7YOdDQor7ISc6rK97KeRDQor7ISc7KCQ7KGwDQor7ISc7KCV6recDQor7ISc7YOc6recDQor7ISc7IiY7IicDQor7ISc7KCV6rK9DQor7ISc7YOc64+ZDQor7ISc66qF7Zi4DQor7ISc7J6s7IiYDQor7ISc7KCV6rOEDQor7ISc7Zqo64+EDQor7ISc6reA6riwDQor7ISc67OR7ZmYDQor7ISc7KCV6rWsDQor7ISc7Jyk6rWsDQor7ISc7ISd7IiYDQor7ISc6rG06rK9DQor7ISc7KCV6rWwDQor7ISc7KKF7Zi4DQor7ISc7JiB64+EDQor7ISc7ZmY7JiBDQor7ISc7KCV6re5DQor7ISc66eQ7IiZDQor7ISc7YOc6recDQor7ISc7J2867O1DQor7ISc7KCV6re8DQor7ISc7YOc7ISgDQor7ISc67OR66GdDQor7ISc7J6l7JuQDQor7ISc7KCV64+EDQor7ISc6rSR7JqwDQor7ISc7KCV6rOkDQor7ISc7KKF65OdDQor7ISc7KCV66GdDQor7ISc64yA7KGwDQor7ISc66eQ7ZiVDQor7ISc6riw65+JDQor7ISc7KCV67CVDQor7ISc7LKg642VDQor7ISc7Iic7LacDQor7ISc7ISx7IucDQor7ISc7KCV7IOdDQor7ISc64Ko7ZiBDQor7ISc7KO86recDQor7ISc7KCV7ISdDQor7ISc7KCV7ISdDQor7ISc7J6s7ZuIDQor7ISc6rec6rOEDQor7ISc7LCo7J6QDQor7ISc7KCV7IiYDQor7ISc7IaM6rK9DQor7ISc7IyN7Zi4DQor7ISc64+E7Zi4DQor7ISc7KCV7IiYDQor7ISc7Jq07KCVDQor7ISc7ISx7IicDQor7ISc7Jq07IicDQor7ISc7KCV7IiYDQor7ISc7J6s7JiBDQor7ISc7KCV6recDQor7ISc7JiB7Z2sDQor7ISc7KCV7IigDQor7ISc6re87IicDQor7ISc7J6s7IOBDQor7ISc7KCV7KGwDQor7ISc7KCV7IudDQor7ISc7ISx7ZqoDQor7ISc7Jqw7KCVDQor7ISc7KKF7YOBDQor7ISc7KCV7Je0DQor7ISc7KeE6recDQor7ISc7J2E7IudDQor7ISc7ZiE64KoDQor7ISc7KCV7JqwDQor7ISc7IOB7ISdDQor7ISc7J6s67CwDQor7ISc7IaM7ZmYDQor7ISc7KCV7JqwDQor7ISc7YOc7IicDQor7ISc7JiB6riwDQor7ISc7Jyk7JuFDQor7ISc7KCV7Jq0DQor7ISc6rSR7Je9DQor7ISc7J6s7JyoDQor7ISc6rK97J28DQor7ISc7KCV7J2YDQor7ISc7KeE7KeADQor7ISc7Jil6rCVDQor7ISc6riI7J6QDQor7ISc7KCV7YOcDQor7ISc7Iq56riwDQor7ISc7LCo7J24DQor7ISc7JiB6rWQDQor7ISc7KCV7YOcDQor7ISc7J6s67SJDQor7ISc7Jil7IiYDQor7ISc7JaR6riwDQor7ISc7KCV7YOcDQor7ISc7KKF7LapDQor7ISc7KSR7Zi4DQor7ISc7ZW07J6sDQor7ISc7KCV7YOcDQor7ISc7J6E7LKgDQor7ISc7KKF7IiYDQor7ISc7JiB7Zi4DQor7ISc7KCV7ZWcDQor7ISc7JiB7LKgDQor7ISc7YOc7IiZDQor7ISc7ISd7IicDQor7ISc7KCV7ZmUDQor7ISc7KSA7JiBDQor7ISc6riw7KSADQor7ISc7Jqw7ZmYDQor7ISc7KCV7ZmYDQor7ISc6reA65OdDQor7ISc7KCV7JqpDQor7ISc6rCR7ZiEDQor7ISc7KCV7Z2sDQor7ISc67OR7IigDQor7ISc7ZWZ7JiBDQor7ISc67SJ7J6QDQor7ISc7KKF7J20DQor7ISc7J6l7IiYDQor7ISc64W47ZeMDQor7ISc7Jyk7J20DQor7ISc7KO8642VDQor7ISc7Jil7LCsDQor7ISc67OR6raMDQor7ISc66eQ7Zi4DQor7ISc7KO87ZWEDQor7ISc7KeE6rK9DQor7ISc7KKF7ZqoDQor7ISc64+Z6riwDQor7ISc7KSA6rWQDQor7ISc7Zic7ZWcDQor7ISc66eM7ZiEDQor7ISc6rOg6rSRDQor7ISc7KSR6rCVDQor7ISc642V7ZiEDQor7ISc7LC96recDQor7ISc7JiB7JewDQor7ISc7KSR6recDQor7ISc66qF7YOcDQor7ISc7JiB6rOkDQor7ISc7ISx7IudDQor7ISc7KeE6rOgDQor7ISc6re57J6QDQor7ISc7Jq07IiZDQor7ISc7ZWZ6recDQor7ISc7KeE6rWQDQor7ISc6rG07Z2sDQor7ISc7Jyk7Z2sDQor7ISc7JiB7IicDQor7ISc7KeE6rWQDQor7ISc7Jqp7KCVDQor7ISc67OR7KeEDQor7ISc7ISx7LKcDQor7ISc7KeE7ISdDQor7ISc6rK97IigDQor7ISc7ISx7IudDQor7ISc64yA7J28DQor7ISc7KeE7IiYDQor7ISc7ZmN67O0DQor7ISc7J6s7KCcDQor7ISc66eQ7YOcDQor7ISc7LCo6rCRDQor7ISc7YOc7JuFDQor7ISc7JiB7Z2sDQor7ISc67OR64KoDQor7ISc7LCo656RDQor7ISc7J6s7IiYDQor7ISc7KKF6riwDQor7ISc66y0656ADQor7ISc7LCo7JqpDQor7ISc7IiY7JuQDQor7ISc7JiB7Zi4DQor7ISc6rSR7IudDQor7ISc7LC96rWQDQor7ISc66y07IiYDQor7ISc67OR7IiYDQor7ISc7ISx7JqpDQor7ISc7LC9642VDQor7ISc7IiY7IiYDQor7ISc7J6s66qoDQor7ISc7ZmN7IiYDQor7ISc7LC9642VDQor7ISc7Jqw7ZmUDQor7ISc7Jyk7ZmYDQor7ISc7Iic7IStDQor7ISc7LC97IiYDQor7ISc7YOc7KCVDQor7ISc7KCQ7IicDQor7ISc7J6s64KoDQor7ISc7LC97IigDQor7ISc7Lap7J6sDQor7ISc6rK966qoDQor7ISc7YyQ7LGEDQor7ISc7LC97ZiEDQor7ISc7IiY7JiBDQor7ISc64+Z7ZiEDQor7ISc67aA7YOBDQor7ISc7LKg6rWQDQor7ISc6rec7IigDQor7ISc7Jqp7IiZDQor7ISc7ZiV7KCVDQor7ISc7LaY6ri4DQor7ISc66eJ7KeEDQor7ISc6rK97ISdDQor7ISc7IOB7JqpDQor7ISc7LaY7IiYDQor7ISc66Gc7JiBDQor7ISc7KeE7Jq0DQor7ISc7L6M7LacDQor7ISc7LaY7J6QDQor7ISc7J2Y642VDQor7ISc6rG07IicDQor7ISc7JuQ7ZiEDQor7ISc7Lmg6raMDQor7ISc67SJ6riwDQor7ISc7KKF7J20DQor7ISc67SJ7JuFDQor7ISc7YOc6rWQDQor7ISc7ZeM7KeEDQor7ISc7J28656ADQor7ISc7KKF7KKFDQor7ISc7YOc6rWsDQor7ISc7ISd7Zi4DQor7ISc7Iic7JiBDQor7ISc7IOB7LaYDQor7ISc7YOc66eMDQor7ISc7KCV7JmEDQor7ISc66eQ66y4DQor7ISc7Iq57LKgDQor7ISc7YOc7ISdDQor7ISc7IiY7Zi4DQor7ISc7Z2s7IicDQor7ISc7Jyk6re8DQor7ISc7YOc7IiYDQor7ISc7IK87JeFDQor7ISc7Jew6riwDQor7ISc67O07Zi4DQor7ISc7YOc7IigDQor7ISc6rK97Z2sDQor7ISc7Lmg7JiBDQor7ISc7KSA7JqxDQor7ISc7YOc7JWUDQor7ISc7KCV7ZWYDQor7ISc7IiY7ZiEDQor7ISc6rSR7J6QDQor7ISc7YOc7JuQDQor7ISc7ISx7IiYDQor7ISc7J6s7J6QDQor7ISc7ISg6recDQor7ISc7YyU67SJDQor7ISc7JiB7JiBDQor7ISc64yA7Zi4DQor7ISc7IiY7Zi4DQor7ISc7ZWE6riIDQor7ISc7IiY7Zi4DQor7ISc7Zi47JqpDQor7ISc7Iug7IudDQor7ISc7ZWE7JewDQor7ISc7J2E7JuQDQor7ISc7JiB7ISgDQor7ISc7ISx7JiBDQor7ISc7ZWZ7JuQDQor7ISc7YOc7IiZDQor7ISc7ZW07JuQDQor7ISc7IOB7IOBDQor7ISc7ZWZ7KGwDQor7ISc64+Z7ISdDQor7ISc7KKF7JuQDQor7ISc64yA7JqpDQor7ISc7ZWc6rWQDQor7ISc66y07Z2sDQor7ISc7YOc7LacDQor7ISc7YOc7Je0DQor7ISc7ZWc6riwDQor7ISc7JuQ7J6QDQor7ISc7JiB7Zi4DQor7ISc6rK97J6sDQor7ISc7ZW07JuQDQor7ISc7LaY7LKcDQor7ISc7KCV7IiYDQor7ISc6riw7IicDQor7ISc7ZeM6rWQDQor7ISc67OR6rWsDQor7ISc7IiY7Z2sDQor7ISc7ISg7IStDQor7ISc7Zi46rSADQor7ISc7LaY7LCsDQor7ISc7Iic64KoDQor7ISc64+Z7J28DQor7ISc7Zi47LC9DQor7ISc7LC967O1DQor7ISc64+Z6rSADQor7ISc64+Z7IiYDQor7ISc7Zi47LacDQor7ISc7KeE6riwDQor7ISc7YOc7ISgDQor7ISc7Lmg7Je0DQor7ISc7ZmN6rWQDQor7ISc7YOc7IudDQor7ISc66qF6rWsDQor7ISc7KCV64+ZDQor7ISc7ZmN6rWQDQor7ISc7ZW07ZmYDQor7ISc7ZWc7IK8DQor7ISc6rOE7Z2sDQor7ISc7ZmN7IiZDQor7ISc7J6s7Zi4DQor7ISc7YyQ7IiYDQor7ISc7J247IOBDQor7ISc7ZmN7IudDQor7ISc7LC97IudDQor7ISc7LCs7JqwDQor7ISc67SJ7KO8DQor7ISc7ZmY7IiYDQor7ISc7ZWZ6rG0DQor7ISc7ZmU66qFDQor7ISc7YOd66y4DQor7ISc7ZuI7YOcDQor7ISc7KCV7IStDQor7ISc7Iic7ZGcDQor7ISc7J287IiZDQor7ISc7Z2s7LKgDQor7ISc7Iah7Zi4DQor7ISc67aE7J6QDQor7ISc7LC97JilDQor7ISd6rSR7KeEDQor7ISd7ZWZ67CwDQor7ISd7ISx7JaRDQor7ISd7JuU7JqwDQor7ISd6riw67SJDQor7ISd7J6s7Z2sDQor7ISd6rSA7ISdDQor7ISd7ISx64KcDQor7ISd64+E7KCVDQor7ISd7J6l6regDQor7ISd642V7ZmYDQor7ISd7ZiE7JuQDQor7ISd66y07JiBDQor7ISd642V7KO8DQor7ISd7IiY7J28DQor7ISd66y07IiYDQor7ISd66y07Zi4DQor7ISd7KCV6rWsDQor7ISd7ISd7IicDQor7ISd7KSA7KSADQor7ISd67SJ64KoDQor7ISd7Je06raMDQor7ISd7Iic7KeADQor7ISd7IOB6rK9DQor7ISd67aE7ISgDQor7ISd7ZiE7ZWYDQor7ISd7IOB7IiYDQor7ISd67OR7ZeMDQor7ISd7IOB7IiYDQor7ISd7J6s7LacDQor7ISd7JiB7IudDQor7ISd7ZW07J6QDQor7ISd7IOB7Jq0DQor7ISd6rWt6rOkDQor7ISd7J2E7ZmUDQor7ISd67OR6recDQor7ISd7ISg67aADQor7ISd6rK97IiZDQor7ISd7Zic6regDQor7ISd6reA7JWgDQor7ISd7ISx66eMDQor7ISd6rSR64yADQor7ISd7KCV7JqpDQor7ISd7Lmg64KoDQor7ISd7IaM64+MDQor7ISd7ZiV6rWsDQor7ISd7L6M6recDQor7ISd6rec7ISdDQor7ISd7Iq57YOcDQor7ISd7ISg7LC9DQor7ISd6rK97IicDQor7ISd7KCV7Jq0DQor7ISd7Jew7J20DQor7ISd7IOB7ZmUDQor7ISd7JiB65+JDQor7ISd7YOc7ZWZDQor7ISd7JiB7Zi4DQor7ISd67OR7ZW0DQor7ISd67OR7IiZDQor7ISd7LKg7ZuIDQor7ISd7Jyk7JWUDQor7ISd7YOc7Je0DQor7ISd7LaY7IiYDQor7ISd6rK97ISgDQor7ISd7J2Y7J6QDQor7ISd67OR7IudDQor7ISd7JiB642VDQor7ISd7Jil7Zi4DQor7ISd7J207ZqoDQor7ISd7Iic7ZiEDQor7ISd7ISx7YOcDQor7ISd7IOB7ISgDQor7ISd7KCQ7ZqoDQor7ISd7J6s6ri4DQor7ISd7L6M656YDQor7ISd7LaY64+ZDQor7ISd7KCV7LacDQor7ISd7LaY7IS4DQor7ISd7LCo7KKFDQor7ISd64Ko6riwDQor7ISd7KCV7LacDQor7ISd6riw7YOcDQor7ISd6re87IicDQor7ISd64+Z66+4DQor7ISd7KKF7ZmUDQor7ISd6rSR67KUDQor7ISd64Ko6riwDQor7ISd7IOB7IiYDQor7ISd7KKF7ZmUDQor7ISd66qF7KeEDQor7ISd7L6M7JuQDQor7ISd7LCo7KSADQor7ISd7KeE7JiBDQor7ISd7KKF7ZWYDQor7ISd7ZmY7IOBDQor7ISd7ISd7KGwDQor7ISd7KeI7JWUDQor7ISd67SJ7Z2sDQor7ISd7IOB7KGwDQor7ISd6rK97ISdDQor7ISd7LCo7JWUDQor7ISd7KKF656ADQor7ISd66+47ISdDQor7ISd6riw7JqpDQor7ISd7LaY7JilDQor7ISd64+Z7JWUDQor7ISd7LCo7ISdDQor7ISd7JiB7KGwDQor7ISd7Zqo7KCVDQor7ISd7Z2s7KCcDQor7ISd7Y+J7IiYDQor7ISd66y47JqwDQor7ISg7Iq57Zi4DQor7ISg7Jqp7IiYDQor7ISg7J287KSRDQor7ISg66eM7YyQDQor7ISg7Jqw6rK9DQor7ISg67O164+MDQor7ISg7Iic7J6QDQor7ISg7JuQ7ZqMDQor7ISg7Jqw7JiB6ri4DQor7ISg64yA66qp6rSRDQor7ISg642V6riw6rK9DQor7ISg64Ko67Cw67ORDQor7ISk6rCV7IiYDQor7ISk7LCo7IicDQor7ISk7Z2s7JewDQor7ISk6riw7YOdDQor7ISk64+Z7ISdDQor7ISk67OR7Je0DQor7ISk7JiB7ISdDQor7ISk7IS47LKgDQor7ISk66qF7IicDQor7ISk6riI7ISdDQor7ISk7KCV64+EDQor7ISk7Iic7J6EDQor7ISk66yY7IicDQor7ISk67O164+MDQor7ISk7LCs7JewDQor7ISk7KSA7YOcDQor7ISk7IK87IiYDQor7ISk6rOE7ZiEDQor7ISk7ZW0642VDQor7ISk7ISx6riwDQor7ISk7IOB6recDQor7ISk7IOB7IudDQor7ISk7J246regDQor7ISk7J6s67ORDQor7ISk7ISx6rWsDQor7ISk7Jqp7JWUDQor7ISk7Zqo7ISgDQor7ISk7KKF7JiBDQor7ISk7IaM7KO8DQor7ISk7KeA7JykDQor7ISk7ZuE7Z2gDQor7ISk7Jqp7YOdDQor7ISk7Iic7JilDQor7ISk7IOB7JuQDQor7ISk7J6s7JqxDQor7ISk67OR7JqwDQor7ISk7JiB6rWsDQor7ISk7IOB642VDQor7ISk7IiY7JqwDQor7ISk6riI7J6QDQor7ISk7JiB7KSADQor7ISk7Zi47Zi4DQor7ISk66y064KoDQor7ISk7Lap7Jq0DQor7ISk7Jqp7KSADQor7ISk6reA7KeEDQor7ISk7J6s67SJDQor7ISk67OR67aEDQor7ISk7JuQ7IudDQor7ISk7IKw6recDQor7ISk7KeA7Jq0DQor7ISk7Iic7J6QDQor7ISk7JuQ7KSADQor7ISk7JuU64+MDQor7ISk6rec67SJDQor7ISk7Jyk6raMDQor7ISk7Jyk7ISxDQor7ISk7Jyk7JuQDQor7ISk7Iic7JqwDQor7ISk7ISk7ISdDQor7ISk7Jyk7ZiVDQor7ISk6rOE7JqxDQor7ISk7IOB7Zi4DQor7ISk7Iq57JqwDQor7ISk7J2Y7KSADQor7ISk64+Z7Zi4DQor7ISk7ISd6rOgDQor7ISk7YOc7IiYDQor7ISk7J246rCRDQor7ISk7IOB7IucDQor7ISk7IiY7KGwDQor7ISk7J6l7ZWZDQor7ISk7KCV7KSADQor7ISk66qF7LacDQor7ISk7YyQ7ZuIDQor7ISk6rWs7IigDQor7ISk7KeE6rWsDQor7ISk6rWQ7IiZDQor7ISk6rWQ7KSADQor7ISk67OR7ISdDQor7ISk7LC9DQor7ISk7IicDQor7ISk7KKFDQor7ISk7JiBDQor7ISk7LC97IiYDQor7ISk7KKF6rWtDQor7ISk7J2867SJDQor7ISk7ZeM6ri4DQor7ISk7LKc7IiYDQor7ISk7J2A7J6EDQor7ISk7ZWc642VDQor7ISk6riw7ZmYDQor7ISk7LaY7IiYDQor7ISk7Jyk6regDQor7ISk7ISg7Zi4DQor7ISk66ek7ZmUDQor7ISk7ZiE7IiYDQor7ISk7JiB7ZiEDQor7ISk7YOc7KKFDQor7ISk7Jyk7YOdDQor7ISx6rK966qoDQor7ISx7KSR7IudDQor7ISx7J6s7JqwDQor7ISx7IOB7JqwDQor7ISx6rK97YOcDQor7ISx7Jq07Z2sDQor7ISx66qF7JewDQor7ISx7Jil6ri4DQor7ISx6rOE7KKFDQor7ISx7JuQ6rOgDQor7ISx7Iic6recDQor7ISx7Z2s7IudDQor7ISx6rec7JqpDQor7ISx7IK87Z2sDQor7ISx7ZW07IStDQor7ISx66qF64KoDQor7ISx6riI7JqpDQor7ISx6reA7IStDQor7ISx66eQ7ZmNDQor7ISx7KKF7IudDQor7ISx6riw642VDQor7ISx7Iq5642VDQor7ISx6rSR7JuQDQor7ISx67Cx656ADQor7ISx6riw67O1DQor7ISx7ISd7ISgDQor7ISx7ISx7JqxDQor7ISx7YOc7JiBDQor7ISx6riw7J2ADQor7ISxIOyInA0KK+yEseykgO2drA0KK+yEseyerOyaqQ0KK+yEseq4sO2VmQ0KK+yEseynhOuqhQ0KK+yEseq4iOq4iA0KK+yEse2VtOusuA0KK+yEseq4sO2dlA0KK+yEse2YnOq4sA0KK+yEseuCqOq3nA0KK+yEseyaqe2ZmA0KK+yEseuCmeq1rA0KK+yEsSDtmZgNCivshLHsooXsiJgNCivshLHrj5nsmqkNCivshLHrgpnqtowNCivshLHqtJHrtoQNCivshLHrqoXquLANCivshLHssL3shJ0NCivshLHrgpnqt6ANCivshLHsmIHtmIQNCivshLHsnpDqt5wNCivshLHsmIHtl4wNCivshLHrgpnrj5kNCivshLHsnbjtmIQNCivshLHqt5zstpwNCivshLHsgrztg5wNCivshLHrgpnrj5kNCivshLHqt4Dsi50NCivshLHsnqzsmrANCivshLHtmITshJ0NCivshLHrgpnrj5kNCivshLHrp5DshJ0NCivshLHquLDtnawNCivshLHsoJXquLANCivshLHrgpnrj5kNCivshLHrtoTrjIANCivshLHsiJzrj5kNCivshLHshKDqtowNCivshLHrgpnsiJwNCivshLHsiJzsiJgNCivshLHtlZzsobANCivshLHsnbjrrLgNCivshLHrgpnsmIENCivshLHtnJjsmrQNCivshLHtlbTtmZgNCivshLHtlbTsnpANCivshLHrgpnsmYQNCivshLHrs5HspIANCivshLHssKjsiJgNCivshLHsp4TsiJgNCivshLHrgpnspJENCivshLHrtoDtmLgNCivshLHshKDquIgNCivshLHsmqnqsbQNCivshLHrgpnsp4QNCivshLHshKDtmLgNCivshLHrrLTsmYQNCivshLHsnqzsi50NCivshLHrgpnssKwNCivshLHsp4TsmIENCivshLHshozrrLgNCivshLHqtJHsnbwNCivshLHrgpntjJQNCivshLHsmrDqt6ANCivshLHrjZXsi6ANCivshLHsiJjsnbUNCivshLHrgpntlZgNCivshLHssL3qtZANCivshLHsmqnrs7UNCivshLHtg5zsnbwNCivshLHrgpntm4gNCivshLHrs5Hqt7wNCivshLHstpjtnawNCivshLHsnqztlZwNCivshLHrgqjqsr0NCivshLHsuZjsobANCivshLHtg5zssqANCivshLHrqoXquLgNCivshLHrkZDsmqkNCivshLHspIDqsr0NCivshLHssYTsiJgNCivshLHtg5zsmKUNCivshLHrnb3qsr0NCivshLHsmrDsp4QNCivshLHsg4Hsi50NCivshLHsooXsooUNCivshLHrnb3qtIANCivshLHspIDrj5kNCivshLHssL3snpANCivshLHsi6DtmZgNCivshLHrp4zsoJUNCivshLHsnqzquLANCivshLHsm5Dso7wNCivshLHtg5zspJENCivshLHrp5Dsl7ANCivshLHshKDsobANCivshLHssKjsiJgNCivshLHquLDso7wNCivshLHrqoXqt7wNCivshLHqt5zshJ0NCivshLHsiJzquLANCivshLHsiJzrj4wNCivshLHrsLHsi6ANCivshLHsooXtnawNCivshLHsnbjsiJgNCivshLHsnbzshKANCivshLHrs5HrgqgNCivshLHsmIHsiJgNCivshLHquLDrrLgNCivshLHtl4ztmLgNCivshLHrs5HsmrANCivshLHtlZztmLgNCivshLHtlZzqtIANCivshLHshozspIANCivshLHrs7Xsi50NCivshLHsoJXqt5wNCivshLHsnYDsspwNCivshLHsnYTtmLgNCivshLHrtoTsi5wNCivshLHtlbTsnpANCivshLHrrLjsmqkNCivshLHsmIHsiJgNCivshLHsgqzsmIENCivshLHsmIHrrLgNCivshLHshLjsi50NCivshLHsp4Dqs6QNCivshLHsg4HrqqgNCivshLHquLDtmIQNCivshLHsooXrj5kNCivshLHrp5DtmZgNCivshLHsg4HsiJgNCivshLHquLDsl7ANCivshLHsg4Hrj4QNCivshLHtg5ztmZgNCivshLHsg4HtmIQNCivshLHtjJTqta0NCivshLHsnbTsmqkNCivshLHsoJDsi50NCivshLHshJ3qsr0NCivshLHsnqXqtawNCivshLHspJHquLANCivshLHsoJDsmrANCivshLHshKDsnbQNCivshLHrs5HsiJwNCivshLHrp5DtjJQNCivshLHtlonqt5wNCivshLHshoztmZgNCivshLHrs5Htl4wNCivshLHshLHslZQNCivshLHsp4Dsg4ENCivshLHsiJjqsr0NCivshLHsg4Htg5wNCivshLHtg5ztmIQNCivshLHsoJXrtIkNCivshLHsiJjqtJENCivshLHsoJXqs6QNCivshLHtg5zqt5wNCivshLHtjJDrrLUNCivshLHsiJzsnpANCivshLHrr7zshKANCivshLHrrLTsiJwNCivshLHsm5Dtm4gNCivshLHslpHsiJgNCivshLHsg4Hqt6ANCivshLHrs5Hqt7wNCivshLHtlbTshKANCivshLHsmIHqsr0NCivshLHso7zsmKQNCivshLHsoJXrqqgNCivshLHsmqnsmKQNCivshLHsmIHrnoANCivshLHqtJHrhYQNCivshLHtmLjrr7wNCivshLHsiJjtmZgNCivshLHsmKTsoJwNCivshLHtg5zsiJgNCivshLHsiJztm4gNCivshLHqtZDrj5kNCivshLHsmbjshJ0NCivshLHsmqntnawNCivshLHsnbjquLANCivshLHqtZDsi50NCivshLHsmqnqsr0NCivshLHsoJXsi50NCivshLHso7zsnKQNCivshLHsmIHsnbwNCivshLHsmqnsuaANCivshLHtjJDrk50NCivshLHsoJDsmIENCivshLHsgqzroKgNCivshLHsmrDqsr0NCivshLHqt5zsmYQNCivshLHrs7Xtl4wNCivshLHsoJXquLgNCivshLHsm5Dqsr0NCivshLHrs5HrrLQNCivshLHqt5zsl7ANCivshLHrp4zshK0NCivshLHsnITshKANCivshLHtlbTtg5wNCivshLHsoJXtnawNCivshLHsoJDsl7QNCivshLHsnYDrqqgNCivshLHtg5zsm5ANCivshLHshJ3sobANCivshLHsirntmZgNCivshLHsnYDsmqkNCivshLHtlZjtmLgNCivshLHrs5HtlZkNCivshLHsnoTrgpwNCivshLHsnZjsooUNCivshLHrqoXsnKQNCivshLHtlZjsgrwNCivshLHsnbjsi50NCivshLHsnbzquIgNCivshLHsooXtmLgNCivshLHrjIDssqANCivshLHsnZjtmLgNCivshLHsnqzqsJENCivshLHsiJjsnKQNCivshLHtg5ztnaANCivshLHsgrztnawNCivshLHsnqzqt7wNCivshLHtmJzqtowNCivshLHsiJjtmZgNCivshLHsnqzqsr0NCivshLHsoJXsiJwNCivshLHqsr3soIQNCivshLHquLDsi5wNCivshLHsg4Htg5wNCivshLHsobDqt7wNCivshLHsg4HquLgNCivshLHsmIHshLENCivshLHsl7DtmLgNCivshLHso7zqs6QNCivshLHsiJzquLANCivshLHsoJXtmLgNCivshLHrj5nqt5wNCivshLHspIDtmZgNCivshLHsmZXqtZANCivshLHsooXrr7wNCivshLHsooXqtowNCivshLHspJHtmZgNCivshLHstpjsobANCivshLHsmrTtmLgNCivshLHssKjrj5kNCivshLHspp3sm5ANCivshLHsnqXtg5wNCivshLHsmrDtmLgNCivshLHsmIHsm5ANCivshLHssL3qsr0NCivshLHsoJDso7wNCivshLHrp4zquLANCivshLHsoJXsnpANCivshLHssqDsmqkNCivshLHsiJztnLQNCivshLHsg4Hsp4QNCivshLHshLHqtowNCivshLHtg5zqsr0NCivshLHsnqzsnKANCivshLHsoJXsiJgNCivshLHsp4TsmrENCivshLHtg5zrjZUNCivshLHsiJjsnKgNCivshLHrs5Hrk50NCivshLHrj5nrp4wNCivshLHtg5zsmqkNCivshLHshozqtowNCivshLHquLjqta0NCivshLHrs5HtmLgNCivshLHtko3qta0NCivshLHsoJXsiJgNCivshLHsoJXtnawNCivshLHsoJXsnbQNCivshLHtlZzqsr0NCivshLHtg5zquLgNCivshLHsooXtg50NCivshLHsoJXtnawNCivshLHtlbTsmqkNCivshLHssqDsl7ANCivshLHsooXrj4QNCivshLHrs5HsiJwNCivshLHtnaXsi50NCivshLHsmIHsiJgNCivshLHrrLTsp5ENCivshLHrtIntmZQNCivshLHtnazspIANCivshLHsmIHsiKANCivshLHrs5HspIANCivshLHtlYTtmJwNCivshozrs5HrrLgNCivshozsoJXtg5wNCivshozsooXtmLgNCivshozsnqzsiJgNCivshozrs5HslpENCivshozsooXspIANCivshozspIDshLgNCivshozrgqjtlZwNCivshozsiJjshK0NCivshozsg4HqtIANCivshozrs5HsmrANCivshozsooXqt7wNCivshozsmIHtnawNCivshozrp5DsnpANCivshozqtJHsmqkNCivshoztmY3tmZgNCivshozsp4TrjZUNCivshozrs5HrrLgNCivshoztjJDqt6ANCivshozrspTstpgNCivshoztmansmKUNCivshozrs5Hsp4QNCivshozrjZXsnoQNCivshozqtJHsobANCivshpDqs4TroKgNCivshpDshozsmqkNCivshpDrj5nsmqkNCivshpDshLHtmIQNCivshpDqs4TsnoQNCivshpDsmIHquLANCivshpDshLHsiJgNCivshpAg7ZmUDQor7IaQ6rOE7YOBDQor7IaQ7ZWZ7Zi4DQor7IaQ6rSR6riwDQor7IaQ7KCV7JikDQor7IaQ6rO17IiYDQor7IaQ7ZW066GdDQor7IaQ6rCR7ZiEDQor7IaQ7KCQ7KSRDQor7IaQ6reA7JWFDQor7IaQ7ISx6rK9DQor7IaQ7J2A7YOcDQor7IaQ6rSR6ri4DQor7IaQ6rec64usDQor7IaQ67OR7JqwDQor7IaQ7KKF6rWsDQor7IaQ7IOB7KCVDQor7IaQ6rec7JiBDQor7IaQ7J247JewDQor7IaQ7Jqp66y4DQor7IaQ7Zi47ISxDQor7IaQ6rec7ZWZDQor7IaQ7Jqw7J24DQor7IaQ7LKc65GQDQor7IaQ7J2R7JikDQor7IaQ6riI7IicDQor7IaQ7YOc7IudDQor7IaQ6rOE7ZmYDQor7IaQ7Jyk7IiYDQor7IaQ6riI7IicDQor7IaQ7KeA7KSADQor7IaQ7JmV6rWtDQor7IaQ7Jqp7Z2sDQor7IaQ6riI7KGwDQor7IaQ7JiB7IiZDQor7IaQ7KCV7J6QDQor7IaQ64Ko7ISdDQor7IaQ6riw66qpDQor7IaQ66+47YOcDQor7IaQ7IOB65OdDQor7IaQ7IiY7ISdDQor7IaQ6riw7JqpDQor7IaQ7ISx7KeEDQor7IaQ7JiB7ZuEDQor7IaQ64yA7ZuIDQor7IaQ64W47YOBDQor7IaQ7KCV7Je0DQor7IaQ7ZW07IicDQor7IaQ66qF7IStDQor7IaQ64us6re8DQor7IaQ7Jil7JqxDQor7IaQ7J287ZWEDQor7IaQ7IK87J6EDQor7IaQ64yA67SJDQor7IaQ7Zqo7JiBDQor7IaQ7J6s7IiZDQor7IaQ7KO87JqwDQor7IaQ64+Z7ZmpDQor7IaQ7JiB6rWsDQor7IaQ7IS47YOcDQor7IaQ6rCR7IiZDQor7IaQ64+Z7ZmpDQor7IaQ7IOB7IicDQor7IaQ7ZmN7IS4DQor7IaQ67OR66OhDQor7IaQ66eJ64K0DQor7IaQ7ZWc7JqpDQor7IaQ7ISx67CwDQor7IaQ66eM7IOBDQor7IaQ66eM7IiYDQor7IaQ7ZeM7ZmNDQor7IaQ7JiB7YOcDQor7IaQ7KKF6rWsDQor7IaQ66eQ7IicDQor7IaQ7ZiV7IicDQor7IaQ7JiB7KCcDQor7IaQ7Iic7Zi4DQor7IaQ66qF6rWtDQor7IaQ67SJ7JqxDQor7IaQ67SJ7KO8DQor7IaQ7JuQ7ISdDQor7IaQ66qF6rWtDQor7IaQ7KeE6riwDQor7IaQ7IiY67CwDQor7IaQ7IaM6raMDQor7IaQ66qF7IicDQor7IaQ7Zic65+JDQor7IaQ67OR6rOkDQor7IaQ7Jqw6recDQor7IaQ66qF7IigDQor7IaQ7ZW07Zi4DQor7IaQ6rOE7KSADQor7IaQ67OR7J6QDQor7IaQ66qF7J6QDQor7IaQ7IOB7JikDQor7IaQ6rSR642VDQor7IaQ7KeE7J20DQor7IaQ66y07KKFDQor7IaQ6rK97Z2sDQor7IaQ7LCs6re8DQor7IaQ7Z2l7J20DQor7IaQ66y46riwDQor7IaQ7IOB7ZmYDQor7IaQ67SJ7JqwDQor7IaQ7Jm47J6EDQor7IaQ66+87KCVDQor7IaQ7KCV7IiYDQor7IaQ7Jyk7Z2sDQor7IaQ6rK96ri4DQor7IaQ67OR6raMDQor7IaQ66qF7KO8DQor7IaQ6rWt67CwDQor7IaQ7YOc7YOcDQor7IaQ67OR6riwDQor7IaQ7KKF7JikDQor7IaQ7IOB7IiZDQor7IaQ67OR6rO1DQor7IaQ67OR6ri4DQor7IaQ7JiB7LKcDQor7IaQ66+87J6QDQor7IaQ642V6riwDQor7IaQ67OR66y4DQor7IaQ7ZW07Zi4DQor7IaQ7J6s6re8DQor7IaQ7KeE7JuQDQor7IaQ67OR7Ja4DQor7IaQ7Jyk7ZGcDQor7IaQ7LC97ZmYDQor7IaQ64yA7JWUDQor7IaQ67OR7JqwDQor7IaQ7IOB7IiYDQor7IaQ7KCV7JqpDQor7IaQ7ISx7JilDQor7IaQ67OR7J2ADQor7IaQ66eQ64+MDQor7IaQ7Jyk7IiYDQor7IaQ7IOB7ZmNDQor7IaQ67OR7LKcDQor7IaQ7Jqw7Zi4DQor7IaQ7J6s7ZWZDQor7IaQ7JmE7KGwDQor7IaQ67OR7Zi4DQor7IaQ7Jqw7YOcDQor7IaQ7KSR7IiYDQor7IaQ7IiY7Zi4DQor7IaQ67SJ6raMDQor7IaQ7IOB7LKgDQor7IaQ6riw64+ZDQor7IaQ7KKF7ZiEDQor7IaQ67SJ656YDQor7IaQ7Jik7J2YDQor7IaQ7YOc6re8DQor7IaQ67OR7ISxDQor7IaQ67SJ7ZmUDQor7IaQ7Iic7IigDQor7IaQ642V7ZiEDQor7IaQ7KCV64+EDQor7IaQ7IK87KGwDQor7IaQ7ZWc7IudDQor7IaQ7IiZ64+ZDQor7IaQ67OR7JWgDQor7IaQ7IK87LacDQor7IaQ64u06regDQor7IaQ7LC97JWgDQor7IaQ7Iic7IucDQor7IaQ7IOB6raMDQor7IaQ64us7Zi4DQor7IaQ7KKF7J6sDQor7IaQ7Lmg6re8DQor7IaQ7IOB6recDQor7IaQ7JiB7YOcDQor7IaQ7IOB7JiBDQor7IaQ7IiZ6rWQDQor7IaQ7IOB6recDQor7IaQ7LCs7YOcDQor7IaQ7ISg7YOcDQor7IaQ6riI64+EDQor7IaQ7IOB6recDQor7IaQ7Iic7IStDQor7IaQ7KKF7Zi4DQor7IaQ7LaY7LKcDQor7IaQ7IOB6recDQor7IaQ7KeE7IudDQor7IaQ64+Z7IiYDQor7IaQ6rSR7ZmYDQor7IaQ7IOB6riwDQor7IaQ67O16raMDQor7IaQ7IK867ORDQor7IaQ7Jq06ri4DQor7IaQ7IOB66qoDQor7IaQ7IOB7Zi4DQor7IaQ7IK87JikDQor7IaQ7KSR7Je0DQor7IaQ7IOB7KeEDQor7IaQ7KSR7YOcDQor7IaQ7ZKN7Ja1DQor7IaQ66eM66GdDQor7IaQ7IOB7LKgDQor7IaQ66eJ7J6QDQor7IaQ64yA6ri4DQor7IaQ7Iuc7ZqoDQor7IaQ7ISg6rK9DQor7IaQ7IOB7Zi4DQor7IaQ6rWQ7IiZDQor7IaQ7J6s7ZiEDQor7IaQ7ISx7ZalDQor7IaQ7JiB656RDQor7IaQ7IOB7Zi4DQor7IaQ7J6s7IusDQor7IaQ7IaM67KUDQor7IaQ7IiY7IudDQor7IaQ7KKF7Jq0DQor7IaQ7J6s7IiZDQor7IaQ7IiY6re8DQor7IaQ7IOB7KGwDQor7IaQ7ISd7Zi4DQor7IaQ7Jyk7IudDQor7IaQ7IiY64KcDQor7IaQ7Jqp6riwDQor7IaQ7LC97IOBDQor7IaQ64+Z642VDQor7IaQ7IiY66qoDQor7IaQ6rec7KGwDQor7IaQ7KSR7Zi4DQor7IaQ7IOB7Je0DQor7IaQ7IiY7JWUDQor7IaQ7IiY7ZmYDQor7IaQ67OR7KeEDQor7IaQ7IOB7LKgDQor7IaQ7IiY7JqpDQor7IaQ7ZiV6rWQDQor7IaQ7YOc7J20DQor7IaQ7KeE6ri4DQor7IaQ7IiY7JuQDQor7IaQ7ZWY67aEDQor7IaQ7ZWc7YOcDQor7IaQ67SJ7KeEDQor7IaQ7IiY7J21DQor7IaQ7LaY7JilDQor7IaQ67SJ7JqxDQor7IaQ6rK97IiZDQor7IaQ7IiY7J24DQor7IaQ7J6s7ZmYDQor7IaQ7Lmg7IicDQor7IaQ7YyQ6rK9DQor7IaQ7Iic6rOEDQor7IaQ7JiB67aEDQor7IaQ64Ko7ZmNDQor7IaQ7J6s6rG0DQor7IaQ7Iic7ZalDQor7IaQ7IiY67CwDQor7IaQ7IiY6riwDQor7IaQ7J287JmEDQor7IaQ7Iq57KSADQor7IaQ7Z2s67O1DQor7IaQ7J2065OdDQor7IaQ66y47JuQDQor7IaQ7Iq57Z2sDQor7IaQ7Iic642VDQor7IaQ7J6s6rWsDQor7IaQ67OR7IudDQor7IaQ7Ius7IiZDQor7IaQ7J6s7ISdDQor7IaQ7YOc7JqwDQor7IaQ66eM7Z2sDQor7IaQ7JiB7JilDQor7IaQ7ZeM7JiBDQor7IaQ7JuQ7JqwDQor7IaQ7Iic67SJDQor7IaQ7JiB7KCcDQor7IaQ7LKg7KCVDQor7IaQ7JiB7LKgDQor7IaQ6ri47JewDQor7IaQ7JiB7KeEDQor7IaQ7JiB7JuQDQor7IaQ7J6l7LCsDQor7IaQ67OR7ISdDQor7IaQ7Jil656ADQor7IaQ7Iic7KGwDQor7IaQ64yA7JWUDQor7IaQ66qF7KeEDQor7IaQ7Jm47IicDQor7IaQ7ISg7ZmYDQor7IaQ67OR7ZmNDQor7IaQ7J6s64KoDQor7IaQ7Jqp7IiYDQor7IaQ7J6s7IigDQor7IaQ7KCV7JewDQor7IaQ7Zi47JqpDQor7IaQ7Jqp7IudDQor7IaQ64yA7JuFDQor7IaQ7Jik7JilDQor7IaQIOyjvA0KK+yGkOyasOyLnQ0KK+yGkOynhO2ZmA0KK+yGkOq0keynhA0KK+yGkOqwkeyYgQ0KK+yGkOyasOyjvA0KK+yGkOuqhe2YhA0KK+yGkOyEseyVlA0KK+yGkOq4iOuwsA0KK+yGkOyaseyImA0KK+yGkOyEneuhnQ0KK+yGkOyduOyXtA0KK+yGkOuzkeyglQ0KK+yGkOybkOydtQ0KK+yGkOuPmeyekA0KK+yGkOyerOq3nA0KK+yGkO2VtO2drA0KK+yGkOycpOyImQ0KK+yGkOyasOugrA0KK+yGkO2drOykgA0KK+yGkOyEoO2YuA0KK+yGkOyduOyDgQ0KK+yGkOuzkeq4uA0KK+yGkOq4sOudvQ0KK+yGkOyYpe2ZmA0KK+yGkOydvOyLnQ0KK+yGkOykkeyImA0KK+yGkOq4iOunkA0KK+yGkOy2qeybkA0KK+yGkOydvO2WpQ0KK+yGkOuqheyImA0KK+yGkO2drOyInA0KK+yGkO2YuOyZhA0KK+yGkOydvO2YuA0KK+yGkOyCvOuztQ0KK+yGkO2DnOyyoA0KK+yGkOywve2YuA0KK+yGkOyepeyImA0KK+yGkOuLrOyEnQ0KK+yGkOuPmeyImQ0KK+yGkOyEseydgA0KK+yGkOyepeyYpA0KK+yGkOykkeuegA0KK+yGkOyatOyDgQ0KK+yGkOygkOu2hA0KK+yGkOyerOybkA0KK+yGkOqyveyXsA0KK+yGkOyYgeyYgQ0KK+yGkOq4sOuqqA0KK+yGkOyerOycpA0KK+yGkOygle2YuA0KK+yGkOynhO2YuA0KK+yGkOydmOuPhA0KK+yGkOygleyEnQ0KK+yGkOyaqeyYgQ0KK+yGkOyaqeynhA0KK+yGkOyEseyInA0KK+yGkOygleyImA0KK+yGkOuPmey2nA0KK+yGkOyEseyDgQ0KK+yGkOyDgeyInA0KK+yGkOygleyImQ0KK+yGkOusmOybkA0KK+yGkOyepe2biA0KK+yGkOyerOyImA0KK+yGkOygleyXtA0KK+yGkOygleyYgQ0KK+yGkOq0keyEnQ0KK+yGkOuqheyYgQ0KK+yGkOygleybkA0KK+yGkOunkOyLnQ0KK+yGkOyYgeyImA0KK+yGkOyatOyekA0KK+yGkOygleycoA0KK+yGkOykgOyEoA0KK+yGkOyerOq1rQ0KK+yGkOu0ieuNlQ0KK+yGkOygle2drA0KK+yGkOyDgey2mA0KK+yGkOq0keyEuA0KK+yGkOyatO2RnA0KK+yGkOyiheuqqA0KK+yGkO2aqOuPmQ0KK+yGkOq0keyLnQ0KK+yGkOuniOuPhA0KK+yGkOyiheyLnQ0KK+yGkOyaqeyImA0KK+yGkO2VnOyInA0KK+yGkOyYqO2YhA0KK+yGkOyiheyxhA0KK+yGkOyViOyEoA0KK+yGkOuvuOyLnQ0KK+yGkO2DnOu5iA0KK+yGkOyjvOyInA0KK+yGkO2drOyXsA0KK+yGkOq0gOydtQ0KK+yGkO2YhOyEsQ0KK+yGkOykke2YuA0KK+yGkOy5mOyYgQ0KK+yGkOyerOynhA0KK+yGkO2MkOyyoA0KK+yGkOywveybhQ0KK+yGkOygleuniQ0KK+yGkOyerOyYpQ0KK+yGkOyGjOyLnQ0KK+yGkOyxhOu0iQ0KK+yGkOykgO2XjA0KK+yGkO2XjO2ZmA0KK+yGkOq4sOuNlQ0KK+yGkOyyreyInA0KK+yGkOyYgeuqqA0KK+yGkO2DnOy2nA0KK+yGkOq3vOyIoA0KK+yGkOyyre2YuA0KK+yGkOqyve2YhA0KK+yGkOykgOyaqQ0KK+yGkOyerO2DnA0KK+yGkOy5oOu0iQ0KK+yGkOyYgeunjA0KK+yGkOyEoOuztA0KK+yGkOqxtOybhQ0KK+yGkO2DnOqzpA0KK+yGkO2YhOynhA0KK+yGkOyaqe2VmQ0KK+yGkOyihe2drA0KK+yGkO2DnOyasQ0KK+yGkOyEuO2ZmA0KK+yGkOyiheykgA0KK+yGkOydgO2drA0KK+yGkO2DnOyasQ0KK+yGkOyCvOyImA0KK+yGkOykgOuPmQ0KK+yGkOybkOusmA0KK+yGkO2DnOybkA0KK+yGkO2XjOyjvA0KK+yGkOq4sOyXtA0KK+yGkOynhOuztQ0KK+yGkO2DnOybkA0KK+yGkOyWkeuemA0KK+yGkOy2mO2YuA0KK+yGkOyImOyImQ0KK+yGkO2DnOybkA0KK+yGkOq2jOu0iQ0KK+yGkOyEneyEnQ0KK+yGkOq4sO2VmQ0KK+yGkO2DnOyhsA0KK+yGkOq2jOyasQ0KK+yGkOyyoO2ZmA0KK+yGkOq0keyjvA0KK+yGkO2DnOyihQ0KK+yGkOygle2drA0KK+yGkOydvOq3nA0KK+yGkOyngOydtQ0KK+yGkO2DnO2ZmA0KK+yGkO2YleyEnQ0KK+yGkOyInOyImA0KK+yGkOyasO2biA0KK+yGkO2Dneq3vA0KK+yGkOyIme2ZjQ0KK+yGkOy5oO2YuA0KK+yGkOyjvOyekA0KK+yGkO2MkOq2jA0KK+yGkOygkOyImA0KK+yGkO2DnOuPhA0KK+yGkOyiheuPmQ0KK+yGkO2MkOyEnQ0KK+yGkOqyveykkQ0KK+yGkOq0keyImA0KK+yGkO2DnOyLnQ0KK+yGkO2Vmeq4sA0KK+yGkOyYgeyVlA0KK+yGkOykgOyjvA0KK+yGkOuPhOuFlQ0KK+yGkO2VmeyLnQ0KK+yGkO2YhO2DnA0KK+yGkOq4sOyEuA0KK+yGkOyYgeyasQ0KK+yGkO2VtOqyvQ0KK+yGkOuzkeyekA0KK+yGkOqyveuNlQ0KK+yGkOqwkeyLnQ0KK+yGkO2VtOuPmQ0KK+yGkOydvOyImA0KK+yGkOuzkeyLnQ0KK+yGkOuPhOuTnQ0KK+yGkO2YhOq2jA0KK+yGkOyngOyLnQ0KK+yGkOq3nOq4sA0KK+yGkOyEne2ZmA0KK+yGkO2ZlO2DnQ0KK+yGkOuPhOyDnQ0KK+yGkOq0keyXsA0KK+yGkO2aqOyasA0KK+yGkO2biOyerA0KK+yGkOydgOq3nA0KK+yGkOuqheyEnQ0KK+yGkOydmOyYpQ0KK+yGkO2dpeyXtA0KK+yGkOuzkeyVlA0KK+yGkOywqOuwsA0KK+yGkOyImOyIoA0KK+yGkO2drOyVvA0KK+yGkOydtOyEoA0KK+yGkO2DnOq3vA0KK+yGkOq4uOyEnQ0KK+yGkO2drO2DnQ0KK+yGkOydmO2ZmA0KK+yGkOq4sO2YuA0KK+yGkOydkeyInA0KK+yGoeqwleu2gA0KK+yGoeuqheunjA0KK+yGoeunjOyEsQ0KK+yGoeygle2VmQ0KK+yGoeqwle2YuA0KK+yGoeqyveybhQ0KK+yGoe2Zjeq3nA0KK+yGoe2DnO2ZmA0KK+yGoeqyveyEnQ0KK+yGoeyYpeyasA0KK+yGoeunjOq3vA0KK+yGoeuCmeyImA0KK+yGoeq0gOycqA0KK+yGoe2YhOq3nA0KK+yGoeyEseqyvQ0KK+yGoeyLnOyaqQ0KK+yGoeq0keyerA0KK+yGoeqyve2VmA0KK+yGoeyEne2ZmA0KK+yGoeq4sOqzoA0KK+yGoeq1rOyErQ0KK+yGoeyImOybkA0KK+yGoe2XjO2YuA0KK+yGoeyxhOyglQ0KK+yGoeq3nOyErQ0KK+yGoeyerOyglQ0KK+yGoeq4sOyLnQ0KK+yGoeyEneyInA0KK+yGoeq4iOyYpQ0KK+yGoeybkOyLnQ0KK+yGoeuqheqyvQ0KK+yGoeq4uOyImA0KK+yGoeq4sOybkA0KK+yGoeyYgeuTnQ0KK+yGoeuzke2drA0KK+yGoeunjOyXsA0KK+yGoeq4sOy2mA0KK+yGoeqyveydvA0KK+yGoeynhOyyoA0KK+yGoeyiheq4sA0KK+yGoeuLrO2YuA0KK+yGoeycpOyEnQ0KK+yGoe2VtOq4sA0KK+yGoeyYge2aqA0KK+yGoeuMgOykkQ0KK+yGoeyYgeyEoA0KK+yGoeykkeyasQ0KK+yGoey2mOyErQ0KK+yGoeuMgO2YuA0KK+yGoeyCrO2YhA0KK+yGoeuzkeyLnQ0KK+yGoeusuOyWuA0KK+yGoeuNleyInA0KK+yGoeuzkeyaqQ0KK+yGoeyduOyyoA0KK+yGoeyInOuLrA0KK+yGoeuNle2ZjQ0KK+yGoeqyveunjA0KK+yGoe2aqOuNlQ0KK+yGoeyYgeyhsA0KK+yGoeuNle2ZmA0KK+yGoeyYgeyehA0KK+yGoeyDneq3vA0KK+yGoeydhO2YuA0KK+yGoeuPmeyErQ0KK+yGoeyInO2ZmA0KK+yGoeydvOyImQ0KK+yGoeq4sO2ZlA0KK+yGoeuPmeyYgQ0KK+yGoeybkOuwsA0KK+yGoeyEseyImA0KK+yGoeyDgeyhsA0KK+yGoeunjOyYgQ0KK+yGoeyduO2YuA0KK+yGoeykke2YuA0KK+yGoeyImOyEsQ0KK+yGoeunjO2XjA0KK+yGoey2mOuPmQ0KK+yGoeygle2DnA0KK+yGoeykgOyInA0KK+yGoeunkOyhsA0KK+yGoeyImOyXtA0KK+yGoeyiheyXtA0KK+yGoeuzkeuhgA0KK+yGoeustOyYgQ0KK+yGoeyduOyInA0KK+yGoeyEoOynhA0KK+yGoeyYge2ZmA0KK+yGoeusuOyYpQ0KK+yGoeyYgeq4sA0KK+yGoeyiheyLnQ0KK+yGoeyInOyLnQ0KK+yGoeusuO2VnA0KK+yGoeuvuOyImA0KK+yGoeyZuOyImA0KK+yGoeusuOyImA0KK+yGoeuvuOuguQ0KK+yGoeyaqe2drA0KK+yGoeu2gOq4sA0KK+yGoeuMgO2ZmA0KK+yGoeuvvOyImQ0KK+yGoeuzkey2nA0KK+yGoe2YuOyInA0KK+yGoeuvvOy2nA0KK+yGoeuyiOyImA0KK+yGoeykgOq3vA0KK+yGoeygleyLnQ0KK+yGoeq0ke2PrA0KK+yGoeuzke2cmA0KK+yGoe2aqOq3nA0KK+yGoeuPmeyyoA0KK+yGoeuRkOynhA0KK+yGoeyDgeq1kA0KK+yGoeqzhO2VmQ0KK+yGoeq4uOyXtA0KK+yGoeq4iOyasA0KK+yGoeyDgeyXtA0KK+yGoeunjOq4uA0KK+yGoeyDgeyyoA0KK+yGoeunjOyLnQ0KK+yGoeyEneq3nA0KK+yGoeyInOuztA0KK+yGoeuMgO2ZlA0KK+yGoeqyve2biA0KK+yGoeyEne2YuA0KK+yGoeqwle2ZmA0KK+yGoeyDgeyImA0KK+yGoe2dpe2VmQ0KK+yGoeyEoOuLrA0KK+yGoeyYgeuNlQ0KK+yGoeygleyXsA0KK+yGoe2YhOuFhA0KK+yGoeyEoOyYgQ0KK+yGoeuLrOykgA0KK+yGoeu0ieu0iQ0KK+yGoeygle2YuA0KK+yGoeyEseq3vA0KK+yGoeunjOyEoA0KK+yGoeyYgeyDgQ0KK+yGoeuNleq4uA0KK+yGoeyEseuPmQ0KK+yGoeuqheuTnQ0KK+yGoeyImOyImA0KK+yGoeustOyEnQ0KK+yGoeyImOq3vA0KK+yGoeyiheuNlQ0KK+yGoeyiheuqqA0KK+yGoe2MkOuvvA0KK+yGoeyImOydvA0KK+yGoey2mOydtA0KK+yGoeuPme2ZmA0KK+yGoeunkOq4sA0KK+yGoeyImO2YhA0KK+yGoeybkOyInA0KK+yGoeymneyXtA0KK+yGoeyInOykkQ0KK+yGoeyInOyekA0KK+yGoeyaqe2VmQ0KK+yGoeuzkeyjvA0KK+yGoeyngOyhsA0KK+yGoeyVoOyekA0KK+yGoeq4sOuFgA0KK+yGoeygkO2drA0KK+yGoeyatOuztQ0KK+yGoeyXsO2DnA0KK+yGoeuMgOyerA0KK+yGoeunjOyEoA0KK+yGoeybkOqyvQ0KK+yGoeyYgeq3nA0KK+yGoeuMgOyXtA0KK+yGoeuPmeugqA0KK+yGoeq4sOyLnQ0KK+yGoeyaqeuNlQ0KK+yGoeyLoO2drA0KK+yGoeqzhO2YhA0KK+yGoeywqO2ZlA0KK+yGoeyatO2VnA0KK+yGoeqyveyYpQ0KK+yGoeq4sO2ZmA0KK+yGoeyImOyDgQ0KK+yGoeybkOuztQ0KK+yGoeuzkeyekA0KK+yGoe2drOyEoA0KK+yGoeuzte2YuA0KK+yGoeybkOyerA0KK+yGoeqxtO2VnA0KK+yGoe2Vmeq3vA0KK+yGoeyduOyLnQ0KK+yGoeyduOyDgQ0KK+yGoe2VmeyhsA0KK+yGoeyEuOyYpQ0KK+yGoeuPmeuztQ0KK+yGoeyduOyEoA0KK+yGoeq0ke2ZjQ0KK+yGoe2MkOyyoA0KK+yGoeq4sO2ctA0KK+yGoeyepe2XjA0KK+yGoeygkO2ZmA0KK+yGoeu0ieustQ0KK+yGoeyGjOuRkA0KK+yGoeyerOuLrA0KK+yGoe2ZlOyImA0KK+yGoeyDneyImA0KK+yGoeqzteyasQ0KK+yGoeyerOuPhA0KK+yGoeygleykgA0KK+yGoeyiheyDiQ0KK+yGoeq0keyaqQ0KK+yGoeyerOyEnQ0KK+yGoeyDgeyekA0KK+yGoeuzkeyasA0KK+yGoeyEseynhA0KK+yGoeyerOyLrA0KK+yGoe2DnOyekA0KK+yGoeusuOyjvA0KK+yGoeuMgOyaqQ0KK+yGoeyerOyaqQ0KK+yGoeyYgeyYpA0KK+yGoeuzkeyatA0KK+yGoeyYge2drA0KK+yGoeyerOyasQ0KK+yGoeuvuOq4sA0KK+yGoe2drOyEnQ0KK+yGoeydtOyImA0KK+yGoeyerOydgA0KK+yGoeyjvOybkA0KK+yGoeyLneyImA0KK+yGoeq4iO2biA0KK+yGoeyerOykgA0KK+yGoeyEuOq1rA0KK+yGoeyEoOyYgQ0KK+yGoe2DnOq3vA0KK+yGoeyerOynhA0KK+yGoeynhOyEnQ0KK+yGoeqyveyaqQ0KK+yGoeunkOq1rA0KK+yGoeyerOyyoA0KK+yGoeq0ke2YuA0KK+yGoeyImOq1kA0KK+yGoeu0ieycqA0KK+yGoeyerO2DnQ0KK+yGoeqwnOyInA0KK+yGoeqyveynhA0KK+yGoeyEseyyoA0KK+yGoeygleuhnA0KK+yGoeyYgeuNlQ0KK+yGoeyEneq4sA0KK+yGoe2VtO2YhA0KK+yGoeygleuvvA0KK+yGoeq3gOyyoA0KK+yGoe2aqOq1rA0KK+yGoeqyveyaqQ0KK+yGoeygleyEsQ0KK+yGoeydhOywqA0KK+yGoeyaqeybhQ0KK+yGoeyYgeyImQ0KK+yGoeygleyhsA0KK+yGoeyerOykkQ0KK+yGoeq4iOuPmQ0KK+yGoey2mO2VmQ0KK+yGoeyiheyImA0KK+yGoeyZuOyekA0KK+yGoeyKueybhQ0KK+yGoeyEseyduA0KK+yGoeykgOyEnQ0KK+yGoeyYgeygnA0KK+yGoeuCme2ZmA0KK+yGoeyCvOydvA0KK+yGoeyngeyEoA0KK+yGoeuNleuPjA0KK+yGoe2VtOyErQ0KK+yGoeqyveyXtA0KK+yGoeynhOyyoA0KK+yGoeyjvOyImA0KK+yGoe2Yleq3nA0KK+yGoe2DnO2drA0KK+yGoeywveyErQ0KK+yGoeq1rOuvvA0KK+yGoeuRkOyInA0KK+yGoeygnOyXtA0KK+yGoey2mOyEsQ0KK+yGoe2VnO2YhA0KK+yGoeuzkeyasA0KK+yGoeygleyihQ0KK+yGoey2mOydtQ0KK+yGoeyInOyXtA0KK+yGoeyEseyImA0KK+yGoeyehOuqqA0KK+yGoey2mO2drA0KK+yGoeyYpe2VhA0KK+yGoeuzkeyLoA0KK+yGoeuzkeyaqQ0KK+yGoe2DnOyImA0KK+yGoeuvuOyYpQ0KK+yGoeq0ke2YhA0KK+yGoeydgOyImA0KK+yGoe2VmeyEoA0KK+yGoeyEseyaqQ0KK+yGoeuqheq1rQ0KK+yGoeq0ke2YhA0KK+yGoe2VnOyyoA0KK+yGoeusuOyLnQ0KK+yGoeuzke2YhA0KK+yGoeygle2drA0KK+yGoe2XjOyYgQ0KK+yGoeycpOq3vA0KK+yGoeyKueyErQ0KK+yGoeygleuhnQ0KK+yGoe2YuOyEoA0KK+yGoeyImOq1kA0KK+yGoeyerO2ZmA0KK+yGoeywqOyEoA0KK+yGoe2YuOyEsQ0KK+yGoeuPmeyEsQ0KK+yGoe2YleyCvA0KK+yGoe2DnOq3vA0KK+yGoe2drOyEsQ0KK+yGoeyYge2YuA0KK+yGoeycpOq2jA0KK+yGoeyInOq3vA0KK+yLnOq0keykgA0KK+yLnOyGjOq3vA0KK+yLnOq4sOyynA0KK+yLnOyDge2YuA0KK+yLnOunjOyLnQ0KK+yLnO2Vmeq4sA0KK+yLnOywveyglQ0KK+yLnOuNle2drA0KK+yLnOunkOu2hA0KK+yLnOuPhOuqqQ0KK+yLnOuRkOyVlA0KK+yLnOuztO2VnA0KK+yLnOuqheyIoA0KK+yLnOyasO2YuA0KK+yLnOq3nOyDnQ0KK+yLnOyGjOyLnQ0KK+yLnOuqhe2ZmA0KK+yLnOqyve2YuA0KK+yLnOyKueq4uA0KK+yLnOq4sOuhnA0KK+yLnOustOykgA0KK+yLnOq3nO2YuA0KK+yLnOy2mO2DnA0KK+yLnOycpOyEsQ0KK+yLnOuvvOq4sA0KK+yLnOuzteyIoA0KK+yLnO2ZlOyImA0KK+yLnOyDge2DnA0KK+yLnOuzkeq3nA0KK+yLnO2VnO2YuA0KK+yLnOyerOywrA0KK+yLnOydvOyaqQ0KK+yLnOuzkeq4sA0KK+yLnO2VtOyEoA0KK+yLnOusuOudvQ0KK+yLnOustO2YuA0KK+yLnOuzkeuqqA0KK+yLnOyDgeyIoA0KK+yLnOyduO2XjA0KK+yLnOyInOyLnQ0KK+yLnOuzkeyDnQ0KK+yLnOyZuOyekA0KK+yLnOyImOybkA0KK+yLnOyEneynhA0KK+yLnOuzkeyImA0KK+yLnOyerOqzpA0KK+yLnOuvuOyImA0KK+yLnOq0gOyDnQ0KK+yLnOuzkeyYgQ0KK+yLnOyDgeyImQ0KK+yLnO2cmOqyvQ0KK+yLnOyblO2ZmA0KK+yLnOuzkeydtQ0KK+yLnOywve2drA0KK+yLnOywrOyasA0KK+yLnOygleq3nA0KK+yLnOuzkeyehA0KK+yLnOyduO2ZjQ0KK+yLnOq3gO2drA0KK+yLnOyYgeyErQ0KK+yLnOuzke2DnQ0KK+yLnOuNleunjA0KK+yLnOygleu2hA0KK+yLnOyerOyImA0KK+yLnOuzke2ZmA0KK+yLnOygkOuhnQ0KK+yLnOyDgeyEnA0KK+yLnOyEse2YhA0KK+yLnOu0ie2YuA0KK+yLnOyjvO2ZmA0KK+yLnOyiheyLnQ0KK+yLnOyerOq3nA0KK+yLnOyDgeykgA0KK+yLnOygleyXsA0KK+yLnOyiheyaqQ0KK+yLnOydvOq3vA0KK+yLnOyEneydtA0KK+yLnOydvOyEnQ0KK+yLnOyYgeunjA0KK+yLnOygleyngA0KK+yLnOyEoOyLnQ0KK+yLnOyKueyEoA0KK+yLnOuzkeyEnQ0KK+yLnOyInO2ZmA0KK+yLnOyGjOyLnQ0KK+yLnOyLoO2VnA0KK+yLnOyDgeyasQ0KK+yLnOqyveyEsQ0KK+yLnOyImOykgA0KK+yLnOyEseyYpQ0KK+yLnOyEneq3nA0KK+yLnOydmOyekA0KK+yLnOyIreq1rA0KK+yLnOywqOq3nA0KK+yLnOyYge2biA0KK+yLnOyDgeyImA0KK+yLnOyXsOykgA0KK+yLnOydvOq4sA0KK+yLnO2MlO2drA0KK+yLnOyerOyImA0KK+yLnOyYpeyInA0KK+yLnOydgO2RnA0KK+yLnOyiheq3nA0KK+yLnOyYgeyImA0KK+yLnOyaqeyLnQ0KK+yLnOyYgeq3vA0KK+yLnOyaqeyYgQ0KK+yLnOyihe2ZmA0KK+yLnOyasOyLnQ0KK+yLnOywveq3vA0KK+yLnOuqheunjA0KK+yLnOychOycpA0KK+yLnOydtOykgA0KK+yLnOuqhe2ZmA0KK+yLnOu0ie2YhA0KK+yLnO2VtOyyoA0KK+yLnOyerOq3nA0KK+yLnOu2hOuhnQ0KK+yLnO2VnOu2hA0KK+yLnOygleyyoA0KK+yLnOyiheq1rQ0KK+yLnOyCvOu0iQ0KK+yLnOq1reynhA0KK+yLnOu2hOyImA0KK+yLnOyiheybkA0KK+yLnOycpOq1kA0KK+yLnOydkeq3uQ0KK+yLnO2MkOyImQ0KK+yLnOynhOq2jA0KK+yLnOyaqeyehA0KK+yLnOywveuFhA0KK+yLnOuFuOyLnQ0KK+yLnOywrOykgA0KK+yLnOuTneq3oA0KK+yLnOyatOyEsQ0KK+yLnOyaqeyjvA0KK+yLnOy2mOyekA0KK+yLnOyiheu0iQ0KK+yLnOyerOuqqQ0KK+yLnO2YhO2YuA0KK+yLnOy5oOusuA0KK+yLnOynhOyyoA0KK+yLnO2DnOyaqQ0KK+yLnO2drO2VmQ0KK+yLnO2DnOyImA0KK+yLnOygleyaqQ0KK+yLnOyInOyImA0KK+yLnOyiheyYpQ0KK+yLnO2DnOyIoA0KK+yLnOyVhOyYgQ0KK+yLnOu0ieyynA0KK+yLnOykgO2drA0KK+yLnO2Dneq3nA0KK+yLnO2VmeyErQ0KK+yLnOqyveyImA0KK+yLnOydhOynhA0KK+yLnO2VtOyEoA0KK+yLnO2DnO2YuA0KK+yLnOydhOuylA0KK+yLnOyngO2YuA0KK+yLnO2YhOq4sA0KK+yLnOuqheydtA0KK+yLnOyImOyImA0KK+yLnO2Vme2drA0KK+yLnO2YuOykgA0KK+yLnOygkOq3vA0KK+yLnOuzke2VnA0KK+yLnOykgO2DnQ0KK+yLnO2YuOynhA0KK+yLnOyyoOyEnQ0KK+yLnOyGjOyjvA0KK+yLnOy2mOyaqQ0KK+yLnO2ZmOykgA0KK+yLnOuzteq4sA0KK+yLnOq2jO2DnQ0KK+yLnOyYpeyerA0KK+yLoOqwkeyEsQ0KK+yLoOyduOyyoA0KK+yLoOuzteyEnQ0KK+yLoOyXsOuztQ0KK+yLoOqwkeyInA0KK+yLoO2DneyyoA0KK+yLoO2YnOyerA0KK+yLoCDtmIQNCivsi6DqsJXsi50NCivsi6DsiJzsmYQNCivsi6Drr7jsi50NCivsi6DsmqnsobANCivsi6DqsbTsmrANCivsi6Dqsr3siJwNCivsi6DsooXsiJgNCivsi6Dsp4TtmZgNCivsi6Dqsr3rp4wNCivsi6DsooXqt5wNCivsi6DsnbzsmrQNCivsi6DshLHsmrANCivsi6Dqsr3rqqgNCivsi6Dsg4HsmrANCivsi6DsooXsg50NCivsi6DsoJXtmJUNCivsi6Dqsr3si50NCivsi6Dsg4Hqsr0NCivsi6DqsJXqtowNCivsi6DsnbzshJ0NCivsi6Dqsr3smrANCivsi6DsiJzqsr0NCivsi6DtlbTsiJgNCivsi6DsmIHsnZENCivsi6Dqsr3sm5ANCivsi6DsnoTtmZQNCivsi6Dtg5zsiJgNCivsi6Drs5HqtbANCivsi6Dqsr3sobANCivsi6Dqt5ztmZgNCivsi6DquLjsmrANCivsi6DsiJjsmKUNCivsi6Dqs4Tso7wNCivsi6DqsJXsiJwNCivsi6Dqsr3qt7wNCivsi6DsnbjsnpANCivsi6Dqs6HsoJANCivsi6Drj4TspIANCivsi6DsmrDsmrANCivsi6DsmIHqta0NCivsi6DqtJHrs7UNCivsi6DsirnsmqkNCivsi6DrqoXshJ0NCivsi6Dsmqnsg4ENCivsi6DqtJHsmqkNCivsi6DsooXtmLgNCivsi6DssKjshKANCivsi6DtlZjqt7wNCivsi6DqtJHsnbgNCivsi6Drj4TsmrANCivsi6DsmKTtmIQNCivsi6DsmIHsi50NCivsi6DqtJHsp4ANCivsi6Dtl4zshK0NCivsi6DsoJzqt5wNCivsi6DtmZTsiJgNCivsi6Dqtazsg50NCivsi6DsoJXrsLANCivsi6Dso7zsmrANCivsi6DshJ3quLANCivsi6Dqt4DrgqgNCivsi6DquLDtlZgNCivsi6DsiJzsi50NCivsi6DspIDquLANCivsi6Dqt6DsmrANCivsi6DshLHsm5ANCivsi6DsooXssYQNCivsi6Dqsr3snpANCivsi6Dqt6DsmrANCivsi6DssL3si50NCivsi6Dqsr3qt5wNCivsi6Dqtozqta0NCivsi6DquIjri6wNCivsi6DssL3shJ0NCivsi6DsmIHsirkNCivsi6DtnazsiJgNCivsi6DquI3smrANCivsi6DspJHtlZwNCivsi6DsoJXtmLgNCivsi6DtmITqt6ANCivsi6DquLDsmrANCivsi6Dso7zsnpANCivsi6Dsg4HtmLgNCivsi6DsoJXsnbQNCivsi6DquLDsm5ANCivsi6DssL3tmLgNCivsi6DtlZztlZwNCivsi6Ag6rCRDQor7Iug6riw7JuQDQor7Iug7JuQ7YOdDQor7Iug7ISx66eMDQor7Iug7IaM6recDQor7Iug6riw7LacDQor7Iug7Iic7Z2sDQor7Iug64+E6rCcDQor7Iug6rCI6riwDQor7Iug6riw7LacDQor7Iug7LaU7ISxDQor7Iug6rSR6re5DQor7Iug7Jqp6rSRDQor7Iug6ri47JqwDQor7Iug64us66qoDQor7Iug7Jew7IStDQor7Iug7IOB7ZeMDQor7Iug6ri47Jq0DQor7Iug7IaM7KGwDQor7Iug7LaY7J6sDQor7Iug7JuQ7IiYDQor7Iug64Kc7JqwDQor7Iug64yA7LacDQor7Iug67OR66+8DQor7Iug7KKF7LGEDQor7Iug64Ko6re8DQor7Iug64yA6raMDQor7Iug7Iic7J6sDQor7Iug6rK97ZWZDQor7Iug64Ko7IiZDQor7Iug7KCV64+ZDQor7Iug7KCV7IOBDQor7Iug67OR7IiZDQor7Iug64Ko7IicDQor7Iug7J207ISdDQor7Iug642V66CsDQor7Iug7JiB7YOdDQor7Iug64us7Zy0DQor7Iug7LCo6rSADQor7Iug64+E7JiBDQor7Iug7Iic7JuFDQor7Iug642V7JqwDQor7Iug6rSR65OdDQor7Iug7J6l6ri4DQor7Iug7YOc7KO8DQor7Iug64+E7JqpDQor7Iug7ZWc7KSADQor7Iug7J2A6recDQor7Iug7Jqp7KGwDQor7Iug64+I7JqwDQor7Iug66qF7YOdDQor7Iug7KCV6riwDQor7Iug7ZW07IStDQor7Iug64+I7Zy0DQor7Iug7Iic7JuQDQor7Iug64+E7IiZDQor7Iug7IiY7JilDQor7Iug64+Z6rSADQor7Iug67aE7ZmYDQor7Iug7YOc6recDQor7Iug67OR7JiBDQor7Iug64+Z6rWsDQor7Iug66qF7IS4DQor7Iug7LaY7Zi4DQor7Iug7YOc67KUDQor7Iug64+Z6rWtDQor7Iug7IOB66GcDQor7Iug7IiY64W4DQor7Iug7Z2l7IS4DQor7Iug64+Z7KeEDQor7Iug7ISx7LKgDQor7Iug7KCV6raMDQor7Iug7KCV7Iq5DQor7Iug64+Z7KeEDQor7Iug7J2A7Z2sDQor7Iug7YOc7JuQDQor7Iug7KeE64KoDQor7Iug64+Z7ZiEDQor7Iug7J6s7IudDQor7Iug7IiY7Je0DQor7Iug7YOc7ZmYDQor7Iug64+Z7ZiEDQor7Iug66qF7ZiEDQor7Iug7IOB7JqwDQor7Iug7ISd7KKFDQor7Iug64+Z7Zi4DQor7Iug7IOB7IiYDQor7Iug7ZW07LacDQor7Iug7Jqp7ZyYDQor7Iug64+Z7Zi4DQor7Iug7IiY6rWtDQor7Iug64yA6recDQor7Iug7LKc65+JDQor7Iug64+Z7ZmUDQor7Iug7J2Y7IiYDQor7Iug7Zqo67CwDQor7Iug7J6s7Zi4DQor7Iug64+Z7ZuIDQor7Iug6riw66eMDQor7Iug64Ko66qoDQor7Iug7J6s7IiYDQor7Iug64+Z7ZuIDQor7Iug7LKg66eMDQor7Iug64KZ64+ZDQor7Iug7IOB7KO8DQor7Iug66eM7IudDQor7Iug7JiB7ISxDQor7Iug66eM7Zi4DQor7Iug7KCV66WcDQor7Iug66eQ7ISgDQor7Iug7KKF7LKgDQor7Iug7Jil7JuQDQor7Iug7LKc7JiBDQor7Iug66qF7IiZDQor7Iug7ISd642VDQor7Iug64W47Zi4DQor7Iug7KeA7ZmUDQor7Iug66qF7JqwDQor7Iug7IiY7LCsDQor7Iug7KeE7J20DQor7Iug7ISx6re8DQor7Iug66qF7J2ADQor7Iug7J247Jq0DQor7Iug7IOB6rWsDQor7Iug6riw7JewDQor7Iug66qF7J6QDQor7Iug67OR7IudDQor7Iug642V7KO8DQor7Iug7JiB7J21DQor7Iug66q97JqwDQor7Iug7Jyk7ZmYDQor7Iug7KKF7ZiEDQor7Iug7J287IigDQor7Iug66yY7IicDQor7IugIOqzpA0KK+yLoOyYgeykgA0KK+yLoOy2mO2ZlA0KK+yLoOustOyyoA0KK+yLoOydgO2YuA0KK+yLoO2DnOyyoA0KK+yLoOyYgeq3nA0KK+yLoOustO2ZjQ0KK+yLoOyaqeqxtA0KK+yLoOuzkeq3vA0KK+yLoOu2gOyYgQ0KK+yLoOusuO2YuA0KK+yLoOy2mOyjvA0KK+yLoOuzkeyLnQ0KK+yLoOyEseuNlQ0KK+yLoOuvuOyImQ0KK+yLoOydmOyImA0KK+yLoO2VhOyasA0KK+yLoOq4sOyerA0KK+yLoOuylOq3oA0KK+yLoOyatOyglQ0KK+yLoOuzke2YlQ0KK+yLoOqyveyYgQ0KK+yLoOuylO2YhA0KK+yLoOy2mOyYpQ0KK+yLoO2SjeyImA0KK+yLoOyerOyEnQ0KK+yLoOuzkeyXtA0KK+yLoOyEuOyglQ0KK+yLoOuPmeyEnQ0KK+yLoOywqOq3vA0KK+yLoOuzkeyasA0KK+yLoO2MkOu0iQ0KK+yLoCDtlZgNCivsi6DsiJjsiJgNCivsi6Drs5Hso7wNCivsi6Dsg4HslYUNCivsi6DsmIHrk50NCivsi6DsnbjshK0NCivsi6Drs5HtnLQNCivsi6DshLHtmZgNCivsi6DrrLTshJ0NCivsi6DsoJXsi50NCivsi6DrtIntnLQNCivsi6DsnbTqt7wNCivsi6Dsm5DrqqgNCivsi6DtmLjsi50NCivsi6DrtIntnLQNCivsi6DshozquLANCivsi6Drj5nrrLgNCivsi6DquLDsiJgNCivsi6DsgrzsmKUNCivsi6Drp5DtnawNCivsi6Dqs6HsnbwNCivsi6DtlZzsspwNCivsi6Dsg4HsiJgNCivsi6DtmZTqt7wNCivsi6DtjJDsooUNCivsi6DrqoXrspQNCivsi6Dsg4HsiJgNCivsi6DtlZzsmrANCivsi6Dqt5zqtawNCivsi6Dsnqztg5wNCivsi6Dsg4HsnqwNCivsi6Dsg4HqsbQNCivsi6DrjIDsi50NCivsi6DshJ3qta0NCivsi6Dsg4HtnLQNCivsi6Dqt7zsiJkNCivsi6DrsLHtg5wNCivsi6DtlbTquLANCivsi6Dsg4HtnLQNCivsi6DrjZXsmqkNCivsi6Drp4zrj4QNCivsi6Dqs4TsiJgNCivsi6DshJ3rs7UNCivsi6DsnITsiJgNCivsi6Dsg4HslpENCivsi6DspJHquLANCivsi6DshJ3sobANCivsi6DsmIHshLENCivsi6DsoJDsiJgNCivsi6Dqsr3sobANCivsi6DshJ3ssqANCivsi6DrqoXsspwNCivsi6Dqt7zqt5wNCivsi6DsmIHtg5wNCivsi6DshKDrqoUNCivsi6DqtJHsiJkNCivsi6Dsg4Hso7wNCivsi6Dsp4TsiJgNCivsi6DshKDsiJwNCivsi6DtmITtlZwNCivsi6DshLHsmKQNCivsi6DsgrzsnKgNCivsi6DshLHqt7wNCivsi6DqtJHsnoQNCivsi6Dqt5ztmLgNCivsi6DsiJzsiJgNCivsi6DshLHsmrANCivsi6DtlZzsoJUNCivsi6DsmrDtlZwNCivsi6DsiJzsnbQNCivsi6DshLHtmLgNCivsi6DquLDtmZQNCivsi6DshLHsiJgNCivsi6Dqt5zsi50NCivsi6DshLHtnLQNCivsi6DsoJXssqANCivsi6DrqoXsnpANCivsi6DstpjtmLgNCivsi6DshLHtnLQNCivsi6DsnZHrnpgNCivsi6DsooXtlZwNCivsi6DsmIHtmZgNCivsi6DshozrtoQNCivsi6DsoJXso7wNCivsi6DrrLjrk50NCivsi6DshLHrj4QNCivsi6DshozshKANCivsi6Dtg5ztmZgNCivsi6DtmY3siJgNCivsi6Dtla3smIENCivsi6DsiJjsnpANCivsi6DshJ3rgqgNCivsi6DsiJzquLANCivsi6DqtazssqANCivsi6DsiJzrk50NCivsi6Drs7TsnbQNCivsi6Drp7nqta0NCivsi6DrqoXtmZQNCivsi6DsiJzrtoQNCivsi6Drs7XtmZQNCivsi6DsooXtmZgNCivsi6DrrLjstpgNCivsi6DsiJzsiJgNCivsi6DsoJXtmZgNCivsi6DshLHshLgNCivsi6DsmIHqt5wNCivsi6DsiJzsmKUNCivsi6Dsg4HsnqwNCivsi6DsoJXqt5wNCivsi6DsoJXtmZgNCivsi6DsiJzsobANCivsi6DrqbTtmIQNCivsi6Dtg5zshLENCivsi6Dsi5zspIANCivsi6DsiJztnawNCivsi6Dsnbzsp5ENCivsi6DsnpDtlYQNCivsi6Dsg4HsiJkNCivsi6DsirnrspQNCivsi6Drs7TshKANCivsi6DqtJHquIgNCivsi6Dsnqztg5wNCivsi6DsirnsmrANCivsi6Drj4TqtowNCivsi6DsiJzrr7wNCivsi6Dsm5DsmKUNCivsi6DslaDtnawNCivsi6Dqsr3tmY0NCivsi6Dqt5zsi50NCivsi6DsooXqt7wNCivsi6DslpHsmKUNCivsi6DsmqnrrLgNCivsi6Dqt5ztmLgNCivsi6Dqtozsl7QNCivsi6DslpHsmrANCivsi6DsoJXqtowNCivsi6DssqDrsKkNCivsi6Dqs4Tsm5ANCivsi6DslrjtmLgNCivsi6Dri6zsobANCivsi6DsoJXshKANCivsi6Dqs4Tsi50NCivsi6Dsl7DsnbQNCivsi6DtmLjtmLgNCivsi6DsmIHsmYQNCivsi6Dsm5DsnpANCivsi6Dsl7TtnLQNCivsi6DrjIDrsLENCivsi6Dtl4ztmLgNCivsi6DsnYDso7wNCivsi6Dsl7TtnLQNCivsi6DsmIHqt7kNCivsi6DsoJXsoJUNCivsi6DqtJHsi60NCivsi6DsmIHqsbQNCivsi6DqsJHqsJUNCivsi6Dqt5zsnKQNCivsi6DshLHqta0NCivsi6DsmIHsi50NCivsi6DquLDrtIkNCivsi6DsmIHsmrANCivsi6Dsirnsl7ANCivsi6DsmIHsi50NCivsi6DsiJjtlZgNCivsi6Dso7zrj4QNCivsi6Drp5DtmJUNCivsi6DsmIHsnbwNCivsi6Dqsr3tmZQNCivsi6Drp5DsiJwNCivsi6DqsbTsp4ENCivsi6DsmIHsobANCivsi6DqsJHsiKANCivsi6DsnbzqsrANCivsi6DsnqXqs6QNCivsi6DsmIHspIANCivsi6DtlbTsnqwNCivsi6DrjIDssqANCivsi6DtmJzsi50NCivsi6DsmIHtnLQNCivsi6DtjJDsg4ENCivsi6Dshozrs7UNCivsi6DtjJDsnpANCivsi6DsmKXsnpANCivsi6Dqt7zsnpANCivsi6Dsg4HtmLgNCivsi6Drs5HsiJkNCivsi6DsmKXsnpANCivsi6DsmqntmIQNCivsi6DrjIDstpwNCivsi6DsmrDsi50NCivsi6DsmYTrqqgNCivsi6DssL3tmLgNCivsi6DsmIHtmZQNCivsi6DrqoXriqANCivsi6DsmYTsmrANCivsi6Dqt5zrj5kNCivsi6DshLHqsr0NCivsi6DssL3tmLgNCivsi6DsmbjsiJkNCivsi6Dqsr3rspQNCivsi6Dsm5DstpwNCivsi6DssL3sspwNCivsi6DsmqnqtawNCivsi6Dsp4Tsi50NCivsi6DshLHsobANCivsi6Dsi6Dsl7QNCivsi6Dsmqnqt7wNCivsi6Dso7zsl7ANCivsi6DquLjshKANCivsi6Dqsr3tmLgNCivsi6DsmqnshJ0NCivsi6DsooXrtIkNCivsi6DsooXso7wNCivsi6Drj5nsiJgNCivsi6DsmqnsiJgNCivsi6DrhbjstpgNCivsi6Drs5HtmZgNCivsi6DsoJXrjIANCivsi6DsmqnspIANCivsi6DsmKXsiJgNCivsi6DssL3tmLgNCivsi6Dstpjsi50NCivsi6DsmqntmLgNCivsi6DquIjtg50NCivsi6Dso7zsl7ANCivsi6Drs7TqsbQNCivsi6DsmrDssqANCivsi6DsiJjtmIQNCivsi6Dqsr3shKANCivsi6Drj5nssqANCivsi6Dsm4XsmqkNCivsi6DsnqzshLgNCivsi6DrhbjsmrANCivsi6Dtg5zsmqkNCivsi6Dsm5DsiJwNCivsi6DquIjsnbwNCivsi6DtmJzqt7wNCivsi6DsmKTshJ0NCivsi6Dsm5DsmrANCivsi6Drp4zsl7QNCivsi6DsnqzsobANCivsi6DsmIHsobANCivsi6Dsm5TqtawNCivsi6DtnaXrqoUNCivsi6DshJ3ri7QNCivsi6DshKDrnb0NCivsi6DsnKDslbwNCivsi6DtmZTshK0NCivsi6DtmZjtg5wNCivsi6Dqt4DqtawNCivsi6DsnKHrnoANCivsi6Dsl7Drj5kNCivsi6DsmIHsmIENCivsi6Drj5nstpgNCivsi6DsnKTsg50NCivsi6DtmZjrj4QNCivsi6DquLDsmYQNCivsi6DquLDstpwNCivsi6DsnKTsiJkNCivsi6Dstpjsl7QNCivsi6Dtnazrp4wNCivsi6Dtg5ztg50NCivsi6DsnKTsi50NCivsi6Dsm5DtmLgNCivsi6DsirnrprwNCivsi6DquIjrp4wNCivsi6DsnKTsi50NCivsi6DtmozrnbwNCivsi6Dqsr3smqkNCivsi6Dqsr3tmLgNCivsi6DsnKTsi50NCivsi6Dsg4HtnawNCivsi6Dsg4Hsg4ENCivsi6DrkZDtnawNCivsi6DsnKTsi50NCivsi6DshJ3si50NCivsi6DrrLTtm4gNCivsi6DsiJjqtIANCivsi6DsnKTsmrANCivsi6Drs5Htg5wNCivsi6Dsg4Hsl7QNCivsi6DsiJzsl7ANCivsi6DsnKTsobANCivsi6DspIDtg50NCivsi6DrqoXrgqgNCivsi6Dtg5zrs7UNCivsi6DsnYTsiJgNCivsi6DquLDshLENCivsi6DssKzrnoANCivsi6DsiJnrqoUNCivsi6DsnYTsi50NCivsi6DshLHshqENCivsi6Drj5ntmZgNCivsi6DquLDquLANCivsi6DsnYTssqANCivsi6DsmKXtmLgNCivsi6DslYjsmIENCivsi6DsiJjsl7ANCivsi6DsnZHtg5wNCivsi6DsmqnstpwNCivsi6DrtoTsooUNCivsi6Dsi6DrgqgNCivsi6DsnbjquLANCivsi6DsgrzsirkNCivsi6DrjIDqt7wNCivsi6Dtg5zsm5ANCivsi6DsnbjsiJkNCivsi6DtmITrjIANCivsi6Dsp4Tsi50NCivsi6DshozrqqgNCivsi6Dsnbjsi50NCivsi6DshKDssqANCivsi6Dsg4HshJ0NCivsi6DtlZnrj4wNCivsi6DsnbjsmrANCivsi6DshLHtmZgNCivsi6DtjJDsi50NCivsi6DsiJjrj4QNCivsi6DsnbzshK0NCivsi6DtmozshJ0NCivsi6Dtg5zsmqkNCivsi6DsmqnsnKQNCivsi6DsnoTsnbQNCivsi6DsooXsiJgNCivsi6Dtl4zsspwNCivsi6Dsp4Tqt6ANCivsi6DsnoTtnLQNCivsi6DsoJXsp4QNCivsi6DtlZjrnb0NCivsi6Dqt7ztnawNCivsi6DsnqXqsr0NCivsi6DsmIHsobANCivsi6DrqoXsmIENCivsi6DsnqztnawNCivsi6DsnqzrrLgNCivsi6DtmqjsmIENCivsi6DshKDrs7UNCivsi6DtmY3quLANCivsi6DsnqzsiJgNCivsi6DsooXssqANCivsi6DshLHro6ENCivsi6Dri6zsm5ANCivsi6DsnqzsmrANCivsi6Dqt5zsmrENCivsi6Dqs7XrhYQNCivsi6Drs5Hsi50NCivsi6DsnqzsmrQNCivsi6DsnbztmLgNCivsi6Dsnqztg5wNCivsi6DrjZXshKQNCivsi6DsnqzsmrQNCivsi6Drj5nsl7ANCivsi6Dstpjsi50NCivsi6DrhbjtmY0NCivsi6DsnqzsnZgNCivsi6DsiJjsl7ANCivsi6Drp7ntmZgNCivsi6DsnYDsmqkNCivsi6DsnqztlZkNCivsi6Drqr3snbQNCivsi6DqtJHtmLgNCivsi6DsooXrtoQNCivsi6DsnqztmLgNCivsi6DspJHsmrQNCivsi6Dstpjsi50NCivsi6Dtnazsl7ANCivsi6DsoJDrk50NCivsi6Dsg4HsmKUNCivsi6DssqDqt7wNCivsi6Dsnbjqt5wNCivsi6DsoJDsmqkNCivsi6DrtInsmrANCivsi6DqsJHsm4UNCivsi6DssqDsiJwNCivsi6DsoJXqt5wNCivsi6DtlonssqANCivsi6Dqsr3siJkNCivsi6DsoJXtlZkNCivsi6DsoJXsiJwNCivsi6Dsg4Hsm4UNCivsi6DrtIntmJUNCivsi6Dqsr3sm4UNCivsi6DsoJXsiJwNCivsi6DtlZzsm5ANCivsi6DsmrTrj4wNCivsi6Dsm5DslaANCivsi6DsoJXsi50NCivsi6DshLHsnqwNCivsi6DsmqntmLgNCivsi6DsoJXsi50NCivsi6DsoJXssqANCivsi6DrspTqs6QNCivsi6DsmIHsp4ENCivsi6DsnYDrhYQNCivsi6DsoJXtnLQNCivsi6DrkZDsmKUNCivsi6Ag7Zi4DQor7Iug7KCV66+8DQor7Iug7KCV7Zy0DQor7Iug7ZWc7JqwDQor7Iug7Zi47Z2sDQor7Iug7IiZ7KKFDQor7Iug7KCc7Zi4DQor7Iug6riw7IudDQor7Iug64+Z66qpDQor7Iug7KCQ7ZmYDQor7Iug7KKF6rWsDQor7Iug7JiB65OdDQor7Iug7YOc7ZeMDQor7Iug7Zqo6riwDQor7Iug7KKF64+EDQor7Iug67OR64+EDQor7Iug7LC97LKgDQor7Iug7ISx7LCoDQor7Iug7KKF7IudDQor7Iug7YOc7YOdDQor7Iug7KCV7JuUDQor7Iug7J6s6reADQor7Iug7KKF7J24DQor7Iug7Z2s7IiYDQor7Iug7IiY7KeBDQor7Iug7ZW07J6sDQor7Iug7KKF7Zy0DQor7Iug7Z2s7ZmYDQor7Iug7KKF7IigDQor7Iug7KCV7IudDQor7Iug7KKF7Zy0DQor7Iug67OR64+EDQor7Iug7IiY7ZmYDQor7Iug7KKF6raMDQor7Iug7KeE6riIDQor7Iug7ISx7JqpDQor7Iug64yA7ZiEDQor7Iug67OR7KKFDQor7Iug7KeE7IStDQor7Iug66y064+EDQor7Iug7ZiV7ISdDQor7Iug7J2A7JqwDQor7Iug7KeE7Zi4DQor7Iug7YOc7JewDQor7Iug7Lac7LaYDQor7Iug7J287JqpDQor7Iug7LCo67aEDQor7Iug66y07JilDQor7Iug7JiB7Zi4DQor7Iug67OR6recDQor7Iug7LCo7IicDQor7Iug66eM67aADQor7Iug67O17ZWcDQor7Iug6riw7ZmUDQor7Iug7LCs7IudDQor7Iug7Iic7ZGcDQor7Iug7Z2l6ri4DQor7Iug66qF7IicDQor7Iug7LC97Zi4DQor7Iug7IiY7IudDQor7Iug7ZW06ri4DQor7Iug6riw6recDQor7Iug7LC97ZuIDQor7Iug7JiB67ORDQor7Iug7IiY7LKgDQor7Iug7IiY642VDQor7Iug7LKg7JqwDQor7IugIO2YhA0KK+yLoOyiheyxhA0KK+yLoOuzkeyLnQ0KK+yLoOyyoOydtA0KK+yLoOunjOqyvQ0KK+yLoOybkO2YuA0KK+yLoOuzkeyImA0KK+yLoOyyreq3oA0KK+yLoOygleq3vA0KK+yLoOqzhOy5oA0KK+yLoOuNleuwnA0KK+yLoOy2mOq4sA0KK+yLoOqyveuCqA0KK+yLoOunjOq3nA0KK+yLoOyInOyEoA0KK+yLoOy2mO2YuA0KK+yLoOq0gOuPjA0KK+yLoOqzoOykgA0KK+yLoOuCqOuhnQ0KK+yLoOy2qeyLnQ0KK+yLoOynhO2YuA0KK+yLoOyEse2ZmA0KK+yLoO2ZmOyImA0KK+yLoOy+jOyLnQ0KK+yLoOyGjOyInA0KK+yLoOykkeuPhA0KK+yLoO2DnOyhsA0KK+yLoO2DnOyWkQ0KK+yLoOq1rOq4uA0KK+yLoOyCrOq3vA0KK+yLoOykkeqzpA0KK+yLoO2DnOyasA0KK+yLoOu2hOyDgQ0KK+yLoOuzte2drA0KK+yLoOyYgeyInA0KK+yLoO2DnOyatA0KK+yLoOustOyLnQ0KK+yLoOyEneuPhA0KK+yLoO2YgeqzoA0KK+yLoO2DnOynhA0KK+yLoOyDgeyEoA0KK+yLoOyerOuztA0KK+yLoOygkOuNlQ0KK+yLoO2DnO2ctA0KK+yLoOuPme2YuA0KK+yLoOuzteyImQ0KK+yLoOyLoOynhA0KK+yLoO2MkOyIoA0KK+yLoOuMgOyYpA0KK+yLoOq4sOumvQ0KK+yLoOygleycpA0KK+yLoO2VhO2YuA0KK+yLoOyerO2VnA0KK+yLoOygle2YuA0KK+yLoO2DnOq3nA0KK+yLoO2VmOq3nA0KK+yLoOykgOunjA0KK+yLoO2DnOuTnQ0KK+yLoOyniOyjvA0KK+yLoO2Vmeu0iQ0KK+yLoOygleyImA0KK+yLoOyhsOykgA0KK+yLoOq3nOyYgQ0KK+yLoO2VmeyLnQ0KK+yLoOuzke2DnA0KK+yLoOynhOyEnQ0KK+yLoOuMgOynhA0KK+yLoO2VnOyasA0KK+yLoOyYgeyEsQ0KK+yLoOyImOyInA0KK+yLoO2YleuwsA0KK+yLoO2VreyLnQ0KK+yLoOyYgeyhsA0KK+yLoOyYgeyLnQ0KK+yLoOyyoOq3nA0KK+yLoO2VtOu0iQ0KK+yLoOyngO2ZjQ0KK+yLoOyerOq3vA0KK+yLoOyEseynhA0KK+yLoO2VtOyLnQ0KK+yLoOuqheyImA0KK+yLoOqxtOyLnQ0KK+yLoOyiheyynA0KK+yLoO2VtOyLnQ0KK+yLoOyEneyLnQ0KK+yLoOywveyEsQ0KK+yLoOynhOustA0KK+yLoO2YhOq1rA0KK+yLoOyInO2drA0KK+yLoOyiheusuA0KK+yLoOq1rO2VmA0KK+yLoO2YhOq1rA0KK+yLoOyYgeuCqA0KK+yLoOygnO2YhA0KK+yLoO2YleuLrA0KK+yLoO2YhOq3vA0KK+yLoOyaqe2YlQ0KK+yLoOy2mOunjA0KK+yLoOq3vOyYpA0KK+yLoO2YhOuNlQ0KK+yLoOyepeqyvQ0KK+yLoOywqOyynA0KK+yLoOuRkO2DnA0KK+yLoO2YhOunjA0KK+yLoOyDge2DnQ0KK+yLoOydtOyIoA0KK+yLoOyEpOy2nA0KK+yLoO2YhOyEuA0KK+yLoOyYgeyaqQ0KK+yLoO2DnOqzpA0KK+yLoOunjOyYpQ0KK+yLoO2YhOyVhA0KK+yLoOuztO2YuA0KK+yLoOyerOyhsA0KK+yLoO2YuOu0iQ0KK+yLoO2YhOyasA0KK+yLoOyEoO2MkA0KK+yLoOyEne2YuA0KK+yLoOq0ke2ZlA0KK+yLoO2YhOyepQ0KK+yLoCDsiJgNCivsi6DsmrTqs6QNCivsi6Dqt5ztmLgNCivsi6DtmITssL0NCivsi6DsiJjssqANCivsi6DtnJjsnqwNCivsi6DsgqzsspwNCivsi6DtmITtnLQNCivsi6Dsgrzsl7ANCivsi6Dsm5TtmqgNCivsi6DstpjsiJgNCivsi6DtmJXtnLQNCivsi6DsoJDtlZkNCivsi6DshLHsmqkNCivsi6DspIDqtowNCivsi6DtmJzsiJwNCivsi6DsnbTsnbQNCivsi6Dtg5zshJ0NCivsi6DquLDrp4wNCivsi6DtmJztmIQNCivsi6DshJ3si50NCivsi6DsmIHqt6ANCivsi6DsmIHsiJgNCivsi6DtmLjsmrANCivsi6Dtg5zsiJgNCivsi6Dsg4HrnoANCivsi6DrrLjquLANCivsi6DtmY3siJwNCivsi6Dqt5zsmKQNCivsi6Dsm5DsmrANCivsi6DsmrHtlZkNCivsi6DtmY3si50NCivsi6DrtInsnbQNCivsi6DsoJzquLANCivsi6DshLHsmIENCivsi6DtmY3si50NCivsi6DquLDsi6QNCivsi6DshLHtmZgNCivsi6DssL3so7wNCivsi6DtmY3ssqANCivsi6Drs7TssL0NCivsi6DsmIHshJ0NCivsi6Dsg4HtmY0NCivsi6DtnaXsi50NCivsi6DsmIHro6ENCivsi6Dsg4HrjZUNCivsi6DqtJHtmLgNCivsi6DtnaXsl7QNCivsi6DsoJXsm4UNCivsi6Dtl4zsiJwNCivsi6Dsi6Dsl7ANCivsi6DtnazshLENCivsi6DqtazshJ0NCivsi6Dqsr3ri6wNCivsi6DsnqzrqoUNCivsi6zqsr3rkZANCivsi6ztmqjqta0NCivsi6zsmIHtmLgNCivsi6zrj5ntmLgNCivsi6zqsr3slaANCivsi6zquLDtlZkNCivsi6zsnqzquLANCivsi6zsmqnqt5wNCivsi6zqtJHsiJgNCivsi6zrj5nsg4ENCivsi6zrrLTtm4QNCivsi6zrs5Hrj5kNCivsi6zqt5zsl7ANCivsi6zsnoTqt7wNCivsi6zrqoXtmZgNCivsi6zrp5DrjIANCivsi6zqt7zrs7QNCivsi6zquLDsi50NCivsi6zrs5Hrp4wNCivsi6zssKjsnpANCivsi6zquLDtg50NCivsi6zsoJXqt6ANCivsi6zssKjsg4ENCivsi6zsm5DtnawNCivsi6zrj5nshJ0NCivsi6zqsr3rnpgNCivsi6ztmZTsiJgNCivsi6zsnqztnawNCivsi6zrj5nsmrENCivsi6zsmYTquLgNCivsi6zrp5DsnbQNCivsi6zsnbjsi50NCivsi6zrqoXrs7QNCivsi6zsg4HsiJgNCivsi6zrr7zsp4QNCivsi6zsnoTsoJUNCivsi6zrrLTsnpANCivsi6zqsJXqtJENCivsi6ztmITshKANCivsi6zrrLjsnqwNCivsi6zrr7zsiJwNCivsi6zqtJHtlZkNCivsi6zsjI3smKUNCivsi6zsmqntj6wNCivsi6zrs7XrnpgNCivsi6zsnbjsobANCivsi6zsnqzstpgNCivsi6zrs5HsmqkNCivsi6zrtoDshowNCivsi6zsmIHsiJgNCivsi6ztjJDsiJwNCivsi6zqt5zsmKUNCivsi6zrtoDsnpANCivsi6zsooXsiJwNCivsi6zsmbjsmIENCivsi6zsmIHsm5ANCivsi6zsg4HshK0NCivsi6ztmqjqt7wNCivsi6zshKDshJwNCivsi6zslrjtmZgNCivsi6zsg4Hsl7QNCivsi6zsoJXsi50NCivsi6zqsJHsiJgNCivsi6zsnKTsp4QNCivsi6zsg4Hsl7QNCivsi6zsm5DsmKQNCivsi6zshKDqt5wNCivsi6zsooXqtowNCivsi6zsg4HtnawNCivsi6zquIjsooUNCivsi6zsm5DtmIQNCivsi6zqtJHrtoANCivsi6zshJ3rs7QNCivsi6zshLHsnqUNCivsi6zsmqnsobANCivsi6wg7Z2sDQor7Ius7ISk7ZmUDQor7Ius64+Z7IStDQor7Ius7Lmg7ISgDQor7Ius7Iic7Zi4DQor7Ius7IiY67O0DQor7Ius7KeE7KO8DQor7Ius66qF7KO8DQor7Ius7J247IicDQor7Ius7JiB67O0DQor7Ius656Y7KeEDQor7Ius67OR64+EDQor7Ius7YyQ7IiYDQor7Ius7JiB67SJDQor7Ius7KeE7YOcDQor7Ius66y067SJDQor7Ius7ZaJ7J20DQor7Ius7JiB7IiZDQor7Ius6raM7IOBDQor7Ius7KCc7ZWYDQor7Ius67OR6recDQor7Ius7J6s64usDQor7Ius67SJ7Zi4DQor7Ius7KCV66qpDQor7Ius66qF6riwDQor7Ius7J6s67SJDQor7Ius7IOB7JikDQor7Ius7LaY6riwDQor7Ius7IOB7JykDQor7Ius7J6s7JqpDQor7Ius7Z2s7Zi4DQor7Ius66qF7JyoDQor7Ius7J6s7ZWcDQor7Ius7J6s7JuQDQor7Ius7KKF7JiBDQor7Ius7KKF64+ZDQor7Ius6rSR7Z2sDQor7Ius7J6s7J21DQor7Ius67O17J6sDQor7Ius7Lmg6re8DQor7Ius67OR64+ZDQor7Ius7J6s7ZiEDQor7Ius67aE7Jq0DQor7IusIO2VtA0KK+yLrOyerOybkA0KK+yLrOygkOyyoA0KK+yLrO2DnOyaqQ0KK+yLrOq3vOyImQ0KK+yLrOydtOyjvA0KK+yLrOygleyErQ0KK+yLrO2aqO2ZlA0KK+yLrOygleqyvQ0KK+yLrOyblOyVlA0KK+yLrOyjvOyErQ0KK+yLrOq0ke2YhA0KK+yLrOu2hOyXtA0KK+yLrOycpOyjvA0KK+yLrOykkeyErQ0KK+yLrOq3gOuCnA0KK+yLrOygnOyGjA0KK+yLrOyEse2YhA0KK+yLrOywqOyhsA0KK+yLrO2DnOq4uA0KK+yLrOyEneyInA0KK+yLrOy2mOu0iQ0KK+yLrOywveyErQ0KK+yLrOyYgeykgA0KK+yLrOyLoOyekA0KK+yLrOyInOydtA0KK+yLrOy2mOyErQ0KK+yLrOyihe2DnQ0KK+yLrO2biOq3nA0KK+yLrOuPiOyEnQ0KK+yLrOy2mOyErQ0KK+yLrOuPmeyerA0KK+yLrOyYgeyZhA0KK+yLrOyatOuCqA0KK+yLrO2DnOykgA0KK+yLrO2YgeyImA0KK+yLrOygleq1rQ0KK+yLrOuylOyaqQ0KK+yLrO2VtOynhA0KK+yLrOuNleydvA0KK+yLrOq0gOyImA0KK+yLrOywveydtA0KK+yLrO2YhOyjvA0KK+yLrOuPmeykkQ0KK+yLrOydgO2doA0KK+yLrOu0ieykgA0KK+yViCDsiJwNCivslYjsmqntmZgNCivslYjsnbjrnoANCivslYjsooXsiJwNCivslYjqsJHtmIQNCivslYjrk53tmZQNCivslYjsmIHsiJkNCivslYjqt4DsiJwNCivslYjqsr3siJkNCivslYjsmrTshJ0NCivslYjsiJjtg50NCivslYjsiJzrtoANCivslYjqsr3siJkNCivslYjtlonrj5kNCivslYjrs5HsiJgNCivslYjsmIHrgqgNCivslYjqsr3smKUNCivslYjsiJzsobANCivslYjsg4Htg5wNCivslYjsmIHtmIQNCivslYjqsr3sobANCivslYjtmLjqtZANCivslYjrs5Hqsr0NCivslYjsmIHsobANCivslYjqsr3tmLgNCivslYjsm5Dso7wNCivslYjsoJXtnawNCivslYjqt4Dtg5wNCivslYjqs4TsiJwNCivslYjsm5DtlZkNCivslYjsnqztmZQNCivslYjsmqntmLgNCivslYjqtJHshJ0NCivslYjsg4Hrj4QNCivslYjslpHrr7wNCivslYjtg5zsiJgNCivslYjqt4DtlZkNCivslYjsmqnrtIkNCivslYjsnoTqsr0NCivslYjqsr3rjIANCivslYjqt5ztmLgNCivslYjqtJHtm4gNCivslYjquLDsiJgNCivslYjsmqnsiJgNCivslYjrj4Tsg4ENCivslYjspJHshJ0NCivslYjsnqztnawNCivslYjrjIDsi50NCivslYjrj5nrrLgNCivslYjsmIHtg5wNCivslYjrspTsiJwNCivslYjrqoXsi50NCivslYjrkZDsnbQNCivslYjsmIHsmqkNCivslYjtmantmLgNCivslYjsmIHqt5wNCivslYjrp5DshKANCivslYjsooXsl7QNCivslYjrj5nsiJgNCivslYjshLHrnoANCivslYjrqoXspIANCivslYjsnqzsiJgNCivslYjshKDrp4wNCivslYjsnbzsiJwNCivslYjrr7jslaANCivslYjtlZnsm5ANCivslYjsg4HtjJQNCivslYjrj5nso7wNCivslYjrr7jtmIQNCivslYjstpjsmrANCivslYjsmIHtmZQNCivslYjtg5zshJ0NCivslYjrr7zqtowNCivslYjsmqnrr7gNCivslYjsiJzsnoQNCivslYjsm5TsmqkNCivslYjrtInsmKUNCivslYjsnqzqtowNCivslYjsoJDqs6QNCivslYjrgqjsiJwNCivslYjrtInsobANCivslYjsooXsm5ANCivslYjtg5zsg50NCivslYjsmqnqs4QNCivslYjrtIntlZgNCivslYjtg5zsuaANCivslYjqsJHso7wNCivslYjsooXsmIENCivslYjrtoTriqANCivslYjstpjsnbwNCivslYjtmITsiJwNCivslYjrqoXsp4ANCivslYjsg4Hqta0NCivslYjsp4DroKgNCivslYjsoJXsiJgNCivslYjsnYDqsJENCivslYjsg4HsmKUNCivslYjsmqnqta0NCivslYjsoJzrsLANCivslYjsg4Hsl7QNCivslYjsg4HsmqkNCivslYjqt7zsmKQNCivslYjsnqzqt5wNCivslYjqt7zqt7wNCivslYjsg4Htg5wNCivslYjsnbzsp4QNCivslYjtlbTtm4gNCivslYjsiJzri7QNCivslYjshKTslYQNCivslYjsoJXsmqkNCivslYjsiJztmIQNCivslYjquLDtlZgNCivslYjshLHshK0NCivslYjtmLjqt5wNCivslYjqta3rr7gNCivslYjspIDqs6QNCivslYjshLHsnYANCivslYjtg5ztnawNCivslYjqsr3smqkNCivslYjrp5Dtg50NCivslYjshLHsnbwNCivslYjshJ3sp4ANCivslYjsl7Dqt5wNCivslYjstqnroKwNCivslYjshLHssqANCivslYjqtoHshJ0NCivslYjsnKDtmIQNCivslYjsjI3si50NCivslYjshLHtmLgNCivslYjshozsiJwNCivslYjspIDsi50NCivslYjshLHqtowNCivslYjshLHtnawNCivslYjsp4TssqANCivslYjtlZzsi50NCivslYjsg4Hsp4QNCivslYjshLjrsKkNCivslYjso7zsoJUNCivslYjqsJHtmY0NCivslYjsoJXtlZwNCivslYjsiJjrgqgNCivslYjrs5HtmIQNCivslYjsooXtmZQNCivslYjsmqntmLgNCivslYjsiJjsmqkNCivslYjssL3sm4UNCivslYjtg5zsnqwNCivslYjrs7TssqANCivslYjsiJjsoJUNCivslYjsi6DtnLQNCivslYjsnqXsmIENCivslYjsiJzshJ0NCivslYjsiJjsspwNCivslYjsmIHqtIANCivslYjsmIHtg4ENCivslYjqsr3smIENCivslYjsiJzrk50NCivslYjsmIHrtoANCivslYjsooXqtIANCivslYjshLHquLANCivslYjsiJzsnpANCivslYjso73spJENCivslYjshLHsiKANCivslYjtg5zsnbwNCivslYjsiJztnawNCivslYjsnqzsmqkNCivslYjri6zqtowNCivslYjqs4TtlYQNCivslYjsirnsiJgNCivslYjrs5HquLANCivslYjtmJXsl7QNCivslYjtmITsuZgNCivslYjsi6DssqANCivslYjrj5nsiJwNCivslYjqsJHrj5kNCivslYjtjJDtg5wNCivslYjsmIHqsr0NCivslYjrqoXrjZUNCivslYjsnqzsmrENCivslYjssL3siJgNCivslYjsmIHqt7wNCivslYjsnqzqsbQNCivslYjrtoTsnpANCivslYjsirnshKANCivslYjsmIHri6wNCivslYjrrLjsmIENCivslYjtlbTsi50NCivslYjsiJjqtowNCivslYjsmIHrrLQNCivslYjsmIHrrLgNCivslYjsl7DtnawNCivslYjsoJXtg4ENCivslYjsmIHsiJgNCivslYjrp4zrp4wNCivslYjsoJXrnoANCivslYjrgqjsiJgNCivslYjsmIHso7wNCivslYgg7JqpDQor7JWI7ZeM7JqpDQor7JWI7Iic7YOcDQor7JWI7JiB7LKgDQor7JWI7Jyk7YOdDQor7JWI66y47J6QDQor7JWI7KKF6raMDQor7JWI7JiB7ZWcDQor7JWI7KKF7ISdDQor7JWI7KCV65GQDQor7JWI7KCV7IiYDQor7JWI7JiB7Zi4DQor7JWI7JmE66OhDQor7JWI7YOc642VDQor7JWI6rK96rCRDQor7JWI7Jqp7IiYDQor7JWI6riI64W4DQor7JWI7KKF6rOkDQor7JWI7Iic6re8DQor7JWI7Jqp7YOcDQor7JWI7ISd64+EDQor7JWI7ISg7JiBDQor7JWI7KCV7ZmUDQor7JWI7Jqp7ZmYDQor7JWI64+Z7J6QDQor7JWI6rG07Zi4DQor7JWI7J287J24DQor7JWI7Jyk7KCVDQor7JWI7KCV6rOkDQor7JWI7KO86riwDQor7JWI7KKF7J28DQor7JWI7J2A66+4DQor7JWI7Zi47YOcDQor7JWI66eM7IudDQor7JWI7ZWc7ZiEDQor7JWI7J287ZuIDQor7JWIIOuPmQ0KK+yViOunjOyImA0KK+yViOyatOyihQ0KK+yViOyerOq0gA0KK+yViO2YhOyYgQ0KK+yViOyngOyaqQ0KK+yViOydvOyImA0KK+yViOyerOybkA0KK+yViOydke2YuA0KK+yViOqxtOq3nA0KK+yViOqyveybkA0KK+yViOyerO2drA0KK+yViOyekOybkA0KK+yViOyWkeyekA0KK+yViOyDgeyViA0KK+yViOygleybhQ0KK+yViOyEseyYpQ0KK+yViOu2hOyaqQ0KK+yViOyYgeuPhA0KK+yViOygle2YhA0KK+yViOyYgeyLnQ0KK+yViOuztOuegA0KK+yViOustO2YuA0KK+yViOygle2YuA0KK+yViOyEseq4uA0KK+yViOygleu2hA0KK+yViOyYgeuMgA0KK+yViOyiheqwkQ0KK+yViOydvOyImA0KK+yViOu0ie2ZlA0KK+yViOyyoOuhnQ0KK+yViOyihe2RnA0KK+yViO2ZjeyYpQ0KK+yViOuPhO2YhA0KK+yViOu2gOyImQ0KK+yViO2DnOyLnQ0KK+yViOyEneyInA0KK+yViOyYgeyaqQ0KK+yViO2VtOykgA0KK+yViO2DnOyLnQ0KK+yViOyZhOyEuA0KK+yViO2VtOyEsQ0KK+yViOuzkeyInA0KK+yViO2PieyImA0KK+yViOyihe2ZmA0KK+yViOqwley5oA0KK+yViOyerOyaqQ0KK+yViO2UvOqwgOuhnA0KK+yViOyYge2ZmOykkQ0KK+yViOygley2mOyYpA0KK+yViOyYgeq2jOyglQ0KK+yViO2VmeyjvA0KK+yViOyInOuLrA0KK+yViOuPiOyekA0KK+yViOuRkOyImA0KK+yViO2VtOyImQ0KK+yViOq2jO2YuA0KK+yViOq1kOqwkQ0KK+yViOyCvOyjvA0KK+yViO2YhOyEnQ0KK+yViOunkOyEuA0KK+yViOyZhO2YuA0KK+yViOuzkeyYgQ0KK+yViO2YhOyImQ0KK+yViOynhOyImA0KK+yViOy2qeyhsA0KK+yViOyihe2ZmA0KK+yViO2YleuMgA0KK+yViOycpOyasA0KK+yViO2DnOuCqA0KK+yViOyYgeqyvQ0KK+yViO2YuOyErQ0KK+yViOydgOunjA0KK+yViO2DnOycoA0KK+yViOq3vOyImA0KK+yViO2YuOykgA0KK+yViOyYgeyImA0KK+yViOyXsOq3nA0KK+yViOyDgeydtQ0KK+yViO2ZjeusuA0KK+yViO2VtOuPmQ0KK+yViOq0ke2DnQ0KK+yViOqyveq3vA0KK+yViO2ZjeyImA0KK+yViOynhO2drA0KK+yViO2YhOyYgQ0KK+yViOygkOyImA0KK+yViO2aqOusuA0KK+yViOyYgeyLnQ0KK+yViOydtOq1rQ0KK+yViO2Dne2DnA0KK+yViO2aqOyaqQ0KK+yViOq0keyImA0KK+yViOyatOyDgQ0KK+yViOyasOydvA0KK+yViO2drOuPhA0KK+yViOyiheyaqQ0KK+yViOygleyYpQ0KK+yViOyerOuhnQ0KK+yWkeqwkeyEnQ0KK+yWkeydgOyEnQ0KK+yWkeyYqOyImQ0KK+yWkey2qeuPhA0KK+yWkeqwkeyKuQ0KK+yWkeq4sOyLnQ0KK+yWkeyYgeuPhA0KK+yWkeq3nOuCqA0KK+yWkeqyveuvuA0KK+yWkeuqheyImQ0KK+yWkeuPmeq4sA0KK+yWke2YuOq1kA0KK+yWkeqyve2ZlA0KK+yWkeyEoO2DnA0KK+yWkeuMgOyekA0KK+yWkeuzteyYpQ0KK+yWkeq1rO2YhA0KK+yWkeuPmeuNlQ0KK+yWkeqwkeyyoA0KK+yWkeyImOyxhA0KK+yWkeq3gOyEoA0KK+yWkeqzhOuylA0KK+yWke2Vme2YuA0KK+yWkeq4iOyekA0KK+yWkeq4iOyYpQ0KK+yWkeyepeq1rA0KK+yWkeynhOyImA0KK+yWkeqyve2ZmA0KK+yWkeq4sOykgA0KK+yWkeygleyImA0KK+yWkeuzkeyyoA0KK+yWkeymneq3vA0KK+yWkeq4sOyyoA0KK+yWkeyLoOynhA0KK+yWkeygleyEnQ0KK+yWkeq4iOyXsA0KK+yWkeuMgOq4uA0KK+yWkeyatOyIoA0KK+yWkeydtO2ctA0KK+yWkeyYge2ZlA0KK+yWkeuPhOydvA0KK+yWkeu0ieybkA0KK+yWkeyImOyImA0KK+yWkeyYgeq4uA0KK+yWkeuPmeuqhQ0KK+yWkeyXsOy2nA0KK+yWkeynhO2ZqQ0KK+yWke2VmeynhA0KK+yWkeuPmeusuA0KK+yWkeqyveynhA0KK+yWke2DnOunjA0KK+yWkeycpOyLnQ0KK+yWkeuPmeyXsA0KK+yWke2VtOydtA0KK+yWkeyImOyImA0KK+yWke2DnOyLnQ0KK+yWkeunjOyImA0KK+yWkeuzke2YuA0KK+yWkeyerOyxhA0KK+yWkeyEseyjvA0KK+yWkeuptOyImA0KK+yWkeyEseyhsA0KK+yWkeu0ie2drA0KK+yWkeyCvO2biA0KK+yWkeuptOyImA0KK+yWkeyGjOqyvQ0KK+yWkeyZhOq1kA0KK+yWkeygle2ctA0KK+yWkeusuO2YhA0KK+yWkeqyveyErQ0KK+yWkeunkOyjvA0KK+yWkeywveu0iQ0KK+yWkeuvuOqyvQ0KK+yWkeyDge2drA0KK+yWkeywveyhsA0KK+yWkeyInOqzpA0KK+yWkeu2gOyEnQ0KK+yWkeq3nOyImA0KK+yWkeyEseyEnQ0KK+yWkeydvOyXtA0KK+yWkeyCrOyaqQ0KK+yWkeu0ie2ZmA0KK+yWkeyImOyImA0KK+yWkeyaqeyLnQ0KK+yWkeyCvOyInA0KK+yWkeuPmeyihQ0KK+yWkeycpO2YuA0KK+yWkeyaqeyekA0KK+yWkeyDgeq3vA0KK+yWkeyInOynhA0KK+yWke2Zjeq2jA0KK+yWkeyerOuNlQ0KK+yWkeyDgeyXtA0KK+yWkeyDgeyXsA0KK+yWkeyGjO2YhA0KK+yWkeyaqeyEoA0KK+yWkeyDge2ZmA0KK+yWkeuPmeyImA0KK+yWkeydteyYgQ0KK+yWkeyVoO2DnA0KK+yWkeyEoOq4uA0KK+yWkeyYge2YuA0KK+yWke2VnOyYgQ0KK+yWkeyYge2DnA0KK+yWkeyEseqyvQ0KK+yWke2drOyEsQ0KK+yWkeydmOqyvQ0KK+yWkeuzkeuCqA0KK+yWkeyEseq0gA0KK+yWke2YhO2DnA0KK+yWkeuLrOyglQ0KK+yWke2Zje2DnA0KK+yWkeyEseyYpQ0KK+yWkeustOyasA0KK+yWke2ZmOyYgQ0KK+yWkeydkeq1rQ0KK+yWkeyEseyYpQ0KK+yWkeyYpe2drA0KK+yWkeynhOyImA0KK+yWkeyYgeyEnQ0KK+yWkeyEseyasQ0KK+yWke2YuOyLnQ0KK+yWkeyDgeq2jA0KK+yWkeyaqeyImA0KK+yWkeyEse2biA0KK+yWkeyKueynhA0KK+yWkeyEoOyYgQ0KK+yWkeq4sOuCqA0KK+yWkeyGjOuhnQ0KK+yWkeqyveyduA0KK+yWkeyyoO2drA0KK+yWkeyEseyInA0KK+yWkeyInOyLrA0KK+yWkeyInOq3nA0KK+yWkeyYgeycqA0KK+yWkeyihe2XjA0KK+yWkeyInOyXsA0KK+yWkeyduOu2hA0KK+yWkeykgOyekA0KK+yWke2YhOq3nA0KK+yWkeyInOyaqQ0KK+yWkeyDge2drA0KK+yWke2VnOuFhA0KK+yWkeyduOyyoA0KK+yWkeyKue2DnA0KK+yWkeyatOydtA0KK+yWke2DnOunjA0KK+yWkeyXsOywvQ0KK+yWkeyXsOyYpQ0KK+yWke2XjOyYpA0KK+yWkeqwkeuztQ0KK+yWkeyduO2YuA0KK+yWkeyXsOyaqQ0KK+yWkeuPmeq4sA0KK+yWkeq4sOyLnQ0KK+yWkeyiheyaqQ0KK+yWkeyYgeq3nA0KK+yWkeyiheyLnQ0KK+yWke2DnOyImQ0KK+yWke2DnOyXtA0KK+yWkeyYgeq3nA0KK+yWkeybkO2drA0KK+yWkeq4sOykgA0KK+yWkeyaqeyasA0KK+yWkeyYgeunjA0KK+yWkeyVoOyyoA0KK+yWkey2mO2DnQ0KK+yWkeu2hOykkQ0KK+yWkeyYgeyEnQ0KK+yWkeuLtOyhsA0KK+yWkeyasOyInA0KK+yWkeyaqeumrA0KK+yWkeyYgeyEoA0KK+yWkeq4sOybkA0KK+yWkeyInOyErQ0KK+yWkeq4sOyjvA0KK+yWkeyYpeyhsA0KK+yWkeyDgeybkA0KK+yWkey2mO2DnA0KK+yWke2DnOyYpQ0KK+yWkeyaqeydtA0KK+yWkeyYgeyLnQ0KK+yWkeyYge2DgQ0KK+yWkeyXsO2YuA0KK+yWkeyaqe2MkA0KK+yWkeyEoOykgA0KK+yWkeyYpO2YuA0KK+yWkeunkO2VtA0KK+yWkeyblOyehA0KK+yWkeyYge2YhA0KK+yWkeyEuOq3vA0KK+yWkeyEseyLnQ0KK+yWkeycoO2YuA0KK+yWke2VmO2ZmA0KK+yWkeyiheustQ0KK+yWkeq1rOyDgQ0KK+yWkeydgOyYpQ0KK+yWkeu0ieyCvA0KK+yWkeydvOyasA0KK+yWkeygleq4sA0KK+yWkeydhOyDnQ0KK+yWkeuRkO2YlQ0KK+yWke2YhOqwkQ0KK+yWkeuPmeyLnQ0KK+yWkeyepeyImA0KK+yWkeygleyekA0KK+yWke2ZlOyEsQ0KK+yWkeq3nO2drA0KK+yWkeyerOyyoA0KK+yWkeyaqe2DnQ0KK+yWkeyyoO2YuA0KK+yWkeq3vOygkA0KK+yWkeyerOyyoA0KK+yWkeyihe2XjA0KK+yWke2MkO2YuA0KK+yWkeyZuOq3nA0KK+yWkeyerO2XjA0KK+yWkeyZuOuztQ0KK+yWkeyYgeqwkQ0KK+yWkeygleuPmQ0KK+yWkeygleyEnQ0KK+yWkeyaqeyEnQ0KK+yWkeyyoOqzpA0KK+yWke2Vme2YhA0KK+yWkeygle2YuA0KK+yWkeq3vOyekA0KK+yWkeykgOq3nA0KK+yWkeq3vOuMgA0KK+yWkeygle2ZmA0KK+yWkeygleq2jA0KK+yWkeygkOyyoA0KK+yWke2Vmeq4iA0KK+yWkeymneyImA0KK+yWkeyduO2YhA0KK+yWkeu2gOyImQ0KK+yWkeq3nOyVlA0KK+yWkeynhOyEnQ0KK+yWkeu2hOyngA0KK+yWkeyerOuqqQ0KK+yWkeq1kO2ZmA0KK+yWkeynhO2DnA0KK+yWke2VtO2DnQ0KK+yWkeyLnO2YuA0KK+yWkeq3vOq3nA0KK+yWkeywqOyImA0KK+yWkeyYge2ZmA0KK+yWke2DnOyImQ0KK+yWkeyiheybkA0KK+yWkeyyoOqzpA0KK+yWkeynhOydvA0KK+yWke2MkOuvvA0KK+yWkeyiheq4sA0KK+yWkey2mOumvQ0KK+yWkeq4sOu2hA0KK+yWke2YhOq3vA0KK+yWkeyDge2VtA0KK+yWke2VtOq3vA0KK+yWkeyImOyngA0KK+yWkeyXsO2YhA0KK+yWke2DnOybhQ0KK+yWke2VtOyepQ0KK+yWke2ZjeyVoA0KK+yWke2DnOyImA0KK+yWkeyEoOuTnQ0KK+yWke2XjOuPhA0KK+yWkeycpOyImQ0KK+yWkeyImOyekA0KK+yWkeyImOq0gA0KK+yWke2YhOyEnQ0KK+yWkeqyveykgA0KK+yWkeygkOydtA0KK+yWkeyepeyaqQ0KK+yWke2Yle2VmQ0KK+yWkeyEseuPmQ0KK+yWkeykgOq0gA0KK+yWkeycpO2bhQ0KK+yWke2YuOyKuQ0KK+yWkeyihe2YuA0KK+yWke2VtOuPmQ0KK+yWkeuNleynhA0KK+yWtOusuOyhsA0KK+yWtOybkOykkQ0KK+yWtOuPme2YgQ0KK+yWtOq3vOyyoA0KK+yWtO2YhO2DnA0KK+yWtOyiheuqqQ0KK+yWtOyerOq1rA0KK+yWtOychOyImA0KK+yXhOqwhOyngQ0KK+yXhOq4sO2YuA0KK+yXhOqyveynhA0KK+yXhOybkO2YhA0KK+yXhOqzhOu0iQ0KK+yXhOunkOuCqA0KK+yXhOyerOyImA0KK+yXhOyasOyImA0KK+yXhOq3nO2YhA0KK+yXhO2ZmOyImA0KK+yXhO2MkOyekA0KK+yXhO2VtOyEoA0KK+yXhOq4sO2ZmA0KK+yXhOuCqOyXsA0KK+yXhOygleyErQ0KK+yXhO2cmOuPhA0KK+yXhOunieydtA0KK+yXhOyDgeyImA0KK+yXhOu0ie2drA0KK+yXhOuylOynhA0KK+yXhOyCvOyjvA0KK+yXhOyasOyLnQ0KK+yXhO2VtOybkA0KK+yXhOyDgeyImA0KK+yXhOyDgeq4sA0KK+yXhOychO2XjA0KK+yXhOq3nOyImA0KK+yXhOuzkeuMgA0KK+yXhOyDgeyaqQ0KK+yXhOyekOyImA0KK+yXhOyatOynhA0KK+yXhOyEseq1rA0KK+yXhOyDgeyaqQ0KK+yXhO2MkOyImA0KK+yXhOyImOyhsA0KK+yXhOyepe2YuA0KK+yXhOyDgeyasA0KK+yXhOyEne2YuA0KK+yXhOyDgeyImA0KK+yXhOq3nOyImQ0KK+yXhOyEseydvA0KK+yXhOqwkeq4uA0KK+yXhOyLnOq3vA0KK+yXhOywveyEoA0KK+yXhOyEse2doA0KK+yXhOyCrOyInA0KK+yXhOyImO2ZjQ0KK+yXhOuqheq3nA0KK+yXhOyGjOuNlQ0KK+yXhOywrOq3vA0KK+yXhOuzke2VmQ0KK+yXhOq0ke2ZjQ0KK+yXhOyGjOygkA0KK+yXhOyerOy2nA0KK+yXhO2aqO2ZmA0KK+yXhOygleyImQ0KK+yXhOyYgeyErQ0KK+yXhOyEneyEnQ0KK+yXhOuqhe2YlQ0KK+yXhOyKue2aqA0KK+yXhOyZuOuNlQ0KK+yXhOyImOyhsA0KK+yXhOyDgeuMgA0KK+yXhOyEuOyerA0KK+yXhOyaqeuNlQ0KK+yXhOqwkeyEoA0KK+yXhOyInOq1rQ0KK+yXhOyerOycqA0KK+yXhOydteq3oA0KK+yXhOygleyXsA0KK+yXhOykgOyInA0KK+yXhOyekOyekA0KK+yXhOydteq4sA0KK+yXhOuzkeq3gA0KK+yXhO2DnOyyoA0KK+yXhOyDgeuPjA0KK+yXhOydteuNlQ0KK+yXhOunjO2DnA0KK+yXhOynhO2YuA0KK+yXhOyasOuPmQ0KK+yXhOygleyErQ0KK+yXhOqwleyIoA0KK+yXhOyInOuztQ0KK+yXhOq3nOyyoA0KK+yXhOygleyekA0KK+yXhO2ZjeyImA0KK+yXhOygleuMgA0KK+yXhOuPhOuKoA0KK+yXhOyiheyErQ0KK+yXhOyDgeunjA0KK+yXhOygleyImA0KK+yXhOybkOycpA0KK+yXhOyjvOyErQ0KK+yXhOykkeyWkQ0KK+yXhOyYge2drA0KK+yXhOydvOyerA0KK+yXhOykke2YhA0KK+yXhOyYgeyImA0KK+yXhOqzhOuPhA0KK+yXhOycpOq3nA0KK+yXhO2VhO2ZlA0KK+yXhOuzkeyYgQ0KK+yXhOyYpeyYgQ0KK+yXhOybkOyEoA0KK+yXhO2YuOynhA0KK+yXhO2drO2DnQ0KK+yXhOyihe2YuA0KK+yXhOyDgeqxtA0KK+yXhO2drOyInA0KK+yXhOqyveyhsA0KK+yXhOunueuNlQ0KK+yXhOyaqe2XjA0KK+yXrOq4sOuPmQ0KK+yXrOyYgeuFhA0KK+yXrOyEne2ZmA0KK+yXrO2DnOyLnQ0KK+yXrOq4sOyXsA0KK+yXrO2drOy5oA0KK+yXrOyaqeq1rA0KK+yXrOyyoOy2nA0KK+yXrOuCqO2ZmA0KK+yXrOycpO2biA0KK+yXrOyInOuMgA0KK+yXrOyerOq0kQ0KK+yXrOunueuPmQ0KK+yXrOynhO2DnA0KK+yXrOuPmeyYgQ0KK+yXrO2VmeyImQ0KK+yXrOuqhe2ZmA0KK+yXrOyaqeyImA0KK+yXrOuztOy2mA0KK+yXrOunjOyIoA0KK+yXrOuzkeq4sA0KK+yXrOyYgeyErQ0KK+yXrOyerOqwkQ0KK+yXrOyYpeyImA0KK+yXrOuztOyXsA0KK+yXrO2DnOyXtA0KK+yXrO2DnO2DnA0KK+yXrOuzkeyLnQ0KK+yXrOuzteyXsA0KK+yXrOygle2ctA0KK+yXrOyLoO2XjA0KK+yXrO2VnOq3vA0KK+yXrOyDgeqwkQ0KK+yXrOuRkO2DnA0KK+yXrOuPmeyasQ0KK+yXrO2MkOuqhQ0KK+yXrOyDgeq3oA0KK+yXrOyaqeyatA0KK+yXrOyihe2YhA0KK+yXrOyYgeustQ0KK+yXrOyDgeq3vA0KK+yXrOydke2WiQ0KK+yXrOydvOy2nA0KK+yXrOuzkeyLnQ0KK+yXrOyDgeuNlQ0KK+yXrOyiheyaqQ0KK+yXrO2DnOycpA0KK+yXrO2drO2YuA0KK+yXrOyDgeuqqQ0KK+yXrOuqheq4uA0KK+yXrOygleybkA0KK+yXrOyyoOykgA0KK+yXrOyDgeyEoA0KK+yXrOyEseydtA0KK+yXrOyKueqzpA0KK+yXrOuzkeyLnQ0KK+yXrOyDgeyXsA0KK+yXrOqyveuCqA0KK+yXrOyiheyImA0KK+yXrO2DnOuegA0KK+yXrOyDgeyasA0KK+yXrOyEseyImA0KK+yXrOyIreyduA0KK+yXrOuPmeyLnQ0KK+yXrOyDgeyasQ0KK+yXrOyEoOu0iQ0KK+yXrOyYpO2drA0KK+yXrOyaqeyaqQ0KK+yXrOyDgeyynA0KK+yXrOyImOuhnQ0KK+yXrOyYgeyInA0KK+yXrOu2hOu0iQ0KK+yXrOyDge2XjA0KK+yXrOyerOykgA0KK+yXrOyerO2YhA0KK+yXrOyYge2DnA0KK+yXrOyDge2ZlA0KK+yXrOu2gOyekA0KK+yXrOq3vOunjA0KK+yXrOyMjeyImA0KK+yXrOyEneuPmQ0KK+yXrOuMgOyXsA0KK+yXrOq0keyEoA0KK+yXrOyYpeyLnA0KK+yXrOyEneycpA0KK+yXrOygle2VnA0KK+yXrOyDgeyekA0KK+yXrOyaqeyasA0KK+yXrOyEseyXsA0KK+yXrOuPme2MlA0KK+yXrOyaqeyEnQ0KK+yXrOuRkOyDnQ0KK+yXrOyImOyaqQ0KK+yXrOyYgeyYgQ0KK+yXrOyiheu0iQ0KK+yXrOqyveyImQ0KK+yXrOyImOybkA0KK+yXrOuMgOyerA0KK+yXrOygkOq4iA0KK+yXrOyiheyInA0KK+yXrOyImOyyoA0KK+yXrOyiheyImA0KK+yXrOywveyIoA0KK+yXrOyEseyImQ0KK+yXrOyIoOyaqQ0KK+yXrOqwkeyInA0KK+yXrOynhOyLnQ0KK+yXrOyGjOyVlA0KK+yXrOyWuOyImQ0KK+yXrOyihe2YhA0KK+yXrOyerOq4sA0KK+yXrO2DnO2VnA0KK+yXrOybkOuPmQ0KK+yXrOqwkeyXsA0KK+yXrOykgOuTnQ0KK+yXrOyDgeyasQ0KK+yXrOybkOyEnQ0KK+yXrOywveq3vA0KK+yXrOuzkeyImQ0KK+yXrO2DnOyatA0KK+yXrOycoOuPmQ0KK+yXrOyYgeyImA0KK+yXrOyEseyDgQ0KK+yXrOuqheykgA0KK+yXrOyduO2YkQ0KK+yXrOu2gOqzpA0KK+yXrOyerOydvA0KK+yXrO2DnOydtA0KK+yXrOyerO2drA0KK+yXrOyEse2DnQ0KK+yXrOq4uOyImA0KK+yXrOyImOqxtA0KK+yXrOygkOyVhQ0KK+yXrOuzke2YuA0KK+yXrOuMgOyerA0KK+yXrO2MkOu0iQ0KK+yXrOygkOy2nA0KK+yXrOuzkeyEoA0KK+yXrOyEoOyasA0KK+yXrOuPmeyyoA0KK+yXrOygleq1rA0KK+yXrOyEseuhnQ0KK+yXrOyDge2YuA0KK+yXrOyDgeu2hA0KK+yXrOykkeqwkQ0KK+yXrOyYge2YhA0KK+yXrOyEseyghA0KK+yXrO2DnO2YhA0KK+yXrOyyreq4uA0KK+yXrOunjO2biA0KK+yXrOyEuOqyvQ0KK+yXrOuqheyEoA0KK+yXrO2DnOyInA0KK+yXrOyaqeuCqA0KK+yXrOyiheunjA0KK+yXrOydmOywvQ0KK+yXrO2DnOyasQ0KK+yXrOq0ke2YuA0KK+yXrO2XjOybkA0KK+yXrOycteyLnQ0KK+yXrO2VmeuPmQ0KK+yXrOy5mOyVoA0KK+yXrOuztO2YlQ0KK+yXrO2ZmOu0iQ0KK+yXrO2VtOuPmQ0KK+yXrOyihe2DnA0KK+yXrOuMgOq1rA0KK+yXrOyDgeydvA0KK+yXrO2ZjeuvvA0KK+yXrOyaqeyWkQ0KK+yXrOycpO2ZmA0KK+yXrO2YhOyImA0KK+yXrO2ZmOyImA0KK+yXrOyYpOyEnQ0KK+yXrOyerO2biA0KK+yXrOqyveuPhA0KK+yXrO2ZmOyLnQ0KK+yXrOyXsOuPhA0KK+yXrOq4sOqwkQ0KK+yXrOq4uO2DnA0KK+yXrO2ZmOyYpQ0KK+yXrOq3vOyasA0KK+yXrOyerOunjA0KK+yXrOyZleq4uA0KK+yXvOqzoeyngA0KK+yXvOyduOyXtA0KK+yXvOyYgeyekA0KK+yXvOyjvOyLnQ0KK+yXvOq4sOyynA0KK+yXvOu0ieuNlQ0KK+yXvOq4sO2ZlA0KK+yXvOyjvOyasA0KK+yXvOuMgOuTnQ0KK+yXvOuCqO2YuA0KK+yXvOycpO2DnA0KK+yXvOyerOuwsA0KK+yXvOuNleyIoA0KK+yXvOyngOyehA0KK+yXvOqwkeyEnQ0KK+yXvOuzkeuhgA0KK+yXvOyDgeyasA0KK+yXvOqyveynhA0KK+yXvOyGjOyaqQ0KK+yXvOyEne2drA0KK+yXvOyImeydtA0KK+yXvOygleydvA0KK+yXvO2YuOyasA0KK+yXvOuptOyyoA0KK+yXvOyaqeykgA0KK+yXvO2DnO2YuA0KK+yXvOygkO2VmQ0KK+yXvOuCqOuTnQ0KK+yXvOyduOyLpA0KK+yXvOyLneyEnQ0KK+yXvOq3nOywvQ0KK+yXvOqyveunjA0KK+yXvOygkOuhgA0KK+yXvOyDgeyasA0KK+yXvO2Zje2DnQ0KK+yXvOq4sOq2jA0KK+yXvOyiheuNlQ0KK+yXvOq3vOyEoA0KK+yXvOyEse2YuA0KK+yXvOyiheuPhA0KK+yXvOyihe2ZmA0KK+yXvOyYgeyDgQ0KK+yXvOyImOydtA0KK+yXvOyiheqwkQ0KK+yYiOyImO2VtA0KK+yYiOyEuOyLnQ0KK+yYiOyehOydvA0KK+yYiOynhOuwsA0KK+yYiOyaqe2VtA0KK+yYiOuqheuPmQ0KK+yYiOyKueyhsA0KK+yYiOyDgeuylA0KK+yYiOyiheudvQ0KK+yYiOuCqOuloA0KK+yYiO2ajOynhA0KK+yYiOyEse2ZmA0KK+yYiO2VnOyLnQ0KK+yYiOyEse2YuA0KK+yYiOyImO2DnA0KK+yYiOyerOyImQ0KK+yYiO2VnO2DnA0KK+yYiOq3nOyekA0KK+yYiOyYgeyaqQ0KK+yYiOyEneyXsA0KK+yYpOqwkeyEoA0KK+yYpOyDgeyInA0KK+yYpOygkOynhA0KK+yYpOygleunjA0KK+yYpOqxtOq1rQ0KK+yYpOyEne2ZjQ0KK+yYpOqyveyaqQ0KK+yYpOq3vOyerA0KK+yYpOqyveugrA0KK+yYpOyInOydtQ0KK+yYpOqwkeyZhA0KK+yYpOuqhe2RnA0KK+yYpOqyvey2nA0KK+yYpOydhOyImA0KK+yYpOyyoOyYpQ0KK+yYpOyGjOq3oA0KK+yYpOqyve2ZmA0KK+yYpOq3vO2YuA0KK+yYpOq4uOumvQ0KK+yYpOuPmeyasA0KK+yYpOqyve2ZmA0KK+yYpOqyve2RnA0KK+yYpOyiheq4sA0KK+yYpOygkO2VmQ0KK+yYpOqyve2ZmA0KK+yYpOyerOuztQ0KK+yYpOuRkOuqqA0KK+yYpOyihe2YuA0KK+yYpOq0keyEnQ0KK+yYpOq4iOyImA0KK+yYpOy5mOyLnQ0KK+yYpOq4iOyglQ0KK+yYpOq0keyXtA0KK+yYpO2MkOyaqQ0KK+yYpO2VmOq3nA0KK+yYpOyYgeunjA0KK+yYpOq0ke2DnA0KK+yYpOyEseyXtA0KK+yYpOygleydtA0KK+yYpOyaqeyLnQ0KK+yYpOq0ke2ZmA0KK+yYpOyngOyXtA0KK+yYpOu2gOq1rA0KK+yYpOuRkO2VmQ0KK+yYpOq1reywvQ0KK+yYpOy2mOq4uA0KK+yYpOqyveusuA0KK+yYpOyCvO2drA0KK+yYpOq3gOuLmA0KK+yYpOyDge2ZjQ0KK+yYpOu0ieuegA0KK+yYpOqyveunjA0KK+yYpOq3nOyLnQ0KK+yYpOyynOuCqA0KK+yYpOyduOyErQ0KK+yYpOy5mO2drA0KK+yYpOq3nOyYgQ0KK+yYpOq3nOyaqQ0KK+yYpOuwqeuNlQ0KK+yYpOq3vO2YuA0KK+yYpOq3nOyYpA0KK+yYpOygnOyEnQ0KK+yYpOuPmeuPjA0KK+yYpOq4sO2VmQ0KK+yYpOq3nOyYpA0KK+yYpOyEseuPmQ0KK+yYpOyaqeyhsA0KK+yYpOyEseyDgQ0KK+yYpOq3nO2YhA0KK+yYpO2aqOuemA0KK+yYpOyYgeyIoA0KK+yYpOyYgeyLnQ0KK+yYpOq3vOyImA0KK+yYpOuPmeyEsQ0KK+yYpOusuO2DnA0KK+yYpOuNleyEoA0KK+yYpOq3vOyLnQ0KK+yYpO2ZjeqyvQ0KK+yYpOuzkeyYpQ0KK+yYpOyaqeqyvQ0KK+yYpOq4iOydtA0KK+yYpOu2hOunkA0KK+yYpOyImOyXsA0KK+yYpOqyuOunjA0KK+yYpOq4sOyjvA0KK+yYpOuqheywrA0KK+yYpOywve2YuA0KK+yYpO2DnOyglQ0KK+yYpOq4sO2ZmA0KK+yYpOyYgeunjA0KK+yYpOyerOyEnQ0KK+yYpOuNleyaqQ0KK+yYpOq4sO2ZmA0KK+yYpOuPhOybkA0KK+yYpOq0keyEnQ0KK+yYpOqyveyXhQ0KK+yYpOuCnOyjvA0KK+yYpOq3ueyLnQ0KK+yYpOq4sOyEsQ0KK+yYpOuzkeyekA0KK+yYpOuCqOynhA0KK+yYpO2Zje2YhA0KK+yYpOqyve2DnA0KK+yYpO2DnOywrA0KK+yYpOuCqOynhA0KK+yYpOynhOy2mA0KK+yYpCDsl7ANCivsmKTsooXqs6QNCivsmKTri6zshKANCivsmKTsnqzsnbUNCivsmKTsg4HtmIQNCivsmKTrgqjsi50NCivsmKTri6ztmZgNCivsmKTtg5zslZQNCivsmKTsl7DsmqkNCivsmKTrr7zsm4UNCivsmKTrjIDqt7wNCivsmKTsnZjsnbwNCivsmKTsiJjqt5wNCivsmKTsp4TsiJgNCivsmKTrjIDsmqkNCivsmKTrgqjsnpANCivsmKTsooXqtowNCivsmKTsmqnspIANCivsmKTrjZXrp4wNCivsmKTtmLjtmY0NCivsmKTsnqztmIQNCivsmKTspIDrpr0NCivsmKTrjZXtmLgNCivsmKTsoJXsnbQNCivsmKTsmqntmZgNCivsmKTqsJXsmIENCivsmKTrj4TrjZUNCivsmKTrs5HssqANCivsmKTshLHsmqkNCivsmKTsnYDsiJgNCivsmKTrj4TtmIQNCivsmKTrqoXtmIQNCivsmKTsnqzrgpwNCivsmKTsp4Tri6wNCivsmKTrj5nsl7ANCivsmKTsm5DroZ0NCivsmKTtg5zrr7wNCivsmKTsirnsiJwNCivsmKTrj5nsl7QNCivsmKTqsIDtlZwNCivsmKTsgrzrqoUNCivsmKTsg4HtnawNCivsmKTrj5nstpgNCivsmKTrhYTtmZgNCivsmKTtmY3spJENCivsmKTqt5zsiJwNCivsmKTrj5ntmZgNCivsmKTtl4zrqqgNCivsmKTsoJDshJ0NCivsmKTshKDsnbUNCivsmKTrk53sobANCivsmKTsmbjtlqUNCivsmKTquIjrtoQNCivsmKTtg5zshJ0NCivsmKTrk53tmZgNCivsmKTtnJjtmLgNCivsmKTrs5HsnpANCivsmKTtlZnsm4UNCivsmKTrqoXroZ0NCivsmKTtmJzshLgNCivsmKTsoJDtmLgNCivsmKTsm5DslbwNCivsmKTrqoXsiJgNCivsmKTsg4HsiJwNCivsmKTsnKTtmIQNCivsmKTsooXsp4QNCivsmKTrqoXsiJkNCivsmKTtmJXtnawNCivsmKTssKzrgqgNCivsmKTtlZzshJ0NCivsmKTrqoXtnawNCivsmKTtg5ztmZQNCivsmKTshLHtmLgNCivsmKTtlZjtg5wNCivsmKTrqoXtnawNCivsmKTsnqXsoJUNCivsmKTspp3so7wNCivsmKTsmIHtlZkNCivsmKTrrLjqsJENCivsmKTstpjsiJgNCivsmKTshLHtnawNCivsmKTsi5zrnpgNCivsmKTrrLjtmZgNCivsmKTsoJXsp4QNCivsmKTtlZnrjZUNCivsmKTsoJXsoJUNCivsmKTrs5HqtowNCivsmKTsmKXsl7ANCivsmKTrjZXrkZANCivsmKTqta3rj4QNCivsmKTrs5HsiJgNCivsmKTsnqzsmKUNCivsmKTrj5nsiJwNCivsmKTsmIHsmIENCivsmKTrs5HssqANCivsmKTsnKDsmKUNCivsmKTtg5zqt5wNCivsmKTsgrzsl7ANCivsmKTrs5Htm4gNCivsmKTshLHssYQNCivsmKTtg5zrsLANCivsmKTsg4HsnbQNCivsmKTrs7XrgqgNCivsmKTsoJDtlZwNCivsmKTsmKXsiJkNCivsmKTsmIHrjZUNCivsmKTrtInstpgNCivsmKTssq3rsLANCivsmKTsmqntmLgNCivsmKTtmITshJ0NCivsmKTrtIntmIQNCivsmKTtlYTsp4ANCivsmKTqt5ztmY0NCivsmKTssqDslZQNCivsmKTrtoDquLgNCivsmKTqsr3si50NCivsmKTsnqzrj5kNCivsmKTsmIHrqqkNCivsmKTrtoTshJ0NCivsmKTsmqnsmYQNCivsmKTsooXtmZgNCivsmKTshLjrsLENCivsmKTsgrzsmqkNCivsmKTsoJXtkZwNCivsmKTqt5zqtZANCivsmKTshJ3qt6ANCivsmKTsgrzsmqkNCivsmKTsmIHsiJwNCivsmKTqtazssqANCivsmKTsiJjtmIQNCivsmKTsg4Hqt7wNCivsmKTrp4zssqANCivsmKTsg4HsmKUNCivsmKTsiJzsiJgNCivsmKTsg4Hrp4wNCivsmKTrj5nstpwNCivsmKTssL3shLgNCivsmKTssL3tmIQNCivsmKTsg4HshLgNCivsmKTsgrzrk50NCivsmKTsmIHsmIENCivsmKTtmITssqANCivsmKTsg4HsobANCivsmKTsiJzqtowNCivsmKTsooXqt5wNCivsmKTshKDtmZgNCivsmKTshJ3rp4wNCivsmKTsnKTssL0NCivsmKTsiJzsoJUNCivsmKTrjIDsmIENCivsmKTshJ3siJwNCivsmKTssL3tmLgNCivsmKTtnazqtawNCivsmKTsiJjqs4QNCivsmKTshJ3tmIQNCivsmKTsmIHsmqkNCivsmKTsmrTqta0NCivsmKTsooXsiKANCivsmKTshKDrr7gNCivsmKTrs7XsnoQNCivsmKTsmIHrjZUNCivsmKTruJ3siJkNCivsmKTshKDsiJkNCivsmKTsnqztlZkNCivsmKTsiJntg5wNCivsmKTrjZXshJ0NCivsmKTshLHqt7wNCivsmKTsiJzsm5ANCivsmKTshLHshJ0NCivsmKTssqDsl7ANCivsmKTshLHrk50NCivsmKTsp4TqtawNCivsmKTrs7Xqt5wNCivsmKTquLjsobANCivsmKTshLHsl7QNCivsmKQg7JqxDQor7Jik67OR7KGwDQor7Jik6rec7ZWcDQor7Jik7ISx7LCsDQor7Jik6reA7IicDQor7Jik7JiB7Je0DQor7Jik6rOk7KGwDQor7Jik7IS46rSRDQor7Jik7KCV6rOkDQor7Jik7J287J21DQor7Jik6riw7Zi4DQor7Jik7IS47JuFDQor7Jik6rSR67SJDQor7Jik7IOB7IiYDQor7Jik7IiY7JqxDQor7Jik7IS47JuQDQor7Jik7J6s7JiBDQor7Jik7KKF7IicDQor7Jik67SJ7KGwDQor7Jik7IS47J24DQor7Jik7KeE7KeEDQor7Jik7Jqp7LKgDQor7Jik7Jil6rWsDQor7Jik7IS47J28DQor7Jik7Jyk7JqpDQor7Jik7ZuE7IigDQor7Jik7ZWE7Je0DQor7Jik7IiY7ZiEDQor7Jik7J6s7J6QDQor7Jik7ZeM7ISdDQor7Jik66qF7Z2sDQor7Jik7IiY7ZmYDQor7Jik64yA64+EDQor7Jik7IiY7ZuIDQor7Jik7IOB7JiBDQor7Jik7Iic7ZmUDQor7Jik7IS47J6QDQor7Jik7Jqp7IudDQor7Jik7J6s7J6QDQor7Jik7Iig7ZiEDQor7Jik7Zqo6recDQor7Jik7JiB7JuQDQor7Jik6rCR7ZmYDQor7Jik7Iq57Je0DQor7Jik65GQ7ZWZDQor7Jik7KCV7Zi4DQor7Jik7Jil7KSADQor7Jik7Jew7ISdDQor7Jik7J6s7IiYDQor7Jik6riI64+MDQor7Jik6reA64+ZDQor7Jik7Jew7Zi4DQor7Jik7ZWc7JeFDQor7Jik7YOc6raMDQor7Jik7KCV7Je0DQor7Jik7Je86rCBDQor7Jik7Z2l7IicDQor7Jik7IOB7ISgDQor7Jik6riw67O1DQor7Jik7JiB7IudDQor7Jik66qF64+ZDQor7Jik7J217JqwDQor7Jik66eQ6riwDQor7Jik7JiB7ZmUDQor7Jik7IiY7J6QDQor7Jik64yA7KSADQor7Jik7Iic7Zi4DQor7Jik7JiB7ZmYDQor7Jik67aA6rCRDQor7Jik7KCV7LKgDQor7Jik7JuQ7KSADQor7Jik7Jik7ZmYDQor7Jik7IyN6raMDQor7Jik6rSA64+EDQor7Jik7ISd7IOBDQor7Jik7Jil7ISgDQor7Jik7ZWc7Je0DQor7Jik6rec7ISgDQor7Jik7Jqp7IudDQor7Jik7JmV7IiYDQor7Jik7IOB7Z2gDQor7Jik67KU7IicDQor7Jik7J247J21DQor7Jik7Jqp7IigDQor7Jik6rK97IicDQor7Jik7KCV7JqpDQor7Jik7ISx7Zi4DQor7Jik7Jqw7LaYDQor7Jik7IiZ6rK9DQor7Jik66y467mIDQor7Jik66eM7IiYDQor7Jik7Jq07JqpDQor7Jik7YOc7IOBDQor7Jik7LC97IiYDQor7Jik6rCR7ZWcDQor7Jik7JuQ66y4DQor7Jik7JiB7IStDQor7Jik7ZW067CwDQor7Jik7KSA7IiYDQor7Jik7JuQ67CwDQor7Jik67OR7KCVDQor7Jik7Lmg6regDQor7Jik7JiB7Je0DQor7Jik7JuQ7ISgDQor7Jik7J6s7J6sDQor7Jik7ZmU6riwDQor7Jik7IiY7IStDQor7Jik7JuQ7IiYDQor7Jik66y466qoDQor7Jik7J6E7Z2sDQor7Jik7IK87KeEDQor7Jik7JuU67SJDQor7Jik7Jq07JilDQor7Jik7KKF7ZmYDQor7Jik7Jik7ZWZDQor7Jik7Jyk6recDQor7Jik7J6s7J6sDQor7Jik7J6l6riwDQor7Jik67OR7ZmNDQor7Jik7Jyk67O1DQor7Jik7Jil7Zi4DQor7Jik7Z2s7Z2sDQor7Jik64+Z64+MDQor7Jik7Jyk7ZW0DQor7Jik7JiB7J6QDQor7Jik7KSR7LCsDQor7Jik7J2E7JmEDQor7Jik7Jyk7ZmYDQor7Jik7J6s7ZmYDQor7Jik67O17J6sDQor7Jik7Jyk7KeEDQor7Jik7J2A64+EDQor7Jik7ISg6re8DQor7Jik67OR7LKgDQor7Jik7IK87ISdDQor7Jik7J2A7ZmYDQor7Jik7ZW064WEDQor7Jik7Jyk7IudDQor7Jik7ZWZ64+ZDQor7Jik7J2Y7Je0DQor7Jik7Iic7ZmYDQor7Jik64yA7Je0DQor7Jik7KKF7Jq0DQor7Jik7J247ZiEDQor7Jik7ISx7KO8DQor7Jik7IOB7ZmUDQor7Jik7IK87Zi4DQor7Jik7J287ISxDQor7Jik7JiB67CxDQor7Jik7JiB7JuQDQor7Jik7KCV6rG4DQor7Jik7J6E7ISdDQor7Jik6rSR6rWsDQor7Jik6re87ZWcDQor7Jik7IOB7Zi4DQor7Jik7J6Q7KKFDQor7Jik6rec6riwDQor7Jik7ISx6rSRDQor7Jik7KO87JqpDQor7Jik7J6s6rOkDQor7Jik7J6l66qoDQor7Jik7KCV6recDQor7Jik66+46rK9DQor7Jik7J6s6raMDQor7Jik7Zic7Zi4DQor7Jik7Jyk7ZGcDQor7Jik7IaM7YOcDQor7Jik7J6s6re8DQor7Jik7JiB7YyUDQor7Jik7KCV7IStDQor7Jik7YOc7JuQDQor7Jik7J6s64+ZDQor7Jik642V7JuFDQor7Jik7YOc7Je0DQor7Jik7ZWc7ISxDQor7Jik7J6s67KUDQor7Jik7Jyk7Zi4DQor7Jik7KCc67aEDQor7Jik7JuQ7YOcDQor7Jik7J6s7ISdDQor7Jik7JiB6riwDQor7Jik7JuQ7KO8DQor7Jik67OR7Z2gDQor7Jik7J6s7IiYDQor7Jik7LCs7ISdDQor7Jik7YOc7J20DQor7Jik7KCV7IOBDQor7Jik7J6s7IicDQor7Jik7ZeM6riwDQor7Jik66eJ7KCVDQor7Jik7IOB6riwDQor7Jik7J6s7JiBDQor7Jik64yA7ZalDQor7Jik7IOB7ZiBDQor7Jik7ISg67CwDQor7Jik7J6s7JqpDQor7Jik7IaM7KeEDQor7Jik6rWt7LaYDQor7Jik7J2467SJDQor7Jik7J6s7JqpDQor7Jik7Iq57JuQDQor7Jik7Z2s7KGwDQor7Jik65GQ6re8DQor7Jik7J6s7JqwDQor7Jik6rK966y4DQor7Jik7ZiV7JilDQor7Jik7J287Jq0DQor7Jik7J6s7JykDQor7Jik7JiB64yADQor7Jik7ZmN6ri4DQor7Jik7YOc64+EDQor7Jik7J6s7J28DQor7Jik7LC97ZuIDQor7Jik7YOd7Z2gDQor7Jik7ISg7ZWZDQor7Jik7J6s7LKcDQor7Jik7IOB7J28DQor7Jik67OR7KKFDQor7Jik7KCQ67O0DQor7Jik7J6s7LaYDQor7Jik7Jqp7ISgDQor7Jik66eM7KSADQor7Jik6rSR66eMDQor7Jik7KCQ7IicDQor7Jik67O17Ja1DQor7Jik7YOc7YOcDQor7Jik7Iic6rOkDQor7Jik7KCQ7ZmYDQor7Jik7J6l7J24DQor7Jik7KeE7J24DQor7Jik7LC96regDQor7Jik7KCV656YDQor7Jik7IOB7JewDQor7Jik7IOB7JuQDQor7Jik67OR7JqwDQor7Jik7KCV7JWgDQor7Jik66y46re8DQor7Jik7ZiE6recDQor7Jik7J6s7IStDQor7Jik7KCV7Je0DQor7Jik7J6l642VDQor7Jik64+Z6rOkDQor7Jik6rK97ISgDQor7Jik7KCV7Je0DQor7Jik7JiB7JqxDQor7Jik6rCR7ZeMDQor7Jik7IOB6riwDQor7Jik7KCV7ZiEDQor7Jik7Iq56rWsDQor7Jik7KCV7JewDQor7Jik7ZiE7KSADQor7Jik7KCV7Zi4DQor7Jik7Jyk7LacDQor7Jik66+87ISgDQor7Jik7Jyk7IOBDQor7Jik7KCV7ZmYDQor7Jik642V7LKgDQor7Jik66Gd7IiZDQor7Jik6rSR64yADQor7Jik7KCV7ZmYDQor7Jik7J2A7JqxDQor7Jik7J6s7J6sDQor7Jik7YOc64+MDQor7Jik7KCc7Je0DQor7Jik7J6s7JilDQor7Jik7JiB7KO8DQor7Jik67SJ7IiYDQor7Jik7KKF7IiYDQor7Jik7IOB7J6sDQor7Jik7KCV7ISgDQor7Jik7IK87J28DQor7Jik7KKF7YOBDQor7Jik7KCV7JiBDQor7Jik7KKF7JilDQor7Jik7JuQ6regDQor7Jik7KKF7Zi4DQor7Jik7J6s7ZmUDQor7Jik7KKF66y4DQor7Jik7JuQ7IicDQor7Jik7KKF7ZmUDQor7Jik7ISx7J28DQor7Jik7JiB67O1DQor7Jik7KeE7Zi4DQor7Jik7KKF7ZmYDQor7Jik7ISg6rK9DQor7Jik7J2Y7JewDQor7Jik6re87IOBDQor7Jik7KO867KUDQor7Jik7Z2s7Zi4DQor7Jik6rec7IiYDQor7Jik6ri46riwDQor7Jik7KSA7ZGcDQor7Jik66qF7IudDQor7Jik7YOc7ZiBDQor7Jik7YOc7ZmYDQor7Jik7KSA7ZiEDQor7Jik7JuQ7ISxDQor7Jik7ZW07J6lDQor7Jik7JiB6recDQor7Jik7KSA7Zi4DQor7Jik67OR7ISdDQor7Jik7Zi467CwDQor7Jik7KKF7KSADQor7Jik7KSA7ZmYDQor7Jik7KCQ7Zi4DQor7Jik7J6s7Zy0DQor7Jik64Ko7IiYDQor7Jik7KSA7Z2sDQor7Jik64Ko7ZiEDQor7Jik7JiB7IicDQor7Jik7ZmN7KKFDQor7Jik7KSR7Je0DQor7Jik66qF7LKgDQor7Jik6rOE7Jq0DQor7Jik7ZmN6rG0DQor7Jik7LC96rWtDQor7Jik66y07Zi4DQor7Jik7Ja47IiYDQor7Jik6ri47ISxDQor7Jik7LC97ZmYDQor7Jik6riI7YOcDQor7Jik7IOB7JiBDQor7Jik7LCs6rOEDQor7Jik7LaY7J6QDQor7Jik7Jqw7IOdDQor7Jik67O07KGwDQor7Jik7JiB7ISxDQor7Jik7Lmg6recDQor7Jik7KKF7JiBDQor7Jik66eQ64+EDQor7Jik67SJ7IigDQor7Jik7Lmg7JilDQor7Jik7IiY7ZmYDQor7Jik7JiB7ISxDQor7Jik7Jqp7ZWEDQor7Jik7Lmg7ZmYDQor7Jik64KZ7KeEDQor7Jik7J6s66GcDQor7Jik64+Z7JqpDQor7Jik7Lmg7ZmYDQor7Jik7KCV67SJDQor7Jik7KKF7IicDQor7Jik7Jqp7IudDQor7Jik7YOA67aEDQor7Jik7KCQ6recDQor7Jik7KCV7LaYDQor7Jik7ISx7YOcDQor7Jik7YOc7IiYDQor7Jik7YyQ7JewDQor7Jik7KCQ7IiZDQor7Jik6riw7IicDQor7Jik7YOc7J6sDQor7Jik7ZmN7ZWcDQor7Jik7ISd7J2YDQor7Jik64yA7IiZDQor7Jik7YOc7KSADQor7Jik66qF7Zi4DQor7Jik7KSA7IiZDQor7Jik64+Z7ISsDQor7Jik7YOc7KeEDQor7Jik7JiB7J28DQor7Jik7J287ZWZDQor7Jik7KKF7IudDQor7Jik7YOc7Zi4DQor7Jik7Jqx7KSADQor7Jik64+Z7IudDQor7Jik7JuU7IiYDQor7Jik7YOc7ZmYDQor7Jik7LCs7IiYDQor7Jik7YOc7ISdDQor7Jik7KKF7IudDQor7Jik7YyQ7KeEDQor7Jik7JiB6riwDQor7Jik64+Z64usDQor7Jik66y47ZqoDQor7Jik7ZWZ6re8DQor7Jik7JiB66a8DQor7Jik7IOB7ZiEDQor7Jik7Jqp7IiYDQor7Jik7ZWc6raMDQor7Jik6rSR7JqwDQor7Jik64us7Z2sDQor7Jik64Ko7IusDQor7Jik7ZWc7LKgDQor7Jik7JiB6riwDQor7Jik64+I7IiYDQor7Jik7Iic7JWUDQor7Jik7ZW06re8DQor7Jik67Cp6rOgDQor7Jik7YOc7Je0DQor7Jik7JuQ6re8DQor7Jik7ZW066eMDQor7Jik7ZWZ7J20DQor7Jik7JiB67aEDQor7Jik7J2Y7Je0DQor7Jik7ZW07LCsDQor7Jik7Jqp64+ZDQor7Jik7J6s6riwDQor7Jik64+Z7LKgDQor7Jik7ZeM7LKgDQor7Jik7JiB7YOdDQor7Jik66eQ7ZmNDQor7Jik7ZeM6rWQDQor7Jik7Zic7KCVDQor7Jik7Jyk7IicDQor7Jik7KO8656YDQor7Jik7JiB7J2EDQor7Jik7Zi47J20DQor7Jik6rSR6ri4DQor7Jik7ZWc7Zi4DQor7Jik7KSR6rWQDQor7Jik7Zi47LCsDQor7Jik7Iq57ZeMDQor7Jik7IOB7ISxDQor7Jik6riw656ADQor7Jik7ZmU7J6QDQor7Jik66y46riwDQor7Jik6rWQ7Zi4DQor7Jik7YOc7LKgDQor7Jik7ZmU7KeEDQor7Jik7KCQ7YOdDQor7Jik7KCV7ZmYDQor7Jik7IOB64+ZDQor7Jik7Zqo7J6sDQor7Jik7ZWc6rCRDQor7Jik7KeE7J24DQor7Jik66y47J20DQor7Jik7Z2l7Je0DQor7Jik7Jil7ZWcDQor7Jik7ZiE7Z2gDQor7Jik7Jqp6re8DQor7Jik7Z2s7IiZDQor7Jik7IK87ZmYDQor7Jik7Lap7LKcDQor7Jik6riw7Jq0DQor7Jil7Jyg67SJDQor7Jil7KCV7YyUDQor7Jil7J6s7KO8DQor7Jil7KKF656YDQor7JmV7YOc7Zi4DQor7JmV64+Z7IiZDQor7JmV67OR7IOBDQor7JmV7IOB7KCVDQor7Jqw64+E7Je0DQor7Jqw642V656ADQor7Jqw7LCs7Zi4DQor7Jqw64W47KGwDQor7Jqw66qF6rWsDQor7Jqw6re867O1DQor7Jqw6rWQ64yADQor7Jqw7IiY65OdDQor7Jqw67SJ7LKcDQor7Jqw7J2Y7IiYDQor7Jqw7KKF7LKgDQor7Jqw7JiB7ZiEDQor7Jqw7IOB7ISgDQor7Jqw65GQ7LKgDQor7Jqw64+E66qFDQor7Jqw7KCQ7JewDQor7Jqw7IOB7ISgDQor7Jqw7J6l7IiYDQor7Jqw7ZWc7JyoDQor7Jqw7Jqp6riwDQor7Jqw7IOB7IiYDQor7Jqw7Kad6rOkDQor7Jqw7ISx7Je0DQor7Jqw66ek7KO8DQor7Jqw7IOB7IiYDQor7Jqw64yA7IudDQor7Jqw7Jqp64KoDQor7Jqw6rec66qpDQor7Jqw7IOB7ZiEDQor7Jqw7KKF7YOcDQor7Jqw7KCV7J6QDQor7Jqw642V7KCcDQor7Jqw7ISd7KGwDQor7Jqw7Iic7J28DQor7Jqw7J6s7J6sDQor7Jqw7LC97IicDQor7Jqw7ISx6regDQor7Jqw67OR66+8DQor7Jqw7KeE7IiYDQor7Jqw67OR7Zi4DQor7Jqw7ISx7JqpDQor7Jqw7LC97Zi4DQor7Jqw7Jqp64yADQor7Jqw7KKF7JykDQor7Jqw7IS46re8DQor7Jqw7J6s66qFDQor7Jqw7Iic7ZmUDQor7Jqw6rK97IiZDQor7Jqw7IiY7JiBDQor7Jqw7ISg6rK9DQor7Jqw66eJ7IiYDQor7Jqw7IaM7KGwDQor7Jqw7IiY7ZWYDQor7Jqw7JiB6rWQDQor7Jqw6rec67O0DQor7Jqw7KKF7ZalDQor7Jqw7Iic66GADQor7Jqw7KKF7IigDQor7Jqw7J2867O1DQor7Jqw66eM7JilDQor7Jqw7Iuk7JqpDQor7Jqw7Jyk7IiYDQor7Jqw7KKF7IiYDQor7Jqw6rec7IiYDQor7Jqw7JiB66y4DQor7Jqw6re87IigDQor7Jqw7J6s7JiBDQor7Jqw7Jqp7JiBDQor7Jqw7JiB7YOcDQor7Jqw7KKF7KCQDQor7Jqw66y47ZeMDQor7Jqw7KKF7LCoDQor7Jqw7Jil6riwDQor7Jqw7IiY7J21DQor7Jqw6rCR7JqwDQor7Jqw7ZWE6recDQor7Jqw7JuQ7ZmYDQor7Jqw7Z2s7JWUDQor7Jqw7KCV7IudDQor7Jqw7KSR7Zi4DQor7Jqw7JyE7ISgDQor7Jqw66qF7IiYDQor7Jqw7Jqw7JWgDQor7Jqw7KKF7IicDQor7Jqw7J246rG4DQor7Jqw6reA7ZmUDQor7Jqw7Iic7IiZDQor7Jqw7Ja47ISgDQor7Jqw7J246rG4DQor7Jqw7KKF7Je0DQor7Jqw66qF7ZiEDQor7Jqw7IiY6raMDQor7Jqw7KCV7IicDQor7Jqw67KU7Je0DQor7Jqw7KeE7IukDQor7Jqw64+Z7ZmYDQor7Jqw7KCV7J6EDQor7Jqw66y47IiYDQor7Jqw66eM7YOcDQor7Jqw7JiB66qFDQor7Jqw7KKF6rOkDQor7Jqw7YOc6recDQor7Jqw7J6s66qoDQor7Jqw6rSR7IudDQor7Jqw7KKF67O0DQor7Jqw7ZmU7LKgDQor7Jqw67OR7ISdDQor7Jqw67OR7IStDQor7Jqw7KKF7Je0DQor7Jqw6rCR66y4DQor7Jqw6rCR7ZWYDQor7Jqw7J287ZmYDQor7Jqw7KKF7ZWEDQor7Jqw7ZmN7IudDQor7Jqw7Iic7IudDQor7Jqw7KeE6rOkDQor7Jqw7KKF7ZWZDQor7Jqw7J6s7JilDQor7Jqw7KSR66qpDQor7Jqw7Jik7KGwDQor7Jqw7KKF7ZmYDQor7Jqw7Iic7IiYDQor7Jqw66eM7IigDQor7Jqw7Zi47IiYDQor7Jqw7KKF7Z2sDQor7Jqw7J6s7ZmYDQor7Jqw7Jyk7ZW0DQor7Jqw7IOB66y4DQor7Jqw7KeE7Zi4DQor7Jqw7Jil7ISxDQor7Jqw7JiB7ISxDQor7Jqw6rO164KoDQor7Jqw7LC97ZqoDQor7Jqw66eM6riwDQor7Jqw7KKF7JykDQor7Jqw7IyN7JqpDQor7Jqw7LmY7ZmNDQor7Jqw64+Z66y4DQor7Jqw67SJ7KCVDQor7Jqw7KCQ7ZWZDQor7Jqw7YOc7IStDQor7Jqw67OR7IicDQor7Jqw7KKF7J6QDQor7Jqw7Jqp67O0DQor7Jqw7ZaJ7J6QDQor7Jqw7ZmN7KO8DQor7Jqw7IaM7ZiEDQor7Jqw7J287Zi4DQor7Jqw7ZmU7LaYDQor7Jqw7IOB7YOcDQor7Jqw7Iic64KoDQor7Jqw7J207IigDQor7Jqw7Z2s64+EDQor7Jqw7ZmN7IOdDQor7Jqw7KO87KKFDQor7Jqw7Jqw7ZiBDQor7Jqw7Z2s7KGwDQor7Jqw7ZWZ7IOBDQor7Jqw642V7IStDQor7Jqw7Zic7IiZDQor7JuQ7JiB7JilDQor7JuQ7Jew6recDQor7JuQ7ZuI6recDQor7JuQ7YOc7J6sDQor7JuQ7Jqp7KO8DQor7JuQ7ISx65OdDQor7JuQ7IOB6rOkDQor7JuQ7YOc6riIDQor7JuQ7KKF6ri4DQor7JuQ7JuQ656YDQor7JuQ67SJ656YDQor7JuQ7Iic7IiYDQor7JyE7ISx6riwDQor7JyE7Iic6recDQor7JyE7YyQ7Z2sDQor7JyE7ZiV642VDQor7Jyg6rCR7JqpDQor7Jyg7ZmU66qpDQor7Jyg6rec67aEDQor7Jyg7J216rWtDQor7Jyg6rCR7KeEDQor7Jyg7ZW064uoDQor7Jyg7IOB6re8DQor7Jyg7KKF7ISxDQor7Jyg6rK97IiYDQor7Jyg7ZiE7IusDQor7Jyg7J247ISgDQor7Jyg7Jqp7IudDQor7Jyg6rK97Je0DQor7Jyg7IOB7ISgDQor7Jyg7ZWc642VDQor7Jyg7LKc7LacDQor7Jyg6rK97J6sDQor7Jyg7J6l7IiZDQor7Jyg7Zic7Je0DQor7Jyg6rWQ7JmEDQor7Jyg6rK97J6sDQor7Jyg7KCV7IiYDQor7Jyg6reA66+4DQor7Jyg67aE7IudDQor7Jyg6rK97KKFDQor7Jyg7Z2s7J28DQor7Jyg7Iic7IudDQor7Jyg7J2Y7IiYDQor7Jyg6rK97YyUDQor7Jyg7ISd7ISgDQor7Jyg7IiZ7IiYDQor7Jyg7Zqo7LaYDQor7Jyg6rK97Z2sDQor7Jyg7LaY7ISgDQor7Jyg7Zic7ZmYDQor7Jyg7YyQ7IigDQor7Jyg6rOE7Je0DQor7Jyg7Iic7LKcDQor7Jyg7JiB7IicDQor7Jyg6rCR7ISdDQor7Jyg6rSR7Je0DQor7Jyg6rec7LacDQor7Jyg65GQ6rWsDQor7Jyg7IiY7Zi4DQor7Jyg6rSR7JqwDQor7Jyg7LaY66eMDQor7Jyg7YOc7ZW0DQor7Jyg64+Z64+ZDQor7Jyg6rSR7J21DQor7Jyg64us7IiYDQor7Jyg67OR7IOdDQor7Jyg7KCV7IudDQor7Jyg6rSR7J6QDQor7Jyg7KCV7ISdDQor7Jyg66eM656RDQor7Jyg7YyQ7Z2sDQor7Jyg6reA67aEDQor7Jyg64+Z7JikDQor7Jyg7J6s6re8DQor7Jyg67SJ7ZWEDQor7Jyg6reA7JewDQor7Jyg7Jqp7IiYDQor7Jyg6rK96regDQor7Jyg67OR64yADQor7Jyg6re867CwDQor7Jyg7J2Y64+ZDQor7Jyg6rK97KO8DQor7Jyg7J6s6re8DQor7Jyg6re87ISgDQor7Jyg67Cp7Zi4DQor7Jyg7KCV7J20DQor7Jyg7J6s7ISgDQor7Jyg6re87IudDQor7Jyg7J246raMDQor7Jyg7Z2s7ISgDQor7Jyg6riw7ISxDQor7Jyg6riw67KUDQor7Jyg7ISx7IiZDQor7Jyg7IOB7ISdDQor7Jyg7IiY7JuQDQor7Jyg6riw7J6sDQor7Jyg7ZmY7ZiVDQor7Jyg7YOc6re8DQor7Jyg64uk7IiYDQor7Jyg6ri464+MDQor7Jyg7KSR7KCVDQor7Jyg66eM67CwDQor7Jyg7Zi46raMDQor7Jyg64Ko7J6sDQor7Jyg7J287KCVDQor7Jyg7ZW07JewDQor7Jyg67SJ7Z2sDQor7Jyg64us7IiYDQor7Jyg7Iic7IiYDQor7Jyg7YOc6riwDQor7Jyg64+Z7IicDQor7Jyg64yA6re8DQor7Jyg7Jqp6rWsDQor7Jyg6riw7JWFDQor7Jyg6rG07LKgDQor7Jyg64yA6re8DQor7Jyg7LKt7Z2sDQor7Jyg64yA7ZmYDQor7Jyg7IOB7ZmYDQor7Jyg64yA66eMDQor7Jyg7JiB7IucDQor7Jyg7ISx7IiZDQor7Jyg7JiB7ISxDQor7Jyg64yA7JuQDQor7Jyg7KKF7ZGcDQor7Jyg7Iic6riwDQor7Jyg7JiB7IiYDQor7Jyg642V7ZmYDQor7Jyg65GQ7KCVDQor7Jyg6riw7ISgDQor7Jyg7J6s7ZmYDQor7Jyg642V7Z2sDQor7Jyg7Jik67CwDQor7Jyg7ZWZ67KUDQor7Jyg7Zi47ZiEDQor7Jyg64+Z7J28DQor7Jyg64us7IiYDQor7Jyg7LKt7IudDQor7Jyg66qF7JuFDQor7Jyg64+Z7J6sDQor7Jyg7ZiE7IiYDQor7Jyg7ZW064+MDQor7Jyg6rSR67SJDQor7Jyg64+Z7Z2sDQor7Jyg7Iic7ZuIDQor7Jyg7ZWc67SJDQor7Jyg7JiB7LmgDQor7Jyg65GQ7IudDQor7Jyg7KKF64+EDQor7Jyg66y47J6EDQor7Jyg64yA7Z2sDQor7Jyg65GQ7JewDQor7Jyg7IK87Zi4DQor7Jyg7Zi47YOdDQor7Jyg7Jil7ZiEDQor7Jyg65Od7ZmYDQor7Jyg6rCV7IiYDQor7Jyg7J287JuFDQor7Jyg66y07LCsDQor7Jyg66eM7IStDQor7Jyg64Ko64KoDQor7Jyg7Lmg6rWtDQor7Jyg6rec7ZmYDQor7Jyg66eM7J6sDQor7Jyg7Jqp7KCVDQor7Jyg67OR6riwDQor7Jyg7KKF7IS4DQor7Jyg66eQ7J6EDQor7Jyg64yA7ZW0DQor7Jyg7Jqp7IudDQor7Jyg7ZmN7Z2sDQor7Jyg66qF64yADQor7Jyg7J6s7Zi4DQor7Jyg7KeE64KoDQor7Jyg66y4642VDQor7Jyg66qF7Je0DQor7Jyg64+Z7JqwDQor7Jyg7ZiV7LC9DQor7Jyg7Jyk7J21DQor7Jyg66qF7J2YDQor7Jyg7JiB7Je0DQor7Jyg7KKF7J28DQor7Jyg7ZeM64KoDQor7Jyg66y07IOBDQor7Jyg6reA7JqwDQor7Jyg7ZeM7ZWEDQor7Jyg7LKg7Je0DQor7Jyg66y07ZWYDQor7Jyg7Jik6rK9DQor7Jyg7J6s7KCEDQor7Jyg67O17JiBDQor7Jyg66y47J6sDQor7Jyg66qF64+EDQor7Jyg7J6s7JesDQor7Jyg7Iuk7J6sDQor7Jyg66y47J6sDQor7Jyg7Iic7Z2sDQor7Jyg7J2Y7IiZDQor7Jyg7KCQ7ZmUDQor7Jyg66+47JiBDQor7JygIO2biA0KK+ycoOyDgeqyvQ0KK+ycoOuzkeyImA0KK+ycoOuvvOyekA0KK+ycoOyjvOqwkQ0KK+ycoO2DnO2DnA0KK+ycoOyInOu0iQ0KK+ycoOuwsOq3vA0KK+ycoOyYpOyIoA0KK+ycoOuPmeynhA0KK+ycoO2DgOumrA0KK+ycoOuzkeq0gA0KK+ycoOuPmeyImA0KK+ycoOyYgeuNlQ0KK+ycoOyerO2YhA0KK+ycoOuzkeq2jA0KK+ycoO2aqOyhsA0KK+ycoOyDgeyekA0KK+ycoOuNleyaqQ0KK+ycoOuzkeq3nA0KK+ycoOuqheq1rA0KK+ycoOu0ie2ajA0KK+ycoOuzte2drA0KK+ycoOuzkeq4uA0KK+ycoOq4sOyjvA0KK+ycoOyEseyLnQ0KK+ycoOuPmeyLnQ0KK+ycoOuzkeuMgA0KK+ycoOuMgOyImA0KK+ycoOyGjOyaqQ0KK+ycoOygkOyYgQ0KK+ycoOuzkeuNlQ0KK+ycoOygkOyEsQ0KK+ycoOyYgeycpA0KK+ycoOyEpOyImQ0KK+ycoOuzkeuRkA0KK+ycoOy2mOyYgQ0KK+ycoOykkeyhsA0KK+ycoOyDgeyihQ0KK+ycoOuzkeuemA0KK+ycoOqwkeyyoA0KK+ycoOyYgeunkA0KK+ycoOynhOyynA0KK+ycoOuzkeuhnQ0KK+ycoOyYge2YuA0KK+ycoO2YhOq3nA0KK+ycoOyYge2YuA0KK+ycoOuzkeustQ0KK+ycoOyduOykgA0KK+ycoOyxhOyEnQ0KK+ycoO2ZmOyImA0KK+ycoOuzkeustQ0KK+ycoOyYge2ctA0KK+ycoO2YhOyekA0KK+ycoOq3vOyaqQ0KK+ycoOuzkeusuA0KK+ycoOyCvOuemA0KK+ycoOyEoO2DnQ0KK+ycoOyehOq4uA0KK+ycoOuzkeuwsA0KK+ycoOustOyXtA0KK+ycoOyXsOuztQ0KK+ycoOq4sOygnA0KK+ycoOuzkeyEnQ0KK+ycoOyehOyImA0KK+ycoO2YuOq1kA0KK+ycoOyCvOynhA0KK+ycoOuzkeyErQ0KK+ycoO2YhOuPmQ0KK+ycoOyihe2VmQ0KK+ycoOyYge2YuA0KK+ycoOuzkeyImA0KK+ycoOy2mOuCqA0KK+ycoOygleyInA0KK+ycoOycpOq4uA0KK+ycoOuzkeyInA0KK+ycoOyaqeq3nA0KK+ycoOq4sOyLnQ0KK+ycoOyKueuegA0KK+ycoOuzkeyXtA0KK+ycoOygleqyvQ0KK+ycoOq4iO2MlA0KK+ycoOyImeybkA0KK+ycoOuzkeyYgQ0KK+ycoOuqheuhnA0KK+ycoOyYgeyXtA0KK+ycoOuzkeyYpQ0KK+ycoOuzkeyYpQ0KK+ycoOuPmeusuA0KK+ycoOywveyDnQ0KK+ycoOyaqe2ZqQ0KK+ycoOuzkeyZhA0KK+ycoOydke2drA0KK+ycoOyYgeyaqQ0KK+ycoOuNleuFgA0KK+ycoOuzkeyZuA0KK+ycoOyjvOqwkQ0KK+ycoOyYgeyInA0KK+ycoOyEuO2YuA0KK+ycoOuzkeyaqQ0KK+ycoOyInOyInA0KK+ycoO2DnO2YuA0KK+ycoOybkO2VnA0KK+ycoOuzkeybkA0KK+ycoOqyveyErQ0KK+ycoOyasOyErQ0KK+ycoO2drOyasQ0KK+ycoOuzkeybkA0KK+ycoOybkOuLrA0KK+ycoOyDgeyDgQ0KK+ycoOywqOusuA0KK+ycoOuzkeycpA0KK+ycoO2ZjeyVlA0KK+ycoOyImOyImA0KK+ycoOyEseuTnQ0KK+ycoOuzkeydgA0KK+ycoOq0keuMgA0KK+ycoO2DnOyXrA0KK+ycoOyerOyIoA0KK+ycoOuzkeydtA0KK+ycoOyYpeuwsA0KK+ycoOygleq4sA0KK+ycoOyEneumrA0KK+ycoOuzkeyjvA0KK+ycoO2XjOyekA0KK+ycoOyihe2ZmA0KK+ycoOyEneygnA0KK+ycoOuzkeyjvA0KK+ycoOuNleyLnQ0KK+ycoOyYgeyInA0KK+ycoOyaqeusuA0KK+ycoOuzkeyjvA0KK+ycoOy2mOyYgQ0KK+ycoOq3vOyEnQ0KK+ycoOuqheq3vA0KK+ycoOuzkeyyoA0KK+ycoOyDgeyImA0KK+ycoOyInOyaqQ0KK+ycoOyInOu0iQ0KK+ycoOuzkeyyoA0KK+ycoOyiheudvQ0KK+ycoOu2gOyYgQ0KK+ycoOygle2VmQ0KK+ycoOuzkey2nA0KK+ycoOyYgeyInA0KK+ycoOygleydvA0KK+ycoOyGjOuCqA0KK+ycoOuzkey2qQ0KK+ycoO2aqOyInA0KK+ycoOygleyImA0KK+ycoO2YuOqzpA0KK+ycoOuzke2DnA0KK+ycoOy5oOq3vA0KK+ycoOuMgOyyoA0KK+ycoO2MkOynhA0KK+ycoOuzke2DnQ0KK+ycoOuqheyEuA0KK+ycoOygleyEnQ0KK+ycoOyihe2ZmA0KK+ycoOuzke2VmA0KK+ycoOyDgeyImA0KK+ycoOydmOyjvA0KK+ycoOq1rOybkA0KK+ycoOuzke2YhA0KK+ycoOyYgeyImA0KK+ycoO2aqOq3oA0KK+ycoOqwkeuMgA0KK+ycoOuzke2YuA0KK+ycoOustOybkA0KK+ycoO2YhO2drA0KK+ycoOu0ieyDgQ0KK+ycoOuzke2YuA0KK+ycoOqyveyEoA0KK+ycoOyiheu0iQ0KK+ycoOyInOyekA0KK+ycoOuzke2biA0KK+ycoOyWkeyImQ0KK+ycoOyEse2ZmA0KK+ycoCDshJwNCivsnKDrtInrjZUNCivsnKDsiJzsm4UNCivsnKDsnZHtla0NCivsnKDrr7jshK0NCivsnKDrtInsi50NCivsnKDrj5nsi50NCivsnKDtlZnssL0NCivsnKDrj5nsoIQNCivsnKDsgrzsiJgNCivsnKDrqoXtjJANCivsnKDsiJzsiJkNCivsnKDqsr3qta0NCivsnKDsg4Hqt7wNCivsnKDsmKXsobANCivsnKDrkZDrs7UNCivsnKDrtInrnb0NCivsnKDsg4Hqt7wNCivsnKDsnKTsiJgNCivsnKDsnbzsmIENCivsnKDtg5ztmZQNCivsnKDsg4Hqt7wNCivsnKDqt5ztmZQNCivsnKDshLHsmqkNCivsnKDshLHqt5wNCivsnKDsg4HquLgNCivsnKDssL3rjZUNCivsnKDshLHsnbwNCivsnKDsoJXso7wNCivsnKDsg4HrjZUNCivsnKDssqDtg5wNCivsnKDsmqnshKANCivsnKDrj4Tsi50NCivsnKDsg4HsspwNCivsnKDsooXsi50NCivsnKDsmqntmZgNCivsnKDsooXsspwNCivsnKDsg4Htg5wNCivsnKDshKDspJENCivsnKDsoJDsiJgNCivsnKDsnbjtlZwNCivsnKDshJ3snqwNCivsnKDrrLjsmYQNCivsnKDtlZztlYQNCivsnKDrtInrrLgNCivsnKDshJ3snqwNCivsnKDrtInsi50NCivsnKDstqnqsr0NCivsnKDsp4Dsp4ANCivsnKDshJ3tmLgNCivsnKDshLHsmrQNCivsnKDsiJjsiJkNCivsnKDrs5HtlbQNCivsnKDshKDsnpANCivsnKDsmIHsi5wNCivsnKDsobDsiJgNCivsnKDsg4HsnpANCivsnKDshKDtg5wNCivsnKDsooXshJ0NCivsnKDspIDqtZANCivsnKDrtoTqtawNCivsnKDshLHsiJgNCivsnKDsooXqt7wNCivsnKDtg5ztlZwNCivsnKDquLDsiJgNCivsnKDshLHsnpANCivsnKDshKDsm5ANCivsnKDsp4Tri6wNCivsnKDqs4TtnawNCivsnKDshLHsnqwNCivsnKDsmbjsi50NCivsnKDsmqnqt7wNCivsnKDshLHsiJgNCivsnKDshLjroZ0NCivsnKDtg5zsm5ANCivsnKDslpHqt7wNCivsnKDsmIHqsbQNCivsnKDshozshKANCivsnKDsnqXrjZUNCivsnKDsiJjshKANCivsnKDsnbjqsr0NCivsnKDshozsiJwNCivsnKDssL3quLANCivsnKDrj5nqtowNCivsnKDsm5DsiJgNCivsnKDshqHsmKUNCivsnKDsiJzsmrENCivsnKDshLHtkZwNCivsnKDqsJHtmqgNCivsnKDsiJjrgqgNCivsnKDsiJztmZgNCivsnKDri6zspIANCivsnKDshozsnYANCivsnKDsiJnsnpANCivsnKDsnqzqtowNCivsnKDsmqnrj4QNCivsnKDsooXqtIANCivsnKDsiJntnawNCivsnKDsg4HsmKUNCivsnKDsi6DtmLgNCivsnKDstpjqsIENCivsnKDsiJzrj4QNCivsnKDsiJzsiJgNCivsnKDshJ3sg4ENCivsnKDtmITrj4wNCivsnKDsiJzsl7ANCivsnKDtg5zqtowNCivsnKDsnKTsoJUNCivsnKDsmIHrnpgNCivsnKDsiJzsnpANCivsnKDspp3smrQNCivsnKDquIjrrLQNCivsnKDtmZTsmIENCivsnKDsiJzsobANCivsnKDsnqzqsrANCivsnKDsiJztmIQNCivsnKDrjZXtg5wNCivsnKDsirnqtZANCivsnKDrtoTsmIENCivsnKDquLDro6ENCivsnKDsoJXtnawNCivsnKDsirntm4gNCivsnKDri6zqt7wNCivsnKDrs5HsiKANCivsnKDsooXsoJUNCivsnKDslZTsnbQNCivsnKDrr7jtnaANCivsnKDtmY3sm5ANCivsnKDssL3siJgNCivsnKDslaDsnpANCivsnKDrjIDsiJwNCivsnKDsoJXso7wNCivsnKDtmY3snbQNCivsnKDslaDtnawNCivsnKDsgrzshLENCivsnKDshLHtnawNCivsnKDsspzqtowNCivsnKDslpHqt7wNCivsnKDrqoXtg5wNCivsnKDshLHsiJgNCivsnKDslrjsg50NCivsnKDslrXsi50NCivsnKDsg4HrgqgNCivsnKDshLHtmIQNCivsnKDsoJXsiJkNCivsnKDsmIHqs4QNCivsnKDqs6Hssq0NCivsnKDssL3tlZgNCivsnKDsm5DtlZkNCivsnKDsmIHsiJgNCivsnKDshKDshLENCivsnKDrrLjtjJANCivsnKDsnYDqsJUNCivsnKDsmIHsiJwNCivsnKDshKDsnqwNCivsnKDsmKTssKwNCivsnKDrqoXroZ0NCivsnKDsmIHsnqwNCivsnKDsg4HspIANCivsnKDtlbTtjJANCivsnKDsmrDsp4QNCivsnKDsmIHtjJQNCivsnKDsoJXrgqgNCivsnKDrrLTtnawNCivsnKDrr7jrnoANCivsnKDsmqnqtawNCivsnKDtg5ztlZkNCivsnKDsg4HqtawNCivsnKDrtInsoJUNCivsnKDsmqnqtawNCivsnKDso7ztmZQNCivsnKDsooXtlZkNCivsnKDrqoXtmLgNCivsnKDsmqnrspQNCivsnKDquLDsoJUNCivsnKDrs7TsmqkNCivsnKDspJHrj5kNCivsnKDsmqnshKANCivsnKDshLHspIANCivsnKDtlZjqta0NCivsnKDsiJjsiJgNCivsnKDsmqnsiJgNCivsnKDrj4Trs7UNCivsnKDsooXtmZgNCivsnKDsmIHsiJwNCivsnKDsmqnsi50NCivsnKDsnbztg5wNCivsnKDsmqnshKANCivsnKDsoJXtg5wNCivsnKDsmqnsnqwNCivsnKDsoJXtmIQNCivsnKDrgqjqtZANCivsnKDsuaDsobANCivsnKDsmqnsobANCivsnKDsiJzsmYQNCivsnKDsnqzrnpgNCivsnKDrtoTqtowNCivsnKDsmrDquLgNCivsnKDsooXshJ0NCivsnKDsoJXsp4QNCivsnKDsiJztmIQNCivsnKDsmrTsmIENCivsnKDsoJXroZ0NCivsnKDrj5nqs6QNCivsnKDsg4Hrj4QNCivsnKDsm5Dqt7wNCivsnKDsp4TtmLgNCivsnKDrs5HsnqwNCivsnKDtlZzsgrwNCivsnKDsm5DsnbwNCivsnKDsnqzsnKQNCivsnKDsnbTrtIkNCivsnKDrj5nruYgNCivsnKDsm5DstpwNCivsnKDqt5zsp4QNCivsnKDsooXtmLgNCivsnKDsmqnrqqkNCivsnKDsm5DtmLgNCivsnKDsiJzrgqgNCivsnKDsoJXtg5wNCivsnKDsnYTtnJgNCivsnKDsm5Tsi50NCivsnKDrjZXrkZANCivsnKDtlYTshKANCivsnKDrr7zsoJUNCivsnKDsnITsg4ENCivsnKDsnZjso7wNCivsnKDsnqzrp4wNCivsnKDsmIHssqANCivsnKDsnKTsg4ENCivsnKDstpjstpgNCivsnKDtlZnshJ0NCivsnKDsmIHrgqgNCivsnKDsnKTsnqwNCivsnKDrs5HrnpgNCivsnKDsoJXsnoQNCivsnKDsl7DsmrANCivsnKDsnYDshKANCivsnKDtg5zsiJgNCivsnKDqtJHshLgNCivsnKDrqoXslrgNCivsnKDsnYDsoIQNCivsnKDsm5DshJ0NCivsnKDrp4ztmLgNCivsnKDsnKTsi50NCivsnKDsnYDsoJUNCivsnKDssL3so7wNCivsnKDsnqztmLgNCivsnKDsoJXtm4gNCivsnKDsnYDsp4QNCivsnKDsoJDrjZUNCivsnKDsmqnqt7wNCivsnKDsoJXtmLgNCivsnKDsnYTsiJgNCivsnKDtg5zrp4wNCivsnKDsnKDqs6QNCivsnKDsiJjrs5ENCivsnKDsnYTtnawNCivsnKDsg4Htg5wNCivsnKDrrLTsmKUNCivsnKDtla3snbQNCivsnKDsnbjrtIkNCivsnKDsg4Hsm4UNCivsnKDrs5HquLgNCivsnKDsnqzsmKQNCivsnKDsnbjsnqwNCivsnKDrrLjtmZgNCivsnKDquIjsiJwNCivsnKDspIDshLENCivsnKDsnbzshLENCivsnKDsmIHtmLgNCivsnKDrjIDtg50NCivsnKDshLHquLANCivsnKDsnbzshLENCivsnKDsooXsiJkNCivsnKDquLjspJENCivsnKDsnqzsmqkNCivsnKDsnbzshLENCivsnKDsg4Htm4gNCivsnKDsmIHqt5wNCivsnKDsm5Dtm4gNCivsnKDsnqXrpqwNCivsnKDtmZjsm4UNCivsnKDsoJXqta0NCivsnKDqt6DsiKANCivsnKDsnqzqsqwNCivsnKDshJ3qtawNCivsnKDsg4HsiJgNCivsnKDsg4HsoJUNCivsnKDsnqzqs6QNCivsnKDtg5zsi50NCivsnKDsiJjsiJgNCivsnKDsnYDqt7wNCivsnKDsnqzqt7wNCivsnKDsi53qsJENCivsnKDrr7jrp4wNCivsnKDsiJzsnpANCivsnKDsnqzrj4QNCivsnKDssL3tmLgNCivsnKDsmIHstpwNCivsnKDsg4HsmrANCivsnKDsnqzrk7ENCivsnKDtlYTsp4QNCivsnKDrgqjrp4wNCivsnKDsmrTtmIQNCivsnKDsnqzrp4wNCivsnKDsnqztm4gNCivsnKDsmqnsm5ANCivsnKDtg5zri6wNCivsnKDsnqzsgqwNCivsnKDsnqzsooUNCivsnKDtmZTtnawNCivsnKDsnbzsmrQNCivsnKDsnqzshKANCivsnKDtjJDqt6ANCivsnKDssq3tg5wNCivsnKDsoJXsl7ANCivsnKDsnqzshKANCivsnKDtmLjslZQNCivsnKDsiJjrs7UNCivsnKDsmKXsl7QNCivsnKDsnqzshLENCivsnKDrp4zsl7QNCivsnKDsm5Tsl70NCivsnKDsiJztg5wNCivsnKDsnqzsiJgNCivsnKDsmIHsobANCivsnKDsiJjrspQNCivsnKDsnqztg5wNCivsnKDsnqzsiJgNCivsnKDssL3soJANCivsnKDsmIHsiJgNCivsnKDsnZHssKwNCivsnKDsnqzsmIENCivsnKDsoJXsp4QNCivsnKDsgrzsl7ANCivsnKDsoJXrp4wNCivsnKDsnqzsmIENCivsnKDsooXsm5ANCivsnKDsmqnsoJUNCivsnKDstqnsnpANCivsnKDsnqzsmqkNCivsnKDrj5nsiJgNCivsnKDsnqzsiKANCivsnKDsoJXri6wNCivsnKDsnqzsm4UNCivsnKDso7zrsLANCivsnKDso7zsnbwNCivsnKDsmrDrsLANCivsnKDsnqzssqANCivsnKDsnbjqsr0NCivsnKDrqoXshJ0NCivsnKDtmLjsnpANCivsnKDsnqztmLgNCivsnKDsmIHrtIkNCivsnKDrjZXstpwNCivsnKDsl7DtnawNCivsnKDsnqztmLgNCivsnKDsooXsm5ANCivsnKDssL3tg5wNCivsnKDquLDsobANCivsnKDsnqztmY0NCivsnKDtmY3si50NCivsnKDsgqzsiJgNCivsnKDsnqzsnqwNCivsnKDsnqztmowNCivsnKDsg4HqtIANCivsnKDsg4HrnoANCivsnKDqs4TsiJgNCivsnKDsnqztm4gNCivsnKDsnYTshKANCivsnKDsg4HsiJwNCivsnKDrgqjsiJkNCivsnKDsnqztm4gNCivsnKDsoJXsi50NCivsnKDssqDsi50NCivsnKDsoJXqs4QNCivsnKDsnqztm4gNCivsnKDsnbjspIANCivsnKDqsJXsmIENCivsnKDsoJXrjZUNCivsnKDsoJDrtoQNCivsnKDrsLHrj4QNCivsnKDsg4HtmLgNCivsnKDssL3tg50NCivsnKDsoJDtg5wNCivsnKDsi6DsmrENCivsnKDrrLjsiJgNCivsnKDrjIDrjZUNCivsnKDsoJXqsr0NCivsnKDshLHrj4QNCivsnKDsmIHrs5ENCivsnKDtmY3tlZwNCivsnKDsoJXqt7wNCivsnKDqta3shLENCivsnKDsnqzsooUNCivsnKDsnKTtmIQNCivsnKDsoJXrj4QNCivsnKDsnbzsmIENCivsnKDsnqzqs6QNCivsnKDssL3sooUNCivsnKDsoJXsi50NCivsnKDqtJHsm5ANCivsnKDqsr3tmIQNCivsnKDquLDrj5kNCivsnKDsoJXsi50NCivsnKDslpHqtowNCivsnKDtlZzsi50NCivsnKDsmIHsmqkNCivsnKDsoJXsi50NCivsnKDtg5zsi50NCivsnKDsnbXsooUNCivsnKDssKjtlZwNCivsnKDsoJXsnpANCivsnKDsnYDsm5ANCivsnKDsmIHsnbQNCivsnKDqsr3tg5wNCivsnKDsoJXsnqwNCivsnKDrj5nsm4UNCivsnKDsooXtmIQNCivsnKDqsr3sl7ANCivsnKDsoJXtmZQNCivsnKDrs7Xsi50NCivsnKDrs7TquLANCivsnKDsmIHrjIANCivsnKDsoJzsl7ANCivsnKDrjIDtmLgNCivsnKDsm5DtmLgNCivsnKDrgpjqta0NCivsnKDsoJzstpgNCivsnKDsnoTsl7QNCivsnKDrp5DsmYQNCivsnKDrs5Hqs6QNCivsnKDsoJztmLgNCivsnKDsmrDsmrENCivsnKDtg5ztg50NCivsnKDrj5ntmLgNCivsnKDsooXqtbANCivsnKDsmIHtmJUNCivsnKDquLDsooUNCivsnKDsmKXqt7wNCivsnKDsooXsiJgNCivsnKDrs5HtlYQNCivsnKDqtJHtmIQNCivsnKDtg5zrgpwNCivsnKDsooXsi50NCivsnKDsnqXrtIkNCivsnKDshLHsobANCivsnKDssKjstpwNCivsnKDsooXspJENCivsnKDsiJzrjZUNCivsnKDrs7XqsJENCivsnKDsiJzstpgNCivsnKDsooXtmIQNCivsnKDsmKXsl7QNCivsnKDshJ3smrQNCivsnKDtg5zsiJgNCivsnKDsp4DtmLgNCivsnKDsgrzsmIENCivsnKDsg4HqtawNCivsnKDsuZjrp4wNCivsnKDsp4Tqt7wNCivsnKDsnqztnawNCivsnKDsmIHrs7UNCivsnKDsm5Tsi50NCivsnKDssKjshJ0NCivsnKDrs5HtmLgNCivsnKDquLDsnbQNCivsnKDtmITsl7wNCivsnKDssKjshKANCivsnKDtlZnsiJwNCivsnKDqtJHtm4gNCivsnKDsnZHsi50NCivsnKDssL3qt7wNCivsnKDsmIHsnbQNCivsnKDsooXquLANCivsnKDsiJjtkZwNCivsnKDstpjsmIENCivsnKDrs5HsiJwNCivsnKDrtInrhbgNCivsnKDssqDsi5wNCivsnKDstpjsnpANCivsnKDsooXsi6QNCivsnKDsmqnsobANCivsnKDrj4Tsp4QNCivsnKDsuaDsmqkNCivsnKDsgrzsm5ANCivsnKDsnbjsnpANCivsnKDrs5HshK0NCivsnKDtg5zshKANCivsnKDssL3smqkNCivsnKDsnbjsl7QNCivsnKDssqDsnbwNCivsnKDtg5zsiJgNCivsnKDrj5nrjIANCivsnKDsnKTsl7ANCivsnKDtmJztmLgNCivsnKDtg5zsooUNCivsnKDssqDsmIENCivsnKDsnKTssqANCivsnKDshLHrs7QNCivsnKDtjJDsmKQNCivsnKDsirnsm5ANCivsnKDrjZXssqANCivsnKDquIjsiJgNCivsnKDtlYTsnbQNCivsnKDsnbjqt7wNCivsnKDtmITsmIENCivsnKDsnqzsnKQNCivsnKDtlZzsg4ENCivsnKDsp4DslZQNCivsnKDsnbjrjZUNCivsnKDtnazsiJwNCivsnKDtlZzsi50NCivsnKDshLHqtawNCivsnKDsp4TsmIENCivsnKDrs5HtlZkNCivsnKDtlZzsl7QNCivsnKDqsJztmY0NCivsnKDsooXsg4ENCivsnKDquLDrj4wNCivsnKDtlZzsooUNCivsnKDspIDsiJgNCivsnKDrj5nsmqkNCivsnKDsiJjsi6QNCivsnKDtlbTrhYQNCivsnKDssqDsooUNCivsnKDtmZTtmZgNCivsnKDsg4Htg50NCivsnKDtlbTsmrQNCivsnKDsooXsiJwNCivsnKDssL3ssq0NCivsnKDslpHtnawNCivsnKDtlbTsoJUNCivsnKDrp4jtlZgNCivsnKDssKjqtowNCivsnKDssqDrs7UNCivsnKDtlbTspIANCivsnKDsuZjsiJwNCivsnKDqt7zqt5wNCivsnKDsoJXsiJkNCivsnKDtlonsp4ANCivsnKDsmIHsiJgNCivsnKDqsr3rs5ENCivsnKDrjIDsiJgNCivsnKDtl4zsi50NCivsnKDrtInssqANCivsnKDsnbzsiJgNCivsnKDsoJXsiJgNCivsnKDtmITsi50NCivsnKDtmqjtg50NCivsnKDssKzsm4UNCivsnKDsp4DtlZwNCivsnKDtmITtmLgNCivsnKDtmJXtmLgNCivsnKDquLDsnqwNCivsnKDrp5Drj5kNCivsnKDtmY3qt7wNCivsnKDsmIHqtZANCivsnKDquLDsiJkNCivsnKDsmqntl4wNCivsnKDtmY3snqwNCivsnKDsiJjsooUNCivsnKDspJHsnbQNCivsnKDtlbTri6wNCivsnKDtmZTsm4UNCivsnKDsspzqs6QNCivsnKDsmIHsmrANCivsnKDsmbjqt7wNCivsnKDtmqjrjZUNCivsnKDquIjsi50NCivsnKDrjZXqtIANCivsnKDsmqnsobANCivsnKDtmqjshKANCivsnKDsoJXqt4ANCivsnKDqtJHsmrANCivsnKDsmIHsiJgNCivsnKDtm4Tqt7wNCivsnKDsoJDrtIkNCivsnKDsmIHrj4QNCivsnKDsp4TsooUNCivsnKDtnJjshKANCivsnKDrj5nsmrENCivsnKDsnqzsi50NCivsnKDroZ3qt5wNCivsnKDtnaXqtIANCivsnKDsmIHsiJwNCivsnKDsmIHsnpANCivsnKDssqDqsr0NCivsnKDtnaXquLANCivsnKDrtoTrnpgNCivsnKDsnbXsiJwNCivsnKDrs5HsiJgNCivsnKHrrLTsm4UNCivsnKHshLHshJ0NCivsnKHrj5ntmIQNCivsnKHsp4TspJENCivsnKHsooXqt7wNCivsnKHstqnrs7UNCivsnKHsmIHqt5wNCivsnKHrrLTsiJgNCivsnKHsooXrjIANCivsnKHshJ3snbUNCivsnKHshLHsnbwNCivsnKHqt4Dqt7wNCivsnKHtnazsiJkNCivsnKHsnZjspIANCivsnKHsnqztkZwNCivsnKHqt5zsmrANCivsnKQg7IicDQor7Jyk6riw7IStDQor7Jyk6rSR7Zy0DQor7Jyk7ZmU7Je0DQor7Jyk6rCR7IicDQor7Jyk6rCV6rCcDQor7Jyk7KKF6rWwDQor7Jyk7KKF7ZWcDQor7Jyk6rK967O1DQor7Jyk7Jqp66GdDQor7Jyk7Jqp6rWtDQor7Jyk7YyU7JewDQor7Jyk6rK97IudDQor7Jyk7KCV65OxDQor7Jyk6riI7LKgDQor7Jyk7IiY64WEDQor7Jyk6rK97KGwDQor7Jyk7ZeM7Zi4DQor7Jyk7KCV7J6sDQor7JykIOyImA0KK+ycpOqyve2YuA0KK+ycpOuqheq4sA0KK+ycpOyynO2ZmA0KK+ycpOyEpO2DnA0KK+ycpOqyve2drA0KK+ycpOyjvOyYpQ0KK+ycpOywqOyEoA0KK+ycpOy2mOyEnQ0KK+ycpOqzhOyXsA0KK+ycpOyEuOyEoA0KK+ycpO2VtOyekA0KK+ycpOu0ieyDgQ0KK+ycpOqzteybkA0KK+ycpOuCmeq3nA0KK+ycpOuqhe2dpQ0KK+ycpOyVoO2ZmA0KK+ycpOq0gOyLnQ0KK+ycpO2DnO2YhA0KK+ycpO2VtOyasA0KK+ycpOyduO2VmQ0KK+ycpOq0keq4sA0KK+ycpOqzhOykgA0KK+ycpOuqheyEoA0KK+ycpOyDgeyhsA0KK+ycpOq2jOyLnQ0KK+ycpOq4iOq4sA0KK+ycpOuLrOyyoA0KK+ycpOyEoOyaqQ0KK+ycpOq2jOyglQ0KK+ycpOyYgeq4sA0KK+ycpOygkOywvQ0KK+ycpO2DnOywrA0KK+ycpOq3gOyXsA0KK+ycpOyaqe2VmQ0KK+ycpOyepeybkA0KK+ycpOqzhOyIoA0KK+ycpOq3nOyYgQ0KK+ycpOyasOyYgQ0KK+ycpOy2mOq1rA0KK+ycpOyWkeynhA0KK+ycpOq3nOyYgQ0KK+ycpOq4iOyLnQ0KK+ycpOyerOyImA0KK+ycpOywveq3nA0KK+ycpOq3vOunjA0KK+ycpOyEoO2DnA0KK+ycpOq0keyhsA0KK+ycpO2YuOqzhA0KK+ycpOq3vOyImA0KK+ycpOygleyEoA0KK+ycpOy2mOyXsA0KK+ycpOyerO2ZmA0KK+ycpOq4iOyEoA0KK+ycpOyjvO2DnQ0KK+ycpO2DnOyLnQ0KK+ycpOy2mOq3nA0KK+ycpOq4iOyLnQ0KK+ycpOyiheq4sA0KK+ycpOyYgeuztA0KK+ycpOyXsOyLpA0KK+ycpOq4sOuNlQ0KK+ycpOyInOq1rA0KK+ycpOyngO2VtA0KK+ycpOqyveq1kA0KK+ycpOq4sOyXsA0KK+ycpOuqhe2ZqQ0KK+ycpOynhO2ZmA0KK+ycpOygleq4sA0KK+ycpOq4sOybkA0KK+ycpOyInOq3vA0KK+ycpOq4sO2DnA0KK+ycpOyLrOyYgQ0KK+ycpOq4uOq4sA0KK+ycpOycpOydvA0KK+ycpOyYgeumrA0KK+ycpOuzke2YuA0KK+ycpOuCqOq4sA0KK+ycpOyYgeyjvA0KK+ycpOyerOydtA0KK+ycpOyiheq4uA0KK+ycpOuCqOyLnQ0KK+ycpOyaqeq4uA0KK+ycpOybkOydvA0KK+ycpOuTneufiQ0KK+ycpOuMgOyYgQ0KK+ycpOyerOuvuA0KK+ycpOyaqeusuA0KK+ycpOyDge2YuA0KK+ycpOuMgO2YhA0KK+ycpOuzuOyXsA0KK+ycpO2YgeuylA0KK+ycpOyLpOywrA0KK+ycpOuNleq4sA0KK+ycpOuzkeywvQ0KK+ycpOy2mOykgA0KK+ycpOyImOygkA0KK+ycpOuNleykgA0KK+ycpOyYge2YuA0KK+ycpOyaqeybkA0KK+ycpOuNle2YuA0KK+ycpOuPhOq3oA0KK+ycpOyGjOybkA0KK+ycpOyYgeyihQ0KK+ycpO2dpeywvQ0KK+ycpOuPhO2ZmA0KK+ycpOyYgeuztA0KK+ycpOyImO2YgQ0KK+ycpOyImOq4sA0KK+ycpOuPhO2drA0KK+ycpOu0ieyKuQ0KK+ycpOyViOyyoA0KK+ycpOyYpeu0iQ0KK+ycpOuPmeyLnQ0KK+ycpOuhgOq3oA0KK+ycpOygkOuCqA0KK+ycpOyerOyLnQ0KK+ycpOuPme2ZmA0KK+ycpOyYpeykkQ0KK+ycpOywve2YuA0KK+ycpOybheu0iQ0KK+ycpOuRkOq4sA0KK+ycpOuwqeuPmQ0KK+ycpOydgO2VmQ0KK+ycpOyihe2cmA0KK+ycpOuRkOyXsA0KK+ycpOyiheyyoA0KK+ycpO2VtOq3nA0KK+ycpOyYpeu0iQ0KK+ycpOuqheq1rQ0KK+ycpOygleyyoA0KK+ycpOyjvOyLnQ0KK+ycpO2XjOq4sA0KK+ycpOuqheq4sA0KK+ycpOygle2drA0KK+ycpOyDgeyImA0KK+ycpOuzke2drA0KK+ycpOuqqOyehA0KK+ycpO2Zje2DnQ0KK+ycpOyDgeyXtA0KK+ycpOustOyImA0KK+ycpOusuOq1rA0KK+ycpOydvO2drA0KK+ycpOuvuO2ZmA0KK+ycpOuPhOuMgA0KK+ycpOusuOq4sA0KK+ycpOyImOq3oA0KK+ycpOydhO2YuA0KK+ycpOyehO2biA0KK+ycpOusuOyYgQ0KK+ycpO2DnOq3nA0KK+ycpO2DnOuCqA0KK+ycpOq4sOyyoA0KK+ycpOuzkeq0gA0KK+ycpOunkO2YhA0KK+ycpOq3oO2YuA0KK+ycpOu0ieu0iQ0KK+ycpOuzkeq1rQ0KK+ycpOuLrOuPmQ0KK+ycpOunjOydvA0KK+ycpO2YuOyIoA0KK+ycpOuzkeq4iA0KK+ycpOuCqOu2hA0KK+ycpOyCvOq4sA0KK+ycpOyduOyyoA0KK+ycpOuzkeq4sA0KK+ycpOyEseyInA0KK+ycpOu0ieyEnQ0KK+ycpOq2jOyLnQ0KK+ycpOuzkeq4sA0KK+ycpOuqhe2VmQ0KK+ycpOynhOycpA0KK+ycpOyEse2ZmA0KK+ycpOuzkeq4uA0KK+ycpOyduOq1rQ0KK+ycpOyerOq3oA0KK+ycpOyiheuwsA0KK+ycpOuzkeq4uA0KK+ycpOyEseybhQ0KK+ycpOyYgeqwkQ0KK+ycpOyduOyEoA0KK+ycpOuzkeuFuA0KK+ycpOyDgeyhsA0KK+ycpOyInOybkA0KK+ycpOuNle2VnA0KK+ycpOuzkeunjA0KK+ycpOyImOyXsA0KK+ycpOuCmeyEnQ0KK+ycpOusuOustQ0KK+ycpOuzkeyErQ0KK+ycpOuqheybkA0KK+ycpOyEneqwlQ0KK+ycpOuzkeqyvQ0KK+ycpOuzkeyasQ0KK+ycpOyynOyCvA0KK+ycpOyaqe2drA0KK+ycpOuzkeq4sA0KK+ycpOuzkeyehQ0KK+ycpOuvvO2ZlA0KK+ycpOuzkeq1rQ0KK+ycpOyerOyyoA0KK+ycpOuzkeyhsA0KK+ycpOykkeyEoA0KK+ycpOusuOq4sA0KK+ycpOyduOq3nA0KK+ycpOuzkeyynA0KK+ycpOq0ke2drA0KK+ycpOyehO2DnQ0KK+ycpOygle2ZjQ0KK+ycpOuzke2YgQ0KK+ycpOyerO2doA0KK+ycpOyiheyInA0KK+ycpOyerOyyoA0KK+ycpOuzke2ZlA0KK+ycpOq4sOq2jA0KK+ycpOyDgeyaqQ0KK+ycpOyEseydmA0KK+ycpOuztOyImA0KK+ycpOyYge2YuA0KK+ycpOyCvO2YhA0KK+ycpOyImOyLnQ0KK+ycpOuzteyaqQ0KK+ycpOyiheyEsQ0KK+ycpOyCvOy2nA0KK+ycpOygleuPmQ0KK+ycpOu0iey2mA0KK+ycpOyYge2YhA0KK+ycpOykgOyEnQ0KK+ycpOyYgeyihQ0KK+ycpOu2hOuNlQ0KK+ycpOycqOyglQ0KK+ycpOygleykkQ0KK+ycpOuCqO2XjA0KK+ycpOu2hOyVhQ0KK+ycpOygleq1rQ0KK+ycpOuzteyekA0KK+ycpOuMgO2YuA0KK+ycpOu2hOyhsA0KK+ycpOyGkOqyvQ0KK+ycpOynhOyaqQ0KK+ycpO2Zje2DnA0KK+ycpOyCvOyImA0KK+ycpOyMje2VmQ0KK+ycpOunpOq4iA0KK+ycpOyaseyDnQ0KK+ycpOyCvOyInA0KK+ycpOyjvOq4uA0KK+ycpOyEse2aqA0KK+ycpOyEseyXtA0KK+ycpOyCvOyVlA0KK+ycpOu0ie2ZmA0KK+ycpOybkOyEsQ0KK+ycpOyImOuPmQ0KK+ycpOyDgeq4sA0KK+ycpOuPmeycpA0KK+ycpOyKue2YuA0KK+ycpO2YuOybkA0KK+ycpOyDgeuFuA0KK+ycpOyEneyYpQ0KK+ycpO2DnOydtA0KK+ycpOustOydtA0KK+ycpOyDgeusuA0KK+ycpOyYgeuztQ0KK+ycpOygle2YuA0KK+ycpOyInOyInA0KK+ycpOyDge2YuA0KK+ycpOyXsOqwlQ0KK+ycpO2ZqeyasA0KK+ycpOuCqOyErQ0KK+ycpOyEneq4sA0KK+ycpOyerO2YhA0KK+ycpOyYpOydvA0KK+ycpOunkOyaqQ0KK+ycpOyEneyVlA0KK+ycpOygleyynA0KK+ycpOygleyXtA0KK+ycpOq3ueyDgQ0KK+ycpOyEneyaqQ0KK+ycpO2DnOuegA0KK+ycpOyerOq3vA0KK+ycpOyZuOyEuA0KK+ycpOyEneyjvA0KK+ycpOuylO2VmA0KK+ycpOyerO2ajA0KK+ycpO2DnOyXtA0KK+ycpOyEneywrA0KK+ycpOyCvO2YuA0KK+ycpOq4sOyasA0KK+ycpOyihe2ZlA0KK+ycpOyEne2VnA0KK+ycpOyDge2ZmA0KK+ycpOydtOuTnQ0KK+ycpOyYgeq4sA0KK+ycpOyImOq4sA0KK+ycpOuzteyYpQ0KK+ycpOyYge2YuA0KK+ycpOyCrOu2hA0KK+ycpOyImOybkA0KK+ycpOqwleyVhQ0KK+ycpOuPmeyLnQ0KK+ycpOyaqeuqhQ0KK+ycpOyImO2VnA0KK+ycpOyImOyyrQ0KK+ycpOq4sOyEsQ0KK+ycpO2DnO2YhA0KK+ycpOyImeyekA0KK+ycpO2DnOynhA0KK+ycpOyepeyEnQ0KK+ycpO2YhOyaqQ0KK+ycpOyInOydtA0KK+ycpOq4sO2DnQ0KK+ycpOyEseywvQ0KK+ycpOu2hO2ZjQ0KK+ycpOyInOyhsA0KK+ycpOyYgeqwgQ0KK+ycpOyerOyIoA0KK+ycpO2DneydtA0KK+ycpOyInO2VmQ0KK+ycpOyYpOq2jA0KK+ycpOq3nOyImA0KK+ycpOq4sO2DnA0KK+ycpOyInO2ZqQ0KK+ycpOyerOyasA0KK+ycpO2ZjeyXsA0KK+ycpOynhO2VmQ0KK+ycpOyLoOyYpA0KK+ycpO2bhOyasA0KK+ycpOq3vOywqA0KK+ycpOuvuOuztQ0KK+ycpOyLpOqyvQ0KK+ycpOygkOq4sA0KK+ycpOqyveyImA0KK+ycpOyDge2YuA0KK+ycpOyWuOq4sA0KK+ycpOyjvOuMgA0KK+ycpOyYpeyjvA0KK+ycpOyYgeq4uA0KK+ycpOyWuOyjvA0KK+ycpOuztOuegA0KK+ycpOyDgeq4uA0KK+ycpOuTse2doA0KK+ycpOyYgeq1rQ0KK+ycpOuzkeuPmQ0KK+ycpOyaqeydvA0KK+ycpOyYpeybhQ0KK+ycpOyYgeyImQ0KK+ycpOqwke2ZmA0KK+ycpOywveqyvQ0KK+ycpOyLoOyYgQ0KK+ycpOyYgeyehA0KK+ycpOyEseyInA0KK+ycpO2Zje2drA0KK+ycpO2VmeuhgA0KK+ycpOyYgeyekA0KK+ycpOygle2ZmA0KK+ycpOyYpOuCqA0KK+ycpOyepe2YuA0KK+ycpOyYgeyxhA0KK+ycpOyYgeybhQ0KK+ycpOuNleyInA0KK+ycpOyEne2ZmA0KK+ycpOyYge2ZlA0KK+ycpOykke2YuA0KK+ycpOyEseyEnQ0KK+ycpOu0ieyehA0KK+ycpOyYge2drA0KK+ycpOyImOydtQ0KK+ycpOq4sOqzpA0KK+ycpOygleq3oA0KK+ycpOyYge2drA0KK+ycpOyYgeuqqA0KK+ycpOyXsOyDnQ0KK+ycpOyImeq1rA0KK+ycpOyYpeyInA0KK+ycpOq1reyImA0KK+ycpOy2mOyXhQ0KK+ycpOyKueyEnQ0KK+ycpOyaqeq0gA0KK+ycpCDquLANCivsnKTsnqzssqANCivsnKTrjZXqta0NCivsnKTsmqnqt7wNCivsnKTsp4DqsrANCivsnKTsgqzstpwNCivsnKTsmIHsiJwNCivsnKTsmqnsiJgNCivsnKTsiKDtg5wNCivsnKTsg4Hrs7UNCivsnKTsspzrn4kNCivsnKTsm5Dsi50NCivsnKTrtInsm4UNCivsnKTsp4TspIANCivsnKTsmqnsnqwNCivsnKTsm5Dsi50NCivsnKTsiJjsnqwNCivsnKTsnqzsmKUNCivsnKTsmqnqt5wNCivsnKTsm5Trp4wNCivsnKTrj5nsl7ANCivsnKTsmKXssL0NCivsnKTsoJDtmZgNCivsnKTsnYTsiJgNCivsnKTsiJjsm5ANCivsnKTsmqnsnpANCivsnKTrtInquLANCivsnKTsnZjsm4UNCivsnKTsi6TssqANCivsnKTsnbzrj5kNCivsnKTsoJXtnawNCivsnKTsnbTsiJgNCivsnKTsmIHtmLgNCivsnKTsnYTsnqwNCivsnKTsgrzsiJwNCivsnKTsnbjshK0NCivsnKTtlbTqtawNCivsnKTrp4zsm5ANCivsnKTsmqnrj4wNCivsnKTsnbzsi50NCivsnKTshKDtmLgNCivsnKTrj5nsl7QNCivsnKTsooXsi50NCivsnKTsnbzsi50NCivsnKTssq3sl7QNCivsnKTtla3siJgNCivsnKTrp4zqs6QNCivsnKTsnbzsmIENCivsnKTsgrzshLENCivsnKTsooXshK0NCivsnKTqtIDtmqgNCivsnKTsnoTsiJwNCivsnKTrrLjtlZgNCivsnKTrhbjssqANCivsnKTsiJjtmZgNCivsnKTsnqzquLANCivsnKTrj5nrs7UNCivsnKTshLHtmLgNCivsnKTqsr3shKANCivsnKTsnqzshLENCivsnKTsmqnrqqgNCivsnKTsmIHsiJgNCivsnKTsmIHsi50NCivsnKTsoJDsi50NCivsnKTsm5DsmqkNCivsnKTqtozrsLANCivsnKTtnaztg5wNCivsnKTsoJDsm5ANCivsnKTrp5DtmLgNCivsnKTsnZjsiJgNCivsnKTsmbjshJ0NCivsnKTsoJXqt5wNCivsnKTtmITtmZQNCivsnKTrjIDshJ0NCivsnKTsm5DsiKANCivsnKTsoJXquLgNCivsnKTquLDspIANCivsnKTrj4Ttg5wNCivsnKTsmrHrj5kNCivsnKTsoJXsmKUNCivsnKTsi6Dsi50NCivsnKTsmIHsobANCivsnKTtg5zsiJgNCivsnKTsoJXtmIQNCivsnKTrjZXspJENCivsnKTqsr3rj4QNCivsnKTsnqXsiJgNCivsnKTsoJXtmLgNCivsnKTsmbjshJ0NCivsnKTrrLjsi50NCivsnKTquLDsi50NCivsnKTsoJXtmqgNCivsnKTsoJXqsbQNCivsnKTtlZnsi50NCivsnKTsoJXsobANCivsnKTsooXqsIENCivsnKTsmIHrrLgNCivsnKTsooXro6ENCivsnKTslrXtlZkNCivsnKTsooXqsJENCivsnKTquLDsnbgNCivsnKTsooXshKANCivsnKTtg5zsobANCivsnKTsooXqtawNCivsnKTquLDtmLgNCivsnKTsiJzquLgNCivsnKTsiJzsnbwNCivsnKTsooXqt5wNCivsnKTtlZnrjZUNCivsnKTquLDsnKQNCivsnKTrs5HshLENCivsnKTsooXqt7kNCivsnKTspIDsm5ANCivsnKTsnqzsmqkNCivsnKTsi6DsiJgNCivsnKTsooXrjIANCivsnKTrjZXslaANCivsnKTrs5HsobANCivsnKTssL3quLANCivsnKTsooXrjZUNCivsnKTssqDsiJwNCivsnKTsooXrgqgNCivsnKTtlbTshLgNCivsnKTsooXrjZUNCivsnKTsiJzquLANCivsnKTtjJDtg50NCivsnKTsoJXshKANCivsnKTsooXroZ0NCivsnKTsmIHqtawNCivsnKTrspTrr7wNCivsnKTsoJXslpENCivsnKTsooXrpr0NCivsnKTtg5ztmZQNCivsnKTso7ztmLgNCivsnKTsiJjsnpANCivsnKTsooXrpr0NCivsnKTtg5ztmLgNCivsnKTsmrTrnpgNCivsnKTsmKXsiJgNCivsnKTsooXrrLgNCivsnKTshoztmLgNCivsnKTtlZnsmqkNCivsnKTsnZjqsr0NCivsnKTsooXrr7wNCivsnKTsm5Dsi50NCivsnKTsoJXtmY0NCivsnKTsooXsnqwNCivsnKTsooXshJ0NCivsnKTsoJXrsLANCivsnKTslpHrsLENCivsnKTrkZDsnbQNCivsnKTsooXshKANCivsnKTsmIHsiJwNCivsnKTsnqzshLENCivsnKTqt7nsmqkNCivsnKTsooXshKQNCivsnKTshJ3smrENCivsnKTsnKTrp4wNCivsnKTshpDtj6wNCivsnKTsooXsi50NCivsnKTqsr3shKANCivsnKTrj5ntg5wNCivsnKTsm5DsgqwNCivsnKTsooXsmrANCivsnKTso7zquIgNCivsnKTquLDrqoUNCivsnKTrk53smIENCivsnKTsooXsm5ANCivsnKTshLjssqANCivsnKTshLHtmLgNCivsnKTsooXqt7wNCivsnKTsooXsnKgNCivsnKTquLDsiJgNCivsnKTrs5Hqt7wNCivsnKTtg5zsmrANCivsnKTsooXsobANCivsnKTqs4TsiJkNCivsnKTsnbjsg4ENCivsnKTrtInsnbQNCivsnKTsooXssqANCivsnKTsnKTsnbUNCivsnKTtmZjrj4QNCivsnKTsiJjsiJgNCivsnKTsooXtlbQNCivsnKTsmKTsnbUNCivsnKTsooXqt7wNCivsnKTsmrHsiJwNCivsnKTsooXtnawNCivsnKTtlZzqtIANCivsnKTslrjqsbQNCivsnKTrr7jrtIkNCivsnKTso7zqsbQNCivsnKTsm5DshJ0NCivsnKTsp4TtlZgNCivsnKTsl7TtmZgNCivsnKTspIDqsrgNCivsnKTsg4HrjZUNCivsnKTshLHsmrANCivsnKTqsr3smrANCivsnKTspJHquLANCivsnKTsgrzqt5wNCivsnKTsirnrj4QNCivsnKTshLjsiJwNCivsnKTsp4Dqt6ANCivsnKTtnazsnoQNCivsnKTtlZzsmqkNCivsnKTshLHtmLgNCivsnKTsp4Tqt6ANCivsnKTrp5DqtawNCivsnKTshozsnpANCivsnKTshJ3spIANCivsnKTsp4TsnKgNCivsnKTqtJHtmLgNCivsnKTsnYDtmIQNCivsnKTquLDrs7QNCivsnKTsp4TssqANCivsnKTtmJXsnqwNCivsnKTqtJHsmrANCivsnKTsg4HquIgNCivsnKTssKzquLANCivsnKTsmqntmIQNCivsnKTrjZXsmIENCivsnKTtg5zrj4wNCivsnKTssL3rnb0NCivsnKTso7ztlZwNCivsnKTsg4HtmIQNCivsnKTsiJztmLgNCivsnKTssqDspJENCivsnKTrtInshJ0NCivsnKTrjIDro6ENCivsnKTsm5DqtawNCivsnKTstqnquLgNCivsnKTqs4Tqt6ANCivsnKTrqoXshK0NCivsnKTrrLjrkZANCivsnKTtg5zquIgNCivsnKTshozrjZUNCivsnKTrs5Hsi50NCivsnKTsirnspIANCivsnKTtg5zsiJgNCivsnKTrs5HsiJkNCivsnKTsoJXquLgNCivsnKTtlYTqsJENCivsnKTtg5zsi50NCivsnKTtg5zrs7UNCivsnKTsooXsnbQNCivsnKTrqoXsp4QNCivsnKTtg53quLANCivsnKTsg4Hsi50NCivsnKTtlqXtnawNCivsnKTsnqzrr7gNCivsnKTtjJDqt6ANCivsnKTsl7DtnawNCivsnKTsmIHquIgNCivsnKTsooXssqANCivsnKTtjJDquLANCivsnKTtlbTssqANCivsnKTtmY3tnawNCivsnKTstpjtmZQNCivsnKTtjJDsiKANCivsnKTquLjqsbQNCivsnKTquLDtg5wNCivsnKTsoITtmY0NCivsnKTtlZnrspQNCivsnKTshJ3rjZUNCivsnKTssL3si50NCivsnKTshLHsiJwNCivsnKTtlZnsm5ANCivsnKTsmqntmLgNCivsnKTquLDrhbgNCivsnKTrs5HqtawNCivsnKTtlZnsobANCivsnKTtmZjquLANCivsnKTsg4HshLENCivsnKTsoJXsl7QNCivsnKTtlZzrj5kNCivsnKTtg5zsnbQNCivsnKTsnbjtmIQNCivsnKTshLHtm4gNCivsnKTtlZzrj5kNCivsnKTtlZzsmrANCivsnKTsmqnrp4wNCivsnKTshKDsspwNCivsnKTtlZzsi50NCivsnKTsmqnqsr0NCivsnKTqsr3siJwNCivsnKTsooztmY0NCivsnKTtlajqt6ANCivsnKTrhbjslrgNCivsnKTsm5DsiJgNCivsnKTrjIDsiJgNCivsnKTtmITqtZANCivsnKTshLHrpqwNCivsnKQg65OdDQor7Jyk7KCE6riIDQor7Jyk7ZiE7IiZDQor7Jyk7ISx7KKFDQor7Jyk7YOc7Zi4DQor7Jyk7JiB7KGwDQor7Jyk7ZiE7JqwDQor7Jyk66qF7ZmNDQor7Jyk7KKF642VDQor7Jyk6rK97IiYDQor7Jyk7Zi47JqpDQor7Jyk7KeE6rWQDQor7Jyk67SJ7Z2sDQor7Jyk7Z2s7YOcDQor7Jyk7ZmU7ISgDQor7Jyk7ZmN7LKgDQor7Jyk6riw64+EDQor7Jyk65297IudDQor7Jyk7Zqo6riwDQor7Jyk6riI7J28DQor7Jyk7YOc656ADQor7Jyk7IaM64+ZDQor7Jyk7Z2s64usDQor7Jyk67O17JWUDQor7Jyk7YOc7KeEDQor7Jyk7ZWY7KO8DQor7Jyk7Z2s64yADQor7Jyk7KCV7J21DQor7Jyk7KCV66eMDQor7Jyk67SJ67SJDQor7Jyk7Z2s642VDQor7Jyk7Jyk7IudDQor7Jyk7ZmN642VDQor7Jyk6rCR7JuQDQor7Jyk7Z2s7ISgDQor7Jyk7KKF6recDQor7Jyk7ZmN7J21DQor7Jyk7ISx6rSRDQor7J2A642V6riwDQor7J2A7ZeM7ISgDQor7J2A7IOB7IicDQor7J2A7Jqp7KeEDQor7J2A7Lap6riwDQor7J2A6rSR7Z2sDQor7J2A67aE7IiYDQor7J2A7Iic67ORDQor7J20IOqxtA0KK+ydtOyKueq4sA0KK+ydtOybkOyVlA0KK+ydtO2XjOq3vA0KK+ydtCDqsr0NCivsnbTsgrztlbQNCivsnbTrs5HtmLgNCivsnbTsmqnqtowNCivsnbQg7IOBDQor7J207KKF7YOdDQor7J207ISx7Zi4DQor7J207KCQ67CxDQor7J20IOyImA0KK+ydtOyYgeyImA0KK+ydtOyiheyInA0KK+ydtOy2mOyYgQ0KK+ydtCDsiJkNCivsnbTrs5HqtZANCivsnbTsoJXshJ0NCivsnbTqs4TsobANCivsnbQg7JeEDQor7J207ZW07J6sDQor7J207J6s7ZaJDQor7J2064yA7LacDQor7J20IOyduA0KK+ydtOywveq3vA0KK+ydtOyEneybkA0KK+ydtOyerOyErQ0KK+ydtCDsoJUNCivsnbTsoJXro6ENCivsnbTtg5ztlZkNCivsnbTsg4Hsl7ANCivsnbQg7KSADQor7J207Iic7ISgDQor7J207KKF6raMDQor7J207LaY7ISdDQor7J20IOymnQ0KK+ydtOy2mOydvA0KK+ydtOygleyLnQ0KK+ydtOyInOq1rA0KK+ydtCDsp4QNCivsnbTsoJXrj4QNCivsnbTshozsnpANCivsnbTsooXrspQNCivsnbQg7LKtDQor7J207IOB7Z2sDQor7J207IK87IiYDQor7J207Ja464+MDQor7J20IO2VmQ0KK+ydtO2VqOyInA0KK+ydtOyiheyerA0KK+ydtOqyveq4uA0KK+ydtCDtmLgNCivsnbTsnqztmZgNCivsnbTssL3tm4gNCivsnbTquIjsiJgNCivsnbQg7ZuIDQor7J207J2M7LKgDQor7J206rWs7JqpDQor7J207YOc7Zi4DQor7J20IO2biA0KK+ydtOuPhOyasQ0KK+ydtOyDgeunkA0KK+ydtOqyveyyoA0KK+ydtOqwgOunpA0KK+ydtOyiheyImA0KK+ydtOq3nOunjA0KK+ydtOyImOyYpQ0KK+ydtOqwkOyasA0KK+ydtOyEseq3vA0KK+ydtOyYgey2nA0KK+ydtOyyoOybkA0KK+ydtOqwkeuFuA0KK+ydtOyEuOu2gA0KK+ydtOyYgeyEsQ0KK+ydtOqyveusuA0KK+ydtOqwkeuTnQ0KK+ydtOyDgeyImA0KK+ydtOyDge2ZmA0KK+ydtOuPme2YuA0KK+ydtOqwkeyEnQ0KK+ydtOqyveqwgQ0KK+ydtOyEoO2YuA0KK+ydtOyYgeuztA0KK+ydtOqwkeyEoA0KK+ydtOykgOycpA0KK+ydtOqzoO2YuA0KK+ydtOyerOq4sA0KK+ydtOqwkeyImA0KK+ydtO2MkOyaqQ0KK+ydtOyihey2mA0KK+ydtOycpOq4sA0KK+ydtOqwkeyInA0KK+ydtOyKueyhsA0KK+ydtOyYge2YuA0KK+ydtOyYgeyImA0KK+ydtOqwkeyaqQ0KK+ydtOyEoOyYgQ0KK+ydtOygleq3vA0KK+ydtO2aqOyErQ0KK+ydtOqwkeyaqQ0KK+ydtOyDge2YuA0KK+ydtOygkOq4sA0KK+ydtOq3vO2VmQ0KK+ydtOqwkeyehA0KK+ydtOuCtOyLnQ0KK+ydtOyDgeyInA0KK+ydtOq4uOuPmQ0KK+ydtOqwkeyehA0KK+ydtOq0keq3oA0KK+ydtOuptOycqA0KK+ydtOyIoOqwkQ0KK+ydtOqwkeyhsA0KK+ydtO2DnOu2hA0KK+ydtOq1reyIoA0KK+ydtOyerOq4sA0KK+ydtOqwkeyhsA0KK+ydtOq4sOuPhA0KK+ydtOq4sOyInA0KK+ydtO2aqO2DnA0KK+ydtOqwkeyjvA0KK+ydtOustOyLnQ0KK+ydtO2DnOyErQ0KK+ydtOq0ke2drA0KK+ydtOqwleugrA0KK+ydtOq4sOynkQ0KK+ydtOyImOyImQ0KK+ydtOyYgeq3nA0KK+ydtOqwleuqhQ0KK+ydtOydgOybkA0KK+ydtOyDgeyLnQ0KK+ydtOykgOycqA0KK+ydtOqwleyEnQ0KK+ydtOycpOyInA0KK+ydtOqyveyImA0KK+ydtOywve2drA0KK+ydtOqwleyEnQ0KK+ydtOyEse2ZlA0KK+ydtOuRkOuPmQ0KK+ydtOyEse2YgQ0KK+ydtOqwleyEuA0KK+ydtO2DnOyekA0KK+ydtOyYgeyEoA0KK+ydtOyerOyErQ0KK+ydtOqwleyImA0KK+ydtOuzteyihQ0KK+ydtOyGjOq3nA0KK+ydtOyerOybkA0KK+ydtOqwleyLnQ0KK+ydtOu0ieyImA0KK+ydtOuLrOuMgA0KK+ydtOqwke2VnA0KK+ydtOqwleyynA0KK+ydtOyDgeycqA0KK+ydtOyEseyEnQ0KK+ydtOq0ke2YuA0KK+ydtOqwle2YuA0KK+ydtOyEuOyInA0KK+ydtOyImOyYgQ0KK+ydtOycpOykkQ0KK+ydtOqwle2YuA0KK+ydtOyYgeq4uA0KK+ydtOyImOyehA0KK+ydtOyihe2biA0KK+ydtOqwle2drA0KK+ydtOq4sOuzkQ0KK+ydtOuylOugqA0KK+ydtOygleyImA0KK+ydtOqwnOuPmQ0KK+ydtOustO2YuA0KK+ydtOq4iOuPmQ0KK+ydtOygleyEnQ0KK+ydtOqwnOuPmQ0KK+ydtOyDgeyImA0KK+ydtOyDgeyLnQ0KK+ydtOuPmeyErQ0KK+ydtOqxtOqzpA0KK+ydtOuzke2YhA0KK+ydtOq2jO2WpQ0KK+ydtOuCmOyyoA0KK+ydtOqxtOyEnQ0KK+ydtOq3nOyekA0KK+ydtOyImOyImA0KK+ydtOqyveyImA0KK+ydtOqxtOyYgQ0KK+ydtOynhOq3oA0KK+ydtOyEoOyEnQ0KK+ydtOycpO2YuA0KK+ydtOqxtOyYpQ0KK+ydtO2YhOuPhA0KK+ydtOyEoOyyoA0KK+ydtOyaqeyaqQ0KK+ydtOqxtOybhQ0KK+ydtOyaqeyYgQ0KK+ydtOqwkeu2hA0KK+ydtOyEseyInA0KK+ydtOqxtO2YuA0KK+ydtOyYgeyEnA0KK+ydtOuqhe2ZmA0KK+ydtOygle2ZmA0KK+ydtOqxtO2drA0KK+ydtOyjvO2VmQ0KK+ydtOycpOuwsA0KK+ydtOyihe2YuA0KK+ydtOqyuOqwkQ0KK+ydtOuvuOq4uA0KK+ydtOq0keunjA0KK+ydtOyYgeykgA0KK+ydtOqyuOqwkQ0KK+ydtOq1kOyLnQ0KK+ydtOuzteyYgQ0KK+ydtOyYpeyInA0KK+ydtOqyveq3vA0KK+ydtOyCvO2ZlA0KK+ydtOuMgOusuA0KK+ydtOusuOyasA0KK+ydtOqyveuFuA0KK+ydtOyihe2YuA0KK+ydtOyiheyasA0KK+ydtOybkO2YhA0KK+ydtOqyveuPmQ0KK+ydtOyZuOq3nA0KK+ydtOuFuO2ajA0KK+ydtO2YnOyYpQ0KK+ydtOqyveuPmQ0KK+ydtOuFuOuztQ0KK+ydtOyerOyImA0KK+ydtOuqheygnA0KK+ydtOqyveuegA0KK+ydtOywrOyglQ0KK+ydtOygleq3oA0KK+ydtOuzkeybkA0KK+ydtOqyveugrA0KK+ydtOyYgeyXtA0KK+ydtOyEoOydtA0KK+ydtOygleyImA0KK+ydtOqyveunjA0KK+ydtOuCqO2ajA0KK+ydtOyerOuNlQ0KK+ydtOydhOunjA0KK+ydtOqyveunjA0KK+ydtOycpOykgA0KK+ydtOuPmeq3vA0KK+ydtOq3vOybkA0KK+ydtOqyveuqqQ0KK+ydtOygkOyYpA0KK+ydtOyWuOu0iQ0KK+ydtOuqhe2ZmA0KK+ydtOqyveusuA0KK+ydtOyEseyXsA0KK+ydtOyiheq4uA0KK+ydtOunjOycpA0KK+ydtOqyveu0iQ0KK+ydtOygleynhA0KK+ydtOq4iOyInA0KK+ydtOy2mOq4sA0KK+ydtOqyveyEnQ0KK+ydtOyYgeyEnQ0KK+ydtOqyveu2hA0KK+ydtOyiheuhnQ0KK+ydtOqyveyEnQ0KK+ydtOykkeu0iQ0KK+ydtOuqheyEnQ0KK+ydtOq4sOq0gA0KK+ydtOqyveyEnQ0KK+ydtO2DnOq3vA0KK+ydtO2VnOyaqQ0KK+ydtOyCvOyImQ0KK+ydtOqyveyEnQ0KK+ydtOyInOyihQ0KK+ydtOyCvOu0iQ0KK+ydtOyepeyasA0KK+ydtOqyveyEoA0KK+ydtO2drOybkA0KK+ydtOygkOyehA0KK+ydtOu0ie2ZmA0KK+ydtOqyveyImA0KK+ydtOyEseyEsQ0KK+ydtOygleyErQ0KK+ydtOyYgeyasA0KK+ydtOqyveyImA0KK+ydtOyasOyyoA0KK+ydtO2MkOyImA0KK+ydtOykkeyInA0KK+ydtOqyveyImQ0KK+ydtOuPmeyEnQ0KK+ydtOq4sOywrA0KK+ydtOuztey2nA0KK+ydtOqyveyImQ0KK+ydtOyDgeuTnQ0KK+ydtOyaqeyEoA0KK+ydtOyImOq4sA0KK+ydtOqyveyInA0KK+ydtOqyveuPmQ0KK+ydtOyDge2YuA0KK+ydtOq1rOugrA0KK+ydtOqyveyInA0KK+ydtOyYpOynhA0KK+ydtOuNleuNlQ0KK+ydtO2MkOq4uA0KK+ydtOqyveyInA0KK+ydtOyEoOuztQ0KK+ydtOyImOuPmQ0KK+ydtOywveuNlQ0KK+ydtOqyveyLnQ0KK+ydtOygleyImA0KK+ydtOqyveyaqQ0KK+ydtOuLrOuPmQ0KK+ydtOqyveyLnQ0KK+ydtOyLoOq2jA0KK+ydtOyYgeusuA0KK+ydtOunkO2ZmA0KK+ydtOqyveyVlA0KK+ydtOunjOq4sA0KK+ydtOyInOyImQ0KK+ydtOu0ieq3nA0KK+ydtOqyveyYgQ0KK+ydtOq0keq4uA0KK+ydtOyiheyEnQ0KK+ydtOyInOq1rA0KK+ydtOqyveyYpQ0KK+ydtCDtmZQNCivsnbTquLDshJ0NCivsnbTsgrzsiJwNCivsnbTqsr3snbQNCivsnbTsiJjtmZgNCivsnbTshLHtmLgNCivsnbTrqoXsiJgNCivsnbTqsr3snpANCivsnbTshozrj4QNCivsnbTqsr3sp5ENCivsnbTshJ3siKANCivsnbTqsr3stpwNCivsnbTsmrDsnbgNCivsnbTrtoTqtIANCivsnbTso7ztg5wNCivsnbTqsr3tg4ENCivsnbTsooXsiJkNCivsnbTrhbjtg50NCivsnbTqsr3rj4QNCivsnbTqsr3tmLgNCivsnbTsooXtmLgNCivsnbTrj5nsiJgNCivsnbTsnKTrtoQNCivsnbTqsr3tmLgNCivsnbTsgrzssqANCivsnbTtnaztnaANCivsnbTquLjshK0NCivsnbTqsr3tmLgNCivsnbTshLHsiJgNCivsnbTsnbjsiJgNCivsnbTssL3tnawNCivsnbTqsr3tm4QNCivsnbTtg5zsoJUNCivsnbTsmIHsmrQNCivsnbTrp4zsg4ENCivsnbTqsr3tm4gNCivsnbTrs5HtmY0NCivsnbTqsr3shJ0NCivsnbTso7zqt7wNCivsnbTqsr3tnawNCivsnbTsooXroZ0NCivsnbTtmIHsooUNCivsnbTssYTshK0NCivsnbTqsr3tnawNCivsnbTrs7XsobANCivsnbTsg4HsiJgNCivsnbTssKjsmIENCivsnbTqsr3tnawNCivsnbTsoJXsnqwNCivsnbTsooXrnpgNCivsnbTsnKDqt7wNCivsnbTqs4TroZwNCivsnbTsoJXtmIQNCivsnbTsiJzquLANCivsnbTsgqzsmIENCivsnbTqs4TrrLgNCivsnbTqsr3tmZgNCivsnbTrqoXrrLgNCivsnbTsoJXqsr0NCivsnbTqs4TrtoQNCivsnbTqt7zsi50NCivsnbTsnKTsnoUNCivsnbTtmLjsg4ENCivsnbTqs4TrtoQNCivsnbTsmIHsmKQNCivsnbTsoJDqsr0NCivsnbTsl4XssqANCivsnbTqs4TsnpANCivsnbTqs7XslYUNCivsnbTsiJzrj5kNCivsnbTsiJzqt7wNCivsnbTqs4TstpwNCivsnbTtmITqsJUNCivsnbTsuaDsmYQNCivsnbTsoJzqtZANCivsnbTqs4TtmLgNCivsnbTsmIHshKANCivsnbTsnbjsl7QNCivsnbTsnqXsnpANCivsnbTqs4TtmY0NCivsnbTtlYTqtawNCivsnbTtg53qt7wNCivsnbTsoJXqtowNCivsnbTqs4TtmZQNCivsnbTsmKTquLANCivsnbTstpjsobANCivsnbTsl6zqtIANCivsnbTqs4Ttm4gNCivsnbTsnZjsi50NCivsnbTtlYTsiJwNCivsnbTsmqnspJENCivsnbTqs6Dtm4gNCivsnbTrp4zrpr0NCivsnbTtg5zsspwNCivsnbTsnqzquLANCivsnbTqs7Xrp4wNCivsnbTssL3soJUNCivsnbTqs4Ttg5wNCivsnbTsmIHsiJgNCivsnbTqtIDquLANCivsnbTrqoXquLANCivsnbTsg4HrsLANCivsnbTshLHquLANCivsnbTqtIDsi50NCivsnbTsnKTrpqwNCivsnbTrj5nsiJgNCivsnbTshozquLgNCivsnbTqtIDsi50NCivsnbTsg4HssqANCivsnbTtg5zrtIkNCivsnbTsoJXstpwNCivsnbTqtIDsnbQNCivsnbTsoJDrj5kNCivsnbTqsr3sm4UNCivsnbTrqoXsnoUNCivsnbTqtIDtnawNCivsnbTqt5zsmqkNCivsnbTsp4Trj4QNCivsnbTrs5Hqt7wNCivsnbTqtJHrjZUNCivsnbTsm5DsnbwNCivsnbTtg5zrp4wNCivsnbTrtoTtlqUNCivsnbTqtJHrsLANCivsnbTsg4HsiJgNCivsnbTrjIDqsbQNCivsnbTrj5ntmZgNCivsnbTqtJHshJ0NCivsnbTsnITsl7QNCivsnbTrgqjsi50NCivsnbTsjI3qt7wNCivsnbTqtJHshJ0NCivsnbTsnqzso7wNCivsnbTtg5ztmIQNCivsnbTsiJjsmqkNCivsnbTqtJHsiJgNCivsnbTsooXsnqwNCivsnbTshJ3shLENCivsnbTsg4HsnbQNCivsnbTqtJHsiJgNCivsnbTsg4HrsLANCivsnbTtlZzsi50NCivsnbTquI3sobANCivsnbTqtJHsiJgNCivsnbTsiJzsnpANCivsnbTqt5zqsr0NCivsnbTquIjtg5wNCivsnbTqtJHsiJgNCivsnbTrqoXrtIkNCivsnbTtg5zqta0NCivsnbTsg4Hsm5ANCivsnbTqtJHsiJgNCivsnbTsirnqta0NCivsnbTrs5HtmLgNCivsnbTslrXsnpANCivsnbTqtJHsiJgNCivsnbTshJ3sgrwNCivsnbTsg4Hsp4QNCivsnbTsiJjtmZQNCivsnbTqtJHsi50NCivsnbTrj5nqt7wNCivsnbTrp4zsmYQNCivsnbTsp4TtmZgNCivsnbTqtJHsl7QNCivsnbTshozqs6QNCivsnbTrj4Tsm5ANCivsnbTsg4Hqt5wNCivsnbTqtJHsnbwNCivsnbTssKjsi50NCivsnbTrqoXrj5kNCivsnbTtg5zquLANCivsnbTqtJHsnpANCivsnbTrqoXssqANCivsnbTtlZzso7wNCivsnbTtnazqta0NCivsnbTqtJHsnqwNCivsnbTsooXsiJkNCivsnbTsooXrr7wNCivsnbTsiJjtnawNCivsnbTqtJHsnqwNCivsnbTrp4zrnpgNCivsnbTtlbTtlYQNCivsnbTsoJXrjZUNCivsnbTqtJHsobANCivsnbTquLDspIANCivsnbTsooXsiJwNCivsnbTtg5zrgqgNCivsnbTqtJHsobANCivsnbTquLDrpqwNCivsnbTrr7jsooUNCivsnbTshLjtg50NCivsnbTqtJHspIANCivsnbTshLHtlZkNCivsnbTrs7XshJ0NCivsnbTstpjshJ0NCivsnbTqtJHtg50NCivsnbTrtoTtmZgNCivsnbTsnKTtg50NCivsnbTsooXtmLgNCivsnbTqtJHtlokNCivsnbTsg4Hsi50NCivsnbTtnazrj4QNCivsnbTsiKDsobANCivsnbTqtJHtmLgNCivsnbTrp4ztlZkNCivsnbTsl7Dtg50NCivsnbTquLjssqANCivsnbTqtJHtmLgNCivsnbTsooXsiKANCivsnbTsmKXsmqkNCivsnbTqtJHtmLgNCivsnbTqtJHtmLgNCivsnbTquLDqtIANCivsnbTsp4TrtoANCivsnbTtlZzsiJkNCivsnbTqtJHtmLgNCivsnbTsnbjsnKQNCivsnbTsnqzsmrANCivsnbTrjZXqsr0NCivsnbTqtJHtmLgNCivsnbTsirnquLgNCivsnbTsmKXtnawNCivsnbTsnKTsnbwNCivsnbTqtJHtmLgNCivsnbTrs5HtmLgNCivsnbTtg5zshK0NCivsnbTsnoTsmqkNCivsnbTqtJHtnawNCivsnbTshLHshJwNCivsnbTqt5zsspwNCivsnbTsp4Ttm4gNCivsnbTqtZDshKANCivsnbTrr7jtnawNCivsnbTstpjqt5wNCivsnbTquLDtmLgNCivsnbTqtZDso7wNCivsnbTsi6TsmrENCivsnbTsnqzqt5wNCivsnbTspIDshJ0NCivsnbTqtZDso7wNCivsnbTslrjqsJENCivsnbTsnqzquLANCivsnbTtjJDsl7QNCivsnbTqtZDssqANCivsnbTquLDrs7UNCivsnbTtnaXsmqkNCivsnbTsooXtl4wNCivsnbTqtazrs7UNCivsnbTshKDrj5kNCivsnbTqs4TssqANCivsnbTsmqnsmYQNCivsnbTqtazsm5ANCivsnbTsoJXsiJgNCivsnbTsmIHsl7QNCivsnbTsirntg5wNCivsnbTqtazssqANCivsnbTtmLjqsr0NCivsnbTsnZjrs7UNCivsnbTsmqntnawNCivsnbTqtaztmLgNCivsnbTrj5ntnaANCivsnbTsmIHrtoQNCivsnbTsg4Hsi50NCivsnbTqtaztmY0NCivsnbTsg4HshKANCivsnbTsnqzrp4wNCivsnbTrgpnsiJgNCivsnbTqta3qt6ANCivsnbTqsJHsnbwNCivsnbTtlbTsm5ANCivsnbTrjIDshJ0NCivsnbTqta3sobANCivsnbTspJHtmJUNCivsnbTrs5Hri6wNCivsnbTshozsspwNCivsnbTqta3tmZgNCivsnbTsp4Ttg5wNCivsnbTquLDqtowNCivsnbTsnKHrkZANCivsnbTqta3tnawNCivsnbTtjJDsiJkNCivsnbTsooXshJ0NCivsnbTsnpDrgqgNCivsnbTqtozrj4QNCivsnbTsnqzrtIkNCivsnbTsoJDshLENCivsnbTtg5zsi50NCivsnbTqtozsiJwNCivsnbTtlZztmIQNCivsnbTsooXsuZgNCivsnbTrr7jqtJENCivsnbTqtozsiKANCivsnbTqtZDrnpgNCivsnbTsnbzsp4QNCivsnbTrj4TtmJUNCivsnbTqtoztlZwNCivsnbTtlZnrj4QNCivsnbTsmqnsiJwNCivsnbTrqoXsi50NCivsnbTqtoztmLgNCivsnbTtmITsg4ENCivsnbTtg5zqs6QNCivsnbTrgqjrs7UNCivsnbTqt4DrgqgNCivsnbTrjIDsi50NCivsnbTqtJHsi50NCivsnbTqt7zrs7UNCivsnbTqt4DrgqgNCivsnbTrj5nsmrANCivsnbTqsJHsmqkNCivsnbTshLHtnawNCivsnbTqt4DrjZUNCivsnbTsnqzsiJkNCivsnbTrs5HsiJwNCivsnbTsiJzsi50NCivsnbTqt4DtnawNCivsnbTsnYTsnbQNCivsnbTsmIHsmKUNCivsnbTsoJXqsJENCivsnbTqt4Tsi50NCivsnbTsg4HrqoUNCivsnbTsnqXshJ0NCivsnbTsoJXsnbUNCivsnbTqt5zqsr0NCivsnbTtlZnsmqkNCivsnbTqsr3rsLANCivsnbTsmIHrjZUNCivsnbTqt5zrgqgNCivsnbTshLHtmZgNCivsnbTrp5Dqt5wNCivsnbTshKDrtIkNCivsnbTqt5zrhYQNCivsnbTsiJjsiJgNCivsnbTqsJHsiJgNCivsnbTsiJzqtawNCivsnbTqt5zri7QNCivsnbTsmIHsiJgNCivsnbTsnbjsmqkNCivsnbTrjZXquLANCivsnbTqt5zrj4QNCivsnbTsmKXstpwNCivsnbTrs5Hsm5ANCivsnbTsiJzqs6ANCivsnbTqt5zrj4gNCivsnbTshqHquLANCivsnbTsmqntmIQNCivsnbTrj5nsl7QNCivsnbTqt5zroYANCivsnbTsg4Hsi50NCivsnbTtmY3sl7QNCivsnbTrs5HtmZgNCivsnbTqt5zrqoUNCivsnbTrj5ntlZkNCivsnbTsooXqt7wNCivsnbTrjIDshJ0NCivsnbTqt5zrs7UNCivsnbTrkZDsg4ENCivsnbTrrLjsi50NCivsnbTspIDqsr0NCivsnbTqt5zrs7UNCivsnbTsg4HtmLgNCivsnbTslpHtmowNCivsnbTtlbTshK0NCivsnbTqt5zrtoANCivsnbTsm5DsmqkNCivsnbTrs5Hsi50NCivsnbTsooXquLANCivsnbTqt5zsg4ENCivsnbTsm5Dqt5wNCivsnbTsirnsmrANCivsnbTsnqzrtIkNCivsnbTqt5zsg4ENCivsnbTqsJHtl4wNCivsnbTqsr3siJgNCivsnbTshLHrjZUNCivsnbTqt5zshJ0NCivsnbTsg4HtmLgNCivsnbTqsr3tmLgNCivsnbTrs5Htm4gNCivsnbTqt5zshK0NCivsnbTtg5zqtZANCivsnbTsm5Tsl7ANCivsnbTrj4Ttg5wNCivsnbTqt5zshK0NCivsnbTsnZjtmLgNCivsnbTrj5nsoJANCivsnbTtg5zshKANCivsnbTqt5zshLENCivsnbTsobDqtIANCivsnbTtlbTshKANCivsnbTsirnquLANCivsnbTqt5zsiJkNCivsnbTsg4HstpgNCivsnbTsmrTsuaANCivsnbTsnoTspp0NCivsnbTqt5zslYgNCivsnbTsm5DqtbANCivsnbTtg5ztmZgNCivsnbTsmqntmLgNCivsnbTqt5zsmKUNCivsnbTsp4Tsi50NCivsnbTqsr3sp4QNCivsnbTshKDsmrANCivsnbTqt5zsmKUNCivsnbTquLDsl7QNCivsnbTsi6zsmKQNCivsnbTsnbzquLgNCivsnbTqt5zsmYQNCivsnbTrtoDtmZgNCivsnbTrqoXsnbwNCivsnbTshJ3shJ0NCivsnbTqt5zsmYQNCivsnbTqtJHsobANCivsnbTstpjshKANCivsnbTsmrTrjZUNCivsnbTqt5zsmqkNCivsnbTshJ3rtIkNCivsnbTsiJjsmqkNCivsnbTsm5Dqs6QNCivsnbTqt5zsmqkNCivsnbTsm5Dtg5wNCivsnbTtl4zrkZANCivsnbTsg4Hrj5kNCivsnbTqt5zsm5ANCivsnbTrkZDtmLgNCivsnbTsg4HquLANCivsnbTrp5Dtg5wNCivsnbTqt5zsnbgNCivsnbTsoJXrspQNCivsnbTtjJDslrUNCivsnbTsoJXrsLANCivsnbTqt5zso7wNCivsnbTsiJjtmZgNCivsnbTsiJjsp4QNCivsnbTsooXsiJkNCivsnbTqt5zsp4QNCivsnbTtmITtg5wNCivsnbTsiJzqsr0NCivsnbTqsr3smrENCivsnbTqt5zsp4QNCivsnbTsirntkZwNCivsnbTsmIHsmYQNCivsnbTsg4Hqt7wNCivsnbTqt5zssKwNCivsnbTsnqzsiJgNCivsnbTsoJXrnoANCivsnbTsmIHrn4kNCivsnbTqt5zssKwNCivsnbTqt5zsnbUNCivsnbTtlZzsiJgNCivsnbTsl7Dqt5wNCivsnbTqt5ztg5wNCivsnbTsoJXso7wNCivsnbTqt7ztlbQNCivsnbTqt5ztmY0NCivsnbTqt5ztg5wNCivsnbTtlbTsiJgNCivsnbTsm5DrrLgNCivsnbTrqoXsnpANCivsnbTqt5ztg50NCivsnbTsnqXsnpANCivsnbTsnKTtmLgNCivsnbTsg4HtmJENCivsnbTqt5ztlZwNCivsnbTqtazsiJwNCivsnbTrjZXslrgNCivsnbTsmqntlbQNCivsnbTqt5ztmIQNCivsnbTsooXsmrANCivsnbTshKDsobANCivsnbTtmLjsmIENCivsnbTqt5ztmY0NCivsnbTsnKTsl7QNCivsnbTsmqntnawNCivsnbTtg5ztm4gNCivsnbTqt6DslZQNCivsnbTsiJjsg4ENCivsnbTsiJjslZQNCivsnbTsg4HtmLgNCivsnbTqt6Dsl7QNCivsnbTtmJztnawNCivsnbTtnazrrLgNCivsnbTsnKTrj5kNCivsnbTqt6DtmLgNCivsnbTspJHtmZQNCivsnbTrtInso7wNCivsnbTtmJzrp4wNCivsnbTqt7zqsJENCivsnbTqsr3rs5ENCivsnbTsmIHsmIENCivsnbTstpjsg50NCivsnbTqt7zquLANCivsnbTrj5nsmqkNCivsnbTroLnsiJgNCivsnbTrgpnsnqwNCivsnbTqt7zquLgNCivsnbTsiJjshKANCivsnbTsmIHsmrANCivsnbTrr7jsmIENCivsnbTqt7zrsLANCivsnbTsnKTsm5ANCivsnbTstpjsi50NCivsnbTqtJHquLgNCivsnbTqt7zrsLENCivsnbTsg4HtmLgNCivsnbTrp4zqt5wNCivsnbTsiJzsm5ANCivsnbTqt7zrspQNCivsnbTtmITtmZgNCivsnbTsiJzrs7UNCivsnbTqsJHsi50NCivsnbTqt7zrs7QNCivsnbTsmqnsiJwNCivsnbTshLHsl7ANCivsnbTssqDrs5ENCivsnbTqt7zrtIkNCivsnbTqt5zrj5kNCivsnbTsmIHsiKANCivsnbTrnpjtmJUNCivsnbTqt7zshJwNCivsnbTsoJXsm5ANCivsnbTtlZzrp4wNCivsnbTsnKTsuZgNCivsnbTqt7zshJ0NCivsnbTssL3so7wNCivsnbQg7ZmYDQor7J207YOc7IicDQor7J206re87IiYDQor7J207Jyk6riwDQor7J207ISx7ISdDQor7J206rSR7ZmUDQor7J206re87JiBDQor7J207J6s7ZalDQor7J207ZWc7ISdDQor7J207IiY7KGwDQor7J206re87JqwDQor7J207IK87IigDQor7J2067aE7IOdDQor7J207ISx7IiZDQor7J206re87JqwDQor7J207YOc66GADQor7J207Lmg7IiYDQor7J207Zi47J20DQor7J206re87JqwDQor7J207Jqp64yADQor7J207Iig7IOBDQor7J206rK96riwDQor7J206re87KSADQor7J207J247JykDQor7J2066eQ6re8DQor7J207JiB7J28DQor7J206re87KSRDQor7J207JiB7IiZDQor7J207IS47KKFDQor7J207JiB7Z2sDQor7J206re87KeBDQor7J207Zi47IudDQor7J207Jqw7IudDQor7J207Jqp7ZiVDQor7J206re87YOcDQor7J207JiB7JqpDQor7J2064+Z7JqpDQor7J207IiY6raMDQor7J206re87YOdDQor7J207KKF7IiYDQor7J207LC97J28DQor7J207JmE7JqpDQor7J206re87Zi4DQor7J206rK97J20DQor7J206riw7KGwDQor7J207YOc6recDQor7J206re87ZmUDQor7J207LC97ZqoDQor7J207Jqp7ZmYDQor7J207KKF67aEDQor7J206re87ZmpDQor7J207ISx7KeEDQor7J207KCV7Zi4DQor7J2066e567SJDQor7J206riI66GADQor7J207Iic65OdDQor7J207ZWc7Zi4DQor7J207ZWc7KGwDQor7J206riI7IK8DQor7J207Jil65OdDQor7J2066qF7ZiEDQor7J207Jil7ISdDQor7J206riI7ISdDQor7J2066eM7KCVDQor7J207Jqp7YOcDQor7J207ISg7IudDQor7J206riI7ISdDQor7J20642V67aEDQor7J207ISx7ZiEDQor7J2064+Z6rCRDQor7J206riI7ISdDQor7J207ISx7IiYDQor7J2064yA6recDQor7J207YOc66eMDQor7J206riI7ISgDQor7J207KKF6rK9DQor7J207ISx7IS4DQor7J2067SJ7IiYDQor7J206riI7ISgDQor7J2064+Z7IicDQor7J207Iug7ISdDQor7J2066eM7Zi4DQor7J206riI7IudDQor7J207Iah7IiZDQor7J207IOB7JilDQor7J207J2467SJDQor7J206riI7JewDQor7J207YOc7J6sDQor7J2066eQ7IudDQor7J2064Ko7ZiEDQor7J206riI7JewDQor7J2067O17ISdDQor7J207Jil7ZmYDQor7J206rK97YOdDQor7J206riI7JilDQor7J2064yA67ORDQor7J207IiY64KoDQor7J207ISx7JqpDQor7J206riI7JilDQor7J206rK97IudDQor7J207IiY7IicDQor7J206rec64+ZDQor7J206riI7J6QDQor7J207YOc7LacDQor7J207J6s67CwDQor7J2064yA7LC9DQor7J206riI7KO8DQor7J207J247IiYDQor7J207Jqw67SJDQor7J2064+E7JykDQor7J206riI7LmYDQor7J207KCV7KKFDQor7J207KCV7JewDQor7J207KO87KGwDQor7J206riw64+ZDQor7J207JmE7KSADQor7J207KCQ7LKgDQor7J2067OR7YOcDQor7J206riw66GcDQor7J207IiY7KeEDQor7J206rCR7IicDQor7J207Z2l7IiYDQor7J206riw66eMDQor7J207Zqo64KoDQor7J207YOc7ZmYDQor7J206rOE7LCsDQor7J206riw66qpDQor7J207ZWc7LKgDQor7J207IOB7IOBDQor7J207J207LKgDQor7J206riw67ORDQor7J207J246rCVDQor7J207ISx6riwDQor7J2064us7ZmYDQor7J206riw67O1DQor7J207JuQ7JikDQor7J20642V7ZiEDQor7J207KKF7IiZDQor7J206riw67aEDQor7J207Iic67KUDQor7J207J247KO8DQor7J207IOB7IusDQor7J206riw67mIDQor7J2067OR7ISdDQor7J206ri47IicDQor7J207J6s67O0DQor7J206riw7IOBDQor7J206rK97Zi4DQor7J207KCV7ZiEDQor7J207YOc7JiBDQor7J206riw7IOBDQor7J207YOc7LKgDQor7J206rSR67SJDQor7J206riw7ZWZDQor7J206riw7IOBDQor7J207J287JewDQor7J207ISx7KSADQor7J207J2Y7IicDQor7J206riw7IOdDQor7J2067SJ7JqwDQor7J207L6M6recDQor7J207LCo66eMDQor7J206riw7IS4DQor7J207KKF7ISxDQor7J207JuQ6re8DQor7J207KCV7J20DQor7J206riw7IahDQor7J207Iic66+8DQor7J207KCV7Je0DQor7J207KCV7Z2sDQor7J206riw7IicDQor7J207KeE7ZWcDQor7J2064+E7ZWcDQor7J207J6l7J24DQor7J206riw7IicDQor7J207LGE7KCVDQor7J207KO87Z2sDQor7J206rSA7ZmUDQor7J206riw7IudDQor7J207IOB6recDQor7J207J6l7IudDQor7J207J2Y66eMDQor7J206riw7JWUDQor7J207ZiE7IiYDQor7J207IOB7J6EDQor7J207KKF6rWtDQor7J206riw7JewDQor7J207LGE7LKgDQor7J207YOc6re8DQor7J207LGE7IicDQor7J206riw7JiBDQor7J207JiB64+ZDQor7J2064yA7Je0DQor7J207J6s67O1DQor7J206riw7JiBDQor7J207YOA7JqpDQor7J207KeE7IOBDQor7J206rSR7LKgDQor7J206riw7JmEDQor7J207Jyk7ZWZDQor7J207JuQ7Z2sDQor7J207KSA7LKcDQor7J206riw7JqpDQor7J207Iic7ZWZDQor7J207ISx7JilDQor7J207KCV6rOEDQor7J206riw7JqwDQor7J207KO87IiYDQor7J2064+Z7IicDQor7J207LaU67O1DQor7J206riw7JuFDQor7J207Lap7Z2gDQor7J207ISd7Z2sDQor7J207IOB7ISdDQor7J206riw7JuQDQor7J2067OR7ZmNDQor7J2064yA6rK9DQor7J207JiB7ZqoDQor7J206riw7JuQDQor7J2064yA6re8DQor7J207JWU7KeEDQor7J207Lac65GQDQor7J206riw7J6QDQor7J207LaY7Z2sDQor7J206rK97Z2sDQor7J207ZWc7Zi4DQor7J206riw7KCEDQor7J207KCV7IiZDQor7J207YOd65OdDQor7J207KCV7Z2sDQor7J206riw7KKFDQor7J207KKF7ZuIDQor7J206riw7IiYDQor7J207IiY7IiZDQor7J206riw7KO8DQor7J2065GQ6raMDQor7J2065GQ6rCRDQor7J207IOB7IiYDQor7J206riw7KO8DQor7J207YyQ7KeEDQor7J207ZKN6re8DQor7J206rK97Je0DQor7J206riw7KeEDQor7J2067aA7ISgDQor7J207ISx7J6RDQor7J2064yA67SJDQor7J206riw7LC9DQor7J207KCV7ISdDQor7J2067OR7Je0DQor7J207LKc7IudDQor7J206riw7LC9DQor7J206rCR7IiYDQor7J206riw7IiYDQor7J2064+Z7Z2sDQor7J206riw7LKgDQor7J207IOB64+ZDQor7J207Lap66eMDQor7J207YyU7ZuIDQor7J206riw7LKgDQor7J207ISx7LKgDQor7J207JuQ7IudDQor7J207LKc7JewDQor7J206riw7YOcDQor7J207KCQ7YOcDQor7J206rCV7Zi4DQor7J2064KZ7JqwDQor7J206riw7YOcDQor7J2064+E7ZGcDQor7J207KSA7YOcDQor7J207Jqp6rWsDQor7J206riw7YOcDQor7J206rOE7JWFDQor7J207ZWc7ZmYDQor7J207Zi47IigDQor7J206riw7Zi4DQor7J207IOB7Zi4DQor7J207ZaJ6re8DQor7J207IOB7JuQDQor7J206riw7Zi4DQor7J2066qF66y4DQor7J207Jqx7Jq0DQor7J207YOc7ZmYDQor7J206riw7Zi4DQor7J2065GQ7J28DQor7J2066eM64KoDQor7J207ISg7Zi4DQor7J206riw7ZmNDQor7J2066qF7KSRDQor7J2067OR7KSADQor7J2067aA64yADQor7J206riw7ZmNDQor7J207KCV7IiZDQor7J207KKF7ZiEDQor7J207Iic7J6QDQor7J206riw7ZmUDQor7J207LaY7IicDQor7J207ISx7ZiEDQor7J207YOc7JewDQor7J206riw7ZmYDQor7J207LaY7ISdDQor7J2067SJ7J28DQor7J207KCQ66GcDQor7J206riw7ZuIDQor7J207YOc6recDQor7J207IaM7IudDQor7J207KKF7IStDQor7J206ri47ISdDQor7J207Jqw67SJDQor7J207Iug7Je0DQor7J207JiB7KGwDQor7J206ri47ISgDQor7J207KKF7Zi4DQor7J207Z2s7Z2gDQor7J2064yA7ZiEDQor7J206ri47JqpDQor7J207Zi47IiZDQor7J207J6s7ZmYDQor7J207ISx7ISdDQor7J206ri47JqpDQor7J207IOB7Je9DQor7J207ZW06riwDQor7J207J6s7IicDQor7J206ri47J6sDQor7J20642V7ZmYDQor7J207Jil656YDQor7J207Z2s7KKFDQor7J206ri47J6sDQor7J207KCV7J2RDQor7J207Jqw7JqxDQor7J207KKF7KSRDQor7J206ri47LKgDQor7J2066+87IigDQor7J207KKF7IStDQor7J207J287JiBDQor7J206ri47YOcDQor7J207YOc7ISdDQor7J207LC97ZmUDQor7J207KeE66qpDQor7J206ri47ZWcDQor7J207YOc7IudDQor7J207Iic65OdDQor7J207Zqo7ZqMDQor7J206ri47Zi4DQor7J207KKF7IudDQor7J206rOE7IicDQor7J206rec64WADQor7J206ri47Zi4DQor7J207LKc7JuQDQor7J207KSR7Zi4DQor7J2067OR7KSADQor7J206ri47ZmYDQor7J207ISg7IOBDQor7J207LC97ISdDQor7J2064+Z7ISgDQor7J206ri47ZyYDQor7J207KKF6rK9DQor7J207Jyk7JqpDQor7J207KSA7ZeMDQor7J2064Ko6riwDQor7J2067aA7IudDQor7J207KKF7JikDQor7J207YOc7ZWZDQor7J2064Ko6riwDQor7J2064yA6re8DQor7J207KO87ZGcDQor7J207J287ZiVDQor7J2064Ko642VDQor7J207IOB7ZmYDQor7J207KKF7ZeMDQor7J207LGE6rWsDQor7J2064Ko7ISgDQor7J206rSR6rWsDQor7J207J6s7JiBDQor7J207J6s7JmEDQor7J2064Ko7IicDQor7J207KO87IudDQor7J207KCV67aEDQor7J207ZW07KO8DQor7J2064Ko7IigDQor7J207ISg66CsDQor7J207JiB67aEDQor7J2066qF7Z2sDQor7J2064Ko7LKgDQor7J206rK97Je0DQor7J207JiB7JuFDQor7J207YyQ64+ZDQor7J2064W46re8DQor7J206rSR6rWsDQor7J206rK97IOBDQor7J207YOc64+MDQor7J2064W47ISdDQor7J207ISx7ISxDQor7J207LGE7Z2sDQor7J207LC967CwDQor7J2064W47KKFDQor7J207KO87JqwDQor7J207KCV66eMDQor7J207JiB65GQDQor7J2064uk7IicDQor7J206riw66GdDQor7J207IOB7IigDQor7J207ZmY64+ZDQor7J2064us6rSADQor7J207ZiV7JyoDQor7J207YyQ7JewDQor7J207KCV7Zi4DQor7J2064us6riwDQor7J207Jil7JiBDQor7J207IiY7ISdDQor7J207Jqp7JqxDQor7J2064us6riwDQor7J2067aE7Jq0DQor7J2066qF66OhDQor7J2065Ox7KO8DQor7J2064us6riwDQor7J206rOE7JWUDQor7J207Jq066+8DQor7J207ZiE7JWUDQor7J2064us66GADQor7J207Iic7ZmYDQor7J207YOc7IudDQor7J207J2A7KO8DQor7J2064us66GcDQor7J207ZW07J6EDQor7J207JiB7IS4DQor7J207IOB7J20DQor7J2064us67SJDQor7J2067OR66GdDQor7J20IOyatA0KK+ydtOyEseyaqQ0KK+ydtOuLrOyCvA0KK+ydtOyduOyImA0KK+ydtO2VtOyXsA0KK+ydtO2YhOyInA0KK+ydtOuLrOyImA0KK+ydtOyLoOyerA0KK+ydtOyDgeuztQ0KK+ydtOuvvOuNlQ0KK+ydtOuLrOyYgQ0KK+ydtOyInOyXsA0KK+ydtOuPmeq4sA0KK+ydtO2VnO2biA0KK+ydtOuLrOyYgQ0KK+ydtOyImOyhsA0KK+ydtO2Yley2nA0KK+ydtOyjvOq1rQ0KK+ydtOuLrOyZhA0KK+ydtOyYge2MlA0KK+ydtOunjOuvuA0KK+ydtOyYpO2XjA0KK+ydtOuLrOybhQ0KK+ydtOuqheynhA0KK+ydtOyEuOq4sA0KK+ydtOyInOyjvA0KK+ydtOuLrOywvQ0KK+ydtOyasOy2nA0KK+ydtOu0ieydtQ0KK+ydtOyYgeyImA0KK+ydtOuLrOy0iA0KK+ydtOyYgeuemA0KK+ydtOyerOuPmQ0KK+ydtOqyve2ZmA0KK+ydtOuLrO2MjA0KK+ydtOyYge2ZmA0KK+ydtO2drOyatA0KK+ydtO2XjOynhA0KK+ydtOuLrO2PrA0KK+ydtOydvOu2hA0KK+ydtOuzkeyYgQ0KK+ydtOyEseq3nA0KK+ydtOuLrO2YuA0KK+ydtO2VhOywvQ0KK+ydtOygleunjA0KK+ydtOyasOq1rQ0KK+ydtOuLrO2YuA0KK+ydtOyasOu0iQ0KK+ydtOyyoOydgA0KK+ydtOyerO2YhA0KK+ydtOuLrO2YuA0KK+ydtOywrO2YuA0KK+ydtOyDgeyImA0KK+ydtOuqheyerA0KK+ydtOuLrO2YuA0KK+ydtOyiheyatA0KK+ydtOyyoOuPjA0KK+ydtO2VnOyVlA0KK+ydtOuLrO2ZlA0KK+ydtOyepeyYpQ0KK+ydtOq3vOq3vA0KK+ydtOyImOyekA0KK+ydtOuLrO2ZlA0KK+ydtO2VtOyEsQ0KK+ydtOyerO2VtA0KK+ydtOyViOyVlA0KK+ydtOuLrO2ctA0KK+ydtO2VnOu2hA0KK+ydtOygleyImA0KK+ydtOqyve2dlA0KK+ydtOuLrO2drA0KK+ydtOyInOq3oA0KK+ydtOuMgO2drA0KK+ydtOuzkeyImA0KK+ydtOuMgOuzkQ0KK+ydtOuPmeyEsQ0KK+ydtOq4sOynhA0KK+ydtOuPmeyImA0KK+ydtOuMgOyEnQ0KK+ydtOyYgeufiQ0KK+ydtOq4sOyynA0KK+ydtOyynOuNlQ0KK+ydtOuMgOyEsQ0KK+ydtOyInOyasA0KK+ydtOq4sOyInA0KK+ydtOyWteyImA0KK+ydtOuMgOyEsQ0KK+ydtOyWkeyXsA0KK+ydtOybkOunjA0KK+ydtOygkOyZhA0KK+ydtOuMgOyEuA0KK+ydtOuzkeufiQ0KK+ydtOq1re2VhA0KK+ydtOuzkeuzkQ0KK+ydtOuMgOyEuA0KK+ydtOynhOuztQ0KK+ydtO2XjOq4sA0KK+ydtO2DnOyasA0KK+ydtOuMgOyLnQ0KK+ydtOyduOuztQ0KK+ydtOyEneqyvQ0KK+ydtO2YuOynhA0KK+ydtOuMgOyLnQ0KK+ydtOuPmeq3vA0KK+ydtO2VtOyLnQ0KK+ydtO2DneyInA0KK+ydtOuMgOyaqQ0KK+ydtOq4sOyXsA0KK+ydtO2Yleq3nA0KK+ydtOyXsOyasQ0KK+ydtOuMgOyasA0KK+ydtO2YuOuztQ0KK+ydtOygleumvQ0KK+ydtOuzkeyXsA0KK+ydtOuMgOyasA0KK+ydtOyLnOyErQ0KK+ydtOuzkeyaqQ0KK+ydtOyEse2drA0KK+ydtOuMgOyasA0KK+ydtOuMgO2YhA0KK+ydtOyjvOyZhA0KK+ydtO2VmeyasA0KK+ydtOuMgOybkA0KK+ydtOyEne2ZjQ0KK+ydtOynhOyInA0KK+ydtOu0ieyYgQ0KK+ydtOuMgO2VrQ0KK+ydtOyDgeq1rA0KK+ydtOuRkOyYpA0KK+ydtOybkOyImA0KK+ydtOuMgO2biA0KK+ydtOq1reyLnQ0KK+ydtOu0ieuFuA0KK+ydtOydvOyVoA0KK+ydtOuMgO2biA0KK+ydtOyWuOyjvA0KK+ydtOyEuOyekA0KK+ydtOyLoOyLnQ0KK+ydtOuMgO2drA0KK+ydtO2XjOq3vA0KK+ydtOynhOy2nA0KK+ydtOuCqOyWtQ0KK+ydtOuNleuCqA0KK+ydtOuzteq2jA0KK+ydtOunkOyXsA0KK+ydtO2ZlOybkA0KK+ydtOuNleuFlQ0KK+ydtOy+jOuNlQ0KK+ydtOyInO2VtA0KK+ydtOyYgeyekA0KK+ydtOuNleuemA0KK+ydtOusuOq3nA0KK+ydtOyInOyImA0KK+ydtOqyveycpA0KK+ydtOuNleuwsA0KK+ydtOyImOyYgQ0KK+ydtO2DnOyLnQ0KK+ydtOunkO2YuA0KK+ydtOuNleu0iQ0KK+ydtOyEoOuCqA0KK+ydtOygleywrA0KK+ydtOygleyImA0KK+ydtOuNleu0iQ0KK+ydtO2VtOqwkQ0KK+ydtOyihe2drA0KK+ydtOygle2ZlA0KK+ydtOuNleyDgQ0KK+ydtOyjvOyInA0KK+ydtO2YhOuPhA0KK+ydtO2DnOyInA0KK+ydtOuNleyEnQ0KK+ydtO2DnO2ZmA0KK+ydtOydvOuNlQ0KK+ydtOybkO2YhA0KK+ydtOuNleyInA0KK+ydtOyYgeyaqQ0KK+ydtOuNleuCqA0KK+ydtOyjvOuztQ0KK+ydtOuNleyInA0KK+ydtOywrOywrA0KK+ydtOuNle2ZmA0KK+ydtOyiheumvA0KK+ydtOuNleyInA0KK+ydtOuPmeyekA0KK+ydtOuvuOyekA0KK+ydtOu0ieyDgQ0KK+ydtOuNleyYgQ0KK+ydtOynhOyXsA0KK+ydtOynhOuPmQ0KK+ydtO2VnOyhsA0KK+ydtOuNleyaqQ0KK+ydtOuNleyVoA0KK+ydtOybkOydtA0KK+ydtOyGjOyasA0KK+ydtOuNleycpA0KK+ydtO2DnOyImA0KK+ydtOyYpeyVoA0KK+ydtOyYge2ZmA0KK+ydtOuNleyerA0KK+ydtO2VtO2XjA0KK+ydtOygkOyduA0KK+ydtOyngOykgA0KK+ydtOuNle2YlQ0KK+ydtOyaqeyekA0KK+ydtOuFuOyImA0KK+ydtOyerO2WpQ0KK+ydtOuNle2YuA0KK+ydtOuMgOyImA0KK+ydtOygleyInA0KK+ydtOq0keuylA0KK+ydtOuNle2ZmA0KK+ydtOq1reyEuA0KK+ydtOyjvOuPmQ0KK+ydtOyDgeyXtA0KK+ydtOuNle2drA0KK+ydtOyasO2YhA0KK+ydtOywqOycqA0KK+ydtOyYgeyEnQ0KK+ydtOuNle2drA0KK+ydtOyDgeyjvA0KK+ydtOynhO2ZmA0KK+ydtOuCqOuNlQ0KK+ydtOuPhOq4sA0KK+ydtOq4uOyEsQ0KK+ydtOq0keynhA0KK+ydtOyerOybhQ0KK+ydtOuPhOyEnQ0KK+ydtO2DnOydvA0KK+ydtOyInO2aqA0KK+ydtOuPme2ZmA0KK+ydtOuPhOyEnQ0KK+ydtOyInOuNlQ0KK+ydtOyEuOyEoA0KK+ydtOyerO2VmA0KK+ydtOuPhOyImA0KK+ydtOuMgOyImA0KK+ydtOuPmeyYgQ0KK+ydtOyDgeyXtA0KK+ydtOuPhOybkA0KK+ydtOyYgeumvA0KK+ydtOynhOycpA0KK+ydtOyihe2DgQ0KK+ydtOuPhO2ZmA0KK+ydtOuPhO2drA0KK+ydtOyImO2ZmA0KK+ydtO2VnOyasA0KK+ydtOuPiOy2mA0KK+ydtOyDgeyXsA0KK+ydtOyInO2YhA0KK+ydtOuzke2YuA0KK+ydtOuPmeqxtA0KK+ydtOyaqeqwlQ0KK+ydtOybkOyerA0KK+ydtOyerOykgA0KK+ydtOuPmeq3nA0KK+ydtO2DnOuNlQ0KK+ydtOuCqOyInA0KK+ydtOyYgeyInA0KK+ydtOuPmeq3oA0KK+ydtOyerOyihQ0KK+ydtOuRkOyVhQ0KK+ydtOyEneyXtA0KK+ydtOuPmeq3oA0KK+ydtOyYge2YuA0KK+ydtOuLrOunjA0KK+ydtO2YhOuTnQ0KK+ydtOuPmeuFlQ0KK+ydtO2YhO2YuA0KK+ydtOyImO2DnA0KK+ydtOyasO2YhA0KK+ydtOuPmeuMgA0KK+ydtOyWkeyyoA0KK+ydtOuPme2ZmA0KK+ydtOyCsOygkA0KK+ydtOuPmeunjA0KK+ydtO2YnOqwlQ0KK+ydtO2DnOyaqQ0KK+ydtOyjvOyImA0KK+ydtOuPmeuwnA0KK+ydtO2MkOyDgQ0KK+ydtOyEoOyImA0KK+ydtOyduOybhQ0KK+ydtOuPmeu0iQ0KK+ydtOyerOq2jA0KK+ydtOy5mO2VmQ0KK+ydtO2drOyEoA0KK+ydtOuPmeyEnQ0KK+ydtOyDge2YuA0KK+ydtOq0keyngQ0KK+ydtOyYpeydtQ0KK+ydtOuPmeyEnQ0KK+ydtOydvO2YuA0KK+ydtO2VtO2aqA0KK+ydtOycpOyekA0KK+ydtOuPmeyEnQ0KK+ydtOygleq1rA0KK+ydtOuPiO2VmQ0KK+ydtOywrOyasA0KK+ydtOuPmeyImA0KK+ydtOydgOuTnQ0KK+ydtOu2gOyYpQ0KK+ydtOyerOq0kQ0KK+ydtOuPmeyInA0KK+ydtOyxhOq4uA0KK+ydtOygleuNlQ0KK+ydtOq3nO2ZmA0KK+ydtOuPmeyXtA0KK+ydtOyDgeyduA0KK+ydtOuCmeyImA0KK+ydtOyduO2biA0KK+ydtOuPmeyYpQ0KK+ydtOyDge2ZmA0KK+ydtOyWkeyImA0KK+ydtOyYgeyEnQ0KK+ydtOuPmeyasA0KK+ydtOuNle2drA0KK+ydtOqyveq1rQ0KK+ydtOywqOq1rA0KK+ydtOuPmeyatA0KK+ydtOygleyLnQ0KK+ydtOyYpO2XjA0KK+ydtOyEseyYgQ0KK+ydtOuPmeybkA0KK+ydtOyngOykgA0KK+ydtOygleqyvQ0KK+ydtO2DnOyyoA0KK+ydtOuPmeybkA0KK+ydtOuPme2drA0KK+ydtOyerOyLrQ0KK+ydtOq0keuMgA0KK+ydtOuPmeybkA0KK+ydtOyaqe2drA0KK+ydtOq3nOyImA0KK+ydtOyYgeyduA0KK+ydtOuPmeyjvA0KK+ydtO2DnO2YuA0KK+ydtOyEse2YuA0KK+ydtOybkOycpA0KK+ydtOuPmeywrA0KK+ydtOyYgeq3nA0KK+ydtOunjO2YuA0KK+ydtOqyveuPhA0KK+ydtOuPmeyynA0KK+ydtOuMgOyLnQ0KK+ydtOyehOyErQ0KK+ydtOuTne2DnA0KK+ydtOuPmeyyoA0KK+ydtOyYgeyIoA0KK+ydtOunjO2ZjQ0KK+ydtOyDge2VtA0KK+ydtOuPmeyyoA0KK+ydtOydvO2YuA0KK+ydtOqyveyInA0KK+ydtOqyveq4sA0KK+ydtOuPmeyyoA0KK+ydtOynhOuvuA0KK+ydtOyDgeq0gA0KK+ydtOyYgeyXtA0KK+ydtOuPmey2mA0KK+ydtOyepeyImA0KK+ydtOyInOyYpQ0KK+ydtOq0keyYpQ0KK+ydtOuPmey2mA0KK+ydtOyGjO2YhA0KK+ydtO2MkOynhA0KK+ydtOyEseydtA0KK+ydtOuPme2DnA0KK+ydtOywqOuPhA0KK+ydtOyCvOyXtA0KK+ydtOybheq3vA0KK+ydtOuPme2DnA0KK+ydtOustOyYpQ0KK+ydtO2YleuhnQ0KK+ydtOyaqeumrA0KK+ydtOuPme2VmQ0KK+ydtOyduO2ZmA0KK+ydtOyduOyaqQ0KK+ydtOuCqOyErQ0KK+ydtOuPme2VtA0KK+ydtOyYgeyekA0KK+ydtOyEseyerA0KK+ydtOygleq1rQ0KK+ydtOuPme2XjA0KK+ydtOqyve2DnA0KK+ydtO2Zje2YhA0KK+ydtOuMgOyLnQ0KK+ydtOuPme2XjA0KK+ydtOyerOygnA0KK+ydtOycpOyaqQ0KK+ydtOuvuOq0kQ0KK+ydtOuPme2YuA0KK+ydtOyehOyhsA0KK+ydtOyLneyDiQ0KK+ydtOyepeuCqA0KK+ydtOuPme2YuA0KK+ydtOyYge2VtA0KK+ydtO2VtOyYpQ0KK+ydtO2drOywvQ0KK+ydtOuPme2biA0KK+ydtOynhO2YuA0KK+ydtOyaqey2nA0KK+ydtOyDgeyEoA0KK+ydtOuPme2biA0KK+ydtOu0ieyErQ0KK+ydtO2DnO2YuA0KK+ydtO2DnOqyvQ0KK+ydtOuRkOyXtA0KK+ydtOyXsO2DnA0KK+ydtOunkOuPjA0KK+ydtO2ZlOyduA0KK+ydtOuRkOybkA0KK+ydtOygkOybkA0KK+ydtOywveuNlQ0KK+ydtOyImOuqqQ0KK+ydtOuRkOybkA0KK+ydtOyDgeyEsQ0KK+ydtOyerOykgA0KK+ydtOunjOyLnQ0KK+ydtOuRkOydtA0KK+ydtO2VmeuqqQ0KK+ydtOuzkeyImA0KK+ydtOyInO2ZjQ0KK+ydtOuRkO2YhA0KK+ydtOygleyImA0KK+ydtOyiheydvA0KK+ydtOyYgey2mA0KK+ydtOuRkO2YuA0KK+ydtOygleu2hA0KK+ydtOyImOyInA0KK+ydtO2YhOyLnQ0KK+ydtOuRkO2ZmA0KK+ydtOyDgeu2gA0KK+ydtOybheyZhA0KK+ydtOqxtOq2jA0KK+ydtOuRkO2drA0KK+ydtOyYgeybkA0KK+ydtOy2lO2DnA0KK+ydtOyEseyXtA0KK+ydtOuTneyasA0KK+ydtOyInOyEsQ0KK+ydtOyYgeuPhA0KK+ydtOyYgeyaqQ0KK+ydtOuTney2mA0KK+ydtO2DnOq1kA0KK+ydtOyImOybhQ0KK+ydtOyiheqzpA0KK+ydtOuegOyInA0KK+ydtOyImOyLnQ0KK+ydtOyYpOyLnQ0KK+ydtOycpOybkA0KK+ydtOuemOyXsA0KK+ydtOycpOq3oA0KK+ydtOyXsOyEsQ0KK+ydtOqyveyasA0KK+ydtOufieq3oA0KK+ydtOyYgeqwkA0KK+ydtOyiheujoQ0KK+ydtOyKueq3vA0KK+ydtOumrOyekA0KK+ydtOyYpeyDnQ0KK+ydtOyEoOqyvQ0KK+ydtOyEseywvQ0KK+ydtOunjOqyvQ0KK+ydtOyyoOq3vA0KK+ydtOuRkOykgA0KK+ydtOyDgeuPmQ0KK+ydtOunjOq3nA0KK+ydtOuqhe2ctA0KK+ydtO2DneyyoA0KK+ydtO2DnOuemA0KK+ydtOunjOq4sA0KK+ydtOyaqeybkA0KK+ydtOyCvOuFuA0KK+ydtOy2mOydvA0KK+ydtOunjOuPhA0KK+ydtOuqhe2YuA0KK+ydtOyEse2ctA0KK+ydtOygleycpA0KK+ydtOunjOyEnQ0KK+ydtOyImOyDgQ0KK+ydtOyInO2VmQ0KK+ydtOywveuqqA0KK+ydtOunjOyEnQ0KK+ydtOywqOyImQ0KK+ydtOu0ieuCqA0KK+ydtOy2mOyaqQ0KK+ydtOunjOyImA0KK+ydtOycpOyjvA0KK+ydtOyihe2ZmA0KK+ydtOyiheyImA0KK+ydtOunjOyImA0KK+ydtO2YuOynhA0KK+ydtOyYgeybkA0KK+ydtOydmO2XjA0KK+ydtOunjOyInA0KK+ydtO2YuOyerA0KK+ydtOygleusuA0KK+ydtOyYgeq1rA0KK+ydtOunjOyaqQ0KK+ydtOyEne2ZmA0KK+ydtOyCvO2XjA0KK+ydtOydteyihQ0KK+ydtOunjOyaqQ0KK+ydtOydvOyglQ0KK+ydtOyGjOyImA0KK+ydtOycoOyVlA0KK+ydtOunjOybkA0KK+ydtOyImOuTnQ0KK+ydtO2XjOyIoA0KK+ydtOyerOyEsQ0KK+ydtOunjOybkA0KK+ydtOuRkO2cmA0KK+ydtOyEoOq2jA0KK+ydtOyaqeyjvA0KK+ydtOunjOybkA0KK+ydtOyyoOyInA0KK+ydtOyepeunjA0KK+ydtOq2jOyatA0KK+ydtOunjOybkA0KK+ydtO2DnO2biA0KK+ydtOygkOyglQ0KK+ydtO2YhOyYpA0KK+ydtOunjOybkA0KK+ydtOyYpe2ZjQ0KK+ydtOywqOyatA0KK+ydtOyEne2DnA0KK+ydtOunjOyhsA0KK+ydtO2VnOq3nA0KK+ydtOuzkeusuA0KK+ydtO2YuOuekQ0KK+ydtOunjOynhA0KK+ydtOyKueyyoA0KK+ydtOyaqeuegA0KK+ydtOyInOyekA0KK+ydtOunjO2ZlA0KK+ydtO2YuOyIoA0KK+ydtOuzkeyatA0KK+ydtOuPmeq2jA0KK+ydtOunjO2aqA0KK+ydtOyerOyEoA0KK+ydtOyGjOyImA0KK+ydtOuzkeuNlQ0KK+ydtOunkOusuA0KK+ydtOyDgeyekA0KK+ydtOusuO2YuA0KK+ydtOy2lOyasQ0KK+ydtOunkOu2hA0KK+ydtOq4sO2DnA0KK+ydtOq4iOyXsA0KK+ydtOq0keyngA0KK+ydtOunkOyImQ0KK+ydtO2Zje2YuA0KK+ydtOyCvO2ZlA0KK+ydtOuqheyImA0KK+ydtOunkOyInA0KK+ydtOygleybhQ0KK+ydtOyatOydvA0KK+ydtOyXsO2YnA0KK+ydtOunkOyIoA0KK+ydtOyDgeuwsA0KK+ydtOuCqOynhA0KK+ydtOyiheq4sA0KK+ydtOunkOyXrA0KK+ydtOydhOyaqQ0KK+ydtOyYge2drA0KK+ydtOyEseydtA0KK+ydtOunkOyehA0KK+ydtOuNleyYgQ0KK+ydtOuzkeykgA0KK+ydtOyYgeq3oA0KK+ydtOunkOykgA0KK+ydtOyImOq0kQ0KK+ydtOygkOyjvA0KK+ydtOygleq2jA0KK+ydtOunkO2DnA0KK+ydtOqwleuNlQ0KK+ydtOyiheq4sA0KK+ydtOyaqeyekA0KK+ydtOunueyImA0KK+ydtOyerOyLnQ0KK+ydtOynhOyInA0KK+ydtO2XjOyEoA0KK+ydtOuptOq4sA0KK+ydtOygleyaqQ0KK+ydtOyLoOyInA0KK+ydtO2DnOq1rQ0KK+ydtOuptOyasA0KK+ydtOu0ieyyoA0KK+ydtOunjOyZhA0KK+ydtO2drOyLnQ0KK+ydtOuptO2drA0KK+ydtOynhOydtA0KK+ydtOydgOyImA0KK+ydtOq0keyjvA0KK+ydtOuqheq3vA0KK+ydtOq4uOyjvA0KK+ydtOyZhOqzhA0KK+ydtOunjO2drA0KK+ydtOuqheq4sA0KK+ydtOq4sOyYgQ0KK+ydtOuzke2DgQ0KK+ydtOyXsO2RnA0KK+ydtOuqheq4sA0KK+ydtOu0ieyWkQ0KK+ydtOyerO2YuA0KK+ydtOunkO2drA0KK+ydtOuqheuCqA0KK+ydtOyerOqyvQ0KK+ydtOyEsey2mA0KK+ydtOyEse2VmA0KK+ydtOuqheuMgA0KK+ydtOyiheyImQ0KK+ydtOyImOq4uA0KK+ydtOyihe2DnA0KK+ydtOuqheyEnQ0KK+ydtO2Yleq4sA0KK+ydtOynhOyyoA0KK+ydtOunjOq3vA0KK+ydtOuqheyEoA0KK+ydtOyiheyInA0KK+ydtO2DnOyErQ0KK+ydtOyihe2ZmA0KK+ydtOuqheyEoA0KK+ydtOyImOyImA0KK+ydtOq0keyhsA0KK+ydtOygle2DnA0KK+ydtOuqheyErQ0KK+ydtOyiheyaqQ0KK+ydtOygleyasA0KK+ydtOuPmeq3nA0KK+ydtOuqheyEsQ0KK+ydtOq4sOyasQ0KK+ydtOq4uOyEnQ0KK+ydtOu0ieq3vA0KK+ydtOuqheyEuA0KK+ydtOydmOuRkA0KK+ydtOqyveyDnQ0KK+ydtOyEney5oA0KK+ydtOuqheyImA0KK+ydtOuMgO2ZmA0KK+ydtOyaqe2YuA0KK+ydtOuzkeqzpA0KK+ydtOuqheyImA0KK+ydtOuPmeu2hA0KK+ydtO2MkOyyoA0KK+ydtOyYgeq4uA0KK+ydtOuqheyImA0KK+ydtOq3gOuCqA0KK+ydtOyImOuvuA0KK+ydtOqyveyEnQ0KK+ydtOuqheyImQ0KK+ydtOyEse2DnA0KK+ydtO2VtOyImQ0KK+ydtOqyveudvQ0KK+ydtOuqheyImQ0KK+ydtOyEseumrA0KK+ydtOyYgeyhsA0KK+ydtOykgOydtA0KK+ydtOuqheyInA0KK+ydtOustO2biA0KK+ydtO2aqO2VmQ0KK+ydtOygle2DnA0KK+ydtOuqheyInA0KK+ydtOqyveyekA0KK+ydtOyInOuPmQ0KK+ydtOuTseyLnQ0KK+ydtOuqheyIoA0KK+ydtOq0keybhQ0KK+ydtOydtOyhsA0KK+ydtOycpOuPjA0KK+ydtOuqheyIoA0KK+ydtOyEoOyasA0KK+ydtOyyoOq1rQ0KK+ydtOyInOyekA0KK+ydtOuqheyIoA0KK+ydtOyDgeu2hA0KK+ydtOu0ie2YuA0KK+ydtOyEseu2lQ0KK+ydtOuqheyVoA0KK+ydtOq4iOqzpA0KK+ydtOq4sOuTnQ0KK+ydtOuqheusuA0KK+ydtOuqheyXsA0KK+ydtOywqOyInA0KK+ydtOyaqe2ZmA0KK+ydtOq3nOyEsQ0KK+ydtOuqheyYpA0KK+ydtOusuO2ZmA0KK+ydtOyDgey2nA0KK+ydtOq4sOuPmQ0KK+ydtOuqheyYpA0KK+ydtOuwqeyImQ0KK+ydtOunkOyYgQ0KK+ydtO2DnOyImA0KK+ydtOuqheyYpA0KK+ydtOyYgeq4sA0KK+ydtO2XjOuqqQ0KK+ydtOyDgeydtA0KK+ydtOuqheybkA0KK+ydtOyXsO2drA0KK+ydtOydgOykgA0KK+ydtOyImO2PrA0KK+ydtOuqheyerA0KK+ydtOunkOywrA0KK+ydtOuzkeuTnQ0KK+ydtOy2mO2YlQ0KK+ydtOuqheyhsA0KK+ydtOyEseyYgQ0KK+ydtOq0keycpA0KK+ydtOygkOq1rA0KK+ydtOuqheynhA0KK+ydtOqyveywrA0KK+ydtOyDgeyasA0KK+ydtOuLrOyaqQ0KK+ydtOuqhe2VmQ0KK+ydtOyEseyImQ0KK+ydtOyEseq4sA0KK+ydtOycpOycpA0KK+ydtOuqhe2YuA0KK+ydtOuvuOydvA0KK+ydtOyYpOyImA0KK+ydtOuCqOq3oA0KK+ydtOuqhe2YuA0KK+ydtOyDgeq2jA0KK+ydtOyImO2drA0KK+ydtOygle2drA0KK+ydtOuqhe2ZmA0KK+ydtOyYgeyLnQ0KK+ydtOunjOyEsQ0KK+ydtOq3nOqzpA0KK+ydtOuqhe2ZmA0KK+ydtOq4sOuwsA0KK+ydtOyEseyerA0KK+ydtOyEseywrA0KK+ydtOuqhe2ZmA0KK+ydtOyEseyErQ0KK+ydtOyDgeyaqQ0KK+ydtO2VtOyglQ0KK+ydtOuqhe2ZmA0KK+ydtOqwle2DnA0KK+ydtOyiheuLrA0KK+ydtOyImOyImA0KK+ydtOuqhe2drA0KK+ydtOydkeyLnQ0KK+ydtOyDgeyIoA0KK+ydtOyduOusuA0KK+ydtOuqhe2drA0KK+ydtOycpOyErQ0KK+ydtOusuOyLnQ0KK+ydtO2cmOuqqQ0KK+ydtOuqhe2drA0KK+ydtOuqheyLnQ0KK+ydtOynhOyEsQ0KK+ydtOyYgeyImA0KK+ydtOuqhe2drA0KK+ydtOyYgeyXsA0KK+ydtOqwleycpA0KK+ydtOyerO2ZmA0KK+ydtOuqqOyEpA0KK+ydtOywveq3nA0KK+ydtO2VnOyekA0KK+ydtOq4sOuLrA0KK+ydtOusmOq4iA0KK+ydtOq3hOyYgQ0KK+ydtOq3ueyLnQ0KK+ydtOustOyaqQ0KK+ydtOustOq3vA0KK+ydtOyImOq4uA0KK+ydtOyyoOyImA0KK+ydtOuMgOyCvA0KK+ydtOustOyDnQ0KK+ydtOygleyEsQ0KK+ydtOyYgeyImA0KK+ydtOuNleq3nA0KK+ydtOustOyEoA0KK+ydtOyYgeyaqQ0KK+ydtOyYge2DnA0KK+ydtO2VtOyImQ0KK+ydtOustOyEsQ0KK+ydtOuPmeydvA0KK+ydtOyEseywvQ0KK+ydtOuwse2ZlA0KK+ydtOustOyInA0KK+ydtOyaqeyekA0KK+ydtOyiheyEnQ0KK+ydtOyImOydkQ0KK+ydtOustOyInA0KK+ydtOq4uOyXhQ0KK+ydtOyInO2XjA0KK+ydtOyDgeyYpQ0KK+ydtOustOyYgQ0KK+ydtOyduOuegA0KK+ydtOyerOyekA0KK+ydtOywqOyCvA0KK+ydtOustOyasA0KK+ydtOyYgeq4sA0KK+ydtOyYpey5oA0KK+ydtOydvOydtQ0KK+ydtOustOybhQ0KK+ydtOyngO2YuA0KK+ydtO2YhO2ajA0KK+ydtOyerOyLnQ0KK+ydtOustOydvA0KK+ydtOygleyLnQ0KK+ydtOyerOyEnQ0KK+ydtOyaqeyasA0KK+ydtOustOyehA0KK+ydtOyEseq4uA0KK+ydtOyngOyaqQ0KK+ydtO2XjO2YhA0KK+ydtOustOyynA0KK+ydtO2XjOyduA0KK+ydtO2drOq2jA0KK+ydtOq1reydgA0KK+ydtOustO2YhA0KK+ydtOyYgeyjvA0KK+ydtOy5mOuPmQ0KK+ydtOywve2ZmA0KK+ydtOustO2YhA0KK+ydtOq4uOq4sA0KK+ydtOuvuO2drA0KK+ydtOygleuNlQ0KK+ydtOustO2YuA0KK+ydtOuCqOuztQ0KK+ydtOyYge2ZmA0KK+ydtOykgOyasA0KK+ydtOustO2YuA0KK+ydtOygle2ZjQ0KK+ydtOyInO2DnQ0KK+ydtOyIme2YlQ0KK+ydtOustO2YuA0KK+ydtOyYgeyekA0KK+ydtOuPme2YhA0KK+ydtOu2gOuPmQ0KK+ydtOustO2ZmA0KK+ydtOyduOyImA0KK+ydtO2VtOyEoA0KK+ydtOyiheyaqQ0KK+ydtOusuOqwkQ0KK+ydtOuNleyImA0KK+ydtOyYgeyyoA0KK+ydtOyasOyDgQ0KK+ydtOusuOyLnQ0KK+ydtO2DnOyDgQ0KK+ydtOq3nOuvvA0KK+ydtOyDge2ZmA0KK+ydtOusuOyekA0KK+ydtOuqheyZhA0KK+ydtO2DnO2YhA0KK+ydtOynhO2WiQ0KK+ydtOusuOy2nA0KK+ydtOyYge2drA0KK+ydtOqyve2ZmA0KK+ydtOustOyInA0KK+ydtOusuO2DnA0KK+ydtOq4sOyerA0KK+ydtOyiheq3nA0KK+ydtOyiheyEnQ0KK+ydtOusuO2YuA0KK+ydtOywveybkA0KK+ydtOyYgeyyoA0KK+ydtOuzkeq4sA0KK+ydtOusuO2YuA0KK+ydtOy2mOq3nA0KK+ydtOyaqe2YuA0KK+ydtOuzkeyEoA0KK+ydtOuvuOqyvQ0KK+ydtOuvvOuPmQ0KK+ydtOygkO2ZmA0KK+ydtOyaqeuwsA0KK+ydtOuvuOqyvQ0KK+ydtOygleuegA0KK+ydtOunjOyyoA0KK+ydtO2Zje2YhA0KK+ydtOuvuOqyvQ0KK+ydtOuLrOywrA0KK+ydtOyEseunjA0KK+ydtOyDgeq3nA0KK+ydtOuvuOyEoA0KK+ydtOyYpe2biA0KK+ydtOqyve2YuA0KK+ydtOunjOyLnQ0KK+ydtOuvuOyImQ0KK+ydtO2YuOyDgQ0KK+ydtOyDgeyaqQ0KK+ydtOyZleyasA0KK+ydtOuvuOyImQ0KK+ydtOunjOy2nA0KK+ydtOyDgeuylA0KK+ydtOuMgO2drA0KK+ydtOuvuOyInA0KK+ydtOyImO2ZlA0KK+ydtOuMgOq3nA0KK+ydtOyImOyImA0KK+ydtOuvuOybkA0KK+ydtOyEse2YhA0KK+ydtOyduOyEsQ0KK+ydtOyYgeyImQ0KK+ydtOuvuOyekA0KK+ydtOyduOyEnQ0KK+ydtOyiheyViA0KK+ydtOyImOyImA0KK+ydtOuvuOyerA0KK+ydtOy2mOu2hA0KK+ydtOygleyImA0KK+ydtOusuO2biA0KK+ydtOuvuO2YhA0KK+ydtOyLneyekA0KK+ydtOywveuqhQ0KK+ydtOq0keybkA0KK+ydtOuvuO2YhA0KK+ydtOuMgO2drA0KK+ydtOu0ie2DgQ0KK+ydtOycpOq1sA0KK+ydtOuvvOyaqQ0KK+ydtOyiheuMgA0KK+ydtOyerOq0kQ0KK+ydtO2DnO2ZlA0KK+ydtOuvvOyasA0KK+ydtOuzteq1rA0KK+ydtOyDgeq3nA0KK+ydtOyerO2ZmA0KK+ydtOuvvOyerA0KK+ydtOyYgey2nA0KK+ydtOuPmeuNlQ0KK+ydtOygleybhQ0KK+ydtOuvvOykgA0KK+ydtOustOyaqQ0KK+ydtOq0keuqqA0KK+ydtOuNleybkA0KK+ydtOuvvOyyoA0KK+ydtO2ZjeyasA0KK+ydtOyjvOq4uA0KK+ydtOyjvOyImA0KK+ydtOuvvO2YuA0KK+ydtOu0ieuPmQ0KK+ydtOyEoOyLnQ0KK+ydtOuPmeujoQ0KK+ydtOuvvO2ZmA0KK+ydtOq4sOuTnQ0KK+ydtOyYgeyEoA0KK+ydtOyInO2VnA0KK+ydtOuwqeuCqA0KK+ydtO2XjO2drA0KK+ydtOyGjOyekA0KK+ydtOywqOykgA0KK+ydtOuwqeyLpA0KK+ydtOywveyyoA0KK+ydtO2VnOyImA0KK+ydtOyDge2YhA0KK+ydtOuwqeyasA0KK+ydtO2ZjeykgA0KK+ydtOq3nOyXtA0KK+ydtOyiheyLnQ0KK+ydtOuylA0KK+ydtOyehA0KK+ydtOyDgQ0KK+ydtOuMgA0KK+ydtOuylOqyvQ0KK+ydtOyYge2VnA0KK+ydtOyKueyXtA0KK+ydtOqzhOugqA0KK+ydtOuylOyEuA0KK+ydtOyYge2DnA0KK+ydtOuPhOuNlQ0KK+ydtOygleyjvA0KK+ydtOuylOyEuA0KK+ydtOyDge2DnQ0KK+ydtOyDgeuTnQ0KK+ydtOuzkey2nA0KK+ydtOuylOyEuA0KK+ydtOyYge2DnA0KK+ydtOyDgeq2jA0KK+ydtOycpOyInA0KK+ydtOuylOyInA0KK+ydtO2DnOq2jA0KK+ydtOuPmeugrA0KK+ydtO2DnOyImQ0KK+ydtOuylOyLnQ0KK+ydtOu0ie2YuA0KK+ydtO2Zje2ZmA0KK+ydtOyehOuFlQ0KK+ydtOuylOyasA0KK+ydtOy2mOyImQ0KK+ydtOyaqeydvA0KK+ydtOygleyEnQ0KK+ydtOuylOydtA0KK+ydtOyInOyaqQ0KK+ydtOu0ieyImA0KK+ydtO2drOyXtA0KK+ydtOuylO2DnQ0KK+ydtOyEseyInA0KK+ydtOyImOyEnQ0KK+ydtOyyoOyaqQ0KK+ydtOuzkeqxuA0KK+ydtOycpOq3vA0KK+ydtOyatOyVhA0KK+ydtOuPmeydmA0KK+ydtOuzkeq1rQ0KK+ydtOyEneq2jA0KK+ydtOyYgeyasA0KK+ydtOqyveyYgQ0KK+ydtOuzkeq1rQ0KK+ydtOyduOuztQ0KK+ydtOyEseyaqQ0KK+ydtO2YnOyEsQ0KK+ydtOuzkeq2jA0KK+ydtOyGjOyEnQ0KK+ydtOyYgeydtA0KK+ydtOyduOy2mA0KK+ydtOuzkeq2jA0KK+ydtOyiheyXsA0KK+ydtOq1reuMgA0KK+ydtOyerOq1rA0KK+ydtOuzkeq3nA0KK+ydtOyImOu2gA0KK+ydtOuzke2YuA0KK+ydtOuMgOyImA0KK+ydtOuzkeq3nA0KK+ydtOygleu2hA0KK+ydtOydtOyLnQ0KK+ydtOunjO2PiQ0KK+ydtOuzkeq3uQ0KK+ydtOygleyasA0KK+ydtOydhOq3nA0KK+ydtOyImO2YuA0KK+ydtOuzkeq3uQ0KK+ydtOyDgeyyoA0KK+ydtOqxtOyYgQ0KK+ydtOyblOynhA0KK+ydtOuzkeq4uA0KK+ydtO2VnOuzkQ0KK+ydtOygleybkA0KK+ydtOyEneuNlQ0KK+ydtOuzkeuTnQ0KK+ydtOuqheyImA0KK+ydtO2aqOydtQ0KK+ydtOyjvOyjvA0KK+ydtOuzkeustA0KK+ydtOygleyasA0KK+ydtO2DnO2DnA0KK+ydtOyEneq3vA0KK+ydtOuzkeyCvA0KK+ydtO2MkOyYgQ0KK+ydtOyerO2ZmA0KK+ydtOybkO2YuA0KK+ydtOuzkeyEoA0KK+ydtOykgO2drA0KK+ydtO2DnOyEnQ0KK+ydtOq0keq4sA0KK+ydtOuzkeyGjA0KK+ydtOusuO2YhA0KK+ydtOy2mOuRkA0KK+ydtOuLrO2YuA0KK+ydtOuzkeyImA0KK+ydtOyEseyihQ0KK+ydtOuCnOuztQ0KK+ydtOydvO2drA0KK+ydtOuzkeyLnQ0KK+ydtOywveyYgQ0KK+ydtOyaqeydvA0KK+ydtOywveyEnQ0KK+ydtOuzkeyYpQ0KK+ydtOygle2YhA0KK+ydtOygleuFhA0KK+ydtOuqheyduA0KK+ydtOuzkeyasA0KK+ydtO2DnOyasQ0KK+ydtOyYgeydtQ0KK+ydtOygleyekA0KK+ydtOuzkeyasQ0KK+ydtOyaqe2YuA0KK+ydtOyduOyInA0KK+ydtOyInOyasQ0KK+ydtOuzkeybkA0KK+ydtOuvuO2YuA0KK+ydtOyiheunjA0KK+ydtOyEneuLrA0KK+ydtOuzkeybkA0KK+ydtOyDgey2mA0KK+ydtOyerOyjvA0KK+ydtO2Vme2drA0KK+ydtOuzkeycpA0KK+ydtOyCvOyImQ0KK+ydtOyyoOydgA0KK+ydtOy2qe2VtA0KK+ydtOuzkeyduA0KK+ydtOy2mO2YhA0KK+ydtOygle2DnA0KK+ydtOuemO2YuA0KK+ydtOuzkeyerA0KK+ydtOyYge2drA0KK+ydtOyiheuztQ0KK+ydtOqwke2drA0KK+ydtOuzkeyglQ0KK+ydtOq3nOuztQ0KK+ydtOy5oOq3nA0KK+ydtOuqheq4sA0KK+ydtOuzkeyjvA0KK+ydtO2DnO2ZmA0KK+ydtOyaqeykgA0KK+ydtOusuOyehA0KK+ydtOuzkeyjvA0KK+ydtO2ZlOyImA0KK+ydtOuNleuPmQ0KK+ydtOygkOuztA0KK+ydtOuzkeykgA0KK+ydtOunjOyEoA0KK+ydtO2VtOyglQ0KK+ydtOuLtOyInA0KK+ydtOuzkeywrA0KK+ydtOq4iOyEoA0KK+ydtOyaqeq3nA0KK+ydtO2VnOyatA0KK+ydtOuzkeyynA0KK+ydtOyYgeqzpA0KK+ydtOyduOygkA0KK+ydtOuzkeyyoA0KK+ydtOuzkeyyoA0KK+ydtOyYge2biA0KK+ydtOq3nOq4sA0KK+ydtOyYgeqzpA0KK+ydtOuzkeyyoA0KK+ydtOyerOyasA0KK+ydtOycpOuylA0KK+ydtO2VreyasA0KK+ydtOuzkeyyoA0KK+ydtOyYgeyngA0KK+ydtOyaqe2WpQ0KK+ydtOyiheykgA0KK+ydtOuzkeyyoA0KK+ydtOyaqeq4sA0KK+ydtOydtOyaqQ0KK+ydtO2VmeyyoA0KK+ydtOuzke2DnA0KK+ydtOyEseqzpA0KK+ydtOyGkO2DnA0KK+ydtOuMgOyEoA0KK+ydtOuzke2DnQ0KK+ydtOqwle2YuA0KK+ydtOunjOq3nA0KK+ydtOyYge2YuA0KK+ydtOuzke2DnQ0KK+ydtOqyveyLnQ0KK+ydtOyImOq1rQ0KK+ydtOywveq3vA0KK+ydtOuzke2VhA0KK+ydtOygley2mA0KK+ydtO2DnOq3vA0KK+ydtOq4sOuNlQ0KK+ydtOuzke2VmA0KK+ydtOygleyXvA0KK+ydtOyaqeyekA0KK+ydtOq4uOyYpQ0KK+ydtOuzke2VmA0KK+ydtOyImOuemA0KK+ydtOyWke2YhA0KK+ydtOuMgOyyoA0KK+ydtOuzke2VnA0KK+ydtOuzteyEoA0KK+ydtO2YuOuPhA0KK+ydtOykkeyekA0KK+ydtOuzke2VtA0KK+ydtOuRkOyEnQ0KK+ydtOyInOuemA0KK+ydtOq0gO2VmA0KK+ydtOuzke2YlQ0KK+ydtOuNleyEnQ0KK+ydtOyerOyhsA0KK+ydtOuzkeuMgA0KK+ydtOuzke2YuA0KK+ydtOyYgeunjA0KK+ydtOuRkO2YuA0KK+ydtOywveq4uA0KK+ydtOuzke2YuA0KK+ydtOykkeyatA0KK+ydtOunjO2ZmA0KK+ydtOyDgeyErQ0KK+ydtOuzke2ZjQ0KK+ydtOu2hOyEoA0KK+ydtOyEne2ZmA0KK+ydtO2Zjeq4sA0KK+ydtOuzke2ZlA0KK+ydtOuztOq3vA0KK+ydtOyWkeu0iQ0KK+ydtOyInOuPhA0KK+ydtOuzke2ZlA0KK+ydtOyEoOq3nA0KK+ydtOyerOybkA0KK+ydtOyEoOuPmQ0KK+ydtOuzke2ZlA0KK+ydtOyerOyXsA0KK+ydtOyGjOyEoA0KK+ydtOyEseyekA0KK+ydtOuzke2drA0KK+ydtOqyve2ZlA0KK+ydtO2DnOyEnA0KK+ydtO2DnO2VmQ0KK+ydtOuztOqzpA0KK+ydtOyiheustA0KK+ydtOq4sOu0iQ0KK+ydtOygleyXtA0KK+ydtOuztO2YhA0KK+ydtOyEneyerA0KK+ydtOyEseyEsQ0KK+ydtOuRkO2YuA0KK+ydtOuzteuPhA0KK+ydtOyynOq3vA0KK+ydtOyYge2YuA0KK+ydtO2MkOykkQ0KK+ydtOuzteumvA0KK+ydtOyasOyIoA0KK+ydtOydhOq4sA0KK+ydtOycpOyEnQ0KK+ydtOuzteyDnQ0KK+ydtO2YhOq4uA0KK+ydtOyasOuloA0KK+ydtOuqheu2gA0KK+ydtOuzteyIoA0KK+ydtOyerOujoQ0KK+ydtO2YuO2DnQ0KK+ydtOq0keq1kA0KK+ydtOuzteyLpA0KK+ydtOyiheqyvQ0KK+ydtOuMgOyEnQ0KK+ydtOyInOuztA0KK+ydtOuzteyaqQ0KK+ydtO2DnOyInA0KK+ydtOqyveyLnQ0KK+ydtOyIme2drA0KK+ydtOuzteyasA0KK+ydtCDsmqkNCivsnbTsiJztmLgNCivsnbTstpjrrLQNCivsnbTrs7Xsp4QNCivsnbTsmqnsp4QNCivsnbTrj5nqt7wNCivsnbTsmqnsmIENCivsnbTrs7XstpwNCivsnbTtmJXsiJgNCivsnbTsnbztg50NCivsnbTsmIHspJENCivsnbTrs7XtmIQNCivsnbTsspzstpwNCivsnbTshJ3tmZgNCivsnbTsnoTsmYQNCivsnbTrtInqs6QNCivsnbTsnqXshK0NCivsnbTtmLjrnpgNCivsnbTquLDtmLgNCivsnbTrtInqs6QNCivsnbTsnqzsiJwNCivsnbTro6HsnbgNCivsnbTqsr3si50NCivsnbTrtInqt5wNCivsnbTsg4HsiJwNCivsnbTsooXtmLgNCivsnbTtmZjsi50NCivsnbTrtInquLANCivsnbTsoJXssqANCivsnbTspJHtmZgNCivsnbTsnbTrtIkNCivsnbTrtInquLANCivsnbTsnYDso7wNCivsnbTsnKTslaANCivsnbTsg4HstpwNCivsnbTrtInquLgNCivsnbTsg4HtmLgNCivsnbTrjIDsi50NCivsnbTsl7DsmqkNCivsnbTrtInrhYANCivsnbTrtoDqtJENCivsnbTsg4HtmZgNCivsnbTqtJHtmZgNCivsnbTrtInrhYANCivsnbTrk53sl7ANCivsnbTsnbjsnoQNCivsnbTsnZjtmZQNCivsnbTrtInrjIANCivsnbTtmLjrqqgNCivsnbTspJHshJ0NCivsnbTsmKTquLANCivsnbTrtInrnpgNCivsnbTquLDsiKANCivsnbTsm5Drj4QNCivsnbTssKjsl7ANCivsnbTrtInrqqgNCivsnbTsmbjsobANCivsnbTrj5nsmqkNCivsnbTquLDtjJQNCivsnbTrtInshKANCivsnbTqs6TquLANCivsnbTsnbXqsr0NCivsnbTssL3sp4ANCivsnbTrtInsmIENCivsnbTsnqzshLENCivsnbTsooXrgqgNCivsnbTsoJXtmLgNCivsnbTrtInso7wNCivsnbTsoJDrqoUNCivsnbTsiJjshK0NCivsnbTquLDtlZwNCivsnbTrtInssqANCivsnbTsmqntmIQNCivsnbTsmKXrj5kNCivsnbTtl4ztmowNCivsnbTrtInstpgNCivsnbTspJHrtoANCivsnbTtnJjrj5kNCivsnbTsmrHsiJgNCivsnbTrtIntl4wNCivsnbTsm5TstpgNCivsnbTsmqnqtawNCivsnbTsg4Hrs7UNCivsnbTrtIntmZgNCivsnbTsmIHqtJENCivsnbTsiKDsiJkNCivsnbTsg4Hrj4QNCivsnbTrtIntmZgNCivsnbTsg4HshLgNCivsnbTsiJzsiJwNCivsnbTsg4Hrs7UNCivsnbTrtIntnawNCivsnbTsooXsmKUNCivsnbTsmIHsiJwNCivsnbTspJHqt5wNCivsnbTrtoDquLgNCivsnbTsmIHtg5wNCivsnbTsnqXsiJwNCivsnbTqtZDsmqkNCivsnbTrtoDrj4wNCivsnbTsoJXstpwNCivsnbTssL3rsLANCivsnbTri6zshLENCivsnbTrtoDshLgNCivsnbTso7ztmZgNCivsnbTsmbjroZ0NCivsnbTtmITtmZgNCivsnbTrtoDsl7QNCivsnbTtmZjqsr0NCivsnbTsuaDstpwNCivsnbTqt5zsnbQNCivsnbTrtoTquLANCivsnbTshJ3smrQNCivsnbTstpjsi50NCivsnbTtlZzsm4UNCivsnbTrtoTrgpwNCivsnbTsnZHtmLgNCivsnbTsoJXquLANCivsnbTshLHsiJwNCivsnbTrtoTrgqgNCivsnbTrr7jtmJUNCivsnbTsmqntlZwNCivsnbTsmqnsiJkNCivsnbTrtoTrgqgNCivsnbTtlYTrqqgNCivsnbTsnYTqs4QNCivsnbTsl7Dsi50NCivsnbTrtoTshKANCivsnbTsnqzsnbwNCivsnbTsnqztnawNCivsnbTtg5zsi50NCivsnbTrtoTsl7ANCivsnbTstqnsmrANCivsnbTqt5zssqANCivsnbTsooXsl7ANCivsnbTrtoTsmIENCivsnbTshJ3tlZkNCivsnbTrs5Hqt5wNCivsnbTshLHshKANCivsnbTrtoTsnbQNCivsnbTshLHshKANCivsnbTtmLjsirkNCivsnbTrqoXsiJwNCivsnbTrtoTsnbQNCivsnbTslYjsl7QNCivsnbTsnbztlZwNCivsnbTsmKTsmqkNCivsnbTrtoTsnbQNCivsnbTsnqzsmrENCivsnbTsnqztg5wNCivsnbTsnbjtlqUNCivsnbTrtoTsobANCivsnbTqt4Drj4QNCivsnbTrj4TquLgNCivsnbTsnqzqta0NCivsnbTrtoTsobANCivsnbTrs5HtnawNCivsnbTspJHtmIENCivsnbTsspzstpgNCivsnbTrtoTtlZkNCivsnbTshKDspIANCivsnbTso7zshKANCivsnbTqsr3qsr0NCivsnbTrtoTtnawNCivsnbTqsJHqt5wNCivsnbTtnaXtlZgNCivsnbTsnbjsmrQNCivsnbTruJ3shLgNCivsnbTsmqnquLgNCivsnbTshoztnawNCivsnbTrs5HsmZUNCivsnbTsgqzroKgNCivsnbTsuaDtmLgNCivsnbTsnbTsmqkNCivsnbTsp4DquLANCivsnbTsgqzsobANCivsnbTtmLjsoJUNCivsnbTtmITrj4wNCivsnbTsiJjtg5wNCivsnbTsgrzrjZUNCivsnbTsnqzshJ0NCivsnbTsoJXsnpANCivsnbTtmLjsi50NCivsnbTsgrzrnpENCivsnbTssKjqsJANCivsnbTsl7DstpgNCivsnbTsooXshLENCivsnbTsgrzsiJgNCivsnbQg7ZmYDQor7J206rCR7IStDQor7J207Iic6rWsDQor7J207IK87IiYDQor7J2067aE6re8DQor7J207IK87IiYDQor7J207KO864+ZDQor7J207IK87IiYDQor7J207KCV7JiBDQor7J207JuQ67SJDQor7J207LCo7ZiEDQor7J207IK87JiBDQor7J207ZW07KeEDQor7J207KCV7Z2sDQor7J2067OR66y4DQor7J207IK87JqpDQor7J207YOc7J2YDQor7J206riw7IiZDQor7J207J247ZmYDQor7J207IK87KGwDQor7J207KKF7JikDQor7J207Jqp67O1DQor7J207KKF7IugDQor7J207IK87KGwDQor7J2066eM6recDQor7J207Jq07JqpDQor7J2067SJ7JqpDQor7J207IK87ZuIDQor7J207IK86rK9DQor7J207ZW07IudDQor7J207Lmg7YOcDQor7J207IOB6rK9DQor7J207IiY7KeEDQor7J207KeE7Jq0DQor7J207LKc7IahDQor7J207IOB6rK9DQor7J207ZWc7IicDQor7J207J2E7IiYDQor7J207Iq57ZmYDQor7J207IOB6rWsDQor7J207KKF7Jq0DQor7J207JiB7J6EDQor7J207J6l7YOBDQor7J207IOB6recDQor7J207KCV7JqwDQor7J207KSR66y0DQor7J207Kad7ZmYDQor7J207IOB6regDQor7J2066qF7IudDQor7J207IaM7KCVDQor7J207LCs67CVDQor7J207IOB6re8DQor7J207Jil6riwDQor7J2066y47Z2sDQor7J206re87Zi4DQor7J207IOB6re8DQor7J2067SJ6rG0DQor7J207Jqp67CwDQor7J207ISg7IiYDQor7J207IOB6re8DQor7J207ZW07Zi4DQor7J207JiB7IigDQor7J207IiY6riIDQor7J207IOB6riwDQor7J2067OR7KO8DQor7J2066y07ISgDQor7J207KO87KeBDQor7J207IOB6riwDQor7J207KSA7JiBDQor7J207YOc7ZuIDQor7J207LKg7YyQDQor7J207IOB6riwDQor7J2064Ko6re8DQor7J207KCV6riwDQor7J207KCV7KCVDQor7J207IOB6ri4DQor7J207J6E7JqpDQor7J207KCV7LacDQor7J207JWI7ZuIDQor7J207IOB64usDQor7J207YOc7LKgDQor7J206rG06rSADQor7J207KCV7Y+JDQor7J207IOB64yADQor7J2067aE7IOBDQor7J207LCo7IicDQor7J207YyQ7JqpDQor7J207IOB64yADQor7J2064+Z7IiYDQor7J207Jqp6re8DQor7J207Iic67SJDQor7J207IOB642VDQor7J207Z2s7JWUDQor7J206re86rK9DQor7J2067OR642VDQor7J207IOB64+EDQor7J207KCQ7J28DQor7J207Jqw6riwDQor7J206rSR7J6QDQor7J207IOB64+IDQor7J207JiB6rWsDQor7J207YOc6recDQor7J2067O17LCoDQor7J207IOB64+IDQor7J207LCs7KSADQor7J207Jqp66qoDQor7J207KCV7JqpDQor7J207IOB65OdDQor7J2066+87IiYDQor7J2064+Z64+MDQor7J207KO87YOcDQor7J207IOB656ADQor7J207Iic7JuQDQor7J2064+E7Zi4DQor7J207JiB7JilDQor7J207IOB66GdDQor7J206rK97LacDQor7J206rSR7IudDQor7J2066y464+EDQor7J207IOB66GdDQor7J207IiY7IudDQor7J207KCV7KKFDQor7J207ISx7ISdDQor7J207IOB66WgDQor7J2064Ko7Z2sDQor7J2067OR7IStDQor7J207J6s6rWQDQor7J207IOB66qoDQor7J207YOc7JqwDQor7J207ISx7IicDQor7J207JuQ6riwDQor7J207IOB66y4DQor7J207JiB7J20DQor7J207Jik7LKcDQor7J207JiB7KGwDQor7J207IOB66+8DQor7J207LC97KO8DQor7J207ZeM7LKgDQor7J207KKF7JuFDQor7J207IOB67CwDQor7J207Zi47YOcDQor7J207ISx642VDQor7J207IOB656YDQor7J207IOB67O1DQor7J207J6s7ZiEDQor7J207KKF7JqpDQor7J207KKF7Z2sDQor7J207IOB67O1DQor7J20IOyImA0KK+ydtO2ZmOy2nA0KK+ydtOuzkeyYgQ0KK+ydtOyDgeuztQ0KK+ydtOunjOyaqQ0KK+ydtOq3vOyEnQ0KK+ydtOyImO2drA0KK+ydtOyDgeu0iQ0KK+ydtOyCvO2ZmA0KK+ydtOyImOyImA0KK+ydtO2DnOyYpQ0KK+ydtOyDgeu0iQ0KK+ydtO2drO2YhA0KK+ydtOygle2YhA0KK+ydtO2VmeykgA0KK+ydtOyDgeu5iA0KK+ydtOuzkeuTnQ0KK+ydtO2Vme2YuA0KK+ydtOyjvOu0iQ0KK+ydtOyDgeyEoA0KK+ydtOustOuPjA0KK+ydtOuMgOyImA0KK+ydtOyiheuPmQ0KK+ydtOyDgeyErQ0KK+ydtOyYgeq3nA0KK+ydtOqyveykkQ0KK+ydtO2YhOyyoA0KK+ydtOyDgeyImA0KK+ydtOywrOyEsQ0KK+ydtOuRkOu2hA0KK+ydtOyInOuhnQ0KK+ydtOyDgeyImA0KK+ydtOygleyDnQ0KK+ydtOyYgeq4uA0KK+ydtOyasOyaqQ0KK+ydtOyDgeyImA0KK+ydtOuNleq4sA0KK+ydtOyInO2drA0KK+ydtOyaqeyEnQ0KK+ydtOyDgeyImQ0KK+ydtOygley0jA0KK+ydtOyEseuCqA0KK+ydtOqyveyCvA0KK+ydtOyDgeyImQ0KK+ydtOyCrOyasA0KK+ydtOyEseq3vA0KK+ydtO2DnOyXvQ0KK+ydtOyDgeyImQ0KK+ydtOyaqeynhA0KK+ydtOyyoO2YuA0KK+ydtOyYgeuztQ0KK+ydtOyDgeyLnQ0KK+ydtOyaqeuPmQ0KK+ydtO2DnOyYgQ0KK+ydtO2Zje2DnA0KK+ydtOyDgeyWuA0KK+ydtOykgOyyoA0KK+ydtO2drO2ZmA0KK+ydtOyduOuemA0KK+ydtOyDgeyXsA0KK+ydtOyggeybkA0KK+ydtO2YhO2drA0KK+ydtOuPmeq4sA0KK+ydtOyDgeyXtA0KK+ydtOyWte2ajA0KK+ydtOyCvOyDnQ0KK+ydtO2VtO2DnA0KK+ydtOyDgeyXtA0KK+ydtO2drOyasQ0KK+ydtO2YuOyYgQ0KK+ydtOuPme2RnA0KK+ydtOyDgeyXtA0KK+ydtO2DnOqwkQ0KK+ydtOq3nOyYpQ0KK+ydtOyKueydtA0KK+ydtOyDgeyXtA0KK+ydtOunjOyDnQ0KK+ydtOybkOyImA0KK+ydtOyEseyImA0KK+ydtOyDgeyXtA0KK+ydtOq4sOyImA0KK+ydtOydhO2XjA0KK+ydtO2cmOuNlQ0KK+ydtOyDgeyXtA0KK+ydtO2XjOyLnQ0KK+ydtOygle2doA0KK+ydtOydvOyDgQ0KK+ydtOyDgeyYgQ0KK+ydtO2DnOynhA0KK+ydtOuPhO2drA0KK+ydtO2VnO2ZmA0KK+ydtOyDgeyYpA0KK+ydtOyZleydtA0KK+ydtOyjvOyXsA0KK+ydtOyngO2ajA0KK+ydtOyDgeyZhA0KK+ydtOyDgeuNlQ0KK+ydtOustO2YuA0KK+ydtOyEuO2YhA0KK+ydtOyDgeyaqQ0KK+ydtOq3nOq1kA0KK+ydtO2YhOyEsQ0KK+ydtOygle2DnA0KK+ydtOyDgeyaqQ0KK+ydtOyDgeuLrA0KK+ydtCDsi50NCivsnbTsmbjsobANCivsnbTsg4HsmqkNCivsnbTspIDshJ0NCivsnbTsnZjtlZwNCivsnbTrjZXsiJwNCivsnbTsg4HsmrANCivsnbTsoJXsi50NCivsnbTrqoXqt7wNCivsnbTqsr3smKUNCivsnbTsg4HsmrANCivsnbTsg4HsnpANCivsnbTsoJXtmZgNCivsnbTtg5zrspQNCivsnbTsg4HsmrENCivsnbTsnqztmY0NCivsnbTspJHtjJANCivsnbTtg5ztg5wNCivsnbTsg4HsmrQNCivsnbTtg5zsiKANCivsnbTrnoDtmIQNCivsnbTtg5zsmIENCivsnbTsg4Hsm5ANCivsnbTsoJXrk50NCivsnbTsmIHssqANCivsnbTtmY3rj5kNCivsnbTsg4Hsm5ANCivsnbTtmZTsiJgNCivsnbTqsJHsl7QNCivsnbTsmKXsnKgNCivsnbTsg4HsnKQNCivsnbTrs5HtmLgNCivsnbTtmJztmIQNCivsnbTsnqXrtIkNCivsnbTsg4HsnKQNCivsnbTsoITtlYQNCivsnbTsg4HshJ0NCivsnbTsoJXrj5kNCivsnbTsg4HsnYANCivsnbTsnbjsl70NCivsnbTtjL3shKANCivsnbTsmIHsl6wNCivsnbTsg4HsnbwNCivsnbTrtInsmqkNCivsnbTsooXsnbQNCivsnbTqsr3ssqANCivsnbTsg4HsnbwNCivsnbTrgqjquLANCivsnbTsmqnrj4QNCivsnbTsmIHsiJwNCivsnbTsg4HsnbwNCivsnbTqt5zsiJgNCivsnbTquLDsi6ANCivsnbTrgqjshJ0NCivsnbTsg4HsnqwNCivsnbTqtJHsi50NCivsnbTrr7jtg5wNCivsnbTsooXqs6QNCivsnbTsg4HsoJUNCivsnbTslZTsiJgNCivsnbTqsJDsl7QNCivsnbTsnYTsnYANCivsnbTsg4HsobANCivsnbTrtoTqt5wNCivsnbTri6zssqANCivsnbTtg5zrspQNCivsnbTsg4HsobANCivsnbTsmIHsl7ANCivsnbTssKjtg50NCivsnbTsmIHso7wNCivsnbTsg4HspIANCivsnbTrtInsiJgNCivsnbTtjJDsmrQNCivsnbTsnqzsl7QNCivsnbTsg4Hsp4ENCivsnbTsmIHssqANCivsnbTrqoXquLgNCivsnbTrr7zsiJgNCivsnbTsg4Hsp4ENCivsnbTsoJDsoJUNCivsnbTsmqnrnoANCivsnbTshJ3sspwNCivsnbTsg4Hsp4QNCivsnbTrjIDrk50NCivsnbTsg4Hsg4ENCivsnbTqta3shKANCivsnbTsg4HsspwNCivsnbTsiJzquLgNCivsnbTsooXrjIANCivsnbTspJHsm4UNCivsnbTsg4HsspwNCivsnbTsnbTsi50NCivsnbTsmrDsi50NCivsnbTsmIHrtoQNCivsnbTsg4HsspwNCivsnbTsmIHqtIANCivsnbTsmIHtg5wNCivsnbTsmIHshKANCivsnbTsg4HssqANCivsnbTssL3tg5wNCivsnbTsnqzsg50NCivsnbTsmIHrk50NCivsnbTsg4HssqANCivsnbQg6rWsDQor7J207KCV656ADQor7J207Jyk7IicDQor7J207IOB7LKgDQor7J206riw7JiBDQor7J207YOc7KSADQor7J207ISx7ZmYDQor7J207IOB7LKgDQor7J207J247IigDQor7J206rSR7JilDQor7J207IS46rWtDQor7J207IOB7LKgDQor7J207KO86rK9DQor7J206rK967aEDQor7J207J6s7KeEDQor7J207IOB7LKgDQor7J207Lmg7LKgDQor7J207ISd6rWQDQor7J2064+Z7JqwDQor7J207IOB7LKgDQor7J207IK87ZmYDQor7J2064+E7ISgDQor7J2064yA7IiYDQor7J207IOB7LKgDQor7J207KO87ISxDQor7J207ZW06recDQor7J207J6s7IiYDQor7J207IOB7YOBDQor7J207KeE66eMDQor7J206rec6rKBDQor7J207Jil7J6sDQor7J207IOB7YOcDQor7J207J2E7J6QDQor7J207IiY66y4DQor7J207YOc6ri4DQor7J207IOB7YOcDQor7J207JuQ7IicDQor7J207J6s7J6QDQor7J2064+Z67O4DQor7J207IOB7YOcDQor7J207IOB7IStDQor7J2064yA6ri4DQor7J206riw7KeEDQor7J207IOB7ZWZDQor7J2066qF7JmEDQor7J207KCV7Zi4DQor7J207J247LacDQor7J207IOB7ZWcDQor7J207Jik7ISdDQor7J207KCV7LKgDQor7J207KKF7ZuIDQor7J207IOB7ZW0DQor7J206re87ZmYDQor7J206re87J6EDQor7J206riw7IudDQor7J207IOB7ZeMDQor7J207IaM64+ZDQor7J207J247IiZDQor7J207KSR7ISgDQor7J207IOB7ZiEDQor7J207KSA7Zi4DQor7J207Zqo7Zi4DQor7J207Jqw7IOBDQor7J207IOB7ZiEDQor7J207IOB6raMDQor7J207ZmN7Z2sDQor7J207IiY6rWwDQor7J207IOB7ZiEDQor7J207KeE7ZeMDQor7J207KKF7IiZDQor7J206rK97YOcDQor7J207IOB7ZiEDQor7J207ZiV7Zi4DQor7J2067OR7JewDQor7J207LCo7KCQDQor7J207IOB7ZiEDQor7J207ISx7IudDQor7J207Jqp7JaRDQor7J207Jqp7Z2sDQor7J207IOB7ZiEDQor7J207YOc66qFDQor7J2066y46regDQor7J206riw7IiYDQor7J207IOB7Zi4DQor7J207ZqM7JqwDQor7J207J6s7ISxDQor7J207ISd7KO8DQor7J207IOB7Zi4DQor7J207ZWY7KeEDQor7J2066y464+EDQor7J207ISx7Zi4DQor7J207IOB7Zi4DQor7J2066y06ri4DQor7J207ZW07ZiEDQor7J207Lmg6ri4DQor7J207IOB7Zi4DQor7J207ZW07KKFDQor7J207JiB7Zi4DQor7J207JiB7IiYDQor7J207IOB7Zi4DQor7J207KCV7ZWZDQor7J2066qF6riIDQor7J207Jqw7Z2sDQor7J207IOB7Zi4DQor7J207Iic6rK9DQor7J207LaY7YOcDQor7J207KCV7JmEDQor7J207IOB7ZmUDQor7J207Jik6rG0DQor7J2064yA7KGwDQor7J207Zic7Z2gDQor7J207IOB7ZmUDQor7J207LKg7IugDQor7J2067SJ7Zi4DQor7J207JiB6re8DQor7J207IOB7ZmUDQor7J207J247J6QDQor7J206rK97JWUDQor7J206riw7ISdDQor7J207IOB7ZmUDQor7J207KKF64usDQor7J207J6s7KSADQor7J207Jyg7ZiBDQor7J207IOB7ZmYDQor7J207Zqo7KGwDQor7J2066+864WEDQor7J207LaY7KGwDQor7J207IOB7ZmpDQor7J207ISx7KSRDQor7J207Iic7IudDQor7J206re86riwDQor7J207IOB7ZqoDQor7J206re87Je0DQor7J2065GQ642VDQor7J206rSR6riwDQor7J207IOB7ZuIDQor7J207IK87LmgDQor7J207LC97J6QDQor7J207JiB7KSADQor7J207IOB7ZuIDQor7J206riI642VDQor7J207KCV7Zi4DQor7J207J6s7ZiEDQor7J207IOd6recDQor7J207LCs6rWsDQor7J20642V7KSADQor7J2067OR7KGwDQor7J207ISc67aEDQor7J2067OR6rWQDQor7J2064+E7Zi4DQor7J207J2867KUDQor7J207ISc7Jq0DQor7J207YOc7IiYDQor7J207Jqp7IiYDQor7J207IOB642VDQor7J207ISd6rCRDQor7J207LC9656YDQor7J207KCV7JWUDQor7J2067OR7IiYDQor7J207ISd6rOkDQor7J207Jqp7J20DQor7J207ZqM7ISdDQor7J207KCV7JWEDQor7J207ISd6reADQor7J207Jqw7IudDQor7J2065GQ64yADQor7J207Iic7JqwDQor7J207ISd6recDQor7J207JiB7JqpDQor7J207IiY67CwDQor7J207ISx7ISdDQor7J207ISd66GdDQor7J207J2466eMDQor7J2064+E7JuFDQor7J207KCV7KGwDQor7J207ISd66GdDQor7J207ISx7IiYDQor7J207JiB67SJDQor7J207ISx6rSADQor7J207ISd66eMDQor7J2064us7LKgDQor7J207ZmN67SJDQor7J207KSR7Zi4DQor7J207ISd67KUDQor7J207Iic7J6sDQor7J206rSR7Z2sDQor7J2067aE7ISdDQor7J207ISd67ORDQor7J2067aE7IiYDQor7J207KeE7ZmUDQor7J207IyN7JqpDQor7J207ISd67O1DQor7J2066qF7Zi4DQor7J2064+Z7Zi4DQor7J207ZmN7Je0DQor7J207ISd7IiYDQor7J207Jqp7JqpDQor7J2064yA7JqxDQor7J207LC97KO8DQor7J207ISd7JiBDQor7J207ZWc7JqwDQor7J207KKF66a8DQor7J207LaY7IiYDQor7J207ISd7JmEDQor7J206rOh7KCcDQor7J206riw66qoDQor7J2067OR7J6QDQor7J207ISd7JqpDQor7J207KCV656ADQor7J207J246rWtDQor7J207JaR7IiYDQor7J207ISd7JuQDQor7J2066+87ZmYDQor7J207KO87JaRDQor7J207KSA7KGwDQor7J207ISd7J28DQor7J207IiY7ISgDQor7J207JiB7Je0DQor7J207J6s66eMDQor7J207ISd7J6sDQor7J2066eM66qpDQor7J207ISx7KeRDQor7J2067OR7JewDQor7J207ISd7J6sDQor7J207KKF7KKFDQor7J207IiY64KoDQor7J207Jqp7ZWcDQor7J207ISd7KO8DQor7J2067OR7LKgDQor7J2064+Z7JuQDQor7J207Jew7IiYDQor7J207ISd7KeADQor7J206rSR6recDQor7J207KO87ZW0DQor7J2067OR6re8DQor7J207ISd7KeEDQor7J207Iic7IiZDQor7J2064+E6raMDQor7J207ZWc7KGwDQor7J207ISd7LCsDQor7J206re87ISxDQor7J2067OR7LC9DQor7J2067OR7IiZDQor7J207ISd7LKcDQor7J2066y47ZmNDQor7J207Z2s6recDQor7J207JiB6recDQor7J207ISd7LacDQor7J206riw7JilDQor7J207Jik7JewDQor7J2064us7IStDQor7J207ISd7YOcDQor7J207J2A7ZmUDQor7J2064+Z7ZmUDQor7J207IKs7KeEDQor7J207ISd7ZiEDQor7J207JiB66qoDQor7J207KCQ7IOdDQor7J20642V6rWtDQor7J207ISd7ZiEDQor7J207YOc7J28DQor7J2067O17LacDQor7J206rK97IiZDQor7J207ISd7ZmNDQor7J207LGE7IicDQor7J207IiY7JilDQor7J2064uk6rOkDQor7J207ISd7ZmYDQor7J2067OR7J20DQor7J207ZWc7JWUDQor7J207JWg7ISgDQor7J207ISd7ZmYDQor7J20642V7LacDQor7J206ri47KO8DQor7J207Jew7LKgDQor7J207ISg67SJDQor7J207J6s7KSRDQor7J2064yA66qpDQor7J207Kad7JqpDQor7J207ISg7IiYDQor7J207KKF7JuQDQor7J2067SJ7JiBDQor7J2064yA7IK8DQor7J207ISg7JiBDQor7J207ZWZ7ZWZDQor7J207Zqo7J20DQor7J207IOB67aEDQor7J207ISg7JqwDQor7J207YOc6rWsDQor7J207J6l7LKgDQor7J207KKF67O1DQor7J207ISg7J20DQor7J207YOc7JewDQor7J2064KZ7KCQDQor7J2064W46raMDQor7J207ISg7Zi4DQor7J2065GQ7KSRDQor7J2067SJ67KUDQor7J207ISd7Jq0DQor7J207ISx6rOkDQor7J207IOB7ZiEDQor7J207Lmg7IudDQor7J207Iic7IiYDQor7J207ISx6rWsDQor7J207IOB7JWEDQor7J2064+Z7KO8DQor7J207YOc7JiBDQor7J207ISx6rWsDQor7J207IS466qoDQor7J207IOB6rWsDQor7J207J287J6QDQor7J207ISx6rWsDQor7J207YyQ6riwDQor7J207ZmU7JuQDQor7J2067OR7JqpDQor7J207ISx6raMDQor7J207J6Q642VDQor7J207IiY6raMDQor7J207JiB7ZiBDQor7J207ISx6raMDQor7J207ZmN7IicDQor7J207KeE7JqwDQor7J207KeE64+EDQor7J207ISx6recDQor7J2066qF7IigDQor7J207JWI6rK9DQor7J2067OR66qpDQor7J207ISx6re8DQor7J207ISd7IiYDQor7J207ISx642VDQor7J207ISd7KO8DQor7J207ISx6re8DQor7J2066+47IiYDQor7J207KCQ6rCRDQor7J207KKF7Zi4DQor7J207ISx6riwDQor7J207ZiE6ri4DQor7J207JiB7KCVDQor7J2064yA7J21DQor7J207ISx6riwDQor7J2065Od7Je0DQor7J207ZWc7Zi4DQor7J207KCV7IudDQor7J207ISx64+EDQor7J206re86ri4DQor7J2066m07IicDQor7J207KeE6re8DQor7J207ISx64+ZDQor7J207ISx7IicDQor7J2065GQ64KoDQor7J207Iic7ZeMDQor7J207ISx656YDQor7J206rG06rWQDQor7J207JuQ64+EDQor7J207KCV7IudDQor7J207ISx66OhDQor7J207ISx7ISxDQor7J207JaR7IiYDQor7J20IOybkA0KK+ydtOyEseunjA0KK+ydtOyDgeyasA0KK+ydtO2DnOyInA0KK+ydtOq3nOq2jA0KK+ydtOyEseunkA0KK+ydtOyDgeywrA0KK+ydtOuqheycqA0KK+ydtOqyveyihQ0KK+ydtOyEseuvvA0KK+ydtOyngOunjA0KK+ydtOyerOyEsQ0KK+ydtOyngO2YuA0KK+ydtOyEseuylA0KK+ydtO2WieuPmQ0KK+ydtOywveyyoA0KK+ydtOyDgeyaqQ0KK+ydtOyEseuztQ0KK+ydtOyaqeyCvA0KK+ydtOuzke2drA0KK+ydtOyWkey2mA0KK+ydtOyEseuztQ0KK+ydtO2XjOq4sA0KK+ydtOq0keyImQ0KK+ydtOustOq3vA0KK+ydtOyEseyEuA0KK+ydtOygkO2XjA0KK+ydtOyatOunjA0KK+ydtOyDge2ZmA0KK+ydtOyEseyImA0KK+ydtOydgOuztQ0KK+ydtOuMgO2VmA0KK+ydtOuPmeyYpQ0KK+ydtOyEseyInA0KK+ydtOy2mOq4iA0KK+ydtOyCvOyEsQ0KK+ydtO2drOuwsA0KK+ydtOyEseyLpA0KK+ydtOyEseq4uA0KK+ydtOyerOyasQ0KK+ydtOyiheq3nA0KK+ydtOyEseyViA0KK+ydtOydhOyEsQ0KK+ydtOyEseusuA0KK+ydtOq4sOq4uA0KK+ydtOyEseyVoA0KK+ydtOuzke2DnQ0KK+ydtOuzke2drA0KK+ydtOyYgeyasQ0KK+ydtOyEseyXvQ0KK+ydtOygle2ZmA0KK+ydtOyaqe2ZmA0KK+ydtOyihe2ZlA0KK+ydtOyEseyYpQ0KK+ydtOygleyInA0KK+ydtOygleuTnQ0KK+ydtOyYgeq3oA0KK+ydtOyEseyasA0KK+ydtOy2qeyImA0KK+ydtOu0ieyImA0KK+ydtOykgO2YuA0KK+ydtOyEseyasA0KK+ydtOq0keyekA0KK+ydtOyDgeyYpQ0KK+ydtOuPmeuwsA0KK+ydtOyEseyatA0KK+ydtOyerOycqA0KK+ydtOyInOyImQ0KK+ydtOyXsOyInA0KK+ydtOyEseybkA0KK+ydtOygleyatA0KK+ydtOyYgeqyvQ0KK+ydtOuylOycqA0KK+ydtOyEseydtQ0KK+ydtOygnOyImQ0KK+ydtOyDge2aqA0KK+ydtOq4iOyXtA0KK+ydtOyEseyehA0KK+ydtO2DnO2ZmA0KK+ydtOygle2WpQ0KK+ydtO2aqOybkA0KK+ydtOyEseyhsA0KK+ydtO2DnOujoQ0KK+ydtOuqheynhA0KK+ydtOyYge2ZmA0KK+ydtOyEseykgA0KK+ydtOyDgeqzpA0KK+ydtOyDgeq0gA0KK+ydtOustOykgA0KK+ydtOyEseykgA0KK+ydtOyduOycqA0KK+ydtOynhOyLnQ0KK+ydtOyViOyLnQ0KK+ydtOyEseykgA0KK+ydtOyerO2YuA0KK+ydtOyDgeyImA0KK+ydtOy2mOyekA0KK+ydtOyEseywrA0KK+ydtOyDge2YuA0KK+ydtOywveyEnQ0KK+ydtOuRkO2YuA0KK+ydtOyEseyyoA0KK+ydtOydvOuztQ0KK+ydtOyduO2ZmA0KK+ydtOyEse2ZlA0KK+ydtOyEseyyoA0KK+ydtOuzkeyXsA0KK+ydtOyEoOqztQ0KK+ydtOyiheq4sA0KK+ydtOyEse2DnA0KK+ydtO2XjOuztQ0KK+ydtOyLoO2RnA0KK+ydtOunjOydvA0KK+ydtOyEse2DnA0KK+ydtO2DnOyasQ0KK+ydtOyaqeyhsA0KK+ydtOuMgOyInA0KK+ydtOyEse2PiQ0KK+ydtOyjvO2VmA0KK+ydtO2ZmOyLnQ0KK+ydtOuCtOuLrA0KK+ydtOyEse2VmA0KK+ydtO2VnOynhA0KK+ydtO2YuOyXtA0KK+ydtOygleulnA0KK+ydtOyEse2YhA0KK+ydtOuRkO2YuA0KK+ydtOuLrOyEnQ0KK+ydtOygleq4uA0KK+ydtOyEse2YhA0KK+ydtOuzkeyjvA0KK+ydtOuzkeq4iA0KK+ydtOq0key2mA0KK+ydtOyEse2YuA0KK+ydtOyhsOq1rA0KK+ydtOq0keyaqQ0KK+ydtOuqheyEnQ0KK+ydtOyEse2YuA0KK+ydtOykkeyekA0KK+ydtOyYgeqzpA0KK+ydtOycpOyihQ0KK+ydtOyEse2YuA0KK+ydtOyDgeuqqQ0KK+ydtOygleyasA0KK+ydtOq4sOyEnQ0KK+ydtOyEse2YuA0KK+ydtOydhOyEoA0KK+ydtOynhOyInA0KK+ydtOyLrOq2jA0KK+ydtOyEse2YuA0KK+ydtOyiheuNlQ0KK+ydtOuzkeqyvQ0KK+ydtOyerOuNlQ0KK+ydtOyEse2YuA0KK+ydtOycteydvA0KK+ydtOuCmey2nA0KK+ydtOuMgOq3vA0KK+ydtOyEse2ZjQ0KK+ydtOyEneyhsA0KK+ydtOyiheq3nA0KK+ydtOyInOyDgQ0KK+ydtOyEse2ZlA0KK+ydtOq1reyhsA0KK+ydtOq1rOuNlQ0KK+ydtOuPmeyaqQ0KK+ydtOyEse2ZmA0KK+ydtOyKue2VtA0KK+ydtOyDge2YuA0KK+ydtOyInOunjA0KK+ydtOyEse2ZmA0KK+ydtOq4sOq3nA0KK+ydtO2YuOyYgQ0KK+ydtO2DnOyYpA0KK+ydtOyEse2ZmA0KK+ydtOyDgeq2jA0KK+ydtOuzkeyhsA0KK+ydtOydvOydvA0KK+ydtOyEse2biA0KK+ydtOuylOybkA0KK+ydtOydmOyglQ0KK+ydtOq1rOyEnA0KK+ydtOyEse2drA0KK+ydtOq3nOykkQ0KK+ydtOustOyEoA0KK+ydtOyEse2ctA0KK+ydtOyEse2drA0KK+ydtOyYgeuFhA0KK+ydtO2XjO2DnA0KK+ydtOq2geydtA0KK+ydtOyEuOuzkQ0KK+ydtOyYpe2YuA0KK+ydtOydmOqzhA0KK+ydtOyiheu2hA0KK+ydtOyEuOyYgQ0KK+ydtOyEne2drA0KK+ydtOydtOydtA0KK+ydtOyDgeydtA0KK+ydtOyEuOyYgQ0KK+ydtOyInOuztQ0KK+ydtOycpOqzpA0KK+ydtOyCvOq3nA0KK+ydtOyEuOyaqQ0KK+ydtOuPme2YhA0KK+ydtOqyveq3vA0KK+ydtOq3vOyImA0KK+ydtOyEuOydvA0KK+ydtOyaqeyErQ0KK+ydtOyepeyepQ0KK+ydtOq3vOyyoA0KK+ydtOyEuOykkQ0KK+ydtOydvOyhsA0KK+ydtOygkOunjA0KK+ydtOyerOybkA0KK+ydtOyEuO2YhA0KK+ydtOyiheyLnQ0KK+ydtOyasOuemA0KK+ydtOuCqO2WpQ0KK+ydtOyEuO2YhA0KK+ydtOuPmeyaqQ0KK+ydtOydvOq1sA0KK+ydtOyEoOyLnQ0KK+ydtOyEuO2YuA0KK+ydtOy2qeybhQ0KK+ydtOqyveyhsA0KK+ydtOydhOq3vA0KK+ydtOyGjOqwkQ0KK+ydtO2DnOq3vA0KK+ydtO2ZjeydvA0KK+ydtOuPme2drA0KK+ydtOyGjOuPjA0KK+ydtOykgOq3vA0KK+ydtOygle2YhA0KK+ydtOyerOq4sA0KK+ydtOyGjOyEnQ0KK+ydtOynhOyYgQ0KK+ydtOuzke2DgQ0KK+ydtO2DnOyekA0KK+ydtOyGjOyImA0KK+ydtOyiheq4uA0KK+ydtOyYgeq3vA0KK+ydtOuPmeybkA0KK+ydtOyGjOyImA0KK+ydtOyImeq3nA0KK+ydtOyYgeu0iQ0KK+ydtOustOyInA0KK+ydtOyGjOyImA0KK+ydtOycte2YuA0KK+ydtOyCvO2YuA0KK+ydtOychOuPmQ0KK+ydtOyGjOyImA0KK+ydtO2YuOyatA0KK+ydtOuPhOuLtA0KK+ydtOyWuO2YuA0KK+ydtOyGjOyImQ0KK+ydtOq4iOq3vA0KK+ydtOqwkeyEsQ0KK+ydtOyDgeq4uA0KK+ydtOyGjOyInA0KK+ydtO2ajOuztA0KK+ydtOyEuO2YhA0KK+ydtOyaqeygnA0KK+ydtOyGjOyLnQ0KK+ydtOyEoOyInA0KK+ydtOunkOyXsA0KK+ydtOyyoOyImA0KK+ydtOyGjOyVlA0KK+ydtOyasOq3vA0KK+ydtO2VnOumvQ0KK+ydtOyaqeyhsA0KK+ydtOyGjOybkA0KK+ydtOustOyasA0KK+ydtOuLrO2drA0KK+ydtOywveuNlQ0KK+ydtOyGjOyhsA0KK+ydtO2DnOyhsA0KK+ydtOuCqOuzkQ0KK+ydtOyInOyLnQ0KK+ydtOyGjOyhsA0KK+ydtO2DnOuegA0KK+ydtOynhOyatA0KK+ydtOqyveydtA0KK+ydtOyGkOyImQ0KK+ydtOyEoOq4sA0KK+ydtOyjvOyaqQ0KK+ydtO2DnOyDgQ0KK+ydtOyGkOyjvA0KK+ydtOuCqOq4uA0KK+ydtOynhOq4sA0KK+ydtOuPme2YhA0KK+ydtOyGoeqxtA0KK+ydtOuPmeq1rA0KK+ydtO2YuOyglQ0KK+ydtOyDgeynhA0KK+ydtOyGoeuhnQ0KK+ydtO2YuOyaqQ0KK+ydtOyEuOyXtA0KK+ydtOygkOuhnA0KK+ydtOyGoeyWkQ0KK+ydtOynhOyImA0KK+ydtO2Yle2YuA0KK+ydtOuMgOyEnQ0KK+ydtOyGoeyXtA0KK+ydtOq4sOq4uA0KK+ydtOuzkeyYpQ0KK+ydtOyYgeunjA0KK+ydtOyImOqyvQ0KK+ydtOyaqeyyoA0KK+ydtOyerOq1rQ0KK+ydtOq1reyEnQ0KK+ydtOyImOqyvQ0KK+ydtO2DnO2biA0KK+ydtOq1rOycoQ0KK+ydtOyEneybkA0KK+ydtOyImOq3vA0KK+ydtOyEse2VmA0KK+ydtOuqheuPiA0KK+ydtOyImOyLnQ0KK+ydtOyImOq4sA0KK+ydtOuylO2YuA0KK+ydtO2aqOyImQ0KK+ydtOyImOq1rQ0KK+ydtOyImOq4uA0KK+ydtOyKueqyvQ0KK+ydtOyerOuMgA0KK+ydtOycpOu0iQ0KK+ydtOyImOuNlQ0KK+ydtO2VtOyLnQ0KK+ydtOyYgeydtA0KK+ydtOyInOq4sA0KK+ydtOyImOuPhA0KK+ydtOuzkeyYgQ0KK+ydtOyerOyImA0KK+ydtOyCvOyatA0KK+ydtOyImOunjA0KK+ydtOyEseq4sA0KK+ydtOuzkeyduA0KK+ydtOyEseyIoA0KK+ydtOyImOuwsQ0KK+ydtOuCqOuPjA0KK+ydtOq4sOyaqQ0KK+ydtOuqheuMgA0KK+ydtOyImOuztQ0KK+ydtOyiheyXtA0KK+ydtOuPiOyDgQ0KK+ydtOyEseyEoA0KK+ydtOyImOuztQ0KK+ydtOyImOyjvA0KK+ydtO2YgeyDgQ0KK+ydtOyDge2ZmA0KK+ydtOyImOuztQ0KK+ydtOuPmeyImQ0KK+ydtOyYgeyInA0KK+ydtOq1rOyekA0KK+ydtOyImOyDgQ0KK+ydtOqwkeuCqA0KK+ydtOyDgeudvQ0KK+ydtOydteyaqQ0KK+ydtOyImOyEnQ0KK+ydtOyDgeyyoA0KK+ydtO2DnOyekA0KK+ydtOyImOyDgQ0KK+ydtOyImOyVvA0KK+ydtOuzkeyXsA0KK+ydtOywqOyLnQ0KK+ydtOq3vOq0gA0KK+ydtOyImOyWuA0KK+ydtOychOyaqQ0KK+ydtOywqOq3nA0KK+ydtO2drOqyvQ0KK+ydtOyImOyXtA0KK+ydtOyiheyekA0KK+ydtOyLnO2RnA0KK+ydtOyerOyZhA0KK+ydtOyImOyXtA0KK+ydtOyEseu2hA0KK+ydtOyKueq0kQ0KK+ydtOuzuO2YuA0KK+ydtOyImOyYpQ0KK+ydtOygle2ZjQ0KK+ydtOyEseyImA0KK+ydtOuzkeq3vA0KK+ydtOyImOyaqQ0KK+ydtOyiheyLnQ0KK+ydtOu0ieyEsQ0KK+ydtOyImeyaqQ0KK+ydtOyImOyaqQ0KK+ydtOybkOyEnQ0KK+ydtO2Vmeu2iA0KK+ydtOyCvO2DnA0KK+ydtOyImOyasA0KK+ydtOywveuPjA0KK+ydtOydvOyImA0KK+ydtOyiheyehA0KK+ydtOyImOybhQ0KK+ydtOq0keyLnQ0KK+ydtOyEneq2jA0KK+ydtO2DnOumvQ0KK+ydtOyImOybkA0KK+ydtOywveuPjA0KK+ydtOy2mOuNlQ0KK+ydtCDrsLANCivsnbTsiJjsnZgNCivsnbTsmIHsobANCivsnbTsmIHqtowNCivsnbTtlZnsi50NCivsnbTsiJjsnbgNCivsnbTsiJzsm4UNCivsnbTsmIHrp4wNCivsnbTsspztmLgNCivsnbTsiJjsoJANCivsnbTsnKTtmLgNCivsnbTsg4HsspwNCivsnbTsmqnsmKQNCivsnbTsiJjsooUNCivsnbTsooXtl4wNCivsnbTrs5Hsp4QNCivsnbTstpzsi50NCivsnbTsiJjspIANCivsnbTso7zsl7QNCivsnbTsmIHtnawNCivsnbTssL3shJ0NCivsnbTsiJjsp4QNCivsnbTrrLjsnpANCivsnbTsooXtmLgNCivsnbTquIjshLENCivsnbTsiJjsp4QNCivsnbTsm5TqtIANCivsnbTsoJXsmqkNCivsnbTtg5zqt7wNCivsnbTsiJjssKwNCivsnbTsg4HsmqkNCivsnbTrkZDshJ0NCivsnbTtlZjshLENCivsnbTsiJjssL0NCivsnbTshLHtmIQNCivsnbTqs7XslZQNCivsnbTsoJXtmakNCivsnbTsiJjssqANCivsnbTsiJzsiJwNCivsnbTtl4zsp4QNCivsnbTso7ztmLgNCivsnbTsiJjtlZkNCivsnbTqtbDquLANCivsnbTsnYTrj4wNCivsnbTtjJDtg50NCivsnbTsiJjtmIQNCivsnbTqsr3tm4gNCivsnbTsi6Tsl7QNCivsnbTqtazrrLgNCivsnbTsiJjtmIQNCivsnbTsnYDsmrANCivsnbTtmZTrrLgNCivsnbTtnaztmLgNCivsnbTsiJjtmIQNCivsnbTsmqntmLgNCivsnbTsp4DspIANCivsnbTsooXtmLgNCivsnbTsiJjtmIQNCivsnbTsirnsoJUNCivsnbTshLHtnawNCivsnbTrs5HtmIQNCivsnbTsiJjtmLgNCivsnbTsg4Hqt5wNCivsnbTspJHtmIQNCivsnbTsi6TshJ0NCivsnbTsiJjtmLgNCivsnbTsooXtg50NCivsnbTqtJHrqqgNCivsnbTsoJXquLgNCivsnbTsiJjtmLgNCivsnbTstpjsmKUNCivsnbTspJHso7wNCivsnbTsoJXsnoQNCivsnbTsiJjtmLgNCivsnbTrs7Xqt5wNCivsnbTqsr3sspwNCivsnbTtg5zqt5wNCivsnbTsiJjtmY0NCivsnbTsnqzsi50NCivsnbTtmITtlokNCivsnbTtmqjsl7QNCivsnbTsiJjtmZgNCivsnbTshKDtg5wNCivsnbTsg4HstpgNCivsnbTsooXshKANCivsnbTsiJjtmakNCivsnbTquLDsi50NCivsnbTshJ3slaANCivsnbTsmqnrtoQNCivsnbTsiJjtnaUNCivsnbTrs5HtmZgNCivsnbTrgqjsi50NCivsnbTsmqntmZQNCivsnbTsiJnqsr0NCivsnbTrtInshK0NCivsnbTshJ3tnLQNCivsnbTrqoXsm5ANCivsnbTsiJnquLANCivsnbTtmY3sm5ANCivsnbTsmqnsmKQNCivsnbTqta3qt5wNCivsnbTsiJnsl7ANCivsnbTqtJHsi50NCivsnbTrs5HssqANCivsnbTtmLjtl4wNCivsnbTsiJntnawNCivsnbTtg5zqt7wNCivsnbTqs4TqtawNCivsnbTsmIHsnbwNCivsnbTsiJzqsr0NCivsnbTsiJjsobANCivsnbTsg4Hqt5wNCivsnbTrqoXrpr0NCivsnbTsiJzqtawNCivsnbTsooXtmLgNCivsnbTsoJDqt5wNCivsnbTrp4zshLENCivsnbTsiJzqtawNCivsnbTtmqjsg4ENCivsnbTrs7Xrj4QNCivsnbTsmIHso7wNCivsnbTsiJzrjZUNCivsnbTqtJHsmKQNCivsnbTtmJzsmrANCivsnbTquLDtmZgNCivsnbTsiJzrj4QNCivsnbTrj5nsobANCivsnbTsiJzsiJkNCivsnbTsspzsm5ANCivsnbTsiJzrp5ANCivsnbTrhbjssqANCivsnbTrs7TshKANCivsnbTsnKTtl4wNCivsnbTsiJzrtoQNCivsnbTrqoXsobANCivsnbTsiJztnLQNCivsnbTspp3smKQNCivsnbTsiJzrtoQNCivsnbTqt7zspIANCivsnbTshLjqt7wNCivsnbTshKDquLANCivsnbTsiJzshLgNCivsnbTrtInrsLANCivsnbTspJHrtIkNCivsnbTrjIDrs7UNCivsnbTsiJzsi6ANCivsnbTquLDqt7wNCivsnbTtmITsnpANCivsnbTsmrTssqANCivsnbTsiJzsl7ANCivsnbTqtazsg4ENCivsnbTtmJXsl6wNCivsnbTsnbzsiJgNCivsnbTsiJzsmIENCivsnbTsooXsobANCivsnbTrs7XspIANCivsnbTsmIHssqANCivsnbTsiJzsmrENCivsnbTtlZzsnbQNCivsnbTssqDrj5kNCivsnbTsnqzsmqkNCivsnbTsiJzsm5ANCivsnbTsnYTsmKUNCivsnbTtg5zsiJgNCivsnbTqt5zsmqkNCivsnbTsiJzsnbQNCivsnbTrj5nqt5wNCivsnbTquLDtnawNCivsnbTsp4Tqsr0NCivsnbTsiJzsnpANCivsnbTqt7zrj4wNCivsnbTrs7TquLgNCivsnbTrj5nstpgNCivsnbTsiJzsnpANCivsnbTshozqtZANCivsnbTrj5nsl7QNCivsnbTqtIDrjZUNCivsnbTsiJzsnpANCivsnbTsmIHsiJwNCivsnbTsnqzsmrANCivsnbTsnqzshJ0NCivsnbTsiJzsnpANCivsnbTsooXsoJUNCivsnbTssL3sm5ANCivsnbTtg5zsmrENCivsnbTsiJzsnqwNCivsnbTtmZTtnaANCivsnbTsl7Tqt6ANCivsnbTqt5ztlZwNCivsnbTsiJzsoJANCivsnbTtg5ztg50NCivsnbTqtJHsiJwNCivsnbTsoJzsnKQNCivsnbTsiJzsobANCivsnbTshLHtmLgNCivsnbTrj4Trj5kNCivsnbTshLHsiJkNCivsnbTsiJzsobANCivsnbTsoJDtlZkNCivsnbTsmrDqsIENCivsnbTrp4zsiJgNCivsnbTsiJztg5wNCivsnbTsmIHsnpANCivsnbTri6ztmLgNCivsnbTtnazsiKANCivsnbTsiJztmIQNCivsnbTso7zqt5wNCivsnbTtmqjrp4wNCivsnbTrjIDsi60NCivsnbTsiJztmLgNCivsnbTtg53si50NCivsnbTtjJTtmIQNCivsnbTrhbjsmIENCivsnbTsiJztmY0NCivsnbTsg4HsmYQNCivsnbTsiKDroKgNCivsnbTrqoXtmZgNCivsnbTsiJztmY0NCivsnbTrs5HsmrANCivsnbTsmqnrjIANCivsnbTsg4Hsl7QNCivsnbTsiJztnawNCivsnbTtg5zsiJgNCivsnbTsnqzrs7UNCivsnbTsg4Hsl7QNCivsnbTsiJztnawNCivsnbTtmLjsl7QNCivsnbTsoJXsnbwNCivsnbTrp4zso7wNCivsnbTsiKDrtIkNCivsnbTsg4HsiJgNCivsnbTsg4Hrp4wNCivsnbTtmZjsiJgNCivsnbTsiKDtnawNCivsnbTrj5nsmqkNCivsnbTtg5ztmLgNCivsnbTsiJzsi6QNCivsnbTsirnqs6QNCivsnbTtmLjsiJgNCivsnbTqt7zrprwNCivsnbTsmKXsmrQNCivsnbTsirnri6wNCivsnbTrtIntmIQNCivsnbTqta3tmLgNCivsnbTquLjrjIANCivsnbTsirnrj5kNCivsnbTsiJztnLQNCivsnbTsnZjtmIQNCivsnbTsnYDsl7QNCivsnbTsirnroKwNCivsnbTrs5HrqqkNCivsnbTtmLjsi6ANCivsnbTtmITshKANCivsnbTsirnrqqgNCivsnbTsmKTtmJUNCivsnbTshJ3snqwNCivsnbTshLjtmLgNCivsnbTsirnrsLANCivsnbTsp4TqtowNCivsnbTtlbTtnawNCivsnbTsnbzsi50NCivsnbTsirnrtoQNCivsnbTqtJHsp4QNCivsnbTtg5zsl7ANCivsnbTrk53shJ0NCivsnbTsirnslrgNCivsnbTspIDqs4QNCivsnbTqsJHssqANCivsnbTstpjsl7QNCivsnbTsirnsl7QNCivsnbTtlbTsiJwNCivsnbTtjJDsl7QNCivsnbTqsr3sg50NCivsnbTsirnsmKUNCivsnbTrj5nqt5wNCivsnbTsg4Hsl7ANCivsnbTtlZntmZQNCivsnbTsirnsmrANCivsnbTqsr3qta0NCivsnbTsgrzqsr0NCivsnbTso7zsmrANCivsnbTsirnsmrENCivsnbTsooXrj4QNCivsnbTrp4zsm5ANCivsnbTsnYDrj5kNCivsnbTsirnsobANCivsnbTstpjsmrENCivsnbTsmqnqtZANCivsnbTsnqXqs6QNCivsnbTsirnso7wNCivsnbTrtIntmZQNCivsnbTsuaDsg4ENCivsnbTrp4zspIANCivsnbTsirnsspwNCivsnbTtl4zqt7wNCivsnbTsnqzspIANCivsnbTsooXquLANCivsnbTsirnsspwNCivsnbTsnZjsmqkNCivsnbTsmIHrp4wNCivsnbTtg5zrspQNCivsnbTsirnsuaANCivsnbTshLjqsr0NCivsnbTtlbTqtowNCivsnbTstqnsoJwNCivsnbTsirntmJUNCivsnbTsoJXqt7wNCivsnbTqt5zrnb0NCivsnbTshLjtg50NCivsnbTsirntmY0NCivsnbTsmIHtmowNCivsnbTsmqntmLgNCivsnbTsl7Dtg50NCivsnbTsirntmZQNCivsnbTsmIHtlZwNCivsnbTsnqXspJENCivsnbTrj5nsl7QNCivsnbTsirntmZQNCivsnbTtmY3tmIENCivsnbTquLDsiJgNCivsnbTqtJHsi50NCivsnbTsirntm4gNCivsnbTshLHtlZgNCivsnbTsmIHqt5wNCivsnbTstpjqsJENCivsnbTsirntm4gNCivsnbTquLDtmIQNCivsnbTshKDqtawNCivsnbTspp3sobANCivsnbTsirntm4gNCivsnbTssL3si6ANCivsnbTsnbjrrLUNCivsnbTrjIDqtawNCivsnbTsirntnawNCivsnbTquLDrspQNCivsnbTtg5zsm5ANCivsnbTrs5HrtoQNCivsnbTsi5zrj5kNCivsnbTrs5Hsl7ANCivsnbTsm5DtmIQNCivsnbTrgqjslaANCivsnbTsi5zsmIENCivsnbTsiJzqs6QNCivsnbTsiJjshJ0NCivsnbTstpjroKgNCivsnbTsi5zsmrANCivsnbTsp4TtmLgNCivsnbTsmqnsiJgNCivsnbTshLHquLANCivsnbTsi5zsm5ANCivsnbTrj5nsnqwNCivsnbTsoJXqtawNCivsnbTsmKTtmLgNCivsnbTsi5zsm5ANCivsnbTtg5ztmLgNCivsnbTsg4HsmIENCivsnbTrs5HtmZgNCivsnbTsi6DqtawNCivsnbTstqnsm5ANCivsnbTrqoXtmqgNCivsnbTsgrzrsLANCivsnbTsi6Drs7UNCivsnbTsnKTsiJgNCivsnbTtlZntmJUNCivsnbTqsJHsl7QNCivsnbTsi6DsmrANCivsnbTtg4DsnbUNCivsnbTsmIHrj4QNCivsnbTsmIHssqANCivsnbTsi6DsnbQNCivsnbTrj5nsm5ANCivsnbTsg4Hsp4QNCivsnbTtj4nssqANCivsnbTsjI3qsJENCivsnbTtg5zsi50NCivsnbTsnpDsmIENCivsnbTsiJztmZgNCivsnbTsjI3shJ0NCivsnbTsg4HshJ0NCivsnbTsoJXsi50NCivsnbTsoJXsmrQNCivsnbTsjI3sirkNCivsnbTtmJzsnpANCivsnbTsnITtmowNCivsnbTsmqnqtawNCivsnbTsjI3sl7ANCivsnbTsoJXsg4ENCivsnbTsmIHsm5ANCivsnbTqsr3qsr0NCivsnbTslYjquLANCivsnbTsoJXtg4ENCivsnbTqt7zqt7wNCivsnbTquLDshK0NCivsnbTslYjsg50NCivsnbTsp4TsnbwNCivsnbTsmqnsm5QNCivsnbTsm5Drj5kNCivsnbTslYjsiJwNCivsnbTshLHrj4QNCivsnbTsg4HshJ0NCivsnbTsoJDtmIQNCivsnbTslZTsmrANCivsnbTsnbzsiJwNCivsnbTsooXsiKANCivsnbTso7zshK0NCivsnbTslpHsiJkNCivsnbTsmIHrsLENCivsnbTrp4ztmZgNCivsnbTshozquLgNCivsnbTslpHsmrANCivsnbTso7ztnawNCivsnbTquLDtnLQNCivsnbTtlbTslaANCivsnbTslpHsnoQNCivsnbTsiJnqtJENCivsnbTsiJjtmY0NCivsnbTrrLjtlZwNCivsnbTslpHtm4gNCivsnbTrp7nsnYANCivsnbTrrLTsiJgNCivsnbTtjJDrjZUNCivsnbTslrXqt7wNCivsnbTtg5zsnbwNCivsnbTsnZjshK0NCivsnbTrs5HsnbwNCivsnbTsl4Xso7wNCivsnbTsg4HsmIENCivsnbTsnqzssL0NCivsnbTtlbTsoJUNCivsnbTsl7Drj5kNCivsnbTsnqztmowNCivsnbTrp5DrhbgNCivsnbTrqoXsi50NCivsnbTsl7Dsi6QNCivsnbTsnYDspIANCivsnbTsg4HtmZgNCivsnbTrp4zqs6QNCivsnbTsl7Dsi6QNCivsnbTsmIHqs6QNCivsnbTrsKntmqgNCivsnbTrs5Hqt7wNCivsnbTsl7Dsi6QNCivsnbTrgrTtmY0NCivsnbTsooXsiJkNCivsnbTrtoDqtawNCivsnbTsl7DsnbQNCivsnbTtjJDtmLgNCivsnbTsmqnrj5kNCivsnbTsnqzso7wNCivsnbTsmIHqtawNCivsnbTquIjrj4QNCivsnbTshLHqs6QNCivsnbTqs4Tqsr0NCivsnbTsmIHqta0NCivsnbTsiJzqt7wNCivsnbTsoJXtmZgNCivsnbTsoJXsiJwNCivsnbTsmIHqta0NCivsnbTtg5zssqANCivsnbTsnqzqsr0NCivsnbTrqoXsi6ANCivsnbTsmIHqt7wNCivsnbTsgrzqsrANCivsnbTtmZTtmZQNCivsnbTtg5zsi50NCivsnbTsmIHquLANCivsnbTsoJzsp4QNCivsnbTshKDsl7QNCivsnbTsmIHtlbQNCivsnbTsmIHquLANCivsnbTsooXrpaANCivsnbTsiJzsm5ANCivsnbTquLDsmqkNCivsnbTsmIHquLANCivsnbTsmIHsobANCivsnbTsoJzqsr0NCivsnbTrs5HshJ0NCivsnbTsmIHquLANCivsnbTshLHsp4QNCivsnbTri6zsi50NCivsnbTqt5zsnbwNCivsnbTsmIHquLANCivsnbTsm5DsnqwNCivsnbTshLHrtIkNCivsnbTtg5zqt5wNCivsnbTsmIHquLgNCivsnbTsg4HtmLgNCivsnbTrqoXsp4QNCivsnbTrjIDshJ0NCivsnbTsmIHquLgNCivsnbTsnYDso7wNCivsnbTstqntg50NCivsnbTsoJXsiJwNCivsnbTsmIHquLgNCivsnbTsmIHtlokNCivsnbTsmKXqs6QNCivsnbTrs5HtmIQNCivsnbTsmIHrj5kNCivsnbTsmrDtmZgNCivsnbTsspzrp4wNCivsnbTspIDtnawNCivsnbTsmIHrnb0NCivsnbTsoJXroKgNCivsnbTsirnsiJwNCivsnbTrs5HtkZwNCivsnbTsmIHrnoANCivsnbTrjZXquIgNCivsnbTsooXsnKQNCivsnbTspJHsl7QNCivsnbTsmIHroZwNCivsnbTsg4HrhbgNCivsnbTsnYTsmrANCivsnbTsiJjtlZgNCivsnbTsmIHrqqkNCivsnbTssL3tm4gNCivsnbTtlbTshJ0NCivsnbTtmZTsp4QNCivsnbTsmIHrr7wNCivsnbTtg5zso7wNCivsnbTtg5zrsLANCivsnbTsnKTssqANCivsnbTsmIHrr7wNCivsnbTqsJHsmrQNCivsnbTsoJztlZgNCivsnbTqsr3tmLgNCivsnbTsmIHsg4ENCivsnbTsirnrj4QNCivsnbTsiJjsl7ANCivsnbTtg5zrj4QNCivsnbTsmIHshJ0NCivsnbTqsJHsiJgNCivsnbTrj5ntmZgNCivsnbTtg5ztmZgNCivsnbTsmIHshKANCivsnbTrkZDsi50NCivsnbTshJzqt5wNCivsnbTso7zsi50NCivsnbTsmIHshK0NCivsnbTsmrDsiKANCivsnbTrs5Hsm5ANCivsnbTrtoTsiJgNCivsnbTsmIHshLgNCivsnbTrkZDsiJwNCivsnbTqt6DslZQNCivsnbTtjJDqtZANCivsnbTsmIHshLgNCivsnbTtmY3si50NCivsnbTtmITsnbUNCivsnbTquLDrhbgNCivsnbTsmIHsiJgNCivsnbTsoJDtnawNCivsnbTslpHtmZgNCivsnbTquLDqt5wNCivsnbTsmIHsiJgNCivsnbTsgrzrtIkNCivsnbTssL3tnawNCivsnbTqsr3tmJwNCivsnbTsmIHsiJgNCivsnbTsnKTshJ0NCivsnbTrqoXsiJkNCivsnbTquLDqsJENCivsnbTsmIHsiJgNCivsnbTtnazroZ0NCivsnbTsnbzqt5wNCivsnbTsp4TsmIENCivsnbTsmIHsiJgNCivsnbTshJ3qt5wNCivsnbTrs5HtmLgNCivsnbTrhbjrj4QNCivsnbTsmIHsiJgNCivsnbTrgqjqt5wNCivsnbTtjJTrsLANCivsnbTshLHsiJwNCivsnbTsmIHsiJkNCivsnbTrs5HslZQNCivsnbTrjZXtmZQNCivsnbTrs7XtkZwNCivsnbTsmIHsiJkNCivsnbTsoJXrjZUNCivsnbTtjJDrrLQNCivsnbQg7J28DQor7J207JiB7IiZDQor7J207J246rWsDQor7J2066qF7KeEDQor7J207KeE7IudDQor7J207JiB7IiZDQor7J207KKF66qpDQor7J207ZWc7KCVDQor7J207KCQ7IiYDQor7J207JiB7IicDQor7J207YOc7IiYDQor7J207Jil6riwDQor7J206rec7ISdDQor7J207JiB7IicDQor7J207YyQ7ZmYDQor7J207ISx7ZWcDQor7J207IOB7IiZDQor7J207JiB7IicDQor7J207Jik7KGwDQor7J207LCs7KGwDQor7J206rec7Z2sDQor7J207JiB7IicDQor7J207Jqp7JiBDQor7J207Jqw67aEDQor7J207Zqo7Z2sDQor7J207JiB7IudDQor7J206rec66qoDQor7J207LC97Jq0DQor7J207Jm46rWQDQor7J207JiB7IudDQor7J207Jqw7JewDQor7J2066y4642VDQor7J2066eM7Zi4DQor7J207JiB7JewDQor7J2066eM7IiYDQor7J206rOE7J20DQor7J206riw7IiYDQor7J207JiB7Je0DQor7J2064W47Z2sDQor7J207J6l6riwDQor7J207J2A7KO8DQor7J207JiB7JikDQor7J207YOc7JqwDQor7J207Jqp6recDQor7J2067OR7J6QDQor7J207JiB7JilDQor7J206rSR7IicDQor7J207KCV7JilDQor7J207J6s7KO8DQor7J207JiB7JqwDQor7J2066ek7YOBDQor7J207JiB7IiYDQor7J2066qF7IOBDQor7J207JiB7JuFDQor7J207YyQ7J6QDQor7J207Jil6raMDQor7J207ZW06rOkDQor7J207JiB7JuQDQor7J206re87LCsDQor7J206rOh7ZWZDQor7J207KKF6re8DQor7J207JiB7JykDQor7J207Jik7JqwDQor7J207J6s7IOBDQor7J207JiB7KSRDQor7J207JiB7J24DQor7J2065GQ7JqwDQor7J206rec7JilDQor7J207ZiV7Zi4DQor7J207JiB7J28DQor7J207JiB7JqpDQor7J207LKg7ZmYDQor7J206rK967CwDQor7J207JiB7J28DQor7J207IOB7LKgDQor7J207J6s7ZiEDQor7J2067OR7ZiEDQor7J207JiB7J6QDQor7J206rK967mIDQor7J206re87ISgDQor7J207IOB7JWFDQor7J207JiB7J6sDQor7J207KCV7JikDQor7J206rSR7IigDQor7J2064+Z7IS4DQor7J207JiB7KGwDQor7J207YOc7JqpDQor7J207ZiV6rWsDQor7J207Iic6rWsDQor7J207JiB7KGwDQor7J2064+Z7Z2sDQor7J207LmY6re8DQor7J207J247Jq0DQor7J207JiB7KGwDQor7J207KCQ7LCsDQor7J207IOB7JewDQor7J207IiY7JewDQor7J207JiB7KO8DQor7J206rK97LKcDQor7J207J2A7Z2sDQor7J2064+Z64+EDQor7J207JiB7KeEDQor7J207JiB7IiYDQor7J207ZWc7ISdDQor7J207JiB7IicDQor7J207JiB7LKgDQor7J2065GQ7IiYDQor7J207KCV7KSADQor7J206riw7ISdDQor7J207JiB7YOcDQor7J207IaM6rK9DQor7J207IS47ZiEDQor7J207ZqM7Jq0DQor7J207JiB7ZWZDQor7J207KKF7IiYDQor7J207IOB64+ZDQor7J207ISd7Z2sDQor7J207JiB7Zi4DQor7J207JiB67aEDQor7J207KeA7IudDQor7J207Jqp7LKgDQor7J207JiB7Zi4DQor7J207YOc7ZmYDQor7J206riw67O1DQor7J207KO87JiBDQor7J207JiB7Zi4DQor7J207ZWE6rK9DQor7J207LC97ZqoDQor7J207IOB7J6sDQor7J207JiB7Zi4DQor7J207Iic66eMDQor7J206riw7J6EDQor7J2067OR7YOcDQor7J207JiB7Zi4DQor7J207J6l7KKFDQor7J2064us7ZeMDQor7J2066+47LKgDQor7J207JiB7Zi4DQor7J207ZiE67SJDQor7J207ZWc7IK8DQor7J207ISg7LKgDQor7J207JiB7Zi4DQor7J207ZmN6rK9DQor7J2064yA7JuQDQor7J207KKF7KGwDQor7J207JiB7Zi4DQor7J207Jik6recDQor7J206rK966y1DQor7J207IOB7JilDQor7J207JiB7ZmUDQor7J207J6s7IiZDQor7J207IK87JykDQor7J207ZmN67CwDQor7J207JiB7ZmYDQor7J2067OR7J6QDQor7J207JiB7IOBDQor7J207ZiE7ZmUDQor7J207JiB7ZmYDQor7J207KCV7ZmYDQor7J207ZWc7IicDQor7J207KeE7JWUDQor7J207JiB7ZmYDQor7J2066qF7LaYDQor7J207Jes7Zi4DQor7J207J247ZmUDQor7J207JiB7ZuIDQor7J207IS47IudDQor7J206riw7KCQDQor7J207ISx66a9DQor7J207JiB7ZuIDQor7J207JiB7KCcDQor7J207ZiV67O1DQor7J207KCV7ZqoDQor7J207JiB7ZuIDQor7J2067O17IStDQor7J207J247ZyYDQor7J207YOc64+ZDQor7J207JiB7Z2sDQor7J207KCQ7KSADQor7J207J6s67KUDQor7J207JuQ6rWsDQor7J207JiB7Z2sDQor7J2066+47ISxDQor7J207IOB7Zi4DQor7J207LaY7LKgDQor7J207JiB7Z2sDQor7J2066+467SJDQor7J207ISg64+EDQor7J207KSR7Je0DQor7J207JiB7Z2sDQor7J206re87KGwDQor7J207J2067O1DQor7J207ISg7IicDQor7J207JiB7Z2sDQor7J207JiB7IiZDQor7J207KCV7J20DQor7J2067OR6rK9DQor7J207Jik6re8DQor7J207J246raMDQor7J207KeE7KO8DQor7J207JuQ7JiBDQor7J207Jil6rK9DQor7J207IK87J28DQor7J207IiY6recDQor7J207Zi47IicDQor7J207Jil6riwDQor7J206rSR66qFDQor7J207YOc7ZmYDQor7J207LKc7IiYDQor7J207Jil64KcDQor7J20IOyImA0KK+ydtOq3nOyImQ0KK+ydtOyerOyglQ0KK+ydtOyYpeuPjA0KK+ydtOycpOqwkQ0KK+ydtO2YuO2ZmA0KK+ydtOyEne2DnA0KK+ydtOyYpeuegA0KK+ydtOyehOyasA0KK+ydtOyYge2YuA0KK+ydtOu0ieuPmQ0KK+ydtOyYpeuegA0KK+ydtOyDge2YuA0KK+ydtOycpOyYpA0KK+ydtOyduOuemA0KK+ydtOyYpeugqA0KK+ydtOyEoOuwsA0KK+ydtOyerOyYgQ0KK+ydtOyiheyImA0KK+ydtOyYpeu2hA0KK+ydtOq1kOyInA0KK+ydtOyYgeuqqQ0KK+ydtOq3ueydtA0KK+ydtOyYpeyEoA0KK+ydtOuzkeq1kA0KK+ydtOq4sOyaqQ0KK+ydtOyEseuwsA0KK+ydtOyYpeyEoA0KK+ydtOynhOydtA0KK+ydtO2YuOyYpA0KK+ydtOyEse2YuA0KK+ydtOyYpeyInA0KK+ydtOyiheuPhA0KK+ydtOqzteyIoA0KK+ydtOusuO2VmQ0KK+ydtOyYpeyXsA0KK+ydtOydtOuNlQ0KK+ydtOyerOyehA0KK+ydtOyerO2VtA0KK+ydtOyYpeydtA0KK+ydtOykgO2YhA0KK+ydtOyYpeuNlQ0KK+ydtOuPme2ZmA0KK+ydtOyYpeyekA0KK+ydtOyYpOyXsA0KK+ydtOuLrOuPmQ0KK+ydtO2DnOuMgA0KK+ydtOyYpeyjvA0KK+ydtOuFuOydvA0KK+ydtOunjOqxtA0KK+ydtOyduOuPhA0KK+ydtOyYpeyjvA0KK+ydtOyihe2ZlA0KK+ydtOuqheyEnQ0KK+ydtOyEneyerA0KK+ydtOyYpe2drA0KK+ydtOyduOyEoA0KK+ydtOyCvO2VhA0KK+ydtOqyveykgA0KK+ydtOyZhOq1rQ0KK+ydtOyEoOybkA0KK+ydtOyaqeyLnQ0KK+ydtO2DnOyLnQ0KK+ydtOyZhOuylA0KK+ydtOuNleyglQ0KK+ydtO2DnOyyoA0KK+ydtOyImO2YuA0KK+ydtOyZhOydtA0KK+ydtOq4sOyEoA0KK+ydtOyWuOuhnQ0KK+ydtCDsmqkNCivsnbTsmYTtnawNCivsnbTsl7Dqt5wNCivsnbTquLDsiJgNCivsnbTquLDtmLgNCivsnbTsmZXsnqwNCivsnbTtg5zrsLANCivsnbTtmZTsp4QNCivsnbTtnaztmZQNCivsnbTsmZXsobANCivsnbTtlbTtnawNCivsnbTsoJDsnbwNCivsnbTsnYDquLANCivsnbTsmbjrgqgNCivsnbTrj5ntmY0NCivsnbTsp4DssqANCivsnbTsgqzrnoANCivsnbTsmbjsiJwNCivsnbTsooXquLANCivsnbTsg4Hro6ENCivsnbTqt6DsobANCivsnbTsmbjspIANCivsnbTtg5ztmZgNCivsnbTshozrnpgNCivsnbQg7KeEDQor7J207Jqp6rG0DQor7J2066eQ7Zi4DQor7J206re87Zi5DQor7J207KCV7ZmYDQor7J207Jqp6rKsDQor7J207IOB6riIDQor7J2067OR6529DQor7J207Z2l7IiYDQor7J207Jqp6rSADQor7J2064yA7JuQDQor7J207KKF67ORDQor7J207J2A7Zi4DQor7J207Jqp6rWsDQor7J207JiB64+ZDQor7J207KeE7KSADQor7J207KKF7IiYDQor7J207Jqp6rWsDQor7J207ZiV7ISgDQor7J207ZW07IiYDQor7J207Jqw7ZmYDQor7J207Jqp6rWtDQor7J207J247KCcDQor7J207KCQ7JiBDQor7J207Iic7KCQDQor7J207Jqp6raMDQor7J206rK964yADQor7J207ISd7JqpDQor7J207ZWZ64W4DQor7J207Jqp6recDQor7J2066qF7ISxDQor7J207LCo7J6EDQor7J206rK97Zi4DQor7J207Jqp6riwDQor7J2064+Z7KCQDQor7J2064yA7IiZDQor7J206rG066y4DQor7J207Jqp6riwDQor7J206rOE7YOBDQor7J2067SJ7LCsDQor7J207KeE7JaRDQor7J207Jqp65OdDQor7J207JiB6rWtDQor7J2067SJ7KCVDQor7J207ISx64+ZDQor7J207Jqp66y4DQor7J207KCE7JWUDQor7J207KKF7ZiEDQor7J207LKc7J24DQor7J207Jqp66y4DQor7J207IaM7JiBDQor7J207Zqo7JuQDQor7J207JiB642VDQor7J207Jqp67CxDQor7J207Iig64WEDQor7J206rWs7ZiVDQor7J207LaY7Zi4DQor7J207Jqp67O1DQor7J2066qF64+EDQor7J207JiB64+ZDQor7J207J6E7IiZDQor7J207Jqp7ISdDQor7J2067OR7IudDQor7J206riI7IudDQor7J207Jqp7IicDQor7J207Jqp7ISdDQor7J207J247Je0DQor7J206riw7IiYDQor7J207YOc642VDQor7J207Jqp7IiYDQor7J207KCc7JqpDQor7J206re87JqxDQor7J207KSR7YOcDQor7J207Jqp7IiYDQor7J2066eM7Zi4DQor7J207Iq57JuQDQor7J207ZW06recDQor7J207Jqp7IudDQor7J207LCo7LaYDQor7J206rec7IiYDQor7J207Ja47ZiEDQor7J207Jqp7JeFDQor7J207ISx7ZmUDQor7J2067O166a8DQor7J2066qF64+MDQor7J207Jqp7JeFDQor7J207KSA67O1DQor7J207Jqp7LKcDQor7J207Jyk7Zi4DQor7J207Jqp7Je0DQor7J207YyQ67aEDQor7J207IyN6raMDQor7J207J2R6rWsDQor7J207Jqp7Jq0DQor7J207J6s7KeEDQor7J207YOc67O1DQor7J207KKF656RDQor7J207Jqp7Jq0DQor7J207Jyg7IudDQor7J207J217ISxDQor7J207J6s7ZmYDQor7J207Jqp7JuQDQor7J2064+Z64usDQor7J2064W47JmVDQor7J207J287KKFDQor7J207Jqp7KGwDQor7J207JiB7ISdDQor7J2066eQ6raMDQor7J207YOc7KGwDQor7J207Jqp7KO8DQor7J2067OR7JiBDQor7J207IK87JewDQor7J207KKF7J6QDQor7J207Jqp7KO8DQor7J2067O17IOBDQor7J207KCV7J6QDQor7J2064yA7ZmNDQor7J207Jqp7LKgDQor7J207KCV7Z2gDQor7J2067OR7Jq0DQor7J2066eM7KeEDQor7J207Jqp7LKgDQor7J207YOc65OdDQor7J207LC96rWtDQor7J207ISx7IiYDQor7J207Jqp7LacDQor7J207Iic6recDQor7J2066eM7ISgDQor7J2064yA7J6QDQor7J207Jqp7YOcDQor7J207Iic7JqpDQor7J207Z2s7IiYDQor7J207ISd6recDQor7J207Jqp7YOdDQor7J207Iic7J28DQor7J207IOB7JilDQor7J207ISx7Z2sDQor7J207Jqp7YOdDQor7J2064+E7ZuIDQor7J207KKF7Zy0DQor7J2065GQ7KSADQor7J207Jqp7YOdDQor7J207JiB6regDQor7J207ZW07IudDQor7J207JiB7ZmYDQor7J207Jqp7YyUDQor7J207IaM7ISdDQor7J207ISd7ISgDQor7J207J6s7J6QDQor7J207Jqp7YyUDQor7J207KCV7LacDQor7J206rCR7IudDQor7J207JiB7IiYDQor7J207Jqp7ZWcDQor7J207Zqo64+EDQor7J207IOB7LCoDQor7J207ISx6rWQDQor7J207Jqp7ZiBDQor7J207Jyk7IiZDQor7J207JiB7IiZDQor7J2064+Z7JqpDQor7J207Jqp7ZiEDQor7J207Jq07Jq0DQor7J207J6s7J6QDQor7J207Jm464+EDQor7J207Jqp7Zi4DQor7J2066qF7JqxDQor7J207Jyk7JqxDQor7J207JuQ7YOdDQor7J207Jqp7ZmUDQor7J207IOB7Zi4DQor7J207LaY7Zi4DQor7J2064+Z6rWtDQor7J207Jqp7ZmYDQor7J207KCV7ZuIDQor7J206riw7Zi4DQor7J207Zi47JyoDQor7J207Jqp7ZmYDQor7J207J2A7LKgDQor7J207LaY7JuFDQor7J2066eM64+MDQor7J207Jqp7Z2sDQor7J207JiB6riwDQor7J207YOc6recDQor7J207KCV7JuQDQor7J207Jqp7Z2sDQor7J207IOB64+ZDQor7J207ISx64yADQor7J207Zic7IiYDQor7J207Jqw6re8DQor7J2066qF7ZiEDQor7J2067OR7JqpDQor7J207IaM7ISgDQor7J207Jqw64+ZDQor7J207KeA7LmZDQor7J2067KU7Iq5DQor7J207Jyk66eMDQor7J207Jqw64+ZDQor7J207LKg66CoDQor7J207JiB7LC9DQor7J207IOB7IudDQor7J207Jqw7ISdDQor7J207Jqp7IStDQor7J207KKF7KeEDQor7J2066qF7IudDQor7J207Jqw7IudDQor7J207Zi46riwDQor7J2064+I7YOcDQor7J207Iic6recDQor7J207Jqw7IudDQor7J207Jqp67aEDQor7J207KSR7YOdDQor7J206rK97KSADQor7J207Jqw7IudDQor7J2067OR7KGwDQor7J2066qF7JqpDQor7J207J6s7Je0DQor7J207Jqw7IudDQor7J207J2R7J28DQor7J207JiB7KO8DQor7J207KeE6rCADQor7J207Jqw7J6EDQor7J207KCV7JqpDQor7J207JiB7ISgDQor7J206reA7ISdDQor7J207Jqw7ZmYDQor7J207KeA7ZmNDQor7J2066eQ7YOcDQor7J207ZW07JWUDQor7J207Jqx64W4DQor7J2067aE7IiYDQor7J207J6s7Z2sDQor7J207ZWt7JqxDQor7J207Jqx7ZmYDQor7J206rCR64+EDQor7J207ZiE7J6QDQor7J207IiY7ZmYDQor7J207Jqx7ZmYDQor7J207Zi47ZWZDQor7J207Jqw7IiYDQor7J2064Ko7IiYDQor7J207Jq07ISdDQor7J207JiB7ISdDQor7J207Lap7IudDQor7J207Iug7IiYDQor7J207Jq07LKgDQor7J2064Ko7KSADQor7J207YOc7IOBDQor7J207JiB64KoDQor7J207Jq07ZWZDQor7J207KCV7KCQDQor7J207ZiE64+EDQor7J2067OR7J20DQor7J207Jq07Zi4DQor7J207IOB7J6sDQor7J206riw7KO8DQor7J207J2A7IicDQor7J207JuF7Je0DQor7J207KKF7J6QDQor7J207J2E7IiYDQor7J207KSA7JqpDQor7J207JuQ6rWsDQor7J2066eM7Je0DQor7J2067O17JqpDQor7J2067aE7J24DQor7J207JuQ6recDQor7J207KO87ZmUDQor7J207KCV66eMDQor7J207YyQ67mIDQor7J207JuQ6recDQor7J2067SJ7LKgDQor7J207LC97IiYDQor7J206rSR7Zi4DQor7J207JuQ6recDQor7J207Zqo6rSADQor7J207J2R7IiZDQor7J207KKF7J28DQor7J207JuQ6riwDQor7J207ISd64WEDQor7J207JuQ7IudDQor7J2067SJ7J6QDQor7J207JuQ6riwDQor7J207Zqo67SJDQor7J206rOE64KoDQor7J207IiY66+4DQor7J207JuQ6ri4DQor7J207LKg7KGwDQor7J207Iq56riwDQor7J206rSR7Zi4DQor7J207JuQ64yADQor7J207ISg7IugDQor7J2066y47JqpDQor7J207ZW07Zi4DQor7J207JuQ67CwDQor7J207YOc67aEDQor7J207ZWc6recDQor7J206riw7JmEDQor7J207JuQ67CwDQor7J20IOyYpQ0KK+ydtOydhO2YhA0KK+ydtOynhO2ZmA0KK+ydtOybkOu2hA0KK+ydtOyasOuwsA0KK+ydtOyYge2YuA0KK+ydtOq4sOyInA0KK+ydtOybkOyGjA0KK+ydtOyerOq4sA0KK+ydtOyEoOygnA0KK+ydtOyGjOyInA0KK+ydtOybkOyImA0KK+ydtOyaqe2VmA0KK+ydtOuPmeyYpQ0KK+ydtOyYgeyLnQ0KK+ydtOybkOyImA0KK+ydtOuMgOq4sA0KK+ydtOyEoOyXtA0KK+ydtOyEse2DnA0KK+ydtOybkOyImA0KK+ydtOyDgeyImA0KK+ydtOyaqe2YhA0KK+ydtOyiheyatA0KK+ydtOybkOyLnQ0KK+ydtOyerO2YuA0KK+ydtOykgO2YhA0KK+ydtOyehOyImA0KK+ydtOybkOyLnQ0KK+ydtOyImOyasQ0KK+ydtO2DnOy2nA0KK+ydtOyYgeuPiA0KK+ydtOybkOyYgQ0KK+ydtOyGjOuTnQ0KK+ydtO2YhOyErQ0KK+ydtOuzkeyLnQ0KK+ydtOybkOyasA0KK+ydtOyEse2ZmA0KK+ydtOu0ieuqqA0KK+ydtOyaqe2XjA0KK+ydtOybkOyasA0KK+ydtOustOyZhA0KK+ydtOyYgeyihQ0KK+ydtOyynO2biA0KK+ydtOybkOydvA0KK+ydtOuPmeynhA0KK+ydtOu0ieyEoA0KK+ydtOuptOy2nA0KK+ydtOybkOyekA0KK+ydtOqyveq4uA0KK+ydtOyDgeyZhA0KK+ydtO2VnOyyoA0KK+ydtOybkOyerA0KK+ydtOynhO2YhA0KK+ydtOq1kO2MkA0KK+ydtOyYgeyZhA0KK+ydtOybkOyhsA0KK+ydtOuvuO2ctA0KK+ydtOywveyEoA0KK+ydtOykkeyEoA0KK+ydtOybkOynhA0KK+ydtOyjvOyWkQ0KK+ydtOybkOy2nA0KK+ydtOu0ieyxhA0KK+ydtOybkOyyoA0KK+ydtOuPhOyEsQ0KK+ydtOyaqeybhQ0KK+ydtOusuOyWkQ0KK+ydtOybkOy2nA0KK+ydtOyKueyekA0KK+ydtOuvuOuNlQ0KK+ydtO2Yleq1kA0KK+ydtOybkO2YlQ0KK+ydtOygle2drA0KK+ydtOyepeuztQ0KK+ydtOyaqeqzhA0KK+ydtOybkO2YuA0KK+ydtOq4uOq4sA0KK+ydtOyiheyaqQ0KK+ydtOyImO2YhA0KK+ydtOybkO2ZlA0KK+ydtOuzteq3vA0KK+ydtOyduOyekA0KK+ydtOyDgeqyvQ0KK+ydtOybkO2drA0KK+ydtOyImOyEsQ0KK+ydtOuqheq3vA0KK+ydtOyekOuTnQ0KK+ydtOyblOqzhA0KK+ydtOyerOyLnQ0KK+ydtOq0ke2DnQ0KK+ydtOuCqOyihQ0KK+ydtOyblOyEoA0KK+ydtO2YleyEnQ0KK+ydtOygleuqqQ0KK+ydtOyerOujoQ0KK+ydtOyblOyEsQ0KK+ydtOuMgO2YhA0KK+ydtOyyoOu2hA0KK+ydtOygnOq3nA0KK+ydtOyblO2VnA0KK+ydtOq4iO2biA0KK+ydtOygnO2VmQ0KK+ydtOydvOuMgA0KK+ydtOyblO2drA0KK+ydtOyEne2YuA0KK+ydtOuzkeyXsA0KK+ydtOyDgeyErQ0KK+ydtOychOunjA0KK+ydtOusuOybhQ0KK+ydtOuzke2ZmA0KK+ydtOyerOq4iA0KK+ydtOychOyErQ0KK+ydtOyImO2YuA0KK+ydtOyatOyErQ0KK+ydtOyerOuPmQ0KK+ydtOychOyImQ0KK+ydtOyYgeyerA0KK+ydtOyiheycpA0KK+ydtOyWkeyImQ0KK+ydtOychOy2nA0KK+ydtO2ZlOydtA0KK+ydtOq4sOyImA0KK+ydtO2DnOyVlA0KK+ydtOychO2YuA0KK+ydtOyEneyekA0KK+ydtOq4sOy5oA0KK+ydtOuRkOu0iQ0KK+ydtOycoOyXtA0KK+ydtOqwke2ZmA0KK+ydtOyerOyYpA0KK+ydtOq4sOycpA0KK+ydtOycoOybkA0KK+ydtOy+jOyglQ0KK+ydtOygleq3nA0KK+ydtOywveyEnQ0KK+ydtOycoO2ZmA0KK+ydtO2YhOyImA0KK+ydtOycoOq1rQ0KK+ydtOqxtOq3vA0KK+ydtOycoe2DnQ0KK+ydtOyEneyaqQ0KK+ydtOyInOq3vA0KK+ydtOyInOyVoA0KK+ydtOycpOq3nA0KK+ydtOyxhOyasA0KK+ydtOyCvOuPjA0KK+ydtOy2mOuLrA0KK+ydtOycpOq3vA0KK+ydtOqwleudvQ0KK+ydtOywveyEoA0KK+ydtCDtmLgNCivsnbTsnKTquLANCivsnbTsl4XqtZANCivsnbTqsr3rj4QNCivsnbTtmqjsl7ANCivsnbTsnKTquLANCivsnbTsnqzshKANCivsnbTshLjquLgNCivsnbTstpjrtIkNCivsnbTsnKTrhbgNCivsnbTsmIHsl7ANCivsnbTsiJzsiJgNCivsnbTsmbjsl7QNCivsnbTsnKTrp4wNCivsnbTsg4HstpgNCivsnbTtg5zshKANCivsnbTrs5Hsi50NCivsnbTsnKTsiJgNCivsnbTsiJzrsJUNCivsnbTtg5ztlZkNCivsnbTsm5Dsm5ANCivsnbTsnKTsiJgNCivsnbTrqoXtmLgNCivsnbTsp4Dsm5ANCivsnbTtg5ztlqUNCivsnbTsnKTsi50NCivsnbTqsr3tg5wNCivsnbTrj5ntmIQNCivsnbTssqDspIANCivsnbTsnKTsmKUNCivsnbTsiJjrj5kNCivsnbTso7zsmKUNCivsnbTsooXsiJgNCivsnbTsnKTsm5ANCivsnbTshLHtmIQNCivsnbTsnqzsmIENCivsnbTtmJXsiJgNCivsnbTsnKTsnqwNCivsnbTsooXsmKQNCivsnbTtjJDsmqkNCivsnbTsm5Dsp4QNCivsnbTsnKTsoJUNCivsnbTtg4HsiJgNCivsnbTsnKTqtowNCivsnbTrs5HsmIENCivsnbTsnKTsooUNCivsnbTsooXrjZUNCivsnbTsnbzqsbgNCivsnbTsnbTso7wNCivsnbTsnKTsooUNCivsnbTrtoDtnawNCivsnbTquLDspIANCivsnbTsp4Dsi50NCivsnbTsnKTsp4QNCivsnbTsm5DtnawNCivsnbTshLHtmakNCivsnbTshKDsmKUNCivsnbTsnKTssYQNCivsnbTsgrztg50NCivsnbTtg5zsl7QNCivsnbTsoJXsnbwNCivsnbTsnKTssqANCivsnbTtjJDtlYQNCivsnbTrkZDsiJgNCivsnbTtmY3sl7ANCivsnbTsnKTssqANCivsnbTsg4HsmqkNCivsnbTsmIHtmZQNCivsnbTtmLjsmrANCivsnbTsnKTssqANCivsnbTqtJHqta0NCivsnbTsiJjqtowNCivsnbTsvoztg5wNCivsnbTsnKTtmIQNCivsnbTrr7zsoJUNCivsnbTtg5ztlZkNCivsnbTrs5HtmLgNCivsnbTsnKTtmIQNCivsnbTrqoXquIgNCivsnbTsiJjso7wNCivsnbTtmJztmIQNCivsnbTsnKTtm4gNCivsnbTsm5TrjIANCivsnbTtg5zrtoQNCivsnbTqtazssKwNCivsnbTsnKTtnawNCivsnbTtl4zsmIENCivsnbTtmY3tg5wNCivsnbTsmqnsiJwNCivsnbTsnLXquLANCivsnbTtg5ztm4gNCivsnbTsnbjsiKANCivsnbTtmITrqqkNCivsnbTsnYDqsr0NCivsnbTtlbTsmIENCivsnbTrgqjquLANCivsnbTsnKTtg5wNCivsnbTsnYDqtJENCivsnbTtl4ztnawNCivsnbQg7ZmYDQor7J207LC97ZmNDQor7J207J2A7IiZDQor7J206rCV7JqwDQor7J2066eM7ZiEDQor7J207ZWc7JWgDQor7J207J2A7JiBDQor7J207Jyk7LacDQor7J207ISx7ISgDQor7J206rG07Z2sDQor7J207J2A7JqwDQor7J207IOB7ZW0DQor7J207YyQ6re8DQor7J207KCV7ZiEDQor7J207J2A7KGwDQor7J207J6s7IudDQor7J2064Ko66a9DQor7J206rK97IudDQor7J207J2A7KO8DQor7J207ISg7LmgDQor7J207ISx642VDQor7J2064+E7IudDQor7J207J2A7KO8DQor7J207ZiE6recDQor7J2065GQ7KeEDQor7J207JiB7J6QDQor7J207J2A7KO8DQor7J207ZiE6rSADQor7J207KKF64yADQor7J2066qF7ISxDQor7J207J2A7LKgDQor7J207KGw66GADQor7J2067SJ7Z2sDQor7J206rK97Z2sDQor7J207J2A7YOBDQor7J207IOB7LapDQor7J206rSR7IicDQor7J206rK97J6QDQor7J207J2E7ISgDQor7J2065GQ7ZmYDQor7J207KKF7ZWcDQor7J207JiB6riwDQor7J207J2E7KO8DQor7J206riw7YOdDQor7J207J207JikDQor7J207J6s6rCVDQor7J207J2E7ZiVDQor7J207JiB7LKgDQor7J207IK87ZmNDQor7J207ZuE7Z2sDQor7J207J2R64+EDQor7J207KCV7JqwDQor7J206riw6recDQor7J207J247ZuIDQor7J207J2R67O1DQor7J207J6s7Z2sDQor7J207LCo7JqxDQor7J207Iq567aEDQor7J207J2R7KSADQor7J207IyN6recDQor7J206rSR7Jq0DQor7J206rOE7J6QDQor7J207J2Y7IaMDQor7J20IOyEnQ0KK+ydtOyWkey2nA0KK+ydtOqzoOyViA0KK+ydtOydmOyImA0KK+ydtOustOyaqQ0KK+ydtOyYge2doA0KK+ydtO2XjOyXsA0KK+ydtOydmOyLoA0KK+ydtOykgOyerA0KK+ydtOuMgOq3vA0KK+ydtOygleyInA0KK+ydtOydmOyaqQ0KK+ydtOyduOuPhA0KK+ydtOyDgeyImA0KK+ydtOyInO2YuA0KK+ydtOydmOybhQ0KK+ydtOunjOq4sA0KK+ydtOuzke2YhA0KK+ydtOyImOydgA0KK+ydtOydmOy2nA0KK+ydtOycpOyEnQ0KK+ydtOq4iO2DnQ0KK+ydtOuNle2drA0KK+ydtOydmO2ZmA0KK+ydtOyYgeuCqA0KK+ydtOyerOyImA0KK+ydtO2VnOyhsA0KK+ydtOydtOqyvQ0KK+ydtO2VtOunjA0KK+ydtOyYgey2mA0KK+ydtOyInOycpA0KK+ydtOydtOq3vA0KK+ydtOynhOyImA0KK+ydtOyDge2VtA0KK+ydtOuCqOuPjA0KK+ydtOydtOuCqA0KK+ydtOyerOyEnQ0KK+ydtOqyveynhA0KK+ydtOywqOyekA0KK+ydtOydtOuTnQ0KK+ydtOyZuO2VmA0KK+ydtOykgOyVlA0KK+ydtOyerO2YhA0KK+ydtOydtOyEnQ0KK+ydtOybkOq0gA0KK+ydtOyInOusuA0KK+ydtOusuOuMgA0KK+ydtOydtOyaqQ0KK+ydtOybkOyEnQ0KK+ydtOyaqeq0kQ0KK+ydtOunjOynhA0KK+ydtOydte2YhA0KK+ydtOy5oOyXtA0KK+ydtO2DnOq3nA0KK+ydtOyepe2WiQ0KK+ydtOyduOqzpA0KK+ydtOyiheyImQ0KK+ydtOyYpe2YhA0KK+ydtOyDgeyyoA0KK+ydtOyduOqzpA0KK+ydtOyWkeydvA0KK+ydtOyEne2YhA0KK+ydtOyDgeyaqQ0KK+ydtOyduOq1rA0KK+ydtOyerO2drA0KK+ydtOydtOq3nA0KK+ydtOyDgeq3nA0KK+ydtOyduOq3nA0KK+ydtOykkeyInA0KK+ydtO2ZlOuqhQ0KK+ydtOyblOyInA0KK+ydtOyduOuPmQ0KK+ydtOyMjeycpA0KK+ydtOq4sOq1kA0KK+ydtOyyoOyglQ0KK+ydtOyduOuqqA0KK+ydtOydtOuwsA0KK+ydtOuqheyDnQ0KK+ydtOyImOyjvA0KK+ydtOyduOyEnQ0KK+ydtOyEseydmA0KK+ydtOyYgeyEoA0KK+ydtOuFuOykgA0KK+ydtOyduOyErQ0KK+ydtOqyveyjvA0KK+ydtOydmOu0iQ0KK+ydtO2ZjeyhsA0KK+ydtOyduOyImA0KK+ydtOustOyImA0KK+ydtOyYgeywrA0KK+ydtOyDgey2mA0KK+ydtOyduOyImA0KK+ydtOyEneyekA0KK+ydtOyDge2ZmA0KK+ydtOydvOyImQ0KK+ydtOyduOyImA0KK+ydtO2YuO2biA0KK+ydtOq0ke2drA0KK+ydtOyepeyasQ0KK+ydtOyduOyImQ0KK+ydtO2VtOq3oA0KK+ydtOyEneydtA0KK+ydtOyerOydgA0KK+ydtOyduOyImQ0KK+ydtO2DnOuNlQ0KK+ydtO2Zjeq2jA0KK+ydtOyYgeuvvA0KK+ydtOyduOyYgQ0KK+ydtOq3nOq4iA0KK+ydtOuzke2YuA0KK+ydtOyKueygnA0KK+ydtOyduOyasA0KK+ydtOyaqeuvvA0KK+ydtOyerOydtA0KK+ydtO2DnOu2hA0KK+ydtOyduOyekA0KK+ydtOunjOyihQ0KK+ydtOyatO2drA0KK+ydtOyekOyXsA0KK+ydtOyduOyyoA0KK+ydtOq1sOu2hA0KK+ydtOu2gOyerA0KK+ydtOyerOyErQ0KK+ydtOyduO2RnA0KK+ydtOyEseqzpA0KK+ydtOuMgOyLnQ0KK+ydtOq4sOyaqQ0KK+ydtOyduO2WpQ0KK+ydtOusuOuNlQ0KK+ydtO2ZmOuPjA0KK+ydtOyImeuTnQ0KK+ydtOyduO2YuA0KK+ydtOyYge2DnA0KK+ydtOq4sOyImA0KK+ydtOuqve2ZmA0KK+ydtOyduO2YuA0KK+ydtOyaqeyglQ0KK+ydtOyWuOyjvA0KK+ydtOyYge2YhA0KK+ydtOyduO2YuA0KK+ydtOyYgeyduA0KK+ydtOyiheuNlQ0KK+ydtOykgOybkA0KK+ydtOyduO2ZmA0KK+ydtOq4iOuMgA0KK+ydtOunkOyLnQ0KK+ydtOyaqeynkQ0KK+ydtOyduO2ZmA0KK+ydtOyDgeyInA0KK+ydtO2VmeuFgA0KK+ydtOunjOyEnQ0KK+ydtOyduO2ZmA0KK+ydtOyduO2ZmA0KK+ydtOyWkeyImQ0KK+ydtOyKueybhQ0KK+ydtOydvOq2jA0KK+ydtOynhOyaqQ0KK+ydtOyiheyhsA0KK+ydtOuCqOqzpA0KK+ydtOydvOq3oA0KK+ydtOyasOuylA0KK+ydtO2VtOq4sA0KK+ydtOyEse2VmQ0KK+ydtOydvOyDiQ0KK+ydtOuqheu0iQ0KK+ydtOyImOyLnQ0KK+ydtOuqheyYpQ0KK+ydtOydvOyImA0KK+ydtOyYge2YuA0KK+ydtOy2qeyYpQ0KK+ydtO2DnOuegA0KK+ydtOydvOyImA0KK+ydtOywveuhnQ0KK+ydtOuzkeuNlQ0KK+ydtOyDge2YuA0KK+ydtOydvOyInA0KK+ydtOuRkOyXsA0KK+ydtOywrOyYgQ0KK+ydtOyInO2YhA0KK+ydtOydvOyInA0KK+ydtOyEseuztQ0KK+ydtOqwkO2DnA0KK+ydtOyGjOyImA0KK+ydtOydvOyInA0KK+ydtOyGjOuPhA0KK+ydtOyYgeyImQ0KK+ydtO2MkO2YuA0KK+ydtOydvOybhQ0KK+ydtO2DnO2YuA0KK+ydtOyjvO2YhA0KK+ydtOq4sOyXtA0KK+ydtOydvOybkA0KK+ydtOuFuOq3vA0KK+ydtOyihe2YhA0KK+ydtOq4iOyepQ0KK+ydtOydvO2YuA0KK+ydtOunkOynhA0KK+ydtO2YhOyLnQ0KK+ydtOygleyLnQ0KK+ydtOydvO2YuA0KK+ydtOuqheyYpQ0KK+ydtOyerOq4sA0KK+ydtOu0ieyEnQ0KK+ydtOydvO2ZmA0KK+ydtOyEnO2YhA0KK+ydtOyEseq1kA0KK+ydtOyWuOyEsQ0KK+ydtOydvO2ZmA0KK+ydtOydmO2ZmA0KK+ydtOyDge2ZlA0KK+ydtOyEneq3nA0KK+ydtOyehOuTnQ0KK+ydtOyInOyaqQ0KK+ydtO2YhOyVhQ0KK+ydtOyiheq4uA0KK+ydtOyehOyEnQ0KK+ydtOuCmeq2jA0KK+ydtOydmOyEnQ0KK+ydtOywveyImA0KK+ydtOyehOyEoA0KK+ydtCDsiJgNCivsnbTtlbTtmY0NCivsnbTsoJXsmKUNCivsnbTsnoTshKANCivsnbTrs7TshJ0NCivsnbTsoJXtnawNCivsnbTqsr3shJ0NCivsnbTsnoTshKANCivsnbTsmIHsiJwNCivsnbTsoJXroKgNCivsnbTsoJDquLgNCivsnbTsnoTsiJkNCivsnbTtnaXsiJgNCivsnbTshKDtmIQNCivsnbTtlbTstpwNCivsnbTsnoTsiJwNCivsnbTqsJHtlZgNCivsnbTtlZztmLgNCivsnbTsmIHsmqkNCivsnbTsnoTsi50NCivsnbTqtJHsnpANCivsnbTrj5nsobANCivsnbTrs7Xqs6QNCivsnbTsnoTsmqkNCivsnbTsmIHrjZUNCivsnbTsm5Dqt5wNCivsnbTsnbjspIANCivsnbTsnoTsnbQNCivsnbTsmqntg5wNCivsnbTsmIHshLENCivsnbTsp4TtmLgNCivsnbTsnoTsnbQNCivsnbTrs5HtmLgNCivsnbTso7ztmIENCivsnbTtmY3smqkNCivsnbTsnoTsnpANCivsnbTrgqjsl7ANCivsnbTrs5HsiJgNCivsnbTtlbTtnawNCivsnbTsnoTtlZkNCivsnbTsg4HquLANCivsnbTrj4TsmqkNCivsnbTsgrzsnpANCivsnbTsnoTtmLgNCivsnbTqtIDsmqkNCivsnbTsiJjsmIENCivsnbTrtInsl7QNCivsnbTsnpDsl7ANCivsnbTsnqzri6wNCivsnbTsmIHsmKQNCivsnbTtjJDqt5wNCivsnbTsnqXqt7wNCivsnbTqt5zqt6ANCivsnbTtlZzqta0NCivsnbTrtoTsmrQNCivsnbTsnqXrhbgNCivsnbTsoJXsiJgNCivsnbTsmIHsiJgNCivsnbTsiJzrp4wNCivsnbTsnqXrjZUNCivsnbTshJ3siJgNCivsnbTrjZXrjZUNCivsnbTtmZTsiJgNCivsnbTsnqXrsLANCivsnbTsnbzso7wNCivsnbTsg4Hsi50NCivsnbTsooXsm5ANCivsnbTsnqXsh4QNCivsnbTsooXquLANCivsnbTshLHqta0NCivsnbTrj5ntmLgNCivsnbTsnqXsiJgNCivsnbTsg4Hrj4QNCivsnbTsoJXsobANCivsnbTsiJztj6wNCivsnbTsnqXsiJgNCivsnbTsoJDspJENCivsnbTsp4TshJ0NCivsnbTshKDqt4ANCivsnbTsnqXsmKQNCivsnbTquLDsnqwNCivsnbTshJ3siJkNCivsnbTsmIHrj5kNCivsnbTsnqXsmrANCivsnbTqsr3qsJUNCivsnbTsnqzslaANCivsnbTsnKTrj4wNCivsnbTsnqXsmrANCivsnbTqsJHsobANCivsnbTsnbjsi50NCivsnbTtlbTquLANCivsnbTsnqXsmrENCivsnbTrj4Tqt6ANCivsnbTssL3siJkNCivsnbTsnZHquLANCivsnbTsnqXso7wNCivsnbTsi6DssqANCivsnbTtlbTrpaANCivsnbTrtInquLANCivsnbTsnqXstpgNCivsnbTtg5ztmY0NCivsnbTrjIDqta0NCivsnbTquIjqsqwNCivsnbTsnqXstpgNCivsnbTsmIHssqANCivsnbTsmqnso7wNCivsnbTsg4HquLANCivsnbTsnqXtmLgNCivsnbTtg5ztlZwNCivsnbTspp3smKUNCivsnbTsnqzspIANCivsnbTsnqXtmLgNCivsnbTsmIHsiJkNCivsnbTsnqztmIQNCivsnbTtg5zsnqwNCivsnbTsnqXtmZgNCivsnbTsmKXtmIENCivsnbTsooXsmIENCivsnbTslpHsiKANCivsnbTsnqXtmZgNCivsnbTquLDsi50NCivsnbTsiJjtmowNCivsnbTtg5zquLANCivsnbTsnqXtnawNCivsnbTquLjrjZUNCivsnbTso7zroKQNCivsnbTsoJXsnoQNCivsnbTsnqzqsJENCivsnbTsmKTtnawNCivsnbTsmIHsl7QNCivsnbTsmIHshJ0NCivsnbTsnqzqsr0NCivsnbTstpjquLgNCivsnbTqt7zsmIENCivsnbTqtJHsiJwNCivsnbTsnqzqtIANCivsnbTshJ3smKUNCivsnbTsmIHri6wNCivsnbTsooXqtawNCivsnbTsnqzqtawNCivsnbTtmozrpr0NCivsnbTsmIHsi50NCivsnbTsiJnsiJgNCivsnbTsnqzqtawNCivsnbTsoJXtmZQNCivsnbTsoJXqtawNCivsnbTsoJXquLgNCivsnbTsnqzqta0NCivsnbTsoJDsiJwNCivsnbTrqoXsmqkNCivsnbTrtInsnpANCivsnbTsnqzqtowNCivsnbTshLjrtIkNCivsnbTsmqntnawNCivsnbTsnbzshK0NCivsnbTsnqzqt6ANCivsnbTtjJDqtJENCivsnbTsnqzsi50NCivsnbTsooXtg5wNCivsnbTsnqzqt7wNCivsnbTtlbTshJ0NCivsnbTsmIHssq0NCivsnbTsoJXshJ0NCivsnbTsnqzqt7wNCivsnbTsnKTtnawNCivsnbTqs4TrnpgNCivsnbTrj5nsl7ANCivsnbTsnqzquLANCivsnbTrj4TsiJwNCivsnbTtg5zrp4wNCivsnbTrqoXsnpANCivsnbTsnqzquLgNCivsnbTqsbTtkZwNCivsnbTrs5Hrj4wNCivsnbTrj5nrrLgNCivsnbTsnqzrjZUNCivsnbTqs4TquLgNCivsnbTsooXsmqkNCivsnbTri6zshLENCivsnbTsnqzrjZUNCivsnbTsooXspJENCivsnbTtjJTsmrANCivsnbTsmKXssqANCivsnbTsnqzrjZUNCivsnbTquLDrp4wNCivsnbTshJ3rj4QNCivsnbTsooXtj6wNCivsnbTsnqzrj4QNCivsnbTsm5DsirkNCivsnbTsoJDrj5kNCivsnbTtg5zshK0NCivsnbTsnqzrj5kNCivsnbTshJ3siJgNCivsnbTshLHsmqkNCivsnbTssL3tlZkNCivsnbTsnqzrp4wNCivsnbTshLHtlZgNCivsnbTrqoXrj4wNCivsnbTsnqzrqqgNCivsnbTsnqzrp4wNCivsnbTsg4Hqs6QNCivsnbTrj5nsobANCivsnbTqsJXqtowNCivsnbTsnqzrqoUNCivsnbTrqbTrjIANCivsnbTshLHtlZgNCivsnbTslrXsmqkNCivsnbTsnqzrrLgNCivsnbTsmIHrp4wNCivsnbTsmIHqt5wNCivsnbTsnqzsiJkNCivsnbTsnqzrrLgNCivsnbQg7YOcDQor7J207ZeM66y1DQor7J207ZWY7ISdDQor7J207J6s66y4DQor7J207ISx7J21DQor7J207KeE64KoDQor7J2067aE7LKcDQor7J207J6s67ORDQor7J207KCV7ZmUDQor7J206rSR6re8DQor7J206riw7JqpDQor7J207J6s67O1DQor7J207KKF7ISdDQor7J2066eM7IudDQor7J207ISx6raMDQor7J207J6s67SJDQor7J20642V7Je0DQor7J2064+Z64KoDQor7J206rec7J6sDQor7J207J6s67SJDQor7J207J207ZeMDQor7J207ZiE7Z2gDQor7J207YOc7YyUDQor7J207J6s67SJDQor7J207JiB7LaYDQor7J207J247YOdDQor7J2066qF7ZuIDQor7J207J6s67aIDQor7J207KeE7ZiEDQor7J207ISx7KSADQor7J207J2A7IiYDQor7J207J6s7ISgDQor7J207ZyY7J28DQor7J207KKF7ISgDQor7J207Z2l7ZqMDQor7J207J6s7ISgDQor7J2067OR7ISxDQor7J207YOc7YyQDQor7J20642V7KSRDQor7J207J6s7ISxDQor7J206rK97Zi4DQor7J2065GQ7KGwDQor7J207J287KKFDQor7J207J6s7ISxDQor7J207JiB64u0DQor7J2064+Z7IOdDQor7J207JuQ7JqpDQor7J207J6s7ISxDQor7J207Jq066eMDQor7J207YOc7YOdDQor7J207Iic7IiZDQor7J207J6s7IicDQor7J206riw7Zi4DQor7J207KCV7J28DQor7J207ZmN7JqwDQor7J207J6s7IudDQor7J207Jqp7YOdDQor7J207KKF7LC9DQor7J207KKF7JikDQor7J207J6s7JewDQor7J207ZWZ7IiYDQor7J206ri47IeEDQor7J207ZWc7Jq0DQor7J207J6s7Je0DQor7J206rK97LC9DQor7J207ZmY6rOkDQor7J207KeB7ISgDQor7J207J6s7JiBDQor7J207JiB7JykDQor7J206rK97ZiEDQor7J207Iq56riwDQor7J207J6s7JmEDQor7J2064us7ZiEDQor7J207Iic7Je0DQor7J207YOc7J20DQor7J207J6s7JqwDQor7J207ZWZ7JqwDQor7J2064+Z7ZmYDQor7J2067O17J6sDQor7J207J6s7JqwDQor7J2064+Z67SJDQor7J2064+Z7ZiEDQor7J207Z2s7JqpDQor7J207J6s7JqwDQor7J2066qF7KGwDQor7J207JiB6recDQor7J207JiB7IudDQor7J207J6s7JqwDQor7J207ZiE67aADQor7J207Jqp64+EDQor7J2064us7KeEDQor7J207J6s7JqwDQor7J2067aE7JiBDQor7J207LaY7JaRDQor7J207J6l7YOcDQor7J207J6s7JuFDQor7J207LKg642VDQor7J207JiB7LCoDQor7J206rWs7Zi4DQor7J207J6s7JuQDQor7J207IiY7J6sDQor7J207IOB7IiYDQor7J206re86recDQor7J207J6s7JyoDQor7J207KeE65OdDQor7J207LC97KSADQor7J207ISx6rK9DQor7J207J6s7J21DQor7J207YyQ7ISdDQor7J207KCV7IudDQor7J2066y07J6sDQor7J207J6s7J24DQor7J207Jyk7YOdDQor7J207IiY7JqwDQor7J207KKF7JilDQor7J207J6s7J28DQor7J207KCV64yADQor7J207ISx7Z2gDQor7J206raM7IS4DQor7J207J6s7KCVDQor7J207J287ISdDQor7J206rSR7IOBDQor7J207KO87Zi4DQor7J207J6s7KSADQor7J207JiB7Zy0DQor7J207Jyk6riwDQor7J207Jqp6rSADQor7J207J6s7LKcDQor7J207KCQ7IutDQor7J207ISx7JilDQor7J207ISk642VDQor7J207J6s7LKcDQor7J207JiB7JqwDQor7J207LC97IiYDQor7J207JaR7IiYDQor7J207J6s7LKgDQor7J2064us656YDQor7J207Jew7JiBDQor7J2067aE6rWsDQor7J207J6s7Zi4DQor7J2067OR7ZiEDQor7J207KKF7IiYDQor7J2064KZ67aEDQor7J207J6s7Zi4DQor7J2064+Z6regDQor7J2064+Z7IudDQor7J2066+47ZeMDQor7J207J6s7Zi4DQor7J207JiB7JuQDQor7J207LaY7ZiEDQor7J207KKF7LKgDQor7J207J6s7Zi4DQor7J206rCR7KO8DQor7J207Jqp6raMDQor7J207J246rWtDQor7J207J6s7Zi4DQor7J207LaU66qoDQor7J206rWs64+EDQor7J207LKg66OhDQor7J207J6s7ZmYDQor7J207J6s7ISdDQor7J207KSR7ZmUDQor7J206rSR7JiBDQor7J207J6s7ZuIDQor7J207Jq07JuFDQor7J2067OR7ZiEDQor7J207Z2s7YOcDQor7J207J6s7Z2sDQor7J206rK97YOBDQor7J206ri47JikDQor7J207JiB7IudDQor7J207J6s7Z2sDQor7J207ISx6re8DQor7J207YOc6re8DQor7J206rCR6riwDQor7J207KCQ64uIDQor7J207JuQ7JqwDQor7J207Jqp6rWtDQor7J2066eM7LKcDQor7J207KCQ64+EDQor7J207Jyk7JqpDQor7J207J2464yADQor7J207J6s64+EDQor7J207KCQ7ISgDQor7J206rOh6riwDQor7J207ISd7JuQDQor7J207ZiE7ZiEDQor7J207KCQ7IS4DQor7J207IiY7J20DQor7J207Jil7LKgDQor7J207KCV6rK9DQor7J207KCQ7IiYDQor7J2067OR7Zi4DQor7J207IOB7JWUDQor7J207KKF66y4DQor7J207KCQ7IiYDQor7J2064+Z7Je0DQor7J2067KU7KO8DQor7J2066eM7ZuIDQor7J207KCQ7IicDQor7J207IiY6re8DQor7J207IOB7ZmUDQor7J206rO17ZWcDQor7J207KCQ7IicDQor7J207LC966eMDQor7J207YOc7LKgDQor7J2065GQ7Jq0DQor7J207KCQ7JWUDQor7J207Lap7JuQDQor7J2064+Z7KGwDQor7J207Jqp7YOcDQor7J207KCQ7JWUDQor7J207ZmY7Je0DQor7J207YOc7Zy0DQor7J207ZWY65OdDQor7J207KCQ7JWUDQor7J206rSR642VDQor7J207J247ISxDQor7J207KeA7IudDQor7J207KCQ7JWUDQor7J207ZiE7IiZDQor7J2067SJ7IiYDQor7J206riw6re8DQor7J207KCQ7JikDQor7J207JiB6rCRDQor7J2067OR7IStDQor7J207Z2s6recDQor7J207KCQ7KGwDQor7J2064+Z7LaYDQor7J207JiB6rK4DQor7J207ZWc7IiYDQor7J207KCQ7Zi4DQor7J2067SJ6recDQor7J207ZWc7ISgDQor7J207IOB7IudDQor7J207KCV6rCRDQor7J207Jqp7J28DQor7J206rec7IudDQor7J207ZWc6riwDQor7J207KCV6rG0DQor7J207KKF7JqxDQor7J2067OR6riwDQor7J207ISd7KeEDQor7J207KCV6rOkDQor7J2067OR7IiYDQor7J207IOB7ZmYDQor7J206rCc7Je0DQor7J207KCV6rSADQor7J2064+Z6recDQor7J20642V7IOBDQor7J206ri47YOcDQor7J207KCV6rWsDQor7J2064+Z7YOcDQor7J2066qF7LKgDQor7J206reA6riwDQor7J207KCV6rWtDQor7J207JiB7JqxDQor7J207KCV6riwDQor7J207KeE7ZWYDQor7J207KCV6rWtDQor7J207JiB7Zi4DQor7J207ZiE7J28DQor7J207IK87IiYDQor7J207KCV6raMDQor7J207IOB66GdDQor7J207ISx7IStDQor7J2066qF6recDQor7J207KCV6recDQor7J2067OR6rWtDQor7J207J6s7J6sDQor7J2066qF6rK9DQor7J207KCV6recDQor7J2066+87JqpDQor7J207ZmN7J28DQor7J206rK97ZmNDQor7J207KCV6recDQor7J207ISx7JiBDQor7J207IiY66qoDQor7J2065GQ6rCVDQor7J207KCV6regDQor7J207Jqw7Z2sDQor7J2066qF67O1DQor7J206rSR7J6QDQor7J207KCV6regDQor7J207Jqp6ri4DQor7J207YOc7KGwDQor7J207JiB7JuQDQor7J207KCV6riwDQor7J207IOB7IicDQor7J207ISx66qoDQor7J207KeE7ZmNDQor7J207KCV6ri4DQor7J207KeE7IicDQor7J207YOc7JuQDQor7J207KCV7Je0DQor7J207KCV64KoDQor7J207J6s7ZWEDQor7J207ISg7IigDQor7J2064KZ6rK9DQor7J207KCV64usDQor7J207J287J6sDQor7J207Iq57ZWcDQor7J207JiB6recDQor7J207KCV642VDQor7J207J6E7LKgDQor7J2067OR7IiZDQor7J207Jqp7KO8DQor7J207KCV642VDQor7J207Lap6riwDQor7J207KCE6recDQor7J207Jik6recDQor7J207KCV64+EDQor7J207J287YOcDQor7J207ZWc6rCBDQor7J206rK97IigDQor7J207KCV64+MDQor7J207J6s7Je0DQor7J207JiB7Zi4DQor7J207YOc7ISgDQor7J207KCV65GQDQor7J207ISd7IiYDQor7J207IOB7ISgDQor7J207KCV66+8DQor7J207KCV656ADQor7J207Jyk6re8DQor7J207Jqp7ZuIDQor7J207KKF7KCcDQor7J207KCV66GcDQor7J207KKF7ZmUDQor7J207IOB7LKcDQor7J207JiB7IudDQor7J207KCV66WgDQor7J207JuQ66asDQor7J207ZeM7ISdDQor7J206rWs7JewDQor7J207KCV66a9DQor7J207KCQ7ZmYDQor7J2067OR7ISkDQor7J207YOc7KSADQor7J207KCV66+4DQor7J207ISx7KeEDQor7J207IiY6rOkDQor7J207ISc6rWsDQor7J207KCV66+8DQor7J207ZW07IiYDQor7J207ZmN7KGwDQor7J20642V7IiYDQor7J207KCV67aEDQor7J207KCc7ZmNDQor7J207KO87YOcDQor7J207JiB7KKFDQor7J207KCV7ISgDQor7J207Iq56riwDQor7J207KCV7YOcDQor7J207Iuc7ZmYDQor7J207KCV7IS4DQor7J207Jil7ZqoDQor7J207IS47JewDQor7J207LC97JiBDQor7J207KCV7IS4DQor7J207Lmg6riwDQor7J207J6Q6riwDQor7J207Iic66y4DQor7J207KCV7IiYDQor7J207ISd7Zi4DQor7J207JiB7J20DQor7J207KCV7YOcDQor7J207KCV7IiYDQor7J207ISx7JqpDQor7J207Jyk7IOBDQor7J207J6s66eMDQor7J207KCV7IiYDQor7J207Jqw7ISxDQor7J206riw7ZiVDQor7J207JiB7KeEDQor7J207KCV7IiZDQor7J206rSA66eMDQor7J207Jqp7YOcDQor7J207IK87ISgDQor7J207KCV7IiZDQor7J207ISg67SJDQor7J207KCV7JmEDQor7J207YOc7ZWZDQor7J207KCV7IiZDQor7J207ZiE7Zi4DQor7J207IK87Zi4DQor7J207JiB6rCRDQor7J207KCV7IiZDQor7J207KCV7Z2sDQor7J207ISx7J6QDQor7J207IOB7JykDQor7J207KCV7IiZDQor7J207LCs6riwDQor7J207ZiE7JuQDQor7J2064us7IudDQor7J207KCV7IicDQor7J207Jqp7YOcDQor7J2064us6riwDQor7J207KKF7IudDQor7J207KCV7IicDQor7J207ISx7LKgDQor7J207YOc64usDQor7J207ZW067aEDQor7J207KCV7IicDQor7J207KCV7LC9DQor7J207YOc6rOkDQor7J207KKF64KoDQor7J207KCV7IudDQor7J207ZWZ7ZmYDQor7J207Jqp7IiZDQor7J207J217ISxDQor7J207KCV7JWgDQor7J2067OR6rOkDQor7J20IO2DnA0KK+ydtOydvOyhsA0KK+ydtOygleyVoA0KK+ydtOyehOq3oA0KK+ydtOyYgeyekA0KK+ydtO2DnOyyoA0KK+ydtOygleyVoA0KK+ydtOyerO2drA0KK+ydtO2DnO2DnA0KK+ydtO2YhO2ZlA0KK+ydtOygleyXsA0KK+ydtOyEseyYpQ0KK+ydtO2VtOyImA0KK+ydtO2DnOyVlA0KK+ydtOygleyXtA0KK+ydtOuPmeyImA0KK+ydtOyInOyImA0KK+ydtOynhOybhQ0KK+ydtOygleyYpA0KK+ydtOyyoOykgA0KK+ydtO2VtOyihQ0KK+ydtOuqheynhA0KK+ydtOygleyYpQ0KK+ydtOqwnOyIoA0KK+ydtOynhOuhnQ0KK+ydtOusuOq3vA0KK+ydtOygleybhQ0KK+ydtOyerOq1kA0KK+ydtO2Wie2DnA0KK+ydtOyEseybhQ0KK+ydtOygleybhQ0KK+ydtCDtnawNCivsnbTrjIDspJENCivsnbTsooXsobANCivsnbTsoJXsm4UNCivsnbTsnKTtg50NCivsnbTstpjsiJgNCivsnbTsm5DspIANCivsnbTsoJXsm5ANCivsnbTsoJXsiJgNCivsnbTssL3siJwNCivsnbTsoJXtmZgNCivsnbTsoJXsnKQNCivsnbTsp4Trp4wNCivsnbTqtJHquLgNCivsnbTtg5zqs6ANCivsnbTsoJXsnZgNCivsnbTrjZXshK0NCivsnbTquLDsmqkNCivsnbTrs5Htl4wNCivsnbTsoJXsnbwNCivsnbTshLHsoJUNCivsnbTsmIHsl7QNCivsnbTqtZDsp4QNCivsnbTsoJXsnoQNCivsnbTshozssqANCivsnbTspJHssKwNCivsnbTsoJXspJENCivsnbTsoJXsnoQNCivsnbTsoJXsm5ANCivsnbTsooXsiJwNCivsnbTtmJXrgqgNCivsnbTsoJXso7wNCivsnbTslpHsg4ENCivsnbTso7ztmowNCivsnbTrrLjrsLANCivsnbTsoJXso7wNCivsnbTsmqnquLgNCivsnbTsnbzsp4QNCivsnbTrtInqt6ANCivsnbTsoJXso7wNCivsnbTtmITtg4ENCivsnbTsnKTtlokNCivsnbTsnbzrnpgNCivsnbTsoJXssYQNCivsnbTqsr3rgpwNCivsnbTtmY3ssqANCivsnbTsspzsp4QNCivsnbTsoJXssqANCivsnbTsg4HsmIENCivsnbTsmIHsnqwNCivsnbTshLHrgqgNCivsnbTsoJXstpwNCivsnbTsp4TshK0NCivsnbTsnqzssqANCivsnbTtmY3tmZgNCivsnbTsoJXtg5wNCivsnbTsiJjrsLANCivsnbTshLHspIANCivsnbTtlZnsnbwNCivsnbTsoJXtg50NCivsnbTsnqztmLgNCivsnbTshLHsnpANCivsnbTtmJztg5wNCivsnbTsoJXtlZgNCivsnbTsoJXrjZUNCivsnbTsmIHrqqgNCivsnbTshLHshLENCivsnbTsoJXtlokNCivsnbTsnqzsnqwNCivsnbTtjJDqtJENCivsnbTrgqjqt5wNCivsnbTsoJXtl4wNCivsnbTsoJXsnbwNCivsnbTsmIHqsJENCivsnbTsnqztnawNCivsnbTsoJXtmIQNCivsnbTsooXtg50NCivsnbTsg4HquLgNCivsnbTtmLjsmrQNCivsnbTsoJXtmJUNCivsnbTtnazso7wNCivsnbTqtJHshK0NCivsnbTqtazquLANCivsnbTsoJXtmLgNCivsnbTsg4HshLgNCivsnbTqsJHslaANCivsnbTrj4Tqt7wNCivsnbTsoJXtmLgNCivsnbTsmIHsiJwNCivsnbTsg4HsiJgNCivsnbTtg5zsiJgNCivsnbTsoJXtmLgNCivsnbTsmKXrspQNCivsnbTtnazqsJUNCivsnbTqtJHqtowNCivsnbTsoJXtmLgNCivsnbTspJHqtIANCivsnbTsmIHrk50NCivsnbTsoJXsiJwNCivsnbTsoJXtmLgNCivsnbTrsKnrqqgNCivsnbTtmITso7wNCivsnbTshLHsgrwNCivsnbTsoJXtmLgNCivsnbTsnYDqta0NCivsnbTsooXsobANCivsnbTtmZjsp4QNCivsnbTsoJXtmLgNCivsnbTsmIHrtIkNCivsnbTsoJXqt7wNCivsnbTsoJXshKANCivsnbTsoJXtmZQNCivsnbTrjIDstpwNCivsnbTsiJjssqANCivsnbTtmLjrhbgNCivsnbTsoJXtmZgNCivsnbTsnbzrhbgNCivsnbTsnqztjIwNCivsnbTsg4HsoJUNCivsnbTsoJXtmZgNCivsnbTsmqnsnbQNCivsnbTshLHsg4ENCivsnbTqtazsiJgNCivsnbTsoJXtmqgNCivsnbTsiJnshJ0NCivsnbTsg4HsiJkNCivsnbTqt5zsi50NCivsnbTsoJXtm4gNCivsnbTsiJjqtJENCivsnbTsnqzsiJgNCivsnbTqt4Drp4wNCivsnbTsoJXtnawNCivsnbTsnKTrj4QNCivsnbTtlbTsiJgNCivsnbTrjIDsmqkNCivsnbTsoJXtnawNCivsnbTtlZztnawNCivsnbTqtJHtmIQNCivsnbTqtZDsiJgNCivsnbTsoJXtnawNCivsnbTsuaDsiJwNCivsnbTtmJXtmLgNCivsnbTsnKTqta0NCivsnbTsoJXtnawNCivsnbTsiJzsoJUNCivsnbTsi6TssqANCivsnbTrs5HtmLgNCivsnbTsoJzsi6wNCivsnbTsoJXtmIQNCivsnbTtmZjrr7wNCivsnbTslpHtmZgNCivsnbTsoJzssqANCivsnbTquLDshLENCivsnbTsmIHsiJgNCivsnbTtl4zrrLgNCivsnbTsobDsmIENCivsnbTsnbjrs5ENCivsnbTtg5ztmqgNCivsnbTqsJHsiJgNCivsnbTsobDsm5ANCivsnbTtm4jsobANCivsnbTsoJXsiJgNCivsnbTtlYTsiJkNCivsnbTsobDsnbQNCivsnbTssL3spIANCivsnbTqt7zqtowNCivsnbTstpjrj4gNCivsnbTsooXqsIENCivsnbTsmqntnawNCivsnbTsnqzqt7wNCivsnbTtnazrk50NCivsnbTsooXqsJENCivsnbTrj5nqt7wNCivsnbTsiJzsnpANCivsnbTsnqzsmqkNCivsnbTsooXqsJENCivsnbTqsJHrnb0NCivsnbTsiJzquLANCivsnbTsnbjtg5wNCivsnbTsooXqsr0NCivsnbTsnqzqt5wNCivsnbTspJHtg5wNCivsnbTsg4Hrs7UNCivsnbTsooXqtawNCivsnbTqsJHsi50NCivsnbTtmLjslZQNCivsnbTsmKTsl7QNCivsnbTsooXqtawNCivsnbTsnoTtmJUNCivsnbTsooXtmZgNCivsnbTsg4HshKANCivsnbTsooXqtawNCivsnbTqsr3rjZUNCivsnbTsp4TshJ0NCivsnbTqtbDsp4QNCivsnbTsooXqtawNCivsnbTrj5nrj5kNCivsnbTsnbTtkZwNCivsnbTrs5HsnqwNCivsnbTsooXqtowNCivsnbTrp4ztg50NCivsnbTsnqzsiJwNCivsnbTsmIHqt7wNCivsnbTsooXqt4ANCivsnbTrqoXslYUNCivsnbTqtJHtnawNCivsnbTrp4ztmZQNCivsnbTsooXqt5wNCivsnbTrtoTsl7ANCivsnbTsp4TrsLANCivsnbTshLjsnpANCivsnbTsooXqt5wNCivsnbTshKDsiJgNCivsnbTsoJDssqANCivsnbTtmqjqt6ANCivsnbTsooXqt6ANCivsnbTsnbjqtZANCivsnbTrjZXsp4ANCivsnbTrgqjsmKQNCivsnbTsooXquLANCivsnbTrtoDsl7ANCivsnbTquLDrjIANCivsnbTqtJHqtIANCivsnbTsooXquLgNCivsnbTtnazsiJgNCivsnbQg7ZiEDQor7J207KCV642VDQor7J207KKF64yADQor7J207KKF7Je0DQor7J2064+Z7ISdDQor7J206riw7IigDQor7J207KKF64yADQor7J207Jqp7ISgDQor7J207YyQ7JuQDQor7J207Iic7ISdDQor7J207KKF642VDQor7J207Jyk66y4DQor7J207IS46rWtDQor7J207JiB7IiYDQor7J207KKF6529DQor7J2064yA64WEDQor7J207YOc7Z2sDQor7J206rSR6rWtDQor7J207KKF66GdDQor7J20642V7YOcDQor7J207ZWZ7IicDQor7J207IOd7ZiEDQor7J207KKF66GdDQor7J207J6s64WEDQor7J2064yA7IiYDQor7J2067OR66qoDQor7J207KKF66eMDQor7J207JiB7IicDQor7J207J246re8DQor7J206rO87ZmpDQor7J207KKF66eQDQor7J207IOB7IudDQor7J207J6s67O1DQor7J207KKF7KSADQor7J207KKF66qFDQor7J207KO87IiYDQor7J206riw65OdDQor7J207LC97JqwDQor7J207KKF66qFDQor7J207KSR7ISxDQor7J207KeE6rCRDQor7J207LGE7IudDQor7J207KKF66qpDQor7J207Jil7ISgDQor7J207KCV7JikDQor7J207ISg7YOcDQor7J207KKF66y4DQor7J207JuU7IicDQor7J2066eQ7JuQDQor7J206rec656YDQor7J207KKF67CwDQor7J206rCR7ISxDQor7J207YOc7ZqoDQor7J2064+Z7IOBDQor7J207KKF67CxDQor7J207LKg7ZqMDQor7J207Zmp7ZmYDQor7J2066+86rWtDQor7J207KKF67O1DQor7J207ZW07LaYDQor7J206riw7JiBDQor7J206rCR7JqpDQor7J207KKF67O1DQor7J207ZWc7JWUDQor7J207IiY6regDQor7J207J206rCRDQor7J207KKF7ISdDQor7J2064+E7YOcDQor7J207JiB7ISxDQor7J207ISx7KKFDQor7J207KKF7ISdDQor7J2066eQ66WcDQor7J2066qF7IiYDQor7J2066eM7Je0DQor7J207KKF7ISgDQor7J2067SJ7KGwDQor7J206rSR6regDQor7J207IOB7KeEDQor7J207KKF7ISxDQor7J206raM7J6EDQor7J207Iic7IiYDQor7J2067O17JewDQor7J207KKF7IiYDQor7J207J6s7JmEDQor7J207ZqM7ZmUDQor7J206riw6rWsDQor7J207KKF7IiYDQor7J20IOyEsQ0KK+ydtOyDgeyXsA0KK+ydtOyepeq3vA0KK+ydtOyiheyImA0KK+ydtOuzkeyyoA0KK+ydtOyEseyyoA0KK+ydtO2DnOyImA0KK+ydtOyiheyImA0KK+ydtOyerOyaqQ0KK+ydtOydke2drA0KK+ydtOygle2ZjQ0KK+ydtOyiheyImA0KK+ydtO2DnOyjvA0KK+ydtOydvOyXtA0KK+ydtO2DnOyErQ0KK+ydtOyiheyIoA0KK+ydtOyEuOusuA0KK+ydtOq4sO2drA0KK+ydtOyYgeynhA0KK+ydtOyiheyLnQ0KK+ydtOyjvO2ZmA0KK+ydtOunjOuPmQ0KK+ydtOybkOyImQ0KK+ydtOyiheyLnQ0KK+ydtOuqhe2drA0KK+ydtOqwgOybhQ0KK+ydtOyiheyhsA0KK+ydtOyiheyLnQ0KK+ydtOyaqeuegA0KK+ydtO2VtOydtA0KK+ydtOydteyaqQ0KK+ydtOyiheyVoA0KK+ydtOqyveuPhA0KK+ydtOyZuOyEnQ0KK+ydtOyiheyCvA0KK+ydtOyiheyWuA0KK+ydtOyMjeq3oA0KK+ydtOq0keyerA0KK+ydtOyDgeyekA0KK+ydtOyiheyWuA0KK+ydtOyjvOyYgQ0KK+ydtOu2hOyVvA0KK+ydtOywqOydvA0KK+ydtOyiheyXtA0KK+ydtOyDgeyEnQ0KK+ydtO2YuOyaqQ0KK+ydtO2DnOq2jA0KK+ydtOyiheyXtA0KK+ydtOywve2DgQ0KK+ydtOyyoOyLnQ0KK+ydtO2DnOyEsQ0KK+ydtOyiheyYpA0KK+ydtCDsi50NCivsnbTsgrzrtoQNCivsnbTrjIDtmZgNCivsnbTsooXsmKQNCivsnbTqtazsm5ANCivsnbTsnqzsg50NCivsnbTsg4HsnbgNCivsnbTsooXsmKQNCivsnbTrp5DsiJwNCivsnbTsg4HquLANCivsnbTsirnsiJwNCivsnbTsooXsmqkNCivsnbTtg5zqtZANCivsnbTshLHsm5ANCivsnbTsmIHquLANCivsnbTsooXsmrANCivsnbTshozssqANCivsnbTsiJjrjZUNCivsnbTsnKTri6wNCivsnbTsooXsmrENCivsnbTtlZzssqANCivsnbTsiJjqt5wNCivsnbTqta3sl7QNCivsnbTsooXsmrENCivsnbTtg5zrj4QNCivsnbTspIDsi50NCivsnbTrs5HssqANCivsnbTsooXsm5ANCivsnbTsooXsiJwNCivsnbTtjJTsmIENCivsnbTsnbTsg4ENCivsnbTsooXsm5ANCivsnbTslaDsm5ANCivsnbTrj5ntmIQNCivsnbTsnqzqt7wNCivsnbTsooXsnKQNCivsnbTsoJXtm4gNCivsnbTsoJXtg5wNCivsnbTrj5ntj6wNCivsnbTsooXsnKQNCivsnbTslpHtmIQNCivsnbTsnKTro6ENCivsnbTqsJHspIANCivsnbTsooXsnKQNCivsnbTsnKTtmIENCivsnbTspIDqt7wNCivsnbQg66eMDQor7J207KKF7JyoDQor7J2064+Z6recDQor7J207KCV66y4DQor7J207IiY7J6sDQor7J207KKF7KO8DQor7J207Zi46riwDQor7J207KSA6rOkDQor7J207KKF7Z2sDQor7J207KKF7LCsDQor7J207KO87JuQDQor7J207YyQ7LKgDQor7J207KKF7ZmUDQor7J207KKF7LKgDQor7J207Jil7LCsDQor7J207YOc7ISgDQor7J207KCV66y4DQor7J207KKF7LaYDQor7J207IOB642VDQor7J207YOc64W4DQor7J207KKF7J20DQor7J207KKF7YOcDQor7J207KCV66+4DQor7J2066y466qoDQor7J207YyQ7IiYDQor7J207KKF7YOcDQor7J207ISd6recDQor7J2067OR7J28DQor7J207Lmg7JqwDQor7J207KKF7YOcDQor7J206rCR7IigDQor7J207LKg7Jq0DQor7J207ISx7IiYDQor7J207KKF7YOcDQor7J207IOB7KCVDQor7J207J6s7ZmYDQor7J207ISx7Je0DQor7J207KKF7YOdDQor7J207J287JqpDQor7J207Lmg7Z2sDQor7J2067SJ7IigDQor7J207KKF7YOdDQor7J207LaY6recDQor7J2064W47LacDQor7J207Z2s7Z2sDQor7J207KKF7YyQDQor7J207LKg6rWQDQor7J207IiY6rSADQor7J207IiZ6rWQDQor7J207KKF7ZWYDQor7J207ISd7IiYDQor7J2067SJ7IiYDQor7J207IiY6re8DQor7J207KKF7ZWYDQor7J2066y07JWUDQor7J20IOyekA0KK+ydtOyEoOuLqA0KK+ydtOyihe2VmQ0KK+ydtOqwkeq4uA0KK+ydtOyXsOq4sA0KK+ydtOyihe2DnA0KK+ydtOyihe2VmQ0KK+ydtOygkOyEsQ0KK+ydtOyYpOyyoA0KK+ydtO2DnOyCvA0KK+ydtOyihe2VmQ0KK+ydtOyImOq4sA0KK+ydtOyepeyYgQ0KK+ydtOyaqeq1rA0KK+ydtOyihe2VnA0KK+ydtOunjOq4sA0KK+ydtOuqhe2YuA0KK+ydtOyerO2YuA0KK+ydtOyihe2VnA0KK+ydtOq4iOyYpA0KK+ydtOykkeyImA0KK+ydtOycpO2YuA0KK+ydtOyihe2VtA0KK+ydtOyDgeuCqA0KK+ydtOq4sOygnA0KK+ydtOyerOyYgQ0KK+ydtOyihe2YhA0KK+ydtOqzhOyasA0KK+ydtOydgOyatA0KK+ydtOyihe2drA0KK+ydtOyihe2YuA0KK+ydtOyInOydvA0KK+ydtOyGjO2VtA0KK+ydtOuPmeu2gA0KK+ydtOyihe2YuA0KK+ydtOyYpeunjA0KK+ydtOyaqey2nA0KK+ydtOyEuO2DnA0KK+ydtOyihe2YuA0KK+ydtOygleyEsQ0KK+ydtOuPmeyduA0KK+ydtOyYgeq2jA0KK+ydtOyihe2YuA0KK+ydtOykkeybkA0KK+ydtOyInOuMgA0KK+ydtOy2mOyynA0KK+ydtOyihe2YuA0KK+ydtOq0keq2jA0KK+ydtOuNle2VmQ0KK+ydtOyYgeyaqQ0KK+ydtOyihe2YuA0KK+ydtO2YnOq4uA0KK+ydtOuzke2YuA0KK+ydtOuCnOybhQ0KK+ydtOyihe2YuA0KK+ydtOqyve2ZmA0KK+ydtOuNleq1rA0KK+ydtOyCvOq4uA0KK+ydtOyihe2ZmA0KK+ydtOq0keqyvQ0KK+ydtOywveyaqQ0KK+ydtOyXsOyImA0KK+ydtOyihe2ZmA0KK+ydtOuPmeyImA0KK+ydtO2YhOyImA0KK+ydtOunkOyImA0KK+ydtOyihe2ZmA0KK+ydtO2cmOq4sA0KK+ydtOy2mOq2jA0KK+ydtO2ZjeyImA0KK+ydtOyihe2ZmA0KK+ydtOygleuFuA0KK+ydtOywrOqzhA0KK+ydtOyasOqwkQ0KK+ydtOyihe2ZmA0KK+ydtOycoOyInA0KK+ydtOuMgOyYgQ0KK+ydtOyasOyInA0KK+ydtOyihe2biA0KK+ydtOyYge2YuA0KK+ydtOyInOq0kQ0KK+ydtOu2hOybkA0KK+ydtOyihe2drA0KK+ydtOu2gOuNlQ0KK+ydtOyaqeyYpQ0KK+ydtOyIoOyYpQ0KK+ydtOyihe2drA0KK+ydtOuqheq1rA0KK+ydtOyEseuztA0KK+ydtOyInOyImA0KK+ydtOyjvOqyvQ0KK+ydtOuemOq3vA0KK+ydtOyDgeyImA0KK+ydtOyDgeyIoA0KK+ydtOyjvOqyvQ0KK+ydtOykkeuwsA0KK+ydtO2DnOynhA0KK+ydtO2DnOq3vA0KK+ydtOyjvOq3vA0KK+ydtOq3nOyngQ0KK+ydtOyDgeyDnQ0KK+ydtOyInOyInA0KK+ydtOyjvOyCvA0KK+ydtOy2qeyImQ0KK+ydtOuCqOuqqQ0KK+ydtO2VnOuNlQ0KK+ydtOyjvOyEnQ0KK+ydtOyerOyLnQ0KK+ydtOyEne2ZmA0KK+ydtOyjvOyYgQ0KK+ydtOyjvOyEnQ0KK+ydtOunjO2YnA0KK+ydtOyerOq4uA0KK+ydtOydvOyekA0KK+ydtOyjvOyEoA0KK+ydtOuqheyXtA0KK+ydtOqwkeunjA0KK+ydtOunkOq3nA0KK+ydtOyjvOyErQ0KK+ydtOuTney2nA0KK+ydtOyYgeq3nA0KK+ydtOq4iOqzpA0KK+ydtOyjvOyKuQ0KK+ydtOygle2drA0KK+ydtOq0keyyoA0KK+ydtOyDgeyatA0KK+ydtOyjvOyXsA0KK+ydtOq3vOq3nA0KK+ydtOyKueyEoA0KK+ydtOuzteuPhA0KK+ydtOyjvOyYgQ0KK+ydtOyYgeyImA0KK+ydtOq3nOq3oA0KK+ydtOygleyIoA0KK+ydtOyjvOyYgQ0KK+ydtOyInOuPjA0KK+ydtOyehOyasA0KK+ydtOyEneq4sA0KK+ydtOyjvOyYgQ0KK+ydtOy2mOunjA0KK+ydtOyYgeq4sA0KK+ydtOygleuztQ0KK+ydtOyjvOydtA0KK+ydtOyEneusuA0KK+ydtOq4sOyasA0KK+ydtOygleq3oA0KK+ydtOyjvO2DnA0KK+ydtOunkOyaqQ0KK+ydtOq4sO2YuA0KK+ydtO2VnOq1kA0KK+ydtOyjvO2XjA0KK+ydtOyDgeyatA0KK+ydtOyEseusuA0KK+ydtOyDgeyaqQ0KK+ydtOyjvO2YhA0KK+ydtOyDgeq4sA0KK+ydtOyEseybkA0KK+ydtOuNleyLnQ0KK+ydtOyjvO2YuA0KK+ydtOuzkeq4sA0KK+ydtOyInOycpA0KK+ydtOynhOu0iQ0KK+ydtOyjvO2YuA0KK+ydtOu0ie2YuA0KK+ydtOyYgeyhsA0KK+ydtOyerO2ZmA0KK+ydtOyjvO2YuA0KK+ydtOuCqOyInA0KK+ydtOykke2YhA0KK+ydtOyImOydvA0KK+ydtOykgOq1rA0KK+ydtOunkOyImA0KK+ydtOusuOyLnQ0KK+ydtOynhOyhsA0KK+ydtOykgOyXtA0KK+ydtOyDgeq4uA0KK+ydtOywveyEsQ0KK+ydtOyYpeyXsA0KK+ydtOykgOyYgQ0KK+ydtOuzkeuqqA0KK+ydtOq3nO2YuA0KK+ydtOyEseyatA0KK+ydtOykgOyYgQ0KK+ydtOqzoe2drA0KK+ydtOyekOyerA0KK+ydtO2drOyXsA0KK+ydtOykgOyYgQ0KK+ydtOyehOuCqA0KK+ydtOygkOyEoA0KK+ydtOu2gO2ZmA0KK+ydtOykgOyaqQ0KK+ydtOygkOyXtA0KK+ydtOu2gO2ZjQ0KK+ydtOyerOyaqQ0KK+ydtOykgOybhQ0KK+ydtOyaqeybhQ0KK+ydtOq4sO2VmA0KK+ydtO2VhOyInA0KK+ydtOykgOyerA0KK+ydtO2DnOynhA0KK+ydtOynhOuqqQ0KK+ydtO2VtO2DnA0KK+ydtOykgOyerA0KK+ydtOyepeyInA0KK+ydtOqwke2ZjQ0KK+ydtOyerOuPmQ0KK+ydtOykgOyhsA0KK+ydtOyImO2VhA0KK+ydtOq3vOyasA0KK+ydtOyImO2PrA0KK+ydtOykgO2VmA0KK+ydtOyynO2ZmA0KK+ydtO2VtOyYpA0KK+ydtOyZuOyInA0KK+ydtOykgO2YgQ0KK+ydtOq4sOyatA0KK+ydtOq3nO2ZmA0KK+ydtOyYgeyVlA0KK+ydtOykgO2YuA0KK+ydtO2VnO2biA0KK+ydtOyihe2DnA0KK+ydtOyEneu0iQ0KK+ydtOykgO2ZmA0KK+ydtOuqheuPjA0KK+ydtO2Dge2YuA0KK+ydtOyerOyekA0KK+ydtOykkeqwgQ0KK+ydtOqyve2VnA0KK+ydtOygleyihQ0KK+ydtOyYgeyglQ0KK+ydtOykkeq2jA0KK+ydtOq4sOuzkQ0KK+ydtCDsm5ANCivsnbTsnYTtmZQNCivsnbTspJHqt5wNCivsnbTshJzsl7QNCivsnbTrspTtmIQNCivsnbTtg5zshK0NCivsnbTspJHqt7wNCivsnbTsgrzquLANCivsnbTquIjsp4ANCivsnbTrkZDssqANCivsnbTspJHquLgNCivsnbTsgrzsi50NCivsnbTssKjsl7ANCivsnbTsnKTtlZgNCivsnbTspJHssqANCivsnbTssL3quLgNCivsnbTtmZjsiJgNCivsnbTso7zqt5wNCivsnbTspJHtmZQNCivsnbTsooXtmqgNCivsnbTshLHsiJgNCivsnbTsnqzssqANCivsnbTspJHtmZgNCivsnbTrgqjrp4wNCivsnbTqsr3snpANCivsnbTtl4zquLANCivsnbTspJHtmZgNCivsnbTsoJXsmKUNCivsnbTsoJXsi50NCivsnbTshLHshLENCivsnbTspJHtnawNCivsnbTsm5DstpwNCivsnbTrjIDri6wNCivsnbTrrLTtmLgNCivsnbTspp3siJgNCivsnbTqsr3siJkNCivsnbTrs5HtmLgNCivsnbTtg5zsm5ANCivsnbTsp4DroZwNCivsnbTstpjrgqgNCivsnbTsp4Tsg4ENCivsnbTrp4zqt5wNCivsnbTsp4Dsl7ANCivsnbTsm5DsmIENCivsnbTsnqzsi5wNCivsnbTsoJXrrLUNCivsnbTsp4DssqANCivsnbTsm5Dso7wNCivsnbTsg4HtnawNCivsnbTrs7XsoJUNCivsnbTsp4DtmJzsnpANCivsnbTsmIHtlZnsoJANCivsnbTrjIDtg4HquLgNCivsnbTshLHqt7zsoJUNCivsnbTsp4DtmLgNCivsnbTqt5ztmLgNCivsnbTrrLTtl4wNCivsnbTqta3rs7UNCivsnbTsp4HroZwNCivsnbTssL3tmLgNCivsnbTtmITsoJUNCivsnbTquIjrjIANCivsnbTsp4TqtawNCivsnbTsooXsp4ANCivsnbTsnKTspIANCivsnbTsmIHrp4wNCivsnbTsp4TrhbgNCivsnbTsmqnqs6QNCivsnbTsgqztmLgNCivsnbTtg5zroKgNCivsnbTsp4TrhbgNCivsnbTsiKDssqANCivsnbTshLHqtJENCivsnbTsmIHqsJANCivsnbTsp4TrrLQNCivsnbTtnazshJ0NCivsnbTrhbjsiKANCivsnbTtlZzrnpgNCivsnbTsp4TshLgNCivsnbTssL3qtawNCivsnbTrtoTshKANCivsnbTsp4Drs7UNCivsnbTsp4TsiJgNCivsnbTqtJHri6wNCivsnbTsoJXsnKQNCivsnbTsg4Hrj4wNCivsnbTsp4TsiJgNCivsnbTrqoXtm4gNCivsnbTrtoDtjJQNCivsnbTtlYTsiJwNCivsnbTsp4TsmqkNCivsnbTrjZXsg4ENCivsnbTrs7XtmY0NCivsnbTsg4HsiJkNCivsnbTsp4TsmrANCivsnbTtl4zsiJwNCivsnbTsg4HsnbQNCivsnbTquIjshJ0NCivsnbTsp4TsmrANCivsnbTquIjshKANCivsnbTsnbzsl7QNCivsnbTsooXsmKUNCivsnbTsp4Tsm5ANCivsnbTsnqztmLgNCivsnbTsp4TsmrANCivsnbTsoJXsl7ANCivsnbTsp4TsnbwNCivsnbTsnbjtlZwNCivsnbTsoJXsmKUNCivsnbTsmIHsm5ANCivsnbTsp4TsnbwNCivsnbTstqnshK0NCivsnbTsooXqsr0NCivsnbTsm5Dqt7wNCivsnbTsp4TsnqwNCivsnbTssKzqsr0NCivsnbTrs5Hqta0NCivsnbTsnbjshK0NCivsnbTsp4TsoJUNCivsnbTsnbzsmKQNCivsnbTri6ztg50NCivsnbTquLDtnawNCivsnbTsp4Ttg5wNCivsnbTtg53siJgNCivsnbTsooXsiJwNCivsnbTshLHstpwNCivsnbTsp4Ttg5wNCivsnbTsmKXqt7wNCivsnbTrj4jqs6QNCivsnbTqsrjsobANCivsnbTsp4Ttg5wNCivsnbTsnqzsiJwNCivsnbTsiJnsi50NCivsnbTtg5zsl7QNCivsnbTsp4Ttla0NCivsnbTsnYDslZQNCivsnbTsmIHslYQNCivsnbTqsr3si50NCivsnbTsp4TtmLgNCivsnbTso7zshKANCivsnbTsoJDsl7QNCivsnbTshLHsnbwNCivsnbTsp4TtmZgNCivsnbTsoJXsmIENCivsnbTrjIDsnpANCivsnbTsnqXsiKANCivsnbTsp4TtmZgNCivsnbTsnqzsiJgNCivsnbTrqoXsiKANCivsnbTsoJXtmIQNCivsnbTsp4TtnawNCivsnbTsooXsiJkNCivsnbTquLDsnKQNCivsnbTrjZXqta0NCivsnbTsp4TtnawNCivsnbTrj5nsi50NCivsnbTqt5zquLANCivsnbTsg4HsmrANCivsnbTsp4TtnawNCivsnbTqtJHtl4wNCivsnbTrgpnsiJwNCivsnbTsi6Dsi50NCivsnbTssKjrtIkNCivsnbTquLDrgqgNCivsnbTsoJXtnLQNCivsnbTsiJjtmJUNCivsnbTssKjrtIkNCivsnbTslpHshLENCivsnbTsiJztg4ENCivsnbTstpjsirkNCivsnbTssKjrtIkNCivsnbTtmY3rp4wNCivsnbTsiJzsiJwNCivsnbTstpjspJENCivsnbTssKjsl7ANCivsnbTqtJHsiJgNCivsnbTqsr3tmY0NCivsnbTshJ3snpANCivsnbTssKjsobANCivsnbTrp5DsiJkNCivsnbTshLHsoJwNCivsnbTtmITsnpANCivsnbTssKjtmZgNCivsnbTtg5zsiJwNCivsnbTrp4zrp4wNCivsnbTshKDrj5kNCivsnbTssKzqt5wNCivsnbTqsJXstpgNCivsnbTsp4TsiJkNCivsnbTsiJnso7wNCivsnbTssKzrs7UNCivsnbTsnqzrj4QNCivsnbTsooXtg50NCivsnbTsm5TquLgNCivsnbTssKzshLENCivsnbTsoITqsJENCivsnbTrrLTqt5wNCivsnbTsiJzstpwNCivsnbTssKzsiJgNCivsnbTrj5nsl7QNCivsnbTrqbTsnpANCivsnbTsmIHtnaUNCivsnbTssKzsiJgNCivsnbTsg4HtlqUNCivsnbTsgrzsiJgNCivsnbTtmLjsi50NCivsnbTssKzsnbQNCivsnbTquLDtmLgNCivsnbTtmITsiJwNCivsnbTrs7jshLgNCivsnbTssKzsnbQNCivsnbTrk53rs5ENCivsnbTsnLXshJ0NCivsnbTqtJHtnawNCivsnbTssKztmY0NCivsnbTrrLjshKANCivsnbTshLHshJ0NCivsnbTtg5ztlZwNCivsnbTssKztmZgNCivsnbTsl7Dsl7QNCivsnbTshJ3siKANCivsnbTshozrjZUNCivsnbTssL3qt5wNCivsnbTsg4HqsJENCivsnbTquLDqsJENCivsnbTsg4HqtawNCivsnbTssL3qt7wNCivsnbTsmqnsiJgNCivsnbTsm5Trk50NCivsnbTrs7Xqt5wNCivsnbTssL3quLANCivsnbTtmITqtawNCivsnbTsnqzsiJgNCivsnbTsoJXsiJgNCivsnbTssL3rprwNCivsnbTsooXroKgNCivsnbTtlZjrjZUNCivsnbTrp4ztmIQNCivsnbTssL3siJgNCivsnbTsmqnrjZUNCivsnbTsoJzsiJgNCivsnbTsg4HsiJgNCivsnbTssL3siJwNCivsnbTrjIDtm4gNCivsnbTrp4ztmIQNCivsnbTrs5HtmLgNCivsnbTssL3si50NCivsnbTsg4HtmJUNCivsnbTshKDssqANCivsnbTsg4HspIANCivsnbTssL3sl7QNCivsnbTshLHsl7ANCivsnbTtjJDshLENCivsnbTtnazsobANCivsnbTssL3smqkNCivsnbTtla3rtIkNCivsnbTsgrztmLgNCivsnbTsg4Hrk50NCivsnbTssL3smrANCivsnbTshKDquLgNCivsnbTtmY3siJwNCivsnbTtmY3smIENCivsnbTssL3smrANCivsnbTrrLTsmrANCivsnbTsmIHsiJkNCivsnbTqt5zssqANCivsnbTssL3snKQNCivsnbTsoJXrs7UNCivsnbTtg5zqsr0NCivsnbTrj4TrtoQNCivsnbTssL3snqwNCivsnbTsooXquLANCivsnbTrp4zsnpANCivsnbTsiJzqtawNCivsnbTssL3soJwNCivsnbTsnqzsmKUNCivsnbTsoJXsiKANCivsnbTshLHrrLgNCivsnbTssL3so7wNCivsnbTsoJXstpwNCivsnbTslrjrr7wNCivsnbTtmJzsmrANCivsnbTssL3so7wNCivsnbTsooXsl7QNCivsnbTspIDtm4gNCivsnbTsnqztg5wNCivsnbTssL3sp4ENCivsnbTsm5DsiJwNCivsnbTsmqnsnpANCivsnbTrs5HsmrANCivsnbTssL3tlZgNCivsnbTsoJXrr7wNCivsnbTslpHshLgNCivsnbTtlZnsi50NCivsnbTssL3tl4wNCivsnbTsnbjsm5ANCivsnbTsnZjrp4wNCivsnbTsnqztg50NCivsnbTssL3tmLgNCivsnbTqsr3tmLgNCivsnbTqsr3shLENCivsnbTrr7zrj5kNCivsnbTssL3tmLgNCivsnbTshozsobANCivsnbTrtInssqANCivsnbTsnqzsmqkNCivsnbTssL3tmLgNCivsnbTsmIHqs6QNCivsnbTtg53shKANCivsnbTshKDsi50NCivsnbTssL3tmLgNCivsnbTsi5zso7wNCivsnbTsmbjtg5wNCivsnbTsmrDrnpgNCivsnbTssL3tmZgNCivsnbTsoJXrnoANCivsnbTshLHsmIENCivsnbTrgqjsl4UNCivsnbTssL3tnawNCivsnbTsooXtmLgNCivsnbTsp4Tso7wNCivsnbTslrXqt5wNCivsnbTssYTsi50NCivsnbTrp7nsmrANCivsnbTsiJzshKANCivsnbTqt5zshJ0NCivsnbTssYTtm4gNCivsnbTtmY3si50NCivsnbTquLDroZ0NCivsnbTsm5DsiJgNCivsnbTssYTtm4gNCivsnbTsmqnsnpANCivsnbTri6zsmKUNCivsnbTrs7Xrk50NCivsnbTsspzqs6QNCivsnbTsnKDrqqkNCivsnbTshLHrrLgNCivsnbTsiJjsl7QNCivsnbTsspzqtJENCivsnbTshLHsnpANCivsnbTso7zsnYANCivsnbTshLHsooUNCivsnbTsspzshLgNCivsnbTsoJXrjZUNCivsnbTsooXrk50NCivsnbTsnKTtmLgNCivsnbTsspzsiJgNCivsnbTrj5nsg4ENCivsnbTsoJXri5gNCivsnbTsmbjrhYANCivsnbTsspzsobANCivsnbTspIDsnbQNCivsnbTsmrDqsqwNCivsnbTrspTshJ0NCivsnbTssqDquLANCivsnbTsl7Dsg4ENCivsnbTshLHquLgNCivsnbTshLHqta0NCivsnbTssqDsg4ENCivsnbTsmIHtg5wNCivsnbTsjI3so7wNCivsnbTtl4zsnbUNCivsnbTssqDsiJgNCivsnbTtmITssYQNCivsnbTqt7ntg5wNCivsnbTsnbjsiJgNCivsnbTssqDsiJgNCivsnbTslYjshLENCivsnbTsnbzrs5ENCivsnbTtlbTstpgNCivsnbTssqDsiJgNCivsnbTsoJXtg50NCivsnbTsp4TsiJgNCivsnbTsnqzsl7ANCivsnbTssqDsiJwNCivsnbTsmbjsmIENCivsnbTsooXsi50NCivsnbTqtJHquLANCivsnbTssqDsmrANCivsnbTsp4TshJ0NCivsnbTrs5HshJ0NCivsnbTshKDroZ0NCivsnbTssqDsmrANCivsnbTsgqzrtoQNCivsnbTssL3quLgNCivsnbTrj5nqs6QNCivsnbTssqDsmrANCivsnbTssL3si50NCivsnbTtmITshJ0NCivsnbTqsr3qt5wNCivsnbTssqDsmrANCivsnbTsmrDtlZwNCivsnbTsnqzsp4ENCivsnbTsmIHsmKQNCivsnbTssqDso7wNCivsnbTshJ3siJwNCivsnbTtg5zrrLUNCivsnbTrrLjsp4QNCivsnbTssqDtmLgNCivsnbTrs5HqtZANCivsnbTsnqztmZgNCivsnbTrrLTquLANCivsnbTssqDtmLgNCivsnbTqsr3qsr0NCivsnbTsnKTsobANCivsnbTrrLjsnpANCivsnbTssqDtmLgNCivsnbTsnZjsnqwNCivsnbTri6zrj5kNCivsnbTsoJzsmrQNCivsnbTssqDtmLgNCivsnbTtmJXsm5ANCivsnbTqsr3sobANCivsnbTtmqjsmKUNCivsnbTssqDtmZgNCivsnbTsooXrtIkNCivsnbTshLHsnoQNCivsnbTsuaDshJ0NCivsnbTssqDtnawNCivsnbTsmqnqta0NCivsnbTshLHsmqkNCivsnbTspIDsiJgNCivsnbTssq3quLANCivsnbTtg53smrENCivsnbTsoJXsuZgNCivsnbTsnKTsmqkNCivsnbTssq3shJ0NCivsnbTtlZzsp4ANCivsnbTsi6Dsi50NCivsnbTrs7Xso7wNCivsnbTssq3shJ0NCivsnbTshJ3snbQNCivsnbTsoJXsmIENCivsnbTrtoTqt7wNCivsnbTssq3siJgNCivsnbTqtJHtmIENCivsnbTsiJzssKwNCivsnbTsmIHqt7wNCivsnbTssq3siJgNCivsnbTrj5ntmZQNCivsnbTsoJXsmqkNCivsnbTsg4HsmKQNCivsnbTstpTsnpANCivsnbTrj4Tsi50NCivsnbTsooXtm4gNCivsnbTrs7Tso7wNCivsnbTstpjquLgNCivsnbTsoJXsp4QNCivsnbTsnbTssqANCivsnbTrs5HsoJwNCivsnbTstpjquLgNCivsnbTtmITrp4wNCivsnbTtmITqt5wNCivsnbTsoJXspIANCivsnbTstpjquLgNCivsnbTrgqjsgrANCivsnbTsp4Tsi50NCivsnbTshLHsmKQNCivsnbTstpjquLgNCivsnbTsoJXsm5ANCivsnbTsmIHshLgNCivsnbTshLHshJ0NCivsnbTstpjrgqgNCivsnbTso7zsiJkNCivsnbTsmKTsiJgNCivsnbTsuZjqt6ANCivsnbTstpjrsJwNCivsnbTsmbjri4gNCivsnbTquLDtmZQNCivsnbTtmLjsnKgNCivsnbTstpjshJ0NCivsnbTsnqXqt7wNCivsnbTtlZzqt7kNCivsnbTshLjtmLgNCivsnbTstpjshLgNCivsnbTsm5DsoJUNCivsnbTtmJXsnqwNCivsnbTsooXsooUNCivsnbTstpjsi50NCivsnbTquLDqtawNCivsnbQg7YOdDQor7J206rK97IiYDQor7J207LaY7IudDQor7J207Iug7JqwDQor7J207IOB7ZqoDQor7J207Jqx7KKFDQor7J207LaY7IukDQor7J207KSA7ISgDQor7J207KeA66GdDQor7J2066e56rK9DQor7J207LaY7Ja4DQor7J206riw66qpDQor7J207Iic65OdDQor7J206riw7IiZDQor7J207LaY7JilDQor7J2067aE7ZWEDQor7J207IOB7JiBDQor7J207J6s7Zi4DQor7J207LaY7JqwDQor7J2065GQ6regDQor7J207J2Y7JqwDQor7J207ZiV7KCcDQor7J207LaY7JqwDQor7J207Jil7J6EDQor7J207Jyk7JewDQor7J207KKF7KSADQor7J207LaY7J6sDQor7J207Iic7IiYDQor7J207KCV7ISdDQor7J207JiB64+MDQor7J207LaY7YOBDQor7J206rec6rCVDQor7J207LC97IiYDQor7J207JiB6rSADQor7J207LaY7YOdDQor7J207ISx7J28DQor7J2066qF7ZiEDQor7J2064+Z7IiYDQor7J207LaY7YOdDQor7J207ISx7IicDQor7J207JuU7KCVDQor7J207ISx7IK8DQor7J207LaY7YOdDQor7J207ZiV7KGwDQor7J207J247KO8DQor7J207LKc64KoDQor7J207LaY7Zi4DQor7J207KSR64yADQor7J207LC97J6QDQor7J207J6s64+EDQor7J207LaY7Zi4DQor7J207YOc6ri4DQor7J207ZW07ZWcDQor7J207IKs7KGwDQor7J207LaY7Z2sDQor7J207KKF6riwDQor7J206riI7LKcDQor7J206rSR7KGwDQor7J207LaY7Z2sDQor7J207JuQ7J6sDQor7J2064us7ISdDQor7J2067O17IiYDQor7J207LaY7Z2sDQor7J207YOA7J24DQor7J207Jqp7ISgDQor7J206riI7Z2sDQor7J207LaY7Z2sDQor7J2066qF7Je0DQor7J207Iic7IOdDQor7J206rWs64+ZDQor7J207Lac6rOkDQor7J207KCV7YOcDQor7J207YOc7ZmYDQor7J207KKF7ZiEDQor7J207Lac7J20DQor7J207Iuk7Zi4DQor7J207YyQ66eMDQor7J2064yA7IicDQor7J207Lap6re8DQor7J2066y47IicDQor7J207IiY6rWwDQor7J206rCQ7JiBDQor7J207Lap6riwDQor7J207JiB7JiBDQor7J2066y07JWEDQor7J2067OR7IiYDQor7J207Lap6ri4DQor7J207Jqp64usDQor7J207ZiV7JqwDQor7J206rK97ISxDQor7J207Lap6ri4DQor7J207ZiE7ZWZDQor7J207ZmN7JqwDQor7J207Iic6rWsDQor7J207Lap7ZeMDQor7J207ZiE7IStDQor7J207Jqp67KUDQor7J206rSR7YOdDQor7J207Lap7ZiVDQor7J207JuQ7ZmYDQor7J2066eJ7IiYDQor7J207Jqp7ZWEDQor7J207Lap7Zi4DQor7J207ZeM6rCBDQor7J207KCV7JuFDQor7J207Z2s7ZmYDQor7J207Lap7ZmYDQor7J2066eM6ri4DQor7J2067OR7J6QDQor7J207KCV7JuFDQor7J207Lap7ZmYDQor7J207ISx7ZWcDQor7J207IiY7JqwDQor7J207IiY7IicDQor7J207LmY6raMDQor7J207Jil7IiYDQor7J207JiB7KeEDQor7J207ISd7JewDQor7J207Lmg66eMDQor7J207ZWE7IiYDQor7J207ZW07JewDQor7J2067O17IudDQor7J207Lmg7IiYDQor7J207KKF7JqpDQor7J2067OR7Zi4DQor7J207JuU7JqpDQor7J207Lmg7JWUDQor7J207IK87Z2sDQor7J207JiB67O1DQor7J207J287JqwDQor7J207Lmg7J24DQor7J207KeE7IiZDQor7J207JiB7J6sDQor7J207JiB6recDQor7J207L6M7JqwDQor7J207IOB656ADQor7J2064us6rWsDQor7J207IiY7LKgDQor7J207L6M7Zi4DQor7J207Zi47J6sDQor7J207ZiE64+ZDQor7J2066y464usDQor7J207YOB7JuQDQor7J206rCR6re8DQor7J207ZWc7JqpDQor7J207J2E7ISdDQor7J207YOc6rK9DQor7J207YOc7Ja1DQor7J207IiY66qoDQor7J206rK96rWsDQor7J207YOc6rK9DQor7J207KeE7Z2gDQor7J206rSR67CwDQor7J207J6l7IStDQor7J207YOc6rK9DQor7J207YOc7YOdDQor7J207JiB7IicDQor7J207Zi47IiYDQor7J207YOc6rOkDQor7J207J247IiYDQor7J207ISx7ISgDQor7J207LC97YOcDQor7J207YOc6rOkDQor7J2064yA7Ja4DQor7J207Z2s66y4DQor7J207KeE7ISdDQor7J207YOc6recDQor7J207ZWZ7IiYDQor7J207ZaJ67CxDQor7J207J6s7JqpDQor7J207YOc6re8DQor7J207KCV7IicDQor7J207Zi46rCRDQor7J207JaR67SJDQor7J207YOc6re8DQor7J207IiY7Zi4DQor7J207Lmg7Zi4DQor7J207LC97JqwDQor7J207YOc6re8DQor7J207JiB7IiYDQor7J207Jqp7Zi4DQor7J207JuQ7KGwDQor7J207YOc6re8DQor7J207KCV7JiBDQor7J207Jyk7IOBDQor7J207ISx66CsDQor7J207YOc6re8DQor7J2067OR7IiYDQor7J207ISx7IugDQor7J20656Y6rOkDQor7J207YOc6re8DQor7J207YOc6rWsDQor7J2064us7KSRDQor7J207KeE7JuQDQor7J207YOc6re8DQor7J207J247IiZDQor7J207ZWc7J6QDQor7J207Iic7J28DQor7J207YOc6re8DQor7J207IOB7Zi4DQor7J207KCV64+ZDQor7J2067OR7JilDQor7J207YOc6re8DQor7J207ZiE7ISdDQor7J207KCV642VDQor7J207KO87JqwDQor7J207YOc6re8DQor7J2065GQ7Zi4DQor7J207KCV6rCRDQor7J206rK97IicDQor7J207YOc6riwDQor7J2067SJ7JWUDQor7J207YyQ7ZGcDQor7J207ISd7Z2gDQor7J207YOc64usDQor7J207ISx6rK9DQor7J2064yA7J6QDQor7J207Kad6recDQor7J207YOc642VDQor7J2065GQ7ZWZDQor7J207KCc7ZqoDQor7J206riI7Z2sDQor7J207YOc64+ZDQor7J207ISx7YOcDQor7J207KCV7YOcDQor7J207YOc7Ja4DQor7J207YOc67O1DQor7J206rec7Zi4DQor7J207Iic7LKgDQor7J207IOB7J28DQor7J207YOc67SJDQor7J2066qF6rOgDQor7J206rec67CwDQor7J2067SJ7JqwDQor7J207YOc67SJDQor7J207IK87JewDQor7J206rCR66GADQor7J207ZmN6rK9DQor7J207YOc67aEDQor7J207KCV7JewDQor7J207Jyk7YOcDQor7J207ISx7ZeMDQor7J207YOc7ISdDQor7J207LKg7J6sDQor7J207ZaJ6rWsDQor7J207JiB7J6QDQor7J207YOc7ISdDQor7J207J6s7JWFDQor7J207Lmg7ZmYDQor7J207J6s7Zi4DQor7J207YOc7ISdDQor7J207Iic64KoDQor7J2064KZ7ZWZDQor7J207YyU6rK9DQor7J207YOc7ISgDQor7J207YOc7JuFDQor7J207JiB656YDQor7J2067SJ7ZuIDQor7J207YOc7ISgDQor7J206re87J6sDQor7J207Y+J7JilDQor7J207ZiE7Z2sDQor7J207YOc7ISxDQor7J207KKF7LKcDQor7J207YOc7Zi4DQor7J207J2A7IiZDQor7J207YOc7ISxDQor7J206rec6rG0DQor7J207IOB7ZmYDQor7J207IiY64KoDQor7J207YOc7ISxDQor7J207KKF7JqpDQor7J206rOE7JiBDQor7J207ZqM7LC9DQor7J207YOc7ISxDQor7J207LCo7Y+sDQor7J2064+E7Zi4DQor7J207KKF7KeEDQor7J207YOc7IiYDQor7J2066Gd6ri4DQor7J207IaM67O1DQor7J207KCV7J20DQor7J207YOc7IiYDQor7J207ISx66eMDQor7J207ZiE6rWtDQor7J207KCV7Z2sDQor7J207YOc7IiYDQor7J207KCV7ISgDQor7J207LaY7KSADQor7J207Iic7JuFDQor7J207YOc7IiYDQor7J2066eM6re8DQor7J2067OR7JWUDQor7J207Jyk7LacDQor7J207YOc7IiYDQor7J207YOc7J6QDQor7J207J6s7J20DQor7J207Jyk6re8DQor7J207YOc7IicDQor7J2066y07YOdDQor7J2066eQ6reADQor7J207J6s7JqpDQor7J207YOc7IigDQor7J206re86riwDQor7J207JiB7ISdDQor7J206rK965OdDQor7J207YOc7IigDQor7J207KCV64+EDQor7J207ISx7IStDQor7J207J6s7YOcDQor7J207YOc7IigDQor7J206rK97IicDQor7J206riw7J6QDQor7J207IOB7ISgDQor7J207YOc7IudDQor7J207KCQ64+EDQor7J20IO2ZmA0KK+ydtOyihe2YhA0KK+ydtO2DnOyLnQ0KK+ydtOydgOyLnQ0KK+ydtOybkOyImA0KK+ydtOuzkeq3uQ0KK+ydtO2DnOyLnQ0KK+ydtOyEseyImA0KK+ydtOydhOu0iQ0KK+ydtOuzkeyjvA0KK+ydtO2DnOyLnQ0KK+ydtOyImOyErQ0KK+ydtOy2qe2YuA0KK+ydtO2XjOydvA0KK+ydtO2DnOyLnQ0KK+ydtOygleyXsA0KK+ydtOyduOuMgA0KK+ydtOyYge2YuA0KK+ydtO2DnOyLoA0KK+ydtOq3nOyInA0KK+ydtOygleydvA0KK+ydtOyEseyjvA0KK+ydtO2DnOyVlA0KK+ydtOq3vOyyoA0KK+ydtOycpOyjvA0KK+ydtOuzte2YuA0KK+ydtO2DnOyXsA0KK+ydtOycpOyInA0KK+ydtO2DnOyLnQ0KK+ydtOuqheyasA0KK+ydtO2DnOyXtA0KK+ydtOyerOyEnQ0KK+ydtO2YleyEnQ0KK+ydtOyerOyyoA0KK+ydtO2DnOyYpQ0KK+ydtOyiheykgA0KK+ydtOyniO2VhA0KK+ydtO2VtOyasQ0KK+ydtO2DnOybkA0KK+ydtOykke2DnQ0KK+ydtOyKueyInA0KK+ydtOyaqeyLnQ0KK+ydtO2DnOybkA0KK+ydtOykgOyyoA0KK+ydtOyYgeyImA0KK+ydtOyEseyaqQ0KK+ydtO2DnOybkA0KK+ydtO2DnOyEoA0KK+ydtOqyveyyoA0KK+ydtO2DnOqyvQ0KK+ydtO2DnOycpA0KK+ydtOywveuylA0KK+ydtOq3vOuemA0KK+ydtOyYgeyLnQ0KK+ydtO2DnOyehA0KK+ydtOuzteq3nA0KK+ydtOyasO2DnA0KK+ydtOuzte2DnA0KK+ydtO2DnOyhsA0KK+ydtOyDge2XjA0KK+ydtOyYgeyaqQ0KK+ydtOunjO2drA0KK+ydtO2DnOyhsA0KK+ydtOuPhO2drA0KK+ydtOy2qe2VnA0KK+ydtOuzke2ZmA0KK+ydtO2DnOyhsA0KK+ydtOydvO2YuA0KK+ydtOq4sOyVoA0KK+ydtOuCnOq3vA0KK+ydtO2DnOykgA0KK+ydtOyerOyekA0KK+ydtOq0ke2drA0KK+ydtOuztOyEsQ0KK+ydtO2DnOyyoA0KK+ydtOyYpeydtA0KK+ydtOyYge2YuA0KK+ydtOuzkeumrA0KK+ydtO2DnO2YhA0KK+ydtOyduOqyvQ0KK+ydtOydtOy2nA0KK+ydtO2VhO2ZmA0KK+ydtO2DnO2YhA0KK+ydtOyblO2ZmA0KK+ydtO2ZlO2biA0KK+ydtOqyveyaqQ0KK+ydtO2DnO2YuA0KK+ydtOyihe2ZlA0KK+ydtOyerO2drA0KK+ydtO2aqOq3vA0KK+ydtO2DnO2YuA0KK+ydtOuLrOydvA0KK+ydtOyerOyWuA0KK+ydtOyYge2YhA0KK+ydtO2DnO2YuA0KK+ydtOyiheyaqQ0KK+ydtO2YhOyLnQ0KK+ydtOyWke2dlA0KK+ydtO2DnO2ZmA0KK+ydtOyInOyyoA0KK+ydtOuzkeyLnQ0KK+ydtOygle2DnQ0KK+ydtO2DnO2aqA0KK+ydtO2DnO2YuA0KK+ydtOuqheyImA0KK+ydtOq3nOyErQ0KK+ydtO2DnO2biA0KK+ydtO2dpey2nA0KK+ydtOyZuOuhnA0KK+ydtO2XjOyekA0KK+ydtO2DnO2biA0KK+ydtOydmO2VmQ0KK+ydtOyepeuCqA0KK+ydtOyInOy2nA0KK+ydtO2DnO2drA0KK+ydtOq0keq1sA0KK+ydtOq3gO2drA0KK+ydtOyehOyImQ0KK+ydtO2DneqzpA0KK+ydtOqyveyduA0KK+ydtOyerO2DnA0KK+ydtO2XjOq3nA0KK+ydtO2Dney2mA0KK+ydtOusuO2YuA0KK+ydtOyduOuTnQ0KK+ydtOuzkeuwsA0KK+ydtO2KueyEsQ0KK+ydtOyerOywvQ0KK+ydtOygleyhsA0KK+ydtO2VmOyekA0KK+ydtO2MkOq4sA0KK+ydtOq4sOyImQ0KK+ydtOyEneqzpA0KK+ydtOygleqzpA0KK+ydtO2MkOuPjA0KK+ydtCDtmZgNCivsnbTsnKTtnawNCivsnbTquLjqtawNCivsnbTtjJDrj5kNCivsnbTsmrDsnbwNCivsnbTqt4Dsl7QNCivsnbTsnbjshJ0NCivsnbTtjJDshJ0NCivsnbTqt7zsiJkNCivsnbTsg4HtmLgNCivsnbTsuaDshKANCivsnbTtjJDsiJwNCivsnbTsmqnqsr0NCivsnbTspIDtmLgNCivsnbTsnqzspIANCivsnbTtjJDsiJwNCivsnbTsiJjsp4QNCivsnbTsiJzshLENCivsnbTsnKTsiJwNCivsnbTtjJDsiKANCivsnbTspIDtnawNCivsnbTssL3shJ0NCivsnbTso7zssqANCivsnbTtjJDsi50NCivsnbTsoJXsmYQNCivsnbTrtoTsiJgNCivsnbTrtIntg50NCivsnbTtjJDsmqkNCivsnbTsoJXquLgNCivsnbTquLDshKQNCivsnbTrp4ztm4gNCivsnbTtjJTsmqkNCivsnbTsiJzsm5ANCivsnbTsp4DshLENCivsnbTtnaXsiKANCivsnbTtj4nqtawNCivsnbTrrLjri6wNCivsnbTrs5HsiJwNCivsnbTsooXtlZgNCivsnbTtko3rr7gNCivsnbTshLHsmpQNCivsnbTqsr3tmJUNCivsnbTsooXrnpgNCivsnbTtlYTquLANCivsnbTtg4Dsi50NCivsnbTtl4ztmZgNCivsnbTrs7XtmIQNCivsnbTtlYTrgqgNCivsnbTsnqzrgqgNCivsnbTsnKTqsr0NCivsnbTsiJnspJENCivsnbTtlYTsiJgNCivsnbTshKDqt5wNCivsnbTsooXsmZUNCivsnbTquLDtnawNCivsnbTtlYTsiJgNCivsnbTsnqztmZgNCivsnbTsooXroZ0NCivsnbTrj4Tsm5ANCivsnbTtlYTsl7ANCivsnbTsnqzsooUNCivsnbTrjIDsiJgNCivsnbTsooXtmIQNCivsnbTtlYTtmZgNCivsnbTsmIHtmZgNCivsnbTsjI3rsLENCivsnbTsoJDsl7ANCivsnbTtlZjqsr0NCivsnbTquLDtmZQNCivsnbTsnqzqsJENCivsnbTrrLjrj5kNCivsnbTtlZjsi50NCivsnbTshLHrnpgNCivsnbTsoJXqs6QNCivsnbTsnqXtmLgNCivsnbTtlZnrhbgNCivsnbTshLHsmYQNCivsnbTspJHtg50NCivsnbTsooXso7wNCivsnbTtlZnshJ0NCivsnbTqt5ztmLgNCivsnbTsp4Tsi50NCivsnbTrj5ntg4ENCivsnbTtlZnsoJwNCivsnbTqsr3tmIQNCivsnbTstpjqtowNCivsnbTsi5ztlZwNCivsnbTtlZnsobANCivsnbTssKjtmLgNCivsnbTrtIntl4wNCivsnbTshLHsp4QNCivsnbTtlZzqtawNCivsnbTquLDqs6ANCivsnbTsoJXstpwNCivsnbTrs5HsoJUNCivsnbTtlZzqt6ANCivsnbQg7KGwDQor7J2066qF6rSADQor7J207IiZ7J6QDQor7J207ZWc6re8DQor7J207KCQ7IudDQor7J2064yA7LCsDQor7J207Iic7ZmUDQor7J207ZWc642VDQor7J2064eM7Je0DQor7J207Iic67O1DQor7J207J2466qpDQor7J207ZWc7ISxDQor7J2067OR6re8DQor7J2067aE7ISdDQor7J207JiB7Je0DQor7J207ZWc7IicDQor7J207ZiE64+EDQor7J207Lmg7KeEDQor7J207JiB7ZmYDQor7J207ZWc7IudDQor7J2066y066qFDQor7J207JiB64yADQor7J207IiY64KoDQor7J207ZWc7JqpDQor7J207YyQ6raMDQor7J207ISx7IudDQor7J207JiB64+ZDQor7J207ZWc7Y+JDQor7J206rSR7IicDQor7J207Jqp6rWsDQor7J207IOB7YOcDQor7J207ZWc7ZmNDQor7J207ISx7KeEDQor7J207KCV64KoDQor7J207IyN7KeEDQor7J207ZWt7JqpDQor7J207Iic7IigDQor7J207LaY7IiYDQor7J207KeE7J6QDQor7J207ZW07ISdDQor7J207Jqp7IudDQor7J207YOc642VDQor7J207JiB7ZmYDQor7J207ZW07IucDQor7J207Jm47ISxDQor7J207ZmN7ZmYDQor7J207ZS87YOcDQor7J207ZW07JiBDQor7J207Lap7Zi4DQor7J207KCV7ISgDQor7J207JiB7ISdDQor7J207ZW07JilDQor7J207IiY7Z2sDQor7J207JiB7JuFDQor7J207J2Y7IicDQor7J207ZW07JqwDQor7J207KKF7JqwDQor7J207Jqp7ZmYDQor7J2066qF7IicDQor7J207ZW07JqxDQor7J207LC96rWtDQor7J207LKc7ZiEDQor7J207JuQ7JqwDQor7J207ZW07Jq0DQor7J207Jqp7KCcDQor7J207KKF66eMDQor7J20656Y6rWQDQor7J207ZW07JuFDQor7J206ri47JewDQor7J207YOc7KO8DQor7J206rSR7ISgDQor7J207ZW07J6QDQor7J207IOB7ISdDQor7J207KKF7IudDQor7J2066y06recDQor7J207ZW07KCVDQor7J207ISx7IiYDQor7J207IOB7Je0DQor7J207ZWE7ISdDQor7J207ZW07KCVDQor7J207KCV64yADQor7J206rec64+EDQor7J206rK97JewDQor7J207ZW07KGwDQor7J207Jil64+ZDQor7J207KKF7IScDQor7J207JiB7JqpDQor7J207ZW07KO8DQor7J2066qF7IicDQor7J207Zi47KSADQor7J207LmY64KoDQor7J207ZW07KSADQor7J2064Ko7YOdDQor7J207LCo7KO8DQor7J207Iic642VDQor7J207ZW07LKgDQor7J207J217KGwDQor7J207ZiB6rK9DQor7J2067OR7JiBDQor7J207ZaJ7IiYDQor7J2066e57Je0DQor7J207IOB7ISgDQor7J207KCV7ZicDQor7J207ZaJ7Jq0DQor7J2067SJ7IS4DQor7J207LC96rOkDQor7J207KeE7KGwDQor7J207ZaJ7J6QDQor7J207LCo7JewDQor7J207Jqp7J24DQor7J206rK967aEDQor7J207ZaJ7YOBDQor7J207IaM7JqwDQor7J207Z2s7IiZDQor7J206rK97YOcDQor7J207Zal66+4DQor7J206re87JuFDQor7J2066qF7LKgDQor7J206riI64+MDQor7J207Zal7ISdDQor7J207KKF7IStDQor7J206rK97J21DQor7J207Jqp7JiBDQor7J207ZeM6rCRDQor7J207IOB7IiZDQor7J207ISx66eMDQor7J207JiB642VDQor7J207ZeM6rWtDQor7J206riw7YOcDQor7J206reA6rWtDQor7J207JuQ642VDQor7J207ZeM6riwDQor7J207YOc7Z2sDQor7J207Iic7ZuIDQor7J207JiB7Zi4DQor7J207ZeM6riwDQor7J2067SJ642VDQor7J207J207IudDQor7J207J6s7Zi4DQor7J207ZeM64usDQor7J2067SJ6re8DQor7J2066qF6riIDQor7J206rK97JuQDQor7J207ZeM66y4DQor7J207IiY7IStDQor7J2064+Z7ZiEDQor7J206riw7ISgDQor7J207ZeM67CpDQor7J207ISg7LKgDQor7J207J247Z2sDQor7J207ISd67KUDQor7J207ZeM7IOBDQor7J207J287LacDQor7J206riI7ZiEDQor7J207IiY67KUDQor7J207ZeM7IudDQor7J207J6l7ZeMDQor7J207J6s7IiYDQor7J2064yA7ISgDQor7J207ZeM7JiBDQor7J206rSR7J6sDQor7J206rK96rWsDQor7J206rSR7JqpDQor7J207ZeM7JikDQor7J207IiY7JqwDQor7J207JiB7ZmYDQor7J207IS47KO8DQor7J207ZeM7JqpDQor7J2067OR7ZmNDQor7J207JuU7JuQDQor7J207J6s7J20DQor7J207ZeM7JqwDQor7J206riw7ZWZDQor7J206rOE7KGwDQor7J2065GQ7IicDQor7J207ZeM7JuFDQor7J207Jyk7IudDQor7J207IiY7LacDQor7J2064W47J28DQor7J207ZeM7J21DQor7J206riI7ZWYDQor7J2064+Z7IicDQor7J207ZWZ6riwDQor7J207ZeM7KCBDQor7J207Iic7JqpDQor7J207J6l7IicDQor7J207YOc7J28DQor7J207ZeM7KO8DQor7J207YyU7IiYDQor7J207JmE7ZqoDQor7J207IaQ6recDQor7J207ZeM7KeEDQor7J207JiB7IiZDQor7J207IOB6riwDQor7J2064yA66qpDQor7J207ZeM7LacDQor7J207JiB65+JDQor7J206rK97ZWYDQor7J206rO17ISdDQor7J207ZeM7LmYDQor7J207KKF7LKgDQor7J207JmE7IudDQor7J2066+47JuFDQor7J207ZeM7YOBDQor7J2067O16recDQor7J207IOB7KGwDQor7J207ZW06rWsDQor7J207ZeM7YOcDQor7J207J6s7IudDQor7J207ISx642VDQor7J206rK97YOcDQor7J207ZeM7YOcDQor7J206riw7YOcDQor7J2066qF6rSRDQor7J2066eM7JqpDQor7J207ZeM7YOcDQor7J2064+M7IicDQor7J207Iic6rOkDQor7J207J287LKgDQor7J207ZeM7Y+sDQor7J207JiB7ZiEDQor7J207J6s7LacDQor7J2067O17JuFDQor7J207ZeM7Y+sDQor7J207LCo7KeEDQor7J2064yA7ZmNDQor7J207Jqp64+EDQor7J207ZeM7Zi4DQor7J206re86rK9DQor7J2066qF7ISdDQor7J206rCR67SJDQor7J207ZeM7Zi4DQor7J207KeE64yADQor7J206rec7JuFDQor7J207IOB7ZmYDQor7J207ZeM7Zi4DQor7J207KKF7Z2sDQor7J207KCV7IStDQor7J207KKF66qFDQor7J207ZiB7KeEDQor7J207KKF7JiBDQor7J2064+Z7ISxDQor7J207YOc7JuQDQor7J207ZiE6rWsDQor7J207Jqp67CwDQor7J207ZiE7KeEDQor7J207J2A7JqpDQor7J207ZiE66C5DQor7J2064+Z6raMDQor7J207JuQ7Zi4DQor7J207IOB7JqpDQor7J207ZiE66qoDQor7J207JeF7LacDQor7J207ZmU7ZuIDQor7J2064+Z7YOcDQor7J207ZiE7IOBDQor7J207KKF7IudDQor7J207JiB7KSADQor7J206rK97IOdDQor7J207ZiE7IOBDQor7J207ZWY7Z2sDQor7J207YOc7LKgDQor7J206riI6ri4DQor7J207ZiE7IOBDQor7J207Jyk7Zi4DQor7J2064+Z7IOdDQor7J207KeE7Je0DQor7J207ZiE7IiZDQor7J207LKg7J6QDQor7J207IiY7KeEDQor7J207ZmN7J28DQor7J207ZiE7IudDQor7J207KCV7JWgDQor7J207J6s67CwDQor7J207JiB66CoDQor7J207ZiE7Je0DQor7J207IOB7IigDQor7J207J287YOdDQor7J206rSR7Zi4DQor7J207ZiE7J6sDQor7J2064+Z7ZyYDQor7J207JiB7JewDQor7J2064Kc7Jq0DQor7J207ZiE7KCVDQor7J2067O17JikDQor7J207Jq07ISxDQor7J207IOB7JuQDQor7J207ZiE7KGwDQor7J207KeE6regDQor7J206riw7Je0DQor7J207JyE7IudDQor7J207ZiE7KKFDQor7J207YOc7Z2sDQor7J207J6s64+EDQor7J2067KU7KO8DQor7J207ZiE7LKgDQor7J206rSR7IigDQor7J206riw64+ZDQor7J207Zqo7IicDQor7J207ZiE7LKgDQor7J2067OR7J6sDQor7J207J6s6rOkDQor7J207KCV67KUDQor7J207ZiE7YOcDQor7J207ISd7ZiEDQor7J207KCQ7JWUDQor7J207Jyk7IudDQor7J207ZiE7Z2sDQor7J207Iic7J6QDQor7J2067OR7Z2sDQor7J207IiY7ISdDQor7J207ZiV6rSRDQor7J207Jqp7JuQDQor7J207Jyk7LCsDQor7J207J207J6sDQor7J207ZiV64W4DQor7J207ISg7IudDQor7J2066qF7J21DQor7J2066eM7JqxDQor7J207ZiV64yADQor7J207KKF7YOcDQor7J207Iig7YOdDQor7J207Jqp66y4DQor7J207ZiV66y1DQor7J207ZS865OdDQor7J2066e57IicDQor7J2067OR7KGwDQor7J207ZiV7IudDQor7J207IOB7ISdDQor7J207LmY66eQDQor7J207J6s7ISgDQor7J207ZiV7IudDQor7J207JuU7IiZDQor7J207J2Y66y4DQor7J2066eQ7Zi4DQor7J207ZiV7KGwDQor7J20642V64KoDQor7J2066qF7JWUDQor7J207JiB7JqwDQor7J207ZiV7YOcDQor7J206rec7KGwDQor7J207J247ZiEDQor7J206rSA6recDQor7J207ZiV7YOcDQor7J207YOd7KO8DQor7J207Jqp7J28DQor7J207J6s7IicDQor7J207Zic6rK9DQor7J207ZGc7ZWtDQor7J207KCV7Zi4DQor7J207Ius7LC9DQor7J207Zic6rK9DQor7J2064+Z7IStDQor7J207J206recDQor7J207KCV7LacDQor7J207Zic6rK9DQor7J207IOB7IudDQor7J207KKF7ISdDQor7J207ZeM7KO8DQor7J207Zic66a8DQor7J206riw7JqxDQor7J207ISd7ZuIDQor7J206reA64KoDQor7J207Zic7IiZDQor7J207J6s7Je0DQor7J206rWs7ZmYDQor7J207Zqo7KSADQor7J207Zic7IiZDQor7J207LC97Zi4DQor7J207JuQ7KeEDQor7J207J2066eMDQor7J207Zic7KO8DQor7J206rSR7IudDQor7J207KKF7IigDQor7J206rCR7KGwDQor7J207Zi46raMDQor7J2066qF7ZmYDQor7J2064yA7KGwDQor7J207Jqw7ISxDQor7J207Zi46raMDQor7J207Jil6raMDQor7J207Jm467O1DQor7J207Jqw7JilDQor7J207Zi464+ZDQor7J207ZWc7Zi4DQor7J207YOc7ISgDQor7J206rSR7JqpDQor7J207Zi466eMDQor7J206rK966eMDQor7J206rOE7ZmYDQor7J207Iq564+EDQor7J207Zi47IOBDQor7J207YyQ7Je0DQor7J2067O17KCcDQor7J207Jik7IS4DQor7J207Zi47ISdDQor7J207Iic7IiZDQor7J207JyE7KSADQor7J207KCV7KSADQor7J207Zi47ISxDQor7J207LKg7IigDQor7J207ISx7JuFDQor7J207LaY7KCcDQor7J207Zi47IugDQor7J207KCV7IStDQor7J207ZWZ64+EDQor7J206rec7ZmUDQor7J207Zi47JiBDQor7J20642V7ZWYDQor7J207KeE7Zi4DQor7J207YOc6regDQor7J207Zi47JuQDQor7J207J6s7Zi4DQor7J207KO87IukDQor7J206riw7Zi4DQor7J207Zi47JuQDQor7J207KCV7Je0DQor7J207Jqp66a9DQor7J207KKF7IudDQor7J207Zi47J6sDQor7J2064yA7JiBDQor7J207YOc64yADQor7J207ISx7Zi4DQor7J207Zi47KCVDQor7J207Iug7YOBDQor7J2064+Z66eMDQor7J207KCV7IudDQor7J207Zi47KSRDQor7J207KSA7KSADQor7J207ZmN7IiYDQor7J207J6s7J6sDQor7J207Zi47LaYDQor7J207KCV7Je9DQor7J207ISd7IiYDQor7J206rec7ZmYDQor7J207Zi47LihDQor7J206rSR7Jq0DQor7J207ISd6regDQor7J2067OR7ZmYDQor7J207ZmN6rWsDQor7J2064+Z7ISgDQor7J207ISx7IudDQor7J207ZiV6raMDQor7J207ZmN6rWsDQor7J2067OR7KGwDQor7J207IiY7ISdDQor7J2066eQ7IiYDQor7J207ZmN6rWsDQor7J207JuQ7ZmYDQor7J207Jyh7KeEDQor7J206rSR7ISgDQor7J207ZmN6rWtDQor7J2064+Z7J20DQor7J207KeA6re8DQor7J207YyQ7KGwDQor7J207ZmN6regDQor7J207KO87LKgDQor7J207IOB7IudDQor7J207LaY6re8DQor7J207ZmN6riwDQor7J2067OR7LaYDQor7J207KSA7ZWZDQor7J207JiB7ISxDQor7J207ZmN656ADQor7J207J2A67O1DQor7J207KKF7JqwDQor7J207J6s7KKFDQor7J207ZmN7ISdDQor7J2064Ko7JqpDQor7J207J2E6re8DQor7J207LKt64+MDQor7J207ZmN7IudDQor7J207JiB7Zi4DQor7J207ISd7IiYDQor7J207ZmN7ZiEDQor7J207ZmN7IudDQor7J207YyQ7ZmUDQor7J207J20656YDQor7J207KeE67O1DQor7J207ZmN7Je0DQor7J207KeA7IiYDQor7J2064us6regDQor7J206rec7J6QDQor7J207ZmN7YOdDQor7J207LaU7ZWZDQor7J207Jyk7IiZDQor7J206riw7KSADQor7J207ZmN7YOdDQor7J207KKF7Ja4DQor7J207LaU65OdDQor7J207KKF6riwDQor7J207ZmU6rK9DQor7J207J2Y642VDQor7J2064us6rWtDQor7J207KCV7J6sDQor7J207ZmU6rK9DQor7J2064yA7YOcDQor7J207Iic7IiYDQor7J2064+Z7ZWZDQor7J207ZmU6529DQor7J207YOc6recDQor7J207J207ZmNDQor7J207Iic7IStDQor7J207ZmU7ISdDQor7J207ZWc656YDQor7J207Iic7ZiEDQor7J207Z2s7Z2sDQor7J207ZmU7IS4DQor7J207IOB7JqwDQor7J2067OR6rSADQor7J2067SJ66eMDQor7J207ZmU7IiYDQor7J206rCR7KGwDQor7J207ZWE7ISdDQor7J207KKF7ZiVDQor7J207ZmU7J6QDQor7J207J6s7IudDQor7J207YOc7JewDQor7J207Zi47JuQDQor7J207ZmU7KKFDQor7J2067OR6rSADQor7J207JiB7IigDQor7J207Lap7LaYDQor7J207ZmY7IiYDQor7J207YOc67O1DQor7J2064+Z7JqwDQor7J2066+87Je0DQor7J207ZmY7J20DQor7J207IaM7Z2sDQor7J207KCV7KeEDQor7J207J6s6rOkDQor7J207ZmY7KKFDQor7J2067aE7J6sDQor7J206reA6rOkDQor7J207Jew7IiZDQor7J207Zmp7IiYDQor7J2067SJ6re8DQor7J207IOB7J28DQor7J207JiB7KSADQor7J207ZqM7IicDQor7J2066+87IiYDQor7J20642V64yADQor7J207JiB7KGwDQor7J207Zqo6regDQor7J207IOB7Zi4DQor7J207YOc7Jq0DQor7J20642V7Jq0DQor7J207Zqo7IiYDQor7J207JiB7IiYDQor7J207Zic7JqwDQor7J207KCV6recDQor7J207Zqo7JuQDQor7J207Jyk7IiYDQor7J207ZmU64yADQor7J2066qF7YOdDQor7J207ZuE67SJDQor7J207Jyk7KKFDQor7J207ZiV7Zi4DQor7J207YOc7Zy0DQor7J207Z2l6riwDQor7J2067SJ7IOBDQor7J207J6s7ISxDQor7J207KKF7ZeMDQor7J207Z2l7IicDQor7J2064us7ISgDQor7J206rK97Ja1DQor7J2066eM7ISgDQor7J207Z2l7IudDQor7J207KKF7ZmUDQor7J206rSR67CwDQor7J207JiB7ZmYDQor7J207Z2l7J6sDQor7J207IOB7Zi4DQor7J207IiY7KCcDQor7J2067OR6recDQor7J207Z2s7J2RDQor7J207JiB7ZiEDQor7J207ISd7IiYDQor7J207KCV6riwDQor7J207Z2s7J6QDQor7J207Lap7JuQDQor7J207ZiE7KKFDQor7J207J2A7IudDQor7J207Z2s7J6QDQor7J207J2A7LKgDQor7J207Zic7IiYDQor7J207KKF64yADQor7J2466qF7Y64DQor7J247KKF6riwDQor7J247IyN6rWsDQor7J247KCV7JqpDQor7J247J6s7ZmYDQor7J247J6s7ZmYDQor7J247IOB7KeEDQor7J2465Od64+EDQor7J6EIOyYgQ0KK+yehOyepeyerA0KK+yehOuFuOq3nA0KK+yehOyEse2YuA0KK+yehOqyveuwsA0KK+yehOywveyImA0KK+yehOuPme2biA0KK+yehOyerOynhA0KK+yehOqyveyEnQ0KK+yehOugpOyyoA0KK+yehOyYgeydmA0KK+yehOyZuO2YuA0KK+yehOqyveyLnQ0KK+yehOyiheuPmQ0KK+yehOynhOyhsA0KK+yehOyImOyyoA0KK+yehOqyveyasA0KK+yehOyaqeyEnQ0KK+yehOyGjOu2gA0KK+yehOyEne2YuA0KK+yehOqyve2ZlA0KK+yehOuzkeyCvA0KK+yehOygleyImA0KK+yehOuCqOyYgQ0KK+yehOq0keuvvA0KK+yehOybkOyLnQ0KK+yehOyaqeq3vA0KK+yehOyjvOu2hA0KK+yehOq0keyLnQ0KK+yehOyYgeyerA0KK+yehOq4sOyEnQ0KK+yehO2YhOuwsA0KK+yehOq0key2mA0KK+yehOywqO2YhA0KK+yehOu2hO2YuA0KK+yehOyiheygnA0KK+yehOq1rO2YuA0KK+yehOywveuPmQ0KK+yehOyDge2VnA0KK+yehOyEseuPjA0KK+yehOq3gOyImQ0KK+yehO2MkOyEnQ0KK+yehOydvOq0gA0KK+yehOyyoO2VnA0KK+yehOq3vOuNlQ0KK+yehOyYgeuPjA0KK+yehOuqhe2DnQ0KK+yehOyImOyEoA0KK+yehOq4iOyYgQ0KK+yehO2drOyInA0KK+yehOuFuOyekA0KK+yehOyEseyLnQ0KK+yehOq4sOyYpA0KK+yehOyYge2aqA0KK+yehOyEseybkA0KK+yehO2DnOuPhA0KK+yehOq4sO2RnA0KK+yehOygleunjA0KK+yehOqyvey5mA0KK+yehO2YhOyEsQ0KK+yehOq4sO2YgQ0KK+yehOuMgOuPhA0KK+yehOyblO2drA0KK+yehOyEoOyImA0KK+yehOq4sO2YuA0KK+yehOu0ieybkA0KK+yehOq3vO2drA0KK+yehOywqOyyoA0KK+yehOq4uOyaqQ0KK+yehOyYge2YhA0KK+yehOqwleyImA0KK+yehOygleyLnQ0KK+yehOuCqOyInA0KK+yehOq1rO2YuA0KK+yehOuzkeqwkQ0KK+yehOyLoOyImA0KK+yehOuFuOyLnQ0KK+yehO2YleuCqA0KK+yehOuNleq4uA0KK+yehOyduOumvA0KK+yehOuLrOyEnQ0KK+yehOynhO2ZmA0KK+yehOyEneyLpA0KK+yehOyImOunjA0KK+yehOuLrOy2nA0KK+yehOyDgeq3nA0KK+yehOq4sOuqhQ0KK+yehO2DnOyyoA0KK+yehOuLrO2YuA0KK+yehOyEseuvuA0KK+yehOustOyasA0KK+yehOuzteyatA0KK+yehOuMgO2drA0KK+yehOqyveyVlA0KK+yehO2XjOynhA0KK+yehOq3vOuemA0KK+yehOuPhOyEnQ0KK+yehOyYgeyYgQ0KK+yehOu2gOyInA0KK+yehO2YhO2drA0KK+yehOuPmeyImA0KK+yehOyerOyDnQ0KK+yehOygleuwsA0KK+yehOyihe2ZmA0KK+yehOuhne2WpQ0KK+yehOyduOqzpA0KK+yehOqzvOyImQ0KK+yehOqyveyglQ0KK+yehOuhne2WpQ0KK+yehOyEseu0iQ0KK+yehOyYgeudvQ0KK+yehOygkOuPmQ0KK+yehOuqheq2jA0KK+yehOybkOyErQ0KK+yehOydkeybkA0KK+yehOycoOyXsA0KK+yehOuqheyInA0KK+yehOynhOyasA0KK+yehOyYgeuemA0KK+yehOq3nOyEoA0KK+yehOuqheyVoA0KK+yehOycpOyDgQ0KK+yehOuCmeq4sA0KK+yehOq0keyynA0KK+yehOuqhe2drA0KK+yehOyDgeyImA0KK+yehOyaqeq3vA0KK+yehOynhOyerA0KK+yehOustOyCsA0KK+yehOqyve2YuA0KK+yehOyZleyImA0KK+yehOydmOuylA0KK+yehOustOyImA0KK+yehOyVoOyhsA0KK+yehOyYge2YuA0KK+yehOygleq4sA0KK+yehOustOyXsA0KK+yehOyImO2YhA0KK+yehOyZleyEuA0KK+yehOyduOyDgQ0KK+yehOusuOyInA0KK+yehOygleyYpQ0KK+yehO2DnOu0iQ0KK+yehO2YhOyDgQ0KK+yehOuzkeqzpA0KK+yehO2drOq4sA0KK+yehOq0keyasA0KK+yehO2XjO2DnQ0KK+yehOuzkeqzpA0KK+yehOywveyYgQ0KK+yehOyduOynhA0KK+yehOyaqe2drA0KK+yehOuzkeq1sA0KK+yehOyInOq4sA0KK+yehOyGjOyyoA0KK+yehO2drOq0kQ0KK+yehOuzkeq4uA0KK+yehOyInOyyoA0KK+yehOyEseybkA0KK+yehOyInOu2gA0KK+yehOuzkeyCvA0KK+yehOuqheyInA0KK+yehOyDge2YuA0KK+yehOyDge2ZjQ0KK+yehOuzkeyImA0KK+yehOyZuOyCvA0KK+yehOyYge2biA0KK+yehOydmOuNlQ0KK+yehOuzkeyYpA0KK+yehOuzkeyImA0KK+yehOyaqe2ZmA0KK+yehOyInOuFuA0KK+yehOuzkeyyoA0KK+yehOuTneyVlA0KK+yehOyYge2YhA0KK+yehO2YhOyasA0KK+yehOuzkeyyoA0KK+yehOyDge2YuA0KK+yehOu0ie2YuA0KK+yehOyEne2doA0KK+yehOuzke2DnA0KK+yehOybkOyXtA0KK+yehOuqheu0iQ0KK+yehOyEneq3nA0KK+yehOuzteyYgQ0KK+yehOy5oO2DnA0KK+yehOyiheyEnQ0KK+yehOustOyYgQ0KK+yehOu0ieyasA0KK+yehOyaqeyYpQ0KK+yehOyDgeyhsA0KK+yehOyxhOyXtA0KK+yehOu2hOyhsA0KK+yehOy5mOudvQ0KK+yehOustOyerA0KK+yehOyDgeyDnQ0KK+yehOyDgeyImA0KK+yehOyerO2ZqQ0KK+yehOygleq4sA0KK+yehOywveyImQ0KK+yehOyDge2VmQ0KK+yehOycpO2XjA0KK+yehOyZuOyEoA0KK+yehOunkOuwsQ0KK+yehOyEneygkA0KK+yehOywveuRkA0KK+yehO2DnOyEoA0KK+yehOyerOyIoA0KK+yehOyEoOuvuA0KK+yehOykgO2YlQ0KK+yehOuzkey2nA0KK+yehOycpOqzpA0KK+yehOyEoOyasA0KK+yehOyCvOqyvQ0KK+yehOq4sOyEoA0KK+yehOyiheyImA0KK+yehOyEseq3nA0KK+yehOqwkOyihQ0KK+yehO2drOugrA0KK+yehOyynOyImA0KK+yehOyEseq4sA0KK+yehOyaqeyaqQ0KK+yehOynhOyInA0KK+yehOq1kOyYgQ0KK+yehOyEseybkA0KK+yehOyInOyhsA0KK+yehOuNleyEnQ0KK+yehOyYpO2ZjQ0KK+yehOyEse2YuA0KK+yehOq0keyVoA0KK+yehOuNle2ZlA0KK+yehOyerOuhnQ0KK+yehOyImOuPmQ0KK+yehOy2mOyLoA0KK+yehOyerO2biA0KK+yehO2DnOyEoA0KK+yehOyImOyLnQ0KK+yehOyYgeyasA0KK+yehO2DnO2drA0KK+yehO2DnOyEnQ0KK+yehOyImOydvA0KK+yehOygleu0iQ0KK+yehOuzkeqyvQ0KK+yehOyDge2ZmA0KK+yehOyImOy5mQ0KK+yehOyDgeyXrA0KK+yehOyiheyglQ0KK+yehOyiheyImA0KK+yehOyImeyYgQ0KK+yehOydgO2RnA0KK+yehOuvuOqzpA0KK+yehOuRkOq3nA0KK+yehOyImeyekA0KK+yehOqwkeyEnQ0KK+yehOuMgOq3nA0KK+yehOyiheynhA0KK+yehOyImeyekA0KK+yehOy2mOusuA0KK+yehOyerO2DnA0KK+yehOunkOuztA0KK+yehOyInOuNlQ0KK+yehOyEneyEoA0KK+yehOustOuqqQ0KK+yehOq4sOyEnQ0KK+yehOyInOuNlQ0KK+yehOyduO2ctA0KK+yehOyEseyInA0KK+yehO2MkOyImA0KK+yehOyInOyehA0KK+yehOuvuOuCqA0KK+yehOyDge2ZmA0KK+yehOq4sOyyoA0KK+yehOyInOyekA0KK+yehO2ZmOyEnQ0KK+yehOq3nO2VmQ0KK+yehO2YgeuPmQ0KK+yehOyInO2ZmA0KK+yehOq3vOyInA0KK+yehOynhOyErQ0KK+yehOyYgeuegA0KK+yehOyIoO2YuA0KK+yehOybkOyImA0KK+yehOuptOq4uA0KK+yehO2YuOyasQ0KK+yehOyKueqzpA0KK+yehO2YuOyImA0KK+yehOunkOydgA0KK+yehOyYgeq1kA0KK+yehOyKueq2jA0KK+yehOuCqOyLnQ0KK+yehO2VhO2YlQ0KK+yehOynhOyInA0KK+yehOyKueuwsA0KK+yehOyYge2RnA0KK+yehOyDgeyImA0KK+yehOyYgeuTnQ0KK+yehOyKueyInA0KK+yehO2Wieq3vA0KK+yehOyiheq4uA0KK+yehOy5mOyhsA0KK+yehOyKue2MlA0KK+yehOuCmeq4sA0KK+yehOyLoOq3nA0KK+yehOyLoOyInA0KK+yehOyWkeyasA0KK+yehOusuOydtA0KK+yehOyEuOyImA0KK+yehOuqheyEnQ0KK+yehOyXsO2YuA0KK+yehOyImOuwsA0KK+yehOyEseuwsA0KK+yehOq3nOyEnQ0KK+yehOyYgeq1rQ0KK+yehOywqO2drA0KK+yehOqzhOynhA0KK+yehOyduO2ZmA0KK+yehOyYgeuqqA0KK+yehOydvO2YuA0KK+yehOuPmeyImA0KK+yehOyWuOyyoA0KK+yehOyYgeyihQ0KK+yehOqwke2doA0KK+yehOykkeyInA0KK+yehOyEseyImA0KK+yehOyYge2DnA0KK+yehO2cmOyYpQ0KK+yehOunjOqyvQ0KK+yehOyEseyImA0KK+yehOyYge2YuA0KK+yehOuzkeyaqQ0KK+yehOq1sOyyoA0KK+yehOyerOyXsA0KK+yehOyYge2YuA0KK+yehOyLoO2ZjQ0KK+yehOuzkeyekA0KK+yehOq1rOycpA0KK+yehOyYge2YuA0KK+yehOq4iOugqA0KK+yehOywrOyInA0KK+yehOynhOyYpQ0KK+yehOyYpeyXsA0KK+yehOycoO2dpQ0KK+yehOqyve2DnA0KK+yehOyInOyaqQ0KK+yehOyZuOyImA0KK+yehOyaqeq4sA0KK+yehO2YuOynhA0KK+yehOyDgeqyvQ0KK+yehOyaqeynhA0KK+yehOyatOyXtA0KK+yehOqyveuylA0KK+yehOygle2YuA0KK+yehOyaqeynhA0KK+yehOyDge2ZlA0KK+yehOyImOyhsA0KK+yehOq4sOyIoA0KK+yehOyaqe2DnQ0KK+yehOuNleyXtA0KK+yehOyEoOu2lQ0KK+yehOu2gOuztQ0KK+yehOyaqe2VtA0KK+yehOyaqeyInA0KK+yehOyYpeyErQ0KK+yehOyaqeuNlQ0KK+yehOyasOyEsQ0KK+yehOq4sOyekA0KK+yehOygleyasQ0KK+yehOq3nOyErQ0KK+yehOybkOyekA0KK+yehOuqheyImA0KK+yehOyInOuwsA0KK+yehOyiheq3nA0KK+yehOybkO2drA0KK+yehOuzteyEnQ0KK+yehOyEseyglQ0KK+yehOyerOq3nA0KK+yehOycpO2YuA0KK+yehOydtO2ZlA0KK+yehOyiheyLnQ0KK+yehOyYgeq3oA0KK+yehOydgOqyvQ0KK+yehOyatO2YhA0KK+yehOyduOqxuA0KK+yehOyaqeyaqQ0KK+yehOydhOyDgQ0KK+yehOydvOyXtA0KK+yehOyEneyEoA0KK+yehOqyveyImA0KK+yehOyduOyInA0KK+yehOuztOyLnQ0KK+yehOuNleuhgA0KK+yehO2VtOykgA0KK+yehOyduOyerA0KK+yehO2drOq3vA0KK+yehOydteyInA0KK+yehOyMjeq4uA0KK+yehOydvOyasA0KK+yehOy2mO2aqA0KK+yehOywve2YuA0KK+yehOy2qeyekA0KK+yehOyepeq3nA0KK+yehOyYgeq1rA0KK+yehO2DnOyImQ0KK+yehOyepeqwkQ0KK+yehOyerOqxtA0KK+yehOyduOyEoA0KK+yehOygle2ZmA0KK+yehOynhO2biA0KK+yehOyerOq2jA0KK+yehOyjvOyDnQ0KK+yehOuzteuPjA0KK+yehOyerO2YhA0KK+yehOyerOq3vA0KK+yehOqzhOyhsA0KK+yehO2DnOyasA0KK+yehOunjOyEsQ0KK+yehOyerOq3vA0KK+yehOyYgeyErQ0KK+yehOywqOyDgQ0KK+yehOuLrOuztQ0KK+yehOyerOq3vA0KK+yehOywveyLnQ0KK+yehOyCvOyhsA0KK+yehOyImOynhA0KK+yehOyerOyynA0KK+yehOq3vO2ZmA0KK+yehOq4sOyerA0KK+yehOyaqe2YuA0KK+yehOyerO2YuA0KK+yehOyEseyYpA0KK+yehOyInOyasA0KK+yehOyerOyImA0KK+yehOygkOyLnQ0KK+yehOybkOu0iQ0KK+yehOywveyYgQ0KK+yehOyInOusuA0KK+yehOygleqwkQ0KK+yehO2VmeydtA0KK+yehOq3nO2VmQ0KK+yehOyYgeyImA0KK+yehOygleqwkQ0KK+yehOyCvOq3vA0KK+yehO2VtOyynA0KK+yehO2MkOygnA0KK+yehOygleuLrA0KK+yehOyiheuegA0KK+yehOq1kOq4sA0KK+yehOyDge2VmQ0KK+yehOygleuMgA0KK+yehOywveyVhA0KK+yehOyiheyXtA0KK+yehOyekOq2jA0KK+yehOygleuqqA0KK+yehOydtOyZhA0KK+yehOyDge2VmQ0KK+yehOy2mOujoQ0KK+yehOygleuwsA0KK+yehOy2mO2YhA0KK+yehOq0keuMgA0KK+yehOyYgeyXtA0KK+yehOygleyImQ0KK+yehOyaqeyjvA0KK+yehOygleyekA0KK+yehOyYgeqzpA0KK+yehOygleyIoA0KK+yehOynhOyLoA0KK+yehOynhOq2jA0KK+yehOuptOyasQ0KK+yehOygleynhA0KK+yehOyehOyEoA0KK+yehOyerOyhsA0KK+yehOydgOuTnQ0KK+yehOygleyyoA0KK+yehOyaqeyLnQ0KK+yehOygkOyaqQ0KK+yehOyaqeyEnQ0KK+yehOygle2DnA0KK+yehOyImOuNlQ0KK+yehOyImOynhA0KK+yehOyImOydtA0KK+yehOygle2YnA0KK+yehOydvOyErQ0KK+yehOyDgeydtA0KK+yehOy5mOydvA0KK+yehOygle2YuA0KK+yehOq3gOyEnQ0KK+yehO2VreuTsQ0KK+yehOq1kOyXtA0KK+yehOygle2ZmA0KK+yehOuCmeuylA0KK+yehOyEneyDgQ0KK+yehOygkO2YhA0KK+yehOygnOyasA0KK+yehOuzke2XjA0KK+yehOyDgey2mA0KK+yehOyihe2drA0KK+yehOyhsOqwlQ0KK+yehOyaqe2ZmA0KK+yehOuMgOyDnQ0KK+yehOyEseyEnQ0KK+yehOyiheq1rQ0KK+yehOyaqeyekA0KK+yehOyZhO2ZmA0KK+yehOyerOyEoA0KK+yehOyiheq4uA0KK+yehOuztOyIoA0KK+yehOyInO2ZmA0KK+yehOyInOyEsQ0KK+yehOyiheunjA0KK+yehOyerOyLnQ0KK+yehOywveyInA0KK+yehOygle2YuA0KK+yehOyiheunjA0KK+yehOydgOyEoA0KK+yehOygleyYpQ0KK+yehOyihe2drA0KK+yehOyiheyglQ0KK+yehOyImOyErQ0KK+yehOq4uOyEoA0KK+yehOy2mOyLnQ0KK+yehOyihe2DnQ0KK+yehOyInOuPhA0KK+yehOyblOyasA0KK+yehOu0ie2ZlA0KK+yehOyihe2YuA0KK+yehOyiheyasQ0KK+yehOyDgeq1rA0KK+yehOygleyImA0KK+yehOyihe2ZmA0KK+yehOyerOyImA0KK+yehOq0ke2VnA0KK+yehOuztO2VmQ0KK+yehOyjvOyErQ0KK+yehOyDge2DnA0KK+yehOuqheyImA0KK+yehOyDgeq4sA0KK+yehOykkeyImA0KK+yehOywqOqzpA0KK+yehOuqheyhsA0KK+yehOuPmeq3oA0KK+yehOymneq2jA0KK+yehOqyve2drA0KK+yehOyDgeyehA0KK+yehO2DnO2YkQ0KK+yehOyngO2ZmA0KK+yehOyaqeq4sA0KK+yehOuPmeq4uA0KK+yehOyYpe2DnQ0KK+yehOynhOq3nA0KK+yehOyerOyErQ0KK+yehOybkOyInA0KK+yehOyImO2WiQ0KK+yehOynhOuqqA0KK+yehOygleyInA0KK+yehOy2mO2DnQ0KK+yehOygkOq0gA0KK+yehOynhOuqqQ0KK+yehOyDgeyaqQ0KK+yehOuPme2DnA0KK+yehOyYge2YhA0KK+yehOynhOybhQ0KK+yehOuqheyynA0KK+yehOyCrOyYpA0KK+yehOygle2YuA0KK+yehOynhO2DnA0KK+yehOyDge2ctA0KK+yehOuqheq4sA0KK+yehOyEseq2jA0KK+yehOywqOuPhA0KK+yehOyiheuCqA0KK+yehOyYgeunjA0KK+yehOqyve2drA0KK+yehOywqOyIoA0KK+yehOq3vOyWtQ0KK+yehOyDge2DnA0KK+yehOyXsOqwkQ0KK+yehOywveq3vA0KK+yehOycpOyyoA0KK+yehOygle2DnA0KK+yehOyYgeqzpA0KK+yehOyxhOyLnQ0KK+yehOyYgeycpA0KK+yehO2Yle2YhA0KK+yehOusuOyyoA0KK+yehOyxhOyaqQ0KK+yehOygleyyoA0KK+yehOuPmeykgA0KK+yehOuPhOyYpQ0KK+yehOyxhO2YuA0KK+yehO2DnOyaqQ0KK+yehOq0gOyaqQ0KK+yehOuPme2ZmA0KK+yehOyynO2DnQ0KK+yehOyYgeyaqQ0KK+yehOyiheyasA0KK+yehOu2gO2VhA0KK+yehOyyreyEnQ0KK+yehOynhO2drA0KK+yehOu0ieqyvQ0KK+yehOygleydvA0KK+yehOy2mOq3vA0KK+yehOydhOyEoA0KK+yehO2DnOyInA0KK+yehO2ZlOyihQ0KK+yehOy2mOuwsA0KK+yehOuPmeyYpQ0KK+yehOyIoOuCqA0KK+yehOyEseyInA0KK+yehOy2mOyDnQ0KK+yehOykkeyaqQ0KK+yehCDquLANCivsnoTsirnqtawNCivsnoTstpjsnpANCivsnoTqsr3tmqgNCivsnoTqsJHsl7QNCivsnoTquLDsi50NCivsnoTsuZjsobANCivsnoTso7zshJ0NCivsnoTrp5Drj5kNCivsnoTsmIHqsbgNCivsnoTtg5zqsr0NCivsnoTquLDrtoQNCivsnoTssqDsnbwNCivsnoTsmKXsp4QNCivsnoTtg5zquLgNCivsnoTtmqjtmLgNCivsnoTrs5HsnZgNCivsnoTrqqjsnbwNCivsnoTtg5zquLgNCivsnoTshJ3qs6QNCivsnoTsmYTtg50NCivsnoTrs5HqsbgNCivsnoTtg5zsiJgNCivsnoTsi5zsmrQNCivsnoTsooXqtowNCivsnoTsiJztnawNCivsnoTtg5zsiJwNCivsnoTtlbTsnKQNCivsnoTsnqXqtawNCivsnoTqt5zslaANCivsnoTtg5zsiJwNCivsnoTsoJDsooUNCivsnoTshKDsnqwNCivsnoTsoJXssYQNCivsnoTtg5zsiJwNCivsnoTqtJHtnawNCivsnoTtlZjtmZQNCivsnoTsm5TstpgNCivsnoTtg5zsnpANCivsnoTsooXtmLkNCivsnoTstpjrrLgNCivsnoTrs5HsnpANCivsnoTtg5zsobANCivsnoTrqoXtmIQNCivsnoTtg5zsmrANCivsnoTsnKTssqANCivsnoTtg5zsp4QNCivsnoTsg4Hqt5wNCivsnoTqt5zstpwNCivsnoTshozsl7QNCivsnoTtg5ztmLgNCivsnoTrs5Hqt6ANCivsnoTsnqzstpwNCivsnoTspJHsm4UNCivsnoTtg5ztmLgNCivsnoTsooXtmLgNCivsnoTtmY3tmZgNCivsnoTsooXslaANCivsnoTtjJDshJ0NCivsnoTqsr3smIENCivsnoTsooXsmYQNCivsnoTrs5Hqt5wNCivsnoTtjJDsiJgNCivsnoTsmIHqsr0NCivsnoTsmIHtmZgNCivsnoTrrLTtmIQNCivsnoTtjJTsmqkNCivsnoTrs7XsnbQNCivsnoTqt7zshJ0NCivsnoTshozsobANCivsnoTtlZnquLANCivsnoTsm5Dqt7wNCivsnoTrr7ztlZwNCivsnoTrp5DtmLgNCivsnoTtlZnsiKANCivsnoTtmqjshKANCivsnoTsmIHsl7QNCivsnoTrj5nsiJgNCivsnoTtlZzsmKUNCivsnoTsiJjtg5wNCivsnoTsiKDqtJENCivsnoTqs6TqtawNCivsnoTtlbTssqANCivsnoTtlbTrjZUNCivsnoTsnKTsobANCivsnoTsnqztmIQNCivsnoTtlontg50NCivsnoTsiJzsnoQNCivsnoTsmqnqsr0NCivsnoTsmIHqtawNCivsnoTtl4zsmIENCivsnoTsiJnsiJwNCivsnoTtnazsobANCivsnoTqsr3quLANCivsnoTtl4zsmrANCivsnoTqtZDsiJkNCivsnoTrkZDso7wNCivsnoTshLHssYQNCivsnoTtl4zssqANCivsnoTtg5zrqqgNCivsnoTqsr3qsJwNCivsnoTtmLjsiJgNCivsnoTtmLjsmIENCivsnoTtmY3sspwNCivsnoTsmrTsobANCivsnoTshKDtnawNCivsnoTtmZTsiJwNCivsnoTrp4zsmIENCivsnoTsnqzsnoQNCivsnoQg6rCRDQor7J6E7ZmY7YOdDQor7J6E7J6s7ZmYDQor7J6E6rK97IiZDQor7J6E7J207Zi4DQor7J6lIO2YuA0KK+yepeuzkeyImQ0KK+yepey5mOyXtA0KK+yepeyYgeyglQ0KK+yepeqyveyImQ0KK+yepey2mOyekA0KK+yepe2drOq2jA0KK+yepeq4sOyXsA0KK+yepeqyveyIoA0KK+yepeuzkeyEoA0KK+yepe2YnOybhQ0KK+yepeyInOybhQ0KK+yepeqzhOyVlA0KK+yepeqyve2DnQ0KK+yepeqwkeyihQ0KK+yepeuqhe2bhA0KK+yepeq0gOyLnQ0KK+yepeusuOqxtA0KK+yepeuNle2VnA0KK+yepeq0keyXtA0KK+yepeq0keyYpQ0KK+yepeygle2drA0KK+yepeyVlOq3vA0KK+yepeuzkeyaqQ0KK+yepeq1reuCqA0KK+yepSDtmIQNCivsnqXsmqntnawNCivsnqXsmIHqt7wNCivsnqXqt5zrrLgNCivsnqXtnaXrr7wNCivsnqXrrLTqtIANCivsnqXsp4DshLENCivsnqXqt5zsi50NCivsnqXrs5HquLANCivsnqXrtInsiJwNCivsnqXsmIHsi50NCivsnqXqt5ztmIQNCivsnqXsnbjsmYQNCivsnqXqsr3shKANCivsnqXtlZzsp4QNCivsnqXqt5ztmY0NCivsnqXsirntmZQNCivsnqXtlbTshLENCivsnqXsnqzrjIANCivsnqXquIjsmIENCivsnqXrj4TrqqgNCivsnqXshqHrj4QNCivsnqXsnYDtmZgNCivsnqXquLDrpqwNCivsnqXsp4TtnawNCivsnqXsmKXtl4wNCivsnqXsnbztmLgNCivsnqXquLDsi50NCivsnqXrr7zrsLENCivsnqXsnqzrjZUNCivsnqXsnqzsm5ANCivsnqXquLDsmZUNCivsnqXsmIHssqANCivsnqXso7zrp4wNCivsnqXspp3stpgNCivsnqXquLDso7wNCivsnqXrj5nrtIkNCivsnqXshLHstpwNCivsnqXsmIHquIgNCivsnqXquLDtmZQNCivsnqXsnqztmLgNCivsnqXsnYDsmrANCivsnqXrs5Hri6wNCivsnqXrgqjsiJwNCivsnqXtnazrspQNCivsnqXsp4TsiJgNCivsnqXsnqzsmrANCivsnqXrgqjsnbQNCivsnqXqs4TsmKQNCivsnqXqt5zsobANCivsnqXquLDtmIQNCivsnqXrjIDshLENCivsnqXsmYTsmYQNCivsnqXsooXsmrANCivsnqXsnKTrqoUNCivsnqXrjZXsi50NCivsnqXsm5DtmLgNCivsnqXsooXtg5wNCivsnqXstpTquLANCivsnqXrjZXtmIQNCivsnqXrp5DsmrANCivsnqXsiJjqt5wNCivsnqXstpjsiJgNCivsnqXrj5nshJ0NCivsnqXqs4TrtIkNCivsnqXsg4HsmKQNCivsnqXrqoXssq0NCivsnqXrj5nsi50NCivsnqXrjIDqsJwNCivsnqXsm5DsiJgNCivsnqXqtJHsiKANCivsnqXrj5ntmLgNCivsnqXsg4HsobANCivsnqXsnqzquLgNCivsnqXsnbzsobANCivsnqXrj5ntmLgNCivsnqXqt7zsg50NCivsnqXsiJjsmKQNCivsnqXtlbTtmIQNCivsnqXrkZDqtowNCivsnqXrjIDqt7wNCivsnqXsmrDsl7ANCivsnqXqsr3slYQNCivsnqXrkZDshJ0NCivsnqXqs4TsoJANCivsnqXqs4Tso7wNCivsnqXsp4DsooUNCivsnqXrkZDsiJwNCivsnqXtlZzsmqkNCivsnqXsooXsmIENCivsnqXtlZzsmqkNCivsnqXrkZDsl7QNCivsnqXsg4HrtoQNCivsnqXrtInssqANCivsnqXsiJzshJ0NCivsnqXrkZDsnbUNCivsnqXsi5zsmrANCivsnqXshLHtmLgNCivsnqXsi5zsspwNCivsnqXrp4zsiJgNCivsnqXrs7XqtIANCivsnqXsiJjtmLgNCivsnqXsm5DsiJgNCivsnqXrqoXtmLgNCivsnqXtlZnsiJkNCivsnqXsnbztmLgNCivsnqXtg5zshJ0NCivsnqXrr7zsi50NCivsnqXrs5Htm4gNCivsnqXsmIHstpwNCivsnqXsmIHsobANCivsnqXrs5Hqta0NCivsnqXsoJXqtowNCivsnqXsoJXsm5ANCivsnqXsg4HstpwNCivsnqXrs5Hqt5wNCivsnqXsmIHsnqwNCivsnqUg7IiYDQor7J6l7J6s66eMDQor7J6l67OR64yADQor7J6l67aE7JqwDQor7J6l6rWQ6rWQDQor7J6l7JiB7KKFDQor7J6l67OR7IudDQor7J6l7KCV6re8DQor7J6l7ISg7ZWcDQor7J6l6riw7JqwDQor7J6l67OR7JikDQor7J6l7Iic7KeEDQor7J6l7YOc65OdDQor7J6l64qg7J6QDQor7J6l67OR7JqxDQor7J6l7IOB7IiZDQor7J6l6re87Je0DQor7J6l7KCV7IiYDQor7J6l67OR7Jq0DQor7J6l7IiY7JqwDQor7J6l64+Z7J6QDQor7J6l7Jq06rCRDQor7J6l67OR7KSADQor7J6l7Jqp7IudDQor7J6l7KeA66+8DQor7J6l6reA7JikDQor7J6l67OR7LKgDQor7J6l7Iq57Zi4DQor7J6l7ISd7JqwDQor7J6l7ISx7JqwDQor7J6l67OR7ZeMDQor7J6l7LC97YOcDQor7J6l7IOB7ISdDQor7J6l7ISx7YyUDQor7J6l67OR7Zi4DQor7J6l7KCV7ZmYDQor7J6l7J217IudDQor7J6l7KCQ7ISgDQor7J6l67OR7Zi4DQor7J6l6riI7KCVDQor7J6l7Iic6riwDQor7J6l66y07JqpDQor7J6l67O17KeEDQor7J6l7IOB7KeEDQor7J6l7LC97KGwDQor7J6l6rOE66+8DQor7J6l67SJ7J20DQor7J6l7KSR7IiYDQor7J6l7IOB6riwDQor7J6l7Iic7LKgDQor7J6l7IK867O1DQor7J6l66+47IiYDQor7J6l7Zic64yADQor7J6l7ISg6raMDQor7J6l7IK87IigDQor7J6l7KKF7KCVDQor7J6l7Iic7J6sDQor7J6l67OR7KGwDQor7J6l7IK87KGwDQor7J6l6riw7JilDQor7J6l7ZW07ISdDQor7J6l7KKF65OdDQor7J6l7IK87ZmYDQor7J6l7KeE7ZWZDQor7J6l6rWs7JuFDQor7J6l7KCV7IiYDQor7J6l7IOB6riwDQor7J6l7ISx7JqwDQor7J6l7KCV7JqpDQor7J6l7Lmg6ri4DQor7J6l7IOB6riwDQor7J6l7JuQ7LKcDQor7J6l7Jil7ISgDQor7J6l7ZiV7Z2sDQor7J6l7IOB6riwDQor7J6l67aE7ZmYDQor7J6l66eM7KGwDQor7J6l7J2Y7Z2sDQor7J6l7IOB64+EDQor7J6l7IK87ZiVDQor7J6l7J6Q642VDQor7J6l7Zi47LaYDQor7J6l7IOB66qFDQor7J6l6rec6riwDQor7J6l64+Z67KUDQor7J6l6rK97Zi4DQor7J6l7IOB67aADQor7J6l7J6s7LKgDQor7J6l7JiB7IStDQor7J6l7KKF6rOEDQor7J6l7IOB7IudDQor7J6l64+Z67CwDQor7J6l7Zi47JqwDQor7J6l7KO867aEDQor7J6l7IOB7ZWYDQor7J6l7LKg7ISgDQor7J6l642V7Zi4DQor7J6l7J247Z2sDQor7J6l7ISd6riIDQor7J6l66eM6ri4DQor7J6l67OR7J6sDQor7J6l67OR7IudDQor7J6l7ISd7JykDQor7J6l7KKF7IudDQor7J6l64+Z66WgDQor7J6l7KeE67KUDQor7J6l7ISd7KGwDQor7J6l7Iic7KO8DQor7J6l7ISx6rWQDQor7J6l7LKg7J6QDQor7J6l7ISg7IudDQor7J6l7JiB7ISgDQor7J6l7ZWZ642VDQor7J6lIOuegA0KK+yepeyEseq3nA0KK+yepeunkOyLnQ0KK+yepeqyveyEoA0KK+yepeyEuO2YuA0KK+yepeyEseq4sA0KK+yepe2DnOyIoA0KK+yepeuNleuPmQ0KK+yepeuzteq4sA0KK+yepeyEseybhQ0KK+yepeybkOyYgQ0KK+yepeywqOyDgQ0KK+yepeyaqeuPhA0KK+yepeyEseyhsA0KK+yepeyYgeunjA0KK+yepeyiheyWuA0KK+yepeyYge2RnA0KK+yepeyEse2ZmA0KK+yepeyiheyEnA0KK+yepeyasOyVlA0KK+yepeynhOyEoA0KK+yepeyEuOyXtA0KK+yepeyYgeyImQ0KK+yepeyEseyyoA0KK+yepeyVlOyLnQ0KK+yepeyEuOybkA0KK+yepeywveuztQ0KK+yepeuztOyEsQ0KK+yepe2YgeyEnQ0KK+yepeyEuOykkQ0KK+yepeuNleyyoA0KK+yepe2YleyXtA0KK+yepeyImOyLnQ0KK+yepeyGjOq2jA0KK+yepeuRkO2DnA0KK+yepeygkO2YhA0KK+yepeuzke2ZmA0KK+yepeyGjOyEoA0KK+yepeyEneuPmQ0KK+yepe2YhOqzpA0KK+yepeuzke2ZmA0KK+yepeyGjOyInA0KK+yepeuzkeyaqQ0KK+yepeyiheyXsA0KK+yepeuzke2YhA0KK+yepeyGjOy4oQ0KK+yepeygleynhA0KK+yepeyEse2PiQ0KK+yepeyiheyatA0KK+yepeyInOuqhQ0KK+yepeuqheybkA0KK+yepeyEse2ZmA0KK+yepeyyoOu2hA0KK+yepeyInOyEoA0KK+yepSDtmIQNCivsnqXstpjsp4QNCivsnqXsooXrj4QNCivsnqXsiJzsnpANCivsnqXtg5zrs7UNCivsnqXrs5HtlZgNCivsnqXrs7jqsr0NCivsnqXsiJztg5wNCivsnqXsmbjsiJgNCivsnqXsg4HsooUNCivsnqXshLHqs6QNCivsnqXsiJztkZwNCivsnqXslYjtl4wNCivsnqXrqoXsnbQNCivsnqXrtoTqsbQNCivsnqXsiJztnawNCivsnqXqsrjsmqkNCivsnqXqsJHsp4QNCivsnqXshJ3qtowNCivsnqXsirnroZ0NCivsnqXsnqzsnbQNCivsnqXssL3rjIANCivsnqXshJ3rrLgNCivsnqXsirnsmKUNCivsnqXsnZjtmZQNCivsnqXsooXtl4wNCivsnqXsnbjrtoQNCivsnqXsirntmLgNCivsnqXsoJXrr7gNCivsnqXsg4HsnoQNCivsnqXsiJzquLANCivsnqXsi5ztmJwNCivsnqXsoJXrs7UNCivsnqXstpjsi50NCivsnqXsooXrs7UNCivsnqXslYjsnoQNCivsnqXtmIHsmYQNCivsnqXtmITslbwNCivsnqXqtZDssqANCivsnqXsl7Dsi50NCivsnqXstpjquLgNCivsnqXtg5zqt6ANCivsnqXsmIHqt7wNCivsnqXsl7DtmZQNCivsnqXtmITtmIQNCivsnqXsnbztmLgNCivsnqXrr7jshJ0NCivsnqXsmIHqsJENCivsnqXspJHtmLgNCivsnqXslrXso7wNCivsnqXrj5nrs7UNCivsnqXsmIHqtowNCivsnqXrkZDssKwNCivsnqXsooXtm4gNCivsnqXsnKDsi50NCivsnqXsmIHquLANCivsnqXqt5zrjZUNCivsnqUg7IiYDQor7J6l67OR7Z2sDQor7J6l7JiB6ri4DQor7J6l66qF66CoDQor7J6l67OR67ORDQor7J6l7Iq57KGwDQor7J6l7JiB64+EDQor7J6l64+Z6rSADQor7J6l7KSR6raMDQor7J6l7ZWc6recDQor7J6l7JiB67O1DQor7J6l64KZ7Z2lDQor7J6l7Jm46recDQor7J6l7LCs6ri4DQor7J6l7JiB7IOBDQor7J6l7KKF7JqpDQor7J6l7ZiE7JiBDQor7J6l6rK966GADQor7J6l7JiB7IiYDQor7J6l7LC97J20DQor7J6l7Jik6riwDQor7J6l7KO87KGwDQor7J6l7JiB7J6RDQor7J6l64+E7IudDQor7J6l7JiB7LKcDQor7J6l67OR7ZiEDQor7J6l7JiB7KO8DQor7J6l7ISx7IudDQor7J6l7IOB64+EDQor7J6l7ZmN7IudDQor7J6l7JiB7ZmYDQor7J6l7JiB7ISxDQor7J6l7KCV7ZmYDQor7J6l7YOc66GdDQor7J6l7JiB7Z2sDQor7J6l7Jik7ISgDQor7J6l67OR7JuFDQor7J6l67OR7IudDQor7J6l7Jil7IOBDQor7J6l7IaM7J6QDQor7J6l66eM7Z2sDQor7J6l64+E6rK9DQor7J6l7Jil7IicDQor7J6l7JiB7Z2sDQor7J6l7KCV7Zi4DQor7J6l7Jyk6raMDQor7J6l7Jil7IicDQor7J6l7Iic7ZmYDQor7J6l7J6s7KeEDQor7J6l7KCV7J20DQor7J6l7Jm47J6QDQor7J6l7Lmg7Jq0DQor7J6l7KCV656ADQor7J6l7Jyg7JewDQor7J6l7Jqp7ZiEDQor7J6l7JiB7Zi4DQor7J6l7IiY7IiZDQor7J6l7Jqx7ISxDQor7J6l7Jqp7Zi4DQor7J6l7IiY6rWsDQor7J6l7Jes7KO8DQor7J6l7IOB7IiZDQor7J6l7Jqw7LacDQor7J6l7JuQ7J6sDQor7J6l7J247KKFDQor7J6l6riw6rSADQor7J6l7Jq067SJDQor7J6l7JiB7IudDQor7J6l7LKt7IiYDQor7J6l7IOB6rK9DQor7J6l7Jq07JqpDQor7J6l7Zi46rG0DQor7J6l64yA7ISdDQor7J6l64W47KCVDQor7J6l7Jq07JqpDQor7J6l7Iic7Je0DQor7J6l7ISg7Z2sDQor7J6l7ISg7ISdDQor7J6l7Jq07JqpDQor7J6l6riI67SJDQor7J6l7IOB7IStDQor7J6l7Jik6recDQor7J6l7JuQ7IudDQor7J6l7Ja47ZmYDQor7J6l7YOc7KO8DQor7J6l7KCQ642VDQor7J6l7JuQ7Je0DQor7J6l7J6l7LacDQor7J6l7ISg67SJDQor7J6l7IaM7KSADQor7J6l7JuQ7J6sDQor7J6l64+Z7IK8DQor7J6l642V7IicDQor7J6l67O07IiYDQor7J6l7JuU7IigDQor7J6l66eM7IOBDQor7J6l7ZWc7ZmYDQor7J6l7Iq57JqwDQor7J6l7Jyh66y4DQor7J6l7JuQ7Zi4DQor7J6l7ZWc7J28DQor7J6l7KCV7Zi4DQor7J6l7Jyk64+MDQor7J6l66qF66y4DQor7J6l7IiZ64+EDQor7J6l7J6s6rOkDQor7J6l7Jyo7J20DQor7J6l7LCs6re8DQor7J6l7LKt6rWtDQor7J6l6rec6ri4DQor7J6l7J2E6rK9DQor7J6l7ZeM6raMDQor7J6l7Jew7J21DQor7J6l7ISg7JqwDQor7J6l7J2E7ISxDQor7J6l6rec7IicDQor7J6l7KCQ7IiYDQor7J6l7ISx7IicDQor7J6l7J2E7IigDQor7J6l64+Z66y4DQor7J6l7YOc7ZiEDQor7J6l7JiB7IudDQor7J6l7J2E7IudDQor7J6l7Ja47Zi4DQor7J6l7YyQ64+ZDQor7J6l7KCV7JqpDQor7J6l7J217JqpDQor7J6l7IOB66eMDQor7J6l6rSR7IudDQor7J6l7KCV66eMDQor7J6l7J247ISdDQor7J6l7KeE7KGwDQor7J6l7J217YOcDQor7J6l7Z2s7KCVDQor7J6l7J247IudDQor7J6l66eM7J6sDQor7J6l7YOc7JqpDQor7J6l7IOB656ADQor7J6l7J247ZWZDQor7J6l7ZiE65+JDQor7J6l64W464yADQor7J6l7ZiE7YOcDQor7J6l7J6R7KeADQor7J6l7ZmN6rK9DQor7J6l7IOB7YOcDQor7J6l6reA7IudDQor7J6l7J6s66eMDQor7J6l65GQ64+ZDQor7J6l642V6riwDQor7J6l7ZiE64+MDQor7J6l7J6s66eMDQor7J6l7JiB66GdDQor7J6l67OR6raMDQor7J6l7Jyk7Zi4DQor7J6l7J6s7ISxDQor7J6l642V7JqpDQor7J6l7ISd7Zi4DQor7J6l7IK87J20DQor7J6l7J6s7IudDQor7J6l7KKF7Z2sDQor7J6l7KKF656ADQor7J6l7YyQ7JuFDQor7J6l7J6s7IudDQor7J6l7IyN6rSRDQor7J6l7Z2s7ZmNDQor7J6l7ISx7J20DQor7J6l7J6s7IudDQor7J6l7Z2s7ISxDQor7J6l7Jqw7JilDQor7J6l7Iic64KoDQor7J6l7J6s7ZWZDQor7J6l7ZiE7Zi4DQor7J6l7Jqp7ZmUDQor7J6l7J207ZqMDQor7J6l7KCQ64+EDQor7J6l64Ko7ZalDQor7J6l7J6s7IiZDQor7J6l7Jm47KGwDQor7J6l7KCQ7IiYDQor7J6l7KCV6raMDQor7J6l7YOc7YOcDQor7J6l6rSR64KoDQor7J6l7KCV7ISdDQor7J6l7IaM7ZmUDQor7J6l7Jew7KSRDQor7J6l7ISx642VDQor7J6l7KCV7ISdDQor7J6l7KCV6rWsDQor7J6l7Jyk6rWsDQor7J6l7KSA64+MDQor7J6l7KCV7IiZDQor7J6l66eQ66GcDQor7J6l7IiY7JqwDQor7J6l7Iic7LKcDQor7J6l7KCV7IicDQor7J6l7ISx7ZqMDQor7J6lIOq0kQ0KK+yepeyduOyEnQ0KK+yepeygleyInA0KK+yepeq4sO2dlA0KK+yepeyYge2YgQ0KK+yepeyerOq4uA0KK+yepeygleyaqQ0KK+yepeyEuOqyvQ0KK+yepeuCqOuhnQ0KK+yepeq3gOq4uA0KK+yepeygleyekA0KK+yepeyDgeybhQ0KK+yepeygleyEnA0KK+yepeychOqyvQ0KK+yepeygle2YuA0KK+yepeyYgeqwkQ0KK+yepe2XjOyLoA0KK+yepeuPmeyErQ0KK+yepeygle2drA0KK+yepeyImOyaqQ0KK+yepeykgOyImQ0KK+yepeycpOycoA0KK+yepeyiheqyvQ0KK+yepeyduOyKuQ0KK+yepeyDge2YuA0KK+yepeyerO2DnQ0KK+yepeyiheyLnQ0KK+yepe2DnOyjvA0KK+yepeyerOy2nA0KK+yepeyImO2WpQ0KK+yepeyihe2ZmA0KK+yepe2VtO2ZlA0KK+yepeunjOuylA0KK+yepeqxtOuMgA0KK+yepeykgOq4sA0KK+yepeq1reydvA0KK+yepeuzte2YuA0KK+yepe2DnOyekA0KK+yepeykgOuPmQ0KK+yepSDsnpANCivsnqXsoJXquLANCivsnqXqsr3siJwNCivsnqXspIDsg4ENCivsnqXqtJHtmZgNCivsnqXrr7jsiJkNCivsnqXsooXsi50NCivsnqXsp4DtmIQNCivsnqXsg4HstpwNCivsnqXquLDsiJwNCivsnqXsiJnrprwNCivsnqXsp4TtmLgNCivsnqXtlbTso7wNCivsnqXsoJXtmY0NCivsnqXsmIHqsJENCivsnqXssKjsi50NCivsnqXshozsnoQNCivsnqXsp4TtnawNCivsnqXtjJTtnawNCivsnqXssL3siJgNCivsnqXsnbjsmKUNCivsnqXsnqzsi50NCivsnqXquLDrsLENCivsnqXssL3smIENCivsnqXsmqnsmrANCivsnqXsooXso7wNCivsnqXshLHtlZwNCivsnqXssL3sobANCivsnqXspIDqs6QNCivsnqXsgrztmLgNCivsnqXsi6DshJ0NCivsnqXssL3tmZgNCivsnqXsiJjri4gNCivsnqXtmZjshK0NCivsnqXssL3tlZkNCivsnqXsspzsiJgNCivsnqXqt5zsiJgNCivsnqXsmqntg4ENCivsnqXrs7Xqt6ANCivsnqXssqDquLANCivsnqXtg5zsi50NCivsnqXssKjtnawNCivsnqXrrLTshowNCivsnqXssqDsi50NCivsnqXslpHsm5ANCivsnqXqt5zsiJkNCivsnqXsooXshK0NCivsnqXstqnqt6ANCivsnqXtl4zsoJUNCivsnqXtnazquLANCivsnqXsmqnshJ0NCivsnqXsuZjtmIENCivsnqXrqoXtlZkNCivsnqXqt7zspJENCivsnqXsmIHsiJgNCivsnqXtg5zqtowNCivsnqXsooXtg5wNCivsnqXshLHsmrANCivsnqXrs5HsobANCivsnqXtg5zqtowNCivsnqXsi53si50NCivsnqXssYTsnpANCivsnqXsp4Tsi50NCivsnqXtg5zrs7UNCivsnqXsnbzslaANCivsnqXrs5HslaANCivsnqXsnYDtmLgNCivsnqXtg5zshLENCivsnqXshKDqt7wNCivsnqXssYTsnpANCivsnqXsiJzsg4ENCivsnqXtg5ztnawNCivsnqXsoJXshJ0NCivsnqXsoJXspIANCivsnqXsoJXsobANCivsnqXtjJDrj4wNCivsnqXsiJzsobANCivsnqXsmqnsiJgNCivsnqXquIjsuZgNCivsnqXtlZnsiJgNCivsnqXsiJnsi50NCivsnqXsmqntg5wNCivsnqXtlZjtmZgNCivsnqXtlZnsnbQNCivsnqXtg5zsmIENCivsnqXsg4Hro6ENCivsnqXrp4ztnawNCivsnqXtlZnsobANCivsnqXsnqzsiKANCivsnqXsmrDsnbQNCivsnqXsnqzsl7ANCivsnqXtlbTspIANCivsnqXssYTrjZUNCivsnqXsp4TqtowNCivsnqXsoJXsl7QNCivsnqXtmITsiJkNCivsnqXqtJHsiJkNCivsnqXtlbTri6wNCivsnqXquLDrj4QNCivsnqXtmITsi50NCivsnqXsp4TtmZgNCivsnqXtl4zshKANCivsnqXsirnsmIENCivsnqXtmJXtnawNCivsnqXtmITtmZgNCivsnqXqtZDtnawNCivsnqXquLDsi50NCivsnqXtmLjsiJwNCivsnqXrp4zsmrENCivsnqXrs5HtmLgNCivsnqUg7ZmYDQor7J6l7ZmN7IudDQor7J6l67SJ6recDQor7J6l7YOc7Zy0DQor7J6l6riw7IStDQor7J6l7ZmN7KeEDQor7J6l7J6s7IukDQor7J6l7ZWc6recDQor7J6l7JiB7JiBDQor7J6l7ZqM7IOBDQor7J6l7JiB67KUDQor7J6l64yA64+ZDQor7J6l64yA7Zi4DQor7J6l7ZuI7IudDQor7J6l7J2464KoDQor7J6l7YOc7JqwDQor7J6l65GQ7KSRDQor7J6l7ZyY7KeADQor7J6l7Jew67O0DQor7J6l7J6s7IudDQor7J6l7KCQ7ISgDQor7J6l7Z2s6recDQor7J6l7KCQ7JqwDQor7J6l66qF67O0DQor7J6l6rK97KGwDQor7J6l7Z2s7J6QDQor7J6l7Jik7KO8DQor7J6l6rO17JuQDQor7J6l64KZ7KCVDQor7J6l7Z2s7LKgDQor7J6l7J6s6recDQor7J6l7KSA7JWUDQor7J6l7Jil7IiYDQor7J6l7Z2s7ZiEDQor7J6l7IiY7Zi4DQor7J6l7ZeM7KeEDQor7J6l7JiB7ZiEDQor7KCE6rCR642VDQor7KCE7ZiV67ORDQor7KCE6riI7ISgDQor7KCE7Iic7J21DQor7KCE6rCR642VDQor7KCE7JuQ67SJDQor7KCE6ri47ISdDQor7KCE7Jew6raMDQor7KCE6rCR7IudDQor7KCE7JiB7JuQDQor7KCE7J247KO8DQor7KCE7KKF7LKgDQor7KCE6rCR7KSADQor7KCE7J287IicDQor7KCE6rSR642VDQor7KCE7KKF7ZmYDQor7KCE6rCV7IiYDQor7KCE7ZWY7ZmUDQor7KCE7Z2s7JilDQor7KCE64yA7JuQDQor7KCE6rCV7J28DQor7KCE6rCR7JiBDQor7KCE7J247ZalDQor7KCE7ZmN7YOdDQor7KCE6rCV7Zi4DQor7KCE6ri47LKgDQor7KCE7ZWE67SJDQor7KCE7ISx64KoDQor7KCE6rK966CoDQor7KCE64us7KO8DQor7KCE7YOc7JuFDQor7KCE7IK86rK9DQor7KCE6rK967CwDQor7KCE642V7IS4DQor7KCE6ri47ZmUDQor7KCE7Jqp7IicDQor7KCE6rK967CwDQor7KCE64Kc7JilDQor7KCE7YOc6riIDQor7KCE7Iug7JiBDQor7KCE6rK97IudDQor7KCE7IS47ISgDQor7KCE7KCQ7LKgDQor7KCE7KCV7ISxDQor7KCE6rK97IudDQor7KCE7ZmU7IigDQor7KCE6rWs7LKgDQor7KCE7ISx6rK9DQor7KCE6rK97JWgDQor7KCE7YOc7LKgDQor7KCE7KKF7KGwDQor7KCE7IOB66OhDQor7KCE6rK97YOcDQor7KCE7Iug7Zi4DQor7KCE7Jqp6raMDQor7KCE7ISx7LKgDQor7KCE6rK97ZGcDQor7KCE7J6s7IiYDQor7KCE7J2R7Zi4DQor7KCE6rK96raMDQor7KCE6rK97Zi4DQor7KCE7J6s7ZWZDQor7KCE7Iic7JilDQor7KCE7Jik7KSADQor7KCE6rK97Z2sDQor7KCE7Z2s67SJDQor7KCE7KKF6rSRDQor7KCE64yA7IOBDQor7KCE6rOE7IicDQor7KCE66qF7IudDQor7KCE64+Z642VDQor7KCE7YOd7J6sDQor7KCE6rOE7IigDQor7KCE65GQ6riwDQor7KCE7ISx7LKgDQor7KCE7KO87JiBDQor7KCE6rOh67aEDQor7KCE67aA64+ZDQor7KCE7J6s7KO8DQor7KCE7ZiE7IigDQor7KCE6rO17ISdDQor7KCE6rWQ7J6EDQor7KCE7IaM7JqwDQor7KCE66eQ67aEDQor7KCE6rSR7IudDQor7KCE6riw7KSADQor7KCE7ZW07IiYDQor7KCE7IOB7JykDQor7KCE6rec7ISxDQor7KCE7JiB6riwDQor7KCE7ZmN7JuQDQor7KCE7KCV7JykDQor7KCE6rec7LKgDQor7KCE6riw7LKgDQor7KCE7Lmg7LKcDQor7KCE6rec7J20DQor7KCE6re87IudDQor7KCE7KCV7JilDQor7KCE7Jqp7JqxDQor7KCE7ISx7JiBDQor7KCE6riw67KUDQor7KCE6riw7Zi4DQor7KCE7JiB7JqwDQor7KCE6rec66qFDQor7KCE6riw7ISdDQor7KCE6rG07IK8DQor7KCE66qF7JilDQor7KCE7ISx7J6EDQor7KCE6riw7ISdDQor7KCE66+87IigDQor7KCE7ISd6rWtDQor7KCE64+E7KKFDQor7KCE6riw7KSADQor7KCE7KCV7IiYDQor7KCE6rec7J6QDQor7KCE7JiB642VDQor7KCE6riw7LCsDQor7KCE7KO87ZWcDQor7KCE7JiB7ZalDQor7KCE67OR6ri4DQor7KCE6riw7LacDQor7KCE7IiY7Zi4DQor7KCE7ZWc64WVDQor7KCE7J6s6riwDQor7KCE6riw7ZiEDQor7KCE7J6E7Jq0DQor7KCEIOuegA0KK+yghOuzke2ZlA0KK+yghOq4sO2ZjQ0KK+yghOyaqeq1rQ0KK+yghOygkO2YhA0KK+yghO2DnOq4sA0KK+yghOq4sO2ZjQ0KK+yghOyjvOyekA0KK+yghOyerOyYgQ0KK+yghOuCqO2ZmA0KK+yghOq4sO2ZmA0KK+yghOyYgeykgA0KK+yghO2YhOyXtA0KK+yghOu0ieqyvQ0KK+yghOq4uOyXsA0KK+yghOyerOyImQ0KK+yghOuPmeyYpQ0KK+yghOykgOyImQ0KK+yghOuLrOyaqQ0KK+yghOyYpeuTnQ0KK+yghOyEoO2DgQ0KK+yghOyxhOyekA0KK+yghOuMgOuRkA0KK+yghOuqheyVhQ0KK+yghOyYgeyYgQ0KK+yghOyduO2YuA0KK+yghOuMgOyLnQ0KK+yghOydmOq3nA0KK+yghOyiheyWkQ0KK+yghOygleydvA0KK+yghOuMgOyLnQ0KK+yghOyDgeuPmQ0KK+yghO2VtOyXhQ0KK+yghOyYpOyLnQ0KK+yghOunkOyXsA0KK+yghO2XjOyyoA0KK+yghOyerO2ZmA0KK+yghOynhOq4sA0KK+yghOuqheyEnQ0KK+yghOuLrOyImQ0KK+yghOyInOyasA0KK+yghOydtOuPjA0KK+yghOuqheyImA0KK+yghOqwleyXsA0KK+yghOynhO2YhA0KK+yghOuPmeyekA0KK+yghOuqhe2YuA0KK+yghOuzkeuNlQ0KK+yghOyEneyImA0KK+yghOyKueynhA0KK+yghOusuOyLnQ0KK+yghOyYgeusuA0KK+yghOywveqwlQ0KK+yghOuzkeyhsA0KK+yghOusuOy2nA0KK+yghOyiheydtA0KK+yghOyWkeqzpA0KK+yghOykke2ZjQ0KK+yghOusuO2PiQ0KK+yghOyynOuPmQ0KK+yghOyEuOq4iA0KK+yghOq0keyyoA0KK+yghOusuO2YuA0KK+yghOyihe2DnQ0KK+yghOyngOuNlQ0KK+yghOyDge2YuA0KK+yghOuvuOynhA0KK+yghOyEseyXtA0KK+yghOynhO2ZmA0KK+yghO2ZjeuPmQ0KK+yghOuzkeq4sA0KK+yghOyekOuPmQ0KK+yghOyInOyXsA0KK+yghOygleyLnQ0KK+yghOuzkeq4uA0KK+yghOyImOyEsQ0KK+yghOybkOyhsA0KK+yghO2VmOyehA0KK+yghOuzkeuLrA0KK+yghOybkOy5oA0KK+yghOyWuOyInA0KK+yghOygleyImA0KK+yghOuzkeuMgA0KK+yghOy2qeyImQ0KK+yghO2MkOyEoA0KK+yghOuzkeyEnQ0KK+yghOuzkeuRkA0KK+yghOuRkO2YhA0KK+yghOywrOq1rA0KK+yghOq3nOykgA0KK+yghOuzkeumvQ0KK+yghOydgOyEsQ0KK+yghOuLrOuztQ0KK+yghOyYgeywrA0KK+yghOuzkeuqqQ0KK+yghOyyoOuNlQ0KK+yghOuzkeuwsA0KK+yghOyEseyasA0KK+yghOuzkeustA0KK+yghOyEse2DnA0KK+yghOyImOyerA0KK+yghOyDgeyImA0KK+yghOuzkeyEnQ0KK+yghOuylOyyrQ0KK+yghOyDgeyynA0KK+yghOyaqe2ajA0KK+yghOuzkeyErQ0KK+yghOuPmeyaqQ0KK+yghOyInOyyoA0KK+yghOyDgeyInA0KK+yghOuzkeyImA0KK+yghOq0keyImA0KK+yghOyaqe2DnA0KK+yghO2PieyYgQ0KK+yghOuzkeyInA0KK+yghOustO2YhA0KK+yghOyInOumhA0KK+yghCDshKANCivsoITrs5HsiJwNCivsoITsirntlYQNCivsoITsnqzrr7wNCivsoITrjIDsg4ENCivsoITrs5Hsi50NCivsoITqtazrp4wNCivsoITssL3shJ0NCivsoITsmIHtlYQNCivsoITrs5HsmKUNCivsoITsiKDsobANCivsoITrr7jshJ0NCivsoITshLHtmY0NCivsoITrs5HsmKUNCivsoITrjZXsobANCivsoITrs7Xsi50NCivsoITri6Tqt5wNCivsoITrs5HsmqkNCivsoITrs5Hqt5wNCivsoITsiJzsl7ANCivsoITtlZzrnb0NCivsoITrs5HsmqkNCivsoITsmKXrjZUNCivsoITsoJDsmKQNCivsoITrs5Hrj5kNCivsoITrs5HsmrENCivsoITsiJzsoJwNCivsoITsnKTtjJQNCivsoITsmIHshJ0NCivsoITrs5Hsm5ANCivsoITtg5zsiJkNCivsoITslrXsiJgNCivsoITshLHqt5wNCivsoITrs5Hsm5ANCivsoITquIjtmLgNCivsoITsmrDtnawNCivsoITsnoTtm4gNCivsoITrs5HsnoUNCivsoITrjIDsp4QNCivsoITtmJXtmLgNCivsoITsg4HslpENCivsoITrs5Hso7wNCivsoITsl7DquLANCivsoITquLDtlqUNCivsoITsoJXtmZgNCivsoITrs5HspIANCivsoITqsr3shLENCivsoITrtInsiJgNCivsoITsoJXsl7ANCivsoITrs5HssL0NCivsoITsiJzsmKUNCivsoITrjIDrs7UNCivsoITsmqntmZQNCivsoITrs5HsspwNCivsoITshJ3rrLQNCivsoITsnbzsnZgNCivsoITtlZjrj4QNCivsoITrs5HssqANCivsoITtjJDqt6ANCivsoITrtoDrtIkNCivsoITtmY3smIENCivsoITrs5Htg4ENCivsoITsmIHsmqkNCivsoITsoJXrp4wNCivsoITtg5ztnawNCivsoITrs5Htg5wNCivsoITtjJDsm4UNCivsoITssqDsiJgNCivsoITsoJXtlqUNCivsoITrs5Htg50NCivsoITrtInsnbwNCivsoITtg5zsiJwNCivsoITsvozsi50NCivsoITrs5Htg50NCivsoITsmIHsobANCivsoITsl7DroZ0NCivsoITshLHrs7UNCivsoITrs5HtmIENCivsoITsnbzsmrANCivsoITqtJHsi50NCivsoITtg5zqt5wNCivsoITrs5HtmLgNCivsoITtl4ztmLgNCivsoITtg5zquLgNCivsoITsnKTrgqgNCivsoITrs5HtmZQNCivsoITtg5ztj4kNCivsoITtnazsnpANCivsoITsooXsnbQNCivsoITrs5HtmZgNCivsoITsooXspIANCivsoITrj5nsnpANCivsoITtlbTrsLANCivsoITrs5HtnLQNCivsoITqtJHtm4gNCivsoITsg4HquLANCivsoITqsJXsl7ANCivsoITrs7TsiJgNCivsoITrj5nsi50NCivsoITtmITsiJwNCivsoITsnbjssqANCivsoITrtInqtowNCivsoITsoJDsiJkNCivsoITsmqnshJ0NCivsoITsnqztlZkNCivsoITrtInsiJgNCivsoITqsJXrs7QNCivsoITtmITslZQNCivsoITsooXsi50NCivsoITrtoTsiKANCivsoITsiJzrgqgNCivsoITrqoXrk50NCivsoITsiJjtnawNCivsoITsgqzqsr0NCivsoITqsr3tnawNCivsoITspIDtmY0NCivsoITrjIDshK0NCivsoITsgrzrjZUNCivsoITsmqntmLgNCivsoITspIDsnbQNCivsoITsp4TsmqkNCivsoITsgrzsiJgNCivsoITsg4Hrs7UNCivsoITsg4HrjIANCivsoITsm5DsmqkNCivsoITsgrzstpwNCivsoITssq3tmLgNCivsoITsmqnsobANCivsoITrqoXquLgNCivsoITsgrztmIQNCivsoITsp4Tsm5ANCivsoITrj4Tsg4ENCivsoITtg5ztmLgNCivsoITsgrztmIQNCivsoITtg5zsobANCivsoITsmrDqt5wNCivsoITtmITtnawNCivsoITsg4Hri6gNCivsoITsnqXsiJgNCivsoITrqoXtg50NCivsoITsmKXsm4UNCivsoITsg4Hrpr0NCivsoITsg4Hqsr0NCivsoITshLHsnbwNCivsoITsm5TsiJkNCivsoITsg4HrtIkNCivsoITrs5Hrp4wNCivsoITshKDrs7UNCivsoITsg4HroKgNCivsoITsg4HsmrANCivsoITtlbTshLENCivsoITsp4DsnpANCivsoITsooXsnbwNCivsoITsg4HsmrQNCivsoITqtozsg4ENCivsoITtg5ztnawNCivsoITsoJXqsbQNCivsoITsg4HsmrQNCivsoITsiJjsmrANCivsoITsg4HsmIENCivsoITso7zsp4QNCivsoITsg4HsobANCivsoITssL3spJENCivsoITqt4DsnpANCivsoITsiJjsiJwNCivsoITsg4HspIANCivsoITrk53qsJENCivsoITshJ3ssqANCivsoITqtZDtnLQNCivsoITsg4HssqANCivsoITsg4HtmIQNCivsoITslrjshKANCivsoITsm5DtmLgNCivsoITsg4HtmZgNCivsoITrr7jtmLgNCivsoITsnKTsmrENCivsoITshLHsiJgNCivsoITshJ3rqqgNCivsoITsiJjquLANCivsoITsl7TqtIANCivsoITsg4Hsl7QNCivsoITshJ3shLENCivsoITrjZXslaANCivsoITsmqnsnbQNCivsoITshLHsi50NCivsoITshJ3so7wNCivsoITsnbzqtowNCivsoITssL3tg5wNCivsoITsnYDsl7QNCivsoITshKDtmIQNCivsoITqt5zsi50NCivsoITtg5ztmZgNCivsoITsspztmIQNCivsoITshLHqs6QNCivsoITrjIDruYgNCivsoITsooXtg5wNCivsoITrj5ntmIQNCivsoITshLHrsLANCivsoITsmIHsmYQNCivsoITsoJXsiJgNCivsoITsoJXsmqkNCivsoITshLHrsLANCivsoITqsr3sm5ANCivsoIQg7IiYDQor7KCE6riw7Je0DQor7KCE7ISx7JqpDQor7KCE66m07KCVDQor7KCE7IOB7ZiEDQor7KCE7Z2l7KO8DQor7KCE7ISx7Z2sDQor7KCE7Jqp7IStDQor7KCE7IaM7KeBDQor7KCE7ZW07KeEDQor7KCE7IaM7JewDQor7KCE67O17J20DQor7KCE7YOc7IudDQor7KCE7IiY642VDQor7KCE7IaM7JiBDQor7KCE7J6s7JilDQor7KCE7ZW06riwDQor7KCE6re87ZmYDQor7KCE7IiY6re8DQor7KCE7ISg7J6QDQor7KCE7Jyk66qFDQor7KCE7J287JuQDQor7KCE7IiY65OdDQor7KCE7JiB7ZmYDQor7KCE7Zi47ISxDQor7KCE7IiY66qFDQor7KCE7IiY7IudDQor7KCE7J6s7IiZDQor7KCE66y07IiYDQor7KCE7Z2s7ISgDQor7KCE7IiY7JqpDQor7KCE6rK97ZWcDQor7KCE66y47J6QDQor7KCE66qF67O1DQor7KCE7IiY7ZWZDQor7KCE7IS46ri4DQor7KCE7IiY67mIDQor7KCE7KCV66a9DQor7KCE7IiY7ZWZDQor7KCE642V67SJDQor7KCE7J2A7J6EDQor7KCE7KCV7LKgDQor7KCE7IiY7ZiEDQor7KCE7IOB7YOcDQor7KCE7J247ZiEDQor7KCE7Jqx7Zi4DQor7KCE7IiY7ZmYDQor7KCE7IaM7ISgDQor7KCE7KSR7LKcDQor7KCE7IK87J6lDQor7KCE7IiY7ZmYDQor7KCE7J6l7IudDQor7KCE67OR7Zi4DQor7KCE7KKF7ISxDQor7KCE7IiZ7J6QDQor7KCE7KKF7ZmYDQor7KCE7JaR64+ZDQor7KCE7J6s6rOkDQor7KCE7Iic64uoDQor7KCE6rK967aADQor7KCE66y47JqpDQor7KCE7Jqw7YOcDQor7KCE7Iic65OdDQor7KCE6rWt7IiYDQor7KCE7IiY7J6lDQor7KCE7KSA66asDQor7KCE7Iic7JewDQor7KCE64+Z7IiYDQor7KCE6rCV7JiBDQor7KCE7IyN7IiZDQor7KCE7Iic7J6QDQor7KCE7YOc7JqpDQor7KCE67OR64+MDQor7KCE7KCV7KeEDQor7KCE7Iic7LGEDQor7KCE7LaY6rWsDQor7KCE7IK87ZWcDQor7KCE7YyQ7IudDQor7KCE7IyN6re8DQor7KCE7JiB7IiZDQor7KCE6rSR7Ja4DQor7KCE7IiY6riwDQor7KCE7IyN7IiYDQor7KCE7ZW07JqpDQor7KCE7LC97JuQDQor7KCE67OR6529DQor7KCE7Jew7J20DQor7KCE7Iq57IudDQor7KCE7IiY7YOcDQor7KCE7JiB7ZiEDQor7KCE7JiB6regDQor7KCE7J6s7Zi4DQor7KCE7J286rWsDQor7KCE7LmY7IOBDQor7KCE7JiB6regDQor7KCE7LCs6regDQor7KCE6rK9642VDQor7KCE7KO87JykDQor7KCE7JiB6riwDQor7KCE67O16ri4DQor7KCE7YOc6raMDQor7KCE6riw7LKcDQor7KCE7JiB642VDQor7KCE7KCQ7JaRDQor7KCE6riw67SJDQor7KCE6rSR7IiZDQor7KCE7JiB66GdDQor7KCE7IiY7IudDQor7KCE7KCV6re8DQor7KCE7LCs7JuQDQor7KCE7JiB7IK8DQor7KCE7JuQ7Zi4DQor7KCE7KeA7LaYDQor7KCE7JuQ7JilDQor7KCE7JiB7ISdDQor7KCE7YOc656YDQor7KCE7Jqp7ZWYDQor7KCE7LKg7YyUDQor7KCE7JiB7JqwDQor7KCE7ZyY7IudDQor7KCE7LC96rOkDQor7KCE64yA6re5DQor7KCE7JiB7J6QDQor7KCE7JiB7JewDQor7KCE7Jyk7IiYDQor7KCE7KKF7KCVDQor7KCE7JiB7KKFDQor7KCE7IiY7IudDQor7KCE7Lap7ISgDQor7KCE7YOc7Z2sDQor7KCE7JiB7LGEDQor7KCE7ZiE7Zi4DQor7KCE7YOc67aADQor7KCE6rSR7KeEDQor7KCE7JiB7YOBDQor7KCE7ZeM6raMDQor7KCE7ISd7IiZDQor7KCE64+Z66y4DQor7KCE7JiB7YyQDQor7KCE7IK87Zi4DQor7KCE7ZiV7LaYDQor7KCE7KCV7IiZDQor7KCE7JiB7Zi4DQor7KCE7J6s7Jq0DQor7KCE7KCV6rWsDQor7KCE7JiB7ZicDQor7KCE7JiB7ZmUDQor7KCE7Jyk7ISdDQor7KCE7KSR7ISdDQor7KCE7LaU7ISdDQor7KCE7JiB7ZmUDQor7KCE7KKF7LKgDQor7KCE64yA6raMDQor7KCE6rK97JiBDQor7KCE7JiB7ZmYDQor7KCE66eM7IudDQor7KCE64+Z7LKgDQor7KCE7YyQ7ZuIDQor7KCE7JiB7Z2sDQor7KCE7LaY7ISdDQor7KCE7J6l64KoDQor7KCE6rK964+ZDQor7KCE7Jik7LacDQor7KCE66eM7J6QDQor7KCE7IaM6riwDQor7KCE7IOB6riIDQor7KCE7Jil67SJDQor7KCE7ISd67CwDQor7KCE642V7J6QDQor7KCE7Iq57LKgDQor7KCE7Jil7ISxDQor7KCE7KKF7JykDQor7KCE7KO87KO8DQor7KCE6rCV7KO8DQor7KCE7Jil7IicDQor7KCE7IiY642VDQor7KCE7J6s7IicDQor7KCE7IOB7J6EDQor7KCE7JmE7ISdDQor7KCE67OR7KeEDQor7KCE7ISd7IicDQor7KCE7J6s7Z2sDQor7KCE7Jm47LacDQor7KCE7Jqp6regDQor7KCE66+47ISgDQor7KCE6riw7JqwDQor7KCE7Jqp6riwDQor7KCE7IiY7JilDQor7KCE7JiB7ISxDQor7KCE6riw64+MDQor7KCE7Jqp7ISdDQor7KCE6rec6recDQor7KCE642V7ISxDQor7KCE7ISx64+ZDQor7KCE7Jqp7IiYDQor7KCE66qF7LKgDQor7KCE7KCV7ISdDQor7KCE7KCQ65OdDQor7KCE7Jqp7KCcDQor7KCE6rK97IiYDQor7KCE67OR7ZWcDQor7KCE7JiB7KKFDQor7KCE7Jqp7LGEDQor7KCE7ISx7ISgDQor7KCE7KO86recDQor7KCE7YOc7IiZDQor7KCE7Jqp7Zi4DQor7KCE7KCV67O1DQor7KCE67OR7Zy0DQor7KCE66qF7ISgDQor7KCE7Jqp7ZqoDQor7KCE642V7Z2sDQor7KCE7KeE7JqpDQor7KCE66y06rG0DQor7KCE7Jqp7Z2sDQor7KCE7J6E67O1DQor7KCE7LC97J6sDQor7KCE7JiB7JuQDQor7KCE7Jqw7IiYDQor7KCE7KKF64yADQor7KCE7ISd7ZmYDQor7KCE642V7JiBDQor7KCE7Jqw7KeEDQor7KCE7JiB7KSADQor7KCE67KU7JiBDQor7KCE7JiB7IicDQor7KCE7Jqx64KoDQor7KCE7Jyg7IicDQor7KCE7YOc7IicDQor7KCE7J287Je0DQor7KCE7JuQ6ri4DQor7KCE7YOc7Zi4DQor7KCE7LC97J28DQor7KCE65GQ7ZicDQor7KCE7JuQ7ISdDQor7KCE7ZW07ZmYDQor7KCE7Jqp7LKgDQor7KCE64yA7Z2sDQor7KCE7JuQ7KKFDQor7KCE7IiY7IicDQor7KCE7IOB7IicDQor7KCE67O17IiYDQor7KCE7JuQ7KSRDQor7KCE7IiY67aEDQor7KCE7JiB67O0DQor7KCE7IiY7J28DQor7KCE7Jyk642VDQor7KCE7LaY7YOcDQor7KCE7ISx7ZmYDQor7KCE67O07LC9DQor7KCE7Jyk7IOBDQor7KCE7J2A7Zi4DQor7KCE7ZmU7KCVDQor7KCE67OR6rSRDQor7KCE7Jyk7LacDQor7KCE6rK97ISgDQor7KCE7J287ZmYDQor7KCE7KSA7J6QDQor7KCE7Jyk7YOcDQor7KCE7ZiE7IiYDQor7KCE7LaY7J6QDQor7KCE66eM7Zi4DQor7KCE7J2A6re8DQor7KCE66eQ66y4DQor7KCE7Jyk7ZmYDQor7KCE7Jyh6riwDQor7KCE7J2E66qoDQor7KCE7Jqp64KoDQor7KCE7JuU7JqpDQor7KCE7Kad7KeEDQor7KCE7J2E7IOBDQor7KCE67SJ7LacDQor7KCE7ZyY7Je0DQor7KCE7JiB6recDQor7KCE7J2E7IicDQor7KCE7ZWY7Je0DQor7KCE7LaY6raMDQor7KCE7J287ZiEDQor7KCE7J2Y7KSADQor7KCE7Jyg7YOdDQor7KCE67SJ7KO8DQor7KCE64Ko6riwDQor7KCE7J6l7IiYDQor7KCE7JWI7Zi4DQor7KCE6riw67KUDQor7KCE6rec7IS4DQor7KCE7J6l7IudDQor7KCE6raM7JqwDQor7KCE7KeE7ZmYDQor7KCE6rec7ZmYDQor7KCE7J6s67SJDQor7KCE7IOB7LKgDQor7KCE64+Z6ri4DQor7KCE6riw7IiZDQor7KCE7J6s7ISxDQor7KCE7Jyk67SJDQor7KCE7Z2s7ISgDQor7KCE66qF6regDQor7KCE7J6s7IudDQor7KCE7Zi46rWsDQor7KCE6reA6regDQor7KCE6rK97ZiEDQor7KCE7J6s7J21DQor7KCE64+Z7IudDQor7KCE7YOc7LKgDQor7KCE7KeA6re8DQor7KCE7J6s7LaYDQor7KCE7ZiE7IiYDQor7KCE7ZmN7IiYDQor7KCE7Jqp7IicDQor7KCE7J6s7ZiEDQor7KCE7JiB7IudDQor7KCE65GQ7KeEDQor7KCE6rWQ64+EDQor7KCE7J6s7ZiEDQor7KCE7IiY7ZmYDQor7KCE642V7Zi4DQor7KCE7Z2l6rK9DQor7KCE7J6s7ZiEDQor7KCE7JiB7Zi4DQor7KCE7IOB7JiBDQor7KCE67OR6rOkDQor7KCE7J6s7ZiEDQor7KCE7Zqo7ZmYDQor7KCE64yA7Zi4DQor7KCE7JuQ7ZeMDQor7KCE7J6s7Zi4DQor7KCE7Zqo7KeEDQor7KCE7Jqp7JqpDQor7KCE7Jqp7ISdDQor7KCE7KCQ7IOdDQor7KCE7LCo6re8DQor7KCE7Jyk7Z2sDQor7KCE7JiB7IiZDQor7KCE7KCQ7ISxDQor7KCE7IOB7JqwDQor7KCE7J2864+ZDQor7KCE7KSA7YOcDQor7KCE7KCV6recDQor7KCE7KKF6rWtDQor7KCE7ISx6riwDQor7KCE7JiB7KSADQor7KCE7KCV66eMDQor7KCE7Zi47JiBDQor7KCE66eM7JikDQor7KCE6rK96raMDQor7KCE7KCV7IiYDQor7KCE7ZiE7IiYDQor7KCE66eQ7ISdDQor7KCE7JiB7KSADQor7KCE7KCV7JqwDQor7KCE7JiB7IicDQor7KCE7JuQ7JilDQor7KCE64us7IiYDQor7KCE7KCV7J6QDQor7KCE7LaY64yADQor7KCE7Jm47ZqMDQor7KCE7KeE642VDQor7KCE7KCV7LSMDQor7KCE7Jyk6riwDQor7KCE6riw7J20DQor7KCE7ZWE7Zi4DQor7KCE7KCV7YOcDQor7KCE7J287JuQDQor7KCE7J2A66qFDQor7KCE7ISx7ZGcDQor7KCE7KCV7ZalDQor7KCE7KSA67CcDQor7KCE7YOc7JiBDQor7KCE7ISx7JqpDQor7KCE7KCV7ZiEDQor7KCE7ZmN7J6sDQor7KCE7LKg7KCVDQor7KCE7IK87ISgDQor7KCE7KCc7ZiEDQor7KCE7KCQ7JuQDQor7KCE64+Z7J6sDQor7KCE7IOB7JewDQor7KCE7KKF6re8DQor7KCE7IiY7ZWZDQor7KCE7Zic7IudDQor7KCE64+E7JqwDQor7KCE7KKF65GQDQor7KCE7JWU6recDQor7KCE7ZeM7Jq0DQor7KCE6rG07Zi4DQor7KCE7KKF65OdDQor7KCE6riw7JuQDQor7KCE7YOc7IicDQor7KCE7Jyk7IigDQor7KCE7KKF7ISdDQor7KCE64us6529DQor7KCE7ZWc7IiZDQor7KCE7KKF7IiYDQor7KCE7KKF7IiYDQor7KCE7IOB7IiYDQor7KCE7Zi464u0DQor7KCE7KeE6rWtDQor7KCE7KKF7JesDQor7KCE7YyQ7IicDQor7KCE7IK87JikDQor7KCE7Kad7Jq0DQor7KCE7KKF7ZiEDQor7KCE6rCR7YOBDQor7KCE66eM7Zi4DQor7KCE7J6l7Jq0DQor7KCE7KKF7Zi4DQor7KCE7Jik7IOBDQor7KCE7KCV7LaYDQor7KCE7J6l7ZWYDQor7KCE7KO864+EDQor7KCE7KCV642VDQor7KCE7YOB6re8DQor7KCE7KeE7Z2sDQor7KCE7KO87J20DQor7KCE7LKc7KCEDQor7KCEIOuqqA0KK+yghOyKueydgA0KK+yghOykgOuPhA0KK+yghOycpO2YuA0KK+yghO2ZjeyjvA0KK+yghOyEoOyYgQ0KK+yghOykgO2VtA0KK+yghOq4sOq4sA0KK+yghOuPmeqyvQ0KK+yghOyYgeyZuA0KK+yghOykgO2drA0KK+yghOusuOybkA0KK+yghOq4iOqyvQ0KK+yghOyYgeyImA0KK+yghOywqOuNlQ0KK+yghOygleyErQ0KK+yghOuPmeyEoA0KK+yghOyiheqyvQ0KK+yghOywqOy2nA0KK+yghOqyveuLrA0KK+yghOywqOq3nA0KK+yghOqyve2DnQ0KK+yghOywveq3nA0KK+yghOygleydvA0KK+yghOywveyYpQ0KK+yghOyEoOqzpA0KK+yghOywveq3vA0KK+yghOyZhOq3nA0KK+yghOu0ieyEoA0KK+yghOygle2YuA0KK+yghOywveyImA0KK+yghOq2geyLnQ0KK+yghO2DnOq1rA0KK+yghOygleqyvQ0KK+yghOywveyImA0KK+yghOyEseyInA0KK+yghOuzkeydvA0KK+yghOq4iO2YhA0KK+yghOy2mOq1rQ0KK+yghOygleq1rA0KK+yghO2ZjeuCqA0KK+yghOyYge2ZlA0KK+yghOy2mOudvA0KK+yghOydkeyaqQ0KK+yghOyduOyImA0KK+yghOyYgeq4sA0KK+yghOy2mOuwsA0KK+yghOycoOyaqQ0KK+yghO2DnOyImA0KK+yghOu0ieydgA0KK+yghOy2mOybhQ0KK+yghO2VmeyaqQ0KK+yghOygleq0kQ0KK+yghOy5mOyZhA0KK+yghOy2mOybhQ0KK+yghOyDgeyyoA0KK+yghOy5oO2ZmA0KK+yghOuPmeyLnQ0KK+yghOy2mO2drA0KK+yghOykkeuLrA0KK+yghO2VmeunjA0KK+yghOqyuOqyrA0KK+yghOy2qeydvA0KK+yghO2drOyEnA0KK+yghOyxhOq4uA0KK+yghOydteyImA0KK+yghOy5oOyImA0KK+yghOuztOyerA0KK+yghOuqheykgA0KK+yghOyepeuemA0KK+yghO2DnOqyvQ0KK+yghOyerOyImQ0KK+yghOywveyImA0KK+yghOyImOyerA0KK+yghO2DnOq3oA0KK+yghOuPhOykgA0KK+yghOuzkeuNlQ0KK+yghOuLrO2drA0KK+yghO2DnOuPhA0KK+yghOuqheyImA0KK+yghCDqta0NCivsoITrjIDsmrENCivsoITtg5zrtIkNCivsoITsmrHrjZUNCivsoITsmIHtmZgNCivsoITrjIDsnpANCivsoITtg5zsiJwNCivsoITrsKnshK0NCivsoITssqDssqANCivsoITsiJjsmrANCivsoITtg5zsiJwNCivsoITsmKXsnpANCivsoITsmIHrj5kNCivsoITtg5zsm5ANCivsoITtg5zsi50NCivsoITsooXshKANCivsoITqt5ztnawNCivsoITquLDrspQNCivsoITtg5zsobANCivsoITsoJXspIANCivsoITrrLTsmIENCivsoITsmIHshJ0NCivsoITtg5ztmZgNCivsoITsnITtm4gNCivsoITsp4TtnawNCivsoITtg5zqtowNCivsoITtjJDqsJENCivsoITqsr3shLENCivsoITtg5ztmZgNCivsoITssq3ssqANCivsoITtjJDqtowNCivsoITqta3roKgNCivsoITsmqnqsbQNCivsoITshKDrp5ANCivsoITtjJDqt7wNCivsoITrs7XsmKQNCivsoITsi6DsiJwNCivsoITsp4DsiJgNCivsoITtjJDsiJgNCivsoITshKDsmKUNCivsoITsmIHstpwNCivsoITsp4Tsi50NCivsoITtjJTsi60NCivsoITrrJjrprwNCivsoITsl7Dsm5ANCivsoITsi5zsm4UNCivsoITtlYTsiJwNCivsoITrs5Hrj4QNCivsoITqt7zqt5wNCivsoITsmIHspIANCivsoITtlZjsiJgNCivsoITtmY3quLgNCivsoITqt5zqsr0NCivsoITsnbzqt5wNCivsoITtlZnsl7QNCivsoITsmKTtnJgNCivsoITrs5Hqt7wNCivsoITstpjtnawNCivsoITtlZzqsJENCivsoITsoJXshK0NCivsoITsooXtg50NCivsoITsnbztnawNCivsoITtlZzqt5wNCivsoITtmLjtmIENCivsoITstpjsooUNCivsoITsg4HsmIENCivsoITtlZzsmqkNCivsoITrs7XssKwNCivsoITsoJXsiJgNCivsoITrqoXtmLgNCivsoITtla3sobANCivsoITrkZDsnpANCivsoITrgqjqt5wNCivsoITtnazsiJgNCivsoITtlbTqtIANCivsoITrjIDsi50NCivsoITsuaDrnpgNCivsoITssL3smrANCivsoITtlbTqt7wNCivsoITsm5DsnpANCivsoITsirnshJ0NCivsoITsoJXquLANCivsoITtlbTshJ0NCivsoITssqDsiJwNCivsoITsmIHrqqkNCivsoITrs5HssqANCivsoITtlbTsooUNCivsoITsp4TsmqkNCivsoITsiJzrtIkNCivsoITrrLTspJENCivsoITtlbTso7wNCivsoITtmLjrj5kNCivsoITsnKTqtZANCivsoITtmJXtmLgNCivsoITtlbTssqANCivsoITsiJzsnZgNCivsoITtmY3sl7QNCivsoITtmITsnqUNCivsoITtlbTssqANCivsoITsnKTstpwNCivsoITtlZzsobANCivsoITsl7Dso7wNCivsoITtlbTtj6wNCivsoITsnoTsobANCivsoITsnqzqtIANCivsoITtmY3si50NCivsoITtl4zsiJgNCivsoITsirnslaANCivsoITquLDsnpANCivsoITso7ztg5wNCivsoITtmITqta0NCivsoITshLHqt7wNCivsoITspJHtmIQNCivsoITqtJHsobANCivsoITtmITsiJgNCivsoITsg4HsiJgNCivsoITsg4HtmZQNCivsoITsnqzsl7ANCivsoITtmJXrsLANCivsoITqsr3smIENCivsoITsgrzsm5ANCivsoITsl7DspIANCivsoITtmJXssYQNCivsoITshLHsiJgNCivsoITsnqzsp4QNCivsoITshLHsmqkNCivsoITtmJXssYQNCivsoITsp4TsnbwNCivsoITtg5ztmIQNCivsoITquLDqsr0NCivsoITtmJzshKANCivsoITsmIHtmIQNCivsoITrs5HsoJUNCivsoITssqDsl7QNCivsoITtmJzsiJkNCivsoITrr7jtmLgNCivsoITshJzsm4UNCivsoITsmqntmIQNCivsoITtmLjqsr0NCivsoITrtInrsLANCivsoITqsr3sl7QNCivsoITrqoXtmY0NCivsoITtmLjqt7wNCivsoITtlZnqta0NCivsoITshLHso7wNCivsoITrp4zsi50NCivsoITtmLjqt7wNCivsoITtmY3siJgNCivsoITsooXsnbQNCivsoITrqoXrnpgNCivsoITtmLjsi50NCivsoITstpjsspwNCivsoITrp4zsiJkNCivsoITqs4TshKANCivsoITtmLjsp4QNCivsoITrs5HsnqwNCivsoITtmY3si50NCivsoITsoJXqt5wNCivsoITtmY3shK0NCivsoITri6zqsJENCivsoITrqoXtlqUNCivsoITqt7zsnbwNCivsoITtmY3sl7QNCivsoITqt5zsiJgNCivsoITsmbjqt5wNCivsoITqsr3smrENCivsoITtmY3snbwNCivsoITrrLTqt7wNCivsoITsg4HsiJgNCivsoITtjJTsi50NCivsoITtmY3sp4QNCivsoITtjJTsnZENCivsoITsnqztlbQNCivsoITsmIHstpwNCivsoITtmY3tg5wNCivsoITsirnsiJgNCivsoITsoJXrtoQNCivsoITshJ3tkZwNCivsoITtmZTsiJgNCivsoITrj4Tsg4ENCivsoITsnbXtmY0NCivsoITsmqnrjZUNCivsoITtmZTsnpANCivsoITshJ3siKANCivsoITsiJjqtowNCivsoITsnqzsl7ANCivsoITtmqjqt7wNCivsoITtlZntnawNCivsoITsnbjrgqgNCivsoITsobDtmLgNCivsoITtmqjqt7wNCivsoITssL3rj4QNCivsoITshqHri6wNCivsoITrj5nsl7ANCivsoITtmqjrsLANCivsoITqsr3rnpENCivsoITshoztnawNCivsoITrj4TsiJgNCivsoITtmqjsp4QNCivsoITrs7XsmrANCivsoITsgrzrgqgNCivsoITqt7zsiJwNCivsoITtnaXsiJgNCivsoITquLDsiJwNCivsoITquIjqta0NCivsoITsnqzquLANCivsoITtnaXso7wNCivsoITrj5ntnawNCivsoITsmIHssqANCivsoITsnqzrqqkNCivsoITtnazrk50NCivsoITsnbTtmZgNCivsoITsiJzsiJgNCivsoITsmIHqt5wNCivsoITtnazsmIENCivsoITsmrDsooUNCivsoITsnbjqt5wNCivsoITtg5zsl7QNCivsoITtnazssqANCivsoITsp4DshKANCivsoITtmZjsmKQNCivsoITtmZjrspQNCivsoITtnaztmZgNCivsoITrtInqt5wNCivsoITsnqztmLgNCivsoITtmJztmZQNCivsoJUg6rG4DQor7KCV7ISx7IiZDQor7KCV6rK97JilDQor7KCV7ISx7YOcDQor7KCVIOyImQ0KK+ygleyerOyYgQ0KK+ygle2YuOydtA0KK+ygleydgOywrA0KK+yglSDsmqkNCivsoJXsp4Tqt7wNCivsoJXsmqntlZkNCivsoJXrtInrrLQNCivsoJUg7ZuIDQor7KCV7IOB64KoDQor7KCV7YOc6riwDQor7KCV66eQ7ZmYDQor7KCV6rCR7IudDQor7KCV7LC97IiYDQor7KCV7Jyk7J20DQor7KCV67OR7Z2sDQor7KCV6rCR7KO8DQor7KCV7JiB7IicDQor7KCV6rO17ZWZDQor7KCV7Lmg7JiBDQor7KCV6rCR7KeEDQor7KCV7LKg7J6EDQor7KCV7IK87IudDQor7KCV7YOc7ISdDQor7KCV6rG07JiBDQor7KCV7J6s66GdDQor7KCV6reA7IudDQor7KCV7KCV7Z2sDQor7KCV6rK9656ADQor7KCV7KKF7ZWEDQor7KCV6rCR6re8DQor7KCV7KKF7J6QDQor7KCV6rK966y4DQor7KCV6rWs7IiYDQor7KCV7KCV7JiBDQor7KCV7YOc7JqpDQor7KCV6rK97IiZDQor7KCV642V7Z2sDQor7KCV6reg6recDQor7KCV7YOd6rOkDQor7KCV6rK97IudDQor7KCVIOy2mA0KK+ygleybkOyImA0KK+ygleuNleyXtA0KK+ygleqyveyLnQ0KK+ygleuvuOuPmQ0KK+ygleyZuOyEoA0KK+ygleq3nOq3vA0KK+ygleqyveyXsA0KK+ygleyYge2aqA0KK+yglSDsi50NCivsoJXspJHssYQNCivsoJXqsr3sl7QNCivsoJXsoJXrprwNCivsoJXquLDqtawNCivsoJXsiJzssqANCivsoJXqsr3spIANCivsoJXrjIDsnbQNCivsoJXsoJXsiJgNCivsoJXtmIHshKANCivsoJXqsr3tm4gNCivsoJXshLHtmIQNCivsoJXsmqnrj4wNCivsoJXshoztmZQNCivsoJXqs4TrgqgNCivsoJXspJHtmLgNCivsoJXtlYTsmrENCivsoJXshJ3tnawNCivsoJXqs4Tsm5ANCivsoJXrp5DsmKUNCivsoJXtnazrjZUNCivsoJXsmKTsiJgNCivsoJXqs4TtlqUNCivsoJXrrLTsnbQNCivsoJXtmZjshK0NCivsoJXsmIHqsJENCivsoJXqtIDsmKUNCivsoJXtmIHtmLgNCivsoJXsiJjqt5wNCivsoJXqtJHsobANCivsoJXqtIDsnZgNCivsoJXsjI3siJkNCivsoJXsnqzsiJkNCivsoJXqsr3smIENCivsoJXqtJHrgqgNCivsoJXrqoXsp4QNCivsoJXso7zsl7ANCivsoJXtjJDsi50NCivsoJXqtJHrjZUNCivsoJXtmLjssL0NCivsoJXtmLjsnbQNCivsoJXrtInsnbQNCivsoJXqtJHrqoUNCivsoJXrqoXsmrANCivsoJXtl4zrjIANCivsoJXtg5ztmZQNCivsoJXqtJHsi50NCivsoJXrrLTsiJgNCivsoJXshJ3smpQNCivsoJXssqDtmZgNCivsoJXqtJHsi50NCivsoJXrrLjtmLgNCivsoJXsoJXtj6wNCivsoJXslaDtmIQNCivsoJXqtJHsi50NCivsoJXsiJjrk50NCivsoJXtnazsmqkNCivsoJXsmKXtmY0NCivsoJXqtJHsmIENCivsoJXsnqzsnoQNCivsoJXsg4Hsp4QNCivsoJXrrLjro6ENCivsoJXqtJHsmqkNCivsoJXtmITtmZQNCivsoJXtj4ntlYQNCivsoJXrrLTsiKANCivsoJXqtJHsm4UNCivsoJXsg4Htg5wNCivsoJXsmqnrj4wNCivsoJXtmLjsgrwNCivsoJXqtJHsp4QNCivsoJXsmIHsp4QNCivsoJXsnbjtg50NCivsoJXsmqnshJ0NCivsoJXqtJHtg5wNCivsoJXro6HshKANCivsoJXsgrzssqANCivsoJXquLDsp4QNCivsoJXqtZDsnbgNCivsoJXsobDsi50NCivsoJXssL3tm4gNCivsoJXspIDsobANCivsoJXqtazqtIANCivsoJXsgrzquLANCivsoJXshKDsi50NCivsoJXrrLjtnawNCivsoJXqtazsg4ENCivsoJXshJ3slYUNCivsoJXrs7XrtoQNCivsoJXshLHsiJgNCivsoJXqtazshJ0NCivsoJXqtJHquLANCivsoJXsoJXrqoUNCivsoJXsoJXqtowNCivsoJXqtazsp4QNCivsoJXrtoTssqANCivsoJXquLDtlZwNCivsoJXsoJXri6wNCivsoJXqtaztmIQNCivsoJXsmIHsl7QNCivsoJXsoJXslZQNCivsoJXsg4HsnbQNCivsoJXqtaztmLgNCivsoJXsmIHsobANCivsoJXsnqzqta0NCivsoJXrjIDquLANCivsoJXqta3rnoANCivsoJXsg4HstpwNCivsoJXtjJDsp4QNCivsoJXsp4TsoJUNCivsoJXqtozrpoQNCivsoJXrs7Xsm5ANCivsoJXsnbjquLANCivsoJXtg5zsnbUNCivsoJXqtoztjJANCivsoJXrqoXshJ0NCivsoJXsnqXtmZgNCivsoJXsnITquLANCivsoJXqtoztlZwNCivsoJXtmITquLANCivsoJXrtoTsnbwNCivsoJXsmIHsi6QNCivsoJXqt4Drj5kNCivsoJXsnZHtmIQNCivsoJXsg4HsnbQNCivsoJXrqoXsmrANCivsoJXqt4DrtIkNCivsoJXrp4zquLANCivsoJXrs5Hsl7ANCivsoJXsnqzsmKUNCivsoJXqt4DshK0NCivsoJXtg5zroYANCivsoJXsooXsmqkNCivsoJXsnqzrjZUNCivsoJXqt4DsiJwNCivsoJXsi6DssqANCivsoJXshLHsl7QNCivsoJXshJ3qs4QNCivsoJXqt5zrj5kNCivsoJXtjJDssYQNCivsoJXsiJzsiJwNCivsoJXrs7Xsl7QNCivsoJXqt5zsgrwNCivsoJXsoJXsl7QNCivsoJXquLDtmLgNCivsoJXtg5zqtIANCivsoJXqt5zsiJgNCivsoJXshKDtmLgNCivsoJXsoJXsiJwNCivsoJXsg4HsmKUNCivsoJXqt5zsnbgNCivsoJXrjIDqt5wNCivsoJXshLjshKANCivsoJXspIDrsLANCivsoJXqt5ztg5wNCivsoJXslrjsmYQNCivsoJXsooXsp4QNCivsoJXqsr3smrANCivsoJXqt5ztmZgNCivsoJXrp5DrgrQNCivsoJXsm5DsnbwNCivsoJXrrLTrj5kNCivsoJXqt5ztmZgNCivsoJXsnqzsgrANCivsoJXsnqzsobANCivsoJXrj4TsiJgNCivsoJXqt7nrs7QNCivsoJXsmqnssqANCivsoJXsnKTqtawNCivsoJXrrLTsnpANCivsoJXqt7zsnqwNCivsoJXsmIHsmKQNCivsoJXtl4zquLgNCivsoJXsg4HshLgNCivsoJXqt7zssqANCivsoJXqt5zshJ0NCivsoJXtj4ntmY0NCivsoJXrs5Hsp4QNCivsoJXqt7ztj6wNCivsoJXshLHtnaANCivsoJXso7ztmLgNCivsoJXsnbjsnpANCivsoJXquIjrgqgNCivsoJXsmqnsiJgNCivsoJXsnZjstpwNCivsoJXshKDrqqkNCivsoJXquIjrjZUNCivsoJXtnazsg50NCivsoJXsnqztmLgNCivsoJXrj5ntmY0NCivsoJXquIjsmKUNCivsoJXsmrDsoJANCivsoJXquLDsnpANCivsoJXtmqjsl7ANCivsoJXquIjsnbQNCivsoJXsgrzsiJwNCivsoJXshJ3snKQNCivsoJXsiJzssKgNCivsoJXquLDrkZQNCivsoJXsnbzqtawNCivsoJXsiJzsl7ANCivsoJXssqDsmqkNCivsoJXquLDrtIkNCivsoJXsg4Hsi50NCivsoJXsnqzrjZUNCivsoJXrr7jsiKANCivsoJXquLDrtIkNCivsoJXsooXsiJgNCivsoJXqt5ztmLgNCivsoJXshLHqt5wNCivsoJXquLDsg4ENCivsoJXsg4Hsi6wNCivsoJXquIjrhbgNCivsoJXquIjsmqkNCivsoJXquLDshJ0NCivsoJXshLHsmrQNCivsoJXsnqzsl7QNCivsoJXqtoztlZkNCivsoJXquLDshJ0NCivsoJXsp4TsnqwNCivsoJXtg5zsiJgNCivsoJXsmIHtmIQNCivsoJXquLDshKANCivsoJXsmIHshJ0NCivsoJXtjJDtnawNCivsoJXsnKDtmLgNCivsoJXquLDsiJgNCivsoJXshLjtmZgNCivsoJXsnqzsmIENCivsoJXrr7zsnZgNCivsoJXquLDsiJkNCivsoJXrjZXsm5ANCivsoJXsl7Dsi50NCivsoJXsiJzrtIkNCivsoJXquLDsi50NCivsoJXrgqjtg50NCivsoJXspIDsmrANCivsoJXsm5Dso7wNCivsoJXquLDsl7QNCivsoJXssKjrprwNCivsoJXsiJnshJ0NCivsoJXsgrzsiJgNCivsoJXquLDsl7QNCivsoJXsooXtmZgNCivsoJXquLDsspwNCivsoJXsooXsm4UNCivsoJXquLDsnpANCivsoJXrs5HsnbwNCivsoJXrgpntg50NCivsoJXsmIHtmIQNCivsoJXquLDspIANCivsoJXsmIHsnKQNCivsoJXrs7XsmKUNCivsoJXsp4TsiJgNCivsoJXquLDsp4QNCivsoJXri6zrs7QNCivsoJXqt7ztmLgNCivsoJXsmqnrj4QNCivsoJXquLDtmIQNCivsoJXquLDsobANCivsoJXsg4HshKANCivsoJXshJ3shKANCivsoJXquLjsm5ANCivsoJXrjIDsl7QNCivsoJXsmIHrtoQNCivsoJXrp4ztmZgNCivsoJXquLjtlokNCivsoJXrqoXtlZkNCivsoJXsiJjqsr0NCivsoJXrj5nrk50NCivsoJXquLjtmLgNCivsoJXqtbDtmowNCivsoJXshKDshJ0NCivsoJXtmITsnpANCivsoJXquLjtnaANCivsoJXsiJzquLANCivsoJXsg4HtmZgNCivsoJXsmIHqta0NCivsoJXquLjtnaANCivsoJXtmLjsnbgNCivsoJXqtJHtmLgNCivsoJXsnqzslYUNCivsoJXrgpnrj4QNCivsoJXrgqjqt7wNCivsoJXtnazruYgNCivsoJXsooXsiJwNCivsoJXrgqjrs7QNCivsoJXsnqzrgqgNCivsoJXsoJDtmIQNCivsoJXsnbjrnb0NCivsoJXrgqjshJ0NCivsoJXtg5ztnawNCivsoJXspIDrs7QNCivsoJXqsbTquLANCivsoJXrgqjshK0NCivsoJXrqoXsnbwNCivsoJXsg4Hrs7UNCivsoJXsmrDqtawNCivsoJXrgqjsnbQNCivsoJXqsr3tg5wNCivsoJXsnKTsmqkNCivsoJXrjIDsiJkNCivsoJXrgqjsobANCivsoJXsl7DquLANCivsoJXshKTtmLgNCivsoJXrrLjqt7wNCivsoJXrgqjtg50NCivsoJXrqoXquLgNCivsoJXsiJjtnLQNCivsoJXsoJXsiJwNCivsoJXrgqjtlYQNCivsoJXsm5DtmZgNCivsoJXsnbjtnawNCivsoJXssL3stpwNCivsoJXrhYTsnpANCivsoJXsmrDslZQNCivsoJXrs5HquLANCivsoJXrspTqt7wNCivsoJXrjIDqs6QNCivsoJXsg4HrtIkNCivsoJXrrLjtg5wNCivsoJXrs5HsmKUNCivsoJXrjIDqt6ANCivsoJXrs5Htg5wNCivsoJXtmY3sl7QNCivsoJXtmITquIgNCivsoJXrjIDshLENCivsoJXsnqzsnKQNCivsoJXsmKTtm4gNCivsoJXtnazqs6QNCivsoJXrjIDsi50NCivsoJXtnazsmqkNCivsoJXrs5HquLANCivsoJXroKTsmrANCivsoJXrjIDsmIENCivsoJXsnqztmZgNCivsoJXtg5zrgqgNCivsoJXsmrDrj4wNCivsoJXrjZXquLgNCivsoJXtlZnsm5ANCivsoJXsiJjsiJkNCivsoJXsnbXtmLgNCivsoJXrjZXquLgNCivsoJXsoJXsiKANCivsoJXtg5zrjZUNCivsoJXsmIHtmLgNCivsoJXrjZXrp4wNCivsoJXsooXtlZkNCivsoJXsnqzrs7UNCivsoJXsmqntmLgNCivsoJXrjZXsm5ANCivsoJXqt5zrtIkNCivsoJXtlbTtlZkNCivsoJXqt5zsl7ANCivsoJXrjZXsnpANCivsoJXshJ3qtIANCivsoJXrhbjtmIQNCivsoJXquLjsmIENCivsoJXrjZXtlZwNCivsoJXsooXqs6QNCivsoJXshoztnawNCivsoJXrs5HshK0NCivsoJXrjZXtmZQNCivsoJXtlYTsl7QNCivsoJXsoJXrj4QNCivsoJXsm5DsmKQNCivsoJXrjZXtmZgNCivsoJXrspTsmbgNCivsoJXquIjquLgNCivsoJXsnKTqs6QNCivsoJXrj4Tsi50NCivsoJXshLHsnbwNCivsoJXspIDsobANCivsoJXspIDtmZgNCivsoJXrj4Tsi50NCivsoJXsnqztmY0NCivsoJXsnYDsiKANCivsoJXsnbzsmKUNCivsoJXrj4TsmqkNCivsoJXsnqztlZkNCivsoJXshJ3tmLgNCivsoJXqt5zrp4wNCivsoJXrj5nqt7wNCivsoJXsmIHsnqwNCivsoJXsoJXsiJgNCivsoJXtmLjqtowNCivsoJXrj5nsi50NCivsoJXsmIHsm5ANCivsoJXsmrDsoJwNCivsoJXrj4TspIANCivsoJXrj5nsl7ANCivsoJXrp4ztlZgNCivsoJXspIDsiJgNCivsoJXsm5DqtIANCivsoJXrj5nsnbwNCivsoJXqsr3shJ0NCivsoJXquLDrp4wNCivsoJXrs5HsmKUNCivsoJXrj5ntmIQNCivsoJXsmZXsnbwNCivsoJXsiJjshJ0NCivsoJXsi53smKUNCivsoJXrkZDrp4wNCivsoJXrrLjrqqkNCivsoJXrs7XsiJgNCivsoJXsg4HtnawNCivsoJXrkZDtmZgNCivsoJXqsr3sl6wNCivsoJXtmY3shJ0NCivsoJXsmrTshJ0NCivsoJXrkZDtmZgNCivsoJXtg5zsnbQNCivsoJXso7ztmLgNCivsoJXqtIDqsJENCivsoJXrkZDtmZgNCivsoJXrkZDsl4QNCivsoJXsmbjqt5wNCivsoJXshLHsmqkNCivsoJXrk53sg4ENCivsoJXshLHtmZQNCivsoJXqtoztg5wNCivsoJXsm5DsiJgNCivsoJXrk53smrANCivsoJXssL3smqkNCivsoJXtmY3rj5kNCivsoJXqtJHro6ENCivsoJXrk7HsmqkNCivsoJXrs5HsnbQNCivsoJXsnbjquLANCivsoJXsg4HrjZUNCivsoJXroYDsiJgNCivsoJXquLjso7wNCivsoJXshLHsmrANCivsoJXsg53stpwNCivsoJXroZzsi50NCivsoJXsooXssqANCivsoJXsg4Hsm5ANCivsoJXsoJDsm5ANCivsoJXrp4nsiJwNCivsoJXsgrzso7wNCivsoJXsnKTsiJgNCivsoJXrgqjrj4wNCivsoJXrp4zqt7wNCivsoJXsmIHqtowNCivsoJXrs5HstpwNCivsoJXtlonrj4wNCivsoJXrp4zrjZUNCivsoJXsooXrrLQNCivsoJXsmIHsspwNCivsoJXrqoXtm4gNCivsoJXrp4zshJ0NCivsoJXtlajsiJgNCivsoJXsspzrjZUNCivsoJXsoJXsm5ANCivsoJXrp4zsiKANCivsoJXqtJHsiJwNCivsoJXtlontg50NCivsoJXspp3slZQNCivsoJXrp4zsmrANCivsoJXsoJDtlqUNCivsoJXsm4XqtZANCivsoJXtko3sl7ANCivsoJXrp4ztmLgNCivsoJXqtJHspIANCivsoJXrjIDshKANCivsoJXsiJjtmLgNCivsoJXrp4ztmLgNCivsoJXsnqzsl7ANCivsoJXqsr3sl7QNCivsoJXqsr3quLgNCivsoJXrqoXqta0NCivsoJXtg5zsi50NCivsoJXsoJXrtIkNCivsoJXquLDslZQNCivsoJXrqoXsiJgNCivsoJXsoJXsiJwNCivsoJXsnqXquLgNCivsoJXshKDslbwNCivsoJXrqoXsiJwNCivsoJXsoJXssqANCivsoJXsoJDsmrANCivsoJXssL3smqkNCivsoJXrqoXsiKANCivsoJXrr7ztj4kNCivsoJXsnqztmJUNCivsoJXshKDrj5kNCivsoJXrqoXsmKUNCivsoJXsjI3rtoQNCivsoJXrtInsg4ENCivsoJXrtInqt7wNCivsoJXrqoXsmqkNCivsoJXsirnspIANCivsoJXsmIHrtIkNCivsoJXstpjrjZUNCivsoJXrqoXsp4ANCivsoJXshLHrnpgNCivsoJXso7zsiJwNCivsoJXqt5zrjZUNCivsoJXrqoXtkZwNCivsoJXsooXssqANCivsoJXssL3tg5wNCivsoJXsnZjtmLgNCivsoJXrqoXtmZgNCivsoJXsnbjsmIENCivsoJXsooXsnbUNCivsoJXrrLjso7wNCivsoJXrqoXtnawNCivsoJXso7zrj5kNCivsoJXsg4HsiJgNCivsoJXssL3rqqkNCivsoJXrqoXtnawNCivsoJXqs6Dqt5wNCivsoJXrj5nsiJgNCivsoJXrr7ztg5wNCivsoJXrqoXtnawNCivsoJXsmIHsl7ANCivsoJXssqDrp4wNCivsoJXsnqzsnbQNCivsoJXrqqnsnbQNCivsoJXsuaDrj4wNCivsoJXrp4zrprwNCivsoJXtg5zqtawNCivsoJXrrJjshKANCivsoJXtnazsi50NCivsoJXsoJXsmqkNCivsoJXrtInsi50NCivsoJXrrLTsg4ENCivsoJXsirntg5wNCivsoJXsiJjqs6QNCivsoJXsiJjqt7wNCivsoJXrrLTshLENCivsoJXsnYTqtowNCivsoJXroZzsiJgNCivsoJXsg4HstpwNCivsoJXrrLjtmIQNCivsoJXsmIHri7QNCivsoJXsiJjquLANCivsoJXshLHquLANCivsoJXrr7jsiJkNCivsoJXssKjtmLgNCivsoJXrqoXrp4wNCivsoJXtjJDtnJgNCivsoJXrr7jtmZQNCivsoJXtlbTqtawNCivsoJXrjIDtmY0NCivsoJXtlqXrtoQNCivsoJXrr7zsiJgNCivsoJXrj5nsnZgNCivsoJXsnqzsiJgNCivsoJXsiJzsiJgNCivsoJXrr7zsm4UNCivsoJXqsr3sm5ANCivsoJXsjI3siJwNCivsoJXsnqzsi50NCivsoJXrs5HsiJgNCivsoJXqsJHtnawNCivsoJXrj5nsnoQNCivsoJXtnazqtawNCivsoJXrs5HsmqkNCivsoJXsnqzqta0NCivsoJXsmKXrjZUNCivsoJXsmqnsiJgNCivsoJXrs5HsnYANCivsoJXsnKTsi50NCivsoJXtmITsnpANCivsoJXshJ3tnawNCivsoJXrs5HsnYQNCivsoJXsgrzsl7QNCivsoJXrsKntmZgNCivsoJXsm5DsmYQNCivsoJXrs5HsnbwNCivsoJXrs5Htm4gNCivsoJXshJ3shLENCivsoJXsoJDquLANCivsoJXrs5HsnqwNCivsoJXshLHtmLgNCivsoJXsoJDtmLgNCivsoJXqsJHsmIENCivsoJXrs5HsnqwNCivsoJXsirnshKANCivsoJXsooXslYgNCivsoJXtlZjshKANCivsoJXrs5HsooUNCivsoJXsg4HrnoANCivsoJXsnqzsnbwNCivsoJXsoJXsmKQNCivsoJXrs5HspIANCivsoJXqsr3quLANCivsoJXrr7jquLANCivsoJXqt5zqt7wNCivsoJXrs5HssqANCivsoJXrk7Htg5wNCivsoJXsooXrtIkNCivsoJXsnqXsmrANCivsoJXrs5HsuaANCivsoJXsnbzquLANCivsoJXqsr3qt7wNCivsoJXrrLjtmZQNCivsoJXrs5Htg50NCivsoJXstpjtjJANCivsoJXqt5zsmKUNCivsoJXsmKXsg50NCivsoJXrs5HtmZQNCivsoJXsmrDsobANCivsoJXtnJjtg4ENCivsoJXqt7zsl7QNCivsoJXrs7Tqsr0NCivsoJXsiJjsmrQNCivsoJXrtoTsmqkNCivsoJXsg4Hsm5ANCivsoJXrs7XsiJwNCivsoJXssqDtmLgNCivsoJXsoJXtmZgNCivsoJXsnqzsm5ANCivsoJXrs7XsmIENCivsoJXqtJHsiJwNCivsoJXsg4HrjIANCivsoJXsmqnsmrQNCivsoJXrtInqsJENCivsoJXtg5zslZQNCivsoJXsp4TsiKANCivsoJXsmIHsnpANCivsoJXrtInqtowNCivsoJXrhbjrs7UNCivsoJXtg5zsi50NCivsoJXtl4zqsr0NCivsoJXrtInsmrENCivsoJXqsbTrrLgNCivsoJXtg5zsmqkNCivsoJXssqDtl4wNCivsoJXrtInsmrENCivsoJXtlZnquLANCivsoJXsi5zquIgNCivsoJXrrLjsmqkNCivsoJXrtInsmrQNCivsoJXsiJjsoJwNCivsoJXsuZjslZQNCivsoJXshKDtmLgNCivsoJXrtIntmZgNCivsoJXsooXsnpANCivsoJXsmIHsnpANCivsoJXsnbzrnb0NCivsoJXrtoDqtJENCivsoJXrtInsiJgNCivsoJXsiJjsnpANCivsoJXstpjtmLgNCivsoJXrtoDsmIENCivsoJXsm5DsiJkNCivsoJXshLjstpgNCivsoJXrs7XspJENCivsoJXrtoTqtZANCivsoJXsnKTsmqkNCivsoJXqs7XsiJwNCivsoJXslYjtmLgNCivsoJXrtoTrj4wNCivsoJXsmIHtmZgNCivsoJXtlZzshK0NCivsoJXsooXrk50NCivsoJXrtoTsobANCivsoJXri6zshK0NCivsoJXsmpTqs6QNCivsoJXsnKTtnawNCivsoJXsgrDsmqkNCivsoJXsnbzsp4QNCivsoJXsi6Drs7UNCivsoJXsnqXsmIENCivsoJXsgrzrqqkNCivsoJXsnqzsmKUNCivsoJXsnqztlZwNCivsoJXrhbjssqANCivsoJXsgrzsiJgNCivsoJXrkZDtmY0NCivsoJXqt5zshLENCivsoJXsmIHtnawNCivsoJXsgrzsiJgNCivsoJXquIjtg5wNCivsoJXsooXsiJgNCivsoJXrqoXsnbwNCivsoJXsgrzsmIENCivsoJXrj5nsmrENCivsoJXsmIHshJ0NCivsoJXssL3rgqgNCivsoJXsgrzsmqkNCivsoJXsiKDtkZwNCivsoJXsnqzstpwNCivsoJXrs5HrsLANCivsoJXsgrzspIANCivsoJXrs5HshJ0NCivsoJXqtJHquLgNCivsoJXshLjtmIQNCivsoJXsgrztmLgNCivsoJXtl4zsiJgNCivsoJXsp4DquLANCivsoJXsoJXqt7wNCivsoJXsg4HqtIANCivsoJXsnqzsm5ANCivsoJXsoJXsoJUNCivsoJXrgqjqt5wNCivsoJXsg4HquLANCivsoJXrp4ztjJQNCivsoJXsoJzrspQNCivsoJXtnazsoJUNCivsoJXsg4HsiJgNCivsoJXsnZjsiJkNCivsoJXtmITqsr0NCivsoJXsgrzsnqwNCivsoJXsg4Hsl7QNCivsoJXsnqzro6ENCivsoJXshKDsmIENCivsoJXsooXrjIANCivsoJXsg4HsmIENCivsoJXtlZnshKANCivsoJXtg5zsm4UNCivsoJXtl4zrspQNCivsoJXsg4HsmqkNCivsoJXsiJzsmrANCivsoJXshJ3smqkNCivsoJXsooXshJ0NCivsoJXsg4HsmqkNCivsoJXrtInsiJwNCivsoJXsmIHtg5wNCivsoJXsmIHsobANCivsoJXsg4HsmrQNCivsoJXso7zslYUNCivsoJXsnKDsiKANCivsoJXrr7jslYQNCivsoJXsg4Hsm5ANCivsoJXtmZjtmLgNCivsoJXrqoXrnb0NCivsoJXrp4zrsLANCivsoJXsg4HsnbwNCivsoJXtjJDshJ0NCivsoJXssL3shJ0NCivsoJXsmKXqsr0NCivsoJXsg4HsoJUNCivsoJXsoJXshJ0NCivsoJXqtJHsiJwNCivsoJXsmIHsiJwNCivsoJXsg4Hsp4QNCivsoJXrjZXsiJgNCivsoJXsg4HsiJgNCivsoJXqsr3qs6QNCivsoJXsg4HssqANCivsoJXsmIHri6wNCivsoJXrs5Hsi50NCivsoJXrk53rnoANCivsoJXsg4Htg5wNCivsoJXsuaDsnpANCivsoJXshLHslaANCivsoJXsooXroYANCivsoJXsg4Htg5wNCivsoJXqt7zssqANCivsoJXtnazshJ0NCivsoJXsoJXsnpANCivsoJXsg4HtlZkNCivsoJXqt4DshLENCivsoJXqtZDtmZgNCivsoJXqtIDsobANCivsoJXsg4HtmIQNCivsoJXsoJXtg5wNCivsoJXsoJDrs7QNCivsoJXrj5ntmLgNCivsoJXsg4HtmLgNCivsoJXsmqntmZgNCivsoJXquLDrj4QNCivsoJXrj4TtmZgNCivsoJXsg4HtmLgNCivsoJXsnbTqsqwNCivsoJXssL3sm4UNCivsoJXsmqnshKANCivsoJXsg4HtmLgNCivsoJXsg4Hrr7gNCivsoJXsm5DshKANCivsoJXsnbjtnawNCivsoJXsg4Htm4gNCivsoJXrqoXtmY0NCivsoJXrjIDquLANCivsoJXtg5ztmIENCivsoJXsg4HtnawNCivsoJXsooXqt7wNCivsoJXssL3si50NCivsoJXtmY3tmLgNCivsoJXshJ3qtJENCivsoJXshLHqta0NCivsoJXrs5HsiJgNCivsoJXtlZjsp4QNCivsoJXshJ3smqkNCivsoJXtg5zqs6QNCivsoJXqtJHqtowNCivsoJXsnbjqtZANCivsoJXshJ3sm5ANCivsoJXrs5HsmqkNCivsoJXsnqzrj4QNCivsoJXtmJzsnbQNCivsoJXshJ3sobANCivsoJXssL3rtIkNCivsoJXtlonsg4ENCivsoJXrtInqt7wNCivsoJXshJ3ssqANCivsoJXsl7DtmLgNCivsoJXquIjsmKUNCivsoJXsgrzsoJUNCivsoJXshJ3tmIQNCivsoJXssL3sm4UNCivsoJXrrLTsiJkNCivsoJXrtInrnpgNCivsoJXshJ3tmZQNCivsoJUg7KSADQor7KCV7Jqp6re8DQor7KCV6rG06rCRDQor7KCV7ISg7JikDQor7KCV7JiB7J6RDQor7KCV7JiB7ISgDQor7KCV7KKF6rK9DQor7KCV7ISg7JilDQor7KCV6rWs7ZGcDQor7KCV7ISx6529DQor7KCV64yA7JqwDQor7KCV7ISg7Zi4DQor7KCV6rWs64+ZDQor7KCV7KCQ7KCcDQor7KCV7JuF7Z2sDQor7KCV7ISg7Zi4DQor7KCV7ISx7J28DQor7KCV7Iic7IStDQor7KCV7KSA64+EDQor7KCV7ISg7Z2sDQor7KCV6riw7ZqoDQor7KCV7Jqp7Z2sDQor7KCV7Lmg64+ZDQor7KCV7ISx6regDQor7KCV7YOc7JilDQor7KCV7KCV7IiYDQor7KCV7ISx7JqpDQor7KCV7ISx6regDQor7KCV6ri47JuFDQor7KCV7J6E7ISxDQor7KCV7IOB642VDQor7KCV7ISx6re8DQor7KCV7KCV7J20DQor7KCV7YOc7JqwDQor7KCV64us7IigDQor7KCV7ISx6re8DQor7KCV7J247LaYDQor7KCV64Ko7YOcDQor7KCV6riI7ZmYDQor7KCV7ISx6re8DQor7KCV66eM7JqpDQor7KCV7ZWZ7ISgDQor7KCV6riI64+ZDQor7KCV7ISx6riwDQor7KCV7ZeM6riwDQor7KCV6reg66asDQor7KCV7Jqp7JikDQor7KCV7ISx64+EDQor7KCV7KCV7Je0DQor7KCV7LaY6ri4DQor7KCV7LaY7ZuIDQor7KCV7ISx656ADQor7KCV7ISx7ZmYDQor7KCV64+Z7ISxDQor7KCV6rK97ZeMDQor7KCV7ISx7IicDQor7KCV7IiY7YOcDQor7KCV7ZiE66asDQor7KCV64us7Zi4DQor7KCV7ISx7IudDQor7KCV7ISx6riwDQor7KCV7Iic7IiZDQor7KCV7IOB7ISdDQor7KCV7ISx7IudDQor7KCV64+Z7JqpDQor7KCV7Iic7KCVDQor7KCV7Y+J6riwDQor7KCV7ISx7IudDQor7KCV7KeA66GcDQor7KCV7KCQ6rSRDQor7KCV7IOB7Je0DQor7KCV7ISx7IudDQor7KCV7LC967SJDQor7KCV7JiB6rOkDQor7KCV7KKF6rOkDQor7KCV7ISx7JiBDQor7KCV7KO87ZmNDQor7KCV7ZeM7ZiEDQor7KCV66eM7ISxDQor7KCV7ISx7ZWcDQor7KCV6rK97IOBDQor7KCV7Jqp7IicDQor7KCV64Ko7JiBDQor7KCV7ISx7ZicDQor7KCV67SJ7ISdDQor7KCV6riw7IOBDQor7KCV7ISx7ZWZDQor7KCV7ISx7Zi4DQor7KCV7Iic7ISxDQor7KCV7KKF6re8DQor7KCV7KCV7KeADQor7KCV7ISx7Zi4DQor7KCV7Iq565OdDQor7KCV7IiY6rK9DQor7KCV67O17KGwDQor7KCV7ISx7ZmNDQor7KCV7YOc7ZmYDQor7KCV7LaY656YDQor7KCV7KeE642VDQor7KCV7ISx7ZmYDQor7KCV7IOB64yADQor7KCV7YOc642VDQor7KCV7IOB7ZiEDQor7KCV7ISx7ZmYDQor7KCV7JiB64KcDQor7KCV7LaY7IKsDQor7KCV7YOc7KeEDQor7KCV7ISx7ZuIDQor7KCV7Jyk7Je9DQor7KCV7ISx7ISgDQor7KCV67OR6riwDQor7KCV7ISx7ZuIDQor7KCV66qF6re8DQor7KCV7KCV6riwDQor7KCV6riI7KGwDQor7KCV7IS47JmEDQor7KCV7Iic7IicDQor7KCV64Kc7IiYDQor7KCV7JiB7IaMDQor7KCV7IaM7KGwDQor7KCV6riw7J6QDQor7KCV7Z2s6riwDQor7KCV66eM7IStDQor7KCV7IaQ64+MDQor7KCV7YOc6re8DQor7KCV7ZWc7J20DQor7KCV7Ja47JqpDQor7KCV7IaQ7YOcDQor7KCV7YOc7KeEDQor7KCV7KKF7JqwDQor7KCV7Jqp7J6sDQor7KCV7Iah642VDQor7KCV7ISg6riwDQor7KCV7YOc7IiYDQor7KCV6riI7IiYDQor7KCV7Iah66qpDQor7KCV7IiY6recDQor7KCV7ISg7JqpDQor7KCV7IOB7IigDQor7KCV7IiY64WEDQor7KCV64+Z7ZmYDQor7KCV7Iic7Zy0DQor7KCV7J247IOdDQor7KCV7IiY642VDQor7KCV67SJ6riwDQor7KCV7KCV7IiZDQor7KCV7IK87IudDQor7KCV7IiY64+ZDQor7KCV7KKF7ZiEDQor7KCV7J2E7IiYDQor7KCV7KCV7IStDQor7KCV7IiY66qpDQor7KCV64W47KeEDQor7KCV7JiB67O1DQor7KCV7YOc7ZWZDQor7KCV7IiY67O1DQor7KCV7LC97KSADQor7KCV7LKg66CoDQor7KCV6riw7JqwDQor7KCV7IiY7IOBDQor7KCV7ISg7KCVDQor7KCV67KU6rSRDQor7KCV6rSR7KGwDQor7KCV7IiY7ISdDQor7KCV7IOB7JilDQor7KCV6rSR7JWUDQor7KCV7JiB6rK9DQor7KCV7IiY7ISdDQor7KCV7KCV7JqpDQor7KCV7JiB7KKFDQor7KCV7ZWZ7Z2sDQor7KCV7IiY7Ja1DQor7KCV6rK97ZW0DQor7KCV7KCV7JuQDQor7KCV7Iic7KeEDQor7KCV7IiY7JuFDQor7KCV7YyQ7JqxDQor7KCV64yA7ZiEDQor7KCV7IiZ7ZWcDQor7KCV7IiY7KGwDQor7KCV7JiB7KeEDQor7KCV7LC96recDQor7KCV67OR7IudDQor7KCV7IiY7KKFDQor7KCV6riw7YOcDQor7KCV6re86riwDQor7KCV7JaR7J6sDQor7KCV7IiY7KO8DQor7KCV67SJ7IigDQor7KCV7YOc7IiYDQor7KCV7J2A6rG0DQor7KCV7IiY7KeEDQor7KCV7YOc7IicDQor7KCV7IOB7IigDQor7KCV7JiB67CwDQor7KCV7IiY7LKgDQor7KCV6rSR7ZiEDQor7KCV67OR7ZiEDQor7KCV6riw65OdDQor7KCV7IiY7ZWZDQor7KCV7Jq07JewDQor7KCV7JiB7KO8DQor7KCV7KCV6rWtDQor7KCV7IiY7ZWZDQor7KCV66qF7IicDQor7KCV7ZmY7IigDQor7KCV7KSR6ri4DQor7KCV7IiY7ZWZDQor7KCV7JiB6rK9DQor7KCV67SJ7KGwDQor7KCV67OR6recDQor7KCV7IiY7ZiEDQor7KCV7JiB64usDQor7KCV7KKF7KKFDQor7KCV7KKF6riwDQor7KCV7IiY7ZiEDQor7KCV7Jqp7JiBDQor7KCV64+Z7LaYDQor7KCV7IS467CwDQor7KCV7IiY7ZmNDQor7KCV7JiB7JuQDQor7KCV7Zqo7Z2gDQor7KCV7JuQ7Jq0DQor7KCV7IiY7ZmYDQor7KCV7KCQ7ZqoDQor7KCV7KCV7YOdDQor7KCV7JmE7LKgDQor7KCV7IiY7ZmYDQor7KCV7IOB7J6QDQor7KCV7JuQ7ZmNDQor7KCV6riw7ZiEDQor7KCV7IiY7ZmYDQor7KCV7J6s7KSADQor7KCV7YOc6529DQor7KCV7YOc7ISdDQor7KCV7IiZ64+EDQor7KCV7ISx6riwDQor7KCV6rec7Zi4DQor7KCV7YOc7JaRDQor7KCV7IiZ7J6QDQor7KCV7Z2s6riwDQor7KCV6rK97Zi4DQor7KCV7JiB67KUDQor7KCV7Iic6riwDQor7KCV7KKF66y0DQor7KCV7Jqp67O0DQor7KCV7IOB7IK8DQor7KCV7Iic65OdDQor7KCV7KKF7Zi4DQor7KCV7Iic6re8DQor7KCV7Jqp6rOgDQor7KCV7Iic66qpDQor7KCV7JuQ7IudDQor7KCV67OR7IudDQor7KCV7KCQ7KO8DQor7KCV7Iic67KUDQor7KCV7ISd7J6QDQor7KCV6rK97ZmYDQor7KCV7LC97IiYDQor7KCV7Iic67SJDQor7KCV6riw7IicDQor7KCV7IiZ7JaRDQor7KCV7KCV7JikDQor7KCV7Iic7ISdDQor7KCV7ZmN6riwDQor7KCV7ZGc67SJDQor7KCV64+Z7KSADQor7KCV7Iic7Iq5DQor7KCV7IS47JmEDQor7KCV6riw7IiYDQor7KCV7Jqp7IiYDQor7KCV7Iic7JeFDQor7KCV64+Z7JiBDQor7KCV7J247JewDQor7KCV7ZuI7ZmYDQor7KCV7Iic7JiBDQor7KCV66yY7IicDQor7KCV642V7IudDQor7KCV7Jil7Zi4DQor7KCV7Iic7JilDQor7KCV7Jik7LKgDQor7KCV7J6R7Zi4DQor7KCV7JiB64KoDQor7KCV7Iic7JuQDQor7KCV7JiB7KeRDQor7KCV6reA66GdDQor7KCV67OR7J6sDQor7KCV7Iic7KGwDQor7KCV7ISx7IiYDQor7KCV66GA7ZiBDQor7KCV7Iic7J28DQor7KCV7Iic7YOcDQor7KCV6re87JiBDQor7KCV7IiZ7IiYDQor7KCV7KKF7IiYDQor7KCV7Iic7ZGcDQor7KCV7JiB7LKgDQor7KCV64Ko7J6QDQor7KCV7J2Y6raMDQor7KCV7Iic7ZiEDQor7KCV7J6l7J20DQor7KCV7KeA7JqwDQor7KCV7KKF7ZmUDQor7KCV7Iic7ZmUDQor7KCV64+Z7JilDQor7KCV7IiZ6rG0DQor7KCV7LKg64KoDQor7KCV7Iic7ZmYDQor7KCV7J6s7IicDQor7KCV66eQ7IiYDQor7KCV7YyQ6rK9DQor7KCV7Iic7Z2sDQor7KCV7IOB7J20DQor7KCV67OR7ZiBDQor7KCV7ISd7LKgDQor7KCV7Iic7Z2sDQor7KCV7IyN7JqwDQor7KCV7YOc7Z2gDQor7KCV7Iic7IiZDQor7KCV7Iq56rOgDQor7KCV7ZiE66CoDQor7KCV65Od6rK9DQor7KCV67OR7IOBDQor7KCV7Iq56rWQDQor7KCV7ZiE6recDQor7KCV7LC97ZiEDQor7KCV7KCV7IudDQor7KCV7Iq57JykDQor7KCV7ZW07IiZDQor7KCV7ZmN7IicDQor7KCV6rOE7ZiEDQor7KCV7Iud7ZiEDQor7KCV7KeA7Zi4DQor7KCV64+Z7IiYDQor7KCV66y47JqpDQor7KCV7Iug7IStDQor7KCV6rK96raMDQor7KCV64yA7IiYDQor7KCV7J287Z2sDQor7KCV7IyN64+EDQor7KCV7ZiE7J6sDQor7KCV7J6s7Zi4DQor7KCV7KKF7Zi4DQor7KCV7IyN65OdDQor7KCV7JiB7JiBDQor7KCV7Z2s7JqpDQor7KCV7ISx65GQDQor7KCV7JWI66+8DQor7KCV7J6s7J20DQor7KCV7Jyk7J6sDQor7KCV66eM7Z2sDQor7KCV7JWI7IicDQor7KCV67O066eMDQor7KCV6re87KeRDQor7KCV7KO86529DQor7KCV7JaR64yADQor7KCV7J6s64+ZDQor7KCV7KKF66eMDQor7KCV6riw66GdDQor7KCV7JaR7JiBDQor7KCV7Jyk7IiYDQor7KCV7LC97KO8DQor7KCV7YOc7Z2sDQor7KCV7Ja17KGwDQor7KCV7IS47Zi4DQor7KCV7KCV7ZW0DQor7KCV7KCV7Zi4DQor7KCV7JeF7JqwDQor7KCV6rSR7IiZDQor7KCV7J246recDQor7KCV7YOc6rK9DQor7KCV7Jes7ZWEDQor7KCV7KCV66y4DQor7KCV7Z2s7IudDQor7KCV7IOB7YOcDQor7KCV7Jew64+ZDQor7KCV7IiY7IiYDQor7KCV7ISx7J20DQor7KCV64+Z7IiZDQor7KCV7Jew7JikDQor7KCV66y07IiYDQor7KCV7LCo7ISgDQor7KCV7J247ZWcDQor7KCV7Jew7JqwDQor7KCV7Jqp7ZmUDQor7KCV7KCV7ZiEDQor7KCV67OR7LmYDQor7KCV7Jew7JqxDQor7KCV67SJ7Z2sDQor7KCV7KeE7Je0DQor7KCV7ISx7IOBDQor7KCV7Jew7KeEDQor7KCV67OR7Je0DQor7KCV7IOB7JilDQor7KCV7Jqp7JqwDQor7KCV7Jew7ZmYDQor7KCV6riw6rWQDQor7KCV7IKs7J28DQor7KCV7KKF7J6sDQor7KCV7JiB6rWsDQor7KCV7Jq06recDQor7KCV6riw7JewDQor7KCV7ZmN7ISdDQor7KCV7JiB6rWsDQor7KCV66y07ZWcDQor7KCV7IOB7JewDQor7KCV6rCR7IiYDQor7KCV7JiB6riwDQor7KCV6rWQ7JiBDQor7KCV7Iuc7JqpDQor7KCV7ZiV7JiBDQor7KCV7JiB6ri4DQor7KCV65GQ6rK9DQor7KCV7Iic7JqwDQor7KCV7KKF64+EDQor7KCV7JiB64+EDQor7KCV7LaY7Zi4DQor7KCV6riw7KO8DQor7KCV7LCo7ZalDQor7KCV7JiB67O1DQor7KCV7ISd7KGwDQor7KCV64+Z67ORDQor7KCV66eM7IStDQor7KCV7JiB7ISdDQor7KCV7Jqp7Zi4DQor7KCV66y47KGwDQor7KCV7KSA7IiZDQor7KCV7JiB7ISdDQor7KCV7ISd7ZuIDQor7KCV6rCV64+ZDQor7KCV67aA7Y+sDQor7KCV7JiB7IiYDQor7KCV7IOB7ZWZDQor7KCV6rK97IiYDQor7KCV7ZiE7J21DQor7KCV7JiB7IiZDQor7KCV7LaY67O1DQor7KCV7JiB66qpDQor7KCV7J6E7JqpDQor7KCV7JiB7JilDQor7KCV642V7IOBDQor7KCV7ISg7KO8DQor7KCV7KCQ7KCVDQor7KCV7JiB7J6QDQor7KCV64+Z7KeEDQor7KCV7JmV7IicDQor7KCV65GQ7JilDQor7KCV7JiB7KGwDQor7KCV7JuQ7ZmYDQor7KCV7JiB66GcDQor7KCV66qF7IiZDQor7KCV7JiB7KO8DQor7KCV7ISx67SJDQor7KCV67O17ZmYDQor7KCV7IOB6ri4DQor7KCV7JiB7YOcDQor7KCV7ZmN7JewDQor7KCV7KO87IiYDQor7KCV7ZWY6rCVDQor7KCV7JiB7YOcDQor7KCV7ZWc7IOBDQor7KCV7KCV7KO8DQor7KCV66qF7ZmYDQor7KCV7JiB7ZiEDQor7KCV7JiB7Je0DQor7KCV7ISx7Zi4DQor7KCV7ZWE6riwDQor7KCV7JiB7ZmYDQor7KCV7JiB64+MDQor7KCV7IiY7J20DQor7KCV7J287IiYDQor7KCV7JiB7ZmYDQor7KCV7IiZ7IiYDQor7KCV66qF7LCsDQor7KCV67OR7ZmYDQor7KCV7Jik7IOBDQor7KCV67aA7ZWZDQor7KCV7Jqp7JuFDQor7KCV7Jqp6recDQor7KCV7Jil64KoDQor7KCV7LaY7ZmYDQor7KCV7J247IiYDQor7KCV7LmY7KeEDQor7KCV7Jil66CoDQor7KCV64yA7ZmUDQor7KCV7LC97KO8DQor7KCV7JiB7ZW0DQor7KCV7Jil7IicDQor7KCV7J6s7IiYDQor7KCV7LaY7JilDQor7KCV66y47J21DQor7KCV7Jm47IiYDQor7KCV7YyQ7IiYDQor7KCV7JuU7LKgDQor7KCV7J6l7Je0DQor7KCV7Jm47ZmYDQor7KCV6re86rK9DQor7KCV7ZW07LaYDQor7KCV7JiB7J24DQor7KCV7Jqp6rSADQor7KCV67O17JuQDQor7KCV7Iug7IiYDQor7KCV7Jew64KoDQor7KCV7Jqp6raMDQor7KCV7Iic7LCsDQor7KCV7J287ISdDQor7KCV64yA7JuFDQor7KCV7Jqp6regDQor7KCV64yA7ZuIDQor7KCV64Ko7KGwDQor7KCV7KCV7KGwDQor7KCV7Jqp64+MDQor7KCV7JiB6rG0DQor7KCV7KeE7ZaJDQor7KCV64+E7J2EDQor7KCV7Jqp66qoDQor7KCV7JuU7YOBDQor7KCV7J287IukDQor7KCV7IOB7J6QDQor7KCV7Jqp7JWUDQor7KCV66y07KSADQor7KCV7Zi47JqwDQor7KCV7LCo6recDQor7KCV7Jqp7YOcDQor7KCV7IK87ISxDQor7KCV7JiB7IStDQor7KCV7Jil6re8DQor7KCV7Jqp7ZiEDQor7KCV7IiY7LacDQor7KCV7KCV7IicDQor7KCV7Jq07ISxDQor7KCV7Jqp7ZiEDQor7KCV7KSR7ZmYDQor7KCV7KO87JuQDQor7KCV64+Z7ISdDQor7KCV7Jqp7Zi4DQor7KCV7Ja17ZmUDQor7KCV66+47J6QDQor7KCV7IOB6rWtDQor7KCV7Jqp7Zi4DQor7KCV7Jq07ZeMDQor7KCV6rK97IigDQor7KCV67OR7Z2sDQor7KCV7Jqp7ZmUDQor7KCV7YOc7ZWZDQor7KCV7KCV6rCRDQor7KCV7Ja17IiYDQor7KCV7Jqp7ZmUDQor7KCV7YOc7ZWYDQor7KCV6riI6riwDQor7KCV7J287YOcDQor7KCV7Jqw7ISdDQor7KCV7YOc7LKgDQor7KCV7LC97JWUDQor7KCV7KKF7Z2sDQor7KCV7Jqw7JiBDQor7KCV7JyE67O1DQor7KCV7KSR64usDQor7KCV7J6s7ZuIDQor7KCV7Jqw7ZiEDQor7KCV7Jqp7ISxDQor7KCV7JuQ7JewDQor7KCV64+Z7ZalDQor7KCV7Jqw7ZiEDQor7KCV7IaM6rWtDQor7KCV6rK97Je0DQor7KCV6riw7ISxDQor7KCV7Jq067O1DQor7KCV67SJ7ISdDQor7KCV7LKg64yADQor7KCV66qF67CwDQor7KCV7Jq07ZiEDQor7KCV7ZmN67aEDQor7KCV7ZiE7LC9DQor7KCV7ISx7IiYDQor7KCV7JuF7Z2sDQor7KCV7JiB7ZiVDQor7KCV7J2A7ZmYDQor7KCV67OR67SJDQor7KCV7JuQ6raMDQor7KCV7JiB7ZiVDQor7KCV7ZmN6rOgDQor7KCV67aA7IicDQor7KCV7JuQ67aEDQor7KCV7IKs7Z2sDQor7KCV7J2Y7ZmYDQor7KCV7Jik7JikDQor7KCV7JuQ7ISdDQor7KCV7J6s66qFDQor7KCV7YyQ7IStDQor7KCV7J2E7Jq0DQor7KCV7JuQ7Iq5DQor7KCV7ZmN7KCVDQor7KCV64us7JuQDQor7KCV7ISx7JqwDQor7KCV7JuQ7JqpDQor7KCV65GQ67aADQor7KCV7ZmN6rOkDQor7KCV7KCV7IicDQor7KCV7JuQ7KGwDQor7KCV7Jyk7IicDQor7KCV7KCV656YDQor7KCV7Jqp7IigDQor7KCV7JuQ7KeEDQor7KCV7ISx7IStDQor7KCV7ISx7LKgDQor7KCV7JiB7ZmYDQor7KCV7JuQ7YOdDQor7KCV67Cx7JygDQor7KCV7Jew7IudDQor7KCV7ISx7YOcDQor7KCV7JuQ7ZiEDQor7KCV67OR7KGwDQor7KCV7ZWZ7J6QDQor7KCV7ISx7IStDQor7KCV7JyE7YOcDQor7KCV7KeE7LacDQor7KCV6ri47Z2sDQor7KCV7KCV66+8DQor7KCV7Jyg7JWUDQor7KCV64yA7JilDQor7KCV7Jqp67O1DQor7KCV7J6Q6rWtDQor7KCV7Jyg7LKgDQor7KCV64+Z6rWsDQor7KCV7ZiE7JmEDQor7KCV7KKF7IudDQor7KCV7Jyk6raMDQor7KCV7Zi47ZmYDQor7KCV6rSR7Zi4DQor7KCV67SJ7IiYDQor7KCV7Jyk6riwDQor7KCV7J6s64yADQor7KCV6rWQ7YOdDQor7KCV64us66+8DQor7KCV7Jyk642VDQor7KCV7ZW06recDQor7KCV7YOc7J20DQor7KCV7ZmY7IStDQor7KCV7Jyk7IOdDQor7KCV6rK97IiYDQor7KCV7Jm47IiYDQor7KCV7Iic7JqwDQor7KCV7Jyk7IiYDQor7KCV7J6s67SJDQor7KCV7ISg7Z2gDQor7KCV7Jqp7Z2sDQor7KCV7Jyk7IudDQor7KCV64+Z67SJDQor7KCV7KSR6rWtDQor7KCV7J6s7J6sDQor7KCV7Jyk7ZmUDQor7KCV7IK87IudDQor7KCV6riw7IudDQor7KCV7KCV7Je0DQor7KCV7J2A7JiBDQor7KCV7Jew6rOkDQor7KCV7LC97IStDQor7KCV7IOB7KSADQor7KCV7J2A7Z2sDQor7KCV7LCo7ISdDQor7KCV7JyE7ISdDQor7KCV64+Z67O1DQor7KCV7J2E7ISgDQor7KCV7YOc7IiYDQor7KCV7ZqM7KSRDQor7KCV7JiB66GADQor7KCV7J2E7IicDQor7KCV66qF7ISdDQor7KCV7KCV7IicDQor7KCV7ZW07IukDQor7KCV7J2Y7JuQDQor7KCV7KCV7IicDQor7KCV7Zqo7KeEDQor7KCV7Jyk7ISdDQor7KCV7J2Y7ZiEDQor7KCV7KO87J20DQor7KCV7JWg66y4DQor7KCV7KCV7Z2sDQor7KCV7J206recDQor7KCV67aA642VDQor7KCV7KKF6recDQor7KCV7Lmg7ZmYDQor7KCV7J206recDQor7KCV7Jqp6riwDQor7KCV67OR7LKgDQor7KCV7YOc7IudDQor7KCV7J207LacDQor7KCV7ISx7YOdDQor7KCV7Iic66GADQor7KCV7JiB7ZW0DQor7KCV7J207Zi4DQor7KCV7LaY7YOcDQor7KCV67OR6riwDQor7KCV7JiB7J20DQor7KCV7J207ZmYDQor7KCV7LKg7IicDQor7KCV7ZeM7Zi4DQor7KCV7LKg7KeEDQor7KCV7J217Zi4DQor7KCV7ZWc6rCRDQor7KCV6riw6re8DQor7KCV64us7ZiEDQor7KCV7J246recDQor7KCV6rK97ISxDQor7KCV7LaY7LSMDQor7KCV7ISx6recDQor7KCV7J247IOBDQor7KCV7Zi464+EDQor7KCV7Zi47JiBDQor7KCV7KCV6rWQDQor7KCV7J247IOBDQor7KCV6riw7ZmYDQor7KCV67SJ7J20DQor7KCV7YOc6riwDQor7KCV7J247IudDQor7KCV7Jqp7ZmYDQor7KCV7LCo6re8DQor7KCV6rK97Je0DQor7KCV7J247IudDQor7KCV7ISx7JiBDQor7KCV7JiB7IiYDQor7KCV7Iig7J6QDQor7KCV7J247J6sDQor7KCV7J6l7KGwDQor7KCV7JiB7ISdDQor7KCV7JiB64+ZDQor7KCV7J247KeEDQor7KCV6rK97ISgDQor7KCV7KO87ZmYDQor7KCV7YOc7J6sDQor7KCV7J247LGEDQor7KCV7KKF7IudDQor7KCV7ISg64+ZDQor7KCV7LaY7ISdDQor7KCV7J247YOcDQor7KCV7IOB7ISxDQor7KCV7Jil7IStDQor7KCV7IOB7Z2sDQor7KCV7J247YOcDQor7KCV66qF7ISdDQor7KCV6rCV7IudDQor7KCV7JiB7J6EDQor7KCV7J247ZmYDQor7KCV7J287KO8DQor7KCV7KCV7J20DQor7KCV66qF7JqpDQor7KCV7J247ZmYDQor7KCV7IiY656YDQor7KCV7ZKN6rOkDQor7KCV7YOc7LacDQor7KCV7J247Z2sDQor7KCV7Jil7KSRDQor7KCV7KCV7ZqoDQor7KCV7KKF7J28DQor7KCV7J286raMDQor7KCV66eQ7Zi4DQor7KCVIOuNlQ0KK+ygleyCvOyWkQ0KK+ygleydvOyYgQ0KK+ygle2VnOycpA0KK+ygleunjOq1rQ0KK+ygleyYge2YhA0KK+ygleydvOyasA0KK+ygleynhOyLnQ0KK+ygle2YleyehA0KK+ygle2VnOq3vA0KK+ygleydvO2VnA0KK+ygleyaqeyErQ0KK+ygleu0ieuqqA0KK+ygleycpO2ZmA0KK+ygleydvO2YuA0KK+ygleyerOyYpQ0KK+ygleyEseyyoA0KK+ygleygleyImA0KK+ygleydvO2ZmA0KK+ygleuztOusuA0KK+ygleyDgeuemA0KK+ygleyImOq4sA0KK+ygleyehOq4uA0KK+ygleyiheq3vA0KK+ygleyerOu0iQ0KK+ygle2DnOyEnQ0KK+ygleyehOyErQ0KK+ygle2YhOyaqQ0KK+ygleyInOybkA0KK+ygleyYgeq4sA0KK+ygleyehO2PiQ0KK+ygleq3nOyynA0KK+ygle2DnOuCqA0KK+ygle2YhO2ZmA0KK+ygleyepeuqqQ0KK+ygleyInOuztQ0KK+ygleyYgeyImA0KK+ygleyasO2YuA0KK+ygleyepeyEsQ0KK+ygleywveq2jA0KK+ygleyYgeyWkQ0KK+ygleyehOyEnQ0KK+ygleyepeyImA0KK+ygleuqheyVoA0KK+ygleuzte2DnA0KK+ygleq4uOyDgQ0KK+ygleyerOqyvQ0KK+ygley2qeuhnQ0KK+ygleydvOyInA0KK+ygle2DnO2YlQ0KK+ygleyerOq3nA0KK+ygleusuOyasQ0KK+ygleuqheugrA0KK+ygleyEoOuPmQ0KK+ygleyerOq3nA0KK+ygleyepe2drA0KK+ygleygleq2jA0KK+ygleygkOyYpA0KK+ygleyerOq3vA0KK+ygleyyoOq2jA0KK+ygleygkOyInA0KK+ygleyInOydtQ0KK+ygleyerOq3vA0KK+ygleyduOyLnQ0KK+ygleyaqeydtQ0KK+ygle2DnOyIoA0KK+ygleyerOu0iQ0KK+ygleynhOq4uA0KK+ygleq3nOqzpA0KK+ygleyDgeyImQ0KK+ygleyerOyEoA0KK+ygleyInOuMgA0KK+ygleq4sO2MkA0KK+ygleuegOyaqQ0KK+ygleyerOyEoA0KK+ygleybkOyXsA0KK+ygleqyve2ZmA0KK+ygleyEneuPmQ0KK+ygleyerOyImA0KK+ygleyGjOq3nA0KK+ygleywqOq3oA0KK+ygle2drOyYpQ0KK+ygleyerOyLnQ0KK+ygle2MlOyyoA0KK+ygleycpOyaqQ0KK+ygleqwleuPjA0KK+ygleyerOyYgQ0KK+ygleynhOybkA0KK+ygle2cmOyImA0KK+ygleq4uOycpA0KK+ygleyerOyalA0KK+ygleyasO2drA0KK+ygleyerOynhA0KK+ygle2DnO2ZlA0KK+ygleyerOyyoA0KK+ygle2YhO2DnA0KK+ygleyngeyLrA0KK+ygleuzkeyyoA0KK+ygleyerO2YhA0KK+ygleyYgeu5iA0KK+ygleyaqeyyoA0KK+ygleygleyEoA0KK+ygleyerO2YuA0KK+ygleygleyInA0KK+ygle2YnOunjA0KK+ygleyLoOuylA0KK+ygleyerO2YuA0KK+ygleq0ke2DnQ0KK+ygleyYge2YuA0KK+ygleyMjeybhQ0KK+ygleyerO2ZjQ0KK+ygleyYgeu0iQ0KK+ygleygle2ZmA0KK+ygleyCvOyekA0KK+ygleyerO2ZmA0KK+ygleygleyImA0KK+ygleyYgeywrA0KK+ygleyInO2DnA0KK+ygleygkOuNlQ0KK+ygleyiheyImA0KK+ygle2YhOyDgQ0KK+ygle2ZjeuqqA0KK+ygleygkOyInA0KK+ygleuFuOyYgQ0KK+ygleyInO2YuA0KK+ygleygle2biA0KK+ygleygkOyaqQ0KK+ygleygkOuFuA0KK+ygleyepeyglQ0KK+ygleuRkOyImA0KK+ygleygkOyhsA0KK+ygleycoO2ZmA0KK+ygle2DnOq1sA0KK+ygleyDgey5oA0KK+ygleygleq4uA0KK+ygleyerOyYgQ0KK+ygleq3gOyaqQ0KK+ygleyEseq2jA0KK+ygleygleyDgQ0KK+ygleuqheusuA0KK+ygleuCqOq2jA0KK+ygleyDgeyasQ0KK+ygleygleyErQ0KK+ygleuzkeq3vA0KK+ygleyDgeqzhA0KK+ygleu0ie2DnA0KK+ygleygleyImQ0KK+ygleygle2drA0KK+ygleyYgeqxtA0KK+ygleq0keuPmQ0KK+ygleygleyImQ0KK+ygleyaseqyvQ0KK+ygle2YhOuNlQ0KK+ygleyXsO2DnA0KK+ygleygleyInA0KK+ygleq4sOyasA0KK+ygleq4sO2YuA0KK+ygleyXsOuzkQ0KK+ygleygleyLnQ0KK+ygle2MkOydtQ0KK+ygle2VtO2YhA0KK+ygley2qeuwsA0KK+ygleygleyLnQ0KK+ygleyYgeq2jA0KK+ygleq4iOyImA0KK+ygleuLrOqzpA0KK+ygleygleyaqQ0KK+ygleuqheu0iQ0KK+ygleyaqe2YuA0KK+ygleyDgeyLnQ0KK+ygleygleybkA0KK+ygleumrO2VnA0KK+ygleqyveuPmQ0KK+ygleuzkeybkA0KK+ygleygle2YhA0KK+ygley2qe2YuA0KK+ygleykgOycpA0KK+ygleynhO2VnA0KK+ygleygle2ZlA0KK+ygleq3vOyLnQ0KK+ygle2YuOyYpQ0KK+ygleyEne2VmQ0KK+ygleygle2ZmA0KK+ygleqzoe2cmA0KK+ygleyerOybhQ0KK+ygle2DnOyjvA0KK+ygleyhsOusuA0KK+ygleybkOyImA0KK+ygleyjvOyEoA0KK+ygleq4uOyImA0KK+ygleyiheuLrA0KK+ygleqyveyImA0KK+ygleqyveykgA0KK+ygleyYge2MkA0KK+ygleyiheuMgA0KK+ygleyInOyYpA0KK+ygle2YhOyekA0KK+ygleuqhe2ZmA0KK+ygleyiheuNlQ0KK+ygleq1rOyekA0KK+ygle2XjOyVvA0KK+ygleuzkeq2jA0KK+ygleyiheuqqQ0KK+ygleydtO2YhA0KK+ygleyInOyerA0KK+ygleuzteyasA0KK+ygleyiheuvvA0KK+ygle2DnOyXtA0KK+ygleydmOq4uA0KK+ygleq4sOyImA0KK+ygleyiheyEoA0KK+ygleuzkeuPhA0KK+ygleuztOyLnQ0KK+ygleyasO2doA0KK+ygleyiheyImA0KK+ygle2DnOq4iA0KK+ygleu2gO2ZmA0KK+ygleyerO2DnA0KK+ygleyiheyImA0KK+yglSDshJ0NCivsoJXquIjsnbgNCivsoJXshJ3snqwNCivsoJXsooXsiKANCivsoJXsnbjsp4QNCivsoJXsmIHsiJwNCivsoJXsnKTsiJwNCivsoJXsooXsnbUNCivsoJXshKDtmIQNCivsoJXshJ3ssqANCivsoJXtmITsnpANCivsoJXsooXsp4QNCivsoJXsnbjtlZgNCivsoJXshKDsmqkNCivsoJXsmIHsiJgNCivsoJXsooXtg5wNCivsoJXsiJzqsr0NCivsoJXshLHshLgNCivsoJXsmqnrp4wNCivsoJXsooXtg5wNCivsoJXsnqzqtIANCivsoJXsooXqsbgNCivsoJXtmITsgrwNCivsoJXsooXtg5wNCivsoJXqt4DtmLgNCivsoJXrs7XsiJwNCivsoJXsnqzsm4UNCivsoJXsooXtmZgNCivsoJXsooXshJ0NCivsoJXsnqzrjZUNCivsoJXsoJXsmKQNCivsoJXso7zsl7QNCivsoJXrspTshLgNCivsoJXshLHsnbQNCivsoJXsooXqsJUNCivsoJXso7zsmIENCivsoJXsm5TsnbQNCivsoJXshJ3tlZgNCivsoJXsiJjsoJUNCivsoJXso7ztl4wNCivsoJXtg5zsi50NCivsoJXtg5ztlZwNCivsoJXrtInquLANCivsoJXso7ztmIQNCivsoJXtmqjsi6QNCivsoJXspJHtg4ENCivsoJXsiJjsiJgNCivsoJXso7ztmIQNCivsoJXtmZjsm5ANCivsoJXsiJjsmIENCivsoJXsmIHsiJgNCivsoJXso7ztmLgNCivsoJXrqoXtmIQNCivsoJXsmIHrjZUNCivsoJXso7zrrLgNCivsoJXso7ztmLgNCivsoJXtg5zrprwNCivsoJUg7KGwDQor7KCV7KSR7JqpDQor7KCV7KO87ZmYDQor7KCV7ISd7J20DQor7KCV7ZWE6riIDQor7KCV7Iic6ri4DQor7KCV7KO87ZmYDQor7KCV7ZeM7JqwDQor7KCV7J2Y6rG0DQor7KCV7YOc7KeEDQor7KCV7KSA7ISdDQor7KCV7ISx7JilDQor7KCV7LGE6rSADQor7KCV7Jq06raMDQor7KCV7KSA7IudDQor7KCV7LC97KeEDQor7KCV67SJ7IudDQor7KCVIOyaqQ0KK+ygleykke2ZlA0KK+ygleyImOuztA0KK+ygleygleq3vA0KK+ygleuzke2VnA0KK+ygleyngOyInA0KK+ygleuqheuMgA0KK+ygleydvOyXsA0KK+ygleyKueyEnQ0KK+ygleyngOyekA0KK+ygleyiheyInA0KK+ygleynhOq4uA0KK+ygleyYgeyasA0KK+ygleyngO2ZmA0KK+ygle2DnOyaqQ0KK+ygleyjvOyaqQ0KK+ygleustOq3nA0KK+ygleynhOqzpA0KK+ygleqwkeyErQ0KK+ygleyEneyerA0KK+ygleyaqeq3nA0KK+ygleynhOq1rQ0KK+ygleygleqwgQ0KK+ygleyaqeyekA0KK+ygleyEoOyEoA0KK+ygleynhOuPjA0KK+ygleyDge2biA0KK+ygleyiheq0gA0KK+ygleyiheyImA0KK+ygleynhOyDgQ0KK+ygleydvOyImQ0KK+ygle2VmeyImA0KK+ygleyYge2doA0KK+ygleynhOyEnQ0KK+ygleycoO2VhA0KK+ygleustOynhA0KK+ygleyEseq3nA0KK+ygleynhOyEuA0KK+ygleuqhey2nA0KK+ygleyYgeydvA0KK+ygleusuOyImA0KK+ygleynhOyLnQ0KK+ygleyduOyLnQ0KK+ygleuzkeyEnQ0KK+ygleyynOuPhA0KK+ygleynhOyYgQ0KK+ygleqyveyInA0KK+ygleu2hOyLnQ0KK+ygleyYge2ZmA0KK+ygleynhOyYgQ0KK+ygleyerOyLnQ0KK+ygle2ajO2ZmA0KK+ygle2MlOyZhA0KK+ygleynhOyaqQ0KK+ygleyYgeqxtA0KK+ygleyiheyXsA0KK+ygleygle2YhA0KK+ygleynhOyasA0KK+ygley5oOyYpQ0KK+ygleyngOq1rA0KK+ygleyXsOuPmQ0KK+ygleywqOqyvQ0KK+ygleyKueyIoA0KK+ygleuzkeuwsA0KK+ygleuLrO2ZmA0KK+ygleywqOq2jA0KK+ygle2VtOq1kA0KK+ygle2VreyInA0KK+ygleydtOyYgQ0KK+ygleywqOuPjA0KK+ygleyEseyasA0KK+ygleunjOq1kA0KK+ygleyEuOyyoA0KK+ygleywqOyLnQ0KK+ygle2DnOq1kA0KK+ygleqyveyEnQ0KK+ygleyDgeywrA0KK+ygleywqOyLnQ0KK+ygleyihe2YuA0KK+ygleuCmOuPmQ0KK+ygleyepeyduA0KK+ygleywqOybkA0KK+ygle2YuOyYpQ0KK+ygleq4iOyEsQ0KK+ygleuptO2DnA0KK+ygleywveuNlQ0KK+ygleywqO2DnA0KK+ygleq3gO2biA0KK+ygleygleydtQ0KK+ygleywveyImA0KK+ygle2VtOunjA0KK+ygley2mOq1rA0KK+ygleywqOuwsA0KK+ygleywveyLnQ0KK+ygleyYgeugqA0KK+ygleyyoOyInA0KK+ygleyerOyDgQ0KK+ygleywveynhA0KK+ygleydkeuPjA0KK+ygleycpO2drA0KK+ygleyXsOyEsQ0KK+ygleywve2DnQ0KK+ygle2YhOyXtA0KK+ygleydvOyYgQ0KK+ygleuylOyyoA0KK+ygleywve2YuA0KK+ygleygleynhA0KK+ygleywve2biA0KK+ygleycpOuegA0KK+ygleywve2ZmA0KK+ygleyyre2YhA0KK+ygleyerOyasA0KK+ygleygleyImQ0KK+ygleyxhOujoQ0KK+ygleyEseuPmQ0KK+ygleq3gO2ZlA0KK+ygleygleq4sA0KK+ygleyynOyLnQ0KK+ygleyihe2ctA0KK+ygleu0ieq4sA0KK+ygleydtOq3vA0KK+ygleyyoOq3nA0KK+ygleygle2ZlA0KK+ygleuPiOykgA0KK+ygleuptOq1rQ0KK+ygleyyoOyImA0KK+ygleynhO2YhA0KK+ygleyiheyXsA0KK+ygleusuOyjvA0KK+ygleyyoOyjvA0KK+ygleuFuOyIoA0KK+ygle2XjOq3nA0KK+ygleydvOyduA0KK+ygley2lOyblA0KK+ygleq4sOuqhQ0KK+ygleq4sOyInA0KK+ygleyaqeyWtQ0KK+ygley2mOq1kA0KK+ygle2YuOq3vA0KK+ygleuMgO2ZlA0KK+ygleyYgeuztQ0KK+ygley5mOybkA0KK+ygleyaqe2YhA0KK+ygleu2hOyImA0KK+ygleuvvOqzoA0KK+ygley5oOyEoA0KK+ygleygleuegA0KK+ygleyEne2drA0KK+ygleu0ieq2jA0KK+ygley+jOyEoA0KK+ygleu2hOq3nA0KK+ygleyYge2drA0KK+ygleqyveyImA0KK+ygley+jOyaqQ0KK+ygleyaqeq4uA0KK+ygleuMgO2YuA0KK+ygleyerOyEoA0KK+ygle2DnOqwkQ0KK+ygleywveqxtA0KK+ygleqyve2YuA0KK+ygleqyveq4sA0KK+ygle2DnOqzpA0KK+ygleyatOynkQ0KK+ygleq4sOuTnQ0KK+ygleyYgeyXsA0KK+ygle2DnOq3vA0KK+ygleuzke2DnQ0KK+ygley2lOyLnQ0KK+ygleykgO2DnA0KK+ygle2DnOq4uA0KK+ygleunjO2drA0KK+ygleq4uOqwlQ0KK+ygleyEse2DnA0KK+ygle2DnOuPhA0KK+ygleyInOydtA0KK+ygleq4sOyXtA0KK+ygleygleyInA0KK+ygle2DnOu0iQ0KK+ygleyEseyLnQ0KK+ygleyaqeyLnQ0KK+ygleyerOyImA0KK+ygle2DnOyEnQ0KK+ygle2XjOyEnQ0KK+ygleyDgeyImQ0KK+ygleybkOyihQ0KK+ygle2DnOyEsQ0KK+ygleyCvOunjA0KK+ygle2drO2ZmA0KK+ygleq4sOyEoA0KK+ygle2DnOyEsQ0KK+ygleygleuPmQ0KK+ygleuCqO2biA0KK+ygleyerOyXtA0KK+ygle2DnOyInA0KK+ygleuPme2YuA0KK+ygleyduO2dlA0KK+ygleydmOq3vA0KK+ygle2DnOyIoA0KK+ygleuCqOq2jA0KK+ygleqxtOydtA0KK+ygleuCqOuvvA0KK+ygle2DnOyLnQ0KK+ygle2XjOyekA0KK+ygleynhOyLnQ0KK+ygleyEseuCqA0KK+ygle2DnOyLnQ0KK+ygle2DnO2DnQ0KK+ygleyInOusuA0KK+ygleyiheqyvQ0KK+ygle2DnOyYgQ0KK+ygleyDgeq4iA0KK+ygleyEoOyerA0KK+ygleyEuOyErQ0KK+ygle2DnOyaqQ0KK+ygle2YuOybkA0KK+ygleyImOywrA0KK+ygleyImOyLnQ0KK+ygle2DnOyaqQ0KK+ygleyerO2DnQ0KK+ygle2VqOyImA0KK+ygleyaqey2nA0KK+ygle2DnOybkA0KK+ygleuzke2YuA0KK+ygleuPmeyihQ0KK+ygleuCqOyEnQ0KK+ygle2DnOycpA0KK+ygleyehOyYpQ0KK+ygleuPme2RnA0KK+ygleyEneyhsA0KK+ygle2DnOydvA0KK+ygleq4sO2ZmA0KK+ygleyYgeuhnA0KK+ygleyInOyImA0KK+ygle2DnO2YuA0KK+ygleyerO2VmQ0KK+ygleq4sO2YuA0KK+ygleyatOq2jA0KK+ygle2DnO2YuA0KK+ygleyaqeqzoA0KK+ygleq3nOyLnQ0KK+ygleyXrOuCqA0KK+ygle2DnO2ZmA0KK+ygleuFhO2YuA0KK+ygleyyoOq3oA0KK+ygleyDgeyInA0KK+ygle2DnO2ZmA0KK+ygleyInOyaqQ0KK+ygleyYpOycoA0KK+ygle2VtO2YuA0KK+ygle2DnO2ZmA0KK+ygleygleyDgQ0KK+ygleyerO2aqA0KK+ygleyLnO2biA0KK+ygle2MkOuTnQ0KK+ygleuqheydtA0KK+ygleu0ieyXtA0KK+ygleyiheuPhA0KK+ygle2MkOuTnQ0KK+ygleuPiOyLpA0KK+ygleqyveykkQ0KK+ygleydgOyEnQ0KK+ygle2MkOyglQ0KK+ygleyerOyynA0KK+ygleuLrOqzpA0KK+ygle2VnOuwsA0KK+ygle2MkO2DnA0KK+ygleyyreynhA0KK+ygleyerOyjvA0KK+ygleydtOydgA0KK+ygle2MkO2YhA0KK+ygleygkO2drA0KK+ygleynhOy2mA0KK+ygle2ZlOyDgQ0KK+ygle2Pieq3vA0KK+ygleustO2ZmA0KK+ygleuzke2drA0KK+ygleuzkeyEsQ0KK+ygle2VhOusmA0KK+ygle2VtO2biA0KK+ygleyImO2YuA0KK+ygleu2hOyXsA0KK+ygle2VhOu2hA0KK+ygleyEneqwkQ0KK+ygleyInO2YuA0KK+ygleq4iO2DnA0KK+ygle2VhO2YhA0KK+ygle2DnOuLqA0KK+ygleyYge2YuA0KK+ygle2MkO2DnA0KK+ygle2VmOyXsA0KK+ygleuzkeuNlQ0KK+ygleyEseyyoA0KK+ygleychOunjA0KK+ygle2VmOycpA0KK+ygleyduOyasA0KK+ygleyYgeywrA0KK+ygleuPme2YuA0KK+ygle2VmOyekA0KK+ygle2DnO2ZlA0KK+ygleyiheyglQ0KK+ygleyerO2YuA0KK+ygle2Vmeq3oA0KK+ygleycpOycpA0KK+yglSDsnbQNCivsoJXtmLjtmLgNCivsoJXtlZnrj5kNCivsoJXqs6TtmLgNCivsoJXsmIHrsKkNCivsoJXsmqnrtoQNCivsoJXtlZnrnpgNCivsoJXrjIDsi50NCivsoJXtl4zsi50NCivsoJXsmIHso7wNCivsoJXtlZzqsJANCivsoJXtmJztmIQNCivsoJXsmIHtg5wNCivsoJXsnqzspJENCivsoJXtlZzsmIENCivsoJXrtoDshKANCivsoJXsnYDtmLgNCivsoJXsm5TrtIkNCivsoJXtlZzsobANCivsoJXrtInsiJkNCivsoJXqsr3rp4wNCivsoJXquLDsi50NCivsoJXtlZzsobANCivsoJXsl7TsmqkNCivsoJXsg4HrrLgNCivsoJXsmIHtmZQNCivsoJXtlZzssqANCivsoJXtnJjsiJgNCivsoJXsmqntg50NCivsoJXsnKTsiJgNCivsoJXtlbTqsr0NCivsoJXshLHqt6ANCivsoJXsmqnqt5wNCivsoJXsiJztlZwNCivsoJXtlbTqt5wNCivsoJXsooXtmIQNCivsoJXsmIHrjZUNCivsoJXtlZzsg50NCivsoJXtlbTrtIkNCivsoJXtg5zquLANCivsoJXsiJztmLgNCivsoJXsmbjsmrQNCivsoJXtlbTsg4ENCivsoJXsiJzstpgNCivsoJXsmqnshJ0NCivsoJXsm5DsiJgNCivsoJXtlbTshLENCivsoJXshJ3rtIkNCivsoJXsiJzrgqgNCivsoJXsmqntnawNCivsoJXtlbTshLENCivsoJXssKjrk50NCivsoJXsoJXqta0NCivsoJXstpjshLgNCivsoJXtlbTsmIENCivsoJXqtIDsiJkNCivsoJXshLHsiJgNCivsoJXsmIHshJ0NCivsoJXtlbTsmqkNCivsoJXstpjtmLgNCivsoJXslpHqsJENCivsoJXsmIHssqANCivsoJXtlbTsmqkNCivsoJXrs5HtmIQNCivsoJXsg4HsiKANCivsoJXssL3siJgNCivsoJXtlbTsmrQNCivsoJXqsJHsmYQNCivsoJXqtJHtnaUNCivsoJXso7zsl7ANCivsoJXtlbTsobANCivsoJXslaDshK0NCivsoJXtmITshJ0NCivsoJXtmITtnawNCivsoJXtlbTssL0NCivsoJXsm5Tqsr0NCivsoJXqtJHtmIQNCivsoJXtg5zshJ0NCivsoJXtlbTssqANCivsoJXslrjsnKQNCivsoJXrs5HsobANCivsoJXtlZzrp4wNCivsoJXtlbTstpgNCivsoJXsoJXso7wNCivsoJXsm5Dsp4QNCivsoJXssL3tmLgNCivsoJXtl4ztg50NCivsoJXsoJDshKANCivsoJXsm5DspIANCivsoJXrj4TshK0NCivsoJXtmITrj4QNCivsoJXshKDsoJUNCivsoJXquLDqs6QNCivsoJXtg5zslZQNCivsoJXtmITrr7gNCivsoJXsm4XsmIENCivsoJXsmIHtg50NCivsoJXsooXrjZUNCivsoJXtmITslYQNCivsoJXsmKXrqqkNCivsoJXshKDso7wNCivsoJXqs4TshLENCivsoJXtmITsmKQNCivsoJXsnqzrqoUNCivsoJXsg4Hsi50NCivsoJXsg4Hqt6ANCivsoJXtmJXsmKQNCivsoJXstqnsnpANCivsoJXtjJDsooUNCivsoJXsnbztmLgNCivsoJXtmJzsmIENCivsoJXtlZnsmqkNCivsoJXstpjstpwNCivsoJXsg4HsnbQNCivsoJXtmJzsm5ANCivsoJXsiJzsp4ENCivsoJXsnqztm4gNCivsoJXsm5Drp4kNCivsoJXtmLjqsr0NCivsoJXsoJXsiJgNCivsoJXtlZztm4gNCivsoJXstqnrp4wNCivsoJXtmLjqt7wNCivsoJXsmIHtnawNCivsoJXsoJXrqqgNCivsoJXsoJDtmLgNCivsoJXtmLjsl7ANCivsoJXrjZXsm4UNCivsoJXrjIDtmIQNCivsoJXrj5nsnbQNCivsoJXtmLjtmIQNCivsoJXsmIHtg4ENCivsoJXqsJHssqANCivsoJXsnbjtg5wNCivsoJXtmY3quLANCivsoJXsooXrhbgNCivsoJXsg4HsiJwNCivsoJXshJ3so7wNCivsoJXtmY3shJ0NCivsoJXrs5Hrj4QNCivsoJXssL3tg5wNCivsoJUg7ISgDQor7KCV7ZmU7LaYDQor7KCV7KKF7KO8DQor7KCV67OR7IiYDQor7KCV7ISx7KCVDQor7KCV7ZmY7IOBDQor7KCV7KCV7YOcDQor7KCV6riw7JiBDQor7KCV7IOB7Zi4DQor7KCV7ZmY7YOdDQor7KCV65GQ6re8DQor7KCV7ISd7JqwDQor7KCV7JuQ7JykDQor7KCV7ZmY7YOdDQor7KCV7YOA65OdDQor7KCV7J247Zi4DQor7KCV7Jqp7ISgDQor7KCV7ZqM67SJDQor7KCV64+Z7J20DQor7KCV7ISx7LacDQor7KCV66+87ZmYDQor7KCV7Zqo7KGwDQor7KCV7YOc7KeEDQor7KCV7JiB7JuFDQor7KCV7KO87J20DQor7KCV7Zqo7ZmYDQor7KCV7JiB6recDQor7KCV7Jik64KoDQor7KCV7Jqp7JqwDQor7KCV7ZuI7IudDQor7KCV7Jqp67O1DQor7KCV7IOB67aEDQor7KCV7J2A7Zi4DQor7KCV7Z2l6rWtDQor7KCV7JiB7IiYDQor7KCV7JuQ64+ZDQor7KCV65GQ7Zi4DQor7KCV7Z2l6riwDQor7KCV7Iah6ri4DQor7KCV7YyQ7JmEDQor7KCV6rCR67SJDQor7KCV7Z2l7IiZDQor7KCV64+Z7IiYDQor7KCV7ZW0656YDQor7KCV67aE7Zi4DQor7KCV7Z2l7Je0DQor7KCV7Jio7LKgDQor7KCV7JuU7JuQDQor7KCV7J2Y7LmYDQor7KCV7Z2s7JuQDQor7KCV6riw6rWsDQor7KCV7JiB67KUDQor7KCV7IOB6re8DQor7KCV7Z2s7YOdDQor7KCV66qF7ZiBDQor7KCV7JuU6rOkDQor7KCV66y47Ja4DQor7KCV7Z2s7YOdDQor7KCV67OR7IiYDQor7KCV7ZeM66qpDQor7KCV7ZmN7JqpDQor7KCc6rCI67OR64+EDQor7KCc7YOc7JuF7IicDQor7KCc64yA7Zi464+ZDQor7KCc7J207ISd7IicDQor7KCc6rCI67OR7IigDQor7KCc7IiY6rSA7ZqoDQor7KCc66qF7LKc6ri4DQor7KCc7KSA6rec64KoDQor7KCc6rCI7YOc7JWUDQor7KCc7LKc7Z2s7J6lDQor7KCc7KCV7IiY64yADQor7KCc7IiY7Ja17YOcDQor7KCc6rK97IiZDQor7KCc7YOc7JqpDQor7KCc7JiB7J6QDQor7KCc7KSA7IOBDQor7KCc6rec7IudDQor7KCc7J6l7ZWZDQor7KCc7IaM7KSADQor7KCc7LCs7KeEDQor7KCc6riI67KUDQor7KCc7Jik7IudDQor7KCc6riw7LKgDQor7KCc7ZWc7Zi4DQor7KCc7IOB7JqwDQor7KCc7LC97Zi4DQor7KCc6rK97ZmUDQor7KCc7Zi47JuQDQor7KCc7Iic7J6QDQor7KCc7Jqp7ZmYDQor7KCc6rK97IiZDQor7KCc7YOc7JykDQor7KCc7Iuk6rK9DQor7KCcIOuwsA0KK+ygnOyDge2YhA0KK+ygnOyEne2YuA0KK+ygnOyYge2VtA0KK+ygnOuzkeyDgQ0KK+ygnO2ZjeyErQ0KK+ygnOunueybkA0KK+ygnOyerOyLnQ0KK+ygnOyEneyEoA0KK+ygnOyEseyEsQ0KK+ygnOuPmeybkA0KK+ygnOygkOyYpQ0KK+ygnOynhOyasA0KK+ygnOq3gOyEoA0KK+ygnOygley2mA0KK+ygnOygle2ZlA0KK+ygnOq4sOyhsA0KK+ygnOyerOyEnQ0KK+ygnOuPmeyDgQ0KK+ygnOyihe2YuA0KK+ygnOuzkeyaqQ0KK+ygnOyduOq3oA0KK+ygnOywveyImA0KK+ygnOyjvOyLnQ0KK+ygnOq4sOyInA0KK+ygnOyYgeyDgQ0KK+ygnOykkeyImA0KK+ygnOykgOyLnQ0KK+ygnOuCqOuegA0KK+ygnOuzkeq4sA0KK+ygnOyKueynhA0KK+ygnOyynOu0iQ0KK+ygnOyGjOyInA0KK+ygnOyInOyLnQ0KK+ygnOyduO2drA0KK+ygnOyynOu0iQ0KK+ygnOuCqO2VmQ0KK+ygnOyihe2YuA0KK+ygnOyDgeybhQ0KK+ygnO2Piey5mA0KK+ygnOuNleyatA0KK+ygnO2VnOuqhQ0KK+ygnOu0ieyInA0KK+ygnO2ZmOyEnQ0KK+ygnOynhOyDnQ0KK+ygnOyWuOyInA0KK+ygnOyXtO2doA0KK+yhsCDrrLQNCivsobDrp4ztnLQNCivsobDsnbzshJ0NCivsobDsnKTquLgNCivsobAg67aEDQor7KGw7ISx7ZiEDQor7KGw7KKF6ri4DQor7KGw6ri47KCQDQor7KGwIO2YuA0KK+yhsOyihe2drA0KK+yhsOyEseyerA0KK+yhsOywve2YuA0KK+yhsCDtmY0NCivsobDqsr3si50NCivsobDsuZjsl7QNCivsobDrr7zstpgNCivsobAg7ZmYDQor7KGw7J6s7ISgDQor7KGw7ZeM7IiYDQor7KGw7ZmN7IStDQor7KGw6rCV64KoDQor7KGw6riI7KO8DQor7KGw7ZmN7JqxDQor7KGw7ISx7IiYDQor7KGw6rG0656YDQor7KGw64+E7JqwDQor7KGw7JiB7JiBDQor7KGw7JiB7JqpDQor7KGw6rK96rWtDQor7KGw7JiB642VDQor7KGw7LaY7IudDQor7KGw7KeE7J6sDQor7KGw6rK9656YDQor7KGw7ZWZ7JmEDQor7KGw7ZmN7IicDQor7KGw7YOc6rK9DQor7KGw6rK9656YDQor7KGw7ISg7YOcDQor7KGw7JiB7ZmNDQor7KGw6rK97IucDQor7KGw6rK97IiYDQor7KGw7KO87JewDQor7KGw7JiB7Zi4DQor7KGw7IaM7J28DQor7KGw6rK97IiZDQor7KGw7KCV7JqwDQor7KGw66qF7JiBDQor7KGw7JuQ66eMDQor7KGw6rK97JilDQor7KGw66qF642VDQor7KGw7J2A64KcDQor7KGw67OR7ISdDQor7KGw6rK97LacDQor7KGw6rK97ZmYDQor7KGw7IOB7JilDQor7KGw7IOB7IudDQor7KGw6rK97Zi4DQor7KGw7J6s6riIDQor7KGw7KKF6re8DQor7KGwIOydhA0KK+yhsOqyve2YuA0KK+yhsOuzke2biA0KK+yhsOyihey2nA0KK+yhsOuzke2YuA0KK+yhsOqzhOyXsA0KK+yhsOyDgeyXsA0KK+yhsOyyoOuPjA0KK+yhsOyiheyXtA0KK+yhsOqzhOybkA0KK+yhsOyaqeyjvA0KK+yhsOybkOyhsA0KK+yhsOq4sO2XjA0KK+yhsOq0keuemA0KK+yhsOyerO2DnA0KK+yhsO2YhOyynA0KK+yhsOyerOq4uA0KK+yhsOq0keuemA0KK+yhsOyerOybkA0KK+yhsOusuOyyoA0KK+yhsOyImO2YuA0KK+yhsOq0keuemA0KK+yhsOywqOyXsA0KK+yhsOyDgeydgA0KK+yhsOyYpe2YuA0KK+yhsOq0keybhQ0KK+yhsOyCvOyngA0KK+yhsOydtO2DnA0KK+yhsO2VnOyEnQ0KK+yhsOq0ke2doA0KK+yhsOyduOqyvQ0KK+yhsOyehO2YuA0KK+yhsOydkeyYpQ0KK+yhsOq1req0kQ0KK+yhsOygleyyoA0KK+yhsOyiheu0iQ0KK+yhsOuzkeyDgQ0KK+yhsOq3gOyXsA0KK+yhsOygleyLrA0KK+yhsOyKueyEnQ0KK+yhsOyiheyInA0KK+yhsOq3gOyekA0KK+yhsOyDgeyXsA0KK+yhsOq4sOyEnQ0KK+yhsOyiheq3nA0KK+yhsOq3nOuMgA0KK+yhsOunjOuPhA0KK+yhsOyCvO2biA0KK+yhsOyYgeq3nA0KK+yhsOq3nOyDgQ0KK+yhsOuRkO2YhA0KK+yhsOq4sOy2nA0KK+yhsOyEseyInA0KK+yhsOq3nOyDgQ0KK+yhsOyasO2DnA0KK+yhsO2Vme2YuA0KK+yhsOygleqyrA0KK+yhsOq3nOyDgQ0KK+yhsOywveykgA0KK+yhsOyjvO2YhA0KK+yhsOyInO2RnA0KK+yhsOq3nOyImA0KK+yhsO2drOyYpA0KK+yhsOywveq3vA0KK+yhsOyEse2VmQ0KK+yhsOq3nOyYpA0KK+yhsOybkOyImA0KK+yhsO2YuOyxhA0KK+yhsO2drOq3nA0KK+yhsOq3nOyYpA0KK+yhsOuzteydtA0KK+yhsOyXsO2ZmA0KK+yhsO2YuO2drA0KK+yhsOq3nOyglQ0KK+yhsOyaqeyImQ0KK+yhsCDsmqkNCivsobDqsr3rr7gNCivsobDqt5zsspwNCivsobDtmITqsJENCivsobDsspztmZQNCivsobDquIjsobANCivsobDqt5ztmZQNCivsobDslYjsiJkNCivsobDsnbzquLANCivsobDsg4HsiJwNCivsobDqt7zsoJwNCivsobDssL3sspwNCivsobDrs5Hsi50NCivsobDsiJztlZwNCivsobDquIjsmKUNCivsobDshLHsobANCivsobDtmY3snpANCivsobDrhbjrtIkNCivsobDquIjsnpANCivsobDspJHsspwNCivsobDsirnrj4QNCivsobDsnZHtnLQNCivsobDquLDrj5kNCivsobDrj5ntmZgNCivsobDshJ3tmZgNCivsobDssL3sp4QNCivsobDrgqjtmIENCivsobDsooXsiJgNCivsobDsmqnrjZUNCivsobDsnqzsiJkNCivsobDrgrTsmqkNCivsobDsnbTrnb0NCivsobDsooXsoJUNCivsobDtjJDrjZUNCivsobDri6zqsr0NCivsobDsnqztlbQNCivsobDtjJDsmqkNCivsobDsooXqt5wNCivsobDri6zqtowNCivsobDso7zqsJENCivsobDsoJDsnKQNCivsobDri6ztmZQNCivsobDri6zshJ0NCivsobDtlbTtmLgNCivsobDrs7XrspQNCivsobDquIjtmZgNCivsobDri6zshJ0NCivsobDsoJXqtawNCivsobDrj4Tqt7wNCivsobDstpjquLgNCivsobDrjIDtmZQNCivsobDtnazquLANCivsobDrjIDsp4QNCivsobDshLjtmIQNCivsobDrjIDtmZQNCivsobDqt7zqta0NCivsobDsnqzqsr0NCivsobDrrLjrnoANCivsobDrjIDtmZQNCivsobDshJ3rpqwNCivsobDsnqztnaANCivsobDquLDstpwNCivsobDrjZXrnpgNCivsobDsmIHsobANCivsobDtg5zsiJgNCivsobDsmqnqtZANCivsobDrjZXsnoQNCivsobDrs7XtmZQNCivsobDssL3si50NCivsobDsnqXsmrANCivsobDrjZXso7wNCivsobDspIDqt5wNCivsobDsnKTssqANCivsobDrgpnsiJkNCivsobDrjZXtnawNCivsobDrj4TshJ0NCivsobDsnbzqta0NCivsobDrp4ztmLgNCivsobDrj4TsmqkNCivsobDsnbjtmLgNCivsobDsoJXsiJgNCivsobDtlZztmZgNCivsobDrj4TsoJwNCivsobDsooXrj4QNCivsobDsg4HtmY0NCivsobDstqnsiJgNCivsobDrj5nsl7QNCivsobDsgrzqtowNCivsobDsmqnqt7wNCivsobDshKDshKQNCivsobDrj5nsoJANCivsobDsp4TsmrANCivsobDsoJXsspwNCivsobDsooXsmrQNCivsobDrj5nssqANCivsobDsoJXsiJgNCivsobDtmLjssqANCivsobDtmITrtIkNCivsobDrj5ntm4gNCivsobDspJHsg4ENCivsobDrs5Hsg4ENCivsobDrj5nrjIANCivsobDrkZDtmIQNCivsobDrs7XrjZUNCivsobDsmIHsiJgNCivsobDrp4zsmrANCivsobDrk53smqkNCivsobDqt5zshJ0NCivsobDtmJztmLgNCivsobDquLDtlYQNCivsobDrp4ztmLgNCivsobDsnqztg5wNCivsobDsmqnqs6QNCivsobDsmKTshJ0NCivsobDrp5Dsg4ENCivsobDtmoztmZgNCivsobDsuaDsiJgNCivsobDrtIntmIQNCivsobDrp5DtlZkNCivsobDtg5zsiJgNCivsobDrkZDsnqwNCivsobDsnqzshJ0NCivsobDrp7nsobANCivsobDsmqnrtIkNCivsobDsnqzsnqwNCivsobDtmLjsiJwNCivsobDrqoXsiJkNCivsobDsmIHtmZgNCivsobDtg5zsi50NCivsobDsoJzsnpANCivsobDrqoXtmIQNCivsobDssq3qt7wNCivsobDssq3tg50NCivsobDrtInsiJgNCivsobDrrLTshK0NCivsobDrp4zrjZUNCivsobDtlYTqs6QNCivsobDsnbTtmIQNCivsobDrrLTsm5ANCivsobDsooXsmIENCivsobDsg4HtmLgNCivsobDshLHsiJwNCivsobDrrLjqt5wNCivsobDsooXtnawNCivsobDsnYDshLENCivsobDslZTshLENCivsobDrrLjshJ0NCivsobDsmIHrnpgNCivsobDshLjqt5wNCivsobDtg5zqt5wNCivsobDrrLjtmqgNCivsobDrs5HrjZUNCivsobDsp4TsnbwNCivsobDqtoztnawNCivsobDrr7jqsr0NCivsobDshLHsmIENCivsobDtg5zrp4wNCivsobDshLHsobANCivsobDrr7jshKANCivsobDrgqjsoJUNCivsobDsiJnshKANCivsobDsirnqs6QNCivsobDrr7zrgqgNCivsobDspJHquLgNCivsobDsmqnsnpANCivsobDtj4nsiJgNCivsobDrr7zsnqwNCivsobDsi6DquLANCivsobDqt5ztm4gNCivsobDsm5DtmLgNCivsobDrr7ztmLgNCivsobDqsr3qsrgNCivsobDsnqXtg5wNCivsobDspIDqt5wNCivsobDrsLHshK0NCivsobDshKDtmLgNCivsobDrjIDstpwNCivsobDsiJjtmZgNCivsobDrsLHshK0NCivsobDrrLTquLANCivsobDsiJjrs7UNCivsobDsnqzspJENCivsobDrspTrnpgNCivsobDquIjsmqkNCivsobDtmZTsp4QNCivsobDsiJjsiJgNCivsobDrs5HqsbQNCivsobDqt6DshJ0NCivsobDsnqzsmIENCivsobDrrLTqs6QNCivsobDrs5HqtawNCivsobDsmIHsp4QNCivsobDquLDslaANCivsobDshLHsiJwNCivsobDrs5Hqt5wNCivsobDsi6Dqt5wNCivsobDquLjshJ0NCivsobDssKjso7wNCivsobDrs5HsiJgNCivsobDsmbjsoJUNCivsobDso7zslaANCivsobDrp5Dqsr0NCivsobDrs5HsiJwNCivsobDsoJXsl7QNCivsobDsoJXshJ0NCivsobDsoJXtnawNCivsobDrs5HsmKQNCivsobDsjI3tmIQNCivsobDsnqXrj5kNCivsobDsmIHtmZgNCivsobDrs5HsmrANCivsobDsiJzquLANCivsobDsm5DslZQNCivsobDsg4HqtawNCivsobDrs5HspIANCivsobDsoJXshJ0NCivsobDsnKTsi50NCivsobDsmIHrjZUNCivsobDrs5HtmIQNCivsobDtlbTrtIkNCivsobDsp4DsmKUNCivsobDrs7XsiJwNCivsobDrs7XrnpgNCivsobDrjZXrj5kNCivsobDtmLjsiJwNCivsobDquLDsiKANCivsobDrs7XrnpgNCivsobDrj5ntnawNCivsobDshJ3tmLgNCivsobDtg5zssqANCivsobDrs7XsmqkNCivsobDsnZHssqANCivsobDsnqztmLgNCivsobDsirnsmIENCivsobDrs7XsoJwNCivsobDsooXtj6wNCivsobDrjZXshK0NCivsobDshLHrrLgNCivsobDrtInqt5wNCivsobDsnqzsiJgNCivsobDstpjsnqwNCivsobDrs5HtnawNCivsobDrtInro6ENCivsobDsp4TtmIQNCivsobDqs4TssKgNCivsobDtmY3rj5kNCivsobDrtInshJ0NCivsobDrgpntnawNCivsobDtg5zquLgNCivsobDsmIHroYANCivsobDrtInsiJwNCivsobDsnqzsobANCivsobDri6zsnpANCivsobDsmIHsmrENCivsobDrtIntmLgNCivsobDrs7Xqt7wNCivsobDsg4HqsJENCivsobDsg4HspIANCivsobDrtoDtmZgNCivsobDsnqztnawNCivsobDsp4TtnaANCivsobDrj5nssqANCivsobDrtoTsnbQNCivsobDsooXsiJgNCivsobDshLHqs7UNCivsobDsoJzsmqkNCivsobDsgrzrj4wNCivsobDsm5Dtg50NCivsobDsgrzquLgNCivsobDsp4Tqt5wNCivsobDsgrzrj4wNCivsobDshKDsl7ANCivsobDsmIHrrLgNCivsobDrrLjsmIENCivsobDsgrzsmqkNCivsobDrtoTqt5wNCivsobDsg4HsiJgNCivsobDrs5HrgqgNCivsobDsg4HquLANCivsobDqt5zqs6QNCivsobDsmqnsiJwNCivsobDshLHtmZQNCivsobDsg4HrnpgNCivsobDrp5DrnoANCivsobDsg4HshK0NCivsobDsnqXtlbQNCivsobDsg4HroZ0NCivsobDsnbTsnbgNCivsobDshLjtmLgNCivsobDsoJXsm5ANCivsobDsg4HrqqkNCivsobDsg4HshLENCivsobDrs5HtnawNCivsobDtg5ztg50NCivsobDsg4Hsl7ANCivsobDsoJXsmqkNCivsobDtg5zsmrANCivsobDsp4Tsl7ANCivsobDsg4HsmKQNCivsobDsmIHtg50NCivsobDrj5ntm4gNCivsobDrgpnsm4UNCivsobDsg4HsmKUNCivsobDrjIDsmqkNCivsobDsnqzsobANCivsobDssKjrs5ENCivsobDsg4HsmqkNCivsobDsoJXstpgNCivsobDtlZzrtIkNCivsobDsmIHsi50NCivsobDsg4Htg5wNCivsobDsmqnsiJkNCivsobDssq3tm4gNCivsobDsoJXslpENCivsobDsg4HtlZkNCivsobDsiJnsiJkNCivsobDquIjssqANCivsobDqt7zrp4wNCivsobDsg4HtmLgNCivsobDshKDrjIANCivsobDstpjtnaANCivsobDrj4TsiJkNCivsobDshJ3rnb0NCivsobDshJ3snpANCivsobDsooXtmqgNCivsobDsnqzrjZUNCivsobDshJ3rnpgNCivsobDsnoTsl7ANCivsobDshozsmIENCivsobDsiJzsp4QNCivsobDshJ3rp4wNCivsobDqs4TsoJANCivsobDsg4HsmqkNCivsobDssqDsiKANCivsobDshJ3slZQNCivsobDtlbTsm5ANCivsobDqsr3rsLENCivsobDsnKTquLANCivsobDshJ3sp4ANCivsobDsooXsmKUNCivsobDsoJXsmqkNCivsobDsmqnsnKQNCivsobDshJ3tmIQNCivsobDsnqzrgqgNCivsobDrgqjssqANCivsobDsnoTsoJUNCivsobDshKDsoJwNCivsobDsp4TspJENCivsobDsp4TtmLgNCivsobDsnqztnawNCivsobDshKDsoJwNCivsobDssL3tmLgNCivsobDtl4ztmIQNCivsobDrs5HquLANCivsobDshLHqs6QNCivsobDsiJzsiJgNCivsobDqsr3spIANCivsobDslpHsoJUNCivsobDshLHqta0NCivsobDsnbXsoJwNCivsobDsmIHsnpANCivsobDsnZHsiJwNCivsobDshLHqtowNCivsobDsoJXsnbQNCivsobDtlZzshKANCivsobAg6re8DQor7KGw7ISx6re8DQor7KGw7ZmN7ZmYDQor7KGw7ISx7J20DQor7KGw7JiB7ZmNDQor7KGw7ISx65OdDQor7KGw66+47LaYDQor7KGw7JiB7KGwDQor7KGw67OR6raMDQor7KGw7ISx66OhDQor7KGw6reA6ri4DQor7KGw64us7IOBDQor7KGw7Lmg6rSADQor7KGw7ISx67O1DQor7KGw7J2467aADQor7KGw7J286raMDQor7KGw6rSR7ISgDQor7KGw7ISx7IicDQor7KGw7KCV7Z2sDQor7KGw7Iic7JiBDQor7KGw7ISd7ZmYDQor7KGw7ISx7JilDQor7KGw6rCR6riwDQor7KGw7LKc7ZmYDQor7KGw7Iug6rWQDQor7KGw7ISx7JqwDQor7KGw7J6s67SJDQor7KGw7Iic7ISdDQor7KGw7J6s7ISgDQor7KGw7ISx7KeEDQor7KGw7J6E7J28DQor7KGw6rWQ7ZmYDQor7KGw7LCs7IigDQor7KGw7ISx7LKcDQor7KGw7Jqp7YOdDQor7KGw7Jq07YOcDQor7KGw7JiB66GcDQor7KGw7ISx7ZiEDQor7KGw7J6s642VDQor7KGw7IaM7ZW0DQor7KGw7IiY7Je0DQor7KGw7ISx7ZmYDQor7KGw7ZmY6rWtDQor7KGw7KO87IiZDQor7KGw67OR7ZWcDQor7KGw7IaM7ISdDQor7KGw6rSR7Zi4DQor7KGw7J2A7IudDQor7KGw7YOc7J24DQor7KGw7IaM7IicDQor7KGw6riI7ISgDQor7KGw64+Z6re8DQor7KGw7JiB6riwDQor7KGw7IaM7IigDQor7KGw7JiB7ZWZDQor7KGw7J6s7JuQDQor7KGw7YOc7JuQDQor7KGw7IaM7KGwDQor7KGw7ISx66eMDQor7KGw7Iic7KeEDQor7KGw7JuU7JqpDQor7KGw7IaQ7JqpDQor7KGw7J286rWsDQor7KGw7JiB7J20DQor7KGw7KCV7IiYDQor7KGw7IiY642VDQor7KGw7LaY64+IDQor7KGw7ZeM65OdDQor7KGw7J6s7IicDQor7KGw7IiY64+ZDQor7KGw67O17JilDQor7KGw7J6s7IudDQor7KGw7Ja47Zi4DQor7KGw7IiY7JWUDQor7KGw7ISd66qpDQor7KGw6re86recDQor7KGw7J6s7KCVDQor7KGw7IiY7JWUDQor7KGw6rCV7IStDQor7KGw7LaU7IiYDQor7KGw7KO87ZmYDQor7KGw7IiY7JuQDQor7KGw7Kad6riwDQor7KGw67OR66eMDQor7KGw7ISx6rWtDQor7KGw7IiY7LCsDQor7KGw7Jyk67CwDQor7KGw7J247KGwDQor7KGw7IK87ISgDQor7KGw7IiY7YOcDQor7KGw66+87ISxDQor7KGw7J6R7J6QDQor7KGw7JuQ642VDQor7KGw7IiY7ZmYDQor7KGw7J287IicDQor7KGw7Jqp6rK9DQor7KGw7LC97JuQDQor7KGw7Iic64KoDQor7KGw7IK867O1DQor7KGw7KO86rWsDQor7KGw7Iig7Je0DQor7KGw7Iic65OdDQor7KGw6rK97LKgDQor7KGw7JiB7IiZDQor7KGw7LaY64+EDQor7KGw7Iic7JWUDQor7KGw7JWI642VDQor7KGw66qF7JmEDQor7KGw7Jqp64+ZDQor7KGw7Iic7JWUDQor7KGw7KKF7J6sDQor7KGw7J6s7JewDQor7KGw67OR7LKgDQor7KGw7Iic7JewDQor7KGw6rK967KUDQor7KGw7YOc67aVDQor7KGw7ZW0642VDQor7KGw7Iic7J6sDQor7KGw6riw64WADQor7KGw7KCQ6re8DQor7KGw7ISx6re8DQor7KGw7Iic7J6sDQor7KGw6rK97IukDQor7KGw7KCQ6regDQor7KGw7KCV7JiBDQor7KGw7Iic7KCcDQor7KGw6rG0642VDQor7KGw7KCV7KSADQor7KGw66y47Z2sDQor7KGw7Iic7KeRDQor7KGw642V7IiYDQor7KGw7Lmg7KeEDQor7KGw7J6l7JewDQor7KGw7Iic7ZiEDQor7KGw7ZmN7IudDQor7KGw7J6E7Je0DQor7KGw7J2464yADQor7KGw7Iq566y0DQor7KGw7JyE7Zi4DQor7KGw7J247KeEDQor7KGw7IiY7KKFDQor7KGw7IyN7J20DQor7KGw7Iud67CwDQor7KGw7IOB7IiYDQor7KGw7Zi467CVDQor7KGw7JWI7J6sDQor7KGw7JiB7JilDQor7KGw7Jqp7JqwDQor7KGw64+Z7JqwDQor7KGw7JWg7KO8DQor7KGw67OR7JqwDQor7KGw7Iic7JqpDQor7KGw7Iic6regDQor7KGw7JaR656YDQor7KGw64yA7IStDQor7KGw7KeE7JuQDQor7KGw7KCV7IOBDQor7KGw7Ja17KCcDQor7KGw67OR7IudDQor7KGw7Jq07Z2sDQor7KGw6rCR7JilDQor7KGw7Jew7J20DQor7KGw64+E7YOcDQor7KGw64us7IiZDQor7KGw7KCc6re8DQor7KGw7Jew7J6QDQor7KGw7ISg7IigDQor7KGwIOuTnQ0KK+yhsOyYpO2YuA0KK+yhsOyYgeq4sA0KK+yhsOyerOyhsA0KK+yhsO2YhOyjvA0KK+yhsOuFuOyInA0KK+yhsOyYgeq4sA0KK+yhsOuLpOyyoA0KK+yhsOu2hOuhnQ0KK+yhsOyGjOuemA0KK+yhsOyYgeq4sA0KK+yhsOu2hOuqhQ0KK+yhsOuqheq3vA0KK+yhsOyYge2drA0KK+yhsOyYgeq4uA0KK+yhsOuFuOyErQ0KK+yhsO2VtOyEoA0KK+yhsCDshJ0NCivsobDsmIHrnpgNCivsobDsmIHqt7wNCivsobDrs7Xsi50NCivsobDsnKHtmLgNCivsobDsmIHrnpgNCivsobDsmqnsiJgNCivsobDrrLjqt7wNCivsobDsmrTtmZQNCivsobDsmIHrnpgNCivsobDsl7DsiJwNCivsobDtlZnsg4ENCivsobDstpjshLENCivsobDsmIHrp4wNCivsobDrhbjshLENCivsobDsg4Hqt5wNCivsobDsoJDqtIANCivsobDsmIHrqqkNCivsobDsmqnqs6ANCivsobDsuaDshJ0NCivsobDquLDtnawNCivsobDsmIHshJ0NCivsobDsoJXtjJANCivsobDrr7jtg4ENCivsobAg7Z2sDQor7KGw7JiB7ISxDQor7KGw7ISx7IudDQor7KGw7KeE7ISdDQor7KGw64+Z64+MDQor7KGw7JiB7IiYDQor7KGw7KCQ7JiBDQor7KGw7IiZ7KO8DQor7KGw6riw642VDQor7KGw7JiB7IiYDQor7KGw7KKF7Je0DQor7KGw7YOc7ZmYDQor7KGw7ISx7ISdDQor7KGw7JiB7IiZDQor7KGw6rSR7Je0DQor7KGw6reA7JuQDQor7KGw7IiY7ZmYDQor7KGw7JiB7JilDQor7KGw64+Z7JilDQor7KGw7ZW0642VDQor7KGw6ri47JewDQor7KGw7JiB7J6QDQor7KGw7IOB7J6QDQor7KGw6rG07ZWZDQor7KGw7LaY7ZmYDQor7KGw7JiB7J6QDQor7KGw66qF7Je9DQor7KGw7Zi47KGwDQor7KGw7IOB7Z2gDQor7KGw7JiB7J6sDQor7KGw67OR7IicDQor7KGw7JyE7ISdDQor7KGw64yA7IicDQor7KGw7JiB7KCcDQor7KGw7KeE7JqwDQor7KGw7ZWc7IiYDQor7KGw7ISx642VDQor7KGw7JiB7KGwDQor7KGw7JiB7LCsDQor7KGw7IK87LKcDQor7KGw7YOc7IStDQor7KGw7JiB7KeRDQor7KGw7KeE7ZqoDQor7KGw7IiY7KO8DQor7KGw7Jyk7ISdDQor7KGw7JiB7LKgDQor7KGw7KKF7ISxDQor7KGw7KCV66OhDQor7KGw7ZWZ6rSADQor7KGw7JiB7YOBDQor7KGw7Jqx7IStDQor7KGw7Jyk7ZmNDQor7KGw7KO87IiYDQor7KGw7JiB7ZWZDQor7KGw7Jew67O1DQor7KGw7LaY6riwDQor7KGw6rCA642VDQor7KGw7JiB7Zi4DQor7KGw7IiY67O1DQor7KGw7IK867CwDQor7KGw67OR64yADQor7KGw7JiB7Zi4DQor7KGw7IOB7IOdDQor7KGw7J247KeADQor7KGw7J287KCVDQor7KGw7JiB7ZqoDQor7KGw7Jil7J6sDQor7KGw64yA64+ZDQor7KGw7Jm466a8DQor7KGw7JiB7Z2sDQor7KGw6riI7JWgDQor7KGw7ZWZ656YDQor7KGw6riw7J20DQor7KGw7JiI7J24DQor7KGw7KeE7JaRDQor7KGw7Jqp64+EDQor7KGw7Iic7JewDQor7KGw7Jik7YOcDQor7KGw7KKF7ISdDQor7KGw7J6l6rOkDQor7KGw67SJ7JewDQor7KGw7Jil6rOEDQor7KGw7KCV7LKgDQor7KGw7KO87JewDQor7KGw7Z2s7ZGcDQor7KGw7Jil67aEDQor7KGw7KCV66y0DQor7KGw66y47ISgDQor7KGw7KCV7IicDQor7KGw7Jil7ISgDQor7KGw7KeE64W4DQor7KGw64+Z7ZqoDQor7KGw7Iic7Z2sDQor7KGw7Jil7ZiEDQor7KGw7ZWY7JmEDQor7KGw7KKF7IiYDQor7KGw7J6s66+8DQor7KGw7Jm47IigDQor7KGw7J247Zi4DQor7KGw6rK97ZmYDQor7KGw7IiY7ISdDQor7KGw7Jqp6rG0DQor7KGw7J2A7JiBDQor7KGw7J6s66eMDQor7KGw64yA7LacDQor7KGw7Jqp6raMDQor7KGw7Iic7ZmUDQor7KGw7ISg6regDQor7KGw7ZiB7IS4DQor7KGw7Jqp6re8DQor7KGw7KSA7IStDQor7KGw6rec7ISgDQor7KGw67OR7LKcDQor7KGw7Jqp6riwDQor7KGw7Iug6re8DQor7KGw7YOc7KGwDQor7KGw7KKF7KSADQor7KGw7Jqp64yADQor7KGw7J6l7LKcDQor7KGw7J6s7IOBDQor7KGw7YyQ7IiZDQor7KGw7Jqp64+MDQor7KGw7KKF7LC9DQor7KGw7KKF7Zi4DQor7KGw64Ko7IigDQor7KGw7Jqp67O1DQor7KGw7KKF7JqwDQor7KGw67SJ7JiBDQor7KGw7J6s6recDQor7KGw7Jqp67aEDQor7KGw6rK97LKgDQor7KGw6rWs7LaYDQor7KGw7J287JilDQor7KGw7Jqp7ISxDQor7KGw7ISd7KeEDQor7KGw7IiZ7Zi4DQor7KGw7Jqp7JqpDQor7KGw7Jqp7IicDQor7KGw7ISx7Zi4DQor7KGw7JuQ7J6EDQor7KGw7J287Zi4DQor7KGw7Jqp7IigDQor7KGw7Jqw7ISgDQor7KGw7ZmN7KCVDQor7KGw7J287ZmYDQor7KGw7Jqp7KSADQor7KGw7YOc7Je0DQor7KGw7KSR7JW8DQor7KGw7Jqp6rK9DQor7KGw7Jqp7LacDQor7KGw7ZmU7ISdDQor7KGw66y47Zi4DQor7KGw7J287J20DQor7KGw7Jqp7YOdDQor7KGw7IOB7IOBDQor7KGw7KCQ7JqpDQor7KGw7YOc7IOBDQor7KGw7Jqp7YyQDQor7KGw7LCs7KCVDQor7KGwIOyDgQ0KK+yhsOyihe2YuA0KK+yhsOyaqe2VmQ0KK+yhsOqyve2YuA0KK+yhsOygleu2hA0KK+yhsO2DnOyYgQ0KK+yhsOyaqe2VnA0KK+yhsOqyveuNlQ0KK+yhsO2YhOyErQ0KK+yhsOu2hO2ZmA0KK+yhsOyaqe2YgQ0KK+yhsOygle2YuA0KK+yhsO2aqO2DnA0KK+yhsOyjvOq4sA0KK+yhsOyaqe2YuA0KK+yhsOuzkeydtA0KK+yhsOuqheyXtA0KK+yhsOy2qe2YuA0KK+yhsOyaseuemA0KK+yhsOyCvOyEsQ0KK+yhsOyngOynhA0KK+yhsOyduO2DnQ0KK+yhsOyatO2VmQ0KK+yhsOychOydvA0KK+yhsOyihe2ZmA0KK+yhsOyImOqwkQ0KK+yhsOybkOq3nA0KK+yhsOycoe2biA0KK+yhsOunjOywrA0KK+yhsOuqheyekA0KK+yhsOybkOyerA0KK+yhsOyDgeyduA0KK+yhsO2YuO2YuA0KK+yhsO2DnOydtA0KK+yhsOybkOyjvA0KK+yhsOq1kO2YuA0KK+yhsOyxhOuNlQ0KK+yhsOuNleuLrA0KK+yhsOybkO2YhA0KK+yhsOykkeyEnQ0KK+yhsOyDgeuwsA0KK+yhsOyInOyXtA0KK+yhsOybkO2YuA0KK+yhsOygle2YhA0KK+yhsO2YuO2YhA0KK+yhsOyImOyekA0KK+yhsOychOyhsA0KK+yhsO2MkOyImA0KK+yhsOywveyhsA0KK+yhsOqyveyImA0KK+yhsOycoeyhsA0KK+yhsOyYgeyDnQ0KK+yhsOyInOqzpA0KK+yhsOu0ieyErQ0KK+yhsOycpOq1rA0KK+yhsOq3vOyImA0KK+yhsOycpO2drA0KK+yhsOuzkeu2gA0KK+yhsOycpOq4sA0KK+yhsOyEoOyImA0KK+yhsOy2mOq1kA0KK+yhsOywqOq4sA0KK+yhsOycpOuemA0KK+yhsOyerOq2jA0KK+yhsOyLoOyEoA0KK+yhsOyyoOywvQ0KK+yhsOycpOyCvA0KK+yhsO2Vme2drA0KK+yhsO2YleyImA0KK+yhsO2MkOydtQ0KK+yhsOycpOyLnQ0KK+yhsOq4sOyaqQ0KK+yhsOuqhey2nA0KK+yhsOyImOyInA0KK+yhsOycpOygnA0KK+yhsOunjOydvA0KK+yhsOyaqeyihQ0KK+yhsOyyoOyyoA0KK+yhsOycpOygnA0KK+yhsOuPmeq1rA0KK+yhsOyYpeyekA0KK+yhsOyEoOuPjA0KK+yhsOydmO2MkA0KK+yhsOyYgeq4sA0KK+yhsOyImOyekA0KK+yhsOyWke2PrA0KK+yhsOydmO2ZmA0KK+yhsOq4uOyErQ0KK+yhsOygleuNlQ0KK+yhsO2YhOyyoA0KK+yhsOydtOq4sA0KK+yhsOq0keyZhA0KK+yhsOuRkOyEnQ0KK+yhsOyerOyImQ0KK+yhsOydtOq4sA0KK+yhsOyEseuwsA0KK+yhsOyiheyImA0KK+yhsOyYgeyImA0KK+yhsOydteyEsQ0KK+yhsOyaqeujoQ0KK+yhsOygkOyEnQ0KK+yhsOyEne2YhA0KK+yhsOyduOyEnQ0KK+yhsOuPhOyInA0KK+yhsO2DnOunjA0KK+yhsOustOyEoA0KK+yhsOyduOyImA0KK+yhsOygleyImA0KK+yhsOygleqzpA0KK+yhsOuNleyLnQ0KK+yhsOyduOyImQ0KK+yhsOqyveyInA0KK+yhsOqwkeykgA0KK+yhsOydtOyynA0KK+yhsOyduOyInA0KK+yhsOygleyyoA0KK+yhsOy2mOuPmQ0KK+yhsO2DnOyLnQ0KK+yhsOyduOyLnQ0KK+yhsOycpOyEnQ0KK+yhsOqyveyXtA0KK+yhsOyduOyasA0KK+yhsOyduOygnA0KK+yhsOuzteuvuA0KK+yhsOuqheyYpQ0KK+yhsO2VnOq4sA0KK+yhsOyduO2VhA0KK+yhsOyYgeyEnQ0KK+yhsOyKueycpA0KK+yhsOyEseyImA0KK+yhsOyduO2YhA0KK+yhsOyEoOq3vA0KK+yhsOywveyErQ0KK+yhsOu2gOyekA0KK+yhsOyduO2YhA0KK+yhsOqyveuTnQ0KK+yhsOuzte2WpQ0KK+yhsO2aqOyImQ0KK+yhsOyduO2drA0KK+yhsOyaqe2VmQ0KK+yhsOyKueq3nA0KK+yhsOybkOyIoA0KK+yhsOydvOuPhA0KK+yhsO2YuOyLnQ0KK+yhsOy2mOq4sA0KK+yhsOyEseq3vA0KK+yhsOydvOyEoA0KK+yhsOyiheynhA0KK+yhsOywve2YhA0KK+yhsO2YnOybhQ0KK+yhsOyehOyLnQ0KK+yhsOyYge2YhA0KK+yhsOqwkeybkA0KK+yhsOynhOyXtA0KK+yhsOyehO2VmQ0KK+yhsOyImOywvQ0KK+yhsOuPmeyLnQ0KK+yhsOuMgOyXsA0KK+yhsOyepeq3vA0KK+yhsOyblOuhnQ0KK+yhsOyihe2YhA0KK+yhsOuPmeyaqQ0KK+yhsOyepeuemA0KK+yhsOyEseumvA0KK+yhsOuzkeyIoA0KK+yhsOyerOqzpA0KK+yhsOyepeyErQ0KK+yhsOyInOyerA0KK+yhsOyiheyhsA0KK+yhsOyerOyImA0KK+yhsOyepeyImA0KK+yhsOyDge2drA0KK+yhsOyYpe2ZmA0KK+yhsO2DnOq4sA0KK+yhsOyepe2YuA0KK+yhsO2YhO2DnA0KK+yhsOq0ke2ZjQ0KK+yhsO2YuOyglQ0KK+yhsOyerOq3nA0KK+yhsO2YhOyihQ0KK+yhsOyYgeuMgA0KK+yhsO2VmeybhQ0KK+yhsOyerOuMgA0KK+yhsOygleq4uA0KK+yhsOygleq4sA0KK+yhsO2drOyXsA0KK+yhsOyerOuNlQ0KK+yhsO2DnOyjvA0KK+yhsOygkOyZhA0KK+yhsOyihe2YhA0KK+yhsOyerOuPhA0KK+yhsOq4sOyEoA0KK+yhsOyiheybkA0KK+yhsOyblOyXtA0KK+yhsOyerOuPmQ0KK+yhsOybkO2DnQ0KK+yhsOyYpeyjvA0KK+yhsOyEseyYgQ0KK+yhsOyerOunjA0KK+yhsOq4sOunjA0KK+yhsOuzkeyhsA0KK+yhsOyerOyIoA0KK+yhsOyerOusuA0KK+yhsOyEseyImA0KK+yhsOq3vOywrA0KK+yhsOqyve2drA0KK+yhsOyerOusuA0KK+yhsO2VmeydtA0KK+yhsOuzkeyLnQ0KK+yhsOywveybkA0KK+yhsOyerOyInA0KK+yhsOykgOyyoA0KK+yhsOyKueyLnQ0KK+yhsOuLrO2DnA0KK+yhsOyerOyYpQ0KK+yhsO2drO2DnA0KK+yhsOuvuO2biA0KK+yhsOygleyImA0KK+yhsOyerOyaqQ0KK+yhsOyYgeyXsA0KK+yhsOyImOuNlQ0KK+yhsOuzkeyaqQ0KK+yhsOyerOyglQ0KK+yhsOuqheyglQ0KK+yhsOyEsey2nA0KK+yhsOyEne2YhA0KK+yhsOyerOyynA0KK+yhsOywveyekA0KK+yhsOyEoO2ZlA0KK+yhsOuqheyImA0KK+yhsOyerOyynA0KK+yhsOyjvOyImA0KK+yhsOyGkOy2nA0KK+yhsOuvuO2DnA0KK+yhsOyerOyyoA0KK+yhsOyerOyaqQ0KK+yhsO2YhOuCqA0KK+yhsO2dpeyyoA0KK+yhsOyerOyyoA0KK+yhsOyLpOyLnQ0KK+yhsCDsiJkNCivsobDrgqjsmqkNCivsobDsnqzssqANCivsobDrrLTrp4wNCivsobDsnqzsm5ANCivsobDsiJjsnbQNCivsobDsnqztg5wNCivsobDtlbTsiJkNCivsobDsnqzshJ0NCivsobDshJ3siJgNCivsobDsnqztg5wNCivsobDsmIHtmLgNCivsobDrqoXtmLgNCivsobDssqDshK0NCivsobDsnqztlZwNCivsobDsg4HtmLgNCivsobDrqoXtnawNCivsobDsp4TrrLUNCivsobDsnqztmLgNCivsobDsg4HtmY0NCivsobDqsr3sirkNCivsobDsmqnsi50NCivsobDsnqztm4gNCivsobDsoJXquLgNCivsobDsnqzrgqgNCivsobDtmLjrjIANCivsobDsoJDrjZUNCivsobDqsJHqtowNCivsobDrj5ntmLgNCivsobDsoJXtl4wNCivsobDsoJDsiJgNCivsobDsiJzqt5wNCivsobDsnbjsi50NCivsobDrs5Hsg4ENCivsobDsoJDsiKANCivsobDsg4HroKgNCivsobDtg5zsiJgNCivsobDrgqjsmrQNCivsobDsoJDsmKUNCivsobDshLHrs5ENCivsobDtg5zrj5kNCivsobDsi5zrj5kNCivsobDsoJXqsIENCivsobDrhYTtmIQNCivsobDtmY3tnawNCivsobDrtIntm4gNCivsobDsoJXquLANCivsobDsiJjtmIQNCivsobDsnqztmZgNCivsobDtg5zsiJwNCivsobDsoJXrnpgNCivsobDtlYTsnpANCivsobDtjJDsooUNCivsobDquLDsiJgNCivsobDsoJXrr7gNCivsobDsnbjtnawNCivsobDrspTrtpUNCivsobDshJ3snpANCivsobDsoJXrs7QNCivsobDtlqXtmZgNCivsobDtg5ztmLgNCivsobDtlonsi50NCivsobDsoJXshK0NCivsobDsooXtmIQNCivsobDsp4TqtawNCivsobDsmIHsiJwNCivsobDsoJXsiJgNCivsobDquLDrtoQNCivsobDspIDsiJgNCivsobDrqoXsnpANCivsobDsoJXsiJgNCivsobDsoJXsm5ANCivsobDsnbzquLgNCivsobDrqoXsmrENCivsobDsoJXsiJkNCivsobDqsr3shLgNCivsobDshJ3tjJANCivsobDsg4Hqt7wNCivsobDsoJXsi50NCivsobDsnqzshJ0NCivsobDsooXtm4gNCivsobDsmIHsiJwNCivsobDsoJXtmIQNCivsobDrp4zsm5ANCivsobDsnqzsmrQNCivsobDqtJHtnawNCivsobDsoJXtmIQNCivsobDqt5zsp4QNCivsobDtko3sm5ANCivsobDqtJHrsLANCivsobDsoJXtmLgNCivsobDssqDsg4ENCivsobDsnbzqt7wNCivsobDsoJXssqANCivsobDsoJXtmLgNCivsobDqsr3qt6ANCivsobDsiJjsiJgNCivsobDsooXsnbgNCivsobDsoJXtmLgNCivsobDsnbjquLgNCivsobDsnYDsspwNCivsobDsm5DsiJkNCivsobDsoJXtmqgNCivsobDsmrTsmqkNCivsobDtmLjtg4ENCivsobDsp4TsmrANCivsobDsooXshJ0NCivsobDsi6Dsp4QNCivsobDsoJDsmrANCivsobDsg4HtmLgNCivsobDsooXshJ0NCivsobDsnbjsiJgNCivsobDshozsg4ENCivsobDrs7XsmqkNCivsobDsooXsiJgNCivsobDtg5zquLANCivsobDrr7jssqANCivsobDrs5HtlZkNCivsobDsooXsiJgNCivsobDtg5zsp4QNCivsobDsoJXtmLgNCivsobDtj4nspIANCivsobDsooXsiKANCivsobDqt7zrhYQNCivsobDsiJnsi50NCivsobDsooXshKANCivsobDso7ztnawNCivsobDrqoXquLANCivsobDsoJDrnpgNCivsobDqt5ztg5wNCivsobDspIDquLANCivsobDtmJXsg4ENCivsobDsgqzrjZUNCivsobDqsJHrtoQNCivsobDspIDshJ0NCivsobDqt5zqta0NCivsobDrrLjsiJwNCivsobDsnKTsm5ANCivsobDspIDsl7ANCivsobDsp4TtmLgNCivsobDrs7XqtIANCivsobDsm5DshK0NCivsobDspIDsmrANCivsobDsirntlZkNCivsobDstpjquLgNCivsobDsmIHtg5wNCivsobDspIDssqANCivsobDssKjrrLgNCivsobDsnqzrsLANCivsobDsiJnqsJENCivsobDspIDtnawNCivsobDsmqnsp4QNCivsobDstpjsnqwNCivsobDtl4ztmZgNCivsobDspJHsoJwNCivsobDtmIHrs7UNCivsobDsoJXqtIANCivsobDqsJHtg5wNCivsobDspJHtmZgNCivsobDsg4HsiJgNCivsobDshJ3si50NCivsobDrj4jrjIANCivsobDsp4DqsJENCivsobDshLHrjIANCivsobDsmIHtnawNCivsobDstqnshJ0NCivsobDsp4TslaANCivsobDsmIHtj6wNCivsobDquIjsmrANCivsobDso7zssL0NCivsobDsp4TtmLgNCivsobDquLDrp4wNCivsobDtlZzqsr0NCivsobDsoJXtmJwNCivsobDssKjsg50NCivsobDrtIntmIQNCivsobDsmrDtmZQNCivsobDsnqzsiJwNCivsobDssKjsmqkNCivsobDtmozrnpgNCivsobDstpjqt7wNCivsobDqsJHqt7wNCivsobDssL3qt7wNCivsobDsp4TtmZgNCivsobDsmIHspIANCivsobDrs5HsnqUNCivsobDssL3quLANCivsobDtl4zsnbQNCivsobAg7JqwDQor7KGw642V7JqpDQor7KGw7LC97ISdDQor7KGw66qF6ri4DQor7KGw7YOc7IiYDQor7KGw7KO87Zi4DQor7KGw7LC97Zi4DQor7KGw7IOB7ZWcDQor7KGw7JiB642VDQor7KGw64yA7JykDQor7KGw7LKc7ISdDQor7KGw7KSA7YOcDQor7KGw67aE6riwDQor7KGw7KeE7JiBDQor7KGw7LKg7IiYDQor7KGw7Jyg7JqwDQor7KGw7IOB7KeEDQor7KGw7KeE7LacDQor7KGw7LKg7KeEDQor7KGw7ZWE7JuQDQor7KGw66+87KGwDQor7KGw66eQ7IiYDQor7KGw7LaY6ri4DQor7KGw7Zi47IicDQor7KGw66qF7IiYDQor7KGw7IiY7ZmYDQor7KGw7LaY66eMDQor7KGw7ISg7JiBDQor7KGw7ZiE64WADQor7KGw7KO86ri4DQor7KGw7LaY7J6QDQor7KGw7JuQ7LKgDQor7KGw7Z2s6recDQor7KGw7ISd7Zi4DQor7KGw7Lmg7ZWZDQor7KGw67OR7IeEDQor7KGw7J6s7Je0DQor7KGw7JiB6ri4DQor7KGw7YOA7IicDQor7KGw7KCV7Je0DQor7KGw66y47JqwDQor7KGw6rSR7ZWYDQor7KGw7YOc7IiYDQor7KGw7KCE64+ZDQor7KGw7Lap7ZqMDQor7KGw64+Z7ZGcDQor7KGw7YOc7J28DQor7KGw7Iah7ISgDQor7KGw6rK97KGwDQor7KGw7Iic6recDQor7KGw7YOc7KGwDQor7KGw7KSR7YOBDQor7KGw64KZ7JuQDQor7KGw7IOB7J20DQor7KGw7YOc7ZmYDQor7KGw7JuQ7Z2gDQor7KGw66qF7ZiEDQor7KGw7KKF6riwDQor7KGw7YOc7Z2sDQor7KGw7Z2s66GADQor7KGw7Zi46rWtDQor7KGw7J6s7KO8DQor7KGw7YOd7IOBDQor7KGw7LC966eMDQor7KGw67OR7JmEDQor7KGw64+Z7LKgDQor7KGw7YOd7IOBDQor7KGw6rSR7ZiEDQor7KGw7J6s7JqwDQor7KGw6rK964+ZDQor7KGw7YyQ64WEDQor7KGw67KU7JikDQor7KGw7Jil7IicDQor7KGw7IOB7JuFDQor7KGw7YyQ7JWUDQor7KGw7IK87ZiEDQor7KGw7ZmN7ZmYDQor7KGw7KGw7YOBDQor7KGw7ZWE7J6EDQor7KGw7J2867SJDQor7KGw7IOB64yADQor7KGw7LaU7IiYDQor7KGw7ZWY6rCVDQor7KGw66eM64+EDQor7KGw7KKF7IiYDQor7KGw7IOB6rOgDQor7KGw7ZWZ656YDQor7KGw7Lap6raMDQor7KGw7Jik6recDQor7KGw6riw67CwDQor7KGw7ZWZ7KCcDQor7KGw64+Z7IicDQor7KGw7Jqp7JqpDQor7KGw642V6rK9DQor7KGw7ZWc7IiYDQor7KGw7KCQ7J28DQor7KGw7J2867KUDQor7KGw7LKc7JiBDQor7KGw7ZWc7JiBDQor7KGw7J6s7Zi4DQor7KGw6re866qoDQor7KGw7Iic64yADQor7KGw7ZW066+8DQor7KGw7J217Zi4DQor7KGw7IOB7LacDQor7KGw7KCV66GdDQor7KGw7ZW07ISgDQor7KGw7YOc7IOBDQor7KGw7ISx7ZmYDQor7KGw7JiB67CwDQor7KGw7ZW07IiYDQor7KGw7LKg7IiYDQor7KGw7J247J6EDQor7KGw7JuQ7ZuIDQor7KGw7ZW07IiZDQor7KGw7J247IStDQor7KGw7Iug7IiZDQor7KGw7KKF7J6sDQor7KGw7ZW07IudDQor7KGw6riw6riwDQor7KGw7ISd7JqpDQor7KGw7Jqx6rWwDQor7KGw7ZW07JqpDQor7KGw7Jyk7KSADQor7KGw67aE7JWgDQor7KGw7KeE7IudDQor7KGw7ZeM7J6sDQor7KGw7Zi47JiBDQor7KGw7Z2s7KGwDQor7KGw66eM64+ZDQor7KGw7ZiE7ISdDQor7KGw7IiZ7KSADQor7KGw7J2R7IStDQor7KGw67OR7IOBDQor7KGw7ZiE7ISdDQor7KGw64+Z7J6QDQor7KGw7ZiE7YyUDQor7KGw66+87JuFDQor7KGw7ZiE7IiYDQor7KGw7ZW07JqpDQor7KGw6riw6regDQor7KGw6rSR7J6QDQor7KGw7ZiE7JiBDQor7KGw7ZWc7JqxDQor7KGw7YOc7YOcDQor7KGw7YOc7IiYDQor7KGw7ZiE7JqpDQor7KGw7JiB7Zi4DQor7KGw7Jqp7IiYDQor7KGw7ZeM6regDQor7KGw7ZiE7J6sDQor7KGw7J207KKFDQor7KGw6rec7Zi4DQor7KGw7KCc6rCRDQor7KGw7ZiE7KCVDQor7KGw7KKF7ZWYDQor7KGw7LC97Z2sDQor7KGw7Iic6rWsDQor7KGw7ZiE7KGwDQor7KGw6riI7ISdDQor7KGw7JiB7Zi4DQor7KGw66eQ7Zi4DQor7KGw7ZiE7KGwDQor7KGw7LaY66GADQor7KGw7ISx7ISxDQor7KGw7JuU7IiYDQor7KGw7ZiE7KSADQor7KGw7Jyk7ISxDQor7KGw7IOB7ZeMDQor7KGw7JiB67CwDQor7KGw7ZiE7KSRDQor7KGw64us7KGwDQor7KGw7ISg656ADQor7KGw7ZWc7KeEDQor7KGw7ZiE7YOcDQor7KGw7Jqp7JewDQor7KGw7YOc7JWUDQor7KGw7Jyh7IiYDQor7KGw7ZiE7YOdDQor7KGw67OR67SJDQor7KGw7Jyk7Zi4DQor7KGw6riI7ISgDQor7KGw7ZiE7Zi4DQor7KGw7YOc7JykDQor7KGw7ISx7ZmYDQor7KGw6rSR7ZiEDQor7KGw7ZiE7Zi4DQor7KGw67OR7ZqoDQor7KGw7IOB7Z2sDQor7KGw6rWs7KSADQor7KGw7ZiE7Zi5DQor7KGw65GQ7IiYDQor7KGw7IaM7ISgDQor7KGw7Jik7IiYDQor7KGw7ZiV7IStDQor7KGw7KSA65+JDQor7KGw7KeE7ISxDQor7KGw6rSR7YOBDQor7KGw7ZiV7JewDQor7KGw7ZaJ7IicDQor7KGw7J6Q7JikDQor7KGw7J6s7IicDQor7KGw7Zi46recDQor7KGw7ZW07J21DQor7KGw7JiB7Je0DQor7KGw7ZmN7JuQDQor7KGw7Zi47KGwDQor7KGw7YOc7J21DQor7KGw6rK966asDQor7KGw7Jqp7KKFDQor7KGw7Zi47KGwDQor7KGw7Jqp7IiYDQor7KGw7KCV7IudDQor7KGw67OR7YOcDQor7KGw7Zi47ZiEDQor7KGw7KSA6riwDQor7KGw66+867SJDQor7KGw7IiY7JmEDQor7KGw7ZmN7ISdDQor7KGw7J6s7KGwDQor7KGw66qF7KGwDQor7KGw7J2466+4DQor7KGw7ZmN7ISdDQor7KGw7ISx7Zi4DQor7KGw7KKF7J21DQor7KGw7KCV7Zi4DQor7KGw7ZmN7IStDQor7KGw66eM7ZiEDQor7KGw6rSA7J6QDQor7KGw7LaY7IudDQor7KGw7ZmY6recDQor7KGw7IiY7KSADQor7KGw67OR6rOkDQor7KGw7IiY7IiYDQor7KGw7Zmp7ISdDQor7KGw66eM6rCRDQor7KGw7LKg7LKgDQor7KGw7ZWc6rSRDQor7KGw7Z2s6rCRDQor7KGw6rK97Iq5DQor7KGw7J6s642VDQor7KGw7KKF7J6QDQor7KGw7Z2s6rSADQor7KGw7J6s6recDQor7KGw66+87J6EDQor7KGw67O17JqpDQor7KGw7Z2s64+ZDQor7KGw7J6l7ZWZDQor7KGw64+E66eMDQor7KGw6rK967aEDQor7KGw7Z2s656YDQor7KGw7Iic7KO8DQor7KGw7J6s7J6sDQor7KGw6rCV7YOdDQor7KGw7Z2s7IiYDQor7KGw7Iug7ISdDQor7KGw66y47IiZDQor7KGw7IOB7JqpDQor7KGw7Z2s7JuQDQor7KGw7Jqp7IOdDQor7KGw7ISx7J6EDQor7KGw64+Z7LaYDQor7KGw7Z2s7KCVDQor7KGw7JiB7J20DQor7KGw7ZiE7ZeMDQor7KGw7J246rCcDQor7KGw7Z2s7KSRDQor7KGw7Iq564+EDQor7KGw7ISd6rSADQor7KGw7ISx7ZmYDQor7KGw7Z2s7LacDQor7KGw7J6s7ISdDQor7KGw7IiY7J20DQor7KGw7IOB66GcDQor7KGw7Z2s7YOcDQor7KGw7KeA7LCsDQor7KGw66y47Zi4DQor7KGw7YOc7LaYDQor7KO8IOqwlQ0KK+yjvOyKue2ZmA0KK+yjvOustOyVlA0KK+yjvOynhO2drA0KK+yjvOqyveynhA0KK+yjvOyXsOyEoA0KK+yjvOyDge2YuA0KK+yjvOywqO2MlA0KK+yjvOqzhOyImQ0KK+yjvOyasOuNlQ0KK+yjvOunjOuFgA0KK+yjvOydvOu0iQ0KK+yjvOuPhO2ZjQ0KK+yjvOydmOycpA0KK+yjvOyEoOyImQ0KK+yjvO2DnOq3oA0KK+yjvOuPmeyLnQ0KK+yjvOu0ieyyoA0KK+yjvO2MkOq4uA0KK+yjvO2VnOuTnQ0KK+yjvOunjOyInA0KK+yjvOyerOq0kQ0KK+yjvOyiheybkA0KK+yjvO2VtOydtQ0KK+yjvOuqheyekA0KK+yjvOyYgeyYgQ0KK+yjvOydvOyjvA0KK+yjvOyYpeydtA0KK+yjvOuvvOq1rQ0KK+yjvOyduO2DnA0KK+yjvOq0keyImA0KK+yjvOuLrO2WpQ0KK+yjvOu0ieyInA0KK+yjvOyYgeyasA0KK+yjvOuzkeynhA0KK+yjvOq3vOyjvA0KK+yjvOyInOyYpQ0KK+yjvOyduOybhQ0KK+yjvOyDgeqwkQ0KK+yjvOyiheq1rQ0KK+yjvOyInOyekA0KK+yjvO2MkOyEuA0KK+yjvO2VtOq2jA0KK+yjvOyDgeyImQ0KK+yjvOyYpeu2hA0KK+yjvOyVhe2YuA0KK+yjvO2VmO2YuA0KK+yjvOyImOuLrA0KK+yjvOycpO2RnA0KK+yjvO2VmeyXtA0KK+yjvOyEse2ZmA0KK+yjvOu2gOyDgQ0KK+yjvOygleybhQ0KK+yjvOyaqe2YuA0KK+yjvOq3gOyImA0KK+yjvOyerO2ZjQ0KK+yjvOykkeyEnQ0KK+yjvOuqheyihQ0KK+yjvOyKueykgA0KK+yjvOuzke2DnA0KK+yjvOyngOyihQ0KK+yjvOu0ieyInA0KK+yjvOyyreyYgQ0KK+yjvO2ZjeyEoA0KK+yjvOy2mO2YuA0KK+yjvOyInOyInA0KK+yjvOyInOuhnQ0KK+yjvOuCqOuCqA0KK+yngOuzkeyyoA0KK+yngO2XjO2YhA0KK+yngOywveyhsA0KK+yngOqwkeyekA0KK+yngOuzke2YuA0KK+yngOuzkeq1rA0KK+yngOyEseydtA0KK+yngOyImOybkA0KK+yngOyImOuTnQ0KK+yngOuNle2aqA0KK+yngOq0ke2drA0KK+yngOuFuOyImA0KK+yngOyYgeyjvA0KK+yngO2MkOynhA0KK+yngOyYgeycpA0KK+yngOydhOq3nA0KK+yngOyYpe2ZmA0KK+yngOygnOyekA0KK+yngOyaqeugrA0KK+yngOq4sO2YhA0KK+yngOyerOyCvA0KK+yngOyDgeuNlQ0KK+yngOyCvOyyoA0KK+yngOydmOuMgA0KK+yngOyerOyaqQ0KK+yngO2Wpe2YuA0KK+yngOycpOybkA0KK+yngO2DnOykgA0KK+yngOyihe2YuA0KK+yngOygleyImQ0KK+yngOq4uOq4sA0KK+yngOyynOyjvA0KK+yngOy2mOyLnQ0KK+yngOyasOyhsA0KK+yngOynhOyehA0KK+yngOyYge2VnA0KK+ynhOqwkeyXsA0KK+ynhOuqhe2VmA0KK+ynhOyduOyDgQ0KK+ynhOyGjOyDgQ0KK+ynhOqwkeyaqQ0KK+ynhOygleybkA0KK+ynhOuPmeuTnQ0KK+ynhOyasOq3oA0KK+ynhOq3nO2ZjQ0KK+ynhOyZuOusuA0KK+ynhOuzkeyhsA0KK+ynhO2XjO2ZmA0KK+ynhOq4sOyImA0KK+ynhOyLnOqwkQ0KK+ynhOyXsOyImA0KK+ynhOycoOq4sA0KK+ynhOq4sOyImQ0KK+ynhOyngOuPjA0KK+ynhO2aqOq3nA0KK+ynhOyerO2DnQ0KK+ynhOq4sOyaqQ0KK+ynhOyEneyEsQ0KK+ynhOyInOyglQ0KK+ynhOuMgOyasA0KK+ynhOuNle2drA0KK+ynhOu0ieyLnQ0KK+ynhOyaqeyEuA0KK+ynhOyyoOyVlA0KK+ynhOuRkOu0iQ0KK+ynhOuqheq2jA0KK+ynhOyEseq3vA0KK+ynhOyEseyLpA0KK+ynhOunkOyEoA0KK+ynhOyGjOyihQ0KK+ynhOqwkeq3vA0KK+ynhOyCvO2YuA0KK+ynhOuqheyekA0KK+ynhOuqhe2DnA0KK+ynhOygle2YuA0KK+ynhOqzhOq4sA0KK+ynhOuqheyekA0KK+ynhOq2jOyYpA0KK+ynhOqzhOuhgA0KK+ynhOyInOyLnQ0KK+ynhOusuOq1kA0KK+ynhOyEne2VmQ0KK+ynhOyYgeuMgA0KK+ynhOyDgeyaqQ0KK+ynhOuzke2VmQ0KK+ynhOyYge2XjA0KK+ynhOuRkOyLnQ0KK+ynhOqyveyLnQ0KK+ynhOu0ieq4uA0KK+ynhOuqheuqqA0KK+ynhOyEseuPjA0KK+ynhOy2mOuNlQ0KK+ynhOu0ieyLnQ0KK+ynhOybkOuwsA0KK+ynhOuqheydtA0KK+ynhOuzuO2MlA0KK+ynhOyCvOyhsA0KK+ynhOygleqzpA0KK+ynhO2ZjeuemA0KK+ynhOustO2drA0KK+ynhOyDgeq4sA0KK+ynhOyImO2YuA0KK+ynhOyGjOyglQ0KK+ynhOyEneyImA0KK+ynhOyDgeyasQ0KK+ynhOu0ieq4uA0KK+ynhOq3nO2ZmA0KK+ynhOyerOyasA0KK+ynhOyDgeyatA0KK+ynhOyaqey2mA0KK+ynhOyblOq3nA0KK+ynhOuPmeq2jA0KK+ynhOyDgeynhA0KK+ynhOyDgeyEoA0KK+ynhOyEneyLnQ0KK+ynhOq3ue2YuA0KK+ynhOyDge2ZmA0KK+ynhOyerOyInA0KK+ynhOyerOykkQ0KK+ynhOyEseyEoA0KK+ynhOyEneydgA0KK+ynhOyaqeyLnQ0KK+ynhO2VnO2DnA0KK+ynhOyaqeuMgA0KK+ynhOyEne2YuA0KK+ynhO2MkO2YuA0KK+ynhOusuOyaqQ0KK+ynhOq4uOyImA0KK+ynhOyEseunjA0KK+ynhOusuOyekA0KK+ynhOyInO2ZmA0KK+ynhO2ZmOyIoA0KK+ynhOyEseyasQ0KK+ynhOq3nO2WpQ0KK+ynhOyduOyYpQ0KK+ynhOqyveq3vA0KK+ynhOyImOybhQ0KK+ynhOyYgeuLrA0KK+ynhOyiheyyoA0KK+ynhOykgOyVoA0KK+ynhOyImO2MkA0KK+ynhOybkOyekA0KK+ynhO2VtOybhQ0KK+ynhOuzkeq4uA0KK+ynhOyInOuPhA0KK+ynhOyYpeyEoA0KK+ynhOuLrOykgA0KK+ynhO2Vme2MkA0KK+ynhOyYgeq1rQ0KK+ynhOustOyyoA0KK+ynhOuzkeyImQ0KK+ynhOqyveyasQ0KK+ynhOyYgeyImA0KK+ynhOywrO2YuA0KK+ynhOuPmeywvQ0KK+ynhO2YhOq4uA0KK+ynhOyYgeybhQ0KK+ynhOyEneyImA0KK+ynhOunjOyyoA0KK+ynhOuzkeyXsA0KK+ynhOyYgeyekA0KK+ynhOyDgeyImA0KK+ynhOyEseyekA0KK+ynhOuqhe2ZjQ0KK+ynhOyZuOyhsA0KK+ynhOuPmeyYgQ0KK+ynhOyEseyEoA0KK+ynhOyerOq3nA0KK+ynhOyaqeuPjA0KK+ynhOyEseyInA0KK+ynhOyerOq1rQ0KK+ynhOyImOuvuA0KK+ynhOyaqeyImA0KK+ynhOuzteyhsA0KK+ynhOyVlOyLnQ0KK+ynhOuzkeuCqA0KK+ynhOyaqeyVlA0KK+ynhOygleyEoA0KK+ynhOq3gOq3nA0KK+ynhOyiheyLnQ0KK+ynhOyaqeydvA0KK+ynhOyYpeyglQ0KK+ynhOyDgeyaqQ0KK+ynhOyerOq0gA0KK+ynhOyaqe2YuA0KK+ynhOyerOq3vA0KK+ynhOyYgeybkA0KK+ynhOuNley2mA0KK+ynhOyasOq2jA0KK+ynhOygleyDgQ0KK+ynhOydmOyXsA0KK+ynhOyEseyLnQ0KK+ynhOyasOyEoA0KK+ynhOqwkeyLnQ0KK+ynhOygkOyihQ0KK+ynhOuzte2DnA0KK+ynhOybkOyEnQ0KK+ynhOyYge2YuA0KK+ynhOyiheuPhA0KK+ynhOyiheydvA0KK+ynhOydtOyImA0KK+ynhOynhOyYgQ0KK+ynhOq4sOy2nA0KK+ynhO2YuOq3vA0KK+ynhOyerOyaqQ0KK+ynhOuzke2biA0KK+ynhO2drOykkQ0KK+ynhOuqheyynA0KK+ynhOygleuegA0KK+ynhOuFuOq0gA0KK+ynhOq3vOuPmQ0KK+ynhOuLrO2ZmA0KK+ynhOygleuemA0KK+ynhOyDgeyLnQ0KK+ynhO2drOyImA0KK+ynhOqwle2DnA0KK+ynhOygleyDgQ0KK+ynhOynhOybkA0KK+ynhOuzke2DnA0KK+ynhOyEneyEoA0KK+ynhOygleyEuA0KK+ynhOyerOq1kA0KK+ynhOyepeuwsA0KK+ynhOuCqOq3vA0KK+ynhOygleyImQ0KK+ynhOuLrOyLnQ0KK+ynhOyaqe2YgQ0KK+ynhOyerO2YuA0KK+ynhOygleyImQ0KK+ynhOywveyYgQ0KK+ynhOyblOq3nA0KK+ynhOynhOyLnQ0KK+ynhOygleyWuA0KK+ynhOyepe2YgQ0KK+ynhOq0gOyLnQ0KK+ynhOy2mOyLnQ0KK+ynhOyiheq3vA0KK+ynhOyihe2VmQ0KK+ynhO2DnOyaqQ0KK+ynhOygle2drA0KK+ynhOyiheuMgA0KK+ynhOunkOyInA0KK+ynhOyImOyEnQ0KK+ynhOynhOyEoA0KK+ynhOywqOyaqQ0KK+ynhOyDgeycpA0KK+ynhOqyveq1rA0KK+ynhOy2mOq0gA0KK+ynhOywrOyehA0KK+ynhOyYgeyImA0KK+ynhO2XjOyInA0KK+ynhOyDgeyEuA0KK+ynhOywrO2YhA0KK+ynhOuvuOybkA0KK+ynhOyEneyEnQ0KK+ynhOyiheynhA0KK+ynhOywveuPjA0KK+ynhO2ZjeyasA0KK+ynhOyYgeuhnA0KK+ynhOykgO2VmQ0KK+ynhOywveyEnQ0KK+ynhOuCqOuvuA0KK+ynhOygleq1rA0KK+ynhOuCqO2drA0KK+ynhOywveycpA0KK+ynhO2VnO2ZmA0KK+ynhOyyreygnA0KK+ynhOydtOq4uA0KK+ynhOyynOuPhA0KK+ynhOqyveunjA0KK+ynhOyDgeyImQ0KK+ynhOyGjOu0iQ0KK+ynhOyynOyImA0KK+ynhO2VtO2drA0KK+ynhOyKue2XjA0KK+ynhOunkOyImA0KK+ynhOyynOyImA0KK+ynhOyLoOyjvA0KK+ynhOybkOyasA0KK+ynhOywqOyhsA0KK+ynhOyyoOyDgQ0KK+ynhOq4iO2ZmA0KK+ynhOyEse2ZjQ0KK+ynhOygleyjvA0KK+ynhOy5oOq2jA0KK+ynhOywrOyImA0KK+ynhO2ZjeyehA0KK+ynhOykgOydvA0KK+ynhO2MkOqwnA0KK+ynhOyihe2RnA0KK+ynhOyDgeyLnQ0KK+ynhO2aqOq3vA0KK+ynhO2MkOuPjA0KK+ynhOyDge2YhA0KK+ynhOq4iOynhA0KK+ynhOyaqeyxhA0KK+ynhO2MkOyerA0KK+ynhOycpOuemA0KK+ynhOyerOuNlQ0KK+ynhOuzkeyErQ0KK+ynhO2WieyekA0KK+ynhOyngOyaqQ0KK+ynhO2VtOyErQ0KK+ynhOuzkeybhQ0KK+ynhO2XjOyImA0KK+ynhOuLrOyEsQ0KK+ynhOqyveyyoA0KK+ynhOuzke2biA0KK+ynhO2XjO2DnQ0KK+ynhOyerO2ZmA0KK+ynhOuqheyYgQ0KK+ynhOq4sOumvA0KK+ynhO2YhOydtA0KK+ynhOyYgeuztQ0KK+ynhOyiheuNlQ0KK+ynhO2YuOq3nA0KK+ynhO2YnOyYgQ0KK+ynhOuPmeyImQ0KK+ynhOybkOyEnQ0KK+ynhOyaqeyihQ0KK+ywqCDsiJkNCivssKjqsIjsnbQNCivssKjrs5HsmIENCivssKjsnqzrj4QNCivssKjqsJHshJ0NCivssKjrj5ntm4gNCivssKjqt5zquLgNCivssKjsiJzrhZUNCivssKjqsr3siJwNCivssKjsooXsiJwNCivssKjrs7XshK0NCivssKjsoJXquLANCivssKjqt7ntg5wNCivssKjsgrzsp4QNCivssKjtlbTsl7ANCivssKjsoJXtmZgNCivssKjqt7zshJ0NCivssKjsg4HtjJQNCivssKjsg4HrtIkNCivssKjrj5nsp4QNCivssKjquLDsiJgNCivssKjsnKTrnpgNCivssKjshLHtm4gNCivssKjsnbjsm4UNCivssKjquLDtmLgNCivssKjsirnsmKUNCivssKjtlZzsiJwNCivssKjssqDrnpgNCivssKjquLjsg4ENCivssKjtjJDtmqgNCivssKjqt5zshKANCivssKjsmqnsnpANCivssKjrjIDrpZwNCivssKjsoJXrjZUNCivssKjtg5zqt7wNCivssKjsnbzsoJwNCivssKjrjZXsmqkNCivssKjsg4Htm4gNCivssKjsnqztg50NCivssKjshozsmrANCivssKjrj4TsoJUNCivssKjsg4Hqs6QNCivssKjsg4HtmY0NCivssKjtmqjsl7ANCivssKjrj4zsmqkNCivssKjtmITshJ0NCivssKjrj5ntmZgNCivssKjsooXsnoQNCivssKjrj5nshJ0NCivssKjqsr3rj5kNCivssKjqsr3tmZQNCivssKjsoJDslZQNCivssKjrj5nshK0NCivssKjso7zsiJgNCivssKjqt5ztmY0NCivssKjsnqztg50NCivssKjrp4zsmqkNCivssKjsoJDqtIANCivssKjslrjqt5wNCivssKjsmIHsiJwNCivssKjrqoXtlokNCivssKjsmIHsmrANCivssKjsoJXtnawNCivssKjsnqzsiJgNCivssKjrr7zrj4QNCivssKjsmIHsiJgNCivssKjsuaDqtbANCivssKjrs5HrtIkNCivssKjrtInrj4QNCivssKjtg5zrrLgNCivssKjshLHtnawNCivssKjsnbzsiJwNCivssKjrtIntm4gNCivssKjrs5HtmIQNCivssKjshLHsmIENCivssKjtmY3shJ0NCivssKjsgrzsspwNCivssKjssL3tmZgNCivssKjsmrTrs7UNCivssKjsoJXqsr0NCivssKjsg4Hsl7ANCivssKjsmqnsmrQNCivssKjsooXsnpANCivssKjtnaXsiJgNCivssKjsg4HsmIENCivssKjtnazsi50NCivssKjshLjspp0NCivssKjrjZXsiJgNCivssKjsg4HtmZgNCivssKjqt7ztnawNCivssKjsi6DshJwNCivssKjrs7XtmLgNCivssKjshKDsnbQNCivssKjsiJzshJ0NCivssKjtlYTrsLANCivssKjssL3qtZANCivssKjshKDsnbQNCivssKjsiJnsl70NCivssKjtmqjtg50NCivssKjsooXqta0NCivssKjsjI3siKANCivssKjqsJHtg5wNCivssKjquLDrj4wNCivssKjrtoTsl7ANCivssKjslpHtmIQNCivssKjsnqzsooUNCivssKjsmIHsmqkNCivssKjqta3sl7QNCivssKjsmIHsl7QNCivssKjsnKDtmLgNCivssKjshKDshK0NCivssKjsmqnqs4QNCivssKjsmIHsp4QNCivssKjsm5DsmIENCivssKjsnYDsi6QNCivssKjqsJHsobANCivssKjsmIHsp4QNCivssKjsg4HtnawNCivssKjquLDrj5kNCivssKjtg5zspIANCivssKjsmIHtmZgNCivssKjrp5Dqt7wNCivssKjrsKnsiJgNCivssKjsoJXquLgNCivssKjsmKXshKANCivssKjrj4Trp4wNCivssKjtg5zshK0NCivssKjshLHtmLgNCivssKjsmqnrjZUNCivssKjtjJDsl7QNCivssKjsooXtmZQNCivssKjquLDshKANCivssKjsmqnshK0NCivssKjsp4TssKgNCivssKjshJ3ssKwNCivssKjrhbjqsJENCivssKjsmqnsiJgNCivssKjrgpjqtawNCivssKjssqDtkZwNCivssKjsnqzqs6QNCivssKjsnKDshK0NCivssKjshLjshKANCivssKjrj5nspIANCivssKjquLDrrLQNCivssKjsnbTsiJwNCivssKjsnqztg5wNCivssKjshLHrrLgNCivssKjtg5zsiJgNCivssKjsnbjsi50NCivssKjrqoXsmIENCivssKjrtoTrsLANCivssKjsiJzroZ0NCivssKjsnbzsmqkNCivssKjtnazrj4QNCivssKjshLHsm5ANCivssKjrjIDtmZQNCivssKjsnoTshKANCivssKjshKDsiJgNCivssKjsnITsmqkNCivssKjsp4Trr7wNCivssKjsnoTsmqkNCivssKjtlZzso7wNCivssKjtlbTsirkNCivssKjrspTqsr0NCivssKjsnqXtmZgNCivssKjsmqnrp4wNCivssKjrj5nsnpANCivssKjsg4HqtowNCivssKjsnqzqt5wNCivssKjsmrDtmZQNCivssKjqtJHsi50NCivssKjspIDsmrANCivssKjsoJXsnpANCivssKjssKjtmLgNCivssKjsiJjsnpANCivssKjtjJTsoJUNCivssKjsooXroZ0NCivssKjsg4Htm4gNCivssKjsjI3qta0NCivssKjqt5zshJ0NCivssKjspp3smqkNCivssKjquLDsnqwNCivssKjrtInsnbQNCivssKjshJzsiJgNCivssKjsp4Dtm4gNCivssKjsg4HspIANCivssKjstqnshJ0NCivssKjsmIHqt5wNCivssKjsp4TshK0NCivssKjsooXsiJwNCivssKjsnqXquLgNCivssKjtmJXsmrANCivssKjsp4jsmqkNCivssKjtmLjrj5kNCivssKjshJ3siJgNCivssKjtmITrtoQNCivssKjssL3shJ0NCivssKjsmKXsoIQNCivssKjrp4zsnpANCivssKjshoztlZgNCivssKjssqDtnLQNCivssKjtg5zsobANCivssKjqsbTsooUNCivssKjqsr3stpwNCivssKjstpjsiJwNCivssKjsoJXsnbUNCivssKjrr7jrj5kNCivssKjqsr3siJgNCivssKjstpjtmLgNCivssKjsi6Drp4wNCivssKjssqDsiJgNCivssKjqtazqsJUNCivssKjsvozslbwNCivssKjrrJjstpwNCivssKjrkZDstpwNCivssKjsg4HrjZUNCivssKjtg5zshKANCivssKjsnYDshKANCivssKjsooXsobANCivssKjtg5zshK0NCivssKjtg5zsp4QNCivssKjrrLTssqANCivssKjssL3snpANCivssKjsg4Hsl7QNCivssKjtjJDsiJgNCivssKjshKDqt7wNCivssKjsg4HqsJENCivssKjsmrDtkZwNCivssKjtlYTsg4ENCivssKjshLHsiJwNCivssKjshJ3si50NCivssKjquLjtnawNCivssKjtlYTsmqkNCivssKjsoJXtmIQNCivssKjsooXtmIQNCivssKjqt5zrk50NCivssKjtlZzsmqkNCivssKjsgrzsi50NCivssKjsooXslYQNCivssKjsoJXsobANCivssKjtlZzsspwNCivssKjssqDsobANCivssKjsiJjtm4gNCivssKjshLHsmqkNCivssKjtlZzstpwNCivssKjssL3sm5ANCivssKjtmLjtmZQNCivssKjshLHrgqgNCivssKjtlbTshK0NCivssKjsg4HqtJENCivssKjqs6TsiJkNCivssKjrs5HsnbQNCivssKjtmLjshK0NCivssKjrs7XsiJwNCivssKjtg5ztnawNCivssKjrhbjtmZgNCivssYTqsr3spIANCivssYTshLHqt5wNCivssYTrrLTsspwNCivssYTsg4HtmIQNCivssYTqtbDrrLUNCivssYTrj5nstpwNCivssYTsg4HsmIENCivssYTsmKXtmZgNCivssYTqt5ztlZkNCivssYTsooXsmrENCivssYTshJ3sg4ENCivssYTqtJHssKgNCivssYTrhbjshJ0NCivssYTsooXtmLgNCivssYTrgqjtg5wNCivssYTsnqzshJ0NCivssYTrr7zspIANCivssYTrp4zsmKUNCivssYTsoJXshJ0NCivssYTsoJXsm5ANCivssYTsmIHtnawNCivssYTrjZXshJ0NCivssYTrqoXroYANCivssYTsnKTrgqgNCivssYTsnKTrjZUNCivssYTshJ3tmZQNCivssYTtmZjsnpANCivssYTqt5zso7wNCivssYTsnbzrp4wNCivssYTsmIHtmZgNCivssYTtlZjsnpANCivssYTtg5zsl7QNCivssYTsoJXsmIENCivssYTrp5Drj4QNCivssYTtmITsnpANCivssYTtmLjquLANCivssYTsooXrpaANCivssYTssqDqsr0NCivssYTsooXsp4QNCivssYTsiJzsiJgNCivssYTsooXsnKANCivssYTsmrDquLANCivssYTqt5zqt7wNCivssYTsuaDsiJgNCivssYTsp4TsmrANCivssYTsnqzsnoQNCivssYTtmY3shLENCivssYTsg4HtmLgNCivssYTssKjqsJENCivssYTshJ3si50NCivssYTrjIDrqqkNCivssYTrs5HrsLANCivssYTtlZzsi50NCivssYTquLjqtZANCivssYTtmY3rtIkNCivssYTsnbjrnpgNCivsspzqsr3smqkNCivsspzsiJzrgqgNCivsspzqtJHqt5wNCivsspzsmIHqt5wNCivsspzqsr3tmLgNCivsspzshLHsiKANCivsspzsmqnro6ENCivsspzqsr3shJ0NCivsspzrsLDsmIENCivsspzsmIHqsbQNCivsspzquIjsmKQNCivsspztg5zqtawNCivsspzsmrDsmIENCivsspztg5zsiJkNCivsspzsnqztmZgNCivsspzslrjroYANCivsspzsmrDtg5wNCivsspztg5zsmqkNCivsspzsmIHqt7kNCivsspzsmrDtmZgNCivsspzsnqzqt7wNCivsspzsnbTsiJgNCivsspzsnKTquLANCivsspzrtIntmIQNCivsspzsnqzsi50NCivsspzsmrTrjZUNCivsspzsnYDsiJgNCivsspzsspztmLgNCivsspztg5zsooUNCivsspzsm5DsmqkNCivsspzsmIHsm5ANCivsspzsg4HsiJwNCivsspztmLjqt6ANCivsspzsmqntg50NCivsspzsiJjsnbQNCivsspzssqDtnawNCivstZwg6rG0DQor7LWc6rCR67CwDQor7LWc7KCV7KeADQor7LWc7JiB7ZmYDQor7LWcIOqxtA0KK+y1nOuCqOy2mA0KK+y1nO2YnO2drA0KK+y1nOqyve2biA0KK+y1nCDsg4ENCivstZzsmKTslYQNCivstZzquLDrp4wNCivstZzrs5Hsi50NCivstZwg7JykDQor7LWc7Jqp7KO8DQor7LWc7KeE7KeEDQor7LWc7ISx7J24DQor7LWc6rCR64+ZDQor7LWc7Jqw67aVDQor7LWc7KCV7JuQDQor7LWc7Jqp7JilDQor7LWc6rCR7LKgDQor7LWc7IS47IiZDQor7LWc7IK86raMDQor7LWc66+47IiYDQor7LWc6rK964+ZDQor7LWc7ZmN7ISdDQor7LWc7KCV7JWgDQor7LWc7ISd67CwDQor7LWc6rK97IStDQor7LWc7ISg7LacDQor7LWc7KKF6rCRDQor7LWc6rWw7ZiEDQor7LWc6rK97IicDQor7LWc7IOB7ZiBDQor7LWc7ZW06ri4DQor7LWc6riw7JqpDQor7LWc6rK97JWgDQor7LWc7KCV67O1DQor7LWc7KCV7YOcDQor7LWc7KKF7IudDQor7LWc6rK97JilDQor7LWc7JiB6rK9DQor7LWc66eM7KO8DQor7LWc7ISx7KGwDQor7LWc6rK97J28DQor7LWc7IaQ7JmEDQor7LWc642V7Zi4DQor7LWc7JuQ64+ZDQor7LWc6rK97J6QDQor7LWc6re865OdDQor7LWc67OR7IiYDQor7LWc7IOB7KGwDQor7LWc6rK97J6QDQor7LWc7J6s7IudDQor7LWc7KO87J20DQor7LWc66eM7ZmUDQor7LWc6rK97LC9DQor7LWc7Jyk7YOcDQor7LWc7ISx7IigDQor7LWc7J6l7JqpDQor7LWc6rK97LmgDQor7LWc7YOc7JqxDQor7LWc6riI6rOkDQor7LWc7YOc7ZiBDQor7LWc6rK97LmgDQor7LWc7Z2s7JygDQor7LWc7IOB7Zi4DQor7LWc7ISd7J20DQor7LWc6rK97Zi4DQor7LWc7J2E7LacDQor7LWc7KSR7JqpDQor7LWc7IOB7ISdDQor7LWc6rK97ZmYDQor7LWc7IOB7Je0DQor7LWc6riI7Zi4DQor7LWc6rCV7ZWZDQor7LWc6rK97ZuIDQor7LWc7Iic7JqwDQor7LWc6rK97IiYDQor7LWc642V7J20DQor7LWc6rK97Z2sDQor7LWc7KKF7Zi4DQor7LWc7ZWc6re8DQor7LWc7Jq07ISdDQor7LWc6rOk7J20DQor7LWc7J6s7Zi4DQor7LWc7J247IudDQor7LWc7IOB7JqwDQor7LWc6rSR7IudDQor7LWc7ZWE7IicDQor7LWc7J287IiYDQor7LWc6rSR7IiZDQor7LWc6rSR7J6EDQor7LWc7IK864KoDQor7LWc67SJ7ISdDQor7LWc64us7JqwDQor7LWc6rSR7LKgDQor7LWc7YOc7Zi4DQor7LWc64+Z7Zi4DQor7LWc6rWQ7ISgDQor7LWc6rWt66CsDQor7LWc7Iq57IicDQor7LWc7J6s6rK9DQor7LWc7IOB7Zi4DQor7LWc6rWt7KeEDQor7LWc7J247IicDQor7LWc6riw656YDQor7LWc7J287JewDQor7LWc6rWt7LKgDQor7LWc7Jqp7LacDQor7LWc6riw67CwDQor7LWc7J2Y7IiYDQor7LWc6reA6rOkDQor7LWc64us7IudDQor7LWc7Jqp7JewDQor7LWc7Jqp67O1DQor7LWc6reA7KO8DQor7LWc7KKF6regDQor7LWc7J6E6rG0DQor7LWc7Z2s7Z2sDQor7LWc6rec66eMDQor7LWc7ZmY7Zi4DQor7LWc7J217J20DQor7LWc7JiB64KoDQor7LWc6rec67ORDQor7LWc7KCV7ZiEDQor7LWc67OR66eMDQor7LWc7JiB6re8DQor7LWc6rec7ISdDQor7LWc7IOB7Zi4DQor7LWc64+Z7JiBDQor7LWc7KeE6rOkDQor7LWc6rec7LCsDQor7LWc7Iuc7IiYDQor7LWc7LC97ZmYDQor7LWc7KSR64+ZDQor7LWc6rec7YOcDQor7LWc7KeE6reADQor7LWc7J6s7KGwDQor7LWc7Lmg6riwDQor7LWc6re57JqpDQor7LWc6riw7IicDQor7LWc7ISx7JiBDQor7LWc7KCQ7KCVDQor7LWc6re866qoDQor7LWc7JiB7J6QDQor7LWc67OR7ZiEDQor7LWc67OR7ZmYDQor7LWc6riI64+MDQor7LWc7KSA66eMDQor7LWc7Zi47Jq0DQor7LWc6rCR7ZmNDQor7LWc6riI7ISgDQor7LWc7IiZ7IudDQor7LWc67OR67CwDQor7LWc7ZiE7IiYDQor7LWc6riI7J20DQor7LWc67SJ7KCVDQor7LWc67SJ67SJDQor7LWc7IS46rOkDQor7LWc6riw66eMDQor7LWc7ISx6529DQor7LWc64+I7IiYDQor7LWc7J6s7ZiEDQor7LWc6riw66y4DQor7LWc7KCV6rOkDQor7LWc7Jq07Zi4DQor7LWc7J207JqpDQor7LWc6riw7ISxDQor7LWc7JiB7Zi4DQor7LWc6riw7JWUDQor7LWc7J6s7ISdDQor7LWc6riw7JuQDQor7LWc7LmY7IiYDQor7LWc67aA7IudDQor7LWc642V7ISgDQor7LWc6riw7ZmYDQor7LWc7ZW07Z2sDQor7LWc7JiB7ZiEDQor7LWc67SJ64+ZDQor7LWc6ri464+ZDQor7LWc64+Z7IiYDQor7LWc7J6s7ZmYDQor7LWc7KeE6recDQor7LWc6ri466+4DQor7LWc7KSR7Je0DQor7LWc67OR7YOdDQor7LWc6rCR7IiYDQor7LWc6ri47JqpDQor7LWc7J207J6EDQor7LWc7ZiE66eMDQor7LWc7KSR7KSADQor7LWc64KZ66y4DQor7LWc7LC97Je0DQor7LWc7KKF6recDQor7LWc6raM7JuQDQor7LWc64KZ7J24DQor7LWc66qF7ZiEDQor7LWc67OR7ZmYDQor7LWc7ISx7JygDQor7LWc64Kc7ISgDQor7LWc7IaM7IudDQor7LWc64W46rWwDQor7LWc7ZiE7J28DQor7LWc64Ko7JuQDQor7LWc7ZW06riwDQor7LWc67OR65OdDQor7LWc7KeE7YOdDQor7LWc64Ko7J20DQor7LWc67O16regDQor7LWc7LaY7LKgDQor7LWc7Z2s7Z2sDQor7LWc64Ko7KCVDQor7LWc7YOc7Z2sDQor7LWc7J6s7ISkDQor7LWc7KCQ7IudDQor7LWc64Ko7KGwDQor7LWc7Jyg7Z2sDQor7LWc7IOB7J6sDQor7LWc6rK97ISgDQor7LWc64Ko7LKgDQor7LWc7KCV7YOcDQor7LWc7Zi47JqpDQor7LWc7IOB67O1DQor7LWc64Ko7Z2sDQor7LWc7Iic7IiYDQor7LWc6riI7J20DQor7LWc7J287IiYDQor7LWc64K07IK8DQor7LWc7Jqp7Z2sDQor7LWc7IOB7KSADQor7LWc7LaY7LKgDQor7LWc64yA6rOkDQor7LWc7JiB7JWEDQor7LWc6riw6re8DQor7LWc6reA7ZmYDQor7LWc64yA7JuFDQor7LWc7ZW07JiBDQor7LWc7J28642VDQor7LWc66y07ZmUDQor7LWc64yA7KKFDQor7LWc7J2Y6rWtDQor7LWc6re864usDQor7LWc6rCV7LaYDQor7LWc64yA7ZmYDQor7LWc7JiB7IiYDQor7LWc7IaM7ZeMDQor7LWc67OR7ZWcDQor7LWc642V7IicDQor7LWc7ZWZ7IudDQor7LWc6riw7KCVDQor7LWc66Gd7KCVDQor7LWc64+I6rOkDQor7LWc7IOB7ZmYDQor7LWc7Jqp6riwDQor7LWc7YOc7J28DQor7LWc64+I7ZeMDQor7LWc7J287Y+sDQor7LWc7ZWc7IugDQor7LWc67aE66eMDQor7LWc64+Z6rG0DQor7LWc7Jq06recDQor7LWc7KKF7ZuIDQor7LWc7IOB7Zi4DQor7LWc64+Z6rWtDQor7LWc6rG066y4DQor7LWc7J6s7IiZDQor7LWc7Jyk7ZmYDQor7LWc64+Z6riwDQor7LWc6rK966GdDQor7LWc7Iq57IiZDQor7LWc6reA67aEDQor7LWc64+Z6ri4DQor7LWc7YOc7IudDQor7LWc7J6s6rK9DQor7LWc7J6Q7Zi4DQor7LWc64+Z66qpDQor7LWc7Jyg67O1DQor7LWc7JiB7ZmYDQor7LWc7IOB7ISxDQor7LWc64+Z7IScDQor7LWc7Jqw7LKgDQor7LWc7J247J20DQor7LWc7KCV7J20DQor7LWc64+Z7IigDQor7LWc7LC97ZmYDQor7LWc6riw7ZmNDQor7LWc7ISd7IigDQor7LWc64+Z7IudDQor7LWc7KCV7IicDQor7LWc7Jm46re8DQor7LWc7JuQ7IiZDQor7LWc64+Z7JqxDQor7LWc6ri4656ADQor7LWc7KKF7J6QDQor7LWcIOyatA0KK+y1nOuPmeyjvA0KK+y1nOuFhOusuA0KK+y1nOq4sO2DnA0KK+y1nOyDgeu5iA0KK+y1nOuPmeykgA0KK+y1nOqwkeyInA0KK+y1nOqyve2YuA0KK+y1nO2VtOyhsA0KK+y1nOuPmeynhA0KK+y1nOyasOqzpA0KK+y1nOyImOyImA0KK+y1nO2XjOq4sA0KK+y1nOuPmeynhA0KK+y1nOq4sOq1rA0KK+y1nOyerO2doA0KK+y1nOyDgeuemA0KK+y1nOuPmey2mA0KK+y1nOyYge2drA0KK+y1nOyaqeydvA0KK+y1nOyYpOyglQ0KK+y1nOuPme2YuA0KK+y1nOyDgeyLnQ0KK+y1nOyDgeynhA0KK+y1nOqyvey2mA0KK+y1nOuPme2ZjQ0KK+y1nOyaqeydtA0KK+y1nOuPmeyImA0KK+y1nOyjvOqwkQ0KK+y1nOuPme2ZlA0KK+y1nOywveusuA0KK+y1nOyYpeyXtA0KK+y1nOygkO2VtA0KK+y1nOuPme2biA0KK+y1nOyihe2ZmA0KK+y1nOyInOqwkQ0KK+y1nOyerO2YuA0KK+y1nOuRkOq4sA0KK+y1nO2drO2MkA0KK+y1nOyDne2VtA0KK+y1nOyEseyyoA0KK+y1nOuRkOyXtA0KK+y1nOyerOyhsA0KK+y1nOyYgeynhA0KK+y1nOyiheybhQ0KK+y1nOuRkOybkA0KK+y1nO2ZmOybkA0KK+y1nO2DnOyVoA0KK+y1nOuvuOyLrA0KK+y1nOuRkO2YlQ0KK+y1nOynhOusuA0KK+y1nOywqOydtA0KK+y1nOyDge2ZmA0KK+y1nOugpO2YhA0KK+y1nOq3nO2DnQ0KK+y1nOydtOyInA0KK+y1nOusmOyEnQ0KK+y1nOuniOyaqQ0KK+y1nO2YuOuPmQ0KK+y1nOyYgeuPhA0KK+y1nCDroKgNCivstZzrp4zqtowNCivstZztjJDqt5wNCivstZzsiJjrkZANCivstZzrtInqsr0NCivstZzrp4zrj4QNCivstZzqtZDtnawNCivstZzrqoXsp4QNCivstZzspIDtnaANCivstZzrp4zrj4wNCivstZzspIDsm5ANCivstZzrs5Hqt5wNCivstZztlbTqtawNCivstZzrp4zsnqwNCivstZzshozsiJgNCivstZzsooXqtowNCivstZzsoJXsobANCivstZzrp5DshJ0NCivstZzrj5ntm4gNCivstZzsg4HsiJwNCivstZztg5zrrLgNCivstZzrp5DshKANCivstZzrs5HspJENCivstZzsnqztmZgNCivstZzrrLTtmLgNCivstZzrp5DshKANCivstZzsmbjtmLgNCivstZzsnKTsmqkNCivstZzsnqzsiJgNCivstZzrp5DshKANCivstZzsmqnquLANCivstZzqt7zsmIENCivstZzshJ3sp4QNCivstZzrqoXqtawNCivstZzsnqzsiJwNCivstZzsnKTsiJkNCivstZzsnqzsiJgNCivstZzrqoXqt7wNCivstZzrtInqt5wNCivstZzsi5zsg4ENCivstZzssL3siJgNCivstZzrqoXquLANCivstZzshLHquIgNCivstZzsnqzqsr0NCivstZzquLDsiJgNCivstZzrqoXquLgNCivstZzsnbjtlZwNCivstZzsnKTsmqkNCivstZzsgrztmZgNCivstZzrqoXquLgNCivstZzshLHrjIANCivstZzrp4zrtoQNCivstZzrp5DtnawNCivstZzrqoXrjZUNCivstZzsg4HquLANCivstZzrs5Hqt5wNCivstZzsooXtmZgNCivstZzrqoXrnoANCivstZzsl7DsobANCivstZzsmqnqt6ANCivstZzsp4Tqt7wNCivstZzrqoXro6ENCivstZzsmrDsi50NCivstZztg5zquIgNCivstZzsmIHsmYQNCivstZzrqoXshKANCivstZztlonrtIkNCivstZzrnoDtmLgNCivstZzri6zrnpgNCivstZzrqoXsiKANCivstZzsiJntnawNCivstZzsiJjshLENCivstZzsmIHrgqgNCivstZzrqoXsm5ANCivstZzsnbjshLENCivstZzsmIHrj5kNCivstZzrtoDsspwNCivstZzrqoXtmZQNCivstZzsnbXrrLgNCivstZzsspzsi50NCivstZzsnZjsi50NCivstZzrqr3quLANCivstZzsnLXtnawNCivstZzqs6TtmZQNCivstZzsmIHsooUNCivstZzrrLTsoJUNCivstZzsg4HspJENCivstZzsmIHsp4QNCivstZzrkZDrsLANCivstZzrrLTtmIQNCivstZzspJHsiJgNCivstZzqsJHsiJwNCivstZzsnbzqsIENCivstZzrrLjrs7UNCivstZzsgrzssqANCivstZztg5zquLANCivstZzquLDtmJUNCivstZzrrLjshJ0NCivstZzshKDquLANCivstZztmqjquLANCivstZzsnqXssqANCivstZzrrLjshK0NCivstZzsg4HsiJwNCivstZzsooXtnawNCivstZzslZTtmLgNCivstZzrrLjsnqwNCivstZzsiJjrsLANCivstZzqtJHsiJkNCivstZzsm5Tsl7ANCivstZzrr7jshLENCivstZztlbTsnbgNCivstZzqtJHsiJgNCivstZzsmIHsnbgNCivstZzrr7jsiJkNCivstZzsooXrr7wNCivstZzsmqnsnoQNCivstZzso7ztmLgNCivstZzrr7ztnawNCivstZztlYTssqANCivstZzqsJHrs7UNCivstZzsvozsl7QNCivstZzrspTsmqkNCivstZztjJDrnpgNCivstZzsiJztmY0NCivstZzrp4zshLgNCivstZzrspTso7wNCivstZzsmIHtnawNCivstZzsooXtnawNCivstZzssL3tmLgNCivstZzrs5Hqt5wNCivstZzssqDssqANCivstZzsooXsnoQNCivstZzqsIDtl4wNCivstZzrs5HquLgNCivstZzrqoXtmLgNCivstZzssKjso7wNCivstZzsmIHstIwNCivstZzrs5HquLgNCivstZzstpjqsbQNCivstZzsg4Hsp4QNCivstZzshLHsnoQNCivstZzrs5HquLgNCivstZzsmIHtnawNCivstZztg5zrtIkNCivstZztg5zqtJENCivstZzrs5Hri7QNCivstZzshLjrgqgNCivstZzrs5HtmZgNCivstZzshLjqs6QNCivstZzrs5HsiJgNCivstZzsmKTsiJgNCivstZzqsJHsmrENCivstZzsoJXqtZANCivstZzrs5HsiJgNCivstZzsnqzqtawNCivstZzsmIHqtawNCivstZzquIjqsr0NCivstZzrs5HsiJgNCivstZzqs7XtmLgNCivstZzstpjrnpgNCivstZzssL3smrANCivstZzrs5HsiKANCivstZzrp4zsoJUNCivstZztmLjsl7ANCivstZzstpjsg4ENCivstZzrs5HslZQNCivstZzqtaztm4gNCivstZzqsJHsiJgNCivstZzsnqzrs7UNCivstZzrs5Hsl7QNCivstZzrjIDquLANCivstZzrrLTquLANCivstZzsmqnquLgNCivstZzrs5HsmKQNCivstZzqs4TspJENCivstZzsp4TsmrANCivstZzsmIHsmqkNCivstZzrs5HsmrQNCivstZztg5zsmIENCivstZzrs7XqtZANCivstZzrs7Ttg5wNCivstZzrs5Hso7wNCivstZzsnqzquLANCivstZzrspTtmIQNCivstZzsi6Dtg50NCivstZzrs5HspIANCivstZztmZTsl7QNCivstZzsnZjtnawNCivstZzsooXrp4wNCivstZzrs5HssKwNCivstZzqt5zsobANCivstZzsiJjrrLUNCivstZzsmIHsl7QNCivstZzrs5HssKwNCivstZzsg4Hqt5wNCivstZzrjIDtg50NCivstZzssL3smrANCivstZzrs5HssqANCivstZztlbTtm4gNCivstZzrs7Tsi50NCivstZzsg4HsmKQNCivstZzrs5HssqANCivstZztmITspIANCivstZzqt5zshLENCivstZzsoJXqtIANCivstZzrs5Htg50NCivstZztnaXstpQNCivstZzsnbzrnoANCivstZzrjIDsl7ANCivstZzrs5HtlYQNCivstZzrgpnsiJkNCivstZzsirnqtIANCivstZzqsr3smqkNCivstZzrs5HtlZgNCivstZzspJHrj4QNCivstZzsnZjrspQNCivstZztg5zsnpANCivstZzrs5HtmZgNCivstZzsg4HsiJgNCivstZzstpjsspwNCivstZzssKjtmLgNCivstZzrs7Tqt7wNCivstZzsmIHshK0NCivstZzshLHsiJgNCivstZzquLDtj4kNCivstZzrs7XrnoANCivstZzrs5HsnKQNCivstZzsiJzsmKUNCivstZzsirntmIQNCivstZzrs7XroKgNCivstZzsnYTsiJwNCivstZzsmIHtmIQNCivstZzshLHrqoUNCivstZzrs7XsiJwNCivstZzrj4TsobANCivstZzssqDsobANCivstZzsiJjsspwNCivstZzrs7Xsl7ANCivstZztlbTshK0NCivstZzrj4Tsl7ANCivstZzsnoTsobANCivstZzrs7XsmIENCivstZzsoJDsnbQNCivstZzsooXsiJgNCivstZzshLHqt7wNCivstZzrs7XsmqkNCivstZzqtJHqsJENCivstZzsmqnsmqkNCivstZzsnqXsp4QNCivstZzrs7XstpwNCivstZzsiJzsmqkNCivstZztmqjquLgNCivstZzsmIHsi50NCivstZzrs7XtmLgNCivstZzsmIHtnLQNCivstZzshJ3smrQNCivstZzsmqnsiJgNCivstZzrtInqtowNCivstZzshJ3tg50NCivstZztm4jsmIENCivstZzsmqntnawNCivstZzrtInshKANCivstZzsooXquLANCivstZzri6TtmIQNCivstZztnaXrr7wNCivstZzrtIntmqgNCivstZzrj5ntmLgNCivstZztnJjsiJgNCivstZzrrLTrjZUNCivstZzrtIntnawNCivstZzsnKTqsr0NCivstZzsooXsiJgNCivstZzsoJXsmqkNCivstZzrtoDsi50NCivstZzsooXrs7UNCivstZzsnqztnawNCivstZzrgqjri6wNCivstZzrtoTrgqgNCivstZztg5zqt5wNCivstZzrs7XtnawNCivstZzssKztg5wNCivstZzrtoTshKANCivstZzsmIHqsJENCivstZzsnqzqta0NCivstZzrtoTtmIQNCivstZzrtoTsmKUNCivstZztmITsooUNCivstZzrgqjsmIENCivstZzsmIHtl4wNCivstZzrtoTsnbQNCivstZzrgqjtlbQNCivstZztg5ztmLgNCivstZztnJjtmqgNCivstZzsgrzrs7UNCivstZzshLHrjZUNCivstZzquLDsiKANCivstZzsirnquLgNCivstZzsgrzsiJwNCivstZzsoJXstpwNCivstZzsoJXsm5ANCivstZzqt5zsmrENCivstZzsgrzsmqkNCivstZztlZnshKANCivstZzsoJXsmKUNCivstZzsoJXsobANCivstZzsgrzsobANCivstZztmJXsoJUNCivstZzqtIDsp4QNCivstZzrqoXsm5ANCivstZzsgrztnawNCivstZzrqoXshKQNCivstZzrjIDsiJwNCivstZzshJ3sp4ANCivstZzsg4Hqs6QNCivstZzsnqzsmKQNCivstZzrs5HsnqwNCivstZzrs5HsmKUNCivstZzsg4Hqt6ANCivstZzquLDqs6QNCivstZwg7IudDQor7LWc6rWQ7JuFDQor7LWc7IOB6riwDQor7LWc66y467aEDQor7LWc7Jew7IiYDQor7LWc7Zqo7IOdDQor7LWc7IOB65GQDQor7LWc7JuQ6rWsDQor7LWc6rec7KeEDQor7LWc67OR7LKgDQor7LWc7IOB66a8DQor7LWc7YOc7IK8DQor7LWc7Zi46rWQDQor7LWc7YyQ7IicDQor7LWc7IOB66a8DQor7LWc7KKF7KGwDQor7LWc66y47Zi4DQor7LWc7JiB7IudDQor7LWc7IOB66a8DQor7LWc6rCV6rWsDQor7LWc7IiY7Jq0DQor7LWc6rK97KCVDQor7LWc7IOB66y0DQor7LWc64+E7ZmYDQor7LWc7J247Z2sDQor7LWc7Jm47KeEDQor7LWc7IOB67CxDQor7LWc7KCV6re8DQor7LWc66eQ7LmYDQor7LWc67SJ6recDQor7LWc7IOB7ISdDQor7LWc7YOc7ZmYDQor7LWc7IOB6regDQor7LWc7KKF7KGwDQor7LWc7IOB7IiZDQor7LWc7YyQ7IudDQor7LWc7ZWc6recDQor7LWc7KKF6raMDQor7LWc7IOB7Je0DQor7LWc7J6l6rWsDQor7LWc7KeA7ZmYDQor7LWc7Jqp7IudDQor7LWc7IOB7JiBDQor7LWc7KSR7Zi4DQor7LWc7JuQ7ZmYDQor7LWc67O07IudDQor7LWc7IOB7J20DQor7LWc7IyN7ISgDQor7LWcIO2DnA0KK+y1nO2DnOyXtA0KK+y1nOyDgeyihQ0KK+y1nOydmOq4sA0KK+y1nOyEseuNlQ0KK+y1nOyEoOyLpA0KK+y1nOyDge2YuA0KK+y1nOuMgOyaqQ0KK+y1nOyCrOq3vA0KK+y1nOygkOyaqQ0KK+y1nOyDge2YuA0KK+y1nOyDgeyImA0KK+y1nOydtO2ZjQ0KK+y1nOyEseybkA0KK+y1nOyDge2YuA0KK+y1nOyEneyekA0KK+y1nOq4uO2YuA0KK+y1nO2DnOyLnQ0KK+y1nOyDge2ZmA0KK+y1nOqyve2ZmA0KK+y1nOustOyatA0KK+y1nOyDgeyImA0KK+y1nOyDge2ZmA0KK+y1nOyEuOyhsA0KK+y1nOuzkeuqqA0KK+y1nOuTneu0iQ0KK+y1nOyDge2biA0KK+y1nOyaqeusuA0KK+y1nOyLoOyErQ0KK+y1nOyDgeuNlQ0KK+y1nOyEneq0gA0KK+y1nOyjvOyasQ0KK+y1nOuMgOyjvA0KK+y1nOuzkeq4sA0KK+y1nOyEneq0kQ0KK+y1nOuqheuwsA0KK+y1nO2VnO2drA0KK+y1nOuTneyXtA0KK+y1nOyEneq3vA0KK+y1nOyEse2DnA0KK+y1nOyEseyEnQ0KK+y1nOyaqe2DgQ0KK+y1nOyEneuqhQ0KK+y1nOyDgeqyvQ0KK+y1nOykkeyhsA0KK+y1nOyYgeyImA0KK+y1nOyEneusuA0KK+y1nOycoOyekA0KK+y1nOq0ke2YuA0KK+y1nOyDgeyerA0KK+y1nOyEneuwsA0KK+y1nOq4iOq3nA0KK+y1nOygleyImA0KK+y1nOyasOyErQ0KK+y1nOyEneyYpA0KK+y1nOyEuO2ZjQ0KK+y1nOyYgeyXtA0KK+y1nOyImOq4iA0KK+y1nOyEneyerA0KK+y1nOyYgeyIoA0KK+y1nOyEneyglQ0KK+y1nOq1rOynhA0KK+y1nOyEneyyoA0KK+y1nO2VnOyaqQ0KK+y1nOyerO2XjA0KK+y1nOuvuOyImA0KK+y1nOyEneyyoA0KK+y1nOyDgeqwkQ0KK+y1nOykgOydtA0KK+y1nOyaqeyLnQ0KK+y1nOyEne2XjA0KK+y1nOydvOqyvQ0KK+y1nOykkeyEnQ0KK+y1nOuqheynhA0KK+y1nOyEne2XjA0KK+y1nOyaqeqxtA0KK+y1nOyDge2ctA0KK+y1nOydmOyihQ0KK+y1nOyEne2YuA0KK+y1nOq2jOuhnQ0KK+y1nOydhOynhA0KK+y1nOyDgeyekA0KK+y1nOyEoOq3nA0KK+y1nOyblOywrA0KK+y1nOyEseq1rQ0KK+y1nOuylOq3oA0KK+y1nOyEoOydtA0KK+y1nOq4iO2drA0KK+y1nOyImOyXsA0KK+y1nOydmOyXtA0KK+y1nOyEoO2drA0KK+y1nOqyveyjvA0KK+y1nOygleq2jA0KK+y1nOuylO2ZlA0KK+y1nOyEseqyvQ0KK+y1nOuvuO2YuA0KK+y1nOuzkeuemA0KK+y1nOybkOq3vA0KK+y1nOyEseqzpA0KK+y1nOqyveuPjA0KK+y1nOygkOykgA0KK+y1nOyerOyImA0KK+y1nOyEseq0gA0KK+y1nOuzkeyEsQ0KK+y1nOyYgeyaqQ0KK+y1nOyihe2XjA0KK+y1nOyEseq1rA0KK+y1nOyEoOyZhA0KK+y1nOygleuqqQ0KK+y1nOygleyXtA0KK+y1nOyEseq3nA0KK+y1nOyEseykgA0KK+y1nOuNleyInA0KK+y1nOuvuO2VnA0KK+y1nOyEseq3nA0KK+y1nOyaqeyekA0KK+y1nOuPmeyXtA0KK+y1nOuCqOydvA0KK+y1nOyEseq3nA0KK+y1nOq3nOyLnQ0KK+y1nOyerOyLnQ0KK+y1nOyerOuRkA0KK+y1nOyEseq3nA0KK+y1nO2drOyasA0KK+y1nOyYgey2nA0KK+y1nOybkOq4sA0KK+y1nOyEseuMgA0KK+y1nOyYgeyaqQ0KK+y1nO2XjOyyoA0KK+y1nOy2mOyaqQ0KK+y1nOyEseuMgA0KK+y1nOychOycpA0KK+y1nOq3nOuPiA0KK+y1nOyEseyaqQ0KK+y1nOyEseuNlQ0KK+y1nOuMgO2ZmA0KK+y1nOyblOyaqQ0KK+y1nO2DnOq3vA0KK+y1nOyEseuPmQ0KK+y1nOykgOq3vA0KK+y1nOyjvOyyoA0KK+y1nOygleynhA0KK+y1nOyEseujoQ0KK+y1nOuylOumvA0KK+y1nOuCqO2YuA0KK+y1nOynhOuemA0KK+y1nOyEseusuA0KK+y1nO2VnOyyoA0KK+y1nOyiheyErQ0KK+y1nOykgOyLnQ0KK+y1nOyEseuvvA0KK+y1nOyYge2YhA0KK+y1nO2XjOyImA0KK+y1nOq3nOyEnQ0KK+y1nOyEseu0iQ0KK+y1nOyekOuCqA0KK+y1nOygle2WpQ0KK+y1nOyEseyImQ0KK+y1nOyEseyImA0KK+y1nOq1reyyoA0KK+y1nCDtmIENCivstZzsirnquLANCivstZzshLHsl7QNCivstZzrp5DsmqkNCivstZzsoJXrjZUNCivstZztjJTtmZQNCivstZzshLHsl7QNCivstZztg5zsooUNCivstZzsnbXtmLgNCivstZzsirnshK0NCivstZzshLHsl7QNCivstZzsvozspIANCivstZzsirnsnoQNCivstZzsnqztmIQNCivstZzshLHsmqkNCivstZzsnqzsnpANCivstZzsoJXsnqwNCivstZzrqoXspIANCivstZzshLHsmrENCivstZzsmrHtmZQNCivstZztg5zsiJgNCivstZzrjIDtmLgNCivstZzshLHsmrQNCivstZzqt7zsnbQNCivstZzsnqzqtowNCivstZzsg4HtmY0NCivstZzshLHsm5ANCivstZzshLHsl7ANCivstZzrs7TrhbgNCivstZztlbTsl7QNCivstZzshLHsm5ANCivstZzsoJXtg50NCivstZzsooXrtIkNCivstZzsoJXtm4gNCivstZzshLHsnqwNCivstZzrsKnsnpANCivstZztg5ztmLgNCivstZztg5zsoJwNCivstZzshLHsnqwNCivstZzsooXrj4QNCivstZztjJDsi50NCivstZzqt7zsiJwNCivstZzshLHsobANCivstZzsnqzsp4QNCivstZzsgrzsnbwNCivstZzsoJXsmqkNCivstZzshLHspIANCivstZzrrLTshJ0NCivstZztlZnqsbQNCivstZzqsJHsobANCivstZzshLHtg4ENCivstZzri6ztlZgNCivstZzsnqztmqgNCivstZzrs5HtnawNCivstZzshLHtg5wNCivstZzsoJXsooUNCivstZzspJHslrgNCivstZzsnbTrj5kNCivstZzshLHtg5wNCivstZzrj5nso7wNCivstZzsnqzsobANCivstZzrj5nsnbgNCivstZzshLHtg50NCivstZzshJ3rsLANCivstZztmJXqtawNCivstZztmZjsmqkNCivstZzshLHtmIQNCivstZzsiKDqt5wNCivstZztmLjrsLANCivstZzsiJzquLANCivstZzshLHtmLgNCivstZzstpjtmY0NCivstZzsp4Tqsr0NCivstZzsmIHrrLgNCivstZzshLHtmLgNCivstZzqsr3rrLgNCivstZztmZTshJ0NCivstZzsnYDtnLQNCivstZzshLHtmZQNCivstZzrp5DstpwNCivstZzsp4TsmqkNCivstZztmLjtlZgNCivstZzshLHtmZQNCivstZzrj5nsiJgNCivstZzshLHrjZUNCivstZzssKjrs7UNCivstZzshLHtmZgNCivstZzshKDsiJgNCivstZzshLHsnKQNCivstZzsnqzqtawNCivstZzshLHtm4gNCivstZzshJ3smqkNCivstZzrj5ntmLgNCivstZzrrLTtmLgNCivstZzshozrj4QNCivstZzshJ3smKUNCivstZzqsJHtmLgNCivstZztmY3smqkNCivstZzshozrj4QNCivstZzsooXsl4UNCivstZzrrLTquLANCivstZztmY3smqkNCivstZzshozsnoQNCivstZzrs5HsiJwNCivstZzsnYDsiJkNCivstZzshJ3snbQNCivstZzsiJjrgqgNCivstZztlZzrj5kNCivstZzsnKTrtoANCivstZzshLjtmLgNCivstZzsiJjrj5kNCivstZzsnbjssqANCivstZzssKjtmLgNCivstZzsg4HrhYANCivstZzsiJjrj5kNCivstZzshLjro6ENCivstZzsm5DsmrQNCivstZzsirnsnqwNCivstZzsiJjroKgNCivstZzrj5ntm4gNCivstZzqtIDqt5wNCivstZzsnKDsobANCivstZzsiJjrp4wNCivstZzquLjtnawNCivstZzsnqztmIQNCivstZzrs5Htl4wNCivstZzsiJjsl7QNCivstZzsgrztmIQNCivstZztmZTshLENCivstZzsnqzqsr0NCivstZzsiJjsnbgNCivstZzquIjsmqkNCivstZzshLHsiJgNCivstZzsg4Htg50NCivstZzsiJjsnbwNCivstZzsnbzqt5wNCivstZzrjIDshKANCivstZzssqDssqANCivstZzsiJjsnqUNCivstZzrhbjqtIANCivstZzsirntlZwNCivstZzshLjrjZUNCivstZzsiJjsooUNCivstZztlZnshKANCivstZztmLjqt5wNCivstZzsnqztlZkNCivstZzsiJjsooUNCivstZzrspTtmowNCivstZzsmIHqt7wNCivstZzrjZXsi50NCivstZzsiJzqt7wNCivstZztlbTsnbQNCivstZzsmIHsm5ANCivstZzsm5TrrLgNCivstZzsiJzquLANCivstZzsoJXtmLgNCivstZzsp4Tsg4ENCivstZzqtazrp4wNCivstZzsiJzquLANCivstZzsg4HtmY0NCivstZzspIDsiKANCivstZzstpjrtoQNCivstZzsiJzquLgNCivstZzrjIDsiJkNCivstZztg5zstpgNCivstZzsiJztmZgNCivstZzsiJzrhYANCivstZzsnqzsmKUNCivstZzsnoTsiJwNCivstZzsiJzrj5kNCivstZzsiJzrjZUNCivstZzssL3tmowNCivstZzqsr3qta0NCivstZzsiJzsmrENCivstZzsiJzrjZUNCivstZzrrLTquLgNCivstZzsooXqt5wNCivstZzsoJXqsJENCivstZzsiJzrj5kNCivstZzsm5Trp4wNCivstZzsmrTsnbUNCivstZzqs4TtmZgNCivstZzsiJzsg4ENCivstZzsooXtmLgNCivstZzsoJXrjZUNCivstZzsiKDqtowNCivstZzsiJzshKANCivstZzsooXsi50NCivstZzqsr3shJ0NCivstZztlZztg5wNCivstZzsiJzsi6ANCivstZzsoJXqsJENCivstZzrtIntnawNCivstZzsiJnrqqgNCivstZzsiJzsl7ANCivstZzsnKTtmLgNCivstZztlbTsnqwNCivstZwg7JikDQor7LWc7Iic7JewDQor7LWc7KCV7KSADQor7LWc7ZWE7JilDQor7LWc67O17JqpDQor7LWc7Iic7JqxDQor7LWc66qF7KeEDQor7LWc6riw7IiYDQor7LWc7JiB7JmEDQor7LWc7Iic7J20DQor7LWc7ISx7J6QDQor7LWc7JiB7JiBDQor7LWc6rSR7KGwDQor7LWc7Iic7J21DQor7LWcIOqzpA0KK+y1nOu2hOq3nA0KK+y1nOq0keq2jA0KK+y1nOyInOyerA0KK+y1nOygkOq0gA0KK+y1nOydvOywvQ0KK+y1nOyxhO2YuA0KK+y1nOyInOyerA0KK+y1nOqyveyynA0KK+y1nOyEseunjA0KK+y1nOq2jOyVlA0KK+y1nOyInOy2nA0KK+y1nOuFuOyEnQ0KK+y1nOuzkeyIoA0KK+y1nO2SjeyYpQ0KK+y1nOyInO2DnQ0KK+y1nOyGjOyEnQ0KK+y1nOuzkeusuA0KK+y1nOuPme2VmQ0KK+y1nOyInO2YuA0KK+y1nOybkOq3nA0KK+y1nO2DnOydvA0KK+y1nOq4iOyCvA0KK+y1nOyInO2ZlA0KK+y1nOyiheyYpQ0KK+y1nOybkOuPhA0KK+y1nOygleusuA0KK+y1nOyInO2drA0KK+y1nOuPiO2VmQ0KK+y1nOyYgeyihQ0KK+y1nOyihe2YhA0KK+y1nOyKueudvQ0KK+y1nOygleq1rQ0KK+y1nOyYge2YuA0KK+y1nOq0ke2YhA0KK+y1nOyKue2YhA0KK+y1nOyDgeyatA0KK+y1nOydhOu0iQ0KK+y1nOy2mOq3oA0KK+y1nOyKue2ZmA0KK+y1nOuCqOuTnQ0KK+y1nOygkOyErQ0KK+y1nOunkO2ZmA0KK+y1nOyLnOyYgQ0KK+y1nO2VtOuemA0KK+y1nOq0ke2cmA0KK+y1nO2ZqeyjvA0KK+y1nOyLne2DnA0KK+y1nOuzkeybkA0KK+y1nOyYgeq3nA0KK+y1nOynhO2YuA0KK+y1nOyVoOyglQ0KK+y1nOycpOydtQ0KK+y1nO2YnOyhsA0KK+y1nOyEse2ZlA0KK+y1nOyWkeyekA0KK+y1nOuMgOusuA0KK+y1nO2YleyXtA0KK+y1nOyDgeq0gA0KK+y1nOyWuOyLnQ0KK+y1nOuvuOyLnQ0KK+y1nOuqheyXsA0KK+y1nOuMgOq3vA0KK+y1nOyXrOq1kA0KK+y1nOyerOuLtA0KK+y1nOyKueyghA0KK+y1nOyDgeyImA0KK+y1nOyXsOq1rA0KK+y1nOqzhOyjvA0KK+y1nOunieywrA0KK+y1nOusuOyImA0KK+y1nOyXsO2ZjQ0KK+y1nOyYgeyYgQ0KK+y1nOq4sOq2jA0KK+y1nOyInO2drA0KK+y1nOyYgeqzpA0KK+y1nOuzkeyEoA0KK+y1nOuMgOyImQ0KK+y1nOyblOyEnQ0KK+y1nOyYgeq0gA0KK+y1nO2YuOuztQ0KK+y1nOyaqeyEsQ0KK+y1nOq3vOq3nA0KK+y1nOyYgeq1rQ0KK+y1nOyYpOq1rQ0KK+y1nO2VtOybkA0KK+y1nOyImOydtA0KK+y1nOyYgeq3nA0KK+y1nCDrnpgNCivstZzrp4ztmLgNCivstZzsnbjsl7ANCivstZzsmIHqt5wNCivstZzslYXqsJENCivstZzshozqt5wNCivstZzsnKTsiJgNCivstZzsmIHqt7wNCivstZzsnbzsobANCivstZzrs5Hsm5ANCivstZzshLHtm4gNCivstZzsmIHrjIANCivstZzslpHsnqwNCivstZztmqjtmLgNCivstZzsooXsnpANCivstZzsmIHrjZUNCivstZzquLDtmZgNCivstZzrgpnssqANCivstZzrr7jsnpANCivstZzsmIHrj4QNCivstZzshoztjJANCivstZzsiJztlqUNCivstZzrp5Dsm5ANCivstZzsmIHrj5kNCivstZzrqoXsnpANCivstZzrjIDquIgNCivstZzrjZXqs6QNCivstZzsmIHrp4wNCivstZzsmIHtnawNCivstZzsiJjqtawNCivstZztg5zsg4ENCivstZzsmIHrp4wNCivstZzrspTqt5wNCivstZzrj4TsnbgNCivstZzsmrTrrLgNCivstZzsmIHrp4wNCivstZztjJDsp4QNCivstZzsoJXsiJgNCivstZzqt4Dsg4ENCivstZzsmIHshJ0NCivstZzsooXsp4ENCivstZzsooXqt5wNCivstZzsnqztg50NCivstZzsmIHsiJgNCivstZwg7JiBDQor7LWc7JuU64+EDQor7LWc7JiB67CwDQor7LWc7JiB7IiYDQor7LWc7ISd7LKgDQor7LWc7J6s7Zi4DQor7LWc7ZiV7ISdDQor7LWc7JiB7IiZDQor7LWc7Zqo7ISdDQor7LWc7Jew7J6sDQor7LWc7ISx7JuQDQor7LWc7JiB7IicDQor7LWc7KCV7ZWcDQor7LWc66eM7JqpDQor7LWc7JiB6riwDQor7LWc7JiB7IicDQor7LWc7KeE7ZiEDQor7LWc6rSR7IiZDQor7LWc7Zi47KCQDQor7LWc7JiB7IudDQor7LWc66qF7ISkDQor7LWc7ZmY7IicDQor7LWc7JuU7IicDQor7LWc7JiB7Je9DQor7LWc7ISx7JWUDQor7LWc7KCV7IudDQor7LWc7LKg7KeEDQor7LWc7JiB7JikDQor7LWc7ZiV6re8DQor7LWc7KCV7IicDQor7LWc7J206riwDQor7LWc7JiB7J2YDQor7LWc7J217KSRDQor7LWc7IK87IudDQor7LWc7Jyk7ZWZDQor7LWc7JiB7J6QDQor7LWc7Jqp7IK8DQor7LWc66qF66CsDQor7LWc7IaM7IiZDQor7LWc7JiB7J6QDQor7LWc7YOc7IicDQor7LWc7IiY642VDQor7LWc67aE7IiYDQor7LWc7JiB7J6sDQor7LWc6raM7IiYDQor7LWc7IS47JilDQor7LWc7YOc6recDQor7LWc7JiB7KO8DQor7LWc7IiY7Je0DQor7LWc7KeE64+ZDQor7LWc7ISk7Zi4DQor7LWc7JiB7KSADQor7LWc6rK966eMDQor7LWc7KCV6rK9DQor7LWc7ZWZ7JiBDQor7LWc7JiB7KeBDQor7LWc7ISx6rK9DQor7LWc7Iic7ZmYDQor7LWc7LCs7J20DQor7LWc7JiB7KeEDQor7LWc7Jil7LKgDQor7LWc7Iic7Zi4DQor7LWc7KCV7KGwDQor7LWc7JiB7LCsDQor7LWc7LC97ZmYDQor7LWc7Jm47KSADQor7LWc7IOB7IiYDQor7LWc7JiB7LGEDQor7LWc7Iug7KCVDQor7LWc7KKF6recDQor7LWc64+Z7J20DQor7LWc7JiB7LKgDQor7LWc7ZmN7Zi4DQor7LWc7LaY7Z2sDQor7LWc7JiB7JesDQor7LWc7JiB7YOcDQor7LWc64us7J6QDQor7LWc7KCV7ZiBDQor7LWc64yA7ZWYDQor7LWc7JiB7YOcDQor7LWc7Iic7JqxDQor7LWc6reA7IiYDQor7LWc7JiB7JiBDQor7LWc7JiB7Y+sDQor7LWc7ZmN7KeEDQor7LWc66y07IiYDQor7LWc7IiY7Zi4DQor7LWc7JiB7ZWtDQor7LWc7LC97JqpDQor7LWc7Iic642VDQor7LWc7ISx7LC9DQor7LWc7JiB7ZiEDQor7LWc7LKc64yADQor7LWc67OR7LGEDQor7LWc7IaM7ZWEDQor7LWc7JiB7Zi4DQor7LWc7J6s7YOdDQor7LWc7Iq57J24DQor7LWc7J6s64+ZDQor7LWc7JiB7ZqoDQor7LWc7LKt7JqpDQor7LWc7Z2s6rCRDQor7LWc66qF7IiYDQor7LWc7JiB7Z2sDQor7LWc7LaY6recDQor7LWc7KKF64usDQor7LWc7Iic7KCVDQor7LWc7Jik6re8DQor7LWc7IOB7KO8DQor7LWc6riI7IiYDQor7LWc67OR7Je0DQor7LWc7Jik7IOdDQor7LWc67OR7LKgDQor7LWc7JiB7LKgDQor7LWc6rCV7JqpDQor7LWc7Jil6regDQor7LWc7J247ISgDQor7LWc64yA7JWgDQor7LWc6riw7ZiEDQor7LWc7Jil7JWUDQor7LWc7Jqp7IiYDQor7LWc7Zi47JqpDQor7LWc7J6s7LKgDQor7LWc7Jm47YOdDQor7LWc6re864+ZDQor7LWc7KCV6re8DQor7LWc7Jew7JuQDQor7LWc7Jqp6raMDQor7LWc6riw7JikDQor7LWc7ZW07KSADQor7LWc7Iq57ZmNDQor7LWc7Jqp6recDQor7LWc7J6s67CxDQor7LWc7KCV6rWsDQor7LWc7Jyg64+ZDQor7LWc7Jqp6regDQor7LWc7IiY7ZWZDQor7LWc7KKF66GADQor7LWc7ZWc66qoDQor7LWc7Jqp6re8DQor7LWc7J247IiZDQor7LWc7Iic6re8DQor7LWc7Z2s7ZmYDQor7LWc7Jqp6re8DQor7LWc7J247JilDQor7LWc7J6l7KeEDQor7LWc7JiB7Zi4DQor7LWc7Jqp642VDQor7LWc642V64W4DQor7LWc7Jq07YOcDQor7LWc7JiB7Jq0DQor7LWc7Jqp7ISgDQor7LWc7IOB7J6QDQor7LWc6rec7ZmYDQor7LWc6rK97Zi4DQor7LWc7Jqp7ISxDQor7LWc6rK97JqpDQor7LWc7IOB66y4DQor7LWc7ISx64KoDQor7LWc7Jqp7IiYDQor7LWc7ZeM7Z2sDQor7LWc7Jq07IStDQor7LWc6rec7ZmYDQor7LWc7Jqp7IiYDQor7LWc7KeE66y4DQor7LWc7KCV7IudDQor7LWc7Iic6ri4DQor7LWc7Jqp7Iq5DQor7LWc7JiB66qFDQor7LWc7KeE7Zi4DQor7LWc7YOc7IOBDQor7LWc7Jqp7KGwDQor7LWc7KSR6riwDQor7LWc67OR7ZmYDQor7LWc7J6s7ISdDQor7LWc7Jqp7KO8DQor7LWc7ZW0642VDQor7LWc7KO86rCRDQor7LWc7Iic642VDQor7LWc7Jqp7KSADQor7LWc7IK87KGwDQor7LWc7J6s7JWgDQor7LWc7J6s66GdDQor7LWc7Jqp7YOcDQor7LWc7J2R64+EDQor7LWc64us6rG0DQor7LWc7JiB7ZuIDQor7LWc7Jqp7YOdDQor7LWc6riw7YOcDQor7LWc7JiB7Zi4DQor7LWc6rK97JqpDQor7LWc7Jqp7ZWcDQor7LWc7KCQ6ri4DQor7LWc7ISx7JqpDQor7LWc7JiB7IukDQor7LWc7Jqp7ZmYDQor7LWc64+Z7JikDQor7LWc7Zqo7IudDQor7LWc7ZiE7Zi4DQor7LWc7Jqw6raMDQor7LWc7LC967O1DQor7LWc64us7IigDQor7LWc7YOc7ISgDQor7LWc7Jqw65OdDQor7LWc7Jqp7Z2sDQor7LWc66Oh6rK9DQor7LWc6riw7Z2sDQor7LWc7Jqw7IicDQor7LWc7KSA66qoDQor7LWc7Jyk7LacDQor7LWc7Jyk7YOcDQor7LWc7Jqw7JiBDQor7LWc66eM7LGEDQor7LWc7J6s6ri4DQor7LWc7Jqp7LKcDQor7LWc7Jqw7JiBDQor7LWc7Zi466qFDQor7LWc7ISx7JuQDQor7LWc7Jyg7IiYDQor7LWc7Jq06rOkDQor7LWc7IOB7ISdDQor7LWc66+47Je0DQor7LWc67OR7Je0DQor7LWc7Jq07IStDQor7LWc7J6s7J6EDQor7LWc7IOB7Z2sDQor7LWc6rK97IiYDQor7LWc7Jq07JqpDQor7LWc64+Z67KUDQor7LWc7JuQ6rWsDQor7LWc7ZW07YOcDQor7LWc7Jq07JuQDQor7LWc67aE64+ZDQor7LWc67aE7JiBDQor7LWc7KCQ6ri4DQor7LWc7Jq07ZiVDQor7LWc67OR7IigDQor7LWc6re86rOkDQor7LWc6raM7ZWYDQor7LWc7JuQ6recDQor7LWc7KKF7IiYDQor7LWc7LCo7JmEDQor7LWc7IOB6rK9DQor7LWc7JuQ6ri4DQor7LWc7J2E7LC9DQor7LWc7J6s7JikDQor7LWc7Jil7KKFDQor7LWc7JuQ64usDQor7LWc7Iic7JewDQor7LWc6ri47IiYDQor7LWc7JiB7JqwDQor7LWc7JuQ642VDQor7LWc7YOc6re8DQor7LWc64+Z7JWEDQor7LWc7YyU7Z2sDQor7LWc7JuQ67O0DQor7LWc7KCV6rOkDQor7LWc7ZmN7Zi4DQor7LWc7ZW06rWsDQor7LWc7JuQ7ISdDQor7LWc7JiB7J6QDQor7LWc7KO87JiBDQor7LWc7KSR7LapDQor7LWc7JuQ7J21DQor7LWc7KCV65OdDQor7LWc6rSA7Z2sDQor7LWc64W47JyoDQor7LWc7JuQ7J28DQor7LWc7Jil67O1DQor7LWc66eQ7J6QDQor7LWc6riw7ISgDQor7LWc7JuQ7KGwDQor7LWc7Iig6recDQor7LWc7KCQ7Zi4DQor7LWc7Iic7KeEDQor7LWc7JuQ7YOdDQor7LWc6riw7ZiEDQor7LWc7ISg6riIDQor7LWc7KKF6rK9DQor7LWc7JuQ7YOdDQor7LWc7KKF7IudDQor7LWc7IK87ZuIDQor7LWc7ZWY7KSRDQor7LWc7JuQ7Zi4DQor7LWc7Zqo7KGwDQor7LWc6rWQ7Y+sDQor7LWc7KO87ZalDQor7LWc7JuQ7ZmNDQor7LWc67aE7ZmYDQor7LWc7ZiE7IicDQor7LWc7IiY64+MDQor7LWc7JuQ7ZmNDQor7LWc7ISg7JqxDQor7LWc7ZmU656YDQor7LWc64Ko6rG4DQor7LWc7JuU7IicDQor7LWc6reA7ZmNDQor7LWc6riw7ZWEDQor7LWc7ISd7LKgDQor7LWc7JyE6rK9DQor7LWc7ISx7ZqoDQor7LWc66eQ7JWFDQor7LWc7KSR7Je0DQor7LWc7Jyk6rOkDQor7LWc7KCV6raMDQor7LWc7Iug7Je0DQor7LWc7YOc7IStDQor7LWc7Jyk6rOkDQor7LWc6riw7ISxDQor7LWc6riw7KSADQor7LWc66qF7KeEDQor7LWc7Jyk6riwDQor7LWc7Jil6riIDQor7LWc7KeE7KeEDQor7LWc7JuQ7IiYDQor7LWc7Jyk64KoDQor7LWc6rSR66CsDQor7LWc67OR67ORDQor7LWc7ZWc7IOBDQor7LWc7Jyk64+EDQor7LWc7JiB7ISdDQor7LWc66y47ISgDQor7LWc7JuQ7LKgDQor7LWc7Jyk67O1DQor7LWc7JiB7JykDQor7LWc67OR7JykDQor7LWc67SJ7IigDQor7LWc7Jyk7JiBDQor7LWc7Jew7IiYDQor7LWc7JuQ6rKsDQor7LWc7Jil7IiYDQor7LWc7Jyk7Zi4DQor7LWc7ISx7ZmYDQor7LWc7IK87IK8DQor7LWc7KKF7KO8DQor7LWc7Jyk7Zi4DQor7LWc7JuQ64yADQor7LWc65GQ6529DQor7LWc7IOB7JuQDQor7LWc7Jyo7YOcDQor7LWc7JiB7JuFDQor7LWc67OR6rK9DQor7LWc7KO87ISgDQor7LWc7J2A6rK9DQor7LWc7ZWc7IicDQor7LWc7Jil7ZiEDQor7LWc7J6s7LmgDQor7LWc7J2A7JiBDQor7LWc7Jqp7YOcDQor7LWc7Z2s7ZWZDQor7LWc7IiY7Z2sDQor7LWc7J2A7KKFDQor7LWc7IOB7ISdDQor7LWc7J247J21DQor7LWc7JiB7KGwDQor7LWc7J2R6rOkDQor7LWc7JyE6riwDQor7LWc7IOB7ZmUDQor7LWc67OR7ZeMDQor7LWc7J2Y6raMDQor7LWc7KKF7LGEDQor7LWc7IOB7IiYDQor7LWc7KKF7IiYDQor7LWc7J2Y7ZiEDQor7LWc7KCQ6rKsDQor7LWc7IOB7ZmYDQor7LWc6riw7YOBDQor7LWc7J206riwDQor7LWc7ZWY656YDQor7LWc7YOc7Je0DQor7LWc7ISd64WADQor7LWc7J216raMDQor7LWc7Jew7LaYDQor7LWc7JuQ7ISgDQor7LWc7J6s7IicDQor7LWc7J217IOBDQor7LWc7ZmU7IStDQor7LWc7IOB7KeEDQor7LWc64+Z7ZiEDQor7LWc7J217ZiEDQor7LWc7ISx64KoDQor7LWc7ISx7KeEDQor7LWc7YOc7ISdDQor7LWc7J246raMDQor7LWc7ISx7ZWcDQor7LWc7IaM7ZeMDQor7LWc7KKF67SJDQor7LWc7J2464yADQor7LWc7KeE67O1DQor7LWc6rOE67KUDQor7LWc7IaM7ZWEDQor7LWc7J2464+ZDQor7LWc7YOc66GdDQor7LWc7JaR6ri4DQor7LWc7Zi466CoDQor7LWc7J247IiYDQor7LWc64+Z7LKgDQor7LWc66eM7JuQDQor7LWc7IaM7Je0DQor7LWc7J247IudDQor7LWc7IOB7JqwDQor7LWc7YOc6re8DQor7LWc7YOc6regDQor7LWc7J247JilDQor7LWc66qF7IudDQor7LWc7IiY7LaYDQor7LWc7JiB66eMDQor7LWc7J247KO8DQor7LWc7KCc7KCcDQor7LWc7ZmY7LKgDQor7LWc7YOc7IigDQor7LWc7J247LKgDQor7LWc7Jm47IiYDQor7LWc7Iic7ZmNDQor7LWc67aE7IudDQor7LWc7J247ZmYDQor7LWc7Jqp64W4DQor7LWc6rK964+ZDQor7LWc7Jq0656RDQor7LWc7J286riIDQor7LWc7Zal7KO8DQor7LWc7JuQ7J6sDQor7LWc65GQ7KO8DQor7LWc7J2864+ZDQor7LWc7JiB7Zi4DQor7LWc7JuQ7IiYDQor7LWc6rec7YOcDQor7LWc7J287IiYDQor7LWc7KKF6rK9DQor7LWc7ISx7ZmUDQor7LWc67OR6ri4DQor7LWc7J287LacDQor7LWc7J286rWQDQor7LWc6rK97IiYDQor7LWcIOyLnQ0KK+y1nOydvO2YuA0KK+y1nO2ZjeuvuA0KK+y1nOywveyInA0KK+y1nOuPmeyaqQ0KK+y1nOydvO2ZmA0KK+y1nOuPmeqxtA0KK+y1nOy5oOyaqQ0KK+y1nOykgOyaqQ0KK+y1nOydvO2ZmA0KK+y1nOyYgeydtQ0KK+y1nOu0ieq1rQ0KK+y1nOq4sOyEoA0KK+y1nOydvO2biA0KK+y1nOqwkeq4sA0KK+y1nOyDgeusmA0KK+y1nOyEseydvA0KK+y1nOyekOuPhA0KK+y1nOqyveybhQ0KK+y1nOyerO2DnQ0KK+y1nOynhOqyvQ0KK+y1nOyepeqwlQ0KK+y1nOyEoOyEoA0KK+y1nOuzteuCnA0KK+y1nO2ZlO2ZjQ0KK+y1nOyepeq4sA0KK+y1nOq0keuNlQ0KK+y1nOy2mO2WiQ0KK+y1nOyerOyInA0KK+y1nOyepeyImA0KK+y1nOyXsOqzpA0KK+y1nOywveuNlQ0KK+y1nOybkOyLnQ0KK+y1nOyepeyIoA0KK+y1nOyZuO2ZmA0KK+y1nO2DnO2ajA0KK+y1nOyaqeuqqA0KK+y1nOyepeykgA0KK+y1nOq3nOq3vA0KK+y1nOywveyduA0KK+y1nOuzte2ZlA0KK+y1nOyerOq3nA0KK+y1nO2VmeyjvA0KK+y1nOyerO2YuA0KK+y1nOybkOycpA0KK+y1nOyerOq3nA0KK+y1nOyYgeydgA0KK+y1nOq3oOyImA0KK+y1nOykgO2YuA0KK+y1nOyerOuNlQ0KK+y1nOuqheyjvA0KK+y1nOyerOyEsQ0KK+y1nOustO2ZjQ0KK+y1nOyerOunjA0KK+y1nOyduOyXtA0KK+y1nOyEseycpA0KK+y1nO2YhO2ZmA0KK+y1nOyerOusuA0KK+y1nOyYge2ZlA0KK+y1nOq1kOyLrA0KK+y1nOqyveqzpA0KK+y1nOyerOuztQ0KK+y1nOqyve2VnA0KK+y1nOyaqe2VmQ0KK+y1nOyYgeycpA0KK+y1nOyerOu0iQ0KK+y1nOyWkeydtA0KK+y1nOyEseynhA0KK+y1nOyduOuLrA0KK+y1nOyerOyDgQ0KK+y1nOuPme2YhA0KK+y1nOyaqeyLnQ0KK+y1nOq4sOqyvQ0KK+y1nOyerOyEnQ0KK+y1nOuNle2YhA0KK+y1nOydvO2ZlA0KK+y1nOyDgeyjvA0KK+y1nOyerOyImA0KK+y1nOybkOuwsA0KK+y1nOyWke2YuA0KK+y1nOyYgeuPhA0KK+y1nOyerOyImQ0KK+y1nOyInO2YhA0KK+y1nOu0ieyYpQ0KK+y1nOygleyEnQ0KK+y1nOyerOyImQ0KK+y1nOyDgeyhsA0KK+y1nOyEoO2RnA0KK+y1nOuzte2VmA0KK+y1nOyerOyLnQ0KK+y1nOyYgeyInA0KK+y1nOyDgeyZhA0KK+y1nOq0keydtA0KK+y1nOyerOyYpA0KK+y1nOykgOyImA0KK+y1nOygle2VmQ0KK+y1nOqwleuMgA0KK+y1nOyerOyasA0KK+y1nOyImOyasA0KK+y1nOuzteq4sA0KK+y1nOuPmeyInA0KK+y1nOyerOyasQ0KK+y1nOunjO2DnA0KK+y1nCDquLANCivstZzsg4HsobANCivstZzsnqzsmrQNCivstZzsmqnshLENCivstZzsnbzshLENCivstZzshJ3siJgNCivstZzsnqzsnKQNCivstZzsgrzsiJgNCivstZzsnqzsm5ANCivstZzri6zsoJUNCivstZzsnqzstpgNCivstZzqtazspIANCivstZzrjIDroKgNCivstZztjJTrrLgNCivstZzsnqzstpwNCivstZzqtZDsl7QNCivstZzsgrzshKANCivstZzsmbjsmKQNCivstZzsnqztlZkNCivstZzso7zsiJgNCivstZztmJzrqoUNCivstZzrs5HsuZgNCivstZzsnqztl4wNCivstZzsiJjsiJgNCivstZzrrLTsl7ANCivstZzshLHsl7ANCivstZzsnqztmLgNCivstZzsvozqtIANCivstZzsnqztnawNCivstZztg5zsmqkNCivstZzsnqztmLgNCivstZzsiJjsp4QNCivstZzsnoTshJ0NCivstZzssL3shKANCivstZzsnqztmLgNCivstZzquLjtl4wNCivstZzrj4TrsKkNCivstZztlYTtnawNCivstZzsnqztmLgNCivstZzrtInslZQNCivstZzsnbztg5wNCivstZzrqoXtmLgNCivstZzsnqztmZgNCivstZzsl7Dsi50NCivstZztmLjtmZgNCivstZzquLDso7wNCivstZzsoITqt7wNCivstZzsmKXqta0NCivstZzsnbjssL0NCivstZzsnYTsl7QNCivstZzsoJDquLANCivstZzsmqnshK0NCivstZzsnZjtmIQNCivstZzsoJDsi50NCivstZzsoJDrjZUNCivstZzshJ3roZ0NCivstZzsoJXsspwNCivstZzsnqzquLANCivstZzsoJDsi50NCivstZzsmKTrj4QNCivstZzrp4zquLgNCivstZzsmIHtmLgNCivstZzsoJDsmqkNCivstZzsiJjrqoUNCivstZzquLDssqANCivstZztg5zshJ0NCivstZzsoJDspIANCivstZzshLHshJ0NCivstZzqt5zsobANCivstZzssL3sobANCivstZzsoJXrjZUNCivstZzsooXqt7wNCivstZzsirnsobANCivstZzsg4HstpwNCivstZzsoJXrtIkNCivstZzrkZDri6wNCivstZzsoJDtmLgNCivstZzsspzsi50NCivstZzsoJXsiJgNCivstZzsooXshJ0NCivstZzsnqzsl7QNCivstZzshKTshJ0NCivstZzsoJXsiJgNCivstZzrp4zsg50NCivstZzsp4TsoJwNCivstZztmLjquLgNCivstZzsoJXsiJgNCivstZzsnqzqta0NCivstZzqtJHtlZkNCivstZzrsKnqt5wNCivstZzsoJXsl7ANCivstZzsmqnsmrANCivstZzsnqzspIANCivstZzquLDrs5ENCivstZzsoJXsmKQNCivstZzshKDtmLgNCivstZzsmqnrnpgNCivstZzsp4Tqt7wNCivstZzsoJXsmrANCivstZzrgqjrs7UNCivstZzssqDtmY0NCivstZzsm5DsmqkNCivstZzsoJXsnKQNCivstZzrrLjsiJgNCivstZzqt7zsiJkNCivstZzsoJXrjZUNCivstZzsoJXsnoQNCivstZzrjZXrjZUNCivstZzslrjsnbQNCivstZztlbTsmrANCivstZzsoJXsooUNCivstZzsnqzsiJwNCivstZzrtInssKwNCivstZzsgrzshK0NCivstZzsoJXspIANCivstZzsoJXsm5ANCivstZzsnYTtnaANCivstZzspJHrr7wNCivstZzsoJXssqANCivstZzsg4Hrnb0NCivstZzso7zsnbQNCivstZzsnbzsiJwNCivstZzsoJXtmLgNCivstZzsooXquLANCivstZzssL3si50NCivstZzsmIHshJ0NCivstZzsoJXtmZgNCivstZzsoJXtmLgNCivstZzqtIDsooUNCivstZzrs5HsnbQNCivstZzsoJXtmZgNCivstZzqs7XsmrANCivstZzrs5HsiJgNCivstZzsiJnsiJkNCivstZzsoJXtmqgNCivstZzquLDsm5ANCivstZzqsr3rrLgNCivstZzsnqXslaANCivstZzsooXqsJENCivstZzquLjrr7gNCivstZzqsJHroZwNCivstZzsl7DqsbQNCivstZzsooXqsr0NCivstZztlqXquLANCivstZztg5zsnpANCivstZzrs5HrnpENCivstZzsooXqtZANCivstZzshJ3spIANCivstZzqsr3siJwNCivstZzsooXtmIQNCivstZzsooXqta0NCivstZzsmIHsi50NCivstZzquLDsnbQNCivstZzshLHrtoANCivstZzsooXqt5wNCivstZzqsr3tmLgNCivstZztmITrspQNCivstZzsnoTrp4wNCivstZzsooXquLANCivstZzsnqzsmrANCivstZztg4DsnqwNCivstZzsnKTsiJwNCivstZzsooXquLANCivstZzssL3siJgNCivstZzsnYDtmZQNCivstZzsuaDshJ0NCivstZzsooXquLANCivstZzqsJXqtawNCivstZzrj5nspJENCivstZztl4ztmLgNCivstZzsooXquLANCivstZzshLHtm4gNCivstZzsnKDtmZQNCivstZzrtoTtlqUNCivstZzsooXquLgNCivstZzquLDtlbQNCivstZzsooXquLANCivstZzsm5Dsp4QNCivstZzsooXquLgNCivstZzsnqzssKwNCivstZzssKjtnaANCivstZzshKDruYgNCivstZzsooXrqoUNCivstZztg5ztlZgNCivstZztlZnsiJkNCivstZzslrXrtoQNCivstZzsooXrr7wNCivstZzquLDsooUNCivstZzquLDsobANCivstZzsg4Hsi50NCivstZzsooXshKANCivstZzsooXspIANCivstZzsmqntnawNCivstZzsmIHroKgNCivstZzsooXshLENCivstZzsiJztmY0NCivstZztnazquLANCivstZzrtoDrsLANCivstZzsooXsiJkNCivstZzsoJXtmZgNCivstZztg5zso7wNCivstZzrjIDqt5wNCivstZzsooXsi50NCivstZzsmIHsiJgNCivstZzrs5Hrj4wNCivstZzqtJHqs6QNCivstZzsooXsl7QNCivstZzsnqXrs7UNCivstZzrs7Xrk50NCivstZzrtoTqta0NCivstZzsooXsmrQNCivstZzrgpztnawNCivstZzsoJXrsLENCivstZzsoJXssqANCivstZzsooXsnKgNCivstZzsg4HsmKUNCivstZzstpjtj4kNCivstZzrp5DsobANCivstZzsooXsnbwNCivstZzqsr3si50NCivstZzsg4HtlZkNCivstZzqsJXquLANCivstZzsooXssKwNCivstZztlbTrk50NCivstZzqtJHshJ0NCivstZzsnYDrtIkNCivstZzsooXtg5wNCivstZzqtJHrr7wNCivstZzsmqnssqANCivstZzqsr3slZQNCivstZzsooXtjJQNCivstZzrp4ztl4wNCivstZzsp4DsnZgNCivstZztlZnqtowNCivstZzsooXtmIQNCivstZzsooXsiJkNCivstZzrj5nsiJwNCivstZzspJHsm5ANCivstZzsooXtmIQNCivstZzrp4zsmrANCivstZzrtInsi50NCivstZzsmIHtmLgNCivstZzsooXtmLgNCivstZzsg4HtmZQNCivstZzqt5zstpgNCivstZztg5ztnawNCivstZzsooXtmY0NCivstZzsgrztmLgNCivstZzshLHrrLgNCivstZzrs7XtnawNCivstZzsooXtmY0NCivstZzquLDspIANCivstZzsp4Ttg5wNCivstZzquLDso7wNCivstZzsooXtmZgNCivstZztlZzqs6ANCivstZzsnbjsiJwNCivstZzshJ3snbwNCivstZzso7ztmZgNCivstZzsoITrj4QNCivstZzsp4TshK0NCivstZzqsr3sp4QNCivstZzspIDrs7UNCivstZzsmKXsi50NCivstZzsg4Hsg4ENCivstZzsnbTshKANCivstZzspIDsg50NCivstZzsiJjsg4ENCivstZzsnYDsiJkNCivstZzsnKTtmZgNCivstZzspIDsi50NCivstZzsmKXsiJgNCivstZzsooXshK0NCivstZzrjZXtmZgNCivstZzspIDsi50NCivstZzstqntmY0NCivstZzsnqzsi50NCivstZztmIHssqANCivstZzspJHqsJUNCivstZzsg4HrtoQNCivstZzquLjssqANCivstZzsnbjstpgNCivstZzspJHqs6QNCivstZzsgrzsi50NCivstZzsg4Hqt5wNCivstZzqt4DshJ0NCivstZzspJHqtowNCivstZzshLjrj5kNCivstZzrtoTrtIkNCivstZzrr7jrj4QNCivstZzspJHquLANCivstZzsoJXsmKQNCivstZzsoJXtg4ENCivstZzsnqztmLgNCivstZzsp4Dtm4gNCivstZzqt5zsl7ANCivstZzsooXqsr0NCivstZzsnqXtmZgNCivstZzsp4Tqta0NCivstZzsg4HssqANCivstZztmITsi50NCivstZzsg4Hrs5ENCivstZzsp4Tqta0NCivstZzsnbjtg5wNCivstZztlbTsnqwNCivstZzqsr3si50NCivstZzsp4Tqt5wNCivstZzshLHqs6QNCivstZzsnqzrp6QNCivstZzrjZXshLENCivstZzsp4Trj5kNCivstZzrp4zspIANCivstZzsnbjqs4QNCivstZzsgrzrtoQNCivstZzsp4TsiJgNCivstZzrqoXqsr0NCivstZzshLHtmZgNCivstZzsoJXquLgNCivstZzsp4TsmrANCivstZzsuZjrj4QNCivstZzsnbjtmLgNCivstZzrs5HsnpANCivstZzsp4TsmrQNCivstZzsooXsm5ANCivstZzrjZXsnbQNCivstZzsnoTtmLgNCivstZzsp4Tsm5ANCivstZzsirnsnKANCivstZzsmqnshKANCivstZzspIDqtZANCivstZzsp4TsooUNCivstZzrp4zsmqkNCivstZztjJDtmowNCivstZzqsr3roZ0NCivstZzsp4TssqANCivstZzsm5DtmZgNCivstZzsp4TssqANCivstZzsgrzroKwNCivstZzsp4jrj4QNCivstZzsnqXqt5wNCivstZzrtIntmJUNCivstZzshLHtg5wNCivstZzsp4jsnoQNCivstZzrs5HsmKUNCivstZzssL3siJgNCivstZzqt7zsnbUNCivstZzssKjshJ0NCivstZzsnYDquIgNCivstZzrgqjsmIENCivstZzsg4HtmJUNCivstZzssKjslZQNCivstZzsnbzsiJwNCivstZztmLjsmKUNCivstZzsiJjqt7wNCivstZzssKjsnqwNCivstZzqsJHsmrANCivstZzrtInsnpANCivstZztnaXqsr0NCivstZzssKzsiJgNCivstZzsmIHtmJENCivstZzsm5Dtg5wNCivstZzsnqzshKANCivstZzssL3qt5wNCivstZzrjIDtmLgNCivstZztlonsiJwNCivstZzrgqjtnawNCivstZzssL3rgqgNCivstZzrj5nquLgNCivstZzsm5Dtm4gNCivstZzsmqnqt5wNCivstZzssL3rj5kNCivstZztl4ztmZgNCivstZzshLHsl7ANCivstZzrs5HshJ0NCivstZzssL3rnb0NCivstZzsooXroYANCivstZzsnqzsnbwNCivstZzsooXtg5wNCivstZzssL3rs7UNCivstZzsoJXsiJgNCivstZzrs5HrtIkNCivstZzsmqntmLgNCivstZzssL3siJgNCivstZzshLHsiJgNCivstZzsi5ztjJANCivstZzsnbjsmrANCivstZzssL3siJkNCivstZzshJ3sl7ANCivstZzshLHsmKQNCivstZzqt5zsiJwNCivstZzssL3sp4ANCivstZzrp4zqta0NCivstZzrrLjsi50NCivstZzshozqsqwNCivstZzsspzsi50NCivstZzqtJHqta0NCivstZzrs5HssqANCivstZztlZntmZgNCivstZzsspztmLgNCivstZzrp5DtnawNCivstZzstpjtmZgNCivstZzspIDrj5kNCivstZzssqDqt5wNCivstZzsmIHshJ0NCivstZzshLHsiJgNCivstZzsiJzrj4wNCivstZzssqDquLANCivstZzshLHqt7wNCivstZzsnbjsiJgNCivstZztg5zrj5kNCivstZzssqDrj5kNCivstZzri6zqtawNCivstZzrp4zrnoANCivstZzrs5HrnpgNCivstZzssqDsiJgNCivstZzspJHshJ0NCivstZzsmqnquLANCivstZztg5zsnqwNCivstZzssqDtmIQNCivstZzsnqzsiJkNCivstZzsnqzsoJUNCivstZzsiJjtm4gNCivstZzssqDtmLgNCivstZzsm5Dsl7ANCivstZzsnqzstpwNCivstZzslaDrtIkNCivstZzssqDtmLgNCivstZzsnqzsmIENCivstZzsooXrj4wNCivstZzsmIHquLANCivstZzssq3smrQNCivstZzsnKTrs7UNCivstZzsiJjsiJgNCivstZzsm5DsiJgNCivstZzstpjrj4wNCivstZzso7ztg5wNCivstZzsmqntmZgNCivstZzsp4DtnawNCivstZzstpjsiJwNCivstZzsnqzsnoQNCivstZztl4zqtawNCivstZzsoJXtnawNCivstZzstpjsi50NCivstZzssL3snpANCivstZzqsJHrp4wNCivstZzstpjsiJwNCivstZzstpjtnawNCivstZzsm5DroZ0NCivstZztlYTsl7QNCivstZzrrLTsnpANCivstZzstqnqta0NCivstZzsg4Hsl7ANCivstZzsmIHrj5kNCivstZzsnbztmIQNCivstZzstqnqtowNCivstZztlZnsmIENCivstZzquLDsm5ANCivstZzqtozquIgNCivstZzstqnsnbwNCivstZzsg4Htm4gNCivstZzrtoTtmIQNCivstZzshKDrrLQNCivstZzsvozrj5kNCivstZzsmIHtg5wNCivstZzsiJzsnqwNCivstZzshLHsmqkNCivstZztg4DsmqkNCivstZzrj5nqt5wNCivstZzsnbjsnpANCivstZzshKDqt5wNCivstZztg5zqs6QNCivstZzsoJXsmIENCivstZzsoJXtmZgNCivstZzsooXsmqkNCivstZztg5zqs6QNCivstZzsg4Hsi50NCivstZzsmqntmLgNCivstZztg5ztg50NCivstZztg5zqtowNCivstZzsnqzsg50NCivstZzsoJXtlqUNCivstZzsoJDtmLgNCivstZztg5zqt5wNCivstZzsm5DtmJUNCivstZztg5zsiJgNCivstZzqsr3siJgNCivstZztg5zquLANCivstZzsuaDsiJgNCivstZzsoITrtIkNCivstZzssL3tmLgNCivstZztg5zquLANCivstZzqtJHsobANCivstZzsspztmLgNCivstZztg5zsmrQNCivstZztg5zrgqgNCivstZzshKDsmqkNCivstZzsnqzri6wNCivstZzsmqnqt7wNCivstZztg5zrgqgNCivstZzqt5zri6wNCivstZzsnqzshKANCivstZzshLHsooUNCivstZztg5zrtIkNCivstZzsm5TstpwNCivstZzsooXsg4ENCivstZzsmIHrqqkNCivstZztg5zsiJgNCivstZzsnKTshJ0NCivstZzquLDtlbQNCivstZzsmqnsmIENCivstZztg5zsiJgNCivstZztmY3tnawNCivstZzrs5HsnpANCivstZzsiJjsspwNCivstZztg5zsiJgNCivstZztnaztg5wNCivstZzsmIHso7wNCivstZzsnITtmIQNCivstZztg5zsiJgNCivstZzsooXrs7UNCivstZzspIDtmJwNCivstZzsp4TsnpANCivstZztg5zsiJgNCivstZzsm5DrjZUNCivstZzsg4HqtowNCivstZzqsJXqsJENCivstZztg5zsiJkNCivstZzroYDsm5ANCivstZzshLjqt7wNCivstZzsnqXsnqwNCivstZztg5zsiKANCivstZzsg4HsmrENCivstZzsi6DsiJgNCivstZzrr7jslYQNCivstZztg5zsl7QNCivstZzrrLTroZ0NCivstZzsooXtmLgNCivstZzsnYDsi50NCivstZztg5zsmIENCivstZzspIDquLgNCivstZzrqoXtg5wNCivstZzsnbzquLANCivstZztg5zsmIENCivstZzsg4HquLANCivstZzrj5nsooUNCivstZztmLjsmrENCivstZztg5zsnpANCivstZzsoJXtmZgNCivstZzqsr3siJgNCivstZzshJ3qt5wNCivstZztg5zsooUNCivstZzshozrj4QNCivstZzssqDqtZANCivstZzsnqzrnpgNCivstZztg5zsooUNCivstZzsmIHsm4UNCivstZzsnqXsg4ENCivstZzrjIDquLANCivstZztg5zsp4QNCivstZzrjIDrs7UNCivstZzsnbzqt5wNCivstZzshLHtg5wNCivstZztg5ztmLgNCivstZzqsr3siJkNCivstZzsnbjqt6ANCivstZzsmqnsmrQNCivstZztg5ztmZQNCivstZztg5zsl7ANCivstZzsiJztmLgNCivstZzsmIHrjIANCivstZztg5ztnaUNCivstZztlZzsmrANCivstZztg5zshJ0NCivstZzshLHsiKANCivstZztjJDqtbANCivstZztg5zsi50NCivstZzsoJXtmLgNCivstZzrjIDsmIENCivstZztjJDrgqgNCivstZzsgrzssqANCivstZzsgrzsiJgNCivstZzsobDsooUNCivstZztjJDrj5kNCivstZzqtJHslrgNCivstZzsiJzshJ0NCivstZzsiJjsi50NCivstZztjJDrtIkNCivstZzsmrDtmZgNCivstZzsooXsi50NCivstZzrhbjtmLgNCivstZztjJDslZQNCivstZzshJ3rj4QNCivstZzshLHrp4wNCivstZzrs5HsmKUNCivstZztjJDsl7QNCivstZzsoJXtmLgNCivstZzsm5Dsl7ANCivstZzsmqnsnbgNCivstZztjJDsmqkNCivstZzsnKTsnqwNCivstZzri6ztnLQNCivstZzsg4HsmKQNCivstZztjJDtg5wNCivstZzrs5HsiJwNCivstZztg5zsi50NCivstZzsiJjsnbwNCivstZztjJDtmLgNCivstZzsiJnsnKgNCivstZztmY3qs6QNCivstZzshLHsiJkNCivstZztjJTsg50NCivstZzrs5HsiJkNCivstZzqtazquLANCivstZzqt5zqsJENCivstZztjJTsiJgNCivstZzsoJXshJ0NCivstZzrs7XqtZANCivstZzshKDrqoUNCivstZztjL3so7wNCivstZzssL3smKQNCivstZzsoJXssqANCivstZzsg4Hsl7QNCivstZztko3sm4UNCivstZzshLHrp4kNCivstZztg5zsiJgNCivstZzsg4Hrj4QNCivstZztlYTrj5kNCivstZzsmbjrjIANCivstZzquLjsiJgNCivstZzsnbjsnKQNCivstZztlYTrtoQNCivstZzqsIDsm5ANCivstZzshLjqsr0NCivstZzsp4TsnbgNCivstZztlYTsiJwNCivstZztnaztnawNCivstZzsnqXsobANCivstZzsoJXsobANCivstZztlYTsi50NCivstZzsm5Dsm5ANCivstZzsl7DsmqkNCivstZzqtZDtkZwNCivstZztlZjsmIENCivstZzrj5nquLANCivstZzsirnspIANCivstZzqt7zqs6QNCivstZztlZjsnpANCivstZzsmqnrsLANCivstZzsp4Ttm4gNCivstZzslpHquLANCivstZztlZnrj4QNCivstZzri6ztlZkNCivstZzslpHtmLgNCivstZztmITtmZgNCivstZztlZnshJ0NCivstZzqsJHtmLgNCivstZwg64+ZDQor7LWc67O06riwDQor7LWc7ZWZ7IudDQor7LWc7LaY7ISgDQor7LWc67OR7IiYDQor7LWc7Iq57ISdDQor7LWc7ZWc7ISxDQor7LWc7IS467O1DQor7LWc7KO87Z2sDQor7LWc7IKs7ISxDQor7LWc7ZWc7IiYDQor7LWc7LCs7IicDQor7LWc7JiB656ADQor7LWc7Zmp67SJDQor7LWc7ZWc7IiYDQor7LWc67OR7J6QDQor7LWc7Z2s7JmEDQor7LWc7ZWE64usDQor7LWc7ZWc7KO8DQor7LWc66+46recDQor7LWc7J246rOkDQor7LWc7Jqw6rK9DQor7LWc7ZWc7LKcDQor7LWc7LaY7IugDQor7LWc7ZmY6raMDQor7LWc67OR66eMDQor7LWc7ZWc7LKgDQor7LWc7J6s7IiZDQor7LWc7LC97KeEDQor7LWc7ISg7LKgDQor7LWc7ZWc7Zi4DQor7LWc7YOc66y4DQor7LWc7IyN6recDQor7LWc7J246ri4DQor7LWc7ZW06rOkDQor7LWc64yA7JaRDQor7LWc7IiY7ZWZDQor7LWc7IOB7J6QDQor7LWc7ZW07IiZDQor7LWc7IOB7ZmNDQor7LWc7Jik7IudDQor7LWc7ZiE66OhDQor7LWc7ZW07IigDQor7LWc7YOc6recDQor7LWc7KKF642VDQor7LWc66+87ISdDQor7LWc7ZW07IudDQor7LWc6rec7IicDQor7LWc7KCV7IiYDQor7LWc7ZuE7JiBDQor7LWc7ZW07KO8DQor7LWc7JuQ7ZmYDQor7LWc7Zi464+EDQor7LWc66qF7Zi4DQor7LWc7ZW07LKcDQor7LWc7LaY7ZmYDQor7LWc66+47JiBDQor7LWc7Jqp7KO8DQor7LWc7ZW07LKcDQor7LWc7KKF7IudDQor7LWc7IiY7Zi4DQor7LWc6re87IudDQor7LWc7ZW07LKgDQor7LWc66y07IudDQor7LWc6ri47YOdDQor7LWc7IKs64+EDQor7LWc7ZW07ZmYDQor7LWc7YOc7ZiVDQor7LWc66eM7JilDQor7LWc7KCV7YOcDQor7LWc7ZiB6riwDQor7LWc6ri47Zi4DQor7LWc7Jqp7IicDQor7LWc64+E7LCsDQor7LWc7ZiE7ISxDQor7LWc7KCQ7JewDQor7LWc7JaR6rO1DQor7LWc7J247JqpDQor7LWc7ZiV6rOkDQor7LWc7IK866y4DQor7LWc642V6raMDQor7LWc7KeE7ZiBDQor7LWc7ZiV6rSADQor7LWc7ISx66+4DQor7LWc7IOB7Je0DQor7LWc7IOB7IiZDQor7LWc7ZiV66GcDQor7LWc7KO87Zi4DQor7LWc7ZWc6ri4DQor7LWc7YOc7JqwDQor7LWc7ZiV7ISdDQor7LWc7J247JilDQor7LWc6rK97JqwDQor7LWc64KZ6rWsDQor7LWc7Zi46rKBDQor7LWc7KeE7IiYDQor7LWc7J2A66eMDQor7LWc6rK966+4DQor7LWc7Zi465OdDQor7LWc7Jil7ISdDQor7LWc7Jqp7J24DQor7LWc7ISx7KeBDQor7LWc7Zi47ISgDQor7LWc6riw7LKcDQor7LWc64yA7J6QDQor7LWc7ISd7Zi4DQor7LWc7Zi47KeEDQor7LWc7JiB67aEDQor7LWc7JiB7Z2sDQor7LWc7LKg7KeADQor7LWc7ZmN6rOkDQor7LWc7YyQ7LKgDQor7LWc67OR7ZmUDQor7LWc7JiB6recDQor7LWc7ZmN7ISdDQor7LWc7ZW07JewDQor7LWc7JuQ7IiZDQor7LWc7YOc7IicDQor7LWc7ZmN7ISdDQor7LWc7J6s6recDQor7LWc7Jik7ZmYDQor7LWc7JiB64WEDQor7LWc7ZmN7IudDQor7LWc7IK87LKgDQor7LWc7IOB7Zi4DQor7LWc642V7YOcDQor7LWc7ZmN7IudDQor7LWc7Z2s66GdDQor7LWc66+47IiYDQor7LWc7IiY7KCVDQor7LWc7ZmN7IudDQor7LWc7KCV6529DQor7LWc7Zqo7Y+JDQor7LWc7Jqp64+ZDQor7LWc7ZmN7J21DQor7LWc7J6s7JqxDQor7LWc7Zi464KoDQor7LWc6re866qoDQor7LWc7ZmN7KeRDQor7LWc7LaY7LCsDQor7LWc7ISg6rWsDQor7LWc7IOB7KGwDQor7LWc7ZmU7IiZDQor7LWc7YOc7ZuIDQor7LWc7KCQ7J21DQor7LWc66y467CwDQor7LWc7ZmY64+ZDQor7LWc7KCV7Z2sDQor7LWc7JWg7ZmYDQor7LWc6rCR7YOcDQor7LWc7Zqo6rOkDQor7LWc7KeA6riwDQor7LWc7J2E7ZWcDQor7LWc66eJ7IStDQor7LWc7Zqo64+ZDQor7LWc7ZWc7Zi4DQor7LWc7IOB7LaUDQor7LWc6rec6ri4DQor7LWc7Z2l6riwDQor7LWc6riw7ISgDQor7LWc7J6s7ZmYDQor7LWc7J2Y7J6QDQor7LaU66+47IiZDQor7LaU6rCR6raMDQor7LaU7IK87JilDQor7LaU6riw66GdDQor7LaU7Jew7ZiEDQor7LaU65GQ7KO8DQor7LaU7J6s7JykDQor7LaU7IOB7ZqoDQor7LaU7JiB7Zi4DQor7LaU7IOB6raMDQor7LaU7Jyk7JiBDQor7LaU7ZiE7ZWcDQor7LaU7J247IiYDQor7LaU7Jqp7J6QDQor7LaU7J6s7ZmYDQor7LaU7KCV7IiZDQor7LaU7KCV7JilDQor7LaU7YOc7KeEDQor7LaU7J207ISgDQor7LaU7IOB7KeEDQor7LaU7YOc7Zi4DQor7LaU7LKg7Ja1DQor7LaU6riI7Zi4DQor7LaU67OR7YOdDQor7YOB66+47JilDQor7YOB7KCV7LKcDQor7YOB7LKg6riwDQor7YOB7JiB6rOgDQor7YOB7J6s64+ZDQor7YOB6rCR7Z2sDQor7YOB7J6s7Je0DQor7YOB6raM7IOdDQor7YOB7KKF7Z2sDQor7YOB7LC96raMDQor7YOB7JiB64KoDQor7YOB66+465OdDQor7YOB7Z2s6rOkDQor7YOB7J6s64KoDQor7YOB6riw7J6sDQor7YOB7KeE6raMDQor7Y647ISd7KeEDQor7Y64642V7KCVDQor7Y647JuQ7JaRDQor7Y647IiZ7JilDQor7ZGc7ISg7Z2sDQor7ZGc7Z2s7IiYDQor7ZGc7Jyk7ZmYDQor7ZGc67SJ6riwDQor7ZGc7IS466y4DQor7ZGc7IOB7LaYDQor7ZGc7J247IudDQor7ZGc7KSA7KGwDQor7ZGc7Iic6riwDQor7ZGc7JuU6rK9DQor7ZGc7JiB7J24DQor7ZGc7Jyk7ISdDQor7ZGc7Jil7ZiEDQor7ZGc7LCo7JewDQor7ZGc6rK97KCVDQor7ZGc7IK86rCRDQor7ZGc7JuQ7IStDQor7ZGc6riw7LKgDQor7ZGc67OR7IStDQor7ZGc7LC97JiBDQor7ZGc7J6s7IiYDQor7ZGc7J6s7IicDQor7ZGc7J6s7JWUDQor7ZGc6rWt7KGwDQor7ZGc7KCQ7JuQDQor7ZGc7IiY6rOkDQor7ZGc6rSR7ISgDQor7ZGc7Zi46re8DQor7ZS864+Z7ISdDQor7ZS86rCV7ZmYDQor7ZS87JiB7Zi4DQor7ZS87Jyk7ZmNDQor7ZWY6rCR7IudDQor7ZWY7ZmN7KO8DQor7ZWY7Zmp7Z2sDQor7ZWY7JiB7Z2sDQor7ZWY6rK966eMDQor7ZWY67SJ7JewDQor7ZWY7Jyk7IiYDQor7ZWY7LCo64W4DQor7ZWY6rK97KGwDQor7ZWY7IiY7Z2sDQor7ZWY7KKF7YOdDQor7ZWY7JiB642VDQor7ZWY6rK97Z2sDQor7ZWY6riw7KO8DQor7ZWY7YOc7IiYDQor7ZWY6rK966eMDQor7ZWY6rOE7ISgDQor7ZWY6rSR7Zi4DQor7ZWY7KKF66eMDQor7ZWY67OR7JqwDQor7ZWY6rWs66GdDQor7ZWY7Kad7J21DQor7ZWY7ISx7KGwDQor7ZWY66+47IOdDQor7ZWY6riw7KO8DQor7ZWY7IOB7JewDQor7ZWY6rSR7ISdDQor7ZWY7JiB6riwDQor7ZWY6ri47IiYDQor7ZWY7Ius7J6sDQor7ZWY7J6s7ISdDQor7ZWY64yA7IiYDQor7ZWY64Ko7IicDQor7ZWY7IOB7JuQDQor7ZWY7L6M7IS4DQor7ZWY6riw7YOcDQor7ZWY64yA7Zi4DQor7ZWY7Jil7Je0DQor7ZWY7J6s7J6RDQor7ZWY7KCV7J20DQor7ZWY64+Z7LCsDQor7ZWY7YOc64+ZDQor7ZWY7J6s7Zi4DQor7ZWY7JuQ7JqxDQor7ZWY66eM7YOcDQor7ZWY66+87ISdDQor7ZWY64K07ISxDQor7ZWY7JiB7JqpDQor7ZWY66qF64+ZDQor7ZWY7IiY7ZmYDQor7ZWY7J6s7J28DQor7ZWY7KeE7KeEDQor7ZWY66y07IicDQor7ZWY67OR67ORDQor7ZWY6rK964+MDQor7ZWY7JiB7IOBDQor7ZWY66+46rK9DQor7ZWY7IiY7YOcDQor7ZWY7KKF7IS4DQor7ZWY7J6s7Zi4DQor7ZWY66+47KCVDQor7ZWY67OR7ISxDQor7ZWY64+Z7IiYDQor7ZWY7IOB7Zi4DQor7ZWY67OR6rSADQor7ZWY7ISx7YOBDQor7ZWY7KeE67O0DQor7ZWY7Jyk642VDQor7ZWY67OR7JuQDQor7ZWY7IOB67ORDQor7ZWY7YOc7JqxDQor7ZWY7J6s7LKgDQor7ZWY67SJ6rCRDQor7ZWY6rSR7IudDQor7ZWY7IS47LKgDQor7ZWY7KCV64usDQor7ZWY67aE7KGwDQor7ZWY7J6s67SJDQor7ZWY7ISd7KKFDQor7ZWY66eQ7JykDQor7ZWY7IK86riIDQor7ZWY66eM7ZqMDQor7ZWY7JiB7JikDQor7ZWY6rK964KcDQor7ZWY7IOB7IudDQor7ZWY7KKF7IiYDQor7ZWY7ISd7J6QDQor7ZWY7Jqp7Zi4DQor7ZWY7ISd6re8DQor7ZWY6rec67O1DQor7ZWY7ZeM7IiYDQor7ZWY7ZW07JykDQor7ZWY7ISd7IiYDQor7ZWY7ISx7IiYDQor7ZWY7KKF7Zi4DQor7ZWY7Z2s7IS4DQor7ZWY7IS47KeEDQor7ZWY7KKF6riwDQor7ZWY7ZmU7LKgDQor7ZWY7Jyk7Zi4DQor7ZWY7Iic64KoDQor7ZWY7ISx7ZmYDQor7ZWY7JaR7IicDQor7ZWY64us7Zi4DQor7ZWY7Iic7IiZDQor7ZWY7Jyk6raMDQor7ZWY7J247J6QDQor7ZWY7IOB7Zi4DQor7ZWY7Iic7ZeMDQor7ZWY67OR6riIDQor7ZWY7ISx7JWUDQor7ZWY7Jqw6rOkDQor7ZWY7Iig7ISxDQor7ZWY7IiY7JuFDQor7ZWY7YOc6rWQDQor7ZWY7Jyk6rWsDQor7ZWY7Ius7ZmNDQor7ZWY7Jew7LaYDQor7ZWYIOq3nA0KK+2VmOywveyasQ0KK+2VmOyXsO2drA0KK+2VmOuzteq3vA0KK+2VmOybkOyYpA0KK+2VmOqxtOyXtA0KK+2VmOyYge2DnA0KK+2VmOydvOuFuA0KK+2VmOyEne2doA0KK+2VmOuvuOyLnQ0KK+2VmOyZuOyImA0KK+2VmOqyve2WpQ0KK+2VmOqyveyasA0KK+2VmOuPmey2nA0KK+2VmOyaqeyImA0KK+2VmOyYgeuTnQ0KK+2VmO2DnOqwkQ0KK+2VmOyasOyEsQ0KK+2VmOycpOydtA0KK+2VmOygleyXtA0KK+2VmOyKueq3oA0KK+2VmOyEneu0iQ0KK+2VmOyduOyImA0KK+2VmOyaqeyErQ0KK+2VmOydvOyCvA0KK+2VmOyKue2YhA0KK+2VmOyduOyYpQ0KK+2VmOygleydvA0KK+2VmOuztOuPmQ0KK+2VmOyLoO2YuA0KK+2VmOyehOyInA0KK+2VmOyerOuCqA0KK+2VmOyGkOqyvQ0KK+2VmOyjvO2DnQ0KK+2VmOyepeyXsA0KK+2VmOuLrOyhsA0KK+2VmOuzkeyekA0KK+2VmOyImOusuA0KK+2VmOyerOyInA0KK+2VmOuFuOyjvA0KK+2VmOygleq3nA0KK+2VmOyduO2ajA0KK+2VmOyerOyjvA0KK+2VmOu0ieuqqA0KK+2VmOyYgeyEoA0KK+2VmOuNleyDgQ0KK+2VmOygkOyInA0KK+2VmOyImOynhA0KK+2VmO2VtOq4uA0KK+2VmOygkO2ZjQ0KK+2VmOygkOyYpQ0KK+2VmOydteyXtA0KK+2VmOyaqe2ZmA0KK+2VmOyImOyImA0KK+2VmOygleyXsA0KK+2VmOygleyEoA0KK+2VmOyKueyEoA0KK+2VmOyDgeydtA0KK+2VmOygleyXtA0KK+2VmOy5oOyEoA0KK+2VmOyaqeyjvA0KK+2VmOyYgeyXtA0KK+2VmOygle2drA0KK+2VmOqyve2DnQ0KK+2VmOq3nOy2mA0KK+2VmOycpOynhA0KK+2VmOyiheuwsA0KK+2VmOyEse2drA0KK+2VmOyihe2ZmA0KK+2VmOygleyErQ0KK+2VmOyiheyXsA0KK+2VmOyDge2doA0KK+2VmOyInOq4sA0KK+2VmO2YgeyImA0KK+2VmOywveu2gA0KK+2VmOydkeywrA0KK+2VmOuzke2ZmA0KK+2VmOygle2YuA0KK+2VmOy2mOujoQ0KK+2VmOyYgeuPmQ0KK+2VmOyiheyEnQ0KK+2VmOyerOqyvQ0KK+2VmO2DgOyaqQ0KK+2VmOuTne2VmA0KK+2VmOyYgeuqqA0KK+2VmOyerO2VmQ0KK+2VmO2DnOqwkQ0KK+2VmOyYpeybkA0KK+2VmOyYgeyXsA0KK+2VmOqzteyYgQ0KK+2VmO2DnOq1rA0KK+2VmOyiheyEnQ0KK+2VmOyiheuwsA0KK+2VmOyerOyXsA0KK+2VmO2DnO2ZmA0KK+2VmOuemO2biA0KK+2VmOuRkOuqhQ0KK+2VmOycpOy5mA0KK+2VmO2VmeyIoA0KK+2VmOyInOq4sA0KK+2VmOy2mOusuA0KK+2VmO2VmO2YuA0KK+2VmO2VmeyaqQ0KK+2VmOustOynhA0KK+2VmOyiheyDgQ0KK+2VmOuMgOyhsA0KK+2VmO2VtOuqhQ0KK+2VmOyYgeuztQ0KK+2VmOu2hO2YuA0KK+2VmOyihe2YhA0KK+2VmO2VtOuqhQ0KK+2VmO2VnOyXsA0KK+2VmOuwseyImA0KK+2VmOyInO2YhA0KK+2VmO2ZlOyInA0KK+2VmO2YhO2drA0KK+2VmOq1reyDnQ0KK+2VmOywveyekA0KK+2VmO2bhOyhsA0KK+2VmO2Zjeq3vA0KK+2VmOyduOyaqQ0KK+2VmOyDgeywvQ0KK+2VnCDquLgNCivtlZztlbTrtIkNCivtlZzri6zqt7wNCivtlZzrr7jsmIENCivtlZwg7JilDQor7ZWc7J6s7Je0DQor7ZWc7JuQ7IiYDQor7ZWc64Ko7ISdDQor7ZWc6rCR7IiYDQor7ZWc7YOc66OhDQor7ZWc7JyE7JilDQor7ZWc67O17IudDQor7ZWc6rCR7IicDQor7ZWc7IOB7JWFDQor7ZWc66qF7KeEDQor7ZWc6rSR7IiYDQor7ZWc6rCV7KCcDQor7ZWc6rec7LmgDQor7ZWc7ISd7JqpDQor7ZWc67O17JewDQor7ZWc6rK97JWgDQor7ZWc7Zi464yADQor7ZWc7ISx7JWEDQor7ZWc7ZmN7ZWZDQor7ZWc6rK97J20DQor7ZWc7YyQ7ISdDQor7ZWc7YOc7IigDQor7ZWc67Cp6re8DQor7ZWc6rK97LKgDQor7ZWc7Jyk7J20DQor7ZWc7KSR642VDQor7ZWc7ZmN7JuQDQor7ZWc6rOk7ISdDQor7ZWc6rK97IK8DQor7ZWc7Iic7ZWcDQor7ZWc7JiB7ZiEDQor7ZWc6rO87Z2sDQor7ZWc7LaY7KGwDQor7ZWc67id7IiZDQor7ZWc7ZiV7J20DQor7ZWc6rSA7ZiEDQor7ZWc67aE7LaYDQor7ZWc7LKt7IudDQor7ZWc642V7ZmYDQor7ZWc6rWs7J28DQor7ZWc7ISd7J6sDQor7ZWc7ISx6re8DQor7ZWc7Zal6recDQor7ZWc6rWt7IudDQor7ZWc6riw7Zi4DQor7ZWc7YyQ66eMDQor7ZWc7LKg7LacDQor7ZWc6riI7IStDQor7ZWc7J6s7ZiEDQor7ZWc67OR66qpDQor7ZWc7LCo66+4DQor7ZWc6riw7LKgDQor7ZWc7J6s7Zi4DQor7ZWc6riw7ISgDQor7ZWc7Iic7IStDQor7ZWc6riw7ZWZDQor7ZWc67OR66qpDQor7ZWc7J287KGwDQor7ZWc7JiB7Z2sDQor7ZWc6ri47JuFDQor7ZWc7LCs7ISdDQor7ZWc7KeE7ZqoDQor7ZWc7J247Zi4DQor7ZWc64W47IiYDQor7ZWc7ISx6rCVDQor7ZWc7JiB7IicDQor7ZWc7YOc6regDQor7ZWc64u07JilDQor7ZWc7KCQ642VDQor7ZWc7J287KKFDQor7ZWc7Iic642VDQor7ZWc64yA6re8DQor7ZWc7IK87ZmNDQor7ZWc7KCV65OdDQor7ZWc7ISx6recDQor7ZWc64yA7ISxDQor7ZWc7ZiE7JilDQor7ZWc7J286rWsDQor7ZWc7KeE64+EDQor7ZWc64yA7JiBDQor7ZWc7IiY7IS4DQor7ZWc7JiB7JiBDQor7ZWc7J2A67O1DQor7ZWc642V6rWQDQor7ZWc7Zic7ZiEDQor7ZWc7JiB7IiYDQor7ZWc7IK864+EDQor7ZWc642V7JykDQor7ZWc7KeI7KCVDQor7ZWc7IiY7JikDQor7ZWc7YOc6rCRDQor7ZWc64+E7LmYDQor7ZWc7IiZ66y1DQor7ZWc7KCV7IStDQor7ZWc7YOc7Zi4DQor7ZWc64+Z6raMDQor7ZWc66qF7IiYDQor7ZWc7ISx7JuQDQor7ZWc7J247ZiEDQor7ZWc64+Z7IiYDQor7ZWc7LC96re8DQor7ZWc7KKF66y4DQor7ZWc7Jqw65OdDQor7ZWc64+Z7JaRDQor7ZWc7IiY7ISdDQor7ZWc6rK97ISgDQor7ZWc7ISx7IicDQor7ZWc65GQ6rWQDQor7ZWc7IK87ISdDQor7ZWc7LCo7YOdDQor7ZWc642V7KGwDQor7ZWc65GQ7ZiEDQor7ZWc7J287JuQDQor7ZWc6riw6ri4DQor7ZWc6rK96rWsDQor7ZWc66eM7JyEDQor7ZWc7J2R7Zi4DQor7ZWc7J247IudDQor7ZWc66y066eMDQor7ZWc66eM7Zi4DQor7ZWc7Jik7Je0DQor7ZWc7J247ZqoDQor7ZWc7IiY7J2ADQor7ZWc66e56rWQDQor7ZWc6rec642VDQor7ZWc7Lap7JiBDQor7ZWc64+Z64+ZDQor7ZWc66qF6rCRDQor7ZWc7J6s6rWtDQor7ZWc7J6s7YOdDQor7ZWc6riw6riwDQor7ZWc66qF7IiYDQor7ZWc7YOc6riwDQor7ZWc7LaY7ZiEDQor7ZWc7IiY7IiYDQor7ZWc66qF7IicDQor7ZWc7Jqp7JWUDQor7ZWc7KKF7IStDQor7ZWc7YOc642VDQor7ZWc66y06rWQDQor7ZWc7ZWZ7IiYDQor7ZWc7KSR7LGEDQor7ZWc7ISd66y4DQor7ZWc66y07ZiEDQor7ZWc64Kc66eMDQor7ZWc7KeE7LC9DQor7ZWc6rK966OhDQor7ZWc66y46rWQDQor7ZWc7KSA7JykDQor7ZWc67OR7Zi4DQor7ZWc7KO86recDQor7ZWc66+87J6QDQor7ZWc7LaY6rSRDQor7ZWc7ZW07ZmNDQor7ZWc7KKF7JilDQor7ZWc67OR6raMDQor7ZWc7IK87Z2sDQor7ZWc7KSA7IStDQor7ZWc7Jil7KO8DQor7ZWc67OR7JuQDQor7ZWc7YOc7IiYDQor7ZWc7ZiE7J6sDQor7ZWc7Jqp7IOBDQor7ZWc67OR7LKgDQor7ZWc7ZWY7JqwDQor7ZWc7Iuc6rWQDQor7ZWc7IK866qFDQor7ZWc67OR7ZWcDQor7ZWc7IyN7Zi4DQor7ZWc7YyQ7ZiEDQor7ZWc7Iic7ISxDQor7ZWc67O1656ADQor7ZWc7KCV6rK9DQor7ZWc66q96riwDQor7ZWc7KKF642VDQor7ZWc67O17IiYDQor7ZWc7YOc6re8DQor7ZWc7JiB7JmEDQor7ZWc7JiB7IicDQor7ZWc67O17IiYDQor7ZWc64yA7YOcDQor7ZWc6rK97J20DQor7ZWc7ZWZ7ISdDQor7ZWc67SJ7ISdDQor7ZWc7J2A7ZmYDQor7ZWc64+Z7IiYDQor7ZWc7Zmp7IiYDQor7ZWc67SJ7ISgDQor7ZWc7ISx7ISdDQor7ZWc7YOc7YOcDQor7ZWc66+47J28DQor7ZWc67SJ7IiYDQor7ZWc7Jqp7JqwDQor7ZWc7JiB66+8DQor7ZWc66y07J20DQor7ZWc67SJ7Z2sDQor7ZWc67OR7Jq0DQor7ZWc7Jqp7Zi4DQor7ZWc7J6s7Zi4DQor7ZWc67aA6rWQDQor7ZWc7YyQ7IiYDQor7ZWc64KZ7JmEDQor7ZWc7YOc6rCRDQor7ZWc7IKs7J28DQor7ZWc7ZWZ66y4DQor7ZWc7JiB7ZmUDQor7ZWc6rec7ISgDQor7ZWc7IK87IicDQor7ZWc7KCV7J20DQor7ZWc6rSR64+ZDQor7ZWc6rK97ZmYDQor7ZWc7IK87JyoDQor7ZWc7IOB7KSADQor7ZWc7ISd7LacDQor7ZWc66y47Zi4DQor7ZWc7IOB64yADQor7ZWc7JuQ7KeEDQor7ZWc7Iq57Zi4DQor7ZWc7ZmN7Je0DQor7ZWc7IOB66qoDQor7ZWc642V7JqwDQor7ZWc7IOB7Z2sDQor7ZWc7KKF6riwDQor7ZWc7IOB67SJDQor7ZWc7JuQ7Zi4DQor7ZWc7KeE66qpDQor7ZWc7LC97ZmYDQor7ZWc7IOB7ISdDQor7ZWc7KO87IudDQor7ZWc7JiB7ZWZDQor7ZWc7Zi47Je0DQor7ZWc7IOB7ISgDQor7ZWc6rSR7ZmUDQor7ZWc6reA66qoDQor7ZWc7KKF7JyhDQor7ZWc7IOB7ISkDQor7ZWc6rCR6rCRDQor7ZWc7ISx6recDQor7ZWc7Zqo7LaYDQor7ZWc7IOB7IiYDQor7ZWc7J247J28DQor7ZWc7IK86riwDQor7ZWc7Jqp7JuQDQor7ZWc7IOB7IiYDQor7ZWc7KCQ66+4DQor7ZWc7Jyg7JqpDQor7ZWc7ZW07JqwDQor7ZWc7IOB7JqwDQor7ZWc64Ko7ZiEDQor7ZWc7IOB7KGwDQor7ZWc7JuQ7YOcDQor7ZWc7IOB7JqxDQor7ZWc7YOc66eMDQor7ZWc66eM7IiYDQor7ZWc7JuQ7ZWZDQor7ZWc7IOB7ZWZDQor7ZWc7LCs6riwDQor7ZWc7JmV7JikDQor7ZWc7J287JqwDQor7ZWc7IOB7ZWZDQor7ZWc7YOc7IigDQor7ZWc7JaR7IiYDQor7ZWc7Zi467O0DQor7ZWc7IOB7Zi4DQor7ZWc7ZW07JiBDQor7ZWc7KGw7ZuIDQor7ZWc66y07JqpDQor7ZWc7IOd6riwDQor7ZWc7IOB7Zi4DQor7ZWc7Jqp6recDQor7ZWc7IOB66GdDQor7ZWc7ISd66GdDQor7ZWc7ZWZ642VDQor7ZWc64Ko7Je9DQor7ZWc7Jqp7J24DQor7ZWc7ISd67KUDQor7ZWc7LaY67SJDQor7ZWc7ISx7IStDQor7ZWc66qF642VDQor7ZWc7ISd7IudDQor7ZWc7KKF7JiBDQor7ZWc7LC96rOkDQor7ZWc7ZWZ7ZGcDQor7ZWc7ISd7JuQDQor7ZWc64+Z7IaMDQor7ZWc6ri47ISdDQor7ZWc7Jqp64WEDQor7ZWc7ISg7KO8DQor7ZWc6riw7J6EDQor7ZWc7Ja47Zi4DQor7ZWc7Jyk7Z2sDQor7ZWc7ISx6rWQDQor7ZWc7ZiE7ZmYDQor7ZWc7ISd6riwDQor7ZWc7Jqw7ZmUDQor7ZWc7ISx6rWsDQor7ZWc7YOd6regDQor7ZWc7Jqp6riwDQor7ZWc6riw7IudDQor7ZWc7ISx6rWsDQor7ZWc7Zic7ISdDQor7ZWc66y47KGwDQor7ZWc7IiY7JqpDQor7ZWc7ISx6rWtDQor7ZWc7Z2s642VDQor7ZWc67OR7LKgDQor7ZWc66qF7IicDQor7ZWc7IS47JiBDQor7ZWc7KKF7Zi4DQor7ZWc7LKg7LKgDQor7ZWc67SJ7IiZDQor7ZWc7IS47JqpDQor7ZWc67OR6rWsDQor7ZWc7Jqp6rOkDQor7ZWc67aE7ZWZDQor7ZWc7IaM7IicDQor7ZWc7JiB7IudDQor7ZWc7Jqp6rCRDQor7ZWc7LKg7J6QDQor7ZWc7IiY7IOBDQor7ZWc7LaY6riwDQor7ZWc7JuF7Z2gDQor7ZWc7JiB7IudDQor7ZWc7IiY7JmEDQor7ZWc7J6s6re8DQor7ZWc66eM7KeEDQor7ZWc7Jew7ZWYDQor7ZWc7Iic7JuQDQor7ZWc7YOc64KoDQor7ZWc7ZWc7Zi4DQor7ZWc7J2167O0DQor7ZWc7Iic7LCsDQor7ZWc7KCV7J2ADQor7ZWc7Iq57JyoDQor7ZWc7KKF7Zi4DQor7ZWc7Iq57IS4DQor7ZWc6rec7IudDQor7ZWc7J6s7JewDQor7ZWc7ZWE7Zi4DQor7ZWc7Iq57J24DQor7ZWc7J2Y7KGwDQor7ZWc7YOc6ri4DQor7ZWc6rec7LKgDQor7ZWc7Iq57Zi4DQor7ZWc7Z2s7IudDQor7ZWc7IOB7IiYDQor7ZWc7Iah7ISgDQor7ZWc7Je07LCsDQor7ZWc7IyN7Zi4DQor7ZWc7Jqp7JiBDQor7ZWc7Jyk7ZW0DQor7ZWc7JiB64yADQor7ZWc7Iq5642VDQor7ZWc7IOB66GADQor7ZWc7JiB66y1DQor7ZWc7JiB66qoDQor7ZWc7Z2s7YOcDQor7ZWc66y07Je0DQor7ZWc67O17KGwDQor7ZWc7JiB7IStDQor7ZWc6rCR7ZiEDQor7ZWc7LC966a8DQor7ZWc7JuQ7IiZDQor7ZWc7JiB7IiYDQor7ZWc64+Z64+MDQor7ZWc7KeE7LC9DQor7ZWc7Jqp656ADQor7ZWc7JiB7JilDQor7ZWc6rK9642VDQor7ZWc67aE7ZiBDQor7ZWc7Jm467O1DQor7ZWc7JiB7LKgDQor7ZWc64yA7ZeMDQor7ZWc6riw7ISdDQor7ZWc7IOB7JiBDQor7ZWc7JiB7YOcDQor7ZWc7J247IiYDQor7ZWc6rK97IiZDQor7ZWc7JiB7Z2sDQor7ZWc7JiB7ZiEDQor7ZWc67OR7IiYDQor7ZWc7Iic7IicDQor7ZWc7ISx7ZiEDQor7ZWc7JiB7Z2sDQor7ZWc7KCV7IiYDQor7ZWc7IaM7JikDQor7ZWc7KKF7YOcDQor7ZWc7Jqp7IiYDQor7ZWc7JiB7Zi4DQor7ZWc7JuQ66y4DQor7ZWc7J2R7ZmNDQor7ZWc7Jqw7IigDQor7ZWc7IOB7JilDQor7ZWc6rCV7ZalDQor7ZWc7ZiV64+ZDQor7ZWc7Jqw7LCsDQor7ZWc7ZWE7JqpDQor7ZWc7J6E7IiYDQor7ZWc7Iq57ZWZDQor7ZWc7JuQ6rWQDQor7ZWc7IOB7LacDQor7ZWc7ZWc7KeEDQor7ZWc7Jqp7IudDQor7ZWc7JuQ7IiYDQor7ZWc7Jyg7Z2sDQor7ZWc7ZiV7IudDQor7ZWc7ZWc7IigDQor7ZWc7Jyg6rWQDQor7ZWc7IOB7ISxDQor7ZWc7YOc6rWsDQor7ZWc7Kad7JiBDQor7ZWc7Jyh7KeADQor7ZWc6riI7IOBDQor7ZWc6rK97YOcDQor7ZWc7KKF6rCRDQor7ZWc7Jyk7ZiEDQor7ZWc7KCV7LacDQor7ZWc6rec7IStDQor7ZWc64+Z6recDQor7ZWc7J207IigDQor7ZWc7KO87JewDQor7ZWc66+46recDQor7ZWc7KO87J6sDQor7ZWc7J246rWQDQor7ZWc6rec7ZWZDQor7ZWc7KeE7JqpDQor7ZWc7J6s7JqwDQor7ZWc7J247IiZDQor7ZWc7J6s7Zy0DQor7ZWc7LGE7JmEDQor7ZWc7JiB6recDQor7ZWc7J287ISdDQor7ZWc7Iq57ZmUDQor7ZWc7YOc7J6EDQor7ZWc7J247Zi4DQor7ZWc7J6l7ZWZDQor7ZWc7JuQ7ISdDQor7ZWc7KCV6rWtDQor7ZWc7Jqw7YOcDQor7ZWc7J6l7ZiEDQor7ZWc7Lap7IicDQor7ZWc7KSR7KSRDQor7ZWc67SJ6recDQor7ZWc7J6l7ZiEDQor7ZWc67OR7JqpDQor7ZWc7J2Y7IiYDQor7ZWc7J246rK9DQor7ZWc7J6s6raMDQor7ZWc7YyQ6recDQor7ZWc6rWQ7JqxDQor7ZWc7IOB7JuQDQor7ZWc7J6s7IiYDQor7ZWc7KKF64KoDQor7ZWc7Ja47IiYDQor7ZWc7Z2s7YOdDQor7ZWc7KCV6rWQDQor7ZWc7IK87YOcDQor7ZWc7Iic6rK9DQor7ZWc7Ja17KSADQor7ZWc7KCV7IicDQor7ZWc7IOB7IOBDQor7ZWc7KKF7YOcDQor7ZWc7IOB7ZWYDQor7ZWc7KCV7KeEDQor7ZWc7Jqw67aADQor7ZWc67OR7J6QDQor7ZWc7JiB7KGwDQor7ZWc7KCV7Zi4DQor7ZWc64+Z66eMDQor7ZWc7LaY7JqpDQor7ZWc6rK97YOcDQor7ZWc7KKF7IiYDQor7ZWc7JuU6rK9DQor7ZWc7J6s7J6QDQor7ZWc7JuQ6recDQor7ZWc7KKF7IiYDQor7ZWc7ISx7Zi4DQor7ZWc7IyN7ZmYDQor7ZWc7J6s7ZmYDQor7ZWc7KKF7Je0DQor7ZWc7JaR7KSADQor7ZWc7KKF7IiYDQor7ZWc66eQ6rWtDQor7ZWc7KKF7LGEDQor7ZWc7JaR7IStDQor7ZWc7Jil7Zi4DQor7ZWc7J2E7JikDQor7ZWc7KSA6rWQDQor7ZWc7ISd7ISdDQor7ZWc7JiB7ZiEDQor7ZWc7J6s7ZWZDQor7ZWc7KSA7IiYDQor7ZWc7ISx7KO8DQor7ZWc7IOB6riwDQor7ZWc7LaY6ri4DQor7ZWc7KSR7IudDQor7ZWc64Ko7Z2sDQor7ZWc7JiB7ISxDQor7ZWc7Iig7Zi4DQor7ZWc7KSR7JWFDQor7ZWc6riw7KGwDQor7ZWc7JaR7IukDQor7ZWc7Iuc7LKgDQor7ZWc7KeA7JuQDQor7ZWc67OR6rK9DQor7ZWc7JuF6ri4DQor7ZWc7ZWE7ZW0DQor7ZWc7KeE6rWQDQor7ZWc7Jqp66y4DQor7ZWc7JaR7IiYDQor7ZWc7J247J6QDQor7ZWc7KeE7JWgDQor7ZWc7KKF7ZiEDQor7ZWc7IiY7KeEDQor7ZWc7Jyk7J21DQor7ZWc7LC96re8DQor7ZWc6re87IiYDQor7ZWc66qF6re8DQor7ZWc6riw7ZWcDQor7ZWc7LC97ISdDQor7ZWc7ZiV7JikDQor7ZWc7Iic66eMDQor7ZWc64+Z64+ZDQor7ZWc7LC97IiYDQor7ZWc7ZWE7JqpDQor7ZWc7J6s6ri4DQor7ZWc64+Z7Zi4DQor7ZWc7LKg7IiYDQor7ZWc7ISd7ZmNDQor7ZWc7LaY66qoDQor7ZWc7IOB7JiBDQor7ZWc7Lmg7JqpDQor7ZWc7ISd66a9DQor7ZWc6rWt7JqwDQor7ZWc7IOB7ZmNDQor7ZWc7YOc64KoDQor7ZWc64us7J28DQor7ZWc6riw7ISxDQor7ZWc7ISx7ZmYDQor7ZWc7YOc7IicDQor7ZWc7YOc7ZWYDQor7ZWc7KKF7Zi4DQor7ZWc7JiB7IukDQor7ZWc7YOc7LacDQor7ZWc7J287LCsDQor7ZWc7Jqp7IiZDQor7ZWc7J6s7ZiEDQor7ZWc7YyQ64usDQor7ZWc66eQ7KO8DQor7ZWc7KCV7ZeMDQor7ZWc7LCs6re8DQor7ZWc7ZiE7IiYDQor7ZWc7YOc7KGwDQor7ZWc6rOE7J2YDQor7ZWc6rCR7ISdDQor7ZWc7ZiE7KCVDQor7ZWc7ZmY6rWsDQor7ZWc7LaY7ZWZDQor7ZWc7Jqp7LihDQor7ZWc7ZiV7IiYDQor7ZWc7IyN7IigDQor7ZWc7IiY7ISdDQor7ZWc7IyN642VDQor7ZWc7Zi47Je0DQor7ZWc7IiY64yADQor7ZWc7Jqp7IudDQor7ZWc66+46rK9DQor7ZWc7ZmN7ISdDQor7ZWc7IS47IicDQor7ZWc7JuU6raMDQor7ZWc7ISg7IiYDQor7ZWc7Zqo6regDQor7ZWc64us7IicDQor7ZWc6rSR7IudDQor7ZWc7KCV7Zi4DQor7ZWc7Zqo64+ZDQor7ZWc7KCV7Zi4DQor7ZWc7ISx7JqwDQor7ZWc7KKF7YOcDQor7ZWc7Z2l7IiYDQor7ZWc6riw66y4DQor7ZWc7Z2s67aEDQor7ZWc7IiY7ISdDQor7ZWc7Z2s6rK9DQor7ZWc7ZWc7ZiEDQor7ZWc6re87J6sDQor7ZWc6rSR7ZiEDQor7ZWo6rOE7IigDQor7ZWo7KeE656ADQor7ZWo6rK97Zi4DQor7ZWo7Jew67SJDQor7ZWo67OR7JuQDQor7ZWo7KKF7J6QDQor7ZWo65GQ7IigDQor7ZWo67OR64+ZDQor7ZWo7IiY7YOcDQor7ZWo7ISx6re8DQor7ZWo6rWs6recDQor7ZWo7Iic7Jq0DQor7ZWo7JiB7KGwDQor7ZWo7YOc7IicDQor7ZWo7JiB7JilDQor7ZWo7JuQ7IudDQor7ZWo7Jqw7JWUDQor7ZWo7IOB7ZicDQor7ZWo64+Z7IicDQor7ZWo7KCV7JewDQor7ZWo7JuQ7ZmYDQor7ZWo7ZW07ZmNDQor7ZWo7KCV7JilDQor7ZWo7J2466qpDQor7ZWo7KCV7JuFDQor7ZWo7IOB7J6sDQor7ZWo6riw6re8DQor7ZWo6re87IiZDQor7ZWo7ZmY7KKFDQor7ZWo7IOB7JqpDQor7ZWo6riw7JuQDQor7ZWo7ISg7ZWZDQor7ZeIIOq0kQ0KK+2XiO2YhOyImA0KK+2XiOygleyaqQ0KK+2XiOyiheuLrA0KK+2XiCDrj5kNCivtl4jrp4zrtIkNCivtl4jso7zrj5kNCivtl4jsirnshJ0NCivtl4gg7ISdDQor7ZeI7J2Y7IigDQor7ZeI7ISx7JuQDQor7ZeI6reA7JuQDQor7ZeIIOyInA0KK+2XiOyDge2YuA0KK+2XiOyDgeyekA0KK+2XiOynhO2YhA0KK+2XiCDsmYQNCivtl4jrs5HspIANCivtl4jsiJzsnqwNCivtl4jtmLjshKANCivtl4gg7JuQDQor7ZeI7KCV64yADQor7ZeI7YOc7ZmUDQor7ZeI7KSR6rCRDQor7ZeIIOycoA0KK+2XiOygleyYgQ0KK+2XiOygleumvA0KK+2XiOuNleyImA0KK+2XiCDsnpENCivtl4jrj5nsoJwNCivtl4jtg5zrjIANCivtl4jso7ztmZQNCivtl4jqsr3stpwNCivtl4jtmY3sl7QNCivtl4jsgrztmZgNCivtl4jsoJXsiJwNCivtl4jqtJHsiJgNCivtl4jsiJnqsJENCivtl4jsoJXtm4gNCivtl4jsnqzrrLgNCivtl4jqtozssKwNCivtl4jtjJDsiJgNCivtl4jstpjsiJgNCivtl4jshJ3stpwNCivtl4jqt5ztg5wNCivtl4jsnqXsiJgNCivtl4jsiKDsmqkNCivtl4jsmKXssqANCivtl4jquLDsi50NCivtl4jtlYTsl7QNCivtl4jrp4ztnawNCivtl4jshKDquLANCivtl4jquLDssqANCivtl4jtnazrjZUNCivtl4jspIDtmLgNCivtl4jsmIHtla0NCivtl4jrgpzsl7ANCivtl4jrj5nsm5ANCivtl4jsnqzsi50NCivtl4jsnKTsi50NCivtl4jrgqjsnbwNCivtl4jsooXssL0NCivtl4jrs5HshJ0NCivtl4jrtInqta0NCivtl4jrj5nrn4kNCivtl4jsmIHtg5wNCivtl4jri6zssqANCivtl4jsnbTspIANCivtl4jrj5nrn4kNCivtl4jshKDslZQNCivtl4jrgpntnawNCivtl4jstpjsiJgNCivtl4jrj5nrn4kNCivtl4jtmLjrrJgNCivtl4jrqoXqsbQNCivtl4jshLHsm5ANCivtl4jrj5nroZ0NCivtl4jsmIHshJ0NCivtl4jssKzri6wNCivtl4jrs7Xsi50NCivtl4jrj5nshLENCivtl4jtlZnshK0NCivtl4jqsITshK0NCivtl4jqt4DrqqgNCivtl4jrj5nsiJgNCivtl4jssqDshLENCivtl4jsoJXrjZUNCivtl4jsmIHspIANCivtl4jrj5nsp4QNCivtl4jsnqXquLANCivtl4jqt5zsnpANCivtl4jrjZXsmqkNCivtl4jrp4zqtawNCivtl4jtmITsi50NCivtl4jqt5zrnb0NCivtl4jsiJjqtZANCivtl4jrp4zsg4ENCivtl4jqt5zssqANCivtl4jsoJXsnbUNCivtl4jsooXtmIQNCivtl4jrp4zshKANCivtl4jri6zsl7ANCivtl4jsmbjquLANCivtl4jtg5ztg5wNCivtl4jrp4zsl4UNCivtl4jrqoXsp4QNCivtl4jsm5DqtawNCivtl4jtmJXshK0NCivtl4jrp4zsl7QNCivtl4jsg4Hsp4QNCivtl4jsmIHsl70NCivtl4jsl7Dqsr0NCivtl4jrp4zsmIENCivtl4jsnqXrnpgNCivtl4jrs5HqtowNCivtl4jstpjqtawNCivtl4jrp4zsmKUNCivtl4jsnbzsl7ANCivtl4jsg4HtmZgNCivtl4jsg4HsiJgNCivtl4jrp4zsmrANCivtl4jsnqzshKANCivtl4jsnqztmY0NCivtl4jrs5Htm4gNCivtl4jrp4zsoJUNCivtl4jsnqXsmrANCivtl4jqsr3rp4wNCivtl4jrp4zqt7wNCivtl4jrp4zsobANCivtl4jsiJjsg4ENCivtl4jsmKXsnqwNCivtl4jrtInqtIANCivtl4jrp4zssqANCivtl4jsoJXtg5wNCivtl4jsoJXsnoQNCivtl4jsooXsl7QNCivtl4jrp4ztnawNCivtl4jsmIHsmKUNCivtl4jshLHsmqkNCivtl4jqtJHqta0NCivtl4jrp4ztnawNCivtl4jqsr3tmIQNCivtl4jsg4HrhbgNCivtl4jtmY3sm4UNCivtl4jrrLjqt5wNCivtl4jrj5ntm4gNCivtl4jsmqnqt5wNCivtl4jssL3siJgNCivtl4jrtInsiJwNCivtl4jqtJHquLANCivtl4jshozsl7QNCivtl4jstqntlZkNCivtl4jsgrzsiJgNCivtl4jqt7zrjIANCivtl4jsiJjsmqkNCivtl4jssL3tmLgNCivtl4jsg4HquLANCivtl4jsoJXsmrANCivtl4jshJ3smqkNCivtl4jsoJXsm5ANCivtl4jsg4HsiJkNCivtl4jsmIHshKQNCivtl4jqtJHrjZUNCivtl4jqsJHshLENCivtl4jsg4HsmqkNCivtl4jqsIHsiJgNCivtl4jrgqjqtowNCivtl4jsiJzsmqkNCivtl4jsg4HssqANCivtl4jsuZjshJ0NCivtl4jqtJHsm4UNCivtl4jsoJXsl7ANCivtl4jsg4HstpwNCivtl4jsi5zsoJUNCivtl4jshJ3rr7wNCivtl4jsg4HsmrENCivtl4jshJ3qtawNCivtl4jrrJjqtZANCivtl4jsiJjstpgNCivtl4jsuaDssqANCivtl4jshJ3qtawNCivtl4jrrLTssKwNCivtl4jrp5DqsJENCivtl4jsmIHsiJgNCivtl4jshKDstpwNCivtl4jsmIHtnJgNCivtl4jquLDshK0NCivtl4jrtoTsl7QNCivtl4jshLHsmqkNCivtl4jsg4HqtowNCivtl4jrj5nsmrANCivtl4jsnqzqt7wNCivtl4jsiJjslpENCivtl4jsnZjslbwNCivtl4jrj4Tqsr0NCivtl4jrrLjshJ0NCivtl4jsiJzslpENCivtl4jrj5nrp4wNCivtl4jssL3tlbQNCivtl4jsoJXtmIQNCivtl4jsiJzsnbQNCivtl4jqsr3tl4wNCivtl4gg6reADQor7ZeI7IK87ZWcDQor7ZeI7Iq57KGwDQor7ZeI7JiB6ri4DQor7ZeI7YOc7KCVDQor7ZeI7KCc7JikDQor7ZeI7JaR7ZWZDQor7ZeI66eM7ZmNDQor7ZeI6riw7JikDQor7ZeI67OR7ZmYDQor7ZeI7Jew6rWsDQor7ZeI7IOB7IudDQor7ZeI7IiY7ZmYDQor7ZeI7ISx7ISdDQor7ZeI7JiB7ISdDQor7ZeI7ZiE7Z2sDQor7ZeI7YOc65OdDQor7ZeI6rK97JewDQor7ZeI7JiB7JuQDQor7ZeI66eM7KeEDQor7ZeI7YyU66y4DQor7ZeI67OR7Je0DQor7ZeI7JiB7YOdDQor7ZeI7JuQ7ZuIDQor7ZeI7JiB7IigDQor7ZeI66y07Je0DQor7ZeI7JiB7Zi4DQor7ZeI7ZWc7YOcDQor7ZeI7KCV7J6QDQor7ZeI66y47LaYDQor7ZeI7Jil7ISgDQor7ZeI7Iug7JiBDQor7ZeI7IS464yADQor7ZeI7IOB7KCVDQor7ZeI7Jqp6raMDQor7ZeI6rK97JewDQor7ZeI6rK964+EDQor7ZeI7KKF7J6sDQor7ZeI7Jqp7ZWcDQor7ZeI7Iic7YOBDQor7ZeI7ISd7ZWYDQor7ZeI67OR7JWIDQor7ZeI7Jq07JqpDQor7ZeI6rK96regDQor7ZeI7LKg6rOkDQor7ZeI7IiY7ISgDQor7ZeI7JuF7IStDQor7ZeI7IOB7LKgDQor7ZeI64+Z7ZmUDQor7ZeI6rO87IicDQor7ZeI7JyE6rWsDQor7ZeI7JuQ7IiYDQor7ZeI6rec7LacDQor7ZeI7KSR656YDQor7ZeI7J207ISgDQor7ZeI67OR7IudDQor7ZeI7KCQ7J6QDQor7ZeI7ZmN65OdDQor7ZeI7J207Zi4DQor7ZeI7J287ZW0DQor7ZeI7KCV642VDQor7ZeI7KeE7JyoDQor7ZeI7J246recDQor7ZeI7ZmN7ZiEDQor7ZeI6re87Je0DQor7ZeI67OR6rCVDQor7ZeI7J247KSRDQor7ZeI67OR7IicDQor7ZeI6riw6rWtDQor7ZeI7Jqw7IiYDQor7ZeI7J247LacDQor7ZeI7Jik7IudDQor7ZeI7LaY7ZmYDQor7ZeI67OR7JaRDQor7ZeI7J6E7JaRDQor7ZeI7KCV7ISgDQor7ZeI66qF7JqpDQor7ZeI7YOc7JiBDQor7ZeI7J6s66qFDQor7ZeI7Lap7KKFDQor7ZeI7J6s67CwDQor7ZeI7YOc7Zy0DQor7ZeI7J6s7JuQDQor7ZeI7J6s7IOdDQor7ZeI64+M7JqwDQor7ZeI7ISx7ZWEDQor7ZeI7J6s7ZWEDQor7ZeI642V7JikDQor7ZeI7YOd7Je0DQor7ZeI7KCQ7IicDQor7ZeI7J6s7ZuIDQor7ZeI7KKF7JewDQor7ZeI7JmE7ISgDQor7ZeI7J207JqpDQor7ZeI7KCQ64+MDQor7ZeI7Iic64W4DQor7ZeI7Jqp6ri4DQor7ZeI7Iic66qFDQor7ZeI7KCQ7JWUDQor7ZeI7JuQ7IStDQor7ZeI6rSR7IudDQor7ZeI7KKF6raMDQor7ZeI7KCV7IudDQor7ZeI7J6s7JiBDQor7ZeI66y07IiYDQor7ZeI7ISx7KGwDQor7ZeI7KCV7JWEDQor7ZeI7ISx7J28DQor7ZeI7ZWc6recDQor7ZeI64yA7KCVDQor7ZeI7KCV7JqwDQor7ZeI6ri47LKgDQor7ZeI7IS47IiYDQor7ZeI7Jqw66GADQor7ZeI7KKF656YDQor7ZeI7IaM7ZeMDQor7ZeI7YOc7JuQDQor7ZeI7KeE7LaYDQor7ZeI7KO87Zi4DQor7ZeI7KCV64+EDQor7ZeI7Jm466qoDQor7ZeIIOyekA0KK+2XiOykgA0KK+2XiOusuA0KK+2XiO2ZlA0KK+2XiOyepQ0KK+2XiOynhOyEnQ0KK+2XiOyDgeyasA0KK+2XiOyYpeq4uA0KK+2XiOyEseq1rA0KK+2XiOynhOyasQ0KK+2XiOq4sOyyoA0KK+2XiO2YhOyYpQ0KK+2XiOq3nOyhsA0KK+2XiOy2mOyasA0KK+2XiOyYgeyyoA0KK+2XiOyerO2VhA0KK+2XiOyYgeuCqA0KK+2XiOy2mOyerA0KK+2XiOyYgeyEoA0KK+2XiOy2qeuPjA0KK+2XiOustOq3nA0KK+2XiO2DnOyDgQ0KK+2XiOq4sO2YhA0KK+2XiOuqheyEnQ0KK+2XiOyaqeyInA0KK+2XiO2DnOyImA0KK+2XiOqwkeyImQ0KK+2XiOyhsO2DnA0KK+2XiO2MkOyyoA0KK+2XiO2DnOyImA0KK+2XiOqyveydvA0KK+2XiOyYpO2biA0KK+2XiOydhOywvQ0KK+2XiO2DnOynhA0KK+2XiOq3nOyDnQ0KK+2XiOycpOu2hA0KK+2XiO2VnOyXtA0KK+2XiO2MkOyEsQ0KK+2XiOymneyyoA0KK+2XiOyaqe2DnQ0KK+2XiOyDgeydtA0KK+2XiO2MkOyImA0KK+2XiOyEseyIoA0KK+2XiOywveyInA0KK+2XiOq3vOyImA0KK+2XiO2VhOyhsA0KK+2XiO2DgeyyoA0KK+2XiOuPhOqyvQ0KK+2XiOyatOy2nA0KK+2XiO2YhOyImQ0KK+2XiOychOuPhA0KK+2XiOuPhOuPmQ0KK+2XiOyZuOq4uA0KK+2XiO2Zjeq3nA0KK+2XiO2DnOybhQ0KK+2XiOygle2DnA0KK+2XiOygleyXsA0KK+2XiO2cmOybhQ0KK+2XiOyYpeykkQ0KK+2XiOyihey2nA0KK+2XiO2DnOyjvA0KK+2YhOq4iOyInA0KK+2YhOygleyEnQ0KK+2YhOuRkOybkA0KK+2YhOyDgeyInA0KK+2YhOuPmeyXtA0KK+2YhOq3vOq2jA0KK+2YhOq3nO2ZjQ0KK+2YhOybkO2DgQ0KK+2YhOusuOyLnQ0KK+2YhO2DnOyYgQ0KK+2YhO2DnOyEnQ0KK+2YhOq4sOqzpA0KK+2YhOyEneybkA0KK+2YhOyGjOyEoA0KK+2YhOy2mOuMgA0KK+2YhOy2mOyYgQ0KK+2YhOyImOyaqQ0KK+2YhOusuO2ZmA0KK+2YhOq3vOqzpA0KK+2YhO2VnOygnA0KK+2YhOyInO2drA0KK+2YhOyerOq1kA0KK+2YhOyDgeybkA0KK+2YhOyerO2VnA0KK+2YhOyaqeyLnQ0KK+2YhO2DnOuqqA0KK+2YhOyjvO2YhA0KK+2YhOq3nOyLnQ0KK+2YhOywve2ZmA0KK+2YhOygleyIoA0KK+2YhO2XjO2YhA0KK+2YhOy2qeyYgQ0KK+2YhO2drO2biA0KK+2YhOq4iOyImA0KK+2YhOq0ke2YuA0KK+2YhO2DnOyekA0KK+2YleuCqOynhA0KK+2YleyDge2YhA0KK+2YleyInO2YhA0KK+2Yle2MkOyImQ0KK+2ZjSDtl4wNCivtmY3snqzqt5wNCivtmY3so7zqt7wNCivtmY3sirntmLgNCivtmY3qsJHsiJwNCivtmY3shLjsiJgNCivtmY3rqoXtmY0NCivtmY3rs5HqsJENCivtmY3qsr3rj4QNCivtmY3siJjsiJgNCivtmY3sp4Drr7wNCivtmY3soJXtmLgNCivtmY3qsr3tmLgNCivtmY3soJXsmrENCivtmY3snbjsm5ANCivtmY3rj5nrjZUNCivtmY3qs4Tsl7ANCivtmY3rs5HsiJwNCivtmY3smrDsmqkNCivtmY3quLDrn4kNCivtmY3qtJHsi50NCivtmY3tg5ztg5wNCivtmY3snbjsmqkNCivtmY3tmITsi50NCivtmY3quLDrrLgNCivtmY3shKDsnpANCivtmY3smIHspJENCivtmY3smqnquLANCivtmY3rjIDsiJwNCivtmY3rs7Tsp4ANCivtmY3qt4Drj5kNCivtmY3rgqjqtIANCivtmY3rj4Tsg50NCivtmY3sp4TshKANCivtmY3rp4zsp4ANCivtmY3qtJHrnoANCivtmY3rj5nquLANCivtmY3tg5zshK0NCivtmY3quIjtmLgNCivtmY3tnazstpwNCivtmY3rj5nshJ0NCivtmY3snKTsobANCivtmY3sm5Drp4wNCivtmY3shJ3ri6wNCivtmY3rkZDsi50NCivtmY3suZjsp4QNCivtmY3tg5zsi50NCivtmY3sm5DrnpgNCivtmY3rkZDsp4QNCivtmY3stpjqt7wNCivtmY3qsr3sp4QNCivtmY3rjIDsiJgNCivtmY3rqoXsiJwNCivtmY3ri6zshJ0NCivtmY3tjJDtnawNCivtmY3snqzsiJgNCivtmY3rrLTsm4UNCivtmY3tlLzsnbQNCivtmY3snqzrtIkNCivtmY3tmZjsiJgNCivtmY3rr7jtmZQNCivtmY3ssq3rqoUNCivtmY3smIHshJ0NCivtmY3sg4Hsi50NCivtmY3rs5HsiJkNCivtmY3smKTshLENCivtmY3rrLTrtIkNCivtmY3sg4HsiJgNCivtmY3rs7Xsi6QNCivtmY3spIDsiJwNCivtmY3rp4zquLANCivtmY3sg4HsoJUNCivtmY3rtoDquLANCivtmY3sooXrpr0NCivtmY3shLHssqANCivtmY3snKTquLANCivtmY3rtoTrgqgNCivtmY3stqnqt6ANCivtmY3rgqjtg50NCivtmY3rr7zsp4QNCivtmY3sgrzquLANCivtmY3smqnshJ0NCivtmY3snKTspIANCivtmY3sooXstpwNCivtmY3sg4HquLANCivtmY3rp5Dso7wNCivtmY3siJjtmY0NCivtmY3sooXroYANCivtmY3sg4HsobANCivtmY3tjJTtmLgNCivtmY3rs5HssKwNCivtmY3qtJHsmrANCivtmY3sg4HtnawNCivtmY3smIHsiJwNCivtmY3smIHsiJwNCivtmY3snKTrj4QNCivtmY3shJ3rtIkNCivtmY3shLHsiJwNCivtmY3smIHqs6QNCivtmY3rs5Hqt5wNCivtmY3shJ3snKQNCivtmY3tg5zshJ0NCivtmY3rs5HsnpANCivtmY3tmITqt5wNCivtmY3shJ3sp4QNCivtmY3qt4DsnpANCivtmY3qtJHtlYQNCivtmY3rhbjsoJANCivtmY3shJ3tmZgNCivtmY3snqXsnqwNCivtmY3sg4Hrs7UNCivtmY3smIHsnoQNCivtmY3shKDqt6ANCivtmY3smqnrs7UNCivtmY3soJXtnawNCivtmY3soJDsnbQNCivtmY3shKDrqqgNCivtmY3siJzsobANCivtmY3sgrzsm5ANCivtmY3shKDssqANCivtmY3shKDtkZwNCivtmY3snqztmZgNCivtmY3sg4HqtowNCivtmY3rj5ntg50NCivtmY3shKDtnawNCivtmY3qtazqt7wNCivtmY3soJXqsJENCivtmY3siJztlbQNCivtmY3shLHqtIANCivtmY3rtInsl7ANCivtmY3smqnsobANCivtmY3sooXrj5kNCivtmY3shLHqt7wNCivtmY3rj5ntmLgNCivtmY3qtZDshK0NCivtmY3shLjssqANCivtmY3shLHquLANCivtmY3sgqzsnKgNCivtmY3smIHsiJkNCivtmY3tlbTquLgNCivtmY3shLHrr7wNCivtmY3rs5HtnawNCivtmY3sg4HslZQNCivtmY3qsJXtmIQNCivtmY3shLHsiJgNCivtmY3rjZXrs5ENCivtmY3rkZDrjZUNCivtmY3rp4ztmLgNCivtmY3shLHsl7QNCivtmY3soJXqs6QNCivtmY3snqzsnpANCivtmY3rr7jrsLANCivtmY3shLHsm5ANCivtmY3rtIntmLgNCivtmY3tmoztmIQNCivtmY3qt5zshJ0NCivtmY3shLHsnKQNCivtmY3smKXshLENCivtmY3shLHsmqkNCivtmY3smKXssqANCivtmY3shLHtg5wNCivtmY3rspTsiJgNCivtmY3tlYTsg4ENCivtmY3shKDtlZkNCivtmY3shLHtg5wNCivtmY3rjZXsmqkNCivtmY3soJDsp4QNCivtmY3siJzqt5wNCivtmY3shLHtg5wNCivtmY3sg4Hsi5wNCivtmY3smrDsm4UNCivtmY3smqnsmqkNCivtmY3shLHtmZgNCivtmY3smIHtmLgNCivtmY3soJXquLgNCivtmY3soJXtmZQNCivtmY3shLHtmqgNCivtmY3quLDqt5wNCivtmY3shJ3tmLgNCivtmY3snYDsi50NCivtmY3shLjquLANCivtmY3si5zsiKANCivtmY3rqoXshJ0NCivtmY3snKTqtowNCivtmY3siJjrjZUNCivtmY3tg5zsi50NCivtmY3rqoXrp4wNCivtmY3shLHsg4ENCivtmY3siJzqtZANCivtmY3shLjtmLgNCivtmY3qtJHshKANCivtmY3snqzrj4QNCivtmY3siJztmLgNCivtmY3tmZTsl7ANCivtmY3rgqjshJwNCivtmY3soJXrtIkNCivtmY3sirnsnbwNCivtmY3smqnshKANCivtmY3snqztmLgNCivtmY3sooXtlZwNCivtmY3smIHqtawNCivtmY3sl7DrrLQNCivtmY3tg5zsobANCivtmY3sm4XroZ0NCivtmY3smIHqtowNCivtmY3rrLTrj4wNCivtmY3smKXstpwNCivtmY3tmLjslZQNCivtmY3smIHslaANCivtmY3snoTsnbQNCivtmY3smIHquLgNCivtmY3snbjsm5ANCivtmY3smIHsmrANCivtmY3tg5zsl7ANCivtmY3siJjtmLgNCivtmY3qt5zrqoUNCivtmY3smKTqs6QNCivtmY3shLHshKANCivtmY3sg4Hrj4QNCivtmY3tjJDtmZgNCivtmY3smKXtkZwNCivtmY3rtoTrj5kNCivtmY3smqntmZgNCivtmY3smqntm4gNCivtmY3smqntlZkNCivtmY3siJzrgqgNCivtmY3smIHsp4QNCivtmY3qt5ztg5wNCivtmY3smrDshJ0NCivtmY3shLHtmIQNCivtmY3rtInsmKQNCivtmY3tl4zso7wNCivtmY3smrTtnawNCivtmY3soJDsmrANCivtmY3siJjqt7wNCivtmY3snqzrnpgNCivtmY3sm5DsoIQNCivtmY3tmJztlokNCivtmY0g7ZWZDQor7ZmN7J6s66GdDQor7ZmN7JuQ7ZGcDQor7ZmN6riw7IiYDQor7ZmN66qF7JqpDQor7ZmNIOyasA0KK+2ZjeydmOyLnQ0KK+2ZjeyKueuwqQ0KK+2ZjeygleuztA0KK+2ZjeyiheuCqA0KK+2ZjeyerOq4sA0KK+2ZjeunjOyYgQ0KK+2ZjeyasO2ZmA0KK+2ZjeuPmeyerA0KK+2ZjeyerOq4sA0KK+2ZjeyGoeyaqQ0KK+2ZjeyYgeyVlA0KK+2Zje2Dne2XjA0KK+2ZjeyerOuCqA0KK+2ZjeyerOydtA0KK+2Zje2DgOyerA0KK+2ZjeuCqOuNlQ0KK+2ZjeyerOuqqA0KK+2Zje2VtOyekA0KK+2Zje2drOy4oQ0KK+2ZjeyKueuLrA0KK+2ZjeygleyImA0KK+2ZjeyDgeyynA0KK+2ZjeybkO2drA0KK+2Zjeq3vO2DnQ0KK+2ZjeygleyXvQ0KK+2ZjeyInOyXtA0KK+2ZjeynhOyhsA0KK+2ZjeuzkeyLnQ0KK+2ZjeygleybhQ0KK+2ZjeyYgey2mA0KK+2Zjeuzke2YuA0KK+2ZjeuPhOyEsQ0KK+2Zjeygle2RnA0KK+2ZjeygkOq3vA0KK+2Zje2YuOq4sA0KK+2ZjeqwkeybhQ0KK+2ZjeyiheycpA0KK+2ZjeuPme2drA0KK+2Zje2YuOq4uA0KK+2ZjeqyveyekA0KK+2ZjeyjvOuCnA0KK+2ZjeyghOyEnQ0KK+2ZjeynhO2ZmA0KK+2Zjeyaqeu5iA0KK+2ZjeyngOyatA0KK+2ZjeyEneyaqQ0KK+2Zje2DnO2YlQ0KK+2Zje2YhO2ZjQ0KK+2ZjeynhOqzpA0KK+2ZjeyDgeq1rA0KK+2ZjeyEuOyEoA0KK+2ZjeyerO2YlQ0KK+2ZjeynhOuFhA0KK+2ZjeyerOykgA0KK+2ZjeyjvOyXtA0KK+2ZjeuPme2ZlA0KK+2ZjeynhOusuA0KK+2ZjeuzkeyyoA0KK+2Zjeq4sOyInA0KK+2ZjeyYgeyEoA0KK+2ZjeynhOyEnQ0KK+2ZjeyInOycpA0KK+2ZjeygleusuA0KK+2Zjeq4sOyLnQ0KK+2ZjeynhOyEsQ0KK+2ZjeuMgOuhnQ0KK+2ZjeusuOyekA0KK+2ZjeyInO2drA0KK+2ZjeynhOyEsQ0KK+2Zjey2mOqzpA0KK+2Zjeygleq3nA0KK+2ZjeqwkeydtA0KK+2ZjeynhOyImA0KK+2ZjeyyoOyXtA0KK+2Zje2VtO2VnA0KK+2ZjeynhOyImQ0KK+2ZjeynhOyasQ0KK+2ZjeyYgeyLnQ0KK+2Zjeygle2DnQ0KK+2Zje2VmOqyvQ0KK+2ZjeynhOyyoA0KK+2ZjeyYgeq3nA0KK+2ZjeyGjOunjA0KK+2ZjeuzkeyYgQ0KK+2ZjeynhO2PiQ0KK+2ZjeyerOybkA0KK+2ZjeuvvO2ZlA0KK+2Zjeuzkeq1kA0KK+2Zjeywveq4sA0KK+2Zjeyaqe2VnA0KK+2Zjeyihe2ZmA0KK+2ZjeyduOyLnQ0KK+2Zjeywveq4sA0KK+2ZjeywqOyImA0KK+2ZjeqyveyImA0KK+2Zjeyyre2YuA0KK+2ZjeyxhO2drA0KK+2ZjeyYge2VnA0KK+2ZjeyYpeyYpQ0KK+2ZjeuvvOuPhA0KK+2ZjeyyoOq4sA0KK+2ZjeyDgeyEnQ0KK+2Zjeykkeq4sA0KK+2ZjeyEoOyImA0KK+2ZjeyyoOq4sA0KK+2ZjeyViO2YhA0KK+2ZjeqyveuPhA0KK+2ZjeuRkOu0iQ0KK+2ZjeyyoOyerA0KK+2ZjeyXsOydmA0KK+2ZjeyCvOqyvQ0KK+2Zjeq0keycpA0KK+2Zje2DnOq4sA0KK+2ZjeyLoOyImQ0KK+2Zje2DnOyEnQ0KK+2ZjeqyveuNlQ0KK+2Zje2DnOyVlA0KK+2ZjeyiheyaqQ0KK+2ZjeyerOyXtA0KK+2ZjeunjO2bhA0KK+2Zje2DnO2drA0KK+2ZjeuzteyhsA0KK+2Zje2VnOyerA0KK+2ZjeyZuOyLnQ0KK+2Zje2VnOq4sA0KK+2ZjeqwnOq4sA0KK+2ZjeyatOydtQ0KK+2ZjeyYge2biA0KK+2Zje2Vreq4uA0KK+2Zjey5oOyaqQ0KK+2ZjeyYgeydvA0KK+2ZjeyaqeuqqQ0KK+2Zje2VtOyEsQ0KK+2Zje2YleyImA0KK+2ZjeyEse2ZlA0KK+2Zjeyaqe2drA0KK+2Zje2YhOynhA0KK+2ZjeydhOuvvA0KK+2ZjeyYgeunjA0KK+2Zje2DnOyEnQ0KK+2Zje2YhOyyoA0KK+2ZjeuPmeq3nA0KK+2ZjeybkOq1rA0KK+2ZjeyEne2VmA0KK+2Zje2YhO2VhA0KK+2Zje2VhO2PiQ0KK+2ZjeygleyEnQ0KK+2ZjeyImOyynA0KK+2Zje2Zqeq4sA0KK+2Zje2aqOuPmQ0KK+2ZjeygleyIoA0KK+2Zjeu2hOyXtA0KK+2ZqeqxtOyYpA0KK+2ZqeyEoO2VnA0KK+2ZqeuMgO2YuA0KK+2Zqeuzte2YhA0KK+2ZqeqyveyImQ0KK+2Zqeq4sOuztQ0KK+2ZqeygkOyerA0KK+2ZqeyiheuhnQ0KK+2ZqeqyveyInA0KK+2ZqeyYgeyasQ0KK+2Zqe2Dne2ZmA0KK+2ZqeybkOuPjA0KK+2ZqeqyveyIoA0KK+2ZqeyVlOuqhQ0KK+2Zqe2DnOyLpA0KK+2ZqeyYgeq3vA0KK+2ZqeqyveyatA0KK+2ZqeuqheyasA0KK+2ZqeyEne2YuA0KK+2ZqeuNle2ZmA0KK+2ZqeqyveyehA0KK+2ZqeuwseyEsQ0KK+2Zqe2drOybkA0KK+2ZqeydvOyDgQ0KK+2Zqeqyve2VnA0KK+2ZqeyEoOuNlQ0KK+2ZqeyDgeyhsA0KK+2Zqeyaqeq4uA0KK+2Zqeq0keyXsA0KK+2ZqeydmOyZhA0KK+2Zqe2VtOq4sA0KK+2ZqeunkO2drA0KK+2Zqeq0keyaqQ0KK+2Zqe2DnOuPhA0KK+2Zqey2mO2ZmA0KK+2ZqeyYgeuPhA0KK+2Zqeq1kOydvA0KK+2ZqeyiheuztQ0KK+2ZqeynhO2ZmA0KK+2Zqeq3vOyImA0KK+2Zqeq1kOyepQ0KK+2ZqeqyveyYgQ0KK+2Zqeyiheq1kA0KK+2Zqe2YleuNlQ0KK+2Zqeq1re2WpQ0KK+2ZqeyiheyhsA0KK+2ZqeyYgeyehA0KK+2ZqeygkOugqA0KK+2Zqeq3nOuvuA0KK+2ZqeyerOyynA0KK+2Zqeq4sOyYpQ0KK+2ZqeyImO2YhA0KK+2Zqeq3nOyZhA0KK+2ZqeyYgeuztQ0KK+2ZqeyYge2YuA0KK+2ZqeqyveyaqQ0KK+2Zqeq3nOyghA0KK+2Zqey2lOyxhA0KK+2ZqeyYgeyInA0KK+2ZqeyerOyEoA0KK+2Zqeq4iOuPjA0KK+2ZqeydvOyLnQ0KK+2ZqeuzkeyLnQ0KK+2Zqe2YhOqwkQ0KK+2Zqeq4iOyEsQ0KK+2Zqeq4sOydtA0KK+2Zqe2YhO2drA0KK+2ZqeyaqeyaqQ0KK+2Zqeq4sOuPhA0KK+2ZqeyImOyekA0KK+2ZqeyblOyekA0KK+2Zqeq4iO2drA0KK+2Zqeq4sOyEnQ0KK+2ZqeygleybkA0KK+2ZqeuzkeyekA0KK+2ZqeyCvOyekA0KK+2Zqeq4sO2YuA0KK+2Zqe2VnO2ZlA0KK+2Zqe2VmeykgA0KK+2ZqeyYpeygnA0KK+2Zqeq4uO2YhA0KK+2Zqeu2hOyaqQ0KK+2ZqeyCvOydtA0KK+2Zqeq0keunjA0KK+2ZqeuCqOydtA0KK+2ZqeyjvOyhsA0KK+2ZqeyDgeyErQ0KK+2ZqeyLoOyEnQ0KK+2ZqeuLrOq4iA0KK+2ZqeyImOq3vA0KK+2Zqeq4sOugrA0KK+2Zqe2YhOybkA0KK+2ZqeuMgOyEoA0KK+2ZqeqyveyihQ0KK+2ZqeyXsOyInA0KK+2ZqeyiheybkA0KK+2ZqeuMgOyyoA0KK+2Zqeq3vOyImQ0KK+2ZqeyYpeyImA0KK+2ZqeuPmeq3nA0KK+2ZqeuNleyEsQ0KK+2ZqeyLnOqzhA0KK+2Zqeygle2DnA0KK+2ZqeybkO2DnA0KK+2ZqeuPmeyEnQ0KK+2ZqeuqheyImA0KK+2ZqeygleqwkQ0KK+2ZqeyXsOy2mA0KK+2ZqeuPmeyLnQ0KK+2ZqeyYge2biA0KK+2ZqeyYpOq4sA0KK+2ZqeyaqeyyoA0KK+2ZqeuRkOyyoA0KK+2Zqeq3gOyhsA0KK+2ZqeuzkeyErQ0KK+2ZqeyasOuMgA0KK+2ZqeuemOyEsQ0KK+2ZqeuzkeyLnQ0KK+2Zqe2drOyImA0KK+2Zqe2drOyImA0KK+2Zqeujoeq4sA0KK+2ZqeuLrOyjvA0KK+2ZqeuqheunjA0KK+2ZqeygleyImA0KK+2ZqeunkOyImA0KK+2ZqeyIme2ZmA0KK+2Zqe2drO2XjA0KK+2Zqe2DnOyVlA0KK+2ZqeunkOyInA0KK+2Zqeq4uOuRkA0KK+2Zqe2aqOuTnQ0KK+2Zqe2Vme2drA0KK+2Zqeuqheq3nA0KK+2ZqeyEse2YuA0KK+2ZqeywveyVlA0KK+2ZqeyYgeq1rQ0KK+2ZqeuqheyInA0KK+2Zqe2WpeyIoA0KK+2ZqeyYgeyyoA0KK+2ZqeyLnOydvA0KK+2Zqeuzkeq1rA0KK+2Zqeq3nOyEnQ0KK+2ZqeyyoOyImA0KK+2ZqeyEse2YuA0KK+2ZqeuzkeydvA0KK+2ZqeyCvO2VnA0KK+2Zqe2DnOyEoA0KK+2Zqeygle2drA0KK+2ZqeuztOyYpeyImA0KK+2Zqeywveu0ieyYgQ0KK+2ZqeqyveyEneyerA0KK+2Zqe2biOyImeuzkQ0KK+2Zqeu2hOyjvA0KK+2ZqeustO2YuA0KK+2ZqeyasOq3nA0KK+2ZqeyImOuhnQ0KK+2ZqeyDgeq3nA0KK+2ZqeyynOqzoA0KK+2Zqe2DnOynhA0KK+2ZqeyImOydvA0KK+2ZqeyDgeyehA0KK+2ZqeyEseyaqQ0KK+2ZqeuqheyxhA0KK+2ZqeydmOykgA0KK+2ZqeyDge2RnA0KK+2ZqeyEoOyasA0KK+2ZqeyaqeuPhA0KK+2Zqeqyveq4iA0KK+2ZqeyEoOq3nA0KK+2Zqe2ZlOyImA0KK+2Zqeq0keyjvA0KK+2ZqeygleyImA0KK+2ZqeyEoOq3vA0KK+2ZqeyEne2drA0KK+2ZqeyEseyaqQ0KK+2ZqeynhOyyoA0KK+2ZqeyEoOuPhA0KK+2ZqeyaqeyerA0KK+2ZqeyImOunjA0KK+2ZqeyZuOyWkQ0KK+2ZqeyEoOuPmQ0KK+2Zqe2YuOyImQ0KK+2ZqeybkOq4iA0KK+2Zqeu0ieyImA0KK+2ZqeyEoOuRkA0KK+2Zqeuqheq3vA0KK+2Zqe2DnOyEnQ0KK+2Zqeq1rO2ZmA0KK+2ZqeyEoOyaqQ0KK+2ZqeuNleyaqQ0KK+2ZqeycpOyXtA0KK+2ZqeusuOyEnQ0KK+2ZqeyEoOyasA0KK+2ZqeynhOq3vA0KK+2ZqeykgOyyoA0KK+2Zqeyiheq3nA0KK+2ZqeyEoOyasQ0KK+2ZqeyInOyEoA0KK+2ZqeyduO2doA0KK+2ZqeycpOuylA0KK+2ZqeyEoOyasQ0KK+2ZqeyYgeyYpQ0KK+2ZqeydgOyyoA0KK+2Zqe2ZjeyekA0KK+2ZqeyEoOybhQ0KK+2ZqeycoOyInA0KK+2ZqeyXsO2VnA0KK+2ZqeyerOyYpA0KK+2ZqeyEoOy2nA0KK+2ZqeyGjO2ZmA0KK+2ZqeustOq4sA0KK+2Zqe2DnOynhA0KK+2ZqeyEoO2ZjQ0KK+2ZqeyEuOyEoA0KK+2ZqeyYge2WpQ0KK+2Zqeu0ieyInA0KK+2ZqeyEseq3nA0KK+2ZqeygleuegA0KK+2ZqeyduOyLpA0KK+2ZqeyYpeyasQ0KK+2ZqeyEseq3vA0KK+2ZqeyerOyWkQ0KK+2ZqeunkOyjvA0KK+2ZqeyaqeyihQ0KK+2ZqeyEse2DnA0KK+2ZqeuFuOuLuQ0KK+2ZqeywveyIoA0KK+2ZqeyerOybkA0KK+2ZqeyGjO2YuA0KK+2ZqeuPme2DnA0KK+2Zqeq3vOq4uA0KK+2ZqeuzteyaqQ0KK+2ZqeyImOq3vA0KK+2ZqeygkO2WiQ0KK+2ZqeywqOu0iQ0KK+2ZqeygleyasA0KK+2ZqeyImOywrA0KK+2Zqe2DnO2DnQ0KK+2ZqeyDgeyXtA0KK+2ZqeycpOuLqA0KK+2ZqeyImeyekA0KK+2ZqeyYge2YuA0KK+2ZqeyEseyerA0KK+2ZqeyYgeq3nA0KK+2ZqeyInOq3nA0KK+2Zqe2YhOyaqQ0KK+2ZqeygleyaqQ0KK+2ZqeyaqeyImA0KK+2ZqeyInOyhsA0KK+2ZqeywveqwgQ0KK+2ZqeywveykgA0KK+2ZqeyYgeqwkQ0KK+2ZqeyLnOyyoA0KK+2ZqeyYpeyImQ0KK+2ZqeyEoOq1kA0KK+2Zqe2YhOq4sA0KK+2ZqeyYgeq1rQ0KK+2ZqeyiheuqqA0KK+2ZqeyYgeq0gA0KK+2ZqeyYpeq1rA0KK+2ZqeyYgeq1rQ0KK+2ZqeyaqeulnA0KK+2Zqeygle2ZmA0KK+2ZqeyngOyDgQ0KK+2ZqeyYgeq3nA0KK+2ZqeybkOujoQ0KK+2Zqeq4uO2drA0KK+2ZqeygleyduA0KK+2ZqeyYgeq4uA0KK+2ZqeynhOq3vA0KK+2ZqeyEseyatA0KK+2ZqeyDgeyEoA0KK+2ZqeyYgeusuA0KK+2ZqeustO2ZmA0KK+2ZqeycpOykgA0KK+2ZqeyYpeyglQ0KK+2ZqeyYgeyEoA0KK+2Zqe2DnOuLuQ0KK+2Zqe2ZlOyihQ0KK+2ZqeyerOyehA0KK+2ZqeyYgeyImQ0KK+2Zqe2ZjeyasQ0KK+2Zqeygleq4sA0KK+2Zqeq4iOyImQ0KK+2ZqeyYgeyInA0KK+2Zqeuqhe2XjA0KK+2ZqeyYpeyInA0KK+2ZqeyiheyYgQ0KK+2ZqeyYgeyerA0KK+2ZqeyerOybkA0KK+2ZqeybkOq4sA0KK+2ZqeyngOyEnQ0KK+2ZqeyYge2MlA0KK+2ZqeyYgeyLnQ0KK+2ZqeyYgeq4uA0KK+2Zqeyaqe2YuA0KK+2ZqeyYge2YuA0KK+2ZqeywveuLrA0KK+2ZqeyEseydgA0KK+2ZqeyCvO2YuA0KK+2ZqeyYge2ZmA0KK+2Zqeuqhe2YuA0KK+2Zqe2dpeyyoA0KK+2Zqeq1kOu2hA0KK+2ZqeyYpOynhA0KK+2Zqe2ZjeywqA0KK+2ZqeuLrOq3nA0KK+2ZqeydvOqyvQ0KK+2ZqeyYpe2drA0KK+2ZqeyImOyEnQ0KK+2ZqeyjvOyLnQ0KK+2ZqeyatOuPmQ0KK+2ZqeyaqeuMgA0KK+2ZqeyDgeyekA0KK+2Zqey5oOuPmQ0KK+2ZqeyEseyyoA0KK+2ZqeyaqeyepQ0KK+2ZqeuzkeyEuA0KK+2ZqeydmOyInA0KK+2ZqeuqheuwsA0KK+2Zqeyaqe2VmQ0KK+2ZqeyGjOyduA0KK+2ZqeuzkeuPjA0KK+2ZqeyCvOyatA0KK+2ZqeybkOydtA0KK+2ZqeyYge2drA0KK+2Zqeq4iO2RnA0KK+2ZqeuzkeyEnQ0KK+2ZqeybkOykgA0KK+2Zqeq0keyEnQ0KK+2Zqeygle2VmQ0KK+2Zqe2cmO2YuA0KK+2ZqeybkO2VmQ0KK+2ZqeyYgeqzpA0KK+2ZqeygleuNlQ0KK+2ZqeqzhOyerA0KK+2ZqeycpOyEnQ0KK+2ZqeyaqeyYpA0KK+2Zqeuzkeu0iQ0KK+2ZqeustOyXtA0KK+2ZqeydhOyIoA0KK+2ZqeyynOyImA0KK+2ZqeynhO2ZmA0KK+2ZqeyYge2YuA0KK+2ZqeydkeuztQ0KK+2Zqey2mO2drA0KK+2ZqeyImOyImA0KK+2ZqeuPmeq3vA0KK+2ZqeydmOyYgQ0KK+2ZqeyYgeyEoA0KK+2ZqeyerOuMgA0KK+2ZqeyEseuhnQ0KK+2ZqeydmOy2nA0KK+2ZqeyEneyImQ0KK+2ZqeuzkeydvA0KK+2ZqeyiheyynA0KK+2ZqeydmO2biA0KK+2ZqeyerO2VnA0KK+2ZqeyasO2YuA0KK+2Zqeywve2YhA0KK+2ZqeydtOyyoA0KK+2Zqe2DnOuNlQ0KK+2ZqeyDgeq3oA0KK+2Zqeq3nOyLnQ0KK+2ZqeyduOuNlQ0KK+2ZqeyatOy2nA0KK+2ZqeygleycqA0KK+2ZqeyYgeyInA0KK+2ZqeyduOu0iQ0KK+2ZqeydtOyImQ0KK+2ZqeuzkeyXsA0KK+2ZqeyerOq2jA0KK+2ZqeyduOy2nA0KK+2ZqeyKue2VmQ0KK+2ZqeyCvO2drA0KK+2ZqeuMgO2DnA0KK+2ZqeydvOq1rA0KK+2ZqeqwkeybhQ0KK+2Zqe2VnOyggQ0KK+2ZqeyyoOq4sA0KK+2ZqeydvOyEoA0KK+2Zqeq3nOyLnQ0KK+2ZqeycpOyYgQ0KK+2ZqeydmO2ZmA0KK+2ZqeydvOy2nA0KK+2ZqeyGjOyEoA0KK+2ZqeustOuylA0KK+2ZqeyYge2RnA0KK+2ZqeyerOuztQ0KK+2ZqeuzteyaqQ0KK+2ZqeyYgeuNlQ0KK+2ZqeyiheyLnQ0KK+2ZqeyerOyImA0KK+2ZqeqyveynhA0KK+2ZqeydvOyhsA0KK+2ZqeyEuOyaqQ0KK+2ZqeyerOyaqQ0KK+2ZqeyjvOq1kA0KK+2Zqeu2gOyImQ0KK+2ZqeustOyyoA0KK+2ZqeyerOydmA0KK+2ZqeuPmeyglQ0KK+2ZqSDsi50NCivtmanrj5nsiJgNCivtmansnqzssqANCivtmansnoTrgqgNCivtmansg4HtlZwNCivtmanri6zrrLgNCivtmansnqztlZkNCivtmanrj5nsiJwNCivtmantl4zsiKANCivtmantlZnrgqgNCivtmansnqztmLgNCivtmansnYTrnpENCivtmantg5zquIgNCivtmansm4XtmIQNCivtmansoJXqs6QNCivtmanquLDsiJgNCivtmansooXshKANCivtmantj4ntg50NCivtmansoJXrtIkNCivtmansnqzsoJwNCivtmantg5zsiJwNCivtmansnbjspJENCivtmansoJXsiJgNCivtmansmrDsmrANCivtmanqsr3qta0NCivtmantmanssqANCivtmansoJXsiJgNCivtmansm5Tri6wNCivtmanrrLjsobANCivtmansooXtnawNCivtmansoJXtmZgNCivtmantmqjtmY0NCivtmanrsLDtmZgNCivtmantnazrp4wNCivtmansooXqtawNCivtmansmYTqt7wNCivtmantlbTrp4wNCivtmansnqztmIQNCivtmansooXrjZUNCivtmansgrzshJ0NCivtmansl7Dsg4ENCivtmansnbjroKgNCivtmansooXshJ0NCivtmansiJjqtIANCivtmantg5zsiJgNCivtmansnZjsmqkNCivtmansooXsnKQNCivtmansmIHqt7wNCivtmanssL3qsr0NCivtmanrrLjsiKANCivtmansooXsnbwNCivtmanqt5zslYQNCivtmansmIHslrgNCivtmakg64+ZDQor7Zmp7KKF7LKgDQor7Zmp7JuQ64+ZDQor7Zmp6riI7IiYDQor7Zmp7KCV66y4DQor7Zmp7KeA7LacDQor7Zmp7KCc7JuFDQor7Zmp7ZiE7LaYDQor7Zmp7J6s7JiBDQor7Zmp7KeE7Zi4DQor7Zmp7KeE6riwDQor7Zmp7IS47ZiEDQor7Zmp6ri47KeEDQor7Zmp7KeE7ZmYDQor7Zmp7JiB7LKgDQor7Zmp7Zqo67CwDQor7Zmp7LCo7JqwDQor7Zmp7LC96recDQor7Zmp7YOc6regDQor7Zmp7Jq06rWsDQor7Zmp6rK97IS4DQor7Zmp7LC97IiYDQor7Zmp7LKt7ISxDQor7Zmp6riw7JWUDQor7Zmp6rec7IiZDQor7Zmp7LC97J21DQor7Zmp7KKF7IudDQor7Zmp7J207JqwDQor7Zmp64yA7LacDQor7Zmp7LKc6recDQor7Zmp7Jqp6rWtDQor7Zmp67OR7LaYDQor7Zmp7JiB7IiZDQor7Zmp7LKg6rCRDQor7Zmp7JiB7IiYDQor7Zmp7YOc7ISgDQor7Zmp7Kad7ZmYDQor7Zmp7LKg64+EDQor7Zmp7LKg7JqwDQor7Zmp7ISx7YOcDQor7Zmp7KKF7IiZDQor7Zmp7LKt7IicDQor7Zmp7Jqp7JqpDQor7Zmp66+86rWsDQor7Zmp7Iic7IiYDQor7Zmp7YOc6riIDQor7Zmp7LC97JWgDQor7Zmp7Zi46riwDQor7Zmp7LKc6rWsDQor7Zmp7YOc7JilDQor7Zmp7YOc7IiYDQor7Zmp7LaY7Z2sDQor7Zmp7JuQ7KGwDQor7Zmp7YOc7JuQDQor7Zmp7J6l7JiBDQor7Zmp7Iah7IudDQor7Zmp7YOc7YOcDQor7Zmp7ZWE7ISgDQor7Zmp7JiB7Je0DQor7Zmp6rK964+EDQor7Zmp7Jqp64+ZDQor7Zmp7ZWE7ISxDQor7Zmp7Lap7ZmYDQor7Zmp7JiB7ZiEDQor7Zmp7Z2s7ZeMDQor7Zmp7ZWE7IiYDQor7Zmp7J6s7J6QDQor7Zmp7ISx6recDQor7Zmp7Jyk7KGwDQor7Zmp7ZWc6recDQor7Zmp7Iic6raMDQor7Zmp6rSA7JqpDQor7Zmp6rWQ7Z2sDQor7Zmp7ZiB7KO8DQor7Zmp67OR7LacDQor7Zmp7ZiE6rCRDQor7Zmp64us7J20DQor7Zmp7ZiE6rWsDQor7Zmp7J247ISgDQor7Zmp64KZ7IiYDQor7Zmp7KCV7ZiEDQor7Zmp7Zqo7JiBDQor7Zmp7IiY7Zi4DQor7Zmp66eQ7YOdDQor7Zmp7JiB6recDQor7Zmp7Z2s7J6QDQor7Zmp7YOc7ZmNDQor7Zmp7IOB7IudDQor7Zmp7J6s7IiYDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0xhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcyNDM4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19MYXRpbi50eHQKQEAgLTAsMCArMSw3NjExIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK0FhY2hlbiwgSGFucyB2b24NCitBYWx0bywgQWx2YXINCitBYmFrYW5vd2ljeiwgTWFnZGFsZW5hDQorQWJhcXVlc25lLCBNYXNzw6lvdA0KK0FiYmFzaSwgUml6YS1pDQorQWJiZXksIEVkd2luIEF1c3Rpbg0KK0FiYm90dCwgQmVyZW5pY2UNCitBYmJvdHQsIExlbXVlbCBGcmFuY2lzDQorQSdCZWNrZXQsIE1hcmlhDQorQWJlbCBkZSBQdWpvbA0KK0FiZXJjcm9tYmllLCBHZXJ0cnVkZQ0KK0FiZXl0YSwgVG9ueQ0KK0FiaWxkZ2FhcmQsIE5pY29sYWkNCitBYnJhaGFtcywgSXZvcg0KK0FicmFoYW1zb24sIE1hcmsNCitBYnJhbW93aXR6LCBBbGJlcnQNCitBY2NhcmRpLCBDYXJsYQ0KK0FjY29uY2ksIFZpdG8NCitBY2hlbmJhY2gsIEFuZHJlYXMNCitBY2hlbmJhY2gsIE9zd2FsZA0KK0FjaGlsbGVzIFBhaW50ZXIsIFRoZQ0KK0Fjb3JkLCBKYW1lcw0KK0FkYW0sIExhbWJlcnQtU2lnaXNiZXJ0DQorQWRhbSwgUm9iZXJ0DQorQWRhbXMsIEFuc2VsDQorQWRhbXMsIEhlcmJlcnQNCitBZGFtcywgSm9obiBPdHRpcw0KK0FkYW1zLCBKb2huIFdvbGNvdHQNCitBZGFtcywgUm9iZXJ0DQorQWRhbXMsIFdheW1hbg0KK0FkZGVyc29uLCBXYWx0ZXINCitBZGVzaGluYSwgQWdib25iaW9mZQ0KK0Fkb21laXQsIEdlb3JnZQ0KK0Fkc2hlYWQsIE1hcnkNCitBZWxzdCwgUGlldGVyIENvZWNrZSB2YW4NCitBZWxzdCwgV2lsbGVtIHZhbg0KK0FlcnRzZW4sIFBpZXRlcg0KK0FmZmVjdGVyLCBUaGUNCitBZ2FtLCBZYWFjb3YNCitBZ2FyLCBFaWxlZW4NCitBZ2Fzc2UsIEphY3F1ZXMtTGF1cmVudA0KK0FnZ2VyLCBLbnVkDQorQWdvc3Rpbm8gZGVpIE11c2kNCitBZ29zdGlubyBkaSBEdWNjaW8NCitBZ29zdGlubyBkaSBHaW92YW5uaQ0KK0Fnb3N0aW5vIFZlbmV6aWFubw0KK0FncmFzb3QgeSBKdWFuLCBKb2FxdcOtbg0KK0FpcsOyLCBNYXJpbw0KK0FpdmF6b3Zza3ksIEl2YW4NCitBam1vbmUsIEdpdXNlcHBlDQorQWthZ2F3YSwgS2luamkNCitBa2VsZXksIENhcmwgRXRoYW4NCitBa2VycywgQmVuamFtaW4gUGF1bA0KK0FsYmFuaSwgRnJhbmNlc2NvDQorQWxiYXJlbGxpLCBKYWNvcG8NCitBbGJlcmdoZXR0aSBJLCBHaW92YW5uaQ0KK0FsYmVycywgQW5uaQ0KK0FsYmVycywgSm9zZWYNCitBbGJlcnRpLCBDaGVydWJpbm8NCitBbGJlcnRpLCBHaW92YW5uaQ0KK0FsYmVydGksIExlb24gQmFwdGlzdGENCitBbGJlcnRpbmVsbGksIE1hcmlvdHRvDQorQWxicmlnaHQsIEl2YW4NCitBbGJyaXppbywgQ29ucmFkDQorQWxjYWluIFBhcnRlYXJyb3lvLCBBbGZyZWRvDQorQWxjb2xlYSwgQ2FybG9zIEdhcmPDrWENCitBbGRlZ3JldmVyLCBIZWlucmljaA0KK0FsZWNoaW5za3ksIFBpZXJyZQ0KK0FsZW4sIFdpbGxpYW0gVmFuDQorQWxleGFuZGVyLCBGcmFuY2lzDQorQWxleGFuZGVyLCBKb2huIFdoaXRlDQorQWxleGFuZGVyLCBXaWxsaWFtDQorQWxmYW5vLCBDYXJsbw0KK0FsZmFybywgQW5kcmV1DQorQWxnYXJkaSwgQWxlc3NhbmRybw0KK0FsaSBpYm4gTXVoaGFtYWQNCitBbGksIE1paHINCitBbGlrYXR1a3R1aywgVGhvbWFzaWUNCitBbGluYXJpLCBGcmF0ZWxsaQ0KK0FsaW5hcmksIEdpdXNlcHBlDQorQWxrZW4gU3IuLCBTYW11ZWwNCitBbGtlbiwgSGVucnkgVGhvbWFzDQorQWxsYW4sIERhdmlkDQorQWxsYW4sIFdpbGxpYW0NCitBbGxlZ3JhaW4sIEdhYnJpZWwNCitBbGxlbiwgQW5uZQ0KK0FsbGVuLCBBbm5lIEh1bnRpbmd0b24NCitBbGxlbiwgRG91Z2xhcw0KK0FsbGVuLCBHcmV0YQ0KK0FsbGVuLCBNYXJpb24gQm95ZA0KK0FsbGVuLCBNYXJ5IENlY2lsDQorQWxsZW4sIFRlcnJ5DQorQWxsaW5naGFtLCBIZWxlbg0KK0FsbGluZ3RvbiwgRWR3YXJkDQorQWxsb3JpLCBBbGVzc2FuZHJvDQorQWxsb3JpLCBDcmlzdG9mYW5vDQorQWxsc3RvbiwgV2FzaGluZ3Rvbg0KK0FsbWEtVGFkZW1hLCBMYXVyYQ0KK0FsbWEtVGFkZW1hLCBTaXIgTGF3cmVuY2UNCitBbG1laWRhIErDum5pb3IsIEpvc8OpIEZlcnJheiBkZQ0KK0FscGVybiwgUmFtaQ0KK0FscywgUGVkZXINCitBbHNsb290LCBEZW55cyB2YW4NCitBbHQsIEpha29iDQorQWx0LCBPdG1hcg0KK0FsdGRvcmZlciwgQWxicmVjaHQNCitBbHRpY2hpZXJvDQorQWx0c29uLCBBYnkNCitBbHZhIGRlIGxhIENhbmFsLCBSYW3Ds24NCitBbHZhcmV6IEJyYXZvLCBNYW51ZWwNCitBbHZhcmV6LCBNYWJlbA0KK0FtYWRlbywgR2lvdmFubmkgQW50b25pbw0KK0FtYW4tSmVhbiwgRWRtb25kLUZyYW7Dp29pcw0KK0FtYW50ZWEsIE5pY2hvbGFzDQorQW1hcmFsLCBBbnTDtG5pbyBIZW5yaXF1ZQ0KK0FtYXJhbCwgVGFyc2lsYSBkbw0KK0FtYXNpcyBQYWludGVyLCBUaGUNCitBbWF1cnktRHV2YWwsIEV1Z8OobmUtRW1tYW51ZWwNCitBbWJlcmdlciwgQ2hyaXN0b3BoDQorQW1lbm9mZiwgR3JlZ29yeQ0KK0FtaWNvbmksIEdpYWNvbW8NCitBbWl0dHUsIERhdmlkaWFsdWsgQWxhc2thDQorQW1tYW4sIEpvc3QNCitBbW1hbmF0aSwgQmFydG9sb21tZW8NCitBbiBIZQ0KK0FuY2hlciwgQW5uYQ0KK0FuY2hlciwgTWljaGFlbA0KK0FuY2hpLCBLYWlnZXRzdWRvDQorQW5kZXJlZ2csIFdlc2xleQ0KK0FuZGVyc2VuLCBNb2dlbnMNCitBbmRlcnNvbiwgQ2FybG9zDQorQW5kZXJzb24sIEdvcmRvbg0KK0FuZGVyc29uLCBKLg0KK0FuZGVyc29uLCBSdXRoIEEuDQorQW5kZXJzb24sIFNvcGhpZQ0KK0FuZGVyc29uLCBTdGFubGV5DQorQW5kb2tpZGVzDQorQW5kcmUsIENhcmwNCitBbmRyZWEgZGEgRmlyZW56ZQ0KK0FuZHJlYSBkZWwgQ2FzdGFnbm8NCitBbmRyZWEgZGVsIFNhcnRvDQorQW5kcmVhIGRpIEJhcnRvbG8NCitBbmRyZWEsIFpvYW4NCitBbmRyZWFuaSwgQW5kcmUNCitBbmRyZW90dGksIExpYmVybw0KK0FuZHLDqXMgZGUgTsOhamVyYQ0KK0FuZHJlc29uLCBDYXJsb3MNCitBbmRyZXdzLCBCZW5ueQ0KK0FuZHJld3MsIFN5YmlsDQorQW5kcmlldSwgUGllcnJlDQorQW5kcnVzLCBCYXJiYXJhDQorQW5nZWwsIEFicmFoYW0NCitBbmdlbGksIEdpdXNlcHBlDQorQW5nZWxpLCBIZWlucmljaCB2b24NCitBbmdlbGljbywgRnJhDQorQW5nZWxsaXMsIFBldGVyDQorQW5nbGFkYS1DYW1hcmFzYSwgSGVybWVuZWdpbGRvDQorQW5ndWlhbm8gVmFsYWRleiwgUmHDumwNCitBbmd1aWVyLCBGcmFuw6dvaXMNCitBbmd1aWVyLCBNaWNoZWwNCitBbmd1aXNzb2xhLCBMdWNpYQ0KK0FuZ3Vpc3NvbGEsIFNvZm9uaXNiYQ0KK0Fua2VyLCBBbGJlcnQNCitBbm5lc2xleSwgRGF2aWQNCitBbnF1ZXRpbiwgTG91aXMNCitBbnJhYWR0LCBQaWV0ZXIgdmFuDQorQW5zZWxtaSwgTWljaGVsYW5nZWxvDQorQW5zZWxtbyBkYSBDYW1waW9uZQ0KK0Fuc2VsbW8sIEdpb3Zhbm5pDQorQW5zaHV0eiwgVGhvbWFzDQorQW50ZWxhbWksIEJlbmVkZXR0bw0KK0FudGljbw0KK0FudGlnbmEsIEFsZXhhbmRyZQ0KK0FudGltZW5lcyBQYWludGVyDQorQW50b2zDrW5leiwgSm9zw6kgQ2xhdWRpbw0KK0FudG9uYWtvcywgU3RlcGhlbg0KK0FudG9uZWxsbyBkYSBNZXNzaW5hDQorQW50b25lbGxvIGRlIFNhbGliYQ0KK0FudG9uaW8gZGEgRmFicmlhbm8NCitBbnRyZWFzaWFuLCBHYXJvIFphcmVoDQorQW50cm9wb3YsIEFsZWtzZWkNCitBbnTDum5leiwgTmVtZXNpbw0KK0FudXN6a2lld2ljeiwgUmljaGFyZA0KK0Fvbm8sIEtyaXN0aW5lIFl1a2kNCitBcGFyaWNpbywgSm9zw6kNCitBcG9ub3ZpY2gsIEphbWVzDQorQXBwZWwsIEthcmVsDQorQXBwaWFuLCBBZG9scGhlDQorQXBwaWFuaSwgQW5kcmVhDQorQXBwbGVicm9vZywgSWRhDQorQXB0IHRoZSBFbGRlciwgVWxyaWNoDQorQXJhZ29uLCBKb3NlDQorQXJhaSwgSnVuaWNoaQ0KK0FyYWthd2EsIFNodXNha3UNCitBcmFsZGksIEFsZXNzYW5kcm8NCitBcmJ1cywgRGlhbmUNCitBcmNoZXIsIEphbWVzDQorQXJjaGlwZW5rbywgQWxleGFuZGVyDQorQXJjaHVsZXRhLCBGZWxpcGUNCitBcmNpbWJvbGRvLCBHaXVzZXBwZQ0KK0FyZGVuLCBSb3kNCitBcmRvbiwgTW9yZGVjYWkNCitBcmVsbGFubywgSnVhbiBkZQ0KK0FyZW50c3ouLCBBcmVudA0KK0FyZ3Vub3YsIEl2YW4gUGV0cm92aWNoDQorQXJpa2hhLCBBdmlnZG9yDQorQXJpc21hbiwgTWFyc2hhbGwNCitBcm1hamFuaSwgU2lhaA0KK0FybWFuDQorQXJtZmllbGQsIE1heHdlbGwNCitBcm1pdGFnZSwgRWR3YXJkDQorQXJtaXRhZ2UsIEtlbm5ldGgNCitBcm1zLCBKb2huIFRheWxvcg0KK0FybXN0ZWFkLCBIZW5yeSBIdWdoDQorQXJtc3Ryb25nLCBEYXZpZCBNYWl0bGFuZA0KK0FybXN0cm9uZywgSWFuDQorQXJtc3Ryb25nLCBKb2huDQorQXJtc3Ryb25nLCBXaWxsaWFtDQorQXJuYWxkLCBHZW9yZ2UNCitBcm5lc29uLCBSb2JlcnQNCitBcm5vbGQsIEFkZW4NCitBcm5vbGRpLCBBbGJlcnRvDQorQXJub2xmbyBkaSBDYW1iaW8NCitBcm5vdWxkLCBKZWFuDQorQXJwLCBKZWFuDQorQXJyb3lvLCBFZHVhcmRvDQorQXJ0IGFuZCBMYW5ndWFnZQ0KK0FydGF1ZCwgV2lsbGlhbQ0KK0FydHNjaHdhZ2VyLCBSaWNoYXJkDQorQXJ2aWxsYW5kDQorQXNhbSwgRWdpZCBRdWlyaW4NCitBc2FtLCBLb3NtYXMgRGFtaWFuDQorQXNoLCBTYW0NCitBc2hlciwgTWljaGFlbA0KK0FzaGV2YWssIEtlbm9qdWFrDQorQXNoZXZhaywgVG9tbXkNCitBc2hvb25hLCBLYWthDQorQXNob29uYSwgS2lhd2FrDQorQXNob29uYSwgUGl0c2VvbGFrDQorQXNodG9uLCBKdWxpYW4NCitBc2lucyBSb2RyaWd1ZXosIEVsZW5hDQorQXNwZXJ0aW5pLCBBbWljbw0KK0FzcGV0dGksIFRpemlhbm8NCitBc3NhZWwsIFN0ZXZlbg0KK0Fzc2VseW4sIEphbg0KK0Fzc2VyZXRvLCBHaW9hY2NoaW5vDQorQXNzbGVyLCBGZWRlcmljbw0KK0FzdCwgQmFsdGhhc2FyIHZhbiBkZXINCitBc3RlYXMNCitBc3RydWMsIFphY2hhcmllDQorQXRjaGVhbGFrLCBEYXZpZQ0KK0F0Z2V0LCBFdWfDqG5lDQorQXRraW5zb24sIEpvaG4gQXVndXN0dXMNCitBdGtpbnNvbiwgVy5FLg0KK0F0a2lzb24sIEdlb3JnZSBBLg0KK0F0bCwgRHIuDQorQXR0YXZhbnRlIERlZ2xpIEF0dGF2YW50aQ0KK0F1ZHVib24sIEpvaG4gSmFtZXMNCitBdWR1Ym9uLCBKb2huIFdvb2Rob3VzZQ0KK0F1ZXJiYWNoLCBGcmFuaw0KK0F1ZXJiYWNoLUxldnksIFdpbGxpYW0NCitBdWd1aW4sIExvdWlzLUF1Z3VzdGluDQorQXVndXN0ZSwgUm9iZXJ0LUpvc2VwaA0KK0F1bHQsIEdlb3JnZQ0KK0F1bW9uaWVyLCBKYW1lcw0KK0F1c3RpbiwgRGFycmVsDQorQXV0aW8sIExlbGENCitBdXRpbywgUnVkeQ0KK0F2ZWQsIEphY3F1ZXMtQW5kcsOpLUpvc2VwaA0KK0F2ZWRvbiwgUmljaGFyZA0KK0F2ZWxsaSwgRnJhbmNlc2NvIFhhbnRvDQorQXZlcmNhbXAsIEhlbmRyaWNrDQorQXZlcnksIE1pbHRvbg0KK0F3YWx0LCBFbGl6YWJldGgNCitBeWxlc2ZvcmQsIEhlbmVhZ2UgRmluY2gsIEZpZnRoIEVhcmwgb2YNCitBeWxlc2ZvcmQsIEhlbmVhZ2UgRmluY2gsIEZvdXJ0aCBFYXJsIG9mDQorQXktTw0KK0F5cnRvbiwgTWljaGFlbA0KK0F6YWNldGEsIEx1aXMgQ3J1eg0KK0JhYnVyZW4sIERpcmNrIHZhbg0KK0JhY2NoaWFjY2EsIEZyYW5jZXNjbw0KK0JhY2NpYXJlbGxpLCBNYXJjZWxsbw0KK0JhY2hhciwgSm9zZXBoDQorQmFjaGVyLCBPdHRvIEhlbnJ5DQorQmFjaHJvZHQsIFNhcmFoDQorQmFjaWNjaW8sIElsDQorQmFja2VyLCBKYWNvYiBBZHJpYWVuc3ouDQorQmFja2h1eXNlbiwgTHVkb2xmDQorQmFjb24sIEZyYW5jaXMNCitCYWNvbiwgSGVucnkNCitCYWNvbiwgSm9obiBIZW5yeSBGLg0KK0JhY29uLCBQZWdneQ0KK0JhY29uLCBTaXIgTmF0aGFuaWVsDQorQmFkYSBTaGFucmVuDQorQmFkYWxvY2NoaW8sIFNpc3RvDQorQmFkZ2VyLCBKb3NlcGgNCitCYWVjaGxlciwgRG9uYWxkDQorQmFlZGVyLCBKb2huDQorQmFlbiwgSmFuIGRlDQorQmFlciwgR2VvcmdlDQorQmFnZywgSGVucnkgSG93YXJkDQorQmFnbGlvbmUsIEdpb3Zhbm5pDQorQmFnbm9saSwgTWFyY28NCitCYWlpdHN1LCBZYW1hbW90bw0KK0JhaWxleSwgUm9nZXINCitCYWlsZXksIFdpbGxpYW0NCitCYWlsbGFpcmfDqSwgRnJhbsOnb2lzDQorQmFpbGx5LCBEYXZpZA0KK0JhaXplcm1hbiwgU2F1bA0KK0Jha2VyLCBXaWxsaWFtIEJsaXNzDQorQmFrc3QsIExlb24NCitCYWxkZXNzYXJpLCBKb2huDQorQmFsZG92aW5ldHRpLCBBbGVzc2lvDQorQmFsZHJpZGdlLCBDeXJ1cyBMZVJveQ0KK0JhbGR1bmcgR3JpZW4sIEhhbnMNCitCYWxkd2luLCBEb3VnbGFzDQorQmFsZW4sIEhlbmRyaWNrIHZhbg0KK0JhbGVzdHJhLCBBbnRvbmlvDQorQmFsbCwgQWxpY2UgV29ydGhpbmd0b24NCitCYWxsLCBUaG9tYXMNCitCYWxsYSwgR2lhY29tbw0KK0JhbGxpbmcsIE9sZSBQZXRlciBIYW5zZW4NCitCYWxsb3R0YSwgUGV0ZQ0KK0JhbG1lcywgSm9zw6kNCitCYWxzb24sIFJhbHBoDQorQmFsdGh1cw0KK0JhbHRpbW9yZSBQYWludGVyLCBUaGUNCitCYWx6YWMsIEFsYWluDQorQmFsemFjLCBFZG1lLVBpZXJyZQ0KK0JhbWEsIEphbWVzDQorQmFtYmFpYQ0KK0JhbmRlaXJhLCBBbnTDtG5pbw0KK0JhbmRpbmVsbGksIEJhY2Npbw0KK0JhbmRpbmksIEdpb3Zhbm5pDQorQmFua3MsIE1lbA0KK0Jhbm5lcm1hbiwgRnJhbmNlcyBNLiBKb25lcw0KK0Jhbm5pc3RlciwgRWR3YXJkIE0uDQorQmFwc3QsIEV2cmFyZA0KK0JhcHRpc3RhLCBNYXJjaWFubw0KK0JhcmFiw6FzLCBNaWtsw7NzDQorQmFyYWssIFdpbGxpYW0NCitCYXJhbmVrLCBGcmlkYQ0KK0JhcmFub2ZmLVJvc3NpbmUsIFdsYWRpbWlyDQorQmFyYmUNCitCYXJiZXJpLCBHaXVzZXBwZQ0KK0JhcmJldCwgSmVhbg0KK0JhcmJvdXIsIENhcmwNCitCYXJjaHVzLCBFbGl6YSBSb3Nhbm5hDQorQmFyZCwgSmFtZXMNCitCYXJkLCBKb2huDQorQmFyZW5nZXIsIEphbWVzDQorQmFyZ3VlLCBDaGFybGVzDQorQmFyaXNhbmksIFJlbmF0bw0KK0JhcmlzYW5vIGRhIFRyYW5pDQorQmFya2VyIG9mIEJhdGgsIFRob21hcw0KK0JhcmtlciwgQWxiZXJ0IFdpbnNsb3cNCitCYXJrZXIsIENsaXZlDQorQmFya2VyLCBNYXJnYXJldA0KK0JhcmtlciwgV3JpZ2h0DQorQmFybGFjaCwgRXJuc3QNCitCYXJsb3csIEZyYW5jaXMNCitCYXJuYSBkYSBTaWVuYQ0KK0Jhcm5hcmQsIFJldi4gV2lsbGlhbSBIZW5yeQ0KK0Jhcm5lcywgRXJuaWUNCitCYXJuZXQsIFdpbGwNCitCYXJuZXksIE1hdHRoZXcNCitCYXJuc2xleSwgSi5NLg0KK0Jhcm9jY2ksIEZlZGVyaWNvDQorQmFycmFkYXMsIFJhZmFlbA0KK0JhcnJhdWQsIEhlbnJ5DQorQmFycmF1ZCwgV2lsbGlhbQ0KK0JhcnJldCBKci4sIEdlb3JnZQ0KK0JhcnJldCBTci4sIEdlb3JnZQ0KK0JhcnJldHQsIEJpbGwNCitCYXJyaWFzLCBMb3Vpcy1Fcm5lc3QNCitCYXJyaW9zLCBHcmFjaWENCitCYXJyb24sIEh1Z2gNCitCYXJyb24sIFJvbg0KK0JhcnJvdywgSm9zZXBoIENoYXJsZXMNCitCYXJyeSwgQW5uZSBNZXJlZGl0aA0KK0JhcnJ5LCBKYW1lcw0KK0JhcnJ5LCBXaWxsaWFtIEdlcmFyZA0KK0JhcnNvdHRpLCBIw6lyY3VsZXMNCitCYXJ0aGVsLCBNZWxjaGlvcnJlDQorQmFydGhvbGRpLCBGcsOpZMOpcmljLUF1Z3VzdGUNCitCYXJ0aG9sb21lDQorQmFydGxlLCBTYXJhIE5vcndvb2QNCitCYXJ0bGV0dCwgQm8NCitCYXJ0bGV0dCwgSmVubmlmZXINCitCYXJ0b2xpbmksIExvcmVuem8NCitCYXJ0b2xvIGRpIEZyZWRpDQorQmFydG9sb21lbyBkYSBCcmVzY2lhDQorQmFydG9sb21lbyBkaSBHaW92YW5uaQ0KK0JhcnRvbG9tZW8gVmVuZXRvDQorQmFydG9sb21tZW8sIEZyYQ0KK0JhcnRvbG96emksIEZyYW5jZXNjbw0KK0JhcnksIEhlbmRyaWsNCitCYXJ5ZSwgQW50b2luZS1Mb3Vpcw0KK0Jhc2FpdGksIE1hcmNvDQorQmFzYWxkZWxsYSwgTWlya28NCitCYXNhbiwgUGllcnJlIEZyYW7Dp29pcw0KK0Jhc2NoZW5pcywgRXZhcmlzdG8NCitCYXNlbGl0eiwgR2VvcmcNCitCYXNoa2lydHNlZmYsIE1hcmlhDQorQmFzaXJlLCBKYW1lcw0KK0Jhc2tpbiwgTGVvbmFyZA0KK0Jhc3F1aWF0LCBKZWFuLU1pY2hlbA0KK0Jhc3Nhbm8sIEZyYW5jZXNjbw0KK0Jhc3Nhbm8sIEphY29wbw0KK0Jhc3Nhbm8sIExlYW5kcm8NCitCYXNzZW4sIEJhcnRob2xvbWV1cyB2YW4NCitCYXN0aWFuaSwgTGF6emFybw0KK0Jhc3RpYW5pbmksIEdpb3Zhbm5pDQorQmFzdGllbi1MZXBhZ2UsIEp1bGVzDQorQmF0ZW1hbiAxODQyLTE5MjIsIFJvYmVydA0KK0JhdGVtYW4sIEphbWVzDQorQmF0ZW1hbiwgUm9iZXJ0DQorQmF0ZXMsIERhdmlkDQorQmF0ZXMsIEhhcnJ5DQorQmF0ZXMsIE1heHdlbGwNCitCYXRvbmksIFBvbXBlbw0KK0JhdWRvdWluLCBQaWVycmUtQW50b2luZQ0KK0JhdWRyeSwgUGF1bA0KK0JhdWdpbiwgTHViaW4NCitCYXVtLCBDaGFybGVzDQorQmF1bWFuLCBMZWlsYSBULg0KK0JhdW1hbm4sIEd1c3RhdmUNCitCYXVtYW5uLCBLYXJsDQorQmF1bWVpc3RlciwgV2lsbGkNCitCYXVtZ2FydGVuLCBMb3RoYXINCitCYXVtZ2FydG5lciwgUGV0ZXINCitCYXdkZW4sIEVkd2FyZA0KK0JheHRlciwgR2VvcmdlDQorQmF4dGVyLCBUaG9tYXMgVGVubmFudA0KK0JheWV1IHkgU3Viw61hcywgRnJhbmNpc2NvDQorQmF5ZXUsIFJhbW9uDQorQmF6aWNhbHV2YSwgRXJjb2xlDQorQmF6aWxsZSwgRnLDqWTDqXJpYw0KK0JhemlvdGVzLCBXaWxsaWFtDQorQmF6emFybywgRXJuZXN0bw0KK0JlYWNoLCBUaG9tYXMNCitCZWFsLCBHaWZmb3JkDQorQmVhbCwgSmFjaw0KK0JlYWxlLCBNYXJ5DQorQmVhbGwtU21pdGgsIExhd3JlbmNlDQorQmVhbHMsIEplc3NlIFRhcmJveA0KK0JlYW0sIENhcmwNCitCZWFtLCBNYXJrDQorQmVhbiwgQ2Fyb2xpbmUgVmFuIEhvb2sNCitCZWFyZCwgQWRlbGlhIEJlbGxlDQorQmVhcmQsIFJpY2hhcmQNCitCZWFyZCwgV2lsbGlhbSBIb2xicm9vaw0KK0JlYXJkZW4sIFJvbWFyZQ0KK0JlYXJkc2xleSBMaW1uZXIsIFRoZQ0KK0JlYXJkc2xleSwgQXVicmV5DQorQmVhcmR5LCBKYWNrc29uDQorQmVhcmUsIEdlb3JnZQ0KK0JlYXNsZXksIEJydWNlDQorQmVhdG8sIEZlbGljZSBBLg0KK0JlYXR0eSwgSi5XLg0KK0JlYXVtb250LCBTaXIgR2VvcmdlIEhvd2xhbmQNCitCZWF1bmV2ZXUsIEFuZHLDqQ0KK0JlYXV4LCBDZWNpbGlhDQorQmVjY2FmdW1pLCBEb21lbmljbw0KK0JlY2hlciwgQmVybmhhcmQNCitCZWNoZXIsIEhpbGxhDQorQmVjaHRlbCwgTWVybGluDQorQmVjaHRsZSwgUm9iZXJ0DQorQmVjaywgTGVvbmhhcmQNCitCZWNrZXIsIEZlcmRpbmFuZA0KK0JlY2tlciwgRnJlZA0KK0JlY2tldHQsIENsYXJpY2UNCitCZWNrZXR0LCBGcmFuY2lzIEEuDQorQmVjay1GcmllZG1hbiwgVG92YQ0KK0JlY2ttYW5uLCBNYXgNCitCZWNrd2l0aCwgSmFtZXMgQ2Fycm9sbA0KK0JlZGZvcmQsIEZyYW5jaXMNCitCZWRpYSwgSm9zw6kNCitCZWR3YXNoLCBSaWNoYXJkDQorQmVlY2hleSwgU2lyIFdpbGxpYW0NCitCZWVtLCBPbGl2ZQ0KK0JlZXJib2htLCBTaXIgTWF4DQorQmVlcnMsIEp1bGllIEhhcnQNCitCZWVyc3RyYXRlbiwgSmFuIEFicmFoYW1zei4NCitCZWVydCB0aGUgRWxkZXIsIE9zaWFzDQorQmVnYSwgQ29ybmVsaXMNCitCZWdheSwgSGFycmlzb24NCitCZWdleW4sIEFicmFoYW0NCitCZWhhbSwgQmFydGhlbA0KK0JlaGFtLCBIYW5zIFNlYmFsZA0KK0JlaGxlcywgRWRtdW5kDQorQmVobmVzLCBXaWxsaWFtDQorQmVobmtlLCBMZWlnaA0KK0JlbGJlbGxvIGRhIFBhdmlhDQorQmVsbCwgQ2VjaWwgQy4NCitCZWxsLCBDaGFybGVzDQorQmVsbCwgRWR3YXJkIEEuDQorQmVsbCwgR2VvcmdlDQorQmVsbCwgSGFycmlldA0KK0JlbGwsIEpvaG4gWmVwaGFuaWFoDQorQmVsbCwgS2V2aW4NCitCZWxsLCBMYXJyeQ0KK0JlbGwsIFBldGVyDQorQmVsbCwgVHJldm9yDQorQmVsbCwgVmFuZXNzYQ0KK0JlbGxhbmfDqSwgSGlwcG9seXRlDQorQmVsbGFuZ2UsIEphY3F1ZXMNCitCZWxsYW5vLCBCYXJ0b2xvbWVvDQorQmVsbGUsIEFsZXhpcyBTaW1vbg0KK0JlbGxlY2hvc2UsIEhlbnJpDQorQmVsbGVnYW1iZSwgSmVhbg0KK0JlbGxldHRlLCBKZWFuDQorQmVsbGksIFZhbGVyaW8NCitCZWxsaW5naGFtLVNtaXRoLCBFbGlub3INCitCZWxsaW5pLCBHZW50aWxlDQorQmVsbGluaSwgR2lvdmFubmkNCitCZWxsaW5pLCBKYWNvcG8NCitCZWxsbWVyLCBIYW5zDQorQmVsbG9ndWV0LCBBLg0KK0JlbGxvdHRvLCBCZXJuYXJkbw0KK0JlbGxvd3MsIEFsYmVydCBGaXRjaA0KK0JlbGxvd3MsIEdlb3JnZSBXZXNsZXkNCitCZWxsLVNtaXRoLCBGLk0uDQorQmVsbHVjY2ksIEFudG9uaW8NCitCZW5hZ2xpbywgRnJhbmNlc2NvDQorQmVuYXplY2gsIFBldGVyIFBhdWwNCitCZW5icmlkZ2UsIEhlbnJ5DQorQmVuZHosIFdpbGhlbG0NCitCZW5kenNhLCBTeWx2aWENCitCZW5lZGV0dG8gZGEgTWFpYW5vDQorQmVuZWRldHRvIGRhIFJvdmV6emFubw0KK0JlbmdsaXMsIEx5bmRhDQorQmVubiwgQmVuDQorQmVubmV0dCwgSm9obg0KK0Jlbm5ldHQsIFJhaW5leQ0KK0Jlbm5ldHQsIFdpbGxpYW0gSmFtZXMNCitCZW5uZXksIFJvYmVydA0KK0Jlbm9pcywgQWxla3NhbmRyDQorQmVub2lzLCBOYWRpYQ0KK0Jlbm9pc3QsIE1hcmllLUd1aWxsZW1pbmUNCitCZW5zb24sIEFtYnJvc2l1cw0KK0JlbnNvbiwgRnJhbmsgV2VzdG9uDQorQmVuc29uLCBMZXNsaWUgTGFuZ2lsbGUNCitCZW50aGFtLCBEb3VnbGFzIFdheW5lDQorQmVudG9uLCBGbGV0Y2hlcg0KK0JlbnRvbiwgVGhvbWFzIEhhcnQNCitCZW52ZW51dG8gZGkgR2lvdmFubmkNCitCZW56aWdlciwgQXVndXN0DQorQmVuem9uaSwgR2lvdmFubmkgTWFyaWENCitCw6lyYXVkLCBKZWFuDQorQmVyY2hlbSwgQ2xhZXMNCitCZXJjaGVtLCBOaWNvbGFlcw0KK0JlcmNraGV5ZGUsIEdlcnJpdCBBZHJpYWVuc3ouDQorQmVyY2toZXlkZSwgSm9iDQorQmVyZGFubiwgRWxpemFiZXRoDQorQmVyZywgQWRyaWFuDQorQmVyZ2VyLCBKYWNxdWVzDQorQmVyZ2hhc2gsIE1hcmsNCitCZXJnaGUsIENocmlzdG9mZmVsIHZhbiBkZW4NCitCZXJnbcO8bGxlciwgSm9oYW5uIEdlb3JnDQorQmVyZ25lciwgWW9zbA0KK0JlcmdvZ25vbmUNCitCZXJrZWxleSwgUmV2LiBDLkouUi4NCitCZXJrbWFuLCBDaHJpc3RpbmUNCitCZXJsYW50LCBUb255DQorQmVybGluIFBhaW50ZXIsIFRoZQ0KK0JlcmxpbmdoaWVyaSwgQm9uYXZlbnR1cmENCitCZXJtYW4sIEV1Z2VuZQ0KK0Jlcm1lam8sIEJhcnRvbG9tw6kNCitCZXJuYXJkLCBFbWlsZQ0KK0Jlcm5hcmRpLCBHaW92YW5uaQ0KK0Jlcm5hdCwgTWFydGluDQorQmVybmluZ2hhdXMsIE9zY2FyIEVkbXVuZA0KK0Jlcm5pbmksIEdpYW5sb3JlbnpvDQorQmVybmluaSwgUGlldHJvDQorQmVybnN0ZWluLCBUaGVyZXNhIEZlcmJlcg0KK0LDqXJvdWQsIExvdWlzDQorQmVycnVndWV0ZSwgQWxvbnNvDQorQmVycnVndWV0ZSwgUGVkcm8NCitCZXJyeSwgRGF2aWQNCitCZXJzaGFkLCBIZWxlbg0KK0JlcnRpbiwgw4lkb3VhcmQNCitCZXJ0b2xkbyBkaSBHaW92YW5uaQ0KK0JlcnRyYW5kLCBSYXkNCitCZXJ0cmFuZCwgVmluY2VudA0KK0JlcnR1Y2NpLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0Jlc25hcmQsIEFsYmVydA0KK0Jlc3QgTWF1Z2FyZCwgQWRvbGZvDQorQmV0dGVsaGVpbSwgSm9sYW4gR3Jvc3MNCitCZXR0ZXJhLCBCYXJ0b2xvbWVvDQorQmV0dGVzLCBKb2huDQorQmV0dHMsIExvdWlzDQorQmV1Y2tlbGFlciwgSm9hY2hpbQ0KK0JldWcsIExvcm5lDQorQmV1eXMsIEpvc2VwaA0KK0JldmFuLCBSb2JlcnQNCitCZXZhbiwgVG9ueQ0KK0JleWVyLCBKYW4gZGUNCitCZXllcmVuLCBBYnJhaGFtIEhlbmRyaWNrei4gdmFuDQorQmlhZ2lvIGQnQW50b25pbyBkYSBGaXJlbnplDQorQmlhbmNoaSwgRG9tZW5pY28NCitCaWFyZCwgUGllcnJlDQorQmliaWVuYSwgRmVyZGluYW5kbyBHYWxsaQ0KK0JpYmllbmEsIEZyYW5jZXNjbyBHYWxsaQ0KK0JpYmllbmEsIEdpdXNlcHBlIEdhbGxpDQorQmlja25lbGwsIEZyYW5rDQorQmlkZGxlLCBHZW9yZ2UNCitCaWR1aW5vDQorQmllZGVybWFuLCBDaGFybGVzDQorQmllZ2FzLCBCb2xlc2xhcw0KK0JpZW5uYWlzLCBNYXJ0aW4tR3VpbGxhdW1lDQorQmllcnN0YWR0LCBBbGJlcnQNCitCaWdhcmVsbGksIEd1aWRvDQorQmlnZ2VycywgSm9obg0KK0JpZ2dlcnN0YWZmLCBNeXJhDQorQmlnb3QsIFRyb3BoaW1lDQorQmlndW0sIE1hcnRpbg0KK0JpamxlcnQsIEphbiB2YW4NCitCaWxpbnNrYSwgQW5uYQ0KK0JpbGl2ZXJ0LCBHaW92YW5uaQ0KK0JpbGxlLCBFamxlcg0KK0JpbmNrLCBKYWNvYg0KK0JpbmdoYW0sIEdlb3JnZSBDYWxlYg0KK0Jpbm5pZSwgUGF1bA0KK0JpcmNoLCBDaGFybGVzIEJlbGwNCitCaXJjaCwgVGhvbWFzDQorQmlyY2gsIFdpbGxpYW0gUnVzc2VsbA0KK0JpcmxleSwgU2lyIE9zd2FsZCBIb3JuYnkgSm9zZXBoDQorQmlybmJhdW0sIERhcmENCitCaXJvbGxpLCBSZW5hdG8NCitCaXNjaG9mZiwgRWxtZXINCitCaXNjaG9mZiwgRnJhbnoNCitCaXNob3AsIElzYWJlbA0KK0Jpc29uLCBHaXVzZXBwZSBCZXJuYXJkaW5vDQorQmlzc2Nob3AsIENvcm5lbGlzDQorQmlzc2llciwgSnVsaXVzDQorQmlzc2nDqHJlLCBSb2dlcg0KK0Jpc3NvbG8sIFBpZXIgRnJhbmNlc2NvDQorQmlzdG9sZmksIExlb25hcmRvDQorQml0bmVyLCBSaG9uYQ0KK0JsYWFzLCBFdWdlbmUgZGUNCitCbGFjaywgSGVsZW5lDQorQmxhY2ssIE9saXZlIFBhcmtlcg0KK0JsYWNrYWRkZXIsIEVsaXphYmV0aA0KK0JsYWNrYnVybiwgRWQNCitCbGFja2J1cm4sIEpvc2VwaA0KK0JsYWNrbWFuLCBDaGFybGVzDQorQmxhY2t3ZWxsLCBUb20NCitCbGFja3dvb2QsIERhdmlkDQorQmxhZGVuLCBSb25hbGQNCitCbGFnZywgRGVubmlzDQorQmxhaXItTGVpZ2h0b24sIEVkbXVuZA0KK0JsYWlzLCBOb3JtYW5kDQorQmxha2UsIEppbQ0KK0JsYWtlLCBQZXRlcg0KK0JsYWtlLCBXaWxsaWFtDQorQmxha2Vsb2NrLCBNYXJpYW4NCitCbGFrZWxvY2ssIFJhbHBoIEFsYmVydA0KK0JsYW1leSwgTm9ybWFuDQorQmxhbXBpZWQsIEVkbXVuZA0KK0JsYW5jaGFyZCwgSmFjcXVlcw0KK0JsYW5jaGFyZCwgTWFyw61hDQorQmxhbmNoZSwgSmFjcXVlcy1FbWlsZQ0KK0JsYW5jaGV0LCBMb3Vpcy1HYWJyaWVsDQorQmxhbmQsIEJlYXRyaWNlDQorQmxhcmVuYmVyZ2hlLCBMb3VpcyBOaWNvbGFzIHZhbg0KK0JsYXNoZmllbGQsIEVkd2luIEhvd2xhbmQNCitCbGF1dmVsdCwgQ2hhcmxlcyBGLg0KK0JsZWNoZW4sIENhcmwNCitCbGVja25lciwgUm9zcw0KK0JsZXJ5LCBFdWdlbmUNCitCbGlzcywgRG91Z2xhcyBQZXJjeQ0KK0Jsb2NoLCBBbGJlcnQNCitCbG9jaCwgTHVjaWVubmUNCitCbG9jaCwgTWFydGluDQorQmxvY2ssIEJlbmphbWluDQorQmxvZW1hZXJ0LCBBYnJhaGFtDQorQmxvZW1lbiwgSmFuIEZyYW5zIHZhbg0KK0Jsb25kZWwsIE1lcnJ5LUpvc2VwaA0KK0Jsb29tLCBCYXJiYXJhDQorQmxvdywgU2FuZHJhDQorQmx1ZSBFYWdsZSwgQWNlZQ0KK0JsdWVtbmVyLCBPc2Nhcg0KK0JsdWhtLCBOb3JtYW4NCitCbHVobSwgT3NjYXINCitCbHVtLCBSb2JlcnQgRnJlZGVyaWNrDQorQmx1bWUsIFBldGVyDQorQmx1bWVuc2NoZWluLCBFcm5lc3QgTGVvbmFyZA0KK0JseXRoZSwgRGF2aWQgR2lsbW91cg0KK0JvY2NhY2Npbm8sIEJvY2NhY2Npbw0KK0JvY2Npb25pLCBVbWJlcnRvDQorQm9jaG5lciwgTWVsDQorQsO2Y2tsaW4sIEFybm9sZA0KK0JvY2tzdG9yZmZlciwgQ2hyaXN0b2ZmZWwNCitCb2RpbmksIEZsb3JpYW5vDQorQm9kbWVyLCBLYXJsDQorQm9lY2tob3JzdCwgSm9oYW5uDQorQm9laG0sIFNpciBKb3NlcGggRWRnYXINCitCb2VobWUsIEthcmwNCitCb2VsLCBQaWV0ZXINCitCb2V0dGksIEFsaWdoaWVybyBlDQorQm9nZ3MsIEZyYW5rIE0uDQorQm9naG9zc2lhbiwgU2t1bmRlcg0KK0JvZ2xlLCBKb2huDQorQm9obCwgV2FsdGVyIEUuDQorQm9ocm9kLCBBYXJvbg0KK0JvaWxseSwgTG91aXMtTMOpb3BvbGQNCitCb2lzc2VhdSwgQWxmcmVkDQorQm9pc3NlbGllciwgRsOpbGl4DQorQm9pc3NpZXUsIEplYW4tSmFjcXVlcyBkZQ0KK0JvbCwgRmVyZGluYW5kDQorQm9sLCBIYW5zDQorQm9sZGluaSwgR2lvdmFubmkNCitCb2xkdXF1ZSwgUGVkcm8gZGUNCitCb2xvdG93c2t5LCBJbHlhDQorQm9sdGFuc2tpLCBDaHJpc3RpYW4NCitCb2x0cmFmZmlvLCBHaW92YW5uaSBBbnRvbmlvDQorQm9tYmVyZywgRGF2aWQNCitCb24sIEJhcnRvbG9tZW8NCitCb24sIEdpb3Zhbm5pDQorQm9uYW5ubyBkYSBQaXNhDQorQm9uYXNvbmUsIEdpdWxpbyBkaSBBbnRvbmlvDQorQm9uYXp6YSwgQW50b25pbw0KK0JvbmNpbmVsbGksIEV2YXJpc3RvDQorQm9uZCwgQ2hhcmxlcyBWLg0KK0JvbmQsIE1hcmlvbg0KK0JvbmUsIEhlbnJ5DQorQm9uZSwgU2lyIE11aXJoZWFkDQorQm9uZSwgU3RlcGhlbg0KK0JvbmhldXIsIEF1Z3VzdGUNCitCb25oZXVyLCBSb3NhDQorQm9uaW5ndG9uLCBSaWNoYXJkIFBhcmtlcw0KK0JvbmlubyBkYSBDYW1waW9uZQ0KK0Jvbm5hcmQsIFBpZXJyZQ0KK0Jvbm5hdCwgTMOpb24NCitCb25uYXVkLCBQaWVycmUNCitCb25uZWZvbmQsIEplYW4tQ2xhdWRlDQorQm9ubmVsbCwgV2lsbGlhbQ0KK0Jvbm5lciwgSm9uYXRoYW4NCitCb25uZXQsIExvdWlzLU1hcmluDQorQm9uc2lnbm9yaSwgRnJhbmNlc2NvDQorQm9udGVjb3UsIExlZQ0KK0JvbnZpbiwgRnJhbsOnb2lzDQorQm9vdGgsIENhbWVyb24NCitCb3JjaHQsIEhlbmRyaWsgdmFuIGRlcg0KK0JvcmNodCwgUGlldGVyIFZhbiBEZXINCitCb3Jkb25lLCBQYXJpcw0KK0JvcmRvbmksIEZyYW5jZXNjbw0KK0JvcmR1YXMsIFBhdWwtw4ltaWxlDQorQm9yZWFkIFBhaW50ZXIsIFRoZQ0KK0JvcmVpbiwgRWR3YXJkDQorQm9yZXMgTG9wZXosIEZyYW5jaXNjbw0KK0JvcmcsIENhcmwgT3NjYXINCitCb3JnZXMsIFBlZHJvIEFsZXhhbmRyaW5vDQorQm9yZ2V0LCBBdWd1c3RlDQorQm9yZ2lhbm5pLCBPcmF6aW8NCitCb3JnbHVtLCBTb2xvbiBILg0KK0Jvcmdvw7FhLCBKdWFuIGRlDQorQm9yb2Zza3ksIEpvbmF0aGFuDQorQm9yb3Zpa292c2tpaSwgVmxhZGltaXIgTHVraWNoDQorQm9ycmFzc8OhLCBMdcOtcw0KK0JvcnJlZ2FhcmQsIEVkdWFyZA0KK0JvcnJvLCBMdWlnaQ0KK0JvcnJvbWluaSwgRnJhbmNlc2NvDQorQm9zYm9vbSwgSm9oYW5uZXMNCitCb3NjaCwgSGllcm9ueW11cw0KK0Jvc2NvbGksIEFuZHJlYQ0KK0Jvc2hpZXIsIERlcmVrDQorQm9zaW8sIEZyYW7Dp29pcy1Kb3NlcGgNCitCb3NzLCBIb21lcg0KK0Jvc3NjaGFlcnQgdGhlIEVsZGVyLCBBbWJyb3NpdXMNCitCb3NzY2hlLCBBZXJ0IHZhbiBkZW4NCitCb3NzZSwgQWJyYWhhbQ0KK0JvdGVybywgRmVybmFuZG8NCitCb3RoLCBBbmRyaWVzDQorQm90aCwgSmFuIERpcmtzeg0KK0JvdGtlLCBKZXNzaWUgQXJtcw0KK0JvdHRpY2VsbGksIFNhbmRybw0KK0JvdHRpY2luaSwgRnJhbmNlc2NvDQorQm91Y2hhcmRvbiwgRWRtw6kNCitCb3VjaMOpLCBMb3Vpcw0KK0JvdWNoZXIsIEZyYW7Dp29pcw0KK0JvdWRld3lucywgQWRyaWFlbiBGcmFucw0KK0JvdWRpbiwgRXVnw6huZQ0KK0JvdWdoLCBTYW11ZWwNCitCb3VnaHRvbiwgR2VvcmdlIEhlbnJ5DQorQm91Z3VlcmVhdSwgQWRvbHBoZSBXaWxsaWFtDQorQm91Z3VlcmVhdSwgRWxpemFiZXRoIEdhcmRuZXINCitCb3VsYW5nZXIsIEd1c3RhdmUNCitCb3VsbGUsIEFuZHLDqS1DaGFybGVzDQorQm91bGzDqWUsIMOJdGllbm5lLUxvdWlzDQorQm91bG9nbmUsIFZhbGVudGluIGRlDQorQm91cmRlbGxlLCBFbWlsZSBBbnRvaW5lDQorQm91cmRvbiwgU8OpYmFzdGllbg0KK0JvdXJnZW9pcywgTG91aXNlDQorQm91cmtlLVdoaXRlLCBNYXJnYXJldA0KK0JvdXJuZSwgSmFtZXMNCitCb3Vyc3NlLCBFc2FpYXMNCitCb3Vzc2FyZCwgRGFuYQ0KK0JvdXRldCBkZSBNb252ZWwsIExvdWlzLU1hdXJpY2UNCitCb3V0aWJvbm5lLCBDaGFybGVzIEVkd2FyZA0KK0JvdXRzIHRoZSBFbGRlciwgRGllcmljDQorQm91dHMgdGhlIFlvdW5nZXIsIERpZXJpYw0KK0JvdXRzLCBBZWxicmVjaHQNCitCb3V2YXJkLCBBbnRvaW5lDQorQm91dmllciwgTGF1cmVudCBKb3NlcGggRGFuaWVsDQorQm93ZGVuLCBIYXJyeQ0KK0Jvd2RlbiwgUGF1bA0KK0Jvd2RvaW4sIEhhcnJpZXR0ZQ0KK0Jvd2VuLCBBc2hsZXkNCitCb3dsZXIsIEhlbnJ5IEFsZXhhbmRlcg0KK0Jvd2xpbmcsIEZyYW5rDQorQm93bGluZywgVG9tDQorQm93bWFuLCBSb2dlcg0KK0JveGFsbCwgU2lyIFdpbGxpYW0NCitCb3ljZSwgR2VvcmdlIFByaWNlDQorQm95ZCBKci4sIEFydGh1cg0KK0JveWQgU3IuLCBBcnRodXINCitCb3lkLCBFbW1hIE1pbm5pZQ0KK0JveWVyLCBCb2INCitCb3lsZSwgRWxlYW5vciBWZXJlDQorQm95bGUsIE1hcmsNCitCb3luZSwgSm9obg0KK0JveXMsIFRob21hcyBTaG90dGVyDQorQm96aW90LCBGcmFuw6dvaXMtSm9zZXBoDQorQnJhYmF6b24sIEhlcmN1bGVzIEJyYWJhem9uDQorQnJhY2Nlc2NvLCBDYXJsbyBkaQ0KK0JyYWNjaSwgUGlldHJvDQorQnJhY2ssIEpvaG4NCitCcmFja21hbiwgUm9iZXJ0DQorQnJhY3F1ZW1vbmQsIEbDqWxpeA0KK0JyYWNxdWVtb25kLCBNYXJpZQ0KK0JyYWRmb3JkLCBXaWxsaWFtDQorQnJhZGxleSwgSm9obg0KK0JyYWRsZXksIE1hcnRpbg0KK0JyYWRzaGF3LCBEb3ZlDQorQnJhZHNoYXcsIEouVy4NCitCcmFkeSwgQ2Fyb2x5bg0KK0JyYWR5LCBNYXRoZXcNCitCcmFla2VsZWVyLCBIZW5yaSBEZQ0KK0JyYWlsZXMsIFdpbGxpYW0gZGUNCitCcmFraGFnZSwgU3Rhbg0KK0JyYW1hbnRlLCBEb25hdG8NCitCcmFtYW50aW5vDQorQnJhbWVyLCBMZW9uYWVydA0KK0JyYW1sZXksIEZyYW5rDQorQnJhbmN1c2ksIENvbnN0YW50aW4NCitCcmFuZGFuaSwgRmVkZXJpY28NCitCcmFuZGFyZCwgUm9iZXJ0DQorQnJhbmRpLCBHaWFjaW50bw0KK0JyYW5kdCwgQmlsbA0KK0JyYW5nd3luLCBTaXIgRnJhbmsgV2lsbGlhbQ0KK0JyYW50cywgV2FsbHkNCitCcmFxdWUsIEdlb3JnZXMNCitCcmFzY2Fzc2F0LCBKYWNxdWVzLVJheW1vbmQNCitCcmFzc2HDrw0KK0JyYXRieSwgSm9obg0KK0JyYXVuLCBNYXVyaWNlDQorQnJhdm8sIENlY2NvDQorQnJhdm8sIENsYXVkaW8NCitCcmF2bywgTG9sYSBBbHZhcmV6DQorQnJheSwgQWxhbg0KK0JyYXksIEphbiBkZQ0KK0Jyw6liaWV0dGUsIFBpZXJyZQ0KK0JyZWNodCwgR2VvcmdlDQorQnJlY2ssIEpvaG4gTGVzbGllDQorQnJlY2tlbnJpZGdlLCBIdWdoIEhlbnJ5DQorQnJlZGEsIENhcmwgRnJlZHJpayB2b24NCitCcmVkaW4sIFJhZSBTbG9hbg0KK0JyZWVuYmVyZ2gsIEJhcnRob2xvbWV1cw0KK0JyZWdubywgQW5kcmVhDQorQnJlZ25vLCBBbnRvbmlvDQorQnJla2VsZW5rYW0sIFF1aXJpam4gdmFuDQorQnJlbmV0LCBOaWNvbGFzLUd1eQ0KK0JyZXNkaW4sIFJvZG9scGhlDQorQnJldG9uLCBBbmRyw6kNCitCcmV0b24sIEp1bGVzDQorQnJldHQsIEpvaG4NCitCcmV1IHRoZSBFbGRlciwgSsO2cmcNCitCcmV1IHRoZSBZb3VuZ2VyLCBKw7ZyZw0KK0JyZXdzdGVyIEpyLiwgSm9obg0KK0JyZXdzdGVyLCBBbm5hIFJpY2hhcmRzDQorQnJld3RuYWxsLCBFZHdhcmQgRnJlZGVyaWNrDQorQnJpY2hlciwgQWxmcmVkIFRob21wc29uDQorQnJpZGdlcywgRmlkZWxpYQ0KK0JyaWRnZXMsIEpvaG4NCitCcmlkZ2V3b29kLCBKLkMuDQorQnJpZ2RlbiwgRi5ILg0KK0JyaWdncywgSGVucnkgUGVycm9uZXQNCitCcmlnaHQsIEhlbnJ5DQorQnJpbCwgUGF1bA0KK0JyaW9uLCBHdXN0YXZlDQorQnJpb3NjbywgQmVuZWRldHRvDQorQnJpc2NvZSwgQXJ0aHVyDQorQnJpc3RvbCwgSm9obiBCdW55YW4NCitCcml1bGxvdiwgS2FybA0KK0Jyb2MsIEplYW4NCitCcm9jaywgU2lyIFRob21hcw0KK0Jyb2NraHVyc3QsIEdlcmFsZCBMZXNsaWUNCitCcm9kc2t5LCBBbGV4YW5kZXINCitCcm9lZGVybGFtLCBNZWxjaGlvcg0KK0Jyb2VyLCBSb2dlcg0KK0Jyb2dnaW5pLCBMdWlnaQ0KK0Jyb2doYW1tZXIsIEpvc2VwaA0KK0Jyb2dpLCBHaWFjb21vDQorQnJvbXB0b24sIFJpY2hhcmQNCitCcm9uemlubywgQWdub2xvDQorQnJvb2tlLCBXaWxsaWFtIEhlbnJ5DQorQnJvb2tlciwgQmVydHJhbQ0KK0Jyb29raW5nLCBDaGFybGVzDQorQnJvb2tzLCBDb3JhIFNtYWxsZXkNCitCcm9va3MsIEVyaWNhDQorQnJvb2tzLCBIZW5yeSBKYW15bg0KK0Jyb29rcywgSmFtZXMNCitCcm9va3MsIE5pY2hvbGFzIEFsZGVuDQorQnJvc2FtZXIsIEhhbnMNCitCcm91ZXQsIEF1Z3VzdGUNCitCcm91Z2gsIFJvYmVydA0KK0Jyb3V3ZXIsIEFkcmlhZW4NCitCcm93biwgQm9iDQorQnJvd24sIENocmlzdG9waGVyDQorQnJvd24sIERlYm9yYWgNCitCcm93biwgRG91Z2xhcw0KK0Jyb3duLCBGb3JkIE1hZG94DQorQnJvd24sIEZyZWRlcmljayBKYW1lcw0KK0Jyb3duLCBHZW9yZ2UgTG9yaW5nDQorQnJvd24sIEouIEFwcGxldG9uDQorQnJvd24sIEpvYW4NCitCcm93biwgSm9obiBHZW9yZ2UNCitCcm93biwgSm9obi1MZXdpcw0KK0Jyb3duLCBMdWN5IE1hZG94DQorQnJvd24sIE1hZSBCZW5uZXR0DQorQnJvd24sIE1hdGhlcg0KK0Jyb3duLCBNaWtlDQorQnJvd24sIFJvZ2VyDQorQnJvd24sIFcuSC4NCitCcm93biwgV2lsbGlhbSBNYXNvbg0KK0Jyb3duZSwgQXJjaGliYWxkDQorQnJvd25lLCBCZWxtb3JlDQorQnJvd25lLCBCeXJvbg0KK0Jyb3duZSwgSGFibG90IEtuaWdodA0KK0Jyb3duZSwgSGVucmlldHRlDQorQnJvd25lLCBNYXJnYXJldCBGaXR6aHVnaA0KK0Jyb3duZSwgTWF0aWxkYQ0KK0Jyb3duZSwgU3lkDQorQnJvd25lbGwsIEZyYW5rbGluDQorQnJvd25pbmcsIENvbGxlZW4NCitCcm93bmluZywgUm9iZXJ0IEJhcnJldHQNCitCcm93bnNjb21iZSwgSmVubmllIEF1Z3VzdGENCitCcnVjZSwgUGF0cmljayBIZW5yeQ0KK0JydWNlLCBXaWxsaWFtIEJsYWlyDQorQnJ1Y2gsIEtsYXVzIHZvbg0KK0JydWVnZWwgdGhlIEVsZGVyLCBKYW4NCitCcnVlZ2VsIHRoZSBFbGRlciwgUGlldGVyDQorQnJ1ZWdlbCB0aGUgWW91bmdlciwgSmFuDQorQnJ1ZWdlbCB0aGUgWW91bmdlciwgUGlldGVyDQorQnJ1ZXN0bGUsIEdlb3JnZSBNLg0KK0JydW5lbGxlc2NoaSwgRmlsaXBwbw0KK0JydXMsIEfDvG50ZXINCitCcnVzYXNvcmNpDQorQnJ1c2gsIEdlb3JnZSBkZUZvcmVzdA0KK0JydXlhLCBNYXJpbHluDQorQnJ1eW4gdGhlIEVsZGVyLCBCYXJ0aGVsDQorQnJ1eW4gdGhlIFlvdW5nZXIsIEJhcnRlbA0KK0JyeWFucywgTGluYQ0KK0JyeWFudCwgQ2hhcmxlcw0KK0JyeWdvcyBQYWludGVyLCBUaGUNCitCcnltbmVyLCBXaWxsaWFtDQorQnJ6ZXppbnNraSwgRW1pbGllIEJlbmVzDQorQnVjY2kgUGFpbnRlciwgVGhlDQorQnVjaGhlaXQsIE1hbmZyZWQNCitCdWNoc2VyLCBGcmFuaw0KK0J1Y2ssIEpvaG4NCitCdWNrbGV5LCBKYW1lcw0KK0J1Y2tsZXksIFN0ZXBoZW4NCitCdWNrbG93LCBDaHJpc3RvcGhlcg0KK0J1ZGluZ3RvbiwgSm9uYXRoYW4NCitCdWZmZXQsIEJlcm5hcmQNCitCdWdpYXJkaW5pLCBHaXVsaWFubw0KK0J1aGxlciwgUm9iZXJ0DQorQnVob3QsIEbDqWxpeC1IaWxhaXJlDQorQnVsYW5kLCBFdWfDqG5lDQorQnVsZmluY2gsIENoYXJsZXMNCitCdWxsZXIsIENlY2lsIFRyZW1heW5lDQorQnVuYnVyeSwgQ2hhcmxlcw0KK0J1bmJ1cnksIEhlbnJ5IFdpbGxpYW0NCitCdW5jZSwgS2F0ZSBFbGl6YWJldGgNCitCdW5jZSwgTG91aXMNCitCdW5keSwgRWRnYXINCitCdW5keSwgSG9yYWNlDQorQnVua2VyLCBEZW5uaXMgTWlsbGVyDQorQnVubiwgS2VuDQorQnVubnksIFJ1cGVydA0KK0J1bnJpbiwgU2hpb2thd2ENCitCdW5yw7QNCitCdW5zZSwgRG9uYWxkDQorQnVyYmFuaywgRWxicmlkZ2UgQXllcg0KK0J1cmNoLCBIZW5kcmljayB2YW4gZGVyDQorQnVyY2hhcmQsIFBhYmxvDQorQnVyY2hhcnR6LCBNYXgNCitCdXJjaGZpZWxkLCBDaGFybGVzDQorQnVyY2ssIEphY29iDQorQnVyZGVuLCBDaHJpcw0KK0J1cmVuLCBEYW5pZWwNCitCdXJnZXNzLCBKb3NlcGggRS4NCitCdXJnZXNzLCBMb3dyeQ0KK0J1cmdlc3MsIFJ1dGggUGF5bmUNCitCdXJna21haXIgdGhlIEVsZGVyLCBIYW5zDQorQnVybiwgSGVucnkNCitCdXJuLCBJYW4NCitCdXJuYW5kLCBFdWfDqG5lDQorQnVybmUtSm9uZXMsIEVkd2FyZA0KK0J1cm5lbGwsIEJlbmphbWluDQorQnVybmV0LCBKYW1lcw0KK0J1cm5ldCwgSm9obg0KK0J1cm5leSwgRWR3YXJkIEZyYW5jaXMNCitCdXJwZWUsIFdpbGxpYW0gUGFydHJpZGdlDQorQnVyciwgR2VvcmdlIEVsYmVydA0KK0J1cnJpLCBBbGJlcnRvDQorQnVycmlsbCwgRWR3YXJkDQorQnVycm91Z2hzLCBCcnlzb24NCitCdXJyb3VnaHMsIE1hcmdhcmV0DQorQnVycm93ZXMsIFRob21hcw0KK0J1cnRvbiwgRnJlZGVyaWMgV2lsbGlhbQ0KK0J1cnRvbiwgSnVkaXRoDQorQnVydG9uLCBTY290dA0KK0J1cnRvbiwgV2lsbGlhbSBTaGFrZXNwZWFyZQ0KK0J1c2gsIENoYXJsZXMNCitCdXNoLCBKYWNrDQorQnVzaG5lbGwsIEpvaG4NCitCdXNzb2xhLCBEaW9uaWdpDQorQnVzdGVyLCBLZW5kYWxsDQorQnVzd2VsbCwgUmljaGFyZCBTLg0KK0J1dGNoZXIsIEVuaWQNCitCdXRpbm9uZSwgQmVybmFyZGlubyBKYWNvcGkNCitCdXRsZXIsIEVsaXphYmV0aA0KK0J1dGxlciwgSmFtZXMNCitCdXRsZXIsIE1hcnkNCitCdXRsZXIsIFJlZw0KK0J1dGxlciwgU2FtdWVsDQorQnV0bGVyLCBUaGVvZG9yZQ0KK0J1dHQsIEdhaWwNCitCdXR0ZXJmaWVsZCwgRGVib3JhaA0KK0J1dHRlcnN3b3J0aCwgSmFtZXMgRS4NCitCdXR0ZXJzd29ydGgsIFRob21hcw0KK0J1dHRzLCBGcmVlbWFuDQorQnV2ZWxvdCwgTG91aXMNCitCdXl0ZXdlY2gsIFdpbGxlbQ0KK0J5YXJzLCBKYW1lcyBMZWUNCitCeWdyYXZlLCBXaWxsaWFtDQorQnl3YXRlcnMsIEplcnJ5DQorQ2FiYW5lbCwgQWxleGFuZHJlDQorQ2Fib3QsIEh1Z2gNCitDYWJyZXJhLCBSb3NhcmlvDQorQ2FjY2luaSwgR2lvdmFubmkNCitDYWRtdXMsIFBhdWwNCitDYWR3ZWxsLCBNaWtlDQorQ2FmZmEsIE1lbGNoaW9yZQ0KK0NhZmZpZXJpLCBKZWFuLUphY3F1ZXMNCitDYWduYWNjaSwgR3VpZG8NCitDYWhpbGwsIFdpbGxpYW0gVmluY2VudA0KK0NhaG4sIE1pcmlhbQ0KK0NhaSBEaXpoaQ0KK0NhaSBMaWFuZw0KK0NhaWxsZWJvdHRlLCBHdXN0YXZlDQorQ2Fpcm8sIEZyYW5jZXNjbyBkZWwNCitDYWrDqXMsIEV1Z2VuaW8NCitDYWxhbWUsIEFsZXhhbmRyZQ0KK0NhbGFuZHJ1Y2NpLCBHaWFjaW50bw0KK0NhbGNhZ25vLCBMYXdyZW5jZQ0KK0NhbGNhciwgSm9oYW4gU3RlcGhlbiB2b24NCitDYWxkZXIsIEFsZXhhbmRlcg0KK0NhbGRlcm9uLCBXaWxsaWFtIEZyYW5rDQorQ2FsaXh0byBkZSBKZXN1cywgQmVuZWRpdG8NCitDYWxsIEksIEphbiB2YW4NCitDYWxsLCBILg0KK0NhbGxhaGFuLCBIYXJyeQ0KK0NhbGxjb3R0LCBTaXIgQXVndXN0dXMgV2FsbA0KK0NhbGxlcnksIE1hcnkNCitDYWxsZXQsIEFudG9pbmUgRnJhbsOnb2lzDQorQ2FsbG90LCBKYWNxdWVzDQorQ2FsbG93LCBXaWxsaWFtDQorQ2Fsw7IsIEFsZG8NCitDYWxyYWV0LCBBYnJhaGFtIHZhbg0KK0NhbHMsIEFkb2xwaGUtRmVsaXgNCitDYWx0aHJvcCwgQ2xhdWRlDQorQ2FsdmFlcnQsIERlbnlzDQorQ2FsdmVydCwgQ2hhcmxlcw0KK0NhbHZlcnQsIEVkd2FyZA0KK0NhbHpvbGFyaSwgUGllciBQYW9sbw0KK0NhbWJpYXNvLCBMdWNhDQorQ2FtZWxpbw0KK0NhbWVsb3RlDQorQ2FtZXJvbiwgRXJpYw0KK0NhbWVyb24sIEphbWVzDQorQ2FtZXJvbiwgSm9obg0KK0NhbWVyb24sIEp1bGlhIE1hcmdhcmV0DQorQ2FtZXJvbiwgU2lyIERhdmlkDQorQ2FtbWlsbGllcmksIE5pY2hvbGFzIFMuDQorQ2FtbWlsbGllcmksIE5pY29sYXMNCitDYW1wLCBKZWZmZXJ5DQorQ2FtcGFnbmEsIEdpcm9sYW1vDQorQ2FtcGFnbm9sYSwgRG9tZW5pY28NCitDYW1wYWdub2xhLCBHaXVsaW8NCitDYW1wYcOxYSwgUGVkcm8gZGUNCitDYW1wYmVsbCwgSXNhYmVsbGEgRnJvd2UNCitDYW1wYmVsbCwgSmFtZXMNCitDYW1wYmVsbCwgSmltDQorQ2FtcGVuLCBKYWNvYiB2YW4NCitDYW1wZW5kb25rLCBIZWlucmljaA0KK0NhbXBodXlzZW4sIEdvdmVydCBEaXJja3N6DQorQ2FtcGksIEdpdWxpbw0KK0NhbXBpLCBWaW5jZW56bw0KK0NhbXBpZ2xpLCBNYXNzaW1vDQorQ2FtcGluLCBSb2JlcnQNCitDYW5hbGV0dG8NCitDYW5kaWQsIFBpZXRlcg0KK0NhbmVqYSBCZXRlZ29uLCBKdWFuDQorQ2Fubm9uLCBULkMuDQorQ2FubyBNYW5pbGxhLCBSYW3Ds24NCitDYW5vLCBBbG9uc28NCitDYW5vZ2FyLCBSYWZhZWwNCitDYW5vdmEsIEFudG9uaW8NCitDYW50YWdhbGxpbmEsIFJlbWlnaW8NCitDYW50YXJpbmksIFNpbW9uZQ0KK0NhbnRhdG9yZSwgRG9tZW5pY28NCitDYW51dGksIERvbWVuaWNvIE1hcmlhDQorQ2FwYSwgUm9iZXJ0DQorQ2FwYW5uYSwgUHVjY2lvDQorQ2FwbGUsIFNwZW5jZXINCitDYXBvbmlncm8sIFBhdWwNCitDYXBvcmFsaSwgQmFydG9sb21tZW8NCitDYXBwZWxsZSwgSmFuIHZhbiBkZQ0KK0NhcHBlbGxvLCBDYXJtZWxvDQorQ2FwcHMsIEtlbm5ldGgNCitDYXByaW9sbywgRG9tZW5pY28NCitDYXJhYmluLCBSdXBlcnQNCitDYXJhY2Npb2xvLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0NhcmFkb3Nzbw0KK0NhcmFmZmUsIEFybWFuZC1DaGFybGVzDQorQ2FyYWdsaW8sIEdpYW4gSmFjb3BvDQorQ2FyYXZhZ2dpbw0KK0NhcmF2YWdnaW8sIFBvbGlkb3JvIGRhDQorQ2FyYm9uZSwgR2lvdmFubmkgQmVybmFkbw0KK0NhcmR1Y2NpLCBCYXJ0b2xvbW1lbw0KK0NhcmR1Y2NpLCBWaW5jZW56bw0KK0NhcmlhbmksIEdpb3Zhbm5pDQorQ2FybGVzLCBBcnRodXIgQi4NCitDYXJsZXRvbiwgQW5uZQ0KK0NhcmxldmFyaXMsIEx1Y2ENCitDYXJsaW5lLCBHZW9yZ2UNCitDYXJsaW5lLCBSaWNoYXJkDQorQ2FybGlzbGUsIEdlb3JnZSBIb3dhcmQsIE5pbnRoIEVhcmwgb2YNCitDYXJsb25pLCBDYXJsbw0KK0NhcmxzZW4sIEVtaWwNCitDYXJsc29uLCBKb2huIEZhYmlhbg0KK0Nhcmxzb24sIEtlbg0KK0Nhcmx1LCBKZWFuDQorQ2FybWljaGFlbCwgRnJhbmtsaW4NCitDYXJtb250ZWxsZSwgTG91aXMgZGUNCitDYXJuZXZhbGUsIEZyYQ0KK0Nhcm5pY2VybywgQW50b25pbw0KK0Nhcm8sIFNpciBBbnRob255DQorQ2Fyb2x1cy1EdXJhbg0KK0Nhcm9uLCBBbnRvaW5lDQorQ2Fyb24sIFBhdWwNCitDYXJwYWNjaW8sIFZpdHRvcmUNCitDYXJwZWF1eCwgSmVhbi1CYXB0aXN0ZQ0KK0NhcnBlbnRlciBQYWludGVyLCBUaGUNCitDYXJwZW50ZXIsIEVkDQorQ2FycGVudGVyLCBGcmFuY2lzIEJpY2tuZWxsDQorQ2FycGlvbmksIEdpdWxpbw0KK0NhcnIsIEVtaWx5DQorQ2FyciwgU2FtdWVsIFMuDQorQ2FycsOgLCBDYXJsbw0KK0NhcnJhY2NpLCBBZ29zdGlubw0KK0NhcnJhY2NpLCBBbm5pYmFsZQ0KK0NhcnJhY2NpLCBMb2Rvdmljbw0KK0NhcnJlw7FvIGRlIE1pcmFuZGEsIEp1YW4NCitDYXJyZcOxbywgTWFyaW8NCitDYXJyaWVyYSwgUm9zYWxiYQ0KK0NhcnJpZXItQmVsbGV1c2UsIEFsYmVydC1Fcm5lc3QNCitDYXJyacOocmUsIEV1Z8OobmUNCitDYXJyaW5ndG9uLCBEb3JhDQorQ2FycmluZ3RvbiwgTGVvbm9yYQ0KK0NhcnMsIExhdXJlbnQNCitDYXJzZSwgSi5ILg0KK0NhcnRlbiwgVmlyZ2luaWENCitDYXJ0ZXIsIEh1Z2gNCitDYXJ0ZXIsIEtlaXRoDQorQ2FydGVyLCBMZWUNCitDYXJ0aWVyLUJyZXNzb24sIEhlbnJpDQorQ2FydHdyaWdodCwgSXNhYmVsIEJyYW5zb24NCitDYXJ2YWxobywgRmzDoXZpbyBkZQ0KK0NhcndpdGhhbSwgVGhvbWFzDQorQ2FzYW5vdmEsIEdpb3Zhbm5pDQorQ2FzYXMsIEp1YW4gVmlsYQ0KK0Nhc2NlbGxhLCBBbmRyZWENCitDYXNpbGVhciwgSm9obiBXaWxsaWFtDQorQ2Fzc2FuZHJlDQorQ2Fzc2FyYSwgRnJhbmsNCitDYXNzYXR0LCBNYXJ5DQorQ2Fzc2VsbGkgSnIuLCBIZW5yeSBDLg0KK0Nhc3NpZHksIFNoYXVuDQorQ2Fzc2luYXJpLCBCcnVubw0KK0Nhc3NvbiwgQS5KLg0KK0Nhc3RhZ25ldG8sIEpvw6NvIEJhdGlzdGENCitDYXN0YWdub2xhLCBHYWJyaWVsZQ0KK0Nhc3RlbGxhbmksIEVucmljbw0KK0Nhc3RlbGxhbm9zLCBKdWxpbw0KK0Nhc3RlbGxpLCBBbGZpbw0KK0Nhc3RlbGxvLCBCZXJuYXJkbw0KK0Nhc3RlbGxvLCBWYWxlcmlvDQorQ2FzdGVsbMOzbiwgRmVkZXJpY28NCitDYXN0aWdsaW9uZSwgR2lvdmFubmkgQmVuZWRldHRvDQorQ2FzdGlnbGlvbmUsIEdpdXNlcHBlDQorQ2FzdGlsbG8geSBTYWF2ZWRyYSwgQW50b25pbw0KK0Nhc3RpbGxvLCBKb3PDqSBkZWwNCitDYXN0bGUsIEphbWVzDQorQ2FzdGxlLCBXZW5kZWxsDQorQ2F0ZXNieSwgTWFyaw0KK0NhdGxldHQsIEVsaXphYmV0aA0KK0NhdGxpbiwgR2VvcmdlDQorQ2F0cywgSmFjb2INCitDYXR0YW5lbywgRGFuZXNlDQorQ2F0dGVsYW4sIE1hdXJpemlvDQorQ2F1bGZpZWxkLCBQYXRyaWNrDQorQ2F2YWVsLCBSb2xmDQorQ2F2YWxjYW50aSwgRW1pbGlhbm8gRGkNCitDYXZhbGxhcm8sIENvc2ltbw0KK0NhdmFsbGluaSwgUGlldHJvDQorQ2F2YWxsaW5vLCBCZXJuYXJkbw0KK0NhdmVkb25lLCBHaWFjb21vDQorQ2F5b3QsIENsYXVkZS1BdWd1c3Rpbg0KK0NhemluLCBKZWFuLUNoYXJsZXMNCitDYXppbiwgTWFyaWUNCitDZWNpb25pLCBBZHJpYW5vDQorQ2VkZXJzdHLDtm0sIEd1c3RhZg0KK0NlbGxpbmksIEJlbnZlbnV0bw0KK0NlbG1pbnMsIFZpamENCitDZXJhY2NoaSwgR2l1c2VwcGUNCitDZXJxdW96emksIE1pY2hlbGFuZ2Vsbw0KK0PDqXNhcg0KK0Nlc2FyZSBkYSBTZXN0bw0KK0Nlc2FyaSwgR2l1c2VwcGUNCitDZXNhcmssIE1hcmsNCitDw6l6YW5uZSwgUGF1bA0KK0NoYWJvdCwgTHVjaWxsZQ0KK0NoYWR3aWNrLCBMeW5uDQorQ2hhZHdpY2ssIFdpbGxpYW0NCitDaGFnYWxsLCBNYXJjDQorQ2hhaGluZSwgRWRnYXINCitDaGFsbGVuZXIsIEYuUy4NCitDaGFsb24sIEFsZnJlZA0KK0NoYWxvbiwgSGVucnkgQmVybmFyZA0KK0NoYW1iZXJsYWluLCBKb2huDQorQ2hhbWJlcmxhaW4sIFNhbXVlbA0KK0NoYW1iZXJzLCBUaG9tYXMNCitDaGFtcGFpZ25lLCBKZWFuLUJhcHRpc3RlIGRlDQorQ2hhbXBhaWduZSwgUGhpbGlwcGUgZGUNCitDaGFuIEhvbmdzaG91DQorQ2hhbmRsZXIsIEpvc2VwaCBHb29kaHVlDQorQ2hhbmRsZXIsIFdpbnRocm9wDQorQ2hhbmRvciwgRG91Z2xhcw0KK0NoYW5nIENoaS1zaHUNCitDaGFuZyBEYWktY2hpZW4NCitDaGFuZyBKaW4NCitDaGFuZyBTaHVob25nDQorQ2hhbmctYmFlLCBId2FuZw0KK0NoYW5nLXNvcCwgQ2h1bmcNCitDaGFudHJleSwgU2lyIEZyYW5jaXMgTGVnYXR0DQorQ2hhbyBTaGFvJ2FuZw0KK0NoYXBlcm9uLCBOaWNvbGFzDQorQ2hhcGluLCBKYW1lcw0KK0NoYXBpbiwgTHVjeSBHcm9zdmVub3INCitDaGFwbGluLCBNYXJ5IE1pbGxpY2VudA0KK0NoYXBtYW4sIENvbnJhZCBXaXNlDQorQ2hhcG1hbiwgSm9obiBHYWRzYnkNCitDaGFwcGVsLCBBbG9uem8NCitDaGFwdSwgSGVucmkgTWljaGVsIEFudG9pbmUNCitDaGFyZGluLCBKZWFuLUJhcHRpc3RlLVNpbcOpb24NCitDaGFybGVzLCBKYW1lcw0KK0NoYXJsZXMsIE1pY2hhZWwgUmF5DQorQ2hhcmxlc3dvcnRoLCBTYXJhaA0KK0NoYXJsZXQsIE5pY29sYXMtVG91c3NhaW50DQorQ2hhcmxpZXIsIEphY3F1ZXMNCitDaGFybHRvbiwgQWxhbg0KK0NoYXJ0b24gZGUgVHJldmlsbGUsIEVybmVzdG8NCitDaGFzZSwgQWRlbGFpZGUgQ29sZQ0KK0NoYXNlLCBSaWNoYXJkDQorQ2hhc2UsIFdpbGxpYW0gTWVycml0dA0KK0NoYXNzw6lyaWF1LCBUaMOpb2RvcmUNCitDaGF0ZWxhaW4sIEplYW4gQmFwdGlzdGUgQ2xhdWRlDQorQ2hhdGhhbSwgUnVzc2VsbA0KK0NoYXR0ZXJ0b24sIENsYXJlbmNlIEsuDQorQ2hhdWRldCwgQW50b2luZS1EZW5pcw0KK0NoYXV2aW4sIFBpZXJyZS1BdGhhbmFzZQ0KK0Now6F2ZXogTW9yYWRvLCBKb3PDqQ0KK0NoYXZleiwgRWR3YXJkIEFyY2VuaW8NCitDaGVmZmV0eiwgQXNhDQorQ2hlbiBCYW5kaW5nDQorQ2hlbiBDaGkNCitDaGVuIERhbnFpbmcNCitDaGVuIEZ1c2hhbg0KK0NoZW4gSGVuZ3F1ZQ0KK0NoZW4gS3Vhbg0KK0NoZW4gUGluZw0KK0NoZW4gUWl1Y2FvDQorQ2hlbiBSb25nDQorQ2hlbiBUaWVnZW5nDQorQ2hlbiBZYW5uaW5nDQorQ2hlbiBZYW5xaWFvDQorQ2hlbiBZaWZlaQ0KK0NoZW4gWXVzaGVuZw0KK0NoZW4gWmhpZm8NCitDaGVuIFppeWkNCitDaGVuZyBDb25nbGluDQorQ2hlbmcgU2hpZmENCitDaGVuZyBaaGFuZw0KK0NoZXJjaGksIFNhbmRybw0KK0NoZXJlc2hub3Zza3ksIE15a2hhaWxvDQorQ2jDqXJldCwgSnVsZXMNCitDaGVyaWNvLCBGcmFuY2VzY28gQW50b25pbyBkZWwNCitDaGV2YWxpZXIsIE5pY29sYXMNCitDaGlhLCBTYW5kcm8NCitDaGlhcmksIEdpdXNlcHBpDQorQ2hpY2FnbyBQYWludGVyLCBUaGUNCitDaGljYWdvLCBKdWR5DQorQ2hpZmZsYXJ0LCBGcmFuw6dvaXMtTmljb2xhcw0KK0NoaWh1bHksIERhbGUNCitDaGknaSBQYWktc2hpaA0KK0NoaWxkZSwgSmFtZXMgV2FycmVuDQorQ2hpbGxpZGEsIEVkdWFyZG8NCitDaGltZW50aSwgSmFjb3BvDQorQ2hpbWVyYSBQYWludGVyLCBUaGUNCitDaGluLCBNZWwNCitDaGluYXJkLCBKb3NlcGgNCitDaGlubmVyeSwgR2VvcmdlDQorQ2hpcG1hbg0KK0NoaXJpbm8gTMOzcGV6LCBNYXJ0w61uDQorQ2hvYnVuc2FpIEVpc2hpDQorQ2hvZG93aWVja2ksIERhbmllbCBOaWtvbGF1cw0KK0Nob2Vuc2FpIEVpc2hpbg0KK0Nob2kgU29raHdhbg0KK0Nob2tpLCBFaXNob3NhaQ0KK0Nob2tvc2FpIEVpc2hvDQorQ2hvbmcteXVuZywgS2ltDQorQ2hvdSwgU2hlbg0KK0NocmlzdGFuc2VuLCBIYW5zDQorQ2hyaXN0ZW5iZXJyeSwgV2lsbGlhbQ0KK0NocmlzdGVuc2VuLCBDLkMuQS4NCitDaHJpc3RlbnNlbiwgRGFuDQorQ2hyaXN0aWFuc2VuLCBSYXNtdXMNCitDaHJpc3RpZSwgUm9iZXJ0IER1bmNhbg0KK0NocmlzdGluZWssIENhcmwtTHVkd2lnDQorQ2hyaXN0LUphbmVyLCBBbGJlcnQgV2lsbGlhbQ0KK0NocmlzdG8NCitDaHJpc3RvcGhlLCBFcm5lc3QNCitDaHJpc3R1cywgUGV0cnVzDQorQ2hyaXN0eSwgSm9obg0KK0NodW5nIFNvb2ssIEtpbQ0KK0NodXJjaCwgRnJlZGVyaWMgRWR3aW4NCitDaHVyY2gsIEZyZWRlcmljayBTdHVhcnQNCitDaHVyY2gsIE1pY2hhZWwNCitDaHVyY2hpbGwsIFdpbnN0b24gU3BlbmNlcg0KK0NodXJjaHlhcmQsIFRob21hcw0KK0NpZW5mdWVnb3MgQnJvd25lLCBHb256YWxvDQorQ2lnb2xpLCBMb2Rvdmljbw0KK0NpbWFidWUNCitDaW1pbmFnaGksIFZpcmdpbmlvDQorQ2luY2luYXRvLCBGcmFuY2VzY28gUm9tdWxvDQorQ2lvbGksIFZhbGVyaW8NCitDaXByaWFuaSwgR2lvdmFubmkgQmF0dGlzdGENCitDaXJpbm8sIEFudG9uaW8NCitDaXNuZXJvcywgRG9taW5nbw0KK0NpdHJvbiwgTWlubmEgV3JpZ2h0DQorQ2l1cmxpb25pcywgTWlrYWxvanVzDQorQ2l2ZXJjaGlvLCBWaW5jZW56bw0KK0Npdml0YWxlLCBNYXR0ZW8NCitDaXZpdGljbywgQnJ1bm8NCitDbGFlaXNzZW5zIEksIFBpZXRlcg0KK0NsYWVzeiwgUGlldGVyDQorQ2xhZ3VlLCBSaWNoYXJkDQorQ2xhaXJpbiwgR2Vvcmdlcw0KK0NsYWlybW9udCwgQ29yd2luDQorQ2xhcHAsIFdpbGxpYW0gSGVucnkNCitDbGFyw6EsIEpvc8OpDQorQ2xhcmssIEFsc29uIFNraW5uZXINCitDbGFyaywgQ2xhdWRlDQorQ2xhcmssIEZsb3lkDQorQ2xhcmssIEpvc2VwaA0KK0NsYXJrLCBLYXRlIEZyZWVtYW4NCitDbGFyaywgTGFycnkNCitDbGFyaywgUGFyYXNrZXZhDQorQ2xhcmssIFRob21hcw0KK0NsYXJrLCBUaW0NCitDbGFya2UgSGFsbCwgTGFkeSBFZG5hDQorQ2xhcmtlLCBHZW9mZnJleQ0KK0NsYXJrZSwgSm9obiBDbGVtDQorQ2xhdWRlIExvcnJhaW4NCitDbGF1ZGVsLCBDYW1pbGxlDQorQ2xhdWRldCwgQW50b2luZQ0KK0NsYXVzZWxsLCBKb2FxdcOtbg0KK0NsYXVzZW4sIEMuDQorQ2xhdXNlbiwgRnJhbmNpc2thDQorQ2xhdXNlbiwgU2lyIEdlb3JnZQ0KK0NsYXbDqSwgQW50b25pbw0KK0NsYXh0b24sIE1hcnNoYWxsDQorQ2xheSwgQWx5c29uDQorQ2xheWVzLCBHZXJ0cnVkZSBkZXMNCitDbGVhdmVyLCBBbGljZQ0KK0NsZW1lbnMsIEouRi4NCitDbGVtZW50ZSBkYSBVcmJpbm8NCitDbGVtZW50ZSwgRnJhbmNlc2NvDQorQ2xlcmNrLCBIZW5kcmlrIGRlDQorQ2zDqXNpbmdlciwgSmVhbiBCYXB0aXN0ZQ0KK0NsZXZlLCBKb29zIHZhbg0KK0NsZXluLCBGcmFueg0KK0NsaW1lLCBXaW5maWVsZCBTY290dA0KK0NsaW1vLCBMaW5kZWUNCitDbGludCwgR2VvcmdlDQorQ2xvZGlvbg0KK0Nsb3NlLCBDaHVjaw0KK0Nsb3NlLCBNYXkgTGV3aXMNCitDbG91ZG1hbiwgSm9obiBHcmVlbmxlYWYNCitDbG91ZXQgdGhlIFlvdW5nZXIsIEplYW4NCitDbG91ZXQsIEZyYW7Dp29pcw0KK0Nsb3VnaCwgR2VvcmdlIExhZmF5ZXR0ZQ0KK0Nsb3VnaCwgUHJ1bmVsbGENCitDbG92aW8sIEdpb3JnaW8gR2l1bGlvDQorQ29hdGVzLCBFZG11bmQNCitDb2F0ZXMsIEdlb3JnZQ0KK0NvYnVybiwgRnJhbmsNCitDb2NoZXJlYXUsIEzDqW9uLU1hdHRoaWV1DQorQ29jaGluIHRoZSBZb3VuZ2VyLCBDaGFybGVzLU5pY29sYXMNCitDb2NocmFuLCBNYWxjb2xtDQorQ29jaywgSGllcm9ueW1vdXMNCitDb2NrLCBNYXR0aHlzDQorQ29kYXp6aSwgVml2aWFubw0KK0NvZGRlLCBQaWV0ZXINCitDb2RtYW4sIENoYXJsZXMNCitDb2UsIEVsaWFzIFYuDQorQ29lLCBFdGhlbCBMb3Vpc2UNCitDb2UsIFN1ZQ0KK0NvZWxsbywgQ2xhdWRpbw0KK0NvZ25pZXQsIEzDqW9uDQorQ29oZW4sIEJlY2t5DQorQ29oZW4sIEJlcm5hcmQNCitDb2hvb24sIEhhbm5haCBIYXJyaXNvbg0KK0NvaWduZXQsIEp1bGVzDQorQ29rZXIsIFBldGVyDQorQ29sYSBEZWxsJ0FtYXRyaWNlDQorQ29sZHN0cmVhbSwgU2lyIFdpbGxpYW0NCitDb2xlLCBHZW9yZ2UgVmljYXQNCitDb2xlLCBKLiBGb3hjcm9mdA0KK0NvbGUsIFRob21hcw0KK0NvbGUsIFRpbW90aHkNCitDb2xlLCBXaWxsaWUNCitDb2xlbWFuLCBDaGFybGVzIENhcnlsDQorQ29sZW1hbiwgTWljaGFlbA0KK0NvbGVvcHksIFN0ZXZlDQorQ29sZXNjb3R0LCBSb2JlcnQNCitDb2xsLCBKb3NlcGggQ2xlbWVudA0KK0NvbGxhLCBFdHRvcmUNCitDb2xsYWVydCwgQWRyaWFlbg0KK0NvbGxhbnRlcywgRnJhbmNpc2NvDQorQ29sbGF6bywgUmFwaGFlbA0KK0NvbGxldCwgSm9obg0KK0NvbGxpZXIsIEVkd2FlcnQNCitDb2xsaWVyLCBKb2huDQorQ29sbGluZ3MsIFNhbXVlbA0KK0NvbGxpbnMsIENlY2lsDQorQ29sbGlucywgQ2hhcmxlcw0KK0NvbGxpbnMsIENoYXJsZXMgQWxsc3Rvbg0KK0NvbGxpbnMsIFdpbGxpYW0NCitDb2xsaW5zb24sIEphbWVzDQorQ29sbG90LCBNYXJpZS1Bbm5lDQorQ29sbWFuIDE3ODAtMTg0NSwgU2FtdWVsDQorQ29sbWFuIDE4MzItMTkyMCwgU2FtdWVsDQorQ29sb21iZSwgTWljaGVsDQorQ29scXVob3VuLCBBbGV4YW5kZXINCitDb2xxdWhvdW4sIFJvYmVydA0KK0NvbHRvbiwgV2lsbGlhbSBSb2JlcnQNCitDb2x2aWxsZSwgQWxleA0KK0NvbHZpbiBBbmRyYWRlLCBNYXJ0YQ0KK0NvbWFuLCBDaGFybG90dGUgQnVlbGwNCitDb21mb3J0LCBDaGFybGVzIEYuDQorQ29uYW50IExpbW5lciwgVGhlDQorQ29uY2EsIFNlYmFzdGlhbm8NCitDb25kZSwgRWR1YXJkbw0KK0NvbmRlciwgQ2hhcmxlcw0KK0NvbmRvLCBHZW9yZ2UNCitDb25lLCBNYXJ2aW4NCitDb25lZ2xpYW5vLCBHaWFtYmF0dGlzdGEgQ2ltYSBkYQ0KK0Nvbmdkb24sIFdpbGxpYW0NCitDb25pbnhsb28sIEdpbGxpcyB2YW4NCitDb25uYWgsIEpvaG4NCitDb25uYXJkLCBQaGlsaXANCitDb25uZWxsLCBTdGVwaGVuDQorQ29ubmVsbCwgU3liaWwNCitDb25uZWxseSwgQnJpYW4NCitDb25yYWQsIEN5cmlsIEguDQorQ29ucm95LCBTdGVwaGVuDQorQ29uc2FncmEsIFBpZXRybw0KK0NvbnN0YWJsZSwgSm9obg0KK0NvbnN0YWJsZSwgTGlvbmVsIEJpY2tuZWxsDQorQ29uc3RhbnQsIEJlbmphbWluDQorQ29uc3RhbnRpbiwgRGltaXRyaW9zDQorQ29vayBvZiBQbHltb3V0aCwgV2lsbGlhbQ0KK0Nvb2ssIEV0aGVsDQorQ29vaywgR2xhZHlzIEVtZXJzb24NCitDb29rLCBIb3dhcmQNCitDb29rLCBMaWENCitDb29rZSwgQmFycmllDQorQ29va2UsIEVkd2FyZCBXaWxsaWFtDQorQ29va2UsIEdlb3JnZQ0KK0Nvb2tlLCBMLk0uDQorQ29vcGVyIEpyLiwgUmljaGFyZA0KK0Nvb3BlciwgQWJyYWhhbQ0KK0Nvb3BlciwgQWxmcmVkIEVnZXJ0b24NCitDb29wZXIsIENvbGluIENhbXBiZWxsDQorQ29vcGVyLCBFbW1hIExhbXBlcnQNCitDb29wZXIsIEdlb3JnZQ0KK0Nvb3BlciwgU2FtdWVsDQorQ29vcGVyLCBUaG9tYXMgU2lkbmV5DQorQ29vcGVyLCBXYXNoaW5ndG9uIEJvZ2FydA0KK0Nvb3BlciwgV2lsbGlhbQ0KK0Nvb3JuaGVydCwgRGlyY2sgVm9sa2VydHN6b29uDQorQ29wZSwgR2VvcmdlDQorQ29wbGV5LCBKb2huIFNpbmdsZXRvbg0KK0NvcHBlZGdlLCBGZXJuIElzYWJlbA0KK0NvcHBvIGRpIE1hcmNvdmFsZG8NCitDb3F1ZXMsIEdvbnphbGVzDQorQ29yYmV0LCBNYXR0aGV3IFJpZGxleQ0KK0NvcmJldHQsIEVkd2FyZA0KK0NvcmJpbm8sIEpvbg0KK0NvcmJvdWxkLCBIZW5yeQ0KK0NvcmJvdWxkLCBSaWNoYXJkDQorQ29yYnVzaWVyLCBMZQ0KK0NvcmRpZXIsIENoYXJsZXMgSGVucmkgSm9zZXBoDQorQ29yZGllciwgTmljb2xhcw0KK0NvcmVuemlvLCBCZWxpc2FyaW8NCitDb3JpbnRoLCBMb3Zpcw0KK0NvcmludGhpYW5pemluZyBQYWludGVyLCBUaGUNCitDb3Jpb2xhbm8sIEJhcnRvbG9tZW8NCitDb3Juw6gsIE1pY2hlbGUgRmVsaWNlDQorQ29ybmVpbGxlIGRlIEx5b24NCitDb3JuZWlsbGUsIEplYW4tQmFwdGlzdGUNCitDb3JuZWxpdXMsIFBldGVyIHZvbg0KK0Nvcm5lbGwsIEpvc2VwaA0KK0Nvcm5lbGwsIFRob21hcw0KK0Nvcm5veWVyLCBQYXVsDQorQ29yb3QsIEplYW4tQmFwdGlzdGUtQ2FtaWxsZQ0KK0NvcnJhZGluaSwgQW50b25pbw0KK0NvcnJlZ2dpbw0KK0NvcnRlcywgRWRvdWFyZA0KK0NvcnZpLCBEb21lbmljbw0KK0Nvc2dyb3ZlLCBTdGFubGV5DQorQ29zc2EsIEZyYW5jZXNjbyBkZWwNCitDb3NzaWVycywgSmFuDQorQ29zc2lvLCBQYW5jaG8NCitDb3N0YSwgQXJ0dXIgVGltw7N0ZW8gZGENCitDb3N0YSwgTG9yZW56bw0KK0Nvc3RhLCBPbGdhDQorQ29zdGFuemksIFBsYWNpZG8NCitDb3N0aWdhbiwgSm9obiBFLg0KK0Nvc3dheSwgTWFyaWENCitDb3N3YXksIFJpY2hhcmQNCitDb3QsIFBpZXJyZS1BdWd1c3RlDQorQ290ZXIsIENvbGlqbiBkZQ0KK0NvdGVzLCBGcmFuY2lzDQorQ290bWFuLCBKb2huIEpvc2VwaA0KK0NvdG1hbiwgSm9obiBTZWxsDQorQ290dGllciwgRGFuaWVsDQorQ290dGluZ2hhbSwgUm9iZXJ0DQorQ291ZGVyLCBMb3Vpcy1DaGFybGVzLUF1Z3VzdGUNCitDb3VuaWhhbiwgTm9lbA0KK0NvdXBlciwgV2lsbGlhbQ0KK0NvdXJiZXQsIEd1c3RhdmUNCitDb3VydGVyLCBGcmFua2xpbiBDLg0KK0NvdXJ0b2lzLCBHdWlsbGF1bWUNCitDb3VydG9pcywgSmFjcXVlcw0KK0NvdXNlLCBFYW5nZXIgSXJ2aW5nDQorQ291c2luIHRoZSBFbGRlciwgSmVhbg0KK0NvdXNpbmV0LCBIZW5yaS1OaWNvbGFzDQorQ291c2lucywgU2FtdWVsDQorQ291c3RvdSB0aGUgRWxkZXIsIEd1aWxsYXVtZQ0KK0NvdXN0b3UsIE5pY29sYXMNCitDb3V0dXJlLCBDaHJpc3Rpbg0KK0NvdXR1cmUsIFRob21hcw0KK0NvdmFycnViaWFzLCBNaWd1ZWwNCitDb3dlcnQsIEhhbmsNCitDb3dpbiwgRWlsZWVuDQorQ293bGVzLCBSdXNzZWxsDQorQ293bGV5LCBSZXRhIE1hZGVsaW5lDQorQ293cGVyLCBGcmFuaw0KK0NveCwgRGF2aWQNCitDb3gsIEdhcmRuZXINCitDb3gsIEpvaG4gUm9nZXJzDQorQ294LCBLZW4NCitDb3gsIEtlbnlvbg0KK0NveCwgU3RlcGhlbg0KK0NveCwgV2FsdGVyIEkuDQorQ294Y2llLCBNaWNoaWVsIHZhbg0KK0NveWUsIExlZSBCcm93bg0KK0NveXBlbCwgQW50b2luZQ0KK0NveXBlbCwgQ2hhcmxlcy1BbnRvaW5lDQorQ295cGVsLCBOb8OrbA0KK0NveXNldm94LCBBbnRvaW5lDQorQ296ZW5zLCBBbGV4YW5kZXINCitDb3plbnMsIEpvaG4gUm9iZXJ0DQorQ296emFyZWxsaSwgR2lhY29tbw0KK0NvenphcmVsbGksIEd1aWRvY2Npbw0KK0NyYWRvY2ssIE1hcm1hZHVrZQ0KK0NyYWdnLCBUb255DQorQ3JhaWctTWFydGluLCBNaWNoYWVsDQorQ3JhbmFjaCB0aGUgRWxkZXIsIEx1Y2FzDQorQ3JhbmFjaCB0aGUgWW91bmdlciwgTHVjYXMNCitDcmFuY2gsIEpvaG4NCitDcmFuZSwgQW5uZQ0KK0NyYW5lLCBCcnVjZQ0KK0NyYW5lLCBXYWx0ZXINCitDcmFuc3RvbiwgVG9sbGVyDQorQ3Jhd2ZvcmQsIExlbg0KK0NyYXdmb3JkLCBSYWxzdG9uDQorQ3Jhd2ZvcmQsIFRob21hcw0KK0NyYXh0b24sIEpvaG4NCitDcmF5ZXIsIEdhc3BhciBkZQ0KK0NyZW1hLCBHaW92YW4gQmF0dGlzdGENCitDcmVzcGksIERhbmllbGUNCitDcmVzcGksIEdpb3Zhbm5pIEJhdHRpc3RhDQorQ3Jlc3BpLCBHaXVzZXBwZSBNYXJpYQ0KK0NyZXN3aWNrLCBUaG9tYXMNCitDcmV0aSwgRG9uYXRvDQorQ3JldXpuYWNoLCBDb25yYWQgRmFiZXIgdm9uDQorQ3Jpb2xsbywgSm9zw6kNCitDcmlzcywgSi4gRnJhbmNpcw0KK0NyaXN0YWxsLCBKb3NodWENCitDcmlzdG9mb2wgUGVyYWxiYSwgTGVhbmRyZQ0KK0NyaXN3ZWxsLCBXYXJyZW4NCitDcml0Y2hlciwgQ2F0aGVyaW5lDQorQ3JpdmVsbGksIENhcmxvDQorQ3JpdmVsbGksIFZpdHRvcmlvDQorQ3JvY2VmaXNzaSwgU2ltb25lIGRlaQ0KK0Nyb2l4IEksIEplYW4gZGUgbGENCitDcm9sYSwgR2VvcmctSGVpbnJpY2gNCitDcm9tZSwgSm9obg0KK0Nyb213ZWxsLCBKb2FuZQ0KK0Nyb25hLCBSdWRvbGYNCitDcm9va2UsIFJheQ0KK0Nyb29zLCBBbnRob25pZSBKYW5zei4gdmFuIGRlcg0KK0Nyb3BzZXksIEphc3BlciBGcmFuY2lzDQorQ3Jvc2F0bywgR2lvdmFubmkgQmF0dGlzdGENCitDcm9zcywgRG9yb3RoeQ0KK0Nyb3NzLCBIZW5yaS1FZG1vbmQNCitDcm90Y2gsIERyLiBXaWxsaWFtDQorQ3Jvd2UsIEV5cmUNCitDcm96aWVyLCBXaWxsaWFtDQorQ3J1aWNrc2hhbmssIFdpbGxpYW0NCitDcnVpa3NoYW5rLCBHZW9yZ2UNCitDcnVpa3NoYW5rLCBJc2FhYw0KK0NydW1ibywgV29vZHkNCitDcnV6LCBFbWlsaW8NCitDcnV6LCBKdWFuIFBhbnRvamEgZGUgbGENCitDc8OzaywgSXN0dsOhbg0KK0Nzb250dsOhcnkgS29zenRrYSwgVGl2YWRhcg0KK0N1Y2NoaSwgRW56bw0KK0N1ZXZhcywgSm9zw6kgTHVpcw0KK0N1aXR0IEpyLiwgR2VvcmdlDQorQ3VsbGVuLCBNYXVyaWNlIEdhbGJyYWl0aA0KK0N1bHZlcmhvdXNlLCBKb2hhbm4gTS4NCitDdW1taW5ncywgTWljaGFlbA0KK0N1bXBzdG9uLCBOZXZpbg0KK0N1bmRhbGwsIENoYXJsZXMNCitDdW5lbywgUmluYWxkbw0KK0N1bm5pbmdoYW0sIEJlbg0KK0N1bm5pbmdoYW0sIEVhcmwNCitDdW5uaW5naGFtLCBJbW9nZW4NCitDdXJub2UsIEdyZWcNCitDdXJyYWRpLCBGcmFuY2VzY28NCitDdXJyYW4sIENoYXJsZXMgQ291cnRuZXkNCitDdXJyaWVyIGFuZCBJdmVzDQorQ3VycnkgLENodWNrDQorQ3VycnkgSUksIEF1c3Rpbg0KK0N1cnJ5LCBKb2huIFN0ZXVhcnQNCitDdXJ0aXMsIEVkd2FyZCBTLg0KK0N1cnRpcywgUGhpbGlwDQorQ3VydGlzLCBSLlcuDQorQ3VzdGlzLCBFbGVhbm9yIFBhcmtlDQorQ3V0aGJlcnRzb24sIEFyY2gNCitDdXljayBWYW4gTXllcm9wLCBGcmFucw0KK0N1eXAsIEFlbGJlcnQNCitDdXlwLCBCZW5qYW1pbiBHZXJyaXRzei4NCitDdXlwLCBKYWNvYiBHZXJyaXR6Lg0KK0RhYm8sIExlb24NCitEYWNvc3RhLCBNaWx0b24NCitEYWNyZSwgTGFkeQ0KK0RhZGQsIFJpY2hhcmQNCitEYWRkaSwgQmVybmFyZG8NCitEYWVsLCBKYW4gRnJhbnMgdmFuDQorRGFnbmFuLUJvdXZlcmV0LCBQYXNjYWwtQWRvbHBoZS1KZWFuDQorRGFobCwgSm9oYW4gQ2hyaXN0aWFuDQorRGFobCwgTWljaGFlbA0KK0RhaW5nZXJmaWVsZCwgRWxsaW90dA0KK0RhbCBQb250ZSwgR2lvdmFubmkNCitkYWwgU29sZSwgR2lvdmFubmkgR2lvc2VmZm8NCitEYWxlbSwgQ29ybmVsaXMgdmFuDQorRGFsZ2FhcmQsIENocmlzdGVuDQorRGFsw60sIFNhbHZhZG9yDQorRGFsbCwgTmljaG9sYXMgVGhvbWFzDQorRGFsbGUgTWFzZWduZSwgSmFjb2JlbGxvDQorRGFsbWF0YSwgR2lvdmFubmkNCitEYWxtYXUsIEx1w61zDQorRGFsb3UsIEp1bGVzDQorRGFsc2dhYXJkLCBTdmVuDQorRGFsdG9uLCBSaWNoYXJkDQorRGFseSwgU3RldmUNCitEYWx5LCBTdGV2ZQ0KK0RhbWVyLCBBbm5lIFNleW1vdXINCitEYW5hLCBGcmENCitEYW5ieSwgRnJhbmNpcw0KK0RhbmJ5LCBLZW4NCitEYW5jZSBJSSwgR2VvcmdlDQorRGFuY2UtSG9sbGFuZCwgU2lyIE5hdGhhbmllbA0KK0RhbmRpbmksIENlc2FyZQ0KK0RhbmRyw6ktQmFyZG9uLCBNaWNoZWwtRnJhbsOnb2lzDQorRGFuZHJpZGdlLCBCYXJ0aG9sb21ldw0KK2QnQW5nZXJzLCBQaWVycmUgSmVhbiBEYXZpZA0KK0RhbmllbGwsIFRob21hcw0KK0RhbmllbGwsIFdpbGxpYW0NCitEYW5sb3V4LCBIZW5yaS1QaWVycmUNCitEYW5uZXIsIEpvc2VmDQorRGFudGksIFZpbmNlbnpvDQorRGFuemlnZXIsIFlpdHpoYWsNCitEYXBobmlzLCBOYXNzb3MNCitEYXJib3ZlbiwgSGFubmUNCitEYXJieSwgSGVucnkgRi4NCitEJ0FyY2FuZ2VsbywgQWxsYW4NCitEYXJldCwgSmFjcXVlcw0KK0RhcmV0LCBKZWFuDQorRGFyaXVzIFBhaW50ZXIsIFRoZQ0KK0RhcmxleSwgRmVsaXggT2N0YXZpdXMgQ2Fycg0KK0Rhc2J1cmcsIEFuZHJldw0KK0RhdWJpZ255LCBDaGFybGVzLUZyYW7Dp29pcw0KK0RhdWNoZXIsIEFkb2xmDQorRGF1bGzDqSwgSmVhbg0KK0RhdW1pZXIsIEhvbm9yw6kNCitEYXV4LCBDLiBFZG1vbmQNCitEYXV6YXRzLCBBZHJpZW4NCitEYXZlbnBvcnQsIElhbg0KK0RhdmlkLCBDaGFybGVzDQorRGF2aWQsIEdlcmFyZA0KK0RhdmlkLCBKYWNxdWVzLUxvdWlzDQorRGF2aWQsIE1pY2hhZWwNCitEYXZpZHNvbiwgSm8NCitEYXZpZHNvbiwgUm9iZXJ0DQorRGF2aWUsIEFsYW4NCitEYXZpZXMsIEFydGh1ciBCb3dlbg0KK0RhdmllcywgRGFubnkNCitEYXZpZXMsIERhdmlkDQorRGF2aWVzLCBKb2huDQorRGF2aWVzLCBLZW5uZXRoDQorRGF2aWVzLCBULg0KK0RhdmlzLCBDaGFybGVzIEhhcm9sZA0KK0RhdmlzLCBEb3VnbGFzDQorRGF2aXMsIEVtbWEgRWFybGVuYmF1Z2gNCitEYXZpcywgR2VuZQ0KK0RhdmlzLCBIZW5yeSBXaWxsaWFtIEJhbmtzDQorRGF2aXMsIEpvaG4gU2NhcmxldHQNCitEYXZpcywgSm9zZXBoIEguDQorRGF2aXMsIFJpY2hhcmQgVGhvbWFzDQorRGF2aXMsIFN0dWFydA0KK0RhdmlzLCBVbHlzc2VzDQorRGF2aXMsIFdpbGxpYW0NCitEYXcsIExlaWxhDQorRGF3ZSwgR2VvcmdlDQorRGF3ZXMsIEVkd2luDQorRGF3c29uLCBEYXZpZA0KK0Rhd3NvbiwgSmFuZXQNCitEYXdzb24tV2F0c29uLCBKb2huDQorRGF5LCBGb3JzaGF3DQorRGF5LCBGcmFuY2lzDQorRGF5LCBGcmFuaw0KK0RheWVzLCBFZHdhcmQNCitEZSBCYWNrZXIsIEphY3F1ZXMNCitkZSBDaGlyaWNvLCBHaW9yZ2lvDQorRGUgRm9yZXN0LCBSb3kNCitEZSBGcmFuY2lhLCBQZXRlcg0KK0RlIEdyZXksIFNpciBSb2dlcg0KK0RlIEhhdmVuLCBGcmFua2xpbg0KK2RlIEtvb25pbmcsIEVsYWluZSBGcmllZA0KK2RlIEtvb25pbmcsIFdpbGxlbQ0KK0RlIExvdXRoZXJib3VyZywgUGhpbGlwcGUgSmFjcXVlcw0KK2RlIE1leWVyLCBCYXJvbiBBZG9sZiBHYXluZQ0KK0RlIE1vbmNoYXV4LCBDYXRoeQ0KK0RlIE1vcmdhbiwgRXZlbHluDQorZGUgUml2ZXJhLCBKb3PDqQ0KK2RlIFN0YWVsLCBOaWNob2xhcw0KK2RlIFZyaWVzLCBBdWtlDQorRGUgV2lsZGUsIFNhbXVlbA0KK0RlIFdpbnQsIFBldGVyDQorRGUgV2l0dGUsIFBldGVyDQorRGVhY29uLCBKYW1lcw0KK0RlYWNvbiwgUmljaGFyZA0KK0Rlw6FrLcOJYm5lciwgTGFqb3MNCitEZWFraW4sIEVkd2luDQorRGVBbmRyZWEsIEpvaG4NCitEZWFyZSwgSm9obg0KK0RlYXJ0aCwgSGVucnkgR29sZGVuDQorZGUnQmFyYmFyaSwgSmFjb3BvDQorRGViYXNzaWdlLCBCbGFrZQ0KK0RlYmF0LVBvbnNhbiwgRWRvdWFyZA0KK0RlYnVjb3VydCwgTG91aXMtUGhpbGliZXJ0DQorRGVDYW1wLCBKb3NlcGgNCitEZUNhbXAsIFJhbHBoIEUuDQorRGVjYW1wcywgQWxleGFuZHJlLUdhYnJpZWwNCitEZUNhcmF2YSwgUm95DQorRGVDcmVlZnQsIEpvc8OpDQorZGVEZWlnbywgSnVsaW8NCitEZWZyYW5jZSwgTMOpb25hcmQNCitEZWdhcywgRWRnYXINCitEZWdvdXZlIGRlIE51bmNxdWVzLCBXaWxsaWFtDQorRGVHcmFpbGx5LCBWLg0KK0RlaGFhcywgQWxpY2UgUHJlYmxlIFR1Y2tlcg0KK0RlaG4sIEFkb2xmDQorRGVobmVyLCBEb3JvdGh5DQorRGVra2VycywgQWQNCitkZWwgQ2FzZW50aW5vLCBKYWNvcG8NCitEZWwgUGV6em8sIEx1Y2lvDQorRGVsYWNyb2l4LCBFdWfDqG5lDQorRGVsYW1vdHRlLCBXaWxsaWFtIEFsZnJlZA0KK0RlbGFuZXksIEJlYXVmb3JkDQorRGVsYW5leSwgSm9zZXBoDQorRGVsYXJvY2hlLCBQYXVsDQorRGVsYXVuYXksIEp1bGVzLUVsaWUNCitEZWxhdW5heSwgUm9iZXJ0DQorRGVsYXVuYXksIFNvbmlhDQorRGVsYXVuZSwgw4l0aWVubmUNCitEZWxib3MsIEMuIEVkbXVuZA0KK0RlbGVuLCBEaXJjayB2YW4NCitEZWxmaW5vDQorZGVsbGEgVmFsbGUsIEZpbGlwcG8NCitkZWxsJ0FiYmF0ZSwgTmljY29sw7INCitEZWxvcnQsIENoYXJsZXMgRWRvdWFyZA0KK0RlbHZhdXgsIFBhdWwNCitEZWx2aWxsZSwgSmVhbg0KK0RlbHZveWUsIFdpbQ0KK0RlbHllbiwgSmFjcXVlcy1GcmFuw6dvaXMNCitEZW1hcm5lLCBKZWFuLUxvdWlzDQorRGVtYXJ0ZWF1LCBHaWxsZXMNCitEZU1hcnRlbGx5LCBKb2huIFMuDQorZGVNYXJ0aW5pLCBKb3NlcGgNCitEZW11dGgsIENoYXJsZXMNCitEZW5lcywgQWduZXMNCitEZW5oYW0sIEpvaG4gQ2hhcmxlcw0KK0RlbmlzLCBNYXVyaWNlDQorRGVuaXNvbiBMaW1uZXIsIFRoZQ0KK0Rlbm5lciwgQmFsdGhhc2FyDQorRGVubmluZywgU3RlcGhlbiBQb3ludHoNCitEZW5uaXMsIE1pY2hhZWwNCitEZW5uaXMsIFdheW5lDQorRGVubnksIFJvYnluDQorRGVub24sIEJhcm9uIERvbWluaXF1ZSBWaXZhbnQNCitEZXBlcm8sIEZvcnR1bmF0bw0KK0RlcHBlLCBGZXJkaW5hbmQNCitEZXJhaW4sIEFuZHLDqQ0KK0RlcmJ5LCBXaWxsaWFtDQorRGVybm92aWNoLCBEb24NCitkZSdSb2JlcnRpLCBFcmNvbGUNCitEZXJvdWluLCBSZW7DqQ0KK0RlcnVldCwgQ2xhdWRlDQorRGVzIEdyYW5nZXMsIERhdmlkDQorRGVzYm91dGluLCBNYXJjZWxsaW4gR2lsYmVydA0KK0Rlc2NoLCBGcmFuayBILg0KK0Rlc2NvdXJ0aXMsIENoYXJsZXMtTWVsY2hpb3INCitEZXNoYXlzLCBKZWFuLUJhcHRpc3RlDQorRGVzaWRlcmlvIGRhIFNldHRpZ25hbm8NCitEZXNpZGVyaW8sIFZpbmNlbnQNCitEZXNqYXJkaW5zLCBNYXJ0aW4NCitEZXNwaWF1LCBDaGFybGVzDQorRGVzcG9ydGVzLCBBbGV4YW5kcmUtRnJhbsOnb2lzDQorRGVzc2FyLCBMb3VpcyBQYXVsDQorRGVTdGFlYmxlciwgU3RlcGhlbg0KK0Rlc3VibGVvLCBNaWNoZWxlDQorRMOpdGFpbGxlLCDDiWRvdWFyZA0KK0RldG91Y2hlLCBIZW5yeS1KdWxpZW4NCitEZXZhbWJleiwgQW5kcsOpDQorRGV2ZXJlbGwsIFdhbHRlciBIb3dlbGwNCitEZXbDqXJpYSwgQWNoaWxsZQ0KK0RldmlsbHksIExvdWlzLVRow6lvZG9yZQ0KK0RldmlzLCBBbnRob255DQorRGV2aXMsIEFydGh1cg0KK0Rldm90bywgSm9obg0KK0RldywgSmFtZXMNCitEZVdlZXNlLCBCb2INCitEZVdlZXNlLCBHZW5uaWUNCitEZVdlZXNlLCBSb2JlcnQNCitEZXdpbmcsIE1hcmlhIE9ha2V5DQorRGV3aW5nLCBUaG9tYXMgV2lsbWVyDQorRGV4dGVyLCBIZW5yeQ0KK0RleHRlciwgV2FsdGVyDQorZCdIb25kZWNvZXRlciwgTWVsY2hpb3INCitEaSBSdWdnaWVybywgQ2FybWluZQ0KK2RpIFN1dmVybywgTWFyaw0KK0RpYWwgU3IuLCBUaG9ybnRvbg0KK0RpYW1vbmQsIERyLiBIdWdoIFdlbGNoDQorRGlhbmEsIEJlbmVkZXR0bw0KK0TDrWF6IGRlIGxhIFBlw7FhLCBOYXJjaXNzZS1WaXJnaWxlDQorRGliYmV0cywgSmFuDQorRGlja2Vyc29uLCBSb2JlcnQNCitEaWNraW5zb24sIFByZXN0b24NCitEaWNraW5zb24sIFNpZG5leSBFLg0KK0RpY2tzZWUsIFNpciBGcmFuaw0KK0RpY2tzZWUsIFRob21hcyBGcmFuY2lzDQorRGlja3NvbiwgSmFuZQ0KK0RpZWJlbmtvcm4sIFJpY2hhcmQNCitEaWVnbyBkZSBQZXNxdWVyYQ0KK0RpZXByYWFtLCBBYnJhaGFtDQorRGlldHJpY2gsIENocmlzdGlhbiBXaWxoZWxtIEVybnN0DQorRGlnZ3MsIFBlZ2d5DQorRGlnaHRvbiwgUmljaGFyZA0KK0RpZ2h0b24sIFJvYmVydA0KK0RpamNrLCBGbG9yaXMgdmFuDQorRGlsbGluZ2hhbSwgUmljaw0KK0RpbGxpcywgSm9oYW5uIEdlb3JnIHZvbg0KK0RpbmUsIEppbQ0KK0RpbmVyc3RlaW4sIEphbWVzDQorRGluZyBDb25nDQorRGluZyBZYW55b25nDQorRGluZyBZdW5wZW5nDQorRGluZ2xpbmdlciwgSm9oYW5uIE1lbGNoaW9yDQorRGluc21vcmUsIFN0ZXBoZW4NCitEaW9uaXNpaQ0KK0RpcHJlLCBOaWNvbGFzDQorRGlzY29uLCBXYXJyZW4NCitEaXgsIEV1bGFiZWUNCitEaXgsIE90dG8NCitEaXhvbiwgS2VuDQorRGl4b24sIE1hcmlhDQorRGl4b24sIE1heW5hcmQNCitEaXhvbiwgV2lsbGlhbQ0KK0RpemlhbmksIEdhc3BhcmUNCitEbywgR2lvdmFubmkNCitEb2JicywgRXZlcmV0dA0KK0RvYmVsbCwgV2lsbGlhbQ0KK0RvYnNvbiwgV2lsbGlhbQ0KK0RvYnNvbiwgV2lsbGlhbSBDaGFybGVzIFRob21hcw0KK0RvZGQsIERhbmllbA0KK0RvZGQsIEZyYW5jaXMNCitEb2RkLCBMYW1hcg0KK0RvZGQsIFJvYmVydA0KK0RvZGdlLCBXaWxsaWFtIERlTGVmdHdpY2gNCitEb2VzYnVyZywgVGhlbyB2YW4NCitEb2hhbiwgS2FpZ2V0c3Vkbw0KK0RvaGFub3MsIFN0ZXZhbg0KK0RvaWcsIFBldGVyDQorRG9pc25lYXUsIFJvYmVydA0KK0RvbGFuLCBFbGl6YWJldGgNCitEb2xjaSwgQ2FybG8NCitEb2xwaCwgSm9obiBIZW5yeQ0KK0RvbWJyb3dza2ksIENhcmwgUml0dGVyIHZvbg0KK0RvbWVuaWNoaW5vDQorRG9tZW5pY28gRGUnQ29yaQ0KK0RvbWVuaWNvIGRpIEJhcnRvbG8NCitEb21lbmljbyBkaSBQYXJpcw0KK0RvbWVuaWNvIFZlbmV6aWFubw0KK0RvbWluZ3VleiwgT3NjYXINCitEb21pbmljaXMsIEdpbm8gZGUNCitEb25hZ2gsIFJpdGENCitEb25haHVlLCBWaWMNCitEb25hbGQgTGlwc2tpDQorRG9uYWxkc29uLCBBbnRob255DQorRG9uw6F0LCBKw6Fub3MNCitEb25hdGVsbG8NCitEb25hdGksIEVucmljbw0KK0RvbmNrLCBHZXJhcmQNCitEb25lciwgTWljaGVsZSBPa2ENCitEb25nIFFpY2hhbmcNCitEb25nZW4sIERpb255cyB2YW4NCitEb25nZW4sIEtlZXMgdmFuDQorRG9ubmVsbHksIENodWNrDQorRG9ubmVyLCBHZW9yZyBSYXBoYWVsDQorRG9ub2dodWUsIEx5bm4NCitEb25vaG8sIEdhaW5lcyBSdWdlcg0KK0Rvb2xpdHRsZSwgQW1vcw0KK0Rvb3JuaWssIEZyYW5zIHZhbg0KK0RvcmF6aW8sIFBpZXJvDQorRG9yw6ksIEd1c3RhdmUNCitEb3JmbWVpc3RlciwgSXN0dsOhbg0KK2QnT3Jsw6lhbnMsIEV2cmFyZA0KK0Rvcm5lciwgSm9oYW5uDQorRG9ycmllbiwgQ2FybG9zDQorRG9ycmlzLCBSb3kNCitEb3JzZXksIEpvaG4NCitEJ09yc2ksIEFjaGlsbGUNCitEb3NhbWFudGVzLCBGcmFuY2lzY28NCitEb3NzaSwgRG9zc28NCitEb3UsIEdlcnJpdA0KK0RvdWdoZXJ0eSwgUGF1bA0KK0RvdWdodGVuLCBBbGljZQ0KK0RvdWdodHksIFRob21hcw0KK0RvdWdodHksIFdpbGxpYW0NCitEb3VnbGFzLCBBYXJvbg0KK0RvdWdsYXMsIEVkd2luDQorRG91Z2xhcywgU2lyIFdpbGxpYW0gRmV0dGVzDQorRG91cmlzDQorRG91dG5leSwgQ2hhcmxlcw0KK0RvdmUsIEFydGh1cg0KK0Rvd2xpbmcsIFJvYmVydA0KK0Rvd25hcmQsIEViZW5lemVyIE5ld21hbg0KK0Rvd25pbmcsIFRvbQ0KK0Rvd25tYW4sIEpvaG4NCitEb3lsZSwgQ2hhcmxlcyBBbHRhbW9udA0KK0RveWxlLCBSaWNoYXJkDQorRHJhcGVyLCBIZXJiZXJ0DQorRHJhcGVyLCBXaWxsaWFtIEZyYW5rbGluDQorRHJlY2hzbGVyLCBKb2hhbm4gQmFwdGlzdA0KK0RyZXcsIENsZW1lbnQNCitEcmV3ZXMsIFdlcm5lcg0KK0RyZXllciwgQ2xhcmljZQ0KK0RyaWdncywgRWxzaWUNCitEcsO2bGxpbmcsIE1hcnRpbg0KK0Ryb3N0LCBXaWxsZW0NCitEcm91YWlzLCBGcmFuw6dvaXMtSHViZXJ0DQorRHJvdWFpcywgSmVhbi1HZXJtYWluDQorRHJ1bW1vbmQsIEFydGh1cg0KK0RydW1tb25kLCBTYW11ZWwNCitEcnlzZGFsZSwgUnVzc2VsbA0KK0R1IE1hdXJpZXIsIEdlb3JnZQ0KK0R1IFppbGluZw0KK0R1Ym9pcywgSmFjcXVlcw0KK0R1Ym9pcy1EcmFob25ldCwgQWxleGFuZHJlLUplYW4NCitEdWJyZXVpbCwgVmljdG9yDQorRHVidWZlLCBMb3Vpcy1FZG91YXJkDQorRHVidWZmZXQsIEplYW4NCitEdWNjaW8gZGkgQnVvbmluc2VnbmENCitEdWNoYW1wLCBNYXJjZWwNCitEdWNoYW1wLVZpbGxvbiwgUmF5bW9uZA0KK0R1Y2ssIEphY29iDQorRHVjcmV1eCwgSm9zZXBoDQorRHVjcmV1eCwgUm9zZSBBZMOpbGHDr2RlDQorRHVkbGV5LCBGcmFuayBWLg0KK0R1ZXosIEVybmVzdA0KK0R1ZnJlc25lLCBDaGFybGVzDQorRHVmeSwgUmFvdWwNCitEdWdkYWxlLCBUaG9tYXMgQ2FudHJlbGwNCitEdWdnZXIsIEpvaG4NCitEdWdoZXQsIEdhc3BhcmQNCitEdWphcmRpbiwgS2FyZWwNCitEdWstaHl1biwgQ2hvDQorRHVsYWMsIEVkbXVuZA0KK0R1bWVzbmlsIHRoZSBZb3VuZ2VyLCBQaWVycmUgTG91aXMNCitEdW1vbmQsIEZyYW5rDQorRHVtb25zdGllciwgUGllcnJlDQorRHVtb250LCBKYWNxdWVzLUVkbWUNCitEdW1vdXN0aWVyIHRoZSBFbGRlciwgUGllcnJlDQorRHVuYW5kLCBKZWFuDQorRHVuYmFyLCBFdmVseW4NCitEdW5iYXIsIEhhcm9sZCBDcm9ja2VyDQorRHVuYmllciwgQXVndXN0dXMNCitEdW5jYW4sIEpvaG4NCitEdW5jYW4sIFJvYmVydA0KK0R1bmNhbiwgU3RldmUNCitEdW5jYW5zb24sIFJvYmVydCBTY290dA0KK0R1bmRhcywgRG91Z2xhcw0KK0R1bmtlciwgQmFsdGhhemFyIEFudG9uDQorRHVubGFwLCBXaWxsaWFtDQorRHVub3llciBkZSBTZWdvbnphYywgQW5kcsOpDQorRHVuc3QsIEhlaW5yaWNoDQorRHVudG9uLCBXaWxsaWFtIEhlcmJlcnQNCitEdXBhcmMsIEZyYW7Dp29pc2UNCitEdXBhcywgSmVhbg0KK0R1cGxlc3NpcywgSm9zZXBoLVNpZmZyZWQNCitEdXBvbnQsIEdhaW5zYm9yb3VnaA0KK0R1cHLDoCwgRG9tZW5pY28NCitEdXByw6ksIEdpb3Zhbm5pDQorRHVwcsOpLCBHdWlsbGF1bWUNCitEdXByw6ksIEp1bGVzDQorRHVwcsOpLCBKdWxpZW4NCitEdXB1aXMsIEdlb3JnZXMNCitEdXF1ZXNub3ksIEZyYW7Dp29pcw0KK0R1cmFuY2VhdSwgU3V6YW5uZQ0KK0R1cmFuZCwgQXNoZXIgQi4NCitEdXJhbmQsIEpvaG4NCitEdXJhbnRpLCBGb3J0dW5hdG8NCitEdXJlbiwgVGVyZW5jZQ0KK0TDvHJlciwgQWxicmVjaHQNCitEdXJoYW0sIEpvc2VwaA0KK0R1cnJpZSwgR2VvcmdlIEhlbnJ5DQorRHVzYXJ0LCBDb3JuZWxpcw0KK0R1c2VpZ25ldXIsIEplaGFuDQorRHVzZW5iZXJ5LCBXYWx0ZXINCitEdXNraWV3aWN6LCBSaWNrDQorRHVza2lld2ljeiwgUmljaw0KK0R1dmFsLCBKZWFubmUNCitEdXZhbCwgTWFyYw0KK0R1dmVuZWNrLCBFbGl6YWJldGggTHltYW4gQm9vdHQNCitEdXZlbmVjaywgRnJhbmsNCitEdXZldCwgSmVhbg0KK0R1eWNraW5jaywgR2VyYXJkdXMNCitEdXlmaHV5c2VuLCBQaWV0ZXINCitEdXlzdGVyLCBXaWxsZW0gQ29ybmVsaXN6Lg0KK0R3aWdodCwgTWFiZWwNCitEd3llciwgTmFuY3kNCitEeWNlLCBXaWxsaWFtDQorRHllciwgQ2hhcmxlcyBHaWZmb3JkDQorRHllciwgTmFuY3kNCitFYWdsZSBQYWludGVyLCBUaGUNCitFYWtpbnMsIFN1c2FuIE1hY2Rvd2VsbA0KK0Vha2lucywgVGhvbWFzDQorRWFtZXMsIENoYXJsZXMNCitFYW1lcywgUmF5DQorRWFyZGxleSwgSm9hbg0KK0VhcmwsIE1hdWQNCitFYXJsLCBSYWxwaA0KK0VhcmwsIFJhbHBoIEVsZWFzZXIgV2hpdGVzaWRlDQorRWFybGUsIEF1Z3VzdHVzDQorRWFybG9tLCBSaWNoYXJkDQorRWFzdCwgU2lyIEFsZnJlZA0KK0Vhc3RsYWtlLCBTaXIgQ2hhcmxlcyBMb2NrDQorRWFzdG1hbiwgRW1pbHkNCitFYXN0bWFuLCBSaWNvDQorRWFzdG1hbiwgU2V0aA0KK0VhdG9uLCBDaGFybGVzIFdhcnJlbg0KK0VhdG9uLCBXaWxsaWFtIEIuDQorRWF0b24sIFd5YXR0DQorRWJlcnQsIENoYXJsZXMNCitFYmVydCwgTWFyeSBSb2JlcnRzDQorRWJlcnosIEpvc2VmDQorRWJ5LCBLZXJyDQorRWNoZXZhcnLDrWEsIEp1YW4gZGUNCitFY2thcnQsIENocmlzdGlhbg0KK0Vja2Vyc2JlcmcsIENocmlzdG9mZmVyIFdpbGhlbG0NCitFZGRpcywgRWRlbiBVcHRvbg0KK0VkZHksIERvbg0KK0VkZWxmZWx0LCBBbGJlcnQNCitFZGVuc2hhdywgQ2hhcmxlcw0KK0VkbW9uZHMsIEZyYW5jaXMgV2lsbGlhbQ0KK0VkbW9uZHNvbiwgV2lsbGlhbQ0KK0VkcmlkZ2UsIEhlbnJ5DQorRWRzb24sIEFsYW4NCitFZHdhcmRzLCBCaWxseQ0KK0Vkd2FyZHMsIEVkd2luDQorRWR3YXJkcywgR2VvcmdlIFdoYXJ0b24NCitFZHdhcmRzLCBNZWx2aW4NCitFZWNraG91dCwgR2VyYnJhbmQgdmFuIGRlbg0KK0VlcnR2ZWx0LCBBbmRyaWVzIHZhbg0KK0VnZW5hdSBNb29yZSwgSnVhbg0KK0VnZXJpLCBLYXJsIHZvbg0KK0VnZywgQXVndXN0dXMgTGVvcG9sZA0KK0VnZ2VtZXllciwgTWF1ZGUgS2F1Zm1hbg0KK0VnZ2VyLCBWaWxtb3MNCitFZ2dsZXN0b24sIFdpbGxpYW0NCitFZ3J5LCBKw7N6c2VmDQorRWhuaW5nZXIsIEpvaG4gV2hldHRlbg0KK0VocmVuYmVyZywgV2lsaGVsbSBTY2h1YmVydCB2YW4NCitFaWNoZW5iZXJnLCBGcml0eg0KK0VpY2hob2x0eiwgSmFjb2INCitFaWNraG9mZiwgR290dGZyZWQNCitFaWxzaGVtaXVzLCBMb3Vpcw0KK0Vpc2VuLCBDaGFybGVzIERvbWluaXF1ZQ0KK0Vpc2VudHJhZ2VyLCBKYW1lcw0KK0Vpc3VpLCBJY2hpcmFrdXRlaQ0KK0VpemFuLCBLaWt1Z2F3YQ0KK0VsaW5nYSwgUGlldGVyIEphbnNzZW5zDQorRWxrLCBHZXIgdmFuDQorRWxsZXJodXNlbiwgRmxvcmVuY2UgQ29vbmV5DQorRWxsaW90dCwgQ2hhcmxlcyBMb3JpbmcNCitFbGxpcywgSGFydmV5DQorRWxzaGVpbWVyLCBBZGFtDQorRWx2Z3JlbiwgR2lsDQorRW1lcnksIExpbg0KK0VtaW4sIFRyYWNleQ0KK0VtbWV0LCBMeWRpYSBGaWVsZA0KK0Vtc2xpZSwgQWxmcmVkIEVkd2FyZA0KK0VuY2tlbGwsIE1hZ251cw0KK0VuZ2xlaGVhcnQsIEdlb3JnZQ0KK0VuamFrdQ0KK0Vuam9ybGFzLCBEZWxwaGluDQorRW5reW8sIEthYnVraWRvDQorRW5uZWtpbmcsIEpvaG4gSi4NCitFbnNvciwgSmFtZXMNCitFcGlrdGV0b3MNCitFcGltZW5lcw0KK0Vwc3RlaW4sIEphY29iDQorRXJoYXJkdCwgTWljaGVsDQorRXJoYXJ0LCBHcmVnb3INCitFcmljaHNlbiwgVmlnaWxpdXMNCitFcmlja3NvbiwgTmFuY3kNCitFcmljc29uLCBEYXZpZA0KK0VybGViYWNoZXIsIE1hcnRoYSBNYXllcg0KK0VybnN0LCBKaW1teQ0KK0VybnN0LCBNYXgNCitFcm5zdCwgUnVkb2xwaA0KK0VycmksIEFnbm9sbyBkZWdsaQ0KK0VycsOzDQorRXJ0w6kNCitFcywgSmFjb2IgdmFuDQorRXNjYWxhbnRlLCBKdWFuIEFudG9uaW8NCitFc2NoZXIsIE0uQy4NCitFc2lndW8sIE1hZXN0cm8NCitFc3Bpbm9zYSwgSnVhbiBkZQ0KK0VzcG95LCBBbmdlbA0KK0Vzc2VsZW5zLCBKYWNvYg0KK0VzdGVuc2UsIEJhbGRhc3NhcmUNCitFc3RlcywgUmljaGFyZA0KK0V0aWRsb29pZSwgS2luZ21lYXRhDQorRXRyb2csIFNvcmVsDQorRXR0eSwgV2lsbGlhbQ0KK0V1bi1obywgS2ltDQorRXVwaHJvbmlvcw0KK0V1cG9saXMgUGFpbnRlcg0KK0V1cmljaCwgUmljaGFyZA0KK0V1c3RhY2UsIEEuVy4NCitFdXhpdGhlb3MNCitFdmFucywgRGUgU2NvdHQNCitFdmFucywgRWR3aW4NCitFdmFucywgRnJlZGVyaWNrIEhlbnJ5DQorRXZhbnMsIEdhcnkNCitFdmFucywgSmVzc2llIEJlbnRvbg0KK0V2YW5zLCBNYXJ5IFBhZ2UNCitFdmFucywgTWlubmllDQorRXZhbnMsIFdhbGtlcg0KK0V2ZXJkaW5nZW4sIEFsbGFydCB2YW4NCitFdmVyZGluZ2VuLCBDZXNhciB2YW4NCitFdmVyZ29vZCwgTWlsZXMNCitFdmVyZ29vZCwgUGhpbGlwDQorRXZlcnNlbiwgQWRyaWFudXMNCitFd2JhbmssIEpvaG4gV2lsc29uDQorRXdlbiwgUGF0ZXJzb24NCitFd29ydGgsIEhhbnMNCitFeGVraWFzDQorRXljaywgSHViZXJ0IHZhbg0KK0V5Y2ssIEphbiB2YW4NCitFeXJlLCBJdmFuDQorRXl0b24sIEFudGhvbnkNCitGYWJicmksIEFuZ2Vub3JlDQorRmFiZXIgdGhlIFlvdW5nZXIsIEpvaG4NCitGYWJlcmfDqSwgQ2FybA0KK0ZhYnJlLCBGcmFuw6dvaXMtWGF2aWVyDQorRmFicml0aXVzLCBCYXJlbnQNCitGYWJyaXRpdXMsIENhcmVsDQorRmFicm8sIEx1Y2lhbm8NCitGYWNjaW5pLCBQaWV0cm8NCitGYWVkLCBKb2huDQorRmFlZCwgVGhvbWFzDQorRmFlcywgUGV0ZXINCitGYWZhcmQsIEpvZQ0KK0ZhZ2FuLCBSb2JlcnQNCitGYWdnaSwgQWxmZW8NCitGYWlyYmFua3MsIEF2YXJkIFQuDQorRmFpcmJhbmtzLCBTZW1hbnRoYQ0KK0ZhaXJicm90aGVyLCBSb2INCitGYWlyd2VhdGhlciwgSWFuDQorRmFsY2lhdG9yZSwgRmlsaXBwbw0KK0ZhbGNpZXJpLCBCaWFnaW8NCitGYWxjb25ldCwgw4l0aWVubmUtTWF1cmljZQ0KK0ZhbGNvbmV0LCBQaWVycmUtw4l0aWVubmUNCitGYWxlcm8sIEx1aXMgUmljYXJkbw0KK0ZhbGssIEdhdGhpZQ0KK0ZhbHRlciwgSm9obiBQaGlsbGlwDQorRmFuIEt1YW4NCitGYW5jZWxsaSwgQ29zaW1vDQorRmFuY2VsbGksIFBpZXRybw0KK0ZhbmcgSml6aG9uZw0KK0ZhbmcgWmVuZ3hpYW4NCitGYW5nIFpoYW9saW4NCitGYW50aW4tTGF0b3VyLCBIZW5yaQ0KK0ZhbnphZ28sIENvc2ltbw0KK0ZhcmluYXRpLCBQYW9sbw0KK0ZhcmluZ3RvbiwgSm9zZXBoDQorRmFyaXMsIEpvc2VwaCBBbmRlcnNvbg0KK0ZhcmthcywgSXN0dsOhbg0KK0Zhcm0sIEdlcmFsZA0KK0Zhcm1lciwgSm9obg0KK0Zhcm55LCBIZW5yeSBGLg0KK0ZhcnF1YXJzb24sIERhdmlkDQorRmFyciwgRWxsZW4gQnVycGVlDQorRmFycmVsbCwgS2F0aGVyaW5lIExldmluZQ0KK0ZhcnJlciwgQ2hhcmxlcw0KK0ZhcnJlciwgSGVucnkNCitGYXJyZXJhcywgRnJhbmNpc2NvDQorRmF0dG9yaSwgR2lvdmFubmkNCitGYXV2ZWxldCwgSmVhbi1CYXB0aXN0ZQ0KK0ZheG9uLCBSaWNoYXJkDQorRmF5ZGhlcmJlLCBMdWMNCitGYXllLCBBc3NhbmUNCitGYXp6aW5pLCBQZXJpY2xlDQorRmVhcm9uLCBIaWxkYQ0KK0ZlY2hpbiwgTmljb2xhaQ0KK0ZlZGksIEdpdXNlcHBpDQorRmVpbmluZ2VyLCBMeW9uZWwNCitGZWl0ZWxzb24sIExvcnNlcg0KK0Zla2UsIFJvYmVydA0KK0ZlbGd1w6lyZXosIE1hbnVlbA0KK0ZlbmRlcmljaCwgQ2hhcmxlcw0KK0ZlbmRpLCBQZXRlcg0KK0ZlbmcgS2FuZ2hvdQ0KK0ZlbmcgTWVuZ2JvDQorRmVuZyBaaWthaQ0KK0Zlbm5la2VyLCBKb3NlZg0KK0ZlbnRvbiwgUm9nZXINCitGZW50b24sIFRlcnJ5DQorRsOpbnllcywgQWRvbGYNCitGZXJiZXIsIEhlcmJlcnQNCitGZXJlbmN6eSwgS8Ohcm9seQ0KK0Zlcmd1c29uLCBHZXJhbGQNCitGZXJuw6FuZGV6IExlZGVzbWEsIEdhYnJpZWwNCitGZXJuw6FuZGV6LCBHcmVnb3Jpbw0KK0Zlcm7DoW5kZXosIEx1aXMNCitGZXJuZWxleSBJLCBKb2huDQorRmVybmVsZXkgSUksIEpvaG4NCitGZXJyYW50IHkgVmF6cXVleiwgQW5nZWwNCitGZXJyYXJhLCBKYWNraWUNCitGZXJyYXJpLCBEZWZlbmRlbnRlDQorRmVycmFyaSwgR2F1ZGVuemlvDQorRmVycmF0LCBKZWFuLUpvc2VwaC1IaXBwb2x5dGUtUm9tYWluDQorRmVycmF0YSwgRXJjb2xlDQorRmVycmVuLCBKb2huDQorRmVycmVyLCBSYWZhZWwNCitGZXJyZXR0aSwgR2lvdmFubmkgRG9tZW5pY28NCitGZXJyacOocmUsIEZyYW7Dp29pcw0KK0ZlcnJpbGwsIE1hcnRpbiBFZGdhcg0KK0ZlcnksIEpvaG4NCitGZXRpLCBEb21lbmljbw0KK0ZldHRpbmcsIFJhaW5lcg0KK0ZldWNow6hyZSwgSmVhbi1KYWNxdWVzDQorRmV1ZXJiYWNoLCBBbnNlbG0NCitGZXVyZSwgR2VvcmdlcyBkZQ0KK0ZpZWxkLCBFcmFzdHVzIFNhbGlzYnVyeQ0KK0ZpZWxkLCBSb2JlcnQNCitGaWVsZGluZywgQW50aG9ueSBWYW5keWtlIENvcGxleQ0KK0ZpZW5lLCBFcm5lc3QNCitGaWd1ZWlyZWRvIGUgTWVsbG8sIFBlZHJvIEFtw6lyaWNvIGRlDQorRmlsYXJldGUNCitGaWxkZXMsIFNpciBMdWtlDQorRmlsaXBwaSwgU2ViYXN0aWFubw0KK0ZpbGxpZXIsIFNjb3R0DQorRmlsb25vdiwgUGF2ZWwNCitGaW5jaCwgRnJhbmNpcyBPbGl2ZXINCitGaW5jaywgSGF6ZWwNCitGaW5lLCBQZXJsZQ0KK0ZpbmUsIFNhbGx5IFMuDQorRmluZWxsaSwgR2l1bGlhbm8NCitGaW5sYXksIElhbiBIYW1pbHRvbg0KK0ZpbnNvbiwgTHVkb3ZpY3VzDQorRmlvcmVudGlubywgQW50b25pbw0KK0Zpb3JlbnRpbm8sICdQc2V1ZG8nIFBpZXIgRnJhbmNlc2NvDQorRmlvcmksIEVybmVzdG8gZGUNCitGaW9yaW5pLCBDbGVtICYgVG9ueQ0KK0Zpcm1pbi1HaXJhcmQsIE1hcmllLUZyYW7Dp29pcw0KK0Zpc2NoZXIsIFBhdWwNCitGaXNjaGwsIEVyaWMNCitGaXNjaGxpLCBQZXRlcg0KK0Zpc2gsIEphbmV0DQorRmlzaGVyLCBBbHZhbg0KK0Zpc2hlciwgQW5uYQ0KK0Zpc2hlciwgRWxpemFiZXRoIENsYXkNCitGaXNoZXIsIEVsbGVuIEJvd2RpdGNoIFRoYXllcg0KK0Zpc2hlciwgTWFyaw0KK0Zpc2hlciwgU2FtdWVsIE1lbHRvbg0KK0Zpc2hlciwgVmVybm9uDQorRmlzaywgTGFycy1FcmlrDQorRmlza2UsIEdlcnRydWRlDQorRml0Y2gsIFdhbHRlcg0KK0ZpdHRvbiwgSGVkbGV5DQorRml0emdlcmFsZCwgSm9obiBBbnN0ZXINCitGaXR6Z2VyYWxkLCBMaW9uZWwNCitGbGFjaywgQXVkcmV5DQorRmxhZ2csIEphbWVzIE1vbnRnb21lcnkNCitGbGFtZW4sIEFuc2VsbWUNCitGbGFtZW5nLCBMw6lvcG9sZA0KK0ZsYW5hZ2FuLCBCYXJyeQ0KK0ZsYW5kcmluLCBIaXBwb2x5dGUNCitGbGFubmFnYW4sIEpvaG4gQmVybmFyZA0KK0ZsYXZpbiwgRGFuDQorRmxheG1hbiwgSm9obg0KK0ZsZWdlbCwgR2VvcmcNCitGbGVpc2NobmVyLCBSaWNoYXJkDQorRmxleG9yLCBTYW1zb24NCitGbGlja2UsIEdlcmxhY2gNCitGbGluY2ssIEdvdmVydA0KK0ZsaW50LCBXaWxsaWFtIExlcm95DQorRmxpcGFydCwgQ2hhcmxlcw0KK0Zsb3JpcywgQ29ybmVsaXMNCitGbG9yaXMsIEZyYW5zDQorRmxvcnksIEFydGh1ciBMLg0KK0ZvZ2FydHksIE1hcnkgQmV0aA0KK0ZvZ2dpbmksIEdpYW1iYXR0aXN0YQ0KK0ZvbGV5LCBKb2huIEhlbnJ5DQorRm9saWFnZSBNYXN0ZXINCitGb2xpZ25vLCBCYXJ0b2xvbWVvIGRpIFRvbW1hc28gZGENCitGb2xpbnNiZWUsIEpvaG4gRnVsdG9uDQorRm9sd2VsbCwgSm9keQ0KK0ZvbnRhbmEsIEFubmliYWxlDQorRm9udGFuYSwgTGF2aW5pYQ0KK0ZvbnRhbmEsIEx1Y2lvDQorRm9udGFuYSwgUHJvc3Blcm8NCitGb250ZWJhc3NvLCBGcmFuY2VzY28NCitGb290ZSwgTWFyeQ0KK0Zvb3RlLCBXaWxsIEhvd2UNCitGb3BwYSwgVmluY2Vuem8NCitGb3JhYm9zY28sIEdpcm9sYW1vDQorRm9yYWluLCBKZWFuLUxvdWlzDQorRm9yYmVzLCBEb25hbGQgRW1lcnkNCitGb3JiZXMsIEVsaXphYmV0aCBBZGVsYSBBcm1zdHJvbmcNCitGb3JiZXMsIEpvaG4gQ29saW4NCitGb3JiZXMsIFN0YW5ob3BlIEFsZXhhbmRlcg0KK0ZvcmQsIEVkd2FyZCBPbnNsb3cNCitGb3JkLCBMYXVyZW4NCitGb3JkLCBXaWxsaWFtDQorRsO2cmcsIEfDvG50ZXINCitGb3JyZXN0LCBKb25hdGhhbiBBbGlzdGFpcg0KK0ZvcnJlc3RhbGwsIFRvbQ0KK0ZvcnNtYW4sIENodWNrDQorRm9yc3RlciwgVGhvbWFzDQorRm9yc3l0aCwgV2lsbGlhbQ0KK0ZvcnRlc2N1ZS1Ccmlja2RhbGUsIEVsZWFub3INCitGb3J0aW4sIE1hcmMtQXVyw6hsZQ0KK0ZvcnRpbmksIEdpb3ZhY2NoaW5vDQorRm9ydHVueSB5IE1hZHJhem8sIE1hcmlhbm8NCitGb3J0dW55IHkgTWFyc2FsLCBNYXJpYW5vDQorRm9ydHksIEplYW4gSmFjcXVlcw0KK0Zvc2NoaSwgUGllcmZyYW5jZXNjbw0KK0Zvc3NhdGksIERhdmlkZSBBbnRvbmlvDQorRm9zc28sIFNhbXVlbA0KK0Zvc3RlciwgQmVuDQorRm9zdGVyLCBNeWxlcyBCaXJrZXQNCitGb3N0ZXIsIFdpbGxpYW0NCitGb3VqaXRhLCBUc3Vnb2hhcnUNCitGb3VuZHJ5IFBhaW50ZXIsIFRoZQ0KK0ZvdXF1ZXQsIEplYW4NCitGb3VyIEJlYXJzDQorRm91cm5pZXIsIEFsZXhpcyBKZWFuDQorRm93bGUsIElzYWFjDQorRm94LCBFLiBQaGlsbGlwcw0KK0ZveSBTdXpvci1Db3TDqSwgTWFyYy1BdXLDqGxlIGRlDQorRnJhZ29uYXJkLCBKZWFuLUhvbm9yw6kNCitGcmFnb25hcmQsIE1hcmllIEFubmUgR8OpcmFyZA0KK0ZyYW1wdG9uLCBFZHdhcmQgUmVnaW5hbGQNCitGcmFtcHRvbiwgSG9sbGlzDQorRnJhbXB0b24sIE1lcmVkaXRoDQorRnJhbmNhbGFuY2lhLCBSaWNjYXJkbw0KK0ZyYW5jYXZpbGxhLCBQaWV0cm8NCitGcmFuY2UsIEV1cmlsZGEgTG9vbWlzDQorRnJhbmNlcywgRXN0ZWJhbg0KK0ZyYW5jw6lzLCBOaWNvbMOhcw0KK0ZyYW5jZXNjaGluaSwgTWFyY2FudG9uaW8NCitGcmFuY2VzY28gZGUgTXVyYQ0KK0ZyYW5jZXNjbyBkaSBHaW9yZ2lvIE1hcnRpbmkNCitGcmFuY2VzY28gZGkgVmFubnVjY2lvDQorRnJhbmNoaW5hLCBOaW5vDQorRnJhbmNob3lzIHRoZSBZb3VuZ2VyLCBMdWNhcw0KK0ZyYW5jaWEsIEZyYW5jZXNjbw0KK0ZyYW5jaWEsIEZyYW7Dp29pcyBMb3VpcyBUaG9tYXMNCitGcmFuY2lhYmlnaW8NCitGcmFuY2lzLCBKb2huIEYuDQorRnJhbmNpcywgTWFyaw0KK0ZyYW5jaXMsIFNhbQ0KK0ZyYW5ja2VuIEksIEZyYW5zDQorRnJhbmNrZW4gSUksIEZyYW5zDQorRnJhbmNrZW4gSUksIEhpZXJvbnltdXMNCitGcmFuY28sIEdpb3Zhbm5pIEJhdHRpc3RhDQorRnJhbmNxdWV2aWxsZSwgUGllcnJlDQorRnJhbmssIE1hcnkNCitGcmFuaywgUm9iZXJ0DQorRnJhbmtlbCwgR29kZnJleQ0KK0ZyYW5rZW50aGFsZXIsIEhlbGVuDQorRnJhbnplbiwgQXVndXN0DQorRnJhc2NvbmksIEFudG9uaW8NCitGcmFzZXIsIEFsZXhhbmRlcg0KK0ZyYXNlciwgQ2Fyb2wgSG9vcm4NCitGcmFzZXIsIEphbWVzIEVhcmxlDQorRnJhdGVyLCBXaWxsaWFtDQorRnJhdGluLCBDaHJpc3RvcGhlDQorRnJhemV0dGEsIEZyYW5rDQorRnJlYWtlIExpbW5lciwgVGhlDQorRnJlY2tlbHRvbiwgU29uZHJhDQorRnJlZGRpZSwgV2lsaGVsbQ0KK0Zyw6lkw6lyaWMsIEzDqW9uDQorRnJlZWxhbmQsIEFubmEgQ2hhbWJlcmxhaW4NCitGcmVlbWFuLCBEb24NCitGcmVlbWFuLCBFZGl0aA0KK0ZyZWVtYW4sIEphbmUNCitGcmVpYmVyZ2VyLCBCZW5ueQ0KK0ZyZWlsaWNoZXIsIEphbmUNCitGcsOpbGF1dCwgSmVhbg0KK0ZyZW1pbiwgUmVuw6kNCitGcmVuY2gsIERhbmllbCBDaGVzdGVyDQorRnJlbmNoLCBKYXJlZA0KK0Zyw6hyZSwgQ2hhcmxlcy1UaMOpb2RvcmUNCitGcmVzbmF5ZSwgUm9nZXIgZGUgbGENCitGcmV1ZCwgTHVjaWFuDQorRnJldW5kbGljaCwgT3R0bw0KK0ZyZXksIFZpb2xhDQorRnJpZWJlcnQsIEpvc2VwaA0KK0ZyaWVkZWJlcmcsIFBlZHJvDQorRnJpZWRsYW5kZXIsIElzYWMNCitGcmllZGxhbmRlciwgTGVlDQorRnJpZWRyaWNoLCBDYXNwYXIgRGF2aWQNCitGcmllbmQsIERvbmFsZA0KK0ZyaWVuZCwgV2FzaGluZ3Rvbg0KK0ZyaWVzLCBFcm5zdA0KK0ZyaWVzZSwgUmljaGFyZA0KK0ZyaWVzZWtlLCBGcmVkZXJpY2sgQ2FybA0KK0ZyaWVzeiwgT3Rob24NCitGcmluaywgRGFtZSBFbGlzYWJldGgNCitGcmlwcCwgQWxmcmVkIERvd25pbmcNCitGcmlwcCwgR2VvcmdlIEFydGh1cg0KK0ZyaXBwLCBUaG9tYXMNCitGcmlzaG11dGgsIEhhcnJpZXQgV2hpdG5leQ0KK0ZyaXRoLCBXaWxsaWFtIFBvd2VsbA0KK0ZyaXRzY2gsIEthdGhhcmluYQ0KK0Zyb21lbnQsIE5pY29sYXMNCitGcm9tZW50aW4sIEV1Z8OobmUNCitGcm9tZW50LU1ldXJpY2UsIEZyYW7Dp29pcy1Ew6lzaXLDqQ0KK0Zyb3N0LCBKb2huDQorRnJvc3QsIFRlcnJ5DQorRnJvc3QsIFdpbGxpYW0gRWR3YXJkDQorRnJ5LCBSb2dlcg0KK0ZyeWUsIFRob21hcw0KK0Z1IEJhb3NoaQ0KK0Z1IEVyc2hpDQorRnVlcnRlcywgTG91aXMgQWdhc3Npeg0KK0bDvGdlciwgRnJpZWRyaWNoIEhlaW5yaWNoDQorRnVqaXdhcmEgTm9idXphbmUNCitGdWppd2FyYSBUYWthbm9idQ0KK0Z1a2EsIEV2YQ0KK0Z1bGxlciwgQnVja21pbnN0ZXINCitGdWxsZXIsIEdlb3JnZQ0KK0Z1bGxlciwgTWV0YSBXYXJyaWNrDQorRnVsbHdvb2QsIEpvaG4NCitGdWx0b24sIEhhbWlzaA0KK0Z1bmdhaSwgQmVybmFyZGlubw0KK0Z1cmluaSwgRnJhbmNlc2NvDQorRnVyc2UsIENoYXJsZXMgV2VsbGluZ3Rvbg0KK0Z1c2F0YW5lDQorRnVzZWxpLCBKb2huIEhlbnJ5DQorRnVzcywgQWRhbQ0KK0Z5dCwgSmFuDQorR2FiYmlhbmksIEFudG9uIERvbWVuaWNvDQorR2FibywgTmF1bQ0KK0dhZGRpLCBBZ25vbG8NCitHYWRkaSwgVGFkZGVvDQorR2FlcnRuZXIsIEVkdWFyZA0KK0fDoWcsIFdhbmRhDQorR2FnZW4sIFJvYmVydA0KK0dhZ2luaSwgRG9tZW5pY28NCitHYWdub24sIENsYXJlbmNlDQorR2FpbnNib3JvdWdoLCBUaG9tYXMNCitHYWzDoW4sIEp1bGlvDQorR2FsZSwgV2lsbGlhbQ0KK0dhbGxhZ2hlciwgU2VhcnMNCitHYWxsYWl0LCBMb3Vpcw0KK0dhbGxlIEksIENvcm5lbGlzDQorR2FsbMOpLCBFbWlsZQ0KK0dhbGxlLCBQaGlsaXANCitHYWxsZWdvLCBGZXJuYW5kbw0KK0dhbGxlbi1LYWxsZWxhLCBBa3NlbGkNCitHYWxsaWFuaSwgT21hcg0KK0dhbGxvLCBPc2Nhcg0KK0dhbWJhcmEsIExhdHRhbnppbw0KK0dhbWJsZSwgSm9obg0KK0dhbWVsaW4sIEphY3F1ZXMNCitHYW1tZWxsLCBSLkguIEl2ZXMNCitHYW5kb2xmaSwgR2FldGFubw0KK0dhbmRvbGZpLCBVYmFsZG8NCitHYW5kb2xmaW5vIGRhIFJvcmV0bw0KK0dhbm8gZGkgRmF6aW8NCitHYW5zLCBEb25uYSBILg0KK0dhbnNldm9vcnQgTGltbmVyLCBUaGUNCitHYW5zbywgRW1pbA0KK0dhbyBGZW5naGFuDQorR2FvIEppYW5mdQ0KK0dhbyBRaWZlbmcNCitHYXJiZXIsIERhbmllbA0KK0dhcmNpYSwgUnVwZXJ0DQorR2FyZG5lciwgRGFuaWVsDQorR2FyZG5lciwgVG9kZA0KK0dhcmVsbGksIEZyYW5jbw0KK0dhcmdhbGxvLCBQYWJsbw0KK0dhcmdpdWxvLCBEb21lbmljbw0KK0dhcm1hbiwgRWQNCitHYXJuZXIsIFNhcmFoDQorR2FybmllciwgTWljaGVsDQorR2Fyb2ZhbG8NCitHYXJyYXJkLCBHZW9yZ2UNCitHYXJyZXRzb24sIE1hcnRpbiBTLg0KK0dhcnJpZ3VzLCBLZWl0aA0KK0dhcnN0aW4sIE5vcm1hbg0KK0dhcnRuZXIsIEFsbGFuDQorR2FyemEsIENhcm1lbiBMb21hcw0KK0dhc3BhcmQsIExlb24NCitHYXNzZWwsIEx1Y2FzDQorR2F1ZMOtLCBBbnRvbmkNCitHYXVkaWVyLUJyemVza2EsIEhlbnJpDQorR2F1ZmZpZXIsIExvdWlzDQorR2F1Z2VuZ2lnbCwgSWduYXogTWFyY2VsDQorR2F1Z3VpbiwgUGF1bA0KK0dhdXRoaWVyLCBTdXphbm5lDQorR2F2YXJuaSwgUGF1bA0KK0dhdmFycm9uZSwgRG9tZW5pY28NCitHYXksIEVkd2FyZA0KK0dheSwgTmlrb2xheQ0KK0dheXdvb2QsIFJpY2hhcmQNCitHZWRkZXMsIEFuZHJldw0KK0dlZG92aXVzLCBHZXJtw6FuDQorR2VlciwgR3JhY2UgV29vZGJyaWRnZQ0KK0dlaHJrLCBSb2JlcnQgSi4NCitHZWhyeSwgRnJhbmsNCitHZWlnZXIsIEFubmEgQmVsbGENCitHZWlraWUsIFdhbHRlcg0KK0dlaXN0ZWQsIErDuHJnZW4NCitHZWxkZXIsIEFlcnQgZGUNCitHZWxzYXZhZ2UsIEpvaG4gWnlnbXVuZA0KK0dlbWl0bywgVmluY2Vuem8NCitHZW5nYSwgR2lyb2xhbW8NCitHZW5uYXJpLCBCZW5lZGV0dG8NCitHZW5zbGVyLCBNYXJ0aW4NCitHZW50LCBHLlcuDQorR2VudGgsIExpbGxpYW4gTWF0aGlsZGUNCitHZW50aGUsIEFybm9sZA0KK0dlbnRpbGUgZGEgRmFicmlhbm8NCitHZW50aWxlc2NoaSwgQXJ0ZW1pc2lhDQorR2VudGlsZXNjaGksIE9yYXppbw0KK0dlbnRpbGluaSwgRnJhbmNvDQorR2VudGxpbmcsIFNjb3R0DQorR2VvZmZyb3ksIEhlbnJ5LUp1bGVzLUplYW4NCitHZW9yZ2UsIFJheQ0KK0fDqXJhcmQsIEZyYW7Dp29pcw0KK0fDqXJhcmQsIE1hcmd1ZXJpdGUNCitHZXJhcmRpLCBBbGJlcnRvDQorR2VyYXJkbw0KK0dlcmhhZXJ0LCBOaWNvbGF1cw0KK0dlcmhhcmQsIEh1YmVydA0KK0dlcmhvbGQsIE1lbA0KK0fDqXJpY2F1bHQsIFRow6lvZG9yZQ0KK0dlcmluaSwgTmljY29sw7IgZGkgUGlldHJvDQorR2VybG92aW4sIFZhbGVyaXkNCitHZXJsb3ZpbmEsIFJpbW1hDQorR2VybWFpbiwgRnJhbsOnb2lzLVRob21hcw0KK0dlcm1haW4sIExvdWlzDQorR8OpcsO0bWUsIEplYW4tTMOpb24NCitHZXJzdGwsIFJpY2hhcmQNCitHZXJ0bGVyLCBNYXJrDQorR2VydHNjaCwgRnJhbnoNCitHZXJ2ZXgsIEhlbnJpDQorR2VyenNvLCBHdW50aGVyDQorR2V0eiwgQXJ0aHVyDQorR2V1ZXIsIEp1YW4NCitHaGVlcmFlcnRzIHRoZSBZb3VuZ2VyLCBNYXJjdXMNCitHaGVyYXJkbyBkaSBHaW92YW5uaQ0KK0doZXluIElJLCBKYWNxdWVzIGRlDQorR2hleW4sIEphY3F1ZXMgZGUNCitHaGV6emksIFBpZXIgTGVvbmUNCitHaGliZXJ0aSwgTG9yZW56bw0KK0doaXJsYW5kYWlvLCBCZW5lZGV0dG8NCitHaGlybGFuZGFpbywgRG9tZW5pY28NCitHaGlybGFuZGFpbywgUmlkb2xmbw0KK0doaXNsYW5kaSwgR2l1c2VwcGUNCitHaWFjb21ldHRpLCBBbGJlcnRvDQorR2lhY29tZXR0aSwgR2lvdmFubmkNCitHaWFtYm9sb2duYQ0KK0dpYW1ib25vLCBNaWNoZWxlDQorR2lhbXBpZXRyaW5vDQorR2lhbm5ldHRpLCBSYWZmYWVsZQ0KK0dpYW5uaWNvbGEgZGkgUGFvbG8NCitHaWFxdWludG8sIENvcnJhZG8NCitHaWJicywgSGVucnkNCitHaWJicywgUGVyY3kgVy4NCitHaWJzb24sIFJhbHBoDQorR2llcmdsLCBBbGFqb3MgR3nDtnJneWkNCitHaWVzYnJlY2h0LCBHYXJyeQ0KK0dpZmZvcmQsIFNhbmZvcmQgUm9iaW5zb24NCitHaWdlciwgSC5SLg0KK0dpZ25vdXgsIFLDqGdpcy1GcmFuw6dvaXMNCitHaWdvbGEsIEdpb3Zhbm5pIEJhdHRpc3RhDQorR2lqc2JyZWNodHMsIENvcm5lbGl1cw0KK0dpbCBkZSBDYXN0cm8sIEpvc8OpDQorR2lsYmVydCBhbmQgR2VvcmdlDQorR2lsYmVydCwgQWxmcmVkDQorR2lsYmVydCwgQXJ0aHVyIEhpbGwNCitHaWxiZXJ0LCBKb2huIENvbnJhZA0KK0dpbGJlcnQsIFNpciBKb2huDQorR2lsYmVydCwgVmljdG9yLUdhYnJpZWwNCitHaWxkZXIsIFJvYmVydA0KK0dpbGUsIFNlbGRlbiBDb25ub3INCitHaWxob29seSwgRGF2aWQNCitHaWxsLCBFcmljDQorR2lsbGVzcGllLCBHcmVnb3J5DQorR2lsbGV0dCwgRnJhbmsNCitHaWxsaWFtLCBTYW0NCitHaWxsaW5pLCBBbGJlcnRvDQorR2lsbG90LCBDbGF1ZGUNCitHaWxscmF5LCBKYW1lcw0KK0dpbG1hbiwgSGFyb2xkDQorR2lscGluLCBSZXYuIFdpbGxpYW0NCitHaWxwaW4sIFNhd3JleQ0KK0dpbm5ldmVyLCBDaGFybGVzDQorR2lvcmRhbm8sIEx1Y2ENCitHaW9yZ2lvbmUNCitHaW90dGlubw0KK0dpb3R0byBkaSBCb25kb25lDQorR2lvdmFubmkgZGEgQmFsZHVjY2lvDQorR2lvdmFubmkgZGEgQ2FtcGlvbmUNCitHaW92YW5uaSBkYSBNaWxhbm8NCitHaW92YW5uaSBkYSBOb2xhDQorR2lvdmFubmkgZGEgU2FuIEdpb3Zhbm5pDQorR2lvdmFubmkgZGVsIEJpb25kbw0KK0dpb3Zhbm5pIGRpIFBhb2xvDQorR2lvdmVub25lLCBHaXJvbGFtbw0KK0dpcGUsIExhd3JlbmNlDQorR2lyYXJkb24sIEZyYW7Dp29pcw0KK0dpcm9kZXQgZGUgUm91c3N5LVRyaW9zb24sIEFubmUtTG91aXMNCitHaXJvbGFtbyBkYSBDYXJwaQ0KK0dpcm9sYW1vIGRhaSBMaWJyaQ0KK0dpcm9sYW1vIGRpIEJlbnZlbnV0bw0KK0dpcm9uZWxsYSwgQWxiZXJ0bw0KK0dpcm91eCwgQW5kcsOpDQorR2lydGluLCBUaG9tYXMNCitHaXVsaW8gUm9tYW5vDQorR2xhY2tlbnMsIFdpbGxpYW0NCitHbGFpemUsIEF1Z3VzdGUNCitHbGFpemUsIFBpZXJyZS1QYXVsLUzDqW9uDQorR2xhcm5lciwgRnJpdHoNCitHbGVlc29uLCBKYW1lcw0KK0dsZWhuLCBXaWxmcmlkIGRlDQorR2xlaXplcywgQWxiZXJ0DQorR2xlbmRlbm5pbmcsIEFsZnJlZA0KK0dsZXlyZSwgQ2hhcmxlcw0KK0dsaWNrLCBKb2huDQorR2xpbnRlbmthbXAsIEhlbmRyaWsNCitHbG92ZXIsIEpvaG4NCitHbHlkZSwgSGVucnkgR2VvcmdlDQorR29iZXIsIFJvYmVydA0KK0dvYmxlLCBQYXVsDQorR29kZnJleSwgRGVXaXR0DQorR29kd2FyZCwgSm9obiBXaWxsaWFtDQorR29lbmV1dHRlLCBOb3JiZXJ0DQorR29lcywgSHVnbyB2YW4gZGVyDQorR29nYXMsIEdlb3JnZQ0KK0dvaW5ncywgUmFscGgNCitHb2l0aWEsIEZyYW5jaXNjbw0KK0dvbGRiZXJnLCBSdWJlDQorR29sZGluLCBOYW4NCitHb2xkc3dvcnRoeSwgQW5keQ0KK0dvbGlua2luLCBKb3NlcGgNCitHb2xsaW5ncywgRS4gVy4NCitHb2x0eml1cywgSGVuZHJpY2sNCitHb2x1YiwgTGVvbg0KK0dvbWV6IGRlIE1vcmEsIEp1YW4NCitHw7NtZXosIFZpY2VudGUgU2FsdmFkb3INCitHb27Dp2FsdmVzLCBOdW5vDQorR29uY2hhcm92YSwgTmF0YWxpYQ0KK0dvbmcgWGlhbg0KK0dvbnphZ2EsIFBpZXRybw0KK0dvbnphbGVzLCBFdmENCitHb256w6FsZXogRXNjb2JhciwgSnVhbiBGcmFuY2lzY28NCitHb256w6FsZXogUGVsbGljZXIsIEp1bGlvDQorR29uemFsZXogUnVpeiwgRGFuaWVsDQorR29uemFsZXogeSBTZXJyYW5vLCBCYXJ0b2xvbWUNCitHb256w6FsZXosIEpvYW4NCitHb256YWxleiwgSnVhbg0KK0dvbnrDoWxleiwgVmljZW50ZSBQYWxtYXJvbGkNCitHb256YWxlei1Ub3JyZXMsIEZlbGl4DQorR29vZCwgVGhvbWFzIFN3b3JkDQorR29vZGFsbCwgRnJlZGVyaWNrDQorR29vZGZlbGxvdywgU3RlcGhlbg0KK0dvb2RtYW4sIEJyZW5kYQ0KK0dvb2RtYW4sIFNpZG5leQ0KK0dvb2Rub3VnaCwgUm9iZXJ0DQorR29vZHJpZGdlLCBFbGl6YQ0KK0dvb2RzaXIsIEFnbmVzDQorR29vZHdpbiwgQXJ0aHVyIENsaWZ0b24NCitHb29kd2luLCBHaWxiZXJ0YSBEYW5pZWxzDQorR29vZHdpbiwgUGhpbGlwIFIuDQorR29vZHdpbiwgUmljaGFyZCBMYUJhcnJlDQorR29vZHdpbiwgU3RldmUNCitHb29raW5zLCBKYW1lcyBGYXJyaW5ndG9uDQorR29yZGlsbG8sIEx1aXMgUm9kcsOtZ3Vleg0KK0dvcmRvbiwgQXJ0dXJvDQorR29yZG9uLCBEb3VnbGFzDQorR29yZG9uLCBIYXJyeSBILg0KK0dvcmRvbiwgSnVsaWEgRW1pbHkNCitHb3Jkb24sIExhZHkNCitHb3Jkb24sIFJ1c3NlbGwgVC4NCitHb3Jkb24sIFNpciBIYXJyeSBQZXJjeQ0KK0dvcmRvbiwgU2lyIEpvaG4gV2F0c29uDQorR29yZSwgQ2hhcmxlcw0KK0dvcmUsIFNwZW5jZXINCitHb3JlbmtvLCBSaWNoYXJkIFdpbGxpYW1zIFNhbXVlbA0KK0dvcmdvbmksIEcuDQorR29yaW4sIEplYW4NCitHb3JreSwgQXJzaGlsZQ0KK0dvcm1sZXksIEFudG9ueQ0KK0dvcm5paywgQXByaWwNCitHb3JvIGRpIEdyZWdvcmlvDQorR29yc2xpbmUsIERvdWdsYXMNCitHb3Jzb24sIEFhcm9uIEhhcnJ5DQorR29zaGluDQorR29zaHVuLCBNYXRzdW1hcmENCitHb3RjaCwgVGhvbWFzIENvb3Blcg0KK0dvdHRsaWViLCBBZG9scGgNCitHb3R0bGllYiwgSGFycnkNCitHb3VkaWUsIFNjb3R0DQorR291ZHQsIEhlbmRyaWsNCitHb3Vqb24sIEplYW4NCitHb3VsZCwgV2lsbGlhbQ0KK0dvdXBpbCwgSnVsZXMtQWRvbHBoZQ0KK0dvdmFlcnMsIERhbmllbA0KK0dvdmFlcnRzLCBBYnJhaGFtDQorR293LCBBbmRyZXcgQ2Fycmljaw0KK0dvd2VyLCBHZW9yZ2UNCitHb3dpbmcsIFNpciBMYXdyZW5jZQ0KK0dveWEsIEZyYW5jaXNjbyBkZQ0KK0dveWVuLCBKYW4gdmFuDQorR295bywgSGFzaGlndWNoaQ0KK0dvenpvbGksIEJlbm96em8NCitHcmFldmVuaXR6LCBHZXJoYXJkIHZvbg0KK0dyYWYsIEdlbmV2aWV2ZSBHb3RoDQorR3JhZiwgVXJzDQorR3JhZmYsIEFudG9uDQorR3JhaGFtLCBEYW4NCitHcmFoYW0sIEpvaG4NCitHcmFoYW0sIFBhdWwNCitHcmFoYW0sIFBldGVyDQorR3JhaGFtLCBSb2JlcnQNCitHcmFtemEsIExlcm95DQorR3JhbmFjY2ksIEZyYW5jZXNjbw0KK0dyYW5kaSwgR2lhbiBHaXJvbGFtbw0KK0dyYW5kaSwgR2l1c2VwcGUNCitHcmFuZGluLCBFdWdlbmUNCitHcmFuZG1haXNvbiwgTmljaG9sYXMgZGUNCitHcmFuZXQsIEZyYW7Dp29pcy1NYXJpdXMNCitHcmFuZ2VyLCBDaGFybGVzIEhlbnJ5DQorR3JhbnQsIER1bmNhbg0KK0dyYW50LCBGcmVkZXJpYyBNaWx0b24NCitHcmFudCwgR29yZG9uDQorR3JhbnQsIFNpciBGcmFuY2lzDQorR3JhcywgQ2FzcGFyDQorR3Jhc3MsIFBoaWxpcHBlDQorR3Jhc3NlciwgRXJhc211cw0KK0dyYXVzbWFuLCBQaGlsaXANCitHcmF2ZWxvdCwgSHViZXJ0IEZyYW7Dp29pcw0KK0dyYXZlcywgQWJib3R0IEZ1bGxlcg0KK0dyYXZlcywgSGVucnkgUmljaGFyZA0KK0dyYXZlcywgTW9ycmlzDQorR3JhdmVzLCBOYW5jeQ0KK0dyYXZlc2FuZGUsIENoYXJsZXMgU3Rvcm0gdmFuIFMnDQorR3JheSwgQ2xldmUNCitHcmF5LCBHdXN0YXZlIExlDQorR3JheSwgSGVucnkgUGVyY3kNCitHcmF5LCBKYWNrDQorR3JheSwgTWFyeQ0KK0dyYXppb3NlLCBQaGlsDQorR3JlYWNlbiwgRWRtdW5kIFcuDQorR3JlYWNlbiwgTmFuDQorR3JlYXZlcywgV2FsdGVyDQorR3JlYmJlciwgUGlldGVyIGRlDQorR3JlY28sIEVsDQorR3JlY28sIEVtaWxpbw0KK0dyZWVuLCBBbGFuDQorR3JlZW4sIEFudGhvbnkNCitHcmVlbiwgQy5FLkwuDQorR3JlZW4sIEZyYW5rIFJ1c3NlbGwNCitHcmVlbiwgSG9tZXINCitHcmVlbiwgUmVuw6llDQorR3JlZW4sIFNhbXVlbCBNLg0KK0dyZWVuLCBWYWxlbnRpbmUNCitHcmVlbiwgV2FsdGVyDQorR3JlZW5hbXllciwgR2VvcmdlDQorR3JlZW5ibGF0LCBSb2RuZXkgQWxhbg0KK0dyZWVuaGFtLCBQZXRlcg0KK0dyZWVuaGlsbCwgSGFyb2xkDQorR3JlZW5sZWFmLCBCZW5qYW1pbg0KK0dyZWVub3VnaCwgSG9yYXRpbw0KK0dyZWVud29vZCwgSm9obg0KK0dyZWV2ZXMsIFJpY2hhcmQgVi4NCitHcmVnb3J5LCBFZHdhcmQgSm9obg0KK0dyZWdvcnksIFNoZWlsYQ0KK0dyZWlmZmVuaGFnZW4sIE1hdXJpY2UgV2lsbGlhbQ0KK0dyZXV6ZSwgSmVhbi1CYXB0aXN0ZQ0KK0dyZXksIEFsZXgNCitHcmliYnJvZWssIFJvYmVydA0KK0dyaWZmYSwgR2lvcmdpbw0KK0dyaWZmaWVyIHRoZSBFbGRlciwgSm9obg0KK0dyaWZmaW4sIFdhbHRlcg0KK0dyaWZmaXRocywgSmFtZXMNCitHcmlnZ3MsIEZyZWRlcmljayBMYW5kc2VlciBNYXVyDQorR3JpZ2dzLCBMZWUNCitHcmlnZ3MsIFNhbXVlbCBXLg0KK0dyaWdvcmVzY3UsIE5pY29sYWUNCitHcmltYWxkaSwgR2lvdmFubmkgRnJhbmNlc2NvDQorR3JpbW0sIFNhbXVlbCBIaWVyb255bW91cw0KK0dyaW1tZXIsIEFiZWwNCitHcmltb3UsIEFsZXhpcw0KK0dyaW1zaGF3LCBBdGtpbnNvbg0KK0dyaW5hZ2VyLCBBbGV4DQorR3JpcHBlLCBQZXRlcg0KK0dyaXMsIEp1YW4NCitHcml0dGVuLCBIZW5yeQ0KK0dyb2dhbiwgTmF0aGFuaWVsDQorR3JvbGwsIEFsYmVydCBMLg0KK0dyb29tcywgUmVkDQorR3JvcHBlciwgV2lsbGlhbQ0KK0dyb3MsIEFudG9pbmUtSmVhbg0KK0dyb3NlLCBIYXJyaWV0IEVzdGVsbGENCitHcm9zcywgQW50aG9ueQ0KK0dyb3NzLCBDaGFpbQ0KK0dyb3NzLCBTaWRuZXkNCitHcm9zc21hbiwgRWxpYXMgTS4NCitHcm9zc21hbm4sIFJ1ZG9sZg0KK0dyb3NzbywgTHVpZ2kNCitHcm9zeiwgR2VvcmdlDQorR3JvdXgsIEhlbnJ5IGRlDQorR3J1YW1vbnRlDQorR3J1YmVyLCBGcmFuY2lzDQorR3J1ZWxsZSwgUmljaGFyZCBCLg0KK0dydW5lciwgRWxpb3RoDQorR3LDvG5ld2FsZCwgTWF0dGhpYXMNCitHcnVwcMOpLCBFbWlsZSBBLg0KK0dydXBwZSwgVmlyZ2luaWENCitHdSBMaW5zaGkNCitHdSBZdWFuDQorR3UgWXVuDQorR3VhbGl0aWVyaSBkaSBHaW92YW5uaSBkYSBQaXNhDQorR3VhbiBTaGFueXVlDQorR3VhbiBaaWxhbg0KK0d1YXJkaSwgRnJhbmNlc2NvDQorR3VhcmRpLCBHaWFuIEFudG9uaW8NCitHdWFyaWVudG8gZGkgQXJwbw0KK0d1ZGUsIEhhbnMgRnJlZHJpaw0KK0d1ZGluLCBUaMOpb2RvcmUNCitHdcOpcmFyZCwgRXVnZW5lIHZvbg0KK0d1ZXJjaW5vDQorR3VlcmluLCBHaWxsZXMNCitHdcOpcmluLCBQaWVycmUtTmFyY2lzc2UNCitHdWVycmVybyBHYWx2w6FuLCBKZXPDunMNCitHdWVycmVybyBHYXJjw61hLCBKb3PDqQ0KK0d1Z2xpZWxtaSwgR3JlZ29yaW8NCitHdWdsaWVsbWksIE8uIExvdWlzDQorR3VnbGllbG1vLCBGcmENCitHdWdsaWVsbW8sIE1hc3Rybw0KK0d1aWRpLCBEb21lbmljbw0KK0d1aWRpLCBWaXJnaWxpbw0KK0d1aWRvIGRhIFNpZW5hDQorR3VpZ25ldCwgQWRyaWVuDQorR3VpZ291LCBQYXVsLUNhbWlsbGUNCitHdWlsZCwgTHVyZWxsZQ0KK0d1aWxsYWluLCBTaW1vbg0KK0d1aWxsYXVtaW4sIEFybWFuZA0KK0d1aWxsb3UsIEFsZnJlZA0KK0d1aW5vdmFydCBCZXJ0cmFuLCBKb3NlcA0KK0d1aXJhbmQgZGUgU2Nldm9sYSwgTHVjaWVuLVZpY3Rvcg0KK0d1bMOhY3N5LCBMYWpvcw0KK0d1bnRoZXIsIEZyYW56IElnbmF6DQorR3VvIEJpDQorR3Vyc2NobmVyLCBIZXJiZXJ0DQorR3Vyc2t5LCBBbmRyZWFzDQorR3VzdG9uLCBQaGlsaXANCitHdXRocmllLCBTaXIgSmFtZXMNCitHdXRpw6lycmV6LCBKdWFuIFNpbcOzbg0KK0d1dG1hbm4sIEJlcm5oYXJkDQorR3V0bWFubiwgSm9obg0KK0d1dHR1c28sIFJlbmF0bw0KK0d1eSwgRnJhbmNpcw0KK0d1eSwgU2V5bW91ciBKb3NlcGgNCitHdXlzLCBDb25zdGFudGluDQorR3V5dG9uLCBUeXJlZQ0KK0d3YXRobWV5LCBSb2JlcnQNCitHd3lubmUtSm9uZXMsIEFsbGFuDQorR3nDoXJmw6FzLCBKZW7Dsw0KK0d5bGVzLCBIZW5yeQ0KK0d5b2t1ZG8sIFVyYWdhbWkNCitHeXNlbHMsIFBpZXRlcg0KK0hhYWdlbiwgSm9yaXMgQWJyYWhhbXN6LiB2YW4gZGVyDQorSGFhcmxlbSwgQ29ybmVsaXMgQ29ybmVsaXN6LiB2YW4NCitIYWFzLCBNYXVyaXR6IEYuSC4gRGUNCitIYWJlcmxlLCBKb2huDQorSGFja2FlcnQsIEphbg0KK0hhY2tlciwgQXJ0aHVyDQorSGFja2VydCwgSmFjb2IgUGhpbGlwcGUNCitIYWRkb2NrLCBBLg0KK0hhZGVuLCBTaXIgRnJhbmNpcyBTZXltb3VyDQorSGFlcywgQ2FybG9zIGRlDQorSGFobiwgRW1hbnVlbA0KK0hhaG4sIEd1c3Rhdg0KK0hhaG4sIEhlcmJlcnQgQy4NCitIYWhuLCBXaWxsaWFtDQorSGFpZCwgSm9oYW5uIExvcmVueg0KK0hhaWxlLCBTYW11ZWwNCitIYWxlLCBFZHdhcmQgTWF0dGhldw0KK0hhbGUsIEVsbGVuIERheQ0KK0hhbGUsIEpvc2VwaGluZQ0KK0hhbGUsIExpbGlhbiBXZXN0Y290dA0KK0hhbGUsIFBoaWxpcCBMZXNsaWUNCitIYWxsIDE3MzktMTc5NywgSm9obg0KK0hhbGwgMTg4NSwgRG91Z2xhcw0KK0hhbGwsIEFubg0KK0hhbGwsIEJlcm5hcmQNCitIYWxsLCBDeXJlbml1cw0KK0hhbGwsIERvdWcNCitIYWxsLCBHZW9yZ2UgSGVucnkNCitIYWxsLCBIYXJyeQ0KK0hhbGwsIEpvaG4NCitIYWxsLCBQYW0NCitIYWxsw6ksIEVkd2FyZCBDaGFybGVzDQorSGFsbGVuLCBBbWJyb3NlDQorSGFsbGV5LCBQZXRlcg0KK0hhbGxpZGF5LCBFZHdhcmQgSXJ2aW5lDQorSGFscywgRGlyaw0KK0hhbHMsIEZyYW5zDQorSGFsc21hbiwgUGhpbGlwcGUNCitIYWxzd2VsbGUsIEtlZWxleQ0KK0hhbWJsaW4sIFN0dXJ0ZXZhbnQgSi4NCitIYW1lbiB5IExlw7NuLCBKdWFuIHZhbiBkZXINCitIYW1pbHRvbiwgQW5uDQorSGFtaWx0b24sIEdhdmluDQorSGFtaWx0b24sIEdhd2VuDQorSGFtaWx0b24sIEdyYW50DQorSGFtaWx0b24sIEhhbWlsdG9uDQorSGFtaWx0b24sIEh1Z2ggRG91Z2xhcw0KK0hhbWlsdG9uLCBKYW1lcw0KK0hhbWlsdG9uLCBKdWFuDQorSGFtaWx0b24sIE1hcnkgUml0ZXINCitIYW1pbHRvbiwgTWlrZQ0KK0hhbWlsdG9uLCBSaWNoYXJkDQorSGFtaWx0b24sIFdpbGxpYW0NCitIYW1tZXJzaMO4aSwgVmlsaGVsbQ0KK0hhbW1vbmQsIEphbmUNCitIYW1tb25zLCBEYXZpZA0KK0hhbW9uLCBKZWFuLUxvdWlzDQorSGFuIEdhbg0KK0hhbmZzdGFlbmdsLCBEcmVzZGVuDQorSGFuaWFzLCBKb2hhbm5lcw0KK0hhbmtleSwgV2lsbGlhbSBMZWUNCitIYW5uZW1hbiwgQWRyaWFlbg0KK0hhbm5vY2ssIFN0ZXBoZW4NCitIYW5zZW4sIEFybWluIENhcmwNCitIYW5zZW4sIENvbnN0YW50aW4NCitIYW5zZW4sIFN2ZW5kIFdpaWcNCitIYW5zb24sIER1YW5lDQorSGFvem91cywgQm9iDQorSGFyY291cnQsIEdlb3JnZQ0KK0hhcmRpZSwgTWFydGluDQorSGFyZGluZywgQ2hhcmxlcyBTdGV3YXJ0DQorSGFyZGluZywgQ2hlc3Rlcg0KK0hhcmRpbmcsIEdlb3JnZSBQZXJmZWN0DQorSGFyZGluZywgSmFtZXMgRHVmZmllbGQNCitIYXJkaW5nLCBTeWx2ZXN0ZXINCitIYXJkcmljaywgSm9obiBXZXNsZXkNCitIYXJkd2ljaywgQWxpY2UNCitIYXJkd2ljaywgTWVsYm91cm5lDQorSGFyZHksIEFubmEgRWxpemENCitIYXJkeSwgSGV5d29vZA0KK0hhcmUsIERhdmlkDQorSGFyZm9yZCwgSm9obiBTY2FuZHJldHQNCitIYXJpbmcsIEtlaXRoDQorSGFybG93LCBHZW9yZ2UgSGVucnkNCitIYXJuZXR0LCBXaWxsaWFtIE1pY2hhZWwNCitIYXJwZXIsIEhlbnJ5IEFuZHJldw0KK0hhcnBpZ25pZXMsIEhlbnJpLUpvc2VwaA0KK0hhcnJpY2gsIEpvYnN0DQorSGFycmllcywgTWFncw0KK0hhcnJpcywgQm9iDQorSGFycmlzLCBKb2huDQorSGFycmlzLCBMYXdyZW4gUy4NCitIYXJyaXMsIFJvYmVydA0KK0hhcnJpcywgU2FtIEh5ZGUNCitIYXJyaXNvbiwgSC5CLg0KK0hhcnJpc29uLCBULiBBbGV4YW5kZXINCitIYXJyaXNvbiwgV2FsbGFjZQ0KK0hhcnQsIEZyZWRlcmljaw0KK0hhcnQsIEphbWVzIE1jRG91Z2FsDQorSGFydCwgTGV0aXRpYSBCb25uZXQNCitIYXJ0LCAnUG9wJw0KK0hhcnQsIFNvbG9tb24gQWxleGFuZGVyDQorSGFydCwgV2lsbGlhbQ0KK0hhcnRpZ2FuLCBHcmFjZQ0KK0hhcnRsZXksIEouIFNjb3R0DQorSGFydGxleSwgTWFyc2Rlbg0KK0hhcnRyYXRoLCBMdWNpZQ0KK0hhcnR1bmcsIEhhbnMNCitIYXJ1bm9idQ0KK0hhcnVzaGlnZSwgU3V6dWtpDQorSGFydmV5LCBCdW5ueQ0KK0hhcnZleSwgSGVyYmVydCBKb2huc29uDQorSGFydmV5LCBXaWxsaWFtDQorSGFyd29vZCwgRnJhbmNpcw0KK0hhcndvb2QsIEphbWVzIFRheWxvcg0KK0hhc2VnYXdhIFRvaGFrdQ0KK0hhc2VsdGluZSwgV2lsbGlhbSBTdGFubGV5DQorSGFzaGFnZW4sIEEuDQorSGFzaGltb3RvLCBPa2lpZQ0KK0hhc2tlbGwsIEVybmVzdA0KK0hhc3NhbSwgQ2hpbGRlDQorSGFzc2VsbCwgSm9obg0KK0hhc3VpLCBLYXdhc2UNCitIYXRjaCwgSmltDQorSGF0Y2hlciwgQnJvd2VyDQorSGF0b3VtLCBNb25hDQorSGF0dCwgRW1pbGllIERlbWFudA0KK0hhdWVyLCBTdGFubGV5DQorSGF1Z2h0b24sIE1hdHRoZXcNCitIYXVwZXJzLCBDbGVtZW50DQorSGF1c21hbm4sIFJhb3VsDQorSGF2ZWwsIEpvc2VwaA0KK0hhdmVsbCwgUm9iZXJ0DQorSGF2ZWxsLCBXaWxsaWFtDQorSGF2ZW5zLCBMZW9uYXJkIE0uDQorSGF3a2lucywgQmFzaWwNCitIYXdraW5zLCBIZW5yeQ0KK0hhd2tpbnMsIExvdWlzIFdlbGRlbg0KK0hhd3Rob3JuZSwgQ2hhcmxlcyBXZWJzdGVyDQorSGF4dG9uLCBFbGFpbmUNCitIYXksIEdpbGJlcnQNCitIYXlkZW4sIEhlbnJpDQorSGF5ZG9uLCBCZW5qYW1pbiBSb2JlcnQNCitIYXllcywgRWR3aW4NCitIYXllcywgR2VvcmdlIEEuDQorSGF5ZXosIEZyYW5jZXNjbw0KK0hheWxzLCBKb2huDQorSGF5bWFuLCBGcmFuY2lzDQorSGF5bmVzLCBEb3VnbGFzIEhlY3Rvcg0KK0hheW5lcywgRi4gSmF5DQorSGF5bmVzLVdpbGxpYW1zLCBKb2huDQorSGF5bmllLCBLZWl0aA0KK0hheXMsIFdpbGxpYW0gSmFjb2INCitIYXl0ZXIsIEpvaG4NCitIYXl0ZXIsIFNpciBHZW9yZ2UNCitIYXl0ZXIsIFN0YW5sZXkgV2lsbGlhbQ0KK0hheXRsZXksIEVkd2FyZA0KK0hhemVsdG9uLCBNYXJ5IEJyZXdzdGVyDQorSGUgQmFpdGFvDQorSGUgS29uZ2RlDQorSGUgVGlhbmppYW4NCitIZWFkLCBHdXkNCitIZWFkLCBUaW0NCitIZWFkZSwgTWFydGluIEpvaG5zb24NCitIZWFseSwgR2VvcmdlIFAuQS4NCitIZWFuZXksIENoYXJsZXMNCitIZWFwaHksIFRob21hcw0KK0hlYXJuZSwgVGhvbWFzDQorSGVhcnRmaWVsZCwgSm9obg0KK0hlYXRoLCBIZW5yeQ0KK0hlYXRoLCBXaWxsaWFtDQorSGVhdnlTaGllbGQsIEZheWUNCitIw6liZXJ0LCBBZHJpZW4NCitIw6liZXJ0LCBFcm5lc3QNCitIw6liZXJ0LCBQaWVycmUtRXVnw6huZS1FbWlsZQ0KK0hlY2tlbCwgRXJpY2gNCitIZWNrZW4sIEFicmFoYW0gdmFuIGRlcg0KK0hlY2ttYW4sIEFsYmVydA0KK0hlZGEsIEdlcnJldCBXaWxsZW1zei4NCitIZWRhLCBXaWxsZW0gQ2xhZXN6Lg0KK0hlZW0sIENvcm5lbGlzIGRlDQorSGVlbSwgSmFuIERhdmlkc3ouIGRlDQorSGVlbSwgSmFuIEphbnN6LiBkZQ0KK0hlZW1za2VyY2ssIE1hZXJ0ZW4gdmFuDQorSGVnZWR1cywgTGFzemxvDQorSGVpbCwgRGFuaWVsIHZhbg0KK0hlaWxidXRoLCBGZXJkaW5hbmQNCitIZWlsbWFubiwgTWFyeQ0KK0hlaW0sIEZyYW7Dp29pcy1Kb3NlcGgNCitIZWltbGljaCwgSGVybWFuDQorSGVpbnR6LCBKb3NlcGgNCitIZWludHplbG1hbiwgQXJ0aHVyIFdpbGxpYW0NCitIZWl6ZXIsIE1pY2hhZWwNCitIZWpkdWssIEpvaG4NCitIZWxkIEpyLiwgSm9obg0KK0hlbGQsIEFsDQorSGVsZCwgTWFyaW9uDQorSGVsZGVyLCBaYW1hIFYuDQorSGVsbGVyLCBIZWxlbiBXZXN0DQorSGVsbSwgQWxpc29uDQorSGVsbWJyZWtlciwgRGlyaw0KK0hlbG1pY2ssIFJhbHBoDQorSGVsc3QsIEJhcnRob2xvbWV1cyB2YW4gZGVyDQorSGVsemVyLCBSaWNoYXJkDQorSGVtZXNzZW4sIENhdGVyaW5hIHZhbg0KK0hlbWVzc2VuLCBKYW4gU2FuZGVycyB2YW4NCitIZW1pbmcsIEFydGh1cg0KK0hlbXksIENoYXJsZXMgTmFwaWVyDQorSGVuZGVyc29uLCBDaGFybGVzIENvb3Blcg0KK0hlbmRlcnNvbiwgSm9obg0KK0hlbmRlcnNvbiwgSm9zZXBoDQorSGVuZGVyc29uLCBOaWdlbA0KK0hlbmRyaWNrc29uLCBEYW5pZWwNCitIZW5uZXIsIEplYW4tSmFjcXVlcw0KK0hlbm5lc3N5LCBXaWxsaWFtIEpvaG4NCitIZW5uaW5ncywgRS4gTWFydGluDQorSGVucmksIFJvYmVydA0KK0hlbnJ5LCBFZHdhcmQgTGFtc29uDQorSGVuc2VsLCBTYWxvbWUNCitIZXBoZXIsIERhdmlkDQorSGVwd29ydGgsIEJhcmJhcmENCitIZXJiZXJ0LCBKb2huIFJvZ2Vycw0KK0hlcmJpbiwgQXVndXN0ZQ0KK0hlcmxpY2ssIEdlb3JnZQ0KK0hlcm5hbmRleiBQaWp1YW4sIEpvYW4NCitIZXJvbiwgUGF0cmljaw0KK0hlcnLDoW4sIFNhdHVybmlubw0KK0hlcnJlcmEgQmFybnVldm8sIFNlYmFzdGlhbiBkZQ0KK0hlcnJlcmEgdGhlIFlvdW5nZXIsIEZyYW5jaXNjbyBkZQ0KK0hlcnJpbmcsIEpvaG4gRnJlZGVyaWNrDQorSGVydGVyLCBBbGJlcnQNCitIZXJ0aGVsLCBMdWR3aWcNCitIZXJ0bGUsIEphbWVzDQorSGVyem9nLCBIZXJtYW4NCitIZXNzZSwgRXZhDQorSGVzc2VsaXVzLCBKb2huDQorSGVzc2luZywgVmFsamVhbg0KK0hld2FyZCwgUHJ1ZGVuY2UNCitIZXksIEplYW4NCitIZXlib2VyLCBBbnRvbg0KK0hleWRlbiwgSmFuIHZhbiBkZXINCitIZXlkZW4sIFBpZXRlciB2YW4gRGVyDQorSGV5bnNpdXMsIEtlZXMNCitIZXlzZW4sIEhhbnMNCitIZXl3b29kLCBKLkMuDQorSGljaywgSmFjcXVlbGluZQ0KK0hpY2tleSwgRGFsZQ0KK0hpY2tleSwgVGhvbWFzDQorSGlja294LCBFbGl6YWJldGgNCitIaWNrcywgRWR3YXJkDQorSGlja3MsIEdlb3JnZSBFbGdhcg0KK0hpY2tzLCBTaGVpbGENCitIaWNrcywgVGhvbWFzDQorSGlja3MsIFdpbGxpYW0NCitIaWRhbGdvLCBKdWFuDQorSGlnZ2lucyBJSUksIEVkd2FyZCBGLg0KK0hpZ2dpbnMsIEV1Z2VuZQ0KK0hpZ2dpbnMsIFZpY3Rvcg0KK0hpZ2htb3JlLCBKb3NlcGgNCitIaWdoc3RlaW4sIEplbmUNCitIaWxkZWJyYW5kdCwgRWR3YXJkDQorSGlsZXIsIEhpbGFpcmUNCitIaWxsLCBBbnRob255DQorSGlsbCwgQ2FybCBGcmVkcmlrDQorSGlsbCwgRGF2aWQgT2N0YXZpdXMNCitIaWxsLCBKb2huDQorSGlsbCwgSm9obiBXaWxsaWFtDQorSGlsbCwgVGhvbWFzDQorSGlsbGlhcmQsIE5pY2hvbGFzDQorSGlsbGllciwgVHJpc3RyYW0NCitIaWxsaW5nLCBKb2huDQorSGlsbHMsIEFubmEgQWx0aGVhDQorSGlsbHMsIExhdXJhIENvb21icw0KK0hpbGxzLCBSb2JlcnQNCitIaWx0b24gdGhlIFlvdW5nZXIsIFdpbGxpYW0NCitIaWx0b24sIFJvZ2VyDQorSGltaWQsIEx1YmFpbmENCitIaW5kLCBXaWxsaWFtIEcuUi4NCitIaW5lLCBMZXdpcyBXaWNrZXMNCitIaW5rbGUsIENsYXJlbmNlDQorSGlyYXRzdWthLCBVbidpY2hpDQorSGlyb2FraSwgTW9yaW5vDQorSGlyb3NhZGENCitIaXJvc2hpZ2UgSUkNCitIaXJvc2hpZ2UsIEFuZG8NCitIaXJzY2gsIEpvc2VwaA0KK0hpcnNjaHZvZ2VsIHRoZSBFbGRlciwgVmVpdA0KK0hpcnNjaHZvZ2VsLCBBdWd1c3Rpbg0KK0hpcnN0LCBDbGF1ZGUgUmFndWV0DQorSGlyc3QsIERhbWllbg0KK0hpcnN6ZW5iZXJnLCBTYW11ZWwNCitIaXRjaGNvY2ssIEdlb3JnZQ0KK0hpdGNoY29jaywgSGFyb2xkDQorSGl0Y2hlbnMsIEl2b24NCitIbml6ZG92c2t5LCBKYWNxdWVzDQorSG9hcmUsIFByaW5jZQ0KK0hvYXJlLCBTaXIgUmljaGFyZCBDb2x0DQorSG9hcmUsIFdpbGxpYW0NCitIb2JiZW1hLCBNZWluZGVydA0KK0jDtmNoLCBIYW5uYWgNCitIb2NraW5nLCBSb2JlcnQNCitIb2NrbmV5LCBEYXZpZA0KK0hvZGdlcywgSmltDQorSG9kZ2VzLCBXaWxsaWFtDQorSG9kZ2tpbiwgSG93YXJkDQorSG9kZ2tpbnMsIEZyYW5jZXMNCitIb2RsZXIsIEZlcmRpbmFuZA0KK0hvZWNrLCBSaWNoYXJkDQorSG9lY2tlLCBKYW4gdmFuIGRlbg0KK0hvZWZuYWdlbCwgSm9yaXMNCitIb2VybWFuLCBDYXJsDQorSG9mZXIsIENhcmwNCitIb2ZmLCBSYXluZXINCitIb2ZmYmF1ZXIsIENoYXJsZXMNCitIb2ZmbWFuLCBJcndpbg0KK0hvZmZtYW4sIE1hbHZpbmENCitIb2ZmbWFubiwgSGFucw0KK0hvZmZtZWlzdGVyLCBHZW9yZ2UNCitIb2ZsYW5kLCBUaG9tYXMgQ2hyaXN0b3BoZXINCitIb2ZtYW5uLCBDaGFybGVzIEMuDQorSG9mbWFubiwgSGFucw0KK0hvZm1laXN0ZXIsIEFuZHJldw0KK0hvZ2FydGgsIFdpbGxpYW0NCitIb2dlcnMsIEphY29iDQorSG9ndWUsIEFsZXhhbmRyZQ0KK0hvaW4sIENsYXVkZQ0KK0hvaXQsIEFsYmVydCBHYWxsYXRpbg0KK0hva3VlaQ0KK0hva3VzYWkgS2F0c3VzaGlrYQ0KK0hvbGJlaW4gdGhlIEVsZGVyLCBIYW5zDQorSG9sYmVpbiB0aGUgWW91bmdlciwgSGFucw0KK0hvbGJlaW4sIEFtYnJvc2l1cw0KK0hvbGJlcmcsIFJ1dGggTGFuZ2xhbmQNCitIb2xjb21iLCBBbGljZQ0KK0hvbGRzdG9jaywgQWxmcmVkIFcuDQorSG9sZ2F0ZSwgRWR3aW4NCitIb2xpZGF5LCBIZW5yeQ0KK0hvbGwsIEZyYW5rDQorSG9sbGFuZCwgSmFtZXMNCitIb2xsYW5kLCBUaXNoDQorSG9sbGFyLCBXZW5jZXNsYXVzDQorSG9sbMOzc3ksIFNpbW9uDQorSG9sbSwgSnVsaXVzDQorSG9sbWFuLCBGcmFuY2lzDQorSG9sbWVzLCBLZW5uZXRoDQorSG9sbWVzLCBNZWx2aWxsZQ0KK0hvbG1lcywgVGltDQorSG9sb3VuLCBIYWwNCitIb2xyb3lkLCBTaXIgQ2hhcmxlcw0KK0hvbHNtYW4sIEVsaXphYmV0aCBULg0KK0hvbHQsIE5hbmN5DQorSG9semVyLCBKZW5ueQ0KK0hvbWVyLCBXaW5zbG93DQorSG9uJ2FtaSBLb2V0c3UNCitIb25kaXVzIHRoZSBFbGRlciwgSGVuZHJpaw0KK0hvbmRpdXMsIEFicmFoYW0NCitIb25lLCBOYXRoYW5pZWwNCitIb8OxZ2Vlw71lc2ENCitIb25nLUpvbywgS2ltDQorSG9uZ3Jlbg0KK0hvbnRob3JzdCwgR2Vycml0IHZhbg0KK0hvb2NoLCBQaWV0ZXIgZGUNCitIb29kLCBSYXltb25kDQorSG9vZ3N0cmF0ZW4sIFNhbXVlbCB2YW4NCitIb29rLCBEci4gUmljaGFyZA0KK0hvb2ssIEphbWVzIENsYXJrZQ0KK0hvb2ssIFdhbHRlcg0KK0hvcGZlciwgRGFuaWVsDQorSG9wZmVyLCBIaWVyb255bW91cw0KK0hvcGtpbnMsIEZyYW5jZXMgQW5uZQ0KK0hvcGtpbnMsIEphbWVzIFIuDQorSG9wa2lucywgTWlsdG9uIFcuDQorSG9wcGVyLCBFZHdhcmQNCitIb3BwbmVyLCBKb2huDQorSG9wd29vZCwgSGVucnkgU2lsa3N0b25lDQorSG9yZW1hbnMgdGhlIEVsZGVyLCBKYW4gSm9zZWYNCitIb3JpLCBUZXRzdXphbg0KK0hvcm4sIFJlYmVjY2ENCitIb3JuLCBSb25pDQorSG9ybmVib3V0LCBHZXJhcmQNCitIb3JudW5nLCBQcmViZW4NCitIb3JzbGV5LCBKb2huIENhbGxjb3R0DQorSG9ydG9uLCBXaWxsaWFtIFNhbXVlbA0KK0hvc2tpbnMsIEpvaG4NCitIb3NtZXIsIEhhcnJpZXQgR29vZGh1ZQ0KK0hvdSBNb3Vnb25nDQorSG91IFlpbWluDQorSG91YXNzZSwgTWljaGVsLUFuZ2UNCitIb3VicmFrZW4sIEphY29idXMNCitIb3Vkb24sIEplYW4tQW50b2luZQ0KK0hvdWVsLCBKZWFuDQorSG91Z2h0b24sIEFydGh1ciBCb3lkDQorSG91c2UsIEdvcmRvbg0KK0hvdXNlLCBTZXRoDQorSG91c2VyLCBBbGxhbg0KK0hvdXNoaWFyeSwgU2hpcmF6ZWgNCitIb3ZlbmRlbiwgVGhvbWFzDQorSG92ZXksIE90aXMNCitIb3dhcmQsIEJlc3NpZSBKZWFubmV0dGUNCitIb3dhcmQsIERhbg0KK0hvd2FyZCwgRWRpdGggTHVjaWxlDQorSG93YXJkLCBKb3NlcGgNCitIb3dlLCBPc2Nhcg0KK0hvd2l0dCwgU2FtdWVsDQorSG93bGV0dCwgUm9iZXJ0DQorSG95bGFuZCwgSm9obg0KK0hyb24sIFZpbmNlbnQNCitIdSBZaWNodWFuDQorSHUgWXVhbg0KK0h1YSBZYW4NCitIdWFuZyBCaW5ob25nDQorSHVhbmcgTGl6aGVuDQorSHVhbmcgWGluYm8NCitIdWFuZyBaaG91DQorSHViYmFyZCwgSm9obg0KK0h1YmJhcmQsIFdoaXRuZXkNCitIdWJiZWxsLCBIZW5yeSBTYWxlbQ0KK0h1YmVyLCBXb2xmDQorSHVkc29uLCBHcmFjZSBDYXJwZW50ZXINCitIdWRzb24sIEhlbnJ5IEouDQorSHVkc29uLCBUaG9tYXMNCitIdWV0LCBKZWFuLUJhcHRpc3RlIE1hcmllDQorSHVldCwgUGF1bA0KK0h1ZmZtYW4sIExhdG9uIEFsdG9uDQorSHVnZSwgSnVyZ2FuIEZyZWRlcmljaw0KK0h1Z2dpbnMsIFdpbGxpYW0NCitIdWdnaW5zLCBXaWxsaWFtIEpvaG4NCitIdWdoZXMsIEFydGh1cg0KK0h1Z2hlcywgQ29ybmVsaXVzIEphYmV6DQorSHVnaGVzLCBFZHdhcmQgUm9iZXJ0DQorSHVnaGVzLCBQYXRyaWNrDQorSHVnbywgSmVhbg0KK0h1Z28sIFZhbGVudGluZQ0KK0h1Z28sIFZpY3Rvcg0KK0h1Z29uaW4sIEphbWVzDQorSHVndWUsIE1hbnVlbA0KK0h1Z3VldCwgSmF1bWUNCitIdWlsbGlvdCwgUGllcnJlIE5pY29sYXMNCitIdWl6b25nLCBFbXBlcm9yDQorSHVsbCwgTHlubmUNCitIdWxsLCBNYXJpZSBBdGtpbnNvbg0KK0h1bXBocmV5LCBKYWNrDQorSHVtcGhyZXksIFJhbHBoDQorSHVtcGhyZXksIFRvbQ0KK0h1bXBocmV5cywgQ2hhcmxlcyBTLg0KK0h1bmRlcnR3YXNzZXINCitIdW5nIExpdQ0KK0h1bnQsIEFsZnJlZCBXaWxsaWFtDQorSHVudCwgQWxpY2UNCitIdW50LCBCcnlhbg0KK0h1bnQsIENhbHZpbg0KK0h1bnQsIEVzdGhlciBBbm5hDQorSHVudCwgTWFiZWxsZSBBbGNvdHQNCitIdW50LCBSaWNoYXJkDQorSHVudCwgVG9tbXkNCitIdW50LCBXaWxsaWFtIEhlbnJ5DQorSHVudCwgV2lsbGlhbSBIb2xtYW4NCitIdW50LCBXaWxsaWFtIE1vcnJpcw0KK0h1bnRlciwgQ29saW4NCitIdW50ZXIsIEdlb3JnZSBMZXNsaWUNCitIdW50aW5ndG9uLCBBbm5hIFYuIEh5YXR0DQorSHVudGluZ3RvbiwgRGFuaWVsDQorSHVudGluZ3RvbiwgRWxpemFiZXRoIEhhbWlsdG9uDQorSHVudGluZ3RvbiwgSmltDQorSHVudGxleSwgVmljdG9yaWEgSHV0c29uDQorSHVudG9vbiwgTWFyeQ0KK0h1cmQsIFBldGVyDQorSHVybHN0b25lLCBGcmVkZXJpY2sgWWVhdGVzDQorSHVycmVsbCwgR2VvcmdlDQorSHVzYWluLCBNLkYuDQorSHVzc2V5LCBHaWxlcw0KK0h1c3R3aWNrLCBDLg0KK0h1dGluLCBDaGFybGVzLUZyYW7Dp29pcw0KK0h1dHR5LCBBbGZyZWQgSGViZXINCitIdXlzbWFucywgQ29ybmVpbGxlDQorSHV5c21hbnMsIEphY29iDQorSHV5c21hbnMsIEplYW4tQmFwdGlzdGUNCitIdXlzdW0sIEphbiB2YW4NCitIeWRlLCBIZWxlbg0KK0h5by1qb29uZywgWXVuDQorSWFuZWxsaSwgQXJjw6JuZ2Vsbw0KK0liYmV0c29uLCBKdWxpdXMgQ2Flc2FyDQorSWJlbHMsIEhlbnJpIEdhYnJpZWwNCitJY2F6YSwgRXJuZXN0bw0KK0loYXJhLCBNaWNoaW8NCitJaGxlLCBKb2huDQorSWtlLW5vLVRhaWdhDQorSW1iZXIsIEpvbmF0aGFuDQorSW1tZW5kb3JmZiwgSm9lcmcNCitJbW1lbnJhZXQsIFBoaWxpcHBlLUF1Z3VzdGluDQorSW5jZSwgSm9zZXBoIE11cnJheQ0KK0luY2hib2xkLCBKb2huIFdpbGxpYW0NCitJbmRpYW5hLCBSb2JlcnQNCitJbi1kdSwgSGENCitJbmdoYW0sIENoYXJsZXMgQ3JvbXdlbGwNCitJbmdsw6lzLCBKb3JnZQ0KK0luZ3JlcywgSmVhbi1BdWd1c3RlLURvbWluaXF1ZQ0KK0lubWFuLCBIZW5yeQ0KK0lubmVzLCBKYW1lcyBEaWNrc29uDQorSW5uZXNzLCBHZW9yZ2UNCitJbm5vY2Vuem8gZGEgSW1vbGENCitJbnNjcmlwdGlvbiBQYWludGVyLCBUaGUNCitJbnVycmlhLCBNYXRlbw0KK0luemEsIEpvYXF1w61uDQorSXJ2aW4sIEFsYmVydA0KK0lydmluZSwgV2lsc29uDQorSXJ3aW4sIFJvYmVydA0KK0lzYWJleSwgRXVnw6huZQ0KK0lzYWJleSwgSmVhbiBCYXB0aXN0ZQ0KK0lzZW5icmFudCwgQWRyaWFlbg0KK0lzaGlrYXdhIEtvbWVpDQorSXNrb3dpdHosIEdlcnNob24NCitJc3JhZWxzLCBJc2FhYw0KK0lzcmHDq2xzLCBKb3plZg0KK0l0byBKYWt1Y2h1DQorSXR0ZW4sIEpvaGFubmVzDQorSXR0ZW5iYWNoLCBGcmFueg0KK0l2YW5vdiwgQWxleGFuZGVyDQorSXZhbm92LCBBbmRyZWkNCitJdmFub3YsIFNlcmdlaQ0KK0l2YW5vdiwgVmljdG9yDQorSXZlcm55LCBKYWNxdWVzDQorSXZlcywgQ2hhdW5jZXkgQi4NCitJenF1aWVyZG8sIE1hcsOtYQ0KK0phY2ssIE1hYmVsIFdlbGxpbmd0b24NCitKYWNrLCBSaWNoYXJkDQorSmFja3NvbiwgQS5ZLg0KK0phY2tzb24sIEJpbGx5IE1vcnJvdw0KK0phY2tzb24sIEdpbGJlcnQNCitKYWNrc29uLCBKb2huDQorSmFja3NvbiwgU2FtdWVsIFBoaWxsaXBzDQorSmFja3NvbiwgV2lsbGlhbSBIZW5yeQ0KK0phY29iLURlc21hbHRlciwgRnJhbsOnb2lzLUhvbm9yw6ktR2Vvcmdlcw0KK0phY29iZWxsbyBEZWwgRmlvcmUNCitKYWNvYmksIE90dG8NCitKYWNvYnNlbiwgQW50b25pbw0KK0phY29ic2hhZ2VuLCBLZWl0aA0KK0phY29ic29uLCBKYWtlDQorSmFjb2JzeiwgRGlyY2sNCitKYWNvYnN6LCBMYW1iZXJ0DQorSmFjb21ldHRvDQorSmFjb3Bpbm8gZGVsIENvbnRlDQorSmFjb3BvIGRlbCBTZWxsYWlvDQorSmFjb3BvIGRpIENpb25lDQorSmFjb3BvIGRpIERvbWVuaWNvIEZvc2NoaQ0KK0phY29wbyBOaXp6b2xhIGRhIFRyZXp6bw0KK0phY29wbywgTWVsaW9yZSBkaQ0KK0phY291bGV0LCBQYXVsDQorSmFjcXVhbmQsIENsYXVkaXVzDQorSmFjcXVlLCBDaGFybGVzIMOJbWlsZQ0KK0phY3F1ZW1hcnQgZGUgSGVzZGluDQorSmFjcXVlbWFydCwgSnVsZXMgRmVyZGluYW5kDQorSmFjcXVlbWluLCBKZWFubmUNCitKYWNxdWV0LCBNYXRoaWV1DQorSmFjcXVldHRlLCBZdm9ubmUNCitKYWZmZWUsIEpheQ0KK0phbGFiZWF0LCBDaGFybGVzIEZyYW7Dp29pcw0KK0phbWVzLCBBbGV4YW5kZXINCitKYW1lcywgQWxpY2UgQXJjaGVyDQorSmFtZXMsIEZyZWRlcmljaw0KK0phbWVzLCBSZWJlY2NhIFNhbHNidXJ5DQorSmFtZXMsIFdpbGwNCitKYW1lc29uLCBBbm5lIEJyb3duZWxsDQorSmFtaWVzb24sIEJlcm5pY2UgRXZlbHluDQorSmFtaWVzb24sIE1pdGNoZWxsDQorSmFtaW4sIFBhdWwNCitKYW5pbmV0LCBKZWFuLUZyYW7Dp29pcw0KK0phbm93aXR6LCBKb2VsDQorSmFuc2VuLCBGcmFueiBNLg0KK0phbnNzZW5zLCBBYnJhaGFtDQorSmFuc3NvbiwgRXVnZW5lDQorSmFudmllciwgQWxleA0KK0phcnZpcywgQ2hhcmxlcyBXZXNsZXkNCitKYXJ2aXMsIEpvaG4gV2VzbGV5DQorSmF3bGVuc2t5LCBBbGV4ZWkNCitKZWFuIGRlIExpw6hnZQ0KK0plYW4gZGUgVG91eWwNCitKZWFubmUtQ2xhdWRlDQorSmVhdXJhdCwgw4l0aWVubmUNCitKZWZmZXJ5cywgSmFtZXMNCitKZWZmcmllcywgSmltDQorSmVnaGVyLCBDaHJpc3RvZmZlbA0KK0plbmtpbnMsIFBhdWwNCitKZW5uZXdlaW4sIEMuIFBhdWwNCitKZW5uZXksIE5laWwNCitKZW5ueXMsIFdpbGxpYW0NCitKw6lub3QsIFBhdWxpbg0KK0plbnNlbiwgQWxmcmVkDQorSmVuc2VuLCBDaHJpc3RpYW4gQWxicmVjaHQNCitKZW5zc2VuLCBPbGF2IENocmlzdG9waGVyDQorSmVycnkgS3J1c3MNCitKZXNzDQorSmVzc3VwLCBSb2JlcnQNCitKZXdlbGwsIFJvbg0KK0pld2V0dCwgV2lsbGlhbQ0KK0ppLCBCeXVuIFNoaQ0KK0ppYSBZb3VmdQ0KK0ppYW5nIEZlbmcNCitKaWFuZyBUaW5neGkNCitKaWhlaSwgU3VnaW11cmENCitKaW3DqW5leiBBcmFuZGEsIEx1aXMNCitKaW3DqW5leiwgTHVpcw0KK0ppbiBTaGFuZ3lpDQorSmluLWt5dSwgS3dvbg0KK0pvY2VseW4sIE5hdGhhbmllbA0KK0pvaGFubm90LCBBbnRvaW5lDQorSm9obiwgQXVndXN0dXMNCitKb2huLCBHd2VuDQorSm9obiwgUGhpbGlwDQorSm9obnMsIEphc3Blcg0KK0pvaG5zZ2FyZCwgUGF1bA0KK0pvaG5zb24gSnIuLCBKLiBTZXdhcmQNCitKb2huc29uLCBDaGFybGVzIEVkd2FyZA0KK0pvaG5zb24sIENvcm5lbGl1cw0KK0pvaG5zb24sIERhdmlkDQorSm9obnNvbiwgRWFzdG1hbg0KK0pvaG5zb24sIEZyYW5rIFRlbm5leQ0KK0pvaG5zb24sIElzYWJlbGxlDQorSm9obnNvbiwgSm9zaHVhDQorSm9obnNvbiwgUGhpbGlwDQorSm9obnNvbiwgUmFlDQorSm9obnNvbiwgUmF5bW9uZA0KK0pvaG5zb24sIFNhcmdlbnQgQ2xhdWRlDQorSm9obnNvbiwgV2lsbGlhbSBILg0KK0pvaG5zb24tQ2FsbG93YXksIE1hcmllDQorSm9obnN0b24sIEZyYW5rDQorSm9obnN0b24sIEpvaG4NCitKb2huc3RvbiwgWW5leg0KK0pvbGksIEFudG9uaW8NCitKb2xsYWluLCBOaWNvbGFzLVJlbsOpDQorSm9uYXMsIExvdWlzIFBhdWwNCitKb25lcywgQWxsZW4NCitKb25lcywgQmVuDQorSm9uZXMsIEJyYWRsZXkNCitKb25lcywgRGF2aWQNCitKb25lcywgRmF5DQorSm9uZXMsIEZyYW5jaXMgQ29hdGVzDQorSm9uZXMsIEdlb3JnZQ0KK0pvbmVzLCBIdWdoIEJvbHRvbg0KK0pvbmVzLCBKb2UNCitKb25lcywgTG/Dr3MgTWFpbG91DQorSm9uZXMsIEx1dGhlcg0KK0pvbmVzLCBNaWxkcmVkDQorSm9uZXMsIE5lbGwgQ2hvYXRlDQorSm9uZXMsIFRob21hcw0KK0pvbmVzLCBXaWxsaWFtDQorSm9uZ2gsIEx1ZG9sZiBMZWVuZGVydHN6LiBkZQ0KK0pvbmctSGFrLCBLaW0NCitKb25naGVsaW5jaywgSmFjcXVlcw0KK0pvbmdraW5kLCBKb2hhbiBCYXJ0aG9sZA0KK0pvbnNvbiwgUmF5bW9uZA0KK0rDs25zc29uLCDDgXNncsOtbXVyDQorSm9vLCBNaWNoYWVsDQorSm9vcyB2YW4gV2Fzc2VuaG92ZQ0KK0pvcmRhZW5zLCBKYWNvYg0KK0pvcmRhbiwgU2FtdWVsDQorSm9zZXBoc29uLCBFcm5zdA0KK0pvc2V0c3UNCitKb3NsaW4sIFJpY2hhcmQNCitKb3VlIElJLCBKYWNxdWVzIGRlIGxhDQorSm91ZXR0LCBNYXR0aGV3IEhhcnJpcw0KK0pvdXZlbmV0LCBKZWFuDQorSm95LCBHZW9yZ2UgV2lsbGlhbQ0KK0p1YW4gZGUgRmxhbmRlcw0KK0p1YW4gZGUgSGVycmVyYQ0KK0p1YW4gZGUgSnVuaQ0KK0p1YW4gZGUgVmlsbGFudWV2YQ0KK0p1YW5lcywgSnVhbiBkZQ0KK0p1w6FyZXosIEx1aXMNCitKdWFyZXosIFJvYmVydG8NCitKdWRkLCBEb25hbGQNCitKdWRzb24sIFdpbGxpYW0gTGVlcw0KK0p1ZWwsIEplbnMNCitKdWxlcywgTWVydmluDQorSnVsaWVuLCBIZW5yaQ0KK0p1bGllbiwgUGllcnJlDQorSnVtYm8sIEp1bGlhDQorSnV2YXJyYSwgRmlsaXBwbw0KK0thYmFrb3YsIElseWENCitLYWJvdGllLCBGcmVkDQorS2FjZXJlLCBKb2huDQorS2FkaXNobWFuLCBNZW5hc2hlDQorS2FobG8sIEZyaWRhDQorS2FobiwgQWxiZXJ0DQorS2FobiwgV29sZg0KK0thaWhvIFl1c2hvDQorS2FpbmVuLCBKYWNvYg0KK0thaXNlcm1hbm4sIEZyYW56DQorS2FsZiwgV2lsbGVtDQorS2FsbGVvLCBKb3NlcGhpbmENCitLYW1lbmV2LCBMLg0KK0thbmRpbnNreSwgV2Fzc2lseQ0KK0thbmUsIFBhdWwNCitLYW5nIFNoaXlhbw0KK0thbmcgWW91d2VpDQorS2FubyBFaXRva3UNCitLYW5vIEhpZGV5b3JpDQorS2FubyBNb3Rvbm9idQ0KK0thbm8gU2FucmFrdQ0KK0thbm8gU2Fuc2V0c3UNCitLYW5ww7QsIFlvc2hpa2F3YQ0KK0thbnRvciwgTW9ycmlzDQorS2Fwb29yLCBBbmlzaA0KK0thcnBpaywgQW5kcmV3DQorS2Fyc2gsIFlvdXN1Zg0KK0thcnRuZXIgTWVpc3Rlcg0KK0vDpHNlYmllciwgR2VydHJ1ZGUNCitLYXNzLCBEZWJvcmFoDQorS2F0eiwgQWxleA0KK0thdHosIENpbWENCitLYXR6ZW4sIExpbGENCitLYXVmZm1hbm4sIEFuZ2VsaWNhDQorS2F1Zm1hbm4sIElzaWRvcg0KK0thdWxhLCBMZWUgTHVma2luDQorS2F3YWthbWksIFN1bWlvDQorS2F3YW5vLCBLYW9ydQ0KK0thd2FyYSwgT24NCitLYXllLCBPdGlzDQorS2F6dW1hLCBPZGENCitLY2hvDQorS2VhbmUsIEpvaG4NCitLZWVuZSwgQ2hhcmxlcyBTYW11ZWwNCitLZWVzZXksIFcuTS4NCitLZWlidW4NCitLZWlsLCBCZXJuaGFyZA0KK0tlaXJpbmN4LCBBbGV4YW5kZXINCitLZWlzYWkgRWlzZW4NCitLZWlzYWkgTWFzYXlvc2hpDQorS2VpdGgsIEVsaXphYmV0aA0KK0tlaXRoLCBXaWxsaWFtDQorS2VsbGVyLCBIZW5yeQ0KK0tlbGxleSwgTWlrZQ0KK0tlbGx5LCBFbGxzd29ydGgNCitLZW1leXMsIEVkd2FyZA0KK0tlbW1lbG1leWVyLCBGcmVkZXJpY2sNCitLZW1wdG9uLCBFbG1pcmENCitLZW1wdG9uLCBHcmV0YQ0KK0tlbXAtV2VsY2gsIEx1Y3kNCitLZW5kYWxsLCBXaWxsaWFtIFNlcmdlYW50DQorS2VuZHJpY2ssIE1lbA0KK0tlbm5lZHksIEdhcnJ5IE5laWwNCitLZW5uZWR5LCBNYXJ5DQorS2VubmVkeSwgU2hhbm5vbg0KK0tlbm5pbmd0b24sIEVyaWMNCitLZW5zZXR0LCBHZW9yZ2UNCitLZW5zZXR0LCBKb2huIEZyZWRlcmljaw0KK0tlbnQsIENvcml0YQ0KK0tlbnQsIFJvY2t3ZWxsDQorS2VybiwgRGVubmlzDQorS2VybiwgTGVvbmhhcmQNCitLZXJyLCBDaGFybGVzIEhlbnJ5IE1hbGNvbG0NCitLZXJyLCBJbGxpbmd3b3J0aCBIb2xleQ0KK0tlcnItTGF3c29uLCBKYW1lcw0KK0tlcnN0aW5nLCBHZW9yZyBGcmllZHJpY2gNCitLZXJ0w6lzeiwgQW5kcsOpDQorS2Vzc2VsIHRoZSBZb3VuZ2VyLCBKYW4gdmFuDQorS2Vzc2VsLCBKYW4gdmFuDQorS2Vzc2xlciwgV3lubg0KK0tldGNodW0sIFJvYmVydCBHbGVubg0KK0tldGVsLCBDb3JuZWxpcw0KK0tldHRsZSwgVGlsbHkNCitLZXVuaW5jaywgS2Vyc3RpYWVuIGRlDQorS2V5LCBKb2huIFJvc3MNCitLZXlsLCBGcmllZHJpY2ggV2lsaGVsbQ0KK0tleXNlciBJLCBIZW5kcmljayBkZQ0KK0tleXNlciwgVGhvbWFzIGRlDQorS2hhdGNoYXR1cg0KK0tobm9wZmYsIEZlcm5hbmQNCitLaHJ1dHNreSwgSXZhbg0KK0tpY2ssIFNpbW9uDQorS2lja2luZyBCZWFyDQorS2lkZCwgSm9zZXBoIEJhcnRob2xvbWV3DQorS2llZmVyLCBBbnNlbG0NCitLaWVuZXJrLCBHaW9yZ2lvDQorS2llbmhvbHosIEVkd2FyZA0KK0tpZW5ob2x6LCBOYW5jeSBSZWRkaW4NCitLaWVuemVyLCBNaWNoYWVsDQorS2lpdHN1LCBTdXp1a2kNCitLaW0sIEd1aWxpbg0KK0tpbWJhbGwsIFdheW5lDQorS2luZywgQ2FybA0KK0tpbmcsIENoYXJsZXMgQmlyZA0KK0tpbmcsIEpvaG4gSGVucnkgWWVlbmQNCitLaW5nLCBQaGlsaXANCitLaW5nLCBSb25hbGQNCitLaW5nLCBTYW11ZWwNCitLaW5nLCBXaWxsaWFtDQorS2luZ21hbiwgRG9uZw0KK0tpbmthZGUsIFRob21hcw0KK0tpbmxleSwgUGV0ZXINCitLaW5uYXJkLCBXLg0KK0tpbm9zaGl0YSwgVG9taW8NCitLaW5zb24sIEZyYW7Dp29pcy1Kb3NlcGgNCitLaW5zdGxlciwgRXZlcmV0dCBSYXltb25kDQorS2lwcCwgTHltYW4NCitLaXBwZWxsLCBOaWNsYXVzcw0KK0tpcHBpbmcsIEJyaWFuDQorS2lwcmVuc2t5LCBPcmVzdA0KK0tpcmJlcmcsIE90dG8gS2FybA0KK0tpcmNobmVyLCBFcm5zdCBMdWR3aWcNCitLaXJrZWJ5LCBQZXINCitLaXJrbGFuZCwgVmFuY2UNCitLaXJtc2UsIE1hcmd1ZXJpdGUNCitLaXJzY2gsIER3aWdodA0KK0tpcnN0YSwgR2VvcmcNCitLaXNzLCBTw6FtdWVsDQorS2lzc2VsLCBFbGVvbm9yYQ0KK0tpdGFqLCBSLkIuDQorS2l0YW9rYSwgRnVtaW8NCitLaXRpLCBNd2FtYQ0KK0tpeW9tYXN1LCBUb3JpaQ0KK0tpeW9taXRzdSwgVG9yaWkNCitLaXlvbmFnYQ0KK0tpeW9ub2J1DQorS2l5b25vYnUgSUksIFRvcmlpDQorS2l5b3RzdW5lLCBUb3JpaQ0KK0tsZWJlLCBHZW5lDQorS2xlZSwgUGF1bA0KK0tsZWVtYW5uLCBSb24NCitLbGVpbiwgWXZlcw0KK0tsZWluaG9seiwgRnJhbmsNCitLbGVpdHNjaCwgSm9zZXBoDQorS2xlb3BocmFkZXMgUGFpbnRlciwgVGhlDQorS2xpbXQsIEd1c3Rhdg0KK0tsaW5lLCBGcmFueg0KK0tsaW5nZXIsIE1heA0KK0tsdW1wa2UsIEFubmEgRWxpemFiZXRoDQorS2x1bmRlciwgVGltDQorS2x1dHNpcywgR3VzdGF2DQorS25hcHRvbiwgR2VvcmdlDQorS25hdGhzLCBLYXJsDQorS25hdWIsIFJheQ0KK0tuYXViZXIsIEFsbWEgSm9yZGFuDQorS25lYWxlLCBCcnlhbg0KK0tuZWxsZXIsIFNpciBHb2RmcmV5DQorS25pZ2h0LCBEYW1lIExhdXJhDQorS25pZ2h0LCBEYW5pZWwgUmlkZ3dheQ0KK0tuaWdodCwgSm9obiBCYXZlcnN0b2NrDQorS25pZ2h0LCBKb2huIFByZXNjb3R0DQorS25pZ2h0LCBKb2huIFdpbGxpYW0gQnV4dG9uDQorS25pZ2h0LCBKb3NlcGgNCitLbmlnaHQsIExvdWlzIEFzdG9uDQorS25pZ2h0LCBTdXNhbg0KK0tub2ViZWwsIEltaQ0KK0tub3R0LCBIZW5yeQ0KK0tub3dsZXMsIERvcm90aHkgRWxzaWUNCitLbm93bGVzLCBGYXJxdWhhciBNY0dpbGxpdnJheQ0KK0tub3dsaW5nLCBLYXRobGVlbg0KK0tub3gsIFN1c2FuIFJpY2tlcg0KK0tuw7xwZmVyLCBOaWNvbGF1cw0KK0tvYmVsbCwgV2lsaGVsbSB2b24NCitLw7hia2UsIENocmlzdGVuDQorS29jaCwgSm9obg0KK0tvY2gsIEpvc2VwaCBBbnRvbg0KK0tvZWhsZXIsIFJvYmVydA0KK0tvZWtrb2VrLCBCYXJlbmQgQ29ybmVsaXVzDQorS29la2tvZWssIFdpbGxlbQ0KK0tvZWxsaW4sIFBldGVyDQorS29lcmJlY2tlLCBKb2hhbm4NCitLb2VybmVyLCBIZW5yeQ0KK0tvZXN0ZXIsIEFsZXhhbmRlcg0KK0tvZ2xlciwgUGV0ZXINCitLb2d2aWssIENoYXJsaWUNCitLb2tlaSwgVHN1cnV5YQ0KK0tva29zY2hrYSwgT3NrYXINCitLb2xiZSwgR2VvcmcNCitLb2xsZXIsIFJ1ZG9sZg0KK0tvbGx3aXR6LCBLw6R0aGUNCitLb25jaGFsb3Zza3ksIFB5b3RyDQorS29uaW5jaywgUGhpbGlwcw0KK0tvbnJhZCBvZiBTb2VzdA0KK0tvbyBNZWkNCitLb29ucywgSmVmZg0KK0tvb3lvbyBQZXRlcg0KK0tvcG1hbiwgQmVuamFtaW4NCitLb3JpbiwgUGF2ZWwNCitLb3JsaW5nLCBUb3JrZWwNCitLb3JvdmluLCBLb25zdGFudGluDQorS29yeXVzYWkNCitLb3Nha2EsIEdhamluDQorS29zc29mZiwgTGVvbg0KK0tvc3RhYmksIE1hcmsNCitLb3N1dGgsIEpvc2VwaA0KK0tvdGFrdSwgSG9zb2kNCitLb3RvbmRvLCBUb3JpaQ0KK0tvdW5lbGxpcywgSmFubmlzDQorS291d2VuYmVyZ2gsIFBoaWxpcCB2YW4NCitLb3dhbCwgRGVubmlzDQorS296aW5hLCBTw6FuZG9yDQorS3JhZmZ0LCBKb2hhbm4gUGV0ZXINCitLcmFmdCwgQWRhbQ0KK0tyYW1za295LCBJdmFuIE5pa29sYWV2aWNoDQorS3Jhc25lciwgTGVlDQorS3JlaGJpZWwsIEFsYmVydCBILg0KK0tyZW1lciwgTmljb2xhdXMNCitLcmV0c2NoLCBLYXJsDQorS3JpZWdob2ZmLCBDb3JuZWxpdXMNCitLcm9oZywgQ2hyaXN0aWFuDQorS3JvbGwsIExlb24NCitLcsO4eWVyLCBQZWRlciBTZXZlcmluDQorS3J1ZWdlciwgRGF2aWQNCitLcnVnZXIsIEJhcmJhcmENCitLcnVnZXIsIEZyYW56DQorS3J1bXBlciwgSGFucw0KK0tyeWxvdiwgTmlraWZvcg0KK0t1YW5nIFlhb2RpbmcNCitLdWJpbiwgQWxmcmVkDQorS3ViaW55aSwgS2FsbWFuDQorS3Vib3RhLCBJdGNoaWt1DQorS3Vib3Z5LCBKaXLDrQ0KK0t1ZWhuZSwgTWF4DQorS3VlbW1lbCwgQ29ybmVsaWENCitLdWhuLCBCb2INCitLw7xobiwgSnVzdHVzIEVuZ2VsaGFyZHQNCitLdWhuLCBXYWx0DQorS3VobmVydCwgRnJpZWRyaWNoIFdpbGhlbG0NCitLdWluZHpoaSwgQXJraGlwIEl2YW5vdmljaA0KK0t1aXRjYSwgR3VpbGxlcm1vDQorS3VrLWt3YW5nLCBDaHVuDQorS3VsaXVrc2luLCBOZWt0YXJpaQ0KK0t1bG1iYWNoLCBIYW5zIFPDvHNzIHZvbg0KK0t1bmMsIEthcmVuDQorS3VuaWNoaWthDQorS3VuaWhpcm8sIFV0YWdhd2ENCitLdW5pa2F6dQ0KK0t1bmltYXNhDQorS3VuaW1hc3UNCitLdW5pc2FkYSwgVXRhZ2F3YQ0KK0t1bml5b3NoaSwgVXRhZ2F3YQ0KK0t1bml5b3NoaSwgWWFzdW8NCitLdW5zdCwgUGlldGVyIENvcm5lbGlzei4NCitLdXBmZXJtYW4sIExhd3JlbmNlIEUuDQorS3VwZmVybWFuLCBNb3NoZQ0KK0t1cGthLCBGcmFudGlzZWsNCitLdXJvc2FraSwgQWtpcmENCitLdXNhbWEsIFlheW9pDQorS3VzdG9kaWV2LCBCb3Jpcw0KK0t1eXRlbmJyb3V3ZXIsIE1hcnRpbnVzIEFkcmlhbnVzDQorS3V6bmV0c292LCBOaWtvbGFpIERtaXRyaWV2aWNoDQorS3V6bmV0c292LCBQYXZlbA0KK0t3YW4tc2lrLCBCeWVvbg0KK0t5bGUsIEpvc2VwaA0KK0t5b3VuZyBBZSBDaG8NCitLeXVuZy1qYSwgQ2h1bg0KK0xhIENhdmUsIFBldGVyDQorTGEgQ3JvaXggZGUgTWFyc2VpbGxlLCBDaGFybGVzDQorTGEgRmFyZ2UsIEpvaG4NCitMYSBGb3NzZSwgQ2hhcmxlcyBkZQ0KK0xhIEh5cmUsIExhdXJlbnQgZGUNCitMYSBUaGFuZ3VlLCBIZW5yeSBILg0KK0xhIFRvdXIsIEdlb3JnZXMgZGUNCitMYSBUb3VyLCBNYXVyaWNlIFF1ZW50aW4gZGUNCitMYWJhdWR0LCBMdWNpZW4NCitMYWJpbGxlLUd1aWFyZCwgQWTDqWxhw69kZQ0KK0xhYm91cmV1ciwgSmVhbi3DiW1pbGUNCitMYWJydXp6aSwgQ2FybG8NCitMYWNoYWlzZSwgR2FzdG9uDQorTGFjb21iZSwgR2Vvcmdlcw0KK0xhY29zdGUsIENoYXJsZXMNCitMYWNvdXIsIFBpZXJyZQ0KK0xhY3JvaXgsIFBhdWwNCitMYWRicm9va2UsIFJvYmVydA0KK0xhZGQsIERhbmllbA0KK0xhZW1tbGUsIENoZXJ5bA0KK0xhZXIsIFBpZXRlciB2YW4NCitMYUZhcmd1ZSwgUGF1bHVzIENvbnN0YW50aWpuDQorTGFmcmVuc2VuLCBOaWNsYXMNCitMYWdlcmlubywgU3RlZmFubw0KK0xhZ3JlbmVlLCBKZWFuLUphY3F1ZXMNCitMYWdyZW7DqWUsIExvdWlzIEplYW4gRnJhbsOnb2lzDQorTGFndWFyZGlhLCBFbG95IEdpbcOpbmV6DQorTGFpIFNoYW9xaQ0KK0xhaSBTdW5nDQorTGFpYiwgQ29ucmFkDQorTGFpZGxheSwgV2lsbGlhbSBKYW1lcw0KK0xhaW5nLCBHZXJhbGQNCitMYWluZywgSi5TLg0KK0xhaXJlc3NlLCBHZXJhcmQgZGUNCitMYWxhbm5lLCBNYXhpbWUNCitMYWxpcXVlLCBSZW7DqQ0KK0xhbSwgV2lsZnJlZG8NCitMYW1iLCBBLkEuDQorTGFtYiwgQW5kcmlhbg0KK0xhbWIsIEhlbnJ5DQorTGFtYmRpbiwgSmFtZXMgUmVpZA0KK0xhbWJlcnQsIEdlb3JnZQ0KK0xhbWJlcnQsIEdlb3JnZSBXLg0KK0xhbWJlcnQsIEphbWVzDQorTGFtYmVydGksIFBpZXJvIGRpIE5pY2NvbG8NCitMYW1pLCBFdWfDqG5lDQorTGFtbSwgTGVvbmlkDQorTGFNb3JlLCBDaGV0DQorTGFtcXVhDQorTGFuIFlpbmcNCitMYW5jYXN0ZXIsIFJldi4gUmljaGFyZCBIdW1lDQorTGFuY2UsIEdlb3JnZQ0KK0xhbmNyZXQsIE5pY29sYXMNCitMYW5kYWNyZSwgUGF1bCBIYW1iZWx0b24NCitMYW5kZWNrLCBBcm1pbg0KK0xhbmRlbGxlLCBDaGFybGVzDQorTGFuZGluaSwgVGFkZGVvDQorTGFuZGlzLCBKb2huDQorTGFuZHNlZXIsIENoYXJsZXMNCitMYW5kc2VlciwgU2lyIEVkd2luIEhlbnJ5DQorTGFuZSwgRml0eiBIdWdoDQorTGFuZSwgU2FtdWVsDQorTGFuZSwgVGhlb2RvcmUNCitMYW5ldXZpbGxlLCBKZWFuLUxvdWlzDQorTGFuZnJhbmNvLCBHaW92YW5uaQ0KK0xhbmdlLCBEb3JvdGhlYQ0KK0xhbmdlbmRpamssIERpcmsNCitMYW5nZXR0aSwgR2lvdmFuIEJhdHRpc3RhDQorTGFuZ2hhbnMsIEthcmwgRmVyZGluYW5kDQorTGFuZ2xvaXMsIErDqXLDtG1lLU1hcnRpbg0KK0xhbmluZywgRWR3YXJkDQorTGFuaW5vLCBCZXJuYXJkaW5vDQorTGFOb3VlLCBUZXJyZW5jZQ0KK0xhbnNpbCwgV2FsdGVyIEZyYW5rbGluDQorTGFudGVyaSwgRWRvdWFyZA0KK0xhbnlvbiwgRWxsZW4NCitMYW55b24sIFBldGVyDQorTGFwb2ludGUsIEZyYW5rDQorTGFwb3J0ZSwgR2VvcmdlIEhlbnJ5DQorTGFwb3J0ZSwgSm9obg0KK0xhcHJhZGUsIFBpZXJyZQ0KK0xhcmNpYW5pLCBHaW92YW5uaQ0KK0xhcmRlcmEsIEJlcnRvDQorTGFyZ2lsbGnDqHJlLCBOaWNvbGFzIGRlDQorTGFyaW9ub3YsIE1pa2hhaWwNCitMYXJraW4sIFdpbGxpYW0NCitMYXJvb24gdGhlIFlvdW5nZXIsIE1hcmNlbGx1cw0KK0xhcnNvbiwgUGhpbGlwDQorTGFyc3NvbiwgQ2FybA0KK0xhcnRlciwgUmljaGFyZA0KK0xhc2Fuc2t5LCBNYXVyaWNpbw0KK0xhc2Vyc3RlaW4sIExvdHRlDQorTGFzaCwgSm9uDQorTGFzc2F3LCBJYnJhbQ0KK0xhc3NuaWcsIE1hcmlhDQorTGFzdCwgRmlyc3QgbmFtZQ0KK0xhc3RtYW4sIFBpZXRlcg0KK0xhc3psbywgUGhpbGlwIEFsZXhpdXMgZGUNCitMYXRoYW0sIEpvaG4NCitMYXRocm9wLCBJZGEgUHVsaXMNCitMYXVyYW5hLCBGcmFuY2VzY28NCitMYXVyZW5jZSwgU2FtdWVsDQorTGF1cmVuY2luLCBNYXJpZQ0KK0xhdXJlbnMsIEhlbnJpDQorTGF1cmVucywgSmVhbi1QYXVsDQorTGF1cmVudCwgRXJuZXN0DQorTGF1cmVudCwgSi4NCitMYXVyZW50LCBKZWFuIEFudG9pbmUNCitMYXVyZW50LCBSb2JlcnQNCitMYXVyaWUsIFJvYmVydA0KK0xhdXRlbnNhY2ssIEhhbnMgU2ViYWxkDQorTGF1dmVyZ25lLCBCYXJ0aGVsZW15DQorTGF2ZXJ5LCBTaXIgSm9obg0KK0xhdmllciwgQmVydHJhbmQNCitMYVZpZ25lIElJLCBKb3NlcGgNCitMYXcsIEFsZnJlZA0KK0xhd3JhbnNvbiwgVGhvbWFzDQorTGF3cmVuY2UsIEphY29iDQorTGF3cmVuY2UsIFNpciBUaG9tYXMNCitMYXdzb24sIEVybmVzdA0KK0xheSwgRXJuZXN0DQorTGF6bywgQWd1c3TDrW4NCitMYXp6ZWxsLCBCbGFuY2hlDQorTGUgQmFyYmllciwgSmVhbi1KYWNxdWVzLUZyYW7Dp29pcw0KK0xlIEJhcywgRWR3YXJkDQorTGUgQmxvbiwgSmFrb2IgQ2hyaXN0b2YNCitMZSBCcnVuLCBDaGFybGVzDQorTGUgQ291cnQsIEdpdXN0bw0KK0xlIEZhdWNvbm5pZXIsIEhlbnJpDQorTGUgR3JvcyBJLCBQaWVycmUNCitMZSBHcm9zIElJLCBQaWVycmUNCitMZSBMb3JyYWluLCBMb3Vpcy1Kb3NlcGgNCitMZSBMb3JyYWluLCBSb2JlcnQNCitMZSBNaXJlLCBOb8OrbA0KK0xlIE1veW5lLCBGcmFuw6dvaXMNCitMZSBOYWluLCBBbnRvaW5lDQorTGUgTmFpbiwgTG91aXMNCitMZSBOYWluLCBNYXRoaWV1DQorTGUgUHJpbmNlLCBKZWFuLUJhcHRpc3RlDQorTGUgU2VjcSwgSGVucmkgSmVhbi1Mb3Vpcw0KK0xlIFNpZGFuZXIsIEhlbnJpIEV1Z2VuZSBBdWd1c3Rpbg0KK0xlIFN1ZXVyLCBFdXN0YWNoZQ0KK0xlYSwgVG9tDQorTGVhZGVyLCBCZW5qYW1pbiBXaWxsaWFtcw0KK0xlYWwsIEZlcm5hbmRvDQorTMOpYW5kcmUsIENoYXJsZXMNCitMZWFyLCBFZHdhcmQNCitMZWJvdXJnLCBBbGJlcnQNCitMZWJydW4sIFJpY28NCitMZWNrLCBCYXJ0IHZhbiBkZXINCitMZUNsZWFyLCBUaG9tYXMNCitMZWRlcmVyLCBKb2hhbm4gR2VvcmcNCitMZWR1YywgT3ppYXMNCitMZWUsIERvcmlzDQorTGVlLCBGcmVkZXJpY2sgUmljaGFyZA0KK0xlZSwgSm9obg0KK0xlZWNoLCBKb2huDQorTGVla2UsIEZlcmRpbmFuZA0KK0xlZW4sIE5pbmENCitMZWUtU21pdGgsIEh1Z2hpZQ0KK0xlZmVidnJlLCBKdWxlcy1Kb3NlcGgNCitMZWbDqXZyZSwgUm9iZXJ0LUphY3F1ZXMtRnJhbsOnb2lzDQorTGVnYSwgU3lsdmVzdHJvDQorTMOpZ2Fyw6ksIEpvc2VwaA0KK0zDqWdlciwgRmVybmFuZA0KK0xlZ3JvcywgQWxwaG9uc2UNCitMZWhldXRyZSwgR3VzdGF2ZQ0KK0xlaG1hbm4sIEFydGh1cg0KK0xlaG1hbm4sIEhlbnJpDQorTGVobWFubiwgUm9sZg0KK0xlaG1icnVjaywgV2lsaGVsbQ0KK0xlaG1kZW4sIEFudG9uDQorTGVpYmwsIFdpbGhlbG0NCitMZWlnaCwgV2lsbGlhbSBSLg0KK0xlaWdodG9uLCBBLkMuDQorTGVpZ2h0b24sIENsYXJlDQorTGVpZ2h0b24sIEZyZWRlcmljLCBMb3JkDQorTGVpZ2h0b24sIE5pY2hvbGFzIFdpbmZpZWxkIFNjb3R0DQorTGVpcm5lciwgSmFjDQorTGVpdGNoLCBXaWxsaWFtIExlaWdodG9uDQorTGVsZXUsIEplYW4tRnJhbsOnb2lzDQorTGVsdWphDQorTGVseSwgU2lyIFBldGVyDQorTGVtYWlyZSwgSmVhbg0KK0xlbWJlcmdlciwgR2VvcmcNCitMZW1pZXV4LCBBbm5ldHRlDQorTGVtaWV1eCwgSmVhbiBQYXVsDQorTGVtbWVuLCBHZW9yZ2VzDQorTGVtbWVucywgVGjDqW9waGlsZS1WaWN0b3ItRW1pbGUNCitMZW1vaW5lLCBKYWNxdWVzIEFudG9pbmUgTWFyaWUNCitMZW1vaW5lLCBNYXJpZS1WaWN0b2lyZQ0KK0xlbW95bmUgSUksIEplYW4tQmFwdGlzdGUNCitMZW1veW5lLCBKZWFuLUxvdWlzDQorTGVtcGlja2EsIFRhbWFyYSBkZQ0KK0xlbmJhY2gsIEZyYW56IHZvbg0KK0xlbmRlcnMsIEVtaWwgVy4NCitMZW5lcHZldSwgSnVsZXMtRXVnw6huZQ0KK0xlbmluZ3JhZCBQYWludGVyLCBUaGUNCitMZW5ub3gsIExvcmQgV2lsbGlhbSBQaXR0DQorTGVucywgQmVybmFyZA0KK0xlbnNvbiwgTWljaGFlbA0KK0xlb2NoYXJlcw0KK0xlb25hcmRvIGRhIFZpbmNpDQorTGVvbmNpbGxvLCBMZW9uYXJkaQ0KK0xlb25pLCBMZW9uZQ0KK0xlb25pLCBPdHRhdmlvDQorTGVvbmksIFBvbXBlbw0KK0xlb25pZA0KK0xlcMOocmUsIEF1Z3VzdGUtTG91aXMNCitMZXBpY2nDqSwgTWljaGFlbCBOaWNvbGFzLUJlcm5hcmQNCitMw6lwaW5lLCBTdGFuaXNsYXMNCitMZXJtYW4sIExlb25pZA0KK0xlcm1vbmQsIENoYXJsZXMgQy5FLg0KK0xlcm9sbGUsIEhlbnJ5DQorTGVzbGllLCBBbGZyZWQNCitMZXNsaWUsIENoYXJsZXMgUm9iZXJ0DQorTGVzc29yZSwgSm9obg0KK0xldGVuZHJlLCBSaXRhDQorTGV0aCwgSGFyYWxkDQorTGV0aGnDqHJlLCBHdWlsbGF1bWUNCitMZXUgdGhlIEVsZGVyLCBIYW5zDQorTGV1dHplLCBFbWFudWVsIEdvdHRsaWViDQorTGV2aSwgSnVsaWFuDQorTGV2aW5lLCBKYWNrDQorTGV2aW5lLCBNYXJpbHluDQorTGV2aW5lLCBTaGVycmllDQorTGV2aW50aGFsLCBEYXZpZA0KK0xldml0YW4sIElzYWFrIElsJ2ljaA0KK0xldml0c2tpaSwgRG1pdHJpaSBHcmlnb3JldmljaA0KK0xldml0dCwgSGVsZW4NCitMw6l2eSwgRW1pbGUNCitMZXZ5LCBKb2FuDQorTMOpdnktRGh1cm1lciwgTHVjaWVuDQorTGV3YW5kb3dza2ksIEVkbXVuZA0KK0xld2lzLCBFZG1vbmlhDQorTGV3aXMsIEdlb3JnZSBSb2JlcnQNCitMZXdpcywgSmVubmllDQorTGV3aXMsIEpvaG4gRnJlZGVyaWNrDQorTGV3aXMsIEx1Y3kgTS4NCitMZXdpcywgTWFydGluDQorTGV3aXMsIE1hdWQNCitMZXdpcywgTm9ybWFuDQorTGV3aXMsIFByb2Zlc3NvciBIZW5yeQ0KK0xld2lzLCBXeW5kaGFtDQorTGV3aXR0LCBTb2wNCitMZXhpZXIsIE1pY2FoDQorTGV5ZGVuLCBMdWNhcyB2YW4NCitMZXlzLCBIZW5kcmljaw0KK0xleXN0ZXIsIEp1ZGl0aA0KK0wnaGVybWl0dGUsIEzDqW9uIEF1Z3VzdGluDQorTGhldXJldXgsIExvdWlzLUVybmVzdA0KK0xob3RlLCBBbmRyw6kNCitMaSBGYW5neWluZw0KK0xpIEh1YQ0KK0xpIEh1YXlpDQorTGkgSHVpeGlhbg0KK0xpIEthbg0KK0xpIEtlcmFuDQorTGkgS3VjaGFuDQorTGkgUGluZ2Zhbg0KK0xpIFFpDQorTGkgV2VueGkNCitMaSBYaW9uZ2NhaQ0KK0xpYW5nIFpoaWhlDQorTGlhbyBMdQ0KK0xpYmVyYWxlIGRhIFZlcm9uYQ0KK0xpYmVyaSwgUGlldHJvDQorTGliZXJtYW4sIEFsZXhhbmRlcg0KK0xpY2hhbm90dXMsIEluZHJpcw0KK0xpY2h0ZW5zdGVpbiwgUm95DQorTGljaW5pbywgQmVybmFyZGlubw0KK0xpZSwgSm9uYXMNCitMaWViZXJtYW5uLCBNYXgNCitMaWVibGluZywgSmVyb21lDQorTGllZnJpbmNrLCBDb3JuZWxpdXMNCitMaWV2ZW5zLCBKYW4NCitMaWdldGksIEFudGFsDQorTGlnb3p6aSwgSmFjb3BvDQorTGlsZXMsIENhdGhhcmluZQ0KK0xpbGplZm9ycywgQnJ1bm8gQW5kcmVhcw0KK0xpbGxpbywgQW5kcmVhDQorTGltYmFjaCwgUnVzc2VsbA0KK0xpbWJvdXJnLCBIZXJtYW5uDQorTGltYm91cmcsIEplYW4NCitMaW1ib3VyZywgUGF1bA0KK0xpbW9zaW4sIEzDqW9uYXJkDQorTGluIEZlbmdtaWFuDQorTGluIEdhbmcNCitMaW4gTGlhbmcNCitMaW4gU2FuemhpDQorTGluIFlvbmcNCitMaW4sIE1heWENCitMaW5hcmVzLCBEb24NCitMaW5idXJnLCBTdWUNCitMaW5kZXIsIFJvbmFsZCBGLg0KK0xpbmRuZXIsIFJpY2hhcmQNCitMaW5kcXVpc3QsIE1hcmsNCitMaW5kcXVpc3QsIE1lbHZpbg0KK0xpbmdlbGJhY2gsIEpvaGFubmVzDQorTGlubmVsbCwgSm9obg0KK0xpbnRvbiwgV2lsbGlhbQ0KK0xpb3RhcmQsIEplYW4tw4l0aWVubmUNCitMaXBjaGl0eiwgSmFjcXVlcw0KK0xpcHBpLCBGaWxpcHBpbm8NCitMaXBwaSwgRnJhIEZpbGlwcG8NCitMaXBwaSwgUmFmZmFlbGUNCitMaXBzY29tYiwgQ0QNCitMaXJhLCBQZWRybw0KK0xpc21lciwgQXJ0aHVyDQorTGlzcywgSm9oYW5uDQorTGlzc2l0emt5LCBFbA0KK0xpdHRsZSwgS2VuDQorTGl0dGxlZmllbGQsIFdpbGxpYW0gSG9yYWNlDQorTGl0dGxldG9uLCBIYXJ2ZXkgSy4NCitMaXUgRGFuemhhaQ0KK0xpdSBHdW9zb25nDQorTGl1IEppeW91DQorTGl1IEt1aWxpbmcNCitMaXUgU2hpcnUNCitMaXUgV2VuZnUNCitMaXUgV2VueGkNCitMaXUgWGlhbg0KK0xpdSBaaWppYW4NCitMaXZlcnNlZWdlLCBIZW5yeQ0KK0xpdmluZ3N0b24sIEFsZXgNCitMaXhhcnMsIFMuQy4NCitMaXphcnMsIFdpbGxpYW0gSG9tZQ0KK0xvYmUsIFJvYmVydA0KK0xvY2huZXIsIFN0ZXBoYW4NCitMb2NocmllLCBFbGl6YWJldGgNCitMb2NrZSBKci4gb2YgTm9yYnVyeSwgV2lsbGlhbQ0KK0xvY2tlLCBDaGFybGVzIFdoZWVsZXINCitMb2NrZXIsIEVkd2FyZCBIYXdrZQ0KK0xvY2tleSwgUm93bGFuZA0KK0xvY2toYXJ0LCBTaGFyb24NCitMb2dhbiwgSmFtZXMNCitMb2dnYW4sIERhdmlkDQorTG9nc2RhaWwsIFdpbGxpYW0NCitMb21haGFmdGV3YSwgRGFuIFYuDQorTG9tYmFyZCwgTGFtYmVydA0KK0xvbWJhcmQsIFdhcnJlbiBQLg0KK0xvbWJhcmRvLCBBbnRvbmlvDQorTG9tYmFyZG8sIExvZG92aWNvDQorTG9tYmFyZG8sIFBpZXRybw0KK0xvbWJhcmRvLCBUdWxsaW8NCitMb25nIFRpbmdiYQ0KK0xvbmcsIEFtZWxpYQ0KK0xvbmcsIENoYXJsZXMNCitMb25nLCBFZHdpbg0KK0xvbmcsIE1jS2VuZHJlZSBSb2JiaW5zDQorTG9uZywgUmljaGFyZA0KK0xvbmcsIFN5ZG5leQ0KK0xvbmcsIFRlZA0KK0xvbmdoaSwgQWxlc3NhbmRybw0KK0xvbmdoaSwgQmFyYmFyYQ0KK0xvbmdoaSwgUGlldHJvDQorTG9uZ28sIFJvYmVydA0KK0xvbmdzdGFmZiwgSm9obg0KK0xvbnNkYWxlLCBKYW1lcw0KK0xvbnNpbmcsIEZyYW7Dp29pcy1Mb3Vpcw0KK0xvbywgSmVhbiBCYXB0aXN0ZSB2YW4NCitMb29wLCBMZW90YSBXaWxsaWFtcw0KK0xvcGV6IEdhcmNpYSwgQW50b25pbw0KK0xvcGV6IEhlcm5hbmRleiwgSnVsaW8NCitMw7NwZXogeSBQb3J0YcOxYSwgVmljZW50ZQ0KK0xvcGV6LCBCZXJuYXJkbw0KK0xvcGV6LCBDYXJsb3MNCitMb3BleiwgR2VvcmdlDQorTG9wZXosIEdlb3JnZSBULg0KK0xvcmQsIENhcm9saW5lDQorTG9yZW56LCBSaWNoYXJkDQorTG9yZW56ZXR0aSwgQW1icm9naW8NCitMb3JlbnpldHRpLCBQaWV0cm8NCitMb3JlbnpldHRpLCBVZ29saW5vDQorTG9yZW56aSwgU3RvbGRvDQorTG9yZW56byBkaSBDcmVkaQ0KK0xvcmVuem8gTW9uYWNvDQorTG9yZW56byBWZW5lemlhbm8NCitMb3RoLCBKb2hhbm4gQ2FybA0KK0xvdHRvLCBMb3JlbnpvDQorTG90eiwgS8Ohcm9seQ0KK0xvdSwgTGl6YQ0KK0xvdWRvdW4sIEVkaXRoIE1hdWQgUmF3ZG9uLUhhc3RpbmdzLCBDb3VudGVzcyBvZg0KK0xvdWdoLCBKb2huIEdyYWhhbQ0KK0xvdWlzIGRlIENsZXJjcQ0KK0xvdWlzLCBIdWJlcnQtTm/Dq2wNCitMb3VpcywgTW9ycmlzDQorTG91aXMsIFZpY3Rvcg0KK0xvdmUsIEppbQ0KK0xvdmVsbCwgU2hhdW4NCitMb3ZldC1Mb3Jza2ksIEJvcmlzDQorTG93LCBCZXJ0aGEgTGVhDQorTG93ZSwgVHJ1bWFuDQorTG93aW5za3ksIFRob21hcw0KK0xvd3J5LCBLZWl0aA0KK0xvd3J5LCBMYXVyZW5jZSBTLg0KK0xvem93aWNrLCBMb3Vpcw0KK0x1IEZ1c2hlbmcNCitMdSBIdWkNCitMdSBTaG91a3VuDQorTHUgWHVuDQorTHUgWWFuc2hhbw0KK0x1IFpoaQ0KK0x1YmVyLCBQYXRyaWNrDQorTHVjYSBkaSBUb21tw6gNCitMdWNhcyBWaWxsYW1pbCwgRXVnZW5pbw0KK0x1Y2FzLCBEYXZpZA0KK0x1Y2FzLCBKb2huIFNleW1vdXINCitMdWNjaGVzaSwgQnJ1bm8NCitMdWNlLCBNYXhpbWlsaWVuDQorTHVjZXJvLCBNaWNoYWVsDQorTHVjaGlhbiwgU3RlZmFuDQorTHVjaWVyLCBNYXJ5DQorTHVjaW9uaSwgTHVpZ2kNCitMdWRpbnMsIFJ5YWgNCitMdWluaSwgQmVybmFyZGlubw0KK0x1a3MsIEdlb3JnZQ0KK0x1bSwgS2VuDQorTHVtaW5haXMsIEV2YXJpc3RlLVZpdGFsDQorTHVtaXMsIEhhcnJpZXQgUmFuZGFsbA0KK0x1bXNkZW4sIEVybmVzdCBTdGVwaGVuDQorTHVuYSwgSmFtZXMNCitMdW5kZWJlcmcsIEhlbGVuDQorTHVuZGVlbiwgR2VvcmdlDQorTHVuZHN0csO4bSwgVmlsaGVsbQ0KK0x1bmdyZW4sIEZlcm5hbmQgSGFydmV5DQorTHVvIEdvbmdsaXUNCitMdW8gWmhvbmdsaQ0KK0zDvHBlcnR6LCBNYXJrdXMNCitMdXLDp2F0LCBKZWFuDQorTHVyaWUsIE5hbg0KK0x1c2NvbWIsIFdpbGxpYW0gSGVucnkNCitMdXp6bywgR2lvdmFubmkNCitMeWFsbCwgTGF1cmEgTXVudHoNCitMeWRvcw0KK0x5bWFuLCBKb2huIEdvb2R3aW4NCitMeXNpcHBpZGVzIFBhaW50ZXIsIFRoZQ0KK0x5c2lwcHVzDQorTWEgWXVhbg0KK01hYXMgdGhlIFlvdW5nZXIsIEpvaGFubmVzDQorTWFiZSwgTWFuYWJ1DQorTWFidXNlDQorTWFjYXJ0bmV5LCBDYXJsaWxlIEhlbnJ5IEhheWVzDQorTWFjJ0F2b3kNCitNYWNjYWxsdW0sIEFuZHJldw0KK01hY0NhbWVyb24sIFJvYmVydCBMZWUNCitNYWNjacOzLCBSw7NtdWxvDQorTWFjZG9uYWxkLCBHZW9yZ2luYQ0KK01hY0RvbmFsZCwgSi5FLkguDQorTWFjRG9uYWxkLCBKLlcuRy4NCitNYWNEb25hbGQsIE1hcmdhcmV0DQorTWFjZG9uYWxkLVdyaWdodCwgU3RhbnRvbg0KK01hY0Rvd2VsbCwgUGF0cmljaw0KK01hY2hpYXZlbGxpLCBaYW5vYmkNCitNYWNJdmVyLCBMb3Jlbg0KK01hY0theQ0KK01hY2tlLCBBdWd1c3QNCitNYWNrZW5uYWwsIEJlcnRyYW0NCitNYWNrZW56aWUsIEZyZWRlcmljaw0KK01hY2tleSwgQmVhdHJpY2UgSG93aWUNCitNYWNraWUsIFJheQ0KK01hY2tpbnRvc2gsIENoYXJsZXMgUmVubmllDQorTWFjTGF1Z2hsYW4sIERvbmFsZCBTaGF3DQorTWFjbGlzZSwgRGFuaWVsDQorTWFjTW9ubmllcywgRnJlZGVyaWNrIFcuDQorTWFjTW9ubmllcywgTWFyeSBGYWlyY2hpbGQNCitNYWNOYWlyLCBGcmFuY2VzDQorTWFjbmFpciwgSGVyYmVydA0KK01hY05lZSwgQ29saW4NCitNYWNOZWlsLCBIZXJtb24gQXRraW5zDQorTWFjb21iZXIsIE1hcnkNCitNYWNQaGVyc29uLCBSb2JlcnQNCitNYWNyYWUsIEVtbWEgRm9yZHljZQ0KK01hY1JpdGNoaWUsIExld2lzDQorTWFkZGVsZW5hIE1hc3Rlcg0KK01hZGVyLCBMb3Vpcw0KK01hZGVybm8sIFN0ZWZhbm8NCitNYWRyYXpvIHkgQWd1ZG8sIEpvc2UgRGUNCitNYWRyYXpvIHkgR2FycmV0YSwgUmFpbXVuZG8gZGUNCitNYWRyYXpvIHkgS8O8bnR6LCBGZWRlcmljbyBkZQ0KK01hZXMsIE5pY29sYWVzDQorTWFlc3Rvc2ksIEZyYW5jZXNjbw0KK01hZXN0cm8gUHVnbGllc2UtQWJydXp6ZXNlDQorTWFmZmVpLCBGcmFuY2VzY28NCitNYWdhbnphLCBBbGVzc2FuZHJvDQorTWFnZ2lvdHRvLCBEb21lbmljbw0KK01hZ25hc2NvLCBBbGVzc2FuZHJvDQorTWFnbmVyLCBQaGlsaXBwZQ0KK01hZ3JpdHRlLCBSZW7DqQ0KK01haGFmZmV5LCBNZXJyaWxsDQorTWFoZGksIE11aGFtbWFkDQorTWFoZXIsIEFsaWNlDQorTWFob24sIEpvc2VwaGluZQ0KK01haG9uZXksIE1pa2UNCitNYWkgWGlhbnlhbmcNCitNYWlsbG9sLCBBcmlzdGlkZQ0KK01haW5hcmRpLCBTZWJhc3RpYW5vDQorTWFpbmUsIENhbWlsbG8NCitNYWluZXJpLCBGcmFuY2VzY28NCitNYWlub2xmaSwgTHVpZ2kNCitNYWlyIHZvbiBMYW5kc2h1dA0KK01haXMsIEhpbGFyaWUNCitNYWlzY2gsIEpvaGFubg0KK01haXRhbmksIExvcmVuem8NCitNYWl0bGFuZCwgUGF1bA0KK01ham9yLCBFcm5lc3QgTGVlDQorTWFrYXJ0LCBIYW5zDQorTWFrb3Zza3ksIEtvbnN0YW50aW4gRWdvcm92aWNoDQorTWFrb3dza2ksIFRhZGV1c3oNCitNYWxib25lLCBFZHdhcmQgR3JlZW5lDQorTWFsY2hhaXIsIEpvaG4gQmFwdGlzdA0KK01hbGRvbmFkbywgQWxleGFuZGVyIEEuDQorTWFsZXIgenUgU2Nod2F6LCBIYW5zDQorTWFsZXZpY2gsIEthc2ltaXINCitNYWxmYXR0aSwgQW5pdGENCitNYWxpbmNvbmljbywgTmljb2xhDQorTWFsbGV0LCBKZWFuLUJhcHRpc3RlDQorTWFsbG8sIE1hcnVqYQ0KK01hbG9uZSwgUm9iZXJ0IFIuDQorTWFsb3VlbCwgSmVhbg0KK01hbHBhc3MsIE1pY2hhZWwNCitNYWx0ZXNlLCBGcmFuY2VzY28NCitNYWx0d29vZCwgS2F0aGVyaW5lIEVtbWENCitNYW4gUmF5DQorTWFuZGVyLCBLYXJlbCB2YW4NCitNYW5kaWpuLCBKYW4NCitNYW5kbGViYXVtLCBCaWxsDQorTWFuZXNzaWVyLCBBbGZyZWQNCitNYW5ldCwgw4lkb3VhcmQNCitNYW5mcmVkaSwgQmFydG9sb21lbw0KK01hbmdvbGQsIFJvYmVydA0KK01hbmdvbGQsIFN5bHZpYSBQbGltYWNrDQorTWFuZ29zLCBTaW1vbmUNCitNYW5ndWluLCBIZW5yaQ0KK01hbmxleSwgVGhvbWFzDQorTWFubiwgSi5ILlMuDQorTWFubiwgU2FsbHkNCitNYW5zaGlwLCBQYXVsDQorTWFuc29uLCBKYW1lcyBCb2xpdmFyDQorTWFuc3VldGksIEdpb3Zhbm5pDQorTWFudGVnYXp6YSwgQW50b25pbw0KK01hbnRlZ2F6emEsIENyaXN0b2Zvcm8NCitNYW50ZWduYSwgQW5kcmVhDQorTUFOVUFMDQorTWFudWVsLCBOaWtsYXVzDQorTWFuLXlvdW5nLCBIYW4NCitNYW56b25pLCBQaWVybw0KK01hbnrDuSwgR2lhY29tbw0KK01hbnp1b2xpLCBUb21tYXNvDQorTWFvIExpemkgKFpoYW5nIFpodW5saSkNCitNYW95ZSwgU2hlbmcNCitNYS1QZS1XaQ0KK01hcHBsZXRob3JwZSwgUm9iZXJ0DQorTWFyYXR0YSwgQ2FybG8NCitNYXJjLCBGcmFueg0KK01hcmNhLVJlbGxpLCBDb25yYWQNCitNYXJjaGVzaW5pLCBBbGVzc2FuZHJvDQorTWFyY2hpb3JpLCBHaW92YW5uaQ0KK01hcmNpbGxhdCwgR3VpbGxhdW1lIGRlDQorTWFyY2tzLCBHZXJoYXJkDQorTWFyY28gZCdPZ2dpb25vDQorTWFyY291c3NpcywgTG91aXMNCitNYXJkZW4sIEJyaWNlDQorTWFyw6llcywgSGFucyB2b24NCitNYXJlc2NvdHRpLCBBbnRvbmlvDQorTWFyZ2FyaXRvbmUgZCdBcmV6em8NCitNYXJnb2xpZXMsIFNhbXVlbA0KK01hcmlhbmksIENhbWlsbG8NCitNYXJpYW5pLCBDYXJsbyBNYXJpYQ0KK01hcmllLCBKYW5lIEdvbGRpbmcNCitNYXJpZXNjaGksIE1pY2hlbGUgR2lvdmFubmkNCitNYXJpbGhhdCwgUHJvc3Blcg0KK01hcmlsbGllciwgQ2zDqW1lbnQgUGllcnJlDQorTWFyaW4sIEphdmllcg0KK01hcmluLCBKb2huDQorTWFyaW5hbGksIE9yYXppbw0KK01hcmluYXJpLCBPbm9yaW8NCitNYXJpbmV0dGksIEZpbGlwcG8gVG9tbWFzbw0KK01hcmluaSwgTWFyaW5vDQorTWFyaW9uaSwgRGFudGUNCitNYXJpb25pLCBKb3NlcGgNCitNYXJpcywgSmFjb2IgSGVucmljdXMNCitNYXJpcywgTWF0dGhpanMNCitNYXJpcywgV2lsbGVtDQorTWFyaXNhbGRpLCBFdmENCitNYXJpc29sDQorTWFyaywgR2VvcmdlIFdhc2hpbmd0b24NCitNYXJrLCBNYXJ5IEVsbGVuDQorTWFya2hhbSwgS3lyYQ0KK01hcmtvdywgSmFjaw0KK01hcmtzLCBIZW5yeSBTdGFjeQ0KK01hcmxvdywgV2lsbGlhbQ0KK01hcm1pb24sIFNpbW9uDQorTWFybWl0dGEsIEZyYW5jZXNjbw0KK01hcm9jaGV0dGksIENhcmxvDQorTWFyb24sIEFudG9uIHZvbg0KK01hcnF1ZXQsIEFsYmVydA0KK01hcnF1ZXogZGUgVmVsYXNjbywgRXN0ZWJhbg0KK01hcnNoLCBSZWdpbmFsZA0KK01hcnNoYWxsLCBCZW5qYW1pbg0KK01hcnNpbmdhbGwsIEEuDQorTWFyc3kgSUksIEdhc3BhcmQNCitNYXJzeWFzIFBhaW50ZXIsIFRoZQ0KK01hcnRhLCBMdWlnaQ0KK01hcnRlbnMsIENvbnJhZA0KK01hcnRlbnMsIFdpbGxlbQ0KK01hcnRpbiwgQWduZXMNCitNYXJ0aW4sIENoYXJsZXMNCitNYXJ0aW4sIERhdmlkIFN0b25lDQorTWFydGluLCBEZW5uaXMNCitNYXJ0aW4sIERvdWdsYXMNCitNYXJ0aW4sIEVsaWFzDQorTWFydGluLCBIZW5yaQ0KK01hcnRpbiwgSG9tZXIgRG9kZ2UNCitNYXJ0aW4sIEpvaG4NCitNYXJ0aW4sIFRob21hcyBNb3dlcg0KK01hcnRpbmVhdSwgUm9iZXJ0IEJyYWl0aHdhaXRlDQorTWFydGluZWssIER3aWdodA0KK01hcnRpbmVsbGksIEdpb3Zhbm5pDQorTWFydGluZXosIEp1bGlhbg0KK01hcnRpbmV6LCBNYXLDrWENCitNYXJ0aW5leiwgU2FudGFuYQ0KK01hcnRpbmksIEFydHVybw0KK01hcnRpbmksIFNpbW9uZQ0KK01hcnRpbm8gZGkgQmFydG9sb21lbyBkaSBCaWFnbw0KK01hcnRvcmVsbCwgQmVybmFyZG8NCitNYXJ1eWFtYSBPa3lvDQorTWFzYWNjaW8NCitNYXNhamkgWW9zaGlkYQ0KK01hc2Fub2J1LCBPa3VtdXJhDQorTWFzYXlvc2hpLCBLaXRhbw0KK01hc2NoZXJpbmksIE1hcmNlbGxvDQorTWFzZWssIFZpdGV6bGF2IEthcmVsDQorTWFzbyBkaSBCYW5jbw0KK01hc29saW5vIGRhIFBhbmljYWxlDQorTWFzb24sIEVsYWluZQ0KK01hc29uLCBHZW9yZ2UNCitNYXNvbiwgSmFtZXMNCitNYXNvbiwgTWF1ZCBNYXJ5DQorTWFzb24sIFJheW1vbmQNCitNYXNvbiwgUm95DQorTWFzc29uLCBBbmRyw6kNCitNYXNzb3UsIEJlbm/DrnQNCitNYXNzeXMsIFF1ZW50aW4NCitNYXN0ZXIgQS5DLg0KK01hc3RlciBBLkcuDQorTWFzdGVyIEIuIG9mIHRoZSBEaWUNCitNYXN0ZXIgQmVydHJhbQ0KK01hc3RlciBFLlMuDQorTWFzdGVyIEYuVi5CLg0KK01hc3RlciBJLksuDQorTWFzdGVyIEphY29tbw0KK01hc3RlciBMQ3oNCitNYXN0ZXIgTS5TLg0KK01hc3RlciBNLlouDQorTWFzdGVyIG9mIDE0MTkNCitNYXN0ZXIgb2YgQXBvbGxvIGFuZCBEYXBobmUNCitNYXN0ZXIgb2YgRmVtYWxlIEhhbGYtTGVuZ3Rocw0KK01hc3RlciBvZiBGbG9yYQ0KK01hc3RlciBvZiBGcmFua2Z1cnQNCitNYXN0ZXIgb2YgSGVpbGlnZW5rcmV1eg0KK01hc3RlciBvZiBIb29nc3RyYWV0ZW4NCitNYXN0ZXIgb2YgSsOhbm9zcsOpdA0KK01hc3RlciBvZiBNYXJ5IG9mIEJ1cmd1bmR5DQorTWFzdGVyIG9mIFByYXRvdmVjY2hpbw0KK01hc3RlciBvZiBTYWludCBGcmFuY2lzDQorTWFzdGVyIG9mIFNhaW50IEdpbGxlcw0KK01hc3RlciBvZiBTYWludCBHcmVnb3J5DQorTWFzdGVyIG9mIFNhaW50IFZlcm9uaWNhDQorTWFzdGVyIG9mIFNhbiBGcmFuY2VzY28gQmFyZGkNCitNYXN0ZXIgb2YgU2FuIEphY29wbyBhIE11Y2NpYW5hDQorTWFzdGVyIG9mIFNhbnRvIFNwaXJpdG8NCitNYXN0ZXIgb2YgdGhlIEFjdHMgb2YgTWVyY3kNCitNYXN0ZXIgb2YgdGhlIEFpeC1lbi1DaGFwZWwgQWx0YXJwaWVjZQ0KK01hc3RlciBvZiB0aGUgQW5udW5jaWF0aW9uIHRvIHRoZSBTaGVwaGVyZHMNCitNYXN0ZXIgb2YgdGhlIEF1Z3NidXJnIFZpc2l0YXRpb24NCitNYXN0ZXIgb2YgdGhlIEF2aWdub24gU2Nob29sDQorTWFzdGVyIG9mIHRoZSBCYXJkaSBTYWludCBGcmFuY2lzDQorTWFzdGVyIG9mIHRoZSBCYXJvbmNlbGxpIFBvcnRyYWl0cw0KK01hc3RlciBvZiB0aGUgQmF0dGxlIG9mIEZvcm5vdm8NCitNYXN0ZXIgb2YgdGhlIEJlcnN3b3JkdCBBbHRhcg0KK01hc3RlciBvZiB0aGUgQ2FuZGxlDQorTWFzdGVyIG9mIHRoZSBDYXN0ZWxsbyBOYXRpdml0eQ0KK01hc3RlciBvZiB0aGUgQ29idXJnIFJvdW5kZWxzDQorTWFzdGVyIG9mIHRoZSBDb2RleCBvZiBTYWludCBHZW9yZ2UNCitNYXN0ZXIgb2YgdGhlIEN5cHJlc3Nlcw0KK01hc3RlciBvZiB0aGUgRGF2aWQgYW5kIFNhaW50IEpvaG4gU3RhdHVldHRlcw0KK01hc3RlciBvZiB0aGUgRGludGV2aWxsZSBBbGxlZ29yeQ0KK01hc3RlciBvZiB0aGUgRG9taW5pY2FuIEVmZmlnaWVzDQorTWFzdGVyIG9mIHRoZSBEdWtlIG9mIEJlZGZvcmQNCitNYXN0ZXIgb2YgdGhlIEVtYnJvaWRlcmVkIEZvbGlhZ2UNCitNYXN0ZXIgb2YgdGhlIEZvZ2cgUGlldMOgDQorTWFzdGVyIG9mIHRoZSBGcmFuY2lzY2FuIENydWNpZml4ZXMNCitNYXN0ZXIgb2YgdGhlIEdyaXNlbGRhIExlZ2VuZA0KK01hc3RlciBvZiB0aGUgSG9seSBGYW1pbHkNCitNYXN0ZXIgb2YgdGhlIEhvdXNlYm9vaw0KK01hc3RlciBvZiB0aGUgSm9zZXBoIExlZ2VuZA0KK01hc3RlciBvZiB0aGUgS2FybHNydWhlIFBhc3Npb24NCitNYXN0ZXIgb2YgdGhlIEtoYW5lbmtvIEFkb3JhdGlvbg0KK01hc3RlciBvZiB0aGUgTGF0b3VyIGQnQXV2ZXJnbmUgVHJpcHR5Y2gNCitNYXN0ZXIgb2YgdGhlIExpZmUgb2YgU2FpbnQgSm9obiB0aGUgQmFwdGlzdA0KK01hc3RlciBvZiB0aGUgTGlmZSBvZiB0aGUgVmlyZ2luDQorTWFzdGVyIG9mIHRoZSBNYWdkYWxlbiBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIE1hbm5hDQorTWFzdGVyIG9mIHRoZSBNYXJibGUgTWFkb25uYXMNCitNYXN0ZXIgb2YgdGhlIE1hc2NvbGkgQWx0YXINCitNYXN0ZXIgb2YgdGhlIE1pZGRsZS1SaGluZQ0KK01hc3RlciBvZiB0aGUgTW9ycmlzb24gVHJpcHR5Y2gNCitNYXN0ZXIgb2YgdGhlIE9zc2VydmFuemENCitNYXN0ZXIgb2YgdGhlIFBmdWxsZW5kb3JmIEFsdGFyDQorTWFzdGVyIG9mIHRoZSBQbGF5aW5nIENhcmRzDQorTWFzdGVyIG9mIHRoZSBQb2xsaW5nIFBhbmVscw0KK01hc3RlciBvZiB0aGUgUG9ydHJhaXRzIG9mIHRoZSBQcmluY2VzDQorTWFzdGVyIG9mIHRoZSBQcmFkbydzIEFkb3JhdGlvbiBvZiB0aGUgTWFnaQ0KK01hc3RlciBvZiB0aGUgUHJvY2Vzc2lvbg0KK01hc3RlciBvZiB0aGUgUmViZWwgQW5nZWxzDQorTWFzdGVyIG9mIHRoZSBSZXRhYmxvIG9mIHRoZSBSZXllcyBDYXRvbGljb3MNCitNYXN0ZXIgb2YgdGhlIFJpbnVjY2luaSBDaGFwZWwNCitNYXN0ZXIgb2YgdGhlIFNhaW50IEJhcnRob2xvbWV3IEFsdGFycGllY2UNCitNYXN0ZXIgb2YgdGhlIFNhaW50IENhdGhlcmluZSBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIFNhaW50IEx1Y3kgTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBTYWludCBVcnN1bGEgTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBTdMO2dHRlcml0eiBBbHRhcg0KK01hc3RlciBvZiB0aGUgVGVnZXJuc2VlIFBhc3Npb24NCitNYXN0ZXIgb2YgdGhlIFRodWlzb24gQWx0YXJwaWVjZQ0KK01hc3RlciBvZiB0aGUgVGliZXJ0aW5lIFNpYnlsDQorTWFzdGVyIG9mIHRoZSBWaWV3IG9mIFNhaW50ZSBHdWR1bGUNCitNYXN0ZXIgb2YgVmlyZ28gaW50ZXIgVmlyZ2luZXMNCitNYXN0ZXIgUy4NCitNYXN0ZXJzIG9mIHRoZSBGb250YWluZWJsZWF1DQorTWFzdGVycywgRS4NCitNYXN0cm9pYW5uaSwgVW1iZXJ0bw0KK01hc3Ryby1WYWxlcmlvLCBBbGVzc2FuZHJvDQorTWF0ZWprbywgSmFuDQorTWF0aGFtLCBKYWNvYg0KK01hdGhld3MsIEFydGh1ciBGcmFuaw0KK01hdGlzc2UsIEhlbnJpDQorTWF0aXNzZSwgUGF1bA0KK01hdHN1YmFyYSwgTmFva28NCitNYXR0YSwgUm9iZXJ0bw0KK01hdHRhLUNsYXJrLCBHb3Jkb24NCitNYXR0ZWlzLCBQYW9sbyBkZScNCitNYXR0ZW8gZGEgR3VhbGRvDQorTWF0dGVvIGRpIEdpb3Zhbm5pDQorTWF0dGVzb24sIFRvbXBraW5zIEhhcnJpc29uDQorTWF0dGhld3MsIE1hcm1hZHVrZQ0KK01hdHRpYWNjaSwgRWxpc2VvDQorTWF0dGlvbGksIENhcmxvDQorTWF0dGlzLVRldXRzY2gsIEhhbnMNCitNYXR1bGthLCBKYW4NCitNYXVmcmEsIE1heGltZQ0KK01hdWxiZXJ0c2NoLCBGcmFueiBBbnRvbg0KK01hdXBlcmNow6ksIEhlbnJpDQorTWF1cmVhdSwgQWxwaG9uc2UNCitNYXVyZXIsIEFsZnJlZCBIZW5yeQ0KK01hdXZlLCBBbnRvbg0KK01hdmVyaWNrLCBQZXRlciBSdXNodG9uDQorTWF4LCBQZXRlcg0KK01heGVuY2UsIEVkZ2FyDQorTWF4d2VsbCwgRG9uYWxkDQorTWF5LCBQaGlsDQorTWF5YWxsLCBKb2huIEphYmV6IEVkd2luDQorTWF5ZXIsIEZyYW5rIEJsYWNrd2VsbA0KK01heWVyLUxhbWFydGluacOocmUsIE1hcmllLUZyYW7Dp29pc2UtQ29uc3RhbmNlDQorTWF5aGV3LCBGcmVkZXJpY2sgVy4NCitNYXlubywgSnVhbiBCYXV0aXN0YQ0KK01heXIsIENocmlzdGlhbg0KK01hem8sIEp1YW4gQmF1dGlzdGEgTWFydMOtbmV6IGRlbA0KK01henphY3VyYXRpLCBNYXJpbm8NCitNYXp6aW5naGksIFBpZXRybw0KK01henpvbGEgQmVkb2xpLCBHaXJvbGFtbw0KK01henpvbGlubywgTHVkb3ZpY28NCitNYXp6b25pLCBHdWlkbw0KK01henp1Y2NvbmksIE1hcmNvDQorTWF6enVvbGksIEdpdXNlcHBlDQorTWNBdm95LCBNYXJpbHluDQorTWNCZXksIEphbWVzDQorTWNDYXJ0aHksIENhdGhlcmluZQ0KK01jQ2FydGh5LCBHYWlsDQorTWNDYXJ0bmV5LCBMaW5kYQ0KK01jQ2FzbGluLCBKYWNrDQorTWNDbG9za2V5LCBXaWxsaWFtIEouDQorTWNDb2xsdW0sIEFsbGFuDQorTWNDdWJiaW4sIEZyZWRlcmljaw0KK01jRGVybW90dCwgRW1tYQ0KK01jRXZveSwgQW1icm9zZQ0KK01jRXdlbiwgSm9obg0KK01jRmFybGFuZSwgRHVuY2FuDQorTWNHZWUsIENoYXJsZXMNCitNY0ludG9zaCwgSGFycmlzb24NCitNY0tlbnppZSwgUm9iZXJ0IFRhaXQNCitNY0tpc3NpY2ssIExvdWlzZQ0KK01jTGF1Z2hsaW4sIEpvaG4NCitNY0xlYW4sIFJpY2hhcmQNCitNY0xlYW4sIFQuVy4NCitNY01hc3RlciwgR2VyYWxkDQorTWNNaWxsYW4sIExlbw0KK01jTWlsbGVuLCBNaWNoYWVsDQorTWNOZWlsLCBHZW9yZ2UNCitNY05pY29sbCwgSGVsZW4NCitNY1NoZWVoeSwgQ29ybmVsaWENCitNY1RhZ2dhcnQsIFdpbGxpYW0NCitNY1ZlaWdoLCBCbGFuY2hlDQorTWVhZCwgTWFyeQ0KK01lYWQsIFJheQ0KK01lYWRvd3MsIEJlcm5hcmQNCitNZWF0eWFyZCwgUmFscGggRXVnZW5lDQorTWVja2VuZW0sIElzcmFoZWwgdmFuDQorTWVlZ2FuLCBUaW0NCitNZWhvZmZlciwgSsOzemVmDQorTWVpZGlhcyBQYWludGVyLCBUaGUNCitNZWlkbmVyLCBMdWR3aWcNCitNZWlyZWxlcyBkZSBMaW1hLCBWw610b3INCitNZWlzc25lciwgTGVvIEouDQorTWVpc3NvbmllciwgSmVhbi1Mb3Vpcy1Fcm5lc3QNCitNZWlzdGVybWFubiwgR2VvcmcNCitNZWl0LCBDb25yYWQNCitNZWxjaGVycywgR2FyaQ0KK01lbGRydW0sIE1heA0KK01lbGVhZ2VyIFBhaW50ZXIsIFRoZQ0KK01lbMOpbmRleiwgTHVpcyBFZ2lkaW8NCitNZWxsYW4sIENsYXVkZQ0KK01lbGxlcnksIFhhdmllcg0KK01lbGxpLCBSb2JlcnRvDQorTWVsbGlzLCBNYXJnYXJldA0KK01lbG90dGksIEZhdXN0bw0KK01lbG96em8gZGEgRm9ybMOtDQorTWVscm9zZSwgQW5kcmV3DQorTWVsdHNuZXIsIFBhdWwNCitNZWx2aWxsZSwgQXJ0aHVyDQorTWVsemksIEZyYW5jZXNjbw0KK01lbWxpbmcsIEhhbnMNCitNZW1taSwgTGlwcG8NCitNZW5hYnVvaSwgR2l1c3RvIGRlDQorTcOpbmRleiwgTGVvcG9sZG8NCitNZW5kaWV0YSwgQW5hDQorTWVuZG96YSwgSnVuZQ0KK01lbmUsIFBpZXJyZS1KdWxlcw0KK01lbmVzZXMgT3NvcmlvLCBGcmFuY2lzY28NCitNZW5naW4sIENoYXJsZXMgQXVndXN0DQorTWVuZ3MsIEFudG9uIFJhcGhhZWwNCitNZW5pw6hyZSwgUGF1bC1OaWNvbGFzDQorTWVubmllLCBTdGV2ZQ0KK01lbnBlcywgTW9ydGltZXINCitNZW56ZWwsIEFkb2xmIHZvbg0KK01lbnpsZXItUGF5dG9uLCBCZXJ0aGENCitNZXJjacOpLCBNYXJpdXMtSmVhbi1BbnRvbmluDQorTWVyY2llciwgUGhpbGlwDQorTWVyZWRpdGgsIEpvaG4NCitNZXJpYW4sIE1hcmlhIFNpYnlsbGENCitNw6lyaWRhLCBDYXJsb3MNCitNZXJpdmFsZSwgRnJhbmNpcw0KK01lcmxlLCBIdWd1ZXMNCitNZXJyaXR0LCBBbm5hIExlYQ0KK01lcnlvbiwgQ2hhcmxlcw0KK01lcnosIE1hcmlvDQorTWVyeiwgTWFyaXNhDQorTWVzc2FnZXIsIEFubmV0dGUNCitNZXNzZXJzY2htaWR0LCBGcmFueiBYYXZlcg0KK01lc3NpbmEsIEZyYW5jZXNjbw0KK01lc3Ryb3ZpYywgSXZhbg0KK01ldCBkZSBCbGVzLCBIZW5yeQ0KK01ldGNhbGYsIFdpbGxhcmQgTGVyb3kNCitNZXRleWFyZCwgU2lkbmV5DQorTWV0c29uLCBHcmFoYW0NCitNZXRzdSwgR2FicmllbA0KK01ldHppbmdlciwgSmVhbg0KK01ldHpuZXIsIEJhcnJ5IA0KK01ldWxlbiwgQWRhbS1GcmFueiB2YW4gZGVyDQorTWV1bGVuLCBTdGV2ZW4gdmFuIGRlcg0KK01ldXJlciwgQ2hhcmxlcyBBLg0KK01leWVyIElJLCBIZW5kcmlrIGRlDQorTWV5ZXIsIEphbWVzDQorTWV5ZXIsIEpvaGFubiBHZW9yZw0KK01leWVyb3dpdHosIEpvZWwNCitNZXl0ZW5zLCBNYXJ0aW4gdmFuDQorTWkgRnUNCitNaWNoYWVscywgSmFtZXMNCitNaWNoYWxsb24sIEFjaGlsbGUgRXRuYQ0KK01pY2hhbG92LCBBbm4NCitNaWNoZWwsIEFsZm9uc28NCitNaWNoZWwsIEdlb3JnZXMNCitNaWNoZWxhbmdlbG8gQnVvbmFycm90aQ0KK01pY2hlbGUgZGEgVmVyb25hDQorTWljaGVsZSBQYW5ub25pbw0KK01pY2hlbGksIFBhcnJhc2lvDQorTWljaGVsaW4sIEplYW4NCitNaWNoZWxsaSwgQW5kcmVhDQorTWljaGVsbW9yZSwgUmljaGFyZA0KK01pY2hlbG96em8gZGkgQmFydG9sb21lbw0KK01pZWwsIEphbg0KK01pZWxhdHosIENoYXJsZXMgRnJlZGVyaWNrIFdpbGxpYW0NCitNaWVsaWNoLCBIYW5zDQorTWllcmV2ZWxkLCBNaWNoaWVsIEphbnN6Lg0KK01pZXJpcyB0aGUgRWxkZXIsIEZyYW5zIHZhbg0KK01pZXJpcywgSmFuIHZhbg0KK01pZXJpcywgV2lsbGVtIHZhbg0KK01pZXMgdmFuIGRlciBSb2hlLCBMdWR3aWcNCitNaWduYXJkLCBOaWNvbGFzDQorTWlnbmFyZCwgUGllcnJlDQorTWlnbm9uLCBBYnJhaGFtDQorTWlnbm90LCBMb3VpcyBSw6lteQ0KK01pam4sIEZyYW5zIHZhbiBkZXINCitNaWxhbmksIEF1cmVsaWFubw0KK01pbGFuaSwgVW1iZXJ0bw0KK01pbGxhaXMsIEpvaG4gRXZlcmV0dA0KK01pbGxhciwgSmFtZXMNCitNaWxsYXJlcyBTYWxsLCBNYW51ZWwNCitNaWxsZXIsIEFsZnJlZCBKYWNvYg0KK01pbGxlciwgRGV3ZXkNCitNaWxsZXIsIEZyZWQgRS4NCitNaWxsZXIsIEdlb3JnZSBNLg0KK01pbGxlciwgSmFtZXMNCitNaWxsZXIsIEtlbm5ldGggSGF5ZXMNCitNaWxsZXIsIE1lbGlzc2ENCitNaWxsZXIsIFJpY2hhcmQNCitNaWxsZXIsIFJpY2hhcmQgRW1pbA0KK01pbGxlciwgUm9zcw0KK01pbGxlciwgU2FsbHkNCitNaWxsZXIsIFNhbXVlbA0KK01pbGxlciwgV2lsbGlhbSBSaWNrYXJieQ0KK01pbGxldCwgRnJhbmNpcyBEYXZpcw0KK01pbGxldCwgRnJhbmNpc3F1ZQ0KK01pbGxldCwgSmVhbi1GcmFuw6dvaXMNCitNaWxsaWVyLCBBcnRodXIgSC4NCitNaWxsaW5ndG9uLCBQcm9mZXNzb3INCitNaWxuZSwgRGF2aWQNCitNaW5ndXp6aSwgTHVjaWFubw0KK01pbm5lLCBHZW9yZ2UNCitNaW5vIGRhIEZpZXNvbGUNCitNaW5vciwgQW5uZSBSb2dlcnMNCitNaW5venppLCBGbGFtaW5pbyBJbm5vY2Vuem8NCitNaW50b24sIEpvaG4NCitNaXIsIEpvYXF1w61uDQorTWlyYmVsLCBMaXppbmthLUFpbcOpZS1ab8OpIGRlDQorTWlyw7MsIEpvYW4NCitNaXJvbGEsIEdpcm9sYW1vDQorTWlzZXJvbmksIE90dGF2aW8NCitNaXRjaGVsbCwgSm9hbg0KK01pdGNobmljaywgTmFuY3kNCitNaXRzdW5vYnUsIEhhc2VnYXdhDQorTWl5YWppbWEsIFRhdHN1bw0KK01vY2V0dG8sIEdpcm9sYW1vDQorTW9jaGksIEZyYW5jZXNjbw0KK01vZGVybm8NCitNb2RlcnNvaG4tQmVja2VyLCBQYXVsYQ0KK01vZGlnbGlhbmksIEFtYWRlbw0KK01vZG90dGksIFRpbmENCitNb2VsbGVyLCBMb3VpcyBDaGFybGVzDQorTW9oYWx5aSwgWW9sYW5kYQ0KK01vaG9seS1OYWd5LCBMw6FzemzDsw0KK01vaHJtYW5uLCBKb2huIEhlbnJ5DQorTW9pbGxvbiwgTG91aXNhDQorTW9sYSwgUGllciBGcmFuY2VzY28NCitNb2xkdmF5LCBBbGJlcnQNCitNb2xlbmFlciwgSmFuIE1pZW5zZQ0KK01vbGluYXJpLCBHdWlkbw0KK01vbGwsIENhcmwNCitNb2x5biwgUGlldGVyIGRlDQorTW9semFobiwgSm9oYW5uZXMNCitNb21wZXIgSUksIEpvb3MgZGUNCitNb21ww7MsIE1hbnVlbCBIZXJuw6FuZGV6DQorTW9uYWxkaSwgUGFvbG8NCitNb25hbXksIFBldGVyDQorTW9uZHJpYW4sIFBpZXQNCitNb25ldCwgQ2xhdWRlDQorTW9ubmluZ3RvbiwgU2lyIFRob21hcw0KK01vbm5vdCwgUGllcnJlIMOJdGllbm5lDQorTW9ubm95ZXIsIEplYW4tQmFwdGlzdGUNCitNb25ybywgRHIuIFRob21hcw0KK01vbnRhZ25hLCBCYXJ0b2xvbWVvDQorTW9udGHDsWV6LCBKdWFuIE1hcnRpbmV6DQorTW9udGFyZGllcg0KK01vbnRlbmVncm8sIFJvYmVydG8NCitNb250Z29tZXJpZSwgU3Rld2FydA0KK01vbnRpLCBGcmFuY2VzY28NCitNb250aSwgR2FldGFubw0KK01vbnRpY2VsbGksIEFkb2xwaGUtSm9zZXBoLVRob21hcw0KK01vbnRvcnNvbGksIEdpb3Zhbm5pIEFuZ2Vsbw0KK01vbnRveWEsIEd1c3Rhdm8NCitNb252b2lzaW4sIFJheW1vbmQNCitNb29keSwgUm9uYWxkDQorTW9vbi1zZXVwLCBTaGltDQorTW9vcmUgMTgzMS0xODk1LCBIZW5yeQ0KK01vb3JlLCBBbGJlcnQgSm9zZXBoDQorTW9vcmUsIENoYXJsZXMNCitNb29yZSwgSGVucnkNCitNb29yZSwgVC4NCitNb29yZS1QYXJrLCBDYXJ0b24NCitNb295LCBKYW4NCitNb3BvcGUsIFN0ZXBoZW4NCitNb3BwZXR0LCBDYXJyb2xsDQorTW9yLCBBbnRob25pcw0KK01vcmEsIEZyYW5jaXMgTHVpcw0KK01vcmFsZG8sIFBhb2xvDQorTW9yYWxlcywgTHVpcyBkZQ0KK01vcmFuLCBFZHdhcmQNCitNb3JhbiwgS2F0ZQ0KK01vcmFuLCBUaG9tYXMNCitNb3JhbmRpLCBHaW9yZ2lvDQorTW9yZGVjYWksIEpvc2VwaA0KK01vcmUsIEphY29iDQorTW9yZWF1LCBHdXN0YXZlDQorTW9yZWF1LCBKZWFuLU1pY2hlbA0KK01vcmVhdSwgTG91aXMgR2FicmllbA0KK01vcmVhdSwgTHVjLUFsYmVydA0KK01vcmVlbHNlLCBQYXVsdXMNCitNb3JlbGxldCwgRnJhbsOnb2lzDQorTW9yZXQsIEhlbnJpDQorTW9yZXR0byBkYSBCcmVzY2lhDQorTW9yZ2FuLCBCYXJiYXJhDQorTW9yZ2FuLCBHZW9yZ2lhIFdlc3Rvbg0KK01vcmdhbiwgTGVzbGllDQorTW9yZ2FuLCBXaWxsaWFtIEV2YW4gQ2hhcmxlcw0KK01vcmkgWW9zaGl0b3NoaQ0KK01vcmksIENhbWlsbw0KK01vcmksIE1hcmlrbw0KK01vcmltdXJhLCBZYXN1bWFzYQ0KK01vcmlzb3QsIEJlcnRoZQ0KK01vcml5YW1hLCBEYWlkbw0KK01vcmxhaXRlciwgR2lvdmFuIE1hcmlhDQorTW9ybGFuZCwgR2VvcmdlDQorTW9ybGFuZCwgSGVucnkgUm9iZXJ0DQorTW9ybGV5LCBFdWdlbmUNCitNb3JsZXksIE1hbGNvbG0NCitNb3Jsb3R0aSwgRW5uaW8NCitNb3JvLCBMaWxpYW5hDQorTW9yb2xlcywgSmVzw7pzIEJhdXRpc3RhDQorTW9yb25pLCBHaW92YW5uaSBCYXR0aXN0YQ0KK01vcm9ub2J1LCBIaXNoaWthd2ENCitNb3JyaWNlLCBKYW1lcyBXaWxzb24NCitNb3JyaXMsIENoYXJsZXMNCitNb3JyaXMsIEdlb3JnZSBMLksuDQorTW9ycmlzLCBnbGFzc21ha2VyIFdpbGxpYW0NCitNb3JyaXMsIFBoaWxpcCBSaWNoYXJkDQorTW9ycmlzLCBSb2JlcnQNCitNb3JyaXMsIFNpciBDZWRyaWMNCitNb3JyaXMsIFdpbGxpYW0NCitNb3JyaXMsIFdyaWdodA0KK01vcnJpc29uLCBHZW9yZ2UNCitNb3JyaXNzZWF1LCBOb3J2YWwNCitNb3JzZSwgU2FtdWVsIEYuQi4NCitNb3J0ZW5zZW4sIFJpY2hhcmQNCitNb3J0aW1lciwgSm9obiBIYW1pbHRvbg0KK01vcnRvbiwgQW5kcmV3DQorTW9ydG9uLCBDaHJpc3RpbmENCitNb3NlcywgRWQNCitNb3NlcywgR3JhbmRtYQ0KK01vc2VzLCBIZW5yeQ0KK01vc25pZXIsIEplYW4tTGF1cmVudA0KK01vc3NhLCBHdXN0YXZlIEFkb2xwaGUNCitNb3N0YWVydCwgSmFuDQorTW90aGVyd2VsbCwgUm9iZXJ0DQorTW90bGV5LCBBcmNoaWJhbGQNCitNb3R0ZXQsIEplYW5pZSBHYWxsdXANCitNb3R0ZXosIFZpY3Rvcg0KK01vdWNoZXJvbiwgSXNhYWMgZGUNCitNb3VsaW4sIEh5cG9seXRlLUFsZXgtQW5kcmUtSnVsaWVuDQorTW91bnQsIFdpbGxpYW0gU2lkbmV5DQorTW93YnJheSwgSC4gU2lkZG9ucw0KK01veW5paGFuLCBSb2RyaWdvDQorTXUgWGkNCitNdWNjaW5pLCBNYXJjZWxsbw0KK011Y2hhLCBBbHBob25zZQ0KK011ZWxsZXIsIE90dG8NCitNdWVyYXJpdHksIFIuIEJydWNlDQorTcO8aGwsIE90dG8NCitNdWxpZXIsIFBpZXRlcg0KK03DvGxsZXIsIENoYXJsZXMNCitNw7xsbGVyLCBGcml0eg0KK011bGxlciwgSmFuIEguDQorTcO8bGxlciwgV2lsbGlhbSBKYW1lcw0KK011bGxpY2FuLCBNYXR0DQorTXVscmVhZHksIFdpbGxpYW0NCitNdWx0c2NoZXIsIEhhbnMNCitNdW5ha2F0YSwgU2hpa28NCitNdW5hcmksIENyaXN0b2Zvcm8NCitNdW5jaCwgRWR2YXJkDQorTXVuZ2VyLCBHaWxiZXJ0DQorTXVua8OhY3N5LCBNaWjDoWx5DQorTXVubiwgUGF1bCBTYW5kYnkNCitNdW5uaW5ncywgU2lyIEFsZnJlZCBKYW1lcw0KK011w7FveiBNYXJ0aW5leiwgTHVjaW8NCitNdcOxb3osIEp1YW4NCitNw7xudGVyLCBHYWJyaWVsZQ0KK011cmF5LCBOaWNrb2xhcw0KK011cmNoLCBXYWx0ZXINCitNdXJpbGxvLCBCYXJ0b2xvbcOpIEVzdGViYW4NCitNdXJwaHksIENhdGhlcmluZQ0KK011cnBoeSwgRGVib3JhaA0KK011cnBoeSwgSm9obiBGcmFuY2lzDQorTXVycGh5LCBKb2huIEouQS4NCitNdXJwaHksIE1pbm5pZSBMb2lzDQorTXVycGh5LCBNeWxlcw0KK011cnBoeSwgTmVsbHkgTGl0dGxlaGFsZQ0KK011cnJheSwgQWxiZXJ0IEsuDQorTXVycmF5LCBDaGFybGVzIEZhaXJmYXgNCitNdXJyYXksIERyLiBKb2huDQorTXVycmF5LCBFbGl6YWJldGgNCitNdXJyYXksIFJvYmVydA0KK011c2dyYXZlLCBHZW9yZ2UNCitNdXNpa2l5c2t5LCBHcmlnb3JpaXMNCitNdXNzY2hlciwgTWljaGllbCB2YW4NCitNdXNzb2ZmLCBKb2R5DQorTXV5YnJpZGdlLCBFYWR3ZWFyZA0KK011emlhbm8sIEdpcm9sYW1vDQorTXllcnMsIEplcm9tZQ0KK015dGVucyB0aGUgRWxkZXIsIERhbmllbA0KK05hZGFyLCBGw6lsaXgNCitOYWRlbG1hbiwgRWxpZQ0KK05hZ2FoaWRlLCBZw7tyYWt1c2FpDQorTmFobCwgQ2hhcmxlcyBDaHJpc3RpYW4NCitOYWtpYW4sIFJldWJlbg0KK05hbGRpbmksIEdpb3Zhbm5pIEJhdHRpc3RhDQorTmFtaW5naGEsIERhbg0KK05hbXBleW8NCitOYW5uaSBkaSBCYW5jbw0KK05hbm5pIGRpIEJhcnRvbG8NCitOYW50ZXVpbCwgQ8OpbGVzdGluIEZyYW7Dp29pcw0KK05hbnRldWlsLCBSb2JlcnQNCitOYXBsZXMgUGFpbnRlciwgVGhlDQorTmFyZG8gZGkgQ2lvbmUNCitOYXJkbywgTWFyaW90dG8gZGkNCitOYXJvdmVjLCBHLg0KK05hc2gsIERhdmlkDQorTmFzaCwgRnJlZGVyaWNrDQorTmFzaCwgSm9obg0KK05hc2gsIFBhdWwNCitOYXNteXRoLCBQYXRyaWNrDQorTmFzb24sIEdlcnRydWRlDQorTmFzb24sIFRob21hcyBXaWxsb3VnaGJ5DQorTmFzdCwgVGhvbWFzDQorTmF0a2luLCBSb2JlcnQNCitOYXRvaXJlLCBDaGFybGVzIEpvc2VwaA0KK05hdHQsIFBob2ViZSBEYXZpcw0KK05hdHRlcywgSm9obiBDbGF1ZGUNCitOYXR0aWVyLCBKZWFuLU1hcmMNCitOYXVtYW4sIEJydWNlDQorTmF2ZXosIEZyYW7Dp29pcy1Kb3NlcGgNCitOYXksIEVybnN0IFdpbGhlbG0NCitOYXlsb3IsIE1hcmllIEouDQorTmVhZ2xlLCBKb2huDQorTmVhbGUsIEpvaG4gUHJlc3Rvbg0KK05lYm90LCBCYWx0aGF6YXINCitOZWVmZnMgSSwgUGVldGVyDQorTmVlbCwgQWxpY2UNCitOZWVsLCBEYXZpZA0KK05lZXIsIEFlcnQgdmFuIGRlcg0KK05lZXIsIEVnbG9uIEhlbmRyaWNrIHZhbiBkZXINCitOZWZmLCBCaWxsDQorTsOoZ3JlLCBDaGFybGVzDQorTmVncmksIE1hcmlvDQorTmVobGlnLCBWaWN0b3INCitOZWxzb24sIEVyaWMNCitOZXJkcnVtLCBPZGQNCitOZXJnZXIsIEV0aGVsIFBlYXJjZQ0KK05lcmkgZGkgQmljY2kNCitOZXJpLCBNYW51ZWwNCitOZXJvY2Npbw0KK05lc2JpdHQsIExvd2VsbA0KK05lc2ZpZWxkLCBXaWxsaWFtIEFuZHJld3MNCitOZXN0ZXJvdiwgTWlraGFpbCBWYXNpbCdldmljaA0KK05ldHNjaGVyLCBDYXNwYXINCitOZXR6ZXIsIERvbg0KK05ldWZjaGF0ZWwsIE5pY29sYXMNCitOZXVtYW5uLCBHaWxiZXJ0IEYuDQorTmV1dmlsbGUsIEFscGhvbnNlLU1hcmllLUFkb2xwaGUgZGUNCitOZXZlbHNvbiwgTG91aXNlDQorTmV2aW5zb24sIENocmlzdG9waGVyIFJpY2hhcmQgV3lubmUNCitOZXZpdHQsIFJpY2hhcmQgQmFycmluZ3Rvbg0KK05ld2RpZ2F0ZSwgQW5uDQorTmV3aGFsbCwgSGFycmlvdA0KK05ld21hbiwgQmFybmV0dA0KK05ld21hbiwgSm9obg0KK05ld21hbiwgUmljaGFyZA0KK05ld25zLCBCaWxsDQorTmV3dG9uLCBBbm4gTWFyeQ0KK05ld3RvbiwgR2lsYmVydCBTdHVhcnQNCitOZXd0b24sIExpbGlhcyBUb3JyYW5jZQ0KK05ld3RvbiwgU2lyIFdpbGxpYW0NCitOaWNjb2zDsiBkJ0FuZ2Vsbw0KK05pY2NvbG8gRGVsbCdBcmNhDQorTmljY29sbyBkaSBCdW9uYWNjb3Jzbw0KK05pY2NvbMOyIGRpIFNlciBTb3p6byBUZWdsaWFjY2kNCitOaWNjb2zDsiBGaW9yZW50aW5vDQorTmljaG9sbHMsIEJ1cnINCitOaWNob2xscywgUmhvZGEgSG9sbWVzDQorTmljaG9scywgRGFsZQ0KK05pY2hvbHNvbiwgQmVuDQorTmljaG9sc29uLCBGcmFuY2lzDQorTmljaG9sc29uLCBNYWJlbA0KK05pY2hvbHNvbiwgU2lyIFdpbGxpYW0NCitOaWNob2xzb24sIFRob21hcyBIZW5yeQ0KK05pY2hvbHNvbiwgV2luaWZyZWQNCitOaWNrLCBHZW9yZ2UNCitOaWNrZWwsIEdyYWNlDQorTmljbGF1cyBvZiBIYWd1ZW5hdQ0KK05pY29kZW1vIGRhIEd1YXJkaWFncmVsZQ0KK05pY29sLCBFcnNraW5lDQorTmljb2xhIGRhIFVyYmlubw0KK05pY29sYSBkaSBNYWVzdHJvIEFudG9uaW8gZCdBbmNvbmENCitOaWNvbGF1cw0KK05pY29sbCwgTWFyaW9uDQorTmljb2zDsg0KK05pY29sbyBkYSBCb2xvZ25hDQorTmljb2xvIGRlIEJvbmlzDQorTmljb3NpYSwgTmljDQorTmllbHNlbiwgSmFpcw0KK05pZWxzZW4sIEtheQ0KK05pbHNzb24sIEdsYWR5cw0KK05pb2JpZCBQYWludGVyLCBUaGUNCitOaXRzY2gsIEhlcm1hbm4NCitOaXgsIERhcndpbg0KK05peG9uLCBKb2INCitOaXhvbiwgSm9obg0KK05vZGEsIFRldHN1eWENCitOb2VsLCBTY290dA0KK05vZ2FyaSwgR2l1c2VwcGUNCitOb2d1Y2hpLCBJc2FtdQ0KK05vbGFuLCBTaWRuZXkNCitOb2xhbmQsIENhZHkNCitOb2xhbmQsIEtlbm5ldGgNCitOb2xkZSwgRW1pbA0KK05vbGxla2VucywgSm9zZXBoDQorTm9uZWxsLCBJc2lkcm8NCitOb29tcywgUmVpbmllcg0KK05vb3JkdCwgSm9hbiB2YW4NCitOb3JkZmVsZHQsIEJyb3IgSnVsaXVzIE9sc3Nvbg0KK05vcmRtYW4sIE1hcmlhDQorTm9ydGgsIEYuRS4NCitOb3J0aGNvdGUsIEphbWVzDQorTm9zZXdvcnRoeSwgR2VvcmdlDQorTm91cnNlLCBFbGl6YWJldGgNCitOb3ZlbGxpLCBQaWV0cm8gQW50b25pbw0KK051bmV6IGRlIFZpbGxhdmljZW5jaW8sIFBlZHJvDQorTnVuZXogZGVsIFZhbGxlLCBQZWRybw0KK051w7FleiwgR3VpbGxlcm1vDQorTnV0dCwgSmltDQorTnV2YXF1aXJxLCBNb3Nlc2llDQorTnV2b2xvbmUsIENhcmxvIEZyYW5jZXNjbw0KK051eWVuLCBXaWpuYW5kDQorTnV6aSwgQWxsZWdyZXR0bw0KK09ha2xleSwgVmlvbGV0DQorw5NiaWRvcywgSm9zZWZhIGRlDQorTydCcmllbiwgSm9obg0KK08nQnJpZW4sIEx1Y2l1cyBSLg0KK09jYW1wbywgSXNpZG9ybw0KK09jaHNuZXIsIEVybmVzdA0KK09jaHRlcnZlbHQsIEphY29iDQorT2NodG1hbiwgRG9yb3RoeQ0KK09jaHRtYW4sIE1pbmEgRm9uZGENCitPJ0Nvbm5vciwgSmFtZXMgQXJ0aHVyDQorT2RqaWcsIERhcGhuZQ0KK09kb20sIFJhbmR5IEUuDQorT2Vsc2NoaWcsIEF1Z3VzdGENCitPZmZuZXIsIEVsbGlvdA0KK09nYXRhIEtvcmluDQorTydHb3JtYW4sIEp1YW4NCitPJ0hpZ2dpbnMsIFBhYmxvDQorT2hyLCBHZW9yZ2UgRS4NCitPaHRha2UsIFRvbWllDQorTydLZWVmZmUsIEdlb3JnaWENCitPbGRlbmJ1cmcsIENsYWVzDQorT2xkZXJtYW5uDQorT2xkZmllbGQsIE90aXMgVy4NCitPbGRzLCBFbGl6YWJldGgNCitPbGl2ZWlyYSwgTmF0aGFuDQorT2xpdmVyLCBJc2FhYw0KK09saXZlciwgTWFkZ2UNCitPbGl2ZXIsIFQuIENsYXJrDQorT2xpdmVyLCBXaWxsaWFtDQorT2xvd2Ugb2YgSXNlDQorT2x0b3MNCitPbWFoYSBQYWludGVyLCBUaGUNCitPbmRlcmRvbmssIFJvYmVydA0KK08nTmVpbGwsIEdlb3JnZSBCZXJuYXJkDQorT25vZnJpaiwgQ3Jlc2Nlbnppbw0KK09ub2ZyaW8sIEp1ZHkNCitPbm9zYXRvLCBUb3NoaW5vYnUNCitPb25hcmssIEplc3NpZQ0KK09vc3QgdGhlIEVsZGVyLCBKYWNvYiB2YW4NCitPb3N0c2FuZW4sIEphY29iIENvcm5lbGlzeiB2YW4NCitPcGFsa2EsIFJvbWFuDQorT3Bhem8gQmVybmFsZXMsIFJvZG9sZm8NCitPcGllLCBKb2huDQorT3BpZSwgSnVsaWFuDQorT3BpdHosIEdlb3JnIEVtYW51ZWwNCitPcHBlbmhlaW0sIERlbm5pcw0KK09wcGVuaGVpbSwgTWVyZXQNCitPcHBlbmhlaW0sIE1vcml0eiBEYW5pZWwNCitPcHBlbmhlaW1lciwgSi4NCitPcHN0YWwsIEdlcmFyZCB2YW4NCitPcmFtLCBXLg0KK09yYXppbyBEZSBGZXJyYXJpDQorT3JjYWduYSwgQW5kcmVhIGRpDQorT3JjaGFyZHNvbiwgU2lyIFdpbGxpYW0gUXVpbGxlcg0KK09ybGV5LCBCZXJuYWVydCB2YW4NCitPcmxvZmYsIEdyZWdvcnkNCitPcm96Y28gUm9tZXJvLCBDYXJsb3MNCitPcm96Y28sIEpvc8OpIENsZW1lbnRlDQorT3JwZW4sIFNpciBXaWxsaWFtDQorT3JyZW50ZSwgUGVkcm8NCitPcnNpLCBMZWxpbw0KK09yc28NCitPcnRpeiwgQW5nZWwNCitPcnRpeiwgRnJhbmNpc2NvIFByYWRpbGxhDQorT3J0bWFuLCBHZW9yZ2UNCitPcnRvbGFubyBGZXJyYXJlc2UNCitPcnR1emFyIFdvcnRoaW5ndG9uLCBDYXJsb3MNCitPcywgUGlldGVyIEdlcmFyZHVzIHZhbg0KK09zYWkNCitPc2JlcnQsIEFscGhvbnNlDQorT3Nib3JuLCBFbWlseSBNYXJ5DQorT3Nib3JuLCBXaWxsaWFtIEV2ZWx5bg0KK09zYm9ybmUsIE1hbGNvbG0NCitPc2Jvcm5lLCBNaWNoYWVsDQorT3Nib3JuZSwgV2FsdGVyIEZyZWRlcmljaw0KK09zZ29vZCwgQ2hhcmxlcw0KK09zaHVpdG9xLCBOaW5nZWV1Z2ENCitPc29yaW8sIFBlcMOzbg0KK09zc29yaW8sIEFsZm9uc28NCitPc3RhZGUsIEFkcmlhZW4gdmFuDQorT3N0YWRlLCBJc2FhY2sgdmFuDQorT3N0aGF1cywgRWRtdW5kIEhlbnJ5DQorT3N1aXRvaywgSXBlZWxlZQ0KK08nU3VsbGl2YW4sIFRpbW90aHkNCitPdGVpemEgRW1iaWwsIEpvcmdlIGRlDQorT3Rlcm8sIFBhdWwNCitPdHRlcnNvbiwgSm9lbA0KK090dGxleSwgV2lsbGlhbSBZb3VuZw0KK091YXR0YXJhDQorT3VkcnksIEplYW4tQmFwdGlzdGUNCitPdWl6aWxsZSwgQ2hhcmxlcw0KK091bGVzcywgV2FsdGVyIFdpbGxpYW0NCitPdWx0b24sIFRow6lyw6hzZQ0KK091cnNsZXIsIFRvbnkNCitPdXR0ZXJicmlkZ2UsIEpvaG4NCitPdmVucywgSsO8cmdlbg0KK092ZXJiZWNrLCBKb2hhbm4gRnJpZWRyaWNoDQorT3dlbiwgV2lsbGlhbQ0KK1BhYmxvIGRlIFNhbiBMZW9jYWRpbw0KK1BhY2VjY28gZGUgUm9zYQ0KK1BhY2hlciwgTWljaGFlbA0KK1BhY2lubyBkaSBCb25hZ3VpZGENCitQYWVsaW5jaywgSm9zZXBoDQorUGFnYW5pLCBHcmVnb3Jpbw0KK1BhZ2FuaW4sIEdpb3Zhbm5pDQorUGFnZSwgRWR3YXJkIEEuDQorUGFnZSwgV2lsbGlhbQ0KK1BhaSwgSm9obg0KK1BhaWssIE5hbSBKdW5lDQorUGFqb3UsIEF1Z3VzdGluDQorUGFsYWNpb3MsIEZyYW5jaXNjbyBkZQ0KK1BhbGFkaW5vLCBNaW1tbw0KK1BhbGF6dWVsbywgUGFibG8NCitQYWxlbmNpYSwgQmVuamFtw61uDQorUGFsaXNzeSwgQmVybmFyZA0KK1BhbGxhZGlvLCBBbmRyZWENCitQYWxtYSBHaW92YW5lDQorUGFsbWEgVmVjY2hpbw0KK1BhbG1lciwgQWxmcmVkIEhlcmJlcnQNCitQYWxtZXIsIEVyYXN0dXMgRG93DQorUGFsbWVyLCBGcmFuY2VzIEZsb3JhIEJvbmQNCitQYWxtZXIsIEhlcmJlcnQgUy4NCitQYWxtZXIsIFNhbXVlbA0KK1BhbG1lenphbm8sIE1hcmNvDQorUGFtcGhhaW9zDQorUGFuIFBhaW50ZXIsIFRoZQ0KK1BhbiBUaWFuc2hvdQ0KK1BhbiBZdWxpYW5nDQorUGFuYW1hcmVua28NCitQYW5jZXR0aSwgSm9zw6kNCitQYW5jaG8gVg0KK1BhbmcgVGFvDQorUGFuZyBYdW5xaW4NCitQYW5uaW5pLCBHaW92YW5uaSBQYW9sbw0KK1BhbnVuemksIEJlbml0bw0KK1Bhb2xpbmksIEdpdWxpbw0KK1Bhb2xvIGRpIEdpb3Zhbm5pIEZlaQ0KK1Bhb2xvIFJvbWFubw0KK1Bhb2xvIFZlbmV6aWFubw0KK1Bhb2xvenppLCBFZHVhcmRvDQorUGFwYWdlb3JnZSwgR2VvcmdpZQ0KK1BhcMOpdHksIERvbWluaXF1ZSBMb3Vpcw0KK1BhcmVuemFubywgQmVybmFyZGlubw0KK1BhcmlzLCBNYXR0aGV3DQorUGFyaXNoLCBEYXZpZA0KK1BhcmssIERhdmlkDQorUGFyaywgTGludG9uDQorUGFya2VyLCBCYXJyeQ0KK1BhcmtlciwgTGF3dG9uDQorUGFya2VyLCBXaWxsaWFtIEEuDQorUGFya3MsIEdvcmRvbg0KK1BhcmxlciwgUGV0ZXINCitQYXJtaWdpYW5pbm8NCitQYXJvZGksIEZpbGlwcG8NCitQYXJyDQorUGFyciwgTWlrZQ0KK1BhcnJpcywgRWRtdW5kIFRob21hcw0KK1BhcnJpc2gsIE1heGZpZWxkDQorUGFycm90dCwgV2lsbGlhbQ0KK1BhcnMsIFdpbGxpYW0NCitQYXJzb25zLCBBbGZyZWQNCitQYXJzb25zLCBDaGFybGVzDQorUGFyc29ucywgUGF1bA0KK1BhcnRyaWRnZSwgTmVoZW1pYWgNCitQYXJ0cmlkZ2UsIFJvaQ0KK1Bhc2NhbGksIFBpbm8NCitQYXNjaGtlLCBFZHdhcmQNCitQYXNjaW4sIEp1bGVzDQorUGFzaW5lbGxpLCBMb3JlbnpvDQorUGFzbW9yZSwgVmljdG9yDQorUGFzcXVpZXIsIFBpZXJyZQ0KK1Bhc3NlcmksIEdpdXNlcHBlDQorUGFzc2Vyb3R0aSwgQmFydG9sb21lbw0KK1BhdGFzLCBDaGFybGVzIEVtbWFudWVsDQorUGF0ZWwsIFBpZXJyZQ0KK1BhdGVyLCBKZWFuLUJhcHRpc3RlIEpvc2VwaA0KK1BhdGluaXIsIEpvYWNoaW0NCitQYXRvbiwgU2lyIEpvc2VwaCBOb2VsDQorUGF0cmljaywgSmFtZXMgTWNJbnRvc2gNCitQYXR0ZWluLCBDZXNhcg0KK1BhdHRlbiwgR2VvcmdlDQorUGF0dGVuLCBXaWxsaWFtDQorUGF1ZGlzcywgQ2hyaXN0b3BoZXINCitQYXVsLCBKb3NlcGgNCitQYXVsc2VuLCBCcmlhbg0KK1BheHNvbiwgRWRnYXIgUy4NCitQYXhzb24sIEV0aGVsDQorUGF4dG9uLCBXaWxsaWFtIE1jR3JlZ29yDQorUGF5ZXR0ZSwgSmFjcXVlcw0KK1BheW5lLCBFZGdhciBBbHdpbg0KK1BheW5lLCBFbHNpZQ0KK1BheW5lLCBIZW5yeSBBcnRodXINCitQYXluZSwgSm9uLCBDTUwNCitQYXluZSwgV2lsbGlhbQ0KK1BlYWtlLCBSb2JlcnQNCitQZWFsZSwgQW5uYSBDbGF5cG9vbGUNCitQZWFsZSwgQ2hhcmxlcyBXaWxsc29uDQorUGVhbGUsIEhhcnJpZXQgQ2FueQ0KK1BlYWxlLCBKYW1lcw0KK1BlYWxlLCBNYXJnYXJldHRhIEFuZ2VsaWNhDQorUGVhbGUsIE1hcnkNCitQZWFsZSwgUmFwaGFlbGxlDQorUGVhbGUsIFJlbWJyYW5kdA0KK1BlYWxlLCBSdWJlbnMNCitQZWFsZSwgU2FyYWggTWlyaWFtDQorUGVhbGUsIFRpdGlhbg0KK1BlYXJjZSwgQ2hhcmxlcyBTcHJhZ3VlDQorUGVhcmNlLCBFZHdhcmQNCitQZWFyY2UsIEdhcnkNCitQZWFybHN0ZWluLCBQaGlsaXANCitQZWFyc29uLCBCcnVjZQ0KK1BlYXJzb24sIE1hcmd1ZXJpdGUgU3R1YmVyDQorUGVhcnNvbiwgTWFyeSBNYXJ0aGENCitQZWNoc3RlaW4sIE1heA0KK1BlY2h0LCBBdWd1c3QgRnJpZWRyaWNoDQorUGVjaywgQXVndXN0dXMgSC4NCitQZWRybyBkZSBsYSBDdWFkcmENCitQZWRybyBkZSBNZW5hDQorUGVlZCwgTWljaGFlbA0KK1BlZWwsIFBhdWwNCitQZWV0ZXJzIEksIEJvbmF2ZW50dXJhDQorUGVldGVycywgQ2xhcmENCitQZWksIEkuTS4NCitQZWxoYW0sIFBldGVyDQorUGVsbGFuLCBBbGZyZWQNCitQZWxsZWdyaW4sIEhvbm9yw6kNCitQZWxsZWdyaW5pLCBEb21lbmljbw0KK1BlbGxlZ3JpbmksIEdpb3Zhbm5pIEFudG9uaW8NCitQZWxvdXNlLCBMw6lvbi1HZXJtYWluDQorUGVscywgTWFyc2hhDQorUGVtYmVydG9uLCBTb3BoaWUNCitQZcOxYSwgVG9uaXRhDQorUGVuY2ssIEEuUi4NCitQZW5jeiwgR2VvcmcNCitQw6huZSBkdSBCb2lzLCBHdXkNCitQZW5uLCBJcnZpbmcNCitQZW5uZWxsLCBKb3NlcGgNCitQZW5uaSwgR2lvdmFuIEZyYW5jZXNjbw0KK1Blbm5pbmd0b24sIEJ1ZA0KK1Blbm5pbmd0b24sIEhhcnBlcg0KK1Blbm9uZSwgR2l1c2VwcGUNCitQZW5yb3NlLCBTaXIgUm9sYW5kDQorUGVuc2lvbmFudGUgZGVsIFNhcmFjZW5pDQorUGVwaW9uLCBFcm5pZQ0KK1BlcHBlciwgQmV2ZXJseQ0KK1BlcmFjaW5vLCBMb3JlbnpvDQorUGVyY3ksIExhZHkgU3VzYW4gRWxpemFiZXRoDQorUGVyZWRhLCBBbnRvbmlvIGRlDQorUGVyZWh1ZG9mZiwgV2lsbGlhbQ0KK1BlcmVpcmEsIEkuIFJpY2UNCitQZXJlc3MsIEdpbGxlcw0KK1BlcmV6LCBBdWd1c3RvDQorUGVyaWdub24gSSwgQWxleGlzIE5pY29sYXMNCitQZXJpbm8gZGVsIFZhZ2ENCitQZXJsaW4sIFJhZQ0KK1Blcm1vc2VyLCBCYWx0aGFzYXINCitQZXJyYXVkLCBQaGlsaWJlcnQNCitQZXJyw6lhbCwgSmVhbg0KK1BlcnJpbiwgUGhpbGlwcGUNCitQZXJyb25uZWF1LCBKZWFuLUJhcHRpc3RlDQorUGVycnksIENsYXJhIEdyZWVubGVhZg0KK1BlcnJ5LCBMaWxsYSBDYWJvdA0KK1BlcnNpY28sIE1hcmlvDQorUGVydWdpbmksIENoYXJsZXMgRS4NCitQZXJ1Z2lubywgUGlldHJvDQorUGVzZWxsaW5vDQorUGVzbmUsIEFudG9pbmUNCitQZXRlbCwgSsO2cmcNCitQZXRlcmRpLCBHYWJvcg0KK1BldGVyc29uLCBKYWNvYg0KK1BldGVyc29uLCBKYW5lDQorUGV0ZXJzb24sIExhcnJ5DQorUGV0aGVyLCBBYnJhaGFtDQorUGV0aGljaywgSmVycnkNCitQZXRvLCBKb2huIEZyZWRlcmljaw0KK1BldHJhc2N1LCBHaGVvcmdoZQ0KK1BldHRlbmtvZmVuLCBBdWd1c3QgWGF2ZXIgS2FybA0KK1BldHRlciwgRnJhbnogWGF2ZXINCitQZXR0aWUsIEpvaG4NCitQZXR0aXQsIENhcm9sDQorUGV0dHJpY2gsIEZlcmRpbmFuZA0KK1BleXJvbiwgUGllcnJlDQorUGZhZmYsIEp1ZHkNCitQZmVpbGVyLCBNYXhpbWlsaWFuDQorUGZvcnIsIEZyYW56DQorUGhpYWxlIFBhaW50ZXINCitQaGlkaWFzDQorUGhpbGxpcCwgSm9obg0KK1BoaWxsaXBzLCBBbW1pDQorUGhpbGxpcHMsIEdvcmRvbg0KK1BoaWxsaXBzLCBMYXVyYQ0KK1BoaWxsaXBzLCBNYXJqb3JpZQ0KK1BoaWxsaXBzLCBQZXRlcg0KK1BoaWxsaXBzLCBSaWNoYXJkDQorUGhpbGxpcHMsIFRvbQ0KK1BoaWxsaXBzLCBXYWx0ZXIgSi4NCitQaGlscG90LCBHbHluDQorUGhyeW5vcyBQYWludGVyLCBUaGUNCitQaWF6ZXR0YSwgR2lvdmFubmkgQmF0aXN0YQ0KK1BpYXp6YSwgQ2FsbGlzdG8NCitQaWNhYmlhLCBGcmFuY2lzDQorUGljYXJ0LCBCZXJuYXJkDQorUGljYXNzbywgUGFibG8NCitQaWNrZW5veSwgTmljb2xhZXMgRWxpYXN6Lg0KK1BpY2tlcnNnaWxsLCBGcmVkZXJpY2sgUmljaGFyZA0KK1BpY2tlcnNnaWxsLCBIZW5yeSBIYWxsDQorUGlja2Vyc2dpbGwsIEhlbnJ5IFdpbGxpYW0NCitQaWVyaW5vIGRhIFZpbmNpDQorUGllcm8gZGVsbGEgRnJhbmNlc2NhDQorUGllcm8gZGkgQ29zaW1vDQorUGllcnJlLCBKZWFuLUJhcHRpc3RlIE1hcmllDQorUGlldCwgRmVybmFuZA0KK1BpZXRlcnN6IHRoZSBZb3VuZ2VyLCBQaWV0ZXINCitQaWV0cm8gZGEgQ29ydG9uYQ0KK1BpZXRybyBkYSBSaG8NCitQaWV0cm8gZGVnbGkgSW5nYW5uYXRpDQorUGlldHJvIGRpIEdpb3Zhbm5pIGQnQW1icm9naW8NCitQaWV0dGUsIEx1ZG92aWMNCitQaWdhbGxlLCBKZWFuLUJhcHRpc3RlDQorUGlnbm9uaSwgU2ltb25lDQorUGlrZSwgSm9obg0KK1BpbGxlbWVudCwgSmVhbiBCYXB0aXN0ZQ0KK1BpbG8sIENhcmwgR3VzdGFmDQorUGlsb24sIEdlcm1haW4NCitQaWxzLCBJc2lkb3JlDQorUGluYWlnaWVycywgSmVhbg0KK1BpbmRlbGwsIEhvd2FyZGVuYQ0KK1BpbmUsIFJvYmVydCBFZGdlDQorUGluZSwgVGhlb2RvcmUgRS4NCitQaW5lZGEsIEpvc2UNCitQaW5rbmV5LCBKZXJyeQ0KK1Bpbm5leSwgRXVuaWNlDQorUGludHVyaWNjaGlvDQorUGludHosIEpvaGFubiBHZW9yZw0KK1Bpb2xhLCBEb21lbmljbw0KK1BpcGVyLCBKb2huDQorUGlwZXIsIFJvc2UNCitQaXBwaW4sIEhvcmFjZQ0KK1BpcXRvdWt1biwgRGF2aWQgUnViZW4NCitQaXJhbmVzaSwgR2lvdmFubmkgQmF0dGlzdGENCitQaXNhbmVsbG8NCitQaXNhbmksIEdpYW5uaQ0KK1Bpc2FuaSwgVmV0dG9yDQorUGlzYW5vLCBBbmRyZWENCitQaXNhbm8sIEdpb3Zhbm5pDQorUGlzYW5vLCBOaWNvbGENCitQaXNhbm8sIE5pbm8NCitQaXNzYXJybywgQ2FtaWxsZQ0KK1Bpc3NhcnJvLCBMdWNpZW4NCitQaXN0b2xldHRvLCBNaWNoZWxhbmdlbG8NCitQaXRzaXVsYWssIExpcGENCitQaXR0bWFuLCBMYXJpDQorUGl0dG9uaSwgR2lvdmFubmkgQmF0dGlzdGENCitQaXphLCBBcnRodXIgTHVpeg0KK1BpenppbmF0bywgQXJtYW5kbw0KK1BsYWNlLCBGcmFuY2lzDQorUGxhbW9uZG9uLCBBbnRvaW5lDQorUGxhcywgUGlldGVyIHZhbiBkZXINCitQbGF0emVyLCBKb2hhbm4gR2VvcmcNCitQbGVpc3NuZXIsIE9nZGVuDQorUGxlcHAsIEpvc2VwaA0KK1BsZXlkZW53dXJmZiwgSGFucw0KK1BvY2NpLCBHcmFmIEZyYW56IFZvbg0KK1BvY29jaywgSXNhYWMNCitQb2NvY2ssIE5pY2hvbGFzDQorUG9lbCwgRWdiZXJ0IHZhbiBkZXINCitQb2VsZW5idXJnaCwgQ29ybmVsaXMgdmFuDQorUG9nZ2luaSwgRG9tZW5pY28NCitQb2ludCwgQXJtYW5kDQorUG9sYWNrLCBKYW4NCitQb2xlbm92LCBWYXNpbGl5DQorUG9saWFrb2ZmLCBTZXJnZQ0KK1BvbGlkb3JvIExhbnphbmkNCitQb2xrLCBDaGFybGVzIFBlYWxlDQorUG9sa2UsIFNpZ21hcg0KK1BvbGxhaW9sbywgQW50b25pbw0KK1BvbGxhaW9sbywgUGllcm8NCitQb2xsYXJkIExpbW5lciwgVGhlDQorUG9sbGFyZCwgSmFtZXMNCitQb2xsYXJkLCBSb2JlcnQNCitQb2xsb2NrLCBKYWNrc29uDQorUG9sbG9jaywgSm9obg0KK1BvbG9zLCBUaGVvZG9yZSBDLg0KK1BvbHlnbm90b3MNCitQb21tZXIsIEp1bGl1cyBKLg0KK1BvbW9kb3JvLCBHacOyDQorUG9uw6csIEpvYW4NCitQb25jZSBkZSBMZW9uIHkgQ2FiZWxsbywgQWxmb25zbw0KK1BvbnQsIENoYXJsZXMgRXJuZXN0DQorUG9udG9ybW8NCitQb29sZSwgQWJyYW0NCitQb29ucywgTGF3cmVuY2UNCitQb290b29nb29rLCBLYW5hbmdpbmFrDQorUG9wZSBKci4sIENhcmwgUm9iZXJ0DQorUG9wb3ZhLCBMaXVib3YNCitQb3BwaSwgSWwNCitQb3JjZWxsaXMsIEphbg0KK1BvcmRlbm9uZSwgSWwNCitQb3J0YSwgR2lhY29tbyBkZWxsYQ0KK1BvcnRhLCBHaXVzZXBwZQ0KK1BvcnRhLCBHdWdsaWVsbW8gZGVsbGENCitQb3J0YWlsLCBKYWNxdWVzIEFuZHLDqQ0KK1BvcnRlciwgQnJpYW4NCitQb3J0ZXIsIENoYXJsZXMNCitQb3J0ZXIsIEZhaXJmaWVsZA0KK1BvcnRlciwgU2lyIFJvYmVydCBLZXINCitQb3J0aW5hcmksIENhbmRpZG8NCitQb3NhZGEsIEpvc8OpIEd1YWRhbHVwZQ0KK1Bvc3QsIEZyYW5zDQorUG90LCBIZW5kcmljayBHZXJyaXRzei4NCitQb3RyZSwgTGUNCitQb3R0ZXIsIEJlYXRyaXgNCitQb3R0ZXIsIENhcnRlcg0KK1BvdHRlciwgRnJhbmsgSHVkZGxlc3RvbmUNCitQb3R0ZXIsIE1hcnkNCitQb3R0ZXIsIE1pa2UNCitQb3R0ZXIsIFBhdWx1cw0KK1BvdHRoYXN0LCBFZHdhcmQgSGVucnkNCitQb3VnbnksIEplYW4NCitQb3VyYnVzIHRoZSBFbGRlciwgRnJhbnMNCitQb3VyYnVzIHRoZSBZb3VuZ2VyLCBGcmFucw0KK1BvdXJidXMsIFBpZXRlcg0KK1BvdXNldHRlLURhcnQsIFJpY2hhcmQNCitQb3Vzc2luLCBOaWNvbGFzDQorUG93ZWxsLCBKb3NlcGgNCitQb3dlcnMsIEFzYWhlbA0KK1Bvd2VycywgSGlyYW0NCitQb3dlcnMsIE1hcmlvbg0KK1BveWV0LCBKZWFuDQorUG95bnRlciwgU2lyIEVkd2FyZA0KK1BvenphdHRpLCBSdWR5DQorUG96emksIEx1Y2lvDQorUG96em8sIEFuZHJlYQ0KK1ByYWRpZXIsIEphbWVzDQorUHJhZG8sIE1hcmluYSBOdcOxZXogZGVsDQorUHJhbXBvbGluaSwgRW5yaWNvDQorUHJhbmdob2ZlciwgRnJhbmsNCitQcmF0dCwgQmVsYSBMeW9uDQorUHJhdHQsIENocmlzdG9waGVyDQorUHJhdHQsIEZyYW5jZXMNCitQcmF0dCwgTWFyeQ0KK1ByYXR0LCBNYXR0aGV3DQorUHJheGl0ZWxlcw0KK1ByZWRhdG9yDQorUHJlZGlzLCBBbWJyb2dpbyBkZQ0KK1ByZW5kZXJnYXN0LCBDaGFybGVzDQorUHJlbmRlcmdhc3QsIE1hdXJpY2UNCitQcmVudGljZSwgTGV2aSBXZWxscw0KK1ByZXN0b24sIEplc3NpZSBHb29kd2luDQorUHJlc3RvbiwgTWFyZ2FyZXQNCitQcmVzdG9waW5vLCBHcmVnb3Jpbw0KK1ByZXRpLCBNYXR0aWENCitQcmljZSwgSXJlbmUNCitQcmlldXIsIEJhcnRow6lsw6lteQ0KK1ByaWtrZXIsIEpvaGFuIFRob3JuDQorUHJpbWF0aWNjaW8sIEZyYW5jZXNjbw0KK1ByaW5jZSwgUmljaGFyZA0KK1ByaW5nbGUsIEouDQorUHJpbmdsZSwgSm9obiBRdWludG9uDQorUHJpbnNlcCwgVmFsZW50aW5lIENhbWVyb24NCitQcmluc2VwLCBXaWxsaWFtDQorUHJpbnR6LCBIYW5rDQorUHJpb3IsIFNjb3R0DQorUHJpb3IsIFdpbGxpYW0gTWF0dGhldw0KK1Byb2NhY2NpbmkgSWwgR2lvdmFuZSwgRXJjb2xlDQorUHJvY2FjY2luaSwgR2l1bGlvIENlc2FyZQ0KK1Byb2N0ZXIsIERvZA0KK1Byb2N0b3IsIEFsZXhhbmRlciBQaGltaXN0ZXINCitQcm9wZXJ6aWEgZGUgUm9zc2kNCitQcm91dCwgU2FtdWVsDQorUHJvdm9zdCwgSmFuDQorUHJ1ZCdob24sIFBpZXJyZS1QYXVsDQorUHJ1bmEsIFBlZHJvDQorUHJ1c3prb3dza2ksIFdpdG9sZA0KK1B1Y2NpbyBkaSBTaW1vbmUNCitQdWNlbGxlLCBKZWFuDQorUHVkbGF0LCBQdWRsbw0KK1B1ZWxtYSwgSGVybsOhbg0KK1B1ZWx6LCBTdXNhbg0KK1B1Z2EsIEFudG9uaW8NCitQdWdldCwgUGllcnJlDQorUHVsaWdvLCBEb21lbmljbw0KK1B1cnllYXIsIE1hcnRpbg0KK1B1c2V5LCBKb2huDQorUHVzaG1hbiwgSG92c2VwDQorUHV0aHVmZiwgSGFuc29uIEQuDQorUHV0bmFtLCBKYW5lDQorUHV2aXMgZGUgQ2hhdmFubmVzLCBQaWVycmUNCitQdXksIEplYW4NCitQeWxlLCBBYXJvbg0KK1B5bGUsIEhvd2FyZA0KK1B5bmFja2VyLCBBZGFtDQorUHluYXMsIEphY29iDQorUHluYXMsIEphbg0KK1B5bmUsIFdpbGxpYW0gSGVucnkNCitQeXRob24NCitRaSBCYWlzaGkNCitRaWFuIEp1bnRhbw0KK1FpYW4gU29uZ3lhbg0KK1FpYW4gWHVhbg0KK1FpYW5sb25nLCBFbXBlcm9yDQorUWlwZWksIEdhbw0KK1FpdSBUaQ0KK1F1IERpbmcNCitRdWFkYWwsIE1hcnRpbiBGZXJkaW5hbmQNCitRdWFuIFNoYW5zaGkNCitRdWFyZW5naGksIEdpYWNvbW8NCitRdWFydG9uLCBFbmd1ZXJyYW5kDQorUXVhc3QsIFBpZXRlciBKYW5zeg0KK1F1ZWxsaW51cywgRXJhc211cw0KK1F1ZXJjaWEsIEphY29wbyBkZWxsYQ0KK1F1ZXNuZWwsIEZyYW7Dp29pcw0KK1F1aWRvciwgSm9obg0KK1F1aW5uLCBNYXJjDQorUXVpbm4sIFRob21hcw0KK1F1aW5udWF5dWFrLCBMdWN5DQorUmFhZGFsLCBFcmlrDQorUmFib3ksIE1hYw0KK1JhY2toYW0sIEFydGh1cg0KK1JhZSwgRmlvbmENCitSYWVidXJuLCBTaXIgSGVucnkNCitSYWV0eiwgTWFya3VzDQorUmFmZmFlbCwgSm9zZXBoDQorUmFmZmHDq2xsaSwgSmVhbi1GcmFuw6dvaXMNCitSYWZmZXQsIERlbmlzIEF1Z3VzdGUgTWFyaWUNCitSw6Fmb2xzIENhc2FtYWRhLCBBbGJlcnQNCitSYWdhbHppLCBTZXJnaW8NCitSYWdnaSwgQW50b25pbw0KK1JhaW1vbmRpLCBNYXJjYW50b25pbw0KK1JhaW4sIENoYXJsZXMNCitSYWluZXIsIEFybnVsZg0KK1JhbGVpZ2gsIENoYXJsZXMgUy4NCitSYWxwaCwgQmVuamFtaW4NCitSYWxzdG9uLCBKb2huDQorUmFtYmFsZGksIENhcmxvIEFudG9uaW8NCitSYW1lbmdoaSwgR2lvdmFuIEJhdHRpc3RhDQorUmFtw61yZXogZGUgQXJlbGxhbm8sIENocmlzdMOzYmFsDQorUmFtb3MgTWFydMOtbmV6LCBBbGZyZWRvDQorUmFtb3MsIE1lbA0KK1JhbXNheSwgQWxsYW4NCitSYW1zYXksIEh1Z2gNCitSYW11bm5vLCBUb255DQorUmFuZGFsbCwgQS5NLg0KK1JhbmRhbGwtUGFnZSwgUGV0ZXINCitSYW5kb2xwaCwgTHlubiBNLg0KK1JhbmdlbCwgUmljYXJkbw0KK1JhbmdlciwgSGVucnkgV2FyZA0KK1JhbmtpbiwgSmVycnkNCitSYW5uZXksIFdpbGxpYW0gVHlsZWUNCitSYW5zb24sIFBhdWwNCitSYW91eCwgSmVhbg0KK1JhcGhhZWwNCitSYXBoYWVsIE1hZmFpLCBBbnRvbmlldHRhDQorUmFwaGFlbCwgSm9zZXBoDQorUmFwaGFlbCwgTWFyeSBGLg0KK1Jhc2NoZW4sIEhlbnJ5DQorUmF0Z2ViLCBKw7ZyZw0KK1JhdGhzYWNrLCBTdGVybGluZw0KK1JhdHRuZXIsIEFicmFoYW0NCitSYXUsIFdpbGxpYW0gSGVybWFuDQorUmF1c2NoZW5iZXJnLCBSb2JlcnQNCitSYXZlZWwsIFJvZ2VyDQorUmF2ZW4sIEpvaG4gU2FtdWVsDQorUmF2aWxpb3VzLCBFcmljDQorUmF5LCBDaGFybGVzDQorUmVhZCwgRGF2aWQgQ2hhcmxlcw0KK1JlYWQsIEphbWVzIEIuDQorUmVhZCwgVGhvbWFzIEJ1Y2hhbmFuDQorUmVhbSwgQ2FyZHVjaXVzIFAuDQorUmVhcmRvbiwgVGltDQorUmVhdWdoLCBDaGFybGVzIEZyYW5rbGluDQorUmViZWNjYSwgQmlhZ2lvDQorUmViaWxsw6ksIE5pY29sYXMNCitSZWNjbywgR2l1c2VwcGUNCitSZWQgU3RhciwgS2V2aW4NCitSZWRmaWVsZCwgRWR3YXJkIFdpbGxpcw0KK1JlZGdyYXZlLCBSaWNoYXJkDQorUmVkbW9uZCwgR3JhbnZpbGxlDQorUmVkb24sIE9kaWxvbg0KK1JlZG91dMOpLCBQaWVycmUgSm9zZXBoDQorUmVkcGF0aA0KK1JlZWIsIERhdmlkDQorUmVlZCwgRGF2aWQNCitSZWVkLCBSb2JlcnQNCitSZWVzLCBNaWNoYWVsDQorUmVmcmVnaWVyLCBBbnRvbg0KK1JlZ2lzdGVyLCBKb2huDQorUmVnbmF1bHQsIEJhcm9uIEplYW4gQmFwdGlzdGUNCitSZWduYXVsdCwgSGVucmkNCitSZWduaWVyLCBOaWNvbGFzDQorUmVnbywgUGF1bGENCitSZWdveW9zLCBEYXLDrW8gZGUNCitSZWljaGVsLCBIYW5zDQorUmVpY2hsaWNoLCBNYXJ4DQorUmVpZCwgQmlsbA0KK1JlaWQsIEdlb3JnZSBBLg0KK1JlaWQsIEphbmV0DQorUmVpZCwgSm9obiBSb2JlcnRzb24NCitSZWlkLCBSb2JlcnQNCitSZWlmZmVsLCBDaGFybGVzDQorUmVpbmFnbGUsIFBoaWxpcA0KK1JlaW5hZ2xlLCBSYW1zYXkgUmljaGFyZA0KK1JlaW5kZWwsIFdpbGxpYW0gR2VvcmdlDQorUmVpbmRlcnMsIEppbQ0KK1JlaW5oYXJkdCwgQWQNCitSZWlzbWFuLCBQaGlsaXANCitSZWpsYW5kZXIsIE9zY2FyIEd1c3RhdmUNCitSZW1icmFuZHQgdmFuIFJpam4NCitSZW1pbmd0b24sIEZyZWRlcmljDQorUmVuIFhpb25nDQorUmVuIFh1bg0KK1JlbiBZaQ0KK1JlbmksIEd1aWRvDQorUmVuaWVyaSwgTmljY29sbw0KK1Jlbm9pciwgUGllcnJlLUF1Z3VzdGUNCitSZW5vdWYsIEVkZGENCitSZXBpbiwgSWxpeWENCitSZXNsZXIsIEdlb3JnZSBFYXJsDQorUmVzbWFubiwgRnJhbmNlc2NvDQorUmVzdG91dCwgSmVhbg0KK1JldGhlbCwgQWxmcmVkDQorUmV0aGVsLCBQb25jZSBKYWNxdWlvdA0KK1LDqXRpLCBJc3R2w6FuDQorUmV2ZXJlLCBQYXVsDQorUsOpdm9pbCwgUGllcnJlLUhlbnJpDQorUmV5bWVyc3dhZWxlLCBNYXJpbnVzIHZhbg0KK1JleW1vbmQsIFBpZXJyZQ0KK1JleW5hcmQsIEdyYW50DQorUmV5bm9sZHMgSnIuLCBTYW11ZWwgV2lsbGlhbQ0KK1JleW5vbGRzLCBBbGFuDQorUmV5bm9sZHMsIFNpciBKb3NodWENCitSZXlzc2Nob290LCBQZXRlciBKb2huIFZhbg0KK1JoZWFkLCBMb3VpcyBKb2huDQorUmhlYW0sIEhlbnJ5IE1heW5lbGwNCitSaWJhbHRhLCBGcmFuY2lzY28NCitSaWJhbHRhLCBKb3JnZQ0KK1JpYmVyYSwgSnVzZXBlIGRlDQorUmlibGUsIERhdmUNCitSaWJvdCwgQXVndXN0aW4gVGjDqW9kdWxlDQorUmljYXJkLCBMb3Vpcy1HdXN0YXZlDQorUmljY2ksIE1hcmNvDQorUmljY2ksIFNlYmFzdGlhbm8NCitSaWNjaW8sIElsDQorUmljaCwgQWxmcmVkIFdpbGxpYW0NCitSaWNoYXJkcywgRnJhbmNlcw0KK1JpY2hhcmRzLCBKb2huIEluaWdvDQorUmljaGFyZHMsIFdpbGxpYW0gVHJvc3QNCitSaWNoYXJkc29uIEksIEpvbmF0aGFuDQorUmljaGFyZHNvbiBKci4sIFRob21hcyBNaWxlcw0KK1JpY2hhcmRzb24sIFNhbQ0KK1JpY2hhcmRzb24sIFN0ZXZlbg0KK1JpY2hhcmRzb24sIFdpbGxpYW0NCitSaWNoaWVyLCBHZXJtYWluZQ0KK1JpY2htb25kLCBBZ25lcyBNaWxsZW4NCitSaWNobW9uZCwgR2VvcmdlDQorUmljaG1vbmQsIFNpciBXaWxsaWFtIEJsYWtlDQorUmljaHRlciwgR2VyaGFyZA0KK1JpY2h0ZXIsIEdpb3Zhbm5pDQorUmlja2V5LCBHZW9yZ2UNCitSaWNvLCBEYW4NCitSaWRlciwgQXJ0aHVyIEdyb3Zlcg0KK1JpZGd3YXksIFBldGVyDQorUmllY2hhcmR0LCBSaWNoYXJkDQorUmllZGVsbCwgRG9uDQorUmllbWVuc2NobmVpZGVyLCBUaWxtYW4NCitSaWV6aW8sIE1hcnRpbm8NCitSaWdhdWQsIEh5YWNpbnRoZQ0KK1JpZ2F1ZCwgSm9obiBGcmFuY2lzDQorUmlnYnksIEVsaXphYmV0aA0KK1JpZ2dzLCBSb2JlcnQNCitSaWdoZXR0aSwgRnJhbmNlc2NvDQorUmlpcywgSmFjb2INCitSaWxleSwgQnJpZGdldA0KK1JpbGV5LCBKb2huDQorUmltbWVyLCBXaWxsaWFtDQorUmluZGlzYmFjaGVyLCBQZXRlcg0KK1JpbmVoYXJ0LCBGcmFuaw0KK1JpbmVoYXJ0LCBXaWxsaWFtIEhlbnJ5DQorUmluZywgTC5BLg0KK1JpbmcsIFBpZXRlciBkZQ0KK1Jpbmdnb2xkLCBGYWl0aA0KK1Jpbnp5LCBKb2huIEhlbnJ5IGRlDQorUmlvcGVsbGUsIEplYW4gUGF1bA0KK1Jpb3MsIE1pZ3VlbCBBbmdlbA0KK1JpcGxleSwgQWlkZW4gTGFzc2VsbA0KK1JpcHBvbiwgVG9tDQorUmlzdCwgUGlwaWxvdHRpDQorUml0Y2hpZSwgV2lsbGlhbSBCLg0KK1JpdG1hbiwgTG91aXMNCitSaXRzY2hlbCwgV2lsbGlhbQ0KK1JpdHRlcm1hbm4sIFBoaWxpcCBTY2hvbHoNCitSaXR0cywgSGVyYg0KK1JpdHpvcywgQW5kcmVhcw0KK1JpdmFseiwgQW50b2luZQ0KK1JpdmUsIFJvYmVydG8NCitSaXZlcmEgSGVybmFuZGV6LCBNYW51ZWwNCitSaXZlcmEsIERpZWdvDQorUml2ZXJzLCBMYXJyeQ0KK1JpdmnDqHJlLCBCcml0b24NCitSaXhlbnMsIEplYW4gQW5kcsOpDQorUml6em8sIEFudG9uaW8NCitSb2JiaWEsIEFuZHJlYSBkZWxsYQ0KK1JvYmJpYSwgR2lvdmFubmkgZGVsbGENCitSb2JiaWEsIEdpcm9sYW1vIGRlbGxhDQorUm9iYmlhLCBMdWNhIGRlbGxhDQorUm9iYmlucywgRGF2aWQNCitSb2JiaW5zLCBFbGxlbg0KK1JvYmVydCwgSHViZXJ0DQorUm9iZXJ0LCBKb2huDQorUm9iZXJ0LCBMb3Vpcy1Mw6lvcG9sZA0KK1JvYmVydC1GbGV1cnksIEpvc2VwaC1OaWNvbGFzDQorUm9iZXJ0bw0KK1JvYmVydHMsIERhdmlkDQorUm9iZXJ0cywgR29vZHJpZGdlDQorUm9iZXJ0cywgVG9tDQorUm9iZXJ0cywgV2lsbGlhbQ0KK1JvYmVydHNvbiwgQXJjaGliYWxkDQorUm9iZXJ0c29uLCBDaHJpc3RpbmENCitSb2JlcnRzb24sIFNhcmFoDQorUm9iZXR0YSwgQ3Jpc3RvZmFubw0KK1JvYmluZWF1LCBBZGVsYWlkZQ0KK1JvYmlucywgV2lsbGlhbSBQYWxtZXINCitSb2JpbnNvbiwgQW5uDQorUm9iaW5zb24sIENoYXJsZXMNCitSb2JpbnNvbiwgRi4gQ2F5bGV5DQorUm9iaW5zb24sIEouQy4NCitSb2JpbnNvbiwgTGVvbmFyZA0KK1JvYmluc29uLCBUaGVvZG9yZQ0KK1JvYmluc29uLCBXaWxsaWFtDQorUm9ic29uLCBHZW9yZ2UgRmVubmVsDQorUm9idXN0aSwgRG9tZW5pY28NCitSb2NjYXRhZ2xpYXRhLCBOaWNjb2zDsg0KK1JvY2hlLCBQaWVycmUNCitSb2NoZS1SYWJlbGwsIEFybmFsZG8NCitSb2NodXNzZW4sIENoYXJsZXMNCitSb2NrZW5zY2hhdWIsIEdlcndhbGQNCitSb2Nrd2VsbCwgTm9ybWFuDQorUm9kY2hlbmtvLCBBbGV4YW5kZXINCitSb2RpbiwgQXVndXN0ZQ0KK1JvZHLDrWd1ZXogTG96YW5vLCBNYW51ZWwNCitSb2VibGluZywgSm9obg0KK1JvZWJsaW5nLCBXYXNoaW5ndG9uDQorUm9lbG9mcywgV2lsbGVtDQorUm9lbnRnZW4sIEFicmFoYW0NCitSb2VudGdlbiwgRGF2aWQNCitSb2VyaWNoLCBOaWNob2xhcw0KK1JvZXNlbiwgU2V2ZXJpbg0KK1JvZ2VycywgSm9obg0KK1JvZ2htYW4sIFJvZWxhbnQNCitSb2hsZnMsIENocmlzdGlhbg0KK1Jva290b3YsIEZlZG9yDQorUm9sYW5kLCBQaGlsaXBwZS1MYXVyZW50DQorUm9sZMOhbiwgTHVpc2ENCitSb2xsaW5zLCBUaW0NCitSb21ha28sIEFudG9uDQorUm9tw6FuIFJvamFzLCBTYW11ZWwNCitSb21hbmVsbGksIFJvbWFubw0KK1JvbWFuaW5vLCBHaXJvbGFtbw0KK1JvbWFubywgR2lhbiBDcmlzdG9mb3JvDQorUm9tYm91dHMsIEdpbGxpcw0KK1JvbWJvdXRzLCBTYWxvbW9uDQorUm9tYm91dHMsIFRow6lvZG9yZQ0KK1JvbW5leSwgR2VvcmdlDQorUm9uZGVsLCBGcmVkZXJpY2sNCitSb28sIFJvZWxvZiBkZQ0KK1Jvb2tlciwgTWljaGFlbCBBbmdlbG8NCitSb29zLCBKb2hhbiBIZWlucmljaA0KK1Jvb3MsIEpvc2VwaA0KK1Jvb3MsIFBoaWxpcHAgUGV0ZXINCitSb3BlciwgUmljaGFyZA0KK1JvcGVzIEpyLiwgR2VvcmdlDQorUm9wcywgRsOpbGljaWVuDQorUm9xdWVwbGFuLCBDYW1pbGxlDQorUm9xdWVzLCBKb3NlcGgNCitSb3NhLCBFcmNvbGUNCitSb3NhLCBTYWx2YXRvcg0KK1Jvc2FpLCBPdHRvbmUNCitSb3NhbGVzLCBFZHVhcmRvDQorUm9zYXMsIFJ1YsOpbg0KK1Jvc2F0aSwgSmFtZXMNCitSb3NlLCBHdXkNCitSb3NlLCBLbnV0DQorUm9zZW5iZXJnLCBIZW5yeSBNLg0KK1Jvc2VuYmVyZywgSXNhYWMNCitSb3NlbmJlcmcsIExvdWlzIENvbnJhZA0KK1Jvc2VuYmx1bSwgUmljaGFyZA0KK1Jvc2VucXVpc3QsIEphbWVzDQorUm9zZW50aGFsLCBBbm4gVGV2eQ0KK1Jvc2VudGhhbCwgRG9yaXMNCitSb3NlbnRoYWwsIFRvbnkNCitSb3NodSwgRnVrYWUNCitSb3NsaW4sIEFsZXhhbmRlcg0KK1Jvc2xpbiwgTGUgQ2hldmFsaWVyDQorUm9zbGluLCBUJ29yb3MNCitSb3NzLCBTaXIgV2lsbGlhbSBDaGFybGVzDQorUm9zc2JhY2gsIEVkd2FyZA0KK1Jvc3NlbGxpLCBDb3NpbW8NCitSb3NzZWxsaSwgTWF0dGVvDQorUm9zc2VsbGlubywgQW50b25pbw0KK1Jvc3NlbGxpbm8sIEJlcm5hcmRvDQorUm9zc2V0dGksIERhbnRlIEdhYnJpZWwNCitSb3NzaXRlciwgVGhvbWFzIFByaWNoYXJkDQorUm9zc28gRmlvcmVudGlubw0KK1Jvc3NvLCBNZWRhcmRvDQorUm9zc28sIE1pbm8NCitSb3N6YWssIFRoZW9kb3JlDQorUm90YXJpLCBQaWV0cm8NCitSb3RlbGxhLCBNaW1tbw0KK1JvdGgsIEVybmVzdCBEYXZpZA0KK1JvdGhlbmJlcmcsIFN1c2FuDQorUm90aGVuc3RlaW4sIE1pY2hhZWwNCitSb3RoZW5zdGVpbiwgU2lyIFdpbGxpYW0NCitSb3RoZXJtZWwsIFBldGVyIEZyZWRlcmljaw0KK1JvdGhrbywgTWFyaw0KK1JvdGhzY2hpbGQsIEdhaWwNCitSb3Roc3RlaW4sIEFydGh1cg0KK1JvdHRlbmhhbW1lciwgSGFucw0KK1JvdWF1bHQsIEdlb3JnZXMNCitSb3ViaWxpYWMsIExvdWlzLUZyYW7Dp29pcw0KK1JvdWdldCwgR2Vvcmdlcw0KK1JvdXNzZWF1LCBIZW5yaQ0KK1JvdXNzZWF1LCBUaMOpb2RvcmUNCitSb3Vzc2VsLCBLZXIgWGF2aWVyDQorUm91c3NlbCwgVGjDqW9kb3JlDQorUm91c3NlbGV0LCBHaWxsZXMNCitSb3V4LCBBbmdlLUpvc2VwaCBBbnRvaW5lDQorUm91eCwgRnJhbsOnb2lzIEdlb2Zmcm9pDQorUm91eCwgRnJhbsOnb2lzIEpvc2VwaCBGcsOpZMOpcmljDQorUm91eCwgSm9zZXBoDQorUm91eCwgTG91aXMNCitSb3V4LCBNYXRoaWV1IEFudG9pbmUNCitSb3V4LUNoYW1waW9uLCBKb3NlcGggVmljdG9yDQorUm93YW4sIFBhdHJpY2sNCitSb3dlLCBTYW5kcmENCitSb3dsYW5kc29uLCBUaG9tYXMNCitSb3dsZXksIFJldWJlbg0KK1JveWVuLCBXaWxsZW0gRnJlZGVyaWsgdmFuDQorUnJhcCwgSnVsaWUNCitSdWJlbnMsIFBldGVyIFBhdWwNCitSdWJpbiwgUmV1dmVuDQorUnVibGV2LCBBbmRyZWkNCitSdWRlLCBGcmFuw6dvaXMNCitSdWRlLCBPbGFmDQorUnVlbGFzLCBKdWxpbw0KK1J1ZmYsIFRob21hcw0KK1J1Z2VuZGFzIEksIEdlb3JnIFBoaWxpcHANCitSdWdlbmRhcywgSnVhbiBNYXVyaWNpbw0KK1J1aXNkYWVsLCBKYWNvYiB2YW4NCitSdWl6LCBBbnRvbmlvIE0uDQorUnVsZm8sIEp1YW4NCitSdW1tZWwsIEpheQ0KK1J1bW5leSwgUmFscGgNCitSdW5naXVzLCBDYXJsIENsZW1lbnMgTW9yaXR6DQorUnVwZXJ0LCBQcmluY2UNCitSdXNjaGEsIEVkDQorUnVzY29uaSwgQ2FtaWxsbw0KK1J1c2VsbCwgRWR3YXJkIEouDQorUnVzaCwgT2xpdmUNCitSdXNoLCBXaWxsaWFtDQorUnVzaGJ1cnksIEhlbnJ5DQorUnVza2luLCBKb2huDQorUnVzc2VsbCwgQW5kcmV3DQorUnVzc2VsbCwgQ2hhcmxlcyBNLg0KK1J1c3NlbGwsIEpvaG4NCitSdXNzZWxsLCBNb3JnYW4NCitSdXNzbywgQWxleGFuZGVyDQorUnVzdGljaSwgR2lvdmFubmkgRnJhbmNlc2NvDQorUnV0ZWxsaSwgTWFyaW8NCitSdXRoYXJ0LCBDYXJsIEJvcnJvbcOkdXMgQW5kcmVhcw0KK1J1eXNjaCwgUmFjaGVsDQorUnV5c2RhZWwsIFNhbG9tb24gdmFuDQorUnlhbiwgQW5uZQ0KK1J5Y2tlcmUsIEJlcm5oYXJ0IGRlDQorUnljcm9mdCBQYWludGVyLCBUaGUNCitSeWRlciwgQWxiZXJ0IFBpbmtoYW0NCitSeWRpbmdzdmFyZCwgVXJzdWxhIHZvbg0KK1J5ZHpld3NraSwgV2lsbGlhbSANCitSeW1hbiwgUm9iZXJ0DQorU2FhciwgQWxpc29uDQorU2FhciwgQmV0eWUNCitTYWFyLCBMZXpsZXkNCitTYWFyaW5lbiwgRWVybw0KK1NhY2NoZXR0aSwgTG9yZW56bw0KK1NhY2NoaSwgQW5kcmVhDQorU2FjaHMsIExhbWJlcnQNCitTYWRlbGVyIEksIEphbg0KK1NhZGVsZXIgSUksIEFlZ2lkaXVzDQorU2FkbGVyLCBXYWx0ZXIgRGVuZHkNCitTYWVucmVkYW0sIEphbg0KK1NhZW5yZWRhbSwgUGlldGVyIEphbnN6Lg0KK1NhZnJhbiwgQmVybmFyZA0KK1NhZnRsZXZlbiB0aGUgWW91bmdlciwgSGVybWFuDQorU2FmdGxldmVuLCBDb3JuZWxpcw0KK1NhZ2UsIEtheQ0KK1NhZ2VyLCBQZXRlciBXaW5jaGVsbA0KK1NhaWQgQWJkdWxsYWggb2YgdGhlIE1heWFjDQorU2FpbGEsIFBhdXRhDQorU2FpbG1ha2VyLCBJc2FhYw0KK1NhaW50IENlY2lsaWEgTWFzdGVyDQorU2FpbnQtQW5kcmUsIFNpbW9uIFJlbmFyZCBkZQ0KK1NhaW50LUF1YmluLCBBdWd1c3RpbiBkZQ0KK1NhaW50LUF1YmluLCBDaGFybGVzIEdlcm1haW4gZGUNCitTYWludC1BdWJpbiwgR2FicmllbCBKYWNxdWVzIGRlDQorU2FpbnQtR2F1ZGVucywgQXVndXN0dXMNCitTYWludC1KZWFuLCBTaW1vbg0KK1NhaW50LU3DqW1pbiwgQ2hhcmxlcy1CYWx0aGF6YXItSnVsaWVuIEbDqXZyZXQgZGUNCitTYWludC1QaGFsbGUsIE5pa2kgZGUNCitTYWl0bywgS2l5b3NoaQ0KK1NhaXRvd2l0eiwgU3RhbmxleQ0KK1Nha2FpIEhvaWNoaQ0KK1Nha2FpIEhvaXRzdQ0KK1NhbGEsIEdlb3JnZSBBdWd1c3R1cyBIZW5yeQ0KK1NhbGF0aMOpLCBGcmllZHJpY2gNCitTYWxsZSwgRGF2aWQNCitTYWxsZWUsIENoYXJsZXMNCitTYWxtb24sIFJvYmVydA0KK1NhbHQsIEpvaG4NCitTYWx0ZXIsIFdpbGxpYW0NCitTYWx2YWRvcmksIFJlbW8NCitTYWx2aSwgTmljb2xhDQorU2FsdmlhdGksIEZyYW5jZXNjbw0KK1NhbHksIEphY3F1ZXMtRnJhbsOnb2lzLUpvc2VwaA0KK1NhbWFjY2hpbmksIE9yYXppbw0KK1NhbWFyYXMsIEx1Y2FzDQorU2FtcGxlLCBQYXVsIFN0YXJyZXR0DQorU8OhbmNoZXogQ29lbGxvLCBBbG9uc28NCitTw6FuY2hleiBDb3TDoW4sIEp1YW4NCitTw6FuY2hleiBQZXJleiwgQWxiZXJ0bw0KK1NhbmNoZXosIEFiZWwNCitTYW5jaGV6LCBQZWRybw0KK1NhbmRieSwgUGF1bA0KK1NhbmRieSwgVGhvbWFzDQorU2FuZGVyLCBBdWd1c3QNCitTYW5kZXJzLCBBbm4NCitTYW5kbGVyLCBCYXJiYXJhDQorU2FuZHJhcnQsIEpvYWNoaW0gdm9uDQorU2FuZHlzLCBFbW1hDQorU2FuZHlzLCBGcmVkZXJpY2sNCitTYW5nYWxsbywgRnJhbmNlc2NvIGRhDQorU2FuZ2FsbG8sIEdpdWxpYW5vIGRhDQorU2FuZy1Id2EsIENodW5nDQorU2FubWFydGlubywgR2l1c2VwcGUNCitTYW5vIGRpIFBpZXRybw0KK1NhbnNldmVyaW5vLCBMb3JlbnpvIGRpIEFsZXNzYW5kcm8gZGENCitTYW5zb3Zpbm8sIEFuZHJlYQ0KK1NhbnNvdmlubywgSmFjb3BvDQorU2FudCwgSmFtZXMNCitTYW50YWNyb2NlLCBHaXJvbGFtbw0KK1NhbnRlcnJlLCBKZWFuLUJhcHRpc3RlDQorU2FudG9tYXNvLCBHaXVzZXBwZQ0KK1NhbnRvcyBUb3Jyb2VsbGEsIEFuZ2VsZXMNCitTYW55dQ0KK1NhcG91c2VrLCBGcmFuaw0KK1NhcmFjZW5pLCBDYXJsbw0KK1NhcmdlbnQsIEhlbnJ5DQorU2FyZ2VudCwgSm9obiBTaW5nZXINCitTYXJraXNpYW4sIFBhdWwNCitTYXJraXNpYW4sIFNhcmtpcw0KK1NhcnRhaW4sIEpvaG4NCitTYXJ0b3JpdXMsIEpvaG4gTm9zdA0KK1Nhc2FqaW1hLCBLaWhlaQ0KK1Nhc3NldHRhDQorU2Fzc29mZXJyYXRvDQorU2Fzc3UsIEFsaWdpDQorU2F1bmRlcnMsIEdhcnkNCitTYXVyYSBBdGFyZXMsIEFudG9uaW8NCitTYXZhZ2UsIEVkd2FyZA0KK1NhdmVyeSwgUm9lbGFuZHQNCitTYXZvbGRvLCBHaW92YW5uaSBHaXJvbGFtbw0KK1NhdnJhc292LCBBbGV4ZXkNCitTYXd5ZXIsIEhlbGVuDQorU2F4ZSwgQW5kcmVzIE1hcnNhbCBkZQ0KK1NjYW5nYSwgSXRhbG8NCitTY2FybGV0dCwgUm9scGgNCitTY2FycGl0dGEsIFNhbHZhdG9yZQ0KK1NjYXJzZWxsaW5vDQorU2NoYWQsIENocmlzdGlhbg0KK1NjaGFkb3csIEpvaGFubiBHb3R0ZnJpZWQNCitTY2hhZWNodGVyLCBKdWRpdGgNCitTY2hhZWZlciwgQ2FybA0KK1NjaGFsY2tlbiwgR29kZnJpZWQNCitTY2hhbWJlcmcsIE1vcnRvbiBMaXZpbmdzdG9uDQorU2NoYW5rZXIsIExvdWlzDQorU2NoYXBpcm8sIE1pcmlhbQ0KK1NjaGFyZHQsIEJlcm5hcmQgUC4NCitTY2hhcmYsIEtlbm55DQorU2NoYXJmZiwgRWR3aW4NCitTY2jDpHVmZWxlaW4sIEhhbnMgTGVvbmhhcmQNCitTY2hlZG9uaSwgQmFydG9sb21lbw0KK1NjaGVmZmVyLCBBcnkNCitTY2hlaWJlciwgSHVnw7MNCitTY2hlbGZob3V0LCBBbmRyZWFzDQorU2NoZW5hdSwgSm9oYW5uIEVsZWF6YXINCitTY2hlcmVyLCBIZXJtYW5uDQorU2NoZXJzY2hlbCwgSm9zZXBoIEouDQorU2NoaWFmZmlubywgRnJhbmNlc2NvIE1hcmlhDQorU2NoaWF2b25lLCBBbmRyZWENCitTY2hpZWxlLCBFZ29uDQorU2NoaW5kbGVyLCBFbWlsIEpha29iDQorU2NoaW5rZWwsIEthcmwgRnJpZWRyaWNoDQorU2NobGVtbWVyLCBPc2thcg0KK1NjaGzDvHRlciwgQW5kcmVhcw0KK1NjaG1pZHQsIEp1bGl1cw0KK1NjaG1pZHQsIEthdGhlcmluZQ0KK1NjaG1pZHQtUm90dGx1ZmYsIEthcmwNCitTY2htdXR6ZXIsIEZlcmRpbmFuZA0KK1NjaG5hYmVsLCBKdWxpYW4NCitTY2huZWlkZXIsIEJlcm5oYXJkDQorU2Nobm9yciB2b24gQ2Fyb2xzZmVsZCwgSnVsaXVzDQorU2Nob2xkZXIsIEZyaXR6DQorU2Nob2xkZXJlciwgT3R0bw0KK1NjaG9uZmVsZCwgSm9oYW5uIEhlaW5yaWNoDQorU2Nob25nYXVlciwgTWFydGluDQorU2Nob256ZWl0LCBCZW4NCitTY2hvb25ob3ZlbiwgSmFuDQorU2Nob29ub3ZlciwgRnJhbmsgRS4NCitTY2hvb3RlbiwgRmxvcmlzIHZhbg0KK1NjaG9waW4sIEhlbnJpLUZyw6lkw6lyaWMNCitTY2hyYWRlciwgSnVsaXVzDQorU2NocmFnLCBLYXJsDQorU2NocmV5ZXIsIEFkb2xmDQorU2NocmV5ZXIsIExvdGhhcg0KK1NjaHJleXZvZ2VsLCBDaGFybGVzDQorU2Nocm8sIERpZXRyaWNoDQorU2NodWNoYXJkdCBKci4sIEZlcmRpbmFuZA0KK1NjaHVmZmVuZWNrZXIsIENsYXVkZS1FbWlsZQ0KK1NjaHVsdGUsIExhcnJ5DQorU2NodWx0aGVpc3MsIEthcmwgTWF4DQorU2NodWx0eiwgRGFuaWVsDQorU2NodWx0emUsIFJheQ0KK1NjaHVtYWNoZXIsIFdpbGxpYW0NCitTY2h1cHBlbiwgSmFjb2IgdmFuDQorU2NodXNzZWxlLCBDaHJpc3RpYW4NCitTY2h1c3RlciwgRG9ubmEgTm9yaW5lDQorU2NodXRsZXIsIEpvaG4NCitTY2h1eWxlciBMaW1uZXIsIFRoZQ0KK1NjaHdhYmUsIENhcmxvcw0KK1NjaHdhbGJlLCBPbGUNCitTY2h3YXJ0eiwgQXVicmV5DQorU2Nod2FydHosIExlc3RlciBPLg0KK1NjaHdlaWNraGFyZHQsIEhlaW5yaWNoIFdpbGhlbG0NCitTY2h3aWVnZXIsIEMuIFJvYmVydA0KK1NjaHdpZXJpbmcsIENvbnJhZA0KK1NjaHdpbmQsIE1vcml0eiBWb24NCitTY2h3aXR0ZXJzLCBLdXJ0DQorU2NvbGFyaSwgR2l1c2VwcGUNCitTY29yZWwsIEphbiB2YW4NCitTY290dCwgQW5uYSBQYWdlDQorU2NvdHQsIEJpbGwNCitTY290dCwgQm9iDQorU2NvdHQsIEZyYW5jZXMNCitTY290dCwgSm9obg0KK1Njb3R0LCBMb3Vpc2UNCitTY290dCwgTWFyeQ0KK1Njb3R0LCBTYW11ZWwNCitTY290dCwgV2lsbGlhbQ0KK1Njb3R0LCBXaWxsaWFtIEVkb3VhcmQNCitTY3VkZGVyLCBKYW5ldA0KK1NjdWxseSwgU2Vhbg0KK1NlYWdvLCBFZHdhcmQNCitTZWF2ZXksIEp1bGllbiBSLg0KK1NlYmEsIEFsYmVydA0KK1PDqWJhaCwgSi4gUGFzY2FsDQorU2ViYXN0acOhbg0KK1NlYmFzdGlhbm8gZGVsIFBpb21ibw0KK1NlYnJlZSwgQ2hhcmxlcw0KK1NlYnJvbiwgSHlwcG9seXRlIFZpY3RvciBWYWxlbnRpbg0KK1NlLWNob29uZywgS2ltDQorU2Vjb25kIEdvdWRhIFdvb2RjdXR0ZXINCitTZWNyZXN0LCBEYXZpZA0KK1NlZGRvbiwgVGhvbWFzDQorU2VnYWwsIEdlb3JnZQ0KK1NlZ2FsbCwgTGFzYXINCitTZWdhbnRpbmksIEdpb3Zhbm5pDQorU2VnZXJzdHJvbSwgUmljaw0KK1NlZ2hlcnMsIERhbmllbA0KK1NlZ2hlcnMsIEfDqXJhcmQNCitTZWdoZXJzLCBIZXJjdWxlcw0KK1NlZ25hIGRpIEJ1b25hdmVudHVyZQ0KK1NlaXNlbmVnZ2VyLCBKYWNvYg0KK1Nla2lubywgSnVuJ2ljaGlyw7QNCitTZWtrYSwgS2FtaXNha2ENCitTZWxpZ21hbm4sIEt1cnQNCitTZWxsaWVyLCBDaGFybGVzDQorU2Vsb3VzLCBIZW5yeSBDb3VydG5leQ0KK1NlbW1lcywgQmV2ZXJseQ0KK1NlbXBlcmUgSnVhbiwgRXVzZWJpbw0KK1NlbmlvciwgQy5GLg0KK1PDqW9uLCBBbGV4YW5kcmUNCitTZXJnZWwsIEpvaGFuIFRvYmlhcw0KK1Nlcmlha292LCBJYWtvdiBQYW5maWxvdmljaA0KK1Nlcm92LCBWYWxlbnRpbiBBbGVrc2FuZHJvdmljaA0KK1NlcnBvdHRhLCBHaWFjb21vDQorU2VycmEsIFJpY2hhcmQNCitTZXJyYW5vIEFndWlsYXIsIFBhYmxvDQorU2VycmFubywgQW5kcmVzDQorU2VycmVzLCBEb21pbmljDQorU2VycmVzLCBKb2huIFRob21hcw0KK1NlcnJ1ciwgSGVucmkNCitTw6lydXNpZXIsIFBhdWwNCitTZXNzaHUgVG95bw0KK1Nlc3NvbiBTaHVrZWkNCitTZXRjaCwgVGVycnkNCitTZXVyYXQsIEdlb3JnZXMNCitTZXZlcmluaSwgR2lubw0KK1NldmVybiwgSm9zZXBoDQorU2V2ZXJvIGRhIFJhdmVubmENCitTZXZpbGxhIFBvcnRpbGxvLCBTb2xlZGFkDQorU2V5ZmZlcnQsIExlb3BvbGQNCitTZXlsZXIsIEp1bGl1cw0KK1NleW1vdXIsIERhdmlkDQorU2V5bW91ciwgSmFtZXMNCitTaGEgUWkNCitTaGFkYm9sdCwgSmFjaw0KK1NoYWhuLCBBYmJ5DQorU2hhaG4sIEJlbg0KK1NoYW1zdWRkaW4sIEFzYWYgSmFoaQ0KK1NoYW5ub24sIFNpciBKYW1lcyBKZWJ1c2ENCitTaGFubm9uaG91c2UsIFNhbmR5DQorU2hhcGlybywgRGF2aWQNCitTaGFwaXJvLCBKb2VsDQorU2hhcGlybywgSm9zZXBoDQorU2hhcmFmDQorU2hhcnAsIEpvc2VwaCBIZW5yeQ0KK1NoYXJwZSwgQ2hhcmxlcyBLaXJrcGF0cmljaw0KK1NoYXJwZSwgU3RlcGhlbg0KK1NoYXJwbGVzLCBSb2xpbmRhDQorU2hhdWdobmVzc3ksIE1pY2hhZWwNCitTaGF3LCBKb2huIEJ5YW0NCitTaGF3LCBKb3NodWENCitTaGF3LCBSaWNoYXJkDQorU2hhdywgU2NvdHQNCitTaGF3LCBXaWxmcmVkIEJ5cm9uDQorU2hheSwgRWQNCitTaGF5ZXIgU3IuLCBXaWxsaWFtDQorU2hjaGVkcmluLCBTaWwndmVzdHIgRmVvZG9zaWV2aWNoDQorU2hlYSwgSnVkaXRoDQorU2hlZSwgU2lyIE1hcnRpbiBBcmNoZXINCitTaGVlbGVyLCBDaGFybGVzDQorU2hlZXRzLCBNaWxsYXJkDQorU2hlZmZpZWxkLCBJc2FhYw0KK1NoZWxieSwgTGlsYSBOb3JtYQ0KK1NoZWxsZXksIFNhbXVlbA0KK1NoZWx0b24sIE1hcmdhcmV0DQorU2hlbiBKaWF3ZWkNCitTaGVuIFlpbm1vDQorU2hlb3Vhaw0KK1NoZXBhcmQsIEVybmVzdA0KK1NoZXBoZXJkLCBIZWxlbiBQYXJzb25zDQorU2hlcGhlcmQsIFJlZ2luYWxkDQorU2hlcGxlciwgRHdpZ2h0DQorU2hlcmlkYW4sIE1hcnkNCitTaGVybG9jaywgV2lsbGlhbSBQLg0KK1NoZXJtYW4gTGltbmVyLCBUaGUNCitTaGVybWFuLCBDaW5keQ0KK1NoZXJyLCBSb24NCitTaGkgRGF3ZWkNCitTaGkgTHUNCitTaGllLCBTdXNhbg0KK1NoaWVsZHMsIEFsYW4NCitTaGllbGRzLCBGcmFuY2lzIEIuDQorU2hpZ2VtYXNhDQorU2hpZ2VuYWdhLCBOaXNoaW11cmENCitTaGlnZW5vYnUgSUksIFlhbmFnYXdhDQorU2hpa2lidSBUZXJ1dGFkYQ0KK1NoaW1hLCBUYW1hbWkNCitTaGltb211cmEsIFJvZ2VyDQorU2hpbmFnYXdhLCBUYWt1bWkNCitTaGlubiwgRXZlcmV0dA0KK1NoaW5vaGFyYSwgVXNoaW8NCitTaGlzaGtpbiwgSXZhbg0KK1NoaXRhbw0KK1Now7Rrw7RzYWksIEhhbmJlaQ0KK1Nob3J0LCBTaXIgRnJhbmsNCitTaG9zb24sIE9oYXJhDQorU2hyYWR5LCBIZW5yeSBNZXJ3aW4NCitTaHUgQ2h1YW54aQ0KK1NodWVicm9vaywgUm9uDQorU2jDu2jDtCwgWWFtYWthd2ENCitTaHVseiwgQWxiZXJ0YSBSZWhtDQorU2h1bmNobw0KK1NodW4nZWksIEthdHN1a2F3YQ0KK1NodW5zZW4sIEthdHN1a2F3YQ0KK1NodW5zZW4sIE5hdG9yaQ0KK1NodW5zbywgS2F0c3VrYXdhDQorU2h1bnphbiwgS2F0c3VrYXdhDQorU2h1dGUsIE5lbGwgQ2hvYXRlDQorU2liZXJlY2h0cywgSmFuDQorU2lja2VydCwgQmVybmFyZA0KK1NpY2tlcnQsIFdhbHRlciBSaWNoYXJkDQorU2lkZGFsLCBFbGl6YWJldGggRWxlYW5vcg0KK1NpZW1pcmFkemtpLCBIZW5yeWsNCitTaWVycmEsIFBhdWwNCitTaWV2ZXJkaW5nLCBLYXRoYXJpbmENCitTaWduYWMsIFBhdWwNCitTaWduZXIsIFJvbWFuDQorU2lnbm9yZWxsaSwgTHVjYQ0KK1Npa2FuZGVyLCBTaGFoemlhDQorU2lsbywgQWRhbQ0KK1NpbG/DqSwgRGllZ28gZGUNCitTaWxvZSwgR2lsIGRlDQorU2lsdmEsIEZyYW5jaXMgQS4NCitTaWx2YSwgR3VpbGxlcm1vDQorU2lsdmVyLCBKb25hdGhhbg0KK1NpbHZlc3RyZSB0aGUgWW91bmdlciwgSXNyYWVsDQorU2lsdmVzdHJvIERlbGwnQWNxdWlsYQ0KK1NpbHZ5LCBDYW1pbGxlLUzDqW9uLUxvdWlzDQorU2ltYmVyZywgSHVnbw0KK1NpbW9uLCBULiBGcmFudGlzZWsNCitTaW1vbmRzLCBDaGFybGVzDQorU2ltb25lIGRlaSBDcm9jaWZpc3NpDQorU2ltb25pbmksIEZyYW5jZXNjbw0KK1NpbXBzb24sIEJ1c3Rlcg0KK1NpbXBzb24sIEpvaG4NCitTaW1wc29uLCBMb3JuYQ0KK1NpbXMsIEthcmwNCitTaW1zLCBMLlcuICJSb2NreSINCitTaW11biwgS29uc3RhbnRpbg0KK1NpbmdlciwgQ2x5ZGUNCitTaW5nZXIsIE1pY2hhZWwNCitTaW5nbGV0b24sIEhlbnJ5DQorU2ludGVuaXMsIFJlbsOpZQ0KK1NpbnQtSmFucywgR2VlcnRnZW4gVG90DQorU2lxdWVpcm9zLCBEYXZpZCBBbGZhcm8NCitTaXJhbmksIEVsaXNhYmV0dGENCitTaXJvbmksIE1hcmlvDQorU2lza2luZCwgQWFyb24NCitTaXNsZXksIEFsZnJlZA0KK1Npc3lwaHVzIFBhaW50ZXIsIFRoZQ0KK1NpdHRvdywgTWljaGVsDQorU2l2dXJhcSwgVGhvbWFzDQorU2tlYWYsIEQuDQorU2tlbHRvbiwgSm9uYXRoYW4NCitTa2VyYmlzY2gsIEhhcnRtdXQNCitTa2lsbGV0LCBTdGVwaGFuIEQuDQorU2tpbm5lciwgQ2xhcmENCitTa2lwcGUsIEpvaG4NCitTa29nbHVuZCwgU2FuZHkNCitTa3lubmVyLCBUaG9tYXMNCitTbGF1Z2h0ZXIsIFN0ZXBoZW4NCitTbGV0ZXIsIEZyYW5jZXNjbw0KK1NsZXZvZ3QsIE1heA0KK1NsaW5nZWxhbmR0LCBQaWV0ZXIgQ29ybmVsaXN6LiB2YW4NCitTbG9hbiwgSGVsZW4gRmFycg0KK1Nsb2FuLCBKZWFuZXR0ZSBQYXNpbg0KK1Nsb2FuLCBKb2huDQorU2xvYW4sIEp1bml1cyBSLg0KK1Nsb2FuLCBNYXJpYW5uYQ0KK1Nsb2R0eiwgTWljaGVsYW5nZWxvDQorU2xvdHQtTcO4bGxlciwgSGFyYWxkDQorU2xvd2luc2tpLCBSb25hbGQNCitTbHVpanRlcnMsIEphbg0KK1NsdXNzZXIsIEplYW4gUGF1bA0KK1NsdXRlciwgQ2xhdXMNCitTbWFsbHdvb2QsIFdpbGxpYW0gRnJvbWUNCitTbWFydCwgSm9obg0KK1NtYXJ0bHksIEhlbnJ5DQorU21pYmVydCwgSm9obg0KK1NtaWR0aCwgSGFucw0KK1NtaWxsaWUsIEdlb3JnZSBIZW5yeQ0KK1NtaXJrZSwgUm9iZXJ0DQorU21pdGggSUlJLCBMZWUgTi4NCitTbWl0aCwgQWxleGlzDQorU21pdGgsIEFsZnJlZA0KK1NtaXRoLCBBbGxlbg0KK1NtaXRoLCBEYW5hDQorU21pdGgsIERhdmlkDQorU21pdGgsIERlYmJpZQ0KK1NtaXRoLCBFZGl0aCBBZ25lcw0KK1NtaXRoLCBHcmFjZSBDb3NzaW5ndG9uDQorU21pdGgsIEphY2sNCitTbWl0aCwgSmF1bmUgUXVpY2stVG8tU2VlDQorU21pdGgsIEplc3NpZSBXaWxsY294DQorU21pdGgsIEpvaG4gQ2hyaXN0b3BoZXINCitTbWl0aCwgSm9obiBSYXBoYWVsDQorU21pdGgsIEpvaG4gVGhvbWFzDQorU21pdGgsIEpvaG4gJ1dhcndpY2snDQorU21pdGgsIEpvc2VwaCBCLg0KK1NtaXRoLCBLaWtpDQorU21pdGgsIExlb24gUG9saw0KK1NtaXRoLCBMZXdpcw0KK1NtaXRoLCBNYXJpb24gQy4NCitTbWl0aCwgT2xpdmVyIFBoZWxwcw0KK1NtaXRoLCBQaGViZSBBLg0KK1NtaXRoLCBSaWNrDQorU21pdGgsIFJveWFsbCBCcmV3c3Rlcg0KK1NtaXRoLCBTaXIgTWF0dGhldw0KK1NtaXRoLCBUaG9tYXMNCitTbWl0aCwgVG9ueQ0KK1NtaXRoLCBUdWNrZXINCitTbWl0aCwgVy4gRXVnZW5lDQorU21pdGgsIFdhbHRlciBHcmFudmlsbGUNCitTbWl0aGVycywgQ29sbGllcg0KK1NtaXRoc29uLCBSb2JlcnQNCitTbWl0cywgSmFjb2INCitTbXl0aGUsIExpb25lbCBQZXJjeQ0KK1Nub3csIE1pY2hhZWwNCitTbm93ZGVuLCBHaWxkYQ0KK1NueWRlciwgQW1hbmRhDQorU255ZGVyLCBEZWFuDQorU255ZGVycywgRnJhbnMNCitTb2FuZSwgU2lyIEpvaG4NCitTb2RvbWEsIElsDQorU29lc3QsIEdlcmFyZA0KK1NvZ2xpYW5pLCBHaW92YW5uaSBBbnRvbmlvDQorU29obGJlcmcsIEhhcmFsZA0KK1NvbGFuYSwgSm9zw6kgR3V0acOpcnJleg0KK1NvbGFyaSwgQ3Jpc3RvZm9ybw0KK1NvbGFyaW8sIEFuZHJlYQ0KK1NvbGFybywgR2VudGluZQ0KK1NvbGRhbmksIE1hc3NpbWlsaWFubw0KK1NvbGRhdGksIEF0YW5hc2lvDQorU29sZG5lciwgUGF1bA0KK1NvbGVyaSwgUGFvbG8NCitTb2xpbWVuYSwgRnJhbmNlc2NvDQorU29saXMsIFZpcmdpbA0KK1NvbG9tb24sIEFicmFoYW0NCitTb2xvbW9uLCBSZWJlY2NhDQorU29sb21vbiwgU2ltZW9uDQorU29sb21vbiwgU29sb21vbiBKb3NlcGgNCitTb21lcnMsIEZyZWQNCitTb21lcnNjYWxlcywgVGhvbWFzIEouDQorU29tbWVyLCBGcmVkZXJpY2sNCitTb21tZXIsIEdpb3JnaW8NCitTb21vZ3lpLCBEw6FuaWVsDQorU29tb3YsIEtvbnN0YW50aW4NCitTw7huZGVyZ2FhcmQsIEplbnMNCitTb25nIFdlbnpoaQ0KK1Nvbm5pZXIsIEtlaXRoDQorU29ubnRhZywgV2lsbGlhbSBMb3Vpcw0KK1NvbnMsIEdpb3Zhbm5pDQorU29yZWF1LCBJc2FhYw0KK1PDuHJlbnNlbiwgQXJuZSBIYXVnZW4NCitTb3JnaCwgSGVuZHJpayBNYXJ0ZW5zeg0KK1Nvcmlhbm8sIEp1YW4NCitTb3JvbGxhIHkgQmFzdGlkYSwgSm9hcXVpbg0KK1Nvc2VraQ0KK1Nvc2VuLCBNb3JpDQorU290bywgSmVzw7pzLVJhZmFlbA0KK1NvdWNoLCBKb2huDQorU291bGFnZXMsIFBpZXJyZQ0KK1NvdXRoYWxsLCBKb3NlcGggRWR3YXJkDQorU291dGluZSwgQ2hhaW0NCitTb3llciwgSXNhYWMNCitTb3llciwgTW9zZXMNCitTb3llciwgUmFwaGFlbA0KK1NwYWRpbmksIEFybWFuZG8NCitTcGFldGgsIE1hcmllIEhhdWdodG9uDQorU3BhZ25hLCBMbw0KK1NwYWxsZXR0aSwgRXR0b3JlDQorU3BhcmFnYW5hLCBKb2huDQorU3BhdWxkaW5nLCBGcmVkYQ0KK1NwZWFyLCBSdXNraW4NCitTcGVja2FlcnQsIEhhbnMNCitTcGVuY2UsIFRob21hcyBSYWxwaA0KK1NwZW5jZXIsIEZyZWRlcmljayBSLg0KK1NwZW5jZXIsIEdpbGJlcnQNCitTcGVuY2VyLCBKb3NlcGgNCitTcGVuY2VyLCBMYWR5DQorU3BlbmNlciwgTGlsbHkgTWFydGluDQorU3BlbmNlciwgTmlsZXMNCitTcGVuY2VyLCBTdGFubGV5DQorU3BlbmNlciwgVGhvbWFzDQorU3BlbmdsZXIsIEplcm9uaW11cw0KK1NwZXJhbmRpbywgU2F2ZWxsaQ0KK1NwZXJvLCBOYW5jeQ0KK1NwaWVnZWwsIERvcmlzDQorU3BpbGJlcmcsIEpvaGFubg0KK1NwaWxsaWFlcnQsIEzDqW9uDQorU3BpbiwgSmFjb2INCitTcGluZWxsaSwgUGFycmkNCitTcGluZWxsbyBBcmV0aW5vDQorU3Bpbm9zYSwgRG9tZW5pY28NCitTcGl0endlZywgQ2FybA0KK1Nwb2VycmksIERhbmllbA0KK1Nwb2lsdW0NCitTcG9sdmVyaW5pLCBJbGFyaW8NCitTcG9ycmluZywgT2xlDQorU3ByYW5nZXIsIEJhcnRob2xvbWV1cw0KK1NwcmluZ2VyLCBDb3JuZWxpcw0KK1NwcnVhbmNlLCBCZW50b24gTXVyZG9jaA0KK1NweWJ1Y2ssIEVybmVzdA0KK1NxdWlyZXMsIEdlcmFsZA0KK1N0YWRsZXIsIEpvc2VwaCBDb25zdGFudGluDQorU3RhZHRiw6R1bWVyLCBQaWENCitTdGFobGVja2VyLCBLYXJlbg0KK1N0YW1vcywgVGhlb2Rvcm9zDQorU3RhbmN6YWssIEp1bGlhbg0KK1N0YW5maWVsZCwgQ2xhcmtzb24gRnJlZGVyaWNrDQorU3RhbmhvcGUsIEpvaG4gUm9kZGFtIFNwZW5jZXINCitTdGFua2lld2ljeiwgUmljaGFyZA0KK1N0YW5sYXdzLCBQZW5yaHluDQorU3RhbmxleSwgQWJyYW0gUm9zcw0KK1N0YW5sZXksIEphbmUgQy4NCitTdGFubGV5LCBKb2huIE1peA0KK1N0YW56aW9uZSwgTWFzc2ltbw0KK1N0YXJrLCBKYW1lcw0KK1N0YXJrLCBPdHRvDQorU3RhdGksIENyaXN0b2Zvcm8NCitTdGF1dGJlcmcsIEFubg0KK1N0YXZlcmVuLCBKYW4gQWRyaWFlbnN6LiB2YW4NCitTdGVhZCwgR2FyeQ0KK1N0ZWFkbWFuLCBSYWxwaA0KK1N0ZWFybnMsIEp1bml1cyBCcnV0dXMNCitTdGVhcm5zLCBXaWxsaWFtDQorU3RlY2ssIFBhdWwNCitTdGVlbGUsIEJlbg0KK1N0ZWVsZSwgRnJlZGVyaWMgRG9ycg0KK1N0ZWVsZSwgVGhlb2RvcmUgQ2xlbWVudA0KK1N0ZWVuLCBFcmxpbmcNCitTdGVlbiwgSmFuDQorU3RlZW53aWpjaywgSGFybWVuDQorU3RlZW53eWNrIHRoZSBZb3VuZ2VyLCBIZW5kcmlrIHZhbg0KK1N0ZWVyLCBQaGlsaXAgV2lsc29uDQorU3RlZmFubyBkYSBWZXJvbmENCitTdGVmYW5vIGRlbGxhIEJlbGxhDQorU3RlZmFubyBkaSBaZXZpbw0KK1N0ZWZmZW4sIEJlcm5hcmQgSi4NCitTdGVpY2hlbiwgRWR3YXJkIEouDQorU3RlaW5iYWNoLCBIYWltDQorU3RlaW5iZXJnLCBTYXVsDQorU3RlaW5icnVjaywgRWRvdWFyZA0KK1N0ZWluZXIsIEpvaG4NCitTdGVpbmxlbiwgVGjDqW9waGlsZSBBbGV4YW5kcmUNCitTdGVpciwgUGF0DQorU1RFTEFSQw0KK1N0ZWxsYSwgRnJhbmsNCitTdGVsbGEsIEphY3F1ZXMgZGUNCitTdGVsbGEsIEpvc2VwaA0KK1N0ZXBoZW5zLCBGcmVkZXJpYyBHZW9yZ2UNCitTdGVwaGVucywgVGhvbWFzIEVkZ2FyDQorU3RlcGhlbnNvbiwgSm9obiBDZWNpbA0KK1N0ZXBoZW5zb24sIFBldGVyDQorU3Rlcm5iZXJnLCBIYXJyeQ0KK1N0ZXJuZSwgTWF1cmljZQ0KK1N0ZXJuZXIsIEFsYmVydCBFZHdhcmQNCitTdGV0aCwgUmF5bW9uZA0KK1N0ZXR0aGVpbWVyLCBGbG9yaW5lDQorU3RldHRuZXIsIExvdWlzDQorU3RldmVucyAxODE3LTE4NzUsIEFsZnJlZA0KK1N0ZXZlbnMgMTgyMy0xOTA2LCBBbGZyZWQNCitTdGV2ZW5zLCBSdXRoIFR1bmFuZGVyDQorU3Rld2FyZCwgSm9zZXBoDQorU3Rld2FyZHNvbiwgVGhvbWFzDQorU3Rld2FydCwgQWxiZXJ0DQorU3Rld2FydCwgRGF2aWQNCitTdGV3YXJ0LCBKb2huIFAuDQorU3Rld2FydCwgSnVsaXVzIEwuDQorU3RpZWdsaXR6LCBBbGZyZWQNCitTdGllbGVyLCBKb3NlcGgNCitTdGlsbCwgQ2x5ZmZvcmQNCitTdGlsbG1hbiwgTWFyaWUgU3BhcnRhbGkNCitTdGlsbG1hbi1NeWVycywgSm95Y2UNCitTdG9jaywgQW5kcmllcw0KK1N0b2NrLCBKb3NlcGggV2hpdGluZw0KK1N0b2NrdCwgVnJhbmNrZSB2YW4gZGVyDQorU3RvY2t0b24sIEJpbGwNCitTdG9kYXJ0LCBFZHdhcmQgV2lsbGlhbQ0KK1N0b2tlcyAxODU0LTE5MzUsIEFkcmlhbg0KK1N0b2tlcyAxOTAyLTE5NzIsIEFkcmlhbg0KK1N0b2tlcywgTWFyaWFubmUNCitTdG9sbCwgTGVvcG9sZCB2b24NCitTdG9semwsIEd1bnRhDQorU3RvbWVyLCBNYXR0aGlhcw0KK1N0b25lLCBBbm5lIEJlbGxlDQorU3RvbmUsIEVsaW5vcmUNCitTdG9uZSwgTWFyY3VzDQorU3RvbmUsIE5pY2hvbGFzDQorU3RvbmUsIFJpY2hhcmQNCitTdG9vcCwgRGlyY2sNCitTdG9yY2ssIEFicmFoYW0NCitTdG9yY2ssIEphY29iDQorU3RvcnJzLCBGcmFuY2VzIEh1ZHNvbg0KK1N0b3JycywgSm9obg0KK1N0b3J5LCBHZW9yZ2UgSC4NCitTdG9yeSwgSnVsaWFuDQorU3RvcnksIFdpbGxpYW0gV2V0bW9yZQ0KK1N0b3NzLCBWZWl0DQorU3RvdGhhcmQsIFRob21hcw0KK1N0b3R0LCBFZHdhcmQNCitTdG90dCwgV2lsbGlhbQ0KK1N0b3VmLCBKZWFuLUJhcHRpc3RlDQorU3RvdW1lbiwgTG91DQorU3RvdXQsIFJlbsOpZQ0KK1N0b3V0ZXIsIEQuRy4NCitTdHJhZXQsIEphbiB2YW4gZGVyDQorU3RyYW5kLCBQYXVsDQorU3RyYW5nLCBXaWxsaWFtDQorU3RyYXR0b24sIE1hcnkgQ2hhc2UNCitTdHJhdWIsIFBoaWxpcHBlIEpha29iDQorU3RyZWV0LCBSb2JlcnQNCitTdHJlZXRvbiwgQXJ0aHVyDQorU3RyZXVsaSwgQmVhdA0KK1N0cmlnZWwsIEJlcm5oYXJkDQorU3Ryb21leWVyLCBEYXZpZA0KK1N0cm9uZywgRWxpemFiZXRoDQorU3Ryb25nLUN1ZXZhcw0KK1N0cm90aGVyLCBEYXZpZCBIdW50ZXINCitTdHJvenppLCBCZXJuYXJkbw0KK1N0cnViIHRoZSBZb3VuZ2VyLCBQZXRlcg0KK1N0cnVjaywgSGVybWFubg0KK1N0cnVkd2ljaywgSm9obiBNZWxodWlzaA0KK1N0cnVzcywgRXRoZWwNCitTdHJ1dGgsIFRob21hcw0KK1N0cnV0dCwgQXJ0aHVyIEpvaG4NCitTdHVhcnQsIEdpbGJlcnQNCitTdHVhcnQsIEphbmUNCitTdHVhcnQsIE1pY2hlbGxlDQorU3R1YXJ0LCBTaWduZQ0KK1N0dWJiaW5zLCBLeWxlDQorU3R1YmJzLCBHZW9yZ2UNCitTdHViZXIsIE5pa29sYXVzIEdvdHRmcmllZA0KK1N0dWNrLCBGcmFueiB2b24NCitTdHVlbXBmaWcsIFdhbHRlcg0KK1N0dXJ0ZXZhbnQsIEhlbGVuYQ0KK1N1IEhhbmNoZW4NCitTdWJsZXlyYXMsIFBpZXJyZQ0KK1N1ZWhhcnUsIEZ1a2FtaQ0KK1N1Z2ltb3RvLCBIaXJvc2hpDQorU3VpbywgVGFtdXJhDQorU3VrZW5vYnUNCitTdWtvbGEsIEphc29uDQorU3Vrd29uLCBQYXJrDQorU3VsZWltYW4sIE1hc3Rlcg0KK1N1bGxpdmFuLCBMb3Vpcw0KK1N1bGxpdmFuLCBNYXJ0eQ0KK1N1bGx5LCBUaG9tYXMNCitTdWxseSwgVGhvbWFzIFdpbGNvY2tzDQorU3VsdGFuIE11aGFtbWFkDQorU3VsdGFuLCBEb25hbGQNCitTdW4gWml4aQ0KK1N1bmRlcmxhbmQsIFRob21hcw0KK1N1bnF1YQ0KK1N1cmxzLCBKYW1lcw0KK1N1c2luaSwgQW50b25pbw0KK1N1c2luaSwgR2lhbmZyYW5jZXNjbw0KK1N1c3Rlcm1hbnMsIEp1c3R1cw0KK1N1dGNsaWZmZSwgRnJhbmsNCitTdXRoZXJsYW5kLCBFbGl6YWJldGggTGV2ZXNvbi1Hb3dlciwgQ291bnRlc3Mgb2YNCitTdXRoZXJsYW5kLCBHcmFoYW0NCitTdXR0b24sIERhdmlkDQorU3V2w6llLCBKb3NlcGgtQmVub8OudA0KK1N2ZW5kc2VuLCBCamFya2UgUmVnbg0KK1N2ZW5uc29uLCBDYXJzdGVuDQorU3dhbiwgSm9obiBNYWNhbGxhbg0KK1N3YW4sIE1hcmdhcmV0DQorU3dhbmV2ZWx0LCBIZXJtYW4gdmFuDQorU3dlZXJ0cywgTWljaGllbA0KK1N3ZW5kc29uLCBUcnlndmUNCitTd2VudHplbGwsIFJveGFubmUNCitTd2luZyBQYWludGVyLCBUaGUNCitTd3lubmVydG9uLCBBbm5pZSBMb3Vpc2UNCitTeWxldXMgUGFpbnRlciwgVGhlDQorU3ltb25kcywgV2lsbGlhbSBSb2JlcnQNCitTeW1vbnMsIEdlb3JnZSBHYXJkbmVyDQorU3lyaXNrb3MNCitTesOpa2VseSwgQmVydGFsYW4NCitTemlsYXJkLCBWaWMNCitTemlsYXNpLCBHYWJvcg0KK1RhYWZmZSwgUGhpbGlwDQorVGFjY2EsIFBpZXRybw0KK1RhY2ssIEF1Z3VzdHVzIFZpbmNlbnQNCitUYWRkZW8gZGkgQmFydG9sbw0KK1RhZm95YSwgTWFyZ2FyZXQNCitUYWlsZmVhdGhlcnMsIEdlcmFsZA0KK1RhaWxsYXNzb24sIEplYW4tSm9zZXBoDQorVGFpdCwgQWduZXMNCitUYWthZXp1LCBUb3NoaWtvDQorVGFrYWhhc2hpLCBSaWtpbw0KK1RhbGJvdCwgVG9tDQorVGFsYm90LCBXaWxsaWFtIEhlbnJ5IEZveA0KK1RhbC1Db2F0LCBQaWVycmUNCitUYWxpcnVuaWxpLCBKb2UNCitUYWxwaW5vLCBFbmVhDQorVGFtYXlvLCBSdWZpbm8NCitUYW1vdHp1LCBDaHV6bw0KK1RhbmFiZSwgVGFrYW8NCitUYW5nIE11bGkNCitUYW5nIFlpaGUNCitUYW5nIFlpbg0KK1RhbmcgWWluZ3dlaQ0KK1Rhbmd1eSwgWXZlcw0KK1Rhbm5lciwgQmVuamFtaW4NCitUYW5uZXIsIEhlbnJ5IE9zc2F3YQ0KK1Rhbm5lciwgSi5HLg0KK1Rhbm5pbmcsIERvcm90aGVhDQorVGFuc2V5LCBNYXJrDQorVGFuemlvIGRhIFZhcmFsbG8NCitUJ2FvIENoJ2VuZw0KK1RhbyBZdWFucWluZw0KK1TDoHBpZXMsIEFudG9uaQ0KK1RhcGllcywgTW9kZXN0DQorVGFyYXZhbCwgSHVnaGVzDQorVGFyYXZhbCwgTG91aXMgR3VzdGF2ZQ0KK1RhcmJlbGwsIEVkbXVuZCBDaGFybGVzDQorVGFzc2FlcnQsIEplYW4tUGllcnJlLUFudG9pbmUNCitUYXNzYWVydCwgUGhpbGlwcGUgSm9zZXBoDQorVGF0YWZpb3JlLCBHdWlkbw0KK1RhdW5heSwgTmljb2xhcy1BbnRvaW5lDQorVGF2ZXJuYXJpLCBWaXR0b3Jpbw0KK1RhdmVybmVyLCBXaWxsaWFtDQorVGF2ZXJuaWVyLCBKdWxlcw0KK1Rhd2FyYXlhIFNvdGF0c3UNCitUYXlsZXIsIEFsYmVydCBDaGV2YWxsaWVyDQorVGF5bG9yLCBBbm5hIEhleXdhcmQNCitUYXlsb3IsIEpvaG4gVy4NCitUYXlsb3IsIFByZW50aXNzDQorVGF5bG9yLCBSaWNoYXJkDQorVGF5bG9yLCBXZXMNCitUYXlsb3ItTGluZG9lLCBDYXJyb2xsDQorVGNoZWxpdGNoZXcsIFBhdmVsDQorVGVlcmxpbmUsIExldmluYQ0KK1RlaWNoZXJ0LCBNaW5lcnZhDQorVGVpeGVpcmEgZGUgTWF0dG9zLCBKb3NlcGgNCitUZW1wZWwsIEFicmFoYW0gdmFuIGRlbg0KK1RlbXBsZXRvbiwgUm9iZXJ0DQorVGVuZXJhbmksIFBpZXRybw0KK1RlbmcgSGlvayBDaGl1DQorVGVuZ25hZ2VsLCBKYW4NCitUZW5pZXJzIHRoZSBZb3VuZ2VyLCBEYXZpZA0KK1Rlbm5pZWwsIFNpciBKb2huDQorVGVueXUgU2hva2VpDQorVGVyYm9yY2gsIEdlcmFyZA0KK1RlcmJydWdnaGVuLCBIZW5kcmljaw0KK1RlcnJlbGwsIEVsaXphYmV0aA0KK1Rlc2ksIE1hdXJvIEFudG9uaW8NCitUZXN0YSwgUGlldHJvDQorVGV1cGtlbiBTci4sIEQuQS4NCitUaGFuLCBNw7NyDQorVGhheWVyLCBBYmJvdHQgSGFuZGVyc29uDQorVGhlZWQsIFdpbGxpYW0NCitUaMOpb2RvbiwgSmVhbiBCYXB0aXN0ZQ0KK1RoZW9waGFuZXMgdGhlIEdyZWVrDQorVGhlcmJ1c2NoLCBBbm5hIERvcm90aGVhDQorVGhlcmllbiwgUm9iZXJ0DQorVGhldXMsIEplcmVtaWFoDQorVGhpZWJhdWQsIFdheW5lDQorVGhpZWxlIElJLCBKb2hhbm4gRnJpZWRyaWNoIEFsZXhhbmRlcg0KK1RoaWVsZW4sIEphbiBQaGlsaXBzIHZhbg0KK1RoaWVtZSwgQW50aG9ueQ0KK1RoaWVycnksIEplYW4NCitUaGllc3NlbiwgTGVvbmFyZA0KK1Rob21hcywgQWxtYQ0KK1Rob21hcywgSmFtZXMgSGF2YXJkDQorVGhvbXBzb24sIEJlbmphbWluDQorVGhvbXBzb24sIEJvYg0KK1Rob21wc29uLCBSaWNoYXJkIEVhcmwNCitUaG9tcHNvbiwgV2lsZnJlZA0KK1Rob21wc29uLCBXb3Jkc3dvcnRoDQorVGhvbXNvbiwgQWxmcmVkIFJlZ2luYWxkDQorVGhvbXNvbiwgUmV2LiBKb2huDQorVGhvbXNvbiwgVG9tDQorVGhvbiwgV2lsbGlhbQ0KK1Rob3JuaGlsbCwgU2lyIEphbWVzDQorVGhvcm55Y3JvZnQsIFNpciBIYW1vDQorVGhvcnZhbGRzZW4sIEJlcnRlbA0KK1RocmFzaCwgRG94DQorVGh1bGRlbiwgVGhlb2Rvb3IgdmFuDQorVGlhbiBTaGlndWFuZw0KK1RpYXJpbmksIEFsZXNzYW5kcm8NCitUaWJhbGRpLCBQZWxsZWdyaW5vDQorVGliYmV0dHMsIEdhcnkNCitUaWNlLCBHZW9yZ2UNCitUaWVuIENoaQ0KK1RpZXBvbG8sIEdpb3Zhbm5pIEJhdHRpc3RhDQorVGllcG9sbywgR2lvdmFubmkgRG9tZW5pY28NCitUaWZmYW55LCBMb3VpcyBDb21mb3J0DQorVGlpc2FsYSwgRWV2YQ0KK1RpbGxlbWFucywgUGV0ZXINCitUaWxsZXJzLCBJbWFudHMNCitUaWxzb24sIEpvZQ0KK1RpbWNoYWssIEdhcnkNCitUaW1tYW5uLCBCaWxsDQorVGluZWxsaSwgVGliZXJpbw0KK1RpbmcsIFdhbGFzc2UNCitUaW5ncXVhDQorVGluZ3VlbHksIEplYW4NCitUaW5vIGRhIENhbWFpbm8NCitUaW5xdWENCitUaW50b3JldHRvDQorVGlyb25pLCBGcmFuY2VzY28NCitUaXNjaGJlaW4sIEpvaGFubiBIZWlucmljaCBXaWxoZWxtDQorVGlzY2hiZWluLCBKb2hhbm4tRnJpZWRyaWNoLUF1Z3VzdA0KK1Rpc3NvdCwgSmFtZXMNCitUaXRpYW4NCitUaXRsZSwgQ2hyaXN0aWFuDQorVG9iZXksIE1hcmsNCitUb2NxdcOpLCBMb3Vpcw0KK1RvZGQsIEphbWVzDQorVG9kZCwgTWljaGFlbA0KK1RvZGVyaSwgR3JhemlhDQorVG9lcHV0LCBMb2Rld3lrDQorVG9nb3JlcyBpIExsYWNoLCBKb3PDqSBkZQ0KK1RvaWtrYSwgT2l2YQ0KK1RvbGVkbywgRnJhbmNpc2NvDQorVG9tZWEsIEZpb3JlbnpvDQorVG9ta2lucywgV2lsbGlhbQ0KK1RvbW1hc28gQ2F6emFuaWdhDQorVG9tb3l1a2ksIFNob2t5dXNhaQ0KK1RvbmdlcmVuLCBIZXJrIFZhbg0KK1Rvbm5hbmNvdXIsIEphY3F1ZXMgRy4gZGUNCitUb29rZXIsIEdlb3JnZQ0KK1Rvb2tvb21lLCBTaW1vbg0KK1Rvb2xlLCBKb2huDQorVG9vbGV5IEpyLiwgSmFtZXMNCitUb29yb3AsIENoYXJsZXkNCitUb29yb3AsIEphbg0KK1RvcGNoZXZza3ksIE1vcnJpcw0KK1RvcG9sc2tpLCBGZWxpa3MNCitUb3JiZXJ0LCBTdGVwaGFuaWUNCitUb3JsYWtzb24sIEphbWVzDQorVG9yb25pLCBOaWVsZQ0KK1RvcnJlbnMsIEJlcm5hcmRvDQorVG9ycmVzLUdhcmPDrWEsIEpvYXF1w61uDQorVG9ycmV0dGksIEdpdXNlcHBlDQorVG9ycmV5LCBIaXJhbSBEd2lnaHQNCitUb3JyaWdpYW5pLCBTZWJhc3RpYW5vDQorVG9ycmlnaWFubywgUGlldHJvDQorVG9zYSwgTWl0c3V5b3NoaQ0KK1Rvc2FuaSwgUGF0cmljaw0KK1Rvc2NhbmksIEdpb3Zhbm5pDQorVG9zaHVzYWkgU2hhcmFrdQ0KK1Rvc2luaSwgTWljaGVsZQ0KK1RvdWxvdXNlLUxhdXRyZWMsIEhlbnJpIGRlDQorVG91cm5pZXIsIE5pY29sYXMNCitUb3VzaWduYW50LCBDbGF1ZGUNCitUb3V0YW50LCBXYWxseQ0KK1Rvd24sIEhhcm9sZA0KK1Rvd25lLCBGcmFuY2lzDQorVG95b2hhcnUsIFV0YWdhd2ENCitUb3lva3VuaQ0KK1RveW9rdW5pIElJLCBVdGFnYXdhDQorVG95b21hc2EsIE5haXRvDQorVHJhaW5pLCBGcmFuY2VzY28NCitUcmF2ZXIsIE1hcmlvbiBHcmF5DQorVHJheWxvciwgQmlsbA0KK1RyZWF0LCBIZW5yeQ0KK1RyZWdvciwgTmlzb24NCitUcmVpbWFuLCBKb3ljZQ0KK1RyZXNoYW0sIEhlbnJ5DQorVHJldmVseWFuLCBKdWxpYW4NCitUcmV2aW5vLCBKZXNzZQ0KK1RyZXZpc2FuaSwgRnJhbmNlc2NvDQorVHJpYm9sbywgTmljY29sbw0KK1RyaW5xdWVzc2UsIExvdWlzIFJvbGxhbmQNCitUcmlxdWV0aSwgSGVucmkgZGUNCitUcmlzdMOhbiBkZSBFc2NhbWlsbGEsIEx1aXMNCitUcm9ja2VsLCBSb3NlbWFyaWUNCitUcm9tYmFkb3JpLCBGcmFuY2VzY28NCitUcm9vc3R3aWprLCBXb3V0ZXIgSm9oYW5uZXMgdmFuDQorVHJvcGluaW4sIFZhc2lsaWkgQW5kcmVldmljaA0KK1Ryb3VpbGxlYmVydCwgUGF1bCBEZXNpcsOpDQorVHJvd2VyLCBXYWx0ZXIgSm9obg0KK1Ryb3ksIEZyYW7Dp29pcyBkZQ0KK1Ryb3ksIEplYW4tRnJhbsOnb2lzIGRlDQorVHJveW9uLCBDb25zdGFudA0KK1RydW1idWxsLCBKb2huDQorVHJ5b24sIER3aWdodCBXLg0KK1RzaWhuYWhqaW5uaWUsIEh1bGxlYWgNCitUc2lyZWgsIEF3YQ0KK1RzdWtpbWFybywgS2l0YWdhd2ENCitUdSwgQmFpeGlvbmcNCitUdWJ5IEksIEplYW4tQmFwdGlzdGUNCitUdWNoZmFyYmVyLCBGcmFuaw0KK1R1Y2tlciwgQWxsZW4NCitUdWNrZXIsIFdpbGxpYW0NCitUdWNrZXJtYW4sIEphbmUNCitUdWRnYXksIEZyZWRlcmlrDQorVHVkZ2F5LCBKb2huDQorVHVkbGlrDQorVHVkb3QsIEVkbW9uZA0KK1R1bGx5LCBTeWRuZXkgU3RyaWNrbGFuZA0KK1R1bm5pY2xpZmZlLCBDaGFybGVzIEZyZWRlcmljaw0KK1R1bm5pbGxpZSwgT3ZpbG9vDQorVHVyYSwgQ29zbcOoDQorVHVyY2hpLCBBbGVzc2FuZHJvDQorVHVybmJ1bGwsIEphbWVzDQorVHVybmJ1bGwsIFdpbGxpYW0NCitUdXJuZXIsIENoYXJsZXMNCitUdXJuZXIsIERhbmllbA0KK1R1cm5lciwgSGVsZW4gTS4NCitUdXJuZXIsIEpvc2VwaCBNYWxsb3JkIFdpbGxpYW0NCitUdXJuZXIsIFJvYmluDQorVHVybmVyLCBXLg0KK1R1cnBpbiBkZSBDcmlzc8OpLCBIZW5yeSBSb2xhbmQgTGFuY2Vsb3QNCitUdXJwaW4gZGUgQ3Jpc3PDqSwgTGFuY2Vsb3QtVGjDqW9kb3JlDQorVHVycmVsbCwgSmFtZXMNCitUdXJ0b24sIE0uDQorVHV4ZW4sIExhdXJpdHMNCitUd2FjaHRtYW4sIEpvaG4gSGVucnkNCitUd2l0dHksIEphbWVzDQorVHdvbWJseSwgQ3kNCitUd29ya292LCBKYWNrDQorVHlsZXIsIEJyYWQNCitUeWxlciwgSmFtZXMgR2FsZQ0KK1VjY2VsbG8sIFBhb2xvDQorVWMtY2hpbiwgQ2hhbmcNCitVY2hpZGEsIEJhcnQNCitVZGFsdHNvdmEsIE5hZGV6aGRhIEFuZHJlZXZuYQ0KK1VkZWxsLCBKYW5pY2UNCitVZGVuLCBMdWNhcyB2YW4NCitVZmVyLCBXYWx0ZXINCitVZ28gRGEgQ2FycGkNCitVZ29saW5vIGRhIFNpZW5hDQorVWhkZSwgRnJpdHogS2FybCBIZXJtYW5uIHZvbg0KK1VobG1hbm4sIEhhbnMNCitVa2VsZXMsIE1pZXJsZSBMYWRlcm1hbg0KK1VraXRhIElra2VpDQorVWxsYmVyZywgS2VudA0KK1VsbHVsYXEsIEp1ZGFzDQorVWxtYW5uLCBEb3Jpcw0KK1VuZGVyd29vZCwgVGhvbWFzIFJpY2hhcmQNCitVbmRlcndvcmxkIFBhaW50ZXIsIFRoZQ0KK1Vua29rdSBUb2dhbg0KK1Vub2xkLCBNYXgNCitVcnVzaGliYXJhLCBZb3NoaWppcm8NCitVc2hha292LCBTaW1vbg0KK1V0YW1hcm8sIEtpdGFnYXdhDQorVXRraW4sIElseWENCitVdHJpbGxvLCBNYXVyaWNlDQorVXdpbnMsIFRob21hcw0KK1V5dHRlbmJyb2VjaywgTW9zZXMgdmFuDQorVmEsIEJhcnJ5IExlDQorVmFjY2FybywgQW5kcmVhDQorVmFjaGVyLCBDaGFybGVzDQorVmFkZGVyLCBMb2Rld2lqayBkZQ0KK1ZhaWwsIEV1Z2VuZSBMYXdyZW5jZQ0KK1ZhaWxsYW50LCBXYWxsZXJhbnQNCitWYWxhZG9uLCBTdXphbm5lDQorVmFsY2tlbmJvcmNoLCBMdWNhcyB2YW4NCitWYWxkYW1icmlubywgRnJhbmNlc2NvIGRpDQorVmFsZMOpcyBMZWFsLCBKdWFuIGRlDQorVmFsZW5jaWVubmVzLCBQaWVycmUtSGVucmkgZGUNCitWYWxlbnp1ZWxhIExsYW5vcywgQWxiZXJ0bw0KK1ZhbGV0LCBKb2FuDQorVmFsbGVqbywgQm9yaXMNCitWYWxsb3R0b24sIEbDqWxpeA0KK1ZhbGxzIFN1YmlyYSwgWGF2aWVyDQorVmFsdGF0LCBMb3Vpcw0KK1ZhbiBBa2VuLCBKb3NlcGgNCitWYW4gQWxzdGluZSwgSm9obg0KK1ZhbiBBc3NlbiwgQmVuZWRpY3QgQW50aG9ueQ0KK3ZhbiBCZWVzdCwgQWxiZXJ0dXMNCit2YW4gQnJ1Z2dlbiwgQ29vc2plDQorVmFuIENsZXZlLCBDb3JuZWlsbGUNCit2YW4gZGUgVmVsZGUgSUlJLCBKYW4gSmFuc3ouDQordmFuIGRlciBTY2hhcmR0LCBKb2hhbiBHcmVnb3INCitWYW4gRGVyemVlLCBKYW1lcw0KK1ZhbiBEeWNrLCBTaXIgQW50aG9ueQ0KK3ZhbiBHb2doLCBWaW5jZW50DQordmFuIEhlZW1za2VyayBJLCBFZ2JlcnQNCit2YW4gSGVlbXNrZXJrIElJSSwgRWdiZXJ0DQorVmFuIEhvZXNlbiwgQmV0aA0KK3ZhbiBIb3ZlLCBIdWJlcnR1cw0KK1ZhbiBMYWFyLCBUaW0NCitWYW4gTGFlciwgQWxleGFuZGVyIFRoZW9iYWxkDQordmFuIExvbywgTG91aXMtTWljaGVsDQorVmFuIE5lc3MsIEJlYXRyaWNlIFcuDQorVmFuIFNvbWVyLCBQYXVsDQordmFuIFNwYWVuZG9uY2ssIENvcm5lbGlzDQordmFuIFN0cnksIEFicmFoYW0NCitWYW5kZXJiYW5rLCBKb2huDQorVmFuZGVybHluLCBKb2huDQorVmFubG9vLCBDYXJsZQ0KK1ZhbmxvbywgQ2hhcmxlcyBBbcOpZMOpZSBQaGlsaXBwZQ0KK1Zhbm5pLCBGcmFuY2VzY28NCitWYW5uaSwgTGlwcG8NCitWYW52aXRlbGxpLCBMdWlnaQ0KK1ZhcmdhcywgQWxiZXJ0bw0KK1ZhcmlhbiwgTGVzdGVyIEUuDQorVmFybGV5LCBDb3JuZWxpdXMNCitWYXJsZXksIEYuSC4NCitWYXJsZXksIEpvaG4NCitWYXJsZXksIFdpbGxpYW0gRmxlZXR3b29kDQorVmFybmVsaXMsIEthenlzDQorVmFybywgUmVtZWRpb3MNCitWYXNhcmVseSwgVmljdG9yDQorVmFzYXJpLCBHaW9yZ2lvDQorVmFzY28gZGUgbGEgWmFyemENCitWYXNuZXRzb3YsIFZpa3RvciBNaWtoYWlsb3ZpY2gNCitWYXNzYWxsZXR0bywgUGlldHJvDQorVmFzc2FsbG8sIEFudG9uaW8gTWFyaWENCitWYXV0aWVyLCBCZW4NCitWw6F6cXVleiBEw61heiwgRGFuaWVsDQorVmViZWxsLCBFZHdhcmQNCitWZWNjaGlhLCBQaWV0cm8gZGVsbGENCitWZWNjaGlldHRhDQorVmVkZGVyLCBFbGlodQ0KK1ZlZG92YSwgRW1pbGlvDQorVmVlcmVuZGFlbCwgTmljb2xhZXMgdmFuDQorVmVsYSwgVmluY2Vuem8NCitWZWxhcmRlLCBQYWJsaXRhDQorVmVsYXNjbyBCZWxhdXN0ZWd1aWdvaXRpYSwgUm9zYXJpbyBkZQ0KK1ZlbGFzY28sIEpvc8OpIE1hcsOtYQ0KK1ZlbMOhenF1ZXosIERpZWdvDQorVmVsZGUgSUksIEphbiB2YW4gZGUNCitWZWxkZSB0aGUgRWxkZXIsIFdpbGxlbSB2YW4gZGUNCitWZWxkZSB0aGUgWW91bmdlciwgV2lsbGVtIHZhbiBkZQ0KK1ZlbGRlLCBBZHJpYWVuIHZhbiBkZQ0KK1ZlbGRlLCBFc2FpYXMgdmFuIGRlDQorVmVubmUsIEFkcmlhZW4gUGlldGVyc3ouIHZhbiBkZQ0KK1ZlbnVzdGksIE1hcmNlbGxvDQorVmVyYmVlY2ssIENvcm5lbGlzDQorVmVyYm9lY2tob3ZlbiwgRXVnw6huZQ0KK1ZlcmJydWdnZW4sIEhlbmRyaWNrIEZyYW5zDQorVmVyYnVyZywgSm9Bbm4NCitWZXJjcnV5c3NlLCBKYW4NCitWZXJlbHN0LCBIYXJtYW4NCitWZXJlbHN0LCBNYXJpYQ0KK1ZlcmVsc3QsIFNpbW9uDQorVmVyaGFlY2h0LCBUb2JpYXMNCitWZXJob2VmLCBUb29uDQorVmVyaHVsc3QsIFJvbWJvdXQNCitWZXJrYWRlLCBKYW4NCitWZXJrb2xqZSwgSmFuDQorVmVybWVlciBJSUksIEphbg0KK1Zlcm1lZXIsIEphbg0KK1Zlcm1leWVuLCBKYW4NCitWZXJuZXIsIEVsaXphYmV0aCBPJ05laWxsDQorVmVybmVyLCBGcmVkZXJpY2sgQS4NCitWZXJuZXQsIENhcmxlDQorVmVybmV0LCBDbGF1ZGUtSm9zZXBoDQorVmVybmV0LCBIb3JhY2UNCitWZXJvbmVzZSwgQm9uaWZhY2lvDQorVmVyb25lc2UsIFBhb2xvDQorVmVycm9jY2hpbywgQW5kcmVhIGRlbA0KK1ZlcnNjaHV1ciwgV291dGVydXMNCitWZXJzcHJvbmNrLCBKYW4gQ29ybmVsaXN6Lg0KK1ZlcnN0ZXIsIEZsb3Jpcw0KK1ZlcnR1ZSwgR2VvcmdlDQorVmVzcGlnbmFuaSwgUmVuem8NCitWaWFuaSwgQWxiZXJ0bw0KK1ZpYmVydCwgSmVoYW4gR2Vvcmdlcw0KK1ZpY2VudGUsIEVzdGViYW4NCitWaWNrcmV5LCBSb2JlcnQNCitWaWN0b3JpYSBNYXJ6LCBTYWx2YWRvcg0KK1ZpY3RvcnMsIEphbg0KK1ZpZW4sIEpvc2VwaCBNYXJpZQ0KK1ZpZXN1bGFzLCBSb21hcw0KK1ZpZ2FybnksIEZlbGlwZQ0KK1ZpZ8OpZS1MZWJydW4sIE1hcmllIExvdWlzZSDDiWxpc2FiZXRoDQorVmlnZWxhbmQsIEd1c3Rhdg0KK1ZpZ25hdWQsIEplYW4NCitWaWxsYSwgQ2xhdWRpbw0KK1ZpbGxhYnJpbGxlIHkgUm9uLCBKdWFuIEFsb25zbw0KK1ZpbGxhbGJhIEZsb3JleiwgRGFyw61vDQorVmlsbGVycywgTWFyaWUtRGVuaXNlDQorVmlsbG9uLCBKYWNxdWVzDQorVmluY2VudCwgRnJhbsOnb2lzLUFuZHLDqQ0KK1ZpbmNlbnpvIGRpIENhdGVuYQ0KK1ZpbmNrYm9vbnMsIERhdmlkDQorVmlubmUsIFZpbmNlbnQgTGF1cmVuc3ogdmFuIGRlcg0KK1ZpbnRvbiwgRnJlZGVyaWNrIFBvcnRlcg0KK1Zpb2xhLCBCaWxsDQorVmlvbGEsIEdpYW4gQmF0dGlzdGENCitWaXNjaGVyIHRoZSBFbGRlciwgUGV0ZXINCitWaXNjaGVyIHRoZSBZb3VuZ2VyLCBQZXRlcg0KK1Zpc2NvbnRpLCBFbGlzZXUNCitWaXNobnlha292LCBJdmFuDQorVmlzc2NoZXIsIENsYWVzIEphbnN6Lg0KK1ZpdGFsZSBkYSBCb2xvZ25hDQorVml0dG9yaWEsIEFsZXNzYW5kcm8NCitWaXR1bGxvLCBTZXNvc3RyaXMNCitWaXZhcmluaSwgQWx2aXNlDQorVml2YXJpbmksIEFudG9uaW8NCitWaXZhcmluaSwgQmFydG9sb21lbw0KK1ZsYW1pbmNrLCBNYXVyaWNlIGRlDQorVmxpZWdlciwgU2ltb24gZGUNCitWbGlldCwgSGVuZHJpayBDb3JuZWxpc3ogdmFuIGRlcg0KK1ZvZXQsIEZlcmRpbmFuZA0KK1ZvZ2VsLCBKb3NlcGgNCitWb2lsbGUsIEplYW4tTG91aXMNCitWb2xhaXJlLCBQaWVycmUtSmFjcXVlcw0KK1ZvbGssIERvdWdsYXMNCitWb2xsLCBGLiBVc2hlciBEZQ0KK1ZvbGxtZXIsIEFkb2xmIEZyaWVkcmljaA0KK1ZvbGxvbiwgQW50b2luZQ0KK1ZvbHRlcnJhLCBEYW5pZWxlIGRhDQordm9uIERlZnJlZ2dlciwgRnJhbnoNCit2b24gSGVya29tZXIsIFNpciBIdWJlcnQNCitWb25jaywgSmFuDQorVm9uZHJvdXMsIEphbiBDLg0KK1Zvbm5vaCwgQmVzc2llIFBvdHRlcg0KK1Zvbm5vaCwgUm9iZXJ0DQorVm9yc3Rlcm1hbiB0aGUgRWxkZXIsIEx1Y2FzDQorVm9zLCBDb3JuZWxpcyBkZQ0KK1ZvcywgTWFydGluIGRlDQorVm9zLCBTaW1vbiBkZQ0KK1Zvc21hZXIsIERhbmllbA0KK1Zvc3MsIFBhdWwNCitWb3VldCwgQXViaW4NCitWb3VldCwgU2ltb24NCitWb3Vsa29zLCBQZXRlcg0KK1ZyYW5jeCwgQmFzdGlhZW4NCitWcmFua2VuLCBEdXRjaA0KK1ZyZWRlbWFuIGRlIFZyaWVzLCBIYW5zDQorVnJlbCwgSmFjb2J1cw0KK1ZyZWxhbnQsIFdpbGxlbQ0KK1ZyaWVzLCBBYnJhaGFtIGRlDQorVnJpZXMsIEFkcmlhZW4gZGUNCitWcm9vbSwgQ29ybmVsaXMNCitWcm9vbSwgSGVuZHJpY2sgQ29ybmVsaXN6Lg0KK1ZydWJlbCwgTWlraGFpbA0KK1Z1aWxsYXJkLCDDiWRvdWFyZA0KK1Z1b2x2aW5pbw0KK1dhY2h0ZWwsIEVsbWVyDQorV2FjaHRlbCwgTWFyaW9uIEthdmFuYXVnaA0KK1dhZGRlbGwsIFRlZA0KK1dhZGRlbGwsIFRoZW9kb3JlIEouDQorV2FkbGVpZ2gsIFBldGUNCitXYWRzd29ydGgsIEVkd2FyZA0KK1dhZ2VzLCBCb2INCitXYWdndW5vDQorV2FnbmVyLCBPdHRvDQorV2FpbndyaWdodCwgSm9obg0KK1dhaXRlLCBFbWlseSBCdXJsaW5nDQorV2FrZWxpbiwgUm9sYW5kDQorV2FsZG3DvGxsZXIsIEZlcmRpbmFuZCBHZW9yZw0KK1dhbGRvLCBTYW11ZWwgTG92ZXR0DQorV2FsZG9ycCwgQW50b25pZQ0KK1dhbGUsIFNhbXVlbA0KK1dhbGVzLCBLaXR0eQ0KK1dhbGtlciwgQW50aG9ueQ0KK1dhbGtlciwgRG91Z2xhcw0KK1dhbGtlciwgRnJlZGVyaWNrDQorV2Fsa2VyLCBLYXJhDQorV2Fsa2VyLCBXaWxsaWFtIEEuDQorV2Fsa2xleSwgUGV0ZXINCitXYWxrb3dpdHosIEFicmFoYW0NCitXYWxsLCBCcmlhbg0KK1dhbGwsIEplZmYNCitXYWxsLCBXaWxsaWFtIEFsbGVuDQorV2FsbCwgV2lsbGlhbSBHdXkNCitXYWxsYWNlLCBJYW4NCitXYWxsYWNlLCBKLiBMYXVyaWUNCitXYWxsaXMsIEhlbnJ5DQorV2FsdGVyLCBNYXJ0aGENCitXYWx0ZXJzLCBNaWxlcw0KK1dhbHRlcnMsIFNhbXVlbA0KK1dhbHRvbiwgRWR3YXJkIEFydGh1cg0KK1dhbHRvbiwgSGVucnkNCitXYWx0b24sIEpvaG4gV2hpdGVoZWFkDQorV2FsdHJvdXMsIEhhcnJ5IFdpbHNvbg0KK1dhbmcgQ2h1bmppZQ0KK1dhbmcgRG9uZ2xpbmcNCitXYW5nIEdleWkNCitXYW5nIEh1YWlxaW5nDQorV2FuZyBIdWkNCitXYW5nIEppcWlhbiAoQy5DLiBXYW5nKQ0KK1dhbmcgTWVuZ3FpDQorV2FuZyBTaGVuZ2xpZQ0KK1dhbmcgV2VuDQorV2FuZyBXdXhpZSAoV3VjaXVzIFdvbmcpDQorV2FuZyBYdWV0YW8NCitXYW5nIFlpbmdjaHVuDQorV2FuZyBZdWFuZ2kNCitXYW5nIFl1bg0KK1dhbmcgWmhlbg0KK1dhbmdlcnNreSwgQmFyYmFyYSBQcmF0dA0KK1dhcHBlcnMsIEd1c3RhdmUNCitXYXJkLCBFZHdhcmQgTWF0dGhldw0KK1dhcmQsIEphbWVzDQorV2FyZCwgSm9obiBRdWluY3kgQWRhbXMNCitXYXJkLCBMZXNsaWUNCitXYXJkbGUsIEFydGh1cg0KK1dhcmhvbCwgQW5keQ0KK1dhcmxvdywgSGVyYmVydCBHb3Jkb24NCitXYXJuZXIsIEV2ZXJldHQNCitXYXJuZXIsIE9saW4gTGV2aQ0KK1dhcnJlbiwgSGVucnkNCitXYXJzYWdlciwgSHltYW4NCitXYXJzaGF3c2t5LCBBYnJhaGFtIEcuDQorV2FzZXIsIEFubmENCitXYXNoaW5ndG9uLCBFbGl6YWJldGggRmlzaGVyDQorV2FzaGluZ3RvbiwgVGltb3RoeQ0KK1dhdGFuYWJlIEthemFuDQorV2F0YW5hYmUgU2hpa28NCitXYXRhbmFiZSwgU2FkYW8NCitXYXRlcmhvdXNlLCBKb2huIFdpbGxpYW0NCitXYXRlcmxvbywgQW50aG9uaWUNCitXYXRlcmxvdywgU2lyIEVybmVzdCBBbGJlcnQNCitXYXRlcnMsIEhlcmJlcnQgT2dkZW4NCitXYXRlcnMsIFN1c2FuIEMuDQorV2F0a2lucywgQ2FybGV0b24NCitXYXRzb24sIEhvbWVyDQorV2F0dCwgQWxpc29uDQorV2F0dGVhdSwgSmVhbi1BbnRvaW5lDQorV2F0dGxlcywgVmlyZ2luaWENCitXYXR0cywgR2VvcmdlIEZyZWRlcmljDQorV2F1Z2gsIEZyZWRlcmljayBKdWRkDQorV2F1dGVycywgRW1pbGUNCitXYXksIFRob21hcyBSb2JlcnQNCitXZWFyaW5nLCBHaWxsaWFuDQorV2VhdmVyLCBSb2JlcnQNCitXZWF2ZXIsIFRob21hcw0KK1dlYmIsIEphbWVzDQorV2ViYiwgVG9kZA0KK1dlYmVyLCBDaHJpcw0KK1dlYmVyLCBJZGVsbGUNCitXZWJlciwgSm9obiBQaXRtYW4NCitXZWJlciwgTWF4DQorV2Vic3RlciwgTWVnDQorV2Vic3RlciwgVGhvbWFzDQorV2VlZ2VlDQorV2Vla2VzLCBIZW5yeQ0KK1dlZWtzLCBKYW1lcw0KK1dlZW1zLCBDYXJyaWUgTWFlDQorV2Vlbml4IElJLCBKYW4NCitXZWVuaXgsIEphbiBCYXB0aXN0DQorV2VlcnRzLCBKZWFuLUpvc2VwaA0KK1dlZ2dlbGFuZCwgVGVycnkNCitXZWdtYW4sIFdpbGxpYW0NCitXZWd1ZWxpbiwgSm9obiBSZWluaGFyZA0KK1dlaSBKaW5nc2hhbg0KK1dlaSBKaXVkaW5nDQorV2VpbmJlcmcsIEVtaWxpZSBTaWV2ZXJ0DQorV2VpbmVyLCBMYXdyZW5jZQ0KK1dlaXIsIEp1bGlhbiBBbGRlbg0KK1dlaXIsIFJvYmVydCBXLg0KK1dlaXJvdHRlciwgRnJhbnogRWRtdW5kDQorV2Vpc2Jyb2QsIENhcmwgV2lsaGVsbQ0KK1dlaXNzLCBEYXZpZA0KK1dlaXNzZW5icnVjaCwgSmFuDQorV2Vpc3NlbmJydWNoLCBKb2hhbiBIZW5kcmlrDQorV2Vpc3NtYW4sIEJhcnJ5DQorV2Vpc3dlaWxlciwgQWRhbQ0KK1dlbGNoLCBEZW50b24NCitXZWxsZXIsIFBhdWwNCitXZWxsaXZlciwgTmVpbA0KK1dlbGxzLCBIZW5yeSBUYW53b3J0aA0KK1dlbGxzLCBKb2FubmEgTWFyeQ0KK1dlbGxzLCBMeW50b24NCitXZWx0aSwgQWxiZXJ0DQorV2VuIEJhbw0KK1dlbiBMb3UNCitXZW4gWmhlbmdtaW5nDQorV2VuIFpoZW5taW5nDQorV2VuY2ssIEVybnN0DQorV2VuZGVsLCBUaGVvZG9yZQ0KK1dlbmRvcmYsIEppbQ0KK1dlbmR0LCBXaWxsaWFtDQorV2VuZ2Vucm90aCwgU3Rvdw0KK1dlbnplbCB2b24gT2xtdXR6DQorV2VyZmYsIEFkcmlhZW4gdmFuIGRlcg0KK1dlcm5lciwgQmV0dGluYQ0KK1dlcnRoZWltLCBHYXJ5DQorV2VydGluZ2VyLCBIYW5zDQorV2VydG3DvGxsZXIsIEFkb2xmLVVscmlrDQorV2Vzc2VsLCBCZXNzaWUgSG9vdmVyDQorV2Vzc2VsLCBIZXJtYW4gSC4NCitXZXNzZWxtYW5uLCBUb20NCitXZXN0LCBCZW5qYW1pbg0KK1dlc3QsIEJlbmphbWluIEZyYW5rbGluDQorV2VzdGFsbCwgUmljaGFyZA0KK1dlc3RtYWNvdHQsIEphbWVzIFNoZXJ3b29kDQorV2VzdG9uLCBFZHdhcmQNCitXZXQsIEphY29iIGRlDQorV2V5ZGVuLCBSb2dpZXIgdmFuIGRlcg0KK1dleWVyLCBIZXJtYW5uDQorV2hhbGUsIFJvYmVydCBSLg0KK1doYXJuY2xpZmZlLCBMYWR5DQorV2hlYXRsZXksIENsYXJhDQorV2hlYXRsZXksIEZyYW5jaXMNCitXaGVlbGVyLCBTdGV2ZQ0KK1doZWVsd3JpZ2h0LCBKb3NlcGgNCitXaGVlbHdyaWdodCwgUm9sYW5kDQorV2hldHN0b25lLCBEYW4NCitXaGlzdGxlciwgSmFtZXMgTWNOZWlsbA0KK1doaXRlIDE3NzMtMTc5NCwgQ2hhcmxlcw0KK1doaXRlLCBDaGFybGVzIFdpbGJlcnQNCitXaGl0ZSwgUmFuZHkgTGVlDQorV2hpdGUsIFJvYmVydA0KK1doaXRlaGVhZCwgRnJhbmNlcw0KK1doaXRlbGV5LCBCcmV0dA0KK1doaXRlbWFuLCBFcm5lc3QNCitXaGl0ZXJlYWQsIFJhY2hlbA0KK1doaXRuZXksIEFubmUNCitXaGl0dGxlLCBDaGFybGVzDQorV2hpdHRyZWRnZSwgVGhvbWFzIFdvcnRoaW5ndG9uDQorV2ljYXIsIEplYW4tQmFwdGlzdGUgSm9zZXBoDQorV2lja3MsIE1hcnkNCitXaWVsYW5kLCBKb3ljZQ0KK1dpZW5lciwgUGh5bGxpcw0KK1dpZXJpbmdlbiwgQ29ybmVsaXMgQ2xhZXN6LiB2YW4NCitXaWVydHosIEFudG9pbmUNCitXaWdnaW5zLCBHdXkNCitXaWxiZXIsIEplc3NpZQ0KK1dpbGJlcnQsIFJvYmVydA0KK1dpbGNveCwgTGVzbGllDQorV2lsZGluZywgQWxpc29uDQorV2lsZG1hbiwgSm9obiBSLg0KK1dpbGR0LCBBZG9sZm8NCitXaWxlcywgSXJ2aW5nIFIuDQorV2lsZXksIFdpbGxpYW0NCitXaWxpZ2VsbW8NCitXaWxrZSwgSGFubmFoDQorV2lsa2llLCBSb2JlcnQNCitXaWxraWUsIFNpciBEYXZpZA0KK1dpbGtpbnMsIE1pa2UNCitXaWxsYWVydHMsIEFicmFoYW0NCitXaWxsYXJkLCBBcmNoaWJhbGQgTS4NCitXaWxsZXRzLCBSb2JlcnQNCitXaWxsaWFtcywgQXJjaA0KK1dpbGxpYW1zLCBGcmVkDQorV2lsbGlhbXMsIEh1Z2ggV2lsbGlhbQ0KK1dpbGxpYW1zLCBLZWl0aCBTaGF3DQorV2lsbGlhbXMsIE1hcmdhcmV0IExpbmRzYXkNCitXaWxsaWFtcywgUGF1bGluZSBCbGlzcw0KK1dpbGxpYW1zLCBSb2QNCitXaWxsaWFtcywgV2lsbGlhbQ0KK1dpbGxpYW1zb24sIERhbmllbCBBbGV4YW5kZXINCitXaWxsaW5rLCBDYXJlbA0KK1dpbGxtYW5uLCBNaWNoYWVsIEx1a2FzIExlb3BvbGQNCitXaWxsb3VnaGJ5LCBSb2JlcnQNCitXaWxscywgV2lsbGlhbSBHb3JtYW4NCitXaWxsc29uLCBCYXJiYXJhDQorV2lsbHNvbiwgTWFyeSBBbm4NCitXaWxzb24sIEFuZHJldw0KK1dpbHNvbiwgQmVuamFtaW4NCitXaWxzb24sIENoYXJsZXMgSi5BLg0KK1dpbHNvbiwgR2VvcmdlIFdhc2hpbmd0b24NCitXaWxzb24sIEpvaG4NCitXaWxzb24sIFJpY2hhcmQNCitXaWxzb24sIFdpbGxpYW0gQS4NCitXaWx0b24sIEpvc2VwaA0KK1dpbWFyLCBDaGFybGVzDQorV2luZHVzLCBXaWxsaWFtIExpbmRzYXkNCitXaW5lZ2FyLCBBbm5hDQorV2lua2xlciwgSm9obiBXLg0KK1dpbm9ncmFuZCwgR2FycnkNCitXaW5zb3IsIEphY2tpZQ0KK1dpbnN0YW5sZXksIFdpbGxpYW0NCitXaW50ZXIsIEZyaWVkcmljaA0KK1dpbnRlciwgR2VvcmdlDQorV2ludGVyaGFsdGVyLCBGcmFueiBYYXZpZXINCitXaW50ZXJoYWx0ZXIsIEhlcm1hbm4NCitXaW50ZXJzLCBUZXJyeQ0KK1dpbnRvdXIsIEpvaG4gQ3Jhd2ZvcmQNCitXaXJzdW0sIEthcmwNCitXaXJ0IHZvbiBXaWwsIE5pY29sYXVzDQorV2lydHosIFJvYmVydA0KK1dpdCwgSmFjb2IgZGUNCitXaXRoZXJpbmd0b24sIFdpbGxpYW0gRnJlZGVyaWNrDQorV2l0a2lld2ljeiwgU3RhbmlzbGF3IElnbmFjeQ0KK1dpdGtpbiwgSXNhYWMNCitXaXRraW4sIEplcm9tZSBQYXVsDQorV2l0dGUsIEVtYW51ZWwgZGUNCitXaXR0ZWwsIEdhc3BhciB2YW4NCitXaXR6LCBDb25yYWQNCitXbyBaaGENCitXb2Vocm1hbiwgUmFscGgNCitXb2ljZXNrZSwgUm9uYXUgV2lsbGlhbQ0KK1dvanRraWV3aWN6LCBXaXRvbGQNCitXb2xmLCBIZW5yeQ0KK1dvbGZlLCBNZXllcg0KK1dvbGZlLCBSdXRoIE1pdGNoZWxsDQorV29sZmZvcnQsIEFydHVzDQorV8O2bGZsaSwgQWRvbGYNCitXb2xmcmFtLCBXaWxsaWFtDQorV29sbGFzdG9uLCBKb2huDQorV29sbGhlaW0sIEdlcnQNCitXb29kLCBDaHJpc3RvcGhlcg0KK1dvb2QsIEVsaXphYmV0aCBXeW4NCitXb29kLCBFbGxhIE1pcnJpYW0NCitXb29kLCBHcmFudA0KK1dvb2QsIEpvaG4NCitXb29kLCBUaG9tYXMgV2F0ZXJtYW4NCitXb29kYnVyeSwgQ2hhcmxlcyBIZXJiZXJ0DQorV29vZHJ1ZmYsIEhhbGUNCitXb29kcywgSmFuDQorV29vZHZpbGxlLCBSaWNoYXJkIENhdG9uDQorV29vZHdhcmQsIEdlb3JnZSBNb250YXJkDQorV29vZHdhcmQsIEpvaG4gRG91Z2xhcw0KK1dvb2R3YXJkLCBNYWJlbCBNYXkNCitXb29kd2FyZCwgU3RhbmxleSBXaW5nYXRlDQorV29vZHdhcmQsIFRob21hcw0KK1dvby1oZWUsIENoYQ0KK1dvb2stS3l1bmcsIENob2kNCitXb29sLCBDaHJpc3RvcGhlcg0KK1dvb2xzZXksIENsYXJlbmNlDQorV29vbHNleSwgR3JhY2UNCitXb290dG9uLCBKb2huDQorV29yZXMsIFRoZW9kb3JlDQorV29ybGlkZ2UsIFRob21hcw0KK1dvdHJ1YmEsIEZyaXR6DQorV291dGVycywgUmlrDQorV291d2VybWFuLCBQaGlsaXBzDQorV3JlbiwgU2lyIENocmlzdG9waGVyDQorV3Jlbm4sIENoYXJsZXMNCitXcmlnaHQgb2YgRGVyYnksIEpvc2VwaA0KK1dyaWdodCwgQXV0aW4NCitXcmlnaHQsIERvbg0KK1dyaWdodCwgRnJhbmsgTGxveWQNCitXcmlnaHQsIEphbWVzIEhlbnJ5DQorV3JpZ2h0LCBKb2huIE1pY2hhZWwNCitXcmlnaHQsIFJlZG1vbmQgU3RlcGhlbnMNCitXcmluY2gsIE1hcnkNCitXdGV3YWVsLCBKb2FjaGltIEFudG9uaXN6Lg0KK1d1IEJpZHVhbg0KK1d1IENoYW5nc2hpDQorV3UgQ2hhbmdzaHVvDQorV3UgR3Vhbnpob25nDQorV3UgSHVmYW4NCitXdSBKaWF5b3UNCitXdSBKaW5ndGluZw0KK1d1IExpDQorV3UgWnVvcmVuDQorV3VqY2lrLCBUaGVvDQorV3VydHpidXJnZXIsIFNraXANCitXdXJ6ZWxiYXVlciwgQmVuZWRpa3QNCitXdXRreSwgTWljaGFlbA0KK1d5YW50LCBBbGV4YW5kZXIgSGVsd2lnDQorV3ljaywgSmFuDQorV3ljaywgVGhvbWFzDQorV3lldGgsIEFuZHJldw0KK1d5ZXRoLCBIZW5yaWV0dGUNCitXeWV0aCwgSmFtaWUNCitXeWV0aCwgTi5DLg0KK1d5bmFudHMsIEphbg0KK1d5b24sIEVkd2FyZCBXaWxsaWFtDQorV3lzZSwgQWxleA0KK1hlbm9waGFudG9zDQorWGlhIEd1aQ0KK1hpYW8gSGFpY2h1bg0KK1hpYW8gWXVuY29uZw0KK1h1IEJlaWhvbmcNCitYdSBEYW9uaW5nDQorWHUgTGVpDQorWHUgTGVsZQ0KK1h1LCBHdW8NCitYdWd1DQorWWEgTWluZw0KK1lhbiBIYW4NCitZYW4gSHVpDQorWWFuIExpYmVuDQorWcOhw7FleiwgRmVybmFuZG8NCitZYW5nIEppbmdzaGVuZw0KK1lhbmcgS2V3dQ0KK1lhbmcgS2V5YW5nDQorWWFuZyBMaXpob3UNCitZYW5nIE5hd2VpDQorWWFuZyBTaGFuc2hlbg0KK1lhbmcgWW9uZw0KK1lhbmcgWmhpZ3VhbmcNCitZZSBNaW5yZW4NCitZZWFtZXMsIFdpbGxpYW0gRnJlZGVyaWNrDQorWWVhdHMsIEphY2sgQi4NCitZZWdnc3RlciANCitZZWxsYW5kLCBSYXltb25kDQorWWluIFJvbmdzaGVuZw0KK1lrZW5zLCBGcmFuw6dvaXMNCitZb25nLVlvcCwgSHdhbmcNCitZb3JrZSwgV2lsbGlhbSBHLg0KK1lvcmtlLCBXaWxsaWFtIEhvd2FyZA0KK1lvc2EgQnVzb24NCitZb3NoaWRhLCBIaXJvc2hpDQorWW9zaGl0YWtpLCBOYWthaQ0KK1lvc2hpdG9yYSwgVXRhZ2F3YQ0KK1lvc2hpdG9zaGksIFRzdWtpb2thDQorWW9zaGl0c3V5YSBJLCBJY2hpZWlzYWkNCitZb3NoaXl1a2ksIFJha2tha2VuDQorWW91bmcsIEJsYW1pcmUNCitZb3VuZywgQnJlbnQgS2VlDQorWW91bmcsIE1haG9ucmkgTWFjaW50b3NoDQorWW91bmcsIFN0ZXBoZW4gU2NvdHQNCitZb3VuZy1saW0sIENob2kNCitZb3VuZy1zb28sIFNvbmcNCitZb3VxdWENCitZb3VzZSwgR2F5DQorWXBoYW50aXMsIEdlb3JnZQ0KK1l1IEJlbg0KK1l1IFlvdXJlbg0KK1l1biBHZQ0KK1l1biBTaG91cGluZw0KK1l1bmtlcnMsIEFkamENCitaYWJhbGV0YSBGdWVudGVzLCBSYWZhZWwNCitaYWdhbmVsbGksIEZyYW5jZXNjbw0KK1phaXMsIEdpdXNlcHBlDQorWmFrLCBFdWfDqG5lDQorWmFrYW5pdGNoLCBSb2JlcnQNCitaYWxjZSwgQWxmcmVkbw0KK1phbmd1aWRpLCBKYWNvcG8NCitaYW8gV291LWtpDQorWmFyaXRza3ksIFlvc3NlZg0KK1rDoXJyYWdhLCBBbmdlbA0KK1plaG5hY2tlciwgUnVzcw0KK1plbGlmZiwgQW16aSBFbW1vbnMNCitaZW5hbGUsIEJlcm5hcmRpbm8NCitaZW5nIE1pDQorWmVudHosIFBhdHJpY2sNCitaZXJiZSwgS2FybA0KK1plc2hpbiwgU2hpYmF0YQ0KK1poYSBTaGliaWFvDQorWmhhbiBKaWFuanVuDQorWmhhbmcgRGFxaWFuDQorWmhhbmcgRGF6aHVhbmcNCitaaGFuZyBIb25nDQorWmhhbmcgSHVpDQorWmhhbmcgV2FuZw0KK1poYW5nIFlpDQorWmhhbyBDaHVuZ3hpYW5nDQorWmhhbyBTaG91DQorWmhhbyBZYW5uaWFuDQorWmhhbyBaaGlxaWFuDQorWmhhbyBaaGlxdWFuDQorWmhlbmcgR3VvZ3UNCitaaGVuZyBXdQ0KK1poZW5nIFd1Y2hhbmcNCitaaG9uZyBXZWlzaGVuZw0KK1pob3UgQ2hhbmdqaWFuZw0KK1pob3UgTHV5dW4NCitaaG91IFNodXFpYW8NCitaaG91IFNpY29uZw0KK1podSBEYQ0KK1podSBRaXpoYW4NCitaaHUgUnVpDQorWmh1IFhpbmdodWENCitaaWVtLCBGw6lsaXgNCitaaW5nZywgQWRyaWFuDQorWml2ZXJpLCBBbGJlcnRvDQorWm9iZXJuaWcsIEhlaW1vDQorWm9mZmFueSwgSm9oYW5uDQorWm9wcG8sIE1hcmNvDQorWm9yYWNoLCBNYXJndWVyaXRlIFRob21wc29uDQorWm9yYWNoLCBXaWxsaWFtDQorWm9yaW8sIEdpbGJlcnRvDQorWm9ybiwgQW5kZXJzDQorWm94LCBMYXJyeQ0KK1p1Y2NhcmVsbGksIEZyYW5jZXNjbw0KK1p1Y2Nhcm8sIEZlZGVyaWNvDQorWnVjY2FybywgVGFkZGVvDQorWnVjY2hpLCBBbnRvbmlvDQorWnVjY2hpLCBKYWNvcG8NCitadWNrZXIsIEpvZQ0KK1p1Z25vLCBGcmFuY2VzY28NCitadWxvYWdhLCBJZ25hY2lvDQorWsO8bmR0LCBNYXRoaWFzDQorWsO6w7FpZ2EsIEZyYW5jaXNjbw0KK1p1cmF3c2tpLCBOb3JtDQorWnVyYmFyw6FuLCBGcmFuY2lzY28gZGUNCitadXJiYXLDoW4sIEp1YW4gZGUNCitaw7xybiwgTWljaGFlbA0KK1p5bnNreSwgVG9vdHMNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5Zjg3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19SdXNzaWFuLnR4dApAQCAtMCwwICsxLDEzMTAgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor0JvRg9C60LDRiNC10LIsINCY0LPQvtGA0Ywg0JvRjNCy0L7QstC40YcNCitD0LXQvNC10L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCc0LDQs9C+0LzQtdC00L7QstC40YcNCivQm9GD0LrQsNGI0LXQvdC60L4sINCQ0LvQtdC60YHQsNC90LTRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JDQsdCw0LvQutC40L0sINCb0LXQvtC90LjQtCDQmNCy0LDQvdC+0LLQuNGHDQor0JvRg9C60LDRiNC10L3QutC+LCDQlNC80LjRgtGA0LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQkNCx0LTRg9C70LDRgtC40L/QvtCyLCDQoNCw0LzQsNC30LDQvSDQk9Cw0LTQttC40LzRg9GA0LDQtNC+0LLQuNGHDQor0JvRg9C60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JDQsdC00YPQu9Cx0LDRgdC40YDQvtCyLCDQnNCw0LPQvtC80LXQtNGC0LDQs9C40YAg0JzQtdC00LbQuNC00L7QstC40YcNCivQm9GD0LrRjNGP0L3QtdC90LrQviwg0KLQsNGC0YzRj9C90LAg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0L3QsA0KK9CQ0LHQtdC70YzRhtC10LIsINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0YPQutGM0Y/QvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0LHRgNCw0LzQtdC90LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0YPQutGM0Y/QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNCx0YDQsNC80L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cb0YPQvdGC0L7QstGB0LrQuNC5LCDQk9C10L7RgNCz0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JDQsdGA0LDQvNC+0LLQuNGHLCDQoNC+0LzQsNC9INCQ0YDQutCw0LTRjNC10LLQuNGHDQor0JvRg9GF0LzQsNC90L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JXQstCz0LXQvdGM0LXQstC40YcNCivQkNCy0LDQu9C40LDQvdC4LCDQotC10LnQvNGD0YDQsNC3INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JvRg9GH0LjQvSwg0JLQuNC60YLQvtGAINCe0YHQuNC/0L7QstC40YcNCivQkNCy0LDQu9C40YjQstC40LvQuCwg0JPRg9GA0LDQvNC4INCU0LbQtdC80LDQu9C+0LLQuNGHDQor0JvRi9C20LjQvSwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkNCy0LTQtdC10LIsINCS0LDQu9C10YDQuNC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Cb0YvQvNCw0YDRjCwg0JvRjtCx0L7QstGMINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0JvRi9GB0LXQvdC60L4sINCQ0L3QsNGC0L7Qu9C40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CQ0LLQtdC9LCDQn9C10YLRgCDQntC70LXQs9C+0LLQuNGHDQor0JvRi9GB0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNCy0LXRgNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JvRi9GB0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JvRi9GH0LDQutC+0LIsINCQ0L3QtNGA0LXQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JDQs9Cw0L/QvtCyLCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cb0Y7QsdC40LzRhtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkNCz0LDQv9C+0LLQsCwg0JXQu9C10L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cb0Y/RiNC60L4sINCu0YDQuNC5INCT0LDQstGA0LjQu9C+0LLQuNGHDQor0JDQs9Cw0YTQvtC90L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cc0LDQstGA0L7QtNC4LCDQodC10YDQs9C10Lkg0J/QsNC90YLQtdC70LXQtdCy0LjRhw0KK9CQ0LPQsNGE0L7QvdC+0LIsINCV0LPQvtGAINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cc0LDQs9C+0LzQtdC00L7Qsiwg0JzQsNCz0L7QvNC10LTQsNC70Lgg0JzQsNCz0L7QvNC10LTQvtCy0LjRhw0KK9CQ0LPQtdC10LLQsCwg0JvRjtCx0L7QstGMINCQ0L3QsNGC0L7Qu9GM0LXQstC90LANCivQnNCw0LPQvtC80LXQtNC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQrtC90YPRgdC+0LLQuNGHDQor0JDQtNCw0LzQuNGI0LjQvSwg0JDQvdCw0YLQvtC70LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cc0LDQt9GD0YAsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CQ0LTQsNC80L7Qsiwg0JXQstCz0LXQvdC40Lkg0J7Qu9C10LPQvtCy0LjRhw0KK9Cc0LDQudC+0YDQvtCyLCDQm9C10L7QvdC40LQg0KHQtdGA0LPQtdC10LLQuNGHDQor0JzQsNC60LDRgNC+0LIsINCQ0L3QtNGA0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cc0LDQutCw0YjQvtCyLCDQkNC70YzQsdC10YDRgiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CQ0LrRgdC10L3QtdC90LrQviwg0J3QuNC60L7Qu9Cw0Lkg0JXQvNC10LvRjNGP0L3QvtCy0LjRhw0KK9Cc0LDQutGB0LDQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JDQutGB0LXQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQnNCw0LrRgdC40LzQvtCyLCDQldCy0LPQtdC90LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CQ0LrRgdC10L3RgtGM0LXQsi3QmtC40LrQsNC70LjRiNCy0LjQu9C4LCDQkNC90LfQvtGA0Lgg0JjQvtGB0LjRhNC+0LLQuNGHDQor0JzQsNC60YHQuNC80L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNC60YHRjtGH0LjRhiwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cc0LDQu9Cw0LXQsiwg0JDQu9C10LrRgdC10Lkg0J3QuNC60LjRhNC+0YDQvtCy0LjRhw0KK9Cc0LDQu9Cw0YjQtdC90LrQviwg0JjQs9C+0YDRjCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9CQ0LvQtdC60L/QtdGA0L7Qsiwg0JLQsNCz0LjRgiDQrtGB0YPRhNC+0LLQuNGHDQor0JzQsNC70LrQuNC9LCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQkNC70LXQutGB0LDQvdC00YDQvtCyLCDQkNC70LXQutGB0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JzQsNC70YzQutC+0LIsINCY0LPQvtGA0Ywg0J7Qu9C10LPQvtCy0LjRhw0KK9CQ0LvQtdC60YHQtdC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcuDQor0JzQsNC70YzRhtC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CQ0LvQtdC60YHQtdC10LIsINCT0LXQvdC90LDQtNC40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQnNCw0LvRjNGG0LXQsiwg0JHQvtGA0LjRgSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CQ0LvQtdC60YHQuNC5LCDQktGC0L7RgNC+0Lkg0L/QsNGC0YDQuNCw0YDRhQ0KK9Cc0LDQu9GO0YLQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCT0YDQuNCz0L7RgNGM0LXQstC90LANCivQnNCw0L3QtdCy0LjRhywg0JzQuNGF0LDQuNC7INCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHDQor0JDQu9C60YHQvdC40YEsINCS0LjQutGC0L7RgCDQmNC80LDQvdGC0L7QstC40YcNCivQnNCw0L3QttC+0YHQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JDQu9GC0YPRhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNCw0L3QuNC70L7Qsiwg0JLQsNC70LXRgNC40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQkNC70YLRi9C90LHQsNC10LIsINCW0LDQutGB0LvRi9C6INCa0YPQsNC90YLQsNC10LLQuNGHDQor0JDQu9GE0LXRgNC+0LIsINCW0L7RgNC10YEg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LDQvdGP0LrQuNC9LCDQodC10YDQs9C10Lkg0JjQvtGB0LjRhNC+0LLQuNGHDQor0JDQu9GM0LzRj9GI0LrQuNC9LCDQktCw0YHQuNC70LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQsNGA0LPQtdC70L7Qsiwg0JzQuNGF0LDQuNC7INCS0LjRgtCw0LvRjNC10LLQuNGHDQor0JDQvNCx0LDRgNGG0YPQvNC+0LIsINCV0LLQs9C10L3QuNC5INCQ0YDRiNCw0LrQvtCy0LjRhw0KK9Cc0LDRgNC60LXQu9C+0LIsINCb0LXQvtC90LjQtCDQmNCz0L7RgNC10LLQuNGHDQor0JDQvNC10LvQuNC90LAsINCQ0LvQu9CwINCb0LXQvtC90LjQtNC+0LLQvdCwDQor0JzQsNGA0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDQvNC10YLQuNGB0YLQvtCyLCDQrdGA0L3QtdGB0YIg0JzQuNGF0LDQudC70L7QstC40YcNCivQnNCw0YDQutC+0LLQsCwg0KDQuNC80LzQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9CQ0L3QsNC90YzQtdCyLCDQldCy0LPQtdC90LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cc0LDRgNGC0YvQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQk9Cw0LLRgNC40LvQvtCy0LjRhw0KK9CQ0L3QtNGA0LXQtdCyLCDQkNC70LXQutGB0LXQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQsNGA0YLRi9C90L7Qsiwg0JHQvtGA0LjRgSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cc0LDRgNGH0LXQvdC60L4sINCf0LXRgtGAINCf0LXRgtGA0L7QstC40YcNCivQkNC90LTRgNC10LXQstCwLCDQndC40L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cc0LDRgNGL0YfQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0L3RgtC+0L3QvtCy0LjRhw0KK9CQ0L3QuNGH0LrQuNC9LCDQmNCy0LDQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Cc0LDRgdCw0YDRgdC60LjQuSwg0JzQsNGA0Log0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0JDQvdC/0LjQu9C+0LIsINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0JzQsNGB0LvQvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQkNC90YLQvtC90L7Qsiwg0JjQs9C+0YDRjCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cc0LDRgdC70L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNCw0YHQu9GO0LrQvtCyLCDQrtGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CQ0L3RgtGD0YTRjNC10LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQnNCw0YHRhdCw0LTQvtCyLCDQkNGB0LvQsNC9ICjQpdCw0LvQuNC0KSDQkNC70LjQtdCy0LjRhw0KK9CQ0L/QsNGA0LjQvdCwLCDQkNC70LXQstGC0LjQvdCwINCS0LjQutGC0L7RgNC+0LLQvdCwDQor0JzQsNGB0YXQsNC00L7Qsiwg0JDRgdC70LDQvSDQkNC70LjQtdCy0LjRhw0KK9CQ0YDQsNC60YfQsNCwLCDQmtCw0YDQsC3QmtGL0YEg0JTQvtC90LPQsNC60L7QstC90LANCivQkNGA0LHQsNGC0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQnNCw0YLQstC40LXQvdC60L4sINCS0LDQu9C10L3RgtC40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0JDRgNCx0YPQt9C+0LIsINCS0LDQu9C10YDQuNC5INCf0LXRgtGA0L7QstC40YcNCivQnNCw0YLQvtGH0LrQuNC9LCDQrtGA0LjQuSDQodC10LzQtdC90L7QstC40YcNCivQkNGA0LXRhNGM0LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNCw0YLRj9GI0L7Qsiwg0J/QtdGC0YAg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0YDQuNC90LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDRgNGB0LvQsNC90L7QstCwLCDQpNCw0L3Rg9C30LAg0KjQsNGA0LDRhNC40LXQstC90LANCivQnNCw0YjQuNC90YHQutC40LksINCS0LjQutGC0L7RgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cc0LDRiNC60L7QstGG0LXQsiwg0JzQuNGF0LDQuNC7INCR0L7RgNC40YHQvtCy0LjRhw0KK9CQ0YDRgtGO0YXQvtCyLCDQktC40YLQsNC70LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQodC10YDQs9C10LXQstC40YcNCivQkNGA0YXQuNC/0L7Qsiwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCU0LzQuNGC0YDQuNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQkNGB0LDQtdCyLCDQoNCw0LjRgSDQkdCw0LTRi9Cz0YPRgtC00LjQvdC+0LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9CQ0YHQutC10YDRhdCw0L3QvtCyLCDQk9Cw0LzQuNC0INCg0LDRiNC40LTQvtCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCf0LDQstC10Lsg0JDQu9C10LrRgdC10LXQstC40YcNCivQkNGB0LvQsNGF0LDQvdC+0LIsINCQ0YHQu9Cw0L3QsdC10Log0JDRhdC80LXQtNC+0LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0KDQvtC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JDRgdGB0LXQutGA0LjRgtC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQkdC+0YDQuNGB0L7QstC40YcNCivQnNC10LTQstC10LTQtdCyLCDQodC10YDQs9C10Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CQ0YHRgtCw0YTRjNC10LIsINCc0LjRhdCw0LjQuyDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Cc0LXQtNC40LrQvtCyLCDQktC40LrRgtC+0YAg0K/QutC+0LLQu9C10LLQuNGHDQor0JDRgdGC0LDRhNGM0LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Cc0LXQu9C40LrRjNGP0L0sINCT0LXQvdC90LDQtNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQkNGB0YLRgNCw0YXQsNC90LrQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JzQtdC70YzQutC+0LIsINCQ0LvQtdC60YHQtdC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQkNGD0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LXQu9GM0L3QuNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0K7RgNGM0LXQstC40YcNCivQkNGD0YjQtdCyLCDQnNGD0YXQsNGA0LHQtdC6INCY0LfQvNCw0LjQu9C+0LLQuNGHDQor0JzQtdC70YzQvdC40LrQvtCyLCDQmNCy0LDQvSDQmNCy0LDQvdC+0LLQuNGHDQor0JDRg9GI0LXQsiwg0KDRg9GB0LvQsNC9INCh0YPQu9GC0LDQvdC+0LLQuNGHDQor0JzQtdC90YwsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CQ0YXQvNCw0LTQuNC10LIsINCk0LDQvdC40LvRjCDQndCw0LjQu9C+0LLQuNGHDQor0JzQtdGA0LXQvNGP0L3QuNC9LCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CQ0YfQsNC70L7Qsiwg0JLQu9Cw0LTQuNGB0LvQsNCyINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JzQtdGA0LrRg9C70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CQ0Y7RiNC40LXQsiwg0JHQvtC70L7RgiDQktCw0L3QtNCw0L3QvtCy0LjRhw0KK9Cc0LXRgNC60YPQu9C+0LIsINCT0LXQvdC90LDQtNC40Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CQ0Y/RhtC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0JzQtdGA0LrRg9GI0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LDQsdC40L0sINCd0LjQutC+0LvQsNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cc0LjQt9GD0LvQuNC90LAsINCV0LvQtdC90LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0JHQsNCx0LjRh9C10LIsINCS0LvQsNC00LjQvNC40YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQnNC40LrQuNGC0LDQtdCyLCDQkNCx0LTRg9C70LDRhSDQmtCw0YHQsdGD0LvQsNGC0L7QstC40YcNCivQkdCw0LHQuNGH0LXQsiwg0JjQs9C+0YDRjCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LDQsdGD0YDQuNC9LCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC40LvQvtGB0LXRgNC00L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JHQsNCx0YPRhSwg0JvQsNGA0LjRgdCwINCS0LvQsNC00LjQvNC40YDQvtCy0L3QsA0KK9Cc0LjQvdCw0LrQvtCyLCDQktC40LrRgtC+0YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQkdCw0LPQsNGD0YLQtNC40L3QvtCyLCDQk9Cw0LHQtNGD0LvQstCw0YXQuNC0INCT0LjQu9GM0LzRg9GC0LTQuNC90L7QstC40YcNCivQnNC40L3QutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LDQs9C70LDQuSwg0JzQsNGA0LDRgiDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Cc0LjRgNC30L7QtdCyLCDQk9Cw0YHQsNC9INCR0L7RgNC40YHQvtCy0LjRhw0KK9CR0LDQttC10L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LDQt9GL0LvQtdCy0LAsINCi0LDQvNCw0YDQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Cc0LjRgNC+0L3QvtCyLCDQktC40LrRgtC+0YAg0J/QuNC80LXQvdC+0LLQuNGHDQor0JHQsNC60LDRgtC40L0sINCS0LDQtNC40Lwg0JLQuNC60YLQvtGA0L7QstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CR0LDQu9Cw0LrRiNC40L0sINCf0LDQstC10Lsg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC40YDQvtC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JHQsNC70LDQu9Cw0LXQsiwg0JLRj9GH0LXRgdC70LDQsiDQldGE0LjQvNC+0LLQuNGHDQor0JzQuNGA0L7QvdC+0LIsINCe0LvQtdCzINCe0YDQtdGB0YLQvtCy0LjRhw0KK9CR0LDQu9GC0LjQvSwg0K3QtNGD0LDRgNC0INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JzQuNGB0L3QuNC6LCDQkdC+0YDQuNGBINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQkdCw0YDQsNCx0LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQnNC40YLQuNC9LCDQodC10YDQs9C10Lkg0JPQtdGA0LDRgdC40LzQvtCy0LjRhw0KK9CR0LDRgNCw0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LjRgtC40L3QsCwg0JTQsNGA0YzRjyDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9CR0LDRgNCw0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQuNGC0LrQvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCg0L7RgdGC0LjRgdC70LDQstC+0LLQvdCwDQor0JHQsNGA0LjQtdCyLCDQnNCw0YDQsNGCINCc0LDQvdGB0YPRgNC+0LLQuNGHDQor0JzQuNGC0YDQvtGE0LDQvdC+0LIsINCQ0LvQtdC60YHQtdC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9CR0LDRgNC60LDRiNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQn9C10YLRgNC+0LLQuNGHDQor0JzQuNGC0YDQvtGF0LjQvSwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CR0LDRgNGB0YPQutC+0LIsINCc0LjRhdCw0LjQuyDQmNCy0LDQvdC+0LLQuNGHDQor0JzQuNGC0Y7QutC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CR0LDRgNGL0YjQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQnNC40YLRj9C10LIsINCY0LLQsNC9INCY0LLQsNC90L7QstC40YcNCivQkdCw0YDRi9GI0L3QuNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CR0LDRgdCw0LXQsiwg0KjQsNC80LjQu9GMINCh0LDQu9C80LDQvdC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JDQu9C10LrRgdC10Lkg0K7RgNGM0LXQstC40YcNCivQkdCw0YHQuNC9LCDQldGE0LjQvCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQktC40LrRgtC+0YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CR0LDRgtCw0LPQsNC10LIsINCQ0LvQtdC60YHQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JLQuNC60YLQvtGAINCd0LjQutC40YLQvtCy0LjRhw0KK9CR0LDRgtGD0YDQuNC9LCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQkdCw0YPRjdGALCDQktC70LDQtNC40LzQuNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CR0LDRiNC80LDRh9C90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JXQstCz0LXQvdC40Lkg0K3QtNGD0LDRgNC00L7QstC40YcNCivQkdCw0Y7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CR0LXQt9Cx0L7RgNC+0LTQvtCyLCDQndC40LrQvtC70LDQuSDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQkdC10LfQstC10YDRhdC40LksINCh0LXRgNCz0LXQuSDQpNC10LTQvtGA0L7QstC40YcNCivQnNC40YXQsNC50LvQvtCy0LAsINCt0LvRjNC80LjRgNCwINCT0LXRgNC80LDQvdC+0LLQvdCwDQor0JHQtdC30LvQtdC/0LrQuNC90LAsINCb0Y7QtNC80LjQu9CwINCk0LXQtNC+0YDQvtCy0L3QsA0KK9Cc0LjRhdCw0LvQutC+0LIsINCd0LjQutC40YLQsCDQodC10YDQs9C10LXQstC40YcNCivQkdC10LrQtdGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LTRgNC10LXQstC40YcNCivQnNC40YXQsNC70LrQvtCyLdCa0L7QvdGH0LDQu9C+0LLRgdC60LjQuSwg0JDQvdC00YDQvtC9INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CR0LXQutC70LXQvNC40YnQtdCy0LAsINCe0LvRjNCz0LAg0JDQu9C10LrRgdC10LXQstC90LANCivQnNC40YXQtdC10LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cc0LjRiNC40L0sINCS0LjQutGC0L7RgCDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Cc0L7QuNGB0LXQtdCyLCDQkdC+0YDQuNGBINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JzQvtC40YHQtdC10LLQsCwg0JLQtdGA0L7QvdC40LrQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQnNC+0L3QsNGB0YLRi9GA0YHQutC40LksINCc0LjRhdCw0LjQuyDQm9GM0LLQvtCy0LjRhw0KK9CR0LXQu9C+0LfQtdGA0YbQtdCyLCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JzQvtGA0L7Qt9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KLQuNC80L7RhNC10LXQstC40YcNCivQkdC10LvQvtC90L7Qs9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNC+0YDQvtC30L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cc0L7RgNC+0LfQvtCyLCDQntC70LXQsyDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LXQu9GP0LXQsiwg0KHQtdGA0LPQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JzQvtGA0YnQsNC60L7QstCwLCDQotCw0LzQsNGA0LAg0JPQtdC+0YDQs9C40LXQstC90LANCivQkdC10LvRj9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXQvNC10L3QvtCy0LjRhw0KK9Cc0L7RgdGC0L7QstC+0LksINCf0LXRgtGAINCf0LXRgtGA0L7QstC40YcNCivQkdC10L3QtNGD0LrQuNC00LfQtSwg0JrQsNGF0LAg0JDQstGC0LDQvdC00LjQu9C+0LLQuNGHDQor0JzQvtGI0L3Rj9C60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JHQtdC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQnNCw0YLQstC10LXQstC40YcNCivQnNGD0LrQvtC80LXQu9GMLCDQktC70LDQtNC40LzQuNGAINCY0LfRj9Cy0LjRhw0KK9CR0LXRgNC00L3QuNC60L7QstCwLCDQndC40L3QsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQnNGD0LvQsNC00LbQsNC90L7Qsiwg0KjQvtC0INCh0LDQuNC00L7QstC40YcNCivQnNGD0YDQsNCy0LvQtdC90LrQviwg0KHQtdGA0LPQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JHQtdGA0LXQt9C+0LLRgdC60LjQuSwg0JHQvtGA0LjRgSDQkNCx0YDQsNC80L7QstC40YcNCivQnNGD0YHQsNC70LDRgtC+0LIsINCl0LDRgdCw0L0g0JDQu9Cw0YHRhdCw0L3QvtCy0LjRhw0KK9CR0LXRgNC10YHRgtC+0LLQvtC5LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0YPRgdCw0YLQvtCyLCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LXRgdC/0LDQu9C+0LIsINCu0YDQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JzRg9GF0LAsINCS0LjRgtCw0LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQkdC10YHRgdCw0YDQsNCx0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J3QsNC30LDRgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Cd0LDQt9Cw0YDRh9GD0LosINCQ0LvQtdC60YHQsNC90LTRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JHQuNCz0L3QvtCyLCDQoNCw0LzQuNC70Ywg0JjQvNCw0LzQsNCz0LfQsNC80L7QstC40YcNCivQndCw0LfQtNGA0LDRgtC10L3QutC+LCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JHQuNC60LDQu9C+0LLQsCwg0J3QsNC00LXQttC00LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQkdC40L3QtNGO0LrQvtCyLCDQndC40LrQvtC70LDQuSDQk9Cw0LLRgNC40LvQvtCy0LjRhw0KK9Cd0LDQudGH0YPQutC+0LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0J3QsNC50YjRg9C70YwsINCS0LjRgtCw0LvQuNC5INCQ0YDQutCw0LTRjNC10LLQuNGHDQor0JHQuNGA0Y7QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQndCw0YDQvtC70LjQvSwg0JzQuNGF0LDQuNC7INCi0LjRhdC+0L3QvtCy0LjRhw0KK9CR0LjRgNGO0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQndCw0YDRg9GB0L7QstCwLCDQm9GO0LTQvNC40LvQsCDQkdC+0YDQuNGB0L7QstC90LANCivQkdC40YfQtdC70LTQtdC5LCDQmtCw0LDQtNGL0YAt0J7QvtC7INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QsNGF0LzQsNC90L7QstC40YcsINCf0LXRgtGAINCQ0LHRgNCw0LzQvtCy0LjRhw0KK9CR0LvQsNCz0L7QstC+0LvQuNC9LCDQodC10YDQs9C10Lkg0JXQstCz0LXQvdGM0LXQstC40YcNCivQndC10LLQtdGA0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cd0LXQstC30LvQuNC9LCDQm9C10L7QvdC40LQg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JHQvtCz0LDRgtC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J3QtdCy0LfQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0LvQtdCx0L7QstC40YcNCivQkdC+0LPQsNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQndC10LTQtdC70LjQvSwg0JPQtdC90L3QsNC00LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JHQvtCz0LTQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cd0LXQtNC+0YjQuNCy0LjQvSwg0JLRj9GH0LXRgdC70LDQsiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CR0L7Qs9C00LDQvdC+0LLQsCwg0JXQu9C10L3QsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Cd0LXQtdC70L7Qsiwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0LPQtNCw0L3Rh9C40LrQvtCyLCDQodC10YDQs9C10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQndC10LrRgNCw0YHQvtCyLCDQm9C10L7QvdC40LQg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0LPQvtC80L7Qu9C+0LIsINCe0LvQtdCzINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QtdC60YDRg9GC0LXQvdC60L4sINCS0LjQutGC0L7RgCDQrtGA0YzQtdCy0LjRhw0KK9CR0L7QttC10LTQvtC80L7QstCwLCDQk9Cw0LvQuNC90LAg0JrQu9Cw0LLQtNC40LXQstC90LANCivQndC10LzRhtC+0LIsINCR0L7RgNC40YEg0JXRhNC40LzQvtCy0LjRhw0KK9CR0L7QudC60L4sINCS0LDQtNC40Lwg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cd0LXRgdGC0LXRgNC10L3QutC+LCDQotCw0YLRjNGP0L3QsCDQk9C10L3QvdCw0LTRjNC10LLQvdCwDQor0JHQvtC50LrQviwg0JLRj9GH0LXRgdC70LDQsiDQkNC90LTRgNC10LXQstC40YcNCivQndC10YHRgtC10YDQvtCyLCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CR0L7QudC60L4sINCc0LDQutGB0LjQvCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQndC10YPQvNGL0LLQsNC60LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCv0LrQvtCy0LvQtdCy0LjRhw0KK9Cd0LXRh9Cw0LXQsiwg0JDQvdC00YDQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JHQvtC50YbQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J3QtdGJ0LDQtNC40L0sINCQ0L3QtNGA0LXQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JHQvtC60L7QstC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQndC40LPQutC+0LXQsiwg0KHQtdGA0LPQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JHQvtC70LTRi9GA0LXQsiwg0K7RgNC40Lkg0K7RgNGM0LXQstC40YcNCivQndC40LrQuNGC0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQkdC+0LvRjNGI0LDQutC+0LIsINCQ0LvQtdC60YHQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QuNC60LjRgtC40L0sINCQ0L3QtNGA0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQkdC+0LvRjNGI0LDQutC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J3QuNC60LjRgtC40L0sINCS0LDQu9C10L3RgtC40L0g0JjQstCw0L3QvtCy0LjRhw0KK9CR0L7Qu9GM0YjQsNC60L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCf0LXRgtGA0L7QstC40YcNCivQkdC+0L3QtNCw0YDQtdCyLCDQk9GA0LjQs9C+0YDQuNC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0J3QuNC60LjRgtGH0YPQuiwg0JjQstCw0L0g0JjQs9C90LDRgtGM0LXQstC40YcNCivQkdC+0L7RgSwg0JPQtdC+0YDQs9C40Lkg0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHDQor0J3QuNC60LjRhNC+0YDQtdC90LrQviwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC+0YDQuNGB0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQndC40LrQuNGE0L7RgNC+0LIsINCh0LXRgNCz0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cd0LjQutC+0LvQsNC10LIsINCQ0LvQtdC60YHQtdC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHQvtGA0LjRgdC+0LPQu9C10LHRgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LPQvtGA0LXQstC40YcNCivQndC40LrQvtC70LDQtdCyLCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0L7RgNC+0LLQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KHQtdC80LXQvdC+0LLQuNGHDQor0J3QuNC60L7Qu9Cw0LXQsiwg0JzQuNGF0LDQuNC7INCV0YTQuNC80L7QstC40YcNCivQkdC+0YDQvtCy0L7QuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QsNGC0LDQvdC+0LLQuNGHDQor0J3QuNC60L7Qu9Cw0LXQstGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCu0YDRjNC10LLQuNGHDQor0JHQvtGA0L7QtNCw0LXQsiwg0JLQsNC70LXRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQndC40LrQvtC70L7Qs9C+0YDRgdC60LjQuSwg0JLQsNC70LXRgNC40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CR0L7RgNC+0LTQuNC9LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cd0LjQutC+0L3QvtCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J3QuNC60YPQu9C40L0sINCS0LDQu9C10YDQuNC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQkdC+0YDRidC10LIsINCS0LDQu9C10YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0J3QuNC60YPQu9C40L0sINCu0YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CR0L7RgdGF0L7Qu9C+0LIsINCh0LXRgNCz0LXQuSDQodC10LzQtdC90L7QstC40YcNCivQndC40Y/Qt9C+0LIsINCh0LDQv9Cw0YDQvNGD0YDQsNGCINCQ0YLQsNC10LLQuNGHDQor0JHQvtGH0LDRgNC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cd0L7QstC40LrQvtCyLCDQntC70LXQsyDQmNCy0LDQvdC+0LLQuNGHDQor0JHQvtGH0LjQvSwg0JvQtdC+0L3QuNC0INCQ0YDQvdC+0LvRjNC00L7QstC40YcNCivQndC+0LLQvtC00LLQvtGA0YHQutCw0Y8sINCS0LDQu9C10YDQuNGPINCY0LvRjNC40L3QuNGH0L3QsA0KK9CR0YDQsNCz0LjQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cd0L7QttC40LrQvtCyLCDQrtGA0LjQuSDQkNCx0YDQsNC80L7QstC40YcNCivQkdGA0LDRgtC40YnQtdCyLCDQmNCz0L7RgNGMINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J3QvtGB0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JHRgNC10LLQvdC+0LIsINCR0L7RgNC40YEg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ce0LHQvtC70LXQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0JzQuNGC0YDQvtGE0LDQvdC+0LLQuNGHDQor0JHRgNGD0YHQvdC40LrQuNC9LCDQndC40LrQvtC70LDQuSDQrtGA0YzQtdCy0LjRhw0KK9Ce0LLRh9C10L3QutC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JjQstCw0L3QvtCy0LjRhw0KK9CR0YDRg9GB0L3QuNGG0YvQvSwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQntCy0YfQuNC90L3QuNC60L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkdGA0YvQvdGG0LDQu9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQntC30LXRgNC+0LIsINCS0LjQutGC0L7RgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ce0LnQutC40L3QsCwg0JfQvtGPINCd0LjQutC+0LvQsNC10LLQvdCwDQor0JHRgNGL0L3RhtCw0LvQvtCyLCDQrtGA0LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J7QudC90LLQuNC0LCDQk9GA0LjQs9C+0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JHRg9Cz0LXRgNCwLCDQnNC40YXQsNC40Lsg0JXQstCz0LXQvdGM0LXQstC40YcNCivQntC70LXQudC90LjQuiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JHRg9C00LDQttCw0L/QvtCyLCDQodC10YDQs9C10Lkg0J/Rg9GA0LHRg9C10LLQuNGHDQor0J7Qu9C10LnQvdC40LosINCb0Y7QsdC+0LLRjCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Ce0LvRjNGI0LDQvdGB0LrQuNC5LCDQlNC80LjRgtGA0LjQuSDQktCw0LTQuNC80L7QstC40YcNCivQkdGD0LrQsNGC0L4sINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0J7QvtGA0LbQsNC6LCDQqNC10YDQuNCzLdC+0L7QuyDQlNC40LfQuNC20LjQutC+0LLQuNGHDQor0JHRg9C70LDQstC40L3QvtCyLCDQktCw0LTQuNC8INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J7RgNC00LbQvtC90LjQutC40LTQt9C1LCDQmNC+0YHQuNGEINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JHRg9C70LPQsNC6LCDQktC70LDQtNC40LzQuNGAINCR0L7RgNC40YHQvtCy0LjRhw0KK9Ce0YDQu9C+0LIsINCS0LjQutGC0L7RgCDQn9C10YLRgNC+0LLQuNGHDQor0J7RgNC70L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LTRgNC10LXQstC40YcNCivQkdGD0L3QuNGHLCDQn9Cw0LLQtdC7INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQntGA0LvQvtCy0LAsINCh0LLQtdGC0LvQsNC90LAg0K7RgNGM0LXQstC90LANCivQkdGD0YDQsdGD0LvQuNGBLCDQk9C10L3QvdCw0LTQuNC5INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0J7RgdC80LDQtdCyLCDQkNC80LjQvSDQkNGF0LzQtdC00L7QstC40YcNCivQkdGD0YDQtNGD0LrQvtCyLCDQn9Cw0LLQtdC7INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0J7RgdC90L7QstC90LDRjywg0LTQtdGP0YLQtdC70YzQvdC+0YHRgtGMOg0KK9CR0YPRgNC10L3QuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0YDRgdC10L3RjNC10LLQuNGHDQor0J7RgdGC0LDQu9GM0YHQutC40LksINCU0LzQuNGC0YDQuNC5INCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9Ce0YHRgtCw0L3QuNC90LAsINCd0LjQvdCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JHRg9GA0LrQvtCyLCDQodC10YDQs9C10Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdGD0YDQu9GD0YbQutC40LksINCu0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQn9Cw0LLQu9C+0LIsINCd0LjQutC+0LvQsNC5INCQ0LvQtdC60YHQsNC90LRw0L7QstC40YcNCivQkdGD0YLQsNC10LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LDQstC70L7QstGB0LrQuNC5LCDQk9C70LXQsSDQntC70LXQs9C+0LLQuNGHDQor0JHRg9GC0L7Qsiwg0JXQstCz0LXQvdC40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQkdGD0YfQtdC90LrQvtCyLCDQldCy0LPQtdC90LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0YPRiNC80LjQvSwg0JXQstCz0LXQvdC40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQn9Cw0LvRjNGH0LXQstGB0LrQuNC5LCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LDQvNGE0LjQu9C+0LLQsCwg0K3Qu9C70LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQkdGL0LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0LDQvdCw0YDQuNC9LCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CR0YvQutC+0LIsINCg0L7Qu9C70LDQvSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0J/QsNC90LjQvSwg0JLQuNC60YLQvtGAINCV0LLQs9C10L3RjNC10LLQuNGHDQor0JHRi9C70LXQstGB0LrQuNC5LCDQn9Cw0LLQtdC7INCT0LXQvdC90LDQtNGM0LXQstC40YcNCivQn9Cw0L3QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JHRi9GB0YLRgNC40YbQutCw0Y8sINCt0LvQuNC90LAg0JDQstGA0LDQsNC80L7QstC90LANCivQn9Cw0L3QutGA0LDRgtC+0LIt0KfQtdGA0L3Ri9C5LCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdGL0YHRgtGA0L7Qsiwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QsNC90YHQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQkdGL0YfQutC+0LIsINCQ0L3QtNGA0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QsNC90YTQuNC70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CS0LDQstC40LvQvtCyLCDQkNC90LTRgNC10Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cf0LDQvdGE0LjQu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LDQstC40LvQvtCyLCDQodGC0LDQvdC40YHQu9Cw0LIg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/QsNC90YzQutC40L0sINCS0Y/Rh9C10YHQu9Cw0LIg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JLQsNCz0LjQvSwg0JLQsNC70LXRgNC40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0J/QsNGA0LDQtNC40LcsINCQ0LvQtdC60YHQsNC90LTRgCDQm9Cw0LfQsNGA0LXQstC40YcNCivQktCw0LnQvdGI0YLQvtC6LCDQodC10LzQtdC9INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QsNGA0LDQvNC+0L3QvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCS0LvQsNC00LjQvNC40YDQvtCy0L3QsA0KK9CS0LDQutGD0LvQtdC90LrQviwg0JzQuNGF0LDQuNC7INCu0YDRjNC10LLQuNGHDQor0J/QsNGA0LjQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0KHQtdC80LXQvdC+0LLQuNGHDQor0JLQsNGA0LXQvdC90LjQutC+0LIsINCS0LDQu9C10L3RgtC40L0g0JjQstCw0L3QvtCy0LjRhw0KK9CS0LDRgNC90LDQstGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J/QsNGA0YjQsNC60L7Qsiwg0K7RgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YDRgtCw0LfQsNGA0L7QstCwLCDQm9GO0LTQvNC40LvQsCDQodGC0LXQv9Cw0L3QvtCy0L3QsA0KK9Cf0LDRgdGC0YPRhdC+0LIsINCR0L7RgNC40YEg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YHQuNC70YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LHQtNGD0LDQu9C40LXQstC40YcNCivQn9Cw0YLRgNGD0YjQtdCyLCDQndC40LrQvtC70LDQuSDQn9C70LDRgtC+0L3QvtCy0LjRhw0KK9Cf0LDRiNGD0YLQviwg0JLQu9Cw0LTQuNC80LjRgCDQoNC+0YHRgtC40YHQu9Cw0LLQvtCy0LjRhw0KK9CS0LDRgdC40LvRjNC10LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cf0LXRgNC80LjQvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktCw0YXRgNGD0LrQvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C10YLQvtGI0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JLQtdC00LXRgNC90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cf0LXRgtGA0LXQvdC60L4sINCh0LXRgNCz0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CS0LXQtNC10YDQvdC40LrQvtCyLCDQndC40LrQvtC70LDQuSDQotGA0L7RhNC40LzQvtCy0LjRhw0KK9Cf0LXRgtGA0LjQuiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQktC10L3Qs9C10YDQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0JDQvdC00YDQtdC5INCu0YDRjNC10LLQuNGHDQor0JLQtdC90LPQtdGA0L7QstGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQn9C10YLRgNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LXQv9GA0LXQsiwg0JDRgNC60LDQtNC40Lkg0KTQuNC70LjQvNC+0L3QvtCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JLQtdGA0LXRidCw0LPQuNC9LCDQktC40LrRgtC+0YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/QtdGC0YDQvtCyLCDQntC70LXQsyDQktCw0LTQuNC80L7QstC40YcNCivQktC10YDQvdC40LPQvtGA0LAsINCS0LvQsNC00LjQvNC40YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0J/QtdGC0YDQvtCyLCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQktC10YDRhdC+0LLRgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LDRgNC60L7QstC40YcNCivQktC10YDRiNC40L3QuNC9LCDQn9Cw0LLQtdC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QtdGF0YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JLQtdGB0LXQu9C60LjQvSwg0J/QsNCy0LXQuyDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cf0LXRiNC60L7Qsiwg0JLQuNC60YLQvtGAINCf0LXRgtGA0L7QstC40YcNCivQn9C40LLQvdC10L3QutC+LCDQktCw0LvQtdC90YLQuNC90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQktC10YfQutCw0YHQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QuNC70LjQv9C10L3QutC+LCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQktC10YjQvdGP0LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9GM0LHQtdGA0YLQvtCy0LjRhw0KK9Cf0LjQu9C40L/QtdGI0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LjQs9C00L7RgNGH0LjQuiwg0JXQu9C10L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cf0LjRgdC60YPQvSwg0J3QuNC60L7Qu9Cw0Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQn9C40Y/RiNC10LLQsCwg0JvQsNGA0LjRgdCwINCY0LLQsNC90L7QstC90LANCivQktC40LrRgtC+0YDQvtCyLCDQktCw0LvQtdGA0YzRj9C9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/Qu9Cw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LPQvdCw0YLRjNC10LLQuNGHDQor0JLQuNC70LjQvdCx0LDRhdC+0LIsINCT0LXQvtGA0LPQuNC5INCS0LDQtNC40LzQvtCy0LjRhw0KK9Cf0LvQsNGC0L7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CS0LjQvdC+0LPRgNCw0LTQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0J/Qu9Cw0YLQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CS0LjQvdC+0LPRgNCw0LTQvtCyLCDQndC40LrQvtC70LDQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQn9C70LXRgtC90LXQstCwLCDQotCw0LzQsNGA0LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQktC40L3QvtCz0YDQsNC00L7Qsiwg0J/QsNCy0LXQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQn9C70LjQtdCyLCDQoNGD0YHQu9Cw0L0g0KHRg9C70YLQsNC90L7QstC40YcNCivQktC40YLRgNGD0LosINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0J/Qu9C+0YLQvdC40LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQuNGI0L3Rj9C60L7Qsiwg0JLQuNC60YLQvtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQn9C+0LHQtdC00LjQvdGB0LrQsNGPLCDQm9GO0LTQvNC40LvQsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9CS0LjRiNC90Y/QutC+0LIsINCS0LjRgtCw0LvQuNC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J/QvtCy0L7QtNGL0YDRjCwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JLQu9Cw0LTQuNGB0LvQsNCy0LvQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Cf0L7QstC+0LvRj9C10LIsINCS0LvQsNC00LjQvNC40YAg0JzQuNGC0YDQvtGE0LDQvdC+0LLQuNGHDQor0JLQu9Cw0YHQvtCyLCDQkNC70LXQutGB0LXQuSDQpNC10LvQuNC60YHQvtCy0LjRhw0KK9Cf0L7QtNCx0LXRgNC10LfQutC40L0sINCQ0LvQtdC60YHQtdC5INCY0LLQsNC90L7QstC40YcNCivQktC70LDRgdC+0LIsINCS0LDQu9C10L3RgtC40L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQn9C+0LTQs9C+0YDQvdC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JLQu9Cw0YHQvtCyLCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cf0L7QtNC60L7Qu9C30LjQvSwg0JXQstCz0LXQvdC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQn9C+0LTQvtC/0YDQuNCz0L7RgNCwLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQu9Cw0YHQvtCy0LAsINCQ0L3QvdCwINCf0LXRgtGA0L7QstC90LANCivQn9C+0LTRg9GE0LDQu9C+0LIsINCd0LjQutC+0LvQsNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JLQvtC10LLQvtC00LjQvSwg0JLQsNC00LjQvCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0L7Qu9C00L3QuNC60L7Qsiwg0K7RgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CS0L7QudC60L7Qsiwg0JDQvdC00YDQtdC5INCY0LLQsNC90L7QstC40YcNCivQn9C+0LvQtdCy0LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J/QsNCy0LvQvtCy0LjRhw0KK9CS0L7Qu9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J/QvtC70LXQttCw0LXQsiwg0JvQtdC+0L3QuNC0INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQn9C+0LvRgtCw0LLRh9C10L3QutC+LCDQk9C10L7RgNCz0LjQuSDQodC10YDQs9C10LXQstC40YcNCivQktC+0LvQutC+0LIsINCS0LDRgdC40LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQn9C+0LvRgtC+0YDQsNC90LjQvSwg0JzQuNGF0LDQuNC7INCd0LjQutC40YTQvtGA0L7QstC40YcNCivQktC+0LvQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQn9C+0LvRg9GP0L3QvtCyLCDQndC40LrQvtC70LDQuSDQkNC90LTRgNC10LXQstC40YcNCivQktC+0LvQutC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Cf0L7Qu9GP0LrQvtCyLCDQkNC90LTRgNC10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQktC+0LvQutC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QvtC70Y/QutC+0LIsINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQktC+0LvQutC+0LLQsCwg0J7Qu9GM0LPQsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cf0L7Qu9GP0LrQvtCyLCDQrtGA0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CS0L7Qu9C+0LLQuNC6LCDQkNC70LXQutGB0LDQvdC00YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQn9C+0LzQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LTRgNC40LDQvdC+0LLQuNGHDQor0JLQvtC70L7QtNC40L0sINCd0LjQutC+0LvQsNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cf0L7QvdCw0YHQvtCyLCDQodGC0LXQv9Cw0L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQktC+0LvQvtGI0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCh0YLQsNC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JLQvtC70YfQtdC6LCDQk9Cw0LvQuNC90LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0J/QvtC90L7QvNCw0YDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JLQvtC70YzRgdC60LjQuSwg0JDRgNC60LDQtNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQktC+0YDQvtCx0YzQtdCyLCDQrdC00YPQsNGA0LQg0JDRgNC60LDQtNGM0LXQstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCQ0LvQtdC60YHQtdC5INCk0LjQu9C40L/Qv9C+0LLQuNGHDQor0JLQvtGA0L7Qs9GD0YjQuNC9LCDQktC40LrRgtC+0YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JPQtdC90L3QsNC00LjQuSDQodC10LzQtdC90L7QstC40YcNCivQktC+0YDQvtC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JvQtdCyINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JLQvtGA0L7QvdC40L0sINCT0LXQvdC90LDQtNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cf0L7Qv9C60L7QstC40YcsINCg0L7QvNCw0L0g0KHQtdC80LXQvdC+0LLQuNGHDQor0JLQvtGA0L7QvdC40L0sINCu0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JLQvtGA0L7QvdGG0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C+0L/QvtCyLCDQkNC70LXQutGB0LXQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JLQvtGA0L7QvdGG0L7QstCwLCDQl9C+0Y8g0JjQstCw0L3QvtCy0L3QsA0KK9Cf0L7Qv9C+0LIsINCQ0YDQutCw0LTQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JLQvtGA0L7RgtC90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCf0LDQstC70L7QstC40YcNCivQn9C+0L/QvtCyLCDQktC40LrRgtC+0YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQktGL0YPRh9C10LnRgdC60LjQuSwg0JLRj9GH0LXRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0L7Qv9C+0LIsINCT0LDQstGA0LjQuNC7INCl0LDRgNC40YLQvtC90L7QstC40YcNCivQktGP0YXQuNGA0LXQsiwg0KDRjdC8INCY0LLQsNC90L7QstC40YcNCivQn9C+0L/QvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQk9Cw0LHQuNC00YPQu9C70LjQvSwg0KDQuNC90LDRgiDQk9C40L3QtNGD0LvQu9C+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0KHQtdGA0LPQtdC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0LDQsdGD0L3QuNGPLCDQk9C10L7RgNCz0LjQuSDQktCw0LvQtdGA0YzQtdCy0LjRhw0KK9Cf0L7Qv9C+0LLQsCwg0KLQsNGC0YzRj9C90LAg0JvRjNCy0L7QstC90LANCivQn9C+0L/RhtC+0LIsINCe0LvQtdCzINCc0LDQutGB0LjQvNC+0LLQuNGHDQor0JPQsNC00LbQuNC10LIsINCT0LDQtNC40YEg0JDQsdC00YPQu9C70LDQtdCy0LjRhw0KK9Cf0L7RgNC+0YXQvtCy0YnQuNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCo0LDQu9Cy0L7QstC40YcNCivQk9Cw0LXRgCwg0JXQstC00L7QutC40Y8g0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQn9C+0YLQsNC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQntC70LXQs9C+0LLQuNGHDQor0JPQsNC30LXQtdCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QvtGC0LDQv9C10L3QutC+LCDQkNC70LXQutGB0LDQvdC00YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JPQsNC30LjQt9GD0LvQu9C40L0sINCk0LDRgNC40YIg0KDQsNGE0LjQutC+0LLQuNGHDQor0J/QvtGC0LDQv9C+0LIsINCb0LXQvtC90LjQtCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CT0LDQudC00LDRgCwg0JXQs9C+0YAg0KLQuNC80YPRgNC+0LLQuNGHDQor0J/QvtGC0LDQv9C+0LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0LDQudC00LDRiCwg0JzQsNGA0LjRjyDQmNCy0LDQvdC+0LLQvdCwDQor0J/QvtGF0LzQtdC70LrQuNC9LCDQktC40LrRgtC+0YAg0JLQsNC70LXRgNGM0LXQstC40YcNCivQk9Cw0LnRgdC40L0sINCc0LDQu9C40Log0KTQsNCy0LfQsNCy0LjQtdCy0LjRhw0KK9Cf0L7Rh9C40L3QvtC6LCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9CT0LDQu9Cw0LPQsNC9LCDQlNC80LjRgtGA0LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQn9GA0LXQvNGM0Y/Quiwg0J/QtdGC0YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CT0LDQu9Cw0LfQuNC5LCDQk9GA0LjQs9C+0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQn9GA0LjQvNCw0LrQvtCyLCDQldCy0LPQtdC90LjQuSDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9CT0LDQu9Cw0LfQvtCyLCDQkNGF0YHQsNGA0LHQtdC6INCl0LDQtNC20LjQvNGD0YDQt9Cw0LXQstC40YcNCivQn9GA0LjRhdC+0LTRjNC60L4sINCh0LXRgNCz0LXQuSDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9CT0LDQu9C40LXQsiwg0JDRhdC80LXRgtCz0LDQu9C4INCc0YPRhdCw0LzQtdGC0LPQsNC70LjQtdCy0LjRhw0KK9Cf0YDQvtC60L7Qv9C10L3QutC+LCDQktC10YDQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQk9Cw0LzQt9CwLCDQk9C10L3QvdCw0LTQuNC5INCV0YTQuNC80L7QstC40YcNCivQk9Cw0LzQuNC00L7Qsiwg0JPQsNC80LjQtCDQnNGD0YHRgtCw0YTQsNC10LLQuNGHDQor0J/RgNC+0YXQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9CT0LDQvdC10LXQsiwg0JzRg9C70LvQsNC90YPRgCDQpNCw0YXRgNCw0LfQuNC10LLQuNGHDQor0J/RgNGD0LTQvdC40LrQvtCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQk9Cw0L3RgtCw0LzQuNGA0L7Qsiwg0JHQuNGB0LvQsNC9INCh0LDQudC0LdCQ0LvQuNC10LLQuNGHDQor0J/RgNGD0YHQsNC6LCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQk9Cw0YDQtdC10LIsINCc0LDRhdC80YPRgiDQkNGF0LzQtdGC0L7QstC40YcNCivQn9GD0LfQsNC90L7QstGB0LrQuNC5LCDQkNC00YDQuNCw0L0g0JPQtdC+0YDQs9C40LXQstC40YcNCivQk9Cw0Y7Qu9GM0YHQutC40LksINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0J/Rg9C70LjQutC+0LLRgdC60LjQuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JHQvtGA0LjRgdC+0LLQuNGHDQor0JPQstC+0LfQtNC10LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cf0YPRgtC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPQtNC70Y/QvSwg0KLQtdC70YzQvNCw0L0g0KXQvtGA0LXQvdC+0LLQuNGHDQor0J/Rh9C10LvQutC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQk9C10L3QtdGA0LDQu9C+0LIsINCQ0L3QtNGA0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/Ri9C30LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0LXQvdC10YDQsNC70L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cf0YvQu9GM0L3QtdCyLCDQktC40LrRgtC+0YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQk9C10L3QuNCw0YLRg9C70LjQvSwg0KDQsNCy0LjQu9GMINCk0LDRgNC40YLQvtCy0LjRhw0KK9Cf0Y/RgtC90LjRhtC60LjQuSwg0K7RgNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQk9C10YDQsNGB0LjQvNC10L3QutC+LCDQndC40LrQvtC70LDQuSDQpNC10LTQvtGA0L7QstC40YcNCivQoG/QudGC0LzQsNC9LCDQmNC70YzRjyDQkdC+0YDQuNGB0L7QstC40YcNCivQk9C10YDQsNGB0LjQvNC+0LIsINCh0LXRgNCz0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KDQsNCx0LTQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQoNCw0LHQtNCw0L3QvtCy0LjRhw0KK9CT0LXRgNCw0YnQtdC90LrQviwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0LDQtNGD0LXQsiwg0KHQsNC70LzQsNC9DQor0KDQsNC10LLRgdC60LDRjywg0J3QsNGC0LDQu9C40Y8g0JDQu9C10LrRgdC10LXQstC90LANCivQk9C40L3Qt9Cx0YPRgNCzLCDQodC+0LvQvtC80L7QvSDQmNC30YDQsNC40LvQtdCy0LjRhw0KK9Cg0LDQudC60L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JPQuNGC0LjQvSwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0LDRhdC40LzQvtCyLCDQnNGD0YDRgtCw0LfQsCDQk9GD0LHQsNC50LTRg9C70LvQvtCy0LjRhw0KK9CT0LvQsNC30YzQtdCyLCDQodC10YDQs9C10Lkg0K7RgNGM0LXQstC40YcNCivQoNCw0YXQvNCw0L3QuNC9LCDQktC70LDQtNC40LzQuNGAINCe0LvQtdCz0L7QstC40YcNCivQk9C70L7RgtC+0LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cg0LDRhdC80L7QvdC+0LIsINCt0LzQvtC80LDQu9C4INCo0LDRgNC40L/QvtCy0LjRhw0KK9CT0LvRg9Cx0L7QutC+0LLRgdC60LjQuSwg0JzQuNGF0LDQuNC7INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQoNC10LnQvNCw0L0sINCb0LXQvtC90LjQtCDQlNC+0LTQvtC00LbQvtC90L7QstC40YcNCivQk9C70YPRhdC40YUsINCS0LjQutGC0L7RgCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KDQtdGI0YPQu9GM0YHQutC40LksINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CT0LvRg9GI0LXQvdC60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQldCz0L7RgNC+0LLQuNGHDQor0KDQuNC80YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JvRjNCy0L7QstC40YcNCivQk9C70YPRidC10L3QutC+LCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9Cg0L7Qs9C+0LfQuNC9LCDQlNC80LjRgtGA0LjQuSDQntC70LXQs9C+0LLQuNGHDQor0JPQvtCy0L7RgNC40L0sINCR0L7RgNC40YEg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQoNC+0LTQuNC+0L3QvtCyLCDQmNCz0L7RgNGMINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPQvtCy0L7RgNGD0YXQuNC9LCDQodGC0LDQvdC40YHQu9Cw0LIg0KHQtdGA0LPQtdC10LLQuNGHDQor0KDQvtC00LjQvtC90L7Qsiwg0J/QtdGC0YAg0JjQstCw0L3QvtCy0LjRhw0KK9CT0L7Qu9C10LzQsdC40L7QstGB0LrQuNC5LCDQmNCz0L7RgNGMINCd0LXRgdGC0L7RgNC+0LLQuNGHDQor0KDQvtC00LjQvtC90L7Qsiwg0KHQtdGA0LPQtdC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CT0L7Qu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cg0L7QttC60L7Qsiwg0JLQuNC60YLQvtGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JPQvtC70L7QstC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0JvQtdC+0L3QsNGA0LTQvtCy0LjRhw0KK9Cg0L7QutC10YbQutC40LksINCb0LXQvtC90LjQtCDQrtC70LjQsNC90L7QstC40YcNCivQk9C+0LvQvtCy0LvQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQoNC+0LzQsNC90L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CT0L7QvNCw0L0sINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KDQvtC80LDQvdC+0LIsINCf0LXRgtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JPQvtC90LbQsNGA0L7Qsiwg0J7Qu9C10LMg0J/QsNCy0LvQvtCy0LjRhw0KK9Cg0L7QvNCw0L3QvtCy0YHQutC40LksINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0L7QvdGH0LDRgCwg0J3QuNC60L7Qu9Cw0Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQoNC+0LzQsNGI0LrQuNC9LCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQk9C+0YDQsdCw0YfQtdCyLCDQnNC40YXQsNC40Lsg0KHQtdGA0LPQtdC10LLQuNGHDQor0KDQvtGB0YHQtdC70YwsINCt0LTRg9Cw0YDQtCDQrdGA0LPQsNGA0YLQvtCy0LjRhw0KK9CT0L7RgNCx0LDRh9C10LLQsCwg0KDQsNC40YHQsCDQnNCw0LrRgdC40LzQvtCy0L3QsA0KK9Cg0L7RhdC70LjQvSwg0JvQtdCyINCv0LrQvtCy0LvQtdCy0LjRhw0KK9CT0L7RgNC00LXQtdCyLCDQkNC70LXQutGB0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cg0L7RidC40L3QsCwg0KLQsNGC0YzRj9C90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQk9C+0YDQtNC10LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cg0YPQs9CwLCDQktC70LDQtNC40LzQuNGAINCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0JPQvtGA0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQoNGD0LTQutC40L0sINCu0YDQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JPQvtGA0YjQutC+0LIsINCc0LjRhdCw0LjQuyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KDRg9C00L3QvtCyLCDQntC70LXQsyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JPQvtGA0Y7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQoNGD0LzRj9C90YbQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0K7RgNGM0LXQstC40YcNCivQk9C+0YDRjtC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KDRg9C80Y/QvdGG0LXQsiwg0J7Qu9C10LMg0JPQtdGA0LzQsNC90L7QstC40YcNCivQk9C+0YDRj9GH0LXQsiwg0JLQsNC70LXRgNC40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0JPQvtGA0Y/Rh9C10LIsINCc0LDRgNC6INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0KDRg9GC0LrQvtCy0YHQutC40LksINCe0LvQtdCzINCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9CT0L7RgNGP0YfQtdCyLCDQrtGA0LjQuSDQpNGA0L7Qu9C+0LLQuNGHDQor0KDRg9GG0LrQvtC5LCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPQvtGA0Y/Rh9C10LLQsCwg0KHQstC10YLQu9Cw0L3QsCDQn9C10YLRgNC+0LLQvdCwDQor0KDRg9GI0LDQudC70L4sINCS0LvQsNC00LjQvNC40YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JPQvtGB0YLQtdCyLCDQoNGD0YHQu9Cw0L0g0JPQtdC+0YDQs9C40LXQstC40YcNCivQoNGL0LHQsNC60L7Qsiwg0K7Qu9C40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KDRi9Cx0LrQuNC9LCDQmNCy0LDQvSDQn9C10YLRgNC+0LLQuNGHDQor0JPRgNCw0YfQtdCyLCDQn9Cw0LLQtdC7INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cg0YvQs9Cw0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQvdC00YDQtdC10LLQuNGHDQor0JPRgNC10LHQtdC90L3QuNC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQoNGL0LbQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQoNGL0LbQutC+0LIsINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQk9GA0LXRiNC90LXQstC40LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KDRjtGA0LjQutC+0LIsINCU0LzQuNGC0YDQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0YDQuNCz0L7RgNC40LDQtNC4LCDQktC70LDQtNC40LzQuNGAINCh0YLQuNC70LvQuNCw0L3QvtCy0LjRhw0KK9Cg0Y/QsdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JPRgNC40LPQvtGA0YzQtdCyLCDQktCw0LvQtdGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cg0Y/QsdC+0LIsINCd0LjQutC+0LvQsNC5INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0JPRgNC40LPQvtGA0YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CT0YDQuNGI0LjQvSwg0JLQsNGB0LjQu9C40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQoNGP0LHRg9GF0LjQvSwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPRgNC40YjQutC10LLQuNGHLCDQntC70LXQsyDQn9C10YLRgNC+0LLQuNGHDQor0KHQsNCx0LjRgNC+0LIsINCc0LDRgNCw0YIg0KXQsNC80LfQuNC90L7QstC40YcNCivQk9GA0LjRiNGD0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjRgtCw0LvRjNC10LLQuNGHDQor0KHQsNCy0LXQu9GM0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KHQsNCy0LXQu9GM0LXQsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0KHQtdGA0LPQtdC10LLQuNGHDQor0JPRgNC+0LzQvtCyLCDQkdC+0YDQuNGBINCS0YHQtdCy0L7Qu9C+0LTQvtCy0LjRhw0KK9Ch0LDQstC10LvRjNC10LIsINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JPRgNC+0LzQvtCyLCDQktC70LDQtNC40LzQuNGAINCf0LDQstC70L7QstC40YcNCivQk9GA0L7QvNC+0LIsINCk0LXQu9C40LrRgSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LDQstC40L3Ri9GFLCDQktC40LrRgtC+0YAg0J/QtdGC0YDQvtCy0LjRhw0KK9CT0YDQvtGI0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQn9Cw0LLQu9C+0LLQuNGHDQor0KHQsNCy0LjRhtC60LDRjywg0KHQstC10YLQu9Cw0L3QsCDQldCy0LPQtdC90YzQtdCy0L3QsA0KK9CT0YDRg9GJ0LDQuiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0LDQstC40YbQutC40LksINCS0LjRgtCw0LvQuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KHQsNCy0LjRhtC60LjQuSwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JPRg9Cx0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQsNCy0YfQtdC90LrQviwg0JXQstCz0LXQvdC40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQk9GD0LHQutC40L0sINCY0LPQvtGA0Ywg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KHQsNCy0YfQtdC90LrQviwg0J7Qu9C10LMg0JLQuNGC0LDQu9GM0LXQstC40YcNCivQk9GD0LTQuNC80LAsINCi0LDQvNCw0YDQsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Ch0LDQstGH0YPQuiwg0JLQtdGA0LAg0KHQtdC80LXQvdC+0LLQvdCwDQor0JPRg9C20LLQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQodCw0LPQsNC70LDQtdCyLCDQrdC00YPQsNGA0LQg0JzQuNGF0LDQudC70L7QstC40YcNCivQk9GD0YDQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0LDQtNGH0LjQutC+0LIsINCT0LXQvtGA0LPQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JPRg9GB0LDRgNC+0LLQsCwg0JPQsNC70LjQvdCwINCY0LLQsNC90L7QstC90LANCivQodCw0LXRgtCz0LDQu9C40LXQsiwg0JfQuNGE0LrQsNGCINCY0YHQu9Cw0LzQvtCy0LjRhw0KK9CT0YPRgdC10LIsINCS0LvQsNC00LjQvNC40YAg0JrRg9C30YzQvNC40YcNCivQodCw0LbQuNC90L7Qsiwg0J/QsNCy0LXQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CT0YPRgdC10LIsINCf0LDQstC10Lsg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodCw0LnRhNGD0LvQu9C40L0sINCQ0LvRjNC30LDQvCDQotGD0YXQstCw0YLRg9C70LvQuNC90L7QstC40YcNCivQk9GD0YHQuNC90YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodCw0LnRhNGD0LvQu9C40L0sINCY0L3RgdCw0YQg0KjQsNGA0LjRhNGD0LvQu9C+0LLQuNGHDQor0JPRg9GB0LzQsNC9LCDQrtC70LjQuSDQodC+0LvQvtC80L7QvdC+0LLQuNGHDQor0KHQsNC70LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQk9GD0YHRgtC+0LIsINCS0LDQtNC40Lwg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ch0LDQu9C+0LIsINCV0LLQs9C10L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQk9GD0YHRjNC60L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodCw0LvRh9Cw0LosINCT0LDQu9C40L3QsCDQkNC70LXQutGB0LXQtdCy0L3QsA0KK9CT0YPRhtC10YDQuNC10LIsINCc0LjRhdCw0LjQuyDQodCw0YTQsNGA0LHQtdC60L7QstC40YcNCivQodCw0LvRjNC1LCDQnNCw0YDQuNC90LAg0JXQstCz0LXQvdGM0LXQstC90LANCivQlNCw0LLQuNC00LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0LDQu9GM0L3QuNC60L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQlNCw0LLQuNGC0LDRiNCy0LjQu9C4LCDQldCy0LPQtdC90LjRjyDQrtCy0LDRiNC10LLQvdCwICjQlNC20YPQvdCwKQ0KK9Ch0LDQvdC00LvQtdGALCDQnNCw0YDQs9Cw0YDQuNGC0LAg0KDQtdCy0LzQuNGA0L7QstC90LANCivQlNCw0LLRi9C00LrQuNC9LCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQodCw0L/QuNGA0L4sINCV0LLQs9C10L3QuNC5INCh0LDRg9C70L7QstC40YcNCivQlNCw0LLRi9C00L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXQvNC10L3QvtCy0LjRhw0KK9Ch0LDQv9C+0LbQvdC40LrQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JTQsNCy0YvQtNC+0LIsINCQ0L3QtNGA0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ch0LDRgtCw0YDQvtCyLCDQk9C10L7RgNCz0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQktC40LrRgtC+0YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KHQsNGE0LDRgNC+0LIsINCg0LDQtNC20LDQsSDQodCw0YLRgtCw0YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQktGB0LXQstC+0LvQvtC0INCT0LXQvdC90LDQtNGM0LXQstC40YcNCivQodCw0YTRgNC+0L3QvtCyLCDQktC40YLQsNC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQntC70LXQsyDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0LDRhdCw0YDQutC+0LIsINCu0YDQuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JTQsNCy0YvQtNC+0LIsINCh0LXRgNCz0LXQuSDQktGP0YfQtdGB0LvQsNCy0L7QstC40YcNCivQodCy0LXRh9C90LjQutC+0LIsINCf0LXRgtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQlNCw0LvRjNGB0LrQuNC5LCDQndC40LrQvtC70LDQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LLQuNC90LjQvSwg0KHQtdGA0LPQtdC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQsNC90LjQu9C10L3QutC+LCDQodC10YDQs9C10Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KHQtdCy0LDRgdGC0YzRj9C90L7Qsiwg0JLQuNGC0LDQu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CU0LDQvdC40LvQvtCyLCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0LXQstC10L3QsNGA0LQsINCa0L7QvdGB0YLQsNC90YLQuNC9INCu0YDRjNC10LLQuNGHDQor0JTQsNC90LjQu9C+0LLQsCwg0J3QuNC90LAg0J/QtdGC0YDQvtCy0L3QsA0KK9Ch0LXQstC10L3QsNGA0LQsINCu0YDQuNC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQlNCw0L3Rh9C10L3QutC+LCDQkdC+0YDQuNGBINCY0LLQsNC90L7QstC40YcNCivQodC10LLRgNGO0LPQuNC9LCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LXQu9C10LfQvdC10LIsINCT0LXQvdC90LDQtNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQlNC10LnQvdC10LrQuNC9LCDQn9C10YLRgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ch0LXQu9C10LfQvdC10LIsINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQtdC80LXQvdGC0YzQtdCy0LAsINCd0LDRgtCw0LvRjNGPINCb0LXQvtC90LjQtNC+0LLQvdCwDQor0KHQtdC70LjQstCw0L3QvtCyLCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JTQtdC80LjQtNC+0LIsINCY0LLQsNC9INCY0LLQsNC90L7QstC40YcNCivQodC10LvQuNCy0LXRgNGB0YLQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQtdC80LDQs9C+LCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CU0LXQvdC40YHQtdC90LrQviwg0JHRjdC70LvQsCDQkNC90LDRgtC+0LvRjNC10LLQvdCwDQor0KHQtdC80LXQvdC+0LIsINCS0LjQutGC0L7RgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CU0LXQvdC40YHQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCa0YPQt9GM0LzQuNGHDQor0KHQtdC80LXQvdC+0LIsINCc0LjRhdCw0LjQuyDQmNC90L3QvtC60LXQvdGC0YzQtdCy0LjRhw0KK9CU0LXRgNC10LLRj9C90LrQviwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQtdC80LXQvdC+0LIsINCh0LXRgNCz0LXQuSDQodC10YDQs9C10LXQstC40YcNCivQlNC10YDQuNC/0LDRgdC60LAsINCe0LvQtdCzINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0LXQvNC10L3QvtCyLCDQrtGA0LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JTQtdGA0Y7Qs9C40L0sINCu0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQodC10LzQtdGA0LPQtdC5LCDQm9C10L7QvdC40LQg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQlNC10YDRj9Cx0LjQvSwg0K7RgNC40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQodC10L3QuNC9LCDQk9GA0LjQs9C+0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JTQtdGB0Y/RgtC90LjQutC+0LIsINCS0LDRgdC40LvQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHQtdGA0LPQtdC10LIsINCY0LPQvtGA0Ywg0JTQvNC40YLRgNC40LXQstC40YcNCivQodC10YDQs9C10LXQvdC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LvQvtCy0LjRhw0KK9CU0LbQsNC90LjQsdC10LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KHQtdGA0LPQuNC10L3QutC+LCDQktCw0LvQtdGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JTQttCw0YDQuNC80L7Qsiwg0JDRgdC70LDQvSDQkNC70LjQtdCy0LjRhw0KK9Ch0LXRgNC+0LIsINCS0LDQu9C10YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHQtdGB0LvQsNCy0LjQvdGB0LrQuNC5LCDQnNC40YXQsNC40Lsg0JLQsNC00LjQvNC+0LLQuNGHDQor0JTQt9Cw0YHQvtGF0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Ch0LjQstCw0LosINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQlNC80LjRgtGA0LjQtdCy0LAsINCe0LrRgdCw0L3QsCDQk9C10L3RgNC40YXQvtCy0L3QsA0KK9Ch0LjQs9Cw0YDQtdCyLCDQodC10YDQs9C10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0JTQvNC40YLRgNC40LXQstCwLCDQotCw0YLRjNGP0L3QsCDQkdC+0YDQuNGB0L7QstC90LANCivQodC40LTQvtGA0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CU0L7Qu9Cz0L7Qu9Cw0L/RgtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC40LTQvtGA0L7Qsiwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQodC40LTQvtGA0L7Qsiwg0JzQuNGF0LDQuNC7INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JTQvtC90LTRg9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQuNC80L7QvdC+0LIsINCQ0LvQtdC60YHQtdC5INCa0LjRgNC40LvQu9C+0LLQuNGHDQor0JTQvtGA0LXQvdC60L4sINCh0LXRgNCz0LXQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ch0LjQvNC+0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JTRgNCw0YfQtdCy0YHQutC40LksINCb0LXQvtC90LjQtCDQktCw0LTQuNC80L7QstC40YcNCivQodC40LzQvtC90L7Qsiwg0JzQuNGF0LDQuNC7INCf0LXRgtGA0L7QstC40YcNCivQlNGD0LHQtdC90LXRhtC60LjQuSwg0K/QutC+0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC40YDQvtGC0LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JTRg9Cx0LjQvdC40L0sINCh0LXRgNCz0LXQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHQuNGC0L3QuNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9CU0YPQsdGA0L7QstC40L3QsCwg0JXQu9C10L3QsCDQn9Cw0LLQu9C+0LLQvdCwDQor0KHQutCy0L7RgNGG0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CU0YPRgNGP0LPQuNC9LCDQmNCy0LDQvSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LrQstC+0YDRhtC+0LIsINCh0LXRgNCz0LXQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQlNGD0YjQtdC90L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0K7RgNGM0LXQstC40YcNCivQodC60LvRj9GA0L7Qsiwg0JjQstCw0L0g0J/QtdGC0YDQvtCy0LjRhw0KK9CU0YzRj9GH0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC60L7QutC+0LIsINCu0YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CU0YzRj9GH0LXQvdC60L4sINCi0LDRgtGM0Y/QvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9Ch0LrRg9GA0LDRgtC+0LIsINCu0YDQuNC5INCY0LvRjNC40YcNCivQldCy0YHRgtCw0YTRjNC10LIsINCQ0YDQutCw0LTQuNC5INCS0Y/Rh9C10YHQu9Cw0LLQvtCy0LjRhw0KK9Ch0LrRg9GA0LjRhdC40L0sINCh0LXRgNCz0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LrRg9GA0LvQsNGC0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CV0LPQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCa0LjRgNGM0Y/QvdC+0LLQuNGHDQor0KHQu9Cw0LLQvdGL0LksINCS0LDRgdC40LvQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JXQs9C+0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQodC70LjQstCwLCDQkNC90LDRgtC+0LvQuNC5INCv0LrQvtCy0LvQtdCy0LjRhw0KK9CV0LPQvtGA0L7Qsiwg0JzQuNGF0LDQuNC7INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQodC70LjRgdC60LAsINCb0Y7QsdC+0LLRjCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQvdCwDQor0JXQs9C+0YDQvtCyLCDQndC40LrQvtC70LDQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0LzQtdGC0LDQvdC60LjQvSwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQldCz0L7RgNC+0LIsINCh0LXRgNCz0LXQuSDQldGE0LjQvNC+0LLQuNGHDQor0KHQvNC40YDQvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CV0LvQsNCz0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LzQuNGA0L3QvtCyLCDQktCw0LvQtdGA0LjQuSDQnNCw0YDQutGB0L7QstC40YcNCivQldC70LjRgdC10LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LPQvtGA0LXQstC40YcNCivQodC80LjRgNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQldC70YfQtdCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQodC80LjRgNC90L7Qsiwg0JzQuNGF0LDQuNC7INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CV0LvRjNGG0LjQvSwg0JHQvtGA0LjRgSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LzQvtC70LXQvdGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0J/QsNCy0LvQvtCy0LjRhw0KK9CV0LzQtdC70YzRj9C90L7Qsiwg0JDQu9C10LrRgdC10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQodC80L7Qu9C40L0sINCe0LvQtdCzINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JXQvNC10LvRjNGP0L3QvtCyLCDQnNC40YXQsNC40Lsg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC80L7Qu9GP0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JXQvdGM0LrQvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQodC+0LHQsNC60LjQvSwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQodC+0LHQvtC70LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CV0YDQvNCw0YfQtdC90LrQviwg0KHRgtCw0L3QuNGB0LvQsNCyINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQvtCx0YfQsNC6LCDQkNC90LDRgtC+0LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JXRgNC80LjRiNC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ch0L7QsdGP0L3QuNC9LCDQodC10YDQs9C10Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JXRhNC40LzQvtCyLCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQodC+0LrQvtC7LCDQodCy0Y/RgtC+0YHQu9Cw0LIg0JzQuNGF0LDQudC70L7QstC40YcNCivQldGE0YDQtdC80L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC90YLQvtC90L7QstC40YcNCivQodC+0LrQvtC70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9CW0LDQsdC+0LXQsiwg0JzQsNGF0LzRg9C0INCd0LDQtNC40YDQvtCy0LjRhw0KK9Ch0L7QutC+0LvQvtCyLCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JbQsNC80YHRg9C10LIsINCR0LDQuNGAINCR0LDRj9GB0YXQsNC70LDQvdC+0LLQuNGHDQor0KHQvtC60L7Qu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CW0LTQsNC60LDQtdCyLCDQmNCy0LDQvSDQkNC90LTRgNC10LXQstC40YcNCivQodC+0LrRg9GALCDQlNC80LjRgtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQvtC70L7QstGM0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQr9C60L7QstC70LXQstC40YcNCivQltC10LHRgNC+0LLRgdC60LjQuSwg0KHRgtCw0L3QuNGB0LvQsNCyINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHQvtC70L7QstGM0LXQsiwg0JLQsNC00LjQvCDQn9Cw0LLQu9C+0LLQuNGHDQor0JbQuNC80LjRgNC+0LIsINCS0LDQtNC40Lwg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC+0LvQvtCy0YzQtdCyLCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CW0LjRgNC40L3QvtCy0YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0JLQvtC70YzRhNC+0LLQuNGHDQor0KHQvtC70L7QvNCw0YLQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JbRg9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KHQvtC70L7QvNCw0YLQuNC9LCDQldCz0L7RgCDQrtGA0YzQtdCy0LjRhw0KK9CW0YPQutC+0LLQsCwg0J3QtdC70LvRjyDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Ch0L7Qu9C+0L3QvdC40LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQltGD0LrQvtCy0YHQutC40LksINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KHQvtC70YLQsNCz0LDQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0KTQtdC00L7RgNC+0LLQuNGHDQor0JbRg9GA0LHQtdC90LrQviwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0L7Qu9GD0Y/QvdC+0LIsINCQ0L3QtNGA0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQltGD0YDQutC+LCDQktCw0YHQuNC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0L7RgNC+0LrQuNC90LAsINCV0LvQtdC90LAg0KHRgtCw0L3QuNGB0LvQsNCy0L7QstC90LANCivQl9Cw0LHQtdC50LLQvtGA0L7RgtCwLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0L7RgdC60L7QstC10YYsINCe0LvQtdCzINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQsNCy0LPQsNC10LIsINCU0L7QutGDINCT0LDQv9GD0YDQvtCy0LjRhw0KK9Ch0L7RhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JrQsNC30LHRg9C70LDRgtC+0LLQuNGHDQor0JfQsNCy0LXRgNGO0YXQsCwg0JDQu9C10LrRgdCw0L3QtNGAINCl0LDRgNC70LDQvNC/0LjQtdCy0LjRhw0KK9Ch0L/QuNGA0LjQtNC+0L3QvtCyLCDQrtGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CX0LDQstC40LTQuNGPLCDQkNC90LTRgNC10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KHRgtCw0L3QutC10LLQuNGHLCDQodC10YDQs9C10Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JfQsNC00L7RgNC40L0sINCY0LPQvtGA0Ywg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0KHRgtCw0L3QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQl9Cw0LTQvtGA0L3QvtCyLCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQodGC0LDRgNC60L7Qsiwg0JLQu9Cw0LTQuNGB0LvQsNCyINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9CX0LDQudGG0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ch0YLQsNGA0L7QstC+0LnRgtC+0LLQsCwg0JPQsNC70LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JfQsNC70YvQs9C40L0sINCh0LXRgNCz0LXQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0KHRgtCw0YDQvtC00YPQsdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CX0LDRgNC40YfQsNC90YHQutC40LksINCh0YLQsNC90LjRgdC70LDQsiDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHRgtCw0YDQvtC00YPQsdGG0LXQsiwg0JLQsNGB0LjQu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQl9Cw0YHQu9Cw0LLRgdC60LDRjywg0KLQsNGC0YzRj9C90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Ch0YLQsNGA0L7RgdGC0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CX0LDRgdGC0YDQvtC20L3QsNGPLCDQntC70YzQs9CwINCa0LjRgNC40LvQu9C+0LLQvdCwDQor0KHRgtC10L/QsNC90LrQvtCyLCDQktCw0LvQtdC90YLQuNC9INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQsNGC0YPQu9C40L0sINCa0L7QvdGB0YLQsNC90YLQuNC9INCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ch0YLQtdC/0LDQvdC+0LIsINCQ0L3QtNGA0LXQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CX0LDRhdCw0YDQvtCyLCDQkNC70LXQutGB0LXQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0JLQuNC60YLQvtGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQsNGG0LXQv9C40L3QsCwg0J3QuNC90LAg0JDQvdC00YDQtdC10LLQvdCwDQor0KHRgtC10L/QsNC90L7Qsiwg0JLQuNC60YLQvtGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CX0LLQvtC70LjQvdGB0LrQuNC5LCDQktGP0YfQtdGB0LvQsNCyINCf0LXRgtGA0L7QstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JfQtdC70LXQvdC40L0sINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JfQtdC70LXQvdC60LjQvSwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0KHQtdGA0LPQtdC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CX0LXQu9C10L3QutC40L0sINCS0LjRgtCw0LvQuNC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQotC10LnQvNGD0YDQsNC3INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQtdC70LXQvdC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHRgtC10L/QsNGI0LjQvSwg0KHQtdGA0LPQtdC5INCS0LDQtNC40LzQvtCy0LjRhw0KK9CX0LXQu9C10L3Rgiwg0JjQstCw0L0g0JfQuNCz0LzRg9C90LTQvtCy0LjRhw0KK9Ch0YLQtdGA0LvQuNCz0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JfQtdGA0LXQvdC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQodGC0L7Qu9GP0YDQvtCyLCDQndC40LrQvtC70LDQuSDQodC10YDQs9C10LXQstC40YcNCivQl9C70L7QsdC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0KHRgtC+0LvRj9GA0L7QstCwLCDQndCw0YHQuNC80LAg0JrQsNC70LjQvNC+0LLQvdCwDQor0JfQu9C+0LHQuNC90LAsINCb0LDRgNC40YHQsCDQkNGE0LDQvdCw0YHRjNC10LLQvdCwDQor0KHRgtGA0LDRhdC+0LIsINCQ0LvQtdC60YHQtdC5INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JfQu9C+0YLQvdC40LrQvtCy0LAsINCi0LDQvNCw0YDQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQodGC0YDQtdC60L7Qt9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQl9C+0LvQvtGC0LDRgNC10LIsINCS0LjQutGC0L7RgCDQkdC+0YDQuNGB0L7QstC40YcNCivQl9C+0LvQvtGC0LDRgNC10LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdGC0L7QvdC+0LLQuNGHDQor0KHRg9Cy0L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQl9C+0YDQutCw0LvRjNGG0LXQsiwg0JLQuNC60YLQvtGAINCY0LvRjNC40YcNCivQodGD0LTQsNC60L7Qsiwg0JPRg9GA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CX0L7RgNGM0LrQuNC9LCDQktCw0LvQtdGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0YPQtNCw0YDQtdC90LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CX0L7RgtC40LrQvtCyLCDQkNC70LXQutGB0LXQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ch0YPQu9Cw0LrRiNC40L0sINCh0YLQtdC/0LDQvSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9CX0L7RgtC40L0sINCS0LvQsNC00LjRgdC70LDQsiDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9Ch0YPQu9C10LnQvNC10L3QvtCyLCDQmNCx0YDQsNCz0LjQvCDQkNCx0LTRg9GA0LDRhdC80LDQvdC+0LLQuNGHDQor0KHRg9C70YLQsNC90L7Qsiwg0KDQuNC90LDRgiDQmNGI0LHRg9C70LTQvtCy0LjRhw0KK9CX0YPQsdC+0LIsINCS0LDQu9C10YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHRg9GA0LPQsNC90L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQodC10YDQs9C10LXQstC40YcNCivQl9GL0YDRj9C90L7Qsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0YPRgNC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQl9GO0LPQsNC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQodGD0YDQutC+0LIsINCc0LjRhdCw0LjQuyDQodC10LzQtdC90L7QstC40YcNCivQl9GP0LHQu9C40YbQtdCyLCDQldCy0LPQtdC90LjQuSDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0KHRg9GA0L7Qsiwg0J/QtdGC0YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JjQstCw0L3QtdC90LrQviwg0KHQtdGA0LPQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KHRi9GB0YPQtdCyLCDQntC70LXQsyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LLQsNC90LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQodGL0YfQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCf0LDQstC70L7QstC40YcNCivQmNCy0LDQvdC+0LIsINCS0LDRgdC40LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHRi9GH0LXQsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LDQvdCw0LXQsiwg0JrQuNGA0LjQu9C7INCS0LDQu9C10YDRjNC10LLQuNGHDQor0JjQstCw0L3QvtCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LDRgNCw0L3RhtC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CY0LLQsNC90L7Qsiwg0JjQs9C+0YDRjCDQodC10YDQs9C10LXQstC40YcNCivQotCw0YDQsNGB0L7Qsiwg0JDRgNGC0LXQvCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LDRgNCw0YHQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LDRgNCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JjQstCw0L3QvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9Ci0LDRgtCw0YDQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JjQstCw0L3Rh9C10L3QutC+LCDQm9C10L7QvdC40LQg0JDQvdC00YDQtdC10LLQuNGHDQor0KLQsNGG0Y7QvSwg0JzQuNGA0L7QvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CY0LLQsNC90Y7QttC10L3QutC+0LIsINCR0L7RgNC40YEg0JLQuNC60YLQvtGA0L7QstC40YcNCivQotC10LzQuNGA0LbQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQpdCw0YHQsNC90LHQuNC10LLQuNGHDQor0JjQs9C90LDRgtC10L3QutC+LCDQktC40YLQsNC70LjQuSDQndC40LrQuNGC0LjRhw0KK9Ci0LXRgNC10LHQvtCyLCDQntC70LXQsyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmNCz0L3QsNGC0YzQtdCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0LXRgNC10L3RgtGM0LXQsiwg0JLQsNGB0LjQu9C40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQmNCz0L3QsNGC0YzQtdCyLCDQmtC40YDQuNC70Lsg0JHQvtGA0LjRgdC+0LLQuNGHDQor0KLQtdGA0LXRhdC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LPQvdCw0YLRjNC10LIsINCh0LXRgNCz0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0LXRgtC10LvRjNC80LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmNCz0YDRg9C90L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQotC40LfRj9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQmNCz0YPQvNC90L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQktGP0YfQtdGB0LvQsNCy0L7QstC40YcNCivQotC40YLQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CY0LvQu9Cw0YDQuNC+0L3QvtCyLCDQkNC90LTRgNC10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQotC40YLQvtCyLCDQk9C10YDQvNCw0L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQmNC70YzRjtGI0LXQvdC60L4sINCQ0LvQtdC60YHQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KLQuNGC0L7Qsiwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQu9C10LrRgdC10LXQstC40YcNCivQmNC70YzRj9GB0L7Qsiwg0KHRgtCw0L3QuNGB0LvQsNCyINCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Ci0LjRg9C90L7Qsiwg0J7Qu9C10LMg0JjQstCw0L3QvtCy0LjRhw0KK9CY0LvRjtC80LbQuNC90L7Qsiwg0JrQuNGA0YHQsNC9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KLQuNGF0L7QvNC40YDQvtCyLCDQktCw0LvQtdGA0LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CY0LvRjtGF0LjQvSwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQotC40YXQvtC80LjRgNC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0LvRjtGI0LjQvSwg0JLQuNC60YLQvnAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQotC40YXQvtC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQmNC+0L3QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0L/Qv9C+0LvQuNGC0L7Qsiwg0JrRgdC10L3QvtGE0L7QvdGCINCl0YDQuNGB0YLQvtGE0L7RgNC+0LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CY0YHQsNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQotC40YXQvtC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNC70YzQuNGHDQor0JjRgdCw0LrQvtCyLCDQndC40LrQvtC70LDQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ci0LjRhdC+0L3QvtCyLCDQk9C10L7RgNCz0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KLQuNGI0LrQvtCyLCDQkNC90LTRgNC10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNGI0LzRg9GA0LDRgtC+0LIsINCc0LjQvdC90LjQsNGA0LjRgSDQnNC40L3QuNCz0LDQu9C40LXQstC40YcNCivQotC60LDRh9C10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CY0YnQtdC90LrQviwg0JXQstCz0LXQvdC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Ci0L7Qv9C+0YDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KLQvtC/0L7RgNC60L7Qsiwg0JzQuNGF0LDQuNC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQsNCz0LDQu9C+0LLRgdC60LjQuSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ci0L7Qv9C+0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrQsNC00LDQvdC90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQotC+0YDQu9C+0L/QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KLQvtGB0YPQvdGP0L0sINCT0LDRgNC10LPQuNC9INCQ0YjQvtGC0L7QstC40YcNCivQmtCw0LfQsNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQotC+0YLQuNC10LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0LDQt9Cw0LrQvtCyLCDQm9C10L7QvdC40LQg0JDQvdC00YDQtdC10LLQuNGHDQor0KLQvtGF0YLQsNCx0LjQtdCyLCDQodC10YDQs9C10Lkg0JDQvNC40L3QvtCy0LjRhw0KK9Ca0LDQt9Cw0LrQvtCy0LAsINCg0LjQvNC80LAg0KTQtdC00L7RgNC+0LLQvdCwDQor0KLRgNCw0LLQutC40L0sINCd0LjQutC+0LvQsNC5INCY0LvRjNC40YcNCivQmtCw0LfQsNC60L7QstGG0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0YDQsNC/0LXQt9C90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ca0LDQt9Cw0L3QvdC40LosINCQ0LvQtdC60YHQtdC5INCY0LLQsNC90L7QstC40YcNCivQotGA0LXRgtGM0Y/QutC+0LIsINCS0LjRgtCw0LvQuNC5INCi0L7QstC40LXQstC40YcNCivQotGA0L7RiNC10LIsINCT0LXQvdC90LDQtNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtCw0LfQsNGA0L7Qsiwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KLRgNC+0YjQutC40L0sINCd0LjQutC+0LvQsNC5INCd0LjQutC40YLQuNGHDQor0JrQsNC30LXQvdC90L7Qsiwg0KHQtdGA0LPQtdC5INCu0YDRjNC10LLQuNGHDQor0KLRgNGD0LHQvdC40LrQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCY0LLQsNC90L7QstC40YcNCivQotGA0YPRiNC90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JrQsNC70LDQvNCw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LLQtNCw0YjQtdCy0LjRhw0KK9Ci0YPQu9C10LXQsiwg0JDQvNCw0L0t0LPQtdC70YzQtNGLINCc0L7Qu9C00LDQs9Cw0LfRi9C10LLQuNGHDQor0JrQsNC70LDRh9C10LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LDQtNC40Lwg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0LDQu9Cw0YjQvdC40LrQvtCyLCDQodC10YDQs9C10Lkg0JLRj9GH0LXRgdC70LDQstC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtCw0LvRg9Cz0LjQvSwg0J7Qu9C10LMg0JTQsNC90LjQu9C+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LDQu9GO0LbQvdGL0LksINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0KLRg9C80LDQvdC+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtCw0LvRj9Cz0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0YPQv9C+0LvQtdCyLCDQkNC70LXQutGB0LXQuSDQkNC90LTRgNC10LXQstC40YcNCivQmtCw0LzRi9GI0LjQvdGB0LrQuNC5LCDQndC40LrQvtC70LDQuSDQkNC60LjQvNC+0LLQuNGHDQor0KLRg9GA0YPRgdC40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0JDRhNCw0L3QsNGB0YzQtdCy0LjRhw0KK9Ca0LDQvdCw0LXQsiwg0JvQtdC+0L3QuNC0INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KLRjtC70YzQutC40L0sINCS0LjQutGC0L7RgCDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9Ca0LDRgNCw0LPQsNC90L7Qsiwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KLRj9Cz0YPQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0LDRgNCw0L/QtdGC0Y/QvSwg0KHQsNCw0Log0JDQu9GM0LHQtdGA0YLQvtCy0LjRhw0KK9Ci0Y/QttC70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0LDRgNC10LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQo9Cx0L7QttC60L4sINCb0LXQsiDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JrQsNGA0LXQu9C40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cj0LLQsNGA0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LDRgNC10LvQvtCy0LAsINCT0LDQu9C40L3QsCDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Cj0LTRg9Cz0L7Qsiwg0JzQvtCy0LvQsNC00LgNCivQmtCw0YDQuNC80L7QstCwLCDQlNCw0L3QuNGPINCu0YHRg9GE0L7QstC90LANCivQo9C70YzQsdCw0YjQtdCyLCDQnNGD0YXQsNGA0LHQuCDQnNCw0LPQvtC80LXQtNC+0LLQuNGHDQor0JrQsNGA0L/QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0KPQu9GO0LrQsNC10LIsINCQ0LvQtdC60YHQtdC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Ca0LDRgNC/0L7Qsiwg0KHRgtCw0L3QuNGB0LvQsNCyINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQo9C80LDQu9Cw0YLQvtCy0LAsINCh0LDQttC4INCX0LDQudC90LTQuNC90L7QstC90LANCivQmtCw0YHQsNGC0L7QvdC+0LIsINCY0LPQvtGA0Ywg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KPRgNCw0LfQsdCw0LXQsiwg0J3Rg9GA0LvQsNC9INCj0LvQsNC90L7QstC40YcNCivQmtCw0YHRjNGP0L3QvtCyLCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQo9GA0LjQvdGB0L7QvSwg0K/QutC+0LIg0JzQvtC40YHQtdC10LLQuNGHDQor0JrQsNGC0LDQu9GM0L3QuNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Cj0YHRgtC40L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQstCw0YjQvdC40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQo9GB0YLRjtCz0L7Qsiwg0JLQsNC70LXRgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC10YfQutC40L0sINCS0LDQu9C10YDQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KPRgtC60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JrQuNCx0LjRgNC10LIsINCR0L7RgNC40YEg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cj0YLQutC40L0sINCu0YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQuNCy0LXQu9C40LTQuCwg0JjQstCw0L0g0KXQsNGA0LvQsNC80L/QuNC10LLQuNGHDQor0KPRiNCw0LrQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCu0YDRjNC10LLQuNGHDQor0JrQuNC90LXQu9C10LIsINCS0LvQsNC00LjQvNC40YAg0JPQtdC+0YDQs9C40LXQstC40YcNCivQpNCw0LvQsNC70LXQtdCyLCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC40YDQuNC10L3QutC+LCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC70LXQvdC+0LLQuNGHDQor0KTQsNGA0YXRg9GC0LTQuNC90L7Qsiwg0JjQs9C+0YDRjCDQn9Cw0LLQu9C+0LLQuNGHDQor0JrQuNGA0LjQu9C7LCDQvNC40YLRgNC+0L/QvtC70LjRgg0KK9Ck0LXQtNC+0YDQvtCyLCDQkdC+0YDQuNGBINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQmtC40YDQv9C40YfQvdC40LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ck0LXQtNC+0YDQvtCyLCDQktCw0LvQtdGA0LjQuSDQktCw0LvQtdGA0YzQtdCy0LjRhw0KK9Ca0LjRgNC/0LjRh9C90LjQutC+0LIsINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KTQtdC00L7RgNC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JrQuNGA0L/QuNGH0L3QuNC60L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpNC10LTQvtGA0L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC40YHQtdC70LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KTQtdC00L7RgNC+0LIsINCh0LLRj9GC0L7RgdC70LDQsiDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LjRgdC10LvQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KTQtdC00L7RgdC10LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0LjRgdC10LvQtdCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ck0LXQtNC+0YHQtdC10LLQsC3QqNGD0LrRiNC40L3QsCwg0JvQuNC00LjRjyDQndC40LrQvtC70LDQtdCy0L3QsA0KK9Ca0LjRgdC10LvQtdCyLCDQntC70LXQsyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQpNC10LTQvtGB0L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQmtC40YHQu9GO0LosINCc0LjRhdCw0LjQuyDQkdC+0YDQuNGB0L7QstC40YcNCivQpNC10LTRg9C70L7QstCwLCDQkNC70LXQstGC0LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JrQuNGGLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KTQtdC00YPRgtC40L3QvtCyLCDQrtGA0LjQuSDQrtGA0YzQtdCy0LjRhw0KK9Ca0LvQtdCx0LDQvdC+0LIsINCY0LvRjNGPINCY0L7RgdC40YTQvtCy0LjRhw0KK9Ck0LjQu9Cw0YLQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHDQor0JrQu9C40LzQsNC90YLQvtCy0LAsINCT0LDQu9C40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0KTQuNC70LjQvNC+0L3QvtCyLCDQktCw0LTQuNC8INCU0L7QvdCw0YLQvtCy0LjRhw0KK9Ca0LvRj9C80LrQuNC9LCDQmNCz0L7RgNGMINCc0L7QuNGB0LXQtdCy0LjRhw0KK9Ck0LjQu9C40L0sINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L3Ri9GILCDQktCw0LvQtdC90YLQuNC9INCk0LjQu9C40L/Qv9C+0LLQuNGHDQor0KTQuNC70LjQv9C10L3QutC+LCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0LHQtdC70LXQsiwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KTQuNC70LjQv9C/0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0L7QsdC10YYsINCa0L7QvdGB0YLQsNC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQpNC40LvQuNC/0L/QvtCyLCDQn9C10YLRgCDQodC10YDQs9C10LXQstC40YcNCivQmtC+0LHQt9C+0L0sINCY0L7RgdC40YQg0JTQsNCy0YvQtNC+0LLQuNGHDQor0KTQuNC70YzRiNC40L0sINCc0LjRhdCw0LjQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtC+0LHRi9C70LrQuNC9LCDQktCw0YHQuNC70LjQuSDQpNC10LTQvtGA0L7QstC40YcNCivQpNC40L3RjNC60L4sINCe0LvQtdCzINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQr9C60L7QstC70LXQstC40YcNCivQpNC+0LzQuNC90YbQtdCyLCDQodC10YDQs9C10Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ca0L7QstCw0LvQtdCyLCDQktCw0LvQtdC90YLQuNC9INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KTQvtGA0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCV0LLQs9C10L3RjNC10LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCd0LjQutC+0LvQsNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KTRgNCw0LTQutC+0LIsINCc0LjRhdCw0LjQuyDQldGE0LjQvNC+0LLQuNGHDQor0JrQvtCy0LDQu9C10LIsINCh0LXRgNCz0LXQuSDQkNC00LDQvNC+0LLQuNGHDQor0KTRgNCw0L3Quiwg0KHQtdGA0LPQtdC5INCe0YLRgtC+0LLQuNGHDQor0JrQvtCy0LDQu9C10L3QvtC6LCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KXQsNCx0LDRgNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQmtC+0LLQsNC70YzRgdC60LjQuSwg0JvQtdC+0L0g0JjQvtGB0LjRhNC+0LLQuNGHDQor0KXQsNCx0LDRgNC+0LIsINCe0LvQtdCzINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Ca0L7QstC70Y/Qs9C40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KXQsNC60LDQvNCw0LTQsCwg0JjRgNC40L3QsCDQnNGD0YbRg9C+0LLQvdCwDQor0JrQvtCz0LDQvSwg0JXQstCz0LXQvdC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KXQsNC80LDQtdCyLCDQkNC30LDRgiDQmtC40Y/QvNC+0LLQuNGHDQor0JrQvtC20L7QutC40L0sINCV0LLQs9C10L3QuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KXQsNGA0LjRgtC+0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Ca0L7Qt9Cw0LosINCU0LzQuNGC0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KXQsNGA0LjRgtC+0L3QvtCyLCDQldCy0LPQtdC90LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0L7Qt9C10YDQsNC00YHQutC40LksINCQ0L3QsNGC0L7Qu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpdCw0YDQuNGC0L7QvdC+0LIsINCd0LjQutC+0LvQsNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrQvtC30LjRhtGL0L0sINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQpdCw0YLRgtCw0LEsICjQpdCw0LHQuNCxINCQ0LHQtNGD0Lsg0KDQsNGF0LzQsNC9KQ0KK9Ca0L7Qt9C70L7Qsiwg0JDQvdC00YDQtdC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cl0LLQsNGC0LrQvtCyLCDQndC40LrQvtC70LDQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JrQvtC30LvQvtCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cl0LjQttCwLCDQk9C10L7RgNCz0LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7Qt9GL0YDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cl0LvRi9GB0YLRg9C9LCDQktC40LrRgtC+0YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC+0LfRi9GA0LXQsiwg0JDQvdC00YDQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cl0L7QtNC+0YDQutC+0LLRgdC60LjQuSwg0JzQuNGF0LDQuNC7INCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0L7Qt9GL0YDQtdCy0LAsINCQ0LvQtdC60YHQsNC90LTRgNCwINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0KXQvtC00YvRgNC10LIsINCT0LXQvdC90LDQtNC40Lkg0JzQsNC60YHQuNC80L7QstC40YcNCivQmtC+0LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNGD0YXQsNC80LXQtNC+0LLQuNGHDQor0KXQvtC70L7QtCwg0JvQtdC+0L3QuNC0INCY0LLQsNC90L7QstC40YcNCivQmtC+0LrQvtGI0LjQvSwg0JDQvdC00YDQtdC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQpdC+0YXQu9C+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtC+0LvQtdGB0L3QuNC60L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQpdC+0YXRgNGP0LrQvtCy0LAsINCe0LvRjNCz0LAg0KHQtdGA0LPQtdC10LLQvdCwDQor0JrQvtC70LXRgdC90LjQutC+0LIsINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KXRgNC40L/QtdC70YwsINCT0LXQvdC90LDQtNC40Lkg0KLQuNC80L7RhNC10LXQstC40YcNCivQpdGA0LjRgdGC0LXQvdC60L4sINCS0LjQutGC0L7RgCDQkdC+0YDQuNGB0L7QstC40YcNCivQmtC+0LvRjtGI0LjQvSwg0JXQstCz0LXQvdC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cl0YDRg9GB0YLQsNC70LXQsiwg0JPQtdGA0LzQsNC9INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtC80LDRgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQpdGD0LHQuNC10LIsINCS0LvQsNC00LjQvNC40YAg0JjRgdC70LDQvNC+0LLQuNGHDQor0JrQvtC80LDRgNC+0LIsINCV0LLQs9C10L3QuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Cl0YPRgtCw0L3QvtCyLCDQm9C10L7QvdC40LQg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtC+0LzQsNGA0L7QstGB0LrQuNC5LCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtC+0LzQvtCyLCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cm0LLQtdGC0LrQvtCyLCDQktCw0LvQtdC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQmtC+0LzRh9Cw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cm0LjQsdC70LjQtdCyLCDQktCw0YHQuNC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7QvdC00YDQsNGC0LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCY0LPQvdCw0YLQvtCy0LjRhw0KK9Cm0LjQutGDLCDQmtCw0LfQsdC10Log0JDRgdC70LDQvdCx0LXRh9C10LLQuNGHDQor0JrQvtC90LTRgNCw0YLRjNC10LIsINCT0LXQvtGA0LPQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQmtC+0L3QvtC90L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cn0LDQudC60LAsINCu0YDQuNC5INCv0LrQvtCy0LvQtdCy0LjRhw0KK9Ca0L7QvdGB0YLQsNC90YLQuNC90L7Qsiwg0JjQu9GM0Y8g0JLQu9Cw0LTQuNGB0LvQsNCy0L7QstC40YcNCivQp9Cw0L/RgtGL0L3QvtCyLCDQktCw0LvQtdGA0L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQmtC+0L3RgtCw0YjQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCf0LDQstC70L7QstC40YcNCivQp9Cw0YXQutC40LXQsiwg0JHQsNGI0LjRgCDQkNGF0LzQtdC00L7QstC40YcNCivQp9C10YDQtdC/0LrQvtCyLCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L7RgNCz0YPQvdGO0LosINCu0YDQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQp9C10YDQutC10YHQvtCyLCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0YDQttCw0LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQp9C10YDQvdC10L3QutC+LCDQkNC90LTRgNC10Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ca0L7RgNC90LjQtdC90LrQviwg0JLQuNC60YLQvtGAINCj0LvRjNGP0L3QvtCy0LjRhw0KK9Cn0LXRgNC90LjRh9C10L3QutC+LCDQrtGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ca0L7RgNC90LjQu9C+0LLQsCwg0JfQvtGPINCQ0YTQsNC90LDRgdGM0LXQstC90LANCivQp9C10YDQvdC+0LPQvtGA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JrQvtGA0L3Rg9C60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cn0LXRgNC90L7QvNGL0YDQtNC40L0sINCS0LjQutGC0L7RgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7RgNC+0LLQvdC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQtdC90LjQtNC40LrRgtC+0LLQuNGHDQor0KfQtdGA0L3Ri9C5LCAo0KfQtdGA0L3QvtC5KSDQnNC40YXQsNC40Lsg0KHQtdC80LXQvdC+0LLQuNGHDQor0JrQvtGA0L7Qu9C10LIsINCe0LvQtdCzINCf0LXRgtGA0L7QstC40YcNCivQp9C10YDQvdGL0YjQtdCyLCDQkNC70LXQutGB0LXQuSDQkNC90LTRgNC10LXQstC40YcNCivQmtC+0YDQvtGC0LrQvtCyLCDQm9C10L7QvdC40LQg0JLQuNC60YLQvtGA0L7QstC40YcNCivQp9C10YDQvdGL0YjQtdCyLCDQktCw0YHQuNC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGA0YHQsNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQp9C10YHQvdCw0LrQvtCyLCDQkNC70LXQutGB0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0L7RgNGB0YPQvSwg0K7RgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQp9C10YLQuNC9LCDQmNCy0LDQvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7RgNGI0YPQvdC+0LIsINCb0LXQsiDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cn0LXRhdC+0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Ca0L7RgdC40LrQvtCyLCDQnNC40YXQsNC40Lsg0KTQuNC70LjQv9C/0L7QstC40YcNCivQp9C10YfQtdCy0LDRgtC+0LIsINCS0LjQutGC0L7RgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Ca0L7RgdGC0LXRgNC40L0sINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KfQuNC60LjQvSwg0JLQsNC70LXQvdGC0LjQvSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0L7RgdGC0LjQvSwg0JPQtdC+0YDQs9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQp9C40LvQuNC90LPQsNGA0L7Qsiwg0JDRgNGC0YPRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0L7RgdGC0L7QtdCyLCDQmNGB0YHQsCDQnNCw0LPQvtC80LXQtNC+0LLQuNGHDQor0KfQuNGB0YLQvtGF0L7QtNC+0LLQsCwg0KDQuNGC0LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQmtC+0YHRgtGO0YLQutC40L0sINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQp9GD0LEsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0KfRg9Cx0LDQudGBLCDQkNC90LDRgtC+0LvQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0L7RgtC10LvQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KfRg9C80LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0L7RgtC10L3QutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cn0YPQvdGM0LrQvtCyLCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGC0LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0KfRg9GA0LjQu9C+0LIsINCQ0LvQtdC60YHQtdC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JrQvtGFLCDQkNC70YzRhNGA0LXQtCDQoNC10LnQvdCz0L7Qu9GM0LTQvtCy0LjRhw0KK9Cn0YPRgNC60LjQvSwg0JPQtdC90L3QsNC00LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtGI0LXQstCwLCDQktC40L7Qu9C10YLRgtCwINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LANCivQqNCw0LHQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtGI0LXQu9GO0LosINCc0LjRgNC+0YHQu9Cw0LIg0JXQstCz0LXQvdGM0LXQstC40YcNCivQqNCw0LHQsNC90L7Qsiwg0JjQstCw0L0g0JzQuNGF0LDQudC70L7QstC40YcNCivQmtC+0YjQutC40L0sINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0KjQsNCx0LTRg9GA0LDRgdGD0LvQvtCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Co0LDQsdGD0L3QuNC9LCDQmNCy0LDQvSDQn9C10YLRgNC+0LLQuNGHDQor0JrRgNCw0LLQtdGGLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQqNCw0LPQuNC00YPQu9C40L0sINCQ0L3QstC10YAg0JPQsNC70LvRj9C80L7QstC40YcNCivQmtGA0LDQstGG0L7Qsiwg0K7RgNC40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Co0LDQuNC90YHQutC40LksINCS0LvQsNC00LjQvNC40YAg0K/QutC+0LLQu9C10LLQuNGHDQor0JrRgNCw0LLRh9GD0LosINCb0LXQvtC90LjQtCDQnNCw0LrQsNGA0L7QstC40YcNCivQqNCw0LnQvNC40LXQsiwg0JzQuNC90YLQuNC80LXRgCDQqNCw0YDQuNC/0L7QstC40YcNCivQmtGA0LDQv9C40LLQuNC9LCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0LDQutC60YPQvCwg0JzQsNGA0YLQuNC9INCb0Y7RhtC40LDQvdC+0LLQuNGHDQor0JrRgNCw0YHQvdC40LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQpNC10LTQvtGA0L7QstC40YcNCivQqNCw0LzQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JrRgNCw0YHQvdC+0LIsINCc0LjRhdCw0LjQuyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Co0LDQvdC00YvQsdC40L0sINCS0LDRgdC40LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQmtGA0LDRiNC10L3QuNC90L3QuNC60L7Qsiwg0J/QsNCy0LXQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQqNCw0L/QvtCy0LDQu9GM0Y/QvdGGLCDQkNC90LTRgNC10Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQmtGA0LXQvNC10L3QtdGGLCDQmNGA0LjQvdCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0KjQsNC/0L7RiNC90LjQutC+0LIsINCV0LLQs9C10L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQmtGA0LXRgdGBLCDQktC40LrRgtC+0YAg0JzQtdC70YzRhdC40L7RgNC+0LLQuNGHDQor0KjQsNGA0LDQv9C+0LIsINCS0LvQsNC00LjQvNC40YAg0KTQtdC00L7RgNC+0LLQuNGHDQor0JrRgNC10YHRgtGM0Y/QvdC40L3QvtCyLCDQldCy0LPQtdC90LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQqNCw0YDQvtCy0LAsINCT0LDQu9C40L3QsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Ca0YDQuNCy0LXQu9GM0YHQutCw0Y8sINCd0LjQvdCwINCS0LjQutGC0L7RgNC+0LLQvdCwDQor0KjQsNGC0LDQu9C40L0sINCh0YLQsNC90LjRgdC70LDQsiDQodC10YDQs9C10LXQstC40YcNCivQmtGA0YPQs9C70LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Co0LDRgtCw0LvQvtCyLCDQodC10YDQs9C10Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQmtGA0YPQs9C70L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodC10YDQs9C10LXQstC40YcNCivQqNCw0YTRgNCw0L3QuNC6LCDQrtGA0LjQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JrRgNGD0L/QvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Co0LDRhdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtGA0Y7Rh9C60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Co0LDRhdGA0LDQuSwg0KHQtdGA0LPQtdC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrRg9Cy0LDQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQqNCw0YjRg9GA0LjQvSwg0KHQtdGA0LPQtdC5INCf0LXRgtGA0L7QstC40YcNCivQmtGD0LLRiNC40L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Co0LLQtdGGLCDQm9GO0LHQvtCy0Ywg0J3QuNC60LjRgtC40YfQvdCwDQor0JrRg9C00LXQu9C40L3QsCwg0JvRjtCx0L7QstGMINCa0L7QvdC00YDQsNGC0YzQtdCy0L3QsA0KK9Co0LLQuNC00LvQtdGALCDQldCy0LPQtdC90LjQuSDQnNCw0YDQutC+0LLQuNGHDQor0JrRg9C00YDQuNC9LCDQkNC70LXQutGB0LXQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Co0LLRi9C00LrQvtC5LCDQnNC40YXQsNC40Lsg0JXRhNC40LzQvtCy0LjRhw0KK9Ca0YPQtdCy0LTQsCwg0JPRgNC40LPQvtGA0LjQuSDQkNC90LTRgNC10LXQstC40YcNCivQqNC10LLQtdC70YPRhdCwLCDQktC40LrRgtC+0YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KjQtdCy0YfQtdC90LrQviwg0JLRj9GH0LXRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCR0L7RgNC40YEg0K7RgNGM0LXQstC40YcNCivQqNC10LLRh9C10L3QutC+LCDQrtGA0LjQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Co0LXQudC90LjRgSwg0JLQuNC60YLQvtGAINCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQrtGA0YzQtdCy0LjRhw0KK9Co0LXQu9C40YksINCf0LXRgtGAINCR0L7RgNC40YHQvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCb0LXQvtC90YLQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KjQtdC90LjQvSwg0J7Qu9C10LMg0KHQtdC80LXQvdC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0JzQuNGF0LDQuNC7INCS0LDRgNGE0L7Qu9C+0LzQtdC10LLQuNGHDQor0KjQtdC90LrQsNGA0LXQsiwg0J7Qu9C10LMg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQrtGA0LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0KjQtdGB0YLQsNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JrRg9C30YzQvNC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQqNC10YHRgtCw0LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQrtGA0YzQtdCy0LjRhw0KK9Ca0YPQu9C10YjQvtCyLCDQntC70LXQsyDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Co0LjQv9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQmtGD0LvQuNC6LCDQk9C10L3QvdCw0LTQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KjQuNGI0LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JrRg9C70LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Co0LrQuNGA0LrQviwg0JDQvdCw0YLQvtC70LjQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JrRg9C70LjQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0KjQvNCw0LrQvtCyLCDQnNC40YXQsNC40Lsg0JLQuNC60YLQvtGA0L7QstC40YcNCivQmtGD0LvRjNCx0LDQutCwLCDQndC40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0KjQvNCw0YLQvtCyLCDQrtGA0LjQuSDQkNC90LjRgdC40LzQvtCy0LjRhw0KK9Ca0YPQu9GM0Y/QvdC+0LIsINCV0LLQs9C10L3QuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KjQvNC10LvQtdCyLCDQndC40LrQvtC70LDQuSDQn9C10YLRgNC+0LLQuNGHDQor0JrRg9C70Y/RgdC+0LLQsCwg0J3QuNC90LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQqNC+0LnQs9GDLCDQodC10YDQs9C10Lkg0JrRg9C20YPQs9C10YLQvtCy0LjRhw0KK9Ca0YPQvNCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KjQvtGF0LjQvSwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrRg9C/0YbQvtCyLCDQktCw0LvQtdC90YLQuNC9INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KjQv9C40LPQtdC70YwsINCb0LXQvtC90LjQtCDQotC10L7QtNC+0YDQvtCy0LjRhw0KK9Ca0YPRgNCw0LzQuNC9LCDQktC70LDQtNC40LzQuNGAINCf0LXRgtGA0L7QstC40YcNCivQqNGC0L7Qs9GA0LjQvSwg0KHQtdGA0LPQtdC5INCY0LLQsNC90L7QstC40YcNCivQmtGD0YDQsdCw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KjRgtGL0LPQsNGI0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0YPRgNCz0LjQvdGP0L0sINCh0LXRgNCz0LXQuSDQldGA0LLQsNC90LTQvtCy0LjRhw0KK9Co0YPQsdCwLCDQktC40YLQsNC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQmtGD0YDQutC+0LLQsCwg0JHRjdC70LvQsCDQkNC70LXQutGB0LXQtdCy0L3QsA0KK9Co0YPQsdC40L3QsCwg0KLQsNGC0YzRj9C90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Ca0YPRgNC+0LXQtNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0YPRgNC+0YfQutC40L0sINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0YPQs9GD0YDQvtCyLCDQoNCw0YHRg9C70Ywg0JjQs9C00LjRgdCw0LzQvtCy0LjRhw0KK9Cb0LDQv9C40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Co0YPQvNC10LnQutC+LCDQktC70LDQtNC40LzQuNGAINCk0LjQu9C70LjQv9C+0LLQuNGHDQor0JvQsNC/0YLQtdCyLCDQmNCy0LDQvSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Co0YPRgNGH0LDQvdC+0LIsINCS0LDQu9C10L3RgtC40L0g0KHQtdGA0LPQtdC10LLQuNGHDQor0JvQsNC/0YjQuNC9LCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9Co0YPRgtC10LXQsiwg0JLQsNGB0LjQu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LDRgNC40L7QvdC+0LIsINCV0LPQvtGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KjRg9GI0LrQtdCy0LjRhywg0KHRgtCw0L3QuNGB0LvQsNCyINCh0YLQsNC90LjRgdC70LDQstC+0LLQuNGHDQor0JvQsNGA0LjRhtC60LjQuSwg0JLQu9Cw0LTQuNC80LjRgCDQldGA0LzQvtC70LDQtdCy0LjRhw0KK9Cp0LXQutC+0YfQuNGF0LjQvSwg0K7RgNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cb0LDRhdC+0LLQsCwg0JXQutCw0YLQtdGA0LjQvdCwINCk0LjQu9C40L/Qv9C+0LLQvdCwDQor0KnQtdGA0LHQsNC6LCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JvQsNGG0LjRgSwg0J7RgtGC0L4g0KDRg9C00L7Qu9GM0YTQvtCy0LjRhw0KK9Cp0LXRgNCx0LDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LXQsdC10LTQtdCyLCDQktGP0YfQtdGB0LvQsNCyINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0K3QsdC30LXQtdCyLCDQkdC+0YDQuNGBINCh0LDRhNCw0YDQvtCy0LjRhw0KK9Cb0LXQsdC10LTRjCwg0JDQu9C10LrRgdCw0L3QtHAg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0LXQsdC10LTRjCwg0JDQu9C10LrRgdC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cu0LzQsNGI0LXQsiwg0JLQsNC70LXQvdGC0LjQvSDQkdC+0YDQuNGB0L7QstC40YcNCivQm9C10LzQtdGI0LXQsiwg0JzQuNGF0LDQuNC7INCv0LrQvtCy0LvQtdCy0LjRhw0KK9Cu0YDQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cb0LXQvNC10YjQvtCyLCDQk9C10L3QvdCw0LTQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cu0YDRh9C40LosINCS0LvQsNC00LjRgdC70LDQsiDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JvQtdC+0L3QuNC0LCDQndC40LrQvtC70LDQtdCy0LjRhyDQp9C10YDQvdGL0YjQtdCyDQor0K7RgNGM0LXQsiwg0JzQuNGF0LDQuNC7INCX0LjQvdC+0LLRjNC10LLQuNGHDQor0K7RiNC10L3QutC+0LIsINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LXQvtC90YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0K/QstC70LjQvdGB0LrQuNC5LCDQk9GA0LjQs9C+0YDQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JvQtdGB0LjQvSwg0JzQuNGF0LDQuNC7INCu0YDRjNC10LLQuNGHDQor0K/QutC40LzQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JvQtdGD0YjQutC40L0sINCh0LXRgNCz0LXQuSDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0K/QutC40LzQvtCyLCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQm9C40LLRiNC40YYsINCQ0LvQtdC60YHQsNC90LTRgCDQr9C60L7QstC70LXQstC40YcNCivQr9C60L7QstC70LXQsiwg0JLQtdC90LjQsNC80LjQvSDQpNC10LTQvtGA0L7QstC40YcNCivQm9C40LzQvtC90L7QsiwgKNCh0LDQstC10L3QutC+KSDQrdC00YPQsNGA0LQg0JLQtdC90LjQsNC80LjQvdC+0LLQuNGHDQor0K/QutC+0LLQu9C10LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cb0LjQvdC90LjQuiwg0JLQuNGC0LDQu9C40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQr9C60L7QstC70LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LjQv9C40YbQutC40LksINCS0LDRgdC40LvQuNC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9Cv0LrRg9Cx0L7QstC40YcsINCb0LXQvtC90LjQtCDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9Cb0LjQv9GB0LjRhiwg0JjQs9C+0YDRjCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQr9C60YPQvdC40L0sINCT0LvQtdCxINCf0LDQstC70L7QstC40YcNCivQm9C40YHQtdGG0LrQuNC5LCDQn9C10YLRgCDQmNCy0LDQvdC+0LLQuNGHDQor0K/QutGD0YgsINCc0LjRhdCw0LjQuyDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cb0LjRgdC40YbQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQr9C60YPRiNC60LjQvSwg0JTQvNC40YLRgNC40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQm9C40YHQuNGH0LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0K/QvdC00LDRgNCx0LjQtdCyLCDQl9C10LvQuNC80YXQsNC9INCQ0LHQtNGD0LzRg9GB0LvQuNC80L7QstC40YcNCivQm9C40YHQvtCy0YHQutC40LksINCh0LXRgNCz0LXQuSDQpNC10LTQvtGA0L7QstC40YcNCivQr9C90LrQvtCy0YHQutC40LksINCQ0YDQutCw0LTQuNC5INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0JvQuNGF0LDQvdC+0LIsINCQ0LvRjNCx0LXRgNGCINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQr9GA0LjRhdCw0L3QvtCyLCDQpdC+0LYt0JDRhdC80LXQtA0KK9Cb0LjRhdCw0YfQtdCyLCDQktCw0YHQuNC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LjRhdCw0YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0K/RgNC+0YHQu9Cw0LLRhtC10LIsINCS0LvQsNC00LjQvNC40YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cb0L7QsdCw0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0K/RgNC+0YjQtdC90LrQviwg0JDQvdCw0YLQvtC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0K/RgNGD0LvQu9C40L0sINCS0LDRhNCwINCh0LXQudGC0LHQsNGC0YLQsNC70L7QstC40YcNCivQm9C+0LPQuNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0K7RgNGM0LXQstC40YcNCivQr9GA0YvQs9C40L3QsCwg0KLQsNGC0YzRj9C90LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0JvQvtC00LrQuNC9LCDQrtGA0LjQuSDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Cv0YHQuNC9LCDQldCy0LPQtdC90LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JvQvtC30LjQvdGB0LrQsNGPLCDQltCw0L3QvdCwINCc0LjRhdCw0LnQu9C+0LLQvdCwDQor0K/RgdGC0YDQttC10LzQsdGB0LrQuNC5LCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JvQvtC/0LDRgtC40L0sINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQr9GF0LjQvSwg0KXQsNC70LjRgiDQkNGF0LzQtdGC0L7QstC40YcNCivQm9C+0YLQvtGA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0K/RhtC60LXQstC40YcsINCR0L7RgNC40YEg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQm9GD0LbQutC+0LIsINCu0YDQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNILnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTE4ZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQKQEAgLTAsMCArMSw2MTI1NCBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivEjEHEjEnEhiBBTEVLU0FOREFSCivEjEHEjEnEhiBKRUxJQ0EKK8SMQcSMScSGIE1BUklKQQorxIxBxIxJxIYgTklLT0xBCivEjEHEjElKQSBCUkFOS08KK8SMQcSQRU5PVknEhiDFvUFSS08KK8SMQcSQRU5PVknEhiBTQUJJTkEKK8SMQUJBSSBBTkRSSUpBCivEjEFCQUkgTEFKT8WgCivEjEFCQUkgTUFSSUpBCivEjEFCQUkgU1RFVkFOCivEjEFCQUkgU1RFVkFOCivEjEFCQVJLQVBBIEJSQU5LTworxIxBQkFSS0FQQSBNSUxFTktPCivEjEFCQVJLQVBBIE1JUk9TTEFWCivEjEFCQVJLQVBBIFNJTU8KK8SMQUJBUktBUEEgU1RBTktPCivEjEFCQVJLQVBBIFRBTUFSQQorxIxBQkFSS0FQQSBUT01BxaAKK8SMQUJEQVJJxIYgTklLT0xBCivEjEFCREFSScSGIFpPUklDQQorxIxBQkkgTkFORE9SCivEjEFCT1ZJxIYgTUlMQU4KK8SMQUJSQURJIEFHTkVaSUpBCivEjEFCUkFESSBJVkFOCivEjEFCUkFESSBKRUxFTkEKK8SMQUJSQURJIExKVUJJQ0EKK8SMQUJSQURJIFNURVZBTgorxIxBQlJEQSBNQVJUSU4KK8SMQUJSSUxPIEJPR0RBTgorxIxBQlJJTE8gQlJBTklTTEFWCivEjEFCUklMTyBMQVpBUgorxIxBQlJJTE8gTEpVQklDQQorxIxBQlJJTE8gU1BBU09KQQorxIxBREXFoCBaREVOS0EKK8SMQURFU0tJIEJMQUdPSkUKK8SMQURPVlNLSSBWTEFESU1JUgorxIxBR0xKRVZJxIYgVE9NQQorxIxBR09ST1ZJxIYgVkxBRElNSVIKK8SMQUpBIFZBTktBCivEjEFKScSGIEJPR09MSlVCCivEjEFKScSGIEJPUklTTEFWCivEjEFKScSGIFJBRE9TTEFWCivEjEFLxaBJUkFOIE1JTEFESU4KK8SMQUtBTiBFVUdFTgorxIxBS0FOIEVWR0VOSUpFCivEjEFLQU4gSVZBTgorxIxBS0FOIEpVTElKQU4KK8SMQUtBTiBNSUhBSkxPCivEjEFLQU4gU1RFVkFOCivEjEFLQU4gVkxBRElNSVIKK8SMQUtBTiBWTEFESU1JUgorxIxBS0FOIFZMQURJTUlSCivEjEFLQVJBIEFOQQorxIxBS0FSRVZJxIYgTU9NSVIKK8SMQUtBUkVWScSGIE5FREVMSktPCivEjEFLSSDFoEFORE9SCivEjEFLSSBBTUFMSUpBCivEjEFLSSBBTkRSQcWgCivEjEFLSSBMQURJU0xBVgorxIxBS0kgTEFKT8WgCivEjEFLSSBMQVNMTworxIxBS0kgTUlIQUxKCivEjEFLSSBNSUhBTEoKK8SMQUtJIFBJUk/FoEtBCivEjEFLScSGIFNBVkEKK8SMQUtJxIYgWkxBVE9KRSBEUgorxIxBS01BSyBEQU5JQ0EKK8SMQUtNQUsgREVKQU4KK8SMQUtNQUsgTEFaQVIKK8SMQUtNQUsgTEpJTEpBTkEKK8SMQUtNQUsgTEpVQklDQQorxIxBS01BSyBTT0ZJSkEKK8SMQUtNQUsgU1ZFVE9aQVIKK8SMQUtNQUwgVk9KSVNMQVYKK8SMQUtPVkFDIEJPUklTTEFWCivEjEFLT1ZBQyBNSVJPU0xBVgorxIxBS09WQUMgUEFOVEVMSUpBCivEjEFLT1ZBQyBTQVZBCivEjEFLT1ZJxIYgWkRSQVZLTworxIxBS1JBIE1JTEVOQQorxIxBTEEgxJBVTEEKK8SMQUxBIElSRU4KK8SMQUxBIElWQU5LQQorxIxBTEEgTEVOS0EKK8SMQUxBS0nEhiBCUkFOS08KK8SMQUxBS0nEhiBMSlVCT01JUgorxIxBTEFLScSGIE1BUktPCivEjEFMQUtJxIYgTUlMQU4KK8SMQUxFIElWQU4KK8SMQUxFIEpPU0lQCivEjEFMRSBNSUxBTgorxIxBTEUgU09GSUpBCivEjEFMRSBWTEFESU1JUgorxIxBTEVOScSGIEJPUklTTEFWCivEjEFMRU5JxIYgQlJBTklTTEFWQQorxIxBTEVOScSGIERJTkEKK8SMQUxFTknEhiBEUkFHSUNBCivEjEFMRU5JxIYgTEFaQVIKK8SMQUxFTknEhiBMSklMSkFOQQorxIxBTEVOScSGIExKVUJPTUlSCivEjEFMRU5JxIYgTFVLQQorxIxBTEVOScSGIE1JTE9TQVZBCivEjEFMRU5JxIYgTUlSSkFOQQorxIxBTEVOScSGIFNURVZBTgorxIxBTEnEhiBCT8WgS08KK8SMQUxJxIYgSk9WTworxIxBTEnEhiBNQVJJSkEKK8SMQUxJSkEgREFOSUNBCivEjEFMSUpBIEpPVkFOCivEjEFMSUpBIExBWkFSCivEjEFMSUpBIE1JTEFOCivEjEFNxJBJxIYgSkFISUpBCivEjEFNQU5HT1MgxJBPUsSQRQorxIxBTUFOR09TIEtBVElDQQorxIxBTUJFUiBMSlVCSUNBCivEjEFNQk9SIMSQVVJPCivEjEFNQk9SIEFORFJJSkEKK8SMQU1CT1IgSk9TSVAKK8SMQU1Exb1JxIYgTkVBRAorxIxBTU8gQkFSQkFSQQorxIxBTVBSQUcgxJBPUsSQRSBMRUtBUgorxIxBTVBSQUcgRFJBR0EKK8SMQU1QUkFHIERVxaBBTgorxIxBTVBSQUcgTEpVQklDQQorxIxBTVBSQUcgTUlMQU4KK8SMQU7EjEFSIMSQT1LEkEUKK8SMQU7EjEFSRVZJxIYgSk9WQU5LQQorxIxBTsSMQVJFVknEhiBNSVJPTEpVQgorxIxBTsSMQVJFVknEhiBNTEFERU4KK8SMQU5BRMW9ScSGIMSQT1LEkEUKK8SMQU5BRMW9ScSGIEpPVkFOCivEjEFOQUTFvUnEhiBTQU5KQQorxIxBTkFEQU5PVknEhiBBTkRSSUpBCivEjEFOQURBTk9WScSGIE1JUktPCivEjEFOQURBTk9WScSGIFJBRE1JTEEKK8SMQU5BREkgSkFOT8WgIE1SCivEjEFOQURJIExKSUxKQU5BCivEjEFOQUdMScSGIMSQT0tBCivEjEFOQUsgxb1FTEpLTworxIxBTkFLIMSQVVJBCivEjEFOQUsgQk9TSUxKS0EgRFIKK8SMQU5BSyBNSUhBSkxPCivEjEFOQUsgTUlSS08KK8SMQU5BSyBNT03EjElMTworxIxBTkFLIE5FVkVOS0EKK8SMQU5BSyBOSUtPTEEKK8SMQU5BSyBOSUtPTEEKK8SMQU5BSyBOSUtPTEEKK8SMQU5BSyBPTElWRVJBCivEjEFOQUsgVkVMSktPCivEjEFOQUsgVkVTRUxJTgorxIxBTkFLIFZVS0HFoElOCivEjEFOR0FMScSGIERVxaBBTgorxIxBTknEhiBMSklMSkFOQQorxIxBTknEhiBNSUxPxaAKK8SMQU5JxIYgT1NUT0pBCivEjEFOSkVWQUMgxaBBUkxPVEEKK8SMQU5KSSBBTkRSSUpBCivEjEFOSkkgR0FCSQorxIxBTkpJIEdBQk9SCivEjEFOSkkgR0laRUxBCivEjEFOSkkgSVJFTkEKK8SMQU5KSSBJUkVOQQorxIxBTkpJIEpBTktPCivEjEFOSkkgS0FSTE8KK8SMQU5KSSBMQVNMTworxIxBTkpJIExBU0xPCivEjEFOSkkgTkFEQQorxIxBTkpJIFNBTVVFTAorxIxBTkpJIFNURVZBTgorxIxBTkpJIFNURVZBTgorxIxBTkpJIFZMQURJTUlSCivEjEFOSkkgWk9MVEFOCivEjEFOSkkgWlVaQU5BCivEjEFOS09WScSGIMSQT1LEkEUKK8SMQU5LT1ZJxIYgQk/FoEtPCivEjEFOS09WScSGIEJPSkEKK8SMQU5LT1ZJxIYgQlJBTktPCivEjEFOS09WScSGIERBTkUKK8SMQU5LT1ZJxIYgREFORQorxIxBTktPVknEhiBEQU5FCivEjEFOS09WScSGIERBTklDQQorxIxBTktPVknEhiBKT1ZBCivEjEFOS09WScSGIExKVUJJTktBCivEjEFOS09WScSGIE1BUklKQQorxIxBTktPVknEhiBNQVJLTworxIxBTktPVknEhiBNSUtBCivEjEFOS09WScSGIE1JTEFOCivEjEFOS09WScSGIE1JTEFOCivEjEFOS09WScSGIE1JTElWT0oKK8SMQU5LT1ZJxIYgTUlMT1JBRAorxIxBTktPVknEhiBNTEFERU4KK8SMQU5LT1ZJxIYgT0xHQQorxIxBTktPVknEhiBQRVRBUiBNUgorxIxBTktPVknEhiBQRVRBUgorxIxBTktPVknEhiBSQURPTUlSCivEjEFOS09WScSGIFJBRE9NSVIKK8SMQU5LT1ZJxIYgU0xBxJBBTkEKK8SMQU5LT1ZJxIYgU0xBVktPCivEjEFOS09WScSGIFNMT0JPREFOCivEjEFOS09WScSGIFpMQVRBCivEjEFOS09WScSGIFpPUkFOCivEjEFQIEFOVEFMCivEjEFQQU5EQSBKT1NJUAorxIxBUEVMSkEgRFJBR0FOCivEjEFQRUxKQSBKQU4gRFIKK8SMQVBFTEpBIEpPVkFOCivEjEFQRUxKQSBQQVZMRQorxIxBUEtPIEpVTElKQU4KK8SMQVBLTyBNSUxPUkFECivEjEFQS08gTUlST1NMQVYKK8SMQVBLTyBORVNUT1IKK8SMQVBPIEFEQU0KK8SMQVBPIElMSUpBCivEjEFQTyBKQU5PxaAKK8SMQVBPIE1BUklKQQorxIxBUE8gTkFEQQorxIxBUFJJxIYgTUlMT1JBRAorxIxBUkFQScSGIFRPTUlTTEFWCivEjEFTTkpJIEVSxb1FQkVUCivEjEFTTkpJIEZFUkVOQworxIxBU1RWRU4gSlVMSUpBTkEKK8SMQVQgQU5EUklKQQorxIxBVEFMSU5BQyBNSUxBTgorxIxBVEFMSU5BQyBOSUtPTEEKK8SMQVRBTE9WIFNUT0pBTgorxIxBVExBSkEgU1RBTkEKK8SMQVRMQUsgT0xJVkVSQQorxIxBVFXFoCBaTEFUS08KK8SMQVXFoEVWScSGIEtFTUFMCivEjEFVxaBFVknEhiBNSURIQVQKK8SMQVXFoEVWScSGIFRBVEpBTkEKK8SMQVZJxIYgxaBURUZJQ0EKK8SMQVZJxIYgxb1JVktBCivEjEFWScSGIMSQT1LEkEUKK8SMQVZJxIYgQk/FoEtPCivEjEFWScSGIEJSQU5JU0xBVgorxIxBVknEhiBERUpBTgorxIxBVknEhiBERUpBTgorxIxBVknEhiBEUkFHSUNBCivEjEFWScSGIERSQUdPCivEjEFWScSGIEdPUkRBTkEKK8SMQVZJxIYgR09SREFOQQorxIxBVknEhiBLUlNUQU4KK8SMQVZJxIYgTEpVQk9NSVIKK8SMQVZJxIYgTEpVQk9NSVIKK8SMQVZJxIYgTEpVQk9NSVIKK8SMQVZJxIYgTUFSSUpBCivEjEFWScSGIE1JTEVOQQorxIxBVknEhiBNSVJLTworxIxBVknEhiBQRVRBUgorxIxBVknEhiBSQURPTUlSCivEjEFWScSGIFJBRE9WQU4KK8SMQVZJxIYgU0xPQk9EQU4KK8SMQVZJxIYgU0xPQk9EQU4KK8SMQVZJxIYgU09LQQorxIxBVknEhiBUT8WgQQorxIxBVknEhiBWRUxJWkFSCivEjEFWScSGIFZMQURPCivEjEFWScSGIFpPUktBCivEjEFaSU0gxIxFTEVCSUpBCivEjEXEjEVLIERSQUdJQ0EKK8SMRcSMRUsgVklMSU0KK8SMRcSMVUsgQUxFS1NBTkRBUgorxIxFxIxVSyBCUkFOSVNMQVYKK8SMRcSMVUsgTUlMT8WgCivEjEXEjFVLIFNMQVZJQ0EKK8SMRcSMVUsgU1RFVkFOCivEjEXFoExKQVIgxJBVUkEKK8SMRcWgTEpBUiBBTEVLU0FOREFSCivEjEXFoExKQVIgREFSSU5LQQorxIxFxaBMSkFSIEpPU0lQCivEjEXFoExKQVIgSk9WQU4KK8SMRcWgTEpBUiBTVEVWQU4KK8SMRcWgTEpFVknEhiBEVcWgQU4KK8SMRcWgTEpFVknEhiBLT1NUQQorxIxFxaBMSkVWScSGIE1JTEVOS08KK8SMRcWgTEpFVknEhiBNSVJPU0xBVkEKK8SMRcWgTEpFVknEhiBNT03EjElMTworxIxFxaBMSkVWScSGIFNUQU5LTworxIxFQkFDIExKVUJJQ0EKK8SMRUJBQyBQQVZMRQorxIxFQkVExb1JxIYgTUlMQU4KK8SMRUJTS0kgVkxBRElNSVIKK8SMRUJaQU4gUEFOVEEKK8SMRURJxIYgUkVExb1PCivEjEVHQVIgQk/FvU8KK8SMRUdBUiBERVNBTktBCivEjEVHQVIgRFJBR0FOCivEjEVHQVIgTUlMT8WgCivEjEVHQVIgTUlSS08KK8SMRUdBUiBQQU5FCivEjEVHQVIgU1JFVEtPCivEjEVHQVIgU1RFVkFOSUpBCivEjEVHQVIgU1ZFVExBTkEKK8SMRUdBUiBUT0RPUgorxIxFSCBBTlRPTgorxIxFSCBKT8W9RUYKK8SMRUggSk9TSVAKK8SMRUggSk9WQU4KK8SMRUggTUlLTE/FoAorxIxFSCBTVEFOS0EKK8SMRUggWkxBVEEKK8SMRUhBSyBLQUxNQU4gRFIKK8SMRUhPViBJVkFOCivEjEVIT1YgUEVUQVIKK8SMRUpPVknEhiBCSVNFUktBCivEjEVKT1ZJxIYgU0xPQk9EQU4KK8SMRUpPVknEhiBWRUxJTUlSCivEjEVKT1ZJxIYgVkxBRElNSVIKK8SMRUtBTk9WScSGIMW9SVZBTkEKK8SMRUtBTk9WScSGIFZJVE9NSVIKK8SMRUtFIERFxb1FCivEjEVLRSBNQVJJSkEKK8SMRUtFIFNORcW9QU5BCivEjEVLRSBTVEVWQU4KK8SMRUtFUkVWQUMgQlJBTktPCivEjEVLRVJJTkFDIERVxaBBTgorxIxFS0VSSU5BQyBaT1JBTgorxIxFS0kgREFSSU5LQQorxIxFS0kgREFWSUQKK8SMRUtJxIYgQU5BCivEjEVLScSGIERBUklOS0EKK8SMRUtJxIYgRElNSVRSSUpFCivEjEVLScSGIERSQUdBTgorxIxFS0nEhiBJTElKQQorxIxFS0nEhiBKT1ZBTgorxIxFS0nEhiBNSUxPUkFECivEjEVLScSGIE1JTE9SQUQKK8SMRUtJxIYgTUlMT1ZBTgorxIxFS0nEhiBNSVJKQU5BCivEjEVLScSGIE1PTcSMSUxPCivEjEVLScSGIFNBVkEKK8SMRUtJxIYgU0FWQQorxIxFS0nEhiBWQVNBCivEjEVLScSGIFpEUkFWS08KK8SMRUtSRMW9SU4gUkFESVNMQVYKK8SMRUxBUiBTVEVWQU4KK8SMRUxFQknEhiBBTEVLU0FOREFSCivEjEVMRUJJxIYgQk/FvU8KK8SMRUxFQknEhiBJTElKQQorxIxFTEVCScSGIE1JTE9SQUQKK8SMRUxFQknEhiBNT03EjElMTworxIxFTEVCScSGIE9MR0EKK8SMRUxFQknEhi1UVUJJxIYgVkVTTkEKK8SMRUxFQknEhiBaT1JLQQorxIxFTEVLRVRJxIYgSk9WQU4KK8SMRUxFS0VUScSGIEpPVkFOCivEjEVMRUtFVEnEhiBNSVJPU0xBVgorxIxFTEVLRVRJxIYgTUlST1NMQVYKK8SMRUxFS0VUScSGIFJBRE9WQU4KK8SMRUxFS0VUScSGIFRBTUFSQQorxIxFTEVOQUsgS0FUQUxJTgorxIxFTEVTTklLIERSQUdVVElOCivEjEVMScSGIEJBTkUKK8SMRUxJxIYgRElOS0EKK8SMRUxJxIYgR0xJR09SSUpFCivEjEVMScSGIElMSUpBCivEjEVMScSGIEtBVEFSSU5BCivEjEVMScSGIExKVUJJTktPCivEjEVMScSGIExKVUJPTUlSCivEjEVMScSGIE1JTElWT0oKK8SMRUxJxIYgUEFWTEUKK8SMRUxJxIYgU1LEkEFOCivEjEVMScSGIFNUQU5LTyBEUgorxIxFTEnEhiBWRVJBCivEjEVMSUNBIEpFTEVOQQorxIxFTElLT1ZJxIYgRU1JTAorxIxFTE9GSUdBIEFOVE9OSUpBCivEjEVMT1ZJxIYgTUlSSkFOQQorxIxFTE9WU0tJIEFORFJFSgorxIxFTE9WU0tJIERSQUdJQ0EKK8SMRU1BTiDEkE9SxJBFCivEjEVNQU4gxJBVUkEKK8SMRU1BTiBBTkRSSUpBCivEjEVNQU4gREFOSUxPCivEjEVNQU4gR09SREFOQQorxIxFTUFOIEpBTgorxIxFTUFOIEpPVkFOCivEjEVNQU4gTUnFoEEKK8SMRU1BTiBNSVJPU0xBVgorxIxFTUFOIE9MR0EKK8SMRU1BTiBSVcW9RU5LQQorxIxFTUFOIFNBTVVFTAorxIxFTUFOIFNURVZBTgorxIxFTUFOIFRFUkVaQQorxIxFTUJJxIYgTUlMQU4KK8SMRU1FUkUgRVLFvUVCRVQKK8SMRU1FUkUgTEFKT8WgCivEjEVNRVJMScSGIFBFVEFSCivEjEVOREXFoCBCUkFOS08KK8SMRU5FSkFDIMW9SVZBTgorxIxFTkVKQUMgR1JVSkEKK8SMRU5FSkFDIExKVUJJQ0EKK8SMRU5FSkFDIExKVUJJQ0EKK8SMRU5FSkFDIE1JTE/FoAorxIxFTkVKQUMgTUlMVVRJTgorxIxFTkVKQUMgVE9NSVNMQVYKK8SMRU5FSkFDIFZFTElTTEFWCivEjEVOR0VSSSBBVElMQQorxIxFTkdJxIYgTUFSSUpBCivEjEVOVcWgQSBHRU9SR0lOQQorxIxFUMSMQU5KSSBNSVJKQU5BCivEjEVQRSBBTklDQQorxIxFUEkgSkFOT8WgCivEjEVQSSBMQVNMTworxIxFUEkgTUFSSUpBCivEjEVQSSBOQU5ET1IKK8SMRVBJxIYgQk9SSVNMQVYKK8SMRVBJxIYgU0xPQk9EQU4KK8SMRVBJxIYgU01JTEpBCivEjEVQScSGIFZFTElNSVIKK8SMRVBJTiBWSUtUT1IKK8SMRVBMRSBTVEVWQU4KK8SMRVBSRUdJIElSRU5BCivEjEVQUkVHSSBKVUxJSkEKK8SMRVBTS0kgSk9WQU4KK8SMRVBTS0kgU1RFVkFOCivEjEVSIMWgQU5ET1IKK8SMRVIgQUxFS1NBTkRBUgorxIxFUiBGUkFOSkEKK8SMRVIgTEFESVNMQVYKK8SMRVIgTUFSSUpBCivEjEVSRUtPVknEhiBFTElaQUJFVEEKK8SMRVJFS09WScSGIFJJU1RPCivEjEVSRUtPVknEhiBTTEFWS08KK8SMRVJFS09WScSGIFZBU0tSU0lKRQorxIxFUkVWScSGIElWQU4KK8SMRVJFVknEhiBWRVJJQ0EKK8SMRVJFVklDS0kgQUxFS1NBTkRBUgorxIxFUkVWSUNLSSBEVcWgQU4KK8SMRVJFVklDS0kgSk9WQU4KK8SMRVJFVklDS0kgTEpVQklDQQorxIxFUkVWSUNLSSBNSVRBCivEjEVSRVZJQ0tJIE5BREEKK8SMRVJFVklDS0kgUkFEQQorxIxFUkVWSUNLSSBSVcW9SUNBCivEjEVSRVZJQ0tJIFNURVZBTgorxIxFUkVWSUNLSSBTVkVUSVNMQVYKK8SMRVJFVklDS0kgVEVPRE9SCivEjEVSR0UgQkVMQQorxIxFUkkgSk/FvUVGCivEjEVSS0VaIEJPR0RBTktBCivEjEVSS0VaIERVxaBBTktBCivEjEVSS0VaIEVWSUNBCivEjEVSS0VaIEpPVkFOS0EKK8SMRVJLRVogU1RFVkFOCivEjEVSS0VaT1YgRFXFoEFOS0EKK8SMRVJLScSGIE9TTUFOCivEjEVSS0nEhiBWQVNJTElKRQorxIxFUk7EjEVDIFZFUkEKK8SMRVJOQUsgRVZBCivEjEVSTkVLLUFQUk8gxb1Vxb1BTkEKK8SMRVJORUtBIFNURVZBTgorxIxFUk5JIEnFoFRWQU4KK8SMRVJOScSMRUsgRVLFvUVCRVQKK8SMRVJOScSMRUsgScWgVFZBTgorxIxFUk5JxIxFSyBJxaBUVkFOCivEjEVSTknEhiBEVcWgQU4KK8SMRVJOSUsgQVRJTEEKK8SMRVJOSUsgSk/FvUVGCivEjEVSTklLIE1BUkdJVEEKK8SMRVJOSVZFQyBUQVRKQU5BCivEjEVSTkpBIE1BUklKQQorxIxFUk5KQSBNQVRJTERBCivEjEVSTkpBSyBMQURJU0xBVgorxIxFUk5KQU5TS0kgRFJBR09NSVIKK8SMRVJOSkVWU0tJIFNWRVRJU0xBVgorxIxFUk5KVcWgIEpBS0lNCivEjEVSTk9HVUJPViBCT1JJUworxIxFUk5VxaAgSUJPTEpBCivEjEVSTlXFoCBUSUJPUgorxIxFUk9WScSGIFJBVEtPCivEjEVSVUJExb1JxIYgRFJBR09NSVIKK8SMRVJVQkTFvUnEhiBKT1ZBTgorxIxFUlVCRMW9ScSGIE1BUkdJVEEKK8SMRVJVQkTFvUnEhiBNQVJHSVRBCivEjEVSVVBPxb1JxIYgT0xHQQorxIxFUlZBUkkgRVLFvUVCRVQKK8SMRVJWRU5KQUsgSkVMSVNBVkVUQQorxIxFUlZFTkpBSyBKT1NJUAorxIxFUlZFTkpBSyBMSlVCSUNBCivEjEVSVkVOSkFLIE9MR0EKK8SMRVJWRU5KQUsgUEVUQVIKK8SMRVJWRU5KQUsgWkFHT1JLQQorxIxFUlZFTktPIEFMRUtTQU5EQVIKK8SMRVJWRU5LTyBBTkEKK8SMRVNBSyBBTkRSSUpBCivEjEVURSBBUk9OIERJUEwgSU5HCivEjEVUScSGIE1JTE9SQUQKK8SMRVRMRSBNQVJJSkEKK8SMRVROSUsgQk9HREFOCivEjEVUTklLIEpPVkFOCivEjEVUTklLIFpBR09SS0EKK8SMRVROSUtPVknEhiBQRVRBUiBESVBMIE9FQworxIxFVE9KRVZJxIYgTUlMS0EKK8SMRVRPSkVWScSGIFJBRElWT0pFCivEjEVWQVJJIMSQT1LEkEUKK8SMRVZBUkkgQU5UQUwKK8SMRVZBUkkgTUFSSUpBCivEjEVWQVJJIE1JSEFKTE8KK8SMRVZBUkkgWk9MVEFOCivEjEnEjEEgSk9WQU4KK8SMScSMQSBOSUtPTEEKK8SMScSMQUkgSk/FvUVGCivEjEnEjEFLIEFOS0lDQQorxIxJxIxBSyBNSVJLTworxIxJxIxBS0lOIEFOxJBFTEtBCivEjEnEjEFSRVZJxIYgU0FWTworxIxJxIxFSyBEQU5JSkVMCivEjEnEjEnEhiBEUkFHT0xKVUIKK8SMScSMScSGIE1JTEUKK8SMScSMScSGIE1JUk9TTEFWCivEjEnEjEtPVknEhiBTVkVUS08KK8SMScSMT1ZBxIxLSSBCT1JJU0xBVgorxIxJxIxPVkHEjEtJIERJTUlUUklKRQorxIxJxIxPVkFDIMSQT1LEkEUKK8SMScSMT1ZBQyBLT1NUQQorxIxJxIxPVkFDIE1JTElDQQorxIxJxIxPVkFDIFJBRE9TTEFWCivEjEnEjE9WQUMgVkxBRElNSVIKK8SMScW9RUsgUEFWTEUKK8SMScW9RUsgU0xBVk9NSVIKK8SMScW9TUXFoElKQSBJVkFOCivEjElCUkkgSkFOT8WgCivEjElCUkkgUElST8WgS0EKK8SMSUVGIEpBTgorxIxJRUYgTUFSVElOCivEjElFRiBTQU1VRUwKK8SMSUhJIEZFUkVOQworxIxJSEkgSkFOT8WgCivEjElISSBKQU5PxaAKK8SMSUsgQU5EUklKQQorxIxJSyBJTElKQQorxIxJSyBKRU5FCivEjElLIFpPTFRBTgorxIxJS0kgSk9TSVAKK8SMSUtJIE1BUklKQQorxIxJS0nEhiDEkE9SxJBFCivEjElLScSGIENWRVRPTUlSCivEjElLScSGIERSQUdJQ0EKK8SMSUtJxIYgRU1JTAorxIxJS0nEhiBFVklDQQorxIxJS0nEhiBNSUxBTgorxIxJS0nEhiBOSUtPTEEKK8SMSUtJxIYgU1RFVkFOCivEjElLT8WgIMW9VcW9QU5BCivEjElLT8WgIMSQRVLEkAorxIxJS0/FoCDEkE9SxJBFCivEjElLT8WgIEVSxb1FQkVUCivEjElLT8WgIEVSxb1FQkVUCivEjElLT8WgIEZFUkVOQworxIxJS0/FoCBKT1NJUCBEUgorxIxJS0/FoCBKVUxJSkFOQQorxIxJS0/FoCBMQURJU0xBVgorxIxJS0/FoCBMRUhFTAorxIxJS0/FoCBNQVJJSkEKK8SMSUtPSkVWScSGIFZJTktPCivEjElLT1ZJxIYgU1JFVEtPCivEjElLVkFSIEtBUkxPCivEjElMQUcgSkFOT8WgCivEjElMQUcgTkFORE9SCivEjElMQUcgTkFORE9SCivEjElMRUcgRVZBCivEjElMScSGIEFWRE8KK8SMSUxJxIYgScWgVFZBTgorxIxJTEnEhiBKT1NJUAorxIxJTEnEhiBKVUxJQU5BCivEjElMScSGIE1BTFZJTkEKK8SMSUxJxIYgTUFSS08KK8SMSUxJSyBBTktBCivEjElMSUsgSUxPTktBCivEjElMSU5HSVJJUyBQQVZMRQorxIxJTsSMQUsgR0FCT1IKK8SMSU7EjFVSQUsgTUlIQUpMTworxIxJTsSMVVJBSyBQQVZMRQorxIxJTsSMVVJBSyBTVEVWQU4KK8SMSU7EjFVSRUsgQk/FoEtPCivEjElORFJBSyBEQVVUCivEjElORFJBSyBTQU5JSkEKK8SMSVAgTUFUTworxIxJUEFLLUZBWkVLQcWgIElCT0pBCivEjElQRSDEkE9SxJBFCivEjElQRSBFUsW9RUJFVAorxIxJUEUgRVLFvUlLQQorxIxJUEUgRlJBTkpBCivEjElQRSBJUkVOCivEjElQRSBKQU5PxaAKK8SMSVBFIEpPU0lQCivEjElQRSBKVUxJSkFOQQorxIxJUEUgTEFTTE8KK8SMSVBFIExBU0xPCivEjElQRSBNQVJJSkEKK8SMSVBFIE1BUlRBCivEjElQRSBNSUhBTEoKK8SMSVBFIE1JSEFMSgorxIxJUEUgU1RKRVBBTgorxIxJUEnEhiBLQVRJQ0EKK8SMSVBLQVIgQU5EUkVKCivEjElQS0FSIFNURVZBTgorxIxJUExJxIYgTEFaQVIKK8SMSVBMScSGIE1JTEFOCivEjElQTEnEhiBWRVJBCivEjElQTEnEhiBWSURBCivEjElSSCBERcW9RQorxIxJUkggVkFTS0EKK8SMSVJJxIYgSk/FvUVGCivEjElTQVIgRkVSRU5DIERJUEwgSU5HCivEjElTQVIgTEFTTE8KK8SMSVRMVcSMQU5JTiBNSUxJQ0EKK8SMSVbEjEnEhiBFUsW9RUJFVAorxIxJVsSMScSGIE1JSEFKTE8KK8SMSVbEjEnEhiBNSUxFCivEjElWxIxJxIYgTUlMSkEKK8SMSVbEjEnEhiBSQURPTUlSCivEjElWxIxJxIYgU0FWTworxIxJVk9WScSGIE1JTEVWQQorxIxJVk9WScSGIFJBRE9WQU4KK8SMSVpNQURJQSBHVVNUQVYKK8SMSVpNQURJQSBWRVJPTklLQQorxIxJWk1BRElKQSDEkFVMQQorxIxJWk1BRElKQSBJxaBUVkFOCivEjElaTUFESUpBIEpBTk/FoAorxIxJWk1BRElKQSBLQVJPTEoKK8SMSVpNQURJSkEgTUlLSQorxIxJWk1BUiBBTkEKK8SMSVpNQVIgQU5JQ0EKK8SMSVpNQVIgSkFOS08KK8SMSVpNQVIgSk9BS0lNCivEjElaTUFSIExBSk/FoAorxIxJWk1BUiBNQVJJSkEKK8SMSVpNQVIgTUlSS08KK8SMSVpNQVIgUEFWTEUKK8SMSVpNQVIgU1RFVkFOCivEjElaTUFSIFZMQURJTUlSCivEjElaTUXFoElKQSBNQUdEQQorxIxJWk1JxIYgQU5JQ0EKK8SMSVpNScSGIElWQU4KK8SMSVpNScSGIFJBREEKK8SMSVpNScSGIFpPUkEKK8SMSVpNT1ZJxIYgVklEQUsKK8SMTUVMSUsgTUFSVElOCivEjE1FTElLIFJBU1RJU0xBVgorxIxPxIxBSiBTVUxPCivEjE/FoEtPViBOQURBCivEjE9BxaAgSVJFTkEKK8SMT0JBTiBKT04KK8SMT0JBTiBKT1ZBTgorxIxPQkFOIEpPVkFOCivEjE9CQU4gTElESUpBCivEjE9CQU4gTUFSSUpBCivEjE9CQU4gTklLVQorxIxPQkFOT1Ygxb1JVktBCivEjE9CQU5PViBCSUxKQU5BCivEjE9CQU5PViBEUkFHSUNBCivEjE9CQU5PViBEUkFHT01JUgorxIxPQkFOT1YgRFXFoEFOCivEjE9CQU5PViBKRUxFTkEKK8SMT0JBTk9WIExKSUxKQU5BCivEjE9CQU5PViBNRUxBTklKQQorxIxPQkFOT1YgTUlMSktBCivEjE9CQU5PViBSVcW9SUNBCivEjE9CQU5PViBTTE9CT0RBTgorxIxPQkFOT1YgU1ZFVE8KK8SMT0JBTk9WIFZBU0EKK8SMT0JBTk9WIFZMQURJU0xBVgorxIxPQkFOT1YgWk9SQU4KK8SMT0JBTk9WScSGIEJPxaBLTworxIxPQkFOT1ZJxIYgQlJBTklTTEFWCivEjE9CQU5PVknEhiBEUkFHQU4KK8SMT0JBTk9WScSGIERSQUdBTgorxIxPQkFOT1ZJxIYgRFJBR0FOCivEjE9CQU5PVknEhiBEVcWgQU4KK8SMT0JBTk9WScSGLUdFWiBNQVJJSkEKK8SMT0JBTk9WScSGIElMSUpBCivEjE9CQU5PVknEhiBKRUxFTkEKK8SMT0JBTk9WScSGIExBWkFSCivEjE9CQU5PVknEhiBMSklMSkFOQQorxIxPQkFOT1ZJxIYgTklLT0xBCivEjE9CQU5PVknEhiBSQURNSUxBCivEjE9CQU5PVknEhiBTQVZBCivEjE9CQU5PVknEhiBTQVZPCivEjE9CQU5PVknEhiBTTE9CT0RBTgorxIxPQkFOT1ZJxIYgVkFMRVJJSkEKK8SMT0JBTk9WScSGIFpPUkFOCivEjE9CQU5TS0kgRFJBR0FOCivEjE9CQU5TS0kgTUlMRU5BCivEjE9CQU5TS0kgUkFET0pLQQorxIxPQknEhiBSRUxKQQorxIxPQknEhiBTVFJBSElOSkEKK8SMT0JJxIYgVElNT1RFSgorxIxPQk9UIElMT05LQQorxIxPQlJEQSBKQU5LTworxIxPQlJEQSBKQU5LTworxIxPSknEhiBTVEVGQU5JREEKK8SMT0tBIElWQU5LQQorxIxPS0HFoCBMVUNJSkEKK8SMT0tBTiBOSUtPTEEKK8SMT0tBTklDQSBTQVZBCivEjE9LQU5JQ0EgU09GSUpBCivEjE9LScSGIE1JTEFOCivEjE9LTEpBVCBaREVOS0EKK8SMT0tSTEnEhiBCQVJCQVJBCivEjE9LUkxJxIYgSk9TSVAKK8SMT0xBSyBBTEVLU0FOREFSCivEjE9MQUsgRFJBR09MSlVCCivEjE9MQUsgRFJBR09MSlVCCivEjE9MQUsgR09SQU4KK8SMT0xBSyBLUklTVElOQQorxIxPTEFLIE1JSEFKTE8KK8SMT0xBSy1NSUhBTElLIE1BUklKQQorxIxPTEFLT1YgTUlMQU4KK8SMT0xBS09WIE1JTEUKK8SMT0xBS09WIFBBVkxFCivEjE9MQUtPVknEhiBBTsSQRUxLQQorxIxPTEFLT1ZJxIYgTU9NQQorxIxPTEFLT1ZJxIYgTklLT0xBCivEjE9MQUtPVknEhiBTVkVUT1pBUgorxIxPTEFLT1ZJxIYgVEVPRE9SCivEjE9MQUtPVknEhiBWQU5KQQorxIxPTEVWScSGIFNWRVRJU0xBVgorxIxPTEnEhiDEkFVSTworxIxPTEnEhiBBTsSQRUxLQQorxIxPTEnEhiBCT1JPCivEjE9MScSGIERFU0EKK8SMT0xJxIYgRFXFoEFOCivEjE9MScSGIERVxaBLTworxIxPTEnEhiBFTElaQUJFVEEKK8SMT0xJxIYtR0HEhkXFoEEgU0xBVklDQQorxIxPTEnEhiBJVkFOCivEjE9MScSGIEpPVkFOS0EKK8SMT0xJxIYgSk9WQU4KK8SMT0xJxIYgSk9WQU4KK8SMT0xJxIYgTFVLQQorxIxPTEnEhiBNQVJBCivEjE9MScSGIE1BUklKQQorxIxPTEnEhiBNSUxBTgorxIxPTEnEhiBNSUxBTgorxIxPTEnEhiBNSUxBTgorxIxPTEnEhiBNSVJKQU5BCivEjE9MScSGIE1JUktPCivEjE9MScSGIE1JUk9TTEFWS0EKK8SMT0xJxIYgUEVUQVIKK8SMT0xJxIYgUkFEQQorxIxPTEnEhiBSQURNSUxBCivEjE9MScSGIFJJU1RPCivEjE9MScSGIFNBVkEKK8SMT0xPVknEhiBCT0dPTEpVQgorxIxPTE9WScSGIERSQUdBTgorxIxPTE9WScSGIERVxaBBTgorxIxPTE9WScSGIE1JTEUKK8SMT0xPVknEhiBNSUxJSkFOQQorxIxPTE9WScSGIE9MR0EKK8SMT0xPVknEhiBQRVRBUgorxIxPTE9WScSGIFJBRE9TTEFWCivEjE9MT1ZJxIYgUkFET1ZBTgorxIxPTE9WScSGIFNURVZBTgorxIxPTE9WScSGIFZJRE9TQVYKK8SMT0xPVknEhiBWTEFETworxIxPTUEgxJBVTEEKK8SMT01BIMSQVUxBCivEjE9NScSGIMSQVVLEkElOQQorxIxPTUnEhiBEQVJBCivEjE9NScSGIERSQUdBTgorxIxPTUnEhiBEVcWgQU5LQQorxIxPTUnEhiBFUsW9RUJFVAorxIxPTUnEhiBJTElKQQorxIxPTUnEhiBKQcWgS08KK8SMT01JxIYgSkHFoEtPCivEjE9NScSGIEtSU1RBCivEjE9NScSGIExJRElKQQorxIxPTUnEhiBMSlVCT01JUgorxIxPTUnEhiBNSUxPxaAKK8SMT01JxIYgTUlST0xKVUIKK8SMT01JxIYgTUxBREVOCivEjE9NScSGIFNMT0JPREFOCivEjE9NScSGIFNNSUxKQU5BCivEjE9NScSGIFRPRE9SCivEjE9NScSGIFRPRE9SCivEjE9NT1IgSUxPTktBCivEjE9NT1IgTUFUSUxEQQorxIxPTkdSQURBQyBEQU5JSkVMQQorxIxPTkdSQURBQyBJVkFOS0EKK8SMT05HUkFEQUMgUkFET1NMQVYKK8SMT05JxIYgQU5LQQorxIxPTknEhiBNSUxFTktPCivEjE9OScSGIE1JTE/FoAorxIxPTknEhiBQRVRBUgorxIxPTknEhiBUSUpBTkEKK8SMT05JxIYgWk9SQU4KK8SMT05LQSDEkEVSxJAKK8SMT05LQSBHT1JEQU5BCivEjE9OS0EgS0FST0xKCivEjE9OS0EgUEVUQVIKK8SMT05LQcWgIEVNSUwKK8SMT05LQcWgIEdBQlJJRUxBCivEjE9OS0HFoCBMQURJU0xBVgorxIxPTktJxIYgxb1JVktPCivEjE9OS0nEhiBBTEVLU0EKK8SMT05LScSGIEJJTEpBTkEKK8SMT05LScSGIEJPR09MSlVCIExFS0FSCivEjE9OS0nEhiBCT1JJU0xBVgorxIxPTktJxIYgRFJBR0FOCivEjE9OS0nEhiBKRUxBCivEjE9OS0nEhiBKVURJVAorxIxPTktJxIYgTEpJTEpBTkEKK8SMT05LScSGIE1BUklKQQorxIxPTktJxIYgTUlMQU5LQQorxIxPTktJxIYgTUlMRU5BCivEjE9OS0nEhiBNSUxPxaAKK8SMT05LScSGIE1JTE9SQUQKK8SMT05LScSGIE1JTE9SQUQKK8SMT05LScSGIE1JTE9WQU4KK8SMT05LScSGIE1PTcSMSUxPIERJUEwgSU5HCivEjE9OS0nEhiBORUJPSsWgQQorxIxPTktJxIYgTkVTVE9SCivEjE9OS0nEhiBQRVRBUgorxIxPTktJxIYgUkFERU5LTworxIxPTktJxIYgUkFET1NMQVYKK8SMT05LScSGIFNBxaBBCivEjE9OS0nEhiBTTEFWS08KK8SMT05LScSGIFNMT0JPREFOCivEjE9OS0nEhiBTTkXFvUFOQQorxIxPTktJxIYgU1RBTUVOQQorxIxPTktJxIYgU1RFVkFOCivEjE9OS0nEhiBUSUhPTUlSCivEjE9OVE/FoCBKT8W9RUYKK8SMT05UT8WgIFpPUkEKK8SMT1DEjEnEhiBNQVJUSU4KK8SMT1BJSyBQRVRBUgorxIxPUElLIFZBU0lMSUpBCivEjE9QT1JEQSBWVUtPU0FWQQorxIxPUiBGUkFOSkEKK8SMT1IgSk9TSVAKK8SMT1JBSyBKT1NJUAorxIxPUkFLIFNUSVBFCivEjE9SQUxJxIYgSVZBTktBCivEjE9SQkEgxJBFUsSQCivEjE9SQkEgScWgVFZBTgorxIxPUkJBIEpPVkFOCivEjE9SQkEgSk9WQU4KK8SMT1JCQSBNSUhBTEoKK8SMT1JEQSBBTEVLU0FORFJBCivEjE9SREEgQUxJSkEKK8SMT1JEQSBOQURFxb1EQQorxIxPUkRBIFRPTUlTTEFWCivEjE9SREEgVkVSQQorxIxPUkRBxaAgQU5EUklKQQorxIxPUkRBxaAgQVJQQUQKK8SMT1JEQcWgIERVxaBBTktBCivEjE9SREHFoCBFUsW9RUJFVAorxIxPUkRBxaAgSEFSR0lUQQorxIxPUkRBxaAgSVJFTkEKK8SMT1JEQcWgIExBU0xPCivEjE9SREHFoCBNSUhBTEoKK8SMT1JEQcWgIFNMQVZLTworxIxPUkRBUiBCUkFOS08KK8SMT1JEQVJFViBMSklMSkFOQQorxIxPUkRBUkVWIFZFUkEKK8SMT1JEQVJPViBCT1JJU0xBVktBCivEjE9SREFST1YgSVZBTgorxIxPUkRBUk9WIFNWRVRJU0xBVgorxIxPUkRBUk9WIFRFT0RPUgorxIxPUkRBUk9WIFRFT0RPUgorxIxPUknEhiBNQVJJSkFOCivEjE9STkVOS0kgQk9SSVNMQVYKK8SMT1JORU5LSSBEUkFHT0xKVUIKK8SMT1JORU5LSSBKT1ZBTgorxIxPUk5FTktJIFZMQURBCivEjE9STkkgTUlMVU5BCivEjE9STklKIE1JUk9TTEFWCivEjE9SVEFOIMW9SVZLTworxIxPUlRBTiBCT8WgS08KK8SMT1JUQU4gTUlMSUNBCivEjE9SVEFOIE5BREEKK8SMT1JUQU4gUkFESVZPSgorxIxPUlRBTk9WQcSMS0kgU0xPQk9EQU4KK8SMT1ZJxIYgREFSS08KK8SMT1ZJxIYgREFSS08KK8SMT1ZJxIYgRFJBR0FOCivEjE9WScSGIEdVU1RBVgorxIxPVknEhiBJVkFOCivEjE9WScSGIEpBTktPCivEjE9WScSGIEpPU0lQCivEjE9WScSGIEtPVklMSktBCivEjE9WScSGIEtSU1RPCivEjE9WScSGIExBREEKK8SMT1ZJxIYgTUFSSUpBTkEKK8SMT1ZJxIYgTUlMQU4KK8SMT1ZJxIYgTUlMRVZBCivEjE9WScSGIE1PTUlSCivEjE9WScSGIE9MR0EKK8SMT1ZJxIYgUEVUQVIKK8SMT1ZJxIYgUkFET8WgCivEjE9WScSGIFJBRE9TTEFWCivEjE9WScSGIFJBVEtPCivEjE9WScSGIFNORcW9QU5BCivEjE9WScSGIFNUQU5LTworxIxPVknEhiBWTEFEQQorxIxPVknEhiBWTEFUS08KK8SMT1ZJxIYgWk9SSUNBCivEjE9WSUxPIEJSQU5JU0xBVgorxIxPVlMgSkHFoEEKK8SMT1ZTIFBBVkxFCivEjE9WUyBQQVZMRQorxIxPVlMgVkVSSUNBCivEjFJFVE5JSy1DVkVKQU5PVknEhiBPTEdBIERJUEwgSU5HCivEjFJOSkVLQSBaTEFUS08KK8SMUk5PSkHEjEtJIERBTklTTEFWCivEjFXEjCBKRUxFTkEKK8SMVcSMIE1BUklKQQorxIxVxIxJTE9WScSGIEJSQU5LQQorxIxVxIxLT1ZJxIYgxIxFRE8KK8SMVcSMS09WScSGIMW9RUxKS08KK8SMVcSMS09WScSGIMSQVVJPCivEjFXEjEtPVknEhiBCT8W9SURBUgorxIxVxIxLT1ZJxIYgRFJBR0FOCivEjFXEjEtPVknEhiBSQURPSktBCivEjFXEjEtPVknEhiBTQVZBIERJUEwgSU5HCivEjFXEjEtPVknEhiBTTE9CT0RBTgorxIxVxIxLT1ZJxIYgU1BBU0EKK8SMVcSMS09WScSGIFZMQURJTUlSCivEjFXEjFVMSVMgRElNSVRSSUpFCivEjFVCUkFOT1ZJxIYgUkFET01JUgorxIxVQlJJTE8gQU5LQQorxIxVQlJJTE8gRFJBR0FOCivEjFVCUklMTyBEVcWgQU4KK8SMVUJSSUxPIEpPVk8KK8SMVUJSSUxPIExBWk8KK8SMVUJSSUxPIE1JTEFOCivEjFVCUklMTyBQRVRBUgorxIxVQlJJTE8gU09GSUpBCivEjFVCUklMTyBWTEFESU1JUgorxIxVQlJJTE9WScSGIE1JTEFOCivEjFVCUk9WScSGIFNURVZBTgorxIxVREFOT1YgxIxFREEKK8SMVURBTk9WIEFMRUtTQU5EQVIKK8SMVURBTk9WIE1BUklKQQorxIxVREFOT1YgTUlMSUNBCivEjFVEScSGIElWQU4KK8SMVURJxIYgSk9WQU5LQQorxIxVREnEhiBNSUxPUkFECivEjFVEScSGIE5JS09MQQorxIxVREnEhiBQUkVEUkFHCivEjFVEScSGIFNMT0JPREFOCivEjFVET01JUk9WScSGIEJPR0RBTgorxIxVRE9NSVJPVknEhiBVUk/FoAorxIxVR0FMSiBBTktBCivEjFVHQUxKIE1JUkpBTkEKK8SMVUdBTEogU1ZFVE8KK8SMVUdFTEogQU5HRUxJTkEKK8SMVUhBIE1BUklKQQorxIxVSEEgUEFWTEUKK8SMVUhBIFNMQVZLTworxIxVSEEgU1RFVkFOCivEjFVIQS1WVUpLT1YgUlXFvUEKK8SMVUhBIFpMQVRBCivEjFVKQU5PViBCT1JJUworxIxVS0EgVkpFS09TTEFWCivEjFVLQUxKScSGIE5FVkVOS0EKK8SMVUtJxIYgQk9SSVZPSkUKK8SMVUtJxIYgTUlMS0EKK8SMVUtJxIYgTUlSU0FEQQorxIxVS0nEhiBTTE9CT0RBTgorxIxVS0nEhiBaT1JBTgorxIxVS0xKQcWgIElWQU4KK8SMVUtMSkVLIEZSQU5KQQorxIxVS0xKRUsgTUFSR0lUQQorxIxVS0xKRVZJxIYgQlVESU1LQQorxIxVS09WScSGIFNMQVZLTworxIxVS1VSQU5PVknEhiDFvUlLQQorxIxVS1VSQU5PVknEhiBNSUpBCivEjFVMQUpFVknEhiBKT1ZBTgorxIxVTEFKRVZJxIYgU1RBTktPCivEjFVMScSGIEpPVkEKK8SMVUxJSyBIQUpORVJJSworxIxVTElOQSDFvUVMSktPCivEjFVMSkFLIERSQUdBCivEjFVMSkFLIElWQU4KK8SMVUxKQUsgS0FSTE8KK8SMVUxKQUsgTUlSS08KK8SMVUxKQUsgTkFEQQorxIxVTEpBVCBEQU5FCivEjFVMSkFUIEpBS09WCivEjFVMSknEhiDFvUlWT0pJTgorxIxVTE8gQk/FvUEKK8SMVUxPIE1BUktPCivEjFVMTyBNQVRPCivEjFVOS08gQlJBTktPCivEjFVQQUsgQUxFS1NBTkRBUgorxIxVUEVMSknEhiBNSUxJVk9KRQorxIxVUEnEhiDEkE9SxJBFCivEjFVQScSGIEJPxb1JREFSCivEjFVQScSGIEJPSkFOCivEjFVQScSGIEJSQU5JU0xBVgorxIxVUEnEhiBEUkFHQU4KK8SMVVBJxIYgRFXFoEFOCivEjFVQScSGIEhSSVNUSUZPUgorxIxVUEnEhiBKRUxFTkEKK8SMVVBJxIYgS0FKS0EKK8SMVVBJxIYgS0FKS0EKK8SMVVBJxIYgS0FUSUNBCivEjFVQScSGIEtBVElDQQorxIxVUEnEhiBLT1NUQURJTktBCivEjFVQScSGIEtSSVNUSU5BCivEjFVQScSGIExKVUJPTUlSCivEjFVQScSGIE1JTEFOCivEjFVQScSGIE1JTElDQQorxIxVUEnEhiBNSU9EUkFHCivEjFVQScSGIE1JT0RSQUcKK8SMVVBJxIYgTUlPRFJBRworxIxVUEnEhiBNSVJKQU5BCivEjFVQScSGIE1JUk9TTEFWCivEjFVQScSGIE9MR0EKK8SMVVBJxIYgUkFESU5LQQorxIxVUEnEhiBSQURPU0xBVgorxIxVUEnEhiBTUE9NRU5LQQorxIxVUEnEhiBTVEVWQU4KK8SMVVBJxIYgU1RFVkFOCivEjFVQScSGIFNUT0pBTgorxIxVUEnEhiBVUk/FoAorxIxVUEnEhiBaT1JBTgorxIxVUsSMScSGIERVxaBBTgorxIxVUsSMScSGIElMSUpBCivEjFVSxIxJxIYgTEFaQVIKK8SMVVLEjEnEhiBTTE9CT0RBTktBCivEjFVSR0FOT1YgRU1JTAorxIxVUknEhiDFvUFSS08KK8SMVVJJxIYgxJBPUsSQRQorxIxVUknEhiBEUkFHT1NMQVZBCivEjFVSScSGIERVxaBBTktBCivEjFVSScSGIE1JTEVOQQorxIxVUknEhiBNSUxPxaAKK8SMVVJJxIYgTkFUQUxJSkEKK8SMVVJJxIYgUkFET1NMQVYgRFIgUFJPRgorxIxVUknEhiBTTE9CT0RBTgorxIxVUknEhiBWQVNBCivEjFVSScSGIFZFTElOS0EKK8SMVVJJxIYgVklET1NBVkEKK8SMVVJJxIYgVklET1NBVkEKK8SMVVJPVknEhiBEQU5JTE8KK8SMVVJPVknEhiBWVUtTQU4KK8SMVVJVxaBLSSBHQVZSQQorxIxVUlXFoEtJIE1JQ0EKK8SMVVNUT1ZJxIYgQVJJRgorxIxVVFVSQSBNQVJLTworxIxVVFVSScSGIEpFUk9OSU0KK8SMVVRVUklMTyDEjEVET01JUgorxIxVVFVSSUxPIEJPxb1BCivEjFVUVVJJTE8gTUlMSVZPSkUKK8SMVVRVUklMTyBTTE9CT0RBTiBESVBMIElORworxIxVVFVSSUxPViBNQVJJSkEKK8SMVVRVUklMT1YgTUlMT8WgCivEjFVUVVJJTE9WIE1JTE/FoAorxIxVVFVSSUxPViBTVkVUT1pBUgorxIxVVFVSSUxPViBWRUxJTktBCivEjFVUVVJJTE9WIFZVSklDQQorxIxVVkFMTyBMSlVCSUNBCivEjFVWQVJEScSGIEFOVFVOCivEjFZPS0nEhiBNQVJLTworxIxWT0tJxIYgUkFUS08KK8SMVk9SScSGIERVxaBBTgorxIxWT1JJxIYgTUlMT0pFCivEjFZPUktPViBMSlVCT01JUgorxIxWT1JLT1YgWkRSQVZLTworxIxWT1JLT1YgWkxBVEFOCivEjFZPUk8txJBVS0nEhiBEVcWgQU5LQQorxIxWT1JPIERPQlJPU0xBVgorxIxWT1JPVknEhiBKRUxFTktBCivEjFZPUk9WScSGIExKVUJPCivEjFZPUk9WScSGIFJBVEtPCivEjFZPUk9WScSGIFZVSklDQQorxaDEhkVLScSGIEJVRElNSVIKK8WgxIZFS0nEhiBEUkFHT01JUgorxaDEhkVLScSGIEtPU0EKK8WgxIZFS0nEhiBNSUxBTktBCivFoMSGRUtJxIYgTUlMScSGCivFoMSGRUtJxIYgTUlMSUNBCivFoMSGRUtJxIYgTUlPTUlSCivFoMSGRUtJxIYgU0xPQk9EQU4KK8WgxIZFS0nEhiBTVkVUT1pBUgorxaDEhkVLScSGIFZVS08KK8WgxIZFUEFOxIxFVknEhiDEkE9SxJBFCivFoMSGRVBBTsSMRVZJxIYgTklLT0xBCivFoMSGRVBBTk9WScSGIEJPR09MSlVCCivFoMSGRVBBTk9WScSGIEJSQU5JU0xBVgorxaDEhkVQQU5PVknEhiBET0JST1NMQVZBCivFoMSGRVBBTk9WScSGIERSQUdBTgorxaDEhkVQQU5PVknEhiBEUkFHQU4KK8WgxIZFUEFOT1ZJxIYgRFJBR1VUSU4KK8WgxIZFUEFOT1ZJxIYgRFXFoEFOCivFoMSGRVBBTk9WScSGIEdPUkFOCivFoMSGRVBBTk9WScSGIEdPUkRBTkEKK8WgxIZFUEFOT1ZJxIYgTEpVQk9NSVIKK8WgxIZFUEFOT1ZJxIYgTUlMRVZBCivFoMSGRVBBTk9WScSGIE1JTE9WQU4KK8WgxIZFUEFOT1ZJxIYgTUlPRFJBRworxaDEhkVQQU5PVknEhiBSQcWgS08KK8WgxIZFUEFOT1ZJxIYgUkFET1ZBTgorxaDEhkVQQU5PVknEhiBSQU5LTyBESVBMIElORworxaDEhkVQQU5PVknEhiBTSU5JxaBBCivFoMSGRVBBTk9WScSGIFpPUkFOCivFoMSGRVBBTk9WScSGIFpPUkEKK8WgxIZFUE9WScSGIFBFVEFSCivFoMSGRVJCQcSGRVYgR0xJR09SSUpFCivFoMSGRVbEjElLIFBBVkxFCivFoMSGSUJBTiBNQVJJTkEKK8WgxIZPUEnEhiBNSU9EUkFHCivFoMSGT1BJxIYgU1RBTklNSVIKK8WgxIZPUFVMT1ZJxIYgUEVUQVIKK8WgxIZVUklDIEpPU0lQCivFoEHFoEnEhiDFvUlWS08KK8WgQcWgScSGIMSQT1LEkEUKK8WgQcWgScSGIERVxaBBTgorxaBBxaBJxIYgTUlMQU4KK8WgQcWgScSGIE1JTEFOCivFoEHFoEnEhiBNSUxPxaAKK8WgQcWgScSGIE1JUktPCivFoEHFoEnEhiBORVZFTktBCivFoEHFoEnEhiBQRVRBUgorxaBBxaBJxIYgU0FWTworxaBBxaBJxIYgU1RFVkFOCivFoEHFoEnEhiBaT1JBTgorxaBBxaBJTiBEQU5JQ0EKK8WgQcWgSU4gUkFET01JUgorxaBBxaBJTkHEjEtJIE1BUklKQQorxaBBxaBJTkHEjEtJIFNPTkpBCivFoEHFoElOQcSMS0kgVkFTSUxJSkUKK8WgQcWgTEpJTiBMQVpBUgorxaBBxaBPVknEhiBUUklGS08KK8WgQUJBTkkgTkFaSU0KK8WgQUJBTk9WScSGIEFCRFVSQUhNQU4KK8WgQUJBTk9WScSGIE9CUkFECivFoEFCRUMgRFJBR0lDQQorxaBBQknEhiDEkFVSTworxaBBQknEhiBIVVNFSU4KK8WgQUJJxIYgUEFWTEUKK8WgQUJMSSBNQVJUT04KK8WgQUJMSSBNSUhBSkxPCivFoEFCT1ZJxIYgTUVITUVEQUxJSkEKK8WgQURFIEpFTEVOQQorxaBBRkFSSUsgTEpJTEpBTkEKK8WgQUZSQU5KIEFORFJJSkEKK8WgQUZSQU5KIERFxb1FCivFoEFGUkFOSiBGUkFOSkEKK8WgQUZSQU5KIExBU0xPCivFoEFGUkFOSiBMQVNMTworxaBBRlJBTkogUElST8WgS0EKK8WgQUZSQU5KIFNURVZBTgorxaBBRlJBTkogVEVPRE9SQQorxaBBR1VOT1ZJxIYgRFXFoEFOCivFoEFHVU5PVknEhiBNSUxJVk9KCivFoEFJTiBBTkRSSUpBCivFoEFJTiBNSUxFVkEKK8WgQUlOIFpBR09SS0EKK8WgQUlOT1ZJxIYgRFXFoEFOCivFoEFJTk9WScSGIE1BUklOQQorxaBBSkFUT1ZJxIYgSkVMSUNBCivFoEFKQVRPVknEhiBaRFJBVktPCivFoEFKQkVSIERBTklDQQorxaBBSkJFUiBNSUxFTktPCivFoEFKRElLIEZSQU5DScWgS0EKK8WgQUpGQVIgUEFWTEUKK8WgQUpJTiBNSUxPUkFECivFoEFKSU5PVknEhiBEUkFHT1NMQVYKK8WgQUpJTk9WScSGIERVxaBBTgorxaBBSklOT1ZJxIYgR09SREFOQQorxaBBSklOT1ZJxIYgTUFSSU5LTworxaBBSklOT1ZJxIYgU0lEQQorxaBBSk4gRFXFoEFOCivFoEFKTkJFUkdFUiBKT1ZBTgorxaBBSk5CRVJHRVIgTElMSQorxaBBSk5PViBKT1ZBTgorxaBBSk5PViBLQVRJQ0EKK8WgQUpOT1YgUEVUQVIKK8WgQUpOT1ZJxIYgUkFESU5LQQorxaBBSlRJIEVURUxLQQorxaBBSlRJIEdJWkVMQQorxaBBSlRJIEtBVElDQQorxaBBSlRJIE1BUklKQQorxaBBSlRPxaAgxJBPUsSQRQorxaBBSlRPxaAgxJBVUkEKK8WgQUpUT8WgIExKVUJJxaBBCivFoEFKVE/FoCBOSUtPTEEKK8WgQUpUT8WgIFNJTUEKK8WgQUpUT8WgIFNJTUEKK8WgQUtJxIYgxb1FTEpLTworxaBBS0nEhiDEkE9SxJBFCivFoEFLScSGIElMSUpBCivFoEFLScSGIElMSUpBCivFoEFLScSGIElMSUpBCivFoEFLScSGIEpBTkpBCivFoEFLScSGIEtBVEEKK8WgQUtJxIYgTUFORQorxaBBS0nEhiBNSUxVVElOCivFoEFLScSGIFJBREUKK8WgQUtJxIYgWk9SS0EKK8WgQUtPVEEgRFXFoEFOCivFoEFLT1RBIEtPSk8KK8WgQUtPVEEgTUlMQU4KK8WgQUtPVEEgTUlMT1JBRAorxaBBS09UQSBTSU1FT04KK8WgQUtPVEnEhiBMSlVCT01JUgorxaBBS09UScSGIE1JUkpBTkEKK8WgQUtVIE1FSE1FRAorxaBBTEFCQUxJSkEgRFJBR09NSVIKK8WgQUxBQkFMSUpBIFZBU08KK8WgQUxBSknEhiBTVEVWQU4KK8WgQUxBTU9OIMWgQU5ET1IKK8WgQUxBTU9OIEFORFJJSkEKK8WgQUxBTU9OIEpPU0lQCivFoEFMQU1PTiBKT1NJUAorxaBBTEFNT04gTUnFoEEKK8WgQUxBTU9OIE1JSEFKTE8KK8WgQUxBTU9OIE1JSEFKTE8KK8WgQUxBTktJIEpBTk/FoAorxaBBTEFOS0kgSkFOT8WgCivFoEFMQk9UIFpVWkEKK8WgQUxFUiBWRVJBCivFoEFMR08gSkVMSVNBVkVUQQorxaBBTElQVVJPVknEhiBNSUxPVkFOCivFoEFMSVBVUk9WScSGIFNMQVZJxaBBCivFoEFNQVRJxIYgTkVNQU5KQQorxaBBTUVDIE1JTElDQQorxaBBTkRPTCBBVElMQQorxaBBTkRPTCBBVElMQQorxaBBTkRPTCBJxaBUVkFOCivFoEFORE9MIEtBVElDQQorxaBBTkRPTCBNQVRJSkEKK8WgQU5ET0wgTUlIQUpMTworxaBBTkRPUiBJTE9OQQorxaBBTkRPUiBKT1NJUAorxaBBTkRPUiBMQURJU0xBVgorxaBBTkRPUiBNQVJJSkEKK8WgQU5ET1IgVElCT1IKK8WgQU5ET1JJIMWgQVJJS0EKK8WgQU5KScSGIE1JTEFESU4KK8WgQU5PVknEhiBEVcWgQU4KK8WgQU5UQSDFoEFORE9SCivFoEFOVEEgQU1BTElKQQorxaBBTlRBIEJFTEEKK8WgQU5UQSBEVcWgQU5LQQorxaBBTlRBIEZFUkVOQworxaBBTlRBIEnFoFRWQU4KK8WgQU5UQSBJTE9OS0EKK8WgQU5UQSBJTVJFCivFoEFOVEEgSk9TSVAKK8WgQU5UQSBMQVNMTworxaBBTlRBIE1JUk9TTEFWCivFoEFOVEEgUEFMCivFoEFOVEEgU0lNQQorxaBBTlRBIFNMQVZLTworxaBBTlRBIFNPRklKQQorxaBBTlRBIFNURVZBTgorxaBBTlRBIFZJTktPCivFoEFOVEEgVkxBRElNSVIKK8WgQU5UQUsgSk9TSVAKK8WgQU5UQUsgS0FSTE8KK8WgQU5UQUxBQiBTT0ZJSkEKK8WgQU5URUsgxb1FTEpLTworxaBBTlRFSyBaREVOS0EKK8WgQVBJIFBJUk/FoEtBIERJUEwgSU5HCivFoEFQScSGIE5JS09MQQorxaBBUElOQSBNSVJPU0xBVgorxaBBUE9OSkEgSk9WQU4KK8WgQVBPTkpBIE1BUktPCivFoEFQT05KQUMgxb1BUktPCivFoEFQT05KQUMgxb1BUktPCivFoEFQT05KQUMgQUxFS1NBTkRBUgorxaBBUE9OSkFDIEpFTEtBIFBST0ZFU09SCivFoEFQT05KQUMgUkFEQQorxaBBUE9OSkFDIFNURVZBTgorxaBBUE9OSlNLSSBSQURJVk9KCivFoEFQVVJJxIYgU1ZFVE9aQVIKK8WgQVLEjEFOU0tJIEpVTEtBCivFoEFSxIxBTlNLSSBNSUxJQ0EKK8WgQVLEjEFOU0tJIE1JUk9TTEFWCivFoEFSxIxFViBBTlRPTklKQQorxaBBUsSMRVYgSkVMRU5BCivFoEFSxIxFViBNSVJPU0xBVkEKK8WgQVLEjEVWIE5JS09MQQorxaBBUsSMRVYgVkxBRElNSVIKK8WgQVLEjEVWScSGIMW9QVJLTworxaBBUsSMRVZJxIYgxb1FTElNSVIKK8WgQVLEjEVWScSGIEFOSUNBCivFoEFSxIxFVknEhiBCUkFUSU1JUgorxaBBUsSMRVZJxIYgRFXFoEFOCivFoEFSxIxFVknEhiBHUk9aREFOQQorxaBBUsSMRVZJxIYgSUxLQQorxaBBUsSMRVZJxIYgS0FUSUNBCivFoEFSxIxFVknEhiBNQVJHSVRBIERSCivFoEFSxIxFVknEhiBNSUxFTkEKK8WgQVLEjEVWScSGIE5FQk9KxaBBCivFoEFSxIxFVknEhiBQRVRBUgorxaBBUsSMRVZJxIYgUFJFRFJBRworxaBBUsSMRVZJxIYgUkFKS08KK8WgQVLEjEVWScSGIFZJRE9KRQorxaBBUsSMRVZJxIYgVk9KSVNMQVYKK8WgQVLFoEFOU0tJIE1BUklOS08KK8WgQVLFoEFOU0tJIE1JTEFOCivFoEFSQSBJTVJFCivFoEFSQSBJTVJFCivFoEFSQUMgxJBPUsSQRQorxaBBUkFDIEJJTEpBTkEKK8WgQVJBQyBCT8WgS08KK8WgQVJBQyBEVcWgQU4KK8WgQVJBQyBEVcWgQU4KK8WgQVJBQyBNSUxBTgorxaBBUkFDIE1JTEUKK8WgQVJBQyBNSUxJQ0EKK8WgQVJBQyBNSU9EUkFHCivFoEFSQUMgUkFET0pFCivFoEFSQUMgUkFET01JUgorxaBBUkFDIFJBRE9WQU4KK8WgQVJBQyBSVcW9SUNBCivFoEFSQUMgU1RFVkEKK8WgQVJBQyBTVkVUT1pBUgorxaBBUkFOREkgxaBBTkRPUgorxaBBUkFOT1ZJxIYgQU5JVEEKK8WgQVJBTk9WScSGIERSQUdJxaBBCivFoEFSQU5PVknEhiBNSUxBRElOIERSIExFS0FSCivFoEFSQU5PVknEhiBNSUxPxaAKK8WgQVJBTk9WScSGIE1JT0RSQUcKK8WgQVJBTk9WScSGIFpPUkFOCivFoEFSRU5BQyBCT8W9SURBUgorxaBBUkVOQUMgTUFSS08KK8WgQVJFTkFDIFJPWklOQQorxaBBUkVOQUMgVklEQUsKK8WgQVJFTkFDIFZPSklTTEFWCivFoEFSR0HEjCBCUkFOS08KK8WgQVJHScSGIE1JTE9SQUQKK8WgQVJHScSGIFZMQURJTUlSCivFoEFSR0nEhiBaTEFUSUNBCivFoEFSR0lOIMW9QVJLTworxaBBUkdJTiBNQVJJSkEKK8WgQVJJIE1BUklKQQorxaBBUkkgU1RFVkFOCivFoEFSScSGIEpPU0lQCivFoEFSScSGIEtBVEFSSU5BCivFoEFSScSGIEtPU1RBCivFoEFSScSGIExKVUJJQ0EKK8WgQVJJxIYgTUFSSUpBCivFoEFSScSGIE1BVE8KK8WgQVJJxIYgTkVOQUQKK8WgQVJJxIYgU0xPQk9EQU4KK8WgQVJJxIYgU09GSUpBCivFoEFSScSGIFNURVZBTgorxaBBUknEhiBUT01JU0xBViBNUgorxaBBUknEhiBaVkVaREFOQQorxaBBUklLIEFOQQorxaBBUklLIEFORFJJSkEKK8WgQVJJSyBKT1ZBTgorxaBBUklLIEtBVElDQQorxaBBUklLIExKVUJJQ0EKK8WgQVJJSyBNSVJPU0xBVgorxaBBUklLIFNURVZBTgorxaBBUklLLVZJREnEhiBOQURBCivFoEFSSUsgVkxBRElNSVIKK8WgQVJLQURJIFZFUk9OSUtBCivFoEFSS0FOSiBBTlRPTgorxaBBUktBTkogRkVSRU5DCivFoEFSS0FOSiBGUkFOSkEKK8WgQVJLQU5KIEpBTk/FoAorxaBBUktBTkpBQyBGRVJFTkMKK8WgQVJLRVpJLVBFVFJJxIYgTUFSR0lUQQorxaBBUktJxIYgU1LEkEFOCivFoEFSS09WScSGIERVxaBBTgorxaBBUktPVknEhiBNSU9EUkFHIERSCivFoEFSS09WScSGIFpPUkFOCivFoEFSTkpBSSBBTktJQ0EKK8WgQVJOSkFJIE1JS0xPxaAKK8WgQVJOSkFJIFBBTAorxaBBUk8gSk9WQU4KK8WgQVJPIE5BREEKK8WgQVJPxaBJIFZBTEVSSUpBCivFoEFST8WgS09WScSGIFZVS0lDQQorxaBBUk9JLVNBQk8gVkVSQQorxaBBUk9WScSGIMSQVVJPCivFoEFST1ZJxIYgTUlSS08KK8WgQVJPVknEhiBQRVRBUgorxaBBUlUgRFXFoElDQQorxaBBUlZBUkkgxaBBTkRPUgorxaBBUlZBUkkgS0FST0xKCivFoEFSVkFSSSBNQVJUQQorxaBBUlZBUkkgUk9aQUxJSkEKK8WgQVJWQVJJIFZBTEVSSUpBCivFoEFTSVZBUiBBSE1FRAorxaBBVEFSQSBNSUxBTgorxaBBVE9SQSBTVE9KQU4KK8WgQVRSScSGIEFOQQorxaBBVFJJxIYgQlJBTklTTEFWCivFoEFVTEEgR09SQU4KK8WgQVVMQSBSQURPVkFOCivFoEFVTEnEhiBESU1JVFJJSkUKK8WgQVZFTElOIMWgQU5ET1IKK8WgQVZFTElOIEpPU0lQCivFoEFWRUxJTiBKT1ZBTgorxaBBVkVMSU4gSlVMSUpBCivFoEFWRVJESUpBIE5JS09MQQorxaBBVklKQSBEVcWgQU4KK8WgQVZJSkEgTUlMRQorxaBBVklKQSBNSUxPUkFECivFoEFWSUpBIFBFVEFSCivFoEFWSUpBIFJBREUKK8WgQVZSTEpVR0EgTUlMQU4KK8WgRcSMScSGIEFMSUpBCivFoEXEjEnEhiBKVUxLQQorxaBFxaBBIFNMQVZLTworxaBFxaBFTEpBIEJSQU5JTUlSCivFoEXFoEVMSkEgTUFSSUpBTgorxaBFxaBFUklOQUMgxJBPUsSQRQorxaBFxaBFVknEhiDEkE9SxJBFCivFoEXFoEVWScSGIERSQUdJQ0EKK8WgRcWgRVZJxIYgTEVPTkEKK8WgRcWgRVZJxIYgTEpJTEpBTkEKK8WgRcWgRVZJxIYgTUFSQQorxaBFxaBFVknEhiBNSUxJVk9KCivFoEXFoEVWScSGIFNURVZBTgorxaBFxaBJxIYgxb1JVk9UQSBESVBMIElORworxaBFxaBJxIYgQVVSRUxJSkEKK8WgRcWgScSGIERSQUdPTEpVQgorxaBFxaBJxIYgRFJBR09MSlVCCivFoEXFoEnEhiBWRVJBCivFoEXFoEnEhiBWSURBCivFoEXFoEtBUiBOQURBCivFoEXFoExJSkEgxIxFREEKK8WgRcWgTElKQSBCUkFOS08KK8WgRcWgTElKQSBEUkFHQU4KK8WgRcWgTElKQSBEVcWgQU4KK8WgRcWgVU0gQlJBTktPCivFoEXFoFVNIERSQUdPTEpVQgorxaBFxaBVTSBJTElKQQorxaBFxaBVTSBNSUhBSkxPCivFoEXFoFVNIE1JTEFOCivFoEXFoFVNIE1JTEFOCivFoEXFoFVNIE1JTEVOS08KK8WgRcWgVU0gU0FWQQorxaBFxaBVTSBTTEFWSUNBCivFoEXFoFVNIFRPTUEKK8WgRcSGRVJPViBBTsSQRUxJSkEKK8WgRcSGRVJPViBCSUxKQU5BCivFoEXEhkVST1YgQlJBTklTTEFWCivFoEXEhkVST1YgRFJFTktBCivFoEXEhkVST1YgRFXFoEFOCivFoEXEhkVST1YgRU1JTAorxaBFxIZFUk9WIElEQQorxaBFxIZFUk9WIElWQU4KK8WgRcSGRVJPViBKT1ZBTgorxaBFxIZFUk9WIEtBSkEKK8WgRcSGRVJPViBNQVRBCivFoEXEhkVST1YgTUlMQU4KK8WgRcSGRVJPViBQQVZMRQorxaBFxIZFUk9WIFBFVEFSIERJUEwgSU5HCivFoEXEhkVST1YgUEVUQVIKK8WgRcSGRVJPViBQUk9EQU4KK8WgRcSGRVJPViBSQURPU0xBVgorxaBFxIZFUk9WIFNBVkEKK8WgRcSGRVJPViBTSU5JxaBBCivFoEXEhkVST1YgU1ZFVExBTkEKK8WgRcSGRVJPViBTVkVUT1pBUgorxaBFxIZFUk9WIFNWRVRPWkFSCivFoEXEhkVST1YgU1ZFVE9aQVIKK8WgRcSGRVJPViBaTEFUT0pFCivFoEXEhkVST1YgWkxBVE9KRQorxaBFQkXFoMSGRU4gSU1SRQorxaBFQkXFoMSGRU4gSk/FvUVGCivFoEVCRURJTkkgTkVWWkFECivFoEVCRUsgxJBVTEEKK8WgRUJFSyBBTlXFoEtBCivFoEVCRUsgSVZBTgorxaBFQkVLIEpPU0lQCivFoEVCRUtPVknEhiBQQVZMRQorxaBFQkVaIERSQUdBTgorxaBFQkVaIERVxaBBTgorxaBFQkVaIExBWk8KK8WgRUJFWiBSQURPSktBCivFoEVCRVogU0lNTworxaBFQkVaIFNURVZBTgorxaBFQkVaIFNURVZPCivFoEVCRVogU1RFVk8KK8WgRUJJIEpFTElDQQorxaBFRsSMScSGIEVNSUwKK8WgRUbEjEnEhiBNSVJLTworxaBFRkVSIMSQT1LEkEUgRElQTCBJTkcKK8WgRUZFUiBBTEVLU0FORFJBCivFoEVGRVIgSlVMSUpFIERSCivFoEVGRVIgS0FUQVJJTkEKK8WgRUZFUiBLTEFSQQorxaBFRkVSIE1JT0RSQUcKK8WgRUZFUiBQRVRBUgorxaBFRkVSIFJBRE9KRQorxaBFRkVSIFNMQVZLTworxaBFR0VDIEVEVUFSRAorxaBFR0lOQSBOSUtPTEEKK8WgRUdPIE5JS09MQQorxaBFR09WScSGIERSQUdBTgorxaBFR09WScSGIE1JTE/FoAorxaBFR1JUIMSMRURPTUlSCivFoEVHUlQgxIxFRE9NSVIKK8WgRUdSVCBKT1ZPCivFoEVHUlQgSk9WTworxaBFR1JUIE1BVE8KK8WgRUdSVCBNTEFERU4KK8WgRUdSVCBOQURBCivFoEVHUlQgUEVUQVIKK8WgRUdSVCBWT0pJU0xBVgorxaBFR1VMSkVWIERVxaBBTgorxaBFR1VMSkVWIERVxaBBTgorxaBFR1VMSkVWIERVxaBBTgorxaBFR1VMSkVWIEdSVUpBCivFoEVHVUxKRVYgSk9WQU4KK8WgRUdVTEpFViBNQVJLTworxaBFR1VMSkVWIE1JS0EKK8WgRUdVTEpFViBNSUxFTktPCivFoEVHVUxKRVYgUEFKQQorxaBFR1VMSkVWIFBFVEFSCivFoEVHVUxKRVYgUkFET1NMQVYKK8WgRUdVTEpFViBSVcW9SUNBCivFoEVHVUxKRVYgU0xBVktPCivFoEVHVUxKRVYgU05Fxb1BTkEKK8WgRUdVTEpFViBaQUdPUktBCivFoEVHVUxKRVYgWk9SSUNBCivFoEVIScSGIExKVUJJQ0EKK8WgRUhJxIYgTUlSU0EKK8WgRUhJxIYgU0xBVklDQQorxaBFSE9WScSGIFJBTUlaCivFoEVKTUXFoEkgU1RFVkFOCivFoEVKUEXFoCDFoEFSTE9UQQorxaBFSlBFxaAgRkVET1IKK8WgRUpQRcWgIEZFRE9SCivFoEVKUEXFoCBHQUxJTkEKK8WgRUpQRcWgIElMT05BCivFoEVLIEpVTElKQU4KK8WgRUtBUknEhiBNSUxPU0FWCivFoEVLQVJJxIYgTkFEQQorxaBFS0VST1ZJxIYgRFJBR0FOCivFoEVLVUxBUkFDIEFMRUtTQU5EUkEKK8WgRUtVTEFSQUMgQlJBTklTTEFWIERJUEwgT0VDCivFoEVLVUxBUkFDIERVxaBBTgorxaBFS1VMQVJBQyBQUkVEUkFHCivFoEVLVUxBUkFDIFNBVktBCivFoEVLVUxBUkFDIFNMT0JPREFOCivFoEVMIE1BUkdJVEEKK8WgRUxCIExBU0xPCivFoEVMRVNUIFNMT0JPREFOS0EKK8WgRUxKRU0gSlVMSUpBTkEKK8WgRUxKRU0gS0FST0xKIERJUEwgSU5HCivFoEVMSkVNIExKSUxKQU5BCivFoEVMSkVNIFNURVZBTgorxaBFTEpFTSBaT0xUQU4KK8WgRUxLRU4gSUxPTktBCivFoEVMTUnEhiBWVUtPTUFOIERJUEwgSU5HCivFoEVOxIxFVknEhiBNSUxPTUlSCivFoEVOQk9STiBBREFMQkVSVCBEUiBQUk9GCivFoEVORFVMQSDFoEFORE9SCivFoEVORFVMQSBBTlRBTAorxaBFTkRVTEEgR0FCT1IKK8WgRU5IQVVaRVIgVE9NSVNMQVYKK8WgRU5LIEFMQklOQQorxaBFTksgSVZBTiBESVBMIElORworxaBFTksgVk9KSU4KK8WgRU5UQUxFUiBFTUlMCivFoEVQIExFTktBCivFoEVQxaBFSSBLUklTVElOQQorxaBFUEEgU1ZFVE9aQVIKK8WgRVBBUkVWScSGIERBUktPCivFoEVQQVJPVknEhiBEQVJLTworxaBFUEFST1ZJxIYgTEpJTEpBTkEKK8WgRVBBUk9WScSGIE1JUk9TTEFWCivFoEVQQVJPVknEhiBaT1JBCivFoEVQRUMgVkxBRElNSVIKK8WgRVBFQ0FOT1ZJxIYgTUlMT8WgCivFoEVQRUxKIExFTktBCivFoEVQRVJBQyBSQU5LQQorxaBFUEnEhiBaQURBCivFoEVQSU5TS0kgxJBVUkEKK8WgRVBJTlNLSSDEkFVSQQorxaBFUElOU0tJIEpPQUtJTQorxaBFUElOU0tJIFNMQVZJQ0EKK8WgRVJCQU4gU0xPQk9EQU5LQQorxaBFUkJFRMW9SUpBIERSQUdPTEpVQgorxaBFUkJFRMW9SUpBIE1JUktPCivFoEVSQkVExb1JSkEgTUlSS08KK8WgRVJCScSGIEpFTEtBCivFoEVSQknEhiBaQUdPUktBCivFoEVSQknEhiBaQUdPUktBCivFoEVSQlVMQSBCUkFOS08KK8WgRVJCVUxBIE1JTEFOCivFoEVSRcWgIMWgQU5ET1IKK8WgRVJFxaAgxb1Vxb1BTkEKK8WgRVJFxaAgQU5BCivFoEVSRcWgIEFOVFVOCivFoEVSRcWgIEVORFJFCivFoEVSRcWgIEVTVEVSCivFoEVSRcWgIEZSQU5DScWgS0EKK8WgRVJFxaAgR0laRUxBCivFoEVSRcWgIElNUkUKK8WgRVJFxaAgSkFOT8WgCivFoEVSRcWgIEtBUk9MSiBNUgorxaBFUkXFoCBMQVNMTworxaBFUkXFoCBTVEVWQU4KK8WgRVJFR0kgWk9MVEFOCivFoEVSRU1FVEtPVlNLSSBBTEVLU0EKK8WgRVJFTUVUS09WU0tJIEJPTkEKK8WgRVJFUiBMRU5LQQorxaBFUkZFWkkgxJBVUkEKK8WgRVJJxIYgTUlMS0EKK8WgRVJJRiBORcWgQVQKK8WgRVJJRkkgUkFCSUpBCivFoEVSSUZJIFNBRkVUCivFoEVSS09WIExKSUxKQU5BCivFoEVSS09WIFJBRE9TTEFWCivFoEVST1ZJxIYgSk9WSUNBCivFoEVTRUsgU1RBTklTTEFWCivFoEVTVEFOIEJPUklTCivFoEVTVEFOT1YgQlJBTktPCivFoEVTVEFOT1YgTUlMRU5BCivFoEVTVEnEhiBCT0dEQU4KK8WgRVRBTE8gxaBBTkRPUgorxaBFVEFMTyBGUkFOSkEKK8WgRVRBTE8gSU1SRQorxaBFVEFMTyBJTVJFCivFoEVUQUxPIEtBUkxPCivFoEVUQUxPIEtBUk9MSgorxaBFVEtBIEtBVEEKK8WgRVRLQSBUT01JU0xBVgorxaBFVFJBSsSMScSGIElMRElLTworxaBFVsSMScSGIMSQT1LEkEUKK8WgRVZBUiBFTUlMSUpBCivFoEVWQVIgSk9TSVAgVkVURVJJTkFSCivFoEVWQVIgVkxBRElTTEFWCivFoEVWQVJMScSGIEtPU1RBCivFoEVWRVJPViBSQURPU0xBVgorxaBFVknEhiDEkE9SxJBFIE1SCivFoEVWScSGIMSQT1LEkEUKK8WgRVZJxIYgxJBPUsSQRQorxaBFVknEhiBBTEVLU0FOREFSCivFoEVWScSGIEJPUklTTEFWCivFoEVWScSGIERSQUdBTgorxaBFVknEhiBEUkFHT0xKVUIKK8WgRVZJxIYgRFJBR09MSlVCCivFoEVWScSGIEpPVk8KK8WgRVZJxIYgTEFaQVIKK8WgRVZJxIYgTUlMQU4KK8WgRVZJxIYgTUlMT8WgCivFoEVWScSGIE1JTE9SQUQKK8WgRVZJxIYgTUlST1NMQVZBCivFoEVWScSGIE5BREEKK8WgRVZJxIYgTkFEQQorxaBFVknEhiBQRVRBUgorxaBFVknEhiBQRVRBUgorxaBFVknEhiBQUkVEUkFHCivFoEVWScSGIFJBRE9WQU4KK8WgRVZJxIYgU0FWS0EKK8WgRVZJxIYgU0xPQk9EQU4KK8WgRVZJxIYgU1LEkEFOCivFoEVWScSGIFRSSVZPCivFoEVWTyDEjEVET01JUgorxaBFVk8gQUxFS1NBTkRBUgorxaBFVk8gQk/FoEtPCivFoEVWTyBCT8WgS08KK8WgRVZPIEJSQU5LTworxaBFVk8gRFXFoEFOCivFoEVWTyBKT1ZPCivFoEVWTyBNSUxBTgorxaBFVk8gTUlMQU4KK8WgRVZPIE1JTEFOCivFoEVWTyBNTEFERU4KK8WgRVZPIFNMQVZJQ0EKK8WgRVZPIFZMQURPCivFoEnFoEEgSk9TSVAKK8WgScWgQSBKT1NJUAorxaBJxaBBS09WScSGIE1JTEVOQQorxaBJxaBBS09WScSGIE1JUk9TTEFWCivFoEnFoEFSSUNBIExKVVBLTworxaBJxaBBUklDQSBaRFJBVktPCivFoEnFoEVWScSGIEFOxJBFTEtBCivFoEnFoEnEhiBNSUxBTgorxaBJxaBJxIYgTUxBREVOCivFoEnFoEnEhiBQRVRLQQorxaBJxaBJxIYgU1RKRVBBTgorxaBJxaBLQSBNQVJHSVRBCivFoEnFoEtPViBBTlRFCivFoEnFoEtPVknEhiBEUkFHT0xKVUIKK8WgScWgS09WScSGIERSQUdPTEpVQgorxaBJxaBMSkFHScSGIMSMRURPCivFoEnFoExKQUdJxIYgRFXFoEFOCivFoEnFoE9WScSGIERSQUdPTEpVQgorxaBJxaBPVknEhiBNSUxBxaBJTgorxaBJxJBBTklOIEJSQU5JU0xBVgorxaBJxJBBTklOIERVxaBBTiBESVBMIElORworxaBJxJBBTklOIE1JTElDQQorxaBJxJBBTklOIE1JTE9KRSBESVBMIElORworxaBJxJBBTlNLSSBCVURJTUlSCivFoEnEkEFOU0tJIE1JUk9TTEFWCivFoElCQUxJxIYgSUxJSkEKK8WgSUJBTEnEhiBMSlVCT01JUgorxaBJQlVMIFpPUkFOCivFoElCVUwgWk9SSUNBCivFoElCVUxPViDEkFVSQQorxaBJQyBNQVJJSkEKK8WgSUMgVEVSRVpBCivFoElGTEnFoCBKQUdPREEKK8WgSUZMScWgIExBSk/FoAorxaBJRkxJxaAgU0xBVktPCivFoElHVUQgxJBPUsSQRQorxaBJSEEgScWgVFZBTgorxaBJSkHEjEnEhiBBTEVLU0FOREFSCivFoElKQcSMScSGIEFMRUtTQU5EQVIKK8WgSUpBxIxJxIYgQk9SSVNMQVYKK8WgSUpBxIxJxIYgQk9TSUxKS0EKK8WgSUpBxIxJxIYgQlJBTklTTEFWCivFoElKQcSMScSGIERBTklDQQorxaBJSkHEjEnEhiBEQU5JQ0EKK8WgSUpBxIxJxIYgREFOSUxPCivFoElKQcSMScSGIERBTklMTworxaBJSkHEjEnEhiBEVcWgQU4KK8WgSUpBxIxJxIYgRFXFoElDQQorxaBJSkHEjEnEhiBEVcWgSUNBCivFoElKQcSMScSGIEpFTElDQQorxaBJSkHEjEnEhiBMRVNBCivFoElKQcSMScSGIE1JTElWT0pFCivFoElKQcSMScSGIE1JTE9SQUQKK8WgSUpBxIxJxIYgTUlST1NMQVYKK8WgSUpBxIxJxIYgUkFET1NMQVYKK8WgSUpBxIxJxIYgU1RBTktBCivFoElKQcSMScSGIFNURVZBTgorxaBJSkHEjEnEhiBaT1JJQ0EKK8WgSUpBxIxLSSDFvUlWQQorxaBJSkHEjEtJIMW9SVZLTworxaBJSkHEjEtJIMSQVVLEkElOS0EKK8WgSUpBxIxLSSBCT8W9SURBUgorxaBJSkHEjEtJIERSQUdBTkEKK8WgSUpBxIxLSSBHT1JEQU5BCivFoElKQcSMS0kgSVNBCivFoElKQcSMS0kgSk9WQU4KK8WgSUpBxIxLSSBLT1NUQQorxaBJSkHEjEtJIExBWkFSCivFoElKQcSMS0kgTUlMQU4KK8WgSUpBxIxLSSBNSUxFTktPCivFoElKQcSMS0kgTUlMT8WgCivFoElKQcSMS0kgTUlSSkFOQQorxaBJSkHEjEtJIE5FU1RPUiBEUgorxaBJSkHEjEtJIFBFVEFSCivFoElKQcSMS0kgUFJFRFJBRworxaBJSkHEjEtJIFJBRE9TTEFWQQorxaBJSkHEjEtJIFNJTUEKK8WgSUpBxIxLSSBTTEFWS08KK8WgSUpBxIxLSSBTTE9CT0RBTgorxaBJSkHEjEtJIFNURVZBTgorxaBJSkHEjEtJIFRPTUlTTEFWCivFoElKQcSMS0kgVklUT01JUgorxaBJSkHEjEtJIFZVSklDQQorxaBJSkFLIMSQT1LEkEUKK8WgSUpBSyBKRUxJQ0EKK8WgSUpBSyBNSUxFTktPCivFoElKQUsgTUlMT8WgCivFoElKQUsgUEFWTEUKK8WgSUpBSyBQRVRBUgorxaBJSkFLIFRPTUEKK8WgSUpBS09WIFNUQU5JU0xBVkEKK8WgSUpBS09WIFZFTEpLTworxaBJSkFLT1ZJxIYgRFJBR0lDQQorxaBJSkFLT1ZJxIYgTUlMT1JBRAorxaBJSkFLT1ZJxIYgU1RFVkEKK8WgSUpBS09WScSGIFpPUkFOCivFoElKQU4gQUxFS1NBTkRSQQorxaBJSkFOIEJPSkEKK8WgSUpBTiBCUkFOS08KK8WgSUpBTiBCUkFOS08KK8WgSUpBTiBCUkFOS08KK8WgSUpBTiBEQU5FCivFoElKQU4gSUxJSkEKK8WgSUpBTiBNSUxFVkEKK8WgSUpBTiBNSUxPxaAKK8WgSUpBTiBNSVJLTworxaBJSkFOIE5FVkVOS0EKK8WgSUpBTiBOSUtPTEEKK8WgSUpBTiBSQURFCivFoElKQU4gU0xPQk9EQU4KK8WgSUpVSyBEUkFHQU4KK8WgSUsgVElCT1IKK8WgSUtFVCBJxaBUVkFOCivFoElLRVQgScWgVFZBTgorxaBJS0VUIElNUkUKK8WgSUtFVCBKT8W9RUYKK8WgSUtFVCBMQVNMTworxaBJS0VUIExBU0xPCivFoElLRVQgTEFTTE8KK8WgSUtFVCBNQUdEQQorxaBJS0VUIFNURVZBTgorxaBJS0nEhiBCT0dEQU4KK8WgSUtJxIYgUkFET1NMQVYKK8WgSUtNQU4gWlZPTktPCivFoElLT1BBUklKQSDEkE9SxJBFCivFoElLT1BBUklKQSBCT1JJU0xBVgorxaBJS09QQVJJSkEgRFXFoEFOCivFoElLT1BBUklKQSBKRUxFTkEKK8WgSUtPUEFSSUpBIE1JTEFOCivFoElLT1BBUklKQSBORVZFTkEKK8WgSUtPUEFSSUpBIFRJSE9NSVIKK8WgSUtPUEFSSUpBIFRJSE9NSVIKK8WgSUtPUEFSSUpBIFZMQURJTUlSCivFoElMRSDFoEFORE9SCivFoElMRSBMQURJU0xBVgorxaBJTEUgWk9MVEFOCivFoElMRVIgTUlMT1JBRAorxaBJTEVSIE1JTE9SQUQKK8WgSUxJIEnFoFRWQU4KK8WgSUxJIEtBUkxPCivFoElMSSBNSUhBSkxPCivFoElMSSBWQUxFUklKQQorxaBJTEnEhiDEkE9SxJBFCivFoElMScSGIMSQT1LEkEUKK8WgSUxJxIYgxJBPUsSQRQorxaBJTEnEhiBBTkEKK8WgSUxJxIYgQk9HREFOCivFoElMScSGIERBTklDQQorxaBJTEnEhiBEUkFHT01JUgorxaBJTEnEhiBEVcWgSUNBCivFoElMScSGIEpPVkFOCivFoElMScSGIExKVUJJQ0EKK8WgSUxJxIYgTUlMT1JBRCBEUgorxaBJTEnEhiBNSUxPU0FWQQorxaBJTEnEhiBNSVJKQU5BCivFoElMScSGIE1JUktPCivFoElMScSGIE1JUktPCivFoElMScSGIE5BREEKK8WgSUxJxIYgTklLT0xBCivFoElMScSGIE9MR0lDQQorxaBJTEnEhiBPTEdJQ0EKK8WgSUxJxIYgUEVUQVIKK8WgSUxJxIYgUEVUQVIKK8WgSUxJxIYgUkFDS08KK8WgSUxJxIYgU0FWQQorxaBJTEnEhiBTUEFTRU5LQQorxaBJTEnEhiBTVE9KQU4KK8WgSUxJxIYgVE/FoEEKK8WgSUxJxIYgVE9ET1IKK8WgSUxJxIYgVkFTQQorxaBJTEnEhiBWRVJBCivFoElMScSGIFZJVE9NSVIKK8WgSUxKRUcgSk9aTworxaBJTEpFR09WScSGIEJPxaBLTworxaBJTEpFR09WScSGIEJPxaBLTworxaBJTEpFR09WScSGIERSQUdPTEpVQgorxaBJTEpFR09WScSGIERVxaBBTgorxaBJTEpFR09WScSGIEpPVkFOS0EKK8WgSUxKRUdPVknEhiBNSUxBTgorxaBJTEpFR09WScSGIE5BREEKK8WgSUxKScSGIMSGQU1JTAorxaBJTEpLVVQgTUlMQU4KK8WgSUxKS1VUIE1JTEFOCivFoElMSktVVCBNSVJLTworxaBJTcSMScSGIE9MR0lDQQorxaBJTcWgScSGIERVxaBBTgorxaBJTcWgScSGIElMSUpBCivFoElNxaBJxIYgU0FWTworxaBJTUEgSk9BS0lNCivFoElNQSBNQVJHSVRBCivFoElNQSBWRVJPTklLQQorxaBJTUFLIEpBTgorxaBJTUFMQSBWSUtUT1IKK8WgSU1BTiBBTEVLU0VKCivFoElNQU5ESSBHQUJSSUpFTEEKK8WgSU1BTkRJIFNURVZBTgorxaBJTUVLIFZMQVRLTworxaBJTUnEjEnEhiBQRVRBUgorxaBJTUnEjEnEhiBTVkVUSVNMQVYKK8WgSU1JxIYgQU5UTworxaBJTUnEhiBCT8W9QU5BCivFoElNScSGIEZSQU5KTworxaBJTUnEhiBHSVpFTEEKK8WgSU1JxIYgSFJWT0pFCivFoElNScSGIEpVTEEgRElQTCBJTkcKK8WgSU1JxIYgTUlMQU4KK8WgSU1JxIYgTUlMQU4KK8WgSU1JxIYgTUlST1NMQVYKK8WgSU1JxIYgTUxBREVOCivFoElNScSGIE5JTk9TTEFWCivFoElNScSGIFNMQVZLTworxaBJTUnEhiBTTEFWS08KK8WgSU1JxIYgU1RFVkFOCivFoElNSUcgVElCT1IKK8WgSU1PS09WScSGIEtBVEFSSU5BCivFoElNT04gxaBBTkRPUgorxaBJTU9OIMSQRVLEkAorxaBJTU9OIEFSUEFECivFoElNT04gRVLFvUVCRVQKK8WgSU1PTiBNQVJJQ0EKK8WgSU1PTiBNSUhBTEoKK8WgSU1PTiBWSUxNT8WgIERSCivFoElNT05JSyBWTEFEQQorxaBJTU9OSkkgxaBBTkRPUgorxaBJTU9OSkkgQkFSQkFSQQorxaBJTU9OSkkgSkFOT8WgCivFoElNT05KSSBTT0ZJSkEKK8WgSU1PTkpJIFpPTFRBTgorxaBJTU9OSkkgWlZPTktPCivFoElNT05KSUsgTUFUSUpBCivFoElNT1ZJxIYgSk/FvUVGCivFoElNT1ZJxIYgTUlSTworxaBJTVBSQUdBIERVxaBBTgorxaBJTVBSQUdBIEpBRFJBTktBCivFoElNVURWQVJBQyBQQVZBTworxaBJTVVMSUpBIERSQcW9RU4KK8WgSU1VTElKQSBKT1ZPCivFoElNVU7EkEEgTEpVQk9NSVIKK8WgSU1VTkVDIE1BUklKQQorxaBJTVVOScSGIEFOS0EKK8WgSU1VTknEhiBJVkFOCivFoElNVU5JxIYgS0FSTE8KK8WgSU1VTknEhiBTVEVWQU4KK8WgSU1VTk9WQcSMS0kgS0FUSUNBCivFoElNVU5PVkHEjEtJIE5JS09MQQorxaBJTVVOT1ZBxIxLSSBOSUtPTEEKK8WgSU1VTk9WQcSMS0kgU0xBVktPCivFoElNVU5PVknEhiBHT1JEQU5BCivFoElNVU5PVknEhiBHT1JEQU5BCivFoElNVU5PVknEhiBKT1NJUAorxaBJTVVOT1ZJxIYgSk9TSVAKK8WgSU1VTk9WScSGIEpPU0lQCivFoElNVU5PVknEhiBORU5BRAorxaBJTVVOT1ZJxIYgTklLT0xBIERJUEwgSU5HCivFoElNVU5PVknEhiBTVEFOSVNMQVYKK8WgSU1VTk9WScSGIFNUQU5LTworxaBJTVVOT1ZJxIYgU1ZFVExBTkEKK8WgSU1VTk9WScSGIFRPTUEKK8WgSU5BR0wgS0FST0xKCivFoElOQUdMIEtBUk9MSgorxaBJTkFHTCBPVE8KK8WgSU5BR0wgU1RFVkFOCivFoElOSUsgRFJBR0FOCivFoElOSUtPViDEkE9SxJBFCivFoElOSUtPViBNSUxBTgorxaBJTktBIE1BUkdJVEEKK8WgSU5LQSBaTEFUS08KK8WgSU5LTyBHSVpFTEEKK8WgSU5LTyBJVkFOS0EKK8WgSU5LTyBKQU5PxaAKK8WgSU5LTyBTVEVWQU4KK8WgSU5LTyBWTEFESVNMQVYKK8WgSU5LT1ZJxIYgTUFSSUpBCivFoElQxIxJxIYgTEpVQk9NSVIKK8WgSVDEjEnEhiBNQVJJSkEKK8WgSVDEjEnEhiBNSURPCivFoElQxIxJxIYgTUlKT0RSQUcKK8WgSVDEjEnEhiBOSU5PU0xBVgorxaBJUEVLIEpPU0lQIE5PVklOQVIKK8WgSVBFVEnEhiBBTsSQQQorxaBJUEVUScSGIE1PTcSMSUxPCivFoElQScSGIEFMRUtTQU5EUkEKK8WgSVBJTiBKT1ZBTktBCivFoElQS0EgQk/FvUEKK8WgSVBLQSBCT8W9TworxaBJUEtBIEJSQU5LTworxaBJUEtBIERSQUdBTgorxaBJUEtBIERSQUdPCivFoElQS0EgR1JVSk8KK8WgSVBLQSBNQVJLTworxaBJUEtBIE1JUktPCivFoElQS0EgTUlST1NMQVYKK8WgSVBLQSBNSVJPCivFoElQS0EgTkXEkE8KK8WgSVBLQSBaT1JBTgorxaBJUEtBIFpPUkFOCivFoElQT8WgIMWgQU5ET1IKK8WgSVBPxaAgxJBPUsSQRQorxaBJUE/FoCDEkE9SxJBFCivFoElQT8WgIMSQVVJBCivFoElQT8WgIMSQVVJPCivFoElQT8WgIEVESVQKK8WgSVBPxaAgRVLFvUVCRVQKK8WgSVBPxaAgSUdOSkFDCivFoElQT8WgIEpBTk/FoAorxaBJUE/FoCBKT1ZBTktBCivFoElQT8WgIEpPVkFOCivFoElQT8WgIEpVTElKQU5BCivFoElQT8WgIE1JUkpBTkEKK8WgSVBPxaAgUk9aQUxJSkEKK8WgSVBPxaAgVkxBRElNSVIKK8WgSVBPxaBFVknEhiBSQURPSktBCivFoElQT1NLSSBLUlNURQorxaBJUE9WQUMgQ1ZJSkVUQQorxaBJUE9WQUMgREFOSUxPCivFoElQT1ZBQyBKQU5KQQorxaBJUE9WQUMgTkVERUxKS08KK8WgSVBPVkFDIFJBRElDQQorxaBJUE9WQUMgVkFTSUxJSkEKK8WgSVBSQUdBIFVST8WgCivFoElQVcWgScSGIEhFTEVOQQorxaBJUkFET1ZJxIYgQlJBTklTTEFWCivFoElSSUpPVlNLSSBHT0NFCivFoElSS0EgSkFOCivFoElSS0EgU0FNVUVMCivFoElST8SMS0EgQU5UVU4KK8WgSVJPS0kgQURBTQorxaBJUk9MQSBJVkFOCivFoElST05JxIYgTEpVQk8KK8WgSVNUT1YgRFJBR08KK8WgSVRFIEtBUk9MSgorxaBJVEUgTUFSSUpBCivFoElURSBUSUJPUgorxaBJVEVSIEtBUkxPCivFoElURVIgUlXFvUlDQQorxaBJVEVSIFNMT0JPREFOCivFoElWRUdJIElNUkUKK8WgS0FMSkFDIFNUQU5LTworxaBLQUxKQUMgWk9SQU4KK8WgS0FSScSMScSGIE1JUk9TTEFWCivFoEtBUklDQSBET0xPUkVTCivFoEtBUklDQSBTVEpFUEFOCivFoEtBUklOIFRPRE9SCivFoEtBVEFSScSGIFpPUkFOCivFoEtBVknEhiBDVklKTworxaBLQVZJxIYgSk9WTworxaBLQVZJxIYgTUlMQU4KK8WgS0FWScSGIE5JS09MQQorxaBLRUtJxIYgTUlPTUlSCivFoEtJTEpBSklDQSBWTEFESU1JUgorxaBLSUxKRVZJxIYgTUlMSURSQUcKK8WgS09CQUxKIE5BREEKK8WgS09CQUxKIFZPSklTTEFWCivFoEtPREFLIFBBVkxFCivFoEtPTE9QSUpBIExBWkFSCivFoEtPTkRSScSGIERSQUdPTUlSCivFoEtPUknEhiDEjEVET01JUgorxaBLT1JJxIYgxaBUUkFDSU1JUgorxaBLT1JJxIYgxJBVSkEKK8WgS09SScSGIMSQVVJPCivFoEtPUknEhiBBTktBCivFoEtPUknEhiBCT1NJTEpLQQorxaBLT1JJxIYgQlJBTklTTEFWCivFoEtPUknEhiBCUkFOS08KK8WgS09SScSGIERSQUdBTiBEUgorxaBLT1JJxIYgRFJBR0FOCivFoEtPUknEhiBEUkFHQU4KK8WgS09SScSGIERVxaBBTgorxaBLT1JJxIYgRFXFoEFOCivFoEtPUknEhiBEVcWgQU4KK8WgS09SScSGIERVxaBLTworxaBLT1JJxIYgR1JVTUlLT1YKK8WgS09SScSGIEpPVkFOCivFoEtPUknEhiBKT1ZBTgorxaBLT1JJxIYgS1NFTklKQQorxaBLT1JJxIYgTEFaQVIKK8WgS09SScSGIExKSUxKQU5BCivFoEtPUknEhiBNQVJBCivFoEtPUknEhiBNQVJJSkEKK8WgS09SScSGIE1BUklKQQorxaBLT1JJxIYgTUnEhk8KK8WgS09SScSGIE1JTEFOCivFoEtPUknEhiBNSUxBTgorxaBLT1JJxIYgTUlMQU4KK8WgS09SScSGIE1JTEFOCivFoEtPUknEhiBNSUxFTktPCivFoEtPUknEhiBNSUxJVk9KCivFoEtPUknEhiBNSUxLQQorxaBLT1JJxIYgTUlMT8WgCivFoEtPUknEhiBNSVJKQU5BCivFoEtPUknEhiBNSVJLTworxaBLT1JJxIYgTUlSS08KK8WgS09SScSGIE1JUktPCivFoEtPUknEhiBOSUtPTEEKK8WgS09SScSGIE5JS09MQQorxaBLT1JJxIYgUEFWTEUKK8WgS09SScSGIFBBVkxFCivFoEtPUknEhiBQRVJPCivFoEtPUknEhiBTTEFWS08KK8WgS09SScSGIFNMT0JPREFOCivFoEtPUknEhiBTTUlMSkEKK8WgS09SScSGIFNNSUxKQQorxaBLT1JJxIYgU1JFxIZLTworxaBLT1JJxIYgU1RBTkEKK8WgS09SScSGIFZMQURJTUlSCivFoEtPUknEhiBaT1JBCivFoEtPUk8gxaBJTUUKK8WgS09STyBNSVJKQU5BCivFoEtPUk8gVkFTSUxJSkEKK8WgS1JBVkFOIEFORFJJSkEKK8WgS1JCScSGIMW9RUxKS08KK8WgS1JCScSGIMSQVVJPCivFoEtSQknEhiBBTklDQQorxaBLUkJJxIYgQkxBxb1PCivFoEtSQknEhiBCT8W9TworxaBLUkJJxIYgQk9KQU5BCivFoEtSQknEhiBCUkFOS08KK8WgS1JCScSGIERSQUdJQ0EKK8WgS1JCScSGIERVxaBBTgorxaBLUkJJxIYgSk9WQU4KK8WgS1JCScSGIEpPVkFOCivFoEtSQknEhiBMSlVCSUNBCivFoEtSQknEhiBNQVJBCivFoEtSQknEhiBNQVJJQ0EKK8WgS1JCScSGIE1JTEUKK8WgS1JCScSGIE1JTE9SQUQKK8WgS1JCScSGIE1JTE9SQUQKK8WgS1JCScSGIE5FQk9KxaBBCivFoEtSQknEhiBPU1RPSkEKK8WgS1JCScSGIFBFVEFSCivFoEtSQknEhiBSQURPU0xBVgorxaBLUkJJxIYgU1ZFVE9aQVIKK8WgS1JCScSGIFpPUktBCivFoEtSQklOQSBTVEpFUEFOCivFoEtSR0VUIEpPU0lQCivFoEtSSUpFTCBEUkFHQU4KK8WgS1JJSkVMIE1JTEFOCivFoEtSSUpFTEogQUpOSUpBCivFoEtSSUpFTEogU0FNSVIKK8WgS1JJSkVMSiBWRUhCTworxaBLUklOSkFSIEtBUk9MSgorxaBLUklOSkFSIE1BUklPCivFoEtSSU5KQVIgWlZPTklNSVIKK8WgS1JJVkFOIMSQVVJBCivFoEtSSVZBTiBBTlRVTgorxaBLUklWQU4gRlJBTkpBCivFoEtSSVZBTiBLQVJMTworxaBLUklWQU4gTEFESVNMQVYKK8WgS1JJVkFOIFBFVEFSCivFoEtSSVZBTiBTVEVWQU4KK8WgS1JJVkFOIFNURVZBTgorxaBLUklWQU5KIFBJxaBUQQorxaBLVUxFVEnEhiBPTEdBCivFoEtVTEVUScSGIFpPUkFOCivFoEtVTkNBIElWQU4KK8WgS1VOQ0EgSkVMSUNBCivFoEtVTkRSScSGIERVxaBBTgorxaBLVU5EUknEhiBNSUxJQ0EKK8WgS1VORFJJxIYgUEVUQVIKK8WgS1VORFJJxIYgUk9aQUxJSkEKK8WgS1ZBUkVLIFZMQURBCivFoExBSFRFUiBWRU5ERUwKK8WgTEFKRVIgUlVET0xGCivFoExBVklLIElMT05BCivFoExFSFRBIFpERU5LTworxaBMRU1FTkRFUiDEkE9SxJBFCivFoExFTUVOREVSIEFOR0VMQQorxaBMRU1FTkRFUiBJUkVOQQorxaBMSkFQScSGIEdPUkFOCivFoExKQVBJxIYgTUlSSkFOQQorxaBMSkFQScSGIE9CUkVOCivFoExKQVBJxIYgUlXFvUlDQQorxaBMSkFQScSGIFNURVZBTgorxaBMSkFQScSGIFRBVEpBTkEKK8WgTEpBUEnEhiBUT01JU0xBVgorxaBMSkFQScSGIFZFTEVNSVIKK8WgTEpJVkFOxIxBTklOIEpPVkFOCivFoExKSVZBTsSMQU5JTiBKT1ZBTgorxaBMSklWQU7EjEFOSU4gTUFSSUpBCivFoExKSVZBTsSMQU5JTiBNSUxVVElOCivFoExKSVZJxIYgxJBPUsSQRQorxaBMSklWScSGIEJPUktBCivFoExKSVZJxIYgSkVMRU5BCivFoExKSVZJxIYgTEpJTEpBTkEKK8WgTEpJVknEhiBNSVJKQU5BCivFoExKSVZJxIYgUkFET0pJQ0EKK8WgTEpJVknEhiBTUEFTT0pFCivFoExKSVZJxIYgVkxBRElTTEFWCivFoExKSVZLT1ZJxIYgxJBPUsSQRQorxaBMSlVLQSBEUkFHScWgQQorxaBMSlVLQSBNSUpPRFJBRworxaBMSlVLQSBNSUxBTgorxaBMSlVLQSBNSUxPxaAKK8WgTEpVS0nEhiDFvUlWQU4gRFIKK8WgTEpVS0nEhiBNSUxJVk9KCivFoExKVUtJxIYgUk9TQU5EQQorxaBNQU5KQSBNSVJLTworxaBNQU5KQSBTTEFWS08KK8WgTUlERVJLQUwgRlJBTkpBCivFoE1JR0VMSlNLSSBOSUtPTEEKK8WgTUlHScSGIEJPUklTTEFWCivFoE1JR0nEhiBNSUxPUkFECivFoE1JR0nEhiBTVkVUT1pBUgorxaBNSVQgRkVSRElOQU5ECivFoE1JVCBHSVpFTEEKK8WgTUlUIEpPU0lQCivFoE1JVCBKT1ZBTgorxaBNSVQtS09UQSBLQVRJQ0EKK8WgTUlUIE1BUklKQQorxaBNSVQgTUlSSkFOQQorxaBNSVQtUFJPS0lOIMSQVVLEkElOQQorxaBNSVQgUkXFvUUKK8WgTUlUIFNUQU5BCivFoE1JVCBTVEFOT0pLQQorxaBNSVQgU1RFVkFOCivFoE1JVCBTVEVWQU4KK8WgTUlUIFZJT0xFVEEKK8WgTUlUIFpMQVRLTworxaBNSVRSQU4gxJBPUsSQRQorxaBNVUsgSVZBTgorxaBOQUpERVIgxaBBTkRPUgorxaBOQUpERVIgQU5JQ0EKK8WgTkFKREVSIElMSU5LQQorxaBOQUpERVIgSkFOT8WgCivFoE5BSkRFUiBKQVJPU0xBVgorxaBOQUpERVIgU1RFVkFOCivFoE5BSkRFUiBWRVJBCivFoE5BSkRFUk9WIEpPU0lQCivFoE5BSkRFUk9WIFZFU05BCivFoE5BVVRJTCBEUkFHVVRJTgorxaBORUwgUEVURVIKK8WgTkpBUknEhiBJVkFOCivFoE/FoCBBTlRBTAorxaBPxaAgQU5UQUwKK8WgT8WgIEJBTElOVAorxaBPxaAgREVaSURFUgorxaBPxaAgR0laRUxBCivFoE/FoCBJTE9OQQorxaBPxaAgSkVMSUNBCivFoE/FoCBMQUpPxaAKK8WgT8WgIE1BUklKQQorxaBPxaAgVElCT1IKK8WgT8WgScSGIE1JUktPCivFoE/FoEnEhiBOQVRBxaBBCivFoE/FoEnEhiBPTEdBCivFoE/FoEnEhiBSQURPU0xBVgorxaBPxaBJxIYgVlVLCivFoE/FoEtJxIYgRFJBR09NSVIKK8WgT8WgS0nEhiBNSVJBCivFoE/EhiBCT0pBTkEKK8WgT8SGIERVxaBBTgorxaBPxIYgVE9NSVNMQVYKK8WgT0JBSknEhiBEUkFHT1NMQVYKK8WgT0JBS0kgTUFSSUpBCivFoE9CScSGIE1JUkEKK8WgT0JJxIYgUkFERQorxaBPQknEhiBWRVJBCivFoE9CScSGIFpPUkFOCivFoE9CScSGIFpPUkFOCivFoE9CT1QgxJBVUkEKK8WgT0JPVCBCT8WgS08KK8WgT0JPVCBCUkFOS08KK8WgT0JPVCBEUkFHQU4KK8WgT0JPVCBKT1ZBTgorxaBPQk9UIExKVUJPTUlSCivFoE9CT1QgTUlMQU4KK8WgT0JPVCBNSUxJQ0EKK8WgT0JPVCBQRVRLTworxaBPQk9UIFNFS1VMQQorxaBPQk9UIFNMQVZJQ0EKK8WgT0RJxIYgRE9CUklMQQorxaBPREnEhiBEUkFHSU5KQQorxaBPREnEhiBHSVpFTEEKK8WgT0RJxIYgTUlMQU4KK8WgT0RJxIYgVE9ET1IKK8WgT0RPUk9WScSGIFJPU0EKK8WgT0ZIQVVaRVIgTUlIQUpMTworxaBPRkhBVVpFUiBST1pBTElKQQorxaBPRlJBTiBNQVJJSkEKK8WgT0ZSQU5BQyBNRUxBTklKQQorxaBPR09ST1YgU1RFVkFOCivFoE9KScSGIMW9SVZLTworxaBPSknEhiBCUkFOS08KK8WgT0pJxIYgRFJBR0lDQQorxaBPSknEhiBORURFTEpLQQorxaBPSkxFVlNLQSBTQU5KQQorxaBPS0nEhiDEkE9SxJBFCivFoE9LScSGIEpVRElUQQorxaBPS0nEhiBNSUxBTgorxaBPS0nEhiBQRVRBUgorxaBPS0nEhiBSQURPVkFOCivFoE9LScSGIFNNSUxKQQorxaBPS0lDQSDFvUlWS08KK8WgT0tJQ0EgQlJBTklTTEFWCivFoE9LSUNBIERJTUlUUklKRQorxaBPS0lDQSBEUkFHScWgQQorxaBPS0lDQSBKT1ZBTgorxaBPS0lDQSBKVURJVEEKK8WgT0tJQ0EgTEpVQklDQQorxaBPS0lDQSBNSUxPxaAKK8WgT0tJQ0EgWk9SQQorxaBPS0xPVkHEjEtJIMW9SVZLTworxaBPS0xPVkHEjEtJIERSQUdPTEpVQgorxaBPS0xPVkHEjEtJIE5BREEKK8WgT0tMT1ZBxIxLSSBSQVRPTUlSCivFoE9MIEJFTEEKK8WgT0xBSkEgxJBPUsSQRQorxaBPTEFKQSBESU1JVFJJSkUKK8WgT0xBSkEgR09KS08KK8WgT0xBSkEgTUlMQU4KK8WgT0xBSkEgTUlST1NMQVYKK8WgT0xBSkEgTkFEQQorxaBPTEFKQSBOQURBCivFoE9MQUpBIFJBRE9TTEFWCivFoE9MQUpBIFNMQVZLTworxaBPTEFKQSBTTEFWS08KK8WgT0xBSkEgU0xPQk9EQU4KK8WgT0xBSkEgVknFoE5KQQorxaBPTEFLIEpPS0EKK8WgT0xBSyBNQVJJTktPCivFoE9MQUsgTUlMRQorxaBPTEFLIFJBREUKK8WgT0xFVknEhiBNSUxJVk9KRQorxaBPTFRFUyDFoEFORE9SCivFoE9MVEVTIElCT0xKQQorxaBPTFRFUyBKT8W9RUYKK8WgT01LRVJFS0kgSUxPTktBCivFoE9NS0VSRUtJIEpPU0lQCivFoE9NS0VSRUtJIEpVTElKQU5BCivFoE9NS0VSRUtJIExBRElTTEFWCivFoE9NS0VSRUtJIFNURVZBTgorxaBPTUtFUkVLSSBTVEVWQU4KK8WgT01PxJBJIMW9T0ZJSkEKK8WgT01PxJBJIMSQT1LEkEUKK8WgT01PxJBJIEVWQQorxaBPTU/EkEkgRlJBTkpBCivFoE9NT8SQSSBJxaBUVkFOCivFoE9NT8SQSSBKRUxFTkEKK8WgT01PxJBJIEpPVkFOCivFoE9NT8SQSSBMQVNMTworxaBPTU/EkEkgTUlIQUpMTworxaBPTU/EkEkgUEFMCivFoE9NT8SQSSBQQUwKK8WgT01PxJBJIFBBTAorxaBPTU/EkEkgUk9aQQorxaBPTU/EkEkgWk9MVEFOCivFoE9NT8SQSSBaT1JBCivFoE9QIE1BR0RBTEVOQQorxaBPUCBNSUxBTgorxaBPUEFMTyDEkFVSxJBJTkEKK8WgT1BBTE8gxJBVUsSQSU5BCivFoE9QQUxPIE1JT0RSQUcgRElQTCBPRUMKK8WgT1BBTE8gTUlPRFJBRworxaBPUsSQQU4gUk9NQU4KK8WgT1JBSyBNSVJKQU5BCivFoE9SQUxPViBNSUxPxaAKK8WgT1JBTE9WIE1JUk9TTEFWCivFoE9STUFaIERVxaBBTgorxaBPUk1BWiBNSUxBTgorxaBPUk1BWiBOSUtPTEEKK8WgT1JNQVogVkxBRElNSVIKK8WgT1JPTkpBIFNBVkEKK8WgT1JPTkpBIFZFUkEKK8WgT1NCRVJHRVIgQk9SScWgS0EKK8WgT1NCRVJHRVIgSk9TSVAgRElQTCBPRUMKK8WgT1NCRVJHRVIgUEFWTEUKK8WgT1NUQUtPViBSQVNUSVNMQVYgRElQTCBJTkcKK8WgT1RJLcSMQUxFTknEhiBNQVJJSkEKK8WgT1RJIEZFxJBBCivFoE9USSBJVkFOQQorxaBPVEkgSk9TSVAKK8WgT1RJIEpPU0lQCivFoE9USSBNQVJJSkEKK8WgT1RJIE1BUklKQQorxaBPVFJBIE1PTcSMSUxPCivFoE9VQyBNSUxBTgorxaBPVUMgTUlST1NMQVYKK8WgT1VDIFpMQVRBCivFoE9WxaAgSkFOS08KK8WgT1bFoCBKT0FLSU0KK8WgT1ZBTkogSk9BS0lNCivFoE9WRU5KIEFMRUtTQU5EQVIKK8WgT1ZFTkogS0FSTE8KK8WgT1ZFTkogVkVSQQorxaBPVkxKQUtPViBKT1ZBTgorxaBPVkxKQUtPViBNSUxPxaAKK8WgT1ZMSkFLT1YgTUlMT8WgCivFoE9WTEpBTlNLSSDEkE9SxJBFIERJUEwgSU5HCivFoE9WTEpBTlNLSSDEkE9SxJBFCivFoE9WTEpBTlNLSSBBTktJQ0EKK8WgT1ZMSkFOU0tJIEJPU0lMSktBCivFoE9WTEpBTlNLSSBCUkFOS08KK8WgT1ZMSkFOU0tJIERBTklDQQorxaBPVkxKQU5TS0kgREFOSUxPCivFoE9WTEpBTlNLSSBEQU5LQQorxaBPVkxKQU5TS0kgRElNSVRSSUpFCivFoE9WTEpBTlNLSSBEUkFHScWgQQorxaBPVkxKQU5TS0kgRFJBR0lDQQorxaBPVkxKQU5TS0kgRFJBR0lDQQorxaBPVkxKQU5TS0kgRFJBR0lDQQorxaBPVkxKQU5TS0kgRFJBR09NSVIKK8WgT1ZMSkFOU0tJIERSQUdPTUlSCivFoE9WTEpBTlNLSSBEUkFHT1NMQVYKK8WgT1ZMSkFOU0tJIERSRU5LQQorxaBPVkxKQU5TS0kgRU1JTAorxaBPVkxKQU5TS0kgSlVMS0EKK8WgT1ZMSkFOU0tJIExBWkFSCivFoE9WTEpBTlNLSSBMSlVCSUNBCivFoE9WTEpBTlNLSSBMSlVCT01JUgorxaBPVkxKQU5TS0kgTUFSR0lUQQorxaBPVkxKQU5TS0kgTUlMQU4KK8WgT1ZMSkFOU0tJIE1JTE/FoAorxaBPVkxKQU5TS0kgTUlMT1JBRAorxaBPVkxKQU5TS0kgTUlSSkFOQQorxaBPVkxKQU5TS0kgTUlSSkFOQQorxaBPVkxKQU5TS0kgTUlSSkFOQQorxaBPVkxKQU5TS0kgTUlST1NMQVYgRFIKK8WgT1ZMSkFOU0tJIE5BREEKK8WgT1ZMSkFOU0tJIFBBVkxFCivFoE9WTEpBTlNLSSBSQURJVk9KCivFoE9WTEpBTlNLSSBSQURPU0xBVgorxaBPVkxKQU5TS0kgU0FWQQorxaBPVkxKQU5TS0kgU1RPSkFOCivFoFBBRElKRVIgVEFUSUpBTkEKK8WgUEFHT1ZJxIYgRFJBR09TTEFWCivFoFBBSyBWTEFESU1JUgorxaBQQU7EjEnEhiBSQURNSUxBCivFoFBBTkcgTEFTTE8KK8WgUEFORyBaT0xUQU4KK8WgUEFOScSGIEJPxaBLTworxaBQQU5JxIYgRlJBTkpBCivFoFBBTknEhiBMQURJU0xBVgorxaBQQU5JxIYgTkFEQQorxaBQQU5JxIYgT1RPCivFoFBBTkpFVknEhiBTVVpBTkEKK8WgUEFOSkVWScSGIFZVS09UQQorxaBQQU5PVknEhiDEkE9SxJBFCivFoFBBTk9WScSGIEFMRUtTQQorxaBQQU5PVknEhiBNSUxPxaAKK8WgUEFOT1ZJxIYgTklLT0xBCivFoFBBUkFWQUxPIE1BUklKQQorxaBQQVJBVkFMTyBOQVRBxaBBCivFoFBBUkFWQUxPIFNBVkEKK8WgUEFSQVZBTE8gWkRSQVZLTworxaBQQVJPVknEhiBJTElKQQorxaBQRUdBUiBMQVpBUgorxaBQRUhBUiBNQVJJSkEKK8WgUEVTIEVURUwKK8WgUEVTIFZJTElNCivFoFBFUyBWSUxJTQorxaBQSUNBIE1JT0RSQUcKK8WgUElLQSBNSUxBTgorxaBQSU5ETEVSIE1BUklKQQorxaBQSU5ETEVSLVRSQk9KRVZJxIYgTUlSSkFOQQorxaBQSVJJxIYgQk9SSVZPSkUKK8WgUElSScSGIEdPUkRBTkEKK8WgUElSScSGIEdPU1BBVkEKK8WgUElSScSGIElMRQorxaBQSVJJxIYgSk9WTworxaBQSVJJxIYgTFVLQQorxaBQSVJJxIYgTFVLQQorxaBQSVJJxIYgTUlMRQorxaBQSVJJxIYgTkXEkE8KK8WgUElSScSGIE9CUkFECivFoFBJUknEhiBTVE9KQU4KK8WgUElSScSGIFRPREUKK8WgUElSScSGIFVST8WgCivFoFBJUknEhiBaT1JBTgorxaBQSVJLQSBNQVRJTEQKK8WgUElSVEEgQUxFS1NBTkRBUgorxaBQSVJUQSBBTEVLU0FOREFSCivFoFBJUyBEQU5JTE8KK8WgUElTIERBTklMTworxaBQSVMgTEFKT8WgCivFoFBJUyBNSVJKQU5BCivFoFBJUyBOQU5ET1IKK8WgUE9OSkEgS09WSUxKS08KK8WgUFJPSCBEUkVOS0EKK8WgUFJPSCBKQU5LTworxaBQUk9IIE1BR0RBCivFoFBST0ggU0xBVktPCivFoFBST0ggU1RBTktPCivFoFBST0ggU1RFVkFOCivFoFJBSE9MIEhJTERBCivFoFJBSE9MIEtBUkxPCivFoFJBSE9MIExKVURFVklUCivFoFJBSiBWTEFESU1JUgorxaBSQUsgSk9WSUNBCivFoFJBSyBMQURJU0xBVgorxaBSQUsgTEFTTE8KK8WgUkFLIE9UTworxaBSQUsgT1RPCivFoFJBTSBIVUdPCivFoFJBTkMgUklIQVJECivFoFJBTkMgUklIQVJECivFoFJBTktBIEFOQQorxaBSQU5LQSBERVNBTktBCivFoFJFREVSIEpBTk/FoAorxaBSRURFUiBKQU5PxaAKK8WgUkVLIEFORFJJSkEgRElQTCBJTkcKK8WgUkVLIFNURVZBTiBESVBMIElORworxaBUQUJJIMWgVEVGSUNBCivFoFRBSk4gTElWSUpBCivFoFRBSk5FUiBLUkXFoElNSVIKK8WgVEFKTkVSIE1JUkpBTkEKK8WgVEFKTkVSIE1JUk9TTEFWCivFoFRBSk5FUiBaVk9OSU1JUgorxaBUQUpORkVMRCBNSUhBSkxPCivFoFRBSk5JQyBNSVJPU0xBVgorxaBUQUpOSUMgVElCT1IKK8WgVEFOREkgS0FUSUNBCivFoFRBTkRJIFpPTFRBTgorxaBUQU5GRUxKIEFMT0paCivFoFRBTkZFTEogTUlST1NMQVYKK8WgVEFOR0wgxJBPUsSQRQorxaBUQU5KTy1UT1QgR0laRUxBCivFoFRBUksgRUdPTiBESVBMIElORworxaBUQVJLIE1JUktPCivFoFRBU05JIEpPU0lQCivFoFRBU05JIEtBVElDQQorxaBUQVRLScSGIE1JUk9TTEFWCivFoFRBVUhFUiBKT1NJUAorxaBURUJMIEpFTEVOQQorxaBURUZBTiDEkE9SxJBFCivFoFRFRkFOIEVVxJBFTgorxaBURUZBTiBKVUxJSkFOQQorxaBURUZBTiBNQVRJSkEKK8WgVEVGQU4gT1NLQVIKK8WgVEVGQU4gUlVET0xGCivFoFRFRkFOIFRSQUpBTgorxaBURUZBTkFDIFNURVZBTgorxaBURUZBTklDS0kgTUnFoE8KK8WgVEVGQU5JREVTIEtBUkxPIERSCivFoFRFRkFOSURFUyBLQVJMTworxaBURUZBTktPIFZJS1RPUklKQQorxaBURUZBTk9WScSGIERSQUdBTgorxaBURUZBTk9WScSGIERSQUdVVElOCivFoFRFRkFOT1ZJxIYgVE9NSVNMQVYKK8WgVEVGS08gxJBPUsSQRQorxaBURUZLTyDEkE9SxJBFCivFoFRFRk9WScSGIFZMQURJTUlSCivFoFRFRlVMSUsgSk/FvUVGCivFoFRFR0VSIFJPxb1JCivFoFRFR0VSIFZBTEVOVElOQQorxaBURUhFUiBSQURNSUxBCivFoFRFTENFUiBKT1NJUAorxaBURUxJIEFOVFVOCivFoFRFUkxFIEpPU0lQCivFoFRFUkxFIFNURVZBTgorxaBURVJMRU1BTiBLUklTVElKQU4KK8WgVEVSTEVNQU4gUEVSQQorxaBURVRJxIYgS1JJU1RJTkEKK8WgVEVUScSGIFRJSE9NSVIKK8WgVEVUScSGIFZFU05BCivFoFRFVEnEhiBWSURBCivFoFRFVElOIEhFTEVOQQorxaBURVRJTiBNSUxBTgorxaBURVRJTiBNSUxFCivFoFRFVElOIFNWRVRJU0xBVgorxaBURVZBTsSMRVYgTEpVQk9NSVIKK8WgVElDQSBWSVRPTUlSCivFoFRJR0xFUiBJVkFOCivFoFRJR0xFUiBNSUxBTgorxaBUSUdMScSGIERSQUdBTgorxaBUSUdMScSGIFNWRVRPWkFSCivFoFRJS0FWQUMgS09TT1ZLQQorxaBUSUtPVkFDIFNQQVNPSkUKK8WgVElNQUMgT1RPCivFoFRJTUFDIFJVRE9MRgorxaBUT0tPVkFDIEpPVkFOCivFoFRPS09WQUMgVE9NSVNMQVYKK8WgVE9MQkEgWlZPTklNSVIKK8WgVE9TIEtBVElDQQorxaBUUkFKSCBJxaBUVkFOCivFoFRSQUpIIEpPU0lQCivFoFRSQUpIIE9UVE8KK8WgVFJBTkdBUiBOQURBCivFoFRSQU5HQVJPViBCT1JJVk9KCivFoFRSQU5HQVJPViBESU1JVFJJSkUKK8WgVFJBTkdBUk9WIEpFTEVOQQorxaBUUkFOR0FST1YgSkVMRU5BCivFoFRSQU5HQVJPViBNSUxJQ0EKK8WgVFJBTkdBUk9WIFNMT0JPREFOCivFoFRSQVBBSkVWScSGIEpVTElKQU5BCivFoFRSQVNFUiBNSUhBSkxPIERSIExFS0FSCivFoFRSQVNFUiBOQURBCivFoFRSQVVCIEVSxb1FQkVUCivFoFRSQVVCIEnFoFRWQU4KK8WgVFJBVUIgU1RFVkFOCivFoFRSQkEgREFOSUxPCivFoFRSQkEgTUlMQU4KK8WgVFJCQcSMS0kgQk9SSVNMQVYKK8WgVFJCQUMgxb1FTEpLTworxaBUUkJBQyDEkE9SxJBFCivFoFRSQkFDIMSQVVJPCivFoFRSQkFDIEFOxJBFTEtBCivFoFRSQkFDIEJPxaBLTworxaBUUkJBQyBCT1JJU0xBVgorxaBUUkJBQyBCUkFOS0EKK8WgVFJCQUMgREFSSU5LQQorxaBUUkJBQyBERVNBTktBCivFoFRSQkFDIERSQUdBTgorxaBUUkJBQyBEVcWgQU4KK8WgVFJCQUMgRFXFoEFOCivFoFRSQkFDIERVxaBBTgorxaBUUkJBQyBEVcWgQU4KK8WgVFJCQUMgSk9WQU4KK8WgVFJCQUMgTEpVQklDQQorxaBUUkJBQyBMSlVCT01JUgorxaBUUkJBQyBNQVJJSkEKK8WgVFJCQUMgTUnEhk8KK8WgVFJCQUMgTUnEhk8KK8WgVFJCQUMgTUlMQU5LTworxaBUUkJBQyBNSUxBTgorxaBUUkJBQyBNSUxBTgorxaBUUkJBQyBNSUxBTgorxaBUUkJBQyBNSUxBTgorxaBUUkJBQyBNSUxFTkEKK8WgVFJCQUMgTUlMSUNBCivFoFRSQkFDIE1JTElWT0oKK8WgVFJCQUMgTUlMT8WgCivFoFRSQkFDIE1JUkpBTkEKK8WgVFJCQUMgTUlSS08KK8WgVFJCQUMgTU9NxIxJTE8KK8WgVFJCQUMgTkVNQU5KQQorxaBUUkJBQyBOSUtPTEEKK8WgVFJCQUMgUkFET0pLQQorxaBUUkJBQyBSQURPVkFOCivFoFRSQkFDIFNBVktBCivFoFRSQkFDIFNMQVZJQ0EKK8WgVFJCQUMgU0xBVktPCivFoFRSQkFDIFNUQU5BCivFoFRSQkFDIFNURVZBTgorxaBUUkJBQyBUT01JU0xBVgorxaBUUkJBQyBVUk/FoAorxaBUUkJBQyBWTEFETworxaBUUkJBQyBWVUtJQ0EKK8WgVFJCQUMgWk9SSUNBCivFoFRSQkVOSyBJVkFOS0EKK8WgVFJCRU5LIE5JS09MQQorxaBUUkJPSkEgxb1JVktPCivFoFRSQk9KQSDEkE9SxJBFCivFoFRSQk9KQSDEkE9SxJBFCivFoFRSQk9KQSBSQURBCivFoFRSQk9KQSBSQURJVk9KCivFoFRSQk9KQSBTVEVWQU4KK8WgVFJCT0pFIERJTUlUUklKRQorxaBUUklDS0kgSk9TSVAKK8WgVFJLIEpPU0lQCivFoFRSSyBNQVJJSkEKK8WgVFJLScSGIE1JUk9TTEFWCivFoFRSS0nEhiBNT01JUgorxaBUUk9LIMW9RUxKS08KK8WgVFJUQUsgU0xBVktPCivFoFRSVEFLIFNMT0JPREFOCivFoFRVTEEgTUlMRQorxaBUVUxJxIYgQk/FvUlEQVIKK8WgVFVMScSGIEdPUkFOCivFoFRVTEnEhiBKT1ZPCivFoFRVTEnEhiBNQVJLTworxaBUVUxJxIYgUkFET1ZBTgorxaBUVU1QRiBIRUxNVVQKK8WgVFVNUEYgT1NWQUxECivFoFXFoMSMRVZJxIYgSk9WTworxaBVxaDEjEVWScSGIFpEUkFWS08KK8WgVcWgQSDEjEVET01JUgorxaBVxaBBIERVxaBBTgorxaBVxaBBIEpPVkFOCivFoFXFoEEgS0VNQUwKK8WgVcWgQSBTVE9KQU5LQQorxaBVxaBBSyDEkE9LQQorxaBVxaBBSyDEkE9SxJBFCivFoFXFoEFLIEdPU1BBVkEKK8WgVcWgQUsgTUFSSUpBCivFoFXFoEFLIE5FVkVOQQorxaBVxaBBSyBTVEFNRU5LTyBEUgorxaBVxaBBSyBUT01JU0xBVgorxaBVxaBBS09WIFBBSkEKK8WgVcWgRVZTS0kgTUlMQU4KK8WgVcWgScSGIFJJU1RPCivFoFXFoEnEhiBUT01JU0xBVgorxaBVxaBLQVbEjEVWScSGIElMSUpBCivFoFXFoEtBVsSMRVZJxIYgTUlPRFJBRworxaBVxaBLT1ZJxIYgQk9SSVMKK8WgVcWgTEpJSyBKT1ZBTgorxaBVxaBOSkFSIMW9QVJLTworxaBVxaBOSkFSIEJPUklTTEFWCivFoFXFoE5KQVIgQk9SSVNMQVYKK8WgVcWgTkpBUiBNSUhBSkxPCivFoFXFoE5KQVIgTUlMQU4KK8WgVcWgTkpBUiBNSUxBTgorxaBVxaBOSkFSIFBFVEFSCivFoFXFoE5KQVIgUEVUQVIKK8WgVcWgTkpBUiBQRVRBUgorxaBVxaBOSkFSIFNMQVZLTworxaBVxaBOSkFSIFNPRklKQQorxaBVxaBOSkFSIFNUQU5LTworxaBVxaBOSkVWScSGIERVxaBBTgorxaBVxaBOSkVWScSGIE1PTcSMSUxPCivFoFXFoE5KRVZJxIYgUkFET1NMQVYKK8WgVcWgTkpJxIYgU1RBTktBCivFoFXFoFRSQU4gTUxBREVOCivFoFXFoFRVTSBKT1ZBTgorxaBVxIZBSyBNSUxBTgorxaBVxIZPViDEhklSQQorxaBVxIZPViBEQU5JQ0EKK8WgVcSGT1YgREFOSUxPCivFoFXEhk9WIE1JTE/FoAorxaBVxIZPViBWVUtPU0FWQQorxaBVQkFSQSBNTEFERU4KK8WgVUJBUknEhiBMVUtBCivFoFVCQVJJxIYgVkxBU1RJTUlSCivFoFVCQVJJxIYgWk9SQU4KK8WgVUJFUlQgSUxPTktBCivFoFVCScSGIEpPVkFOS0EKK8WgVUJPTkogU0lMVklVUworxaBVREFSIEpPxb1FRgorxaBVREFSIEpPU0lQCivFoFVESUNLSSBKT8W9RUYKK8WgVUdJxIYgTUlMQU4KK8WgVUdJxIYgTkFEQQorxaBVR0nEhiBQRVRBUgorxaBVR0lOIMW9SVZLTworxaBVR0lOIEJFUklTQVYKK8WgVUdJTiBESU1JVFJJSkUKK8WgVUdJTiBMRUtTQQorxaBVR0lOIExKSUxKQU5BCivFoFVHSU4gTEpJTEpBTkEKK8WgVUdJTiBNSUxLQQorxaBVR0lOIE1JT0RSQUcKK8WgVUdJTiBNSU9EUkFHCivFoFVHSU4gUkFEQQorxaBVR0lOIFJBTktBCivFoFVIQUpEQSDEkFVSQQorxaBVSEFKREEgSU1SRQorxaBVSEFKREEgTEFKT8WgCivFoFVKRE9WScSGIFpPUkFOCivFoFVKScSGIERSQUdPTUlSCivFoFVKScSGIFJFRMW9TworxaBVSklDQSBNSUxBTgorxaBVS0EgQUxFS1NBCivFoFVLQUxPVknEhiDEkE9SxJBFCivFoFVLQVJBIEJPR0RBTgorxaBVS0FSQSBETUlUQVIKK8WgVUtBUkEgRFXFoEFOCivFoFVLScSGIERSQUdJQ0EKK8WgVUtJxIYgTUlST0xKVUIKK8WgVUtJxIYgWk9SSUNBCivFoFVLTEEgU0xBVktPCivFoFVLT1ZJxIYgTUlMQU4KK8WgVUtPVknEhiBaT1JLQQorxaBVS1VOREEgTUFSSUpBCivFoFVLVU5EQSBNSUxBTgorxaBVS1VSTUEgU1RFVk8KK8WgVUxBSkEgTUlST1NMQVYKK8WgVUxDIEFORFJBxaAKK8WgVUxDIERFTElNSVIgRFIgUFJPRgorxaBVTEMgSU1SRSBESVBMIElORworxaBVTEMgSU1SRQorxaBVTEMgSk/FvUVGCivFoFVMQyBKT8W9RUYKK8WgVUxDIEtPU0FOQQorxaBVTEMgVkVSQQorxaBVTEVOVEnEhiBNSUxFCivFoFVMSE9GIEpPxb1FRiBLTkpJxb1FVk5JSworxaBVTEpBTiBBTkEKK8WgVUxKQU4gSkFOS08KK8WgVUxKQU4gSkFOCivFoFVMSkFOIEpBTgorxaBVTEpBTiBKQVJPU0xBVgorxaBVTEpBTiBQQUwKK8WgVUxKTUFOQUMtxaBFxIZFUk9WIE1JUkpBTkEKK8WgVUxKTUFOQUMgQlJBTklNSVIKK8WgVUxKTUFOQUMgSk9WQU4KK8WgVUxKTUFOQUMgVVJPxaAKK8WgVUxPVknEhiBQRVRBUgorxaBVTUFIRVIgSUxPTkEKK8WgVU1BSEVSIEpBTk/FoAorxaBVTUFKU0tJIEJMQcW9RU5LQQorxaBVTUFOIFZJVE9NSVIKK8WgVU1BTk9WQUMgUEFWTEUgRElQTCBJTkcKK8WgVU1BTk9WScSGIEJSQU5JU0xBVgorxaBVTUFOT1ZJxIYgTEpJTEpBTkEKK8WgVU1BUiBCT8W9TworxaBVTUFSIE1JTEFOCivFoFVNQVIgU0lNQQorxaBVTUFSRVZJxIYgRFJBR09SQUQKK8WgVU1BUk9WIE5JS09MQQorxaBVTUFSVU5BIENWRVRBCivFoFVNQVJVTknEhiBQQVZMRQorxaBVTUVDIEVSTkEKK8WgVU1FQyBKQU5PxaAKK8WgVU1JxIYgTUxBREVOCivFoFVNT05KQSBNSUxBTgorxaBVTkRPVkEgRkxPUkEKK8WgVU5JxIYgSk9WTworxaBVTkpJxIYgUEVUQVIKK8WgVU5KS0EgTUFSS08KK8WgVU5KS0EgTUlMSUNBCivFoFVOSktBIFJBVEtPCivFoFVOS0EgSk9WQU4KK8WgVU5LScSGIExBWkFSCivFoFVOVEnEhiBNQVRFSgorxaBVUEUgxaBJTUUKK8WgVVBJQ0EgRFXFoEFOCivFoFVQSUNBIExBWkFSCivFoFVQSUNBIExBWkEKK8WgVVBJQ0EgTEpVQklDQQorxaBVUElDQSBNQVJBCivFoFVQSUNBIE1JTEFOCivFoFVQSUNBIE1JTE/FoAorxaBVUElDQSBQRVRBUgorxaBVUElDQSBTTEFWS08KK8WgVVBJQ0EgVkFTQQorxaBVUFVUIMW9QVJLTyBESVBMIElORworxaBVUFVUIMSQVVJPCivFoFVQVVQgRFXFoEFOCivFoFVQVVQgU0xPQk9EQU4KK8WgVVBVVCBTVkVUT1pBUgorxaBVUkFOSkkgVEVSRVpJSkEKK8WgVVJCQU5PVknEhiBCUkFOS08KK8WgVVJKQU4gSkFOT8WgCivFoFVSSkFOIEpPVkFOCivFoFVSSkFOxIxFViBJVkFOCivFoFVSSkFOT1ZJxIYgTUlMQU4KK8WgVVJKQU5PVknEhiBNSUxFTkEKK8WgVVJLQUxPVknEhiBNSUxFTkEKK8WgVVJLT1ZJxIYgRE9SQU4KK8WgVVJLT1ZJxIYgSVJGQU4gRElQTCBJTkcKK8WgVVJMQU4gxIxFRE9NSVIKK8WgVVJMQU4gxJBPUsSQTworxaBVUkxBTiBEUkFHT01JUgorxaBVUkxBTiBEUkFHT1NMQVYKK8WgVVJMQU4gR09KS08KK8WgVVJMQU4gSk9WQU4KK8WgVVJMQU4gTUFSSU5LTworxaBVUkxBTiBNQVJLTworxaBVUkxBTiBNSUxPxaAKK8WgVVJMQU4gTUlSS08KK8WgVVJMQU4gTU9NSVIKK8WgVVJMQU4gTkVERUxKS08KK8WgVVJMQU4gUlXFoEtPCivFoFVSTEFOIFZPSklTTEFWCivFoFVSTEFOIFZVS09TQVZBCivFoFVTVEVSIE5FR09TTEFWCivFoFVTVFJJSkFOIE9MR0EKK8WgVVRBTk9WScSGIE5BREEKK8WgVVRJTE9WScSGIE1JTE9SQUQKK8WgVVRJTE9WScSGIE5FVkVOS0EKK8WgVVRVTE9WScSGIERBTktBCivFoFVUVUxPVknEhiBWRVNOQQorxaBVVFZJxIYgQlJBTktBCivFoFVWQUsgTUlPRFJBRworxaBVVkFLT1YgREFSSU5LQQorxaBVVkFLT1YgREVKQU4KK8WgVVZBS09WIEpPVkFOCivFoFVWQUtPViBNSUxFTkEKK8WgVVZBS09WIE1JTE9SQUQKK8WgVVZBS09WIFNURVZBTgorxaBVVkFLT1YgVElIT01JUiBEUgorxaBVVkFLT1YgVkVTRUxJTktBCivFoFVWQUtPVknEhiDEkFVSxJBJQ0EKK8WgVVZBS09WScSGIEJPR09TTEFWCivFoFVWQUtPVknEhiBEQU1KQU4gRFIgTEVLQVIKK8WgVVZBS09WScSGIEpVTElKQU5BCivFoFVWQUtPVknEhiBaT1JBTgorxaBWQUIgRVNURVIKK8WgVkFCIEhFTlJJSkVUQQorxaBWQUdFUiBNQVJUSU4KK8WgVkFKQkVSScSGIFZJUkdJTklKQQorxaBWQUpDRVIgR0laRUxBCivFoFZBSkNFUiBJVklDQQorxaBWQUpDRVItUkFLScSGIElSRU5BCivFoFZBSkNFUiBST1pBTElKQQorxaBWQU5ESUxJSyBKT8W9RUYKK8WgVkFSQyBJTE9OQQorxaBWQVJDIFRJQk9SCivFoFZBUkMgVkxBRElNSVIKK8WgVkVEScSGIEHEhklNCivFoFZFREnEhiBEVcWgQU4KK8WgVkVEScSGIEVMSVpBQkVUQQorxaBWRURJxIYgRVLFvUlLQQorxaBWRURJxIYgR1JVSkEKK8WgVkVEScSGIEpPVkFOCivFoFZFREnEhiBNSUxJQ0EKK8WgVkVEScSGIE1JTE9SQUQKK8WgVkVEScSGIE1JTFVUSU4KK8WgVkVEScSGIE5JS09MQQorxaBWRURJxIYgUEVUQVIKK8WgVkVMSkEgQk9HREFOCivFoFZFTEpBIFBFVEFSCivFoFZFTSDEkFVSQQorxaBWRU5EQSBHT1JBTgorxaBWRVIgS0FSTE8KK8WgVkVSRVIgUlVET0xGCivFoFZFUktPIEFOxJBFTElKQQorxaBWSU5EIE5FTkFECivFoFZPQiBKT1NJUAorxaBWT0IgTEFKT8WgCivFoFZPTkpBIMW9RUxKS08KK8WgVk9OSkEgxJBVUsSQSU5LQQorxaBWT05KQSBCSUxKQU5BCivFoFZPTkpBIEJPxaBLTworxaBWT05KQSBCT8WgS08KK8WgVk9OSkEgQk/FvUlEQVIKK8WgVk9OSkEgQk9SSVZPSgorxaBWT05KQSBCUkFOS08KK8WgVk9OSkEgRFJBR09MSlVCCivFoFZPTkpBIERVxaBBTgorxaBWT05KQSBEVcWgS08KK8WgVk9OSkEgTUlMQU4KK8WgVk9OSkEgTUlSQQorxaBWT05KQSBSQVRLTworxaBWT05KQSBSQVRLTworxaBWT05KQSBTVkVUT1pBUgorxaBWT05KQSBWRUxKS08KK8WgVlJBS0EgRlJBTkpPCivFoFZSQUtBIFNURVZBTiBESVBMIElORworxaBWUkFLQSBTVEVWQU4KK8SGQcSGScSGIERBTklDQQorxIZBxIZJxIYgRFXFoEFOCivEhkHEhknEhiBNQVJLTworxIZBxIZJxIYgTklOT1NMQVYKK8SGQUhVTiBLQVJMTyBESVBMIElORworxIZBSkEgVkFOS0EKK8SGQUtJxIYgR0laQQorxIZBTEFTQU4gSk9WQU4KK8SGQUxBU0FOIFNUT0pBTgorxIZBTEVUQSBJVklDQQorxIZBTEnEhiBJTElKQQorxIZBTEnEhiBKT1ZBTgorxIZBTEnEhiBKT1ZBTgorxIZBTEnEhiBMVUtBCivEhkFMScSGIE1JTE/FoAorxIZBTEnEhiBNT03EjElMTworxIZBTEnEhiBTTE9CT0RBTgorxIZBTEnEhiBaT1JBTgorxIZBTE9WIE1JTE9SQUQKK8SGQUxPVknEhiBMQUtJxIYKK8SGQUxPVknEhiBSQURPTUlSCivEhkFMVcWgScSGIEpBS09WCivEhkFUScSGIFJBREVOS08KK8SGQVRJxIYgU01JTEpBTkEKK8SGQVRPVknEhiBEUkFHQU4KK8SGQVRPVknEhiBHT1NQQVZBCivEhkFUT1ZJxIYgTUFISVQKK8SGQVRPVknEhiBTSU1BTgorxIZBVkFSIE1BUktPCivEhkFaScSGIMSQT1LEkEUKK8SGQVpJxIYgTUlMRQorxIZBWknEhiBNSUxFCivEhkFaScSGIFBFVEFSCivEhkVCScSGIEJPUklWT0oKK8SGRUJJxIYgTUlMQU4KK8SGRUJJxIYgU0xBVklDQQorxIZFQk9WScSGIE5FTkFECivEhkVIQSBCUkFORQorxIZFSknEhiBEVcWgQU4KK8SGRUpJxIYgRFXFoEFOCivEhkVMQVAgTUxBREVOCivEhkVMQVAgU1ZFVE9aQVIKK8SGRUxJxIYgTEpVQkEKK8SGRUxJxIYgU0xBVktPCivEhkVMScSGIFZJS1RPUklKQQorxIZFTkFOT1ZJxIYgTUlSSkFOQQorxIZFUkFOIEJPxaBLTworxIZFUkFOIERVxaBBTgorxIZFUkFOIEpFTEtBCivEhkVSQU4gTUlMRU5LTworxIZFUkFOIFNUT0pBTgorxIZFUkFOIFZFTEpLTworxIZFUkFOIFpPUkFOS0EKK8SGRVJBTknEhiBCUkFOSVNMQVYKK8SGRVJBTknEhiBNSUxBTgorxIZFUkFOScSGIE1JTElDQQorxIZFUkFOScSGIFJBRElOS0EKK8SGRVJBTknEhiBTTkXFvUFOQQorxIZFUkFOScSGIFpPUkFOCivEhkVSSU1BR0nEhiBFVEhFTQorxIZFUk1PVi1LQVZFxIxBTiBCT0pBTkEKK8SGRVNBUk9WIMW9QVJLTworxIZFU0FST1YgQlJBTklTTEFWCivEhkVTQVJPViBSVcW9SUNBCivEhkVTQVJPViBTSU1BCivEhkVTQVJPViBTVEVWQU4KK8SGRVNBUk9WIFNWRVRPWkFSCivEhkVTQVJPVknEhiBCT1NJTEpLQQorxIZFU0FST1ZJxIYgUkFESVZPSgorxIZFVEtPVknEhiDFvUFSS08KK8SGRVRLT1ZJxIYgQk/FvUlEQVIKK8SGRVRLT1ZJxIYgRFXFoEFOS0EKK8SGRVRLT1ZJxIYgTUlMRU5LTworxIZFVEtPVknEhiBORU5BRAorxIZFVEtPVknEhiBQUkVEUkFHCivEhkVUT0pFVknEhiDEkE9SxJBFCivEhkVUT0pFVknEhiBCT1NBCivEhkVUT0pFVknEhiBEUkFHT0xKVUIKK8SGRVRPSkVWScSGIEpPVk8KK8SGRVRPSkVWScSGIE1JTE/FoAorxIZFVE9KRVZJxIYgTUlMT1ZBTgorxIZFVE9KRVZJxIYgTUlST1NMQVYKK8SGRVRPSkVWScSGIE5FREVMSktPCivEhkVUT0pFVknEhiBSQURPVkFOCivEhkVWQVAgQk/FvUEKK8SGScWgSU4gRFXFoEFOS0EKK8SGSU5LVUwgU0FWQQorxIZJTktVTCBWQUxUQQorxIZJUEUgRVLFvUVCRVQKK8SGSVBST1ZBQyBTQVZBCivEhklQUk9WQUMgVE/FoEEKK8SGSVBST1ZBQyBaRFJBVktPCivEhklSQUsgTUlMT1JBRAorxIZJUkFLT1ZJxIYgxb1JVk9SQUQKK8SGSVJBS09WScSGIE1BUktPCivEhklSQUtPVknEhiBNSUxPUkFECivEhklSQUtPVknEhiBTQUpBCivEhklSRVZTS0kgQlVESU1JUgorxIZJUknEhiDEhklSQQorxIZJUknEhiDFvUlWS0EKK8SGSVJJxIYgxb1JVktBCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBVUsSQSU5LQQorxIZJUknEhiBBTklDQQorxIZJUknEhiBBTklUQQorxIZJUknEhiBCT8WgS08KK8SGSVJJxIYgQk/FvUlEQVIgRFIKK8SGSVJJxIYgQk/FvUlEQVIKK8SGSVJJxIYgQk/FvU8KK8SGSVJJxIYgQk9SSVNMQVYKK8SGSVJJxIYgQk9SSVNMQVYKK8SGSVJJxIYgQk9SSVNMQVYKK8SGSVJJxIYgQlJBTktBCivEhklSScSGIEJSQU5LTworxIZJUknEhiBEQU5JQ0EKK8SGSVJJxIYgREFOSUxPCivEhklSScSGIERFU0FOS0EKK8SGSVJJxIYgRElWS08KK8SGSVJJxIYgRE9CUklMQQorxIZJUknEhiBEUkFHQU4KK8SGSVJJxIYgRFJBR0lDQQorxIZJUknEhiBEUkFHSU5KQQorxIZJUknEhiBEUkFHT0xKVUIKK8SGSVJJxIYgRFXFoEFOIERJUEwgSU5HCivEhklSScSGIERVxaBBTktBCivEhklSScSGIERVxaBBTgorxIZJUknEhiBEVcWgQU4KK8SGSVJJxIYgRFXFoElDQQorxIZJUknEhiBHQVZSSUxPCivEhklSScSGIEdPUkRBTkEKK8SGSVJJxIYgSVZBTktBCivEhklSScSGIElWQU4KK8SGSVJJxIYgSkVMSVNBVkVUQQorxIZJUknEhiBKT1JEQU4KK8SGSVJJxIYgSk9WQU5LQQorxIZJUknEhiBKT1ZBTgorxIZJUknEhiBKT1ZBTgorxIZJUknEhiBKT1ZBTgorxIZJUknEhiBLQU1FTktPCivEhklSScSGIEtBVElDQQorxIZJUknEhiBMQVpBUgorxIZJUknEhiBMRU5LQQorxIZJUknEhiBMSlVCSUNBCivEhklSScSGIExKVUJJQ0EKK8SGSVJJxIYgTEpVQk9NSVIKK8SGSVJJxIYgTUFSS08KK8SGSVJJxIYgTUlMQU4gRElQTCBJTkcKK8SGSVJJxIYgTUlMQU4KK8SGSVJJxIYgTUlMRU5LTworxIZJUknEhiBNSUxFTktPCivEhklSScSGIE1JTEVUQQorxIZJUknEhiBNSUxJQ0EKK8SGSVJJxIYgTUlMS0EKK8SGSVJJxIYgTUlMT8WgCivEhklSScSGIE1JTE/FoAorxIZJUknEhiBNSUxPUkFECivEhklSScSGIE1JTE9SQUQKK8SGSVJJxIYgTUlPRFJBRworxIZJUknEhiBNSVJBCivEhklSScSGIE1MQURFTgorxIZJUknEhiBOSUtPTEEKK8SGSVJJxIYgUEFKQQorxIZJUknEhiBQRVRBUgorxIZJUknEhiBQRVRBUgorxIZJUknEhi1QRVRST1ZJxIYgS0FUQVJJTkEKK8SGSVJJxIYgUFJFRFJBRworxIZJUknEhiBSQURFCivEhklSScSGIFJBRE1JTEEKK8SGSVJJxIYgUkFETUlMTworxIZJUknEhiBSQURPTUlSCivEhklSScSGIFJBRE9WQU4KK8SGSVJJxIYgUk9CRVJUCivEhklSScSGIFNBVkEKK8SGSVJJxIYgU0xBVklDQQorxIZJUknEhiBTTEFWS08KK8SGSVJJxIYgU0xBVktPCivEhklSScSGIFNMT0JPREFOCivEhklSScSGIFNNSUxKQQorxIZJUknEhiBTT0ZJSkEKK8SGSVJJxIYgU1JFRE9KRQorxIZJUknEhiBTVEFOSVNMQVYKK8SGSVJJxIYgU1RFVkFOCivEhklSScSGIFNURVZBTgorxIZJUknEhiBTVEVWQU4KK8SGSVJJxIYgU1ZFVElTTEFWCivEhklSScSGIFNWRVRPWkFSCivEhklSScSGIFNWRVRPWkFSCivEhklSScSGIFNWRVRPWkFSCivEhklSScSGIFNWRVRPWkFSCivEhklSScSGIFRPTUlTTEFWCivEhklSScSGIFRPTUlTTEFWCivEhklSScSGLVRPTiBKRUxJQ0EKK8SGSVJJxIYgVkFTQQorxIZJUknEhiBWRVJBCivEhklSScSGIFZMQURJTUlSCivEhklSScSGIFZMQURJTUlSCivEhklSScSGIFZMQURJU0xBVgorxIZJUknEhiBWVcSMS08KK8SGSVJJxIYgWk9SQU4KK8SGSVJJxIYgWk9SQQorxIZJUknEhiBaT1JBCivEhklSScSGIFpPUktBCivEhklSSUxPViBNSUxBTgorxIZJUklMT1ZJxIYgQU5JQ0EKK8SGSVJJTE9WScSGIEJSQU5JU0xBVgorxIZJUklMT1ZJxIYgTUlMSVZPSgorxIZJUklMT1ZJxIYgTUxBREVOCivEhklSSUxPVknEhiBPTEdBCivEhklSSUxPVknEhiBQRVRBUgorxIZJUklMT1ZJxIYgVkVSQQorxIZJUklOIERSQUdPU0xBVgorxIZJUklOLU5PVlRBIFZFUkEKK8SGSVJJTiBTTE9CT0RBTgorxIZJUklUT1ZJxIYgRFXFoEFOS0EKK8SGSVJKQUtPVknEhiBHT1JEQU5BCivEhklSSkFLT1ZJxIYgU0xBVk9MSlVCCivEhklSSkFLT1ZJxIYgU0xPQk9EQU4KK8SGSVJLT1ZJxIYgxJBPUsSQRQorxIZJUktPVknEhiBDVkVUQU5LQQorxIZJUktPVknEhiBJVkFOCivEhklSS09WScSGIElWQU4KK8SGSVJLT1ZJxIYgSkFOS08KK8SGSVJLT1ZJxIYgS0FUSUNBCivEhklSS09WScSGIE1BUktPCivEhklSS09WScSGIE1BUlRBCivEhklSS09WScSGIE1JTEVOS08KK8SGSVJLT1ZJxIYgTUlST1NMQVYKK8SGSVJLT1ZJxIYgTkVOQUQKK8SGSVJLT1ZJxIYgUkFETUlMQQorxIZJUk9WScSGIMW9QVJLTworxIZJUk9WScSGIERFSkFOCivEhklST1ZJxIYgR1JVSklDQQorxIZJUk9WScSGIE1JTFVUSU4KK8SGSVJPVknEhiBOSUtPTEEKK8SGSVJPVknEhiBWRUxJTUlSCivEhklST1ZJxIYgVkVMSU1JUgorxIZJUlBBTk9WIE1JT0RSQUcKK8SGSVJVxaBJxIYgUkFKS08KK8SGSVRJxIYgRFXFoEFOCivEhklUScSGIE1JTE9WQU4KK8SGT8SGS0FMTyBTSU1BCivEhk9KQU5PVknEhiBCT8W9SURBUgorxIZPSkFOT1ZJxIYgQk9STworxIZPSkFOT1ZJxIYgTUlMS0EKK8SGT0pERVIgR09KS08KK8SGT01BIEtBVEFSSU5BCivEhk9QScSGIEFORFJJSkEKK8SGT1BJxIYgRVZJQ0EKK8SGT1BJxIYgTUnEhkEKK8SGT1BJxIYgTUlMRQorxIZPUEnEhiBNSUxPxaAKK8SGT1BJxIYgVkVSQQorxIZPUknEhi3EkE9LScSGIE5BREEKK8SGT1JJxIYgxJBPUsSQRQorxIZPUknEhiDEkFVSTworxIZPUknEhiDEkFVSTworxIZPUknEhiBBTkRSSUpBCivEhk9SScSGIEJJU0VSS0EKK8SGT1JJxIYgQkxBR09KRQorxIZPUknEhiBCT1JBCivEhk9SScSGIEpPVkFOCivEhk9SScSGIEtBVEFSSU5BCivEhk9SScSGIExKSUxKQU5BCivEhk9SScSGIE1BUklKQQorxIZPUknEhiBNScSGTworxIZPUknEhiBNSUtBSUxPCivEhk9SScSGIFJBSktPCivEhk9SS09WScSGIElWQU4KK8SGT1JLT1ZJxIYgTUFSS08KK8SGT1JPVknEhiBEQU5JTE8KK8SGT1JPVknEhiBKT1ZBTgorxIZPUk9WScSGIE1JUsSMRVRBCivEhk9ST1ZJxIYgTUlSTworxIZPUk9WScSGIFJFTkFUQQorxIZPUk9WScSGIFNMT0JPREFOCivEhk9TScSGIMWgVEVGSUNBCivEhk9TScSGIMW9QVJLTworxIZPU0nEhiDFvUlWQU5BCivEhk9TScSGIMW9SVZLQQorxIZPU0nEhiBBTEVLU0FOREFSCivEhk9TScSGIEFMRUtTQU5EQVIKK8SGT1NJxIYgQk9HREFOIFNVRElKQQorxIZPU0nEhiBCUkFOS08KK8SGT1NJxIYgQlJBTktPCivEhk9TScSGIERBTklDQQorxIZPU0nEhiBEUkFHQU5BCivEhk9TScSGIERSQUdBTgorxIZPU0nEhiBEUkFHSUNBCivEhk9TScSGIERSQUdJQ0EKK8SGT1NJxIYgRFXFoEFOCivEhk9TScSGIERVxaBBTgorxIZPU0nEhiBEVcWgS08KK8SGT1NJxIYgRkFESUwKK8SGT1NJxIYgSUxJSkEKK8SGT1NJxIYgSkVMS0EKK8SGT1NJxIYgSk9WQU4KK8SGT1NJxIYgSk9WQU4KK8SGT1NJxIYgSk9WQU4KK8SGT1NJxIYgSk9aTworxIZPU0nEhiBMSklMSkFOQQorxIZPU0nEhiBNQVJJSkEKK8SGT1NJxIYgTUFSSUpBCivEhk9TScSGIE1JTEFOCivEhk9TScSGIE1JTEVOQQorxIZPU0nEhiBNSUxJQ0EKK8SGT1NJxIYgTUlSSkFOQQorxIZPU0nEhiBNVUhBTUVECivEhk9TScSGIE9MR0EKK8SGT1NJxIYgUEFOVEVMSUpBCivEhk9TScSGIFNBVktBCivEhk9TScSGIFNNSUxKQQorxIZPU0nEhiBTTkXFvUFOQQorxIZPU0nEhiBTVEFOS0EKK8SGT1NJxIYgU1RPSkFOCivEhk9TScSGIFRPRE9SIERJUEwgSU5HCivEhk9TScSGIFZFUkEKK8SGT1NJxIYgVkVST1NMQVYKK8SGT1NJxIYgVkxBRElNSVIKK8SGT1NJxIYgWk9SQU4KK8SGT1NJxIYgWk9SS0EKK8SGT1NJTiBEVcWgQU4KK8SGT1NJTiBaT1JBTgorxIZPU08gR0FWUklMTworxIZPU09WScSGIEpFTEVOQQorxIZPU09WScSGIE1JTEVUQQorxIZPU09WScSGIFRPTUlTTEFWCivEhk9WScSGIExBWkFSCivEhk9WSU4gTUlMQU4KK8SGVcSGQSBBREFNCivEhlXEhklMT1ZJxIYgQ1ZJSkEKK8SGVcSGSUxPVknEhiBNT03EjElMTworxIZVxIZJTE9WScSGIFJVxb1JQ0EKK8SGVcSGVVogTUFSS08KK8SGVcSGVVogU0HFoEEKK8SGVcSGVVogU1RBTktPCivEhlVCQSBSQVRLTyBESVBMIElORworxIZVQknEhiBEVcWgQU4KK8SGVUnEhiBJTElKQQorxIZVScSGIE1BUkEKK8SGVUnEhiBNSUxLQQorxIZVSknEhiBMSlVCSUNBCivEhlVKScSGIFNURVZBTgorxIZVSyDEkFVSTworxIZVSyBEUkFHTworxIZVSyBEVcWgQU4KK8SGVUsgRFXFoEFOCivEhlVLIEdPSktPCivEhlVLIExFTEEKK8SGVUsgTFVLQQorxIZVSyBNQVJBCivEhlVLIE1JTEFOIERJUEwgSU5HCivEhlVLIE1JTEUKK8SGVUsgTUlMSUNBCivEhlVLIE1JTEtBTgorxIZVSyBNSUxPUkFECivEhlVLIE1JUk9TTEFWCivEhlVLIE5JS09MQQorxIZVSyBSQURJVk9KCivEhlVLIFJBVEtPCivEhlVLIFNMT0JPREFOCivEhlVLIFRPTUlTTEFWCivEhlVLIFpPUktBCivEhlVLT1ZJxIYgTUlMVU4KK8SGVUtPVknEhiBNSVJBCivEhlVLT1ZJxIYgUkFET01JUiBESVBMIElORworxIZVS09WScSGIFJBRE9WQU4KK8SGVUtPVknEhiBUSUhPTUlSS0EKK8SGVUtPVknEhiBaT1JBTgorxIZVTEnEhiDEkE9SxJBFCivEhlVMScSGIEpBU01JTktBCivEhlVMSUJSSyBCT0dEQU4KK8SGVUxJQlJLIERSQUdBTgorxIZVTElCUksgRFJBR0FOCivEhlVMSUJSSyBEUkFHT1NMQVYKK8SGVUxJQlJLIERVxaBBTktBCivEhlVMSUJSSyBEVcWgQU4KK8SGVUxJQlJLIEdPU1BBVkEKK8SGVUxJQlJLIEpFTElDQQorxIZVTElCUksgSkVMS0EKK8SGVUxJQlJLIE1JTEFOCivEhlVMSUJSSyBNSUxFCivEhlVMSUJSSyBNSUxFCivEhlVMSUJSSyBNSU9EUkFHCivEhlVMSUJSSyBNSVJLTworxIZVTElCUksgTUxBREVOCivEhlVMSUJSSyBNT03EjElMTworxIZVTElCUksgUkFESVZPSkUKK8SGVUxJQlJLIFJBRE9KS0EKK8SGVUxJQlJLIFJBVEtPCivEhlVMSUJSSyBSSVNUTworxIZVTElCUksgU0xPQk9EQU4KK8SGVUxJQlJLIFNPS0EKK8SGVUxJQlJLIFNURVZBTgorxIZVTElCUksgVFJJVk8KK8SGVUxVTSBCUkFOS08KK8SGVUxVTSBHT0pLTworxIZVTFVNIElMSUpBCivEhlVMVU0gSkVMSUNBCivEhlVMVU0gSk9WQU4KK8SGVUxVTSBMQVpBUgorxIZVTFVNIE1BUkEKK8SGVUxVTSBNQVJBCivEhlVMVU0gTUlIQUpMTworxIZVTFVNIE1JTEFOCivEhlVMVU0gTUlMRVRBCivEhlVMVU0gTUlMT8WgCivEhlVMVU0gTUlPRFJBRworxIZVTFVNIE1JUktPCivEhlVMVU0gTUlSS08KK8SGVUxVTSBOQURBCivEhlVMVU0gTkFEQQorxIZVTFVNIE5JS09MQQorxIZVTFVNIFBFUk8KK8SGVUxVTSBSQURFCivEhlVMVU0gUkFERQorxIZVTFVNIFNBVkEKK8SGVUxVTSBTTEFWS08KK8SGVUxVTSBTVEFOS0EKK8SGVUxVTSBTVEFOS0EKK8SGVUxVTSBTVEVWTworxIZVTFVNIFNURVZPCivEhlVMVU0gVVJPxaAKK8SGVUxVTSBWQVNBCivEhlVMVU1BTiBTVEVWQU4KK8SGVUxVTU9WScSGIFNUSkVQQU4KK8SGVU1VUk9WScSGIFNMQVZJQ0EKK8SGVVBJxIYgRFXFoEFOCivEhlVQSU5BIEJSQU5LTworxIZVUElOQSBNSUxBRElOCivEhlVQSU5BIE5PVklDQQorxIZVUElOQSBUT01JU0xBViBEUgorxIZVUFVSRElKQSBKRUxFTkEKK8SGVVBVUkRJSkEgTUlMQU4KK8SGVVBVUkRJSkEgTUlMT1ZBTgorxIZVUFVSRElKQSBTQcWgQQorxIZVUFVSRElKQSBTVEVWQU4KK8SGVVLEjEnEhiDEjEVET01JUgorxIZVUsSMScSGIMW9SVZBTgorxIZVUsSMScSGIMW9SVZBTgorxIZVUsSMScSGIMW9SVZLTworxIZVUsSMScSGIMSQT1LEkEUKK8SGVVLEjEnEhiBBTEVLU0FOREFSCivEhlVSxIxJxIYgQU5EUklKQQorxIZVUsSMScSGIEJPxaBLTworxIZVUsSMScSGIEJPR0RBTgorxIZVUsSMScSGIEJPUklWT0oKK8SGVVLEjEnEhiBCUkFOSVNMQVYKK8SGVVLEjEnEhiBCUkFOS08KK8SGVVLEjEnEhiBCUkFOS08KK8SGVVLEjEnEhiBCUkFOS08KK8SGVVLEjEnEhiBEQU5JTE8KK8SGVVLEjEnEhiBERVNQSU5BCivEhlVSxIxJxIYgRFJBR0FOCivEhlVSxIxJxIYgRFJBR0FOCivEhlVSxIxJxIYgRFJBR0FOCivEhlVSxIxJxIYgRFJBR09NSVIKK8SGVVLEjEnEhiBEUkFHT1NMQVYKK8SGVVLEjEnEhiBEVcWgQU5LQQorxIZVUsSMScSGIERVxaBBTgorxIZVUsSMScSGIERVxaBBTgorxIZVUsSMScSGIERVxaBBTgorxIZVUsSMScSGIEdFT1JHSUpFCivEhlVSxIxJxIYgR09KS08KK8SGVVLEjEnEhiBHT1JEQU5BCivEhlVSxIxJxIYgSUJPSkEKK8SGVVLEjEnEhiBJTElKQQorxIZVUsSMScSGIElMSUpBCivEhlVSxIxJxIYgSkFTTUlOQQorxIZVUsSMScSGIEpFTEVOQQorxIZVUsSMScSGIEpPVkFOIE5PVklOQVIKK8SGVVLEjEnEhiBKT1ZBCivEhlVSxIxJxIYgS0FNRU5LTworxIZVUsSMScSGLUtBU0FMSUNBIEJPU0EKK8SGVVLEjEnEhiBLQVRJQ0EKK8SGVVLEjEnEhiBMQVpBUgorxIZVUsSMScSGIExBWkFSCivEhlVSxIxJxIYgTEpJTEpBTkEKK8SGVVLEjEnEhiBMSklMSkFOQQorxIZVUsSMScSGIExKVUJJxaBBCivEhlVSxIxJxIYgTEpVQk9NSVIKK8SGVVLEjEnEhiBNQVJBCivEhlVSxIxJxIYgTUFSQQorxIZVUsSMScSGIE1BUklKQQorxIZVUsSMScSGIE1BUklKQQorxIZVUsSMScSGIE1BUklKQQorxIZVUsSMScSGIE1JSEFKTE8KK8SGVVLEjEnEhiBNSUpPCivEhlVSxIxJxIYgTUlMQU4KK8SGVVLEjEnEhiBNSUxBTgorxIZVUsSMScSGIE1JTEFOCivEhlVSxIxJxIYgTUlMQU4KK8SGVVLEjEnEhiBNSUxBTgorxIZVUsSMScSGIE1JTEVOQQorxIZVUsSMScSGIE1JTEVWQQorxIZVUsSMScSGIE1JTEUKK8SGVVLEjEnEhiBNSUxFCivEhlVSxIxJxIYgTUlMScSGCivEhlVSxIxJxIYgTUlMSUNBCivEhlVSxIxJxIYgTUlMSVZPSgorxIZVUsSMScSGIE1JTE9SQUQKK8SGVVLEjEnEhiBNSUxPUkFECivEhlVSxIxJxIYgTUlPRFJBRworxIZVUsSMScSGIE1JT0RSQUcKK8SGVVLEjEnEhiBNSVJKQU5BCivEhlVSxIxJxIYgTUlSSkFOQQorxIZVUsSMScSGIE1JUktPCivEhlVSxIxJxIYgTUlST1NMQVYKK8SGVVLEjEnEhiBNSVJPU0xBVgorxIZVUsSMScSGIE1MQURFTgorxIZVUsSMScSGIE1PTcSMSUxPCivEhlVSxIxJxIYgTkFEQQorxIZVUsSMScSGIE5FTkFECivEhlVSxIxJxIYgTklLT0xBCivEhlVSxIxJxIYgT0xHQQorxIZVUsSMScSGIE9MR0EKK8SGVVLEjEnEhiBQQVZMRQorxIZVUsSMScSGIFBFVEFSCivEhlVSxIxJxIYgUkFERQorxIZVUsSMScSGIFJBRElWT0oKK8SGVVLEjEnEhiBSQURNSUxBCivEhlVSxIxJxIYgUkFETUlMQQorxIZVUsSMScSGIFJBRE9TTEFWCivEhlVSxIxJxIYgUkFET1NMQVYKK8SGVVLEjEnEhiBSQURPU0xBVgorxIZVUsSMScSGIFJBSktPCivEhlVSxIxJxIYgUkFKS08KK8SGVVLEjEnEhiBSQVRLQQorxIZVUsSMScSGIFJBVE9NSVIKK8SGVVLEjEnEhiBTQVZBCivEhlVSxIxJxIYgU0xBVklDQQorxIZVUsSMScSGIFNMQVZLTworxIZVUsSMScSGIFNMT0JPREFOCivEhlVSxIxJxIYgU0xPQk9EQU4KK8SGVVLEjEnEhiBTTE9CT0RBTgorxIZVUsSMScSGIFNURVZBTgorxIZVUsSMScSGIFNURVZPCivEhlVSxIxJxIYgVVJPxaAKK8SGVVLEjEnEhiBWQVNJTElKRQorxIZVUsSMScSGIFZFUkEKK8SGVVLEjEnEhiBWRVNFTElOS0EKK8SGVVLEjEnEhiBWVUtBxaBJTgorxIZVUsSMScSGIFpEUkFWS08KK8SGVVLEjEnEhiBaTEFUQQorxIZVUsSMScSGIFpPUkFOCivEhlVSxIxJxIYgWk9SQU4KK8SGVVLEjElKQSBTSU1BCivEhlVSxIxJTiDFvUlWS08KK8SGVVLEjElOIMW9SVZLTworxIZVUsSMSU4gxJBPUsSQRQorxIZVUsSMSU4gxJBVUkEKK8SGVVLEjElOIEFMRUtTQU5EQVIKK8SGVVLEjElOIEJPxb1JREFSCivEhlVSxIxJTiBCUkFOS08KK8SGVVLEjElOIERSQUdPTUlSCivEhlVSxIxJTiBEUkFHT1NMQVYKK8SGVVLEjElOIERSRU5LQQorxIZVUsSMSU4gRFXFoEFOCivEhlVSxIxJTiBEVcWgQU4KK8SGVVLEjElOIEVNSUxJSkEKK8SGVVLEjElOIEpFTEVOQQorxIZVUsSMSU4gSkVMSVNBVkVUQQorxIZVUsSMSU4gTEpVQklDQQorxIZVUsSMSU4gTUFLU0EKK8SGVVLEjElOIE1JTEFOCivEhlVSxIxJTiBNSUxFTkEKK8SGVVLEjElOIE1JTE9SQUQKK8SGVVLEjElOIE1JTE9SQUQKK8SGVVLEjElOIE9CUkFECivEhlVSxIxJTiBQRVRBUgorxIZVUsSMSU4gUkFESVZPSgorxIZVUsSMSU4gUkFET1NMQVYKK8SGVVLEjElOIFJVxb1BCivEhlVSxIxJTiBTQVJBCivEhlVSxIxJTiBTVkVUT1pBUgorxIZVUsSMSU4gVE9ET1IKK8SGVVLEjElOIFZBU0EKK8SGVVLEjElOIFZFTEVNSVIKK8SGVVLEjElOIFZFTElNSVIKK8SGVVLEjElOIFZFUklDQQorxIZVUsSMSU4gVlVLSUNBCivEhlVSxIxJTiBaT1JBCivEhlVSxIZJSknEhiBSQVRPTUlSCivEhlVSREnEhiBKT1ZBTgorxIZVUkRJxIYgVkFTSUxJSkUKK8SGVVJEScSGIFpPUkFOCivEhlVSR1VaIElMSUpBCivEhlVSR1VaIE1JTE9SQUQKK8SGVVJHVVogTkFEQQorxIZVUkdVWiBWRVJJQ0EKK8SGVVJJxIxJxIYgVEFUSkFOQQorxIZVUknEhiDEkE9SxJBFCivEhlVSScSGIEpPVkFOCivEhlVSScSGIE1JTEFOCivEhlVSScSGIE1JTE/FoAorxIZVUknEhiBNSUxPUkFECivEhlVSScSGIE1JTFVUSU4KK8SGVVJJxIYgUEVMQUdJSkEKK8SGVVJJxIYgU0FWTworxIZVUknEhiBTSU1PCivEhlVSScSGIFNJTknFoEEKK8SGVVJJxIYgU1VaQU5BCivEhlVSScSGIFZMQURJU0xBVgorxIZVUktPVknEhiDFoFBJUk8KK8SGVVJLT1ZJxIYtxJBPUsSQRVZJxIYgTUlPTUlSQQorxIZVUktPVknEhiBLQVRJQ0EKK8SGVVJMSUJSSyBCT1NJTEpLQQorxIZVUlVWSUpBIEJSQU5LTworxIZVUlVWSUpBIE5JS09MQQorxIZVUlVWSUpBIE5JS09MQQorxIZVUlVWSUpBIFZMQURPCivEhlVUSUxPIFNURVZPCivEhlVaT1ZJxIYgQlJBTkUKK8SGVVpPVknEhiBEUkFHT0xKVUIKK8SGVVpPVknEhiBEUkFHT0xKVUIKK8SGVVpPVknEhiBHT1JBTgorxIZVWk9WScSGIE1JUktPCivFvUFCQUxKQUMgVk9KSVNMQVYKK8W9QUJJxIYgR09SQU4KK8W9QUJJxIYgTEpVQk9NSVIKK8W9QUJVTEpBQyBQQVZMRQorxb1BRlJBTiBNQVJUSU4KK8W9QUdBUiBEUkFHQU4KK8W9QUdBUiBFUk5FU1QKK8W9QUdBUiBJVkFOCivFvUFHQVIgSk9WQU4KK8W9QUdBUiBMSklMSkEKK8W9QUdBUiBNQVJJSkEKK8W9QUdBUiBNQVRJSkEKK8W9QUdBUiBQQVZBTworxb1BR0FSIFJBRE9TTEFWQQorxb1BSkEgVE9NSVNMQVYKK8W9QUpBxIxLTyDFvUVMSktPCivFvUFLIERSQUdVVElOCivFvUFLScSGIExKVUJJQ0EKK8W9QUtJxIYgTUFSSUpBCivFvUFLScSGIE1JT0RSQUcKK8W9QUtJxIYgTUxBREVOCivFvUFLScSGIFZFUkEKK8W9QUtJxIYgVkxBRElNSVIKK8W9QUtJxIYgVk9KSVNMQVYKK8W9QUtVTEEgQVJBTktBCivFvUFLVUxBIEJPUklTTEFWCivFvUFLVUxBIE1JTEFOCivFvUFLVUxBIE1JTEFOCivFvUFLVUxBIE1JT0RSQUcKK8W9QUtVTEEgTUlSQQorxb1BS1VMQSBSQURJVk9KIERSIFBST0YKK8W9QUtVTEEgWk9SQQorxb1BTUJPS0kgTUFSSUpBCivFvUFNQk9LSSBWRVJPTkEKK8W9QVLEjEFOSU4gQlJBTktPCivFvUFSxIxBTklOIFBSRURSQUcKK8W9QVJJTiBSQURPSklDQQorxb1BUklOIFNJTknFoEEKK8W9QVJJTi1UQUJBSyBOQVRBTElKQQorxb1BUklOIFZFU0VMSU4KK8W9QVJLTyBMQURJU0xBVgorxb1BUktPIE1JSEFKTE8KK8W9QVJLT1YgRFXFoEFOCivFvUFSS09WIEtPU1RBCivFvUFSS09WIExKSUxKQU5BCivFvUFSS09WIFZFU0VMS0EKK8W9QVJLT1YgWkxBVE9KRQorxb1BUktPVkHEjEtJIElMSUpBCivFvUFSS09WQcSMS0kgTUlSS08KK8W9QVJLT1ZJxIYgxb1BUktPCivFvUFSS09WScSGIERBTklMTworxb1BUktPVknEhiBEQU5JTE8KK8W9QVJLT1ZJxIYgRFJBR09KRSBEUiBQUk9GCivFvUFSS09WScSGIEdPSktPCivFvUFSS09WScSGIEdPSktPCivFvUFSS09WScSGIEpPVkFOCivFvUFSS09WScSGIEpPVkFOCivFvUFSS09WScSGIE1JTEVOQQorxb1BUktPVknEhiBNSU9EUkFHCivFvUFSS09WScSGIE1JT0RSQUcKK8W9QVJLT1ZJxIYgTUlSS08KK8W9QVJLT1ZJxIYgTkVCT0rFoEEKK8W9QVJLT1ZJxIYgTkVOQUQKK8W9QVJLT1ZJxIYgTkVOQUQKK8W9QVJLT1ZJxIYgTk9WSUNBCivFvUFSS09WScSGIFJJU1RPCivFvUFSS09WScSGIFJJU1RPCivFvUFSS09WScSGIFNMQVZLTworxb1BUktPVknEhiBWTEFKS08KK8W9QVJLT1ZJxIYgWkRSQVZLTworxb1BUktPVknEhiBaRFJBVktPCivFvUFSS09WScSGIFpPUkEKK8W9REVSScSGIEpFTElDQQorxb1ERVJJxIYgTUFSSUpBCivFvURFUknEhiBNSUxBTgorxb1ERVJJxIYgTUlMRU5LTworxb1ERVJPIERSQUdJTkpBCivFvURFUk8gRFXFoElDQQorxb1ERVJPIEdPSktPCivFvURFUk8gTUFSSU5LTworxb1ERVJPIFBFVEFSCivFvURFUk8gUEVUQVIKK8W9REVSTyBSQURPTUlSCivFvURSQUxFIFJBRE9WQU4KK8W9RFJBTEnEhiBWQVNPCivFvURSTkpBIE1JTEFOCivFvURSTkpBIE1JTEFOCivFvURSTkpBIE1JUktPCivFvURSTkpBIE5FxJBPCivFvURSTkpBIE5FxJBPCivFvURSTkpBIFNJTU8KK8W9RcW9RUxKIEJSQU5LTworxb1Fxb1FTEogTUlMQU4KK8W9RcW9RUxKIE1JTEFOCivFvUXFvUVMSiBTQVZBCivFvUXFvUVMSiBTVkVUSVNMQVYKK8W9RUJFTEpBTiBNSUxFTkEKK8W9RUJFTEpBTiBNSUxFTktPCivFvUVCRUxKQU4gTUlMT1JBRAorxb1FQkVMSkFOIE1JVEEKK8W9RUJFTEpBTiBORURFTEpLTworxb1FQkVSQU4gQU7EkEVMS0EKK8W9RUdBUkFDIMSQT1LEkEUKK8W9RUdBUkFDIERBTklDQQorxb1FR0FSQUMgRFXFoEFOCivFvUVHQVJBQyBMQVpBUgorxb1FR0FSQUMgTUlMQU4KK8W9RUdBUkFDIE1JTEVOS08KK8W9RUdBUkFDIE1JUkpBTkEKK8W9RUdBUkFDIFNURVZBTgorxb1FR0FSQUMgVk9KSVNMQVYKK8W9RUtJxIYgxb1JVktPCivFvUVLScSGIEJPxaBLTworxb1FS0nEhiBSQURJU0xBVgorxb1FS0nEhiBSVcW9QQorxb1FS0nEhiBaT1JBTgorxb1FTEVNIFNURVZBTgorxb1FTEVSIMSQVVLEkEVWS0EKK8W9RUxFWkVOIEpPU0lQCivFvUVMSSBBTkRSQcWgCivFvUVMSSBJxaBUVkFOCivFvUVMSSBLQVRBUklOQQorxb1FTEkgU0lMVkVTVEVSCivFvUVNQkVSSSDFoEFORE9SCivFvUVNQkVSSSBKT1NJUAorxb1FTUJFUkkgUk9CRVJUCivFvUVNQkVSSSBST0JFUlQKK8W9RU5FUiBLQVJMTworxb1FTklMTyBCT8W9SURBUgorxb1FUkFKScSGIEdBVlJJTE8KK8W9RVJBVklDQSBEQU1KQU4KK8W9RVJBVklDQSBNSUxBRElOCivFvUVSQVZJQ0EgTkFEQQorxb1FUkFWSUNBIFNUQU5PSkUKK8W9RVJBVkxKRVYgSUxJSkEKK8W9RVJJxIYgSVJNQQorxb1FU1RJxIYgxaBURUZBTklKQQorxb1Jxb1BIE5BREEKK8W9ScW9QUtJxIYgU0FWQQorxb1Jxb1BS09WIERSQUdPTEpVQgorxb1Jxb1BS09WIEtBVElDQQorxb1Jxb1BS09WIE1JTE/FoAorxb1Jxb1BS09WIFBBVkxFCivFvUnFvUFLT1YgVkVMSU5LQQorxb1Jxb1BS09WIFZJVE9NSVIKK8W9ScW9QUtPViBWTEFEQQorxb1Jxb1BS09WIFZMQURJTUlSCivFvUnFvUnEhiDEjEVET01JUgorxb1Jxb1JxIYgQU7EkEVMSUpBCivFvUnFvUnEhiBCUkFOSVNMQVYKK8W9ScW9ScSGIERSQUdBTgorxb1Jxb1JxIYgTUlMT1JBRAorxb1Jxb1JxIYgVkVTRUxJTgorxb1Jxb1PVknEhiBTTE9CT0RBTktBCivFvUlCUkVHIEFMRUtTQU5EQVIKK8W9SUJSRUcgSVZBTkEKK8W9SURFSyBKT1NJUAorxb1JREnFoEnEhiBaT1JBTgorxb1JR0EgSkVMRU5BCivFvUlHQSBLQVJMTworxb1JR0EgTUlSS08KK8W9SUdBIE1VU1RBRkEKK8W9SUdBTEFDIFZFUk9OQQorxb1JR0nEhiBCT0dEQU4KK8W9SUdJxIYgQlJBTktPCivFvUlHScSGIERBTklDQQorxb1JR0nEhiBESU1JVFJJSkUKK8W9SUdJxIYgRFXFoEFOCivFvUlHScSGIEpVTElKQQorxb1JR0nEhiBMSlVCScWgQQorxb1JR0nEhiBNSUxBTgorxb1JR0nEhiBNSUxBTgorxb1JR0nEhiBNSUxBTgorxb1JR0nEhiBNSUxFVkEKK8W9SUdJxIYgTUlMS0EKK8W9SUdJxIYgTUlSS08KK8W9SUdJxIYgTkVERUxKS08KK8W9SUdJxIYgTklLT0xBCivFvUlHScSGIFBFVEFSCivFvUlHScSGIFBFVEFSCivFvUlHScSGIFBFVEFSCivFvUlHScSGIFJBREUKK8W9SUdJxIYgUkFET1NMQVYKK8W9SUdJxIYgU0FWS0EKK8W9SUdJxIYgVk9KSU4KK8W9SUdNT05EIEJFTEEKK8W9SUdNT05EIEJSQU5LQQorxb1JR1JBSSDEkE9SxJBFCivFvUlHUkFJIEnFoFRWQU4gTVIKK8W9SUdSQUkgSk9WQU4KK8W9SUdSSSBKT1NJUAorxb1JR1JJIExKVUJJQ0EKK8W9SUdSSSBNSVJLTworxb1JR1VSU0tJIFBBVkxFCivFvUlIQSBNQVJJSkEKK8W9SUhMQVZTS0kgSlVMS0EKK8W9SUpJxIYgVlVLT1NBVkEKK8W9SUtJxIYgxJBPUsSQRQorxb1JS0nEhiDEkE9SxJBFCivFvUlLScSGIMSQT1LEkEUKK8W9SUtJxIYgQUxFS1NBTkRBUgorxb1JS0nEhiBESU1JVFJJSkUKK8W9SUtJxIYgRE9CUklMQQorxb1JS0nEhiBEUkFHQU4KK8W9SUtJxIYgRFXFoEFOCivFvUlLScSGIEpPVkFOS0EKK8W9SUtJxIYgSk9WQU4KK8W9SUtJxIYgSk9WQU4KK8W9SUtJxIYgS0FUSUNBCivFvUlLScSGIExKVUJJQ0EKK8W9SUtJxIYgTUFSSUNBCivFvUlLScSGIE1BUklKQQorxb1JS0nEhiBNSUhBSkxPCivFvUlLScSGIE1JTEFOCivFvUlLScSGIE1JTE9SQUQgRFIKK8W9SUtJxIYgTkVWRU5BCivFvUlLScSGIE5JS09MQQorxb1JS0nEhiBOSUtPTEEKK8W9SUtJxIYgT0xHQQorxb1JS0nEhiBPTElWRVJBCivFvUlLScSGIFJBRElWT0oKK8W9SUtJxIYgUkFET01JUgorxb1JS0nEhiBTTE9CT0RBTgorxb1JS0nEhiBTT0ZJSkEKK8W9SUtJxIYgVEFNQVJBCivFvUlLScSGIFRJSE9NSVIgRElQTCBJTkcKK8W9SUtJxIYgVE9ET1IKK8W9SUtJxIYgVkFTQQorxb1JS0nEhi1WQVNJxIYgVEFNQVJBCivFvUlLScSGIFZFTElNSVIKK8W9SUtJxIYgVkVSQQorxb1JS0nEhiBWRVJJQ0EKK8W9SUtJxIYgVklUT01JUgorxb1JS0nEhiBWTEFESU1JUgorxb1JS09WScSGIE5FTkFECivFvUlMRVZTS0kgS1JTVE8KK8W9SUxJxIYgTUlMRU5LTworxb1JTEnEhiBNSVJPU0xBVgorxb1JTEnEhiBTVE9KQU4KK8W9SUxOSUsgxJBVUkEKK8W9SUxOSUsgxJBVUkEKK8W9SUxOSUsgUEFWTEUgRElQTCBJTkcKK8W9SUxOSUstUEVUUk9WScSGIMW9RUxJTUlSCivFvUlOScSGIE1BUklOQQorxb1JUkFWQUMgU1RFVkFOCivFvUlSS0EgUEFWRUwKK8W9SVJPxaAgTUlST04KK8W9SVJPVk5JSyBBTlRPTgorxb1JVsSMScSGIFNWRVRMQU5BCivFvUlWQUxKRVZJxIYgRFJBR09NSVIKK8W9SVZBTEpFVknEhiBHT1JBTgorxb1JVkFMSkVWScSGIE9MR0EKK8W9SVZBTEpFVknEhiBTVEFOQQorxb1JVkFOxIxFViBJTElKQQorxb1JVkFOxIxFViBKT1ZBTgorxb1JVkFOxIxFViBLQVNBIERJUEwgSU5HCivFvUlWQU7EjEVWIE1JS0EKK8W9SVZBTsSMRVYgTUlMQU4KK8W9SVZBTsSMRVYgTUlMQU4KK8W9SVZBTsSMRVYgUEFKQQorxb1JVkFOxIxFViBSQURBCivFvUlWQU7EjEVWIFJBTktPCivFvUlWQU7EjEVWIFNURVZBTgorxb1JVkFOxIxFViBTVFJBSElOSkEKK8W9SVZBTsSMRVZJxIYgTEFaQVIKK8W9SVZBTsSMRVZJxIYgTUlMSktPCivFvUlWQU7EjEVWScSGIE1JTE9SQUQgRFIKK8W9SVZBTsSMRVZJxIYgU0xPQk9EQU4KK8W9SVZBTsSMRVZJxIYgVkVMSU1JUgorxb1JVkFOQUMgREVKQU4KK8W9SVZBTkFDIERFSkFOCivFvUlWQU5BQyBMQVpBUgorxb1JVkFOQUMgWk9SSUNBCivFvUlWQU5JxIYgxJBPS0EKK8W9SVZBTknEhiBNSUhBSkxPCivFvUlWQU5JxIYgTUlMQU4KK8W9SVZBTknEhiBNSUxPUkFECivFvUlWQU5JxIYgTUlUQVIKK8W9SVZBTknEhiBQUkVEUkFHCivFvUlWQU5JxIYgVkxBRElNSVIKK8W9SVZBTknEhiBaT1JBTgorxb1JVkFOS0nEhiBFVklDQQorxb1JVkFOS09WIElHTkpBVAorxb1JVkFOT1Ygxb1BUktPCivFvUlWQU5PViDFvUlWQU4KK8W9SVZBTk9WIMW9SVZLTworxb1JVkFOT1YgQU7EkEVMSUpBCivFvUlWQU5PViBCT0dPTEpVQgorxb1JVkFOT1YgQlJBTktPCivFvUlWQU5PViBEQU5JQ0EKK8W9SVZBTk9WIERJTUlUUklKRQorxb1JVkFOT1YgRE9CUklMQQorxb1JVkFOT1YgRE9CUklWT0oKK8W9SVZBTk9WIERSQUdPSkxBCivFvUlWQU5PViBEUkFHT1NMQVYKK8W9SVZBTk9WIERSQUdPU0xBVgorxb1JVkFOT1YgRFXFoEFOCivFvUlWQU5PViBHT1JPU0xBVkEKK8W9SVZBTk9WIEpVU1RJTkEKK8W9SVZBTk9WIExBWkFSCivFvUlWQU5PViBMQVpBUgorxb1JVkFOT1YgTEVQT1NBVkEKK8W9SVZBTk9WIExKVUJJQ0EKK8W9SVZBTk9WIE1BR0RBCivFvUlWQU5PViBNQUtTSU4KK8W9SVZBTk9WIE1BUklKQQorxb1JVkFOT1YgTUFSSUpBCivFvUlWQU5PViBNQVJJSkEKK8W9SVZBTk9WIE1BUklKQQorxb1JVkFOT1YgTUlMQU4KK8W9SVZBTk9WIE1JTEVUQQorxb1JVkFOT1YgTUlMSVZPSgorxb1JVkFOT1YgTUlMT8WgCivFvUlWQU5PViBNSUxPxaAKK8W9SVZBTk9WIE1JTE9SQUQKK8W9SVZBTk9WIE1JT0RSQUcKK8W9SVZBTk9WIE1JT01JUgorxb1JVkFOT1YgTUlUQQorxb1JVkFOT1YgTUxBREVOCivFvUlWQU5PViBNTEFERU4KK8W9SVZBTk9WIE1MQURFTgorxb1JVkFOT1YgTU9NSVIKK8W9SVZBTk9WIE5BVEHFoEEKK8W9SVZBTk9WIE5JS09MQQorxb1JVkFOT1YgUEFWSUNBCivFvUlWQU5PViBQQVZMRQorxb1JVkFOT1YgUEFWTEUKK8W9SVZBTk9WIFBBVkxFCivFvUlWQU5PViBQQVZMRQorxb1JVkFOT1YgUkFEScWgQQorxb1JVkFOT1YgUkFKS08KK8W9SVZBTk9WIFNBVkEKK8W9SVZBTk9WIFNMQVZLTworxb1JVkFOT1YgU1LEkEFOCivFvUlWQU5PViBTUkJJU0xBVgorxb1JVkFOT1YgU1RBTklTTEFWCivFvUlWQU5PViBTVkVUT1pBUgorxb1JVkFOT1YgVE9ET1IKK8W9SVZBTk9WIFRPTUlTTEFWCivFvUlWQU5PViBUVUdPTUlSCivFvUlWQU5PViBWRUxJTUlSCivFvUlWQU5PViBWTEFESU1JUgorxb1JVkFOT1YgVkxBRElNSVIKK8W9SVZBTk9WIFZPSklTTEFWCivFvUlWQU5PViBaTEFUSU5LQQorxb1JVkFOT1ZJxIYgxb1BUktPCivFvUlWQU5PVknEhiDFvUlLQQorxb1JVkFOT1ZJxIYgxb1JVkFOCivFvUlWQU5PVknEhiDFvUlWT0pJTiBESVBMIFBSQVZOSUsKK8W9SVZBTk9WScSGIMW9SVZPSklOCivFvUlWQU5PVknEhiDEkE9SxJBFCivFvUlWQU5PVknEhiBBTEVLU0FOREFSCivFvUlWQU5PVknEhiBBTEVLU0FOREFSCivFvUlWQU5PVknEhiBBTEVLU0lKQQorxb1JVkFOT1ZJxIYgQU5LSUNBCivFvUlWQU5PVknEhiBCT8WgS08KK8W9SVZBTk9WScSGIEJPxaBLTworxb1JVkFOT1ZJxIYgQk9HREFOCivFvUlWQU5PVknEhiBCT1JLQQorxb1JVkFOT1ZJxIYgQlVESU1LQQorxb1JVkFOT1ZJxIYgRFJBR0nFoEEKK8W9SVZBTk9WScSGIERSQUdPTEpVQgorxb1JVkFOT1ZJxIYgRFJBR09TTEFWCivFvUlWQU5PVknEhiBKQURSQU5LQQorxb1JVkFOT1ZJxIYgSkVMRU5BCivFvUlWQU5PVknEhiBKT1ZBTgorxb1JVkFOT1ZJxIYgSk9WQU4KK8W9SVZBTk9WScSGIExBWkFSCivFvUlWQU5PVknEhi1MRcWgIERVxaBJQ0EKK8W9SVZBTk9WScSGIExKSUxKQU5BCivFvUlWQU5PVknEhiBNQVJJQ0EKK8W9SVZBTk9WScSGIE1BUklKQQorxb1JVkFOT1ZJxIYgTUlMQU4KK8W9SVZBTk9WScSGIE1JTElTQVYKK8W9SVZBTk9WScSGIE1JTElWT0oKK8W9SVZBTk9WScSGIE1JTE/FoAorxb1JVkFOT1ZJxIYgTUlMT1JBRAorxb1JVkFOT1ZJxIYgTUlMT1ZBTgorxb1JVkFOT1ZJxIYgTUlPRFJBRyBEUgorxb1JVkFOT1ZJxIYgTUlPRFJBRworxb1JVkFOT1ZJxIYgTUlSSkFOQQorxb1JVkFOT1ZJxIYgTU9NxIxJTE8KK8W9SVZBTk9WScSGIE5PVklDQQorxb1JVkFOT1ZJxIYgT0JSQUQKK8W9SVZBTk9WScSGIFBFVEFSCivFvUlWQU5PVknEhiBQRVRBUgorxb1JVkFOT1ZJxIYgUEVUQVIKK8W9SVZBTk9WScSGIFJBREEKK8W9SVZBTk9WScSGIFJBRE1JTEEKK8W9SVZBTk9WScSGIFNMQVZLQQorxb1JVkFOT1ZJxIYgU0xBVktPCivFvUlWQU5PVknEhiBTVEVWQU4KK8W9SVZBTk9WScSGIFRPTUlTTEFWCivFvUlWQU5PVknEhiBWSURPSkUKK8W9SVZBTk9WScSGIFZMQURJTUlSCivFvUlWQU5PVknEhiBWTEFESVNMQVYKK8W9SVZBTk9WScSGIFZPSklTTEFWCivFvUlWQU5PVknEhiBaT1JBTgorxb1JVkFOT1ZJxIYgWk9SQU4KK8W9SVZBTk9WScSGIFpPUktBCivFvUlWScSGIMSQT1LEkEUKK8W9SVZJxIYgxJBPUsSQRQorxb1JVknEhiBCT8W9SURBUgorxb1JVknEhiBHQVZSQQorxb1JVknEhiBKRUZUQQorxb1JVknEhiBKRUxJQ0EKK8W9SVZJxIYgSk9WQU4KK8W9SVZJxIYgTEFaQVIKK8W9SVZJxIYgTEpVQklDQQorxb1JVknEhiBSQURPSklDQQorxb1JVknEhiBTQVZBCivFvUlWScSGIFNBVkEKK8W9SVZJxIYgU01JTEpBCivFvUlWScSGIFNQQVNPSkUKK8W9SVZJxIYgVkVMSUJPUgorxb1JVknEhiBWSU5LQSBEUgorxb1JVknEhiBaT1JLQQorxb1JVklOIE5BREEKK8W9SVZLQU5PVknEhiBKT1ZBTgorxb1JVktJxIYgU1RFVkFOCivFvUlWS09WIMSQT1LEkEUKK8W9SVZLT1YgQU7EkEVMS0EKK8W9SVZLT1YgQU7EkEVMS0EKK8W9SVZLT1YgQk9SSVNMQVZBCivFvUlWS09WIEJSQU5JU0xBVgorxb1JVktPViBEUkFHSU5KQQorxb1JVktPViBEUkFHT0xKVUIKK8W9SVZLT1YgRFXFoEtPCivFvUlWS09WIEVTVEVSCivFvUlWS09WIEdSQURJTUlSCivFvUlWS09WIElWQU4KK8W9SVZLT1YgS09TVEEKK8W9SVZLT1YgTUFSS08KK8W9SVZLT1YgTUVMQU5JSkEKK8W9SVZLT1YgTkVOQUQKK8W9SVZLT1YgUEFWTEUKK8W9SVZLT1YgUkFET0pLQQorxb1JVktPViBTQVZBCivFvUlWS09WIFNBVkEKK8W9SVZLT1YgU0xBVktPCivFvUlWS09WIFNMQVZLTworxb1JVktPViBWQVNBCivFvUlWS09WScSGIMSMQVNMQVYKK8W9SVZLT1ZJxIYgxb1BS0xJTkEKK8W9SVZLT1ZJxIYgxb1JVktBCivFvUlWS09WScSGIMW9SVZPSklOCivFvUlWS09WScSGIMSQT0tBCivFvUlWS09WScSGIMSQT1LEkEUKK8W9SVZLT1ZJxIYgxJBPUsSQRQorxb1JVktPVknEhiBBSktBCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxPSlpJSkEKK8W9SVZLT1ZJxIYgQU7EkEVMS0EKK8W9SVZLT1ZJxIYgQkxBxaBLTworxb1JVktPVknEhiBCT0dEQU4KK8W9SVZLT1ZJxIYgQk9HREFOCivFvUlWS09WScSGIEJPR09MSlVCCivFvUlWS09WScSGIEJPR09NSVIKK8W9SVZLT1ZJxIYgQk9HT01JUgorxb1JVktPVknEhiBCT1JJU0xBVgorxb1JVktPVknEhiBCT1JJU0xBVgorxb1JVktPVknEhiBCT1JPCivFvUlWS09WScSGIEJSQU5JU0xBVgorxb1JVktPVknEhiBCUkFOSVNMQVYKK8W9SVZLT1ZJxIYgQlJBTklTTEFWCivFvUlWS09WScSGIEJSQU5LQSBEUgorxb1JVktPVknEhiBCUkFOS08KK8W9SVZLT1ZJxIYgREFOSUxPCivFvUlWS09WScSGIERFSkFOCivFvUlWS09WScSGIERJTUlUUklKRQorxb1JVktPVknEhiBESU1JVFJJSkUKK8W9SVZLT1ZJxIYgRE9CUk9TQVYKK8W9SVZLT1ZJxIYgRFJBR0FOQQorxb1JVktPVknEhiBEUkFHQU5BCivFvUlWS09WScSGIERSQUdBTgorxb1JVktPVknEhiBEUkFHQU4KK8W9SVZLT1ZJxIYgRFJBR0FOCivFvUlWS09WScSGIERSQUdBTgorxb1JVktPVknEhiBEUkFHScWgQSBEUgorxb1JVktPVknEhiBEUkFHScWgQQorxb1JVktPVknEhiBEUkFHScSGCivFvUlWS09WScSGIERSQUdPTEpVQgorxb1JVktPVknEhiBEVcWgQU5LQQorxb1JVktPVknEhiBEVcWgQU4KK8W9SVZLT1ZJxIYgRFXFoEFOCivFvUlWS09WScSGIERVxaBBTgorxb1JVktPVknEhiBEVcWgSUNBCivFvUlWS09WScSGIEdBQlJJSkVMQQorxb1JVktPVknEhiBHQUJSSUpFTEEKK8W9SVZLT1ZJxIYgR09SQU4KK8W9SVZLT1ZJxIYgR09SREFOQQorxb1JVktPVknEhiBJTElKQQorxb1JVktPVknEhiBJTElKQQorxb1JVktPVknEhiBJTE9OS0EKK8W9SVZLT1ZJxIYgSVZBTktBCivFvUlWS09WScSGIElWSUNBCivFvUlWS09WScSGIEpBU01JTkEKK8W9SVZLT1ZJxIYgSkVMSUNBCivFvUlWS09WScSGIEpFTElDQQorxb1JVktPVknEhiBKT1ZBTgorxb1JVktPVknEhiBKT1ZBTgorxb1JVktPVknEhiBKT1ZJQ0EKK8W9SVZLT1ZJxIYgSlVMS0EKK8W9SVZLT1ZJxIYgSlVMS0EKK8W9SVZLT1ZJxIYgSlVMS0lDQQorxb1JVktPVknEhiBLT1NUQQorxb1JVktPVknEhiBLUkXFoE8KK8W9SVZLT1ZJxIYgTEFaQVIKK8W9SVZLT1ZJxIYgTEFaQVIKK8W9SVZLT1ZJxIYgTEVQT1NBVkEKK8W9SVZLT1ZJxIYgTEpJTEpBTkEKK8W9SVZLT1ZJxIYgTEpVQklDQQorxb1JVktPVknEhiBMSlVCSU5LQQorxb1JVktPVknEhiBMSlVCT01JUgorxb1JVktPVknEhiBMSlVCT01JUgorxb1JVktPVknEhiBNQVJJSkEKK8W9SVZLT1ZJxIYgTUlIQUpMTworxb1JVktPVknEhiBNSUxBTktBCivFvUlWS09WScSGIE1JTEFOCivFvUlWS09WScSGIE1JTElDQQorxb1JVktPVknEhiBNSUxJVk9KCivFvUlWS09WScSGIE1JTEtBCivFvUlWS09WScSGIE1JTEtBCivFvUlWS09WScSGIE1JTE/FoAorxb1JVktPVknEhiBNSUxPxaAKK8W9SVZLT1ZJxIYgTUlMT01JUgorxb1JVktPVknEhiBNSUxPUkFECivFvUlWS09WScSGIE1JTE9SQUQKK8W9SVZLT1ZJxIYgTUlMVVRJTgorxb1JVktPVknEhiBNSU9EUkFHCivFvUlWS09WScSGIE1JUsSMRVRBCivFvUlWS09WScSGIE1JUkpBTkEKK8W9SVZLT1ZJxIYgTUlSS08KK8W9SVZLT1ZJxIYgTUlST1NMQVYKK8W9SVZLT1ZJxIYgTUlST1NMQVYKK8W9SVZLT1ZJxIYgTU9NxIxJTE8KK8W9SVZLT1ZJxIYgTkVCT0rFoEEKK8W9SVZLT1ZJxIYgTkVCT0rFoEEKK8W9SVZLT1ZJxIYgTkVERUxKS08KK8W9SVZLT1ZJxIYgTklLT0xBCivFvUlWS09WScSGIE9CUkFECivFvUlWS09WScSGIFBBVkxFCivFvUlWS09WScSGIFBFVEFSCivFvUlWS09WScSGIFBFVEFSCivFvUlWS09WScSGIFBFVEFSCivFvUlWS09WScSGIFBFVEFSCivFvUlWS09WScSGIFJBREVOS08KK8W9SVZLT1ZJxIYgUkFERQorxb1JVktPVknEhiBSQURJVk9KCivFvUlWS09WScSGIFJBRE1JTEEKK8W9SVZLT1ZJxIYgUkFETUlMTworxb1JVktPVknEhiBSQURPTUlSCivFvUlWS09WScSGIFJBRE9TTEFWQQorxb1JVktPVknEhiBSQURPU0xBVgorxb1JVktPVknEhiBSQURPU0xBVgorxb1JVktPVknEhiBSQURPU0xBVgorxb1JVktPVknEhiBST1NBCivFvUlWS09WScSGIFJVxb1JQ0EKK8W9SVZLT1ZJxIYgU0HFoEEKK8W9SVZLT1ZJxIYgU0FWQQorxb1JVktPVknEhiBTQVZBCivFvUlWS09WScSGIFNBVkEKK8W9SVZLT1ZJxIYgU0FWQQorxb1JVktPVknEhiBTSU5JxaBBCivFvUlWS09WScSGIFNMQVZLTworxb1JVktPVknEhiBTTEFWS08KK8W9SVZLT1ZJxIYgU0xBVktPCivFvUlWS09WScSGIFNMT0JPREFOIERSCivFvUlWS09WScSGIFNMT0JPREFOCivFvUlWS09WScSGIFNNSUxKS0EKK8W9SVZLT1ZJxIYgU05Fxb1BTkEKK8W9SVZLT1ZJxIYgU1JFVEVOCivFvUlWS09WScSGIFNUQU1FTktPCivFvUlWS09WScSGIFNURVBBTgorxb1JVktPVknEhiBTVEVWQU4KK8W9SVZLT1ZJxIYgU1RPSkFOS0EKK8W9SVZLT1ZJxIYgU1RPSkFOCivFvUlWS09WScSGIFNUT0pBTgorxb1JVktPVknEhiBTVkVUSVNMQVYKK8W9SVZLT1ZJxIYgU1ZFVExBTkEKK8W9SVZLT1ZJxIYgU1ZFVE9aQVIKK8W9SVZLT1ZJxIYgVEFOQVNJSkUKK8W9SVZLT1ZJxIYgVElOS0EKK8W9SVZLT1ZJxIYgVE/FoEEKK8W9SVZLT1ZJxIYgVE9NSVNMQVYKK8W9SVZLT1ZJxIYgVE9NSVNMQVYKK8W9SVZLT1ZJxIYgVkVLT1NMQVYKK8W9SVZLT1ZJxIYgVkVSQQorxb1JVktPVknEhiBWRVJBCivFvUlWS09WScSGIFZJRE9KS08KK8W9SVZLT1ZJxIYgVkxBREFOCivFvUlWS09WScSGIFZMQURJTUlSCivFvUlWS09WScSGIFZMQVNUSU1JUgorxb1JVktPVknEhiBWT0pJTgorxb1JVktPVknEhiBWT0pJU0xBVgorxb1JVktPVknEhiBaREVOS0EKK8W9SVZLT1ZJxIYgWkRFTktPCivFvUlWS09WScSGIFpEUkFWS08KK8W9SVZLT1ZJxIYgWkxBVE9NSVIKK8W9SVZLT1ZJxIYgWk9SQU4KK8W9SVZLT1ZJxIYgWk9SQU4KK8W9SVZLT1ZJxIYgWk9SQU4KK8W9SVZLT1ZJxIYgWk9SQU4KK8W9SVZLT1ZJxIYgWk9SQU4KK8W9SVZLT1ZMSkVWScSGIFZJRE9TQVZBCivFvUlWS1VDSU4gTUlST1NMQVZBCivFvUlWS1VDSU4gU0xPQk9EQU4KK8W9SVZOSSBBTkEKK8W9SVZOSSBGUkFOSkEKK8W9SVZPSklOT1YgQk9SSVZPSgorxb1JVk9KSU5PViBMSlVCSUNBCivFvUlWT0pJTk9WIE1JTE9WQU4KK8W9SVZPSklOT1YgUkFESVZPSgorxb1JVk9KSU5PVknEhiBST1pBTElKQQorxb1JVk9KSU5PVknEhiBWTEFESU1JUgorxb1JVk9KTk9WIEJSQU5JU0xBVgorxb1JVk9KTk9WIE1JUk9TTEFWCivFvUlWT0pOT1ZJxIYgxb1JVk9KSU4KK8W9SVZPSk5PVknEhiBTQU5KQQorxb1JVk9KTk9WScSGIFNSxJBBTiBEUiBMRUtBUgorxb1JVk9KTk9WScSGIFpPUktBCivFvUlWT1RJxIYgQU5HRUxJTkEKK8W9SVZPVEnEhiBEVcWgQU4KK8W9SVZPVEnEhiBTVEFOSVNMQVYKK8W9SVZPVEnEhiBTVEVWQU4KK8W9SVZPVEnEhiBWRUxJTUlSCivFvUlWT1RJTiBNQVJJQ0EKK8W9SVZPVElOIE1JVEFSCivFvU1VS0nEhiBCUkFOS08KK8W9TVVLScSGIEdPUkRBTkEKK8W9TVVLScSGIE5JS09MQQorxb1OSURBUsWgScSGIElHTkFDCivFvU5JREFSRUMgSVZBTgorxb1OSURBUkVDIElWQU4KK8W9T0xDRVIgRkVSRU5DCivFvU9MQ0VSIFZJTE1PxaAKK8W9T0xKT00gS0xBUkEKK8W9T0xKT00gTUlSSkFOQQorxb1PUsW9IEFMRUtTQU5EQVIKK8W9T1JJxIYgRklMSVAKK8W9VcW9QSBNSVJLTworxb1VQk9SSSBNSUxFTkEKK8W9VUdJxIYgRFJBR09MSlVCCivFvVVHScSGIEtSU1RPCivFvVVHScSGIE1BUklKQQorxb1VR0nEhiBNSUxJSkEKK8W9VUdJxIYgTUlMSVNBVgorxb1VR0nEhiBNSUxPUkFECivFvVVHScSGIE1JUktPCivFvVVHScSGIFJBRE9KS0EKK8W9VUdJxIYgUkFUS08KK8W9VUdJxIYtUklKQVZFQyBTSUxWSUpBCivFvVVHScSGIFNUQU5JxaBBCivFvVVHScSGIFNUQU5LTworxb1VSknEhiBNT01JUgorxb1VSknEhiBTTEFWS08KK8W9VUpPIE1BUkpBTgorxb1VTUJFUktPVknEhiDEkE9SxJBFIE1SCivFvVVOQUMgSlVMS0EKK8W9VU5BQyBUT01JU0xBVgorxb1VTkdVTCBTTUlMSkEKK8W9VU5JxIYgQk/FoEtPCivFvVVOScSGIERBUktPCivFvVVOScSGIEpPVknFoEEKK8W9VU5JxIYgTUlMQU4KK8W9VU5JxIYgTUlMRU5LTworxb1VTknEhiBNSUxJSkFOCivFvVVOScSGIE1PTcSMSUxPCivFvVVOScSGIE5FTkFECivFvVVOScSGLVBPUE9WIFNORcW9QU5BCivFvVVOScSGIFJBREEKK8W9VU5JxIYgU0lNQQorxb1VTknEhiBTT05KQQorxb1VTknEhiBWRUxJTUlSCivFvVVOSknEhiBEUkFHT01JUgorxb1VTlRFUiBBTlRVTiBESVBMIElORworxb1VTlRFUiBCT8W9QU5BCivFvVVQQU4gRURVQVJECivFvVVQQU4gTUlSS08KK8W9VVBBTsSMScSGIE1BUkdBUkVUQQorxb1VUEFORUMgQUxCRVJUIERSCivFvVVQQU5FQyBLU0VOSUpBCivFvVVQQU5FQyBNSVJBCivFvVVQQU5FQyBNSVJBCivFvVVQQVJJxIYgVklLVE9SCivFvVVQScSGIEFOVEUKK8W9VVBJxIYgREFORQorxb1VUEnEhiBEUkFHSUNBCivFvVVQScSGIE1JSk8KK8W9VVBVTlNLSSDFvUFSS08KK8W9VVBVTlNLSSDFvUlWT1JBRAorxb1VUFVOU0tJIEdPSktPCivFvVVQVU5TS0kgR1JPWkRBTkEKK8W9VVBVTlNLSSBHUlVKSUNBCivFvVVQVU5TS0kgSEVMRU5BCivFvVVQVU5TS0kgSVZBTgorxb1VUFVOU0tJIE1BUklOS08KK8W9VVBVTlNLSSBTVEVWQU4KK8W9VVBVTlNLSSBWRVNFTElOS0EKK8W9VVLFvUVWScSGIENWRVRLTworxb1VUsW9SU5PVknEhiBLT1NUQQorxb1VUsW9T1ZBTiBMSUEKK8W9VVLFvU9WQU4gTkVMVQorxb1VUsW9T1ZBTiBUUkFOREFGSVIKK8W9VVLFvVVMIEJPxaBLTworxb1VUsW9VUwgU1RBTk9KRQorxb1VUknEhiBNSUhBSUxPCivFvVVSScSGIFZBU08KK8W9VVJLQSBBVVJPUkEKK8W9VVRJxIYgTUlMS0EKK8W9VVRJxIYgUEVUQVIKK8W9VVRJxIYgU1RFVk8KK8SQQcSMQU5JTiBSQURPVkFOCivEkEHEjEnEhiBWTEFESU1JUgorxJBBScSGIE1JUk9TTEFWCivEkEFKScSGIMW9QVJLTworxJBBSknEhiDFvUVMSktPCivEkEFKScSGIEFMRUtTQU5EUkEKK8SQQUpJxIYgQk9HREFOCivEkEFKScSGIEpFTEVOS08KK8SQQUpJxIYtSk9WQU5PVknEhiBSQUpLQQorxJBBSknEhiBNSUxPUkFECivEkEFKScSGIE5BREEKK8SQQUpJxIYgTkVWRU5BCivEkEFKScSGIE5JS09MQQorxJBBSknEhiBWRUxKS08KK8SQQUpJxIYgVkxBRElTTEFWQQorxJBBS09OT1YgTUlMS0EKK8SQQUtPTk9WIFNURVZBTgorxJBBS09OT1ZJxIYgTUlMT1ZBTgorxJBBS09OT1ZJxIYgU0xBVklDQQorxJBBS09OT1ZJxIYgU1RFVkFOCivEkEFLT1YgTEpJTEpBTkEKK8SQQUtPViBNSUhBSkxPCivEkEFLT1YgTUlMQU4KK8SQQUtPVknEhiDFvUlWS0EKK8SQQUtPVknEhiDEkE9SxJBFIERSCivEkEFLT1ZJxIYgxJBPUsSQRQorxJBBS09WScSGIMSQT1LEkEUKK8SQQUtPVknEhiDEkFVSQQorxJBBS09WScSGIMSQVVJPCivEkEFLT1ZJxIYgxJBVUk8KK8SQQUtPVknEhiBBTktBCivEkEFLT1ZJxIYgREFSQQorxJBBS09WScSGIERSQUdBTgorxJBBS09WScSGIERSQUdBTgorxJBBS09WScSGIERSQUdPTEpVQiBEUgorxJBBS09WScSGIERSQUdPTEpVQgorxJBBS09WScSGIERVxaBBTgorxJBBS09WScSGIElMRQorxJBBS09WScSGIElMSUpBCivEkEFLT1ZJxIYgSk9LQQorxJBBS09WScSGIEpPVkFOS0EKK8SQQUtPVknEhiBKT1ZBTgorxJBBS09WScSGIEpPVklDQQorxJBBS09WScSGIEpPVk8KK8SQQUtPVknEhiBMSlVCT01JUiBEUiBJTkcKK8SQQUtPVknEhiBMSlVCT01JUgorxJBBS09WScSGIE1BUklKQQorxJBBS09WScSGIE1JTEFOCivEkEFLT1ZJxIYgTUlMQU4KK8SQQUtPVknEhiBNSUxBTgorxJBBS09WScSGIE1JTEtBCivEkEFLT1ZJxIYgTUlSSkFOQQorxJBBS09WScSGIE1JUkpBTkEKK8SQQUtPVknEhiBORcSQTworxJBBS09WScSGIE5FREVMSktPCivEkEFLT1ZJxIYgTklLT0xBCivEkEFLT1ZJxIYgT1NUT0pBCivEkEFLT1ZJxIYgUEVSU0lEQQorxJBBS09WScSGIFBFVEFSCivEkEFLT1ZJxIYgUFJFRFJBRworxJBBS09WScSGIFBSRURSQUcKK8SQQUtPVknEhiBSQURPTUlSCivEkEFLT1ZJxIYgUkFET1NBVgorxJBBS09WScSGIFJBTktPCivEkEFLT1ZJxIYgU0FWQQorxJBBS09WScSGIFNMQVZJQ0EKK8SQQUtPVknEhiBTTEFWT0xKVUIKK8SQQUtPVknEhiBTTE9CT0RBTgorxJBBS09WScSGIFNURVZBTgorxJBBS09WScSGIFNURVZBTgorxJBBS09WScSGIFNUT0pBTgorxJBBS09WScSGIFRBVEpBTkEKK8SQQUtPVknEhiBWQVNPCivEkEFLT1ZJxIYgVkxBRElNSVIKK8SQQUtPVknEhiBWT0pPCivEkEFLT1ZJxIYgVlVLT1NBVkEKK8SQQUtPVknEhiBaT1JBTgorxJBBTEFJIExBSk/FoAorxJBBTElOQUMgR09SREFOQQorxJBBTElOQUMgUkFESVZPSgorxJBBTE8gTUlSS08KK8SQQUxPVknEhiBSQURPU0xBVgorxJBBTFXFoCBTVEVWQU4KK8SQQU4gSk9WQU4KK8SQQU5JxaAgTEFaQVIKK8SQQU5JxaAgT0xJVkVSQQorxJBBTknEhiBNQVRPCivEkEFOS09WScSGIE1JTE/FoAorxJBBTlRBUiBBTsSQRUxJSkEKK8SQQU5UQVIgSk/FvUVGCivEkEFQQSBBTEVLU0FOREFSCivEkEFQQSBEVcWgQU4KK8SQQVBBIE1BUktPCivEkEFQQSBQRVRBUgorxJBBUEnEhiBEQVZJRAorxJBBUEnEhiBLUlNUQQorxJBBUEnEhiBNSUxFU0EKK8SQQVBJxIYgTUlMRVNBCivEkEFQScSGLU1JTEnEhiBUQVRKQU5BIExFS0FSCivEkEFQScSGIFBBVkxFCivEkEFSTUFUSSBGUkFOSkEKK8SQQVJNQVRJIEdJWkVMQQorxJBBUk1BVEkgSUxPTkEKK8SQQVJNQVRJIEpVTElPCivEkEFSTUFUSSBMQVNMTworxJBBUk1BVEkgTUlIQUpMTworxJBBUk1BVEkgU05Fxb1BTkEKK8SQQVRLT1YgUkFEQQorxJBFQk5BUiBPQlJBRAorxJBFS0VSIFJPWkFMSUpBCivEkEVLScSGIMW9SVZPSklOCivEkEVLScSGIEtBVElDQQorxJBFS0nEhiBNSUxBTgorxJBFS0nEhiBNSUxFTkEKK8SQRUtJxIYgTUlMT01JUgorxJBFS0nEhiBOQURBCivEkEVLScSGIE5FREVMSktPCivEkEVLScSGIFBBVkxFCivEkEVLScSGIFJBREUKK8SQRUtJxIYgUkFETUlMQQorxJBFS0nEhiBTVEFOQQorxJBFS0nEhiBTVE9KQU5LQQorxJBFTEnEhiBVUk/FoAorxJBFTUJFUiBJxaBUVkFOCivEkEVNUk9WU0tJIFRPTUHFoAorxJBFTVJPVlNLSSBWTEFUS08KK8SQRU1ST1ZTS0kgWkRFTktPCivEkEVOQURJxIYgRFJBR0nFoEEKK8SQRU5BRElKQSBQRVRBUgorxJBFTkRJxIYgSk9WQU4gRElQTCBJTkcKK8SQRU5EScSGIExBWkFSCivEkEVORcWgIFBFVEFSCivEkEVOR0UgQU5EUkHFoAorxJBFTkdFIEFORFJJSkEKK8SQRU5HRSBQRVRFUgorxJBFTknEhiBKRUxFTkEKK8SQRU5JxIYgU0xPQk9EQU4KK8SQRU5JxIYgU0xPQk9EQU4KK8SQRU5JxIYgWk9SSUNBCivEkEVOSVNJxIYgU1RBTklNSVIKK8SQRVLEkCDEkFVSQQorxJBFUsSQIEFOVFVOCivEkEVSxJAgSUdPUgorxJBFUsSQIEpPU0lQCivEkEVSxJAgS0FUQVJJTkEKK8SQRVLEkCBMSlVCSUNBCivEkEVSxJAgUEVUQVIKK8SQRVLEkCBWSUxNT8WgCivEkEVSRSBLT1JORUwKK8SQRVJFIFpPTFRBTgorxJBFUkZJIEFMRUtTQU5EQVIKK8SQRVJJIMWgQU5ET1IKK8SQRVJJIEVORFJFCivEkEVSSSBFUsW9RUJFVAorxJBFUkkgR0VaQQorxJBFUkkgS0FST0xKCivEkEVSSSBMQURJU0xBVgorxJBFUkkgTEFTTE8KK8SQRVJJIFNBQk9MxIwKK8SQRVJJIFNBTE9NRQorxJBFUknEhiDFvUlWQU4KK8SQRVJJxIYgxJBPUsSQRQorxJBFUknEhiDEkFVSQQorxJBFUknEhiBCUkFOS08KK8SQRVJJxIYgREFOSUNBCivEkEVSScSGIERFU0FOS0EKK8SQRVJJxIYgRElNSVRSSUpFCivEkEVSScSGIERPQlJJTktPCivEkEVSScSGIERSQUdBTgorxJBFUknEhiBGRUxJS1MKK8SQRVJJxIYgSkFST1NMQVYKK8SQRVJJxIYgSk9WQU4KK8SQRVJJxIYgSk9WQU4KK8SQRVJJxIYgSlVMS0EKK8SQRVJJxIYgTUlDQQorxJBFUknEhiBNSUhBSkxPCivEkEVSScSGIE1JTEFOCivEkEVSScSGIE1JTEVOS08KK8SQRVJJxIYgTUlMRQorxJBFUknEhiBNSUxJVk9KRQorxJBFUknEhiBNSUxPxaAKK8SQRVJJxIYgTUlPRFJBRworxJBFUknEhiBNSVJKQU5BCivEkEVSScSGIE5BREEKK8SQRVJJxIYgT0xHQQorxJBFUknEhiBPTElWRVJBCivEkEVSScSGIFBFVEFSCivEkEVSScSGIFJBREUKK8SQRVJJxIYgUkFESVZPSgorxJBFUknEhiBSQURPTUlSCivEkEVSScSGIFJBRE9TTEFWCivEkEVSScSGIFJBRE9WQU4KK8SQRVJJxIYgU0xBVktPCivEkEVSScSGIFNUQU5JU0xBVgorxJBFUknEhiBWRUxKS08KK8SQRVJJxIYgVk9KSU4KK8SQRVJLSSBWRVJBCivEkEVSS09WScSGIE1JUsSMRVRBCivEkEVSS09WScSGIFJBRE9KS0EKK8SQRVJLT1ZJxIYgVkxBREVUQQorxJBFUk1BTiDFvUlWS08KK8SQRVJNQU4gTkVERUxKS08KK8SQRVJNQU5PViBJVkFOCivEkEVSTUFOT1YgTEpVQk9NSVIKK8SQRVJNQU5PViBNSUxBTgorxJBFUk1BTk9WIE1JTEVOQQorxJBFUk1BTk9WIE5BREXFvURBCivEkEVSTUFOT1YgT0xHQQorxJBFUk1BTk9WIFBFVEFSCivEkEVSTUFOT1YgVE9ET1IKK8SQRVJNQU5PViBWTEFEQQorxJBFUk1BTk9WScSGIEpFTElDQQorxJBFUk1BTk9WScSGIE1BUklKQQorxJBFUk1BTk9WScSGIE1JTE9EQU5LQQorxJBFUk1BTk9WScSGIFNMQVZLTworxJBFUk1BTk9WScSGIFNUQU5LTworxJBFUk1BVEkgSVJFTkEKK8SQRVRLQSBKQU5PCivEkEVUS0EgTUlIQUwKK8SQRVRLQSBNSUhBTAorxJBFVEtBIE1JUktPCivEkEVUVkFJIEFORFJBxaAgRElQTCBJTkcKK8SQRVRWQUkgQU5EUkHFoAorxJBFVFZBSSBBTklDQQorxJBFVFZBSSBGRVJFTkMKK8SQRVRWQUkgSU1SRQorxJBFVFZBSSBMQUpPxaAKK8SQRVZFS0kgSk9WQU4KK8SQSURJxIYgTUFSSUpBCivEkElEScSGIE1BUklOS08KK8SQSUtJxIYgU1RPSkFOCivEkElLScSGIFZJS1RPUklKQQorxJBJTEFTIEJPUk8KK8SQSUxBUyBEUkFHQU4KK8SQSUxBUyBEVcWgQU4KK8SQSUxBUyBHUk9aREFOQQorxJBJTEFTIE1BUklOS08KK8SQSUxBUyBNSUxPUkFECivEkElMQVMgTUlMT1JBRAorxJBJTEFTIE1JTE9SQUQKK8SQSUxBUyBOSUtPTEEKK8SQSUxBUyBTVEVWQU4KK8SQSUxWRVNJIMWgQU5ET1IKK8SQSUxWRVNJIEtBUkxPCivEkElOIMSQVVJBCivEkElOIEpVTElKQU5BCivEkElOxJBJxIYgTUlMT0pLTworxJBJTknEhiBJVklDQQorxJBJTknEhiBOSUtPTEEKK8SQSU5JxIYgU0xBVktBCivEkElOScSGIFNPRklKQQorxJBJTknEhiBWTEFERVRBCivEkElOScSGIFpPUkFOCivEkElOSkEgQU5EUkVKCivEkElOT1ZJxIYgQ1ZFVEtPCivEkElOT1ZJxIYgSVZLTworxJBJTk9WScSGIEtPTEUKK8SQSVBBTE8gxJBVUk8KK8SQSVBBTE8gR09KS08KK8SQSVBBTE8gTUlMQU4KK8SQSVBBTE8gTUlSS08KK8SQSVBBTE8gTUlST1NMQVYKK8SQSVBBTE8gUkFERQorxJBJUEFOT1YgSURBCivEkElQQU5PViBOSUtPTEEKK8SQSVBBTk9WIFJFTEpBCivEkElQQU5PViBTVkVUT1pBUgorxJBJUknFoEkgScWgVFZBTgorxJBJUkxJxIYgU1RFVkFOCivEkElTQUxPViBCUkFOSVNMQVYKK8SQSVNBTE9WIEpFTEVOQQorxJBJU0FMT1YgSkVMRU5BCivEkElTQUxPViBMQVpBUgorxJBJU0FMT1YgTEpVQklOS0EKK8SQSVNBTE9WIE1JTEFOCivEkElTQUxPViBNSUxBTgorxJBJU0FMT1YgTUlMSVZPSgorxJBJU0FMT1YgTUlMSVZPSgorxJBJU0FMT1YgTUlPRFJBRworxJBJU0FMT1YgTUlPRFJBRworxJBJU0FMT1YgTkFEQQorxJBJU0FMT1YgU09OSkEKK8SQSVNBTE9WScSGIEtBVElDQQorxJBJVEtPViBKT1ZBTgorxJBJVEtPViBTT0ZJSkEKK8SQSkFLIMW9SVZLTworxJBPxJBJxIYgTUlMT1JBRAorxJBPR08gTUlMT1ZBTgorxJBPR08gTUlSSkFOQQorxJBPR08gUlXFvUlDQQorxJBPR08gWk9SQU4KK8SQT0dPVknEhiBNSUxPUkFECivEkE9HT1ZJxIYgUkFESVZPSktBCivEkE9LScSGIEFMRUtTQU5EQVIKK8SQT0tJxIYgQk/FoEtPCivEkE9LScSGIEJPUklWT0pFCivEkE9LScSGIEJSQVRJU0xBVgorxJBPS0nEhiBDVkVUS08KK8SQT0tJxIYgREFSSU5LQQorxJBPS0nEhiBEUkFHQU4KK8SQT0tJxIYgRFJBR0nFoEEKK8SQT0tJxIYgRFJBR09MSlVCCivEkE9LScSGIERSQUdPCivEkE9LScSGIEdPUkFOCivEkE9LScSGIElWQU4KK8SQT0tJxIYgSkVMSVNBVkEKK8SQT0tJxIYgSk9SREFOCivEkE9LScSGIExKVUJJTktPCivEkE9LScSGIExKVUJPCivEkE9LScSGIExVS0EKK8SQT0tJxIYgTUFSSU5LTworxJBPS0nEhiBNQVRJTERBCivEkE9LScSGIE1JSEFKTE8KK8SQT0tJxIYgTUlMQU4KK8SQT0tJxIYgTUlMQU4KK8SQT0tJxIYgTUlMSVNBVgorxJBPS0nEhiBNSUxJVk9KRQorxJBPS0nEhiBNSUxPVkFOCivEkE9LScSGIE1JTFVUSU4KK8SQT0tJxIYgUEFOVEVMSUpBCivEkE9LScSGIFBFVEFSCivEkE9LScSGIFJBRElTQVYKK8SQT0tJxIYgUkFET1ZBTgorxJBPS0nEhiBSQVRLTworxJBPS0nEhiBSVcW9QQorxJBPS0nEhiBTTE9CT0RBTktBCivEkE9LScSGIFNMT0JPREFOCivEkE9LScSGIFNPRklKQQorxJBPS0nEhiBTVEFOScWgQQorxJBPS0nEhiBTVkVUSVNMQVYKK8SQT0tJxIYgVkVSQQorxJBPS0nEhiBWTEFESVNMQVYKK8SQT0tJxIYgVk9KSVNMQVYKK8SQT0tJxIYgVlVKQURJTgorxJBPS0nEhiBWVUtBRElOCivEkE9LScSGIFpPUkFOCivEkE9LT1ZJxIYgRFJBR09NSVIKK8SQT0tPVknEhiBNQVJLTworxJBPS09WScSGIE1JTEFOCivEkE9LT1ZJxIYgTUlMT1ZBTgorxJBPS09WScSGIFBFVEFSCivEkE9LT1ZJxIYgUkFET01JUgorxJBPS09WScSGIFJBRE9WQU4KK8SQT0tPVknEhiBTVE9KQU4KK8SQT0tWVcSMScSGIE5BREEKK8SQT0xBSSBJTVJFCivEkE9MQUkgTUFUSUxEQQorxJBPTEpFVknEhiDEkE9LQQorxJBPTE9WScSGIMSMRURPTUlSCivEkE9NUEFSScSGIERVxaBBTgorxJBPTVBBUknEhiBJTElKQQorxJBPTVBBUknEhiBNRUxBTklKQQorxJBPTVBBUknEhiBOSUtPTEEKK8SQT01QQVJJxIYgTklLT0xBCivEkE9NUEFSScSGIE5JS09MQQorxJBPTVBBUknEhiBWTEFESVNMQVZBCivEkE9OT1ZJxIYgxJBPUsSQSUpFCivEkE9OT1ZJxIYgS0FST0xJTkEKK8SQT05PVknEhiBaQVJJSkEKK8SQT1LEkEVWScSGIMSMRURPTUlSCivEkE9SxJBFVknEhiDFvUlWS08KK8SQT1LEkEVWScSGIMW9SVZPSklOCivEkE9SxJBFVknEhiDFvUlWT0pJTgorxJBPUsSQRVZJxIYgxb1JVk9KSU4KK8SQT1LEkEVWScSGIMW9SVZPUkFECivEkE9SxJBFVknEhiDFvUlWT1JBRAorxJBPUsSQRVZJxIYgxb1JVk9UQQorxJBPUsSQRVZJxIYgxJBPS0EKK8SQT1LEkEVWScSGIMSQT1LEkEUKK8SQT1LEkEVWScSGIMSQT1LEkEUKK8SQT1LEkEVWScSGIMSQVVJBCivEkE9SxJBFVknEhiBBQ0EKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EQVIKK8SQT1LEkEVWScSGIEFMRUtTQU5EUkEKK8SQT1LEkEVWScSGIEJPR0RBTgorxJBPUsSQRVZJxIYgQk9SQQorxJBPUsSQRVZJxIYgQk9SSVNBVgorxJBPUsSQRVZJxIYgQk9SSVZPSkUKK8SQT1LEkEVWScSGIEJSQU5JTUlSCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOS08KK8SQT1LEkEVWScSGIEJVRElNSVIKK8SQT1LEkEVWScSGIEJVRElNSVIKK8SQT1LEkEVWScSGIERBUktPCivEkE9SxJBFVknEhiBERVNBTktBCivEkE9SxJBFVknEhiBERVNQT1QKK8SQT1LEkEVWScSGIERJTUlUUklKRQorxJBPUsSQRVZJxIYgRE9CUklWT0pFCivEkE9SxJBFVknEhiBEUkHFvUEKK8SQT1LEkEVWScSGIERSQUdBTkEKK8SQT1LEkEVWScSGIERSQUdBTgorxJBPUsSQRVZJxIYgRFJBR0FOCivEkE9SxJBFVknEhiBEUkFHQU4KK8SQT1LEkEVWScSGIERSQUdBTgorxJBPUsSQRVZJxIYgRFJBR0FOCivEkE9SxJBFVknEhiBEUkFHQQorxJBPUsSQRVZJxIYgRFJBR0nFoEEKK8SQT1LEkEVWScSGIERSQUdJxaBBCivEkE9SxJBFVknEhiBEUkFHScWgQQorxJBPUsSQRVZJxIYgRFJBR09MSlVCIERSCivEkE9SxJBFVknEhiBEUkFHT0xKVUIKK8SQT1LEkEVWScSGIERSQUdPTEpVQgorxJBPUsSQRVZJxIYgRFJBR09MSlVCCivEkE9SxJBFVknEhiBEUkFHT0xKVUIKK8SQT1LEkEVWScSGIERSQUdPU0xBVgorxJBPUsSQRVZJxIYgRFJBR1VUSU4KK8SQT1LEkEVWScSGIERVxaBBTktBCivEkE9SxJBFVknEhiBEVcWgQU4KK8SQT1LEkEVWScSGIERVxaBBTgorxJBPUsSQRVZJxIYgRFXFoEFOCivEkE9SxJBFVknEhiBEVcWgQU4KK8SQT1LEkEVWScSGIEVSTkVTVAorxJBPUsSQRVZJxIYgRVZJQ0EKK8SQT1LEkEVWScSGIEZBVElNQQorxJBPUsSQRVZJxIYgR0laRUxBCivEkE9SxJBFVknEhiBHT1JBCivEkE9SxJBFVknEhiBHT1JEQU5BCivEkE9SxJBFVknEhiBHUkFESU1JUgorxJBPUsSQRVZJxIYgR1JBRElNSVIKK8SQT1LEkEVWScSGIEhSQU5JU0xBVgorxJBPUsSQRVZJxIYgSUxJTktBCivEkE9SxJBFVknEhiBJTE9OQQorxJBPUsSQRVZJxIYgSVZBTkEKK8SQT1LEkEVWScSGIElWQU4KK8SQT1LEkEVWScSGIEpBR09EQQorxJBPUsSQRVZJxIYgSkVMRU5BCivEkE9SxJBFVknEhiBKRUxFTkEKK8SQT1LEkEVWScSGIEpFTEVOQQorxJBPUsSQRVZJxIYgSk9WQU4KK8SQT1LEkEVWScSGIEpPVkFOCivEkE9SxJBFVknEhiBKT1ZBTgorxJBPUsSQRVZJxIYgSk9WQU4KK8SQT1LEkEVWScSGIEpPVkFOCivEkE9SxJBFVknEhiBKT1ZJQ0EKK8SQT1LEkEVWScSGIEpVTEtJQ0EKK8SQT1LEkEVWScSGIEpVTEtJQ0EKK8SQT1LEkEVWScSGIEtBVEFSSU5BCivEkE9SxJBFVknEhiBLT05TVEFORElOQQorxJBPUsSQRVZJxIYgS09TVEEKK8SQT1LEkEVWScSGIExBWkFSCivEkE9SxJBFVknEhiBMQVpBUgorxJBPUsSQRVZJxIYgTEpJTEpBTkEKK8SQT1LEkEVWScSGIExKVUJBIERJUEwgSU5HCivEkE9SxJBFVknEhiBMSlVCScWgQQorxJBPUsSQRVZJxIYgTEpVQknFoEEKK8SQT1LEkEVWScSGIExKVUJJQ0EKK8SQT1LEkEVWScSGIExKVUJJQ0EKK8SQT1LEkEVWScSGIExKVUJJQ0EKK8SQT1LEkEVWScSGIExKVUJJTktBCivEkE9SxJBFVknEhiBMSlVCSVNBVgorxJBPUsSQRVZJxIYgTEpVQk9NSVIKK8SQT1LEkEVWScSGIExKVUJPTUlSCivEkE9SxJBFVknEhiBNQVJJSkEKK8SQT1LEkEVWScSGIE1BUklKQQorxJBPUsSQRVZJxIYgTUlMQU5LQQorxJBPUsSQRVZJxIYgTUlMQU5LQQorxJBPUsSQRVZJxIYgTUlMQU4KK8SQT1LEkEVWScSGIE1JTEFOCivEkE9SxJBFVknEhiBNSUxFTkEKK8SQT1LEkEVWScSGIE1JTEVOS08KK8SQT1LEkEVWScSGIE1JTEVOS08KK8SQT1LEkEVWScSGIE1JTElKQQorxJBPUsSQRVZJxIYgTUlMT8WgIERSCivEkE9SxJBFVknEhiBNSUxPxaAKK8SQT1LEkEVWScSGIE1JTE9SQUQKK8SQT1LEkEVWScSGIE1JTE9SQUQKK8SQT1LEkEVWScSGIE1JTE9TQVYKK8SQT1LEkEVWScSGIE1JTE9WQU4KK8SQT1LEkEVWScSGIE1JTE9WQU4KK8SQT1LEkEVWScSGIE1JTFVUSU4KK8SQT1LEkEVWScSGIE1JT0RSQUcKK8SQT1LEkEVWScSGIE1JT0RSQUcKK8SQT1LEkEVWScSGIE1JT0RSQUcKK8SQT1LEkEVWScSGIE1JUkpBTkEKK8SQT1LEkEVWScSGIE1JUkpBTkEKK8SQT1LEkEVWScSGIE1JUktPCivEkE9SxJBFVknEhiBNSVJLTworxJBPUsSQRVZJxIYgTUlST1NMQVYKK8SQT1LEkEVWScSGIE1JUk9TTEFWCivEkE9SxJBFVknEhiBNSVJPU0xBVgorxJBPUsSQRVZJxIYgTUxBREVOCivEkE9SxJBFVknEhiBOQURBCivEkE9SxJBFVknEhiBOQURBCivEkE9SxJBFVknEhiBORURFTEpLTyBEUgorxJBPUsSQRVZJxIYgTkVWRU5LQQorxJBPUsSQRVZJxIYgTklLT0xBCivEkE9SxJBFVknEhiBQQUpBCivEkE9SxJBFVknEhiBQQU5UQQorxJBPUsSQRVZJxIYgUEFWTEUKK8SQT1LEkEVWScSGIFBBVkxFCivEkE9SxJBFVknEhiBQQVZMRQorxJBPUsSQRVZJxIYgUEVUQVIKK8SQT1LEkEVWScSGIFJBRE9NSVIKK8SQT1LEkEVWScSGIFJBRE9NSVIKK8SQT1LEkEVWScSGIFJBRE9TTEFWCivEkE9SxJBFVknEhiBSQURPU0xBVgorxJBPUsSQRVZJxIYgUkFET1NMQVYKK8SQT1LEkEVWScSGIFJBSktBCivEkE9SxJBFVknEhiBSQU7EkEVMCivEkE9SxJBFVknEhiBTQcWgQQorxJBPUsSQRVZJxIYgU0FWQQorxJBPUsSQRVZJxIYgU0lOScWgQQorxJBPUsSQRVZJxIYgU0xBxJBBTkEKK8SQT1LEkEVWScSGIFNMQVZLTworxJBPUsSQRVZJxIYgU0xBVktPCivEkE9SxJBFVknEhiBTTEFWS08KK8SQT1LEkEVWScSGIFNMT0JPREFOCivEkE9SxJBFVknEhiBTTE9CT0RBTgorxJBPUsSQRVZJxIYgU0xPQk9EQU4KK8SQT1LEkEVWScSGIFNMT0JPREFOCivEkE9SxJBFVknEhiBTTkXFvUFOQQorxJBPUsSQRVZJxIYgU09GSUpBCivEkE9SxJBFVknEhiBTT0ZJSkEKK8SQT1LEkEVWScSGIFNSxJBBTgorxJBPUsSQRVZJxIYgU1LEkEFOCivEkE9SxJBFVknEhiBTUkVURU4KK8SQT1LEkEVWScSGIFNUQU5BCivEkE9SxJBFVknEhiBTVEFOSVNMQVYKK8SQT1LEkEVWScSGIFNUQU5LQQorxJBPUsSQRVZJxIYgU1RFVkFOQQorxJBPUsSQRVZJxIYgU1RFVkFOCivEkE9SxJBFVknEhiBTVEVWQU4KK8SQT1LEkEVWScSGIFNWRVRJU0xBVgorxJBPUsSQRVZJxIYgU1ZFVElTTEFWCivEkE9SxJBFVknEhiBTVkVUT1pBUgorxJBPUsSQRVZJxIYgVElPU0FWCivEkE9SxJBFVknEhiBUT01JU0xBVgorxJBPUsSQRVZJxIYgVE9NSVNMQVYKK8SQT1LEkEVWScSGIFZFTElTQVYKK8SQT1LEkEVWScSGIFZFTElaQVIKK8SQT1LEkEVWScSGIFZFUkEKK8SQT1LEkEVWScSGIFZFUkEKK8SQT1LEkEVWScSGIFZJRE9TQVZBCivEkE9SxJBFVknEhiBWTEFESU1JUgorxJBPUsSQRVZJxIYgVkxBSktPCivEkE9SxJBFVknEhiBWTEFTVElNSVIKK8SQT1LEkEVWScSGIFZMQVNUSU1JUgorxJBPUsSQRVZJxIYgVk9KSU4KK8SQT1LEkEVWScSGIFZVxIxLTworxJBPUsSQRVZJxIYgWk9SQU4KK8SQT1LEkEVWScSGIFpPUkFOCivEkE9SxJBFVknEhiBaT1JBTgorxJBPUsSQRVZJxIYgWk9SQU4KK8SQT1LEkEnEhiBCUkFOS08KK8SQT1LEkEnEhiBNQVJLTworxJBPUsSQScSGIE1JTEFOCivEkE9SxJBJSkVWU0tJIERSQUdBTgorxJBPUsSQSUpFVlNLSSBEVcWgQU4KK8SQT1LEkElKRVZTS0kgWk9SQU4KK8SQT1LEkElOIEZFTUtBCivEkE9SxJBJTiBSQURFCivEkE9SxJBJTiBTQVZBCivEkE9SxJBJT1NLSSBLSVJPCivEkE9SRVZTS0kgR09SQU4KK8SQT1JHSUVWQSBKRUxJQ0EKK8SQT1JJxIYgQU5UT05JSkUKK8SQT1JJxIYgR09SREFOQQorxJBPUknEhiBMSlVCSVNBVgorxJBPUknEhiBNSUxJVk9KRQorxJBPUknEhiBNSU9EUkFHCivEkE9SScSGIFZFUklDQQorxJBPUk9KRVZJxIYgVlVLT1RBCivEkE9URVZBIFRSQUpBTktBCivEkE9UVU5PVknEhiBBTsSQRUxJSkEKK8SQT1pJxIYgxaBVS1JJSkEKK8SQVcSQQVIgTUVMQU5JSkEKK8SQVcSQQVIgVkxBREEKK8SQVcSQQVIgVkxBRElNSVIKK8SQVcSQQVIgWlZPTklNSVIKK8SQVcSQScSGIERSQUdBTgorxJBVRFVST1ZJxIYgRFXFoEFOCivEkFVHQSBQQVZFTAorxJBVS0FOT1YgQk9SSVZPSgorxJBVS0FOT1YgRU1JTElKQU4KK8SQVUtBTk9WIE1JTEFOCivEkFVLQU5PViBOQURBCivEkFVLQU5PViBTTE9CT0RBTgorxJBVS0FOT1ZJxIYgQUxFS1NBTkRBUgorxJBVS0FOT1ZJxIYgQlJBTktPCivEkFVLQU5PVknEhiBJVk8KK8SQVUtBTk9WScSGIExKVUJJQ0EKK8SQVUtBTk9WScSGIE1BUkEKK8SQVUtBTk9WScSGIE1JTEFOCivEkFVLQU5PVknEhiBNSVJPTEpVQgorxJBVS0FOT1ZJxIYgTkFEQQorxJBVS0FOT1ZJxIYgTkFEQQorxJBVS0FOT1ZJxIYgUFVOScWgQQorxJBVS0FOT1ZJxIYgU1JFVEVOCivEkFVLQU5PVknEhiBTVEFLQQorxJBVS0FOT1ZJxIYgVkxBRElNSVIKK8SQVUtBTk9WScSGIFpPUkEKK8SQVUtJxIxJTiBKT1ZBTktBCivEkFVLScSMSU4gTUFSSUpBCivEkFVLScSMSU4gU1JFRE9KRQorxJBVS0nEjElOIFNSRURPSkUKK8SQVUtJxIYtxaBBQknEhiBHT1JEQU5BCivEkFVLScSGIMW9QVJLQQorxJBVS0nEhiDFvUFSS08KK8SQVUtJxIYgxb1FTEpLTworxJBVS0nEhiDFvUlWT1RBCivEkFVLScSGIMSQT1LEkEUKK8SQVUtJxIYgxJBPUsSQRQorxJBVS0nEhiDEkE9SxJBFCivEkFVLScSGIMSQT1LEkEUKK8SQVUtJxIYgxJBVUjAKK8SQVUtJxIYgxJBVUkEKK8SQVUtJxIYgxJBVUk8KK8SQVUtJxIYgQUdOSUNBCivEkFVLScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK8SQVUtJxIYgQU5BCivEkFVLScSGIEFOQQorxJBVS0nEhiBBTkRSSUpBCivEkFVLScSGIEFOSUNBCivEkFVLScSGIEJJTEpBTkEKK8SQVUtJxIYgQk9SSVNMQVYKK8SQVUtJxIYgQlJBTklTTEFWCivEkFVLScSGIEJSQU5JU0xBVgorxJBVS0nEhiBCUkFOS08KK8SQVUtJxIYgREFOSUNBIERSCivEkFVLScSGIERBTklMTworxJBVS0nEhiBESUpBTkEKK8SQVUtJxIYgRElNSVRSSUpFCivEkFVLScSGIERPQlJJTEEKK8SQVUtJxIYgRE9CUklWT0oKK8SQVUtJxIYgRFJBR0FOCivEkFVLScSGIERSQUdBTgorxJBVS0nEhiBEUkFHT0pMTworxJBVS0nEhiBEUkFHT01JUgorxJBVS0nEhiBEVcWgQU4KK8SQVUtJxIYgRFXFoEFOCivEkFVLScSGIERVxaBBTgorxJBVS0nEhiBEVcWgQU4KK8SQVUtJxIYgRFXFoEFOCivEkFVLScSGIEdFTkEKK8SQVUtJxIYgR0VOTworxJBVS0nEhiBHSVpFTEEKK8SQVUtJxIYgR09SREFOQQorxJBVS0nEhiBJTElKQQorxJBVS0nEhiBJTElKQQorxJBVS0nEhiBJVkFOIERJUEwgSU5HCivEkFVLScSGIElWQU5LQQorxJBVS0nEhiBKQcWgQQorxJBVS0nEhiBKRUxFTkEKK8SQVUtJxIYgSk9WQU4KK8SQVUtJxIYgSk9WSUNBCivEkFVLScSGIEpVTEtBCivEkFVLScSGIExFTworxJBVS0nEhiBMSklMSkFOQQorxJBVS0nEhiBMSlVCSUNBCivEkFVLScSGIExKVUJPTUlSCivEkFVLScSGIExKVUJPTUlSCivEkFVLScSGIE1BS1NJTQorxJBVS0nEhiBNQVJBCivEkFVLScSGIE1BUklKQQorxJBVS0nEhiBNQVJJTkEKK8SQVUtJxIYgTUlKT0RSQUcKK8SQVUtJxIYgTUlMQU5LQQorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxBTgorxJBVS0nEhiBNSUxFTktPCivEkFVLScSGIE1JTEVWQQorxJBVS0nEhiBNSUxFCivEkFVLScSGIE1JTEUKK8SQVUtJxIYgTUlMSUNBCivEkFVLScSGIE1JTElDQQorxJBVS0nEhiBNSUxKS08KK8SQVUtJxIYgTUlMS0EKK8SQVUtJxIYgTUlMT8WgCivEkFVLScSGIE1JTE/FoAorxJBVS0nEhiBNSUxPUkFECivEkFVLScSGIE1JTE9WQU4KK8SQVUtJxIYgTUlSS08KK8SQVUtJxIYgTUlSS08KK8SQVUtJxIYgTUlSS08KK8SQVUtJxIYgTUlSS08KK8SQVUtJxIYgTUlSS08KK8SQVUtJxIYgTkXEkE8KK8SQVUtJxIYgTkVERUxKS08KK8SQVUtJxIYgTklLT0xBCivEkFVLScSGIE5JS09MQQorxJBVS0nEhiBOT1ZBSworxJBVS0nEhiBOT1ZBSworxJBVS0nEhiBOT1ZBSworxJBVS0nEhiBPU1RPSkEKK8SQVUtJxIYgUEFORQorxJBVS0nEhiBQQVZMRQorxJBVS0nEhiBQRVJJxaBBCivEkFVLScSGIFBFVEFSCivEkFVLScSGIFBFVEFSCivEkFVLScSGIFJBREUKK8SQVUtJxIYgUkFESVZPSgorxJBVS0nEhiBSQURPSklDQQorxJBVS0nEhiBSQURPVkFOCivEkFVLScSGIFJBSktPCivEkFVLScSGIFJPU0EKK8SQVUtJxIYgUlXFvUlDQSBMT0tBTAorxJBVS0nEhiBTQVZBCivEkFVLScSGIFNBVktBCivEkFVLScSGIFNBVk8gRFIKK8SQVUtJxIYgU0xBVklDQQorxJBVS0nEhiBTTEFWS08KK8SQVUtJxIYgU0xBVk9MSlVCCivEkFVLScSGIFNMT0JPREFOCivEkFVLScSGIFNSxJBBTgorxJBVS0nEhiBTUkJPTEpVQgorxJBVS0nEhiBTVEFOQQorxJBVS0nEhiBTVEFOS08KK8SQVUtJxIYgU1RBTktPCivEkFVLScSGIFNURVZBTgorxJBVS0nEhiBTVE9KQU5LQQorxJBVS0nEhiBTVE9KQU4KK8SQVUtJxIYgU1ZFVExBTkEKK8SQVUtJxIYgU1ZFVExBTkEKK8SQVUtJxIYgVE9NSVNMQVYKK8SQVUtJxIYgVE9NSVNMQVYKK8SQVUtJxIYgVkFMRVJJSkEKK8SQVUtJxIYgVkVMRU1JUgorxJBVS0nEhiBWRVJJQ0EKK8SQVUtJxIYgVkVST05JS0EKK8SQVUtJxIYgVklEQUsKK8SQVUtJxIYgVklEQQorxJBVS0nEhiBWTEFESU1JUgorxJBVS0nEhiBWTEFESU1JUgorxJBVS0nEhiBWTEFESU1JUgorxJBVS0nEhiBWTEFKS08KK8SQVUtJxIYgVk9KSU4KK8SQVUtJxIYgVk9KSVNMQVYKK8SQVUtJxIYgVlVLQU4KK8SQVUtJxIYgWk9SQU4KK8SQVUtJTiBEVcWgQU4KK8SQVUtJTiBTVEVWQU4KK8SQVUtOScSGIFNSRVRFTgorxJBVTEEgS0FSTE8KK8SQVUxJTkFDIEpFTElDQQorxJBVTElOQUMgVkVTRUxJTgorxJBVTElaSUJBUknEhi1PUkXFoEtPVknEhiBEQU5JQ0EKK8SQVUxWRVpBTiBLT1NBCivEkFVMVkVaQU4gTUlMT8WgCivEkFVMVkVaQU4gUk9aQUxJSkEKK8SQVU1JxIYgQk9HREFOCivEkFVNScSGIERVxaBBTgorxJBVTUnEhiBHT1NQQVZBCivEkFVNScSGIElMSUpBCivEkFVNScSGIE1BUklKQQorxJBVTUnEhiBNSUxFTktPCivEkFVNScSGIFNMQVZLTworxJBVTUnEhiBTVEFOS08KK8SQVU1JxIYgVVJPxaAKK8SQVU5EScSGIE1BUklOS08KK8SQVVLEjEVLIE1JTEVOS08KK8SQVVLEjEVWScSGIEtTRU5JSkEKK8SQVVLEjElBTlNLSSBNSVJPU0xBVgorxJBVUsSMSUFOU0tJIFBBVkxFCivEkFVSxIxJSyBKT1NJUAorxJBVUsSMSkFOU0tJIE1JUk9TTEFWCivEkFVSxIxPSyBNSUxJTkEKK8SQVVLEkEVWIMW9QVJLTworxJBVUsSQRVYgxJBPUsSQRQorxJBVUsSQRVYgQUxFS1NBTkRBUgorxJBVUsSQRVYgQUxFS1NBTkRBUgorxJBVUsSQRVYgQk/FvUlEQVIKK8SQVVLEkEVWIEJSQU5JU0xBVgorxJBVUsSQRVYgRElNSVRSSUpFCivEkFVSxJBFViBET0JSSUxBCivEkFVSxJBFViBEUkFHT0xKVUIKK8SQVVLEkEVWIERVxaBBTgorxJBVUsSQRVYgRFXFoEFOCivEkFVSxJBFViBLQcSGQQorxJBVUsSQRVYgS0FUQQorxJBVUsSQRVYgTEpVQknFoEEKK8SQVVLEkEVWIE1BUklKQQorxJBVUsSQRVYgTUFSSUpBCivEkFVSxJBFViBNSUxFVEEKK8SQVVLEkEVWIE1MQURFTgorxJBVUsSQRVYgTkFERcW9REEKK8SQVVLEkEVWIE5FVkVOS0EKK8SQVVLEkEVWIE5PVkFLCivEkFVSxJBFViBPQlJBRAorxJBVUsSQRVYgUEFWQQorxJBVUsSQRVYgUFJWT1NMQVYKK8SQVVLEkEVWIFNBVklDQQorxJBVUsSQRVYgU0xBVktPCivEkFVSxJBFViBTVEVWQU4KK8SQVVLEkEVWIFRPRE9SCivEkFVSxJBFViBWQVNBCivEkFVSxJBFViBWRVJBCivEkFVSxJBFViBaT1JLQQorxJBVUsSQRVZBQyBEUkFHT0xKVUIKK8SQVVLEkEVWScSGIMW9RUxKS08KK8SQVVLEkEVWScSGIMW9SVZBTgorxJBVUsSQRVZJxIYgxb1JVktPCivEkFVSxJBFVknEhiDFvUlWS08KK8SQVVLEkEVWScSGIMSQT1LEkEUKK8SQVVLEkEVWScSGIMSQVVLEkElDQSBESVBMIElORworxJBVUsSQRVZJxIYgQU7EkEVMS08KK8SQVVLEkEVWScSGIEJPR0RBTgorxJBVUsSQRVZJxIYgQlJBTktPCivEkFVSxJBFVknEhiBCUkFOS08KK8SQVVLEkEVWScSGIEJVRElNSVIKK8SQVVLEkEVWScSGIERSQUdVVElOCivEkFVSxJBFVknEhiBEVcWgQU4KK8SQVVLEkEVWScSGIERVxaBBTgorxJBVUsSQRVZJxIYgRFXFoElDQQorxJBVUsSQRVZJxIYgR09SREFOQQorxJBVUsSQRVZJxIYgSkFLT1YKK8SQVVLEkEVWScSGIEpFTEVOQQorxJBVUsSQRVZJxIYgSkVMRU5BCivEkFVSxJBFVknEhiBKRUxJQ0EKK8SQVVLEkEVWScSGIEpPVkFOS0EKK8SQVVLEkEVWScSGIEpPVkFOCivEkFVSxJBFVknEhiBKVUxLQQorxJBVUsSQRVZJxIYgTEFaQVIKK8SQVVLEkEVWScSGIExBWk8KK8SQVVLEkEVWScSGIExKVUJPTUlSCivEkFVSxJBFVknEhiBNQU5PSkxPCivEkFVSxJBFVknEhiBNQVJJSkEKK8SQVVLEkEVWScSGIE1JTEFOCivEkFVSxJBFVknEhiBNSUxBTgorxJBVUsSQRVZJxIYgTUlMQU4KK8SQVVLEkEVWScSGIE1JTEVOS08KK8SQVVLEkEVWScSGIE1JTElDQQorxJBVUsSQRVZJxIYgTUlMSVZPSgorxJBVUsSQRVZJxIYgTUlMT1JBRAorxJBVUsSQRVZJxIYgTUlMT1JBRAorxJBVUsSQRVZJxIYgTUlSSkFOQQorxJBVUsSQRVZJxIYgTUlSSkFOQQorxJBVUsSQRVZJxIYgTU9NxIxJTE8KK8SQVVLEkEVWScSGIE5FREVMSktPCivEkFVSxJBFVknEhiBOSUtPTEEKK8SQVVLEkEVWScSGIFJBRElOS0EKK8SQVVLEkEVWScSGIFJBTktPCivEkFVSxJBFVknEhiBTQVZBCivEkFVSxJBFVknEhiBTQVZBCivEkFVSxJBFVknEhiBTTE9CT0RBTgorxJBVUsSQRVZJxIYgU1LEkEFOIERSCivEkFVSxJBFVknEhiBTVEFOS08KK8SQVVLEkEVWScSGIFNUQU5PSktBCivEkFVSxJBFVknEhiBTVEVWQU4KK8SQVVLEkEVWScSGIFNWRVRPWkFSCivEkFVSxJBFVknEhiBUT0RPUgorxJBVUsSQRVZJxIYgVE9NSVNMQVYKK8SQVVLEkEVWScSGIFRPTUlTTEFWCivEkFVSxJBFVknEhiBWRVNFTElOCivEkFVSxJBFVknEhiBWSUQKK8SQVVLEkEVWScSGIFZMQURBCivEkFVSxJBFVknEhiBWTEFEQQorxJBVUsSQRVZJxIYgVkxBRElNSVIKK8SQVVLEkEVWScSGIFZMQURJTUlSCivEkFVSxJBFVknEhiBWTEFESVNMQVYKK8SQVVLEkEVWScSGIFpPUkFOCivEkFVSxJBFVknEhiBaT1JBTgorxJBVUsSQRVZTS0kgQk/FoEtPCivEkFVSxJBJxIYgQk/FvUlEQVIKK8SQVVLEkEnEhiBNSUxPxaAKK8SQVVLEkEnEhiBNT03EjElMTworxJBVUsSQScSGIFNBVk8KK8SQVVLEkEnEhiBTVEFOQQorxJBVUsSQSU4gU1RFVkFOCivEkFVSxJBVTE9WIERFSkFOCivEkFVSxJBVTE9WIEVWSUNBCivEkFVSQSBGUkFOSkEKK8SQVVJBIEpFTElTQVZFVEEKK8SQVVJBIEpVTElKQU5BIE1SCivEkFVSQcSMScSGIERSQUdBTgorxJBVUkHFoCBNSU9EUkFHCivEkFVSQcWgRVZJxIYgxJBPUsSQRQorxJBVUkHFoEVWScSGIMSQVVJPCivEkFVSQcWgRVZJxIYgR09KS08KK8SQVVJBxaBFVknEhiBJVk8KK8SQVVJBxaBFVknEhiBNQVJJSkFOQQorxJBVUkHFoEVWScSGIE1JTEUKK8SQVVJBxaBFVknEhiBSQURPTUlSCivEkFVSQcWgRVZJxIYgVElCT1IKK8SQVVJBxaBFVknEhiBaT1JBTgorxJBVUkHFoElOT1YgVkVMSU1JUgorxJBVUkHFoElOT1ZJxIYgSUxJSkEKK8SQVVJBxaBLT1ZJxIYgxb1JVk9KSU4KK8SQVVJBxaBLT1ZJxIYgQk/FvU8KK8SQVVJBxaBLT1ZJxIYgRFJBR0FOCivEkFVSQcWgS09WScSGIERSQUdPCivEkFVSQcWgS09WScSGIEdPUkRBTkEKK8SQVVJBxaBLT1ZJxIYgSk9WQU4KK8SQVVJBxaBLT1ZJxIYgSk9WQU4KK8SQVVJBxaBLT1ZJxIYgSk9WSUNBCivEkFVSQcWgS09WScSGIFJBSktPCivEkFVSQcWgS09WScSGIFNUQU5PSkUKK8SQVVJBR0nEhiDEkE9SxJBFCivEkFVSQUdJxIYgRElMRQorxJBVUkFHScSGIERSQUdBTgorxJBVUkFHScSGIEdJR0EKK8SQVVJBR0nEhiBKT1ZBTgorxJBVUkFHScSGIEpVTEtBCivEkFVSQUdJxIYgTEFaQVIKK8SQVVJBR0nEhiBNSVJPU0xBVgorxJBVUkFHScSGIFNBVkEKK8SQVVJBR0nEhiBTVEVWQU4KK8SQVVJBR0lOIEpPVkFOCivEkFVSQUdJTiBTVEFOS0EKK8SQVVJBSyBKT8W9RUYKK8SQVVJBSyBKT1NJRgorxJBVUkFLT1ZBQyBGQVRNSVJBCivEkFVSQU4gQk9KQU5BCivEkFVSQU4gSUxJSkEKK8SQVVJBTiBKRUxFTkEKK8SQVVJBTiBKT1ZPCivEkFVSQU4gTUlMQU4KK8SQVVJBTiBNSUxBTgorxJBVUkFOIFJBSktPCivEkFVSQU4gUkFKS08KK8SQVVJBTiBTTEFWS08KK8SQVVJBTiBTTkXFvUFOQQorxJBVUkFOIFpEUkFWS08KK8SQVVJBTk9WScSGIERVxaBBTgorxJBVUkFOT1ZJxIYgSUxPTkEKK8SQVVJBTk9WScSGIE1JSEFJTE8KK8SQVVJBTk9WScSGIE1JTEFOCivEkFVSQU5PVknEhiBNSU9EUkFHCivEkFVSQU5PVknEhiBNSVJLTworxJBVUkFOT1ZJxIYgTkFEQQorxJBVUkFOT1ZJxIYgU0xBxJBBTkEKK8SQVVJBU0lOT1ZJxIYgTUlMRQorxJBVUkRLT1YgRVZBCivEkFVSRUtPVknEhiBLQVJMTworxJBVUkVLT1ZJxIYgTEpVQklDQQorxJBVUkVLT1ZJxIYgWlZPTklNSVIKK8SQVVJFTkRJxIYgxJBPUsSQRQorxJBVUkVOREnEhiBEVcWgQU4KK8SQVVJFVEnEhiBOSUtPTEEKK8SQVVJJxIxJxIYgRFJBR0lOSkEKK8SQVVJJxIxJxIYgRFJBR08KK8SQVVJJxIxJxIYgRFJBR1VUSU4KK8SQVVJJxIxJxIYgRFXFoEFOCivEkFVSScSMScSGIEpPVkFOCivEkFVSScSMScSGIE1JTEpPSktPCivEkFVSScSMScSGIE1JTE/FoAorxJBVUknEjEnEhiBORcWgS08KK8SQVVJJxIxJxIYgTklLT0xBCivEkFVSScSMScSGIFBBVkxFCivEkFVSScSMScSGIFJVxb1BCivEkFVSScSMScSGIFNMQVZLTworxJBVUknEjEnEhiBTTEFWS08KK8SQVVJJxIxJxIYgU1RBTktPCivEkFVSScSMScSGIFRBTktPU0FWQQorxJBVUknEjEnEhiBaTEFUSUNBCivEkFVSScSMScSGIFpPUkFOCivEkFVSScSMSU4gxJBPUsSQRQorxJBVUknEjElOIEFMRUtTQU5EQVIKK8SQVVJJxIxJTiBEUkFHQU4KK8SQVVJJxIxJTiBEUkFHVVRJTgorxJBVUknEjElOIEtBVEFSSU5BCivEkFVSScSMSU4gS0FUSUNBCivEkFVSScSMSU4gTUFSS08KK8SQVVJJxIxJTiBNSUxBTgorxJBVUknEjElOIE1JTE9SQUQKK8SQVVJJxIxJTiBNSU9EUkFHCivEkFVSScSMSU4gUEVUQVIKK8SQVVJJxIxJTiBSQURPU0xBVkEKK8SQVVJJxIxJTiBSVcW9SUNBCivEkFVSScSMSU4gU0lOScWgQQorxJBVUknEjElOIFNPRklKQQorxJBVUknEjElOIFNUQU5JSkEKK8SQVVJJxIxJTiBTVEVWQU4KK8SQVVJJxIxJTiBTVkVUTEFOQQorxJBVUknEjElOIFRPTUlTTEFWCivEkFVSScSMSU4gVkFTSUxJSkUKK8SQVVJJxIxJTiBaT1JLQQorxJBVUknEjEtPVknEhiBNSUxPUkFECivEkFVSScSMS09WScSGIFBBVkxFCivEkFVSScSMS09WScSGIFpMQVRBTkEKK8SQVVJJxaAgS0xBUkEKK8SQVVJJxaAgTUlST1NMQVYKK8SQVVJJxaAgUEFMSk8KK8SQVVJJxaBFVknEhiBNSUxFTkEKK8SQVVJJxaBJxIYgRFXFoEFOCivEkFVSScWgScSGIEpFTEVOQQorxJBVUknFoEnEhiBMQVpBUgorxJBVUknFoEnEhiBNQVRPCivEkFVSScWgScSGIE1JTEFOCivEkFVSScWgScSGIE1JTEFOCivEkFVSScWgScSGIE1JTElKQQorxJBVUknFoEnEhiBNSUxJU0FWCivEkFVSScWgScSGIE5JS09MQQorxJBVUknFoEnEhiBSQURNSUxBCivEkFVSScWgScSGIFJBRE9NSVIKK8SQVVJJxaBJxIYgU0xBVktPCivEkFVSScWgScSGIFNWRVRMQU5BCivEkFVSScWgScSGIFZFUkEKK8SQVVJJxaBJxIYgVklEQQorxJBVUknFoEnEhiBaTEFUQU5BCivEkFVSScWgScSGIFpMQVRBCivEkFVSScSGIMW9QVJLTworxJBVUknEhiDFvUVMSktPCivEkFVSScSGIMW9SVZPUkFECivEkFVSScSGIMSQRVLEkAorxJBVUknEhiDEkE9SxJBFCivEkFVSScSGIMSQT1LEkEUKK8SQVVJJxIYgxJBPUsSQRQorxJBVUknEhiDEkFVSQQorxJBVUknEhiDEkFVSSUNBCivEkFVSScSGIEFMRUtTQU5EQVIKK8SQVVJJxIYgQU7EkEVMS0EKK8SQVVJJxIYgQU5HRUxJTkEKK8SQVVJJxIYgQU5LQQorxJBVUknEhiBBUlNFTklKRQorxJBVUknEhiBCTEFHT01JUgorxJBVUknEhiBCT8W9SURBUgorxJBVUknEhiBCT8W9SURBUgorxJBVUknEhiBCT0dPTEpVQgorxJBVUknEhiBCT0dPTEpVQgorxJBVUknEhiBCT0pBTgorxJBVUknEhiBCT1JJVk9KCivEkFVSScSGIEJPUktBCivEkFVSScSGIEJPUktBCivEkFVSScSGIEJSQU5JU0xBViBEUiBMRUtBUgorxJBVUknEhiBCUkFOSVNMQVZBCivEkFVSScSGIEJSQU5LQQorxJBVUknEhiBCUkFOS0EKK8SQVVJJxIYgQlJBTktPCivEkFVSScSGIEJSQVRJU0xBVgorxJBVUknEhiBCVURJTUlSCivEkFVSScSGIERFSkFOCivEkFVSScSGIERFSkFOCivEkFVSScSGIERFU1BPVAorxJBVUknEhiBET0JSRQorxJBVUknEhiBET0JSSUxBCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHSUNBCivEkFVSScSGIERSQUdJQ0EKK8SQVVJJxIYgRFJBR1VUSU4gRFIKK8SQVVJJxIYgRFXFoEFOCivEkFVSScSGIERVxaBBTgorxJBVUknEhiBFVkEKK8SQVVJJxIYgRlJBTkpBCivEkFVSScSGIEdPSktPCivEkFVSScSGIEdPSktPCivEkFVSScSGIEdPUkRBTkEKK8SQVVJJxIYgSFJBTklTTEFWCivEkFVSScSGIEhSQU5JU0xBVgorxJBVUknEhiBJTElKQQorxJBVUknEhiBJTElKQQorxJBVUknEhiBKQVNNSU5LQQorxJBVUknEhiBKRUxJQ0EKK8SQVVJJxIYgSk9WQU4KK8SQVVJJxIYgSk9WQU4KK8SQVVJJxIYgSk9WQU4KK8SQVVJJxIYgSk9WTworxJBVUknEhiBLUklTVElOQQorxJBVUknEhiBMSklMSkFOQQorxJBVUknEhiBMSlVCScWgQQorxJBVUknEhiBMSlVCScWgQQorxJBVUknEhiBMSlVCSUNBCivEkFVSScSGIExKVUJJQ0EKK8SQVVJJxIYgTEpVQk9EUkFHCivEkFVSScSGIExKVUJPTUlSCivEkFVSScSGIE1BUkEKK8SQVVJJxIYgTUFSSUpBCivEkFVSScSGIE1JxIZBCivEkFVSScSGIE1JTEFOS08KK8SQVVJJxIYgTUlMQU4KK8SQVVJJxIYgTUlMQU4KK8SQVVJJxIYgTUlMQU4KK8SQVVJJxIYgTUlMQU4KK8SQVVJJxIYgTUlMRU5LTworxJBVUknEhiBNSUxJQ0EKK8SQVVJJxIYgTUlMSVZPSkUKK8SQVVJJxIYgTUlMT8WgCivEkFVSScSGIE1JTE9SQUQKK8SQVVJJxIYgTUlMT1JBRAorxJBVUknEhiBNSUxPVkFOCivEkFVSScSGIE1JTFVOCivEkFVSScSGIE1JT0RSQUcKK8SQVVJJxIYgTUlPRFJBRworxJBVUknEhiBNSVJKQU5BCivEkFVSScSGIE1JUktPCivEkFVSScSGIE1JUk9MSlVCCivEkFVSScSGIE1JUk9TTEFWQQorxJBVUknEhiBNSVJPU0xBVgorxJBVUknEhiBNSVRBUgorxJBVUknEhiBNT03EjElMTworxJBVUknEhiBORURFTEpLTworxJBVUknEhiBORU1BTkpBCivEkFVSScSGIE5FTkFECivEkFVSScSGIE5FVkVOS0EKK8SQVVJJxIYgUEVUUkEKK8SQVVJJxIYgUFJFRFJBRworxJBVUknEhiBQUkVEUkFHCivEkFVSScSGIFJBRElWT0pFCivEkFVSScSGIFJBRE1JTEEKK8SQVVJJxIYgUkFET0lDQQorxJBVUknEhiBSQURPSktBCivEkFVSScSGIFJBRE9TTEFWCivEkFVSScSGIFJBVEtPCivEkFVSScSGIFNBTkpBCivEkFVSScSGIFNBVktBCivEkFVSScSGIFNBVk8KK8SQVVJJxIYgU0VLVUxBCivEkFVSScSGIFNMQVZJQ0EKK8SQVVJJxIYgU0xBVktBCivEkFVSScSGIFNMQVZLTworxJBVUknEhiBTTEFWS08KK8SQVVJJxIYgU1JCT0xKVUIKK8SQVVJJxIYgU1RBTklNSVIKK8SQVVJJxIYgU1RBTklNSVIKK8SQVVJJxIYgU1RFVkFOCivEkFVSScSGIFNUT0pBTktBCivEkFVSScSGIFNUT0pBTktBCivEkFVSScSGIFRFT0RPUgorxJBVUknEhiBURVJFWkEKK8SQVVJJxIYgVE9ET1IKK8SQVVJJxIYgVE9ET1IKK8SQVVJJxIYgVFVHT01JUgorxJBVUknEhiBWQVNBCivEkFVSScSGIFZFTEpLTworxJBVUknEhiBWRVJBCivEkFVSScSGIFZFUkEKK8SQVVJJxIYgVklEQQorxJBVUknEhiBWSURPSkUKK8SQVVJJxIYgVkxBREEKK8SQVVJJxIYgVkxBRElNSVIKK8SQVVJJxIYgVkxBRElNSVIKK8SQVVJJxIYgVkxBRElNSVIKK8SQVVJJxIYgVk9KSU4KK8SQVVJJxIYgVk9KSVNMQVYKK8SQVVJJxIYgVlVLQcWgSU4KK8SQVVJJxIYgWkRFTktBCivEkFVSScSGIFpEUkFWS08KK8SQVVJJxIYgWk9SQU4KK8SQVVJJQ0EgTUlMT8WgCivEkFVSSUNBIE5FVkVOS0EKK8SQVVJJQ0EgUkFERQorxJBVUklDQSBSQU5LTworxJBVUklDQSBSQU5LTworxJBVUklDQSBSQVRLTworxJBVUklDQSBTTE9CT0RBTiBESVBMIE9FQworxJBVUklLIERVxaBBTgorxJBVUklLIEpVTEtBCivEkFVSSUsgTUlMQU4KK8SQVVJJSyBPVElMSUpBCivEkFVSSUtJTiBJTElKQQorxJBVUklLSU4gVkVSQQorxJBVUklOIElMSUpBCivEkFVSSU4gSk9TSVAKK8SQVVJJTiBOT1ZBCivEkFVSSU4gTk9WQQorxJBVUklOIFNBVkEgRElQTCBJTkcKK8SQVVJJTiBTVkVUTEFOQQorxJBVUklOIFRFT0RPUgorxJBVUktJxIYgRFJBR0lDQQorxJBVUktJTiBNSUxFTktPCivEkFVSS0lOIFJBREnFoEtPCivEkFVSS0lOIFZMQURJTUlSCivEkFVSS09WScSGIMSMQVNMQVYKK8SQVVJLT1ZJxIYgxJBFTkEKK8SQVVJLT1ZJxIYgQUxFS1NBTkRBUiBESVBMIElORworxJBVUktPVknEhiBBTlRPTgorxJBVUktPVknEhiBNQUdEQUxFTkEKK8SQVVJLT1ZJxIYgUEVSSUNBCivEkFVSS09WScSGIFJBREUKK8SQVVJLT1ZJxIYgUlXFvUlDQQorxJBVUktPVknEhiBTVEVWQU4KK8SQVVJLT1ZJxIYgU1ZFVE9NSVIKK8SQVVJLT1ZJxIYgVkxBSktPCivEkFVSS09WU0tJIFBBVkVMCivEkFVSTknEhiBSQURNSUxBCivEkFVSTknEhiBWT0pJU0xBVgorxJBVUk9WScSGIMW9SVZLQQorxJBVUk9WScSGIEFMRUtTQU5EQVIKK8SQVVJPVknEhiBCT8WgS08KK8SQVVJPVknEhiBCT0pBCivEkFVST1ZJxIYgQk9SSVNMQVYKK8SQVVJPVknEhiBCT1NJTEpLQQorxJBVUk9WScSGIERBTklMTworxJBVUk9WScSGIERBUklOS0EKK8SQVVJPVknEhiBEUkFHQU4KK8SQVVJPVknEhiBEUkFHQU4KK8SQVVJPVknEhiBEUkFHQU4KK8SQVVJPVknEhiBEUkFHQU4KK8SQVVJPVknEhiBEUkFHQU4KK8SQVVJPVknEhiBEUkFHT0xKVUIKK8SQVVJPVknEhiBHT0pLTworxJBVUk9WScSGIEpBU01JTktBCivEkFVST1ZJxIYgSk9WQU4KK8SQVVJPVknEhiBMSlVCSUNBCivEkFVST1ZJxIYgTUlMRU5LTworxJBVUk9WScSGIE1JTElDQQorxJBVUk9WScSGIE1JTElTQVYKK8SQVVJPVknEhiBNSUxLQQorxJBVUk9WScSGIE5BREXFvURBCivEkFVST1ZJxIYgTklLT0xBCivEkFVST1ZJxIYgT0xHSUNBCivEkFVST1ZJxIYgUkFERU5LTworxJBVUk9WScSGIFJBREUKK8SQVVJPVknEhiBSQURPTUlSCivEkFVST1ZJxIYgUkFET01JUgorxJBVUk9WScSGIFJBRE9TTEFWCivEkFVST1ZJxIYgUkFET1ZBTgorxJBVUk9WScSGIFNPRklKQQorxJBVUk9WScSGIFNWRVRMQU5BCivEkFVST1ZJxIYgU1ZFVE9NSVIKK8SQVVJPVknEhiBWQVNPCivEkFVST1ZJxIYgVkVTTkEKK8SQVVJPVknEhiBWVUtBxaBJTgorxJBVUk9WScSGIFZVS0FESU4KK8SQVVJPVknEhiBaT1JLQQorxJBVUk9WS0EgTUFSSUpBCivEkFVST1ZLQSBPTkRSRUoKK8SQVVJPVktBIFZMQURJU0xBVgorxJBVUk9WU0tJIEpPVklDQQorxJBVU0nEhiBNSU9EUkFHCivEkFVaQSBTVEVWTworQcSMIMWgQU5ET1IKK0HEjCBGRVJFTkMKK0HEjCBGUkFOSkEgRFIgUFJJTUFSSUpVUworQcSMIEdBQk9SCitBxIwgSk/FvUVGIEFLQURFTVNLSSBTTElLQVIKK0HEjCBKT8W9RUYgQklPTE9HCitBxIwgSk9WQU4KK0HEjCBLQVRJQ0EKK0HEjCBMQUpPxaAKK0HEjC1OSUtPTEnEhiBFUsW9RUJFVAorQcSMIE9UTworQcSMIFBBVkxFCitBxIwgVElCT1IKK0HEjEFJIEnFoFRWQU4KK0HEjEFJIFpPTFRBTgorQcSMQU5BU0tJIFZFU05BCitBxIxBTlNLSSDFvUlWS08KK0HEjEFOU0tJIEFMQklOQQorQcSMQU5TS0kgQUxFS1NBTkRBUgorQcSMQU5TS0kgQlJBTklTTEFWCitBxIxBTlNLSSBET0JSSVZPSgorQcSMQU5TS0kgRFJBR0lDQQorQcSMQU5TS0kgRFJBR09NSVIKK0HEjEFOU0tJIEpFTElTT1YKK0HEjEFOU0tJIEtPU0FOQQorQcSMQU5TS0kgTEFaQVIKK0HEjEFOU0tJIExBWkFSCitBxIxBTlNLSSBOSUtPTEEKK0HEjEFOU0tJIFJBREEKK0HEjEFOU0tJIFNUQU5BCitBxIxBTlNLSSBTVEFOSVNMQVYKK0HEjEFOU0tJIFRFT0RPUiBESVBMIElORworQcSMQU5TS0kgVE9ET1IKK0HEjEFOU0tJIFZJRE9TQVZBCitBxIxBTlNLSSBaRFJBVktPCitBxIxBTlNLSSBaT1JJQ0EKK0HFoMSGRVJJxIYgU1RFVkFOCitBxaDEhkVSScSGIFNURVZBTgorQcWgxIZFUknEhiBaT1JBCitBxaBBTklOIFJBRElWT0pFCitBxaBBTklOIFpPUkFOCitBxaBJS1UgVklUQUxJUyBEUiBMRUtBUgorQcWgS09WScSGIFNMQVZLTyBESVBMIElORworQcWgS09WScSGIFRPTUlTTEFWCitBxaBLT1ZJxIYgVk9KSVNMQVZBCitBxaBPTkpBIE5FREVMSktPCitBxaBPTkpBIE9MR0EKK0HFoFRBTEtPVlNLSSBBTEVLU0FOREFSCitBxaBUQUxLT1ZTS0kgS1JJU1RJTkEKK0HEhkFOU0tJIMSQT1LEkEUKK0HEhkFOU0tJIExBWkFSCitBxIZJxIYgSUxJSkEKK0HEhknEhiBNSVJLTworQcSGScSGIFNURVZBTgorQcSGSU1PViBBTEVLU0FOREFSCitBxIZJTU9WIEJPxaBLTworQcSGSU1PViBEUkFHSUNBCitBxIZJTU9WIExFTEEKK0HEhklNT1YgTUFSS08KK0HEhklNT1YgTUlMQU4KK0HEhklNT1YgTUlSSkFOQSBQUk9GRVNPUgorQcSGSU1PViBORURFTEpLTworQcSGSU1PViBSQURJVk9KCitBxIZJTU9WIFJBRE9TTEFWQQorQcSGSU1PVknEhiDFvUlWS08KK0HEhklNT1ZJxIYgxb1JVk9KSU4KK0HEhklNT1ZJxIYgxJBPUsSQRQorQcSGSU1PVknEhiDEkE9SxJBFCitBxIZJTU9WScSGIMSQVVLEkElOS0EKK0HEhklNT1ZJxIYgQk/FoEtPCitBxIZJTU9WScSGIEJPR0RBTktBCitBxIZJTU9WScSGIEJPUktBCitBxIZJTU9WScSGIEJSQU5LTworQcSGSU1PVknEhiBCUkFOS08KK0HEhklNT1ZJxIYgRFJBR0FOCitBxIZJTU9WScSGIERSQUdPTEpVQgorQcSGSU1PVknEhiBEUkFHT1NMQVYKK0HEhklNT1ZJxIYgRFXFoEFOS0EKK0HEhklNT1ZJxIYgRFXFoEFOCitBxIZJTU9WScSGIERVxaBBTgorQcSGSU1PVknEhiBHT0pLTworQcSGSU1PVknEhiBJTElKQQorQcSGSU1PVknEhiBKT1ZBCitBxIZJTU9WScSGIE1JTEFOCitBxIZJTU9WScSGIE1JTEEKK0HEhklNT1ZJxIYgTUlMSVZPSkUgRFIKK0HEhklNT1ZJxIYgTUlMSVZPSgorQcSGSU1PVknEhiBNSUxPSklDQQorQcSGSU1PVknEhiBNSU9EUkFHCitBxIZJTU9WScSGIE9CUkFECitBxIZJTU9WScSGIFJBRE1JTEEKK0HEhklNT1ZJxIYgUkFET1ZBTgorQcSGSU1PVknEhiBSQVRLTworQcSGSU1PVknEhiBTQVZBCitBxIZJTU9WScSGIFNBVkEKK0HEhklNT1ZJxIYgU0xBVktPCitBxIZJTU9WScSGIFNMT0JPREFOCitBxIZJTU9WScSGIFRBRElKQQorQcSGSU1PVknEhiBWQVNBCitBxIZJTU9WScSGIFZBU0lMSUpFCitBxIZJTVBWScSGIEFMRUtTQU5EQVIKK0HEkEFOU0tJIEJSQU5JU0xBVgorQcSQQU5TS0kgSVZBTkEKK0HEkEFOU0tJIE1JTElWT0oKK0HEkEFOU0tJIE5BREEKK0HEkEFOU0tJIFNURVZBTgorQcSQScSGIERSQUdPCitBxJBJxIYgT1RPCitBxJBJTiBBREFNCitBQkFExb1JxIYgTUFSS08KK0FCQUTFvUnEhiBSQURNSUxBCitBQkFExb1JxIYgU0FWTworQUJBRMW9ScSGIFNUQU5LTworQUJBWkEgVkVTTkEKK0FCQVpJIElMSkFaCitBQkFaSSBSQU1BREFOCitBQkFaT1ZTS0kgU1VMVEFOCitBQkRJSkVWScSGIMWgVUtSSUpBCitBQkRJSkVWScSGIElTTUVUCitBQlJBSEFNIEVWQQorQUJSQUhBTSBJUkVOQQorQUJSQUhBTSBQQVZFTAorQUJSQU1PVknEhiBEVcWgQU5LQQorQUJSQU1PVknEhiBMSVZJSkEKK0FCUkFNT1ZJxIYgTUlMT1JBRAorQUJSQU1PVknEhiBNSVJKQU5BCitBQlJBTU9WScSGIE5BREEKK0FCUkFNT1ZJxIYgU1RBTkEKK0FCUkFNT1ZJxIYgVkFMRVJJSkEKK0FCUkxJxIYgTkFEQQorQUJUIExBU0xPCitBQlUtQUJFRCBNVUhBTUVECitBQ0lHQU4gSk9WQU5LQQorQUNJTi1QRVRST1ZJxIYgSVZBTktBCitBQ0tFVEEgRFJBR0FOCitBQ0tFVEEgTUlSSkFOQQorQUNLRVRBIFRJSE9NSVIKK0FDS09WScSGIE1BUkEKK0FExb1BSVAgTUlMT1JBRAorQUTFvUFJUCBNSVJKQU5BCitBRMW9RU1PVknEhiBBTEVLU0FOREFSCitBRMW9RU1PVknEhiBHUlVKTworQUTFvUnEhiDFvUFSS08KK0FExb1JxIYgQk/FoEtPCitBRMW9ScSGIEJSQU5LTworQUTFvUnEhiBERVNBTktBCitBRMW9ScSGIERSQUdPTEpVQgorQUTFvUnEhiBEVcWgSUNBCitBRMW9ScSGIEdPUkFOCitBRMW9ScSGIElMSUpBCitBRMW9ScSGIEpPVkFOS0EKK0FExb1JxIYgSk9WQU4KK0FExb1JxIYgTEpVQk9EUkFHCitBRMW9ScSGIE1JTEFOCitBRMW9ScSGIE1JTEVOCitBRMW9ScSGIE1JTElTQVYKK0FExb1JxIYgTUlMSVZPSkUKK0FExb1JxIYgTUlMT1JBRAorQUTFvUnEhiBORURFTEpLTworQUTFvUnEhiBQRVJPCitBRMW9ScSGIFJBRElTQVYKK0FExb1JxIYgUkFET05KQQorQUTFvUnEhiBSQU5LTworQUTFvUnEhiBSQVRLTworQUTFvUnEhiBTTE9CT0RBTgorQUTFvUnEhiBWTEFETworQUTFvUnEhiBaT1JBTgorQUTFvUlCQUJBIE1JTElDQQorQUTFvUlCQUJBIE5JS09MQQorQURBTSDFoEFSTE9UQQorQURBTSDEkFVSQQorQURBTSBERU5FxaAKK0FEQU0gSVJNQQorQURBTSBKT8W9RUYKK0FEQU0gSk9TSVAKK0FEQU0gS1JVTklDQSBEUgorQURBTSBMQURJU0xBVgorQURBTSBMQURJU0xBVgorQURBTSBMQVNMTworQURBTSBPTEdJQ0EKK0FEQU0gVElCT1IgTk9WSU5BUgorQURBTU9WIMSQT1LEkEUKK0FEQU1PViBCT8W9SURBUgorQURBTU9WIERSQUdBTgorQURBTU9WIERVxaBBTgorQURBTU9WIElWQU4KK0FEQU1PViBKT1ZBTgorQURBTU9WIEpVTElBTkEKK0FEQU1PViBKVUxLQQorQURBTU9WIEpVTEtBCitBREFNT1YgS0FUQVJJTkEKK0FEQU1PViBMSlVCQQorQURBTU9WIE1BUklKQQorQURBTU9WIE1JUk9TTEFWQQorQURBTU9WIFJBRE9WQU4KK0FEQU1PViBUSUNBCitBREFNT1YgVklUT01JUgorQURBTU9WScSGIMSQVVJBCitBREFNT1ZJxIYgQk/FoEtPCitBREFNT1ZJxIYgRFJBR0EKK0FEQU1PVknEhiBEUkFHT0xKVUIKK0FEQU1PVknEhiBEUkFHT0xKVUIKK0FEQU1PVknEhiBEUkFHVVRJTgorQURBTU9WScSGIERVxaBBTgorQURBTU9WScSGIERVxaBBTgorQURBTU9WScSGIERVxaBBTgorQURBTU9WScSGIERVxaBBTgorQURBTU9WScSGIEdPSktPCitBREFNT1ZJxIYgR09KS08KK0FEQU1PVknEhiBHT1JBTgorQURBTU9WScSGIElMT05BCitBREFNT1ZJxIYgSVZBTgorQURBTU9WScSGIEpFTEEKK0FEQU1PVknEhiBKRUxFTkEKK0FEQU1PVknEhiBKT1ZBTktBCitBREFNT1ZJxIYgSk9WQU4KK0FEQU1PVknEhiBLQVRBCitBREFNT1ZJxIYgTEFaQVIKK0FEQU1PVknEhiBMQVpBUgorQURBTU9WScSGIExKSUxKQU5BCitBREFNT1ZJxIYgTEpVQk9NSVIKK0FEQU1PVknEhiBNQVJBCitBREFNT1ZJxIYgTUFSQQorQURBTU9WScSGIE1BUkEKK0FEQU1PVknEhiBNQVJJTktPCitBREFNT1ZJxIYgTUlMRU5BCitBREFNT1ZJxIYgTUlMSUNBCitBREFNT1ZJxIYgTUlMS0FOCitBREFNT1ZJxIYgTUlSS08KK0FEQU1PVknEhiBNSVJLTworQURBTU9WScSGIE1PTcSMSUxPCitBREFNT1ZJxIYgTU9NxIxJTE8KK0FEQU1PVknEhiBNT03EjElMTworQURBTU9WScSGIFJBRE1JTEEKK0FEQU1PVknEhiBSQURPU0FWCitBREFNT1ZJxIYgU0xBVktPCitBREFNT1ZJxIYgU09OSkEKK0FEQU1PVknEhiBTVE9KQU5LQQorQURBTU9WScSGIFNWRVRPWkFSCitBREFNT1ZJxIYgVE9NSVNMQVYKK0FEQU1PVknEhiBUT01JU0xBVgorQURBTU9WScSGIFZMQURJTUlSCitBREVNSSBHT1JEQU5BCitBREVNSSBJTUVSCitBREVNT1YgS0VNQUwKK0FERU1PVknEhiBKVVNVRgorQURFTU9WScSGIE9TTUFOCitBRExFxaBJxIYgTEpVQklDQQorQUROQcSQRVZJxIYgU1ZFVE9aQVIKK0FET1IgSk9WQU4KK0FHQVJTS0kgSkFOIERSCitBR0FUScSGIE1BVEUKK0FHQVRJxIYgTUlSS08KK0FHQVRJxIYgVkVMSU1JUgorQUdCQUJBIEJSQU5LQQorQUdCQUJBIERBTkUKK0FHQkFCQSBEQU5JQ0EKK0FHQkFCQSBEQU5JTE8KK0FHQkFCQSBEVcWgQU4KK0FHQkFCQSBKT1ZBTgorQUdCQUJBIE5FREVMSktBCitBR0JBQkEgTkVERUxKS08KK0FHQkFCQSBOSUtPTEEgRFIKK0FHQkFCQSBOSUtPTEEKK0FHQkFCQSBWSURBCitBR0nEhiBNQVJLTworQUdJxIYgTkFEQQorQUdJxIYgTklLT0xBSgorQUdJxIYgTklLT0xBCitBR0nEhiBTTE9CT0RBTiBESVBMIE9FQworQUdJxIYgU1JCSVNMQVYKK0FHScSGIFZMQURJTUlSCitBR08gTUFSS08KK0FHTyBaT1JJQ0EKK0FHT8SMIERVxaBBTgorQUdPxaBUT04gQkVMQQorQUdPxaBUT04gRkVSRU5DCitBR0/FoFRPTiBLQVJPTEoKK0FHT8WgVE9OIExBU0xPCitBR0/FoFRPTiBNSUhBTEoKK0FHT8WgVE9OIFZFUkEKK0FHUkFNT1ZJxIYgREVTQU5LQQorQUdSQU1PVknEhiBSQURFCitBR1XFoEVWScSGIFNMT0JPREFOS0EKK0FHVUNJxIYgT0xHSUNBCitBSE1FRCBFTEVaCitBSE1FVE9WIMWgVUtSSQorQUhNRVRPVknEhiBLQVJMTworQUhNRVRPVknEhiBTT0ZJSkEKK0FITUVUT1ZJxIYgWkxBVEtPCitBSVJBTERJIEJPxb1JREFSCitBSiBCUkFOSVNMQVYKK0FKIFZFU05BCitBSkFOT1ZJxIYgU0FMS08KK0FKQ0VWIERVxaBBTgorQUpExb1BTk9WScSGIEFOQVNUQVNJSkEgRFIgTEVLQVIKK0FKREFSScSGIFJBRE9TTEFWCitBSkRFUiDFvUVMSktPCitBSkRFUiBCT8WgS08KK0FKREVSIERBTklDQQorQUpEScSGIMSQT1LEkEUKK0FKRElOSSBTQUJSSUpBCitBSkRJTk9WScSGIE5JS09MQQorQUpEVUsgSk9TSU0KK0FKRFVLIE1BUktPCitBSkRVSyBNSUxJQ0EKK0FKRFVLIFRPxaBBCitBSkRVS09WScSGIEdPSktPCitBSkRVS09WScSGIExKSUxKQU5BCitBSkRVS09WScSGIE1JTEFOCitBSkRVS09WScSGIFNPRklKQQorQUpHRU5NQUhUIE1BUklOQQorQUpLVU5JxIYgQURJTAorQUpLVU5JxIYgTkVaSVIKK0FKUkFOT1ZJxIYgSlVTVUYKK0FKVEnEhiBTVkVUSVNMQVYKK0FKVExCRVogTUlKQVQKK0FKVExCRVogTUlKQVQKK0FKVkFaT1ZJxIYgQcSGSUYKK0FKVkFaT1ZJxIYgQVNMQU4KK0FKVkFaT1ZJxIYgRVNNQQorQUpWQVpPVknEhiBGQUlECitBSlZJTEVSIFNURVZBTgorQUpaRU5CRVJHRVIgQkVMQQorQUvFoEFNT1ZJxIYgUExBVsWgQQorQUtJSyBEUkFHSUNBCitBS0lLIERVxaBBTgorQUtJTiBEUkFHQQorQUtJTiBTT0ZJSkEKK0FLT07EjEnEhiBaT1JBTgorQUtSQVAgRklMSVAgUFJPRgorQUtSQVBPVknEhiBNSVJPU0xBVgorQUtTRU5USUpFVknEhiBKT1ZBTgorQUtTRU5USUpFVknEhiBOSUtPTEEgU1VESUpBCitBS1NFTlRJSkVWScSGIFNUT0pBRElOCitBS1NJTiBCUkFOSVNMQVYKK0FLU0lOIE1JTE9WQU4KK0FLU0lOIFZMQURJTUlSIERSIElORworQUxBxJBJIMWgQU5ET1IKK0FMQUJBxaBPVlNLSSBHUlVKQQorQUxBQkHFoE9WU0tJIElCUkFISU0KK0FMQUJVUknEhiBQQVZMRQorQUxBQlVSScSGIFRFT0RPUiBESVBMIElORworQUxBRMW9ScSGIMSQT1LEkE8KK0FMQURJxIYgQUxFS1NBTkRBUgorQUxBREnEhiBBTEVLU0FOREFSCitBTEFEScSGIEJSQU5JU0xBVkEKK0FMQURJxIYgSURBCitBTEFEScSGIFNURVZBTgorQUxBR0nEhiBEVcWgQU4KK0FMQUdJxIYgTVVKTworQUxBR0nEhiBOQURBCitBTEFHScSGIFJBRE9TTEFWCitBTEFHScSGIFZFUkEKK0FMQUlDQSBSQURPSktBCitBTEFKSUNBIEJSQU5LTworQUxBSklDQSBKT1ZPCitBTEFOIFZFUkEKK0FMQU5PViBSVcW9SUNBCitBTEFSR0nEhiBKRUxFTkEKK0FMQVJHScSGIE1JTElDQQorQUxBUkdJxIYgUEVUQVIKK0FMQVJHScSGIFJBREUKK0FMQVJHScSGIFJBTktBCitBTEFSR0nEhiBUSU1BCitBTEFTT1YgRFJBR09TTEFWCitBTEFTT1YgTEFaQVIgRElQTCBJTkcKK0FMQVZBTkpBIE1JUkpBTkEKK0FMQklKQU5JxIYgQk9STworQUxCSUpBTknEhiBEUkFHVVRJTgorQUxCT1QgSUxJSkEKK0FMQlJFSFQgSkFOT8WgCitBTEJSRUhUIE1BUklKQQorQUxCUkVIVCBNQVJJSkEKK0FMQlVMSiBESVZOQQorQUxCVUxKIEdPUkRBTkEKK0FMQlVMSiBWRVNFTElOCitBTEJVTEogVk9KSVNMQVZLQQorQUxFS1NBTkRFUiBBTkEKK0FMRUtTQU5ERVIgUlVET0xGCitBTEVLU0FORFJJxIYgTUlMRVNBIERSCitBTEVLU0FORFJPViBTTEFWxIxBCitBTEVLU0FORFJPVknEhiBEUkFHQU4KK0FMRUtTQU5EUk9WScSGIERVxaBBTgorQUxFS1NJIFNURVZBTgorQUxFS1NJxIYgxIxBU0xBVgorQUxFS1NJxIYgxIxFRE9NSVIKK0FMRUtTScSGIMW9SVZPTUlSCitBTEVLU0nEhiDEkE9SxJBFCitBTEVLU0nEhiDEkFVSQQorQUxFS1NJxIYgQUNBCitBTEVLU0nEhiBBREFNCitBTEVLU0nEhiBBUlNBCitBTEVLU0nEhiBCSVNFUktBCitBTEVLU0nEhiBCT8W9SURBUgorQUxFS1NJxIYgQk/FvUlEQVIKK0FMRUtTScSGIEJPR0RBTgorQUxFS1NJxIYgQlJBTklTTEFWCitBTEVLU0nEhiBCUkFOS08KK0FMRUtTScSGIEJSQU5LTworQUxFS1NJxIYgQlJBTktPCitBTEVLU0nEhiBCVURJTUlSCitBTEVLU0nEhiBEQU5JQ0EKK0FMRUtTScSGIERBUklOS0EKK0FMRUtTScSGIERSQUdBTgorQUxFS1NJxIYgRFJBR0EKK0FMRUtTScSGIERSQUdPTEpVQgorQUxFS1NJxIYgRFJBR09NSVIKK0FMRUtTScSGIERSQUdPU0xBViBEUgorQUxFS1NJxIYgRFXFoEFOCitBTEVLU0nEhiBEVcWgQU4KK0FMRUtTScSGIEVWSUNBCitBTEVLU0nEhiBHT0pLTworQUxFS1NJxIYgR09SQU4KK0FMRUtTScSGIEdPUkRBTkEKK0FMRUtTScSGLUdSSVNFUiBOSUtPTEEKK0FMRUtTScSGIElMSU5LQQorQUxFS1NJxIYgSVZBTgorQUxFS1NJxIYgSkVMRU5BCitBTEVLU0nEhiBKRUxJQ0EKK0FMRUtTScSGIEpFTElDQQorQUxFS1NJxIYgSk9TSVAKK0FMRUtTScSGIEpPVkFOCitBTEVLU0nEhiBKT1ZPCitBTEVLU0nEhiBLQVRBCitBTEVLU0nEhiBLQVRJQ0EKK0FMRUtTScSGIEtBVElDQQorQUxFS1NJxIYgS09TQQorQUxFS1NJxIYgS09TVEEKK0FMRUtTScSGIEtPU1RBCitBTEVLU0nEhiBMRVBPU0FWQQorQUxFS1NJxIYgTEVQT1NBVkEKK0FMRUtTScSGIExKSUxKQU5BCitBTEVLU0nEhiBMSklMSkFOQQorQUxFS1NJxIYgTEpVQknFoEEKK0FMRUtTScSGIExKVVRPTUlSCitBTEVLU0nEhiBNQVJJTgorQUxFS1NJxIYgTUlMQU5LQQorQUxFS1NJxIYgTUlMQU4KK0FMRUtTScSGIE1JTEFOCitBTEVLU0nEhiBNSUxBTgorQUxFS1NJxIYgTUlMRU5BCitBTEVLU0nEhiBNSUxJTktBCitBTEVLU0nEhiBNSUxJVk9KCitBTEVLU0nEhiBNSUxJVk9KCitBTEVLU0nEhiBNSUxPxaAKK0FMRUtTScSGIE1JTE/FoAorQUxFS1NJxIYgTUlMT8WgCitBTEVLU0nEhiBNSUxPSkUKK0FMRUtTScSGIE1JTE9SQUQKK0FMRUtTScSGIE1JTE9WQU4KK0FMRUtTScSGIE1JT0RSQUcKK0FMRUtTScSGIE1JT0RSQUcKK0FMRUtTScSGIE1JT0RSQUcKK0FMRUtTScSGIE1JUkpBTkEKK0FMRUtTScSGIE1JUktPCitBTEVLU0nEhiBNSVJPU0xBVgorQUxFS1NJxIYgTU9NxIxJTE8KK0FMRUtTScSGIE1PTcSMSUxPCitBTEVLU0nEhiBNT01JUgorQUxFS1NJxIYgTkFEQQorQUxFS1NJxIYgTkFUQUxJSkEKK0FMRUtTScSGIE5FQk9KxaBBCitBTEVLU0nEhiBOSUtPTEEKK0FMRUtTScSGIE5JS09MQQorQUxFS1NJxIYgUEFVTElOQQorQUxFS1NJxIYgUEFWTEUKK0FMRUtTScSGIFBFVEFSCitBTEVLU0nEhiBQRVRBUgorQUxFS1NJxIYgUEVUQVIKK0FMRUtTScSGIFBSRURSQUcKK0FMRUtTScSGIFJBREUKK0FMRUtTScSGIFJBRE1JTEEKK0FMRUtTScSGIFJBRE9NSVIKK0FMRUtTScSGIFJBSktPCitBTEVLU0nEhiBSQVRLTworQUxFS1NJxIYgUkFUS08KK0FMRUtTScSGIFJJU1RPCitBTEVLU0nEhiBTQVZPCitBTEVLU0nEhiBTTEFWTkEKK0FMRUtTScSGIFNNSUxKQQorQUxFS1NJxIYgU1RFVkFOCitBTEVLU0nEhiBTVEVWQU4KK0FMRUtTScSGIFZBU0EKK0FMRUtTScSGIFZFUkEKK0FMRUtTScSGIFZFUkEKK0FMRUtTScSGIFZFU05BCitBTEVLU0nEhiBWSVRPTUlSCitBTEVLU0nEhiBWTEFTVElNSVIKK0FMRUtTScSGIFZPSklTTEFWCitBTEVLU0nEhiBaRFJBVkVOS0EKK0FMRUtTScSGIFpEUkFWS08KK0FMRUtTScSGIFpMQVRJQk9SCitBTEVLU0nEhiBaT1JBTgorQUxFS1NJSkVWScSGIEJPR0RBTgorQUxFS1NJSkVWScSGIEJPUkEKK0FMRUtTSUpFVknEhiBJU0lET1IKK0FMRUtTSUpFVknEhiBKT1ZBTgorQUxFS1NJSkVWScSGIE1BUklKQQorQUxFS1NPViBHRU9SR0kKK0FMRUtTT1YgTUlMVVRJTgorQUxFS1NPViBTSU1FT04KK0FMRUtTT1YgWk9SQU4KK0FMRUtTT1ZTS0kgTUlMRQorQUxFS1NPVlNLSSBTUkJPTEpVQgorQUxFTVBJxIYgU0FWTworQUxFTVBJSkVWScSGIFpPUkFOCitBTEVNUElKRVZJxIYgWk9SQU4KK0FMRU5ERVIgxaBFRklLCitBTEkgSlVMSVNUQU4KK0FMScWgScSGIEJFU0lNCitBTEnFoEnEhiBOSUpBWgorQUxJxaBJxIYgUkVExb1FUAorQUxJxaBJxIYgVkFTVklKQQorQUxJxJBVS0nEhiBJTElKQQorQUxJQkHFoEnEhiBIQU1JRAorQUxJSkEgQUJESVJBSE1BTgorQUxJSkEgSVpFVAorQUxJSkVWScSGIE5FWklSCitBTElKRVZJxIYgU0FEUklKQQorQUxJTE9WScSGIFZJTktPCitBTElNUEnEhiDFvUlWS08KK0FMSU1QScSGIEFMRUtTQU5EQVIKK0FMSU1QScSGIEJBUkJBUkEKK0FMSU1QScSGIEJPR09NSVIKK0FMSU1QScSGIEJPUklWT0pFCitBTElNUEnEhiBEUkFHQU4KK0FMSU1QScSGIERSQUdJQ0EKK0FMSU1QScSGIEpFTEEKK0FMSU1QScSGIEpPVkFOCitBTElNUEnEhiBMSlVCSUNBCitBTElNUEnEhiBNT03EjElMTworQUxJTVBJxIYgU0xBVktBCitBTElNUEnEhiBTTEFWS08KK0FMSU1QScSGIFNURVZBTgorQUxJTVBJxIYgVElIT01JUgorQUxJTVBJxIYgVE9NSVNMQVYKK0FMSU1QScSGIFZPSklTTEFWCitBTElNUElKRVZJxIYgxJBPUsSQRQorQUxJTVBJSkVWScSGIERJTUlUUklKRQorQUxJTVBJSkVWScSGIEpPVkFOCitBTElNUElKRVZJxIYgSk9WQU4KK0FMSU1QSUpFVknEhiBWRVNFTElOS0EKK0FMSU9WIEhVU0VJTgorQUxJT1YgT01FUgorQUxKSSBBSlJBRElOCitBTEpJIE1BS1NVVAorQUxKScSGIEtBVEFSSU5BCitBTEpJxIYgUkFNTworQUxKSUpVUEkgxIxFUklNCitBTEtJxIYgU1RFVkFOCitBTEtJxIYgVkxBRElNSVIKK0FMTUHFoEkgRVRFTAorQUxNQcWgSSBNQVJJxaBLQQorQUxNQcWgSSBNQVRJSkEKK0FMTUHFoEkgU0FNVUVMCitBTE1Bxb1BTiBTTEFWS08gTk9WSU5BUgorQUxPUknEhiBEUkFHT01JUktBCitBTE9SScSGIElMSUpBCitBTFRFUk9WIEFOQQorQUxUS09STiBNQUxWSU5BCitBTFZBRMW9SU4gRFJBR1VUSU4KK0FMVklST1ZJxIYgRFJBR09SQUQKK0FMVklST1ZJxIYgTUlPRFJBRworQU1BTU9WScSGIERVxaBBTgorQU1BTU9WScSGIE1JTEVWQQorQU1CQVJExb1JSkVWIEhSSVNUTworQU1CTyBJTElKQQorQU1CUk9aScSGIFJBU1RLTworQU1CUlXFoCBBVElMQQorQU1CUlXFoEnEhiBNQUdEQQorQU1CUlVTT1YgSk9WQU4KK0FNRVRPViBPU01BTgorQU1FVE9WScSGIMSQT1LEkEUKK0FNRVRPVknEhiDEkE9SxJBPCitBTUVUT1ZJxIYgxJBVUk8KK0FNRVRPVknEhiBCVURJTUlSCitBTUVUT1ZJxIYgSkVMRU5BCitBTUVUT1ZJxIYgSk9WQU4KK0FNRVRPVknEhiBLQVRJQ0EKK0FNRVRPVknEhiBMQVpBUgorQU1FVE9WScSGIExBWkFSCitBTUVUT1ZJxIYgTUFSS08KK0FNRVRPVknEhiBNSUxBRElOCitBTUVUT1ZJxIYgTUlMT1JBRAorQU1FVE9WScSGIE1JUktPCitBTUVUT1ZJxIYgTU9NxIxJTE8KK0FNRVRPVknEhiBSQUpLTworQU1FVE9WScSGIFJBVEtPCitBTUVUT1ZJxIYgUlVTTUlSQQorQU1FVE9WScSGIFNPRklKQQorQU1FVE9WScSGIFZPSklOCitBTUnFvUnEhiBEQU5JQ0EKK0FNScW9ScSGIE1JUk9TTEFWCitBTUnFvUnEhiBURU9ET1JBCitBTsSMScSGIEFMRUtTQU5EUkEKK0FOxIxJxIYgTUlMQU4KK0FOxIxJxIYgTkVWRU5LQSBEUgorQU7EkEVMScSGIEFOxJBFTEtPCitBTsSQRUxJxIYgQU5EUklKQQorQU7EkEVMScSGIEFOSUNBCitBTsSQRUxJxIYgQklMSkFOQQorQU7EkEVMScSGIEJMQUdJxaBBCitBTsSQRUxJxIYgQk/FvUlEQVIgRFIKK0FOxJBFTEnEhiBCT1JJVk9KRQorQU7EkEVMScSGIEJPUklWT0pFCitBTsSQRUxJxIYgQlJBTklTTEFWCitBTsSQRUxJxIYgREFSSU5LQQorQU7EkEVMScSGIERSQUdJQ0EKK0FOxJBFTEnEhiBEUkFHT01JUgorQU7EkEVMScSGIERVxaBBTktBCitBTsSQRUxJxIYgR09SQU4KK0FOxJBFTEnEhiBJTElKQQorQU7EkEVMScSGIElMSUpBCitBTsSQRUxJxIYgTUlMRU5LTworQU7EkEVMScSGIE1JTElWT0pFCitBTsSQRUxJxIYgTUlMT1JBRAorQU7EkEVMScSGIE1JTE9SQUQKK0FOxJBFTEnEhiBNSVJKQU5BCitBTsSQRUxJxIYgTUlSSkFOQQorQU7EkEVMScSGIE1JVEFSCitBTsSQRUxJxIYgTklLT0xBCitBTsSQRUxJxIYgUkFETUlMQQorQU7EkEVMScSGIFJBRE9KSUNBCitBTsSQRUxJxIYgUkFET1NMQVYKK0FOxJBFTEnEhiBTQVZBCitBTsSQRUxJxIYgU0xPQk9EQU4gRFIgTEVLQVIKK0FOxJBFTEnEhiBTTE9CT0RBTgorQU7EkEVMScSGIFNMT0JPREFOCitBTsSQRUxJxIYgU1RFVkFOCitBTsSQRUxJxIYgVkFTQQorQU7EkEVMScSGIFZBU08KK0FOxJBFTEnEhiBWRUxKS08KK0FOxJBFTEnEhiBWRVNFTElOCitBTsSQRUxJxIYgVkVTTkEKK0FOxJBFTEnEhiBWTEFEQQorQU7EkEVMScSGIFZPSklTTEFWCitBTsSQRUxLT1ZJxIYgQU7EkEVMS08KK0FOxJBFTEtPVknEhiBCT8W9SURBUgorQU7EkEVMS09WScSGIERSQUdPTUlSCitBTsSQRUxLT1ZJxIYtRFVEScSGIFpMQVRBCitBTsSQRUxLT1ZJxIYgSkVMSUNBCitBTsSQRUxLT1ZJxIYgSk9WQU4KK0FOxJBFTEtPVknEhiBMSURJSkEKK0FOxJBFTEtPVknEhiBMSlVCScWgQQorQU7EkEVMS09WScSGIE1JTEFOCitBTsSQRUxLT1ZJxIYgTUlMT8WgCitBTsSQRUxLT1ZJxIYgTUlMT1JBRAorQU7EkEVMS09WScSGIE1JUk9TTEFWCitBTsSQRUxLT1ZJxIYgTUlST1NMQVYKK0FOxJBFTEtPVknEhiBOQVRBxaBBCitBTsSQRUxLT1ZJxIYgUEVUQVIKK0FOxJBFTEtPVknEhiBQUkVEUkFHCitBTsSQRUxLT1ZJxIYgUkFET01JUgorQU7EkEVMS09WScSGIFJPQkVSVAorQU7EkEVMS09WScSGIFNJTUEKK0FOxJBFTEtPVknEhiBTTE9CT0RBTgorQU7EkEVMS09WScSGIFNUQU5JTUlSCitBTsSQRUxLT1ZJxIYgU1RBTktPCitBTsSQRUxLT1ZJxIYgU1RFVkFOCitBTsSQRUxLT1ZJxIYgU1RPSkFOCitBTsSQRUxLT1ZJxIYgU1ZFVElTTEFWCitBTsSQRUxLT1ZJxIYgU1ZFVElTTEFWCitBTsSQRUxLT1ZJxIYgU1ZFVE9NSVIKK0FOxJBFTEtPVknEhiBWQUxFUklKQQorQU7EkEVMS09WScSGIFZFUkEKK0FOxJBFTEtPVknEhiBWSU5LTworQU7EkEVMS09WScSGIFZJTktPCitBTsSQRUxLT1ZJxIYgVklOS08KK0FOxJBFTEtPVknEhiBWVUtBRElOCitBTsSQRUxLT1ZJxIYgWk9SQU4KK0FOxJBFTEtPVknEhiBaT1JBTgorQU7EkEVMS09WScSGIFpPUkEKK0FOxJBFTE9WScSGIExKVUJJxaBBCitBTsSQRUxPVknEhiBWRVJJQ0EKK0FOxJBFTE9WU0tJIMSQT1LEkEUKK0FOxJBJxIYgU1RFVkFOCitBTsSQVcWgScSGIMW9QVJLTworQU7EkFXFoEnEhiBKRUxJU0FWS0EKK0FOxJBVxaBJxIYgTUlMT1JBRAorQU7EkFXFoEnEhiBTTE9CT0RBTgorQU5BU1RBU0lKRVZJxIYgRFXFoEFOCitBTkFTVEFTSUpFVknEhiBKVUxLSUNBCitBTkFTVEFTSUpFVknEhiBaT1JJQ0EKK0FOQVNUQVNJSkVWScSGIFpPUklDQQorQU5BU1RBU09WIE1BUktPCitBTkFTVEFTT1YgTklLT0xBCitBTkFTVEFTT1ZTS0kgQUxFS1NBTkRBUgorQU5BVSBHQUJSSUVMQQorQU5BVSBTVEVWQU4KK0FOREFCQUsgTUFSS08KK0FOREFCQUtBIEFOVEUKK0FOREFCQUtBIFNMQVZJQ0EKK0FOREVSIElNUkUKK0FOREVSTE9OIFNURVZJQ0EKK0FOREVTRUxJxIYgxaBURUZJQ0EKK0FOREVWU0tJIFJBREUKK0FOREnEhiBTVkVUT1pBUgorQU5EScSGIFZMQURJTUlSCitBTkRPTklBRElTIE1JTElDQQorQU5ET05PViBESU1JVFJJSkUKK0FORE9OT1YgTkVOQUQKK0FORE9OT1YgWk9SSUNBCitBTkRPTk9WScSGIERJTUlUUklKRQorQU5EUkHFoElLIFBBVkVMCitBTkRSRUFUQSBTTEFWS08KK0FORFJFScSGIFJBRE9WQU4KK0FORFJFSkVWIEhFTEVOQQorQU5EUkVKRVYgTUlIQUpMTworQU5EUkVKRVZJxIYgQk9HT1NBVgorQU5EUkVKRVZJxIYgQk9SSVZPSkUKK0FORFJFSkVWScSGIEdSQURJTUlSCitBTkRSRUpFVknEhiBJVkFOCitBTkRSRUpFVknEhiBNQVJLTworQU5EUkVKRVZJxIYgTUlMQU4KK0FORFJFSkVWScSGIE1JUk9TTEFWCitBTkRSRUpFVknEhiBTTE9CT0RBTgorQU5EUkVKRVZJxIYgVEVPRE9SCitBTkRSRUpFVknEhiBWVUtBxaBJTiBESVBMIElORworQU5EUkVKScSGIMW9QVJLTworQU5EUkVKScSGIEJPUklTTEFWCitBTkRSRUpJxIYgRFJBR0FOCitBTkRSRUpJxIYgUkFET1NMQVYKK0FORFJFSknEhiBTTEFWT0xKVUIKK0FORFJFSknEhiBTUkVURU4KK0FORFJFSknEhiBWRVJBCitBTkRSRUpJxIYgWk9SQU4KK0FORFJFSknEhiBaT1JJQ0EKK0FORFJFUyBBTsSQRUxLTworQU5EUknEjEVLIEFOQQorQU5EUknEjEVLIExBSk/FoAorQU5EUknEjEVLIE1BR0RBTEVOQQorQU5EUknEjEVLIFBBVkFPCitBTkRSScSMRUsgUEFWTEUKK0FORFJJxIYgxb1FTEpLQQorQU5EUknEhiDFvUlLQQorQU5EUknEhiDFvUlWQU4KK0FORFJJxIYgxJBPUsSQRQorQU5EUknEhiDEkFVSxJBJTkEKK0FORFJJxIYgQUxFS1NBTkRBUgorQU5EUknEhiBCT0dPTEpVQgorQU5EUknEhiBCT0pBTgorQU5EUknEhiBCT1NJTEpLQQorQU5EUknEhiBCUkFOSU1JUgorQU5EUknEhiBCUkFOSVNMQVYKK0FORFJJxIYgREFSSU5LQQorQU5EUknEhiBET1NUQQorQU5EUknEhiBEUkFHQU4KK0FORFJJxIYgRFJBR09MSlVCCitBTkRSScSGIERVxaBBTgorQU5EUknEhiBEVcWgQU4KK0FORFJJxIYgRFXFoEFOCitBTkRSScSGIERVxaBBTgorQU5EUknEhiBEVcWgQU4KK0FORFJJxIYgRlJJREEKK0FORFJJxIYgSUxJSkEKK0FORFJJxIYgSkVMRU5BCitBTkRSScSGIEpFTElTQVZFVEEKK0FORFJJxIYgSk9WSUNBCitBTkRSScSGLUtPVkHEjEVWScSGIE9MSVZFUkEKK0FORFJJxIYgTEFaQVIKK0FORFJJxIYgTEFaQQorQU5EUknEhiBMSklMSkFOQQorQU5EUknEhiBMSklMSkFOQQorQU5EUknEhiBMVURNSUxBCitBTkRSScSGIE1JTEUKK0FORFJJxIYgTUlMT8WgCitBTkRSScSGIE1JTE/FoAorQU5EUknEhiBORUJPSsWgQQorQU5EUknEhiBORVNUT1IKK0FORFJJxIYgTklLT0xBCitBTkRSScSGIFBFUklDQQorQU5EUknEhiBQRVRBUgorQU5EUknEhiBSQURJU0FWCitBTkRSScSGIFJBRElTTEFWCitBTkRSScSGIFNBVkEKK0FORFJJxIYgU0lNQQorQU5EUknEhiBTTEFWS0EKK0FORFJJxIYgU0xBVktBCitBTkRSScSGIFNMQVZPTEpVQgorQU5EUknEhiBTTE9CT0RBTgorQU5EUknEhiBTVEVWQU4KK0FORFJJxIYgU1RFVkFOCitBTkRSScSGIFRPRE9SCitBTkRSScSGIFRPTUlTTEFWCitBTkRSScSGIFZFUklDQQorQU5EUknEhiBWTEFEQQorQU5EUknEhiBWTEFESU1JUkEKK0FORFJJxIYgVlVLT01BTgorQU5EUknEhiBaT1JBCitBTkRSSUdBIEFMRUtTQU5EQVIKK0FORFJJSkHFoEVWIEtPU0FOQQorQU5EUklKQcWgRVYgUlXFvUlDQQorQU5EUklKQcWgRVZJxIYgxb1FTEpLTworQU5EUklKQcWgRVZJxIYgQU5LQQorQU5EUklKQcWgRVZJxIYgQlJBTktPCitBTkRSSUpBxaBFVknEhiBKRUxFTkEKK0FORFJJSkHFoEVWScSGIFJBRE9WQU4KK0FORFJJSkVWScSGIMW9SVZBCitBTkRSSUpFVknEhiBKT1ZBTgorQU5EUklOIEFOxJBFTEtBCitBTkRSSU4gSVNJRE9SCitBTkRSSU4gS0FUSUNBCitBTkRSSU4gTUlMQURJTktBCitBTkRSSU4gTkFEQQorQU5EUk9DS0kgUEFMIERJUEwgSU5HCitBTkRVTEFKRVZJxIYgU1RFVk8KK0FOR0VCUkFOVCBJTE9OS0EKK0FOR0VMRVNLSSBWQU5HRUwKK0FOR0VMT1YgRFXFoEFOCitBTkdFTE9WIFNSRcSGS08KK0FOR0VMT1ZTS0kgRFXFoEFOCitBTkdFTE9WU0tJIElMSUpBCitBTkdFTE9WU0tJIEpBTkRSRQorQU5HRUxPVlNLSSBNSVRSRQorQU5HRUxPVlNLSSBUT01PCitBTknEjEnEhiDFvUlWT1RBCitBTknEjEnEhiBCUkFOSVNMQVYKK0FOScSMScSGIERSQUdBTgorQU5JxIxJxIYgRFXFoEFOIERJUEwgT0VDCitBTknEjEnEhiBGSUxJUAorQU5JxIxJxIYgSUxJSkEKK0FOScSMScSGIEtPVklOS0EKK0FOScSMScSGIE1JTEVOQSBESVBMIEVDQworQU5JxIxJxIYgTUlSS08KK0FOScSMScSGIE1JUk8KK0FOScSMScSGIE1JUk8KK0FOScSMScSGIE5FTkFECitBTknEjEnEhiBPU1RPSkEKK0FOScSMScSGIFBSRURSQUcKK0FOScSMScSGIFNUQUtBCitBTknEjEnEhiBTVE9KQU5LQQorQU5JxIxJxIYgVE9ET1IKK0FOScSMScSGIFpEUkFWS08KK0FOScSMSU4gxb1BUktPCitBTknEjElOIEJSQU5JU0xBVgorQU5JxaBJxIYgSkFTTUlOS0EKK0FOScSGIERVxaBBTgorQU5JxIYgU0xPQk9EQU4KK0FOScSGIFpPUkEKK0FOSUtBIEdBVlJJTE8KK0FOSUtBIEpVTElKRSBQUk9GRVNPUgorQU5JVEnEhiBJxaBUVkFOCitBTktJxIYgTUFSSkFOCitBTktJxIYgUEVSSUNBCitBTk9KxIxJxIYgxb1FTEpLTworQU5PSsSMScSGIExBWkFSCitBTk9KxIxJxIYgTUlMQU4KK0FOT0rEjEnEhiBSQURJVk9KCitBTk9KxIxJxIYgUkFESVZPSgorQU5PSsSMScSGIFNQQVNPSkUKK0FOT0rEjEnEhi1TVE9KS09WScSGIEpBU01JTktBCitBTlRBTCBBTEVLU0FOREFSCitBTlRBTCBWRVJPTkEKK0FOVEFOQVNJxIYgU1RBTktPCitBTlRBTkFTSUpFVknEhiBCT1JBCitBTlRFTEpFVknEhiBBTEVLU0FOREFSCitBTlRJxIYgxJBPS0EKK0FOVEnEhiDEkE9SxJBFCitBTlRJxIYgxJBPUsSQRQorQU5UScSGIEFMRUtTQU5EQVIKK0FOVEnEhiBBTkdFTElOQQorQU5UScSGIEJPxaBLTworQU5UScSGIEJPxb1JREFSIERSIFNUT01BVE9MT0cKK0FOVEnEhiBCT8W9SURBUgorQU5UScSGIEJSQU5LTworQU5UScSGIEJSQVRJU0xBVgorQU5UScSGIERJTUlUUklKRQorQU5UScSGIERSQUdBTgorQU5UScSGIERSQUdBTgorQU5UScSGIERSQUdJxaBBCitBTlRJxIYgRFXFoEFOS0EKK0FOVEnEhiBEVcWgQU5LQQorQU5UScSGIEpVTEtBCitBTlRJxIYgS09TVEEKK0FOVEnEhiBMSlVCScWgQQorQU5UScSGIExVS0EKK0FOVEnEhiBNQVJJQ0EKK0FOVEnEhiBNQVJJSkEKK0FOVEnEhiBNSUxBTgorQU5UScSGIE1JTEFOCitBTlRJxIYgTUlMQU4KK0FOVEnEhiBNSUxBTgorQU5UScSGIE1JTElWT0oKK0FOVEnEhiBNSUxVVElOCitBTlRJxIYgTUlPRFJBRworQU5UScSGIE1JUktPCitBTlRJxIYgTUlSS08KK0FOVEnEhiBORU5BRAorQU5UScSGIE5FVkVOQQorQU5UScSGIE9MR0EKK0FOVEnEhiBQQVZMRQorQU5UScSGIFBBVkxFCitBTlRJxIYgUEFWTEUKK0FOVEnEhiBQRVRBUgorQU5UScSGIFJBRE9KS08KK0FOVEnEhiBSQURPTUlSCitBTlRJxIYgUkFET1ZBTgorQU5UScSGIFNMQcSQQU5BCitBTlRJxIYgU0xBVklDQQorQU5UScSGIFNMT0JPREFOCitBTlRJxIYgU01JTEpBCitBTlRJxIYgU01JTEpBCitBTlRJxIYgU09GSUpBCitBTlRJxIYgU1RBTsSMQQorQU5UScSGIFNUQU5JU0xBVgorQU5UScSGIFNUQU5PSkUKK0FOVEnEhiBTVE9KQU4KK0FOVEnEhiBTVkVUSVNMQVYKK0FOVEnEhiBTVkVUTEFOQQorQU5UScSGIFNWRVRPVklECitBTlRJxIYgVkVSSUNBCitBTlRJxIYgVlVLQcWgSU4KK0FOVEnEhiBaQUdPUktBCitBTlRJxIYgWkxBVEFOCitBTlRJTiBJVkFOS0EKK0FOVElOIFZFTEVNSVIKK0FOVE9MT1ZJxIYgSVZBTgorQU5UT05JxIYgxb1JVktPIERJUEwgSU5HCitBTlRPTknEhiDFvUlWS08KK0FOVE9OScSGIMSQT1LEkEUKK0FOVE9OScSGIEJPUklWT0oKK0FOVE9OScSGIEJSQU5LTworQU5UT05JxIYgRE9CUklWT0oKK0FOVE9OScSGIERSQUdBTgorQU5UT05JxIYgRFJBR0FOCitBTlRPTknEhiBHT1JEQU5BCitBTlRPTknEhiBKQURSQU5LQQorQU5UT05JxIYgSkFTTUlOS0EKK0FOVE9OScSGIEpFTEVOQQorQU5UT05JxIYgTEpVQklDQQorQU5UT05JxIYgTUFSSUpBCitBTlRPTknEhiBNSUxBTgorQU5UT05JxIYgTUlMQU4KK0FOVE9OScSGIE1JTEFOCitBTlRPTknEhiBNSUxJVk9KCitBTlRPTknEhiBORUJPSsWgQSBESVBMIElORworQU5UT05JxIYgUkFESVNBVgorQU5UT05JxIYgUkFOS08KK0FOVE9OScSGIFJBVEtPCitBTlRPTknEhiBTSU1BCitBTlRPTknEhiBTTEFWSUNBCitBTlRPTknEhiBTTE9CT0RBTgorQU5UT05JxIYgU0xPQk9EQU4KK0FOVE9OScSGIFNURVZBTgorQU5UT05JxIYgWk9SS0EKK0FOVE9OSUpFVknEhiBBTEVLU0FOREFSCitBTlRPTklKRVZJxIYgQklMSkFOQQorQU5UT05JSkVWScSGIEJPxb1VUgorQU5UT05JSkVWScSGIEJSQU5LTworQU5UT05JSkVWScSGIERBTU5KQU4KK0FOVE9OSUpFVknEhiBEVcWgQU4gRFIKK0FOVE9OSUpFVknEhiBEVcWgQU4KK0FOVE9OSUpFVknEhiBMSklMSkEKK0FOVE9OSUpFVknEhiBQRVRBUgorQU5UT05JSkVWScSGIFNURVZBCitBTlRPTklOSSBNQVJJSkEKK0FOVE9OT1ZJxIYgTUlMSVZPSgorQU5UT1ZJxIYgTEpVQklDQQorQU5UVU4gTUlMT8WgCitBTlRVTk9WScSGIEFORFJJSkEKK0FOVFVOT1ZJxIYgQk9HREFOCitBTlRVTk9WScSGIEdJWkVMQQorQU5UVU5PVknEhiBMQVpBUgorQU5UVU5PVknEhiBNTEFERU4KK0FOVFVOT1ZJxIYgTU9NxIxJTE8KK0FOVFVOT1ZJxIYgTkVEQQorQU5UVU5PVknEhiBUT01JU0xBVgorQU5VxIxJTiBORU5BRAorQU5VS0nEhiBLT1NUQQorQVBBUkFDIFNWRVRPWkFSCitBUEFUT1ZJxIYgSk9WQU4KK0FQQVRPVknEhiBMQVpBUgorQVBBVE9WScSGIE5JS09MQQorQVBBVE9WScSGIFNBVkEKK0FQRVJMScSGIFZPSklOCitBUEnEhiDEkE9SxJBFCitBUEnEhiBBTktJQ0EKK0FQScSGIEJSQU5LTyBEUiBWRVRFUklORQorQVBJxIYgQlJBTktPCitBUEnEhiBEVcWgQU4KK0FQScSGIEpVTEtBCitBUEnEhiBLQVRBUklOQQorQVBJxIYgTUlMQU4KK0FQScSGIE1JTEFOCitBUEnEhiBNSUxJQ0EKK0FQScSGIE1JTE/FoAorQVBJxIYgTUlMT1JBRAorQVBJxIYgTUlSSkFOQQorQVBJxIYgTUlST1NMQVYKK0FQScSGIE9MSVZFUkEKK0FQScSGIFBBSkEKK0FQScSGIFBBSkEKK0FQScSGIFJBREnFoEtPCitBUEnEhiBSQURJVk9KRQorQVBJxIYgUkFUT01JUiBESVBMIElORworQVBJxIYgU1JFVEEKK0FQScSGIFNURVZBTgorQVBJxIYgU1RPSkFOCitBUEnEhiBTVkVUT1pBUgorQVBJxIYgU1ZFVE9aQVIKK0FQScSGIFZFUkEKK0FQScSGIFpEUkFWS08KK0FQScSGIFpPUktBCitBUE9TVE9MT1YgTEpVQk9NSVIKK0FQT1NUT0xPVknEhiBCT8W9SURBUgorQVBPU1RPTE9WScSGIE1JTE9SQUQKK0FQUk8gRlJBTkpBCitBUFJPIEpBTk/FoAorQVBSTyBKT8W9RUYKK0FQUk8gTEFTTE8KK0FQUk8gTEpVQk9NSVIKK0FQUk8gUklIQVJECitBUFJPLVNBTUFSRMW9SUpBIFZFUkEgRFIKK0FQUk8gU1RFVkFOCitBUFJPIFpPTFRBTgorQVBUIEJPR09MSlVCCitBUFQgTUFSS08KK0FSxaBJTk9WIMSQT1LEkEUKK0FSxaBJTk9WIE1JTE9SQUQKK0FSxJBFTEFNLcWgUkFLIEVESVQKK0FSxJBFTEFOIEnFoFRWQU4KK0FSQcSMScSGIFNMT0JPREFOCitBUkHEkEFOSU4gVElNT1RJSkUKK0FSQcSQQU5TS0kgS0FUSUNBCitBUkHEkEFOU0tJIE5BREEKK0FSQcSQQU5TS0ktUkFKS09WIE1BSkEKK0FSQUNLSSBFUsW9SUtBCitBUkFDS0nEhiDEkE9SxJBFCitBUkFDS0nEhiBNSUxJQ0EKK0FSQUNLScSGIFpMQVRPSkUgRElQTCBQUkFWTklLCitBUkFEU0tJIEFMRUtTQU5EQVIgRElQTCBJTkcKK0FSQURTS0kgSVZBTktBCitBUkFEU0tJIE1JTE9SQUQKK0FSQURTS0kgTUlUQQorQVJBRFNLSSBSQURJVk9KCitBUkFEU0tJIFNPRklKQQorQVJBRFNLSSBTUkVURU5LQQorQVJBRFNLSSBTVE9KQU5LQQorQVJBRFNLSSBaTEFUQQorQVJBTElDQSBSQUpLTworQVJBTUJBxaBJxIYgxJBPUsSQRQorQVJBTUJBxaBJxIYgRFJBR0FOCitBUkFOxIxJxIYgQUxFS1NBTkRBUgorQVJBTsSMScSGIEtBUkxPCitBUkFOxJBFTE9WScSGIEFMRUtTQU5EQVIKK0FSQU7EkEVMT1ZJxIYgQk/FvUlEQVIKK0FSQU7EkEVMT1ZJxIYgRElNSVRSSUpFCitBUkFOxJBFTE9WScSGIE5KRUdPVkFOCitBUkFOxJBFTE9WScSGIFNBVkEKK0FSQU7EkEVMT1ZJxIYgU1JFVEVOCitBUkFOxJBVUyBBTlRPTgorQVJBTklDS0kgRElOS0EKK0FSQU5JQ0tJIEdMSUdPUklKRQorQVJBTklDS0kgTUlMQU5BCitBUkFOSUNLSSBNSUxJQ0EKK0FSQU5JQ0tJIE1JTE/FoCBEUiBQUk9GCitBUkFOSUNLSSBaQUdPUktBCitBUkFOSUNLSSBaT1JJQ0EKK0FSQU5JVE9WScSGIExBWkFSCitBUkFOSk/FoCBQQUwKK0FSQVDEjEnEhiBQQcWgQUdBCitBUkFQSU5BQyBNSUxJQ0EKK0FSQVBPVknEhiBEUkFHTworQVJBUE9WScSGIERSQUdVVElOCitBUkFSIFBFVEFSCitBUkFTIEJSQU5LTworQVJBUyBKVUdPU0xBVgorQVJBUyBMSlVCTworQVJCRVMgTkVOQUQKK0FSQlVOScSGIFBFUkEKK0FSQlVUSU5BIMSQVVLEkElOS0EKK0FSQlVUSU5BIEJSQU5JU0xBVgorQVJCVVRJTkEgTUFSSUpBCitBUkJVVElOQSBOQVRBTElKQQorQVJCVVRJTkEgVkVMSU1JUgorQVJCVVRJTkEgVkxBRElNSVIKK0FSRMW9T04gTkFUQUxJSkEKK0FSREFMScSGIEpPVkFOS0EKK0FSREFMScSGIExFUE9TQVZBCitBUkRBTEnEhiBTTEFWS08KK0FSREVMSkFOIEpPTgorQVJERUxKQU4gTUFSSUpBCitBUkRFTEpBTiBQRVRBUgorQVJET0NLSSBJxaBUVkFOCitBUkXFvUlOQSDEkE9SxJBFCitBUkXFvUlOQSBCT8WgS08KK0FSSUZJIElCUkFISU0KK0FSSUZPVknEhiBTUkJJQ0EKK0FSSVpBVE9WScSGIEpBU01JTkEKK0FSS1VMQSBCTEHFvUUKK0FSS1VMQSBTTEFWSUNBCitBUktVTEEgU0xBVklDQQorQVJMT1YgRFJBR0FOCitBUk1BQ0tJIEJSQU5JU0xBVgorQVJNQUNLSSBSQURPVkFOCitBUk1BQ0tJIFNPRklKQQorQVJNQUNLSSBTVEVWQU4KK0FSTUJSVVNURVIgTEFTTE8KK0FSTUJSVVNURVIgTUFSSUpBCitBUk5BVVQgxJBPUsSQRQorQVJOQVVUIERSQUdJTkpBCitBUk5BVVQgTUlMSUNBCitBUk5BVVQgVkFTQQorQVJOT1VTIFRFUkVaQQorQVJOT1ZMSkVWScSGIEtBVEFSSU5BCitBUk9LLURJVkpBSyBHT1JEQU5BCitBUlBBxaBJIMSQT1LEkEUKK0FSUEHFoEkgTEFTTE8KK0FSU0VOScSGIMW9SVZLTworQVJTRU5JxIYgQlJBVElTTEFWQQorQVJTRU5JxIYgRElNSVRSSUpFCitBUlNFTknEhiBEUkHFoEtPCitBUlNFTknEhiBKT1ZBTktBCitBUlNFTknEhiBNT01JUgorQVJTRU5JxIYgT0xHSUNBCitBUlNFTknEhiBWRUxKS08KK0FSU0VOSUpFVknEhiBCT1JJU0xBVgorQVJTRU5JSkVWScSGIEpPVkFOCitBUlNFTklKRVZJxIYgTUlMQU4KK0FSU0VOSUpFVknEhiBNSUxPUkFECitBUlNFTklKRVZJxIYgTUlMT1ZBTgorQVJTRU5JSkVWScSGIE1JTFVOS0EKK0FSU0VOSUpFVknEhiBNT03EjElMTyBEUgorQVJTRU5JSkVWScSGIE1PTcSMSUxPCitBUlNFTklKRVZJxIYgTU9NSVIKK0FSU0VOSUpFVknEhiBTTEFWS0EKK0FSU0VOSUpFVknEhiBTTUlMSkEKK0FSU0VOSUpFVknEhiBWT0pJU0xBVgorQVJTRU5JSkVWScSGIFZPSklTTEFWCitBUlNFTklOIMSQVVLEkElOS0EKK0FSU0VOSU4gQUxFS1NBTkRBUgorQVJTRU5JTiBBTEVLU0FOREFSCitBUlNFTklOIEJPR09MSlVCCitBUlNFTklOIEdBSkEKK0FSU0VOSU4gSk9WQU4KK0FSU0VOSU4gSk9WQU4KK0FSU0VOSU4gS09TVEEKK0FSU0VOSU4gS1JJU1RJTkEKK0FSU0VOSU4gTUFSSUpBCitBUlNFTklOIE1JVEEKK0FSU0VOSU4gTUxBREVOCitBUlNFTklOIE1MQURFTgorQVJTRU5JTiBTVkVUT1pBUgorQVJTRU5JTiBWSVRPTUlSCitBUlNFTklOIFZMQURJTUlSCitBUlNFTkpFViBBTEVLU0VKCitBUlNFTk9WIEFMRUtTQQorQVJTRU5PViBBUknFoEtPCitBUlNFTk9WIEJSQU5JU0xBVgorQVJTRU5PViBCUkFOSVNMQVYKK0FSU0VOT1YgQlJBTklTTEFWCitBUlNFTk9WIERSQUdJQ0EKK0FSU0VOT1YgS0FUSUNBCitBUlNFTk9WIE1JTEFOCitBUlNFTk9WIE1JUk9TTEFWCitBUlNFTk9WIFBFUkEKK0FSU0VOT1YgUEVUQVIKK0FSU0VOT1YgUEVUQVIKK0FSU0VOT1YgUkFESVZPSgorQVJTRU5PViBTQcWgQQorQVJTRU5PViBWQVNJTElKRQorQVJTRU5PVknEhiDFvUlWS08KK0FSU0VOT1ZJxIYgTUFSSUNBCitBUlNFTk9WScSGIE5BREEgRFIKK0FSU0VOT1ZJxIYgUkFESVNBVgorQVJTRU5PVknEhiBSQURPTUlSCitBUlNFTk9WScSGIFNBVk8KK0FSU0VOT1ZJxIYgU1LEkEFOCitBUlNFTk9WScSGIFNUT0pBRElOCitBUlNFTk9WScSGIFRSSVZPCitBUlNFTk9WScSGIFZFU05BCitBUlNFTk9WScSGIFZMQURBCitBUlNFTk9WScSGIFpPUkFOCitBUlNJxIYgxIxFRE9NSVIKK0FSU0nEhiDFvUFSS08KK0FSU0nEhiDFvUlWS08KK0FSU0nEhiBBTEVLU0FOREFSCitBUlNJxIYgRE9CUklWT0pFCitBUlNJxIYgRFXFoEtPCitBUlNJxIYgRVLFvUVCRVQKK0FSU0nEhiBMQVpBUgorQVJTScSGIExJRElKQQorQVJTScSGIExKVUJJxaBBCitBUlNJxIYgTUFSSUpBCitBUlNJxIYgTUlIQUlMTworQVJTScSGIE1JSE9MSktBCitBUlNJxIYgTUlMT8WgCitBUlNJxIYgTUlMT1NMQVYgRFIKK0FSU0nEhiBNSUxVVElOCitBUlNJxIYgTUlPRFJBRworQVJTScSGIE1JT01JUgorQVJTScSGIE1JUkpBTkEKK0FSU0nEhiBNSVJKQU5BCitBUlNJxIYgTU9NxIxJTE8KK0FSU0nEhiBPQlJBRAorQVJTScSGIFBFUklDQQorQVJTScSGIFBFVEFSCitBUlNJxIYgUkFET01JUgorQVJTScSGIFJBRE9TQVYKK0FSU0nEhiBTQVZFVEEKK0FSU0nEhiBTTEFWS0EKK0FSU0nEhiBTTEFWT0pLQQorQVJTScSGIFNMQVZPTEpVQgorQVJTScSGIFNUQU5LTworQVJTScSGIFRPTUlTTEFWCitBUlNJxIYgVE9NSVNMQVYKK0FSU0nEhiBUT01JU0xBVgorQVJTScSGIFRSQUpBTgorQVJTScSGIFpPUkFOCitBUlNJxIYgWk9SQU4KK0FSU0nEhiBaT1JBTgorQVJTSUtJTiBNSUxBTktPCitBUlNJS0lOIFBBVkxFCitBUlNMQU5BR0nEhiBOQcSQQQorQVJTT1ZJxIYgQUxFS1NBTkRBUgorQVJTT1ZJxIYgRE9CUk9TQVYKK0FSU09WScSGIEpPVkFOCitBUlNPVknEhiBNQVRFSkEKK0FSU09WScSGIE1JTEFOCitBUlNPVknEhiBNSUxJQ0EKK0FSVCDEkFVSQQorQVJUIFpWT05JTUlSCitBUlRVS09WIERVxaBBTgorQVJUVUtPViBPTEdBCitBUlVMQSBNScSGTworQVJWQUkgQUxFS1NBTkRBUgorQVJWQUkgQVJQQUQKK0FSVkFJIERBTklDQQorQVJWQUkgUEFWQU8KK0FSVkFJIFRFUkVaQQorQVJWQUpJIFBBVkFPCitBUlZBTklUSURJUyBTVEVSSk9TCitBU0FOSSBBU0FOCitBU0FOSSBIVVJJxaBBCitBU0FOSSBOQUlMSkEKK0FTQU5JIE5BWklGQQorQVNBTk9WIFpPUkEKK0FTQU5PVknEhiBNSUxFVkEKK0FTQU5PVknEhiBTVEFOS0EKK0FTQU5PVknEhiBaVUhSQQorQVNBTk9WU0tJIFJPWkFMSUpBCitBU0nEhiBNSUxBTgorQVNPREkgSkFOT8WgCitBU09ESSBKT8W9RUYKK0FTT0RJIE1JUktPCitBU09UScSGIE1VQU1FUgorQVNUQUhPVi1KRVJFTUnEhiBNQVJJSkEKK0FTVEFMT8WgIEnFoFRWQU4KK0FTVVJExb1JxIYgS1JJU1RJTkEKK0FTVVJExb1JxIYgTFVLQQorQVNVUkTFvUnEhiBNSUxPxaAKK0FTVVJExb1JxIYgTUlMT8WgCitBU1VSRMW9ScSGIE1JTE/FoAorQVNVUkTFvUnEhiBNT0xPxaAKK0FTVVJExb1JxIYgTklLT0xBCitBU1VSRMW9ScSGIE5JS09MQQorQVNVUkTFvUnEhiBTT0ZJSkEKK0FTVVJExb1JxIYgU1RFVkFOCitBU1VSRMW9ScSGIFRFT0RPUgorQVNVUkTFvUnEhiBURU9ET1IKK0FUQU5BQ0tPViDEkE9SxJBFCitBVEFOQUNLT1YgQk9SQQorQVRBTkFDS09WIEJPUklWT0oKK0FUQU5BQ0tPViBEUkFHQU4KK0FUQU5BQ0tPViBJTE9OQQorQVRBTkFDS09WIE1BUklKQQorQVRBTkFDS09WIE1JUkpBTkEKK0FUQU5BQ0tPViBNSVJLTworQVRBTkFDS09WIE5PVkEKK0FUQU5BQ0tPViBPTEdBCitBVEFOQUNLT1YgUEFWTEUKK0FUQU5BQ0tPViBTQcWgQQorQVRBTkFDS09WIFNURVZBTgorQVRBTkFDS09WIFNURVZBTgorQVRBTkFDS09WScSGIMW9SVZBTgorQVRBTkFDS09WScSGIMSQT1LEkEUKK0FUQU5BQ0tPVknEhiBBTEVLU0FOREFSCitBVEFOQUNLT1ZJxIYgQU5BCitBVEFOQUNLT1ZJxIYgQk9HT0JPSgorQVRBTkFDS09WScSGIEJPUklTTEFWCitBVEFOQUNLT1ZJxIYgQk9SSVNMQVYKK0FUQU5BQ0tPVknEhiBCUkFOS0EgRElQTCBQUkFWTklLCitBVEFOQUNLT1ZJxIYgRFJBR0nFoEEgRFIKK0FUQU5BQ0tPVknEhiBEVcWgQU4gRFIgTEVLQVIKK0FUQU5BQ0tPVknEhiBHUkFESU1JUgorQVRBTkFDS09WScSGIElWQU4KK0FUQU5BQ0tPVknEhiBLQVRBUklOQQorQVRBTkFDS09WScSGIExBWkEKK0FUQU5BQ0tPVknEhiBMVUtBCitBVEFOQUNLT1ZJxIYgTUlMRU5LTworQVRBTkFDS09WScSGIE1JTEVOS08KK0FUQU5BQ0tPVknEhiBNSVJLTworQVRBTkFDS09WScSGIE1MQURFTgorQVRBTkFDS09WScSGIFJBVEtPCitBVEFOQUNLT1ZJxIYgU0FWQQorQVRBTkFDS09WScSGIFNMQcSQQU5BCitBVEFOQUNLT1ZJxIYgU1RFVkFOCitBVEFOQUNLT1ZJxIYgU1ZFVE9NSVIKK0FUQU5BQ0tPVknEhiBURU9ET1IgRFIKK0FUQU5BQ0tPVknEhiBUT8WgQQorQVRBTkFDS09WScSGIFZBU0lMSktBCitBVEFOQUNLT1ZJxIYgVkxBRElNSVIgRElQTCBJTkcKK0FUQU5BQ0tPVknEhiBaT1JBTgorQVRBTkFTSUFESVMgSFJJU1RPRk9ST1MKK0FUQU5BU0lKQURJUyBBTkVTVEkKK0FUQU5BU0tPVknEhiBHT1JEQU5BCitBVEFOQVNLT1ZJxIYgTUlSSkFOQQorQVRBTkFTS09WScSGIE1JUk9MSlVCCitBVEFOQVNPU0tJIFNURVZPCitBVEFOQVNPViBNQVJLTworQVRBTkFTT1ZTS0kgUklTVE8KK0FUQVJBQyBEUkFHT8WgCitBVEVMSkVWScSGIERVxaBBTgorQVRFTEpFVknEhiBNSUxPVkFOCitBVEnEhiBEQU5JQ0EKK0FUTEFHScSGIEJSQU5LTworQVRMQUdJxIYgSk9WQU4KK0FUTEFHScSGIE1JTEFOCitBVExBR0nEhiBNSUxJQ0EKK0FUTEFHScSGIFpEUkFWS08KK0FUTEFHScSGIFpEUkFWS08KK0FUTEFTIMSQT1LEkEUgRFIKK0FUTEFTIElWQU4KK0FUTEFTIE1JUktPCitBVExJxIYgTEFaQVIKK0FUTEnEhiBNSUxBTgorQVXFvUlOQSBNSUxJQ0EKK0FVxb1JTkEgTUlSQQorQVXFvUlOQSBNSVJPU0xBVkEKK0FVRVIgTUFSQQorQVVHVVNUSU4gSVZJQ0EKK0FVR1VTVElOT1YgQU5UT04KK0FVR1VTVElOT1YgSVZBTgorQVVMSUsgSUxPTkEKK0FVUkVMSUpBTiDEkEFOCitBVkFLVU1PVknEhiBMSlVCSU5LQQorQVZBS1VNT1ZJxIYgTklLT0xBCitBVkRBTE9WScSGIEdPUkRBTkEKK0FWREFMT1ZJxIYgTUlMQURJTgorQVZEQUxPVknEhiBWSURPU0FWQQorQVZEQUxPVknEhiBWTEFESU1JUgorQVZESSBSQU1BREFOCitBVkRJxIYgQUxFS1NBTkRBUgorQVZEScSGIEZVQUQKK0FWREnEhiBHT1JEQU5BCitBVkRJxIYgSFVTTklKQQorQVZEScSGIE1BTEnEhgorQVZEScSGIE1VTElKQQorQVZFTUFSSUEgUEVUQVIKK0FWUkFNT1YgQk/FoEtPCitBVlJBTU9WIEJSQU5JU0xBVgorQVZSQU1PViBESU1JVFJJSkUKK0FWUkFNT1YgRE9CUklMQQorQVZSQU1PViBHQVZSQQorQVZSQU1PViBJVkFOCitBVlJBTU9WIEpPVkFOS0EKK0FWUkFNT1YgSk9WQU4KK0FWUkFNT1YgTEpJTEpBTkEKK0FWUkFNT1YgTUlMQURJTgorQVZSQU1PViBNSUxFVkEKK0FWUkFNT1YgTUlMS0EKK0FWUkFNT1YgTUlSSkFOQQorQVZSQU1PViBNSVRBCitBVlJBTU9WIFBBSkEKK0FWUkFNT1YgUEVSQQorQVZSQU1PViBQRVRBUgorQVZSQU1PViBSQURJVk9KCitBVlJBTU9WIFNURVZBTgorQVZSQU1PViBTVkVUT0xJSworQVZSQU1PViBTVkVUT0xJSworQVZSQU1PViBaT1JBTgorQVZSQU1PViBaT1JBTgorQVZSQU1PVknEhiDFvUlWS08KK0FWUkFNT1ZJxIYgQk9SSVZPSkUKK0FWUkFNT1ZJxIYgREFSSU5LQQorQVZSQU1PVknEhiBESU1JVFJJSkUKK0FWUkFNT1ZJxIYgRElNSVRSSUpFCitBVlJBTU9WScSGIERSQUdPCitBVlJBTU9WScSGIEZSQU5DScWgS0EKK0FWUkFNT1ZJxIYgR09KS08KK0FWUkFNT1ZJxIYgSUxJTktBCitBVlJBTU9WScSGIEpPVkFOIERSIExFS0FSCitBVlJBTU9WScSGIExKVUJJxaBBCitBVlJBTU9WScSGIExKVUJJTktPCitBVlJBTU9WScSGIExKVUJPTUlSCitBVlJBTU9WScSGIE1JTEFOCitBVlJBTU9WScSGIE1JTEFOCitBVlJBTU9WScSGIE1JTEFOCitBVlJBTU9WScSGIE1JTElWT0oKK0FWUkFNT1ZJxIYgTUlSSkFOQQorQVZSQU1PVknEhiBNSVRBCitBVlJBTU9WScSGIE1PTUlSCitBVlJBTU9WScSGIE5JS09MQQorQVZSQU1PVknEhiBSQURJVk9KCitBVlJBTU9WScSGIFJBRE9TTEFWCitBVlJBTU9WScSGIFJBVEtPCitBVlJBTU9WScSGIFJBVEtPCitBVlJBTU9WScSGIFNJTknFoEEKK0FWUkFNT1ZJxIYgU1RBTktBCitBVlJBTU9WScSGIFNURVZBTgorQVZSQU1PVknEhiBURU9ET1IKK0FWUkFNT1ZJxIYgVE9NQQorQVZSQU1PVknEhiBWRUxKS08KK0FWUkFNT1ZJxIYgVkVSQQorQVZSQU1PVknEhiBWRVJBCitBVlJBTU9WScSGIFZFUkEKK0FWUkFNT1ZTS0kgQk9SSVMKK0FaTEVOIEJPUklTTEFWCitCQcSMQSDFoEFORE9SCitCQcSMQSBMQURJU0xBVgorQkHEjEFOT1ZJxIYgTkVOQUQKK0JBxIxJxIYgxIxFRE9NSVIgUFJPRkVTT1IKK0JBxIxJxIYgxb1JVktPCitCQcSMScSGIMSQT1LEkEUKK0JBxIxJxIYgQU5URQorQkHEjEnEhiBCUkFOS0EKK0JBxIxJxIYgRFJBR09TTEFWCitCQcSMScSGIEpPVkFOCitCQcSMScSGIEtBUkEKK0JBxIxJxIYgTUFSSUpBCitCQcSMScSGIE1JTEFOIERSIFZFVEVSSU5FCitCQcSMScSGIE1JTElDQQorQkHEjEnEhiBNSVJLTworQkHEjEnEhiBOSUtPTEEKK0JBxIxJxIYgU01JTEpBTkEKK0JBxIxLQUxJxIYgxJBPUsSQRQorQkHEjEtBTEnEhiBBTEVLU0FOREFSCitCQcSMS0FMScSGIERPQlJBCitCQcSMS0FMScSGIERPQlJJQ0EKK0JBxIxLQUxJxIYgSk9WQU4KK0JBxIxLQUxJxIYgTEFaQVIKK0JBxIxLQUxJxIYgTEpVQklDQQorQkHEjEtBTEnEhiBMSlVCT01JUgorQkHEjEtBTEnEhiBNSUxBTgorQkHEjEtBTEnEhiBNSUxBCitCQcSMS0FMScSGIE5PVkFLCitCQcSMS08gTUlMQU5BCitCQcSMS08gUEVUQVIKK0JBxIxMScSGIMSQT1LEkEUKK0JBxIxMScSGIEJSQU5JU0xBVgorQkHEjExJxIYgTEFaQVIKK0JBxIxMScSGIExKVUJJQ0EKK0JBxIxMSUpBIEpPU0lQCitCQcSMTElKQSBNQVJLTworQkHEjExJSkEgUlXFvUlDQQorQkHEjExJSkEgU0xBVklDQQorQkHEjFVMT1YgU1RFVkFOCitCQcSMVkFOSU4gxb1JVk9KSU4KK0JBxIxWQU5TS0kgQk/FoEtPCitCQcSMVkFOU0tJIFNURVZBTiBEUiBJTkcKK0JBxaAgSlVMSUEKK0JBxaBBIERVxaBBTgorQkHFoEEgSk9WQU4KK0JBxaBFVknEhiDEjEVET01JUgorQkHFoEVWScSGIE5FVkVOS0EKK0JBxaBJxIxFVknEhiBWT0pJTiBEUgorQkHFoEnEjEVWScSGIFZPSklOCitCQcWgScSGIMW9QVJLTworQkHFoEnEhiDEkFVSTworQkHFoEnEhiBBTEVLU0FOREFSCitCQcWgScSGIEJJTEpBTkEKK0JBxaBJxIYgQk/FvU8KK0JBxaBJxIYgRFJBR1VUSU4KK0JBxaBJxIYgRFJBR1VUSU4KK0JBxaBJxIYgRFXFoEFOCitCQcWgScSGIERVxaBBTgorQkHFoEnEhiBEVcWgQU4KK0JBxaBJxIYgRFXFoEFOCitCQcWgScSGIERVxaBBTgorQkHFoEnEhiBGUkFOSk8KK0JBxaBJxIYgR0FWUkEKK0JBxaBJxIYgR1JVSklDQQorQkHFoEnEhiBJRFJJWgorQkHFoEnEhiBJTElKQQorQkHFoEnEhiBKQU5LTworQkHFoEnEhiBKRUxBCitCQcWgScSGIEpFTEVOQQorQkHFoEnEhiBKT1ZBTgorQkHFoEnEhiBKT1ZBTgorQkHFoEnEhiBKVVJFCitCQcWgScSGIExBWkFSCitCQcWgScSGIExKVUJJQ0EKK0JBxaBJxIYgTEpVQklDQQorQkHFoEnEhiBMVUtBCitCQcWgScSGIE1BUklKQQorQkHFoEnEhiBNSUxBTgorQkHFoEnEhiBNSUxBTgorQkHFoEnEhiBNSUxBCitCQcWgScSGIE1JTElDQQorQkHFoEnEhiBNSUxVVElOIERJUEwgSU5HCitCQcWgScSGIE1JVEEKK0JBxaBJxIYgTkVERUxKS0EKK0JBxaBJxIYgTkVTVE9SCitCQcWgScSGIE5JS09MQQorQkHFoEnEhiBQQVZMRQorQkHFoEnEhiBQRVRBUgorQkHFoEnEhiBSQURPU0xBVgorQkHFoEnEhiBTQVZBCitCQcWgScSGIFNBVkEKK0JBxaBJxIYgU0lNS0EKK0JBxaBJxIYgU0xPQk9EQU5LQQorQkHFoEnEhiBTTE9CT0RBTktBCitCQcWgScSGIFNMT0JPREFOCitCQcWgScSGIFNMT0JPREFOCitCQcWgScSGIFNPTkpBCitCQcWgScSGIFNQQVNPSkUKK0JBxaBJxIYgU1RFVkFOCitCQcWgScSGIFRPTUlTTEFWCitCQcWgScSGIFZFUkEKK0JBxaBJxIZFVknEhiBERVNBCitCQcWgSUNBIE1JTEFOCitCQcWgSUNBIFJBTktPCitCQcWgSUNBIFJJU1RPCitCQcWgS0FMTyBNQVJLTworQkHFoE5FQyBJVkFOCitCQcWgVEnEhiBCT8W9SURBUgorQkHFoFRJxIYgTUlMS0EKK0JBxaBUScSGIFBFVEFSCitCQcWgVE9WQU5PViBEQU5JQ0EKK0JBxaBUT1ZBTk9WIFNURVZBTgorQkHFoFRPVkFOT1ZJxIYgSVZBTgorQkHFoFRPVkFOT1ZJxIYgTUlMQU4KK0JBxIZBTiBEUkFHT01JUgorQkHEhkFOT1YgRFJBR0lDQQorQkHEhkFOT1YgU1RBTktPCitCQcSGQU5PViBTVEVWQU4KK0JBxIZBTk9WScSGIERBTklDQQorQkHEhkFOT1ZJxIYgSlVDQQorQkHEhkFOT1ZJxIYgTUlMQU4KK0JBxIZBTk9WScSGIE1JTE/FoAorQkHEhkFOT1ZJxIYgTkVNQU5KQQorQkHEhkFOT1ZJxIYgU0lOScWgQQorQkHEhkFOT1ZJxIYgU1RPSkFOCitCQcSGScSGIExKSUxKQU5BCitCQcSGScSGIExKVUJPTUlSCitCQcSGSU5BIE1MQURFTgorQkHEhklOQUMgUkFET1NMQVYKK0JBxb1BTsSMSUsgQkVMQQorQkHFvUFOVElLIE1BUkEKK0JBxb1EQVIgQlJVTk8KK0JBxb1EQVIgTUlMT1JBRAorQkHFvUVOT1YgQU5HRUxJTkEKK0JBxJBJIMWgQU5ET1IKK0JBxJBJLVJJQkFSIFJFTkFUQQorQkHEkElOIFNNSUxKS0EKK0JBQkEgSUxPTktBCitCQUJBIEpBTk/FoAorQkFCQSBKT04KK0JBQkFKScSGIEFMRUtTQU5EQVIKK0JBQkFSSUtJTiBNQVJLTworQkFCRUMgWk9SQU4KK0JBQkkgSVZBTgorQkFCScSGIMW9QVJLTworQkFCScSGIMW9RUxKS0EKK0JBQknEhiDFvUlWQU4KK0JBQknEhiDFvUlWQU4KK0JBQknEhiDEkE9SxJBFCitCQUJJxIYgxJBPUsSQRQorQkFCScSGIMSQT1LEkEUKK0JBQknEhiDEkE9SxJBFCitCQUJJxIYgxJBPUsSQRQorQkFCScSGIMSQVVLEkElDQQorQkFCScSGIMSQVVJBCitCQUJJxIYgxJBVUkEKK0JBQknEhiDEkFVSTworQkFCScSGIEFDQQorQkFCScSGIEFJREEKK0JBQknEhiBBTEVLU0FOREFSCitCQUJJxIYgQUxFS1NBTkRBUgorQkFCScSGIEFMRUtTQU5EUkEKK0JBQknEhiBBTEVLU0EKK0JBQknEhiBBTEtBCitCQUJJxIYgQU5BCitCQUJJxIYgQU5BCitCQUJJxIYgQU5BCitCQUJJxIYgQklMSkFOQQorQkFCScSGIEJPxb1JQ0EKK0JBQknEhiBCT8W9SURBUktBCitCQUJJxIYgQk9HREFOCitCQUJJxIYgQk9KQQorQkFCScSGIEJPUknFoEEKK0JBQknEhiBCT1JJU0xBVkEKK0JBQknEhiBCT1JJVk9KRQorQkFCScSGIEJSQU5LTworQkFCScSGIENWSUpPCitCQUJJxIYgREFORQorQkFCScSGIERBUklOS0EKK0JBQknEhiBEQVZJRAorQkFCScSGIERSQcWgS08KK0JBQknEhiBEUkFHQU5BCitCQUJJxIYgRFJBR0FOCitCQUJJxIYgRFJBR0nFoEEKK0JBQknEhiBEUkFHScWgQQorQkFCScSGIERSQUdJxaBBCitCQUJJxIYgRFJBR0nFoEEKK0JBQknEhiBEUkFHScWgQQorQkFCScSGIERSQUdPCitCQUJJxIYgRFXFoEFOS0EKK0JBQknEhiBEVcWgQU4KK0JBQknEhiBEVcWgQU4KK0JBQknEhiBEVcWgQU4KK0JBQknEhiBEVcWgQU4KK0JBQknEhiBEVcWgSUNBCitCQUJJxIYgR09KS08KK0JBQknEhiBHT0pLTworQkFCScSGIEdPUkFOCitCQUJJxIYgR09SREFOQQorQkFCScSGIEdPUklDQQorQkFCScSGIEdPU1BBVkEKK0JBQknEhiBIRUxFTkEKK0JBQknEhiBJTElKQQorQkFCScSGIElMSUpBCitCQUJJxIYgSUxJSkEKK0JBQknEhiBJTElOS0EKK0JBQknEhiBJVkFOCitCQUJJxIYgSVZBTgorQkFCScSGIElWQU4KK0JBQknEhiBKT1ZBTgorQkFCScSGIEpPVkFOCitCQUJJxIYgSk9WQU4KK0JBQknEhiBKT1ZBTgorQkFCScSGIEpPVkFOCitCQUJJxIYgS0FUSUNBCitCQUJJxIYgS0FaSU1JUgorQkFCScSGLUtPUExKQU4gUk/FvUEKK0JBQknEhiBLT1NBCitCQUJJxIYgS09TVEFESU4KK0JBQknEhiBLT1NUQQorQkFCScSGIEtSU1RBCitCQUJJxIYgTEFaTworQkFCScSGIExBWk8KK0JBQknEhiBMRU9OSUQKK0JBQknEhiBMSklMSkFOQQorQkFCScSGIExKSUxKQU5BCitCQUJJxIYgTEpJTEpBTkEKK0JBQknEhiBMSlVCScWgQQorQkFCScSGIExKVUJJQ0EKK0JBQknEhiBMSlVCT01JUgorQkFCScSGIExKVUJPTUlSCitCQUJJxIYgTFVLQQorQkFCScSGIE1BSkEKK0JBQknEhiBNQVJJSkFOQQorQkFCScSGIE1BUklKQQorQkFCScSGIE1BUklOS08KK0JBQknEhiBNQVJLTworQkFCScSGIE1BVE8KK0JBQknEhiBNSUpPCitCQUJJxIYgTUlMQURJTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMRVRBCitCQUJJxIYgTUlMRVZBCitCQUJJxIYgTUlMRVZBCitCQUJJxIYgTUlMScSGCitCQUJJxIYgTUlMSVZPSkUgRElQTCBJTkcKK0JBQknEhiBNSUxJVk9KCitCQUJJxIYgTUlMSVZPSgorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE/FoAorQkFCScSGIE1JTE9SQUQKK0JBQknEhiBNSUxPUkFECitCQUJJxIYgTUlMT1JBRAorQkFCScSGIE1JTE9TQVYKK0JBQknEhiBNSVJBCitCQUJJxIYgTUlSQQorQkFCScSGIE1JUkpBTkEKK0JBQknEhiBNSVJPU0xBVgorQkFCScSGIE1JUk9TTEFWCitCQUJJxIYgTUlST1NMQVYKK0JBQknEhiBNT03EjElMTworQkFCScSGIE1PTUlSCitCQUJJxIYtTVJLxaBJxIYgSlVMS0EKK0JBQknEhiBNVVJJWgorQkFCScSGIE5BREEKK0JBQknEhiBOQURBCitCQUJJxIYgTkFEQQorQkFCScSGIE5BVEHFoEEKK0JBQknEhiBORURFTEpLTworQkFCScSGIE5FTkFECitCQUJJxIYgTklLT0xBCitCQUJJxIYgTklLT0xBCitCQUJJxIYgTklLT0xBCitCQUJJxIYgT0xHSUNBCitCQUJJxIYgT1NUT0pBCitCQUJJxIYgT1NUT0pBCitCQUJJxIYgUEVSU0EKK0JBQknEhiBQRVJTSURBCitCQUJJxIYgUEVUQVIKK0JBQknEhiBQRVRBUgorQkFCScSGIFBFVEFSCitCQUJJxIYgUEVUQVIKK0JBQknEhiBQRVRBUgorQkFCScSGIFBSRURSQUcKK0JBQknEhiBSQURFTktPCitCQUJJxIYgUkFERQorQkFCScSGIFJBREUKK0JBQknEhiBSQURJTktBCitCQUJJxIYgUkFESVNBVgorQkFCScSGIFJBRElWT0pFCitCQUJJxIYgUkFET0pFCitCQUJJxIYgUkFET0pLQQorQkFCScSGIFJBRE9KS0EKK0JBQknEhiBSQURPTUlSCitCQUJJxIYgUkFET1NMQVYKK0JBQknEhiBSQURPVkFOCitCQUJJxIYgUkFET1ZBTgorQkFCScSGIFJBSktPCitCQUJJxIYgUkFKS08KK0JBQknEhiBSQU5LTworQkFCScSGIFNBxaBBCitCQUJJxIYgU0FWTworQkFCScSGIFNMQURFCitCQUJJxIYgU0xBVklDQQorQkFCScSGIFNMT0JPREFOCitCQUJJxIYgU0xPQk9EQU4KK0JBQknEhiBTTUlMSktBCitCQUJJxIYgU01JTEpLQQorQkFCScSGIFNORcW9QU5BCitCQUJJxIYgU09GSUpBCitCQUJJxIYgU1RBS0EKK0JBQknEhiBTVEFOS08KK0JBQknEhiBTVEVWQU4KK0JBQknEhiBTVEVWQU4KK0JBQknEhiBTVEVWQU4KK0JBQknEhiBTVEVWQU4KK0JBQknEhiBTVEVWQU4KK0JBQknEhiBTVEVWTworQkFCScSGIFNWRVRMQU5BCitCQUJJxIYgU1ZFVExBTkEKK0JBQknEhiBUT01PCitCQUJJxIYgVkFTQQorQkFCScSGIFZBU0EKK0JBQknEhiBWRVJBCitCQUJJxIYgVkVSSUNBCitCQUJJxIYgVkVTTkEKK0JBQknEhiBWSURPU0FWQQorQkFCScSGIFZVSk8KK0JBQknEhiBWVUtNQU4KK0JBQknEhiBaQUdPUktBCitCQUJJxIYgWkRSQVZLTworQkFCScSGIFpPUkFOCitCQUJJxIYgWk9SQU4KK0JBQknEhiBaT1JLQQorQkFCSUpBTk9WScSGIEpVTEtBCitCQUJJTE9OIFZMQURJTUlSCitCQUJJTE9OIFZMQURJTUlSCitCQUJJTiDEkE9SxJBFCitCQUJJTiBCT0dEQU4KK0JBQklOIEJSQU5JU0xBVgorQkFCSU4gRElNSVRSSUpFCitCQUJJTiBEVcWgQU4KK0JBQklOIEpPVkFOCitCQUJJTiBLQVRBUklOQQorQkFCSU4gS1JJU1RJTkEKK0JBQklOIExBWkFSCitCQUJJTiBMSlVCT01JUgorQkFCSU4gTUFSSUpBCitCQUJJTiBNQVJJTgorQkFCSU4gTUlIQUpMTworQkFCSU4gTUlMQU4KK0JBQklOIE1JTEVOQQorQkFCSU4gTUlMRU5LTyBEUiBJTkcKK0JBQklOIE1JTEVOS08KK0JBQklOIE1JT0RSQUcKK0JBQklOIE1JUkpBTkEKK0JBQklOIE1JUkpBTkEKK0JBQklOIE5BREEKK0JBQklOIE5JS09MQQorQkFCSU4gUEVUQVIKK0JBQklOIFJBRE9KS0EKK0JBQklOIFNBVkEKK0JBQklOIFpPUkFOCitCQUJKQUsgU0xPQk9EQU4KK0JBQktBIEpBTgorQkFCT1JBQyBEUkFHQU4KK0JBQk9WScSGIMSMRURPTUlSCitCQUJPVknEhiBCUkFOSVNMQVYKK0JBQk9WScSGIEpBU01JTkEKK0JBQk9WScSGIEpFTEVOQQorQkFCT1ZJxIYgSk9WQU4KK0JBQk9WScSGIExKVUJPTUlSCitCQUJPVknEhiBNSUhBSUxPCitCQUJPVknEhiBNSUxJU0FWCitCQUJPVknEhiBNT03EjElMTworQkFCT1ZJxIYgU0lOScWgQSBEUgorQkFCT1ZJxIYgVE9NSVNMQVYKK0JBQk9WScSGIFpPUkEKK0JBQ0tPVknEhiBET0JST1NMQVYKK0JBQ0tPVknEhiBEUkFHQU4KK0JBQ0tPVknEhiBNQVJJSkEKK0JBQ0tPVknEhiBNSUxJQ0EKK0JBQ0tPVknEhiBNSUxJVk9KRQorQkFDS09WScSGIE1JTE9SQUQKK0JBQ0tPVknEhiBNSUxPVkFOCitCQUNLT1ZJxIYgUkFESVZPSkUKK0JBREEgScWgVFZBTgorQkFEQUxJxIYgTUFKREEKK0JBREFOSkFDIEpFTEVOQQorQkFETkpBUiBNSUxBTgorQkFETkpBUiBNSUxJVk9KRQorQkFETkpBUiBWTEFETworQkFETkpBUkVWScSGIEFMRUtTQU5EQVIgRElQTCBQUkFWTklLCitCQUROSkFSRVZJxIYgQk/FvUlEQVIKK0JBRE5KQVJFVknEhiBNSUxBTkEKK0JBRE5KQVJFVknEhiBNSU9EUkFHCitCQUROSkFSRVZJxIYgUkFET8WgCitCQUROSkFSRVZJxIYgU1RBTkEKK0JBRE9WSU5BQyBEUkFHVVRJTgorQkFET1ZJTkFDIE5JS09MQQorQkFEUktJxIYgTklLT0xBCitCQURSTEpJQ0EgRFXFoElDQQorQkFEUkxKSUNBIEdBVlJBCitCQURSTEpJQ0EgTEFaQVIKK0JBRFJMSklDQSBNTEFERU4KK0JBRFJMSklDQSBPTEdBCitCQURSTEpJQ0EgUEVUQVIKK0JBRFJMSklDQSBSQURPSktBCitCQUZVUyBMQVNMTworQkFHSSDEkFVMQQorQkFHSS1CRU5LT1ZJxIYgUEFMCitCQUdJIEZFUkVOQworQkFHSSBJxaBUVkFOCitCQUdJIEpBTk/FoAorQkFHScSGIE1JUkpBTkEKK0JBR0lOSiBMQVpBUgorQkFHSU5KIExFUE9TQVZBCitCQUdMQVZBIE1JTEFOCitCQUdPTkpBIEpBTgorQkFHT05KQSBNQVJJSkEKK0JBR09OSkEgTkFEQQorQkFIIEVSTkEKK0JBSE1BTiBNQVJLTworQkFIVElKQVJFVknEhiBKRUxBCitCQUhVTiBOSUtPTEEKK0JBSFVOIFBFVEFSCitCQUnEhiBNSVJLTworQkFJxIYgU1RBTkEKK0JBSsSMRVRBIE1PTcSMSUxPCitCQUrEjEVUQSBSQURPU0xBVgorQkFKxIxFVEnEhiBCT0dEQU4gRFIKK0JBSsSMRVRJxIYgTEpVQklDQQorQkFKxIxFVEnEhiBNQVJJSkEKK0JBSsSMRVRJxIYgTUFSS08KK0JBSsSMRVRJxIYgTUlMRU5LTworQkFKxIxFVEnEhiBNSVJLTworQkFKxIxFVEnEhiBQQVZMRQorQkFKxIxFVEnEhiBQRVRBUgorQkFKxIxFViBKT1ZBTgorQkFKxIxFViBNSVJKQU5BCitCQUrFoEFOU0tJIERSQUdPU0xBVgorQkFKxaBBTlNLSSBKT1ZBTgorQkFKxaBBTlNLSSBMSklMSkFOQQorQkFKxaBBTlNLSSBNSUxBRElOCitCQUrFoEFOU0tJIE1JTEVOS08KK0JBSsWgQU5TS0kgUkFET1ZBTgorQkFKxaBBTlNLSSBTQVZBCitCQUrFoEFOU0tJIFNBVkEKK0JBSsWgQU5TS0kgU01JTEpBCitCQUrFoEFOU0tJIFpPUkFOCitCQUrFoEVWIERSQUdPTUlSCitCQUrFoEVWIElMSUpBCitCQUrFoEVWIE1JTElDQQorQkFKxaBFViBTVEVWQU4KK0JBSsWgRVYgU1ZFVElTTEFWCitCQUrFoEnEhiDFvUFSS08KK0JBSsWgScSGIERSQUdBTgorQkFKxaBJxIYgTUlMQU4KK0JBSkEgxJBPUsSQRQorQkFKQSBTVEVWQU4KK0JBSkFDIEJPUklTTEFWCitCQUpBQyBFTUlMSUpBIERSCitCQUpBQyBJU0FLCitCQUpBQyBMSlVCSUNBCitCQUpBQyBNSUxBTgorQkFKQUMgTUlMT8WgCitCQUpBQyBNSUxVVElOCitCQUpBQyBTVkVUTEFOQQorQkFKQUMgVkVSQQorQkFKQUdJxIYgS0FUSUNBCitCQUpBR0nEhiBNSUxFTkEKK0JBSkFHScSGIE1JT0RSQUcKK0JBSkFHScSGIE1PTcSMSUxPCitCQUpBR0nEhiBNT03EjElMTworQkFKQUdJxIYgUEVUQVIKK0JBSkFHScSGIFJBREEKK0JBSkFHScSGIFJBREUKK0JBSkFHScSGIFNBVk8KK0JBSkFHScSGIFNWRVRPWkFSCitCQUpBR0nEhiBUQU1BUkEKK0JBSkFLScSGIE1BUkEKK0JBSkFMTyBKT1ZBTktBCitCQUpBTE9WScSGIFNPRklKQQorQkFKQUxPVknEhiBTVkVUSVNMQVYKK0JBSkFUIE1JTE9SQUQKK0JBSkFUIE1JUktPCitCQUpBVCBNSVJLTworQkFKQVQgTkVERUxKS08KK0JBSkFUIE5JS09MQQorQkFKQVQgUkFET1ZBTgorQkFKQVQgVFJJRlVOCitCQUpBVCBWRUxJTUlSCitCQUpBWkVUIEpFVkdFTklKQQorQkFKQVpFVCBUT0RPUgorQkFKQVpFVCBWRVJBIERJUEwgSU5HCitCQUpBWkVUT1YgRFJBR0FOCitCQUpBWkVUT1YgRFJBR0FOCitCQUpBWkVUT1YgUkFESVZPSgorQkFKQVpJVCBNSUxBTgorQkFKQkFSQUsgSVZBTgorQkFKR08gWk9MVEFOCitCQUpJIEFSQU5LQQorQkFKSS1IUklCQVIgSlVMSUpBCitCQUpJIFNURVZBTgorQkFKScSGIMSMRURPTUlSCitCQUpJxIYgxb1BUktPCitCQUpJxIYgxb1JS0EKK0JBSknEhiDFvUlWS08KK0JBSknEhiDFvUlWT0pJTgorQkFKScSGIMSQT1LEkEUgRFIKK0JBSknEhiDEkFVSQQorQkFKScSGIMSQVVJPCitCQUpJxIYgQUxFS1NBTkRBUgorQkFKScSGIEJPxaBLTworQkFKScSGIEJPxb1JQ0EKK0JBSknEhiBCT0dEQU4KK0JBSknEhiBCT0dPTEpVQgorQkFKScSGIEJPSktBCitCQUpJxIYgQk9SQQorQkFKScSGIEJPUklWT0pFCitCQUpJxIYgQk9TSUxKS0EKK0JBSknEhiBCUkFOSVNMQVYKK0JBSknEhiBCUkFOSVNMQVYKK0JBSknEhiBCUkFOSVNMQVYKK0JBSknEhiBCUkFOSVNMQVYKK0JBSknEhiBCUkFOSVNMQVYKK0JBSknEhiBCUkFOS08KK0JBSknEhiBEQU5JQ0EKK0JBSknEhiBESU1JVFJJSkUKK0JBSknEhiBEUkFHSUNBCitCQUpJxIYgRFJBR09TTEFWCitCQUpJxIYgRFJBR1VUSU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgQU4KK0JBSknEhiBEVcWgS08KK0JBSknEhiBHT0pLTworQkFKScSGIEdPUkRBTkEKK0JBSknEhiBJTElKQQorQkFKScSGIElMSU5LQQorQkFKScSGIElMT05BCitCQUpJxIYgSkFHT8WgCitCQUpJxIYgSkFOS08KK0JBSknEhiBKQU5LTworQkFKScSGIEpFTElDQQorQkFKScSGIEpPVkFOCitCQUpJxIYgSk9WQU4KK0JBSknEhiBKT1ZBTgorQkFKScSGIEpPVklDQQorQkFKScSGIEtSU1RBCitCQUpJxIYgTEFaQVIKK0JBSknEhiBMVUtBCitCQUpJxIYgTUFSQQorQkFKScSGIE1BUkEKK0JBSknEhiBNQVJJQ0EKK0JBSknEhiBNQVJJSkEKK0JBSknEhiBNQVJJSkEKK0JBSknEhiBNRUxBTklKQQorQkFKScSGIE1JxIZPCitCQUpJxIYgTUlIQUpMTyBEUgorQkFKScSGIE1JTEFOIERSIFBST0YKK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEVOS08KK0JBSknEhiBNSUxFCitCQUpJxIYgTUlMSUNBCitCQUpJxIYgTUlMS0EKK0JBSknEhiBNSUxPVkFOCitCQUpJxIYgTUlPRFJBRworQkFKScSGIE1JUktPCitCQUpJxIYgTUlSS08KK0JBSknEhiBNSVJPU0xBVgorQkFKScSGIE1JUk9TTEFWCitCQUpJxIYgTUlST1NMQVYKK0JBSknEhiBNSVJPU0xBVgorQkFKScSGIE1JVEFSCitCQUpJxIYgTUlUQVIKK0JBSknEhiBNSVRBCitCQUpJxIYgTUxBREVOCitCQUpJxIYgTUxBREVOCitCQUpJxIYgTUxBREVOCitCQUpJxIYgTU9NxIxJTE8KK0JBSknEhiBOQURBCitCQUpJxIYgTkFEQQorQkFKScSGIE5BVEHFoEEKK0JBSknEhiBORcSQTworQkFKScSGIE5FVkVOQQorQkFKScSGIE5JS09MQQorQkFKScSGIE5JS09MQQorQkFKScSGIFBFUkEKK0JBSknEhiBQRVJPCitCQUpJxIYgUEVSU0lEQQorQkFKScSGIFBFVEFSCitCQUpJxIYgUEVUQVIKK0JBSknEhiBSQURFCitCQUpJxIYgUkFERQorQkFKScSGIFJBREUKK0JBSknEhiBSQURJVk9KCitCQUpJxIYgUkFETUlMQQorQkFKScSGIFJBRE9TTEFWCitCQUpJxIYgU0FWQQorQkFKScSGIFNBVk8KK0JBSknEhiBTSU1PCitCQUpJxIYgU0lOScWgQQorQkFKScSGIFNMQVZLTworQkFKScSGIFNMQVZLTworQkFKScSGIFNORcW9QU5BCitCQUpJxIYgU05Fxb1BTkEKK0JBSknEhiBTT0ZJSkEKK0JBSknEhiBTT0ZJSkEKK0JBSknEhiBTT0ZJSkEKK0JBSknEhiBTT05KQQorQkFKScSGIFNQQVNPSkUKK0JBSknEhiBTVEFOSVNMQVYKK0JBSknEhiBTVEVWQU4KK0JBSknEhiBTVEVWQU4KK0JBSknEhiBTVEVWQU4KK0JBSknEhiBTVEVWQU4KK0JBSknEhiBTVkVUTEFOQQorQkFKScSGIFRPRE9SCitCQUpJxIYgVE9NSVNMQVYKK0JBSknEhi1UVVJJTlNLSSBNSVJKQU5BCitCQUpJxIYgVkFTQQorQkFKScSGIFZBU0EKK0JBSknEhiBWRVJPTkEKK0JBSknEhiBWRVNFTElOCitCQUpJxIYgVklEQQorQkFKScSGIFZMQURJTUlSCitCQUpJxIYgVkxBRElNSVIKK0JBSknEhiBWTEFESU1JUgorQkFKScSGIFpPUkFOS0EKK0JBSknEhiBaT1JBTgorQkFKScSGIFpPUkFOCitCQUpJxIYgWk9SQU4KK0JBSknEhiBaT1JJQ0EKK0JBSklMTyBEUkFHT01JUgorQkFKSUxPIERSQUdPTUlSCitCQUpJTE8gRFXFoEFOCitCQUpJTE8gUEVSTworQkFKSUxPIFZJRE9TQVZBCitCQUpJTE9WIExKSUxKQU5BCitCQUpJTiBCT1JJU0xBVgorQkFKSU4gQlJBTklTTEFWCitCQUpJTiBHQVZSSUxPCitCQUpJTiBJVkFOCitCQUpJTiBLQcSGQQorQkFKSU4gTEpVQklDQQorQkFKSU4gTUlMQU5LQQorQkFKSU4gTkFEQQorQkFKSU4gUkFET0pLQQorQkFKSU4gUkFKS08KK0JBSklOIFJVxb1JQ0EKK0JBSklOIFNBVkEKK0JBSklOIFNBVkVUQQorQkFKSU4gU1RPSkFOS0EKK0JBSktJTiBBTsSQRUxLTworQkFKS0lOIFNUT0pBTgorQkFKS0lOIFNWRVRPWkFSCitCQUpLSU4gVkVTRUxJTgorQkFKS0lOIFZJVE9NSVIKK0JBSk9SIE1BUklKQQorQkFKT1ZJxIYgQlJBTktPCitCQUpPVknEhiBNQVJBCitCQUpPVknEhiBNSVRBUgorQkFKT1ZJxIYgVkVSQQorQkFKUkFNSSDFoEVGS0kKK0JBSlJBTUkgxaBFRktJCitCQUpSQU1JIEFHUk9OCitCQUpSQU1JIEJBVElKQQorQkFKUkFNSSBHQU5JCitCQUpSQU1JIFNLRU5ERVIKK0JBSlJBTU9WScSGIMWgRVJJRgorQkFKUkFNT1ZJxIYgSElWWklKQQorQkFKUknEhiBSQURNSUxBCitCQUpTIEZSQU5DCitCQUpVTk9WScSGIE1MQURFTgorQkFKVVMgSk/FvUVGCitCQUvFoEEgxJBPUsSQRQorQkFLxaBBIElNUkUKK0JBS8WgQSBKT8W9RUYKK0JBS8WgQSBMQUpPxaAKK0JBS8WgQSBMQUpPxaAKK0JBS8WgQSBMQVNMTworQkFLxaBBIE1BR0RBCitCQUvFoEEgTUlIQUpMTworQkFLxaBBIFpPTFRBTgorQkFLxaBBIFpPTFRBTgorQkFLQSBBTlRBTAorQkFLQSBJxaBUVkFOCitCQUtBIEnFoFRWQU4KK0JBS0EgScWgVFZBTgorQkFLQSBJQk9MSkEKK0JBS0EgTUlMSUNBCitCQUtBSSBJUkVOCitCQUtBSiBJVkFOCitCQUtBSiBNSUxKS08KK0JBS0FKScSGIE1JTEFOCitCQUtBSklOIERPQlJJTEEKK0JBS0FKSU4gTEpVQk9NSVIKK0JBS0FKSU4gTkVWRU5LQQorQkFLQUpJTiBUT0RPUgorQkFLQUxJxIYgxJBVTElOS0EgU1VESUpBCitCQUtBTEnEhiBNSUhBSkxPCitCQUtBTEnEhiBWT0pJU0xBVgorQkFLQUxPVknEhiBORU1BTkpBCitCQUtFViDEkE9SxJBFCitCQUtJIElSRU5BCitCQUtJIE9UTworQkFLSSBWRVJBCitCQUtJxaAgxIxFRE9NSVIgRElQTCBJTkcKK0JBS0nEhiBCT1JJVk9KRQorQkFLScSGIERJTUlUUklKRQorQkFLScSGIERVxaBBTiBESVBMIElORworQkFLScSGIElWQU4KK0JBS0nEhiBKT1ZBTgorQkFLScSGIEtPU1RBCitCQUtJxIYgTUlKT01JUgorQkFLScSGIE1JTE/FoAorQkFLScSGIE1JTE/FoAorQkFLScSGIE1JTFVUSU4KK0JBS0nEhiBNSVJBCitCQUtJxIYgTUlST1NMQVYKK0JBS0nEhiBNSVJPU0xBVgorQkFLScSGIE5BREEKK0JBS0nEhiBTSU5JxaBBCitCQUtJxIYgU09OSkEKK0JBS0xBScSGIEpPVkFOS0EKK0JBS01BWiBMQVpPCitCQUtNQVogTEpVQkFOCitCQUtNQVogWk9SQU4KK0JBS08gTUnFoEEKK0JBS0/EjEVWScSGIE1JUkpBTkEKK0JBS0/FoCDEkEVSxJBJCitCQUtPxaAgR0FCT1IKK0JBS0/FoCBMQUpPxaAKK0JBS0/FoCBMQVNMTworQkFLT8WgIE1BUklKQQorQkFLT8WgIFBBTAorQkFLT8WgIFBFVEFSCitCQUtPxaAgVEVSRVpJSkEKK0JBS09WScSGIFJBREUKK0JBS1RBSSBTVEVWQU4KK0JBS1VOScSGIElWQU4KK0JBS1VOScSGIFZJRE9TQVZBCitCQUtWScSGIE1JTEFOCitCQUwgS0FSTE8KK0JBTCBaVk9OSU1JUgorQkFMxIxBS09WScSGIFZBU08KK0JBTMWgScSGIFJBTktBCitCQUxBIEVURUxLQQorQkFMQSBJxaBUVkFOCitCQUxBIEpBTk/FoAorQkFMQSBKVUxJSkFOQQorQkFMQSBKVUxJSkEKK0JBTEEgS0FSTE8KK0JBTEEgS0FSTE8KK0JBTEEgS0FST0xKCitCQUxBIExBRElTTEFWCitCQUxBIE1JSEFMSgorQkFMQSBURVJFWgorQkFMQcWgQSBKT8W9RUYKK0JBTEHEhiBBTkEKK0JBTEHEhiBEVcWgQU5LQQorQkFMQcSGIEpPVkFOCitCQUxBxIYgTEpVQk8KK0JBTEHEhiBNSVJPU0xBVgorQkFMQcSGIE1JUk9TTEFWCitCQUxBxIYgU0xBVktPCitCQUxBxIYgU1JCSVNMQVYKK0JBTEHEhiBTVEVWQU4KK0JBTEHEhiBWVUpPCitCQUxBxIYgWk9SQQorQkFMQcW9IMWgQU5ET1IKK0JBTEHFvSDEkFVMQQorQkFMQcW9IMSQVUxBCitCQUxBxb0gxJBVTEEKK0JBTEHFvSDEkFVMQQorQkFMQcW9IEFEQUxCRVJUCitCQUxBxb0gQU5BCitCQUxBxb0gRVRFTEtBCitCQUxBxb0gR0VaQQorQkFMQcW9IEdFWkEKK0JBTEHFvSBJUkVOQQorQkFMQcW9IElWQU5LQQorQkFMQcW9IEpBTklLQQorQkFMQcW9IEpFTElTQVZFVEEKK0JBTEHFvSBKT1NJUAorQkFMQcW9IEpPVkFOCitCQUxBxb0gS0FUQVJJTkEKK0JBTEHFvSBMQVNMTworQkFMQcW9IFBBTAorQkFMQcW9IFBBTAorQkFMQcW9LVBJUkkgxJBFUsSQCitCQUxBxb0gWklUQQorQkFMQcW9RVYgU1RJUEFOCitCQUxBxb1FVknEhiBTTE9CT0RBTktBCitCQUxBQkFOIEJPxaBLTworQkFMQUJBTiBCUkFOS08KK0JBTEFCQU4gTUlMT1ZBTgorQkFMQUJBTiBNSUxVVElOCitCQUxBQkFOIE5FxJBPCitCQUxBQkFOIFBFVEFSCitCQUxBQkFOIFNBVk8KK0JBTEFCQU4gU1BPTUVOS0EKK0JBTEFCQU4gVklECitCQUxBQkFOIFZVS0HFoElOCitCQUxBQkFOT1YgQU5BCitCQUxBQkFOT1ZJxIYgQk/FoEtPCitCQUxBQkFOT1ZJxIYgTUlMT1JBRAorQkFMQUJBTk9WScSGIE5JS09MQQorQkFMQUJBTk9WScSGIFBFVEFSCitCQUxBQkFOT1ZJxIYgVk9KSVNMQVYKK0JBTEFKIE1JSEFKTE8KK0JBTEFMScSGIETFvUVWQUQgRElQTCBJTkcKK0JBTEFMScSGIETFvUVWQUQKK0JBTEFORVNLTyBBTEVLU0FOREFSCitCQUxBVCBJUkVOQQorQkFMQVRPTiDEkEVSxJAKK0JBTEFUT04gxJBFUsSQCitCQUxBVE9OIMSQRVLEkAorQkFMQVRPTiBCRUxBCitCQUxBVE9OIElNUkUKK0JBTEFUT04gTUFHRE9MTkEKK0JBTEFUT04gUEVUQVIKK0JBTENBIFZMQURJTUlSCitCQUxDQSBWTEFESU1JUgorQkFMREnEhiBTTE9CT0RBTgorQkFMRU5PVknEhiBBTkRSSUpBCitCQUxFUiBKT1NJUAorQkFMRVZJxIYgTUlMSVZPSgorQkFMR08gRlJBTkNJxaBLQQorQkFMSSBBTEVLU0FORFJBCitCQUxJIEdBQk9SCitCQUxJIExBU0xPCitCQUxJxIYgRVNBRAorQkFMScW9IElMREEKK0JBTEnFvSBNSUhBTEoKK0JBTEnFvSBaT0xUQU4KK0JBTElORCBQQUwKK0JBTElORCBTSUxWSUEKK0JBTElOT1ZJxIYgTUlMRVZBCitCQUxJTk9WScSGIFNJTknFoEEKK0JBTElOVCDFoEFORE9SIE1SCitCQUxJTlQgxb1JR01VTkQKK0JBTElOVCDEkE9SxJBFCitCQUxJTlQgxJBVUkEKK0JBTElOVCBBTkRSRUoKK0JBTElOVCBERcW9RQorQkFMSU5UIEnFoFRWQU4KK0JBTElOVCBJTE9OQQorQkFMSU5UIElNUkUKK0JBTElOVCBJTVJFCitCQUxJTlQgSk/FvUVGCitCQUxJTlQgSk/FvUVGCitCQUxJTlQgSk9TSVAKK0JBTElOVCBKT1NJUAorQkFMSU5UIEpPU0lQCitCQUxJTlQgSlVMSUpBTkEKK0JBTElOVCBLQVJPTEoKK0JBTElOVCBNQcSGQcWgCitCQUxJTlQgTUFSR0FSRVRBCitCQUxJTlQgTUFSSUEKK0JBTElOVCBNQVJJSkEKK0JBTElOVCBNQVJJSkEKK0JBTElOVCBNSUhBSUxPCitCQUxJTlQgTUlST1NMQVYKK0JBTElOVC1NSVRST1ZJxIYgT0xHQQorQkFMSU5UIFJBRE9TTEFWCitCQUxJTlQgUk9CRVJUCitCQUxJTlQgU0xBVk9NSVIKK0JBTEogQlJBTktPCitCQUxKIE1JTE9SQUQKK0JBTEogU0FWTworQkFMSkEgSURSSVoKK0JBTEpBSyDEjEVET01JUgorQkFMSk/FoEVWScSGIEFMRUtTQU5EQVIKK0JBTEpPxaBFVknEhiBCT0dEQU5LQQorQkFMSk/FoEVWScSGIEpPVkFOCitCQUxKT8WgRVZJxIYgTUlSTworQkFMSk9aT1ZJxIYgT0xJVkVSQQorQkFMSk9aT1ZJxIYgVE9NSVNMQVYgRFIKK0JBTEtPVk9KIFZMQURJTUlSCitCQUxOT8W9QU4gTkVWRU5LQQorQkFMTk/FvUFOIFNJTUEKK0JBTE8gR0HFoFBBUgorQkFMTyBQRVRBUgorQkFMT8WgIE5VQ0EKK0JBTE/FoCBUT0RPUgorQkFMT8WgIFRPRE9SCitCQUxPQkFOIE1JTEFOCitCQUxPQkFOIE1JTEFOCitCQUxPRyDFoEFORE9SCitCQUxPRyDFvUlWS0EKK0JBTE9HIMW9VcW9QU5BCitCQUxPRyDEkE9SxJBFCitCQUxPRyDEkE9SxJBFCitCQUxPRyDEkE9SxJBFCitCQUxPRyDEkFVSQQorQkFMT0cgxJBVUkEKK0JBTE9HIEFMRUtTQU5EQVIKK0JBTE9HIEFOQQorQkFMT0cgQU5BCitCQUxPRyBBTkEKK0JBTE9HIEFORFJBxaAKK0JBTE9HIEFORFJJSkEKK0JBTE9HIEJFTEEKK0JBTE9HIEJSQU5LTworQkFMT0cgREXFvUUKK0JBTE9HIERFxb1FCitCQUxPRyBEUkFHQU4KK0JBTE9HIERVxaBBTktBCitCQUxPRyBGRVJFTkMKK0JBTE9HIEZSQU5KQQorQkFMT0cgRlJBTkpBCitCQUxPRyBGUkFOSkEKK0JBTE9HIEnFoFRWQU4KK0JBTE9HIElCT0pLQQorQkFMT0cgSU1SRQorQkFMT0cgSU1SRQorQkFMT0cgSk/FvUVGCitCQUxPRyBKT0NBCitCQUxPRyBKT1ZBTgorQkFMT0cgSlVMSUpBTkEKK0JBTE9HIEpVTElKQU5BCitCQUxPRyBLQUxNQU4KK0JBTE9HIEtBUk9MSgorQkFMT0cgS0FST0xKCitCQUxPRyBLQVRBUklOQQorQkFMT0cgTEFESVNMQVYKK0JBTE9HIExBRElTTEFWCitCQUxPRyBMQVNMTworQkFMT0cgTUFHREEKK0JBTE9HIE1BUkEKK0JBTE9HIE1BUklKQQorQkFMT0cgTUFSSUpBCitCQUxPRyBNQVJJSkEKK0JBTE9HIE1BUklKQQorQkFMT0cgTUFSSUpBCitCQUxPRyBNQVJUQQorQkFMT0cgTUlMRU5BCitCQUxPRyBNSVJLTworQkFMT0cgTklLT0xBCitCQUxPRyBOSUtPTEEKK0JBTE9HIFBJxaBUQQorQkFMT0cgUElST8WgS0EKK0JBTE9HIFNJTUEKK0JBTE9HIFNNSUxKQQorQkFMT0cgU1BPTUVOS0EKK0JBTE9HIFNURVZBTgorQkFMT0cgU1RFVkFOCitCQUxPRyBTVEVWQU4KK0JBTE9HIFRJQk9SCitCQUxPRyBWRUxJTUlSCitCQUxPRyBaT1JBTgorQkFMT0sgScWgVFZBTgorQkFMT1ZJxIYgTUlMScSGCitCQUxUQSBBTkEKK0JBTFRJxIYgREFOSUNBCitCQUxUScSGIFJBRE1JTEEKK0JBTFRJxIYgVkxBRElNSVIgRFIKK0JBTFRPVknEhiBEUkFHQU4KK0JBTFRPVknEhiBQRVRBUgorQkFMVU5PVknEhiBJVkFOCitCQU1CVUxPVknEhiBNSUxLQQorQkFOIFNURVZBTgorQkFOxIxFVknEhiBQRVRBUgorQkFOxIxFVknEhiBSQURFCitCQU7EjEkgQkFMSU5UCitCQU7EjEkgS0FST0xKCitCQU7EjEnEhiDFvUlWS08KK0JBTsSMScSGIEFMRUtTQU5EQVIKK0JBTsSMScSGIEpPVkFOCitCQU7EjEnEhiBKVUxLQQorQkFOxIxJxIYgTEFaQQorQkFOxIxJxIYgTUFSSUpBCitCQU7EjEnEhiBTT0ZJSkEKK0JBTsSMScSGIFNURVZJQ0EKK0JBTsSMScSGIFRPRE9SCitCQU7EkFVSIE1JUktPCitCQU5BxIZBTklOIExKSUxKQU5BCitCQU5BxIZBTklOIE9MR0EKK0JBTkFJIFRJQk9SCitCQU5BSSBWRVJBCitCQU5BSiBKT1NJUAorQkFOREEgxb1JVktPCitCQU5EScSGIEJMQUdPSkUKK0JBTkRJxIYgSkVMSUNBCitCQU5EScSGIExKVUJPTUlSCitCQU5EScSGIExKVUJPCitCQU5EScSGIFJBREUKK0JBTkRJxIYgU0FWS0EKK0JBTkRJxIYgVE9NSVNMQVYKK0JBTkRJxIYgVkVSSUNBCitCQU5EScSGIFZVSkFESU4KK0JBTkRJTiDFvUlWT1JBRAorQkFORElOIElWQU4KK0JBTkRJTiBLQVRJQ0EKK0JBTkRJTiBNSU9EUkFHCitCQU5ESU4gTUxBREVOCitCQU5ET0JSQU5TS0kgT0xHQQorQkFORE9MTyBEUkFHSUNBCitCQU5EVUtBIERSQUdVVElOCitCQU5GSSBNQVJJSkEKK0JBTkdPIExKVURFVklUCitCQU5JxIYgQU7EkEEKK0JBTknEhiBCT8W9SURBUgorQkFOScSGIEJSQU5LTyBEUgorQkFOScSGIEVNSUxJSkEKK0JBTknEhiBFVklDQQorQkFOScSGIEtBVElDQQorQkFOScSGIE1JTE/FoAorQkFOScSGIE1JTE9WQU4KK0JBTknEhiBQQU5FCitCQU5JxIYgUEVUQVIKK0JBTknEhiBSQURFCitCQU5JxIYgUkFET01JUgorQkFOScSGIFJBU1RLTworQkFOScSGIFJVxb1JQ0EKK0JBTknEhiBTTEFWS08KK0JBTknEhiBTVkVUT1pBUgorQkFOScSGIFpPUktBCitCQU5JxIZFVknEhiBKRUxFTkEKK0JBTknEhkVWScSGIFZFU0VMSU4KK0JBTklBLcW9SVZBRElOT1ZJxIYgTUlSSkFOQQorQkFOSkHFoCDEkFVSQQorQkFOSkFDIMSMRURPTUlSCitCQU5KQUMgxIxFRE8KK0JBTkpBQyDEjEVETworQkFOSkFDIMWgUElSTyBESVBMIElORworQkFOSkFDIMW9SVZBTgorQkFOSkFDIMSQT1LEkEUKK0JBTkpBQyDEkE9SxJBFCitCQU5KQUMgxJBPUsSQRQorQkFOSkFDIEJPU0lMSktBCitCQU5KQUMgREFOSUxPCitCQU5KQUMgRE1JVEFSCitCQU5KQUMgRFJBR0FOIERJUEwgSU5HCitCQU5KQUMgRFJBR0FOCitCQU5KQUMgRFJBR0lDQQorQkFOSkFDIERSQUdJQ0EKK0JBTkpBQyBEVcWgQU4KK0JBTkpBQyBEVcWgS08KK0JBTkpBQyBEVcWgS08KK0JBTkpBQyBFTUlMCitCQU5KQUMgR0FWUkEKK0JBTkpBQyBHT0pLTworQkFOSkFDIEpFTEVOQQorQkFOSkFDIEpPVkFOCitCQU5KQUMgSk9WQU4KK0JBTkpBQyBLQVRJQ0EKK0JBTkpBQyBNSUxBTgorQkFOSkFDIE1JTEFOCitCQU5KQUMgTUlMRQorQkFOSkFDIE1JTE9SQUQKK0JBTkpBQyBNSVJLTworQkFOSkFDIE5FREVMSktPCitCQU5KQUMgTklLT0xBCitCQU5KQUMgT0xHQQorQkFOSkFDIFBFUk8KK0JBTkpBQyBQRVRBUgorQkFOSkFDIFJBREEKK0JBTkpBQyBSQURPTkpBCitCQU5KQUMgU0FWQQorQkFOSkFDIFNBVkEKK0JBTkpBQyBTQVZFVEEKK0JBTkpBQyBTQVZPCitCQU5KQUMgU0xBVktPCitCQU5KQUMgU0xBVk5BCitCQU5KQUMgU0xPQk9EQU4KK0JBTkpBQyBTVEVWQU4KK0JBTkpBQyBURU9ET1IKK0JBTkpBQyBWRVNOQQorQkFOSkFDIFZJTktPCitCQU5KQUMgVklUT01JUgorQkFOSkFDIFZPSklTTEFWCitCQU5KQUkgSkFHQQorQkFOSkFJIEpBTk/FoAorQkFOSkFJIEpPVkFOCitCQU5KQUkgTEFKT8WgCitCQU5KQUkgTUHEhkHFoAorQkFOSkFJIE1BUklKQQorQkFOSkFJIFJPTUFOCitCQU5KQUkgUlXFvUEKK0JBTkpBTkFDIEJSQU5LTworQkFOSkFOQUMgQlJBVElTTEFWCitCQU5KQU5BQyBNSUxBTgorQkFOSkFOQUMgUkFERQorQkFOSkFOQUMgU0xBVklDQQorQkFOSkFOSU4gREFOSUNBCitCQU5KQU5JTiBEQVJBCitCQU5KQU5JTiBKRUxFTkEKK0JBTkpBTklOIEpFTElTQVZFVEEKK0JBTkpBTklOIEpPVkFOCitCQU5KQU5JTiBORURFTEpLTworQkFOSkFOSU4gTkVERUxKS08KK0JBTkpBTklOIE5JS09MQQorQkFOSkFOSU4gTklLT0xBCitCQU5KQU5JTiBSQURNSUxBCitCQU5KQU5JTiBTT0ZJSkEKK0JBTkpBTklOIFZFTElNSVIKK0JBTkpBUkkgTEFKT8WgCitCQU5KRUdMQVYgQk/FvUEKK0JBTkpFR0xBViBEUkFHQU4KK0JBTkpFR0xBViBEVcWgQU4KK0JBTkpFR0xBViBOSUtPTEEKK0JBTkpFR0xBViBSQURJVk9KCitCQU5KRVZJxIYgU0xPQk9EQU5LQQorQkFOS0EgTEFKT8WgCitCQU5LT1ZBxIxLSSDEkFVSQQorQkFOS09WQcSMS0kgSk9WQU4KK0JBTktPVkHEjEtJIE1BUklKQQorQkFOS09WQcSMS0kgTkFEQQorQkFOS09WQcSMS0kgUEVUQVIKK0JBTktPVkHEjEtJIFNBVkEKK0JBTktPVkHEjEtJIFNWRVRPWkFSCitCQU5LT1ZJxIYgTUlMVU4KK0JBTk9WxIxBTklOIERSQUdJQ0EKK0JBTk9WxIxBTklOIE1JTEFOCitCQU5PVsSMQU5JTiBNT03EjElMTworQkFOT1ZBxIxLSSDEkE9SxJBFCitCQU5PVkHEjEtJIEpPVkFOCitCQU5PVkHEjEtJIE1BUklKQQorQkFOT1ZBxIxLSSBSVcW9SUNBCitCQU5PVknEhiDFvUFSS08KK0JBTk9WScSGIMW9SVZPUkFECitCQU5PVknEhiBEVcWgQU4KK0JBTk9WScSGIEpPVkFOS0EKK0JBTk9WScSGIExFUE9TQVZBCitCQU5PVknEhi1MT0MgTkFEQQorQkFOT1ZJxIYgTUlMQU4KK0JBTk9WScSGIE1JTEFOCitCQU5PVknEhiBNSUxKS08KK0JBTk9WScSGIE5JS09MQQorQkFOT1ZJxIYgU0xBVkEKK0JBTk9WScSGIFNMT0JPREFOCitCQU5TS0kgRVJJS0EKK0JBTlNLSSBNQVJJSkEKK0JBUsSMSUtJTiDEkE9SxJBFCitCQVLFoEkgRU5EUkUKK0JBUsWgSSBMQVNMTworQkFSQcSMQU5JTiBEQU5JQ0EKK0JBUkHEjEFOSU4gTEFaQVIKK0JBUkHEjEFOSU4gUEFKQQorQkFSQcSMQU5JTiBTQVZLQQorQkFSQcSMSSBTVEVWQU4KK0JBUkHEjEtPViDEjEVET01JUgorQkFSQcSMS09WIMSQT1LEkEUKK0JBUkHEjEtPViBHT1JJTktBCitCQVJBxIxLT1YgTUlMQU4KK0JBUkHEjEtPViBTUkVET0pFCitCQVJBxIxLT1YgVkVTRUxJTgorQkFSQcWgRVZJxIYgTUlST1NMQVZBCitCQVJBxaBFVknEhiBUT01JU0xBVgorQkFSQcWgSU4gR09SQU4KK0JBUkHFoElOIExKVUJPTUlSCitCQVJBxaBJTiBORVZFTktBCitCQVJBxaBJTiBTQVZBCitCQVJBxIYgxb1BUktPCitCQVJBxIYgRFJBR0lDQQorQkFSQcSGIERVxaBBTktBCitCQVJBxIYgR09ESU1JUgorQkFSQcSGIEdPSktPCitCQVJBxIYgSk9TSVAKK0JBUkHEhiBLT1ZJTEpLQQorQkFSQcSGIE1JTEFOCitCQVJBxIYgTUlMT8WgCitCQVJBxIYgTUlMT8WgCitCQVJBxIYgTUlMT1NBVkEKK0JBUkHEhiBNT03EjElMTworQkFSQcSGIFJBRE9OSkEKK0JBUkHEhiBTQVJBRklOQQorQkFSQcSGIFNUQU5JTUlSS0EKK0JBUkHEhiBWRVNFTElOCitCQVJBxIYgVklEQUsKK0JBUkHEhiBWVcSMSU5BCitCQVJBQyBNQUxJxaBBCitCQVJBQyBNQVJLTworQkFSQUMgTk9WTworQkFSQUMgVE9NSVNMQVYKK0JBUkFKRVZBQyBKT1ZBCitCQVJBS08gU0FWQQorQkFSQUxJxIYgTUlST1NMQVYKK0JBUkFOIEpBS0lNCitCQVJBTiBNSUhBSkxPCitCQVJBTiBNSVJPTiBESVBMIElORworQkFSQU5JTiBWQVNJTElKRQorQkFSQU5KQUkgSkVORQorQkFSQU5KSSBGRVJFTkMKK0JBUkFOSkkgRkVSRU5DCitCQVJBTkpJIExBU0xPCitCQVJBTkpJIFBBVkxFCitCQVJBTkpJIFNURVZBTgorQkFSQU5PVlNLSSBWTEFEQQorQkFSQVMgVE9NQSBEUgorQkFSQVQgQUxFS1NBTkRBUgorQkFSQVQgRFJBR0lDQQorQkFSQVQgRFJBR0lOSkEKK0JBUkFUIEZFUkVOQworQkFSQVQgSU1SRQorQkFSQVQgT0xHQQorQkFSQVQgT1NLQVIKK0JBUkFUT1YgQk/FoEtPCitCQVJCQVJJxIYgQU5URQorQkFSQkFSScSGIFBBVkxFCitCQVJCQVRFU0tPVknEhiBMSlVCScWgQQorQkFSQkVSScSGIERSQUdBTgorQkFSQkVSScSGIE1JUktPCitCQVJCSVIgQU5URQorQkFSQklSIExKVUJBCitCQVJCVSBWQVNBCitCQVJCVUwgTUFSSUpBCitCQVJCVUwgTUlMQU4KK0JBUkJVTCBNSUxBTgorQkFSQlVMIFNBVkEKK0JBUkJVTCBTVE9KQU4KK0JBUkJVTCBWTEFESVNMQVZBCitCQVJCVUxPViBESU1JVFJJSkUKK0JBUkJVTE9WIERPQlJJVk9KCitCQVJCVUxPViBNSUxJVk9KCitCQVJCVUxPViBOSUtPTEEKK0JBUkJVTE9WScSGIERSQUdBTgorQkFSQlVaQU4gSkFTTkEKK0JBUkJVWkFOIFJVxb1JQ0EKK0JBUkNBTCDEkEVSxJAKK0JBUkNBTCBBTkEKK0JBUkNBTCBKT8W9RUYKK0JBUkNBTCBMQVNMTyBESVBMIElORworQkFSQ0VMIEtBVElDQQorQkFSREFLIEFMRUtTQU5EQVIKK0JBUkRBSyBBTktJQ0EKK0JBUkRBSyBMVUtBCitCQVJEScSGIMW9RUxKS08KK0JBUkRJxIYgTUlSS08KK0JBUkRPxaAgSk/FvUVGCitCQVJET8WgIE1FTEFOSUpBCitCQVJEVU4gS0FSTE8KK0JBUkXFoEnEhiBJVkFOCitCQVJFxaBJxIYgTUFUTworQkFSRVRJxIYgRFJBR09MSlVCCitCQVJJxIxFVknEhiBTVElQRQorQkFSScSMScSGIEJJU0VSS0EKK0JBUknFoEnEhiBBTsSQRUxLTworQkFSScWgScSGIEJMQUdPSkUKK0JBUknFoEnEhiBCT8WgS08KK0JBUknFoEnEhiBJTElKQQorQkFSScWgScSGIElMSUpBCitCQVJJxaBJxIYgSkFOSkEKK0JBUknFoEnEhiBMSlVCSUNBCitCQVJJxaBJxIYgTUFSS08KK0JBUknFoEnEhiBNSUxBTgorQkFSScWgScSGIE1JTEFOCitCQVJJxaBJxIYgUEVUQVIKK0JBUknFoEnEhiBTVEpFUEFOCitCQVJJxaBJxIYgVkVST05JS0EKK0JBUknFoEnEhiBaT1JLQQorQkFSScSGIExKVUJJQ0EKK0JBUknEhiBQQVVMSU5BCitCQVJJxIYgU0xBVklDQQorQkFSSkFLVEFSIFNQQVNFTklKQQorQkFSSkFLVEFSIFNURVZBCitCQVJKQUtUQVJFVknEhiDFvUlWS08KK0JBUkpBS1RBUkVWScSGIERSQUdBTgorQkFSSkFLVEFSRVZJxIYgTUFSQQorQkFSSkFLVEFSRVZJxIYgTUFSQQorQkFSSkFLVEFSRVZJxIYgTUlMQU4KK0JBUkpBS1RBUkVWScSGIE1JTEtBCitCQVJKQUtUQVJFVknEhiBNSUxPSkUKK0JBUkpBS1RBUkVWScSGIFZBTEVSSUpBCitCQVJKQUtUQVJFVknEhiBaTEFUS08KK0JBUkpBS1RBUk9WIE1JTElDQQorQkFSSkFLVEFST1ZJxIYgxJBPS08KK0JBUkpBS1RBUk9WScSGIEFOS0EKK0JBUkpBS1RBUk9WScSGIE1JTE/FoAorQkFSSkFLVEFST1ZJxIYgU05Fxb1BTkEKK0JBUkpBS1RBUk9WScSGIFZVxIxJTkEKK0JBUkpBS1RBUk9WScSGIFZVxIxJTkEKK0JBUkpBS1RBUk9WScSGIFpPUktBCitCQVJKQU1PVknEhiBBTElMCitCQVJKQU1PVknEhiBBUlNFTklKRQorQkFSSkFNT1ZJxIYgU0xPQk9EQU4KK0JBUk5BIEdBxaBQQVIKK0JBUk5BIElWQU4KK0JBUk5BIEpBTk/FoAorQkFSTkEgSk9TSVAKK0JBUk5BIE1JSEFMSgorQkFSTyBGUkFOSk8KK0JBUk8gSkVMRU5BCitCQVJPIEpPxb1FRgorQkFSTyBKT8W9RUYKK0JBUk8gSk9TSVAKK0JBUk/FoCBCT8W9TworQkFST8WgIEJPUklTTEFWIERSCitCQVJPxaAgQk9SSVNMQVYKK0JBUk/FoCBMQVpPCitCQVJPxaAgTkVCT0rFoEEKK0JBUk/FoCBOSUtPTEEKK0JBUk/FoCBOSUtPTEEKK0JBUk/FoEVWScSGIEpPVk8KK0JBUk9WScSGIFZFTElNSVIKK0JBUk9WScSGIFZPSklTTEFWCitCQVJUQSDEkEVSxJAKK0JBUlRBIMSQT1LEkEUKK0JBUlRBIEFSUEFECitCQVJUQSBERcW9RQorQkFSVEEgRU1BCitCQVJUQSBJTERJS08KK0JBUlRBIElSTUEKK0JBUlRBIE1BR0RBTEVOQQorQkFSVEVLIEFORFJJSkEKK0JBUlRFSyBLQVRBUklOQQorQkFSVEVLIFJVRE9MRiBESVBMIElORworQkFSVEVLIFNURVZBTgorQkFSVE/FoCBEQU5JTE8KK0JBUlRPxaAgRFJBR0lDQQorQkFSVE/FoCBJTVJFCitCQVJUT8WgIExBRElTTEFWCitCQVJUT8WgIExBU0xPCitCQVJUT8WgIFNWRVRMQU5BCitCQVJUT8WgIFpWT05JTUlSCitCQVJUT0ogTUlSSkFOQQorQkFSVE9LIE1BUkdJVAorQkFSVE9MT1ZJxIYgQU5UVU4KK0JBUlRPTE9WScSGIEpPU0lQCitCQVJUT0xPVknEhiBNQVJJTgorQkFSVFVMT1ZJxIYgUEFWTEUKK0JBUlXFoEnEhiBNQVJUSU4KK0JBUlVExb1JSkEgTUFSS08KK0JBUlVEQU5PViBEVcWgQU5LQQorQkFTQVJBIMSQVVJPCitCQVNBUkEgQU5LQQorQkFTQVJBIERJVk5BCitCQVNBUkEgRFJBR0lDQQorQkFTQVJBIEpPVkFOCitCQVNBUkEgTUFSVEEKK0JBU0FSQSBNSUxJVk9KCitCQVNBUkEgTUlSQQorQkFTQVJBIFBBSk8KK0JBU0FSQUJBIERVxaBJQ0EKK0JBU0FSScSGIEJPR0RBTgorQkFTQVJJxIYgREFORQorQkFTQVJJxIYgRFJBR0lOSkEKK0JBU0FSScSGIERVxaBBTgorQkFTQVJJxIYgSkVMRU5BCitCQVNBUknEhiBKT1ZBTgorQkFTQVJJxIYgTEpVQk9NSVIKK0JBU0FSScSGIE1JTEFOCitCQVNBUknEhiBNSUxBTgorQkFTQVJJxIYgTUlMS0EKK0JBU0FSScSGIE1JUkpBTkEKK0JBU0FSScSGIE5JS09MQQorQkFTQVJJxIYgU1RFVkFOCitCQVNBUknEhiBWRVJBCitCQVNJxIYgS09WSUxKS0EKK0JBU0nEhiBTUsSQQU4KK0JBU0lPTEkgU1JFxIZLTworQkFTS0lKSU4gWk9SQQorQkFTUkFLIEJSQU5LTworQkFTUkFLIE1JTEFOCitCQVNUQSBEQU5FCitCQVNUQSBEQU5JRUxBCitCQVNUQSBEUkFHVVRJTgorQkFTVEEgRFXFoEFOCitCQVNUQSBJVkFOQQorQkFTVEEgS0FUSUNBCitCQVNUQSBMSlVCSUNBCitCQVNUQSBNQVJJSkEKK0JBU1RBIE1BUklKQQorQkFTVEEgTUFSSUpBCitCQVNUQSBNSUxBTgorQkFTVEEgTUlMT8WgCitCQVNUQSBNSVJPU0xBVgorQkFTVEEgTklLT0xBCitCQVNUQSBTVEVWQQorQkFTVEEgVkxBRE8KK0JBU1RBSCBCUkFOS08KK0JBU1RBSkEgQlJBTktPCitCQVNUQUpBIE1JTEFOCitCQVRBIERFWklERVIKK0JBVEEgSUxPTkEKK0JBVEEgS0FST0xKCitCQVRBIExBU0xPCitCQVRBIExBU0xPCitCQVRBIE1BUkdJVEEKK0JBVEFKScSGIEJPR09MSlVCCitCQVRBSyBFTUlMCitCQVRBSyBNSVJLTworQkFUQUtPVknEhiBLT1NBUkEKK0JBVEFLT1ZJxIYgTUlMQU4KK0JBVEFLT1ZJxIYgVklUT01JUgorQkFUQUxPViBSQURJQ0EKK0JBVEFOxIxFViBKT1ZBTgorQkFUQU7EjEVWIFNMQVZOQQorQkFUQU5KU0tJIE1JTEFOCitCQVRBTkpTS0kgTUlMQU4KK0JBVEFOT1ZJxIYgQU5LQQorQkFUQVIgxIxFRE9NSVIKK0JBVEFSIMSMRURPTUlSCitCQVRBUiBNSUxPxaAKK0JBVEFSIE1PTUlSCitCQVRBUiBTTE9CT0RBTgorQkFUQVIgVkVMSU1JUgorQkFUQVIgVk9KSU4KK0JBVEFSSUxPIMW9RUxKS08KK0JBVEFTIEJPxb1BTkEKK0JBVEFaIFZMQURPCitCQVRFUk5FSyBJVkFOCitCQVRJxIYgxJBVUkHEkAorQkFUScSGIEJPxb1JREFSCitCQVRJxIYgQlJBTktBCitCQVRJxIYgSVZBTkEKK0JBVEnEhiBNSUhBSkxPCitCQVRJTknEhiDEkFVSTworQkFUSU5JxIYgRFJBR0FOCitCQVRJTknEhiBHT1JEQU5BCitCQVRJTknEhiBTQVZBCitCQVRJTknEhiBTUEFTT0pFCitCQVRJU1RJxIYgSVZBTgorQkFUS0nEhiBKVVNVRgorQkFUS0nEhiBTVEFOSVNMQVZBCitCQVRLT1ZJxIYgTUFSQQorQkFUT1JJIEpBTk/FoAorQkFUT1JJIEpPxb1FRgorQkFUT1JJIE1BUklKQQorQkFUT1JJIE1BUklKQQorQkFUT1JJIE1JSEFMSgorQkFUT1JJIE1JSEFMSgorQkFUT1JJIE1JSEFMSgorQkFUT1MgQUxFS1NBTkRBUgorQkFUT1MgQk/FoEtPCitCQVRPUyBCT8WgS08KK0JBVE9TIE1JTEFOCitCQVRPUyBOQURBCitCQVRPUyBSQURJVk9KCitCQVRPUyBaT1JJQ0EKK0JBVFJORUsgWkRFTktBCitCQVRVUkFOIE9CUkFECitCQVRVUkFOIFJBRE9WQU4KK0JBVUVSIEVWQQorQkFVRVIgSlVMSUpBTkEKK0JBVUVSIEtTRU5JSkEKK0JBVUVSIE9UTworQkFVSyBEUkFHQU4KK0JBVUtPViBWTEFESU1JUgorQkFVUkFOT1YgTEFaQVIKK0JBVkFSxIxJxIYgTUlMT1JBRAorQkFWQVLEjEnEhiBWRVNFTElOCitCQVpBTsSMSUsgVkFMRVJJSkEKK0JBWk9LSU4gxb1JVklDQQorQkXEjCBKQU5KQQorQkXEjEVJIExBSk/FoAorQkXEjEVKQUMgQUxFS1NBTkRBUgorQkXEjEVKQUMgQk/FoEtPCitCRcSMRUpBQyBCUkFOSVNMQVYKK0JFxIxFSkFDIEpPVkFOCitCRcSMRUpBQyBLQU1FTktPCitCRcSMRUpBQyBNSUxBTgorQkXEjEVKQUMgUkFERU5LTworQkXEjEVKQUMgUkFET0pLQQorQkXEjEVKQUMgU0FWQQorQkXEjEVMScSGIMSQT1LEkEUKK0JFxIxFTEnEhiBCSVNFUktBCitCRcSMRUxJxIYgQk9TSUxKS0EKK0JFxIxFTEnEhiBET0JSSU5LTworQkXEjEVMScSGIERSQUdJQ0EKK0JFxIxFTEnEhiBHSU5BCitCRcSMRUxJxIYgSk9WQU4KK0JFxIxFTEnEhiBMQVpBUgorQkXEjEVMScSGIE1BUklKQQorQkXEjEVMScSGIE1BUklKQQorQkXEjEVMScSGIE1JTEFOCitCRcSMRUxJxIYgTUlMRU5BCitCRcSMRUxJxIYgTUlMSUNBCitCRcSMRUxJxIYgTUlMT8WgCitCRcSMRUxJxIYgUEVUQVIKK0JFxIxFTEnEhiBSQURJVk9KCitCRcSMRUxJxIYgUkFET1ZBTgorQkXEjEVMScSGIFNURVZBTgorQkXEjEVMScSGIFNURVZBTgorQkXEjEVMScSGIFZBU0EKK0JFxIxFTEnEhiBWRVNFTElOCitCRcSMRUxJxIYgVkVTRUxJTgorQkXEjEnEhiBNVUhJQkEKK0JFxIxJxIYgVkVST0xKVUIKK0JFxIxLRUkgSkFOT8WgCitCRcSMS0VJIFBFVEFSCitCRcSMS0VKSSBLQVJMTworQkXEjFZBUkRJIEFMRUtTQU5EQVIKK0JFxIxWQVJESSBKT1NJUAorQkXFoEFOScSGIEJPxb1BTkEKK0JFxaBBTknEhiBaRFJBVktPCitCRcWgRU5KSSBLQVJMTworQkXFoEVOSkkgS0FSTE8KK0JFxaBFTlNLSSBOSUtPTEEKK0JFxaBFVknEhiBBTEVLU0EKK0JFxaBFVknEhiBKT1ZBTgorQkXFoEVWScSGIE1JUkpBTkEKK0JFxaBFVknEhiBOSUtPTEEgRElQTCBPRUMKK0JFxaBJxIYgTUFSSUpBCitCRcWgScSGIE1BUklKQQorQkXFoEnEhiBNRUhNRUQKK0JFxaBJxIYgTUlIQUpMTworQkXFoEnEhiBTTE9CT0RBTgorQkXFoEnEhiBTVkVUSVNMQVYKK0JFxaBLRVIgQU5EUklKQQorQkXFoEtFUiBCT8W9TworQkXFoEtFUiBTUkXEhktBCitCRcWgTEnEhiBKT1ZBTgorQkXFoExJxIYgVEVSRVpJSkEKK0JFxaBMSUpBIEdPU1BBVkEKK0JFxaBMSU4gxb1JVktPIERJUEwgT0VDCitCRcWgTElOIEJSQU5LTworQkXFoExJTiBJVkFOCitCRcWgTElOIElWSUNBCitCRcWgTElOIEpFTElTQVZFVEEKK0JFxaBMSU4gTUlPRFJBRworQkXFoExJTiBTVE9KQU4KK0JFxaBMSU4gVkxBRElTTEFWQQorQkXEhkFHVUwgU0FWQQorQkXEhklOIEFMRUtTQU5EQVIKK0JFxIZJTiBPTEdBCitCRcSGSVJPVlNLSSBBREVNCitCRcW9QU4gVklLVE9SCitCRcW9QU5PViBBTEVLU0FOREFSCitCRcW9QU5PViBCUkFOSVNMQVYKK0JFxb1BTk9WIERSQUdPTEpVQgorQkXFvUFOT1YgTUlST0xKVUIKK0JFxb1BTk9WScSGIMSQT1LEkEUKK0JFQURFUiBKT1ZBTgorQkVBUkEgxb1JVktPCitCRUFSQSDEkE9SxJBFCitCRUFSQSBKT1ZBTgorQkVBUkEgTUFSS08KK0JFQVJBIFBFVEFSCitCRUFSQSBQRVRBUgorQkVBVE9WScSGIE5FQk9KxaBBCitCRUJFSyBNQVRPCitCRUJFTEpBLU1BVFXFoCBBTktBCitCRUJJxIYgQU5BCitCRUJJxIYgTEpJTEpBTkEKK0JFQknEhiBORVZFTktBCitCRUJJxIYgTkVWRU5LQQorQkVCScSGIFBFVEFSCitCRUJJxIYgU1RPSkFOS0EKK0JFQ0UgQkVMQQorQkVDRSBUSUJPUgorQkVDScSGIFNURVZBTgorQkVExb1FVEkgTUFSSUpBCitCRURBSyBCSUxKQU5BCitCRURFIMWgQU5ET1IKK0JFREUgUEVUQVIgRFIKK0JFREUgUEVUQVIKK0JFREVLT1ZJxIYgQU5UT04KK0JFRE5BUklLIEFORFJJSkEKK0JFRE5BUklLIERBUklOS0EKK0JFRE5BUklLIEpBTk/FoAorQkVETkFSSUsgSk9TSVAKK0JFRE5BUklLIE1JSEFMSgorQkVET1YgQklTRVJLQQorQkVET1YgSk9WQU4KK0JFRE9WIExKVUJJQ0EKK0JFRE9WIE1BUklKQQorQkVET1YgTUlST1NMQVYKK0JFRE9WIE5BREEKK0JFRE9WIFBSRURSQUcKK0JFRE9WIFJBREEKK0JFRE9WIFNSxJBBTgorQkVET1YgU1VOxIxJQ0EKK0JFRE9WIFNWRVRJU0xBVgorQkVEUklLIEFMRUtTQU5EQVIKK0JFRyBBTkRSSUpBCitCRUctVkFMT1ZJxIxJxIYgQU7EkEVMS08KK0JFRy1WT0xPVknEjEnEhiBJVkFOCitCRUdBTkkgxaBFUklGCitCRUdBTk9WScSGIE1FSE1FRAorQkVHQU5PVknEhiBTQU5JRAorQkVHRcSMS0kgUkFKS08KK0JFR0XEjEtJIFNBVkEKK0JFR0VOScWgScSGIERSQUdPUkFECitCRUdFTknFoEnEhiBWVUtBxaBJTgorQkVHScSGIE1JTE/FoAorQkVHScSGIE1JUktPCitCRUdMRVJCRUdPVknEhiBExb1FVkFECitCRUdPSkVWIEFOS0EKK0JFR09KRVYgQk9HREFOCitCRUdPSkVWIExBWkFSCitCRUdPSkVWIExBWkEKK0JFR09KRVYgUEVUQVIKK0JFR09KRVYgUkFET0pLQQorQkVHT0pFViBUT8WgQQorQkVHT0pFVknEhiBSQURJVk9KCitCRUdPVknEhiBFVklDQQorQkVHT1ZJxIYgSkFTTUlOQQorQkVHT1ZJxIYgSk9WQU4KK0JFR09WScSGIExBRElTTEFWCitCRUdPVknEhi1MSVZBSkEgSUxJSkEKK0JFR09WScSGIExKVUJBTgorQkVHT1ZJxIYgTUlMSUpBCitCRUdPVknEhiBNSUxPUkFECitCRUdPVknEhiBNSVJLTworQkVHT1ZJxIYgUk/EhktPCitCRUdPVknEhiBTQVZPCitCRUdPVknEhiBUT0RPUgorQkVHT1ZJxIYgWk9STworQkVIRVIgRVZBCitCRUhFUkFOTyBKT1NJUAorQkVIVEVSIEFMRUtTQU5EQVIKK0JFSkFST1ZJxIYgTUFSS08KK0JFSkFST1ZJxIYgTkVOQUQKK0JFSkFUT1ZJxIYgxJBPUsSQRQorQkVKQVRPVknEhiBNSUxPUkFECitCRUpBVE9WScSGIE1JUktPCitCRUpUT1ZJxIYgQUxJSkEKK0JFSyBBTlRPTklKQQorQkVLIERSQUdBTkEKK0JFSyBKT1ZBTgorQkVLIExBRElTTEFWCitCRUsgTEpJTEpBTkEKK0JFSyBSVcW9QQorQkVLIFNURVZBTgorQkVLxIxJxIYgTUlMT1JBRAorQkVLQVJFSyBJTElOS0EKK0JFS0UgTEFTTE8KK0JFS0UgTUFSSUpBTgorQkVLRVIgRlJFREVSSUsKK0JFS0VSIEnFoFRWQU4KK0JFS0VSIElEQQorQkVLRVIgSk/FvUVGCitCRUtFUiBKT1NJUAorQkVLRVIgU1RFVkFOCitCRUtJxIYgQk9SSVMKK0JFS0nEhiBCUkFOS0EKK0JFS0nEhiBKVVJFCitCRUtJxIYgTUlMT1JBRAorQkVLScSGIFRPTUlTTEFWCitCRUtJxIYgVkVSQQorQkVLUknEhiBEUkFHQU4KK0JFS1JJxIYgTUlSQQorQkVLUknEhiBUT01JU0xBVgorQkVLVEHFoCBEQU5JQ0EKK0JFS1RBxaAgU0xBVktPCitCRUtVVCBEUkFHQU4KK0JFS1VUIFBFVEFSCitCRUtWQUxBQyDFvUlWQU4KK0JFS1ZBTEFDIEJSQU5JU0xBVgorQkVLVkFMQUMgQlJBTklTTEFWCitCRUtWQUxBQyBCUkFOS0EKK0JFS1ZBTEFDIEJSQU5LTworQkVLVkFMQUMgQlJBTktPCitCRUtWQUxBQyBEUkFHT0xKVUIKK0JFS1ZBTEFDIEVNSUxJSkEKK0JFS1ZBTEFDIElTQQorQkVLVkFMQUMgTEFaQVIKK0JFS1ZBTEFDIExKVUJJQ0EKK0JFS1ZBTEFDIExKVUJJQ0EKK0JFS1ZBTEFDIExKVUJJTktPCitCRUtWQUxBQyBNQVJBCitCRUtWQUxBQyBNSUpBCitCRUtWQUxBQyBNSUxBTktPCitCRUtWQUxBQyBNSUxBTgorQkVLVkFMQUMgTUlMSVNBVgorQkVLVkFMQUMgTUlSSkFOQQorQkVLVkFMQUMgUkFESVZPSgorQkVLVkFMQUMgUkFETUlMQQorQkVLVkFMQUMgU0VSQUZJTkEKK0JFS1ZBTEFDIFNURVZBTgorQkVMxIxFVknEhiBHUkFESU1JUgorQkVMxIxFVknEhiBSQVRLTworQkVMQUsgxaBBTkRPUgorQkVMQUsgQU5BCitCRUxBSyBNQVJHSVRBCitCRUxBSyBNSUpPCitCRUxBSyBWTEFEQQorQkVMQU4gSk/FvUVGCitCRUxBTsSMScSGIEVMSVpBQkVUQQorQkVMQU5PVknEhiDEkE9SxJBFCitCRUxBTk9WScSGIEFMRUtTQU5EUkEKK0JFTEFOT1ZJxIYgS0FUSUNBCitCRUxBTk9WScSGIE1JTElWT0oKK0JFTEFOT1ZJxIYgVElCT1IKK0JFTEVDS0kgSkVMRU5BCitCRUxFR0nFoEFOSU4gRFJBR09NSVIgRFIKK0JFTEVTTElKSU4gTUlMT1JBRAorQkVMRVNMSUpJTiBTTE9CT0RBTgorQkVMRVNMSU4gRE9CUklMQQorQkVMRVNMSU4gTUlST1NMQVYKK0JFTEVTTElOIFNWRVRPWkFSIERSCitCRUxFVEnEhiBKRUxFTkEKK0JFTEkgQU5EUklKQQorQkVMSSBFTUlMCitCRUxJIFJPWkFMSUpBCitCRUxJIFNURVZBTgorQkVMSSBWT0pJU0xBVgorQkVMScSMS0EgQU5BCitCRUxJxIxLQSBCUkFOSVNMQVYKK0JFTEnEjEtBIE1JUk9TTEFWCitCRUxJxIYgxb1JVktBCitCRUxJxIYgxJBPUsSQRQorQkVMScSGIMSQT1LEkEUKK0JFTEnEhiDEkFVSSUNBCitCRUxJxIYgQk/FoEtPCitCRUxJxIYgQk/FvUlEQVIKK0JFTEnEhiBCT8W9SURBUgorQkVMScSGIEJPUklTTEFWCitCRUxJxIYgQk9SSVNMQVYKK0JFTEnEhiBCT1JJUworQkVMScSGIEJPUklWT0pFCitCRUxJxIYgQk9SSVZPSkUKK0JFTEnEhiBCUkFOSVNMQVYKK0JFTEnEhi1CUktJxIYgVkxBRElTTEFWQQorQkVMScSGIERBTklDQQorQkVMScSGIERBTklKRUxBCitCRUxJxIYgRFJBR0FOCitCRUxJxIYgRFJBR0lDQQorQkVMScSGIERSQUdVVElOCitCRUxJxIYgRFXFoEFOIERSCitCRUxJxIYgRFXFoEFOIERSCitCRUxJxIYgRFXFoEFOCitCRUxJxIYgRFXFoEFOCitCRUxJxIYgRFXFoEFOCitCRUxJxIYgRFXFoEtPCitCRUxJxIYgRFXFoEtPCitCRUxJxIYgRkxPUklLQQorQkVMScSGIElMSUpBCitCRUxJxIYgSk9TSU0KK0JFTEnEhiBKT1ZBTktBCitCRUxJxIYgSk9WSUNBCitCRUxJxIYgSlVMSUpBTkEKK0JFTEnEhiBKVUxLQQorQkVMScSGIExBWkFSCitCRUxJxIYgTEpVQklDQQorQkVMScSGIE1BUklDQQorQkVMScSGIE1JTEFOCitCRUxJxIYgTUlMQU4KK0JFTEnEhiBNSUxBTgorQkVMScSGIE1JTEFOCitCRUxJxIYgTUlMRU5BCitCRUxJxIYgTUlMSVZPSgorQkVMScSGIE1JTE/FoAorQkVMScSGIE1JTE9SQUQKK0JFTEnEhiBNSVJKQU5BCitCRUxJxIYgTUlST1NMQVYKK0JFTEnEhiBORU5BRAorQkVMScSGIE5FU1RPUgorQkVMScSGIE5JS09MQQorQkVMScSGIFBFVEFSCitCRUxJxIYgUEVUQVIKK0JFTEnEhiBSQURJTktBCitCRUxJxIYgUkFET0pLQQorQkVMScSGIFJBRE9TTEFWCitCRUxJxIYgUkFET1ZBTgorQkVMScSGIFNBVkEKK0JFTEnEhiBTRU5BCitCRUxJxIYgU0lNQQorQkVMScSGIFNMQVZLTyBESVBMIElORworQkVMScSGIFNMQVZLTworQkVMScSGIFNMT0JPREFOS0EKK0JFTEnEhiBTT0ZJSkEKK0JFTEnEhiBTUsSQQU4KK0JFTEnEhiBTVEFOS08KK0JFTEnEhiBTVEVWQU4KK0JFTEnEhiBTVE9KQU5LQQorQkVMScSGIFNUT0pBTgorQkVMScSGIFNWRVRJU0xBVgorQkVMScSGIFNWRVRJU0xBVgorQkVMScSGIFNWRVRMQU5BCitCRUxJxIYgVE9ET1IKK0JFTEnEhiBWRVJBCitCRUxJxIYgVkVTTkEKK0JFTEnEhiBWTEFESVNMQVYKK0JFTEnEhiBWTEFESVNMQVYKK0JFTEnEhiBWT0pJU0xBVgorQkVMScSGIFZVS0EKK0JFTEnEhiBaT1JBCitCRUxJTUFSS09WScSGIFNMQVZPTEpVQgorQkVMSU5JxIYgxJBVUkEKK0JFTElOU0tJIEFMRUtTQU5EQVIKK0JFTElOU0tJIFNQQVNFTklKQQorQkVMSkFLT1YgTUlMSUNBCitCRUxKQU5TS0kgxb1JVktBCitCRUxKQU5TS0kgxb1JVktBCitCRUxKQU5TS0kgxJBPUsSQRQorQkVMSkFOU0tJIMSQT1LEkEUKK0JFTEpBTlNLSSDEkE9SxJBFCitCRUxKQU5TS0kgQU7EkEVMSUpBCitCRUxKQU5TS0kgQU5LSUNBCitCRUxKQU5TS0ktQkFKScSGIEtBxIZVxaBBCitCRUxKQU5TS0kgQk9SQQorQkVMSkFOU0tJIEJPUkEKK0JFTEpBTlNLSSBCT1JJVk9KCitCRUxKQU5TS0kgRFJBR0FOQQorQkVMSkFOU0tJIERSQUdJQ0EKK0JFTEpBTlNLSSBFTUlMSUpBCitCRUxKQU5TS0kgR0FWUkEKK0JFTEpBTlNLSSBHT1JEQU5BCitCRUxKQU5TS0kgSkVMSVNBVkVUQQorQkVMSkFOU0tJIEpPVkFOCitCRUxKQU5TS0kgSk9WQU4KK0JFTEpBTlNLSSBKVUxJSkFOQQorQkVMSkFOU0tJIExBWkFSCitCRUxKQU5TS0kgTEFaQVIKK0JFTEpBTlNLSSBMQVpBUgorQkVMSkFOU0tJIExFUE9KS0EKK0JFTEpBTlNLSSBMSlVCT01JUgorQkVMSkFOU0tJIE1JTEFOCitCRUxKQU5TS0kgTUlMRU5LTworQkVMSkFOU0tJIE1JTE9SQUQKK0JFTEpBTlNLSSBNSUxPUkFECitCRUxKQU5TS0kgTUlMVVRJTgorQkVMSkFOU0tJIE1JUkpBTkEKK0JFTEpBTlNLSSBQQVZMRQorQkVMSkFOU0tJIFJBREEKK0JFTEpBTlNLSSBSQURNSUxBCitCRUxKQU5TS0kgUkFET1ZBTgorQkVMSkFOU0tJIFJBTktPCitCRUxKQU5TS0kgUlXFvUlDQQorQkVMSkFOU0tJIFNMT0JPREFOCitCRUxKQU5TS0kgU1RFVkFOCitCRUxKQU5TS0kgVEVPRE9SCitCRUxKQU5TS0kgVE/FoEEKK0JFTEpBTlNLSSBWQVNJTElKRQorQkVMSkFOU0tJIFZFUkEKK0JFTEpBTlNLSSBWTEFESU1JUgorQkVMSkFOU0tJIFZMQURJU0xBVgorQkVMSkFOU0tJIFZPSklTTEFWCitCRUxKQU5TS0kgWkFHT1JLQQorQkVMSkFOU0tJIFpERU5LQQorQkVMSklOIMW9SVZBCitCRUxKSU4gxJBPUsSQRQorQkVMSklOIEJSQU5JU0xBVkEKK0JFTEpJTiBESU1JVFJJSkUKK0JFTEpJTiBNQVJJSkEgTUFHREFMRU5BCitCRUxKSU4gTkVERUxKS08KK0JFTEpJTiBSQURJVk9KCitCRUxKSU4gUkFET1NMQVYKK0JFTEpJTiBSVcW9QQorQkVMSklOIFNBVkEKK0JFTEpJTiBTT0ZJSkEKK0JFTEpJTiBWTEFESU1JUgorQkVMSklOQUMgWk9SQU4KK0JFTE/FoEVWIE5FVkVOS0EKK0JFTE9CUkFEScSGIE1JTEFOCitCRUxPQlJBREnEhiBTQVZBCitCRUxPQlJLIEJSQU5JU0xBVgorQkVMT0JSSyBEUkFHT1NMQVYKK0JFTE9CUksgTElWSUpFCitCRUxPQ0nEhiBNSUxFTktPCitCRUxPQ0nEhiBSQURNSUxBCitCRUxPSUNBIFJBRE9TTEFWCitCRUxPSUNBIFZJREFOCitCRUxPUEFWTE9WScSGIERSQUdBIERSCitCRUxPUEFWTE9WScSGIE1JTE9KS08KK0JFTE9QQVZMT1ZJxIYgWk9SQU4gRFIKK0JFTE9QQVZMT1ZJxIYgWk9SQU4gRFIKK0JFTE9TQVZJxIYgSkVMSUNBCitCRUxPVEkgSVZBTktPCitCRUxPVkFSSSBJVkFOCitCRUxPVknEhiBCSUxKQU5BCitCRUxPVknEhiBSQURBCitCRUxPVknEhiBTVEVWQU4KK0JFTFXFoEVWScSGIEJPxb1JREFSCitCRUxVxaBFVknEhiBOT1ZJQ0EKK0JFTFXFvUnEhiBEQVJJTktBCitCRUxVxb1JxIYgU1RKRVBBTgorQkVNIElWQU4KK0JFTSBKT1ZBTgorQkVNIEtBUkxPCitCRU0gTUlST1NMQVYKK0JFTUlMRVIgTUFHREFMRU5BCitCRU7EjElLIMSQVUxBCitCRU7EjElLIElMT05LQQorQkVOQSBNSUxPU0FWQQorQkVOQcWgScSGIFZJTktPCitCRU5BSyBQQUwKK0JFTkFSSUsgTEFTTE8KK0JFTkFSSUsgTUFHREFMRU5BCitCRU5DIEJSQU5JU0xBVkEKK0JFTkMgRFJBR0FOCitCRU5DRSBNQVJJSkEKK0JFTkNFIE1JSEFMSgorQkVOQ0UgTUlLRcWgCitCRU5DRVRJxIYgQU5EUklKQQorQkVOQ0VUScSGIExKVURFVklUCitCRU5DVU4gVkVMSU5LQQorQkVOREVLIE1JTEFOCitCRU5FxaAgTEpVRE1JTEEKK0JFTkXFvUFOIExKVUJJQ0EKK0JFTkVERUtPVknEhiBJVkFOCitCRU5HSU4txJBVUktJxIYgTkVaQQorQkVOR0lOIEJPxb1JREFSCitCRU5HSU4gRE9CUklOS0EKK0JFTkdJTiBEVcWgQU4KK0JFTkdJTiBLT1ZJQ0EKK0JFTkdJTiBNSUxBTgorQkVOScSMQUsgS0FSTE8KK0JFTknEjEFLIE1BR0RBTEVOQQorQkVOScWgRUsgRFJBR1VUSU4KK0JFTknEhiBFVkEKK0JFTknEhiBHUlVKSUNBCitCRU5JxIYgUEVUQVIKK0JFTknEhiBTRUtVTEEKK0JFTknEhiBaREVOS08KK0JFTklOIMW9SVZPSklOCitCRU5KQSBLQVRBUklOQQorQkVOSkFLIERSQUdPU0xBVkEKK0JFTkpBSyBFVklDQQorQkVOS0EgTUFSSUpBCitCRU5LQSBNSUhBSUxPCitCRU5LRSBFTFpBCitCRU5LT1ZJxIYgSk9DQQorQkVOS09WScSGIEpPQ0EKK0JFTk8gVElCT1IKK0JFTk9WScSGIEpPU0lQCitCRU5PVknEhiBTVEFOQQorQkVPxIxBTklOIEpPVkFOCitCRU/EjEFOSU4gTUlPRFJBRworQkVPxIxBTklOIFBBVkxFCitCRU9EUkFOU0tJIERSQUdPTUlSCitCRU9EUkFOU0tJIFNUT0pBTgorQkVPS09WScSGIERBTUlSCitCRVIgQUxFS1NJSkUKK0JFUiBGUkFOSk8KK0JFUsSMRUsgxJBFUsSQCitCRVLEjEVLIEJPxb1JREFSCitCRVLEjEVLIEZSQU5KQQorQkVSxIxFSyBMQURJU0xBVgorQkVSxIxFSyBNQVJJSkEKK0JFUsSMRUsgTUlIQUlMTworQkVSxIxFSyBPU0tBUgorQkVSxIxFSyBTQU5JU0xPCitCRVLEhkFOIE1JUkpBTkEKK0JFUsSGQU4gUEVUQVIKK0JFUsSGQU4gU0xBVktPCitCRVJBIMSQT1LEkE8KK0JFUkEgRFJBR0FOCitCRVJBSyBORUJPSsWgQQorQkVSQU5PVknEhiBBTEVLU0FOREFSCitCRVJBUiDFvUlWQU5BCitCRVJBUiBCT1JJVk9KCitCRVJBUiBCUkFOSVNMQVYKK0JFUkFSIEJSQU5JU0xBVgorQkVSQVIgRFXFoEFOS0EKK0JFUkFSIE1JTEFOCitCRVJBUiBNSUxBTgorQkVSQVIgTUlMQU4KK0JFUkFSIFJBRElWT0oKK0JFUkFSIFNMT0JPREFOCitCRVJBUiBTTE9CT0RBTgorQkVSQVIgVElNQQorQkVSQVIgVkxBRElNSVIKK0JFUkFST1YgxJBVUklDQQorQkVSQkFLT1YgTEpVQklDQQorQkVSQkFLT1YgTUFSQQorQkVSQkFLT1YgTUlMT8WgCitCRVJCQUtPViBQRVRBUgorQkVSQkFLT1YgU1RFVkFOCitCRVJCQVRPVknEhiDFvUFSS08KK0JFUkJBVE9WScSGIE1JUkpBTkEKK0JFUkJFUiBMSklMSkFOQQorQkVSQkVSIFNURVZBTgorQkVSQkVSScSGIEpFTElTQVZFVEEKK0JFUkJFUknEhiBKT1ZBTgorQkVSQkVSScSGIExBWkFSCitCRVJCRVJJxIYgTUlMVVRJTgorQkVSRcWgIMSQT1LEkEUKK0JFUkXFoCBEQU5JTE8KK0JFUkXFoCBJTE9OQQorQkVSRcWgIEpPU0lQCitCRVJFxaAgSlVMScWgS0EKK0JFUkXFoCBLQVJPTEoKK0JFUkXFoCBLT1JORUwKK0JFUkXFoCBUSUJPUgorQkVSRcWgLVRPVCBLT1JORUwKK0JFUkVIQU5JxIYgSlVMS0EKK0JFUkVOSkkgRVVHRU4KK0JFUkVOSkkgSkFOT8WgCitCRVJFTkpJIEpFTEVOQQorQkVSRU5KSSBNSUtMT8WgCitCRVJFTkpJIE1JS0xPxaAKK0JFUkVOSkkgUk9aQUxJSkEKK0JFUkVOSkkgU1RFVkFOCitCRVJFTkpJIFRJQk9SCitCRVJFTlRBIEpPU0lQCitCRVJFTlRFIElMT05BCitCRVJFVEnEhiBBTlRVTgorQkVSRVRJxIYgTEFESVNMQVYKK0JFUkVUScSGIE1BUkdJVEEKK0JFUkVUS0EgxaBBTkRPUgorQkVSRVRLQSBHT1JEQU5BCitCRVJFVEtBIEpVTElKQU5BCitCRVJFVEtBIEtBUkxPCitCRVJFVEtBIE1JSEFMSgorQkVSR0VMIMSQVVJBCitCRVJHRUwgQU5UVU4KK0JFUkdFUiBGUkFOSkEgRFIgU1RPTUFUT0xPRworQkVSR0VSIE1JUk9TTEFWCitCRVJJxaBBIEFaSVMKK0JFUknFoEEgQk9KS0EKK0JFUknFoEEgREVNTworQkVSScWgQSBGQUlLCitCRVJJxaBBIE1JUlZFVEEKK0JFUknFoEEgUkFHSUIKK0JFUknEhiDFvUlWS08KK0JFUknEhiBBTsSQRUxLTworQkVSScSGIEFOVEEKK0JFUknEhiBBTlRBCitCRVJJxIYgQkVSSVNMQVYgRFIgUFJPRgorQkVSScSGIEJJTEpBTkEKK0JFUknEhiBCT8W9SURBUgorQkVSScSGIEJPR0RBTgorQkVSScSGIERSQUdJTkpBCitCRVJJxIYgRFXFoEFOS0EKK0JFUknEhiBEVcWgQU4KK0JFUknEhiBHT0pLTworQkVSScSGIEdPSktPCitCRVJJxIYgR09KS08KK0JFUknEhiBJTElKQQorQkVSScSGIEpPUkRBTkEKK0JFUknEhiBKT1ZPCitCRVJJxIYgS09TVEEKK0JFUknEhiBNQVJBCitCRVJJxIYtTUFTS0FSRUwgS0FSTUVOU0lUQSBEUgorQkVSScSGIE1JTEFOCitCRVJJxIYgTUlMQU4KK0JFUknEhiBNSUxBTgorQkVSScSGIE1JTElDQSBNUgorQkVSScSGIE1JTElWT0oKK0JFUknEhiBNSUxPUkFECitCRVJJxIYgTUlMT1JBRAorQkVSScSGIE1JTE9WQU4KK0JFUknEhiBOQURBCitCRVJJxIYgTklLT0xBCitCRVJJxIYgUEVSU0lEQQorQkVSScSGIFBFVEFSCitCRVJJxIYgUkFESVZPSgorQkVSScSGIFJBSktPCitCRVJJxIYgUkFKS08KK0JFUknEhiBTQVZBCitCRVJJxIYgVE9ERQorQkVSScSGIFZFUkEKK0JFUknEhiBWRVJJQ0EKK0JFUknEhiBWRVNOQSBEUgorQkVSScSGIFpPUklDQQorQkVSSVNBVkxKRVZJxIYgUkFKS08KK0JFUklTQVZMSkVWScSGIFpPUklDQQorQkVSS0XFoCBJxaBUVkFOCitCRVJLSSBKT8W9RUYKK0JFUktJxIYgUlXFvUlDQQorQkVSS09WScSGIEJFUklTTEFWCitCRVJLT1ZJxIYgRMW9QUZFUgorQkVSS09WScSGIE1JUk9TTEFWCitCRVJLT1ZJxIYgU0xBVk9MSlVCCitCRVJMQU7EjEnEhiBEQU5JSkVMCitCRVJMT1ZBTiBHRU9SR0lOQQorQkVSTkFDS0kgQURPTEYKK0JFUk5BUkQgxJBPUsSQRQorQkVSTkhBUkQgxb1BUktPCitCRVJOSEFSRCBCT8W9SURBUgorQkVSTkhBUkQgQk9KQU5BCitCRVJOSEFSRCBGSUxJUAorQkVSTkhBUkQgSUxJSkEKK0JFUk5IQVJEIExKVUJBTgorQkVSTkhBUkQgTUFSSUpBCitCRVJOSEFSRCBNSUxBTgorQkVSTkhBUkQgTUlMSUNBIERSCitCRVJOSEFSRCBNSUxPUkFECitCRVJOSEFSRCBSQURPU0xBVgorQkVSTkhBUkQgUkFKS08KK0JFUk5IQVJEIFNJTU8KK0JFUk5IQVJEIFRSSVZPCitCRVJPxaAgTEpVQklDQQorQkVSVEEgSkFOT8WgCitCRVJUQSBNSUxJQ0EKK0JFUlRBIFBBTAorQkVSVEEgUEVUQVIKK0JFUlRJxIYgVEFUSkFOQQorQkVSVEnEhiBaVk9OS08KK0JFUlRPSyBKQU5PxaAKK0JFUlRPSyBKVUxJSkFOQQorQkVSVE9LIExBSk/FoAorQkVSVFJPTiBMRU5LRQorQkVSVVMgVkpFS09TTEFWCitCRVJaQSBBTEVLU0FOREFSCitCRVNFREXFoCBKT8W9RUYKK0JFU0VSTUVOSkkgxJBPUsSQRQorQkVTRVJNRU5KSSBCUkFOS08KK0JFU0VSTUVOSkkgRElPTklaSUpFCitCRVNFUk1FTkpJIEVVRkVNSUpBCitCRVNFUk1FTkpJIElSRU5BCitCRVNFUk1FTkpJIElWQU4KK0JFU0VSTUVOSkkgS0lSSUwKK0JFU0VSTUVOSkkgS1NFTklKQQorQkVTRVJNRU5KSSBMRU9OQQorQkVTRVJNRU5KSSBNRUxBTklKQQorQkVTRVJNRU5KSSBPTEdBCitCRVNFUk1FTkpJIFZMQURJTUlSCitCRVNFUk1FTkpJIFZMQURJTUlSCitCRVNLT1JPVkFKTkkgVkxBRElNSVIKK0JFU0xBxIYgRFJBR0FOQQorQkVTTEHEhiBNSUxVVElOCitCRVNMQcSGIFJBRE1JTEEKK0JFU05JTE9WIEJPxaBLTworQkVTTklMT1YgT0xJVkVSQQorQkVTVSBTSUxBCitCRVNVIFRPRE9SCitCRVNVIFRSQU5EQUZJUgorQkVUSSBTVEFOS08gQURWT0tBVAorQkVVQyDFvUlWQU4KK0JFVUMgTUlSQQorQkVVQyBPTEdBCitCRVpEQU4gQU5BCitCRVpEQU4gRlJBTkpBCitCRVpEQU4gSUxESUtPCitCRVpEQU4gSVJFTkEKK0JFWkRBTiBKT1NJUAorQkVaRU7FoEVLIE5BVEFMSUpBCitCRVpJIEtBVElDQQorQkVaSkFLIE1JTEFOS0EKK0JFWkpBSyBaREVOS08KK0JFWlVMSiDEkE9SxJBFCitCRVpVTEogTEpJTEpBTkEgUFJPRkVTT1IKK0JJxIxBSyBJR05BQworQknEjEFLIEpVU1RJTkEKK0JJxIxBTiBBTktBCitCScSMQU4gSVZJQ0EKK0JJxIxLRUkgVEVSRVpJSkEKK0JJxIZBTknEhiBEQU5JQ0EKK0JJxIZBTknEhiBLUklTVElOQQorQknEhkFOScSGIE1BUklKQQorQknEhkFOScSGIFBFVEFSCitCScSGQU5JxIYgUEVUUkEKK0JJQkVSIFNURVZBTgorQklCRVJExb1JxIYgUkFET01JUgorQklCScSGIEFMRUtTQU5EQVIKK0JJQknEhiBQQVZMRQorQklCScSGIFNPRklKQQorQklCScSGIFNUSkVQQU4KK0JJQklOIEpVR09TTEFWCitCSUJJTiBNSUxJTktPCitCSUNJS0lOIE1JTEFOCitCSUNLIERSQUdVVElOCitCSUNPIFJVxb1JQ0EKK0JJQ09LIEVURUxLQQorQklDT0sgTUFSR0lUQQorQklDT0sgTUFSR0lUQQorQklFTMSMSUsgTElESUpBCitCSUdBIEJPUklTTEFWCitCSUdBIE1JTEFOCitCSUdBIE5BREEKK0JJR0EgU01JTEpBCitCSUdPVknEhi3FoElST0tJIFpPUklDQQorQklHT1ZJxIYgQU5BCitCSUdPVknEhiBWT0pJTgorQklHT1ZJxIYgVk9KSVNMQVYKK0JJSE9SQUMgTUlSSkFOQQorQklKQU5JxIYgTUlMRU5LTworQklKQU5LTyBQRVRBUgorQklKRURJxIYgTUlMT1JBRAorQklKRUxJxIYgQUxFS1NBCitCSUpFTEnEhiBCUkFOSVNMQVYKK0JJSkVMScSGIERBUkEKK0JJSkVMScSGIElWSUNBCitCSUpFTEnEhiBKT1ZBTgorQklKRUxJxIYgSk9WSUNBCitCSUpFTEnEhiBNQVRPCitCSUpFTEnEhiBNSUxBTgorQklKRUxJxIYgTUlMRQorQklKRUxJxIYgTUlMRQorQklKRUxJxIYgTUlMRQorQklKRUxJxIYgTUlMRQorQklKRUxJxIYgTk9WQUsKK0JJSkVMScSGIFBFUk8KK0JJSkVMScSGIFJJU1RPCitCSUpFTEnEhiBTVE9KQU4KK0JJSkVMScSGIFNUT0pBTgorQklKRUxKQUMgTkVERUxKS08gRElQTCBJTkcKK0JJSkVMT1ZJxIYgTk9WS0EKK0JJSlVLTEnEhiBEUkFHT1NMQVYKK0JJSlVLTEnEhiBEUkFHT1NMQVYKK0JJSlVLTEnEhiBNQVJJTktPCitCSUtBUiBEUkFHQU5BCitCSUtBUiBGRURPUkEKK0JJS0FSRVZJxIYgRFJBR0FOCitCSUtJxIYgxb1JVkFOCitCSUtJxIYgxJBPUsSQRQorQklLScSGIERBTklDQQorQklLScSGIERVxaBBTgorQklLScSGIEtPTlNUQU5USU4KK0JJS0nEhiBMSklMSkFOQQorQklLScSGIE1JTE9WQU4KK0JJS0nEhiBNSU9EUkFHCitCSUtJxIYgTklLT0xBCitCSUtJxIYgUEVSQQorQklLSUNLSSDEkE9SxJBFCitCSUtJQ0tJIEFMRUtTQU5EQVIKK0JJS0lDS0kgQlJBTklTTEFWCitCSUtJQ0tJIEpFTElDQQorQklLSUNLSSBKRUxJQ0EKK0JJS0lDS0kgSk9WQU4KK0JJS0lDS0kgSk9WQU4KK0JJS0lDS0kgS0FUQVJJTkEKK0JJS0lDS0kgTUlMT8WgCitCSUtJQ0tJIE1JUk9TTEFWCitCSUtJQ0tJIFJBRE9KS0EKK0JJS0lDS0kgU0lOScWgQQorQklLSUNLSSBTSU5JxaBBCitCSUtJQ0tJIFZBU0lMSUpFCitCSUtJVCBNQUdET0xOQQorQklLSVQgTk9SQkVSVAorQklLT1ZJxIYgTEpVQklDQQorQklLT1ZJxIYgVkxBRElNSVIKK0JJTMSMQVIgSElMREEKK0JJTMSMQVIgVkVSQQorQklMQSBNSVJLTworQklMQUsgTUlMQU4KK0JJTEFLIE5BREEKK0JJTEFMT1ZJxIYgU0FCQUhVRElOCitCSUxBTkTFvUlKQSBEQU5JQ0EKK0JJTEFOScSGIE5BREEKK0JJTEFOT1ZJxIYgRFXFoEFOCitCSUxBTk9WScSGIEdPUkRBTkEKK0JJTEFOT1ZJxIYgUEVSTworQklMQVMgU01JTEpBCitCSUxCSUpBIEJPR0RBTgorQklMQklKQSBERUpBTgorQklMQklKQSBEUkFHQU4KK0JJTEJJSkEgSkFTTkEKK0JJTEJJSkEgTUlMQU4KK0JJTEJJSkEgU01JTEpBCitCSUxFSyBNSUxJQ0EKK0JJTEVSIMSQT1LEkEUKK0JJTEkgSlVMSUpBCitCSUxJxIxJxIYgU1RKRVBBTgorQklMScSGIEFOVEUKK0JJTEnEhiBCUkFOS0lDQQorQklMScSGIEdPUkRBTkEKK0JJTEnEhiBJVkFOIERJUEwgSU5HCitCSUxJxIYgSVZBTgorQklMScSGIEpBS09WCitCSUxJxIYgSkVMRU5BCitCSUxJxIYgTUlMQU4KK0JJTEnEhiBNSUxBTgorQklMScSGIE1JTEVOS08KK0JJTEnEhiBNSUxPUkFECitCSUxJxIYgTUlSTworQklMScSGIFBSRURSQUcKK0JJTEnEhiBTUsSQQU4KK0JJTEnEhiBTVEpFUEFOCitCSUxJxIYgU1RSQUlOCitCSUxJQ0tJIExBU0xPCitCSUxJTk9WScSGIEJPUklTCitCSUxJTk9WScSGIFNBxaBBCitCSUxKQU5JxIYgUkFET0pLQQorQklMSk5KQSBWTEFESU1JUgorQklMT0tBUEnEhiBJVkFOCitCSUxPS0FQScSGIEpVUkUKK0JJTE9LQVBJxIYgU1RFVkFOCitCSUxVxaBJxIYgU0xBVklDQQorQklOIEFMRUtTQU5EQVIKK0JJTiBNVUhBTUVUCitCSU5BS0FKIEJBSlJBTQorQklOREFTIMSQVVJBCitCSU5EQVMgRFJBR0lDQQorQklOREFTIE1JSEFKTE8KK0JJTkRFUiBBUkFOS0EKK0JJTkdPTEQgRFJBR1VUSU4KK0JJTkdPTEQgS0FSTE8KK0JJTkdPTEQgUlVET0xGCitCSU5HVUxBQyDFvUlWS08KK0JJTkdVTEFDIEJPSkFOQQorQklOR1VMQUMgTUlSSkFOQQorQklPTkRJxIYgSkVMRU5BCitCSU9SQUMgREVTSU1JUgorQklPUkFDIFJBTktPCitCSVLEhkEgU1JFVEtPCitCSVJDTElOIFJVxb1JQ0EKK0JJUkRJxIYgQkVMQQorQklSRcWgIExFTktBCitCSVJFxaAgUk9aQUxJSkEKK0JJUkdFTUFKRVIgTUFSSUpBCitCSVJITUFOIEFOQQorQklSSU5KSSBERU5FxaAKK0JJUklOSkkgRVVHRU4KK0JJUk1BTkFDIERVxaBBTgorQklSTyBBTlRPTgorQklSTyBHSVpFTEEKK0JJUk8gR0laRUxBCitCSVJPIEnFoFRWQU4KK0JJUk8gSUxPTkEKK0JJUk8gSU1SRQorQklSTyBJTVJFCitCSVJPIEtBVEFMSU4KK0JJUk8gTEFKT8WgCitCSVJPIE1JS0xPxaAKK0JJUk8gTUlMT8WgCitCSVJPxaBFVknEhiBNSUxJQ0EKK0JJUk9WTEpFViBCUkFOSU1JUgorQklST1ZMSkVWIEJSQU5JU0xBVgorQklST1ZMSkVWIE1JTEFOCitCSVJPVkxKRVYgTUlMT1JBRAorQklST1ZMSkVWIE1JTE9TQVYKK0JJUk9WTEpFViBNSVJPU0xBVgorQklST1ZMSkVWIFRPRE9SIERSCitCSVJPVkxKRVZJxIYgRFJBR0FOCitCSVJPVkxKRVZJxIYgTEpVQklDQQorQklSVEEgVkxBRElNSVIKK0JJUlZBTFNLSSBEVcWgQU4KK0JJU0VSxIxJxIYgQU5EUklKQQorQklTRVLEjEnEhiBEUkFHTworQklTRVLEjEnEhiBNSUxLQU5BCitCSVNJxIYgSk9WQU4KK0JJU1RSSUNBTiBPTEdBCitCSVNUUk9WScSGIEFOVE9OCitCSVRJxIYgRMW9RU1BSUwKK0JJVE8gU1RFVkFOCitCSVVLIE1BUklKQQorQklWT0xBUkVWScSGIFZVS0HFoElOCitCSVpKQUsgUkVOQVRPCitCSVpVTUnEhiBHRU9SR0lKRQorQklaVU1JxIYgSkVMS0EKK0JJWlVNScSGIExBWkFSCitCSVpVTUnEhiBNSUxBTgorQkpFREnEhiBERVNBTktBCitCSkVET1YgxJBVS0EKK0JKRURPViBEUkFHTworQkpFRE9WIE5JS09MQQorQkpFR09WScSGIERBTklMS0EKK0JKRUdPVknEhiBHT0pLTworQkpFS0nEhiBMVUtBCitCSkVLScSGIE9TVE9KQQorQkpFS09WScSGIE1JUkpBTkEKK0JKRUtPVknEhiBSQURFCitCSkVMQUMgxJBVUkEKK0JKRUxBQyBEUkFHQU4KK0JKRUxBQyBEUkFHQU4KK0JKRUxBQyBFVEVMS0EKK0JKRUxBSkFDIERSQUdBTgorQkpFTEFKQUMgTUlMSkEKK0JKRUxBSkFDIFNWRVRPWkFSCitCSkVMQUtPVknEhiBSQURJVk9KRQorQkpFTEFOT1ZJxIYgTUlMT1NBVgorQkpFTEFOT1ZJxIYgTUlSS08KK0JKRUxBTk9WScSGIFJBSktPCitCSkVMQU5PVknEhiBTVEFOSU1JUgorQkpFTEFOT1ZJxIYgVEFOSkEKK0JKRUxFVEnEhiBCT0dEQU4KK0JKRUxFVEnEhiBMSlVCSUNBCitCSkVMRVRJxIYgTFVLQQorQkpFTEktSEFExb1JxIYgSkVMSUNBCitCSkVMScSGIMSQVVJBCitCSkVMScSGIEJPUklTTEFWCitCSkVMScSGIEJSQU5LTworQkpFTEnEhiBEQU5JTEtBCitCSkVMScSGIERNSVRBUgorQkpFTEnEhiBHT1JEQU5BCitCSkVMScSGIEpPVkFOCitCSkVMScSGIEtBVElDQQorQkpFTEnEhiBLUlNUQU4KK0JKRUxJxIYgTEpVQk9NSVIKK0JKRUxJxIYgTUlMQU4KK0JKRUxJxIYgTUlSS08KK0JKRUxJxIYgTkVERUxKS08KK0JKRUxJxIYgT0xHQQorQkpFTEnEhiBQRVRBUgorQkpFTEnEhiBQRVRBUgorQkpFTEnEhiBTTEFWS08KK0JKRUxJxIYgU0xPQk9EQU4KK0JKRUxJxIYgU1RFVk8KK0JKRUxJxIYgU1ZFVExBTkEKK0JKRUxJxIYgVkVSQQorQkpFTEnEhiBWTEFESU1JUgorQkpFTElDQSDEjEVETworQkpFTElDQSDEkE9SxJBJSkEKK0JKRUxJQ0EgQUxFS1NBCitCSkVMSUNBIEJPR0RBTgorQkpFTElDQSBCUkFOSVNMQVYKK0JKRUxJQ0EgREFOSUxPCitCSkVMSUNBIERPQlJJVk9KRQorQkpFTElDQSBEUkFHVVRJTgorQkpFTElDQSBHT0pLTworQkpFTElDQSBHT0pLTworQkpFTElDQSBKQURSQU5LQQorQkpFTElDQSBKQURSQU5LQQorQkpFTElDQSBMVUtBCitCSkVMSUNBIE1JTEFOCitCSkVMSUNBIE1JTElDQQorQkpFTElDQSBNSU9EUkFHCitCSkVMSUNBIE5BREEKK0JKRUxJQ0EtUE9QT1ZJxIYgTEpVQklDQQorQkpFTElDQSBSQUpLTworQkpFTElDQSBSQUtPCitCSkVMSUNBIFJBVEtPCitCSkVMSUNBIFNBVktBCitCSkVMSUNBIFNMQVZLTworQkpFTElDQSBTUEFTT0pFCitCSkVMSUNBIFRJR1JBTgorQkpFTElDQSBWRUxKS08KK0JKRUxJQ0EgVkVMSktPCitCSkVMSUNBIFZPSk8KK0JKRUxJQ0EgVlVLT1NBVkEKK0JKRUxJQ0EgWk9SQU4KK0JKRUxJTknEhiBEQVJJTktBCitCSkVMSU5JxIYgSk9WTworQkpFTElWVUsgR09SQU4KK0JKRUxJVlVLIFZMQURJTUlSCitCSkVMSkFDIEFOQQorQkpFTEpBQyBCT1JBCitCSkVMSkFDIEJSQU5LTworQkpFTEpBQyBNSUxBTgorQkpFTEpBQyBNSUxPUkFECitCSkVMT8WgIERBTklDQQorQkpFTE/FoCBNSVJPU0xBVgorQkpFTE/FoCBNSVJPU0xBVgorQkpFTE/FoEVWScSGIFNMQVZLTworQkpFTE9CQUJBIEFMRUtTQU5EQVIKK0JKRUxPQkFCQSBEQVJBCitCSkVMT0JSSyBCT8WgS08KK0JKRUxPQlJLIEJPxaBLTworQkpFTE9CUksgR09SQU4KK0JKRUxPQlJLIExBWkFSCitCSkVMT0JSSyBMQVpBUgorQkpFTE9CUksgTUFORQorQkpFTE9CUksgTUFSS08KK0JKRUxPQlJLIE1JTEFOCitCSkVMT0JSSyBNSUxPxaAKK0JKRUxPQlJLIFBFVEFSCitCSkVMT0JSSy1WQVJHQSBKQVNOQQorQkpFTE9HUkxJxIYgxJBPUsSQRQorQkpFTE9HUkxJxIYgQkxBR09KRQorQkpFTE9HUkxJxIYgREVKQU5BCitCSkVMT0dSTEnEhiBEUkFHQU4KK0JKRUxPR1JMScSGIExKVUJJQ0EKK0JKRUxPR1JMScSGIExKVUJPCitCSkVMT0dSTEnEhiBNSVRBUgorQkpFTE9HUkxJxIYgTU9NxIxJTE8KK0JKRUxPVE9NScSGIEpPVk8KK0JKRUxPVknEhiBSQVRLTworQkpFTE9WVUsgTUlSSkFOQQorQkpFTE9WVUsgU0xBVklDQQorQkpFTE9WVUsgU0xBVktPCitCTEHFoEtPIFRJQk9SCitCTEHFoEtPVknEhiBGUkFOSk8KK0JMQcWgS09WScSGIExBU0xPCitCTEHFoEtPVknEhiBQQVZMRQorQkxBxb1BTiBGUkFOSk8KK0JMQcW9QU4gSVZPCitCTEHFvUFOIE1BUktPCitCTEHFvUFOIFNMQVZLTworQkxBxb1FSyBHVVNUQVYKK0JMQcW9RUsgSkVMRU5BCitCTEHFvUVLIE1BUklKQQorQkxBxb1FSyBNSUhBTEoKK0JMQcW9RVZBIE9MR0EKK0JMQcW9RVZJxIYgQU5EUklKQQorQkxBxb1FVknEhiBEUkFHQU5BCitCTEHFvUVWScSGIERSQUdPCitCTEHFvUVWScSGIERVxaBBTktBCitCTEHFvUVWScSGIERVxaBJQ0EKK0JMQcW9RVZJxIYgRFVCUkFWS0EKK0JMQcW9RVZJxIYgRlJBTkpPCitCTEHFvUVWScSGIE1JT0RSQUcKK0JMQcW9RVZJxIYgUkFERSBEUiBMRUtBUgorQkxBxb1FVknEhiBTVEpFUEFOCitCTEHFvUVWScSGIFNVWkFOQQorQkxBxb1FVknEhiBWRVJBCitCTEHFvUVWScSGIFpPUkFOCitCTEHFvUnEhiDEkE9SxJBFCitCTEHFvUnEhiBCT8WgS08KK0JMQcW9ScSGIEJSQU5JU0xBVkEKK0JMQcW9ScSGIERSQUdBTgorQkxBxb1JxIYgRFJBR0FOCitCTEHFvUnEhiBEUkFHT0xKVUIKK0JMQcW9ScSGIEhSSVNUSU5BCitCTEHFvUnEhiBJVkFOCitCTEHFvUnEhiBKRUxFTkEKK0JMQcW9ScSGIEtTRU5JSkEKK0JMQcW9ScSGIE1BUklKQQorQkxBxb1JxIYgTUVUT0RJSkUKK0JMQcW9ScSGIE1JSEFKTE8KK0JMQcW9ScSGIFNBVkEKK0JMQcW9ScSGIFNBVktPCitCTEHFvUnEhiBTVkVUT1pBUgorQkxBxb1JxIYgVklEQQorQkxBxb1JSyBBTlRBTAorQkxBxb1JTiBEUkFHSU5KQQorQkxBR09KRVYgxb1JVktPCitCTEFHT0pFViDFvUlWS08KK0JMQUdPSkVWIMSQT1LEkEUKK0JMQUdPSkVWIElWQU4KK0JMQUdPSkVWIE1JTElWT0oKK0JMQUdPSkVWIE1JTE9SQUQKK0JMQUdPSkVWIE1JVEEKK0JMQUdPSkVWIFJBREEKK0JMQUdPSkVWIFJBRE9TTEFWCitCTEFHT0pFViBTVEVWQU4KK0JMQUdPSkVWIFZFTElNSVIKK0JMQUdPSkVWScSGIMSMRURPCitCTEFHT0pFVknEhiDFvUFSS08KK0JMQUdPSkVWScSGIMSQT1LEkEUKK0JMQUdPSkVWScSGIMSQT1LEkEUKK0JMQUdPSkVWScSGIEFOQQorQkxBR09KRVZJxIYgQkXEhktPCitCTEFHT0pFVknEhiBCT1JBCitCTEFHT0pFVknEhiBCT1JJU0xBVgorQkxBR09KRVZJxIYgQk9SSVZPSkUKK0JMQUdPSkVWScSGIEJPUklWT0oKK0JMQUdPSkVWScSGIEJPUktPCitCTEFHT0pFVknEhiBCUkFOSVNMQVYKK0JMQUdPSkVWScSGIERBTklDQQorQkxBR09KRVZJxIYgRFJBR09NSVIKK0JMQUdPSkVWScSGIERVxaBBTiBESVBMIElORworQkxBR09KRVZJxIYgRFXFoEFOCitCTEFHT0pFVknEhiBKQUdJQ0EKK0JMQUdPSkVWScSGIEpBTktPCitCTEFHT0pFVknEhiBLUlNUQU4KK0JMQUdPSkVWScSGIExKVUJPTUlSCitCTEFHT0pFVknEhiBNQVJJTktPCitCTEFHT0pFVknEhiBNSUtBCitCTEFHT0pFVknEhiBNSUtBCitCTEFHT0pFVknEhiBNSUxBTgorQkxBR09KRVZJxIYgTUlMQU4KK0JMQUdPSkVWScSGIE1JTEFOCitCTEFHT0pFVknEhiBNSUxFTkEKK0JMQUdPSkVWScSGIE1JTElDQQorQkxBR09KRVZJxIYgTUlMSVZPSkUKK0JMQUdPSkVWScSGIE1JTE/FoAorQkxBR09KRVZJxIYgTUlST1NMQVYKK0JMQUdPSkVWScSGIE1MQcSQQQorQkxBR09KRVZJxIYgTU9NSVIKK0JMQUdPSkVWScSGIE5BREEKK0JMQUdPSkVWScSGIFBSRURSQUcKK0JMQUdPSkVWScSGIFJBREUKK0JMQUdPSkVWScSGIFJBRE9NSVIKK0JMQUdPSkVWScSGIFNFUkFGSU5BCitCTEFHT0pFVknEhiBTTE9CT0RBTgorQkxBR09KRVZJxIYgU0xPQk9EQU4KK0JMQUdPSkVWScSGIFNMT0JPREFOCitCTEFHT0pFVknEhiBTTkXFvUFOQQorQkxBR09KRVZJxIYgU05KRcW9QU5BCitCTEFHT0pFVknEhiBTVEFOS08KK0JMQUdPSkVWScSGIFNURVZPCitCTEFHT0pFVknEhiBTVkVUS08KK0JMQUdPSkVWScSGIFZMQURJU0xBVgorQkxBR09WScSGIE1BUklKQQorQkxBSE8gSk/FvUVGCitCTEFOQVJJSyDFoEFORE9SCitCTEFOQVJJSyDEkFVSQQorQkxBTkFSSUsgQUxFS1NBTkRBUgorQkxBTkFSSUsgRVRFTEtBCitCTEFOQVJJSyBJTE9OQQorQkxBTkFSSUsgSk/FvUVGCitCTEFOQVJJSyBMQURJU0xBVgorQkxBTkFSSUsgT0xHQQorQkxBTkFSSUsgU1RFVkFOCitCTEFOQVJJSyBUSUJPUgorQkxBTkFSSUsgVkFMRVJJSkEKK0JMQU5VxaBBIEJSQU5LTworQkxBTlXFoEEgSUxJSkEKK0JMQU5VxaBBIFJBREUKK0JMQU5VxaBBIFZFUkEKK0JMQU5VxaBBIFpPUkFOCitCTEFURcWgScSGIE1JT0xKS0EKK0JMQVRFxaBJxIYgUkFKS08KK0JMQVROSUNLSSBWRVNOQQorQkxFxIxJxIYgSkVMRU5BCitCTEXEjEnEhiBMSlVCSUNBCitCTEXEjEnEhiBNSUxBRElOCitCTEXEjEnEhiBNSU9EUkFHCitCTEXEjEnEhiBSQURPU0FWIE1SCitCTEXEjEnEhiBTQcWgQQorQkxFSEwgSk9WQU5LQQorQkxJVFZBIMSQT1LEkEUKK0JMSVRWQSBCUkFOS08KK0JMSVpBTkFDIERPQlJJVk9KCitCTElaQU5BQyBEUkFHT0xKVUIKK0JMSVpBTkFDIERVxaBBTgorQkxJWkFOQUMgSkVMS0lDQQorQkxJWkFOQUMgTEVQT1NBVkEKK0JMSVpBTkFDIE1JTE9SQUQKK0JMSVpBTkFDIE1JUk9TTEFWCitCTElaQU5BQyBORU5BRAorQkxJWkFOQUMgU0FWQQorQkxJWkFOQUMgVlVKSUNBCitCTE/FvUnEhiBESU1JVFJJSkUKK0JMVU1FTsWgQUpOIEtBUkxPCitCT8SMQU4gSVZBTgorQk/EjEtPUiBOSUtPTEEKK0JPxaDEjEFOSU4gQk/FoEtPCitCT8WgS0nEhiBCT1JLQQorQk/FoEtJxIYgTUlSSkFOQQorQk/FoEtJxIYgTkFUQcWgQQorQk/FoEtJxIYgWk9SQQorQk/FoEtPViDFvUFSS08gRElQTCBJTkcKK0JPxaBLT1Ygxb1JVk9KSU4KK0JPxaBLT1YtSkFHT0RJxIYgWk9SSUNBCitCT8WgS09WIExKVUJJTktBCitCT8WgS09WIExVS0EKK0JPxaBLT1YgTUlMSVZPSkUKK0JPxaBLT1YgTUlMT8WgCitCT8WgS09WIE1JUkpBTkEKK0JPxaBLT1YgU0FWS0EKK0JPxaBLT1YgU09GSUpBCitCT8WgS09WIFNSRVRFTgorQk/FoEtPViBTVEVWQU4KK0JPxaBLT1YgU1RPSkFOCitCT8WgS09WIFZFU05BCitCT8WgS09WIFZVSkFESU4KK0JPxaBLT1ZJxIYgxb1FTEpLTworQk/FoEtPVknEhiDFvUlWS08KK0JPxaBLT1ZJxIYgQUxFS1NBTkRBUgorQk/FoEtPVknEhiBBTEVLU0EKK0JPxaBLT1ZJxIYgQUxFS1NBCitCT8WgS09WScSGIEFOxJBBCitCT8WgS09WScSGIEJJTEpBTkEKK0JPxaBLT1ZJxIYgQkxBR09KRQorQk/FoEtPVknEhiBCT8WgS08KK0JPxaBLT1ZJxIYgQk9HREFOS0EKK0JPxaBLT1ZJxIYgQk9HREFOCitCT8WgS09WScSGIEJPUklTCitCT8WgS09WScSGIEJVRElNSVIKK0JPxaBLT1ZJxIYgQ1ZFVEtPCitCT8WgS09WScSGIERBTklMTworQk/FoEtPVknEhiBERVNBTktBCitCT8WgS09WScSGIERSQUdBTgorQk/FoEtPVknEhiBEUkFHSUNBCitCT8WgS09WScSGIERSQUdPSkxPCitCT8WgS09WScSGIERSQUdPTEpVQgorQk/FoEtPVknEhiBEUkFHT01JUgorQk/FoEtPVknEhiBEUkFHT01JUgorQk/FoEtPVknEhiBEVcWgQU4KK0JPxaBLT1ZJxIYgRFXFoEFOCitCT8WgS09WScSGIERVxaBLTworQk/FoEtPVknEhiBHT1JBTgorQk/FoEtPVknEhiBHT1JBTgorQk/FoEtPVknEhiBIRURWSUdBCitCT8WgS09WScSGIEpPVkFOCitCT8WgS09WScSGIEtSU1RPCitCT8WgS09WScSGIExKSUxKQU5BCitCT8WgS09WScSGIExKVUJJxaBBCitCT8WgS09WScSGIExKVUJJTktBCitCT8WgS09WScSGIExKVUJPTUlSCitCT8WgS09WScSGIExKVUJPTUlSCitCT8WgS09WScSGIE1JTEVWQQorQk/FoEtPVknEhiBNSUxJVk9KRQorQk/FoEtPVknEhiBNSUxJVk9KRQorQk/FoEtPVknEhiBNSUxPUkFECitCT8WgS09WScSGIE1JTE9SQUQKK0JPxaBLT1ZJxIYgTUlMT1JBRAorQk/FoEtPVknEhiBNSUxPUkFECitCT8WgS09WScSGIE1JTE9WQU4KK0JPxaBLT1ZJxIYgTUlPRFJBRworQk/FoEtPVknEhiBNSVJLTworQk/FoEtPVknEhiBNT03EjElMTworQk/FoEtPVknEhiBNT03EjElMTworQk/FoEtPVknEhiBOQURBCitCT8WgS09WScSGIE5BREEKK0JPxaBLT1ZJxIYgTkVERUxKS08KK0JPxaBLT1ZJxIYgTklLT0xBCitCT8WgS09WScSGIE5JS09MQQorQk/FoEtPVknEhiBOT1ZLQQorQk/FoEtPVknEhi1QRVJPVknEhiBJVkFOQQorQk/FoEtPVknEhiBQRVRBUgorQk/FoEtPVknEhiBQRVRBUgorQk/FoEtPVknEhiBQRVRBUgorQk/FoEtPVknEhiBQRVRBUgorQk/FoEtPVknEhiBQRVRBUgorQk/FoEtPVknEhiBSQURPTUlSCitCT8WgS09WScSGIFJBVE9NSVIKK0JPxaBLT1ZJxIYgUk9TQQorQk/FoEtPVknEhiBTQVZBCitCT8WgS09WScSGIFNMT0JPREFOS0EKK0JPxaBLT1ZJxIYgU0xPQk9EQU4KK0JPxaBLT1ZJxIYgU0xPQk9EQU4KK0JPxaBLT1ZJxIYgU1RFVkFOIEFEVk9LQVQKK0JPxaBLT1ZJxIYgU1RFVkFOCitCT8WgS09WScSGIFNURVZBTgorQk/FoEtPVknEhiBUT01JU0xBVgorQk/FoEtPVknEhiBUT01JU0xBVgorQk/FoEtPVknEhiBWRUxKS08KK0JPxaBLT1ZJxIYgVkxBREEKK0JPxaBLT1ZJxIYgVkxBRElNSVIKK0JPxaBLT1ZJxIYgVk9KSVNMQVYKK0JPxaBLT1ZTS0kgRE9KxIxJTgorQk/FoEtPVlNLSSBSQURBCitCT8WgTkpBxIxJxIYgUkFKS08KK0JPxaBOSkFLIMSQT1LEkEUKK0JPxaBOSkFLIMSQVVJBCitCT8WgTkpBSyDEkFVSTworQk/FoE5KQUsgQU5BCitCT8WgTkpBSyBCT8W9SURBUgorQk/FoE5KQUsgREFSS08KK0JPxaBOSkFLIERFSkFOCitCT8WgTkpBSyBERVNBTktBCitCT8WgTkpBSyBGRVJFTkMKK0JPxaBOSkFLIEnFoFRWQU4KK0JPxaBOSkFLIEpFTEVOQQorQk/FoE5KQUsgSkVMSUNBCitCT8WgTkpBSyBKRUxJQ0EKK0JPxaBOSkFLIEpVTEtBCitCT8WgTkpBSyBLQVRBUklOQQorQk/FoE5KQUsgS09TVEEKK0JPxaBOSkFLIExKVUJPTUlSCitCT8WgTkpBSyBMSlVCT01JUgorQk/FoE5KQUsgTUFHREFMRU5BCitCT8WgTkpBSyBNQVJJSkEKK0JPxaBOSkFLIE1JTEFOCitCT8WgTkpBSyBNSUxFTkEKK0JPxaBOSkFLIE1JTE9SQUQKK0JPxaBOSkFLIE1JUktPCitCT8WgTkpBSyBORcSQTworQk/FoE5KQUsgTklLT0xBCitCT8WgTkpBSyBQQVZMRQorQk/FoE5KQUsgUEVUQVIKK0JPxaBOSkFLIFJBRE1JTEEKK0JPxaBOSkFLIFJBRE9KS0EKK0JPxaBOSkFLIFJBRE9WQU4KK0JPxaBOSkFLIFNMQVZLQQorQk/FoE5KQUsgU0xBVktPCitCT8WgTkpBSyBUT01JU0xBVgorQk/FoE5KQUsgVkVMSU1JUgorQk/FoE5KQUsgVklET1NBVkEKK0JPxaBOSkFLIFZJTktBCitCT8WgTkpBSyBWT0pJU0xBVgorQk/FoE5KQUsgWk9SQU4KK0JPxaBOSkFLT1ZJxIYgQUxFS1NBTkRBUiBESVBMIElORworQk/FoE5KQUtPVknEhiBBTEVLU0FOREFSIERJUEwgUFJBVk5JSworQk/FoE5KQUtPVknEhiBBTlRPTklKQQorQk/FoE5KQUtPVknEhiBCSUxKQU5BCitCT8WgTkpBS09WScSGIEJPUklTTEFWCitCT8WgTkpBS09WScSGIEJPUklTTEFWCitCT8WgTkpBS09WScSGIEJSQU5LQQorQk/FoE5KQUtPVknEhiBDVklKRVRJTgorQk/FoE5KQUtPVknEhiBET0JSSU5LQQorQk/FoE5KQUtPVknEhiBLT1JORUxJSkUKK0JPxaBOSkFLT1ZJxIYgTEpVQk9NSVIKK0JPxaBOSkFLT1ZJxIYgTUFSSUNBIERJUEwgT0VDCitCT8WgTkpBS09WScSGIE1JTFVUSU4KK0JPxaBOSkFLT1ZJxIYgTUlST1NMQVYKK0JPxaBOSkFLT1ZJxIYgTUlUQVIKK0JPxaBOSkFLT1ZJxIYgUEFWQU8KK0JPxaBOSkFLT1ZJxIYgUkFET1NMQVYKK0JPxaBOSkFLT1ZJxIYgUkFUS08KK0JPxaBOSkFLT1ZJxIYgU0lOScWgQQorQk/FoE5KQUtPVknEhiBTTEFWS0EKK0JPxIZBTiBNQVJJSkEKK0JPxIZFUkVHIFpVWkFOQQorQk/FvUEgUEFMCitCT8W9QU5JxIYgxb1JS0EKK0JPxb1BTknEhiDEkE9SxJBFCitCT8W9QU5JxIYgQU7EkEVMS0EKK0JPxb1BTknEhiBEVcWgQU4KK0JPxb1BTknEhiBHT0pLTworQk/FvUFOScSGIEpFTEVOQQorQk/FvUFOScSGIEtPU0EKK0JPxb1BTknEhiBNSUxJQ0EKK0JPxb1BTknEhiBNSUxPUkFECitCT8W9QU5JxIYgTkVWRU5LQQorQk/FvUFOT1ZJxIYgUkFKS0EKK0JPxb1BTk9WScSGIFpPUkFOCitCT8W9RVIgTEFKT8WgCitCT8W9RVIgTEpVREVWSVQKK0JPxb1FUiBaT1JBCitCT8W9ScSMScSGIE1JTEFOCitCT8W9ScSMScSGIE1JTEVOS08KK0JPxb1JxIxJxIYgUEVUQVIKK0JPxb1JxIxLT1ZJxIYgSk9WQU4KK0JPxb1JxIxLT1ZJxIYgTkVERUxKS08gRFIKK0JPxb1JxIxLT1ZJxIYgTkVSQQorQk/FvUnEjEtPVknEhiBWT0pJU0xBVgorQk/FvUnEjEtPVknEhiBaT1JLQQorQk/FvUnEhiDEjEVET01JUgorQk/FvUnEhiDFvUFSS08KK0JPxb1JxIYgxb1JVkFOQQorQk/FvUnEhiDFvUlWS08KK0JPxb1JxIYgxJBPUsSQRQorQk/FvUnEhiDEkFVSxJBJTkEKK0JPxb1JxIYgxJBVUkEKK0JPxb1JxIYgQUxFS1NBTkRBUgorQk/FvUnEhiBBTEVLU0FOREFSCitCT8W9ScSGIEFOxJBFTEtBCitCT8W9ScSGIEJPxaBLTworQk/FvUnEhiBCT8W9QU5BCitCT8W9ScSGIEJPUklWT0oKK0JPxb1JxIYgQk9SS08KK0JPxb1JxIYgQlJBTklTTEFWCitCT8W9ScSGIEJSQU5JU0xBVgorQk/FvUnEhiBEQVJJTktBCitCT8W9ScSGIERFSk8KK0JPxb1JxIYgREVTQU5LQQorQk/FvUnEhiBEUkFHQU4KK0JPxb1JxIYgRFJBR0FOCitCT8W9ScSGIERSQUdBTgorQk/FvUnEhiBEUkFHQU4KK0JPxb1JxIYgRFJBR09MSlVCCitCT8W9ScSGIERSQUdPTUlSCitCT8W9ScSGIERSQUdPTUlSCitCT8W9ScSGIERSQUdPTUlSCitCT8W9ScSGIERVxaBBTgorQk/FvUnEhiBHQVZSTworQk/FvUnEhiBHT0pLTworQk/FvUnEhiBHT1JEQU5BCitCT8W9ScSGIEdPUkRBTkEKK0JPxb1JxIYgR1JBRElNSVIKK0JPxb1JxIYgSUxJSkEKK0JPxb1JxIYgSVZBTgorQk/FvUnEhiBKT1ZBTktBCitCT8W9ScSGIEpPVkFOCitCT8W9ScSGIEpPVkFOCitCT8W9ScSGIEpPVklDQQorQk/FvUnEhiBKVUxLQQorQk/FvUnEhiBLU0VOSUpBCitCT8W9ScSGIExBWkFSCitCT8W9ScSGIExBWkFSCitCT8W9ScSGIExKSUxKQU5BCitCT8W9ScSGIE1BUkEKK0JPxb1JxIYgTUFSSU5LTworQk/FvUnEhiBNQVJLTworQk/FvUnEhiBNQVJLTworQk/FvUnEhiBNQVJLTworQk/FvUnEhiBNQVRJSkEKK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMQU4KK0JPxb1JxIYgTUlMRVZBCitCT8W9ScSGIE1JTEUKK0JPxb1JxIYgTUlMSVNBVgorQk/FvUnEhiBNSUxKS08KK0JPxb1JxIYgTUlMT1JBRAorQk/FvUnEhiBNSU9EUkFHCitCT8W9ScSGIE1JUkpBTkEKK0JPxb1JxIYgTUlSS08KK0JPxb1JxIYgTUlSS08KK0JPxb1JxIYgTU9NxIxJTE8KK0JPxb1JxIYgTU9NxIxJTE8KK0JPxb1JxIYgTkXEkE8KK0JPxb1JxIYgTkVOQUQKK0JPxb1JxIYgTkVOQUQKK0JPxb1JxIYgTklLT0xBCitCT8W9ScSGIE9MR0EKK0JPxb1JxIYgT1pSRU4KK0JPxb1JxIYgUEFWTEUgRElQTCBJTkcKK0JPxb1JxIYgUEVSQQorQk/FvUnEhiBQRVRBUgorQk/FvUnEhiBSQURJVk9KCitCT8W9ScSGIFJBRE1JTEEKK0JPxb1JxIYtUkFET01JUk9WScSGIEpPS0EKK0JPxb1JxIYgUkFET1ZBTgorQk/FvUnEhiBSQUpLTworQk/FvUnEhiBSQU5LTworQk/FvUnEhiBTQU5KQQorQk/FvUnEhiBTQVZBCitCT8W9ScSGIFNBVkEKK0JPxb1JxIYgU0FWTworQk/FvUnEhiBTTE9CT0RBTgorQk/FvUnEhiBTTE9CT0RBTgorQk/FvUnEhiBTUkVURU4KK0JPxb1JxIYgU1RBTklNSVIKK0JPxb1JxIYgU1RFVkFOCitCT8W9ScSGIFNURVZPCitCT8W9ScSGIFNUT0pBTktBCitCT8W9ScSGIFRBTUFSQQorQk/FvUnEhiBUQVRKQU5BCitCT8W9ScSGIFRFT0RPUgorQk/FvUnEhiBUT01JU0xBVgorQk/FvUnEhiBWRVJJQ0EKK0JPxb1JxIYtVklMScSGIEpFTEVOQQorQk/FvUnEhiBWTEFEQU5LQQorQk/FvUnEhiBWTEFEQQorQk/FvUnEhiBWTEFEQQorQk/FvUnEhiBWTEFEQQorQk/FvUnEhiBWTEFESVNMQVYKK0JPxb1JxIYgVlVLT1NBVkEKK0JPxb1JxIYgWkxBVEEKK0JPxb1JxIYgWkxBVElDQQorQk/FvUnEhiBaT1JBTgorQk/FvUnEhiBaT1JBTgorQk/FvUnEhiBaT1JBTgorQk/FvUnEhiBaT1JBTgorQk/FvUnEhiBaT1JLQQorQk/FvUlEQVIgQUxFS1NBTkRBUgorQk/FvUlEQVIgQk9SSVNMQVYKK0JPxb1JREFSIEJPUklTTEFWCitCT8W9SURBUi1LUknFvUFLIElSRU5BCitCT8W9SURBUiBMSlVCT01JUgorQk/FvUlEQVJFVknEhiDEkFVSQQorQk/FvUlEQVJFVknEhiBERVNBTktBCitCT8W9SURBUkVWScSGIFBFUlNJREEKK0JPxb1JREFSRVZJxIYgVkVMSktPCitCT8W9SU4gxb1BUktPCitCT8W9SU4gxJBPUsSQRQorQk/FvUlOIERBTklDQQorQk/FvUlOIERBUklOS0EKK0JPxb1JTiBERVNBTktBCitCT8W9SU4gSUdOSkFUIERJUEwgSU5HCitCT8W9SU4gSVNJRE9SCitCT8W9SU4gSkVMSUNBCitCT8W9SU4gSlVMSUpBTkEKK0JPxb1JTiBLUklTVElOQQorQk/FvUlOIEtTRU5JSkEKK0JPxb1JTiBMQVpBUgorQk/FvUlOIExKVUJJQ0EKK0JPxb1JTiBMSlVCSUNBCitCT8W9SU4gTUlMT8WgCitCT8W9SU4gTUlMT8WgCitCT8W9SU4gTUlST1NMQVYKK0JPxb1JTiBOSUtPTEEKK0JPxb1JTiBQQVZMRQorQk/FvUlOIFBFVEFSCitCT8W9SU4gUkFESVZPSgorQk/FvUlOIFJBRE9WQU4KK0JPxb1JTiBTSU5JxaBBCitCT8W9SU4gU0xBVklDQQorQk/FvUlOIFNMT0JPREFOCitCT8W9SU4gU1RFVkFOCitCT8W9SU4gU1RFVkFOCitCT8W9SU4gU1RFVkFOCitCT8W9SU5JxIYgUlXFvUlDQQorQk/FvUlOT1ZTS0kgQU5HRUwKK0JPxb1JTk9WU0tJIFJJU1RFCitCT8W9SU5PVlNLSSBUUkFKQU4KK0JPxb1KQUsgRlJBTkpPCitCT8W9SkFLIE1JS0EKK0JPxb1KQUtPVknEhiBMSlVCSU5LQQorQk/FvU8gRUxFT05PUkEKK0JPxb1PS0kgRVJORQorQk/FvU9LSSBJTE9OQQorQk/FvU9WScSGIEJPxb1JREFSCitCT8W9T1ZJxIYgQk9SSVZPSgorQk/FvU9WScSGIEJSQVRJU0xBVgorQk/FvU9WScSGIEdPUsSMSU4KK0JPxb1PVknEhiBHT1JEQU5BCitCT8W9T1ZJxIYgTEpVQklDQQorQk/FvU9WScSGIE1JTEFESU4gRElQTCBJTkcKK0JPxb1PVknEhiBNSUxBRElOCitCT8W9T1ZJxIYgTUlMT1JBRAorQk/FvU9WScSGIE1JTE9WQU4KK0JPxb1PVknEhiBNSVJKQU5BCitCT8W9T1ZJxIYgTUlST0xKVUIKK0JPxb1PVknEhiBSQcWgS08KK0JPxb1PVknEhiBTTEFWS08KK0JPxb1PVknEhiBTTkXFvUFOQQorQk/FvU9WScSGIFNUQU5LQQorQk/FvU9WScSGIFZFTElNSVIKK0JPxb1PVknEhiBWRVJBCitCT8W9T1ZJxIYgVkxBRElNSVIKK0JPxb1VTEnEhiBBTsSQRUxLTworQk/FvVVMScSGIElWQU4KK0JPxb1VTEnEhiBJVklDQQorQk/FvVVMScSGIFNJTknFoEEKK0JPxb1VTk9WScSGIERVxaBBTgorQk/EkEEgxJBVUkEKK0JPxJBBIEFORFJJSkEKK0JPxJBBIEFORFJJSkEKK0JPxJBBIEFORFJJSkEKK0JPxJBBIElWQU4KK0JPxJBBIElWQU4KK0JPxJBBIEpPVkFOCitCT8SQQSBTQcWgQQorQk/EkEEgU1RFVkFOCitCT8SQQU5BQyBKRUxFTkEKK0JPxJBBTkFDIE1JUk9TTEFWCitCT8SQQU5BQyBaRFJBVktPCitCT8SQQU5TS0kgQUxFS1NBTkRBUgorQk9BUk9WIERJTUlUUklKRQorQk9BUk9WIEpPVkFOCitCT0FST1YgS0FUQVJJTkEKK0JPQVJPViBNSUxBTktBCitCT0IgSlVTVElOQQorQk9CQUsgScWgVFZBTgorQk9CQUsgS0FUSUNBCitCT0JBTiDEkEVSxJAKK0JPQkFOIE1BUklKQQorQk9CQU4gTUVSSU1BCitCT0JBTiBORURFTEpLTworQk9CQU4gU1RJUEUKK0JPQkFOIFNVWkFOQQorQk9CQU4tVkFSTlVTIEVSxb1FQkVUCitCT0JBTkogSU1SRQorQk9CQVIgQk/FoEtPCitCT0JBUkVWScSGIFJVxb1JQ0EKK0JPQkVSScSGIE9MR0EKK0JPQkVSScSGIFpPUktBCitCT0JJxIYgxJBPUsSQRQorQk9CScSGIMSQT1LEkEUKK0JPQknEhiBCT0dEQU4KK0JPQknEhiBCUkFOSVNMQVYKK0JPQknEhiBJVkFOCitCT0JJxIYgSk9TSVAKK0JPQknEhiBLQUpBCitCT0JJxIYgTEpVQk9NSVIKK0JPQknEhiBNSUxBTktBCitCT0JJxIYgTUlMSUNBCitCT0JJxIYgTUxBREVOCitCT0JJxIYgTkVOQUQKK0JPQknEhiBSVcW9SUNBCitCT0JJxIYgVEFOSkEKK0JPQklOQUMgSk9TSVAKK0JPQklOQUMgTFVDSUpBCitCT0JJTkVDIEpPU0lQCitCT0JMSkFHT1ZJxIYgQk9HT1NMQVYKK0JPQk/FoCBTVEFOS08KK0JPQyBTVEVWQU4KK0JPQ0EgREFORQorQk9DQSBEVcWgQU4KK0JPQ0EgTUlMRQorQk9DQSBNSUxPxaAKK0JPQ09OQURJIE1BUlRPTgorQk9Exb1PTkkgR0laRUxBCitCT0TFvU9OSSBTVEVWQU4KK0JPREEgSk9WQU4KK0JPREFLT8WgIEpPU0lQCitCT0RBS0/FoCBTVEpFUEFOCitCT0RFR1JBSkFDIFNPRklKQQorQk9ESSBFUsW9RUJFVAorQk9ESSBKQVNNSU5BCitCT0RJIExBSk/FoAorQk9ESSBMQVNMTworQk9ESSBNSUhBSkxPCitCT0RJxaAgSk/FvUVGCitCT0RJxaAgTUlMSUNBCitCT0RJUk/FvUEgUEVUQVIKK0JPRElST8W9QSBSQURJVk9KCitCT0RJUk9HQSBKT1ZBTgorQk9ESVJPR0EgTUFSSUpBCitCT0RJUk9HQSBOSUtPCitCT0RJUk9HQSBQUkVEUkFHCitCT0RMT1ZJxIYgTklLT0xBCitCT0ROQVIgxaBBTkRPUgorQk9ETkFSIFJJU1RBCitCT0ROQVIgU1RFVkFOCitCT0ROQVIgVkVSSUNBCitCT0RPIEnFoFRWQU4KK0JPRE8gS0FST0xKCitCT0RPIE1BUklKQQorQk9ETyBNQVJJSkEKK0JPRE8gTUFUSUpBCitCT0RPIFNURVZBTgorQk9ET8SMSSBKT8W9RUYKK0JPRE9MTyDFoEFORE9SCitCT0RPTE8gScWgVFZBTgorQk9ET05KSSBLQVJMTworQk9ET1IgQU5UT04KK0JPRE9SIEFOVFVOCitCT0RPUiBCT1NJTEpLQQorQk9ET1IgRlJBTkpBCitCT0RPUiBGUkFOSkEKK0JPRE9SIEnFoFRWQU4KK0JPRE9SIEpBTk/FoAorQk9ET1IgSk9TSVAKK0JPRE9SIFBFVEFSCitCT0RPUiBTSU5JxaBBCitCT0RSRSBJxaBUVkFOCitCT0RSScSMLUhFUsSGQU4gQVJBTktBCitCT0RSScSMIE1JSEFKTE8KK0JPRFJJxIwgU1RFVkFOCitCT0RSScSMIFZFU05BCitCT0RSScSGIEpFTElTQVZFVEEKK0JPRFJPxb1BIEJSQU5LTworQk9EUk/FvUEgT0xHQQorQk9EUk/FvUnEhiBJTElKQQorQk9EUk/FvUnEhiBJTElKQQorQk9EUk/FvUnEhiBKT1ZBTgorQk9EUk/FvUnEhiBNSUxBTgorQk9EUk/FvUnEhiBTVEVWQU4KK0JPRFVMScSGIMWgVEVGQU5JSkEKK0JPRFVMScSGIEpFTEVOQQorQk9EVUxJxIYgUEVUQVIKK0JPRFVMScSGIFNMT0JPREFOCitCT0RVTEnEhiBTTE9CT0RBTgorQk9EVkFJIEpBTktPCitCT0dBUk/FoEkgU0xPQk9EQU4KK0JPR0FST8WgS0kgQU5EUklKQQorQk9HQVRJTk9TS0kgVE9NSVNMQVYKK0JPR0FWQUMgQUxFS1NBTkRBUiBEUgorQk9HQVZBQyBCUkFOSVNMQVYKK0JPR0FWQUMgRFJBR0lDQQorQk9HQVZBQyBKQURSQU5LQQorQk9HQVZBQyBNSVJKQU5BCitCT0dEQU4gQU5EUkHFoAorQk9HREFOIEJJTEpBTkEKK0JPR0RBTiBEVcWgQU4KK0JPR0RBTiBJxaBUVkFOCitCT0dEQU4gSU1SRQorQk9HREFOIElWQU4KK0JPR0RBTiBKT1NJUAorQk9HREFOIEpPU0lQCitCT0dEQU4gTUFORQorQk9HREFOLU1JSklOIERVxaBBTktBCitCT0dEQU4gTUlMS0EKK0JPR0RBTiBOSUtPTEEKK0JPR0RBTiBTVEVWQU4KK0JPR0RBTiBTVEVWQQorQk9HREFOIFZFUklDQQorQk9HREFOIFpPUkFOCitCT0dEQU5GSSDFoEFORE9SIE5PVklOQVIKK0JPR0RBTkZJIE1BUklOS08KK0JPR0RBTk9WLUFOVE9OScSGIEJJTEpBTkEKK0JPR0RBTk9WIEJJU0VSS0EKK0JPR0RBTk9WIEJSQU5JU0xBViBEUiBQUk9GCitCT0dEQU5PViBCUkFOS0EgRFIgTEVLQVIKK0JPR0RBTk9WIERBTklMTworQk9HREFOT1YgRElNSVRSSUpFCitCT0dEQU5PViBEUkFHQU4KK0JPR0RBTk9WIERVxaBBTgorQk9HREFOT1YtSElMIERPQlJJTEEKK0JPR0RBTk9WIElSTUEKK0JPR0RBTk9WIElWQU4KK0JPR0RBTk9WIExBWkFSCitCT0dEQU5PViBNQVJJQ0EKK0JPR0RBTk9WIE1JTEFOCitCT0dEQU5PViBNSUxFTkEKK0JPR0RBTk9WIE1JTE/FoAorQk9HREFOT1YgTUlMT1JBRAorQk9HREFOT1YgTkFEQQorQk9HREFOT1YgT0xHQQorQk9HREFOT1YgUEVUQVIKK0JPR0RBTk9WIFNMQVZLTworQk9HREFOT1YgU0xBVk5BCitCT0dEQU5PViBTTUlMSkEKK0JPR0RBTk9WIFNUQU5LTworQk9HREFOT1YgU1RFVkFOCitCT0dEQU5PViBTVEVWQU4KK0JPR0RBTk9WIFpPUkFOCitCT0dEQU5PVknEhiDFvUlWQU4gTVIKK0JPR0RBTk9WScSGIMSQT1LEkEUKK0JPR0RBTk9WScSGIMSQT1LEkEUKK0JPR0RBTk9WScSGIMSQVVJBCitCT0dEQU5PVknEhiBBTEVLU0FOREFSCitCT0dEQU5PVknEhiBBTktBCitCT0dEQU5PVknEhiBCTEFHT0pBCitCT0dEQU5PVknEhiBCT8WgS08KK0JPR0RBTk9WScSGIEJPxb1JREFSCitCT0dEQU5PVknEhiBCT0dEQU4KK0JPR0RBTk9WScSGIEJPUkEKK0JPR0RBTk9WScSGIEJPUklWT0oKK0JPR0RBTk9WScSGIEJSQU5JU0xBVkEKK0JPR0RBTk9WScSGIEJSQU5JU0xBVgorQk9HREFOT1ZJxIYgQlJBTklTTEFWCitCT0dEQU5PVknEhiBCUkFOSVNMQVYKK0JPR0RBTk9WScSGIEJSQU5JU0xBVgorQk9HREFOT1ZJxIYgQlJBTktPCitCT0dEQU5PVknEhiBEQVJJTktBCitCT0dEQU5PVknEhiBERVNBTktBCitCT0dEQU5PVknEhiBESU1JVFJJSkUKK0JPR0RBTk9WScSGIERPQlJJVk9KCitCT0dEQU5PVknEhiBEUkFHQU4KK0JPR0RBTk9WScSGIERSQUdBTgorQk9HREFOT1ZJxIYgRFJBR09MSlVCCitCT0dEQU5PVknEhiBEUkFHT0xKVUIKK0JPR0RBTk9WScSGIERVxaBLTworQk9HREFOT1ZJxIYgRVRFTEtBCitCT0dEQU5PVknEhiBHRURFT04KK0JPR0RBTk9WScSGIEdPSktPCitCT0dEQU5PVknEhiBHT1JEQU5BCitCT0dEQU5PVknEhiBJTElKQQorQk9HREFOT1ZJxIYgSUxPTkEKK0JPR0RBTk9WScSGIElWQU4KK0JPR0RBTk9WScSGIEpPVkFOCitCT0dEQU5PVknEhiBKT1ZJQ0EKK0JPR0RBTk9WScSGIEtTRU5JSkEKK0JPR0RBTk9WScSGIExBWkFSCitCT0dEQU5PVknEhiBMQVpBUgorQk9HREFOT1ZJxIYgTEpJTEpBTkEKK0JPR0RBTk9WScSGIExKVUJJU0FWCitCT0dEQU5PVknEhiBMSlVCT01JUgorQk9HREFOT1ZJxIYgTEpVQk9NSVIKK0JPR0RBTk9WScSGIE1BUklOQQorQk9HREFOT1ZJxIYgTUnEhk8KK0JPR0RBTk9WScSGIE1JSEFKTE8KK0JPR0RBTk9WScSGIE1JTEFOCitCT0dEQU5PVknEhiBNSUxBTgorQk9HREFOT1ZJxIYgTUlMQU4KK0JPR0RBTk9WScSGIE1JTEFOCitCT0dEQU5PVknEhiBNSUxLQQorQk9HREFOT1ZJxIYgTUlMT8WgCitCT0dEQU5PVknEhiBNSUxPU0FWCitCT0dEQU5PVknEhiBNSU9EUkFHCitCT0dEQU5PVknEhiBNSVJKQU5BCitCT0dEQU5PVknEhiBNSVRBUgorQk9HREFOT1ZJxIYgTUxBREVOCitCT0dEQU5PVknEhiBOQURBCitCT0dEQU5PVknEhiBOQURBCitCT0dEQU5PVknEhiBORURFTEpLTworQk9HREFOT1ZJxIYgTklLT0xBCitCT0dEQU5PVknEhiBOSUtPTEEKK0JPR0RBTk9WScSGIE5PVkFLCitCT0dEQU5PVknEhiBQQUpBCitCT0dEQU5PVknEhiBQQVZMRQorQk9HREFOT1ZJxIYgUEFWTEUKK0JPR0RBTk9WScSGIFBFVEFSCitCT0dEQU5PVknEhiBQRVRBUgorQk9HREFOT1ZJxIYgUEVUQVIKK0JPR0RBTk9WScSGIFBFVEFSCitCT0dEQU5PVknEhiBQUlZPU0xBVgorQk9HREFOT1ZJxIYgUkFESVNBVgorQk9HREFOT1ZJxIYgUkFESVZPSkUKK0JPR0RBTk9WScSGIFJBRE9TTEFWCitCT0dEQU5PVknEhiBSQURPVkFOCitCT0dEQU5PVknEhiBSQU5LTworQk9HREFOT1ZJxIYgUkFUT01JUgorQk9HREFOT1ZJxIYgUlXFvUlDQQorQk9HREFOT1ZJxIYgU0xBVktPIE1SIFBSQVZOSUsKK0JPR0RBTk9WScSGIFNMT0JPREFOS0EgUFJPRkVTT1IKK0JPR0RBTk9WScSGIFNMT0JPREFOCitCT0dEQU5PVknEhiBTTE9CT0RBTgorQk9HREFOT1ZJxIYgU09GSUpBCitCT0dEQU5PVknEhiBTT05KQQorQk9HREFOT1ZJxIYgU1RFVkFOCitCT0dEQU5PVknEhiBTVEVWQU4KK0JPR0RBTk9WScSGIFNURVZPCitCT0dEQU5PVknEhiBTVkVUSVNMQVYKK0JPR0RBTk9WScSGIFRJSE9NSVIKK0JPR0RBTk9WScSGIFRJSE9NSVIKK0JPR0RBTk9WScSGIFZBSkEKK0JPR0RBTk9WScSGIFZBU0EKK0JPR0RBTk9WScSGIFZFUkEKK0JPR0RBTk9WScSGIFZJVE9NSVIKK0JPR0RBTk9WScSGIFZMQURJTUlSCitCT0dEQU5PVknEhiBWTEFKS08KK0JPR0RBTk9WScSGIFpEUkFWS08KK0JPR0RBTk9WScSGIFpPUkFOCitCT0dEQU5PVlNLSSBESU1JVFJJSkUKK0JPR0RBTk9WU0tJIFNMT0JPREFOCitCT0dFVEnEhiBEUkFHT0xKVUIKK0JPR0VUScSGIFNBTkpBCitCT0dJxIxFVknEhiDFvUlWS08KK0JPR0nEjEVWScSGIEFOxJBFTEtBCitCT0dJxIxFVknEhiBEQU5JQ0EKK0JPR0nEjEVWScSGIERVxaBBTgorQk9HScSMRVZJxIYgR0VPUkdJSkUKK0JPR0nEjEVWScSGIEtPU1RBRElOS0EKK0JPR0nEjEVWScSGIEtSU1RBCitCT0dJxIxFVknEhiBMSlVCScWgQQorQk9HScSMRVZJxIYgTEpVQklDQQorQk9HScSMRVZJxIYgTUFSSUpBCitCT0dJxIxFVknEhiBNSUxJQ0EKK0JPR0nEjEVWScSGIE5JS09MQQorQk9HScSMRVZJxIYgTklLT0xBCitCT0dJxIxFVknEhiBUSUhPTUlSCitCT0dJxIxFVknEhiBaT1JLQQorQk9HScWgScSGIEFORFJJSkEKK0JPR0nFoEnEhiBGUkFOSkEKK0JPR0nFoEnEhiBKT1NJUAorQk9HScSGIEFMRUtTQU5EQVIKK0JPR0nEhiBBTsSQRUxLQQorQk9HScSGIEJSQU5JU0xBVgorQk9HScSGIERJTUlUUklKRQorQk9HScSGIERSQUdBTgorQk9HScSGIERVxaBBTktBCitCT0dJxIYgSUxESUtPCitCT0dJxIYgSkVMRU5BCitCT0dJxIYgSkVMSVNBVkVUQQorQk9HScSGIEpPVkFOCitCT0dJxIYgTEpVQklDQQorQk9HScSGIE1BUklKQQorQk9HScSGIE1JTEFOCitCT0dJxIYgTUlSSkFOQQorQk9HScSGIFNPRklKQQorQk9HScSGIFNSRcSGS08KK0JPR0nEhiBTVEVWQU4KK0JPR0nEhkVWScSGIMW9RUxKS0EKK0JPR0nEhkVWScSGIEFOxJBFTEtBCitCT0dJxIZFVknEhiBCUkFOSVNMQVYKK0JPR0nEhkVWScSGIERJTUlUUklKRQorQk9HScSGRVZJxIYgSkVMSVNBVkVUQQorQk9HScSGRVZJxIYgSkVMS0EKK0JPR0nEhkVWScSGIEpPTEVUQQorQk9HScSGRVZJxIYgS09OU1RBTlRJTgorQk9HScSGRVZJxIYgTUlMQU4KK0JPR05BUiDFoEFORE9SCitCT0dOQVIgQUxFS1NBTkRBUiBESVBMIElORworQk9HTkFSIEFOVEFMCitCT0dOQVIgRUxJWkFCRVRBCitCT0dOQVIgRUxJWkFCRVRBCitCT0dOQVIgR0laRUxBCitCT0dOQVIgSk/FvUVGCitCT0dOQVIgS0FMTUFOCitCT0dOQVIgTEFKT8WgCitCT0dOQVIgTUFSSUEKK0JPR05BUiBNQVJJSkEKK0JPR05BUiBNSVJLTworQk9HTkFSIFJPWklLQQorQk9HTkFSIFNJTEFSRAorQk9HTkFSIFNURVZBTiBEUgorQk9HT0pFViDFvUlWS08KK0JPR09KRVZBQyBFUsW9RUJFVAorQk9HT0pFVkFDIEpPVkFOCitCT0dPSkVWScSGIEFOR0VMSU5BCitCT0dPSkVWScSGIEJJTEpBTkEKK0JPR09KRVZJxIYgQk/FvU8KK0JPR09KRVZJxIYgQlJBTklTTEFWCitCT0dPSkVWScSGIEJSQU5LTworQk9HT0pFVknEhiBEUkFHTworQk9HT0pFVknEhiBKT1ZBTktBCitCT0dPSkVWScSGIExBWk8KK0JPR09KRVZJxIYgTEpVQklTQVYKK0JPR09KRVZJxIYgTUlMQU4KK0JPR09KRVZJxIYgTUlMT1JBRAorQk9HT0pFVknEhiBNSVRBUgorQk9HT0pFVknEhiBNT03EjElMTworQk9HT0pFVknEhiBSQURNSUxBCitCT0dPSkVWScSGIFJBRE9KS0EKK0JPR09KRVZJxIYgUkFET01JUgorQk9HT0pFVknEhiBSQURPTUlSCitCT0dPSkVWScSGIFJBSktPCitCT0dPSkVWScSGIFNUQU5JSkEKK0JPR09KRVZJxIYgVE9ET1IKK0JPR09KRVZJxIYgVkVMSU1JUgorQk9HT0pFVknEhiBWTEFEQQorQk9HT0pFVknEhiBWTEFESUNBCitCT0dPSkVWScSGIFZMQUpLTworQk9HT1NBViBNSUxBTgorQk9HT1NBVkFDIE1JUk9TTEFWCitCT0dPU0FWQUMgTUlST1NMQVYKK0JPR09TQVZBQyBaRFJBVktPCitCT0dPU0FWTEpFViBKT1ZBTktBCitCT0dPU0FWTEpFVknEhiDFvUFSS08KK0JPR09TQVZMSkVWScSGIEJSQU5JU0xBVgorQk9HT1NBVkxKRVZJxIYgRE9CUklMQQorQk9HT1NBVkxKRVZJxIYgRE9CUklWT0pFCitCT0dPU0FWTEpFVknEhiBEUkFHSUNBCitCT0dPU0FWTEpFVknEhiBEUkFHT01JUgorQk9HT1NBVkxKRVZJxIYgTUlMQURJTgorQk9HT1NBVkxKRVZJxIYgTUlPRFJBRyBEUiBJTkcKK0JPR09TQVZMSkVWScSGIFJBREUKK0JPR09TQVZMSkVWScSGIFNUQU5JTUlSCitCT0dPU0FWTEpFVknEhiBaTEFUQQorQk9HT1ZBQyBET0JST1NMQVZBCitCT0dPVkFDIERSQUdPTEpVQgorQk9HT1ZBQyBNSUxBTiBEUgorQk9HT1ZBQyBOSUtPTEEKK0JPR09WQUMgU0xPQk9EQU4KK0JPR09WScSGIElCT0pBCitCT0dPVknEhiBNSUpPCitCT0dPVknEhiBOSUtPTEEKK0JPR09WScSGIFNURVZBTgorQk9HT1ZJxIYgVE9NSVNMQVYKK0JPR09WScSGIFZFU05BCitCT0dPVknEhiBWRVNOQQorQk9HT1ZJxIYgWkxBVEtPCitCT0dVTk9WScSGIMSQT1LEkEUKK0JPR1VOT1ZJxIYgQk9HREFOCitCT0dVTk9WScSGIEJSQU5LTworQk9HVU5PVknEhiBEUkFHQU4KK0JPR1VOT1ZJxIYgTUlMQU4KK0JPR1VOT1ZJxIYgVE9NSVNMQVYKK0JPR1VOT1ZJxIYgVkxBREUKK0JPR1VOT1ZJxIYgWk9SQU4KK0JPR1VUIExKVUJPCitCT0dVVCBOQURBCitCT0hBxIxFSyBWQUxURVIKK0JPSElOQyBCT8W9QU5BCitCT0hPQ0tJIEpBTk/FoAorQk9IT0NLSSBKVUxJSkFOQQorQk9IT0NLSSBQRVRBUgorQk9IT0NLSSBST0JFUlQKK0JPSE9UQSBTSUxWRVNURVIKK0JPSFXFoCBKT1ZBTgorQk9KxIxFVEEgR09SQU4KK0JPSsSMRVZTS0kgTkFVTQorQk9KxIxJxIYgTUlMQU4KK0JPSkEgQU5EUkHFoAorQk9KQSBFUklLQQorQk9KQUMgREFGSU5BCitCT0pBQyBSQURJVk9KCitCT0pBREnEhiBNSVJLTworQk9KQUdJxIYgTUFSS08KK0JPSkFOScSGIEFMRUtTQU5EQVIKK0JPSkFOScSGIEFOQQorQk9KQU5JxIYgQk9HT1NBVgorQk9KQU5JxIYgQk9SSUtBCitCT0pBTknEhiBCT1NJTEpLQQorQk9KQU5JxIYgQlJBTkUKK0JPSkFOScSGIEJVRElNSVIKK0JPSkFOScSGIERBUklOS0EKK0JPSkFOScSGIERFU0FOS0EKK0JPSkFOScSGIERSQUdJQ0EKK0JPSkFOScSGIERSQUdPTEpVQgorQk9KQU5JxIYgRFXFoEFOCitCT0pBTknEhiBEVcWgQU4KK0JPSkFOScSGIElMSUpBCitCT0pBTknEhiBKRUxJQ0EKK0JPSkFOScSGIExKVUJPCitCT0pBTknEhiBNSUxBTgorQk9KQU5JxIYgTUlMSVZPSgorQk9KQU5JxIYgTUlMSVZPSgorQk9KQU5JxIYgTUlMT8WgCitCT0pBTknEhiBNSUxVTgorQk9KQU5JxIYgTUlPRFJBRworQk9KQU5JxIYgUkFOS08KK0JPSkFOScSGIFNMT0JPREFOCitCT0pBTknEhiBTVkVUTEFOQQorQk9KQU5JxIYgVkVMSU1JUgorQk9KQU5JxIYgWk9SQU4KK0JPSkFOScSGIFpPUkEKK0JPSkFOT1ZJxIYgxIxFRE8KK0JPSkFOT1ZJxIYgRFXFoEtPCitCT0pBTk9WScSGIExBWkFSCitCT0pBTk9WScSGIE1BUkpBTgorQk9KQU5PVknEhiBNSUxPUkFECitCT0pBTk9WScSGIFJJU1RBTgorQk9KQU5PVknEhiBWVUpBRElOCitCT0pBTk9WScSGIFZVSkFESU4KK0JPSkFUIEpBTktPCitCT0pBVCBNSUxPUkFECitCT0pBVCBSQURPTUlSCitCT0pBVCBWRVNFTElOIERSCitCT0pCScSGIFJBSktPCitCT0pJxIxJxIYgUkFESVZPSgorQk9KScSGIEFOxJBFTElKQQorQk9KScSGIEJMQUdPVEEKK0JPSknEhiBCT0dEQU4KK0JPSknEhiBCT0dPTEpVQgorQk9KScSGIEJPR09NSVIKK0JPSknEhiBCT1JJU0xBVgorQk9KScSGIEJSQU5JU0xBVkEKK0JPSknEhiBCUkFOSVNMQVYKK0JPSknEhiBCUkFOSVNMQVYKK0JPSknEhiBCUkFOSVNMQVYKK0JPSknEhiBEQU5JQ0EKK0JPSknEhiBERUpBTgorQk9KScSGIERSQUdBTgorQk9KScSGIERSQUdBTgorQk9KScSGIERSQUdJQ0EKK0JPSknEhiBEUkFHSU5KQQorQk9KScSGIERVxaBBTktBCitCT0pJxIYgRFXFoEFOCitCT0pJxIYgRFXFoEFOCitCT0pJxIYgR09SREFOQSBEUgorQk9KScSGIEdPUkRBTkEKK0JPSknEhiBHT1JEQU5BCitCT0pJxIYgS0FUSUNBCitCT0pJxIYtS09MQVJTS0kgR09SREFOQQorQk9KScSGIExBWkFSCitCT0pJxIYgTUFSS08KK0JPSknEhiBNScWgS08KK0JPSknEhiBNSUxBCitCT0pJxIYgTUlMRU5LTworQk9KScSGIE1JTElEQVIKK0JPSknEhiBNSUxPVkFOCitCT0pJxIYgTUlPRFJBRworQk9KScSGIE1JUktPCitCT0pJxIYgTUlST1NMQVYKK0JPSknEhiBSQURPU0xBVkEKK0JPSknEhiBSQUpLTworQk9KScSGIFJBSktPCitCT0pJxIYgU0VOS0EKK0JPSknEhiBTTkXFvUFOQQorQk9KScSGIFNORcW9QU5BCitCT0pJxIYgU09OSklDQQorQk9KScSGIFNSRVRFTgorQk9KScSGIFNURVZBTgorQk9KScSGIFRPTUlTTEFWCitCT0pJxIYgVUdMSkXFoEEKK0JPSknEhiBWRVJBCitCT0pJTk9WScSGIEpFTEVOQQorQk9KS0nEhiBBTEVLU0FOREFSCitCT0pLScSGIE1JTElDQQorQk9KS08gQUxFS1NBTkRBUgorQk9KS08gSk9WQU5LQQorQk9KS08gTUFSSUpBCitCT0pLTyBORVZFTktBCitCT0pLT1YgRkVPRE9SCitCT0pLT1YgUk9NQU4KK0JPSktPVknEhiBEQU5JQ0EKK0JPSktPVknEhiBLUklTVElOQQorQk9KS09WScSGIExFTkEKK0JPSktPVknEhiBNSUxJQ0EKK0JPSktPVknEhiBTTE9CT0RBTgorQk9KT1ZJxIYgxb1JVk9SQUQKK0JPSk9WScSGIEJPxaBLTworQk9KT1ZJxIYgQk9HREFOCitCT0pPVknEhiBCUkFOS08KK0JPSk9WScSGIEJSQU5LTworQk9KT1ZJxIYgRFJBR09KRQorQk9KT1ZJxIYgRFJBR09TTEFWCitCT0pPVknEhiBEUkFHVVRJTgorQk9KT1ZJxIYgRFJBR1VUSU4KK0JPSk9WScSGIElLT05JSkEKK0JPSk9WScSGIEpBS09WCitCT0pPVknEhiBMSlVCSUNBCitCT0pPVknEhiBMSlVCTworQk9KT1ZJxIYgTUlMQU4KK0JPSk9WScSGIE1JTEFOCitCT0pPVknEhiBNSUxJQ0EKK0JPSk9WScSGIE1JTElDQQorQk9KT1ZJxIYgTUlMT0pFCitCT0pPVknEhiBNSVJPU0xBVgorQk9KT1ZJxIYgTkFEQQorQk9KT1ZJxIYgTk9WSUNBCitCT0pPVknEhiBQRVRBUgorQk9KT1ZJxIYgU1JFVEtPCitCT0pPVknEhiBUT01JU0xBVgorQk9KT1ZJxIYgVkVMScWgQQorQk9KT1ZJxIYgVkVMSktPCitCT0pPVknEhiBWTEFEQU4KK0JPSk9WScSGIFZPSklOCitCT0pPVknEhiBaT1JBTgorQk9LxaBBTiBBTktBCitCT0vFoEFOIEVNSUxJSkFOCitCT0vFoEFOIFNUT0pBTgorQk9LxaBJxIYgxJBPS0EKK0JPS8WgScSGIEpFTEVOQQorQk9LxaBJxIYgTEFaQVIKK0JPS8WgScSGIE1JUkpBTkEKK0JPS8WgScSGIE1JUkpBTkEKK0JPS8WgScSGIFJBREEKK0JPS8WgScSGIFJBRE9KS0EKK0JPS8WgScSGIFJBRE9TTEFWCitCT0vFoEnEhiBSVcW9RU5LQQorQk9LxaBJxIYgU09LQQorQk9LQSDFvUlWS0EKK0JPS0EgU0lMVklPCitCT0tBIFNUSkVQQU4KK0JPS0FOIEFOxJBBCitCT0tBTiBBTklDQQorQk9LQU4gRFJBR08KK0JPS0FOIE1JTEFOCitCT0tBTiBNSUxBTgorQk9LQU4gTUlMRU5BCitCT0tBTiBNSVJLTworQk9LQU4gTklLT0xBCitCT0tBTiBSQURFCitCT0tBTiBSQURPTUlSCitCT0tBTiBTTE9CT0RBTgorQk9LQU4gVE9NSVNMQVYKK0JPS0FOIFZFTEpLTworQk9LQU5JxIYgQlJBTklTTEFWCitCT0tBTknEhiBWTEFESU1JUgorQk9LScSGIERBTklMTworQk9LScSGIERVxaBBTgorQk9LScSGIE1JTEFOCitCT0tJxIYgUkFET0pJQ0EKK0JPS0nEhiBWSUQKK0JPS09SIMSQT1LEkEUgRElQTCBJTkcKK0JPS09SIMSQT1LEkEUKK0JPS09SIEdBVlJBCitCT0tPUiBMQVNMTyBESVBMIElORworQk9LT1IgTEFTTE8KK0JPS09SIE1BUklKQQorQk9LT1JPViBUQU5BU0lKRSBESVBMIElORworQk9LVU4gRFVCUkFWS0EKK0JPS1VOIE5PVkFLCitCT0tVTiBQRVRBUgorQk9LVU4gU1BBU0lKQQorQk9LVU4gU1RFVkEKK0JPS1VOIFZMQURJTUlSCitCT0xBTk9WScSGIFJBSktBCitCT0xEScW9QVIgSk/FvUVGCitCT0xEScW9QVIgTEFTTE8KK0JPTERJTiBSVURPTEYKK0JPTERPQ0tJIEpPxb1FRgorQk9MRE9DS0kgVkxBRElNSVIKK0JPTERPRyBMQUpPxaAKK0JPTEVSQUMgQU5BCitCT0xFU05JS09WIEJSQU5JU0xBVgorQk9MRVNOSUtPViBEQVJJTktBCitCT0xFU05JS09WIE1JTE9SQUQKK0JPTEVTTklLT1YgWk9SQU4KK0JPTEYgQlJBTktPCitCT0xGIE5FVkVOS0EKK0JPTEZJSyBKT1NJUAorQk9MScSGIFpMQVRLTworQk9MSU5PVlNLQSBTT0ZJSkEKK0JPTElOT1ZTS0kgTUlST1NMQVYKK0JPTEpBTk9WScSGIMSQT1LEkEUKK0JPTEpBTk9WScSGIEFMRUtTQU5EQVIKK0JPTEpBTk9WScSGIE1JTElWT0pFCitCT0xKQU5PVknEhiBOSUtPTEEKK0JPTEpBTk9WScSGIFJBRE9WQU4KK0JPTEpBTk9WScSGIFpPUklDQQorQk9MSkVWScSGIFNWRVRPWkFSCitCT0xNQU5BQyBCUkFOS08KK0JPTE1BTkFDIEVWR0VOSUpFCitCT0xPIMW9T0xUCitCT0xPSyBBTkRSQcWgCitCT0xPSyBKT8W9RUYKK0JPTE9LIEtBUkxPCitCT0xPSyBLQVJPTEoKK0JPTE9LIFBBTAorQk9MT1JJTiBSQURJVk9KCitCT0xUQSDFvUVMSktPCitCT0xUQSDEkFVSQQorQk9MVEEgQlJBTktPCitCT0xUQSBEUkFHSUNBCitCT01FxaBUQVIgUkFEQQorQk9OQSBTVEVWQU4KK0JPTkTFvUnEhiBERUpBTgorQk9OREFSRU5LTyBBTEVLU0FOREFSIERSCitCT05ET0tJxIYgQk9SSVZPSkUKK0JPTkRPS0nEhiBMSlVCSUNBCitCT05FUlQgRFXFoEFOIERSCitCT05FUlQgRFXFoEFOCitCT05JxIYgRFJBR0FOCitCT05JxIYgTUFSSkFOCitCT05JxIYgTUlMSUNBCitCT05JxIYgVkxBRElNSVIKK0JPTlVTIExKVUJJQ0EKK0JPUiBFTkRSRQorQk9SxIxBTklOIExKVUJJQ0EKK0JPUsSMQU5JTiBTT0ZJSkEKK0JPUsSMQU5TS0kgVElOS0EKK0JPUsSMScSGIEJVREUKK0JPUsSMScSGIERSQUdBTkEKK0JPUsSMScSGIEpPVkFOCitCT1LFoEkgVElWQURBUiBESVBMIE9FQworQk9SxaBPxaAgQVRJTEEKK0JPUsWgT8WgIEJBUkJBUkEKK0JPUsWgT8WgIEnFoFRWQU4KK0JPUsWgT8WgIEnFoFRWQU4KK0JPUsWgT8WgIElNUkUKK0JPUsWgVE5BUiBIRU5SSUsKK0JPUsWgVE5FUiBOQURBCitCT1LEkElOIExBWkFSCitCT1LEkE/FoEtJIMSQT1LEkEUgRElQTCBJTkcKK0JPUsSQT8WgS0kgQk/FoEtPCitCT1LEkE/FoEtJIE1JTElDQQorQk9SxJBPxaBLSSBUQU1BUkEKK0JPUsSQT8WgS0kgVk9KSU4KK0JPUkHFoCBJUkVOQQorQk9SQVMgQk9SSVNMQVYKK0JPUkFTIE1BUklKQQorQk9SQVMgTUlMSUNBCitCT1JCQcWgIEtBUk9MSgorQk9SQkHFoCBWSU9MRVRBCitCT1JCQcWgIFpPTFRBTgorQk9SQkVMSiBBTEVLU0FOREFSCitCT1JCRUxKIEpBTk/FoAorQk9SQkVMSiBKT1NJUAorQk9SQkVMSiBMSlVCSUNBCitCT1JCRUxKIE1BUklKQQorQk9SQkVMSiBORVZFTktBCitCT1JEQcWgIMSQRVpFCitCT1JEQcWgIEFLT8WgCitCT1JEQcWgIEJFTEEKK0JPUkRBxaAgRkVSRU5DCitCT1JEQcWgIEZSQU5KQQorQk9SREHFoCBISUxEQQorQk9SRU5PVknEhiBBTlRPTklKRQorQk9SRU5PVknEhiBNSUxFCitCT1JFTk9WScSGIFZFUkEKK0JPUkkgSU1SRSBEUgorQk9SSSBNQVJJSkEKK0JPUknEjEnEhiBMQVpBUgorQk9SScSMScSGIE5PVkFLCitCT1JJxIxJxIYgUkFESVZPSkUKK0JPUknEjEnEhiBSQURVTEUKK0JPUknFoEVWIEJPUklTTEFWCitCT1JJxaBFViBMSklMSkFOQQorQk9SScWgRVYgTUlMRU5LTworQk9SScWgRVYgTklLT0xBCitCT1JJxaBFViBSVcW9SUNBCitCT1JJxaBFViBTQVZBCitCT1JJxaBFViBURU9ET1IKK0JPUknFoEVWIFZBU0EKK0JPUknFoEnEhiBNQVJJSkEKK0JPUknFoEnEhiBWTEFESU1JUgorQk9SScSGIMSMRURPTUlSCitCT1JJxIYgQUxFS1NBTkRBUgorQk9SScSGIERVxaBBTgorQk9SScSGIEtBTUVOS08KK0JPUknEhiBLQVRJQ0EKK0JPUknEhiBNSUxBTgorQk9SScSGIE1JTEtBCitCT1JJxIYgTklLT0xBCitCT1JJxIYgUEVUQVIKK0JPUknEhiBTVEVWQU4KK0JPUknEhiBaT1JBTgorQk9SScSGIFpPUkFOCitCT1JJUyBKT1NJUAorQk9SSVZPSkVWScSGIFZJVE9NSVIKK0JPUkpBTklOIFNMQVZLTworQk9SSkFOT1ZJxIYgR09SREFOQQorQk9SSkFOT1ZJxIYgSUxJSkEKK0JPUkpBTk9WScSGIE5JS09MQQorQk9SS08gU1RBTklTTEFWCitCT1JLT1ZBxIxLSSBaT1JBTgorQk9SS09WQUMgS0FUQVJJTkEKK0JPUktPVknEhiBEUkFHT1NMQVZBCitCT1JLT1ZJxIYgTUlMQU4KK0JPUkxKQSBTVEVWQU4KK0JPUk/FoCDFoEFORE9SCitCT1JPxaAgxaBBTkRPUgorQk9ST8WgIMSQRVLEkAorQk9ST8WgLcSQRVZJIMW9RUxKS08KK0JPUk/FoCDEkE9SxJBFCitCT1JPxaAgQUxFS1NBTkRBUgorQk9ST8WgIEFORFJJSkEKK0JPUk/FoCBBTlRVTgorQk9ST8WgIEVSTkUKK0JPUk/FoCBFVkEKK0JPUk/FoCBJxaBUVkFOCitCT1JPxaAgSk/FvUVGCitCT1JPxaAgSk9MQU4KK0JPUk/FoCBKVUxJSkEKK0JPUk/FoCBMQURJU0xBVgorQk9ST8WgIExBSk/FoAorQk9ST8WgIE1BUkdJVEEKK0JPUk/FoCBNSUhBSkxPCitCT1JPxaAgTUlIQUpMTworQk9ST8WgIE1JS0xPxaAKK0JPUk/FoCBWRVJBCitCT1JPxaBJxIYgRUxJWkFCRVRBCitCT1JPQ0tJIEFMRUtTQU5EQVIKK0JPUk9DS0kgREFOSUNBCitCT1JPQ0tJIExKVUJJTktBCitCT1JPSkEgTEpVQkFOCitCT1JPSkEgUlXFvUlDQQorQk9ST0pFViBBUlNFTiBEUiBMRUtBUgorQk9ST0pFViBFTUlMSUpBTiBEUgorQk9ST0pFViBKQUdPREEKK0JPUk9KRVYgTEpVQk9NSVIKK0JPUk9KRVYgUkFETUlMQQorQk9ST0pFVknEhiBBTkEKK0JPUk9KRVZJxIYgQk/FoEtPCitCT1JPSkVWScSGIEJPxaBLTworQk9ST0pFVknEhiBCT8WgS08KK0JPUk9KRVZJxIYgQlJBTktPCitCT1JPSkVWScSGIERSQUdBTgorQk9ST0pFVknEhiBEUkFHT0xKVUIKK0JPUk9KRVZJxIYgRFXFoEFOCitCT1JPSkVWScSGIEtSU1RBCitCT1JPSkVWScSGIExKSUxKQU5BCitCT1JPSkVWScSGIE1JTEFOCitCT1JPSkVWScSGIFBBVkxFCitCT1JPSkVWScSGIFBFVFJBCitCT1JPSkVWScSGIFNMQVZLTyBQUk9GCitCT1JPTUlTQSBEUkFHSUNBCitCT1JPTUlTQSBKRUxFTkEKK0JPUk9OSkFDIERSQUdBTgorQk9ST05KQUMgTUlMSUNBCitCT1JPTkpBQyBPTEdBCitCT1JPTkpBQyBWRVJBCitCT1JPVEEgQUxFS1NBTkRBUgorQk9ST1RBIEpPVkFOS0EKK0JPUk9UQSBNSUxBTgorQk9ST1RBIE1JTE9SQUQKK0JPUk9UQSBNSVJBCitCT1JPVEEgUkFET1NMQVYgRFIgTEVLQVIKK0JPUk9WxIxBTklOIExKVUJPTUlSCitCT1JPVsSMQU5JTiBNSUxJU0FWCitCT1JPVsSMQU5JTiBORURFTEpLTworQk9ST1bEjEFOSU4gUkFET01JUgorQk9ST1bEjEFOSU4gU0xPQk9EQU4KK0JPUk9WQUMgQVJTTworQk9ST1ZBQyBCUkFOSVNMQVYKK0JPUk9WQUMgS0FUSUNBCitCT1JPVkFDIE1JTE9SQUQKK0JPUk9WScSMQU5JTiBNSUxPUkFECitCT1JPVknEhiBBVElMQQorQk9ST1ZJxIYgSk9TSVAKK0JPUk9WScSGIEpPVkFOCitCT1JPVknEhiBLT1NUQQorQk9ST1ZJxIYgTUVOQQorQk9ST1ZJxIYgUEVUQVIKK0JPUk9WScSGIFJVRE9MRgorQk9ST1ZJxIYgVkxBREUKK0JPUk9WScSGQU5JTiBNSVJPU0xBVgorQk9ST1ZJQ0EgQk9KS0EKK0JPUk9WSUNBIElWQU4KK0JPUk9WSUNBIElWQU4KK0JPUk9WSUNBIEpFTEVOQQorQk9ST1ZJQ0EgTUlPRFJBRworQk9ST1ZOSUNBIEJSQU5LTworQk9ST1ZOSUNBIE1BUktPCitCT1JPVk5JQ0EgTUlMQU4KK0JPUk9WTklDQSBNSUxFVkEKK0JPUk9aQU4gTUlMT1JBRAorQk9SVcWgIEnFoFRWQU4KK0JPUlXFoCBJUkVOQQorQk9SWkHFoEtJIEJSQVRJU0xBVkEKK0JPUlpBxaBLSSBSQURPTUlSCitCT1JaQcWgS0kgU1RFVkFOCitCT1NBSyBJUkVOQQorQk9TQUtPViBEUkFHQU4KK0JPU0FOxIxJxIYgQk/FoEtPCitCT1NBTsSMScSGIEJPR0RBTgorQk9TQU7EjEnEhiBCT0dEQU4KK0JPU0FOxIxJxIYgSkVMSUNBCitCT1NBTsSMScSGIE1BTk9KTE8KK0JPU0FOxIxJxIYgTUlMRVZBCitCT1NBTsSMScSGIE1JT0RSQUcKK0JPU0FOxIxJxIYgUkFET1ZBTgorQk9TQU7EjEnEhiBSQUpLTworQk9TQU7EjEnEhiBUUklWQQorQk9TQU7EjEnEhiBWQVNPCitCT1NBTsSMScSGIFZMQURPCitCT1NBTsSMScSGIFZVSk8KK0JPU0FOQUMgSk9WQU4KK0JPU0FOQUMgTEpVQklDQQorQk9TQU5BQyBNQVJJSkEKK0JPU0FOQUMgTklLT0xBCitCT1NBTkFDIFZFUkEKK0JPU0nEhiBCT8W9QU5BCitCT1NJxIYgQlJBTktPCitCT1NJxIYgRFXFoEFOIERSCitCT1NJxIYgSk9WQU4KK0JPU0nEhiBNSU9EUkFHCitCT1NJxIYgUkFET1ZBTgorQk9TScSGIFNMQVZLQQorQk9TSUxKS0nEhiBMQVpBUgorQk9TSUxKS0nEhiBMVUtBCitCT1NJTiBTTE9CT0RBTgorQk9TSU9LIERPUlUKK0JPU05BSS1CQUJBIExVQ0lKQQorQk9TTkFJIEpBTk/FoAorQk9TTknEhiDEjEVET01JUgorQk9TTknEhiDEkFVSxJBJTktBCitCT1NOScSGIEFMRUtTQU5EQVIKK0JPU05JxIYgQk/FvUlEQVIKK0JPU05JxIYgQk9TSUxKS0EKK0JPU05JxIYgREFWSUQKK0JPU05JxIYgREFWSUQKK0JPU05JxIYgSk9WQU4KK0JPU05JxIYgTUFSQQorQk9TTknEhiBNSVJLTworQk9TTknEhiBNTEFERU4KK0JPU05JxIYgTkFEQQorQk9TTknEhiBOVVJJSkEKK0JPU05JxIYgUkFET1NBCitCT1NOScSGIFJBSktPCitCT1NOScSGIFZFUkEKK0JPU05JxIYgVkxBREEKK0JPU05JxIYgVkxBREEKK0JPU05JxIYgWk9SQU4KK0JPVEEgQlJBTklTTEFWCitCT1RJxIwgT0xJVkVSQQorQk9UScSGIEFMRUtTQU5EQVIKK0JPVEnEhiBCT0dEQU4KK0JPVEnEhiBEQU5JQ0EKK0JPVEnEhiBEQVJLTworQk9UScSGIERBUktPCitCT1RJxIYgR0FWUkEKK0JPVEnEhiBNSUxBTgorQk9UScSGIE1JTEFOCitCT1RJxIYgTUlMRQorQk9UScSGIE1JTE9SQUQgQURWT0tBVAorQk9UScSGIE1JUk9TTEFWQQorQk9UScSGIE9MSVZFUkEKK0JPVEnEhiBQUk9LQQorQk9UScSGIFJBRE9TTEFWQQorQk9UScSGIFZFUklDQQorQk9UScSGIFZMQURJTUlSCitCT1RJxIYgWk9SQU5LQQorQk9US0EgQU5UQUwKK0JPVEtBIERBVklECitCT1RLQSBFUsW9RUJFVAorQk9US0EgVkVST05BCitCT1RLQSBaT0xUQU4KK0JPVExJSyBHRVpBCitCT1RMSUsgTUFSSUpBCitCT1RPxaBLSSBEUkFHT1ZBTgorQk9UT8WgS0kgU0FWQQorQk9UT1JJxIYgUkFET0pJQ0EKK0JPVFpBIEnFoFRWQU4KK0JPWkVKQUMgQU5UQUwgRElQTCBQUkFWTklLCitCT1pFSkFDIERVxaBBTgorQk9aRUpBQyBHT1JEQU5BCitCT1pFSkFDIE1JTEVOS08KK0JPWkVKQUMgU01JTEpLQQorQk9aRUpBQyBTVkVUSVNMQVYKK0JPWkVKQUMgVkVSQQorQk9aT0tJTiBTVEVWSUNBCitCUsSMScSGIElHTkpBQworQlLEjEnEhiBNSVJPU0xBVgorQlLEjEnEhiBORcSQTworQlLEjEnEhiBSQURPVkFOCitCUsSMSU4gxJBPUsSQRQorQlLEjElOIE1JTElOS0EKK0JSxIxJTiBOSUtPTEEKK0JSxIxJTiBSQVRPTUlSCitCUsSMSU4gU0xBVklDQQorQlLEjElOIFNWRVRPWkFSCitCUsSMSU5PVknEhiBQQVZMRQorQlLEjEtBTE9WScSGIExKVUJPTUlSCitCUkHEjEVWScSGIElWQU4KK0JSQcSMRVZJxIYgTUlSSkFOQQorQlJBxaBBTkFDIEJPUklTTEFWCitCUkHFoEFOQUMgR0FWUklMTyBESVBMIElORworQlJBxaBBTkFDIElMSUpBCitCUkHFoEFOQUMgTUlSSkFOQQorQlJBxaBBTkFDIE1JUk9TTEFWCitCUkHFoEtPIEpPxb1FRgorQlJBxaBOSk8gR1VTVEFWCitCUkHFoE5KTyBJxaBUVkFOCitCUkHFoE5KTyBJxaBUVkFOCitCUkFDQU5PVknEhiBEQU1KQU4KK0JSQUNBTk9WScSGIE1JTFVUSU4KK0JSQUNJxIYgTUlMQU4KK0JSQURBxIwgRUxJWkFCRVRBCitCUkFEQcSMIElNUkUKK0JSQURBxaAgxb1JVkEgRElQTCBJTkcKK0JSQURBUknEhiBORURFTEpLTworQlJBREnEhiDEkE9SxJBFCitCUkFEScSGIMSQT1LEkEUKK0JSQURJxIYgQk/FvUlEQVIKK0JSQURJxIYgQk9HT0xKVUIKK0JSQURJxIYgQk9HT0xKVUIKK0JSQURJxIYgQlJBTktPCitCUkFEScSGIEVWR0VOSUpBCitCUkFEScSGIEdBVlJJTE8KK0JSQURJxIYgSlVTVElOQQorQlJBREnEhiBNSUxBTiBESVBMIElORworQlJBREnEhiBNSUxBTgorQlJBREnEhiBNSUxJQ0EKK0JSQURJxIYgTUlMSVZPSkUKK0JSQURJxIYgTUlMSktPCitCUkFEScSGIFNMT0JPREFOCitCUkFEScSGIFNSRVRBCitCUkFEScSGLVRFTkpJIFpPUklDQQorQlJBREnEhiBURU9ET1JBCitCUkFEScSGIFRPTUlTTEFWQQorQlJBREnEhiBWSURPSkUKK0JSQURJxIYgWk9SSUNBCitCUkFET8WgIFNMT0JPREFOCitCUkFIVEwgTUFSSUNBCitCUkFKREnEhiBJVkFOCitCUkFKRVIgRlJBTkpBCitCUkFKRVZJxIYgUFJFRFJBRworQlJBSknEhiBNSUxJQ0EKK0JSQUpJxIYgUkFET1ZBTgorQlJBSknEhiBTTE9CT0RBTgorQlJBSktPViBNQVJLTworQlJBSktPVknEhiBJVk8KK0JSQUpLT1ZJxIYgTUlSSkFOQQorQlJBSk9WScSGIE1JTElWT0pFCitCUkFKT1ZJxIYgTUlMT8WgCitCUkFKT1ZJxIYgU0xBVktBCitCUkFKT1ZJxIYgU1BBU09KRQorQlJBSk9WScSGIFNUQU5LQQorQlJBSk9WScSGIFZFTEpLTworQlJBS0/EjEVWScSGIEpPVkFOCitCUkFLVVMgRFXFoEFOS0EKK0JSQUtVUyBMSklMSkFOQQorQlJBS1VTIE1BUklKQQorQlJBS1VTIE1JTEFOCitCUkFLVVMgTU9NxIxJTE8KK0JSQUxPVknEhiBSQVRLTworQlJBTsSMScSGIEJPUklTIERJUEwgSU5HCitCUkFOxIxJxIYgSkFTTkEKK0JSQU7EjEnEhiBNSUxFTkEKK0JSQU7EjEnEhiBNSUxVxaBLTworQlJBTkEgUEVUQVIKK0JSQU5JTE9WScSGIFNUSkVQQU4KK0JSQU5LT1YgxJBPUsSQRQorQlJBTktPViDEkE9SxJBFCitCUkFOS09WIEFMRUtTQU5EUkEKK0JSQU5LT1YtQk9LQSBST1pBTElKQQorQlJBTktPViBCT1JJVk9KCitCUkFOS09WIEJSQU5JU0xBVgorQlJBTktPViBET0JSSUNBCitCUkFOS09WIERSQUdBTkEKK0JSQU5LT1YgRFJBR0FOCitCUkFOS09WIERVxaBBTgorQlJBTktPViBFTUlMCitCUkFOS09WIElMSUpBCitCUkFOS09WIEpFTElDQQorQlJBTktPViBKT1ZBTktBCitCUkFOS09WIEtPU1RBCitCUkFOS09WIEtPU1RBCitCUkFOS09WIExKVUJJQ0EKK0JSQU5LT1YgTEpVQklDQQorQlJBTktPViBMSlVCSU5LTworQlJBTktPViBNSUxJQ0EKK0JSQU5LT1YgTUlMT1JBRAorQlJBTktPViBNSVJLTworQlJBTktPViBNSVRBCitCUkFOS09WIE1JVEEKK0JSQU5LT1YgTUxBREVOCitCUkFOS09WIE1PTUlSCitCUkFOS09WIE5BREEKK0JSQU5LT1YgT0xJVkVSQQorQlJBTktPViBSQURJVk9KCitCUkFOS09WIFJBRE9WQU4KK0JSQU5LT1YgUkFET1ZBTgorQlJBTktPViBTVkVUSVNMQVYKK0JSQU5LT1YgVkVMSktPCitCUkFOS09WIFZMQURJTUlSCitCUkFOS09WIFpMQVRJTktBCitCUkFOS09WQU4gxJBPUsSQRQorQlJBTktPVkFOIFZMQVNUSU1JUgorQlJBTktPVknEhiBCT0dPTEpVQgorQlJBTktPVknEhiBCT0pBCitCUkFOS09WScSGIEJSQU5LTworQlJBTktPVknEhiBCUkFOS08KK0JSQU5LT1ZJxIYgRFJBR0FOCitCUkFOS09WScSGIERVxaBBTktBCitCUkFOS09WScSGIERVxaBBTgorQlJBTktPVknEhiBEVcWgQU4KK0JSQU5LT1ZJxIYgSUxJSkEKK0JSQU5LT1ZJxIYtS09WQcSMRVZJxIYgUkFETUlMQQorQlJBTktPVknEhiBMSklMSkFOQQorQlJBTktPVknEhiBMSlVCSUNBCitCUkFOS09WScSGIE1JTEFOCitCUkFOS09WScSGIE1JTEVOQQorQlJBTktPVknEhiBNSUxPUkFECitCUkFOS09WScSGIE1JUktPCitCUkFOS09WScSGIE1MQURFTgorQlJBTktPVknEhiBTQVZLQQorQlJBTktPVknEhiBTTEFWS08KK0JSQU5LT1ZJxIYgU0xBVk9MSlVCCitCUkFOS09WScSGIFNMQVZPTEpVQgorQlJBTktPVknEhiBTVkVUTEFOQQorQlJBTktPVknEhiBUVUdPTUlSCitCUkFOS09WScSGIFpJTkEKK0JSQU5LT1ZJxIYgWk9SQU4KK0JSQU5PVkHEjEtJIMSQT1LEkEUKK0JSQU5PVkHEjEtJIEFOR0VMSU5BCitCUkFOT1ZBxIxLSSBHQVZSSUxPCitCUkFOT1ZBxIxLSSBJVkFOQQorQlJBTk9WQcSMS0kgTEpVQklDQQorQlJBTk9WQcSMS0kgT0xHQQorQlJBTk9WQcSMS0kgU1ZFVElTTEFWCitCUkFOT1ZJxIYgQklTRVJLQQorQlJBTk9WScSGIFJVxb1BCitCUkFPVknEhiBTQU5EUkEKK0JSQU9WScSGIFZMQURJTUlSCitCUkFUIERVxaBBTgorQlJBVEnEhiBBxaBJUgorQlJBVEnEhiBEUkFHTworQlJBVEnEhiBEVcWgQU4KK0JSQVRJxIYgR09SQU4KK0JSQVRJxIYgTEpVQklDQQorQlJBVEnEhiBMSlVCT01JUgorQlJBVEnEhiBNVUhPCitCUkFUScSGIE5FREVMSktPCitCUkFUScSGIFJBRE9WQU4KK0JSQVRJxIYgVk9KSVNMQVYKK0JSQVRPTk/FvUnEhiBNQVJHSVRBCitCUkJPUknEhiBMQVpBUgorQlJCT1JJxIYgU1JCSVNMQVYKK0JSQ0FOT1YgxJBVUsSQSU5LQQorQlJDQU5PViBPTEdBCitCUkNBTk9WIFNJTUEKK0JSQ0FOT1YgVElIT01JUgorQlJDQU5TS0kgTklLT0xBCitCUkRBUiBEQU5FCitCUkRBUiBEUkFHTworQlJEQVIgSUxJSkEKK0JSREFSIElWQU5LQQorQlJEQVIgTUlMQU4KK0JSREFSIFBFUk8KK0JSREFSIFNMQVZJxaBBCitCUkRBUkVWScSGIERVxaBLTworQlJEQVJJxIYgRFJBR09NSVIKK0JSREFSScSGIEtPU1RBCitCUkRBUknEhiBNSUxBTgorQlJEQVJJxIYgUEVUQVIKK0JSRcWgxIZBTlNLSSBNQVJJSkEKK0JSRcWgS09WScSGIFNUQU5JU0xBVkEKK0JSRcWgS09WU0tJIERSQUdJQ0EKK0JSRcW9QU4gSUxPTkEKK0JSRcW9QU4gTEVPTk9SQQorQlJFxb1BTiBNQVJJSkEKK0JSRUJFUiBMSlVCSUNBCitCUkVCRVJJTkEgTUlMQU4KK0JSRUJFUklOQSBTVEVWQU4KK0JSRUdVTiDEkE9SxJBFCitCUkVHVU4gQUxFS1NBTkRSQQorQlJFR1VOIE5JS09MQQorQlJFR1VOIFJBRE9TTEFWIERJUEwgSU5HCitCUkVLQUxPIEpPU0lQCitCUkVLScSGIElMSUpBCitCUkVLScSGIE5JS09MQQorQlJFS0nEhiBTVEVWQU4KK0JSRU5FQ0tJIFpEUkFWS08KK0JSRU5FU0VMIERSQUdBTgorQlJFTkVTRUwgR0FCUklFTAorQlJFTkVTRUwgTUlSSkFOQQorQlJFTkVTRUwgTklLT0xBCitCUkVTVE9WQcSMS0kgSVZBTgorQlJFU1RPVkHEjEtJIEpBU01JTkEKK0JSRVNUT1ZBxIxLSSBNSUxLQQorQlJFU1RPVkHEjEtJIFNURVZBCitCUkVUIFZFUkEKK0JSRVTFoE5BSkRFUiBBTkEKK0JSRVpOSUsgRVJORQorQlJFWk5KQUsgSkFOT8WgCitCUkVaTkpBSyBNQVJJSkEKK0JSRVpPVsSMRUsgSk9WQU5LQQorQlJFWk9WQUMgRFJBR0lDQQorQlJFWk9WQUMgRFXFoEFOCitCUkVaT1ZBQyBJVkFOCitCUkVaT1ZBQyBJVkFOCitCUkVaT1ZBQyBKVVJBSgorQlJFWk9WQUMgS0FUQVJJTkEKK0JSRVpPVkFDIExKVUJJTktBCitCUkVaT1ZBQyBNSUxFTkEKK0JSRVpPVkFDIE1JTE/FoAorQlJFWk9WQUMgUEVUQVIKK0JSRVpPVkFDIFNBVkEKK0JSRVpPVknEhiBNSVJKQU5BCitCUknFoEVWQUMgSlVSRQorQlJJS0VSIFNNSUxKQU5BCitCUklOSkFLIERSQUdPCitCUklUVkVDIE1BUktPCitCUklaQSDFvUVMTUlSQQorQlJJWkEgSkFOCitCUklaQSBMVUtSRUNJSkEKK0JSSyBTSU1PCitCUktBTknEhiBNQVJLTworQlJLQU5JxIYgTUlMRU5LTworQlJLQU5JxIYgVEFUSkFOQQorQlJLQU5MScSGIMW9RUxKS08KK0JSS0FOTEnEhiBEVcWgQU4KK0JSS0nEhiDEkE9SxJBFCitCUktJxIYgxJBPUsSQRQorQlJLScSGIMSQVVJPCitCUktJxIYgQUJBWgorQlJLScSGIEFMRUtTQU5EQVIKK0JSS0nEhiBBTEVLU0FOREFSCitCUktJxIYgQU5LQQorQlJLScSGIEFOS0lDQQorQlJLScSGLUJFTEnEhiBEQU5JQ0EKK0JSS0nEhiBCT0dEQU4KK0JSS0nEhiBCUkFOS08KK0JSS0nEhiBEUkFHQU4KK0JSS0nEhiBEUkFHQQorQlJLScSGIERSQUdPCitCUktJxIYgRFXFoEFOS0EKK0JSS0nEhiBHT0pLTworQlJLScSGIElMSUpBCitCUktJxIYgSVZBTgorQlJLScSGIElWSUNBCitCUktJxIYgSkVMSVNBVkVUQQorQlJLScSGIEpPVkFOCitCUktJxIYgSk9WQU4KK0JSS0nEhiBKT1ZBTgorQlJLScSGIEpPVkFOCitCUktJxIYgTEpVQk9NSVIKK0JSS0nEhiBMVUtBCitCUktJxIYgTUFHREFMRU5BCitCUktJxIYgTUFOREEKK0JSS0nEhiBNQVJJSkEKK0JSS0nEhiBNQVJJSkEKK0JSS0nEhiBNSUxBRElOCitCUktJxIYgTUlMQU4KK0JSS0nEhiBNSUxBTgorQlJLScSGIE1JTEFOCitCUktJxIYgTUlSSkFOQQorQlJLScSGIE1JVEFSCitCUktJxIYgTkFEQQorQlJLScSGIE5FQk9KxaBBCitCUktJxIYgTklLT0xBCitCUktJxIYgTklLT0xBCitCUktJxIYgUEVUQVIKK0JSS0nEhiBQRVRBUgorQlJLScSGIFBFVFJBCitCUktJxIYgUkFET0pLQQorQlJLScSGIFJBRE9TTEFWCitCUktJxIYgUkFET1NMQVYKK0JSS0nEhiBSQURPU0xBVgorQlJLScSGIFJBVEtPCitCUktJxIYgUlXFvUEKK0JSS0nEhiBTSUxWSUpBCitCUktJxIYgU0xBVktPCitCUktJxIYgU05Fxb1BTkEKK0JSS0nEhiBTTkXFvUFOQQorQlJLScSGIFRPTU8gRElQTCBJTkcKK0JSS0nEhiBVUk/FoAorQlJLScSGIFZFWklMSUpBCitCUktJxIYgVkxBRElNSVIKK0JSS0nEhiBWTEFESU1JUgorQlJLScSGIFZMQURJTUlSCitCUktJxIYgVk9KSVNMQVYKK0JSS0nEhiBaRFJBVktPCitCUktJxIYgWk9SQU4KK0JSS0xKQcSMIEJSQU5JTUlSCitCUktMSkHEjCBCUkFOSVNMQVYKK0JSS0xKQcSMIERSQUdPTEpVQgorQlJLTEpBxIwgSUxJSkEKK0JSS0xKQcSMIEtBVEFSSU5BCitCUktMSkHEjCBNSUxBTktPCitCUktMSkHEjCBNSUxBTgorQlJLTEpBxIwgTklLT0xBCitCUktMSkHEjCBOSUtPTEEKK0JSS0xKQcSMIFJVxb1JQ0EKK0JSS0xKQcSMIFNMT0JPREFOCitCUktMSkHEjCBTVEVWQU4KK0JSS0xKQcSMQSBCUkFUT0xKVUIKK0JSS0xKQcSMScSGIEJPxb1FTkEKK0JSS0xKQcSMScSGIFZMQURJTUlSCitCUktPIE5JS09MQQorQlJLT1ZJxIYgxJBPUsSQRQorQlJLT1ZJxIYgQU5UVU4KK0JSS09WScSGIEJPU0lMSktBCitCUktPVknEhiBEUkFHTworQlJLT1ZJxIYgRFXFoEFOCitCUktPVknEhiBFTUlMSUpBCitCUktPVknEhiBKT1ZBTktBCitCUktPVknEhiBMSlVCT01JUgorQlJLT1ZJxIYgTUFHREEKK0JSS09WScSGIE1JTEFOCitCUktPVknEhiBNSUxJQ0EKK0JSS09WScSGIE5BREEKK0JSS09WScSGIE5JS09MQQorQlJLT1ZJxIYgUkFET1ZBTgorQlJLT1ZJxIYgVklPRFNBVkEKK0JSS09WScSGIFZKRUtPU0xBVgorQlJLT1ZJxIYgWkxBVEtPCitCUkxJxIYgRFJBR1VUSU4KK0JSTEnEhiBJVkFOCitCUk1CT1RBIEpPVkFOCitCUk1CT1RBIEpPVkFOCitCUk5KQUtPVknEhiBNQVJJSkEKK0JSTk9WScSGIFNWRVRPWkFSCitCUk/FoFRFQU4gVklPUkVMCitCUk/EhkVUQSBCT0dEQU4KK0JST8SGRVRBIE1JxIZBCitCUk/EhkVUQSBNSUxPUkFECitCUk/EhkVUQSBORURFTEpLTworQlJPxIZFVEEgT0JSQUQKK0JST0RSQU5TS0kgU1ZFVExBTkEKK0JST0rEjElOIERVxaBBTgorQlJPSsSMSU4gU0FWQQorQlJPTlpBIERSQUdBTgorQlJPTlpBIFJBSktPCitCUk9aT1ZJxIYgSVZBTgorQlJTQU5PVknEhiBLUlNUQQorQlJTVElOQSBWQVNJTElKRQorQlJUQU4gSk9TSVAKK0JSVEtBIEpBTgorQlJVxaBOSkFJIEpPU0lQCitCUlXFoE5KQUsgUEVSTworQlJVSknEhiBEVcWgQU4KK0JSVUpJxIYgSk9WQU4KK0JSVUpJxIYgTUFOT0pMTworQlJVSknEhiBNSUxBTgorQlJVSknEhiBNSUxJQ0EKK0JSVUpJxIYgU0xBVktPCitCUlVKScSGIFZMQURJTUlSCitCUlVLIEFORFJJSkEgRFIKK0JSVUtORVIgQk9HREFOCitCUlVLTkVSIEJPR0RBTgorQlJVTsSMRVZJxIYgSElWWk8KK0JSVU7EjEVWScSGIFJFRMW9RVAKK0JSVU5EWkEgQ0VDSUxJSkEKK0JSVU5EWkEgVkxBRElNSVIgTVIKK0JSVU5FUiBKT1NJUAorQlJVTkVUIEVMRU1FUgorQlJVTkVUIEZSQU5KQQorQlJVTkVUIEnFoFRWQU4KK0JSVU5FVCBaT0xUQU4KK0JSVU5FVCBaT0xUQU4KK0JSVVNJTiBEVcWgS08KK0JSVVNJTiBLQUpJQ0EKK0JSVVNJTiBNSUxPSktPCitCUlVTSU4gTUlMT1ZBTgorQlJVU0lOIFJBRElDQQorQlJVU0lOIFNMQVZLTworQlJVU05KQUkgS0FSTE8KK0JSVVNOSkFJIExBU0xPCitCUlVTTkpBSSBNQVJHQVJJVEEKK0JSWkFLIMW9SVZLQQorQlJaQUsgxb1JVk9SQUQKK0JSWkFLIMSQT1LEkEUKK0JSWkFLIMSQT1LEkEUKK0JSWkFLIMSQT1LEkEUKK0JSWkFLIMSQT1LEkEUKK0JSWkFLIMSQVUtBCitCUlpBSyBBTEVLU0FOREFSCitCUlpBSyBBTEVLU0FOREFSCitCUlpBSyBBTsSQRUxLQQorQlJaQUsgQk9HREFOS0EKK0JSWkFLIEJPUklTTEFWCitCUlpBSyBCT1NBCitCUlpBSyBCUkFOSVNMQVYKK0JSWkFLIERSQUdBTgorQlJaQUsgRFJBR0FOCitCUlpBSyBEUkFHSUNBCitCUlpBSyBEUkFHT01JUgorQlJaQUsgRFXFoEtPCitCUlpBSyBHT0pLTworQlJaQUsgSUxJSkEKK0JSWkFLIEpBRFJBTktBCitCUlpBSyBKRUxFTkEKK0JSWkFLIEpPVkFOCitCUlpBSyBKT1ZBTgorQlJaQUsgSk9WQU4KK0JSWkFLIEpPVkFOCitCUlpBSyBKT1ZBTgorQlJaQUsgSk9WQU4KK0JSWkFLIEtPU1RBCitCUlpBSyBMQVpBUgorQlJaQUsgTEVQT1NBVkEKK0JSWkFLIE1BUklKQQorQlJaQUsgTUlMQQorQlJaQUsgTUlMRU5LTworQlJaQUsgTUlMRU5LTworQlJaQUsgTUlMRU5LTworQlJaQUsgTUlMT1ZBTgorQlJaQUsgTUlMT1ZBTgorQlJaQUsgTUlSQQorQlJaQUsgTUlSQQorQlJaQUsgTUlST1NMQVYKK0JSWkFLIE1JVEFSCitCUlpBSyBQRVRBUgorQlJaQUsgUFJFRFJBRworQlJaQUsgUkFET1NMQVYKK0JSWkFLIFNBVkEKK0JSWkFLIFNBVkVUQQorQlJaQUsgU0lNRU9OCitCUlpBSyBTTEFWS08KK0JSWkFLIFNMT0JPREFOS0EKK0JSWkFLIFNURVZBTgorQlJaQUsgU1RFVkFOCitCUlpBSyBTVEVWQU4KK0JSWkFLIFNUT0pBTktBCitCUlpBSyBTVkVUTEFOQQorQlJaQUsgU1ZFVE9aQVIKK0JSWkFLIFRPxaBBCitCUlpBSyBUT8WgQQorQlJaQUsgVE/FoElDQQorQlJaQUsgVE9ET1IKK0JSWkFLIFZBU0EKK0JSWkFLIFZBU0EKK0JSWkFLIFZBU0EKK0JSWkFLIFZFTEpLTworQlJaQUsgVklEQQorQlJaQUsgVklET1NBVkEKK0JSWkFLIFZJRE9TTEFWCitCUlpBSyBWTEFESVNMQVYKK0JSWkFLIFpPUkFOCitCUlpBS09WScSGIElHT1IKK0JSWkFLT1ZJxIYgTkVOQUQgRFIKK0JSWkFLT1ZJxIYgVklUT01JUiBEUiBMRUtBUgorQlJaQU5PVknEhiBEUkFHQU4KK0JSWknEhiDFvUlWQU4KK0JSWknEhiDEkE9SxJBFCitCUlpJxIYgQlJBTktPCitCUlpJxIYgRlJBTkpBCitCUlpJxIYgSVZBTgorQlJaScSGIEpPVkFOCitCUlpJxIYgTEFaQVIKK0JSWknEhiBMQVpBUgorQlJaScSGIE1JUkpBTkEKK0JSWknEhiBQRVRBUgorQlJaScSGIFBFVEFSCitCUlpJxIYgUkFET1NMQVYKK0JSWknEhiBTVEVWQU4KK0JSWknEhiBTVkVUT1pBUgorQlJaScSGIFRPRE9SCitCUlpJxIYgWkxBVEEKK0JSWklDQSBCUkFOS0EKK0JSWklDQSBGRVJETworQlJaSUNBIElWQU5LQQorQlJaSUNBIE1BUklOS08KK0JSWk9WQU4gQkVISUpBCitCVSBJxaBUVkFOCitCVcSMQSBEVcWgQU4KK0JVxIxBIERVxaBJQ0EKK0JVxIxBIElSSU5BCitCVcSMQSBWQVNBCitCVcSMQU5TS0kgSk/FvUVGCitCVcSMScSGIEJPUklTTEFWCitCVcSMS08gQUhORVRBCitCVcSMS08gSkFOS08KK0JVxIxLTyBNQVJJSkEKK0JVxIxPIERBTklKRUxBCitCVcSMVS1NQVJUT05PxaBJIEdJWkVMQQorQlXFoCBBTkEKK0JVxaAgTUFHREFMRU5BCitCVcWgIFNJTFZFU1RFUgorQlXFoEnEhiBTUkXEhktPCitCVcWgTEpFVEEgQlJBTktBCitCVcWgVFJFVknEhiBNSVJKQU5BCitCVcWgVFJFVknEhiBTTE9CT0RBTktBCitCVcWgVFJPVknEhiBPTEdBCitCVcSGQU4gRFXFoEFOCitCVcSGQU4gRFXFoEFOCitCVcSGQU4gTUlMRVZBCitCVcSGQU4gU0xBVktBCitCVcSGQU5TS0kgTUHEhkHFoAorQlXEhklOIFJBREUKK0JVxIZPIFpBR09SS0EKK0JVxb1BTsSMScSGIE1JUkEKK0JVxb1BTklOIE1JTEUKK0JVxJBJIMSQVUxBCitCVcSQSUxBTiBQRVRBUgorQlVBxIxBIERSQUdBTgorQlVBxIxBIE9MR0lDQQorQlVBxIxBIFNURVZBTgorQlVCQUxPIERSQUdBTgorQlVCQUxPIERSQUdJTkpBCitCVUJBTE8gR09SQU4KK0JVQkFMTyBJTElKQQorQlVCQUxPIEpPVkFOCitCVUJBTE8gSk9WTworQlVCQUxPIE1JUk9TTEFWCitCVUJBTE8gUEVUQVIKK0JVQkFMTyBSQVRPTUlSCitCVUJBTE8gU0lNTworQlVCQUxPIFRFT0RPUkEKK0JVQkFOSiBCUkFOSVNMQVYKK0JVQkFOSiBEQU5FCitCVUJBTkogSVZBTktBCitCVUJBTkogTUlMSUNBCitCVUJBTkogTUlMT8WgCitCVUJBTkogUkFERQorQlVCQU5KIFJBRE9KS0EKK0JVQkFOSiBTUkJPTEpVQgorQlVCQU5KIFZJRE9TQVZBCitCVUJBTkpBIEFMRUtTQU5EQVIKK0JVQkFOSkEgQkFUUknEhgorQlVCQU5KQSBEQVJJTktBCitCVUJBTkpBIEtBVElDQQorQlVCQU5KQSBNQcWgQU4KK0JVQkFOSkEgUkFESVNBVgorQlVCQU5KQSBUQURJSkEKK0JVQkFOSkEgVk9KSVNMQVYKK0JVQkFOSkEgWk9SS0EKK0JVQknEhiBNSUxBTgorQlVCTknEhiBWRVJPTkEKK0JVQk5KRVZJxIYgxJBPUsSQRQorQlVCTkpFVknEhiBCT1JFCitCVUJOSkVWScSGIERBUkEKK0JVQk5KRVZJxIYgRFJBR08KK0JVQk5KRVZJxIYgR09KS08KK0JVQk5KRVZJxIYgSkFOSkEKK0JVQk5KRVZJxIYgTEpVQk9NSVIKK0JVQk5KRVZJxIYgTUFSSUNBCitCVUJOSkVWScSGIE1BUklOS08KK0JVQk5KRVZJxIYgTUlSS08KK0JVQk5KRVZJxIYgTkVOQUQKK0JVQk5KRVZJxIYgT1NUT0pBCitCVUJOSkVWScSGIFJBREEKK0JVQk5KRVZJxIYgUkFET01JUgorQlVCTkpFVknEhiBSRUxKQQorQlVCTkpFVknEhiBTUkJPTEpVQgorQlVCTkpFVknEhiBTUkVURU4KK0JVQk5KRVZJxIYgU1RPSkFOS0EKK0JVQk5KRVZJxIYgVkFTS1JTSUpFCitCVUJOSkVWScSGIFZMQURJTUlSCitCVUJOSknEhiDFvUVMSktPCitCVUJPTkpBIEJPUklTCitCVUJPTkpBIERPU1RBTkEKK0JVQk9OSkEgRFXFoEFOCitCVUJPTkpBIFJBRE9WQU4KK0JVQlJFxaBLTyBHT1JEQU5BCitCVUJVTEogTUlMScSGCitCVUJVTEogTkFEQQorQlVCVUxKIFNUT0pBTktBCitCVUJVTEogU1RPSkEKK0JVQ0FMTyBNSUxBRElOCitCVUNBTE8gTUlSQQorQlVDQUxPIE1JVEFSCitCVUNBTE9WScSGIERVxaBBTgorQlVDScSGIEFOVEUKK0JVQ0nEhiBNSUxJVk9KCitCVUNVTEpFVknEhiBBTEVLU0FOREFSCitCVUNVTEpFVknEhiBaTEFUT01JUiBEUgorQlVExb1BS09TS0kgVE9NQQorQlVExb1BUk9WIFNBVkEKK0JVREEgQURBCitCVURBIEVWQQorQlVEQSBIQUpOQUxLQQorQlVEQSBKT8W9RUYKK0JVREEgVEVSRVpBCitCVURBxIYgWk9SQU4KK0JVREFJIEdPUklDQQorQlVEQUkgSUxPTktBCitCVURBSSBKT8W9RUYKK0JVREFJIEpPTEFOCitCVURBSSBKT1ZBTgorQlVEQUkgTEFKT8WgCitCVURBSSBMQUpPxaAKK0JVREFJIFpPUkEKK0JVREFLIERSQUdBTgorQlVEQUsgSVZJQ0EKK0JVREFLIE1JTEFOCitCVURBSyBWRVJBCitCVURBS09WIEFMRUtTQU5EUkEKK0JVREFLT1YgQlJBTklTTEFWCitCVURBS09WIERSQUdBTgorQlVEQUtPViBHT1JJQ0EKK0JVREFLT1YgSVZBTgorQlVEQUtPViBMSklMSkFOQQorQlVEQUtPViBNSUxBTgorQlVEQUtPViBNSUxVVElOCitCVURBS09WIE9MSVZFUkEKK0JVREFLT1YgU0xPQk9EQU4KK0JVREFOT1YgQU5UQUwKK0JVREFOT1YgREFOSUNBCitCVURBTk9WScSGIFNBVkVUQQorQlVEQU5PVknEhiBTVEFOQQorQlVERVJLQSBNQVJJSkEKK0JVREnFoEEgQk/FvUEKK0JVREnFoEEgQk9SQQorQlVEScWgQSBNSVJLTworQlVEScWgQSBUSUhPTUlSCitCVURJxaBJxIYgRFJBR0FOCitCVURJxaBJTiDEkE9SxJBFCitCVURJxaBJTiBJVkFOCitCVURJxaBJTiBNSUxPxaAKK0JVREnFoElOIE1JTE/FoAorQlVEScWgSU4gTklLT0xBIERSCitCVURJxaBJTi1TQUtBxIwgU09OSkEgRFIKK0JVREnFoElOIFZMQURJTUlSCitCVURJxIYgxb1FTEpLTworQlVEScSGIERBTklMTworQlVEScSGIERSQUdPU0xBVgorQlVEScSGIERVxaBBTktBCitCVURJxIYgTUlMQU4KK0JVREnEhiBaT1JLQQorQlVESU3EjEnEhiBKT1ZBTgorQlVESU3EjEnEhiBMSklMSkFOQQorQlVESU3EjEnEhiBNSUxJVk9KCitCVURJTUEgQkFKUlXFoAorQlVESU1BQyBCVURJTUlSCitCVURJTUFDIFpPUkFOCitCVURJTUlSIE1BUklKQQorQlVESU1JUiBNSUxBTgorQlVESU1JUiBNSUxPSktPCitCVURJTUlST1ZJxIYgRFJBR0lDQQorQlVESU1JUk9WScSGIE5FR09WQU4KK0JVRElNSVJPVknEhiBVUk/FoAorQlVESU1LScSGLUtSU1RJxIYgRFJBR0FOQQorQlVESU1MSUpBIEFMRUtTQU5EQVIKK0JVRElNTElKQSBEUkFHSUNBCitCVURJTUxJSkEgSUxJSkEKK0JVRElNTElKQSBNSUxBTgorQlVESU1MSUpBIE1JTEFOCitCVURJTUxJSkEgUkFERQorQlVESU1TS0kgxJBVUkEKK0JVRElNU0tJIFNMQVZVSgorQlVESU7EjEVWScSGIEdBQk9SCitCVURJTsSMRVZJxIYgSlVMSUpBTkEKK0JVRElOxIxFVknEhiBNSVJLTworQlVESU7EjEVWScSGIE5JS09MQQorQlVESU5TS0kgS0lSSUwKK0JVRElOU0tJIExKVUJBCitCVURJTlNLSSBNQVJJSkEKK0JVRElOU0tJIFZMQURJTUlSCitCVURJU0FWTEpFVknEhiBCUkFOS08KK0JVRElTQVZMSkVWScSGIERVxaBBTgorQlVESVNBVkxKRVZJxIYgS0FST0xJTkEKK0JVRElTQVZMSkVWScSGIE1BUklKQQorQlVESVNBVkxKRVZJxIYgTkFUQUxJSkEKK0JVRElTQVZMSkVWScSGIE5FVkVOS0EKK0JVRElTQVZMSkVWScSGIFJVxb1JQ0EKK0JVRElTQVZMSkVWScSGIFZFUklDQQorQlVESklMQU4gUEVUQVIKK0JVRE/FoEFOIMW9SVZLTworQlVET8WgQU4gxJBPUsSQRQorQlVET8WgQU4gQUxFS1NBTkRBUgorQlVET8WgQU4tS09WQcSMIEpFTEVOQQorQlVET8WgQU4gTUlMT8WgCitCVURPxaBBTiBOQURBCitCVURPxaBBTiBTQVZBCitCVURPxaBBTiBTQVZBCitCVURPxaBBTiBTVEVWQU4KK0JVRE/FoEFOIFRPxaBJQ0EKK0JVRE/FoEFOIFZBU0EKK0JVRE/FoEFOIFZBU0EKK0JVRE/FoEFOIFZVS09TQVZBCitCVURPVkFMxIxFViBBUlNBCitCVURPVkFMxIxFViBPTEdBCitCVURPVkFMxIxFViBQRVRBUgorQlVET1ZBTMSMRVYgUEVUQVIKK0JVRFVSSU4gUkFET0pFCitCVUdBRMW9SUpBIExBSk/FoAorQlVHQUTFvUlKQSBTVEVWQU4KK0JVR0FSxIxJxIYgUEVUQVIKK0JVR0FSxIxJxIYgUkFETUlMTworQlVHQVLEjEnEhiBTTUlMSktBCitCVUdBUklOLcSMT05LScSGIFJBRE9KS0EKK0JVR0FSSU4gxb1JVkFOCitCVUdBUklOIMW9SVZBTgorQlVHQVJJTiDFvUlWQU4KK0JVR0FSSU4gxb1JVkFOCitCVUdBUklOIEJPxaBLTworQlVHQVJJTiBCT1JJU0xBVgorQlVHQVJJTiBEQU5JQ0EKK0JVR0FSSU4gSUxJSkEKK0JVR0FSSU4gSVZBTkEKK0JVR0FSSU4gSkVWUk9TSU1BCitCVUdBUklOIExKSUxKQU5BCitCVUdBUklOIExKVUJPTUlSCitCVUdBUklOIE1BUklKQQorQlVHQVJJTiBNSUxPxaAKK0JVR0FSSU4gTUlMT1JBRAorQlVHQVJJTiBSQURJU0xBVgorQlVHQVJJTiBSQURPU0xBVgorQlVHQVJJTiBTSU5JxaBBCitCVUdBUklOIFNQQVNPSkUKK0JVR0FSSU4gU1RFVkFOCitCVUdBUklOIFZFTElCT1IKK0JVR0FSSU4gVkVTTkEKK0JVR0FSSU4gWk9SQU4KK0JVR0FSSU4gWk9SSUNBCitCVUdBUklOT1ZJxIYgTUFSR0FSRVRBCitCVUdBUklVIEpVTElKQU4KK0JVR0FSU0tJIMW9QVJLTworQlVHQVJTS0kgxb1JS0EKK0JVR0FSU0tJIMW9SVZBTiBESVBMIElORworQlVHQVJTS0kgxJBPUsSQRQorQlVHQVJTS0kgxJBPUsSQRQorQlVHQVJTS0kgxJBVUklDQQorQlVHQVJTS0kgQk9KQU5BCitCVUdBUlNLSSBCUkFOS08KK0JVR0FSU0tJIERJTUlUUklKRQorQlVHQVJTS0kgRElNSVRSSUpFCitCVUdBUlNLSSBEUkFHQU4KK0JVR0FSU0tJIERSQUdJQ0EKK0JVR0FSU0tJIERSQUdPTEpVQiBEUgorQlVHQVJTS0kgRFJBR09MSlVCCitCVUdBUlNLSSBEUkFHT1NMQVYKK0JVR0FSU0tJIERSQUdPU0xBVgorQlVHQVJTS0kgRFJBR09TTEFWCitCVUdBUlNLSSBEVcWgQU4gRFIKK0JVR0FSU0tJIERVxaBBTgorQlVHQVJTS0kgRFXFoElDQQorQlVHQVJTS0kgRFXFoElDQQorQlVHQVJTS0kgRFXFoEtPCitCVUdBUlNLSSBFVklDQQorQlVHQVJTS0kgSk9WQU4KK0JVR0FSU0tJIEpVTEtBCitCVUdBUlNLSSBLQVRBCitCVUdBUlNLSSBLUlNUQQorQlVHQVJTS0kgS1NFTklKQQorQlVHQVJTS0kgTEFaQVIKK0JVR0FSU0tJIExBWkFSCitCVUdBUlNLSSBNSUxBTgorQlVHQVJTS0kgTUlMQU4KK0JVR0FSU0tJIE1JTEVOQQorQlVHQVJTS0kgTUlMRU5LTworQlVHQVJTS0kgTUlMRVRBCitCVUdBUlNLSSBNSUxJQ0EKK0JVR0FSU0tJIE1JTE9SQUQKK0JVR0FSU0tJIE1JUkEKK0JVR0FSU0tJIE1JUkpBTkEKK0JVR0FSU0tJIE1JUkpBTkEKK0JVR0FSU0tJIE1JUk9TTEFWQQorQlVHQVJTS0kgTUlST1NMQVYKK0JVR0FSU0tJIE5BREEKK0JVR0FSU0tJIE5FREVMSktPCitCVUdBUlNLSSBOSUtPTEEKK0JVR0FSU0tJIE9MSVZFUkEKK0JVR0FSU0tJIFBBSkEKK0JVR0FSU0tJIFBBVkxFCitCVUdBUlNLSSBSQURPU0xBVgorQlVHQVJTS0kgUkFTVEtPCitCVUdBUlNLSSBSQVRPTUlSCitCVUdBUlNLSSBTQVZBCitCVUdBUlNLSSBTQVZBCitCVUdBUlNLSSBTTE9CT0RBTgorQlVHQVJTS0kgU0xPQk9EQU4KK0JVR0FSU0tJIFNMT0JPREFOCitCVUdBUlNLSSBTT0ZJSkEKK0JVR0FSU0tJIFNURVZBTgorQlVHQVJTS0kgU1RFVkFOCitCVUdBUlNLSSBTVEVWQU4KK0JVR0FSU0tJIFNURVZBTgorQlVHQVJTS0kgU1ZFVExBTkEKK0JVR0FSU0tJIFRBVEpBTkEKK0JVR0FSU0tJIFZPSklTTEFWQQorQlVHQVJTS0kgVk9KSVNMQVYKK0JVR0FSU0tJIFZPSklTTEFWCitCVUdBUlNLSSBaT1JBCitCVUdFTEogSVZBTgorQlVIQSBCUkFOS0EKK0JVSEEgUkFESVZPSkUKK0JVSEEgVlVLQcWgSU4KK0JVSE1JTEVSIEFHTkXFoAorQlVITUlMRVIgQVRJTEEKK0JVSE1JTEVSIEVWQQorQlVITUlMRVIgSk9TSVAKK0JVSE1JTEVSIEpPU0lQCitCVUhNSUxFUiBLQVJMTworQlVJxaBBIE1JTElOS08KK0JVSUxBIEFOQQorQlVJTEEgSVJJTkVKCitCVUlMQSBMSlVCSUNBCitCVUlMQSBNQUtTSU1JTElKQU4KK0JVSUxBIE1JUk9TTEFWCitCVUlMQSBTTEFWSUNBCitCVUlMQSBTTEFWT01JUgorQlVKQUsgRU1JTAorQlVKQUsgTUFUSUxEQQorQlVKQUsgU0FWQQorQlVKQU5EUknEhiBBTsSQRUxLQQorQlVKQU5EUknEhiBKT1ZBTgorQlVKQU5EUknEhiBMSlVCSUNBCitCVUpBTkRSScSGIE1BUklKQQorQlVKQU5EUknEhiBNSUxJVk9KCitCVUpBTkRSScSGIE1JVEFSCitCVUpBTkRSScSGIE5JS09MQQorQlVKQU5EUknEhiBQQVZMRQorQlVKQU5EUknEhiBQRVRBUgorQlVKQU5EUknEhiBTVkVUT1pBUgorQlVKQU5EUknEhiBWTEFESU1JUgorQlVKQVMgTUlMRU5LTworQlVKQVMgVkVOxIxFU0xBVgorQlVKRE/FoEEgU1RFVkFOCitCVUpET8WgSUsgQk9IT01JTAorQlVKRE/FoElLIEtMQVJBCitCVUpET8WgSUsgTUlST1NMQVYKK0JVSkRPxaBPIEnFoFRWQU4KK0JVSknFoEnEhiDFvUlWS08KK0JVSknEhiBCT1JJVk9KRQorQlVKTEEgRVRFTEtBCitCVUpMQSBKQVNNSU5BCitCVUpOT1ZJxIYgxJBPUsSQRQorQlVKTk9WScSGIE1JTElOS08KK0JVS0FMT1YgWk9SQQorQlVLQVJBIERVxaBBTktBCitCVUtBUklDQSBEQU5JQ0EKK0JVS0FSSUNBIEpPVkFOCitCVUtBVEtBIEFORFJFSgorQlVLQVRLQSBSQURPU0xBVgorQlVLQVRLTyBWTEFESU1JUgorQlVLQVRLT1YgSVZBTgorQlVLScSGIEpBS09WCitCVUtJTEnEhiBEUkFHQQorQlVLSUxJxIYgRFJBR0lDQQorQlVLSU4gTklLT0xBIERJUEwgSU5HCitCVUtJTkFDIMSQT1LEkEUKK0JVS0lOQUMgQklMSkFOQQorQlVLSU5BQyBCT0dVTUlMQQorQlVLSU5BQyBESU5BCitCVUtJTkFDIEdMSUdPUklKRQorQlVLSU5BQyBJVkFOCitCVUtJTkFDIEpVTEtBCitCVUtJTkFDIExBWkFSCitCVUtJTkFDIE1JTEFESU4KK0JVS0lOQUMgTUlMQU4KK0JVS0lOQUMgTUlMSUNBCitCVUtJTkFDIE1JTE9TQVZBCitCVUtJTkFDIE1JUktPCitCVUtJTkFDIE1JUk9TTEFWCitCVUtJTkFDIFJVxb1JQ0EKK0JVS0lOQUMgU0xBVktPCitCVUtJTkFDIFNUQU5LQQorQlVLSU5BQyBTVEVWQU4KK0JVS0lOQUMgVVJPxaAKK0JVS09WxIxBTklOIEFDQQorQlVLT1ZBxIxLSSBNSU9EUkFHCitCVUtPVkHEjEtJIFBFUkEKK0JVS09WQcSMS0kgU1ZFVE9aQVIKK0JVS09WQUMgQU5LSUNBCitCVUtPVkFDIEFUSUxBCitCVUtPVkFDIFNURVZBTgorQlVLT1ZBQyBWTEFETworQlVLT1ZBTEEgREVTQU5LQQorQlVLT1ZJxIxBTklOIFJFTEpBCitCVUtPVknEhiBBTkRSQcWgCitCVUtPVklDQSBESU1JVFJJSkUKK0JVS09WSUNBIFJBTktPCitCVUtUQSBOQURBCitCVUtUQSBaVk9OS08KK0JVS1VNSVJPVknEhiBNSUxPTUlSCitCVUtVTUlST1ZJxIYgTUlMT1JBRCBESVBMIElORworQlVLVVJFQ0tJIEJSQU5JU0xBVgorQlVLVVJFQ0tJIFNJTknFoEEKK0JVS1VSScSGIFRBVEpBTkEKK0JVS1VST1Ygxb1BUktPCitCVUtVUk9WIMW9SVZBTgorQlVLVVJPViDFvUlWQU4KK0JVS1VST1YgQk/FoEtPCitCVUtVUk9WIEJSQU5JU0xBViBEUiBQUk9GCitCVUtVUk9WIEtTRU5JSkEKK0JVS1ZBIFZFTElNSVIKK0JVS1ZJxIYgxb1FTEpLQQorQlVLVknEhiBBTEVLU0FOREFSCitCVUtWScSGIEJSQU5LTworQlVLVknEhiBCVURFCitCVUtWScSGIERBTkUKK0JVS1ZJxIYgREFOSUxPCitCVUtWScSGIERBTklMTworQlVLVknEhiBEUkFHQU4KK0JVS1ZJxIYgRFXFoEFOCitCVUtWScSGIElMSUpBCitCVUtWScSGIElMSU5LQQorQlVLVknEhiBKQU5LTworQlVLVknEhiBKRUxJU0FWRVRBCitCVUtWScSGIEpPVkFOCitCVUtWScSGIEtPVklMSktBCitCVUtWScSGIExKVUJPTUlSCitCVUtWScSGIE1BUklKQQorQlVLVknEhiBNQVJJTktPCitCVUtWScSGIE1JTEVOS08KK0JVS1ZJxIYgTUlMS0EKK0JVS1ZJxIYgTUlMT8WgCitCVUtWScSGIE1JTE/FoAorQlVLVknEhiBNSUxPxaAKK0JVS1ZJxIYgTUlMT1JBRAorQlVLVknEhiBNSVJPU0xBVgorQlVLVknEhiBNTEFERU4KK0JVS1ZJxIYgTk9WSUNBCitCVUtWScSGIFJBRE9WQU4KK0JVS1ZJxIYgU0xBVklDQQorQlVLVknEhiBTT0ZJSkEKK0JVS1ZJxIYgU1RFVkFOCitCVUtWScSGIFNWRVRPWkFSCitCVUtWScSGIFRPTUlTTEFWCitCVUtWScSGIFZFTElNSVIKK0JVS1ZJxIYgVkxBRE8KK0JVTEFJxIYgUkVMSkEKK0JVTEFKScSGIMSQVVJPCitCVUxBSknEhiBEQU5JQ0EKK0JVTEFKScSGIE1JT0RSQUcKK0JVTEFKScSGIE5BVEFMSUpBCitCVUxBSknEhiBORURFTEpLTworQlVMQUpJxIYgVkxBRElNSVIKK0JVTEFLScSGIFZVS0HFoElOCitCVUxBVE9WScSGIEFMRUtTQU5EQVIKK0JVTEFUT1ZJxIYgQlJBTklTTEFWCitCVUxBVE9WScSGIERJTUlUUklKRQorQlVMQVRPVknEhiBEUkFHQU4KK0JVTEFUT1ZJxIYgRFJBR0FOCitCVUxBVE9WScSGIERVxaBBTktBCitCVUxBVE9WScSGIERVxaBBTgorQlVMQVRPVknEhiBHUkFESU1JUgorQlVMQVRPVknEhiBJTElKQQorQlVMQVRPVknEhiBNSUxBRElOCitCVUxBVE9WScSGIE1JTElKQU5BCitCVUxBVE9WScSGIE1JTElOS08KK0JVTEFUT1ZJxIYgTUlMVVRJTgorQlVMQVRPVknEhiBNT01JUgorQlVMQVRPVknEhiBOSUtPTEEKK0JVTEFUT1ZJxIYgTklLT0xBCitCVUxBVE9WScSGIE5PVkFLCitCVUxBVE9WScSGIFBBVkxFCitCVUxBVE9WScSGIFBFUk8KK0JVTEFUT1ZJxIYgUFJFRFJBRworQlVMQVRPVknEhiBSQURNSUxPCitCVUxBVE9WScSGIFJBRE9OSkEKK0JVTEFUT1ZJxIYgU0FWQQorQlVMQVRPVknEhiBTTEHEkEFOQQorQlVMQVRPVknEhiBTUEFTQQorQlVMQVRPVknEhiBTVkVUT1pBUgorQlVMQVRPVknEhiBWT0pJTgorQlVMQVRPVknEhiBWT0pJU0xBVgorQlVMQVRPVknEhiBaTEFUSUpBCitCVUxBVE9WScSGIFpPUkFOCitCVUxFVElOQUMgTUlMT1ZBTgorQlVMRVZTS0EgVkVSQQorQlVMScSGIMWgVcSGTworQlVMScSGIEFESUxBCitCVUxJxIYgQU5URQorQlVMScSGIEFSSUYKK0JVTEnEhiBCT1JJUworQlVMScSGIERSQUdBTgorQlVMScSGIERSQUdPTEpVQgorQlVMScSGIERVxaBBTgorQlVMScSGIE1BUkEKK0JVTEnEhiBNQVJJSkEKK0JVTEnEhiBNQVJJTkEKK0JVTEnEhiBPWlJFTgorQlVMScSGIFBFUlNBCitCVUxJxIYgUEVUQVIKK0JVTEnEhiBQUkVEUkFHCitCVUxJxIYgU01JTEpBCitCVUxJxIYgU1RFVkFOCitCVUxJxIYgVE9NSVNMQVYKK0JVTElLLUlMRUFOQSBET1JJTkEKK0JVTEogxJBVUkEKK0JVTEogQk9TSUxKS0EKK0JVTEogTUlMQU4KK0JVTErEjElLIEVVR0VOCitCVUxKxIxJSyBKT0FLSU0KK0JVTErEjElLIE1JSEFKTE8KK0JVTErEjElLIE5JS09MQQorQlVMSsSMSUsgUEFVTElOQQorQlVMSkFLIFJBVEtPCitCVUxKQU4gRFJBR1VUSU4gRElQTCBJTkcKK0JVTEpBTiBQRVRBUgorQlVMSkFOIFNMQVZJQ0EKK0JVTEpJxIYgSUxJSkEKK0JVTEpJxIYgSkVMRU5BCitCVUxKScSGIEpPVkFOCitCVUxKScSGIExKVUJJQ0EKK0JVTEpJxIYgTUlMQU4KK0JVTEpJxIYgTUlMRQorQlVMSknEhiBOT1ZBSworQlVMSknEhiBQQVZPCitCVUxKScSGIFJBRE9WQU4KK0JVTEpJxIYgU0VLVUxBCitCVUxKScSGIFNORcW9QU5BCitCVUxKScSGIFNURVZBCitCVUxKScSGIFZBU08KK0JVTEpJTiBCUkFOS08KK0JVTEpJTiBTTEFWS08KK0JVTEpJTiBUT01JU0xBVgorQlVMSk9WxIxJxIYgU1RJUEFOCitCVUxKVUdJxIYgUkFET0pFCitCVUxPVkFOIEJSQU5JU0xBVgorQlVMT1ZJxIYgSVJJTkVKCitCVUxVTSBQRVRBUgorQlVMVVQgQU7EkEVMS08KK0JVTFVUIE5PVklDQQorQlVNQiBBTlRPTgorQlVNQkFST1NLSSBSQURBCitCVU1CScSGIE1JTEFESU4gRFIKK0JVTUJJxIYgUkFETUlMQQorQlVNQknEhiBSQUpLTworQlVNQknEhiBWRUxKS08KK0JVTUJJxIYgVkVMSktPCitCVU7EjEnEhiDEkE9SxJBFCitCVU7EjEnEhiBBTEVLU0FOREFSCitCVU7EjEnEhiBBTEVLU0FOREFSCitCVU7EjEnEhiBEUkFHQU4KK0JVTsSMScSGIE1BUklKQU5BCitCVU7EjEnEhiBNSUxBTgorQlVOQUogTVVIQU1FRAorQlVOREFMRVNLSSBNSUxPxaAKK0JVTkRBTE8gQlJBTktPCitCVU5EQUxPIE5FQk9KxaBBCitCVU5EQUxPIE5JS09MQQorQlVOREFMTyBTTEFWS08KK0JVTkRBTE8gU0xPQk9EQU4KK0JVTkRBTE8gU0xPQk9EQU4KK0JVTkRJxIYgQU5UVU4KK0JVTkVUQSBBTEVLU0FOREFSCitCVU5FVEEgTUlMQU4KK0JVTkVUQSBTTkXFvUFOQQorQlVORVRBIFZVS09TQVZBCitCVU5JxIYgRFJBR0FOCitCVU5JxIYgTUlMQU4KK0JVTkpBQyBWQVNPCitCVU5KQUMgVk9KSVNMQVYKK0JVTkpFVsSMRVYgxJBPUsSQRQorQlVOSkVWxIxFViBBTEVLU0FOREFSCitCVU5KRVbEjEVWIFNSxJBBTgorQlVOSkVWQcSMS0kgxb1JVk9KSU4KK0JVTkpFVkHEjEtJIEJSQU5LTworQlVOSkVWQcSMS0kgRFJBR0lOSkEKK0JVTkpFVkHEjEtJIEpPVkFOS0EKK0JVTkpFVkHEjEtJIExKVUJJQ0EKK0JVTkpFVkHEjEtJIE1JTEVOQQorQlVOSkVWQcSMS0kgVk9KSVNMQVYKK0JVTkpJSyDFoEFORE9SCitCVU5KSUsgRFJBR0lDQQorQlVOSklLIElWQU4KK0JVTkpJSyBKT1NJUAorQlVOSklLIEtBUk9MSgorQlVOSklLIFpPTFRBTgorQlVOSklLIFpPTFRBTgorQlVOT1ZJxIYgRFJBR1VUSU4KK0JVTk9WScSGIExBWkFSCitCVU5UIE1JSk8KK0JVUsSMRVIgVE9NSVNMQVYKK0JVUsWgScSGIFRJTktBCitCVVJBSSBBTEVLU0FOREFSCitCVVJBSSBBTkRSQcWgCitCVVJBSSBLQVJPTEoKK0JVUkFJIEtBVElDQQorQlVSQUkgUEVUQVIKK0JVUkFKSSBKT1NJUAorQlVSQU5KIEJFTEEgRFIgTEVLQVIKK0JVUkFOSiBFTkRSRQorQlVSQU5KIE1BUlRBCitCVVJBTkogTkFORE9SCitCVVJBTkogU0lET05JSkEKK0JVUkFOSkkgTUFSSUpBCitCVVJBTkpJIE5BTkRPUgorQlVSQVpPUiBEUkFHT0pBCitCVVJBWk9SIFpEUkFWS08KK0JVUkJBSCBHRVJIQVJECitCVVJCQU4gRklMSVAKK0JVUkRBIE1FTElOREEKK0JVUkRBIFNUQU5JU0xBVgorQlVSRVZJxIYgTUlMScSGCitCVVJHScSGIERSQUdPSkUKK0JVUkdJxIYgSk9WQU4KK0JVUkdJxIYgUEVUQVIKK0JVUkdJSkHFoEVWIFZFU0VMSU4KK0JVUknEhiDEkE9LTyBESVBMIElORworQlVSScSGIERJTUlUUklKRQorQlVSScSGIERVxaBBTiBEUgorQlVSScSGIERVxaBBTktBCitCVVJJxIYgRlJBTkpBCitCVVJJxIYgR09SREFOQQorQlVSScSGIEtBVElDQQorQlVSScSGIEtPU1RBCitCVVJJxIYgTEVPTk9SQQorQlVSScSGIE1JTElWT0pFCitCVVJJxIYgTkFEQQorQlVSSkFOIMSQT1LEkEUKK0JVUkpBTk9WU0tJIFNUT0pBTgorQlVSS0EgRUxFT05PUkEgRFIKK0JVUktBIEVNSUxJSkEKK0JVUktBIEVSxb1FQkVUCitCVVJLQSBKT1ZBTgorQlVSS0EgTUlST1NMQVYKK0JVUktBIFBBVkxFCitCVVJLQSBQRVRBUgorQlVSS0EgU09GSUpBCitCVVJLQSBTVEVWQU4KK0JVUktBIFNURVZBTgorQlVSS0VSVCBFRFZJTgorQlVSS0lOIMW9SVZBTgorQlVSS0lOIMSQT0tBCitCVVJMQUsgTkFUQUxJSkEKK0JVUk1BSkEgTklLT0xBCitCVVJNVUTFvUlKQSBCUkFOS08KK0JVUk1VRMW9SUpBIE1JTEFOCitCVVJNVUTFvUlKQSBOSUtPTEEKK0JVUk5BxIYgRkVMSUtTCitCVVJOQcSGIEpFTElTQVZFVEEKK0JVUk5BxIYgU1RFVkFOCitCVVJOQcSGIFZMQURJTUlSCitCVVJOT1YgSVZBTkEKK0JVUk5PViBJVkFOCitCVVJOT1YgVkVTRUxJTktBCitCVVJPVkFDIE5BREEKK0JVUlNBxIYgREFSSU5LQQorQlVSU0HEhiBEUkFHT1NMQVZBIERJUEwgUFJBVk5JSworQlVSU0HEhiBKT1ZBTgorQlVSU0HEhiBMSlVCT01JUgorQlVSU0HEhiBNSUxBTktBCitCVVJTQcSGIE1JTEFOCitCVVJTQcSGIE1JTElDQQorQlVSU0HEhiBNSUxPUkFECitCVVJTQcSGIE1JUktPCitCVVJTQcSGIE5JS09MQQorQlVSU0HEhiBQRVJBCitCVVJTQcSGIFBFUlNBCitCVVJTQcSGIFNMT0JPREFOCitCVVJTQcSGIFNMT0JPREFOCitCVVJTQcSGIFZKRUtPU0xBVkEKK0JVUlNBxIYgVkxBRE8gRElQTCBQUkFWTklLCitCVVJTScSGIFNURVZBTgorQlVSU0nEhiBWTEFESU1JUgorQlVSVcWgIEFMRUtTQU5EUkEKK0JVUlXFoCBCT8WgS08KK0JVUlVNRMW9SUpBIFJBREUKK0JVUlpBTiBNSVJKQU5BCitCVVJaRUxJxIYgTUlMS0EKK0JVUlpFTEnEhiBaTEFUQQorQlVTQVLEjEVWScSGIFNMQVZJQ0EKK0JVU0FSxIxFVknEhiBTVEVWQU4KK0JVU0lKQSBMSlVCSU5LQQorQlVTSUpBIE1JTEFOCitCVVNPViBBTEVLU0lKRSBESVBMIElORworQlVTT1YgSUdPUgorQlVTVUxBRMW9ScSGIE1VU1RBRkEKK0JVVEEgTEFaQVIKK0JVVEEgVk9KSVNMQVYgRFIKK0JVVEHFoCBGRVJFTkMKK0JVVEVSIEtTRU5JSkEKK0JVVEVSRVIgScWgVFZBTgorQlVURVJFUiBKVUxJSkEKK0JVVEVSSU4gREXFoEEKK0JVVE9SIEFMRUtTQU5EQVIKK0JVVE9SIEVORFJFCitCVVRPUiBNSUhBSkxPCitCVVRPUkFDIEpPU0lQCitCVVRPUkFDIE1BUklKQQorQlVUT1JBQyBaT1JBTgorQlVUVUxJSkEgQlJBTklTTEFWCitCVVRVUk9WScSGIFJBVEtPCitCVVRVUk9WScSGIFNWRVRPWkFSCitCVVpBIElSRU5BCitCVVpBIEtPUk5FTElVCitCVVpBIE1JSEFMSgorQlVaQcWgIMWgQU5ET1IKK0JVWkHFoCBKT1NJUAorQlVaQcWgIEpPU0lQCitCVVpBxaAgTEFKT8WgCitCVVpBxaAgUEFWQU8KK0JVWkHFoCBQQVZMRQorQlVaQcWgSSBKT1NJUAorQlVaQcWgSSBNSUhBSkxPCitCVVpBRMW9ScSGIExKSUxKQU5BCitCVVpBRMW9ScSGIE1JUkpBTkEKK0JVWkFExb1JSkEgTkVOQUQKK0JVWkFExb1JSkEgTk9WQUsKK0JVWkFMSktPIEpVU1VGIERJUEwgSU5HCitCVVpBTsSMScSGIEpPU0lQCitCVVpBTsSMScSGIE5BREXFvURBCitCVVpBTlNLSSBNScWgQQorQlVaQVJFVknEhiBCUkFOS08KK0JVWkFSRVZJxIYgUkFET0pLQQorQlVaQVJFVknEhiBSVcW9QQorQlVaQVJPViDFvUlWQU4KK0JVWkFST1YgSk9WQU4KK0JVWkFST1YgWk9SQQorQlVaQVJTS0kgxJBPUsSQRQorQlVaR08gSkFOT8WgCitCVVpPR0FOSiBNQVJJSkEKK0NBQ0tPIE1BUklKQQorQ0FKScSGIE1JTE/FoAorQ0FKTkVSIEpFTEVOQQorQ0FKTkVSIExKVUJJQ0EKK0NBSk5FUiBTVEVWQU4KK0NBSk5FUiBTVEVWQQorQ0FLScSGIERVxaBBTktBCitDQUtJxIYgR09SREFOQQorQ0FLScSGIEpFTEVOS08KK0NBS0nEhiBNSVJPU0xBVgorQ0FLScSGIFBFVEFSCitDQUtJxIYgU1RFVkFOCitDQU5ESVIgRlJBTkpBCitDQU5JxIYgTEpJTEpBTkEKK0NBTknEhiBWRUxJTUlSCitDQVAgxJBVUkEKK0NBUCBCT8WgS08KK0NBUCBKT0FLSU0KK0NBUCBKT1ZBTgorQ0FQIE5FTkFECitDQVAgTkVOQUQKK0NBUCBSQURPSktBCitDQVAgVEFNQVJBCitDQVBBUi1KQU5LT1ZJxIYgVkFMRVJJSkEKK0NBUEFSIEpBTk/FoAorQ0FQQVIgSk9WQU4KK0NBUEFSIE1BUklKQQorQ0FQQVIgTUFSSUpBCitDQVBJSyBKT1NJUAorQ0FQSUsgTEpVREVWSVQKK0NBUiBNQVJJSkEKK0NBUkFOIEJPxaBLTworQ0FSQU4gR0VPUkdFCitDQVJBTiBQRVJTQQorQ0FSQU4gUEVUQVIKK0NBUkFOT1ZJxIYgU1RBTk9KRQorQ0FSRVZJxIYgxb1JVkFOCitDQVJFVknEhiDFvUlWS0EKK0NBUkVWScSGIMSQT1LEkEUKK0NBUkVWScSGIERVxaBBTgorQ0FSRVZJxIYgRVNURVIKK0NBUkVWScSGIEtBVElDQQorQ0FSRVZJxIYgTUlIQUpMTworQ0FSRVZJxIYgTUlMRU5BCitDQVJFVknEhiBNSUxFCitDQVJFVknEhiBOQURBCitDQVJFVknEhiBQRVRBUgorQ0FSRVZJxIYgU0FWQQorQ0FSRVZJxIYgU0xBVktPCitDQVJFVknEhiBTTEFWS08KK0NBUkVWScSGIFNURVZBTgorQ0FSRVZJxIYgU1ZFVE9aQVIKK0NBUknEjEnEhiBTTEFWS08KK0NBUknEhiBBTkRSSUpBCitDQVJJxIYgQlJBTktPCitDQVJJxIYgR09KS08KK0NBUknEhiBMQVpBUgorQ0FSScSGIE1BUklKQQorQ0FSScSGIE1JUkpBTkEKK0NBUknEhiBTTEFWS08gRFIgUFJPRgorQ0FSScSGIFNMT0JPREFOIERSCitDQVJJxIZFVknEhiBNSUxFTktPCitDQVJPIEdPUkFOCitDQVRJxIYgTEFaQVIKK0NBVk5JxIYgTUFSVEEKK0NBVk5JxIYgU1ZFVExBTkEKK0NBWklOIERSQUdBTgorQ0UgUEFWTEUKK0NFQ0VMIE1BUklKQQorQ0VHTEVESSDEkFVSTworQ0VIT0xBIEZFUkVOQworQ0VLScSGIEJPUklTTEFWCitDRUtJxIYgQk9SSVZPSkUKK0NFS0nEhiBCT1JLTworQ0VLScSGIEpVTEtBCitDRUtJxIYgUEVUQVIKK0NFS0nEhiBSQURNSUxBCitDRUtVxaAgRVZBCitDRUxJxIYgQlJBTktPCitDRUxJTiBNSUxBTgorQ0VMSU4gTUlMQU4KK0NFTkFKIFRBSElSCitDRU5ERVIgQU5HRUxJTkEKK0NFTknEhiBNSUxPVkFOCitDRVAgU1RFVkFOCitDRVBGIFNURVZBTgorQ0VSR09MIFZJRE9TQVZBCitDRVJJxIYgREFOSUNBCitDRVJJxIYgTUVITUVECitDRVJOQSBSVURPTEYKK0NFUk9WQUMgWk9SS0EKK0NFUk9WScSGIEJBVFJJxIYKK0NFUk9WScSGIEJPR0RBTgorQ0VST1ZJxIYgQk9KQU5BCitDRVJPVknEhiBEQVJJTktBCitDRVJPVknEhiBJS09OSUpBCitDRVJPVknEhiBMSlVCSVZPSkUKK0NFUk9WScSGIE1JxaBPCitDRVJPVknEhiBORU5BRAorQ0VST1ZJxIYgTk9WQUsKK0NFUk9WScSGIFBFVEFSCitDRVJPVknEhiBTTE9CT0RBTgorQ0VST1ZJxIYgU1JFVEVOCitDRVJPVknEhiBUT01JU0xBVgorQ0VST1ZJxIYgVVJPxaAKK0NFUk9WU0tJIERBTklKRUwKK0NFU05BSyBKQU5LTworQ0VTTkFLIFBBVkxFCitDRVNOQUsgWkxBVEtPCitDRVRFTkpJIEpPVkFOCitDRVRJTkEgSk9WQU4KK0NFVElOQSBMSklMSkFOQQorQ0VWQyBGUkFOSkEKK0NFVkMgU09OSkEKK0NJQlJJxIYgVE9ET1IKK0NJQlVMQSDEkFVSQQorQ0lCVUxBIEJFTEEKK0NJQlVMQSBKQU5LTworQ0lCVUxBIEpPVkFOCitDSUJVTEEgSk9WQU4KK0NJQlVMQSBNQVJKRU5LQQorQ0lCVUxBIE1JxaBBCitDSUJVTEEgUEVSQQorQ0lDRVJJIEZFUkVOQworQ0lDRVJJIEtBUk9MSgorQ0lDRVJJIExBU0xPCitDSUNFUkkgTUFUSUxEQQorQ0lDRVJJIFBFUkEKK0NJQ0VSSSBWSU5LTworQ0lDS0EgxaDEhkVGQU4KK0NJQ0tBIEpBTgorQ0lDTUlMIEJPxb1JREFSCitDSUNNSUwgQlJBTktPCitDSUNNSUwgS1JTVE8KK0NJQ01JTCBNQVJJSkEKK0NJQ01JTCBNQVJLTworQ0lDTUlMIE1JTEFOCitDSUNNSUwgU1RPSkFOCitDSUNNSUwgVEFUSkFOQQorQ0lDTUlMIFpPUkFOCitDSUNNSUxPVknEhiBEUkFHQU4KK0NJQ01JTE9WScSGIFpPUktBCitDSUNPIERVxaBBTgorQ0lDVkFSSU4gTEpVQk9NSVIKK0NJRlJJxIYgR0FMSUIKK0NJR0FOIEFOVFVOCitDSUdBTiBJVkFOCitDSUdBTkogSk9TSVAKK0NJR0FOT1ZJxIYgQlJBTktPCitDSUdBTk9WScSGIERBTkUKK0NJR0FOT1ZJxIYgRFXFoEFOCitDSUdBTk9WScSGIE1JTE9SQUQKK0NJR0FOT1ZJxIYgT1NUT0pBCitDSUdBTk9WScSGIFJBSktPCitDSUdBTk9WScSGIFNURVZPCitDSUdJxIYgSVZBTgorQ0lHTEVSIFNORcW9QU5BCitDSUdMSkVDS0kgRlJBTkpBCitDSUdMSkVDS0kgVkVSQQorQ0lLT1JBIMW9VcW9QU5BCitDSUtPVEEgxb1FTEpLTworQ0lLT1RBIE9MR0EKK0NJS09UQSBTTEFWS08KK0NJS1XFoEEgSk9WQU4KK0NJS1XFoEEgWk9SQU4KK0NJTUJBTCBBTEVLU0FOREFSCitDSU1CQUwgQUxFS1NBTkRBUgorQ0lNQkFMIFRJQk9SCitDSU1CQUwgVkVSSUNBCitDSU1CQUxKRVZJxIYgWkxBVEFOQQorQ0lNRVJNQU4gTEFESVNMQVYKK0NJTUVSTUFOIFNNSUxKQQorQ0lOQ09WScSGIMW9SVZLQQorQ0lOREVSIFZJREEKK0NJTkRSScSGIMSQT1LEkEUKK0NJTkRSScSGIEVSxb1FQkVUCitDSU5EUknEhiBQRVRBUiBEUgorQ0lOR0FSQSBBTEVLU0FOREFSCitDSU5HRUxJIE1JTEVOQQorQ0lOR0kgS0FSTE8KK0NJTktMRVIgSkVMSVNBVkVUQSBESVBMIElORworQ0lOS0xFUiBKVUxJSkUKK0NJTktMRVIgS0FMTUFOIERJUEwgSU5HCitDSU5LTEVSIEtBTE1BTiBESVBMIElORworQ0lOS0xFUiBLQUxNQU4KK0NJTktMRVIgTUFHRE9MTkEKK0NJTktPQ0tJIMSQT1LEkEUKK0NJTktPQ0tJIFZPSklTTEFWCitDSVBSVcWgIEFMRUtTQU5EUkEKK0NJUkJVUyBNQVJJSkEKK0NJUkdFUiBEVcWgQU5LQQorQ0lST0sgxaBBTkRPUgorQ0lUS09WScSGIElWS0EKK0NJVEtPVknEhiBTTE9CT0RBTgorQ0lWUknEhiBNSUxLQQorQ01JTEpBTk9WScSGIERSQUdJxaBBCitDT0NFSyDFoFRFRkFOSUpBCitDT0NFSyBJTVJFCitDT0NFSyBKT1NJUAorQ09DRUsgU1RFVkFOCitDT0NJTiBNSVJBCitDT0NPIFZBSERFVEEKK0NPTEnEhiBCT8W9SURBUgorQ09MScSGIEJPR09TQVYKK0NPTEnEhiBGUkFOSkEKK0NPTEnEhiBKT1NJUAorQ09MScSGIEtBVElDQQorQ09MScSGIExBRElTTEFWCitDT0xJxIYgU1ZFVExBTkEKK0NPTknEhiBEUkFHSU5KQQorQ09OScSGIEpBTktPIE1SIElORworQ09OScSGIE1JT0RSQUcKK0NPUEtPViDFvUVMSktPCitDUkVQScSGIExBRElTTEFWCitDUkVQVUxJxIYgVklET1NBVkEKK0NSRVBVTEpBIFRPRE9SCitDUkVWQVIgQk9HREFOCitDUkVWQVIgTUlMVVRJTiBESVBMIElORworQ1JFVkFSIFNJTUEKK0NSRVZBUiBTTEFWS08KK0NSS1ZFTkpBS09WIERBTklDQQorQ1JLVkVOSkFLT1YgRFXFoEFOS0EKK0NSS1ZFTkpBS09WIFNVTFRBTklKQQorQ1JOxIxFVknEhiBEQVJJTktBCitDUk7EjEVWScSGIE1JUktPCitDUk7EjEVWScSGIE1JUktPCitDUk7EjEVWScSGIE5FREVMSktBCitDUk7EjEVWScSGIFNMQVZLTworQ1JOxIxFVknEhiBWRVJBCitDUk7EjEVWScSGIFZMQURPCitDUk5BREFLIFZMQVRLTworQ1JOSSBWRVJJQ0EKK0NSTkkgWk9SSUNBCitDUk5JxIYgQlJBTktBCitDUk5JxIYgRFJBR0FOCitDUk5JxIYgR09SQU4KK0NSTknEhiBNQVJLTworQ1JOScSGIE1JTEFOCitDUk5JxIYgTUlMVVRJTgorQ1JOScSGIE5JS09MQQorQ1JOScSGIE9TVE9KQQorQ1JOScSGIFJBRE9NSVIKK0NSTknEhiBTT0ZJSkEKK0NSTknEhiBVR0xKRcWgQQorQ1JOScSGIFZBU0EKK0NSTknEhiBWRVJBCitDUk5KQUMgTUlMRU5BCitDUk5KQUsgxb1JVkFOS0EKK0NSTkpBS09WIERJTUlUUklKRQorQ1JOSkFOSU4gQlJBTklTTEFWQQorQ1JOSkFOSU4gWkFHT1JLQQorQ1JOSkFOU0tJLcSMRU5HRVJJIEtSSVNUSU5BCitDUk5KQU5TS0kgxb1BUktPCitDUk5KQU5TS0kgxJBPS0EKK0NSTkpBTlNLSSBCVURJTUtBCitDUk5KQU5TS0kgSVZBTgorQ1JOSkFOU0tJIEpFTEVOQQorQ1JOSkFOU0tJIEtBVElDQQorQ1JOSkFOU0tJIEtVWk1BTgorQ1JOSkFOU0tJIExBWkFSCitDUk5KQU5TS0kgUkFESVZPSgorQ1JOSkFOU0tJIFNBTkpBCitDUk5KQU5TS0kgU1RFVkFOCitDUk5KQU5TS0kgVkxBRElNSVIKK0NSTkpBTlNLSSBaT1JBTgorQ1JOSkFOU0tJIFpPUkFOCitDUk5LT1ZJxIYgTklLT0xBCitDUk5LT1ZJxIYtU0FWScSGIExKSUxKQU5BCitDUk5LT1ZJxIYgWkxBVEEKK0NSTk9CQVJBQyBEVcWgQU4KK0NSTk9CQVJBQyBKT1ZBTgorQ1JOT0JSTkpBIE1JTEFOCitDUk5PQlJOSkEgTUlSSkFOQQorQ1JOT0JSTkpBIFBFVEFSCitDUk5PR0xBVkFDIE1JSEFKTE8KK0NSTk9HTEFWQUMgUkFET1NMQVYKK0NSTk9HT1LEjEVWScSGIEpFTElDQQorQ1JOT0dPUkFDIMSQT0tPCitDUk5PR09SQUMgQk9SScWgQQorQ1JOT0dPUkFDIEJPU0lMSktBCitDUk5PR09SQUMgRFJBR0FOCitDUk5PR09SQUMgRFJBR09MSlVCCitDUk5PR09SQUMgRFXFoEFOCitDUk5PR09SQUMgTUlMQU4KK0NSTk9HT1JBQyBNSUxLQQorQ1JOT0dPUkFDIE1JTE9TQVYKK0NSTk9HT1JBQyBNSVJPU0xBVgorQ1JOT0dPUkFDIFBBVkxFCitDUk5PR09SQUMgU0xPQk9EQU4KK0NSTk9HT1JBQyBTVkVUTEFOQQorQ1JOT0dPUkFDIFZFTElNSVIgRFIKK0NSTk9HT1JBQyBaRFJBVktPCitDUk5PR09SQUMgWk9SSUNBCitDUk5PSkEgQU5URQorQ1JOT0pBIFNMQVZJQ0EKK0NSTk9KQcSMS0kgQk9HREFOCitDUk5PSkHEjEtJIERBTklDQSBEUgorQ1JOT0pBxIxLSSBEQU5JTE8KK0NSTk9KQcSMS0kgRFJBR0FOCitDUk5PSkHEjEtJIERSQUdPTUlSCitDUk5PSkHEjEtJIEdPUkRBTkEKK0NSTk9KQcSMS0kgSk9WQU4KK0NSTk9KQcSMS0kgS0FUSUNBCitDUk5PSkHEjEtJIE1JTEVOQSBEUgorQ1JOT0pBxIxLSSBNSUxPxaAKK0NSTk9KQcSMS0kgTUxBREVOCitDUk5PSkHEjEtJIE9CUkFECitDUk5PSkHEjEtJIE9CUkFECitDUk5PSkHEjEtJIFJBRE1JTEEKK0NSTk9KQcSMS0kgU09GSUpBCitDUk5PSkHEjEtJIFZMQURJTUlSCitDUk5PSkHEjEtJIFpPUklDQQorQ1JOT0tSQUsgSk9WQU4KK0NSTk9LUkFLIE1JTE/FoAorQ1JOT0tSQUsgU1RFVkFOCitDUk5PTUFSS09WScSGIEJPR0RBTgorQ1JOT01BUktPVknEhiBEVcWgQU4KK0NSTk9NQVJLT1ZJxIYgRFXFoEFOCitDUk5PTUFSS09WScSGIEdPSktPCitDUk5PTUFSS09WScSGIExVS0EKK0NSTk9NQVJLT1ZJxIYgTklLT0xBCitDUk5PTUFSS09WScSGIFBFVEFSCitDUk5PTUFSS09WScSGIFJBTktPCitDUk5PTUFSS09WScSGIFNUT0pBTgorQ1JOT01BUktPVknEhiBWRVJJQ0EKK0NSTk9NVVQgTUlIQUpMTworQ1JWRU5JIMW9QVJLTworQ1JWRU5JIEFOQQorQ1JWRU5JIEJJU0VSS0EKK0NSVkVOSSBEUkFHQU4KK0NSVkVOSSBNQVJLTworQ1JWRU5JIE1JTEFOCitDUlZFTkkgTUlMRU5LTworQ1JWRU5JIE1JT01JUgorQ1JWRU5JIFNJTUEKK0NSVkVOSSBTVEVWQU4KK0NSVkVOSSBTVEVWQU4KK0NSVkVOS08gSkFOS08KK0NSVkVOS08gTUlMQU4KK0NSVkVOS08gUkFET01JUgorQ1JWRU5LT1YgQk9SSVNMQVYKK0NSVkVOS09WIE1JTE9TQVZBCitDUlZFTktPViBQRVRBUgorQ1JWRU5LT1ZJxIYgxJBPUsSQRQorQ1JWRU5LT1ZJxIYgxJBVUsSQSUNBCitDUlZFTktPVknEhiBQRVRBUgorQ1JWRU5LT1ZJxIYgUkFERU5LTworQ1JWRU5LT1ZJxIYgU0lOScWgQSBEUgorQ1JWRU5LT1ZJxIYgVklUT01JUgorQ1VDQUsgTUlSSkFOQQorQ1VDQUsgUkFISU0KK0NVQ0nEhiBBTEVLU0FOREFSCitDVUNJxIYgQk9SSVNMQVYKK0NVQ0nEhiBHSU5BCitDVUNJxIYgSkVMS0EKK0NVQ0nEhiBMSklMSkFOQQorQ1VDScSGIFNUQU5BCitDVUNJxIYgU1RBTk9KTE8KK0NVQ0nEhiBWRVJBCitDVUNJxIYgVkVTTkEKK0NVQ0nEhiBWTEFESU1JUgorQ1VDT1ZJxIYgUkFGRVQKK0NVR0xJIEpPVkFOCitDVUtJxIYgUkFEQQorQ1VLScSGIFJBRE9KSUNBCitDVUtJxIYgU1ZFVE9aQVIKK0NVTkpBSyBNSUxVVElOCitDVVBBxIYgU1ZFVE9NSVIgRElQTCBQUkFWTklLCitDVVBBUknEhiBUT01BCitDVVJBS09WScSGIE1JTElWT0pFCitDVkVKQU5PViBKRUxFTkEKK0NWRUpBTk9WIE5FQk9KxaBBCitDVkVKQU5PViBQUkVEUkFHCitDVkVKQU5PViBWRUxJQk9SCitDVkVKQU5PVknEhiBLU0VOSUpBCitDVkVKQU5PVknEhiBMQVpBUgorQ1ZFSkFOT1ZJxIYgTkFEQQorQ1ZFSkFOT1ZJxIYgTklLT0xBCitDVkVKQU5PVknEhiBTUE9NRU5LQQorQ1ZFSkFOT1ZJxIYgVklET1NBVkEKK0NWRUpBTk9WScSGIFZPSklTTEFWCitDVkVKQU5PVknEhiBaT1JJQ0EKK0NWRUpJxIYgxIxFRE9NSVIKK0NWRUpJxIYgxb1BUktPCitDVkVKScSGIMW9SVZPSklOCitDVkVKScSGIMSQT1LEkEUgRFIKK0NWRUpJxIYgxJBVUsSQSU5LQQorQ1ZFSknEhiBBTEVLU0FOREFSIERSCitDVkVKScSGIEFMRUtTQU5EQVIKK0NWRUpJxIYgQUxFS1NBTkRBUgorQ1ZFSknEhiBCT8W9SURBUgorQ1ZFSknEhiBCT1JJVk9KCitDVkVKScSGIERSQUdBTgorQ1ZFSknEhiBEUkFHT1NMQVYKK0NWRUpJxIYgRFJBR1VUSU4KK0NWRUpJxIYgSUdOSkFUCitDVkVKScSGIElWQU4KK0NWRUpJxIYgSkVMRU5BCitDVkVKScSGIEtBVElDQQorQ1ZFSknEhiBMQVpBUgorQ1ZFSknEhiBNSUxBTgorQ1ZFSknEhiBNSUxBTgorQ1ZFSknEhiBNSUxJU0FWCitDVkVKScSGIE1JTE/FoAorQ1ZFSknEhiBNSU9EUkFHCitDVkVKScSGIE1JUkpBTkEKK0NWRUpJxIYgTkFERcW9REEKK0NWRUpJxIYgTkVERUxKS0EKK0NWRUpJxIYgTklLT0xBIERJUEwgSU5HCitDVkVKScSGIE5JS09MQQorQ1ZFSknEhiBPTEdBCitDVkVKScSGIFBBVkxFCitDVkVKScSGIFJBRE9TTEFWCitDVkVKScSGIFJBRE9WQU4KK0NWRUpJxIYgUlXFvUlDQQorQ1ZFSknEhiBTTEFWT0xKVUIKK0NWRUpJxIYgU1RFVkFOCitDVkVKScSGIFNURVZBTgorQ1ZFSknEhiBWTEFEQU4KK0NWRUpJxIYgWkFHT1JLQQorQ1ZFSklOIEJPxb1BCitDVkVKSU4gQk9KQU5BCitDVkVKSU4gRFXFoEFOIERJUEwgSU5HCitDVkVKSU4gTUFSSUpBCitDVkVKSU4gTUlMQU4KK0NWRUpJTiBNSUxPxaAKK0NWRUpJTiBNSVJKQU5BCitDVkVKSU4gTk9WQUsKK0NWRUpJTiBTTE9CT0RBTgorQ1ZFSklOIFRSSVZBCitDVkVLScSGIE1JTEVUQQorQ1ZFS0nEhiBWT0pJTgorQ1ZFS0nEhiBaTEFUSUNBCitDVkVSREVMSiBKQU5LTworQ1ZFUkRFTEogUlXFvUEKK0NWRVJOSkFLIEpFTkUKK0NWRVRBTk9WScSGIEFOSVRBCitDVkVUQU5PVknEhiBEUkFHT1NMQVYKK0NWRVRBTk9WScSGIEpFTEVOQQorQ1ZFVEFOT1ZJxIYgSkVSTUlOQSBEUiBMRUtBUgorQ1ZFVEFOT1ZJxIYgTUFHRE9MTkEKK0NWRVRBTk9WScSGIFJBRElDQQorQ1ZFVEFOT1ZJxIYgU1RPSkFESU4KK0NWRVRBTk9WScSGIFNUT0pBTktBCitDVkVUQU5PVknEhiBWRUxKQQorQ1ZFVEFOT1ZJxIYgWk9SQU4KK0NWRVRBTk9WScSGIFpPUkFOCitDVkVUQU5PVknEhiBaT1JBTgorQ1ZFVEFOT1ZTS0kgTUFOT0pMTworQ1ZFVEFOT1ZTS0kgTUlMRQorQ1ZFVEnEjEFOSU4gTEpVQklDQQorQ1ZFVEnEjEFOSU4gTUlMS0EKK0NWRVRJxIxBTklOIFZFU05BCitDVkVUScSMQU5JTiBaT1JBTgorQ1ZFVEnEhiBCT8WgS08KK0NWRVRJxIYgRFJBR09NSVIKK0NWRVRJxIYgTEFaQVIKK0NWRVRJxIYgTEFaTworQ1ZFVEnEhiBMSlVCSUNBCitDVkVUScSGIE1BUklKQQorQ1ZFVEnEhiBQRVRBUgorQ1ZFVEnEhiBTTEFWS08KK0NWRVRJxIYgU1RBTktPCitDVkVUScSGQU5JTiBCT8WgS08KK0NWRVRJxIZBTklOIEJSQU5LTworQ1ZFVEnEhkFOSU4gREFORQorQ1ZFVEnEhkFOSU4gREFOSUNBCitDVkVUScSGQU5JTiBEUkFHT01JUgorQ1ZFVEnEhkFOSU4gSUxJSkEKK0NWRVRJxIZBTklOIElSRU5BCitDVkVUScSGQU5JTiBNSUxPxaAKK0NWRVRJxIZBTklOIE1JTE9SQUQKK0NWRVRJxIZBTklOIE1JUk9TTEFWCitDVkVUScSGQU5JTiBTTkXFvUFOQQorQ1ZFVEnEhkFOSU4gWk9SQU4KK0NWRVRJTknEhiBNQVJLTworQ1ZFVElOScSGIE1BVElKQQorQ1ZFVElOSkFOSU4gVE9NSVNMQVYKK0NWRVRJTk9WIFNBVkEKK0NWRVRJTk9WScSGIEFOS0EKK0NWRVRJTk9WScSGIEJSQU5BCitDVkVUSU5PVknEhiBCUkFOS08KK0NWRVRJTk9WScSGIERJTUlUUklKRQorQ1ZFVElOT1ZJxIYgSUxJSkEKK0NWRVRJTk9WScSGIElWQU5LTworQ1ZFVElOT1ZJxIYgTUlMQU4KK0NWRVRJTk9WScSGIFNJTU8KK0NWRVRJTk9WScSGIFZFUkEKK0NWRVRJTk9WScSGIFpPUkEKK0NWRVRLT1YgSk9WQU4KK0NWRVRLT1YgTUlMQU4gRElQTCBJTkcKK0NWRVRLT1YgUkFET0pFCitDVkVUS09WScSGIMSMRURPTUlSCitDVkVUS09WScSGIMW9SVZPSklOCitDVkVUS09WScSGIMSQT1LEkEUKK0NWRVRLT1ZJxIYgxJBPUsSQRQorQ1ZFVEtPVknEhiBBTEVLU0FOREFSCitDVkVUS09WScSGIEFMRUtTQU5EQVIKK0NWRVRLT1ZJxIYgQUxFS1NBTkRBUgorQ1ZFVEtPVknEhiBBTktBCitDVkVUS09WScSGIEJPSkFOQQorQ1ZFVEtPVknEhiBCT1JBCitDVkVUS09WScSGIEJPUklTTEFWCitDVkVUS09WScSGIEJPUklTTEFWCitDVkVUS09WScSGIEJSQU5JU0xBVgorQ1ZFVEtPVknEhiBCUkFOS08KK0NWRVRLT1ZJxIYgQlJBTktPCitDVkVUS09WScSGIEJVRElNSVIKK0NWRVRLT1ZJxIYgREFSSU5LQQorQ1ZFVEtPVknEhiBERVNJTUlSCitDVkVUS09WScSGIERSQUdBTgorQ1ZFVEtPVknEhiBEUkFHQU4KK0NWRVRLT1ZJxIYgRFJBR0FOCitDVkVUS09WScSGIERSQUdBTgorQ1ZFVEtPVknEhiBEUkFHScWgQQorQ1ZFVEtPVknEhiBEUkFHT0xKVUIKK0NWRVRLT1ZJxIYgRFJBR09NSVIgTVIKK0NWRVRLT1ZJxIYgRFJBR09NSVIKK0NWRVRLT1ZJxIYgRFXFoEFOCitDVkVUS09WScSGIERVxaBBTgorQ1ZFVEtPVknEhi1HTEFEScSGIFNNSUxKQQorQ1ZFVEtPVknEhiBHUk9aREEKK0NWRVRLT1ZJxIYgSUxJSkEKK0NWRVRLT1ZJxIYgSVZBTktBCitDVkVUS09WScSGIEpFTEVOQQorQ1ZFVEtPVknEhiBKRUxFTkEKK0NWRVRLT1ZJxIYgSkVMS0EKK0NWRVRLT1ZJxIYgSk9WQU4KK0NWRVRLT1ZJxIYgSk9WQU4KK0NWRVRLT1ZJxIYgSk9WQU4KK0NWRVRLT1ZJxIYgTElWSUEKK0NWRVRLT1ZJxIYgTEpJTEpBTkEKK0NWRVRLT1ZJxIYgTEpJTEpBTkEKK0NWRVRLT1ZJxIYgTUVMQU5JSkEKK0NWRVRLT1ZJxIYgTUlMQU4KK0NWRVRLT1ZJxIYgTUlMQU4KK0NWRVRLT1ZJxIYgTUlMSUNBCitDVkVUS09WScSGIE1JT0RSQUcKK0NWRVRLT1ZJxIYgTUlPRFJBRworQ1ZFVEtPVknEhiBNSU9EUkFHCitDVkVUS09WScSGIE1JUkEKK0NWRVRLT1ZJxIYgTUlSSkFOQQorQ1ZFVEtPVknEhiBNSVJPU0xBViBEUgorQ1ZFVEtPVknEhiBNSVJPU0xBVgorQ1ZFVEtPVknEhiBOSUtPTEEKK0NWRVRLT1ZJxIYgTklLT0xBCitDVkVUS09WScSGIE5JS09MQQorQ1ZFVEtPVknEhiBQRVRBUgorQ1ZFVEtPVknEhiBSQURNSUxBCitDVkVUS09WScSGIFJBRE9KS08KK0NWRVRLT1ZJxIYgUkFET1NMQVYKK0NWRVRLT1ZJxIYgUkFET1NMQVYKK0NWRVRLT1ZJxIYgUkFET1ZBTgorQ1ZFVEtPVknEhiBSQURVTEEKK0NWRVRLT1ZJxIYgUkFUT01JUgorQ1ZFVEtPVknEhiBSSVNUTworQ1ZFVEtPVknEhiBSVcW9SUNBCitDVkVUS09WScSGIFNMQVZPTEpVQgorQ1ZFVEtPVknEhiBTT0tBCitDVkVUS09WScSGIFNSQk9CUkFOCitDVkVUS09WScSGIFNUQU5LTworQ1ZFVEtPVknEhiBTVEFOT0pFCitDVkVUS09WScSGIFNUQU5PSkUKK0NWRVRLT1ZJxIYgU1ZFVE9aQVIKK0NWRVRLT1ZJxIYgVEFUSkFOQQorQ1ZFVEtPVknEhiBUT05JCitDVkVUS09WScSGIFZFTElNSVIKK0NWRVRLT1ZJxIYgVkxBRElNSVIKK0NWRVRLT1ZJxIYgWk9SQQorQ1ZFVEtPVlNLSSBCT1JJUworQ1ZFVEtPVlNLSSBEUkFHT0xKVUIKK0NWRVRLT1ZTS0kgTklLT0xBCitDVkVUS09WU0tJIFZPSk8KK0NWRVRPSkVWScSGIExKSUxKQU5BCitDVkVUT0pFVknEhiBMSklMSkFOQQorQ1ZFVE9KRVZJxIYgTUlMSVNBVgorQ1ZFVE9KRVZJxIYgU0xBVktPCitDVklKQU4gTUFSSUpBCitDVklKQU4gTUFSS08KK0NWSUpBTk9WScSGIEFOxJBBCitDVklKQU5PVknEhiBBTkEKK0NWSUpBTk9WScSGIEFOVE8KK0NWSUpBTk9WScSGIEJPxaBLTworQ1ZJSkFOT1ZJxIYgQk9STworQ1ZJSkFOT1ZJxIYgRE9CUklDQQorQ1ZJSkFOT1ZJxIYgRFJBR0FOCitDVklKQU5PVknEhiBEUkFHVVRJTgorQ1ZJSkFOT1ZJxIYgRFXFoEFOS0EKK0NWSUpBTk9WScSGIElMSUpBCitDVklKQU5PVknEhiBNSUxBTgorQ1ZJSkFOT1ZJxIYgTUlMQU4KK0NWSUpBTk9WScSGIE1JTEFOCitDVklKQU5PVknEhiBNSUxFVkEKK0NWSUpBTk9WScSGIE1JUk9TTEFWCitDVklKQU5PVknEhiBNT01JUgorQ1ZJSkFOT1ZJxIYgUEVUQVIKK0NWSUpBTk9WScSGIFJBREUKK0NWSUpBTk9WScSGIFJBTktPCitDVklKQU5PVknEhiBTQVZBCitDVklKQU5PVknEhiBTTEFWS08KK0NWSUpBTk9WScSGIFNORcW9QU5BCitDVklKQU5PVknEhiBWT0pJU0xBVgorQ1ZJSkFOT1ZJxIYgWkxBVEEKK0NWSUpFVEFOIE1JUktPCitDVklKRVRJxIxBTklOIEpPVk8KK0NWSUpFVEnEhiBJR09SCitDVklKRVRJxIYgSk9WTworQ1ZJSkVUScSGIE1JTEUKK0NWSUpFVEnEhiBOQURBCitDVklKRVRJTk9WScSGIFJVxb1BCitDVklKRVRJTk9WScSGIFJVxb1JQ0EKK0NWSUpFVElOT1ZJxIYgU0lOScWgQQorQ1ZJSknEhiDFvUVMSktPCitDVklKScSGIERSQUdBTgorQ1ZJSknEhiBHT1JBTgorQ1ZJSknEhiBKRUxJU0FWQQorQ1ZJSknEhiBKT1ZBTktBCitDVklKScSGIE1JTEVOS08KK0NWSUpJxIYgTUlPRFJBRworQ1ZJSknEhiBNTEHEkEEKK0NWSUpJxIYgTklLT0xBCitDVklKScSGIFBBTlRFCitDVklKScSGIFJVxb1JQ0EKK0NWSUpJxIYgU1RFVkFOCitDVklKSU4gQlJBTktPCitDVklKT1ZJxIYgTUlMRU5LTworQ1ZJSk9WScSGIE1JTElWT0pFCitDVklKT1ZJxIYgTkXEkEVMSktBCitDVklKT1ZJxIYgUkFET1NBVgorQ1ZJSk9WScSGIFZPSklOCitDVklLScSGIE1JSEFJTE8KK0NWSU5HIEpPU0lQCitDVklUQU5PVknEhiBTTkXFvUFOQQorQ1ZJVEtPIFBFVEFSCitDVklUS09WQUMgTUFSS08KK0NWSkVUQU4gT0xHQQorQ1ZKRVRJxIYgSUxJSkEKK0NWSkVUScSGQU5JTiDFvUlWS08KK0NWSkVUScSGQU5JTiBHT0pLTworQ1ZKRVRJxIZBTklOIFNURVZPCitDVkpFVEtPVknEhiBNSU9EUkFHCitDVkpFVEtPVknEhiBORUJPSsWgQQorQ1ZKRVRPSkVWScSGIMSMRURPTUlSCitDVk9ST1ZJxIYgUkFET8WgCitDVlJLQUxKIMSQVVJPCitExb1BQkFTQU4gRFJBR09KRQorRMW9QUJJxIYgTUlMS0EKK0TFvUFExb1JxIYgVlVLT1NBVkEKK0TFvUFGRVJPVlNLSSBSRcSQRVAKK0TFvUFGScSGIEhBTURJSkEKK0TFvUFGTyBNQVRJSkEKK0TFvUFKQSBNQVJJQ0EKK0TFvUFLScSGIMSMRURPCitExb1BS0nEhiBCT8W9QU5BCitExb1BS0nEhiBMQVpBCitExb1BS09WScSGIERSQUdBTgorRMW9QUtVTEEgRVLFvUVCRVQKK0TFvUFLVUxBIEVSxb1FQkVUCitExb1BS1VMQSBJVkFOCitExb1BS1VMQSBNQVJJQ0EKK0TFvUFLVUxBIE5FREVMSktPCitExb1BS1VMQSBQRVRBUgorRMW9QUtVTEEgUkFERQorRMW9QUtVTEEgVklET1NBVgorRMW9QUtVTElOIERVxaBBTktBCitExb1BS1VMSU4gUEVUQVIKK0TFvUFLVUxJTiBTVEVWQU4KK0TFvUFMScSGIFNUT0pBTgorRMW9QU1CQVJTS0kgSk9WQU4KK0TFvUFNQkFTIERVxaBBTiBEUiBMRUtBUgorRMW9QU1CQVMgTUlMRQorRMW9QU1CQVNPVknEhiBNSUxFTktPCitExb1BTUJJxIYgQlJBTktPCitExb1BTUJJxIYgTUlMT1ZBTgorRMW9QU1CScSGIFJBRE9WQU4KK0TFvUFNQknEhiBTTEFWS08KK0TFvUFNQknEhiBTUkVUQQorRMW9QU5JxIYgU0FWQQorRMW9QU5JxIYgU1RBWkEKK0TFvUFSScSGIERPQlJJTktBCitExb1BUknEhiBSQURPTUlSCitExb1FTEVUT1ZJxIYgTUlMQURJTgorRMW9RUxFVE9WScSGIE1JTEFOCitExb1FTEVUT1ZJxIYgTUxBREVOCitExb1FTEVUT1ZJxIYgUkFET0pLQQorRMW9RUxFVE9WScSGIFNMT0JPREFOCitExb1FTEVUT1ZJxIYgVE9NTworRMW9RUxJTE9WScSGIEpBTkEKK0TFvUVQSU5BIEpPVkFOCitExb1FVkVMRUtJRElTIE1BUklOQQorRMW9RVZFTEVLSURJUyBQQU5UQQorRMW9RVZFUiBORURFTEpLTworRMW9RVZFUkRBTk9WScSGIEFOSVRBCitExb1FVkVSREFOT1ZJxIYgTEFaQVIKK0TFvUVWRVJEQU5PVknEhiBOQVNUTworRMW9RVZFUkRBTk9WScSGIFZFTElaQVIKK0TFvUlEQSBLQVRJQ0EKK0TFvUlEQSBLQVRJQ0EKK0TFvUlEQSBNSUxBRElOCitExb1JREEgTUlMT01JUgorRMW9SUdVUkHFoCBNSUxFTktPCitExb1JR1VSU0tJIEJPUklWT0oKK0TFvUlHVVJTS0kgQlJBTklNSVIKK0TFvUlHVVJTS0kgQlJBTktPCitExb1JR1VSU0tJIERBTklMTworRMW9SUdVUlNLSSBEVcWgS08KK0TFvUlHVVJTS0kgTEpJTEpBTkEKK0TFvUlHVVJTS0kgTEpJTEpBTkEKK0TFvUlHVVJTS0kgTUFSSUpBCitExb1JR1VSU0tJIE1BUklKQQorRMW9SUdVUlNLSSBNSUxBTgorRMW9SUdVUlNLSSBNSUxFTktPCitExb1JR1VSU0tJIFBFVEFSCitExb1JR1VSU0tJIFBSRURSQUcKK0TFvUlLScSGIE1JTEFOCitExb1JTElUT1YgQUxFS1NBTkRBUgorRMW9SUxJVE9WIEtBVElDQQorRMW9SUxJVE9WIFNURVZBTgorRMW9SUxJVE9WIFNURVZBCitExb1JTElUT1YgVkVMSU5LQQorRMW9SUxWSUTFvUlKRVYgTUlUS08KK0TFvUlOIE1JUktPCitExb1JTknEhiBNSVJPU0xBViBEUgorRMW9SU5JxIYgTUlST1NMQVYKK0TFvUlOT1ZJxIYgVkVTRUxJTgorRMW9SVJJxIYgUlXFvUlDQQorRMW9T0TFvU8gUklTVE8KK0TFvU9EQU4gRFJBR0EKK0TFvU9EQU4gTUlSSkFOQQorRMW9T0RBTiBOSUtPTEEKK0TFvU9EQU4gVkVSQQorRMW9T0dBTk9WScSGIE1JTE9SQUQKK0TFvU9HT1ZJxIYgxb1JVkFOCitExb1PR09WScSGIE1JTFVOCitExb1PTEVWIEFTRU4gRFIgU1RPTUFUT0xPRworRMW9T0xFViBBU0VOCitExb1PTEVWIEFTRU4KK0TFvU9MRVYgTUlUS08KK0TFvU9MRVYgUEFOREUKK0TFvU9MScSGIEdPUkRBTkEKK0TFvU9MScSGIFRPTUlTTEFWCitExb1PTUJBIMW9SVZLTworRMW9T01CRVRBIEtPU1RBCitExb1PTUJFVEEgTUlMT8WgCitExb1PTUJFVEEgTklLT0xBCitExb1PTUJFVEEgU1ZFVE9aQVIKK0TFvU9NQkVUQSBWTEFETworRMW9T01CScSGIERVxaBBTgorRMW9T01CScSGIE1JTEpBCitExb1PTUJJxIYgU09LQQorRMW9T05MRVogUElST8WgS0EKK0TFvU9QQUxJxIYgRFJBR0FOCitExb1VRMW9QVIgxJBVUkEKK0TFvVVExb1BUiBKT0FLSU0KK0TFvVVExb1BUiBTTEFWS08KK0TFvVVET1ZJxIYgU01JTEpLQQorRMW9VURPVknEhiBWQVNPCitExb1VS0xFVlNLSSBTQcWgQQorRMW9VUtMSkVWIERSQUdBTgorRMW9VUtMSkVWIFNUT0pBTgorRMW9VU5JxIYgxb1JVk9SQUQKK0TFvVVOScSGIE1JTElWT0pFCitExb1VTknEhiBNSVJKQU5BCitExb1VTknEhiBSQURPTUlSCitExb1VTkpBIEFNQUxJSkEKK0TFvVVOSkEgRVZHRU5JSkUKK0TFvVVOSkEgR09SREFOQQorRMW9VU5KQSBJUkVOQQorRMW9VU5KQSBJVkFOCitExb1VTkpBIEpBS0lNCitExb1VTkpBIEpBTktPCitExb1VTkpBIEpFTEVOQQorRMW9VU5KQSBMSlVCT01JUgorRMW9VU5KQSBNSVJPTgorRMW9VU5KQSBWTEFESU1JUgorRMW9VU5KQSBaVk9OSU1JUgorRMW9VVZFUiBWRVNFTElOS0EKK0TFvVVWRVIgVk9KSVNMQVYKK0TFvVVWRVJPVknEhiBJVkFOS0EKK0RBxIxFVknEhiBNSUxBTgorREHEjEVWScSGIE1PTUlSCitEQcSMScSGIERVxaBBTgorREHEjEnEhiBLUklTVElOQQorREHEjEnEhiBMSlVCT01JUgorREHEjEnEhiBNScWgQQorREHEjEnEhiBNSUxBTiBQUk9GRVNPUgorREHEjEnEhiBNSUxBTgorREHEjEnEhiBNSUxJQ0EKK0RBxIxJxIYgTkFERcW9REEKK0RBxIxJxIYgUkFETUlMQQorREHEjEnEhiBWRUxJTktBCitEQcSMScSGIFZMQVNUSU1JUgorREHFoEnEhi1HVUxEIExKSUxKQU5BCitEQcWgScSGIE1BUklKQQorREHFoEnEhiBNSUxFTktPCitEQcWgScSGIFJBRFVMRQorREHFoEnEhiBWTEFETworREHFvcSQVSBOSVNUT1IKK0RBQkFOT1ZJxIYgREFOSUNBCitEQUJBTk9WScSGIFZBU0lMSUpFCitEQUJFUkVSIEFOVE9OSUpBCitEQUJFVEnEhiBSQURJU0FWCitEQUJFVEnEhiBSQURPTUlSCitEQUJJxIYgxIxFRE9NSVIgRElQTCBPRUMKK0RBQknEhiDEkE9SxJBFCitEQUJJxIYgQUxFS1NBTkRBUgorREFCScSGIEJPUktPCitEQUJJxIYgR09TUEFWQQorREFCScSGIEpPVkFOCitEQUJJxIYgSk9WQU4KK0RBQknEhiBNQVJJSkEKK0RBQknEhiBNQVJLTworREFCScSGIE1JTEFOCitEQUJJxIYgTUlMT8WgCitEQUJJxIYgTUlMT1JBRAorREFCScSGIE1JTFVUSU4KK0RBQknEhiBNSU9EUkFHCitEQUJJxIYgTkVERUxKS08KK0RBQknEhiBORU5BRAorREFCScSGIE5FTkFECitEQUJJxIYgTkVOQUQKK0RBQknEhiBSQURPTUlSCitEQUJJxIYgU0xBVktPCitEQUJJxIYgU1RFVkFOCitEQUJJxIYgU1ZFVEEKK0RBQknEhiBWT0pJU0xBVgorREFCSU4gxJBPUsSQRQorREFCT1ZJxIYgQk9HREFOCitEQUJPVknEhiBCUkFOS08KK0RBQ0lOIMW9RUxKS08KK0RBREFJIMSQVUxBCitEQURBSSBCQVJCQVJBCitEQURBSSBMQURJU0xBVgorREFEQUkgTEFESVNMQVYKK0RBREFJIExBU0xPCitEQURBSSBTVEVWQU4KK0RBREnEhiBCUkFOSVNMQVYKK0RBREnEhiBMSlVCSUNBCitEQUnEhiBMVUtBCitEQUnEhiBNSUxBTgorREFKxIwgTUlIQUpMTworREFKxIwgTkFEQQorREFKxIwgUlVCRU4KK0RBSsSMIFpPUklDQQorREFKScSGIEJSQU5LTworREFKScSGIERSQUdJQ0EKK0RBSknEhiBEVcWgQU4KK0RBSknEhiBMSklMSkFOQQorREFKScSGIFZFTElNSVIKK0RBSktPIFZMQURJTUlSCitEQUpLTyBWTEFESU1JUgorREFKT1ZJxIYgWk9SQQorREFLScSGIMSQT1LEkEUKK0RBS0nEhiBBTlRFCitEQUtJxIYgQk9KQU5BCitEQUtJxIYgQk9SSVMKK0RBS0nEhiBCT1JLQQorREFLScSGIEJSQU5LQQorREFLScSGIERBTkUKK0RBS0nEhiBEQU5JTE8KK0RBS0nEhiBEUkFHTworREFLScSGIERSQUdPCitEQUtJxIYgRFXFoEFOS0EKK0RBS0nEhiBHT0pLTworREFLScSGIElMSUpBCitEQUtJxIYgSkVMRU5BCitEQUtJxIYgS1NFTklKQQorREFLScSGIE1JTEFOCitEQUtJxIYgTUlMT0pFCitEQUtJxIYgTUlMT01JUgorREFLScSGIE1JVEFSCitEQUtJxIYgTkVCT0rFoEEKK0RBS0nEhiBORURFTEpLTworREFLScSGIE5FREVMSktPCitEQUtJxIYgTklLT0xBCitEQUtJxIYgTklLT0xBCitEQUtJxIYgUEFWTEUKK0RBS0nEhiBQRVRBUgorREFLScSGIFJBSktPCitEQUtJxIYgUkFOS08KK0RBS0nEhiBSQVRLTworREFLScSGIFJFTEpBCitEQUtJxIYgU0xBVklDQQorREFLScSGIFNMQVZLTworREFLScSGIFNMT0JPREFOCitEQUtJxIYgU1JFVEVOCitEQUtJxIYgU1ZFVE9aQVIKK0RBS0nEhiBWTEFESU1JUiBEUgorREFLScSGIFZMQURJTUlSIERSCitEQUtJxIYgVkxBRElNSVIKK0RBS0nEhiBWTEFESU1JUgorREFLScSGIFZMQURPCitEQUtJxIYgWk9SQU4KK0RBS09WScSGIMSQT0tPCitEQUtPVknEhiBCUkFOS08KK0RBS09WScSGIFZFU0VMSU4KK0RBS09WScSGIFpPUkFOCitEQUtTRVIgSk9WQU4KK0RBS1NFUiBTVEVWQU4KK0RBTMSMRUtPVknEhiBJTElKQQorREFMSVBPViBCVURJTUlSCitEQUxJUE9WScSGIEFCRFVMCitEQUxKQUMgTEpVQklDQQorREFMSkVWIExKSUxKQU5BCitEQUxKRVYgTUlMQU4KK0RBTE1BQ0lKQSBKQURSQU5LQQorREFMTUFDSUpBIE1JUktPCitEQUxPxaAgTUFSSUpBCitEQU3FoEnEhiBKT1NJRgorREFNSkFOIEpFTElTQVZFVEEKK0RBTUpBTiBKT04KK0RBTUpBTkFDIFJBRE1JTEEKK0RBTUpBTkFDIFJBRE9WQU4KK0RBTUpBTkFDIFNUT0pBTktBCitEQU1KQU5JxIYgWk9SSUNBCitEQU1KQU5PU0tBIFNMQVZLQQorREFNSkFOT1Ygxb1JS0EKK0RBTUpBTk9WIMSQT1LEkEUKK0RBTUpBTk9WIEJJTEpBTkEKK0RBTUpBTk9WIEJSQU5LQQorREFNSkFOT1YgQ1ZFVEtPCitEQU1KQU5PViBESU1JVFJJSkUKK0RBTUpBTk9WIERSQUdPTUlSCitEQU1KQU5PViBJREEKK0RBTUpBTk9WIEpPUkRBTktBCitEQU1KQU5PViBKT1ZBTgorREFNSkFOT1YgS0FUSUNBCitEQU1KQU5PViBMQVpBCitEQU1KQU5PViBNSUxFTktPCitEQU1KQU5PViBNSUxFTktPCitEQU1KQU5PViBQQVZMRQorREFNSkFOT1YgU09GSUpBCitEQU1KQU5PViBTVEFOS08KK0RBTUpBTk9WIFNURVZBTgorREFNSkFOT1ZJxIYgxJBPUsSQRQorREFNSkFOT1ZJxIYgQUxFS1NBTkRBUgorREFNSkFOT1ZJxIYgQVJTRU5JSkUKK0RBTUpBTk9WScSGIEJPxaBLTworREFNSkFOT1ZJxIYgQk9SSVNMQVYKK0RBTUpBTk9WScSGIERBUklOS0EKK0RBTUpBTk9WScSGIERSQUdJQ0EKK0RBTUpBTk9WScSGIERSQUdPU0xBVgorREFNSkFOT1ZJxIYgRFJBR08KK0RBTUpBTk9WScSGIERSQUdVVElOCitEQU1KQU5PVknEhiBEVcWgQU4KK0RBTUpBTk9WScSGIERVxaBBTgorREFNSkFOT1ZJxIYgRFXFoElDQQorREFNSkFOT1ZJxIYgRFXFoEtPCitEQU1KQU5PVknEhiBFTUlMCitEQU1KQU5PVknEhiBHT1JEQU5BCitEQU1KQU5PVknEhiBKT1ZBTgorREFNSkFOT1ZJxIYgSk9WQU4KK0RBTUpBTk9WScSGIEpPVk8KK0RBTUpBTk9WScSGIExKSUxKQU5BCitEQU1KQU5PVknEhiBMSlVCScWgQQorREFNSkFOT1ZJxIYgTEpVQklDQQorREFNSkFOT1ZJxIYgTUFSSUpBCitEQU1KQU5PVknEhiBNSUxBTgorREFNSkFOT1ZJxIYgTUlMQU4KK0RBTUpBTk9WScSGLU1JTEVOS09WScSGIEpFTEVOQQorREFNSkFOT1ZJxIYgTUlPRFJBRworREFNSkFOT1ZJxIYgTk9WTworREFNSkFOT1ZJxIYgT0JSQUQKK0RBTUpBTk9WScSGIFBFVEFSCitEQU1KQU5PVknEhiBSQURFCitEQU1KQU5PVknEhiBSQURPVkFOCitEQU1KQU5PVknEhiBSQU5LTworREFNSkFOT1ZJxIYgUkFUS08KK0RBTUpBTk9WScSGIFNJTU8KK0RBTUpBTk9WScSGIFNJTknFoEEKK0RBTUpBTk9WScSGIFNMQVZLTworREFNSkFOT1ZJxIYgU0xPQk9EQU5LQQorREFNSkFOT1ZJxIYgU05Fxb1BTkEKK0RBTUpBTk9WScSGIFNUQU5JU0xBVgorREFNSkFOT1ZJxIYgU1RFVkFOCitEQU1KQU5PVknEhiBTVEVWQU4KK0RBTUpBTk9WScSGIFNURVZPCitEQU1KQU5PVknEhiBURVJFWkEKK0RBTUpBTk9WScSGIFRPRE9SCitEQU1KQU5PVknEhiBUT01JU0xBVgorREFNSkFOT1ZJxIYgVkFTSUxJSkUgRFIKK0RBTUpBTk9WScSGIFZBU0lMSUpFCitEQU1KQU5PVknEhiBWQVNJTElKRQorREFNSkFOT1ZJxIYgVk9KSVNMQVYKK0RBTUpBTk9WScSGIFpPUkFOCitEQU1KQU5PVlNLSSDFvUlWS08KK0RBTUpBTk9WU0tJIEFMRUtTQU5EQVIKK0RBTUpBTk9WU0tJIEFMRUtTQU5EQVIKK0RBTUpBTk9WU0tJIE1JTEFOCitEQU1KQU5PVlNLSSBSVcW9SUNBCitEQU1KQU5PVlNLSSBWTEFESU1JUgorREFNTEpBTk9WScSGIMW9SVZPVEEKK0RBTU5KQU5PVknEhiBBTEVLU0FOREFSCitEQU1OSkFOT1ZJxIYgS1JJU1RJTkEKK0RBTU5KQU5PVknEhiBMQVpBUgorREFNTkpBTk9WScSGIExKSUxKQU5BCitEQU1OSkFOT1ZJxIYgU0xBVk9MSlVCCitEQU1OSkFOT1ZJxIYgWk9SQU4KK0RBTU5KQU5PVknEhiBaT1JBTgorREFOIE1JUkEKK0RBTsSMIFRJQk9SCitEQU7EjEVUT1ZJxIYgWk9SSUNBCitEQU7EjE8gxIxBQkEKK0RBTsSMTyBKRU5FCitEQU5BSUxPViBBQ0EKK0RBTkFJTE9WIFRFVkEKK0RBTkdVQknEhiDFvUFSS08KK0RBTkdVQknEhiBSQURJVk9KRSBESVBMIElORworREFOR1VCScSGIFJBVEtPCitEQU5HVVpPViBEVcWgQU4KK0RBTkkgR0HFoFBBUgorREFOSSBMQVNMTworREFOScSMScSGIEJPUk8KK0RBTknEjEnEhiBCUkFOSVNMQVYKK0RBTknEjEnEhiBEUkFHT0xKVUIKK0RBTknEjEnEhiBEUkFHTworREFOScSMScSGIElSRU5BCitEQU5JxIxJxIYgU0FWSUNBCitEQU5JxIxJxIYgWkRSQVZLTworREFOScWgIEVWQQorREFOScWgIEnFoFRWQU4KK0RBTknFoCBNQVJJSkEKK0RBTknEhiBQRVRBUiBESVBMIElORworREFOScSGIFZFU05BCitEQU5JxIYgWk9SSUNBCitEQU5JRUwgQU5EUklKQQorREFOSUVMIEFSQU5LQQorREFOSUVMIEhJTERBCitEQU5JRUwgSk9TSVAKK0RBTklFTCBQRVRBUgorREFOSUVMIFBJUk/FoEtBCitEQU5JRUwgUlXFvUEKK0RBTklLT1YgTUlST0xKVUIKK0RBTklLT1YgVkFMRVJJSkEKK0RBTklMT1YgQU5JQ0EKK0RBTklMT1YgQk9TSUxKS0EKK0RBTklMT1YgRFXFoEFOCitEQU5JTE9WIE1JTEFOCitEQU5JTE9WIFJBRE9NSVIKK0RBTklMT1YgU01JTEpBTkEKK0RBTklMT1YgU1RPSkFOCitEQU5JTE9WIFZBU0EKK0RBTklMT1ZBQyBESU1JVFJJSkUKK0RBTklMT1ZBQyBQRVRBUgorREFOSUxPVkFDIFJVxb1BCitEQU5JTE9WQUMgVklUT01JUgorREFOSUxPVknEhiDFvUlWQU4KK0RBTklMT1ZJxIYgxb1JVk9SQUQKK0RBTklMT1ZJxIYgQUxFS1NBTkRBUgorREFOSUxPVknEhiBCUkFOS08KK0RBTklMT1ZJxIYgSk9WQU4KK0RBTklMT1ZJxIYgS0FUQVJJTkEKK0RBTklMT1ZJxIYgTEpJTEpBTkEKK0RBTklMT1ZJxIYgTUFSS08KK0RBTklMT1ZJxIYgTUlMQU4KK0RBTklMT1ZJxIYgTUlSS08gRFIKK0RBTklMT1ZJxIYgTklLT0xBCitEQU5JTE9WScSGIE5JS09MQQorREFOSUxPVknEhiBQRVJTQQorREFOSUxPVknEhiBSQURBCitEQU5JTE9WScSGIFJBRE1JTEEKK0RBTklMT1ZJxIYgU1RBTklTTEFWQQorREFOSUxPVknEhiBTVEVWQU4KK0RBTklMT1ZJxIYgVElIT01JUgorREFOSUxPVknEhi1WRVNFTElOT1YgVkVSQQorREFOSUxPVknEhiBaRFJBVktPCitEQU5KSSBGRVJFTkMKK0RBTkpJIEdFWkEKK0RBTkpJIEtBUk9MSgorREFOSkkgTEFTTE8KK0RBTkpJIE1BxIZBxaAKK0RBTktBIE1BUktPCitEQU5LQSBaTEFUQQorREFOS08gSkFOS08KK0RBTktPIEpBUk9TTEFWCitEQU5LT1ZJxIYgQk9HT0xKVUIKK0RBTktPVknEhiBTTEFWScWgQQorREFOS09WScSGIFNMQVZLQQorREFOS1VDIERSQUdBTgorREFOS1VDIE1JTElDQQorREFOS1VDIFZPSklTTEFWCitEQU5LVUMgVk9KSVNMQVYKK0RBTk9KRVZJxIYgU1RFVkFOCitEQVDEjEVWScSGIERVxaBBTgorREFQxIxFVknEhiBKT1ZBTgorREFQxIxFVknEhiBMSlVCSUNBCitEQVDEjEVWScSGIFBBVkxFCitEQVDEjEVWScSGIFJBSktPCitEQVDEjEVWScSGIFJVxb1JQ0EKK0RBUMSMRVZJxIYgVkVSSUNBCitEQVJBxaAgxb1FTEpLTworREFSQcW9IEpVTElKQU5BCitEQVJBxb0gU1RFVkFOCitEQVJBQkFOSiBKT8W9RUYKK0RBUkFCT8WgIEpVTEtBCitEQVJBQk/FoCBMQURJU0xBVgorREFSQUJPxaAgTUFSSUpBCitEQVJBQk/FoCBQRVRBUgorREFSQUJVQyBORURFTEpLTworREFSQURJxIYgU1RFVkFOCitEQVJNQU5PVknEhiBNSUxBTgorREFSTUFOT1ZJxIYgU1RBTktPCitEQVJNQU5PVknEhiBUT01JU0xBVgorREFST0pFVknEhiBMQVpBUgorREFSVknFoCBaT1JJQ0EKK0RBU09WScSGIFNUT0pBTktBCitEQVNPVknEhiBaTEFUQQorREFVVE9WQS1SVcWgRVZMSkFOIFZFTElOS0EgRFIKK0RBVVRPVknEhiDEkE9SxJBFCitEQVVUT1ZJxIYgQk9HREFOCitEQVVUT1ZJxIYgRMW9RU1BTAorREFVVE9WScSGIERSQUdBTgorREFVVE9WScSGIE1JTEFOCitEQVVUT1ZJxIYgTUlMQU4KK0RBVknEhiBCUkFOSVNMQVYKK0RBVklEIEFORFJBxaAKK0RBVklEIElMT05BCitEQVZJRE9WIMSQVVLEkElOQQorREFWSURPViBCT0dEQU4KK0RBVklET1YgQlVESU1LQQorREFWSURPViBKRUxJQ0EKK0RBVklET1YgSk9WQU4KK0RBVklET1YgTEpVQk9NSVIKK0RBVklET1YgTUlMQU4KK0RBVklET1YgTUlMQU4KK0RBVklET1YgTUlMScSGCitEQVZJRE9WIE1JTElWT0oKK0RBVklET1YgTUlMS0EKK0RBVklET1YgTkVHT1ZBTgorREFWSURPViBSQURPU0xBVgorREFWSURPViBSQURPVkFOCitEQVZJRE9WIFNMQVZLTworREFWSURPViBTVE9KQU4KK0RBVklET1YgVElIT01JUgorREFWSURPVkFDIMSQT1LEkEUKK0RBVklET1ZBQyBCT8WgS08KK0RBVklET1ZBQyBEQU5JTE8KK0RBVklET1ZBQyBEVcWgQU5LQQorREFWSURPVkFDIEVMVklSQQorREFWSURPVkFDIEdBVlJBCitEQVZJRE9WQUMgR09KS08KK0RBVklET1ZBQyBMSlVCSUNBCitEQVZJRE9WQUMgTUlST1NMQVYKK0RBVklET1ZBQyBSQURJVk9KCitEQVZJRE9WQUMgUkFESVZPSgorREFWSURPVkFDIFJBRElWT0oKK0RBVklET1ZBQyBSQURJVk9KCitEQVZJRE9WQUMgUkFETUlMQQorREFWSURPVkFDIFNURVZBTgorREFWSURPVkFDIFRPRE9SCitEQVZJRE9WQUMgVkVSSUNBCitEQVZJRE9WQUMgVkVTRUxJTktBCitEQVZJRE9WQUMgWkRSQVZLTworREFWSURPVknEhiDEjEFTTEFWCitEQVZJRE9WScSGIERBVk9SCitEQVZJRE9WScSGIERSQUdBTgorREFWSURPVknEhiBEUkFHSUNBCitEQVZJRE9WScSGIERVxaBBTktBCitEQVZJRE9WScSGIERVxaBLTworREFWSURPVknEhiBHT1JBTgorREFWSURPVknEhiBKT1ZBTgorREFWSURPVknEhiBKT1ZPCitEQVZJRE9WScSGIExKSUxKQU5BCitEQVZJRE9WScSGIE1BUklKQQorREFWSURPVknEhiBNQVJJSkEKK0RBVklET1ZJxIYgTUFSSkFOCitEQVZJRE9WScSGIE1JSEFJTE8KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQU4KK0RBVklET1ZJxIYgTUlMQQorREFWSURPVknEhiBNSUxPxaAKK0RBVklET1ZJxIYgTUlMT8WgCitEQVZJRE9WScSGIE1JTE9WQU4KK0RBVklET1ZJxIYgTUlMVVRJTgorREFWSURPVknEhiBNSVJLTworREFWSURPVknEhiBNSVJPU0xBVgorREFWSURPVknEhiBNSVJPU0xBVgorREFWSURPVknEhiBNTEFERU4KK0RBVklET1ZJxIYgTkVCT0rFoEEKK0RBVklET1ZJxIYgTkVOQUQKK0RBVklET1ZJxIYgT0xHQQorREFWSURPVknEhiBQRVJBCitEQVZJRE9WScSGIFBFVEFSCitEQVZJRE9WScSGIFBFVEFSCitEQVZJRE9WScSGIFBFVEFSCitEQVZJRE9WScSGIFJBREUgRFIKK0RBVklET1ZJxIYgUkFERQorREFWSURPVknEhiBSQURPSkUKK0RBVklET1ZJxIYgUkFET01JUgorREFWSURPVknEhiBTQVZBCitEQVZJRE9WScSGIFNMQVZLTworREFWSURPVknEhiBTUkVUQQorREFWSURPVknEhiBTVEFOS08KK0RBVklET1ZJxIYgU1RFVkFOCitEQVZJRE9WScSGIFVST8WgCitEQVZJRE9WScSGIFZBU0EKK0RBVklET1ZJxIYgVklUT01JUgorREFWSURPVknEhiBWTEFESU1JUgorREFWSURPVknEhiBWT0pJU0xBVgorREFWSURPVknEhiBaT1JBCitEQVZJRE9WU0tJIE1BUkEKK0RBVklOScSGIFNUT0pBTgorREFWT0dJxIYgVEVPRE9SCitEQVZPU0lSIElWQU4KK0RBVk9TSVIgTUFLU0lNCitEQVZPU0lSIFRFT0RPUgorREFWT1NJUiBWTEFESU1JUgorREUtVlJJRVMgSVZBTktBCitERcWgSSBaT0xUQU4KK0RFxaBJxIYgTUFSQQorREXFoE8gxb1JVkFOS0EKK0RFxb1FIEpPVkFOCitERcW9RSBLQVJMTworREXFvUUgWkRFTktBCitERcW9RUxJxIYgSk9WQU5LQQorREXEkEFOU0tJIMSQT1LEkEUKK0RFxJBBTlNLSSBEVcWgQU4KK0RFxJBBTlNLSSBQRVRBUgorREVBSyDFvUFSS08KK0RFQUsgQU5EUkHFoAorREVBSyBBTkRSSUpBTkEKK0RFQUsgQU5EUklKQQorREVBSyBBUkFOS0EKK0RFQUsgRkVSRU5DCitERUFLIElMRcWgCitERUFLIExBVVJBCitERUFLIE1BVElMREEKK0RFQU4gTkVWRU5LQQorREVBUk9TS0kgRkVISU0KK0RFQVJPVknEhiBTQUxJTQorREVCRUxKQcSMS0kgxb1JVk9KSU4KK0RFQkVMSkHEjEtJIMSQT1LEkEUKK0RFQkVMSkHEjEtJIEFMRUtTQU5EQVIKK0RFQkVMSkHEjEtJIEFMRUtTQU5EQVIKK0RFQkVMSkHEjEtJIEJPU0lMSktBCitERUJFTEpBxIxLSSBEUkFHT01JUgorREVCRUxKQcSMS0kgSVZBTgorREVCRUxKQcSMS0kgSVZBTgorREVCRUxKQcSMS0kgS0FUSUNBCitERUJFTEpBxIxLSSBMSlVCSUNBCitERUJFTEpBxIxLSSBNSVJKQU5BCitERUJFTEpBxIxLSSBNSVJPU0xBVgorREVCRUxKQcSMS0kgTkFEQQorREVCRUxKQcSMS0kgU1LEkEEKK0RFQkVMSkHEjEtJIFNWRVRPWkFSCitERUJFTEpBxIxLSSBWRVJBCitERUJFTEpBxIxLSSBWVUtPU0FWQQorREVCRUxKRVZJxIYgVkVMSU1JUgorREVDIEFOSUNBCitERURBSiBEQVZJRAorREVEQUogTEVLTworREVERUkgSUxPTkEKK0RFREVJxIYgRUxJWkFCRVRBCitERURJxIYgQlJBTklTTEFWCitERURJxIYgRE9CUk9TQVYKK0RFREnEhiBEUkFHQU4KK0RFREnEhiBEUkFHT1NMQVYKK0RFREnEhiBFTElaQUJFVEEKK0RFREnEhiBHQVZSSUxPCitERURJxIYgSk9WTworREVEScSGIEtPVklOS0EKK0RFREnEhiBNQVJBCitERURJxIYgTUFSSUpBCitERURJxIYgTUlMSVZPSiBEUiBQUk9GCitERURJxIYgTUlMTworREVEScSGIE1JT0RSQUcKK0RFREnEhiBORU1BTkpBCitERURJxIYgUkFESUNBCitERURJxIYgU0xBVktBCitERURJxIYgU1RFVkFOCitERURJxIYtVEFTScSGIE1JUkEKK0RFRElOIERFSkFOCitERURJTiBESU1JVFJJSkUKK0RFRElOIERJTUlUUklKRQorREVESU4gVkFTSUxJSkUKK0RFRElOU0tJIFRJQk9SCitERURPVknEhiBNScWgTworREVGUkFOR0VQQU4gRlJBTlNPQQorREVHQSBBVlJBTQorREVKQU5BQyBNSUxPUkFECitERUpBTk9TS0kgTUlMQU4KK0RFSkFOT1YgQkVSSVNMQVYKK0RFSkFOT1YgREFOSUxPCitERUpBTk9WIEpFTEVOQQorREVKQU5PViBNSVRBCitERUpBTk9WIFNJTUEKK0RFSkFOT1ZJxIYgxb1BUktPCitERUpBTk9WScSGIMW9QVJLTworREVKQU5PVknEhiDFvUlWQU4KK0RFSkFOT1ZJxIYgxb1JVk9KSU4KK0RFSkFOT1ZJxIYgxJBPUsSQRQorREVKQU5PVknEhiDEkFVSxJBJTktBCitERUpBTk9WScSGIMSQVVJJQ0EKK0RFSkFOT1ZJxIYgQUxFS1NBTkRBUgorREVKQU5PVknEhiBBTEVLU0FORFJBCitERUpBTk9WScSGIEFOxJBFTElKQQorREVKQU5PVknEhiBBTktJQ0EKK0RFSkFOT1ZJxIYgQk9SSVNMQVZBCitERUpBTk9WScSGIERBTklMTworREVKQU5PVknEhiBESU1JVFJJSkUKK0RFSkFOT1ZJxIYgRE9CUklWT0pFCitERUpBTk9WScSGIERPQlJJVk9KRQorREVKQU5PVknEhiBEUkFHQU4KK0RFSkFOT1ZJxIYgRFXFoEFOCitERUpBTk9WScSGIERVxaBBTgorREVKQU5PVknEhiBEVcWgQU4KK0RFSkFOT1ZJxIYgSVZBTgorREVKQU5PVknEhiBKRUxFTkEKK0RFSkFOT1ZJxIYgSkVMSUNBCitERUpBTk9WScSGIEpPUkRBTgorREVKQU5PVknEhiBKT1ZBTgorREVKQU5PVknEhiBLQVRJQ0EKK0RFSkFOT1ZJxIYgTEFaQVIKK0RFSkFOT1ZJxIYgTEFaQVIKK0RFSkFOT1ZJxIYgTUlMQU5BCitERUpBTk9WScSGIE1JTEFOCitERUpBTk9WScSGIE1JTEFOCitERUpBTk9WScSGIE1JTElDQQorREVKQU5PVknEhiBNSUxPxaAKK0RFSkFOT1ZJxIYgTUlMT8WgCitERUpBTk9WScSGIE1JTE9SQUQKK0RFSkFOT1ZJxIYgTUlMT1JBRAorREVKQU5PVknEhiBNSVJKQU5BCitERUpBTk9WScSGIE1JUk9TTEFWCitERUpBTk9WScSGIFBFVEFSCitERUpBTk9WScSGIFBFVEFSCitERUpBTk9WScSGIFBFVEFSCitERUpBTk9WScSGIFJBREEKK0RFSkFOT1ZJxIYgU1RFVkFOCitERUpBTk9WScSGIFNURVZBTgorREVKQU5PVknEhiBWT0pJU0xBVgorREVKQU5PVlNLSSBNTEFERU4KK0RFSkFOT1ZTS0kgVE9NSVNMQVYKK0RFSkFOT1ZTS0kgVkVTRUxJTgorREVLQU5JxIYgQlJBTktPCitERUtBTknEhiBHTElHT1JJSkUKK0RFS0FOScSGIE1JTE/FoAorREVLQU5JxIYgTUlMT8WgCitERUtBTknEhiBWT0pJU0xBVgorREVLQU5JxIYgVk9KSVNMQVYKK0RFS0FOSiBBTlRBTAorREVLQU5TS0kgRElOQQorREVLQU5TS0kgUEFWTEUKK0RFS0nEhiBEQU5FCitERUxBxIwgRlJBTkNJxaBLQQorREVMRVRJxIYgR09SREFOQQorREVMScSGIMSQT1LEkEUKK0RFTEnEhiBCSUxKQU5BCitERUxJxIYgQk/FvUlEQVIKK0RFTEnEhiBCT0dEQU4KK0RFTEnEhiBEQVJJTktBCitERUxJxIYgREVTSU1JUgorREVMScSGIERSQUdJQ0EKK0RFTEnEhiBEUkFHSUNBCitERUxJxIYgRFJBR1VUSU4KK0RFTEnEhi1JQlVLScSGIEVTQUQKK0RFTEnEhiBJTElKQQorREVMScSGIEpBTkpBCitERUxJxIYgSk9WQU4KK0RFTEnEhiBNQVJBCitERUxJxIYgTUnEhk8gRFIKK0RFTEnEhiBNSUhBSkxPCitERUxJxIYgTUlMQU5BCitERUxJxIYgTUlMQU4KK0RFTEnEhiBNSUxJQ0EKK0RFTEnEhiBNSUxLQQorREVMScSGIE1JTE/FoAorREVMScSGIE1JTE9NSVIKK0RFTEnEhiBNSUxPU0FWQQorREVMScSGIE1VU1RBRkEKK0RFTEnEhiBQQcWgS08KK0RFTEnEhiBQRVRBUgorREVMScSGIFJBRE1JTEEKK0RFTEnEhiBSQURPSktBIERSCitERUxJxIYgUkFET01JUgorREVMScSGIFJBRE9TQVYKK0RFTEnEhi1TTEFWS09WScSGIFZFUkEKK0RFTEnEhiBTUkVURU4KK0RFTEnEhiBTVE9KQU4KK0RFTEnEhiBTVkVUT1pBUgorREVMScSGIFRPTUlTTEFWCitERUxJxIYgVkFTQQorREVMScSGIFZFU0VMS08KK0RFTEnEhiBWRVNOQQorREVMScSGIFZMQURPCitERUxJxIYgVkxBRE8KK0RFTEnEkE9SxJBFVknEhiBTVEVWQU5LQQorREVMSUJBxaBJxIYgREVKQU4gRElQTCBJTkcKK0RFTElCQcWgScSGIExKVUJJxaBBCitERUxJQkHFoEnEhiBMSlVCSUNBCitERUxJQkHFoEnEhiBNQVJJQ0EKK0RFTElCQcWgScSGIE1JTElWT0pFCitERUxJQkHFoEnEhiBNSUxJVk9KRQorREVMSUJBxaBJxIYgTUlMT1JBRAorREVMSUJBxaBJxIYgTUlPRFJBRworREVMSUJBxaBJxIYgU0FWTworREVMSUJBxaBJxIYgU09GSUpBCitERUxJQkHFoEnEhiBUT01JU0xBVgorREVMSUJMQcSGQU5JTiBKT1ZBTgorREVMS09WScSGIEpPVklDQQorREVMT0lLIERSQUdVVElOCitERUxPTkdBIFNUQU5LTworREVMT1YgT1JEQU7EjE8KK0RFTcSMRcWgRU4gVkFTSUxJSkUKK0RFTcWgQVIgR09SREFOQQorREVNxaBBUi1WRUdFUiBNQVJJSkEKK0RFTUFLIE1JUk9TTEFWCitERU1BTiBKQU5LTworREVNQU4gUkFTVElTTEFWCitERU1CSUMgU01JTEpBTkEKK0RFTUUgRU1BCitERU1FIEZSQU5DScWgS0EKK0RFTUUgSVJFTkEKK0RFTUUgS0xBUkEKK0RFTUXFoEkgQVJQQUQKK0RFTUVMSVMgTEpVQklDQQorREVNRU5ESSBCRUxBCitERU1FTkRJIERPUk9URUEKK0RFTUVSIEJFTEEKK0RFTUVSIEZSQU5DCitERU1FVEVSIEZFUkVOQworREVNRVRFUiBGUkFOSkEKK0RFTUVURVIgU1RFVkFOCitERU1JxIYgxb1JVk9SQUQKK0RFTUpFTiBCT1JJU0xBVgorREVNS08tUklIVEVSIEpPU0lQCitERU1PVlNLSSBTRVZESUpBCitERU1VVCBST1pBTElKQQorREVOxIxJSyBWTEFESVNMQVYKK0RFTkRBIERSQUdBTgorREVOREEgTUlMSVZPSgorREVOREnEhiBTUkVUSU1JUgorREVORcWgSSBWSUxJTQorREVOR09SSUNJSkEgU1RKRVBBTgorREVOScSGIMSMRURPTUlSCitERU5JxIYgxb1JVk9UQQorREVOScSGIExKVUJJxaBBCitERU5JxIYgTU9NxIxJTE8gRElQTCBJTkcKK0RFTknEhiBSQURJQ0EKK0RFTknEhiBTSU5JxaBBCitERU5JxIYgWlVaQU5BCitERU5LT1ZJxIYgTEpVQk9NSVIKK0RFTktPVlNLSSBKQU5FCitERVDEjEVOSlNLSSBTVEVGQU4KK0RFUiBGUkFOSkEKK0RFUiBKT8W9RUYKK0RFUiBMQUpPxaAKK0RFUiBTVEVWQU4KK0RFUkFKScSGIFNUT0pBCitERVJCQUtPViBNQVJLTworREVSQk9HT1NJSkFOIEJSQU5LTworREVSREnEhiBSVURPTEYKK0RFUkVIIFNJTUVPTgorREVSRVRBIE1JTEFOCitERVJFVEEgUEVUQVIKK0RFUkVUQSBTVkVUT1pBUgorREVSRVRJxIYgU1ZFVE9aQVIKK0RFUklLUkFWQSBNSUNBCitERVJNRU7EkElKRVZTS0kgRElNSVRBUgorREVST05KScSGIFRPRE9SCitERVJVxaBFSyBNSUxKRU5LTworREVSVknFoEVWScSGIEpVU1VGCitERVJWScWgRVZJxIYgTkVExb1JQgorREVSVknFoEVWScSGIFNMQVZLTworREVSVknFoEkgTUlTSU4KK0RFUlZJxaBJIFJBTUFEQU4KK0RFUlZJxaBJIFJVxaBJVAorREVSVknEhiDFoEVGS0EKK0RFU05JQ0EgxJBPUsSQRQorREVTTklDQSDEkFVSTyBNUgorREVTTklDQSBCT0dEQU4KK0RFU05JQ0EgQlJBTktPCitERVNOSUNBIEpBTktPCitERVNOSUNBIExVS0EKK0RFU05JQ0EgTklLT0xBCitERVNOSUNBIFJBRE9NSVIgRElQTCBJTkcKK0RFU05JQ0EgUkFET01JUgorREVTTklDQSBSRUxKQQorREVTTklDQSBTTUlMSktBCitERVNOSUNBIFNUQU5BCitERVNQRU5JxIYgQUxFS1NBTkRBUgorREVTUEkgSk9WQQorREVTUEkgVkVMSktPCitERVNQScSGIExBWkFSCitERVNQScSGIE1BUktPCitERVNQScSGIE1JUkpBTkEKK0RFU1BJxIYgU1JFVEVOCitERVNQScSGIFpPUkFOCitERVNQT1QgRFXFoEFOCitERVNQT1QgTUlMQU4KK0RFU1BPVCBNSUxJQ0EKK0RFU1BPVCBNSVJKQU5BCitERVNQT1QgTkFEQQorREVTUE9UIE5FTkFECitERVNQT1QgU0xPQk9EQU4KK0RFU1BPVE9WIEFMRUtTQU5EQVIKK0RFU1BPVE9WIERPQlJJTEEKK0RFU1BPVE9WIEVWRE9LSUpBCitERVNQT1RPViBJTElKQQorREVTUE9UT1YgSk9DQQorREVTUE9UT1YgTEpVQklOS0EKK0RFU1BPVE9WIE1JTEFOCitERVNQT1RPViBNSUxPVkFOCitERVNQT1RPViBSQURNSUxBCitERVNQT1RPViBSVcW9SUNBCitERVNQT1RPViBWSUxNQQorREVTUE9UT1YgVklUT01JUktBCitERVNQT1RPViBWT0pJU0xBVgorREVTUE9UT1YgWk9SQU4KK0RFU1BPVE9WScSGIEJJTEpBTkEKK0RFU1BPVE9WScSGIERSQUdVVElOCitERVNQT1RPVknEhiBMSklMSkFOQQorREVTUE9UT1ZJxIYgUEFOVEVMSUpBCitERVNQT1RPVknEhiBSQURJU0xBVgorREVTUE9UT1ZJxIYgUkFESVNMQVYKK0RFU1BPVE9WScSGIFJBRElWT0pFCitERVNQT1RPVknEhiBSQURJVk9KRQorREVTUE9UT1ZJxIYgUkFETUlMQQorREVTUE9UT1ZJxIYgUkFUS08KK0RFU1BPVE9WScSGIFNJTUtBCitERVNQT1RPVknEhiBTVEFOS08KK0RFU1BPVE9WScSGIFZBU08KK0RFU1BPVE9WScSGIFZPSklTTEFWCitERVNQT1RPVlNLSSBEVcWgQU4KK0RFVEFSSSBNQVJJSkEKK0RFVEVMSU4gxJBVUkEKK0RFVEVMSU4gSk9TSVAKK0RFVEVMSU4gTkFEQQorREVVUkEgRFXFoEFOIERJUEwgUFJBVk5JSworREVVUkEgUkFKS08KK0RFVVJBIFZFUkEKK0RFVVJJxIYgUkFETUlMQQorREVWQUkgxaBBTkRPUgorREVWQUkgSU1SRQorREVWQUkgTEFKT8WgCitERVZBSSBTQU5KQQorREVWQUkgWk9SSUNBCitERVZBSkEgTkFEQQorREVWQUpBIE9NRVIgRFIKK0RFVkFMRCBFVEVMS0EKK0RFVkFMRCBJVkFOCitERVZBTEQgSk9IQU4KK0RFVkXEjEVSSSBLUklTVElOQQorREVWRcSMRVJTS0kgQVZSQU0KK0RFVkXEjEVSU0tJIERBTklDQQorREVWRcSMRVJTS0kgVkFTSUxJSkUgRFIKK0RFVkVEQU4gxJBPUsSQRQorREVWRURBTiBCT0dEQU4KK0RFVkVEQU4gRFJBR09KRQorREVWRURBTiBNQVJBCitERVZFREFOIE1JTE9WQU4KK0RFVkVEQU4gTUlSS08KK0RFVkVUQUsgWk9SQQorREVWScSGLcSMT0JBTktTSSBNSUxKRU5LQQorREVWScSGIMW9SVZBTgorREVWScSGIMSQT0tBCitERVZJxIYgxJBPUsSQRQorREVWScSGIEFMRUtTQU5EQVIKK0RFVknEhiBBTktJQ0EKK0RFVknEhiBCSUxKQU5BCitERVZJxIYgQlJBTklTTEFWQQorREVWScSGIEJSQU5LQQorREVWScSGIENWSUpFVEEKK0RFVknEhiBEQU5JQ0EKK0RFVknEhiBEQU5JTEtBCitERVZJxIYgRE9CUk9TQVYKK0RFVknEhiBEUkFHT0xKVUIKK0RFVknEhiBEUkFHT01JUgorREVWScSGIERSQUdPCitERVZJxIYgRFXFoEFOCitERVZJxIYgRVZJQ0EKK0RFVknEhiBHT1JBTgorREVWScSGIEdST1pEQQorREVWScSGIElHTkpBVAorREVWScSGIElMSUpBCitERVZJxIYgSk9WQU4gRElQTCBJTkcKK0RFVknEhiBKT1ZBTktBIERSCitERVZJxIYgSk9WQU4KK0RFVknEhiBLQVRJQ0EKK0RFVknEhiBNSUxBTgorREVWScSGIE1JTEFOCitERVZJxIYgTUlMRU5LTworREVWScSGIE1JTEVUQQorREVWScSGIE1JTE/FoAorREVWScSGIE1JT0RSQUcKK0RFVknEhiBNSVJBCitERVZJxIYgTUxBREVOCitERVZJxIYgTkVCT0rFoEEKK0RFVknEhiBORU5BRAorREVWScSGIE5PVktBCitERVZJxIYgUEVUQVIKK0RFVknEhiBSQURPU0xBVgorREVWScSGIFNJTUEKK0RFVknEhiBTTEFWS08KK0RFVknEhiBTTE9CT0RBTgorREVWScSGIFRBVEpBTkEKK0RFVknEhiBUT01BCitERVZJxIYgVkVMSU5LQQorREVWScSGIFZMQURBCitERVZJxIYgVk9KSVNMQVYgRElQTCBJTkcKK0RFVknEhiBaQUdPUktBCitERVZSTkpBIEJSQU5JU0xBVgorREVWUk5KQSBEUkFHSUNBCitERVZSTkpBIExKVUJJQ0EKK0RFVlJOSkEtTUlIQUpMT1ZJxIYgTEpJTEpBTkEKK0RFVlJOSkEgTUlPRFJBRworREVWUk5KQSBTUEFTT0pFCitERVZVxaBJxIYgTUlMQU4KK0RJQ0tPViDEkE9SxJBFCitESUNLT1YgQUxFS1NBTkRSQQorRElDS09WIERSQUdBTgorRElDS09WIERSQUdBTgorRElDS09WIERVxaBLTworRElDS09WIElWQU4KK0RJQ0tPViBLT1NUQQorRElDS09WIE1JUkpBTkEKK0RJQ0tPViBOSUtPTEEKK0RJQ0tPViBTVEVWQU4KK0RJQ0tPViBWRVNFTElOCitESUNLT1YgVkVTRUxJTgorRElDS09WIFpPUktBCitESUNNQU4gWkRFTktBCitESURBTk9WScSGIMSMRURPTUlSCitESURBTk9WScSGIEJVRElNSVIKK0RJSkFLT1ZJxIYgUEFWQQorRElKQU1BVE9WScSGIERSQUdJQ0EKK0RJS0nEhiBCUkFOSVNMQVYKK0RJS0nEhiBCUkFOS08KK0RJS0nEhiBEVcWgQU4KK0RJS0nEhiBHT1JBTgorRElLScSGIEpPVkFOS0EKK0RJS0nEhiBKT1ZBTgorRElLScSGIE1JTEFOCitESUtJxIYgUkFUS08KK0RJS0nEhiBTQVZBIERJUEwgSU5HCitESUtJxIYgU1RFVkFOCitESUtJxIYgVkVMSU5LQQorRElLScSGIFpBR09SS0EKK0RJS0xJxIYgQUxFS1NBTkRBUgorRElLTEnEhiBBTEVLU0FOREFSCitESUtMScSGIEJSQU5JU0xBVgorRElLTEnEhiBEUkFHQU4KK0RJS0xJxIYgRFJBR0FOCitESUtMScSGIERVxaBBTgorRElLTEnEhiBEVcWgQU4KK0RJS0xJxIYgSkFTTUlOQQorRElLTEnEhiBKT1ZBTgorRElLTEnEhiBKVURJVAorRElLTEnEhiBNQVJUQQorRElLTEnEhiBNSUxBTgorRElLTEnEhiBNSUxFVEEKK0RJS0xJxIYgTUlST1NMQVYKK0RJS0xJxIYgUEVUQVIKK0RJS0xJxIYgU1RBTktPCitESUtPVknEhiBOSUtPTEEKK0RJTEJFUk9WScSGIEFOVE8KK0RJTcSMT1ZTS0kgVFJBSsSMRQorRElNxaBJxIYgQU5LQQorRElNQSBCT1NBCitESU1BxaBFVknEhiBBTEVLU0FOREFSCitESU1BxaBFVknEhiBQRVRBUgorRElNQU5JxIYgQU5LQQorRElNQU5JxIYgQlJBTklTTEFWCitESU1FU0tJIElMSUpBCitESU1FU0tJIE1FVE9ESUpFCitESU1JxIYgxb1BUktPCitESU1JxIYgxJBPUsSQRQorRElNScSGIEFLU0VOVElKRQorRElNScSGIEFLU0VOVElKRQorRElNScSGIEFOxJBFTEtBCitESU1JxIYgQk9HREFOCitESU1JxIYgQlJBTktPCitESU1JxIYgREFOSUNBCitESU1JxIYgRElNSVRSSUpFCitESU1JxIYgRFJBR09MSlVCIERSCitESU1JxIYgRFJBR09NSVIKK0RJTUnEhiBEUkFHTworRElNScSGIERVxaBBTiBEUgorRElNScSGIERVxaBBTgorRElNScSGIERVxaBBTgorRElNScSGIEVNSUxJSkEKK0RJTUnEhiBFUsW9RUJFVAorRElNScSGIElHTkpBVAorRElNScSGIElWQU4KK0RJTUnEhiBKQU5LTworRElNScSGIEtPU1RBCitESU1JxIYgTEFaQVIKK0RJTUnEhiBMQVpBUgorRElNScSGIExKVUJPTUlSCitESU1JxIYgTUlMQU4KK0RJTUnEhiBNSUxBTgorRElNScSGIE1JTEVWQQorRElNScSGIE1JTElDQQorRElNScSGIE1JTE/FoAorRElNScSGIE1JTE9KRSBESVBMIElORworRElNScSGIE1JVEEKK0RJTUnEhiBOQURBCitESU1JxIYgTkFEQQorRElNScSGIE5FQk9KxaBBCitESU1JxIYgTklLT0xBCitESU1JxIYgTklLT0xBCitESU1JxIYgTklLT0xBCitESU1JxIYgTklLT0xBCitESU1JxIYgT0xHQQorRElNScSGIE9aUkVOCitESU1JxIYgUEVUQVIKK0RJTUnEhiBTVEFOS08KK0RJTUnEhiBTVEVWQU4KK0RJTUnEhiBTVEVWQU4KK0RJTUnEhiBTVEVWQU4KK0RJTUnEhiBTVEVWQQorRElNScSGIFZBU0EKK0RJTUnEhiBWRVJJQ0EKK0RJTUnEhiBWSVRPTUlSCitESU1JxIYgVklUT01JUgorRElNScSGIFZMQURJTUlSCitESU1JVFJBxaBLT1ZJxIYgVkxBRElNSVIKK0RJTUlUUknEhiDFvUlWT1JBRAorRElNSVRSScSGIEJPR09MSlVCCitESU1JVFJJxIYgQlJBTktPCitESU1JVFJJxIYgRFJBR0FOCitESU1JVFJJxIYgTUlMRU5LTworRElNSVRSScSGIE1JTEVWQQorRElNSVRSScSGIE5PVkFLCitESU1JVFJJxIYgUEVSTworRElNSVRSScSGIFJBVEtPCitESU1JVFJJxIYgVkxBREFOCitESU1JVFJJxIYgWk9SQU4KK0RJTUlUUklBRElTIFBBVkxPUworRElNSVRSSUpFVknEhiDEjEVET01JUgorRElNSVRSSUpFVknEhiDEjEVET01JUgorRElNSVRSSUpFVknEhiDEkE9SxJBFCitESU1JVFJJSkVWScSGIMSQT1LEkEUKK0RJTUlUUklKRVZJxIYgxJBVUsSQQQorRElNSVRSSUpFVknEhiBBTEVLU0FOREFSCitESU1JVFJJSkVWScSGIEFSU0EKK0RJTUlUUklKRVZJxIYgQVJTRU4KK0RJTUlUUklKRVZJxIYtQkVTRVJNRU5KSSBLQVRJQ0EKK0RJTUlUUklKRVZJxIYgQk9SSVZPSkUKK0RJTUlUUklKRVZJxIYgQlJBTklTTEFWQQorRElNSVRSSUpFVknEhiBCUkFOSVNMQVYKK0RJTUlUUklKRVZJxIYgQlJBTklTTEFWCitESU1JVFJJSkVWScSGIEJSQU5LQQorRElNSVRSSUpFVknEhiBCUlpPTUlSCitESU1JVFJJSkVWScSGIERBTklDQQorRElNSVRSSUpFVknEhiBEQU5JQ0EKK0RJTUlUUklKRVZJxIYgREVTQU5LQQorRElNSVRSSUpFVknEhiBESU1JVFJJSkUKK0RJTUlUUklKRVZJxIYgRE9CUklDQQorRElNSVRSSUpFVknEhiBEUkFHQU4KK0RJTUlUUklKRVZJxIYgRFJBR0FOCitESU1JVFJJSkVWScSGIERSQUdBTgorRElNSVRSSUpFVknEhiBEUkFHQU4KK0RJTUlUUklKRVZJxIYgRFXFoEFOIERSCitESU1JVFJJSkVWScSGIERVxaBBTktBCitESU1JVFJJSkVWScSGIERVxaBBTgorRElNSVRSSUpFVknEhiBFUsW9RUJFVAorRElNSVRSSUpFVknEhiBFVEVMQQorRElNSVRSSUpFVknEhiBFVklDQQorRElNSVRSSUpFVknEhiBKRUxFTkEKK0RJTUlUUklKRVZJxIYgSkVMRU5BCitESU1JVFJJSkVWScSGIEpFTElDQQorRElNSVRSSUpFVknEhiBKT1ZBTgorRElNSVRSSUpFVknEhiBKT1ZBTgorRElNSVRSSUpFVknEhiBKT1ZBTgorRElNSVRSSUpFVknEhiBMQVpBUgorRElNSVRSSUpFVknEhiBMSlVCSUNBIERSCitESU1JVFJJSkVWScSGIExKVUJJQ0EKK0RJTUlUUklKRVZJxIYgTEpVQklDQQorRElNSVRSSUpFVknEhiBMSlVCSU5LTworRElNSVRSSUpFVknEhiBNQVJHSVRBCitESU1JVFJJSkVWScSGIE1BUklDQQorRElNSVRSSUpFVknEhiBNSUxBTiBNUgorRElNSVRSSUpFVknEhiBNSUxBTgorRElNSVRSSUpFVknEhiBNSUxBTgorRElNSVRSSUpFVknEhiBNSUxBTgorRElNSVRSSUpFVknEhiBNSUxBCitESU1JVFJJSkVWScSGIE1JTElWT0oKK0RJTUlUUklKRVZJxIYgTUlMS0EKK0RJTUlUUklKRVZJxIYgTUlMT0pFCitESU1JVFJJSkVWScSGIE1JTE9WQU4KK0RJTUlUUklKRVZJxIYgTUlMVVRJTgorRElNSVRSSUpFVknEhiBNSU9EUkFHCitESU1JVFJJSkVWScSGIE1JT0RSQUcKK0RJTUlUUklKRVZJxIYgTUlPRFJBRworRElNSVRSSUpFVknEhiBNSVLEjEUKK0RJTUlUUklKRVZJxIYgTUlST1NMQVZLQQorRElNSVRSSUpFVknEhiBNSVJPU0xBVgorRElNSVRSSUpFVknEhiBNTEFERU4KK0RJTUlUUklKRVZJxIYgTkFEQQorRElNSVRSSUpFVknEhiBOQURBCitESU1JVFJJSkVWScSGIE5FTkFECitESU1JVFJJSkVWScSGIE5FVkVOS0EKK0RJTUlUUklKRVZJxIYgUEFKQQorRElNSVRSSUpFVknEhiBQRVRBUgorRElNSVRSSUpFVknEhiBQRVRBUgorRElNSVRSSUpFVknEhiBQRVRBUgorRElNSVRSSUpFVknEhiBQUkVEUkFHCitESU1JVFJJSkVWScSGIFBSRURSQUcKK0RJTUlUUklKRVZJxIYgUkFESVNBVgorRElNSVRSSUpFVknEhiBSQURJVk9KRQorRElNSVRSSUpFVknEhiBSQURJVk9KCitESU1JVFJJSkVWScSGIFJBVEtPCitESU1JVFJJSkVWScSGIFNBxaBBCitESU1JVFJJSkVWScSGIFNBVkEKK0RJTUlUUklKRVZJxIYgU0xBVktPCitESU1JVFJJSkVWScSGIFNMQVZPTEpVQgorRElNSVRSSUpFVknEhiBTUsSQQQorRElNSVRSSUpFVknEhiBTVEFOS08KK0RJTUlUUklKRVZJxIYgU1RBTk9KRQorRElNSVRSSUpFVknEhiBTVEVWQU4KK0RJTUlUUklKRVZJxIYgU1RPSkFESU4KK0RJTUlUUklKRVZJxIYgU1RPSkFESU4KK0RJTUlUUklKRVZJxIYgU1ZFVE9NSVIKK0RJTUlUUklKRVZJxIYgVElIT01JUgorRElNSVRSSUpFVknEhiBUT01JU0xBVgorRElNSVRSSUpFVknEhiBWRVJBCitESU1JVFJJSkVWScSGIFZJVE9NSVIKK0RJTUlUUklKRVZJxIYgVlVKSUNBCitESU1JVFJJSkVWScSGIFZVS09TQVZBCitESU1JVFJJSkVWScSGIFpMQVRJQk9SCitESU1JVFJJSkVWScSGIFpPUkFOCitESU1JVFJJSkVWScSGIFpPUkFOCitESU1JVFJJSkVWScSGIFpPUklDQQorRElNSVRSSUpFVknEhiBaT1JJQ0EKK0RJTUlUUklKRVZTS0kgTUlIQUpMTworRElNSVRST1Ygxb1JVk9KSU4KK0RJTUlUUk9WIMSQT0tBCitESU1JVFJPViDEkE9SxJBFCitESU1JVFJPViBCT8WgS08KK0RJTUlUUk9WIEJPUk8KK0RJTUlUUk9WIEJSQU5JU0xBVgorRElNSVRST1YgQlJBTktPCitESU1JVFJPViBESU1JVFJJSkUKK0RJTUlUUk9WIERVxaBBTgorRElNSVRST1YgRFXFoEFOCitESU1JVFJPViBFRlRJTQorRElNSVRST1YgSk9DQQorRElNSVRST1YgUEVUQVIKK0RJTUlUUk9WIFJBRElTTEFWCitESU1JVFJPViBTTEFWS08KK0RJTUlUUk9WIFNPU0EKK0RJTUlUUk9WIFNURVZBTgorRElNSVRST1YgU1ZFVElTTEFWCitESU1JVFJPViBVUk/FoAorRElNSVRST1YgVkVMScSMS08KK0RJTUlUUk9WIFpMQVRBCitESU1JVFJPVlNLSSBJTE9OQQorRElNSVRST1ZTS0kgTEpVQk9NSVIKK0RJTUlUUk9WU0tJIExKVUJPTUlSCitESU1JVFJPVlNLSSBQQVZMRQorRElNS09WScSGIEJPUklTTEFWCitESU1LT1ZTS0kgR09SQU4KK0RJTUtPVlNLSSBMSlVCScWgQQorRElNT1NLSSBOSUtPTEEKK0RJTU9WIERJTUlUQVIKK0RJTU9WIFRPRE9SCitESU1PVkEgS0FUSUNBCitESU1PVknEhiBTT0ZJSkEKK0RJTU9WU0tJIMSQRVJPCitESU1PVlNLSSBBTkRSSUpBCitESU1PVlNLSSBMSlVCSUNBCitESU1PVlNLSSBNQVJJTkEKK0RJTU9WU0tJIE1JTElDQQorRElNT1ZTS0kgVFJBSsSMRQorRElOxIxJxIYgS0FUSUNBCitESU7EjEnEhiBNSUxPUkFECitESU7EjEnEhiBTTE9CT0RBTgorRElOxIxJxIYgU1JFVEVOS0EKK0RJTsSMSUsgTUFSSUpBCitESU5JxIYgxIxFRE9NSVIKK0RJTknEhiBCT8W9SURBUgorRElOScSGIEJPU0EKK0RJTknEhiBKT8WgS0EKK0RJTknEhi1LTkXFvUVWScSGIERVxaBBTktBCitESU5JxIYgTUlMT1JBRAorRElOScSGIFJBRE9NSVIKK0RJTknEhiBWQUxFUklKQQorRElOScSGIFZMQURFVEEKK0RJTknEhiBaVk9OSU1JUgorRElOSkHFoEtJIMW9QVJLTworRElOSkHFoEtJIElSSU5BCitESU5KQcWgS0kgS1NFTklKQQorRElOSkHFoEtJIExFUEEKK0RJTkpBxaBLSSBORVNUT1IKK0RJTkpBxaBLSSBTVEFOSU1JUgorRElOSkHFoEtJIFNUQU5LQQorRElOSkHFoEtJIFNURVZBTgorRElOSkHFoEtJIFRSSVZBCitESU5KQcWgS0kgWkRSQVZLTworRElOSkXFoCBKT1NJUAorRElOVUxPVknEhiBSQURPU0xBVgorRElPxaBJIEpPU0lQCitESVJORVIgQVJBTktBCitESVNJxIYgTEpVQknFoEEKK0RJU0nEhiBWTEFESU1JUgorRElUUklIIEFOQQorRElUUklIIFJPQkVSVAorRElUUklIIFZMQURJTUlSCitESVZJxIYgTUlMRU5LTworRElWSUpBxIxLSSBEUkFHQU4KK0RJVklKQcSMS0kgRFJBR0FOCitESVZJTEQgxJBPUsSQRQorRElWSUxEIEFORFJJSkEKK0RJVklMRCBKRUxJU0FWRVRBCitESVZJTEQgUkFET1NMQVYKK0RJVkpBSyBEVcWgQU4KK0RJVkpBSyBEVcWgQU4KK0RJVkpBSyBEVcWgQU4KK0RJVkpBSyBNQVJJTktPCitESVZKQUsgTUlMQU4KK0RJVkpBSyBNSUxBTgorRElWSkFLIE1JTEFOCitESVZKQUsgU0FWQQorRElWSkFLT1ZJxIYgxJBPUsSQRQorRElWSkFLT1ZJxIYgQlJBTktPCitESVZKQUtPVknEhiBHQVZSQQorRElWSkFLT1ZJxIYgSkVMSUNBCitESVZKQUtPVknEhiBMSlVCSUNBCitESVZKQUtPVknEhiBNQVJJSkEKK0RJVkpBS09WScSGLVJBREnEjEVWQSBET1JJTkEKK0RJVkpBS09WScSGIFNURVZBTgorRElWSkFLT1ZJxIYgVE9ET1IKK0RJVkpBS09WScSGIFZMQURBCitESVZMSkFLIEFMRUtTQU5EQVIKK0RJVkxKQUsgQU5HRUxJTkEKK0RJVkxKQUsgQk/FoEtPCitESVZMSkFLIERFU0lNSVIKK0RJVkxKQUsgRE9CUklWT0oKK0RJVkxKQUsgRFJBR08KK0RJVkxKQUsgTUlST1NMQVYKK0RJVkxKQUsgTUlST1NMQVYKK0RJVkxKQUsgUkFUS08KK0RJVkxKQUsgWkRSQVZLTworRElWTEpBS09WScSGIERSQUdVVElOCitESVZMSkFLT1ZJxIYgSVZBTktBCitESVZMSkFOIE5FTkFECitESVZOScSGIMW9SVZBTgorRElWTknEhiDEkE9SxJBFCitESVZOScSGIEpFTEtBCitESVZOScSGIE1JUkpBTkEKK0RJVk5JxIYgUEFKQQorRElWTknEhiBTTE9CT0RBTgorRElWTknEhiBTT05KQQorRElWTknEhiBTVkVUT1pBUgorRElWT1ZJxIYgUkFET1ZBTgorRElaREFSIEFOxJBBCitESVpEQVIgQU5LSUNBCitESVpEQVIgSVZJQ0EKK0RJWkRBUiBKT1NJUAorRElaREFSIEpVUkUKK0RJWkRBUiBKVVJPCitESVpEQVIgTUFSSUpBCitESVpEQVIgTUFSS08KK0RJWkRBUiBQQVZPCitESVpEQVIgU0FSQUZJTkEKK0RJWkRBUiBWTEFETworRElaREFSRVZJxIYgUkFET0xKVUIKK0RMVUhJIEpPU0lQCitETUlUUkHFoElOT1ZJxIYgUkFERQorRE1JVFJJSkVWIExJRElKQQorRE1JVFJPVknEhiBEQU5JQ0EKK0RNSVRST1ZJxIYgTEpJTEpBTkEKK0RNSVRST1ZJxIYgTUlMT8WgCitETUlUUk9WScSGIE1JUkpBTkEKK0RNSVRST1ZJxIYgUkFERU5LTyBMRUtBUgorRE1JVFJPVknEhiBTVEVWQU4KK0RNSVRST1ZJxIYgU1RFVkFOCitET8WgRU1PVknEhiBQUkVEUkFHCitET8WgRU4gxb1JVkFESU4KK0RPxaBFTiBCSUxKQU5BCitET8WgRU4gQlJBTktPCitET8WgRU4gREVTQU5LQQorRE/FoEVOIERSQUdBTgorRE/FoEVOIERVxaBBTgorRE/FoEVOIERVxaBBTgorRE/FoEVOIERVxaBBTgorRE/FoEVOIERVQlJBVktBCitET8WgRU4gSFJJU1RJTkEgRFIKK0RPxaBFTiBJTElKQQorRE/FoEVOIElWQU4KK0RPxaBFTiBJVkFOCitET8WgRU4gSkVMRU5BCitET8WgRU4gTUlMQU4KK0RPxaBFTiBNSUxBTgorRE/FoEVOIE1JTEUKK0RPxaBFTiBNSUxPxaAKK0RPxaBFTiBSQURPU0xBVgorRE/FoEVOIFJBRE9TTEFWCitET8WgRU4gUkFUS08KK0RPxaBFTiBTVkVUTEFOQQorRE/FoEVOIFZPSklOCitET8WgRU5PVknEhiDEjEVET01JUgorRE/FoEVOT1ZJxIYgTUlMSVZPSkUKK0RPxaBFTk9WScSGIE1JUk9TTEFWQQorRE/FoEVOT1ZJxIYgVkFTSUxKS0EKK0RPxaBFTk9WScSGIFZPSklOCitET8WgScSGIEdJWkVMQQorRE/FoExJxIYgTUlMSUNBCitET8WgTEnEhiBORU5BRAorRE/FoExJxIYgUkFET1NMQVYKK0RPxaBMT1YgS1JTVE8KK0RPxaBMT1YgU0xBVklDQQorRE/FvUnEhiBMSklMSkFOQQorRE/FvUnEhiBNQVJJQ0EKK0RPxb1JxIYgU1RFVkFOCitET8W9ScSGIFNURVZBTgorRE/FvUnEhiBTVkVUSVNMQVYKK0RPxb1JxIYgVkFTSUxKS0EKK0RPQkFOIE1BUsSMRUwKK0RPQkFOT1ZBxIxLSSDEjEVET01JUgorRE9CQU5PVkHEjEtJIEFMRUtTQU5EQVIKK0RPQkFOT1ZBxIxLSSBCT1JJU0xBVgorRE9CQU5PVkHEjEtJIEJSQU5JU0xBVgorRE9CQU5PVkHEjEtJIERPQlJJTktBCitET0JBTk9WQcSMS0kgRFXFoEFOS0EKK0RPQkFOT1ZBxIxLSSBEVcWgQU5LQQorRE9CQU5PVkHEjEtJIERVxaBBTgorRE9CQU5PVkHEjEtJIElSRU5BCitET0JBTk9WQcSMS0kgSkVMS0EKK0RPQkFOT1ZBxIxLSSBKVUxLQQorRE9CQU5PVkHEjEtJIEpVTEtJQ0EKK0RPQkFOT1ZBxIxLSSBNQUtTSU0KK0RPQkFOT1ZBxIxLSSBNSUxBTgorRE9CQU5PVkHEjEtJIE1JTEFOCitET0JBTk9WQcSMS0kgTUlSSkFOQQorRE9CQU5PVkHEjEtJIE1JUktPCitET0JBTk9WQcSMS0kgUEVUQVIKK0RPQkFOT1ZBxIxLSSBSQURPTUlSCitET0JBTk9WQcSMS0kgU0FWQQorRE9CQU5PVkHEjEtJIFNBVkEKK0RPQkFOT1ZBxIxLSS1TQVZJxIYgVElOS0EKK0RPQkFOT1ZBxIxLSSBTVEVWQU4KK0RPQkFOT1ZBxIxLSSBUSU5LQQorRE9CQU5PVkHEjEtJIFpPUklDQQorRE9CQU5PVknEhiBTT0ZJSkEKK0RPQkXFoCBKT1ZBTgorRE9CSSBKVUxJSkFOQQorRE9CScSGIEJSQU5JU0xBVgorRE9CScSGIFBFVEFSCitET0JPIElMRcWgCitET0JPIEpPxb1FRgorRE9CTyBKT8W9RUYKK0RPQk/FoCBKT8W9RUYKK0RPQk/FoEkgxaBBTkRPUgorRE9CT8WgSSDEkEVSxJAKK0RPQk/FoEkgRVLFvUVCRVQKK0RPQk/FoEkgSkFOT8WgCitET0JPxaBJIExBU0xPCitET0JPxaBJIE1BR0RBTEVOQQorRE9CT8WgSSBNQVJHSVRBCitET0JPxaBJIFBBTAorRE9CT0tBSSBNSUhBSkxPCitET0JPVknEjEVLIEZSQU5DCitET0JSQSBJVkFOCitET0JSQcWgIE1JTEtBCitET0JSQU4gU0xBVktPCitET0JSQU5JxIYgUkFET1ZBTgorRE9CUkFOScSGIFZJRE9TQVZBCitET0JSRSBCT8W9QQorRE9CUkVOT1YgRFXFoEFOIERJUEwgSU5HCitET0JSRU5PViBHUkVUQQorRE9CUkVOT1YgSkVMSVNBVkVUQQorRE9CUkVOT1YgSkVMSVNBVkVUQQorRE9CUkVOT1YgTklLT0xBCitET0JSRU5PViBTQU5EUkEKK0RPQlJFTk9WIFZPSklOCitET0JSRVRJxIYgTUFSSUNBCitET0JSScSMS0kgRFXFoEFOCitET0JSScSMS0kgTUFSSUpBCitET0JSScSGIMW9SVZLTworRE9CUknEhiDEkE9SxJBFCitET0JSScSGIEJPxaBLTworRE9CUknEhiBCUkFOSVNMQVYKK0RPQlJJxIYgRVLFvUVCRVQKK0RPQlJJxIYgR09KS08KK0RPQlJJxIYgSk9WQU4KK0RPQlJJxIYgS09TVEEKK0RPQlJJxIYgTEpVQklDQQorRE9CUknEhiBNSUxBRElOCitET0JSScSGIE1JTEFOCitET0JSScSGIE1JTEFOCitET0JSScSGIE5FR09TQVZBCitET0JSScSGIFJBRElTTEFWCitET0JSScSGIFJBRElWT0oKK0RPQlJJxIYgU0xPQk9EQU4KK0RPQlJJxIYgU1RFVkFOCitET0JSScSGIFVHTEpFxaBBCitET0JSScSGIFZFUk9OSUtBCitET0JSScSGIFZFU05BCitET0JSScSGIFpEUkFWS08KK0RPQlJJSkVWScSGIERVxaBBTgorRE9CUklKRVZJxIYgUEVUQVIKK0RPQlJJSkVWScSGIFNMT0JPREFOS0EKK0RPQlJJTE9WScSGIFJBSktPCitET0JSSUxPVknEhiBSQUpLTworRE9CUklMT1ZJxIYgU0lNQQorRE9CUklOIERFxb1FCitET0JSSU4gTklLT0xBCitET0JSSU4gT0xHQQorRE9CUklOScSGIERBUklOS0EKK0RPQlJJVk9KRVZJxIYgRFXFoEFOCitET0JSSVZPSkVWScSGIFNWRVRMQU5BCitET0JSTkpBQyBTVE9KQU5LQQorRE9CUk9ERUwgRlJBTkpPCitET0JST0RPTFNLSSBKRUxFTkEKK0RPQlJPRE9MU0tJIEpVTEtBCitET0JST0RPTFNLSSBWVUtJQ0EKK0RPQlJPS0VTIE1JTEVOQQorRE9CUk9NSVJPViBBTEVLU0FOREFSCitET0JST01JUk9WIEFMRUtTQU5EQVIKK0RPQlJPTUlST1YgRFXFoEFOCitET0JST01JUk9WIEVVRklNSUpBCitET0JST01JUk9WIE5BREEKK0RPQlJPTUlST1YgUEVUQVIKK0RPQlJPTUlST1YgVklUT01JUgorRE9CUk9NSVJPViBWTEFESU1JUgorRE9CUk9NSVJPViBWT0pJU0xBVgorRE9CUk9NSVJPVknEhiBQQVZMRQorRE9CUk9TQVZMSkVWIExBWkFSCitET0JST1NBVkxKRVYgTEFaQVIKK0RPQlJPU0FWTEpFViBNSUxBTgorRE9CUk9TQVZMSkVWIE1JTEFOCitET0JST1NBVkxKRVYgTUlMQU4KK0RPQlJPU0FWTEpFViBNSUxPVkFOCitET0JST1NBVkxKRVYgTUlSQQorRE9CUk9TQVZMSkVWIFBFVEFSCitET0JST1NBVkxKRVYgUkFEQQorRE9CUk9TQVZMSkVWIFJBTktPCitET0JST1NBVkxKRVYgU0FWQQorRE9CUk9TQVZMSkVWIFNWRVRPWkFSCitET0JST1NBVkxKRVZJxIYgRFJFTktBCitET0JST1NBVkxKRVZJxIYgU0xBVktPCitET0JST1NBVkxKRVZJxIYgVkFTQSBOT1ZJTkFSCitET0JST1NBVkxKRVZJxIYgVkFTSUxJSkUKK0RPQlJPU0FWTEpFVknEhiBWQVNJTElKRQorRE9CUk9UQSBCSVNFUktBCitET0JST1RBIERBTUlSCitET0JST1ZJxIYgQUxFS1NBTkRSQQorRE9CUk9WScSGIERBTUpBTktBCitET0JST1ZJxIYgTEpVQk9NSVIKK0RPREVST1ZJxIYgTUlMT1NBVgorRE9ERVJPVknEhiBSQURJVk9KCitET0RJxIYgSVZBTgorRE9EScSGIEpFTEVOQQorRE9EScSGIE1JTElWT0oKK0RPREnEhiBNSU9EUkFHCitET0RJxIYgTUlPRFJBRworRE9EScSGIFNBVkEKK0RPREnEhiBTTE9CT0RBTgorRE9EScSGIFNUQU5PSkUKK0RPREnEhiBTVE9KQU4KK0RPREnEhiBWRVJBCitET0RJSyBCQVJUT0wKK0RPRElLIFNURVZBTgorRE9ETEVLIFZMQURJTUlSCitET0RPxaAgTEFaQVIKK0RPR0FORMW9ScSGIERPQlJJVk9KRQorRE9KxIxJTk9WScSGIMSQVUpBCitET0rEjElOT1ZJxIYgxJBVUsSQSUNBCitET0rEjElOT1ZJxIYgQkxBR09KRQorRE9KxIxJTk9WScSGIEJPxb1JREFSCitET0rEjElOT1ZJxIYgRFXFoEFOCitET0rEjElOT1ZJxIYgSk9TSUYKK0RPSsSMSU5PVknEhiBNSUhBSkxPCitET0rEjElOT1ZJxIYgTUlST1NMQVYgRFIKK0RPSsSMSU5PVknEhiBSQURPU0xBVgorRE9KxIxJTk9WScSGIFZMQURBCitET0rEjElOT1ZTS0kgVkFOxIxBCitET0pERVIgSVZPCitET0pERVIgSkFLT1YKK0RPSknEhiBMQVpBUgorRE9KS0nEhiBCT8W9SURBUgorRE9KS0nEhiBKVUxLSUNBCitET0pLScSGIEtTRU5JSkEKK0RPSktJxIYgTUFSSUpBCitET0pLScSGIE1JTE9SQUQKK0RPSktJxIYgTUlMT1JBRAorRE9KS0nEhiBNTEFERU4KK0RPSktJxIYgTUxBREVOCitET0pLScSGIFBBSkEKK0RPSktJxIYgUEVUQVIgRFIKK0RPSktJxIYgUEVUQVIKK0RPSktJxIYgUkFKS08KK0RPSktJxIYgUkFKS08KK0RPSktJxIYgU0xBVktPCitET0pLScSGIFZKRUtPU0xBVgorRE9LTEVBTiBBREFNCitET0tNQU5PVknEhiBCT1JJVk9KCitET0tNQU5PVknEhiBERUpBTgorRE9LTUFOT1ZJxIYgTUFSSUpBCitET0tNQU5PVknEhiBNSUxJQ0EKK0RPS01BTk9WScSGIE5BREEKK0RPS01BTk9WScSGIFJBRElWT0oKK0RPS05JxIYgVkVMSktPCitET0tPxaBJxIYgTUFSSUpBCitET0xBxaAgTUlMT1ZBTgorRE9MRU5FQyBGTE9SSUpBTgorRE9MR0EgTUlMRU5BCitET0xJTkFKIMSQVVJPCitET0xJTkFKIEpBUk9TTEFWQQorRE9MSU5BUiBMSlVCSUNBCitET0xJTkdBIE1BUklPUkEKK0RPTElOR0EgTklLT0xBSkUKK0RPTE/FoCBGUkFOSkEKK0RPTE9WxIxBSyBLQVRJQ0EKK0RPTE9WQUMgQU5LSUNBCitET0xPVkFDIEJJU0VSS0EKK0RPTE9WQUMgRFJBR0lDQQorRE9MT1ZBQyBKT1ZBTgorRE9MT1ZBQyBMQVpBUgorRE9MT1ZBQyBMQVpBUgorRE9MT1ZBQyBNQVJJSkEKK0RPTE9WQUMgTUlMSUNBCitET0xPVkFDIE1JTE/FoAorRE9MT1ZBQyBSQURJVk9KCitET0xPVkFDIFJBRE9TTEFWCitET0xPVkFDIFJBRE9TTEFWCitET0xPVkFDIFNMQVZLTworRE9MT1ZBQyBTTEFWS08KK0RPTE9WQUMgU0xPQk9EQU4KK0RPTE9WQUMgVkVMSU1JUgorRE9MT1ZBQyBaT1JLQQorRE9NQVNUT1ZJxIYgREFOSUNBCitET01BWkVUIE5JS09MQQorRE9NQVpFVCBaT1JJQ0EKK0RPTUFaRVRPViBWRUxJTUlSCitET01BWkVUT1ZJxIYgxIxFRE9NSVIKK0RPTUFaRVRPVknEhiBNSVJKQU5BCitET01BWkVUT1ZJxIYgTUlSSkFOQQorRE9NQkkgTEFTTE8KK0RPTUJJIFJBRE9KS0EKK0RPTUJJIFNNSUxKS0EKK0RPTUlOScSGIEFOQQorRE9NSU5JxIYgTklLT0xBCitET01PTkpJIE1BUlRJTgorRE9NT05LT8WgIEVWQQorRE9NT05LT8WgIFZJTE1PxaAKK0RPTU9OS09TIEnFoFRWQU4KK0RPTU9WScSGIE1JTEFOCitET07EjEVWIFRPREUKK0RPTsSMScSGIE5BREEKK0RPTkFUIERSQUdVVElOCitET05BVCBTQVZFVEEKK0RPTkRVUiDFvUlWS08KK0RPTkRVUiBEQU5JQ0EKK0RPTkRVUiBEQVJJTktBCitET05EVVIgTUlMSUNBCitET05EVVIgU0xBVktPCitET05EVVIgU1RBTktPCitET05EVVIgWkRSQVZLTworRE9ORVYgVE9ET1IKK0RPTkVWU0tJIEpFTEVOQQorRE9ORVZTS0kgS1JJU1RJTkEKK0RPTknEhiDFvUlWT0pJTgorRE9OS09SIETFvUVNUworRE9OU0tPViBTRVJHSUpFCitET05TS09WQSBaT0pBIERSIExFS0FSCitET1BVxJAgQk/FvUlEQVIKK0RPUFXEkCBCUkFOS08KK0RPUFXEkCBEVUJSQVZLQQorRE9QVcSQIEdPUkFOCitET1BVxJAgTUFSSUpBCitET1BVxJAgTUlMQU4gRFIKK0RPUFXEkCBNSVJPU0xBVkEKK0RPUFXEkEEgxb1JVktPCitET1BVxJBBIERBUkEKK0RPUFXEkEEgRFJBR09NSVIKK0RPUFXEkEEgU0FWQQorRE9QVcSQQSBWTEFESU1JUgorRE9SxIxJxIYgQUxPSlpBCitET1LEjEnEhi1CSUtJxIYgT0xHSUNBCitET1LEjEnEhiBCT8W9TworRE9SxIxJxIYgS0xFTUVOVAorRE9SxIxJxIYgTUFSSkFOCitET1JJxIYgxb1BUktPCitET1JJxIYgQklMSkFOQQorRE9SScSGIEJJTEpBTkEKK0RPUknEhiBCT1JJU0xBVgorRE9SScSGIEZSQU5KQQorRE9SScSGIElMSUpBCitET1JJxIYgSVJNQQorRE9SScSGIEpPU0lQCitET1JJxIYgUEVUQVIKK0RPUknEhiBTVEVWQU4KK0RPUknEhiBWRVNFTElOCitET1JLTyBTT0ZJSkEKK0RPUk1BTiBMQVNMTworRE9STyBHRVpBIERSCitET1JPxaBFViDEkE9SxJBFCitET1JPxaBLSSDEkE9SxJBFCitET1JPxaBLSSBCUkFOS08KK0RPUk/FoEtJIERFU0FOS0EKK0RPUk/FoEtJIEpPVkFOIERSCitET1JPxaBLSSBMSklMSkFOQQorRE9ST8WgS0kgTUFSSUpBCitET1JPxaBLSSBNSUxBTgorRE9ST8WgS0kgTUlMQQorRE9ST8WgS0kgTUlSSkFOQQorRE9ST8WgS0kgTklLT0xBCitET1JPxaBLSSBTSU1BCitET1JPxaBLSSBWSURPU0FWQQorRE9ST8WgS0kgVlVKQURJTgorRE9ST0NLSSBNQUhBTAorRE9ST0dIQVpJIElSSU5BCitET1JPR0kgxaBBTkRPUgorRE9ST05KU0tJIERVxaBBTgorRE9ST05KU0tJIEtBVEFSSU5BCitET1JPU0xPVkHEjEtJIMSQVVJBCitET1JPU0xPVkHEjEtJIEFMRUtTQU5EQVIKK0RPUk9TTE9WQcSMS0kgQU5JQ0EKK0RPUk9TTE9WQcSMS0kgREFOSUNBCitET1JPU0xPVkHEjEtJIEdSVUpBCitET1JPU0xPVkHEjEtJIEpFTEVOQQorRE9ST1NMT1ZBxIxLSSBLU0VOSUpBCitET1JPU0xPVkHEjEtJIE1BUkdJVEEKK0RPUk9TTE9WQcSMS0kgTUFSSU5BCitET1JPU0xPVkHEjEtJIE1BUkpBTkEKK0RPUk9TTE9WQcSMS0kgTUlST1NMQVYKK0RPUk9TTE9WQcSMS0kgTklLT0xBCitET1JPU0xPVkHEjEtJIFJBREUKK0RPUk9TTE9WQcSMS0kgU0FWRVRBCitET1JPU0xPVkHEjEtJIFNURVZBTktBCitET1JPU0xPVkHEjEtJIFZVSkEKK0RPUk9TTE9WQcSMS0kgVlVLQQorRE9ST1NMT1ZBQyBCUkFOSVNMQVZBCitET1JPU0xPVkFDIExBWkFSCitET1JPU0xPVkFDIE1BUklKQQorRE9ST1NMT1ZBQyBNSUxBTkEKK0RPUk9TTE9WQUMgTUlST1NMQVYKK0RPUk9TTE9WQUMgUEVUQVIKK0RPUk9TTE9WQUMgWk9SQU4KK0RPUk9UScSGIMSQT1LEkEUKK0RPUk9UScSGIMSQT1LEkEUKK0RPUk9UScSGIEdJWkVMQQorRE9ST1RJxIYgR09SREFOCitET1JPVEnEhi1HVVRFxaBBIExFT05BCitET1JPVEnEhiBJTEEgTVIgUFJPRgorRE9ST1RJxIYgTUFSSUpBCitET1JPVEnEhiBTVEVWQU4KK0RPUk9US0EgRFJBR0FOCitET1JPVEtBIE1JTE/FoAorRE9TVEFOIEFOQQorRE9TVEFOIEFSUEFECitET1NUQU4gREFSSU5LQQorRE9TVEFOIEnFoFRWQU4KK0RPU1RBTiBKT8W9RUYKK0RPU1RBTiBMQURJU0xBVgorRE9TVEFOIFBFVEFSCitET1NUQU4gU1RFVkFOCitET1NUQU4gVElCT1IKK0RPU1RBTknEhiBEUkFHSUNBCitET1NUQU5JxIYgUkFETUlMTworRE9TVEFOScSGIFZPSVNMQVYKK0RPU1RBTkogSk9TSVAKK0RPU1RBTkogUk9aQUxJSkEKK0RPU1RJxIYgU0xBVktPCitET1NUScSGIFNPRklKQQorRE9UTEnEhiDFvUlWS08KK0RPVExJxIYgQk/FoEtPCitET1RMScSGIEJPUklTTEFWCitET1RMScSGIERPQlJJTEEKK0RPVExJxIYgRFXFoEFOCitET1RMScSGIExBWkFSCitET1RMScSGIExBWkFSCitET1RMScSGIExVS0EKK0RPVExJxIYgU0FWQQorRE9UTEnEhiBTT0ZJSkEKK0RPVExJxIYgVkFTQQorRE9UT1YgRFJBR08KK0RPVkFUIFBBVkxFIERSCitET1ZBVCBWTEFESU1JUgorRE9WQVRPViBBREFNCitET1ZFREVOIEJPUklTTEFWCitET1ZHQU4gSk9TSVAKK0RPVklKQVJPViBNSUxPxaAKK0RPVklKQVJPViBSQURJVk9KCitET1ZJSkFSU0tJIEJSQU5LQQorRE9WSUpBUlNLSSBNSUxFTkEKK0RPVklKQVJTS0kgU1RBTklNSVIKK0RPVk5JS09WScSGIExBWkFSCitET1pFVCDEkE9SxJBFCitET1pFVCBCT8W9TworRE9aRVQgRFJBR0lDQQorRE9aRVQgSUxJSkEKK0RPWkVUIEpBU05BCitET1pFVCBKVUxLSUNBCitET1pFVCBMSlVCSUNBCitET1pFVCBMSlVCT01JUgorRE9aRVQgTUlIQUpMTworRE9aRVQgTUlMQU4KK0RPWkVUIE1JTE9WQU4KK0RPWkVUIE5JS09MQQorRE9aRVQgUkFERQorRE9aRVQgUkFETUlMQQorRE9aRVQgUkFET1NMQVZLQQorRE9aRVQgU0FWS0EKK0RPWkVUIFNUQU5LTworRFLEjEEgQU5BCitEUsSMQSBCUkFOS08KK0RSxIxBIERSQUdJQ0EKK0RSxIxBIEpBTktPCitEUsSMQSBNSUxBTgorRFLEjEEgUkFUS08KK0RSxIxBIFNMQVZLTworRFLEjEEgU1RFVkFOCitEUsSMQS1VUkdFTiBNQVJJSkEKK0RSxIxBIFZMQVRLTworRFLEjEVMScSGIERPQlJJU0FWCitEUsSMRUxJxIYgTUlSSkFOQQorRFLFvUFKScSGIERJTUlUUklKRSBQUk9GRVNPUgorRFLFvUnEhiBJTElKQQorRFJBxIxBIMW9SVZLTworRFJBxIxBIMSQT1LEkEUKK0RSQcSMQSBBQ0EKK0RSQcSMQSBEVUJSQVZLQQorRFJBxIxBIE1JTEUKK0RSQcSMQSBQRVRBUiBEUgorRFJBxIxBIFBFVEFSCitEUkHEjEEgU1BBU0VOS0EKK0RSQcSMQSBUT01PIERSCitEUkHEjElOIEtPU1RBCitEUkHFoEnEhiBOQVRBTElKQQorRFJBxaBLTyBKRUxLQQorRFJBxaBLTyBNSUxPVkFOCitEUkHFoEtPIFNMT0JPREFOCitEUkHFoEtPVknEhiBCUkFOS08gRElQTCBPRUMKK0RSQcWgS09WScSGIERSQUdBCitEUkHFoEtPVknEhiBEVcWgQU4KK0RSQcWgS09WScSGIExKVUJPTUlSCitEUkHFoEtPVknEhiBNSUhBSkxPCitEUkHFoEtPVknEhiBNSUxPTUlSCitEUkHFoEtPVknEhiBNSUxPUkFECitEUkHFoEtPVknEhiBORU5BRAorRFJBxaBLT1ZJxIYgU0FWTworRFJBxaBLT1ZJxIYgU0xPQk9EQU5LQQorRFJBxaBLT1ZJxIYgU0xPQk9EQU4KK0RSQcWgS09WScSGIFNSRVRFTgorRFJBxb1FVEEgTUlMRU5LTworRFJBxb1FVEEgU1RFVkFOCitEUkHFvUVUSU4gRFXFoEFOCitEUkHFvUVUSU4gTUxBREVOCitEUkHFvUnEhiDFvUFSS08KK0RSQcW9ScSGIMSQT1LEkEUKK0RSQcW9ScSGIMSQT1LEkEUKK0RSQcW9ScSGIEFMRUtTQU5EQVIKK0RSQcW9ScSGIEJPR0RBTgorRFJBxb1JxIYgQlVETworRFJBxb1JxIYgRE9CUklWT0oKK0RSQcW9ScSGIERSQUdPTEpVQgorRFJBxb1JxIYgRFXFoEFOCitEUkHFvUnEhiBEVcWgQU4KK0RSQcW9ScSGIEVNSUwKK0RSQcW9ScSGIEdPUkRBTkEKK0RSQcW9ScSGIElMSUpBCitEUkHFvUnEhiBJTElKQQorRFJBxb1JxIYgSVJFTkEKK0RSQcW9ScSGIEpBxaBBCitEUkHFvUnEhiBKRUxJQ0EKK0RSQcW9ScSGIEpPVkFOCitEUkHFvUnEhiBKT1ZBTgorRFJBxb1JxIYgSk9WQU4KK0RSQcW9ScSGIEpPVkFOCitEUkHFvUnEhiBKT1ZBTgorRFJBxb1JxIYgS0FUSUNBCitEUkHFvUnEhiBLT1NUQQorRFJBxb1JxIYgTEFaQVIKK0RSQcW9ScSGIExKVUJJQ0EKK0RSQcW9ScSGIE1BUklKQQorRFJBxb1JxIYgTUlMQU4KK0RSQcW9ScSGIE1JTEFOCitEUkHFvUnEhiBNSUxFTktPCitEUkHFvUnEhiBNSUxFTktPCitEUkHFvUnEhiBNSUxJTktPIERJUEwgSU5HCitEUkHFvUnEhiBNSUxPUkFECitEUkHFvUnEhiBNSUxPUkFECitEUkHFvUnEhiBNSUxPUkFECitEUkHFvUnEhiBNSVJBCitEUkHFvUnEhiBNSVRBCitEUkHFvUnEhiBOQVRBTElKQQorRFJBxb1JxIYgTkFUQUxJSkEKK0RSQcW9ScSGIE5FU1RPUgorRFJBxb1JxIYgTkVWRU5LQQorRFJBxb1JxIYgTklLT0xBCitEUkHFvUnEhiBOSUtPTEEKK0RSQcW9ScSGIE9TVE9KQQorRFJBxb1JxIYgUEVUQVIKK0RSQcW9ScSGIFJBRE9WQU4KK0RSQcW9ScSGIFJFTEpBCitEUkHFvUnEhiBTTEFWS08KK0RSQcW9ScSGIFNPRklKQQorRFJBxb1JxIYgU1RBTktPCitEUkHFvUnEhiBTVEVWQU4KK0RSQcW9ScSGIFNURVZBTgorRFJBxb1JxIYgU1VaQU5BCitEUkHFvUnEhiBUT01JU0xBVgorRFJBxb1JxIYgVkVMSU5LQQorRFJBxb1JxIYgVkVSQQorRFJBxb1JxIYgVkVSQQorRFJBxb1JxIYgVkVSQQorRFJBxb1JxIYgWkxBVEtPCitEUkHFvUlMT1ZJxIYgU1RBTknFoEEKK0RSQcW9SU4gQk9SSVNMQVYKK0RSQUdBxaAgxJBPUsSQRQorRFJBR0HFoCDEkFVSTworRFJBR0HFoCBCT1JJU0xBVgorRFJBR0HFoCBCUkFOS08KK0RSQUdBxaAgRFJBR09NSVIKK0RSQUdBxaAgSVZBTgorRFJBR0HFoCBLQVRJQ0EKK0RSQUdBxaAtS09WQcSMIExKVUJJQ0EKK0RSQUdBxaAgTEVQT1NBVkEKK0RSQUdBxaAgTEpVQklDQQorRFJBR0HFoCBMSlVCSUNBCitEUkFHQcWgIE1BTk9KTE8KK0RSQUdBxaAgTUlMQU4KK0RSQUdBxaAgTUlMRU5LTworRFJBR0HFoCBNSVJBCitEUkFHQcWgIE1JUkpBTkEKK0RSQUdBxaAgTU9NxIxJTE8KK0RSQUdBxaAgUkFESVZPSgorRFJBR0HFoCBSQURPTUlSCitEUkFHQcWgIFNQT01FTktBCitEUkFHQcWgIFNWRVRMQU5BCitEUkFHQcWgIFpPUkFOCitEUkFHQcWgRVYgVkxBRElNSVIKK0RSQUdBTiBNSUxFTkEKK0RSQUdBTknEhiBEUkFHQQorRFJBR0FOScSGIEpBTktPCitEUkFHQU5JxIYgTUlIQUpMTworRFJBR0FOScSGIE1JTElDQSBEUgorRFJBR0FOScSGIE1JTEtBCitEUkFHQU5JxIYgTUlSS08KK0RSQUdBTknEhiBNSVJPU0xBVgorRFJBR0FOScSGIE5BREXFvURBCitEUkFHQU5JxIYgUkFOS08KK0RSQUdBTknEhiBWSURBCitEUkFHQU5JxIYgWkVLTworRFJBR0FOT1YgTUlMT8WgCitEUkFHQU5PViBPTEdBCitEUkFHQU5PViBTTE9CT0RBTgorRFJBR0FOT1YgU1RPSkFOS0EKK0RSQUdBTk9WScSGIFNMQVZLTworRFJBR0VMSkVWScSGIERVxaBBTgorRFJBR0VMSkVWScSGIEpPVkFOCitEUkFHScSMRVZJxIYgQURBTQorRFJBR0nEjEVWScSGIEFMRUtTQU5EQVIKK0RSQUdJxIxFVknEhiBCT1JJU0xBVgorRFJBR0nEjEVWScSGIEdPSktPCitEUkFHScSMRVZJxIYgSUxJTktBCitEUkFHScSMRVZJxIYgSVZLQQorRFJBR0nEjEVWScSGIEtSRcWgSU1JUgorRFJBR0nEjEVWScSGIExBWkFSCitEUkFHScSMRVZJxIYgTEpVQklDQQorRFJBR0nEjEVWScSGIExKVUJPTUlSCitEUkFHScSMRVZJxIYgTUlMSkEKK0RSQUdJxIxFVknEhiBNSUxPxaAKK0RSQUdJxIxFVknEhiBNSVJLTworRFJBR0nEjEVWScSGIFJBREVOS08KK0RSQUdJxIxFVknEhiBTUEFTQQorRFJBR0nEjEVWScSGIFNSRVRFTgorRFJBR0nEjEVWScSGIFZPSklOCitEUkFHScSMRVZJxIYgVk9KSVNMQVYKK0RSQUdJxIxFVknEhiBaT1JBTgorRFJBR0nFoEEgxb1BUktPCitEUkFHScWgScSGIEJPR0RBTgorRFJBR0nFoEnEhiBCT1JJU0xBVktBCitEUkFHScWgScSGIEpPVkFOS0EKK0RSQUdJxaBJxIYgTklLT0xBCitEUkFHScWgScSGIFBFVEFSCitEUkFHScWgScSGIFJBREUKK0RSQUdJxIYgxIxFRE9NSVIKK0RSQUdJxIYgxb1FTEpLTworRFJBR0nEhiDEkE9SxJBFCitEUkFHScSGIEFOQQorRFJBR0nEhiBCUkFOS08KK0RSQUdJxIYgRFXFoEFOCitEUkFHScSGIERVxaBBTgorRFJBR0nEhiBFTFZJUkEKK0RSQUdJxIYgSUxJSkEKK0RSQUdJxIYgSUxJSkEKK0RSQUdJxIYgSUxJSkEKK0RSQUdJxIYgSkVMRU5BCitEUkFHScSGIExKVUJJxaBBCitEUkFHScSGIExKVUJJxaBBCitEUkFHScSGIE1BUklKQU5BCitEUkFHScSGIE1JTEVOS08KK0RSQUdJxIYgTUlMSVZPSkUKK0RSQUdJxIYgTUlMS0EKK0RSQUdJxIYgTUlMT1JBRAorRFJBR0nEhiBOQURBCitEUkFHScSGIE5FREVMSktPCitEUkFHScSGIE5FVkVOS0EKK0RSQUdJxIYgTklLT0xBCitEUkFHScSGIE9CUkFECitEUkFHScSGIFBBVUxBCitEUkFHScSGIFBBVkxFCitEUkFHScSGIFBFUkEKK0RSQUdJxIYgUEVUQVIKK0RSQUdJxIYgUEVUQVIKK0RSQUdJxIYgUkFOS08KK0RSQUdJxIYgU0FWQQorRFJBR0nEhiBTTEFWS08KK0RSQUdJxIYgU1BBU09KRQorRFJBR0nEhiBTVEVWQU4KK0RSQUdJxIYgU1RFVkFOCitEUkFHScSGIFRPTUlTTEFWCitEUkFHScSGIFZFUkEKK0RSQUdJxIYgVkVTTkEKK0RSQUdJxIZFVknEhiBCT0dJQ0EKK0RSQUdJxIZFVknEhiBCT1JJU0xBVgorRFJBR0nEhkVWScSGIEJSQU5JU0xBVgorRFJBR0nEhkVWScSGIFJBSklDQQorRFJBR0lOIMW9QVJLTworRFJBR0lOIEJPR0RBTgorRFJBR0lOIEJPUklWT0oKK0RSQUdJTiBEQU5JTE8KK0RSQUdJTiBERVNBTktBCitEUkFHSU4gRFXFoEtPCitEUkFHSU4gR09SREFOQQorRFJBR0lOIEpPVkFOIERJUEwgSU5HCitEUkFHSU4gSk9WTyBESVBMIElORworRFJBR0lOIExBWkFSCitEUkFHSU4gTUFSS08KK0RSQUdJTiBNSU9EUkFHCitEUkFHSU4gTUlPRFJBRworRFJBR0lOIE5JS09MQQorRFJBR0lOIFBFVFJJSkEKK0RSQUdJTiBSQURJVk9KCitEUkFHSU4gUklTVE8KK0RSQUdJTiBTQcWgQQorRFJBR0lOIFNPS0lDQQorRFJBR0lOIFNURVZBTgorRFJBR0lOIFNWRVRJU0xBVgorRFJBR0lOIFZBU0EKK0RSQUdJTiBWT0pJU0xBVgorRFJBR0lOIFpPUkFOCitEUkFHSU7EjEnEhiBEVcWgQU4KK0RSQUdJTsSMScSGIFNMQVZLTworRFJBR0/FoEVWIERSQUdBTgorRFJBR09KRVZJxIYgxb1FTEpLTworRFJBR09KRVZJxIYgQU7EkEVMS08KK0RSQUdPSkVWScSGIEJPxaBLTworRFJBR09KRVZJxIYgQlJBTklTTEFWCitEUkFHT0pFVknEhiBEQVJJTktBCitEUkFHT0pFVknEhiBEUkFHVVRJTgorRFJBR09KRVZJxIYgR09KS08KK0RSQUdPSkVWScSGIEhSSVNUSU5BCitEUkFHT0pFVknEhiBMSlVCT01JUgorRFJBR09KRVZJxIYgTUlMRU5BCitEUkFHT0pFVknEhiBNSUxFTktPCitEUkFHT0pFVknEhiBNSUxFTktPCitEUkFHT0pFVknEhiBNSUxJQ0EKK0RSQUdPSkVWScSGIE1JTE9SQUQKK0RSQUdPSkVWScSGIE5JS09MQQorRFJBR09KRVZJxIYgUkFEScWgQQorRFJBR09KRVZJxIYgU1RFVkFOCitEUkFHT0pFVknEhiBaTEFUQU5BCitEUkFHT0pMT1YgQU5LSUNBCitEUkFHT0pMT1YgQk/FoEtPCitEUkFHT0pMT1YgRFXFoEFOCitEUkFHT0pMT1YgRFVCUkFWS0EKK0RSQUdPSkxPViBHQVZSQQorRFJBR09KTE9WIExBWkFSCitEUkFHT0pMT1YgTUFSR0lUQQorRFJBR09KTE9WIE1JTE/FoAorRFJBR09KTE9WIE1JTE/FoAorRFJBR09KTE9WIE1JUk9TTEFWCitEUkFHT0pMT1YgVk9KSVNMQVYKK0RSQUdPSkxPVknEhiBEVcWgS08KK0RSQUdPSkxPVknEhiBMQVpBUgorRFJBR09KTE9WScSGIE1BUkEKK0RSQUdPSkxPVknEhiBNSUxBTgorRFJBR09KTE9WScSGIE1JTEFOCitEUkFHT0pMT1ZJxIYgWk9SSUNBCitEUkFHT0xKRVZJxIYgR09KS08KK0RSQUdPTEpFVknEhiBNQVJJTktPCitEUkFHT0xKRVZJxIYgTUlUQVIKK0RSQUdPTEpFVknEhiBSQU5LTworRFJBR09MSkVWScSGIFNFS1VMQQorRFJBR09MSkVWScSGIFNUT0pBTgorRFJBR09MSkVWScSGIFZMQURFCitEUkFHT01JUk9WScSGIMSQT0tBCitEUkFHT01JUk9WScSGIERJTUlUUklKRQorRFJBR09NSVJPVknEhiBEUkFHSUNBCitEUkFHT01JUk9WScSGIElWQU4KK0RSQUdPTUlST1ZJxIYgTEpVQklDQQorRFJBR09NSVJPVknEhiBTQVZBCitEUkFHT01JUk9WScSGIFRPRE9SCitEUkFHT1NBVkFDIEFOR0VMSU5BCitEUkFHT1NBVkFDIElMSUpBCitEUkFHT1NBVkFDIEtBVElDQQorRFJBR09TQVZBQyBNRUxBTklKQQorRFJBR09TQVZBQyBNSUxBTktPCitEUkFHT1NBVkFDIE1JTE9SQUQKK0RSQUdPU0FWQUMgTklLT0xBCitEUkFHT1NBVkFDIFpVWkFOQQorRFJBR09TQVZMSkVWScSGIMSQVVJBCitEUkFHT1NBVkxKRVZJxIYgTEpJTEpBTkEKK0RSQUdPU0FWTEpFVknEhiBNQVJJSkEKK0RSQUdPU0FWTEpFVknEhiBNSVJKQU5BCitEUkFHT1NBVkxKRVZJxIYgTUxBREVOCitEUkFHT1NBVkxKRVZJxIYgU1RFVkEgRElQTCBJTkcKK0RSQUdPU0FWTEpFVknEhiBTVE9KxaBBCitEUkFHT1NBVkxKRVZJxIYgVk9KQQorRFJBR09TTEFWScSGIFZJREFLCitEUkFHT1ZBQyBTTEFWS08KK0RSQUdPVknEhiDEjEVETworRFJBR09WScSGIEJVRElNSVIKK0RSQUdPVknEhiBEUkFHQU4KK0RSQUdPVknEhiBHT0pLTworRFJBR09WScSGIEdPUkRBTkEKK0RSQUdPVknEhiBKQVNNSU5LQQorRFJBR09WScSGIEpPVkFOS0EKK0RSQUdPVknEhiBNSUxBTgorRFJBR09WScSGIE1JTEnEhgorRFJBR09WScSGIE1JTElDQQorRFJBR09WScSGIE1JUkEKK0RSQUdPVknEhiBSQU5LTworRFJBR09WScSGIFNOSUpFxb1BTkEKK0RSQUdPVknEhiBTVEFNRU5LQQorRFJBR09WScSGIFNWRVRJTUlSCitEUkFHT1ZJxIYgU1ZFVE9NSVIKK0RSQUdPVknEhiBWRVJBCitEUkFHT1ZJxIYgVklEQUsKK0RSQUdPVknEhiBWTEFEQQorRFJBR09WScSGIFpPUkFOCitEUkFHVU1JTE8gTUlMT01JUgorRFJBR1VNSUxPIE1JTFVUSU4KK0RSQUdVTk9WScSGIEJPUklTTEFWCitEUkFHVU5PVknEhiBQRVJPCitEUkFHVVRJTk9WScSGIMW9SVZLQQorRFJBR1VUSU5PVknEhiBNSUxBTgorRFJBR1VUSU5PVknEhiBQUkVEUkFHCitEUkFHVVRJTk9WScSGIFpPUkFOCitEUkFIIEpFTElTQVZFVEEKK0RSQUggSkVMSVNBVkVUQQorRFJBSE9UVVNLSSBCT1JJU0xBVgorRFJBSE9UVVNLSSBQRVRBUgorRFJBS0nEhiBEUkFHScWgQQorRFJBS0nEhiBTTE9CT0RBTiBEUgorRFJBS1VMIFZBU08KK0RSQUtVTEEgRFXFoEFOCitEUkFLVUxBIFJBRE1JTEEKK0RSQUtVTEnEhiBBTEVLU0FOREFSCitEUkFLVUxJxIYgQlJBTklTTEFWCitEUkFLVUxJxIYgRFJBR09NSVIgRFIgU1RPTUFUT0xPRworRFJBS1VMScSGIERSQUdPTUlSCitEUkFLVUxJxIYgRVLFvUVCRVQKK0RSQUtVTEnEhiBKRUxFTkEKK0RSQUtVTEnEhiBKT1ZBTgorRFJBS1VMScSGIEtPU1RBCitEUkFLVUxJxIYgTEFaQVIKK0RSQUtVTEnEhiBMSlVCSUNBCitEUkFLVUxJxIYgTUFSQQorRFJBS1VMScSGIE1BUkEKK0RSQUtVTEnEhiBNSUxBTgorRFJBS1VMScSGIE1JTEFOCitEUkFLVUxJxIYgTUlMQU4KK0RSQUtVTEnEhiBNSUxJVk9KCitEUkFLVUxJxIYgTUlST1NMQVYKK0RSQUtVTEnEhiBQUkVEUkFHCitEUkFLVUxJxIYgU01JTEpBCitEUkFLVUxJxIYgU09GSUpBCitEUkFLVUxJxIYgU1RFVkFOCitEUkFLVUxJxIYgU1RPSkFOS0EKK0RSQUtVTEnEhiBTVkVUSVNMQVYKK0RSQUtVTEnEhiBTVkVUT1pBUgorRFJBS1VMScSGIFNWRVRPWkFSCitEUkFLVUxJxIYgVE9ET1IKK0RSQUtVTEnEhiBaT1JBTgorRFJBUMWgSU4gxIxBVkEKK0RSQVDFoElOIMSQT1LEkEUKK0RSQVDFoElOIERBTklDQQorRFJBUMWgSU4gTEVQT1NBVkEKK0RSQVDFoElOIE1JTEFOCitEUkFQxaBJTiBNSUxFTktPCitEUkFQxaBJTiBQRVRBUgorRFJBUMWgSU4gUFJFRFJBRworRFJBUMWgSU4gU0FWQQorRFJBUMWgSU4gWkFHT1JLQQorRFJBUMWgSU4gWk9SQU4KK0RSQVBJxIYgQk9HREFOCitEUkFQScSGIFNFTklUQQorRFJBUEnEhiBTTE9CT0RBTgorRFJBUEnEhiBWRUxJTUlSCitEUkFQT8WgIFNURVZBTgorRFJFxaBLQUkgxaBBTkRPUgorRFJFQ1VOIFZFTEpLTworRFJFSEVSIExBSk/FoAorRFJFSEVSIE5JS09MQQorRFJFSEVSIE9UTworRFJFSEVSIFZJTElNIERJUEwgSU5HCitEUkVLT1ZJxIYgxJBVUk8KK0RSRUtPVknEhiBLQVRJQ0EKK0RSRUtPVknEhiBaT1JBTgorRFJFTVBFVEnEhiBEQVJLTworRFJFTVBFVEnEhiBQRVRBUgorRFJFTVBFVEnEhiBaREVOS08KK0RSRU5KQUtPVknEhiBKRUxJQ0EKK0RSRU5LT1ZJxIYgTEFTTE8KK0RSRU5PVsSMQU5JTiBMSlVCT01JUgorRFJFTk9WQUMgUkFOS08KK0RSRU5PVkVDIENWRVRPCitEUkVUQVIgTUlSS08KK0RSRVpHQSBKQUtPVgorRFJFWkdBIFRPRE9SCitEUkVaR0nEhiBEQVJBCitEUkVaR0nEhiBJTElKQQorRFJFWkdJxIYgTUFSSUpBCitEUkVaR0nEhiBNSUxBTgorRFJFWkdJxIYgUkFESVZPSgorRFJFWkdJxIYgU1ZFVExBTkEKK0RSRVpHScSGIFZMQURJTUlSCitEUklHVUxPViBTUEFTT0pFCitEUklOxIxFVknEhiDFvUlWT1RBCitEUklOxIxFVknEhiBERVNBTktBIERSCitEUklOxIxJxIYgTUVMQU5JSkEKK0RSSU7EjEnEhiBNSUxPSktPCitEUklOxIxJxIYgUkFETUlMQQorRFJJTknEhiBBTEVLU0FOREFSCitEUklOScSGIEJPUklTTEFWCitEUklOScSGIEpBR09EQQorRFJJTknEhiBNSUxBTgorRFJJTknEhiBNSUxFTktPCitEUklOScSGIE1JTEVUQQorRFJJTknEhiBNSUxPVkFOCitEUklOScSGIE1JUktPCitEUklOScSGIE5FREVMSktPCitEUklOScSGIFBFUk8KK0RSSU5JxIYgUkFETUlMQQorRFJJTknEhiBTQVZPCitEUklOScSGIFNMQVZJQ0EKK0RSSU5JxIYgU1RFVk8KK0RSSU5JxIYgVE9NTworRFJJTknEhiBaRFJBVktPCitEUklOSk9WU0tJIEFMRUtTQU5EQVIKK0RSSU5KT1ZTS0kgVk9KSVNMQVYKK0RSSyBCQVJCQVJBCitEUktVxaBJxIYgSUxJSkEKK0RSTEpBxIxBIMSQT1LEkEUKK0RSTEpBxIxBIMSQT1LEkEUKK0RSTEpBxIxBIEJSQU5LQQorRFJMSkHEjEEgRFJBR0FOCitEUkxKQcSMQSBEVcWgQU4KK0RSTEpBxIxBIE1BUktPCitEUkxKQcSMQSBNScSGQQorRFJMSkHEjEEgTUlMQU5LTworRFJMSkHEjEEgTUlMT1JBRAorRFJMSkHEjEEgTUlSS08KK0RSTEpBxIxBIE5FxJBPCitEUkxKQcSMQSBORU5BRAorRFJMSkHEjEEgUkFET1ZBTgorRFJMSkHEjEEgUkFET1ZBTgorRFJMSkHEjEEgU1RPSkEKK0RSTEpBxIxBIFpEUkFWS0EKK0RSTEpBxIxJxIYgS0FUQQorRFJMSkVWScSGIMSQVVJPCitEUkxKRVZJxIYgQU5JQ0EKK0RSTEpFVknEhiBKT1ZBTktBCitEUkxKRVZJxIYgTUlMRVRBCitEUkxKRVZJxIYgTUlMSkEKK0RSTEpFVknEhiBNSVJKQU5BCitEUkxKScSGIE1JTEFESU4KK0RSTEpJxIYgUFJFRFJBRworRFJNQU5BQyBNSVJPU0xBVgorRFJNQU5BQyBTVEFOS08KK0RSTUFOT1ZJxIYgTUlMRVZBCitEUk5EQVJFVknEhiBCT1JBCitEUk5EQVJFVknEhiBCT1JBCitEUk5EQVJFVknEhiBLQVRJQ0EKK0RSTkRBUlNLSSBNSUxBTgorRFJOREFSU0tJIFZFTElNSVIKK0RST0JBQyDFvUFSS08KK0RST0JBQyDFvUFSS08KK0RST0JBQyDEkE9SxJBFCitEUk9CQUMgQU5BCitEUk9CQUMgQlJBTklTTEFWCitEUk9CQUMgTEpJTEpBTkEKK0RST0JBQyBNSUxBTgorRFJPQkFDIE1JTEFOCitEUk9CQUMgTUlMT1JBRAorRFJPQkFDIE1JUk9TTEFWCitEUk9CQUMgTkVOQUQKK0RST0JBQyBOSUtPTEEKK0RST0JBQyBQUkVEUkFHCitEUk9CQUMgUkFET0pLQQorRFJPQkFDIFJBRE9KS0EKK0RST0JBQyBTTEFWS08KK0RST0JBQyBWTEFETworRFJPQkFDIFZVS0HFoElOIE5PVklOQVIKK0RST0JBQyBaRFJBVktPCitEUk9CSU5BIEpVTElKQU5BCitEUk9CSU5BIExKVUJJQ0EKK0RST0JJTkEgTUlIQUxKCitEUk9CSU5KQUsgUlXFvUEKK0RST0JOSkFLIEVWSUNBCitEUk9CTkpBSyBMSklMSkFOQQorRFJPQk5KQUsgTUlMSVZPSkUKK0RST0JOSkFLIE1JT0RSQUcKK0RST0JOSkFLIE1PTcSMSUxPCitEUk9CTkpBSyBSQURJxaBBCitEUk9CTkpBSyBSQURPSklDQQorRFJPQk5KQUsgUkFET0pJQ0EKK0RST0JOSkFLT1ZJxIYgRFXFoEFOCitEUk9CTkpBS09WScSGIEdWT1pERU4KK0RST0JOSkFLT1ZJxIYgUklTVElWT0pFCitEUk9CTkpJSyBKT1NJUAorRFJPQk5KSUsgSlVESVQKK0RST05KQUsgxb1JVkFOQQorRFJPTkpBSyDFvUlWS08KK0RST05KQUsgxJBPUsSQRQorRFJPTkpBSyBEQVJJTktBCitEUk9OSkFLIE1JTEFOCitEUk9OSkFLIE1JUkpBTkEKK0RST05KQUsgT0xHQQorRFJPTkpBSyBSQVNUS08KK0RST05KQUsgU0FWSU5LQQorRFJPTkpBSyBTVEVWQU4KK0RST1BLQSBBUlBBRAorRFJPUEtBIEpFTEVOQQorRFJPUEtBIE5BVEHFoEEKK0RST1BLQSBTVEVWQU4KK0RST1BPIE1JTEtBCitEUk9QTyBWQVNBCitEUk9QTyBaT1JBTgorRFJPWkRJSyBJTE9OQQorRFJPWkRJSyBNQVJJSkEKK0RSVcW9RVRJxIYgxb1JS0EKK0RSVUdPVknEhiBSVcW9SUNBCitEUlVHT1ZJxIYgUlXFvUlDQQorRFJWRU5Exb1JSkEgUkFET1ZBTgorRFJWRU5Exb1JSkEgU0xBVktPCitEUlZFTkpBSyBWRVJJQ0EKK0RVxIxFVknEhiBWQVNJTElKRQorRFXEjEnEhiBNSUxBTgorRFXEjEnEhiBTTE9CT0RBTgorRFXFoEFOScSGIERSQUdBTgorRFXFoEFOScSGIExBWkFSCitEVcWgQU5JxIYgTEpVQklDQQorRFXFoEFOScSGIE5BREEKK0RVxaBBTknEhiBORU5BRAorRFXFoEFOT1ZJxIYgU1RBTk9KRQorRFXFoEFOT1ZJxIYgWlZFWkRBTkEKK0RVxaBFSyBaTEFUS08gRElQTCBPRUMKK0RVxaBJxIYgQlJBTktPCitEVcWgScSGIFpPUkFOCitEVcSGQUsgQU5EUklKQQorRFXEhkFLIEFSQU5LQQorRFXEhkFLIEJBUkJBUkEKK0RVxIZBSyBNSUhBSkxPCitEVcSGQUsgVE9NQQorRFXEkEFLIERSQUdVVElOCitEVcSQSUsgRlJBTkpBCitEVUJBScSGIEJPxb1JREFSCitEVUJBScSGIE1JTEFOCitEVUJBScSGIE1JUktPCitEVUJBSknEhiDFvUFSS08KK0RVQkFKScSGIMSQVVJBCitEVUJBSknEhiBBTEVLU0FOREFSCitEVUJBSknEhiBCSUxKQU5BCitEVUJBSknEhiBEUkFHQU4KK0RVQkFKScSGIE1JTElDQQorRFVCQUpJxIYgTUlMT8WgCitEVUJBSknEhiBNSVJLTworRFVCQUpJxIYgVklEQQorRFVCTEpFVknEhiBTTE9CT0RBTgorRFVCTEpFVknEhiBTVE9KQU4KK0RVQkxKRVZJxIYgVk9KSVNMQVYKK0RVQkxKRVZJxIYgWkxBVEEKK0RVQk5KQUtPVknEhiBNQVJUQQorRFVCT1ZTS0EgTUlMT1RBCitEVUJPVlNLSSBKQU5LTworRFVCT1ZTS0kgS0FUSUNBCitEVUJSQVZBQyBEVcWgQU4KK0RVQlJPSkEgREFOSUNBCitEVUJST0pBIFNMT0JPREFOCitEVUNBTk9WScSGIEJPxaBLTworRFVDScSGIE1JTEFOCitEVURBIFBBVkxFCitEVURBxaAgxJBVUkEKK0RVREHFoCDEkFVSQQorRFVEQcWgIMSQVVJBCitEVURBxaAgQU5BCitEVURBxaAgQU5UQUwKK0RVREHFoCBBUlBBRAorRFVEQcWgIEFSUEFECitEVURBxaAgQk9SSVMKK0RVREHFoCBIRUxFTkEKK0RVREHFoCBKQU5PxaAKK0RVREHFoCBKVUxJSkFOCitEVURBxaAgTEFaQVIKK0RVREHFoCBNQVJJTktPCitEVURBxaAgTUlIQUxKCitEVURBxaAgUElST8WgS0EKK0RVREHFoCBST01BTgorRFVEQcWgIFNMQVZPTUlSCitEVURBSyBKQVJPU0xBVgorRFVEQUsgTUFSSUpBCitEVURBSyBTVEVWQU4KK0RVREFOIE1JTElWT0oKK0RVREFSIE5JS09MQQorRFVEQVJJTiDFvUFSS08KK0RVREFSSU4gRFJBR0FOCitEVURBUklOIFNBVkEKK0RVREFSSU4gU1RFVkFOCitEVURBUklOIFNURVZBTgorRFVEQVJJTiBWRVNFTElOCitEVURBUklOIFpPUkFOCitEVURBUklOIFpPUkFOCitEVURJxIYgQU5JQ0EKK0RVREnEhiBLT1NUQQorRFVEScSGIEtPU1RBCitEVURJxIYgTUFURQorRFVEScSGIE1JTEEKK0RVREnEhiBNSUxFCitEVURJxIYgTUlMT8WgCitEVURJxIYgTUlMT8WgCitEVURJxIYgTkFEQQorRFVEScSGIFNWRVRPWkFSCitEVURJxIYgVkFTQQorRFVEScSGIFZBU0EKK0RVREnEhiBWRVJJQ0EKK0RVREnEhiBaT1JBTgorRFVET0pFVknEhiBORUTFvUFECitEVURPSyBEQU5JRUwgRFIKK0RVRE9LIEpBTktPCitEVURPSyBQQVZFTAorRFVEVUtPVknEhiBBTEVLU0FOREFSCitEVURVS09WScSGIFNMT0JPREFOCitEVURVS09WScSGIFNURVZBTgorRFVEVkFSU0tJIEJPxb1JREFSCitEVURWQVJTS0kgRFJBR09MSlVCCitEVURWQVJTS0kgSVZBTgorRFVEVkFSU0tJIFBBSkEKK0RVRFZBUlNLSSBWRUxJTktBCitEVUdBSkxJxIYgQU7EkEVMS0EKK0RVR0FKTEnEhiBBUkpBTkEKK0RVR0FKTEnEhiBNSUxPxaAKK0RVR0FKTEnEhiBSQURPVkFOCitEVUdBTEnEhiBEUkFHQU4KK0RVR0FORMW9SUpBIEJSQU5LTworRFVHQU5Exb1JSkEgRFJBR09NSVIKK0RVR0FORMW9SUpBIERVxaBBTgorRFVHQU5Exb1JSkEgTkVERUxKS08KK0RVR0lOIFNUT0pBTgorRFVHT8WgSUpBIMW9SVZLTworRFVHT8WgSUpBLU1BS1NJTU9WScSGIE5BREEKK0RVR09OSknEhiBNSUxFCitEVUdPTkpJxIYgTUlMVVRJTgorRFVHT05KScSGIE5JS09MQQorRFVHT05KScSGIFNWRVRPTUlSCitEVUggS0FUQVJJTkEKK0RVSEHEjEVLIFZMQURPCitEVUnEhiBKT1NJUAorRFVKQUtPVknEhiBNSUxFTkEKK0RVSkFLT1ZJxIYgTUlMSUNBCitEVUpBS09WScSGIE5PVkEKK0RVSkFLT1ZJxIYgVkVMSktPCitEVUpFVlNLSSBWQU5HRUwgRFIKK0RVSknEhiDEkE9SxJBFCitEVUpJxIYgSVZBTgorRFVKScSGIElWSUNBCitEVUpJxIYgTEpVQklDQQorRFVKScSGIFNMT0JPREFOCitEVUpJxIYgU0xPQk9EQU4KK0RVSknEhiBTTE9CT0RBTgorRFVKScSGIFNNSUxKQQorRFVKScSGIFNUT0pBTktBCitEVUpJTiDFvUlWQQorRFVKSU4gxb1JVktPCitEVUpJTiBEQU5JQ0EKK0RVSklOIExVS0EKK0RVSklOIFNJTUVPTgorRFVKSU4gU1ZFVElTTEFWCitEVUpJTiBURU9ET1IKK0RVSklOIFZJVE9NSVIKK0RVSktJxIYgVkxBRElTTEFWCitEVUpLT1ZJxIYgQlJBTktPCitEVUpLT1ZJxIYgUEVUQVIKK0RVSktPVknEhiBURU9ET1IKK0RVSktPVknEhiBWTEFESU1JUgorRFVKTE9WScSGIEJPUkEKK0RVSk1JxIYgQU5URQorRFVKTU9WScSGIEVMSVpBQkVUQQorRFVKTU9WScSGIEVWQQorRFVKTU9WScSGIEZFUkVOQworRFVKTU9WScSGIEpPU0lQCitEVUpPVknEhiBJTElKQQorRFVKT1ZJxIYgUkFETUlMQQorRFVKT1ZJxIYgUkFETUlMQQorRFVLQSBNSVJPU0xBVgorRFVLQUkgQU5EUkHFoAorRFVLQU4gTkFUQcWgQQorRFVLQVJJxIYgVklEQQorRFVLRVMgRk9TS0EKK0RVS0nEhiDEkFVSTworRFVLScSGIEJPUkEKK0RVS0nEhiBEQU5JTE8KK0RVS0nEhiBEUkFHQU4KK0RVS0nEhiBEUkFHSUNBCitEVUtJxIYgRFXFoEFOCitEVUtJxIYgSVZBTktBCitEVUtJxIYgSkVMRU5BCitEVUtJxIYgSk9WQU4KK0RVS0nEhiBKT1ZBTgorRFVLScSGIEtPU0EKK0RVS0nEhiBMSlVCSUNBCitEVUtJxIYgTUlMQU4KK0RVS0nEhiBNSUxBTgorRFVLScSGIE1JTEFOCitEVUtJxIYgTUlMSUNBCitEVUtJxIYgTUlMSUNBCitEVUtJxIYgTUlSSkFOQQorRFVLScSGIFBSRURSQUcKK0RVS0nEhiBSQURFCitEVUtJxIYgUkFERQorRFVLScSGIFJBSktPCitEVUtJxIYgU0xBVklDQQorRFVLScSGIFNPRklKQQorRFVLScSGIFNURVZPIERJUEwgSU5HCitEVUtJxIYgVlVLQcWgSU4gRFIKK0RVS0nEhiBaT1JBTgorRFVLT1ZBIExJTEkKK0RVS09WU0tJIFNWRVRJU0xBVgorRFVMRUpBTiDFvUlWQURJTktBCitEVUxFSkFOIFNMQVZLTworRFVMScSGIMWgQU5ET1IKK0RVTEnEhiBBTktBCitEVUxJxIYgSVZBTgorRFVMScSGIEpPU0lQCitEVUxJxIYgSk9TSVAKK0RVTEnEhiBMSlVERVZJVAorRFVMScSGIE1BR0RBCitEVUxJxIYgTUlIQUpMTworRFVMScSGIE1JUk9TTEFWCitEVUxJxIYgTklLT0xBCitEVUxPVknEhiBBTsSQRUxLTworRFVMT1ZJxIYgQk9HREFOCitEVUxPVknEhiBCUkFOS08KK0RVTE9WScSGIERVxaBBTgorRFVMT1ZJxIYgTUlMT1ZBTgorRFVMT1ZJxIYgTUlMVU4KK0RVTE9WScSGIFJBRE9WQU4KK0RVTE9WScSGIFJBTktPCitEVUxPVknEhiBSQVRLQQorRFVMT1ZJxIYgWk9SQU4KK0RVTUEgTUlMT1JBRAorRFVNQU7EjEnEhiBTTEFWSUNBCitEVU1BTsSMScSGIFpEUkFWS08KK0RVTUFOT1ZJxIYgTUxBREVOCitEVU1FREHFoCBTUEFTT0pFCitEVU1FREHFoCBWQVNJTElKRQorRFVNRU7EjEnEhiBJVkFOCitEVU1JxIYgU0xBVklDQQorRFVNScSGIFNURVZBTiBESVBMIElORworRFVNSVRST1YgQUxFS1NBTkRBUgorRFVNSVRST1YgRElNSVRSSUpFCitEVU1JVFJPViBMVUtBCitEVU1JVFJPViBNQVJJSkEKK0RVTUlUUk9WIE1JT0RSQUcKK0RVTUlUUk9WIE5FREVMSktPCitEVU1JVFJPViBTTEFWS08KK0RVTUlUUk9WIFZFUklDQQorRFVNSVRST1YgVk9KSU4KK0RVTU5JxIYgxaBBUklLQQorRFVNTknEhiBNSUxBTgorRFVNT05JxIYgQlJBTktPCitEVU1PTknEhiBQRVRBUgorRFVOxJBFUiBSQURFCitEVU7EkEVSIFJBREUKK0RVTsSQRVJJTiDEkE9SxJBFCitEVU7EkEVST1YgS09TQU5BCitEVU7EkEVST1YgTkFEQQorRFVOxJBFUk9WIFBJUk/FoEtBCitEVU7EkEVST1ZJxIYgUkFET1ZBTgorRFVOxJBFUlNLSSDFvUlWQU4KK0RVTsSQRVJTS0kgxJBPUsSQRQorRFVOxJBFUlNLSSDEkE9SxJBFCitEVU7EkEVSU0tJIEFMRUtTQU5EQVIKK0RVTsSQRVJTS0kgQU5BCitEVU7EkEVSU0tJIENWRVRBTkEKK0RVTsSQRVJTS0kgRFJBR0FOCitEVU7EkEVSU0tJIElWQU5LQQorRFVOxJBFUlNLSSBJVkFOCitEVU7EkEVSU0tJIEpPVkFOCitEVU7EkEVSU0tJIE1BUklKQQorRFVOxJBFUlNLSSBNSUxBTgorRFVOxJBFUlNLSSBNSVJKQU5BCitEVU7EkEVSU0tJIE5PVkFLCitEVU7EkEVSU0tJIFNJTUEKK0RVTsSQRVJTS0kgU09GSUpBCitEVU7EkEVSU0tJIFNUQU5JU0xBVgorRFVOxJBFUlNLSSBUSUhPTUlSCitEVU7EkEVSU0tJIFRSSVZBCitEVU7EkEVSU0tJIFpEUkFWS08KK0RVTkRJxIYgSEFSQUxBTVBJSkUKK0RVTkRJxIYgSkVMRU5BCitEVU5EScSGIFNMQVZLTworRFVORE9WScSGIFNUSkVQQU4KK0RVTknEhiBEUkFHScSGCitEVU5KScSGIFNUT0pBTgorRFVOT1ZJxIYgTUlMS0EKK0RVTk9WScSGIE5BVEHFoEEKK0RVUEFLIElNUkUKK0RVUEFLIE1BUklKQQorRFVQQUxPIFNMQVZLQQorRFVQT1IgR09SREFOQQorRFVQT1IgTUlMT8WgCitEVVBPUiBNSVJLTworRFVQT1IgWk9SSUNBCitEVVJBxIxLT1ZJxIYgQkFIUklKQQorRFVSQcSMS09WScSGIFNFTklKQQorRFVSQUtPVknEhiDEkFVSTworRFVSQUtPVknEhiBEUkFHQU4KK0RVUkFLT1ZJxIYgR09KS08KK0RVUkFLT1ZJxIYgR09KS08KK0RVUkFOIEJSQU5LTworRFVSQU5PVknEhiBWTEFESU1JUgorRFVSR1VUT1ZJxIYgUklGQUQKK0RVUktBTEnEhiBWSUtUT1IKK0RVUktPVknEhiBNSUxPUkFECitEVVJLT1ZJxIYgVkxBSktPCitEVVJLVUxJxIYgQUxFS1NBTkRBUgorRFVSS1VMScSGIFNQQVNPSkUKK0RVUkxFVknEhiBNSUxJQ0EKK0RVUk1BTiBEUkFHT0xKVUIKK0RVUk1BTiBHT0pLTworRFVSTUFOIE5BREEKK0RVUk1BTiBSQVNUSVNMQVYKK0RVUk/FoEtBIMWgQU5ET1IKK0RVUk/FoEtBIElWQU5LQQorRFVST8WgS0EgSkVMRU5BCitEVVJPxaBLQSBNSUhBSkxPCitEVVJPxaBLSSBKVUxJSkFOQQorRFVSVcWgS0EgUEFMCitEVVJVVE9WScSGIERSQUdBTgorRFVSVVRPVknEhiBSQURPVkFOCitEVVJVVE9WScSGIFNFTktBCitEVVNJxIYgR09TUEFWQQorRFVTUEFSQSBNSUxFTkEKK0RVU1BFUiDFoElNTworRFVUSU5BIEFORFJJSkEKK0RVVElOQSBCUkFOSVNMQVYKK0RVVElOQSBCUkFUT0xKVUIKK0RVVElOQSBEUkFHQU4KK0RVVElOQSBJUkVOQQorRFVUSU5BIE1JT01JUgorRFVUSU5BIFNMT0JPREFOCitEVVRJTkEgVkxBRElNSVIKK0RVVk5KQUsgRElWTkEKK0RVVk5KQUsgRElWTkEKK0RVVk5KQUsgSVZJQ0EKK0RVVk5KQUsgS09TVEEKK0RVVk5KQUsgTEFaQVIKK0RVVk5KQUsgTEFaQVIKK0RVVk5KQUsgTUFSQQorRFVWTkpBSyBNSUxFTktPCitEVVZOSkFLIE1JTE9SQUQKK0RVVk5KQUsgTkVOQUQKK0RVVk5KQUsgUkFET0pLQQorRFVWTkpBSyBTVEFOQQorRFZPUkHEjEtPIMWgQU5ET1IKK0RWT1JOScSGIE1JUkpBTkEKK0XFoEtJIEVSxb1FQkVUCitFxaBLScSMRVZJxIYgVkFTQQorRcSGSU0gUkFET1ZBTgorRcSGSU1PVknEhiBHT0pLTworRcSGSU1PVknEhiBOSUtPTEEKK0XEhklNT1ZJxIYgVkVTRUxJTgorRcSQRURJIEpPxb1FRgorRcSQRURJIEpVTElKQU5BCitFQkVOSEUtSk9WQU5PVknEhiBKQVNOQSBEUgorRUJFTkhFIE5JS09MQQorRUJFUkhBUkQtTUFSS09WScSGIE1JUkpBTkEKK0VCRVJIQVJUIFBFVEFSCitFQkVSU1QtU0VETEHEjEVLIEdBQlJJRUxBCitFQ0VUIEpPVkFOCitFQ0VUIEpPVkFOCitFQ0VUIEtBVEFMSU4KK0VDRVQgUEFMCitFREVMRU5KSSBNQVJJSkEKK0VERUxJTlNLSSBFVUdFTgorRURFTElOU0tJIEpPQUtJTQorRURFTElOU0tJIExKVUJJQ0EKK0VERUxJTlNLSSBWRVJBCitFREVMSU5TS0kgVkVSQQorRUZURU1JSlUgTklLT0xBCitFR0VMSkEgTUlMSUNBCitFR0VMSkEgTkVCT0rFoEEKK0VHRVJJxIYgTUlST1NMQVYgRFIKK0VHScSGIMSMRURNSUxBCitFR0nEhiDEkE9LQQorRUdJxIYgQlJBQ08KK0VHScSGIEJSQU5JU0xBVgorRUdJxIYgQ1ZFVEFOS0EKK0VHScSGIERSQUdBTgorRUdJxIYgTUFORQorRUdJxIYgTUFSSUpBTgorRUdJxIYgTUlDQQorRUdJxIYgTUlMQU4KK0VHScSGIE1JTEFOCitFR0nEhiBPTEdBCitFSknEhiBNSUxBTgorRUtFxaAgQUxFS1NBTkRBUgorRUtIQVJEVCBMSlVCSUNBCitFS0xJxIYgTUFSSkFOCitFS01FxaDEjEnEhiBNSUxJU0FWCitFS01FRMW9ScSGIEFOS0EKK0VLTUVExb1JxIYgTklLT0xBCitFS1JFUyDEkE9SxJBFCitFS1JFUyBBTkRSSUpBCitFS1JFUyBKQU5PxaAKK0VLUkVTIEpVTElKQU5BCitFS1JFUyBNSUxLQQorRUtSRVMgTkFORE9SCitFS1JFUyBPVE8KK0VLUkVTLVJBS0nEhiBWRVJJQ0EKK0VLUkVTIFJPWkFMSUpBCitFS1JFUyBWQUxFUklKQQorRUxFSyBFVkEKK0VMRVJPIFpWRVpEQU5BCitFTEVTSU4gQlJBTklTTEFWCitFTEVTSU4gQlJBTktBCitFTEVTSU4gRFJBR0EKK0VMRVNJTiBEUkFHT0xKVUIKK0VMRVNJTiBEVcWgQU5LQQorRUxFU0lOIEdSQURJTUlSCitFTEVTSU4gTUlST1NMQVYKK0VMRVNJTiBTQVZBCitFTEVTSU4gU0lOScWgQQorRUxFU0lOIFZMQURJTUlSCitFTEVaIMSQT0tBCitFTEVaIEdPUkFOCitFTEVaT1ZJxIYgTklLT0xBCitFTEVaT1ZJxIYgUEVUQVIKK0VMSEFSVCBMQVpBUgorRUxIQVJUIExBWkFSCitFTElBUyBJUkVOQQorRUxJSkHFoCBKQU4KK0VMSVpFSyDFvVXFvUFOQQorRUxJWkVLIElWQU4KK0VMT1IgScWgVFZBTgorRUxPUiBKQU5PxaAKK0VMT1IgTEpVQklDQQorRUxPUiBQQVZMRQorRUxPUiBaT1JJQ0EKK0VMVEVSIEpBTk/FoAorRUxURVIgWk9MVEFOCitFTUVSIEpBS09WCitFTUVSIE1BUktPCitFTUlOSSBCQUpSQU0KK0VNSU5JIEdBTkkKK0VNSU5JIFJPWkFMSUpBCitFTkFIT0xPIE5BREEKK0VOR0VMTUFOIEtBVElDQQorRU5HRVJUIE1JSEFKTE8KK0VOR0xFUiBMQUpPxaAKK0VQSUZBTknEhiBDVkVUQU5BCitFUElGQU5JxIYgRFXFoEtPCitFUsSMSS1WQVJHQSBNQVJJxaBLQQorRVLEjEnEhiBCT0pBTkEKK0VSxIxJxIYgTUlMT1JBRAorRVLEjEnEhiBSQURPVkFOCitFUsWgVEUgxb1FTEpLTworRVJBSyBCT1JPCitFUkFLIERVxaBBTgorRVJBSyBJTElKQQorRVJBSyBMQVpBUgorRVJBSyBNQVJLTworRVJBS09WScSGIEJPR0RBTgorRVJBS09WScSGIERBTklMTworRVJBS09WScSGIERSQUdJQ0EKK0VSQUtPVknEhiBLUklTVElWT0oKK0VSQUtPVknEhiBMSlVCScWgQQorRVJBS09WScSGIExKVUJPSkUKK0VSQUtPVknEhiBNSUxPUkFECitFUkFLT1ZJxIYgTUlUQVIKK0VSQUtPVknEhiBSQURFCitFUkFLT1ZJxIYgUkFKS08KK0VSQUtPVknEhiBTUkVURU4KK0VSQkXFoCBFUsW9RUJFVAorRVJCRcW9TklLIFNPTkpBCitFUkJFUyBCUkFOS0EKK0VSQkVTIE1BUkdJVEEKK0VSQkVaIEJMQcW9TworRVJCRVogRVLFvUVCRVQKK0VSQ0VHIMWgUElSTworRVJDRUcgxb1BUktPCitFUkNFRyDFvUlWS08KK0VSQ0VHIERBUkEKK0VSQ0VHIExKSUxKQU5BCitFUkNFRyBNSUtBCitFUkNFRyBSQURPVkFOCitFUkNFRyBSQUpLTworRVJDRUcgUkFKS08KK0VSQ0VHIFNMT0JPREFOCitFUkNFRyBTVEFOQQorRVJDRUcgWkRFTktPCitFUkNFRyBaRFJBVktPCitFUkNFR0FOIEdPUkFOCitFUkNFR0FOIE1JVEEKK0VSQ0VHT1bEjEVWScSGIMW9SVZPREFSCitFUkNFR09WxIxFVknEhiBET1NUQQorRVJDRUdPVkFDIEFOxJBFTEtPCitFUkNFR09WQUMgQlJBVElTTEFWCitFUkNFR09WQUMgTUlPRFJBRworRVJDRUdPVkFDIE1JVEFSCitFUkNFR09WQUMgTkFEQQorRVJDRUdPVkFDIFNBVkEKK0VSQ0VHT1ZBQyBTTE9CT0RBTgorRVJDRUdPVkFDIFNURVZBTgorRVJDRUdPVkFDIFRPTUlTTEFWCitFUkNFR09WScSGIERBTklDQQorRVJERcWgIERBTklFTAorRVJERcWgIEVNSUwKK0VSREXFoCBFU1RFUgorRVJERcWgIEVURUxLQQorRVJERcWgIElMT05BCitFUkRFxaAgSVZBTgorRVJERcWgIEpVTElKQU5BCitFUkRFxaAgS0xBUkEKK0VSREXFoCBMQVNMTworRVJERcWgIFBBTAorRVJERcWgIFBFVEFSCitFUkRFxaBJIExBU0xPCitFUkRFxaBJIFZBTEVSSUpBCitFUkRFRyBBUkFOS0EKK0VSREVHIElMT05BCitFUkRFRyBKQU5PxaAKK0VSREVHIEpVU1RJTkEKK0VSREVHIFRPTUlTTEFWCitFUkRFSSDFoEFORE9SCitFUkRFSSBKT1NJUAorRVJERUkgSk9WQU4KK0VSREVJIE1JSEFKTE8KK0VSREVJIFBFVEFSCitFUkRFSSBaT0xUQU4KK0VSREVMSiBCUkFOS08KK0VSREVMSiBFTUlMCitFUkRFTEogR09SQU4KK0VSREVMSiBMVURNSUxBCitFUkRFTEogTUlMVVRJTgorRVJERUxKQU4gxb1JVktPCitFUkRFTEpBTiBBTEVLU0FOREFSCitFUkRFTEpBTiBBTEtTQU5EQVIKK0VSREVMSkFOIEJJU0VSS0EKK0VSREVMSkFOIEJPxaBLTworRVJERUxKQU4tQk9HREFOT1YgU0xBVklDQQorRVJERUxKQU4gREFOSUxPCitFUkRFTEpBTiBET0JSSVZPSgorRVJERUxKQU4gRFXFoEFOS0EKK0VSREVMSkFOIERVxaBBTgorRVJERUxKQU4gRFXFoEFOCitFUkRFTEpBTiBEVcWgQU4KK0VSREVMSkFOIERVxaBBTgorRVJERUxKQU4gSkVMRU5BCitFUkRFTEpBTiBLQVRJQ0EKK0VSREVMSkFOIExKVUJJQ0EKK0VSREVMSkFOIExKVUJPTUlSCitFUkRFTEpBTiBNSUxBRElOCitFUkRFTEpBTiBNSUxBTiBESVBMIElORworRVJERUxKQU4gTUlMQU4KK0VSREVMSkFOIE1JTEVOS08KK0VSREVMSkFOIE1JTElWT0oKK0VSREVMSkFOIE1JTE9SQUQKK0VSREVMSkFOIE1JTE9SQUQKK0VSREVMSkFOIE1JTE9WQU4KK0VSREVMSkFOIE1JUkpBTkEKK0VSREVMSkFOIE5BREXFvURBCitFUkRFTEpBTiBOSUtPTEEKK0VSREVMSkFOIFBSRURSQUcKK0VSREVMSkFOIFJBRElWT0oKK0VSREVMSkFOIFNMQVZLQQorRVJERUxKQU4gU0xBVktBCitFUkRFTEpBTiBTTE9CT0RBTiBESVBMIElORworRVJERUxKQU4gU1JFRE9KRQorRVJERUxKQU4gU1RFVkFOCitFUkRFTEpBTiBTVkVUSVNMQVYKK0VSREVMSkFOIFRJSE9NSVIKK0VSREVMSkFOIFZFUklDQQorRVJERUxKQU4gVlVLSUNBCitFUkRFTEpBTiBaTEFUS08KK0VSREVMSkFOIFpPUkEKK0VSREVMSkFOSU4gQU7EkEVMS08KK0VSREVMSkkgxJBFUsSQCitFUkRFTEpJIEFOVEFMCitFUkRFTEpJIEJFTEEKK0VSREVMSkkgQklTRVJLQQorRVJERUxKSSBCT1JCQUxBCitFUkRFTEpJIERFxb1FCitFUkRFTEpJIERSQUdJQ0EKK0VSREVMSkkgRlJBTkpBCitFUkRFTEpJIEdBxaBQQVIKK0VSREVMSkkgScWgVFZBTgorRVJERUxKSSBKRU5FCitFUkRFTEpJIEpPxb1FRgorRVJERUxKSSBLQVJPTEoKK0VSREVMSkkgTEFKT8WgCitFUkRFTEpJIExBU0xPIERJUEwgSU5HCitFUkRFTEpJIE1BVElMREEKK0VSREVMSkkgU09GUk9OQQorRVJERUxKSSBTVEVWQU4KK0VSREVMSkkgVElCT1IKK0VSREVWSUsgTUFSQQorRVJERVZJSyBNQVJJSkEKK0VSREVWSUsgU0xPQk9EQU4KK0VSREVWSUsgVk9KSVNMQVYKK0VSREVWSUsgVlVLSUNBCitFUkRFVklLIFpEUkFWS08KK0VSRcWgIMWgQU5ET1IKK0VSRcWgIExBU0xPCitFUkXEkElOIFZVS0HFoElOCitFUkVHIExBSk/FoAorRVJFTUnEhiBKRUxJQ0EKK0VSRU1JxIYgSk9WQU4KK0VSRU1JxIYgTklOT1NMQVYKK0VSRU1JxIYgUkFET1ZBTgorRVJFTUnEhiBTQVZBCitFUkVNScSGIFNMQVZJQ0EKK0VSRU1JxIYgU1RBTklTTEFWQQorRVJFTUnEhiBUSUhPTUlSIERSIExFS0FSCitFUkVNScSGIFZFU0VMSU5LQQorRVJFTUlKQSBNSUxBTgorRVJFTUlKQSBTVEFOS08KK0VSRU1JTiBOSUtPTEEKK0VSRU5UQSBMSlVCSUNBCitFUkcgT0xHQQorRVJHRUxBxaBFViBEVUJSQVZLQQorRVJHRUxBxaBFViBJVkFOCitFUkdFTEHFoEVWIEpPVkFOCitFUkdFTEHFoEVWIE1JTEFOCitFUkdFTEHFoEVWIE1JTE/FoAorRVJHRUxBxaBFViBNT03EjElMTworRVJHRUxBxaBFViBORVNUT1IKK0VSR0VMQcWgRVYgU01JTEpLQQorRVJHRUxBxaBFViBUSUhPTUlSCitFUkdFTEHFoEVWIFpPUktBCitFUkhBUlRJxIwgQU5BCitFUkhBUlRJxIwgUlVET0xGCitFUkkgSUxPTkEKK0VSSSBKQU5PxaAKK0VSSSBKT1ZBTgorRVJJxIYgxJBVTElOS0EKK0VSScSGIEJPxb1JTgorRVJJxIYgTEpJTEpBTkEKK0VSScSGIE1BUktPCitFUknEhiBNSUxPTUlSCitFUknEhiBORUJPSsWgQQorRVJJxIYgUEVSTworRVJJxIYgU05Fxb1BTkEKK0VSScSGIFNWRVRPTUlSCitFUknEhiBaT1JJQ0EKK0VSS0nEhiDEkE9SxJBFCitFUktJxIYgUEVUQVIKK0VSTEFVRVIgSVZBTgorRVJMQVVFUiBKT1NJUAorRVJMRVIgVkVST05BCitFUk5FU1QgRlJBTkpBCitFUk9SIEpPVkFOCitFUk9SIFBFVEFSCitFUk9SIFNURVZBTgorRVJTS0kgUEVUQVIKK0VSU0tJLVBFVEtPVknEhiBTT05KQQorRVJUTCBGRVJFTkMKK0VSVEwgSEVEVklHQQorRVJUTCBMQVNMTworRVJUTCBWTEFTVEEKK0VTIEtMQVJBCitFU0UgxaBBTkRPUgorRVNLScSGIFNWRVRPWkFSCitFU1RFUiBKT1NJUAorRVNURVIgTUFSSUpBIERSCitFU1RFUiBNQVJUQQorRVTFoEJFUkdFUiBKQUtPQgorRVRFUiBPVE8KK0VURVJPVknEhiBWRVJBCitFVElOU0tJIMW9SVZBTgorRVRJTlNLSSDFvUlWT0pJTgorRVRJTlNLSSDEkE9SxJBFCitFVElOU0tJIERSQUdJxIYKK0VUSU5TS0kgRFJBR0nEhgorRVRJTlNLSSBKT1ZBTgorRVRJTlNLSSBMSlVCScWgQQorRVRJTlNLSSBNSUhBSkxPCitFVElOU0tJIE1JTE/FoAorRVRJTlNLSSBNSUxPUkFECitFVElOU0tJIE1JTE9SQUQKK0VUSU5TS0kgTUlMT1ZBTgorRVRJTlNLSSBOQURBCitFVElOU0tJIFBFVEFSCitFVElOU0tJIFJBRE9WQU4KK0VUSU5TS0kgU0xPQk9EQU5LQQorRVRJTlNLSSBWRUxKS08KK0VUSU5TS0kgVkVSQQorRVRJTlNLSSBWRVJJQ0EKK0VUT1JFIMSQSU5BCitFVsSQScSGIFNUQU5LQQorRVZFVE9WScSGIEJMQcWgS08KK0VWRVRPVknEhiBKT1NJUAorRVZFVE9WScSGIEpPVkFOCitFVkVUT1ZJxIYgSk9WQU4KK0VWScSGIEFMRUtTQU5EQVIKK0VWScSGIERSQUdJQ0EKK0VWScSGIEpFTElTQVZFVEEKK0VWScSGIEpPVkFOCitFVknEhiBMQVpBUgorRVZJxIYgTEFaQVIKK0VWScSGIFBFVEFSCitFVknEhiBTQVZBCitGQSBNRUxBTklKQQorRkEgTUlMS0EKK0ZBxIxBUiBTVEVWQU4KK0ZBxIxLTyBKT8W9RUYKK0ZBxIxLTyBTSU1BCitGQUJJQU4gQk9SQkFMQQorRkFCSUFOIEnFoFRWQU4KK0ZBQklBTiBKQU5PxaAKK0ZBQklKQU4gxaBBTkRPUgorRkFCSUpBTiBBTkEKK0ZBQklKQU4gSUxPTkEKK0ZBQklKQU4gSU1SRQorRkFCSUpBTiBJVkFOCitGQUJJSkFOIEpBTk/FoAorRkFCSUpBTiBMQVNMTworRkFCSUpBTiBOSUtPTEEKK0ZBQklKQU4gU1RFVkFOCitGQUJJSkFOIFNURVZBTgorRkFCSUpBTsSMScSGIElWQU4KK0ZBQklKQU7EjEnEhiBTVEpFUEFOCitGQUJJSkFOScSGIE1BUklKQQorRkFCSUpBTk9WScSGIEFOQQorRkFCUkkgTUlLTE/FoAorRkFCUkkgTkFORE9SCitGQUJSSSBTVEpFUEFOCitGQUJSSSBaVk9OS08KK0ZBQlJJSyBLQVRBTElOCitGQUNJUyBQQU5UQQorRkFJTiBBTkEKK0ZBSU4gTEFKT8WgCitGQUlOIFNURVZBTgorRkFKIEdBQk9SCitGQUpERVRJxIYgTEpVQklDQQorRkFKRElHQSBBTEVLU0FOREFSCitGQUpGRVIgUEVUQVIKK0ZBSkdFTEogSVZBTgorRkFKSE5FUiBIRU5SSUsKK0ZBSkhUTkVSIEpPU0lQCitGQUpIVE5FUiBSVcW9QQorRkFKSU4gScWgVFZBTgorRkFKS0EgREFOSUNBCitGQUpLQSBOQURBCitGQUpLQSBQQVZMRQorRkFKTklLIE1BUklKQQorRkFKVC1HUkFORVIgUk/FvUEKK0ZBSlQgSkVMSUNBCitGQUpUTkVSIFZFUk9OSUtBCitGQUtJTiBGUkFOSkEKK0ZBS0lOIElWQU4KK0ZBS0lOIFpWT05JTUlSCitGQUxCIMSQT1LEkEUKK0ZBTEIgQk9TSUxKS0EKK0ZBTEIgSk9TSVAKK0ZBTEIgS0FST0xKCitGQUxCIEtBUk9MSgorRkFMQiBNQVJJTkEKK0ZBTEIgTUFUSUpBCitGQUxCIE9UTworRkFMQiBaT0xUQU4KK0ZBTUlMScSGIMSQT1LEkEUKK0ZBTUlMScSGIElWQU4KK0ZBTsSMRVZJxIYgQUxFS1NBTkRBUgorRkFOxIxFVknEhiBKT1NJUAorRkFOxIxFVknEhiBLQVRBTElOCitGQU7EjEVWScSGIExKVURFVklUCitGQU7EjEVWScSGIFRFUkVaSUpBCitGQU5LQSBEVcWgQU4KK0ZBTktBIE1BUkEKK0ZBUkFHTyDFoEFORE9SCitGQVJBR08gxaBBTkRPUgorRkFSQUdPIEFSQU5LQQorRkFSQUdPIEFSUEFECitGQVJBR08gRlJBTkpBCitGQVJBR08gSk/FvUVGCitGQVJBR08gSk9TSVAKK0ZBUkFHTyBLQVJMTworRkFSQUdPIExBU0xPCitGQVJBR08gTUFSSUpBCitGQVJLIEFNQUxJSkEKK0ZBUksgQkVBVEEKK0ZBUktBxaAgQUxFS1NBTkRBUgorRkFSS0HFoCBBTEVLU0FOREFSCitGQVJLQcWgIEJPxb1FTkEKK0ZBUktBxaAgRFJBR1VUSU4KK0ZBUktBxaAgRUxFTUVSCitGQVJLQcWgIEVMSVpBQkVUQQorRkFSS0HFoCBFTFpBCitGQVJLQcWgIEVTVEVSCitGQVJLQcWgIEVTVEVSCitGQVJLQcWgIEZFUkVOQworRkFSS0HFoCBGRVJFTkMKK0ZBUktBxaAgRkVSRU5DCitGQVJLQcWgIEZFUkVOQworRkFSS0HFoCBGUkFOSkEKK0ZBUktBxaAgR0FCT1IKK0ZBUktBxaAgScWgVFZBTgorRkFSS0HFoCBJxaBUVkFOCitGQVJLQcWgIElMT05BCitGQVJLQcWgIElMT05LQQorRkFSS0HFoCBJTVJFCitGQVJLQcWgIEpBTgorRkFSS0HFoCBKQVJPU0xBVgorRkFSS0HFoCBKRUxJU0FWRVRBCitGQVJLQcWgIEpPxb1FRgorRkFSS0HFoCBKT8W9RUYKK0ZBUktBxaAgSk/FvUVGCitGQVJLQcWgIEpPxb1FRgorRkFSS0HFoCBKT1NJUAorRkFSS0HFoCBKT1NJUAorRkFSS0HFoCBKT1ZBTgorRkFSS0HFoCBKT1ZHRU4KK0ZBUktBxaAgSlVESVRBCitGQVJLQcWgIEtBUkxPCitGQVJLQcWgIEtBVEFMSU4KK0ZBUktBxaAgS0xBUkEKK0ZBUktBxaAgTEFESVNMQVYKK0ZBUktBxaAgTEFKT8WgCitGQVJLQcWgIExBU0xPCitGQVJLQcWgIE1BUklKQQorRkFSS0HFoCBNQVRJTERBCitGQVJLQcWgIE1JSEFMSgorRkFSS0HFoCBOQURBCitGQVJLQcWgIFBBTAorRkFSS0HFoCBQQVZMRQorRkFSS0HFoCBST1pBTElKQQorRkFSS0HFoCBTVEVWQU4KK0ZBUktBxaAtVE9UIFZJS1RPUklKQQorRkFSS0HFoCBWRVJBCitGQVJLQcWgIFZFUklDQQorRkFSS0nEhiBNSUxBTgorRkFSS09WIEpPVkFOS0EKK0ZBVCBKT1NJUAorRkFUIExBU0xPCitGQVQgTUlIQUwKK0ZBVEnEhiBNQVJBCitGQVRVUk9WScSGIFJBSktPCitGQVVLT1ZJxIYgTkFEQQorRkFaRUtBxaAgQU5UQUwKK0ZBWkVLQcWgIEpBTk/FoAorRkFaRUtBxaAgS0FUQUxJTgorRkFaRUtBxaAgVElCT1IKK0ZBWkxJxIYgSkVMSUNBCitGQVpMScSGIEpPVkFOS0EKK0ZBWkxJTk9WScSGIEVMQklTQQorRkFaTElOT1ZJxIYgSkFTTUlOS0EKK0ZFxaBJxaAgSU1SRQorRkXFoEnFoCBKT8W9RUYKK0ZFxaBJxaAgSk/FvUVGCitGRUNFIElWQU4KK0ZFQ0UgTUFSSUpBCitGRURFUkVSIEpPVkFOCitGRURFUkVSIE1JUktPCitGRURJIEpPxb1FRgorRkVIRVIgxaBBTkRPUgorRkVIRVIgxaBBTkRPUgorRkVIRVIgxJBFUsSQCitGRUhFUiDEkFVMQQorRkVIRVIgxJBVTEEKK0ZFSEVSIEFORFJBxaAKK0ZFSEVSIEFSSVNUSUQKK0ZFSEVSIEVSTkUKK0ZFSEVSIEVSTkUKK0ZFSEVSIEZFUkVOQworRkVIRVIgSkFOT8WgCitGRUhFUiBKQU5PxaAKK0ZFSEVSIEpBTk/FoAorRkVIRVIgSk/FvUVGCitGRUhFUiBKT8W9RUYKK0ZFSEVSIEpPVkFOCitGRUhFUiBKT1ZBTgorRkVIRVIgSlVMSUpBCitGRUhFUiBLQUxNQU4KK0ZFSEVSIExBSk/FoAorRkVIRVIgTEFTTE8KK0ZFSEVSIExBU0xPCitGRUhFUiBNQVJHSVRBCitGRUhFUiBNQVJJSkEKK0ZFSEVSIE1JSEFKTE8KK0ZFSEVSIE5BTkRPUgorRkVIRVIgU1RFVkFOCitGRUhFUiBTVEVWQU4KK0ZFSEVSIFRFUkVaQQorRkVIRVIgVkVSQQorRkVIRVJWQVJJIEpFTElTQVZFVEEKK0ZFSElSIEFMRUtTQU5EQVIKK0ZFSElSIFBFVEFSCitGRUhJUk9WIEFWUkFNCitGRUhJUk9WIEtPU0FOQQorRkVISVJPViBNSVJKQU5BCitGRUrEkEkgVkxBRElNSVIKK0ZFSkRFVEnEhiBUT01JU0xBVgorRkVKRcWgIMWgQU5ET1IKK0ZFSkXFoCDEkE9SxJBFCitGRUpFxaAgQVJBTktBCitGRUpFxaAgR0VOQQorRkVKRcWgIEnFoFRWQU4KK0ZFSkXFoCBJxaBUVkFOCitGRUpFxaAgSkFOT8WgCitGRUpFxaAgSkFOT8WgCitGRUpFxaAgTEpJTEpBTkEKK0ZFSkXFoCBaT0xUQU4KK0ZFSkXFoCBaT0xUQU4KK0ZFSkZBUiBKVUxJSkFOQQorRkVKU0EgR0VPUkdJSkUKK0ZFSlNBIEpBTktPIE1SIFBICitGRUpTQSBNQVJHSVRBCitGRUpTQS1QT1BPVknEhiBMRU9OQQorRkVKU1RIQU1FTCBQQUwKK0ZFSlpVTEFISSBGRUpaVUxBSAorRkVLRVRFIMWgQU5ET1IKK0ZFS0VURSDFoEFORE9SCitGRUtFVEUgxb1Vxb1BTkEKK0ZFS0VURSBBRE9MRgorRkVLRVRFIEZFUkVOQworRkVLRVRFIEZFUkVOQworRkVLRVRFIEpBR09EQQorRkVLRVRFIEtBUkxPCitGRUtFVEUgS0FUSUNBCitGRUtFVEUgTEFTTE8KK0ZFS0VURSBNQVJJSkEKK0ZFS0VURSBNQVJJSkEKK0ZFS0VURSBNQVJJSkEKK0ZFS0VURSBNSUhBSkxPCitGRUtFVEUgTUlIQUxKCitGRUtFVEUgUEVUQVIKK0ZFS0VURSBTVEVWQU4KK0ZFS0VURSBWRVNOQQorRkVLScSGIFZMQURJTUlSCitGRUxCQUIgUkFEQQorRkVMQkFCIFNBVkEKK0ZFTEJBQiBTVEFOSU1JUgorRkVMQkFCT1YgRElNSVRSSUpFCitGRUxCQUJPViBKT1ZBTgorRkVMQkFCT1YgVkxBRElTTEFWQQorRkVMQkFQIEpVTEtBCitGRUxCQVAgTklLT0xBCitGRUxCQVBPViBESU1JVFJJSkUKK0ZFTEJBUE9WIE1JTEFOS0EKK0ZFTEJBUE9WIE1JTE9SQUQKK0ZFTEJBUE9WIE5FTUFOSkEKK0ZFTEJBUE9WIFJBRE1JTEEKK0ZFTEJBUE9WIFJBRE9TTEFWCitGRUxCQVBPViBTVEVWQU4KK0ZFTETFoEVSIEFOQQorRkVMRMWgRVIgS0FSTE8KK0ZFTERFxaBESSBBTkRSSUpBCitGRUxERcWgSSBGUkFOSkEKK0ZFTERFxaBJIElCT0xKQSBEUgorRkVMREXFoEkgTUFSSUpBCitGRUxERcW9REkgSlVMSUpBTkEKK0ZFTERFxb1ESSBMQVNMTworRkVMREXFvURJIFBFVEFSCitGRUxERcW9REkgU1RFVkFOCitGRUxERUFLIERBTklDQQorRkVMREVBSyBKT8W9RUYKK0ZFTERJIMWgQU5ET1IKK0ZFTERJIEVSxb1FQkVUCitGRUxESSBKQVJPU0xBVgorRkVMRFZBUkkgSk9TSVAKK0ZFTERWQVJJIEpPVkFOCitGRUxEVkFSSSBKVVNUSU5BCitGRUxEVkFSSSBLQUxNQU4KK0ZFTERWQVJJIE9MR0lDQQorRkVMRFZBUkkgU1RFVkFOCitGRUxEVkVCRUwgUk9aQUxJSkEKK0ZFTEUgRFJBxb1FTiBMRUtBUgorRkVMRcSGIElaRVQKK0ZFTEVHSSBBTkEKK0ZFTEVHSSBMQURJU0xBVgorRkVMSkEgTUlSSkFOQQorRkVMTkVSIERVxaBBTktBCitGRUxORVIgVElCT1IKK0ZFTUnEhiBBTEVLU0lKRQorRkVNScSGIEJMQUdPSkUKK0ZFTUnEhiBHUlVKSUNBCitGRU1JxIYgTUlMSUpBCitGRU1JxIYgTUlMT1ZBTgorRkVNScSGIFBFVEtPCitGRU1JxIYgUkFETUlMQQorRkVNScSGIFNUQU5LQQorRkVNScSGIFZFTEpLTworRkVNScSGIFpPUkEKK0ZFTkMgUlXFvUlDQQorRkVORExFUiBKT1ZBTgorRkVORFJJSyBBTkRSSUpBCitGRU5EUklLIEZSQU5KTworRkVORFJJSyBLQVJMTworRkVOSkFDIElWQU4KK0ZFTkpBQyBKT1ZBTgorRkVOSkFDIFNJTknFoEEKK0ZFTkpBQyBTTE9CT0RBTktBCitGRU5KRcWgIEFOQQorRkVOSkXFoCBGUkFOSkEKK0ZFTkpWRcWgSSBNQVJJxaBLQQorRkVSxIxJSyBBTkRSSUpBCitGRVJBUklOT1YgUEFWTEUKK0ZFUkFSSU8gU0lMVklPCitGRVJBVEkgQUZJWgorRkVSQVRJIEJFUk8KK0ZFUkFUSSBFSEFUCitGRVJBVEkgUkFHSVAKK0ZFUkFUSSBTRUpGSURJTgorRkVSQVRJIFNLRU5ERVIKK0ZFUkVOxIxBSyBJVklDQQorRkVSRU7EjEVLIExKVUJJQ0EKK0ZFUkVOxIxFSyBPTElWRVIgRElQTCBJTkcKK0ZFUkVOxIxFSyBWSUxLTworRkVSRU7EjEVWIE1JTE9SQUQKK0ZFUkVOxIxFViBaT1JBCitGRVJFTsSMRVZJxIYgxJBPUsSQRQorRkVSRU7EjEVWScSGLVNBTEFKIEpFTEVOQQorRkVSRU5BQyBBTkRSSUpBCitGRVJFTkFDIEFORFJJSkEKK0ZFUkVOQUMgSVZBTgorRkVSRU5BQyBSQURNSUxBCitGRVJFTkMgQU5UQUwKK0ZFUkVOQyBKT8W9RUYKK0ZFUkVOQyBKT8W9RUYKK0ZFUkVOQ0kgxJBFUsSQCitGRVJFTkNJIERFWklERVIKK0ZFUkVOQ0kgRVVHRU4KK0ZFUkVOQ0kgRlJBTkpBCitGRVJFTkNJIEpVTElKQU5BCitGRVJFTkNJIFNURVZBTgorRkVSRU5DSSBWRVJBCitGRVJJSyBKVVJBSgorRkVSSUsgSlVSQUoKK0ZFUklaT1ZJxIYgQUhNRVQKK0ZFUktPIEFORFJFSiBEUiBMRUtBUgorRkVSS08gTUlMT8WgCitGRVJLTyBQQVZFTAorRkVSS08gUEFWTEUKK0ZFUkxBTiBSQURNSUxBCitGRVRBSEkgQkFKUkFNCitGRVRBSE9WScSGIElTTUVUCitGRVRBSSBaSUJFUgorRknEjE9LIEFMT0paSUpFCitGScWgQUtPViBLT05TVEFESU4KK0ZJxaBBTkcgTEpJTEpBTkEKK0ZJxaBFUiDEkE9SxJBFIERSIExFS0FSCitGScWgRVIgxJBPUsSQRQorRknFoEVSIEFMRUtTQU5EQVIgRFIKK0ZJxaBFUiBBTEVLU0FOREFSCitGScWgRVIgQU5UT04KK0ZJxaBFUiBCTEFOS0EKK0ZJxaBFUiBEUkFHVVRJTgorRknFoEVSIEdBVlJBCitGScWgRVIgSVJFTkEKK0ZJxaBFUiBJUkVOQQorRknFoEVSIEpFTkUKK0ZJxaBFUiBKT1NJUAorRknFoEVSIEtBUk9MSgorRknFoEVSIExBU0xPCitGScWgRVIgTEVPIERSCitGScWgRVIgTkFUQUxJSkEKK0ZJxaBFUiBQSVJPxaBLQQorRknFoEVSIFNURVZBTgorRknFoEVSIFpWT05JTUlSCitGScWgTCBGRURPUgorRknFoEwgSlVMSUpBIERJUEwgSU5HCitGScWgVEXFoCBJTVJFCitGScWgVEXFoCBNQVJJSkEKK0ZJxaBURcWgIE1JSEFMSgorRknFoFRFxaAgUElST8WgS0EKK0ZJQUxBIElWQU5LQQorRklBTEEgSVZBTgorRklCScWgQU4gxJBVUkHEkAorRklCScWgQU4gU0xBVk9MSlVCCitGSUNFIEVSxb1FQkVUCitGSUNJTkdFUiBWQUxFUklKQQorRklEVcWgRUsgS0FUSUNBCitGSUZBIERSQUdJQ0EKK0ZJRkEgTkVCSQorRklHVVJBIMWgQU5ET1IKK0ZJSkFUT1ZJxIYgT0xHQQorRklKVUtPVknEhiBTQURFVEEKK0ZJSlVMSkFOSU4gWlVMRk8KK0ZJTEVLSSBNSVJPU0xBVgorRklMRUtPVknEhiBTRUlECitGSUxFUCDEkEVSxJAKK0ZJTEVQIMSQT1LEkEUKK0ZJTEVQIMSQT1LEkEUKK0ZJTEVQIEFOVEFMCitGSUxFUCBCRUxBCitGSUxFUCBJREEKK0ZJTEVQIEpFTkUKK0ZJTEVQIEpPxb1FRgorRklMRVAgS0FMTUFOCitGSUxFUCBLQUxNQU4KK0ZJTEVQIExBRElTTEFWCitGSUxFUCBNSVJKQU5BCitGSUxFUCBaT0xUQU4KK0ZJTEVQSSBNSVJPU0xBVgorRklMSU1PTk9WScSGIMW9SVZPUkFECitGSUxJTU9OT1ZJxIYgxJBPUsSQRQorRklMSVAgSk9WQU4gRFIgUFJBVk5JSworRklMSVAgUkFET1NBVgorRklMSVDEjEVWIFpEUkFWS08KK0ZJTElQQcWgIERSQUdBTgorRklMSVBBxaBFViBOQURBCitGSUxJUEVDIFpJVEEKK0ZJTElQRU5ESU4gTUFSS08KK0ZJTElQT1YgSUxJSkEKK0ZJTElQT1YgTUlMT8WgCitGSUxJUE9WIE1JT0RSQUcKK0ZJTElQT1YgTU9NSVIKK0ZJTElQT1YgTklLT0xBCitGSUxJUE9WIFBSRURSQUcKK0ZJTElQT1YgUkFET1ZBTgorRklMSVBPViBTTEHEkEFOQQorRklMSVBPViBUSUhPTUlSCitGSUxJUE9WIFRJSkFOQQorRklMSVBPVknEhiDEjEVETworRklMSVBPVknEhiBBTEVLU0FOREFSCitGSUxJUE9WScSGIEFOVE9OCitGSUxJUE9WScSGIEJPxaBLTworRklMSVBPVknEhiBCT0dPTUlSCitGSUxJUE9WScSGIEJPUkEKK0ZJTElQT1ZJxIYgQlJBTktPCitGSUxJUE9WScSGLURBTUpBTk9WIE5BREEKK0ZJTElQT1ZJxIYgREVTQU5LQQorRklMSVBPVknEhiBESUpBTkEKK0ZJTElQT1ZJxIYgRE9CUklDQQorRklMSVBPVknEhiBET0JSSUxBCitGSUxJUE9WScSGIERSQUdBTgorRklMSVBPVknEhiBEUkFHQU4KK0ZJTElQT1ZJxIYgRFXFoEFOS0EKK0ZJTElQT1ZJxIYgRFXFoEFOS0EKK0ZJTElQT1ZJxIYgR09SREFOQQorRklMSVBPVknEhiBJVkFOCitGSUxJUE9WScSGIElWQU4KK0ZJTElQT1ZJxIYgSkVMSVNBVkVUQQorRklMSVBPVknEhiBKT1ZBTgorRklMSVBPVknEhiBKT1ZBTgorRklMSVBPVknEhiBMRVBPU0FWQQorRklMSVBPVknEhiBMSklMSkFOQQorRklMSVBPVknEhiBMSlVCSUNBCitGSUxJUE9WScSGIExKVUJJTktBCitGSUxJUE9WScSGIExKVUJJTktPCitGSUxJUE9WScSGIE1JTEFESU4KK0ZJTElQT1ZJxIYgTUlMQURJTgorRklMSVBPVknEhiBNSUxBTiBESVBMIElORworRklMSVBPVknEhiBNSUxBTktBCitGSUxJUE9WScSGIE1JTEFOS0EKK0ZJTElQT1ZJxIYgTUlMQU4KK0ZJTElQT1ZJxIYgTUlMQU4KK0ZJTElQT1ZJxIYgTUlMQU4KK0ZJTElQT1ZJxIYgTUlMRU5BCitGSUxJUE9WScSGIE1JTEVOS08KK0ZJTElQT1ZJxIYgTUlMSVZPSkUKK0ZJTElQT1ZJxIYgTUlMS0EKK0ZJTElQT1ZJxIYgTUlMT0pLTworRklMSVBPVknEhiBNSUxPVkFOCitGSUxJUE9WScSGIE1JT0RSQUcKK0ZJTElQT1ZJxIYgTUlPRFJBRworRklMSVBPVknEhiBNSVJKQU5BCitGSUxJUE9WScSGIE1JUktPCitGSUxJUE9WScSGIE1JUk9TTEFWCitGSUxJUE9WScSGIE5BVEHFoEEKK0ZJTElQT1ZJxIYgTklLT0xBCitGSUxJUE9WScSGIE5JS09MQQorRklMSVBPVknEhiBOSUtPTEEKK0ZJTElQT1ZJxIYgTklLT0xBCitGSUxJUE9WScSGIE5JS09MSU5BCitGSUxJUE9WScSGIFBBVUxBCitGSUxJUE9WScSGIFBFUk8KK0ZJTElQT1ZJxIYgUkFESVZPSgorRklMSVBPVknEhiBSQURPSktBCitGSUxJUE9WScSGIFJBRE9KS08KK0ZJTElQT1ZJxIYgUkFET1NMQVYKK0ZJTElQT1ZJxIYgUkFET1ZBTgorRklMSVBPVknEhiBSQU5LQQorRklMSVBPVknEhiBSVcW9QU5BCitGSUxJUE9WScSGIFJVRE9MRgorRklMSVBPVknEhiBTQVZBIERJUEwgSU5HCitGSUxJUE9WScSGIFNBVkEKK0ZJTElQT1ZJxIYgU0lCSU4KK0ZJTElQT1ZJxIYgU0xBVktPCitGSUxJUE9WScSGIFNORcW9QU5BCitGSUxJUE9WScSGIFNQQVNPSkUKK0ZJTElQT1ZJxIYgU1LEkEFOCitGSUxJUE9WScSGIFNSRcSGS08KK0ZJTElQT1ZJxIYgU1RFVkFOIERSIFNUT01BVE9MT0cKK0ZJTElQT1ZJxIYgU1RPSkFOCitGSUxJUE9WScSGIFNUT0pBTgorRklMSVBPVknEhiBUT01JU0xBVgorRklMSVBPVknEhiBWRVNOQQorRklMSVBPVknEhiBWSURPU0FWCitGSUxJUE9WScSGIFZMQURJTUlSCitGSUxJUE9WScSGIFpPUkFOCitGSUxJUE9WScSGIFpPUkFOCitGSUxJUE9WScSGIFpPUkFOCitGSUxJUE9WScSGIFpPUkFOCitGSUxJUE9WScSGIFpPUklDQQorRklMSVBPVlNLQS1PQlJBRE9WScSGIFZFUkEKK0ZJTElQT1ZTS0kgQk/FvU8KK0ZJTElQT1ZTS0kgVE9ET1MKK0ZJTEtPIERSQUdJQ0EKK0ZJTEtPIEpPU0lQCitGSUxLTyBKT1ZBTgorRklMS08gTUFSSUpBCitGSUxLTyBNSUhBTEoKK0ZJTEtPIE1JSEFMSgorRklMS08gUEFWRUwKK0ZJTEtPIFRJSE9NSVIKK0ZJTsSMVVIgQUxFS1NBTkRBUgorRklOxIxVUiBKT8W9RUYKK0ZJTsSMVVIgSlVMSUpBTkEKK0ZJTsSMVVIgTEFESVNMQVYKK0ZJTkTFvUFOT1ZJxIYgR09KS08KK0ZJTkTFvUFOT1ZJxIYgTUlLTworRklORMW9QU5PVknEhiBNSVJLTworRklORMW9QU5PVknEhiBPQlJBRAorRklOSy1ESU1JVFJJSkVWScSGIERPUk9URUEKK0ZJTksgVklLVE9SIE5PVklOQVIKK0ZJTktBIEdPUsSMQU4KK0ZJUiBCRUFUQQorRklSQU5KIEpPxb1FRgorRklSQU5KSSDEkEVSxJAKK0ZJUkFOSkkgxJBPUsSQRQorRklSQU5KSSDEkE9SxJBFCitGSVJBTkpJIEVSxb1FQkVUCitGSVJBTkpJIEpPVkFOCitGSVJBTkpJIFZJS1RPUgorRklSScSGIE1BUklKQQorRklSVUxPVknEhiBLT1NUQU5USU4KK0ZJU1RSScSGIMSQT1LEkEUKK0ZJU1RSScSGIE1JUkpBTkEKK0ZJVkXFoEkgR0FCT1IKK0ZJVkXFoEkgVElCT1IKK0ZMQUMgSVZBTktBCitGTEFDIFBFVEFSCitGTEFKUyBKRUxJU0FWRVRBCitGTEVHRVIgU1RFVkFOCitGTEVHTyBJVkFOCitGTEVHTyBNQVJUQQorRkxFS0HEjCBWTEFETworRkxJVE5FUiBPU0tBUgorRkxPS0EgxJBFTklLQQorRkxPUkEgVkFTQQorRkxPUknEhiBESU1JVFJJSkUKK0ZMT1JJxIYgTEpVQklDQQorRkxPUknEhiBaT1JBTgorRkxPUknEhiBaT1JBTgorRkxPUklOIFZJTktBCitGT0RPUiDFvU9GSUpBCitGT0RPUiBBTkEKK0ZPRE9SIEFORFJJSkEKK0ZPRE9SIEVSxb1FQkVUCitGT0RPUiBGRVJFTkMKK0ZPRE9SIEZSQU5KQQorRk9ET1IgRlJBTkpBCitGT0RPUiBKT0xBTgorRk9ET1IgSk9WQU4KK0ZPRE9SIEpPVkFOCitGT0RPUiBLQUxNQU4KK0ZPRE9SIEtBVEEKK0ZPRE9SIExBSk/FoAorRk9ET1IgTEFTTE8KK0ZPRE9SIExBU0xPCitGT0RPUiBMQVNMTworRk9ET1IgTEFTTE8KK0ZPRE9SIExJRElKQQorRk9ET1IgTUFSVEEKK0ZPRE9SIE9TS0FSIERJUEwgT0VDCitGT0RPUiBUSUJPUgorRk9ET1IgVElCT1IKK0ZPRE9SIFRJQk9SCitGT0RPUiBaRFJBVktPCitGT0RPUkEgSkFOS08KK0ZPR0FSQcWgSSDEkEVSxJAgRFIKK0ZPR0FSQcWgSSDEkEVSxJAKK0ZPR0FSQcWgSSBBTkRSSUpBCitGT0dBUkHFoEkgQU5JS08KK0ZPR0FSQcWgSSBJTE9OQQorRk9HQVJBxaBJIFNURVZBTgorRk9HTCBNQUdEQUxFTkEKK0ZPSktBUiBKQU5LTworRk9MScSGIFJBRE9NSVIgRFIKK0ZPTFRJTiBNQVJHSVRBCitGT0xUSU4gTUlMSUNBCitGT05UQU5KIExPVEFSCitGT1JBSSBaT0xUQU4KK0ZPUkFJIFpPUklDQQorRk9SR0HEjCBKRUxJU0FWRVRBCitGT1JHScSGIElWQU4KK0ZPUkdPIEnFoFRWQU4KK0ZPUkdPIExBU0xPCitGT1JJxaBLT1YgSk9WQU5LQQorRk9SScWgS09WIExBWkFSCitGT1JJxaBLT1ZJxIYgQUxFS1NBTkRBUgorRk9SS0FQQSBTQVZPCitGT1JLQVBJxIYgQUxFS1NBTkRBUgorRk9SS0FQScSGIElWQU5LQQorRk9SS0FQScSGIExBWkFSCitGT1JLQVBJxIYgTUFSSUpBCitGT1JLQVBJxIYgTklLT0xBCitGT1JLQVBJxIYgU0FWQQorRk9SS0FQScSGIFNMQVZJQ0EKK0ZPUktBUEnEhiBWRUxJTktBCitGT1JPIElWQU4KK0ZPUk8gSlVMSUpBTkEKK0ZPVEnEhiDEkE9SxJBFCitGT1pFS0/FoCBBTktJQ0EKK0ZSxIxFSyDEkFVSQQorRlLEjEVLIE1BUklKQQorRlLFvU9QIE1JxaBFCitGUsW9T1ZJxIYgxJBPUsSQRQorRlLFvU9WScSGIEdBVlJJTE8KK0ZSxb1PVknEhiBNSUhBSkxPCitGUsW9T1ZJxIYgTUlMRU5BCitGUkFDSUxFIE5JQ0UKK0ZSQUpTVCBSVURPTEYKK0ZSQUpUT1ZJxIYgTU9NxIxJTE8KK0ZSQUpaIFBFVEFSCitGUkFOxIxJxIYgUk9LCitGUkFOQyBNQUdEQUxFTkEgRElQTCBJTkcKK0ZSQU5DRUxKIEZSQU5DCitGUkFOQ0VSIElWQU4KK0ZSQU5DRVIgSVZBTgorRlJBTkNJxaBLT1ZJxIYgQVRJTEEKK0ZSQU5DScWgS09WScSGIElWQU4KK0ZSQU5DScWgS09WScSGIE1BVEUKK0ZSQU5DSUEgQU5EUklKQQorRlJBTkNJQSBJxaBUVkFOCitGUkFOQ0lBIFBFVEFSCitGUkFOQ0lKQSBKT8W9RUYKK0ZSQU5DSUpBLUtVS0nEjEtBIE1BUkdBUkVUQQorRlJBTkNJU1RJIMSQT1LEkEUKK0ZSQU5DSVNUSSBKQVJPU0xBVgorRlJBTkNJU1RJIFBBVkxFCitGUkFOQ0lTVEkgVkxBRElNSVIKK0ZSQU5DVVNLSSBBTEVLU0EKK0ZSQU5DVVNLSSBCUkFOSVNMQVYKK0ZSQU5DVVNLSSBEQVJJTktBCitGUkFOQ1VTS0kgREVTQU5LQQorRlJBTkNVU0tJIERSQUdBTgorRlJBTkNVU0tJIERVxaBBTgorRlJBTkNVU0tJIElWQU4gRFIKK0ZSQU5DVVNLSSBKT1ZBTktBCitGUkFOQ1VTS0kgTUFSS08KK0ZSQU5DVVNLSSBNSUxBTgorRlJBTkNVU0tJIE1JUk9TTEFWCitGUkFOQ1VTS0kgUEVUQVIKK0ZSQU5DVVNLSSBSQURPVkFOCitGUkFOQ1VTS0kgU0xPQk9EQU5LQQorRlJBTkNVU0tJIFNUUkFISU5KQQorRlJBTkNVU0tJIFpPUkFOCitGUkFOQ1VTS0kgWk9SQU4KK0ZSQU5DVVNLSSBaT1JLQQorRlJBTkNVU0tJIFpPUktBCitGUkFOQ1VaIERBUklOS0EKK0ZSQU5DVVogSkVMRU5BCitGUkFOQ1VaIFZFTElNSVIKK0ZSQU5DVVogVlVLCitGUkFORVRBIEpPVk8KK0ZSQU5JxIYgSVZBTgorRlJBTknEhiBNSUxLQQorRlJBTkpJxIxFVknEhiBOSUtPTEEKK0ZSQU5KScSGIE1BUklDQQorRlJBTkpPIMW9VcW9QU5BCitGUkFOSyDEkEVSxJAKK0ZSQU5LIEZFUkVOQworRlJBTksgSUxFxaAKK0ZSQU5LIEpBTk/FoAorRlJBTksgVElCT1IKK0ZSQU5LQSBNSUhBSkxPCitGUkFOS09WScSGIEpPVkFOCitGUkFOT1ZJxIYgQUxFS1NBTkRSQQorRlJBTk9WScSGIFZMQURJTUlSCitGUkFOWkVSIElWQU4KK0ZSQVRPSiBKT0NBCitGUkFUUknEhiBTSUdNVU5ECitGUkFUVUNBTiDEkE9SxJBFCitGUkFUVUNBTiDEkE9SxJBFCitGUkFUVUNBTiBGSUxJUAorRlJBVFVDQU4gSVZBTgorRlJBVFVDQU4gTkVWRU5BCitGUkFUVUNBTiBQRVRBUgorRlJBVFVDQU5PViBJVkFOS0EKK0ZSRUkgRUxJWkFCRVRBCitGUkVNRVIgQU5UVU4KK0ZSRU1MIMWgQU5ET1IKK0ZSRU5LRUwgQU5BCitGUkVOS0VMIEVWQQorRlJFTktMIERSQUdJQ0EKK0ZSScSMIEJPxb1JREFSCitGUknEjCBLQVRJQ0EKK0ZSScWgIERSQUdBTgorRlJJxaAgTUlMQU4KK0ZSScWgxIxJxIYgRFJBR1VUSU4KK0ZSSUMgUlVET0xGCitGUklEUklIIEFOQQorRlJJRFJJSCBKRUxFTkEKK0ZSSURSSUggTUFHREEKK0ZSSURSSUggWk9SSUNBCitGUklORElLIEZSQU5KQQorRlJJTkRJSyBNSUhBTEoKK0ZSSU5EUklLIEJFTEEKK0ZSS0EgQVJUVVIKK0ZSS0EgTklLT0xBCitGUkxKIE1VSEFSRU0KK0ZST0wgTUFSSUpBTgorRlJPTCBOQURBCitGUk9MIFZJTElNCitGUlXFvUEgQUxFS1NBTkRBUgorRlXEjElLIEtBUkxPCitGVURFUkVSIEpVTElKRQorRlVERVJFUiBNQUdEQUxFTkEKK0ZVSktBIMSQT1LEkEUKK0ZVSlRPIFZMQURJTUlSCitGVUxBSlRFUiDEkE9SxJBFCitGVU7EhklLIFBBVkxFCitGVU5EVVJVTEpBIE1JTEVOS08KK0ZVTksgxaBURUZBTklKQQorRlVOSyBMQUpPxaAKK0ZVTlRFSyBJVkFOCitGVVJKQU5PVknEhiBWTEFESVNMQVYKK0ZVUkxBTiBFUsW9RUJFVAorRlVSTEFOIE1BUktPCitGVVJNQU4gRlJBTkpBCitGVVJNQU4gSk9WQU4KK0ZVUk1BTiBNQVJJSkEKK0ZVUk1BTiBUSU1PRkVKCitGVVJNQU4gVElOS0EKK0ZVUk8gSU1SRQorRlVTS08gQU5HRUxBCitGVVNLTyBJxaBUVkFOCitGVVNLTyBNQVJJSkEKK0ZVU0tPIE1JSEFMSgorRlVUTyBBTlRBTAorRlVUTyBKT8W9RUYKK0ZVVE8gSk/FvUVGCitGVVRPIE1JUktPCitGVVRPxaBLSSBNSUxBTgorRlVUT8WgS0kgTUlUQQorR0HEjEFOT1ZJxIYgRFJBR0FOCitHQcSMRVZJxIYgTUlST1NMQVYKK0dBxIxFVknEhiBSQURFTktPCitHQcSMRVZJxIYgVEVSRVpBCitHQcSMScSGIEJSQU5LTworR0HEjEnEhiBEQU5JQ0EKK0dBxIxJxIYgREFOSUxPCitHQcSMScSGIE1JTEFOCitHQcSMScSGIFNURVZBTgorR0HEjEnEhiBTVEVWQU4KK0dBxIxJxIYgVkxBREFOCitHQcWgRVZJxIYgTUlMT1JBRAorR0HFoEVWScSGIE1JTE9WQU4KK0dBxaBFVknEhiBNT03EjElMTworR0HFoEVWScSGIFJBRE1JTEEKK0dBxaBFVknEhiBTQVZLQQorR0HFoEVWScSGIFpEUkFWS08KK0dBxaBJIMSQRU1BSUxKCitHQcWgSSBIQU1ESQorR0HFoEkgSlVMSUpBTkEKK0dBxaBJIExKVUFOCitHQcWgSSBaT1JBTgorR0HFoEnEhiBCT0dEQU4KK0dBxaBJxIYgRFXFoEFOCitHQcWgScSGIEtPVklMSktBCitHQcWgScSGIEtPVklMSktBCitHQcWgScSGIEtSU1RBCitHQcWgScSGIE1JUk9MSlVCCitHQcWgScSGIE5JS09MQQorR0HFoEnEhiBTSUxWQU5BCitHQcWgScSGIFRPRE9SIERJUEwgSU5HCitHQcWgScSGIFZBTEVSSUpBCitHQcWgScSGIFpEUkFWS08KK0dBxaBJxIYgWk9SQQorR0HFoFBBUiBCT0dEQU4KK0dBxaBQQVIgSkFOT8WgCitHQcWgUEFSIExBSk/FoAorR0HFoFBBUiBMSURJSkEKK0dBxaBQQVIgTUlMRU5LTworR0HFoFBBUkVWScSGIEVSSUtBCitHQcWgUEFSRVZJxIYgTEpJTEpBTkEKK0dBxaBQQVJJxIYgTkFEQQorR0HFoFBBUklOIExKSUxKQU5BCitHQcWgUEFST1ZJxIYgSk9TSVAKK0dBxIZBIEJSQU5JU0xBVgorR0HEhkEgTUlPRFJBRworR0HEhkEgVkxBRElNSVIKK0dBxIZBxaAgRFJBR0lDQQorR0HEhkHFoCBTSU5JxaBBCitHQcSGQcWgIFNURVZBTgorR0HEhkXFoEEgxJBVUk8KK0dBxIZFxaBBIEJSQU5LQQorR0HEhkXFoEEgRFJBR0FOCitHQcSGRcWgQSBEUkFHQU4KK0dBxIZFxaBBIElMSUpBCitHQcSGRcWgQSBNQU5PSkxPCitHQcSGRcWgQSBNSUxPxaAKK0dBxIZFxaBBIE1JTE9SQUQKK0dBxIZFxaBBIE1JTE9WQU4gRFIKK0dBxIZFxaBBIE5JS09MQQorR0HEhkXFoEEgU0xBVktPCitHQcSGRcWgQSBWRUxKS08KK0dBxIZFxaBBIFZMQURJTUlSCitHQcSGSU5BIMW9QVJLTworR0HEhklOQSBMSklMSkFOQQorR0HEhklOT1ZJxIYgQk/FvU8KK0dBxIZJTk9WScSGIEJSQU5LTworR0HEhklOT1ZJxIYgTUlMSVZPSkUKK0dBxIZJTk9WScSGIE1JTE9SQUQKK0dBxIZJTk9WScSGIFJBSktPCitHQcW9SSBKRUxJU0FWRVRBCitHQcW9SUsgVEVSRVpJSkEKK0dBxb1PIEtBVElDQQorR0HFvU8tTUFUT8WgS09WScSGIE9MR0lDQQorR0HFvU8gTUlIQUpMTworR0HFvU8gTUlLTE/FoAorR0HEkEFOU0tJIFpPUkFOCitHQUJMRVIgVklLVE9SSUpBCitHQUJPUiBBUlBBRAorR0FCT1IgQkVMQQorR0FCT1IgRVLFvUVCRVQKK0dBQk9SIElSRU5BCitHQUJPUiBKT8W9RUYKK0dBQk9SIEtBUk9MSgorR0FCT1IgTkFORE9SCitHQUJPUk9WIEJSQU5JU0xBVgorR0FCT1JPViBCUkFOSVNMQVYKK0dBQk9ST1YgR0FWUklMTworR0FCT1JPViBNSUxBTgorR0FCT1JPViBNSVRBCitHQUJPUk9WIFBBVkxFCitHQUJPUk9WIFBFVEFSCitHQUJSRSBST0tPCitHQUJSScSGIEVWSUNBCitHQUJSScSGIEtTRU5JSkEKK0dBQlJJxIYgTUlIQUpMTworR0FCUknEhiBORVNUT1IKK0dBQlJJxIYgUEVUQVIKK0dBQlJJxIYgU0xBVktPCitHQUJSSUVMIE1JS0xPxaAKK0dBQlJJSkVMxIxJxIYgWkRSQVZLTworR0FCUk9WScSGIEFORFJBxaAKK0dBQlJPVknEhiBBTkRSSUpBCitHQUNJTiBNSVJPU0xBVgorR0FExb1BIEtSScW9QU4KK0dBRMW9QSBSVcW9QQorR0FExb1JxIYgTUlMQU4KK0dBRMW9ScSGIFZJTktPCitHQUTFvVVSIElWQU4KK0dBRMW9VVJJxIYgWkxBVEtPCitHQURBTkVDIEtBVEFSSU5BCitHQUROSkFJIEpPVkEKK0dBRE5KQU5TS0kgVkxBRElNSVIKK0dBR0nEhiBBTEVLU0FOREFSCitHQUdJxIYgQVZSQU0KK0dBR0nEhiBCT8WgS08KK0dBR0nEhiBCT1JJVk9KRQorR0FHScSGIERSQUdJQ0EKK0dBR0nEhiBEVcWgQU4KK0dBR0nEhi1HUlVCRcWgQSBNSUxFVkEKK0dBR0nEhiBKT1ZBTktBCitHQUdJxIYgSk9WQU4KK0dBR0nEhiBOSUtPTEEKK0dBR0nEhiBOSUtPTEEKK0dBR0nEhiBSQURPU0xBVgorR0FHScSGIFJBRE9WQU4KK0dBR0nEhiBTTE9CT0RBTgorR0FHScSGIFZJRE9TQVZBCitHQUdPVknEhiBNSUxPUkFECitHQUdPVknEhiBOT1ZBSworR0FHT1ZJxIYgT0xHQQorR0FHT1ZJxIYgUkFET1NBVgorR0FHUsSMSU4gTEFaQVIKK0dBR1LEjElOIE1MQURFTgorR0FHUklDQSBKT1ZBTgorR0FHVUxBIE1VSk8KK0dBScSGIFZFTEpLTworR0FJQ0tJIE5JS09MQQorR0FJQ0tJIFNBTkpBCitHQUlDS0kgVEFOQVNJSkUKK0dBSUNLSSBWRVJJQ0EKK0dBSU5PViBSQURPVkFOCitHQUrFoElOIFNMQVZJQ0EKK0dBSsWgSU4gU01JTEpBCitHQUrFoElOIFNUQU5JU0xBVgorR0FKQU5JxIYgU1RKRVBBTgorR0FKREEgxaBBTkRPUgorR0FKRE/FoCDEkFVMQQorR0FKRE/FoCBJxaBUVkFOCitHQUpET8WgIElCT0xKQQorR0FKRE/FoCBMQVNMTworR0FKRE/FoCBMSlVCT01JUgorR0FKRE/FoCBNSUhBSkxPCitHQUpET8WgIE5JS09MQQorR0FKRE/FoCBQRVRBUgorR0FKRE/FoEVWScSGIMSQT1LEkEUKK0dBSkRPQlJBTlNLSSDEkE9SxJBFIERSCitHQUpET0JSQU5TS0kgREFOSUNBCitHQUpET0JSQU5TS0kgRFJBR0lDQQorR0FKRE9CUkFOU0tJIExKVUJJQ0EKK0dBSkRPQlJBTlNLSSBNQVJJSkEKK0dBSkRPQlJBTlNLSSBNSUxJVk9KCitHQUpET0JSQU5TS0kgUEVUQVIKK0dBSkRPQlJBTlNLSSBUT0RPUgorR0FKRVIgxJBVUkEKK0dBSkVSIEpPQ0EKK0dBSkVSIExFT05BCitHQUpFUiBNQU5PSkxPCitHQUpFUiBOQURBCitHQUpHRVIgSk/FvUVGCitHQUpJxaBJTiBEQVJBCitHQUpJxaBJTiBMQVpBUgorR0FKScWgSU4gTUlMSUNBCitHQUpJxaBJTiBQRVRBUgorR0FKScWgSU4gU1RFVkFOCitHQUpJxaBJTiBTVEVWQU4KK0dBSknFoElOIFRPTUlTTEFWCitHQUpJxIYgxb1BUktPCitHQUpJxIYgxb1BUktPCitHQUpJxIYgxb1JVktBCitHQUpJxIYgxb1JVktPCitHQUpJxIYgxb1JVk9UQQorR0FKScSGIMSQT1LEkEUKK0dBSknEhiDEkFVSTworR0FKScSGIEFMRUtTQU5EQVIKK0dBSknEhiBBTkEKK0dBSknEhiBCT8W9SUNBCitHQUpJxIYgQk/FvUlEQVIKK0dBSknEhiBCT0dEQU4KK0dBSknEhiBCT0dPTEpVQgorR0FKScSGIEJPUklTTEFWCitHQUpJxIYgQlJBTktPCitHQUpJxIYgQlJBTktPCitHQUpJxIYgQ1ZJSkFOCitHQUpJxIYgQ1ZJSkFOCitHQUpJxIYgREFOSUNBCitHQUpJxIYgREVKQU4KK0dBSknEhiBERUpBTgorR0FKScSGIERFSkFOCitHQUpJxIYgRElNSVRSSUpFCitHQUpJxIYgRFJBR0FOCitHQUpJxIYgRFJBR0FOCitHQUpJxIYgRFJBR0lDQQorR0FKScSGIERSQUdPTEpVQgorR0FKScSGIERSQUdPCitHQUpJxIYgRFXFoEFOIERJUEwgSU5HCitHQUpJxIYgRFXFoEtPIERJUEwgUFJBVk5JSworR0FKScSGIEdPSktPCitHQUpJxIYgR09SQU4KK0dBSknEhiBHT1JEQU5BCitHQUpJxIYgSUJPTEpBCitHQUpJxIYgSkVMRU5BCitHQUpJxIYgS0FUQVJJTkEKK0dBSknEhiBLUklTVElOQQorR0FKScSGIEtSVU5BCitHQUpJxIYgTEFaQVIKK0dBSknEhiBMQVpPCitHQUpJxIYgTUFLU0EKK0dBSknEhiBNQVJJSkEgRFIKK0dBSknEhiBNQVJJSkEKK0dBSknEhiBNQVJJTktPIERSCitHQUpJxIYgTUnEhk8KK0dBSknEhiBNSUtBCitHQUpJxIYgTUlMQU5BCitHQUpJxIYgTUlMQU4KK0dBSknEhiBNSUxBTgorR0FKScSGIE1JTEFOCitHQUpJxIYgTUlMQU4KK0dBSknEhiBNSUxBTgorR0FKScSGIE1JTElOS08KK0dBSknEhiBNSUxJVk9KCitHQUpJxIYgTUlMT8WgCitHQUpJxIYgTUlMT0pLQQorR0FKScSGIE1JTE9TQVYKK0dBSknEhiBNSUxPVkFOCitHQUpJxIYgTUlPRFJBRworR0FKScSGIE1JT0RSQUcKK0dBSknEhiBNSVJKQU5BCitHQUpJxIYgTUlSS08gRFIKK0dBSknEhiBNSVJLTworR0FKScSGIE1JUk9TTEFWCitHQUpJxIYgTUlUUkEKK0dBSknEhiBNTEFERU5LTworR0FKScSGIE1MQURFTgorR0FKScSGIE1PTcSMSUxPCitHQUpJxIYgTkVERUxKS08KK0dBSknEhiBOSUtPTEEgRElQTCBJTkcKK0dBSknEhiBOSUtPTEEKK0dBSknEhiBOSUtPTEEKK0dBSknEhiBOT1ZBSworR0FKScSGIE9MSVZFUkEKK0dBSknEhiBQRUxLQQorR0FKScSGIFBFUlNBCitHQUpJxIYgUkFERU5LTworR0FKScSGIFJBRE1JTEEKK0dBSknEhiBSQURPTUlSCitHQUpJxIYgUkFKS0EKK0dBSknEhiBSQVRLTworR0FKScSGIFJBVEtPCitHQUpJxIYgUk9aQUxJSkEKK0dBSknEhiBSVcW9SUNBCitHQUpJxIYgU0FWQQorR0FKScSGIFNMQUtBCitHQUpJxIYgU0xBVklDQQorR0FKScSGIFNMQVZLTworR0FKScSGIFNMQVZLTworR0FKScSGIFNSRcSGS08KK0dBSknEhiBTUkVUTworR0FKScSGIFNUQU5JTUlSCitHQUpJxIYgU1RBTk9KTE8KK0dBSknEhiBTVE9KQU4KK0dBSknEhiBTVFJBSElOSkEKK0dBSknEhiBTVkVUT1pBUgorR0FKScSGIFRBTkFTS08KK0dBSknEhiBWRUxJTUlSCitHQUpJxIYgVkVTTkEKK0dBSknEhiBWSURBCitHQUpJxIYgVklET1NBVkEKK0dBSknEhiBWTEFESVNMQVYKK0dBSknEhiBaT1JBTgorR0FKSUNBIEJSQU5LTworR0FKSUNLSSBCUkFOS08KK0dBSklDS0kgRFXFoEFOCitHQUpJQ0tJIEpFTEVOQQorR0FKSUNLSSBMQVpBUgorR0FKSUNLSSBNQVJJSkEKK0dBSklDS0kgTUlMQQorR0FKSUNLSSBNSUxJQ0EKK0dBSklDS0kgU0FWQQorR0FKSU4gxb1JVktPCitHQUpJTiDEkE9SxJBFCitHQUpJTiBBTEVLU0FOREFSCitHQUpJTiBBTktBCitHQUpJTiBCUkFOS08KK0dBSklOIERSQUdJQ0EKK0dBSklOIEpPVkFOCitHQUpJTiBMQVpBUgorR0FKSU4gTUlIQUpMTworR0FKSU4gTUlMQU4KK0dBSklOIE1JTEVOS08KK0dBSklOIE1JTE9WQU4KK0dBSklOIE1JUkpBTkEKK0dBSklOIE5BREEKK0dBSklOIE5FVkVOS0EKK0dBSklOIFBFVEFSCitHQUpJTiBTTEFWS0EgRFIKK0dBSklOIFNWRVRMQU5BCitHQUpJTiBWTEFESU1JUgorR0FKSU5BIERSQUdPTUlSCitHQUpJTk9WIMW9SVZBTgorR0FKSU5PViDFvUlWS08KK0dBSklOT1Ygxb1JVktPCitHQUpJTk9WIMSQT0tJQ0EKK0dBSklOT1YgQUxFS1NBTkRBUgorR0FKSU5PViBBTsSQRUxLQQorR0FKSU5PViBCUkFOS08KK0dBSklOT1YgRElNSVRSSUpFCitHQUpJTk9WIERSQUdPTUlSCitHQUpJTk9WIElWQU5LQQorR0FKSU5PViBKRUxFTkEKK0dBSklOT1YgSk9WQU4KK0dBSklOT1YgSlVMS0EKK0dBSklOT1YgS09TVEEKK0dBSklOT1YgS09TVEEKK0dBSklOT1YgTEFaQVIKK0dBSklOT1YgTEFaQVIKK0dBSklOT1YgTEFaQVIKK0dBSklOT1YgTEpJTEpBTkEKK0dBSklOT1YgTEpVQklDQQorR0FKSU5PViBMSlVCSUNBCitHQUpJTk9WIE1BUklKQQorR0FKSU5PViBNQVJLTworR0FKSU5PViBNQVJLTworR0FKSU5PViBNSUxBTgorR0FKSU5PViBNSUxPUkFECitHQUpJTk9WIE1JTE9SQUQKK0dBSklOT1YgTUlMT1JBRAorR0FKSU5PViBOSUtPTEEKK0dBSklOT1YgUEVSQQorR0FKSU5PViBQRVJTSURBCitHQUpJTk9WIFJBREEKK0dBSklOT1YgUkFESVZPSgorR0FKSU5PViBSQURJVk9KCitHQUpJTk9WIFNBVkEKK0dBSklOT1YgU1RFVkFOCitHQUpJTk9WIFNURVZBTgorR0FKSU5PViBUT0RPUgorR0FKSU5PViBWRUxJTUlSCitHQUpJTk9WScSGIMSQT1LEkEUKK0dBSklOT1ZJxIYgxJBPUsSQRQorR0FKSU5PVknEhiBEQU5JQ0EKK0dBSklOT1ZJxIYgRFJBR0FOQQorR0FKSU5PVknEhiBEVcWgQU4KK0dBSklOT1ZJxIYgSUtPTklKQQorR0FKSU5PVknEhiBKT1ZBTgorR0FKSU5PVknEhiBKT1ZBTgorR0FKSU5PVknEhiBLQVRJQ0EKK0dBSklOT1ZJxIYgTEpVQklDQQorR0FKSU5PVknEhiBNSUxBTgorR0FKTyBJxaBUVkFOCitHQUpPREkgSk/FvUVGCitHQUpPREkgTUFSSUpBCitHQUpPVknEhiBKVUxJSkFOQQorR0FKT1ZJxIYgTU9NxIxJTE8KK0dBSk9WScSGIFJBRE9KRQorR0FKVEEgQU5JQ0EKK0dBSlRBIEFVUkVMSUpBCitHQUsgQUxFS1NBTkRSQQorR0FLIE1JTEFOCitHQUsgTkVWRU5LQQorR0FLIFJBREUKK0dBSyBTTEFWS08KK0dBSyBTTkXFvUFOQQorR0FLIFpPUktBCitHQUtJxIYgQk/FoEtPCitHQUtPVknEhiBBTlRPTklKQQorR0FLT1ZJxIYgSkVMRU5BCitHQUtPVknEhiBNQVJJSkEKK0dBS09WScSGIE1JUktPCitHQUtPVknEhiBNSVJLTworR0FLT1ZJxIYgUkFOS08KK0dBS09WScSGIFpPUkEKK0dBTCDFoEFORE9SCitHQUwgxJBVTEEKK0dBTCDEkFVMQQorR0FMIEFOS0EKK0dBTCBGRVJFTkMKK0dBTCBGRVJFTkMKK0dBTCBGRVJFTkMKK0dBTCBHQUJPUgorR0FMIEdJWkVMQQorR0FMIEpBTk/FoAorR0FMIEpPxb1FRgorR0FMIEpPxb1FRgorR0FMIEpPVkFOCitHQUwgS0FMTUFOCitHQUwgTEFKT8WgCitHQUwgTEFKT8WgCitHQUwgTUFSR0lUCitHQUwgTUFSSUEKK0dBTCBNScWgQQorR0FMIE1JS0xPxaAKK0dBTCBQQVZMRQorR0FMIFBFVEFSCitHQUwgUEVUQVIKK0dBTCBTVEVWQU4KK0dBTEFDIEpPU0lQCitHQUxBQyBQQVZMRQorR0FMQU1CIEFUSUxBCitHQUxBTUJPxaAgQU5BCitHQUxBTUJPxaAgQU5UT04KK0dBTEFNQk/FoCBFUsW9RUJFVAorR0FMQU1CT8WgIElNUkUKK0dBTEFNQk/FoCBKT1NJUAorR0FMQU1CT8WgIExBU0xPCitHQUxBTUJPxaAgTEFTTE8KK0dBTEJBxIwgSk/FvUVGCitHQUxFxIxJxIYgQlJBTklTTEFWCitHQUxFxIxJxIYgRFJBR0FOCitHQUxFxIxJxIYgTUlST1NMQVYKK0dBTEXEjEnEhiBaT1JBTgorR0FMRcSMScSGIFpPUkFOCitHQUxFxaBFViDFvUlWT0pJTgorR0FMRcWgRVYgRFVCUkFWS0EKK0dBTEXFoEVWIFNMT0JPREFOCitHQUxFVEnEhiBBTEVLU0FOREFSCitHQUxFVEnEhiBNQVJJSkEKK0dBTEVUScSGIE1JTEFOCitHQUxFVEnEhiBWQVNBCitHQUxFVEnEhiBWTEFESU1JUgorR0FMRVRJxIYgWk9SQQorR0FMRVRJTiBNSUxJQ0EKK0dBTEVUSU4gTklLT0xBCitHQUxFVElOIFBBSklDQQorR0FMRVRJTiBTSU1BCitHQUxFVElOIFNMQVZLTworR0FMRVRJTi1TTUlUIFJBRE9KS0EKK0dBTEVUSU4gU1RFVkFOCitHQUxFVElOIFpMQVRLTworR0FMRkkgSk9TSVAKK0dBTEZJIE1JTEVOQQorR0FMR08gScWgVFZBTgorR0FMScSMScSGIEJSQU5LTworR0FMScSMScSGIE1JTElDQQorR0FMScSGIERVxaBBTktBCitHQUxJxIYgSVZBTktBCitHQUxJxIYgSk9WQU4KK0dBTEnEhiBKT1ZBTgorR0FMScSGIEpPVkFOCitHQUxJxIYgS0FUSUNBCitHQUxJxIYgS0FUSUNBCitHQUxJxIYgTEFESVNMQVYKK0dBTEnEhiBMSlVCSUNBCitHQUxJxIYgTUFSSUpBTgorR0FMScSGIE1JTEFESU4KK0dBTEnEhiBNSUxFTktPCitHQUxJxIYgTUlMS0EKK0dBTEnEhiBNSUxPxaAKK0dBTEnEhiBNSUxPVkFOCitHQUxJxIYgTUlSS08KK0dBTEnEhiBNSVRBUgorR0FMScSGIE1PTcSMSUxPCitHQUxJxIYgTkVERUxKS08KK0dBTEnEhiBOSUtPTEEKK0dBTEnEhiBPTEdBCitHQUxJxIYgUEVUQVIKK0dBTEnEhiBST8W9SUtBCitHQUxJxIYgU0FOSkEKK0dBTEnEhiBTTEFWS0EKK0dBTEnEhiBTVEVWTworR0FMScSGIFRFUkVaQQorR0FMScSGIFZPSklTTEFWCitHQUxJxIYgWkRSQVZLTworR0FMSUNLSSDEkFVSQQorR0FMSUsgRVRFTEtBCitHQUxJUE9WScSGIEpPVklDQQorR0FMS08gSlVMSUEKK0dBTE8gxJBVUkEKK0dBTE9OSkEgREVTQU5LQQorR0FMT05KQSBEUkFHT0xKVUIKK0dBTE9OSkEgTUlPRFJBRworR0FMT05KQSBNSVJLTworR0FMT05KQSBSQURFCitHQUxPVknEhiDEkE9SxJBFCitHQUxPVknEhiDEkFVSQQorR0FMT1ZJxIYgQUxFS1NBTkRSQQorR0FMT1ZJxIYgQU7EkEVMS0EKK0dBTE9WScSGIEJSQU5LTworR0FMT1ZJxIYgRFJBR0lDQSBEUgorR0FMT1ZJxIYgSVZJQ0EKK0dBTE9WScSGIEpFTElDQQorR0FMT1ZJxIYgTEpVQklDQQorR0FMT1ZJxIYgTUlMQU4KK0dBTE9WScSGIE1JTEFOCitHQUxPVknEhiBNSUxFTktPCitHQUxPVknEhiBSQURPTUlSCitHQUxPVknEhiBTVEVWTworR0FMT1ZJxIYgWk9SS0EKK0dBTFVTIExBU0xPCitHQU1CRVIgU0xPQk9EQU4KK0dBTkTFvUkgU0FWS0EKK0dBTkdMSSBBTkEKK0dBTknEhiBBTE9KWklKRQorR0FOScSGIEFMT0paSUpFCitHQU5JxIYgTUnFoE8KK0dBTknEhiBTVEFOSVNMQVZBCitHQU5JxIYgWkRFTktPCitHQU5JxIYgWk9SSUNBCitHQU5KSSBTQU1VRUwKK0dBTlRBUiBBTEVLU0FORFJBCitHQU5UQVIgRklMSVAKK0dBTlRBUiBNSVJPU0xBViBEUgorR0FSxIxFViBEQU5JQ0EKK0dBUsSMRVYgTUlMVVRJTgorR0FSxIxFVknEhiBQRVJPCitHQVLEjEVWScSGIFBFUk8KK0dBUkHFoEVWScSGIE1JTEtBCitHQVJBQkEgQU5EUklKQQorR0FSQUJBTkRJxIYgxJBPUsSQRQorR0FSQUJBTkRJxIYgTUFSSUpBCitHQVJBQkFOREnEhiBNSUxFTktPCitHQVJBQkFOREnEhiBOSUtPTEEKK0dBUkFCQU5USU4gSVZBTgorR0FSQUJBTlRJTiBNSUxPVkFOCitHQVJBQkFOVElOIFNURVZBTgorR0FSQUkgQkVMQQorR0FSQUkgS09STkVMSUpBCitHQVJBSiBCUkFOSU1JUgorR0FSQUogSkVMRU5BCitHQVJBSiBPTEdBCitHQVJBTEVKScSGIFZFUklDQQorR0FSQVBJxIYgQlJBTktPIERJUEwgSU5HCitHQVJEQcWgRVZJxIYgTUlMT8WgCitHQVJEQcWgRVZJxIYtU1RSScSMRVZJxIYgSk9WQU5LQQorR0FSREHFoEVWScSGIFZFU0VMSU4KK0dBUkRJxIYgQUxJSkEKK0dBUkRJTk9WQcSMS0kgxJBPUsSQRQorR0FSRElOT1ZBxIxLSSBCT1JJU0xBVgorR0FSRElOT1ZBxIxLSSBCUkFOSU1JUgorR0FSRElOT1ZBxIxLSSBDVkVUQQorR0FSRElOT1ZBxIxLSSBNSU9SS0EKK0dBUkRJTk9WQcSMS0kgTkVERUxKS08KK0dBUkRJTk9WQcSMS0kgU1RFVkFOCitHQVJESU5PVkHEjEtJIFNWRVRPWkFSCitHQVJFTE9WScSGIE1JUk9TTEFWCitHQVJFVlNLSSBESU1JVFJJSkEKK0dBUknEhiDFvUFSS08KK0dBUknEhiBMQVpBUgorR0FSScSGIExVS0EKK0dBUknEhiBNSVJPU0xBVgorR0FSScSGIE5BREEKK0dBUknEhiBTVEVWQU4KK0dBUk9WScSGIE1JTFVUSU4KK0dBUk9WScSGIE1JTFVUSU4KK0dBUk9WTklLT1YgxJBPUsSQRQorR0FST1ZOSUtPViBCT1JLQQorR0FSVE5FUiBQRVRBUgorR0FSVU5PVknEhiBEQU5JQ0EKK0dBUlVOT1ZJxIYgVkFTQQorR0FUQUxPIEdPUkFOCitHQVRBTE8gUkFUS08KK0dBVEFSScSGIMW9RUxKS08KK0dBVEFSScSGIMW9RUxKS08KK0dBVEFSScSGIEJPxaBLTworR0FUQVJJxIYgRFJBxb1FCitHQVRBUknEhiBNQU5PSkxPCitHQVRBUknEhiBTQVZLQQorR0FUQVJJxIYgU1RBTkEKK0dBVEFSScSGIFNWRVRPWkFSCitHQVRBUknEhiBaTEFUSUJPUgorR0FURVIgSk9TSVAKK0dBVURFTkpJIEdBQlJJSkVMQQorR0FVREVOSkkgTUFUSUxECitHQVVERU5KSSBUSVZBREFSCitHQVZBIEFMRUtTRUoKK0dBVkFOU0tJIEJSQU5JU0xBViBBRFZPS0FUCitHQVZBTlNLSSBCUkFOSVNMQVZBCitHQVZBTlNLSSBCUkFOSVNMQVZBCitHQVZBTlNLSSBEQVJBCitHQVZBTlNLSSBEUkFHQU4KK0dBVkFOU0tJIERVxaBBTgorR0FWQU5TS0kgR0FWUklMTworR0FWQU5TS0kgSVZBTgorR0FWQU5TS0kgSkVMRU5BCitHQVZBTlNLSSBKVURJVEEKK0dBVkFOU0tJIEtPTlNUQU5USU4gRFIKK0dBVkFOU0tJIEtPU1RBIERQTCBJTkcKK0dBVkFOU0tJIEtPU1RBCitHQVZBTlNLSSBMQVpBUgorR0FWQU5TS0kgTFVLQQorR0FWQU5TS0kgTUFSR0lUQQorR0FWQU5TS0kgTUlMSUNBCitHQVZBTlNLSSBNSUxJQ0EKK0dBVkFOU0tJIE5BREEKK0dBVkFOU0tJIE5PVkFLCitHQVZBTlNLSSBQQVZMRQorR0FWQU5TS0kgUEVUUkEKK0dBVkFOU0tJIFNURVZBTgorR0FWQU5TS0kgU1RFVkFOCitHQVZBTlNLSSBTVEVWQU4KK0dBVkFOU0tJIFNURVZBTgorR0FWQU5TS0kgU1ZFVE9aQVIKK0dBVkFOU0tJIFpPUkFOCitHQVZBTlNLSSBaT1JBTgorR0FWQVJJxIYgQUxFS1NBTkRBUgorR0FWQVJJxIYgR0FWUklMTworR0FWQVJJxIYgSkVSRU1JSkUKK0dBVkFSScSGIExKVUJJQ0EKK0dBVkFSScSGIE1JTEVOS08KK0dBVkxJSyBHRVJHRUxKCitHQVZPREkgRVNURVIKK0dBVlJBTiBHT0pLTworR0FWUkFOIExKVUJPTUlSCitHQVZSQU7EjEnEhiDEkFVSxJBJQ0EKK0dBVlJBTsSMScSGIEpPVkFOCitHQVZSQU7EjEnEhiBLQVRJQ0EKK0dBVlJBTsSMScSGIE1BUkdJVEEKK0dBVlJBTsSMScSGIE1BUklKQQorR0FWUkFOxIxJxIYgTklLT0xBCitHQVZSQU7EjEnEhiBWTEFESU1JUgorR0FWUkFOScSGIEdPSktPCitHQVZSQU5JxIYgSUxJSkEKK0dBVlJBTknEhiBaVkVaREFOQQorR0FWUkFOT1YgQk9TQQorR0FWUkFOT1YgU0xPQk9EQU4KK0dBVlJBTk9WScSGIFRPTUlTTEFWCitHQVZSQU5PVknEhiBaRFJBVktPCitHQVZSScSGIMSMRURPTUlSCitHQVZSScSGIMW9SVZLQQorR0FWUknEhiDEkE9SxJBFCitHQVZSScSGIEJSQU5JU0xBVgorR0FWUknEhiBESU1JVFJJSkUKK0dBVlJJxIYtR0FaREnEhiBOSUtPTEEKK0dBVlJJxIYgSVZBTgorR0FWUknEhiBJVkFOCitHQVZSScSGIEpPVkFOCitHQVZSScSGIEpPVk8KK0dBVlJJxIYgTUFSSUpBCitHQVZSScSGIE1JSEFKTE8KK0dBVlJJxIYgTUlMQU4KK0dBVlJJxIYgTUlMQU4KK0dBVlJJxIYgTUlMRU5BCitHQVZSScSGIE1JTEVOS08KK0dBVlJJxIYgTUlMRU5LTworR0FWUknEhiBNSUxPxaAKK0dBVlJJxIYgTUlSS08KK0dBVlJJxIYgTUlST1NMQVYKK0dBVlJJxIYgUEVUQVIKK0dBVlJJxIYgUkFET01JUgorR0FWUknEhiBSQURPU0xBVgorR0FWUknEhiBTRU5LQQorR0FWUknEhiBTTEFWS0EKK0dBVlJJxIYgU1BBU09KRQorR0FWUknEhiBTVkVUT1pBUgorR0FWUknEhiBWRUxJTktBCitHQVZSScSGIFZMQURJTUlSCitHQVZSScSGIFpPUkFOCitHQVZSScSGIFpPUkEKK0dBVlJJTE9WIMW9SVZLQQorR0FWUklMT1YgQU5LSUNBCitHQVZSSUxPViBCT0dEQU4KK0dBVlJJTE9WIEdPUkRBTkEKK0dBVlJJTE9WIEhFUk1JTkEKK0dBVlJJTE9WIEpVTEtBCitHQVZSSUxPViBMSlVCSUNBCitHQVZSSUxPViBNQVJUQQorR0FWUklMT1YgTUlMSVZPSgorR0FWUklMT1YgTUlMSVZPSgorR0FWUklMT1YgTUlMT1JBRAorR0FWUklMT1YgUkFESVZPSgorR0FWUklMT1YgU0xBVktPCitHQVZSSUxPViBTTUlMSkEKK0dBVlJJTE9WIFRPRE9SCitHQVZSSUxPViBVUk/FoAorR0FWUklMT1ZJxIYgxb1JS0lDQQorR0FWUklMT1ZJxIYgxb1JVktBCitHQVZSSUxPVknEhiDFvUlWT0pJTiBEUgorR0FWUklMT1ZJxIYgQUxFS1NBTkRBUgorR0FWUklMT1ZJxIYgQUxFS1NBTkRBUgorR0FWUklMT1ZJxIYgQUxFS1NBCitHQVZSSUxPVknEhiBCT0dEQU5LQQorR0FWUklMT1ZJxIYgQk9SSVZPSgorR0FWUklMT1ZJxIYgQlJBTktBCitHQVZSSUxPVknEhiBCUkFOS08KK0dBVlJJTE9WScSGIERPQlJJTEEKK0dBVlJJTE9WScSGIERPQlJJVk9KRQorR0FWUklMT1ZJxIYgRFXFoElDQQorR0FWUklMT1ZJxIYgRU1JTAorR0FWUklMT1ZJxIYgR1JPWkRBTgorR0FWUklMT1ZJxIYgSkVMSVNBVktBCitHQVZSSUxPVknEhiBKT1ZBTgorR0FWUklMT1ZJxIYgSk9WQU4KK0dBVlJJTE9WScSGIEtBVElDQQorR0FWUklMT1ZJxIYgS0xBVURJSkEKK0dBVlJJTE9WScSGIExBWkFSCitHQVZSSUxPVknEhiBMSlVCT01JUgorR0FWUklMT1ZJxIYgTUFSQQorR0FWUklMT1ZJxIYgTUFSSUpBCitHQVZSSUxPVknEhiBNQVJJSkEKK0dBVlJJTE9WScSGIE1JTEVOQQorR0FWUklMT1ZJxIYgTUlMRU5LTworR0FWUklMT1ZJxIYgTUlMRU5LTworR0FWUklMT1ZJxIYgTUlMSUNBCitHQVZSSUxPVknEhiBNSUxPxaAKK0dBVlJJTE9WScSGIE1JTE/FoAorR0FWUklMT1ZJxIYgTUlMT0pFCitHQVZSSUxPVknEhiBNSUxPU0FWQQorR0FWUklMT1ZJxIYgTUlMT1ZBTgorR0FWUklMT1ZJxIYgTUlSQQorR0FWUklMT1ZJxIYgTUlSSkFOQQorR0FWUklMT1ZJxIYgTUlSSkFOQQorR0FWUklMT1ZJxIYgTUlSS08KK0dBVlJJTE9WScSGIE1JUk9TTEFWCitHQVZSSUxPVknEhiBNSVJPU0xBVgorR0FWUklMT1ZJxIYgTUlUQVIKK0dBVlJJTE9WScSGIE1MQURFTgorR0FWUklMT1ZJxIYgTkVCT0rFoEEKK0dBVlJJTE9WScSGIE5JS09MQSBEUiBQUk9GCitHQVZSSUxPVknEhiBOSUtPTEEKK0dBVlJJTE9WScSGIFBBVkxFCitHQVZSSUxPVknEhiBSQURPU0xBVgorR0FWUklMT1ZJxIYgUkFKS0EKK0dBVlJJTE9WScSGIFNBVkEgRFIKK0dBVlJJTE9WScSGIFNBVk8KK0dBVlJJTE9WScSGIFNMQVZJQ0EKK0dBVlJJTE9WScSGIFNMQVZLTyBEUgorR0FWUklMT1ZJxIYgU0xBVktPCitHQVZSSUxPVknEhiBTTEFWS08KK0dBVlJJTE9WScSGIFNMQVZPTEpVQgorR0FWUklMT1ZJxIYgU0xPQk9EQU4KK0dBVlJJTE9WScSGIFNPRklKQQorR0FWUklMT1ZJxIYgU1RBTkEKK0dBVlJJTE9WScSGIFNURVZBCitHQVZSSUxPVknEhiBTVE9KQU4KK0dBVlJJTE9WScSGIFRPxaBBCitHQVZSSUxPVknEhiBUT0RPUgorR0FWUklMT1ZJxIYgVkVSQSBEUgorR0FWUklMT1ZJxIYgVkVSSUNBCitHQVZSSUxPVknEhiBWTEFESU1JUgorR0FWUklMT1ZJxIYgVkxBRElNSVIKK0dBVlJJTE9WScSGIFZMQURJTUlSCitHQVZSSUxPVknEhiBWVUtJQ0EKK0dBVlJJTE9WScSGIFpMQVRBCitHQVZSSUxPVlNLSSBQQVZMSU5BCitHQVZST1ZJxIYgR09SQU4KK0dBVlJPVknEhiBHT1JEQU5BCitHQVZST1ZJxIYgTEpVQklWT0pFCitHQVZST1ZJxIYgU1ZFVExBTkEgTE9LQUwKK0dBWkFGSSBMQVNMTworR0FaREnEhiBCT1JJVk9KCitHQVpFUE9WIElMSUpBCitHQVpJxIYgSVZBTgorR0FaSUJBUknEhiBJWkVUQQorR0FaSUJBUknEhiBKRUxFTkEKK0dBWklCQVJJxIYgSk9WQU5LQQorR0FaSUJBUknEhiBTSU1BCitHQVpJSkEgSk9WQU4KK0dBWklWT0RBIEdPSktPCitHRcSMRVZTS0kgU1JFVEtPCitHRUJBVUVSIEVSVklOIERSCitHRUJFTFMgQU5BCitHRUNJIMSQVVJBCitHRURFTE9WU0tJIERVxaBBTgorR0VERUxPVlNLSSBTT0ZJSkEKK0dFR0XFoCBKVUxJSkFOQQorR0VHRcWgIE5BTkRPUgorR0VHRcWgIFNMQVZJQ0EKK0dFR0VOQkFVRVIgRFJBR1VUSU4KK0dFR0VOQkFVRVIgSUxPTktBCitHRUdFTkJBVUVSIFpPUkEKK0dFR0nEhiBBTEVLU0FOREFSCitHRUdJxIYgTkVNQU5KQQorR0VMRUkgSkVORQorR0VMRVIgxaBBTkRPUgorR0VMRVIgxJBVTEEKK0dFTEVSIEFEQU0KK0dFTEVSIEFMRUtTQU5EQVIKK0dFTEVSIEJFTEEKK0dFTEVSIEpFTElTQVZFVEEKK0dFTEVSIEpPVkFOCitHRUxFUiBMQVNMTworR0VMRVIgTEFTTE8KK0dFTEVSIE1BUklKQQorR0VMRVIgTUFSVEEKK0dFTEVSIE9MR0EKK0dFTEVSLVBFVEtPVknEhiBHSVpFTEEKK0dFTEVSIFRJQk9SCitHRUxKScSGIE1BVE8KK0dFTU9WScSGIEFMRUtTQU5EQVIKK0dFTkMgRkVSRU5DCitHRU5DIExBSk/FoAorR0VOQ0VMIEpVTElKQU5BCitHRU5DRUwgTUFSSUpBTkEKK0dFTkNFTCBWQUxFUklKQQorR0VOQ0kgSk9TSVAKK0dFTkVWQUpOIMSQVVJBCitHRU5FVkFKTiBKT1ZBTgorR0VORVZBSk4gS0FSTE8KK0dFTkVWQUpOIExBSk/FoAorR0VORVZBSk4gTEFKT8WgCitHRU5PVkEgTUFKREEgRElQTCBJTkcKK0dFTk9WQSBNSUxJQ0EgRElQTCBJTkcKK0dFT1JHSUVWIExFUE9TQVZBCitHRU9SR0lFVlNLSSBQRVJPCitHRU9SR0lFVlNLSSBWQVNJTAorR0VPUkdJSkVWScSGIMW9SVZLTworR0VPUkdJSkVWScSGIEFMRUtTQU5EQVIKK0dFT1JHSUpFVknEhiBJVkFOQQorR0VPUkdJSkVWScSGIEpPVkFOCitHRU9SR0lKRVZJxIYgSk9WQU4KK0dFT1JHSUpFVknEhiBMQVpBUgorR0VPUkdJSkVWScSGIExBWkEKK0dFT1JHSUpFVknEhiBMSlVCScWgQQorR0VPUkdJSkVWScSGIE1JTEFOCitHRU9SR0lKRVZJxIYgTUlMT1NBVgorR0VPUkdJSkVWScSGIE1JTE9WQU4KK0dFT1JHSUpFVknEhiBORVNUT1IKK0dFT1JHSUpFVknEhiBSQURPVkFOCitHRU9SR0lKRVZJxIYgVk9KSVNMQVYKK0dFUkEgSUJPTEpBCitHRVJBSyBFTUlMSUpBCitHRVJBU0lNT1ZTS0kgWkxBVEUKK0dFUkFUT1ZJxIYgWk9SQU4KK0dFUkRJSkFOIMSMRURPTUlSCitHRVJFIExBSk/FoAorR0VSRSBaT0xUQU4KK0dFUkVDSSBKVVJBSgorR0VSRUcgxb1Vxb1BTkEKK0dFUkVHIEFORFJBxaAKK0dFUkVHIEJMQU5LQQorR0VSRUcgRVVHRU4KK0dFUkVHIFRJQk9SCitHRVJHRcSMIFNNSUxKQQorR0VSR0VMSiDFoElNT04KK0dFUkkgVEVSRVpBCitHRVJJxIYgxb1BUktPCitHRVJJxIYgxJBPUsSQRQorR0VSScSGIEFMRUtTQU5EQVIKK0dFUknEhiBBTlRPTgorR0VSScSGIENWRVRBCitHRVJJxIYgR0lOQQorR0VSScSGIEdPUkRBTkEKK0dFUknEhiBJVkFOCitHRVJJxIYgSVZBTgorR0VSScSGIEtPU1RBCitHRVJJxIYgS09WSUNBCitHRVJJxIYgTEpVQk9NSVIKK0dFUknEhiBNQVJJSkEKK0dFUknEhiBNSUxBTgorR0VSScSGIE1JTE/FoAorR0VSScSGIE1JTE/FoAorR0VSScSGIE1JUktPCitHRVJJxIYgTkVERUxKS08KK0dFUknEhiBORVNUT1IKK0dFUknEhiBPQlJBRAorR0VSScSGIFBFVEFSCitHRVJJxIYgUkFESU5LQQorR0VSScSGIFNURVZBTgorR0VSSUggQU5EUklKQQorR0VSTCBGRVJETworR0VSTCBNQVJJSkEKK0dFUkxBIERSQUdBTkEKK0dFUkxBIExBRElTTEFWCitHRVJMQSBURU9ET1IKK0dFUk1BTk9WScSGIE1JTEFOCitHRVJNQU5PVknEhiBTVEFOT0pFCitHRVJOQcSMIMSQT1LEkEUKK0dFUk5BxIwgRlJBTkpBCitHRVJOQcSMIExBRElTTEFWCitHRVJPIMSQRVLEkAorR0VSTyBEVcWgQU5LQQorR0VSTyBKQU5PxaAKK0dFUk8gSk/FvUVGCitHRVJPIEtBUkxPCitHRVJPIExBSk/FoAorR0VSTyBNQVJHSVRBCitHRVJPTEQgSkFLT0IKK0dFUk9MRCBMQVNMTworR0VST1YgQU5HRUwgRElQTCBJTkcKK0dFUlRORVIgQU5BCitHRVJUTkVSIEZSQU5KQQorR0VSVE5FUiBKT8W9RUYKK0dFUlRORVIgUkXFvUUKK0dFVEVMIEhFTE1VVAorR0VaIEpBTk/FoAorR0VaIEpFTElDQQorR0VaIEtBVElDQQorR0VaIFRJQk9SCitHRVogVkVST05JS0EKK0dIQU5ET1VSLcWgQUwgSlVMSUpBTkEKK0dJQURST8WgScSGIE1BUklKQQorR0lCQU5JQ0EgR0VPUkdJTkEKK0dJR0EgU1JFVEVOCitHSUdJxIYgTUlPTUlSCitHSUdJxIYgTUlSSkFOQQorR0lHScSGIFpPUkFOCitHSUtJxIYgQk/FvUlEQVIKK0dJS0nEhiBESU1JVFJJSkUKK0dJS0nEhiBSQURJVk9KRQorR0lLT1ZTS0kgTUlOTworR0lMRVpBTiBLT1JJT0xBTgorR0lMRyBJUkVOQQorR0lMScSGIERSQUdBTgorR0lMScSGIERSQUdBTgorR0lNQk/FoCBET0JSSVZPSkUKK0dJTkNVTEogU0VSR0lKRSBESVBMIElORworR0lPTiBBTEVLU0FOREFSCitHSU9OIEFOQSBEUgorR0lPTiBJxaBUVkFOCitHSU9OIEtBTE1BTgorR0lPTiBOQU5ET1IKK0dJUknEhiBNQVRJSkEKK0dJUklDIEJFTEEKK0dJUklDIEVMRU5BCitHSVJJQyBJTVJFCitHSVJJQyBKT8W9RUYKK0dJUklDIExBU0xPCitHSVJJQy1NT0tVxaAgS0xBUkEKK0dJUklaRCBMQVNMTyBOT1ZJTkFSCitHSVJOVCBST1pBTElKQQorR0lTIEhFRFZJR0EKK0dKQUZPIE1BVElKQQorR0pFUiBWTEFESU1JUgorR0xBREnFoCBTVEVWQU4KK0dMQURJxIYgTUlMQU4KK0dMQURJxIYgUkFKS08KK0dMQURJxIYgU1ZFVE9aQVIKK0dMQURPVknEhiBEVcWgQU4KK0dMQURPVknEhiBUQVRKQU5BCitHTEFKSCBHRU9SRworR0xBTU/EjEFOSU4gTkVWRU5LQQorR0xBTU/EjEFOSU4gTkVWRU5LQQorR0xBTU/EjEFOSU4gUEVSTworR0xBTU/EjEFOSU4gVkxBRElNSVIKK0dMQU1PxIxJxIYgREFORQorR0xBTU/EjEnEhiBTTkXFvUFOQQorR0xBTU/EjExJSkEgUlXFvUlDQQorR0xBTkMgQU5UVU4KK0dMQVNPVkFDIE1BUlRBCitHTEFWxIxJxIYgTUlMT1JBRAorR0xBVkHFoCDFvUFSS08KK0dMQVZBxaAgSk9WTworR0xBVkHFoCBNSUxBTgorR0xBVkHFoC1UUkJJxIYgQk/FoEtPCitHTEFWQcWgRVZJxIYgQU7EkEVMS08KK0dMQVZBxaBFVknEhiBBTsSQRUxLTworR0xBVkHFoEtJIMW9SVZPSklOCitHTEFWQcWgS0kgQUxFS1NBTkRBUgorR0xBVkHFoEtJIEFMRUtTQU5EUkEKK0dMQVZBxaBLSSBBTsSQRUxLQQorR0xBVkHFoEtJIEJPR0RBTiBESVBMIElORworR0xBVkHFoEtJIEJSQU5JU0xBVgorR0xBVkHFoEtJIEJSQU5LTyBESVBMIFBSQVZOSUsKK0dMQVZBxaBLSSBEUkFHQU4KK0dMQVZBxaBLSSBEVcWgQU4KK0dMQVZBxaBLSSBHTEnFoEEKK0dMQVZBxaBLSSBNSUxVVElOCitHTEFWQcWgS0kgTkVNQU5KQQorR0xBVkHFoEtJIFNJTUEKK0dMQVZBxaBLSSBTSU5JxaBBCitHTEFWQcWgS0kgU01JTEpLQQorR0xBVkFOIEpPVkFOCitHTEFWQU5JxIYgQk9TSUxKS0EKK0dMQVZBTknEhiBKVUxLQQorR0xBVkFOScSGIE1JUktPCitHTEFWQVJEQU5PViBBTEVLU0FOREFSCitHTEFWQVJEQU5PViBJVkFOIERJUEwgSU5HCitHTEFWQVJEQU5PViBNQVJJSkEKK0dMQVZBUkRBTk9WIFNPS08KK0dMQVZBVE9WScSGIERSQUdBTgorR0xBVkFUT1ZJxIYgRFXFoEFOCitHTEFWScSMScSGIE1BUklKQU5BCitHTEFWScSGIEJPxaBLTworR0xBVknEhiBHQVZSTworR0xBVknEhiBKRUxLQQorR0xBVknEhiBSQURJU0xBVgorR0xBVklOScSGIEpPVk8KK0dMQVZJTknEhiBNSUxPUkFECitHTEFWT8SMRVZJxIYgSUxJSkEKK0dMRcSQQSBNSUxFTktPCitHTEVEScSGIE1JTElDQQorR0xJxaBJxIYgxJBPUsSQTworR0xJxaBJxIYgQk9SSVNMQVYKK0dMScWgScSGIEJSQU5LTworR0xJxaBJxIYgR1JBRElNSVIKK0dMScWgScSGIElMSUpBCitHTEnFoEnEhiBJVkFOCitHTEnFoEnEhiBKRUxJQ0EKK0dMScWgScSGIEpPVkFOCitHTEnFoEnEhi1LRVNFRyBWQUxFUklKQQorR0xJxaBJxIYgTEpVQknFoEEKK0dMScWgScSGIE1JTEVWQQorR0xJxaBJxIYgTkVOQUQKK0dMScWgScSGIFBSRURSQUcKK0dMScWgScSGIFJBRE9NSVIKK0dMScWgScSGIFNJTU8KK0dMScWgScSGIFNSRVRBCitHTEnFoEnEhiBWRVNOQQorR0xJxaBJxIYgWk9SQU4KK0dMScWgSU4gxJBPUsSQRQorR0xJxaBJTiBCUkFOS0EKK0dMScWgSU4gTkVOQUQKK0dMScWgT1ZJxIYgTUFSSUpBCitHTElCScSGIE1JTEFOCitHTElCT1RBIFZMQURPCitHTElHScSGIMW9RUxKS0EKK0dMSUdJxIYgTUlSQQorR0xJR0nEhiBORURFTEpLTworR0xJR0nEhiBUT01JU0xBVgorR0xJR09SRVZJxIYgRFXFoEtPCitHTElHT1JFVknEhiBUT01PCitHTElHT1JJxIYgxb1FTEpLTworR0xJR09SScSGIMW9SVZPSklOCitHTElHT1JJxIYgxb1JVk9SQUQKK0dMSUdPUknEhiBBTsSQRUxLQQorR0xJR09SScSGIENWRVRBTktBCitHTElHT1JJxIYgRFJBR0FOCitHTElHT1JJxIYgRFJBR0FOCitHTElHT1JJxIYgRFJBR0nFoEEKK0dMSUdPUknEhiBEUkFHSUNBCitHTElHT1JJxIYgRFJBR0lOSkEKK0dMSUdPUknEhiBEUkFHT01JUgorR0xJR09SScSGIEpFTEVOQQorR0xJR09SScSGIEtBVElDQQorR0xJR09SScSGIExKVUJPTUlSCitHTElHT1JJxIYgTUlMQU4KK0dMSUdPUknEhiBNSUxBTgorR0xJR09SScSGIE1JTE9SQUQKK0dMSUdPUknEhiBNTEFERU4KK0dMSUdPUknEhiBOSUtPTEEKK0dMSUdPUknEhiBSQURJxaBBCitHTElHT1JJxIYgU1RBTk9KRQorR0xJR09SScSGIFNURVZBTgorR0xJR09SScSGIFNURVZBTgorR0xJR09SSUpFVknEhiBBTEVLU0FOREFSCitHTElHT1JJSkVWScSGIERSQUdBTkEKK0dMSUdPUklKRVZJxIYgRFJBR0lDQQorR0xJR09SSUpFVknEhiBLUlNUQQorR0xJR09SSUpFVknEhiBNSUhBSkxPCitHTElHT1JJSkVWScSGIE1JT0RSQUcKK0dMSUdPUklKRVZJxIYgUEVUUkEKK0dMSUdPUklKRVZJxIYgUlXFvUlDQQorR0xJR09SSU4gxJBVUsSQSU5LQQorR0xJR09SSU4gQk9KQU5BCitHTElHT1JJTiBNSVJPU0xBVgorR0xJR09SSU4gU0xBVklDQQorR0xJR09SSU4gU1RFVkFOCitHTElHT1JJTiBUT01JU0xBVgorR0xJR09SSU4gWk9SQU4KK0dMSUdPUklOIFpPUktBCitHTElHT1JPViBERVNJTUlSCitHTElHT1JPViBKT1ZBTgorR0xJR09ST1YgTEVLQQorR0xJR09ST1YgTEpVQk9NSVIKK0dMSUdPUk9WScSGIFNMQVZLTworR0xJR09ST1ZTS0kgVFJBSktPCitHTElOVEnEhiBNSUxFCitHTElOVEnEhiBNSU9EUkFHCitHTElOVEnEhiBOSUtPTEEKK0dMSU5UScSGIFJBRE9TTEFWCitHTElOVEnEhiBTQVZLQQorR0xJTlRJxIYgVkVTRUxLQQorR0xPxb1BTlNLSSBNQVJJSkEKK0dMT8W9QU5TS0kgUEVUQVIKK0dMT8W9QU5TS0kgVk9KSVNMQVYKK0dMT0dPTkpBQyBWSVRPTUlSCitHTE9HT1bEjEFOIE1JTE/FoCBESVBMIElORworR0xPR09WQUMgSkVWUkVNCitHTE9HT1ZBQyBLT1JORUxJSkEKK0dMT0dPVkFDIE1JUktPCitHTE9HT1ZBQyBNT03EjElMTworR0xVxaBBQyBCT8W9SURBUgorR0xVxaBBQyBEVcWgQU4KK0dMVcWgQUMgTUlIQUpMTworR0xVxaBBQyBNSUxBTgorR0xVxaBBQyBNSUxPxaAKK0dMVcWgQUMgTUlMT1JBRAorR0xVxaBBQyBQRVRBUgorR0xVxaBJxIYgQlJBTktPCitHTFXFoElDQSBMSlVCT01JUgorR0xVxaBJQ0EgTUlMQU4KK0dMVcWgSUNBIE1JTEFOCitHTFXFoElDQSBNSUxFCitHTFXFoElDQSBORU5BRAorR0xVxaBJQ0EgUEVUQVIKK0dMVcWgSUNBIFNMQcSQQU5BCitHTFXFoElDQSBTTEFWS0EKK0dMVcWgSUNBIFpEUkFWS08KK0dMVUhBScSGIEFOxJBFTEtPCitHTFVIQUpJxIYgQk/FvU8KK0dMVUhBSyBLQVJMTworR0xVSE9WScSGIE1JTE/FoAorR0xVSE9WScSGIE1JTE9NSVIKK0dMVUhPVknEhiBWRUxKS08KK0dMVU1BQyBEQU5FCitHTFVNQUMgREFOSUxPCitHTFVNQUMgREFOSUxPCitHTFVNQUMgRFJBR0FOCitHTFVNQUMgRFXFoEFOCitHTFVNQUMgR0FWUkEKK0dMVU1BQyBKRUxFTkEKK0dMVU1BQyBMQVpPCitHTFVNQUMgTEpVQk8KK0dMVU1BQyBNQUdEQUxFTkEKK0dMVU1BQyBNSUxBTgorR0xVTUFDIE1JTEUKK0dMVU1BQyBNSU9EUkFHIERSCitHTFVNQUMgTUlST1NMQVYKK0dMVU1BQyBTTE9CT0RBTiBEUgorR0xVTUnEjEnEhiBNQU5EQQorR0xVVkFJxIYgxJBPUsSQRQorR0xVVkFKScSGIERSQUdBTgorR0xVVkFKScSGIEpPVkFOCitHTFVWQUtPViBNSUxBRElOS0EKK0dMVVZBS09WIFBBVkxFCitHTFVWQUtPVknEhiBWTEFESU1JUgorR0xVVk5KQSBTVEVWQU4KK0dNSVpJxIYgQlJBTklTTEFWCitHTUlaScSGIE5FR09WQU4KK0dNSVpJxIYgVkxBREEKK0dOSVAgSk9BS0lNCitHTklQIFZFTElNSVIgRElQTCBJTkcKK0dOSVAgVkVSQQorR05JUCBWTEFESU1JUgorR05KQVRJxIYgU1RPSkFOS0EKK0dOSkXEjCBTVkVOCitHT8SMQU5JTiBSQURFCitHT8SMScSGIEFOxJBBCitHT8WgScSGIEpFVlJFTQorR0/FoEnEhiBMSklMSkEKK0dPxaBJxIYgUEFWTEUKK0dPxaBJxIYgUEFWTEUKK0dPxaBJxIYgUEFWTEUKK0dPxaBJxIYgVE9NSVNMQVYKK0dPxaBJxIYgVE9NSVNMQVYKK0dPxaBOSknEhiBET0JSSVZPSgorR0/EkEVWQUMgQk9TSUxKS0EKK0dPQkVDIEtBVElDQQorR09CRUMgTUlMQU4KK0dPQkVMSknEhiBNSUxPVkFOCitHT0JFTEpJxIYgU1RSQUhJTkpBCitHT0JFTEpJxIYgU1ZFVElTTEFWCitHT0JFTEpJxIYgVlVLQURJTgorR09CRUxKScSGIFZVSworR09CT1IgQU5BCitHT0JPUiBMQURJU0xBVgorR09CT1IgWk9MVEFOCitHT0JPUiBaT0xUQU4KK0dPQ0nEhiBCT0dPU0FWCitHT0NJxIYgSkVWUk9TSU1BCitHT0NJxIYgVklET0pLTworR09EQSBPTElWSUpBCitHT0RBUiBLQVRBUklOQQorR09EScSGIE1BUklKQQorR09EScSGIFpWT05LTworR09EScSGIFpWT05LTworR09ESU5BIERBUktPCitHT0RJTkEgTUlMS08KK0dPRElOU0tJIFZMQURJTUlSCitHT0RPxaBFViBLUlNUQQorR09ET1IgxaBBTkRPUgorR09ET1IgSkFOT8WgCitHT0RPUiBKT1NJUAorR09EVU5DIERVxaBBTgorR09HScSGIERPQlJJTE8KK0dPR0nEhiBEUkFHT0xKVUIKK0dPR0nEhiBNQVJBCitHT0dJxIYgUEFWTEUKK0dPR0nEhiBTTEFWS08KK0dPR0nEhiBWRUxJTktBCitHT0dPTEFLIE1BUkdJVEEKK0dPR09MSkVWIE1JSEFKTE8KK0dPR09MSkVWIFVMSkFOQQorR09HT0xKRVYgVkFTSUxJSkUKK0dPR09WIE1JTEFOCitHT0pBTiBGRVJFTkMKK0dPSknEhiBEUkFHQU4KK0dPSknEhiBHT0pLTworR09KScSGIE1JTEVOQQorR09KScSGIE1JTEUKK0dPSktPViDFvUlWS08KK0dPSktPViBKVUxJSkFOQQorR09KS09WIE1JTEVOQQorR09KS09WIFJBRE9NSVIKK0dPSktPViBWQVNJTElKRQorR09KS09WScSGIERPTktBCitHT0pLT1ZJxIYgRFJBR0FOCitHT0pLT1ZJxIYgRFJBR09SQUQKK0dPSktPVknEhiBEVcWgQU4KK0dPSktPVknEhiBHRU9SR0lKRSBESVBMIElORworR09KS09WScSGIElMSUpBCitHT0pLT1ZJxIYgSkVMQQorR09KS09WScSGIExKVUJJxaBBCitHT0pLT1ZJxIYgTUlMSVNBVgorR09KS09WScSGIE1JVEEKK0dPSktPVknEhiBOQURFxb1EQQorR09KS09WScSGIE5FVkVOS0EKK0dPSktPVknEhiBQQVZMRQorR09KS09WScSGIFJBRE1JTE8KK0dPSktPVknEhiBSQURPTEpVQgorR09KS09WScSGIFNBVk8KK0dPSktPVknEhiBUT01JU0xBVgorR09KTknEhiBEQVZPUgorR09KT1ZJxIYgVlVLT1NBVgorR09LTEVSIElMT05BCitHT0xETUFOIEFOS0lDQQorR09MRE1BTi1UT01BxaBFVknEhiBFVkEKK0dPTEXFoCBSVcW9QQorR09MRU5JxIYgU0xBVktPCitHT0xFTkpBIEJSQU5LTworR09MRU5KQSBJUkVOQQorR09MRU5KQSBNSVJPU0xBVkEKK0dPTEVOSkEgTUlST1NMQVZBCitHT0xFVkEgTkFEQQorR09MScWgRVZJxIYgTUlSSkFOQQorR09MScSGIMW9SVZBTgorR09MScSGIMSQT1LEkEUKK0dPTEnEhiBBTEVLU0FOREFSCitHT0xJxIYgQU5JQ0EKK0dPTEnEhiBET0JSSVZPSkUKK0dPTEnEhiBGQUlECitHT0xJxIYgTEpVQk9NSVIKK0dPTEnEhiBNQVJLTworR09MScSGIFNMQVZLQQorR09MScSGIFNUQU5LQQorR09MScSGIFRPTUlTTEFWCitHT0xJxIYgVk9KSU4KK0dPTEnEhiBWT0pLTworR09MSUpBTiBBTkEKK0dPTElKQU5JTiBEVcWgQU5LQQorR09MSUpBTklOIEVSxb1FQkVUCitHT0xJSyBPTEdBCitHT0xJSyBTTE9CT0RBTgorR09MSkVWQcSMS0kgRFJBR0lDQQorR09MTyBBTEVLU0FOREFSCitHT0xPIERSQUdPU0xBVgorR09MT8SMT1JCSU4gU0xBVlVKCitHT0xPxIxPUkRJTiBEUkFHTworR09MT8WgSU4tRElNSVRSSUpFVknEhiBMSklMSkFOQQorR09MT8WgSU4gU1RFVklDQQorR09MT0JPxIxBTklOIE1JTE9TQVYKK0dPTE9NRUpJxIYgTUlMT1JBRAorR09MT05JxIYgWkFHT1JLQQorR09MT1VIIElWQU4KK0dPTE9WScSGIEpPVkFOCitHT0xVxaBJTiBCUkFOSVNMQVYKK0dPTFXFoElOIERSQUdBTgorR09MVcWgSU4gTEpVQklDQQorR09MVcWgSU4gTEpVQk9NSVIKK0dPTFXFoElOLU1JxIZJxIYgTUlMRU5LTworR09MVcWgSU4gTUlPRFJBRworR09MVcWgSU4gTkFEQQorR09MVcWgSU4gTklLT0xBCitHT0xVQknEjEnEhiBWRVJBCitHT0xVQknEhiBNSUxJVk9KRQorR09MVUJKQVROSUtPVkEgTklOQQorR09MVUJPViBOQUtBCitHT0xVQk9WScSGIMSMRURPTUlSCitHT0xVQk9WScSGIMSQT1LEkEUKK0dPTFVCT1ZJxIYgQUxFS1NBTkRBUgorR09MVUJPVknEhiBBUlNFTgorR09MVUJPVknEhiBCT8WgS08KK0dPTFVCT1ZJxIYgQk9HREFOCitHT0xVQk9WScSGIEJPUklWT0oKK0dPTFVCT1ZJxIYgQlJBTktPCitHT0xVQk9WScSGIERJTUlUUklKRQorR09MVUJPVknEhiBET0JSSUxBCitHT0xVQk9WScSGIERSQUdBTkEKK0dPTFVCT1ZJxIYgRFJBR0FOCitHT0xVQk9WScSGIERSQUdBCitHT0xVQk9WScSGIEdPTFVCCitHT0xVQk9WScSGIEdPTFVCCitHT0xVQk9WScSGIElMSUpBCitHT0xVQk9WScSGIElWQU4KK0dPTFVCT1ZJxIYgSkVSRU1JSkUKK0dPTFVCT1ZJxIYgSk9WQU4KK0dPTFVCT1ZJxIYgS1NFTklKQQorR09MVUJPVknEhiBMSklMSkFOQQorR09MVUJPVknEhiBMSlVCSU5LQQorR09MVUJPVknEhiBMVUtBCitHT0xVQk9WScSGIE1BTk9KTE8KK0dPTFVCT1ZJxIYgTUFOT0pMTworR09MVUJPVknEhiBNQVJJSkEKK0dPTFVCT1ZJxIYgTUlIQUpMTworR09MVUJPVknEhiBNSUxBTgorR09MVUJPVknEhiBNSUxFTktPCitHT0xVQk9WScSGIE1JTEVOS08KK0dPTFVCT1ZJxIYgTUlMVU4KK0dPTFVCT1ZJxIYgTUlMVVRJTgorR09MVUJPVknEhiBNSU9EUkFHCitHT0xVQk9WScSGIE1JUkpBTkEKK0dPTFVCT1ZJxIYgTUlST1NMQVYKK0dPTFVCT1ZJxIYgTUxBxJBFTgorR09MVUJPVknEhiBNT03EjElMTworR09MVUJPVknEhiBNT03EjElMTworR09MVUJPVknEhiBNT03EjElMTworR09MVUJPVknEhiBOQURBCitHT0xVQk9WScSGIE5JS09MQQorR09MVUJPVknEhiBPTEdJQ0EKK0dPTFVCT1ZJxIYgUEVSScWgQQorR09MVUJPVknEhiBTRUtVTEEKK0dPTFVCT1ZJxIYgU1RBTkEKK0dPTFVCT1ZJxIYgU1RBTkEKK0dPTFVCT1ZJxIYgVEVPRE9SQQorR09MVUJPVknEhiBUSUhPTUlSCitHT0xVQk9WScSGIFRPTU8KK0dPTFVCT1ZJxIYgVkFMRVJJSkEKK0dPTFVCT1ZJxIYgVkVMSVpBUgorR09MVUJPVknEhiBWVUtBxaBJTgorR09MVUJPVknEhiBWVUtBxaBJTgorR09MVUJPVknEhiBaT1JBTgorR09MVUJPVknEhiBaVk9OSU1JUgorR09MVUJTS0kgTUlMSUNBCitHT0xVQlNLSSBSVcW9QQorR09NQkHFoCBUQU1BxaAKK0dPTUJBUiDFoEFORE9SCitHT01CQVIgRUxJWkFCRVRBCitHT01CQVIgRkVSRU5DCitHT01CQVIgScWgVFZBTgorR09NQkFSIEpBTk/FoAorR09NQkFSIEpBTk/FoAorR09NQkFSIEtBVEFMSU4KK0dPTUJBUiBNSUhBTEoKK0dPTUJBUiBST1pBTElKQQorR09NQk/FoCBJxaBUVkFOCitHT01CT8WgIElWSUNBCitHT01CT8WgIEtBUkxPCitHT01CT1ZJxIYgQlJBTktPCitHT01JUkFDIMW9SVZLTworR09NSVJBQyBCUkFOS08KK0dPTUlSQUMgU1RPSkFOCitHT07EjElOIFNSRVRLTworR09OxJBBIMW9SVZBTgorR09OxJBBIE1JTEVOQQorR09OxJBBIFBFVEFSCitHT05EQSBMQURJU0xBVgorR09OREFSIFJVxb1BCitHT05KQSBCUkFOSU1JUgorR09OSkEgTUlMT1NMQVYKK0dPTkpBIFBFVEFSCitHT1LFoEUgQU5EUklKQQorR09SQU5PVknEhiBEUkFHTworR09SQU5PVknEhiBNSVJLTworR09SQkFOT1YgSVZBTgorR09SREFOScSGIFNUT0pBTgorR09SREnEhiBEQVJJTktBCitHT1JEScSGIEdPSktPCitHT1JEScSGIExBVklOSUpBCitHT1JEScSGIE1JTE9SQUQKK0dPUkRJxIYgTUlMT1ZBTgorR09SREnEhiBSSVNUTworR09SREnEhiBTTEFWS08KK0dPUkRJxIYgU1RFVkFOCitHT1JEScSGIFZJVE9NSVIKK0dPUkRPxaAgxb1Vxb1BTkEKK0dPUkXEjEFOIEtBUkxPCitHT1JFQyBEUkFHVVRJTgorR09SRUMgTkFEQQorR09SRU5KQUsgUlVET0xGCitHT1JJxIxBTkVDIE1JSk8KK0dPUkpBTkFDIEJSQU5LTworR09SSkFOQUMgTUFSSU4KK0dPUk5KQUsgS0FUSUNBCitHT1JUVkEgSk9TSVAKK0dPU0FSScSGIEZSQU5KQQorR09TUEnEhiBORURFTEpLTworR09TUE/EkElOQcSMS0kgUkFET1ZBTgorR09TUE9ESU5PVknEhiBJVkFOCitHT1NUScSGIFpEUkFWS08KK0dPU1RJTUlST1ZJxIYgTUFSSU4KK0dPU1RJTUlST1ZJxIYgUEVUQVIKK0dPU1RPSknEhiDEkFVSxJBJTktBCitHT1NUT0pJxIYgRFXFoEFOCitHT1NUT0pJxIYgSk9WQU4KK0dPU1RPSknEhiBMQVpBUgorR09TVE9KScSGIE1JTEFOQQorR09TVE9KScSGIE1JTE/FoAorR09TVE9KScSGIE1JUk9TTEFWCitHT1NUT0pJxIYgTUlUQVIKK0dPU1RPSknEhiBTTEFWS0EKK0dPU1RPSknEhiBTTE9CT0RBTktBCitHT1NUT0pJxIYgVEVPRE9SCitHT1NUT1ZJxIYgxJBPUsSQRQorR09TVE9WScSGIEJPR0RBTgorR09TVE9WScSGIElLQQorR09TVE9WScSGIExKVUJPTUlSCitHT1NUT1ZJxIYgTU9NSVIKK0dPVMWgVEFKTiBGRVJFTkMKK0dPVkVEQVJJQ0EgxIxFRE8KK0dPVkVEQVJJQ0Egxb1FTElNSVIKK0dPVkVEQVJJQ0EgREVKQU4KK0dPVkVEQVJJQ0EgRFJBR0lDQQorR09WRURBUklDQSBNSUxFTktPCitHT1ZFREFSSUNBIE1JTE9WQU4KK0dPVkVEQVJJQ0EgTUlUQVIKK0dPVkVEQVJJQ0EgTUlUQVIKK0dPVkVEQVJJQ0EgUEFWTEUKK0dPVkVEQVJJQ0EgU0lNTworR09WRURBUklDQSBTTEFWS08KK0dPVkVEQVJJQ0EgVEFUQUpBTkEKK0dPVkVEQVJJQ0EgVkVMSU1JUgorR09WRURBUklDQSBWTEFESU1JUgorR09WRURBUk9WScSGIEpVTElKQQorR09WRURBUk9WScSGIE5JS09MQQorR09WRURBUk9WScSGIFBFVEFSCitHT1ZPUsSMSU4gxb1JVktBCitHT1ZPUsSMSU4gQk9HREFOCitHT1ZPUsSMSU4gREFSSU5LQQorR09WT1LEjElOIERFTElOS0EKK0dPVk9SxIxJTiBESU1JVFJJSkUKK0dPVk9SxIxJTiBESU1JVFJJSkUKK0dPVk9SxIxJTiBEVcWgQU4KK0dPVk9SxIxJTiBHQVZSQQorR09WT1LEjElOIExBWkFSCitHT1ZPUsSMSU4gTUxBREVOCitHT1ZPUsSMSU4gU0FWQQorR09WT1LEjElOIFNMQVZJQ0EKK0dPVk9SxIxJTiBTTE9CT0RBTgorR09WT1LEjElOIFNURVZBTgorR09WT1LEjElOIFNUT0pBTgorR09WT1LEjElOIFZFUkEKK0dPVk9SxIxJTiBWTEFEQQorR09WT1LEjElOIFZMQURJTUlSCitHT1ZPUsSMSU5PViBNSVJPU0xBVgorR1LEjEFOQUMgQlJBTktPCitHUsSMRSBNSUxBTgorR1LEjEnEhiBNSUxFTktPCitHUsSMScSGIE1JTElWT0oKK0dSxIxJxIYgU0xPQk9EQU4gRElQTCBJTkcKK0dSxIxJxIYgU1ZFVElTTEFWCitHUsSMScSGLVRVQknEhiBKT1ZBTktBCitHUsSMScSGIFZFUklDQQorR1LEjEnEhiBaT1JLQQorR1LEjEtJIE1JTEUKK0dSxIxLSSBNSVJKQU5BCitHUsWgScSGIMSQT1LEkEUKK0dSxaBJxIYgxJBPUsSQRQorR1LFoEnEhiBNSUxJQ0EKK0dSxaBJxIYgTklLT0xBCitHUsWgScSGIFJVxb1JQ0EKK0dSxaBJxIYgU09GSUpBCitHUsSQScSGIERSQUdVVElOCitHUkHEjEFOSU4gSVZBTgorR1JBxIxBTklOIFZBTEVSSUpBCitHUkHEjEVLIFNURVZBTgorR1JBxIxJSyBTTEFWS0EKK0dSQcSMSUsgU1RFVkFOCitHUkHEjEtPIMWgQU5ET1IKK0dSQcSMS08gT0xHQQorR1JBxIxLTyBPTEdBCitHUkHEjEtPIFJPWkFMSUpBCitHUkHFoEEgSk9TSVAKK0dSQcWgQVIgQU5BCitHUkHFoEnEhiBWQUxFTlRJTgorR1JBxaBJxIYgWkRFTktPCitHUkHFoE5FUiBTT0ZJSkEKK0dSQcSQSU4gTUlMT8WgCitHUkFCIEZFUkVOQworR1JBQkFSIEpPU0lQQQorR1JBQkFSIEpPU0lQCitHUkFCQVIgTUlSS08KK0dSQUJFxb0gSUxFCitHUkFCRcW9IEpPSkEKK0dSQUJJxIYgU1RFVkFOCitHUkFCScSGIFVST8WgCitHUkFCT0NJIFJBTUFEQU4KK0dSQUJPVkFDIEFDTworR1JBQk9WQUMgQ1ZFVEEKK0dSQUJPVkFDIERJTUlUUklKRQorR1JBQk9WQUMgSk9WQU4KK0dSQUJPVkFDIE5FVkVOS0EKK0dSQUJPVkFDIFJBTktPCitHUkFCT1ZBQyBTSU1FVU4KK0dSQUJVTkTFvUlKQSBKVUxJSkFOQQorR1JBREHFoMSMRVZJxIYgT1NNQU4KK0dSQURJxIYgxb1JVktPCitHUkFEScSGIEJPxb1JQ0EKK0dSQURJxIYgREFOS0EKK0dSQURJxIYgU1BBU09KRQorR1JBRElOxIxFVknEhiBBUlNFTklKRQorR1JBRElOQSBTTUlMSktBCitHUkFESU5BQyBBTEVLU0FOREFSCitHUkFESU5BQyBTUkVET0pFCitHUkFESU5BQyBTUkVET0pFCitHUkFESU5BQyBTUkVET0pFCitHUkFESU5BUk9WIERJTUlUUklKRQorR1JBRE9KRVZJxIYgS0FUSUNBCitHUkFET0pFVknEhiBMSlVCSUNBCitHUkFIRUsgTkFEQQorR1JBSE9WQUMgxJBPUsSQRQorR1JBSE9WQUMgxJBPUsSQRQorR1JBSE9WQUMgQlJBTklTTEFWCitHUkFIT1ZBQyBDVklKTworR1JBSE9WQUMgREFOSUpFTEEKK0dSQUhPVkFDIERSQUdBTkEKK0dSQUhPVkFDIERSQUdJQ0EKK0dSQUhPVkFDIERVxaBBTktBCitHUkFIT1ZBQyBEVcWgQU4KK0dSQUhPVkFDIERVxaBBTgorR1JBSE9WQUMgRFXFoEFOCitHUkFIT1ZBQyBHT0pLTworR1JBSE9WQUMgSkFOS08KK0dSQUhPVkFDIEpPVkFOCitHUkFIT1ZBQyBKT1ZBTgorR1JBSE9WQUMgTUlPRFJBRworR1JBSE9WQUMgTUlSS08KK0dSQUhPVkFDIE1JUk9TTEFWCitHUkFIT1ZBQyBOQURBCitHUkFIT1ZBQyBOSUtPTEEKK0dSQUhPVkFDIE9CUkFECitHUkFIT1ZBQyBSQURFCitHUkFIT1ZBQyBSQU5LQQorR1JBSE9WQUMgU0xBVklDQQorR1JBSE9WQUMgU0xBVktPCitHUkFIT1ZBQyBTTEFWS08KK0dSQUhPVkFDIFNNSUxKQQorR1JBSE9WQUMgU1BBU08KK0dSQUhPVkFDIFZBU08KK0dSQUhPVkFDIFZFTElNSVIKK0dSQUhPVkFDIFpERU5LTworR1JBSkxJTkcgRU1JTAorR1JBTkRJxIYgTUlKT0RSQUcKK0dSQU5EScSGIE1JTElDQQorR1JBTkRJxIYgUkFET1ZBTiBEUiBQUk9GCitHUkFOREnEhiBTVE9KQU4KK0dSQU5JxIYgTUFSSUpBCitHUkFOScSGIE1BUklKQQorR1JBTknEhiBOSUtPTEEKK0dSQU5VTEEgR09KS08KK0dSQU9OSkEgxJBVUk8KK0dSQU9SIE1JUk9TTEFWCitHUkFPUiBTTEFWS08KK0dSQU9SQUMgSVNJRE9SCitHUkFPVkFDIMSQT1LEkEUKK0dSQU9WQUMgQU9SSUtBCitHUkFPVkFDIEJMQcW9CitHUkFPVkFDIEJPR0RBTgorR1JBT1ZBQyBCT0dEQU4KK0dSQU9WQUMgQk9SSVNMQVYKK0dSQU9WQUMgRFXFoEFOCitHUkFPVkFDIE1JTE/FoAorR1JBT1ZBQyBNSUxPUkFECitHUkFPVkFDIE9MSVZFUkEKK0dSQU9WQUMtUEFEUk9WIExKVUJJTktBCitHUkFPVkFDIFNMT0JPREFOS0EKK0dSQVDEjEFLIEpPU0lQCitHUkFWQVJBIERSQUdJQ0EKK0dSQVZBUkEgTklLT0xBCitHUkFWQVJBIFJBREUKK0dSQkEgS09TVEEKK0dSQkEgTUlMQU4KK0dSQkEgTkVWRU5LQQorR1JCQSBWVUtPSklDQQorR1JCQVRJTknEhiBNSUxBTgorR1JCQVRJTknEhiBNSUxPxaAKK0dSQkFWIEpPTgorR1JCQVZBQyBORVZFTktBCitHUkJBVkFDIE5JS09MQQorR1JCScSGIMW9SVZBTgorR1JCScSGIMW9SVZLTworR1JCScSGIMSQT1LEkEUgTVIKK0dSQknEhiDEkFVSQcSQCitHUkJJxIYgxJBVUk8KK0dSQknEhiBBTsSQRUxJSkEKK0dSQknEhiBBTktBCitHUkJJxIYgQU5LSUNBCitHUkJJxIYgQk/FoEtPCitHUkJJxIYgQk9HREFOS0EKK0dSQknEhiBCT1JJVk9KRQorR1JCScSGIEJSQU5LTworR1JCScSGIETFvUVWQUQKK0dSQknEhiBEQVJJTktBCitHUkJJxIYgREVTQQorR1JCScSGIERSQUdBTgorR1JCScSGIERSQUdBTgorR1JCScSGIERSQUdBTgorR1JCScSGIERSQUdPCitHUkJJxIYgRFJFTktBCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoEFOCitHUkJJxIYgRFXFoElDQQorR1JCScSGIEdPSktPCitHUkJJxIYgR09SQU4KK0dSQknEhiBKT1ZBTktBCitHUkJJxIYgSk9WQU5LQQorR1JCScSGIEpPVkFOCitHUkJJxIYgSk9WQU4KK0dSQknEhiBKT1ZJQ0EKK0dSQknEhiBKT1ZPCitHUkJJxIYgTEFaQVIKK0dSQknEhiBMSlVCQU4KK0dSQknEhiBMSlVCScWgQQorR1JCScSGIE1BUklKQQorR1JCScSGIE1JTEFOCitHUkJJxIYgTUlMQU4KK0dSQknEhiBNSUxBTgorR1JCScSGIE1JTEVOQQorR1JCScSGIE1JTEVOQQorR1JCScSGIE1JTEVOS08KK0dSQknEhiBNSUxFTktPCitHUkJJxIYgTUlMRQorR1JCScSGIE1JTEnEhgorR1JCScSGIE1JTElDQQorR1JCScSGIE1JTEtBCitHUkJJxIYgTUlMT8WgCitHUkJJxIYgTUlMT8WgCitHUkJJxIYgTUlMT1JBRAorR1JCScSGIE1JTE9WQU4KK0dSQknEhiBNSUxPVkFOCitHUkJJxIYgTUlMVVRJTgorR1JCScSGIE1JUkEKK0dSQknEhiBNSVJBCitHUkJJxIYgTUxBREVOCitHUkJJxIYgTklLT0xBCitHUkJJxIYgT1NUT0pBCitHUkJJxIYgUEVUQVIKK0dSQknEhiBQRVRBUgorR1JCScSGIFBFVEFSCitHUkJJxIYgUkFERQorR1JCScSGIFJPU0EKK0dSQknEhiBTTE9CT0RBTgorR1JCScSGIFNURVZBTgorR1JCScSGIFNURVZBTgorR1JCScSGIFNURVZPCitHUkJJxIYgU1ZFVEtPCitHUkJJxIYgVkFTQSBEUgorR1JCScSGIFZFUkEKK0dSQknEhiBWSUQKK0dSQknEhiBWT0pJTgorR1JCScSGIFZPSklTTEFWCitHUkJJxIYgVlVLT1NBVkEKK0dSQklOIE1BUklKQQorR1JCSU4gUkFET1NMQVYKK0dSQk9WQUMgTUlIQUxKCitHUkJPVknEhiBBTElMCitHUkJPVknEhiBEUkFHQU4KK0dSQk9WScSGIEdBVlJJTE8KK0dSQk9WScSGIEpPVkFOCitHUkJPVknEhiBKT1ZBTgorR1JCT1ZJxIYgTUlMQU4KK0dSQk9WScSGIE1JTEFOCitHUkJPVknEhiBNSVLEjEVUQQorR1JCT1ZJxIYgTU9NxIxJTE8KK0dSQk9WScSGIE1VUkFUCitHUkJPVknEhiBNVVJBVAorR1JCT1ZJxIYgUkFESVNBVgorR1JCT1ZJxIYgUlXFvUlDQQorR1JCT1ZJxIYgU0xBVktPCitHUkJPVknEhiBTTUlMSkEKK0dSQ0UgQU5JQ0EKK0dSQ0nEhiBKT1ZBTgorR1JDScSGIE1JTElDQQorR1JDScSGIE5JS09MQQorR1JDScSGIFZFU0VMSU4KK0dSQ09WScSGIFZFUklDQQorR1JEScSGIElWSUNBCitHUkRJxIYgTFVKS0EKK0dSREnEhiBNQVJBCitHUkRJTknEhiBNSVJLTworR1JESU5JxIYgU0xPQk9EQU4KK0dSRcSMIFJPWkFMSUpBCitHUkXEjEVMIEtBUkxPCitHUkXEjE5JSyBKQU5LTworR1JFxIxOSUsgTUFSSUpBCitHUkXEjE5JSyBQQVZMRQorR1JFQkVMRElOR0VSIExKVUJJQ0EKK0dSRUJFTERJTkdFUiBQRVRBUgorR1JFQk5KRVYgUk9aQUxJSkEKK0dSRUJPIE5FREVMSktPCitHUkVCT1ZJxIYgUkFOS08KK0dSRUdFQyBNQVJJSkEKK0dSRUdFQyBWSUxJCitHUkVHRUMgVklMSQorR1JFR0VSIEhFRFZJR0EKK0dSRUdPUiBKT1NJUAorR1JFR09SScSGIEJSQU5LTworR1JFR09SScSGIERVxaBBTgorR1JFR09SScSGIE1JTEFOS0EKK0dSRUdPUklOIFBFVEFSCitHUkVHT1JPVknEhiBBTlRPTklKRQorR1JFR09ST1ZJxIYgSVZBTgorR1JFR09ST1ZJxIYgVkxBRElNSVIgRElQTCBJTkcKK0dSRUdVxaAgQU5UQUwKK0dSRUdVxaAgSkFOT8WgCitHUkVHVcWgIExBU0xPCitHUkVHVcWgIFBFVEFSCitHUkVHVVJJxIYgSVZBTgorR1JFSVNJTkdFUiBEQVJJTkEKK0dSRUlaRVIgUEVUQVIKK0dSRUsgU0FESUsKK0dSRUtTIFBBVkVMCitHUkVLVSBBREVNCitHUkVLVSBHQU5JCitHUkVLVSBIQVNBTgorR1JFS1UgTVVIQU1FUgorR1JFS1UgTkVaSVIKK0dSRUtVIFJBTUlaCitHUkVLVSBTQUJJVAorR1JFS1VMT1ZJxIYgSk9WQU4KK0dSRUtVTE9WScSGIFNUQU7EjEUKK0dSR0FOT1ZJxIYgxJBVUkEKK0dSR0FSIMSQVVJJQ0EKK0dSR0FSIEJSQU5LQQorR1JHQVIgTEFaQVIKK0dSR0FSIFRPxaBBCitHUkdJxIxFVknEhiBKVUxJxaBLQQorR1JHScSGIEJPxaBLTworR1JHScSGIEJPSkFOQQorR1JHScSGIERSQUdPSkUKK0dSR0nEhiBNSUpPCitHUkdJxIYgTUlMQU4KK0dSR0nEhiBTQVZFVEEKK0dSR0nEhiBTSU1PCitHUkdJxIYgVkVSQQorR1JHScSGIFZFUklDQQorR1JHScSGIFpWT05JTUlSCitHUkdJTsSMRVZJxIYgTUlIQUVMQSBQUk9GRVNPUgorR1JHSU7EjEVWScSGIFZMQURJTUlSCitHUkdVUiBEVcWgQU4KK0dSR1VSIFJBRE9TTEFWCitHUkdVUiBWTEFEQQorR1JHVVJFVknEhiBNSVJPU0xBVgorR1JHVVJFVknEhiBSQUpLTworR1JHVVJJxIYgQU5UVU4KK0dSR1VSScSGIEpPU0lQCitHUkdVUknEhiBSVcW9SUNBCitHUkdVUk9WIFNMT0JPREFOCitHUkdVUk9WScSGIE1JTE9SQUQKK0dSSUZBVE9ORyBLQVJMTworR1JJRkFUT05HIE9UTworR1JJR09SSUpFViBBTEVLU0FOREFSCitHUklHT1JJSkVWScSGIE5JS09MQQorR1JJR09SSUpFVknEhiBQRVRBUgorR1JJSkFLIERBTklDQQorR1JJSkFLIEtPU09WS0EKK0dSSUpBSyBNSUxBTgorR1JJSkFLT1ZJxIYgTUlMSUNBCitHUklKQUtPVknEhiBNSUxPxaAKK0dSSUxFQyBTVEFOS08KK0dSSUxFQyBTVEFOS08KK0dSSU5IVVQgTEFESVNMQVYKK0dSSVNBIFBFVEFSCitHUklTSEFCRVIgRlJBTkpBCitHUklaRUxKIEtBUkxPCitHUklaRVIgUEVUQVIKK0dSSVpFUiBTVEVWQU4KK0dSS0FWQUMgTUlMQU4KK0dSS0FWQUMgTUlST1NMQVYKK0dSS0lOScSGIEtPU0FSQQorR1JLSU5JxIYgTUlMQU4KK0dSS09WScSGIMW9SVZBTgorR1JLT1ZJxIYgxJBPUsSQRQorR1JLT1ZJxIYgxJBVUk8KK0dSS09WScSGIEFOS0EKK0dSS09WScSGIEJPxb1JREFSCitHUktPVknEhiBCT0dPTEpVQgorR1JLT1ZJxIYgQk9SSVNMQVYKK0dSS09WScSGIEJSQU5LTworR1JLT1ZJxIYgREFORQorR1JLT1ZJxIYgRFXFoEFOCitHUktPVknEhiBEVcWgQU4KK0dSS09WScSGIEdBVlJJTE8KK0dSS09WScSGIEpFTEVOQQorR1JLT1ZJxIYgSk9WQU4gRElQTCBJTkcKK0dSS09WScSGIEpPVkFOCitHUktPVknEhiBMSklMSkFOQQorR1JLT1ZJxIYgTUlMSUNBIERSCitHUktPVknEhiBNSVJKQU5BCitHUktPVknEhiBTVE9KQU5LQQorR1JLT1ZJxIYgVkVSQQorR1JLT1ZJxIYgVk9KSU1JUgorR1JLT1ZJxIYgVk9KSU4KK0dSS09WU0tJIFBBTlRBCitHUkxJxIYgxJBPUsSQRQorR1JMScSGIExKVUJJTktPCitHUkxJxIYgTUlMRU5LTworR1JMSUNBIMW9RUxKS08KK0dSTElDQSBCT1NJTEpLQQorR1JMSUNBIE1JTEVWQQorR1JMSUNBIE1JTE9WQU4KK0dSTElDQSBTVEFOS08KK0dSTElDQSBWT0pJTgorR1JMSkVWScSGIE1JUkpBTkEKK0dSTUHFoCDEkFVSTworR1JNQcWgIEJSQU5LTworR1JNT8WgIFBSRURSQUcKK0dSTVXFoEEgxb1JVktPCitHUk1VxaBBIMSQVVJPCitHUk1VxaBBIE1JTEFOCitHUk1VxaBBIE1JTEFOCitHUk1VxaBBIFJBREUKK0dSTVXFoEEgU0xBVktPCitHUk1VxaBBIFNNSUxKS0EKK0dSTVXFoEEgU1RPSkFOCitHUk1VxaBBIFZFTEtPCitHUk5KQSDEkFVSQQorR1JOSkEgQU5EUklKQQorR1JOSkEgQU5LQQorR1JOSkEtQVNBTkkgTEpVTU5JSkEKK0dSTkpBIERVxaBBTgorR1JOSkEgSkFOS08KK0dSTkpBIEpBTgorR1JOSkEgSk9WQU4KK0dSTkpBIEpPVkFOCitHUk5KQSBKT1ZBTgorR1JOSkEgSk9WQU4KK0dSTkpBIEpVUkFKCitHUk5KQSBMQVNMTworR1JOSkEgTEpVREVWSVQKK0dSTkpBIE1BUklKQQorR1JOSkEgT1NLQVIKK0dSTkpBIFNPRklKQQorR1JOSkEgU1RFVkFOCitHUk5KQSBTVEVWQU4KK0dSTkpBIFNURVZBTgorR1JOSkEgVkxBRElNSVIKK0dST8WgRUsgWlZPTklNSVIKK0dST8WgS08gTUFSSUpBCitHUk9NIENJUklMCitHUk9NSUxJxIYgTUlMT1JBRAorR1JPUyDEkE9SxJBFCitHUk9TIElWQU4KK0dST1MgTEFESVNMQVYKK0dST1pEQU5JxIYgxJBPUsSQRQorR1JPWkRBTknEhiBFTklOS0EKK0dST1pEQU5JxIYgSk9TSVAKK0dST1pEQU5JxIYgTUlMQU4KK0dST1pEQU5JxIYgTUlMQU4KK0dST1pEQU5PViBTTEFWS08KK0dST1pEQU5PVlNLSSBEQU1KQU4KK0dST1pEQU5PVlNLSSBNSUxFCitHUk9aREFOT1ZTS0kgUEVUQVIKK0dST1pEScSGIEJPxaBLTworR1JPWkRJxIYgQk9HREFOCitHUk9aREnEhiBERVNBTktBCitHUk9aREnEhiBET0JSSVZPSgorR1JPWkRJxIYgRFXFoEFOCitHUk9aREnEhiBKQVNNSU5BCitHUk9aREnEhiBKT1ZBTgorR1JPWkRJxIYgSk9WQU4KK0dST1pEScSGIEpPVkFOCitHUk9aREnEhiBLVVpNQU4KK0dST1pEScSGIExBWkFSCitHUk9aREnEhiBMSlVCScWgQQorR1JPWkRJxIYgTEpVQk9NSVIKK0dST1pEScSGIE1JTEFOCitHUk9aREnEhiBQRVRBUgorR1JPWkRJxIYgU1RFVkFOCitHUk9aREnEhiBWRVNOQQorR1JPWkRJxIYgWkRSQVZLTworR1JPWkRJxIYgWk9SQU4KK0dST1pEScSGIFpPUklDQQorR1JPWkdVVCBUSUJPUgorR1JVQkEgRE9SVQorR1JVQkEgVElCRVJJSkUKK0dSVUJBxIwgR09SREFOQQorR1JVQkHEjCBNQUtTQQorR1JVQkHEjCBNT03EjElMTworR1JVQkHEjCBTVEFOS0EKK0dSVUJBxIwgVEFOQVNJSkUKK0dSVUJBxIxJxIYgR09KS08KK0dSVUJBTk9WIERPQlJJVk9KCitHUlVCQU5PViBEVcWgQU5LQQorR1JVQkFOT1YgTk9WQUsKK0dSVUJBTk9WIFpBSEFSSUpFCitHUlVCRcWgQSBOSUtPTEEKK0dSVUJFxaBJxIYgRFJBR0FOCitHUlVCRcWgScSGIERVxaBBTgorR1JVQkXFoEnEhiBNRUxBTklKQQorR1JVQkVSIEVEVUFSRAorR1JVQkVSIEVNSUwKK0dSVUJFUiBFVkFMRAorR1JVQkVSIEZSQU5KQQorR1JVQkVSIFJVRE9MRgorR1JVQkVUScSGIE9MR0EKK0dSVUJJxaBBIEFOxJBFTE8KK0dSVUJJxaBJxIYgTUlSSkFOQQorR1JVQknFoEnEhiBNSVJLTworR1JVQknFoEnEhiBOSUtPTEEKK0dSVUJJxIYgxb1BUktPCitHUlVCScSGIMW9QVJLTworR1JVQknEhiBBTktBCitHUlVCScSGIE1JTEFOCitHUlVCScSGIE5JS09MQQorR1JVQklOIE1JTEFOCitHUlVCSU4gTUlST1NMQVYKK0dSVUJKRcWgScSGIEJSQU5LTworR1JVQkpFxaBJxIYgTUlMRU5LTworR1JVQkpFxaBJxIYgTUlSS08KK0dSVUJKRcWgScSGIFNURVZPCitHUlVCT1IgQURBTQorR1JVQk9SIEJSQU5LTworR1JVQk9SIEVNQQorR1JVQk9SIEpFRlRPCitHUlVCT1ItSk9KScSGIFNMQVZJQ0EKK0dSVUJPUiBKT1ZPCitHUlVCT1IgTEFaQVIKK0dSVUJPUiBMQVpPCitHUlVCT1IgTEpVQk9NSVIKK0dSVUJPUiBNSUxKQU5BCitHUlVCT1IgTUlMT8WgCitHUlVCT1IgTkXEkE8KK0dSVUJPUiBORURFTEpLTworR1JVQk9SIE5FVkVOQQorR1JVQk9SIE5JS09MQQorR1JVQk9SIE5JS09MQQorR1JVQk9SIE9MR0EKK0dSVUJPUiBSQURFCitHUlVCT1IgU0xPQk9EQU4KK0dSVUJPUiBTUkVUTworR1JVQk9SIFZVSk8KK0dSVUJPUiBaRFJBVktPCitHUlVCT1JPVknEhiBNSUxFCitHUlVCT1ZJxIYgSUxJSkEKK0dSVUVTS1UtxIZJUknFoEFOIERFTElKQQorR1JVScSMScSGIERSQUdPTEpVQgorR1JVSUsgVkVST05JS0EKK0dSVUrEjEnEhiBOSUtPTEEKK0dSVUpBTkFDIE1JTEFOCitHUlVKRVYgT0dOSkFOIERJUEwgSU5HCitHUlVKScSMIFNMT0JPREFOCitHUlVKScSMScSGIEJJTEpBTkEKK0dSVUpJxIxJxIYgSk9WQQorR1JVSknEjEnEhiBNQVJJTktPCitHUlVKScSMScSGIE1JQQorR1JVSknEjEnEhiBNSUxJQ0EKK0dSVUpJxIxJxIYgTUlMT0pFCitHUlVKScSMScSGIE5FTkFECitHUlVKScSMScSGIFBFVEFSCitHUlVKScSMScSGIFBSRURSQUcKK0dSVUpJxIxJxIYgUkFET01JUgorR1JVSknEjElOIFNUQU5PSkUKK0dSVUpJxIxLT1YgSk9WQU4KK0dSVUpJxIxLT1YgTUlMS0EKK0dSVUpJxIYgxb1JVktBCitHUlVKScSGIMW9SVZPUkFECitHUlVKScSGIMSQRU5BCitHUlVKScSGIMSQRU5JU0lKRQorR1JVSknEhiDEkE9SxJBFCitHUlVKScSGIMSQVVLEkElDQQorR1JVSknEhiDEkFVSQQorR1JVSknEhiDEkFVSQQorR1JVSknEhiBBTEVLU0FOREFSCitHUlVKScSGIEFMRUtTQU5EQVIKK0dSVUpJxIYgQUxFS1NBTkRBUgorR1JVSknEhiBBTEVLU0FOREFSCitHUlVKScSGIEFMRUtTQU5EQVIKK0dSVUpJxIYgQU7EkEVMS08KK0dSVUpJxIYgQU5EUklKQQorR1JVSknEhiBBTklDQQorR1JVSknEhiBCT8W9SURBUgorR1JVSknEhiBCT8W9SURBUgorR1JVSknEhiBCT1JJU0xBVgorR1JVSknEhiBCT1JJVk9KCitHUlVKScSGIEJPU0lMSktBCitHUlVKScSGIEJSQU5JU0xBVgorR1JVSknEhiBCUkFOSVNMQVYKK0dSVUpJxIYgQlJBTktPCitHUlVKScSGIENWSUpFVElOCitHUlVKScSGIENWSUpPCitHUlVKScSGIERBTklDQQorR1JVSknEhiBESU1JVFJJSkUKK0dSVUpJxIYgRFJBR0lDQQorR1JVSknEhiBEVcWgQU4KK0dSVUpJxIYgRFXFoEFOCitHUlVKScSGIERVxaBBTgorR1JVSknEhiBGUkFOQ0nFoEtBCitHUlVKScSGIEdBVlJBCitHUlVKScSGIEdBVlJJTE8KK0dSVUpJxIYgR09SQU4KK0dSVUpJxIYgR09SSUNBCitHUlVKScSGIEdSVUpBCitHUlVKScSGIElMSU5LQQorR1JVSknEhiBJVkFOIERJUEwgSU5HCitHUlVKScSGIElWQU5LQQorR1JVSknEhiBKQU5KQQorR1JVSknEhiBKRUxJQ0EKK0dSVUpJxIYgSkVMSVNBVkVUQQorR1JVSknEhiBKRUxLQSBEUgorR1JVSknEhiBKT1ZBTktBCitHUlVKScSGIEpPVkFOS0EKK0dSVUpJxIYgSk9WQU4KK0dSVUpJxIYgSk9WQU4KK0dSVUpJxIYgSk9WQU4KK0dSVUpJxIYgSk9WQU4KK0dSVUpJxIYgSk9WSUNBCitHUlVKScSGIEpVTEtBCitHUlVKScSGIEtPU1RBIERSCitHUlVKScSGIEtPU1RBIERSCitHUlVKScSGIExBWkFSCitHUlVKScSGIExFTktBCitHUlVKScSGIExKSUxKQU5BCitHUlVKScSGIExKVUJJQ0EKK0dSVUpJxIYgTEpVQk9NSVIKK0dSVUpJxIYgTEpVQk8KK0dSVUpJxIYgTUFSSUpBCitHUlVKScSGIE1BUklKQQorR1JVSknEhiBNQVJJSkEKK0dSVUpJxIYgTUFSSUpBCitHUlVKScSGIE1BUklOQQorR1JVSknEhiBNSUhBSkxPCitHUlVKScSGIE1JTEFOCitHUlVKScSGIE1JTEFOCitHUlVKScSGIE1JTEFOCitHUlVKScSGIE1JTEVOQQorR1JVSknEhiBNSUxFTktPCitHUlVKScSGIE1JTEUKK0dSVUpJxIYgTUlMSUNBCitHUlVKScSGIE1JTE/FoAorR1JVSknEhiBNSUxPxaAKK0dSVUpJxIYgTUlMT1JBRAorR1JVSknEhiBNSUxPUkFECitHUlVKScSGIE1JUkpBTkEKK0dSVUpJxIYgTUlST1NMQVYgRElQTCBJTkcKK0dSVUpJxIYgTUlST1NMQVYKK0dSVUpJxIYgTUlUQVIKK0dSVUpJxIYgTkFEQSBEUiBMRUtBUgorR1JVSknEhiBOQURBCitHUlVKScSGIE5BREEKK0dSVUpJxIYgTkVERUxKS08KK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTk9WQUsKK0dSVUpJxIYgUEFWTEUKK0dSVUpJxIYgUEVUQVIKK0dSVUpJxIYgUkFERU5LTworR1JVSknEhiBSQURFCitHUlVKScSGIFJBREnFoEEKK0dSVUpJxIYgUkFESU5LQQorR1JVSknEhiBSQURJVk9KCitHUlVKScSGIFJBRElWT0oKK0dSVUpJxIYgUkFETUlMQQorR1JVSknEhiBSQURPSklDQQorR1JVSknEhiBSQURPVkFOCitHUlVKScSGIFJVxb1JQ0EKK0dSVUpJxIYgU0FOSkEKK0dSVUpJxIYgU0FWQQorR1JVSknEhiBTQVZBCitHUlVKScSGIFNJTknFoEEKK0dSVUpJxIYgU0xBVknFoEEKK0dSVUpJxIYgU0xBVklDQQorR1JVSknEhiBTTEFWS0EKK0dSVUpJxIYgU0xBVktPCitHUlVKScSGIFNMT0JPREFOIERJUEwgSU5HCitHUlVKScSGIFNMT0JPREFOCitHUlVKScSGIFNMT0JPREFOCitHUlVKScSGIFNMT0JPREFOCitHUlVKScSGIFNMT0JPREFOCitHUlVKScSGIFNNSUxKQU5BCitHUlVKScSGIFNNSUxKQQorR1JVSknEhiBTTUlMSkEKK0dSVUpJxIYgU1LEkEFOCitHUlVKScSGIFNURVZBTgorR1JVSknEhiBTVEVWQU4KK0dSVUpJxIYgU1RFVkFOCitHUlVKScSGIFNURVZBTgorR1JVSknEhiBTVE9KQU4gRFIKK0dSVUpJxIYgU1ZFVE9aQVIKK0dSVUpJxIYgU1ZFVE9aQVIKK0dSVUpJxIYgVEFUSkFOQQorR1JVSknEhiBWRUxJTUlSCitHUlVKScSGIFZFUklDQQorR1JVSknEhiBWRVNFTElOCitHUlVKScSGIFZFU05BCitHUlVKScSGIFZPSklTTEFWCitHUlVKScSGIFpEUkFWS08KK0dSVUpJxIYgWkxBVElDQQorR1JVSknEhiBaTEFUSUNBCitHUlVKSU4gREFOSUNBCitHUlVKSU4gRFXFoEFOCitHUlVKSU4gTEpVQklDQQorR1JVSklOIE1JTEFOCitHUlVKSU4gTUlMT8WgCitHUlVKSU4gTkFEQQorR1JVSklOIE9MR0EKK0dSVUpJTiBQRVRBUgorR1JVSklOIFJBRE9TTEFWCitHUlVKSU4gU0HFoEEKK0dSVUpJTiBTTUlMSkEKK0dSVUpJTiBTUEFTT0pFCitHUlVKSU4gVEVSRVpBCitHUlVKSU4gWk9SQU4KK0dSVUpJTk9WScSGIERSQUdVVElOCitHUlVKSU5PVknEhiBaT1JLQQorR1JVSk9WScSGIEJSQU5JU0xBVgorR1JVSk9WScSGIE1JSEFKTE8KK0dSVUpPVlNLSSBMQVpBUgorR1JVTE9WScSGIFJBRE9KS0EKK0dSVUxPVknEhiBaREVOS08KK0dSVUxPVknEhiBaRFJBVktBCitHUlVMT1ZJxIYgWkRSQVZLTworR1JVTsSMScSGIEpPVkFOCitHUlVOSUsgVkxBRElNSVIgRFIKK0dVxaBBIE5JS09MQQorR1XFoEEgUFJFRFJBRworR1XFoEFWQUMgWk9SQU4KK0dVxaBJxIYgQk9HREFOCitHVcWgScSGIEJPUklTCitHVcWgScSGIE1BTk9KTE8KK0dVxaBJxIYgTUFOT0pMTworR1XFoEnEhiBNSUxFTktBCitHVcWgScSGIFJBREVOS08KK0dVxaBJxIYgUkFERU5LTworR1XFoEnEhiBVR0xKRcWgQQorR1XFoEnEhiBWQVNJTEpLQQorR1XFvUFMScSGIE1BUklKQQorR1XFvUFMScSGIFNUSkVQQU4KK0dVxb1BTEnEhiBWTEFESU1JUgorR1XFvUFMScSGIFpWT05JTUlSCitHVcW9RUxBIExBU0xPCitHVcW9VkFOSiBJVklDQQorR1XFvVZJQ0EgxJBPUsSQRQorR1XFvVZJQ0EgxJBPUsSQRQorR1XFvVZJQ0EgQlJBTklTTEFWCitHVcW9VklDQSBNSUxBTgorR1XFvVZJQ0EgTUlMQU4KK0dVxb1WSUNBIE1JUktPCitHVcW9VklDQSBOSUtPTEEKK0dVxb1WSUNBIFNURVZPCitHVcW9VklDQSBaT1JBTgorR1VCQcWgIEFOxJBFTElKQQorR1VCQcWgIE1JUk9TTEFWCitHVUJBxaAgVkxBRElNSVIKK0dVQkHFoCBaQUdPUktBCitHVUJBTkRBIEJBUkJBUkEKK0dVQkFOREEgTEFESVNMQVYKK0dVQkVSSU5BIERVxaBBTgorR1VCRVJJTkEgU0xPQk9EQU4KK0dVQkVSSU5JxIYgTEpVQklDQQorR1VCRVJOT1YgSlVMSUpBTkEKK0dVQknEhiBNSVJLTworR1VCSUNBIEpPVkFOCitHVUJJSyDFoEFORE9SCitHVUJJSyDFoEFORE9SCitHVUJJSyBLQVJMTworR1VCSUsgS0FUQVJJTkEKK0dVQklLIFNURVZBTgorR1VDIFNURVZBTgorR1VDSUpBTiBTVEVWQQorR1VDVSBNSVJKQU5BCitHVUNVTEogSkVMRU5BCitHVUNVTEogTUFSR0lUQQorR1VDVUxKIFZFUkEKK0dVQ1VOSkEgSk9WQU4KK0dVQ1VOSkEgTUlMQU4KK0dVQ1VOSkEgTUlMT1JBRAorR1VDVU5KQSBNSUxPUkFECitHVUNVTlNLSSDFvUlWS0EKK0dVQ1VOU0tJIMSQT1LEkEUKK0dVQ1VOU0tJIEJPxb1JREFSCitHVUNVTlNLSSBCT1JJU0xBVgorR1VDVU5TS0kgQlJBTklTTEFWCitHVUNVTlNLSSBJVkFOS0EKK0dVQ1VOU0tJIElWQU5LQQorR1VDVU5TS0kgSkVMRU5BCitHVUNVTlNLSSBKT1ZBTgorR1VDVU5TS0kgTUFSSUpBCitHVUNVTlNLSSBOQURBCitHVUNVTlNLSSBQRVJTSURBCitHVUNVTlNLSSBSQURFCitHVUNVTlNLSSBTSU1BCitHVURBTEogTUFSVEEKK0dVREFMT1ZJxIYgTU9NSVIKK0dVREFMT1ZJxIYgUkFETUlMQQorR1VERUxKIMSQT1LEkEUKK0dVREVMSiBCUkFOSVNMQVYgRElQTCBJTkcKK0dVREVMSiBKT1ZBTgorR1VERUxKIE1BUklKQQorR1VERUxKIE1JTEFOCitHVURFTEogTUlMRU5BCitHVURFTEogTU9NxIxJTE8KK0dVREVMSiBORURFTEpLQQorR1VERUxKIFNBVkEgRFIKK0dVRE9WScSGIERSQUdPTUlSCitHVURPVknEhiBQQVZMRQorR1VET1ZJxIYgUkFETUlMQQorR1VET1ZJxIYgU1RFVkFOCitHVURVUknEhiBBTEVLU0FOREFSCitHVURVUknEhiBBTsSQRUxLQSBEUgorR1VEVVJJxIYgQlJBTklNSVIgRFIKK0dVRFVSScSGIERFSkFOCitHVURVUknEhiBKT1ZBTgorR1VEVVJJxIYgU1ZFVElTTEFWCitHVURVUknEhiBWQVNBCitHVURVUknEhiBaT1JBTgorR1VFTE1JTk8gxaBBTkRPUgorR1VFTE1JTk8gRlJJxJBFxaAKK0dVR0EgVkVSQQorR1VHQSBWRVJBCitHVUdJxIYgU0lOScWgQQorR1VHTEVUQSBTUkJJU0xBVgorR1VLT0RJIE1MQURFTgorR1VMQcSMSSBKT1NJUAorR1VMQcSGSSBMSlVCSU5LQQorR1VMQU4gQk/FoEtPCitHVUxBTiBCUkFOSVNMQVYKK0dVTEFOIFZJRE9TQVZBCitHVUxEIFZBTEVSSUpBCitHVUxFVknEhiBUQVRKQU5BCitHVUxFVknEhiBWTEFESU1JUiBEUiBMRUtBUgorR1VMRVZTS0kgRElNxIxFCitHVUxFVlNLSSBESU3EjEUKK0dVTEVWU0tJIERJTcSMRQorR1VMRVZTS0kgRElNxIxFCitHVUxFVlNLSSBESU3EjEUKK0dVTEVWU0tJIE1JSEFKTE8KK0dVTEVWU0tJIFNBxaBBCitHVUxJxIwgSU1SRQorR1VMScSGIFNUQU5LTworR1VMScSGIFZFU05BCitHVUxJTiBNQVJJQ0EKK0dVTElOIFpMQVRLTworR1VMSkHFoCBNQVJJSkEKK0dVTEpBxaAgVEVSRVpJSkEKK0dVTEpBxaAgVkVTTkEKK0dVTEpQQSBNSUxBTgorR1VMSlBBIFNBVkEKK0dVTkVLIE1BUklKQQorR1VORUsgTUFURQorR1VORUsgVE9NQQorR1VOScSGIE1JTEVOQQorR1VOSkVWScSGIE1JTEUKK0dVTkpFVknEhiBORVZFTktBCitHVVJBTiBUQU1BxaAKK0dVUkpBTk9WIMW9QVJLTworR1VSSkFOT1YgQkxBR09KRQorR1VSSkFOT1YgSkVMSUNBCitHVVJKQU5PViBWQVNBCitHVVJPVknEhiBCT8W9SURBUgorR1VTScSGIE1JTEVWQQorR1VTTUFOIMSQT1LEkEUgRFIgTEVLQVIKK0dVU01BTiBEUkFHSUNBCitHVVNNQU4gR0VSSEFSRAorR1VTTUFOIEhJTERBCitHVVNNQU4gSU1SRQorR1VUIEpBTktPCitHVVQgSk9WQU4KK0dVVCBOQVRBTElKQQorR1VUQUkgSk9MQU4KK0dVVEFJIE1JSEFMSgorR1VUQUpJIElMRcWgCitHVVRBTEogTUlMT1JBRAorR1VURcWgQSDEkFVSTworR1VURcWgQSBNSVJLTworR1VURcWgQSBOSUtPTEEKK0dVVEXFoEEgVk9KSVNMQVYKK0dVVEkgxb1PTFQKK0dVVEnEhiDFoFBJUk8KK0dVVEnEhiBHT1JBTgorR1VUTUFOIEFMRUtTQU5EQVIKK0dVVE1BTiBEQVJJTktPCitHVVRPVknEhiBBTsSQRUxLTworR1VUT1ZJxIYgREFOSUVMQQorR1VUT1ZJxIYgTUlMRU5LTworR1VUT1ZJxIYgUkFERQorR1VUT1ZJxIYgUklTVE8KK0dVVE9WScSGIFNJTknFoEEKK0dVVE9WScSGIFNORcW9QU5BCitHVVRPVknEhiBaT1JBTgorR1VUVkFKTiBBREFNCitHVVRWQUpOIEFEQU0KK0dVVFZBSk4gRUxJWkFCRVRBCitHVVRWQUpOIEVWQQorR1VaSUpBTiBKT1ZPCitHVVpJSkFOIE1JTEFOCitHVVpJSkFOIE5JS09MQQorR1VaSU5BIMSMRURPTUlSCitHVVpJTkEgTEpVQklTQVYKK0dVWklOQSBNSUhBSkxPCitHVVpJTkEgTUlMT1JBRAorR1VaSU5BIE1JTE9SQUQKK0dVWklOQSBNSUxPU0FWIERSCitHVVpJTkEgVkxBRElNSVIKK0dVWklOQSBWT0pJU0xBVgorR1VaSU5BIFZVS0HFoElOCitHVkVSScSGIEJPUklWT0oKK0dWRVJJxIYgU05Fxb1BTkEKK0dWRVJPIExBWk8KK0dWRVJPIE1JUkEKK0dWT8W9xJBBTiBCT1JJU0xBVkEKK0dWT8W9xJBBTiBNSUhBSkxPCitHVk/FvcSQQU4gUkFET1ZBTgorR1ZPScSGIEJSQU5LTworR1ZPScSGIE1JTEFOCitHVk9JxIYgVkFMRVJJSkEKK0dWT0pJxIYgQk9SSVNMQVYKK0dWT0pJxIYgTUlMQU4KK0dWT0pJxIYgU1RBTktPCitHVk9KScSGIFNURVZBTgorR1ZPS0EgTkFEQQorR1ZPWkRFTiBCT1NJTEpLQQorR1ZPWkRFTiBCUkFOS08KK0dWT1pERU4gU1JFVE8KK0dWT1pERU4gVkxBRElNSVIKK0dWT1pERU5BQyDFvUlWS08KK0dWT1pERU5BQyBCT1JBCitHVk9aREVOQUMgQk9SQQorR1ZPWkRFTkFDIEJPUktBCitHVk9aREVOQUMgRFJBR09MSlVCCitHVk9aREVOQUMgRFXFoEFOCitHVk9aREVOQUMgUkFKS08KK0dWT1pERU5BQyBTTkXFvUFOQQorR1ZPWkRFTk9WIEpPVkFOCitHVk9aREVOT1YgTUlMQU4KK0dWT1pERU5PVknEhiDFvUlWT1JBRAorR1ZPWkRFTk9WScSGIMSQT1LEkEUKK0dWT1pERU5PVknEhiDEkFVSTworR1ZPWkRFTk9WScSGIEJPxb1PCitHVk9aREVOT1ZJxIYgQlJBTktPCitHVk9aREVOT1ZJxIYgQlJBTktPCitHVk9aREVOT1ZJxIYgREVKQU4KK0dWT1pERU5PVknEhiBEUkFHSU5KQQorR1ZPWkRFTk9WScSGIERVxaBBTiBEUgorR1ZPWkRFTk9WScSGIERVxaBBTgorR1ZPWkRFTk9WScSGIEVNSUxJSkEKK0dWT1pERU5PVknEhiBMSklMSkFOQQorR1ZPWkRFTk9WScSGIExKVUJPCitHVk9aREVOT1ZJxIYgTUnEhk8KK0dWT1pERU5PVknEhiBNSUxJVk9KRQorR1ZPWkRFTk9WScSGIE1JTE/FoAorR1ZPWkRFTk9WScSGIE1JUktPCitHVk9aREVOT1ZJxIYgTUlST1NMQVYKK0dWT1pERU5PVknEhiBNSVJPU0xBVgorR1ZPWkRFTk9WScSGIE5JS09MQQorR1ZPWkRFTk9WScSGIFBFVEFSCitHVk9aREVOT1ZJxIYgUkFKS08KK0dWT1pERU5PVknEhiBSQUpLTworR1ZPWkRFTk9WScSGIFJBSktPCitHVk9aREVOT1ZJxIYgU1RFVk8KK0dWT1pERU5PVknEhi1UT0RPUk9WScSGIFpBR09SS0EKK0dWT1pERU5PVknEhi1UT0RPUk9WScSGIFpBR09SS0EKK0dWT1pERU5PVknEhiBWSURBCitHVk9aREVOT1ZJxIYgVklUT01JUgorR1ZPWkRFTk9WScSGIFZMQURBCitHVk9aREVOT1ZJxIYgVkxBREEKK0dWT1pERU5PVknEhiBaT1JJQ0EKK0dWT1pEScSGIMSQT1LEkEUKK0dWT1pEScSGIE1JTEFOCitIQcWgT1ZJxIYgQU5EUklKQQorSEHFoE9WScSGIElNUkUKK0hBxJBJTkFDIEJSQU5JU0xBVgorSEFCQcWgIFpPUkFOCitIQUJBSkVDIExKVUJJQ0EKK0hBQkVLIMW9RUxKS08KK0hBQkVOxaBVUyBNSUxFTktPCitIQUJFTsWgVVMgTUlMRU5LTworSEFCSUpBTiBGUkFOSkEKK0hBQklKQU4gVkVTTkEKK0hBQklKQU5FQyBUSUhPTUlSCitIQUJPUiBKQU4KK0hBQlJBTSBBUkFOS0EKK0hBQlJBTSBLQVJPTEoKK0hBQlVEQSBKT1NJUAorSEFCVURBIFZBTEVOVElOCitIQUNPUFVMT1MgxJBPUsSQRQorSEFDT1BVTE9TIE5BREEKK0hBRMW9SSBBTEVLU0FOREFSCitIQUTFvUkgS09TVEEgQURWT0tBVAorSEFExb1JLU1BTk9WIExKVVDEjE8KK0hBRMW9SS1QQVZMT1ZJxIYgT0xHQQorSEFExb1JIFJBTUFEQU4KK0hBRMW9ScSGIEJPU0lMSktBCitIQUTFvUnEhiBHT1JBTktBCitIQUTFvUnEhiBJQlJBSElNCitIQUTFvUnEhiBJU01FVAorSEFExb1JxIYgTEFaQVIKK0hBRMW9ScSGIExBWkFSCitIQUTFvUnEhiBNSUxBTiBEUgorSEFExb1JxIYgTUlMRVZBCitIQUTFvUnEhiBNT05JS0EKK0hBRMW9ScSGIE1VSEFSRU0KK0hBRMW9ScSGIE5BREEKK0hBRMW9ScSGIE9MR0EgRFIKK0hBRMW9ScSGIFBBVkxFCitIQUTFvUnEhiBSQURJVk9KCitIQUTFvUnEhiBTTEFWVUoKK0hBRMW9ScSGIFZMQURJTUlSCitIQUTFvUlBSE1FVE9WScSGIFJBU0lNCitIQUTFvUlBUlNJxIYgRE9CUklWT0pFCitIQUTFvUlCQUJJxIYgRFJBR0FOCitIQUTFvUlCQUJJxIYgUkFET01JUgorSEFExb1JQkFCScSGIFJBRE9NSVIKK0hBRMW9SUJBQknEhiBaT1JJQ0EKK0hBRMW9SUhBU0FOT1ZJxIYgUkFETUlMQQorSEFExb1JVlVLT1ZJxIYgU1RFVkFOIERSIFBST0YKK0hBRMW9T1ZJxIYgSkVMSVNBVkVUQQorSEFExb1PVknEhiBSQVRLTworSEFEQURJIFNNSUxKQQorSEFESUsgQURSSUVOCitIQURJSyBKT8W9RUYKK0hBRE5BxJAgR0laRUxBCitIQUROQcSQIFRFUkVaQQorSEFETkHEkCBWRVJBCitIQUROQcSQIFZFUk9OSUtBCitIQUROQcSQRVYgQVJTRU4KK0hBRE5BxJBFViBEVcWgQU4gRFIKK0hBRE5BxJBFViBEVcWgQU4KK0hBRE5BxJBFViBJU0lET1IKK0hBRE5BxJBFViBNSU9EUkFHCitIQUROQcSQRVYgTUlSS08KK0hBRE5BxJBFViBTVEFOSVNMQVYKK0hBRE5BxJBFViBTVEVWQU4KK0hBRE5BxJBFViBTVE9KQU4KK0hBSU4gQlJBTklTTEFWCitIQUlOIFpPUklDQQorSEFKxIxVTksgSk/FvUVGCitIQUrEjFVOSyBNSVJLTworSEFKQcWgIEpFTElTQVZFVEEKK0hBSkRBUkVWScSGIE9SSEFOCitIQUpEQVJQQcWgScSGIEVTQUQKK0hBSkRFUiDEkE9SxJBFCitIQUpERVIgRFJBR0FOCitIQUpERVIgTFVLQQorSEFKREVSIE1BUklDQQorSEFKREVSIE1BUktPCitIQUpERVIgTUlMT8WgCitIQUpERVIgUkFERQorSEFKREVSIFJBSktPCitIQUpERVIgU1RPSkFOS0EKK0hBSkRFUiBWRVNOQQorSEFKREVSIFpPUkFOCitIQUpEScSGIEFOxJBFTEtPCitIQUpESU4gQk9HREFOCitIQUpESU4gU0xBVktPCitIQUpEVSBBTkEKK0hBSkRVIEFORFJJSkEKK0hBSkRVIEFOVEFMCitIQUpEVSBGRVJFTkMKK0hBSkRVLUdSQUpMQUggRU1BCitIQUpEVSBJTE9OS0EKK0hBSkRVIElSRU5BCitIQUpEVSBKT8W9RUYKK0hBSkRVIEpPTElLQQorSEFKRFUgSk9TSVAKK0hBSkRVIEtBVElDQQorSEFKRFUgS0xBUkEKK0hBSkRVIExBSk/FoAorSEFKRFUgTEFTTE8KK0hBSkRVIExKVURFVklUCitIQUpEVSBNQVJJSkEKK0hBSkRVIE9UTworSEFKRFUgUEFWTEUKK0hBSkRVIFNURVZBTgorSEFKRFVLIMSQT1LEkEUKK0hBSkRVSyBJUklOQQorSEFKRFVLIEpBTktPCitIQUpEVUtPVknEhiBBUlNFTgorSEFKRFVLT1ZJxIYgQk/FoEtPCitIQUpEVUtPVknEhiBCT0dEQU4KK0hBSkRVS09WScSGIERFU0FOS0EKK0hBSkRVS09WScSGIERVxaBBTgorSEFKRFVLT1ZJxIYgSk9WQU5LQQorSEFKRFVLT1ZJxIYgTEpJTEpBTkEKK0hBSkRVS09WScSGIE1JTEFOS0EKK0hBSkRVS09WScSGIE1JTEFOCitIQUpEVUtPVknEhiBOQURFxb1EQQorSEFKRFVLT1ZJxIYgT1RPCitIQUpEVUtPVknEhiBSQURPU0xBViBESVBMIElORworSEFKRFVLT1ZJxIYgU01JTEpBCitIQUpOQUwgQU5UQUwKK0hBSk5BTCBHQUJSSUpFTEEKK0hBSk5BTCBJVkFOCitIQUpOQUwgTEFTTE8KK0hBSk5BTCBMSlVCSUNBCitIQUpOQUwgTUFSSUpBCitIQUpOQUwgTklLT0xBCitIQUpOQyDEkE9SxJBFCitIQUpOQyBKT1NJUAorSEFKTkMgSk9WQU4KK0hBSk5DIFpMQVRBCitIQUpURk9HRUwgVkxBREEKK0hBSlRGT0dFTCBWTEFESVNMQVYKK0hBSlRMIElWQU4KK0hBSlZBWiBSQUpLTworSEFKWkxFUiDEkE9SxJBFCitIQUpaTEVSIERVxaBBTgorSEFKWkxFUiBKT1ZBTgorSEFLQcSMIE1BVElKQQorSEFLRVIgSVZBTgorSEFLRVIgVEVSRVpBCitIQUxBxaAgWlVaQU5BCitIQUxBxaBJIMSQT1LEkEUKK0hBTEHFoEkgRVRFTEtBCitIQUxBxaBJLUtJxaAgRlJBTktBCitIQUxBxaBJIFJVxb1BIERSIElORworSEFMQUkgSU1SRQorSEFMQUkgTUFSSUpBCitIQUxBSSBQRVRBUgorSEFMQUkgU0FCT0zEjAorSEFMQVBJIERSQUdJQ0EKK0hBTEFQSSBJUkVOQQorSEFMQVBJIElWQU4KK0hBTEFTIMWgQU5ET1IKK0hBTEFTIEZSQU5KQQorSEFMQVMgTUFSSUpBCitIQUxBVkFOSkEgxb1FTEpLTworSEFMQVZBTkpBIExKVUJBTgorSEFMQVZBTkpBIE1JTEFOCitIQUxBVkFOSkEgUkFERQorSEFMQVZBTkpBIFNURVZBCitIQUxFUiBTVEVWQU4KK0hBTElMT1ZJxIYgTVVIQVJFTQorSEFMSU0gU0VGRVIKK0hBTFVQS0EgSk/FvUVGIERSCitIQU0gQUxFS1NBTkRBUgorSEFNVSBNSUhBTEoKK0hBTVpJxIYgTUlMRU5BCitIQU4gU09GSUpBCitIQU5DS08gSk/FvUVGIERSCitIQU5DS08gSk/FvUVGIERSCitIQU5EQSBLQVRJQ0EKK0hBTkcgTUFURUoKK0hBTkcgVkxBVEtPCitIQU5HQSBBTlRVTgorSEFOR0EgQU5UVU4KK0hBTkdBIE1BUklKQQorSEFOR09WU0tJIEFORFJJSkEKK0hBTlNLTyBKT1NJUAorSEFOU0tPIFNURVZBTgorSEFOVcWgScSGIFNFQUQKK0hBUkHEjEnEhiBExb1FTUFMCitIQVJBxIxJxIYgTEpVQklDQQorSEFSQUsgUEFWTEUKK0hBUkFNQkHFoEnEhiBCT8W9QU5BCitIQVJBTUlKQSBNQVJJSkEKK0hBUkFOR09aTyDFoEFORE9SCitIQVJBTkdPWk8gxaBBTkRPUgorSEFSQU5HT1pPIMWgQVJJS0EKK0hBUkFOR09aTyBCQUxJTlQKK0hBUkFOR09aTyBCT8WgS08KK0hBUkFOR09aTyBFUsW9RUJFVAorSEFSQU5HT1pPIEVSxb1FQkVUCitIQVJBTkdPWk8gScWgVFZBTgorSEFSQU5HT1pPIElNUkUKK0hBUkFOR09aTy1KRUdSScWgS0kgTUFSSUpBCitIQVJBTkdPWk8gS0FST0xKCitIQVJBTkdPWk8tVE9SSSDFvVXFvUFOQQorSEFSQU5HT1pPLVRPUkkgxJBVUkEKK0hBUkFOR09aTy1UT1JJIEJPxb1JREFSCitIQVJBTkdPWk8tVE9SSSBJUklOQQorSEFSQU5HT1pPLVRPUkkgSVZBTgorSEFSQU5HT1pPLVRPUkkgSk9BS0lNCitIQVJBTkdPWk8tVE9SSSBKT1ZBTgorSEFSQU5HT1pPLVRPUkkgSk9WQU4KK0hBUkFOR09aTy1UT1JJIExKVUJJQ0EKK0hBUkFOR09aTy1UT1JJIE5FU1RPUgorSEFSQU5HT1pPLVRPUkkgTklLT0xBCitIQVJBTkdPWk8tVE9SSSBTSUxWRVNURVIKK0hBUkFOR09aTy1UT1JJIFNUT0pBTktBCitIQVJBTkdPWk8tVE9SSSBWRVNOQQorSEFSQU5HT1pPLVRPUkkgVkxBRElNSVIKK0hBUkFOR09aTy1UT1JJIFZMQURJTUlSCitIQVJGTUFOIE1BUkEKK0hBUkhBSSDFvUVMSktPCitIQVJIQUkgQk/FvUFOQQorSEFSSEFJIEpBTktPCitIQVJIQUpJIEhFTEVOQQorSEFSSEFKSSBKQU5LTworSEFSSEFKSSBKT0FLSU0KK0hBUkhBSkkgSk9BS0lNCitIQVJIQUpJIExKVUJPTUlSCitIQVJIQUpJIExKVUJPTUlSCitIQVJIQUpJIE1JUk9OCitIQVJIQUpJIE5JS09MQQorSEFSSEFKSSBWTEFESU1JUgorSEFSSEFKSSBWTEFESU1JUgorSEFSScWgIEpFTElTQVZFVEEKK0hBUknFoCBKRUxJU0FWRVRBCitIQVJJxaAgTEpVQklWT0pFCitIQVJJxaAgUElST8WgS0EKK0hBUklKQU4gxaBURUZJQ0EKK0hBUktBSSBTVEVWQU4KK0hBUk1BVCBLT05SQUQKK0hBUlBBTkogTUlIQUwKK0hBUlQgTUFSR0lUQQorSEFSVElHIElSRU5BCitIQVJUSUcgVElCT1IKK0hBUlRNQU4gS0FUQVJJTkEKK0hBUlRNQU4gVkVTTkEKK0hBUyBBTEVLU0FOREFSCitIQVMgS0FSTE8KK0hBUyBNQVJUQQorSEFTIE1JTElDQQorSEFTQU5BR0nEhiBFU05BRgorSEFTQU5BR0nEhiBNSUxBTgorSEFTRU5BVUVSIEpPU0lQCitIQVNJxIYgRMW9RU1BTAorSEFUQUxBIE1BVEUKK0hBVEFMQSBaT0xUQU4KK0hBVUcgQU5JQ0EKK0hBVUsgUk9CRVJUCitIQVVQVE1BTiBTTEFWS08KK0hBVVJEScSGIFJBQklKQQorSEFVU0VSIEhJTERBCitIQVVaRVIgT1NLQVIKK0hBVVpMT0hORVIgSVJFTkEKK0hBVkpBUiBWRUxJWkFSCitIQVZMRUsgRlJBTkpBCitIQVZMRUsgSk9TSVAKK0hBVlJBTiBaTEFUS08KK0hBVlpJIMWgRVJJRgorSEFWWkkgTElNQU4KK0hFxJBFxaAgSkFOT8WgCitIRcSQRUxBSSBTVEVWQU4KK0hFxJBJIEFMRUtTQU5EQVIKK0hFxJBJIE1JTElDQQorSEVERcWgIEpBTk/FoAorSEVHRURJxaAgxJBFUsSQCitIRUdFREnFoCBCRUxBCitIRUdFREnFoCBCRVJUQQorSEVHRURJxaAgR0VaQQorSEVHRURJxaAgScWgVFZBTgorSEVHRURJxaAgSk/FvUVGCitIRUdFREnFoCBKT0hBTkEKK0hFR0VEScWgIEpPWkVGSU5BCitIRUdFREnFoCBURVJFWklKQQorSEVHRURJxaAgWk9MVEFOCitIRUdFRFXFoCBLQVJPTElOQQorSEVJTSBNQUdEQQorSEVLScSGIFNMQVZJQ0EKK0hFTEVSIEdBQlJJSkVMCitIRUxFUiBJTkdSSUQKK0hFTSBKQU5PxaAKK0hFTUkgQU5JQ0EKK0hFTUkgVkxBRElTTEFWCitIRU1PTiBCT1JJUworSEVNT04gTUFSSUpBCitIRU1PTiBTTEFWSUNBCitIRU1PTiBURVJFWklKQQorSEVNT04gVkxBRElNSVIKK0hFTU9OIFZMQURJTUlSCitIRU1SSUggS0xBUkEKK0hFTVVOIE1JSEFKTE8KK0hFTiDFvUVMSktPCitIRU4gSVZJQ0EKK0hFTiBNQVJJSkEKK0hFTkdMIERBTUpBTgorSEVOR0wgSk9WQU4KK0hFTkdMIFJJSEFSRAorSEVOScWgIFZJTE1BCitIRU5LRUwgRklMSVAKK0hFUCBNQUtTSU0KK0hFUsSMSUsgUk9CRVJUCitIRVJBSyBJVkFOCitIRVJBSyBTVEFOSVNMQVYKK0hFUkFLT1ZJxIYgQUxFS1NBTkRBUgorSEVSQUtPVknEhiBCUkFOSVNMQVYKK0hFUkFLT1ZJxIYgU0xPQk9EQU4KK0hFUkJFWiBNSUxFTktPCitIRVJCU1QgQU5UVU4KK0hFUkJVVCDEkE9SxJBFCitIRVJCVVQgR0FCT1IKK0hFUkJVVCBKT8W9RUYKK0hFUkJVVCBLQVJPTEoKK0hFUkJVVCBLSVJJTAorSEVSQlVUIE1JSEFKTE8KK0hFUkJVVCBTSUxWRVNURVIKK0hFUkNFRyDEkE9SxJBFCitIRVJDRUcgRFJBR09TTEFWCitIRVJDRUcgS0FSTE8KK0hFUkNFTkJFUkdFUiDEkFVMQQorSEVSQ0VOQkVSR0VSIEFMRUtTQU5EQVIKK0hFUkNFTkJFUkdFUiBBTEVLU0FOREFSCitIRVJDRU5CRVJHRVIgR0laRUxBCitIRVJDRU5CRVJHRVIgSVJFTgorSEVSQ09HIMSQT1LEkEUKK0hFUkRJIEpPU0lQCitIRVJESSBMSklMSkFOQQorSEVSREktU1RPSkFOT1ZJxIYgQU5HRUxJTkEKK0hFUkVOxIxJxIYgTEVPUE9MRAorSEVSRU5ESUpBIMSQT1LEkEUKK0hFUkVORElKQSBNQVJLTworSEVSRVRBIFNMT0JPREFOCitIRVJHRVQgS0FUSUNBCitIRVJJxIYgTUlIT1ZJTAorSEVSSU5HIEFNQUxJSkEKK0hFUklORyBJVkFOCitIRVJNQU4gxIxJTEEKK0hFUk1BTiBBTsSQQQorSEVSTUFOIElWQU4KK0hFUk1BTiBLQVJMTworSEVSTUFOIFZJTElNCitIRVJPUiBMQVpBUgorSEVSUEtBIERVQlJBVktBCitIRVJQS0EgSVZBTiBEUiBJTkcKK0hFUlRMIEpPxb1FRgorSEVSVEwgTkFEQQorSEVTIMWgQU5ET1IKK0hFUyBMQVNMTworSEVTS08gVklLVE9SSUpBCitIRVZFUiBNQVJHSVRBCitIRVZFUiBQQVZMRQorSEVWRVJBIE1JSEFKTE8KK0hFVkVSQSBaVVpBTkEKK0hFVklaSSBJTE9OQQorSEVWSVpJIFBFVEFSCitIScSGSUwgQUxFS1NBTkRBUgorSEnEhklMIEpPU0lQCitIScSGSUwgS0FUQVJJTkEKK0hJxb1BIEpPVkFOCitIScW9QSBNScWgQQorSElCxaAgTUFSSUpBCitISULFoCBSSUhBUkQgU1VESUpBCitISULFoCBUQU5LUkVECitISUVMIEtTRU5JSkEKK0hJTCBKT1NJUAorSElMIFZFUkEKK0hJTElFUi1LT0xBUk9WIFZBTEVSSUpBIERSCitISUxJRVIgTEFKT8WgIERJUEwgSU5HCitISU5JxIYgxJBPUsSQRQorSElOScSGIEJSQU5LTworSElOScSGIE1BTkUKK0hJTknEhiBNSUxJQ0EKK0hJTknEhiBQUkVEUkFHCitISVBJSyDFoFRFRkFOQQorSElQSUsgSk9WQU4KK0hJUElLIEtBUkxPCitISVLFoCBTVEpFUEFOCitISVLFoEVOQkVSR0VSIE1BUlRBCitISVLFoEVOQkVSR0VSIFNURVZBTiBESVBMIElORworSElSxaBNQU4gQU5UVU4KK0hJUkpPVkFUSSBMSlVCSUNBCitISVJKT1ZBVElKIE1JUk9OCitISVJNQU4gRlJBTkpBCitISVJNQU4gWk9MVEFOCitISVRFTkJFUkdFUiDEkE9SxJBFCitISVRJIEZSQU5DCitISVRMIEVMSVpBQkVUQQorSElUTCBTVEVWQU4KK0hMQcSQSUsgWlZPTktPCitITEFETkkgSVZBTgorSExBRE5JIFNMQVZLTworSExBUEVDIFNUSkVQQU4KK0hMQVZTQSBTTEFWSUNBCitITEVCRUMgTk9SQkVSVAorSExPxb1BTiBKT1ZBTgorSE1JTEogSUxJSkEKK0hOQVRLTyBNScWgS08KK0hPxIxLTyBBSkVUCitIT8WgRUsgxIxBQkEKK0hPxaBFSyBGUkFOSkEKK0hPQlJBVCBNQVJUQQorSE9Exb1BIFJBTUFEQU4KK0hPRMW9ScSGIEhBTElECitIT0TFvUnEhiBPTUVSCitIT0TFvUnEhiBTVEFaQQorSE9EQSBNRUpSRU0KK0hPREFLIE1JTEUKK0hPREFLIFNJTFZFU1RBUgorSE9EQUsgU09GSUpBCitIT0RBSyBWRVJBCitIT0RBSyBWTEFESVNMQVYKK0hPREFSIEpPU0lQCitIT0RJIEVSTkUKK0hPREkgRVJORQorSE9ESSBGRVJFTkMKK0hPREkgVklMTUEKK0hPRElLIEJBUkJBUkEKK0hPRElOS0EgTUlIQUlMTworSE9ETklLIEFMT0paCitIT0RPQkEgREFOSUpFTEEKK0hPRE9MScSMIEpBTktPCitIT0RPTEnEhiBKQVJPU0xBVgorSE9GTUFOIEFMRUtTQU5EQVIKK0hPRk1BTiBBUlRVUgorSE9GTUFOIEJSVU5PCitIT0ZNQU4gRlJBTkpBCitIT0ZNQU4gTEFESVNMQVYKK0hPRk1BTiBNQVJJSkEKK0hPRk1BTiBWRVNOQQorSE9ITkpFQyBEQVJLTworSE9ITkpFQyBQRVRBUgorSE9ITkpFQyBWTEFESU1JUgorSE9MQ0VSIExBRElTTEFWCitIT0xFUkJBSCBLQVRJQ0EKK0hPTEkgQU5EUklKQSBNUiBQSAorSE9MSSBLQVRBUklOQQorSE9MScSMRUsgTEFTTE8KK0hPTEnEjEVLIE1BUkdJVAorSE9MScSMRUsgU1RFVkFOCitIT0xJR0EgS0FSTE8KK0hPTElHQSBTTkXFvUFOQQorSE9MSUdBIFNURVZBTgorSE9MSUsgSkFOS08KK0hPTElLIEpPQUtJTQorSE9MTyBMRU9OVElOQQorSE9MTyBWSUxNT8WgIERJUEwgSU5HCitIT0xPRCBTVEVWQU4KK0hPTE9ES09WIFZMQURJTUlSCitIT0xPVCBSVcW9QQorSE9MT1ZLQSBBTktBCitIT0xPVktBIEJSQU5LQQorSE9MT1ZLQSBOQVRBTElKQQorSE9MUEVSVCBFUk5FU1QKK0hPTFBFUlQgTFVKTworSE9NQSBBTkEKK0hPTUEgQk9TSUxKS0EKK0hPTUEgRVVHRU4KK0hPTUEgSkFOS08KK0hPTUEgSk9WR0VOCitIT01BIE1JUk9TTEFWCitIT01BIE5JS09MQQorSE9NQSBQRVRBUiBESVBMIElORworSE9NQSBWTEFESU1JUgorSE9NQSBWTEFESU1JUgorSE9NQSBWVUtJQ0EKK0hPTU9MSkEgSk/FvUVGCitIT1IgQk/FvUlDQQorSE9SIElMSUpBCitIT1IgUEFWTEUKK0hPUkFLIE1JSEFKTE8KK0hPUkFLIE5BTkRPUgorSE9SR0FTIEnFoFRWQU4KK0hPUkdBUyBNQVRJTERBCitIT1JHT8WgSSDEkFVMQQorSE9SR0/FoEkgS0FUQVJJTkEKK0hPUknEhiBKRUxJU0FWRVRBCitIT1JJxIYgS09TSU0KK0hPUk4gVkFMRU5USU4KK0hPUk5KQUsgxb1JVkEKK0hPUk5KQUsgxJBVUk8KK0hPUk5KQUsgRElNSVRSSUpFCitIT1JOSkFLIERJTUlUUklKRQorSE9STkpBSyBJVkFOCitIT1JOSkFLIEpBTk/FoAorSE9STkpBSyBKQU4KK0hPUk5KQUsgTUFHREFMRU5BCitIT1JOSkFLIE1JxaBBCitIT1JOSkFLIE1JUktPCitIT1JOSkFLIE9MR0EKK0hPUk5KQUsgUEVUQVIKK0hPUk5KQUstUFXFoEtBxaBPVkEgTUFSSUpBCitIT1JOSkFLIFNPRlJPTkEKK0hPUk5KQUsgU1RFVkFOCitIT1JOSkFLIFZMQURBCitIT1JOSkFLIFZMQURBCitIT1JOSkFLIFZMQURJTUlSCitIT1JOSklLIMWgQU5ET1IKK0hPUk5KSUsgxJBFUsSQCitIT1JOSklLIMSQRVLEkAorSE9STkpJSyBaT0xUQU4KK0hPUk5PSyBaT0xUQU4KK0hPUk5VTkctxaBPTUFOIMWgVEVGQU5JSkEKK0hPUk/FoElMT1YgU09GSUpBCitIT1JPxaBLTyBBTEVLU0FOREFSCitIT1JPxaBLTyBTVEVGQU4gRFIKK0hPUk9WSUMgRFJBR0lOSkEKK0hPUk9WSUMgVkxBRElNSVIKK0hPUlRJIERSQUdBTkEKK0hPUlRJIEdFWkEKK0hPUlRJIEpPU0lQCitIT1JUSSBWTEFESVNMQVYKK0hPUlZBQ0tJIE1BUktPCitIT1JWQUNLSSBTTkXFvUFOQQorSE9SVkFUIMWgQU5ET1IKK0hPUlZBVCDFoEFORE9SCitIT1JWQVQgxb1PTFQKK0hPUlZBVCDEkFVMQQorSE9SVkFUIMSQVVJBCitIT1JWQVQgQUdJCitIT1JWQVQgQUxFS1NBTkRBUgorSE9SVkFUIEFMRUtTQU5EQVIKK0hPUlZBVCBBTkRSQcWgCitIT1JWQVQgQU5EUklKQQorSE9SVkFUIEFOS0EKK0hPUlZBVCBBTlRBTAorSE9SVkFUIEFSUEFECitIT1JWQVQgQkVMQQorSE9SVkFUIEJJU0VSS0EKK0hPUlZBVCBERcW9RQorSE9SVkFUIERJTUlUUklKRQorSE9SVkFUIEVESVQKK0hPUlZBVCBFTElaQUJFVEEKK0hPUlZBVCBFUsW9RUJFVAorSE9SVkFUIEVSSUtBCitIT1JWQVQgRVNURVIKK0hPUlZBVCBGRVJFTkMKK0hPUlZBVCBGRVJFTkMKK0hPUlZBVCBGRVJFTkMKK0hPUlZBVCBGRVJFTkMKK0hPUlZBVCBGUkFOSkEKK0hPUlZBVCBGUkFOSkEKK0hPUlZBVCBGUkFOSk8KK0hPUlZBVCBHQUJPUgorSE9SVkFUIEdJWkVMQQorSE9SVkFUIEdST1pEQU5BCitIT1JWQVQgScWgVFZBTgorSE9SVkFUIElHT1IKK0hPUlZBVCBJR09SCitIT1JWQVQgSUxPTktBCitIT1JWQVQgSU1SRQorSE9SVkFUIElNUkUKK0hPUlZBVCBJTVJFCitIT1JWQVQgSVJFTkEKK0hPUlZBVCBJUkVOS0EKK0hPUlZBVCBJVkFOS0EKK0hPUlZBVCBJVkFOCitIT1JWQVQgSkFOT8WgIERJUEwgSU5HCitIT1JWQVQgSkFOT8WgCitIT1JWQVQgSkVMRU5BCitIT1JWQVQgSk/FvUVGCitIT1JWQVQgSk/FvUVGCitIT1JWQVQgSk/FvUVGCitIT1JWQVQgSk9TSVAKK0hPUlZBVCBKT1NJUAorSE9SVkFUIEpPU0lQCitIT1JWQVQgSk9TSVAKK0hPUlZBVCBKT1NJUAorSE9SVkFUIEpPVkFOCitIT1JWQVQgS0FMTUFOCitIT1JWQVQgS0FSTE8KK0hPUlZBVCBLQVJMTworSE9SVkFUIEtBUkxPCitIT1JWQVQgS0FST0xKCitIT1JWQVQgS0FUQUxJTgorSE9SVkFUIEtBVEFSSU5BCitIT1JWQVQgS0FUSUNBCitIT1JWQVQgS0FUSUNBCitIT1JWQVQgTEFKT8WgCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMQVNMTworSE9SVkFUIExBU0xPCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMQVNMTworSE9SVkFUIExBU0xPCitIT1JWQVQgTFVEVklHCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFSSUpBCitIT1JWQVQgTUFUTworSE9SVkFUIE1JSEFMSgorSE9SVkFULU1JTElUScSMSSBLQVJPTEogRFIKK0hPUlZBVCBNSUxLQQorSE9SVkFUIE1JTEtBCitIT1JWQVQgTUlMT1NMQVYKK0hPUlZBVCBNSVJLTworSE9SVkFUIFBBSkEKK0hPUlZBVCBQQVZMRQorSE9SVkFUIFBFVEFSCitIT1JWQVQgUkFETUlMQQorSE9SVkFUIFJPxb1BCitIT1JWQVQgUk9aQUxJSkEKK0hPUlZBVCBSVcW9QQorSE9SVkFUIFJVRE9MRgorSE9SVkFUIFNBTVVFTAorSE9SVkFUIFNJTFZFU1RFUgorSE9SVkFUIFNMQVZLTworSE9SVkFUIFNNSUxKQQorSE9SVkFUIFNURVZBTgorSE9SVkFUIFRBTUHFoAorSE9SVkFUIFRFUkVaQQorSE9SVkFUIFRFUkVaQQorSE9SVkFUIFRJQk9SCitIT1JWQVQgVElCT1IKK0hPUlZBVCBUSUJPUgorSE9SVkFUIFRJQk9SCitIT1JWQVQgVkFMRVJJSkEKK0hPUlZBVCBWRVJJQ0EKK0hPUlZBVCBWRVJPTklLQQorSE9SVkFUIFZFUk9OSUtBCitIT1JWQVQgVkxBRElNSVIKK0hPUlZBVCBaT0xUQU4KK0hPUlZBVCBaT0xUQU4KK0hPUlZBVEnEhiBNQVJJSkFOCitIT1JWQVRJxIYgT0xHQQorSE9SVkFUScSGIFNMQVZLTworSE9SVkFUScSGIFpWT05JTUlSCitIT1JWQVRPViBSQVNUS08KK0hPUlZBVE9WScSGIMSQT1LEkEUKK0hPUlZBVE9WScSGIEtBVElDQQorSE9SVkFUT1ZJxIYgTUlSSkFOQQorSE9SVkFUT1ZJxIYgUEFWTEUgRFIKK0hPUlZBVFNLSSBEVcWgQU4KK0hPUlZBVFNLSSBMSlVCSUNBCitIT1JWQVRTS0kgTEpVQklDQQorSE9SVkFUU0tJIE1JTEVOS08KK0hPUlZBVFNLSSBNSVJPU0xBVgorSE9SVkFUU0tJIFJBRElWT0oKK0hPUlZBVFNLSSBSVcW9SUNBCitIT1NUScSGIEJJU0VSS0EKK0hPU1ROSUsgS0FUSUNBCitIT1NUT05TS0kgU1RBTkEKK0hPVCBBREVNCitIT1VGIEVMVklSQQorSE9WQU4gTUFSVElOCitIT1ZBTiBNSVJPU0xBVgorSE9WQU5FQyBWSUtUT1JJSkEKK0hSxIZBTiBKT1ZBTgorSFLEhkFOIEpPVkFOCitIUkFCQVIgSVZPCitIUkFCT1ZTS0kgQU5UT04KK0hSQUJPVlNLSSBBTlRPTgorSFJBQk9WU0tJIEJPSkFOQSBEUgorSFJBQk9WU0tJIEVER0FSIERJUEwgT0VDCitIUkFCT1ZTS0kgSU1SRQorSFJBQk9WU0tJIExBRElTTEFWCitIUkFCUknEhiBFVUdFTgorSFJBREXEjE5JIEJFTEEKK0hSQURFxIxOSSBGUkFOSkEKK0hSQURFxIxOSSBKT1NJUAorSFJBTknEjEFLIE1JUktPCitIUkFOSVNBVkxKRVZJxIYgUEFWTEUKK0hSQVBPVknEhiBPU01BTgorSFJETEnEjEtBIERFU0FOS0EKK0hSRcWgxIxBSyBWTEFESU1JUgorSFJFTkFSIExBVVJBCitIUkdJxIYgTEpVQk9NSVIKK0hSR0nEhiBNSUxBTgorSFJHScSGIFZMQVNUSU1JUgorSFJJxIxBTkVLIE1JUk9TTEFWCitIUknEjEFORUsgTkVERUxKS0EKK0hSSUJMSkFOIEFOVE9OCitIUklCT1bFoEVLIEZSQU5DCitIUklDS0FOScSGIExVS0EKK0hSSUXFoElLIE1BUklKQQorSFJJSkXFoElLIEpBTgorSFJJSkXFoElLIEpVUkFKCitIUklTVEnEhiBCTEFHT0pFCitIUklTVEnEhiBESU1JVFJJSkUKK0hSSVNUScSGIExFUE9TQVZBCitIUklTVEnEhiBMSlVCSUNBCitIUklTVElESVMgQVBPU1RPTAorSFJJU1RJRElTIE5JS09MQQorSFJJU1RJRElTIE5JS09MQQorSFJJU1RPViBCUkFOS08KK0hSSVNUT1YgTUlMT1NJSkEKK0hSSVNUT1YgVkVTTkEKK0hSSVNUT1YgWkFHT1JLQQorSFJJU1RPVkEgRU1JTElKQQorSFJJU1RPVlNLSSBUT01BCitIUklTVFUgVElIT01JUgorSFJLQUxPVknEhiBCT8WgS08KK0hSTsSMQVIgU0FNVUVMCitIUk7EjEnEhiBNQVJHSVRBCitIUk7EjEnEhiBNSUhBRAorSFJOxIxJxIYgVkFISUQKK0hSTsSMSUFSIEFOQQorSFJOxIxJQVIgSkFOS08KK0hSTsSMSUFST1ZBIFRFUkVaSUEKK0hSTsSMSkFSIEFORFJFSgorSFJOxIxKQVIgVkxBRElNSVIKK0hSTkpBxIxLSSDFvUFSS08KK0hSTkpBxIxLSSDEkE9SxJBFCitIUk5KQcSMS0kgSkVMSUNBCitIUk5KQcSMS0kgSk9WQU4KK0hSTkpBxIxLSSBMQVpJQ0EKK0hSTkpBxIxLSSBNSUxLQQorSFJOSkHEjEtJIE1MQURFTgorSFJOSkFLIERBTkUKK0hSTkpBSyBEUkFHQU4KK0hSTkpBSyBEVcWgQU4KK0hSTkpBSyBMSklMSkFOQQorSFJOSkFLIE1BUklKQQorSFJOSkFLIFJBSktPCitIUk5KQUsgVkVMSktPCitIUk5KQUtPVknEhiBCUkFOSVNMQVYKK0hSTkpBS09WScSGIElWQU5BCitIUk5KQUtPVknEhiBKT1ZBTgorSFJOSkFLT1ZJxIYgTUlSS08KK0hSTkpFWiBPQlJBRAorSFJPTUnFoCBBTUFMSUpBCitIUk9NScWgIEFOQQorSFJPTUnFoCBCQVJCQVJBCitIUk9NScWgIEJPUklTTEFWCitIUk9NScWgIEpPQUtJTQorSFJPTUnFoCBKT0FLSU0KK0hST01JxaAgS0FUSUNBCitIUk9NScWgIE1BUklKQQorSFJPTUnFoCBNRUxBTklKQQorSFJPTUnFoCBNSUhBSkxPIERJUEwgSU5HCitIUk9NScWgIE1JUk9TTEFWCitIUk9NScWgIE1JUk9TTEFWCitIUk9NScWgIE5BREEKK0hST01JxaAgTklLT0xBCitIUk9NScWgIFBFVEFSCitIUk9NScWgIFNJTUEKK0hST01JxaAgVkxBRElNSVIKK0hST01JxaAgWkRFTktBCitIUk9OSkVDIFZJxIZBWk9TTEFWCitIUlNUTyBTTEFWS08KK0hSVUJFTkpBIMSQVVJBCitIUlVCRU5KQSBGRUJST05BCitIUlVCRU5KQSBKQU5LTworSFJVQkVOSkEgSk9BS0lNCitIUlVCRU5KQSBKT0FLSU0KK0hSVUJFTkpBIEpPQUtJTQorSFJVQkVOSkEgS0FSTE8KK0hSVUJFTkpBIE1JSEFKTE8KK0hSVUJFTkpBIE1JUk9TTEFWCitIUlVCRU5KQSBQRVRBUgorSFJVQkVOSkEgWlZPTklNSVIKK0hSVUJJSyBBTkRSRUoKK0hSVUJJSyBKT1ZBTgorSFJVQklLIEtBUkxPCitIUlVCSUsgTUlSS08KK0hSVUJJSyBPU0tBUiBEUiBMRUtBUgorSFJVQklLIFJPWkFMSUpBCitIUlVTVEFOT1ZJxIYgVFVSU1VOCitIUlVTVEnEhiBFTUlOCitIUlVTVEnEhiBFTlZFUgorSFJVU1RJxIYgWklKQUgKK0hSVVNUScSGIFpJTEhBCitIVcSMScSGIFNUSkVQQU4KK0hVxIxLQSBKT1ZBTgorSFXFvVZBUiDFoEFORE9SCitIVcSQRUMgSk9WQU5LQQorSFXEkEVDIEtBUkxPCitIVUJBSSBHQUJPUgorSFVCQU5JxIYgTUlMRU5BCitIVUJFUiBCT0pBTkEKK0hVQkVSIERSQUdBTgorSFVCRVIgRUxaQQorSFVCRVIgSk9WQU4gRElQTCBJTkcKK0hVQkVSIE1BR0RBTEVOQQorSFVCRVIgTUFSSUpBCitIVUJFUiBNQVRJTERBCitIVUJFUiBQRVRBUgorSFVCRVIgVElCT1IKK0hVQkVSVCBFVkEKK0hVQkVSVCBSQURNSUxBCitIVUJFUlQgVkVSQQorSFVCSUpBUiBFTkVTCitIVUJJSkFSIE5BREEKK0hVREFLIElSSU5FSgorSFVEQUsgTkFUQUxJSkEKK0hVRE9NRUwgSVZBTgorSFVKRFVSIEJSQU5LQQorSFVNU0tJIFJPU0EKK0hVTkpBREkgQUxFS1NBTkRBUgorSFVOSkFESSBJTE9OS0EKK0hVTkpBREkgT0xHQQorSFVQRVJUIExBSk/FoAorSFVQSUsgTUlSSkFOQQorSFVTIElNUkUKK0hVU0FHIEFSUEFECitIVVNBR0nEhiBFU0FECitIVVNBR0nEhiBTVUxFSk1BTgorSFVTQUdJxIYgWklORVRBCitIVVNBSyBSQURPVkFOCitIVVNBUiBFVkEKK0hVU0FSIEnFoFRWQU4KK0hVU0FSIEpBTktPCitIVVNBUiBMQVNMTworSFVTQVIgVE9ET1IKK0hVU0VJTiBNRUhNRUQKK0hVU0VJTkJFR09WScSGIE5BTUlLCitIVVNFSU5PVknEhiBBTklDQQorSFVTRUlOT1ZJxIYgQVRJTEEKK0hVU0VJTk9WScSGIEFUSUxBCitIVVNFSU5PVknEhiBFU01FUkFMREEKK0hVU0VJTk9WScSGIElTTUVUCitIVVNFTkJFR09WScSGIFJPWkFMSUpBCitIVVNJxIYgxJBVUsSQSU5LQQorSFVTScSGIExBRElTTEFWCitIVVNLQSBJTE9OQQorSFVTS0EtUk9LQSBNQUdEQSBEUgorSFVTS08gTUlKTworSFVTT1ZJxIYgSFVTTworSFVUQUxBUk9WScSGIEpFTEVOQQorSFVUQUxBUk9WScSGIEtPU1RBCitIVVpKQU4gVElIT01JUgorSFZBTEEgTUlSQQorSFZFVEtPVknEhiBKRUxJU0FWRVRBCitJxIxBR0nEhiBOSUtPTEEKK0nEjEVWScSGIE1PTcSMSUxPCitJxIxJTiDFvUlWS08KK0nEjElOIE1JTEVOS08KK0nEjElOIFJBRElTTEFWCitJxIxJTiBTUkVURU4KK0nFoEnEhiBFTElaQUJFVEEKK0nFoFBBTiDFoEFORE9SCitJxaBQQU4gTUFSR0lUQQorScWgUEFOT1ZJxIYgSk/FvUVGCitJxaBUT0sgSk9TSVAKK0nFoFRPSyBKT1NJUAorScWgVE9LIE1JUkpBTkEKK0nFoFRPSyBTVEVWQU4KK0nFoFRPS09WScSGIFNURVZPCitJxaBUVkFOT1YgU1RBTklTTEFWQQorScSGSVRPVknEhiBNSUxBTgorScSGVVJVUCDFvUlWT0pJTgorScSGVVJVUCBNSUxPUkFECitJxIZVUlVQIFJBRE9TTEFWIERJUEwgSU5HCitJxb1BSyBGRVJFTkMKK0nFvUFLIEtBUkxPCitJxb1BSyBST1pBTElKQQorScSQSURPViBPTEdBCitJxJBJRE9WIFZFTElOS0EKK0nEkE/FoEtJIEhPUlNUCitJxJBPxaBLSSBOSUtPTEEKK0nEkFXFoEtJIFNURVZBTgorSUJSQUhJTSBERU1JUgorSUJSQUhJTUFHScSGIE5BREEKK0lCUkFISU1JIElCUkFISU0KK0lCUkFISU1PVknEhiBERVJWScWgQQorSUJSQUhJTU9WScSGIEVNSUwKK0lCUkFISU1PVknEhiBIQU1ESUpBCitJQlJBSElNT1ZJxIYgTUlMQU4KK0lCUkFISU1PVknEhiBTTEFWS08KK0lCUkFISU1PVknEhiBWRVJBCitJQlJBSElNUEHFoEnEhiBBTkEKK0lCUkFKVEVSIElWQU4KK0lCUkFKVEVSIExKVUJPTUlSCitJQlJBSlRFUiBNTEFERU4KK0lCUknFoEVWScSGIMSQVUxBR0EKK0lCUknFoEVWScSGIE1JUlNBRAorSUJSScWgRVZJxIYgU1VBRAorSUJST8SMScSGIERJTUlUUklKRSBESVBMIElORworSUJST8SMScSGIE1BUklKQQorSUJST8SMScSGIFJBVE9NSVIKK0lCUk/EjEnEhiBTTE9CT0RBTgorSUJST8SMScSGIFZFUkEKK0lCUk9MSSBCQU4KK0lDT1NLSSBMQVpBUgorSURFSSBOQU5ET1IKK0lERUpJIEpPVkFOCitJREVKSSBWQUxFUklKQQorSURSSVpPVknEhiBBSE1FVCBEUgorSURWT1JFQU4gVE9ET1IKK0lEVk9SRUFOIFZJS0VOVElKRQorSUZKVSBBTkdFTElLQQorSUZKVSBHQUJPUgorSUZLTyBJTERJS08gRElQTCBJTkcKK0lHScSGIMW9SVZBRElOCitJR0nEhiDEkFVMVkFTSUpBCitJR0nEhiBBTktBCitJR0nEhiBEUkFHQU4KK0lHScSGIEpPVkFOS0EKK0lHScSGIE1JTEtBCitJR0nEhiBNSUxPUkFECitJR0nEhiBNSVJPU0xBVkEKK0lHScSGIE1JUk9TTEFWCitJR0nEhiBOSUtPTEEKK0lHScSGIFBBVkxFCitJR0nEhiBSQUpLTworSUdJxIYgU0HFoEEKK0lHScSGIFNURVZBTgorSUdJxIYgU1RFVkFOCitJR0nEhiBTVkVUT1pBUgorSUdJxIYgVE9NSVNMQVYKK0lHScSGIFZVS0EKK0lHTkFDIFBFUkEKK0lHTkpBQyBWSURBCitJR05KQVRJxIYgQU5LQQorSUdOSkFUScSGIEJPUklWT0oKK0lHTkpBVEnEhiBEVcWgQU5LQQorSUdOSkFUScSGIEdPSktPCitJR05KQVRJxIYgTkVWRU5LQQorSUdOSkFUScSGIFJBRE9WQU4KK0lHTkpBVEnEhiBWSUQKK0lHTkpBVElKRVZJxIYgQUxFS1NBTkRBUgorSUdOSkFUSUpFVknEhiBCUkFOSVNMQVYKK0lHTkpBVElKRVZJxIYgRE9CUklMQQorSUdOSkFUSUpFVknEhiBEUkFHT01JUgorSUdOSkFUSUpFVknEhiBEVcWgQU4KK0lHTkpBVElKRVZJxIYgRFXFoEFOCitJR05KQVRJSkVWScSGIEpPVkFOCitJR05KQVRJSkVWScSGIExKSUxKQU5BCitJR05KQVRJSkVWScSGIExKSUxKQU5BCitJR05KQVRJSkVWScSGIExKVUJPTUlSCitJR05KQVRJSkVWScSGIE1BUkEKK0lHTkpBVElKRVZJxIYgTUlMQU4KK0lHTkpBVElKRVZJxIYgTUlMRU5BCitJR05KQVRJSkVWScSGIE1JUk9TTEFWCitJR05KQVRJSkVWScSGIE1JVEEKK0lHTkpBVElKRVZJxIYgTk9WQUsKK0lHTkpBVElKRVZJxIYgUkFEQcWgSU4KK0lHTkpBVElKRVZJxIYgUkFET1ZBTgorSUdOSkFUSUpFVknEhiBTVkVUSVNMQVYKK0lHTkpBVElKRVZJxIYgU1ZFVE9aQVIKK0lHTkpBVElKRVZJxIYgVE9NSVNMQVYKK0lHTkpBVElKRVZJxIYgVE9NSVNMQVYKK0lHTkpBVElKRVZJxIYgVk9KSVNMQVYKK0lHTkpBVElKRVZJxIYgWk9SQU4KK0lHTkpBVE9WLVJBRE9WQU5PVknEhiBNSUxFTkEgUFJPRgorSUdOSkFUT1ZJxIYgxb1JVktPCitJR05KQVRPVknEhiDFvUlWT1JBRAorSUdOSkFUT1ZJxIYgQU5HRUxBCitJR05KQVRPVknEhiBBTktBCitJR05KQVRPVknEhiBEQU5JTE8KK0lHTkpBVE9WScSGIEdPUkRBTkEKK0lHTkpBVE9WScSGIEtPU0FSQQorSUdOSkFUT1ZJxIYgTEpVQknFoEEKK0lHTkpBVE9WScSGIE1BUklDQQorSUdOSkFUT1ZJxIYgTUlMQU4KK0lHTkpBVE9WScSGIE1JTEUKK0lHTkpBVE9WScSGIE1JTEtBCitJR05KQVRPVknEhiBNSUxPxaAgRFIgUFJBVk5JSworSUdOSkFUT1ZJxIYgTUlMT8WgCitJR05KQVRPVknEhiBNSUxPUkFECitJR05KQVRPVknEhiBNSUxVVElOCitJR05KQVRPVknEhiBNSVJKQU5BCitJR05KQVRPVknEhiBTQVZBCitJR05KQVRPVknEhiBTTE9CT0RBTgorSUdOSkFUT1ZJxIYgVkVSQQorSUdOSkFUT1ZJxIYgVkVSQQorSUdOSkFUT1ZJxIYgVklEQUsKK0lHTkpBVE9WScSGIFZMQURJTUlSCitJR05KQVRPVknEhiBWT0pJU0xBVgorSUdOSkFUT1ZJxIYgVlXEjEtPCitJR05KQVRPVlNLSSBFRlJFTQorSUdOSknEhiBCUkFOS08KK0lHTkpJxIYgSk9WQU4KK0lHTkpJxIYgU1RPSkFOCitJR05KScSGIFpJWkEKK0lHTkpJxIYgWk9SQU4KK0lHTkpPVknEhiBNQVJJSkEKK0lHUkHEjEtJIMSQT1LEkEUKK0lHUkHEjEtJIEVURUxBCitJR1JBxIxLSSBKVUxJTgorSUdSQcSMS0kgS0FSTE8KK0lHUkHEjEtJIExBU0xPCitJR1JJxIYgTkFEQQorSUdSScSGIFNUT0pBTktBCitJR1JVVElOT1ZJxIYgU0xPQk9EQU4KK0lIQVMgSUxPTkEKK0lKQcSMScSGIEJSQU5LTworSUpBxIxJxIYgTUFLU0lNCitJSkVWTEpFViBGRU9ET1IKK0lLQU5PVknEhiBEVcWgQU4KK0lLQU5PVknEhiBJVkFOCitJS0FOT1ZJxIYgSkVMRU5BCitJS0FOT1ZJxIYgTklLT0xBCitJS0VMSknEhiBJUkZBTgorSUtJxIYgREVKQU4KK0lLScSGIEpPVkFOCitJS0nEhiBNTEFERU4KK0lLScSGIE1MQURFTgorSUtJxIYgU01JTEpBTkEKK0lLT0RJTk9WScSGIERVxaBBTgorSUtPTknEhiDEkFVSQQorSUtPTk9WIERFSkFOCitJS09USU4gSkFOT8WgCitJS09USU4gSk9WQU5LQQorSUtPVElOIE1BVElKQQorSUtPVElOIFBBTAorSUtPVElOIFBFVEFSCitJS09WQUMgQk/FoEtPCitJS09WQUMgU1RFVkFOCitJS09WScSGIERSQUdVVElOCitJS09WScSGIE1JTE/FoAorSUtPVknEhiBNSUxPU0FWCitJS09WScSGIFZFTElOS0EKK0lLUkHFoEVWIEpFTElDQQorSUtSQcWgRVYgSk9WQU4KK0lMIEFMRUtTQU5EQVIKK0lMIEpFTElDQQorSUzEjElLIE1BUklKQQorSUxFxaAgRlJBTkNJxaBLQQorSUxFxaAgSU1SRQorSUxFxaAgSVJFTkEKK0lMRcWgIE1JSEFJTE8KK0lMRcWgIE1JTEFOCitJTEXFoCBNSVJPU0xBVgorSUxJxIxJxIYgQU5UVU4KK0lMScSMScSGIElWQU4KK0lMScSMScSGIExKVUJJQ0EKK0lMScSMScSGIE1JSEFKTE8KK0lMScSMScSGIFBFVEFSCitJTEnEjEnEhi1QT1BJxIYgT0xKQQorSUxJxIYgxIxFRE9NSVIKK0lMScSGIMSMRURPCitJTEnEhiDFoElNVU4KK0lMScSGIMW9RUxKS08KK0lMScSGIMW9SVZLTworSUxJxIYgxb1JVktPCitJTEnEhiDFvUlWS08KK0lMScSGIMW9SVZPTUlSCitJTEnEhiDFvUlWT01JUgorSUxJxIYgxb1JVk9NSVIKK0lMScSGIMW9SVZPUkFECitJTEnEhiDFvUlWT1JBRAorSUxJxIYgxJBPUsSQRQorSUxJxIYgxJBPUsSQRQorSUxJxIYgxJBPUsSQRQorSUxJxIYgQUxFS1NBIERSCitJTEnEhiBBTEVLU0FOREFSCitJTEnEhiBBTEVLU0FOREFSCitJTEnEhiBBTEVLU0FOREFSCitJTEnEhiBBTEVLU0FOREFSCitJTEnEhiBBTklDQQorSUxJxIYgQU5LSUNBCitJTEnEhiBBUlNBCitJTEnEhiBBUlNBCitJTEnEhiBCSUxKQU5BCitJTEnEhiBCTEFHT0pFCitJTEnEhiBCT8WgS08KK0lMScSGIEJPxaBLTworSUxJxIYgQk/FvUlEQVIKK0lMScSGIEJPQkFOCitJTEnEhiBCT0dEQU4KK0lMScSGIEJPR09MSlVCCitJTEnEhiBCT1JJU0xBVktBCitJTEnEhiBCT1JJU0xBVgorSUxJxIYgQk9SSVNMQVYKK0lMScSGIEJPUklWT0pFCitJTEnEhiBCT1JLQQorSUxJxIYgQk9TSUxKS0EKK0lMScSGIEJSQU5JU0xBVgorSUxJxIYgQlJBTklTTEFWCitJTEnEhiBCUkFOSVNMQVYKK0lMScSGIEJSQU5LTworSUxJxIYgQlJBTktPCitJTEnEhiBCUkFOS08KK0lMScSGIEJSQVRJU0xBVgorSUxJxIYgQlJBVElTTEFWCitJTEnEhiBDRUNJTElKQQorSUxJxIYgQ1ZFVEEKK0lMScSGIENWSUpBTgorSUxJxIYgREFORQorSUxJxIYgREFSSU5LQQorSUxJxIYgREVKQU4KK0lMScSGIERPQlJJVk9KRQorSUxJxIYgRE9CUk9TQVYKK0lMScSGIERSQUdBTgorSUxJxIYgRFJBR0FOCitJTEnEhiBEUkFHQU4KK0lMScSGIERSQUdJQ0EKK0lMScSGIERSQUdPTEpVQgorSUxJxIYgRFJBR08KK0lMScSGIERSQUdVVElOCitJTEnEhiBEVcWgQU5LQQorSUxJxIYgRFXFoEFOCitJTEnEhiBEVcWgQU4KK0lMScSGIERVxaBBTgorSUxJxIYgRFXFoEFOCitJTEnEhiBEVcWgQU4KK0lMScSGIERVxaBJQ0EKK0lMScSGIERVxaBJQ0EKK0lMScSGIEVESVQKK0lMScSGIEVSxb1JS0EKK0lMScSGIEdPUkFOCitJTEnEhiBHT1JBTgorSUxJxIYtR1JFR09SIE1JUkEKK0lMScSGIElMSUpBCitJTEnEhiBJTElKQQorSUxJxIYgSUxJSkEKK0lMScSGIElSRU5BCitJTEnEhiBJVkFOIERSCitJTEnEhiBJVkFOCitJTEnEhiBJVkFOCitJTEnEhiBKRUxFTkEKK0lMScSGIEpFTEVOQQorSUxJxIYgSkVMRU5LTworSUxJxIYgSkVMSVNBVkVUQQorSUxJxIYgSkVMS0EKK0lMScSGIEpPU0lGCitJTEnEhiBKT1ZBTktBCitJTEnEhiBKT1ZBTgorSUxJxIYgSk9WQU4KK0lMScSGIEpPVkFOCitJTEnEhiBKT1ZBTgorSUxJxIYgSk9WQU4KK0lMScSGIEpPVklDQQorSUxJxIYgS09WSUxKS0EKK0lMScSGIEtSU1RBTgorSUxJxIYgTEFaQVIKK0lMScSGIExBWkFSCitJTEnEhiBMQVpBUgorSUxJxIYgTEpVQknFoEEKK0lMScSGIExKVUJJxaBBCitJTEnEhiBMSlVCSUNBCitJTEnEhiBMSlVCSUNBCitJTEnEhiBMSlVCSUNBCitJTEnEhiBMSlVCSU5LTworSUxJxIYgTEpVQk8KK0lMScSGIE1BUkEKK0lMScSGIE1BUkEKK0lMScSGIE1BUklKQQorSUxJxIYgTUFSSUpBCitJTEnEhiBNQVJJSkEKK0lMScSGIE1BUklKQQorSUxJxIYgTUFSSU5LTworSUxJxIYgTUFSS08KK0lMScSGIE1JSEFKTE8KK0lMScSGIE1JSEFKTE8KK0lMScSGIE1JTEFESU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEEKK0lMScSGIE1JTEVOQQorSUxJxIYgTUlMRU5BCitJTEnEhiBNSUxFTgorSUxJxIYgTUlMRVZBCitJTEnEhiBNSUxFCitJTEnEhiBNSUxJxIYKK0lMScSGIE1JTElDQQorSUxJxIYgTUlMSUNBCitJTEnEhiBNSUxJQ0EKK0lMScSGIE1JTElTQVYKK0lMScSGIE1JTElWT0pFCitJTEnEhiBNSUxJVk9KCitJTEnEhiBNSUxJVk9KCitJTEnEhiBNSUxJVk9KCitJTEnEhiBNSUxPxaAKK0lMScSGIE1JTE/FoAorSUxJxIYgTUlMT8WgCitJTEnEhiBNSUxPxaAKK0lMScSGIE1JTE9SQUQKK0lMScSGLU1JTFXFoEnEhiBPTEdBCitJTEnEhiBNSUxVxaBLQQorSUxJxIYgTUlMVVRJTgorSUxJxIYgTUlPRFJBRyBEUgorSUxJxIYgTUlPRFJBRworSUxJxIYgTUlPRFJBRworSUxJxIYgTUlPRFJBRworSUxJxIYgTUlSSkFOQQorSUxJxIYgTUlSS08KK0lMScSGIE1JUk9TTEFWQQorSUxJxIYgTUlST1NMQVYKK0lMScSGIE1JUk9TTEFWCitJTEnEhiBNSVRBUgorSUxJxIYgTU9NxIxJTE8KK0lMScSGIE1PTcSMSUxPCitJTEnEhiBNT03EjElMTworSUxJxIYgTU9NxIxJTE8KK0lMScSGIE5BREEKK0lMScSGIE5FxJBPCitJTEnEhiBORUJPSsWgQQorSUxJxIYgTkVCT0rFoEEKK0lMScSGIE5FTkFECitJTEnEhiBORVZFTktBCitJTEnEhiBOSUtPTEEKK0lMScSGIE5JS09MQQorSUxJxIYgT0JSQUQKK0lMScSGIE9CUkVOCitJTEnEhiBPTEdBCitJTEnEhiBPTEdBCitJTEnEhiBPTElWRVJBCitJTEnEhiBPU1RPSkEKK0lMScSGIFBBVkxFIERJUEwgSU5HCitJTEnEhiBQQVZMRQorSUxJxIYgUEVSTworSUxJxIYgUEVUQVIKK0lMScSGIFBFVEFSCitJTEnEhiBQRVRBUgorSUxJxIYgUEVUQVIKK0lMScSGIFBFVEFSCitJTEnEhi1QRVRST1ZJxIYgU1BPTUVOS0EKK0lMScSGIFBSRVZJU0xBVgorSUxJxIYgUkFERQorSUxJxIYgUkFESVZPSgorSUxJxIYgUkFET0pLQQorSUxJxIYgUkFET01JUgorSUxJxIYgUkFET1NMQVYKK0lMScSGIFJBRE9TTEFWCitJTEnEhiBSQURPU0xBVgorSUxJxIYgUkFET1ZBTgorSUxJxIYgUkFET1ZBTgorSUxJxIYgUkFETworSUxJxIYgUkFOS08KK0lMScSGIFJBVEtPCitJTEnEhiBSQVRLTworSUxJxIYgUlXFvUEKK0lMScSGIFJVxb1JQ0EKK0lMScSGIFNBVkEgRFIKK0lMScSGIFNBVkEKK0lMScSGLVNBVknEhiBWT0pJU0xBVkEKK0lMScSGIFNJTU8KK0lMScSGIFNJTknFoEEKK0lMScSGIFNMQVZJQ0EKK0lMScSGIFNMQVZLTworSUxJxIYgU0xBVktPCitJTEnEhiBTTEFWT0xKVUIKK0lMScSGIFNMT0JPREFOCitJTEnEhiBTTE9CT0RBTgorSUxJxIYgU0xPQk9EQU4KK0lMScSGIFNMT0JPREFOCitJTEnEhiBTUsSQQU4KK0lMScSGIFNSxJBBTgorSUxJxIYgU1LEkEFOCitJTEnEhiBTUkVURU4KK0lMScSGIFNUQU5BCitJTEnEhiBTVEFOScWgQQorSUxJxIYgU1RBTklNSVIKK0lMScSGIFNUQU5JTUlSCitJTEnEhiBTVEFOS0EKK0lMScSGIFNURVZPCitJTEnEhiBTVE9KQU7EjEUKK0lMScSGIFNUT0pBTgorSUxJxIYgU1RPSkFOCitJTEnEhiBTVkVUSVNMQVYgRFIgTEVLQVIKK0lMScSGIFNWRVRMQU5BCitJTEnEhiBTVkVUT1pBUgorSUxJxIYgVEFUSkFOQQorSUxJxIYgVE9ERQorSUxJxIYgVE9ERQorSUxJxIYgVE9NSVNMQVYKK0lMScSGIFZBU0EKK0lMScSGIFZFUkEKK0lMScSGIFZJRE9TQVYKK0lMScSGIFZJTktBCitJTEnEhiBWSU5LTworSUxJxIYgVkxBREFOCitJTEnEhiBWTEFEQU4KK0lMScSGIFZMQURJTUlSIERSCitJTEnEhiBWTEFESU1JUgorSUxJxIYgVkxBRElNSVIKK0lMScSGIFZMQURJTUlSCitJTEnEhiBWTEFESU1JUgorSUxJxIYgVkxBRElNSVIKK0lMScSGIFZMQVRLQQorSUxJxIYgVk9KSVNMQVYKK0lMScSGIFZPSklTTEFWCitJTEnEhiBWT0pJU0xBVgorSUxJxIYgVk9KSVNMQVYKK0lMScSGIFpEUkFWS08KK0lMScSGIFpMQVRLTworSUxJxIYgWkxBVEtPCitJTEnEhiBaT1JBTgorSUxJxIYgWk9SSUNBCitJTElCQcWgScSGIERBUklOS0EKK0lMSUJBxaBJxIYgTklLT0xBCitJTElCQcWgScSGIE9TVE9KQQorSUxJQkHFoEnEhiBTVEVWQU4KK0lMSUJBxaBJxIYgU1RFVk8KK0lMSUJBxaBJxIYgWkxBVEEKK0lMSUVWU0tJIEFMRUtTQU5EQVIKK0lMSUrEhiBTTUlMSkEKK0lMSUrEhiBTVkVUT0xJSworSUxJSkHFoEVWIFNPRklKQQorSUxJSkHFoEVWScSGIEFMRUtTQU5EQVIKK0lMSUpBxaBFVknEhiBEQVJBCitJTElKQcWgRVZJxIYgTEpVQknFoEEKK0lMSUpBxaBFVknEhiBTVkVUSVNMQVYKK0lMSUpBWkkgQUJESVNBTUkKK0lMSUpBWkkgREFVVAorSUxJSkFaSSBIQUZJWkEKK0lMSUpBWkkgSkFMxIxJTgorSUxJSkFaSSBaQUpORUwKK0lMSUpBWk9WScSGIFZFRMW9UklKQQorSUxJSkVWIElWQU4KK0lMSUpFViBJVkFOCitJTElKRVYgTEpVQkVOCitJTElKRVZJxIYgRFXFoEFOIERJUEwgSU5HCitJTElKRVZJxIYgTklLT0xBCitJTElKRVZJxIYgUkFERQorSUxJSkVWU0tJIMSGSVJPCitJTElKRVZTS0kgxJBPUsSQRQorSUxJSkVWU0tJIERBTklMTworSUxJSklOIMW9QVJLTworSUxJSklOIMW9SVZBTgorSUxJSklOIERVxaBBTgorSUxJSklOIEpFTEVOQQorSUxJSklOIEpPVkFOCitJTElKSU4gSk9WQU4KK0lMSUpJTiBNSUxBTgorSUxJSklOIE1JTElWT0oKK0lMSUpJTiBNSUxJVk9KCitJTElKSU4gTUlMT8WgCitJTElKSU4gTUlSSkFOQQorSUxJSklOIFNURVZBTgorSUxJSklOIFNWRVRPWkFSCitJTElKSU4gVEFOQVNJSkUKK0lMSUpJTiBVUk/FoAorSUxJSklOIFpPUktBCitJTElOIMW9QVJLTworSUxJTiBBTEVLU0FOREFSCitJTElOIEFOS0lDQQorSUxJTiBCT1JJU0xBVgorSUxJTiBCT1JLQQorSUxJTiBEUkFHSU5KQQorSUxJTiBEUkFHSU5KQQorSUxJTiBEVcWgQU4KK0lMSU4gRFXFoEFOCitJTElOIElWQU4KK0lMSU4gTEpVQklOS08KK0lMSU4gTEpVQk9NSVIKK0lMSU4gTUlMQU4KK0lMSU4gTUlMRU5LTworSUxJTiBNTEFERU4KK0lMSU4gTkVERUxKS08KK0lMSU4gTklLT0xBCitJTElOIFJBREUKK0lMSU4gU05Fxb1BTkEKK0lMSU4gU09GSUpBCitJTElOIFRJTUEKK0lMSU4gWk9SQQorSUxJTsSMScSGIE1PTUlSCitJTElOxIxJxIYgTkVCT0rFoEEKK0lMSkFaSSBExb1BTUlMSgorSUxLScSGIEpFTEEKK0lMS0nEhiBNQVJJQ0EKK0lMS0nEhiBNSUxBTgorSUxLScSGIE1JUkEKK0lMS0nEhiBOQURBCitJTEtJxIYgTkVCT0rFoEEKK0lMS0nEhiBORU5BRAorSUxLScSGIFJBRE1JTEEKK0lMS0nEhiBTVEVWSUNBCitJTEtJxIYgWkxBVE9KQQorSUxLSU4gUkFESVZPSgorSUxPVkHEjEEgTUFSS08KK0lMT1ZTS0kgQUxFS1NBTkRBUgorSUxPVlNLSSBaTEFUQQorSU3FoElST1ZJxIYgS09MT01BTgorSU3FoElST1ZJxIYgTUlST1NMQVYKK0lNxaBJUk9WScSGIFNNQUpJTAorSU1BTU9WScSGIEpBU01JTkEKK0lNQlJBIMW9SVZPSklOCitJTUJSScWgScSGIEJFSElKQQorSU1CUknFoEnEhiBJVkFOCitJTUJST05KRVYgUkFKS08KK0lNQlJPTkpFViBSQUpLTworSU1CUk9OSkVWIFJBSktPCitJTUJST05KRVYgU1BBU09KQQorSU1CUk9OT1ZJxIYgxJBPUsSQRQorSU1CUk9OT1ZJxIYgRFXFoEFOCitJTUJST05PVknEhiBKVUxLQQorSU1SRcWgSSBJVkFOCitJTsSQScSGIERSQUdJQ0EKK0lOxJBJxIYgRFXFoEFOCitJTsSQScSGIEpFTEVOQQorSU7EkEnEhiBKRUxJQ0EKK0lOxJBJxIYgVEVSRVoKK0lOxJBJxIYgVk9KSU4KK0lOxJBJTiDFvUlWS08KK0lOxJBJTiDEkFVSQQorSU7EkElOIERVxaBBTgorSU7EkElOIFZMQURJTUlSCitJTknEhiBCUkFOS08KK0lOScSGIERSQUdBTgorSU5JxIYgRFXFoEFOCitJTknEhiBKRUxFTkEKK0lOScSGIEtSU1RBCitJTknEhiBMSlVCSUNBCitJTknEhiBNSUxBTiBEUgorSU5JxIYgVElOREEKK0lOScSGIFZBU08KK0lOSkFDIEJPR0RBTgorSU5KQUMgRFJBR0lDQQorSU5KQUMgSk9WQU4KK0lOSkFDIExKVUJJQ0EKK0lOSkFDIE1JUktPCitJTkpBQyBOSUtPTEEKK0lOSkFDIFJBREEKK0lOSkFDIFJBREUKK0lOSkFDIFJBRE9NSVIKK0lOSkFDIFNMT0JPREFOCitJTkpBQyBWTEFESU1JUgorSU5PVkFOIERPQlJJVk9KRQorSVBBxIwgS0FUQUxJTkEKK0lQQcSMIEtBVElDQQorSVBJxIYgWk9SQQorSVLFoEFJIElWQU4KK0lSxaBBSkkgSk9WQU4KK0lSxaBBSkkgU1RFVkEKK0lSScSGIEJPxb1PCitJUknEhiBHQcWgUEFSCitJUk1FxaAgTUFSSUEKK0lSTUVOSkkgSk/FvUVGCitJUk1FTkpJIEpPU0lQCitJUk1FTkpJIE1BUkdJVAorSVNBSUxPVknEhiBMSlVCScWgQQorSVNBSUxPVknEhiBNSUxBTktBCitJU0FJTE9WScSGIE1JUktPCitJU0FJTE9WScSGIFZFTElTQVYKK0lTQUpFViBNQVJJSkEKK0lTQUpFVknEhiBMQVpBUgorSVNBSkVWScSGIE1JTE/FoAorSVNBSkVWScSGIFpEUkFWS08KK0lTQUpMT1YgSk9ORUwKK0lTQUpMT1YgSk9ORUwKK0lTQUpMT1YgSk9ORUwKK0lTQUpMT1ZJxIYgQUxFS1NBTkRBUgorSVNBSkxPVknEhiBBTEVLU0FOREFSCitJU0FKTE9WScSGIEJSQU5LTworSVNBSkxPVknEhiBEVcWgQU4KK0lTQUpMT1ZJxIYgRkVET1IKK0lTQUsgSUxJSkEKK0lTQUsgU1RBTktPCitJU0FLT1Ygxb1BUktPCitJU0FLT1Ygxb1JVk9KSU4KK0lTQUtPViBBQ0tPCitJU0FLT1YgQk9SSVNMQVYKK0lTQUtPViBDVkVUS08KK0lTQUtPViBESU1JVFJJSkUKK0lTQUtPViBEUkFHQU5BCitJU0FLT1YgRFJBR09MSlVCCitJU0FLT1YgRFXFoElDQQorSVNBS09WIEVTVEVSCitJU0FLT1YgSVZBTgorSVNBS09WIEpFTElDQQorSVNBS09WIEpPVkFOS0EKK0lTQUtPViBLQVRJQ0EKK0lTQUtPViBMRVBPU0FWQQorSVNBS09WIExKVUJJQ0EKK0lTQUtPViBMSlVCSUNBCitJU0FLT1YgTUlMQU4KK0lTQUtPViBNSUxBTgorSVNBS09WIE1JTEVOS08KK0lTQUtPViBNSUxJVk9KCitJU0FLT1YgTUlMT1JBRAorSVNBS09WIE1JTFVUSU4KK0lTQUtPViBNSU9EUkFHCitJU0FLT1YgTUlST1NMQVYKK0lTQUtPViBORU5BRAorSVNBS09WIFBFVEFSCitJU0FLT1YgUkFERQorSVNBS09WIFJBRElDQQorSVNBS09WIFJBRElOS0EKK0lTQUtPViBSQURJVk9KCitJU0FLT1YgUkFETUlMQQorSVNBS09WIFJBRE9NSVIKK0lTQUtPViBSQURPVkFOCitJU0FLT1YgUlXFvUlDQQorSVNBS09WIFNBVkEKK0lTQUtPViBTTEFWS08KK0lTQUtPViBTTUlMSktBCitJU0FLT1YgU1JFRE9KRQorSVNBS09WIFNURVZBTgorSVNBS09WIFNURVZBTgorSVNBS09WIFRPRE9SCitJU0FLT1YgVE9NSVNMQVYKK0lTQUtPViBWT0pJU0xBVgorSVNBS09WIFpPUklDQQorSVNBS09WScSGIMSQVVJBIERJUEwgSU5HCitJU0FLT1ZJxIYgQU5BCitJU0FLT1ZJxIYgTUFSS08KK0lTQUtPVknEhiBTVEVWQU4KK0lTQUtPVknEhiBaT1JBTgorSVNBS09WU0tJIEpBS09WCitJU0FLT1ZTS0kgU0xPQk9EQU4gRFIKK0lTQU5PVknEhiBBTkEKK0lTSUpBTk9WIFNMT0JPREFOS0EKK0lTSUpBTk9WIFZMQURJTUlSCitJU0tBTE9WIE1BUklKQU5BCitJU0tJxIYgTUlMQURJTgorSVNLUklOIEJSQU5LTworSVNLUklOIEpFTEVOQQorSVNMQU1CQcWgScSGIExKSUxKQU5BCitJU0xBTUkgQUJJQgorSVNMQU1PVknEhiBNQUhNVUQKK0lTTEFNT1ZJxIYgTkFEQQorSVNNQUlMSSDFoEHEhklSCitJVEFMTyBFVklDQQorSVRBTE8gTUFSS08KK0lURUJFSkFDIFpPUkEKK0lWQcSMS09WScSGIEJSQU5JU0xBVgorSVZBxIxLT1ZJxIYgTUFOT0pMTworSVZBxIxLT1ZJxIYgTkFEQQorSVZBxaDEjEVOS08gQUxFS1NBTkRBUgorSVZBxaDEjEVOS08gQUxFS1NBTkRBUgorSVZBxaDEjEVOS08gS0FUSUNBCitJVkHFoEtVLU1JTE9WQU5PVknEhiBGRUxJxIxJQQorSVZBSyBKQU4KK0lWQU4gxaBBTkRPUgorSVZBTiDEkFVSQQorSVZBTiBBVElMQQorSVZBTiBDRUNJTElKQQorSVZBTiBHQUJPUgorSVZBTiBKT8W9RUYKK0lWQU4gSk9WQU4KK0lWQU4gS0FUQUxJTgorSVZBTiBNSUhBSkxPCitJVkFOIFNJTFZFU1RFUgorSVZBTiBWRVJPTkEKK0lWQU7EjEVWIElSSU5BCitJVkFOxIxFViBWTEFESU1JUgorSVZBTsSMRVZJxIYgxb1BUktPIERSCitJVkFOxIxFVknEhiBCT8WgS08KK0lWQU7EjEVWScSGIEJSQU5LQQorSVZBTsSMRVZJxIYgREFSS08KK0lWQU7EjEVWScSGIERJTUlUUklKRQorSVZBTsSMRVZJxIYgRFJBR09TTEFWQQorSVZBTsSMRVZJxIYgRFXFoEFOCitJVkFOxIxFVknEhiBHQVZSQQorSVZBTsSMRVZJxIYgSk9WQU4KK0lWQU7EjEVWScSGIEpPVkFOCitJVkFOxIxFVknEhiBNQVJJQ0EKK0lWQU7EjEVWScSGIE1JTEFOCitJVkFOxIxFVknEhiBNSUxBTgorSVZBTsSMRVZJxIYgTUlMRU5LTworSVZBTsSMRVZJxIYgTUlMSVZPSkUgUFJPRkVTT1IKK0lWQU7EjEVWScSGIE9MSVZFUkEKK0lWQU7EjEVWScSGIFBFVEFSCitJVkFOxIxFVknEhiBQRVRBUgorSVZBTsSMRVZJxIYgUkFESVZPSiBESVBMIElORworSVZBTsSMRVZJxIYgUkFETUlMQQorSVZBTsSMRVZJxIYgU0lOScWgQQorSVZBTsSMRVZJxIYgU1RBTktPCitJVkFOxIxFVknEhiBTVkVUT1pBUgorSVZBTsSMRVZJxIYgVkxBREEKK0lWQU7EjEVWScSGIFZMQURJTUlSIERSCitJVkFOxIxJxIYgQU5URQorSVZBTsSMScSGIEJSQU5LTworSVZBTsSMScSGIERSQUdBTgorSVZBTsSMScSGIEpPU0lQCitJVkFOxIxJxIYgSlVMSUpBTkEKK0lWQU7EjEnEhiBNQVJJSkEKK0lWQU7EjEnEhiBNSUxBTgorSVZBTsSMScSGIE9MR0EKK0lWQU7EjEnEhiBTVEFOSU1JUgorSVZBTsSMScSGIFNUQU5JU0xBVgorSVZBTsSMScSGIFNURVZBTgorSVZBTsSMScSGIFNURVZBTgorSVZBTsSMScSGIFZMQURJTUlSCitJVkFOxIxJTiBOSUtPTEEKK0lWQU7EjElOIE9MSkVHCitJVkFOxIxVSyBQQVZBTworSVZBTkRJxIYgSVZJQ0EKK0lWQU5EScSGIFJBRE1JTEEKK0lWQU5Fxb1BIEFORFJJSkEKK0lWQU5FSyDEkFVSQQorSVZBTkVLIERVxaBLTworSVZBTkVLIFZJS1RPUklKQQorSVZBTkkgSElMSkEKK0lWQU5JxaAgS09WSUxKS0EKK0lWQU5JxaAgU0xBVktPCitJVkFOScWgIFNMQVZLTworSVZBTknFoEVWScSGIMSQVVJPCitJVkFOScWgRVZJxIYgRFXFoEFOCitJVkFOScWgRVZJxIYgRVZJQ0EKK0lWQU5JxaBFVknEhiBJTElKQQorSVZBTknFoEVWScSGIEpFTElDQQorSVZBTknFoEVWScSGIE1JSEFJTE8KK0lWQU5JxaBFVknEhiBNSUxBTgorSVZBTknFoEVWScSGIE1JUk9TTEFWCitJVkFOScWgRVZJxIYgTUlST1NMQVYKK0lWQU5JxaBFVknEhiBNSVRBUgorSVZBTknFoEVWScSGIE5BREEKK0lWQU5JxaBFVknEhiBOQURBCitJVkFOScWgRVZJxIYgTkXEkEEKK0lWQU5JxaBFVknEhiBORU1BTkpBCitJVkFOScWgRVZJxIYgT0xHQQorSVZBTknFoEVWScSGIFBFVEFSCitJVkFOScWgRVZJxIYgUkFKS08KK0lWQU5JxaBFVknEhiBTVkVUT1pBUgorSVZBTknFoEVWScSGIFRJTkEKK0lWQU5JxaBFVknEhiBWVUtJQ0EKK0lWQU5JxIYgxIxFRE9NSVIKK0lWQU5JxIYgxJBPUsSQRQorSVZBTknEhiBBTEJFUlQKK0lWQU5JxIYgQU5BCitJVkFOScSGIEJSQU5LTworSVZBTknEhiBEUkFHQU5BCitJVkFOScSGIERSQUdBTgorSVZBTknEhiBEUkFHSUNBCitJVkFOScSGIERVxaBBTgorSVZBTknEhiBEVcWgQU4KK0lWQU5JxIYgR1JPWkRBTkEKK0lWQU5JxIYgSVZBTkEKK0lWQU5JxIYgSVZBTgorSVZBTknEhiBJVkFOCitJVkFOScSGIElWQU4KK0lWQU5JxIYgSk9WTworSVZBTknEhiBNQVJJTkEKK0lWQU5JxIYgTUlMQU4KK0lWQU5JxIYgTUlMQU4KK0lWQU5JxIYgTUlMQU4KK0lWQU5JxIYgTkVWRU5LQQorSVZBTknEhiBQRVJTSURBCitJVkFOScSGIFBFVEFSCitJVkFOScSGIFNORcW9QU5BCitJVkFOScSGIFNURVZBTgorSVZBTknEhiBaTEFUT0pFCitJVkFOSkkgU0lOScWgQQorSVZBTkpJIFZFUk9OSUtBCitJVkFOS09WScSGIMSMRURPTUlSCitJVkFOS09WScSGIMSQT1LEkEUKK0lWQU5LT1ZJxIYgQk/FvUFOQQorSVZBTktPVknEhiBCT8W9TworSVZBTktPVknEhiBKQU5LTworSVZBTktPVknEhiBNQVJJTktPCitJVkFOS09WScSGIE1JTEVOS08KK0lWQU5LT1ZJxIYgTUlMRQorSVZBTktPVknEhiBNSUxLQQorSVZBTktPVknEhiBNSUxLQQorSVZBTktPVknEhiBORU5BRAorSVZBTktPVknEhiBOT1ZPCitJVkFOS09WScSGIFJBREUKK0lWQU5LT1ZJxIYgUkFERQorSVZBTktPVknEhiBTQVZPCitJVkFOS09WScSGIFNMQVZLTworSVZBTktPVknEhiBUSUhPTUlSCitJVkFOS09WScSGIFpEUkFWS08KK0lWQU5PViDFvUlWQU4KK0lWQU5PViDEkE9LQQorSVZBTk9WIMSQT1LEkEUKK0lWQU5PViDEkFVSxJBFVktBCitJVkFOT1YgxJBVUsSQSU5LQQorSVZBTk9WIEJPUklTCitJVkFOT1YgRElNSVRBUgorSVZBTk9WIERSQUdJQ0EKK0lWQU5PViBEUkFHT1NMQVZBCitJVkFOT1YgRU1JTElKQQorSVZBTk9WIEVWSUNBCitJVkFOT1YgR0FWUkEKK0lWQU5PViBKVUxLQQorSVZBTk9WIEtBVElDQQorSVZBTk9WIExKVUJPTUlSCitJVkFOT1YgTUFSSUNBCitJVkFOT1YgTUFSSUpBCitJVkFOT1YgTUnFoEEKK0lWQU5PViBNSUxFTktPCitJVkFOT1YgTUlMRQorSVZBTk9WIE1JTE9SQUQKK0lWQU5PViBNSVRBCitJVkFOT1YgTklLT0xBCitJVkFOT1YgT0xJVkVSQQorSVZBTk9WIFBFVEFSCitJVkFOT1YgU0VSR0lKRQorSVZBTk9WIFNMQVZLTworSVZBTk9WIFZFUkEKK0lWQU5PViBaRFJBVktPCitJVkFOT1YgWk9SQQorSVZBTk9WIFpPUklDQQorSVZBTk9WScSGIMSMRURPTUlSCitJVkFOT1ZJxIYgxb1JS0EKK0lWQU5PVknEhiDFvUlWT1JBRAorSVZBTk9WScSGIMSQT1LEkEUKK0lWQU5PVknEhiBBTEVLU0EKK0lWQU5PVknEhiBBTkdFTElOQQorSVZBTk9WScSGIEJPxb1BCitJVkFOT1ZJxIYgQk9HREFOCitJVkFOT1ZJxIYgQlJBTklTTEFWQQorSVZBTk9WScSGIEJSQU5JU0xBVgorSVZBTk9WScSGIEJSQU5JU0xBVgorSVZBTk9WScSGIEJSQU5JU0xBVgorSVZBTk9WScSGIEJSQU5JU0xBVgorSVZBTk9WScSGIENWRUpBCitJVkFOT1ZJxIYgREVTQU5LQQorSVZBTk9WScSGIERFU0EKK0lWQU5PVknEhiBESU1JVFJJSkUKK0lWQU5PVknEhiBEUkFHQU4KK0lWQU5PVknEhiBEUkFHQU4KK0lWQU5PVknEhiBEUkFHQU4KK0lWQU5PVknEhiBEUkFHQU4KK0lWQU5PVknEhiBEUkFHQU4KK0lWQU5PVknEhiBEUkFHT0xKVUIKK0lWQU5PVknEhiBEUkFHT0xKVUIKK0lWQU5PVknEhiBEVcWgQU5LQQorSVZBTk9WScSGIERVxaBBTgorSVZBTk9WScSGIEZSQU5KQQorSVZBTk9WScSGIElMSUpBCitJVkFOT1ZJxIYgSUxJSkEKK0lWQU5PVknEhiBJVkFOIERSCitJVkFOT1ZJxIYgSkFOT8WgCitJVkFOT1ZJxIYgSkVMRU5BCitJVkFOT1ZJxIYgSk9SREFOCitJVkFOT1ZJxIYgSk9WQU4KK0lWQU5PVknEhiBLT1ZJTktBCitJVkFOT1ZJxIYgS1JTVE9NSVIKK0lWQU5PVknEhiBLU0VOSUpBCitJVkFOT1ZJxIYgTEpVQklDQQorSVZBTk9WScSGIExKVUJJU0FWCitJVkFOT1ZJxIYgTEpVQk9NSVIKK0lWQU5PVknEhiBMSlVERVZJVAorSVZBTk9WScSGIE1BUklKQQorSVZBTk9WScSGIE1BUklOS08KK0lWQU5PVknEhiBNQVJLTworSVZBTk9WScSGIE1JTEFOIFNVRElKQQorSVZBTk9WScSGIE1JTEVOS08KK0lWQU5PVknEhiBNSUxFTktPCitJVkFOT1ZJxIYgTUlMRVRBCitJVkFOT1ZJxIYgTUlMRVZBCitJVkFOT1ZJxIYgTUlMSUNBCitJVkFOT1ZJxIYgTUlMSUpBCitJVkFOT1ZJxIYgTUlMS0EKK0lWQU5PVknEhiBNSUxLTworSVZBTk9WScSGIE1JTE9SQUQKK0lWQU5PVknEhiBNSUxVTgorSVZBTk9WScSGIE1JTFVUSU4KK0lWQU5PVknEhiBNSU9EUkFHCitJVkFOT1ZJxIYgTUlSQQorSVZBTk9WScSGIE1JUkpBTkEKK0lWQU5PVknEhiBNSVJLTworSVZBTk9WScSGIE1JUk9TTEFWCitJVkFOT1ZJxIYgTUlST1NMQVYKK0lWQU5PVknEhiBNTEFERU4KK0lWQU5PVknEhiBORUJPSsWgQQorSVZBTk9WScSGIE5FR09WQU4KK0lWQU5PVknEhiBOSUtPTEEKK0lWQU5PVknEhiBPQlJBRAorSVZBTk9WScSGIFBFVEFSCitJVkFOT1ZJxIYgUEVUUkEKK0lWQU5PVknEhiBSQcWgS08KK0lWQU5PVknEhiBSQURNSUxBCitJVkFOT1ZJxIYgUkFET01JUgorSVZBTk9WScSGIFJBRE9TTEFWCitJVkFOT1ZJxIYgUkFET1ZBTgorSVZBTk9WScSGIFNFTElNSVIKK0lWQU5PVknEhiBTSU1PCitJVkFOT1ZJxIYgU0xPQk9EQU5LQQorSVZBTk9WScSGIFNMT0JPREFOCitJVkFOT1ZJxIYgU0xPQk9EQU4KK0lWQU5PVknEhiBTTE9CT0RBTgorSVZBTk9WScSGIFNMT0JPREFOCitJVkFOT1ZJxIYgU1RBTUVOCitJVkFOT1ZJxIYgU1RBTklTTEFWQQorSVZBTk9WScSGIFNUQU5LQQorSVZBTk9WScSGIFNURVZBTgorSVZBTk9WScSGIFNURVZBTgorSVZBTk9WScSGIFNUT0pBTgorSVZBTk9WScSGIFZBU0lMSUpFCitJVkFOT1ZJxIYgVkVMSUJPUgorSVZBTk9WScSGIFZJVE9NSVIKK0lWQU5PVknEhiBWTEFEQQorSVZBTk9WScSGIFZMQURBCitJVkFOT1ZJxIYgVk9KSVNMQVYKK0lWQU5PVknEhiBWT0pJU0xBVgorSVZBTk9WScSGIFZVS09TQVZBCitJVkFOT1ZJxIYgWk9SQU4gRElQTCBJTkcKK0lWQU5PVknEhiBaT1JBCitJVkFOT1ZTS0kgxJBPUsSQRQorSVZBTk9WU0tJIEJMQUdPSkUKK0lWQU5PVlNLSSBJTElKQQorSVZBTk9WU0tJIFNUQU5BCitJVkFUT1ZJxIYgQlJBTktPCitJVkVHRcWgIEFOQQorSVZFR0XFoCBJxaBUVkFOIERJUEwgSU5HCitJVkVHRcWgIExBU0xPCitJVkVLIFZMQURJTUlSCitJVkVUScSGIEJSQU5JU0xBVkEKK0lWRVRJxIYgQlJBTklTTEFWQQorSVZFVEnEhiBESU1JVFJJSkUKK0lWRVRJxIYgRFJBR0FOCitJVkVUScSGIExBWkEKK0lWRVRJxIYgTEpJTEpBTkEKK0lWRVRJxIYgTUlMT0pLTworSVZFVEnEhiBSQURFIERSCitJVkVUScSGIFJBREUgRFIKK0lWRVRJxIYgUkFET1ZBTgorSVZFVEnEhiBWQVNBCitJVkVUScSGIFZFU05BCitJVkVaScSGIEFMRUtTQU5EQVIKK0lWRVpJxIYgRFJBR08KK0lWRVpJxIYgR09KS08KK0lWRVpJxIYgTUFSS08gRFIKK0lWRVpJxIYgTUlMRQorSVZFWknEhiBaT1JBTgorSVZFWknEhiBaVk9OS08KK0lWScSMScSGIE1JUkEKK0lWScSMScSGIE5BREEKK0lWScSMScSGLVRPTUnEhiBCSUxKQU5BCitJVknEhiBCTEFHT01JUgorSVZJxIYgREVTQU5LQQorSVZJxIYgSlVMSUpBCitJVknEhiBNRUxJVEEKK0lWScSGIE1JUktPIE1SIFBICitJVknEhiBQRVRBUiBESVBMIE9FQworSVZJxIYgUkFERQorSVZJxIYgU1RPSkFOCitJVknEhiBWQVNJTElKRQorSVZJxIYgVkFTTworSVZJxIYgVk9KSU1JUgorSVZJxIYgWkxBVEtPCitJVktPViDEjEVET01JUgorSVZLT1Ygxb1JVktBCitJVktPViDEkE9SxJBFCitJVktPViBCT8WgS08KK0lWS09WIEJPUklWT0oKK0lWS09WIERBTklMTworSVZLT1YgRE9CUklWT0oKK0lWS09WIERVxaBBTgorSVZLT1YgSVNBCitJVktPViBJVkFOCitJVktPViBKRUxFTkEKK0lWS09WIEpFTEVOQQorSVZLT1YgS0FUSUNBCitJVktPViBLQVRJQ0EKK0lWS09WIEtBVElDQQorSVZLT1YgTUlMRU5LTworSVZLT1YgTUlMSUNBCitJVktPViBNSUxPVkFOCitJVktPViBPTEdJQ0EKK0lWS09WIFBFVEFSCitJVktPViBSQURPU0xBVgorSVZLT1YgUkFET1ZBTgorSVZLT1YgU0FWQQorSVZLT1YgU0VLVUxBCitJVktPViBTTEFWS08KK0lWS09WIFNMT0JPREFOCitJVktPViBTTE9CT0RBTgorSVZLT1YgU1RBTkEKK0lWS09WIFNUQU5JU0xBVkEKK0lWS09WIFNURVZBTgorSVZLT1YgU1RFVkFOCitJVktPViBTVEVWQU4KK0lWS09WIFVST8WgCitJVktPViBWT0pJU0xBVgorSVZLT1ZJxIYgxJBVUk8KK0lWS09WScSGIEFOVFVOCitJVktPVknEhiBBUlNBCitJVktPVknEhiBCT8W9QQorSVZLT1ZJxIYgQk9HREFOCitJVktPVknEhiBCT1JJU0xBVgorSVZLT1ZJxIYgQk9SSVNMQVYKK0lWS09WScSGIERFSkFOCitJVktPVknEhiBESVZOQQorSVZLT1ZJxIYgRFJBR0FOIERJUEwgSU5HCitJVktPVknEhiBEVcWgQU4KK0lWS09WScSGIERVxaBBTgorSVZLT1ZJxIYgRFXFoEFOCitJVktPVknEhiBFU1RFUkEKK0lWS09WScSGIEdVU1RBViBEUgorSVZLT1ZJxIYtSVZBTkRFS0nEhiBEQU5JQ0EKK0lWS09WScSGIEpFTEVOQQorSVZLT1ZJxIYgSk9WQU4KK0lWS09WScSGIEtPVklMSktBCitJVktPVknEhi1MQVpBUiBUQVRKQU5BIERSCitJVktPVknEhiBMVUtBCitJVktPVknEhiBNSUhBSkxPCitJVktPVknEhiBNSUxBTktBCitJVktPVknEhiBNSUxBTgorSVZLT1ZJxIYgTUlMRU5USUpFCitJVktPVknEhiBNSUxFVkEKK0lWS09WScSGIE1JTEUKK0lWS09WScSGIE1JTElDQQorSVZLT1ZJxIYgTUlMT0xKVUIgRElQTCBJTkcKK0lWS09WScSGIE1JTE9SQUQKK0lWS09WScSGIE1JTFVUSU4KK0lWS09WScSGIE1JUkpBTkEKK0lWS09WScSGIE1MQURFTgorSVZLT1ZJxIYgTkFUQcWgQQorSVZLT1ZJxIYgTkFUQcWgQQorSVZLT1ZJxIYgTkVCT0rFoEEKK0lWS09WScSGIE5JS09MQQorSVZLT1ZJxIYgTklLT0xBCitJVktPVknEhiBQRVRBUgorSVZLT1ZJxIYgUFJFRFJBRworSVZLT1ZJxIYgUkFESVNBVgorSVZLT1ZJxIYgUkFOS08KK0lWS09WScSGIFNURVZBTgorSVZLT1ZJxIYgU1RPSkFOCitJVktPVknEhiBWRVJBCitJVktPVknEhiBWRVJBCitJVktPVknEhiBWRVJJQ0EKK0lWS09WScSGIFZMQURJTUlSCitJVktPVknEhiBWTEFKS08KK0lWS09WScSGIFpBR09SS0EKK0lWS09WScSGIFpEUkFWS08KK0lWS09WScSGIFpPUklDQQorSVZPxaAgQUxFS1NBTkRBUgorSVZPxaAgUk9ET0xKVUIKK0lWT8WgIFZPSklTTEFWCitJVk/FoEVWIEFMRUtTQU5EQVIKK0lWT8WgRVYgRFXFoEFOCitJVk/FoEVWIElMSUpBCitJVk/FoEVWIEtBVEFSSU5BCitJVk/FoEVWIEtPU1RBCitJVk/FoEVWIE1BUktPCitJVk/FoEVWIFNMQVZLTworSVZPxaBFViBWT0pJU0xBVgorSVZPxaBFVknEhiDEkFVSTworSVZPxaBFVknEhiBBTEVLU0FORFJBCitJVk/FoEVWScSGIERBTklDQQorSVZPxaBFVknEhiBHT0pLTworSVZPxaBFVknEhiBNSUxBTgorSVZPxaBFVknEhiBNSUxFTktPCitJVk/FoEVWScSGIFNBVkEKK0lWT8WgRVZJxIYgU0xPQk9EQU4KK0lWT8WgRVZJxIYgWk9SQU4KK0lWT1ZJxIYgTEpVQknFoEEKK0lWT1ZJxIYgUEVUQVIKK0laQlJBREnEhiBTVEVWQU4KK0laR0FSSkFOIE1JTElWT0oKK0pBxaDEjEVOS09WIFNUQU5BCitKQcWgQVIgSEFTQU4KK0pBxaBBUkFHScSGIElWQU5LQQorSkHFoEFSQUdJxIYgWklKTworSkHFoEFSRVZJxIYgSFVTRUlOCitKQcWgQVJFVknEhiBNVUhBUkVNCitKQcWgQVJFVknEhiBSQU1PCitKQcWgQVJFVknEhiBWT0pJU0xBVgorSkHFoEFSSSBExb1BRkVSCitKQcWgQVJPViDFoEFJUAorSkHFoEnEhiBERVNBTktBCitKQcWgScSGIFNJTknFoEEKK0pBxaBJTlNLSSBSVcW9QQorSkHFoE8gQU5BCitKQcWgTyBKT8W9RUYgRFIKK0pBxaBPIE1JTE9TQVYKK0pBxaBPIE1JUk9TTEFWQQorSkHFoE9WScSGIEdPSktPCitKQcSGRVZJxIYgTUlPRFJBRworSkHEhklNT1ZJxIYgQUxFS1NBTkRBUiBMRUtBUgorSkHEhklNT1ZJxIYgQk9KSU4KK0pBxIZJTU9WScSGIEpPVkEKK0pBxIZJTU9WScSGIE1JTEVOS08KK0pBxIZJTU9WScSGIE1JTE9KS08KK0pBxIZJTU9WScSGIE1JUkpBTkEKK0pBxIZJTU9WScSGIFBFVEFSCitKQcSGSU1PVknEhiBTVEVWTworSkHEhklNT1ZJxIYgVk9KSVNMQVYKK0pBxIZJTU9WU0tJIE1PSlNFCitKQUJMQU5PViDEkFVLQQorSkFCTEFOT1YgRFJBR0lDQQorSkFCTEFOT1YgSUdOSkFUSUpFCitKQUJMQU5PViBKRUxFTkEKK0pBQkxBTk9WIExKVUJPTUlSCitKQUJMQU5PViBNSUxPUkFEIERJUEwgSU5HCitKQUJMQU5PViBaT1JBCitKQUJMQU5PViBaT1JBCitKQUJMQU5PVknEhiBERVNBTktBCitKQUJMQU5PVknEhiBSQVRLTworSkFDQU5PVknEhiDFvUlWS0EKK0pBQ0FOT1ZJxIYgR0FCUklKRUxBCitKQUNBTk9WScSGIFZMQURJTUlSCitKQUNJxaBJTiBBTktBCitKQUNJxIYgREFSSU5LQQorSkFDScSGIERSQUdBTgorSkFHRVIgQU5BCitKQUdFUiBNQVJJTgorSkFHRVIgTUlIQUpMTworSkFHRVIgUEFWQU8KK0pBR0VUScSGIEFMRUtTQU5EQVIKK0pBR0VUScSGIE1JTE/FoAorSkFHRVRJxIYgU1RFVkFOCitKQUdFVEnEhiBWRUxJTUlSCitKQUdFVEnEhiBWT0pJU0xBVgorSkFHScSGIFNMQVZJQ0EKK0pBR0xJQ0EgQlJBTktPCitKQUdMSUNBIFNMT0JPREFOCitKQUdOSknEhiBEUkFHQU4KK0pBR09EScSGIEFOxJBFTEtPCitKQUdPREnEhiBEVcWgQU4KK0pBR09EScSGIE1JTElDQQorSkFHT0RJxIYgTUlST1NMQVYKK0pBR09EScSGIFBFVEFSCitKQUdPREnEhiBSQU5LTworSkFHT0RJxIYgVkVMSktPCitKQUdPREnEhiBWTEFETworSkFHVcWgVC1BS0tBRCBMQURBCitKQUhKQSBSRcWgQUQKK0pBSFVSQSBWVUtBxaBJTgorSkFKxIxBTklOIEJPxb1PCitKQUrEjEVWScSGIEFOR0VMQQorSkFKQUdJTiBSQURPVkFOCitKQUpBR0lOIFNQQVNPSkUKK0pBSkFHSU4gWk9SSUNBCitKQUpJxIYgxJBPUsSQRSBEUgorSkFKScSGIMSQT1LEkEUKK0pBSknEhiBEUkFHQU4KK0pBSknEhiBJTElKQQorSkFKScSGIElWQU5LQQorSkFKScSGIExBWkFSCitKQUpJxIYgTEVOS0EKK0pBSknEhiBNSUxFTkEKK0pBSknEhiBNSUxJQ0EKK0pBSknEhiBOSUtPTEEKK0pBSknEhiBTQVZBCitKQUpJxIYgU1RFVkFOCitKQUpJxIYgU1ZFVExBTkEKK0pBSklOIExBRElTTEFWCitKQUpJTiBNSVJKQU5BCitKQUpJTiBaTEFUS08KK0pBS8WgQSBQSVJPxaBLQQorSkFLxaBFVkFDIERSQUdPCitKQUvFoEnEhiDFvUFSS08KK0pBS8WgScSGIMSQT1LEkEUKK0pBS8WgScSGIMSQT1LEkEUKK0pBS8WgScSGIMSQVVJBCitKQUvFoEnEhiBBTkEKK0pBS8WgScSGIEJPR0RBTgorSkFLxaBJxIYgQk9HREFOCitKQUvFoEnEhiBCT0pBTgorSkFLxaBJxIYgQlJBTktPCitKQUvFoEnEhiBEQU5FCitKQUvFoEnEhiBEQU5FCitKQUvFoEnEhiBEQU5FCitKQUvFoEnEhiBERUpBTgorSkFLxaBJxIYgRE1JVEFSCitKQUvFoEnEhiBEUkFHQU4KK0pBS8WgScSGIERVxaBBTktBCitKQUvFoEnEhiBEVcWgQU5LQQorSkFLxaBJxIYgRFXFoEFOCitKQUvFoEnEhiBEVcWgQU4KK0pBS8WgScSGIERVxaBBTgorSkFLxaBJxIYgRFXFoEFOCitKQUvFoEnEhiBEVcWgQU4KK0pBS8WgScSGIERVxaBLTworSkFLxaBJxIYgRU1JTAorSkFLxaBJxIYgSUxJSkEKK0pBS8WgScSGIElMSUpBCitKQUvFoEnEhiBJVklDQQorSkFLxaBJxIYgSVZJQ0EKK0pBS8WgScSGIEpBRFJBTktBCitKQUvFoEnEhiBKQVNNSU5LQQorSkFLxaBJxIYgSkVMRU5BCitKQUvFoEnEhiBKT1ZBTktBCitKQUvFoEnEhiBKT1ZBTgorSkFLxaBJxIYgSk9WQU4KK0pBS8WgScSGIEtBVElDQQorSkFLxaBJxIYgTEpJTEpBCitKQUvFoEnEhiBMSlVCSVNBVgorSkFLxaBJxIYgTEpVQk9NSVIKK0pBS8WgScSGIExKVUJPTUlSCitKQUvFoEnEhiBMSlVCT01JUgorSkFLxaBJxIYgTEpVQk9NSVIKK0pBS8WgScSGIE1BUktPCitKQUvFoEnEhiBNQVJLTworSkFLxaBJxIYgTUFSS08KK0pBS8WgScSGIE1JSkFUCitKQUvFoEnEhiBNSUxBTgorSkFLxaBJxIYgTUlMQU4KK0pBS8WgScSGIE1JTEVOS08KK0pBS8WgScSGIE1JTEVWQQorSkFLxaBJxIYgTUlMT8WgCitKQUvFoEnEhiBNSUxPUkFECitKQUvFoEnEhiBNSUxPUkFECitKQUvFoEnEhiBNSU9EUkFHCitKQUvFoEnEhiBNSVJLTworSkFLxaBJxIYgTkVCT0rFoEEKK0pBS8WgScSGIE5FREVMSktPCitKQUvFoEnEhiBORU5BRAorSkFLxaBJxIYgUEFWTEUKK0pBS8WgScSGIFBBVkxFCitKQUvFoEnEhiBQRVRBUgorSkFLxaBJxIYgUEVUQVIKK0pBS8WgScSGLVBST1bEjEkgQlJBTktBCitKQUvFoEnEhiBSQURFTktPCitKQUvFoEnEhiBSQURFCitKQUvFoEnEhiBSQURFCitKQUvFoEnEhiBSQURJxaBBCitKQUvFoEnEhiBSQURPSktPCitKQUvFoEnEhiBSQURPVkFOCitKQUvFoEnEhiBSQURVTgorSkFLxaBJxIYgUklTVE8KK0pBS8WgScSGIFJPU0EKK0pBS8WgScSGIFJVxb1JQ0EKK0pBS8WgScSGIFJVxb1JQ0EKK0pBS8WgScSGIFNBVkEKK0pBS8WgScSGIFNMT0JPREFOCitKQUvFoEnEhiBTTUlMSkEKK0pBS8WgScSGIFNURVZBTgorSkFLxaBJxIYgU1ZFVEtPCitKQUvFoEnEhiBTVkVUTEFOQSBESVBMIFBICitKQUvFoEnEhiBUT01JU0xBVgorSkFLxaBJxIYgVkFTSUxJSkUKK0pBS8WgScSGIFZFTElNSVIKK0pBS8WgScSGIFZFUkEKK0pBS8WgScSGIFZMQURBCitKQUvFoEnEhiBWTEFESU1JUgorSkFLxaBJxIYgVk9KSVNMQVYKK0pBS0FCIERFxb1FCitKQUtBQiBKT8W9RUYKK0pBS0FCIFBBVkVMCitKQUtFxaBFVknEhiBEUkFHQU4KK0pBS0XFoEVWScSGIE5JS08KK0pBS0nFoEEgScWgVFZBTgorSkFLScSGIMSQT1LEkEUKK0pBS0nEhiBEQU5JQ0EKK0pBS0nEhiBEQVJBCitKQUtJxIYgREVTQU5LQQorSkFLScSGIE1JTEFOS0EKK0pBS0nEhiBNSU9EUkFHCitKQUtJxIYgTklLT0xBCitKQUtJxIYgU1RFVkFOCitKQUtJxIYgVklEQQorSkFLSUNBIMSMRURPCitKQUtJQ0EgSUxJSkEKK0pBS0lNT1YgU0xBVktPIERSIExFS0FSCitKQUtJTU9WQS1HQVpFUE9WQSBKVUxLQSBEUgorSkFLSU1PVlNLSSBCTEFHT0oKK0pBS0lNT1ZTS0kgQk9HT1NMQVYKK0pBS0lNT1ZTS0kgQk9SS08KK0pBS0lNT1ZTS0kgREFORQorSkFLTEnEhiBJVkFOCitKQUtPQiBKT8WgS0EKK0pBS09CIEpPxb1FRgorSkFLT0IgTEFKT8WgCitKQUtPQkFDIMSQVVLEkElDQQorSkFLT0JJIEJPUklTCitKQUtPQkkgVEFUSkFOQQorSkFLT0JJIFZJTE1PxaAKK0pBS09CT1ZJxIYgRlJBTkpPCitKQUtPQlMgScWgVFZBTgorSkFLT05JxIYgRFJBR09TTEFWIERSCitKQUtPTknEhiBKQVNNSU5BCitKQUtPTknEhiBNSUxBTiBESVBMIE9FQworSkFLT05JxIYgUkFETUlMQQorSkFLT1DEjEVWScSGIEJSQU5LQQorSkFLT1BPVknEhiBCUkFOSVNMQVZBCitKQUtPUE9WScSGIE1JUk9TTEFWCitKQUtPUE9WScSGIFZMQURJTUlSCitKQUtPVElOIMW9SVZLTworSkFLT1RJTiBLT1NUQQorSkFLT1RJTiBQTEVNRU5LQQorSkFLT1YgU0FMQU1VTgorSkFLT1ZBQyBJVkFOCitKQUtPVknEhiBSQURFCitKQUtPVkxKRVYgxb1BUktPCitKQUtPVkxKRVYgxJBVUkEKK0pBS09WTEpFViDEkFVSSUNBCitKQUtPVkxKRVYgQUxFS1NFSgorSkFLT1ZMSkVWIERBTklDQQorSkFLT1ZMSkVWIERSQUdBTgorSkFLT1ZMSkVWIERVxaBBTgorSkFLT1ZMSkVWIElWQU4KK0pBS09WTEpFViBKRUZSRU0KK0pBS09WTEpFViBLQVRBCitKQUtPVkxKRVYgS09TVEEKK0pBS09WTEpFViBLUklTVElGT1IKK0pBS09WTEpFViBNQVJJTkEKK0pBS09WTEpFViBNSUxPxaAKK0pBS09WTEpFViBNSUxPxaAKK0pBS09WTEpFViBNSVJPU0xBVgorSkFLT1ZMSkVWIFJBRE9WQU4KK0pBS09WTEpFViBTTE9CT0RBTgorSkFLT1ZMSkVWIFNWRVRPWkFSCitKQUtPVkxKRVYgVkxBREEKK0pBS09WTEpFViBaTEFUT0pFCitKQUtPVkxKRVZJxIYgxb1JVkFOCitKQUtPVkxKRVZJxIYgxb1JVk9SQUQKK0pBS09WTEpFVknEhiDEkE9SxJBFCitKQUtPVkxKRVZJxIYgxJBPUsSQTworSkFLT1ZMSkVWScSGIMSQVVLEkElOS0EKK0pBS09WTEpFVknEhiBBTEVLU0FOREFSCitKQUtPVkxKRVZJxIYgQU5BCitKQUtPVkxKRVZJxIYgQk/FvUFOQQorSkFLT1ZMSkVWScSGIEJPR0RBTgorSkFLT1ZMSkVWScSGIEJPUknFoEEKK0pBS09WTEpFVknEhiBCUkFOS0EKK0pBS09WTEpFVknEhiBEQU1KQU4KK0pBS09WTEpFVknEhiBEQU1KQU4KK0pBS09WTEpFVknEhiBESVZOQQorSkFLT1ZMSkVWScSGIERSQUdBTgorSkFLT1ZMSkVWScSGIERSQUdPU0xBVgorSkFLT1ZMSkVWScSGIEVNSUxJSkEKK0pBS09WTEpFVknEhiBHT0pLTworSkFLT1ZMSkVWScSGIEdST1pEQU5BCitKQUtPVkxKRVZJxIYgSUdOSkFUCitKQUtPVkxKRVZJxIYgSkFOSkEKK0pBS09WTEpFVknEhiBKT1NPCitKQUtPVkxKRVZJxIYgSk9WQU4KK0pBS09WTEpFVknEhiBKT1ZBTgorSkFLT1ZMSkVWScSGIEpPVk8KK0pBS09WTEpFVknEhiBKT1ZPCitKQUtPVkxKRVZJxIYgTEFaQVIKK0pBS09WTEpFVknEhiBMSklMSkFOQQorSkFLT1ZMSkVWScSGIExKVUJJTktPCitKQUtPVkxKRVZJxIYgTFVLQQorSkFLT1ZMSkVWScSGIE1BUktPCitKQUtPVkxKRVZJxIYgTUlMQU5BCitKQUtPVkxKRVZJxIYgTUlMQU4KK0pBS09WTEpFVknEhiBNSUxBTgorSkFLT1ZMSkVWScSGIE1JTEVOQQorSkFLT1ZMSkVWScSGIE1JTEnEhgorSkFLT1ZMSkVWScSGIE1JTElDQQorSkFLT1ZMSkVWScSGIE1JTElDQQorSkFLT1ZMSkVWScSGIE1JTElWT0ogTVIgUEgKK0pBS09WTEpFVknEhiBNSUxKQU5BCitKQUtPVkxKRVZJxIYgTUlMT8WgCitKQUtPVkxKRVZJxIYgTUlMT1ZBTgorSkFLT1ZMSkVWScSGIE1JTFVUSU4KK0pBS09WTEpFVknEhiBNSVJKQU5BCitKQUtPVkxKRVZJxIYgTUlSS08KK0pBS09WTEpFVknEhiBNSVJPU0xBVgorSkFLT1ZMSkVWScSGIE1JVEEKK0pBS09WTEpFVknEhiBOSUtPTEEKK0pBS09WTEpFVknEhiBPQlJBRAorSkFLT1ZMSkVWScSGIFBBSkEKK0pBS09WTEpFVknEhiBSQURJxaBBCitKQUtPVkxKRVZJxIYgUkFESVZPSgorSkFLT1ZMSkVWScSGIFJBRE9KS08KK0pBS09WTEpFVknEhiBTQVZBCitKQUtPVkxKRVZJxIYgU0lNTworSkFLT1ZMSkVWScSGIFNMT0JPREFOCitKQUtPVkxKRVZJxIYgU09OSkEKK0pBS09WTEpFVknEhiBTVEVWQU4KK0pBS09WTEpFVknEhiBUQVRKQU5BCitKQUtPVkxKRVZJxIYgVkFTQQorSkFLT1ZMSkVWScSGIFZBU0EKK0pBS09WTEpFVknEhiBWQVNJTElKRQorSkFLT1ZMSkVWScSGIFZJS1RPUgorSkFLT1ZMSkVWScSGIFZJS1RPUgorSkFLT1ZMSkVWScSGIFZJS1RPUgorSkFLT1ZMSkVWScSGIFpEUkFWS08KK0pBS09WT1ZJxIYgRFXFoEFOCitKQUtVxaAgTUlSSkFOQQorSkFLVUJFQyDEkFVSQQorSkFLVUJFQyBMQURJU0xBVgorSkFNQSBOQURBCitKQU1CT1IgQU5EUkVBCitKQU1CT1IgREFOSUVMQQorSkFNQk9SIElNUkUKK0pBTUJPUiBNSUhBTEoKK0pBTUJSVcWgScSGIEZSQU5KTworSkFNSU5BIE1JTE9WQU4KK0pBTUlOQSBSQVRLTworSkFNUklLIMSQT1LEkEUKK0pBTVJJSyBKRUxFTkEKK0pBTVJJSyBMSlVCSUNBCitKQU1SSUsgT1RPCitKQU7EjEEgREVKQU4gRFIKK0pBTsSMQSBLT1NUQSBEUgorSkFOxIxBIExKVUJJQ0EKK0pBTsSMScSGIEJJTEpBTkEKK0pBTsSMScSGIEJPxb1BTkEKK0pBTsSMScSGIEJPR0RBTgorSkFOxIxJxIYgRElNSVRSSUpFCitKQU7EjEnEhiBEUkFHSU5KQQorSkFOxIxJxIYgRFJBR09TTEFWQQorSkFOxIxJxIYgRFJBR09TTEFWCitKQU7EjEnEhiBEVcWgQU4KK0pBTsSMScSGIERVxaBBTgorSkFOxIxJxIYgR09SREFOQQorSkFOxIxJxIYgR09SSUNBCitKQU7EjEnEhiBKRVJPU0lNCitKQU7EjEnEhiBMSlVCSUNBCitKQU7EjEnEhiBNSUxPxaAKK0pBTsSMScSGIE1JUk9TTEFWCitKQU7EjEnEhiBNTEFERU4KK0pBTsSMScSGIE5JS09MQQorSkFOxIxJxIYgUEVSQQorSkFOxIxJxIYgUEVUQVIKK0pBTsSMScSGIFJBRE9WQU4KK0pBTsSMScSGIFNBVkEKK0pBTsSMScSGIFNWRVRJU0xBVgorSkFOxIxJxIYgU1ZFVElTTEFWCitKQU7EjEnEhiBUSUhPTUlSCitKQU7EjEnEhiBUSU5LQQorSkFOxIxJxIYgVkVMSUJPUgorSkFOxIxJxIYgVklOS0EKK0pBTsSMScSGIFZMQURJTUlSCitKQU7EjEnEhiBWTEFTVEEKK0pBTsSMVVJJxIYgQUxFS1NBTkRBUgorSkFOxIxVUknEhiBEQVJJTktBCitKQU7EjFVSScSGIERVxaBBTgorSkFOxIxVUknEhiBKT1ZBTgorSkFOxIxVUknEhiBMQVpBUgorSkFOxIxVUknEhiBMRU5LQQorSkFOxIxVUknEhiBNSVJKQU5BCitKQU7EjFVSScSGIFNBVkEKK0pBTsW9RUtPVknEhiBNSUxFVktBCitKQU7FvUVLT1ZJxIYgT0xHQQorSkFOxb1FTEogQU5UT04KK0pBTkHEjEVLIMSQT1LEkEUKK0pBTkHEjEVLIEtBVElDQQorSkFOQcSMS09WScSGIFNUT0lMCitKQU5BxIYgSkFOT8WgCitKQU5BxIYgS0FST0xKCitKQU5DScSGIEJMQUdPSkUKK0pBTkNJxIYgUFJFRFJBRworSkFORFJJxIYgxJBVUklDQQorSkFORFJJxIYgQk9HREFOCitKQU5EUknEhiBKQU5EUklKQQorSkFORFJJxIYgTUFSSU5LTworSkFORFJJxIYgTUFSS08KK0pBTkRSScSGIE1BUktPCitKQU5EUknEhiBNScSGTworSkFORFJJxIYgTUlMRU5BCitKQU5EUknEhiBNSUxJTkEKK0pBTkRSScSGIE1JTEtBCitKQU5EUknEhiBNSUxPUkFECitKQU5EUknEhiBNSUxPUkFECitKQU5EUknEhiBNSVJPU0xBVgorSkFORFJJxIYgTUlST1NMQVYKK0pBTkRSScSGIE1JVEFSCitKQU5EUknEhiBNT03EjElMTworSkFORFJJxIYgTkVERUxKS08KK0pBTkRSScSGIFJBRE9WQU4KK0pBTkRSScSGIFJBVEtPCitKQU5EUknEhiBSSVNUTworSkFORFJJxIYgU0lNTworSkFORFJJxIYgU0xPQk9EQU4KK0pBTkRSScSGIFNSRVRFTgorSkFORFJJxIYgU1RBTktPCitKQU5EUknEhiBTVEFOS08KK0pBTkRSScSGIFNUQU5LTworSkFORFJJxIYgVUdMSkXFoEEKK0pBTkRSScSGIFZJREEKK0pBTkRSScSGIFZJTktBCitKQU5EUknEhiBaT1JBTgorSkFORFJJxIYgWk9SQU4KK0pBTkXFoCBORVZFTgorSkFORUdBIFNORcW9QU5BCitKQU5FViBCTEFHT0pFIERJUEwgSU5HCitKQU5FVlNLSSBBTEVLU0FOREFSCitKQU5JxIxJxIYgQkxBxb1PCitKQU5JxIxJxIYgQk/FvUEKK0pBTknEjEnEhiBKRUxFTkEKK0pBTknEjEnEhiBNSUxFVkEKK0pBTknEjEnEhiBNSVJLTworSkFOScSMScSGIFJBRE9KSUNBCitKQU5JxIxJxIYgU1RFVk8KK0pBTknEhiDEjEFTTEFWIERJUEwgSU5HCitKQU5JxIYgxb1JVk9SQUQKK0pBTknEhiBBTEVLU0FOREFSCitKQU5JxIYgQU7EkEVMS08KK0pBTknEhiBEVcWgQU4KK0pBTknEhiBEVcWgS08KK0pBTknEhi1ISUxUIEdPUkRBTkEKK0pBTknEhiBJUkVOQQorSkFOScSGIElWQU4gRFIKK0pBTknEhiBNSUxJU0FWCitKQU5JxIYgTkFEQQorSkFOScSGIFJBRE9KS0EKK0pBTknEhiBTTE9CT0RBTgorSkFOScSGIFZMQURJTUlSCitKQU5JxIZJSkVWScSGIE1JTEVOS08KK0pBTknEhklKRVZJxIYgTUlMT8WgCitKQU5JxIZJSkVWScSGIE1JUktPCitKQU5JxIZJSkVWScSGIE1PTcSMSUxPCitKQU5JxIZJSkVWScSGIE5BREXFvURBCitKQU5JxIZJSkVWScSGIE9aUkVOS0EKK0pBTknEhklKRVZJxIYgUkFUS08KK0pBTknEhklKRVZJxIYgU09GSUpBCitKQU5JxIZJSkVWScSGIFZJVE9NSVIKK0pBTknEhklOIEFOR0VMSU5BCitKQU5JxIZJTiBJTElKQQorSkFOSUNLSSBTVEFOSU1JUgorSkFOSUsgRkVSRU5DCitKQU5KQU5JTiBCUkFOS08KK0pBTkpBTklOIFNJTU8KK0pBTkpBVE9WScSGIERFSkFOCitKQU5KQVRPVknEhiBHT1JJQ0EKK0pBTkpBVE9WScSGIE1BTkUKK0pBTkpBVE9WScSGIE1JTEFOCitKQU5KQVRPVknEhiBNSVJLTworSkFOSkFUT1ZJxIYgTkVERUxKS08KK0pBTkpBVE9WScSGIE5JS09MQQorSkFOSkFUT1ZJxIYgU0xBVklDQQorSkFOSkFUT1ZJxIYgU0xBVklDQQorSkFOSkFUT1ZJxIYgVkVSQQorSkFOSkVUT1YgUkFEQQorSkFOSkVUT1ZJxIYgQlJBTktPCitKQU5KRVRPVknEhiBORUJPSsWgQQorSkFOSkVUT1ZJxIYgU0xBVklDQQorSkFOSkVUT1ZJxIYgU0xPQk9EQU4KK0pBTkpFVknEhiBEUkFHT1NMQVYKK0pBTkpFVknEhiBLU0VOSUpBCitKQU5KRVZJxIYgWk9SQU4KK0pBTkpFVknEhiBaT1JBTgorSkFOSknEjEnEhiBTSU1PCitKQU5KScWgIEpFTElDQQorSkFOSknEhiDEjEVET01JUgorSkFOSknEhiDFvUVMSktPCitKQU5KScSGIMW9SVZLQQorSkFOSknEhiDFvUlWS08KK0pBTkpJxIYgxJBPUsSQRSBEUgorSkFOSknEhiBCT8WgS08KK0pBTkpJxIYgREFOSUNBCitKQU5KScSGIERSQUdPTUlSIERJUEwgT0VDCitKQU5KScSGIElMSUpBCitKQU5KScSGIEpFTEEKK0pBTkpJxIYgSkVWUkVNCitKQU5KScSGIEpFVlRPCitKQU5KScSGIEpPVkFOCitKQU5KScSGIEpPVk8KK0pBTkpJxIYgSk9WTworSkFOSknEhiBKT1ZPCitKQU5KScSGIEtTRU5JSkEKK0pBTkpJxIYgTEpVQk9NSVIKK0pBTkpJxIYgTFVLQQorSkFOSknEhiBNQVJJSkEKK0pBTkpJxIYgTUFSS08KK0pBTkpJxIYgTUlMSUNBCitKQU5KScSGIE1JTElWT0oKK0pBTkpJxIYgTUlMS0EKK0pBTkpJxIYgTUlMT01JUgorSkFOSknEhiBNTEFERU4KK0pBTkpJxIYgTkFUQcWgQQorSkFOSknEhiBORUJPSsWgQQorSkFOSknEhiBSQURPVkFOCitKQU5KScSGIFNBVk8KK0pBTkpJxIYgU1RFVkFOCitKQU5KScSGIFZJVE9NSVIKK0pBTkpJxIYgVk9KSVNMQVYgTVIKK0pBTkpJxIYgVk9KS08KK0pBTkpJxIYgVlVLT1RBCitKQU5KSU4gQk9HT0xKVUIKK0pBTkpJTiBEQU1KQU4KK0pBTkpJTiBMQVpBUgorSkFOSklOIE1JTElWT0oKK0pBTkpJTiBSQURJVk9KCitKQU5KSU4gU05Fxb1BTkEKK0pBTkpPxaAgWk9SQU4KK0pBTkpPxaBFVknEhiBCUkFOSVNMQVYKK0pBTkpPxaBFVknEhiBNSUxJQ0EKK0pBTkpPxaBFVknEhiBTVEVWQU5LQQorSkFOSlXFoEVWScSGIEJPU0lMSktBCitKQU5KVcWgRVZJxIYgR09KS08KK0pBTkpVxaBFVknEhiBKT0tJQ0EKK0pBTkpVxaBFVknEhiBNSVJBCitKQU5KVcWgRVZJxIYgTkVERUxKS08KK0pBTkpVxaBFVknEhiBORURFTEpLTworSkFOSlXFoEVWScSGIFNUT0pBTgorSkFOS0EgxaBBTkRPUgorSkFOS0EgSVZBTgorSkFOS0FOSiBWTEFETworSkFOS0nEhiBLUklTVElOQQorSkFOS08gSkFOT8WgCitKQU5LT1YgQk9SSVNMQVYKK0pBTktPViBCT1JJU0xBVgorSkFOS09WIEJPUklTTEFWCitKQU5LT1YgQlJBTklTTEFWCitKQU5LT1YgRFJBR0lDQQorSkFOS09WIERVxaBBTgorSkFOS09WIElWQU4KK0pBTktPViBKRUxJQ0EKK0pBTktPViBKT1ZBTgorSkFOS09WIEpPVklDQQorSkFOS09WIE1JTEFOCitKQU5LT1YgTUlMSUpBTkEKK0pBTktPViBNSU9NSVIKK0pBTktPViBNSVRBCitKQU5LT1YgTUlUS08KK0pBTktPViBOQURBCitKQU5LT1YgTkVERUxKS08KK0pBTktPViBOSUtPTEEKK0pBTktPViBOSUtPTEEKK0pBTktPViBOT1ZLQQorSkFOS09WIFBSRURSQUcKK0pBTktPViBSQURJVk9KCitKQU5LT1YgUkFET1NMQVZBCitKQU5LT1YgUkFOxJBFTAorSkFOS09WIFNMT0JPREFOCitKQU5LT1YgU0xPQk9EQU4KK0pBTktPViBTTUlMSktBCitKQU5LT1YgU1BBU09KQQorSkFOS09WIFNSRURPSkUKK0pBTktPViBUSUhPTUlSCitKQU5LT1YgVkVSQQorSkFOS09WIFpBR09SS0EgRFIKK0pBTktPVknEhiDEjEFTTEFWCitKQU5LT1ZJxIYgxIxFRE8KK0pBTktPVknEhiDEjEVETworSkFOS09WScSGIMW9QVJLTyBESVBMIElORworSkFOS09WScSGIMW9QVJLTworSkFOS09WScSGIMW9SVZLTworSkFOS09WScSGIMW9SVZPUkFECitKQU5LT1ZJxIYgxb1JVk9SQUQKK0pBTktPVknEhiDFvUlWT1JBRAorSkFOS09WScSGIMSQT1LEkEUKK0pBTktPVknEhiDEkE9SxJBFCitKQU5LT1ZJxIYgxJBVUsSQSUNBCitKQU5LT1ZJxIYgxJBVUkEKK0pBTktPVknEhiBBTEVLU0FOREFSCitKQU5LT1ZJxIYgQUxFS1NBTkRBUgorSkFOS09WScSGIEFOQQorSkFOS09WScSGIEFOSUNBCitKQU5LT1ZJxIYgQU5LQQorSkFOS09WScSGIEJPxaBLTworSkFOS09WScSGIEJPxaBLTworSkFOS09WScSGIEJPxb1JREFSCitKQU5LT1ZJxIYgQk/FvUlEQVIKK0pBTktPVknEhiBCT8W9TworSkFOS09WScSGIEJPR09MSlVCCitKQU5LT1ZJxIYgQk9SSVZPSiBEUiBMRUtBUgorSkFOS09WScSGIEJSQU5LTworSkFOS09WScSGIEJSQVRJU0xBVgorSkFOS09WScSGIERBUkEKK0pBTktPVknEhiBESU1JVFJJSkUKK0pBTktPVknEhiBESU1JVFJJSkUKK0pBTktPVknEhiBESU1JVFJJSkUKK0pBTktPVknEhiBET0JSSVZPSkUKK0pBTktPVknEhiBET0JSSVZPSgorSkFOS09WScSGIERSQUdBTkEKK0pBTktPVknEhiBEUkFHQU4KK0pBTktPVknEhiBEUkFHQU4KK0pBTktPVknEhiBEUkFHQU4KK0pBTktPVknEhiBEUkFHSU5KQQorSkFOS09WScSGIERSQUdPTUlSCitKQU5LT1ZJxIYgRFJBR09TTEFWCitKQU5LT1ZJxIYgRFXFoEFOS0EKK0pBTktPVknEhiBEVcWgQU4KK0pBTktPVknEhiBEVcWgQU4KK0pBTktPVknEhiBEVcWgSUNBCitKQU5LT1ZJxIYgR09SREFOQQorSkFOS09WScSGIEdPUkRBTkEKK0pBTktPVknEhiBIUklTVElWT0pFCitKQU5LT1ZJxIYgSUdOSkFUCitKQU5LT1ZJxIYgSkVMSUNBCitKQU5LT1ZJxIYgSk9SREFOCitKQU5LT1ZJxIYgSk9WQU4KK0pBTktPVknEhiBKT1ZBTgorSkFOS09WScSGIEpPVkFOCitKQU5LT1ZJxIYgSk9WQU4KK0pBTktPVknEhiBKVUxJSkFOQQorSkFOS09WScSGIEtBTE1BTiBESVBMIElORworSkFOS09WScSGIEtBTE1BTgorSkFOS09WScSGIEtBVElDQQorSkFOS09WScSGIEtPVklMSktBCitKQU5LT1ZJxIYgS1JTVEEKK0pBTktPVknEhi1LVVpNQU7EjEVWIE9MSVZFUkEKK0pBTktPVknEhiBMQVNMTworSkFOS09WScSGIExBU0xPCitKQU5LT1ZJxIYgTEFaQVIKK0pBTktPVknEhiBMQVpBUgorSkFOS09WScSGIExKSUxKQU5BCitKQU5LT1ZJxIYgTEpVQklDQQorSkFOS09WScSGIExKVUJJQ0EKK0pBTktPVknEhiBMSlVCSUNBCitKQU5LT1ZJxIYgTEpVQk9NSVIKK0pBTktPVknEhiBNQVJBCitKQU5LT1ZJxIYgTUFSSUpBTgorSkFOS09WScSGIE1BUklKQQorSkFOS09WScSGIE1BUklKQQorSkFOS09WScSGIE1BUklKQQorSkFOS09WScSGIE1BUklKQQorSkFOS09WScSGIE1BUklOQQorSkFOS09WScSGIE1BUktPCitKQU5LT1ZJxIYgTUVMQU5JSkEKK0pBTktPVknEhiBNScSGQQorSkFOS09WScSGIE1JxIZBCitKQU5LT1ZJxIYgTUlMQU4KK0pBTktPVknEhiBNSUxFTkEKK0pBTktPVknEhiBNSUxFTktPCitKQU5LT1ZJxIYgTUlMRU5LTworSkFOS09WScSGIE1JTElDQQorSkFOS09WScSGIE1JTElDQQorSkFOS09WScSGIE1JTElKQU5BCitKQU5LT1ZJxIYgTUlMSU5LTworSkFOS09WScSGIE1JTElTQVYKK0pBTktPVknEhiBNSUxJVk9KRQorSkFOS09WScSGIE1JTE9KRQorSkFOS09WScSGIE1JTE9KSUNBCitKQU5LT1ZJxIYgTUlMT01JUgorSkFOS09WScSGIE1JTE9SQUQKK0pBTktPVknEhiBNSUxPUkFECitKQU5LT1ZJxIYgTUlMT1JBRAorSkFOS09WScSGIE1JTE9TQVYKK0pBTktPVknEhiBNSUxPU0FWCitKQU5LT1ZJxIYgTUlMT1NBVgorSkFOS09WScSGIE1JTFVUSU4KK0pBTktPVknEhiBNSUxVVElOCitKQU5LT1ZJxIYgTUlMVVRJTgorSkFOS09WScSGIE1JTFVUSU4KK0pBTktPVknEhiBNSVJKQU5BCitKQU5LT1ZJxIYgTUlST0xKVUIKK0pBTktPVknEhiBNSVRBUgorSkFOS09WScSGIE1MQURFTgorSkFOS09WScSGLU1SS0nEhiBaT1JBIERJUEwgSU5HCitKQU5LT1ZJxIYgTkFEQQorSkFOS09WScSGIE5BREEKK0pBTktPVknEhiBOQVNUQQorSkFOS09WScSGIE5FTkFECitKQU5LT1ZJxIYgTklLT0xBCitKQU5LT1ZJxIYgT0JSQUQKK0pBTktPVknEhiBQQVZMRQorSkFOS09WScSGIFBBVkxFCitKQU5LT1ZJxIYgUEFWTEUKK0pBTktPVknEhiBQRVRBUgorSkFOS09WScSGIFBFVEFSCitKQU5LT1ZJxIYgUEVUQVIKK0pBTktPVknEhiBQUlZPU0xBVgorSkFOS09WScSGIFBSVk9TTEFWCitKQU5LT1ZJxIYgUkFESVZPSkUKK0pBTktPVknEhiBSQURPTUlSCitKQU5LT1ZJxIYgUkFET1NMQVYKK0pBTktPVknEhiBSQURPU0xBVgorSkFOS09WScSGIFJBRE9WQU4KK0pBTktPVknEhiBSQUpLTworSkFOS09WScSGIFJBSktPCitKQU5LT1ZJxIYgUkFOS08KK0pBTktPVknEhiBSQVRLTworSkFOS09WScSGIFJPU0EKK0pBTktPVknEhiBSVcW9QQorSkFOS09WScSGIFNMQVZJQ0EKK0pBTktPVknEhiBTTEFWS08KK0pBTktPVknEhiBTTEFWS08KK0pBTktPVknEhiBTTE9CT0RBTgorSkFOS09WScSGIFNMT0JPREFOCitKQU5LT1ZJxIYgU0xPQk9EQU4KK0pBTktPVknEhiBTTE9CT0RBTgorSkFOS09WScSGIFNPRklKQQorSkFOS09WScSGIFNQQVNBCitKQU5LT1ZJxIYgU1BBU09KRQorSkFOS09WScSGIFNQT01FTktBCitKQU5LT1ZJxIYgU1JCT0xKVUIKK0pBTktPVknEhiBTVEFOS08KK0pBTktPVknEhiBTVEVWQU4KK0pBTktPVknEhiBTVEVWQU4KK0pBTktPVknEhiBTVEVWQU4KK0pBTktPVknEhiBTVE9KQU5LQQorSkFOS09WScSGIFNWRVRJU0xBVgorSkFOS09WScSGIFNWRVRPWkFSCitKQU5LT1ZJxIYgVElCT1IKK0pBTktPVknEhiBUT0RPUgorSkFOS09WScSGIFRPRE9SCitKQU5LT1ZJxIYgVE9ET1IKK0pBTktPVknEhiBWRVNOQQorSkFOS09WScSGIFZJVE9NSVIKK0pBTktPVknEhiBWSVRPTUlSCitKQU5LT1ZJxIYgVkxBRElNSVIKK0pBTktPVknEhiBWVUtJxIYKK0pBTktPVknEhiBWVUtJQ0EKK0pBTktPVknEhiBWVUtPTUFOCitKQU5LT1ZJxIYgWkxBVE9KRQorSkFOS09WScSGIFpPTFRBTgorSkFOS09WScSGIFpPUkFOCitKQU5LT1ZJxIYgWk9SQU4KK0pBTktPVknEhiBaT1JJQ0EKK0pBTktPVknEhiBaT1JJQ0EKK0pBTktPVknEhiBaT1JJQ0EKK0pBTktPVknEhiBaT1JLQQorSkFOS1VMT1YgREFOSUNBCitKQU5LVUxPVi1ERU1KRU4gTUFKQQorSkFOS1VMT1YgRFJBR0nFoEEgTVIgUEgKK0pBTktVTE9WIFNURVZBTgorSkFOS1VMT1ZTS0kgTUFSSUpBCitKQU5LVUxPVlNLSSBQRVRBUgorSkFOTyBKVUxJSkEKK0pBTk/FoEVWIEJJU0VSS0EKK0pBTk/FoEVWIERSQUdJQ0EKK0pBTk/FoEVWIExKSUxKQU5BCitKQU5PxaBFViBNSUxBTgorSkFOT8WgRVYgTUlMRU5BCitKQU5PxaBFViBNSUxFTktPCitKQU5PxaBFVknEhiBSQURJVk9KCitKQU5PxaBJIEZSQU5DScWgS0EKK0pBTk/FoEkgSUxPTkEKK0pBTk/FoEkgS0FSTE8KK0pBTk/FoEkgTEFTTE8KK0pBTk/FoEkgTUFSR0lUQQorSkFOT8WgSSBNSUhBTEoKK0pBTk/FoEkgTUlIQUxKCitKQU5PxaBJIFRFUkVaQQorSkFOT8WgSSBaT0xUQU4KK0pBTk9WQUMgxb1JVk9KSU4KK0pBTk9WScSGIExKSUxKQQorSkFOVcWgS08gScWgVFZBTgorSkFOVVMgTUlMS0EKK0pBTlVTIFZPSVNMQVYKK0pBTlVaT1ZJxIYgRFXFoEFOS0EKK0pBTlVaT1ZJxIYgSk9MQU4KK0pBTlVaT1ZJxIYgTUlMT1ZBTgorSkFOVVpPVknEhiBNSVJBTEpVQgorSkFOVVpPVknEhiBOT1ZJQ0EgRFIKK0pBTlVaT1ZJxIYgU0xPQk9EQU4KK0pBTlVaT1ZJxIYgU1ZFVExBTkEKK0pBUFVORMW9QSBMQVpBCitKQVBVTkTFvUnEhiDEkE9SxJBFCitKQVBVTkTFvUnEhiBHT1JEQU5BCitKQVBVTkTFvUnEhiBNSVJLTworSkFQVU5Exb1JxIYgTklLT0xBCitKQVBVTkTFvUnEhiBOSUtPTEEKK0pBUFVORMW9ScSGIE5JS09MQQorSkFQVU5Exb1JxIYgU0FWQQorSkFSQUsgSVZBTgorSkFSQU1BWiBESUpBTkEKK0pBUkFNQVogTUlMT1ZBTgorSkFSQU1BWiBOSUtPTEEKK0pBUkMgQU5HRUwKK0pBUkkgUFJPS0EKK0pBUknEhiDEjEVET01JUgorSkFSScSGIEFMRUtTQU5EQVIKK0pBUknEhiBBVkRPCitKQVJJxIYgQk9KQU4KK0pBUknEhiBCUkFOS08KK0pBUknEhiBEQU5JRUxBCitKQVJJxIYgREVTQU5LQQorSkFSScSGIERSQUdBTkEKK0pBUknEhiBEUkFHQU4KK0pBUknEhiBEVcWgQU4gRFIKK0pBUknEhiBLUklTVElOQQorSkFSScSGIEtSSVNUSU5BCitKQVJJxIYgTEpJTEpBTkEKK0pBUknEhiBMSklMSkFOQQorSkFSScSGIE1BUklKQQorSkFSScSGIE1BUklKQQorSkFSScSGIE1JTEFOCitKQVJJxIYgTUlMQU4KK0pBUknEhiBNSUxPSktPCitKQVJJxIYgTUlSQQorSkFSScSGIFNMT0JPREFOCitKQVJJxIYgWk9SQU4KK0pBUk1JTkFDIEJSQU5LTworSkFST8WgRU5LTyBLQVRBUklOQQorSkFST8WgRVZTS0kgQU5UT04KK0pBUk/FoEVWU0tJIElWSUNBCitKQVJPxaBFVlNLSSBQQVZFTAorSkFTRU5PVlNLSSBBTkEKK0pBU0nEhiBESVZOQQorSkFTScSGIEpBTktPCitKQVNJxIYgTUFOREEKK0pBU0nEhiBNSVJLTworSkFTScSGIFZFUklDQQorSkFTSUtBIFJVxb1BCitKQVNJS0EgU1RPSkFOS0EKK0pBU0lLScSGIE1JTE9SQUQKK0pBU01JTk9WScSGIEpBTUlOCitKQVNOScSGIE1JTEFOIERSIExFS0FSCitKQVNOScSGIE1JTEFOCitKQVNOScSGIE1JTE9NSVJLQQorSkFTTknEhiBTSU5JxaBBCitKQVNOSUdFUiBBTEVLU0FOREFSCitKQVRJxIYgQU7EkEVMSUpBCitKQVRJxIYgRFJBR0FOCitKQVRJxIYgR1JBRElNSVIKK0pBVEnEhiBTVEVWQU4KK0pBVUtPVknEhiBEUkFHScWgQQorSkFVS09WScSGIFBFSktBCitKQVVTIFZBTFRFUgorSkFWTkkgUEVUQVIKK0pBVk9SQU4gSVZBTgorSkFWT1JJTkEgxJBVUkEKK0pBVk9SSU5BIExKSUxKQU5BCitKQVZPUklOQSBNSUxFCitKQVZPUklOQSBTSU1PCitKQVZPUk5JSyBCT1NJTEpLQQorSkFWT1JOSUsgUEFWRUwKK0pBWknEhiBEQU5JTE8KK0pBWknEhiBJVkFOS0EKK0pBWknEhiBMQVpBCitKQVpJxIYgTEpVQk9NSVIKK0pBWknEhiBNQVJJTktPCitKQVpJxIYgTUlST1NMQVYKK0pBWknEhi1TQVZJTiBUQVRKQU5BCitKQVpJxIYgU1ZFVExBTkEKK0pBWlZJxIYgQU5LQQorSkXEjElOQUMgTUlMQU4KK0pFxIxJTkFDIE1JTE9SQUQKK0pFxIxJTkFDIFZFUkEKK0pFxIxNRU5JQ0EgQUxFS1NBTkRBUgorSkXEjE1FTklDQSBBTEVLU0FOREFSCitKRcSMTUVOSUNBIEpFTEVOQQorSkXEjE1FTklDQSBNSUxPxaAKK0pFxIxNRU5JQ0EgVkxBRElNSVIKK0pFxaBJxIYgxb1JVktBCitKRcWgScSGIEFOxJBFTEtPCitKRcWgScSGIERBTklKRUxBCitKRcWgScSGIEpVTEtBCitKRcWgScSGIE1JTEFOCitKRcWgScSGIE1JT0RSQUcKK0pFxaBJxIYgTUlST1NMQVZBCitKRcWgScSGIFNURVZBTgorSkXFoEnEhiBaT1JBTgorSkXFvSBEUkFHQU4KK0pFxb0gR09TUE9KSU5LQQorSkXFvSBNSUxPUkFECitKRcW9IFNMT0JPREFOCitKRcW9IFRSSVZPCitKRcW9RUsgTUlMSVZPSgorSkVDS09WIE5BREEKK0pFREVSQU4gSk9TSVAKK0pFREVSQU4gSk9TSVAKK0pFRknEhiBHT1JBTgorSkVGVEVOScSGIMWgUElSTworSkVGVEVOScSGIFZMQURPCitKRUZUScSGIMW9QVJLTworSkVGVEnEhiBCSUxKQU5BCitKRUZUScSGIEJPxb1JREFSCitKRUZUScSGIEJPUklTTEFWIERJUEwgSU5HCitKRUZUScSGIEJSQU5LTworSkVGVEnEhiBEQU1KQU4KK0pFRlRJxIYgRFJBR0FOCitKRUZUScSGIEpBRFJBTktBCitKRUZUScSGIEpFRlRBCitKRUZUScSGIEpFTEVOQQorSkVGVEnEhiBKT1ZBTgorSkVGVEnEhiBLQVRBUklOQQorSkVGVEnEhiBMSlVCT01JUgorSkVGVEnEhiBNSUxBTgorSkVGVEnEhiBNSUxBTgorSkVGVEnEhiBNSUxFTktPCitKRUZUScSGIE1JTE9SQUQKK0pFRlRJxIYgTUlUQQorSkVGVEnEhiBTUkVURU5LQQorSkVGVEnEhiBUSUhPTUlSCitKRUZUScSGIFRPTUlTTEFWCitKRUZUScSGIFZFTElOS0EKK0pFRlRJxIYgVkxBRElNSVIKK0pFRlRJxIYgVkxBU1RBCitKRUZUScSGIFpEUkFWS08KK0pFRlRPVknEhiBGUkFOSkEKK0pFR0FSQUMgT0xHQQorSkVHREnEhiBEQU1KQU4KK0pFR0RJxIYgR09SREFOQQorSkVHREnEhiBTVkVUSVNMQVYKK0pFR0RJxIYgVkFTQQorSkVHREnEhiBWQVNPCitKRUdFxaAgTUlMQQorSkVLRUxJxIYgQlJBTklTTEFWCitKRUtFTEnEhiBCUkFOS08KK0pFS0VMScSGIEVNSUxJSkEKK0pFS0VMScSGIExBU0xPCitKRUtFTEnEhiBNSUxBTgorSkVLRUxJxIYgTUlMScSGCitKRUtFTEnEhiBSQURPU0xBViBESVBMIElORworSkVLRUxJxIYgU0xBVktPCitKRUtFTEnEhiBaT1JJQ0EKK0pFS05JxIYgUkFET0pJQ0EKK0pFTMSMScSGIEpPWkVGSU5BCitKRUzEjEnEhiBLUklTVElKQU4KK0pFTMSMScSGIExKVUJJxaBBCitKRUzEjEnEhiBNSUxPVkFOCitKRUzEjEnEhiBNSUxPVkFOCitKRUzEjEnEhiBQQVZMRQorSkVMxIxJxIYgWk9SQQorSkVMQcSMQSDEkFVSTworSkVMQcSMQSDEkFVSTworSkVMQcSMQSBCUkFOS08KK0pFTEHEjEEgREVTQQorSkVMQcSMQSBLT1NUQQorSkVMQcSMQSBNSUhBSkxPCitKRUxBxIxBIE1JTEVOS08KK0pFTEHEjEEgUlXFvUEKK0pFTEHEjEEgU0lNTyBEUiBJTkcKK0pFTEHEjEEgU0xPQk9EQU4KK0pFTEHEjEEgU1RBTktPCitKRUxBxIxBIFNUT0pBTgorSkVMQcSMScSGIEJPxb1JREFSCitKRUxBxIxJxIYgQlJBTktPCitKRUxBxIxJxIYgREFOSUxPCitKRUxBxIxJxIYgRFXFoEFOCitKRUxBxIxJxIYgSlVMScWgS0EKK0pFTEHEjEnEhiBMSlVCT01JUgorSkVMQcSMScSGIE1JSEFKTE8KK0pFTEHEjEnEhiBNSUxFTktPCitKRUxBxIxJxIYgTUlST1NMQVYKK0pFTEHEjEnEhiBSQVRPTUlSCitKRUxBxIxJxIYgU0xPQk9EQU4KK0pFTEHEjEnEhiBaT1JLQQorSkVMQVZJxIYgxb1FTEpLTworSkVMQVZJxIYgRFJBR08KK0pFTEXEjCBJTElKQQorSkVMRcSMQU5JTiDEkE9SxJBFCitKRUxFxIxBTklOIE1BUklKQQorSkVMRcSMScSGIEpPVkFOCitKRUxFTsSMScSGIEZSQU5KQQorSkVMRU5JxIYgxb1JVkFOCitKRUxFTknEhiBNSUxBTgorSkVMRU5JxIYgUEFOVEEKK0pFTEVOScSGIFBBVkxFCitKRUxFTknEhiBSQURBCitKRUxFTknEhiBTTE9CT0RBTgorSkVMRU5JxIYgVkFTSUxJSkUKK0pFTEVOS09WScSGIEFMRUtTQU5EQVIKK0pFTEVOS09WScSGIEdST1pEQQorSkVMRU5LT1ZJxIYgVkxBRElTTEFWCitKRUxFU0nEhiBBTkdFTEEgUFJPRkVTT1IKK0pFTEnEjEnEhiDFvUlWS08KK0pFTEnEjEnEhiDEkFVSTworSkVMScSMScSGIEJFQVRBCitKRUxJxIxJxIYgQlJBTktPCitKRUxJxIxJxIYgRFXFoEFOCitKRUxJxIxJxIYgSkVMRU5BCitKRUxJxIxJxIYgSk9WTworSkVMScSMScSGIExKVUJJQ0EKK0pFTEnEjEnEhiBNQVJJSkEKK0pFTEnEjEnEhiBNSUxBTgorSkVMScSMScSGIE1JTEUKK0pFTEnEjEnEhiBNSVJLTworSkVMScSMScSGIFBFVEFSCitKRUxJxIxJxIYgUEVUQVIKK0pFTEnEjEnEhiBST1NBCitKRUxJxIxJxIYgVklECitKRUxJxIYgxb1JVktPCitKRUxJxIYgxb1JVktPCitKRUxJxIYgxJBPUsSQRQorSkVMScSGIMSQT1LEkEUKK0pFTEnEhiBBxIZJTQorSkVMScSGIEFOxJBBCitKRUxJxIYgQU5URQorSkVMScSGIEJVRElNSVIKK0pFTEnEhiBEUkFHQU4KK0pFTEnEhiBEUkFHVVRJTgorSkVMScSGIERVxaBBTgorSkVMScSGIEVNSUxJSkEKK0pFTEnEhiBFU1RFUkEKK0pFTEnEhiBHT1JEQU5BCitKRUxJxIYgSVZBTktBCitKRUxJxIYgSVZJQ0EKK0pFTEnEhiBKQUdPRElOS0EKK0pFTEnEhiBKQU5KQQorSkVMScSGIEpFTEVOQQorSkVMScSGIEpPVkFOCitKRUxJxIYgTEFaQVIKK0pFTEnEhiBMQVpBUgorSkVMScSGIExKVUJJQ0EKK0pFTEnEhiBMSlVCSU5LQQorSkVMScSGIExVS0EKK0pFTEnEhiBNQVJJQ0EKK0pFTEnEhiBNQVJJTkEKK0pFTEnEhi1NQVRJxIYgTUFSSUpBCitKRUxJxIYgTUlMQU4KK0pFTEnEhiBNSUxBTgorSkVMScSGIE1JTEVOQQorSkVMScSGIE1JTEVOS08KK0pFTEnEhiBNSUxLQQorSkVMScSGIE1JT0RSQUcKK0pFTEnEhiBNSU9EUkFHCitKRUxJxIYgTUlSSkFOQQorSkVMScSGIE1JVEEKK0pFTEnEhiBNT01JUgorSkVMScSGIE5BREEKK0pFTEnEhiBORURFTEpLTworSkVMScSGIFBBVkxFCitKRUxJxIYgUFJFRFJBRworSkVMScSGIFBSRURSQUcKK0pFTEnEhiBSQURFTktPCitKRUxJxIYgUk9TQQorSkVMScSGIFNBVkEKK0pFTEnEhiBTSU1BCitKRUxJxIYgU0xBVklDQQorSkVMScSGIFNUQU5JTUlSCitKRUxJxIYgU1RFVkFOCitKRUxJxIYgU1RFVkEKK0pFTEnEhiBTVEVWQQorSkVMScSGIFNUSVBFCitKRUxJxIYgU1ZFVElTTEFWIERJUEwgSU5HCitKRUxJxIYgU1ZFVE9aQVIKK0pFTEnEhiBUT01BCitKRUxJxIYgVE9NSVNMQVYKK0pFTEnEhiBWQVNBCitKRUxJxIYgVkFTTworSkVMScSGIFZJS1RPUklKQQorSkVMSUNLSSBTSU1FVU4KK0pFTElOIEpPVkFOCitKRUxJTiBSQURNSUxBCitKRUxJTsSMScSGIERVSk8KK0pFTElORUsgU1RFVkFOCitKRUxJU0FWQUMgR09SREFOCitKRUxJU0FWQUMgTUlMT8WgCitKRUxJU0FWQUMgTU9NSVIKK0pFTEtJxIYgSk9WQU4KK0pFTEtJxIYgTEFaQVIKK0pFTEtJxIYgT0xJVkVSQQorSkVMS0nEhiBWTEFESU1JUgorSkVMT1ZBQyDFvUFSS08KK0pFTE9WQUMgxb1BUktPCitKRUxPVkFDIMSQT1LEkEUKK0pFTE9WQUMgxJBPUsSQRQorSkVMT1ZBQyDEkFVSTworSkVMT1ZBQyBCSVNFUktBCitKRUxPVkFDIEJSQU5JU0xBVgorSkVMT1ZBQyBCUkFOS0EKK0pFTE9WQUMgQlJBTktBCitKRUxPVkFDIEJSQU5LTworSkVMT1ZBQyBEUkFHQU4KK0pFTE9WQUMgRFJBR0FOCitKRUxPVkFDIERVxaBBTgorSkVMT1ZBQyBJWkFCRUxBCitKRUxPVkFDIEpPVkFOCitKRUxPVkFDIE1JTEFOCitKRUxPVkFDIE1JTElDQQorSkVMT1ZBQyBNSVJPU0xBVgorSkVMT1ZBQyBNSVJPU0xBVgorSkVMT1ZBQyBOQURBCitKRUxPVkFDIE5JS09MQQorSkVMT1ZBQyBSQURPSktBCitKRUxPVkFDIFJBRE9KS0EKK0pFTE9WQUMgUkFET01JUiBEUiBMRUtBUgorSkVMT1ZBQyBSVcW9SUNBCitKRUxPVkFDIFNMT0JPREFOCitKRUxPVkFDIFNURVZBTgorSkVMT1ZBQyBTVE9KQU4KK0pFTE9WQUMgVFVHT01JUgorSkVMT1ZBQyBWRUxJTUlSCitKRUxPVkFDIFZMQURBCitKRUxPVkFDIFZVSklDQQorSkVMT1ZJxIYgTUlMQU5LQQorSkVMVcWgScSGIEdPUkRBTkEKK0pFTFXFoEnEhiBMRU5LQQorSkVMVcWgScSGIE1BVElKRQorSkVNxIwgQlJBTklTTEFWCitKRU1SScSGIEpFTEEKK0pFTkVDS09WIFJBRE1JTEEKK0pFTkVDS09WIFNBxaBBCitKRU5FSSBBTkRSQcWgCitKRU5FSSBFVUdFTgorSkVORUkgTEFKT8WgCitKRU5FSSBNSU9EUkFHCitKRU5FSSBSVcW9QQorSkVORUkgU1RFVkFOCitKRU5FSSBUSUJPUgorSkVORVYgQkxBR09KCitKRVBVUlNLSSBORU5BRAorSkVSxIxJxIYgRlJBTkpPCitKRVJBTsSMRSBEQU5JQ0EKK0pFUkFOVCBBTkRSSUpBCitKRVJBTlQgUEFUScSGIFZFUkEgRFIKK0pFUkFOVCBQRVRBUgorSkVSQVXFoEVLIEZSQU5KTworSkVSQVXFoEVLIElWSUNBCitKRVJCScSGIERSQUdJQ0EKK0pFUkVCSU7FoEVLIEFOQQorSkVSRUJJTsWgRUsgU0xBVktPCitKRVJFTEUgRlJBTkNJxaBLQQorSkVSRU1FTktPIEFMRUtTQU5EUkEKK0pFUkVNScSGIMSQT0tBCitKRVJFTUnEhiDEkE9SxJBFCitKRVJFTUnEhiBBTEVLU0FOREFSCitKRVJFTUnEhi1CTEFHT0pFVknEhiBWRVJJQ0EKK0pFUkVNScSGIEJMQUdPSkUKK0pFUkVNScSGIERJTUlUUklKRSBEUiBMRUtBUgorSkVSRU1JxIYgRFJBR09TTEFWCitKRVJFTUnEhiBEVcWgQU5LQQorSkVSRU1JxIYgSkFTTkEKK0pFUkVNScSGIEpFTEVOQQorSkVSRU1JxIYgSk9WQU4KK0pFUkVNScSGIEpPVkFOCitKRVJFTUnEhiBMQVpBUgorSkVSRU1JxIYgTEpJTEpBTkEKK0pFUkVNScSGIE1FTEFOSUpBCitKRVJFTUnEhiBNSUxFVkEKK0pFUkVNScSGIE1JUkEKK0pFUkVNScSGIE1JUk9TTEFWCitKRVJFTUnEhiBOQURFxb1EQQorSkVSRU1JxIYgTkVOQUQKK0pFUkVNScSGIE9MSVZFUkEKK0pFUkVNScSGIFBBVkxFCitKRVJFTUnEhiBQQVZMRQorSkVSRU1JxIYgUkFERQorSkVSRU1JxIYgU1RBTkEKK0pFUkVNScSGIFNUQU5LTworSkVSRU1JxIYgU1RBTk9KRQorSkVSRU1JxIYgU1RFVkFOCitKRVJFTUnEhiBTVEVWQU4KK0pFUkVNScSGIFZBU0lMSUpFCitKRVJFTUnEhiBWRVJBCitKRVJFTUnEhiBWT0pJU0xBVgorSkVSRU1JxIYgWk9SQQorSkVSRU1JSknEhiBWSVRPTUlSCitKRVJFTknEhiBNTEFERU4KK0pFUkdJxIYgTUlMSUNBCitKRVJHScSGIE1JT0RSQUcKK0pFUkdJxIYgTUlSS08KK0pFUkdJxIYgUEVUQVIKK0pFUkdJxIYgU0xBVklDQQorSkVSR0nEhiBTUEFTT0pFCitKRVJJxIYgRFXFoEFOCitKRVJJxIYgS09WSU5LQQorSkVSScSGIExKVUJJxaBBCitKRVJJxIYgTUlMSUNBCitKRVJJxIYgUEVUQVIKK0pFUklOScSGIEJSQU5LTworSkVSSU5JxIYtS1VSSU4gRURJVAorSkVSSU5JxIYgTUlPRFJBRworSkVSSU5JxIYgVk9KSVNMQVYKK0pFUklOS0nEhiBEUkFHQU4KK0pFUklOS0nEhiBJVkFOCitKRVJJTktJxIYgUEFWTEUKK0pFUktBTiBBTlRFCitKRVJLScSGIFNWRVRPWkFSCitKRVJLT1Ygxb1BUktPCitKRVJLT1YgQU5EUklKQQorSkVSS09WIEJSQU5JTUlSCitKRVJLT1YgSk9WQU4KK0pFUktPViBKT1ZJQ0EKK0pFUktPViBKT1ZJQ0EKK0pFUktPViBNSVJKQU5BCitKRVJLT1YgTUlSSkFOQQorSkVSS09WIFBBVkxFCitKRVJLT1YgU01JTEpBCitKRVJLT1YgU05Fxb1BTkEKK0pFUktPViBWRUxKS08KK0pFUktPViBWT0pJU0xBVgorSkVSS09WScSGIMSQT1LEkEUKK0pFUktPVknEhiBBTEVLU0FOREFSCitKRVJLT1ZJxIYgRE1JVEFSCitKRVJLT1ZJxIYgRlJBTkpPCitKRVJLT1ZJxIYgSk9WQU4KK0pFUktPVknEhiBKT1ZBTgorSkVSS09WScSGIEpPVkFOCitKRVJLT1ZJxIYgSk9WQU4KK0pFUktPVknEhiBLQVRJQ0EKK0pFUktPVknEhiBLQVRJQ0EKK0pFUktPVknEhiBMRU5LQQorSkVSS09WScSGIE1JTEFOCitKRVJLT1ZJxIYgTUlMT8WgCitKRVJLT1ZJxIYgTkFERcW9REEKK0pFUktPVknEhiBOSUtPTEEKK0pFUktPVknEhiBQUkVEUkFHCitKRVJLT1ZJxIYgUkFKS08KK0pFUktPVknEhiBTSU1PCitKRVJLT1ZJxIYgU0lOScWgQQorSkVSS09WScSGIFNPRklKQQorSkVSS09WScSGIFNURVZBTgorSkVSS09WScSGIFNUT0pBTgorSkVSS09WScSGIFNWRVRLTworSkVSS09WScSGIFRBRElKQQorSkVSS09WScSGIFZBTEVSSUpBCitKRVJLT1ZJxIYgVkFTQQorSkVSS09WScSGIFZMQURJTUlSIE1SCitKRVJLT1ZJxIYgVkxBRElNSVIKK0pFUktPVknEhiBWTEFETworSkVSS09WScSGIFZVS09TQVZBCitKRVJLT1ZJxIYgWk9SQU4KK0pFUk9TSU1PVknEhiBCUkFOSU1JUgorSkVST1RJSkVWScSGIERBUklOS0EKK0pFU0nEhiBNSUxFTkEKK0pFU1RST05JxIYgVE9NSVNMQVYKK0pFU1RST1ZJxIYgSVJFTkEKK0pFVsSQRU5JxIYgUlXFvUlDQQorSkVWxJBFTknEhiBWTEFEQQorSkVWxJBPVknEhiBNRUxBTklKQSBEUgorSkVWxJBPVknEhiBNRUxBTklKQQorSkVWScSGIMSMRURPCitKRVZJxIYgQlJBTktPCitKRVZJxIYgTUlMQU4KK0pFVknEhiBNSUxJVk9KCitKRVZJxIYgTUlPRFJBRworSkVWScSGIE1PTcSMSUxPCitKRVZJxIYgTkFEQQorSkVWScSGIE5JS09MQQorSkVWScSGIFRPRE9SCitKRVZSRU1PViDFvUlWQQorSkVWUkVNT1YgxJBPUsSQRQorSkVWUkVNT1YgTUlMQU4KK0pFVlJFTU9WIE1JUkpBTkEKK0pFVlJFTU9WScSGIERPQlJJTEEKK0pFVlJFTU9WScSGIExKVUJJTktBCitKRVZSRU1PVknEhiBNSUxJVk9KCitKRVZSRU1PVknEhiBNSUxPUkFECitKRVZSRU1PVknEhiBNSU9EUkFHCitKRVZSRU1PVknEhiBSQURJxaBBCitKRVZSRU1PVknEhiBTSU5JxaBBCitKRVZSRU1PVknEhiBTT0ZJSkEKK0pFVlJFTU9WScSGIFNURVZBTgorSkVWUkVNT1ZJxIYgVkxBREFOCitKRVZSScSGIMW9SVZBTgorSkVWUknEhiDEkE9SxJBFCitKRVZSScSGIMSQT1LEkEUKK0pFVlJJxIYgQk/FvUlEQVIKK0pFVlJJxIYgQk9HT0xKVUIKK0pFVlJJxIYgQlJBTktPCitKRVZSScSGIEJSQVRJU0xBVgorSkVWUknEhiBEQU5JQ0EKK0pFVlJJxIYgREVTSU1JUgorSkVWUknEhiBEUkFHVVRJTgorSkVWUknEhiBFVklDQQorSkVWUknEhiBHSUdBCitKRVZSScSGIEdPUkFOCitKRVZSScSGIEpFTEEKK0pFVlJJxIYgSk9WQU4KK0pFVlJJxIYgS1JJU1RJTkEKK0pFVlJJxIYgTEpVQklDQQorSkVWUknEhiBNQVJJSkEKK0pFVlJJxIYgTUlMQU4KK0pFVlJJxIYgTUlMRU5LTworSkVWUknEhiBNSUxFCitKRVZSScSGIE1JTE/FoAorSkVWUknEhiBNSVJPU0xBVgorSkVWUknEhiBSQURJxaBBCitKRVZSScSGIFJBRElWT0pFCitKRVZSScSGIFJBRElWT0oKK0pFVlJJxIYgUkFESVZPSgorSkVWUknEhiBSQURPU0xBVgorSkVWUknEhiBSQU5JU0FWCitKRVZSScSGIFNMQVZLTworSkVWUknEhiBTTEFWS08KK0pFVlJJxIYgU0xBVktPCitKRVZSScSGIFNMQVZLTworSkVWUknEhiBTTE9CT0RBTgorSkVWUknEhiBTUkJPTEpVQgorSkVWUknEhiBTVEFNRU5LTworSkVWUknEhiBTVEVWQU4gRFIgSU5HCitKRVZSScSGIFNURVZBTgorSkVWUknEhiBaTEFUT01JUgorSkVWVE9WScSGIEFMRUtTQU5EQVIKK0pFVlRPVknEhiBBTEVLU0FORFJBCitKRVZUT1ZJxIYgSk9SREFOCitKRVZUT1ZJxIYgTUlMQU4KK0pFVlRPVknEhiBNSVJLTworSkVWVE9WScSGIFJBRElWT0pFCitKRVZUT1ZJxIYgU1RBTklTTEFWQQorSkVWVE9WScSGIFZPSktBTgorSkVWVE9WScSGIFZVS09UQQorSkVWVE9WScSGIFZVTEUKK0pFWkRJxIYgRE9CUklMQQorSkVaREnEhiBEUkFHQU4KK0pFWkRJxIYgSk9WQU4KK0pFWkRJxIYgTEpVQk9NSVIKK0pFWkRJxIYgTU9NxIxJTE8KK0pFWkRJxIYgU0FWQQorSkVaREnEhiBTUElSQQorSkVaREnEhiBTVEVWS0EKK0pFWkRJxIYgU1RPSkFOIERJUEwgSU5HCitKRVpESU1JUk9WScSGIEFDQQorSkVaRElNSVJPVknEhiBEUkFHQU4KK0pFWkRJTUlST1ZJxIYgRFJBR0lDQQorSkVaRElNSVJPVknEhiBMQVpBUgorSkVaRElNSVJPVknEhiBNSVJKQU5BCitKRVpESU1JUk9WScSGIFNUT0pBTktBCitKRVpESU1JUk9WScSGIFpPUklDQQorSkVaRVJLScSGIE9MR0lDQQorSklST1RBLUdBWklCQVJJxIYgREFOSUVMQQorSk/EjEnEhiBNT03EjElMTworSk/EjEnEhiBTVEFOT0pMTworSk/EjElOIMW9SUtBCitKT8SMS09WScSGIEpPVkFOCitKT8WgQU5PViBBTEVLU0FORFJBCitKT8WgQU5PViBMQVpBUgorSk/FoEFOT1YgTEpVQklDQQorSk/FoEFOT1YgTUxBREVOCitKT8WgRVZTS0kgxJBPUsSQSUpBCitKT8WgScSGIMSQVVJBCitKT8WgScSGIEJMQcW9TworSk/FoEnEhiBEUkFHT1NMQVYKK0pPxaBJxIYgTUlMQU4KK0pPxaBJxIYgTUlMSVZPSgorSk/FoEnEhiBNSUxPUkFECitKT8WgScSGIFBFVEFSCitKT8W9QSBLQVRBTElOCitKT8W9ScSGIMSQVVJBCitKT0FOT1ZJxIYgQ1ZFVEtPIERJUEwgSU5HCitKT0FOT1ZJxIYgRVLFvUVCRVQKK0pPQU5PVknEhiBSQU1PTkEKK0pPQ0nEhiDFvUlWT0pJTiBESVBMIElORworSk9DScSGIMW9SVZPUkFEIERSCitKT0NJxIYgxJBPUsSQRQorSk9DScSGIEFMRUtTQU5EQVIKK0pPQ0nEhiBBTsSQRUxLQQorSk9DScSGIEFOR0VMSU5BCitKT0NJxIYgQU5LSUNBCitKT0NJxIYgQk9SSVNMQVYKK0pPQ0nEhiBCUkFOSVNMQVYgRFIKK0pPQ0nEhiBCUkFOS0EKK0pPQ0nEhiBEUkFHSUNBCitKT0NJxIYgRFJBR1VUSU4KK0pPQ0nEhiBGSUxJUAorSk9DScSGIEhSSVNUSU5BCitKT0NJxIYgSUxJSkEKK0pPQ0nEhiBJU0lET1IKK0pPQ0nEhiBKRUxJU0FWRVRBCitKT0NJxIYgSk9WQU5LQQorSk9DScSGIExKSUxKQU5BCitKT0NJxIYgTUFSSUpBCitKT0NJxIYgTUFSS08KK0pPQ0nEhiBNQVJLTworSk9DScSGIE1BUlRBCitKT0NJxIYgTUlMQURJTktBCitKT0NJxIYgTUlMQU4KK0pPQ0nEhiBNSUxBTgorSk9DScSGIE1JTE/FoAorSk9DScSGIE1JTE/FoAorSk9DScSGIE1JUktPCitKT0NJxIYgTUxBREVOCitKT0NJxIYgTkVOQUQKK0pPQ0nEhiBQRVRBUgorSk9DScSGIFBFVEFSCitKT0NJxIYgUEVUQVIKK0pPQ0nEhiBSQURJVk9KCitKT0NJxIYgUkFETUlMQQorSk9DScSGIFJBRE9TTEFWCitKT0NJxIYgUk9ET0xKVUIKK0pPQ0nEhiBTQVZBCitKT0NJxIYgU0xPQk9EQU4KK0pPQ0nEhiBTTUlMSkEKK0pPQ0nEhiBTVEVWQU4gRElQTCBJTkcKK0pPQ0nEhiBTVEVWQU4KK0pPQ0nEhiBTVEVWQU4KK0pPQ0nEhiBWQUxFUklKQQorSk9DScSGIFZFUkEKK0pPQ0nEhiBaT1JBTgorSk9DSU4gQlJBTktPCitKT0NJTiBQRVJTSURBCitKT0NJTiBaTEFUT0pFCitKT0NLT1YgREFOSUNBCitKT0NLT1YgTUFOT0pMTworSk9DS09WIE1JTEFOS0EKK0pPQ0tPViBNSUxPU0FWCitKT0NLT1YgTUlST1NMQVZBCitKT0NLT1YgTklLT0xBCitKT0NLT1YgTklLT0xBCitKT0NLT1YgUkFET1ZBTgorSk9DS09WScSGIMSQT1LEkEUgRFIKK0pPQ0tPVknEhiBKT1ZBTktBCitKT0NLT1ZJxIYgT0JSQUQKK0pPQ09WScSGIMW9SVZPTUlSCitKT0NPVknEhiBNSU9EUkFHCitKT0NPVknEhiBSQURFTktPCitKT0NPVknEhiBaT1JJQ0EKK0pPQ1VMT1YgQlJBTktBCitKT0NVTE9WIE1JSEFMSgorSk9EQUwgUk/FvUEKK0pPSElNU1RBTCBBR0FUQQorSk9KScSGIMSQT1LEkEUKK0pPSknEhiBBTEVLU0FOREFSCitKT0pJxIYgQk/FvUlEQVIKK0pPSknEhiBET0lOQQorSk9KScSGIERSQUdJCitKT0pJxIYgRFJBR09TTEFWIERSCitKT0pJxIYgRFXFoEFOCitKT0pJxIYgR0VPUkdJSkUKK0pPSknEhiBJVkFOS0EKK0pPSknEhiBJVkFOS0EKK0pPSknEhiBKRUxBCitKT0pJxIYgSkVMRU5BCitKT0pJxIYgTEpVQklDQQorSk9KScSGIE1JxIZLTworSk9KScSGIE1JTEVWQQorSk9KScSGIE1JTE/FoAorSk9KScSGIE1JT0RSQUcKK0pPSknEhiBNSVJLTworSk9KScSGIE1JUktPCitKT0pJxIYgTUlST0xKVUIKK0pPSknEhiBNSVJPU0xBVgorSk9KScSGIE9MR0EKK0pPSknEhiBTQVZBCitKT0pJxIYgU0lNTworSk9KScSGIFNUQU5BCitKT0pJxIYgU1RFVkFOCitKT0pJxIYgU1ZFVE9aQVIKK0pPSknEhiBTVkVUTworSk9KSU4gQkFSQkFSQQorSk9KSU4gRE9CUk9TQVYKK0pPSklOIFNJTknFoEEKK0pPSktJxIYgxJBPUsSQRQorSk9KS0nEhiDEkE9SxJBFCitKT0pLScSGIMSQT1LEkEUKK0pPSktJxIYgQUxFS1NBTkRBUgorSk9KS0nEhiBCT1JJU0xBVkEKK0pPSktJxIYgQlJBTklTTEFWCitKT0pLScSGIERBTklDQQorSk9KS0nEhiBESU5BCitKT0pLScSGIERVxaBBTgorSk9KS0nEhiBEVcWgS08KK0pPSktJxIYgSk9WSUNBCitKT0pLScSGIEtBVElDQQorSk9KS0nEhiBLQVRJQ0EKK0pPSktJxIYgTEpVQk9NSVIKK0pPSktJxIYgTUFSSUNBCitKT0pLScSGIE1BUklKQQorSk9KS0nEhiBNQVJJSkEKK0pPSktJxIYgTUlMQURJTgorSk9KS0nEhiBNSUxFTkEKK0pPSktJxIYgTUlMRU5LTworSk9KS0nEhiBNSUxJQ0EKK0pPSktJxIYgTUlMSUNBCitKT0pLScSGIE1JT0RSQUcKK0pPSktJxIYgTUlSSkFOQSBEUgorSk9KS0nEhiBNSVJPU0xBVgorSk9KS0nEhiBOQURBCitKT0pLScSGIE9MR0EKK0pPSktJxIYgUEFKQQorSk9KS0nEhi1QT0xFVFRPIFpPUkEKK0pPSktJxIYgUkFESVZPSgorSk9KS0nEhiBSQURJVk9KCitKT0pLScSGIFJBRE9KS0EKK0pPSktJxIYgUkFET1NMQVYKK0pPSktJxIYgU0xBVktPCitKT0pLScSGIFNNSUxKS0EKK0pPSktJxIYgU05Fxb1BTkEKK0pPSktJxIYgU09GSUpBCitKT0pLScSGIFNPS08KK0pPSktJxIYgU1RBTktPCitKT0pLScSGIFVST8WgCitKT0pLScSGIFZPSklTTEFWCitKT0pLScSGIFpEUkFWS08KK0pPS0EgS0FUQVJJTkEKK0pPS0EgVkFTTworSk9LQU5JxIYgSUxJSkEKK0pPS0FOT1ZJxIYgQkxBR09KRQorSk9LQU5PVknEhiBCT1NJTEpLQQorSk9LQU5PVknEhiBCUkFOS08KK0pPS0FOT1ZJxIYgQlJBTktPCitKT0tBTk9WScSGIERFU0lNSVIKK0pPS0FOT1ZJxIYgTUlMT1JBRAorSk9LQU5PVknEhiBSQURBCitKT0tBTk9WScSGIFJBRE9NSVIKK0pPS0FOT1ZJxIYgU0lOScWgQQorSk9LQU5PVknEhiBUT0RPUgorSk9LQU5PVknEhiBUT01JU0xBVgorSk9LQU5PVknEhiBWTEFESU1JUiBEUgorSk9LScWgScSGIEJSQU5LTworSk9LScWgScSGIFNQQVNPSkUKK0pPS0nEhiDFvUFSS08KK0pPS0nEhiDFvUFSS08KK0pPS0nEhiDFvUlWQU4KK0pPS0nEhiDEkE9SxJBFCitKT0tJxIYgxJBVUkHEkAorSk9LScSGIEJPxb1JREFSCitKT0tJxIYgQk9SSVNMQVYKK0pPS0nEhiBCUkFOSVNMQVYKK0pPS0nEhiBCVURJTUlSCitKT0tJxIYgQ1ZJSkVUSU4KK0pPS0nEhiBEQU5FCitKT0tJxIYgRE9CUklMQQorSk9LScSGIERSQUdBTgorSk9LScSGIERSQUdBTgorSk9LScSGIERSQUdBTgorSk9LScSGIERSQUdJQ0EKK0pPS0nEhiBEUkFHSU5KQQorSk9LScSGIERVxaBBTktBCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgRFXFoEFOCitKT0tJxIYgSUdOSkFUCitKT0tJxIYgSkVMRU5BCitKT0tJxIYgSk9LQQorSk9LScSGIEtSU1RBTgorSk9LScSGIEtTRU5JSkEKK0pPS0nEhiBMQUtJxIYKK0pPS0nEhiBMQVpPCitKT0tJxIYgTEpJTEpBTkEKK0pPS0nEhiBMSlVCSUNBCitKT0tJxIYgTEpVQk8KK0pPS0nEhiBMVUtBCitKT0tJxIYgTUFSQQorSk9LScSGIE1BUklKQQorSk9LScSGIE1BUktPCitKT0tJxIYgTUlIQUpMTworSk9LScSGIE1JTEFOCitKT0tJxIYgTUlMQU4KK0pPS0nEhiBNSUxBTgorSk9LScSGIE1JTEFOCitKT0tJxIYgTUlMRU5LTworSk9LScSGIE1JTEVWQQorSk9LScSGIE1JTElKQQorSk9LScSGIE1JTElTQVYKK0pPS0nEhiBNSUxPUkFECitKT0tJxIYgTUlMT1ZBTgorSk9LScSGIE1JUktPCitKT0tJxIYgTUlSS08KK0pPS0nEhiBNSVJLTworSk9LScSGIE1JUktPCitKT0tJxIYgTUlST1NMQVYKK0pPS0nEhiBOQURBCitKT0tJxIYgTkFEQQorSk9LScSGIE5BRElDQQorSk9LScSGIE5FTkFECitKT0tJxIYgTklLT0xBCitKT0tJxIYgTklLT0xBCitKT0tJxIYgUEVUQVIKK0pPS0nEhiBSQURJVk9KRQorSk9LScSGIFJBRE9JQ0EKK0pPS0nEhiBSSVNUQQorSk9LScSGIFNBxaBBCitKT0tJxIYgU0lNQQorSk9LScSGIFNJTknFoEEKK0pPS0nEhiBTTEFWS08KK0pPS0nEhiBTTEFWS08KK0pPS0nEhiBTTEFWS08KK0pPS0nEhiBTTkXFvUFOQQorSk9LScSGIFNURVZBTiBESVBMIElORworSk9LScSGIFNURVZBTgorSk9LScSGIFNWRVRJU0xBVgorSk9LScSGIFNWRVRPWkFSCitKT0tJxIYgU1ZFVE9aQVIKK0pPS0nEhiBUT01JU0xBVgorSk9LScSGIFZFTEpLTworSk9LScSGIFZFUkEKK0pPS0nEhiBWTEFETworSk9LScSGIFZPSklTTEFWCitKT0tJxIYgVk9KSVNMQVYKK0pPS0nEhiBWVUpBRElOCitKT0tJxIYgVlVLQURJTgorSk9LScSGIFZVS08KK0pPS0nEhiBaTEFUQQorSk9LScSGIFpPUktBCitKT0tNQU5PVknEhiBTQVZFVEEKK0pPS09WScSGIMW9SVZLTworSk9LT1ZJxIYgxJBVUsSQSU5BCitKT0tPVknEhiBET0JSSVZPSkUKK0pPS09WScSGLU1JS0nEhiBNSVJKQU5BCitKT0tPVknEhiBNSUxLQQorSk9LT1ZJxIYgUkFET1NBVgorSk9LT1ZJxIYgVk9KSVNMQVYKK0pPS1NJxIYgRFJBR0nFoEEKK0pPS1NJxIYgR09KS08KK0pPS1NJTU9WxIYgTkVCT0rFoEEKK0pPS1NJTU9WScSGIMW9QVJLTworSk9LU0lNT1ZJxIYgREFSS08KK0pPS1NJTU9WScSGIERVxaBLTworSk9LU0lNT1ZJxIYgR09MVUJBTktBCitKT0tTSU1PVknEhiBKT1ZBTiBESVBMIElORworSk9LU0lNT1ZJxIYgTEpVQklDQQorSk9LU0lNT1ZJxIYgTEpVQklTQVYgRFIKK0pPS1NJTU9WScSGIExKVUJJU0FWCitKT0tTSU1PVknEhiBNT03EjElMTworSk9LU0lNT1ZJxIYgTkFEQQorSk9LU0lNT1ZJxIYgUEFWTEUKK0pPS1NJTU9WScSGIFBFVEFSCitKT0tTSU1PVknEhiBSQURPTUlSCitKT0tTSU1PVknEhiBTSU5JxaBBCitKT0tTSU1PVknEhiBTVEVWQU4KK0pPS1NJTU9WScSGIFZMQURJTUlSCitKT0tTSU1PVknEhiBaTEFUT01JUgorSk9LU0lNT1ZJxIYgWk9SQU4KK0pPS1NPVknEhiBEUkFHScWgQQorSk9LU09WScSGIFNORcW9QU5BCitKT0xEScSGIE1BUkEKK0pPTERJxIYgTUlPRFJBRworSk9MScSGIMW9SVZBTgorSk9MScSGIMW9SVZPSklOCitKT0xJxIYgQU5HRUxJTkEKK0pPTEnEhiBEQU5JTE8KK0pPTEnEhiBKQURSQU5LQQorSk9MScSGIEpPVkFOCitKT0xJxIYgS09OU1RBTlRJTgorSk9MScSGIEtPU1RBCitKT0xJxIYgTUlSSkFOQQorSk9MScSGIE5FQk9KxaBBCitKT0xJxIYgUEVUQVIKK0pPTEnEhiBTTE9CT0RBTgorSk9MScSGIFVST8WgCitKT0xJxIYgVkFTQQorSk9MT1ZJxIYgTUlMT1ZBTgorSk9OxIxJxIYgTUFSQQorSk9OQcWgIERVxaBBTgorSk9OQcWgIExBU0xPCitKT05BxaAgTklLT0xBCitKT05JxIYgQk/FoEtPCitKT05JxIYgRFJBR0FOCitKT05KRVYgTUlMSVZPSgorSk9OSkVWIFNMQVZPTEpVQgorSk9OSknEhiBTQVZPCitKT05PVknEhiBEVcWgQU4KK0pPTk9WScSGIFBFVEFSCitKT05UT1ZJxIYgQUxFS1NBCitKT05UT1ZJxIYtQklLScSGIE1JUkpBTkEKK0pPTlRPVknEhiBSVURPTEYKK0pPTlVaT1ZJxIYgVkxBRElNSVIKK0pPUkRBxIwgQU5BCitKT1JEQU4gRVLFvUVCRVQKK0pPUkRBTk9WIEtJUklMCitKT1JEQU5PVlNLSSBTVEFOT0pLTworSk9SR0FOT1ZJxIYgU0lNTworSk9SR0nEhiDFvUlWQU5BCitKT1JHScSGIERSQUdPTUlSCitKT1JHT1ZBTk9WScSGIEpFTElTQVZFVEEKK0pPUk9WScSGIEJSQU5LTworSk9ST1ZJxIYgUkFOS08KK0pPU0VWU0tJIFNJTUVPTgorSk9TScSGIEFMRUtTQU5EQVIKK0pPU0nEhiBGSUxJUAorSk9TScSGIElMSUpBCitKT1NJxIYgSVZBTgorSk9TScSGIEtPU0FOQQorSk9TScSGIExKVUJJTktPCitKT1NJxIYgTEpVQklOS08KK0pPU0nEhiBMSlVCT01JUgorSk9TScSGIE1JTEVOS08KK0pPU0nEhiBNSVJKQU5BCitKT1NJxIYgT0JSQUQKK0pPU0nEhiBPTEdBCitKT1NJxIYgUkFESU5LQQorSk9TScSGIFNSxJBBCitKT1NJxIYgU1RFVkFOCitKT1NJxIYgU1RFVkFOCitKT1NJRklESVMgS09TVEEKK0pPU0lGT1ZJxIYgRElNSVRSSUpFCitKT1NJRk9WScSGIERSQUdJxIYKK0pPU0lGT1ZJxIYgTEpVQklDQQorSk9TSUZPVknEhiBPTEdBCitKT1NJTcSMRVYgWlZPTklNSVIKK0pPU0lNT1YgQk9SSVNMQVYKK0pPU0lNT1YgRFJBR09TTEFWCitKT1NJTU9WIERVxaBBTgorSk9TSU1PViBHTElHT1JJSkUKK0pPU0lNT1YgSkVMRU5BCitKT1NJTU9WIFNURVZBTgorSk9TSU1PViBWQVNJTElKRQorSk9TSU1PViBWT0pPCitKT1NJTU9WScSGIMW9SVZBCitKT1NJTU9WScSGIEJPUklWT0oKK0pPU0lNT1ZJxIYgQk9SSVZPSgorSk9TSU1PVknEhiBKVUxJSkFOQQorSk9TSU1PVknEhiBNQVJLTworSk9TSU1PVknEhiBNSUxJQ0EKK0pPU0lNT1ZJxIYgTkVOQUQKK0pPU0lNT1ZJxIYgU0lOScWgQQorSk9TSU1PVknEhiBTVEVWQU4KK0pPU0lNT1ZJxIYgU1RFVkFOCitKT1NJTU9WScSGIFNURVZLQQorSk9TSU1PVknEhiBUQVRKQU5BCitKT1NJTU9WScSGIFZMQURJTUlSCitKT1NJTU9WScSGIFZMQURJTUlSCitKT1NJTU9WScSGIFZMQURJTUlSCitKT1NJTU9WScSGIFpERU5LQQorSk9TSU1PVlNLSSBBTEVLU0FOREFSCitKT1NJTiBEUkFHQU4KK0pPU0lOIE1BUklKQQorSk9TSU4gTUlMRQorSk9TSU4gUkFESUNBCitKT1NJTiBSQURPVkFOCitKT1NJTiBTTE9CT0RBTgorSk9TSVBPVknEhiBCT1JJU0xBVgorSk9TSVBPVknEhiBCT1JPCitKT1NJUE9WScSGIERBTklDQQorSk9TSVBPVknEhiBJVklDQQorSk9TSVBPVknEhiBQRVRBUgorSk9TSVBPVknEhiBTTE9CT0RBTgorSk9TSVBPVknEhiBWTEFESU1JUgorSk9UQU5PVknEhiBEQVJJTktBCitKT1RBTk9WScSGIEtPUk5FTElKQQorSk9UQU5PVknEhiBMSlVCT01JUgorSk9UQU5PVknEhiBNSUxJVk9KCitKT1RBTk9WScSGIE5FREVMSktPCitKT1RBTk9WScSGIFJBSktPCitKT1RBTk9WScSGIFNUQU5LTworSk9UQU5PVknEhiBUT01JU0xBVgorSk9UScSGIE1JUk9TTEFWCitKT1bEjEnEhiBEVcWgS08KK0pPVsSMScSGIFNMQVZLTworSk9WxIxJxIYgVkxBREFOCitKT1ZBxIxFVknEhiBETUlUQVIKK0pPVkHFoEVWScSGIFNMT0JPREFOCitKT1ZBTsSMRVZJxIYgQk9TSUxKS0EKK0pPVkFOxIxFVknEhiBHT0pLTworSk9WQU7EjEVWScSGIElMSUpBCitKT1ZBTsSMRVZJxIYgSkVMSUNBCitKT1ZBTsSMRVZJxIYgSk9WQU4KK0pPVkFOxIxFVknEhiBKT1ZBTgorSk9WQU7EjEVWScSGIEtPVklMSktBCitKT1ZBTsSMRVZJxIYgU1RFVkFOCitKT1ZBTsSMRVZJxIYtWkVLScSGIE5JS09MQQorSk9WQU7EjEVWScSGLVpFS0nEhiBOSUtPTEEKK0pPVkFOxIxJxIYgRFJBR0lDQQorSk9WQU7EjEnEhiBNRUxBTklKQQorSk9WQU7EjEnEhiBNSU9EUkFHCitKT1ZBTsSMScSGIE1JUk9TTEFWCitKT1ZBTkNBSSBNQVJJSkEKK0pPVkFOREnEhiBNQU5EQQorSk9WQU5EScSGIE1JTE/FoAorSk9WQU5ESU4gTUlMQU4KK0pPVkFOScSGIMSQT1LEkEUKK0pPVkFOScSGIMSQVVJPCitKT1ZBTknEhiBCT8WgS08KK0pPVkFOScSGIEJPxaBLTworSk9WQU5JxIYgRE9CUklDQQorSk9WQU5JxIYgRFXFoEFOIERJUEwgSU5HCitKT1ZBTknEhiBNQVJJSkEKK0pPVkFOScSGIE1JUktPCitKT1ZBTknEhiBNTEFERU4KK0pPVkFOScSGIE1PTUlSCitKT1ZBTknEhiBPTElWRVJBCitKT1ZBTknEhiBPTElWRVJBCitKT1ZBTktJTiBBTEVLU0FOREFSCitKT1ZBTktPVknEhiBSQURPU0xBVgorSk9WQU5PViDFvUFSS08KK0pPVkFOT1Ygxb1JVkEKK0pPVkFOT1YgQklMSkFOQQorSk9WQU5PViBCT8WgS08KK0pPVkFOT1YgQk9KQU5BCitKT1ZBTk9WIEJPUklTTEFWCitKT1ZBTk9WIEJPUklTTEFWCitKT1ZBTk9WIEJSQU5JU0xBVgorSk9WQU5PViBEUkFHQU4KK0pPVkFOT1YgRFJBR0lDQQorSk9WQU5PViBEUkFHSU5KQQorSk9WQU5PViBEUkFHT0xKVUIKK0pPVkFOT1YgRFJBR09NSVIKK0pPVkFOT1YgRFXFoEFOCitKT1ZBTk9WIERVxaBBTgorSk9WQU5PViBEVcWgSUNBCitKT1ZBTk9WIElHTkpBVAorSk9WQU5PViBJU0EKK0pPVkFOT1YgSVZBTgorSk9WQU5PViBKQcWgQQorSk9WQU5PViBKQVNOQQorSk9WQU5PViBKRUxFTkEKK0pPVkFOT1YgSk9WQU4KK0pPVkFOT1YgSk9WQU4KK0pPVkFOT1YgSk9WSUNBCitKT1ZBTk9WIExBWkFSCitKT1ZBTk9WIExBWkFSCitKT1ZBTk9WIE1FTEFOSUpBCitKT1ZBTk9WIE1JTEFOCitKT1ZBTk9WIE1JTEFOCitKT1ZBTk9WIE1JTEFOCitKT1ZBTk9WIE1JTElWT0oKK0pPVkFOT1YgTUlMT8WgCitKT1ZBTk9WIE1JUkpBTkEKK0pPVkFOT1YgTUxBREVOCitKT1ZBTk9WIE1PTcSMSUxPCitKT1ZBTk9WIFBFVEFSCitKT1ZBTk9WIFJBRElWT0oKK0pPVkFOT1YgU0FWQQorSk9WQU5PViBTUE9NRU5LQQorSk9WQU5PViBTVEVWQU5LQQorSk9WQU5PViBTVEVWQU4KK0pPVkFOT1YgU1ZFVElTTEFWCitKT1ZBTk9WIFNWRVRJU0xBVgorSk9WQU5PViBTVkVUT1pBUgorSk9WQU5PViBUT0RPUgorSk9WQU5PViBUT01BCitKT1ZBTk9WIFZJREEKK0pPVkFOT1YgVkxBRElNSVIKK0pPVkFOT1ZJxIYgxIxFREEKK0pPVkFOT1ZJxIYgxIxFRE9NSVIKK0pPVkFOT1ZJxIYgxIxFRE9NSVIKK0pPVkFOT1ZJxIYgxIxFRE9NSVIKK0pPVkFOT1ZJxIYgxIxFRE8KK0pPVkFOT1ZJxIYgxb1JVkFESU4KK0pPVkFOT1ZJxIYgxb1JVktBCitKT1ZBTk9WScSGIMW9SVZLTworSk9WQU5PVknEhiDFvUlWS08KK0pPVkFOT1ZJxIYgxb1JVktPCitKT1ZBTk9WScSGIMW9SVZPSklOCitKT1ZBTk9WScSGIMW9SVZPSklOCitKT1ZBTk9WScSGIMW9SVZPSklOCitKT1ZBTk9WScSGIMW9SVZPUkFECitKT1ZBTk9WScSGIMW9SVZPUkFECitKT1ZBTk9WScSGIMW9SVZPVEEKK0pPVkFOT1ZJxIYgxJBFTsSQSQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkFVSxJBJTkEKK0pPVkFOT1ZJxIYgxJBVUsSQSU5LQQorSk9WQU5PVknEhiDEkFVSQQorSk9WQU5PVknEhiDEkFVSTworSk9WQU5PVknEhiBBTEVLU0FOREFSIERSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EUkEKK0pPVkFOT1ZJxIYgQUxFS1NBCitKT1ZBTk9WScSGIEFOxJBBCitKT1ZBTk9WScSGIEFOxJBBCitKT1ZBTk9WScSGIEFOxJBFTElKQSBEUgorSk9WQU5PVknEhiBBTsSQRUxLQQorSk9WQU5PVknEhiBBTsSQRUxLTworSk9WQU5PVknEhiBBTkRSSUpBIERJUEwgSU5HCitKT1ZBTk9WScSGIEFORFJJSkEgRElQTCBPRUMKK0pPVkFOT1ZJxIYgQU5EUklKQQorSk9WQU5PVknEhiBBTkRSSUpBCitKT1ZBTk9WScSGIEFOR0VMSU5BCitKT1ZBTk9WScSGIEFOSUNBCitKT1ZBTk9WScSGIEFOS0lDQQorSk9WQU5PVknEhiBBUkFOxJBFTAorSk9WQU5PVknEhiBBUlNBIERSCitKT1ZBTk9WScSGIEFSU0EKK0pPVkFOT1ZJxIYgQVJTRU5JSkUKK0pPVkFOT1ZJxIYtQVJTScSGIFZJT0xFVEEKK0pPVkFOT1ZJxIYtQkFOS09WQcSMS0kgSk9WQU5LQQorSk9WQU5PVknEhiBCTEFHT0pFCitKT1ZBTk9WScSGIEJPxaBLTworSk9WQU5PVknEhiBCT8WgS08KK0pPVkFOT1ZJxIYgQk/FoEtPCitKT1ZBTk9WScSGIEJPxaBLTworSk9WQU5PVknEhiBCT8WgS08KK0pPVkFOT1ZJxIYgQk/FvUlEQVIgUFJPRkVTT1IKK0pPVkFOT1ZJxIYgQk/FvUlEQVIKK0pPVkFOT1ZJxIYgQk/FvU8KK0pPVkFOT1ZJxIYgQk9HREFOS0EKK0pPVkFOT1ZJxIYgQk9HREFOS0EKK0pPVkFOT1ZJxIYgQk9HREFOCitKT1ZBTk9WScSGIEJPR0RBTgorSk9WQU5PVknEhiBCT0dEQU4KK0pPVkFOT1ZJxIYgQk9KQU5BCitKT1ZBTk9WScSGIEJPUklTTEFWCitKT1ZBTk9WScSGIEJPUklTTEFWCitKT1ZBTk9WScSGIEJPUklWT0ogRElQTCBJTkcKK0pPVkFOT1ZJxIYgQk9SSVZPSgorSk9WQU5PVknEhiBCT1NJTEpLQQorSk9WQU5PVknEhiBCUkFOSUJPUgorSk9WQU5PVknEhiBCUkFOSU1JUgorSk9WQU5PVknEhiBCUkFOSVNMQVZBCitKT1ZBTk9WScSGIEJSQU5JU0xBVgorSk9WQU5PVknEhiBCUkFOSVNMQVYKK0pPVkFOT1ZJxIYgQlJBTklTTEFWCitKT1ZBTk9WScSGIEJSQU5JU0xBVgorSk9WQU5PVknEhiBCUkFOS0EKK0pPVkFOT1ZJxIYgQlJBTktPCitKT1ZBTk9WScSGIEJSQU5LTworSk9WQU5PVknEhiBCUkFOS08KK0pPVkFOT1ZJxIYgQlJBVElTTEFWIERSCitKT1ZBTk9WScSGIEJVRElNSVIKK0pPVkFOT1ZJxIYgQ1ZFVEEKK0pPVkFOT1ZJxIYgQ1ZFVEtPCitKT1ZBTk9WScSGIERBTElCT1IgRElQTCBQUkFWTklLCitKT1ZBTk9WScSGIERBTElCT1IKK0pPVkFOT1ZJxIYgREFOSUxPCitKT1ZBTk9WScSGIERBUklOS0EKK0pPVkFOT1ZJxIYgREVKQU4KK0pPVkFOT1ZJxIYgREVKQU4KK0pPVkFOT1ZJxIYgRElNSVRSSUpFCitKT1ZBTk9WScSGIERJTUlUUklKRQorSk9WQU5PVknEhiBESU1JVFJJSkUKK0pPVkFOT1ZJxIYgRElNSVRSSUpFCitKT1ZBTk9WScSGIERPQlJJTEEKK0pPVkFOT1ZJxIYgRE9CUklWT0pFCitKT1ZBTk9WScSGIERPQlJPU0FWCitKT1ZBTk9WScSGIERPQlJPU0FWCitKT1ZBTk9WScSGIERSQUdBTkEKK0pPVkFOT1ZJxIYgRFJBR0FOQQorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdJxaBBCitKT1ZBTk9WScSGIERSQUdJxIYKK0pPVkFOT1ZJxIYgRFJBR0nEhgorSk9WQU5PVknEhiBEUkFHSUNBCitKT1ZBTk9WScSGIERSQUdJQ0EKK0pPVkFOT1ZJxIYgRFJBR0lDQQorSk9WQU5PVknEhiBEUkFHSUNBCitKT1ZBTk9WScSGIERSQUdJVk9KRQorSk9WQU5PVknEhiBEUkFHT0xKVUIgT0VDCitKT1ZBTk9WScSGIERSQUdPTEpVQgorSk9WQU5PVknEhiBEUkFHT0xKVUIKK0pPVkFOT1ZJxIYgRFJBR09MSlVCCitKT1ZBTk9WScSGIERSQUdPU0xBViBESVBMIElORworSk9WQU5PVknEhiBEUkFHT1NMQVYgRElQTCBJTkcKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHTworSk9WQU5PVknEhiBEUkFHVVRJTgorSk9WQU5PVknEhiBEVcWgQU4gRFIgUFJPRgorSk9WQU5PVknEhiBEVcWgQU4gRFIKK0pPVkFOT1ZJxIYgRFXFoEFOIERSCitKT1ZBTk9WScSGIERVxaBBTktBCitKT1ZBTk9WScSGIERVxaBBTktBCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEtPCitKT1ZBTk9WScSGIERVxaBLTworSk9WQU5PVknEhiBEVURBCitKT1ZBTk9WScSGIEVMRU5BCitKT1ZBTk9WScSGIEVNSUNBCitKT1ZBTk9WScSGIEVTTUEKK0pPVkFOT1ZJxIYgRVZJQ0EKK0pPVkFOT1ZJxIYgRkVMSUNJSkEKK0pPVkFOT1ZJxIYgRklMSVAKK0pPVkFOT1ZJxIYgR0VPUkcKK0pPVkFOT1ZJxIYgR09KS08KK0pPVkFOT1ZJxIYgR09KS08KK0pPVkFOT1ZJxIYgR09SQU4KK0pPVkFOT1ZJxIYgR09SQU4KK0pPVkFOT1ZJxIYgR09SREFOQQorSk9WQU5PVknEhiBHT1JEQU5BCitKT1ZBTk9WScSGIEdPUkRBTkEKK0pPVkFOT1ZJxIYgR09SREFOQQorSk9WQU5PVknEhiBHT1JEQU5BCitKT1ZBTk9WScSGIEdST1pEQQorSk9WQU5PVknEhiBHUlVKQQorSk9WQU5PVknEhiBHUlVKSUNBCitKT1ZBTk9WScSGIEhSSVNUSU5BCitKT1ZBTk9WScSGIElMRQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJTElKQQorSk9WQU5PVknEhiBJUklOQQorSk9WQU5PVknEhiBJVkFOIERSCitKT1ZBTk9WScSGIElWQU5LQSBEUiBQUk9GCitKT1ZBTk9WScSGIElWQU5LQQorSk9WQU5PVknEhiBJVkFOCitKT1ZBTk9WScSGIElWQU4KK0pPVkFOT1ZJxIYgSkHFoEEKK0pPVkFOT1ZJxIYgSkFEUkFOS0EKK0pPVkFOT1ZJxIYgSkFTTUlOS0EKK0pPVkFOT1ZJxIYgSkVMQQorSk9WQU5PVknEhiBKRUxFTkEKK0pPVkFOT1ZJxIYgSkVMRU5BCitKT1ZBTk9WScSGIEpFTEVOQQorSk9WQU5PVknEhiBKRUxFTkEKK0pPVkFOT1ZJxIYgSkVMSUNBCitKT1ZBTk9WScSGIEpFTElTQVZFVEEKK0pPVkFOT1ZJxIYgSkVMSVNBVkVUQQorSk9WQU5PVknEhiBKRUxJU0FWRVRBCitKT1ZBTk9WScSGIEpFTEtBCitKT1ZBTk9WScSGIEpFVlRBCitKT1ZBTk9WScSGIEpPQ0EKK0pPVkFOT1ZJxIYgSk9WQU5LQQorSk9WQU5PVknEhiBKT1ZBTktBCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVkFOCitKT1ZBTk9WScSGIEpPVklDQQorSk9WQU5PVknEhiBKT1ZJQ0EKK0pPVkFOT1ZJxIYgSk9WSUNBCitKT1ZBTk9WScSGIEpPVklDQQorSk9WQU5PVknEhiBKT1ZJQ0EKK0pPVkFOT1ZJxIYgSlVMSUpBTkEKK0pPVkFOT1ZJxIYgSlVMS0EKK0pPVkFOT1ZJxIYgS0FUQVJJTkEKK0pPVkFOT1ZJxIYgS0FUSUNBCitKT1ZBTk9WScSGIEtPU0FOQQorSk9WQU5PVknEhiBLT1NUQQorSk9WQU5PVknEhiBLT1NUQQorSk9WQU5PVknEhi1LT1NUScSGIERSQUdPU0xBVkEKK0pPVkFOT1ZJxIYgS09WSU5LQQorSk9WQU5PVknEhiBLU0VOSUpBCitKT1ZBTk9WScSGIExBWkFSCitKT1ZBTk9WScSGIExBWkFSCitKT1ZBTk9WScSGIExBWkFSCitKT1ZBTk9WScSGIExBWkFSCitKT1ZBTk9WScSGIExBWkFSCitKT1ZBTk9WScSGIExKSUxKQU5BCitKT1ZBTk9WScSGIExKVUJBTgorSk9WQU5PVknEhiBMSlVCScWgQQorSk9WQU5PVknEhiBMSlVCScWgQQorSk9WQU5PVknEhiBMSlVCSUNBCitKT1ZBTk9WScSGIExKVUJJQ0EKK0pPVkFOT1ZJxIYgTEpVQklDQQorSk9WQU5PVknEhiBMSlVCSUNBCitKT1ZBTk9WScSGIExKVUJJTktBCitKT1ZBTk9WScSGIExKVUJJTktBCitKT1ZBTk9WScSGIExKVUJJVk9KRSBEUgorSk9WQU5PVknEhiBMSlVCT01JUiBNUgorSk9WQU5PVknEhiBMSlVCT01JUgorSk9WQU5PVknEhiBMSlVCTworSk9WQU5PVknEhiBMVUtBCitKT1ZBTk9WScSGIExVS0EKK0pPVkFOT1ZJxIYgTFVLQQorSk9WQU5PVknEhiBMVUtBCitKT1ZBTk9WScSGIE1BTEnFoEEKK0pPVkFOT1ZJxIYgTUFSQQorSk9WQU5PVknEhiBNQVJBCitKT1ZBTk9WScSGIE1BUkEKK0pPVkFOT1ZJxIYgTUFSSUNBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJLTworSk9WQU5PVknEhiBNQVJLTworSk9WQU5PVknEhiBNScSGTworSk9WQU5PVknEhiBNSUhBSkxPCitKT1ZBTk9WScSGIE1JSEFKTE8KK0pPVkFOT1ZJxIYgTUlIQUpMTworSk9WQU5PVknEhiBNSUpBVAorSk9WQU5PVknEhiBNSUpBCitKT1ZBTk9WScSGIE1JTEHFoElOCitKT1ZBTk9WScSGIE1JTEFESU4KK0pPVkFOT1ZJxIYgTUlMQU4gQURWT0tBVAorSk9WQU5PVknEhiBNSUxBTiBESVBMIElORworSk9WQU5PVknEhiBNSUxBTktBCitKT1ZBTk9WScSGIE1JTEFOS0EKK0pPVkFOT1ZJxIYgTUlMQU5LQQorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxBTgorSk9WQU5PVknEhiBNSUxFTkEKK0pPVkFOT1ZJxIYgTUlMRU5BCitKT1ZBTk9WScSGIE1JTEVOQQorSk9WQU5PVknEhiBNSUxFTktPIERSCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5USUpFCitKT1ZBTk9WScSGIE1JTEVWQQorSk9WQU5PVknEhiBNSUxFCitKT1ZBTk9WScSGIE1JTEUKK0pPVkFOT1ZJxIYgTUlMScSGCitKT1ZBTk9WScSGIE1JTEnEhgorSk9WQU5PVknEhiBNSUxJQ0EKK0pPVkFOT1ZJxIYgTUlMSUNBCitKT1ZBTk9WScSGIE1JTElDQQorSk9WQU5PVknEhiBNSUxJSkFOQQorSk9WQU5PVknEhiBNSUxJU0FWCitKT1ZBTk9WScSGIE1JTElWT0pFCitKT1ZBTk9WScSGIE1JTElWT0oKK0pPVkFOT1ZJxIYgTUlMSVZPSgorSk9WQU5PVknEhiBNSUxKQU5BCitKT1ZBTk9WScSGIE1JTEtBTgorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE9OSkEKK0pPVkFOT1ZJxIYgTUlMT1JBRCBESVBMIElORworSk9WQU5PVknEhiBNSUxPUkFEIERSIExFS0FSCitKT1ZBTk9WScSGIE1JTE9SQUQKK0pPVkFOT1ZJxIYgTUlMT1JBRAorSk9WQU5PVknEhiBNSUxPVkFOCitKT1ZBTk9WScSGIE1JTE9WQU4KK0pPVkFOT1ZJxIYgTUlMVVRJTgorSk9WQU5PVknEhiBNSUxVVElOCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JUkEKK0pPVkFOT1ZJxIYgTUlSQQorSk9WQU5PVknEhiBNSVJBCitKT1ZBTk9WScSGIE1JUkpBTkEKK0pPVkFOT1ZJxIYgTUlSSkFOQQorSk9WQU5PVknEhiBNSVJKQU5BCitKT1ZBTk9WScSGIE1JUktPCitKT1ZBTk9WScSGIE1JUktPCitKT1ZBTk9WScSGIE1JUktPCitKT1ZBTk9WScSGIE1JUktPCitKT1ZBTk9WScSGIE1JUk9MSlVCCitKT1ZBTk9WScSGIE1JUk9TTEFWQQorSk9WQU5PVknEhiBNSVJPU0xBVkEKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlST1NMQVYKK0pPVkFOT1ZJxIYgTUlUQVIKK0pPVkFOT1ZJxIYgTUxBxJBBCitKT1ZBTk9WScSGIE1MQURFTktBCitKT1ZBTk9WScSGIE1MQURFTgorSk9WQU5PVknEhiBNTEFERU4KK0pPVkFOT1ZJxIYgTU9NxIxJTE8KK0pPVkFOT1ZJxIYgTU9NxIxJTE8KK0pPVkFOT1ZJxIYgTU9NSVIKK0pPVkFOT1ZJxIYgTkFEQQorSk9WQU5PVknEhiBOQURBCitKT1ZBTk9WScSGIE5BREEKK0pPVkFOT1ZJxIYgTkFEQQorSk9WQU5PVknEhiBOQURFxb1EQQorSk9WQU5PVknEhiBOQURFxb1EQQorSk9WQU5PVknEhiBOQURFxb1EQQorSk9WQU5PVknEhiBORUJPSsWgQQorSk9WQU5PVknEhiBORURBCitKT1ZBTk9WScSGIE5FREVMSktBCitKT1ZBTk9WScSGIE5FTUFOSkEKK0pPVkFOT1ZJxIYgTkVNQU5KQQorSk9WQU5PVknEhiBORU5BRCBBRFZPS0FUCitKT1ZBTk9WScSGIE5FTkFECitKT1ZBTk9WScSGIE5FTkFECitKT1ZBTk9WScSGIE5FTkFECitKT1ZBTk9WScSGIE5FVkVOQQorSk9WQU5PVknEhiBORVZFTktBCitKT1ZBTk9WScSGIE5FVkVOS0EKK0pPVkFOT1ZJxIYgTklLT0xBCitKT1ZBTk9WScSGIE5JS09MQQorSk9WQU5PVknEhiBOSUtPTEEKK0pPVkFOT1ZJxIYgTklLT0xBCitKT1ZBTk9WScSGIE5JS09MQQorSk9WQU5PVknEhiBOT1ZBSworSk9WQU5PVknEhiBOT1ZJQ0EKK0pPVkFOT1ZJxIYgT0JSQUQKK0pPVkFOT1ZJxIYgT0xHQQorSk9WQU5PVknEhiBPTEdBCitKT1ZBTk9WScSGIE9MR0EKK0pPVkFOT1ZJxIYgT0xHQQorSk9WQU5PVknEhiBPTEdJQ0EKK0pPVkFOT1ZJxIYgT1NUT0pBCitKT1ZBTk9WScSGIE9TVE9KQQorSk9WQU5PVknEhiBPU1RPSkEKK0pPVkFOT1ZJxIYgUEFWTEUKK0pPVkFOT1ZJxIYgUEFWTEUKK0pPVkFOT1ZJxIYgUEFWTEUKK0pPVkFOT1ZJxIYgUEVSQQorSk9WQU5PVknEhiBQRVJJQ0EKK0pPVkFOT1ZJxIYgUEVSSUNBCitKT1ZBTk9WScSGIFBFUk8KK0pPVkFOT1ZJxIYgUEVSTworSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQRVRBUgorSk9WQU5PVknEhiBQUkVEUkFHIERSCitKT1ZBTk9WScSGIFBSRURSQUcKK0pPVkFOT1ZJxIYgUFJFRFJBRworSk9WQU5PVknEhiBQUkVEUkFHCitKT1ZBTk9WScSGIFJBREUKK0pPVkFOT1ZJxIYgUkFEScWgQQorSk9WQU5PVknEhiBSQURJTktBCitKT1ZBTk9WScSGIFJBRElWT0oKK0pPVkFOT1ZJxIYgUkFESVZPSgorSk9WQU5PVknEhiBSQURNSUxBCitKT1ZBTk9WScSGIFJBRE1JTEEKK0pPVkFOT1ZJxIYgUkFETUlMQQorSk9WQU5PVknEhiBSQURPTUlSIERSCitKT1ZBTk9WScSGIFJBRE9NSVIKK0pPVkFOT1ZJxIYgUkFET05KQQorSk9WQU5PVknEhiBSQURPU0xBVkEKK0pPVkFOT1ZJxIYgUkFET1NMQVYKK0pPVkFOT1ZJxIYgUkFET1NMQVYKK0pPVkFOT1ZJxIYgUkFET1ZBTgorSk9WQU5PVknEhiBSQURPVkFOCitKT1ZBTk9WScSGIFJBRE9WQU4KK0pPVkFOT1ZJxIYgUkFET1ZBTgorSk9WQU5PVknEhiBSQURPVkFOCitKT1ZBTk9WScSGIFJBSktPCitKT1ZBTk9WScSGIFJBTsSQRUwKK0pPVkFOT1ZJxIYgUkFOS08KK0pPVkFOT1ZJxIYgUkFUS0EKK0pPVkFOT1ZJxIYgUlXFvUEKK0pPVkFOT1ZJxIYgUlXFvUlDQQorSk9WQU5PVknEhiBSVcW9SUNBCitKT1ZBTk9WScSGIFJVxb1JQ0EKK0pPVkFOT1ZJxIYgU0HFoEEKK0pPVkFOT1ZJxIYgU0FWQQorSk9WQU5PVknEhiBTQVZFVEEKK0pPVkFOT1ZJxIYgU0FWTworSk9WQU5PVknEhiBTQVZPCitKT1ZBTk9WScSGIFNFTElNSVIKK0pPVkFOT1ZJxIYgU0VSQUZJTQorSk9WQU5PVknEhiBTSU1BCitKT1ZBTk9WScSGIFNJTUEKK0pPVkFOT1ZJxIYgU0lNTworSk9WQU5PVknEhiBTSU5JxaBBCitKT1ZBTk9WScSGIFNMQVZJQ0EKK0pPVkFOT1ZJxIYgU0xBVktPCitKT1ZBTk9WScSGIFNMQVZLTworSk9WQU5PVknEhiBTTEFWS08KK0pPVkFOT1ZJxIYgU0xBVktPCitKT1ZBTk9WScSGIFNMT0JPREFOIERSCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNMT0JPREFOCitKT1ZBTk9WScSGIFNNSUxKQQorSk9WQU5PVknEhiBTTUlMSkEKK0pPVkFOT1ZJxIYgU01JTEpLQQorSk9WQU5PVknEhiBTTUlMSktBCitKT1ZBTk9WScSGIFNPRklKQQorSk9WQU5PVknEhiBTUElSQQorSk9WQU5PVknEhiBTUE9NRU5LQQorSk9WQU5PVknEhiBTUsSQQU4KK0pPVkFOT1ZJxIYgU1JCSVNMQVYKK0pPVkFOT1ZJxIYgU1JFVEVOCitKT1ZBTk9WScSGIFNUQU5JxaBBCitKT1ZBTk9WScSGIFNUQU5JTUlSCitKT1ZBTk9WScSGIFNUQU5JTUlSCitKT1ZBTk9WScSGIFNUQU5JTUlSCitKT1ZBTk9WScSGIFNUQU5LTworSk9WQU5PVknEhiBTVEFOT0pFCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNUT0rFoEEKK0pPVkFOT1ZJxIYtU1RPSkFOIEdFUlRSVURBIERSCitKT1ZBTk9WScSGIFNUT0pBTktBCitKT1ZBTk9WScSGIFNUT0pBTktBCitKT1ZBTk9WScSGIFNUT0pBTgorSk9WQU5PVknEhiBTVE9KQU4KK0pPVkFOT1ZJxIYgU1RPSkFOCitKT1ZBTk9WScSGIFNUT0pBTgorSk9WQU5PVknEhiBTVVpBTkEKK0pPVkFOT1ZJxIYgU1ZFVExBTkEKK0pPVkFOT1ZJxIYgU1ZFVE9aQVIKK0pPVkFOT1ZJxIYgU1ZFVE9aQVIKK0pPVkFOT1ZJxIYgU1ZFVE9aQVIKK0pPVkFOT1ZJxIYgU1ZFVE9aQVIKK0pPVkFOT1ZJxIYgVEFUSkFOQQorSk9WQU5PVknEhiBURU9ET1JBCitKT1ZBTk9WScSGIFRJSE9NSVIKK0pPVkFOT1ZJxIYgVElIT01JUgorSk9WQU5PVknEhiBUT0RPUgorSk9WQU5PVknEhiBUT01BCitKT1ZBTk9WScSGIFRPTUlTTEFWCitKT1ZBTk9WScSGIFRPTUlTTEFWCitKT1ZBTk9WScSGIFRSQUpLTworSk9WQU5PVknEhiBUVUdPTUlSCitKT1ZBTk9WScSGIFVST8WgCitKT1ZBTk9WScSGIFZBU0EKK0pPVkFOT1ZJxIYgVkFTQQorSk9WQU5PVknEhiBWQVNJTElKRQorSk9WQU5PVknEhiBWQVNJTElKRQorSk9WQU5PVknEhiBWQVNJTElKRQorSk9WQU5PVknEhiBWQVNJTElKRQorSk9WQU5PVknEhiBWQVNJTEoKK0pPVkFOT1ZJxIYgVkVMScSMS08KK0pPVkFOT1ZJxIYgVkVMSUJPUgorSk9WQU5PVknEhiBWRUxJQk9SCitKT1ZBTk9WScSGIFZFTElCT1IKK0pPVkFOT1ZJxIYgVkVMSU5LQQorSk9WQU5PVknEhiBWRVJBCitKT1ZBTk9WScSGIFZFUkEKK0pPVkFOT1ZJxIYgVkVSQQorSk9WQU5PVknEhiBWRVJBCitKT1ZBTk9WScSGIFZFUklDQQorSk9WQU5PVknEhiBWRVJJQ0EKK0pPVkFOT1ZJxIYgVkVST0xKVUIKK0pPVkFOT1ZJxIYgVkVTRUxJTgorSk9WQU5PVknEhiBWRVNOQQorSk9WQU5PVknEhiBWRVNOQQorSk9WQU5PVknEhiBWRVNOQQorSk9WQU5PVknEhiBWSURBCitKT1ZBTk9WScSGIFZJRE9TTEFWCitKT1ZBTk9WScSGIFZJTE1BCitKT1ZBTk9WScSGIFZMQURBCitKT1ZBTk9WScSGIFZMQURBCitKT1ZBTk9WScSGIFZMQURJTUlSCitKT1ZBTk9WScSGIFZMQURJTUlSCitKT1ZBTk9WScSGIFZMQURJTUlSCitKT1ZBTk9WScSGIFZMQURJTUlSCitKT1ZBTk9WScSGIFZMQURJU0xBVkEKK0pPVkFOT1ZJxIYgVkxBSktPCitKT1ZBTk9WScSGIFZMQVNUSU1JUgorSk9WQU5PVknEhiBWT0pJU0xBViBEUiBQUk9GCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZPSklTTEFWCitKT1ZBTk9WScSGIFZVxIxFVEEKK0pPVkFOT1ZJxIYgWkFHT1JLQQorSk9WQU5PVknEhiBaREVOS0EKK0pPVkFOT1ZJxIYgWkRSQVZLTworSk9WQU5PVknEhiBaRFJBVktPCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkFOCitKT1ZBTk9WScSGIFpPUkEKK0pPVkFOT1ZJxIYgWk9SQQorSk9WQU5PVknEhiBaT1JJQ0EKK0pPVkFOT1ZJxIYgWk9SSUNBCitKT1ZBTk9WScSGIFpPUklDQQorSk9WQU5PVknEhiBaT1JLQQorSk9WQU5PVknEhiBaVk9OSU1JUgorSk9WQU5PVlNLQSBDVkVUQQorSk9WQU5PVlNLQSBUQVNLQQorSk9WQU5PVlNLSSBESU1JVEFSCitKT1ZBTk9WU0tJIERVxaBBTgorSk9WQU5PVlNLSSBNSUxFCitKT1ZBTk9WU0tJIE1JTEUKK0pPVkFOT1ZTS0kgTUlMSUNBCitKT1ZBTk9WU0tJIE5JS09MQQorSk9WQU5PVlNLSSBQRVRBUgorSk9WQU5PVlNLSSBTSU1FT05BCitKT1ZBTk9WU0tJIFNUT0pBRElOCitKT1ZFUiBNSUhBTEoKK0pPVkVUScSGIEFORFJJSkEKK0pPVkVUScSGIEJSQU5LTworSk9WRVRJxIYgQlJBTktPCitKT1ZFVEnEhiBNSUxJQ0EKK0pPVkVUScSGIFNUQU5LTworSk9WRVRJxIYgVkVTRUxJTgorSk9WScSMRVZJxIYgVkxBRElNSVIgRFIKK0pPVknEjEnEhiDEjEVET01JUgorSk9WScSMScSGIMW9QVJLTworSk9WScSMScSGIMW9QVJLTworSk9WScSMScSGIMW9RUxKS08KK0pPVknEjEnEhiDFvUlWQU4KK0pPVknEjEnEhiDEkE9SxJBFCitKT1ZJxIxJxIYgxJBPUsSQRQorSk9WScSMScSGIMSQVVJBCitKT1ZJxIxJxIYgQU5LSUNBCitKT1ZJxIxJxIYgQk/FoEtPCitKT1ZJxIxJxIYgQk9HREFOCitKT1ZJxIxJxIYgQk9SQQorSk9WScSMScSGIEJSQU5FCitKT1ZJxIxJxIYgQlJBTklTTEFWQQorSk9WScSMScSGIEJSQU5LQQorSk9WScSMScSGIERFSkFOCitKT1ZJxIxJxIYgRFJBR0FOCitKT1ZJxIxJxIYgRFJBR0FOCitKT1ZJxIxJxIYgRFJBR0FOCitKT1ZJxIxJxIYgRFJBR0FOCitKT1ZJxIxJxIYgRFJBR09MSlVCCitKT1ZJxIxJxIYgRFXFoEFOCitKT1ZJxIxJxIYgRFXFoEFOCitKT1ZJxIxJxIYgRFXFoEtPCitKT1ZJxIxJxIYgR0VPUkdJSkUKK0pPVknEjEnEhiBIRUxFTkEKK0pPVknEjEnEhiBJTElKQQorSk9WScSMScSGIElMSUpBCitKT1ZJxIxJxIYgSkVMSVNBVkVUQQorSk9WScSMScSGIEpPVkFOCitKT1ZJxIxJxIYgSk9WSUNBCitKT1ZJxIxJxIYgS0FUSUNBCitKT1ZJxIxJxIYgTEFaQVIKK0pPVknEjEnEhiBMRVBPU0FWQQorSk9WScSMScSGIExKSUxKQU5BCitKT1ZJxIxJxIYgTEpJTEpBTkEKK0pPVknEjEnEhiBMSlVCSUNBCitKT1ZJxIxJxIYgTEpVQklDQQorSk9WScSMScSGIExKVUJJTktBCitKT1ZJxIxJxIYgTEpVQk9NSVIKK0pPVknEjEnEhiBNQUtTSU0KK0pPVknEjEnEhiBNQVJBCitKT1ZJxIxJxIYgTUFSSUpBCitKT1ZJxIxJxIYgTUFSSUpBCitKT1ZJxIxJxIYgTUFSS08KK0pPVknEjEnEhiBNQVJLTworSk9WScSMScSGIE1BUktPCitKT1ZJxIxJxIYgTUFSS08KK0pPVknEjEnEhiBNSUxBRElOCitKT1ZJxIxJxIYgTUlMQU4KK0pPVknEjEnEhiBNSUxBTgorSk9WScSMScSGIE1JTEVOS08KK0pPVknEjEnEhiBNSUxFTktPCitKT1ZJxIxJxIYgTUlMSUNBCitKT1ZJxIxJxIYgTUlMSUNBCitKT1ZJxIxJxIYgTUlMT8WgCitKT1ZJxIxJxIYgTUlMT8WgCitKT1ZJxIxJxIYgTUlMT01JUgorSk9WScSMScSGIE1JTE9SQUQKK0pPVknEjEnEhiBNSUxPVkFOCitKT1ZJxIxJxIYgTUlST1NMQVYKK0pPVknEjEnEhiBNTEFERU4KK0pPVknEjEnEhiBPQlJBRAorSk9WScSMScSGIE9MR0EKK0pPVknEjEnEhiBQQUpBCitKT1ZJxIxJxIYgUEVUQVIKK0pPVknEjEnEhiBSQURBCitKT1ZJxIxJxIYgUkFERQorSk9WScSMScSGIFJBRElTTEFWCitKT1ZJxIxJxIYgUkFESVZPSkUKK0pPVknEjEnEhiBSQURPTUlSCitKT1ZJxIxJxIYgUkFET1ZBTgorSk9WScSMScSGIFJBVEtPCitKT1ZJxIxJxIYgU0FWRVRBCitKT1ZJxIxJxIYgU0lNTworSk9WScSMScSGIFNMQVZLTworSk9WScSMScSGIFNMT0JPREFOS0EKK0pPVknEjEnEhiBTTE9CT0RBTgorSk9WScSMScSGIFNSRVRFTgorSk9WScSMScSGIFNUQU5LTworSk9WScSMScSGIFNWRVRJU0xBVgorSk9WScSMScSGIFNWRVRPWkFSCitKT1ZJxIxJxIYgU1ZFVE9aQVIKK0pPVknEjEnEhiBUQU5BU0lKRQorSk9WScSMScSGIFRBVEpBTkEKK0pPVknEjEnEhiBUT0RPUgorSk9WScSMScSGIFVST8WgCitKT1ZJxIxJxIYgVkFTQQorSk9WScSMScSGIFZFUklDQQorSk9WScSMScSGIFZPSklOCitKT1ZJxIxJxIYgVk9KSVNMQVYKK0pPVknEjEnEhiBaRFJBVktPCitKT1ZJxIxJxIYgWk9SQU4KK0pPVknEjElOIEFMRUtTQU5EQVIKK0pPVknEjElOIEFOSUNBCitKT1ZJxIxJTiBLQVRJQ0EKK0pPVknEjElOIExKVUJJQ0EKK0pPVknEjElOIExKVUJJQ0EKK0pPVknEjElOIE1JTE9WQU4KK0pPVknEjElOIFNMQVZLTworSk9WScSMSU4gU09GSUpBCitKT1ZJxIxJTiBUT8WgQQorSk9WScWgRVZJxIYgTUlMQU4KK0pPVknFoEVWScSGIE1JUkpBTkEKK0pPVknFoEVWScSGIFpEUkFWS08KK0pPVknFoEnEhiDFvUFSS08KK0pPVknFoEnEhiDEkFVSTworSk9WScWgScSGIEJPUk8KK0pPVknFoEnEhiBEVcWgQU4KK0pPVknFoEnEhiBKT1ZBTgorSk9WScWgScSGIE1JVEFSCitKT1ZJxaBJxIYgTklLT0xBCitKT1ZJxaBJxIYgUEFWTEUKK0pPVknFoEnEhiBQUkVEUkFHCitKT1ZJxaBJxIYgU0lNTworSk9WScSGIMSMRURPTUlSCitKT1ZJxIYgxb1BUktPCitKT1ZJxIYgxb1BUktPCitKT1ZJxIYgxb1JVk9KSU4KK0pPVknEhiDFvUlWT1JBRAorSk9WScSGIMW9SVZPUkFECitKT1ZJxIYgxJBPUsSQRQorSk9WScSGIEFMRUtTQU5EQVIKK0pPVknEhiBBTEVLU0FOREFSCitKT1ZJxIYgQU5JQ0EKK0pPVknEhiBCT8WgS08KK0pPVknEhiBCT0JBTgorSk9WScSGIEJPUkEKK0pPVknEhiBCUkFOS08KK0pPVknEhiBCUkFOS08KK0pPVknEhiBDVkVUQQorSk9WScSGIERBVklECitKT1ZJxIYgRElNSVRSSUpFCitKT1ZJxIYgRFJBR0FOQQorSk9WScSGIERSQUdPTEpVQgorSk9WScSGIERSQUdPTEpVQgorSk9WScSGIERVxaBBTgorSk9WScSGIERVxaBBTgorSk9WScSGIEVSSUtBCitKT1ZJxIYgR09KS08KK0pPVknEhiBHT1JEQU5BCitKT1ZJxIYgSVZBTkEKK0pPVknEhiBJVkFOCitKT1ZJxIYgSkFEUkFOS0EgRFIKK0pPVknEhiBKQVNOQQorSk9WScSGIEpPQ08KK0pPVknEhiBKT1ZBTktBCitKT1ZJxIYgSk9WQU4KK0pPVknEhiBKT1ZBTgorSk9WScSGIEpPVk8KK0pPVknEhiBLT1NUQQorSk9WScSGIEtTRU5JSkEKK0pPVknEhiBMSlVCScWgQQorSk9WScSGIE1BUklDQQorSk9WScSGIE1BUklKQU4KK0pPVknEhiBNQVJLTworSk9WScSGIE1FTElUQQorSk9WScSGIE1JTEFESU4KK0pPVknEhiBNSUxBTktBCitKT1ZJxIYgTUlMQU5LQQorSk9WScSGIE1JTEFOCitKT1ZJxIYgTUlMQU4KK0pPVknEhiBNSUxBTgorSk9WScSGIE1JTEVOS08KK0pPVknEhiBNSUxJVk9KRQorSk9WScSGIE1JTE9KSUNBCitKT1ZJxIYgTUlMVVRJTgorSk9WScSGIE1JTFVUSU4KK0pPVknEhiBNSVJBCitKT1ZJxIYgTUlSSkFOQQorSk9WScSGIE1JUkpBTkEKK0pPVknEhiBNSVJPU0xBVkEKK0pPVknEhiBNSVJPU0xBVgorSk9WScSGIE1JVEFSCitKT1ZJxIYgTklLT0xBCitKT1ZJxIYgTklLT0xBCitKT1ZJxIYgTklLT0xBCitKT1ZJxIYgTklLT0xBCitKT1ZJxIYgUEFKSUNBCitKT1ZJxIYgUEVSU0lEQQorSk9WScSGIFBFVEFSCitKT1ZJxIYgUEVUQVIKK0pPVknEhiBSQURFCitKT1ZJxIYgUkFESVZPSkUKK0pPVknEhiBSQURJVk9KRQorSk9WScSGIFJBRE9WQU4KK0pPVknEhiBSQUpLTworSk9WScSGIFNBVk8KK0pPVknEhiBTTEFWS08KK0pPVknEhiBTTE9CT0RBTgorSk9WScSGIFNQQVNFTklKQQorSk9WScSGIFNUQU5BCitKT1ZJxIYgU1RBTknFoEEKK0pPVknEhiBTVEFOS08KK0pPVknEhiBTVEFOS08KK0pPVknEhiBTVEFOS08KK0pPVknEhiBTVEVWQU4KK0pPVknEhiBTVkVUSVNMQVYKK0pPVknEhiBWQVNBCitKT1ZJxIYgVkVMSU1JUgorSk9WScSGIFZFTElaQVIKK0pPVknEhiBWRUxKS08KK0pPVknEhiBWRVJBCitKT1ZJxIYgVkVSQQorSk9WScSGIFZFUkEKK0pPVknEhiBWTEFEQQorSk9WScSGIFZMQURBCitKT1ZJxIYgVkxBREEKK0pPVknEhiBWTEFEQQorSk9WScSGIFZMQURJTUlSCitKT1ZJxIYgVkxBRElTTEFWCitKT1ZJxIYgVk9KSVNMQVYKK0pPVknEhiBWVUtPU0FWQQorSk9WScSGIFpEUkFWS08KK0pPVknEhiBaVk9OSU1JUgorSk9WScSGRVZJxIYgQk/FvUlEQVIKK0pPVknEhkVWScSGIE1JTEEKK0pPVknEhkVWScSGIE1JTFVUSU4KK0pPVknEhkVWScSGIE5FTkFECitKT1ZJxIZFVknEhiBTVEFOS08gRElQTCBJTkcKK0pPVknEhkVWScSGIFZJRE9TQVZBCitKT1ZJxIZFVknEhiBaT1JBTgorSk9WSU4gxb1JVkEKK0pPVklOIEFOxJBFTEtBCitKT1ZJTiBCT1JJVk9KCitKT1ZJTiBCUkFOS08KK0pPVklOIERSQUdBTgorSk9WSU4gRFJBR09NSVIKK0pPVklOIERVxaBBTgorSk9WSU4gRFXFoEFOCitKT1ZJTiBJVkFOCitKT1ZJTiBKRUxFTkEKK0pPVklOIExKVUJJQ0EKK0pPVklOIE1JTEFOCitKT1ZJTiBNSUxJVk9KIERSCitKT1ZJTiBNSUxPxaAKK0pPVklOIE1JUkpBTkEKK0pPVklOIFJBRE9TTEFWCitKT1ZJTiBSQURPVkFOCitKT1ZJTiBTSU1BCitKT1ZJTiBTTEFWS08gRFIKK0pPVklOIFNWRVRMQU5BCitKT1ZJTiBWRVNOQQorSk9WSU4gWkxBVE9KRQorSk9WSU4gWlVTS0EKK0pPVklOT1YgQk9HREFOCitKT1ZLT1ZJxIYgTUlPRFJBRworSk9WS09WScSGIFJBVE9NSVIKK0pPVk9WScSGIMW9RUxKS08KK0pPVk9WScSGIEFOS0EKK0pPVk9WScSGIEJPxb1JREFSCitKT1ZPVknEhiBCUkFOSVNMQVYKK0pPVk9WScSGIEpPVkFOCitKT1ZPVknEhiBKT1ZBTgorSk9WT1ZJxIYgTEpJTEpBTkEKK0pPVk9WScSGIE1JTE9SQUQKK0pPVk9WScSGIE1JTE9WQU4KK0pPVk9WScSGIE5JS09MQQorSk9WT1ZJxIYgTklLT0xBCitKT1ZPVknEhiBSQURFCitKT1ZPVknEhiBSQURPTUlSCitKT1ZPVknEhiBSQUpLTworSk9WT1ZJxIYgU1RBTkEKK0pPVk9WScSGIFNUT0pBTgorSk9aQU5PViBEQU5JQ0EKK0pPWkFOT1YgTUlMQU4KK0pPWkFOT1YgU0xPQk9EQU4KK0pPWkFOT1YgWk9SQU4KK0pPWkVGxIxBSyBJVkFOCitKT1pJxIYgSk9aQQorSk9aScSGIEtBVEFSSU5BCitKT1pJxIYgTUlPRFJBRworSk9aScSGIE1JUktPCitKT1pJxIYgUEVKTworSlXFoEnEhiBOQVRBTElKQQorSlXFoEtPVknEhiBCUkFOSVNMQVYKK0pVQU5JTiDFvUlWT0pJTiBESVBMIElORworSlVBTklOIEpPVkFOCitKVUdJTiBNSUxFTkEKK0pVR09WScSGIMSQVVJBxJAKK0pVR09WScSGIExFUE9TQVZBCitKVUdPVknEhiBNSUxFCitKVUdPVknEhiBNSUxPxaAKK0pVR09WScSGIFZFU0VMSU4KK0pVR09WScSGIFpEUkFWS08KK0pVSEFTIMSQRVLEkAorSlVIQVMgQU5EUkHFoAorSlVIQVMgQU5EUkHFoAorSlVIQVMgQU5UQUwKK0pVSEFTIERFWkUKK0pVSEFTIEVSTkUKK0pVSEFTIEVWQQorSlVIQVMgRkVSRU5DCitKVUhBUyBGRVJFTkMKK0pVSEFTIEdFWkEgRFIgUFJPRkVTT1IKK0pVSEFTIEdJWkVMQQorSlVIQVMgSVZBTktBCitKVUhBUyBKQU5PxaAKK0pVSEFTIEpBTk/FoAorSlVIQVMgSkVMSVNBVkVUQQorSlVIQVMgS0FUQVJJTkEKK0pVSEFTLUtPU1RJxIYgxJBFUsSQSQorSlVIQVMgTEFESVNMQVYKK0pVSEFTIE1BUklKQQorSlVIQVMgTUlIQUxKCitKVUhBUyBNSUhBTEoKK0pVSEFTIE1JSk8KK0pVSEFTIE1JUk9OCitKVUhBUyBTVEVWQU4KK0pVSEFTIFNURVZBTgorSlVIQVMgU1RFVkFOCitKVUhBUyBTVEVWQU4KK0pVSEFTIFRJQk9SIERJUEwgSU5HCitKVUhBUyBUSUJPUgorSlVIQVMgVkFMRVJJSkEKK0pVSEFTIFZJS1RPUklKQQorSlVIQVMgVkxBRElTTEFWCitKVUtJxIYgQkFORQorSlVLScSGIEZSQU5KQQorSlVLScSGIEZSQU5KTworSlVLScSGIElWSUNBCitKVUtJxIYgSk9TSVAKK0pVS0nEhiBMVUtBCitKVUtJxIYgTUFSS08KK0pVS0nEhiBOQURBCitKVUtJxIYgVkxBRElTTEFWCitKVUtPVknEhiBSQVNJTQorSlVMSU5BQyBEUkFHSU5KQQorSlVORyDEkEVSxJAKK0pVTkcgRlJBTkNJxaBLQQorSlVORyBJQk9MSktBCitKVU5HIElMRElLTworSlVORyBJVklDQQorSlVORyBKT1NJUAorSlVORyBKT1ZBTgorSlVORyBLQVJPTEogTVIKK0pVTkcgTUFSSUpBCitKVU5HIFJPQkVSVAorSlVORyBST0JFUlQKK0pVTkcgVkVSSUNBCitKVU5VWk9WScSGIElTTUVUCitKVVBFSyBaREVOS0EKK0pVUsSMRVZJxIYgTUFSS08KK0pVUsSMScSGIMW9RUxKS08KK0pVUsSMScSGIERFU0FOS0EKK0pVUsWgScSGIENWRVRBCitKVVJBR0EgTUFSS08KK0pVUkFHQSBNSUxPUkFECitKVVJBS0nEhiBHT1JBTgorSlVSQUtJxIYgSUxJSkEKK0pVUkFLScSGIElWQU4KK0pVUkFLScSGIEpFTEEKK0pVUkFLScSGIEpPWk8KK0pVUkFLScSGIFBFSk8KK0pVUkFLScSGIFNUSVBPCitKVVJBTkpJIE1BUklKQQorSlVSQVMgQU5JQ0EKK0pVUkFTIEFOVEUKK0pVUkFTT1ZJxIYgSk9WQU4KK0pVUkNBIMW9RUxKS08KK0pVUkNBIMSQT1LEkEUKK0pVUkNBIElWQU4KK0pVUkNBIExBUklTQQorSlVSRcWgRVYgUEVUQVIKK0pVUkXFoEnEhiBKT1pPCitKVVJFxaBJxIYgVkVSQQorSlVSScWgRVZJxIYgQU5LQQorSlVSScWgRVZJxIYgTUFSQQorSlVSScWgRVZJxIYgTUlSS08KK0pVUknFoEnEhiDEkE9SxJBFCitKVVJJxaBJxIYgxJBVUkEKK0pVUknFoEnEhiBBTE9KWgorSlVSScWgScSGIEFORFJJSkEKK0pVUknFoEnEhiBCT0dPTEpVQgorSlVSScWgScSGIERSQUdBTgorSlVSScWgScSGIEZSQU5KQQorSlVSScWgScSGIEdPU1BBVkEKK0pVUknFoEnEhiBJR05KQVQKK0pVUknFoEnEhiBJTElOS0EKK0pVUknFoEnEhiBJVkFOCitKVVJJxaBJxIYgSkVMRU5BCitKVVJJxaBJxIYgSk9WQU4KK0pVUknFoEnEhiBLQVRBUklOQQorSlVSScWgScSGIExKVUJJQ0EKK0pVUknFoEnEhiBNQVJJSkEKK0pVUknFoEnEhiBNSUxFTktPCitKVVJJxaBJxIYgTUlMT1JBRAorSlVSScWgScSGIE1JTE9SQUQKK0pVUknFoEnEhiBORURFTEpLQQorSlVSScWgScSGIE5FTkFECitKVVJJxaBJxIYgTklLT0xBCitKVVJJxaBJxIYgT0xHQQorSlVSScWgScSGIE9TVE9KQQorSlVSScWgScSGIFBFVEFSCitKVVJJxaBJxIYgUEVUQVIKK0pVUknFoEnEhiBSQURFTktPCitKVVJJxaBJxIYgU1RFVkFOCitKVVJJxaBJxIYgU1RFVkFOCitKVVJJxaBJxIYgVkxBVEtPCitKVVJJxaBJxIYgWk9SS0EKK0pVUknFoElOIMW9QVJLTworSlVSScWgSU4gxb1JVkEKK0pVUknFoElOIEJSQU5JU0xBVgorSlVSScWgSU4gRFJBR09MSlVCCitKVVJJxaBJTiBMSklMSkFOQQorSlVSScWgSU4gTUlMSU5BCitKVVJJxaBJTiBNSUxPxaAKK0pVUknFoElOIE5BVEFMSUpBCitKVVJJxaBJTiBSQVNUS08gRElQTCBJTkcKK0pVUknFoElOIFNMQVZLTworSlVSScWgSU4gVkxBRElNSVIKK0pVUknEhiDFvUlWQURJTktBCitKVVJJxIYgQU5BCitKVVJJxIYgQVZHVVNUCitKVVJJxIYgQk9TSUxKS08KK0pVUknEhiBDVklKTworSlVSScSGIEZJTElQCitKVVJJxIYgSUxJSkEKK0pVUknEhiBJVkFOCitKVVJJxIYgSkVMS0EKK0pVUknEhiBNQVJJSkEKK0pVUknEhiBNQVJJSkEKK0pVUknEhiBNQVJLTworSlVSScSGIE1BUktPCitKVVJJxIYgTUlMT8WgCitKVVJJxIYgUEFVTElOQQorSlVSScSGIFBFVEFSCitKVVJJxIYgU09GSUpBCitKVVJJQkHFoEnEhiBNQVJJSkEKK0pVUklCQcWgScSGIFRPTUlTTEFWCitKVVJJQyBJVkFOCitKVVJJQyBKT1NJUAorSlVSSUMgU1RKRVBBTgorSlVSSUNBIEFOQQorSlVSSUNBIERBTElCT1IKK0pVUklDQSBKQU4KK0pVUklLIMWgQU5ET1IKK0pVUklLIERVxaBBTgorSlVSSUsgSk9TSVAKK0pVUklLIEpPU0lQCitKVVJJSyBKT1ZBTgorSlVSSUsgTUFSSUpBCitKVVJJSyBNSUhBTAorSlVSSUsgTUlMS0EKK0pVUklLIFBBVkxFCitKVVJJSyBTVEVWQU4KK0pVUklTVE9WU0tJIEdFT1JHIERJUEwgSU5HCitKVVJKQU5PVknEhiBEVcWgQU5LQQorSlVSSkVWScSGIEpBU01JTkEKK0pVUktJxIYgQU5UVU4KK0pVUktJxIYgQVVHVVNUSU4KK0pVUktJxIYgTUFSS08KK0pVUktPVknEhiBBTkEKK0pVUktPVknEhiBCSUxKQU5BCitKVVJLT1ZJxIYgQk/FvUlDQQorSlVSS09WScSGIERSQUdBTgorSlVSS09WScSGIERVxaBBTgorSlVSS09WScSGIEtSSVNUSU5BCitKVVJLT1ZJxIYgUEVUQVIKK0pVUktPVknEhiBQRVRBUgorSlVSS09WScSGIFpMQVRLTworSlVSS09WScSGIFpWT05LTworSlVSS09WU0tJIFNURVZBTgorSlVSTElOQSBBTlRVTgorSlVSTElOQSBNQVJLTyBEUgorSlVSTElOQSBQQVZMRQorSlVSVUtPVlNLSSBHT1NQQVZBCitKVVJVS09WU0tJIExFVktPCitKVVJVS09WU0tJIE1JTE9WQU5LQQorSlVTVElOIENJUklMCitKVVNUSU4gREFOSUNBCitKVVNVRkkgQkVSWkFUCitKVVNVRk9WScSGIEFNSVIKK0pVVkFOIEZBTklLQQorS8SGSUtVIMSQQVZJRAorS8SGSUtVIFJBSElNCitLQcSMQUsgSUxPTkEKK0tBxIxBUE9SIFNFRkVESU4KK0tBxIxBUiDEjEVET01JUgorS0HEjEFSIMSQVVJPCitLQcSMQVIgQlJBTklTTEFWCitLQcSMQVIgRFXFoEFOS0EKK0tBxIxBUiBTTEFWS08KK0tBxIxBUiBTTE9CT0RBTgorS0HEjEFSIFNMT0JPREFOCitLQcSMQVIgVEFESUpBCitLQcSMQVJFVknEhiBNSUxBTgorS0HEjEFWRU5EQSBCUkFOSVNMQVZBCitLQcSMQVZFTkRBIExBWk8KK0tBxIxBVkVOREEgTUlMQU4KK0tBxIxBVkVOREEgTUlMT1JBRAorS0HEjEFWRU5EQSBNSUxPUkFECitLQcSMQVZFTkRBIFNMT0JPREFOCitLQcSMQVZFTkRBIFRBVEpBTkEKK0tBxIxBVkVOREEgVEFUSkFOQQorS0HEjEFWRU5EQSBWRVJBCitLQcSMTUFSxIxJSyDFoFRFRkFOCitLQcSMTUFSxIxJSyBKRUxFTkEKK0tBxaBBIFRJQk9SCitLQcWgQUkgSkVMSVNBVkVUQQorS0HFoEFOSU4gTUlMRVRBCitLQcWgQU5JTiBNSVJBCitLQcWgQU5JTiBNSVJKQU5BCitLQcWgQU5JTiBNSVJPU0xBVgorS0HFoEnEhiBBTEVLU0FOREFSCitLQcWgScSGIEpPVkFOIERSCitLQcWgScSGIE1BUklKQQorS0HFoEnEhiBNSUxJVk9KCitLQcWgScSGIE1MQURFTgorS0HFoEnEhiBSRVZFS0EKK0tBxaBJxIYgVkVSQQorS0HFoEnEhiBWSUtUT1JJSkEKK0tBxaBJxIYgVk9KSVNMQVYKK0tBxaBJSyBJVkFOCitLQcWgSUtPVknEhiDEkE9SxJBPCitLQcWgSUtPVknEhiBCT8WgS08KK0tBxaBJS09WScSGIEdPSktPCitLQcWgSUtPVknEhiBQUkVEUkFHCitLQcWgSUtPVknEhiBTTEFWS0EKK0tBxaBJS09WScSGIFZMQURPCitLQcWgTElLIElNUkUKK0tBxaBMSUsgTUFUSUpBCitLQcWgT1ZTS0kgSkFOS08KK0tBxaBPVlNLSSBOSUtPTEEKK0tBxIZBTlNLSSDFvUFSS08KK0tBxIZBTlNLSSDFvUFSS08KK0tBxIZBTlNLSSDFvUlWS08KK0tBxIZBTlNLSSDEkE9SxJBFCitLQcSGQU5TS0kgQk9KQU5BCitLQcSGQU5TS0kgQlJBTklTTEFWCitLQcSGQU5TS0kgQlJBTktPCitLQcSGQU5TS0kgRFXFoEFOS0EKK0tBxIZBTlNLSSBEVcWgQU4KK0tBxIZBTlNLSSBKRUxJU0FWRVRBCitLQcSGQU5TS0kgS09OU1RBTlRJTgorS0HEhkFOU0tJIExKVUJJQ0EKK0tBxIZBTlNLSSBNSUxJVk9KCitLQcSGQU5TS0kgTUlMSVZPSgorS0HEhkFOU0tJIE1JTEtBCitLQcSGQU5TS0kgTUlMT1JBRAorS0HEhkFOU0tJIE1JTFVUSU4KK0tBxIZBTlNLSSBNSVJPU0xBVkEKK0tBxIZBTlNLSSBNTEFERU4KK0tBxIZBTlNLSSBQQVZMRSBEUiBMRUtBUgorS0HEhkFOU0tJIFBMQVRPTiBEUgorS0HEhkFOU0tJIFJBRE9WQU4KK0tBxIZBTlNLSSBTSU1BCitLQcSGQU5TS0kgU0xBVktPCitLQcSGQU5TS0kgU01JTEpBCitLQcSGQU5TS0kgU09GSUpBCitLQcSGQU5TS0kgU1ZFVElTTEFWCitLQcSGQU5TS0kgVE9ET1IKK0tBxIZBTlNLSSBWRUxJTktBCitLQcSGQU5TS0kgVkVSQQorS0HEhkFOU0tJIFZMQURJTUlSIFZFVEVSSU5BUgorS0HEhkFOU0tJIFZMQURJU0xBVkEKK0tBxIZJQUsgTUlIQUpMTworS0HEhlVSSU4gxb1JVkFOCitLQcSGVVJJTiBLUklTVElOQQorS0HEhlVSSU4gTUlMQU5BCitLQcSGVVJJTiBNSUxBTgorS0HEhlVSSU4gUkFET1NMQVYKK0tBxb1JxIYgVkxBRElNSVIKK0tBQkEgU1VMRUpNQU4KK0tBQknEhiBBTkEKK0tBQknEhiBCT0dEQU4KK0tBQknEhiBEQU5JTE8KK0tBQknEhiBEUkFHSUNBCitLQUJJxIYgRFJBR1VUSU4KK0tBQknEhiBTTE9CT0RBTgorS0FCScSGIFRJTU/FoEVOS08KK0tBQklMSk8gRFJBR0lDQQorS0FCSUxKTyBKT1NJUAorS0FCSUxKTyBTSUxWSU8KK0tBQk9LIEVSSUtBCitLQUJPSyBKT8W9RUYKK0tBQ0FST8WgIEtPU1RBUworS0FEQcWgIExBSk/FoCBESVBMIElORworS0FEQVIgSlVMSUpBTkEKK0tBREnEhiBJTElKQQorS0FEScSGIE1BUklKQU4KK0tBREnEhiBOSUtPTEEKK0tBREnEhiBSQURNSUxBCitLQURJxIYgU0FWQQorS0FESUpBIFZPSklTTEFWCitLQURJVk5JSyBNSU9EUkFHCitLQURMRcSMSUsgS0FUSUNBCitLQURSSUpBIEZFVlpJSkEKK0tBRFJJSkEgSEFCSUxKCitLQURSSUpBIEhBU0FGCitLQURSSUpBIEhVUk1FVAorS0FEVkFOSiBKQU5PxaAKK0tBRFZBTkogSk9WQU4KK0tBRFZBTkogTEFESVNMQVYKK0tBRFZBTkogTEFKT8WgCitLQUhSSU1BTiBQRVRBUgorS0FIUklNQU4gU05Fxb1BTkEKK0tBSFJJTUFOIFNORcW9QU5BCitLQUhSSU1BTiBTTkXFvUFOQQorS0FJxIYgSVZBTgorS0FJxIYgS0FUQUxJTiBEUgorS0FJxIYgUEVUQVIKK0tBSU5PVknEhiBHT1JEQU5BCitLQUlUT1ZJxIYgSkVMQQorS0FKxIxJxIYgTEpJTEpBTkEKK0tBSsSMScSGIE1JTE9WQU4KK0tBSsSMScSGIFZFTElNSVIKK0tBSkVWScSGIMW9QVJLTworS0FKRkXFoCBaVk9OS08KK0tBSkdBTknEhiBJTElKQQorS0FKR0FOScSGIExKVUJBTgorS0FKR0FOScSGIE1JTE9SQUQKK0tBSkdBTknEhiBWRVJPTklLQQorS0FKScWgIMW9RUxKS08KK0tBSknFoCBNSUxFCitLQUpJxIYgxb1FTEpLTworS0FKScSGIE5BREEKK0tBSktBUkEgQk9HREFOCitLQUpLQVJBIE1JTEVOS08KK0tBSktBUkEgUkFET1NMQVYKK0tBSk9OIEFMRUtTQU5EQVIKK0tBSk9OIEFOQQorS0FKT04gTEpJTEpBTkEKK0tBSk9OIE1JUk9TTEFWCitLQUpPTiBNSVJPU0xBVgorS0FKVEVTIMSQVVJPCitLQUpURVogRFJBR0FOCitLQUpURVogTUlSS08KK0tBSlRFWiBORURFTEpLTworS0FKVEVaIFJPWkFMSUpBCitLQUpURVogVFJJVlVOCitLQUpURVogVkFMRU5USU5BCitLQUpaRVIgS0FSTE8KK0tBS0HFoCBEQU1JUgorS0FLQcWgIElMSUpBCitLQUtBxaAgSk/FvUVGCitLQUtBxaAgSk9TSVAKK0tBS0HFoCBNQVJJSkEKK0tBS09OSkkgQU5BCitLQUtVxIxLQSBJxaBUVkFOCitLQUtVxIxLQSBKRUxJU0FWRVRBCitLQUtVxIxLQSBTVEVWQU4KK0tBTMSMT1YgTUlIQUxKCitLQUxBIEdFWkEKK0tBTEHEjEFKSSBTVkVUSVNMQVYKK0tBTEHEjEVWScSGIFZMQURJTUlSCitLQUxBQkEgQk9KQU4KK0tBTEFCQSBCUkFOS08KK0tBTEFCQSBEUkFHSUNBCitLQUxBQkEgTEpVUEtPCitLQUxBQkEgTFVLQQorS0FMQUJBIE1BUktPCitLQUxBQkEgTUxBREVOCitLQUxBQkEgTklLT0xBCitLQUxBQkEgU1RFVkFOCitLQUxBQknEhiBEQU5FCitLQUxBQknEhiBTVEVWTworS0FMQUJSScSGIEJSQU5LTworS0FMQUJSScSGIE1JSE9WSUwKK0tBTEFGQVRJxIYgTUlMSVZPSgorS0FMQUZBVEnEhiBORUJPSsWgQQorS0FMQUkgS0FST0xKCitLQUxBSkTFvUnEhiBEQVJLTworS0FMQUpExb1JxIYgTFVLQQorS0FMQUpExb1JxIYgTUlIQUlMTworS0FMQUpExb1JxIYgTUlMQU4KK0tBTEFNQU5EQSBEUkFHQU4KK0tBTEFNQU5EQSBTTE9CT0RBTgorS0FMQU5KIMSQVUtBCitLQUxBTkogRFJBR0nFoEEKK0tBTEFOSiBGRU1LQQorS0FMQU5KIFNURVZBTgorS0FMQU5KQSBEVcWgQU5LQQorS0FMQU5KQSBNSVJPU0xBVgorS0FMQU5KRVYgWk9SQQorS0FMQU5KT8WgIMSQVVJBCitLQUxBTkpPxaAgQU5BCitLQUxBTkpPxaAgQk9SSVNMQVYKK0tBTEFOSk/FoCBKQU5PxaAKK0tBTEFOSk/FoCBNSVJKQU5BCitLQUxBTkpPxaAgUEVUQVIKK0tBTEFOSk/FoCBQRVRBUgorS0FMQU5KT8WgIFJVxb1BCitLQUxBTkpPxaAgUlXFvUEKK0tBTEFOSlXFoCDEkFVSQQorS0FMQU5KVcWgIEZSQU5KQQorS0FMQVBBxaAgRVZJQ0EKK0tBTEFQQcWgRVYgRElOQQorS0FMQVBBxaBFViBTSU5JxaBBCitLQUxBUEFUSSDFoEFSQQorS0FMQVBBVEkgRkVSRU5DCitLQUxBUEFUSSBJVkFOCitLQUxBUEFUSSBSVURPTEYKK0tBTEFQScWgIFJVREkKK0tBTEFQScWgIFpPTFRBTgorS0FMQVVaIE1BUklOS08KK0tBTEFVWk9WIE1BxaBBCitLQUxDIE1JTEVOS0EKK0tBTEMgTUlMS08KK0tBTEMgU0xBVk9KS0EKK0tBTEVBIEpFTEVOQQorS0FMRUpTS0kgWkxBVE9NSVIKK0tBTEVNIEJSQU5LTworS0FMRU0gSVZBTktBCitLQUxFTSBNSVJKQU5BCitLQUxFTSBORURFTEpLTworS0FMRU0gU1JFVEVOCitLQUxFTSBTUkVURU4KK0tBTEVNQkVSIEJPxaBLTworS0FMRU1CRVIgTUnFoEEKK0tBTEVNQkVSIE1JTEVOQQorS0FMRU1CRVIgTUlMSVZPSgorS0FMRU1CRVIgTUlSSkFOQQorS0FMRU1CRVIgU09GSUpBCitLQUxFTUJFUiBTVE9KQURJTgorS0FMRU1JIMWgRVJJRgorS0FMRU5ERVIgS1JJU1RJTkEKK0tBTEVOScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK0tBTEVOScSGIEFMRUtTQU5EQVIKK0tBTEVOScSGIFZPSklTTEFWCitLQUxFTkpVSyBNSVRBUgorS0FMRU5UScSGIEJPU0EKK0tBTEVOVEnEhiBSQURPVkFOCitLQUxFWknEhiBKRUxFTkEKK0tBTEVaScSGIEpPVkFOS0EKK0tBTEVaScSGIE9MR0EKK0tBTEVaScSGIFRPTUlTTEFWCitLQUxJxIxBTklOIE1PTcSMSUxPCitLQUxJxIYgRFJBR0FOQQorS0FMScSGIEpPU0lQCitLQUxJxIYgSk9WQU5LQQorS0FMScSGIE1JTEVOQQorS0FMScSGIE1VU1RBRkEKK0tBTEnEhiBPTEdBCitLQUxJxIYgUkFET1ZBTgorS0FMScSGIFNPRklKQQorS0FMSUsgR1JPWkRBCitLQUxJTiBFRFVBUkQKK0tBTElOIE1BUklKQU4KK0tBTElOScSGIERBTklDQQorS0FMSU5JxIYgSk9WTworS0FMSU5JxIYgS1JTVE8KK0tBTElOScSGIE1JTEFESU4KK0tBTElOScSGIE1JTElDQQorS0FMSU5JxIYgTkFEQQorS0FMSU5TS0kgREFSS08KK0tBTElWT0RBIFJVRE9MRgorS0FMSkVWScSGIEFMRUtTQU5EQVIKK0tBTEpFVknEhiBLUlNUTworS0FMSkVWScSGIFNURVZBTgorS0FMS0FOIE1JTEFOCitLQUxNQU4gS0xBUkEKK0tBTE1BTiBNSUhBSkxPCitLQUxNQU4gTUlLTE/FoAorS0FMTUFOIFJBRElDQQorS0FMTUFSIMSQT1LEkEUKK0tBTE1BUiDEkFVSQQorS0FMTUFSIEFOQQorS0FMTUFSIEZFUkVOQworS0FMTUFSIEZSQU5KQQorS0FMTUFSIEdSR1VSCitLQUxNQVIgScWgVFZBTgorS0FMTUFSIExBSk/FoAorS0FMTUFSIE1JUktPCitLQUxNQVItVkVSRcWgIEdJWkVMQQorS0FMTUFSIFZMQURJTUlSCitLQUxNQVJFVknEhiBBTEVLU0FOREFSCitLQUxOT0sgU0xPQk9EQU4KK0tBTE/EjEFJIMWgQU5ET1IKK0tBTE/EjEFJIEnFoFRWQU4KK0tBTE/EjEFJIExFTktFCitLQUxPxIxBSSBQRVRBUgorS0FMT8SMQUpJIMSQT1LEkEUKK0tBTE/EjEFOSiBGRVJFTkMKK0tBTE9DSSBJVkFOCitLQUxPQ0kgTEFESVNMQVYKK0tBTE9DSSBUSUJPUgorS0FMT0NJIFZFU0VMSU5LQQorS0FMT1BFUiBKT1ZBTktBCitLQUxPUEVSIFBFUklDQQorS0FMT1pJIEFSQU5LQQorS0FMVE5FS0VSIEVNSUxJSkEKK0tBTFRORUtFUiBFTUlMSUpBCitLQUxVxaBFViBHTEnFoEEKK0tBTFXFoEtBIFNMQVZLTworS0FMVcW9ScSGIEtBVElDQQorS0FMVcW9ScSGIE5BREEKK0tBTFXEkEVST1ZJxIYgTUFSS08KK0tBTFXEkEVST1ZJxIYgTUlMSVZPSkUKK0tBTFXEkEVST1ZJxIYgTUlMT8WgCitLQUxVxJBFUk9WScSGIE1JUklKQU5BCitLQUxVxJBFUk9WScSGIE1MQURFTgorS0FMVcSQRVJPVknEhiBNT03EjElMTworS0FMVcSQRVJPVknEhiBPTElWRVJBCitLQUxVxJBFUk9WScSGIFVST8WgCitLQUxVxJBFUlNLSSDEkE9LQQorS0FMVcSQRVJTS0kgxJBPS0EKK0tBTFXEkEVSU0tJIEFHTkVaQQorS0FMVcSQRVJTS0kgQk9SSVMKK0tBTFXEkEVSU0tJIEdBVlJBCitLQUxVxJBFUlNLSSBNSUxPUkFECitLQUxVxJBFUlNLSSBNSVJPU0xBVgorS0FMVcSQRVJTS0kgU0lOScWgQQorS0FMVcSQRVJTS0kgU1RPSkFOIERSCitLQUxVR0VSIE5JS09MQQorS0FMVUdFUiBaT1JBTgorS0FNxIxFU0tBIERSQUdJQ0EKK0tBTcSMRVNLSSBESU3EjEUKK0tBTcSMRVNLSSBTVEVWQU4KK0tBTcSMRVZJxIYgQU5BCitLQU3EjEVWU0tJIFNBVkEKK0tBTUFSSVQgWk9SQU4KK0tBTUFTSSBGRVJFTkMKK0tBTUFTSSBGRVJFTkMKK0tBTUFTSSBJTVJFCitLQU1BU0kgSkFOT8WgCitLQU1CRVJJIERVxaBBTgorS0FNQkVSSSBNVVNBCitLQU1CRVJPVknEhiBCQVRPCitLQU1CRVJPVknEhiBTSU5JxaBBCitLQU1FTkFST1ZJxIYgR0xJR09SSUpFCitLQU1FTkFST1ZJxIYgTUlMQU4KK0tBTUVOQVJPVknEhiBOSUtPTEEKK0tBTUVOSklDS0kgSlVMSUpBTgorS0FNRU5LTyBNSUxBTgorS0FNRU5LTyBSQURFCitLQU1FTktPIFJBREUKK0tBTUVOS08gVkVSQQorS0FNRU5LT1ZJxIYgQUxFS1NBTkRSQQorS0FNRU5LT1ZJxIYgRE9CUklMQQorS0FNRU5LT1ZJxIYgSk9TSVAKK0tBTUVOS09WScSGIEpPVkFOS0EKK0tBTUVOS09WScSGIE9MR0EKK0tBTUVOT1YgRU1JTCBEUgorS0FNUEVMIElWQU4KK0tBTVBJxIYgUEFWTEUKK0tBTVJBIElWQU4KK0tBTsSMQVIgRVLFvUVCRVQKK0tBTkHEjEtJIMW9QVJLTworS0FOQcSMS0kgTEpJTEpBTkEKK0tBTkHEjEtJIE1BR0RBTEVOQQorS0FOQcSMS0kgU1RFVkFOCitLQU5BxIxLSSBaTEFUQQorS0FOQVpJUiDFvUlWS0EKK0tBTkFaSVIgQUxFS1NBTkRBUgorS0FOQVpJUi1CRUxJxIYgTUlMSUNBCitLQU5BWklSIEJPUklTTEFWCitLQU5BWklSIEJPUklTTEFWCitLQU5BWklSIEJSQU5JU0xBVgorS0FOQVpJUiBDVkVUQQorS0FOQVpJUiBEUkFHSUNBCitLQU5BWklSIERSQUdJQ0EKK0tBTkFaSVIgRFXFoEFOCitLQU5BWklSIElWQU5LQQorS0FOQVpJUiBKT1ZBTktBCitLQU5BWklSIEpPVkFOCitLQU5BWklSIEtPU1RBCitLQU5BWklSIEtPU1RBCitLQU5BWklSIEtPU1RBCitLQU5BWklSIE1BUklKQQorS0FOQVpJUiBNSUxBTgorS0FOQVpJUiBNSUxJQ0EKK0tBTkFaSVIgTUlMT1ZBTgorS0FOQVpJUiBSQURJVk9KCitLQU5BWklSIFNMQVZLTworS0FOQVpJUiBWQVNBCitLQU5BWklSIFZFUklDQSBEUgorS0FOQVpJUiBWVUtJQ0EKK0tBTkFaSVIgWkFIQVJJSkUKK0tBTkJBTiBNSUxJQ0EKK0tBTkRJxIYgTkFEQQorS0FOREnEhiBSQURNSUxBCitLQU5EScSGIFNNSUxKQU5BCitLQU5EScSGIFZJRE9KRQorS0FORFJBxIwgxJBPUsSQRQorS0FORFJBxIwgTEVPTkEKK0tBTkdSR0EgQU5LQQorS0FOR1JHQSBLT1NUQQorS0FOR1JHQSBSVcW9QQorS0FOScW9QUkgRVZBCitLQU5KQSBKQU4KK0tBTkpFUknEhiBNQVRFCitLQU5KTyBJxaBUVkFOCitLQU5KTyBTVEpFUEFOCitLQU5KTyBaT0xUQU4KK0tBTkpVSCBKQUtJTQorS0FOSlVIIEpPQUtJTQorS0FOSlVIIE1BUklDQQorS0FOSlVIIE1JUkEKK0tBTkpVSCBWTEFESU1JUgorS0FOSlVIIFpWT05LTworS0FOSlVLQSBJVkFOCitLQU5KVUtBIFZMQURJTUlSCitLQU5LQVJBxaAgUkFET1NBVgorS0FOS0FSQcWgIFZFU0VMSU4KK0tBTkxJxIYgTUlMQU4KK0tBTkxJxIYgWkFSSUpBCitLQU5PVknEhiBQQVZMRSBESVBMIElORworS0FOVEFSIMSQVVJPCitLQU5UQVIgRE1JVEFSCitLQU5UQVIgS0FKQQorS0FOVEFSIE1JTEFOCitLQU5UQVIgTUlMT8WgCitLQU5UQVIgTUlST1NMQVYKK0tBTlRBUiBOSUtPTEEKK0tBTlRBUiBPU1RPSkEKK0tBTlRBUiBWTEFETworS0FOVEFSRMW9ScSGIMSQT1LEkEUKK0tBTlRBUkTFvUnEhiBHT1JEQU5BCitLQU5UQVJExb1JxIYgSkVMRU5BCitLQU5UQVJExb1JxIYgS0FUSUNBCitLQU5UQVJExb1JxIYgS09TVEEKK0tBTlRBUkTFvUnEhiBMQVpBUgorS0FOVEFSRMW9ScSGIExBWkEKK0tBTlRBUkTFvUnEhiBNSUxJQ0EKK0tBTlRBUkTFvUnEhiBNSUxPVkFOCitLQU5UQVJExb1JxIYgTUlMT1ZBTgorS0FOVEFSRMW9ScSGIE1JUk9TTEFWCitLQU5UQVJExb1JxIYgTUxBREVOCitLQU5UQVJExb1JxIYgTkFEQQorS0FOVEFSRMW9ScSGIE9MR0EKK0tBTlRBUkTFvUnEhiBQRVRBUgorS0FOVEFSRMW9ScSGIFNURVZBTgorS0FOVEFSRMW9ScSGIFZBU0EKK0tBTlRJTktPU0tJIEhBTlUKK0tBTlRPUiBMQUpPxaAKK0tBTlRPUiBPU0tBUgorS0FOVVJJxIYgQUxFS1NBTkRBUgorS0FOVVJJxIYgTUlMSUNBCitLQU5VUknEhiBaT1JLQQorS0FOVVJTS0kgSk9WQU4KK0tBTlVSU0tJIFZJRE9TQVZBCitLQVBBTUFExb1JSkEgQUxFS1NBTkRSQQorS0FQQU1BRMW9SUpBIEJPUklTTEFWIERSCitLQVBBTUFExb1JSkEgRFXFoEFOS0EKK0tBUEFNQUTFvUlKQSBSQURNSUxBCitLQVBBTUFExb1JTiBKT1ZBTgorS0FQRUxBTiBOSUtPTEEKK0tBUEVTIEFMRUtTQU5EQVIKK0tBUEVTIFpEUkFWS0EKK0tBUEVUQU5JxIYgVE9NSVNMQVYKK0tBUEVUQU5PViBNSVJKQU5BCitLQVBFVEFOT1YgU1ZFVElTTEFWCitLQVBFVEFOT1YgVlVLSUNBCitLQVBFVEFOT1ZJxIYgSk9WQU4KK0tBUEVUQU5PVknEhiBNSURIQVQKK0tBUEVUQU5PVknEhiBNT03EjElMTworS0FQRVRBTk9WScSGIE9MR0EKK0tBUEVUQU5PVknEhiBSQVRLTworS0FQRVRBTk9WScSGIFZFUklDQQorS0FQScSMScSGIERVxaBBTgorS0FQScSMScSGIFNBVk8KK0tBUEnEjEnEhiBTVEVWQU4KK0tBUElDTCBEUkFHVVRJTgorS0FQSVRBTkogTEFTTE8KK0tBUExBUiDFvUlWQU4KK0tBUExBUiBNQVJJSkEKK0tBUExBUkVWScSGIE1JT0RSQUcKK0tBUExBUlNLSSBLT05TVEFOVElOCitLQVBMQVJTS0kgTUxBREVOCitLQVBMQVJTS0kgU1ZFVExBTkEKK0tBUExJSkVWIFBFVEFSCitLQVBNQUpFUiBBTEVLU0FOREFSCitLQVBPxIwgQU5UQUwKK0tBUE/EjCBKVURJVAorS0FQT1IgQUdORcWgCitLQVBPUiBBTEVLU0FOREFSCitLQVBPUiBERVNBTktBCitLQVBPUiBHT0pLTworS0FQT1IgS0FUQVJJTkEKK0tBUE9SIE5BREEKK0tBUE9SIE5PVklDQQorS0FQT1IgU1RBTkEKK0tBUE9TVEEgVEVSRVpBCitLQVBSScWgIE1JUkpBTkEKK0tBUFXEhiBJTE9OQQorS0FSxIZBxaAgTUlMS0EKK0tBUkHEjCBNSVJLTworS0FSQcSMT05KSSBJxaBUVkFOCitLQVJBxIYgRFJBR0FOCitLQVJBxIYgRFXFoEFOCitLQVJBxIYgRFXFoEFOCitLQVJBxIYgSUxJSkEKK0tBUkHEhiBKRUxJQ0EKK0tBUkHEhiBMSlVCT01JUgorS0FSQcSGIE1BUklKQQorS0FSQcSGIE1JTEVOS08KK0tBUkHEhiBSQURFTktPCitLQVJBxIYgUkFKS08KK0tBUkHEhiBTTE9CT0RBTgorS0FSQcSQRU5PViBJVkFOCitLQVJBxJBFTk9WIElWQU4KK0tBUkHEkEVOT1YgTUlSSkFOQQorS0FSQcSQSU5PVknEhiDFoFBJUk8KK0tBUkHEkElOT1ZJxIYgTkVOQUQKK0tBUkHEkElOT1ZJxIYgUEVUQVIKK0tBUkHEkElOT1ZJxIYgVkVMSU1JUgorS0FSQcSQSU5PVknEhiBaT1JBCitLQVJBQkEgSVJFTkEgRFIgTEVLQVIKK0tBUkFCQSBKT1ZBTgorS0FSQUJBIE9MR0EKK0tBUkFCQcWgIE1JTElWT0oKK0tBUkFCQcWgIFNMT0JPREFOCitLQVJBQkFTSUwgRFJBR0FOCitLQVJBQkFTSUwgVklET01JUgorS0FSQUJFR09WScSGIERBTklMTworS0FSQUTFvUnEhiDFoFVKTworS0FSQUTFvUnEhiDFvUFSS08KK0tBUkFExb1JxIYgxJBPUsSQRQorS0FSQUTFvUnEhiBBUlNFTklKRQorS0FSQUTFvUnEhiBBVlJBTQorS0FSQUTFvUnEhiBCT8W9TworS0FSQUTFvUnEhiBCUkFUSVNMQVYKK0tBUkFExb1JxIYgSk9WQU4KK0tBUkFExb1JxIYgSk9WQU4KK0tBUkFExb1JxIYgS1NFTklKQQorS0FSQUTFvUnEhiBNQVJJSkEKK0tBUkFExb1JxIYgTUlMT1JBRAorS0FSQUTFvUnEhiBNSU9EUkFHCitLQVJBRMW9ScSGIE1JUk9TTEFWCitLQVJBRMW9ScSGIE5FTkFECitLQVJBRMW9ScSGIFJFTEpBCitLQVJBRMW9ScSGIFJVxb1BCitLQVJBRMW9ScSGIFNMQVZJQ0EKK0tBUkFExb1JxIYgVFZSVEtPCitLQVJBRMW9ScSGIFZFUkEKK0tBUkFExb1JxIYgVlVLCitLQVJBRMW9ScSGIFpPUkFOCitLQVJBRMW9ScSGIFpPUkFOCitLQVJBREFSRVZJxIYgTUlMQU4KK0tBUkFEQVJFVknEhiBNSUxPxaAKK0tBUkFERUdMScSGIEtPU0EKK0tBUkFHQSBOSUtPTEEKK0tBUkFHScSGLUxJUElOU0tJIElMT05BCitLQVJBSUNBIFpPUkFOCitLQVJBSktPViBBTE9KWklKRQorS0FSQUpLT1YgVkxBRElNSVIKK0tBUkFKS09WIFZMQURJTUlSCitLQVJBSkxPVknEhiDEkFVSTworS0FSQUpPVknEhiBNSUxVVElOCitLQVJBS0HFoCBNSVJKQU5BCitLQVJBS0HFoEVWScSGIERFU0FOS0EKK0tBUkFLQcWgRVZJxIYgRFJBR0lDQQorS0FSQUtBxaBFVknEhiBFVklDQQorS0FSQUtBxaBFVknEhiBTVEVWQU4KK0tBUkFLQcWgRVZJxIYgWk9SQQorS0FSQU1BUktPVknEhiBNSUxBCitLQVJBTUFUScSGIEFOVEUKK0tBUkFOIMW9RUxKS08KK0tBUkFOIERSQUdBTgorS0FSQU4tS0VSTiBCQVJCQVJBCitLQVJBTiBNSUxBTgorS0FSQU4gTUlMRU5LTworS0FSQU4gTUlMSU5LTworS0FSQU4gU0FWTworS0FSQU4gU1LEkE8KK0tBUkFOSkFDIERSQUdPU0xBVgorS0FSQU5KQUMgTEpVQklDQQorS0FSQU5KQUMgVkVST0xKVUIKK0tBUkFOT1Ygxb1JVkFOCitLQVJBTk9WIEJVRElNS0EKK0tBUkFOT1YgRFJBR09MSlVCCitLQVJBTk9WIEtVWk1BTgorS0FSQU5PViBNSUxBTgorS0FSQU5PViBNSUxPVkFOCitLQVJBTk9WIE1JUk9TTEFWCitLQVJBTk9WIFNPRklKQQorS0FSQU5PVknEhiDEkE9SxJBFCitLQVJBTk9WScSGIEJPxb1PCitLQVJBTk9WScSGIERSQUdBTgorS0FSQU5PVknEhiBEVcWgQU4KK0tBUkFOT1ZJxIYgRFXFoEFOCitLQVJBTk9WScSGIEVNSUxJSkEKK0tBUkFOT1ZJxIYgR1JFVEEKK0tBUkFOT1ZJxIYgSUxJSkEKK0tBUkFOT1ZJxIYgSUxJSkEKK0tBUkFOT1ZJxIYgSUxJSkEKK0tBUkFOT1ZJxIYgSVZJQ0EKK0tBUkFOT1ZJxIYgSk9WQU4KK0tBUkFOT1ZJxIYgS0FUSUNBCitLQVJBTk9WScSGIExKSUxKQU5BCitLQVJBTk9WScSGIExKVUJBCitLQVJBTk9WScSGIE1JTEFOCitLQVJBTk9WScSGIE1JTEFOCitLQVJBTk9WScSGIE1JTE9NSVIKK0tBUkFOT1ZJxIYgTUlMVVRJTgorS0FSQU5PVknEhiBNSVJKQU5BCitLQVJBTk9WScSGIE1JUktPCitLQVJBTk9WScSGIE5JS09MQQorS0FSQU5PVknEhiBQRVJPCitLQVJBTk9WScSGIFJBVEtPCitLQVJBTk9WScSGIFNMQVZLTworS0FSQU5PVknEhiBTTE9CT0RBTgorS0FSQU5PVknEhiBTVEVWQU4KK0tBUkFOT1ZJxIYgU1RFVk8KK0tBUkFOT1ZJxIYgU1ZFVE9aQVIKK0tBUkFOT1ZJxIYgVFJJVk8KK0tBUkFOT1ZJxIYgVkVTTworS0FSQU5PVknEhiBWTEFESU1JUgorS0FSQVBBTsW9QSBNQVJJSkEKK0tBUkFQQU5Exb1BIExKSUxKQU5BCitLQVJBUEFORMW9QSBWSVRPTUlSCitLQVJBUEFORMW9ScSGIMSQVVJBCitLQVJBUEFORMW9ScSGIEdPUkRBTkEKK0tBUkFQQU5Exb1JxIYgTUlSSkFOQQorS0FSQVBBTkTFvUlOIEJBUkJBUkEKK0tBUkFQQU5Exb1JTiBaT1JLQQorS0FSQVMgS0FaSU1JUgorS0FSQVMgTUFHREEKK0tBUkFTIFBFVEFSCitLQVJBUyBQRVRBUgorS0FSQVNBTElIT1ZJxIYgU01BSUwKK0tBUkFTRUsgS0FST0xKCitLQVJBU0lKIEJPUklTCitLQVJBU0lKIEpBU01JTkEKK0tBUkFTSUogVkVST05JS0EKK0tBUkFUSSBFVUdFTgorS0FSQVRVUiBKQURSQU5LQQorS0FSQVZMQSBLQVRBUklOQQorS0FSQVZMQSBaTEFUS08KK0tBUkFWTEEgWk9SSUNBCitLQVJCQU4gUlVET0xGCitLQVJEQcWgIE9CUkFECitLQVJEQcWgIE9MR0EKK0tBUkRBxaBFVknEhiBCUkFOSVNMQVYKK0tBUkRBxaBFVknEhiBGSUpBCitLQVJEQcWgRVZJxIYgSFVTTklKQQorS0FSRE/FoCBBTEVLU0FOREFSCitLQVJET8WgIEVSSUtBCitLQVJET8WgIElMT05BCitLQVJET8WgIExBSk/FoAorS0FSRE/FoCBQQUwKK0tBUkRPxaAgVkVST05JS0EKK0tBUkRPViBKT1NJUAorS0FSRFVNIMSQT1LEkEUKK0tBUkdBxIxJTiBKRUxJU0FWRVRBCitLQVJJxaBJxIYgSVZBTktBCitLQVJJxaBJSyBEQU5FCitLQVJJxaBJSyBKT1ZBTktBCitLQVJJxaBJSyBNSUxVVElOCitLQVJJxIYgQk9TSUxKS0EKK0tBUknEhiBKT1ZBTktBCitLQVJJxIYgUkFET1NMQVYKK0tBUknEhiBTQVZBCitLQVJJxIYgU0FWQQorS0FSScSGIFNWRVRJU0xBVgorS0FSSUtPIEpPU0lQCitLQVJJS08gTUFSSUpBCitLQVJJS08gVEVSRVpBCitLQVJJTkEgRFJBR0lDQQorS0FSSVVTIE1BUklKQQorS0FSSVVTIFZFUkEKK0tBUkxBxaAgTUlMT1JBRAorS0FSTEFWQVJJUyBEUkFHQU4KK0tBUkxBVkFSSVMgSVZBTgorS0FSTEFWQVJJUyBOQURBCitLQVJMQVZBUklTIFJBRElWT0oKK0tBUkxBVkFSSVMtWkVLT1ZJxIYgTUlSRUxBCitLQVJMScSGIEpFRlRBCitLQVJMScSGIExBWkFSCitLQVJMScSGIE1JTElWT0oKK0tBUkxPIFZBSkRBCitLQVJMT1bEjEVDIE1JUktPCitLQVJMT1ZJxIYgxJBFUsSQCitLQVJMT1ZJxIYgTUFSSUNBCitLQVJPTEnEhiBMSlVCSUNBCitLQVJPTEnEhiBNSVJLTworS0FST0xJxIYgTUlST1NMQVYKK0tBUk9MSkkgSkFOT8WgCitLQVJPTEpJIExBU0xPCitLQVJPVknEhiBHTEnFoEEKK0tBUlBBVEkgTEFTTE8KK0tBUlBPTkpBIEpVTElKQU5BCitLQVJQT05KQSBTSU5JxaBBCitLQVJUQUcgTkFORE9SCitLQVJUQUkgTEFKT8WgCitLQVJUQUxPVknEhiBNSUxBTgorS0FSVEpFIEpPVkFOCitLQVJWQUsgRU1BCitLQVJWQUsgR0VaQQorS0FTQSDEkEVSxJAKK0tBU0EgQU5EUklKQQorS0FTQSBBTlRBTAorS0FTQSBGUkFOSkEKK0tBU0EgSURBCitLQVNBIElNUkUKK0tBU0EgSkVMRU5BCitLQVNBIE1JSEFMSgorS0FTQSBSVcW9QQorS0FTQSBSVcW9QQorS0FTQSBaT1JLQQorS0FTQcWgIEFMRUtTQU5EQVIgTVIKK0tBU0HFoCBBTEVLU0FOREFSCitLQVNBxaAgSU1SRQorS0FTQcWgIElNUkUKK0tBU0HFoCBJTVJFCitLQVNBxaAgSkFOT8WgCitLQVNBxaAgSk/FvUVGCitLQVNBxaAgSk9TSVAKK0tBU0HFoCBLQVJPTEoKK0tBU0HFoCBLQVJPTEoKK0tBU0HFoCBLQVJPTEoKK0tBU0HFoCBPTEdBCitLQVNBR0nEhiBCT1JJU0xBVgorS0FTQUxJQ0Egxb1BUktPCitLQVNBTElDQSDFvUlWS08KK0tBU0FMSUNBIE1JTEFOCitLQVNBTElDQSBTVEVWQU5JSkEKK0tBU0FQIEVSVklOCitLQVNBUE9WIFNURVZBTgorS0FTQVBPVknEhiBNQVJBCitLQVNBUE9WScSGIE1FSE8KK0tBU0FQT1ZJxIYgVElIT01JUgorS0FTQVBTS0kgxb1BUktPCitLQVNBUFNLSSBKRUxLQQorS0FTQVIgU0VMSU0KK0tBU0nEhiBEQU5JQ0EKK0tBU05FUiBNSUpPTEpLQQorS0FTUEVSIEFMRUtTQU5EQVIKK0tBU1BFUiBGRVJFTkMKK0tBU1BFUiBGUkFOSkEKK0tBU1BFUiBMQURJU0xBVgorS0FTUEVSIFNURVZBTgorS0FTVEVMSSDEkFVSxJBJTktBCitLQVNURUxJIE1BUktPCitLQVNUT1JJIFJVRE9MRgorS0FTVFJBVEkgRkFESUwKK0tBU1RSQVRPVknEhiBBTEVLU0FOREFSCitLQVNUUkFUT1ZJxIYgQk9HREFOCitLQVNUUkFUT1ZJxIYgTUlIQUlMTworS0FTVFJBVE9WScSGIFZMQURJTUlSCitLQVNUUkFUT1ZJxIYgWk9SQU4KK0tBU1RSQVRPVknEhiBaT1JBTgorS0FUQcWgScSGIFBFVEFSCitLQVRBTEVOScSGIERVxaBBTgorS0FUQUxJTsSMRVYgxb1JVkFOCitLQVRBTkEgQU5HRUxJTkEKK0tBVEFOQSBOSUtPTEEKK0tBVEFOScSGIEFOxJBFTEtBCitLQVRBTknEhiBKRUNBCitLQVRBTknEhiBLU0VOSUpBCitLQVRBTknEhiBMSlVCSUNBCitLQVRBTknEhiBNQVJBCitLQVRBTknEhiBSQURJVk9KCitLQVRBTknEhiBSQURPTUlSCitLQVRBTknEhiBTQVZBIERSCitLQVRBTlNLSSBNSUxPxaAKK0tBVEFOU0tJIFBBVkxFCitLQVRBUklOxIxJxIYgQ0VMRVNUSU4KK0tBVEFSSVZBUyBFTEEKK0tBVEFSSVZBUy1OSUtPTEnEhiBHSVpFTEEKK0tBVEFUScSGIElMT05BCitLQVRBVkEgUlVET0xGCitLQVRBVknEhiBEQU5JTEtBCitLQVRBVknEhiBNQVJJSkEKK0tBVEFWScSGIFJBRE1JTEEKK0tBVEnEhiBBREEKK0tBVEnEhiBBTEVLU0FOREFSIERJUEwgSU5HCitLQVRJxIYgQk9TSUxKS0EKK0tBVEnEhiBEQVJBCitLQVRJxIYgRE9CUklMQQorS0FUScSGIEdPSktPCitLQVRJxIYgSUxJSkEKK0tBVEnEhiBJTElKQQorS0FUScSGIElWQU4KK0tBVEnEhiBKT1ZBTgorS0FUScSGIEpPVk8KK0tBVEnEhiBLT1NUQQorS0FUScSGIEtSU1RBCitLQVRJxIYgS1NFTklKQQorS0FUScSGIExKSUxKQU5BCitLQVRJxIYgTEpVQklOS08KK0tBVEnEhiBMVUtBCitLQVRJxIYgTUFSR0FSRVRBCitLQVRJxIYgTUFSSUpBCitLQVRJxIYgTUlMQU4KK0tBVEnEhiBNSUxBTgorS0FUScSGIE1JTE9SQUQKK0tBVEnEhiBNSUxPUkFECitLQVRJxIYgTUlUQQorS0FUScSGIE5JS09MQQorS0FUScSGIE5PVkFLCitLQVRJxIYgT1RJTElKQQorS0FUScSGIFBBVkxFIERSCitLQVRJxIYgUkFESVZPSgorS0FUScSGIFJBVEtPCitLQVRJxIYgU0FWTworS0FUScSGIFNMT0JPREFOCitLQVRJxIYgU0xPQk9EQU4KK0tBVEnEhiBTTkXFvUFOQQorS0FUScSGIFNSRVRFTgorS0FUScSGIFNUQU5LTworS0FUScSGIFNWRVRJU0xBVgorS0FUScSGIFNWRVRMQU5BCitLQVRJxIYgVkVTRUxBCitLQVRJxIYgVkVTTkEKK0tBVEnEhiBWTEFESU1JUgorS0FUScSGIFpMQVRPTUlSCitLQVRJTsSMScSGIMW9RUxJTUlSIERJUEwgSU5HCitLQVROScSGIFNBVkVUQQorS0FUT05BIElNUkUKK0tBVE9OQSBKT8W9RUYKK0tBVE9OQSBMQUpPxaAgRElQTCBJTkcKK0tBVE9OQSBMQVNMTworS0FUT05BIFZJTkNFCitLQVVSScSGIE5JS09MQQorS0FVUklOIEpVUkUKK0tBVVJJTiBLUlNUTworS0FVUklOIExBWkFSCitLQVVSSU4gTU9NxIxJTE8KK0tBVVJJTiBORURFTEpLTworS0FVUklOIFZBU08KK0tBVVJJTk9WScSGIEJPxb1JREFSCitLQVVSSU5PVknEhiBTSU1PIERJUEwgSU5HCitLQVVURU4gSk9IQU4KK0tBVsSMScSGIFNURVZBTgorS0FWQUpBIExVS0EKK0tBVkFKQSBOSUtPCitLQVZBTEnEhiBCT1JJU0xBVgorS0FWRcSMQU4gSVZBTiBEUgorS0FWRcSMQU4gTklLT0xBCitLQVZHScSGIE1JT0RSQUcKK0tBVkdJxIYgTklLT0xBCitLQVZHScSGIFBFVEFSCitLQVZHScSGIFBFVEFSCitLQVZHScSGIFNURVZBTgorS0FWUkFKQSBTVEVWQU4KK0tBVlJBSkEgU1ZFVE9aQVIKK0tBVlJBTiDFvUVMSktPCitLQVpBRkVST1ZJxIYgUkXFoEFECitLQVpBTkNFViBKT1NJUEEKK0tBWkkgRVJORQorS0FaSSBKT8W9RUYKK0tBWklKQSBTTUlMSktBCitLQVpJTUnEhiBTVEVWQU4KK0tBWklNSVJPVknEhiBBTkEKK0tBWklNSVJPVknEhiBMSlVCSVNBVgorS0FaSU1JUk9WScSGIE1JUkpBTkEKK0tBWklNSVJPVknEhiBORVNUT1IKK0tFxIxBIEJPSkFOQQorS0XEjEEgRFXFoEFOS0EKK0tFxIxBIElMSUpBCitLRcSMQSBNSUtBTgorS0XEjEEgTUlMQU4KK0tFxIxBIE1JTEFOCitLRcSMQSBNSUxBTgorS0XEjEEgTUlMRU5LTworS0XEjEEgTUlMRVZBCitLRcSMQSBQRVJPCitLRcSMQSBSQU5LTworS0XEjEEgU0xPQk9EQU4KK0tFxIxBIFZPSklOCitLRcSMScSGIMW9SVZBTgorS0XEjEnEhiBNSUxBTiBBS0FERU1TS0kgU0xJS0FSCitLRcSMS0XFoCDEkEVSxJAKK0tFxIxLRcWgIEZFUkVOQworS0XEjEtFxaAgSk9TSVAKK0tFxIxLRU1FVEkgScWgVFZBTgorS0XEjEtJIFJVxb1JQ0EKK0tFxaBBTlNLSSBJVktBCitLRcWgQU5TS0kgS0FUSUNBCitLRcWgQU5TS0kgUkFERU5LTworS0XFoEFOU0tJIFJBRElWT0oKK0tFxaBBTlNLSSBSVcW9SUNBCitLRcWgQU5TS0kgU0lNTworS0XFoEFOU0tJIFNUQU5JU0xBVgorS0XFoEVMSiDEjEVET01JUgorS0XFoEVMSiBFVkEKK0tFxaBFTEogR09KS08KK0tFxaBFTEogSk9WQU4KK0tFxaBFTEogUkFETUlMQQorS0XFoEVMSiBTTE9CT0RBTgorS0XFoEVMSiBVR0xKRcWgQQorS0XFoEVMSiBWVUtBxaBJTgorS0XFoEtJxIYgWlZPTklNSVIKK0tFxaBNQVJLSS1LUkVTVEEgSkVMRU5BCitLRcW9ScSGIEJJTEpBTkEKK0tFxb1JxIYgRFXFoEFOCitLRcW9ScSGIEtBVElDQQorS0XFvUnEhiBNQVJKQU4KK0tFxb1JxIYgTUlMQU4KK0tFxb1JxIYgTkVWRU5LQQorS0XFvUnEhiBWTEFETworS0VCSU4gxb1BUktPCitLRUNFTEkgTUlIQUxKCitLRUNJxIYgREFOSUxPIERSCitLRUNJxIYgTUlST1NMQVYKK0tFQ0nEhiBTTE9CT0RBTgorS0VDTUFOIMSMRURBCitLRUNNQU4gxb1BUktPCitLRUNNQU4gxJBVUk8KK0tFQ01BTiDEkFVSTworS0VDTUFOIEJPUklTTEFWCitLRUNNQU4gQlJBTktPCitLRUNNQU4gRFJBR0lDQQorS0VDTUFOIERVxaBBTgorS0VDTUFOIElMSUpBCitLRUNNQU4gSk9WQU4KK0tFQ01BTiBKT1ZBTgorS0VDTUFOIEpVTEtBCitLRUNNQU4gTEpVQkEKK0tFQ01BTiBNQVJBCitLRUNNQU4gTUFSS08KK0tFQ01BTiBNSUxBRElOCitLRUNNQU4gTUlMQU4KK0tFQ01BTiBNSUxBTgorS0VDTUFOIE1JTEtBCitLRUNNQU4gTUlMVVRJTgorS0VDTUFOIE1JUkpBTkEKK0tFQ01BTiBNSVJPU0xBVkEKK0tFQ01BTiBNTEFERU4KK0tFQ01BTiBTVEVWQU4KK0tFQ01BTiBTVkVUS08KK0tFQ08gxIxFRE9NSVIKK0tFQ08gR09KS08KK0tFQ08gSkVMRU5BCitLRUNPIExKVUJPTUlSCitLRUNPIE1BUklKQQorS0VDTyBNQVJJSkEKK0tFQ08gTUlSSkFOQQorS0VDTyBNSVRBUgorS0VDTyBNT01JUgorS0VDTyBSQURPSkUKK0tFQ08gUkFUS08KK0tFQ08gU0xPQk9EQU4KK0tFQ08gU0xPQk9EQU4KK0tFRMW9QSBNSUxPUkFECitLRURJxIYgRFXFoEFOCitLRURJxIYgU1RBTktPCitLRURWRcWgIEVWQQorS0VGRVIgSkFOT8WgCitLRUZFUiBKT1NJUAorS0VHTE9WScSGIFZJTktPCitLRUsgRVLFvUVCRVQKK0tFSyBFVkEKK0tFS0VMSkVWScSGIE1JT0RSQUcKK0tFS0VOSiBHSVpFTEEKK0tFS0VaIERSQUdJTkpBCitLRUtJxIYgxJBPUsSQRQorS0VLScSGIMSQVVJBCitLRUtJxIYgQUdJQ0EKK0tFS0nEhiBEQU5JQ0EKK0tFS0nEhiBEUkFHQU4KK0tFS0nEhiBEVcWgQU4KK0tFS0nEhiBHT1JEQU5BCitLRUtJxIYgS09TT1ZLQQorS0VLScSGIE1JTEFOCitLRUtJxIYgTUlMSUNBCitLRUtJxIYgTUlSS08KK0tFS0nEhiBOQVRBTElKQQorS0VLScSGIFBFVEFSCitLRUtJxIYgU0xBVklDQQorS0VLScSGIFRFT0RPUgorS0VLSU4gTUFSSUpBCitLRUtPVknEhiBEUkFHT0xKVUIKK0tFS09WScSGIE1FTEFOSUpBCitLRUtPVknEhiBNSU9EUkFHCitLRUxCTEkgTUlIQUpMTworS0VMRSBKT8W9RUYKK0tFTEUgSk/FvUVGCitLRUxFxIwgTUlMT1JBRAorS0VMRcSMIE1JUktPCitLRUxFxIxFVknEhiBEQU5JQ0EKK0tFTEXEjEVWScSGIE5JS0lDQQorS0VMRcSMScSGIElWQU4KK0tFTEXEjEnEhiBKT1NJUAorS0VMRU1FTiBBTEVLU0FOREFSIERJUEwgSU5HCitLRUxFTUVOIEFMRUtTQU5EQVIKK0tFTEVNRU4gQU5BCitLRUxFTUVOIEdBQk9SCitLRUxFTUVOIElNUkUKK0tFTEVNRU4gSk/FvUVGCitLRUxFTUVOIEpPxb1FRgorS0VMRU1FTiBMQUpPxaAKK0tFTEVNRU4gTUHEhkHFoAorS0VMRU1FTiBNQVJJSkEKK0tFTEVNRU4gVElCT1IKK0tFTEVSIEpBTk/FoAorS0VMRVIgSkFOT8WgCitLRUxFUiBQRVRBUgorS0VMRVIgUkFETUlMQQorS0VMRVIgU1RFVkFOCitLRUxFVVZBIERSQUdPCitLRUxFVVZBIE1JSEFKTE8KK0tFTEnEhiBTVEVWQU5LQQorS0VMSUpBxaBFVknEhiDFvUlWS08KK0tFTE5FUiBNQVJJSkEKK0tFTE9WScSGIE1JTE9NSVIKK0tFTUVDIEFORFJJSkEKK0tFTUVDIE1JSk8gRElQTCBJTkcKK0tFTUVOQ0kgQkVMQQorS0VNRU5KIE1JUkEKK0tFTUVOSiBURVJFWklKQSBESVBMIElORworS0VNSVZFxaAgR0VPUkcKK0tFTsSQRUwgU1RFVklDQQorS0VOQ0VMIFNNSUxKQQorS0VORcWgS0kgRFJBR0FOCitLRU5JRyBIRU5EUklICitLRU5JRyBKRUtBCitLRU5JRyBKRUxFTkEKK0tFTkpBTE8gU1RPSkFOCitLRVDEjElKQSBJTElKQQorS0VQxIxJSkEgTUlMRQorS0VQxIxJSkEgVE9ET1IKK0tFUEUtRFJBR09TQVZMSkVWScSGIExJVklKQQorS0VQRSBKVUxJSkFOQQorS0VQScSGIMW9SVZBTgorS0VSxIxFViBLQVJMTworS0VSxIxVIE1JUkpBTkEKK0tFUsSMVSBTVEFOSVNMQVYKK0tFUsWgTkVSIEFMRUtTQU5EQVIKK0tFUkFDIMW9QVJLTworS0VSQUMgxb1BUktPCitLRVJBQyDEkFVSQQorS0VSQUMgQlJBTklTTEFWCitLRVJBQyBEQU5JQ0EKK0tFUkFDIERVxaBBTgorS0VSQUMgRVLFvUVCRVQKK0tFUkFDIEdBVlJBCitLRVJBQyBKT1ZBTgorS0VSQUMgSk9WQU4KK0tFUkFDIExBWkFSCitLRVJBQyBMQVpBUgorS0VSQUMgTEVQT1NBVkEKK0tFUkFDIE1JTElWT0oKK0tFUkFDIE1JTE/FoAorS0VSQUMgTUlUQQorS0VSQUMgUEFWTEUKK0tFUkFDIFBBVkxFCitLRVJBQyBQRVJBCitLRVJBQyBTSU1BCitLRVJBQyBTT05KQQorS0VSQUMgU1BBU0EKK0tFUkFDIFNUQU5BCitLRVJBQyBTVEFOSVNMQVZBCitLRVJBQyBTVEVWQU4KK0tFUkFDIFNURVZBTgorS0VSQUMgVE9ET1IKK0tFUkFDIFpMQVRLTworS0VSQU5PVknEhiBNSUxBTgorS0VSQU5PVknEhiBTVEFOQQorS0VSQVbEjElOIE1JVEEKK0tFUkFWxIxJTiBTVkVUT1pBUgorS0VSQVZJQ0EgREFWSUQKK0tFUkFWSUNBIEpPVkFOCitLRVJBVklDQSBMSlVCT01JUgorS0VSQVZJQ0EgTUlMSVZPSgorS0VSQVZJQ0EgTUlMT8WgCitLRVJBVklDQSBNSUxPxaAKK0tFUkFWSUNBIE1JT0RSQUcKK0tFUkFWSUNBIE1JT0RSQUcKK0tFUkFWSUNBIFBFVEFSCitLRVJBVklDQSBTVEVWQU4KK0tFUkFWSUNBIFNWRVRJU0xBVgorS0VSRcSMS0kgQlJBTktPCitLRVJFxIxLSSBEUkFHT01JUgorS0VSRcWgRVZJxIYgQUxFS1NBTkRSQQorS0VSRcWgRVZJxIYgSUxPTkEKK0tFUkXFoEVWScSGIFNUT0pBTktBCitLRVJFxaBJIEpVTElKQU5BCitLRVJFxaBJIFZJTkNFCitLRVJFxb1JIEZFUkVOQworS0VSRUMgSVZBTgorS0VSRUTFvUlOIE1JTEFOCitLRVJFRMW9SU4gTUlSSkFOQQorS0VSRUTFvUlOIFNPRklKQQorS0VSRUtFxaAgScWgVFZBTiBESVBMIElORworS0VSRUtFxaAtTUFMT05LQSBFVEVMS0EKK0tFUkVORUMgTEpJTEpBTkEKK0tFUkVOSkkgQUxFS1NBTkRBUgorS0VSRVNURcWgIEpFTkUKK0tFUkVTVEXFoCBMSlVCSUNBCitLRVJFU1RFxaAgTUFSR0lUQQorS0VSRVpPVknEhiBNSUhBSkxPCitLRVJFWk9WScSGIE5FxJBPCitLRVJJIERFTkXFoAorS0VSSSBGUkFOSk8KK0tFUkkgSk9WQU4KK0tFUknEhiBTQVZBCitLRVJLRVogRFJBR08KK0tFUktFWiBEVcWgQU5LQQorS0VSS0VaIERVxaBBTgorS0VSS0VaIERVxaBBTgorS0VSS0VaIEdPSktPCitLRVJLRVogSUxJSkEKK0tFUktFWiBMQVpBUgorS0VSS0VaIE1JTEFOCitLRVJLRVogTUlMRU5LTworS0VSS0VaIE1JTElDQQorS0VSS0VaIE1JUkpBTkEKK0tFUktFWiBNSVJPU0xBVgorS0VSS0VaIE1MQURFTgorS0VSS0VaIE5JS09MQQorS0VSS0VaIFBBVUxJTkEKK0tFUktFWiBQRVRBUgorS0VSS0VaIFNMT0JPREFOCitLRVJLRVogU1JFVEVOCitLRVJLRVogU1RFVkFOCitLRVJLRVogU1RFVkFOCitLRVJLRVogVkxBREEKK0tFUktFWiBWT0pJTgorS0VSTEVUQSBORcSQTworS0VSTUVDIElMT05LQQorS0VSTUVDSSBUSUJPUgorS0VSTUVOREkgUEVUQVIKK0tFUk4gREFOSUVMCitLRVJQRUwgU09GSUpBCitLRVJTTklLIEpPxb1FCitLRVJTTklLIE1JxaBBCitLRVJTVElORyBLQVRBUklOQQorS0VSVEVTIEVSxb1FQkVUCitLRVJURVMgSkFOT8WgCitLRVJURVMgSkFOT8WgCitLRVJURVMgVklMTU/FoAorS0VSVklOQSBBTlRPTgorS0VSVklOQSBBUklKQU5BCitLRVNFRyBMQUpPxaAKK0tFU0VHIExBSk/FoAorS0VTRUdJIEdFWkEKK0tFU0VHSSBLQVJPTEoKK0tFU0VHSSBWT0pJU0xBVgorS0VTRVIgRFJBR0nFoEEKK0tFU0VST1ZJxIYgS0FUQVJJTkEKK0tFU0nEhiDFvUlWS08KK0tFU0nEhiDEkFVSQQorS0VTScSGIEJPxaBLTworS0VTScSGIEJPUklTTEFWCitLRVNJxIYgR09SQU4KK0tFU0nEhiBKT1ZBTgorS0VTScSGIE1BUklOS08KK0tFU0nEhiBNSUxFCitLRVNJxIYgTUlMSUNBCitLRVNJxIYgTUlMS0EKK0tFU0nEhiBORVZFTktBCitLRVNJxIYgU0xPQk9EQU4KK0tFU0nEhiBTVEFOT0pFIERJUEwgUFJBVk5JSworS0VTTEVSIEFORFJJSkEgRFIgTEVLQVIKK0tFU0xFUiBST0JFUlQKK0tFVEVMRcWgIFJPxb1JS0EKK0tFVElHIFRPTUlTTEFWCitLRVRJRyBUT01JU0xBVgorS0VWScSGIE1JTEEKK0tFVknEhiBPTEdBCitLRVZJxIYgUkFERQorS0VWSUxKIEJSQU5LTworS0VWUkXFoEFOIEVNSUwKK0tFWkXFoEkgRFXFoEtPCitLRVpJxIYgRFXFoEFOS0EKK0tFWknEhiBNSVJLTworS0VaSUpBIE1JTE9SQUQKK0tFWk1JxIYgQklMSkFOQQorS0VaVU5PVknEhiBNSUxPVkFOCitLRVpVTk9WScSGIFBFVEtPCitLRVpVTk9WScSGIFJBSktPCitLScSMSSBFUk5FCitLScSMSU4gRVZBCitLScSMSU5BIExBWkFSCitLScSMSU5KIEVMSVpBQkVUQQorS0nFoC3EjEVQRUdJIEdBQk9SCitLScWgLcSMRVBFR0kgR0FCT1IKK0tJxaAtxIxFUEVHSSBSVURPTEYKK0tJxaAtxIxFUEVHSSBURVJFWkEKK0tJxaAgxaBBTkRPUgorS0nFoCDFoEFORE9SCitLScWgIMSQRVLEkAorS0nFoCDEkEVSxJAKK0tJxaAgQUxFS1NBTkRBUgorS0nFoCBBTkEKK0tJxaAgQU5EUklKQQorS0nFoCBCRUxBCitLScWgIEJFTEEKK0tJxaAgQk9MREnFvUFSCitLScWgIEJSQU5LTworS0nFoCBEVcWgQU5LQQorS0nFoCBEVcWgSUNBCitLScWgIEVSTkVTVAorS0nFoCBFUk5FCitLScWgIEVTVEVSCitLScWgIEVWQQorS0nFoCBGRVJFTkMKK0tJxaAgRkVSRU5DCitLScWgIEZFUkVOQworS0nFoCBGUkFOSk8KK0tJxaAgR0VaQQorS0nFoCBHRVpBCitLScWgIEdJWkVMQQorS0nFoCBIRUxFTkEKK0tJxaAgSEVOUklKRVRBCitLScWgIEnFoFRWQU4KK0tJxaAgScWgVFZBTgorS0nFoCBJxaBUVkFOCitLScWgIElMT05BCitLScWgIElMT05LQQorS0nFoCBJUkVOQQorS0nFoCBJU0lET1IKK0tJxaAgSVZBTgorS0nFoCBJVkFOCitLScWgIEpBTktPCitLScWgIEpBTk/FoAorS0nFoCBKT8W9RUYKK0tJxaAgSk9DQQorS0nFoCBKT1NJUAorS0nFoCBKT1NJUAorS0nFoC1KT1ZBSyBGUkFOSkEKK0tJxaAgSk9aRUZJTkEKK0tJxaAgSlVMSUpBTgorS0nFoCBLQUxNQU4KK0tJxaAgS0FUQUxJTgorS0nFoCBLQVRJQ0EKK0tJxaAgS0FUSUNBCitLScWgIExBQ0lLQQorS0nFoCBMQVNMTworS0nFoCBMQVNMTworS0nFoCBNQVJHSVRBCitLScWgIE1BUklKQQorS0nFoCBNQVJJSkEKK0tJxaAgTUlIQUxKCitLScWgIE1JSkEKK0tJxaAgTUlMQU4KK0tJxaAgTUlMSUNBCitLScWgIE1JUktPCitLScWgIE5BTkRPUgorS0nFoCBOSUtPTEEKK0tJxaAgTklLT0xBCitLScWgIE9UTworS0nFoCBPVE8KK0tJxaAgUEFWTEUKK0tJxaAgUEVSQQorS0nFoCBQRVRBUgorS0nFoCBQRVRBUgorS0nFoCBQRVRBUgorS0nFoCBST1pBTElKQQorS0nFoCBTTEFWSUNBCitLScWgIFNMQVZJQ0EKK0tJxaAgU0xPQk9EQU4KK0tJxaAgU1RBTklTTEFWCitLScWgIFNURVZBTgorS0nFoCBTVEVWQU4KK0tJxaAgU1RFVkFOCitLScWgIFNURVZBTgorS0nFoCBTVEpFUEFOCitLScWgIFRJQk9SIERSCitLScWgIFRJQk9SCitLScWgIFRJQk9SCitLScWgIFRPRE9SCitLScWgIFZFU05BCitLScWgIFZJS1RPUklKQQorS0nFoCBWTEFESU1JUgorS0nFoCBWTEFESU1JUgorS0nFoCBWTEFESU1JUgorS0nFoCBWTEFESU1JUgorS0nFoCBWVUtPU0FWQQorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaBET0JSQU5TS0kgTUlMSVZPSgorS0nFoEVHRUNJIEpBTiBEUgorS0nFoEdFQ0ktRFVEQcWgIEtMQVJBCitLScWgR0VDSSBFTUlMCitLScWgR0VDSSBJVkFOCitLScWgR0VDSSBQQVZMRQorS0nFoEdFQ0kgU1RBTklTTEFWCitLScWgR0VDSSBTVEFOSVNMQVYKK0tJxaBHRUNJIFNURVZBTgorS0nFoEdFQ0kgVkxBRElNSVIKK0tJxaBKVUhBUyBKQUtPVgorS0nFoE1JxaBLQSBQQUwKK0tJxaBQUkRJTE9WIERFSkFOCitLScWgUFJESUxPViBaT1JBTgorS0nEhkFOT1ZJxIYgQk9STworS0nEhkFOT1ZJxIYgREFSSU5LQQorS0nEhkFOT1ZJxIYgSk9LQQorS0nEhkFOT1ZJxIYgTUlST1NMQVYKK0tJxIZBTk9WScSGIE1JVEFSCitLScSGQU5PVknEhiBQRVRBUgorS0nEhkFOT1ZJxIYgUkFETUlMQQorS0nEhkFOT1ZJxIYgUkFKS08KK0tJxIZBTk9WScSGIFpPUkFOCitLScW9RE9CUkFOU0tJIMW9QVJLTworS0nFvURPQlJBTlNLSSBMSlVCSUNBCitLScW9RE9CUkFOU0tJIE1JTEFOCitLScW9RE9CUkFOU0tJIE1JTEFOCitLScW9RE9CUkFOU0tJIE1JTElWT0oKK0tJxb1ET0JSQU5TS0kgU0FWQQorS0nFvUVWU0tJIERJTUtPCitLScW9RVZTS0kgTUlSQQorS0nFvUVWU0tJIFZPSklTTEFWCitLSUNPxaBFViBCUkFOS08KK0tJQ0/FoEVWIExKSUxKQU5BCitLSUNPxaBFViBNSVRBCitLSUNPxaBFViBTQcWgQQorS0lDT8WgRVYgU1RPSkFOCitLSUNPxaBFVknEhiBUUklWQQorS0lDT8WgRVZJxIYgVkxBSktPCitLSUpBxIxLSSBCUkFOSVNMQVYKK0tJSkFOT1ZJxIYgTUFOT0pMRQorS0lKQU5PVknEhiBTVEFOS08KK0tJS0FOT1ZJxIYgRElNSVRSSUpFCitLSUtBTk9WScSGIERPQlJJTEEKK0tJS0FOT1ZJxIYgTUlMRU5JSkEKK0tJS0nEhi3FoE9WTEpBTlNLSSBMSklMSkFOQQorS0lLScSGIE1JUktPCitLSUtJxIYgU01JTEpBIERSCitLSUtJTsSQQU5JTiBNSVJPU0xBVkEKK0tJS0lOREFJIFZFUkEKK0tJS0/FoCBHT1JEQU4KK0tJS0/FoCBKT1ZBTgorS0lLT8WgIExBWkFSCitLSUtPxaAgU1JCSVNMQVYKK0tJS09WScSGIFNMQVZJQ0EKK0tJTEnEhiBOSUtPTEEKK0tJTElCQVJEQSBNSUxPUkFECitLSUxJQkFSREEgTUlUQVIKK0tJTElCQVJEQSBQQVZMRQorS0lMSUJBUkRBIFZMQURJTUlSCitLSUxJQkFSREEgVk9KSVNMQVYKK0tJTVBBTk9WIEJSQU5JU0xBVgorS0lNUEFOT1YgTkFUQUxJSkEKK0tJTVBBTk9WIFNMT0JPREFOCitLSU1QQU5PViBTTE9CT0RBTgorS0lNUEFOT1YgU09GSUpBCitLSU7EjEXFoCBNSUhBTEoKK0tJTsSQSU4gU1ZFVE9aQVIKK0tJTsSQSU4gVkFTQQorS0lOREVSTkFKIElMSUpBCitLSU5ERVJOQUogTUlMQU4KK0tJTkRFUk5BSiBPVE8KK0tJTkRFUk5PSiBQQVZMRQorS0lOSUsgSkFOCitLSU5JSyBQQVZMRQorS0lOSkVSQU4gU1ZFVElTTEFWCitLSU5LQSBSSVRBCitLSVBFUk9WScSGIEpPVk8KK0tJUEnEhiDEkFVMQQorS0lQScSGIEFORFJJSkEKK0tJUEnEhiBBTktBCitLSVBJxIYgRURJVEEKK0tJUEnEhiBFUsW9RUJFVAorS0lQScSGIEVSTkUKK0tJUEnEhiBGRVJFTkMKK0tJUEnEhiBGUkFOSkEKK0tJUEnEhiBJxaBUVkFOCitLSVBJxIYgSk9TSVAKK0tJUEnEhiBMQVNMTworS0lQScSGIE5BTkRPUgorS0lSxIxBTiBFTUlMCitLSVLFoCBKT8W9RUYKK0tJUsWgIE1JTE9SQUQKK0tJUsWgRUsgSlVSQUoKK0tJUsSGQU4gU0FWQQorS0lSxIZBTlNLSSBCUkFOS08KK0tJUsSGQU5TS0kgRFXFoEtPCitLSVLEhkFOU0tJIElWQU4KK0tJUsSGQU5TS0kgTUlMSUNBCitLSVLEhkFOU0tJIE9CUkFECitLSVLEhkFOU0tJIFJBRElWT0oKK0tJUsSGQU5TS0kgUkFET1NMQVZBCitLSVJEQSBWTEFESU1JUgorS0lSScSGIEZSQU5KTworS0lSScSGIE1FTktBCitLSVJJxIYgU0xPQk9EQU4KK0tJUknEhiBTVEFOSVNMQVYKK0tJUklExb1JxIYgRFJBR0nFoEEKK0tJUklExb1JxIYgTUlMT8WgCitLSVJJRMW9ScSGIE9CUkFECitLSVJJTE9WIEFMRUtTQU5EQVIKK0tJUklMT1ZJxIYgQUxFS1NBTkRBUgorS0lSSUxPVknEhiBET0JSSU5LQQorS0lSSUxPVknEhiBKRUxFTkEKK0tJUklMT1ZJxIYgS1JJU1RBCitLSVJJTE9WScSGIEtSSVNUSU5BCitLSVJJTE9WScSGIE9MR0EKK0tJUklOIMW9RUxKS08KK0tJUklOIElWSUNBCitLSVJJTiBTTkXFvUFOQQorS0lSSkFLT1ZJxIYgSk9WQU4KK0tJUkpBS09WScSGIE5JS09MQQorS0lSS09WIERJTUlUQVIKK0tJUktPViBWRVJJQ0EKK0tJUk4gVkxBRElNSVIKK0tJUk9WQUtPViBWQUxFUklKQQorS0lSVEnEhiBEVcWgQU4KK0tJU0HEjEFOSU4gREVTQU5LQQorS0lTQcSMQU5JTiBEVcWgQU4KK0tJU0HEjEFOSU4gTUlPRFJBRyBESVBMIElORworS0lTQcSMQU5JTiBNSVJPU0xBVgorS0lTQcSMQU5JTiBQQVZMRQorS0lTQcSMQU5JTiBTVkVUT1pBUgorS0lTRUxJxIxLSSDFvUlWS08gU1VESUpBCitLSVNFTEnEjEtJIERBTklDQQorS0lTRUxJxIxLSSBGRURPUiBEUgorS0lTRUxJxIxLSSBMQVpBUiBESVBMIElORworS0lTRUxJQ0Egxb1BUktPCitLSVNFTElDQSBOQURBCitLSVNFTElDQSBQRVRBUgorS0lTRUxJQ0EgUEVUQVIKK0tJU0nEhiBEVcWgQU4KK0tJU0nEhiBKT1ZBTgorS0lTScSGIE1JUktPCitLSVNJxIYgU1LEkEFOCitLSVNJxIYgU1ZFVE9aQVIKK0tJU0lOIEFOxJBBCitLSVNJTiBNSUxJQ0EKK0tJU0lOIE1JTEtBCitLSVNJTiBUT01PCitLSVNMSUMgSVJFTkEKK0tJU0xPVlNLSSBWTEFESU1JUgorS0lTTyBNSUxPUkFECitLSVNURVIgVklOS08KK0tJVCBWQVNJTEoKK0tJVEFOT1ZJxIYgxb1JVktPCitLSVRBTk9WScSGIEJSQU5JU0xBVkEKK0tJVEFOT1ZJxIYgS0FUSUNBCitLSVRBTk9WScSGIExFTktBCitLSVRBTk9WScSGIE1JUkpBTkEKK0tJVEFOT1ZJxIYgTkVERUxKS08KK0tJVEFOT1ZJxIYgVE9NQQorS0lUQU5PVlNLSSBESU3EjEUKK0tJVEnEhiBSQURPSktBCitLSVRJxIYgU0FWTworS0lUScSGIFNUT0pLTworS0lUScSGIFZFTElNSVIKK0tJVVJTS0kgU1RFVkFOIERJUEwgT0VDCitLSVZPVknEhiBBTlRPTklKQQorS0laQSBCUkFOS0lDQQorS0laScSGIERVxaBBTgorS0laScSGIExJRElKQQorS0laScSGIE1BUktPCitLSVpJxIYgTUlIQUlMTworS0laScSGIFNBVktBCitLSVpJxIYgU0xPQk9EQU4KK0tJWknEhiBTTE9CT0RBTgorS0laScSGIFNORcW9QU5BCitLSVpJxIYgVElIT1NMQVYKK0tJWlVSIEFORFJBxaAKK0tJWlVSIEnFoFRWQU4KK0tJWlVSIEpBTk/FoAorS0laVVIgTEFTTE8KK0tJWlVSIFBBVkVMCitLSVpVUiBWRVJBCitLTEHEjEFSIE1JTEtPCitLTEHEjEFSIE1JTE/FoAorS0xBxaBOSkEgxb1BUktPCitLTEHFoE5KQSBCUkFOS08KK0tMQcWgTkpBIEpPVkFOCitLTEHFoE5KQSBNQVJJSkEKK0tMQcWgTkpBIE1JS0EKK0tMQcWgTkpBIE1JTEVOQQorS0xBxaBOSkEgTUlMRQorS0xBxaBOSkEgTUlMSUNBCitLTEHFoE5KQSBNSVJPU0xBVgorS0xBxaBOSkEgVkxBRElTTEFWIERSIExFS0FSCitLTEHEhiBEUkFHQU4KK0tMQcSGSUsgSk/FvUVGCitLTEHEhklLIE1BUklKQQorS0xBRFXFoEnEhiBNRU5TVVJBCitLTEFJxIYgQU5UTworS0xBScSGIFBBVk8KK0tMQUogUEVUQVIKK0tMQUpJxIYgxJBVUkEKK0tMQUpJxIYgREFOSUxPCitLTEFKScSGIExKVUJJQ0EKK0tMQUpJxIYgTUFHREFMRU5BCitLTEFKScSGIE9MR0EKK0tMQUpJxIYgUk9aQUxJSkEKK0tMQUpJxIYgVkFMRVJJSkEKK0tMQUpJxIYgVklEQQorS0xBSk4gQUxCRVJUCitLTEFKTiBBTkEKK0tMQUpOIERSQUdVVElOCitLTEFKTiBJVkFOS0EKK0tMQUpOIElWQU4KK0tMQUpOIExBSsSMTyBEUgorS0xBSk4gTUlST1NMQVYKK0tMQUpOIFZFUkEKK0tMQUpORVIgRVNURVIKK0tMQUpORVIgScWgVFZBTgorS0xBTUFSIEtBUkxPCitLTEFNSUsgSU1SRQorS0xBUEFSRVZJxIYgR09SQU4KK0tMQVBBUkVWScSGIFNBVkEKK0tMQVBBUkVWScSGIFZBU0lMSUpFCitLTEFSScSGIERVxaBBTktBCitLTEFSScSGIEdPUkFOCitLTEFSScSGIExKVUJJQ0EKK0tMQVJJxIYgTUlMScSGCitLTEFSScSGIE1JTE9SQUQKK0tMQVJJxIYgT0xHQQorS0xBUknEhiBTRUtBCitLTEFTQU4gQU5BCitLTEFTRVIgQUxCRVJUCitLTEFTScSGIExBRElTTEFWCitLTEFTScSGIFNBxaBBCitLTEFVUyBFUsW9RUJFVAorS0xBVVMgRVLFvUVCRVQKK0tMQVVTIExBU0xPCitLTEVCRcSMS08gxaBBTkRPUgorS0xFQkXEjEtPIMWgQU5ET1IKK0tMRU0gQURBTSBEUgorS0xFTSBKT8W9RUYKK0tMRU0gVEVSRVpBCitLTEVNRU5PVknEhiBVUk/FoAorS0xFTk9DS0kgTUFSSUpBCitLTEVOT1bFoEVLIEZSQU5KQQorS0xFTk9WxaBFSyBURVJFWklKQQorS0xFTk9WxaBFSyBaVk9OSU1JUgorS0xFUEnEhiDEkFVSQcSQCitLTEVQScSGIE5JS09MQQorS0xFVCBHRVpBCitLTEVVVCBNSUxBTgorS0xFVVQgUlXFvUEgRFIgTEVLQVIKK0tMRVZFUk5JxIYgQk9SSVNMQVYKK0tMScSMRUsgSVJFTkEKK0tMScSMS09WScSGIERBTklDQQorS0xJxIxLT1ZJxIYgS09TVEEKK0tMScSMS09WScSGIFZFUkEKK0tMScWgQU5JxIYgSk9TSVAKK0tMScWgQU5JxIYgU1RBTklTTEFWCitLTElDT1YgSUxJSkEKK0tMSUtPVkFDIE1JSEFKTE8KK0tMSUtPVkFDIFZFTElNSVIKK0tMSU1FxaAgRFJBR0FOQQorS0xJTUXFoCBaT1JBCitLTElOQUMgVVJPxaAKK0tMSU5BUiBJVkFOCitLTElOQ09WIE5BREEKK0tMSU5Exb1JxIYgU1RKRVBBTgorS0xJTkdFUiBLQVRJQ0EKK0tMSU5LTyBKQU4KK0tMSU5PQ0tJIMSQRVLEkAorS0xJTk9WU0tJIEJSQU5LTworS0xJTk9WU0tJIERSQUdBTgorS0xJTk9WU0tJIERSQUdBTgorS0xJTk9WU0tJIERVxaBBTgorS0xJUEEgxb1JVkFOCitLTElQQSDEkE9SxJBFCitLTElQQSBKRUxJQ0EKK0tMSVBBLUtSQUJFUyBHUkVUQQorS0xJUEEgTEFaQVIKK0tMSVBBIE1JS0EKK0tMSVIgSUxPTkEKK0tMSVIgUk9aQUxJSkEKK0tMSVNBUkEgxb1JVktPCitLTElTQVJBIMSQT1LEkEUKK0tMSVNBUknEhiBNSVJLTworS0xJU0nEhiBOQURBCitLTElTS0EgQU7EkEVMSUpBCitLTElTS0EgVk9KTworS0xJU1VSQSBNSUxPxaAKK0tMSVNVUkEgTU9NSVIKK0tMSVNVUkEgU1RBS0EKK0tMSVNVUknEhiDEkFVSTworS0xJVklOSkkgSk/FvUVGCitLTEpBScSGIExFUE9TQVZBCitLTEpBScSGIE1BQ0EKK0tMSkFJxIYgU0lNTworS0xKQUlOIERSQUdJTkpBCitLTEpBSU4gTEFaQVIKK0tMSkFKScSGIMSQT1LEkEUgUFJPRkVTT1IKK0tMSkFKScSGIMSQT1LEkEUKK0tMSkFKScSGIMSQT1LEkEUKK0tMSkFKScSGIEJPUklWT0pFCitLTEpBSknEhiBCT1JLQQorS0xKQUpJxIYgQlJBTktPCitLTEpBSknEhiBCUkFOS08KK0tMSkFKScSGIERBTklMTworS0xKQUpJxIYgRFJBR0FOCitLTEpBSknEhiBEUkFHQU4KK0tMSkFKScSGIERVxaBBTktBCitLTEpBSknEhiBJTElKQQorS0xKQUpJxIYgSUxJSkEKK0tMSkFKScSGIElWQU4KK0tMSkFKScSGIEpFTEVOQQorS0xKQUpJxIYgS09WSUxKS0EKK0tMSkFKScSGIExVS0EKK0tMSkFKScSGIE1BUkEKK0tMSkFKScSGIE1JTEFOCitLTEpBSknEhiBNSUxFVkEKK0tMSkFKScSGIE1JT0RSQUcKK0tMSkFKScSGIE5BREEKK0tMSkFKScSGIE9MSVZFUkEKK0tMSkFKScSGIFBFVEFSCitLTEpBSknEhi1SQURBS09WScSGIE1JTElDQQorS0xKQUpJxIYgU0VOS0EKK0tMSkFKScSGIFZBVEEKK0tMSkFKScSGIFZMQURPCitLTEpBSknEhiBWVUtJQ0EKK0tMSkFKScSGIFpEUkFWS08KK0tMSkFLScSGIFZVS0HFoElOCitLTEpFxIxBTklOIE1JUkpBTkEKK0tMSlXEjE9WU0tJIE1BSEFMSklOQQorS0xKVcSMT1ZTS0kgTklLT0xBCitLTEpVVEnEhiBKQVNNSU5BCitLTEpVVEnEhiBPU1RPSkEKK0tMT0JVxaBJQ0tJIFZMQURJU0xBVgorS0xPUEZFUiDEkE9SxJBFCitLTE9QS0EgS0xBUkEgRFIKK0tMT1BLQSBQSVJPxaBLQQorS01FxIwgTUFSVElOCitLTUXEjEtPIFNURVZBTgorS01FxIYgSkFOIERSCitLTUVaScSGIElWQU5LQQorS01FWknEhiBNSUxFCitLTUVaScSGIFZMQURBCitLTUlDSUtFVknEhiBaT1JBTgorS01JQ0lLT1ZJxIYgTUlMT0pLQQorS05FxaBBVVJFSyBNQVJJSkEKK0tORcW9RVYgxb1BUktPIERJUEwgSU5HCitLTkXFvUVWIMSQT1LEkEUKK0tORcW9RVYgxJBPUsSQRQorS05Fxb1FViDEkFVSQQorS05Fxb1FViBKRUxJQ0EKK0tORcW9RVYgTEpJTEpBTkEKK0tORcW9RVZJxIYgxb1BUktPCitLTkXFvUVWScSGIMW9RUxKS08KK0tORcW9RVZJxIYgxb1FTEpLTworS05Fxb1FVknEhiDFvUVMSktPCitLTkXFvUVWScSGIMW9SVZLQQorS05Fxb1FVknEhiDFvUlWS08KK0tORcW9RVZJxIYgxb1JVk9KSU4KK0tORcW9RVZJxIYgxb1JVk9KSU4KK0tORcW9RVZJxIYgxJBJTkUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkFVSQQorS05Fxb1FVknEhiDEkFVSQQorS05Fxb1FVknEhiDEkFVSTworS05Fxb1FVknEhiBBTEVLU0FOREFSCitLTkXFvUVWScSGIEFMRUtTQU5EQVIKK0tORcW9RVZJxIYgQUxFS1NBTkRBUgorS05Fxb1FVknEhiBBTEVLU0FORFJBCitLTkXFvUVWScSGIEFMRUtTQQorS05Fxb1FVknEhiBBTsSQRUxLTworS05Fxb1FVknEhiBBTklDQQorS05Fxb1FVknEhiBBTklDQQorS05Fxb1FVknEhiBBUktBRElKQQorS05Fxb1FVknEhiBCT8WgS08KK0tORcW9RVZJxIYgQk/FvU8KK0tORcW9RVZJxIYgQk9HREFOCitLTkXFvUVWScSGIEJPR0RBTgorS05Fxb1FVknEhiBCT0dEQU4KK0tORcW9RVZJxIYgQk9SSVNMQVYKK0tORcW9RVZJxIYgQk9SSVMKK0tORcW9RVZJxIYgQk9SS0EKK0tORcW9RVZJxIYgQk9TSUxKS0EKK0tORcW9RVZJxIYgQlJBTklNSVIKK0tORcW9RVZJxIYgQlJBTktPCitLTkXFvUVWScSGIEJSQU5LTworS05Fxb1FVknEhiBDVklKTworS05Fxb1FVknEhiBET0JSSVZPSkUKK0tORcW9RVZJxIYgRFJBR0FOCitLTkXFvUVWScSGIERSQUdBTgorS05Fxb1FVknEhiBEUkFHQU4KK0tORcW9RVZJxIYgRFJBR0FOCitLTkXFvUVWScSGIERSQUdJxaBBCitLTkXFvUVWScSGIERSQUdJQ0EKK0tORcW9RVZJxIYgRFJBR0lDQQorS05Fxb1FVknEhiBEUkFHT0xKVUIKK0tORcW9RVZJxIYgRFJBR09MSlVCCitLTkXFvUVWScSGIERVxaBBTktBCitLTkXFvUVWScSGIERVxaBBTgorS05Fxb1FVknEhiBEVcWgQU4KK0tORcW9RVZJxIYgRFXFoEFOCitLTkXFvUVWScSGIERVxaBBTgorS05Fxb1FVknEhiBHTEnFoEEKK0tORcW9RVZJxIYgR09SREFOQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJTElKQQorS05Fxb1FVknEhiBJVkFOS0EKK0tORcW9RVZJxIYgSVZBTgorS05Fxb1FVknEhiBJVkFOCitLTkXFvUVWScSGIEpFTEEKK0tORcW9RVZJxIYgSkVMRU5BCitLTkXFvUVWScSGIEpFTEVOQQorS05Fxb1FVknEhiBKRUxJU0FWS0EKK0tORcW9RVZJxIYgSk9TSVAKK0tORcW9RVZJxIYgSk9WQU5LQQorS05Fxb1FVknEhiBKT1ZBTktBCitLTkXFvUVWScSGIEpPVkFOCitLTkXFvUVWScSGIEpPVkFOCitLTkXFvUVWScSGIEpPVkFOCitLTkXFvUVWScSGIEpPVkFOCitLTkXFvUVWScSGIEpPVkFOCitLTkXFvUVWScSGIEpPVk8KK0tORcW9RVZJxIYgSlVHT1NMQVYKK0tORcW9RVZJxIYgS1JTVEFOCitLTkXFvUVWScSGIExBVElOS0EKK0tORcW9RVZJxIYgTEFaQVIKK0tORcW9RVZJxIYgTEFaQVIKK0tORcW9RVZJxIYgTEpJTEpBTkEKK0tORcW9RVZJxIYgTEpVQk9NSVIKK0tORcW9RVZJxIYgTEpVQk9NSVIKK0tORcW9RVZJxIYgTEpVQk9NSVIKK0tORcW9RVZJxIYgTUFORQorS05Fxb1FVknEhiBNQVJJQ0EKK0tORcW9RVZJxIYgTUFSSUNBCitLTkXFvUVWScSGIE1BUklKQQorS05Fxb1FVknEhiBNQVJJSkEKK0tORcW9RVZJxIYgTUFSSUpBCitLTkXFvUVWScSGIE1BUklKQQorS05Fxb1FVknEhiBNQVJLTworS05Fxb1FVknEhiBNScSGQQorS05Fxb1FVknEhiBNSUhBSkxPCitLTkXFvUVWScSGIE1JSEFKTE8KK0tORcW9RVZJxIYgTUlIQUpMTworS05Fxb1FVknEhiBNSUhBSkxPCitLTkXFvUVWScSGIE1JTEFESU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMQU4KK0tORcW9RVZJxIYgTUlMSUNBCitLTkXFvUVWScSGIE1JTElKQU5BCitLTkXFvUVWScSGIE1JTElWT0oKK0tORcW9RVZJxIYgTUlMS0EKK0tORcW9RVZJxIYgTUlMT8WgCitLTkXFvUVWScSGIE1JTE9NSVIKK0tORcW9RVZJxIYgTUlMT05KQQorS05Fxb1FVknEhiBNSUxPTkpBCitLTkXFvUVWScSGIE1JTE9SQUQKK0tORcW9RVZJxIYgTUlMVVRJTgorS05Fxb1FVknEhiBNSU9EUkFHCitLTkXFvUVWScSGIE1JT0RSQUcKK0tORcW9RVZJxIYgTUlPRFJBRworS05Fxb1FVknEhiBNSVJKQU5BCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUktPCitLTkXFvUVWScSGIE1JUk9TTEFWCitLTkXFvUVWScSGIE1JUk9TTEFWCitLTkXFvUVWScSGIE1MQURFTgorS05Fxb1FVknEhiBNT03EjElMTworS05Fxb1FVknEhiBNT01JUgorS05Fxb1FVknEhiBNT01JUgorS05Fxb1FVknEhiBNT01JUgorS05Fxb1FVknEhiBOQURBCitLTkXFvUVWScSGIE5BREXFvURBCitLTkXFvUVWScSGIE5FTkFECitLTkXFvUVWScSGIE5FVkVOQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIFBBTlRBCitLTkXFvUVWScSGIFBBVkxFCitLTkXFvUVWScSGIFBFUkEKK0tORcW9RVZJxIYgUEVUQVIKK0tORcW9RVZJxIYgUEVUQVIKK0tORcW9RVZJxIYgUEVUQVIKK0tORcW9RVZJxIYgUEVUQVIKK0tORcW9RVZJxIYgUEVUS08KK0tORcW9RVZJxIYgUkFEQQorS05Fxb1FVknEhiBSQURFCitLTkXFvUVWScSGIFJBRElWT0pFCitLTkXFvUVWScSGIFJBRElWT0pFCitLTkXFvUVWScSGIFJBRE1JTEEKK0tORcW9RVZJxIYgUkFET01JUgorS05Fxb1FVknEhiBSQURPU0xBVgorS05Fxb1FVknEhiBSQUpLTworS05Fxb1FVknEhiBSQU5LTworS05Fxb1FVknEhiBSSVNUTworS05Fxb1FVknEhiBST1pBCitLTkXFvUVWScSGIFNBVk8KK0tORcW9RVZJxIYgU0lOScWgQQorS05Fxb1FVknEhiBTTEFWS08KK0tORcW9RVZJxIYgU0xBVktPCitLTkXFvUVWScSGIFNMQVZPTEpVQgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTTE9CT0RBTgorS05Fxb1FVknEhiBTUEFTRU5JSkEKK0tORcW9RVZJxIYgU1JCSVNMQVZBCitLTkXFvUVWScSGIFNUQU5BCitLTkXFvUVWScSGIFNUQU5JxaBBCitLTkXFvUVWScSGIFNUQU5JTUlSCitLTkXFvUVWScSGIFNUQU5LTworS05Fxb1FVknEhiBTVEVWQU4KK0tORcW9RVZJxIYgU1RFVk8KK0tORcW9RVZJxIYgU1RFVk8KK0tORcW9RVZJxIYgU1RJUEUKK0tORcW9RVZJxIYgU1RPSkFOCitLTkXFvUVWScSGIFNWRVRLTworS05Fxb1FVknEhiBTVkVUTworS05Fxb1FVknEhiBURU9ET1IKK0tORcW9RVZJxIYgVE9NSVNMQVYKK0tORcW9RVZJxIYgVVJPxaAKK0tORcW9RVZJxIYgVkFTSUxJSkEKK0tORcW9RVZJxIYgVkVSQQorS05Fxb1FVknEhiBWRVJBCitLTkXFvUVWScSGIFZMQURJTUlSCitLTkXFvUVWScSGIFZMQURJTUlSCitLTkXFvUVWScSGIFZMQVNUSU1JUgorS05Fxb1FVknEhiBWTEFTVElNSVIKK0tORcW9RVZJxIYgVk9KSU4KK0tORcW9RVZJxIYgVlVLT1NBVgorS05Fxb1FVknEhiBaRFJBVktPCitLTkXFvUVWScSGIFpMQVRBTgorS05Fxb1FVknEhiBaT1JBTgorS05Fxb1FVknEhiBaT1JBTgorS05Fxb1FVknEhiBaT1JBCitLTkXFvUnEhiBPTEdBCitLTkXFvUnEhiBSQURPTUlSCitLTkVCTCBGUkFOSkEKK0tORUJMIE5JS09MQQorS05FR0nEhiBNSVJPU0xBVgorS05FUiBERVpJREVSCitLTkVTRUxBQyBCUkFOSVNMQVZBCitLTkVaIFpMQVRLTworS05FWkkgSVZBTgorS05FWkkgSk/FvUVGCitLTkVaSSBTTE9CT0RBTgorS05KRcWgS08gxb1Vxb1BTkEKK0tOSkXFoEtPIEFMQkVSVAorS0/EjEFSIExBU0xPCitLT8SMQVIgU1RFRkFOSUpBCitLT8SMQVIgVElIT01JUgorS0/EjEVUT1YgVEFUSkFOQQorS0/EjEkgRVRFTEtBCitLT8SMSSBJxaBUVkFOCitLT8SMSSBWTEFESU1JUgorS0/EjEnFoCDEkFVSQQorS0/EjEnFoCBBTkRSSUpBCitLT8SMScWgIEFORFJJSkEKK0tPxIxJxaAgRVJORVNUCitLT8SMScWgIEdFUkdFTEogRElQTCBJTkcKK0tPxIxJxaAgSEVMRU5BCitLT8SMScWgIEnFoFRWQU4KK0tPxIxJxaAgSkFLT1YKK0tPxIxJxaAgSkFOS08KK0tPxIxJxaAgSkFOT8WgCitLT8SMScWgIEtBUkxPCitLT8SMScWgIE1BUklKQQorS0/EjEnFoCBNSUhBSkxPCitLT8SMScWgIE5JS09MQSBQUk9GRVNPUgorS0/EjEnFoCBSQURFCitLT8SMScWgIFZMQURJTUlSCitLT8SMScWgIFZMQURJTUlSCitLT8SMScSGIERSQUdPCitLT8SMScSGIE1BTkUKK0tPxIxJxIYgTUlMT1JBRAorS0/EjEnEhiBTVEFOSVNMQVYKK0tPxIxPQkEgUkFESVNMQVYKK0tPxIxPU0tJIFBFVEFSCitLT8SMT1ZJxIYgQUxFS1NBTkRBUgorS0/EjE9WScSGIE1JTEVUQQorS0/FoMSGQUsgU0FWS0EKK0tPxaBBIFRJQk9SIERJUEwgSU5HCitLT8WgQU5JTiBNSUxPTUlSCitLT8WgQU5KSSBGRVJFTkMKK0tPxaBBUknEhiBESU1JVFJJSkUKK0tPxaBJxIYgTEpVQklDQQorS0/FoEnEhiBNSVRBCitLT8WgScSGIFNURVZBTgorS0/FoEnEhiBTVEVWTworS0/FoEnEhiBWQVNJTElKRQorS0/FoElDS0kgTEVBCitLT8WgSUNLSSBNQVJJSkEKK0tPxaBOScSMQVIgTUlMQU4KK0tPxaBOScSMQVIgU09GSUpBCitLT8WgT0NLSSBNQVJJSkEKK0tPxaBVVEnEhiDEkFVSTworS0/FoFVUScSGIMSQVVJPCitLT8WgVVRJxIYgQk/FvUlEQVIKK0tPxaBVVEnEhiBCUkFOS08KK0tPxaBVVEnEhiBESU1JVFJJSkUKK0tPxaBVVEnEhiBEVcWgQU4KK0tPxaBVVEnEhiBKT1ZBTgorS0/FoFVUScSGIEtPU1RBCitLT8WgVVRJxIYgTUFORQorS0/FoFVUScSGIE1JTE/FoAorS0/FoFVUScSGIE5JS09MQQorS0/EhkFMTyBSQURPSklDQQorS0/FvVVMIEdPSktPCitLT8W9VUwgR09KS08KK0tPxb1VTCBSQUpLTworS0/FvVVWQVJBIEdBVlJBCitLT0JBxaAgSk9TSVAKK0tPQkHFoCBLQVRJQ0EKK0tPQkHFoCBWVUtBxaBJTgorS09CQUwgxJBVUkEKK0tPQkFMIEJPxb1JREFSCitLT0JBTCBJUklTCitLT0JBTCBJVkFOCitLT0JJTEFSScSGIMSQVVLEkElDQQorS09CSUxBUk9WIEFOR0VMSU5BCitLT0JJTEFST1YgTEpVQk9NSVIKK0tPQklMQVJPViBNSUxBTktBCitLT0JJTEFST1YgTUlMT8WgCitLT0JJTEFST1YgTUlST1NMQVYKK0tPQklMQVJPViBORUdPVkFOCitLT0JJTEFST1YgTkVTVE9SCitLT0JJTEFST1YgU0lNQQorS09CSUxBUk9WIFRPxaBBCitLT0JJTEFST1YgVkFTQQorS09CSUxKU0tJIMSQT1LEkEUKK0tPQklMSlNLSSBET0JSSUxBCitLT0JJTEpTS0kgRFJBR09NSVIKK0tPQklMSlNLSSBEVcWgQU4KK0tPQklMSlNLSSBMQVpBUgorS09CSUxKU0tJIE1JTE/FoAorS09CSUxKU0tJIE1JUkpBTkEKK0tPQklMSlNLSSBNTEFERU4KK0tPQklMSlNLSSBOSUtPTEEKK0tPQklMSlNLSSBTVEVWQU4KK0tPQklMSlNLSSBWSURBCitLT0JJTFNLSSBNQVJJSkEKK0tPQlJFSEVMIExBSk/FoAorS09DQVAgTUFSSUpBCitLT0NBUCBNSVJBCitLT0NBUCBWTEFESU1JUgorS09DSSBGRVJFTkMKK0tPQ0kgUkXFvUUKK0tPQ0nEhiDFvUlLSUNBCitLT0NJxIYgQUxFS1NBTkRBUgorS09DScSGIEFOSUNBCitLT0NJxIYgRFXFoEFOS0EKK0tPQ0nEhiBKQVNOQQorS09DScSGIExKSUxKQU5BCitLT0NJxIYgTUlMSUpBTkEKK0tPQ0nEhiBSQURNSUxBCitLT0NJxIYgU0lOScWgQQorS09DScSGIFNMQcSQQU5BCitLT0NJxIYgU0xBVktPCitLT0NJxIYgVE9NSVNMQVYKK0tPQ0nEhiBWQVNJTElKRQorS09DScSGIFZFTElOS0EKK0tPQ0nEhiBaVkVaREFOCitLT0NJSkFOxIxJxIYgTUlSQQorS09DS0FSIEJPUklTTEFWCitLT0NLQVIgQk9SSVNMQVYKK0tPQ0tBUiBMSlVCT01JUgorS09DS0FSIFZMQURJTUlSCitLT0NLQVJFVknEhiBCUkFOSVNMQVYKK0tPQ0tBUkVWScSGIEpPVkFOCitLT0NLQVJFVknEhiBNSUxJQ0EKK0tPQ08gxaBBTkRPUgorS09DTyBFUsW9RUJFVAorS09DT0xKRVZBQyBTVEFOSVNMQVYKK0tPRMW9TyBTQcWgQQorS09Exb1PIFpPUkFOCitLT0RJxIYgRElNSVRSSUpFCitLT0RSQU5PViBSQURPVkFOCitLT0RSQU5PViBTUkVET0pFCitLT0RSSU4gTEpVRE1JTEEKK0tPR09KIEVEVUFSRAorS09HT0ogRU1BCitLT0ggSk/FvUVGCitLT0ggU0FWRVRBCitLT0hBTkVDIMWgQU5ET1IKK0tPSEFORUMgRlJBTkpBCitLT0hBTkVDIEdBxaBQQVIKK0tPSEFORUMgSk9WQU4KK0tPSEFORUMgTUFSSUpBCitLT0hBTkVDIFBBTAorS09IVVQgxJBVUkEKK0tPSFVUIFNUT0pBCitLT0rEjEnEhiBBTsSQRUxLTworS09KxIxJxIYgRFJBR0lDQQorS09KxIxJxIYgSVZBTkEKK0tPSsSMScSGIFBSRURSQUcKK0tPSsSMScSGIFNSRURPSkUgRFIKK0tPSsSMSU4gRMW9RU1JTEpBCitLT0rEjElOIE1JTEVWQQorS09KQURJTk9WScSGIMW9SVZLTworS09KQURJTk9WScSGIEJPxaBLTworS09KQURJTk9WScSGIEJPUk8KK0tPSkFESU5PVknEhiBHT1JEQU5BCitLT0pBRElOT1ZJxIYgS0FUQQorS09KQURJTk9WScSGIE1JUkEKK0tPSkFESU5PVknEhiBSQURFCitLT0pBRElOT1ZJxIYgU1RPSkFOCitLT0pBRElOT1ZJxIYgVkxBRElNSVIKK0tPSkRJxIYgTUlSSkFOQQorS09KREnEhiBNTEFERU4KK0tPSkRJxIYgUEVUQVIKK0tPSknEjEnEhiBOT1ZLQQorS09KScSMScSGIFRPTUlTTEFWCitLT0pJxIxJTiBNSUxBTgorS09KScSGIMSMRURPTUlSCitLT0pJxIYgxb1JVkFOCitLT0pJxIYgxJBVUkHEkAorS09KScSGIEFMRUtTQU5EQVIKK0tPSknEhiBBTEVLU0FOREFSCitLT0pJxIYgQUxFS1NBTkRBUgorS09KScSGIEFSU0VOCitLT0pJxIYgQk/FoEtPCitLT0pJxIYtQk/FvUFOScSGIFNPRklKQQorS09KScSGIEJPUklWT0oKK0tPSknEhiBCUkFOSVNMQVYKK0tPSknEhiBEQU5JQ0EKK0tPSknEhiBEUkFHQU4KK0tPSknEhiBEUkFHQU4KK0tPSknEhiBEUkFHQU4KK0tPSknEhiBEUkFHQU4KK0tPSknEhiBEUkFHSU5KQQorS09KScSGIERVxaBBTgorS09KScSGIEVSxb1FQkVUCitLT0pJxIYgR09SQU4KK0tPSknEhiBHT1JBTgorS09KScSGIEdPUkFOCitLT0pJxIYgSFJJU1RJRk9SCitLT0pJxIYgSVZBTgorS09KScSGIElWQU4KK0tPSknEhiBJVkFOCitLT0pJxIYgSk9WQU5LQQorS09KScSGIEpPVkFOS0EKK0tPSknEhiBKT1ZPCitLT0pJxIYgTEVQT1NBVkEKK0tPSknEhiBMSlVCSUNBCitLT0pJxIYgTEpVQk9EUkFHCitLT0pJxIYgTFVLQQorS09KScSGIE1JSEFJTE8KK0tPSknEhiBNSUxBTgorS09KScSGIE1JTEFOCitLT0pJxIYgTUlMQU4KK0tPSknEhiBNSUxBTgorS09KScSGIE1JTEVOQQorS09KScSGIE1JTEVOQQorS09KScSGIE1JTEVOS08KK0tPSknEhiBNSUxFTktPCitLT0pJxIYgTUlMRU5LTworS09KScSGIE1JTE9WSU5BCitLT0pJxIYgTUlPRFJBRworS09KScSGIE1JUkpBTkEKK0tPSknEhiBNT03EjElMTworS09KScSGIE5FxJBPCitLT0pJxIYgTkVCT0rFoEEKK0tPSknEhiBORUJPSsWgQQorS09KScSGIE5FREVMSktPCitLT0pJxIYgT0xHSUNBCitLT0pJxIYgUEVUQVIKK0tPSknEhiBSQURJVk9KCitLT0pJxIYgUlXFvUlDQQorS09KScSGIFJVxb1JQ0EKK0tPSknEhiBTQVZPCitLT0pJxIYgU0lNRU9OCitLT0pJxIYgU0lOScWgQQorS09KScSGIFNQQVNFTklKQQorS09KScSGIFNURVZBTgorS09KScSGIFNURVZBTgorS09KScSGIFNURVZBTgorS09KScSGIFNWRVRJU0xBVgorS09KScSGIFVHTEpFxaBBCitLT0pJxIYgVkFTQQorS09KScSGIFZFTElNSVIKK0tPSknEhiBWSU5LQQorS09KScSGIFZMQURJU0xBVgorS09KT1ZJxIYgxb1BUktPCitLT0pPVknEhiBNSUxJTktPCitLT0tBSSDFoEFORE9SCitLT0tBSSDFoEFORE9SCitLT0tBSSDFoEFORE9SCitLT0tBSSBBTElTQQorS09LQUkgRUxFTkEKK0tPS0FJIEZFUkVOQworS09LQUkgRkVSRU5DCitLT0tBSSBGRVJFTkMKK0tPS0FJIExBRElTTEFWCitLT0tBSSBMQVNMTworS09LQUkgTUFHRE9MTkEKK0tPS0FJIE1JSEFKTE8KK0tPS0FJIFRJQk9SCitLT0tBTiBJVkFOCitLT0tBTk9WIE1JTEVUQQorS09LQU5PVknEhiBEVcWgQU4KK0tPS0FOT1ZJxIYgS09WSUxKS0EKK0tPS0FSIFZFUklDQQorS09LQVIgVklMTUEKK0tPS0VMSiBUVUdPTUlSCitLT0tFWkEgxb1BUktPCitLT0tFWkEgRFXFoEFOCitLT0tFWkEgTUlMRU5BCitLT0tJxIYgSk9WQU4KK0tPS0nEhiBNSVJPU0xBVgorS09LSU5PVknEhiBTTEFWS08KK0tPS0lSIExKVUJPCitLT0tPUlXFoCBPU1RPSkEKK0tPS09UIFJBREUKK0tPS09UIFNNSUxKQQorS09LT1QgU1JFVEEKK0tPS09UIFNWRVRMQU5BCitLT0tPVCBWSUNPCitLT0tPVE9WScSGIMW9SVZLTworS09LT1RPVknEhiBCT8W9SURBUgorS09LT1RPVknEhiBHT0pLTworS09LT1RPVknEhiBJTElKQQorS09LT1RPVknEhiBJVklDQQorS09LT1RPVknEhiBKRUxJU0FWRVRBCitLT0tPVE9WScSGIEtBVElDQQorS09LT1RPVknEhiBQRVRBUgorS09LT1RPVknEhiBTTkXFvUFOQQorS09LT1RPVknEhiBWRVNFTElOCitLT0tPVknEhiBEUkFHQU4KK0tPS09WScSGIEdPUkFOCitLT0zEkEVSQUogxJBPTgorS09MQcSMQVJJxIYgVkVMSUJPUgorS09MQcWgSU5BQyBMSlVCT01JUgorS09MQUsgRFXFoEFOCitLT0xBSyBKRUxFTkEKK0tPTEFLIE1JTEFOCitLT0xBS09WScSGIEFMTUFaCitLT0xBS09WScSGIEpVUkUKK0tPTEFLT1ZJxIYgTUlMRQorS09MQUtPVknEhiBaRFJBVktPCitLT0xBS1XFoEnEhiBJVklDQQorS09MQUtWScSGIExKSUxKQU5BCitLT0xBTk8gQU5UT04KK0tPTEFOTyBEUkFHT1NMQVYKK0tPTEFOTyBJVkFOCitLT0xBTk8gSlVMS0EKK0tPTEFSIEFOQQorS09MQVIgQU5BCitLT0xBUiBBTkRSSUpBCitLT0xBUiBBTlRBTAorS09MQVIgREFSS08KK0tPTEFSIElCT0xKS0EKK0tPTEFSIElWQU4KK0tPTEFSIEpPU0lQCitLT0xBUiBKT1NJUAorS09MQVIgSlVMSUpBTkEKK0tPTEFSIExBSk/FoAorS09MQVIgTEFTTE8KK0tPTEFSIExPWklOS0EKK0tPTEFSIE1BVElKQQorS09MQVIgTUlMSUNBCitLT0xBUiBNSVJLTworS09MQVIgUEFWTEUKK0tPTEFSIFBFVEFSCitLT0xBUsWgIMWgVEVGQU4KK0tPTEFSRVZJxIYgTEpVQklDQQorS09MQVJJxIYgQUxFS1NBTkRSQQorS09MQVJJxIYgQlJBTktPCitLT0xBUknEhiBCUklHSVRBCitLT0xBUknEhiBET0JSSUxBCitLT0xBUknEhiBEUkFHSUNBCitLT0xBUknEhiBEUkFHT0xKVUIKK0tPTEFSScSGIERVxaBBTgorS09MQVJJxIYgRklMSVAKK0tPTEFSScSGIElEQQorS09MQVJJxIYgS09TVEEKK0tPTEFSScSGIE1BUklKQQorS09MQVJJxIYgTUFSSUpBCitLT0xBUknEhiBNSUxBTgorS09MQVJJxIYgTUlMQU4KK0tPTEFSScSGIE1JTElWT0oKK0tPTEFSScSGIE1MQURFTgorS09MQVJJxIYgTkFEQQorS09MQVJJxIYgTkVNQU5KQQorS09MQVJJxIYgTklLT0xBCitLT0xBUknEhiBSQURPVkFOCitLT0xBUknEhiBTTEFWS08KK0tPTEFSScSGIFNMT0JPREFOCitLT0xBUknEhiBTTE9CT0RBTgorS09MQVJJxIYgU05Fxb1BTkEKK0tPTEFSScSGIFNURVZBTgorS09MQVJJxIYgVE9NSVNMQVYKK0tPTEFSScSGIFZPSkEKK0tPTEFSScSGIFpPUkFOCitLT0xBUknEhiBaVk9OS08KK0tPTEFST1Ygxb1JVkEKK0tPTEFST1YgxJBPUsSQRQorS09MQVJPViBBTEVLU0FOREFSCitLT0xBUk9WIERJTUlUUklKRQorS09MQVJPViBEUkFHT1NMQVYKK0tPTEFST1YgRFJBR09TTEFWCitLT0xBUk9WIEdPSktPCitLT0xBUk9WIEpPVkFOCitLT0xBUk9WIEpPVkFOCitLT0xBUk9WIEpVTEtBCitLT0xBUk9WIEtBVEUKK0tPTEFST1YgTEpJTEpBTkEKK0tPTEFST1YgTUFSSUNBCitLT0xBUk9WIE1JTEFOS0EKK0tPTEFST1YgTUlMSVZPSgorS09MQVJPViBNSUxPxaAKK0tPTEFST1YgTU9NSVIKK0tPTEFST1YgTkFEQSBEUiBMRUtBUgorS09MQVJPViBORUJPSsWgQQorS09MQVJPViBQQVZMRQorS09MQVJPViBQRVRBUgorS09MQVJPViBSQURPSktPCitLT0xBUk9WLVJBRE9WQU5PVknEhiBNQVJJTkEKK0tPTEFST1YgU0FWQQorS09MQVJPViBUT0RPUgorS09MQVJPViBUT01JU0xBVgorS09MQVJPViBWT0pJU0xBVgorS09MQVJPVknEhiDFvUlWS08KK0tPTEFST1ZJxIYgSkVMRU5BCitLT0xBUk9WScSGIEtBVElDQQorS09MQVJPVknEhiBLT1ZJTktBCitLT0xBUk9WScSGIExVS0EgRFIKK0tPTEFST1ZJxIYgTUlIQUpMTworS09MQVJPVknEhiBNSUxJQ0EKK0tPTEFST1ZJxIYgTkVOQUQKK0tPTEFSU0tJIMSQT1LEkEUKK0tPTEFSU0tJIEFMRUtTQU5EQVIKK0tPTEFSU0tJIEFOSUNBCitLT0xBUlNLSSBBUlBBRAorS09MQVJTS0kgQk9TSUxKS0EKK0tPTEFSU0tJIEJSQU5JU0xBVgorS09MQVJTS0kgREFOSUNBCitLT0xBUlNLSSBEVcWgQU5LQSBESVBMIE9FQworS09MQVJTS0kgSk9WQU4KK0tPTEFSU0tJIEpPVkFOCitLT0xBUlNLSSBLQVRJQ0EKK0tPTEFSU0tJIExBU0xPCitLT0xBUlNLSSBMQVpBUgorS09MQVJTS0kgTUlMQURJTgorS09MQVJTS0kgTUlMQU4KK0tPTEFSU0tJIE1JTEVOS08gVkVURVJJTkFSCitLT0xBUlNLSSBNSUxFTktPCitLT0xBUlNLSSBNSUxJQ0EKK0tPTEFSU0tJIE1JVEFSCitLT0xBUlNLSSBNTEFERU4KK0tPTEFSU0tJIE1MQURFTgorS09MQVJTS0kgTkFEQQorS09MQVJTS0kgTklLT0xBCitLT0xBUlNLSSBSQURNSUxBCitLT0xBUlNLSSBSQURPU0xBVgorS09MQVJTS0kgUkFET1ZBTgorS09MQVJTS0kgUkFET1ZBTgorS09MQVJTS0kgU0xBVklDQQorS09MQVJTS0kgU1RFVkFOCitLT0xBUlNLSSBTVEVWQU4KK0tPTEFSU0tJIFRPRE9SCitLT0xBUlNLSSBWRVJBCitLT0xBUlNLSSBaRFJBVktPCitLT0xCQVMgREFOSUpFTAorS09MQkFTIEpBTktPCitLT0xCQVMgSk9BS0lNCitLT0xCQVMgTUVMQU5JSkEKK0tPTEJBUyBNSUxFVkEKK0tPTEJBUyBWTEFEQQorS09MRMW9ScSGIEJSQU5LQQorS09MRMW9ScSGIEJSQU5LTworS09MRMW9SU4gTUlSS08KK0tPTETFvUlOIFZFU0VMSU4KK0tPTERBTiBNSUxFTktPCitLT0xFxaBLQSBFRFVBUkQKK0tPTEVEQVIgQU5EUklKQQorS09MRURJTiDEkE9SxJBFCitLT0xFRElOIEZPVElKRQorS09MRURJTiBNSUxPxaAKK0tPTEVESU4gTUlSSkFOQQorS09MRURJTiBQRVRBUgorS09MRURJTiBSQURPU0xBVgorS09MRURJTiBSQURPVkFOCitLT0xFRElOIFJBRE9WQU4KK0tPTEVESU4gU1RFVkFOCitLT0xFRElOIFZFTElNSVIKK0tPTEVESU4gVkVSQQorS09MRVIgQU5UQUwKK0tPTEVSIExBSk/FoAorS09MRVNBUiDEkFVSQQorS09MRVNBUiBBTklDQQorS09MRVNBUiBGRURPUgorS09MRVNBUiBGRVJFTkMKK0tPTEVTQVIgR0FWUkEKK0tPTEVTQVIgSkFOT8WgCitLT0xFU0FSIEpPVkFOCitLT0xFU0FSIEpPVkFOCitLT0xFU0FSIEpVTElKQU4KK0tPTEVTQVIgSlVMSUpBTgorS09MRVNBUiBLQVRJQ0EKK0tPTEVTQVIgS1NFTklKQQorS09MRVNBUiBNSUhBSkxPCitLT0xFU0FSIFBFVEFSIERSCitLT0xFU0FSIFBFVEFSCitLT0xFU0FSIFNJTUVPTgorS09MRVNBUiBWRVJBCitLT0xFU0FSIFZMQURJTUlSCitLT0xFU0FSIFpPUklDQQorS09MRVNBUknEhiBWSU5LTworS09MRVYgVE9ET1JLQQorS09MScSGIEFJxaBBCitLT0xJTiBKT8W9RUYgTk9WSU5BUgorS09MSkFExb1JTlNLSSBKT1ZBTgorS09MSkFExb1JTlNLSSBTVEVGQU5JSkEKK0tPTEpBSkEgQkxBR09KRQorS09MSkFKQSBEUkFHQU4KK0tPTEpBSkEgR09SQU4KK0tPTEpBTklOIFBFVEFSCitLT0xNQU4gSk/FvUVGCitLT0xPxIxBSSBKT1NJUAorS09MT8WgTkpBSSBNSVJPTgorS09MT8WgTkpBSkkgSkFOS08KK0tPTE/FoE5KQUpJIFZMQURJTUlSCitLT0xPUEnEhiBQRVRBUgorS09MT1BJxIYgUlXFvUlDQQorS09MT1ZJxIYgU1RFVkFOCitLT0xUSU4gQlJBTktPCitLT0xVTkTFvUnEhiDFvUlWS0EKK0tPTFVORMW9ScSGIMSQVVJBCitLT0xVTkTFvUnEhiBBTktBCitLT0xVTkTFvUnEhiBQRVJJQ0EKK0tPTFVORMW9ScSGIFNMQVZLTworS09MVU5Exb1JxIYgU0xBVktPCitLT0xVTkTFvUlKQSBBTsSQRUxLQQorS09MVU5Exb1JSkEgQk9SSVNMQVYKK0tPTFVORMW9SUpBIERBVk9SS0EKK0tPTFVORMW9SUpBIERSQUdBTgorS09MVU5Exb1JSkEgTEFaQVIKK0tPTFVORMW9SUpBIExKVUJPTUlSCitLT0xVTkTFvUlKQSBNSVJLTworS09MVU5Exb1JSkEgTkFEQQorS09MVU5Exb1JSkEgTklLT0xBCitLT0xVTkTFvUlKQSBaT1JLQQorS09MVVRBQyBNQVRJSkEKK0tPTcWgScSGIEpPVkFOCitLT03FoE8gTklLT0xBCitLT01BRCBBTkEKK0tPTUFEIEdPSktPCitLT01BRCBSQVRPTUlSCitLT01BRCBUT01JU0xBVgorS09NQURBTk9WScSGIE1PTcSMSUxPCitLT01BREFOT1ZJxIYgTU9NSVIKK0tPTUFEQVJJxIYgTUlMT8WgCitLT01BRElOQSBNQU5FCitLT01BRElOQSBWRUxJU0xBVgorS09NQURJTkEgVlVKQURJTgorS09NQURJTknEhiBNSUxPUkFECitLT01BRElOT1ZJxIYgRFXFoEFOCitLT01BRElOT1ZJxIYgTUlSQQorS09NQURJTk9WScSGIFJBRE9TTEFWCitLT01BTiBCT1NJTEpLQQorS09NQU5PViBNQVJJSkEKK0tPTUFSIEdPSktPIERJUEwgSU5HCitLT01BUiBSQURJVk9KRQorS09NQVIgU0xBVktBCitLT01BUiBTTE9CT0RBTgorS09NQVIgWk9SS0EKK0tPTUFSxIxFVknEhiBBTEVLU0FOREFSCitLT01BUsSMRVZJxIYgScWgVFZBTgorS09NQVLEjEVWScSGIE1JTEVOQQorS09NQVLEjEVWScSGIE1JTElOS08gRFIKK0tPTUFSxIxFVknEhiBNSVJPU0xBVgorS09NQVLEjEVWScSGIFZMQURJTUlSCitLT01BUklDQSBNQVJLTworS09NQVJJQ0EgTk9WS08KK0tPTUFSSUNBIFJBRE1JTEEKK0tPTUFST01JIMSQT1LEkEUKK0tPTUFST01JIEFOxJBFTEtBCitLT01BUk9NSSBCT1JCQUxBCitLT01BUk9NSSBCT1JKQU5LQQorS09NQVJPTUkgQk9SSkFOS0EKK0tPTUFST01JIElSTUEKK0tPTUFST01JIEtMQVJBCitLT01BUk9NSSBNQUdET0xOQQorS09NQVJPTUkgTUFHRE9MTkEKK0tPTUFST01JIE1BUklKQQorS09NQVJPTUkgUEVUQVIKK0tPTUFST01JIFpPTFRBTgorS09NQVJPViBBTEVLU0FOREFSIERJUEwgSU5HCitLT01BUk9WIEFMRUtTQU5EQVIKK0tPTUFST1YgQlJBTktBCitLT01BUk9WIERSQUdJQ0EKK0tPTUFST1YgRFJBR09NSVIKK0tPTUFUSU5BIERSQUdBTgorS09NQVRJTk9WScSGIE1JSEFKTE8KK0tPTUFUT1ZJxIYgTUlMQU4KK0tPTUFUT1ZJxIYgVkVMSU1JUgorS09NQVpFQyBEUkFHT01JUgorS09NQVpFQyBQRVRBUgorS09NQkVSSSBBVkRVxaAKK0tPTUJJTEogVkVSQQorS09NRU5EQSBBTkRSSUpBCitLT01JTktPIExKVUJJQ0EKK0tPTUxFTknEhiDEkE9SxJBFCitLT01MRU5PViDFvUlWQU4KK0tPTUxFTk9WIMSQT1LEkEUKK0tPTUxFTk9WIEpPVkFOCitLT01MRU5PVknEhiBNQVJJSkEKK0tPTUxFTk9WScSGIE1JTEFOCitLT01MRU5PVknEhiBNSUxFCitLT01MRU5PVknEhiBWRUxKS08KK0tPTUxFTlNLSSDFvUlWQU4KK0tPTUxFTlNLSS1ERUxJxIYgVlVLT1NBVkEgRFIKK0tPTUxFTlNLSSBaT1JBTgorS09NTEpFTk9WScSGIEFMRUtTQU5EUkEKK0tPTUxKRU5PVknEhiBCT8WgS08KK0tPTUxKRU5PVknEhiBNSUxBTgorS09NTEpFTk9WScSGIE1PTUlSCitLT01MSkVOT1ZJxIYgU1RFVkFOCitLT01MSkVOT1ZJxIYgVkxBRE8KK0tPTUxVxaBBTiBCT8W9QQorS09NTFXFoEtJIElWQU5BIE1SCitLT01ORU5JxIYgSVZBTktBCitLT01ORU5PViDFoEFSTE9UQQorS09NTkVOT1YgTUlMT1JBRAorS09NTkVOT1YgTklLT0xBCitLT01ORU5PViBTQU5EUkEKK0tPTU5FTk9WIFNUQU5JU0xBVgorS09NTkVOT1YgVkVTRUxJTkEKK0tPTU5FTk9WIFZMQURJTUlSIERSCitLT01ORU5PVknEhiDFvUlWQU4KK0tPTU5FTk9WScSGIEJSQU5LTworS09NTkVOT1ZJxIYgREVKQU4KK0tPTU5FTk9WScSGIEpFTEVOQQorS09NTkVOT1ZJxIYgTEpVQk9KRQorS09NTkVOT1ZJxIYgTUlMQU4KK0tPTU5FTk9WScSGIFJBRE9TTEFWCitLT01ORU5PVknEhiBTVEFOS08KK0tPTU5FTk9WScSGIFNUT0pBTgorS09NTkVOT1ZJxIYgVkVSSUNBCitLT01PU0FSIEJSQU5LTworS09NT1NBUiBSQUpLTworS09NT1pFQyDEkE9SxJBFCitLT01PWkVDIExBWkFSCitLT04gU0xPQk9EQU5LQQorS09OIFNURVZBTgorS09OIFRPTUHFvQorS09OxIxBUiBBTkRSSUpBCitLT07EjEFSIEJPU0lMSktBCitLT07EjEFSIEpPVk8KK0tPTsSMQVIgTEFESVNMQVYKK0tPTsSMQVIgTUlSQQorS09OxIxBUiBNSVRBUgorS09OxIxBUiBOSUtPTEEKK0tPTsSMQVIgTklLT0xBCitLT07EjEFSIFJBTktPCitLT07EjEFSIFNMQVZLTworS09OxIxBUiBaT1JBCitLT07EjEFSIFpPUkEKK0tPTsSMQVJFVknEhiBEQU5JQ0EKK0tPTsSMQVJFVknEhiBJTElKQQorS09OxIxFSyBST1pBTElKQQorS09OQUtPViBORURFTEpLTworS09OQyDFoEFORE9SCitLT05DIEnFoFRWQU4KK0tPTkMgSUxPTkEKK0tPTkMgTEpJTEpBTkEKK0tPTkMgWk9SQU5LQQorS09OREFOIE1BUkdBUkVUQQorS09OREnEhiBBTkEKK0tPTkRJxIYgQU5LQQorS09OREnEhiBCUkFOS08KK0tPTkRJxIYgRFJBR0FOCitLT05EScSGIERSQUdJQ0EKK0tPTkRJxIYgRFJBR09MSlVCCitLT05EScSGIERVxaBBTktBCitLT05EScSGIEpPVkFOCitLT05EScSGIExKVUJJQ0EKK0tPTkRJxIYgTUlMRU5LTworS09OREnEhiBNSVJBCitLT05EScSGIE5FQk9KxaBBCitLT05EScSGIE5FTUFOSkEKK0tPTkRJxIYgTklLT0xBCitLT05EScSGIE5JS09MQQorS09OREnEhiBSQURNSUxBCitLT05EScSGIFJBRE9KS0EKK0tPTkRJxIYgUkFKS08KK0tPTkRJxIYgU0FORFJBCitLT05EScSGIFRSSVZPCitLT05EScSGIFpEUkFWS08KK0tPTkRJxIYgWk9SS0EKK0tPTkRPSkFOSSDEkE9SxJBFCitLT05EUkFLIFNUT0pBTgorS09ORFJBVEpFViDFoFRFRkFOSUpBCitLT05FxIxOSSBNQVJJSkEKK0tPTkVDS0kgWkxBVEtPCitLT05FQ0tJIFpMQVRLTworS09ORU4gUk9CRVJUCitLT05FTiBST0JFUlQKK0tPTkVTS0EgTEpJTEpBTkEKK0tPTkdPIFZFUkEKK0tPTkpBVEnEhiDFoElNTworS09OSkVWScSGIMW9SVZBIERJUEwgUFJBVk5JSworS09OSkVWScSGIEFOQQorS09OSkVWScSGIERBTklMTworS09OSkVWScSGIERPQlJJVk9KCitLT05KRVZJxIYgRFJBR09NSVIKK0tPTkpFVknEhiBHUk9aREFOQQorS09OSkVWScSGIElWQU5LQQorS09OSkVWScSGIE1JTEVWQQorS09OSkVWScSGIE1JTElWT0oKK0tPTkpFVknEhiBNTEHEkEVOCitLT05KRVZJxIYgTUxBREVOCitLT05KRVZJxIYgTkVOQUQKK0tPTkpFVknEhiBQUkVEUkFHCitLT05KRVZJxIYgUFJFRFJBRworS09OSkVWScSGIFBSRURSQUcKK0tPTkpFVknEhiBTVEFOSVNMQVYKK0tPTkpFVknEhiBTVEFOSVNMQVYKK0tPTkpJxIYgU1RPSkFOS0EKK0tPTkpJSyBOQURBCitLT05KSUsgVklET0pFCitLT05KT1ZJxIYgQlJBTklTTEFWCitLT05KT1ZJxIYgSk9WQU4KK0tPTkpPVknEhiBNQUtTSU0KK0tPTkpPVknEhiBNSUxBTgorS09OSk9WScSGIE1JUkpBTkEKK0tPTkpPVknEhiBOSUtPTEEKK0tPTkpPVknEhiBSQURPU0xBVkEKK0tPTkpPVknEhiBTTUlMSkEKK0tPTkpPVknEhiBTT0ZJSkEKK0tPTkpPVknEhiBUSU5LQQorS09OSk9WScSGIFZFUkEKK0tPTktPTCBNSUhBSkxPCitLT05LT0xKIE1BUklKQQorS09OT1BFSyBTVEFOSU1JUgorS09OUkFEIEZSQU5KQQorS09OUkFEIE1JUsSMQQorS09OUkFEIFBBVkxFCitLT05TVEFOVElOIEJVSEEKK0tPTlNUQU5USU5JRElTIERJTUlUUklKRQorS09OU1RBTlRJTklESVMgR0VPUkdJT1MKK0tPTlNUQU5USU5JRElTIFRFT0RPUgorS09OU1RBTlRJTklEVSBTT0ZJSkEKK0tPTlNUQU5USU5PVknEhiBBTsSQRUxJSkEKK0tPTlNUQU5USU5PVknEhiBCTEFHT0pFCitLT05TVEFOVElOT1ZJxIYgSEVSTUlOQQorS09OU1RBTlRJTk9WScSGIEpFTElDQQorS09OU1RBTlRJTk9WScSGIEpPUkRBTgorS09OU1RBTlRJTk9WScSGIEpPVkFOCitLT05TVEFOVElOT1ZJxIYgTEpJTEpBTkEKK0tPTlNUQU5USU5PVknEhiBMVUtBCitLT05TVEFOVElOT1ZJxIYgTUlSSkFOQQorS09OU1RBTlRJTk9WScSGIE5JS09MQQorS09OU1RBTlRJTk9WScSGIFBFVEFSCitLT05TVEFOVElOT1ZJxIYgVkVSQQorS09OU1RBTlRJTk9WScSGIFpWT05JTUlSCitLT05UScSGIERPQlJJVk9KCitLT05UScSGIEpPVkFOS0EKK0tPTlRJxIYgTUlMQU4KK0tPTlRJxIYgU0xBVklDQQorS09OVFJJxIYgSk9WQU4KK0tPUMSMQU5TS0kgxb1FTEpLTworS09QxIxBTlNLSSBJUklOQQorS09QxIxBTlNLSSBOSUtPTEEKK0tPUMSMQU5TS0kgUEVUQVIKK0tPUMSMQU5TS0kgUkFETUlMQQorS09QxIxBTlNLSSBTVEVWQU4KK0tPUMSMQU5TS0kgVkxBREEKK0tPUMSMT0sgQU5BCitLT1DEjE9LIEtBVElDQQorS09QxIxPSyBNScWgQQorS09QxIxPSyBTQU5EUkEKK0tPUEFOSkEgREFOSUxPCitLT1BBTkpBIERSQUdPTUlSCitLT1BBTkpBIERVxaBBTgorS09QQU5KQSBEVcWgQU4KK0tPUEFOSkEgR09KS08KK0tPUEFOSkEgR09KS08KK0tPUEFOSkEgSUxJSkEKK0tPUEFOSkEgTEpVUEtPCitLT1BBTkpBIE1JxIZPCitLT1BBTkpBIE1JT0RSQUcKK0tPUEFOSkEgTUlUQVIKK0tPUEFOSkEgUkFOSVNMQVYKK0tPUEFOSkEgUk9TQQorS09QQU5KQSBWSUQKK0tPUEFTIEpBTk/FoAorS09QRVJFQyBBTEVLU0FOREFSCitLT1BFUkVDIEFORFJJSkEKK0tPUEVSRUMgSkFOT8WgCitLT1BFUkVDIEpPVkFOCitLT1BFUkVDIFNURVZBTgorS09QRVJFQyBTVEVWQU4KK0tPUEVTVEVOU0tJIEtBVElDQQorS09QRVNUSU5TS0lKIFJFR0lOQQorS09QScSGIElMT05BCitLT1BJQ0wgUlVET0xGCitLT1BJTE9WScSGIEpPU0lQCitLT1BJTE9WScSGIE1BUkdBCitLT1BJTE9WScSGLU1JSkFUT1YgRFJBR0lDQQorS09QSUxPVknEhiBQQVZMRQorS09QSVRPVknEhiDFoFBJUk8KK0tPUElUT1ZJxIYgUEVUQVIKK0tPUExBTkpJIE1BUklKQQorS09QTEFOSkkgTUlST1NMQVZBCitLT1BMScSGIMSQT1LEkEUKK0tPUExJxIYgREFOSUNBCitLT1BMScSGIERVxaBBTgorS09QTEnEhiBNSUxFCitLT1BSRU5PVknEhiBSQURPSktBCitLT1BSSVbFoEVLIFpWT05JTUlSCitLT1BSSVZJQ0EgQU5HRUxJTkEKK0tPUFJJVklDQSBCT8W9SURBUgorS09QUklWSUNBIEJPxb1JREFSCitLT1BSSVZJQ0EgQk9SSVNMQVYKK0tPUFJJVklDQSBHT1JEQU5BCitLT1BSSVZJQ0EgTEpJTEpBTkEKK0tPUFJJVklDQSBNSUxFTktPCitLT1BSSVZJQ0EgTUlMVVRJTgorS09QUklWSUNBIE1JT0RSQUcKK0tPUFJJVklDQSBOT1ZBSworS09QUklWSUNBIE9CUkVOCitLT1BSSVZJQ0EgUEVUQVIKK0tPUFJJVklDQSBTVkVUT1pBUgorS09QUklWSUNBIFpPUkFOCitLT1BVTk9WScSGIExKVUJJQ0EKK0tPUsSMT0sgSkFOCitLT1LEjE9LIE1BUklKQQorS09SxIxPSyBWTEFESU1JUgorS09SQcSGIMW9RUxKS08KK0tPUkHEhiBBTsSQRUxJSkEKK0tPUkHEhiBEVcWgQU4KK0tPUkHEhiBHT0pLTworS09SQcSGIElHT1IKK0tPUkHEhiBKVUxJSkFOQQorS09SQcSGIEtBVElDQQorS09SQcSGIExKVUJJU0FWCitLT1JBxIYgTUFORQorS09SQcSGIE1JSEFKTE8KK0tPUkHEhiBNSUxBTgorS09SQcSGIE1JTEUKK0tPUkHEhiBNSUxFCitLT1JBxIYgTUlMRQorS09SQcSGIE1JTEUKK0tPUkHEhiBNSUxPVkFOIERSIFBST0YKK0tPUkHEhiBNSUxPVkFOCitLT1JBxIYgTUlMT1ZBTgorS09SQcSGIE1JT0RSQUcKK0tPUkHEhiBQRVRBUgorS09SQcSGIFBFVFJBCitLT1JBxIYgUkFERQorS09SQcSGIFJBRE9KS0EKK0tPUkHEhiBSQURPSktBCitLT1JBxIYgUkFET1NBVgorS09SQcSGIFNMT0JPREFOCitLT1JBxIYgU05Fxb1BTkEKK0tPUkHEhiBUQVRKQU5BCitLT1JBxIYgVkxBRE8KK0tPUkFKSUNBIMSQVVJBCitLT1JBSkxJSkEgxb1BUktPCitLT1JBSkxJSkEgxb1BUktPCitLT1JBSkxJSkEgxb1BUktPCitLT1JBSkxJSkEgRElNSVRSSUpFCitLT1JBSkxJSkEgTUlMQU4KK0tPUkFLVSBMVcSMSUpBTgorS09SQUtVIExVQ0lKQU4KK0tPUkJBVEZJTlNLSSBFTFZJUkEKK0tPUkJBVEZJTlNLSSBWSUtUT1IgRFIKK0tPUkJBVFZJTlNLSSBEUkFHQU4KK0tPUkJBVFZJTlNLSS1MQUxPxaBFVknEhiBaTEFUQQorS09SQknEhiBNTEFERU4KK0tPUkRBIE1JTE/FoAorS09SREEgTkFORE9SCitLT1JEScSGIMSQVVJBCitLT1JEScSGIEJPSkFOCitLT1JEScSGIERVxaBBTktBCitLT1JEScSGIEdPSktPCitLT1JEScSGIE1JTEFOCitLT1JFTknEhiBHQUJSSUVMCitLT1JFTknEhiBURU9ET1IKK0tPUkVOSkkgxJBPUsSQRQorS09SRU5KSSBBTEVLU0FOREFSCitLT1JFTkpJIExBU0xPCitLT1JFTlQgTFVEVklHCitLT1JIQU1FUiBGRVJFTkMKK0tPUkhFQyBQQVZMRQorS09SScWgIEpVTElKQU5BCitLT1JJxIZBTkFDIElWQU4KK0tPUknEhkFOQUMgTEpVQklOS0EKK0tPUknFvSBBUlBBRAorS09SSUNBIMSQT1LEkEUKK0tPUklDQSDEkFVSTworS09SSUNBIERVxaBBTgorS09SSUNBIEpBTktPCitLT1JJQ0EgTUlMT1JBRAorS09SSUNBIE5FREVMSktPCitLT1JJQ0EgTklLT0xBCitLT1JJQ0EgUEVUQVIKK0tPUklDQSBTTkXFvUFOQQorS09SSUNBIFNPRklKQQorS09SSUNBIFNURVZBTgorS09SSVNUT1ZJxIYgTUlLU0FSRAorS09STEFUIFBFUklDQQorS09STEFUIFBFVEFSCitLT1JNQU5KT8WgIMWgQU5ET1IKK0tPUk1BTkpPxaAgQU5EUklKQQorS09STUFOSk/FoCBCT1JLQQorS09STUFOSk/FoCBGRVJFTkMKK0tPUk1BTkpPxaAgS0FST0xKCitLT1JNQU5KT8WgIE1JSEFMSgorS09STU/FoCBKQU5PxaAKK0tPUk1PxaAgTUFSR0lUQQorS09STU/FoCBNQVJHSVRBCitLT1JNT8WgIE1BUklKQQorS09STU/FoCBURVJFWkEKK0tPUk/FoCBSQVNUSVNMQVYKK0tPUk/FoCBWTEFEQQorS09ST8WgQU4gxaBBTkRPUgorS09ST8WgRUMgTEVPCitLT1JPQktPIFRBUkFTCitLT1JPREkgRlJBTkpBCitLT1JPS05BSSBGRVJFTkMKK0tPUk9LTkFJIEpBTk/FoAorS09ST0tOQUkgWk9MVEFOCitLT1JPTElKQSBEVcWgQU4gRFIgTEVLQVIKK0tPUk9MSUpBIERVxaBBTgorS09ST0xJSkEgU1RFVkFOIERSCitLT1JPTElKQSBWRVJBCitLT1JPTSBFUsW9RUJFVAorS09ST00gVElCT1IKK0tPUk9NQU4gTUlMT1JBRAorS09ST1YgxJBPUsSQRQorS09ST1ZMSkVWIElWQU4KK0tPUk9WTEpFViBKT1ZBTktBCitLT1JPVkxKRVYgTUFSSUpBCitLT1JPVkxKRVYgTUlMRU5LTworS09ST1ZMSkVWIE1JTE/FoAorS09ST1ZMSkVWIFJBRE1JTEEKK0tPUk9WTEpFViBWVUtJQ0EKK0tPUlBBIEJFTEEKK0tPUlBBxaAgQU1BTElKQQorS09SUEHFoCBEQU5JQ0EKK0tPUlBBxaAgRElNSVRSSUpFCitLT1JQQcWgIEpBTktPCitLT1JQQcWgIE1JUk9TTEFWCitLT1JQQcWgIE1JUk9TTEFWCitLT1JQQcWgIFBFUkEKK0tPUlBBSyBEUkFHSU5KQQorS09SUEFLIE5BREEKK0tPUlBPTkFJIEnFoFRWQU4KK0tPUlBPTkFJIE1BUklKQQorS09SVUdBIEJPUkEKK0tPUlVHQSBKVUxLQQorS09SVUdBIFJBRE9NSVIKK0tPUlVOScSGIExJWkEKK0tPUyBJREEKK0tPUyBNQVJJSkEKK0tPUyBTTEFWS08KK0tPUyBTTEFWS08KK0tPUyBTVEFOS08KK0tPU0HEhiBEQVJJTktBCitLT1NBTknEhiBCUkFOSVNMQVYKK0tPU0FOScSGIElWQU5LQQorS09TQU5JxIYgU0FWQQorS09TQU5PViBBTEVLU0FOREFSCitLT1NBTk9WIEtBVElDQQorS09TQU5PViBWTEFESU1JUgorS09TQU5PVknEhiBBTsSQRUxLQQorS09TQU5PVknEhiBCT0dEQU4gTVIKK0tPU0FOT1ZJxIYgQlJBTktPCitLT1NBTk9WScSGIEJSQU5LTworS09TQU5PVknEhiBEQU5FCitLT1NBTk9WScSGIERSQUdBTgorS09TQU5PVknEhiBEVcWgQU5LQQorS09TQU5PVknEhiBEVcWgQU4KK0tPU0FOT1ZJxIYgSkVMSUNBCitLT1NBTk9WScSGIEpPVkFOCitLT1NBTk9WScSGIEtPU0FOQQorS09TQU5PVknEhiBMQVpPCitLT1NBTk9WScSGIExKVUJJQ0EKK0tPU0FOT1ZJxIYgTEpVQk9NSVIgRFIKK0tPU0FOT1ZJxIYtTUFOREnEhiBORU5BCitLT1NBTk9WScSGIE1BTkUKK0tPU0FOT1ZJxIYgTUFSS08KK0tPU0FOT1ZJxIYgTUnEhk8KK0tPU0FOT1ZJxIYgTUlMQU4KK0tPU0FOT1ZJxIYgTUlMRQorS09TQU5PVknEhiBNSUxPUkFECitLT1NBTk9WScSGIE1JUktPCitLT1NBTk9WScSGIE1JVEFSCitLT1NBTk9WScSGIE1MQURFTgorS09TQU5PVknEhiBOQURBCitLT1NBTk9WScSGIE9MR0EKK0tPU0FOT1ZJxIYgUEVUQVIKK0tPU0FOT1ZJxIYgUkFET1ZBTgorS09TQU5PVknEhiBTTEFWS08KK0tPU0FOT1ZJxIYgU1RPSkFOCitLT1NBTk9WScSGIFZFTElNSVIKK0tPU0FOT1ZJxIYgWk9SSUNBCitLT1NBUkVOS08gUEVUQVIKK0tPU0VETkFSIFNUSkVQQU4KK0tPU0nEhiDFvUFSS08KK0tPU0nEhiDFvUFSS08KK0tPU0nEhiDFvUlWT0pJTgorS09TScSGIEJJTEpBTkEKK0tPU0nEhiBCT0pBTgorS09TScSGIEJPUktPCitLT1NJxIYgQlJBTklTTEFWCitLT1NJxIYgR09SQU4KK0tPU0nEhiBHT1JEQU5BCitLT1NJxIYgSVZBTgorS09TScSGIEpFTElDQQorS09TScSGIEpPVklDQQorS09TScSGIExVS0EKK0tPU0nEhiBNQVJJSkEKK0tPU0nEhiBNSUxPVkFOCitLT1NJxIYgTUlSS08gRElQTCBJTkcKK0tPU0nEhiBORURFTEpLTworS09TScSGIFJVxb1BCitLT1NJxIYgU1ZFVE9aQVIKK0tPU0nEhiBUT01BCitLT1NJxIYgWk9SSUNBCitLT1NJTkEgTUlMSUNBCitLT1NJUk9WScSGIE1BUklKQQorS09TSVJPVknEhiBNSUxBTgorS09TSVJPVknEhiBQQU5URUxJSkEKK0tPU0pFUiBEVcWgQU4KK0tPU0pFUklOQSBNSUxFTktPCitLT1NLQSBBVE1BTkEKK0tPU0tBIEhBVElExb1FCitLT1NLQSBKQVNNSURJTgorS09TS0EgTEpFUktBCitLT1NLQSBNSUxFTkEKK0tPU0tBIE5BREXFvURBCitLT1NLQSBTQUZFVAorS09TS0EgU0FMSQorS09TTUFKQUMgxJBPUsSQRQorS09TTUFKQUMgQU5JQ0EKK0tPU08gQk9TSUxKS0EKK0tPU08gRlJBTkpPCitLT1NPIE1JSEFMSgorS09TTyBPTElWRVJBCitLT1NPIFBBTAorS09TT1JVxaAgxJBVUkEKK0tPU09SVcWgIEVURUxLQQorS09TT1JVxaAgUEVURVIKK0tPU09WQUMgxIxFREEKK0tPU09WQUMgxb1JVktPCitLT1NPVkFDIEFMRUtTQU5EQVIgRFIKK0tPU09WQUMgQk9KQU4KK0tPU09WQUMgQk9KQU4KK0tPU09WQUMgREFSS08KK0tPU09WQUMgRFJBR0FOCitLT1NPVkFDIERVxaBBTgorS09TT1ZBQyBHRU9SR0lKRQorS09TT1ZBQyBHT0pLTworS09TT1ZBQyBKVUxJSkFOQQorS09TT1ZBQyBNSUxBTgorS09TT1ZBQyBNSUxBTgorS09TT1ZBQyBNSVJLTworS09TT1ZBQyBOSUtPTEEKK0tPU09WQUMgUkFESVZPSgorS09TT1ZBQyBaRFJBVktPCitLT1NPVknEhiBBTkRSSUpBCitLT1NPVknEhiBBTktJQ0EKK0tPU09WScSGIE1JTE9SQUQKK0tPU09WScSGIE9MR0EgUFJPRkVTT1IKK0tPU09WScSGIFJBRElTTEFWCitLT1NPVknEhiBSQVRLTworS09TT1ZJxIYgU1ZFVElTTEFWCitLT1NPVlJBU1RJIEFExb1JCitLT1NUQURJTk9TS0kgQkxBR09KRQorS09TVEFESU5PViBSSVNUQQorS09TVEFESU5PVknEhiBCUkFOSVNMQVYKK0tPU1RBRElOT1ZJxIYgRFJBR09MSlVCCitLT1NUQURJTk9WScSGIExKSUxKQU5BCitLT1NUQURJTk9WScSGIFRJSE9NSVIKK0tPU1RBRElOT1ZJxIYgVkVSQQorS09TVEFESU5PVknEhiBWRVJJQ0EKK0tPU1RBRElOT1ZJxIYgVlVLQU4KK0tPU1RBRElOT1ZTS0kgRElNxIxFCitLT1NURUxOSUsgTkVTVE9SCitLT1NURUxOSUsgU0lMVkVTVEVSCitLT1NURVZTS0kgSVZBTgorS09TVEnEhi3FoE9CT1QgTUlMS0EKK0tPU1RJxIYgxb1BUktPCitLT1NUScSGIMW9RUxKS08KK0tPU1RJxIYgxb1JVk9KSU4KK0tPU1RJxIYgxJBPUsSQRQorS09TVEnEhiDEkE9SxJBFCitLT1NUScSGIMSQT1LEkEUKK0tPU1RJxIYgxJBPUsSQRQorS09TVEnEhiDEkE9SxJBFCitLT1NUScSGIMSQVVLEkElDQQorS09TVEnEhiBBQ0EKK0tPU1RJxIYgQUxFS1NBTkRBUgorS09TVEnEhiBBTEVLU0FOREFSCitLT1NUScSGIEFMRUtTQU5EQVIKK0tPU1RJxIYgQUxFS1NBTkRSQQorS09TVEnEhiBBTkEKK0tPU1RJxIYgQU5HRUxJTkEKK0tPU1RJxIYgQU5LSUNBCitLT1NUScSGIEJPxb1JREFSCitLT1NUScSGIEJPxb1JREFSCitLT1NUScSGIEJPR09MSlVCCitLT1NUScSGIEJSQU5JTUlSCitLT1NUScSGIEJSQU5JU0xBVgorS09TVEnEhiBCUkFOSVNMQVYKK0tPU1RJxIYgQlJBTktPCitLT1NUScSGIERBTklMTworS09TVEnEhiBERUpBTgorS09TVEnEhiBERVNBTktBCitLT1NUScSGIERSQUdBTgorS09TVEnEhiBEUkFHQQorS09TVEnEhiBEUkFHQQorS09TVEnEhiBEUkFHSUNBCitLT1NUScSGIERSQUdJQ0EKK0tPU1RJxIYgRFJBR0lDQQorS09TVEnEhiBEUkFHT0xKVUIKK0tPU1RJxIYgRFXFoEFOCitLT1NUScSGIERVxaBBTgorS09TVEnEhiBEVcWgQU4KK0tPU1RJxIYgRUxFT05PUkEKK0tPU1RJxIYgR0VPUkdJTkEKK0tPU1RJxIYgR0xJxaBBCitLT1NUScSGIEdPTFVCCitLT1NUScSGIEdPUkRBTkEKK0tPU1RJxIYgR1JBRElNSVIKK0tPU1RJxIYgSVZBTgorS09TVEnEhiBJVkFOCitLT1NUScSGIEpFTEVOQQorS09TVEnEhiBKRUxJQ0EKK0tPU1RJxIYgSkVMSUNBCitLT1NUScSGIEpPUkRBTktBCitLT1NUScSGIEpPVkFOCitLT1NUScSGIEpPVkFOCitLT1NUScSGIEpPVkFOCitLT1NUScSGIEpPVkFOCitLT1NUScSGIEpPVkFOCitLT1NUScSGIEtSU01BTgorS09TVEnEhiBLUlNUQQorS09TVEnEhiBMSklMSkFOQQorS09TVEnEhiBMSklMSkFOQQorS09TVEnEhiBMSlVCScWgQQorS09TVEnEhiBMSlVCSUNBCitLT1NUScSGIExKVUJJQ0EKK0tPU1RJxIYgTEpVQklDQQorS09TVEnEhiBNQUtTSU0KK0tPU1RJxIYgTUFSSUpBCitLT1NUScSGIE1BUktPCitLT1NUScSGIE1FVE9ESUpFCitLT1NUScSGIE1JSEFKTE8KK0tPU1RJxIYgTUlMQU4KK0tPU1RJxIYgTUlMQU4KK0tPU1RJxIYgTUlMRU5BIERSCitLT1NUScSGIE1JTEVOQQorS09TVEnEhiBNSUxFVkEKK0tPU1RJxIYgTUlMSUNBCitLT1NUScSGIE1JTE9SQUQKK0tPU1RJxIYgTUlMT1ZBTgorS09TVEnEhiBNSUxVxaBBCitLT1NUScSGIE1JUkpBTkEKK0tPU1RJxIYgTUlSS08KK0tPU1RJxIYgTU9KU0UKK0tPU1RJxIYgTkFEQQorS09TVEnEhiBOQURBCitLT1NUScSGIE5JS09MQQorS09TVEnEhiBOSUtPTEEKK0tPU1RJxIYgT0xJVkVSQQorS09TVEnEhiBQQVZMRQorS09TVEnEhiBQRVRBUgorS09TVEnEhiBQRVRBUgorS09TVEnEhiBQRVRBUgorS09TVEnEhiBQRVRBUgorS09TVEnEhiBQRVRBUgorS09TVEnEhiBSQURPSklDQQorS09TVEnEhiBSQURPSktPCitLT1NUScSGIFJBRE9NSVIKK0tPU1RJxIYgUkFET1NBVgorS09TVEnEhiBSQVRLTworS09TVEnEhiBSVcW9SUNBCitLT1NUScSGIFNBVkEKK0tPU1RJxIYgU0FWQQorS09TVEnEhiBTTEFWSUNBCitLT1NUScSGIFNMQVZLQQorS09TVEnEhiBTTE9CT0RBTgorS09TVEnEhiBTTE9CT0RBTgorS09TVEnEhiBTTE9CT0RBTgorS09TVEnEhiBTTkXFvUFOQQorS09TVEnEhiBTUEFTRU5LTworS09TVEnEhiBTUkVURU4KK0tPU1RJxIYgU1RBTkEKK0tPU1RJxIYgU1RBTklNSVIKK0tPU1RJxIYgU1RBTktPCitLT1NUScSGIFNUQVpBCitLT1NUScSGIFNURVZBTgorS09TVEnEhiBTVE9KQURJTgorS09TVEnEhiBTVFJBSElOSkEgRFIgUFJPRgorS09TVEnEhiBTVkVUSVNMQVYgRFIKK0tPU1RJxIYgU1ZFVElTTEFWCitLT1NUScSGIFNWRVRPWkFSCitLT1NUScSGIFRJQkVSSUpFCitLT1NUScSGIFRPTUlTTEFWCitLT1NUScSGIFRPTUlTTEFWCitLT1NUScSGIFRPTUlTTEFWCitLT1NUScSGIFZBU08KK0tPU1RJxIYgVkVMSU1JUgorS09TVEnEhiBWRVJBCitLT1NUScSGIFZMQURJU0xBVkEKK0tPU1RJxIYgVkxBRElTTEFWCitLT1NUScSGIFZMQVNUSU1JUgorS09TVEnEhiBWT0pJU0xBVgorS09TVEnEhiBWVUtBxaBJTgorS09TVEnEhiBaRFJBVktPCitLT1NUScSGIFpPUkFOCitLT1NUScSGIFpPUkFOCitLT1NUScSGIFpPUkFOCitLT1NUScSGIFpPUkFOCitLT1NUScSGIFpPUkFOCitLT1NUScSGIFpPUklDQQorS09TVE9WScSGIEpFTElDQQorS09TVE9WScSGIFJBVEtPCitLT1NUT1ZJxIYgU05Fxb1BTkEKK0tPU1RPVlNLSSBLQVRJQ0EKK0tPU1RPVlNLSSBNSVJPU0xBVgorS09TVE9WU0tJIFRSQUrEjEUKK0tPU1RSRcWgIE1PTcSMSUxPCitLT1NUUkXFoEVWScSGIEdPUkFOCitLT1NUUkXFoEVWScSGIE1JTEFESU4KK0tPU1RSRcWgRVZJxIYgTkVERUxKS08KK0tPU1RSRcWgRVZJxIYgU1RBTktBCitLT1NUUknEjEVOS08gVkFTSUxJSkUKK0tPU1RVRElKQSBNSVJPU0xBVgorS09UIElMT05BCitLT1QgSk9TSVAKK0tPVCBMQURJU0xBVgorS09UIExBU0xPCitLT1QgTUFSVEEKK0tPVCBNSVJBCitLT1QgTUlSS08KK0tPVEEgRVLFvUVCRVQKK0tPVEEgTEFKT8WgCitLT1RBIE1JSEFKTE8KK0tPVEFSxIxFVknEhiBFTFZJUkEKK0tPVEFSxIxFVknEhiBOSUtPTEEKK0tPVEFSQUMgS0FUSUNBCitLT1RBUkFDIEtPU1RBCitLT1RBUkFDIFNWRVRJU0xBVgorS09UQVJBTklOIExKSUxKQU5BCitLT1RBUkFOSU4gUEVUQVIKK0tPVEFSTEnEhiBEQVJLTworS09UQVJMScSGIERSQUdBTkEKK0tPVEFSTEnEhiBTQVZBCitLT1RIQUkgScWgVFZBTgorS09USEFJIEpPxb1FRgorS09USEFJIFNURVZBTgorS09USEFKIFNURVZBTgorS09UScSGIFZPSklTTEFWCitLT1RMQUpBIE1JTEFOS08KK0tPVExBSkEgTUlMS08KK0tPVExBUknEhiBNQVJLTyBEUgorS09UTEFSScSGIFNUQU5JTUlSCitLT1RSQkEgRlJBTkpBCitLT1RSRSBNQUdET0xOQQorS09UVcWgIEVSxb1FQkVUCitLT1RVxaAgTUlMSUNBCitLT1RVxaAgTUlST1NMQVYKK0tPVFXFoCBTVEVWQU4KK0tPVFXEhiBNQVJJSkVUQQorS09UVVIgQU7EkEVMS0EKK0tPVFVSIERSQUdBTgorS09UVVIgSkVMQQorS09UVVIgUkFERQorS09UVVJPViBOQURBCitLT1RVUk9WScSGIEtBVElDQQorS09VTklTIExKSUxKQU5BCitLT1bEjEUgQU1BTElKQQorS09WxIxFViBTUEFTRU5LQQorS09WxIxJTiBNSUxJQ0EKK0tPVsSMSU4gTUlMT1ZBTgorS09WxIxJTiBNSVJPU0xBViBESVBMIElORworS09WxIxJTiBORUdBCitLT1bEjElOIFNUQU5JTUlSIERSCitLT1ZBxIwgxIxFRE8KK0tPVkHEjCDFoEFORE9SCitLT1ZBxIwgxaBBTkRPUgorS09WQcSMIMSQT1LEkEUKK0tPVkHEjCDEkE9SxJBFCitLT1ZBxIwgxJBVTEEKK0tPVkHEjCDEkFVSxJBBCitLT1ZBxIwtQcSMIEtBUk9MSgorS09WQcSMIEFMRUtTQU5EQVIKK0tPVkHEjCBBTEVLU0FOREFSCitLT1ZBxIwgQU5BCitLT1ZBxIwgQU5BCitLT1ZBxIwgQU5EUkHFoAorS09WQcSMIEFOVEFMCitLT1ZBxIwgQU5UT04KK0tPVkHEjCBBUlBBRAorS09WQcSMIEFUSUxBCitLT1ZBxIwgQkVMQQorS09WQcSMIEJFTEEKK0tPVkHEjC1CSVJLQcWgIE1JSEFMSgorS09WQcSMIEJPUklTCitLT1ZBxIwgREXFvUUKK0tPVkHEjCBERVNBTktBCitLT1ZBxIwgRFJBR0lDQSBNUgorS09WQcSMIERVxaBBTgorS09WQcSMIEVURUxLQQorS09WQcSMIEVURUxLQQorS09WQcSMIEZFUkVOQworS09WQcSMIEZFUkVOQworS09WQcSMIEZSQU5KQQorS09WQcSMIEZSQU5KQQorS09WQcSMIEdBQk9SCitLT1ZBxIwgR0laRUxBCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgSUxPTkEKK0tPVkHEjCBJTVJFCitLT1ZBxIwgSU1SRQorS09WQcSMIElNUkUKK0tPVkHEjCBJUkVOQQorS09WQcSMIElSRU5BCitLT1ZBxIwgSVZBTgorS09WQcSMIElWQU4KK0tPVkHEjCBJVkFOCitLT1ZBxIwgSVZBTgorS09WQcSMIElWQU4KK0tPVkHEjCBJVkFOCitLT1ZBxIwgSkFLT0IKK0tPVkHEjCBKQU5LTworS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTk/FoAorS09WQcSMIEpBTgorS09WQcSMIEpBTgorS09WQcSMIEpFTElDQQorS09WQcSMIEpFTElTQVZFVEEKK0tPVkHEjCBKT8W9RUYKK0tPVkHEjCBKT8W9RUYKK0tPVkHEjCBKT1NJUAorS09WQcSMIEpPU0lQCitLT1ZBxIwgSk9TSVAKK0tPVkHEjCBKT1NJUAorS09WQcSMIEpPVkFOCitLT1ZBxIwgSk9WQU4KK0tPVkHEjCBKT1ZBTgorS09WQcSMIEpVTElBTkEKK0tPVkHEjCBKVUxJSkFOQQorS09WQcSMIEtBUkxPCitLT1ZBxIwgS0FSTE8KK0tPVkHEjCBLQVJPTEoKK0tPVkHEjCBLQVJPTEoKK0tPVkHEjCBLQVJPTEoKK0tPVkHEjCBLQVJPTEoKK0tPVkHEjCBLQVRBTElOCitLT1ZBxIwgS0FUQVJJTkEKK0tPVkHEjCBLQVRJQ0EKK0tPVkHEjCBLQVRJQ0EKK0tPVkHEjCBLQVRJQ0EKK0tPVkHEjCBLQVRJQ0EKK0tPVkHEjCBLQVRJQ0EKK0tPVkHEjCBLT1ZJTEpLQQorS09WQcSMIExBRElTTEFWCitLT1ZBxIwgTEFESVNMQVYKK0tPVkHEjCBMQURJU0xBVgorS09WQcSMIExBRElTTEFWCitLT1ZBxIwgTEFESVNMQVYKK0tPVkHEjCBMQUpPxaAKK0tPVkHEjCBMQUpPxaAKK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEpVQkFOCitLT1ZBxIwgTEpVREVWSVQKK0tPVkHEjCBNQUpBCitLT1ZBxIwgTUFSR0lUQQorS09WQcSMIE1BUklKQQorS09WQcSMIE1BUklKQQorS09WQcSMIE1BUklKQQorS09WQcSMIE1BUklKQQorS09WQcSMIE1BUklKQQorS09WQcSMIE1BUlRJTgorS09WQcSMIE1BVElKQQorS09WQcSMIE1JSEFKTE8KK0tPVkHEjCBNSUhBSkxPCitLT1ZBxIwgTUlIQUxKCitLT1ZBxIwgTUlIQUxKCitLT1ZBxIwgTUlLTE/FoAorS09WQcSMIE1JS0xPxaAKK0tPVkHEjCBNSUxBRElOCitLT1ZBxIwgTUlMQU4KK0tPVkHEjCBNSUxFTkEKK0tPVkHEjCBNSUxPxaAKK0tPVkHEjCBNSUxPUkFECitLT1ZBxIwgTUlSSkFOQQorS09WQcSMIE1JUkpBTkEKK0tPVkHEjCBNSVJKQU5BCitLT1ZBxIwgTUlSS08KK0tPVkHEjCBNSVJPTiBESVBMIElORworS09WQcSMIE1JUk9TTEFWCitLT1ZBxIwgTkFUQUxJSkEKK0tPVkHEjCBOSUtPTEEKK0tPVkHEjCBOSUtPTEEKK0tPVkHEjCBPTEdJQ0EKK0tPVkHEjCBPTEdJQ0EKK0tPVkHEjCBPVE8KK0tPVkHEjCBQQVZFTAorS09WQcSMIFBFVEFSCitLT1ZBxIwgUklTVE8gRElQTCBJTkcKK0tPVkHEjCBST8W9SQorS09WQcSMIFJPxb1JCitLT1ZBxIwgUk9aQUxJSkEKK0tPVkHEjCBST1pBTElKQQorS09WQcSMIFJVxb1JQ0EKK0tPVkHEjCBTSUxWRVNURVIKK0tPVkHEjCBTTUlMSkEKK0tPVkHEjCBTVEFOT0pLQQorS09WQcSMIFNURVZBTgorS09WQcSMIFNURVZBTgorS09WQcSMIFNURVZBTgorS09WQcSMIFNURVZBTgorS09WQcSMIFNUSkVQQU4gRElQTCBJTkcKK0tPVkHEjCBTVkVUT1pBUgorS09WQcSMIFRFT0RPUiBEUiBQUk9GCitLT1ZBxIwgVEVPRE9SIERSCitLT1ZBxIwgVElCT1IKK0tPVkHEjCBUSUJPUgorS09WQcSMLVRJSE1BSkVSIFNURVZBTgorS09WQcSMIFRPTUlTTEFWCitLT1ZBxIwgVFJQSU1JUgorS09WQcSMIFZBTEVSSUpBCitLT1ZBxIwgVkVSQQorS09WQcSMIFZFUkEKK0tPVkHEjCBWRVJBCitLT1ZBxIwgVkVSQQorS09WQcSMIFZFUkEKK0tPVkHEjCBWRVJJQ0EKK0tPVkHEjCBWRVJPTkEKK0tPVkHEjCBWRVJPTkEKK0tPVkHEjCBWSURBCitLT1ZBxIwgVkxBRElNSVIKK0tPVkHEjCBWTEFESU1JUgorS09WQcSMIFpPUkEKK0tPVkHEjCBaVk9OSU1JUgorS09WQcSMRUsgQk/FvUlEQVIgRFIKK0tPVkHEjEVLIERBTklDQQorS09WQcSMRUsgSkVMRU5BCitLT1ZBxIxFViDEkE9SxJBFCitLT1ZBxIxFViBBTEVLU0FOREFSCitLT1ZBxIxFViBCUkFOS0EKK0tPVkHEjEVWIEJSQU5LTworS09WQcSMRVYgQlJBTktPCitLT1ZBxIxFViBEQU7EjEUKK0tPVkHEjEVWIERBTklMS0EKK0tPVkHEjEVWIERJTUlUUklKRQorS09WQcSMRVYgRFJBR0nFoEEKK0tPVkHEjEVWIERSQUdPU0xBVgorS09WQcSMRVYgRFJBR1VUSU4KK0tPVkHEjEVWIERSQUdVVElOCitLT1ZBxIxFViBEVcWgQU5LQQorS09WQcSMRVYgR09SQU4KK0tPVkHEjEVWIEdPUkRBTkEKK0tPVkHEjEVWIEdPUkRBTkEKK0tPVkHEjEVWIElMSUpBCitLT1ZBxIxFViBJVklDQQorS09WQcSMRVYgSkVMQQorS09WQcSMRVYgSkVMRU5BCitLT1ZBxIxFViBKT1ZBTgorS09WQcSMRVYgSlVMSUpBTkEKK0tPVkHEjEVWIEpVTEtBCitLT1ZBxIxFViBMQVpBUgorS09WQcSMRVYgTUFSSUpBCitLT1ZBxIxFViBNSUxBTgorS09WQcSMRVYgTUlMQU4KK0tPVkHEjEVWIE1JTEVOQQorS09WQcSMRVYgTUlMSUNBCitLT1ZBxIxFViBNSUxPxaAKK0tPVkHEjEVWIE1JTE9SQUQgRFIgTEVLQVIKK0tPVkHEjEVWIE1JTFVUSU4KK0tPVkHEjEVWIE1JUkpBTkEKK0tPVkHEjEVWIE1MQURFTgorS09WQcSMRVYgTkVERUxKS08KK0tPVkHEjEVWIE5FTUFOSkEKK0tPVkHEjEVWIFBFVEFSCitLT1ZBxIxFViBTVEVWQU4KK0tPVkHEjEVWIFNURVZBTgorS09WQcSMRVYgU1RFVkFOCitLT1ZBxIxFViBTVkVUSVNMQVYKK0tPVkHEjEVWIFNWRVRPWkFSCitLT1ZBxIxFViBURU9ET1IgRFIKK0tPVkHEjEVWIFRFT0RPUiBEUgorS09WQcSMRVYgVkVSQQorS09WQcSMRVYgVkVSQQorS09WQcSMRVYgVkVTTkEKK0tPVkHEjEVWScSGIMSMRURBCitLT1ZBxIxFVknEhiDFvUVMSU1JUgorS09WQcSMRVZJxIYgxb1FTEpLTworS09WQcSMRVZJxIYgxb1JVkFOCitLT1ZBxIxFVknEhiDFvUlWQU4KK0tPVkHEjEVWScSGIMSQT1LEkEUgRElQTCBJTkcKK0tPVkHEjEVWScSGIMSQT1LEkEUKK0tPVkHEjEVWScSGIMSQT1LEkEUKK0tPVkHEjEVWScSGIMSQT1LEkEUKK0tPVkHEjEVWScSGIMSQT1LEkEUKK0tPVkHEjEVWScSGIMSQVVLEkElOQQorS09WQcSMRVZJxIYgxJBVUkEKK0tPVkHEjEVWScSGIEFHTkXFoAorS09WQcSMRVZJxIYgQUxFS1NBTkRBUgorS09WQcSMRVZJxIYgQUxFS1NBTkRBUgorS09WQcSMRVZJxIYgQUxFS1NBTkRBUgorS09WQcSMRVZJxIYgQU7EkEVMSUpBCitLT1ZBxIxFVknEhiBBTkRSSUpBCitLT1ZBxIxFVknEhiBBTkVUQQorS09WQcSMRVZJxIYgQU5LSUNBCitLT1ZBxIxFVknEhiBBUlNBCitLT1ZBxIxFVknEhiBCTEFHT0pFCitLT1ZBxIxFVknEhiBCT8WgS08KK0tPVkHEjEVWScSGIEJPxaBLTworS09WQcSMRVZJxIYgQk/FoEtPCitLT1ZBxIxFVknEhiBCT8W9SURBUgorS09WQcSMRVZJxIYgQk9HREFOCitLT1ZBxIxFVknEhiBCT0dEQU4KK0tPVkHEjEVWScSGIEJPUklTTEFWQQorS09WQcSMRVZJxIYgQk9SSVNMQVYKK0tPVkHEjEVWScSGIEJPUklTTEFWCitLT1ZBxIxFVknEhiBCT1JJVk9KRQorS09WQcSMRVZJxIYgQk9SSVZPSgorS09WQcSMRVZJxIYgQk9SSVZPSgorS09WQcSMRVZJxIYgQk9SSVZPSgorS09WQcSMRVZJxIYgQk9SS0EKK0tPVkHEjEVWScSGIEJSQU5JTUlSCitLT1ZBxIxFVknEhiBCUkFOSVNMQVZBIERJUEwgSU5HCitLT1ZBxIxFVknEhiBCUkFOSVNMQVZBCitLT1ZBxIxFVknEhiBCUkFOSVNMQVZBCitLT1ZBxIxFVknEhiBCUkFOSVNMQVYKK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCVURJTUlSCitLT1ZBxIxFVknEhiBCVURJTUlSCitLT1ZBxIxFVknEhiBEQU1KQU4KK0tPVkHEjEVWScSGIERBTklDQQorS09WQcSMRVZJxIYgREFOSUNBCitLT1ZBxIxFVknEhiBEQU5JQ0EKK0tPVkHEjEVWScSGIERBTklDQQorS09WQcSMRVZJxIYgREFOSUNBCitLT1ZBxIxFVknEhiBEQU5JTE8KK0tPVkHEjEVWScSGIERBTktBCitLT1ZBxIxFVknEhiBEQVZPUktBCitLT1ZBxIxFVknEhiBERVNBTktBCitLT1ZBxIxFVknEhiBESU1JVFJJSkUgRElQTCBPRUMKK0tPVkHEjEVWScSGIERSQUdBTiBEUgorS09WQcSMRVZJxIYgRFJBR0FOQQorS09WQcSMRVZJxIYgRFJBR0FOCitLT1ZBxIxFVknEhiBEUkFHQU4KK0tPVkHEjEVWScSGIERSQUdBTgorS09WQcSMRVZJxIYgRFJBR0lDQQorS09WQcSMRVZJxIYgRFJBR0lDQQorS09WQcSMRVZJxIYgRFJBR09MSlVCCitLT1ZBxIxFVknEhiBEUkFHT0xKVUIKK0tPVkHEjEVWScSGIERSQUdPTEpVQgorS09WQcSMRVZJxIYgRFJBR08KK0tPVkHEjEVWScSGIERSQUdPCitLT1ZBxIxFVknEhiBEUkFHVVRJTgorS09WQcSMRVZJxIYgRFJBR1VUSU4KK0tPVkHEjEVWScSGIERSRU5BCitLT1ZBxIxFVknEhiBEVcWgQU5LQQorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgSUNBCitLT1ZBxIxFVknEhiBEVcWgSUNBCitLT1ZBxIxFVknEhiBEVcWgS08KK0tPVkHEjEVWScSGIERVxaBLTworS09WQcSMRVZJxIYgRFXFoEtPCitLT1ZBxIxFVknEhiBGUkFOSkEKK0tPVkHEjEVWScSGIEdBVlJJTE8KK0tPVkHEjEVWScSGIEdMSUdPUklKRQorS09WQcSMRVZJxIYgR09KS08KK0tPVkHEjEVWScSGIEnFoFRWQU4KK0tPVkHEjEVWScSGIElHTkpBVAorS09WQcSMRVZJxIYgSUxJSkEKK0tPVkHEjEVWScSGIElMSUpBCitLT1ZBxIxFVknEhiBJTElKQQorS09WQcSMRVZJxIYgSVNBCitLT1ZBxIxFVknEhiBJVkFOCitLT1ZBxIxFVknEhiBKQUdPxaAKK0tPVkHEjEVWScSGIEpFTEVOQQorS09WQcSMRVZJxIYgSkVMSUNBCitLT1ZBxIxFVknEhiBKRUxJQ0EKK0tPVkHEjEVWScSGIEpFTElTQVZFVEEKK0tPVkHEjEVWScSGIEpPUkRBTgorS09WQcSMRVZJxIYgSk9WQU5LQQorS09WQcSMRVZJxIYgSk9WQU4KK0tPVkHEjEVWScSGIEpPVkFOCitLT1ZBxIxFVknEhiBKT1ZBTgorS09WQcSMRVZJxIYgSk9WSUNBCitLT1ZBxIxFVknEhiBKT1ZPCitLT1ZBxIxFVknEhiBLQVRBUklOQQorS09WQcSMRVZJxIYgS0FUQQorS09WQcSMRVZJxIYgS0FUSUNBIERSCitLT1ZBxIxFVknEhiBLQVRJQ0EKK0tPVkHEjEVWScSGIEtBVElDQQorS09WQcSMRVZJxIYgS0xBUkEKK0tPVkHEjEVWScSGIEtPxIxBCitLT1ZBxIxFVknEhiBLT0pBCitLT1ZBxIxFVknEhiBLT1NUQQorS09WQcSMRVZJxIYgS09TVEEKK0tPVkHEjEVWScSGIEtPVklMSktBCitLT1ZBxIxFVknEhiBLUlNUQQorS09WQcSMRVZJxIYgS1JTVE8KK0tPVkHEjEVWScSGIEtTRU5JSkEKK0tPVkHEjEVWScSGIEtTRU5JSkEKK0tPVkHEjEVWScSGIExBWk8KK0tPVkHEjEVWScSGIExKSUxKQU5BCitLT1ZBxIxFVknEhiBMSklMSkEKK0tPVkHEjEVWScSGIExKVUJJQ0EKK0tPVkHEjEVWScSGIExKVUJPCitLT1ZBxIxFVknEhiBNQVJBCitLT1ZBxIxFVknEhiBNQVJBCitLT1ZBxIxFVknEhiBNQVJJSkEKK0tPVkHEjEVWScSGIE1BUklKQQorS09WQcSMRVZJxIYgTUFSS08KK0tPVkHEjEVWScSGIE1BUktPCitLT1ZBxIxFVknEhiBNSUhBSkxPCitLT1ZBxIxFVknEhiBNSUhBSkxPCitLT1ZBxIxFVknEhiBNSUxBRElOS0EKK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMRU5BCitLT1ZBxIxFVknEhiBNSUxFTkEKK0tPVkHEjEVWScSGIE1JTEUKK0tPVkHEjEVWScSGIE1JTElDQQorS09WQcSMRVZJxIYgTUlMSUNBCitLT1ZBxIxFVknEhiBNSUxJQ0EKK0tPVkHEjEVWScSGIE1JTElDQQorS09WQcSMRVZJxIYgTUlMSU1JUgorS09WQcSMRVZJxIYgTUlMSVZPSiBEUgorS09WQcSMRVZJxIYgTUlMSkFOCitLT1ZBxIxFVknEhiBNSUxLQQorS09WQcSMRVZJxIYgTUlMT8WgCitLT1ZBxIxFVknEhiBNSUxPxaAKK0tPVkHEjEVWScSGIE1JTE/FoAorS09WQcSMRVZJxIYgTUlMT8WgCitLT1ZBxIxFVknEhiBNSUxPxaAKK0tPVkHEjEVWScSGIE1JTE9SQUQKK0tPVkHEjEVWScSGIE1JTE9SQUQKK0tPVkHEjEVWScSGIE1JTE9WQU4KK0tPVkHEjEVWScSGIE1JTE9WQU4KK0tPVkHEjEVWScSGIE1JT0RSQUcKK0tPVkHEjEVWScSGIE1JT0RSQUcKK0tPVkHEjEVWScSGIE1JUkEKK0tPVkHEjEVWScSGIE1JUkEKK0tPVkHEjEVWScSGIE1JUkpBTkEKK0tPVkHEjEVWScSGIE1JUkpBTkEKK0tPVkHEjEVWScSGIE1JUktPCitLT1ZBxIxFVknEhiBNSVJPU0xBVgorS09WQcSMRVZJxIYgTUlST1NMQVYKK0tPVkHEjEVWScSGIE1JUk9TTEFWCitLT1ZBxIxFVknEhiBNSVRBUgorS09WQcSMRVZJxIYgTUlUQQorS09WQcSMRVZJxIYtTUxBREVOT1ZJxIYgT0xHQQorS09WQcSMRVZJxIYgTUxBREVOCitLT1ZBxIxFVknEhiBOQURBCitLT1ZBxIxFVknEhiBOQURFxb1EQQorS09WQcSMRVZJxIYgTkFUQUxJSkEKK0tPVkHEjEVWScSGIE5FQk9KxaBBCitLT1ZBxIxFVknEhiBORURFTEpLQQorS09WQcSMRVZJxIYgTkVERUxKS08KK0tPVkHEjEVWScSGIE5JS09MQQorS09WQcSMRVZJxIYgTklLT0xBCitLT1ZBxIxFVknEhiBOSUtPTEEKK0tPVkHEjEVWScSGIE9MR0lDQQorS09WQcSMRVZJxIYgT1pSRU4KK0tPVkHEjEVWScSGIFBBVkxFCitLT1ZBxIxFVknEhiBQQVZMRQorS09WQcSMRVZJxIYgUEVUQVIKK0tPVkHEjEVWScSGIFJBREVOS08KK0tPVkHEjEVWScSGIFJBREUKK0tPVkHEjEVWScSGIFJBRElWT0pFCitLT1ZBxIxFVknEhiBSQURJVk9KCitLT1ZBxIxFVknEhiBSQURJVk9KCitLT1ZBxIxFVknEhiBSQURNSUxBCitLT1ZBxIxFVknEhiBSQURPSktBCitLT1ZBxIxFVknEhiBSQURPSktPCitLT1ZBxIxFVknEhiBSQURPTUFOCitLT1ZBxIxFVknEhiBSQURPU0xBVgorS09WQcSMRVZJxIYgUkFET1ZBTgorS09WQcSMRVZJxIYgUkFKS08KK0tPVkHEjEVWScSGIFJBSktPCitLT1ZBxIxFVknEhiBSQU5LTworS09WQcSMRVZJxIYgUkVMSkEKK0tPVkHEjEVWScSGIFJVxb1JQ0EKK0tPVkHEjEVWScSGIFJVxb1JQ0EKK0tPVkHEjEVWScSGIFNBVkEKK0tPVkHEjEVWScSGIFNBVkEKK0tPVkHEjEVWScSGIFNBVkEKK0tPVkHEjEVWScSGIFNBVktBCitLT1ZBxIxFVknEhiBTQVZPCitLT1ZBxIxFVknEhiBTRUtVTEEKK0tPVkHEjEVWScSGIFNJTUVPTgorS09WQcSMRVZJxIYgU0xBxJBBTkEKK0tPVkHEjEVWScSGIFNMQVZJQ0EKK0tPVkHEjEVWScSGIFNMQVZLTworS09WQcSMRVZJxIYgU0xBVktPCitLT1ZBxIxFVknEhiBTTEFWS08KK0tPVkHEjEVWScSGIFNMQVZLTworS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU1BBU0VOSUpBCitLT1ZBxIxFVknEhiBTUkJJSkFOS0EKK0tPVkHEjEVWScSGIFNSRVRBCitLT1ZBxIxFVknEhiBTUkVURU4KK0tPVkHEjEVWScSGIFNUQU5BCitLT1ZBxIxFVknEhiBTVEFOS0EKK0tPVkHEjEVWScSGIFNURVZBTgorS09WQcSMRVZJxIYgU1RFVkFOCitLT1ZBxIxFVknEhiBTVEVWQU4KK0tPVkHEjEVWScSGIFNURVZBTgorS09WQcSMRVZJxIYgU1RFVkFOCitLT1ZBxIxFVknEhiBTVEVWTworS09WQcSMRVZJxIYgU1RFVk8KK0tPVkHEjEVWScSGIFNURVZPCitLT1ZBxIxFVknEhiBTVkVUTEFOQQorS09WQcSMRVZJxIYgU1ZFVExBTkEKK0tPVkHEjEVWScSGIFNWRVRMQU5BCitLT1ZBxIxFVknEhiBTVkVUT0xJSworS09WQcSMRVZJxIYgU1ZFVE9aQVIKK0tPVkHEjEVWScSGIFNWRVRPWkFSCitLT1ZBxIxFVknEhiBTVkVUT1pBUgorS09WQcSMRVZJxIYgVEVSRVpBCitLT1ZBxIxFVknEhiBUT0RPUgorS09WQcSMRVZJxIYgVE9NSVNMQVYKK0tPVkHEjEVWScSGIFZBU0EKK0tPVkHEjEVWScSGIFZFTElNSVIKK0tPVkHEjEVWScSGIFZFTElNSVIKK0tPVkHEjEVWScSGIFZFUkEKK0tPVkHEjEVWScSGIFZFUkEKK0tPVkHEjEVWScSGIFZFUkEKK0tPVkHEjEVWScSGIFZJRE9TQVZBCitLT1ZBxIxFVknEhiBWSURPU0FWQQorS09WQcSMRVZJxIYgVklET1NBVkEKK0tPVkHEjEVWScSGIFZJRE9TQVZBCitLT1ZBxIxFVknEhiBWSU5LTworS09WQcSMRVZJxIYgVkxBRElNSVIKK0tPVkHEjEVWScSGIFZMQURJTUlSCitLT1ZBxIxFVknEhiBWTEFESU1JUgorS09WQcSMRVZJxIYgVkxBRElTTEFWCitLT1ZBxIxFVknEhiBWT0pJTgorS09WQcSMRVZJxIYgVk9KSU4KK0tPVkHEjEVWScSGIFZPSklTTEFWIERJUEwgSU5HCitLT1ZBxIxFVknEhiBWVUpPCitLT1ZBxIxFVknEhiBWVUtBxaBJTgorS09WQcSMRVZJxIYgVlVLQcWgSU4KK0tPVkHEjEVWScSGIFpERU5LTworS09WQcSMRVZJxIYgWkRSQVZLTworS09WQcSMRVZJxIYgWk9SQU4gRFIKK0tPVkHEjEVWScSGIFpPUkFOCitLT1ZBxIxFVknEhiBaT1JBTgorS09WQcSMRVZJxIYgWk9SSUNBCitLT1ZBxIxFVknEhiBaT1JJQ0EKK0tPVkHEjEVWScSGIFpWT05JTUlSS0EKK0tPVkHEjEnEhiDFvUlWS08KK0tPVkHEjEnEhiBBTklDQQorS09WQcSMScSGIEJPxb1BTkEKK0tPVkHEjEnEhiBCT1JJVk9KCitLT1ZBxIxJxIYgRFJBR0FOQQorS09WQcSMScSGIERVxaBBTktBCitLT1ZBxIxJxIYgRFXFoEFOCitLT1ZBxIxJxIYgSk9WQU4KK0tPVkHEjEnEhiBKT1ZBTgorS09WQcSMScSGIEpPVkFOCitLT1ZBxIxJxIYgTEpFUE9TQVZBCitLT1ZBxIxJxIYgTFVLQQorS09WQcSMScSGIE1JTEFOCitLT1ZBxIxJxIYgTUlMRU5LTworS09WQcSMScSGIE1JUk9TTEFWCitLT1ZBxIxJxIYgTUlST1NMQVYKK0tPVkHEjEnEhiBORURFTEpLTworS09WQcSMScSGIE5JS09MQQorS09WQcSMScSGIFBFVEFSCitLT1ZBxIxJxIYgUkFET1NMQVYKK0tPVkHEjEnEhiBTTE9CT0RBTgorS09WQcSMScSGIFNUQU5JU0xBVgorS09WQcSMScSGIFRBTkFTSUpFCitLT1ZBxIxJxIYgVE/FoEEKK0tPVkHEjEnEhiBUT01JU0xBVgorS09WQcSMScSGIFZFU05BCitLT1ZBxIxJSyBNQVJHSVRBCitLT1ZBxIxJSyBNQVJJSkEKK0tPVkFMxIxJSyBWTEFESVNMQVYKK0tPVkFMT1ZTS0kgVEVPRE9SCitLT1ZBTk9WScSGIFBFVEFSCitLT1ZBUiBKQU5KQQorS09WQVLEjElLIEFORFJJSkEKK0tPVkFSxIxJSyBNQVJJSkEKK0tPVkFSSUsgVkFMRVJJSkEKK0tPVkVJTkRMIEpPU0lQCitLT1ZFTEogVE9NSVNMQVYKK0tPVknEhiBEUkFHSUNBCitLT1ZJxIYgTkFEQQorS09WScSGIFNMT0JPREFOCitLT1ZJSkFOScSGIFZMQURJTUlSCitLT1ZJTsSMScSGIEJPSkFOCitLT1ZJTsSMScSGIE1JTEFOCitLT1ZJTsSMScSGIE5BREEKK0tPVklOxIxJxIYgTkFUQcWgQQorS09WSU7EjEnEhiBTTE9CT0RBTiBESVBMIElORworS09WSU7EjEnEhiBTVE9KQU4KK0tPVkpBTknEhiBBTEVLU0FOREFSCitLT1ZKQU5JxIYgSk9WQU4KK0tPVkpBTknEhiBNSUxPUkFECitLT1ZKQU5JxIYgTkFEQQorS09WSkFOScSGIE5FTkFECitLT1ZKQU5JxIYgUEVSQQorS09WSkFOScSGIFNBVkEKK0tPVkxKQU4gxJBPUsSQRQorS09WTEpBTiBTQVZPCitLT1ZSTElKQSBKT1ZBTgorS09aQUsgTUFSSUpBCitLT1pBS0lWIElWQU4KK0tPWkFSIFJBREUKK0tPWkFSxIxJxIYgSk9WQU5LQQorS09aQVLEjEnEhiBKT1ZBTgorS09aQVLEjEnEhiBKT1ZBTgorS09aQVLEjEnEhiBNQVJLTworS09aQVLEjEnEhiBNSUxBTgorS09aQVJBQyBNScSGTworS09aQVJFViDFvUFSS08KK0tPWkFSRVYgxb1JVktPCitLT1pBUkVWIEFMRUtTQU5EUkEKK0tPWkFSRVYgQk9HT0xKVUIKK0tPWkFSRVYgREFSSU5LQQorS09aQVJFViBESU1JVFJJSkUKK0tPWkFSRVYgRElNSVRSSUpFCitLT1pBUkVWIERSQUdJQ0EKK0tPWkFSRVYgR09TUEFWQQorS09aQVJFViBMQVpBUgorS09aQVJFViBMSlVCSUNBCitLT1pBUkVWIE1BUklKQQorS09aQVJFViBNSUxBTgorS09aQVJFViBNSUxLQQorS09aQVJFViBNTEFERU4KK0tPWkFSRVYgTkVERUxKS08KK0tPWkFSRVYgUEFWTEUKK0tPWkFSRVYgUEVUQVIKK0tPWkFSRVYgU0FWQQorS09aQVJFViBTQVZBCitLT1pBUkVWIFRPRE9SCitLT1pBUkVWScSGIFJBRElOS0EKK0tPWkFSRVZJxIYgWk9SQU4KK0tPWkFST1YgxJBPUsSQRQorS09aQVJPViBBTklDQQorS09aQVJPViBHQVZSQQorS09aQVJPViBJVkFOCitLT1pBUk9WIEpPVkFOS0EKK0tPWkFST1YgS0FUSUNBCitLT1pBUk9WIE1JTE/FoAorS09aQVJPViBOQVRBTElKQQorS09aQVJPViBQQVZMRQorS09aQVJPViBQQVZMRQorS09aQVJPViBTUkJJU0xBVgorS09aQVJPViBUT01JU0xBVgorS09aQVJTS0kgxb1JVkFOCitLT1pBUlNLSSDFvUlWS08KK0tPWkFSU0tJIExJRElKQQorS09aQVJTS0kgTUFSSUpBCitLT1pBUlNLSSBNSVJPU0xBVgorS09aQVJTS0ktUkFKScSGIFZFUklDQQorS09aQVJTS0kgU0xPQk9EQU4KK0tPWkFSU0tJIFNPRklKQQorS09aQVJTS0kgU1RFVkFOCitLT1pBUlNLSSBURU9ET1JBCitLT1pBUlNLSSBWQVNJTElKRQorS09aQVJTS0kgVkVSQQorS09aQVJTS0kgVk9KSVNMQVYKK0tPWkFSU0tJIFZPSklTTEFWCitLT1pCQcWgScSGIFNURVZBTgorS09aScSGIEJPR0RBTgorS09aScSGIFBFVEFSCitLT1pJxIYgUkFUS08KK0tPWknEhiBST8W9QQorS09aScSGIFNBVkEKK0tPWknEhiBTVEFOS08KK0tPWknEhiBWRUxKS08KK0tPWklOQSBJVkFOCitLT1pJTkEgTUFSSUNBCitLT1pMSUsgS0FUQVJJTkEKK0tPWkxJSyBMQUpPxaAKK0tPWkxJTkEgREVTQU5LQQorS09aTElOQSBEVcWgS08KK0tPWkxJTkEgSkVLQQorS09aTElOQSBNSUxFCitLT1pMSU5BIFpMQVRJQ0EKK0tPWkxPVkHEjEtJIMW9SVZLTworS09aTE9WQcSMS0kgR09SREFOQQorS09aTE9WQcSMS0kgTEpVQkEKK0tPWkxPVkHEjEtJIFNBVkEKK0tPWkxPVkHEjEtJIFNPRklKQQorS09aTE9WQcSMS0kgVkVTRUxJTgorS09aTE9WScSGIEJPUklTCitLT1pMT1ZJxIYgU0FWQQorS09aTUEgxaBBTkRPUgorS09aTUEgRVRFTAorS09aTUEgRkVSRU5DCitLT1pNQSBKT8W9RUYKK0tPWk1BIEpPU0lQCitLT1pNSURJUy1QRVRST1ZJxIYgQU5BCitLT1pPTUFSQSDEkE9SxJBFCitLT1pPTUFSQSBKT1ZPCitLT1pPTUFSQSBMSlVCSUNBCitLT1pPTUFSQSBNQVJJSkEKK0tPWk9NQVJBIFpPUkFOCitLT1pPTUFSScSGIE1BUklKQQorS09aT01PUkEgQk/FvUlEQVIKK0tPWk9NT1JBIEJSQU5LTworS09aT01PUkEgSUxJSkEKK0tPWk9NT1JBIEpPS0EKK0tPWk9NT1JBIEpPVk8KK0tPWk9NT1JBIExBWk8KK0tPWk9NT1JBIE1JTEFOCitLT1pPTU9SQSBNSUxFCitLT1pPTU9SQSBNSUxPSktPCitLT1pPTU9SQSBNSVJPU0xBVgorS09aT01PUkEgUEVUQVIKK0tPWk9NT1JBIFJBRE9NSVIKK0tPWk9NT1JBIFNSxJBBTgorS09aT01PUkEgVEFUSkFOQQorS09aT01PUkEgVkFTSUxJSkUKK0tPWk9NT1JJxIYgQlJBTklTTEFWQSBEUiBMRUtBUgorS09aVU5PVknEhiBNSVJPU0xBVgorS1LEjEFESU5BQyBLT1NUQQorS1LEjEFESU5BQyBOSUtPTEEKK0tSxIxFRElOQUMgTUlPRFJBRworS1LEjEVESU5BQyBUSU1BCitLUsSMRUxJxIYgQU5EUklKQQorS1LEjE1BUiDFvUVMSktPCitLUsSMTUFSIENWSUpPCitLUsSMTUFSIERSQUdPTUlSCitLUsSMTUFSIERVxaBLTworS1LEjE1BUiBKT1ZBTgorS1LEjE1BUiBMRVBPU0FWQQorS1LEjE1BUiBMSlVCSUNBCitLUsSMTUFSIExKVUJJQ0EKK0tSxIxNQVIgTUlMQU4KK0tSxIxNQVIgTUlMQU4KK0tSxIxNQVIgTUlSS08KK0tSxIxNQVIgUEFORQorS1LEjE1BUiBWQVNPCitLUsSMTUFSIFZJTktPCitLUsSMTUFSIFpPUkFOCitLUsSMTUFSIFpPUkFOCitLUsSMTUFSSUsgREFOSUxPCitLUsSMTUFSSUsgUFJFRFJBRworS1LEjE8gQk/FvUlEQVIKK0tSxIxPIE1JTEVOS08KK0tSxIxPIFJBU0lNCitLUsSMTyBSQVNJTQorS1LFoEVWIEJPUklTCitLUsWgRVYgSVZBTgorS1LFoEVWIEpVTElKQU5BCitLUsWgRVYgSlVMS0lDQQorS1LFoEnEhiBEQVJBCitLUsWgScSGIElHTkpBVAorS1LFoEnEhiBKRUxBCitLUsWgScSGIFRPTU8KK0tSxaBJTiBKT1ZPCitLUsWgT1ZJxIYgSkVMRU5BCitLUsWgVEVOScSGIERFU0FOS0EKK0tSxb1BIE1JTEVOS08KK0tSxb1JxIYgU0lNTworS1LEkEnEhiBTUE9NRU5LQQorS1JBxIxFTlNLSSBCT1JJU0xBVgorS1JBxIxFVlNLSSBBUE9TVE9MCitLUkHEjFVOIElWQU4KK0tSQcSMVU4gVFJBSkFOCitLUkHEjFVOIFRSQUpBTgorS1JBxIxVTk9WIFBFVEFSCitLUkHEjFVOT1YgU1RFVkFOCitLUkHEjFVOT1ZJxIYgxb1JVk9SQUQKK0tSQcSMVU5PVknEhiBWRUxKS08KK0tSQcSGQUsgQk/FoEtPCitLUkFHScSMRUsgS0xBUkEKK0tSQUdJxIYgQklMSkFOQQorS1JBR0nEhiBCT1JBCitLUkFHScSGIExKSUxKQU5BCitLUkFHScSGIFpPUkFOCitLUkFHT1ZJxIYgTUFSSU5LTworS1JBR09WScSGIFZMQURJTUlSCitLUkFHVUpFViBEVcWgQU4KK0tSQUdVSkVWScSGIE1JTE9SQUQgRFIgTEVLQVIKK0tSQUdVSkVWScSGIFJBSktPCitLUkFHVUpFVknEhiBTVEFOSVNMQVYgRFIgTEVLQVIKK0tSQUdVTEogQUxFS1NBTkRBUgorS1JBR1VMSiBEVcWgQU5LQQorS1JBR1VMSiBKRUxBCitLUkFHVUxKIExBWk8KK0tSQUdVTEogU0FWS0EKK0tSQUdVTEpFVknEhiBaT1JJQ0EKK0tSQUrEjEVWScSGIE1JT0RSQUcKK0tSQUrEjEkgVkxBRElNSVIKK0tSQUrEjElOT1ZJxIYgSk9WQU4gRFIgTEVLQVIKK0tSQUrFoEnEhiBNSVJLTworS1JBSkHEjEVWScSGIEJPUklTTEFWCitLUkFKQcSMRVZJxIYgSElMREEKK0tSQUpBxIxFVknEhiBNSVJKQU5BCitLUkFKQcSMRVZJxIYgVE9NSVNMQVYKK0tSQUpBxIxFVknEhiBaT1JBTgorS1JBSkNBUiBWTEFESU1JUgorS1JBSkNFUiBFVUdFTgorS1JBSkNFUiBJUkVOQQorS1JBSkNFUiBJVkFOCitLUkFKQ0VSIFBFVEFSCitLUkFKScWgTklLIMW9SVZPUkFECitLUkFKScWgTklLIEtSSVNUSU5BCitLUkFKScSGIEFHSUNBCitLUkFKSU5BIEFMRUtTQU5EQVIKK0tSQUpJTkEgRklMSVAKK0tSQUpJTk9WScSGIEJSQU5LTworS1JBSklOT1ZJxIYgTEFaQVIKK0tSQUpJTk9WScSGIE1JTEFOCitLUkFKSU5PVknEhiBQQVZMRQorS1JBSklOT1ZJxIYgU0lOScWgQQorS1JBSk5JSyDFvUFSS08KK0tSQUpOSUsgTEFaQVIKK0tSQUpOSUtFUiBOQU5ET1IKK0tSQUpOT1YgQk9HREFOCitLUkFKTk9WIEJPR09MSlVCCitLUkFKTk9WIEdPUkFOCitLUkFKTk9WScSGIMSQT1LEkEUKK0tSQUpOT1ZJxIYgxJBPUsSQRQorS1JBSk5PVknEhiDEkFVSTworS1JBSk5PVknEhiBCT8WgS08KK0tSQUpOT1ZJxIYgQk9HREFOCitLUkFKTk9WScSGIEpBRFJBTktBCitLUkFKTk9WScSGIE1JTEnEhgorS1JBSk5PVknEhiBNSUxJQ0EKK0tSQUpOT1ZJxIYgTklLT0xBCitLUkFKTk9WScSGIFBFVEFSCitLUkFKTk9WScSGIFJBREUKK0tSQUpOT1ZJxIYgU0xBVklDQQorS1JBSk5PVknEhiBWRVJBCitLUkFKT1ZBTiBNSVJKQU5BCitLUkFKT1ZBTiBNSVJPU0xBVgorS1JBSyBNScWgQQorS1JBS0FOT1ZJxIYgRFXFoEFOCitLUkFLQU5PVknEhiBWT0pJU0xBVgorS1JBTElLIE1JUk9TTEFWCitLUkFMSUsgT0xJTktBCitLUkFMSUsgUEFWTEUKK0tSQUxJSyBTVEVWQU4KK0tSQUxKIFZBTEVOVElOCitLUkFMSiBaVk9OSU1JUgorS1JBTEpFVkHEjEtJIEJBUkJBUkEKK0tSQUxKRVZBxIxLSSBJTElKQQorS1JBTEpFVkHEjEtJIEpPU0lQCitLUkFMSkVWScSGIEJPU0lMSktBCitLUkFMSkVWScSGIERVxaBBTgorS1JBTEpFVknEhiBNQVJJQ0EKK0tSQUxKRVZJxIYgTUlMS0EKK0tSQUxKRVZJxIYgU0FWTworS1JBTEpFVknEhiBWTEFESU1JUiBEUgorS1JBTEpJxIYgSkVMRU5BCitLUkFMSknEhiBWTEFEQQorS1JBTkrEjEVWScSGIEdPUkRBTkEKK0tSQU5KxIxFVknEhiBKT1NJUAorS1JBUyBKRUxFTkEKK0tSQVNBVkFDIMW9SVZPUkFECitLUkFTQVZBQyBNSUxLQQorS1JBU0FWQUMgTUlMT1JBRAorS1JBU0FWQUMgTUlMT1JBRAorS1JBU0FWQUMgUlXFvUlDQQorS1JBU0nEhiBCUkFOSVNMQVYKK0tSQVNJxIYgRFXFoEFOCitLUkFTScSGIEdPTFVCCitLUkFTScSGIE1JTE9KRQorS1JBU0nEhiBOSUtPTEEKK0tSQVNJxIYgU1RFVkFOCitLUkFTS08gSkFOS08KK0tSQVNOScSGIElSSU5BCitLUkFTTknEhiBWRVJBCitLUkFTTklLIFZMQVRLTworS1JBU05JSyBaVk9OS08KK0tSQVNPSkVWScSGIEtPTlNUQU5USU4KK0tSQVNPSkVWScSGIFpPUkFOCitLUkFTVUxBIFRPTUEKK0tSQVNVTEpBIERVxaBBTgorS1JBU1VMSkEgU1RFVkFOCitLUkFVUyBBTkEKK0tSQVVTIE9UTworS1JBVsSMRU5LTyBQRVRBUgorS1JBVkFSVcWgScSGIERSQUdBTgorS1JBVkFSVcWgScSGIElMSUpBCitLUkFWQVJVxaBJxIYgVFJJVlVOCitLUkFWQVJVxaBJxIYgVklUT01JUgorS1JBVknEhiBEVcWgQU4KK0tSQVZJxIYgTUlMQU4KK0tSQVZJxIYgUEVUQVIKK0tSQVZMSkFOQUMgQUxFS1NBTkRSQQorS1JBVkxKQU5BQyBJVkFOS0EKK0tSQkFOSkVWScSGIEFMRUtTQU5EQVIKK0tSQkFOSkVWScSGIE1JTEFOCitLUkJBTkpFVknEhiBTQcWgQQorS1JCQVZBQyBKRUxBCitLUkNJxIYgQlJBVElNSVIKK0tSQ1VOT1ZJxIYgQkxBR09KRQorS1JExb1BTEnEhiBEUkFHQU4KK0tSRMW9QUxJxIYgU1RFVkFOCitLUkTFvUnEhiBWSURPSkUKK0tSRcWgTyBFTUlSCitLUkVDVUwgTElESUpBCitLUkVDVUxKIE1BUklKQQorS1JFRyBFRFVBUkQKK0tSRUcgVkxBRElNSVIKK0tSRUpJxIYgQk9SSVNMQVYKK0tSRUpJxIYgSk9WQU4KK0tSRUpJxIYgTUFSSU5LTworS1JFSknEhiBTVEFOSVNMQVYKK0tSRUpJxIYgU1RBTklTTEFWCitLUkVKScSGIFNUT0pBCitLUkVLScSGIEJBUknFoEEgRFIKK0tSRUtJxIYgRU5WRVIKK0tSRUtJxIYgRlJBTkpBCitLUkVLScSGIE1JTEVOQQorS1JFS08gTEpVQklDQQorS1JFTUVOT1ZJxIYgQk9SSVNMQVYKK0tSRU1FTk9WScSGIEtMQVJBCitLUkVNRU5PVknEhiBMSlVCQQorS1JFTUVOT1ZJxIYgTEpVQkEKK0tSRU1FTk9WScSGIExKVUJBCitLUkVNRU5PVknEhiBNSUxBTktBCitLUkVNRU5PVknEhiBNSUxFTkEKK0tSRU1FTk9WScSGIE1JTEVOS08KK0tSRU1FTk9WScSGIE1JTE/FoAorS1JFTUVOT1ZJxIYgTUlSS08KK0tSRU1FTk9WScSGIE5FREVMSktPCitLUkVNRU5PVknEhiBQRVRBUgorS1JFTUVOT1ZJxIYgUkFET1NMQVYKK0tSRU1FTk9WScSGIFNJTknFoEEKK0tSRU1FTk9WScSGIFNORcW9QU5BCitLUkVNRU5PVknEhiBTVEFOS08KK0tSRU1FTk9WScSGIFNURVZPCitLUkVNRU5PVknEhiBWT0pJTgorS1JFTUVSIEVMSVpBQkVUQQorS1JFTUVSIEZSQU5KQQorS1JFTUVSIEpPVkFOCitLUkVNRVIgS0FUSUNBCitLUkVNRVIgTUFUSUpBCitLUkVNRVIgUEFKQQorS1JFTUnEhiBEUkFHQU4KK0tSRU1JxIYgTEpVQk9NSVIKK0tSRU1QQVNLSS1BTkRSScSGIEhJTERBCitLUkVNUEFTS0kgRUxJWkFCRVRBCitLUkVTQU5LTyBMQVNMTworS1JFU0FOS08gTUFSR0lUQQorS1JFU0FOS08gTUFSSUpBCitLUkVTScSGIEpBTkpBCitLUkVTScSGIE1JTEVOQQorS1JFU0nEhiBNSVRBUgorS1JFU0nEhiBTTEFWS08KK0tSRVNPIMWgQcSGSVIKK0tSRVNPSkEgRFXFoEtPCitLUkVTT0pBIE1BUklOS08KK0tSRVNPSkVWScSGIERBTUpBTgorS1JFU09KRVZJxIYgSk9WQU5LQQorS1JFU09KRVZJxIYgSk9WQU4KK0tSRVNPSkVWScSGIFNSQk9TTEFWCitLUkVTT0pFVknEhiBWRVNOQQorS1JFU09KRVZJxIYgWkRSQVZLTworS1JFU09WScSGIFNMQVZLTworS1JFU09WScSGIFNMT0JPREFOCitLUkVTT1ZJxIYgVkFTTworS1JFU1RBIEFSUEFECitLUkVTVEEgQVRJTEEKK0tSRVNUScSGIERBRklOQQorS1JFU1RJxIYgTkFEQQorS1JFU1RJxIYgU1RFVkFOCitLUkVTVEnEhiBWTEFESU1JUgorS1JFVkXFoEnEhiBLQVJMTworS1JFVkXFoEnEhiBLQVRBCitLUkdBIEdBVlJBCitLUkdBIE1BTkUKK0tSR0EgTUFSQQorS1JHQSBNSUxBTgorS1JHQSBNSUxPxaAKK0tSR0EgVkFTQQorS1JHSU4gTUxBREVOCitLUkdJTiBOQURBCitLUkdJTiBORURFTEpLTworS1JHT1ZJxIYgRFXFoEFOS0EKK0tSR09WScSGIERVxaBBTktBCitLUkdPVknEhiBKT1ZPCitLUkdPVknEhiBNQUxJxaBBCitLUkdPVknEhiBNQVJJSkEKK0tSR09WScSGIE1JxIZPCitLUkdPVknEhiBNSUxBTgorS1JHT1ZJxIYgTUlMT1JBRCBEUiBMRUtBUgorS1JHT1ZJxIYgTU9NxIxJTE8KK0tSR09WScSGIFJBVEtPCitLUkdPVknEhiBTTUlMSkEKK0tSR09WScSGIFNORcW9QU5BCitLUkdPVknEhiBTVkVUT1pBUgorS1JHT1ZJxIYgVkxBREEKK0tSR09WScSGIFZVS09NQU4gRElQTCBJTkcKK0tSR09WScSGIFpPUklDQQorS1JJxaAgUEVUQVIKK0tSScWgQU4gQk9TSUxKS0EKK0tSScWgQU4gRFJBR09KTE8KK0tSScWgQU4gTUFUSUpBCitLUknFoEFOIE1JTE/FoAorS1JJxaBBTiBWVUtJQ0EKK0tSScWgQU4gWkRSQVZLTworS1JJxaBBTk9WIEpPVkFOCitLUknFoEFOT1ZJxIYgRFJBR09NSVIKK0tSScWgVE8gSlVMSUpBTkEKK0tSScW9IEpBTktPCitLUknFvSBQQVZFTAorS1JJxb1BSyBBTkEKK0tSScW9QU4gxaBBTkRPUgorS1JJxb1BTiDEkFVSQQorS1JJxb1BTiBBTklDQQorS1JJxb1BTiBFRFVBUkQKK0tSScW9QU4gSkFOT8WgCitLUknFvUFOIEpVTEEKK0tSScW9QU4gTEFTTE8KK0tSScW9QU4gTUFSSUpBCitLUknFvUFOIE1BVElKQQorS1JJxb1BTiBNSUtMT8WgCitLUknFvUFOIFJPxb1BCitLUknFvUFOScSGIEpPVkFOCitLUknFvUFOScSGIEpPVkFOCitLUknFvUFOScSGIE1JTEVOS08KK0tSScW9QU5JxIYgU0xBxJBBTkEKK0tSScW9QU5JxIYgVkxBRElNSVIKK0tSScW9QU5PVknEhiDFvVXFvUFOQQorS1JJxb1OQVIgQk9KQU4KK0tSScW9TkFSIE1BUkEKK0tSScW9TkFSIE1JUktPIERSIERJUEwgSU5HCitLUknFvU5BUiBUT01BIERJUEwgSU5HCitLUklNxaBBTUhBTE9WIFpBSURBCitLUklOS09WU0tJIEFMRUtTQU5EQVIKK0tSSU5LT1ZTS0kgQUxFS1NBTkRBUgorS1JJTktPVlNLSSBWRVJPTklLQQorS1JJU1RJxIYgTUFSSUpBCitLUklTVEnEhiBOQURBCitLUklTVElBTiBKT8W9RUYKK0tSSVNUT1ZJxIYgTUlST1NMQVZBCitLUklTVE9WScSGIFJVRE9MRgorS1JJVkFLIEFOQQorS1JJVkFLIE1JUk9TTEFWCitLUklWScSGIERSQUdBTkEKK0tSSVZJxIYgTEpJTEpBTkEKK0tSSVZJxIYgTklLT0xBCitLUklWT8WgSUpBIMW9SVZLTworS1JJVk/FoElKQSBGUkFOSk8KK0tSSVZPxaBJSkEgTUlMRQorS1JJVk9LQVBJxIYgQU1BTElKQQorS1JJVk9LQVBJxIYgREFOSUNBCitLUklWT0tBUEnEhiBNQVJUSU4KK0tSSVZPS0FQScSGIE5FREVMSktPCitLUklWT0tBUEnEhiBORVZFTktBIERJUEwgRUNDCitLUklWT0tBUEnEhiBSQURPU0xBVgorS1JJVk9LQVBJxIYgU0xPQk9EQU4KK0tSSVZPS0FQScSGIFNMT0JPREFOCitLUklWT0tBUEnEhiBTVEVWQU4KK0tSSVZPS0FQScSGIFZMQURJTUlSCitLUklWT0tVxIZBIMSQT1LEkEUKK0tSSVZPS1XEhkEgREVKQU4gRElQTCBJTkcKK0tSSVZPS1XEhkEgRElNSVRSSUpFCitLUklWT0tVxIZBIERSQUdJQ0EKK0tSSVZPS1XEhkEgRFJBR09NSVIKK0tSSVZPS1XEhkEgRFJBR09NSVIKK0tSSVZPS1XEhkEgRFXFoEFOCitLUklWT0tVxIZBIEpFTElTQVZFVEEKK0tSSVZPS1XEhkEgSk9WQU4KK0tSSVZPS1XEhkEgSlVMSUpBTkEKK0tSSVZPS1XEhkEgTUlMQU4KK0tSSVZPS1XEhkEgTUlMSUNBCitLUklWT0tVxIZBIE1JTEtBCitLUklWT0tVxIZBIE1JT0RSQUcKK0tSSVZPS1XEhkEgUEVUQVIKK0tSSVZPS1XEhkEgUkFET1NMQVYKK0tSSVZPS1XEhkEgUkFET1ZBTgorS1JJWkJBSSBaT0xUQU4KK0tSS0VMScSGIFNMT0JPREFOCitLUktFTEpFxaAgQk9SSVMKK0tSS0VMSknEhiBNT03EjElMTworS1JLRUxKScSGIFNWRVRJU0xBVgorS1JLScSGIE1JTE9WQU4KK0tSS0xFQyBKT1NJUAorS1JLTEVDIFZFUkEKK0tSS0xFQyBWTEFESU1JUgorS1JLTEpFxaAgxJBVUk8KK0tSS0xKRcWgIEJPUkEKK0tSS0xKRcWgIE1JTEUgRFIKK0tSS0xKScSGIMSQVVJPCitLUktMSknEhiBEUkFHQU4KK0tSS0xKScSGIE1JTEFOCitLUktMSknEhiBNSUxPVkFOCitLUktMSknEhiBOSUtPTEEKK0tSS0xKScSGIE9TVE9KQQorS1JLTEpVxaAgQk/FoEtPCitLUktMSlXFoCBCUkFOS08KK0tSS0xKVcWgIERSQUdBTkEKK0tSS0xKVcWgIERVxaBBTktBCitLUktMSlXFoCBEVcWgQU4KK0tSS0xKVcWgIEpFTEVOQQorS1JLTEpVxaAgSkVMSUNBCitLUktMSlXFoCBLUklTVElOQQorS1JLTEpVxaAgTEpVQklOS0EKK0tSS0xKVcWgIExKVUJPTUlSS0EgRFIKK0tSS0xKVcWgIE1JTEFOCitLUktMSlXFoCBNSUxBTgorS1JLTEpVxaAgTUlMSUNBCitLUktMSlXFoCBNSUxPUkFECitLUktMSlXFoCBNSVJPU0xBVgorS1JLTEpVxaAgTU9NxIxJTE8KK0tSS0xKVcWgIFBFVEFSCitLUktMSlXFoCBQRVRBUgorS1JLTEpVxaAgUkFERQorS1JLTEpVxaAgU0xBVktPCitLUktMSlXFoCBTTE9CT0RBTgorS1JLTEpVxaAgU1RFVkFOCitLUktMSlXFoCBWRVJJQ0EKK0tSS09CQUJJxIYgSUxJSkEKK0tSS09CQUJJxIYgVkVSSUNBCitLUktPVknEhi1KVVBFSyBEVcWgQU5LQQorS1JNQVIgRFXFoEFOCitLUk1BUiBKQVNOQQorS1JNQVIgTUFSS08KK0tSTUFSIFpPUkEKK0tSTVBPVCBHT0pLTworS1JNUE9UIExBWkFSCitLUk1QT1RJxIYgQU7EkEVMS0EKK0tSTVBPVEnEhiBWT0pJU0xBViBESVBMIFBSQVZOSUsKK0tSTVBPVEnEhiBWVUtJQ0EKK0tSTsSMRVZJxIYgQU7EkEVMS0EKK0tSTkFKQUMgxb1JVkFOCitLUk5BSkFDIElWQU4KK0tSTkFKQUMgTU9NxIxJTE8KK0tSTkFKQUMgTkVWRU5LQQorS1JOQUpBQyBQRVRBUgorS1JOQUpBQyBSQURPVkFOCitLUk5BSkFDIFpMQVRJQ0EKK0tSTkFKU0tJIE1JTE9SQUQKK0tSTkRJSkEgQk9HT0xKVUIKK0tSTkRJSkEgQlJBTktPCitLUk5ESUpBIE1BUktPCitLUk5ESUpBIE1JTE9WQU4KK0tSTkRJSkEgTkVOQUQKK0tSTkRJSkEgUEVUQVIKK0tSTkRJSkEgU1RBTkEKK0tSTkRJSkEgU1RFVk8KK0tSTkRJSkEgVk9KSU4KK0tSTkVUQSBCT0dEQU4KK0tSTkVUQSBKRUxLQQorS1JORVRBIE1JTE9SQUQKK0tSTkVUQSBNSUxPU0FWQQorS1JORVRBIE5JS09MQQorS1JORVRBIFJBREUKK0tSTkVUQSBTTE9CT0RBTgorS1JORVRBIFNURVZBTgorS1JORVRJxIYgR09KS08KK0tSTkVUScSGIEpPVkFOCitLUk5JxIYgQU5BCitLUk5JxIYgUEVSQQorS1JOScSGIFJBRE9KS0EKK0tSTknEhiBTVEVWQU4KK0tSTknEhiBTVElQTworS1JOSUpBIE1BUklOS08KK0tSTkpBScSGIERSQUdPCitLUk5KQUnEhiBHT1JBTgorS1JOSkFJxIYgSkVMSVNBVkVUQQorS1JOSkFKScSGIERVxaBBTktBCitLUk5KQUpJxIYgSUxJSkEKK0tSTkpBSknEhiBJVklDQQorS1JOSkFKScSGIEpPVkFOCitLUk5KQUpJxIYgTUlMT8WgCitLUk5KQUpJxIYgTUlST1NMQVYKK0tSTkpBSknEhiBSQURPTUlSCitLUk5KRcWgRVZBQyBTQVZBCitLUk5KRVRBIExFUE9TQVZBCitLUk5KRVRBIE5PVkFLCitLUk5KRVRJTiDFvUlWS08KK0tSTkpFVElOIEJSQU5LTworS1JOSkVUSU4gRFJBR0FOCitLUk5KRVRJTiBKT1ZBTgorS1JOSkVUSU4gS0FUSUNBCitLUk5KRVRJTiBNQUpBCitLUk5KRVRJTiBNSUtBCitLUk5KRVRJTiBTQVZBCitLUk5KScSGIElWQU4KK0tSTkpVTEFDIERVxaBBTgorS1JOT0pFTEFDIERBTklMTworS1JPxaBMQUsgU1RFVkFOCitLUk9NQkhPTEMgRU1JTAorS1JPTUhPTEMgS0FSTE8KK0tST01QScSGIExKSUxKQU5BIFBST0ZFU09SCitLUk9NUEnEhiBMSlVCSUNBCitLUk9NUEnEhiBNSUxBTgorS1JPTVBJxIYgU1RBTktPCitLUk9OQVZFVEVSIEFMRlJFRAorS1JPTknEhiBMQVpBUgorS1JPTknEhiBNSUxFTktPCitLUk9OSkEgSVZBTgorS1JPTkpBIElWQU4KK0tST05KQSBNSUxBTktBCitLUk9QxaAgSElMREEKK0tST1BBxIxFSyBJVkFOCitLUk9QRiBBTsSQRUxLQQorS1JPUEYgRlJBTkpBCitLUlBBTiDFvUVMSktPCitLUlBBTiBJVkFOCitLUlBBTiBMSklMSkFOQQorS1JQQU4gTUlSS08KK0tSUEFOIFNURVZBTgorS1JTTUFOT1ZJxIYgQk/FvUlEQVJLQQorS1JTTUFOT1ZJxIYgQk9HREFOS0EKK0tSU01BTk9WScSGIEJSQU5LTworS1JTTUFOT1ZJxIYgQ1ZJSkFOCitLUlNNQU5PVknEhiBKT1ZBTgorS1JTTUFOT1ZJxIYgS1JTTUFOIERJUEwgSU5HCitLUlNNQU5PVknEhiBMQVpBUgorS1JTTUFOT1ZJxIYgTEpJTEpBTkEKK0tSU01BTk9WScSGIE1JTE/FoAorS1JTTUFOT1ZJxIYgTU9NxIxJTE8KK0tSU01BTk9WScSGIE9CUkVOCitLUlNNQU5PVknEhiBTQcWgQQorS1JTTUFOT1ZJxIYgU0xBVk9KS0EKK0tSU01BTk9WScSGIFNSRVRFTgorS1JTTUFOT1ZJxIYgVkFTQQorS1JTTklLIEpPTgorS1JTTklLIE1BUklKQQorS1JTVEFKScSGIE1JTE9KSUNBCitLUlNUQUpJxIYgUEVSS08KK0tSU1RBTk9WScSGIENWSUpPCitLUlNUQU5PVknEhiBEUkFHT01JUgorS1JTVEFOT1ZJxIYgRlJBTkpBCitLUlNUQU5PVknEhiBJVkFOS0EKK0tSU1RBTk9WScSGIEtPU1RBCitLUlNUQU5PVknEhiBNT03EjElMTworS1JTVEFOT1ZJxIYgUEVUQVIKK0tSU1RFS0FOScSGIMSMRURPTUlSCitLUlNURUtBTknEhiBBTkEKK0tSU1RFS0FOScSGIEtSSVNUSU5BCitLUlNURUtBTknEhiBSQVRPTUlSCitLUlNURVZTS0kgRFJBR09TTEFWCitLUlNURVZTS0kgU1RBTklTTEFWCitLUlNUScSGLcWgVElNQUMgU1BBU0VOSUpBIERSCitLUlNUScSGIMW9QVJLTworS1JTVEnEhiDFvUlWQU4KK0tSU1RJxIYgxb1JVktPCitLUlNUScSGIMW9SVZLTworS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGLcSQVVLEjEpBTlNLSSBSVcW9RU5LQQorS1JTVEnEhiBBTEVLU0FOREFSIERSCitLUlNUScSGIEFMRUtTQU5EQVIKK0tSU1RJxIYgQUxFS1NBTkRBUgorS1JTVEnEhiBBTEVLU0FOREFSCitLUlNUScSGIEFORFJJSkEKK0tSU1RJxIYgQU5JQ0EKK0tSU1RJxIYgQk/FoEtPCitLUlNUScSGIEJPxb1JREFSCitLUlNUScSGIEJPxb1JREFSCitLUlNUScSGIEJPxb1JREFSCitLUlNUScSGIEJPR0RBTgorS1JTVEnEhiBCT1JJVk9KCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOS0EKK0tSU1RJxIYgQlJBTktBCitLUlNUScSGIEJSQU5LTworS1JTVEnEhiBEQU5JQ0EKK0tSU1RJxIYgREVTQU5LQQorS1JTVEnEhiBESU1JVFJJSkUKK0tSU1RJxIYgRE9CUklMQQorS1JTVEnEhiBET0JSSUxBCitLUlNUScSGIERPQlJJTktBCitLUlNUScSGIERPQlJPU0xBVgorS1JTVEnEhiBEUkFHQU4KK0tSU1RJxIYgRFJBR0lOSkEKK0tSU1RJxIYgRFJBR09MSlVCCitLUlNUScSGIERSQUdPU0xBVgorS1JTVEnEhiBEUkFHVVRJTgorS1JTVEnEhiBEVcWgQU4gRElQTCBJTkcKK0tSU1RJxIYgRFXFoEFOCitLUlNUScSGIERVxaBLTworS1JTVEnEhiBFVEVMS0EKK0tSU1RJxIYgRVZJQ0EKK0tSU1RJxIYgR0FWUkEKK0tSU1RJxIYtR1VORUsgTUFSSUpBCitLUlNUScSGIElMSUpBCitLUlNUScSGIElWQU4gRFIKK0tSU1RJxIYgSkVMRU5BCitLUlNUScSGIEpFTEVOQQorS1JTVEnEhiBKT1JEQU4KK0tSU1RJxIYgSk9WQU4KK0tSU1RJxIYgSk9WQU4KK0tSU1RJxIYgSk9WQU4KK0tSU1RJxIYgS0FNRU5LTworS1JTVEnEhiBLQU1FTktPCitLUlNUScSGIEtBVElDQQorS1JTVEnEhiBLQVRJQ0EKK0tSU1RJxIYgS0FUSUNBCitLUlNUScSGIEtPUk5FTElKQQorS1JTVEnEhiBMQVpBUgorS1JTVEnEhiBMQVpBUgorS1JTVEnEhiBMSklMSkFOQQorS1JTVEnEhiBMSklMSkFOQQorS1JTVEnEhiBMSlVCScWgQQorS1JTVEnEhiBMSlVCScWgQQorS1JTVEnEhiBMSlVCSUNBCitLUlNUScSGIExKVUJJTktBCitLUlNUScSGIExKVUJJU0FWCitLUlNUScSGIExKVUJPTUlSCitLUlNUScSGIExKVUJPTUlSCitLUlNUScSGIExKVUJPTUlSCitLUlNUScSGIExKVUJPTUlSCitLUlNUScSGIExKVUJPTUlSCitLUlNUScSGIE1BUklKQQorS1JTVEnEhiBNQVJJSkEKK0tSU1RJxIYgTUFSSUpBCitLUlNUScSGIE1BUktPCitLUlNUScSGIE1JTEFESU4KK0tSU1RJxIYgTUlMQU4KK0tSU1RJxIYgTUlMQU4KK0tSU1RJxIYgTUlMQU4KK0tSU1RJxIYgTUlMRU5LTworS1JTVEnEhiBNSUxFTktPCitLUlNUScSGIE1JTElDQQorS1JTVEnEhiBNSUxJQ0EKK0tSU1RJxIYgTUlMSUNBCitLUlNUScSGIE1JTElDQQorS1JTVEnEhiBNSUxJQ0EKK0tSU1RJxIYgTUlMT8WgCitLUlNUScSGIE1JTE/FoAorS1JTVEnEhiBNSUxPSktPCitLUlNUScSGIE1JTE9SQUQKK0tSU1RJxIYgTUlMT1JBRAorS1JTVEnEhiBNSUxPUkFECitLUlNUScSGIE1JTE9SQUQKK0tSU1RJxIYgTUlMT1ZBTgorS1JTVEnEhiBNSUxPVkFOCitLUlNUScSGIE1JTE9WQU4KK0tSU1RJxIYgTUlOxIxFIERJUEwgSU5HCitLUlNUScSGIE1JT0RSQUcKK0tSU1RJxIYgTUlPRFJBRworS1JTVEnEhiBNSU9EUkFHCitLUlNUScSGIE1JUktPCitLUlNUScSGIE1JUktPCitLUlNUScSGIE1JUk9MSlVCCitLUlNUScSGIE1JUk9MSlVCCitLUlNUScSGIE1JUk9TTEFWQQorS1JTVEnEhiBNSVJPU0xBVkEKK0tSU1RJxIYgTUlST1NMQVYKK0tSU1RJxIYgTUlUQVIKK0tSU1RJxIYgTkFEQQorS1JTVEnEhiBORUJPSsWgQQorS1JTVEnEhiBORU5BRAorS1JTVEnEhiBORU5BRAorS1JTVEnEhiBOSUtPTEEKK0tSU1RJxIYgTklLT0xBCitLUlNUScSGIE5JS09MQQorS1JTVEnEhiBOT1ZBSworS1JTVEnEhiBOT1ZBSworS1JTVEnEhiBQRVRBUiBESVBMIElORworS1JTVEnEhiBQRVRBUgorS1JTVEnEhiBQRVRBUgorS1JTVEnEhiBQRVRBUgorS1JTVEnEhiBQRVRBUgorS1JTVEnEhiBQRVRSVU4KK0tSU1RJxIYgUkFESVNBVgorS1JTVEnEhiBSQURJVk9KCitLUlNUScSGIFJBRElWT0oKK0tSU1RJxIYgUkFET0pFCitLUlNUScSGIFJBRE9NSVIKK0tSU1RJxIYgUkFET01JUgorS1JTVEnEhiBSQURPU0FWCitLUlNUScSGIFJBRE9TTEFWCitLUlNUScSGIFJBRE9WQU4KK0tSU1RJxIYgUkFUS08KK0tSU1RJxIYgUkFUS08KK0tSU1RJxIYgU0FWQQorS1JTVEnEhiBTQVZFVEEKK0tSU1RJxIYgU0lOScWgQQorS1JTVEnEhiBTTEFWSUNBCitLUlNUScSGIFNMT0JPREFOCitLUlNUScSGIFNSxJBBTgorS1JTVEnEhiBTUkVURU4KK0tSU1RJxIYgU1RBTktPCitLUlNUScSGIFNUQU5PSkUKK0tSU1RJxIYgU1RFVkFOCitLUlNUScSGIFNURVZBTgorS1JTVEnEhiBTVEVWQU4KK0tSU1RJxIYgU1RFVkFOCitLUlNUScSGIFNURVZBTgorS1JTVEnEhiBTVE9KQU5LQQorS1JTVEnEhiBTVkVUSVNMQVYKK0tSU1RJxIYgU1ZFVElTTEFWCitLUlNUScSGIFNWRVRMQU5BCitLUlNUScSGIFNWRVRMQU5BCitLUlNUScSGIFNWRVRPWkFSCitLUlNUScSGIFRJTktBCitLUlNUScSGIFVHTEpFxaBBIERSCitLUlNUScSGIFZBU0EgRFIgTEVLQVIKK0tSU1RJxIYgVkFTQQorS1JTVEnEhiBWQVNJTElKRSBESVBMIElORworS1JTVEnEhiBWQVNJTElKRQorS1JTVEnEhiBWRUxJTUlSCitLUlNUScSGIFZFTEpLTworS1JTVEnEhiBWRVJBCitLUlNUScSGIFZFUkEKK0tSU1RJxIYgVkVTRUxJTgorS1JTVEnEhiBWTEFEQQorS1JTVEnEhiBWT0pJTgorS1JTVEnEhi1WUsW9SU5BIEJPU0FOS0EKK0tSU1RJxIYgVlVLSUNBCitLUlNUScSGIFpPUkFOCitLUlNUScSGIFpPUkFOCitLUlNUSU4gxb1JVktBCitLUlNUSU4gQlJBTktPCitLUlNUSU4gSVZBTgorS1JTVElOIEpFTEtBCitLUlNUSU4gS09TVEEKK0tSU1RJTiBMQVpBUgorS1JTVElOIE1MQURFTgorS1JTVElOIE5BVEHFoEEKK0tSU1RJTiBQRVRBUgorS1JTVElOIFNMQVZLTworS1JTVElOIFNURVZBTgorS1JTVElOIFNWRVRPWkFSCitLUlNUSU4gVkVSQQorS1JTVElOIFZMQURBTgorS1JTVElOIFpPUkFOCitLUlNUSU5JxIYgRFJBR0FOCitLUlNUT05PxaBJxIYgxb1JVkFOCitLUlNUT05PxaBJxIYgQk9TSUxKS0EKK0tSU1RPTk/FoEnEhiBKRUxFTkEKK0tSU1RPTk/FoEnEhiBKT1ZBTgorS1JTVE9OT8WgScSGIExKVUJJQ0EKK0tSU1RPTk/FoEnEhiBNSUxBTktBCitLUlNUT05PxaBJxIYgTUlMRU5LTworS1JTVE9OT8WgScSGIE1JTEVOS08KK0tSU1RPTk/FoEnEhiBNSVJPU0xBVgorS1JTVE9OT8WgScSGIE5BREEKK0tSU1RPTk/FoEnEhiBORVNUT1IKK0tSU1RPTk/FoEnEhiBQRVRBUgorS1JTVE9OT8WgScSGIFBFVEFSCitLUlNUT05PxaBJxIYgU1RFVkFOCitLUlNUT05PxaBJxIYgVkVSQQorS1JTVE9OT8WgScSGIFZJREEKK0tSU1RPTk/FoEnEhiBaTEFUQSBEUgorS1JTVE9OT8WgScSGIFpPUkEKK0tSU1RPVlNLSSBSQURPSktBCitLUlRFTknEhiBCUkFOS08KK0tSVEVOScSGIERPQlJJTEEKK0tSVEVOScSGIFBBVkxFCitLUlRJTknEhiBCT1JBCitLUlRJTknEhiBEQU5FCitLUlRJTknEhiBEQU5FCitLUlRJTknEhiBNSVJKQU5BCitLUlRJTknEhiBNSVJLTworS1JUSU5JxIYgTUlST1NMQVYKK0tSVElOScSGIE5BREEKK0tSVElOScSGIFNBVkEKK0tSVElOScSGIFNNSUxKQU5BCitLUlRJTknEhiBWTEFESU1JUgorS1JVxIxJxIxBTiBNSUxBTgorS1JVxaBLQSDEkE9SxJBFCitLUlXFoEtBIFNURVZBTgorS1JVxb1FVknEhiBERUpBTgorS1JVxb1FVknEhiBORU5BRAorS1JVxb1FVknEhiBWTEFESU1JUgorS1JVxb1FVknEhiBaRFJBVktPCitLUlXFvUVWScSGIFpPUkFOCitLUlXFvUnEhiBBTkEKK0tSVUxKIEJSQU5JU0xBVkEKK0tSVUxKIE1JTEFOCitLUlVOScSGIMW9SVZBTgorS1JVTknEhiDFvUlWT1JBRAorS1JVTknEhiDEkE9SxJBFCitLUlVOScSGIMSQT1LEkEUKK0tSVU5JxIYgxJBPUsSQRQorS1JVTknEhi1CRUxJxIYgTUlMQU5BCitLUlVOScSGIEJSQU5LTworS1JVTknEhiBCUkFOS08KK0tSVU5JxIYgQlJBTktPCitLUlVOScSGIERBUkEKK0tSVU5JxIYgRFJBR09MSlVCCitLUlVOScSGIERSQUdPTUlSCitLUlVOScSGIEdSQURJTUlSCitLUlVOScSGIElMSUpBCitLUlVOScSGIElMT05LQQorS1JVTknEhiBKRUxFTkEKK0tSVU5JxIYgTEpVQknFoEEKK0tSVU5JxIYgTEpVQklDQQorS1JVTknEhiBMSlVCT01JUgorS1JVTknEhiBNScSGTworS1JVTknEhiBNSUtBCitLUlVOScSGIE1JTEFOS0EKK0tSVU5JxIYgTUlMQU4KK0tSVU5JxIYgTUlMT8WgCitLUlVOScSGIE5PVkFLCitLUlVOScSGIFBBVkxFCitLUlVOScSGIFBFUknFoEEKK0tSVU5JxIYgUExFTUVOS0EKK0tSVU5JxIYgUkFET0pLQQorS1JVTknEhiBTTE9CT0RBTgorS1JVTknEhiBTT0ZJSkEKK0tSVU5JxIYgVE/FoElDQQorS1JVTknEhiBVUk/FoAorS1JVTknEhiBWRUxJxIxLTworS1JVTknEhiBWRVJJQ0EKK0tSVU5JxIYgWkRSQVZLTworS1JVUEXFvUVWScSGIERBUklOS0EKK0tSVVBFxb1FVknEhiBQUlZPU0xBVgorS1JVUExKQU5JTiBTVEFOQQorS1JVUExKQU5JTiBWRVNFTEEKK0tSVVRBIEJPxb1BTkEKK0tSVVRBIERSQUdBTgorS1JWQVZBQyBCSVNFUktBCitLUlZBVklDQSBEUkHFvUVOCitLUlZBVklDQSBUT01JU0xBVgorS1JWT1BJxIYgT0xHQQorS1JaTUFOT1ZJxIYgTUFSR0FSRVRBCitLUlpOQVJJxIYgTUlMRQorS1JaTkFSScSGIFZBTEVOVElOQQorS1XEjCBTTE9CT0RBTgorS1XEjEVSQSBBTEVLU0FOREFSCitLVcSMRVJBIFNURVZBTgorS1XEjEnEhiBOSUtPTEEKK0tVxIxNQcWgIElSRU5BCitLVcSMTUHFoCBOQVRBxaBBCitLVcSMTUHFoCBOSUtPTEEKK0tVxIxORVIgTEFESVNMQVYKK0tVxaBBS09WScSGIFNNSUxKQQorS1XFoExJxIYgTUlMQU4KK0tVxaBMSkFOIFNMQVZLTworS1XFoExKScSGIEJPUklTTEFWCitLVcWgTEpJxIYgQk9SSVNMQVYKK0tVxaBMSknEhiBCT1JJUworS1XEhiBTVEFOS0EKK0tVxb1BVEtPIEFOSUNBCitLVcW9QVRLTyBFTUlMCitLVcW9QVRLTyBNQVJUQQorS1XFvUFUS08gVkxBRElNSVIKK0tVxb1FTEtBIFNJTUEKK0tVxb1FVElOIEJPxb1BCitLVcW9RVRJTiBKRUxJU0FWRVRBCitLVcW9RVRJTiBNQVJBCitLVcW9RVRJTiBNSUxBTgorS1XFvUVUSU4gTk9WQUsKK0tVxb1FVlNLSSBNSUxJVk9KRQorS1XFvUnEhiBEUkFHVVRJTgorS1XFvUnEhiBNTEFERU4KK0tVxb1JxIYgTUxBREVOCitLVcW9ScSGIFBFVEFSCitLVUJBTkpJIEFOQQorS1VCQU5PVkkgWkxBVEtPCitLVUJBVCBNSUxBTiBESVBMIElORworS1VCQVQgVVJPxaAKK0tVQkFUT1ZJxIYgQU5BCitLVUJBVE9WScSGIElMSUpBCitLVUJFxIxLQSBNSUxBTgorS1VCRVQgTUlMQU4KK0tVQknEjEVMQSBQRVRBUgorS1VCScSMS08gRkVSRU5DCitLVUJJQ0EgU1RKRVBBTgorS1VCSUNBIFZFUkEKK0tVQklLIEZSQU5DScWgS0EKK0tVQklOSkVDIEpPU0lQCitLVUJVUknEhiBNScSGTworS1VCVVJJxIYgTk9WS0EKK0tVQlVSScSGIFNWRVRPWkFSCitLVUNVTE9WScSGIERBTklDQQorS1VDVUxPVknEhiBWT0pJU0xBVgorS1VDVVJBQyBESU1JVFJJSkUKK0tVQ1VSQUMgTUFSQQorS1VDVVJBQyBOQURFxb1EQQorS1VDVVJBQyBTVEVWQU4KK0tVQ1VSU0tJIMSQVVJJQ0EKK0tVQ1VSU0tJIERSQUdPTUlSCitLVUNVUlNLSSBSQURJU0xBVgorS1VEScSGIE1JTE9TQVZBCitLVURJxIYgU1RFVkEKK0tVRFJBIERBTklKRUxBCitLVURSQSBPTEdBCitLVURSQS1aSUtPVknEhiBMSlVCSUNBCitLVURSScSGIERFU0lNSVIKK0tVR0EgSk9WQU4KK0tVR0nEhiBJTElKQQorS1VHScSGIFJBRE1JTEEKK0tVR0nEhiBTQVZLQQorS1VHTEkgSU1SRQorS1VHTEkgSk9TSVAKK0tVR0xJIE1JSEFKTE8KK0tVR0xJIE1JSEFMSgorS1VHTEkgUEFWQU8KK0tVR0xJIFJPxb1JS0EKK0tVR0xJIFNURVZBTgorS1VIQUpEQSDFoEFORE9SCitLVUhBSkRBIEtTRU5JSkEgTVIKK0tVSEFKREEgVkxBRElNSVIgTVIKK0tVSEFKREEgWkxBVEEKK0tVSEFSIEpFTEVOQQorS1VIQVIgSk9WQU4KK0tVSEFSIFNMQVZJQ0EKK0tVSkHEjEnEhiBEUkFHQU4KK0tVSk9WScSGIE5FREEKK0tVSk9WScSGIFNPRklKQQorS1VKVU5Exb1JxIYgTFVKWkEKK0tVSlVORMW9ScSGIE1JT0RSQUcKK0tVSlVORMW9ScSGIFRPTUFOSUpBCitLVUpVTkTFvUnEhiBWRVJBCitLVUtBVklDQSBKT1JEQU4KK0tVS0FWSUNBIE1JUktPCitLVUtBVklDQSBSVcW9SUNBCitLVUtBVlNLSSBQQVZMRQorS1VLScSGIMW9QVJLTworS1VLScSGIEJSQU5LQQorS1VLScSGIERSQUdBTgorS1VLScSGIEdPSktPCitLVUtJxIYgR09SREFOQQorS1VLScSGIEpFTElDQQorS1VLScSGIEpFTEtBCitLVUtJxIYgTUlMQU4KK0tVS0nEhiBNSUxPSktBCitLVUtJxIYgTUlSSkFOQQorS1VLScSGIE1JUktPCitLVUtJxIYgTkVCT0rFoEEKK0tVS0nEhiBOSUtPTEEKK0tVS0nEhiBQRVRBUgorS1VLScSGIFNMT0JPREFOCitLVUtJxIYgU1RFVkFOCitLVUtJxIYgU1ZFVE9aQVIKK0tVS0nEhiBWRVJBCitLVUtJxIYgVkxBRElNSVIKK0tVS0nEhiBaT1JBTgorS1VLScSGIFpPUkFOCitLVUtJxIYgWlZPTklNSVIKK0tVS0lOIMW9SVZBTgorS1VLSU4gQUxFS1NBTkRBUgorS1VLSU4gREVKQU4KK0tVS0lOIFNNSUxKS0EKK0tVS0xBIElWQU4KK0tVS0/EjCBWSU5LTworS1VLT0JBVCBSQURPVkFOCitLVUtPTEogREFORQorS1VLT0xKIERSQUdBTgorS1VLT0xKIERVxaBLTworS1VLT0xKIE1JTEtBCitLVUtPTEogTUlSSkFOQQorS1VLT0xKIFJBRE1JTEEKK0tVS09MSiBSQUpLTworS1VLT1ZTS0kgSk9WQU4KK0tVS1JJS0EgQk/FoEtPCitLVUtVxIxLQSBKQU4KK0tVS1XEjEtBIE1JSEFKTE8KK0tVS1VMSiBET0JSSUxBCitLVUtVUk9WIEpPU0lGCitLVUtVUlVaT1ZJxIYgSkVMRU5BCitLVUtVUlVaT1ZJxIYgVkxBRElNSVIKK0tVTMSMQVIgScWgVFZBTgorS1VMQcSMQU5JTiBBTklDQQorS1VMQcSMQU5JTiBCUkFOSVNMQVYKK0tVTEHEjEFOSU4gTUlMRU5LTworS1VMQcSMQU5JTiBOQURBCitLVUxBxIxJxIYgWlZPTklNSVIKK0tVTEHEjElOIMSQVVJPCitLVUxBxIxJTiBCVURJTUtBCitLVUxBxIxJTiBEVcWgQU4KK0tVTEHEjElOIFNMQVZLTworS1VMQcSMS0kgTUlUQVIKK0tVTEHFoCBNQVJLTworS1VMQcWgIFNMT0JPREFOCitLVUxBxaBFVknEhiBaTEFUQQorS1VMQcWgSU5PVknEhiBBTsSQRUxLQQorS1VMQcWgSU5PVknEhiBEQU5JQ0EKK0tVTEHFoElOT1ZJxIYgRFXFoElDQQorS1VMQcWgSU5PVknEhiBNSUxBTgorS1VMQcWgSU5PVknEhiBNSUxJVk9KCitLVUxBVVpPViBBUktBRElKRQorS1VMQVVaT1YgSk9WQU5LQQorS1VMQVVaT1YgTUlMRU5LTyBEUgorS1VMRcWgRVZJxIYgT0xJVkVSQQorS1VMRcWgRVZJxIYgUEVUQVIKK0tVTEXFoEtPIERSQUdPU0xBVkEKK0tVTEVOT1ZJxIYgQUhNRUQKK0tVTEVOT1ZJxIYgWk9SQU4KK0tVTEVWU0tJIEtBVElDQQorS1VMRVZTS0kgUk/FvUEKK0tVTEVWU0tJIFJPxb1BCitLVUxJxaBJxIYgTkVEQQorS1VMScWgScSGIE9MR0EKK0tVTEnFoEnEhiBTTEFWT0xKVUIKK0tVTEnEhiBEQVJJTktBCitLVUxJxIYgSk9WQU4KK0tVTEnEhiBKT1ZPCitLVUxJxIYgTEFaQVIKK0tVTEnEhiBORUJPSsWgQQorS1VMScSGIFJBRElWT0oKK0tVTEnEhiBWTEFESU1JUgorS1VMSUTFvUFOIERSQUdVVElOCitLVUxJRMW9QU4gTkVNQU5KQQorS1VMSUTFvUFOIFZBU08gRFIKK0tVTEpBxIxBIElMSUpBCitLVUxKQcSMQSBQRVRBUgorS1VMSkFLIE1BUklKQQorS1VMSkFOxIxJxIYgRFXFoEFOCitLVUxKQU7EjEnEhiBKVUxLQQorS1VMSkFOxIxJxIYgTUlMRU5BCitLVUxKQU7EjEnEhiBOSUtPTEEKK0tVTEpBTsSMScSGIFNBVk8KK0tVTEpBTsSMScSGIFZFUkEKK0tVTEpBTklOIEpBS09WCitLVUxKQU5LScSGIE1VUkFESUYKK0tVTEpBTlNLSSBPTEdBCitLVUxKQU5TS0kgU0xBVktPCitLVUxKScWgIFNMT0JPREFOCitLVUxKScSGIEJJU0VSS0EKK0tVTEpJxIYgRFJBR09TTEFWCitLVUxKScSGIExBWkFSCitLVUxKScSGIExKVUJPTUlSCitLVUxKScSGIE1JUkpBTkEKK0tVTEpJxIYgTkVERUxKS08KK0tVTEpJxIYgTklLT0xBCitLVUxKScSGIFBFVEFSCitLVUxKScSGIFNBVk8KK0tVTEpJxIYtU01VxJBBIE1BR0RBTEVOQQorS1VMSknEhiBaRFJBVktPCitLVUxLQSBHUkVUQQorS1VMUElOxIxFVknEhiDEkE9SxJBFCitLVUxQSU7EjEVWScSGIEpPVk8KK0tVTFBJTlNLSSBEVcWgQU4KK0tVTFBJTlNLSSBNSVJKQU5BCitLVUxQSU5TS0kgU1RFVkFOCitLVUxQSU5TS0kgVlVKQURJTgorS1VNQU5PViDFvUlWQU4KK0tVTUFOT1YgQk/FvUlEQVIKK0tVTUFOT1ZJxIYgTUlPRFJBRworS1VNQVpFQyBMQVpBCitLVU1PVknEhiBCUkFOS0EKK0tVTU9WScSGIE1JTElDQQorS1VNT1ZJxIYgU0FWTworS1VOIMSQVVJBCitLVU4gQUxFS1NBTkRBUgorS1VOIEJFTEEKK0tVTiBEQU5JQ0EKK0tVTiBFRElUQQorS1VOIEVSTkUKK0tVTiBMQVNMTworS1VOIFNURVZBTgorS1VOxIxBS09WQSBNQVJJSkEKK0tVTkFSQUMgQU5JRUxBCitLVU5EQcSMSU5BIEpPVk8KK0tVTkRBxIxJTkEgUkFET1ZBTgorS1VOREHEjElOQSBTQVZPCitLVU5JxIYgxJBPUsSQRQorS1VOScSGIEdPUkRBTkEKK0tVTknEhiBWRVNFTElOS0EKK0tVTk9TScSGIE5FRMW9QUQKK0tVTk9TScSGIE9TTUFOCitLVU5PVkFDIExKVUJPCitLVU5TVCBJUkVOCitLVU5TVE1BTiBBTkFTVEFTSUpBCitLVVBFSyDFvUVMSktBCitLVVBFSyBaT1JJQ0EKK0tVUElST1ZJxIYgU09GSUpBCitLVVBSRcWgQUsgREFOSUxPCitLVVBSRcWgQUsgVklEQQorS1VQUkXFoEFOSU4gQklMSkFOQQorS1VQUkXFoEFOSU4gSUxJSkEKK0tVUFJFxaBBTklOIE1JTEUgRElQTCBJTkcKK0tVUFJFxaBLSSBKT0NBCitLVVBSRcWgS0kgVkVSQQorS1VQVVNBUkVWScSGIEJSQU5JU0xBVgorS1VQVVNJTkFDIEJSQU5JU0xBVgorS1VQVVNJTkFDIFZFTEpLTworS1VSxIxVQknEhiBEUkFHScSGCitLVVLEjFVCScSGIE1FTEFOSUpBCitLVVLFoFVNT1ZJxIYgQVZEVUxBSAorS1VSQUpJxIYgSk9WQU4KK0tVUkFOIElWQU4KK0tVUkFOSkkgSkFOCitLVVJBTkpJIEpBTgorS1VSQkFMSUpBIMSQT1LEkEUKK0tVUkJBTElKQSBEQU5JQ0EKK0tVUkJBTElKQSBKT1ZBTgorS1VSQkFMSUpBIExBWkFSCitLVVJCQUxJSkEgTUlSSkFOQQorS1VSQkFURklOU0tJIEZFxJBBIERJUEwgSU5HCitLVVJCQVRGSU5TS0kgSVZBTgorS1VSQkFURklOU0tJIFNMQVZLTworS1VSQkFURklOU0tJIFZMQURJTUlSCitLVVJCQVRWSU5TS0kgRElOQQorS1VSQkFUVklOU0tJIElWQU4KK0tVUkJBVFZJTlNLSSBTVEVWQU4KK0tVUkJBVFZJTlNLSSBaT1JBCitLVVJDSU5BSyBFTUlMCitLVVJDSU5BSyBJTVJFCitLVVJDSU5BSyBKT1NJUAorS1VSQ0lOQUsgTEFKT8WgCitLVVJDSU5BSyBQQVZMRQorS1VSQ0lOQUsgU1RFVkFOCitLVVJDSU5BSyBWRVNOQQorS1VSREkgQU1BTElKQQorS1VSRE9WU0tJIE1JVEFSCitLVVJEVUxJxIYgTUlMT8WgCitLVVJFxaBFVknEhiBSQUNLTworS1VSRcWgRVZJxIYgU0FWTworS1VSRUtBxaAgTUlUQVIKK0tVUkVQQSBWQVNBCitLVVJJxaAgxaBURUZBTgorS1VSSUTFvUEgQk9HREFOCitLVVJJRMW9QSBEVcWgQU4KK0tVUklKIFRPTUlTTEFWCitLVVJJSkEgVkVMSktPCitLVVJJS8WgQSBBTlRPTklOQQorS1VSSUxBIEpBTk/FoAorS1VSSUxJxIYgSk9WTworS1VSSUxJxIYgTUlMQU4KK0tVUklMScSGIE1JTE/FoAorS1VSSUxJxIYgTUlST1NMQVYKK0tVUklOIMSQT1LEkEUKK0tVUklOIEpPU0lQCitLVVJKQcSMS0kgxb1JVktPCitLVVJKQcSMS0kgxJBPUsSQRQorS1VSSkHEjEtJIMSQVVLEkElOQQorS1VSSkHEjEtJIEFOS0lDQQorS1VSSkHEjEtJIERBTklDQQorS1VSSkHEjEtJIEpPVkFOCitLVVJKQcSMS0kgTUlIQUpMTworS1VSSkHEjEtJIE1JTEFOCitLVVJKQcSMS0kgTUlMRVZBCitLVVJKQcSMS0kgTUlMRVZBCitLVVJKQcSMS0kgTUlMSUNBCitLVVJKQcSMS0kgTUlMSVZPSgorS1VSSkHEjEtJIE1JT0RSQUcKK0tVUkpBxIxLSSBNSVJKQU5BCitLVVJKQcSMS0kgTUlSSkFOQQorS1VSSkHEjEtJIFNSRURPSkUKK0tVUkpBxIxLSSBTVEFOS08KK0tVUkpBxIxLSSBTVEVWQU4KK0tVUkpBxIxLSSBTVkVUT1pBUgorS1VSSkHEjEtJIFpPUkEKK0tVUkpBS09WIMSQT1LEkEUKK0tVUkpBS09WIERBTklMTworS1VSSkFLT1YgRFJBR0FOCitLVVJKQUtPViBNSUxBTgorS1VSSkFLT1YgTUlMSVZPSgorS1VSSkFLT1YgUk9LU0FOREEKK0tVUkpBS09WIFZJS1RPUklKQQorS1VSUyDEkE9SxJBFCitLVVJUQSBBWklTCitLVVJURcWgIEpBU05BCitLVVJURcWgIExBWkFSCitLVVJURcWgIE1BUkEKK0tVUlRFxaAgU1ZFVEtPCitLVVJURcWgSSBGVUFUCitLVVJURcWgSSBOVVNSRVQKK0tVUlRFxaBJIFpFTlVOCitLVVJUSSBNVVNUQUZBCitLVVJUSSBORVpJUgorS1VSVEnFoEVWScSGIE5BU1VGCitLVVJUScSGIEFMRUtTQU5EQVIKK0tVUlRJxIYgQlJBTklTTEFWQQorS1VSVEnEhiBNSUxPVkFOCitLVVJUSU5PVknEhiBQUkVEUkFHCitLVVJUT1ZJxIYgQU5BCitLVVJUT1ZJxIYgSVZBTgorS1VSVFXFoEnEhiBJVkFOS0EKK0tVUlXEjEVWIE1BUklKQQorS1VSVcSMRVYgTUlSSkFOQQorS1VSVcSMRVYgU0xPQk9EQU4KK0tVUlXEjEtJIEtBTUVOS08KK0tVUlXEjEtJIFZMQURJTUlSCitLVVJVxIxLSSBaTEFUSU1JUgorS1VSVcWgScSGIEJPUk8KK0tVUlVDIMSQVUxBCitLVVJVQyDEkFVMQQorS1VSVUMgSUdOQUMKK0tVUlVDIElSRU5BCitLVVJVQyBKQU5PxaAKK0tVUlVDIEpPVk8KK0tVUlVDIExBSk/FoAorS1VSVUMgTEFTTE8KK0tVUlVDIE5BTkRPUgorS1VSVUMgVElCT1IKK0tVUlVDIFZJTktBCitLVVJVQ0EgQk/FvUEKK0tVUlVDQSBKT1ZBTgorS1VSVUNJxIYgRFJBR0FOCitLVVJVQ0nEhiBMSlVCSUNBCitLVVJVQ0nEhiBTSU5JxaBBCitLVVJVQ0nEhiBWSVRPTUlSCitLVVJVQ0lOIMW9SVZBTkEKK0tVUlVOQ0kgQU5EUklKQQorS1VSVU5DSSBKT8W9RUYKK0tVUlVOQ0kgSk/FvUVGCitLVVJVTkNJIE1BUklKQQorS1VSVVpPVknEhiBUQVRKQU5BCitLVVNJxIYgU1JFVEtPCitLVVNMSSBGRVJFTkMKK0tVU0xJIEdFWkEKK0tVU01VSyBEQVJJTktBCitLVVNUScSGIFNPRklKQQorS1VTVFVESUpBIERBTklDQQorS1VTVFVESUpBIE1JUk9TTEFWCitLVVNUVURJSkEgU0xPQk9EQU4KK0tVU1RVUknEhiBOSUtPTEEKK0tVU1RVUknEhiBTRUxJTUlSCitLVVNUVVJJQ0EgSEFTQU4KK0tVU1RVUklDQSBOQVpJRgorS1VTVFVSSU4gQU5UVU4KK0tVU1RVUklOIE1JUkpBTkEKK0tVU1VST1ZJxIYgQU5LSUNBCitLVVRJSkVWQUMgTEpVQklDQQorS1VUTEHEjEEgTUFSS08KK0tVVExFxaBJxIYgTEpVQknFoEEKK0tVVExFxaBJxIYgTEpVQknFoEEKK0tVVFJJIEtBUkxPCitLVVRSSSBLQVJPTEoKK0tVVFJJIFNURVZBTgorS1VUUknEjEtJIFpPUkFOCitLVVRVWk9WIE1JTE9SQUQKK0tVVFVaT1YgTUlST1NMQVYKK0tVVkFMSiBTVEVWQU4KK0tVVkFMSkEgRFJBR0FOCitLVVZBTEpBIERSQUdPTEpVQgorS1VWQUxKQSBLQVRJQ0EKK0tVVkFMSkEgT1NUT0pBCitLVVZFS0FMT1ZJxIYgUkFET1NMQVYKK0tVVkVLQUxPVknEhiBTVFJBSU4KK0tVVkVMSknEhiDFvUFSS08KK0tVVkVMSknEhiBMSklMSkFOQQorS1VWRUxKScSGIFJBRElWT0pFCitLVVZFTEpJxIYgUkFET01BTgorS1VWSVpJxIYgxb1JVk9KSU4KK0tVVklaScSGIMW9SVZPSklOCitLVVpFVlNLSSBEUkFHQU4KK0tVWk1BTiBBTktBCitLVVpNQU4gQk9HREFOCitLVVpNQU4gQk9HREFOCitLVVpNQU4gQk9SSVNMQVYKK0tVWk1BTiBESU1JVFJJSkUKK0tVWk1BTiBEUkFHQU4KK0tVWk1BTiBNSUxBTgorS1VaTUFOIE1JTE9WQU4KK0tVWk1BTiBNSVJLTworS1VaTUFOIE5BREEKK0tVWk1BTiBOQURBCitLVVpNQU4gTkFEQQorS1VaTUFOIE5BREXFvURBCitLVVpNQU4gUEVUQVIKK0tVWk1BTiBSSVNUTworS1VaTUFOIFNMQVZJQ0EKK0tVWk1BTsSMRVYgQUxFS1NBTkRBUgorS1VaTUFOxIxFViBESU1JVFJJSkUKK0tVWk1BTsSMRVYgRFXFoEFOCitLVVpNQU7EjEVWIE9MSVZFUkEgRFIKK0tVWk1BTsSMRVYgVElNT8WgRU5LTworS1VaTUFOT1YgQk9SSVNMQVYKK0tVWk1BTk9WIE1BUklKQQorS1VaTUFOT1YgT0JSQUQKK0tVWk1BTk9WIE9CUkFECitLVVpNQU5PViBSQURPxaAgRElQTCBJTkcKK0tVWk1BTk9WIFJBRE9TTEFWCitLVVpNQU5PViBTQVZBCitLVVpNQU5PViBTTEFWS08KK0tVWk1BTk9WIFNWRVRJU0xBVgorS1VaTUFOT1YgVEFOQVNJSkUKK0tVWk1BTk9WIFpPUkFOCitLVVpNQU5PVknEhiDEjEVET01JUgorS1VaTUFOT1ZJxIYgxb1JVk9KSU4KK0tVWk1BTk9WScSGIMSQT1LEkEUKK0tVWk1BTk9WScSGIMSQVVJBCitLVVpNQU5PVknEhiBBTEVLU0FOREFSCitLVVpNQU5PVknEhiBBTkdFTElOQQorS1VaTUFOT1ZJxIYgQk/FoEtPCitLVVpNQU5PVknEhiBCT0dEQU4KK0tVWk1BTk9WScSGIEJPR0RBTgorS1VaTUFOT1ZJxIYgQk9SSVNMQVYKK0tVWk1BTk9WScSGIEJSQU5JU0xBVkEKK0tVWk1BTk9WScSGIEJSQU5JU0xBVgorS1VaTUFOT1ZJxIYgREFOSUNBCitLVVpNQU5PVknEhiBEQVJJTktBCitLVVpNQU5PVknEhiBERUpBTgorS1VaTUFOT1ZJxIYgRFJBR0lOSkEKK0tVWk1BTk9WScSGIERSQUdPTUlSCitLVVpNQU5PVknEhiBEUkFHVVRJTgorS1VaTUFOT1ZJxIYgRFJBR1VUSU4KK0tVWk1BTk9WScSGIERVxaBBTgorS1VaTUFOT1ZJxIYgRFXFoEFOCitLVVpNQU5PVknEhiBEVcWgQU4KK0tVWk1BTk9WScSGIERVxaBLTworS1VaTUFOT1ZJxIYgR09SQU4KK0tVWk1BTk9WScSGIEpFTEVOQQorS1VaTUFOT1ZJxIYgSk9WQU4KK0tVWk1BTk9WScSGIEpPVkFOCitLVVpNQU5PVknEhiBLQVRBCitLVVpNQU5PVknEhiBMQVpBUgorS1VaTUFOT1ZJxIYgTEFaQVIKK0tVWk1BTk9WScSGIExBWk8KK0tVWk1BTk9WScSGIExFTktBCitLVVpNQU5PVknEhiBMSklMSkFOQQorS1VaTUFOT1ZJxIYgTEpVQknFoEEKK0tVWk1BTk9WScSGIExKVUJJQ0EKK0tVWk1BTk9WScSGIExKVUJJQ0EKK0tVWk1BTk9WScSGIExKVUJJQ0EKK0tVWk1BTk9WScSGIExKVUJPTUlSCitLVVpNQU5PVknEhiBNSUxBTgorS1VaTUFOT1ZJxIYgTUlMQU4KK0tVWk1BTk9WScSGIE1JTEVOQQorS1VaTUFOT1ZJxIYgTUlMRU5LTworS1VaTUFOT1ZJxIYgTUlMRQorS1VaTUFOT1ZJxIYgTUlMSk9KS08gRElQTCBJTkcKK0tVWk1BTk9WScSGIE1JTE/FoAorS1VaTUFOT1ZJxIYgTUlMT8WgCitLVVpNQU5PVknEhiBNSUxPxaAKK0tVWk1BTk9WScSGIE1JTE/FoAorS1VaTUFOT1ZJxIYgTUlPRFJBRworS1VaTUFOT1ZJxIYgTUlSSkFOQQorS1VaTUFOT1ZJxIYgTUxBREVOCitLVVpNQU5PVknEhiBOQURBCitLVVpNQU5PVknEhiBOQURFxb1EQQorS1VaTUFOT1ZJxIYgTkVOQUQKK0tVWk1BTk9WScSGIE5FVkVOQQorS1VaTUFOT1ZJxIYgTklLT0xBCitLVVpNQU5PVknEhiBOSUtPTEEKK0tVWk1BTk9WScSGIFBBSkEKK0tVWk1BTk9WScSGIFBFVEFSCitLVVpNQU5PVknEhiBQRVRBUgorS1VaTUFOT1ZJxIYgUFJFRFJBRworS1VaTUFOT1ZJxIYgUkFESVZPSgorS1VaTUFOT1ZJxIYgUkFESVZPSgorS1VaTUFOT1ZJxIYgUkFET0pLTworS1VaTUFOT1ZJxIYgUkFET1NBVgorS1VaTUFOT1ZJxIYgUkFET1NMQVYKK0tVWk1BTk9WScSGIFJBSktPCitLVVpNQU5PVknEhiBTTEFWS08KK0tVWk1BTk9WScSGIFNMQVZLTworS1VaTUFOT1ZJxIYgU0xPQk9EQU4KK0tVWk1BTk9WScSGIFNMT0JPREFOCitLVVpNQU5PVknEhiBTTE9CT0RBTgorS1VaTUFOT1ZJxIYgU1BPTUVOS0EKK0tVWk1BTk9WScSGIFNUT0pBTgorS1VaTUFOT1ZJxIYgU1RPSkFOCitLVVpNQU5PVknEhiBUT0RPUgorS1VaTUFOT1ZJxIYgVE9ET1IKK0tVWk1BTk9WScSGIFZBU0lMSUpFCitLVVpNQU5PVknEhiBWQVNJTElKRQorS1VaTUFOT1ZJxIYgVkVSQQorS1VaTUFOT1ZJxIYgVkVSQQorS1VaTUFOT1ZJxIYgVkxBU1RJTUlSCitLVVpNQU5PVknEhiBWT0pJU0xBVgorS1VaTUFOT1ZJxIYgWkRSQVZLTworS1VaTUFOT1ZJxIYgWk9SQU4KK0tVWk1BTk9WScSGIFpPUkEKK0tVWk1BTk9WU0tJIEJMQUdPSkEKK0tVWk1BTk9WU0tJIENWRVRBCitLVVpNQU5PVlNLSSBEVcWgQU4KK0tVWk1BTk9WU0tJIE1JTEUKK0tVWk1BTk9WU0tJIFBFUkUKK0tVWk1BTk9WU0tJIFJBRE9KS0EKK0tVWk1BTk9WU0tJIFRBU0UKK0tVWk1BTk9WU0tJIFRSQUrEjEUKK0tVWk1JxIYgTUlMS0EKK0tVWk1JxIYgWlZPTktPCitLVVpNSU5BQyBCT1JJU0xBVgorS1VaTUlOQUMgR09SREFOQQorS1VaTUlOQUMgUEVUQVIKK0tVWk1JTkFDIFBSRURSQUcKK0tVWk1JTkFDIFJBRE9TTEFWCitLVkHFoMSMRVYgSk9WQU4KK0tWQcWgxIxFViBNSVJBCitLVkHFoMSMRVYgUkFESVZPSgorS1ZBScSGIMSQT1LEkEUKK0tWQUnEhiBEVcWgQU4KK0tWQUnEhiBKRUxFTkEKK0tWQUnEhiBNSUxFVkEKK0tWUkdJxIYgQk/FoEtPCitLVlJHScSGIE1JTEFOCitLVlJHScSGIFBFVEFSCitLVlJHScSGIFJBRE9WQU4KK0tWUkdJxIYgU0FWTworS1ZSR0nEhiBUT01JU0xBVgorTEHEjEFOU0tJIERFU0FOS0EKK0xBxIxPSyBLQVJMTworTEHEjE9LIEtBUk9MSgorTEHFoEtPViBJR09SIERJUEwgSU5HCitMQcSGQUsgxJBVUkEKK0xBxIZBSyBNSUhBTEoKK0xBxIZBTlNLSSBWT0pJU0xBVgorTEHEhkFSQUMgxb1BUktPCitMQcSGQVJBQyBCSUxKQU5BCitMQcSGQVJBQyBCT1JJU0xBVgorTEHEhkFSQUMgRE9CUklWT0pFCitMQcSGQVJBQyBKT1ZBTgorTEHEhkFSQUMgTUFLU0lNCitMQcSGQVJBQyBOSUtPTEEKK0xBxIZBUkFDIE5JS09MQQorTEHEhkFSQUMgTklLT0xBCitMQcSGQVJBQyBURU9ET1IKK0xBxIZBUkFDIFZFUkEKK0xBxIZBUkFLIMW9QVJLTworTEHEhkFSQUsgTEFaQVIKK0xBxIZBUkFLIExBWkEKK0xBxIZBUkFLIE1JTE/FoAorTEHEhkFSQUsgTUxBREVOCitMQcSGQVJBSyBPR05KQU5LQQorTEHFvUVHScSGIE5FVkVOS0EKK0xBxb1FVEnEhiBBTEVLU0FOREFSCitMQcW9RVRJxIYgTUFSSUpBIERSCitMQcSQRVZBQyBEVcWgQU4KK0xBxJBFVknEhiBEUkFHQU4KK0xBxJBFVknEhiBHT0pLTworTEHEkEVWScSGIEpPVkFOCitMQcSQSU5PVknEhiDFvUlLQQorTEHEkElOT1ZJxIYgWkxBVEtPCitMQUJBxaAgSVZBTgorTEFCQURJIEpPxb1FRgorTEFCQU4gSlVMS0EKK0xBQkFOIE1JUktPCitMQUJBVCBBTkEKK0xBQkFUIEFOS0EKK0xBQkFUIEpBTgorTEFCQVQgS1ZFVE9TTEFWQQorTEFCQVQgUlXFvUVOQQorTEFCQVQgU1RFVkFOCitMQUJBVCBWRVJBCitMQUJBVCBWTEFESU1JUgorTEFCQVQgVkxBRElTTEFWCitMQUJBVknEhiBJVkFOCitMQUJPVknEhiBCT8W9SURBUgorTEFCT1ZJxIYgTUFOT0pMTworTEFCUk9WScSGIE1JUktPCitMQUJVRE9WScSGIEJPUklTCitMQUJVRE9WScSGIEhFTEVOQQorTEFCVURPVknEhiBST1pBTElKQQorTEFCVURPVknEhiBWTEFESU1JUgorTEFCVVMgxJBVUk8KK0xBQlVTIEJPxb1JREFSCitMQUJVUyBCUkFOS08KK0xBQlVTIElMSUpBCitMQUJVUyBKT1ZBTgorTEFCVVMgTEpVQk9NSVIKK0xBQlVTIE1BS0VET05LQQorTEFCVVMgTUlMQU4KK0xBQlVTIE1JTEFOCitMQUJVUyBNSUxBTgorTEFCVVMgTUlMQU4KK0xBQlVTIE1JTEUKK0xBQlVTIE5JS09MQQorTEFCVVMgU0xBVktPCitMQUNJSyBKQU5PxaAKK0xBQ0lLIFNMQVZJQ0EKK0xBQ0tPIE1JSEFKTE8KK0xBQ0tPVknEhiBEUkFHScWgQQorTEFDS09WScSGIEpPU0lQCitMQUNLT1ZJxIYgUkFERQorTEFDS09WScSGIFJBRE9WQU4KK0xBQ0tPVknEhiBTT0ZJSkEKK0xBQ0tPVknEhiBTVEFOSU1JUgorTEFDS09WScSGIFpMQVRLTworTEFDS09WScSGIFpPUkFOCitMQUNNQU5PVknEhiBNSU9EUkFHCitMQUNNQU5PVknEhiBTTEFWT0pLQQorTEFEQVIgTUlMT8WgCitMQURBUiBTVEVWQU4KK0xBREkgScWgVFZBTgorTEFESSBMQUpPxaAKK0xBREkgTUFSSUpBCitMQURJxaBJxIYgQU5UT04KK0xBREnFoEnEhiBHVVNUQVYKK0xBREnFoEnEhiBKRUxJU0FWRVRBCitMQURJxaBJxIYgSk9TSVAKK0xBREnFoEnEhiBNSVJLTworTEFEScWgScSGIE5JS09MQQorTEFEScWgScSGIFNURVZBTgorTEFESUsgxaBBTkRPUgorTEFESUsgRkVSRU5DCitMQURJSyBLQVRBTElOCitMQURJSyBLQVRBTElOCitMQURJSyBNQVJHSVRBCitMQURJSyBNSVJKQU5BCitMQURJS0EgQkxBxb0KK0xBRE9DS0kgQU5EUklKQQorTEFET0xFxb0gRVLFvUVCRVQKK0xBRE9MRcW9IE1JTEFESU4KK0xBR1VNRMW9SUpBIEhBTUlECitMQUdVTUTFvUlKQSBNSUxFTkEKK0xBR1VORMW9SU4gRFJBR0FOCitMQUdVTkTFvUlOIERSQUdBTgorTEFHVU5Exb1JTiBEUkFHQU4KK0xBR1VORMW9SU4gU1ZFVE9aQVIKK0xBR1VORMW9SU4gWk9SQU4KK0xBSEFSTkFSIExVQ0lKQQorTEFIT8WgIMSQT1LEkEUKK0xBSE/FoCBBTkRSSUpBCitMQUhPxaAgScWgVFZBTgorTEFJTk9WScSGIEFMRUtTQQorTEFJTk9WScSGIEJPUklTTEFWCitMQUlOT1ZJxIYgUkFOS08KK0xBSsWgScSGIFNURVZBTgorTEFKxaBJxIYgWk9SS0EKK0xBSkggTUFSSUpBCitMQUpIVE5FUiBBTlRBTAorTEFKSFRORVIgRlJBTkpBCitMQUpIVE5FUiBOSUtPTEEgRElQTCBJTkcKK0xBSknEhiDFoFRFRktBCitMQUpJxIYgQlJBTktPCitMQUpJxIYgRFJBR0FOCitMQUpJxIYgRFJBR09MSlVCCitMQUpJxIYgTEpJTEpBTkEKK0xBSknEhiBNSVJLTworTEFKScSGIFJBSktPCitMQUpJxIYgU1RBTkEKK0xBSknEhiBaRFJBVktPCitMQUpLTyDFoEFORE9SCitMQUpLTyBKT1NJUAorTEFKS08gTEFKT8WgIERJUEwgSU5HCitMQUpLTyBNQVJJSkEKK0xBSktPIFNURVZBTgorTEFKS08gVkVSQQorTEFKT8WgIExBU0xPCitMQUpURVIgRUxaQQorTEFKVEVSIEdJWkVMQQorTEFKVEVSIElWQU4KK0xBSlRJSCBTSUdGUklECitMQUtBVE/FoCBBTUFMSUpBCitMQUtBVE/FoCBBTkEKK0xBS0FUT8WgIEFORFJBxaAKK0xBS0FUT8WgIERSQUdJQ0EKK0xBS0FUT8WgIEdJWkEKK0xBS0FUT8WgIElNUkUKK0xBS0FUT8WgIElNUkUKK0xBS0FUT8WgIElNUkUKK0xBS0FUT8WgIEpBU01JTktBCitMQUtBVE/FoCBKRUxFTkEKK0xBS0FUT8WgIExBSk/FoAorTEFLQVRPxaAgTUlIQUpMTworTEFLQVRPxaAgTUlMSUNBCitMQUtBVE/FoCBOQURBCitMQUtBVE/FoCBQQVZMRQorTEFLQVRPxaAgU1RFVkFOCitMQUtBVE/FoCBUSUJPUgorTEFLQVRPxaAgVkVSQQorTEFLQVRPxaAgVklMTU/FoAorTEFLQVRPxaAgWk9MVEFOCitMQUtBVE/FoCBaT0xUQU4KK0xBS0FUVcWgIEJSQU5JU0xBVgorTEFLRVRBIEJPxb1PCitMQUtFVEnEhiBMSlVCT01JUgorTEFLRVRJxIYgTUlMQU4KK0xBS0VUScSGIE1JTElWT0oKK0xBS0nEjEVWScSGIE5BREEKK0xBS0nEjEVWScSGLVNUT0pBxIxJxIYgU05Fxb1BTkEKK0xBS0nEhiBBTsSQQQorTEFLScSGIEFOxJBFTEtBCitMQUtJxIYgQk9HT1NBVgorTEFLScSGIEJSQU5LTyBEUiBMRUtBUgorTEFLScSGIEJSQU5LTworTEFLScSGIEJSQU5LTworTEFLScSGIERBTklMTworTEFLScSGIElMSUpBCitMQUtJxIYgSk9MQU4KK0xBS0nEhiBNQVJLTworTEFLScSGIE1JUkEKK0xBS0nEhiBNSVJKQU5BCitMQUtJxIYgTUxBREVOCitMQUtJxIYgTU9NSVIKK0xBS0nEhiBOSUtPTEEKK0xBS0nEhiBSQURJVk9KRQorTEFLScSGIFJBRElWT0oKK0xBS0nEhiBSQURJVk9KCitMQUtJxIYgUkFETUlMQQorTEFLScSGIFJBSktPCitMQUtJxIYgU0FWQSBEUgorTEFLScSGIFNMT0JPREFOCitMQUtJxIYgU01JTEpBCitMQUtJxIYgU1BBU09KRQorTEFLScSGIFNSxJBBTgorTEFLScSGIFNSxJBBTgorTEFLScSGIFNSxJBBTgorTEFLScSGIFNURVZBTgorTEFLScSGIFNWRVRJU0xBVgorTEFLScSGIFRPTUlTTEFWCitMQUtJxIYgVkVMSU1JUgorTEFLScSGIFZFU05BCitMQUtJxIYgVlXEjEVUQQorTEFLScSGIFpPUklDQQorTEFLScSGRVZJxIYgTUlMSUpBCitMQUtJxIZFVknEhiBTVkVUTEFOQQorTEFLScSGRVZJxIYgVkFTTworTEFLScSGRVZJxIYgVkVTTkEKK0xBS0nEhkVWScSGIFZVS1NBTiBEUgorTEFLTElKQSBTVEVWQU4KK0xBS08gTUFSSUpBCitMQUtPQlJJSkEgRFJBR0FOCitMQUtPQlJJSkEgRFXFoEFOCitMQUtPQlJJSkEgSUxJSkEKK0xBS09CUklKQSBKRUxFTkEKK0xBS09CUklKQSBNSUxBTgorTEFLT0JSSUpBIE1JTEFOCitMQUtPQlJJSkEgTUlMT8WgCitMQUtPQlJJSkEgTUlMT8WgCitMQUtPQlJJSkEgTklLT0xBCitMQUtPVknEhiBCVURJTUlSCitMQUtPVknEhiBEVcWgS08KK0xBS09WScSGIE1JTEnEhgorTEFLT1ZJxIYgTUlMT1JBRAorTEFLT1ZJxIYgUEVUQVIKK0xBS09WScSGIFJPWkFMSUpBCitMQUtPVknEhiBWQVNJTEpLQQorTEFMQVRPVknEhiBERVNBTktBCitMQUxBVE9WScSGIERSQUdVVElOCitMQUxBVE9WScSGIFNMT0JPREFOS0EKK0xBTEFUT1ZJxIYgVkFTSUxJSkUKK0xBTEnEjEnEhiBWRUxJTUlSCitMQUxJxIYgxb1JVkEKK0xBTEnEhiDEkE9SxJBFCitMQUxJxIYgQU5LSUNBCitMQUxJxIYgQVJLQURJSkUKK0xBTEnEhiBCT0dEQU4KK0xBTEnEhiBHTElHT1JJSkUKK0xBTEnEhiBHT0pLTworTEFMScSGIEdPUkRBTkEKK0xBTEnEhiBJS09OSUpBCitMQUxJxIYgSkFHT0RBCitMQUxJxIYgSlVMSUpBTkEKK0xBTEnEhiBKVUxLQQorTEFMScSGIExKVUJPTUlSCitMQUxJxIYgTUFSSUpBCitMQUxJxIYgTUlMQURJTktBCitMQUxJxIYgTUlMQU4KK0xBTEnEhiBNSUxJQ0EKK0xBTEnEhiBNSVJLTworTEFMScSGIE5FTkFECitMQUxJxIYgTklLT0xBCitMQUxJxIYgUkFET01JUiBEUgorTEFMScSGIFNSRURPSkUKK0xBTEnEhiBUQU1BUkEKK0xBTEnEhiBUT0RPUgorTEFMScSGIFVHTEpFxaBBCitMQUxJxIYgVkFTSUxJSkUKK0xBTElOIEFMRUtTQU5EQVIKK0xBTElOIE1JTEFOCitMQUxPxaBFVknEhiBBTEVLU0FOREFSCitMQUxPxaBFVknEhiBBTEVLU0FOREFSCitMQUxPxaBFVknEhiBESU1JVFJJSkUKK0xBTE/FoEVWScSGIERVxaBBTgorTEFMT8WgRVZJxIYgRFXFoEtPCitMQUxPxaBFVknEhiBGRU1LQQorTEFMT8WgRVZJxIYgSkVMSVNBVkVUQQorTEFMT8WgRVZJxIYgSk9WQU4KK0xBTE/FoEVWScSGIEtBVElDQQorTEFMT8WgRVZJxIYgTEFaQVIKK0xBTE/FoEVWScSGIE1BUkEKK0xBTE/FoEVWScSGIE1JS0EKK0xBTE/FoEVWScSGIFNURVZBTgorTEFMT8WgRVZJxIYgU1RFVkEKK0xBTE/FoEVWScSGIFZBU0EKK0xBTE/FoEVWScSGIFZMQURJTUlSCitMQUxPxaBFVknEhiBWTEFESU1JUgorTEFMT1ZJxIYgSkFOS08KK0xBTE9WScSGIE1BUktPCitMQUxPVknEhiBNSVJKQU5BCitMQUxPVknEhiBOQURBCitMQUxPVknEhiBSQURJVk9KRQorTEFMT1ZJxIYgU1VaQU5BCitMQUxPVknEhiBWRVJBCitMQU1CRVRBIFBFS08KK0xBTUJJxIYgQlJBTklTTEFWCitMQU1CScSGIEpPVk8KK0xBTUJJxIYgT0xJVkVSQQorTEFNUFJFVCBLUklTVElKQU4KK0xBTsSMVcWgS0kgRU1JTEtBCitMQU5DIEZSQU5KQQorTEFOQyBNQVJJSkEKK0xBTkNPxaAgQU5BCitMQU5DT8WgIE5FTkFECitMQU5DT8WgIFNWRVRPWkFSCitMQU5DT8WgIFRPTUlTTEFWCitMQU5ERUtBIEFOVE9OSUpFCitMQU5HIEFUSUxBCitMQU5HIERSQUdJQ0EKK0xBTkcgSk9TSVAKK0xBTkcgTUlSSkFOQQorTEFORyBWQUxFUklKQQorTEFOSkkgQU5EUkHFoAorTEFOSkkgU1RFVkFOCitMQU5LT1ZTS0kgUEVDTworTEFOS09WU0tJIFRPTcSMRQorTEFQxIxFVknEhiBEUkFHSUNBCitMQVDEjEVWScSGIE1JTElDQQorTEFQxIxFVknEhiBNSUxVVElOCitMQVDEjEVWScSGIFBBSkEKK0xBUMSMRVZJxIYgVlVLT1NBVkEKK0xBUMSMScSGIE1JTEFOCitMQVBBREFUIEhPUlRFTlpJSkEKK0xBUEFEQVQgU09SSU4KK0xBUEFEQVQgVkFTSUxJSkUKK0xBUEFKTkUgTUlMQU4KK0xBUE8gSk9WQU4KK0xBUFUgQU5EUkHFoAorTEFSS0lOIFNURVZBTgorTEFTScSGIFRPTUlTTEFWCitMQVNJxIYgWlZPTktPCitMQVNJxIYgWlZPTktPCitMQVNJQ0EgQlVESU1JUgorTEFTSUNBIERSQUdVVElOCitMQVNJQ0EgSUxJSkEKK0xBU0lDQSBNSUxBTgorTEFTSUNBIE1JTEFOCitMQVNJQ0EgTUlMRU5LTworTEFTSUNBIE1JUk9TTEFWCitMQVNJQ0EgVVJPxaAKK0xBU0lDQSBWRUxKS08KK0xBU0lDQSBaRFJBVktPCitMQVNJQ0EgWkxBVEEKK0xBU0lDQSBaT1JBCitMQVNLT1YgRE9CUkUKK0xBU0tPVknEhiBCUkFOS0EKK0xBU0tPVknEhiBEQU5JTE8KK0xBU0tPVknEhiBEUkFHQU4KK0xBU0xPIEVURUxLQQorTEFTTE8gRkVSRU5DCitMQVNMTyBGUkFOSkEKK0xBU0xPIEZSQU5KQQorTEFTTE8gSUxPTkEKK0xBU0xPIEpPxb1FRgorTEFTTE8gSk9TSVAKK0xBU0xPIEpPVkFOCitMQVNMTyBMQVNMTworTEFTTE8gTUlLTE/FoAorTEFTTE8gTUlMRU5BCitMQVNMTyBUSUJPUgorTEFTTE8gVkVSQQorTEFTTE9WU0tJIFRFUkVaQQorTEFTVEnEhiBBTEVLU0FOREFSCitMQVRBSyBOQU5ET1IKK0xBVEFMIE1BUkpBTgorTEFUQUwgU0xBVklDQQorTEFUQUwgU1RFVkFOCitMQVRBTCBWRVJBCitMQVRBTCBaQUdPUktBCitMQVRBUyDFvUlWS0EKK0xBVEFTIExBWkFSCitMQVRBUyBNQVJLTworTEFUQVMgTUlMQURJTgorTEFUQVMgTUlMQU4KK0xBVEFTIFBFVEFSCitMQVRBUyBTQVZBIERSIFNUT01BVE9MT0cKK0xBVEFTIFpPUkEKK0xBVEnFoEtPIFVST8WgCitMQVRJxIYgSVNBSworTEFUScSGIFJBRElWT0oKK0xBVElOxIxJxIYgQk9SSVNMQVYKK0xBVElOxIxJxIYgREFOSUNBCitMQVRJTsSMScSGIEdSVUpBCitMQVRJTsSMScSGIE5JS09MQQorTEFUSU7EjEnEhiBSVcW9QQorTEFUSU5LScSGIFNURVZBTgorTEFUSU5LScSGIFZJTktBCitMQVRJTktPVknEhiBSQURPTUlSCitMQVRJTk9WScSGIMW9QVJLTworTEFUSU5PVknEhiDEkFVKQQorTEFUSU5PVknEhiBCT8W9TworTEFUSU5PVknEhiBEUkFHQU4KK0xBVElOT1ZJxIYgRFJBR0FOCitMQVRJTk9WScSGIEVSSUtBCitMQVRJTk9WScSGIElMSUpBCitMQVRJTk9WScSGIEpPVkFOCitMQVRJTk9WScSGIEpPVkFOCitMQVRJTk9WScSGIExBWkEKK0xBVElOT1ZJxIYgTEpVQkEKK0xBVElOT1ZJxIYgTUFDQQorTEFUSU5PVknEhiBNQVJJTktPCitMQVRJTk9WScSGIE1JTEVOS08KK0xBVElOT1ZJxIYgTUlMT1JBRAorTEFUSU5PVknEhiBNSVJLTworTEFUSU5PVknEhiBORcSQTworTEFUSU5PVknEhiBORURFTEpLTworTEFUSU5PVknEhiBOSUtPTEEKK0xBVElOT1ZJxIYgTklLT0xBCitMQVRJTk9WScSGIFBFVEFSCitMQVRJTk9WScSGIFJBRE9NSVIKK0xBVElOT1ZJxIYgUkFKS08KK0xBVElOT1ZJxIYgU0FWTworTEFUSU5PVknEhiBTTE9CT0RBTktBCitMQVRJTk9WScSGIFNMT0JPREFOCitMQVRJTk9WScSGIFNMT0JPREFOCitMQVRJTk9WScSGIFNNSUxKQQorTEFUSU5PVknEhiBTVkVUT1pBUgorTEFUSU5PVknEhiBaT1JLQQorTEFUS09WScSGIMW9RUxKS08KK0xBVEtPVknEhiBKT1ZBTgorTEFUS09WScSGIEpPVk8KK0xBVEtPVknEhiBNSUxFCitMQVRLT1ZJxIYgVlVKTworTEFUS09WU0tJIFJJU1RPCitMQVRPIEpBU05BCitMQVRPVkxKRVYgWkFHT1JLQQorTEFVxaAgRElNSVRSSUpFCitMQVXFoCBWTEFESU1JUgorTEFVxaBFViBEUkFHQU5BCitMQVXFoEVWIEpPQ0EKK0xBVcWgRVYgTEpVQklOS0EKK0xBVcWgRVYgTUlSSkFOQQorTEFVxaBFViBUT8WgQQorTEFVxaBFViBWRUxJTUlSCitMQVXFoEVWIFZPSklTTEFWCitMQVXFoEVWScSGIMW9SVZBTgorTEFVxaBFVknEhiDFvUlWS0EKK0xBVcWgRVZJxIYgxb1JVktBCitMQVXFoEVWScSGIEJSQU5JU0xBVgorTEFVxaBFVknEhiBEUkFHT0pFCitMQVXFoEVWScSGIERSQUdVVElOCitMQVXFoEVWScSGIFBBVkxFCitMQVXFoEVWScSGIFJBRE9KSUNBCitMQVXFoEVWScSGIFZFU0VMSU4KK0xBVcWgRVZJxIYgWklUQQorTEFVxaBJTiBCUkFOSVNMQVYKK0xBVUJFUlQgVkxBRElTTEFWQQorTEFVUyBBTkEKK0xBVVMgS0FUQVJJTkEKK0xBVVRBUkVWScSGIERSQUdBTgorTEFVVEVSRVIgxJBFTsSQSQorTEFVVEVSRVIgTEFTTE8KK0xBVkHEjCBKT8W9RUYKK0xBVkHEjCBMQVNMTworTEFWScSMS0EgS0FSTE8KK0xBVlJOScSGIEtTRU5JSkEKK0xBVlJOScSGIEtTRU5JSkEKK0xBVlJOScSGIE1JTE/FoAorTEFWUk5JxIYgUkFESVZPSgorTEFWUk5KQSBMQVpBUgorTEFWUk5KQSBNSUxLQU4KK0xBWkEgSk9OCitMQVpBIFRFT0RPUkEKK0xBWkFOU0tJIEFOQQorTEFaQU5TS0kgQlJBTklTTEFWCitMQVpBTlNLSSBHT1JEQU5BCitMQVpBTlNLSSBHT1JEQU5BCitMQVpBUiDEkFVMQQorTEFaQVIgRUxFTkEKK0xBWkFSIEpVTElBCitMQVpBUiBKVUxJSkEKK0xBWkFSIEtBVEFMSU4KK0xBWkFSIExBRElTTEFWCitMQVpBUiBQQVZMRQorTEFaQVIgU0lNQQorTEFaQVIgU1RKRVBBTgorTEFaQVIgVkxBRElNSVIKK0xBWkFSRVYgxJBPS0EKK0xBWkFSRVYgQU5BCitMQVpBUkVWIEFORFJJSkEKK0xBWkFSRVYgSk9WQU4KK0xBWkFSRVYgVkVSQQorTEFaQVJFVknEhiDEjEVEQQorTEFaQVJFVknEhiDFvUlWS0EKK0xBWkFSRVZJxIYgxb1JVk9UQQorTEFaQVJFVknEhiDEkE9SxJBFCitMQVpBUkVWScSGIEJPxaBLTworTEFaQVJFVknEhiBCT1JJU0xBVgorTEFaQVJFVknEhiBCUkFOS08KK0xBWkFSRVZJxIYgQlJBTktPCitMQVpBUkVWScSGIERBTklMTworTEFaQVJFVknEhiBEQVJJTktBCitMQVpBUkVWScSGIERJTUlUUklKRQorTEFaQVJFVknEhiBET0JST1NBVgorTEFaQVJFVknEhiBEUkFHScWgQQorTEFaQVJFVknEhiBEUkFHT01JUgorTEFaQVJFVknEhiBKQURWSUdBCitMQVpBUkVWScSGIEpFTEVOQQorTEFaQVJFVknEhiBKRUxFTkEKK0xBWkFSRVZJxIYgTEFaQVIKK0xBWkFSRVZJxIYgTEpVQk9NSVIKK0xBWkFSRVZJxIYgTEpVQk8KK0xBWkFSRVZJxIYgTUFOREEKK0xBWkFSRVZJxIYgTUlMQURJTktBCitMQVpBUkVWScSGIE1JTEFOCitMQVpBUkVWScSGIE1JTEFOCitMQVpBUkVWScSGIE1JTElWT0pFCitMQVpBUkVWScSGIE1JTE9SQUQKK0xBWkFSRVZJxIYgTUlMT1JBRAorTEFaQVJFVknEhiBNSUxVTgorTEFaQVJFVknEhiBNSUxVVElOCitMQVpBUkVWScSGIE5JS09MQQorTEFaQVJFVknEhiBTQVZBCitMQVpBUkVWScSGIFNNSUxKQQorTEFaQVJFVknEhiBTVEFOScWgQQorTEFaQVJFVknEhiBTVEFOT0pFCitMQVpBUkVWScSGIFNURVZBTgorTEFaQVJFVknEhiBTVEVWQU4KK0xBWkFSRVZJxIYgU1ZFVElTTEFWCitMQVpBUkVWScSGIFZFTElNSVIKK0xBWkFSRVZJxIYgVkVTTkEKK0xBWkFSRVZJxIYgVklEQU4KK0xBWkFSRVZJxIYgVkxBRElNSVIKK0xBWkFSRVZJxIYgVk9KSVNMQVYKK0xBWkFSRVZJxIYgWk9SQU4gRFIgTEVLQVIKK0xBWkFSRVZJxIYgWk9SQU4KK0xBWkFSRVZTS0kgxJBPUsSQRQorTEFaQVJFVlNLSSBEUkFHT0xKVUIKK0xBWkFSRVZTS0kgU0xBVktPCitMQVpBUk9WIFZFU0VMSU4KK0xBWkFST1YgWk9SQU4KK0xBWkFST1ZTS0kgRFJBR0FOCitMQVpFTkRJxIYgTEFaQVIKK0xBWkVOREnEhiBOSUtPTEEKK0xBWknEjEnEhiBCUkFOS08KK0xBWknEjEnEhiBTVEFOSUpBCitMQVpJxIYgxb1BUktPCitMQVpJxIYgxb1JVkFOCitMQVpJxIYgxb1JVkFOCitMQVpJxIYgxb1JVkFOCitMQVpJxIYgxb1JVktPCitMQVpJxIYgxb1JVk9KSU4KK0xBWknEhiDFvUlWT1JBRAorTEFaScSGIMSQT1LEkEUgRElQTCBJTkcKK0xBWknEhiBBTsSQRUxLQQorTEFaScSGIEFORFJJSkEKK0xBWknEhiBCT8WgS08KK0xBWknEhiBCT8W9SURBUgorTEFaScSGIEJSQU5JU0xBVkEKK0xBWknEhiBCUkFOSVNMQVZBCitMQVpJxIYgQlJBTklTTEFWCitMQVpJxIYgQlJBTklTTEFWCitMQVpJxIYgQlJBTklTTEFWCitMQVpJxIYgQlJBTktBIERSCitMQVpJxIYgQlVESU1JUgorTEFaScSGIERBTUpBTktBCitMQVpJxIYgREVKQU4gRElQTCBJTkcKK0xBWknEhiBERUpBTgorTEFaScSGIERSQUdBTkEKK0xBWknEhiBEUkFHQU4KK0xBWknEhiBEUkFHQQorTEFaScSGIERSQUdJQ0EKK0xBWknEhiBEUkFHT0xKVUIKK0xBWknEhiBEUkFHT01JUgorTEFaScSGIERSQUdPCitMQVpJxIYgRFJBR1VUSU4KK0xBWknEhiBEVcWgQU4KK0xBWknEhiBEVcWgQU4KK0xBWknEhiBEVcWgQU4KK0xBWknEhiBEVcWgQU4KK0xBWknEhiBFTUlMIERSIExFS0FSCitMQVpJxIYgR09KS08KK0xBWknEhiBHT1JPTEpVQgorTEFaScSGIEdST1pEQU5BCitMQVpJxIYgSVZBTkEKK0xBWknEhiBKRUxJU0FWRVRBCitMQVpJxIYgSk9DQQorTEFaScSGIEpPVkFOS0EKK0xBWknEhiBKT1ZBTgorTEFaScSGIEpVTEtBCitMQVpJxIYgS0FUSUNBCitMQVpJxIYgS0FUSUNBCitMQVpJxIYgS0FUSUNBCitMQVpJxIYgS09TVEFESU4KK0xBWknEhiBLT1NUQQorTEFaScSGIExBWkFSCitMQVpJxIYgTEFaQVIKK0xBWknEhiBMSlVCQU4KK0xBWknEhiBMSlVCSU5LQQorTEFaScSGIExKVUJJU0FWQQorTEFaScSGIExKVUJPTUlSCitMQVpJxIYgTUFSSUpBCitMQVpJxIYgTUFSSUpBCitMQVpJxIYgTUFSSU5LTworTEFaScSGIE1BUlRBCitMQVpJxIYgTUlMQURJTgorTEFaScSGIE1JTEFESU4KK0xBWknEhiBNSUxBRElOCitMQVpJxIYgTUlMQU4KK0xBWknEhiBNSUxBTgorTEFaScSGIE1JTEFOCitMQVpJxIYgTUlMQU4KK0xBWknEhiBNSUxFTkEKK0xBWknEhiBNSUxFTkEKK0xBWknEhiBNSUxFTktPCitMQVpJxIYgTUlMRU5LTworTEFaScSGIE1JTEVWS0EKK0xBWknEhiBNSUxJQ0EKK0xBWknEhiBNSUxJQ0EKK0xBWknEhiBNSUxJQ0EKK0xBWknEhiBNSUxJTktPCitMQVpJxIYgTUlMSVNBViBQUk9GRVNPUgorTEFaScSGIE1JTElTQVYKK0xBWknEhiBNSUxJVk9KCitMQVpJxIYgTUlMT8WgCitMQVpJxIYgTUlMT1JBRAorTEFaScSGIE1JT0RSQUcKK0xBWknEhiBNSVJBCitMQVpJxIYgTUlSSkFOQQorTEFaScSGIE1JUktPCitMQVpJxIYgTUlST0xKVUIKK0xBWknEhiBNSVJPU0xBVgorTEFaScSGIE1MQURFTgorTEFaScSGIE5BREEKK0xBWknEhiBOQURBCitMQVpJxIYgTkFEQQorTEFaScSGIE5BREXFvURBCitMQVpJxIYgTkFKREFOCitMQVpJxIYgTkVWRU5BCitMQVpJxIYgTklLT0xBIERJUEwgSU5HCitMQVpJxIYgTklLT0xBCitMQVpJxIYgTklLT0xBCitMQVpJxIYgTklLT0xBCitMQVpJxIYgTklLT0xBCitMQVpJxIYgT0JSRU4KK0xBWknEhiBQQUpBCitMQVpJxIYgUEVUQVIKK0xBWknEhiBQRVRBUgorTEFaScSGIFBFVEFSCitMQVpJxIYgUEVUQVIKK0xBWknEhiBQSVJPxaBLQQorTEFaScSGIFBJUk/FoEtBCitMQVpJxIYgUkFEQQorTEFaScSGIFJBREUKK0xBWknEhiBSQURJxaBBCitMQVpJxIYgUkFESVZPSgorTEFaScSGIFJBRE1JTEEKK0xBWknEhiBSQURPSktBCitMQVpJxIYgUkFET0pLTworTEFaScSGIFJBRE9WQU4KK0xBWknEhiBSQUpLTworTEFaScSGIFJPRE9MSlVCCitMQVpJxIYgUlXFvUEKK0xBWknEhiBTQU5KQQorTEFaScSGIFNBVkEKK0xBWknEhiBTQVZBCitMQVpJxIYgU0FWQQorTEFaScSGIFNBVkEKK0xBWknEhiBTSU1BIERSCitMQVpJxIYgU0xBVktPCitMQVpJxIYgU0xPQk9EQU4KK0xBWknEhiBTTE9CT0RBTgorTEFaScSGIFNNSUxKQQorTEFaScSGIFNSQklTTEFWCitMQVpJxIYgU1RBTklNSVIKK0xBWknEhiBTVEFOS08KK0xBWknEhiBTVEVWQU5LQQorTEFaScSGIFNURVZBTgorTEFaScSGIFNURVZBTgorTEFaScSGIFNURVZBTgorTEFaScSGIFNURVZBTgorTEFaScSGIFNUT0pBRElOCitMQVpJxIYgU1RPSkFOCitMQVpJxIYgU1ZFVE9aQVIKK0xBWknEhiBURU9ET1IKK0xBWknEhiBUUkFKS08KK0xBWknEhiBWQUxFUklKQQorTEFaScSGIFZBU0lMSUpFCitMQVpJxIYgVkVMSU5LQQorTEFaScSGIFZFU0VMSU4KK0xBWknEhiBWRVNOQQorTEFaScSGIFZMQURJTUlSCitMQVpJxIYgWk9SQU4KK0xBWknEhiBaT1JJQ0EKK0xBWknEhiBaT1JJQ0EKK0xBWklDQU5JIEFMSlXFoAorTEFaSU4gQk9HREFOCitMQVpJTiBCUkFOS08KK0xBWklOIEdPSktPCitMQVpJTiBNSVJPU0xBVkEKK0xBWklOIE5BVEFMSUpBCitMQVpJTiBTQVZBCitMQVpJTiBTQVZBCitMQVpJTiBTSU5JxaBBCitMQVpJTiBTSU5JxaBBCitMQVpJTiBTTE9CT0RBTgorTEFaSU4gVk9KSU4KK0xBWklOIFpPUklDQQorTEFaSU5JQ0EgUkFET0pLQQorTEFaT1IgTUlST04KK0xBWk9SIE5JS09MQQorTEFaT1YgVFJBSkFOCitMQVpPVkEgVFJBSktBCitMQVpPVknEhiDEjEVETworTEFaT1ZJxIYgQk/FoEtPCitMQVpPVknEhiBCT8W9SURBUgorTEFaT1ZJxIYgREVKQU4gRElQTCBJTkcKK0xBWk9WScSGIERSQUdBTgorTEFaT1ZJxIYgTEFaQVIKK0xBWk9WScSGIExKSUxKQU5BCitMQVpPVknEhiBNSUxFTlRJSkUKK0xBWk9WScSGIE1JTEVUQQorTEFaT1ZJxIYgTUlMSUNBCitMQVpPVknEhiBNSUxPSklDQQorTEFaT1ZJxIYgTkVOQUQKK0xBWk9WScSGIFJBRE9TQVYKK0xBWk9WScSGIFNBVklDQQorTEFaT1ZJxIYgU0xPQk9EQU4KK0xBWk9WScSGIFNUQU5LTworTEFaT1ZJxIYgU1RFVkFOIFBST0ZFU09SCitMQVpPVknEhiBTVkVUSVNMQVYKK0xBWk9WScSGIFZVSkFESU4KK0xBWk9WScSGIFpPUkFOCitMQVpPVknEhiBaT1JBTgorTEFaT1ZTS0kgU0xBVsSMTworTEFaVUtJxIYgxIxFRE8KK0xBWlVLScSGIEFOxJBBCitMQVpVS0nEhiBKT1ZPCitMQVpVS0nEhiBLQcSGQQorTEFaVUtJxIYgTUlMQU4KK0xBWlVLScSGIFNMT0JPREFOCitMRcSMIEVORFJFIERSCitMRcSMIEVSSUgKK0xFxIxBUiBKT1NJUAorTEXEjEFSIEtBUkxPCitMRcSMScSGIMSMRURPTUlSCitMRcSMScSGIERPQlJJTEEKK0xFxIxJxIYgRE9CUk9TQVYKK0xFxIxJxIYgR09KS08KK0xFxIxJxIYgTUlMRVZBCitMRcSMScSGIE1JTE9WQU4KK0xFxIxJxIYgTkFEQQorTEXEjEnEhiBOQURBCitMRcSMScSGIFNJTU8KK0xFxIxJxIYgU1BBU09KRQorTEXEjEnEhiBWSURPU0FWQQorTEXEjEnEhiBWTEFESU1JUgorTEXFoMSMRcWgRU4gRURWQVJECitMRcWgxIxFxaBFTiBKRUxFTkEKK0xFxaBJxIYgxJBVUkEKK0xFxaBJxIYgU1RPSkFOCitMRcWgS0nEhiDEkE9SxJBFCitMRcWgS0nEhiBWT0pJU0xBVgorTEXFoEtPViBKT1ZBTgorTEXFoEtPViBNSUxBTgorTEXFoEtPViBNSU9EUkFHCitMRcWgS09WIE9MR0lDQQorTEXFoEtPVknEhiBaTEFUS08KK0xFxaBOSUsgWkFHT1JLQQorTEXFoFRBUiBTVEVWQU4KK0xFxaBUQVIgWk9SSUNBCitMRcW9QUpJxIYgVlVLQURJTgorTEXFvUFLT1YgxJBVUsSQSUNBCitMRcW9QUtPViBNSUxBTgorTEXFvUlNSVJBQyBBTEVLU0FOREFSCitMRcW9SU1JUkFDIEJSQU5LSUNBCitMRcW9SU1JUkFDIERPQlJJTktBCitMRcW9SU1JUkFDIFNMT0JPREFOCitMRcW9SU1JUkFDIFNMT0JPREFOCitMRcW9SU1JUkFDIFNWRVRMQU5BCitMRcW9SU1JUkFDIFZMQURJTUlSCitMRcSQQU5BIEpFTEVOQQorTEXEkEFOQUMgxJBVUsSQSU5LQQorTEXEkEFOQUMgQlJBTklTTEFWQQorTEXEkEFOQUMgRFJBR09NSVIKK0xFxJBBTkFDIEVNSUxJSkEKK0xFxJBBTkFDIEdBVlJBCitMRcSQQU5BQyBHT1JJQ0EKK0xFxJBBTkFDIEpPVkFOCitMRcSQQU5BQyBNSUxBTgorTEXEkEFOQUMgU0VLVUxBCitMRcSQQU5BQyBTRUtVTEEKK0xFxJBBTkFDIFNMQVZLTworTEXEkEFOQUMgU1RFVkFOCitMRcSQQU5BQyBTVEVWQU4KK0xFxJBBTkFDIFZJVE9NSVIKK0xFxJBBTlNLSSBCUkFOS0EKK0xFxJBFTkFDIERSQUdBTgorTEXEkEVOQUMgTkFEQQorTEXEkEVOQUMgU0xBVktPCitMRcSQRU5BQyBTVEFOSU1JUgorTEXEkEVOQUMgU1RSQUhJTkpBCitMRUJBUiBaTEFUSUNBCitMRUJFUiBaTEFUS08KK0xFQkwgQVJQQUQgRFIgUFJPRkVTT1IKK0xFQk9WScSGIE1BUklOS08KK0xFQlVSScSGIFZBU0lMSUpFCitMRUNLSSDEkFVMQQorTEVDS0kgS1JJxaBUT0YKK0xFQ0tPVknEhiBFTUlMCitMRURFTktPIEFOVEUgTVIKK0xFREVSIEVNSU5BCitMRURFUiBPTEdBCitMRUdFTiBTVE9KQU4KK0xFR0VUScSGIEJSQU5LQQorTEVIT0NLSSDFoEFORE9SCitMRUhPQ0tJIEZFUkVOQworTEVIT1RTS0kgS0FSTE8KK0xFSFIgREFWT1IKK0xFSVRORVIgTklLT0xBCitMRUtJIMSQVVJBCitMRUtJIE1BUklKQQorTEVLSSBTVEpFUEFOCitMRUtJIFRFUkVaSUpBCitMRUtJxIYgxb1JVkFESU4KK0xFS0nEhiDEkE9SxJBJSkUKK0xFS0nEhiBCT0dEQU4KK0xFS0nEhiBCUkFOS0EKK0xFS0nEhiBCUkFOS08KK0xFS0nEhiBERUpBTgorTEVLScSGIERSQUdPTEpVQgorTEVLScSGIERVxaBBTgorTEVLScSGIEpPUkRBTgorTEVLScSGIExKVUJPTUlSCitMRUtJxIYgTEpVQk9NSVIKK0xFS0nEhiBNSUxBRElOCitMRUtJxIYgTUlMQU5LQQorTEVLScSGIE5FxJBPCitMRUtJxIYgTklLT0xBCitMRUtJxIYgU0lNRVZVTgorTEVLScSGIFNUQU5LQQorTEVLScSGIFNURVZBTgorTEVLScSGIFRBVEpBTkEKK0xFS0nEhiBURU9ET1IKK0xFS0nEhiBWRVNFTEtPCitMRUtJxIYgWkFHT1JLQQorTEVLScSGIFpEUkFWS08KK0xFS0lOIExKVUJJQ0EKK0xFS0lOIE1JTEFOCitMRUtJTiBNSUxBTgorTEVLSU4gTUlMQU4KK0xFS0lOIFpEUkFWS08KK0xFS08gxJBFUsSQCitMRUtPIEFMRUtTQU5EQVIKK0xFS08gQk9SSVNMQVYKK0xFS08gTUxBREVOCitMRUtPVknEhiBET0JSSUxPCitMRUtPVknEhiBEUkFHScWgQQorTEVLT1ZJxIYgTUlMT8WgCitMRUtPVknEhiBNSVJLTworTEVLT1ZJxIYgTk9WQUsKK0xFS09WScSGIFNMT0JPREFOS0EKK0xFS09WScSGIFRPTUlTTEFWCitMRUtPVknEhiBWRVJJQ0EKK0xFTEVBIFRPRE9SCitMRUxFT1ZJxIYgQk9STworTEVMScSGIMW9RUxKS08KK0xFTEnEhiBNQUhNVVQKK0xFTEnEhiBNQVJJSkEKK0xFTEnEhiBNSVJTQU0KK0xFTEnEhiBaVU1SRVRBCitMRUxJSyBKQU5PxaAKK0xFTElLIEpFTkUKK0xFTE9WScSGIFJBREUKK0xFTUFJxIYgxb1FTEpLTworTEVNQUnEhiBTT0ZJSkEKK0xFTUFKScSGIEJSQU5LTworTEVNQUpJxIYgQ0VDSUxJSkEKK0xFTUFKScSGIEtBVElDQQorTEVNQUpJxIYgTUFSSUpBCitMRU1BSknEhiBNSUxBTgorTEVNQUpJxIYgTUlMQU4KK0xFTUFKScSGIE1JUk9TTEFWCitMRU1BSknEhiBSQURPSklDQQorTEVNQUpJxIYgU0xPQk9EQU4KK0xFTUFKScSGIFZMQURJTUlSCitMRU1IRSBKRUxJU0FWRVRBCitMRU1JxIYgQk9TQQorTEVNScSGIERSQUdJTkpBCitMRU1JxIYgTEFaQVIKK0xFTUnEhiBNSUxFTktPCitMRU1JxIYgTkVCT0rFoEEKK0xFTUnEhiBWTEFESU1JUgorTEVOIFBJUk/FoEtBCitMRU7EjEEgQU5EUklKQQorTEVOxIxBIEtBVEEKK0xFTsSQRUwgxJBVUk8KK0xFTsSQRUwgSk9WQU4KK0xFTsSQRUwgSk9WQU4KK0xFTsSQRUwgS0FST0xKCitMRU7EkEVMIE1JSEFKTE8KK0xFTkFSRCBBUlBBRAorTEVOQVJEIFBFVEFSCitMRU5BUlQgS0FUSUNBCitMRU5BUlRJxIYgxJBPUsSQRQorTEVOQVRPViBEVcWgQU4KK0xFTkRJxIYgSk9TSVAKK0xFTkRWQUpJIEFORFJJSkEKK0xFTkRWQUpJIEpPxb1FRgorTEVORFZBSkkgTEpJTEpBTkEKK0xFTkVSIEFORFJBxaAKK0xFTkVSIERFxb1FCitMRU5FUlQgQU5UQUwKK0xFTkVSVCBQRVRBUiBEUiBET0NFTlQKK0xFTkVSVCBTVEVWQU4KK0xFTkhBUkQgSkFOT8WgCitMRU5LRcWgIEpPVkFOCitMRU5LRcWgIExBU0xPCitMRU9WQUMgTUlMSVZPSkUKK0xFT1ZBQyBWVUtBRElOCitMRVDEjEVWScSGIE1JTEVUQQorTEVQxaBBTk9WScSGIExBWkFSIERSIExFS0FSCitMRVDFoEnEhiBEUkFHSUNBCitMRVBBUiDFoEFORE9SCitMRVBBUiBKRUxJQ0EKK0xFUEFSIExBRElTTEFWCitMRVBFxaAgTEFESVNMQVYKK0xFUEXFoCBUSUJPUiBEUiBQUk9GCitMRVBIQUZUIFBBTAorTEVQSVIgQU7EkEVMS0EKK0xFUElSIEJPU0lMSktBCitMRVBJUiBNSUxPUkFECitMRVBJUiBWRUxJTUlSCitMRVBPxaBBIFJVRE9MRgorTEVQT0pFViBCUkFOS08KK0xFUE9KRVYgU0FWQQorTEVQT0pFViBWQVNJTElKRQorTEVQT0pFVknEhiDFvUlWT1JBRAorTEVQT0pFVknEhiBTVEFOS08KK0xFUE9SSVMgSkFOCitMRVBPVEnEhiDFvUlWQU4KK0xFUE9UScSGIE1JTEVOS08KK0xFUE9UScSGIE5JS09MQQorTEVQT1ZJxIYgTUlLQQorTEVQVcWgQSBaREVOS08KK0xFUiBJVkFOCitMRVJJxIYgRVLFvUVCRVQKK0xFUklLIEFORFJBxaAKK0xFUklLIEnFoFRWQU4KK0xFUklLIE1JS0xPxaAKK0xFUklOQyBBTklLTworTEVSSU5DIERSQUdPU0xBVgorTEVSSU5DIEpBTk/FoAorTEVSSU5DIEtBUkxPCitMRVJJTkMgS0FUQUxJTgorTEVSSU5DIExBU0xPCitMRVJJTkMgTEFTTE8KK0xFUklOQyBMRU8KK0xFUklOQyBMRU8KK0xFUk8gQk/FvUlEQVIKK0xFUk8gVkxBRElNSVIKK0xFU0tPVkFDIMSQT1LEkEUKK0xFU0tPVkFDIERSQUdBTgorTEVTS09WQUMgTEpVQklDQQorTEVTS09WQUMgTUlMQU4KK0xFU0tPVkFDIE1JTEFOCitMRVNLT1ZBQyBNSUxFVEEKK0xFU0tPVkFDIE1MQURFTiBQUk9GRVNPUgorTEVTS09WQUMgUkFET01JUgorTEVTS09WQUMgU1RBTktBCitMRVNLT1ZBQyBWTEFESU1JUiBEUgorTEVTS09WQUMgVk9KSVNMQVYKK0xFVEFKRVYgQUxFS1NBTkRBUgorTEVUQUpFViBBTEVLU0FOREFSCitMRVRBSkVWIE1JSEFKTE8KK0xFVEFKRVYgVkxBRElNSVIKK0xFVEnEhiDEjEVETworTEVUScSGIMW9QVJLTworTEVUScSGIMW9SVZBCitMRVRJxIYgxb1JVktPIERJUEwgSU5HCitMRVRJxIYgxJBPS08KK0xFVEnEhiDEkE9SxJBFCitMRVRJxIYgxJBPUsSQRQorTEVUScSGIMSQT1LEkEUKK0xFVEnEhiDEkE9SxJBFCitMRVRJxIYgxJBPUsSQRQorTEVUScSGIEFOSUNBCitMRVRJxIYgQU5JQ0EKK0xFVEnEhiBBUknFoEtPCitMRVRJxIYgQk9HREFOCitMRVRJxIYgQk9SSVZPSgorTEVUScSGIEJSQU5JU0xBVgorTEVUScSGIEJSQU5JU0xBVgorTEVUScSGIEJSQU5LQQorTEVUScSGIEJSQU5LTworTEVUScSGIERBUklOS0EKK0xFVEnEhiBEUkFHQU4KK0xFVEnEhiBEUkFHScWgQQorTEVUScSGIERSQUdJQ0EKK0xFVEnEhiBEVcWgQU4KK0xFVEnEhiBEVcWgQU4KK0xFVEnEhiBHQVZSQQorTEVUScSGIEdPSktPCitMRVRJxIYgR09SREFOQSBEUgorTEVUScSGIElWQU4KK0xFVEnEhiBKT1ZBTktBCitMRVRJxIYgSk9WQU4KK0xFVEnEhiBLT1NUQQorTEVUScSGIExBWkFSCitMRVRJxIYgTEFaQVIKK0xFVEnEhiBMQVpBUgorTEVUScSGIExKVUJJxaBBCitMRVRJxIYgTEpVQklDQQorTEVUScSGIE1BUklDQQorTEVUScSGIE1BUklKQQorTEVUScSGIE1BUklKQQorTEVUScSGIE1BUklOS08KK0xFVEnEhiBNSUxBTgorTEVUScSGIE1JTEFOCitMRVRJxIYgTUlMQU4KK0xFVEnEhiBNSUxBTgorTEVUScSGIE1JTElDQQorTEVUScSGIE1JTElDQQorTEVUScSGIE1JTElDQQorTEVUScSGIE1JTE9SQUQKK0xFVEnEhiBNSUxPUkFECitMRVRJxIYgTUlMT1JBRAorTEVUScSGIE1JTE9WQU4KK0xFVEnEhiBNSU9EUkFHCitMRVRJxIYgTUlST1NMQVYKK0xFVEnEhiBNSVJPU0xBVgorTEVUScSGIE5FTkFECitMRVRJxIYgTkVWRU5BCitMRVRJxIYgT0xHQQorTEVUScSGIE9MR0EKK0xFVEnEhiBPTEdJQ0EKK0xFVEnEhiBQRVJBCitMRVRJxIYgUkFEQQorTEVUScSGIFJBREUKK0xFVEnEhiBSQURNSUxBCitMRVRJxIYgU0FWQQorTEVUScSGIFNBVkEKK0xFVEnEhiBTSU1LQQorTEVUScSGIFNMT0JPREFOCitMRVRJxIYgU1RFVkFOCitMRVRJxIYgU1RFVkFOCitMRVRJxIYgU1RFVkFOCitMRVRJxIYgU1RPSkFOIExFS0FSCitMRVRJxIYgU1ZFVElTTEFWCitMRVRJxIYgU1ZFVE9aQVIKK0xFVEnEhiBUT0RPUgorTEVUScSGIFZFUkEKK0xFVEnEhiBWRVNOQQorTEVUScSGIFZJREEKK0xFVEnEhiBWTEFESU1JUgorTEVUScSGIFZMQURJU0xBVkEKK0xFVEnEhiBaRFJBVktPCitMRVRJxIYgWk9SQU4KK0xFVEnEhiBaT1JBTgorTEVUScSGIFpPUkFOCitMRVRJxIYgWk9SS0EKK0xFVElDQSBJVkFOQQorTEVUSUNBIE1JTEFOCitMRVRJQ0EgVE9NSVNMQVYKK0xFVE8gUlXFvUlDQQorTEVUT05BSSBKQU5PxaAKK0xFVE9OQUkgTEFTTE8KK0xFVkEgSUxJTktBCitMRVZBSSBHQUJPUgorTEVWQUkgS0FUQUxJTgorTEVWQUkgTkFORE9SCitMRVZBSSBTVEVWQU4KK0xFVkFKQUMgVkVSQQorTEVWQUtPViBNQVJBCitMRVZBS09WIFNMT0JPREFOCitMRVZBS09WIFZPSklTTEFWCitMRVZBUlNLSSBNSUhBSkxPCitMRVZBVEnEhiBNQVRJSkEKK0xFVkFUScSGIE1JTEtBCitMRVZBVEnEhiBNSUxLSUNBCitMRVZFTlNLSSBUQURFSgorTEVWSSBHT1JBTgorTEVWSSBMRU9OCitMRVZJIFZJS1RPUgorTEVWScSGIExKVUJJTktPCitMRVZOQUpJxIYgRFJBR0FOCitMRVZOQUpJxIYgTUlMS0EKK0xFVk5BSknEhiBNT03EjElMTworTEVaRcSMRVYgU0lOScWgQQorTEnEjEFOSU4gRFJBR0FOCitMScSMQU5JTiBNQVJJSkEKK0xJxIxBTklOIFNMQVZLTworTEnEjEVOIEhPVElNSVIKK0xJxIxFTiBKT1NJUCBESVBMIElORworTEnEjEVOIExKVURNSUxBCitMScSMSU5BIMSQT1LEkEUKK0xJxIxJTkEgQlJBTktJQ0EKK0xJxIxJTkEgREFOSUxPCitMScSMSU5BIERNSVRBUgorTEnEjElOQSBEUkFHTworTEnEjElOQSBEVcWgQU4KK0xJxIxJTkEgTFVLQQorTEnEjElOQSBNQVJJSkEKK0xJxIxJTkEgTUlMQU5LQQorTEnEjElOQSBNSUxBTgorTEnEjElOQSBNSUxFCitMScSMSU5BIFBSRURSQUcKK0xJxIxJTkEgUkFERQorTEnEjElOQSBWRUxJQk9SCitMScSMSU5BIFpPUkFOCitMScSMSU5BUiBEUkFHQU4KK0xJxIxJTkFSIE5FREVMSktPCitMScSMSU5BUiBTTEFWS08KK0xJxIxJTkFSIFNUQU5LTworTEnEjElOScSGIERVxaBBTgorTEnEjElOScSGIE5BREEKK0xJxaDEjEnEhiBWRUxJTktBCitMScWgScSGIMSQVVLEkElOS0EKK0xJxaBJxIYgTUFSSUNBCitMScWgS09WScSGIE1JUk9TTEFWCitMScWgS09WScSGIE1JUk9TTEFWCitMSUJFUiBTVEVWQU4KK0xJQlJJxIYgSVZBTgorTElCUknEhiBJVkFOCitMSUJSScSGIE1BUklKQU4KK0xJRExPRiBQSVJPxaBLQQorTElETE9GIFJVRE9MRgorTElETE9GIFpPTFRBTgorTElIVEVOVEFMIEFOVEFMCitMSUhURU5UQUwgRUxJWkFCRVRBCitMSUhWQVLEjEVLIEFORFJJSkEKK0xJS0FWRUMgSkFST01JUgorTElLQVZFQyBLQVJMTyBESVBMIElORworTElLScSGIEJPUklTTEFWCitMSUtJxIYgQlVESVNMQVYKK0xJS09EUknEhiBNSUxPVkFOCitMSUzEjEVWIERBUklOS0EKK0xJTEkgVkVSQQorTElMScSGIMSQT1LEkEUKK0xJTEnEhiBBTEVLU0FOREFSIERJUEwgSU5HCitMSUxJxIYgTUFSSUpBTkEKK0xJTEnEhiBNSUxFTkEKK0xJTEnEhiBNSU9EUkFHCitMSUxJxIYgU1JCSVNMQVYKK0xJTEnEhiBUQVRKQU5BCitMSUxJxIYgVkVMSU1JUgorTElNQU5JIMWgQcSGSVIKK0xJTUFOSSBNRU1JxaAKK0xJTUFOSSBOQVpJRgorTElNQU5PVknEhiBOQVpJRgorTElNQU5PVlNLSSBJQlJBSElNCitMSU1BTk9WU0tJIE1VU0FGRVQKK0xJTUJPQ0tJIFBFVEFSCitMSU1CVVJHRVIgSk/FvUVGCitMSU5ERU1BTiBKRUxFTkEKK0xJTkRFTUFOIFJVRE9MRgorTElORE5FUiBNQVJHSVQKK0xJTknEhiBEUkFHQU4KK0xJTkpBSyBEUkFHT01JUgorTElOS08gS09MT01BTgorTElQQUkgS09STkVMCitMSVBBTk9WScSGIEdPSktPCitMSVBOScSMS0kgWk9SSUNBCitMSVBPVEnEhiBQRVRBUgorTElQT1ZBQyBEVcWgQU4KK0xJUE9WQUMgTUFUSUpBCitMSVNJxIxJTiBOQURBCitMSVNJxIxJTiBUT01JU0xBVgorTElTScSGIE1BUklDQQorTElTSUNBIE1JSEFKTE8KK0xJU0lDQSBNSUhBSkxPCitMSVNJQ0EgTUlMT8WgIEFEVk9LQVQKK0xJU09WIEtBVElDQQorTElTT1YgTUlMSU1JUgorTElTT1YgTUlSS08KK0xJU09WQUMgWk9SQU4KK0xJU1VMIEFMRUtTQU5EQVIKK0xJU1VMIE1JTEtBCitMSVNVTE9WIE9MR0EKK0xJU1VMT1YgUkFUT01JUgorTElTVUxPViBaT1JBTgorTElUQVZTS0kgVkxBRElNSVIKK0xJVE5FUiBKT1ZBTgorTElUUknEjEnEhiBHQVZSQQorTElUUknEjElOIEJPR0RBTgorTElUUknEjElOIEdFTkEKK0xJVFJJxIxJTi1WRUJFUiBCT0dEQU5LQQorTElUUknEjElOIFZFTElNSVIKK0xJVFZKQUsgUEFWTEUKK0xJVFZKQUsgVkxBRElNSVIKK0xJVkFEQSBNSUxBTgorTElWQURBIE1JTE/FoAorTElWQUpBIEpPWk8KK0xJVkFKQSBKVVJFCitMSVpBVE9WScSGIEJSQU5LTworTEpBxIxFVknEhiBCT8W9SURBUgorTEpBSknEhiBUQUlQCitMSkFMSknEhiDEkE9SxJBFCitMSkFUSUZJIEtBRFJJCitMSkFWUk/FoEtBIFBBVkVMCitMSkFWUk/FoEtBIFBBVkVMCitMSkXFoEVWScSGIExKSUxKQU5BIERSCitMSkXFoEVWScSGIE1BUklKQQorTEpFxaBOSkFLIE1JUk9MSlVCCitMSkXFoE5KQUsgTU9NxIxJTE8KK0xKRUxKQUsgTUVITworTEpFUE9KRVZJxIYgU1RFVkFOCitMSklLQVIgRVZHRU5JSkUKK0xKSUtBUiBNSUhBSkxPIERJUEwgSU5HCitMSklLQVIgVkVST05BCitMSklLQVIgVkxBRElNSVIgTEVLQVIKK0xKSUxKQUsgTEpJTEpBTkEKK0xKSUxKQUsgTUlMQU4KK0xKSUxKQUsgTUlMQU4KK0xKSUxKQUsgTUlMRU5LTworTEpJTEpBSyBNSUxPUkFECitMSklMSkFLIE1JT0RSQUcKK0xKSUxKQUsgTUlSS08KK0xKSUxKQUsgTUlST1NMQVYKK0xKSUxKQUsgTkFEQQorTEpJTEpBSyBOQURFxb1EQQorTEpJTEpBSyBQQUpPCitMSklMSkFLIFNBVkEKK0xKSUxKQUsgU0xBVktPCitMSklMSkFLIFZMQURJTUlSCitMSklMSkFLIFZMQURPCitMSlXFoFRJTkEgxb1JVkFOCitMSlXFoFRJTkEgxJBPUsSQRQorTEpVxaBUSU5BIEpFTEVOQQorTEpVxaBUSU5BIExKVUJJQ0EKK0xKVcWgVElOQSBNSUxBTgorTEpVxaBUSU5BIE1JTEFOCitMSlXFoFRJTkEgTUlMT1ZBTgorTEpVxaBUSU5BIE5JS09MQQorTEpVxaBUSU5BIE9MR0EKK0xKVcWgVElOQSBTT0ZJSkEKK0xKVcWgVElOQSBWT0pLQQorTEpVxaBUSU5PViBOQURBCitMSlVCQcWgxIxJSyBBTlRPTgorTEpVQkFOScSGIE1BUkEKK0xKVUJBTk9WScSGIE1JTEVOS08KK0xKVUJBTk9WScSGIFJBRElTTEFWCitMSlVCRU5LT1ZJxIYgTUlMT1ZBTgorTEpVQkVOS09WScSGIFBFVEFSCitMSlVCRU5LT1ZJxIYgUEVUQVIKK0xKVUJJxIxJxIYgxb1BUktPCitMSlVCScSMScSGIMW9QVJLTworTEpVQknEjEnEhiDFvUlWS0EKK0xKVUJJxIxJxIYgxJBVUsSQSU5LQQorTEpVQknEjEnEhiBCTEHFvU8KK0xKVUJJxIxJxIYgQk9SSVNMQVYKK0xKVUJJxIxJxIYgREFOS08KK0xKVUJJxIxJxIYgREFSQQorTEpVQknEjEnEhiBEUkFHVVRJTgorTEpVQknEjEnEhiBKT1ZJQ0EKK0xKVUJJxIxJxIYgTEFaQVIKK0xKVUJJxIxJxIYgTFVLQQorTEpVQknEjEnEhiBNQVJJSkFOCitMSlVCScSMScSGIE1BUklOQQorTEpVQknEjEnEhiBNSUhBSkxPCitMSlVCScSMScSGIE1JTE/FoCBMT0tBTAorTEpVQknEjEnEhiBNSUxPxaAKK0xKVUJJxIxJxIYgTUlST1NMQVZBCitMSlVCScSMScSGIE1JUk9TTEFWCitMSlVCScSMScSGIE5BREEKK0xKVUJJxIxJxIYgTkFEQQorTEpVQknEjEnEhiBORVZFTktBCitMSlVCScSMScSGIE5JS09MQQorTEpVQknEjEnEhiBQRVRBUgorTEpVQknEjEnEhiBQRVRBUgorTEpVQknEjEnEhiBSQURPU0xBVgorTEpVQknEjEnEhiBSQURPU0xBVgorTEpVQknEjEnEhiBSQVRLTworTEpVQknEjEnEhiBSRUxKQQorTEpVQknEjEnEhiBSVURPTEYKK0xKVUJJxIxJxIYgU0xPQk9EQU4KK0xKVUJJxIxJxIYgU1RBTktPCitMSlVCScSMScSGIFNURVZBTgorTEpVQknEjEnEhiBTVVpBTkEKK0xKVUJJxIxJxIYgVEFMSU5LQQorTEpVQknEjEnEhiBWTEFESU1JUgorTEpVQknEjEnEhiBaT1JBCitMSlVCScWgRVZJxIYgTUlMT8WgCitMSlVCScWgScSGIEJSQU5JU0xBVgorTEpVQknFoEnEhiBNSUxBTktPCitMSlVCScWgScSGIFBFVEFSCitMSlVCScWgScSGIFNVWkFOQQorTEpVQknEhiBBTsSQRUxLQQorTEpVQknEhiBBTkRSSUpBCitMSlVCScSGIElWQU4KK0xKVUJJxIYgSkVMRU5BCitMSlVCScSGIE1JUkpBTkEKK0xKVUJJxIYgTkFUQUxJSkEKK0xKVUJJxIYgUEVSTworTEpVQknEhiBSQUpLTworTEpVQklCUkFUScSGIEVETworTEpVQklCUkFUScSGIExFTworTEpVQklOQUMgTUlMQU5LQQorTEpVQklOS09WScSGIEFMRUtTQU5EUkEKK0xKVUJJTktPVknEhiBCT0dPTEpVQgorTEpVQklOS09WScSGIExFTktBCitMSlVCSU5LT1ZJxIYgTUFSSUpBCitMSlVCSU5LT1ZJxIYgTUlMQU5LTworTEpVQklOS09WScSGIE1JTEFOCitMSlVCSU5LT1ZJxIYgTUlMT1JBRAorTEpVQklOS09WScSGIFBBVkxFCitMSlVCSU5LT1ZJxIYgU0FWQQorTEpVQklOS09WScSGIFNURVZBTgorTEpVQklOS09WScSGIFZFTElNSVIKK0xKVUJJU0FWTEpFVknEhiBEQU5JQ0EKK0xKVUJJU0FWTEpFVknEhiBNScWgQQorTEpVQklTQVZMSkVWScSGIE1JTEFOCitMSlVCSVNBVkxKRVZJxIYgTUlMSUNBCitMSlVCT0pBIERSRU5LQQorTEpVQk9KQSBNTEFERU4KK0xKVUJPSkEgU0lMVklKQQorTEpVQk9KRVYgQklMSkFOQQorTEpVQk9KRVYgSVZBTgorTEpVQk9KRVYgSkVMRU5BCitMSlVCT0pFViBMQVpBUgorTEpVQk9KRVYgTUFKQQorTEpVQk9KRVYgUEVUQVIgTVIKK0xKVUJPSkVWIFJBSktPCitMSlVCT0pFVknEhiDEjEVET01JUgorTEpVQk9KRVZJxIYgQU7EkEVMSUpBCitMSlVCT0pFVknEhiBCT1JJU0xBVgorTEpVQk9KRVZJxIYgQlJBTktPCitMSlVCT0pFVknEhiBERVNJTUlSCitMSlVCT0pFVknEhiBEUkFHSUNBCitMSlVCT0pFVknEhiBJTElKQQorTEpVQk9KRVZJxIYgSk9WQU4KK0xKVUJPSkVWScSGIEpVTEtBCitMSlVCT0pFVknEhiBLQVRJQ0EKK0xKVUJPSkVWScSGIEtPU1RBCitMSlVCT0pFVknEhiBNQVJLTworTEpVQk9KRVZJxIYgTUFSS08KK0xKVUJPSkVWScSGIE1JSEFKTE8KK0xKVUJPSkVWScSGIE1JTEVOQQorTEpVQk9KRVZJxIYgTUlMSUNBCitMSlVCT0pFVknEhiBNSVJLTworTEpVQk9KRVZJxIYgT1NUT0pBCitMSlVCT0pFVknEhiBQRVRBUgorTEpVQk9KRVZJxIYgUlXFvUEKK0xKVUJPSkVWScSGIFJVxb1JQ0EKK0xKVUJPSkVWScSGIFNMQVZLTworTEpVQk9KRVZJxIYgU0xPQk9EQU4KK0xKVUJPSkVWScSGIFNURVZBTgorTEpVQk9KRVZJxIYgVE9ET1IKK0xKVUJPSkVWScSGIFZFTEpLTworTEpVQk9KRVZJxIYgVkxBRElNSVIKK0xKVUJPSkVWScSGIFZMQURJTUlSCitMSlVCT0pFVknEhiBWT0pJU0xBVgorTEpVQk9USU4gSkVMRU5BCitMSlVCT1RJTiBSQURPU0xBVgorTEpVQk9USU5BLUJSS0nEhiBSQUpOQQorTEpVQk9WScSGIE1BUklOS08KK0xKVUJVxaDEjElLIFBFVEFSCitMSlVLT1bEjEFOSU4gTUlSSkFOQQorTEpVS09WxIxBTklOIFpPUklDQQorTEpVTU/FvUVWU0tJIEpFTEVOQQorTEpVTU/FvUVWU0tJIE1BUklKQQorTEpVTU9WScSGIERBTklDQQorTEpVVEnEhiBTVEFOSUtBCitMSlVUVkkgUkFESVZPSgorTE/EjEtJIEpFTElTQVZFVEEKK0xPxaBJxIYgTUlMT1JBRAorTE/FoEnEhiBNSUxPUkFECitMT8WgScSGIE1JVFJBCitMT8WgT05DIEhFTlJJSkVURQorTE9CT0RBIEFOVFVOCitMT0JPREEgU1RFVkFOCitMT0MgQU5EUkHFoAorTE9DIEpPxb1FRgorTE9DSSBJxaBUVkFOCitMT0RJIEdBQk9SCitMT0RJIEpFTElTQVZFVEEKK0xPREkgTEFTTE8KK0xPR1VOT1YgQUxFS1NFSiBESVBMIElORworTE9KQU5JxIxJxIYgUkFESVZPSkUKK0xPSkFOSUNBIEJPxaBLTworTE9KTkEgSVZBTgorTE9KT1ZJxIYgQk/FvUlDQQorTE9KT1ZJxIYgT1NUT0pBCitMT0pPVknEhiBSQU5LTworTE9KUFVSIE1JTE9WQU4KK0xPS0FTIERBUktPCitMT0tJxIYgREFOSUNBCitMT0tJxIYgSkVMRU5BCitMT0tJxIYgTEpVQklDQQorTE9LScSGIE1JTE9WQU4KK0xPS0nEhiBWRVJBCitMT0xJxIYgQk/FoEtPCitMT0xJxIYgRE9CUklOS0EKK0xPTEnEhiBNQVJJSkEKK0xPTEnEhiBNSUxBTgorTE9MScSGIE5FREVMSktPCitMT0xJxIYgU0xBVktBCitMT0xJxIYgVE9ET1IKK0xPTElOIERFSkFOCitMT0xJTiBaT1JJQ0EKK0xPTUVOIEVMRU5BCitMT01JxIYgTU9NSVIKK0xPTUnEhiBSQURPVkFOCitMT01JxIYgU0xPQk9EQU4KK0xPTUpBTlNLSSBBREFNCitMT01KQU5TS0kgU1RFVkFOCitMT01PVknEhiBCUkFUSVNMQVYgTVIgT0VDIEkgSVVSRQorTE9NT1ZJxIYgTUlIQUlOQQorTE9NT1ZJxIYgTUlIQUlOQQorTE9NUEFSIERSQUdBTgorTE9NUEFSIE1JVEFSCitMT01QQVIgUEVUQVIKK0xPTVBBUiBTQVZBCitMT07EjEFSIMSMRURPTUlSCitMT07EjEFSIMSQVVJPCitMT07EjEFSIEJPxaBLTworTE9OxIxBUiBCT8W9SURBUgorTE9OxIxBUiBCT0pBTkEKK0xPTsSMQVIgQk9SSVMKK0xPTsSMQVIgQlJBTklTTEFWCitMT07EjEFSIERSQUdBTgorTE9OxIxBUiBEVcWgQU4KK0xPTsSMQVIgRFXFoEFOCitMT07EjEFSIERVxaBBTgorTE9OxIxBUiBEVcWgQU4KK0xPTsSMQVIgR09KS08KK0xPTsSMQVIgR09SREFOQQorTE9OxIxBUiBJTElKQQorTE9OxIxBUiBKRUxJQ0EKK0xPTsSMQVIgSk9WQU4KK0xPTsSMQVIgS09TVEEKK0xPTsSMQVIgS1NFTklKQQorTE9OxIxBUiBMSlVCSUNBCitMT07EjEFSIExKVUJJQ0EKK0xPTsSMQVIgTEpVQklDQQorTE9OxIxBUiBNQVJLTworTE9OxIxBUiBNSUhBSkxPCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEFOCitMT07EjEFSIE1JTEVOS08KK0xPTsSMQVIgTUlMRQorTE9OxIxBUiBNSUxFCitMT07EjEFSIE1JTE9SQUQKK0xPTsSMQVIgTUlSS08KK0xPTsSMQVIgTUlSS08KK0xPTsSMQVIgTkVERUxKS08KK0xPTsSMQVIgTkVWRU5LQQorTE9OxIxBUiBOSUtPTEEKK0xPTsSMQVIgTklLT0xBCitMT07EjEFSIFBBTlRFTElKQQorTE9OxIxBUiBQUkVEUkFHCitMT07EjEFSIFJBREUKK0xPTsSMQVIgUkFET01JUgorTE9OxIxBUiBSQURPTUlSCitMT07EjEFSIFNJTU8KK0xPTsSMQVIgU0xBVktPCitMT07EjEFSIFNMT0JPREFOCitMT07EjEFSLVNSRU3EjEVWIFZFUklDQQorTE9OxIxBUiBTVEVWTworTE9OxIxBUiBUQVRKQU5BCitMT07EjEFSIFZFTElNSVIKK0xPTsSMQVIgVkVSQQorTE9OxIxBUiBWTEFEQQorTE9OxIxBUiBWTEFESU1JUktBIERSCitMT07EjEFSIFZVS0HFoElOCitMT07EjEFSIFpEUkFWS08KK0xPTsSMQVIgWk9SQU4KK0xPTsSMQVJFVknEhiDFvUlWT1RBCitMT07EjEFSRVZJxIYgSUdOSkFUCitMT07EjEFSRVZJxIYgTUlMQU4KK0xPTsSMQVJFVknEhiBQVU5JxaBBCitMT07EjEFSRVZJxIYgUkFET1ZBTgorTE9OxIxBUkVWScSGIFZJVE9NSVIKK0xPTsSMQVJJxIYgUkFETUlMQQorTE9OxIxBUlNLSSBEUkFHQU5BCitMT07EjEFSU0tJIERSQUdJxaBBCitMT07EjEFSU0tJIFBSRURSQUcKK0xPTsSMQVJTS0kgU0FWQQorTE9OxIxBUlNLSSBTUkVET0pFCitMT07EjElOQSBNSUxKQQorTE9OxIxJTkEgUFJFRFJBRworTE9OQ0nEhiBCRVJJU0xBVkEKK0xPTkNJxIYgUkFKS08KK0xPUEFUSU4gTklLT0xBCitMT1BJxIxJxIYgxaBQSVJPCitMT1BJxIxJxIYgQlJBTktPCitMT1BJxIxJxIYgQlJBTktPCitMT1BJxIxJxIYgSkVMSUNBCitMT1BJxIxJxIYgSk9WQU4KK0xPUEnEjEnEhiBNSU9EUkFHCitMT1BJxIxJxIYgT0xHQQorTE9QScSMScSGIFZFU0VMSU4KK0xPUFXFoEFOU0tJIERVxaBJQ0EKK0xPUFXFoElOQSBBTEVLU0FOREFSCitMT1BVxaBJTkEgSkVMSUNBCitMT1JCRUsgSk9TSVAKK0xPUkVLIEpPVkFOCitMT1JFTkNJTiBNSUxBTgorTE9USU5BIERSQUdBTgorTE9USU5BIE1JUk9TTEFWCitMT1RJTkEgU01JTEpBCitMT1bEjEVWScSGIERBUklOS0EKK0xPVsSMRVZJxIYgRFJBR09TTEFWCitMT1bEjEVWScSGIE1JTEnEhgorTE9WxIxFVknEhiBUT01JU0xBVgorTE9WxIxFVknEhiBWT0pJU0xBVgorTE9WQcWgIFJPWkFMSUpBCitMT1ZBRElOT1YgU1ZFVE9aQVIKK0xPVkFTIElWQU4KK0xPVknEhiBLVVpNQU4KK0xPVlJFIMSMRURPCitMT1ZSRSBEUkFHQU4KK0xPVlJFIExKSUxKQU5BCitMT1ZSRSBNSUxPxaAKK0xPVlJFIFNBVk8KK0xPVlJFIFNMQVZLTworTE9WUkUgU1RFVkFOCitMT1ZSRUtPVknEhiBUT01JU0xBVgorTE9WUkVLT1ZJxIYgWkxBVEtPCitMT1ZSRU4gU0xBVktPCitMT1ZSRU7EjEnEhiBLQVRJQ0EKK0xPVlJFTk9WScSGIE1JUk9TTEFWQQorTE9WUkVOU0tJIERVxaBBTgorTE9WUkVOU0tJIERVxaBBTgorTE9WUknEhiDFvUVMSktPCitMT1ZSScSGIMW9RUxKS08KK0xPVlJJxIYgxJBVUkEKK0xPVlJJxIYgRElWTkEKK0xPVlJJxIYgTUFSS08KK0xPVlJJxIYgTklLT0xBCitMT1ZSScSGIFBFVEFSCitMT1ZSScSGIFJBSktPCitMT1ZSScSGIFJBVEtPCitMT1ZSScSGIFNMQVZLTworTE9WUknEhiBTTEFWS08KK0xPVlJJxIYgU1RFVkFOCitMT1ZSScSGIFNURVZBTgorTE9WUknEhiBUQVRKQU5BCitMT1ZSScSGIFRSSVZVTgorTE9WUklOIERBUkEKK0xPVlJJTiBEUkFHQU4KK0xPWkFOxIxJxIYgTklLTworTE9aQU5JxIYgSVZBTiBESVBMIElORworTE9aQU5JxIYtUEFWTE9WScSGIMSQVVLEkElOS0EKK0xPWkFOT1YgRU1JTAorTE9aQU5PViBTQVZBCitMT1pJxIYgSk9TSVAKK0xPWknEhiBLUlNUQQorTE9aScSGIEtTRU5JSkEKK0xPWknEhiBNSU9EUkFHIERJUEwgSU5HCitMT1pJxIYgVE9NSVNMQVYKK0xPWkpBTklOIE5JS09MQQorTE9aSkFOSU4gTklLT0xBCitMT1pKQU5JTiBOSUtPTEEKK0xPWk9WT0ogTEpVQklDQQorTFXEjEFLIFpMQVRJQ0EKK0xVxIxBUiBNSUxBRElOCitMVcSMQVIgTUlMQU4KK0xVxIxBUiBWRVJBCitMVcSMSSBBTklDQQorTFXEjEkgSVZBTgorTFXEjEnEhiDEjEVET01JUgorTFXEjEnEhiDFvUlWS08KK0xVxIxJxIYgxJBPS08KK0xVxIxJxIYgxJBPUsSQRQorTFXEjEnEhiDEkFVSxJBJTkEKK0xVxIxJxIYgQUxFS1NBTkRBUiBEUgorTFXEjEnEhiBBTEVLU0FORFJBCitMVcSMScSGIEJSQU5LTworTFXEjEnEhiBEUkFHQU4KK0xVxIxJxIYgRFJBR0lDQQorTFXEjEnEhiBEUkFHSU5KQQorTFXEjEnEhiBEUkFHVVRJTgorTFXEjEnEhiBHRU9SR0lKRQorTFXEjEnEhiBKRUxFTkEKK0xVxIxJxIYgSkVMSUNBCitMVcSMScSGIEpPVkFOIE1SCitMVcSMScSGIEpPVkFOCitMVcSMScSGIEpPVkFOCitMVcSMScSGIEpPVklDQQorTFXEjEnEhiBMQVpPCitMVcSMScSGIExKVUJBTgorTFXEjEnEhiBMSlVCT01JUgorTFXEjEnEhiBMSlVCTworTFXEjEnEhiBNSUhBSkxPCitMVcSMScSGIE1JTEFOCitMVcSMScSGIE1JTEVOS08KK0xVxIxJxIYgTUlMRU5LTworTFXEjEnEhiBNSUxJQ0EKK0xVxIxJxIYgTUlMSVZPSkUKK0xVxIxJxIYgTUlMT8WgCitMVcSMScSGIE1JTE9KSUNBCitMVcSMScSGIE1JTE9KS0EKK0xVxIxJxIYgTUlMT01JUgorTFXEjEnEhiBNSUxPU0FWQQorTFXEjEnEhiBNSUxVVElOCitMVcSMScSGIE1JT0RSQUcKK0xVxIxJxIYgTUlSSkFOQQorTFXEjEnEhiBNSVJPU0xBVkEKK0xVxIxJxIYgTU9NxIxJTE8KK0xVxIxJxIYgTU9NSVIKK0xVxIxJxIYgTkFEQQorTFXEjEnEhiBPQlJBRAorTFXEjEnEhiBQQU5UQQorTFXEjEnEhiBQQVZBCitMVcSMScSGIFBFVEFSCitMVcSMScSGIFBFVEtPCitMVcSMScSGIFBFVEtPCitMVcSMScSGIFJBSktPCitMVcSMScSGIFJJU1RPCitMVcSMScSGIFNMQVZLTworTFXEjEnEhiBTTEFWTkEKK0xVxIxJxIYgU09GSUpBCitMVcSMScSGIFNQQVNPSkUKK0xVxIxJxIYgU1RFRkFOSUpBCitMVcSMScSGIFNURVZBTgorTFXEjEnEhiBWQVNPCitMVcSMScSGIFZMQURPCitMVcSMScSGIFZPSklOCitMVcSMScSGIFpEUkFWS08KK0xVxaBJTk9WU0tJIERJTUlUUklKRQorTFXFvUFJxIYgxJBPUsSQRQorTFXFvUFJxIYgxJBPUsSQRQorTFXFvUFJxIYgQU5LQQorTFXFvUFJxIYgQk/FvUlDQQorTFXFvUFJxIYgRFXFoEtPCitMVcW9QUnEhiBKQURSQU5LQQorTFXFvUFJxIYgSlVMS0EKK0xVxb1BScSGIE1JUkEKK0xVxb1BScSGIFZMQURJTUlSCitMVcW9QUnEhiBWTEFESU1JUgorTFXFvUFKScSGIEFOS0EKK0xVxb1BSknEhiBKQURSQU5LQQorTFXFvUFKScSGIE1JTEVOQQorTFXFvUFKScSGIE5BREEKK0xVxb1BSknEhiBTVEFOS08KK0xVxb1BSknEhiBTVEFOS08KK0xVxb1BSknEhiBTVE9KQU4KK0xVxb1BTklOIFNWRVRPWkFSCitMVUJBxaDEjElLIEFOVEFMCitMVUJBxaDEjElLIExBU0xPCitMVUJBUkRBIExKVUJJQ0EKK0xVQkFSREEgU1RFVkFOCitMVUJFTiBSQU5LTworTFVCRU4gU0FWQQorTFVCVVJJxIYgxIxFRE9NSVIKK0xVQlVSScSGIERBTklMTworTFVCVVJJxIYgTUlMT1JBRAorTFVCVVJJxIYgTUlMT1JBRAorTFVCVVJJxIYgTUlMT1ZBTgorTFVCVVJJxIYgTUlPRFJBRworTFVCVVJJxIYgTUlSS08KK0xVQlVSScSGIE5BREEKK0xVQlVSScSGIFJBRE9NSVIKK0xVQlVSScSGIFJBSktPCitMVUJVUknEhiBTVEFOQQorTFVCVVJJxIYgU1RFVkFOCitMVUMgSkFOT8WgCitMVUMgSlVMSUpBCitMVUNJxIYgxb1JVk9KSU4KK0xVQ0nEhiBBTEVLU0FORFJBCitMVUNJxIYgUEVUQVIKK0xVQ0nEhiBSQURJVk9KCitMVUNLQVLFvSBWTEFESU1JUgorTFVEQUpJxIYgRFXFoEFOIERJUEwgSU5HCitMVURBSknEhiBWRVJBCitMVURPxaBLSSBBTsSQRUxLTworTFVET8WgS0kgS0FUSUNBCitMVURPxaBLSSBMQVpBUgorTFVET8WgS0kgTEFaQVIKK0xVRE/FoEtJIExKVUJJQ0EKK0xVRE/FoEtJIExKVUJPTUlSCitMVURPxaBLSSBNSUxFTktPCitMVURPxaBLSSBWRUxJTUlSCitMVURST1ZBTiBTVEVWQQorTFVHT05KQSBMQVpPCitMVUdPTkpBIFBFVEFSCitMVUdPTkpBIFJBRElWT0oKK0xVR09OSkEgU0FWQQorTFVHT05KQSBTTE9CT0RBTgorTFVHT05KQSBWRUxKS08KK0xVR09OSkEgVklET0pFCitMVUdVTUVSU0tJIERBTklDQQorTFVJTk9WScSGIE1JTEFOCitMVUpBTk9WIERSQUdPU0xBVgorTFVKSU5PVknEhiBNSUxBTgorTFVKTk9WScSGIEJSQU5LQQorTFVLQcSMIMWgQU5ET1IKK0xVS0HEjCBBTkRSQcWgCitMVUtBxIwgQU5LSUNBCitMVUtBxIwgQVJBTktBCitMVUtBxIwgQk/FoEtPCitMVUtBxIwgQk/FoEtPCitMVUtBxIwgQk/FvUlEQVIKK0xVS0HEjCBCUkFOSVNMQVYKK0xVS0HEjCBEQU5JTE8KK0xVS0HEjCBEUkFHQU4KK0xVS0HEjCBEUkFHT1NMQVYgRFIKK0xVS0HEjCBGRVJFTkMKK0xVS0HEjCBGUkFOQ0nFoEtBCitMVUtBxIwgRlJBTkpBCitMVUtBxIwgR1JPWkRBCitMVUtBxIwgSUdOSkFUCitMVUtBxIwgSVZBTgorTFVLQcSMIExBWkFSCitMVUtBxIwgTUlIQUpMTworTFVLQcSMIE1JSEFKTE8KK0xVS0HEjCBNSUhBSkxPCitMVUtBxIwgTUlMRVZBCitMVUtBxIwgTkFERcW9REEKK0xVS0HEjCBQRVRBUgorTFVLQcSMIFBFVEFSCitMVUtBxIwgUkFERQorTFVLQcSMIFNBVkEKK0xVS0HEjCBTTE9CT0RBTktBCitMVUtBxIwgU0xPQk9EQU4KK0xVS0HEjCBTVEVWQU4KK0xVS0HEjCBTVkVUS08KK0xVS0HEjCBWRUxJTUlSCitMVUtBxIxFVknEhiBMSlVCScWgQQorTFVLQcSMSSBKRUxJU0FWRVRBCitMVUtBxIxJIEpVTElKQU5BCitMVUtBSknEhiBMQVpBUiBNUgorTFVLQU4gxJBPUsSQRQorTFVLQU4gVklOQ0VOQworTFVLQU5JxIYgRlJJxJBFxaAKK0xVS0FOScSGIFNURVZBTgorTFVLQVRFTEkgSVZBTktBCitMVUtBVkFDIFNNSUxKS0EKK0xVS0FWQUMgWk9SQU4KK0xVS0XFoEVWScSGIERSQUdBTgorTFVLRU5JxIYgTEpJTEpBTkEKK0xVS0VUQSBSQURNSUxBCitMVUtJxIxJxIYgQk9HREFOIERJUEwgSU5HCitMVUtJxIxJxIYgS0FUSUNBCitMVUtJxIxJxIYgUkFEQQorTFVLScSMScSGIFNMT0JPREFOCitMVUtJxIxJxIYgU0xPQk9EQU4KK0xVS0nEhiDFvUlWT1JBRAorTFVLScSGIMW9SVZPUkFECitMVUtJxIYgxb1JVk9UQQorTFVLScSGIMSQVVJBCitMVUtJxIYgxJBVUk8KK0xVS0nEhiBBTEVLU0FOREFSCitMVUtJxIYgQUxFS1NBTkRBUgorTFVLScSGIEFMRUtTQU5EQVIKK0xVS0nEhiBBTkdFTElOQQorTFVLScSGIEJFUlRBCitMVUtJxIYgQk/FoEtPCitMVUtJxIYgQk/FvUlEQVIKK0xVS0nEhiBCT0dPTEpVQgorTFVLScSGIEJPUklWT0pFCitMVUtJxIYgQk9STworTFVLScSGIEJPU0lMSktBCitMVUtJxIYgQ1ZFVEEKK0xVS0nEhiBDVkpFVEtPCitMVUtJxIYgREFORQorTFVLScSGIERBTkUKK0xVS0nEhiBEQVJJTktBCitMVUtJxIYgRElNSVRSSUpFCitMVUtJxIYgRE9CUklMQQorTFVLScSGIERPQlJPU0FWCitMVUtJxIYgRFJBR0FOCitMVUtJxIYgRFJBR0EKK0xVS0nEhiBEUkFHT0pFCitMVUtJxIYgRFJBR09TTEFWQQorTFVLScSGIERVxaBBTktBCitMVUtJxIYgRFXFoEFOCitMVUtJxIYgRFXFoEFOCitMVUtJxIYtRlVERVJFUiBKT0xBTktBCitMVUtJxIYgR1JPWkRBCitMVUtJxIYgR1JVSklDQSBESVBMIElORworTFVLScSGIElMSUpBCitMVUtJxIYgSUxJSkEKK0xVS0nEhiBJTElKQQorTFVLScSGIElWQU4KK0xVS0nEhiBJVkFOCitMVUtJxIYgSVZBTgorTFVLScSGIEpBRFJBTktBCitMVUtJxIYgSkFTTUlOQQorTFVLScSGIEpFTEVOQQorTFVLScSGIEpFTEVOQQorTFVLScSGIEpFTEVOQQorTFVLScSGIEpFTElDQQorTFVLScSGIEpPVkFOS0EKK0xVS0nEhiBKT1ZBTgorTFVLScSGIEpPVkFOCitMVUtJxIYgSk9WQU4KK0xVS0nEhiBKT1ZPCitMVUtJxIYgSk9WTworTFVLScSGIEpVTEtBCitMVUtJxIYgS0FUQVJJTkEKK0xVS0nEhiBLT1NUQQorTFVLScSGIEtPU1RBCitMVUtJxIYgTEFaQVIKK0xVS0nEhiBMSklMSkFOQQorTFVLScSGIExKVUJBCitMVUtJxIYgTEpVQknFoEEgRFIgTEVLQVIKK0xVS0nEhiBMSlVCSUNBCitMVUtJxIYgTEpVQk9NSVIKK0xVS0nEhiBNQVJBCitMVUtJxIYgTUFSSUpBCitMVUtJxIYgTUFSS08KK0xVS0nEhiBNQVJLTworTFVLScSGIE1BUktPCitMVUtJxIYgTUnEhkEKK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEUKK0xVS0nEhiBNSUxJSkEKK0xVS0nEhiBNSUxLQQorTFVLScSGIE1JTE/FoAorTFVLScSGIE1JTE9SQUQKK0xVS0nEhiBNSUxPUkFECitMVUtJxIYgTUlPRFJBRworTFVLScSGIE1JUkpBTkEKK0xVS0nEhiBNSVJKQU5BCitMVUtJxIYgTUlST1NMQVYKK0xVS0nEhiBNSVJPU0xBVgorTFVLScSGIE1PTcSMSUxPCitMVUtJxIYgTkVWRU5BCitMVUtJxIYgTklLT0xBCitMVUtJxIYgTklLT0xBCitMVUtJxIYgTklLT0xBCitMVUtJxIYgTk9WS0EKK0xVS0nEhiBPQlJBRAorTFVLScSGIE9MR0EKK0xVS0nEhiBPTEdJQ0EKK0xVS0nEhiBQRVRBUgorTFVLScSGIFBFVEFSCitMVUtJxIYgUEVUQVIKK0xVS0nEhiBQRVRBUgorTFVLScSGIFJBRE9TQVYKK0xVS0nEhiBSQURPU0xBVgorTFVLScSGIFJBRE9WQU4KK0xVS0nEhiBSQURPVkFOCitMVUtJxIYgUkFKS08KK0xVS0nEhiBSSVNUTworTFVLScSGIFJVxb1BCitMVUtJxIYgUlXFvUEKK0xVS0nEhiBTQVZLQQorTFVLScSGIFNMT0JPREFOS0EKK0xVS0nEhiBTTE9CT0RBTgorTFVLScSGIFNMT0JPREFOCitMVUtJxIYgU0xPQk9EQU4KK0xVS0nEhiBTTE9CT0RBTgorTFVLScSGIFNPRklKQQorTFVLScSGIFNPRklKQQorTFVLScSGIFNUQU5BCitMVUtJxIYgU1RBTknFoEEKK0xVS0nEhiBTVEFOSVNMQVYKK0xVS0nEhiBTVEVWQU4KK0xVS0nEhiBTVEVWQU4KK0xVS0nEhi1TVEVWScSGIExKSUxKQU5BCitMVUtJxIYgU1RFVk8KK0xVS0nEhiBTVE9KQU5LQQorTFVLScSGIFNUT0pBTgorTFVLScSGIFNWRVRMQU5BCitMVUtJxIYgVEFNQVJBCitMVUtJxIYgVE9NSVNMQVYKK0xVS0nEhiBUT01JU0xBVgorTFVLScSGIFZFTElCT1IgRFIKK0xVS0nEhiBWRUxJQk9SIERSCitMVUtJxIYgVkVMSU1JUgorTFVLScSGIFZFTEpLTworTFVLScSGIFZFUkEKK0xVS0nEhiBWRVJJQ0EKK0xVS0nEhiBWRVJPTkEKK0xVS0nEhiBWRVJPTklLQQorTFVLScSGIFZFU0VMSU4KK0xVS0nEhiBWSURPU0FWQQorTFVLScSGIFZMQURJTUlSIERJUEwgSU5HCitMVUtJxIYgVkxBRElNSVIKK0xVS0nEhiBWT0pJTgorTFVLScSGIFZVS09TQVYKK0xVS0nEhiBWVUsKK0xVS0nEhiBaT1JBTgorTFVLScSGIFpPUkFOCitMVUtJxIYgWk9SQU4KK0xVS0nEhiBaT1JLQQorTFVLTyDFoEFORE9SCitMVUtPIEFORFJBxaAKK0xVS09WQUMgQU5JQ0EKK0xVS09WQUMgRFJBR0FOCitMVUtPVkFDIE1JTEFOCitMVUtPVkFDIE1JTE9WQU4KK0xVS09WScSGIERVxaBBTgorTFVLT1ZJxIYgSVZBTgorTFVLT1ZJxIYgSk9WQU4KK0xVS09WScSGIE1JTEFOCitMVUtPVknEhiBNSUxPUkFECitMVUtPVknEhiBNSUxPUkFECitMVUtPVknEhiBNSUxVVElOCitMVUtPVknEhiBTTEFWS08KK0xVS09WScSGIFNMT0JPREFOS0EKK0xVS09WScSGIFZMQURJTUlSCitMVUxJxIYgQU5BCitMVUxJxIYgQU5UVU4KK0xVTEnEhiBGUkFOSkEKK0xVTEnEhiBJVkFOIE1SCitMVUxJxIYgSVZBTgorTFVMScSGIE1BSkEKK0xVTEnEhiBNQVJLTworTFVORyBEUkFHQU4KK0xVTkcgU1RFVkFOCitMVU5HSU5PVknEhiBNQVJJSkEKK0xVTkdVTE9WIE1JTElWT0oKK0xVUMWgScSGIEpVTElKQU5BCitMVVDFoEnEhiBLT1JORUwKK0xVUMWgScSGIEtPUk5FTAorTFVQxaBPUiBTVEVMQQorTFVQSU5TS0kgTklOT1NMQVYKK0xVUElOU0tJIFZMQURJTUlSCitMVVBVQyBKRUxJQ0EKK0xVUFVST1YgTEFaQQorTFVQVVJPVklOIE5FVkVOS0EKK0xVVEtJxIYgxb1JVktBCitMVVRLScSGIMSQT1LEkEUKK0xVVEtJxIYgQUxFS1NBTkRSQQorTFVUS0nEhiBMQVpBUgorTFVUS0nEhiBNSUxPUkFECitMVVRLScSGIFNUQU5LTworTFVUS0nEhiBTVEVWQU4KK0xVVEtJxIYgWkFHT1JLQQorTFVUUk9WIE5BREEKK0xVVlJBRE9WIEJMQUdPSkUKK01BxIxFSyBKT1ZBTgorTUHEjEtJxIYgQlJBTktPCitNQcSMS0nEhiBEUkFHSUNBCitNQcSMS0nEhiBKQU5LTworTUHEjEtJxIYgSkFOS08KK01BxIxLScSGIE1JTEVOQQorTUHEjEtJxIYgTUlMRU5LTworTUHEjEtJxIYgTUlMRVZLQQorTUHEjEtJxIYgTUlMSVZPSgorTUHEjEtJxIYgTUlMSktBCitNQcSMS0nEhiBNSUxPxaAKK01BxIxLScSGIE5FREVMSktPCitNQcSMS0nEhiBORU5BRAorTUHEjEtJxIYgUEVUUkEKK01BxIxLScSGIFNURVZPCitNQcSMS0nEhiBWQVNPCitNQcSMS0nEhiBWTEFESU1JUgorTUHEjEtPVknEhiBNSUxBTkEKK01BxIxLT1ZJxIYgTUlMQU4KK01BxIxLT1ZJxIYgVE9NQQorTUHEjFVLQVQgR1JHTworTUHEjFZBTklOIEJPSkFOQSBEUiBMRUtBUgorTUHFoEEgRVLFvUVCRVQKK01BxaBBIE1JSEFKTE8KK01BxaBBIFZMQURJTUlSCitNQcWgQU5PVknEhiDEkE9SxJBFIERJUEwgSU5HCitNQcWgQU5PVknEhiDEkE9SxJBJSkUKK01BxaBBTk9WScSGIEJMQcW9TworTUHFoEFOT1ZJxIYgQk9TSUxKS0EKK01BxaBBTk9WScSGIEJSQU5JU0xBVgorTUHFoEFOT1ZJxIYgRFJBR08KK01BxaBBTk9WScSGIE5JS09MQQorTUHFoEFOT1ZJxIYgUEVUQVIKK01BxaBBTk9WScSGIFBFVEFSCitNQcWgQU5PVknEhiBQRVRBUgorTUHFoEFOT1ZJxIYgWk9SQU4KK01BxaBJxIYgxb1BUktPCitNQcWgScSGIMW9SVZBTgorTUHFoEnEhiBCT1JJUworTUHFoEnEhiBEUkFHQU4KK01BxaBJxIYgRFJBR0nEhgorTUHFoEnEhiBJxaBUVkFOCitNQcWgScSGIElNUkUKK01BxaBJxIYgSVZBTgorTUHFoEnEhiBKT1ZBTgorTUHFoEnEhiBLQVJPTEoKK01BxaBJxIYgTUFOREEKK01BxaBJxIYgTUlMQU4gRFIKK01BxaBJxIYgTUlMSU5LTworTUHFoEnEhiBNSUxJVk9KCitNQcWgScSGIE1JTEpBTkEKK01BxaBJxIYgTUlMT0pFCitNQcWgScSGIE1JUkEKK01BxaBJxIYgTUlSS08KK01BxaBJxIYgTUlST1NMQVYKK01BxaBJxIYgTkFEQQorTUHFoEnEhiBQRVRBUgorTUHFoEnEhiBSRcWgQUQKK01BxaBJxIYgU0VOS0EKK01BxaBJxIYgU0VOS0EKK01BxaBJxIYgU0lNRU9OCitNQcWgScSGIFNURVZBTgorTUHFoEnEhiBUT01JU0xBVgorTUHFoEnEhiBWRVJBCitNQcWgScSGIFZJS1RPUgorTUHFoEnEhiBWVcSMRVRBCitNQcWgSVJFVknEhiBHT1JEQU5BCitNQcWgSVJFVknEhiBTVEVWQU4KK01BxaBLT1ZJxIYgTk9WSUNBCitNQcWgS09WScSGIFpPUkFOCitNQcWgVFJBUE9WScSGIERSQUdPTEpVQgorTUHFoFVMT1ZJxIYgSkFTTUlOQQorTUHFoFVMT1ZJxIYgSk9WQU5LQQorTUHEhkHFoCBTVEVWQU4KK01BxIZBxaAgVkFTQQorTUHEhkHFoEVWIEFMRUtTQU5EQVIKK01BxIZBxaBFViBCUkFOSVNMQVYKK01BxIZBxaBFViBEQU5JTE8KK01BxIZBxaBFVknEhiBWTEFESU1JUgorTUHEhkXFoEnEhiBKT1NJUAorTUHEhkXFoEnEhiBNSUhBSUxPCitNQcSGS08gSk/FvUVGCitNQcSGS08gVklMTU/FoAorTUHFvUnEhiDEkE9SxJBFCitNQcW9ScSGIERSQUdJxaBBCitNQcW9ScSGIE1JUkEKK01Bxb1JxIYgUEVUQVIKK01Bxb1JxIYgUlXFvUEKK01Bxb1JQlJBREEgVkFTTworTUHFvUlCUkFEQS1WVUdSSU4gTUFSVEEgRElQTCBJTkcKK01BxJBBUiBCT8W9SURBUgorTUHEkEFSIEVSxb1FQkVUCitNQcSQQVIgSk9WQU4KK01BxJBBUiBKT1ZBTgorTUHEkEFSIExBRElTTEFWCitNQcSQQVIgU1RFVkFOCitNQcSQQVJFVknEhiBBTEVLU0FOREFSCitNQcSQQVJFVknEhiBJVkFOCitNQcSQQVJFVknEhiBLT1NUQQorTUHEkEFSRVZJxIYgTUlMRQorTUHEkEFSRVZJxIYgTUlMT8WgCitNQcSQQVJFVknEhiBTUEFTT0pFCitNQcSQQVJFVknEhiBaT1JJQ0EKK01BxJBBUkkgQU5ET1IKK01BxJBJU1RPUk9WIFZMQURJTUlSCitNQUNBSyBQQVZMRQorTUFDQUsgVkxBRElNSVIKK01BQ0FOT1ZJxIYgRFXFoEFOCitNQUNBTk9WScSGIEpFTEVOQQorTUFDQU5PVknEhiBKRVZST1NJTUEKK01BQ0FOT1ZJxIYgSk9WQU4KK01BQ0FOT1ZJxIYgTUlMT8WgCitNQUNBTk9WScSGIFJBVEtPCitNQUNFRE9OScSGIEJPR0RBTiBEUgorTUFDRURPTknEhiBHT1JEQU5BCitNQUNFRE9OScSGIFNUQU5JTUlSCitNQUNFRE9OScSGIFZMQURJTUlSCitNQUNLTyDEkFVSQQorTUFDS08gQU5BCitNQUNORVIgREFWT1IKK01BQ1VSQSDEjEVETworTUFDVVJBIMSQT1LEkEUKK01BQ1VSQSBET0JSSU5LQQorTUFDVVJBIERSQUdPCitNQUNVUkEgTElESUpBCitNQUNVUkEgTUlMT8WgCitNQUNVUkEgTUlMT1JBRAorTUFDVVJBIE1JUk9TTEFWCitNQUNVUkEgUEVUQVIKK01BQ1VSQSBURU9ET1IKK01BQ1VUIE1JTE/FoAorTUFExb1BUiBCT1JJU0xBVgorTUFExb1BUiBNSUxPUkFECitNQUTFvUFSIE1JUktPCitNQUTFvUFSQUMgxIxFRE9NSVIKK01BRMW9QVJBQyBEVcWgQU4gRElQTCBJTkcKK01BRMW9QVJFViBEVcWgQU4KK01BRMW9QVJFViBNSUxBTktBCitNQUTFvUFSRVZJxIYgxb1JVk9SQUQKK01BRMW9QVJFVknEhiDEkE9SxJBFCitNQUTFvUFSRVZJxIYgQklTRVJLQQorTUFExb1BUkVWScSGIE1BUktPCitNQUTFvUFSRVZJxIYgU0FWQQorTUFExb1HQUxKIE1JTEVOS08KK01BRMW9R0FMSiBTTE9CT0RBTgorTUFExb1PVlNLSSBTQU5ERQorTUFEQcSMSSBNQVJJSkEKK01BREFDS0kgQU5UQUwKK01BREFDS0kgSkFOCitNQURBQ0tJIEpPU0lQCitNQURBQ0tJIEtBUkxPCitNQURBUkFTIEFORFJBxaAKK01BREFSQVMgQVJQQUQKK01BREFSQVMgTUHEhkHFoAorTUFEQVJBUyBNQVJJSkEKK01BREFSQVMgUk9aQUxJSkEKK01BREkgxJBVUklDQQorTUFESSBKT8W9RUYKK01BREnEhiBCT8W9SURBUiBESVBMIElORworTUFEScSGIE1BUklKQU4KK01BREnEhiBNSUxJU0FWCitNQURPTknEhiBTVEpFUEFOCitNQURPViBJTElKQQorTUFHQVJBxaBFVknEhiBBTkFNQVJJSkEKK01BR0FSQcWgRVZJxIYgQk9SSVZPSgorTUFHQVJBxaBFVknEhiBLQVRBUklOQQorTUFHQVJBxaBFVknEhiBNSVJLTworTUFHQVJBxaBFVknEhiBOQURBCitNQUdEQSBLTEFSQQorTUFHREFMRU5JxIYgVkVSSk9WCitNQUdEScSGIFRPTUlTTEFWCitNQUdEVSBKT04gRElQTCBJTkcKK01BR0RVIExJQQorTUFHRFUgUk9ESUtBIExFS0FSCitNQUdJxIYgTklLT0xBCitNQUdMQUpMScSGIFNBQlJJSkEKK01BR0xJxIYgSk9WQU4KK01BR0xJTlNLSSBCT1JJU0xBViBESVBMIFBSQVZOSUsKK01BR0xPViBBTEVLU0FOREFSCitNQUdMT1YgRFJBR09MSlVCCitNQUdMT1YgRFXFoEFOCitNQUdMT1ZTS0kgRFXFoEtPCitNQUdMT1ZTS0kgSk9TSVAKK01BR0xPVlNLSSBNQVJHSVRBCitNQUdMT1ZTS0kgTUlMSUNBCitNQUdMT1ZTS0kgTUlST1NMQVYKK01BR0xPVlNLSSBTVEVWQU4KK01BR0xPVlNLSSBTVEVWQU4KK01BR0/EjCBGUkFOSkEKK01BR0/EjCBKVUxJSkFOCitNQUdPxIwgTUlST05KCitNQUdPxaAgxaBBTkRPUgorTUFHT8WgIEpFTElTQVZFVEEKK01BR0/FoCBKVUxJSkFOQQorTUFHT8WgIE1BUklKQQorTUFHVVJBIFRPTUEKK01BSMSQSUsgRUxFTkEKK01BSEHEjEkgSkFOT8WgCitNQUhNVVRJIE1BSE1VVAorTUFITVVUSSBaVVpBTkEKK01BSE9WQUMgTUlMT1JBRAorTUFJQ0hFUiDEkE9SxJBFCitNQUrFoEFJIEZFUkVOQworTUFKxaBBSSBLTEFSQQorTUFKREFOxIxFVknEhiBNSVRBUgorTUFKREFOQUMgRFJBR0lOSkEKK01BSkRBTkTFvUnEhiBKT1pPCitNQUpEQU5Exb1JxIYgUEVSSUNBCitNQUpEQU5Exb1JxIYgUEVUQVIKK01BSkRFVkFDIMW9SVZLTyBEUgorTUFKREVWQUMgUkFET1ZBTgorTUFKRVIgxaBBTkRPUgorTUFKRVIgRURVQVJECitNQUpFUiBKQU5PxaAKK01BSkVSIEpPVkFOCitNQUpFUiBLQVRJQ0EKK01BSkVSIE1BUklKQQorTUFKRVIgTklLT0xBCitNQUpFUiBQRVRBUgorTUFKRVIgU1RFVkFOCitNQUpFUlNLSSDFoFRFRkFOCitNQUpFVEnEhiBBTlRPTgorTUFKRVRJxIYgTUFSSUpBCitNQUpFVEnEhiBOSUtPTEEKK01BSknEhiBTVEVWQU4KK01BSknEhiBWRVNOQQorTUFKScSGIFpPUkFOCitNQUpJxIYgWk9SQU4KK01BSklOIEVGSU1JSkEKK01BSklOIE1JT0RSQUcKK01BSklOU0tJIFpPUkEKK01BSktJxIYgQUxFS1NBTkRSQQorTUFKS0nEhiBCT0dEQU4KK01BSktJxIYgQk9HREFOCitNQUpLScSGIERSQUdBTgorTUFKS0nEhiBJTElKQQorTUFKS0nEhiBJVkFOS0EKK01BSktJxIYgSk9DQQorTUFKS0nEhiBNSUxBTgorTUFKS0nEhiBNSUxBTgorTUFKS0nEhiBNSUxBTgorTUFKS0nEhiBNSUxBTgorTUFKS0nEhiBNSVJPU0xBVgorTUFKS0nEhiBOSUtPTEEKK01BSktJxIYgT0JSQUQKK01BSktJxIYgUkFERQorTUFKS0nEhiBSQURPSktBCitNQUpLScSGIFNUT0pBTktBCitNQUpLScSGIFZFTEpLTworTUFKS0nEhiBWTEFETworTUFKS0nEhiBaRFJBVktPCitNQUpLScSGIFpPUkFOCitNQUpLU05FUiDEkE9SxJBFCitNQUpPUiDEkFVSQQorTUFKT1IgQU5BCitNQUpPUiBGRVJFTkMgRFIgSU5HCitNQUpPUiBKT8W9RUYKK01BSk9SIEpPxb1FRgorTUFKT1IgS0FST0xKCitNQUpPUiBLQVJPTEoKK01BSk9SIE1BUkdJVEEKK01BSk9SIE1BUklKQQorTUFKT1IgTUFSSUpBCitNQUpPUiBOQU5ET1IKK01BSk9SIFNURVZBTgorTUFKT1LEjElLIEZSQU5KQQorTUFKT1JPxaAgQkVMQSBEUgorTUFKT1JPxaAgREXFvUUKK01BSk9ST8WgIEpPVkFOCitNQUpPUk/FoCBMQUpPxaAKK01BSk9ST8WgIFNURVZBTgorTUFKT1JPxaAgVEVSRVpJSkEKK01BSk9ST8WgSS1ERVVSQSBNQVJJSkEKK01BSk9ST8WgSSBJTVJFCitNQUpTS0kgSkVMSUNBCitNQUpTS0kgSk9WQU4KK01BSlNLSSBNSUxBTgorTUFKU0tJIE5JS09MQQorTUFKU0tJIFNMQVZLTworTUFKU0tJIFZFU05BCitNQUpTVE9SQUMgRFJBR0FOCitNQUpTVE9SQUMgTEpVQk9NSVIKK01BSlNUT1JBQyBQRVRBUgorTUFKU1RPUkFDIFNBVk8KK01BSlNUT1JPViBMSlVCScWgQQorTUFKU1RPUk9WIFZMQURJTUlSCitNQUpTVE9ST1ZJxIYgxJBVUkHEkAorTUFKU1RPUk9WScSGIEFOxJBBCitNQUpTVE9ST1ZJxIYgQU5LQQorTUFKU1RPUk9WScSGIEJPR0RBTgorTUFKU1RPUk9WScSGIEJPUklWT0oKK01BSlNUT1JPVknEhiBCT1JJVk9KCitNQUpTVE9ST1ZJxIYgREFSS08KK01BSlNUT1JPVknEhiBEUkFHQU4KK01BSlNUT1JPVknEhiBEUkFHT01JUgorTUFKU1RPUk9WScSGIERVxaBBTgorTUFKU1RPUk9WScSGIERVxaBLTworTUFKU1RPUk9WScSGIEdPUkRBTkEKK01BSlNUT1JPVknEhiBLQVRJQ0EKK01BSlNUT1JPVknEhi1LT1NUScSGIFZFU05BCitNQUpTVE9ST1ZJxIYgTEpJTEpBTkEKK01BSlNUT1JPVknEhiBNSUxBTgorTUFKU1RPUk9WScSGIE1JTEFOCitNQUpTVE9ST1ZJxIYgTUlMSUNBCitNQUpTVE9ST1ZJxIYgTkXEkE8KK01BSlNUT1JPVknEhiBORUJPSsWgQQorTUFKU1RPUk9WScSGIE5FVkVOS0EKK01BSlNUT1JPVknEhiBOSUtPTEEKK01BSlNUT1JPVknEhiBQRVRBUgorTUFKU1RPUk9WScSGIFJBRE9TTEFWCitNQUpTVE9ST1ZJxIYgU0FWS0EKK01BSlNUT1JPVknEhiBTSU1BCitNQUpTVE9ST1ZJxIYgU0xPQk9EQU4KK01BSlNUT1JPVknEhiBTVkVUTEFOQQorTUFKU1RPUk9WScSGIFRFT0RPUgorTUFKU1RPUk9WScSGIFVST8WgCitNQUpTVE9ST1ZJxIYgVkFTQQorTUFKU1RPUk9WScSGIFZJVE9NSVIKK01BSlNUT1JPVknEhiBWVUtBxaBJTgorTUFKU1RPUk9WScSGIFZVS09TQVZBCitNQUpUQU4gxJBPUsSQRSBESVBMIElORworTUFKVEFOIEtBUkxPCitNQUpUQU4gTUlIQUpMTworTUFKVEFOIFBBVkxFCitNQUsgQU5EUklKQQorTUFLIEpPU0lQQQorTUFLIE9TS0FSCitNQUvFoEEgQU5BCitNQUvFoEEgSk9WQU4KK01BS8WgQSBLQVJMTworTUFLxaBBIFBFVEFSCitNQUtBSkkgSkFLT1YKK01BS0FKSSBKQU5LTworTUFLQU4gSkFOCitNQUtBTkpJxIYgQk9KQU4KK01BS0FOSknEhiBNSUxJU0FWCitNQUtBUknEhiBOQURBCitNQUtBUknEhiBTVEVWQU4KK01BS0FSScSGIFZJREEKK01BS0FSScSGIFpPUkFOCitNQUtBUklOIMW9QVJLTworTUFLQVJJTiBaVk9OSU1JUiBESVBMIElORworTUFLScWgIFJVxb1BCitNQUtJxaAgVkxBVEtPCitNQUtJVEFOIEpPVkFOCitNQUtJVknEhiBNSUhBSkxPCitNQUtJVknEhiBNSUxPxaAKK01BS0lWScSGIFNBVkEKK01BS0lWScSGIFNUQU5JU0xBVgorTUFLSkkgWkRFTktBCitNQUtMRU5PVknEhiBSQURBCitNQUtMSkVOT1ZJxIYgU1JCT0xKVUIKK01BS0xKRU5PVknEhiBaT1JBTgorTUFLTyDFoEFORE9SCitNQUtPIEZSQU5KQQorTUFLTyBKVUxJSkFOQQorTUFLTyBNSUxFTkEKK01BS09IIEFOVE9OCitNQUtSQSBBTkEKK01BS1JBIElWQU4KK01BS1JBIEpPU0lQCitNQUtSQSBLQVRBUklOQQorTUFLUklOIE1BUkdJVEEgRFIKK01BS1JJTiBSVcW9SUNBCitNQUtTScSGIMW9SVZBTkEKK01BS1NJxIYgxJBPUsSQRQorTUFLU0nEhiBCSUxKQU5BCitNQUtTScSGIEJPxaBLTworTUFLU0nEhiBCT8W9SURBUgorTUFLU0nEhiBEQU5JQ0EKK01BS1NJxIYgREVKQU4KK01BS1NJxIYgRE1JVEFSCitNQUtTScSGIERPQlJJVk9KRQorTUFLU0nEhiBEUkFHQU4KK01BS1NJxIYgRFJBR0FOCitNQUtTScSGIERSQUdPTUlSCitNQUtTScSGIERVxaBBTgorTUFLU0nEhiBFRElUCitNQUtTScSGIEdBVlJBCitNQUtTScSGIEpFTElDQQorTUFLU0nEhiBKRUxJQ0EKK01BS1NJxIYgSk9WQU5LQQorTUFLU0nEhiBKT1ZBTgorTUFLU0nEhiBKT1ZBTgorTUFLU0nEhiBMVUtBCitNQUtTScSGIE1BUklKQU5BCitNQUtTScSGIE1JTEFOQQorTUFLU0nEhiBNSUxJQ0EKK01BS1NJxIYgTUlMSUNBCitNQUtTScSGIE1JTE9SQUQKK01BS1NJxIYgTUlMT1JBRAorTUFLU0nEhiBOSUtPTEEKK01BS1NJxIYgUkFET1NMQVYKK01BS1NJxIYgUkFUS08KK01BS1NJxIYgU0FWQQorTUFLU0nEhiBTTEFWS08KK01BS1NJxIYgVk9KSU4KK01BS1NJxIYgWk9SS0EKK01BS1NJTcSMRVYgQU7EkEVMS08KK01BS1NJTcSMRVYgU1RFVkFOCitNQUtTSU1PViBCUkFOSVNMQVYKK01BS1NJTU9WIExKVUJPTUlSCitNQUtTSU1PViBTTE9CT0RBTgorTUFLU0lNT1YgVkVSQQorTUFLU0lNT1ZJxIYgxIxFRE9NSVIKK01BS1NJTU9WScSGIMW9SVZPUkFECitNQUtTSU1PVknEhiDEkFVSSUNBCitNQUtTSU1PVknEhiBBTEVLU0FOREFSCitNQUtTSU1PVknEhiBBTEVLU0FOREFSCitNQUtTSU1PVknEhiBBTEVLU0FOREFSCitNQUtTSU1PVknEhiBBTkEKK01BS1NJTU9WScSGIEFOS0lDQQorTUFLU0lNT1ZJxIYgQk/FoEtPCitNQUtTSU1PVknEhiBCT1JJVk9KRQorTUFLU0lNT1ZJxIYgQk9SSVZPSgorTUFLU0lNT1ZJxIYgQlJBTklTTEFWCitNQUtTSU1PVknEhiBCUkFOS0EKK01BS1NJTU9WScSGIENWSUpFVElOCitNQUtTSU1PVknEhiBEQU5JQ0EKK01BS1NJTU9WScSGIERBUktPCitNQUtTSU1PVknEhiBESU1JVFJJSkUKK01BS1NJTU9WScSGIERSQUdBTgorTUFLU0lNT1ZJxIYgRFJBR0FOCitNQUtTSU1PVknEhiBEUkFHQU4KK01BS1NJTU9WScSGIERSQUdJxIYKK01BS1NJTU9WScSGIERSQUdPU0xBVgorTUFLU0lNT1ZJxIYgRFXFoEFOIE1SIE9FQworTUFLU0lNT1ZJxIYgRFXFoEFOCitNQUtTSU1PVknEhiBEVcWgQU4KK01BS1NJTU9WScSGIERVxaBBTgorTUFLU0lNT1ZJxIYgSVZBTktBCitNQUtTSU1PVknEhiBJVkFOCitNQUtTSU1PVknEhiBKQUtPVgorTUFLU0lNT1ZJxIYgSkVMSVNBVkVUQQorTUFLU0lNT1ZJxIYgSk9WQU4KK01BS1NJTU9WScSGIEpPVkFOCitNQUtTSU1PVknEhiBKT1ZBTgorTUFLU0lNT1ZJxIYgS0FUQVJJTkEKK01BS1NJTU9WScSGIEtBVElDQQorTUFLU0lNT1ZJxIYgTEFaQVIKK01BS1NJTU9WScSGIExBWkEKK01BS1NJTU9WScSGIExFTktBCitNQUtTSU1PVknEhiBMSlVCScWgQQorTUFLU0lNT1ZJxIYgTEpVQknFoEEKK01BS1NJTU9WScSGIExKVUJJQ0EKK01BS1NJTU9WScSGIExKVUJJQ0EKK01BS1NJTU9WScSGIExVS0EKK01BS1NJTU9WScSGIE1BUktPCitNQUtTSU1PVknEhiBNSUxBTiBESVBMIElORworTUFLU0lNT1ZJxIYgTUlMQU5BCitNQUtTSU1PVknEhiBNSUxBTgorTUFLU0lNT1ZJxIYgTUlMRU5LTworTUFLU0lNT1ZJxIYgTUlMRU5LTworTUFLU0lNT1ZJxIYgTUlMSU5BCitNQUtTSU1PVknEhiBNSUxPUkFECitNQUtTSU1PVknEhiBNSUxVVElOCitNQUtTSU1PVknEhiBNSU9EUkFHCitNQUtTSU1PVknEhiBNSU9EUkFHCitNQUtTSU1PVknEhiBNSU9EUkFHCitNQUtTSU1PVknEhiBNSU9EUkFHCitNQUtTSU1PVknEhiBNSVJPU0xBVgorTUFLU0lNT1ZJxIYgTUxBREVOCitNQUtTSU1PVknEhiBOQURBCitNQUtTSU1PVknEhiBOQVRBTElKQQorTUFLU0lNT1ZJxIYgTklLT0xBCitNQUtTSU1PVknEhiBOSUtPTEEKK01BS1NJTU9WScSGIFBFVEFSCitNQUtTSU1PVknEhiBQUkVEUkFHCitNQUtTSU1PVknEhiBSQURNSUxBCitNQUtTSU1PVknEhiBSQURPVkFOS0EKK01BS1NJTU9WScSGIFJBRE8KK01BS1NJTU9WScSGIFJBTsSQRUwKK01BS1NJTU9WScSGIFJJU1RPCitNQUtTSU1PVknEhiBTQVZBCitNQUtTSU1PVknEhiBTQVZPCitNQUtTSU1PVknEhiBTTEFWT0xKVUIKK01BS1NJTU9WScSGIFNSRcSGS08KK01BS1NJTU9WScSGIFNURVZBTgorTUFLU0lNT1ZJxIYgU1RFVkFOCitNQUtTSU1PVknEhiBTVEVWQU4KK01BS1NJTU9WScSGIFNURVZJQ0EKK01BS1NJTU9WScSGIFNWRVRPTUlSCitNQUtTSU1PVknEhiBUSUhPTUlSCitNQUtTSU1PVknEhiBUSU5LQQorTUFLU0lNT1ZJxIYgVE9NSVNMQVYKK01BS1NJTU9WScSGIFRPTUlTTEFWCitNQUtTSU1PVknEhiBWRUxJxIxLTworTUFLU0lNT1ZJxIYgVkVMSU1JUgorTUFLU0lNT1ZJxIYgVkxBRElNSVIKK01BS1NJTU9WScSGIFpMQVRBCitNQUtTSU1PVknEhiBaT1JBTgorTUFLU0lNT1ZTS0kgxJBPUsSQRQorTUFLU0lNT1ZTS0kgVk9KTworTUFLU0lOIFNMQVZLQQorTUFLVUggTUlIQUlMTworTUFLVUggTUlIQUpMTworTUFLVUggVkxBRElNSVIKK01BTMSMScSGIEFORFJJSkEgRElQTCBJTkcKK01BTMSMScSGIEFORFJJSkEKK01BTMSMScSGIEpPxb1FRgorTUFMxIxJxIYgSlVMS0EKK01BTMSMScSGIE5JS09MQQorTUFMQcWgRVZJxIYgTUlMVVRJTgorTUFMQUNLTyBKVUxJSkFOCitNQUxBQ0tPIExKVUJJQ0EKK01BTEFFTknEhiBEUkFHQU4KK01BTEFWUkFaScSGIEpPVkFOCitNQUxCQcWgQSBCT1JJU0xBVkEKK01BTEJBxaBBIERSQUdPTEpVQgorTUFMQkHFoEEgRFXFoEFOS0EKK01BTEJBxaBBIEpFTEtBCitNQUxCQcWgQSBNSUxBTgorTUFMQkHFoEEgTUlMRQorTUFMQkHFoEEgVkVMSktPCitNQUxCQcWgQSBaRFJBVktPCitNQUxCQcWgScSGIEJPxaBLTworTUFMQkHFoEnEhiBEUkFHQU4KK01BTEJBxaBJxIYgSkFOS08KK01BTEJBxaBJxIYgTUnEhk8KK01BTEJBxaBJxIYgUlXFvUEKK01BTEJBxaBLSSBEVcWgQU4KK01BTEJBxaBLSS1KQU5LT1YgQU7EkEEKK01BTEJBxaBLSSBNQVJJSkEKK01BTEJBxaBLSSBNSUxJTktBCitNQUxFxaAgQU7EkEVMS0EKK01BTEXFoCBCT1JBCitNQUxFxaAgRE1JVEFSCitNQUxFxaAgSkVMRU5BCitNQUxFxaAgSk9WQU5LQQorTUFMRcWgIEtPU1RBCitNQUxFxaAgTEpJTEpBTkEKK01BTEXFoCBNQVJJTktPCitNQUxFxaAgTk9WQUsKK01BTEXFoCBSQURPTUlSCitNQUxFxaAgUlXFvUlDQQorTUFMRcWgIFNUQU5BCitNQUxFxaAgU1ZFVExBTkEKK01BTEXFoCBWQVNPCitNQUxFxaAgVk9KSVNMQVYKK01BTEXFoCBaT1JBCitNQUxFxaBFViDFvUlWS08KK01BTEXFoEVWIMW9SVZPSklOCitNQUxFxaBFViDEkE9SxJBFCitNQUxFxaBFViBCT8WgS08KK01BTEXFoEVWIEJPUklTTEFWCitNQUxFxaBFViBCUkFOS08KK01BTEXFoEVWIERBTUpBTgorTUFMRcWgRVYgREFNSkFOCitNQUxFxaBFViBESU1JVFJJSkUKK01BTEXFoEVWIERSQUdBTkEKK01BTEXFoEVWIERSQUdPTEpVQgorTUFMRcWgRVYgRFJBR09MSlVCCitNQUxFxaBFViBEVcWgQU4KK01BTEXFoEVWIEpFTElDQQorTUFMRcWgRVYgSk9WQU4KK01BTEXFoEVWIEtPU0FOQQorTUFMRcWgRVYgTEFaQVIKK01BTEXFoEVWIExKVUJJQ0EKK01BTEXFoEVWIExKVUJJTktPCitNQUxFxaBFViBMSlVCT01JUgorTUFMRcWgRVYgTFVLQQorTUFMRcWgRVYgTUFSSUpBCitNQUxFxaBFViBNSUxFTktPCitNQUxFxaBFViBNSUxFVkEKK01BTEXFoEVWIE1JTEpBCitNQUxFxaBFViBNSUxPxaAKK01BTEXFoEVWIE1JT0RSQUcKK01BTEXFoEVWIE1JT0RSQUcKK01BTEXFoEVWIE1JUk9TTEFWCitNQUxFxaBFViBNSVJPU0xBVgorTUFMRcWgRVYgUEVUQVIKK01BTEXFoEVWIFBFVEFSCitNQUxFxaBFViBQUkVEUkFHCitNQUxFxaBFViBQUkVEUkFHCitNQUxFxaBFViBQUklaUkVOS0EKK01BTEXFoEVWIFNMQVZLTworTUFMRcWgRVYgVEFNQVJBCitNQUxFxaBFViBWRVJBCitNQUxFxaBFViBWSVRPTUlSCitNQUxFxaBFVknEhiDFvUlWQU4KK01BTEXFoEVWScSGIMW9SVZLQQorTUFMRcWgRVZJxIYgxJBVS0EKK01BTEXFoEVWScSGIEFMRUtTQU5EUkEKK01BTEXFoEVWScSGIERJTUlUUklKRQorTUFMRcWgRVZJxIYgRFJBR0FOQQorTUFMRcWgRVZJxIYgRFJBR0FOCitNQUxFxaBFVknEhiBEVcWgS08KK01BTEXFoEVWScSGIEdPSktPCitNQUxFxaBFVknEhiBJVkFOCitNQUxFxaBFVknEhiBKT1ZBTgorTUFMRcWgRVZJxIYgSk9WQU4KK01BTEXFoEVWScSGIExBWkFSCitNQUxFxaBFVknEhiBMSlVCSUNBCitNQUxFxaBFVknEhiBNQVJJSkEKK01BTEXFoEVWScSGIE1BUktPCitNQUxFxaBFVknEhiBNSUxFCitNQUxFxaBFVknEhiBNSUxJQ0EKK01BTEXFoEVWScSGIE1JTE/FoAorTUFMRcWgRVZJxIYgTUlSS08KK01BTEXFoEVWScSGIE1JUk9TTEFWCitNQUxFxaBFVknEhiBNTEFERU4KK01BTEXFoEVWScSGIE5BREEKK01BTEXFoEVWScSGIE5FREVMSktPCitNQUxFxaBFVknEhiBOSUtJQ0EKK01BTEXFoEVWScSGIFBFVEFSCitNQUxFxaBFVknEhiBQRVRBUgorTUFMRcWgRVZJxIYgU0FWS08gTE9LQUwKK01BTEXFoEVWScSGIFNMT0JPREFOS0EgRFIKK01BTEXFoEVWScSGIFZBU0tSU0lKRQorTUFMRcWgRVZJxIYgVkxBRElNSVIKK01BTEXFoEVWScSGIFZPSklTTEFWQQorTUFMRUNLSSBCTEHFvQorTUFMRU7EjEnEhiDEkE9SxJBFCitNQUxFTsSMScSGIEdBVlJJTE8KK01BTEVOxIxJxIYgTUFSSUpBCitNQUxFTsSMScSGIE5JS09MQQorTUFMRU7EjEnEhiBST0RPTEpVQgorTUFMRU7EjEnEhiBSVcW9SUNBCitNQUxFTknEhiBMQVpBUgorTUFMRU5JxIYgUlXFvUEKK01BTEVOScSGIFNJTUEKK01BTEVOScSGIFRPTUlTTEFWCitNQUxFTklDQSDEkFVSTworTUFMRU5JQ0EgQU5UVU4KK01BTEVOSUNBIERSQUdPCitNQUxFTklDQSBJVkFOCitNQUxFTklDQSBNQVJLTworTUFMRU5LT1ZJxIYgxJBPUsSQRQorTUFMRU5LT1ZJxIYgTUlMT8WgIERSCitNQUxFTktPVknEhiBWTEFESU1JUgorTUFMRU5PVknEhiBNSVJPU0xBVgorTUFMRVIgS1JJxaBUT0YKK01BTEVSVCBWRU5ERUwKK01BTEVUQcWgS0kgRVZJQ0EKK01BTEVUScSGLcWgUkVLIE1BUklKQQorTUFMRVRJxIYtxaBSRUsgTUFSSUpBCitNQUxFVEnEhiDFvUFSS08KK01BTEVUScSGIMW9SVZBTktBCitNQUxFVEnEhiDFvUlWS08KK01BTEVUScSGIMSQT1LEkEUgRElQTCBJTkcKK01BTEVUScSGIMSQT1LEkEUKK01BTEVUScSGIMSQT1LEkEUKK01BTEVUScSGIEJPU0lMSktBCitNQUxFVEnEhiBEUkFHT1NMQVYKK01BTEVUScSGIERSQUdPCitNQUxFVEnEhiBKRUxJQ0EKK01BTEVUScSGIEpPVkFOS0EKK01BTEVUScSGIEpPVkFOCitNQUxFVEnEhiBMQVVSQQorTUFMRVRJxIYgTEFaQVIKK01BTEVUScSGIExBWkFSCitNQUxFVEnEhiBMVUtBCitNQUxFVEnEhiBNQVJJQ0EKK01BTEVUScSGIE1JTEVOS08KK01BTEVUScSGIE1JTE9NSVIKK01BTEVUScSGIE1JT0RSQUcKK01BTEVUScSGIE1JT01JUgorTUFMRVRJxIYgTkFEQQorTUFMRVRJxIYgTkVERUxKS08KK01BTEVUScSGIE5JS09MQQorTUFMRVRJxIYgUEFKQQorTUFMRVRJxIYgUkFESVZPSgorTUFMRVRJxIYgUkFET1NMQVYKK01BTEVUScSGIFJBRE9TTEFWCitNQUxFVEnEhiBTQVZBCitNQUxFVEnEhiBTQVZPCitNQUxFVEnEhiBTTEFWSUNBCitNQUxFVEnEhiBTTE9CT0RBTktBCitNQUxFVEnEhiBTTE9CT0RBTgorTUFMRVRJxIYgU1JCT0xKVUIKK01BTEVUScSGIFNURVZBTgorTUFMRVRJxIYgU1RFVkFOCitNQUxFVEnEhiBTVEVWQU4KK01BTEVUScSGIFNWRVRPWkFSCitNQUxFVEnEhiBTVkVUT1pBUgorTUFMRVRJxIYgVEFNQVJBCitNQUxFVEnEhiBWRUtPU0xBVgorTUFMRVRJxIYgVkpFUkEKK01BTEVUScSGIFZKRVJBCitNQUxFVEnEhiBaTEFUS08KK01BTEVUSU4gxIxBUk5BIERJUEwgSU5HCitNQUxFVElOIMW9SVZLTworTUFMRVRJTiDEkE9SxJBFCitNQUxFVElOIMSQT1LEkEUKK01BTEVUSU4gxJBVUkEKK01BTEVUSU4gxJBVUklDQQorTUFMRVRJTiBBTEVLU0FOREFSCitNQUxFVElOIEJPxaBLTworTUFMRVRJTiBCT8W9QU5BCitNQUxFVElOIERBTklDQQorTUFMRVRJTiBEQVJJTktBCitNQUxFVElOIERSQUdJxaBBCitNQUxFVElOIERVxaBBTgorTUFMRVRJTiBEVcWgQU4KK01BTEVUSU4gR09SQU4KK01BTEVUSU4gSkFOQQorTUFMRVRJTiBKRUxFTkEKK01BTEVUSU4gSk9WQU4KK01BTEVUSU4gSk9WQU4KK01BTEVUSU4gSk9WQU4KK01BTEVUSU4gTEpVQk9NSVIKK01BTEVUSU4gTUFSSUpBCitNQUxFVElOIE1BUklKQQorTUFMRVRJTiBNSUxBTktBCitNQUxFVElOIE1JTEFOCitNQUxFVElOIE1JTEFOCitNQUxFVElOIE1JTE/FoAorTUFMRVRJTiBNSUxPVkFOCitNQUxFVElOIE1JUktPCitNQUxFVElOIFBBSkEKK01BTEVUSU4gUEFWTEUKK01BTEVUSU4gUkFEQQorTUFMRVRJTiBSQURJVk9KRQorTUFMRVRJTiBSVcW9SUNBCitNQUxFVElOIFNMQVZJQ0EKK01BTEVUSU4gU0xBVktPCitNQUxFVElOIFNQT01FTktBCitNQUxFVElOIFNURVZBTgorTUFMRVRJTiBTVEVWQU4KK01BTEVUSU4gU1ZFVE9aQVIKK01BTEVUSU4gU1ZFVE9aQVIKK01BTEVUSU4gVElNQQorTUFMRVRJTiBUT0RPUgorTUFMRVRJTiBUT0RPUgorTUFMRVRJTiBWQVNBCitNQUxFVElOIFZJVE9NSVIKK01BTEVUSU4gVk9KSVNMQVYKK01BTEVUSU4gWk9SQQorTUFMRVRJTiBaT1JBCitNQUxFVknEhiBWTEFESU1JUgorTUFMSSDFvUlWQU4KK01BTEkgxb1JVktPCitNQUxJIERBTUpBTgorTUFMSSBEUkFHQQorTUFMSSBFTEVPTk9SQQorTUFMSSBHT1JBTgorTUFMSSBKT1ZBTgorTUFMSSBLUklTVElGT1IKK01BTEkgTEpVQklDQQorTUFMSSBMSlVCT01JUgorTUFMSSBNSUxPxaAKK01BTEkgTUlPRFJBRworTUFMSSBTQVZBCitNQUxJIFNUQU5JTUlSCitNQUxJIFZPSklTTEFWCitNQUxJxIxFVknEhiDEkE9SxJBFCitNQUxJxIxFVknEhiBSQURJVk9KRQorTUFMScSMScSGIE1JTE/FoAorTUFMScSMScSGIFZPSklTTEFWCitNQUxJxIYgxb1BUktPCitNQUxJxIYgQklMSkFOQQorTUFMScSGIEJPxb1BTkEKK01BTEnEhiBDVklKRVRJTgorTUFMScSGIE1JTEFOCitNQUxJxIYgTUlMRU5LTworTUFMScSGIE1JVEFSCitNQUxJxIYgTUxBREVOCitNQUxJxIYgTk9WQUsKK01BTEnEhiBQUkVEUkFHCitNQUxJxIYgUkFESVZPSgorTUFMScSGIFJBVEtPCitNQUxJxIYgU0xBVktPCitNQUxJxIYgU09GSUpBCitNQUxJxIYgU1RPSkFOCitNQUxJxIYgU1RPSkEKK01BTEnEhiBVUk/FoAorTUFMScSGIFZVS0lDQQorTUFMSUTFvUEgxb1FTEpLTworTUFMSUTFvUFOIEJMQcW9TworTUFMSUtPVknEhiBEVcWgQU4KK01BTElOIMSQVVJBCitNQUxJTiBJTElKQQorTUFMSU4gTUlMSUNBCitNQUxJTiBPTEdBCitNQUxJTiBTVEFOSVNMQVYKK01BTElOIFRBVEpBTkEKK01BTElOQVIgSkVMRU5BCitNQUxJTknEhiBTUEFTT0pFCitNQUxJTk9WScSGIEFOxJBBCitNQUxJTk9WScSGIEFOS0lDQQorTUFMSU5PVknEhiBBTktJQ0EKK01BTElOT1ZJxIYgQk/FvU8KK01BTElOT1ZJxIYgQk9HREFOCitNQUxJTk9WScSGIEJPR0RBTgorTUFMSU5PVknEhiBEQU5JQ0EKK01BTElOT1ZJxIYgRFJBR0FOCitNQUxJTk9WScSGIERSQUdJTkpBCitNQUxJTk9WScSGIERSQUdPTEpVQgorTUFMSU5PVknEhiBKT1ZPCitNQUxJTk9WScSGIE1BUklOS08KK01BTElOT1ZJxIYgTkVERUxKS08KK01BTElOT1ZJxIYgTkVERUxKS08KK01BTElOT1ZJxIYgU0FWTworTUFMSU5PVknEhiBTSU5JxaBBCitNQUxJTk9WScSGIFNMQVZJQ0EKK01BTElOT1ZJxIYgU1RFVkFOCitNQUxJTk9WScSGIFZFTEpLTworTUFMSVZVSyBCT8W9QU5BCitNQUxJVlVLIERVxaBBTgorTUFMSVZVSyBNSUxBTgorTUFMSVZVSyBOSUtPTEEKK01BTElWVUsgUEFWTEUKK01BTElWVUsgU1ZFVElTTEFWCitNQUxKQSBNT1JJTkEKK01BTEpJSyBTVEVWQQorTUFMSktPVknEhiDEkFVSTworTUFMSktPVknEhiBCUkFOS08KK01BTEpLT1ZJxIYgQlJBTktPCitNQUxKS09WScSGLUTFvVVLTEVWU0tJIEFOQQorTUFMSktPVknEhiBNQVJLTworTUFMSktPVknEhiBNSUxBTgorTUFMSktPVknEhiBNSUxBTgorTUFMSktPVknEhiBORVZFTktBCitNQUxKS09WScSGIE5JS09MQQorTUFMSktPVknEhiBSQU5LQQorTUFMSktPVknEhiBWRVJBCitNQUxLScSGIEdPUkRBTgorTUFMS0nEhiBMSlVCScWgQQorTUFMS0nEhiBTVEFOQQorTUFMTUVSIEFORFJJSkEKK01BTE1FUiBBTkRSSUpBCitNQUxOQVIgRFJBR1VUSU4KK01BTE5BUiBKT1NJUAorTUFMT8SMScSGIE1JTEFOCitNQUxPxIxJxIYgTUlMT1JBRAorTUFMT0JBQknEhiBMSlVCQU4KK01BTE9CQUJJxIYgTUFSS08KK01BTE9CQUJJxIYgTUlST1NMQVYKK01BTE9CQUJJxIYgTk9WSUNBCitNQUxPQkFCScSGIFJBREUKK01BTE9HQUpTS0kgQk9SSVNMQVYKK01BTE9HQUpTS0kgU1RFVkFOCitNQUxPVEnEhiBTQVZPCitNQUxPVkHFoEnEhiBNQVJJSkEKK01BTE9WScSGIEJPR0RBTgorTUFMT1ZJxIYgUkFETUlMQQorTUFMT1ZJxIYgU1RBTknFoEEKK01BTE9WUkFaScSGIEdPSktPCitNQUxPVlJBWknEhiBHT0pLTworTUFMVUNLT1YgQk9HREFOCitNQUxVQ0tPViBEQU5JQ0EKK01BTFVDS09WIEpPVkFOCitNQUxVQ0tPViBNQVJJSkEKK01BTFVDS09WIE1JT0RSQUcgRElQTCBJTkcKK01BTFVDS09WIFJBRE9WQU4gRFIgTEVLQVIKK01BTFVDS09WIFNMT0JPREFOCitNQUxVQ0tPViBTVEVWQU4KK01BTFVDS09WIFpPUktBCitNQU1JxIYgSVZBTgorTUFNScSGIEpPWk8KK01BTVXFvUnEhiBJVkFOIERJUEwgSU5HCitNQU1Vxb1JxIYgSVZBTgorTUFNVcW9ScSGIElWQU4KK01BTVVMQSBEVcWgQU4KK01BTVVMQSBNTEFERU5LQQorTUFNVUxBIFBBVkxFCitNQU1VTEEgUlXFvUEKK01BTVVUT1ZJxIYgTUlMQU4KK01BTVVUT1ZJxIYgTUlMQU4KK01BTVVUT1ZJxIYgUkFESVZPSgorTUFNVVpJxIYgQk9HREFOS0EKK01BTsSMRVYgTklLT0xBCitNQU7EjEVWU0tJIEtBVEEKK01BTsSMRVZTS0kgU1RFVkFOCitNQU7EjEnEhiBBUkFOS0EKK01BTsSMScSGIERSQUdBTiBEUgorTUFOxIxJxIYgS0FUQQorTUFOxIxJxIYgTklLT0xBCitNQU7EjEnEhiBTQcWgQQorTUFOxIxJxIYgU0xPQk9EQU4KK01BTsSMScSGIFNWRVRPWkFSCitNQU7EjFUgxJBPUsSQRQorTUFOxIxVIERSQUdJTkpBCitNQU7EjFUgRFXFoEFOCitNQU7EjFUgTUlMQU4KK01BTsSMVSBNSUxBTgorTUFOxIxVIE1JTE/FoAorTUFOxIxVIE1JTE/FoAorTUFOxIxVIE5FTkFECitNQU7EjFUgU1RFVkFOCitNQU7EjFUgU1ZFVE9aQVIKK01BTsSMVSBWSUtUT1IKK01BTkFTSUpFVknEhiBHRVJBU0lNCitNQU5BU1RJUkFDIERBTUpBTgorTUFOQVNUSVJBQyBMSlVCScWgQQorTUFOQyBTVEVWQU4KK01BTkNFREVSIMSQVVJBCitNQU5Exb1VS0nEhiBNSU9EUkFHCitNQU5Exb1VS09WScSGIFZFTElNSVIKK01BTkRBUklOIE5BVEHFoEEKK01BTkRFSyBGSUxJUAorTUFOREVMQyBMSlVCSUNBCitNQU5EScSGIMSMQVZBCitNQU5EScSGIMW9SVZLTworTUFOREnEhiDEkE9SxJBFCitNQU5EScSGIMSQT1LEkEUKK01BTkRJxIYgxJBVUkEKK01BTkRJxIYgxJBVUklDQQorTUFOREnEhiBBTEVLU0FOREFSIERJUEwgSU5HCitNQU5EScSGIEFMRUtTQU5EQVIKK01BTkRJxIYgQk/FoEtPCitNQU5EScSGIEJPR0RBTgorTUFOREnEhiBCT1JJU0xBVkEKK01BTkRJxIYgQk9SSVNMQVYKK01BTkRJxIYgQlJBTklTTEFWCitNQU5EScSGIENWSUpFVEEKK01BTkRJxIYgREFOSUNBCitNQU5EScSGIERBUkEKK01BTkRJxIYgREVMRklOQQorTUFOREnEhiBERU5FxaAKK01BTkRJxIYgRE9CUklMQQorTUFOREnEhiBEUkFHQU5BCitNQU5EScSGIERSQUdBTgorTUFOREnEhiBEUkFHT1NMQVYKK01BTkRJxIYgRFJBR08KK01BTkRJxIYgRFJBR08KK01BTkRJxIYgRFJBR1VUSU4KK01BTkRJxIYgRFXFoEFOS0EKK01BTkRJxIYgRFXFoEFOS0EKK01BTkRJxIYgRFXFoEFOS0EKK01BTkRJxIYgRFXFoEFOCitNQU5EScSGIEZSQU5KQQorTUFOREnEhiBJR05KQVQKK01BTkRJxIYgSVZBTktBCitNQU5EScSGIElWS0EKK01BTkRJxIYgSk9WQU5LQQorTUFOREnEhi1KT1ZBTk9WScSGIFZJTktBCitNQU5EScSGIEpPVk8KK01BTkRJxIYgSk9WTworTUFOREnEhiBLQVRJQ0EKK01BTkRJxIYgS09TVEEKK01BTkRJxIYgS1NFTklKQQorTUFOREnEhiBMSklMSkFOQQorTUFOREnEhiBMSlVCSUNBCitNQU5EScSGIExKVUJPTUlSCitNQU5EScSGIE1BTkUKK01BTkRJxIYgTUFORQorTUFOREnEhiBNQVJBCitNQU5EScSGIE1BUkdJVEEKK01BTkRJxIYgTUFSSUpBCitNQU5EScSGIE1BUklKQQorTUFOREnEhiBNQVJJSkEKK01BTkRJxIYgTUlLQQorTUFOREnEhiBNSUxBRElKQQorTUFOREnEhiBNSUxBTiBESVBMIElORworTUFOREnEhiBNSUxBTgorTUFOREnEhiBNSUxFTkEKK01BTkRJxIYgTUlMRQorTUFOREnEhiBNSUxFCitNQU5EScSGIE1JTEUKK01BTkRJxIYgTUlMRQorTUFOREnEhiBNSUxPSkUKK01BTkRJxIYgTUlMT0pLTyBEUiBMRUtBUgorTUFOREnEhiBNSUxPUkFECitNQU5EScSGIE1JTE9SQUQKK01BTkRJxIYgTUlPRFJBRworTUFOREnEhiBNSVJPU0xBVgorTUFOREnEhiBOQURBCitNQU5EScSGIE5BREEKK01BTkRJxIYgTkXEkE8KK01BTkRJxIYgTkXEkE8KK01BTkRJxIYgTkVERUxKS08gRElQTCBQUkFWTklLCitNQU5EScSGIE5JS09MQQorTUFOREnEhiBOSUtPTEEKK01BTkRJxIYgTk9WS0EKK01BTkRJxIYgUEFORQorTUFOREnEhiBQRVJBCitNQU5EScSGIFBFVEFSCitNQU5EScSGIFJBREVOS08KK01BTkRJxIYgUkFESVZPSkUKK01BTkRJxIYgUkFETUlMQQorTUFOREnEhiBSQURNSUxBCitNQU5EScSGIFJBRE9KS0EKK01BTkRJxIYgUkFET01JUgorTUFOREnEhiBSQURPVkFOCitNQU5EScSGIFJBRE9WQU4KK01BTkRJxIYgUkFKQQorTUFOREnEhiBTSU5JxaBBCitNQU5EScSGIFNMQVZLQQorTUFOREnEhiBTTEFWS08KK01BTkRJxIYgU0xPQk9EQU4KK01BTkRJxIYgU0xPQk9EQU4KK01BTkRJxIYgU05Fxb1BTkEKK01BTkRJxIYgU1JFVEVOCitNQU5EScSGIFNSRVRFTgorTUFOREnEhiBTUkVUTworTUFOREnEhiBTVEVWQU4KK01BTkRJxIYgU1ZFVEtPCitNQU5EScSGIFNWRVRMQU5BCitNQU5EScSGIFRFUkVaSUpBCitNQU5EScSGIFRJQk9SCitNQU5EScSGIFRPTUlTTEFWCitNQU5EScSGIFRPTUlTTEFWCitNQU5EScSGIFVST8WgIERJUEwgT0VDCitNQU5EScSGIFZBU0lMSUpFCitNQU5EScSGIFZFTElaQVIKK01BTkRJxIYgVkVSQQorTUFOREnEhiBWSU9MRVRBCitNQU5EScSGIFpMQVRJQ0EKK01BTkRJxIYgWk9SQU4KK01BTkRJxIYgWk9SQU4KK01BTkRJxIYgWk9SSUNBCitNQU5EScSGIFpPUktBCitNQU5EScSGIFpPUktBCitNQU5EScSGIFpPUktBCitNQU5EScSGIFpWT05JTUlSCitNQU5EUkFQQSDEkFVSTworTUFORFJJTk8gU0FOS0EKK01BTkVTS0kgQkxBR09KQQorTUFORVZTS0kgQlJBTklTTEFWCitNQU5FVlNLSSBEVcWgQU4KK01BTkVWU0tJIFJBRE9TTEFWCitNQU5FVlNLSSBUUkFKS08gRFIKK01BTkVWU0tJIFZFUkEKK01BTkcgQlJBTktPCitNQU5HRVIgSk9TSVAKK01BTkhBSk0gSk/FvUVGCitNQU5JxIYgQU5LSUNBCitNQU5JxIYgQkxBTktBCitNQU5JxIYgQk/FvUlEQVIKK01BTknEhiBCUkFOSVNMQVYKK01BTknEhiBCUkFOS08KK01BTknEhiBCUkFOS08KK01BTknEhiBEQU5JTE8KK01BTknEhiBEUkFHScWgQQorTUFOScSGIE1JTE9KRQorTUFOScSGIE1JTE9KRQorTUFOScSGIE1JTE9SQUQKK01BTknEhiBTRVZFUiBESVBMIFBICitNQU5JxIYgU1ZFVE9NSVIKK01BTklOIMSQT1LEkEUKK01BTkpBIFNSRURPSkUKK01BTkpBIFpEUkFWS08KK01BTkpBSyBEUkFHTworTUFOSkVOxIxJxIYgU0xPQk9EQU4KK01BTkpVTE9WIExVS0EKK01BTk9KTE9WIElSRU5BCitNQU5PSkxPViBJVkFOCitNQU5PSkxPViBKT1ZBTktBCitNQU5PSkxPVknEhiDEjEVET01JUgorTUFOT0pMT1ZJxIYgxIxFRE8KK01BTk9KTE9WScSGIMW9QVJLTworTUFOT0pMT1ZJxIYgxb1JVktPCitNQU5PSkxPVknEhiDEkE9SxJBFCitNQU5PSkxPVknEhiBBTEVLU0FOREFSCitNQU5PSkxPVknEhiBBTEVLU0FOREFSCitNQU5PSkxPVknEhiBBTEVLU0EKK01BTk9KTE9WScSGIEFOR0VMSU5BCitNQU5PSkxPVknEhiBCSUxKQU5BCitNQU5PSkxPVknEhiBCT1NJTEpLQQorTUFOT0pMT1ZJxIYgQlJBTklTTEFWCitNQU5PSkxPVknEhiBEQVJJTktBCitNQU5PSkxPVknEhiBERVNBTktBCitNQU5PSkxPVknEhiBET0JSSUxBCitNQU5PSkxPVknEhiBEUkFHQU5BCitNQU5PSkxPVknEhiBEUkFHSUNBCitNQU5PSkxPVknEhiBEVcWgQU4KK01BTk9KTE9WScSGIERVxaBBTgorTUFOT0pMT1ZJxIYgR1JVSklDQQorTUFOT0pMT1ZJxIYgSUxJSkEKK01BTk9KTE9WScSGIEpFTEVOQQorTUFOT0pMT1ZJxIYgSk9WQU4KK01BTk9KTE9WScSGIEtBVEFSSU5BCitNQU5PSkxPVknEhiBLT1ZJTEpLTworTUFOT0pMT1ZJxIYgTEFaQVIKK01BTk9KTE9WScSGIExBWkFSCitNQU5PSkxPVknEhiBMQVpBUgorTUFOT0pMT1ZJxIYgTEpVQklDQQorTUFOT0pMT1ZJxIYgTEpVQklDQQorTUFOT0pMT1ZJxIYgTEpVQk9NSVIKK01BTk9KTE9WScSGIE1BSkEKK01BTk9KTE9WScSGIE1BTk9KTE8KK01BTk9KTE9WScSGIE1BTk9KTE8KK01BTk9KTE9WScSGIE1BUklKQQorTUFOT0pMT1ZJxIYgTUlMQU4KK01BTk9KTE9WScSGIE1JTEFOCitNQU5PSkxPVknEhiBNSUxBTgorTUFOT0pMT1ZJxIYgTUlMRU5LTworTUFOT0pMT1ZJxIYgTUlMT8WgCitNQU5PSkxPVknEhiBNSUxPxaAKK01BTk9KTE9WScSGIE1JTE/FoAorTUFOT0pMT1ZJxIYgTUlMT1JBRAorTUFOT0pMT1ZJxIYgTUlMT1JBRAorTUFOT0pMT1ZJxIYgTUlPRFJBRworTUFOT0pMT1ZJxIYgTUlPRFJBRworTUFOT0pMT1ZJxIYgTUlSSkFOQQorTUFOT0pMT1ZJxIYgTUlSS08gRElQTCBJTkcKK01BTk9KTE9WScSGIE1JUktPCitNQU5PSkxPVknEhiBNSVJPU0xBVgorTUFOT0pMT1ZJxIYgTU9NxIxJTE8KK01BTk9KTE9WScSGIE1PTcSMSUxPCitNQU5PSkxPVknEhiBNT03EjElMTworTUFOT0pMT1ZJxIYgTkVOQUQKK01BTk9KTE9WScSGIE5JS09MQQorTUFOT0pMT1ZJxIYgUEVUQVIKK01BTk9KTE9WScSGIFBFVEFSCitNQU5PSkxPVknEhiBSQURJVk9KCitNQU5PSkxPVknEhiBSQVRLTworTUFOT0pMT1ZJxIYgU0FWQQorTUFOT0pMT1ZJxIYgU0FWTworTUFOT0pMT1ZJxIYgU0xBVklDQQorTUFOT0pMT1ZJxIYgU0xPQk9EQU4KK01BTk9KTE9WScSGIFNUQU5JxaBBIERSIFBST0YKK01BTk9KTE9WScSGIFNUQU5LTworTUFOT0pMT1ZJxIYgU1RFVkFOCitNQU5PSkxPVknEhiBTVEVWQU4KK01BTk9KTE9WScSGIFNWRVRPWkFSCitNQU5PSkxPVknEhiBUT8WgQQorTUFOT0pMT1ZJxIYgVkFOREEKK01BTk9KTE9WScSGIFZFTElTTEFWCitNQU5PSkxPVknEhiBWRVJBCitNQU5PSkxPVknEhiBaT1JBTgorTUFOT0pMT1ZJxIYgWk9SQU4KK01BTk9KTE9WScSGIFpPUkFOCitNQU5PSkxPVknEhiBaT1JJQ0EKK01BTk9KTE9WScSGIFpWT05LTworTUFOVUtPViBPTEdBCitNQU5VS09WIFRPRE9SCitNQU9EVcWgIEFOQQorTUFPRFXFoCBEQU5JQ0EKK01BT0RVxaAgSk9WTworTUFPRFXFoCBNSU9EUkFHCitNQU9EVcWgIE5JS09MQQorTUFPRFXFoCBQUkVEUkFHCitNQVIgRURWQVJECitNQVLEjEFLIE1JSEFKTE8KK01BUsSMRUsgTUlMQU4KK01BUsSMRVRBIMSQVVJBCitNQVLEjEVUQSBCUkFOS08KK01BUsSMRVRBIERSQUdJQ0EKK01BUsSMRVRBIERSQUdJQ0EKK01BUsSMRVRBIExBWkFSCitNQVLEjEVUQSBNSUxBTgorTUFSxIxFVEEgUkFKS08KK01BUsSMRVRBIFNMT0JPREFOCitNQVLEjEVUQSBTVEVWQQorTUFSxIxFVEEgVkVMSU1JUgorTUFSxIxFVEEgWk9SQQorTUFSxIxFVEnEhiBDVkVUQQorTUFSxIxFVEnEhiBEUkFHTworTUFSxIxFVEnEhiBNQVJLTworTUFSxIxFVEnEhiBNSUxBTgorTUFSxIxFVEnEhiBNSUxBTgorTUFSxIxFVEnEhiBNSUxBTgorTUFSxIxFVEnEhiBOSUtPTEEKK01BUsSMRVRJxIYgT0JSRU5JSkEKK01BUsSMRVRJxIYgT0xCSU5BCitNQVLEjEVUScSGIFBFUklDQQorTUFSxIxFVEnEhiBQRVRBUgorTUFSxIxFVEnEhiBQRVRBUgorTUFSxIxFVElOIFJBREUKK01BUsSMScSGIMW9SVZBTgorTUFSxIxJxIYgxJBPUsSQRQorTUFSxIxJxIYgQUxFS1NBTkRBUgorTUFSxIxJxIYgQk/FvUFOQQorTUFSxIxJxIYgSkVMRU5BCitNQVLEjEnEhiBNQVJJSkEKK01BUsSMScSGIE1JTEVOS08KK01BUsSMScSGIFNURVZBTgorTUFSxIxJxIYgU1RFVkFOCitNQVLEjEnEhiBTVEVWQU4KK01BUsSMScSGRVYgTUFSSUpBCitNQVLEjEnEhkVWIE1FUklNQQorTUFSxIxJTktPIE1JTEFOCitNQVLEjE9LIEFOSUNBCitNQVLEjE9LIEnFoFRWQU4KK01BUsSMT0sgSVNJRE9SQQorTUFSxIxPSyBMSURJSkEKK01BUsSMT0sgTUlIQUpMTworTUFSxIxPSyBNSUhBSkxPCitNQVLEjE9LIFZFUkEKK01BUsSMT0sgWlVaQU5BCitNQVLEjFVLIFNBxaBBCitNQVLEjFVLIFNURVZBTgorTUFSxb1JxIYgQU5JQ0EKK01BUsSQRUxPxaBLSSBTVEFOVcWgQQorTUFSQcWgIEpPVkFOCitNQVJBxaAgTUlST0pFCitNQVJBxaAgU0xPQk9EQU4KK01BUkHFoCBWT0pJTgorTUFSQUNJIE1JSEFMSgorTUFSQUtPVknEhiBORVZFTkEKK01BUkFNSUNBIEpFTEVOQQorTUFSQU1JQ0EgTUlST1NMQVYKK01BUkFOIERSQUdJxaBBCitNQVJBTiBNSUxPUkFECitNQVJBUyBGSUxJUAorTUFSQVMgSk9TSVAKK01BUkFVQyBaVk9OSU1JUgorTUFSQVZJxIYgxJBVUk8KK01BUkFWScSGIMSQVVJPCitNQVJBVknEhiDEkFVSTworTUFSQVZJxIYgQlJBTklTTEFWCitNQVJBVknEhiBETUlUQVIKK01BUkFWScSGIERSQUdJQ0EKK01BUkFWScSGIExBWk8KK01BUkFWScSGIE1BUktPCitNQVJBVknEhiBNSUhBSkxPCitNQVJBVknEhiBNSUxBTgorTUFSQVZJxIYgTUlMRU5BCitNQVJBVknEhiBNSUxPxaAKK01BUkFWScSGIE5JS09MQQorTUFSQVZJxIYgU0FWQQorTUFSQVZJxIYgU0xBVklDQQorTUFSQVZJxIYgVkxBREEKK01BUkNFS0nEhiBET0JSSU5LQQorTUFSQ0lLScSGIMW9SVZBTkEKK01BUkNJS0nEhiBCT0dEQU4KK01BUkNJS0nEhiBEUkFHSUNBCitNQVJDSUtJxIYgRU1JTAorTUFSQ0lLScSGIEdJR0EgRFIKK01BUkNJS0nEhiBLT05TVEFOVElOCitNQVJDSUtJxIYgTEpJTEpBTkEKK01BUkNJS0nEhiBMSlVCSU5LQQorTUFSQ0lLScSGIE1BUklDQQorTUFSQ0lLScSGIE1JTEVOQQorTUFSQ0lLScSGIFNPRklKQQorTUFSQ0lLScSGIFNURVZBTgorTUFSQ0lLScSGIFNURVZBTgorTUFSQ0lLScSGIFZFUkEKK01BUkRFxaBJxIYgxaBJTUUKK01BUkXFoCBCT8W9TworTUFSRcWgIFRSSUZVTgorTUFSRcWgxIxVSyBQRVRBUgorTUFSRUxKIMW9SVZBTgorTUFSRUxKIE1JUk9TTEFWCitNQVJFTEogU0VMRU5BCitNQVJFTEogVkVMSVNMQVYKK01BUkVMSiBaTEFUQQorTUFSRUxKRVYgSkVMRU5BCitNQVJFVEnEhiBNQVJLTyBESVBMIE9FQworTUFSRVRJxIYgU1RFVk8KK01BUkVUScSGIFZMQURBCitNQVJFVEnEhiBWTEFEQQorTUFSRVRJxIYgVkxBREEKK01BUkVWScSGIEFOVEUKK01BUkZJIFNNSUxKS0EKK01BUkdBTk9WScSGIERSQUdJQ0EKK01BUkdBTk9WScSGIERVxaBBTiBEUgorTUFSR0FOT1ZJxIYgR0VPUkdJTkEKK01BUkdBTlogVklLVE9SCitNQVJHRVRBIEFOSUNBCitNQVJHRVRBIE1BUklKQQorTUFSR0VUScSGIMW9ScW9QQorTUFSR0VUScSGIEVMVklSQQorTUFSR0lUIEpVTElKQU5BCitNQVJHSVQgVkVSQQorTUFSR1XFoEnEhiBBTkRSSUpBCitNQVJIT8WgRVZJxIYgTVVKTworTUFSScSMRVZJxIYgS0FUSUNBCitNQVJJxIxFVknEhiBSSVNUQQorTUFSScSMScSGIEFORFJJSkEKK01BUknEjEnEhiBCUkFOS08KK01BUknEjEnEhiBCUkFUT0xKVUIKK01BUknEjEnEhiBHT0pLTworTUFSScSMScSGIElMSUpBCitNQVJJxIxJxIYgSVZJQ0EKK01BUknEjEnEhiBNQVJBCitNQVJJxIxJxIYgTUlMQU4KK01BUknEjEnEhiBNSUxPUkFECitNQVJJxIxJxIYgTUlSQQorTUFSScSMScSGIE5FREVMSktPCitNQVJJxIxJxIYgTklLT0xBCitNQVJJxIxJxIYgTklLT0xBCitNQVJJxIxJxIYgUEFWTEUKK01BUknEjEnEhiBTVEVWQU4KK01BUknEjEnEhiBTVEVWQU4KK01BUknEjEnEhiBWT0pJU0xBVgorTUFSScSMSU4gTkVOQUQKK01BUknFoEFOIFZMQURJTUlSCitNQVJJxIYgxb1BUktPCitNQVJJxIYgxb1BUktPCitNQVJJxIYgxb1JS0EKK01BUknEhiDFvUlWQU5BCitNQVJJxIYgxb1JVktPCitNQVJJxIYgxJBPUsSQRQorTUFSScSGIMSQVVJPCitNQVJJxIYgQURBTSBEUgorTUFSScSGIEFMRUtTQU5EQVIKK01BUknEhiBBTsSQRUxLTworTUFSScSGIEFOxJBFTEtPCitNQVJJxIYgQU5LQQorTUFSScSGIEFOS0EKK01BUknEhiBBTktJQ0EKK01BUknEhiBCT8WgS08KK01BUknEhiBCT8WgS08KK01BUknEhiBCT8W9SUNBCitNQVJJxIYgQk/FvUlEQVIKK01BUknEhiBCT0dPTEpVQgorTUFSScSGIEJPSkFESU1JUgorTUFSScSGIEJPUklWT0oKK01BUknEhiBCT1NJTEpLQQorTUFSScSGIEJSQU5JU0xBViBESVBMIElORworTUFSScSGIEJSQU5LTworTUFSScSGIEJSQU5LTworTUFSScSGIEJSQU5PCitNQVJJxIYgQ1ZJSk8KK01BUknEhiBEQU5JQ0EKK01BUknEhiBEQVJJTktBCitNQVJJxIYgREFWSUQKK01BUknEhiBEUkFHQU5BCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0FOCitNQVJJxIYgRFJBR0lDQQorTUFSScSGIERSQUdPTEpVQgorTUFSScSGIERVxaBBTktBCitNQVJJxIYgRFXFoEFOCitNQVJJxIYgRFXFoEFOCitNQVJJxIYgRFXFoEFOCitNQVJJxIYgRFXFoEFOCitNQVJJxIYgRFXFoEFOCitNQVJJxIYgRFXFoElDQQorTUFSScSGIEVSxb1FQkVUCitNQVJJxIYgR09KS08KK01BUknEhiBHT0pLTworTUFSScSGIEdSVUpJQ0EgRFIKK01BUknEhiBJTEUKK01BUknEhiBJTElKQQorTUFSScSGIElMSUpBCitNQVJJxIYgSUxJTktBCitNQVJJxIYgSVZPCitNQVJJxIYgSkFEUkFOS0EKK01BUknEhiBKRUxJQ0EKK01BUknEhiBKT0NBCitNQVJJxIYgSk9MQU5LQQorTUFSScSGIEpPVkFOS0EKK01BUknEhiBKT1ZBTgorTUFSScSGIEpPVkFOCitNQVJJxIYgSk9WQU4KK01BUknEhiBKT1ZBTgorTUFSScSGIEpPVkFOCitNQVJJxIYgSk9WTworTUFSScSGIEpPVk8KK01BUknEhiBKVUxJSkFOQQorTUFSScSGIEtBRElWS0EKK01BUknEhiBLQVRJQ0EKK01BUknEhiBLQVRJQ0EKK01BUknEhiBLT1NUQQorTUFSScSGIExBWkFSCitNQVJJxIYgTEpFUE9TQVZBCitNQVJJxIYgTEpVQkEKK01BUknEhiBMSlVCSUNBCitNQVJJxIYgTEpVQk9NSVIKK01BUknEhiBMSlVCT01JUgorTUFSScSGIExKVUJPTUlSCitNQVJJxIYgTEpVUEtPCitNQVJJxIYgTFVLQQorTUFSScSGIE1BUkEKK01BUknEhiBNQVJJSkEKK01BUknEhiBNQVJJSkEKK01BUknEhiBNQVJJSkEKK01BUknEhiBNQVJLTworTUFSScSGIE1BUktPCitNQVJJxIYgTUnEhkEgRElQTCBJTkcKK01BUknEhiBNSUhBSkxPCitNQVJJxIYgTUlMQU4gRElQTCBJTkcKK01BUknEhiBNSUxBTiBEUgorTUFSScSGIE1JTEFOQQorTUFSScSGIE1JTEFOS0EKK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxFIERJUEwgT0VDCitNQVJJxIYgTUlMRU5BCitNQVJJxIYgTUlMRU5BCitNQVJJxIYgTUlMRU5LTworTUFSScSGIE1JTEVOS08KK01BUknEhiBNSUxFTktPCitNQVJJxIYgTUlMSVNBVgorTUFSScSGIE1JTE/FoAorTUFSScSGIE1JTE/FoAorTUFSScSGIE1JTE9SQUQKK01BUknEhiBNSUxPUkFECitNQVJJxIYgTUlMT1NBVgorTUFSScSGIE1JTFVOCitNQVJJxIYgTUlMVVRJTgorTUFSScSGIE1JUktPCitNQVJJxIYgTUlSS08KK01BUknEhiBNSVJLTworTUFSScSGIE1JUktPCitNQVJJxIYgTUlST0xKVUIKK01BUknEhiBNSVRBUgorTUFSScSGIE1JVEFSCitNQVJJxIYtTUlUUk9WScSGIE1BUklKQQorTUFSScSGIE1PTcSMSUxPCitNQVJJxIYgTkVCT0rFoEEKK01BUknEhiBORURFTEpLTworTUFSScSGIE5FVkVOS0EKK01BUknEhiBOSUtPTEEKK01BUknEhiBOSUtPTEEKK01BUknEhiBOT1ZBSworTUFSScSGIE5PVkFLCitNQVJJxIYgT1NUT0pBCitNQVJJxIYgUEFWTEUKK01BUknEhiBQRVRBUgorTUFSScSGIFBFVEFSCitNQVJJxIYgUFJWT1NMQVYKK01BUknEhiBSQURJVk9KCitNQVJJxIYgUkFETUlMQQorTUFSScSGIFJBRE1JTEEKK01BUknEhiBSQURNSUxBCitNQVJJxIYgUkFET01JUiBEUgorTUFSScSGIFJBRE9TQVYKK01BUknEhiBSQURPU0xBVkEKK01BUknEhiBSQURPVkFOS0EKK01BUknEhiBSQURPVkFOCitNQVJJxIYgUkFET1ZBTgorTUFSScSGIFJBSktPCitNQVJJxIYgU0FWQQorTUFSScSGIFNJTknFoEEKK01BUknEhiBTTEFWSUNBCitNQVJJxIYgU0xBVktPCitNQVJJxIYgU0xBVktPCitNQVJJxIYgU0xPQk9EQU4KK01BUknEhiBTTE9CT0RBTgorTUFSScSGIFNSRVRFTiBEUiBQUk9GCitNQVJJxIYgU1RBTklTTEFWCitNQVJJxIYgU1RBTklTTEFWCitNQVJJxIYgU1RFVkFOCitNQVJJxIYgU1RFVkFOCitNQVJJxIYgU1RFVkFOCitNQVJJxIYgU1RFVkFOCitNQVJJxIYgU1RFVkFOCitNQVJJxIYgU1RFVktBCitNQVJJxIYgU1RFVk8KK01BUknEhiBTVE9KQU5LQQorTUFSScSGIFNWRVRJU0xBViBQUk9GRVNPUgorTUFSScSGIFNWRVRJU0xBVgorTUFSScSGIFRBTUFSQSBESVBMIElORworTUFSScSGIFVST8WgCitNQVJJxIYgVkFTS0EKK01BUknEhiBWQVNPCitNQVJJxIYgVkVSQQorTUFSScSGIFZJRAorTUFSScSGIFZMQURJU0xBVgorTUFSScSGIFZPSklTTEFWIERSIFBST0YKK01BUknEhiBWVUtBRElOCitNQVJJxIYgWk9SQU5LQQorTUFSScSGIFpPUkFOCitNQVJJxIYgWk9SQU4KK01BUknEhkVWScSGIFpPUkFOCitNQVJJQcWgIEpPxb1FRgorTUFSSUHFoCBNQVJJSkEKK01BUklKQcWgIEpPVkFOCitNQVJJSkHFoCBNQVJJSkEKK01BUklKQcWgIE1BUklKQQorTUFSSUpBxaAgTUFSSUpBCitNQVJJSkHFoCBNSUhBTEoKK01BUklKQcWgIFNURVZBTgorTUFSSUpBxaAgWkRFTktBCitNQVJJSkFOIMW9RUxKS08KK01BUklKQU4gQlJBTklTTEFWQQorTUFSSUpBTkFDIFNUT0pBCitNQVJJSkFOT1ZJxIYgUkFET0pLQQorTUFSSUpBTk9WScSGIFNWRVRPWkFSCitNQVJJSkFOU0tJIMSQT1LEkEUKK01BUklKQU5TS0kgxJBPUsSQRQorTUFSSUpBTlNLSSBBTEVLU0FOREFSCitNQVJJSkFOU0tJIE1JTE/FoAorTUFSSUpBTlNLSSBTVEVWQU4KK01BUklKQU5TS0kgVkVTTkEKK01BUklOIE1JTEFOCitNQVJJTiBNSUxJVk9KCitNQVJJTiBNTEFERU4KK01BUklOIE5BVEFMSUpBCitNQVJJTiBOSUtPTEEKK01BUklOIFJBRE9NSVIKK01BUklOIFZBU08KK01BUklOIFZFUklDQQorTUFSSU4gWk9SQU4KK01BUklOxIxFViBCUkFOSVNMQVYKK01BUklOxIxFViBTVEVWQU4KK01BUklOxIxJxIYgRFJBR0lDQQorTUFSSU7EjEnEhiBNQVJLTworTUFSSU7EjEnEhiBNSUxBTgorTUFSSU7EjEnEhiBNSUxBTgorTUFSSU7EjEnEhiBPTEdBCitNQVJJTsWgRUsgVkpFS09TTEFWCitNQVJJTkEgxaBURUZBTgorTUFSSU5BIExVxIZJSkFOCitNQVJJTkFDIFpPUkFOCitNQVJJTknEhiBCUkFOS08KK01BUklOScSGIElWTworTUFSSU5JxIYgU1RJUEFOCitNQVJJTktPViDEjEVEQQorTUFSSU5LT1Ygxb1BUktPCitNQVJJTktPViDEkE9SxJBFCitNQVJJTktPViDEkE9SxJBFCitNQVJJTktPViDEkFVSQSBESVBMIElORworTUFSSU5LT1YgQU5LSUNBCitNQVJJTktPViBBUlNFTgorTUFSSU5LT1YgQk/FvUEKK01BUklOS09WIERFSkFOCitNQVJJTktPViBEUkFHSU5KQQorTUFSSU5LT1YgRFXFoEFOCitNQVJJTktPViBGRU1LQQorTUFSSU5LT1YgR0FWUkEKK01BUklOS09WIEpPVkFOS0EKK01BUklOS09WIEpPVkFOCitNQVJJTktPViBKT1ZBTgorTUFSSU5LT1YgSlVMSUpBTkEKK01BUklOS09WIEpVTElKQU5BCitNQVJJTktPViBNRUxBTklKQQorTUFSSU5LT1YgTUlMRU5LTworTUFSSU5LT1YgTUlMSVZPSiBESVBMIElORworTUFSSU5LT1YgTUlMSkEKK01BUklOS09WIE1JTE9SQUQKK01BUklOS09WIE1JTE9TQVZBCitNQVJJTktPViBNSU9EUkFHCitNQVJJTktPViBNSVJKQU5BCitNQVJJTktPViBNT03EjElMTworTUFSSU5LT1YgTU9NxIxJTE8KK01BUklOS09WIE5JS09MQQorTUFSSU5LT1YgT01FUgorTUFSSU5LT1YgUEFKQQorTUFSSU5LT1YgUFJFRFJBRworTUFSSU5LT1YgUlXFvUlDQQorTUFSSU5LT1YgU0FWQQorTUFSSU5LT1YgU0lOScWgQQorTUFSSU5LT1YgU0xBVktPCitNQVJJTktPViBTTEFWS08KK01BUklOS09WIFNURVZBTgorTUFSSU5LT1YgU1RFVkFOCitNQVJJTktPViBTVFJBSElOSkEgRFIgUFJPRgorTUFSSU5LT1YgVkVTRUxJTgorTUFSSU5LT1YgVkVTTkEKK01BUklOS09WIFZMQURBCitNQVJJTktPViBWTEFKS08KK01BUklOS09WIFpPUkFOCitNQVJJTktPVknEhiDEjEVET01JUgorTUFSSU5LT1ZJxIYgxb1JVkEKK01BUklOS09WScSGIMW9SVZLQQorTUFSSU5LT1ZJxIYgxb1JVktPCitNQVJJTktPVknEhiDFvUlWS08KK01BUklOS09WScSGIMW9SVZLTworTUFSSU5LT1ZJxIYgxb1JVk9KSU4KK01BUklOS09WScSGIMW9SVZPUkFECitNQVJJTktPVknEhiBCT0dPTEpVQgorTUFSSU5LT1ZJxIYgQk9KQQorTUFSSU5LT1ZJxIYgQk9SSVNMQVYKK01BUklOS09WScSGIEJPUklWT0pFIERSCitNQVJJTktPVknEhiBCUkFOS08KK01BUklOS09WScSGIEJSQVRJTUlSCitNQVJJTktPVknEhiBEUkFHQU4KK01BUklOS09WScSGIERSQUdBTgorTUFSSU5LT1ZJxIYgRFJBR0FOCitNQVJJTktPVknEhiBEUkFHQU4KK01BUklOS09WScSGIERSQUdJQ0EKK01BUklOS09WScSGIERSQUdJQ0EKK01BUklOS09WScSGIEpFTElDQQorTUFSSU5LT1ZJxIYgSk9WQU4KK01BUklOS09WScSGIEtBVEFMSU4KK01BUklOS09WScSGIExFUE9TQVZBCitNQVJJTktPVknEhiBNScSGTworTUFSSU5LT1ZJxIYgTUlMQU4KK01BUklOS09WScSGIE1JTEVOQQorTUFSSU5LT1ZJxIYgTUlMRU5BCitNQVJJTktPVknEhiBNSUxFTkEKK01BUklOS09WScSGIE1JTEVOCitNQVJJTktPVknEhiBNSUxJQ0EKK01BUklOS09WScSGIE1JTElWT0pFCitNQVJJTktPVknEhiBNSUxPSktPCitNQVJJTktPVknEhiBNSUxPUkFECitNQVJJTktPVknEhiBNSUxPVkFOCitNQVJJTktPVknEhiBNSUxVVElOCitNQVJJTktPVknEhiBNSVJLTworTUFSSU5LT1ZJxIYgTUlST1NMQVYKK01BUklOS09WScSGIE1JVEFSCitNQVJJTktPVknEhiBNSVRBUgorTUFSSU5LT1ZJxIYgTkVOQUQKK01BUklOS09WScSGIE5JS09MQQorTUFSSU5LT1ZJxIYgTklLT0xBCitNQVJJTktPVknEhiBOSUtPTEEKK01BUklOS09WScSGIFJBREEKK01BUklOS09WScSGIFJBRElWT0oKK01BUklOS09WScSGIFJBRE9KSUNBCitNQVJJTktPVknEhiBSQURPSktBCitNQVJJTktPVknEhiBSQURPTUlSCitNQVJJTktPVknEhiBSQURPU0xBViBEUgorTUFSSU5LT1ZJxIYgUkFET1ZBTgorTUFSSU5LT1ZJxIYgUklTVEFOQQorTUFSSU5LT1ZJxIYgUlXFvUlDQQorTUFSSU5LT1ZJxIYgU0FWQQorTUFSSU5LT1ZJxIYgU0xBVktPCitNQVJJTktPVknEhiBTTE9CT0RBTgorTUFSSU5LT1ZJxIYgU0xPQk9EQU4KK01BUklOS09WScSGIFNMT0JPREFOCitNQVJJTktPVknEhiBTT0ZJSkEKK01BUklOS09WScSGIFNUQU5LTworTUFSSU5LT1ZJxIYgU1RBTk9KS0EKK01BUklOS09WScSGIFNURVZBTgorTUFSSU5LT1ZJxIYgU1RPSkFOS0EKK01BUklOS09WScSGIFNUT0pBTgorTUFSSU5LT1ZJxIYgU1ZFVElTTEFWCitNQVJJTktPVknEhiBWTEFESUNBCitNQVJJTktPVknEhiBWTEFETworTUFSSU5LT1ZJxIYgVk9KSU4KK01BUklOS09WScSGIFZPSklTTEFWS0EKK01BUklOS09WScSGIFZVS0HFoElOCitNQVJJTktPVknEhiBaT1JBTgorTUFSSU5PViBNQVJJTktPCitNQVJJTk9WScSGIMSQT1LEkEUKK01BUklOT1ZJxIYgQUxFS1NBTkRBUgorTUFSSU5PVknEhiBBTEVLU0FOREFSCitNQVJJTk9WScSGIERPQlJJVk9KRQorTUFSSU5PVknEhiBEVcWgQU4KK01BUklOT1ZJxIYgS0FUSUNBCitNQVJJTk9WScSGIE1BUklKQQorTUFSSU5PVknEhiBNSUxBTgorTUFSSU5PVknEhiBQRUpPCitNQVJJTk9WScSGLVNSREFOT1YgREFOSUNBCitNQVJJTk9WScSGIFRPTUlTTEFWCitNQVJJTk9WScSGIFZJTktBCitNQVJJTk9WScSGIFpMQVRJQ0EKK01BUklOT1ZJxIYgWk9SSUNBCitNQVJJTk9WScSGIFpPUklDQQorTUFSSU5PVlNLSSDEkE9SxJBFCitNQVJJTk9WU0tJIEtBVElDQQorTUFSSkHFoCBBTktBCitNQVJKQcWgIEpBTktPCitNQVJKQcWgIE1JxaBBCitNQVJKQcWgIE1JSEFKTE8KK01BUkpBxaAgTUlMS0EKK01BUkpBxaAgU1RBTktPCitNQVJKQcWgIFZMQURJTUlSCitNQVJKQU4gRFXFoEFOCitNQVJKQU4gTUlMSUpBTkEKK01BUkpBTiBNSVJLTworTUFSSkFOT1YgRFXFoEFOCitNQVJKQU5PViBFUsW9RUJFVAorTUFSSkFOT1YgSk9WQU5LQQorTUFSSkFOT1YgTEpVQk9NSVIKK01BUkpBTk9WIE1BUkEKK01BUkpBTk9WIE1JSEFKTE8gRFIKK01BUkpBTk9WIE1JTEVOS08KK01BUkpBTk9WIE9MR0EKK01BUkpBTk9WIFJBRE9WQU4KK01BUkpBTk9WIFNPTkpBCitNQVJKQU5PViBUSU1PVElKRQorTUFSSkFOT1YgVlVKSUNBCitNQVJKQU5PVknEhiDEjEVET01JUgorTUFSSkFOT1ZJxIYgxb1BUktPCitNQVJKQU5PVknEhiDFvUVMSktPCitNQVJKQU5PVknEhiDFvUlWT1RBCitNQVJKQU5PVknEhiDFvUlWT1RBCitNQVJKQU5PVknEhiDEkE9SxJBFCitNQVJKQU5PVknEhiDEkFVSTworTUFSSkFOT1ZJxIYgQUxFS1NBTkRBUgorTUFSSkFOT1ZJxIYgQklMSkFOQQorTUFSSkFOT1ZJxIYgQk/FvUlEQVIKK01BUkpBTk9WScSGIEJPxb1JREFSCitNQVJKQU5PVknEhiBCT0pBTkEKK01BUkpBTk9WScSGIEJPUklWT0pFCitNQVJKQU5PVknEhiBCT1NJTEpLQQorTUFSSkFOT1ZJxIYgQlJBTklNSVIKK01BUkpBTk9WScSGIERBTkEKK01BUkpBTk9WScSGIERBTklMS08KK01BUkpBTk9WScSGIERJTUlUUklKRQorTUFSSkFOT1ZJxIYgRFJBR0FOCitNQVJKQU5PVknEhiBEUkFHScWgQQorTUFSSkFOT1ZJxIYgRFJBR0nFoEEKK01BUkpBTk9WScSGIERSQUdPTUlSCitNQVJKQU5PVknEhiBEVcWgQU5LTworTUFSSkFOT1ZJxIYgRFXFoEFOCitNQVJKQU5PVknEhiBEVcWgQU4KK01BUkpBTk9WScSGIERVxaBLTworTUFSSkFOT1ZJxIYgR0FCUklKRUwKK01BUkpBTk9WScSGIEdPSktPCitNQVJKQU5PVknEhiBKT1ZBTktBCitNQVJKQU5PVknEhiBKT1ZBTgorTUFSSkFOT1ZJxIYgSk9WQQorTUFSSkFOT1ZJxIYgTEpVQklWT0pFCitNQVJKQU5PVknEhiBMSlVCT01JUgorTUFSSkFOT1ZJxIYgTFVLQQorTUFSSkFOT1ZJxIYgTUFSSUpBCitNQVJKQU5PVknEhiBNSUxBTgorTUFSSkFOT1ZJxIYgTUlMQU4KK01BUkpBTk9WScSGIE1JTEFOCitNQVJKQU5PVknEhiBNSUxBTgorTUFSSkFOT1ZJxIYgTUlMRU5LTyBEUiBJTkcKK01BUkpBTk9WScSGIE1JTElDQSBEUgorTUFSSkFOT1ZJxIYgTUlMT8WgCitNQVJKQU5PVknEhiBNSUxPTUlSCitNQVJKQU5PVknEhiBNSUxPUkFECitNQVJKQU5PVknEhiBNSUxPUkFECitNQVJKQU5PVknEhiBNSUxPUkFECitNQVJKQU5PVknEhiBNSUxPUkFECitNQVJKQU5PVknEhiBNSUxVVElOCitNQVJKQU5PVknEhiBNSVJPU0xBVgorTUFSSkFOT1ZJxIYgTUlST1NMQVYKK01BUkpBTk9WScSGIE1JVEFSCitNQVJKQU5PVknEhiBOQURBCitNQVJKQU5PVknEhiBOQVRBTElKQQorTUFSSkFOT1ZJxIYgTkVERUxKS08KK01BUkpBTk9WScSGIE5FREVMSktPCitNQVJKQU5PVknEhiBOSUtPTEEgTVIKK01BUkpBTk9WScSGIE5JS09MQQorTUFSSkFOT1ZJxIYgTklLT0xBCitNQVJKQU5PVknEhiBOSUtPTEEKK01BUkpBTk9WScSGIE5JS09MQQorTUFSSkFOT1ZJxIYgTklLT0xBCitNQVJKQU5PVknEhiBQUlZPU0xBVgorTUFSSkFOT1ZJxIYgUkFETUlMQQorTUFSSkFOT1ZJxIYgUlXFvUlDQQorTUFSSkFOT1ZJxIYgU0xBVk9MSlVCIERSCitNQVJKQU5PVknEhiBTVEVWS0EKK01BUkpBTk9WScSGIFNWRVRMQU5BCitNQVJKQU5PVknEhiBUQVRKQU5BCitNQVJKQU5PVknEhiBUUklWVU4KK01BUkpBTk9WScSGIFZFTElNSVIKK01BUkpBTk9WScSGIFZFUkEKK01BUkpBTk9WScSGIFZJRAorTUFSSkFOT1ZJxIYgVkxBRE8KK01BUkpBTk9WScSGIFZPSklOCitNQVJKQU5PVknEhiBaT1JBTgorTUFSSkFOT1ZJxIYgWk9SQQorTUFSSkFOU0tJIEZFRE9SCitNQVJLQU5PViBMSlVCSUNBCitNQVJLQU5PViBaT1JJQ0EKK01BUktHUkFGIEFOSUNBCitNQVJLR1JBRiBTT0ZJSkEKK01BUktJIE5FVkVOS0EKK01BUktJIE5JS09MQQorTUFSS0kgU0xBVktBCitNQVJLScWgIFNPRklKQQorTUFSS0nEhkVWScSGIERVxaBBTktBCitNQVJLScSGRVZJxIYgTUlMQU4KK01BUktPIEpBTiBQUk9GRVNPUgorTUFSS08gTkFEQSBEUgorTUFSS09TS0kgU1RPSkFOCitNQVJLT1Ygxb1BUktPCitNQVJLT1Ygxb1JVkEKK01BUktPViDEkFVSQQorTUFSS09WIEFOxJBFTEtBCitNQVJLT1YgQ1ZFVEFOQQorTUFSS09WIERPQlJJTEEKK01BUktPViBEUkFHQU4KK01BUktPViBEUkFHQU4KK01BUktPViBEVcWgQU4KK01BUktPViBFTUlMCitNQVJLT1YgRk9USUpFCitNQVJLT1YgSUxJSkEKK01BUktPViBJVklDQQorTUFSS09WLUpFTEVOScSGIE1JUkpBTkEKK01BUktPViBMSlVCT01JUgorTUFSS09WIExKVUJPTUlSCitNQVJLT1YgTEpVQk9NSVIKK01BUktPViBNQVJJSkEKK01BUktPViBNSUxBTgorTUFSS09WIE1JTEFOCitNQVJLT1YgTUlMRU5LTworTUFSS09WIE1JTElDQQorTUFSS09WIE1JTElDQQorTUFSS09WIE1JUkEKK01BUktPViBOQURBCitNQVJLT1YgTkFEQQorTUFSS09WIE5JS09MQQorTUFSS09WIFBFVEFSCitNQVJLT1YgUEVUQVIKK01BUktPViBSQURJU0xBVgorTUFSS09WIFJBRE9TQVYKK01BUktPViBSQURPVkFOCitNQVJLT1YgUkFET1ZBTgorTUFSS09WIFNBVkEKK01BUktPViBTSU5JxaBBCitNQVJLT1YgU1BBU09KRSBEUgorTUFSS09WIFNUT0pBTgorTUFSS09WIFRPTUlTTEFWCitNQVJLT1YgVkVSQQorTUFSS09WIFZJRE9TQVZBCitNQVJLT1YgWk9SQU4gTVIKK01BUktPViBaT1JBCitNQVJLT1YgWk9SS0EKK01BUktPVknEhiDEjEVET01JUgorTUFSS09WScSGIMW9QVJLTworTUFSS09WScSGIMW9QVJLTworTUFSS09WScSGIMW9QVJLTworTUFSS09WScSGIMW9RUxJQk9SCitNQVJLT1ZJxIYgxb1FTEpLQQorTUFSS09WScSGIMW9RUxKS08KK01BUktPVknEhiDFvUlWQU4KK01BUktPVknEhiDFvUlWS08KK01BUktPVknEhiDFvUlWT0pJTiBEUgorTUFSS09WScSGIMW9SVZPSklOCitNQVJLT1ZJxIYgxb1JVk9KSU4KK01BUktPVknEhiDFvUlWT1NMQVYKK01BUktPVknEhiDFvUlWT1RBCitNQVJLT1ZJxIYgxJBFTkEKK01BUktPVknEhiDEkE9SxJBFCitNQVJLT1ZJxIYgxJBPUsSQRQorTUFSS09WScSGIMSQT1LEkEUKK01BUktPVknEhiDEkE9SxJBFCitNQVJLT1ZJxIYgxJBPUsSQRQorTUFSS09WScSGIEFEQU0KK01BUktPVknEhiBBTEVLU0FOREFSCitNQVJLT1ZJxIYgQUxFS1NBTkRBUgorTUFSS09WScSGIEFMRUtTQU5EQVIKK01BUktPVknEhiBBTEVLU0FOREFSCitNQVJLT1ZJxIYgQUxFS1NBTkRBUgorTUFSS09WScSGIEFOVE9OSUpFCitNQVJLT1ZJxIYgQk/FoEtPCitNQVJLT1ZJxIYgQk9SSVNMQVYKK01BUktPVknEhiBCT1JJU0xBVgorTUFSS09WScSGIEJPUklTCitNQVJLT1ZJxIYgQk9SSVZPSgorTUFSS09WScSGIEJSQU5JU0xBVgorTUFSS09WScSGIEJSQU5JU0xBVgorTUFSS09WScSGIEJSQU5JU0xBVgorTUFSS09WScSGIEJSQU5LTworTUFSS09WScSGIEJSQU5LTworTUFSS09WScSGIEJVRElNSVIKK01BUktPVknEhiBCVURJTUlSCitNQVJLT1ZJxIYgQ1ZFVEtPCitNQVJLT1ZJxIYgQ1ZFVEtPCitNQVJLT1ZJxIYgREFOSUNBCitNQVJLT1ZJxIYgREFOSUNBCitNQVJLT1ZJxIYgREFOSUNBCitNQVJLT1ZJxIYgREVKQU4KK01BUktPVknEhiBERVNBTktBCitNQVJLT1ZJxIYgRElNSVRSSUpFCitNQVJLT1ZJxIYgRElNSVRSSUpFCitNQVJLT1ZJxIYgRE9CUk9TQVYKK01BUktPVknEhiBET0JST1NBVgorTUFSS09WScSGIERSQUdBTgorTUFSS09WScSGIERSQUdBTgorTUFSS09WScSGIERSQUdBTgorTUFSS09WScSGIERSQUdJxaBBCitNQVJLT1ZJxIYgRFJBR09KQQorTUFSS09WScSGIERSQUdPSkEKK01BUktPVknEhiBEUkFHT0xKVUIKK01BUktPVknEhiBEUkFHT0xKVUIKK01BUktPVknEhiBEUkFHT0xKVUIKK01BUktPVknEhiBEUkFHT01JUgorTUFSS09WScSGIERSQUdPU0xBVgorTUFSS09WScSGIERSQUdPU0xBVgorTUFSS09WScSGIERSQUdVVElOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFXFoEFOCitNQVJLT1ZJxIYgRFVCUkFWS08KK01BUktPVknEhiBFUsW9RUJFVAorTUFSS09WScSGIEVWSUNBCitNQVJLT1ZJxIYgR09SQU4KK01BUktPVknEhiBHT1JEQU5BCitNQVJLT1ZJxIYgSUdOSkFUCitNQVJLT1ZJxIYgSUxJSkEKK01BUktPVknEhiBJTElKQQorTUFSS09WScSGIElSRU5BCitNQVJLT1ZJxIYgSVZBTgorTUFSS09WScSGIElWS08KK01BUktPVknEhiBKQURSQU5LQQorTUFSS09WScSGIEpBRFJBTktBCitNQVJLT1ZJxIYgSkFST1NMQVYKK01BUktPVknEhiBKRUxFTkEKK01BUktPVknEhiBKRUxJQ0EKK01BUktPVknEhiBKRUxJQ0EKK01BUktPVknEhiBKRUxJU0FWS0EKK01BUktPVknEhiBKT1ZBTiBESVBMIElORworTUFSS09WScSGIEpPVkFOS0EKK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVk8KK01BUktPVknEhiBKT1ZPCitNQVJLT1ZJxIYgSlVMSUpBCitNQVJLT1ZJxIYgSlVMS0EKK01BUktPVknEhiBLQVJMTworTUFSS09WScSGIEtBUk9MSU5BCitNQVJLT1ZJxIYgS0FST0xJTkEKK01BUktPVknEhiBLQVRBCitNQVJLT1ZJxIYgS0FUSUNBCitNQVJLT1ZJxIYgS09TQU5BCitNQVJLT1ZJxIYgS09TVEEKK01BUktPVknEhiBLUkFTSU1JUgorTUFSS09WScSGIEtTRU5JSkEKK01BUktPVknEhiBMRVBPU0FWQSBMRUtBUgorTUFSS09WScSGIExKVUJJxaBBCitNQVJLT1ZJxIYgTEpVQklDQQorTUFSS09WScSGIExKVUJJQ0EKK01BUktPVknEhiBMSlVCSUNBCitNQVJLT1ZJxIYgTEpVQklOS08KK01BUktPVknEhiBMSlVCT01JUgorTUFSS09WScSGIExKVUJPTUlSCitNQVJLT1ZJxIYgTFVLQQorTUFSS09WScSGLU1BSlRFTkpJIEFORFJJSkEKK01BUktPVknEhi1NQUpURU5KSSBNSUhBTEoKK01BUktPVknEhiBNQVJBCitNQVJLT1ZJxIYgTUFSSUpBCitNQVJLT1ZJxIYgTUFSSUpBCitNQVJLT1ZJxIYgTUFSSU5BCitNQVJLT1ZJxIYgTUFSS08KK01BUktPVknEhiBNQVJLTworTUFSS09WScSGIE1JSEFJTE8KK01BUktPVknEhiBNSUhBSkxPCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBCitNQVJLT1ZJxIYgTUlMRVZBCitNQVJLT1ZJxIYgTUlMRVZBCitNQVJLT1ZJxIYgTUlMS08KK01BUktPVknEhiBNSUxLTworTUFSS09WScSGIE1JTE/FoAorTUFSS09WScSGIE1JTE/FoAorTUFSS09WScSGIE1JTE/FoAorTUFSS09WScSGIE1JTE/FoAorTUFSS09WScSGIE1JTE9MSlVCCitNQVJLT1ZJxIYgTUlMT01JUgorTUFSS09WScSGIE1JTE9SQUQKK01BUktPVknEhiBNSUxPUkFECitNQVJLT1ZJxIYgTUlMT1JBRAorTUFSS09WScSGIE1JTE9SQUQKK01BUktPVknEhiBNSUxPUkFECitNQVJLT1ZJxIYgTUlMTworTUFSS09WScSGIE1JTFVUSU4KK01BUktPVknEhiBNSUxVVElOCitNQVJLT1ZJxIYgTUlPRFJBRworTUFSS09WScSGIE1JT0RSQUcKK01BUktPVknEhiBNSU9EUkFHCitNQVJLT1ZJxIYgTUlSS08KK01BUktPVknEhiBNSVJLTworTUFSS09WScSGIE1JUk9TTEFWQQorTUFSS09WScSGIE1JUk9TTEFWQQorTUFSS09WScSGIE1JUk9TTEFWCitNQVJLT1ZJxIYgTUlST1NMQVYKK01BUktPVknEhiBNSVJPU0xBVgorTUFSS09WScSGIE1JUk9TTEFWCitNQVJLT1ZJxIYgTUxBREVOCitNQVJLT1ZJxIYgTUxBREVOCitNQVJLT1ZJxIYgTU9NxIxJTE8KK01BUktPVknEhiBNT03EjElMTworTUFSS09WScSGIE1PTUlSCitNQVJLT1ZJxIYgTkFEQQorTUFSS09WScSGIE5BREEKK01BUktPVknEhiBOQURBCitNQVJLT1ZJxIYgTkFEQQorTUFSS09WScSGIE5BREEKK01BUktPVknEhiBOQVRBxaBBCitNQVJLT1ZJxIYgTkFUQUxJSkEKK01BUktPVknEhiBORURFTEpLTworTUFSS09WScSGIE5FR09TTEFWCitNQVJLT1ZJxIYgTkVNQU5KQQorTUFSS09WScSGIE5FTkFECitNQVJLT1ZJxIYgTkVOQUQKK01BUktPVknEhiBOSUtPTEEKK01BUktPVknEhiBOSUtPTEEKK01BUktPVknEhiBOSUtPTEEKK01BUktPVknEhiBOSUtPTEEKK01BUktPVknEhiBPQlJBRAorTUFSS09WScSGIE9CUkFECitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIFBBVkxFCitNQVJLT1ZJxIYgUEVKxIxBCitNQVJLT1ZJxIYgUEVUQVIgRElQTCBJTkcKK01BUktPVknEhiBQRVRBUiBWRVRFUklOQVIKK01BUktPVknEhiBQRVRBUgorTUFSS09WScSGIFBFVEFSCitNQVJLT1ZJxIYgUEVUQVIKK01BUktPVknEhiBQRVRBUgorTUFSS09WScSGIFBFVEFSCitNQVJLT1ZJxIYgUEVUUk9OSUpFCitNQVJLT1ZJxIYgUFJFRFJBRworTUFSS09WScSGIFBSVk9TTEFWIERSCitNQVJLT1ZJxIYgUkHFoEEKK01BUktPVknEhiBSQURFTktPCitNQVJLT1ZJxIYgUkFERQorTUFSS09WScSGIFJBRElOS0EKK01BUktPVknEhiBSQURJVk9KCitNQVJLT1ZJxIYgUkFESVZPSgorTUFSS09WScSGIFJBRE1JTEEKK01BUktPVknEhiBSQURNSUxBCitNQVJLT1ZJxIYgUkFET0pLQQorTUFSS09WScSGIFJBRE9TQVYgRElQTCBJTkcKK01BUktPVknEhiBSQURPU0FWCitNQVJLT1ZJxIYgUkFET1NMQVYKK01BUktPVknEhiBSQURPVkFOS0EKK01BUktPVknEhiBSQURPVkFOCitNQVJLT1ZJxIYgUkFET1ZBTgorTUFSS09WScSGIFJBRE9WQU4KK01BUktPVknEhiBSQU5LTworTUFSS09WScSGIFJBVEtPCitNQVJLT1ZJxIYgUk9ET0xKVUIKK01BUktPVknEhiBST1pBTElKQQorTUFSS09WScSGIFJVxb1JQ0EKK01BUktPVknEhiBSVcW9SUNBCitNQVJLT1ZJxIYgU0HFoEEKK01BUktPVknEhiBTQVZBCitNQVJLT1ZJxIYgU0FWQQorTUFSS09WScSGIFNBVkEKK01BUktPVknEhiBTSU5JxaBBCitNQVJLT1ZJxIYgU0lOScWgQQorTUFSS09WScSGIFNMT0JPREFOCitNQVJLT1ZJxIYgU0xPQk9EQU4KK01BUktPVknEhiBTTE9CT0RBTgorTUFSS09WScSGIFNNSUxKQQorTUFSS09WScSGIFNSxJBBTgorTUFSS09WScSGIFNUQU5BCitNQVJLT1ZJxIYgU1RBTknFoEEKK01BUktPVknEhiBTVEFOSU1JUgorTUFSS09WScSGIFNUQU5JU0xBVgorTUFSS09WScSGIFNURUZBTklKQQorTUFSS09WScSGIFNURVZBTgorTUFSS09WScSGIFNURVZBTgorTUFSS09WScSGIFNURVZBTgorTUFSS09WScSGIFNURVZBTgorTUFSS09WScSGIFNUT0pBTgorTUFSS09WScSGIFNUT0pBTgorTUFSS09WScSGIFNUT0pBTgorTUFSS09WScSGIFNUT0pBCitNQVJLT1ZJxIYgU1ZFVElTTEFWCitNQVJLT1ZJxIYgU1ZFVExBTkEKK01BUktPVknEhiBTVkVUT1pBUgorTUFSS09WScSGIFNWRVRPWkFSCitNQVJLT1ZJxIYgVEFOQVNJSkUKK01BUktPVknEhiBUQVRKQU5BCitNQVJLT1ZJxIYgVE9ET1IKK01BUktPVknEhiBUT01JU0xBVgorTUFSS09WScSGIFVHTEpFxaBBCitNQVJLT1ZJxIYgVkFTQQorTUFSS09WScSGIFZBU0lMSUpFIERSCitNQVJLT1ZJxIYgVkVMSU1JUgorTUFSS09WScSGIFZFTEpLTworTUFSS09WScSGIFZFTEpLTworTUFSS09WScSGIFZFUkEKK01BUktPVknEhiBWRVJBCitNQVJLT1ZJxIYgVkVSQQorTUFSS09WScSGIFZFUkEKK01BUktPVknEhiBWRVJBCitNQVJLT1ZJxIYgVknEhkEKK01BUktPVknEhiBWSURPSkUKK01BUktPVknEhiBWSURPU0FWQQorTUFSS09WScSGIFZJRAorTUFSS09WScSGIFZJTktPCitNQVJLT1ZJxIYgVklUS08KK01BUktPVknEhiBWSVRPTUlSCitNQVJLT1ZJxIYgVkxBREFOCitNQVJLT1ZJxIYgVkxBRElNSVIKK01BUktPVknEhiBWTEFESU1JUgorTUFSS09WScSGIFZMQURJTUlSCitNQVJLT1ZJxIYgVkxBRE9KRQorTUFSS09WScSGIFZPSklOCitNQVJLT1ZJxIYgVk9KSU4KK01BUktPVknEhiBWT0pJU0xBVgorTUFSS09WScSGIFpBR09SS0EKK01BUktPVknEhiBaQUdPUktBCitNQVJLT1ZJxIYgWkxBVEEKK01BUktPVknEhiBaTEFUSUpBCitNQVJLT1ZJxIYgWk9SQU4KK01BUktPVknEhiBaT1JBTgorTUFSS09WScSGIFpPUkFOCitNQVJLT1ZJxIYgWk9SQU4KK01BUktPVknEhiBaT1JBTgorTUFSS09WScSGIFpPUkEKK01BUktPVknEhiBaT1JBCitNQVJLT1ZJxIYgWk9SSUNBCitNQVJLT1ZJxIZBTiBKT04KK01BUktPVklOT1ZJxIYgUEVUQVIKK01BUktPVklOT1ZJxIYgUEVUQVIKK01BUktPVkxKRVYgRFJBR0FOCitNQVJLT1ZTS0kgQ1ZFVEFOQQorTUFSS09WU0tJIEpPVkFOCitNQVJLU0VSIElWQU4KK01BUktTRVIgSk9WQU4KK01BUktVxaAgQU5LSUNBCitNQVJLVcWgIEJPUklTTEFWCitNQVJLVcWgIEVNSUwKK01BUktVxaAgRVRFTEtBCitNQVJLVcWgIEpPU0lQCitNQVJLVcWgIFBSRURSQUcKK01BUktVxaAgWk9SQU4KK01BUktVxaBFViBEUkFHSUNBCitNQVJLVcWgRVYgSkVMRU5BCitNQVJMT0cgTUlST1NMQVYKK01BUk/FoCBEVcWgQU4KK01BUk/FoCBNSUxPVkFOCitNQVJPxaAgU1RFVkFOCitNQVJPxaAgVkVMSktPCitNQVJPxaBBTiBUSUhPTUlSCitNQVJPxaBFViBLUklTVEEKK01BUk/FoEVWScSGIElWQU4KK01BUk/FoEVWScSGIE1BUktPCitNQVJPxaBFVknEhiBNQVRBCitNQVJPxaBFVknEhiBOQVRBTElKQQorTUFST8WgRVZJxIYgVkxBRElNSVIKK01BUk/EkEkgSVZBTgorTUFST8SQSSBKT0xBTgorTUFST8SQSSBKT0xBTgorTUFST0NJIE1BUkdJVEEKK01BUk9KRVZJxIYgQUxFS1NBTkRBUgorTUFST0pFVknEhiBJVkFOS0EKK01BUk9KRVZJxIYgSk9TSVAKK01BUk9KRVZJxIYgUkFETUlMTworTUFST0pFVknEhiBTTEFWT0xKVUIKK01BUk9MRCBKT1NJUAorTUFST0xJIElTQUsKK01BUk9OIERFTkXFoAorTUFST04gS0FSTE8KK01BUk9TTEFWQUMgTUlST1NMQVYKK01BUk9UIElWQU4KK01BUk9USSBNSUtMT8WgCitNQVJPVknEhiDEkFVSQQorTUFST1ZJxIYgQk9SSVMgRFIKK01BUk9WScSGIERBUklOS0EKK01BUk9WScSGIE1JTElDQQorTUFST1ZJxIYgTUlSS08KK01BUk9WScSGIFJBRE9NSVIKK01BUk9WScSGIFpERU5LQQorTUFST1ZTS0kgTklLT0xBCitNQVJTRU5JxIYgRFJBR0FOQQorTUFSU0VOScSGIExFS0EKK01BUlNFTknEhiBTTEFWT0pLQQorTUFSVEnEhiDFvUlWT0pJTgorTUFSVEnEhiDEkFVSQQorTUFSVEnEhiBCUkFOS0EKK01BUlRJxIYgRFJBR0FOCitNQVJUScSGIEtPU1RBCitNQVJUScSGIExBWkFSCitNQVJUScSGIExKVUJPTUlSCitNQVJUScSGIE1BUkEKK01BUlRJxIYgTUlMQU4KK01BUlRJxIYgTUlMRU5LTworTUFSVEnEhiBNSUxJQ0EKK01BUlRJxIYgT0xHQQorTUFSVEnEhiBQRVJPCitNQVJUScSGIFJBRE1JTEEKK01BUlRJxIYgUkFET01JUgorTUFSVEnEhiBTTEFWS08KK01BUlRJxIYgU1RFVkFOCitNQVJUScSGIFZMQURJTUlSCitNQVJUScSGIFZPSk5BCitNQVJUSUNLSSBNTEFERU4KK01BUlRJTiBBTE9KWklKRQorTUFSVElOIEFOVEFMCitNQVJUSU4gRU5EUkUKK01BUlRJTiBFUsW9RUJFVAorTUFSVElOIElNUkUKK01BUlRJTiBJVkFOCitNQVJUSU4gSk9TSUYKK01BUlRJTiBKT1ZBTgorTUFSVElOIExKVUJJTktBCitNQVJUSU4gTUFUSUxEQQorTUFSVElOIE1JUk9TTEFWQQorTUFSVElOIFpWT05JTUlSCitNQVJUSU7EjEVWScSGIE1JSEFKTE8KK01BUlRJTsSMScSGIERBVk9SCitNQVJUSU7EjEnEhiBEQVZPUgorTUFSVElOQcWgRVZJxIYgSEVSTUlOQQorTUFSVElOQcWgRVZJxIYgT1RPCitNQVJUSU5BSyBKT1ZBTgorTUFSVElORUMgQU5UT04KK01BUlRJTkVLIEFOVEFMCitNQVJUSU5FSyBGRVJFTkMKK01BUlRJTktPIEFORFJJSkEKK01BUlRJTk9WIMSQT1LEkEUKK01BUlRJTk9WIEFOS0EKK01BUlRJTk9WIExBWkFSCitNQVJUSU5PViBNSUtBCitNQVJUSU5PViBNSUxBTiBEUgorTUFSVElOT1YgTUlMSUNBCitNQVJUSU5PViBNSUxPxaAKK01BUlRJTk9WIE1JTE/FoAorTUFSVElOT1YgTUlMT8WgCitNQVJUSU5PViBTQU5EUkEKK01BUlRJTk9WIFNBVkEKK01BUlRJTk9WIFNMQVZLTworTUFSVElOT1YgU0xBVktPCitNQVJUSU5PVknEhiDEkE9SxJBFCitNQVJUSU5PVknEhiBBTsSQRUxLQQorTUFSVElOT1ZJxIYgQU5BCitNQVJUSU5PVknEhiBBTklUQQorTUFSVElOT1ZJxIYgQlJBTktBCitNQVJUSU5PVknEhiBERVNBTktBCitNQVJUSU5PVknEhiBEVcWgQU4KK01BUlRJTk9WScSGIEVMSVpBQkVUQQorTUFSVElOT1ZJxIYgRklMSVAKK01BUlRJTk9WScSGIEZJTktBCitNQVJUSU5PVknEhiBJVk8KK01BUlRJTk9WScSGIEpFTEVOQQorTUFSVElOT1ZJxIYgSk9WQU4gVkVURVJJTkFSCitNQVJUSU5PVknEhiBNQVJJSkFOQQorTUFSVElOT1ZJxIYgTUFSSUpBCitNQVJUSU5PVknEhiBNSUxFCitNQVJUSU5PVknEhiBNSUxJQ0EKK01BUlRJTk9WScSGIE1JTEtBCitNQVJUSU5PVknEhiBNSUxLQQorTUFSVElOT1ZJxIYgTkFEQQorTUFSVElOT1ZJxIYgTkVOQUQKK01BUlRJTk9WScSGIE9MR0EKK01BUlRJTk9WScSGIFBFUlNJREEKK01BUlRJTk9WScSGIFJJU1RBCitNQVJUSU5PVknEhiBTTEFWS08KK01BUlRJTk9WScSGIFNUQU5JxaBBCitNQVJUSU5PVknEhiBTVEFOS0EKK01BUlRJTk9WScSGIFNURVZBTgorTUFSVElOT1ZJxIYgU1ZFVE9aQVIKK01BUlRJTk9WScSGIFVST8WgCitNQVJUSU5PVknEhiBWRUxJTUlSCitNQVJUSU5PVknEhiBWRUxKS08KK01BUlRJTk9WScSGIFpBUklKRQorTUFSVElOT1ZTS0kgUk9NQU4KK01BUlRPTiDFoEFORE9SCitNQVJUT04gxb1Vxb1BTkEKK01BUlRPTiBBTkRSQcWgCitNQVJUT04gRkVSRU5DCitNQVJUT04gScWgVFZBTgorTUFSVE9OIElMRcWgCitNQVJUT04gSk/FvUVGCitNQVJUT04gSk/FvUVGCitNQVJUT04gSk9MQU4KK01BUlRPTiBMQUpPxaAKK01BUlRPTiBNQcSGQcWgCitNQVJUT04gTUFSSUpBCitNQVJUT04gUk9aQQorTUFSVcWgxIxVSyBNSVJPU0xBVgorTUFSVcWgRVZJxIYgSVZBTgorTUFSVcWgScSGIERBTklDQQorTUFSVcWgScSGIEZSQU5KQQorTUFSVcWgScSGIEdPUkFOCitNQVJVxaBJxIYgSlVMSUpBTkEKK01BUlXFoEnEhiBMSlVCTworTUFSVcWgScSGIE1JT1JJQ0EKK01BUlXFoEnEhiBORUJPSsWgQQorTUFSVcWgScSGIE9MR0EKK01BUlXFoEnEhiBTVE9KQU4KK01BUlXFoEnEhiBWTEFESU1JUgorTUFSVU5JxIYgQk9TSUxKS0EKK01BUlVOS0nEhiBNSUxJTkEKK01BUlVOT1ZJxIYgQkxBR09UQQorTUFTTEHEhiBBTlRFCitNQVNMQcSGIE1JTEVOS08KK01BU0xBxIYgUkFKS08KK01BU0xBxIYgVklOS08KK01BU0xPVkFSScSGIEJPxb1JREFSIERSCitNQVNORUMgQU5LQQorTUFTTklLT1NBIEZFTUtBCitNQVNOSUtPU0EgRkVNS0EKK01BU05PViBST1pBTElKQQorTUFTVElLT1NBIERSQUdJQ0EKK01BU1RJS09TQSBOSUtPCitNQVNUSUxPVknEhiBEVcWgQU4KK01BU1RJTE9WScSGIExKVUJJQ0EKK01BU1RJTE9WScSGIE1JUkEKK01BU1RJTE9WScSGIE1JUktPCitNQVNUSUxPVknEhiBNT03EjElMTworTUFTVElMT1ZJxIYgUExFTUEKK01BU1RJTE9WScSGIFJBTktPCitNQVRBSsSMScSGIEZSQU5KTworTUFUQUrEjEnEhiBJVkFOCitNQVRBSyBNQVJJSkEKK01BVEFLIE1BUkpBTgorTUFUQUsgVkVTTkEKK01BVEFLT1ZJxIYgS0FUSUNBCitNQVRBTk9WIEpBU01JTkEKK01BVEFOT1ZJxIYgREVaSURFUgorTUFUQU5PVknEhiBJUkVOQQorTUFUQU5PVknEhiBKQURSQU5LQQorTUFUQU5PVknEhiBKRUxJU0FWRVRBCitNQVRBTk9WScSGIE1JTE9SQUQKK01BVEFOT1ZJxIYgTUlMT1JBRAorTUFUQU5PVknEhiBNSU9EUkFHCitNQVRBTk9WScSGIFBFVEFSCitNQVRBTk9WScSGIFBFVEFSCitNQVRBTk9WScSGIFNMQVZJQ0EKK01BVEFOT1ZJxIYgVkxBREEKK01BVEFSVUdBIExKSUxKQU5BCitNQVRBUlVHQSBNSUxLQQorTUFUQVJVR0EgUEFWTEUKK01BVEFSVUdBIFpBR09SS0EKK01BVEFSVUdJTiBBTEVLU0FOREFSCitNQVRBU0nEhiBNQVJJSkEKK01BVEFWVUxKIE1JTElDQQorTUFURSBFVEVMS0EKK01BVEUgR0laRUxBCitNQVRFIFZFTkRFTCBEUgorTUFURcSMSUsgTUlLTE/FoAorTUFURUpBxaBFViBBTEVLU0FOREFSCitNQVRFSkHFoEVWIFNWRVRPWkFSCitNQVRFSkHFoEVWIFNWRVRPWkFSCitNQVRFSkVWScSGIEpFTEVOQQorTUFURUpFVknEhiBTVEFOS08KK01BVEVKRVZJxIYgVkVMSU1JUgorTUFURUpFVknEhiBWTEFESU1JUgorTUFURUpFVknEhiBaSUxEQQorTUFURUpJxIYgxJBVUkEKK01BVEVKScSGIEFMRUtTQU5EQVIKK01BVEVKScSGIE5BREXFvURBCitNQVRFSknEhiBSQVRLTworTUFURUpJxIYgUlXFvUlDQQorTUFURUpJxIYgU0xBVk9MSlVCIERSIExFS0FSCitNQVRFSklOIMSQT1LEkEUKK01BVEVKSU4gRFJBR0FOCitNQVRFSklOIERSQUdJxIYKK01BVEVKSU4gRFXFoEFOCitNQVRFSklOIE1JTElWT0oKK01BVEVKSU4gVkVTRUxJTgorTUFURUtBTE8gTUlMS0EKK01BVEVLT1ZJxIYgU01JTEpBCitNQVRFT1ZJxIYgUFVCQSBEUgorTUFURVZTS0kgTFVJxJBJCitNQVRJxIxFSyBMSlVERVZJVAorTUFUScWgQSBJUkVOQQorTUFUScWgScSGIExKVUJPTUlSCitNQVRJxIYgxb1BUktPCitNQVRJxIYgxb1JVktBCitNQVRJxIYgxb1JVktPCitNQVRJxIYgxb1JVktPCitNQVRJxIYgxb1JVk9KSU4KK01BVEnEhiDFvUlWT1JBRAorTUFUScSGIMSQT1LEkEUKK01BVEnEhiDEkE9SxJBFCitNQVRJxIYgxJBPUsSQRQorTUFUScSGIMSQVVLEkElDQQorTUFUScSGIMSQVVJBIERSCitNQVRJxIYgQUNLTworTUFUScSGIEFDS08KK01BVEnEhiBBTEVLU0FOREFSCitNQVRJxIYgQUxFS1NBTkRBUgorTUFUScSGIEFMRUtTQU5EQVIKK01BVEnEhiBBTktBCitNQVRJxIYgQU5LSUNBCitNQVRJxIYgQVJBTktBCitNQVRJxIYgQVJBTktBCitNQVRJxIYtQkFVUyDFvUlWS08KK01BVEnEhi1CRUtWQUxBQyBWRVNOQQorTUFUScSGIEJPxb1JREFSIERSCitNQVRJxIYgQk9KQU5BCitNQVRJxIYgQlJBTklTTEFWCitNQVRJxIYgREFNSkFOIERJUEwgSU5HCitNQVRJxIYgREVTQU5LQQorTUFUScSGIERPQlJJQ0EKK01BVEnEhiBET0JSSUxPCitNQVRJxIYgRFJBR0FOCitNQVRJxIYgRFJBR0FOCitNQVRJxIYgRFJBR0FOCitNQVRJxIYgRFJBR0nFoEEKK01BVEnEhiBEUkFHSUNBCitNQVRJxIYgRFJBR0lOSkEKK01BVEnEhiBEUkFHVVRJTgorTUFUScSGIERVxaBBTktBCitNQVRJxIYgRFXFoEFOS0EKK01BVEnEhiBEVcWgQU4KK01BVEnEhiBEVcWgQU4KK01BVEnEhiBEVcWgQU4KK01BVEnEhiBEVcWgQU4KK01BVEnEhiBFTElaQUJFVEEKK01BVEnEhiBFVkEKK01BVEnEhiBGSU5LQQorTUFUScSGIEdPUkRBTkEKK01BVEnEhiBJTElKQQorTUFUScSGIEpFTEVOQQorTUFUScSGIEpFTElTQVZFVEEKK01BVEnEhiBKRUxJU0FWRVRBCitNQVRJxIYgSkVMSVNBVktBCitNQVRJxIYgSk9WQU4KK01BVEnEhiBLQVRJQ0EKK01BVEnEhi1LRUtJxIYgU05Fxb1BTkEKK01BVEnEhiBLUklTVElOQQorTUFUScSGIExBWkFSCitNQVRJxIYgTEFaQVIKK01BVEnEhiBMSklMSkFOQQorTUFUScSGIExKSUxKQU5BCitNQVRJxIYgTEpJTEpBTkEKK01BVEnEhiBMSlVCSUNBCitNQVRJxIYgTEpVQklDQQorTUFUScSGIExKVUJPCitNQVRJxIYgTFVLQQorTUFUScSGIE1BR0RBTEVOQQorTUFUScSGIE1BUklDQQorTUFUScSGIE1BUklKQQorTUFUScSGIE1BUktPCitNQVRJxIYgTUFSS08KK01BVEnEhiBNSUxBTgorTUFUScSGIE1JTEFOCitNQVRJxIYgTUlMQU4KK01BVEnEhiBNSUxFTktPCitNQVRJxIYgTUlMRU5LTworTUFUScSGIE1JTElTQVYKK01BVEnEhiBNSUxPxaAKK01BVEnEhiBNSUxPxaAKK01BVEnEhiBNSUxPxaAKK01BVEnEhiBNSUxPxaAKK01BVEnEhiBNSUxPxaAKK01BVEnEhiBNSUxPUkFECitNQVRJxIYgTUlMT1JBRAorTUFUScSGIE1JTE9SQUQKK01BVEnEhiBNSUxPVkFOCitNQVRJxIYgTUlSSkFOQQorTUFUScSGIE1JUkpBTkEKK01BVEnEhiBNSVJLTworTUFUScSGIE5BREEKK01BVEnEhiBOQURFxb1EQQorTUFUScSGIE5BVEHFoEEKK01BVEnEhiBOQVRBTElKQQorTUFUScSGIE5FR09WQU4KK01BVEnEhiBOSUtPTEEKK01BVEnEhiBOT1ZJQ0EKK01BVEnEhiBQQVZBCitNQVRJxIYgUEFWTEUKK01BVEnEhiBQQVZMRQorTUFUScSGIFBFVEFSCitNQVRJxIYgUEVUQVIKK01BVEnEhiBQTEFOSU5LQQorTUFUScSGIFBSRURSQUcKK01BVEnEhiBQUkVEUkFHCitNQVRJxIYgUkFERQorTUFUScSGIFJBRE1JTEEKK01BVEnEhiBSQURPSkUKK01BVEnEhiBSQURPTUlSCitNQVRJxIYgUkFET01JUgorTUFUScSGIFJBRE9NSVIKK01BVEnEhiBSQURPU0xBVgorTUFUScSGIFJBRE9WQU4KK01BVEnEhiBSQURPVkFOCitNQVRJxIYgUkFKS08KK01BVEnEhiBTQVZBCitNQVRJxIYgU0lNQQorTUFUScSGIFNMQVZLTworTUFUScSGIFNMQVZLTworTUFUScSGIFNMQVZLTworTUFUScSGIFNMQVZLTworTUFUScSGIFNMT0JPREFOCitNQVRJxIYgU1RBTktPCitNQVRJxIYgU1RBTktPCitNQVRJxIYgU1RBWkEKK01BVEnEhiBTVElQTworTUFUScSGIFNUT0pBTgorTUFUScSGIFNWRVRMQU5BCitNQVRJxIYgU1ZFVE9aQVIKK01BVEnEhiBTVkVUT1pBUgorTUFUScSGIFRPTUEKK01BVEnEhiBUT01JU0xBVgorTUFUScSGIFZBTEVSSUpBCitNQVRJxIYgVkVTRUxJTgorTUFUScSGIFZJREEKK01BVEnEhiBWSVRPTUlSIERJUEwgSU5HCitNQVRJxIYgVkxBREEKK01BVEnEhiBWTEFESU1JUgorTUFUScSGIFZMQURJTUlSCitNQVRJxIYgVkxBRElTTEFWCitNQVRJxIYgVkxBU1RJTUlSIE1SCitNQVRJxIYgVlVKSUNBCitNQVRJxIYgVlVLSUNBCitNQVRJxIYgWkFHT1JLQQorTUFUScSGIFpEUkFWS0EKK01BVEnEhiBaT1JBCitNQVRJQ0tJIE1JTEFOQSBEUgorTUFUSUNLSSBNSUxPxaAKK01BVElKQcWgIElMSUpBCitNQVRJSkHFoEVWIEFMRUtTQU5EQVIKK01BVElKQcWgRVYgUkFESVZPSgorTUFUSUpBxaBFVknEhiBBTEVLU0FOREFSCitNQVRJSkHFoEVWScSGIEpFTEtBCitNQVRJSkHFoEVWScSGIEtBVElDQQorTUFUSUpBxaBFVknEhiBNQVJLTworTUFUSUpBxaBFVknEhiBNSUhBSUxPCitNQVRJSkHFoEVWScSGIFNUQU5JU0xBVktBCitNQVRJSkVWScSGIEFOVElDQQorTUFUSUpFVknEhiBBTlRVTgorTUFUSUpFVknEhiBCT0pBTgorTUFUSUpFVknEhiBCUkFOS08KK01BVElKRVZJxIYgRFJBR0lDQQorTUFUSUpFVknEhiBGUkFOxIxJxaBLQQorTUFUSUpFVknEhiBJTElKQQorTUFUSUpFVknEhiBKT1NJUAorTUFUSUpFVknEhiBLQVRBTElOCitNQVRJSkVWScSGIExBSk/FoAorTUFUSUpFVknEhiBNQVJJSkEKK01BVElKRVZJxIYgTUlMRQorTUFUSUpFVknEhiBNSUxPSktPCitNQVRJSkVWScSGIFBFUk8KK01BVElKRVZJxIYgUEVUQVIKK01BVElKRVZJxIYgUEVUQVIKK01BVElKRVZJxIYgUEVUQVIKK01BVElKRVZJxIYgUkFERQorTUFUSUpFVknEhiBTTEFWS08KK01BVElKRVZJxIYgVlVLT1NBVkEKK01BVElKRVZJxIYgWk9SQU4KK01BVElKRVZJxIYgWk9SQQorTUFUSUpFVknEhiBaT1JBCitNQVRJTiBET1JPVEVBCitNQVRJTiBKT1NJUAorTUFUSU4gTEFKT8WgCitNQVRJTiBNQVRJSkEKK01BVElTIMWgQU5ET1IgRElQTCBQUkFWTklLCitNQVRJUyDFoEFORE9SCitNQVRKQcSMScSGIFZJTktPCitNQVRLTyBFVkEKK01BVEtPVknEhiDFvUFSS08KK01BVEtPVknEhiDFvUFSS08KK01BVEtPVknEhiBCT8W9SURBUgorTUFUS09WScSGIERSQUdPTEpVQgorTUFUS09WScSGIERSQUdPTEpVQgorTUFUS09WScSGIEpPVkFOCitNQVRLT1ZJxIYgTEFESVNMQVYKK01BVEtPVknEhiBNSUxFTktPCitNQVRLT1ZJxIYgTUlST1NMQVZBCitNQVRLT1ZJxIYgTUlST1NMQVYKK01BVEtPVknEhiBNSVJPU0xBVgorTUFUS09WScSGIE1PTUlSCitNQVRLT1ZJxIYgUkFET1ZBTgorTUFUS09WScSGIFJPWkFMSUpBCitNQVRLT1ZJxIYgUlXFvUlDQQorTUFUS09WScSGIFNUQU1FTktPCitNQVRLT1ZJxIYgVkxBU1RJTUlSCitNQVRLT1ZJxIYgWkRFTktBIERSCitNQVRPxaBFVknEhiBJVkFOCitNQVRPxaBJxIYgU1RBTklTTEFWCitNQVRPxaBLT1ZJxIYgQUdBVEEKK01BVE/FoEtPVknEhiBURVJFWkEKK01BVE9WScSGIEFOxJBFTEtPCitNQVRPVknEhiBBTkEKK01BVE9WScSGIEJPxb1BTkEKK01BVE9WScSGIEJPUklWT0pFCitNQVRPVknEhiBCT1JPCitNQVRPVknEhiBCUkFOSVNMQVYKK01BVE9WScSGIERBTklDQQorTUFUT1ZJxIYgREFSTworTUFUT1ZJxIYgREVTQQorTUFUT1ZJxIYgRFJBR0FOQQorTUFUT1ZJxIYgRFJBR0nFoEEKK01BVE9WScSGIExKVUJJTktBCitNQVRPVknEhiBNSUxBTiBESVBMIElORworTUFUT1ZJxIYgTUlMQU4KK01BVE9WScSGIE1JTEVOS08KK01BVE9WScSGIE1JTEUKK01BVE9WScSGLU1JTEnEhiBCQVRSScSGCitNQVRPVknEhiBNSUxJxIYKK01BVE9WScSGIE1JTE9KS08KK01BVE9WScSGIE5BVEHFoEEKK01BVE9WScSGIFBBVkxFCitNQVRPVknEhiBQRVRBUgorTUFUT1ZJxIYgUkFESVZPSkUKK01BVE9WScSGIFJBRE9TQVYKK01BVE9WScSGIFJBRE9TTEFWCitNQVRPVknEhiBWSVRPTUlSCitNQVRPVklOQSBGUkFOSkEKK01BVE9WSU5BIEdPUkFOCitNQVRPVklOQSBNQVJLTworTUFUUkFLIERSQUdBTgorTUFUVcWgIEpBTgorTUFUVcWgS0EgTUFSVE9OCitNQVRVTEpJTiBJR05KQUMKK01BVFVTS0kgU09OSkEKK01BVFZJS09WIEVVR0VOSUpFCitNQVVLT1ZJxIYgVk9KSVNMQVYKK01BVUwgR09SREFOQQorTUFVUknEhiBGRVJFTkMKK01BVVJJxIYgR0VaQQorTUFVUknEhiBORU5BRAorTUFWScSGIFNSxJBBTgorTUFWUkFLIElNUkUKK01BVlJFTlNLSSBCT0dEQU4KK01BVlJFTlNLSSBCT1JLTworTUFWUkVOU0tJIElWSUNBCitNQVZST1ZJxIYgQlJBTklTTEFWCitNQVpBTElDQSBCUkFOSVNMQVYKK01BWkFMSUNBIERVxaBBTgorTUFaQUxJQ0EgR09KS08KK01BWkFMSUNBIExKVUJPCitNQVpBTElDQSBNQVJJSkEKK01BWkFMSUNBIFJBSktPCitNQVpBTElDQSBTTkXFvUFOQQorTUFaQUxJQ0EgVVJPxaAKK01BWkFMSUNBIFZBU08KK01BWkFMSUNBIFZFTEpLTworTUFaQU7EjElLIEFORFJJSkEKK01BWkFOxIZJSyBQQUpBCitNQVpBTkpJIEtBUkxPCitNQVpJxIYgxb1JVktPCitNQVpJxIYgQlJBTktPCitNQVpJxIYgRFJBR0FOCitNQVpJxIYgTEpVQk9NSVIKK01BWknEhiBNSUhBSkxPCitNQVpJxIYgTUlST1NMQVYKK01BWknEhiBQTEVUSUtPU0EKK01BWklOSkFOSU4gRFXFoEFOCitNQVpMQU1JIETFvUFCSVIKK01BWlVSIFZVS0lDQQorTUMtQ09OTkVMTCBNQVJUQQorTUXEjEtBUk9WU0tJIERSQUdBTgorTUXEjEtJxIYgRE9CUklMQQorTUXEjEtJxIYgU0xBVktPCitNRcWgQU5PVknEhiBIQVpJTQorTUXFoFRFUiBJUkVOQQorTUXFoFRFUk9WScSGIExKSUxKQU5BCitNRcWgVFJPVknEhiBCT8W9SURBUgorTUXEhkFWQSBCUkFOS08KK01FxIZBVkEgRFJBR0FOCitNRcSGQVZBIE1JTEFOCitNRcSQQU5JTiBEVcWgQU4KK01FxJBFxaBJIExKVUJPTUlSCitNRcSQRcWgSSBWTEFESU1JUgorTUXEkEVEIE1BUklDQQorTUXEkEVET1ZJxIYgxJBPUsSQSUpFCitNRcSQRURPVknEhiBCUkFOS08KK01FxJBFRE9WScSGIERBTklMTworTUXEkEVET1ZJxIYgRFJBR09MSlVCCitNRcSQRURPVknEhiBEUkFHTworTUXEkEVET1ZJxIYgRFVCUkFWS0EKK01FxJBFRE9WScSGIE1JUkpBTkEKK01FxJBFRE9WScSGIE5FTUFOSkEKK01FxJBFRE9WScSGIFJBRE9WQU4KK01FxJBFUkkgVkVST05JS0EKK01FxJBJTU9SRUMgRURVQVJECitNRcSQSU1PUkVDIExKVUJPTUlSCitNRcSQSU1PUkVDIFNUSkVQQU4KK01FxJBJTU9SRUMgVklLVE9SCitNRUFNRMW9SUpBIE1JUkEKK01FQU5Exb1JxIYgU0xBVktPCitNRUNBTk9WIFNUT0pBTktBCitNRURBS09WIMW9SVZLTworTUVEQUtPViBNQVJJSkEKK01FREFLT1YgTUlMQU4KK01FREFLT1YgTUlMQU4KK01FREFLT1YgTUlMSkFOQQorTUVEQUtPViBSQURJVk9KCitNRURBS09WIFZMQURJTUlSCitNRURBS09WScSGIEJPR0RBTgorTUVEQUtPVknEhiBEQU1JUgorTUVEQUtPVknEhiBEQVJJTktBCitNRURBS09WScSGIERVxaBBTgorTUVEQUtPVknEhiBEVcWgQU4KK01FREFLT1ZJxIYgSUxESUtPCitNRURBS09WScSGIElMSUpBCitNRURBS09WScSGIEpPVkFOCitNRURBS09WScSGIExKVUJJQ0EKK01FREFLT1ZJxIYgTEpVQklDQQorTUVEQUtPVknEhiBQRVRBUgorTUVEQUtPVknEhiBTVkVUTEFOQQorTUVEQUtPVknEhiBTVkVUTEFOQQorTUVEQUtPVknEhiBWTEFESVNMQVYKK01FREFOIERSQUdJTkpBCitNRURBTiBNQU5PSkxPCitNRURBTiBNSUxFTktPCitNRURBTiBNSUxFTktPCitNRURBTiBNSUxFTktPCitNRURBTiBNSUxPUkFECitNRURBTiBNSVJPU0xBVgorTUVEQU4gUkFERU5LTworTUVEQU4gU0xBVklDQQorTUVEQU4gU1BBU09KRQorTUVEQU4gVkVMSU1JUgorTUVEQU4gVkxBRElTTEFWCitNRURBTk9WU0tJIEJPUklTCitNRURBUiBWVcSMS08KK01FREFSRVZJxIYgRFJBR0FOCitNRURBUkVWScSGIERSQUdBTgorTUVEQVJFVknEhiBTVEFOQQorTUVERU5JQ0EgxJBVUsSQSUNBCitNRURFTklDQSDEkFVSTworTUVERU5JQ0EgQk9TSUxKS0EKK01FREVOSUNBIE1JTElTQVYKK01FREVOSUNBIFJBRE9NSVIKK01FREVOSUNBIFNORcW9QU5BCitNRURFTklDQSBTTkXFvUFOQQorTUVERU5JQ0EgVk9KSVNMQVYKK01FREVOSUNBIFZPSklTTEFWCitNRURFUiDEkE9SxJBFCitNRURFUiBKRUxFTkEKK01FREnEhiDEkFVSQQorTUVEScSGIMSQVVJBCitNRURJxIYgQk/FoEtPCitNRURJxIYgQk9HREFOCitNRURJxIYgQk9HREFOCitNRURJxIYgQk9SSVZPSgorTUVEScSGIEJSQU5LQQorTUVEScSGIERBTkUKK01FREnEhiBEQU5FCitNRURJxIYgREFOSUNBCitNRURJxIYgRFJBR0lDQQorTUVEScSGIERSQUdPTEpVQgorTUVEScSGIERSQUdPU0xBVkEKK01FREnEhiBEVcWgQU4KK01FREnEhiBEVcWgQU4KK01FREnEhiBHT0pLTworTUVEScSGIElMSUpBCitNRURJxIYgSUxJSkEKK01FREnEhiBJTElKQQorTUVEScSGIExBWkFSCitNRURJxIYgTUnEhk8KK01FREnEhiBNSUxBTgorTUVEScSGIE1JTEFOCitNRURJxIYgTUlMRQorTUVEScSGIE1JTElDQQorTUVEScSGIE1JTEtBCitNRURJxIYgTUlMT8WgCitNRURJxIYgTUlMT1JBRAorTUVEScSGIE1JTE9SQUQKK01FREnEhiBNSU9EUkFHCitNRURJxIYgTUlSQQorTUVEScSGIE1JUkpBTkEKK01FREnEhiBNSVJLTworTUVEScSGIE1JUk9TTEFWQQorTUVEScSGIE5JS09MQQorTUVEScSGIE5JS09MQQorTUVEScSGIE5JS09MQQorTUVEScSGIE5JS09MQQorTUVEScSGIFBFVEFSCitNRURJxIYgUkFERQorTUVEScSGIFJBRE9WQU4KK01FREnEhiBSQURPVkFOCitNRURJxIYgU0FWTworTUVEScSGIFNJTU8KK01FREnEhiBTTEFWS08KK01FREnEhiBTTE9CT0RBTktBCitNRURJxIYgU01JTEpBCitNRURJxIYgU1RFVkFOCitNRURJxIYgU1ZFVE9aQVIKK01FREnEhiBUQVRKQU5BCitNRURJxIYgWkRSQVZLTworTUVEScSGIFpEUkFWS08KK01FREnEhiBaT1JBTgorTUVEScSGIFpPUkEKK01FRE/FoCBVUk/FoAorTUVET0pFVknEhiBNSUxBTgorTUVET0pFVknEhiBNSUxFVEEKK01FRE9KRVZJxIYgTklLT0xBCitNRURPVkFSU0tJIEZSQU5KQQorTUVET1ZBUlNLSSBNScWgQQorTUVET1ZBUlNLSSBQSVJPxaBLQQorTUVET1ZBUlNLSSBQSVJPxaBLQQorTUVET1ZBUlNLSSBTVEVWQU4KK01FRE9WScSGIFBSRURSQUcgRFIKK01FRFVOSkFOSU4gRkVCUk9OQQorTUVEVU5KQU5JTiBJU0lET1IKK01FRFVSScSGIERBTklMTworTUVEVVJJxIYgRFJBR09NSVIKK01FRFVSScSGIEdPUkFOCitNRURVUknEhiBJUkVOQQorTUVEVVJJxIYgSkVMRU5BCitNRURVUknEhiBLT1NUQQorTUVEVVJJxIYgTUlMSVZPSgorTUVEVVJJxIYgUEVUQVIKK01FRFVSScSGIFNNSUxKQQorTUVEVVJJxIYgWkxBVEEKK01FRFZFRE9WScSGIERSQUdBCitNRUdMQUogQk9TSUxKS0EKK01FSEFLT1ZJxIYgREFOSUNBCitNRUhBTkTFvUlTS0kgVkVOS08KK01FSE1FVEkgSElTRU4KK01FSE1FVEkgUkFGRVQKK01FSE1FVE9KIEhBU0FOCitNRUpJxIYgTkVWRU5LQQorTUVLRU5KScWgQUMgVkVTRUxJTgorTUVLRU5KScWgQUMgWk9SQU4KK01FS0nEhiBTT0ZJSkEKK01FS0lOREEgTUFSSUpBTiBEUgorTUVLSU5EQSBNSVJKQU5BCitNRUtJTknEhiBBTlRFCitNRUtJTknEhiBNSVJKQU5BCitNRUtJTknEhiBUT05LQQorTUVMQVIgQU5EUkHFoAorTUVMQVIgSkVMRU5BCitNRUxBUiBMSlVERVZJVAorTUVMRUcgSkFOS08KK01FTEVHIEpPVkFOCitNRUxFRyBKT1ZBTgorTUVMRUcgTUnFoEEKK01FTEVHIFZMQURJTUlSCitNRUxFUlQgVkVOREVMCitNRUxJTksgRFXFoEFOS0EKK01FTElOSyBKT0hBTgorTUVMSkEgSlVMSUpBTkEKK01FTEpLVVRJIEZFUkVOQworTUVMSktVVEkgSk/FvUVGCitNRUxKS1VUSSBLQVJMTworTUVMSktVVEkgT1JCQU4KK01FTEpOSUsgSUxJSkEKK01FTEpOSUtPViBERVNBTktBCitNRUxLVVMgQk/FvUEKK01FTEtVUyBCT1JJVk9KCitNRUxLVVMgS0FUSUNBCitNRUxLVVMgTUlSSkFOQQorTUVMS1VTIFZPSklTTEFWCitNRUxPIEFMRUtTQU5EQVIKK01FTE9WScSGIERFSkFOCitNRUxPVknEhiBNSUxPVkFOCitNRUxWQU4gRVLFvUVCRVQKK01FTFZBTiBQRVRBUgorTUVMVkFOIFpPUkFOCitNRUxWSU5HRVIgQUxPSlpJSkEKK01FTUFST1ZJxIYgUkFET1ZBTgorTUVNRURPVknEhiBCT1JJU0xBVgorTUVNRURPVknEhiBCT1NJTEpLQQorTUVNRURPVlNLSSBVWkVJUgorTUVNScWgRVZJxIYgSUJSQUhJTQorTUVNScWgRVZJxIYgSVNNQUlMCitNRU1JxaBFVknEhiBNQVJKQU4KK01FTUnFoEVWScSGIE1FSE1FRAorTUVNScWgRVZJxIYgUkHFoElEQQorTUVNScWgSSBURUZJSworTUVNSUTFvUFOIFJFRMW9TworTUVOxJBBTiDFoEFORE9SCitNRU7EkEFOIE1BUklKQQorTUVOxJBBTiBQQVZFTAorTUVOxJBBTiBSQVNUSVNMQVYKK01FTkRFQkFCQSBCT1JJU0xBVgorTUVOREVCQUJBIFBBTlRBCitNRU5ERUwgRUxJWkFCRVRBCitNRU5EUkFHScSGIMSQT1LEkEUKK01FTkRSRUkgSEVMRU5BCitNRU5FxaBJIEJFTEEKK01FTkXFoEkgSVJFTkEKK01FTkXFoEkgTEFTTE8KK01FTkdMIElSRU4KK01FTkdMIExBSk/FoAorTUVOScSMQU5JTiBKRUxBCitNRU5JxIxBTklOIFNURVZBTgorTUVOScSGQU5JTiBQRVRBUgorTUVOSkFLIElWQU4KK01FTlpJTETFvUnEhiBHQUJSSUpFTEEKK01FUsSMIEpBTk/FoAorTUVSxIxBIFNURVZBTgorTUVSxaAgTUlMQU4KK01FUsW9QSBLQVJPTEoKK01FUsSQRUxPxaBLSSBNSUxJQ0EKK01FUkMgRVZBCitNRVJEScSGIE1JUk9TTEFWCitNRVJET1ZJxIYgTUlMS0EKK01FUkVJIEtBVEFMSU4KK01FUkVJIE1BUkdJVEEKK01FUkdBTkMgS0FUSUNBCitNRVJHRcWgIEpBTk/FoAorTUVSR0VMIE1BUklKQQorTUVSScSMQVIgUkFET0pJQ0EKK01FUktPVknEhiBBTEVLU0FOREFSCitNRVJLT1ZJxIYgQUxPSloKK01FUktPVknEhiBBTktJQ0EKK01FUktPVknEhiBKVURJVAorTUVSS09WScSGIExKVURFVklUCitNRVJLT1ZJxIYgTklLT0xBCitNRVJLT1ZJxIYgUEVUQVIKK01FUktPVknEhiBTSUxWSUEKK01FUktPVknEhiBTVkVUSVNMQVZBCitNRVJLT1ZJxIYgVkVSQQorTUVSS1VMT1YgTEpJTEpBTkEKK01FUktWQSBFTUEKK01FUktWQSBKT8W9RUYKK01FUk5KQUsgRlJBTkpPCitNRVNBSyBOSUtPTEEKK01FU0FSScSGIEdBQlJJSkVMQQorTUVTQVJPxaAgxaBBTkRPUiBEUgorTUVTQVJPxaAgxJBVUkEKK01FU0FST8WgIEFORFJBxaAKK01FU0FST8WgIEFSUEFECitNRVNBUk/FoCBBVElMQQorTUVTQVJPxaAgQkFMQcW9CitNRVNBUk/FoCBGRVJFTkMKK01FU0FST8WgIEZSQU5KQQorTUVTQVJPxaAgR0VaQQorTUVTQVJPxaAgR0VaQQorTUVTQVJPxaAgR09SQU4KK01FU0FST8WgIEnFoFRWQU4KK01FU0FST8WgIEnFoFRWQU4KK01FU0FST8WgIElMT05BCitNRVNBUk/FoCBJTE9OQQorTUVTQVJPxaAgSU1SRQorTUVTQVJPxaAgSkVMRU5BCitNRVNBUk/FoCBKRUxJQ0EKK01FU0FST8WgIEpPU0lGCitNRVNBUk/FoCBKT1NPCitNRVNBUk/FoCBLQVJMTworTUVTQVJPxaAgS0FUSUNBCitNRVNBUk/FoCBMQUpPxaAKK01FU0FST8WgIExBU0xPCitNRVNBUk/FoCBMRU9OCitNRVNBUk/FoCBNSUhBTEoKK01FU0FST8WgIE1JS0xPxaAKK01FU0FST8WgIFBBVkxFCitNRVNBUk/FoCBQSVJPxaBLQQorTUVTQVJPxaAgU1RFVkFOCitNRVNBUk/FoCBUSUJPUgorTUVTQVJPxaAgVElCT1IKK01FU0FST8WgIFpPTFRBTgorTUVTQVJPxaAgWk9SQSBESVBMIElORworTUVTQVJPxaAgWk9SSUNBCitNRVNBUk9WScSGIERVxaBBTgorTUVTQVJPVknEhiBKT1ZBTgorTUVTQVJPVknEhiBNQVJHSVRBCitNRVNBUk9WScSGIE1JTEFOCitNRVNBUk9WScSGIFNWRVRPTElLCitNRVNFxaBBTiBHRVpBCitNRVNFTETFvUlKQSDFvUlWS08KK01FU0VMRMW9SUpBIE5BREXFvURBCitNRVNFTETFvUlKQSBPU1RPSkEKK01FU0VMRMW9SUpBIFJBSktPCitNRVNFTETFvUlKQSBTTEFWSUNBCitNRVNFTETFvUlKQSBTVEFOSU1JUgorTUVURUxKU0tJIFNFUkdJSkUKK01FVE9ESUpFVknEhiBNSUxPU0FWCitNRVpFIEpVTElKQU5BCitNRVpFxaAgSU1SRQorTUVaRUkgxaBBTkRPUgorTUVaRUkgSk/FvUVGCitNRVpFSSBMQURJU0xBVgorTUVaRUkgTEFTTE8KK01FWkVJIFNORcW9QU5BCitNRVpFSSBTVEVWQU4gRFIKK01FWkVJIFNURVZBTgorTUnEjEEgSk9TSVAKK01JxIxBIEpPVkFOCitNScSMScSGLcSQRVJNQU5PViBWSURBCitNScSMScSGIEJPxaBLTworTUnEjEnEhiBCT8WgS08KK01JxIxJxIYgTUlSSkFOQQorTUnEjEnEhi1NSVRST1ZJxIYgTUlMSUNBCitNScSMScSGIE5FREVMSktPCitNScSMScSGIFNORcW9QU5BCitNScSMScSGIFNPRklKQQorTUnEjEnEhiBaT1JBCitNScSMVVJJTiBKT1NJUAorTUnFoMSMRVZJxIYgQlJBTktPCitNScWgxIxFVknEhiBCUkFOS08KK01JxaDEjEVWScSGIERVxaBBTgorTUnFoMSMRVZJxIYgRFXFoEFOCitNScWgxIxFVknEhiBJTElKQQorTUnFoMSMRVZJxIYgSVZBTktBCitNScWgxIxFVknEhiBNQVJJSkEKK01JxaDEjEVWScSGIE1JQ0EKK01JxaDEjEVWScSGIE1JTEFESU4KK01JxaDEjEVWScSGIE1JTEFOCitNScWgxIxFVknEhiBOSUtPTEEKK01JxaDEjEVWScSGIE9MR0EKK01JxaDEjEVWScSGIFBFVEFSCitNScWgxIxFVknEhiBQRVRBUgorTUnFoMSMRVZJxIYgUEVUQVIKK01JxaDEjEVWScSGIFZMQURJTUlSCitNScWgxIxFVknEhiBaTEFUS08KK01JxaBBTiBMQVpBUgorTUnFoEFOT1ZJxIYgRFJBR09MSlVCCitNScWgQU5PVknEhiBTSU1PCitNScWgRUxJxIYgSkVGVEEKK01JxaBJxIYgxIxFRE9NSVIKK01JxaBJxIYgxJBVUkEKK01JxaBJxIYgQUxFS1NBTkRBUgorTUnFoEnEhiBBTEVLU0FOREFSCitNScWgScSGIEFMRUtTQU5EQVIKK01JxaBJxIYgQU7EkEVMSUpBCitNScWgScSGIEFOxJBFTEtBCitNScWgScSGIEFOQQorTUnFoEnEhiBCT0dEQU4KK01JxaBJxIYgQlVESU1JUgorTUnFoEnEhiBEUkFHSUNBCitNScWgScSGIERSQUdJQ0EKK01JxaBJxIYgRVRKRU4KK01JxaBJxIYgR09SQU4KK01JxaBJxIYgSVZBTgorTUnFoEnEhiBJVkFOCitNScWgScSGIEpBR09EQQorTUnFoEnEhiBKQUtPVgorTUnFoEnEhiBKQVNNSU5BCitNScWgScSGIEpPU0lQCitNScWgScSGIEpPVkFOCitNScWgScSGIExBWkFSCitNScWgScSGIExBWkFSCitNScWgScSGIExJTktBCitNScWgScSGIExKSUxKQU5BCitNScWgScSGIExKVUJPCitNScWgScSGIE1BUklKQQorTUnFoEnEhiBNQVJLTworTUnFoEnEhiBNSUxBTgorTUnFoEnEhiBNSUxBTgorTUnFoEnEhiBNSUxBTgorTUnFoEnEhiBNSUxBTgorTUnFoEnEhiBNSUxBTgorTUnFoEnEhiBNSUxPU0FWS0EKK01JxaBJxIYgTUlMT1ZBTgorTUnFoEnEhiBNSU9EUkFHCitNScWgScSGIE1JT01JUgorTUnFoEnEhiBNSVJKQU5BCitNScWgScSGIE1JUk9TTEFWCitNScWgScSGIE1JUk9TTEFWCitNScWgScSGIE5BREEKK01JxaBJxIYgTkVOQUQKK01JxaBJxIYgTkVTVE9SCitNScWgScSGIE5JS09MQQorTUnFoEnEhiBQRVRBUgorTUnFoEnEhiBQUkVEUkFHCitNScWgScSGIFJBREUKK01JxaBJxIYgUkFESVZPSkUKK01JxaBJxIYgUkFESVZPSkUKK01JxaBJxIYgUkFET0pLQQorTUnFoEnEhiBSQU5LTworTUnFoEnEhiBTQVZBCitNScWgScSGIFNMQVZLTworTUnFoEnEhiBTTE9CT0RBTgorTUnFoEnEhiBTTE9CT0RBTgorTUnFoEnEhiBTTE9CT0RBTgorTUnFoEnEhiBTT0ZJSkEKK01JxaBJxIYgU1RJUE8KK01JxaBJxIYgU1RKRVBBTgorTUnFoEnEhiBTVkVUT1pBUgorTUnFoEnEhiBTVkVUT1pBUgorTUnFoEnEhiBUT0RPUiBEUgorTUnFoEnEhiBUVUdPTUlSCitNScWgScSGIFZBU0EKK01JxaBJxIYgVklET1NBVkEKK01JxaBJxIYgVkxBRElDQQorTUnFoEnEhiBWT0pJTgorTUnFoEnEhiBaRFJBVktPCitNScWgScSGIFpPUkFOCitNScWgScSGIFpPUkEKK01JxaBJxIYgWk9SSUNBCitNScWgScSGIFpWT05JTUlSCitNScWgSU5TS0kgSkVMRU5BCitNScWgS0FSIEpPVkFOCitNScWgS0VMSklOIEJPxaBLTworTUnFoEtJxIYgxaBJTVVOCitNScWgS0nEhiBEVcWgQU4KK01JxaBLScSGIElWQU4KK01JxaBLScSGIE1JTEFOCitNScWgS0nEhiBSQUpLTworTUnFoEtJxIYgUkFOS08KK01JxaBLScSGIFNWRVRJU0xBVktBCitNScWgS0nEhiBWSVRPTUlSCitNScWgS0nEhkVWScSGIEJPUklWT0oKK01JxaBLTEpJTiBLQVRJQ0EKK01JxaBLT1YgxJBVUsSQSU5LQQorTUnFoEtPViBBTEVLU0FOREFSCitNScWgS09WIEFOR0VMSU5BCitNScWgS09WIEFOS0EKK01JxaBLT1YgQU5LSUNBCitNScWgS09WIEFWUkFNCitNScWgS09WIEJJTEpBTkEKK01JxaBLT1YgQk9KS0EKK01JxaBLT1YgQlJBTklNSVIKK01JxaBLT1YgQlJBTktPCitNScWgS09WIElWSUNBCitNScWgS09WIEpPVkFOCitNScWgS09WIEtBVEFSSU5BCitNScWgS09WIEtBVEFSSU5BCitNScWgS09WIExKVUJJQ0EKK01JxaBLT1YgTEpVQklDQQorTUnFoEtPViBNQUtTQQorTUnFoEtPViBNQVJJQ0EKK01JxaBLT1YgTUlMT8WgCitNScWgS09WIE1JTE9WQU4KK01JxaBLT1YgTUlST1NMQVYKK01JxaBLT1YgTkFEQQorTUnFoEtPViBORVZFTktBCitNScWgS09WIE5JS09MQQorTUnFoEtPViBOT1ZBCitNScWgS09WIFJBRElWT0oKK01JxaBLT1YgU0FWQSBESVBMIElORworTUnFoEtPViBTQVZBCitNScWgS09WIFNUQU5LQQorTUnFoEtPViBTVEVWQU4KK01JxaBLT1YgVkVTTkEKK01JxaBLT1YgVkVTTkEKK01JxaBLT1YgWkFHT1JLQQorTUnFoEtPViBaTEFUQQorTUnFoEtPVknEhiDFvUlWS08KK01JxaBLT1ZJxIYgxJBPUsSQRQorTUnFoEtPVknEhiDEkE9SxJBFCitNScWgS09WScSGIMSQT1LEkEUKK01JxaBLT1ZJxIYgQUxFS1NBTkRSQQorTUnFoEtPVknEhiBBTkEKK01JxaBLT1ZJxIYgQU5BCitNScWgS09WScSGIEFSU0EKK01JxaBLT1ZJxIYgQkxBxb1PCitNScWgS09WScSGIEJPxb1JREFSCitNScWgS09WScSGIEJPSkFOQQorTUnFoEtPVknEhiBCT0pBTgorTUnFoEtPVknEhiBCT1JJVk9KCitNScWgS09WScSGIEJSQU5JU0xBVgorTUnFoEtPVknEhiBCUkFOS08KK01JxaBLT1ZJxIYgQ1ZFVEtPCitNScWgS09WScSGIERBTsSMSUtBCitNScWgS09WScSGIERBUklOS0EKK01JxaBLT1ZJxIYgREVMSU5LQQorTUnFoEtPVknEhiBEUkFHQU4KK01JxaBLT1ZJxIYgRFJBR09SQUQKK01JxaBLT1ZJxIYgRFVCUkFWS0EKK01JxaBLT1ZJxIYgSUxJSkEKK01JxaBLT1ZJxIYgSUxJSkEKK01JxaBLT1ZJxIYgSUxPTktBCitNScWgS09WScSGIEpPQ0EKK01JxaBLT1ZJxIYgSk9WQU4KK01JxaBLT1ZJxIYgTEFaQVIKK01JxaBLT1ZJxIYgTEpVQklDQQorTUnFoEtPVknEhiBMSlVCSUNBCitNScWgS09WScSGIE1BUktPCitNScWgS09WScSGIE1JSEFKTE8KK01JxaBLT1ZJxIYgTUlMS0EKK01JxaBLT1ZJxIYgTUlMT8WgCitNScWgS09WScSGIE1JTE9KRQorTUnFoEtPVknEhiBNSUxPUkFECitNScWgS09WScSGIE1JT0RSQUcKK01JxaBLT1ZJxIYgTUlSSkFOQQorTUnFoEtPVknEhiBNSVJLTworTUnFoEtPVknEhiBNSVJLTworTUnFoEtPVknEhiBNSVJLTworTUnFoEtPVknEhiBNSVJPU0xBVkEKK01JxaBLT1ZJxIYgTkVOQUQKK01JxaBLT1ZJxIYgTknEhklGT1IKK01JxaBLT1ZJxIYgT0JSQUQKK01JxaBLT1ZJxIYgT0xHSUNBCitNScWgS09WScSGIFBFVEFSCitNScWgS09WScSGIFJBREUKK01JxaBLT1ZJxIYgUkFESVZPSiBNUgorTUnFoEtPVknEhiBSQURPU0xBVgorTUnFoEtPVknEhiBSQU5LTworTUnFoEtPVknEhiBTQcWgQQorTUnFoEtPVknEhiBTQVZLQQorTUnFoEtPVknEhiBTVEFOS0EKK01JxaBLT1ZJxIYgU1RFVkFOCitNScWgS09WScSGIFNURVZBTgorTUnFoEtPVknEhiBUQU5KQQorTUnFoEtPVknEhiBWSURPU0FWQQorTUnFoEtPVknEhiBWSUpFTkNFU0xBVgorTUnFoEtPVknEhiBWVUtJQ0EKK01JxaBLT1ZJxIYgVlVLSUNBCitNScWgS09WScSGIFpSTktBCitNScWgS09WSUMgTEpVREVWSVQKK01JxaBLT1ZJQyBaVVpBTkEKK01JxaBLVUxJTiBEUkFHScWgQQorTUnFoEtVTElOIE5BREEKK01JxaBLVUxJTiBOSUtPTEEKK01JxaBMSkVOT1ZJxIYgTUlPRFJBRworTUnFoExPViBMSlVCSUNBCitNScWgT1ZJxIYgTUlSS08KK01JxaBPVlNLSSBSSVNUTworTUnFoFVMScSGIFBFVEFSCitNScWgVUxJxIYgVklEQUsKK01JxaBVTEnEhiBWT0pJU0xBVgorTUnFoFVSQSBJVkFOCitNScSGQcWgRVZJxIYgQk/FoEtPCitNScSGQcWgRVZJxIYgU0FWQQorTUnEhkFOT1ZJxIYgRFJBR0FOCitNScSGQU5PVknEhiBEUkFHScWgQQorTUnEhkFOT1ZJxIYgTUFSSkFOCitNScSGRVZJxIYgRFXFoEFOCitNScSGRVZJxIYgU09GSUpBCitNScSGScSGIMSQT1LEkEUKK01JxIZJxIYgxJBVUsSQSU5BCitNScSGScSGIEJPSkFOQQorTUnEhknEhiBCUkFOSVNMQVYKK01JxIZJxIYgQlJBTktBCitNScSGScSGIEJSQU5LTyBESVBMIElORworTUnEhknEhiBCUkFOTworTUnEhknEhiBDVklKRVRJTgorTUnEhknEhiBEUkFHT0xKVUIKK01JxIZJxIYgRFXFoEFOIERJUEwgUFJBVk5JSworTUnEhknEhiBEVcWgQU4KK01JxIZJxIYgRFXFoEFOCitNScSGScSGIElMSUpBCitNScSGScSGIEpPVkFOS0EKK01JxIZJxIYgS09OU1RBTlRJTkEKK01JxIZJxIYgS1JTVEEKK01JxIZJxIYgTEpVQk9NSVIKK01JxIZJxIYgTEpVQk9NSVIKK01JxIZJxIYgTUFSSUpBCitNScSGScSGIE1JSEFKTE8KK01JxIZJxIYgTUlMQU5BCitNScSGScSGIE1JTEVOQQorTUnEhknEhiBNSUxFTktPIERJUEwgSU5HCitNScSGScSGIE1JTElDQQorTUnEhknEhiBNSUxJQ0EKK01JxIZJxIYgTUlMS0EKK01JxIZJxIYgTUlMT1JBRAorTUnEhknEhiBNSVJPU0xBVgorTUnEhknEhiBPTElWRVJBCitNScSGScSGIE9aUkVOCitNScSGScSGIFJBRE1JTEEKK01JxIZJxIYgUkFET0pJQ0EKK01JxIZJxIYgUkFET1ZBTgorTUnEhknEhiBST0RPTEpVQgorTUnEhknEhiBTTEFWSUNBCitNScSGScSGIFNMQVZLTworTUnEhknEhiBTTUlMSkEKK01JxIZJxIYgU1RPSkFOCitNScSGScSGIFNVWkFOQQorTUnEhknEhiBWRUxJTUlSCitNScSGScSGIFZMQURJTUlSCitNScSGSU4gxb1BUktPCitNScSGSU4gxJBPUsSQRQorTUnEhklOIERVxaBLTworTUnEhklOIExBWkEKK01JxIZJTiBNSUxJQ0EKK01JxIZJTiBSQURPVkFOCitNScSGSU4gVVJPxaAKK01JxIZLT1ZJxIYgTUlMSU5LTworTUnEhk9WScSGIMSMRURPTUlSCitNScSGT1ZJxIYgQk9SSVNMQVYKK01JxIZPVknEhiBCT1NJTEpLQQorTUnEhk9WScSGIEpBTktPCitNScSGT1ZJxIYgS09TVEFESU4gRFIKK01JxIZPVknEhiBNSUxBTgorTUnEhk9WScSGIE1JUkpBTkEKK01JxIZPVknEhiBORUJPSsWgQSBESVBMIElORworTUnEhk9WScSGIFBSRURSQUcgRElQTCBJTkcKK01JxIZPVknEhiBTVE9KQU5LQQorTUnEhk9WScSGIFZFTElNSVIKK01JxIZVTk9WScSGIERSQUdVVElOCitNScSGVU5PVknEhiBNQVJJQ0EKK01JxIZVTk9WScSGIFNUQU5LQQorTUnEhlVOT1ZJxIYgVkxBRE8KK01JxIZVTk9WScSGIFZPSklTTEFWS0EKK01JQVZFQyBNQcSGQcWgCitNSUNBSSBNQVJJSkEKK01JQ0nEhiBEUkFHQU4KK01JQ0nEhiBEUkFHT0xKVUIKK01JQ0nEhiBEUkFHT0xKVUIKK01JQ0nEhiBEVcWgQU4KK01JQ0nEhiBLUlNUQSBEUgorTUlDScSGIE1JUktPCitNSUNLT1YgQkxBR09KCitNSUNLT1YgRUxFTkEKK01JREkgTkVOQUQKK01JREnEhiDEkE9SxJBFCitNSURJxIYgQk9SSVZPSgorTUlEScSGLURVTsSQRVJTS0kgTUlMRU5BCitNSURJxIYgSkVMRU5BCitNSURJxIYgSk9WQU4KK01JREnEhiBMSlVCScWgQQorTUlEScSGIE1JTEVOS08KK01JREnEhiBNSUxPUkFECitNSURJxIYgU0xPQk9EQU4KK01JREnEhiBTVEVWQU4KK01JREnEhiBTVkVUT1pBUgorTUlEScSGIFNWRVRPWkFSCitNSURJxIYgWk9SS0EKK01JR0xJTkNJIEJBUkJBUkEKK01JR0xJTkNJIEVURUxLQQorTUlHTElOQ0kgSkVMRU5BCitNSUdMSU5DSSBMQVNMTworTUlIQUlMT1ZJxIYgxIxFRE9NSVIKK01JSEFJTE9WScSGIMSQT0tPCitNSUhBSUxPVknEhiBEUkFHVVRJTgorTUlIQUlMT1ZJxIYgR09SQU4KK01JSEFJTE9WScSGIEpPVkFOCitNSUhBSUxPVknEhiBLT1NUQURJTgorTUlIQUlMT1ZJxIYgTEpVQklDQQorTUlIQUlMT1ZJxIYgTUlMQU4KK01JSEFJTE9WScSGIE1JTE/FoAorTUlIQUlMT1ZJxIYgTUlPRFJBRworTUlIQUlMT1ZJxIYgTUlST1NMQVYKK01JSEFJTE9WScSGIE1JUk9TTEFWCitNSUhBSUxPVknEhiBTTEFWT0xKVUIKK01JSEFJTE9WScSGIFNWRVRMQU5BCitNSUhBSUxPVknEhiBTVkVUT1pBUgorTUlIQUlMT1ZJxIYgVkVMSUJPUgorTUlIQUlMT1ZJxIYgVkVSQSBEUgorTUlIQUlMT1ZJxIYgVk9KSVNMQVYKK01JSEFJTE9WScSGIFpPUkFOCitNSUhBSkxKRVZJxIYgUkFUT01JUgorTUlIQUpMTyBMSkFWTworTUlIQUpMT1Ygxb1JVkEKK01JSEFKTE9WIMSQT1LEkEUKK01JSEFKTE9WIEFMRUtTQU5EQVIgRFIKK01JSEFKTE9WIEJPR0RBTgorTUlIQUpMT1YgQlJBTklTTEFWCitNSUhBSkxPViBEUkFHQU5BCitNSUhBSkxPViBEUkFHQU4KK01JSEFKTE9WIERVxaBBTgorTUlIQUpMT1YgSVZBTgorTUlIQUpMT1YgSk9WQU5LQQorTUlIQUpMT1YgTEFaQVIKK01JSEFKTE9WIExKSUxKQU5BCitNSUhBSkxPViBNQVJJSkEKK01JSEFKTE9WIE1JTEFOCitNSUhBSkxPViBNSUxPxaAKK01JSEFKTE9WIE1JTE9SQUQKK01JSEFKTE9WIE1JTE9WQU4KK01JSEFKTE9WIE1JTE9WQU4KK01JSEFKTE9WIE1JUk9TTEFWQQorTUlIQUpMT1YgTklLT0xBCitNSUhBSkxPViBPTEdBCitNSUhBSkxPViBSQURPSktBCitNSUhBSkxPViBSQURPU0xBVgorTUlIQUpMT1YgU1BBU09KRQorTUlIQUpMT1YgVkVSQQorTUlIQUpMT1YgVkVTRUxJTgorTUlIQUpMT1YgVklET1NBVgorTUlIQUpMT1YgWk9SQU4KK01JSEFKTE9WScSGIMSMRURPTUlSCitNSUhBSkxPVknEhiDEjEVETworTUlIQUpMT1ZJxIYgxb1BUktPCitNSUhBSkxPVknEhiDFvUFSS08KK01JSEFKTE9WScSGIMW9RUxKS08KK01JSEFKTE9WScSGIMW9SVZLTworTUlIQUpMT1ZJxIYgxb1JVk9KSU4KK01JSEFKTE9WScSGIMSQT1LEkEUKK01JSEFKTE9WScSGIMSQT1LEkEUKK01JSEFKTE9WScSGIMSQT1LEkEUKK01JSEFKTE9WScSGIMSQVVJBCitNSUhBSkxPVknEhiBBTsSQRUxLTworTUlIQUpMT1ZJxIYgQU5JQ0EKK01JSEFKTE9WScSGIEFOS0EKK01JSEFKTE9WScSGIEJPxaBLTworTUlIQUpMT1ZJxIYgQk9HT0xKVUIgRFIKK01JSEFKTE9WScSGIEJPR09MSlVCCitNSUhBSkxPVknEhiBCUkFOSVNMQVYKK01JSEFKTE9WScSGIEJSQU5JU0xBVgorTUlIQUpMT1ZJxIYgQlJBTklTTEFWCitNSUhBSkxPVknEhiBCUkFOS0EKK01JSEFKTE9WScSGIEJSQU5LTworTUlIQUpMT1ZJxIYgQlJBTktPCitNSUhBSkxPVknEhiBCUkFOS08KK01JSEFKTE9WScSGIEJSQU5LTworTUlIQUpMT1ZJxIYgREFOS0EKK01JSEFKTE9WScSGIERBUklOS0EKK01JSEFKTE9WScSGIERFSkFOCitNSUhBSkxPVknEhiBERUpBTgorTUlIQUpMT1ZJxIYgREVMSUpBCitNSUhBSkxPVknEhiBESU1JVFJJSkUKK01JSEFKTE9WScSGIERSQUdJxaBBCitNSUhBSkxPVknEhiBEUkFHT0xKVUIgRFIgTEVLQVIKK01JSEFKTE9WScSGIERSQUdPTEpVQgorTUlIQUpMT1ZJxIYgRFJBR09MSlVCCitNSUhBSkxPVknEhiBEUkVOS0EKK01JSEFKTE9WScSGIERVxaBBTktBCitNSUhBSkxPVknEhiBEVcWgQU4KK01JSEFKTE9WScSGIERVxaBBTgorTUlIQUpMT1ZJxIYgRFXFoEFOCitNSUhBSkxPVknEhiBEVcWgS08KK01JSEFKTE9WScSGIEVSTkVTVAorTUlIQUpMT1ZJxIYgRlJBTkpBCitNSUhBSkxPVknEhiBHT0pLTworTUlIQUpMT1ZJxIYgR09SREFOQQorTUlIQUpMT1ZJxIYgR09SREFOQQorTUlIQUpMT1ZJxIYgSUxFCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJVkFOS0EKK01JSEFKTE9WScSGIEpBU01JTkEgRFIKK01JSEFKTE9WScSGIEpFTEEKK01JSEFKTE9WScSGIEpFTEVOS08KK01JSEFKTE9WScSGIEpFTElDQQorTUlIQUpMT1ZJxIYgSkVMSUNBCitNSUhBSkxPVknEhiBKT0tBCitNSUhBSkxPVknEhiBKT1ZBTiBESVBMIElORworTUlIQUpMT1ZJxIYgSk9WQU4KK01JSEFKTE9WScSGIEpPVkFOCitNSUhBSkxPVknEhiBKT1ZBTgorTUlIQUpMT1ZJxIYgSk9WQU4KK01JSEFKTE9WScSGIEpVTElKQU5BCitNSUhBSkxPVknEhiBLQVRJQ0EKK01JSEFKTE9WScSGIEtPU1RBCitNSUhBSkxPVknEhiBLUklTVElOQQorTUlIQUpMT1ZJxIYgS1NFTklKQQorTUlIQUpMT1ZJxIYgTEFaTworTUlIQUpMT1ZJxIYgTEVOS0EKK01JSEFKTE9WScSGIExFTktBCitNSUhBSkxPVknEhiBMRVBPU0FWQQorTUlIQUpMT1ZJxIYgTEpVQknFoEEKK01JSEFKTE9WScSGIExKVUJPCitNSUhBSkxPVknEhiBNQVJHSVRBCitNSUhBSkxPVknEhiBNQVJJSkEKK01JSEFKTE9WScSGIE1BUklKQQorTUlIQUpMT1ZJxIYgTUnEhkEKK01JSEFKTE9WScSGIE1JSEFKTE8KK01JSEFKTE9WScSGIE1JTEFESU4KK01JSEFKTE9WScSGIE1JTEFOCitNSUhBSkxPVknEhiBNSUxBTgorTUlIQUpMT1ZJxIYgTUlMQU4KK01JSEFKTE9WScSGIE1JTEFOCitNSUhBSkxPVknEhiBNSUxBCitNSUhBSkxPVknEhiBNSUxFTktPCitNSUhBSkxPVknEhiBNSUxFTktPCitNSUhBSkxPVknEhiBNSUxFVEEKK01JSEFKTE9WScSGIE1JTEUKK01JSEFKTE9WScSGIE1JTElDQQorTUlIQUpMT1ZJxIYgTUlMT1JBRCBESVBMIElORworTUlIQUpMT1ZJxIYgTUlMT1JBRAorTUlIQUpMT1ZJxIYgTUlMT1JBRAorTUlIQUpMT1ZJxIYgTUlMT1ZBTgorTUlIQUpMT1ZJxIYgTUlMVU4KK01JSEFKTE9WScSGIE1JUkEKK01JSEFKTE9WScSGIE1JUktPCitNSUhBSkxPVknEhiBNSVJLTworTUlIQUpMT1ZJxIYgTUlSS08KK01JSEFKTE9WScSGIE1JUk9MSlVCIERJUEwgSU5HCitNSUhBSkxPVknEhiBNSVJPU0xBVgorTUlIQUpMT1ZJxIYgTUlST1NMQVYKK01JSEFKTE9WScSGIE1JUk9TTEFWCitNSUhBSkxPVknEhiBNT03EjElMTworTUlIQUpMT1ZJxIYgTkFEQQorTUlIQUpMT1ZJxIYgTkFEQQorTUlIQUpMT1ZJxIYgTkFEQQorTUlIQUpMT1ZJxIYgTkFESVJBCitNSUhBSkxPVknEhiBORUJPSsWgQQorTUlIQUpMT1ZJxIYgTkVERUxKS08KK01JSEFKTE9WScSGIE5FREVMSktPCitNSUhBSkxPVknEhiBOSUtPTEEKK01JSEFKTE9WScSGIE5JS09MQQorTUlIQUpMT1ZJxIYgTklLT0xBCitNSUhBSkxPVknEhiBOT1ZBSworTUlIQUpMT1ZJxIYgT0xJVkVSQQorTUlIQUpMT1ZJxIYgT1NUT0pBCitNSUhBSkxPVknEhiBQRVRBUgorTUlIQUpMT1ZJxIYgUFJWT1NMQVYKK01JSEFKTE9WScSGIFJBREUKK01JSEFKTE9WScSGIFJBRElWT0oKK01JSEFKTE9WScSGIFJBRE1JTEEKK01JSEFKTE9WScSGIFJBRE1JTEEKK01JSEFKTE9WScSGIFJBRE9NSVIKK01JSEFKTE9WScSGIFJBRE9TTEFWCitNSUhBSkxPVknEhiBSQURPU0xBVgorTUlIQUpMT1ZJxIYgUkFET1ZBTgorTUlIQUpMT1ZJxIYgUkFET1ZBTgorTUlIQUpMT1ZJxIYgUkFET1ZBTgorTUlIQUpMT1ZJxIYgUk9aQUxJSkEKK01JSEFKTE9WScSGIFJVxb1JQ0EKK01JSEFKTE9WScSGIFJVxb1JQ0EKK01JSEFKTE9WScSGIFNBTkpBCitNSUhBSkxPVknEhiBTQVZBCitNSUhBSkxPVknEhiBTQVZBCitNSUhBSkxPVknEhiBTQVZBCitNSUhBSkxPVknEhiBTQVZPCitNSUhBSkxPVknEhiBTSU5JxaBBCitNSUhBSkxPVknEhiBTTEFWSUNBCitNSUhBSkxPVknEhiBTTEFWS08KK01JSEFKTE9WScSGIFNMQVZPTEpVUEtBCitNSUhBSkxPVknEhiBTTE9CT0RBTgorTUlIQUpMT1ZJxIYgU0xPQk9EQU4KK01JSEFKTE9WScSGIFNNSUxKQU5BCitNSUhBSkxPVknEhiBTT0ZJSkEKK01JSEFKTE9WScSGIFNSxJBBCitNSUhBSkxPVknEhiBTUkJJU0xBViBEUiBMRUtBUgorTUlIQUpMT1ZJxIYgU1JFVEVOCitNSUhBSkxPVknEhiBTUkVUS08KK01JSEFKTE9WScSGIFNUQU5JxaBBIERJUEwgSU5HCitNSUhBSkxPVknEhiBTVEFOSVNMQVZBCitNSUhBSkxPVknEhiBTVEFOS08KK01JSEFKTE9WScSGIFNURVZBTgorTUlIQUpMT1ZJxIYgU1RFVkFOCitNSUhBSkxPVknEhiBTVEVWQQorTUlIQUpMT1ZJxIYgU1RFVklDQQorTUlIQUpMT1ZJxIYgU1RPSkFOCitNSUhBSkxPVknEhiBTVE9KQU4KK01JSEFKTE9WScSGLVNVQknEhiBKT1ZBTktBCitNSUhBSkxPVknEhiBTVkVUT1pBUgorTUlIQUpMT1ZJxIYgU1ZFVE9aQVIKK01JSEFKTE9WScSGIFNWRVRPWkFSCitNSUhBSkxPVknEhiBUVUdPTUlSCitNSUhBSkxPVknEhiBVUk/FoAorTUlIQUpMT1ZJxIYgVkFTQQorTUlIQUpMT1ZJxIYgVkVSQQorTUlIQUpMT1ZJxIYgVklUT01JUgorTUlIQUpMT1ZJxIYgVkxBRElNSVIKK01JSEFKTE9WScSGIFZMQURJTUlSCitNSUhBSkxPVknEhiBWT0pJU0xBVgorTUlIQUpMT1ZJxIYgWk9SQU5BCitNSUhBSkxPVknEhiBaT1JJQ0EKK01JSEFKTE9WU0tJIExKVUJJTktBCitNSUhBSkxPVlNLSSBNSVJPU0xBVgorTUlIQUpMT1ZTS0kgVkxBRElNSVIKK01JSEFMQcSMS0kgTUlIQUlMTworTUlIQUxBxIxLSSBTTE9CT0RBTgorTUlIQUxFQyBBTkdFTElOQQorTUlIQUxFQyBNQVJJSkEKK01JSEFMRUsgSVZBTgorTUlIQUxFSyBNQVJJSkEKK01JSEFMRU5LTyBTVEVWQU4KK01JSEFMScSGIFBFVEFSCitNSUhBTElLLVRJUiBaVVpBTkEKK01JSEFMSiBFU1RFUgorTUlIQUxKIE1BUklKQSBEUgorTUlIQUxKIE1JSEFKTE8gRFIKK01JSEFMSiBNSVJPU0xBViBEUgorTUlIQUxKIFZMQURJTUlSCitNSUhBTErEjEVWScSGIEFMT0paSUpFCitNSUhBTErEjEnEhiBEUkFHQU4KK01JSEFMSsSMScSGIEdPSktPCitNSUhBTErEjEnEhiBJTEUKK01JSEFMSsSMScSGIEpPVkFOCitNSUhBTErEjEnEhiBKT1ZBTgorTUlIQUxKxIxJxIYgTFVLQQorTUlIQUxKxIxJxIYgTUlUQVIKK01JSEFMSsSMScSGIFNQQVNPSkUKK01JSEFMSkVWIMW9RUxKS08KK01JSEFMSkVWIElWQU4gRFIKK01JSEFMSkVWIFNUT0pBTgorTUlIQUxKRVZJxIYgQU5UT04KK01JSEFMSkVWScSGIEVNSUwKK01JSEFMSkVWScSGIElWQU4KK01JSEFMSkVWScSGIE1JTEFOCitNSUhBTEpFVknEhiBSVcW9SUNBCitNSUhBTEpFVknEhiBaRFJBVktPCitNSUhBTEpGSSBNQVJJS0EKK01JSEFMSkkgTUFSSUpBCitNSUhBTEpJxIxJxIYgQlJBTktPCitNSUhBTEpJxIxJxIYgRE1JVEFSCitNSUhBTEpJxIxJxIYgSk9WQU5LQQorTUlIQUxKScSMScSGIFNJTU8KK01JSEFMSknEjEnEhiBUT0RFCitNSUhBTEpJQ0EgQU7EkEEKK01JSEFMSklDQSBCT8W9TworTUlIQUxKSUNBIENWRVRLTworTUlIQUxKSUNBIE1JUkEKK01JSEFMSktBIEJSQU5JU0xBVgorTUlIQUxKT1ZTS0kgREFOSUxPCitNSUhBTE9WScSGIEJSQU5LTworTUlIQUxPVknEhiBHUk9aREFOQQorTUlIRUxKIEZSQU5KTworTUlIRVZDIElWQU5LQQorTUlIScSGIMSMRURPTUlSCitNSUhJxIYgQk/FvUlEQVIKK01JSEnEhiBNSUxBTgorTUlIScSGIE1JTEFOCitNSUhJxIYgTUlMRU5BCitNSUhJxIYgUklTVE8KK01JSEnEhiBSSVNUTworTUlIScSGIFNBVkEgRElQTCBJTkcKK01JSEnEhiBWRVJBCitNSUhJxIYgVkxBRElNSVIKK01JSEnEhiBWT0pJU0xBVktBCitNSUhJxIYgWk9SQU4KK01JSExJQyBQRVRBUgorTUlITkpBSyBKT0FLSU0KK01JSE5KQUsgS0FUSUNBCitNSUhOSkFLIExBRElTTEFWCitNSUhOSkFLIE1FTEFOSUpBCitNSUhOSkFLIE5BREEKK01JSE5KQUsgUEVUQVIKK01JSE9DSSBGUkFOSkEKK01JSE9DSSBaVk9OSU1JUgorTUlIT0pFVknEhiDEkE9SxJBFCitNSUhPSkVWScSGIE1JTEVOQQorTUlIT0pFVknEhiBOSUtPTEEKK01JSE9KRVZJxIYgU05Fxb1BTkEKK01JSE9MxIxJxIYgU1RFVklDQQorTUlIT0xKRVZJxIYgRU1BCitNSUhPTEpFVknEhiBNSUxPVEtBCitNSUpBxIwgU0xBVktPCitNSUpBxIxFVknEhiBNSUxBTgorTUlKQUTFvUVWScSGIEpPVk8KK01JSkFJTE9WScSGIMSQT1LEkEUKK01JSkFJTE9WScSGIE1JTElWT0pFCitNSUpBSUxPVknEhiBQQU5URUxJSkEKK01JSkFJTE9WScSGIFJBTklTQVYKK01JSkFJTE9WScSGIFJBTktPCitNSUpBSUxPVknEhiBTVEFOT0pFCitNSUpBSkxPVknEhiBBSk5BCitNSUpBSkxPVknEhiBWVUtPU0FWQQorTUlKQUzEjEnEhiBNSUxBTgorTUlKQUzEjEnEhiBTQVZBCitNSUpBTMSMScSGIFpPUkEKK01JSkFMSUNBIFNWRVRPU0xBVgorTUlKQU5PVknEhiDEkE9SxJBFCitNSUpBTk9WScSGIMSQT1LEkEUKK01JSkFOT1ZJxIYgTUlMSUNBCitNSUpBTk9WScSGIE1JTE/FoAorTUlKQU5PVknEhiBNSUxPUkFECitNSUpBTk9WScSGIE1JTE9SQUQKK01JSkFOT1ZJxIYgUEFWTEUKK01JSkFOT1ZJxIYgUkFET01JUgorTUlKQVQgSVZBTgorTUlKQVQgTUlMQU5LQQorTUlKQVQgUk9LTworTUlKQVQgVE9NSVNMQVYKK01JSkFUT1Ygxb1JVktBCitNSUpBVE9WIEFMRUtTQU5EQVIKK01JSkFUT1YgQU7EkEVMS0EKK01JSkFUT1YgQlJBTklTTEFWCitNSUpBVE9WIERSQUdJxIYKK01JSkFUT1YgRFJBR0lDQQorTUlKQVRPViBJVkFOCitNSUpBVE9WIElWQU4KK01JSkFUT1YgSk9TQQorTUlKQVRPViBLQVRJQ0EKK01JSkFUT1YgTEFaQVIKK01JSkFUT1YgTEpVQklOS0EKK01JSkFUT1YgTEpVQk9NSVIKK01JSkFUT1YgTUlMQURJTgorTUlKQVRPViBNSUxBTgorTUlKQVRPViBNSUxBTgorTUlKQVRPViBNSUxBTgorTUlKQVRPViBNSUxBCitNSUpBVE9WIE1JTEVOS08KK01JSkFUT1YgTUlMT8WgCitNSUpBVE9WIE1JTE9SQUQKK01JSkFUT1YgTUlPRFJBRworTUlKQVRPViBNSVJKQU5BCitNSUpBVE9WIFJBRElWT0oKK01JSkFUT1YgUkFET1ZBTgorTUlKQVRPViBTQVZBCitNSUpBVE9WIFNBVktBCitNSUpBVE9WIFNMQVZLTworTUlKQVRPViBTTUlMSktBCitNSUpBVE9WIFNURVZBTgorTUlKQVRPViBWSURPU0FWQQorTUlKQVRPViBWT0pJTgorTUlKQVRPViBaTEFUSU5LQQorTUlKQVRPVknEhiDFvUlWQU4KK01JSkFUT1ZJxIYgxJBPUsSQRQorTUlKQVRPVknEhiDEkFVKQQorTUlKQVRPVknEhiDEkFVSSUNBCitNSUpBVE9WScSGIMSQVVJPCitNSUpBVE9WScSGIEFMRUtTQU5EUkEKK01JSkFUT1ZJxIYgQU5UT05JSkUKK01JSkFUT1ZJxIYgQklTRVJLQQorTUlKQVRPVknEhiBCT8WgS08KK01JSkFUT1ZJxIYgQk/FvUlEQVIKK01JSkFUT1ZJxIYgQk/FvU8KK01JSkFUT1ZJxIYgQk9HT01JUgorTUlKQVRPVknEhiBCUkFOS08KK01JSkFUT1ZJxIYgRFJBR0FOCitNSUpBVE9WScSGIERSQUdBTgorTUlKQVRPVknEhiBEUkFHScSGCitNSUpBVE9WScSGIERSQUdJCitNSUpBVE9WScSGIERVxaBBTgorTUlKQVRPVknEhiBEVcWgQU4KK01JSkFUT1ZJxIYgRFXFoEFOCitNSUpBVE9WScSGIEdPSktPCitNSUpBVE9WScSGIElMSUpBCitNSUpBVE9WScSGIElMSUpBCitNSUpBVE9WScSGIEpPVkFOCitNSUpBVE9WScSGIEpPVkFOCitNSUpBVE9WScSGIEtBVElDQQorTUlKQVRPVknEhiBLT1NUQQorTUlKQVRPVknEhiBMQVpBUgorTUlKQVRPVknEhiBMQVpBUgorTUlKQVRPVknEhiBMRUxBCitNSUpBVE9WScSGIExKSUxKQU5BCitNSUpBVE9WScSGIExKVUJFTktPCitNSUpBVE9WScSGIExKVUJJQ0EKK01JSkFUT1ZJxIYgTEpVQklDQQorTUlKQVRPVknEhiBMSlVCSUNBCitNSUpBVE9WScSGIE1BUlRBCitNSUpBVE9WScSGIE1BVE8KK01JSkFUT1ZJxIYgTUnFoEEKK01JSkFUT1ZJxIYgTUlMQU4KK01JSkFUT1ZJxIYgTUlMRVZBCitNSUpBVE9WScSGIE1JTElWT0pFCitNSUpBVE9WScSGIE1JTEtPCitNSUpBVE9WScSGIE1JTE/FoAorTUlKQVRPVknEhiBNSUxPUkFECitNSUpBVE9WScSGIE1JTE9WQU4KK01JSkFUT1ZJxIYgTUlPRFJBRworTUlKQVRPVknEhiBNSVJBCitNSUpBVE9WScSGIE1JUkpBTkEKK01JSkFUT1ZJxIYgTUlSSkFOQQorTUlKQVRPVknEhiBOQVRBxaBBCitNSUpBVE9WScSGIE5FVkVOQQorTUlKQVRPVknEhiBOSUtPTEEKK01JSkFUT1ZJxIYgTk9WTworTUlKQVRPVknEhiBPQlJBRAorTUlKQVRPVknEhiBQRVJBCitNSUpBVE9WScSGIFBFVEFSCitNSUpBVE9WScSGLVBVxaBJxIYgQlJBTklTTEFWQSBEUgorTUlKQVRPVknEhiBSQURJxIwKK01JSkFUT1ZJxIYgUkFET1NMQVYKK01JSkFUT1ZJxIYgU0lNTworTUlKQVRPVknEhiBTTkXFvUFOQQorTUlKQVRPVknEhiBTVEFOQQorTUlKQVRPVknEhiBUT8WgQQorTUlKQVRPVknEhiBUT01JU0xBVgorTUlKQVRPVknEhiBWRVJBCitNSUpBVE9WScSGIFZFUkEKK01JSkFUT1ZJxIYgVklECitNSUpBVE9WScSGIFZMQURBTgorTUlKQVRPVknEhiBWT0pJTiBBRFZPS0FUCitNSUpBVE9WScSGIFpEUkFWS08gRElQTCBJTkcKK01JSkFUT1ZJxIYgWk9SQU4KK01JSkFUT1ZJxIYgWk9SQQorTUlKQVRPVknEhiBaT1JJQ0EKK01JSkFUT1ZJxIYgWlZPTklNSVIKK01JSkFWRUMgxJBPUsSQRQorTUlKQVZFQyBKT1ZBTgorTUlKQVZFQyBMVURWSUcKK01JSkFWRUMgTUlIQUpMTworTUlKQVZFQyBQQUpBCitNSUpBVkVDIFpPUkEKK01JSknEhiDFvUVMSktPCitNSUpJxIYgxb1FTEpLTworTUlKScSGIMSQT1LEkEUKK01JSknEhiBBTEVLU0FOREFSCitNSUpJxIYgQU5URQorTUlKScSGIEJSQU5LTworTUlKScSGIERFU0FOS0EKK01JSknEhiBEUkFHQU4KK01JSknEhiBEVcWgQU4KK01JSknEhiBJTElKQQorTUlKScSGIEpBTkpBCitNSUpJxIYgTUlIQUpMTworTUlKScSGIE1JTEFOCitNSUpJxIYgTUlMT8WgCitNSUpJxIYgTUlPRFJBRworTUlKScSGIE5JS09MQQorTUlKScSGIFBFUkEKK01JSknEhiBQRVRBUgorTUlKScSGIFBFVEFSCitNSUpJxIYgUkFET1ZBTgorTUlKScSGIFJBRE9WQU4KK01JSknEhiBTQVZBCitNSUpJxIYgU1ZFVElTTEFWCitNSUpJxIYgVElOS0EKK01JSknEhiBWRUxKS08KK01JSknEhiBWRVNOQQorTUlKScSGIFZMQURJTUlSCitNSUpJTiBCT1JJU0xBVgorTUlKSU4gQlJBTklTTEFWCitNSUpJTiBKT1ZBCitNSUpJTiBMQVpBUgorTUlKSU4gTEFaQVIKK01JSklOIE1JTEFOCitNSUpJTiBNSUxFVkEKK01JSklOIE1JTElDQQorTUlKSU4gTUlMT8WgCitNSUpJTiBQRVRBUgorTUlKSU4gUEVUQVIKK01JSklOIFJBREEKK01JSklOIFNBVkEKK01JSklOIFNJTUEKK01JSklOIFNURVZBTgorTUlKSU4gU1ZFVE9aQVIKK01JSk9LT1YgRFJBR0FOCitNSUpPTEnEhiBTTE9CT0RBTgorTUlKT0xKRVZJxIYgTUlMRU5LTworTUlKT1ZJxIYgxb1BUktPCitNSUpPVknEhiBEUkFHSUNBCitNSUpPVknEhiBHQVZSSUxPCitNSUpPVknEhiBSQURPSktBCitNSUpPVknEhiBWRVJBCitNSUpVxIxJxIYgU1RFVkFOCitNSUpVxIxJxIYgVkVSQQorTUlKVcSMSU4gTUlMS0EKK01JSlXFoEtPVknEhiBEUkFHSUNBCitNSUpVxaBLT1ZJxIYgSk9WQU4KK01JSlXFoEtPVknEhiBNSUxJVk9KRQorTUlKVcWgS09WScSGIE9CUkVOCitNSUpVxaBLT1ZJxIYgUkFERQorTUlKVcWgS09WScSGIFJBRE1JTEEKK01JSlXFoEtPVknEhiBUSU5LQQorTUlLxaBBIE1JTEFOCitNSUvFoEnEhiDEjEVET01JUgorTUlLxaBJxIYgT1RPTgorTUlLxaBJxIYgU0xPQk9EQU4KK01JS0HFoElOT1ZJxIYgQklMSkFOQQorTUlLQcWgSU5PVknEhiBTQVZBCitNSUtBxIYgTUlMQU4KK01JS0FDIEVWS0EKK01JS0FMQcSMS0kgxJBPUsSQRQorTUlLQUxBxIxLSSBBTEVLU0FOREFSCitNSUtBTEHEjEtJIERSQUdJQ0EKK01JS0FMQcSMS0kgSVZBTktBCitNSUtBTEHEjEtJIElWQU5LQQorTUlLQUxBxIxLSSBKQVNNSU5BCitNSUtBTEHEjEtJIE1JTFVUSU4KK01JS0FMQcSMS0kgTUlSSkFOQQorTUlLQUxBxIxLSSBQQVZMRQorTUlLQUxBxIxLSSBVUk/FoAorTUlLQUxBxIxLSSBaT1JBTgorTUlLQUxBxIxLSSBaT1JBTgorTUlLQU4gQk9TSUxKS0EKK01JS0FOIElWQU4KK01JS0FOT1ZJxIYgREFOSUNBCitNSUtBTk9WScSGIERSQUdBTgorTUlLQU5PVknEhiBJUkVOQQorTUlLQU5PVknEhiBSQU5LTworTUlLQVZJQ0EgU1RBTklNSVIKK01JS0UgRVNURVIKK01JS0XFoCBBTkRSSUpBCitNSUtFxaAgRU5EUkUKK01JS0XFoCBFVEVMCitNSUtFxaAgTUVMQU5JSkEKK01JS0XFoCBNSUhBTEoKK01JS0VUScSGIE1JUkpBTkEKK01JS0nEhiDFvUFSS08KK01JS0nEhiDFvUFSS08KK01JS0nEhiDEkFVSQSBEUgorTUlLScSGIERFU0lNSVIKK01JS0nEhiBJVkFOCitNSUtJxIYgSk9TSVAgRElQTCBJTkcKK01JS0nEhiBMQVpBUgorTUlLScSGIE1BS1NJTQorTUlLScSGIE1JTEFOCitNSUtJxIYgTUlMRU5BCitNSUtJxIYgTUlMSVNBVgorTUlLScSGIE1JTEtBCitNSUtJxIYgTUlMS0EKK01JS0nEhiBNSUxPVkFOCitNSUtJxIYgTUlST1NMQVYKK01JS0nEhiBPTEdBCitNSUtJxIYgUkFESVZPSkUKK01JS0nEhiBSQURPSktBCitNSUtJxIYgUkFET1NMQVZLQQorTUlLScSGIFJVxb1BCitNSUtJxIYgU0xPQk9EQU4KK01JS0nEhiBTUkJPTEpVQgorTUlLScSGIFNUT0pBCitNSUtJxIYgVE9ET1IKK01JS0nEhiBWTEFEQU4KK01JS0nEhiBaT1JLQQorTUlLSU4gTkFEQQorTUlLSVRJxaBJTiBOQURBCitNSUtMRVYgU1RPSkFOS0EKK01JS0xJxIYgxJBPUsSQRQorTUlLTEnEhiBBTkEKK01JS0xJxIYgVEVSRVpBCitNSUtMT8WgIEFORFJBxaAKK01JS0xPxaAgQU5EUklKQQorTUlLTE/FoCBBTlRBTAorTUlLTE/FoCBESU1JVFJJSkUKK01JS0xPxaAgSkFOS08KK01JS0xPxaAgSkVMSVNBVkVUQQorTUlLTE/FoCBKVUxJSkFOCitNSUtMT8WgIE5BTkRPUiBEUiBMRUtBUgorTUlLTE/FoCBTVEVWQU4KK01JS0xPxaAgVkxBRElNSVIKK01JS0xPVklDIEpBTgorTUlLTE9WSUMgTUlMT1NMQVYKK01JS09MQSDEkFVSQQorTUlLT0xBQ0kgTEVQT1NBVkEKK01JS09MRUNLSSBTTEFWSUNBCitNSUtPTEnEhiBBTEVLU0FOREFSCitNSUtPViBKT1ZBTktBCitNSUtPViBNRVRPREkgRFIgTEVLQVIKK01JS09WIE1PTUlSCitNSUtPVknEhiDEkE9SxJBFCitNSUtPVknEhiDEkE9SxJBFCitNSUtPVknEhiDEkFVSQQorTUlLT1ZJxIYgQUxFS1NBTkRBUgorTUlLT1ZJxIYgQUxFS1NBTkRBUgorTUlLT1ZJxIYgREFOSUxPCitNSUtPVknEhiBEQVJJTktBCitNSUtPVknEhiBERUpBTgorTUlLT1ZJxIYgREVTQU5LQQorTUlLT1ZJxIYgSkVMRU5BCitNSUtPVknEhiBMQVpBUgorTUlLT1ZJxIYgTEpJTEpBTkEKK01JS09WScSGIE1JTEVOQQorTUlLT1ZJxIYgTUlPRFJBRworTUlLT1ZJxIYgTUxBREVOCitNSUtPVknEhiBNT03EjElMTyBEUiBQUkFWTklLCitNSUtPVknEhiBOQURBCitNSUtPVknEhiBOSU5PU0xBVgorTUlLT1ZJxIYgUEFWQQorTUlLT1ZJxIYgUlXFvUlDQQorTUlLT1ZJxIYgU0xBVktPCitNSUtPVknEhiBTTkXFvUFOQQorTUlLT1ZJxIYgU1JFRE9KRQorTUlLT1ZJTE9WScSGIElWQU4KK01JS1NBVCBKT8W9RUYKK01JS1XFoCBBTsSQRUxLQQorTUlLVcWgIE1JTEtBCitNSUtVxaAgTUlSSkFOQQorTUlLVUxFU0tPIERVxaBBTgorTUlLVUxFU0tPIFNBVk8gRElQTCBJTkcKK01JS1VMScSGIMWgSU1FCitNSUtVTEnEhiBCSUxKQU5BCitNSUtVTEnEhiBCTEHFvQorTUlLVUxJxIYgRURJVAorTUlLVUxJxIYgSVZBTgorTUlLVUxJxIYgSVZBTgorTUlLVUxJxIYgSVZBCitNSUtVTEnEhiBKRUxJU0FWRVRBCitNSUtVTEnEhiBMT1ZSRQorTUlLVUxJxIYgTUFSQQorTUlLVUxJxIYgTUlMRQorTUlLVUxJxIYgTUlMScSGCitNSUtVTElOQUMgTUFUSUpBCitNSUtVTElOQUMgUkVORVRBCitNSUtVTElOQUMgU0xBVklDQQorTUlMxIxJxIYgRFJBR0FOCitNSUzEjEnEhiBKT1ZBTgorTUlMQcSMScSGIMW9RUxKS08KK01JTEHEjEnEhiBCT1JJVk9KRQorTUlMQcSMScSGIEJSQU5JU0xBVgorTUlMQcSMScSGIEJSQU5LTworTUlMQcSMScSGIERVxaBBTgorTUlMQcSMScSGIElWQU4KK01JTEHEjEnEhiBMSlVCT01JUgorTUlMQcSMScSGIE1BxaBBTgorTUlMQcSMScSGIE1JTEVOS08KK01JTEHEjEnEhiBTUkJPU0xBVgorTUlMQcSMScSGIFNWRVRPWkFSCitNSUxBxIxJxIYgWk9SSUNBCitNSUxBxaAgRFJBR0FOCitNSUxBxaAgRFXFoEFOS0EKK01JTEHFoEVWScSGIFpPUktBCitNSUxBxaBJTk9WScSGIEpPVkFOCitNSUxBxaBJTk9WScSGIExKVUJPTUlSCitNSUxBxaBJTk9WScSGIE1JxIZVTgorTUlMQcWgSU5PVknEhiBNSUxPUkFECitNSUxBxaBJTk9WScSGIE1JUkpBTkEKK01JTEHFoElOT1ZJxIYgTUlSS08KK01JTEHFoElOT1ZJxIYgTUlSS08KK01JTEHFoElOT1ZJxIYgUkFERQorTUlMQcWgSU5PVknEhi1TVEFOT0pFVknEhiBMSklMSkFOQQorTUlMQcWgSU5PVknEhiBWVUtPTUFOCitNSUxBxaBJTk9WScSGIFpMQVRPSkEKK01JTEFEScSGIMSMRURBCitNSUxBREnEhiBET0JST01JUgorTUlMQURJxIYgUEVUQVIKK01JTEFESU5PU0tJIExFVktPCitNSUxBRElOT1Ygxb1BUktPCitNSUxBRElOT1Ygxb1JVktPCitNSUxBRElOT1YgQk/FvUlEQVIKK01JTEFESU5PViBEQU5JQ0EKK01JTEFESU5PViBEQU5JQ0EKK01JTEFESU5PViBEVcWgQU5LQQorTUlMQURJTk9WIERVxaBBTgorTUlMQURJTk9WIEpPQ0EKK01JTEFESU5PViBKT1ZBTgorTUlMQURJTk9WIEpPVkFOCitNSUxBRElOT1YgSk9WQU4KK01JTEFESU5PViBKT1ZJQ0EKK01JTEFESU5PViBMSlVCSUNBCitNSUxBRElOT1YgTUFSSUpBCitNSUxBRElOT1YgTUlMQU4KK01JTEFESU5PViBNSUxBTgorTUlMQURJTk9WIE1JTEVOQQorTUlMQURJTk9WIE1JTEVOS08KK01JTEFESU5PViBNSUxPVkFOIERJUEwgSU5HCitNSUxBRElOT1YgTUlMT1ZBTgorTUlMQURJTk9WIE5BREEKK01JTEFESU5PViBOT1ZBSworTUlMQURJTk9WIFJBRElWT0oKK01JTEFESU5PViBSQURPVkFOCitNSUxBRElOT1YgU0xBVklDQQorTUlMQURJTk9WIFNSQklOS08KK01JTEFESU5PViBTVkVUT1pBUgorTUlMQURJTk9WIFNWRVRPWkFSCitNSUxBRElOT1YgVElIT01JUgorTUlMQURJTk9WIFZFU05BCitNSUxBRElOT1YgVkpFUkEKK01JTEFESU5PVknEhiDFvUlWQURJTiBESVBMIElORworTUlMQURJTk9WScSGIMW9SVZPSklOCitNSUxBRElOT1ZJxIYgxJBPUsSQRQorTUlMQURJTk9WScSGIEFMRUtTQU5EQVIKK01JTEFESU5PVknEhiBBTEVLU0FOREFSCitNSUxBRElOT1ZJxIYgQk/FvUlEQVIKK01JTEFESU5PVknEhiBCUkFOSU1JUgorTUlMQURJTk9WScSGIEJSQU5LTworTUlMQURJTk9WScSGIERBTUlSCitNSUxBRElOT1ZJxIYgRElWTkEKK01JTEFESU5PVknEhiBEUkFHQU4KK01JTEFESU5PVknEhiBEUkFHQU4KK01JTEFESU5PVknEhiBEUkFHScWgQQorTUlMQURJTk9WScSGIERSQUdPTUlSCitNSUxBRElOT1ZJxIYgRFJBR09TTEFWCitNSUxBRElOT1ZJxIYgRFXFoEFOCitNSUxBRElOT1ZJxIYgSk9WQU4KK01JTEFESU5PVknEhiBKT1ZBTgorTUlMQURJTk9WScSGIExKVUJJQ0EKK01JTEFESU5PVknEhiBMSlVCSU5LQQorTUlMQURJTk9WScSGIE1BUktPCitNSUxBRElOT1ZJxIYgTUlIQUpMTworTUlMQURJTk9WScSGIE1JTEFOCitNSUxBRElOT1ZJxIYgTUlMQU4KK01JTEFESU5PVknEhiBNSUxBTgorTUlMQURJTk9WScSGIE1JTEUKK01JTEFESU5PVknEhiBNSUxPVkFOCitNSUxBRElOT1ZJxIYgTUlST1NMQVYKK01JTEFESU5PVknEhiBOT1ZJQ0EKK01JTEFESU5PVknEhiBQUkVEUkFHCitNSUxBRElOT1ZJxIYgUkFETUlMTworTUlMQURJTk9WScSGIFJBRE9TTEFWCitNSUxBRElOT1ZJxIYgU0xBVktPCitNSUxBRElOT1ZJxIYgU0xPQk9EQU5LQQorTUlMQURJTk9WScSGIFNMT0JPREFOCitNSUxBRElOT1ZJxIYgU0xPQk9EQU4KK01JTEFESU5PVknEhiBTVkVUT01JUgorTUlMQURJTk9WScSGIFRPREUKK01JTEFESU5PVknEhiBWRVJBCitNSUxBSyDEkE9SxJBFCitNSUxBSyBEQVJJTktBCitNSUxBSyBEVcWgQU4KK01JTEFLIEpFTEVOQQorTUlMQUsgSk9WQU4KK01JTEFLIEpPVkFOCitNSUxBSyBLQVRJQ0EKK01JTEFLIExBWkFSCitNSUxBSyBNSUxBTgorTUlMQUsgTUlMQU4KK01JTEFLIE1JTEVOS08KK01JTEFLIE1JTE/FoAorTUlMQUsgUkFET1NMQVYKK01JTEFLIFNBVkEKK01JTEFLT1YgSkVMRU5BIERSIFBST0YKK01JTEFLT1YgTEpVQklDQSBEUgorTUlMQUtPViBNSVJKQU5BCitNSUxBS09WScSGIMSQT1LEkEUKK01JTEFLT1ZJxIYgxJBVUkHEkAorTUlMQUtPVknEhiDEkFVSTworTUlMQUtPVknEhiBCT1NJTEpLQQorTUlMQUtPVknEhiBEQU5JQ0EKK01JTEFLT1ZJxIYgRFJBR0lDQQorTUlMQUtPVknEhiBEVcWgQU4KK01JTEFLT1ZJxIYgR09SQU4KK01JTEFLT1ZJxIYgTUlMQU4KK01JTEFLT1ZJxIYgTUlMS0EKK01JTEFLT1ZJxIYgTUxBREVOCitNSUxBS09WScSGIFJBRE1JTEEKK01JTEFLT1ZJxIYgUkFUT01JUgorTUlMQUtPVknEhiBURU9ET1IKK01JTEFLT1ZJxIYgVk9KSVNMQVYKK01JTEFLT1ZJxIYgVk9KTworTUlMQUtPVknEhiBWVUtJQ0EKK01JTEFLT1ZJxIYgWk9SQU4KK01JTEFOS08gU0xBVktPCitNSUxBTktPViDFvUlWQQorTUlMQU5LT1Ygxb1JVkEKK01JTEFOS09WIMSQT1LEkEUKK01JTEFOS09WIEJSQU5JU0xBVgorTUlMQU5LT1YgQ1ZFVEEKK01JTEFOS09WIERVxaBBTgorTUlMQU5LT1YgSVZBTgorTUlMQU5LT1YgSkVMRU5BCitNSUxBTktPViBKVUxJSkFOQQorTUlMQU5LT1YgTEFaQVIKK01JTEFOS09WIE1BUktPCitNSUxBTktPViBNSUxFTktPCitNSUxBTktPViBNSUxJVk9KCitNSUxBTktPViBNSUxLTworTUlMQU5LT1YgU0xBVklNSVIKK01JTEFOS09WIFNPRklKQQorTUlMQU5LT1YgU1RBTklNSVIKK01JTEFOS09WIFNURVZBTgorTUlMQU5LT1ZJxIYgxJBPUsSQRQorTUlMQU5LT1ZJxIYgxJBPUsSQRQorTUlMQU5LT1ZJxIYgQU5BCitNSUxBTktPVknEhi1DT0tPVknEhiBNSVJKQU5BCitNSUxBTktPVknEhiBEUkFHT0xKVUIKK01JTEFOS09WScSGIEdPUkFOCitNSUxBTktPVknEhiBHT1JBTgorTUlMQU5LT1ZJxIYgSUxJTktBCitNSUxBTktPVknEhiBMQVpBUgorTUlMQU5LT1ZJxIYgTUlMQU5LTworTUlMQU5LT1ZJxIYgTUlMQU4KK01JTEFOS09WScSGIE1JTEVWQQorTUlMQU5LT1ZJxIYgUkFET1NMQVYKK01JTEFOS09WScSGIFNMT0JPREFOCitNSUxBTktPVknEhiBaT1JBCitNSUxBTk9WIEFOSUNBCitNSUxBTk9WIEFOS0EKK01JTEFOT1YgQk9HREFOCitNSUxBTk9WIEJPUklTTEFWQQorTUlMQU5PViBET0JSSVZPSgorTUlMQU5PViBKRUxJQ0EKK01JTEFOT1YgTEpVQknFoEEKK01JTEFOT1YgTUlMQU4KK01JTEFOT1YgTUlPRFJBRworTUlMQU5PViBNSVJKQU5BCitNSUxBTk9WIE1MQURFTgorTUlMQU5PViBQRVJTSURBCitNSUxBTk9WIFJBRElWT0oKK01JTEFOT1YgU0FWS0EKK01JTEFOT1YgU1ZFVE9aQVIKK01JTEFOT1YgVlVLT1NBVkEKK01JTEFOT1ZJxIYgxb1FTEpLTworTUlMQU5PVknEhiDFvUlWT1JBRAorTUlMQU5PVknEhiDFvUlWT1RJSkUKK01JTEFOT1ZJxIYgQUxFS1NBTkRBUgorTUlMQU5PVknEhiBCT8WgS08KK01JTEFOT1ZJxIYgQk/FvUlEQVIKK01JTEFOT1ZJxIYgQk9HREFOCitNSUxBTk9WScSGIEJSQU5LTyBEUgorTUlMQU5PVknEhiBCUkFOS08KK01JTEFOT1ZJxIYgQ1ZJSkVUSU4KK01JTEFOT1ZJxIYgREFNSkFOS0EKK01JTEFOT1ZJxIYgREVTQU5LQQorTUlMQU5PVknEhiBET05LQQorTUlMQU5PVknEhiBEUkFHQU4KK01JTEFOT1ZJxIYgRFJBR0FOCitNSUxBTk9WScSGIERSQUdBTgorTUlMQU5PVknEhiBEUkFHSUNBCitNSUxBTk9WScSGIERSQUdPCitNSUxBTk9WScSGIERVxaBBTgorTUlMQU5PVknEhiBHT1JBTgorTUlMQU5PVknEhiBHT1JBTgorTUlMQU5PVknEhiBJTElKQQorTUlMQU5PVknEhiBJTElKQQorTUlMQU5PVknEhiBKQVNNSU5BCitNSUxBTk9WScSGIEtBVElDQQorTUlMQU5PVknEhiBMSklMSkFOQQorTUlMQU5PVknEhiBMSlVCScWgQQorTUlMQU5PVknEhiBMSlVCSUNBCitNSUxBTk9WScSGIE1BUlRBCitNSUxBTk9WScSGIE1JSE8KK01JTEFOT1ZJxIYgTUlMQU5BCitNSUxBTk9WScSGIE1JTEVOS08KK01JTEFOT1ZJxIYgTUlMRU5LTworTUlMQU5PVknEhiBNSUxJSkEKK01JTEFOT1ZJxIYgTUlMSVNBVgorTUlMQU5PVknEhiBNSUxJU0FWCitNSUxBTk9WScSGIE1JTE9KRQorTUlMQU5PVknEhiBNSUxPUkFECitNSUxBTk9WScSGIE1JTE9SQUQKK01JTEFOT1ZJxIYgTUlPRFJBRworTUlMQU5PVknEhiBNTEFERU4KK01JTEFOT1ZJxIYgTkFEQQorTUlMQU5PVknEhi1QRVRSQcWgRVZJxIYgRFJBR0lDQQorTUlMQU5PVknEhiBSQURPU0xBVgorTUlMQU5PVknEhiBSQURPVkFOCitNSUxBTk9WScSGIFNBxaBBCitNSUxBTk9WScSGIFNMQVZPTEpVQgorTUlMQU5PVknEhiBTTE9CT0RBTgorTUlMQU5PVknEhiBTVkVUT01JUgorTUlMQU5PVknEhiBWSUtUT1JJSkEKK01JTEFOT1ZJxIYgVklUS08KK01JTEFOT1ZJxIYgVkxBRElNSVIKK01JTEFOT1ZJxIYgVkxBRElNSVIKK01JTEFOT1ZJxIYgVlVKTworTUlMQU5PVknEhiBaT1JBTgorTUlMQU5PVknEhiBaT1JBTgorTUlMQU5PVknEhiBaT1JBCitNSUxBTk9WScSGIFpPUktBCitNSUxBUknEhiBJVkFOCitNSUxBVE9WScSGIERBTklMTworTUlMQVRPVknEhiBKT1ZBTktBCitNSUxBVE9WScSGIFZMQURJTUlSCitNSUxFxaBFViBNSUxJQ0EKK01JTEXFoEVWScSGIE9CUkFECitNSUxFQyBET1JPVEVBCitNSUxFQyBJTE9OS0EKK01JTEVJIERSQUdVVElOCitNSUxFSSBKQU5PxaAKK01JTEVJIFRPTUlTTEFWCitNSUxFS8WgScSGIEJPR0RBTgorTUlMRUtJxIYgRFXFoEFOCitNSUxFS0nEhiBNSUxPTUlSCitNSUxFS0nEhiBOSUtPTEEKK01JTEVLScSGIFNURVZBTgorTUlMRUtJxIYgVVJPxaAKK01JTEVOS09WScSGIMW9QVJLTworTUlMRU5LT1ZJxIYgxb1JVk9KSU4KK01JTEVOS09WScSGIMSQT1LEkEUKK01JTEVOS09WScSGIMSQVVLEkElOQQorTUlMRU5LT1ZJxIYgQUxFS1NBTkRBUgorTUlMRU5LT1ZJxIYtQU5UScSGIExBWkFSCitNSUxFTktPVknEhi1CSkVMQUpBQyBNSUxBTktBCitNSUxFTktPVknEhiBCT8W9SURBUgorTUlMRU5LT1ZJxIYgQk9HT01JUgorTUlMRU5LT1ZJxIYgQk9SSVZPSkUKK01JTEVOS09WScSGIEJSQU5JU0xBVgorTUlMRU5LT1ZJxIYgQlJBTklTTEFWCitNSUxFTktPVknEhiBCUkFOS08KK01JTEVOS09WScSGIEJSQVRJU0xBVgorTUlMRU5LT1ZJxIYgQlJBVElTTEFWCitNSUxFTktPVknEhiBEQVJJTktBCitNSUxFTktPVknEhiBET0JSSUxBCitNSUxFTktPVknEhiBET0JSSUxBCitNSUxFTktPVknEhiBET0JSSVZPSkUKK01JTEVOS09WScSGIERSQUdBTiBEUgorTUlMRU5LT1ZJxIYgRFJBR0/FoAorTUlMRU5LT1ZJxIYgRFJBR09MSlVCIERSCitNSUxFTktPVknEhiBEUkFHT1NMQVYKK01JTEVOS09WScSGIERSQUdPU0xBVgorTUlMRU5LT1ZJxIYgRFXFoEFOCitNSUxFTktPVknEhiBEVcWgQU4KK01JTEVOS09WScSGIEVSxb1JS0EKK01JTEVOS09WScSGIEdST1pEQU5BCitNSUxFTktPVknEhiBJTE9OS0EKK01JTEVOS09WScSGIElSRU5BCitNSUxFTktPVknEhiBKRUxJQ0EKK01JTEVOS09WScSGIEpFVlRPCitNSUxFTktPVknEhiBKVUdPU0xBVgorTUlMRU5LT1ZJxIYgSlVTVElOQQorTUlMRU5LT1ZJxIYgS09WSUxKS0EKK01JTEVOS09WScSGIEtSU1RBTkEKK01JTEVOS09WScSGIExKSUxKQU5BCitNSUxFTktPVknEhiBMSklMSkFOQQorTUlMRU5LT1ZJxIYgTUlMSUpBTgorTUlMRU5LT1ZJxIYgTUlMSVNBVgorTUlMRU5LT1ZJxIYgTUlMT1JBRAorTUlMRU5LT1ZJxIYgTUlMT1JBRAorTUlMRU5LT1ZJxIYgTUlMT1NBVgorTUlMRU5LT1ZJxIYgTUlMVVRJTgorTUlMRU5LT1ZJxIYgTUlPRFJBRworTUlMRU5LT1ZJxIYgTUlST1NMQVYKK01JTEVOS09WScSGIE1JUk9TTEFWCitNSUxFTktPVknEhiBNT03EjElMTworTUlMRU5LT1ZJxIYgTkVCT0rFoEEKK01JTEVOS09WScSGIE5FTkFECitNSUxFTktPVknEhiBOScSGSUZPUgorTUlMRU5LT1ZJxIYgUEFVTgorTUlMRU5LT1ZJxIYgUFJFRFJBRworTUlMRU5LT1ZJxIYgUkFESVNBVgorTUlMRU5LT1ZJxIYgUkFET01JUgorTUlMRU5LT1ZJxIYgUkFET1NMQVYKK01JTEVOS09WScSGIFJBRE9WQU4KK01JTEVOS09WScSGIFNBVkEKK01JTEVOS09WScSGIFNMQVZPTEpVQgorTUlMRU5LT1ZJxIYgU05Fxb1BTkEKK01JTEVOS09WScSGIFNSRVRFTgorTUlMRU5LT1ZJxIYgU1RPSkFOS0EKK01JTEVOS09WScSGIFNWRVRJU0xBVgorTUlMRU5LT1ZJxIYgU1ZFVE9NSVIKK01JTEVOS09WScSGIFRJSE9NSVIKK01JTEVOS09WScSGIFZFU0VMSU5LQQorTUlMRU5LT1ZJxIYgVklUT01JUgorTUlMRU5LT1ZJxIYgVkxBREFOCitNSUxFTktPVknEhiBaT1JJQ0EKK01JTEVOS09WScSGIFpPUktBCitNSUxFTktPVlNLSSBCTEFHT0pFCitNSUxFTktPVlNLSSBNSUxJQ0EKK01JTEVOT1ZJxIYgxb1JVkEKK01JTEVOT1ZJxIYtQkVLScSGIE1JUkpBTkEKK01JTEVOT1ZJxIYgQlJBTktPCitNSUxFTk9WScSGIE1JTE9SQUQKK01JTEVOT1ZJxIYgT0xHQQorTUlMRU5PVknEhiBQUkVEUkFHCitNSUxFTlRJSkVWScSGIMW9SVZPUkFECitNSUxFTlRJSkVWScSGIFpEUkFWS08KK01JTEVSIEJBUkJBUkEKK01JTEVSIEVSxb1FQkVUCitNSUxFUiBGUkFOSkEKK01JTEVSIElNUkUgRFIgTEVLQVIKK01JTEVSIElWQU5LQQorTUlMRVIgSkVMRU5BCitNSUxFUiBKRUxJQ0EKK01JTEVSIEtBUkxPCitNSUxFUiBNQVJJSkEKK01JTEVSIE1JSEFKTE8KK01JTEVSIE9UT0tBUgorTUlMRVIgWkxBVEtPCitNSUxFU0tJIEFUQU5BU0lKRQorTUlMRVRBIE5JS09MQQorTUlMRVRBxaBLSSBCT1JJVk9KCitNSUxFVEHFoEtJIE1JTEUKK01JTEVUScSGIMW9SVZLTworTUlMRVRJxIYgxb1JVk9UQQorTUlMRVRJxIYgxJBPUsSQRQorTUlMRVRJxIYgQUxFS1NBTkRSQQorTUlMRVRJxIYgQU5BCitNSUxFVEnEhiBCT8W9QQorTUlMRVRJxIYgQk9SScWgQQorTUlMRVRJxIYgQlJBTklTTEFWCitNSUxFVEnEhiBET0JST1NBVgorTUlMRVRJxIYgRFJBR0lDQQorTUlMRVRJxIYgRFXFoEFOCitNSUxFVEnEhiBEVcWgQU4KK01JTEVUScSGIERVxaBBTgorTUlMRVRJxIYgR09KS08KK01JTEVUScSGIEdWT1pERU4KK01JTEVUScSGIElMSUpBCitNSUxFVEnEhiBJVklDQQorTUlMRVRJxIYgTEpVQklDQQorTUlMRVRJxIYgTEpVQklTQVYKK01JTEVUScSGIE1JTElDQQorTUlMRVRJxIYgTUlMSVZPSgorTUlMRVRJxIYgTUlMT0pFCitNSUxFVEnEhiBNSVRBCitNSUxFVEnEhiBOQURBCitNSUxFVEnEhiBOSUtPTEEKK01JTEVUScSGIE9MR0EKK01JTEVUScSGIFBFVEFSCitNSUxFVEnEhiBSQURFCitNSUxFVEnEhiBSQURPxaAKK01JTEVUScSGIFJBRE9KS0EKK01JTEVUScSGIFJBRE9TTEFWCitNSUxFVEnEhiBSQU5LTworTUlMRVRJxIYgU0VWRVJJTkEKK01JTEVUScSGIFNMQVZLTyBEUiBMRUtBUgorTUlMRVRJxIYgU0xBVktPCitNSUxFVEnEhiBTTEFWT0xKVUIKK01JTEVUScSGIFNMT0JPREFOCitNSUxFVEnEhiBTTE9CT0RBTgorTUlMRVRJxIYgU09OSkEKK01JTEVUScSGIFNURVZBTgorTUlMRVRJxIYgVkVMRQorTUlMRVRJxIYgVkVMSUJPUgorTUlMRVRJxIYgVkVMSUJPUgorTUlMRVRJxIYgVkVMSU1JUgorTUlMRVRJxIYgVklET1NBVkEKK01JTEVUScSGIFpEUkFWS08KK01JTEVUSUNLSSBSQURBCitNSUxFVElDS0kgWk9SS0EKK01JTEVUSU4gREFOQQorTUlMRVRJTiBNSVJKQU5BCitNSUxFVElOIE5JS09MQQorTUlMRVRJTiBSQURJVk9KCitNSUxFVElOIFNWRVRPWkFSIERJUEwgT0VDCitNSUxFVE9WScSGIFNMQVZLTworTUlMRVVTTknEhiBEUkFHQU4KK01JTEVVU05JxIYgTUFSS08KK01JTEVVU05JxIYgTkFEQQorTUlMRVVTTknEhiBOQURBCitNSUxFVVNOScSGIFBFVEFSCitNSUxFViBQRVRBUgorTUlMRVZTS0kgxJBPUsSQRQorTUlMSEFOUyBTVEFOSVNMQVYKK01JTEnEjEVWScSGIMSQVVJBCitNSUxJxIxFVknEhiBBUkFOS0EKK01JTEnEjEVWScSGIEJSQU5LTworTUlMScSMRVZJxIYgRFJBR0lOSkEKK01JTEnEjEVWScSGIERVxaBBTgorTUlMScSMRVZJxIYgSk9WQU4KK01JTEnEjEVWScSGIEtBVElDQQorTUlMScSMRVZJxIYgTUlMQU4KK01JTEnEjEVWScSGIE1JTEVOS08KK01JTEnEjEVWScSGIE1JTElDQQorTUlMScSMRVZJxIYgTUlMSVZPSgorTUlMScSMRVZJxIYgTUlMS0FOCitNSUxJxIxFVknEhiBNTEFERU4KK01JTEnEjEVWScSGIE5FTkFECitNSUxJxIxFVknEhiBOT1ZJQ0EKK01JTEnEjEVWScSGIFBBVkEKK01JTEnEjEVWScSGIFBFUk8KK01JTEnEjEVWScSGIFNUQU5JTUlSCitNSUxJxIxFVknEhiBTVEVWQU4KK01JTEnEjEVWScSGIFRPTUlTTEFWCitNSUxJxIxJxIYgxb1BUktPCitNSUxJxIxJxIYgQUxFS1NBTkRBUgorTUlMScSMScSGIEFOQQorTUlMScSMScSGIEFORFJJSkEKK01JTEnEjEnEhiBBTktBCitNSUxJxIxJxIYgQk9SSVNMQVYKK01JTEnEjEnEhiBCUkFOS08KK01JTEnEjEnEhiBEUkFHSUNBCitNSUxJxIxJxIYgRFJBR09NSVIKK01JTEnEjEnEhiBEVcWgQU4KK01JTEnEjEnEhiBKRUxJQ0EKK01JTEnEjEnEhiBKT1ZBTktBCitNSUxJxIxJxIYgSk9WQU4KK01JTEnEjEnEhiBLQVRJQ0EKK01JTEnEjEnEhiBMSlVCSU5LQQorTUlMScSMScSGIE1BUklOS08KK01JTEnEjEnEhiBNSUhBSkxPCitNSUxJxIxJxIYgTUlMT8WgCitNSUxJxIxJxIYgTUlSSkFOQQorTUlMScSMScSGIFJBRE9WQU4KK01JTEnEjEnEhiBSQUpLTworTUlMScSMScSGIFNURVZBTgorTUlMScSMScSGIFRJTEtBCitNSUxJxIxJxIYgVkFTQQorTUlMScWgScSGIMSQT1LEkEUKK01JTEnFoEnEhiBEVcWgQU5LQQorTUlMScWgScSGIE5FQk9KxaBBCitNSUxJxIYgxIxFRE9NSVIKK01JTEnEhiDEjEVET01JUgorTUlMScSGIMW9SUtBCitNSUxJxIYgxb1JVktPCitNSUxJxIYgxb1JVk9NSVIKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQVVJJQ0EKK01JTEnEhiBBRElMQQorTUlMScSGIEFMRUtTQU5EQVIKK01JTEnEhiBBTEVLU0FORFJBCitNSUxJxIYgQU7EkEVMSUpBCitNSUxJxIYgQk/FvUlEQVIgRFIKK01JTEnEhiBCT8W9SURBUgorTUlMScSGIEJPxb1PCitNSUxJxIYgQk9HREFOCitNSUxJxIYgQk9KQU5BCitNSUxJxIYgQk9SSVZPSkUKK01JTEnEhiBCT1JJVk9KCitNSUxJxIYgQlJBTklTTEFWCitNSUxJxIYgQlJBTklTTEFWCitNSUxJxIYgQlJBTklTTEFWCitNSUxJxIYgQlJBTktBCitNSUxJxIYgQlJBTktPCitNSUxJxIYgQlJBTktPCitNSUxJxIYgQlJBVElTTEFWCitNSUxJxIYgREFOSUNBCitNSUxJxIYgREFOSUxLQQorTUlMScSGIERBTklMS0EKK01JTEnEhiBEQU5JTE8KK01JTEnEhiBEQVJBCitNSUxJxIYgRFJBR0FOCitNSUxJxIYgRFJBR0FOCitNSUxJxIYgRFJBR0FOCitNSUxJxIYgRFJBR0lDQQorTUlMScSGIERSQUdJQ0EKK01JTEnEhiBEUkFHT01JUgorTUlMScSGIERSQUdPTUlSCitNSUxJxIYgRFJBR09TTEFWCitNSUxJxIYgRFXFoEFOS0EKK01JTEnEhiBEVcWgQU5LQQorTUlMScSGIERVxaBBTgorTUlMScSGIERVxaBBTgorTUlMScSGIERVxaBBTgorTUlMScSGIERVxaBBTgorTUlMScSGIEVMSVpBQkVUQQorTUlMScSGIEVNSUxJSkEKK01JTEnEhiBFTUlMSUpBCitNSUxJxIYgRVZBCitNSUxJxIYgRVZBCitNSUxJxIYgRVZJQ0EKK01JTEnEhiBGRVJFTkMKK01JTEnEhiBHQVZSQQorTUlMScSGIElMSUpBCitNSUxJxIYtSkFHT0RJTlNLSSBNSUxBTgorTUlMScSGIEpBTktPCitNSUxJxIYgSkVMRU5BCitNSUxJxIYgSkVMSUNBCitNSUxJxIYgSkVMS0EKK01JTEnEhiBKT1ZBTgorTUlMScSGIEpPVkFOCitNSUxJxIYgSk9WQU4KK01JTEnEhiBKT1ZBCitNSUxJxIYgSk9WTworTUlMScSGIEpPVk8KK01JTEnEhiBKVUxLQQorTUlMScSGIEtBVElDQQorTUlMScSGIEtSU1RPCitNSUxJxIYgS1NFTklKQQorTUlMScSGIExBWkFSCitNSUxJxIYgTEpJTEpBTkEKK01JTEnEhiBMSlVCScWgQQorTUlMScSGIExKVUJJQ0EKK01JTEnEhiBMSlVCT01JUiBESVBMIElORworTUlMScSGIExKVUJPTUlSCitNSUxJxIYgTEpVQk9NSVIKK01JTEnEhiBMSlVCT01JUgorTUlMScSGIE1BUkEKK01JTEnEhiBNQVJJSkEKK01JTEnEhiBNQVJJSkEKK01JTEnEhiBNQVJJSkEKK01JTEnEhiBNSUxBTktBCitNSUxJxIYgTUlMQU4KK01JTEnEhiBNSUxFTktPCitNSUxJxIYgTUlMSUNBCitNSUxJxIYgTUlMSUNBCitNSUxJxIYgTUlMT8WgCitNSUxJxIYgTUlMT8WgCitNSUxJxIYgTUlMT1JBRAorTUlMScSGIE1JTE9TQVYKK01JTEnEhiBNSUxVVElOCitNSUxJxIYgTUlPRFJBRworTUlMScSGIE1JUkpBTkEgRElQTCBPRUMKK01JTEnEhiBNSVJKQU5BCitNSUxJxIYgTUlST1NMQVYKK01JTEnEhiBNSVRBCitNSUxJxIYgTUxBREVOCitNSUxJxIYgTkFEQQorTUlMScSGIE5FREVMSktPCitNSUxJxIYgTklLT0xBCitNSUxJxIYgTklLT0xBCitNSUxJxIYgTk9WQUsKK01JTEnEhiBOT1ZBSworTUlMScSGIFBBTlRBCitNSUxJxIYgUEFWTEUKK01JTEnEhiBQRVJBCitNSUxJxIYgUEVUQVIKK01JTEnEhiBQRVRBUgorTUlMScSGIFBST0tBCitNSUxJxIYgUkFEQQorTUlMScSGIFJBREUKK01JTEnEhiBSQURJVk9KRQorTUlMScSGIFJBRE1JTEEKK01JTEnEhiBSQURPSktBCitNSUxJxIYgUkFET01JUgorTUlMScSGIFJBTktPCitNSUxJxIYgUlXFvUEKK01JTEnEhiBTQU5EUkEKK01JTEnEhiBTQVZBCitNSUxJxIYgU0xBVklDQQorTUlMScSGIFNMQVZJQ0EKK01JTEnEhiBTTEFWS0EKK01JTEnEhiBTTEFWS08KK01JTEnEhiBTTEFWVUoKK01JTEnEhiBTT0ZJSkEKK01JTEnEhiBTVEVWQU4KK01JTEnEhiBTVEVWQU4KK01JTEnEhiBTVEVWQU4KK01JTEnEhiBTVkVUTEFOQQorTUlMScSGIFNWRVRPWkFSCitNSUxJxIYgU1ZFVE9aQVIKK01JTEnEhiBURU9ET1JBCitNSUxJxIYgVE9ET1IKK01JTEnEhiBUT0RPUgorTUlMScSGIFRPTUlTTEFWCitNSUxJxIYgVE9NSVNMQVYKK01JTEnEhiBVUk/FoAorTUlMScSGIFZBU0EKK01JTEnEhiBWRUxJTktBCitNSUxJxIYgVkVSQQorTUlMScSGIFZFUkEKK01JTEnEhiBWRVJJQ0EKK01JTEnEhiBWTEFESUNBCitNSUxJxIYgVkxBRE8KK01JTEnEhiBWVUtJQ0EKK01JTEnEhiBaRFJBVktPCitNSUxJxIYgWk9SQU4KK01JTEnEhiBaT1JBTgorTUlMScSGIFpPUkFOCitNSUxJxIYgWk9SQQorTUlMScSGRVYgQk9SSVNMQVYKK01JTEnEhkVWIEJSQU5LTworTUlMScSGRVYgU0xBVktPCitNSUxJxIZFViBWQVNJTElKRQorTUlMScSGRVYgVklLRU5USUpFCitNSUxJxIZFVknEhiDFvUlWT1JBRAorTUlMScSGRVZJxIYgxJBPUsSQRQorTUlMScSGRVZJxIYgxJBPUsSQRQorTUlMScSGRVZJxIYgxJBVUkHEkAorTUlMScSGRVZJxIYgQk/FvUlEQVIKK01JTEnEhkVWScSGIEJPUknFoEEKK01JTEnEhkVWScSGIEJSQU5LTworTUlMScSGRVZJxIYgRFJBR0FOCitNSUxJxIZFVknEhiBEVcWgQU4KK01JTEnEhkVWScSGIERVxaBBTgorTUlMScSGRVZJxIYgR09KS08KK01JTEnEhkVWScSGIEdPUkRBTkEKK01JTEnEhkVWScSGIEtBVEFSSU5BCitNSUxJxIZFVknEhiBLQVRJQ0EKK01JTEnEhkVWScSGIEtTRU5JSkEgRFIgU1RPTUFUT0xPRworTUlMScSGRVZJxIYgTEpVQk9NSVIKK01JTEnEhkVWScSGIE1BUktPCitNSUxJxIZFVknEhiBNSUhBSUxPCitNSUxJxIZFVknEhiBNSUxJQ0EKK01JTEnEhkVWScSGIE1JTE9SQUQKK01JTEnEhkVWScSGIE1JTE9WQU4KK01JTEnEhkVWScSGIE1JT0RSQUcKK01JTEnEhkVWScSGIE1JT0RSQUcKK01JTEnEhkVWScSGIE1PTcSMSUxPCitNSUxJxIZFVknEhiBNT03EjElMTworTUlMScSGRVZJxIYgTkFUQcWgQQorTUlMScSGRVZJxIYgTklLT0xBCitNSUxJxIZFVknEhiBQQVZMRQorTUlMScSGRVZJxIYgUEVUQVIKK01JTEnEhkVWScSGIFJBRE1JTEEKK01JTEnEhkVWScSGIFJBSktPCitNSUxJxIZFVknEhiBTTEHEkEFOQQorTUlMScSGRVZJxIYgU0xBVklDQQorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU1BBU08KK01JTEnEhkVWScSGIFNUQU5BCitNSUxJxIZFVknEhiBTVEVWQU4KK01JTEnEhkVWScSGIFNURVZBTgorTUlMScSGRVZJxIYgU1ZFVElTTEFWCitNSUxJxIZFVknEhiBWRUxJxaBBCitNSUxJxIZFVknEhiBWRVJPTEpVQgorTUlMScSGRVZJxIYgVklUT01JUgorTUlMScSGRVZJxIYgVkxBRElNSVIKK01JTEnEhkVWScSGIFZVS09NSVIKK01JTElDIEtBUk9MSgorTUlMSURSQUcgS1JTVE8KK01JTElEUkFHT1ZJxIYgQk9SSVNMQVYKK01JTElEUkFHT1ZJxIYgTEFaQVIKK01JTElEUkFHT1ZJxIYgTUlMSVZPSkUKK01JTElEUkFHT1ZJxIYgTUlMT1JBRCBESVBMIElORworTUlMSURSQUdPVknEhiBNTEFERU4KK01JTElEUkFHT1ZJxIYgTkVERUxKS08KK01JTElEUkFHT1ZJxIYgU0xPQk9EQU4KK01JTElKQcWgLVBBVktPVknEhiBNQVJJSkEKK01JTElKQcWgRVZJxIYgxb1JVk9SQUQKK01JTElKQcWgRVZJxIYgQk/FoEtPCitNSUxJSkHFoEVWScSGIE1JTEFOCitNSUxJSkFOT1ZJxIYgxJBPUsSQRQorTUlMSUpBTk9WScSGIE1JTEFOCitNSUxJSkVWScSGIMSQVVJBxJAKK01JTElLScSGIERSQUdPSkUKK01JTElLScSGIFNJTUEKK01JTElOIMW9SVZBTgorTUlMSU4gQlJBTklTTEFWCitNSUxJTiBEVcWgQU4KK01JTElOIERVxaBBTgorTUlMSU4gSVZBTgorTUlMSU4gSk9WQU4KK01JTElOIE1JTEVOS08KK01JTElOIE1JTElDQQorTUlMSU4gTU9NSVIKK01JTElOIFJBRElWT0ogRFIKK01JTElOIFJBRElWT0oKK01JTElOIFNORcW9QU5BCitNSUxJTiBTVEVWQU4KK01JTElOIFNWRVRJU0xBVgorTUlMSU4gVk9KSVNMQVYgTk9WSU5BUgorTUlMSU4gWkRSQVZLTyBESVBMIElORworTUlMSU4gWk9SSUNBCitNSUxJTsSMScSGIMSMQVNMQVYKK01JTElOxIxJxIYgU1RPSkFOCitNSUxJTknEhiBSQURFTktPCitNSUxJTknEhiBSQUpLTworTUlMSU5LT1Ygxb1JVkFOCitNSUxJTktPViDFvUlWT0pJTgorTUlMSU5LT1YgQU7EkEVMS0EKK01JTElOS09WIEJPxb1BCitNSUxJTktPViBCUkFOSVNMQVYKK01JTElOS09WIEJSQU5JU0xBVgorTUlMSU5LT1YgQlJBTktPCitNSUxJTktPViBEQU5JTE8KK01JTElOS09WIERVxaBBTgorTUlMSU5LT1YgSVZBTgorTUlMSU5LT1YgSlVMS0EKK01JTElOS09WIExBWkFSCitNSUxJTktPViBMSlVCSUNBCitNSUxJTktPViBNSUxBTgorTUlMSU5LT1YgTUlMSUNBCitNSUxJTktPViBORU5BRAorTUlMSU5LT1YgTkVOQUQKK01JTElOS09WIE5JS09MQQorTUlMSU5LT1YgU0xPQk9EQU4KK01JTElOS09WIFZFUkEKK01JTElOS09WIFZFU0VMSU4KK01JTElOS09WIFZMQUpLTworTUlMSU5LT1YgWk9SQU4KK01JTElOS09WScSGIMSQT1LEkEUKK01JTElOS09WScSGIMSQT1LEkEUKK01JTElOS09WScSGIMSQT1LEkEUKK01JTElOS09WScSGIMSQVVJPCitNSUxJTktPVknEhiBCSUxKQU5BCitNSUxJTktPVknEhiBCT0pPCitNSUxJTktPVknEhiBCVURJTUlSCitNSUxJTktPVknEhiBEUkFHQU4KK01JTElOS09WScSGIERSQUdPU0xBVgorTUlMSU5LT1ZJxIYgRFXFoEFOCitNSUxJTktPVknEhiBEVcWgQU4KK01JTElOS09WScSGIERVxaBBTgorTUlMSU5LT1ZJxIYgRFXFoEFOCitNSUxJTktPVknEhiBFVEVMS0EKK01JTElOS09WScSGIElWQU4KK01JTElOS09WScSGIElWQU4KK01JTElOS09WScSGIElWQU4KK01JTElOS09WScSGIElWQU4KK01JTElOS09WScSGIEpPVkFOCitNSUxJTktPVknEhiBKT1ZJQ0EKK01JTElOS09WScSGIExKSUxKQU5BCitNSUxJTktPVknEhiBNQVJBCitNSUxJTktPVknEhiBNSUxBTgorTUlMSU5LT1ZJxIYgTUlMRU5BCitNSUxJTktPVknEhiBNSUxJxIYKK01JTElOS09WScSGIE1JTE9SQUQKK01JTElOS09WScSGIE5BREXFvURBCitNSUxJTktPVknEhiBOT1ZBSworTUlMSU5LT1ZJxIYgUEFOVEEKK01JTElOS09WScSGIFBFVEFSCitNSUxJTktPVknEhiBTTEFWS08KK01JTElOS09WScSGIFNMT0JPREFOCitNSUxJTktPVknEhiBTTE9CT0RBTgorTUlMSU5LT1ZJxIYgU0xPQk9EQU4KK01JTElOS09WScSGIFNNSUxKS0EKK01JTElOS09WScSGIFNSRVRPCitNSUxJTktPVknEhiBWSURBCitNSUxJTktPVknEhiBWTEFESVNMQVYKK01JTElOS09WScSGIFZPSkEKK01JTElOT1YgR0FWUkEKK01JTElOT1YgSkVMRU5LTworTUlMSU5PViBNSUxPUkFECitNSUxJTk9WIE1JUkpBTkEKK01JTElOT1YgTUlST1NMQVYKK01JTElOT1YgTkVWRU5BCitNSUxJTk9WIE5JS09MQQorTUlMSU5PViBSQURJVk9KCitNSUxJTk9WIFNMQVZLTworTUlMSU5PViBTVEVWQU4KK01JTElOT1YgU1ZFVElTTEFWCitNSUxJTk9WScSGIMW9QVJLTworTUlMSU5PVknEhiBCT8W9SURBUgorTUlMSU5PVknEhiBCT0dPTEpVQgorTUlMSU5PVknEhiBEUkFHQU4KK01JTElOT1ZJxIYgRFJBR0FOCitNSUxJTk9WScSGIEtTRU5JSkEKK01JTElOT1ZJxIYgTEFaTworTUlMSU5PVknEhiBMSlVCT01JUgorTUlMSU5PVknEhiBMSlVCT01JUgorTUlMSU5PVknEhiBNSUhBSkxPCitNSUxJTk9WScSGIE1JUk9TTEFWCitNSUxJTk9WScSGIE5JS09MQQorTUlMSU5PVknEhiBQRVRBUgorTUlMSU5PVknEhiBQRVRBUgorTUlMSU5PVknEhiBSQURPTUlSCitNSUxJTk9WScSGIFNBVkEKK01JTElOT1ZJxIYgU0xPQk9EQU4KK01JTElOT1ZJxIYgU1RFVkFOCitNSUxJTk9WScSGIFNURVZBCitNSUxJTk9WScSGIFRJTUEKK01JTElOT1ZJxIYgVkpFS09TTEFWCitNSUxJTlNLSSBBTEVLU0FOREFSCitNSUxJTlNLSSBBUlBBRAorTUlMSU5TS0kgRVLFvUVCRVQKK01JTElOU0tJIEdBQk9SCitNSUxJTlNLSSBHT1JEQU5BCitNSUxJTlNLSSBKRUxFTkEKK01JTElOU0tJIEpFTEVOQQorTUlMSU5TS0kgTEFESVNMQVYKK01JTElOU0tJIE1JSEFJTE8KK01JTElOU0tJIE5JS09MQQorTUlMSU5TS0kgVEVPRE9SCitNSUxJTlNLSSBWSUtUT1IKK01JTElOU0tJIFZJS1RPUgorTUlMSU5TS0kgWk9MVEFOCitNSUxJU0FWQUMgxb1JVkFOCitNSUxJU0FWTEpFVknEhiBEUkFHT01JUgorTUlMSVNBVkxKRVZJxIYgRFJBR09TTEFWIERSIFBST0YKK01JTElTQVZMSkVWScSGIEpPVkFOCitNSUxJU0FWTEpFVknEhiBKVUxJSkFOQQorTUlMSVNBVkxKRVZJxIYgTUlMQURJTgorTUlMSVNBVkxKRVZJxIYgTUlMQU4KK01JTElTQVZMSkVWScSGIE1JTE9SQUQKK01JTElTQVZMSkVWScSGIE1JUsSMRVRBCitNSUxJU0FWTEpFVknEhiBTVEFOSU1JUgorTUlMSVNBVkxKRVZJxIYgU1RBTklNSVIKK01JTElTQVZMSkVWScSGIFZMQURJTUlSCitNSUxJVk9KxIxFViBCT1JJU0xBVgorTUlMSVZPSsSMRVYgU1RFVkFOCitNSUxJVk9KxIxFVknEhiBBTEVLU0FOREFSCitNSUxJVk9KxaBBIExBWkFSCitNSUxJVk9KxaBJTiBKT1ZBTgorTUlMSVZPSsWgSU4gUEFKQQorTUlMSVZPSkVWIEFOSUNBCitNSUxJVk9KRVYgQk9SSVZPSgorTUlMSVZPSkVWIEdSQURPSkUKK01JTElWT0pFViBKT1ZBTktBCitNSUxJVk9KRVYgS09OU1RBTlRJTgorTUlMSVZPSkVWIExVS0EKK01JTElWT0pFViBNSUhBSkxPCitNSUxJVk9KRVYgTUlMQU5BCitNSUxJVk9KRVYgTUlMQU4KK01JTElWT0pFViBNSUxBTgorTUlMSVZPSkVWIE1JTE/FoAorTUlMSVZPSkVWIE1MQURFTgorTUlMSVZPSkVWIE5BREEKK01JTElWT0pFViBQQVZMRQorTUlMSVZPSkVWIFNPRklKQQorTUlMSVZPSkVWIFNPRklKQQorTUlMSVZPSkVWIFNPRklKQQorTUlMSVZPSkVWScSGIMSMRURPTUlSCitNSUxJVk9KRVZJxIYgxb1JVktBCitNSUxJVk9KRVZJxIYgxJBPUsSQRQorTUlMSVZPSkVWScSGIMSQT1LEkEUKK01JTElWT0pFVknEhiDEkE9SxJBFCitNSUxJVk9KRVZJxIYgQklMSkFOQQorTUlMSVZPSkVWScSGIEJPxaBLTworTUlMSVZPSkVWScSGIEJSQU5LTworTUlMSVZPSkVWScSGIEJVRElNSVIKK01JTElWT0pFVknEhiBCVURJU0xBVgorTUlMSVZPSkVWScSGIERSQUdBTgorTUlMSVZPSkVWScSGIERSQUdBTgorTUlMSVZPSkVWScSGIERVxaBBTgorTUlMSVZPSkVWScSGIERVxaBBTgorTUlMSVZPSkVWScSGIElMSUpBCitNSUxJVk9KRVZJxIYgSkFHT0RBCitNSUxJVk9KRVZJxIYgSkVMRU5BCitNSUxJVk9KRVZJxIYgSk9WQU4KK01JTElWT0pFVknEhiBKT1ZBTgorTUlMSVZPSkVWScSGIE1BUklOQQorTUlMSVZPSkVWScSGIE1JTEFOCitNSUxJVk9KRVZJxIYgTUlMRU5BCitNSUxJVk9KRVZJxIYgTUlMT01JUgorTUlMSVZPSkVWScSGIE1JTE9SQUQKK01JTElWT0pFVknEhiBNSUxPVkFOCitNSUxJVk9KRVZJxIYgTUlSSkFOQQorTUlMSVZPSkVWScSGIE1JUktPCitNSUxJVk9KRVZJxIYgTUlST1NMQVYKK01JTElWT0pFVknEhiBNT03EjElMTworTUlMSVZPSkVWScSGIFJBRE9KRQorTUlMSVZPSkVWScSGIFJBRE9TTEFWCitNSUxJVk9KRVZJxIYgU0FWTworTUlMSVZPSkVWScSGIFNMQVZLTworTUlMSVZPSkVWScSGIFNMQVZOQQorTUlMSVZPSkVWScSGIFNUT0pBTktBCitNSUxJVk9KRVZJxIYgVkxBRElNSVIKK01JTElWT0pFVknEhiBWTEFTVElNSVIKK01JTElWT0pFVknEhiBWT0pBCitNSUxJVk9KRVZJxIYgVk9KSVNMQVYKK01JTElWT0pFVknEhiBWVcSMTworTUlMSVZPSkVWScSGIFpEUkFWS08KK01JTElWT0pFVknEhiBaT1JBCitNSUxKQUtPVknEhiBNSUxBTgorTUlMSkFOScSGIMW9SVZLQQorTUlMSkFOScSGIERSQUdBTgorTUlMSkFOScSGIERVxaBBTgorTUlMSkFOScSGIEpPVkFOCitNSUxKQU5JxIYgTUFSS08KK01JTEpBTknEhiBOT1ZBSworTUlMSkFOScSGIE9CUkFECitNSUxKQU5JxIYgUkFESVZPSkUKK01JTEpBTknEhiBSQURPU0xBVgorTUlMSkFOScSGIFNMT0JPREFOCitNSUxKQU5JxIYgU0xPQk9EQU4KK01JTEpBTknEhiBTVEFOS08KK01JTEpBTknEhiBWVUtPVEEKK01JTEpBTk9WScSGIMW9RUxKS08KK01JTEpBTk9WScSGIEFEQU0KK01JTEpBTk9WScSGIEJSQU5LTworTUlMSkFOT1ZJxIYgRFXFoEFOCitNSUxKQU5PVknEhiBEVcWgSUNBCitNSUxKQU5PVknEhiBNSUxLQQorTUlMSkFOT1ZJxIYgUFJFRFJBRworTUlMSkFOT1ZJxIYgU1RBTktPCitNSUxKQU5PVknEhiBWSUxNQQorTUlMSkFOU0tJIEJPxaBLTworTUlMSkFOU0tJIExBWkFSCitNSUxKQU5TS0kgWk9SSUNBCitNSUxKQU5TS0kgWk9SSUNBCitNSUxKQVRPVknEhiDEkE9SxJBFCitNSUxKQVRPVknEhiBNQVJJQ0EKK01JTEpBVE9WScSGIE1JTEFOCitNSUxKQVRPVknEhiBNSUxVVElOCitNSUxKQVRPVknEhiBWRVJBCitNSUxKRcWgScSGIE5FTkFECitNSUxKRU5PVknEhiBTTE9CT0RBTgorTUlMSkVWScSGIMW9SVZLTworTUlMSkVWScSGIEFEQU0KK01JTEpFVknEhiBBTktBCitNSUxKRVZJxIYgQk9HREFOIERJUEwgSU5HCitNSUxKRVZJxIYgRFJBR09MSlVCCitNSUxKRVZJxIYgRFXFoEFOCitNSUxKRVZJxIYgR0FWUklMTworTUlMSkVWScSGIEpBTkpBCitNSUxKRVZJxIYgSk9WQU4KK01JTEpFVknEhiBKT1ZPCitNSUxKRVZJxIYgTEFaQVIKK01JTEpFVknEhiBMSlVCSUNBCitNSUxKRVZJxIYgTEpVQklOS08KK01JTEpFVknEhiBNQVJJTktPCitNSUxKRVZJxIYgTUlMT1JBRAorTUlMSkVWScSGIE5BVEHFoEEKK01JTEpFVknEhiBORURFTEpLTworTUlMSkVWScSGIE9CUkFECitNSUxKRVZJxIYgUkFET0pLQQorTUlMSkVWScSGIFNURVZBTgorTUlMSkVWScSGIFZFUklDQQorTUlMSkVWScSGIFZFUklDQQorTUlMSkVWScSGIFZJTktPCitNSUxKScSGIFNMQVZLTworTUlMSktPViDEkFVSSUNBCitNSUxKS09WQUMgQk9HT1NBVgorTUlMSktPVkFDIERSQUdPTUlSCitNSUxKS09WQUMgUEVUQVIKK01JTEpLT1ZBQyBSQURPVkFOCitNSUxKS09WQUMgVEFUSkFOQQorTUlMSktPVknEhiDEjEVET01JUgorTUlMSktPVknEhiDFvUlWQU4KK01JTEpLT1ZJxIYgQk/FoEtPCitNSUxKS09WScSGIEJPUklTTEFWCitNSUxKS09WScSGIEJPU0lMSktBCitNSUxKS09WScSGIERPQlJJTE8KK01JTEpLT1ZJxIYgRFJBR0FOCitNSUxKS09WScSGIERSQUdJxaBBCitNSUxKS09WScSGIERSQUdVVElOCitNSUxKS09WScSGIERVxaBBTgorTUlMSktPVknEhiBEVcWgQU4KK01JTEpLT1ZJxIYgTEVOS0UKK01JTEpLT1ZJxIYgTEpJTEpBTkEKK01JTEpLT1ZJxIYgTEpVQknFoEEKK01JTEpLT1ZJxIYgTEpVQklDQQorTUlMSktPVknEhiBMSlVQxIxFCitNSUxKS09WScSGIE1BUkEKK01JTEpLT1ZJxIYgTUnEhkEKK01JTEpLT1ZJxIYgTUlMSUNBCitNSUxKS09WScSGIE1JTElDQQorTUlMSktPVknEhiBNSUxPxaAKK01JTEpLT1ZJxIYgTUlPRFJBRworTUlMSktPVknEhiBNSVJBCitNSUxKS09WScSGIE1JUkpBTkEKK01JTEpLT1ZJxIYgTUlSSkFOQQorTUlMSktPVknEhiBNSVRBCitNSUxKS09WScSGIE1MQURFTgorTUlMSktPVknEhiBNT0pTQQorTUlMSktPVknEhiBOSUtPTEEgRFIgSU5HCitNSUxKS09WScSGIE5JS09MQQorTUlMSktPVknEhiBOSUtPTEEKK01JTEpLT1ZJxIYgUkFET1NBVgorTUlMSktPVknEhiBSQURPU0xBVgorTUlMSktPVknEhiBSQUhJTEpBCitNSUxKS09WScSGIFJPU0EKK01JTEpLT1ZJxIYgUk9TQQorTUlMSktPVknEhiBTTE9CT0RBTgorTUlMSktPVknEhiBTVEFNRU5LTyBEUiBMRUtBUgorTUlMSktPVknEhiBTVE9KQURJTgorTUlMSktPVknEhiBTVE9KQU4KK01JTEpLT1ZJxIYgVE9NSVNMQVYKK01JTEpLT1ZJxIYgVkVMSUJPUgorTUlMSk9KS09WScSGIERFU0lNSVIKK01JTEpPSktPVknEhiBET0JSSU5LQQorTUlMSk9KS09WScSGIEVNSUxJSkEKK01JTEpPSktPVknEhiBMSlVCScWgQQorTUlMSk9KS09WScSGIExKVUJJxaBBCitNSUxKVcWgIMSQVVJPCitNSUxKVcWgIEFMRUtTQU5EQVIKK01JTEpVxaAgQlJBTktPCitNSUxKVcWgIEJSQU5LTworTUlMSlXFoCBEUkFHTworTUlMSlXFoCBEVcWgQU5LQQorTUlMSlXFoCBEVcWgQU4KK01JTEpVxaAgRVZBCitNSUxKVcWgIEpPVkFOIERSCitNSUxKVcWgIEpPVkFOCitNSUxKVcWgIEpPVkFOCitNSUxKVcWgIEtBVEFSSU5BCitNSUxKVcWgIExKSUxKQU5BCitNSUxKVcWgIExKVUJJQ0EKK01JTEpVxaAgTUFSSUpBCitNSUxKVcWgIE1BUklKQQorTUlMSlXFoCBNSUxBTgorTUlMSlXFoCBNSUxFCitNSUxKVcWgIE1JTE9SQUQKK01JTEpVxaAgTUlPRFJBRworTUlMSlXFoCBOSUtPTEEKK01JTEpVxaAgUEVUQVIKK01JTEtPViDEkFVSxJBJTktBCitNSUxLT1YgxJBVUsSQSU5LQQorTUlMS09WIEFDQQorTUlMS09WIERSQUdBTiBEUgorTUlMS09WIERSQUdJTkpBCitNSUxLT1YgR09SREFOQQorTUlMS09WIEdPUkRBTkEKK01JTEtPViBKQVNNSU5BCitNSUxLT1YgSkVMRU5BCitNSUxLT1YgTEFaQVIKK01JTEtPViBMQVpBUgorTUlMS09WIFNMQVZJQ0EKK01JTEtPViBTVEFOT0pFCitNSUxLT1YgU1RFVkFOCitNSUxLT1ZJxIYgRFJBR0lDQQorTUlMS09WScSGIERVxaBBTgorTUlMS09WScSGIERVxaBBTgorTUlMS09WScSGIFZFTEpLTworTUlMTk9WScSGIEFMRUtTQU5EQVIKK01JTE5PVknEhiBLQU1FTktPCitNSUxOT1ZJxIYgTEFaQVIKK01JTE5PVknEhiBNSUhBSkxPCitNSUxOT1ZJxIYgU1RPSkFOCitNSUxOT1ZJxIYgVkFTSUxJSkUKK01JTE5PVknEhiBaT1JBCitNSUxPIEdJWkVMQQorTUlMT8WgIElWQU4KK01JTE/FoMSMSU4gU1RBxaBBCitNSUxPxaDEjElOIFNURVZBTgorTUlMT8WgxIxJTiBWTEFESU1JUgorTUlMT8WgRVYgxb1BUktPIERSCitNSUxPxaBFViDFvUlLQQorTUlMT8WgRVYgxb1JVktBCitNSUxPxaBFViDFvUlWT0pJTgorTUlMT8WgRVYgQUxFS1NBTkRBUgorTUlMT8WgRVYgQU7EkEVMSUpBCitNSUxPxaBFViBCT8WgS08gRElQTCBJTkcKK01JTE/FoEVWIEJSQU5JU0xBVkEKK01JTE/FoEVWIEJSQU5JU0xBVgorTUlMT8WgRVYgQlJBTklTTEFWCitNSUxPxaBFViBET0JSSVZPSgorTUlMT8WgRVYgRFXFoEFOCitNSUxPxaBFViBEVcWgS08KK01JTE/FoEVWIEpPVkFOS0EKK01JTE/FoEVWIEpPVkFOCitNSUxPxaBFViBMSlVCT01JUgorTUlMT8WgRVYgTUFSSUpBCitNSUxPxaBFViBNScSGTworTUlMT8WgRVYgTUlIQUpMTworTUlMT8WgRVYgTUlMQU4KK01JTE/FoEVWIE1JTEVOS08KK01JTE/FoEVWIE1JTElWT0oKK01JTE/FoEVWIE1JTEpBTkEKK01JTE/FoEVWIE1JTE/FoAorTUlMT8WgRVYgTUlMT8WgCitNSUxPxaBFViBNSUxPxaAKK01JTE/FoEVWIE1JTE9SQUQKK01JTE/FoEVWIE1JTE9SQUQKK01JTE/FoEVWIE1JT0RSQUcKK01JTE/FoEVWIE1JUkEKK01JTE/FoEVWIE1JUkpBTkEKK01JTE/FoEVWIE1JUktPCitNSUxPxaBFViBNSVJPU0xBVkEKK01JTE/FoEVWIE1JUk9TTEFWCitNSUxPxaBFViBNSVRBCitNSUxPxaBFViBNT03EjElMTworTUlMT8WgRVYgTkVCT0rFoEEKK01JTE/FoEVWIE5PVktBCitNSUxPxaBFViBQRVRBUgorTUlMT8WgRVYgUkFEQQorTUlMT8WgRVYgU0FWQQorTUlMT8WgRVYgU0xBVktBCitNSUxPxaBFViBTT0ZJSkEKK01JTE/FoEVWIFNUQU5BCitNSUxPxaBFViBTVE9KQU5LQQorTUlMT8WgRVYgVkFTQSBESVBMIElORworTUlMT8WgRVYgVkFTQQorTUlMT8WgRVYgVkVMSU1JUgorTUlMT8WgRVYgWkxBVE9NSVIKK01JTE/FoEVWScSGIMW9SVZPSklOCitNSUxPxaBFVknEhiDFvUlWT1JBRAorTUlMT8WgRVZJxIYgQUxFS1NBTkRBUgorTUlMT8WgRVZJxIYgQUxFS1NBTkRBUgorTUlMT8WgRVZJxIYgQUxFS1NBTkRBUgorTUlMT8WgRVZJxIYgQUxFS1NBTkRBUgorTUlMT8WgRVZJxIYgQUxFS1NBTkRSQQorTUlMT8WgRVZJxIYgQUxFS1NBTkRSQQorTUlMT8WgRVZJxIYgQU5BU1RBWklKQQorTUlMT8WgRVZJxIYgQU5LQQorTUlMT8WgRVZJxIYgQklMSkFOQQorTUlMT8WgRVZJxIYgQklTRVJLQQorTUlMT8WgRVZJxIYgQk/FoEtPCitNSUxPxaBFVknEhiBCT8W9SURBUgorTUlMT8WgRVZJxIYgQk/FvUlEQVIKK01JTE/FoEVWScSGIEJPxb1JREFSCitNSUxPxaBFVknEhiBCT8W9TworTUlMT8WgRVZJxIYgQk9HREFOCitNSUxPxaBFVknEhiBCT0pBTkEKK01JTE/FoEVWScSGIEJSQU5JU0xBVkEKK01JTE/FoEVWScSGIEJSQU5JU0xBVkEKK01JTE/FoEVWScSGIEJSQU5JU0xBVgorTUlMT8WgRVZJxIYgQlJBTklTTEFWCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIENWRVRBTgorTUlMT8WgRVZJxIYgQ1ZFVEFOCitNSUxPxaBFVknEhiBEQU5JQ0EKK01JTE/FoEVWScSGIERBUklOS0EKK01JTE/FoEVWScSGIERFSkFOCitNSUxPxaBFVknEhiBET0JSSU5LQQorTUlMT8WgRVZJxIYgRE9CUk9TQVYKK01JTE/FoEVWScSGIERSQUdBTkEKK01JTE/FoEVWScSGIERSQUdBTgorTUlMT8WgRVZJxIYgRFJBR0FOCitNSUxPxaBFVknEhiBEUkFHQU4KK01JTE/FoEVWScSGIERSQUdJQ0EKK01JTE/FoEVWScSGIERSQUdJQ0EKK01JTE/FoEVWScSGIERSQUdPTEpVQgorTUlMT8WgRVZJxIYgRFJBR09NSVIgRElQTCBJTkcKK01JTE/FoEVWScSGIERSQUdVVElOCitNSUxPxaBFVknEhiBEVcWgQU4gRFIKK01JTE/FoEVWScSGIERVxaBBTgorTUlMT8WgRVZJxIYgRFXFoEFOCitNSUxPxaBFVknEhiBFVkEKK01JTE/FoEVWScSGIEVWSUNBCitNSUxPxaBFVknEhiBHUk9aREEKK01JTE/FoEVWScSGIElHTkpBVAorTUlMT8WgRVZJxIYgSVZBTktBCitNSUxPxaBFVknEhiBKQUtPVgorTUlMT8WgRVZJxIYgSkFOS08KK01JTE/FoEVWScSGIEpFTEVOQQorTUlMT8WgRVZJxIYgSkVMRU5BCitNSUxPxaBFVknEhiBKRUxFTkEKK01JTE/FoEVWScSGIEpFTEVOQQorTUlMT8WgRVZJxIYgSkVSSU5BCitNSUxPxaBFVknEhiBKT1ZBTgorTUlMT8WgRVZJxIYgSk9WQU4KK01JTE/FoEVWScSGIEpPVkFOCitNSUxPxaBFVknEhiBKT1ZBTgorTUlMT8WgRVZJxIYgSk9WSUNBCitNSUxPxaBFVknEhiBKVUxLQQorTUlMT8WgRVZJxIYgS0xBVURJSkUKK01JTE/FoEVWScSGIEtSSVNUSU5BCitNSUxPxaBFVknEhiBMQVRJTktBCitNSUxPxaBFVknEhiBMQVpBUgorTUlMT8WgRVZJxIYgTEFaQVIKK01JTE/FoEVWScSGIExKSUxKQU5BCitNSUxPxaBFVknEhiBMSklMSkFOQQorTUlMT8WgRVZJxIYgTEpVQknFoEEKK01JTE/FoEVWScSGIExKVUJPTUlSCitNSUxPxaBFVknEhiBMT1pBTkEKK01JTE/FoEVWScSGIE1BUkEKK01JTE/FoEVWScSGIE1BUklDQQorTUlMT8WgRVZJxIYgTUFSSUpBCitNSUxPxaBFVknEhiBNQVJJSkEKK01JTE/FoEVWScSGIE1BUktPCitNSUxPxaBFVknEhiBNQVJUQQorTUlMT8WgRVZJxIYgTUlIQUlMTworTUlMT8WgRVZJxIYgTUlIQUxKSU5BCitNSUxPxaBFVknEhiBNSUxBRElOCitNSUxPxaBFVknEhiBNSUxBTktBCitNSUxPxaBFVknEhiBNSUxBTgorTUlMT8WgRVZJxIYgTUlMQU4KK01JTE/FoEVWScSGIE1JTEFOCitNSUxPxaBFVknEhiBNSUxBTgorTUlMT8WgRVZJxIYgTUlMQU4KK01JTE/FoEVWScSGIE1JTEVOS08KK01JTE/FoEVWScSGIE1JTEVOS08KK01JTE/FoEVWScSGIE1JTEVOS08KK01JTE/FoEVWScSGIE1JTEVOS08KK01JTE/FoEVWScSGIE1JTElDQQorTUlMT8WgRVZJxIYgTUlMSVZPSkUKK01JTE/FoEVWScSGIE1JTElWT0pFCitNSUxPxaBFVknEhiBNSUxPxaAKK01JTE/FoEVWScSGIE1JTE/FoAorTUlMT8WgRVZJxIYgTUlMT1JBRAorTUlMT8WgRVZJxIYgTUlMT1JBRAorTUlMT8WgRVZJxIYgTUlMT1JBRAorTUlMT8WgRVZJxIYgTUlMT1JBRAorTUlMT8WgRVZJxIYgTUlMT1NBVgorTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlPRFJBRworTUlMT8WgRVZJxIYgTUlSQQorTUlMT8WgRVZJxIYgTUlSSkFOQQorTUlMT8WgRVZJxIYgTUlSSkFOQQorTUlMT8WgRVZJxIYgTUlSSkFOQQorTUlMT8WgRVZJxIYgTUlSSkFOQQorTUlMT8WgRVZJxIYgTUlSS08KK01JTE/FoEVWScSGIE1JUk9TTEFWCitNSUxPxaBFVknEhiBNSVRBUgorTUlMT8WgRVZJxIYgTU9NxIxJTE8KK01JTE/FoEVWScSGIE5BREEKK01JTE/FoEVWScSGIE5FVkVOQQorTUlMT8WgRVZJxIYgTklLT0xBCitNSUxPxaBFVknEhiBOSUtPTEEKK01JTE/FoEVWScSGIE5PVklDQQorTUlMT8WgRVZJxIYgT0JSQUQKK01JTE/FoEVWScSGIE9MR0EKK01JTE/FoEVWScSGIE9MSVZFUkEKK01JTE/FoEVWScSGIFBBVkxFCitNSUxPxaBFVknEhiBQQVZMRQorTUlMT8WgRVZJxIYgUEVUQVIKK01JTE/FoEVWScSGIFBFVEFSCitNSUxPxaBFVknEhiBQRVRBUgorTUlMT8WgRVZJxIYgUFJFRFJBRworTUlMT8WgRVZJxIYgUkFERSBEUgorTUlMT8WgRVZJxIYgUkFERQorTUlMT8WgRVZJxIYgUkFERQorTUlMT8WgRVZJxIYgUkFERQorTUlMT8WgRVZJxIYgUkFERQorTUlMT8WgRVZJxIYgUkFET1ZBTgorTUlMT8WgRVZJxIYgUkFKS08KK01JTE/FoEVWScSGIFJBSktPCitNSUxPxaBFVknEhiBSQVRLTworTUlMT8WgRVZJxIYgUklTVE8KK01JTE/FoEVWScSGIFJVxb1BCitNSUxPxaBFVknEhiBSVcW9SUNBCitNSUxPxaBFVknEhiBTQVZBCitNSUxPxaBFVknEhiBTQVZBCitNSUxPxaBFVknEhiBTQVZBCitNSUxPxaBFVknEhiBTQVZBCitNSUxPxaBFVknEhiBTRUxFTktBCitNSUxPxaBFVknEhiBTTEFWQQorTUlMT8WgRVZJxIYgU0xBVktPCitNSUxPxaBFVknEhiBTTE9CT0RBTgorTUlMT8WgRVZJxIYgU0xPQk9EQU4KK01JTE/FoEVWScSGIFNMT0JPREFOCitNSUxPxaBFVknEhiBTTkXFvUFOQQorTUlMT8WgRVZJxIYgU05Fxb1BTkEKK01JTE/FoEVWScSGIFNQQVNPSkUKK01JTE/FoEVWScSGIFNQQVNPSkUKK01JTE/FoEVWScSGIFNSQk9CUkFOCitNSUxPxaBFVknEhiBTVEFOSU1JUgorTUlMT8WgRVZJxIYgU1RBTktPCitNSUxPxaBFVknEhiBTVEFOS08KK01JTE/FoEVWScSGIFNURVZJQ0EKK01JTE/FoEVWScSGIFNUT0pBCitNSUxPxaBFVknEhiBTVkVUSVNMQVYKK01JTE/FoEVWScSGIFNWRVRPTEpVQgorTUlMT8WgRVZJxIYgU1ZFVE9aQVIKK01JTE/FoEVWScSGIFNWRVRPWkFSCitNSUxPxaBFVknEhiBUQURJSkEKK01JTE/FoEVWScSGIFRPTUlTTEFWCitNSUxPxaBFVknEhiBVUk/FoAorTUlMT8WgRVZJxIYgVkFTQQorTUlMT8WgRVZJxIYgVkFTSUxJSkUKK01JTE/FoEVWScSGIFZFTEpLTworTUlMT8WgRVZJxIYgVkVSQQorTUlMT8WgRVZJxIYgVkVTRUxJTgorTUlMT8WgRVZJxIYgVklET0pFCitNSUxPxaBFVknEhiBWTEFEQSBESVBMIE9FQworTUlMT8WgRVZJxIYgVkxBRElNSVIKK01JTE/FoEVWScSGIFZPSklTTEFWCitNSUxPxaBFVknEhiBWT0pJU0xBVgorTUlMT8WgRVZJxIYgVk9KS0FOCitNSUxPxaBFVknEhiBWVUtBxaBJTiBEUiBMRUtBUgorTUlMT8WgRVZJxIYgVlVLQcWgSU4KK01JTE/FoEVWScSGIFpBSEFSSUpFCitNSUxPxaBFVknEhiBaRFJBVktPCitNSUxPxaBFVknEhiBaTEFUSU1JUgorTUlMT8WgRVZJxIYgWk9SQU4gRElQTCBJTkcKK01JTE/FoEVWScSGIFpPUkFOCitNSUxPSkVWScSGIMSQT1LEkEUKK01JTE9KRVZJxIYgQU5BCitNSUxPSkVWScSGIEJSQU5JU0xBVgorTUlMT0pFVknEhiBCUkFOSVNMQVYKK01JTE9KRVZJxIYgQ1ZJSkVUQQorTUlMT0pFVknEhiBESU1JVFJJSkUKK01JTE9KRVZJxIYgRFJBR0FOCitNSUxPSkVWScSGIERSQUdBTgorTUlMT0pFVknEhiBEVcWgQU5LQQorTUlMT0pFVknEhiBEVcWgQU4KK01JTE9KRVZJxIYgRFXFoEFOCitNSUxPSkVWScSGIERVxaBBTgorTUlMT0pFVknEhiBHT0pLTworTUlMT0pFVknEhiBHT1JEQU5BCitNSUxPSkVWScSGIEdST1pEQU5BCitNSUxPSkVWScSGIEpBTktPCitNSUxPSkVWScSGIEpFTEVOQQorTUlMT0pFVknEhiBKVUxJSkFOQQorTUlMT0pFVknEhiBNSUhBSkxPCitNSUxPSkVWScSGLU1JTEFOT1YgU1ZFVExBTkEKK01JTE9KRVZJxIYgTUlMSVZPSkUKK01JTE9KRVZJxIYgTUlMT0pFIERSIFBST0YKK01JTE9KRVZJxIYgTUlMT1JBRAorTUlMT0pFVknEhiBNSVJPU0xBVgorTUlMT0pFVknEhiBNT01JUiBEUgorTUlMT0pFVknEhiBPTEdJQ0EKK01JTE9KRVZJxIYgUEFWTEUKK01JTE9KRVZJxIYgUFJFRFJBRworTUlMT0pFVknEhiBSQURPVkFOCitNSUxPSkVWScSGIFJBTktPCitNSUxPSkVWScSGIFNMT0JPREFOCitNSUxPSkVWScSGIFZBU0EKK01JTE9KRVZJxIYgVkxBREEKK01JTE9KRVZJxIYgVkxBRElNSVIKK01JTE9KRVZJxIYgVk9KSU4KK01JTE9KRVZJxIYgVk9KSVNMQVYKK01JTE9KRVZJxIYgWk9SQU4KK01JTE9KRVZJxIYgWk9SQU4KK01JTE9KRVZJxIYgWlZPTktPCitNSUxPSklDQSBNSUxKQQorTUlMT0pLT1ZJxIYgxb1JVkFOCitNSUxPSktPVknEhiBBQ0EKK01JTE9KS09WScSGIEJPxb1BTkEKK01JTE9KS09WScSGIEJPxb1JREFSCitNSUxPSktPVknEhiBEVcWgQU4KK01JTE9KS09WScSGIERVxaBBTgorTUlMT0pLT1ZJxIYgSk9WQU5LQQorTUlMT0pLT1ZJxIYgS0FUQVJJTkEKK01JTE9KS09WScSGIEtSSVNUQQorTUlMT0pLT1ZJxIYgTEpVQk9NSVIKK01JTE9KS09WScSGIE1JTElWT0oKK01JTE9KS09WScSGIE1JTE9WQU4KK01JTE9KS09WScSGIE1JUk9MSlVCCitNSUxPSktPVknEhiBOQURFxb1EQQorTUlMT00gSU1SRQorTUlMT00gSU1SRQorTUlMT1JBREnEhiBCUkFOS08KK01JTE9SQURJxIYgTklLT0xBCitNSUxPUkFET1YgQk9SSVNMQVZBCitNSUxPUkFET1YgTUlMT8WgCitNSUxPUkFET1YgTUlMT1JBRAorTUlMT1JBRE9WIFJBRE9TTEFWS0EKK01JTE9SQURPViBWSU9MRVRBCitNSUxPUkFET1ZJxIYgQlJBTklTTEFWCitNSUxPUkFET1ZJxIYgREVKQU4KK01JTE9SQURPVknEhiBEUkFHQU4KK01JTE9SQURPVknEhiBNSUxPxaAKK01JTE9SQURPVknEhiBNTEFERU4KK01JTE9SQURPVknEhiBaTEFUT0pFCitNSUxPU0FWQUMgTUnEhkEKK01JTE9TQVZJxIYgQk9SSVNMQVYKK01JTE9TQVZJxIYgQlJBTktPCitNSUxPU0FWScSGIEtSU1RBTgorTUlMT1NBVknEhiBNTEFERU4KK01JTE9TQVZJxIYgTU9NxIxJTE8KK01JTE9TQVZJxIYgUEVUQVIKK01JTE9TQVZJxIYgUkFESVZPSgorTUlMT1NBVknEhiBTVE9KQQorTUlMT1NBVkxKRVYgxb1JVkFOCitNSUxPU0FWTEpFViDFvUlWS0EKK01JTE9TQVZMSkVWIEFMRUtTQU5EQVIKK01JTE9TQVZMSkVWIEJPxb1JREFSCitNSUxPU0FWTEpFViBET0JSRU4KK01JTE9TQVZMSkVWIERSQUdJTkpBCitNSUxPU0FWTEpFViBMSklMSkFOQQorTUlMT1NBVkxKRVYgTUVMQU5JSkEKK01JTE9TQVZMSkVWIE1JTEVOS08KK01JTE9TQVZMSkVWIE1JTElDQQorTUlMT1NBVkxKRVYgTk9WS0EKK01JTE9TQVZMSkVWIFZMQURBCitNSUxPU0FWTEpFViBWT0pBCitNSUxPU0FWTEpFVknEhiDFvUFSS08KK01JTE9TQVZMSkVWScSGIMW9SVZBRElOCitNSUxPU0FWTEpFVknEhiDFvUlWS08KK01JTE9TQVZMSkVWScSGIMW9SVZLTworTUlMT1NBVkxKRVZJxIYgQURBTSBESVBMIFBSQVZOSUsKK01JTE9TQVZMSkVWScSGIEJPxb1JREFSCitNSUxPU0FWTEpFVknEhiBCT1JBCitNSUxPU0FWTEpFVknEhiBCT1JJVk9KRQorTUlMT1NBVkxKRVZJxIYgQlJBTklTTEFWCitNSUxPU0FWTEpFVknEhiBCUkFOS08KK01JTE9TQVZMSkVWScSGIEJSQVRJU0xBVgorTUlMT1NBVkxKRVZJxIYgREVKQU4KK01JTE9TQVZMSkVWScSGIERSQUdBTgorTUlMT1NBVkxKRVZJxIYgRFJBR0FOCitNSUxPU0FWTEpFVknEhiBEUkFHQU4KK01JTE9TQVZMSkVWScSGIERSQUdJQ0EKK01JTE9TQVZMSkVWScSGIERSQUdJQ0EKK01JTE9TQVZMSkVWScSGIERSQUdVVElOCitNSUxPU0FWTEpFVknEhiBEVcWgQU5LQQorTUlMT1NBVkxKRVZJxIYgSUxJSkEKK01JTE9TQVZMSkVWScSGIEpFTElTQVZFVEEKK01JTE9TQVZMSkVWScSGIEpPVkFOCitNSUxPU0FWTEpFVknEhiBKT1ZBTgorTUlMT1NBVkxKRVZJxIYgSk9WQU4KK01JTE9TQVZMSkVWScSGIEtBVElDQQorTUlMT1NBVkxKRVZJxIYgTEFaQVIKK01JTE9TQVZMSkVWScSGIE1BUklKQQorTUlMT1NBVkxKRVZJxIYgTUlIQUpMTworTUlMT1NBVkxKRVZJxIYgTUlMQU4KK01JTE9TQVZMSkVWScSGIE1JTEFOCitNSUxPU0FWTEpFVknEhiBNSUxFCitNSUxPU0FWTEpFVknEhiBNSUxJQ0EKK01JTE9TQVZMSkVWScSGIE1JTEtBCitNSUxPU0FWTEpFVknEhiBNSUxPUkFECitNSUxPU0FWTEpFVknEhiBNSUxPUkFECitNSUxPU0FWTEpFVknEhiBNSUxPUkFECitNSUxPU0FWTEpFVknEhiBNSUxPVkFOCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHIERSCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSU9EUkFHCitNSUxPU0FWTEpFVknEhiBNSVJPU0xBVgorTUlMT1NBVkxKRVZJxIYgTklLT0xBIERSCitNSUxPU0FWTEpFVknEhiBOT1ZJQ0EKK01JTE9TQVZMSkVWScSGIE9MR0EKK01JTE9TQVZMSkVWScSGIFBFVEFSCitNSUxPU0FWTEpFVknEhiBSQURJVk9KRQorTUlMT1NBVkxKRVZJxIYgUkFESVZPSgorTUlMT1NBVkxKRVZJxIYgUkFET01JUgorTUlMT1NBVkxKRVZJxIYgU0FWTworTUlMT1NBVkxKRVZJxIYgU0xBVktPCitNSUxPU0FWTEpFVknEhiBTTE9CT0RBTgorTUlMT1NBVkxKRVZJxIYgU0xPQk9EQU4KK01JTE9TQVZMSkVWScSGIFNSRVRBCitNSUxPU0FWTEpFVknEhiBTVEFOSVNMQVYKK01JTE9TQVZMSkVWScSGIFNUQU5LTworTUlMT1NBVkxKRVZJxIYgU1RFVk8KK01JTE9TQVZMSkVWScSGIFNWRVRPWkFSCitNSUxPU0FWTEpFVknEhiBWRVJBCitNSUxPU0FWTEpFVknEhiBWRVJBCitNSUxPU0FWTEpFVknEhiBWTEFESU1JUgorTUlMT1NBVkxKRVZJxIYgVkxBRElTTEFWCitNSUxPU0FWTEpFVknEhiBaT1JBTgorTUlMT1NPVknEhiBKT1ZBTgorTUlMT1NPVknEhiBNSUxPxaAKK01JTE9TT1ZJxIYgTUlSS08KK01JTE9WxIxFVknEhiBNSUxPxaAKK01JTE9WQUMgRFXFoEFOCitNSUxPVkFDIEdMScWgQQorTUlMT1ZBQyBHT1JBTgorTUlMT1ZBQyBJTEUKK01JTE9WQUMgSUxJSkEKK01JTE9WQUMgSkVMQQorTUlMT1ZBQyBNSUxBTgorTUlMT1ZBQyBNSUxBTgorTUlMT1ZBQyBNSUxBTgorTUlMT1ZBQyBQRVRBUgorTUlMT1ZBQyBSVcW9SUNBCitNSUxPVkFDIFNJTU8KK01JTE9WQUMgU1RBTktPCitNSUxPVkFDIFNURVZBTgorTUlMT1ZBQyBTVE9KQU4KK01JTE9WQU4gS09OU1RBTkNBCitNSUxPVkFOxIxFViBBTEVLU0FOREFSCitNSUxPVkFOxIxFViBJU0lET1IKK01JTE9WQU7EjEVWIE5JS09MQQorTUlMT1ZBTsSMRVYgU0xPQk9EQU4gRElQTCBJTkcKK01JTE9WQU7EjEVWIFNWRVRPWkFSIERSCitNSUxPVkFOS0nEhiDEkE9SxJBFCitNSUxPVkFOS0nEhiBNSVJPU0xBVgorTUlMT1ZBTk9WIMSQT1LEkEUKK01JTE9WQU5PViBBTEVLU0FOREFSIERJUEwgSU5HCitNSUxPVkFOT1YgQU5JQ0EKK01JTE9WQU5PViBCT8W9SURBUgorTUlMT1ZBTk9WIERJTUlUUklKRSBESVBMIElORworTUlMT1ZBTk9WIERSQUdBTgorTUlMT1ZBTk9WIEdPSktPCitNSUxPVkFOT1YgR09KS08KK01JTE9WQU5PViBHT1JBTgorTUlMT1ZBTk9WIEdPUkRBTkEgRFIgTEVLQVIKK01JTE9WQU5PViBJVkFOCitNSUxPVkFOT1YgSlVMS0EKK01JTE9WQU5PViBNSUxBTgorTUlMT1ZBTk9WIE1JTEUKK01JTE9WQU5PViBNSUxJTktBCitNSUxPVkFOT1YgTUlMSU5LQQorTUlMT1ZBTk9WIE1JUkpBTkEKK01JTE9WQU5PViBTSU1BCitNSUxPVkFOT1YgU1RPSkFOS0EKK01JTE9WQU5PViBUT0RPUgorTUlMT1ZBTk9WIFZBU0lMSUpFCitNSUxPVkFOT1YgWk9SQU4KK01JTE9WQU5PVknEhiDFvUlLQQorTUlMT1ZBTk9WScSGIMW9SVZLTworTUlMT1ZBTk9WScSGIEFOxJBFTEtBCitNSUxPVkFOT1ZJxIYgQU5JQ0EKK01JTE9WQU5PVknEhiBBTklDQQorTUlMT1ZBTk9WScSGIEJPR09TQVYKK01JTE9WQU5PVknEhiBCUkFOSVNMQVZBCitNSUxPVkFOT1ZJxIYgQlJBTklTTEFWCitNSUxPVkFOT1ZJxIYgQlJBTklTTEFWCitNSUxPVkFOT1ZJxIYgREFOSUNBCitNSUxPVkFOT1ZJxIYgRE9CUklTQVYKK01JTE9WQU5PVknEhiBET0JSSVZPSkUKK01JTE9WQU5PVknEhiBEUkFHSU5KQQorTUlMT1ZBTk9WScSGIERSQUdPTEpVQgorTUlMT1ZBTk9WScSGIERSQUdPTEpVQgorTUlMT1ZBTk9WScSGIERSQUdPTUlSCitNSUxPVkFOT1ZJxIYgRFJBR09TTEFWCitNSUxPVkFOT1ZJxIYgRFJBR09TTEFWCitNSUxPVkFOT1ZJxIYgRFXFoEFOIERSIExFS0FSCitNSUxPVkFOT1ZJxIYgRFXFoEFOCitNSUxPVkFOT1ZJxIYgR09SQU4KK01JTE9WQU5PVknEhiBHT1JEQU5BCitNSUxPVkFOT1ZJxIYgSUxJSkEKK01JTE9WQU5PVknEhiBJVkFOS0EKK01JTE9WQU5PVknEhiBJVklDQQorTUlMT1ZBTk9WScSGIEpPVkFOCitNSUxPVkFOT1ZJxIYgS0FUQUxJTgorTUlMT1ZBTk9WScSGIEtBVElDQQorTUlMT1ZBTk9WScSGIEtPU0FSQQorTUlMT1ZBTk9WScSGIEtSU1RPTUlSCitNSUxPVkFOT1ZJxIYgTEpJTEpBTkEKK01JTE9WQU5PVknEhiBMSklMSkFOQQorTUlMT1ZBTk9WScSGIExKVUJJQ0EKK01JTE9WQU5PVknEhiBMVUtBCitNSUxPVkFOT1ZJxIYgTUlMQURJTgorTUlMT1ZBTk9WScSGIE1JTEFOCitNSUxPVkFOT1ZJxIYgTUlMRU5BCitNSUxPVkFOT1ZJxIYgTUlMRU5LTworTUlMT1ZBTk9WScSGIE1JTEVWQQorTUlMT1ZBTk9WScSGIE1JTElTQVYKK01JTE9WQU5PVknEhiBNSUxJVk9KRQorTUlMT1ZBTk9WScSGIE1JTE9SQUQKK01JTE9WQU5PVknEhiBNSUxPVkFOCitNSUxPVkFOT1ZJxIYgTUlMT1ZBTgorTUlMT1ZBTk9WScSGIE1JUkpBTkEKK01JTE9WQU5PVknEhiBNSVJKQU5BCitNSUxPVkFOT1ZJxIYgTU9NSVIgRElQTCBJTkcKK01JTE9WQU5PVknEhiBOQURBIE1SCitNSUxPVkFOT1ZJxIYgTklLT0xBCitNSUxPVkFOT1ZJxIYgT0JSRU4KK01JTE9WQU5PVknEhiBPTEdBCitNSUxPVkFOT1ZJxIYgUkFEQcWgSU4KK01JTE9WQU5PVknEhiBSQURFTktPCitNSUxPVkFOT1ZJxIYgUkFERU5LTworTUlMT1ZBTk9WScSGIFJBREVOS08KK01JTE9WQU5PVknEhiBSQURFCitNSUxPVkFOT1ZJxIYgUkFESVNBVgorTUlMT1ZBTk9WScSGIFJBRElTTEFWCitNSUxPVkFOT1ZJxIYgUkFET1NMQVYKK01JTE9WQU5PVknEhiBSSVNUQQorTUlMT1ZBTk9WScSGIFNBVkEKK01JTE9WQU5PVknEhiBTTEFWS0EKK01JTE9WQU5PVknEhiBTTEFWS08KK01JTE9WQU5PVknEhiBTTE9CT0RBTgorTUlMT1ZBTk9WScSGIFNPTkpBCitNSUxPVkFOT1ZJxIYgU1JCSVNMQVYKK01JTE9WQU5PVknEhiBTVEFOSUNBCitNSUxPVkFOT1ZJxIYgU1RFVkFOIERJUEwgSU5HCitNSUxPVkFOT1ZJxIYgU1RFVkFOCitNSUxPVkFOT1ZJxIYgU1RFVkFOCitNSUxPVkFOT1ZJxIYgU1ZFVE9aQVIKK01JTE9WQU5PVknEhiBTVkVUT1pBUgorTUlMT1ZBTk9WScSGIFRFUktBCitNSUxPVkFOT1ZJxIYgVkVTRUxJTktBCitNSUxPVkFOT1ZJxIYgVkVTTkEKK01JTE9WQU5PVknEhiBWSURBTgorTUlMT1ZBTk9WScSGIFZMQURJTUlSCitNSUxPVkFOT1ZJxIYgVkxBRElNSVIKK01JTE9WQU5PVknEhiBWTEFESVNMQVYKK01JTE9WQU5PVknEhiBWT0pBCitNSUxPVkFOT1ZJxIYgVk9KSVNMQVYKK01JTE9WQU5PVknEhiBWT0pJU0xBVgorTUlMT1ZBTk9WScSGIFZPSklTTEFWCitNSUxPVkFOT1ZJxIYgVk9KSVNMQVYKK01JTE9WQU5PVknEhiBWVUtPU0FWQQorTUlMT1ZBTk9WScSGIFpPUkFOCitNSUxPVkFOT1ZJxIYgWk9SQU4KK01JTE9WQU5PVknEhiBaT1JLQQorTUlMT1ZJxIYgxIxFRE8KK01JTE9WScSGIMSQT1LEkEUKK01JTE9WScSGIEJPxaBLTworTUlMT1ZJxIYgQk9HREFOCitNSUxPVknEhiBCT1JJxaBBCitNSUxPVknEhiBCT1JPCitNSUxPVknEhiBCT1JPCitNSUxPVknEhiBCUkFOS08KK01JTE9WScSGIERFU0lNSVIKK01JTE9WScSGIERVxaBBTgorTUlMT1ZJxIYgR09KS08KK01JTE9WScSGIEdPSktPCitNSUxPVknEhiBJTElKQQorTUlMT1ZJxIYgSkVMRU5BCitNSUxPVknEhiBLUlNUTworTUlMT1ZJxIYgTEpVQk9NSVIKK01JTE9WScSGIE1BSkEKK01JTE9WScSGIE1BUklKQU4KK01JTE9WScSGIE1JTEFOCitNSUxPVknEhiBNSUxFTktPCitNSUxPVknEhiBNSUxPUkFECitNSUxPVknEhiBNSUxPUkFECitNSUxPVknEhiBNSU9NSVIKK01JTE9WScSGIE1PTcSMSUxPCitNSUxPVknEhiBPUkxFCitNSUxPVknEhiBQRVRBUgorTUlMT1ZJxIYgUkFERQorTUlMT1ZJxIYgUkFET1ZBTgorTUlMT1ZJxIYgU0xPQk9EQU4KK01JTE9WScSGIFNUQU5LTworTUlMT1ZJxIYgVE9NSVNMQVYKK01JTE9WScSGIFZVS0HFoElOCitNSUxVxaBJxIYgRVZJQ0EKK01JTFXFoEnEhiBQRVRBUiBESVBMIElORworTUlMVU5PViBKT1ZBTgorTUlMVU5PViBKVUxLQQorTUlMVU5PVknEhiBCUkFOS08KK01JTFVOT1ZJxIYgRFJBR09NSVIKK01JTFVOT1ZJxIYgTUlMT8WgCitNSUxVTk9WScSGIE1JTE9NSVIKK01JTFVOT1ZJxIYgTUlMT1JBRAorTUlMVU5PVknEhiBNSUxVTgorTUlMVU5PVknEhiBSQURPTUlSCitNSUxVTk9WScSGIFNQQVNFTktPCitNSUxVTk9WScSGIFpPUklDQQorTUlMVVJPVknEhiBTTE9CT0RBTgorTUlMVVRJTiDFvUlWS08KK01JTFVUSU4gSkFTTkEKK01JTFVUSU4gTUlSQQorTUlMVVRJTiBORURFTEpLTworTUlMVVRJTiBSQVRLTworTUlMVVRJTiBWT0pJU0xBVgorTUlMVVRJTk9WIMSQT0tBCitNSUxVVElOT1YgQUNBCitNSUxVVElOT1YgRFJBR09TTEFWCitNSUxVVElOT1YgSkVMSVNBVkVUQQorTUlMVVRJTk9WIEpPVkFOCitNSUxVVElOT1YgS09OU1RBTlRJTgorTUlMVVRJTk9WIExBWkFSCitNSUxVVElOT1YgTUlMSVNBVgorTUlMVVRJTk9WIE1JVEEKK01JTFVUSU5PVi1ORURFTEpLT1ZJxIYgUkFET1ZBTgorTUlMVVRJTk9WIFJBREEKK01JTFVUSU5PViBSQURPU0xBVgorTUlMVVRJTk9WIFNBVkEKK01JTFVUSU5PViBTQVZFVEEKK01JTFVUSU5PViBUT0RPUgorTUlMVVRJTk9WIFZFTElCT1IKK01JTFVUSU5PVknEhiDFoFRFRklDQQorTUlMVVRJTk9WScSGIMW9SUtBCitNSUxVVElOT1ZJxIYgxJBPUsSQRQorTUlMVVRJTk9WScSGIMSQT1LEkEUKK01JTFVUSU5PVknEhiDEkE9SxJBFCitNSUxVVElOT1ZJxIYgxJBVUsSQSUNBCitNSUxVVElOT1ZJxIYgQU7EkEVMS08KK01JTFVUSU5PVknEhiBCT8WgS08KK01JTFVUSU5PVknEhiBCT0pBTgorTUlMVVRJTk9WScSGIEJSQU5LQQorTUlMVVRJTk9WScSGIEJVRElNSVIKK01JTFVUSU5PVknEhiBEQU5JSkVMQQorTUlMVVRJTk9WScSGIERSQUdBTgorTUlMVVRJTk9WScSGIERSQUdJQ0EKK01JTFVUSU5PVknEhiBEUkFHSUNBCitNSUxVVElOT1ZJxIYgRFJBR1VUSU4KK01JTFVUSU5PVknEhiBEVcWgQU5LQQorTUlMVVRJTk9WScSGIERVxaBBTgorTUlMVVRJTk9WScSGIEdBVlJJTE8KK01JTFVUSU5PVknEhiBJR05KQVQKK01JTFVUSU5PVknEhiBKT1ZBTgorTUlMVVRJTk9WScSGIEpPVkFOCitNSUxVVElOT1ZJxIYgSlVMS0lDQQorTUlMVVRJTk9WScSGIExJRElKQQorTUlMVVRJTk9WScSGIExJRElKQQorTUlMVVRJTk9WScSGIExKVUJJTktBCitNSUxVVElOT1ZJxIYgTEpVQk8KK01JTFVUSU5PVknEhiBNQU5EQQorTUlMVVRJTk9WScSGIE1BUlRBCitNSUxVVElOT1ZJxIYgTUVMQU5JSkEKK01JTFVUSU5PVknEhiBNSUxBRElOCitNSUxVVElOT1ZJxIYgTUlMQU4KK01JTFVUSU5PVknEhiBNSUxBTgorTUlMVVRJTk9WScSGIE1JTEVOS08KK01JTFVUSU5PVknEhiBNSUxJTktPCitNSUxVVElOT1ZJxIYgTUlMSVZPSkUKK01JTFVUSU5PVknEhiBNSUxJVk9KRQorTUlMVVRJTk9WScSGIE1JTE/FoAorTUlMVVRJTk9WScSGIE1JTE9KS08KK01JTFVUSU5PVknEhiBNSUxPUkFECitNSUxVVElOT1ZJxIYgTUlMT1JBRAorTUlMVVRJTk9WScSGIE1JTE9WQU4KK01JTFVUSU5PVknEhiBNSUxVVElOCitNSUxVVElOT1ZJxIYgTUlPTUlSCitNSUxVVElOT1ZJxIYgTUlSSkFOQQorTUlMVVRJTk9WScSGIE1JUkpBTkEKK01JTFVUSU5PVknEhiBNSVJKQU5BCitNSUxVVElOT1ZJxIYgTUlST1NMQVZBIERSCitNSUxVVElOT1ZJxIYgTUlST1NMQVYKK01JTFVUSU5PVknEhiBNT01JUgorTUlMVVRJTk9WScSGIE9MR0EKK01JTFVUSU5PVknEhiBQRVRBUgorTUlMVVRJTk9WScSGIFBFVEFSCitNSUxVVElOT1ZJxIYgUkFERQorTUlMVVRJTk9WScSGIFJBREnFoEEKK01JTFVUSU5PVknEhiBSQURPSktBCitNSUxVVElOT1ZJxIYgUkFET1NBVgorTUlMVVRJTk9WScSGIFNBxaBBCitNSUxVVElOT1ZJxIYgU0xBVktPCitNSUxVVElOT1ZJxIYgU0xPQk9EQU5LQQorTUlMVVRJTk9WScSGIFNSRVRFTgorTUlMVVRJTk9WScSGIFNUQU5BCitNSUxVVElOT1ZJxIYgU1RFVkFOCitNSUxVVElOT1ZJxIYgU1RPSkFOS0EKK01JTFVUSU5PVknEhiBTVE9KQU4KK01JTFVUSU5PVknEhiBTVkVUT1pBUgorTUlMVVRJTk9WScSGIFZFTElNSVIKK01JTFVUSU5PVknEhiBWRVJBCitNSUxVVElOT1ZJxIYgVkVSQQorTUlMVVRJTk9WScSGIFZFUklDQSBEUgorTUlMVVRJTk9WScSGLVZVS1NBTiBPTEdBCitNSUxVVElOT1ZJxIYgWk9SQU4KK01JTFVUSU5PVknEhiBaT1JBTgorTUlMVVRJTk9WScSGIFpPUkFOCitNSUxVVElOT1ZJxIYgWk9SQU4KK01JTUlDQSBNTEFERU4KK01JTUlDQSBORU5BRAorTUlNSUNBIE5FTkFECitNSU1JQ0EgTkVOQUQKK01JTsSMScSGIE1JUk9MSlVCCitNSU7EjEnEhiBNSVJPU0xBVgorTUlOxIxJxIYgU0xPQk9EQU5LQQorTUlOREEtUkHEkEVOT1ZJxIYgRUxFTkEKK01JTkRBIFRJQk9SCitNSU5EScSGIE1JUkpBTkEKK01JTkRJxIYgU1ZFVElTTEFWCitNSU5FQSBST01BTgorTUlOScSGIE1JTE9TQVYKK01JTknEhiBOQURBCitNSU5JxIYgU0xBVktPCitNSU5JxIYgVE9NSVNMQVYKK01JTknEhiBaT1JLQQorTUlOSUsgxaBBTkRPUgorTUlOSUsgSk9TSVAKK01JTkpBIE1BSkEKK01JTkpBIE1JTFVUSU4KK01JT8SMIMW9RUxKS08KK01JT8SMIElWQU4KK01JT8SMIFpERU5LTworTUlPxIxJTk9WScSGIE1BUktPCitNSU/EjElOT1ZJxIYgTUlMQU4KK01JT0RBTknEhiBEQU5LTworTUlPRFJBRyBBTkEKK01JT0RSQUcgTUlSS08KK01JT0RSQUcgUEVSTworTUlPRFJBRyBaRFJBVktBCitNSU9EUkFHIFpPUklDQQorTUlPRFJBR09WScSGIEFMQUtTQU5EQVIKK01JT0RSQUdPVknEhiBCT1JJU0xBVgorTUlPRFJBR09WScSGIERSQUdPTEpVQgorTUlPRFJBR09WScSGIERSQUdPTEpVQgorTUlPRFJBR09WScSGIERSQUdPTUlSCitNSU9EUkFHT1ZJxIYgRFXFoEtPCitNSU9EUkFHT1ZJxIYgTUlMRU5LTyBESVBMIElORworTUlPRFJBR09WScSGIE1JTEVOS08KK01JT0RSQUdPVknEhiBSQURPU0xBVgorTUlPRFJBR09WScSGIFNURVZBTgorTUlPRFJBR09WScSGIFRPxaBBCitNSU9EUkFHT1ZJxIYgVkVSQQorTUlPRFJBR09WScSGLVZVS0FOScSGIEFMRUtTQU5EUkEKK01JT0RSQUdPVknEhiBaT1JJQ0EKK01JT0sgVkxBU1RJTUlSCitNSU9LT1ZJxIYgQlJBTktPCitNSU9LT1ZJxIYgREFOSUNBCitNSU9LT1ZJxIYgUkFET1NMQVYKK01JT0xTS0kgQk9SSVNMQVYKK01JT0xTS0kgRFXFoEtPCitNSU9MU0tJIFNUQU5LTworTUlPTFNLSSBTVEVWQU4KK01JUsSMRVRJxIYgSk9WQU4KK01JUsSMRVRJxIYgTEFaQVIKK01JUsSMRVRJxIYgTUlMSUNBCitNSVLEjEVUScSGIE1JTFVUSU4KK01JUsSMRVRJxIYgUkFET1NMQVYKK01JUsSMRVRJxIYgU0xBVktPCitNSVLEjEVUScSGIFpPUkFOCitNSVLEjEVUScSGIFpPUkFOCitNSVLEjEVWU0tJIE1JSEFJTE8KK01JUsSMScSGIEtPVklMSktBCitNSVLEjEnEhiBNSUxPUkFECitNSVLEjEnEhiBOSUtPTEEKK01JUsSMScSGIFJBRE9WQU4KK01JUsSMScSGIFNUT0pBTktBCitNSVLEjEnEhiBTVE9KQU4KK01JUkHFvUnEhiBBTlRVTgorTUlSQcW9ScSGIEJSQU5JU0xBVgorTUlSQcW9ScSGIEJSQU5LTworTUlSQcW9ScSGIEpFTEEKK01JUkHFvUnEhiBNQVJBCitNSVJBxb1JxIYgVkVTRUxJTktBCitNSVJBTEVNIEFITUVECitNSVJBTk9WScSGIEtTRU5JSkEgRFIgTEVLQVIKK01JUkFOT1ZJxIYgTUFKQQorTUlSQU5PVknEhiBNSVJLTworTUlSRcWgRVZJxIYgRFXFoEFOCitNSVJFxaBFVknEhiBSQURPSktBCitNSVJJxIYgxJBVUkEKK01JUknEhiBBR0FUQQorTUlSScSGIEJPxb1JREFSCitNSVJJxIYgREFORQorTUlSScSGIERSQUdPTUlSCitNSVJJxIYgRFJBR1VUSU4KK01JUknEhiBEVcWgQU5LQQorTUlSScSGIERVxaBBTgorTUlSScSGIERVxaBBTgorTUlSScSGIERVxaBLTworTUlSScSGIEpPU0lGCitNSVJJxIYgSk9WQU4KK01JUknEhiBKT1ZPCitNSVJJxIYgS0FUQQorTUlSScSGIEtBVElDQQorTUlSScSGIEtPVklMSktBCitNSVJJxIYgTUFSSUpBCitNSVJJxIYgTUlMQU4KK01JUknEhiBNSUxBTgorTUlSScSGIE1JTEFOCitNSVJJxIYgTUlMRU5BCitNSVJJxIYgTUlMS0EKK01JUknEhiBOSUtPTEEKK01JUknEhiBQQVZMRQorTUlSScSGIFJBSktPCitNSVJJxIYgUlXFvUlDQQorTUlSScSGIFNBxaBBCitNSVJJxIYgU0FWS0EKK01JUknEhiBTTUlMSkEKK01JUknEhiBTVEVWQU4KK01JUknEhiBTVE9KQU5LQQorTUlSScSGIFZBU0lMSUpFCitNSVJJTE9WIEFMRUtTQU5EQVIKK01JUklMT1YgTUlMQURJTiBEUgorTUlSSUxPViBaT1JLQQorTUlSSUxPVknEhiBEUkFHQU4KK01JUklMT1ZJxIYgR09SREFOQQorTUlSSUxPVknEhiBMQVpBUgorTUlSSUxPVknEhiBNTEFERU4KK01JUklMT1ZJxIYgU05Fxb1BTkEKK01JUklNQU5PViBEQVJBCitNSVJJTUFOT1YgVkxBRElNSVIKK01JUkpBxIxJxIYgQk9TQQorTUlSSkFOScSGIERBTklDQQorTUlSSkFOScSGIE1PUkFWS0EKK01JUkpBTknEhiBWQVNBCitNSVJKQU5JxIYgVkVSSUNBCitNSVJKQU5JTiBORVJBCitNSVJLQUMgU1RBTklTTEFWCitNSVJLQUpMT1ZJxIYgTUlMT1ZBTgorTUlSS0FKTE9WScSGIE1JTE9WQU4KK01JUktJxIYgQkxBR09KRQorTUlSS09OSiBTUkVET0pFCitNSVJLT05KRVYgQlJBTklTTEFWCitNSVJLT05KRVYgU05Fxb1BTkEKK01JUktPViDFvUVMSktPCitNSVJLT1Ygxb1JVkFOCitNSVJLT1YgxJBPUsSQRQorTUlSS09WIMSQVVLEkElKQQorTUlSS09WIMSQVVLEkElKQQorTUlSS09WIMSQVVJJQ0EKK01JUktPViBCT1NJTEpLQQorTUlSS09WIERVxaBJQ0EKK01JUktPViBFVklDQQorTUlSS09WIE1BUklDQQorTUlSS09WIFBBVkxFCitNSVJLT1YgUlXFvUlDQQorTUlSS09WIFNFS1VMQSBESVBMIE9FQworTUlSS09WIFNMT0JPREFOCitNSVJLT1YgU05Fxb1BTkEKK01JUktPViBTVEFOSVNMQVYKK01JUktPViBTVEVWQU4KK01JUktPViBTVEVWQU4KK01JUktPViBWRUxKS08KK01JUktPViBWTEFEQQorTUlSS09WIFpPUkFOCitNSVJLT1YgWk9SSUNBCitNSVJLT1YgWk9SS0EKK01JUktPVknEhiDEjEVET01JUgorTUlSS09WScSGIMW9SVZBTgorTUlSS09WScSGIMW9SVZLQQorTUlSS09WScSGIMW9SVZPSklOCitNSVJLT1ZJxIYgxJBPUsSQRQorTUlSS09WScSGIMSQT1LEkEUKK01JUktPVknEhiBBVlJBTQorTUlSS09WScSGIEJPUkEKK01JUktPVknEhiBCUkFOSVNMQVYKK01JUktPVknEhiBCUkFOS0EKK01JUktPVknEhiBCUkFOS0EKK01JUktPVknEhiBCUkFOS08KK01JUktPVknEhiBCUkFOS08KK01JUktPVknEhiBEQU5JQ0EKK01JUktPVknEhiBERUpBTgorTUlSS09WScSGIERSQUdBTkEKK01JUktPVknEhiBEUkFHSUNBCitNSVJLT1ZJxIYgRFJBR0lDQQorTUlSS09WScSGIERSQUdPTEpVQgorTUlSS09WScSGIERVxaBBTgorTUlSS09WScSGIERVxaBBTgorTUlSS09WScSGIERVxaBBTgorTUlSS09WScSGIERVxaBLTworTUlSS09WScSGIERVQlJBVktBCitNSVJLT1ZJxIYgRURJVEEKK01JUktPVknEhiBFTEEKK01JUktPVknEhiBFTUlMSUpBCitNSVJLT1ZJxIYgR0FWUklMTworTUlSS09WScSGIElWQU4KK01JUktPVknEhiBKT1ZBTktBCitNSVJLT1ZJxIYgSk9WQU4KK01JUktPVknEhiBKT1ZBTgorTUlSS09WScSGIEpPVkFOCitNSVJLT1ZJxIYgS0FUSUNBCitNSVJLT1ZJxIYgTEFaQVIKK01JUktPVknEhiBMSklMSkFOQQorTUlSS09WScSGIExKSUxKQU5BCitNSVJLT1ZJxIYgTUFSQQorTUlSS09WScSGIE1BUkEKK01JUktPVknEhiBNSUxBTiBEUgorTUlSS09WScSGIE1JTEFOCitNSVJLT1ZJxIYgTUlMQU4KK01JUktPVknEhiBNSUxBTgorTUlSS09WScSGIE1JTEFOCitNSVJLT1ZJxIYgTUlMSUNBCitNSVJLT1ZJxIYgTUlMSVNBVgorTUlSS09WScSGIE1JTElWT0ogRElQTCBJTkcKK01JUktPVknEhiBNSUxJVk9KRQorTUlSS09WScSGIE1JTEtBCitNSVJLT1ZJxIYgTUlMT8WgCitNSVJLT1ZJxIYgTUlMT1NBVgorTUlSS09WScSGIE1JTE9WQU4KK01JUktPVknEhiBNSUxVVElOCitNSVJLT1ZJxIYgTUlPRFJBRworTUlSS09WScSGIE1JUkpBTkEKK01JUktPVknEhiBNSVJLTworTUlSS09WScSGIE1JUk9TTEFWCitNSVJLT1ZJxIYgTkVOQUQKK01JUktPVknEhiBOT1ZBSworTUlSS09WScSGIFBFVEFSCitNSVJLT1ZJxIYgUEVUQVIKK01JUktPVknEhiBQRVRBUgorTUlSS09WScSGIFBFVEFSCitNSVJLT1ZJxIYgUFJFRFJBRworTUlSS09WScSGIFJBRE1JTEEKK01JUktPVknEhiBSQVRLTworTUlSS09WScSGIFNBTkpBCitNSVJLT1ZJxIYgU0FWQQorTUlSS09WScSGIFNMT0JPREFOIERSIExFS0FSCitNSVJLT1ZJxIYgU0xPQk9EQU4KK01JUktPVknEhiBTVEVWQU4KK01JUktPVknEhiBTVkVUSVNMQVYKK01JUktPVknEhiBUUklGVU4KK01JUktPVknEhiBWTEFESU1JUgorTUlSS09WScSGIFpPUkFOIERSCitNSVJLT1ZJxIYgWk9SQU4KK01JUktPVknEhiBaT1JBTgorTUlSS09WScSGIFpPUktBCitNSVJLT1ZJxIYgWk9SS0EKK01JUk5JxIYgSk9TSVAgRFIKK01JUk5JxIYgU0lMVklKQQorTUlSTknEhiBWVUtBxaBJTgorTUlST8WgRVZJxIYgTklOTworTUlST05JQ0tJIFJVxb1JQ0EKK01JUk9OSUNLSSBaVk9OSU1JUgorTUlST1NBVknEhiBNSUxFTktPCitNSVJPU0FWScSGIE1JTEVOS08KK01JUk9TQVZMSkVWIElMSU5LQQorTUlST1NBVkxKRVYgSk9DQQorTUlST1NBVkxKRVYgTUFSSUpBCitNSVJPU0FWTEpFViBNSUxFTktPCitNSVJPU0FWTEpFViBNTEFERU4KK01JUk9TQVZMSkVWScSGIEFMRUtTQU5EQVIKK01JUk9TQVZMSkVWScSGIEJPxaBLTworTUlST1NBVkxKRVZJxIYgQk9SSVNMQVYKK01JUk9TQVZMSkVWScSGIEJPUklWT0oKK01JUk9TQVZMSkVWScSGIEJSQU5LQQorTUlST1NBVkxKRVZJxIYgRE9CUklMQQorTUlST1NBVkxKRVZJxIYgSk9WQU4KK01JUk9TQVZMSkVWScSGIExFUE9TQVZBCitNSVJPU0FWTEpFVknEhiBMSlVCSUNBCitNSVJPU0FWTEpFVknEhiBMSlVCT0RSQUcKK01JUk9TQVZMSkVWScSGIE1BR0RBCitNSVJPU0FWTEpFVknEhiBNSUxFTktPCitNSVJPU0FWTEpFVknEhiBOSUtPTEEKK01JUk9TQVZMSkVWScSGIE5JS09MQQorTUlST1NBVkxKRVZJxIYgU1RFVkFOCitNSVJPU0FWTEpFVknEhiBTVFJBSElOSkEKK01JUk9TQVZMSkVWScSGIFNWRVRJU0xBVgorTUlST1NBVkxKRVZJxIYgVE9NSVNMQVYKK01JUk9TQVZMSkVWScSGIFRPTUlTTEFWCitNSVJPU0FWTEpFVknEhiBWRVJBCitNSVJPU0FWTEpFVknEhiBWRVJBCitNSVJPU0FWTEpFVknEhiBWT0pJU0xBVgorTUlST1NBVkxKRVZJxIYgWk9SQU4KK01JUk9TQVZMSkVWScSGIFpPUktBCitNSVJPU0xBVkxKRVZJxIYgRFXFoEFOS0EKK01JUk9WScSGIEFMRUtTQU5EQVIKK01JUk9WScSGIERJTUlUUklKRQorTUlST1ZJxIYgSUdPUgorTUlST1ZJxIYgTUFSSUpBCitNSVJPVknEhiBNSUxPCitNSVJPVknEhiBORU5BRAorTUlTQUlMT1ZJxIYgU1ZFVE9aQVIKK01JU0FKTE9WScSGIE1BUkdJVEEKK01JU0FMSkVWScSGIE5FTUFOSkEKK01JU0lNSSBLQU1CRVIKK01JU0lOSSBNSVJJTUFOCitNSVNJUktJxIYgTUlMT8WgCitNSVNJUktJxIYgVkxBREEKK01JU0lSTElTIEdFT1JHSU9TCitNSVNLSU4gRFJBR0FOCitNSVNLSU4gTUlMT8WgCitNSVNLSU4gTklLTworTUlTS0lOIFpEUkFWS08KK01JU0xJTUkgQUxJVkVCSQorTUlUQVIgVE9NQQorTUlUQVIgVkVSQQorTUlURVZTS0kgSVZBTgorTUlUScSGIMSMRURPTUlSCitNSVRJxIYgQUxFS1NBTkRBUgorTUlUScSGIEJPUklWT0oKK01JVEnEhiBCUkFOSVNMQVZBCitNSVRJxIYgQlJBTklTTEFWCitNSVRJxIYgQlVESU1JUgorTUlUScSGIERBTklDQQorTUlUScSGIERSQUdPTEpVQgorTUlUScSGIERSQUdPTEpVQgorTUlUScSGIERSQUdVVElOCitNSVRJxIYgRFXFoEFOCitNSVRJxIYgR09SREFOQQorTUlUScSGIElHT1IKK01JVEnEhiBKT1NJRgorTUlUScSGIEpPVkFOCitNSVRJxIYgSk9WQU4KK01JVEnEhiBNQVJJSkEKK01JVEnEhiBNSUxBTgorTUlUScSGIE1JTElWT0oKK01JVEnEhiBNSU9EUkFHIERSIExFS0FSCitNSVRJxIYgTUlPRFJBRworTUlUScSGIE1JUktPCitNSVRJxIYgTUlUQVIgRElQTCBJTkcKK01JVEnEhiBOSUtPTEEKK01JVEnEhiBQQVZMRQorTUlUScSGIFJBRElWT0pFCitNSVRJxIYgUlXFvUlDQQorTUlUScSGIFNMQVZLTworTUlUScSGIFNSRUJSQQorTUlUScSGIFNVWkFOQQorTUlUScSGIFRPTUlTTEFWCitNSVRJxIYgVkVMSU1JUgorTUlUScSGIFZFUkEKK01JVEnEhiBWSURPU0FWQQorTUlUScSGIFZJVE9NSVIKK01JVEtPVknEhiBEUkFHQU4KK01JVE/FoEVWScSGIEJPR0RBTgorTUlUT8WgRVZJxIYgTUlMRQorTUlUT8WgRVZJxIYgTkFEQQorTUlUT8WgRVZJxIYgU0FWQQorTUlUT1ZJxIYgQUxFS1NBTkRBUgorTUlUT1ZJxIYgRE9CUklTTEFWCitNSVRPVknEhiBNSVJPU0xBVgorTUlUUkHFoElOT1ZJxIYgTEpJTEpBTkEKK01JVFJBxaBJTk9WScSGIFpPUkEKK01JVFJBS09WScSGIMSQVVJBxJAKK01JVFJBS09WScSGIE1JUk9TTEFWCitNSVRSQUtPVknEhiBORU5BRAorTUlUUkFLT1ZJxIYgVUdMSkXFoEEKK01JVFJFS0FOScSGIE1JTE9SQUQKK01JVFJFU0tJIE1PTcSMSUxPCitNSVRSRVZTS0EgRVZET0tJSkEKK01JVFJFVlNLSSBMQU1CRQorTUlUUkVWU0tJIE1PTcSMSUxPCitNSVRSRVZTS0kgUkFEQQorTUlUUknEjEVWScSGIMW9SUtBCitNSVRSScSMRVZJxIYgQU7EkEVMS0EKK01JVFJJxIxFVknEhiBBTkEKK01JVFJJxIxFVknEhiBTTUlMSkEKK01JVFJJxIYgxJBVUk8KK01JVFJJxIYgQk9HScSGCitNSVRSScSGIE1JTEFOCitNSVRSScSGIE1JTEFOCitNSVRSScSGIE1JTE/FoAorTUlUUknEhiBORcSQTworTUlUUknEhiBORcSQTworTUlUUknEhiBOT1ZBSworTUlUUknEhiBSQURNSUxBCitNSVRSScSGIFZBTEVOVElOQQorTUlUUk9WxIxBTiBKVUxLSUNBCitNSVRST1bEjEFOIEtPU1RBCitNSVRST1bEjEFOIExBWkFSCitNSVRST1bEjEFOIExKVUJJTktPCitNSVRST1bEjEFOIExKVUJJTktPCitNSVRST1bEjEFOIE1JVEEKK01JVFJPVsSMQU4gUkFESU5LQQorTUlUUk9WxIxBTiBTVEVWQU4KK01JVFJPVsSMQU4gU1RKRVBBTgorTUlUUk9WxIxBTiBaQUdPUktBCitNSVRST1ZJxIYgxIxFRE9NSVIKK01JVFJPVknEhiDFvUFSS08KK01JVFJPVknEhiDFvUlWT1JBRAorTUlUUk9WScSGIMSQT0tPCitNSVRST1ZJxIYgQUxFS1NBTkRBUgorTUlUUk9WScSGIEFMRUtTQU5EQVIKK01JVFJPVknEhiBBTEVLU0FOREFSCitNSVRST1ZJxIYgQU5HRUxJTkEKK01JVFJPVknEhiBBTktBCitNSVRST1ZJxIYgQklMSkFOQQorTUlUUk9WScSGIEJPxaBLTworTUlUUk9WScSGIEJPUklTTEFWCitNSVRST1ZJxIYgQlJBTktPCitNSVRST1ZJxIYgQlJBTktPCitNSVRST1ZJxIYgREFOSUNBCitNSVRST1ZJxIYgREFSSU5LQQorTUlUUk9WScSGIERFU0FOS0EKK01JVFJPVknEhiBEUkFHQU4KK01JVFJPVknEhiBEUkFHQU4KK01JVFJPVknEhiBEUkFHSUNBCitNSVRST1ZJxIYgRFJBR0kKK01JVFJPVknEhiBEUkFHT0pMTworTUlUUk9WScSGIERSQUdPTEpVQgorTUlUUk9WScSGIERVxaBBTktBCitNSVRST1ZJxIYgRFXFoEFOCitNSVRST1ZJxIYgRFXFoEFOCitNSVRST1ZJxIYgRFXFoEtPCitNSVRST1ZJxIYgRFVCUkFWS0EKK01JVFJPVknEhiBHT0pLTworTUlUUk9WScSGIEdPU1BBVkEKK01JVFJPVknEhiBHT1NQQQorTUlUUk9WScSGIElLQQorTUlUUk9WScSGIElWQU4KK01JVFJPVknEhiBKRUxFTkEKK01JVFJPVknEhiBKRUxFTkEKK01JVFJPVknEhiBKRUxJQ0EKK01JVFJPVknEhiBKT1ZBTgorTUlUUk9WScSGIEpPVkFOCitNSVRST1ZJxIYgSk9WQU4KK01JVFJPVknEhiBMQVpBUgorTUlUUk9WScSGIExBWkFSCitNSVRST1ZJxIYgTEpJTEpBTkEKK01JVFJPVknEhiBMSlVCSVNBVgorTUlUUk9WScSGIExKVUJPTUlSCitNSVRST1ZJxIYgTEpVQk9NSVIKK01JVFJPVknEhiBNQVJLTworTUlUUk9WScSGIE1JSEFKTE8KK01JVFJPVknEhiBNSUhBSkxPCitNSVRST1ZJxIYgTUlMQU5LQQorTUlUUk9WScSGIE1JTEFOCitNSVRST1ZJxIYgTUlMQU4KK01JVFJPVknEhiBNSUxFTkEKK01JVFJPVknEhiBNSUxFTktPCitNSVRST1ZJxIYgTUlMSUNBCitNSVRST1ZJxIYgTUlMS0EKK01JVFJPVknEhiBNSUxPxaAKK01JVFJPVknEhiBNSUxPxaAKK01JVFJPVknEhiBNSUxPUkFECitNSVRST1ZJxIYgTUlMT1ZBTgorTUlUUk9WScSGIE1JT0RSQUcKK01JVFJPVknEhiBNSU9EUkFHCitNSVRST1ZJxIYgTUlPRFJBRworTUlUUk9WScSGIE1JUktPCitNSVRST1ZJxIYgTUlSS08KK01JVFJPVknEhiBNSVJPU0xBVgorTUlUUk9WScSGIE1JUk9TTEFWCitNSVRST1ZJxIYgTUlUQVIgRElQTCBJTkcKK01JVFJPVknEhiBNTEFERU4KK01JVFJPVknEhiBNTEFERU4KK01JVFJPVknEhiBNTEFERU4KK01JVFJPVknEhiBNT03EjElMTworTUlUUk9WScSGIE1PTUlSCitNSVRST1ZJxIYgTkFERcW9REEKK01JVFJPVknEhiBORU5BRAorTUlUUk9WScSGIE5JS09MQQorTUlUUk9WScSGIE9MR0EKK01JVFJPVknEhiBQRVRBUgorTUlUUk9WScSGIFJBRElTTEFWCitNSVRST1ZJxIYgUkFESVZPSkUKK01JVFJPVknEhiBSQURJVk9KCitNSVRST1ZJxIYgUkFETUlMQQorTUlUUk9WScSGIFJBRE1JTEEKK01JVFJPVknEhiBSQURPSklDQQorTUlUUk9WScSGIFJBRE9WQU4KK01JVFJPVknEhiBSQURPVkFOCitNSVRST1ZJxIYgUkFETworTUlUUk9WScSGIFJBVEtPCitNSVRST1ZJxIYgU0xBVktPCitNSVRST1ZJxIYgU0xBVktPCitNSVRST1ZJxIYgU0xPQk9EQU4KK01JVFJPVknEhiBTTE9CT0RBTgorTUlUUk9WScSGIFNMT0JPREFOCitNSVRST1ZJxIYgU09GSUpBCitNSVRST1ZJxIYgU1JFVEEKK01JVFJPVknEhiBTVEFLQQorTUlUUk9WScSGIFNUQU5JxaBBCitNSVRST1ZJxIYgU1RBTktPCitNSVRST1ZJxIYgU1RFVkFOCitNSVRST1ZJxIYgU1RFVkFOCitNSVRST1ZJxIYgU1VaQU5BCitNSVRST1ZJxIYgU1VaQU5BCitNSVRST1ZJxIYgVElIT01JUiBESVBMIElORworTUlUUk9WScSGIFRJSE9NSVIKK01JVFJPVknEhiBUT0RFCitNSVRST1ZJxIYgVkFMRVJJSkEKK01JVFJPVknEhiBWQVNBCitNSVRST1ZJxIYgVkVMSU1JUgorTUlUUk9WScSGIFZFUkEKK01JVFJPVknEhiBWRVJBCitNSVRST1ZJxIYgVkVSSUNBCitNSVRST1ZJxIYgVkVST05JS0EKK01JVFJPVknEhiBWRVNFTElOCitNSVRST1ZJxIYgVkxBRElNSVIKK01JVFJPVknEhiBWVcSMRVRBCitNSVRST1ZJxIYtVlVKTknEhiBTTUlMSkFOQQorTUlUUk9WScSGIFZVSk/FoAorTUlUUk9WScSGIFpMQVRLTworTUlUUlXFoEnEhiBCT1JJU0xBVgorTUlUUlXFoEnEhiBCUkFOSVNMQVYKK01JVFJVxaBJxIYgSkVMSVNBVkVUQQorTUlVxIxJTiBOQVRBTElKQQorTUlVxIxJTiBST1pJTkEKK01JVcSMSU4gU0xBVktPCitNSVXEjElOIFNWRVRPWkFSCitNSVXEjElOIFZFUklDQQorTUlaIE1BUklKQQorTUlaIFJPTUFOCitNSVpEUkFLIEJSQU5LTworTUpFREEgU0lNT04KK01MQcSQRU4gxJBVUk8KK01MQcSQRU4gRE1JVEFSCitNTEHEkEVOT1ZJxIYgQlJBTktBCitNTEHEkEVOT1ZJxIYgRUxFTkEKK01MQcSQRU5PVknEhiBSQURFCitNTEFERU5PVknEhiDFvUlWT1JBRAorTUxBREVOT1ZJxIYgxJBPUsSQRQorTUxBREVOT1ZJxIYgxJBPUsSQRQorTUxBREVOT1ZJxIYgQUxFS1NBTkRBUgorTUxBREVOT1ZJxIYgQUxFS1NBTkRBUgorTUxBREVOT1ZJxIYgQU7EkEVMS0EKK01MQURFTk9WScSGIEFOS0lDQQorTUxBREVOT1ZJxIYgQk/FoEtPCitNTEFERU5PVknEhiBCT0dEQU4KK01MQURFTk9WScSGIEJPU0lMSktBCitNTEFERU5PVknEhiBEQU5JTE8KK01MQURFTk9WScSGIERSQUdBTgorTUxBREVOT1ZJxIYgRFJBR0FOCitNTEFERU5PVknEhiBEUkFHT0xKVUIKK01MQURFTk9WScSGIERSQUdPTUlSCitNTEFERU5PVknEhiBEVcWgQU4KK01MQURFTk9WScSGIERVxaBBTgorTUxBREVOT1ZJxIYgR1JBRElNSVIKK01MQURFTk9WScSGIEpFTEVOQQorTUxBREVOT1ZJxIYgSkVMRU5BCitNTEFERU5PVknEhiBKRUxJQ0EKK01MQURFTk9WScSGIEpFTElDQQorTUxBREVOT1ZJxIYgSlVTVElOQQorTUxBREVOT1ZJxIYgTUFSQQorTUxBREVOT1ZJxIYgTUFSSU5BCitNTEFERU5PVknEhiBNSUhBSkxPCitNTEFERU5PVknEhiBNSUxBTiBESVBMIElORworTUxBREVOT1ZJxIYgTUlMQU4KK01MQURFTk9WScSGIE1JTEFOCitNTEFERU5PVknEhiBNSUxPUkFECitNTEFERU5PVknEhiBNSUxPUkFECitNTEFERU5PVknEhiBNSUxPVkFOCitNTEFERU5PVknEhiBNSUxPVkFOCitNTEFERU5PVknEhiBNTEFERU4KK01MQURFTk9WScSGIE5BREXFvURBCitNTEFERU5PVknEhiBORUJPSsWgQQorTUxBREVOT1ZJxIYtTklLT0xJxIYgR09SREFOQQorTUxBREVOT1ZJxIYgT0xHQQorTUxBREVOT1ZJxIYgUEVUQVIKK01MQURFTk9WScSGIFJBRElWT0oKK01MQURFTk9WScSGIFJBSktPCitNTEFERU5PVknEhiBSQU5LTworTUxBREVOT1ZJxIYgUlXFvUlDQQorTUxBREVOT1ZJxIYgU0FWQQorTUxBREVOT1ZJxIYgU0xPQk9EQU4KK01MQURFTk9WScSGIFNMT0JPREFOCitNTEFERU5PVknEhiBTUkJJU0xBVktBCitNTEFERU5PVknEhiBUSUhPTUlSCitNTEFERU5PVknEhiBUT01JU0xBVgorTUxBREVOT1ZJxIYgVE9NSVNMQVYKK01MQURFTk9WScSGIFVST8WgCitNTEFERU5PVknEhiBWRUtPU0xBVgorTUxBREVOT1ZJxIYgVkVSSUNBCitNTEFERU5PVknEhiBWT0pJU0xBVgorTUxBREVOT1ZJxIYgWkFHT1JLQQorTUxBREVOT1ZJxIYgWk9SQU5BCitNTEFERU5PVlNLSSBMT1pBTkEKK01MQURJTiBJTVJFCitNTEFESU4gTUFSR0lUQQorTUxBWkVWIFZBU0lMCitNTElOQVIgTVVIQVJFTQorTUxJTkFSIE1VU1RBRkEKK01MSU5LTyBBTUJST1pJSkUKK01MSU5LTyBEVcWgQU4KK01MSU5LTyBQRVRBUgorTUxJTktPIFpWT05JTUlSCitNT8SMIEpFTEVOQQorTU/EjCBKT1ZBTktBCitNT8WgTyBKT8W9RUYKK01PxaBPUklOQUMgxb1JVktPCitNT8WgT1JJTkFDIE5FTkFECitNT8WgT1JJTlNLSSBaQUdPUktBCitNT8WgT1JJTlNLSSBaT1JBCitNT8SGQU4gSkVMRU5BIERJUEwgSU5HCitNT8W9RSBFTUlMCitNT0NJxIYgTU9NSVIKK01PQ0lLIMSQVUxBCitNT0NJSyBJUkVOS0EKK01PQ0tPIEpBTgorTU9DS08tTUlMQURJTk9WScSGIFZJRVJBCitNT0NLTyBNSVJPU0xBVgorTU9DS08gU1RFVkFOCitNT0NOQUkgSVJFTkEKK01PQ05JIEpPVkFOCitNT0NOSSBNQVJJSkEKK01PQ05JIFNURVZBTgorTU9ERUxTS0kgQlJBTklTTEFWQQorTU9EScSGIE1JTEVOS08KK01PREnEhiBNSUxFTktPCitNT0RJxIYgTUlMSVZPSkUKK01PREnEhiBSQU5LTworTU9EScSGIFNMT0JPREFOCitNT0RJxIYgVE9NSVNMQVYKK01PREnEhiBUT01JU0xBVgorTU9ET8WgQU5PViBNQVJUQQorTU9ET8WgQU5PViBOSUtPTEEKK01PRFJBSCBWTEFESU1JUgorTU9EUkkgxaBBTkRPUgorTU9EUkkgRFJBR0FOCitNT0RSSSBFVkEKK01PRFJJxIYgSUxJSkEKK01PRFJJxIYgU1RBTktPCitNT0RSSU5JxIYgTUlMSUNBCitNT0RST05KQSBGRUhJTQorTU9GQVJESU4gU1BBU0VOS0EKK01PR0EgQlJBTktPCitNT0dBIEpPVkFOCitNT0dBIE1JTEFOIERSIExFS0FSCitNT0dBIE1MQURFTgorTU9HQSBQQUpBCitNT0dBIFNURVZBTgorTU9HQSBWRVJBCitNT0dJxIYgQUxFS1NBTkRBUgorTU9HScSGIEJPUklTTEFWCitNT0dJxIYgR09SQU5BCitNT0dJTiBBTEVLU0FOREFSCitNT0dJTiBBTEVLU0FOREFSCitNT0dJTiBBTEVLU0FOREFSCitNT0dJTiBCT1JJU0xBVgorTU9HSU4gSVJJTkEKK01PR0lOIEpFTEVOQQorTU9HSU4gSlVMSUpBTkEKK01PR0lOIEtTRU5JSkEKK01PR0lOIExBWkFSCitNT0dJTiBMSlVCScWgQQorTU9HSU4gTUFSQQorTU9HSU4gTUlMQU5BCitNT0dJTiBNSUxBTgorTU9HSU4gUEFWTEUKK01PR0lOIFBBVkxFCitNT0dJTiBQQVZMRQorTU9HSU4gUEVUQVIKK01PR0lOIFJBRE9NSVIKK01PR0lOIFJBRE9NSVIKK01PR0lOIFZJVE9NSVIKK01PSEHEjEkgQUxFS1NBTkRBUgorTU9IQcSMSSBMQVNMTworTU9IQU4gREVBTkEKK01PSEFOIEpPTgorTU9IQU4gUEVUQVIKK01PSEFOIFNNSUxKQU5BCitNT0hPUkEgRU1JTElKQU4KK01PSE9SScSGIERBTklDQQorTU9IT1JLTyBJTElKQQorTU9IT1JLTyBJTElKQQorTU9IT1JLTyBNQVJHSVRBCitNT0hPUktPIFJBSktPCitNT0pJxIYgRFXFoEFOCitNT0pJxIYgRFXFoEFOCitNT0pJxIYgSVZBTktBCitNT0pJxIYgTUlMSVZPSkUKK01PSknEhiBNSUxPUkFECitNT0pJxIYgTUlUQVIKK01PSknEhiBOSUtPTEEKK01PSknEhiBOSUtPTEEKK01PSknEhiBTTEFWS08KK01PSknEhkVWScSGIERFU0lNSVIKK01PSklOIFNPRklKQQorTU9KU0UgS0FUSUNBCitNT0pTRSBOQU5ET1IKK01PSlNFSkVWIEFMRUtTQU5EQVIKK01PSlNFSkVWIEtPTlNUQU5USU4gRElQTCBQSAorTU9KU0lKRVZJxIYgTklLT0xBCitNT0pTSUpFVknEhiBTQVZBCitNT0pTSUxPViBESU1JVFJJSkUKK01PSlNJTE9WIERSQUdBTgorTU9KU0lMT1YgTUlMSVNBVgorTU9KU0lMT1ZJxIYgTUlMT01JUgorTU9KU0lMT1ZJxIYgUEVUQVIKK01PSlNJTE9WScSGIFNMQVZJQ0EKK01PSlNJTE9WScSGIFZFUkEKK01PSlNJTE9WScSGIFZJRE9KRQorTU9KU0lOIERSQUdPTUlSCitNT0pTT1ZJxIYgQUxFS1NBTkRBUgorTU9KWkXFoCBBTEZSRUQKK01PSlpFxaAgTUFSSUpBCitNT0tVxaAgxaBBTkRPUgorTU9LVcWgIElNUkUKK01PS1XFoCBKT1ZBTgorTU9LVcWgIEtBTE1BTgorTU9LVcWgIExBU0xPCitNT0tVxaAgTEFTTE8KK01PS1XFoCBMQVNMTworTU9LVcWgIE1JS0xPxaAKK01PS1XFoCBUSUJPUgorTU9LVcWgIFpPTFRBTgorTU9MQUMgTUlMT1JBRAorTU9MQyBLQVRJQ0EKK01PTERPVkFOIExKVUJJTktBCitNT0xET1ZBTiBNQVJJSkEKK01PTERPVkFOT1YgQk/FoEtPCitNT0xET1ZBTk9WScSGIMSQT1LEkEUKK01PTERWQUkgRVJWSU4KK01PTERWQUkgSVpBQkVMQQorTU9MRFZBSSBMQVNMTworTU9MRFZBSSBPVE8KK01PTERWQUogRlJBTkpBCitNT0xEVkFKIEhJTERBCitNT0xEVkFKLU9MQUggRU1JTElKQQorTU9MRFZBSiBST1pBTElBCitNT0xEVkFKIFNURVZBTgorTU9MRFZBSiBWSUtUT1IKK01PTERWQUpJIFBSRURSQUcKK01PTEVST1YgUkFET1ZBTgorTU9MSkFDIMSQT1LEkEUKK01PTEpBQyBCUkFOS0EKK01PTEpBQyBHQVZSQQorTU9MSkFDIEdBVlJBCitNT0xKQUMgSk9WQU4KK01PTEpBQyBKT1ZBTgorTU9MSkFDIEtBVElDQQorTU9MSkFDIE1JTElDQQorTU9MSkFDIE1JT0RSQUcKK01PTEpBQyBOQURBCitNT0xKQUMgUEFKQQorTU9MSkFDIFNURVZBTgorTU9MSkFDIFNURVZBTgorTU9MSkFDIFZFUkEKK01PTEpTS0kgTUlST1NMQVYKK01PTEtVQyBQRVRBUiBESVBMIElORworTU9MS1VDIFZJUsSQSU5FTAorTU9MTkFSIMWgQU5ET1IKK01PTE5BUi3FoFRFRlVMSUsgSUxPTkEKK01PTE5BUiDEkE9SxJBFCitNT0xOQVIgQUxFS1NBTkRBUgorTU9MTkFSIEFORFJBxaAKK01PTE5BUiBBTkRSQcWgCitNT0xOQVIgQU5UT04KK01PTE5BUiBBUlBBRAorTU9MTkFSIEJSQU5JU0xBVkEKK01PTE5BUiBERcW9RQorTU9MTkFSIEVNSUxJSkEKK01PTE5BUiBFTUlMSUpBCitNT0xOQVIgRVZJQ0EKK01PTE5BUiBGRU9ET1IKK01PTE5BUiBGRVJFTkMgRElQTCBJTkcKK01PTE5BUiBJxaBUVkFOCitNT0xOQVIgScWgVFZBTgorTU9MTkFSIElNUkUgRFIKK01PTE5BUiBJTVJFCitNT0xOQVIgSU1SRQorTU9MTkFSIElSRU5BCitNT0xOQVIgSVZBTiBESVBMIElORworTU9MTkFSIElWQU4KK01PTE5BUiBJVkFOCitNT0xOQVIgSkFLT1YKK01PTE5BUiBKQU5PxaAKK01PTE5BUiBKQU4KK01PTE5BUiBKRUxFTkEKK01PTE5BUiBKRUxJQ0EKK01PTE5BUiBKRUxJU0FWRVRBCitNT0xOQVIgSkVMSVNBVkVUQQorTU9MTkFSIEpFTElTQVZFVEEKK01PTE5BUiBKT8W9RUYKK01PTE5BUiBKT8W9RUYKK01PTE5BUiBKT8W9RUYKK01PTE5BUiBKT8W9RUYKK01PTE5BUiBKT8W9RUYKK01PTE5BUiBKT0xBTktBCitNT0xOQVIgSk9TSVAKK01PTE5BUiBKT1NJUAorTU9MTkFSIEpPU0lQCitNT0xOQVIgSk9TSVAKK01PTE5BUiBKT1ZBTgorTU9MTkFSIEtBUkxPCitNT0xOQVIgS0FUQUxJTgorTU9MTkFSIExBU0xPCitNT0xOQVIgTEFaQVIKK01PTE5BUiBNQcSGQcWgCitNT0xOQVIgTUFSSUpBIERSCitNT0xOQVIgTUFSVEEgRFIKK01PTE5BUiBNQVRJTERBCitNT0xOQVIgTUlIQUpMTworTU9MTkFSIE1JSEFMSgorTU9MTkFSIE1JSEFMSgorTU9MTkFSIE1JSEFMSgorTU9MTkFSIE1JSEFMSgorTU9MTkFSIE1JTEFOCitNT0xOQVIgTUlST04KK01PTE5BUiBOSUtPTEEKK01PTE5BUiBTUE9NRU5LQQorTU9MTkFSIFNWRVRPU0xBVgorTU9MTkFSIFRFUkVaQQorTU9MTkFSIFZFUkEKK01PTE5BUiBWSUxNT8WgIERJUEwgSU5HCitNT0xOQVIgVkpFUkEKK01PTE5BUiBWTEFESU1JUgorTU9MTkFSIFpWT05LTworTU9NxIxJTE9WIERPQlJJSkEKK01PTcSMSUxPViBHQVZSSUxPCitNT03EjElMT1YgR0FWUklMTworTU9NxIxJTE9WIFNURVZBTgorTU9NxIxJTE9WScSGIMSMRURPTUlSCitNT03EjElMT1ZJxIYgQk9HT01JUgorTU9NxIxJTE9WScSGIEJSQU5LTyBEUgorTU9NxIxJTE9WScSGIERBTkUKK01PTcSMSUxPVknEhiBEUkFHQU4KK01PTcSMSUxPVknEhiBEVcWgQU5LQQorTU9NxIxJTE9WScSGIElMSUpBCitNT03EjElMT1ZJxIYgTUlIQUpMTworTU9NxIxJTE9WScSGIE1JTEFOCitNT03EjElMT1ZJxIYgTUlMQU4KK01PTcSMSUxPVknEhiBNSUxFCitNT03EjElMT1ZJxIYgTUlSQQorTU9NxIxJTE9WScSGIE1JUkEKK01PTcSMSUxPVknEhiBNT03EjElMTworTU9NxIxJTE9WScSGIFBFVEFSCitNT03EjElMT1ZJxIYgUlXFvUlDQQorTU9NxIxJTE9WScSGIFNNSUxKQQorTU9NxIxJTE9WScSGIFRPTUlTTEFWCitNT03EjElMT1ZJxIYgVkFTQQorTU9NxIxJTE9WScSGIFZJREFOCitNT03EjElMT1ZJxIYgVk9KSVNMQVYKK01PTcSMSUxPVknEhiBWVUtJQ0EKK01PTUFOSSBBS1JBTQorTU9NScSGIE9CUkFECitNT01JUk9WIElMSUpBCitNT01JUk9WIExKSUxKQU5BCitNT01JUk9WIE1JTEVOS08KK01PTUlST1YgTUlMRVRBCitNT01JUk9WIE1JUk9TTEFWCitNT01JUk9WIE5BREEKK01PTUlST1YgUEFKQQorTU9NSVJPViBTQVZBCitNT01JUk9WIFNWRVRMQU5BCitNT01JUk9WIFNWRVRPWkFSCitNT01JUk9WIFRPxaBBCitNT01JUk9WIFpPUklDQQorTU9NSVJPVknEhiBCUkFOS08KK01PTUlST1ZJxIYgSkVMSUNBCitNT01JUk9WScSGIEpPVklDQQorTU9NSVJPVknEhiBMQVpBCitNT01JUk9WScSGIFBFVEFSCitNT01JUk9WScSGIFNSRcSGS08KK01PTUlST1ZJxIYgU1RFVkFOCitNT01JUk9WU0tJLU1JTE/FoEVWScSGIENWRVRBTkEKK01PTkFSIEpBTktPCitNT05BUkVWIEFMRUtTQU5EQVIKK01PTkFSRVYgSk9TSVBBCitNT05BUkVWLVNPS09MScSGIE5BREEKK01PTkFST1YgRUxJWkFCRVRBCitNT05BUk9WIEpPWkVGSU5BCitNT05ET1ZJxIYgxJBVTEEKK01PTkRPVknEhiBBTEVLU0FOREFSCitNT05ET1ZJxIYgRlJBTkpBCitNT05ET1ZJxIYgS0FUSUNBCitNT05ET1ZJxIYgTEFESVNMQVYKK01PTkdFSkFSIFJBRE9TQVZBCitNT05JIElTTEFNCitNT05PS0kgxJBVTEEKK01PTk9LSSBJxaBUVkFOCitNT1IgxJBFUsSQCitNT1IgRlJBTkpBCitNT1IgR0FCT1IKK01PUiBHQUJPUgorTU9SIExBU0xPCitNT1IgWkRFTktPCitNT1JBIEFOQQorTU9SQSBBTkRSQcWgCitNT1JBIEtPUk5FTElKQQorTU9SQcSMQSDEkFVSQcSQCitNT1JBxIxBIE1JT0RSQUcKK01PUkHEjEEgTklLT0xBCitNT1JBxIxBIFJBRE1JTEEKK01PUkHEjEEgVkFTTworTU9SQcSMQSBWQVNPCitNT1JBxIxBTklOIE1JTE9SQUQKK01PUkFJxIYgxJBPUsSQRQorTU9SQVJFVknEhiBMSlVCSUNBCitNT1JBUkVWScSGIFZPSktBTgorTU9SQVZBQyBWT0pJU0xBVgorTU9SQVZFSyBKQU5LTworTU9SRSBNQVJJSkEKK01PUkUgU0lMVkVTVEVSCitNT1JHRU5UQUxFUiBKT1ZBTgorTU9SScSGIEhBTU8KK01PUklDIERSQUdVVElOCitNT1JJQyBHQUJPUgorTU9SSUMgSkFOT8WgCitNT1JJQyBKRUxFTkEKK01PUklDIEpVTElKQQorTU9SSUMgS0FSTE8KK01PUklDIExBSk/FoAorTU9SSUMgTEFTTE8KK01PUklDIExBU0xPCitNT1JJQyBMSURJSkEKK01PUklDIE1JTEFOQQorTU9SSUMgUEFVTEEKK01PUklDIFNJTEFSRAorTU9SSUMgU0xBVklDQQorTU9SSUMgWk9MVEFOCitNT1JPxaBFViBSQURPU0xBVgorTU9ST0tWQcWgScSGIEJPR0RBTktBCitNT1JPS1ZBxaBJxIYgTUlMSVNBVgorTU9ST0tWQcWgScSGIE5FTkFECitNT1JPS1ZBxaBJxIYgTklLT0xBCitNT1JPTUlMT1YgTEpVQklOS0EKK01PUk9UVkFOU0tJIFZJRE9TQVZBCitNT1JPVknEhiBNQVRJTERBCitNT1JPVknEhiBNSUxFTkEKK01PUk9WScSGIE5FU1RPUgorTU9ST1ZJQyBMQVNMTworTU9SVkFJIMWgQU5ET1IKK01PUlZBSSDEkEVSxJAKK01PUlZBSSBGRVJFTkMKK01PUlZBSSBKQU5PxaAKK01PUlZBSSBLQVJMTworTU9SVkFJIExBRElTTEFWCitNT1JWQUkgUEVUQVIKK01PU0nEhiBNSU9EUkFHCitNT1NLQUxKIExKVUJPTUlSCitNT1NLQUxKIE5JS09MQQorTU9TS0FMSiBOSUtPTEEKK01PU0tBTEogUkFETUlMQQorTU9TS1ZBTEogU0FWS0EKK01PU0xPVkFDIEtBVEFSSU5BCitNT1NOQUsgQU5EUklKQQorTU9TTkFLIFBBVkVMCitNT1NUQVJBQyBKRUxFTkEKK01PU1RBUlNLSSBTTEFWSUNBCitNT1NUScSGIFJBRE1JTEEKK01PU1VST1ZJxIYgTUlMSUpBTkEKK01PVE9LIMSQT1LEkEUKK01PVE9LIEJSQU5LTworTU9UT1JPxb1FU0tVIEFVUk9SQQorTU9WUklOIElWQU4KK01PWkVUScSGIE1MQURFTgorTVLEjEFSSUNBIFpPUkFOCitNUsWgQSBNSUxFTktBCitNUsWgScSGIMSQT1LEkEUKK01SxaBJxIYgQk9HREFOCitNUsWgScSGIERVxaBBTgorTVLFoEnEhiBNQVJLTworTVLFoEnEhiBNSUxFCitNUsWgTyBBTlRPCitNUsWgVUxKQSBOSUtPTEEKK01SxaBVTEpBIFJBRE9NSVIKK01SxJBBIEJPxaBLTworTVLEkEEgQk9HREFOCitNUsSQQSBNQU5FCitNUsSQQSBNSUxLQU4KK01SxJBBIE1JUk9TTEFWCitNUsSQQSBTVEVWQU4KK01SxJBBIFpPUkFOCitNUsSQQU4gRFXFoEFOCitNUsSQQU4gTUlIQUpMTworTVLEkEFOIFJVxb1JQ0EKK01SxJBBTiBTQVZBCitNUsSQQU4gU0FWQQorTVLEkEFOIFNURVZBTgorTVLEkEFOIFNURVZBTgorTVLEkEFOSU4gVkxBRElTTEFWCitNUsSQQU5PViDFvUFSS08KK01SxJBBTk9WIEFOSUNBCitNUsSQQU5PViBLU0VOSUpBCitNUsSQQU5PViBMQVpBCitNUsSQQU5PViBNQVJJTktPCitNUsSQQU5PViBNRUxBTklKQQorTVLEkEFOT1YgTUlST1NMQVYKK01SxJBBTk9WIE1PTcSMSUxPCitNUsSQQU5PViBORU1BTkpBCitNUsSQQU5PViBOT1ZJQ0EKK01SxJBBTk9WIFBST0tBCitNUsSQQU5PViBTTUlMSkEKK01SxJBBTk9WIFZVS09TQVZBCitNUsSQQU5PViBaRFJBVktPCitNUsSQRU4gSUxJSkEKK01SxJBFTiBKRUxFTkEKK01SxJBFTiBMQVpBUgorTVLEkEVOIE1JUktPCitNUsSQRU4gVkVMSktPCitNUsSQRU5PViBLQVRJQ0EKK01SxJBFTk9WScSGIEJSQU5JU0xBVgorTVLEkEVOT1ZJxIYgQlJBTktPCitNUsSQRU5PVknEhiBMSlVCT01JUgorTVLEkEVOT1ZJxIYgTkVCT0rFoEEKK01SxJBFTk9WScSGIFBFVEFSCitNUsSQRU5PVknEhiBWQVNPCitNUkHEjEFKQUMgQ1ZJSk8KK01SQcSMQUpBQyBERUpBTgorTVJBxIZFVknEhiBSQURJVk9KCitNUkFLT1ZJxIYgQk/FvUlEQVIKK01SQUtPVknEhiBMSlVCQU4KK01SQUtPVknEhiBTTE9CT0RBTktBCitNUkFPVknEhi1CQUhVTiBNSUxJSkFOQQorTVJBT1ZJxIYgRFJBR0FOCitNUkFPVknEhiBEVcWgQU4KK01SQU9WScSGIEtBVElDQQorTVJBT1ZJxIYgTUFSS08KK01SQU9WScSGIE9MR0EgRFIgUFJBVk5JSworTVJBT1ZJxIYgU0xPQk9EQU4KK01SQU9WScSGIFNUT0pBTgorTVJBVElOS09WScSGIEJPUklTIERSIExFS0FSCitNUkFUSU5LT1ZJxIYgRFXFoEFOIERSCitNUkFUSU5LT1ZJxIYgTEpVQklDQQorTVJBVklLIMW9SVZLQQorTVJBVklLIMSQVVJBCitNUkFWSUsgUEFWTEUKK01SQVogQU5EUklKQQorTVJBWkVLIEJFUk5BUkRPCitNUkFaT1ZJxIYgSk9TSVAKK01SQVpPVknEhiBNSUxBTkEKK01SQVpPVknEhiBNSUxBTgorTVJBWk9WScSGIE5FVkVOS0EKK01SREFLIMSQT1LEkEUKK01SREFLIE1JUkHFoAorTVJEQUtPVknEhiBCT1JJU0FWCitNUkRBS09WScSGIE1JTFVUSU4KK01SREFLT1ZJxIYgVkVSSUNBCitNUkRBS09WScSGIFZVS09TQVYKK01SREFMSiBQRVRBUgorTVJEScSGIEtBUk9MSU5BCitNUkRJxIYgTUFSS08KK01SREnEhiBTQU5KQQorTVJHQU5JxIYgSk9aTworTVJHQU5JxIYgU1JFxIZLTworTVJHScSGIE1JUkpBTkEKK01SS8WgScSGIMSQT1LEkEUKK01SS8WgScSGIEFMRUtTQU5EQVIKK01SS8WgScSGIEJPSkFOQQorTVJLxaBJxIYgRFJBR0FOCitNUkvFoEnEhiBEUkFHQU4KK01SS8WgScSGIEpFTEVOQQorTVJLxaBJxIYgSk9DQQorTVJLxaBJxIYgSk9DQQorTVJLxaBJxIYgS09TVEEKK01SS8WgScSGIE1JTE/FoAorTVJLxaBJxIYgTkVOQUQKK01SS8WgScSGIFNMQVZJQ0EKK01SS8WgScSGIFpBR09SS0EKK01SS8WgScSGIFpMQVRBCitNUktBScSGIEdPUkFOCitNUktBScSGIFNJTUEKK01SS0FJxIYgVE9NSVNMQVYKK01SS0FMSiBCT8W9SURBUgorTVJLRUxBIE1JUkEKK01SS0VMQSBWT0pJTgorTVJLScSGIEJSQU5JU0xBVgorTVJLScSGIE1JTEtBIE1SIFBICitNUktJxIYgTklLT0xBCitNUktJxIYgU01JTEpBCitNUktPSkVWScSGIEtPU1RBCitNUktPSkVWScSGIE1BUklKQQorTVJLT05KRVYgRFJBR0FOCitNUktPTkpJxIYgxb1JVk9KSU4KK01SS09WQcSMS0kgSkVMRU5BCitNUktPVkHEjEtJIE1JTE/FoAorTVJLT1ZBxIxLSSBNSUxPVkFOCitNUktPVknEhiBNTEFERU4KK01SS1XFoEnEhiBNSUxJQ0EKK01SS1XFoEnEhiBNSUxJQ0EKK01SS1XFoEnEhiBSQURJVk9KCitNUktVxaBJxIYgU1RFVkFOCitNUk1PxaAgTUlMQU4KK01STlXFoFRJSyBTVEVWQU4KK01SVknEhiBORURFTEpLTworTVJWScSGIFNBVkEKK01SVknEhiBTVEVWQU4KK01SVknEhiBWVUtPTUlSCitNUlZJQ0EgUlXFvUlDQQorTVJWT8WgIEpPVkFOCitNUlZPxaAgTUlIQUlMTworTVJWT8WgIE1JTEFOS0EKK01VxIxBTElDQSBEUkFHT0xKVUIKK01VxIxBTE8gU0xBVklDQQorTVXEjEFMT1YgU0xPQk9EQU4KK01VxIxBTE9WScSGIERVxaBLTworTVXEjEVOU0tJIExKVUJPTUlSCitNVcSMRU5TS0kgTklLT0xBCitNVcSMRU5TS0kgVkxBRElNSVIKK01VxIxJIMSQRVLEkCBESVBMIElORworTVXEjEkgQU5EUkHFoAorTVXEjEkgRlJBTkpBCitNVcSMSSBJTE9OQQorTVXEjEkgSUxPTktBCitNVcSMSSBKT8W9RUYKK01VxIxJIEpPxb1FRgorTVXEjElCQUJJxIYgTUlSSkFOQQorTVXEjElCQUJJxIYgTkFUQUxJSkEKK01VxIxJQkFCScSGIFJBRE9WQU4KK01VxIxJQkFCScSGIFJBRE9WQU4KK01VxIxJQkFCScSGIFNBVk8KK01VxIxJQkFCScSGIFZFUkEKK01VxIxVIEpPVkFOCitNVcSMVSBOSUtPTEEKK01VxaBBTiBNQVJJSkEKK01VxaBJxIYgRlJBTkpBCitNVcWgSUNLSSDEhklSQQorTVXFoElDS0kgxb1JVkFOCitNVcWgSUNLSSDFvUlWQU4KK01VxaBJQ0tJIMW9SVZBTgorTVXFoElDS0kgxJBPUsSQRQorTVXFoElDS0kgxJBPUsSQRQorTVXFoElDS0kgQk9HREFOCitNVcWgSUNLSSBCT0pBTkEKK01VxaBJQ0tJIEJSQU5JU0xBVgorTVXFoElDS0kgQlJBTktBCitNVcWgSUNLSSBET1JPVEVKQQorTVXFoElDS0kgRFJBR0FOCitNVcWgSUNLSSBEUkFHT1NMQVYKK01VxaBJQ0tJIERVxaBBTgorTVXFoElDS0kgRFXFoEFOCitNVcWgSUNLSSBEVcWgQU4KK01VxaBJQ0tJIEVWSUNBCitNVcWgSUNLSSBKT1ZBTgorTVXFoElDS0kgTEFaQVIKK01VxaBJQ0tJIE1BUklKQQorTVXFoElDS0kgTUlMQU5BCitNVcWgSUNLSSBNSUxFTktPCitNVcWgSUNLSSBNSUxJQ0EKK01VxaBJQ0tJIE1JTElDQQorTVXFoElDS0kgTUlMT1JBRAorTVXFoElDS0kgTkFUQcWgQQorTVXFoElDS0kgTk9WQUsKK01VxaBJQ0tJIFBST0tBCitNVcWgSUNLSSBTTEFWS08KK01VxaBJQ0tJIFNMQVZLTworTVXFoElDS0kgU09GSUpBCitNVcWgSUNLSSBTVEVWQU4KK01VxaBJQ0tJIFZFTEpLTworTVXFoElLScSGIEJPxb1JREFSCitNVcWgSUtJxIYgTEpVQklDQQorTVXFoElLScSGIFJBRE9NSVIKK01VxaBJS0nEhiBSQVRLTworTVXFoEtJTkpBIEJBUklDQQorTVXFoEtJTkpBIE1JUktPCitNVcW9RUsgVklEQQorTVXFvUlKRVZJxIYgUklTVE8KK01Vxb1JSyBCSUxKQU5BCitNVcW9SUsgTUFUQQorTVXFvUlLQS1UT1QgWk9MVEFOCitNVcW9TEFJIMWgQU5ET1IKK01VQyBaTEFUT01JUgorTVVDSSBKQU5PxaAKK01VRFJFTknEhiBNQVJJSkEKK01VRFJFTknEhiBSQURJU0xBVgorTVVEUkkgRVVHRU4KK01VRFJJIEpPQUtJTQorTVVEUkkgTEpVQklDQQorTVVEUkkgTUlST1NMQVYKK01VRFJJIFBFVEFSCitNVURSSSBQRVRBUgorTVVEUkkgVkVSQSBEUiBWRVRFUklORQorTVVEUkkgVkxBREEKK01VRFJJIFZMQURJTUlSCitNVURSSSBWTEFESU1JUgorTVVEUknEhiDEkFVSQQorTVVEUknEhiBEUkFHT0xKVUIKK01VRFJJxIYgTEpVQk9NSVIgRElQTCBJTkcKK01VRFJJxIYgUEVUQVIKK01VRFJJxIYgU0xBVktBCitNVURSSU5JxIYgQk/FoEtPCitNVURSSU5JxIYgQk/FoEtPCitNVURSSU5JxIYgQlJBTktPCitNVURSSU5JxIYgR09KS08KK01VRFJJTknEhiBNQUpBCitNVURSSU5JxIYgTUlIQUpMTworTVVEUklOScSGIE1JTEFOCitNVURSSU5JxIYgTUlMRVZBCitNVURSSU5JxIYgTUxBREVOCitNVURSSU5JxIYgUEVUQVIgRFIKK01VRFJJTknEhiBTTEFWS08KK01VRFJJTknEhiBTUEFTRU5LQQorTVVEUklOScSGIFNURVZPCitNVURSSU5JxIYgU1RPSkFOCitNVURSSU5JxIYgVkxBRElNSVIKK01VRFJJTknEhiBWT0pJTgorTVVEUklOU0tJIMSQT1LEkEUKK01VRFJJTlNLSSBBTEVLU0FOREFSCitNVURSSU5TS0kgQUxFS1NBTkRBUgorTVVEUklOU0tJIEJPUklTTEFWCitNVURSSU5TS0kgQk9TSUxKS0EKK01VRFJJTlNLSSBJVkFOS0EKK01VRFJJTlNLSSBMQVpBUgorTVVEUklOU0tJIE1JTEFOCitNVURSSU5TS0kgTUlMRVRBCitNVURSSU5TS0kgTUlMT8WgCitNVURSSU5TS0kgTUlST1NMQVYKK01VRFJJTlNLSSBPTEdBCitNVURSSU5TS0kgUEVUQVIKK01VRFJJTlNLSSBTQVZBCitNVURSSU5TS0kgU09GSUpBCitNVURSSU5TS0kgU1RFVkFOCitNVURSSU5TS0kgVk9KSVNMQVYKK01VR0/FoEEgTUlMTworTVVIQSBaVVpBTkEKK01VSEFSRU1JIEZVQUQKK01VSEFSRU1TS0ktQkXEhklST1ZJxIYgUkVNWklKQQorTVVIQVJJIExBSk/FoAorTVVISSBCRUxBCitNVUpBTk9WScSGIFNBRkVUCitNVUpBTk9WScSGIFNMT0JPREFOCitNVUpBTk9WScSGIFNWRVRMQU5BCitNVUpFWklOT1ZJxIYgQUxNQVMKK01VSkVaSU5PVknEhiBJUkVOQQorTVVKRVpJTk9WScSGIFpMQVRBTgorTVVKScSGIE1JTEFOCitNVUpLQU5PVknEhiBTQUxJSAorTVVKS0nEhiDFoEVGSUsKK01VSktJxIYgSEFKUlVESU4KK01VSktJxIYgSUxEVVpBCitNVUpLScSGIElaVURJTgorTVVKS0nEhiBKQUtVQgorTVVKS0nEhiBNRUhNRUQKK01VSy1TQU1BUkTFvUnEhiBFTUEKK01VTEFJIE1BVElKQQorTVVMQUogRVNUSUtBCitNVUxBSiBLQVRJQ0EKK01VTEnEhiBLQVRBUklOQQorTVVMScSGIE1JT0RSQUcKK01VTEnEhiBNSVJPU0xBVgorTVVMScSGIFBFVEFSCitNVUxJxIYgUkFETUlMTworTVVMScSGIFNWRVRJU0xBVgorTVVMScSGIFZFTEpLTworTVVMScSGIFpPUkFOCitNVU1Exb1JxIYgSEFaSVIKK01VTUlOIEFMRUtTQU5EQVIKK01VTUlOIE5JS09MQQorTVVNSU5BR0nEhiBBTElEQQorTVVNSU5PVknEhiBBTElNCitNVU1JTk9WScSGIEhBTUVECitNVU1PVknEhiBBTkRSSUpBCitNVU1PVknEhiBKT1ZBCitNVU1PVknEhiBTQVZBCitNVU7EhkFOIMSQT1LEkEUKK01VTsSGQU4gxJBPUsSQRQorTVVOxIZBTiDEkE9SxJBFCitNVU7EhkFOIEFMRUtTQU5EQVIKK01VTsSGQU4gQU5HRUxJTkEKK01VTsSGQU4gQk/FoEtPCitNVU7EhkFOIEJPxaBLTworTVVOxIZBTiBEUkFHQU4KK01VTsSGQU4gRFJBR09MSlVCCitNVU7EhkFOIERVxaBBTgorTVVOxIZBTiBKT1ZBTiBEUgorTVVOxIZBTiBKT1ZBTgorTVVOxIZBTiBMQVpBUgorTVVOxIZBTiBMQVpBCitNVU7EhkFOIE1JTEVOS08KK01VTsSGQU4gUkFET1ZBTgorTVVOxIZBTiBTTEFWS08KK01VTsSGQU4gU09GSUpBCitNVU7EhkFOIFRPRE9SCitNVU7EhkFOIFZBU0EKK01VTsSGQU4gVkVTRUxJTgorTVVOxIZBTiBWTEFESU1JUgorTVVOxIZBTiBaT1JBCitNVU5Exb1JxIYgxb1JVk9KSU4KK01VTkTFvUnEhiBCT0dEQU4KK01VTkTFvUnEhiBNSVJKQU5BCitNVU5Exb1JxIYgUEVUQVIKK01VTkRJTkcgRVRFTEtBCitNVU5JxaBJxIYgSk9WQU4KK01VTknFvUFCQSDEkE9SxJBFIERJUEwgSU5HCitNVU5Jxb1BQkEgQlJBTklTTEFWCitNVU5Jxb1BQkEgSk9WQU4KK01VTknFvUFCQSBLQVRJQ0EKK01VTknFvUFCQSBMQVpBUgorTVVOScW9QUJBIE1JTEVOS08KK01VTknFvUFCQSBWRURSQU5BCitNVU5JVExBSyBEUkFHQU4KK01VTkpBUyBCT8W9SURBUgorTVVOSkFTIERNSVRBUgorTVVOSkFTIE1JTEFOCitNVU5KQVMgU0lNS0EKK01VTkpBUyBTVEFOQQorTVVOSklOIMW9SVZLTworTVVOSklOIEFMRUtTQU5EQVIKK01VTkpJTi1CQU5JxIYgT0xHQSBESVBMIFBSQVZOSUsKK01VTkpJTiBLQUpJQ0EKK01VTkpJTiBMQVpBUgorTVVOSklOIFBFVEFSCitNVU5KSU4gU01JTEpBCitNVU5KSVpBIMW9RUxKS08KK01VTkpJWkEgSk9WQU5LQQorTVVOSyDEkE9SxJBFCitNVU5LQSBEVcWgQU5LQQorTVVOS0HEjEkgTUlIQUpMTworTVVOVEVBTiBJTElKQQorTVVOVEVBTiBUT0RPUgorTVVOWkFSIFZFUkEKK01VUkFUSSBNSUxKQVpJTQorTVVSQVRJIFNUQU5BCitNVVJBVE9WScSGIElCUkFISU0KK01VUkFUT1ZJxIYgSk9WTworTVVSQVRPVknEhiBNSUtBCitNVVJBVE9WScSGIFJBREVOS08KK01VUkFUT1ZJxIYgU0FCUklKQQorTVVSR0HFoEtJIEJSQU5LQQorTVVSR0HFoEtJIERBTklDQQorTVVSR0HFoEtJIERPQlJFTgorTVVSR0HFoEtJIERVxaBBTgorTVVSR0HFoEtJIEpPVkFOCitNVVJHQcWgS0kgTEpVQklOS0EKK01VUkdBxaBLSSBNQVRJSkEKK01VUkdBxaBLSSBNSUhBSkxPCitNVVJHQcWgS0kgTUlMSUNBCitNVVJHQcWgS0kgTUlMT8WgCitNVVJHQcWgS0kgTUlMT1JBRAorTVVSR0HFoEtJIE1JUk9TTEFWCitNVVJHQcWgS0kgTkVOQUQKK01VUkdBxaBLSSBOT1ZBSworTVVSR0HFoEtJIFBFVEFSCitNVVJHQcWgS0kgU0FWQQorTVVSR0HFoEtJIFNFVkVSCitNVVJHQcWgS0kgU0xPQk9EQU4gRFIKK01VUkdBxaBLSSBTVkVUT1pBUgorTVVSR0HFoEtJIFZVS09TQVZBCitNVVJHVUwgTEpVQk9NSVIKK01VUkdVTE9WScSGIE1PTUlSCitNVVJJxIYgU0xBVktPCitNVVJJxIYgU1RFVkFOCitNVVJJxIYgVkVMSktPCitNVVJJTkpJIEpPU0lQCitNVVJJTkpJIEtBVElDQQorTVVSSU5KSSBNSUxFVkEKK01VUklOSkkgU1RPSkFOS0EKK01VUlBIVSBNSVJKQU5BCitNVVJTRUxJIE1JUsSMRQorTVVSU0VMSSBORVpJUgorTVVSU0VMT1ZJxIYgTkFaSUYKK01VUlNFTE9WScSGIFJBSUYKK01VU0EgSVZBTktBCitNVVNBIEpFTElDQQorTVVTQUZJSkEgQkxBTktBCitNVVNJxIYgxaBBQkFOSUpBCitNVVNJxIYgxaBFTVNBCitNVVNJxIYgS0FUSUNBCitNVVNJxIYgTUlSS08KK01VU0nEhiBSQURPSktBCitNVVNJxIYgWk9SQU4KK01VU0lOIEtBTE1BTgorTVVTT1ZTS0kgSVNBCitNVVNUQUZJxIYgQlJBTktBCitNVVNUQUZJxIYgSEFSSVoKK01VU1RBRknEhiBNSUxJQ0EKK01VU1RBRknEhiBTRURBVAorTVVTVEFGT1NLSSBCRURSSUpBCitNVVNURURBTkFHScSGIEVTQUQKK01VU1VMSU4gR09SS0kKK01VU1VMSU4gTUlMT1JBRAorTVVTVUxJTiBTTEFWS08KK01VVEFCRMW9SUpBIE1JTE9WQU4KK01VVEFWxIxJRVYgSVZBTgorTVVUQVZExb1JxIYtR0lPTiBNQVJJSkEKK01VVEFWRMW9ScSGIE1JTEFOCitNVVRBVkTFvUnEhiBNSUxBTgorTVVUQVZExb1JxIYgTUlMT8WgCitNVVRBVkTFvUnEhiBSQVRLTworTVVUQVZExb1JxIYgVE9NSVNMQVYKK01VVEFWRMW9ScSGIFZFTEpLTworTVVUQVZExb1JxIYgWkxBVEEKK01VVEFWRMW9SUpBIE1JUkpBTkEKK01VVEnEhiDFvUlWS08KK01VVEnEhiBCUkFOS08KK01VVEnEhiBEVcWgQU4KK01VVEnEhiBEVcWgQU4KK01VVEnEhiBEVcWgQU4KK01VVEnEhiBEVcWgSUNBCitNVVRJxIYgS0FNRU5LTworTVVUScSGIExKSUxKQU5BCitNVVRJxIYgUkFET1NMQVYKK01VVEnEhiBTTUlMSkEKK01VVElCQVJJxIYgQUxFS1NBTkRBUiBEUgorTVVUSUJBUknEhiBBTEVLU0FOREFSCitNVVRJQkFSScSGIERSQUdPTEpVQgorTVVUSUJBUknEhiBJUkVOQQorTVVUSUJBUknEhiBMSUJVxaBBCitNVVRJQkFSScSGIE1JTEFOCitNVVRJQkFSScSGIE1JTEUKK01VVElCQVJJxIYgTkFUQcWgQQorTVVUSUJBUknEhiBTVEVWQU4KK01VVElCQVJJxIYgVE9ET1IKK01VVElOIMSQT1LEkEUKK01VVElOIEVNSUwKK01VVElOIFpEUkFWS08KK01VWkFMRVZTS0kgQUxFS1NBTkRBUgorTVVaRUtBIE1BUklKQU5BCitNVVpFUiBGUkFOSkEKK01VWkVSIE1JUk9TTEFWCitNVVpFUiBSQURPU0xBVgorTVVaSUtSQVZJxIYgQkxBxb1PCitNVVpJS1JBVknEhiBMSlVCT01JUiBEUgorTkHEjCBBTkRSSUpBCitOQcSMQSBKQU5PxaAKK05BxIxBIEpPU0lQCitOQcSMQSBPVElMSUpBCitOQcWgSUdBxIZJTiBNSUxFTktPCitOQcSGVUsgQUxFS1NBTkRBUgorTkHEhlVLIElSSU5BCitOQcSQIMSMT05HT1IKK05BxJAgxIxPTkdPUgorTkHEkCDFoEFORE9SCitOQcSQIMWgQU5ET1IKK05BxJAgxJBFUsSQCitOQcSQLUFCT05KSSBHQUJPUgorTkHEkCBBTEVLU0FOREFSCitOQcSQIEFOQQorTkHEkCBBTkdFTEEKK05BxJAgQkFSQkFSQQorTkHEkCBCRUxBCitOQcSQIEJSQU5LQQorTkHEkCBERcW9RQorTkHEkC1ET1JPVEnEhiBNQVJJSkEKK05BxJAgRFJBR0lTTEFWCitOQcSQIERVxaBBTktBCitOQcSQIEVSxb1FQkVUCitOQcSQIEVURUwKK05BxJAgRVVGRU1JSkEKK05BxJAgRkVSRU5DCitOQcSQIEZFUkVOQworTkHEkCBGRVJFTkMKK05BxJAgRkVSRU5DCitOQcSQIEZFUkVOQworTkHEkC1GT1JLQcWgIEtBVElDQQorTkHEkCBGUkFOSkEKK05BxJAgRlJBTkpBCitOQcSQIEZSQU5KQQorTkHEkCBHRU9SR0lOQQorTkHEkCBHSVpFTEEKK05BxJAtSEVWRcWgSSBMQVNMTworTkHEkCBJxaBUVkFOCitOQcSQIEnFoFRWQU4KK05BxJAgSUxPTkEKK05BxJAgSU1SRQorTkHEkCBJUklOQQorTkHEkCBJVkFOCitOQcSQIEpBTk/FoAorTkHEkCBKQU5PxaAKK05BxJAgSk/FvUVGCitOQcSQIEpPxb1FRgorTkHEkCBKT8W9RUYKK05BxJAgSk/FvUVGCitOQcSQIEpPU0lQCitOQcSQIEpPU0lQCitOQcSQIEpPU0lQCitOQcSQIEpPU0lQCitOQcSQIEpPU0lQCitOQcSQIEpPU0lQCitOQcSQIEpPVkFOS0EKK05BxJAgSk9WQU4KK05BxJAgS0FSTE8KK05BxJAgS0FST0xKCitOQcSQIEtBUk9MSgorTkHEkCBLQVRBUklOQQorTkHEkCBMQURJU0xBVgorTkHEkCBMQUpPxaAKK05BxJAgTEFKT8WgCitOQcSQIExBU0xPIERJUEwgSU5HCitOQcSQIExBU0xPCitOQcSQIExBU0xPCitOQcSQIExBU0xPCitOQcSQIExBU0xPCitOQcSQIExBU0xPCitOQcSQIExFT05BCitOQcSQIExFT05BCitOQcSQIExKVUJJQ0EKK05BxJAgTUFSR0FSRVRBCitOQcSQIE1BUklKQQorTkHEkCBNQVJJSkEKK05BxJAgTUFSVE9OCitOQcSQLU1FTEpLVVRJIEVESVQKK05BxJAgTUlIQUpMTworTkHEkCBNSUhBTEoKK05BxJAgTUlSQQorTkHEkCBNSVJBCitOQcSQIE1JUkEKK05BxJAgTUlSSkFOQQorTkHEkCBOQU5ET1IKK05BxJAgTkFORE9SCitOQcSQIE5FVkVOS0EKK05BxJAgTklLT0xBCitOQcSQIE5PVklDQQorTkHEkCBPVE8KK05BxJAgT1RPCitOQcSQIFBBVkxFCitOQcSQIFBBVkxFCitOQcSQIFBFVEFSCitOQcSQIFBFVEFSCitOQcSQIFBFVEFSCitOQcSQIFBFVEVSCitOQcSQIFBJUk/FoEtBCitOQcSQIFBJUk/FoEtBCitOQcSQLVBPUE9WIENFQ0lMSUpBCitOQcSQIFJPWkEKK05BxJAgU0xBVktPCitOQcSQIFNURVZBTgorTkHEkCBTVEVWQU4KK05BxJAgU1ZKQVRPU0xBVgorTkHEkC1UQU5BU0tPVknEhiBKVUxJSkEKK05BxJAgVElCT1IKK05BxJAgVkFTSUxJSkUKK05BxJAgVkVST05BCitOQcSQIFZJS1RPUklKQQorTkHEkCBWTEFESU1JUgorTkHEkCBWTEFESU1JUgorTkHEkCBWTEFESU1JUgorTkHEkCBWTEFESU1JUgorTkHEkCBaTEFUSU1JUgorTkHEkCBaT0xUQU4KK05BxJBBTElOIEJSQU5LTworTkHEkEFMSU4gSVNBCitOQcSQQkFCSSBGRVJFTkMKK05BxJBCQUJJIEZFUkVOQworTkHEkEJBQkkgSUdPUgorTkHEkEJBQkkgSVZLQQorTkHEkEJBQkkgSkFOSUtBCitOQcSQRVLEkCBJTE9OS0EKK05BxJBHRUxFUlQgSkFOT8WgCitOQcSQSEXEkEXFoEkgRlJBTkpBCitOQcSQSEXEkEXFoEkgSk9WQU4KK05BxJBIRcSQRcWgSSBMQURJU0xBVgorTkHEkElEQUkgS0FST0xKCitOQcSQTUVMSktVVEkgS0xBUkEKK05BxJBNScSGTyBWRVNFTElOQQorTkHEkE9SxJAgU0HFoEEKK05BxJBQQUwgSVJFTktBCitOQcSQVklOU0tJIEtTRU5JSkEKK05BxJBWSU5TS0kgUEVUQVIKK05BQ0VWIEdSVUpPCitOQURBxaBLSSBMQVpBUgorTkFEQcWgS0kgTUlMSVZPSgorTkFEQcWgS0kgTUlST1NMQVYKK05BREHFoEtJxIYgS0FUSUNBCitOQURBxb1ESSBSVcW9SUNBCitOQURBUkVWScSGIEJPUklTCitOQURCQU5EScSGIFNWRVRJU0xBViBESVBMIElORworTkFEQkFOVEnEhiBOQURBCitOQURJSCBGUklEUklICitOQURJSCBNSVJLTworTkFETEHEjEtJIEFMRUtTQU5EQVIKK05BRExBxIxLSSBNSUxPSkUKK05BRExBxIxLSSBSQURJVk9KCitOQURMQcSMS0kgUkFET1ZBTgorTkFETEHEjEtJIFNURVZLQQorTkFETFVLQcSMIE1BUklKQQorTkFEUkxKQU5TS0kgxJBPUsSQRQorTkFEUkxKQU5TS0kgREFOSUxLQQorTkFEUkxKQU5TS0kgTEpJTEpBTkEKK05BRFJMSkFOU0tJIExKVUJJxaBBCitOQURSTEpBTlNLSSBNSUxJVk9KCitOQURSTEpBTlNLSSBTTE9CT0RBTgorTkFEUkxKQU5TS0kgU1RFVkFOCitOQUVSQUMgU0xPQk9EQU4KK05BR0xJxIYgU0xBVktPCitOQUdSQURJxIYgSkVMRU5BCitOQUdSQURJxIYgTEpVQklDQQorTkFITE9WU0tJIEpPxb1FRgorTkFKQkFVRVIgSVZBTgorTkFKREFOT1YgR0VPUkdJCitOQUpEQU5PViBJVkFOCitOQUpERUsgVklOS08KK05BSkRPVlNLSSBUT01JU0xBVgorTkFKRE9WU0tJIFRPTUlTTEFWCitOQUpJxIYgQU5LSUNBCitOQUpJxIYgTUlMRU5LTworTkFKScSGIFpPUklDQQorTkFKVklSVCBHT1RGUklECitOQUpWSVJUIEpPVkFOCitOQUtBUkFEQSBEQVJJTktBCitOQUtBUkFEScSGIExKVUJPCitOQUtJxIYgRFJBR0FOCitOQUtJxIYgSVZBTgorTkFLScSGIEpBTkpBCitOQUtJxIYgTEpVQklOS0EKK05BS0nEhiBSQURPVkFOCitOQUtJxIYgU1RFVkFOCitOQUtPTcSMScSGIFpPUktBCitOQUtPViBKT1JEQU4KK05BTEnEhiBEUkFHSUNBCitOQUxJxIYgRU5JU0EKK05BTUVTTklLIE9MR0EKK05BTUxJxJBJIEZFUklEQQorTkFOQcWgSSDFvU9MVAorTkFOQcWgSSBBR0FUQQorTkFOQcWgSSBKVUxJSkFOQQorTkFOScSGIMSQT0tBCitOQU5PVlNLSSBWTEFESU1JUgorTkFOT1ZTS0lKIEFMRUtTQU5EQVIKK05BT0RPVknEhiBQQVZMRQorTkFSQUkgRkVSRU5DCitOQVJBTsSMScSGIElMT05LQQorTkFSQU7EjEnEhiBNSUxFCitOQVJBTsSMScSGIE1JTEUKK05BUkFOxIxJxIYgTUlMT1JBRAorTkFSQU7EjEnEhiBOQURBCitOQVJBTsSMScSGIFBFVEFSCitOQVJBTsSMScSGIFBFVEFSCitOQVJBTsSMScSGIFBFVEFSCitOQVJBTsSMScSGIFBFVEFSCitOQVJBTsSMScSGIFNBVkEKK05BUkFOxIxJxIYgU1RFVkFOCitOQVJBTsSMScSGIFNURVZBTgorTkFSQU7EjEnEhiBTVVpBTkEKK05BUkFOxIxJxIYgVkxBRElNSVIKK05BUkFORMW9ScSGIERBUktPCitOQVJBTkTFvUnEhiBFVkEKK05BUkFORMW9ScSGIE1JTEFOCitOQVJBTkTFvUnEhiBNSVJKQU5BCitOQVJBTkTFvUnEhiBWRVJBCitOQVJJxIYgTkVERUxKS08KK05BUyDEkEVSxJAKK05BUyBGRVJFTkMKK05BUyBGUkFOSkEKK05BUyBLQVJMTworTkFTS09WScSGIEJMQcW9QQorTkFTS09WScSGIFpPUktBCitOQVNPViBNSUxJVk9KCitOQVNUQVNJxIYgRFJBR0FOCitOQVNUQVNJxIYgSVZBTgorTkFTVEFTScSGIEpFTEVOQQorTkFTVEFTScSGIExKSUxKQU5BCitOQVNUQVNJxIYgUEFWTEUKK05BU1RBU0nEhiBSQURPU0xBVgorTkFTVEFTScSGIFNURVZBTiBEUiBMRUtBUgorTkFTVEFTScSGIFRBVEpBTkEKK05BU1RBU0nEhiBURU9ET1IKK05BU1RBU0lKRVZJxIYgTUlST1NMQVYKK05BU1RBU09WScSGIE1MQURFTgorTkFTVEFTT1ZJxIYgVE9OxIxBCitOQVNURVZJxIYgVE9ET1IKK05BU1RJxIYgSVJFTkEKK05BU1RJxIYgTEVQT1NBVkEKK05BU1RJxIYgTUlIQUlMTworTkFTVEnEhiBNSUxFTkEKK05BU1RJxIYgTUlMSUNBCitOQVNUScSGIE1JUkpBTkEKK05BU1RJxIYgTklLT0xFVEEKK05BU1RJxIYgT0xHQQorTkFTVEnEhiBSQURFCitOQVNUScSGIFJBRElTQVYKK05BU1RJxIYgUkFET01JUgorTkFTVEnEhiBSQVRPTUlSCitOQVNUScSGIFNWRVRPWkFSCitOQVNUScSGIFZMQURBCitOQVNUScSGIFpPUkFOIERSIExFS0FSCitOQVNUT1YgS0lSTworTkFTVE9WU0tJIERSQUdPCitOQVRPxaBFVknEhiBERUpBTgorTkFVTU9WIMSQT1LEkEUKK05BVU1PViBCUkFOS0EKK05BVU1PViBEUkFHT0xKVUIKK05BVU1PViBLQVRBUklOQQorTkFVTU9WIEtBVEFSSU5BCitOQVVNT1YgTUlMRU5BCitOQVVNT1YgTUlMSVZPSgorTkFVTU9WIFNURVZBTgorTkFVTU9WScSGIEpFTElDQQorTkFVTU9WScSGIE1JTElWT0ogRFIKK05BVU1PVknEhiBOSUtPTEEKK05BVU1PVknEhiBTTE9CT0RBTgorTkFVTU9WU0tJIE1JUktPCitOQVVNT1ZTS0kgTklLT0xBCitOQVVNT1ZTS0kgU09OSkEKK05BVU1PVlNLSSBTVE9KQU4KK05BVU1PVlNLSSBUQU5BUworTkFVTktPVknEhiBCT0dEQU5LQQorTkFVTktPVknEhiBTSU5JxaBBCitOQVZBTEEgTklLT0xBCitOQVZBTFXFoEnEhiBKVUxJSkFOQQorTkFWQUxVxaBJxIYgVk9KSU4KK05BVlJBVElMIMSQVVJBCitOQVZSQVRJTCBKT1NJUAorTkFWUkFUSUwgSk9TSVAKK05BVlJBVElMIFNMT0JPREFOCitOQVZSQVRJTCBaREVOS08KK05BVlJBVElMIFpPUkFOCitOQVpEUkFWRUNLSSBBTkRSQcWgCitORcSMT1ZTS0kgRElNSVRSSUpFCitORcWgRVZJxIYgQU7EkEVMS0EKK05FxaBFVknEhiBBTsSQRUxLTworTkXFoEnEhiBBQ0EKK05FxaBJxIYgQUxFS1NBTkRBUgorTkXFoEnEhiBBTEVLU0FOREFSCitORcWgScSGIEJPxb1JREFSCitORcWgScSGIEJSQU5JU0xBViBEUgorTkXFoEnEhiBCUkFOSVNMQVYKK05FxaBJxIYgRElNSVRSSUpFCitORcWgScSGIERVxaBBTgorTkXFoEnEhiBKRUZUQQorTkXFoEnEhiBKT1ZBTgorTkXFoEnEhiBKT1ZBTgorTkXFoEnEhiBKT1ZBTgorTkXFoEnEhiBKT1ZBTgorTkXFoEnEhiBLT1NBTkEKK05FxaBJxIYgTEVOS0EKK05FxaBJxIYgTEVPTklECitORcWgScSGIExKSUxKQU5BCitORcWgScSGIE1BUkpBTgorTkXFoEnEhiBNSUxBTgorTkXFoEnEhiBNSUxBTgorTkXFoEnEhiBNSUxBTgorTkXFoEnEhiBNSUxFTktPCitORcWgScSGIE1JTElDQQorTkXFoEnEhiBNSUxJVk9KCitORcWgScSGIE1JTEtBCitORcWgScSGIE1JTE9SQUQKK05FxaBJxIYgTUlSQQorTkXFoEnEhiBNSVJLTworTkXFoEnEhiBNSVJPU0xBVkEKK05FxaBJxIYgTUxBREVOCitORcWgScSGIE1MQURFTgorTkXFoEnEhiBORURFTEpLTworTkXFoEnEhiBQRVRBUgorTkXFoEnEhiBSQURJU0FWCitORcWgScSGIFNBVkVUQQorTkXFoEnEhiBTSU1FT04KK05FxaBJxIYgU0xBVktPCitORcWgScSGIFNMQVZPSktBCitORcWgScSGIFRPRE9SCitORcWgScSGIFZMQURJTUlSCitORcWgSU4gxb1BUktPCitORcWgSU4gSk9WQU5BCitORcWgSU4gSk9WQU4KK05FxaBJTiBNQVJLTworTkXFoElOIFNURVZBTgorTkXFoEtPViBEUkFHT1NMQVYgRFIKK05FxaBLT1YgU1RBTklTTEFWCitORcWgS09WIFZPSklTTEFWCitORcWgS09WScSGIMSQVVLEkEEKK05FxaBLT1ZJxIYgQUxFS1NBTkRBUgorTkXFoEtPVknEhiBEUkFHQU4KK05FxaBLT1ZJxIYgSVJFTkEKK05FxaBLT1ZJxIYgSkVMRU5BCitORcWgS09WScSGIExKVUJJxaBBCitORcWgS09WScSGIE1JSEFJTE8KK05FxaBLT1ZJxIYgTUlMQU4KK05FxaBLT1ZJxIYgTUlMSUpBTgorTkXFoEtPVknEhiBNSUxJU0FWCitORcWgS09WScSGIE1JTElWT0pFCitORcWgS09WScSGIE1JTEtBCitORcWgS09WScSGIE1JTE9WQU4KK05FxaBLT1ZJxIYgTUlUQQorTkXFoEtPVknEhiBORcWgS08KK05FxaBLT1ZJxIYgUEVSSUNBCitORcWgS09WScSGIFBFVEFSCitORcWgS09WScSGIFJBRElTQVYKK05FxaBLT1ZJxIYgUkFET01JUgorTkXFoEtPVknEhiBSQURPTkpBCitORcWgS09WScSGIFJFSk1PTkQKK05FxaBLT1ZJxIYgUlXFvUlDQQorTkXFoEtPVknEhiBTVEVWQU4KK05FxaBLT1ZJxIYtWkRSQVZJxIYgVkVSSUNBCitORcWgT1ZJxIYgREVTQU5LQQorTkXFoE9WScSGIERSQUdBTiBESVBMIElORworTkXFoE9WScSGIERSQUdBTkEKK05FxaBPVknEhiBEUkFHQU4KK05FxaBPVknEhiBJVkFOS0EKK05FxaBPVknEhiBNSUxPVkFOCitORcWgT1ZJxIYgUFJFRFJBRworTkXFoE9WScSGIFJBRE9NSVIKK05FxaBPVknEhiBSVcW9SUNBCitORcWgT1ZJxIYgVFJJVktBCitORcWgVElDS0kgSk9TSVAKK05FxaBUSUNLSSBKT1NJUAorTkXFoFRJQ0tJIE1JTElDQQorTkXFoFRJQ0tJIFNURVZBTgorTkXEhkFLIMSQT1LEkEUKK05FxIZBSyBBTEVLU0FOREFSCitORcSGQUsgQlJBTktPCitORcSGQUstS09SQcSGIEFOxJBFTEtBCitORcSGQUsgU1RFVkFOCitORcSGQUsgVkVSQQorTkXEhkFLIFpEUkFWS08KK05FxIZBS09WIE1BUklKQQorTkXEhkFLT1YgTUlMQU4KK05FxIZBS09WIE1JTEtBCitORcSGQUtPViBTSU1BCitORcSGQUtPViBTTE9CT0RBTgorTkXFvUnEhiBEQU1JUgorTkVBVE5JQ0EgRFXFoEFOCitORUFUTklDQSBSQURJVk9KIERJUEwgSU5HCitORUJFU05JIEJPUklTCitORUJPSsWgQSBTT0ZJSkEKK05FQlJJR0nEhiBKT1ZJQ0EKK05FQlJJR0nEhiBSQVRLTworTkVDRVYgRFJBR09MSlVCCitORUNJxIYgRFJBR09MSlVCCitORUNJxIYgVE/FoEEKK05FQ0lOIMW9SVZJQ0EKK05FQ0lOIFNURVZBCitORUNJTiBWT0pBCitORUNJTiBaTEFUT01JUgorTkVDS09WIERSQUdJTkpBCitORUNLT1YgR09SQU4KK05FQ0tPViBLQVRJQ0EKK05FQ0tPViBMQVpBUgorTkVDS09WIExPWklOS0EKK05FQ0tPViBNQVJJSkEKK05FQ0tPViBNSVJKQU5BCitORUNLT1YgTU9NxIxJTE8KK05FQ0tPViBOSUtPTEEKK05FREVMSktPViDFvUlWS08KK05FREVMSktPViDFvUlWS08KK05FREVMSktPViDEkE9SxJBFCitORURFTEpLT1YgxJBPUsSQRQorTkVERUxKS09WIMSQT1LEkEUKK05FREVMSktPViBBTsSQRUxLQQorTkVERUxKS09WIEFOS0EKK05FREVMSktPViBERVNBTktBCitORURFTEpLT1YgRFJBR0FOCitORURFTEpLT1YgRFJBR0lOSkEKK05FREVMSktPViBEVcWgQU4KK05FREVMSktPViBJTElKQQorTkVERUxKS09WIElSRU5BCitORURFTEpLT1YgSVZBTgorTkVERUxKS09WIEpFTEVOQQorTkVERUxKS09WIEpPVkFOCitORURFTEpLT1YgSk9WQU4KK05FREVMSktPViBKVUxJSkFOQQorTkVERUxKS09WIEtBVElDQQorTkVERUxKS09WIEtSU1RBCitORURFTEpLT1YgTEFaQVIgRElQTCBJTkcKK05FREVMSktPViBMSU5BCitORURFTEpLT1YgTEpJTEpBTkEKK05FREVMSktPViBMSlVCSUNBCitORURFTEpLT1YgTEpVQklDQQorTkVERUxKS09WIE1BUklKQQorTkVERUxKS09WIE1BUklKQQorTkVERUxKS09WIE1BUktPCitORURFTEpLT1YgTUlMQU4KK05FREVMSktPViBNSUxBTgorTkVERUxKS09WIE1JTElWT0oKK05FREVMSktPViBNSUxPxaAKK05FREVMSktPViBNSVJKQU5BCitORURFTEpLT1YgTUlSS08KK05FREVMSktPViBNSVJPU0xBVkEKK05FREVMSktPViBNSVRBCitORURFTEpLT1YgT0xHQQorTkVERUxKS09WIE9MR0EKK05FREVMSktPViBSQURFCitORURFTEpLT1YgUkFESVZPSgorTkVERUxKS09WIFJBRE9KS0EKK05FREVMSktPViBSQURPTUlSCitORURFTEpLT1YgU0lOScWgQQorTkVERUxKS09WIFNURVZBTgorTkVERUxKS09WIFRFT0RPUkEKK05FREVMSktPViBUT01JU0xBVgorTkVERUxKS09WIFZJTktBCitORURFTEpLT1YgVk9KSVNMQVYKK05FREVMSktPVknEhiDFvUlWS08KK05FREVMSktPVknEhiDFvUlWS08KK05FREVMSktPVknEhiDFvUlWS08KK05FREVMSktPVknEhiDFvUlWT0pJTgorTkVERUxKS09WScSGIMSQT1LEkEUKK05FREVMSktPVknEhiDEkE9SxJBFCitORURFTEpLT1ZJxIYgQUxFS1NBTkRBUgorTkVERUxKS09WScSGIEFMRUtTQU5EQVIKK05FREVMSktPVknEhiBBTkRSSUpBCitORURFTEpLT1ZJxIYgQk9HT01JUgorTkVERUxKS09WScSGIEJPUklTTEFWIERJUEwgSU5HCitORURFTEpLT1ZJxIYgQk9SS0EKK05FREVMSktPVknEhiBCT1NJTEpLQQorTkVERUxKS09WScSGIERBUklOS0EKK05FREVMSktPVknEhiBET0JSSUxBCitORURFTEpLT1ZJxIYgRE9CUklOS0EKK05FREVMSktPVknEhiBEUkFHQU4KK05FREVMSktPVknEhiBKQURSQU5LQQorTkVERUxKS09WScSGIEpFTEVOQQorTkVERUxKS09WScSGIEpPUkRBTgorTkVERUxKS09WScSGIEpPVkFOCitORURFTEpLT1ZJxIYgSk9WQU4KK05FREVMSktPVknEhiBKVUdPU0xBVgorTkVERUxKS09WScSGIEpVTEtJQ0EKK05FREVMSktPVknEhiBKVVNUQQorTkVERUxKS09WScSGIExFUE9TQVZBCitORURFTEpLT1ZJxIYgTEpVQk9NSVIKK05FREVMSktPVknEhiBNQVJLTworTkVERUxKS09WScSGIE1JTEFOCitORURFTEpLT1ZJxIYgTUlMQU4KK05FREVMSktPVknEhiBNSUxBTgorTkVERUxKS09WScSGIE1JTEVOS08KK05FREVMSktPVknEhiBNSUxJSkEKK05FREVMSktPVknEhiBNSUxJU0FWCitORURFTEpLT1ZJxIYgTUlMT0pLQQorTkVERUxKS09WScSGIE1JTE9KS0EKK05FREVMSktPVknEhiBNSUxVVElOCitORURFTEpLT1ZJxIYgTUlSSkFOQQorTkVERUxKS09WScSGIE1JUk9TTEFWCitORURFTEpLT1ZJxIYgTUlST1NMQVYKK05FREVMSktPVknEhiBORUJPSsWgQQorTkVERUxKS09WScSGIE5JS09MQQorTkVERUxKS09WScSGIFBBVkEKK05FREVMSktPVknEhiBSQURPSklDQQorTkVERUxKS09WScSGIFJBRE9NSVIKK05FREVMSktPVknEhiBSQURPVkFOCitORURFTEpLT1ZJxIYgU0lNQQorTkVERUxKS09WScSGIFNJTUEKK05FREVMSktPVknEhiBTTEFWS08KK05FREVMSktPVknEhiBTTE9CT0RBTktBCitORURFTEpLT1ZJxIYgU0xPQk9EQU5LQQorTkVERUxKS09WScSGIFNMT0JPREFOCitORURFTEpLT1ZJxIYgU09GSUpBCitORURFTEpLT1ZJxIYgU1JFVEEKK05FREVMSktPVknEhiBTVEFOSU1JUgorTkVERUxKS09WScSGIFNURVZBTgorTkVERUxKS09WScSGIFNURVZBTgorTkVERUxKS09WScSGIFNURVZBTgorTkVERUxKS09WScSGIFNWRVRJU0xBVgorTkVERUxKS09WScSGIFNWRVRJU0xBVgorTkVERUxKS09WScSGIFNWRVRPWkFSCitORURFTEpLT1ZJxIYgVkVSQQorTkVERUxKS09WScSGIFZFUklDQQorTkVERUxKS09WScSGIFZMQURJU0xBViBEUgorTkVERUxKS09WScSGIFZPSklTTEFWCitORURFTEpLT1ZJxIYgVlXEjEtPCitORURFTEpLT1ZJxIYgWkFHT1JLQQorTkVERUxKS09WScSGIFpMQVRBCitORURJxIYgxaBQSVJPCitORURJxIYgQklMSkFOQQorTkVEScSGIEJPUklTTEFWCitORURJxIYgQk9SSkFOS0EKK05FREnEhiBEQVJJTktBCitORURJxIYgREVTQU5LQSBQUk9GRVNPUgorTkVEScSGIERSQUdPU0xBVgorTkVEScSGIEpFTEVOQQorTkVEScSGIEpFTElTQVZFVEEKK05FREnEhiBKT1ZBTiBESVBMIElORworTkVEScSGIEpPVkFOCitORURJxIYgS0FUSUNBCitORURJxIYgS0FUSUNBCitORURJxIYgTEFaQVIKK05FREnEhiBMQVpBUgorTkVEScSGIExBWkFSCitORURJxIYgTEFaQVIKK05FREnEhiBMSlVCSUNBCitORURJxIYgTUVMQU5JSkEKK05FREnEhiBNSUxBTgorTkVEScSGIE1JTEFOCitORURJxIYgTUlMQU4KK05FREnEhiBNSUxFTktPCitORURJxIYgTUlMT8WgCitORURJxIYgTUlMT0pFCitORURJxIYgTUlMT1ZBTgorTkVEScSGIE1JUk9TTEFWCitORURJxIYgTUxBREVOCitORURJxIYgTkVOQUQKK05FREnEhiBOSUtPTEEKK05FREnEhiBQRVRBUgorTkVEScSGIFJBRE/FoAorTkVEScSGIFJBRE9NSVIKK05FREnEhiBSQURPU0xBVgorTkVEScSGIFJBRE9TTEFWCitORURJxIYgU0FWQQorTkVEScSGIFNNSUxKQQorTkVEScSGIFNORcW9QU5BCitORURJxIYtU1JFTUFDIE5BREEKK05FREnEhiBTVEVWQU4KK05FREnEhiBWRVJBCitORURJxIYgVklEQQorTkVEScSGIFZMQURJTUlSCitORURJxIYgWkxBVE9KRQorTkVEScSGIFpPUkFOCitORURJTU9WScSGIEJPxb1PCitORURJTU9WScSGIERSQUdBTgorTkVESU1PVknEhiBHT1JEQU5BCitORURJTknEhiBTUkVURU4KK05FRElOScSGIFpPUkFOCitORURPTUHEjEtJIE1JTEFOCitORURPTUHEjEtJIFNURVZBTgorTkVET1ZJxIYgQU5LSUNBCitORURPVknEhiBNSVJPCitORURPVknEhiBNSVJPCitORURPVknEhiBWTEFETworTkVEVcSMScSGIFNWRVRPWkFSCitORURVxIxJTiBBTEVLU0FOREFSCitORURVxIxJTiBEUkFHSUNBCitORURVxIxJTiBMQVpBUiBESVBMIElORworTkVEVcSMSU4gTUlMRU5BCitORURWSURFSyBCT1JJUyBEUgorTkVHTEnEhiDEkE9SxJBFCitORUdMScSGIEtBVElDQQorTkVHT1ZBTk9WScSGIMW9SVZLTworTkVHT1ZBTk9WScSGIEJSQU5LTworTkVHT1ZBTk9WScSGIExBWkFSCitORUdSVSBCSVNFUktBCitORUdVxaBFVknEhiBQQUpBCitORUpHRUJBVUVSIEFMRUtTQU5EQVIgRFIgUFJPRgorTkVNxIxBTklOIMSQVVLEkElDQQorTkVNxIxBTklOIE1BUklKQQorTkVNxIxBTklOIE1JUkpBTkEKK05FTcSMRVYgQk9SSVZPSgorTkVNxIxFViBEVcWgS08KK05FTcSMRVYgSkVMRU5BCitORU3EjEVWIE5JS09MQQorTkVNxIxFViBTUkJJTktPCitORU3EjEVWScSGIE1BUktPCitORU3EjEVWScSGIFBFVEFSCitORU1BIFZBTEVSSUpBCitORU1FxIxFSyBST8W9QQorTkVNRcWgIEpFTEEKK05FTUXFoCBTTE9CT0RBTktBCitORU1FQyBBTlRVTgorTkVNRUMgQU5UVU4KK05FTUVDIEVNQU5VRUwKK05FTUVDIExKVURNSUxBCitORU1FVCDFoEFORE9SCitORU1FVCBBTkRSSUpBCitORU1FVCBBTlRBTAorTkVNRVQgQU5UQUwKK05FTUVUIEFOVEFMCitORU1FVCBBUlBBRAorTkVNRVQgQk9SSVNMQVZLQQorTkVNRVQgREXFvUUKK05FTUVUIERFSkFOCitORU1FVCBFUk5FU1QKK05FTUVUIEdFUkdFTEoKK05FTUVUIEdFWkEgRFIKK05FTUVUIEdFWkEKK05FTUVUIEnFoFRWQU4KK05FTUVUIEnFoFRWQU4KK05FTUVUIEnFoFRWQU4KK05FTUVUIElMT05BCitORU1FVCBJTE9OQQorTkVNRVQgSUxPTktBCitORU1FVCBKVUxJSkFOQQorTkVNRVQgS0FSTE8KK05FTUVUIEtBUkxPCitORU1FVCBLQVRJQ0EKK05FTUVUIExBSk/FoAorTkVNRVQgTEFTTE8KK05FTUVUIExBU0xPCitORU1FVCBMSklMSkFOQQorTkVNRVQgTUFSSUpBTkEKK05FTUVUIE1BUklKQQorTkVNRVQgTUFSSUpBCitORU1FVCBNSUhBTEoKK05FTUVUIE1JTEtBCitORU1FVCBNSVJKQU5BCitORU1FVC1NVcSMSSBNQVJJSkEKK05FTUVUIE9MSVZFUkEKK05FTUVUIE9UTworTkVNRVQgUEVUQVIKK05FTUVUIFJPWkFMSUpBCitORU1FVCBSVURPTEYKK05FTUVUIFNURVZBTgorTkVNRVQgU1RPSkFOS0EKK05FTUVUIFRJQk9SCitORU1FVCBWSU9MRVRBCitORU1FVCBaT0xUQU4KK05FTUVUIFpPTFRBTgorTkVNRVRIIElSRU5BCitORU5BRCBTSU1PCitORU5BREnEhiBNSUxBTgorTkVOQURJxIYgTUlMRU5LTworTkVOQURJxIYgTUlMT1JBRAorTkVOQURJxIYgUkFUS08KK05FTkFET1Ygxb1JVktPCitORU5BRE9WIEFNQUxJSkEKK05FTkFET1YgQU5LQQorTkVOQURPViBCUkFOSVNMQVYKK05FTkFET1YgRFJBR09NSVIKK05FTkFET1YgSkVWUk9TSU1BCitORU5BRE9WIEtBTUVOS08KK05FTkFET1YgS09TVEEgRElQTCBJTkcKK05FTkFET1YgTUlMRU5LTworTkVOQURPViBNSUxFTktPCitORU5BRE9WIE9MR0EKK05FTkFET1YgUEVUQVIKK05FTkFET1YgUkFKS08KK05FTkFET1YgU1RFVkFOCitORU5BRE9WIFZPSklTTEFWCitORU5BRE9WScSGIEJPUklTTEFWCitORU5BRE9WScSGIERBTklDQQorTkVOQURPVknEhiBEUkFHSUNBCitORU5BRE9WScSGIERVxaBBTgorTkVOQURPVknEhiBKVUxLSUNBCitORU5BRE9WScSGIE1JSEFKTE8KK05FTkFET1ZJxIYgTUlMRU5LTyBEUgorTkVOQURPVknEhiBNSVRBUgorTkVOQURPVknEhiBQQU5UQQorTkVOQURPVknEhiBQRVRBUgorTkVOQURPVknEhiBTTEFWTkEKK05FTkFET1ZJxIYgU0xPQk9EQU4KK05FTkFET1ZJxIYgVkFTSUxJSkUKK05FTkVaScSGIMSQT1LEkEUKK05FTkVaScSGIERBUktPCitORU5FWknEhiBNSVJPU0xBVgorTkVORVpJxIYgUkFERU5LTworTkVORVpJxIYgUkFESVNBVgorTkVOScSGIMSQT1LEkEUKK05FTknEhiBCUkFOSU1JUgorTkVOScSGIFNBVkEKK05FTknEhiBWRVJBCitORU5JxIYgVkVSSUNBCitORU5JTiDFvUlWS08KK05FTklOIERFSkFOCitORU5JTiBEUkFHSU5KQQorTkVOSU4gRFJBR09NSVIKK05FTklOIEpBU0VOS0EKK05FTklOIExFTktBCitORU5JTiBNQVJBCitORU5JTiBNSUxBTgorTkVOSU4gTUlMSUNBCitORU5JTiBNSUxJQ0EKK05FTklOIE1JTE9SQUQKK05FTklOIE1JUktPCitORU5JTiBSQUpLTworTkVOSU4gU0FWQQorTkVOSU4gU0xBVktPCitORU5JTiBUT01JU0xBVgorTkVOSU4gVkFTQQorTkVPRklUT1ZJxIYgREVKQU4KK05FUElMIEFOVFVOCitORVBPS09KxIxJQ0tJIEFMRUtTQU5EQVIKK05FUkEgT1JMRUFOQQorTkVSQUMgTUxBRElOS08KK05FUkFDIFBFUk8KK05FUkFDIFNMT0JPREFOCitORVJBTsSMScSGIE5JS09MQQorTkVSQU5Exb1JxIYgQk/FoEtPCitORVJBTkTFvUnEhiBCUkFOSVNMQVYKK05FUkFORMW9ScSGIEpBU01JTkEKK05FUkFORMW9ScSGIE1BS1NJTQorTkVSQU5Exb1JxIYgTkVWRU5LQQorTkVSQU5Exb1JxIYgU1RPSkFOS0EKK05FUkVSIMSQVVJBCitORVJFUiBBTEVLU0FOREFSCitORVJUSUNBIFNURVZBTgorTkVTS0FMScSGIEVWR0VOSUpFCitORVNLQUxJxIYgTEVPTkFSRE8KK05FU1RPUk9WIMW9RUxKS08KK05FU1RPUk9WIEFMRUtTQU5EQVIKK05FU1RPUk9WIERSQUdPTEpVQgorTkVTVE9ST1YgTEFaQVIKK05FU1RPUk9WIE1JTEFOIERJUEwgSU5HCitORVNUT1JPViBNSVJLTworTkVTVE9ST1YgU0xPQk9EQU4KK05FU1RPUk9WScSGIMW9SVZPVEEKK05FU1RPUk9WScSGIEJJTEpBTkEKK05FU1RPUk9WScSGIEJMQUdPSkUKK05FU1RPUk9WScSGIEJPSkFOQQorTkVTVE9ST1ZJxIYgQk9SSVMKK05FU1RPUk9WScSGIERSQUdBTgorTkVTVE9ST1ZJxIYgRFJBR09MSlVCCitORVNUT1JPVknEhiBEUkFHVVRJTgorTkVTVE9ST1ZJxIYgRFXFoEFOS0EKK05FU1RPUk9WScSGIEdBVlJBCitORVNUT1JPVknEhiBJU0EKK05FU1RPUk9WScSGIExKSUxKQU5BCitORVNUT1JPVknEhiBNSUxFCitORVNUT1JPVknEhiBOQURBCitORVNUT1JPVknEhiBOQURFxb1EQQorTkVTVE9ST1ZJxIYgUkFETUlMQQorTkVTVE9ST1ZJxIYgUkFET1ZBTgorTkVTVE9ST1ZJxIYgU0FWQQorTkVTVE9ST1ZJxIYgU0xBVklDQQorTkVTVE9ST1ZJxIYgU0xPQk9EQU4KK05FU1RPUk9WScSGIFZMQURJTUlSCitORVNUT1JPVknEhiBWTEFESU1JUgorTkVWQUpEScSGIFZFTElNSVIKK05FVklET1bEjEnEhiBMSlVCSUNBCitORVZJRE9WxIxJxIYgTUlMS0EKK05FVklET1bEjEnEhiBTQVZBCitORVZPTEnEhiBBTklDQQorTkVaSVJJIEFSSUYKK05FWklST1YgQUxKSUxKCitORVpJUk9WIFZFTEnEjEtPCitOScSMScSGIE5BREEKK05JxIxJxIYgUFJFRFJBRworTknFoEFWScSGIEtSSVNUSU5BCitOScWgQVZJxIYgTUlMVVRJTgorTknFoEFWScSGIFBBVkxFCitOScWgQVZJxIYgUkFET1NMQVYKK05JxaBFVknEhiDEkE9SxJBFCitOScWgRVZJxIYgxJBVUkEKK05JxaBFVknEhiBKT1ZJQ0EKK05JxaBFVknEhiBLQVRJQ0EKK05JxaBFVknEhiBPTEdBCitOScWgRVZJxIYgU0FWQQorTknFoEnEhiBEUkFHQU4KK05JxaBJxIYgTUxBxJBFTgorTknFoEtBTk9WScSGIEJPxaBLTworTknFoEtBTk9WScSGIExKVVBLTworTknFoEtBTk9WScSGIE1JUktPCitOScSGRVRJxIYgTEpVQk9NSVIKK05JxIZFVEnEhiBNSVJBCitOScSGSUZPUk9WScSGIEpPVkFOCitOScSGSUZPUk9WScSGIFBFUkEKK05JxIZJRk9ST1ZJxIYgUEVUQVIKK05JxIZJRk9ST1ZJxIYgVEVPRE9SCitOScSGSU4gxJBPUsSQRQorTknEhklOIEFMRUtTQU5EQVIKK05JxIZJTiBCUkFOSVNMQVYKK05JxIZJTiBET05LQQorTknEhklOIERVxaBLTworTknEhklOIE1JUk9TTEFWCitOScSGSU4gTkVWRU5LQQorTknEhklOIE5JxIZJRk9SIERJUEwgSU5HCitOScSGSU4gU05Fxb1BTkEKK05JxIZJTiBTT0ZJSkEKK05JxIZJTiBTVkVUT1pBUgorTknEhklOIFZBU0lMSUpFCitOScSGSU4gVkVSSUNBCitOScSGSU4gWk9SQQorTklDScSGIERBUktPCitOSURFUkxFTkRFUiDEkE9SxJBFCitOSURFUkxFTknEhiBaT1JBTkEKK05JSkVNxIxFVknEhiBOSUtPTEEKK05JS8SMRVZJxIYgQk/FoEtPCitOSUvEjEVWScSGIEpPVkFOCitOSUvEjEVWScSGIExKVUJPTUlSCitOSUvEjEVWScSGIE1PTU8KK05JS8SMRVZJxIYgUkFUS08KK05JS8SMRVZJxIYgU1RBTkEKK05JS8WgScSGIMW9SVZLTworTklLxaBJxIYgxJBVUkEKK05JS8WgScSGIENWRVRPWkFSCitOSUvFoEnEhiBEQVJLTworTklLxaBJxIYgRFJBR0lOSkEKK05JS8WgScSGIERSQUdPTEpVQgorTklLxaBJxIYgRFXFoEFOS0EKK05JS8WgScSGIEZSQU5KQQorTklLxaBJxIYgSVNBCitOSUvFoEnEhiBKVUxJSkEKK05JS8WgScSGIE1JTEFOCitOSUvFoEnEhiBNSVJLTworTklLxaBJxIYgTUxBREVOCitOSUvFoEnEhiBTVEVWQU4KK05JS8WgScSGIFZFU05BCitOSUtBxIxFViBSQURPVkFOCitOSUtBxIxFViBSQURPVkFOCitOSUtBxIxFVknEhiBNSUhPVklMCitOSUtBxIxFVknEhiBSQURPTUFOCitOSUtBxaBJTk9WScSGIExKSUxKQU5BCitOSUtBxaBJTk9WScSGIExKVUJJQ0EKK05JS0VUScSGIEdPUkRBTkEKK05JS0VUScSGIEdPU1BBVkEKK05JS0VUScSGIEpFRlRBCitOSUtFVEnEhiBLQVRJQ0EKK05JS0VUScSGIE5FQk9KxaBBIERSCitOSUtFVEnEhiBQRVRBUgorTklLRVRJxIYgU0HFoEEKK05JS0VUScSGIFNJTUEKK05JS0VUScSGIFNMT0JPREFOCitOSUtFVEnEhiBWTEFESU1JUgorTklLRVpJxIYgTUlMQQorTklLRVpJxIYgUEVUQVIKK05JS0VaScSGIFJPS1NBTkRBCitOSUtJxIYgQlJBTklTTEFWQQorTklLScSGIEJSQU5JU0xBVgorTklLScSGIEJVRElNSVIKK05JS0nEhiBEQUpBTkEKK05JS0nEhiBEUkFHQU4KK05JS0nEhiBKT1ZBTktBCitOSUtJxIYgSk9WTworTklLScSGIEpPVk8KK05JS0nEhiBLQVRJQ0EKK05JS0nEhiBMQVpBUgorTklLScSGIE1BUklOS08KK05JS0nEhiBNSUxBTgorTklLScSGIE1JTEUKK05JS0nEhiBNSUxVVElOCitOSUtJxIYgTUlPRFJBRworTklLScSGIE1JUkpBTkEKK05JS0nEhiBOQURBCitOSUtJxIYgTkFUQcWgQQorTklLScSGIE5FVkVOS0EKK05JS0nEhiBSQURNSUxBCitOSUtJxIYgUkFET01JUgorTklLScSGIFJBRE9NSVIKK05JS0nEhiBSQURPTUlSCitOSUtJxIYgU0FOSkEKK05JS0nEhiBTQVZBCitOSUtJxIYgVkxBRElNSVIKK05JS0nEhiBaRFJBVktPCitOSUtJxIYgWkxBVEEKK05JS0nEhiBaT1JBCitOSUtJxIYgWk9SS0EKK05JS0lOIEJPUklTTEFWCitOSUtJTiBSQURPTUlSCitOSUtJTiBWRVJBCitOSUtJVEnFoElOIE5BREEKK05JS0lUT1ZJxIYgxIxFRE9NSVIKK05JS0lUT1ZJxIYgQUxFS1NBTkRBUgorTklLSVRPVknEhiBBTkdFTElOQQorTklLSVRPVknEhiBCT8W9TworTklLSVRPVknEhiBEVcWgQU4KK05JS0lUT1ZJxIYgRFXFoEFOCitOSUtJVE9WScSGIE1JSEFKTE8KK05JS0lUT1ZJxIYgTUlMSUpBTktBCitOSUtJVE9WScSGIFJBREEKK05JS0lUT1ZJxIYgUkFET0pJQ0EKK05JS0lUT1ZJxIYgU0xPQk9EQU4KK05JS0/EjEVWIFpPUklDQQorTklLT0RJSkVWScSGIERVxaBBTgorTklLT0RJSkVWScSGIEVORVNBCitOSUtPRElKRVZJxIYgUkFET0pLTworTklLT0RJSkVWScSGIFJBVE9NSVIKK05JS09ESU5PVlNLSSBTVE9KQU4gRElQTCBJTkcKK05JS09MxIxJxIYgQkxBxb1PCitOSUtPTMSMScSGIERSQUdBTgorTklLT0zEjEnEhiBTVkVUTEFOQQorTklLT0zEjElOIE1JTE/FoAorTklLT0zEjElOIE1JUkpBTkEKK05JS09MQcWgRVYgQk9SSVZPSgorTklLT0xBxaBFViBKT1ZBCitOSUtPTEHFoEVWIExKVUJPTUlSCitOSUtPTEHFoEVWIE1BVElMREEKK05JS09MQcWgRVYgTkFEQQorTklLT0xBSkVWIEpFTEVOQQorTklLT0xBSkVWIExBWkFSCitOSUtPTEFKRVYgTUlMSUNBCitOSUtPTEFKRVZJxIYgRElNSVRSSUpFCitOSUtPTEFKRVZJxIYgRFXFoEFOCitOSUtPTEFKRVZJxIYgSVJFTkEKK05JS09MQUpFVknEhiBNSUxJVk9KIEFLQURFTVNLSSBTTElLQVIKK05JS09MQUpFVknEhiBOSUtPTEEKK05JS09MQUpFVknEhiBSQURJVk9KCitOSUtPTEFKRVZJxIYgVk9KSVNMQVYKK05JS09MQUpFVlNLSSBBTEVLU0FOREFSCitOSUtPTEVUScSGIEJPUkEKK05JS09MRVRJxIYgRFJBR0FOCitOSUtPTEVUScSGIERVxaBBTktBCitOSUtPTEVUScSGIERVxaBBTgorTklLT0xFVEnEhiBEVcWgQU4KK05JS09MRVRJxIYgSk9WQU5LQQorTklLT0xFVEnEhiBKT1ZBTgorTklLT0xFVEnEhiBKT1ZBTgorTklLT0xFVEnEhiBKT1ZBTgorTklLT0xFVEnEhiBKT1ZBTgorTklLT0xFVEnEhiBNSUxBTgorTklLT0xFVEnEhiBNSUxPxaAKK05JS09MRVRJxIYgTUlMT1ZBTgorTklLT0xFVEnEhiBTSU1PCitOSUtPTEVUScSGIFNURVZBTgorTklLT0xFVEnEhiBTVkVUT1pBUgorTklLT0xFVEnEhiBWSUQKK05JS09MRVRJxIYgWk9SQU4KK05JS09MScSMSU4gQlJBTktPCitOSUtPTEnEjElOIERBTklMTworTklLT0xJxIxJTiBaT1JBTgorTklLT0xJxaAgRFJBR1VUSU4KK05JS09MScWgIEVWSUNBCitOSUtPTEnFoCBNSUxBTgorTklLT0xJxIYtxIxBTkpJIEJBUkJBUkEKK05JS09MScSGLcWgSUtPUEFSSUpBIE5FVkVOS0EKK05JS09MScSGIMSGSVJJTE8KK05JS09MScSGIMW9QVJLTworTklLT0xJxIYgxb1BUktPCitOSUtPTEnEhiDFvUFSS08KK05JS09MScSGIMW9QVJLTworTklLT0xJxIYgxb1JVkFOCitOSUtPTEnEhiDFvUlWQU4KK05JS09MScSGIMW9SVZBTgorTklLT0xJxIYgxb1JVkFOCitOSUtPTEnEhiDFvUlWQQorTklLT0xJxIYgxb1JVktBCitOSUtPTEnEhiDFvUlWS0EKK05JS09MScSGIMW9SVZLTworTklLT0xJxIYgxb1JVktPCitOSUtPTEnEhiDFvUlWT1JBRAorTklLT0xJxIYgxb1JVk9SQUQKK05JS09MScSGIMW9SVZPUkFECitOSUtPTEnEhiDFvUlWT1RBCitOSUtPTEnEhiDFvUlWT1RBCitOSUtPTEnEhiDEkE9SxJBFIFBST0ZFU09SCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkE9SxJBFCitOSUtPTEnEhiDEkFVSxJBJTktBCitOSUtPTEnEhiDEkFVSxJBJTktBCitOSUtPTEnEhiDEkFVSQQorTklLT0xJxIYgxJBVUkEKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGIEFMRUtTQU5EQVIKK05JS09MScSGLUFMRUtTT1ZTS0kgU0xBVklDQQorTklLT0xJxIYgQU5BCitOSUtPTEnEhiBBTkRSSUpBCitOSUtPTEnEhiBBTktBCitOSUtPTEnEhiBBTktJQ0EKK05JS09MScSGLUJBSsWgRVYgU1RBTktBCitOSUtPTEnEhiBCSUxKQU5BCitOSUtPTEnEhiBCSVNFUktBCitOSUtPTEnEhiBCT8WgS08KK05JS09MScSGIEJPxaBLTworTklLT0xJxIYgQk/FoEtPCitOSUtPTEnEhiBCT8W9SURBUgorTklLT0xJxIYgQk/FvUlEQVIKK05JS09MScSGIEJPxb1JREFSCitOSUtPTEnEhiBCT8W9SURBUgorTklLT0xJxIYgQk/FvU8KK05JS09MScSGIEJPR0RBTgorTklLT0xJxIYgQk9KS0EKK05JS09MScSGIEJPUkEKK05JS09MScSGIEJPUkEKK05JS09MScSGIEJPUklTTEFWCitOSUtPTEnEhiBCT1JJU0xBVgorTklLT0xJxIYgQk9SSVNMQVYKK05JS09MScSGIEJPUklWT0pFCitOSUtPTEnEhiBCT1JJVk9KCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOS08KK05JS09MScSGIEJSQU5LTworTklLT0xJxIYgQlJBTktPCitOSUtPTEnEhiBCVURJTUlSCitOSUtPTEnEhiBDVkVUQU5LQQorTklLT0xJxIYgQ1ZJSkVUQQorTklLT0xJxIYtRMW9QVZFUiBJVkFOIERJUEwgSU5HCitOSUtPTEnEhiBEQU1KQU4KK05JS09MScSGIERBTUpBTgorTklLT0xJxIYgREFOQQorTklLT0xJxIYgREFOSUNBCitOSUtPTEnEhiBEQU5JQ0EKK05JS09MScSGIERBTklDQQorTklLT0xJxIYgREFOSUVMCitOSUtPTEnEhiBEQU5JSkVMCitOSUtPTEnEhiBEQU5JTE8KK05JS09MScSGIERBTklMTworTklLT0xJxIYgREFOS08KK05JS09MScSGIERBUklOS0EKK05JS09MScSGIERBVk9SSU4KK05JS09MScSGIERFSkFOCitOSUtPTEnEhiBERVNBTktBCitOSUtPTEnEhiBESU1JVFJJSkUKK05JS09MScSGIERPQlJJVk9KRQorTklLT0xJxIYgRFJBxaBLTworTklLT0xJxIYgRFJBR0FOQQorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0EKK05JS09MScSGIERSQUdJQ0EKK05JS09MScSGIERSQUdJQ0EKK05JS09MScSGIERSQUdJQ0EKK05JS09MScSGIERSQUdPTEpVQgorTklLT0xJxIYgRFJBR09MSlVCCitOSUtPTEnEhiBEUkFHT0xKVUIKK05JS09MScSGIERSQUdPTEpVQgorTklLT0xJxIYgRFJBR09NSVIKK05JS09MScSGIERSQUdPTUlSCitOSUtPTEnEhiBEUkFHT01JUgorTklLT0xJxIYgRFJBR09TTEFWCitOSUtPTEnEhiBEUkFHTworTklLT0xJxIYgRFJBR1VUSU4KK05JS09MScSGIERVxaBBTiBESVBMIElORworTklLT0xJxIYgRFXFoEFOS0EKK05JS09MScSGIERVxaBBTktBCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgS08KK05JS09MScSGIEVNSUxJSkEKK05JS09MScSGIEVNSUwKK05JS09MScSGIEdPUkRBTkEKK05JS09MScSGIEdPUkRBTkEKK05JS09MScSGIEdPUkRBTkEKK05JS09MScSGIEhJTERBCitOSUtPTEnEhiBIUklTVElOQQorTklLT0xJxIYgSUxJSkEKK05JS09MScSGIElTSURPUgorTklLT0xJxIYgSVZBTktBCitOSUtPTEnEhiBJVkFOCitOSUtPTEnEhiBJVk8KK05JS09MScSGIEpBVk9SS0EKK05JS09MScSGIEpFRlRBCitOSUtPTEnEhiBKRUZUSU1JUgorTklLT0xJxIYgSkVGVElNSVIKK05JS09MScSGIEpFTEVOQQorTklLT0xJxIYgSkVMRU5BCitOSUtPTEnEhiBKRUxLQQorTklLT0xJxIYgSkVMS0EKK05JS09MScSGIEpPQ0EKK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WSUNBCitOSUtPTEnEhiBKVUxJSkFOQQorTklLT0xJxIYgSlVMS0EKK05JS09MScSGIEtBVEFSSU5BCitOSUtPTEnEhiBLQVRJQ0EKK05JS09MScSGIEtBVElDQQorTklLT0xJxIYgS0FUSUNBCitOSUtPTEnEhiBLT1NUQURJTgorTklLT0xJxIYgS09TVEEKK05JS09MScSGIEtSU1RBIERSCitOSUtPTEnEhiBLUlNUQQorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMSklMSkFOQQorTklLT0xJxIYgTEpJTEpBTkEKK05JS09MScSGIExKSUxKQU5BCitOSUtPTEnEhiBMSlVCSUNBCitOSUtPTEnEhiBMSlVCSUNBCitOSUtPTEnEhiBMSlVCSUNBCitOSUtPTEnEhiBMSlVCSUNBCitOSUtPTEnEhiBMVUpaQQorTklLT0xJxIYgTFVLQQorTklLT0xJxIYgTUFOT0pMTworTklLT0xJxIYgTUFSQQorTklLT0xJxIYgTUFSQQorTklLT0xJxIYgTUFSQQorTklLT0xJxIYgTUFSR0lUQQorTklLT0xJxIYgTUFSR0lUQQorTklLT0xJxIYgTUFSSUNBCitOSUtPTEnEhiBNQVJJSkEKK05JS09MScSGIE1BUklKQQorTklLT0xJxIYgTUFSSUpBCitOSUtPTEnEhiBNQVJJSkEKK05JS09MScSGIE1BUktPCitOSUtPTEnEhiBNQVJLTworTklLT0xJxIYgTUFSS08KK05JS09MScSGIE1FTEFOSUpBIFNUT01BVE9MT0cKK05JS09MScSGIE1FTEFOSUpBCitOSUtPTEnEhiBNSUhBSkxPCitOSUtPTEnEhiBNSUhBSkxPCitOSUtPTEnEhiBNSUhBSkxPCitOSUtPTEnEhiBNSUxBxaBJTgorTklLT0xJxIYgTUlMQU5BCitOSUtPTEnEhiBNSUxBTkEKK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEVOQQorTklLT0xJxIYgTUlMRU5LTworTklLT0xJxIYgTUlMRVZBCitOSUtPTEnEhiBNSUxFVkEKK05JS09MScSGIE1JTEUKK05JS09MScSGIE1JTEUKK05JS09MScSGIE1JTEUKK05JS09MScSGIE1JTElDQQorTklLT0xJxIYgTUlMSUNBCitOSUtPTEnEhiBNSUxJQ0EKK05JS09MScSGIE1JTElWT0pFCitOSUtPTEnEhiBNSUxLQQorTklLT0xJxIYgTUlMS0EKK05JS09MScSGIE1JTE/FoAorTklLT0xJxIYgTUlMT8WgCitOSUtPTEnEhiBNSUxPxaAKK05JS09MScSGIE1JTE/FoAorTklLT0xJxIYgTUlMT8WgCitOSUtPTEnEhiBNSUxPSktPCitOSUtPTEnEhiBNSUxPTUlSCitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPUkFECitOSUtPTEnEhiBNSUxPU0FWQQorTklLT0xJxIYgTUlMT1NBVkEKK05JS09MScSGIE1JTE9WQU4KK05JS09MScSGIE1JTFVUSU4KK05JS09MScSGIE1JTFVUSU4KK05JS09MScSGIE1JTFVUSU4KK05JS09MScSGIE1JT0RSQUcgRElQTCBJTkcKK05JS09MScSGIE1JT0RSQUcgRFIKK05JS09MScSGIE1JT0RSQUcgRFIKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JT0RSQUcKK05JS09MScSGIE1JUkpBTkEKK05JS09MScSGIE1JUkpBTkEKK05JS09MScSGIE1JUkpBTkEKK05JS09MScSGIE1JUkpBTkEKK05JS09MScSGIE1JUkpBTkEKK05JS09MScSGIE1JUktPCitOSUtPTEnEhiBNSVJLTworTklLT0xJxIYgTUlST1NMQVYgRElQTCBJTkcKK05JS09MScSGIE1JUk9TTEFWCitOSUtPTEnEhiBNSVJPU0xBVgorTklLT0xJxIYgTUlST1NMQVYKK05JS09MScSGIE1JUk9TTEFWCitOSUtPTEnEhiBNSVJPU0xBVgorTklLT0xJxIYgTUlUQQorTklLT0xJxIYgTUlUQQorTklLT0xJxIYgTUlUQQorTklLT0xJxIYgTUxBREVOS0EKK05JS09MScSGIE1MQURFTgorTklLT0xJxIYgTU9NxIxJTE8KK05JS09MScSGLU1VxaBJQ0tJIERBUkEKK05JS09MScSGIE5BREEKK05JS09MScSGIE5BREEKK05JS09MScSGIE5BREEKK05JS09MScSGIE5BREEKK05JS09MScSGIE5BREEKK05JS09MScSGIE5BREXFvURBCitOSUtPTEnEhiBORUJPSsWgQQorTklLT0xJxIYgTkVERUxKS0EKK05JS09MScSGIE5FREVMSktPCitOSUtPTEnEhiBORURFTEpLTworTklLT0xJxIYgTkVOQUQgRFIKK05JS09MScSGIE5FTkFECitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTk9WSUNBCitOSUtPTEnEhiBOT1ZJQ0EKK05JS09MScSGIE5PVklDQQorTklLT0xJxIYgT0xHQQorTklLT0xJxIYgT1NNQU4KK05JS09MScSGIFBBVU4KK05JS09MScSGIFBBVkxFCitOSUtPTEnEhiBQRVJBCitOSUtPTEnEhiBQRVJPCitOSUtPTEnEhiBQRVJTSURBCitOSUtPTEnEhiBQRVRBUiBESVBMIE9FQworTklLT0xJxIYgUEVUQVIKK05JS09MScSGIFBFVEFSCitOSUtPTEnEhiBQRVRBUgorTklLT0xJxIYgUEVUUkEKK05JS09MScSGIFBFVFJBCitOSUtPTEnEhiBQRVRST05JSkUKK05JS09MScSGIFBSRURSQUcKK05JS09MScSGIFBSVk9TTEFWCitOSUtPTEnEhiBSQURFTktPCitOSUtPTEnEhiBSQURJU0FWCitOSUtPTEnEhiBSQURJVk9KRQorTklLT0xJxIYgUkFET0pJQ0EKK05JS09MScSGIFJBRE9KS0EKK05JS09MScSGIFJBRE9KS0EKK05JS09MScSGIFJBRE9NSVIKK05JS09MScSGIFJBRE9NSVIKK05JS09MScSGIFJBRE9NSVIKK05JS09MScSGIFJBRE9TTEFWQQorTklLT0xJxIYgUkFET1NMQVYKK05JS09MScSGIFJBRE9WQU4KK05JS09MScSGIFJBRE9WQU4KK05JS09MScSGIFJBRE9WQU4KK05JS09MScSGIFJBRE9WQU4KK05JS09MScSGIFJBRE9WQU4KK05JS09MScSGIFJBSktPCitOSUtPTEnEhiBSQUpLTworTklLT0xJxIYgUkFOS0EKK05JS09MScSGIFJBVEtPIE1SCitOSUtPTEnEhiBSQVRPTUlSCitOSUtPTEnEhiBSQVRPTUlSCitOSUtPTEnEhiBSVcW9QQorTklLT0xJxIYgUlXFvUlDQQorTklLT0xJxIYgUlXFvUlDQQorTklLT0xJxIYgU0FWQQorTklLT0xJxIYgU0FWQQorTklLT0xJxIYgU0FWQQorTklLT0xJxIYgU0FWQQorTklLT0xJxIYgU0FWQQorTklLT0xJxIYgU0FWRVRBCitOSUtPTEnEhiBTQVZLQQorTklLT0xJxIYgU0FWTworTklLT0xJxIYgU0XEhkVSS0EKK05JS09MScSGIFNJTUEKK05JS09MScSGIFNJTUVPTgorTklLT0xJxIYgU0lNRVVOCitOSUtPTEnEhiBTSU5JxaBBCitOSUtPTEnEhiBTSU5JxaBBCitOSUtPTEnEhiBTSU5JxaBBCitOSUtPTEnEhiBTTEHEkEFOQQorTklLT0xJxIYgU0xBVknFoEEKK05JS09MScSGIFNMQVZJQ0EKK05JS09MScSGIFNMQVZLTworTklLT0xJxIYgU0xBVk5BCitOSUtPTEnEhiBTTE9CT0RBTktBCitOSUtPTEnEhiBTTE9CT0RBTgorTklLT0xJxIYgU0xPQk9EQU4KK05JS09MScSGIFNMT0JPREFOCitOSUtPTEnEhiBTTE9CT0RBTgorTklLT0xJxIYgU0xPQk9EQU4KK05JS09MScSGIFNNSUxKQU5BCitOSUtPTEnEhiBTTkXFvUFOQQorTklLT0xJxIYgU09GSUpBCitOSUtPTEnEhiBTT0ZJSkEKK05JS09MScSGIFNPRklKQQorTklLT0xJxIYgU1BBU0VOS0EKK05JS09MScSGIFNQQVNPSkUKK05JS09MScSGIFNQQVNPSkUKK05JS09MScSGIFNQQVNPSkUKK05JS09MScSGIFNSRVRBCitOSUtPTEnEhiBTUkVURU5LQQorTklLT0xJxIYgU1RBTklNSVIKK05JS09MScSGIFNUQU5JTUlSCitOSUtPTEnEhiBTVEFOSVNMQVYKK05JS09MScSGIFNUQU5LTworTklLT0xJxIYgU1RFRkFOSUpBCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVklDQQorTklLT0xJxIYgU1RPSkFESU4KK05JS09MScSGIFNUT0pBTgorTklLT0xJxIYgU1VaQU5BCitOSUtPTEnEhiBTVkVUSVNMQVYKK05JS09MScSGIFNWRVRJU0xBVgorTklLT0xJxIYgU1ZFVE9aQVIKK05JS09MScSGIFNWRVRPWkFSCitOSUtPTEnEhiBTVkVUT1pBUgorTklLT0xJxIYgU1ZFVE9aQVIKK05JS09MScSGIFRBTUFSQQorTklLT0xJxIYgVEFUSkFOQQorTklLT0xJxIYgVEVPRE9SCitOSUtPTEnEhiBURU9ET1IKK05JS09MScSGIFRJSE9NSVIKK05JS09MScSGIFRJSE9NSVIKK05JS09MScSGIFRPRE9SCitOSUtPTEnEhiBUT01JU0xBViBNUgorTklLT0xJxIYgVE9NSVNMQVYKK05JS09MScSGIFRPTUlTTEFWCitOSUtPTEnEhiBUUkVOxIxBCitOSUtPTEnEhiBWQVNJTElKRQorTklLT0xJxIYgVkVLT1NMQVYKK05JS09MScSGIFZFTElNSVIKK05JS09MScSGIFZFTElNSVIKK05JS09MScSGIFZFTEpLTyBEUiBJTkcKK05JS09MScSGIFZFTEpLTworTklLT0xJxIYgVkVSQQorTklLT0xJxIYgVkVSQQorTklLT0xJxIYgVkVSQQorTklLT0xJxIYgVkVSQQorTklLT0xJxIYgVkVSSUNBCitOSUtPTEnEhiBWRVNOQQorTklLT0xJxIYgVklET1NBVkEKK05JS09MScSGIFZJVE9NSVIKK05JS09MScSGIFZJVE9NSVIKK05JS09MScSGIFZJVE9NSVIKK05JS09MScSGIFZMQURBCitOSUtPTEnEhiBWTEFESU1JUgorTklLT0xJxIYgVkxBRElNSVIKK05JS09MScSGIFZMQURJTUlSCitOSUtPTEnEhiBWTEFESU1JUgorTklLT0xJxIYgVkxBRElTTEFWIERSCitOSUtPTEnEhiBWT0pJU0xBViBEUiBET0NFTlQKK05JS09MScSGIFZPSklTTEFWIERSIExFS0FSCitOSUtPTEnEhiBWT0pJU0xBVgorTklLT0xJxIYgVlVLQcWgSU4KK05JS09MScSGIFZVS0HFoElOCitOSUtPTEnEhiBaQUdPUktBCitOSUtPTEnEhiBaRFJBVktPCitOSUtPTEnEhiBaRFJBVktPCitOSUtPTEnEhiBaT1JBTgorTklLT0xJxIYgWk9SQU4KK05JS09MScSGIFpPUkFOCitOSUtPTEnEhiBaT1JBCitOSUtPTEnEhiBaT1JBCitOSUtPTEnEhiBaT1JBCitOSUtPTEnEhiBaT1JLQQorTklLT0xJTiBBTEVLU0FORFJBCitOSUtPTElOIEFOQQorTklLT0xJTiBCUkFOS08KK05JS09MSU4gRFJBR09TTEFWQSBEUgorTklLT0xJTiBEVcWgSUNBCitOSUtPTElOIEVSxb1FQkVUCitOSUtPTElOIElWSUNBCitOSUtPTElOIExBWkFSIERSIExFS0FSCitOSUtPTElOIExKVUJJxaBBCitOSUtPTElOIE1BUkdJVEEKK05JS09MSU4gTUlMQU4KK05JS09MSU4gTUlMSUNBCitOSUtPTElOIE1JTElWT0oKK05JS09MSU4gTUlMSVZPSgorTklLT0xJTiBNSVJPU0xBVgorTklLT0xJTiBSQURPVkFOCitOSUtPTElOIFJBRE9WQU4KK05JS09MSU4gUlXFvUlDQQorTklLT0xJTiBTQVZBCitOSUtPTElOIFNJTknFoEEKK05JS09MSU4gU0lOScWgQQorTklLT0xJTiBTVElQQU4KK05JS09MSU4gVkVTTkEKK05JS09MSU4gVklUT01JUgorTklLT0xPU0tJIE5JS09MQQorTklLT0xPU0tJIFNMQVZJQ0EKK05JS09MT1YgxJBPUsSQRQorTklLT0xPViBCT8WgS08KK05JS09MT1YgSk9DQQorTklLT0xPViBKT0NBCitOSUtPTE9WIExKVUJJQ0EKK05JS09MT1YgTklOQQorTklLT0xPViBSQcWgQQorTklLT0xPViBTSU5JxaBBCitOSUtPTE9WIFNUT0pBTgorTklLT0xPViBUT0RPUgorTklLT0xPVlNLSSBJTElKQQorTklLT0xPVlNLSSBNSUxBTgorTklLT1RJxIYgVkVMSU1JUgorTklMScSGIE5JS09MQQorTklMT1ZJxIYgTUlST1NMQVYKK05JTVJJSFRFUiBEUkFHVVRJTgorTklNUklIVEVSIE1JTEFOCitOSU1SSUhURVIgTUlST1NMQVYKK05JTVJJSFRFUiBWTEFEQQorTklOxIxJxIYgQklTRVJLQQorTklOxIxJxIYgREFNSkFOCitOSU7EjEnEhiBNSUxFTktPCitOSU7EjEnEhiBQRVJPCitOSU5JxIYgQUxFS1NBCitOSU5JxIYgQlJBTklTTEFWCitOSU5JxIYgTUFSS08KK05JTknEhiBNSVJLTworTklOScSGIFJBRE9KRQorTklOScSGIFJBRE9NSVIKK05JTktPViDFvUlWS08KK05JTktPViDEkE9SxJBFCitOSU5LT1YgxJBPUsSQRQorTklOS09WIMSQT1LEkEUKK05JTktPViBCT8W9SUNBCitOSU5LT1YgQk9SSVNMQVYKK05JTktPViBCT1JJU0xBVgorTklOS09WIEJSQU5JU0xBVgorTklOS09WIERPQlJJVk9KCitOSU5LT1YgRFJBR09NSVIKK05JTktPViBEVcWgQU4KK05JTktPViBEVcWgQU4KK05JTktPViBEVcWgQU4KK05JTktPViBFTUlMSUpBCitOSU5LT1YgRVLFvUVCRVQKK05JTktPViBKRUxJQ0EKK05JTktPViBKT1ZBTgorTklOS09WIEpVTElKQU4gTVIKK05JTktPVi1LT01MRU5PViBEQU5JQ0EgRFIKK05JTktPViBMQVpBUgorTklOS09WIExBWkFSCitOSU5LT1YtTEXEkEVOQUMgSk9WQU5LQSBEUgorTklOS09WIExKVUJPTUlSCitOSU5LT1YgTEpVQk9NSVIKK05JTktPViBNQVJJSkEKK05JTktPViBNQVJJSkEKK05JTktPViBNSUxBTkEKK05JTktPViBNSUxBTgorTklOS09WIE1JTElDQQorTklOS09WIE1JTE/FoAorTklOS09WIE1JTE/FoAorTklOS09WIE1JTE/FoAorTklOS09WIE1JTE9WQU4KK05JTktPViBNSUxPVkFOCitOSU5LT1YgTUlMVVRJTgorTklOS09WIE1JUkpBTkEKK05JTktPViBNSVJLTworTklOS09WIE1JUk9TTEFWCitOSU5LT1YgTUlST1NMQVYKK05JTktPViBOQURBCitOSU5LT1YgTkVCT0rFoEEKK05JTktPViBORUJPSsWgQQorTklOS09WIE5JS09MQQorTklOS09WIE9MR0lDQQorTklOS09WIFJBRElDQQorTklOS09WIFNBVkVUQSBESVBMIElORworTklOS09WIFNBVkVUQQorTklOS09WIFNMQVZLTworTklOS09WIFNNSUxKQQorTklOS09WIFNPRklKQQorTklOS09WIFNQT01FTktBCitOSU5LT1YgU1RFVkFOCitOSU5LT1YgU1RFVkFOCitOSU5LT1YgU1RFVkFOCitOSU5LT1YgVkVMSU1JUgorTklOS09WIFZFTEpLTworTklOS09WIFZFUklDQQorTklOS09WIFZMQURJTUlSCitOSU5LT1YgVk9KSVNMQVYKK05JTktPVknEhiDFoFBJUk8KK05JTktPVknEhiDFoFBJUk8KK05JTktPVknEhiDEkFVSQcSQCitOSU5LT1ZJxIYgxJBVUkEKK05JTktPVknEhiBBTktJQ0EKK05JTktPVknEhiBCUkFOS08KK05JTktPVknEhiBEQU5JQ0EKK05JTktPVknEhiBEUkFHQQorTklOS09WScSGIERVxaBBTgorTklOS09WScSGIEVSSUtBCitOSU5LT1ZJxIYgR0FWUkEKK05JTktPVknEhiBKQU5LTworTklOS09WScSGIEpPSkEKK05JTktPVknEhiBKT1ZBTktBCitOSU5LT1ZJxIYgTUFSSUNBCitOSU5LT1ZJxIYgTUFSS08KK05JTktPVknEhiBNScSGTworTklOS09WScSGIE1JSEFJTE8KK05JTktPVknEhiBNSUxBTgorTklOS09WScSGIE1JTE/FoAorTklOS09WScSGIE1JUkpBTkEKK05JTktPVknEhiBNSVJKQU5BCitOSU5LT1ZJxIYgTklLT0xBCitOSU5LT1ZJxIYgTklLT0xBCitOSU5LT1ZJxIYgUEVSQQorTklOS09WScSGIFBFUk8KK05JTktPVknEhiBQRVRBUgorTklOS09WScSGIFJBRE9NSVIKK05JTktPVknEhiBSQURPVkFOCitOSU5LT1ZJxIYgUkFKS08KK05JTktPVknEhiBTUsSQQU4KK05JTktPVknEhiBTVE9KQU4KK05JTktPVknEhiBTVkVUSVNMQVYKK05JTktPVknEhiBWRVJBCitOSVNJTSBERVNBCitOSVNURVIgRVZBCitOSVNUT1IgRFJBR0FOCitOSVNUT1JBTiDEkE9SxJBFCitOSVNUT1JBTiBNSUxBTgorTkpBR09KRVYgTUlMQURJTgorTkpBR1JJTiBTTEFWSUNBCitOSkFHVUwtRE9LScSGIFNSQklTTEFWQQorTkpBR1VMIERVxaBBTgorTkpBUkFESSBFVkdFTklKRQorTkpBUkFESSBKQU5LTworTkpBUkFESSBKT1ZHRU4KK05KQVJBREkgTUFSSUpBCitOSkFSQURJIFNPRklKQQorTkpBUkkgxaBBTkRPUgorTkpBUkkgREXFvUUKK05KRcW9ScSGIE9CUkFECitOSkXFvUnEhiBaVk9OS08KK05KRUdPTUlSIMSQVVJPCitOSkVHT01JUiBMSlVCSU5LQSBEUiBMRUtBUgorTkpFR09NSVIgTUlMQU4KK05KRUdPTUlSIE5JS09MQQorTkpFR09NSVIgTk9WQUsKK05KRUdPVkFOIMW9QVJLTworTkpFR09WQU4gSk9WQU5LQQorTkpFR09WQU4gTUFSQQorTkpFR09WQU4gTUFSSUpBCitOSkVHT1ZBTiBNSVJLTworTkpFR09WQU4gTUlSS08KK05KRUdPVkFOIFNUT0pBTktBCitOSkVHT1ZBTk9WScSGIEVMRU5BCitOSkVHUknEhiBNQVJJSkEKK05KRUdSScSGIFJBRE1JTEEKK05KRU3EjE9LIEpPxb1FRgorTkpFTU9HQSBKVVJBSgorTkpFTkpJxIYgVkxBRE8KK05KRVJHRcWgIEpBTk/FoAorTkpFUkdFxaAgTUFSSUpBCitOSklSRSBTVEVWQU4KK05KSVJKQUsgxJBPUsSQRQorTkpJUkpBSyBMRU9OQQorTkpJVFJJIEtBUk9MSgorTkpVTkpJxIYgTUlMRVZBCitOT8SMRVZTS0EgVkVMSUtBCitOT8SMRVZTS0kgQklMSkFOQQorTk/EjEVWU0tJIFJBREUKK05Pxb1JQ0EgQ1ZJSkVUQQorTk/FvUlDQSBNSUxJVk9KRQorTk/FvUlOScSGIERBUkEKK05Pxb1JTknEhiBMSlVCSUNBCitOT8W9SU5JxIYgTUlMQU4KK05Pxb1JTknEhiBOSUtPTEEKK05PTEEgVElNTkpBCitOT0xJTiDEkFVSxJBJTktBCitOT05JTiBBTsSQRUxLQQorTk9OSU4gRFXFoEFOCitOT05JTiBNSUxPUkFECitOT05JTiBOSUtPTEEKK05PTklOIFNPTkpBCitOT05JTiBWSVRPTUlSCitOT05LT1ZJxIYgTUlMQU4KK05PTktPVknEhiBNSUxPUkFECitOT1NBSyDEkE9SxJBFCitOT1NBSyBNSUtMT8WgCitOT1NBTEogTUnFoEEKK05PU0VLIEVWSUNBCitOT1NFSyBGUkFOSkEKK05PU0VLIEtBUkxPCitOT1NFSyBLU0VOSUpBCitOT1NFSyBaT1JBTgorTk9TT05KSU4gTEVOS0EKK05PU09OSklOIE1JTEFOCitOT1NPTkpJTiBTQVZBCitOT1NPVknEhiDEkE9SxJBFCitOT1NPVknEhiBEQU5JQ0EKK05PU09WScSGIEpBTktPCitOT1NPVknEhiBKT1ZBTgorTk9TT1ZJxIYgSk9WQU4KK05PU09WScSGIFpPUkFOCitOT1RBIEpBTktPCitOT1RBUk/FoCBEQVJJTktBCitOT1RBUk/FoCBERUpBTgorTk9UQVJPxaAgTUlMQU4KK05PVEhPRiBFVkEKK05PVEhPRiBaT0xUQU4KK05PVsSMScSGIEJVRElNSVIKK05PVsSMScSGIERBTU5KQU4KK05PVsSMScSGIERVxaBBTgorTk9WxIxJxIYgU1RBTkEKK05PVsSMScSGIFNUQU5BCitOT1bEjEnEhiBUQVRKQU5BCitOT1bEjEnEhiBWTEFESU1JUgorTk9WQcSMScSGIMSQVVJBCitOT1ZBxIxJxIYgxJBVUk8KK05PVkHEjEnEhiBQRVJTSURBCitOT1ZBSyDEkE9SxJBFCitOT1ZBSyBBTkRSSUpBCitOT1ZBSyBBTlRBTAorTk9WQUsgQk/FoEtPCitOT1ZBSyBEUkFHSUNBCitOT1ZBSyBEVcWgQU5LQQorTk9WQUsgRlJBTkpBCitOT1ZBSyBJxaBUVkFOCitOT1ZBSyBJUkVOQQorTk9WQUsgSVZBTgorTk9WQUsgSkFOQQorTk9WQUsgSkFOT8WgCitOT1ZBSyBKT1NJUAorTk9WQUsgSk9TSVAKK05PVkFLIEpPVkFOCitOT1ZBSyBMQURJU0xBViBNUgorTk9WQUsgTEFTTE8KK05PVkFLIExBWkFSCitOT1ZBSyBMSlVCT01JUgorTk9WQUsgTUFSR0lUQQorTk9WQUsgTUFSSUpBCitOT1ZBSyBNQVRJTERBCitOT1ZBSyBNSUhBTEoKK05PVkFLIE5BTkRPUgorTk9WQUsgTklLT0xBCitOT1ZBSyBTTEFWS0EKK05PVkFLIFNURVZBTgorTk9WQUsgU1RFVkFOCitOT1ZBSyBTVEpFUEFOCitOT1ZBSyBUSUJPUgorTk9WQUstVkFKREEgTEpJTEpBTkEKK05PVkFLIFZBU0lMSUpBCitOT1ZBSyBWRVJBCitOT1ZBSyBWRVJPTkEKK05PVkFLIFZJS1RPUgorTk9WQUtPViDEjEVET01JUgorTk9WQUtPViBBTsSQRUxLTworTk9WQUtPViBCT1JJU0xBVgorTk9WQUtPViBEUkFHT0xKVUIgTVIKK05PVkFLT1YgRFXFoEFOCitOT1ZBS09WIEdPUkRBTkEKK05PVkFLT1YgR09TUEFWQSBEUgorTk9WQUtPViBKRUxJQ0EKK05PVkFLT1YgTEFaQVIKK05PVkFLT1YgTEpVQklOS0EKK05PVkFLT1YgTEpVQk9NSVIKK05PVkFLT1YgTUFSSU5BCitOT1ZBS09WIE1JTEFOCitOT1ZBS09WIE1JTElDQQorTk9WQUtPViBNSUxJVk9KCitOT1ZBS09WIE1JTE9SQUQKK05PVkFLT1YgTUlST1NMQVYKK05PVkFLT1YgTkFEQQorTk9WQUtPViBQUkVEUkFHCitOT1ZBS09WIFBSRURSQUcKK05PVkFLT1YgUkFET1ZBTiBESVBMIElORworTk9WQUtPViBTQVZBCitOT1ZBS09WIFNBVkEKK05PVkFLT1YgU1JCSVNMQVYKK05PVkFLT1YgU1JFVEVOCitOT1ZBS09WIFNSRVRFTgorTk9WQUtPViBTVEVWQU4gRFIKK05PVkFLT1YgU1RFVkFOCitOT1ZBS09WIFZBTEVSSUpBCitOT1ZBS09WIFZFU0VMSU4KK05PVkFLT1YgWkRSQVZLTworTk9WQUtPVknEhiDFvUlWQU4KK05PVkFLT1ZJxIYgxb1JVkFOCitOT1ZBS09WScSGIMW9SVZLTworTk9WQUtPVknEhiDFvUlWT0pJTgorTk9WQUtPVknEhiDEkE9SxJBFCitOT1ZBS09WScSGIMSQVUpBCitOT1ZBS09WScSGIMSQVVJPCitOT1ZBS09WScSGIEFMRUtTQU5EQVIKK05PVkFLT1ZJxIYgQU7EkEVMS0EKK05PVkFLT1ZJxIYgQU5BCitOT1ZBS09WScSGIEFOS0EKK05PVkFLT1ZJxIYgQk/FoEtPIERSIFBST0YKK05PVkFLT1ZJxIYgQk9HREFOCitOT1ZBS09WScSGIEJSQU5JU0xBVkEKK05PVkFLT1ZJxIYgQlJBTklTTEFWCitOT1ZBS09WScSGIEJSQU5LTworTk9WQUtPVknEhiBCUkFOS08KK05PVkFLT1ZJxIYgQ1ZFVEtPIERSCitOT1ZBS09WScSGIENWSUpFVEEKK05PVkFLT1ZJxIYgREFOQQorTk9WQUtPVknEhiBEQU5JQ0EKK05PVkFLT1ZJxIYgRElNSVRSSUpFCitOT1ZBS09WScSGIERSQUdBTgorTk9WQUtPVknEhiBEUkFHQU4KK05PVkFLT1ZJxIYgRFJBR0EKK05PVkFLT1ZJxIYgRFJBR09MSlVCCitOT1ZBS09WScSGIERSQUdPTEpVQgorTk9WQUtPVknEhiBEUkFHT1NMQVYKK05PVkFLT1ZJxIYgRFXFoEFOS0EKK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIEZSQU5KTworTk9WQUtPVknEhiBHT1JEQU5BCitOT1ZBS09WScSGIEdPUklDQQorTk9WQUtPVknEhiBHUk9aREEKK05PVkFLT1ZJxIYgSU7EkElKQQorTk9WQUtPVknEhiBKRUxFTkEKK05PVkFLT1ZJxIYgSkVMRU5BCitOT1ZBS09WScSGIEpPVkFOS0EKK05PVkFLT1ZJxIYgSk9WQU4KK05PVkFLT1ZJxIYgSk9WQU4KK05PVkFLT1ZJxIYgS09TQQorTk9WQUtPVknEhiBMQVpBUgorTk9WQUtPVknEhiBMRVBPU0FWQQorTk9WQUtPVknEhiBMSklMSkFOQQorTk9WQUtPVknEhiBMSlVCT01JUgorTk9WQUtPVknEhiBMSlVCT01JUgorTk9WQUtPVknEhiBNQVJJQ0EKK05PVkFLT1ZJxIYgTUFSSUpBCitOT1ZBS09WScSGIE1BUklKQQorTk9WQUtPVknEhiBNQVJJSkEKK05PVkFLT1ZJxIYgTUVMQU5JSkEKK05PVkFLT1ZJxIYgTUnFoE8KK05PVkFLT1ZJxIYtTUlESSBESVZOQSBESVBMIFRVUklaTQorTk9WQUtPVknEhiBNSUpPRFJBRworTk9WQUtPVknEhiBNSUxBTgorTk9WQUtPVknEhiBNSUxBTgorTk9WQUtPVknEhiBNSUxBTgorTk9WQUtPVknEhiBNSUxPxaAKK05PVkFLT1ZJxIYgTUlMT8WgCitOT1ZBS09WScSGIE1JTE9SQUQKK05PVkFLT1ZJxIYgTUlMT1JBRAorTk9WQUtPVknEhiBNSUxPUkFECitOT1ZBS09WScSGIE1JTE9SQUQKK05PVkFLT1ZJxIYgTUlMT1ZBTgorTk9WQUtPVknEhiBNSUxPVkFOCitOT1ZBS09WScSGIE1JT0RSQUcgRFIKK05PVkFLT1ZJxIYgTUlPRFJBRworTk9WQUtPVknEhiBNTEFERU4KK05PVkFLT1ZJxIYgTU9NxIxJTE8KK05PVkFLT1ZJxIYgTkFEQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgT0xJVkVSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGIFBFVEFSCitOT1ZBS09WScSGLVBMQVbFoEnEhiBKRUxFTkEKK05PVkFLT1ZJxIYgUkFETUlMTworTk9WQUtPVknEhiBSQURPSktBCitOT1ZBS09WScSGIFJBRE9NSVIKK05PVkFLT1ZJxIYgUkFET01JUgorTk9WQUtPVknEhiBSQURPTUlSCitOT1ZBS09WScSGIFJBRE9WQU4KK05PVkFLT1ZJxIYgUkFKS08KK05PVkFLT1ZJxIYgUkFOS08KK05PVkFLT1ZJxIYgUk9TQU5LQQorTk9WQUtPVknEhiBSVcW9SUNBCitOT1ZBS09WScSGIFNBVkEKK05PVkFLT1ZJxIYgU0FWQQorTk9WQUtPVknEhiBTTEFWS08KK05PVkFLT1ZJxIYgU0xPQk9EQU4KK05PVkFLT1ZJxIYgU0xPQk9EQU4KK05PVkFLT1ZJxIYgU0xPQk9EQU4KK05PVkFLT1ZJxIYgU09GSUpBCitOT1ZBS09WScSGIFNQQVNPSkEKK05PVkFLT1ZJxIYgU1BPTUVOS0EKK05PVkFLT1ZJxIYgU1RBTklTTEFWCitOT1ZBS09WScSGIFNURVZBTiBESVBMIElORworTk9WQUtPVknEhiBTVEVWQU4KK05PVkFLT1ZJxIYgU1RFVkFOCitOT1ZBS09WScSGIFNURVZBTgorTk9WQUtPVknEhiBTVEVWTworTk9WQUtPVknEhiBTVE9KQU4KK05PVkFLT1ZJxIYgU1ZFVE9NSVIKK05PVkFLT1ZJxIYgVkVMSU1JUgorTk9WQUtPVknEhiBWRUxJTktBCitOT1ZBS09WScSGIFZFUklDQQorTk9WQUtPVknEhiBWRVNOQQorTk9WQUtPVknEhiBWSURPSkUKK05PVkFLT1ZJxIYgVklUS08KK05PVkFLT1ZJxIYgVkxBRElNSVIgRElQTCBJTkcKK05PVkFLT1ZJxIYgVkxBRElNSVIKK05PVkFLT1ZJxIYgVkxBRElNSVIKK05PVkFLT1ZJxIYgVkxBRElTTEFWCitOT1ZBS09WScSGIFpMQVRPTUlSCitOT1ZBS09WScSGIFpPUkEKK05PVkFLT1ZJxIYgWk9SSUNBCitOT1ZBS09WScSGIFpPUklDQQorTk9WScSMScSGIE1JTE/FoAorTk9WScSGIMSMRURPCitOT1ZJxIYtxIxVTEpBSyBMSlVCSUNBCitOT1ZJxIYgREFOSUNBCitOT1ZJxIYgRFXFoEFOCitOT1ZJxIYgSk9WQU4KK05PVknEhiBNSUxBTgorTk9WScSGIE1JTEFOCitOT1ZJxIYgTUlST1NMQVYKK05PVknEhiBNSVJPU0xBVgorTk9WScSGIE1JVEFSCitOT1ZJxIYgTklLT0xBCitOT1ZJxIYgUEFOVEVMSUpBCitOT1ZJxIYgUEVSU0lEQQorTk9WScSGIFRBVEpBTkEKK05PVknEhiBUT01BCitOT1ZJxIYgVkxBSktPCitOT1ZJQ0tJIEFMRUtTQQorTk9WSUtPViBWRVJBCitOT1ZJTkMgSVZBTgorTk9WSVRPVknEhiBNQVJLTworTk9WS09WIMW9SVZPSklOCitOT1ZLT1YgRE9CUklMQQorTk9WS09WIEdBVlJBCitOT1ZLT1YgSk9WQU4KK05PVktPViBNSUxBTgorTk9WS09WIE5BREEKK05PVktPViBTVEVWQU4KK05PVktPViBTVEVWQU4KK05PVktPViBaQUdPUktBCitOT1ZLT1ZJxIYgxJBPUsSQRQorTk9WS09WScSGIEFOS0EKK05PVktPVknEhiBCSUxKQU5BCitOT1ZLT1ZJxIYgRFJBR0lDQQorTk9WS09WScSGIERSQUdJTkpBCitOT1ZLT1ZJxIYgRFXFoEFOCitOT1ZLT1ZJxIYgRFXFoEFOCitOT1ZLT1ZJxIYgRFXFoEFOCitOT1ZLT1ZJxIYgRFXFoEFOCitOT1ZLT1ZJxIYgRUxGUklEQQorTk9WS09WScSGIEVMSVpBQkVUQQorTk9WS09WScSGIEpPVkFOCitOT1ZLT1ZJxIYgTUlIQUpMTworTk9WS09WScSGIE1JTEFOCitOT1ZLT1ZJxIYgTUlMSU5LTworTk9WS09WScSGIE1JTE/FoAorTk9WS09WScSGIE1JUkpBTkEKK05PVktPVknEhiBNT03EjElMTworTk9WS09WScSGIE1PTcSMSUxPCitOT1ZLT1ZJxIYgTkFEQQorTk9WS09WScSGIE5FQk9KxaBBIERSCitOT1ZLT1ZJxIYgTklLT0xBCitOT1ZLT1ZJxIYgUk9TQQorTk9WS09WScSGIFNNSUxKS0EKK05PVktPVknEhiBTVEFOS08KK05PVktPVknEhiBWTEFEQQorTk9WS09WScSGIFZVS0HFoElOCitOT1ZPU0VMIEdPUkRBTkEKK05PVk9TRUwgTUFSSUpBCitOT1ZPU0VMIE5BREEKK05PVk9TRUwgUkFKS08KK05PVk9TRUxBQyBLQVRJQ0EKK05PVk9TRUxBQyBTVEVWQU4KK05PVk9TRUxBQyBaVk9OSU1JUgorTk9WT1NFTEpBxIxLSSBNSUxJVk9KCitOT1ZPU0VMT1ZTS0kgQU5HRUwKK05PVk9UIExBRElTTEFWCitOT1ZPVCBQQVZMRQorTk9WT1ZJxIYgxb1JVk9KSU4KK05PVk9WScSGIEJBVFJJxIYKK05PVk9WScSGIEJJTEpBTkEKK05PVk9WScSGIERSQUdBTgorTk9WT1ZJxIYgR09SREFOQQorTk9WT1ZJxIYgTUlOQQorTk9WT1ZJxIYgTkFEQQorTk9WT1ZJxIYgVkxBRE8KK05PVk9WScSGIFpERU5LQQorTk9WVEEgTklLT0xBIERSCitOT1ZUQSBWTEFESU1JUgorTk9WVEEgVkxBRElNSVIKK05Vxb1EScSGIE1JTEFOCitOVcW9REnEhiBPQlJBRAorTlVCRVIgQU5BCitOVURJxIYgxJBPUsSQRQorTlVEScSGIFNWRVRPWkFSCitOVUhJIEZFVlpJCitOVUhJIEhBSkRBTgorTlVISSBaRUtJSkEKK05VS0EgSEFTQU4KK05VS0nEhiBBTEpPCitOVUtJxIYgRMW9RVZBRAorTlVLScSGIEtBTklUQQorTlVLScSGIE9NRVIKK0/EjEVOQcWgIExKVURNSUxBCitPxIxLQUpJIEnFoFRWQU4KK0/EjEtPIFZJTEhFTE0KK0/EjE9WQUogQk/FvUVOS0EKK0/EjE9WQUogWlVaQU5BCitPxaBBUCBKRUxFTkEKK0/FoEFQIEpPVkFOCitPxaBLRVJUIEFOS0EKK0/FoFRSScSGIE1JTEUgRElQTCBJTkcKK0/FoFRSSUtBIMW9QVJLTworT8WgVFJJS0Egxb1BUktPCitPxaBUUklLQSBEQVJJTktBCitPxb1FR09WScSGIMW9QVJLTyBESVBMIElORworT8W9RUdPVknEhiBCT8WgS08KK0/FvUVHT1ZJxIYgQlJBTktPIERJUEwgSU5HCitPxb1FR09WScSGIERBTkUKK0/FvUVHT1ZJxIYgRFJBR0EKK0/FvUVHT1ZJxIYgTEFaQVIKK0/FvUVHT1ZJxIYgTUlSS08KK0/FvUVHT1ZJxIYgTU9NxIxJTE8KK0/FvUVHT1ZJxIYgTkVWRU5LQQorT8W9RUdPVknEhiBTTEFWS08KK0/FvUVHT1ZJxIYgU0xPQk9EQU4KK0/FvUVLT1ZJxIYgR09KS08KK0/FvVZBVCBKQVNNSU5BCitPxb1WQVQgSkFTTUlOQQorT8W9VkFUIEpVTElKQU5BCitPxb1WQVQgT05EUkVKCitPxJBJxIYgQUxFS1NBTkRBUgorT0LFoFVTVCBKQU5LTworT0JBRE9WIEFMRUtTQU5EUkEKK09CQURPViBNSUxFCitPQkFET1YgTkFUQUxJSkEKK09CQURPViBTTEFWS08KK09CQURPVknEhiBEVcWgQU5LQQorT0JBRE9WScSGIE1JTE9KRQorT0JBRE9WScSGIE1JTE9KRQorT0JBRE9WScSGIE1JTE9KRQorT0JBRE9WScSGIE1JTE9SQUQKK09CQURPVknEhiBTTE9CT0RBTktBCitPQkVSTUFKRVIgRlJBTkpBCitPQkVSTUFOIEJSQU5JU0xBVgorT0JFUlQgRlJBTkMKK09CSkVET1ZJxIYgU1RPSkFOCitPQkxFxaDEjFVLIEFOS0EKK09CTEXFoMSMVUsgQU5LQQorT0JMRcWgxIxVSyBEUkFHScWgQQorT0JMRcWgxIxVSyBHUkVHT1IKK09CTEXFoMSMVUsgTUFSSUpBCitPQk/EjEtJIFZMQURJTUlSCitPQlJBRE9WIEdPUkRBTkEKK09CUkFET1YgR09SREFOQQorT0JSQURPViBMSlVCScWgQQorT0JSQURPViBMSlVCScWgQQorT0JSQURPViBNSUxBTgorT0JSQURPViBNSUxPUkFECitPQlJBRE9WIE5BREEKK09CUkFET1YgTk9WQUsKK09CUkFET1YgUkFESVZPSgorT0JSQURPViBSQURNSUxBCitPQlJBRE9WIFNUT0pBTktBCitPQlJBRE9WScSGIMSMRURPTUlSCitPQlJBRE9WScSGIMW9SVZLTworT0JSQURPVknEhiDFvUlWS08KK09CUkFET1ZJxIYgxJBPUsSQRQorT0JSQURPVknEhiDEkE9SxJBFCitPQlJBRE9WScSGIMSQT1LEkEUKK09CUkFET1ZJxIYgxJBVUsSQSU5BCitPQlJBRE9WScSGIMSQVVJPCitPQlJBRE9WScSGIMSQVVJPCitPQlJBRE9WScSGIEFMRUtTQU5EQVIKK09CUkFET1ZJxIYgQU5LQQorT0JSQURPVknEhiBCT0dEQU5LQQorT0JSQURPVknEhiBCT0dEQU4KK09CUkFET1ZJxIYgQk9HREFOCitPQlJBRE9WScSGIEJPUklTTEFWCitPQlJBRE9WScSGIEJPUktBCitPQlJBRE9WScSGIEJSQU5JU0xBVgorT0JSQURPVknEhiBCUkFOSVNMQVYKK09CUkFET1ZJxIYgQlJBTktPCitPQlJBRE9WScSGIEJVRElNSVIKK09CUkFET1ZJxIYgQlVETworT0JSQURPVknEhiBEQU5FCitPQlJBRE9WScSGIERBTklKRUxBCitPQlJBRE9WScSGIERBTklMTyBEUgorT0JSQURPVknEhiBETUlUQVIKK09CUkFET1ZJxIYgRE9CUklMQQorT0JSQURPVknEhiBEUkFHQU4KK09CUkFET1ZJxIYgRFJBR0lDQQorT0JSQURPVknEhiBEUkFHT0xKVUIKK09CUkFET1ZJxIYgRFXFoEFOS0EKK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRU1JTElKQQorT0JSQURPVknEhiBHTEnFoEEKK09CUkFET1ZJxIYgR09SREFOQQorT0JSQURPVknEhiBHVk9aREVOCitPQlJBRE9WScSGIElMSUpBCitPQlJBRE9WScSGIEpBU01JTkEKK09CUkFET1ZJxIYgSk9WQU4KK09CUkFET1ZJxIYgSk9WQU4KK09CUkFET1ZJxIYgSk9WTworT0JSQURPVknEhiBLT05TVEFOVElOCitPQlJBRE9WScSGIExBWkFSCitPQlJBRE9WScSGIExBWkFSCitPQlJBRE9WScSGIExJRElKQQorT0JSQURPVknEhiBMSklMSkFOQQorT0JSQURPVknEhiBMSklMSkFOQQorT0JSQURPVknEhiBMSklMSkFOQQorT0JSQURPVknEhiBMSlVCScWgQQorT0JSQURPVknEhiBMSlVCT0RSQUcKK09CUkFET1ZJxIYgTFVLQQorT0JSQURPVknEhiBNQVJLTworT0JSQURPVknEhiBNSUxBRElOCitPQlJBRE9WScSGIE1JTEFOCitPQlJBRE9WScSGIE1JTEEKK09CUkFET1ZJxIYgTUlMRU5BCitPQlJBRE9WScSGIE1JTEVOS08KK09CUkFET1ZJxIYgTUlMRQorT0JSQURPVknEhiBNSUxFCitPQlJBRE9WScSGIE1JTElDQQorT0JSQURPVknEhiBNSUxJSkFOQQorT0JSQURPVknEhiBNSUxLQQorT0JSQURPVknEhiBNSUxPxaAKK09CUkFET1ZJxIYgTUlMT0pLTworT0JSQURPVknEhiBNSUxPUkFECitPQlJBRE9WScSGIE1JTE9SQUQKK09CUkFET1ZJxIYgTUlMT1ZBTiBESVBMIElORworT0JSQURPVknEhiBNSUxVTgorT0JSQURPVknEhiBNSUxVVElOCitPQlJBRE9WScSGIE1JT0RSQUcKK09CUkFET1ZJxIYgTUlSQcWgCitPQlJBRE9WScSGIE1JUkpBTkEgRElQTCBJTkcKK09CUkFET1ZJxIYgTUlSS08KK09CUkFET1ZJxIYgTUlST1NMQVYKK09CUkFET1ZJxIYgTUxBREVOCitPQlJBRE9WScSGIE5BREEKK09CUkFET1ZJxIYgTkVCT0rFoEEKK09CUkFET1ZJxIYgTkVERUxKS0EKK09CUkFET1ZJxIYgTkVERUxKS08KK09CUkFET1ZJxIYgTkVNQU5KQQorT0JSQURPVknEhiBORU5BRCBEUiBMRUtBUgorT0JSQURPVknEhiBOSUtPTEEKK09CUkFET1ZJxIYgUEVUQVIKK09CUkFET1ZJxIYgUEVUQVIKK09CUkFET1ZJxIYgUkFERQorT0JSQURPVknEhiBSQURJVk9KRQorT0JSQURPVknEhiBSQURJVk9KCitPQlJBRE9WScSGIFJBRE1JTEEKK09CUkFET1ZJxIYgUkFUS08KK09CUkFET1ZJxIYgUk9TQQorT0JSQURPVknEhiBTQVZBCitPQlJBRE9WScSGLVNJS0lNScSGIE1JUkpBTkEKK09CUkFET1ZJxIYgU0xBVklDQQorT0JSQURPVknEhiBTTEFWS08KK09CUkFET1ZJxIYgU0xBVktPCitPQlJBRE9WScSGIFNMT0JPREFOCitPQlJBRE9WScSGIFNNSUxKS0EKK09CUkFET1ZJxIYgU01JTEpLQQorT0JSQURPVknEhiBTVEFOSU1JUgorT0JSQURPVknEhiBTVEFOS08KK09CUkFET1ZJxIYgU1RFVkFOIERSCitPQlJBRE9WScSGIFNURVZBTgorT0JSQURPVknEhiBTVEVWQU4KK09CUkFET1ZJxIYgU1RFVk8KK09CUkFET1ZJxIYgU1RFVk8KK09CUkFET1ZJxIYgU1RKRVBBTgorT0JSQURPVknEhiBTVkVUT1pBUgorT0JSQURPVknEhiBTVkVUT1pBUgorT0JSQURPVknEhiBTVkVUT1pBUgorT0JSQURPVknEhiBUT0RPUgorT0JSQURPVknEhiBWRVJBCitPQlJBRE9WScSGIFZFUkEKK09CUkFET1ZJxIYgVk9KSVNMQVYKK09CUkFET1ZJxIYgWkxBVElDQQorT0JSRUhUIFBFVEFSCitPQlJFTknEhiBCT1JJVk9KRQorT0JSRU5JxIYgRFJBR08KK09CUkVOScSGIEpFTElTQVZFVEEKK09CUkVOScSGIE1BTk9KTEUKK09CUkVOScSGIE1JTEFESU4KK09CUkVOScSGIE1JTEVWQQorT0JSRU5JxIYgTUlMT01JUgorT0JSRU5JxIYgUFJFRFJBRworT0JSRU5JxIYgUkFET01BTgorT0JSRU5JxIYgU05Fxb1BTkEKK09CUkVOT1Ygxb1JVkFOCitPQlJFTk9WIMW9SVZBTgorT0JSRU5PViBKRUxFTkEKK09CUkVOT1YgSkVWUkVNCitPQlJFTk9WIEpPTEFOREEKK09CUkVOT1YgS1JVTkEKK09CUkVOT1YgUEVUQVIKK09CUkVOT1YgUkFESVZPSgorT0JSRU5PViBTQU5KQQorT0JSRU5PViBTQVZBCitPQlJFTk9WIFNMT0JPREFOS0EKK09CUkVOT1YgU1RBTktBCitPQlJFTk9WIFNURVZBTgorT0JSRU5PViBWQVNBCitPQlJFTk9WIFZMQURJTUlSCitPQlJFTk9WIFpPUklDQQorT0JSRU5PViBaT1JJQ0EKK09CUkVOT1ZJxIYgQk/FvUlEQVIKK09CUkVOT1ZJxIYgQlJBTktPCitPQlJFTk9WScSGIERBUklOS0EKK09CUkVOT1ZJxIYgREVTSU1JUgorT0JSRU5PVknEhiBLQVRBUklOQQorT0JSRU5PVknEhiBNSUxBTiBEUgorT0JSRU5PVknEhiBNSU9EUkFHIERJUEwgSU5HCitPQlJFTk9WScSGIE1JUk9TTEFWCitPQlJFTk9WScSGIE5JS09MQQorT0JSRU5PVknEhiBSQURPU0xBVgorT0JSRU5PVknEhiBUQVRKQU5BCitPQlJFTk9WScSGIFZBU08KK09CUkVOT1ZJxIYgVkxBSktPCitPQlJJxIYgR09KS08KK09CUknEhiBSQURPSklDQQorT0JSS05Fxb1FViDEkE9SxJBFCitPQlJLTkXFvUVWIE1JTEVOS08KK09CUktORcW9RVYgUkFETUlMQQorT0JSS05Fxb1FViBSQURPSktBCitPQlJLTkXFvUVWIFNURVZBTgorT0JST1ZBxIxLSSBEVcWgSUNBCitPQlJPVkHEjEtJIEdPUkRBTkEKK09CUk9WQcSMS0kgTUlST1NMQVYKK09CUk9WQcSMS0kgUkFERQorT0JST1ZBxIxLSSBTVkVUT1pBUgorT0JST1ZBQyBNSUpBVAorT0JST1ZTS0kgxJBPUsSQRQorT0JST1ZTS0kgRFJBR1VUSU4KK09CUk9WU0tJIElWQU4KK09CUk9WU0tJIEpPVkFOCitPQlJPVlNLSSBLQVRJQ0EKK09CUk9WU0tJIE1JSEFKTE8KK09CUk9WU0tJIFZBU0EKK09CVcSGSU5BIFJBVE9NSVIKK09CVcSGSU5BIFNMQVZLTworT0JVxIZJTkEgU0xBVk9MSlVCCitPQ09LT0xKScSGIExKVUJJTktPCitPRMW9ScSGIE5PVktBCitPRMW9ScSGIFJBVE9NSVIKK09Exb1JxIYgWk9SS0EKK09Exb1PVlNLSSBJTElKQQorT0RBRMW9ScSGIERVxaBBTgorT0RBRMW9ScSGIEdPUkRBTkEKK09EQUTFvUnEhiBKRUxJU0FWRVRBCitPREFExb1JxIYgTkFEQQorT0RBRMW9ScSGIFJBRElWT0oKK09EQUTFvUnEhiBTVEVWQU4KK09EQUxPVknEhiBCUkFOS08KK09EQVZJxIYtSk9TScSGIEpFTElDQSBESVBMIElORworT0RBVknEhiBNSUxLQQorT0RBVknEhiBTTEFWS08KK09ET1IgSk9TSVAKK09ET1ZJxIYgSk9WTworT0RSSSBCQUxJTlQKK09EUkkgS0FSTE8KK09GRU5CRUhFUiBHSVpFTEEKK09GRU5CRUhFUiBWQUxFUklKQQorT0ZFTkJFSEVSIFZFUklDQQorT0dBUiBKRUxFTkEKK09HQVIgVkxBREUKK09HTkVOT1ZTS0EgQk9KQU5BCitPR05FTk9WU0tBIENWRVRBTktBCitPR05KQU5BQyBEUkFHSUNBCitPR05KQU5PViBNSUxFVEEKK09HTkpBTk9WQUMgQk9SSVNMQVYKK09HTkpBTk9WScSGIMSQT1LEkEUKK09HTkpBTk9WScSGIEFDQQorT0dOSkFOT1ZJxIYgQlJBTklTTEFWQQorT0dOSkFOT1ZJxIYgREFOSUxPCitPR05KQU5PVknEhiBERUpBTiBEUiBMRUtBUgorT0dOSkFOT1ZJxIYgRE1JVEFSCitPR05KQU5PVknEhiBNQVJJSkEgRFIgTEVLQVIKK09HTkpBTk9WScSGIE1JSEFKTE8KK09HTkpBTk9WScSGIE1JTE9WQU4KK09HTkpBTk9WScSGIE9HTkpFTkEKK09HTkpBTk9WScSGIFJBRE9KS0EgRFIgTEVLQVIKK09HTkpBTk9WScSGIFJBTktPCitPR05KQU5PVknEhiBTUEFTT0pFCitPR05KQU5PVknEhiBTVkVUTEFOQQorT0dOSkVOT1ZJxIYgQk/FvUlEQVIKK09HTkpFTk9WScSGIERBUkEKK09HTkpFTk9WScSGIERSQUdVVElOCitPR05KRU5PVknEhiBNSUxFTktPCitPR05KRU5PVknEhiBOSUtPTEEKK09HTkpFTk9WScSGIE5JS09MQQorT0dOSkVOT1ZJxIYgTk9WS0EKK09HTkpFTk9WScSGIFBFVEFSCitPR05KRU5PVknEhiBSQURPVkFOS0EKK09HTkpFTk9WScSGIFNUQU5JU0xBVgorT0dOSkVOT1ZJxIYgU1RFVkFOCitPR05KRU5PVknEhiBTVEVWTworT0dOSkVOT1ZJxIYgVE9NSVNMQVYKK09HT1JFTElDQSBCSUxKQU5BCitPR09SRUxJQ0EgQk9HREFOCitPR09SRUxJQ0EgQlJBTktPCitPR09SRUxJQ0EgTUFSSUpBCitPR1JJWkVLIERSQUdJQ0EKK09HUklaRUsgRFJBR1VUSU4KK09HUklaRUsgS1JJU1RJTkEKK09HUklaRUsgUk9CRVJUCitPR1JJWk9WScSGIEFMRUtTQU5EQVIKK09HUklaT1ZJxIYgQk9SQQorT0dSSVpPVknEhiBERVNBTktBCitPR1JJWk9WScSGIERFU0FOS0EKK09HUklaT1ZJxIYgRFJBR0lDQQorT0dSSVpPVknEhiBEVcWgQU4KK09HUklaT1ZJxIYgTEpVQklDQQorT0dSSVpPVknEhiBMSlVCSUNBCitPR1JJWk9WScSGIE1JTEFOCitPR1JJWk9WScSGIE1JTEUKK09HUklaT1ZJxIYgTUlMSVZPSgorT0dSSVpPVknEhiBORURFTEpLTworT0dSSVpPVknEhiBORURFTEpLTworT0dSSVpPVknEhiBSQURPSktBCitPR1JJWk9WScSGIFNSRVRBCitPR1JJWk9WScSGIFZFTEpLTworT0dSSVpPVknEhiBWTEFESU1JUgorT0dSSVpPVknEhiBaT1JBTgorT0pEQU5JxIYgU0FWQQorT0pLScSGIFNMQVZLTworT0tBxaBBTk9WScSGIFNSRVRFTgorT0tBTkogU1RFVkFOCitPS0FOSkkgTEFKT8WgCitPS0FOSkkgT1NLQVIKK09LQU5KSSBSQU5LQQorT0tBTkpJIFRJQk9SCitPS0FOT1ZJxIYgTk9WSUNBCitPS0VaQU4gSk9WQU4KK09LSUxKIFNMQVZLTworT0tJTEpFVknEhiBTT0ZJSkEKK09LTEpFxaBBIE5FTkFECitPS0xKRcWgQSBORU5BRAorT0tMT0JExb1JSkEgTUFSS08KK09LUkFKTk9WIFNURVZBTgorT0tSVcW9TklLIERSQUdBTgorT0tTRU5GRUxEIEpPVkFOCitPS1VLQSBMSklMSkFOQQorT0tVTEnEhiBCT0dEQU4KK09LVUxJxIYgWk9SQU4KK09MxaBPVkkgTklLT0xBCitPTEFIIMWgQU5ET1IKK09MQUggxaBBTkRPUgorT0xBSCDFoEFORE9SCitPTEFIIMSQT1LEkEUKK09MQUggQU5EUklKQQorT0xBSCBFUk5BCitPTEFIIEZFUkVOQworT0xBSCBGRVJFTkMKK09MQUggScWgVFZBTgorT0xBSCBJxaBUVkFOCitPTEFIIEpFTEVOQQorT0xBSCBKRUxJU0FWRVRBCitPTEFIIEpPVkFOCitPTEFIIEpVTElKQU5BCitPTEFIIExBU0xPCitPTEFIIE1JUktPCitPTEFIIE5BTkRPUgorT0xBSCBOQU5ET1IKK09MQUggUEFWTEUKK09MQUggUEFWTEUKK09MQUggUk9aQUxJSkEKK09MQUggVklOQ0UKK09MQUpPxaAgQkVMQQorT0xBSk/FoCBHT1JEQU5BCitPTEFKT8WgIEpBTk/FoAorT0xBSk/FoCBNSUhBTEoKK09MQUpPxaAgTUlIQUxKCitPTEFKT8WgIE9UTworT0xBUiBQQVUKK09MQklOQSBTTEFWS08KK09MRUFSIE1JSEFKTE8KK09MRUFSIE1JSEFKTE8KK09MRUFSIFNBTkpBCitPTEVBUiBTVkVUSVNMQVYKK09MRUFSIFZMQURBCitPTEVKQVIgSk9BS0lNCitPTEnEjEtPViBCUkFOSVNMQVYKK09MScSMS09WIE1JTE9SQUQKK09MScSGIFNURVZBTgorT0xJVkVSScSGIE5FQk9KxaBBCitPTErFoEVWU0tBIE5BVEHFoEEKK09MSkHEjEEgSUxJSkEKK09MSkHEjEEgTUFSSUNBCitPTEpBxIxBIE1JTEVOS08KK09MSkHEjEEgTUlMT1ZBTgorT0xKQcSMQSBOSUtPTEEKK09MSkHEjEEgUkFEQQorT0xKQcSMQSBTTEFWT0xKVUIKK09MSkHEjEEgU1RBTklTTEFWCitPTEpBxIxBIFNURVZBTgorT0xNQU4gTUFSSUpBCitPTFXFoEtJIERPQlJJTEEKK09MVcWgS0kgRFXFoEFOCitPTFXFoEtJIERVxaBBTgorT0xVxaBLSSBMQVpBUgorT0xVxaBLSSBNSUxVVElOCitPTFXFoEtJIE1JUk9TTEFWCitPTFXFoEtJIE1JUk9TTEFWCitPTFXFoEtJIE9MSVZFUkEKK09MVcWgS0kgU1RPSkFOCitPTFXFoEtJIFRPRE9SCitPTFXFoEtJIFRPTUlTTEFWCitPTFXFoEtJIFZBU0EKK09MVcWgS0kgVkVMSU1JUiBEUgorT0xVxaBLSSBWRVJJQ0EKK09MVUpJxIYgSVZBTkEKK09MVUpJxIYgSVZBTgorT0xVSknEhiBKRUxFTkEKK09MVUpJxIYgTUlMSUNBCitPTFVKScSGIE1JUktPCitPTcSMSUtVUyBCT8WgS08KK09NxIxJS1VTIEpFTEVOQQorT03EjElLVVMgTUFHREEKK09NxIxJS1VTIE5JS09MQQorT03EjElLVVMgUkFKS08KK09NQUxKRVYgSVZBTgorT01BTEpFViBJVkFOCitPTUFMSkVWIEpVTEtBCitPTUFMSkVWIExFUE9TQVZBCitPTUFMSkVWIExFUE9TQVZBCitPTUFMSkVWIE1JTEVOQQorT01BTEpFViBNSUxPUkFECitPTUFMSkVWIFZPSklTTEFWCitPTUFaScSGIFNPRklKQQorT01FUkFHScSGIEtFTUFMCitPTUVSSSBIQUpSVURJTgorT01FUkkgSEFMSU0KK09NRVJJIEhBU08KK09NRVJJIE5FRMW9QUQKK09NRVJJIE5VUlVESU4KK09NRVJaVSBBTlRPTgorT01FUlpVIEVMSVpBQkVUQQorT01JxIYgSURSSVoKK09NT1JBQyBLQVRBUklOQQorT01PUkFDIExBVElOS0EKK09OxIxFVlNLSSBKT1ZBTgorT07EjFUgUEVUQVIKK09ORFJJSyBEVcWgQU5LQQorT05FxaDEjFVLIE1JSEFKTE8KK09ORcWgxIZVSyBORU5BRAorT05IQVVaIE1BUklKQQorT05PREkgScWgVFZBTgorT1BBxIxBSyBBTlRVTgorT1BBxIxBSyBJVkFOCitPUEHEjEnEhiBBTsSQQQorT1BBxIxJxIYgQU5HRUxJTkEKK09QQcSMScSGIEJPU0lMSktBCitPUEHEjEnEhiBCUkFOS08KK09QQcSMScSGIERVxaBBTgorT1BBxIxJxIYgS09TVEEKK09QQcSMScSGIE1JTEFOCitPUEHEjEnEhiBNSUxBTgorT1BBxIxJxIYgTUlMT1JBRAorT1BBxIxJxIYgTUlPRFJBRworT1BBxIxJxIYgTUlSS08KK09QQcSMScSGIE1JUktPCitPUEHEjEnEhiBORU5BRAorT1BBxIxJxIYgUEFWTEUKK09QQcSMScSGIFNJTU8KK09QQcSMScSGIFNMQVZLTworT1BBxIxJxIYgU1RFVkFOCitPUEHEjEnEhiBUT0RPUgorT1BBTEnEhiBEQVJJTktBCitPUEFMScSGIE1BUktPCitPUEFMScSGIE5JS09MQQorT1BBTEnEhiBOSUtPTEEKK09QQUxJxIYgTklLT0xBCitPUEFMScSGIFNPRklKQQorT1BBTsSMQVJFViBEVcWgQU4KK09QQU7EjEFSRVYgSVZBTgorT1BBTsSMQVJFViBNSUxLQQorT1BBUk5JQ0EgTEpVQk8KK09QQVJOSUNBIExVS0EKK09QQVJOSUNBIE1BS1NJTQorT1BBUk5JQ0EgTUFLU0lNCitPUEFSTklDQSBNQUtTSU0KK09QQVJOSUNBIE1BUklOS08KK09QQVJOSUNBIE1JTEVOS08KK09QQVJOSUNBIE1JUkEKK09QQVJOSUNBIFNPRklKQQorT1BBUk5JQ0EgVklECitPUEVMQyBMQURJU0xBVgorT1BPSkxFVknEhiBMQVpBUgorT1BSQU5PVknEhiBCT8W9SURBUgorT1BSQU5PVknEhiBNSUNBCitPUFJFxaBOSUsgQU5LSUNBCitPUFJJSkFOIEFOxJBFTEtPIERJUEwgSU5HCitPUFJJSkFOIERSQUdBTgorT1BSSUpBTiBNSUxLQQorT1BSVUMgTUlMT1JBRAorT1BTRU5JQ0EgTUlMQU4KK09QU0VOSUNBIFNPS0EKK09SxIxJxIYgxaBJTUUKK09SxIxJxIYgxaBJTUUKK09SxIxJxIYgQk/FvUlEQVIKK09SxIxJxIYgRFJBR08KK09SxIxJxIYgSVZBTgorT1LEjEnEhiBTVEpFUEFOCitPUsWgScSGIMSQT1LEkEUKK09SxaBJxIYgSk9DQQorT1LFoEnEhiBNSUxJQ0EKK09SxaBPxaAgxJBPUsSQRQorT1LFoE/FoCBCUkFOS08KK09SxaBPxaAgRFJBR0FOCitPUsWgT8WgIEZFUkVOQworT1LFoE/FoCBKT1NJUAorT1LFoE/FoCBOSUtPTEEKK09SxaBPxaAgUk9aQUxJSkEKK09SxaBPxaAgU0FWQQorT1LFoE/FoCBURVJFWkEKK09SxaBPxaAgWk9SQU4KK09SxaBPTEnEhiBTVEpFUEFOCitPUkFOSUNBIE1BS1NJTQorT1JBVkVDIEJSQU5JU0xBVgorT1JBVkVDIEJSQU5LTworT1JBVkVDIE1BUktPCitPUkFWRUMgUEFWTEUKK09SQkFOIEFMRUtTQU5EQVIKK09SQkFOIEVNSUxJSkEKK09SQkFOIEdBVlJBCitPUkJBTiBWRVNOQQorT1JEQU5PU0tJIEpFTEVOQQorT1JESU5BxIxFViDEkE9SxJBFCitPUkRJTkHEjEVWIE1MQURFTgorT1JESU5BxIxFViBUT0RPUgorT1JESU5BxIxFViBUT0RPUgorT1JESU5BxIxFViBUT0RPUgorT1JFxaDEjEFOSU4gQk9HREFOCitPUkXFoMSMQU5JTiBCUkFOS08KK09SRcWgxIxBTklOIE1JTEFOCitPUkXFoMSMQU5JTiBNSUxPVkFOCitPUkXFoMSMQU5JTiBOQVRBTElKQSBEUgorT1JFxaDEjEFOSU4gTkFUQUxJSkEKK09SRcWgxIxBTklOIE5JS09MQQorT1JFxaDEjEFOSU4gUkFET1ZBTgorT1JFxaDEjEFOSU4gVkxBRElNSVIKK09SRcWgxIxBTklOIFZMQURJTUlSCitPUkXFoMSGQU5JTiBEVcWgQU4KK09SRcWgS09WScSGIERPTkEKK09SRcWgS09WScSGIEpFTEVOQQorT1JFxaBLT1ZJxIYgTUlMRQorT1JFxaBLT1ZJxIYgU0xBVktPCitPUkXFoEtPVknEhiBaVk9OSU1JUgorT1JFQiBCT1JJUworT1JFSE9WQUMgUlXFvUEKK09SRUxKIMSQVVJPCitPUkVMSiBCUkFOSVNMQVYKK09SRUxKIERBUklOS0EKK09SRUxKIEpPVkFOCitPUkVMSiBMSlVCTworT1JFTEogTUFUSUxEQQorT1JFTEogTUlMRVZBCitPUkVMSiBOQVRBTElKQQorT1JFTEogUkFERQorT1JFTkRJIEpVTElKQU5BCitPUkVOREkgTEFTTE8KK09SRU5ESSBPVE8KK09STEFOREnEhiBLT1JORUxJSkEKK09STEFOREnEhiBaT0xUQU4KK09STEnEhiBCUkFOSVNMQVYKK09STEnEhiBMSlVCSUNBCitPUkxJxIYgTEpVQklDQQorT1JMScSGIE1BUklDQQorT1JMScSGIE1BUklKQQorT1JMScSGIE1JTEFOCitPUkxJxIYgTUlMT1JBRAorT1JMScSGIE5BREEKK09STEnEhiBOQURFxb1EQQorT1JMScSGIE5FREVMSktPCitPUkxJSyBBTkEKK09STElLIE1BUklKQQorT1JMT1ZBQyBFUsW9RUJFVAorT1JMT1ZJxIYgQU5URQorT1JMT1ZJxIYgREFSSU5LQQorT1JMT1ZJxIYgRFXFoEFOCitPUkxPVknEhiBKT1ZPCitPUkxPVknEhiBMSlVCSUNBCitPUkxPVknEhiBNQU5FCitPUkxPVknEhiBNSUhBSkxPCitPUkxPVknEhiBNSUxBTgorT1JMT1ZJxIYgTUlMQU4KK09STE9WScSGIE1JTE9SQUQgRFIKK09STE9WScSGIE1JTE9SQUQKK09STE9WScSGIFNBxaBBCitPUkxPVknEhiBTUkJPTEpVQgorT1JMT1ZJxIYgU1RFVklDQQorT1JMT1ZJxIYgU1RPSkFOCitPUkxPVknEhiBTVkVUTEFOQQorT1JNQUkgVElCT1IKK09STkpBS09WIFBSSVpSRU5LQQorT1JPIMSMRURPTUlSCitPUk9TIMW9QVJLTworT1JPUyDEkFVSQQorT1JPUyDEkFVSQQorT1JPUyBBTEJFUlQKK09ST1MgRVVHRU4KK09ST1MgSk9BS0lNCitPUk9TIE1BUklKQQorT1JPUyBOSUtPTEEKK09ST1MgVkFTQQorT1JPUyBaREVOS0EKK09ST1bEjEFORUMgS0lSQSBEUgorT1JPVkVDIEpPU0lQCitPUk9WScSGIE1JTE9WQU4KK09SU0FHIEFOVEFMCitPUlNJxIYgUkFETUlMQQorT1JUQUsgS0HEhkEKK09SVk/FoCBMQUpPxaAKK09SWkEgTUlSQ0EKK09SWkEgUk9TQU5BCitPU0XEhkFOU0tJIE1MQURFTgorT1NFVFJPViBOSUtPTEEKK09TTE9WxIxBTiBCT1NJTEpLQQorT1NNQU5BSiBJTUVSCitPU01BTkkgQVNBTgorT1NNQU5JIE1FSE1FRAorT1NNQU5JIE5FxaBBVAorT1NNQU5JIFJPTUFOS0EKK09TTUFOSSBTRUxJTQorT1NNQU5LQcSMIFNFTElNCitPU01BTk9WScSGIEtMQVVESUpBCitPU01BTk9WScSGIExKVUJJTktBCitPU01PTk9KIFNBRFJJSkEKK09TTk9WScSGIE9TS0FSCitPU09TTElKQSBSQURFTktPCitPU1JFREtBUiBKT1NJUAorT1NURVIgSUxPTkEKK09TVE9JxIYgxJBPUsSQRQorT1NUT0nEhiBaT1JBTgorT1NUT0pJxIYgxb1JVktPCitPU1RPSknEhiDEkE9SxJBFCitPU1RPSknEhiBCT8WgS08KK09TVE9KScSGIEJPxb1JREFSCitPU1RPSknEhiBCT8W9SURBUgorT1NUT0pJxIYgQk9HREFOCitPU1RPSknEhiBCUkFOQQorT1NUT0pJxIYgQlJBTklNSVIKK09TVE9KScSGIEJSQU5JU0xBViBEUgorT1NUT0pJxIYgQlJBTktPCitPU1RPSknEhiBEQUZJTkEKK09TVE9KScSGIERPQlJJVk9KCitPU1RPSknEhiBEUkFHQU4KK09TVE9KScSGIERSQUdJQ0EKK09TVE9KScSGIERSQUdJQ0EKK09TVE9KScSGIERSQUdPTEpVQgorT1NUT0pJxIYgRFXFoEFOCitPU1RPSknEhiBEVcWgQU4KK09TVE9KScSGIERVxaBBTgorT1NUT0pJxIYgR09KS08KK09TVE9KScSGIEdPUklOS0EKK09TVE9KScSGIElWQU4KK09TVE9KScSGIEpPVkFOS0EKK09TVE9KScSGIEtBVElDQQorT1NUT0pJxIYgTEFaQVIKK09TVE9KScSGIExKVUJBCitPU1RPSknEhiBMSlVCSU5LTworT1NUT0pJxIYgTEpVQk9NSVIKK09TVE9KScSGIExKVUJPTUlSCitPU1RPSknEhiBMSlVCT01JUgorT1NUT0pJxIYgTUnEhkEKK09TVE9KScSGIE1JTEFESU4KK09TVE9KScSGIE1JTEFOCitPU1RPSknEhiBNSUxFTktPCitPU1RPSknEhiBNSUxFTktPCitPU1RPSknEhiBNSUxFVkEKK09TVE9KScSGIE1JTElDQQorT1NUT0pJxIYgTUlMS0EKK09TVE9KScSGIE1JTE/FoAorT1NUT0pJxIYgTUlMT1JBRAorT1NUT0pJxIYgTUlMT1JBRAorT1NUT0pJxIYgTUlSSkFOQQorT1NUT0pJxIYgTkFEQQorT1NUT0pJxIYgTkFUQcWgQQorT1NUT0pJxIYgTkVOQUQKK09TVE9KScSGIE9CUkFECitPU1RPSknEhiBPQlJBRAorT1NUT0pJxIYgT0xHQQorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUFJFRFJBRworT1NUT0pJxIYgUkFESVZPSkUKK09TVE9KScSGIFJBRE9KSUNBCitPU1RPSknEhiBSQURPVkFOCitPU1RPSknEhiBSQVRLTworT1NUT0pJxIYgUklTVE8KK09TVE9KScSGIFNMQVZJQ0EKK09TVE9KScSGIFNMQVZLTworT1NUT0pJxIYgU0xPQk9EQU4KK09TVE9KScSGIFNNSUxKS0EKK09TVE9KScSGIFNUQU5BCitPU1RPSknEhiBTVEFOS0EKK09TVE9KScSGIFNWRVRPWkFSCitPU1RPSknEhiBUT01JU0xBVgorT1NUT0pJxIYgVkFTQQorT1NUT0pJxIYgVkFTSUxJSkUKK09TVE9KScSGIFZFU0VMSU4KK09TVE9KScSGIFZFU0VMSU4KK09TVE9KScSGIFZMQURJTUlSCitPU1RPSknEhiBWT0pJU0xBVgorT1NUT0pJxIYgWkFHT1JLQQorT1NUT0pJxIYgWk9SQU4KK09TVE9KScSGIFpPUkEKK09TVE9KSU4gxb1BUktPCitPU1RPSklOIEpVTEtBCitPU1RPSklOIExBWkFSCitPU1RPSklOIE1BUklKQQorT1NUT0pJTiBNSUxPxaAKK09TVE9KSU4gUEVSQQorT1NUT0pJTiBQRVJPCitPU1RPSklOIFBFVEFSCitPU1RPSklOIFBFVEFSCitPU1RPSklOIFJBRE9WQU4KK09TVE9KSU4gU1ZFVElTTEFWCitPU1RPSklOIFRPxaBBCitPU1RST0dPTkFDIElWQU4gTk9WSU5BUgorT1NUUk9HT05BQyBJVkFOCitPU1RST0dPTkFDIFRJQk9SCitPU1ZBTEQgQkFSQkFSQQorT1NWQUxEIElWQU4KK09TVkFMRCBWRVJBCitPVEHFoEVWScSGIMW9SVZLTworT1RBxaBFVknEhiBKT1ZBTgorT1RBxaBFVknEhiBTTE9CT0RBTktBCitPVEHFoEVWScSGIFZMQVNUQQorT1RJxIYgxb1JVktPCitPVEnEhiBCT1JJVk9KCitPVEnEhiBCT1JJVk9KCitPVEnEhiBEQVJJTktBCitPVEnEhiBEVUJSQVZLQQorT1RJxIYgSk9WQU5LQQorT1RJxIYgS0FUSUNBCitPVEnEhiBNSUxBTgorT1RJxIYgTUlMSVZPSgorT1RJxIYgTklLT0xBCitPVEnEhiBOT1ZBSworT1RJxIYgUkFET1NMQVZBCitPVEnEhiBSQURPU0xBVkEKK09UScSGIFJBRE9TTEFWCitPVEnEhiBTQVZBCitPVEnEhiBTVkVUT1pBUgorT1RJxIYgVkVMSVpBUgorT1RJxIYgVkxBRElTTEFWCitPVEnEhiBWVUtJQ0EKK09UTE9LQU4gSk9WQU4KK09UTUHEjEnEhiBEUkFHTworT1RPxaAgQU5EUkHFoAorT1RPUkFOT1YgU0xBVktPCitPVE9WScSGIFZMQURJTUlSCitPVFJVUMSMQUsgSk9TSVAKK09UUlVQxIxBSyBNSUxPxaAKK09UUlVQxIxBSyBTQU1VSUxPCitPVkNJTiBNSUxPUkFECitPVlVLQSDEkFVSTworT1ZVS0EgxJBVUk8KK09WVUtBIE1JTEFOCitPVlVLQSBOSUtPTEEKK09aRVIgxJBVUkEKK09aRVIgxJBVUkEKK09aRVIgxJBVUkEKK09aTUVDIFZFUkEKK1DFoEVOScSMTklLIFpWT05JTUlSCitQQcSMQVJJxIYgxb1JVkFOCitQQcSMQVJJxIYgTUFSSUpBCitQQcSMQVJJxIYgTUlSS08KK1BBxIxBUknEhiBOSUtPTEEKK1BBxIxBUknEhiBSQURJVk9KCitQQcSMQVJJxIYgUkFET01JUgorUEHEjEFSScSGIFpPUkFOCitQQcWgxIZBTiDFoFRFRkFOSUpBCitQQcWgxIZBTiDEkE9SxJBFCitQQcWgxIZBTiDEkE9SxJBFCitQQcWgxIZBTiBBTktBCitQQcWgxIZBTiBEQU5JQ0EKK1BBxaDEhkFOIERSQUdBTgorUEHFoMSGQU4gRFXFoEFOS0EKK1BBxaDEhkFOIERVxaBBTgorUEHFoMSGQU4gR0FWUkEKK1BBxaDEhkFOIEpPVkFOCitQQcWgxIZBTiBKT1ZBTgorUEHFoMSGQU4gTUlMT1JBRAorUEHFoMSGQU4gTkFERcW9REEKK1BBxaDEhkFOIE5FREVMSktPCitQQcWgxIZBTiBOSUtPTEEKK1BBxaDEhkFOIE9MR0EKK1BBxaDEhkFOIFBFUkEKK1BBxaDEhkFOIFBFVEFSCitQQcWgxIZBTiBSQURJVk9KCitQQcWgxIZBTiBSQURPU0xBVkEKK1BBxaDEhkFOIFJBRE9TTEFWCitQQcWgxIZBTiBTQVZBCitQQcWgxIZBTiBTSU5JxaBBCitQQcWgxIZBTiBTTUlMSkEKK1BBxaDEhkFOIFNURVZBTgorUEHFoMSGQU4gVE9ET1IKK1BBxaDEhkFOIFZBU0EKK1BBxaDEhkFOIFpBR09SS0EKK1BBxaDEhkFOT1ZJxIYgR1JBRElNSVIKK1BBxaDEhkFOT1ZJxIYgTEFaQVIKK1BBxaDEhkFOT1ZJxIYgTEpVQklDQQorUEHFoMSGSUsgS0xBUkEKK1BBxaDEhklLIExBU0xPCitQQcWgQUdJxIYgUkFKS08KK1BBxaBBSkxJxIYgQU7EkEVMS08KK1BBxaBBSkxJxIYgQklMSkFOQQorUEHFoEFKTEnEhiBNSU9EUkFHCitQQcWgQUpMScSGIFJBRE9TTEFWCitQQcWgQUpMScSGIFJBRE9TTEFWCitQQcWgQUpMScSGIFZMQURPCitQQcWgQUxJxIYgUEFWTEUKK1BBxaBBTlNLSSBNSUxBTgorUEHFoEFOU0tJIFZVS0lDQQorUEHFoEnEhiBCT8W9QU5BCitQQcWgScSGIEJPxb1PCitQQcWgScSGIERSQUdJQ0EKK1BBxaBJxIYgRFXFoEtPCitQQcWgScSGIEpPVkFOCitQQcWgScSGIEtBVElDQQorUEHFoEnEhiBNSUxBTgorUEHFoEnEhiBNSUxFTkEKK1BBxaBJxIYgUEVUQVIKK1BBxaBJxIYgUk9TQQorUEHFoEnEhiBTQcWgQQorUEHFoEnEhiBTSU5JxaBBCitQQcWgScSGIFNUT0pBCitQQcWgScSGIFZPSklTTEFWCitQQcWgScSGIFpPUkEKK1BBxaBJTiBHUk9aREFOQQorUEHFoEtBIMWgQU5ET1IKK1BBxaBLSU5PViBWQVNLTworUEHFoFRFUkFDIEFMRUtTQU5EQVIKK1BBxaBUSSDFoEFORE9SCitQQcWgVEkgTUFUSUpBCitQQcWgVUpLT1ZJxIYgSk9WQU4KK1BBxIZJIEJPUklTCitQQcSGSSBJxaBUVkFOCitQQcSGSSBNQVJJTworUEHEhlVLIE5JS09MQQorUEHEhlVLIFNMQVZLTworUEHFvcSQRVJTS0ktTUFOT0pMT1ZJxIYgSkVMRU5BCitQQcW9SU4gxb1FTEpLTworUEHFvUlOIEFOxJBFTEtPCitQQcW9SU4gREFOSUNBCitQQcW9SU4gTEpVQk9NSVIKK1BBxJBBTiBMSlVCT01JUgorUEHEkEFOIE1JTElDQQorUEHEkEVOIERVxaBBTgorUEHEkEVOIExFUEEKK1BBxJBFTiBNQVJJSkEKK1BBxJBFTiBTVEVWQQorUEHEkEVOIFpEUkFWS08KK1BBQyBJVkFOS0EKK1BBQ0VLIExBU0xPCitQQUNJSyBJxaBUVkFOCitQQURFxb1BTklOIExKVUJPCitQQURFxb1BTklOIFZMQURFVEEKK1BBREVKU0tJIE1JTEVOQQorUEFERUpTS0kgTUlMT1ZBTgorUEFERUpTS0kgU0FWQQorUEFERUpTS0kgVkVMSU1JUgorUEFESSBBTEVLU0FOREFSCitQQURJIEFMRUtTQU5EQVIKK1BBREkgTEFKT8WgCitQQURST1YgR09SQU4KK1BBRFJPViBOSUtPTEEKK1BBRFJPViBSQURJVk9KCitQQURST1YgVkVTTkEKK1BBR0HEjCBCSUxKQU5BCitQQUdBxIwgTklLT0xBCitQQUdBxIxFVknEhiBBTsSQRUxLTworUEFHQcSMRVZJxIYgRFJBR09NSVIKK1BBR0HEjEVWScSGIFNURVZBTgorUEFHQcSMRVZJxIYgU1RFVkFOCitQQUdBxIxFVknEhiBWQVNBCitQQUdBTkVUTyBUSU5BCitQQUdPTklTIEpVTEtBCitQQUdPTklTIFZMQURJTUlST1MKK1BBScSGIMSQVVJBxJAKK1BBScSGIERSQUdBTgorUEFJxIYgRlJBTkUKK1BBScSGIElWQU4KK1BBScSGIE1BUklKQQorUEFKxIxJxIYgQUxFS1NBCitQQUrEjEnEhiBBTkEKK1BBSsSMSU4gSUxJSkEKK1BBSsSMSU4gTUlMT0pLTworUEFKxIxJTiBORURFTEpLQQorUEFKxIxJTiBWT0pJU0xBVgorUEFKQU5UScSGIERSQUdBTgorUEFKQVpJVE9WScSGIE1JUkpBTkEKK1BBSkRBS09WScSGIERVQlJBVktBCitQQUpEScSGIEpVTElKQQorUEFKREnEhiBNQVJJSkFOCitQQUpFVknEhiDEkE9SxJBFCitQQUpFVknEhiBEUkFHT0xKVUIKK1BBSkVWScSGIEdPUkFOCitQQUpFVknEhiBLT1NUQQorUEFKRVZJxIYgTUlMQU4KK1BBSknEhiBCTEFHT0pFCitQQUpJxIYgQkxBR09KRQorUEFKScSGIEJPxb1JREFSCitQQUpJxIYgQk/FvU8KK1BBSknEhiBCT0dJxIYKK1BBSknEhiBCT1JJU0xBVgorUEFKScSGIEJSQU5JU0xBVgorUEFKScSGIEJSQU5LTworUEFKScSGIEJVRElTTEFWCitQQUpJxIYgRE9CUklWT0oKK1BBSknEhiBEUkFHT1NMQVYKK1BBSknEhiBEVcWgQU4gRFIKK1BBSknEhiBEVcWgQU4KK1BBSknEhiBEVcWgQU4KK1BBSknEhiBFTUlOQQorUEFKScSGIEdPUkRBTkEKK1BBSknEhiBHT1JJQ0EKK1BBSknEhiBHUlVKQQorUEFKScSGIEtPVklMSktBCitQQUpJxIYgTEpVQklOS0EKK1BBSknEhiBMSlVCT01JUiBESVBMIElORworUEFKScSGIE1BUklKQQorUEFKScSGIE1JTElDQQorUEFKScSGIE1JTElWT0pFCitQQUpJxIYgTUlMT8WgCitQQUpJxIYgTUlMT8WgCitQQUpJxIYgTUlMT0pFCitQQUpJxIYgTUlMT1JBRAorUEFKScSGIE1JTE9TQVYKK1BBSknEhiBNSUxVTgorUEFKScSGIE1JUktPCitQQUpJxIYgTUlSS08KK1BBSknEhiBNTEFERU4KK1BBSknEhiBOQURBCitQQUpJxIYgTkFEQQorUEFKScSGIE5JS09MQQorUEFKScSGIE5PVkFLCitQQUpJxIYgUEVSTworUEFKScSGIFBFVEFSCitQQUpJxIYgUkFET0pJQ0EKK1BBSknEhiBSQURPTUlSCitQQUpJxIYgUkFET1NMQVZBCitQQUpJxIYgUkFKS08KK1BBSknEhiBTSU5JxaBBCitQQUpJxIYgU01JTEpBCitQQUpJxIYgU1JFRE9KRQorUEFKScSGIFNURVZBTgorUEFKScSGIFNWRVRPWkFSCitQQUpJxIYgVElIT01JUgorUEFKScSGIFZBU0EKK1BBSknEhiBWRUxJTUlSCitQQUpJxIYgVkVTRUxJTgorUEFKScSGIFZJRE9TQVZBCitQQUpJxIYgVkxBRElTTEFWCitQQUpJxIYgVlVLSUNBCitQQUpJSyBEQU5JQ0EKK1BBSklOIEpPVkFOCitQQUpJTiBNSUxJVk9KCitQQUpLRVJUIEFMRUtTQU5EQVIKK1BBSktFUlQgRlJBTkpBCitQQUpLRVJUIE1JUk9TTEFWQQorUEFKS0VSVCBSQU5LQQorUEFKS0nEhiBEUkFHQU4KK1BBSktJxIYgUkFET1NMQVYKK1BBSktPVknEhiBEUkFHQU5BCitQQUpLT1ZJxIYgVkxBU1RJTUlSCitQQUpPUiBNQVRJSkEKK1BBSk9WScSGIMWgUElSTworUEFKT1ZJxIYgxJBPUsSQRQorUEFKT1ZJxIYgRFJBR09NSVIKK1BBSk9WScSGIERVxaBBTgorUEFKT1ZJxIYgSkVMRU5BCitQQUpPVknEhiBQUkVEUkFHCitQQUpPVknEhiBSQUpLTworUEFKT1ZJxIYgU0xPQk9EQU4KK1BBSk9WScSGIFpPUktBCitQQUpUQcWgRVYgRE9CUklWT0oKK1BBSlRBSyBSQURNSUxBCitQQUpUScSGIFBBVkxFCitQQUpWQU7EjEnEhiBGUkFOSkEKK1BBSlZBTsSMScSGIEtBVEEKK1BBSlZBTsSMScSGIE1BUklKQU5BCitQQUpWT0QgQk9TSUxKS0EKK1BBS0HFoEtJIMSQVVJBCitQQUtBxaBLSSBNSUtBCitQQUtBxaBLSSBNSUxPVkFOCitQQUtBxaBLSSBSQURPU0xBVgorUEFLQcWgS0kgU0lNQQorUEFLQcWgS0kgVkFTQQorUEFLQcWgS0kgVklUQUxJSiBESVBMIElORworUEFLQUkgSk/FvUVGCitQQUtBSSBMQVNMTworUEFLTEFSIFZJREEKK1BBS0xFRElOQUMgVklOS08KK1BBS1XFoEVWU0tJIEtBVEFSSU5BCitQQUtVxaBFVlNLSSBNSUhBSkxPCitQQUtVxaBFVlNLSSBNSVRBUgorUEFLVcWgRVZTS0kgUlXFvUlDQQorUEFLVcWgRVZTS0lKIFNURUZBTgorUEFMIElMT05BCitQQUwgUk9aQUxJSkEKK1BBTMSMRUsgSk9TSVAKK1BBTEHEjEtPVknEhiBNSUxBTgorUEFMQcSMS09WScSGIFVST8WgCitQQUxBxaBUSSDEkE9SxJBFCitQQUxBxaBUSSBERVNBTktBCitQQUxBxaBUSSBJxaBUVkFOCitQQUxBxaBUSSBJxaBUVkFOCitQQUxBxaBUSSBKT1NJUAorUEFMQcWgVEkgUk9aQUxJSkEKK1BBTEFEQSBKT1pPCitQQUxBTEnEhiDEkFVSQQorUEFMQUxJxIYgRFJBR0FOCitQQUxBTEnEhiBEVcWgQU4KK1BBTEFMScSGIEdPSktPCitQQUxBTEnEhiBHT0pLTworUEFMQUxJxIYgSUxJSkEKK1BBTEFMScSGIEpPVkFOCitQQUxBTEnEhiBNSVJLTworUEFMQUxJxIYgTkVWRU5BCitQQUxBTEnEhiBOSUtPCitQQUxBTEnEhiBQQVZMRQorUEFMQUxJxIYgUkFERQorUEFMQUxJxIYgU05Fxb1BTkEKK1BBTEFMScSGIFNSRVRPCitQQUxBTEnEhiBTVE9KQU4KK1BBTEFMScSGIFRPREUKK1BBTEFMScSGIFZJRAorUEFMQUxJxIYgVk9KSU4KK1BBTEFMScSGIFpEUkFWS08KK1BBTEFNQVLEjFVLIEFMRUtTQU5EQVIKK1BBTEFOIEpPU0lQCitQQUxBTsSMQU5JTiBFTEVOQQorUEFMQU7EjEFOSU4gSk9WQU4KK1BBTEFOxIxBTklOIFJVxb1BCitQQUxBTsSMQU5JTiBWQVNBCitQQUxBTsSMQU5JTiBWQVNBCitQQUxBTkHEjEtJIMSQT1LEkEUKK1BBTEFOQcSMS0kgUlXFvUlDQQorUEFMQU5BxIxLSSBTQVZBCitQQUxBVElOVcWgIEFORFJBxaAKK1BBTEFUSU5VxaAgScWgVFZBTgorUEFMQVRJTlXFoCBKT8W9RUYKK1BBTEXFvUVWScSGIEJPUklTTEFWCitQQUxFVknEhiBTTEFWSUNBCitQQUxGSSBBTEVLU0FOREFSCitQQUxGSSBCT1JLQQorUEFMRkkgScWgVFZBTgorUEFMRkkgScWgVFZBTgorUEFMRkkgSlVMSUpBTkEKK1BBTEZJIEtBVElDQQorUEFMScSMS08gxJBVUsSQSU5LQQorUEFMScSMS08gQU5EUkHFoAorUEFMScSMS08gSUxFxaAKK1BBTEnEjEtPIElSRU5BCitQQUxJxIxLTyBKRUxFTkEKK1BBTEnFoEHFoEtJIE9MR0EKK1BBTEnEhiBCT1JJU0xBViBESVBMIElORworUEFMScSGIERSQUdBTgorUEFMScSGIERVxaBBTgorUEFMScSGIExKVUJJQ0EKK1BBTEnEhiBNQVJUQQorUEFMScSGIE1JTEVOS08KK1BBTEnEhiBOSUtPTEEKK1BBTEnEhiBPTEdBCitQQUxJxIYgU1RFVkFOCitQQUxJxIYgU1RFVkFOCitQQUxJxIYgVkxBU1RJTUlSCitQQUxJTktBxaAgxJBPUsSQRQorUEFMSU5LQcWgIMSQVVJBCitQQUxJTktBxaAgQkxBTktBCitQQUxJTktBxaAgQk9SSVZPSkUgRElQTCBJTkcKK1BBTElOS0HFoCBGUkFOSkEKK1BBTElOS0HFoCBHRVpBCitQQUxJTktBxaAgSk/FvUVGCitQQUxJTktBxaAgTUFSSUpBCitQQUxJTktBxaAgTUlIQUxKCitQQUxJTktBxaAgTUlSS08KK1BBTElOS0HFoCBTVEVWQU4KK1BBTElOS0HFoCBWRVJBIERSCitQQUxKScSGIExKVUJPTUlSCitQQUxKVVJBUyBBUE9TVE9MT1MKK1BBTE/FoCBJVkFOCitQQUxPxaBJIE9MR0EKK1BBTE9DIMWgQU5ET1IKK1BBTE9DIExBU0xPCitQQUxPQyBUSUJPUgorUEFMT1RBxaAgQU5EUklKQQorUEFMT1YgTUlIQUlMTyBEUgorUEFMVVJPVknEhiBTVEVQQU4KK1BBTVXEjElOQSBKT1ZBTgorUEFOxIxJxIYgR0FWUklMTworUEFOxIxJxIYgR1JBRElNSVIKK1BBTsSMScSGIEpVTElKQU5BCitQQU7EjEnEhiBKVUxJSkFOQQorUEFOxIxJxIYgU0xPQk9EQU4KK1BBTsSMScSGIFpPUkFOCitQQU7EjE9WQU4gQVZSQU0KK1BBTsSMVUxJRFpFViBBTEVLU0lKRQorUEFOQUpPVElESVMgTEVPTklEQVMKK1BBTkFPVE9WScSGIEJPR0RBTgorUEFOQU9UT1ZJxIYgRFXFoEFOS0EKK1BBTkFPVE9WScSGIEpPVklDQQorUEFOQU9UT1ZJxIYgTUlSSkFOQQorUEFOQ0VSIEJSQU5LTworUEFOQ0VSIEJSQU5LTworUEFORMW9QSBCT8W9SUNBCitQQU5Exb1BIFpWRVpEQU5BCitQQU5Exb1JxIYgTkFEQQorUEFORMW9ScSGIFNMT0JPREFOS0EKK1BBTkTFvUnEhiBTVkVUT1pBUgorUEFORMW9ScSGIFRPTUlTTEFWCitQQU5Exb1JxIYgVk9KSVNMQVYgRElQTCBJTkcKK1BBTkRJIE9TS0FSCitQQU5EVVJFVknEhiBNSUxBTktPCitQQU5EVVJPViDFvUlWS0EKK1BBTkRVUk9WIEFDQQorUEFORFVST1YgRFJBR09MSlVCCitQQU5EVVJPViBEVcWgQU5LQQorUEFORFVST1YgTUlMSUNBCitQQU5EVVJPViBNSUxJVk9KCitQQU5EVVJPViBNSVJPU0xBVgorUEFORFVST1YgUEVUQVIKK1BBTkRVUk9WIFNBVkEKK1BBTkRVUk9WIFpPUkFOCitQQU5EVVJPViBaT1JBTgorUEFORFVST1ZJxIYgxb1JVktBCitQQU5EVVJPVknEhiBJVkFOCitQQU5EVVJPVknEhiBKT1ZBTgorUEFORFVST1ZJxIYgSlVMS0EKK1BBTkRVUk9WScSGIFBBVkxFCitQQU5EVVJPVknEhiBSQURNSUxBCitQQU5EVVJPVknEhiBTUkVURU4KK1BBTkRVUk9WScSGIFNWRVRPWkFSCitQQU5EVVJPVknEhiBUT01JU0xBVgorUEFORFVST1ZJxIYgVkxBRElTTEFWQQorUEFORFVST1ZJxIYgVk9KSU4KK1BBTkRVUlNLSSBNSVJPU0xBVgorUEFOR0VSQyBNQVJBCitQQU5HRVJDIFZFTElCT1IKK1BBTknEhiDFvUFSS08KK1BBTknEhiDFvUlWQU4KK1BBTknEhiDFvUlWT0pJTgorUEFOScSGIMSQT1LEkEUKK1BBTknEhiDEkE9SxJBFCitQQU5JxIYgxJBPUsSQRQorUEFOScSGIMSQT1LEkEUKK1BBTknEhiDEkE9SxJBFCitQQU5JxIYgxJBVUkEKK1BBTknEhiBBTEVLU0FOREFSCitQQU5JxIYgQU5BCitQQU5JxIYgQU5BCitQQU5JxIYgQU5UVU4KK1BBTknEhiBCUkFOSVNMQVYKK1BBTknEhiBCUkFOSVNMQVYKK1BBTknEhiBCUkFOSVNMQVYKK1BBTknEhiBCUkFOS08KK1BBTknEhiBEQU1KQU4KK1BBTknEhiBEQU5JTEtBCitQQU5JxIYgRFJBR0FOCitQQU5JxIYgRFJBR0FOCitQQU5JxIYgRFJBR0FOCitQQU5JxIYgRFJBR0FOCitQQU5JxIYgRFJBR09MSlVCCitQQU5JxIYgRFJBR09TTEFWCitQQU5JxIYgRFJBR09TTEFWCitQQU5JxIYgRFJFTkEKK1BBTknEhiBEVcWgQU4KK1BBTknEhiBEVcWgQU4KK1BBTknEhiBHT1JEQU5BCitQQU5JxIYgSUxJSkEKK1BBTknEhiBJTE9OQQorUEFOScSGIEpBxaBBCitQQU5JxIYgSkVMRU5BCitQQU5JxIYgSkVMRU5BCitQQU5JxIYgSk9WQU5LQSBEUgorUEFOScSGIEpPVkFOS0EKK1BBTknEhiBKT1ZBTktBCitQQU5JxIYgSlVMS0EKK1BBTknEhiBLQUlDQQorUEFOScSGIEtBVEEKK1BBTknEhiBLT05TVEFOVElOCitQQU5JxIYgTEpVQklDQQorUEFOScSGIE1BUktPCitQQU5JxIYgTUnEhk8KK1BBTknEhiBNSUNBCitQQU5JxIYgTUlLQQorUEFOScSGIE1JTEFOQQorUEFOScSGIE1JTEFOCitQQU5JxIYgTUlMRU5BCitQQU5JxIYgTUlMRU5LTworUEFOScSGIE1JTEUKK1BBTknEhiBNSUxJQ0EKK1BBTknEhiBNSUxJSkEKK1BBTknEhiBNSUxJVk9KCitQQU5JxIYgTUlMSVZPSgorUEFOScSGIE1JTElWT0oKK1BBTknEhiBNSUxPxaAKK1BBTknEhiBNSUxPxaAKK1BBTknEhiBNSUxPxaAKK1BBTknEhiBNSUxPUkFECitQQU5JxIYgTUlMT1JBRAorUEFOScSGIE1JTE9WQU4KK1BBTknEhiBNSVJKQU5BCitQQU5JxIYgTUlSS08KK1BBTknEhiBNSVJLTworUEFOScSGIE1JUk9TTEFWCitQQU5JxIYgTkFEQQorUEFOScSGIE5BREEKK1BBTknEhiBOQURBCitQQU5JxIYgTkVNQU5KQQorUEFOScSGIE5FTkFECitQQU5JxIYgT0JSQURJTgorUEFOScSGIE9HTkpFTgorUEFOScSGIE9MR0EKK1BBTknEhiBQRVRBUgorUEFOScSGIFBFVEFSCitQQU5JxIYgUFJFRFJBRworUEFOScSGIFJBRElWT0pFCitQQU5JxIYgUkFET01JUgorUEFOScSGIFJBRE9TTEFWCitQQU5JxIYgUkFOS08KK1BBTknEhiBSSVNUTworUEFOScSGIFNBxaBBCitQQU5JxIYgU0FOSkEKK1BBTknEhiBTTEHEkEFOQQorUEFOScSGIFNNSUxKQU5LQQorUEFOScSGIFNORcW9QU5BCitQQU5JxIYgU1LEkEFOCitQQU5JxIYgU1JCT0xKVUIKK1BBTknEhiBTVEFOQQorUEFOScSGIFNUQU5LQQorUEFOScSGIFNURVZBTgorUEFOScSGIFNURVZBTgorUEFOScSGIFNURVZBTgorUEFOScSGIFNWRVRPWkFSCitQQU5JxIYgVE9NSVNMQVYKK1BBTknEhiBVR0xKRcWgQQorUEFOScSGIFZBU0lMSktBCitQQU5JxIYgVkxBRElNSVIKK1BBTknEhiBWT0pJU0xBVgorUEFOScSGIFpEUkFWS08KK1BBTknEhiBaTEFUS08KK1BBTknEhiBaT1JBTgorUEFOScSGIFpPUkEKK1BBTklBTiBBTklDQQorUEFOSU4gQk9SSVZPSkUKK1BBTklOIEJSQU5BCitQQU5JTiBNSUxJQ0EKK1BBTklOIE1JTE/FoAorUEFOSU4gTUlUQQorUEFOSU4gTUxBREVOCitQQU5JTiBaT1JBTgorUEFOSU7EjEnEhiBTT0ZJSkEKK1BBTkpLT1ZJxIYgQklMSkFOQQorUEFOSktPVknEhiBCUkFOS0EKK1BBTkpLT1ZJxIYgRFJBR0FOCitQQU5KS09WScSGIElMSUpBIE1SCitQQU5KS09WScSGIEpFTEVOQQorUEFOSktPVknEhiBNRUxBTklKQQorUEFOSktPVknEhiBNSUxBTgorUEFOSktPVknEhiBNSUxBTgorUEFOSktPVknEhiBNSUxBTgorUEFOSktPVknEhiBNSUxJQ0EKK1BBTkpLT1ZJxIYgTkFEQQorUEFOSktPVknEhiBOSUtPTEEKK1BBTkpLT1ZJxIYgUEVUQVIKK1BBTkpLT1ZJxIYgVkxBRElNSVIKK1BBTktPViBCUkFOSVNMQVYKK1BBTktPViBCUkFOSVNMQVYKK1BBTktPViBCUkFOS08KK1BBTktPViBKRUxFTkEKK1BBTktPViBKRUxJQ0EKK1BBTktPViBLQVRJQ0EKK1BBTktPViBNQVJLTworUEFOS09WIE1JTEVOS08KK1BBTktPViBNSUxPVkFOCitQQU5LT1YgUFJFRFJBRworUEFOS09WIFJBRE9TTEFWCitQQU5LT1YgU0FWQQorUEFOS09WIFNMQVZLTworUEFOS09WIFNWRVRPWkFSCitQQU5LT1YgVkVTTkEKK1BBTktPVknEhiBMQVpBUgorUEFOT1YgREVTQU5LQQorUEFOT1YgTkVOQUQKK1BBTk9WScSGIEFOxJBFTEtPCitQQU5PVknEhiBNSU9EUkFHCitQQU5URUxFTU9OT1YgTkVERUxKS08KK1BBTlRFTEVNT05PViBOT1ZLQQorUEFOVEVMScSGIMSMRURPTUlSCitQQU5URUxJxIYgxb1BUktPCitQQU5URUxJxIYgxJBPUsSQRQorUEFOVEVMScSGIMSQT1LEkEUKK1BBTlRFTEnEhiBBTsSQRUxLTworUEFOVEVMScSGIEFOQQorUEFOVEVMScSGIEJPUklWT0pFCitQQU5URUxJxIYgQk9SSVZPSgorUEFOVEVMScSGIENWRVRJTgorUEFOVEVMScSGIERBRklOQQorUEFOVEVMScSGIERBTklDQQorUEFOVEVMScSGIERSQUdBTgorUEFOVEVMScSGIERSQUdPTEpVQgorUEFOVEVMScSGIERSQUdPTEpVQgorUEFOVEVMScSGIElMSUpBIERJUEwgSU5HCitQQU5URUxJxIYgSUxJSkEKK1BBTlRFTEnEhiBKVUxJSkFOQQorUEFOVEVMScSGIEtBTUVOS08KK1BBTlRFTEnEhiBMQVpBUgorUEFOVEVMScSGIExKVUJJxaBBCitQQU5URUxJxIYgTEpVQklDQQorUEFOVEVMScSGIE1JSEFKTE8KK1BBTlRFTEnEhiBNSUxBRElOCitQQU5URUxJxIYgTUlMQU4KK1BBTlRFTEnEhiBNSUxPxaAKK1BBTlRFTEnEhiBNSUxPUkFECitQQU5URUxJxIYgTUlMT1ZBTgorUEFOVEVMScSGIE1JT0RSQUcKK1BBTlRFTEnEhiBNSVJPU0xBVgorUEFOVEVMScSGIE1PTcSMSUxPCitQQU5URUxJxIYgTU9NSVIKK1BBTlRFTEnEhiBORU5BRAorUEFOVEVMScSGIE5FVkVOS0EKK1BBTlRFTEnEhiBOSUtPTEEKK1BBTlRFTEnEhiBQQUpPCitQQU5URUxJxIYgUEFWTEUKK1BBTlRFTEnEhiBQRVRBUiBESVBMIElORworUEFOVEVMScSGIFBFVEFSCitQQU5URUxJxIYtUEVUUk9WScSGIE1BUklKQQorUEFOVEVMScSGIFNMQVZJQ0EKK1BBTlRFTEnEhiBTT0ZJSkEKK1BBTlRFTEnEhiBWQVNBCitQQU5URUxJxIYgVkVSQQorUEFOVEVMScSGIFZMQURJTUlSCitQQU5URUxJxIYgVkxBRElTTEFWCitQQU5URUxJxIYgVlVKSUNBCitQQU5URUxJxIYtVlVLQU5PVknEhiBWVUtPU0FWQQorUEFOVEVMScSGIFZVS0lDQQorUEFOVEVMScSGIFZVS0lDQQorUEFOVEVMScSGIFpPUkFOCitQQU5URUxJTiBHRU9SR0lKRQorUEFOVEVMSU5BQyBOSUtPTEEKK1BBTlRFTElOQUMgUEFWTEUKK1BBTlRFTElOQUMgU0xPQk9EQU4KK1BBTlRJxIYgxb1BUktPCitQQU5UScSGIMW9SVZBTgorUEFOVEnEhiDFvUlWS0EKK1BBTlRJxIYgxb1JVk9KSU4KK1BBTlRJxIYgxb1JVk9SQUQKK1BBTlRJxIYgxJBPUsSQRQorUEFOVEnEhiDEkFVSxJBJTktBCitQQU5UScSGIEFMRUtTQU5EQVIKK1BBTlRJxIYgQkFUQQorUEFOVEnEhiBCT0dEQU4KK1BBTlRJxIYgQk9SSVZPSkUKK1BBTlRJxIYgQk9TSUxKS0EKK1BBTlRJxIYgRE9CUklWT0oKK1BBTlRJxIYgRE9CUk9TQVYKK1BBTlRJxIYgRFXFoEFOCitQQU5UScSGIEdJWkVMQQorUEFOVEnEhiBHVk9aREVOCitQQU5UScSGIEpFTElDQQorUEFOVEnEhiBMSlVCSUNBCitQQU5UScSGIE1BUklOQQorUEFOVEnEhiBNSUhBSUxPCitQQU5UScSGIE1JTEFOCitQQU5UScSGIE1JTEVOS08KK1BBTlRJxIYgTUlMSVZPSkUKK1BBTlRJxIYgTUlMSVZPSgorUEFOVEnEhiBNSUxPUkFECitQQU5UScSGIE1JTE9SQUQKK1BBTlRJxIYgTUlPRFJBRyBEUiBMRUtBUgorUEFOVEnEhiBSQURFTktPCitQQU5UScSGIFJBRE9NSVIKK1BBTlRJxIYgUkFET01JUgorUEFOVEnEhiBSQURPU0xBVgorUEFOVEnEhiBST1pBCitQQU5UScSGIFNFTElNSVIKK1BBTlRJxIYgU0VMSU1JUgorUEFOVEnEhiBTVkVUT1pBUgorUEFOVEnEhiBUT01JU0xBVgorUEFOVEnEhiBVUk/FoAorUEFOVEnEhiBWRVNOQQorUEFOVEnEhiBWT0pJU0xBViBEUgorUEFOVEnEhiBaQUdPUktBCitQQU5UScSGIFpEUkFWS08KK1BBTlRPxaAgxJBVUk8KK1BBTlRPxaAgS09WSUxKS0EKK1BBTlRPxaAgUEVUQVIKK1BBTlRPxaAgUEVUQVIKK1BBTlRPVknEhiDFoMSGRVBBTgorUEFOVE9WScSGIMW9RUxKS08KK1BBTlRPVknEhiBBQ0EKK1BBTlRPVknEhiBCSUxKQU5BCitQQU5UT1ZJxIYgQlJBTktPCitQQU5UT1ZJxIYgRFJBR0lOSkEKK1BBTlRPVknEhiBMSlVCTworUEFOVE9WScSGIE1JTElTQVYKK1BBTlRPVknEhiBNSUxPVkFOCitQQU5UT1ZJxIYgTUxBREVOCitQQU5UT1ZJxIYgU0FWQQorUEFOVE9WScSGIFNWRVRPTElLCitQQU5UT1ZJxIYgVkxBRElNSVIKK1BBTlpBTE9WScSGIFJBRE9WQU4KK1BBT0xPTkkgxJBVWkVQSU5BCitQQVAgxaBBTkRPUgorUEFQIMWgQU5ET1IKK1BBUCDFoEFORE9SCitQQVAgxaBBTkRPUgorUEFQIMSQRVLEkAorUEFQIMSQVVJPCitQQVAgQU5BCitQQVAgREVKQU4KK1BBUCBEUkFHSUNBCitQQVAgRURJVAorUEFQIEVESVQKK1BBUCBFTkRSRSBEUgorUEFQIEVORFJFCitQQVAgRVLFvUVCRVQKK1BBUCBFVEVMS0EKK1BBUCBGRVJFTkMKK1BBUCBGUkFOSkEKK1BBUCBGUkFOSkEKK1BBUCBHQUJPUgorUEFQIEnFoFRWQU4gRFIKK1BBUCBJxaBUVkFOCitQQVAgSUxFxaAKK1BBUCBJTVJFCitQQVAgSU1SRQorUEFQIElSRU5BCitQQVAgSVJFTkEKK1BBUCBKQU5KQQorUEFQIEpBTktPCitQQVAgSkVMRU5BCitQQVAgSkVMSVNBVkVUQQorUEFQIEpPxb1FRiBEUgorUEFQIEpPU0lQCitQQVAgSk9TSVAKK1BBUCBKT1ZBTgorUEFQIEpVTElKQU5BCitQQVAgSlVMSUpBTgorUEFQIEpVTElKQQorUEFQIEtBVEFSSU5BCitQQVAgTEFTTE8KK1BBUCBNQVJHSVRBCitQQVAgTUlIQUpMTworUEFQIE1JSEFKTE8KK1BBUCBNSUtMT8WgCitQQVAgTUlST04KK1BBUCBPTEdBCitQQVAgUEFWTEUKK1BBUCBST1pBTElKQQorUEFQIFNJTFZFU1RFUgorUEFQIFRFUkVaSUpBCitQQVAgVElCT1IKK1BBUCBWQUxFUklKQQorUEFQIFZFUkEKK1BBUCBWSU5DRQorUEFQIFZMQURJU0xBVgorUEFQIFpERU5LQQorUEFQIFpPTFRBTgorUEFQxaBPVC1LT1pJSyBQRVBJCitQQVDEkFVSREVTIEpPVkdFTgorUEFQQURPUE9MTyBEUkFHT1NMQVYKK1BBUEFET1BPTE8gVkpFS09TTEFWCitQQVBBRE9QVUxPUyBKQU5JUworUEFQQURPUFVMT1MgS09TVEFTCitQQVBBR0VPUkdJVCBLT1NUQQorUEFQQUsgRFJBR0FOCitQQVBBVEFOQVNJVSBOSUNBCitQQVBFxaAgSk9TSVAKK1BBUEXFoCBLT1NBCitQQVBFxb0gSUxJTktBCitQQVBIQVJIQUpJIMSQVVJBCitQQVBIQVJIQUpJIFRFUkVaSUpBCitQQVBIQVJIQUpJIFZMQURJTUlSCitQQVBJxaBUQSBGUkFOSkEKK1BBUEnFoFRBIEZSQU5KQQorUEFQScWgVEEgSUxESUtBCitQQVBJxaBUQSBKT1ZBTgorUEFQScWgVEEgTUFSSUpBCitQQVBJxaBUQSBNQVJLTworUEFQScWgVEEgTUlIQUpMTworUEFQScSGIMSMRURPTUlSCitQQVBJxIYgxb1JVktPCitQQVBJxIYgQUxFS1NBTkRBUgorUEFQScSGIEFMRUtTQU5EQVIKK1BBUEnEhiBBTkEKK1BBUEnEhiBBUkFOS0EKK1BBUEnEhiBBUkFOS0EKK1BBUEnEhiBBUkFOS0EKK1BBUEnEhiBBUkFOS0EKK1BBUEnEhiBCT8WgS08KK1BBUEnEhiBCT8W9QQorUEFQScSGIEJPxb1JREFSCitQQVBJxIYgQlJBTklTTEFWCitQQVBJxIYgQlJBTktPCitQQVBJxIYgQlJBTktPCitQQVBJxIYgREVTQU5LQQorUEFQScSGIERPQlJJVk9KRQorUEFQScSGIERVxaBBTgorUEFQScSGIERVxaBBTgorUEFQScSGIEdPSktPCitQQVBJxIYgSVZBTgorUEFQScSGIEpFTElTQVZFVEEKK1BBUEnEhiBMQVpBUgorUEFQScSGIExFUE9TQVZBCitQQVBJxIYgTEpVQklDQQorUEFQScSGIExPWklOS0EKK1BBUEnEhiBMVUtBCitQQVBJxIYgTUFSSUpBCitQQVBJxIYgTUlIQUpMTworUEFQScSGIE1JTEFESU4KK1BBUEnEhiBNSUxBRElOCitQQVBJxIYgTUlMSUNBCitQQVBJxIYgTUlMSVZPSgorUEFQScSGIE1JTEtBCitQQVBJxIYgTUlMT8WgCitQQVBJxIYgTUlST1NMQVYKK1BBUEnEhiBNSVJPU0xBVgorUEFQScSGIE5JS09MQQorUEFQScSGIFBBVkxFCitQQVBJxIYgUkFERU5LTworUEFQScSGIFNBVkEKK1BBUEnEhiBTTUlMSkEKK1BBUEnEhiBTUsSQQU4gRFIKK1BBUEnEhiBTUsSQQU5LQQorUEFQScSGIFNURVZBTgorUEFQScSGIFNURVZBTgorUEFQScSGIFNURVZBTgorUEFQScSGIFNWRVRJU0xBViBESVBMIElORworUEFQScSGIFRFT0RPUgorUEFQScSGIFRPRE9SCitQQVBJxIYgVkVSQQorUEFQScSGIFpPUklDQQorUEFQScSGIFpPUklDQQorUEFQSUsgVklLVE9SCitQQVBJTElPTiBCT1JJxaBLQQorUEFQTEFDS08gVkVMSU1JUgorUEFQT1ZJxIYgxIxFRE9NSVIKK1BBUE9WScSGIEJMQcW9TworUEFQT1ZJxIYgQkxBR09KRQorUEFQT1ZJxIYgS1JTVE8KK1BBUE9WScSGIE1JTEUKK1BBUE9WScSGIE1JT0RSQUcKK1BBUE9WScSGIE1MQURFTgorUEFQT1ZJxIYgVkVTRUxJTgorUEFQT1ZJxIYgVlVLT1NBVgorUEFQUknEhiDFvUlWQU4KK1BBUFJJxIYgxJBPUsSQRQorUEFQUknEhiBNQVJLTworUEFQUknEhiBSQUpLTworUEFQVUdBIMSQVVJBCitQQVBVR0EgRElNSVRSSUpFCitQQVBVR0EgRVVGRU1JSkEKK1BBUFVHQSBJUklOQQorUEFQVUdBIEpBUk9TTEFWCitQQVBVR0EgS0lSSUwKK1BBUFVHQSBMSlVCT01JUgorUEFQVUdBIE1JSEFKTE8KK1BBUFVHQSBUQVRKQU5BCitQQVBVR0EgVkVSQQorUEFQVUdBIFZMQURJTUlSCitQQVBVTElOIMSQRVLEkElLQQorUEFQVUxJTiBCT1JJU0xBVgorUEFQVUxJTiBET0JSSU5BCitQQVBVTElOIFJBRE9KS0EKK1BBUsSMScSGIE5BxJBBIERSCitQQVJBQlXEhlNLSSBNSUxFTktPCitQQVJBQlXEhlNLSS1TSU1JxIYgUlXFvUlDQQorUEFSQUJVxIZTS0kgU1ZFVElTTEFWIE5PVklOQVIKK1BBUkFCVUNLSSBMQVpBUgorUEFSQUJVQ0tJIExKSUxKQU5BCitQQVJBRyBTVEVWQU4KK1BBUkFORElMT1ZJxIYgUk9TQQorUEFSQVBJRCBNSVJKQU5BCitQQVJBVklMIE5JS09MQQorUEFSQVZJTkEgSkFSTUlMQQorUEFSQVZJTkEgTUlMT8WgCitQQVJET1ZJQ0tJIEZFUkVOQworUEFSRE9WSUNLSSBGUkFOSkEKK1BBUkRPVklDS0kgTUFSSUpBCitQQVJFxb1BTklOIFJBRElWT0oKK1BBUkXFvUFOSU4gU0xPQk9EQU4KK1BBUkXFvUFOSU4gVkxBRElTTEFWCitQQVJIQU5PViBWSUtUT1JJSkEKK1BBUknEjEVWScSGIEVWQQorUEFSScSGIFNUSVBFCitQQVJJUE9WIEpFTEEKK1BBUklQT1YgTUlMQU4KK1BBUklQT1YgTUlMRU5LTworUEFSSVBPVknEhiDEjEVET01JUgorUEFSSVBPVknEhiBEUkFHQU4KK1BBUklQT1ZJxIYgRFXFoEFOCitQQVJJUE9WScSGIEpPVkFOCitQQVJJUE9WScSGIEpPVk8KK1BBUklQT1ZJxIYgTUlIQUpMTworUEFSSVBPVknEhiBNSUxFTktPCitQQVJJUE9WScSGIE1JTEUKK1BBUklQT1ZJxIYgTUlMS0EKK1BBUklQT1ZJxIYgUEFKQQorUEFSSVBPVknEhiBTTE9CT0RBTgorUEFSSVBPVknEhiBTVkVUT1pBUgorUEFSSVBPVknEhiBWTEFESU1JUgorUEFSSVBPVknEhiBWTEFESVNMQVZLQQorUEFSSVBPVknEhiBaT1JBTgorUEFSS0FOSkkgU0FNVUVMCitQQVJMQcSGIExKVUJPTUlSCitQQVJMQcSGIE1BUklOS08KK1BBUkxBxIYgTUlPRFJBRworUEFSTEnEhiBBTkEKK1BBUkxJxIYgSkVWVEEKK1BBUkxJxIYgTklLT0xBCitQQVJNQcSGIE5FREVMSktPCitQQVJOSUNLSSBJVkFOCitQQVJOSUNLSSBKT1ZBTgorUEFST8WgS0FKIMSQVVJBCitQQVJPxaBLQUogREFOSUxPCitQQVJPxaBLSSDEkE9SxJBFCitQQVJPxaBLSSDEkE9SxJBFCitQQVJPxaBLSSBBTEVLU0FOREFSCitQQVJPxaBLSSBBTEVLU0FOREFSCitQQVJPxaBLSSBBTkEKK1BBUk/FoEtJIEFOS0lDQQorUEFST8WgS0kgQk9SSVZPSgorUEFST8WgS0kgQlJBTklTTEFWCitQQVJPxaBLSSBEQU1KQU4KK1BBUk/FoEtJIERJTUlUUklKRQorUEFST8WgS0kgRE9CUklMQQorUEFST8WgS0kgRFJBR0FOCitQQVJPxaBLSSBEVcWgQU4KK1BBUk/FoEtJIEdMScWgQQorUEFST8WgS0kgR09SREFOCitQQVJPxaBLSSBJVkFOCitQQVJPxaBLSSBKRUxFTkEKK1BBUk/FoEtJIEpFTElDQQorUEFST8WgS0kgSk9WQU4KK1BBUk/FoEtJIE1BUklKQQorUEFST8WgS0kgTUlMQU4KK1BBUk/FoEtJIE1JTEFOCitQQVJPxaBLSSBNSUxBTgorUEFST8WgS0kgTUlMSUNBCitQQVJPxaBLSSBNSUxPxaAKK1BBUk/FoEtJIE1JTE9SQUQKK1BBUk/FoEtJIE1JTE9WQU4KK1BBUk/FoEtJIE1JUkEKK1BBUk/FoEtJIE1JUkpBTkEKK1BBUk/FoEtJIE1JUktPCitQQVJPxaBLSSBORVNUT1IKK1BBUk/FoEtJIE9CUkVOCitQQVJPxaBLSSBPTEdBCitQQVJPxaBLSSBQRVRBUgorUEFST8WgS0kgUFVOScWgQQorUEFST8WgS0kgUkFETUlMQQorUEFST8WgS0kgUkFKS08KK1BBUk/FoEtJIFJPxb1BCitQQVJPxaBLSSBTQVZBCitQQVJPxaBLSSBTTEFWSUNBCitQQVJPxaBLSSBTT0ZJSkEKK1BBUk/FoEtJIFNURVZBTgorUEFST8WgS0kgVkVST0xKVUIKK1BBUk/FoEtJIFZMQURJTUlSCitQQVJPxaBLSSBaQUdPUktBCitQQVJPQ0kgSk9TSVAKK1BBUk9DSSBKVUxJSkFOQQorUEFST0NJIEtBUkxPCitQQVJPQ0kgTEpJTEpBTkEKK1BBUk9DSSBUSUJPUgorUEFST0NJIFRJQk9SCitQQVJPQ0kgVElCT1IKK1BBUk9KxIxJxIYgTEpVQklDQQorUEFST0rEjEnEhiBTTE9CT0RBTgorUEFST0tBSSBNSVJLTworUEFST1ZJxIYgU0xBVktPCitQQVJVxb1JxIYgUEFOVEEKK1BBUlVDS0kgTUlIQUpMTworUEFTQVJJxIYgUlXFvUEKK1BBU0tBxaAgTUlMQU4KK1BBU0tBxaAgTUlMS0EKK1BBU0tBxaAgTkFUQcWgQQorUEFTS0FMSSBHT1JBTgorUEFTS0FMSkVWScSGIEFMRUtTQU5EQVIKK1BBU0tVIERJTUlUUklKRQorUEFTS1VMT1YgTUlST0xKVUIKK1BBU1QgUk9CRVJUCitQQVNURVJLTyBTVEVWQU4KK1BBU1RPTkpJQ0tJIEVMRU1JUgorUEFTVE9SIEdFWkEKK1BBU1RPUiBKQU5PxaAKK1BBU1RPUiBKQU5PxaAKK1BBU1RPUiBKT1NJUAorUEFTVE9SIEpPU0lQCitQQVNUT1IgSk9aRUYKK1BBU1RPUiBMQVNMTworUEFTVE9SIE1BUklKQQorUEFTVE9SIE1JSEFKTE8KK1BBU1RPUiBNSUxBTgorUEFTVE9SIFBFVEFSCitQQVNUT1IgU1RKRVBBTgorUEFTVE9STkHEjEtJIMSQVVLEkElOS0EKK1BBU1RPUk5BxIxLSSBMQVpBUgorUEFTVE9STkHEjEtJIExKVUJJxaBBCitQQVNUT1JOQcSMS0kgTUFSSUpBCitQQVNUT1JOQcSMS0kgUkFET1NMQVYKK1BBU1RPUk5KSUNLSSBHT1JEQU5BCitQQVRBRlRBIEpVTElKQQorUEFUQUZUQSBTVEVWQU4KK1BBVEFKIEFSQU5LQSBEUgorUEFUQUsgUEFWTEUKK1BBVEFLSSBBTkEKK1BBVEFLSSBFVkEKK1BBVEFLSSBHT1JBTgorUEFUQVJJxIYgU1RJUEFOCitQQVRBUklDQSBFTEVNRVIKK1BBVEnEhiBEUkFHT01JUgorUEFUScSGIFJBRE9TQVYKK1BBVEnEhiBSQVRLTworUEFUScSGIFZMQURJTUlSCitQQVRMRUpIIE5BREXFvURBCitQQVRSSUsgTEFKT8WgCitQQVRSSUsgU1RFVkFOCitQQVRSTk9HScSGIEJSQU5JU0xBViBESVBMIElORworUEFUUk5PR0nEhiBEVcWgQU4gRFIKK1BBVFJOT0dJxIYgRFXFoElDQQorUEFUUk5PR0nEhiBMSURJSkEKK1BBVcWgScSGIElWQU4KK1BBVcWgScSGIE1BUktPCitQQVVLT1ZJxIYgTUlSSkFOQQorUEFVTCBLQVRJQ0EKK1BBVUwgTEFKT8WgCitQQVVMIExBSk/FoAorUEFVTCBPU0tBUgorUEFVTEnEhiBNSUxFCitQQVVMSUsgQUxFS1NBTkRBUgorUEFVTElLIFBFUk8KK1BBVUxJSyBQRVRBUgorUEFVTE9WScSGIERSQUdVVElOCitQQVVORVNLVSBWQVNBCitQQVVOScSGIMW9SVZLTyBESVBMIElORworUEFVTknEhiDEkFVSQQorUEFVTknEhiBBTElNUElKRQorUEFVTknEhiBCUkFOS08KK1BBVU5JxIYgRElNSVRSSUpFCitQQVVOScSGIERSQUdPTUlSCitQQVVOScSGIElMSUpBCitQQVVOScSGIExBWkFSCitQQVVOScSGIE1JTEFOQQorUEFVTknEhiBNSUxFVkEKK1BBVU5JxIYgTUlMRQorUEFVTknEhiBTVEFOSU1JUgorUEFVTknEhiBUT01BCitQQVVOScSGIFZVS0HFoElOCitQQVVOS09WScSGIEpPVkFOQQorUEFVTktPVknEhiBMSklMSkFOQQorUEFVTktPVknEhiBWRUxJTUlSCitQQVVOS09WScSGIFZMQURJTUlSCitQQVVOS1UgQVVSRUxJSkEKK1BBVU5PVknEhiDEjEFTTEFWCitQQVVOT1ZJxIYgQU5UTworUEFVTk9WScSGIEJPR0RBTgorUEFVTk9WScSGIEJPR0RBTgorUEFVTk9WScSGIEJSQU5LQQorUEFVTk9WScSGIEJSQU5LTworUEFVTk9WScSGIERJTUlUUklKRQorUEFVTk9WScSGIERSQUdPTEpVQgorUEFVTk9WScSGIERSQUdVVElOCitQQVVOT1ZJxIYgR09TUEFWQQorUEFVTk9WScSGIEpFTEVOQQorUEFVTk9WScSGIEpPVkFOCitQQVVOT1ZJxIYgSk9WSUNBCitQQVVOT1ZJxIYgS0FUSUNBCitQQVVOT1ZJxIYgS09WSUxKS0EKK1BBVU5PVknEhiBLT1ZJTEpLQQorUEFVTk9WScSGIExKSUxKQU5BCitQQVVOT1ZJxIYgTEpVQklWT0pFCitQQVVOT1ZJxIYgTUFSSU5BCitQQVVOT1ZJxIYgTUVMSU5EQQorUEFVTk9WScSGIE1JTElDQQorUEFVTk9WScSGIE1JTE9NSVIKK1BBVU5PVknEhiBNSUxPUkFECitQQVVOT1ZJxIYgTUlMT1JBRAorUEFVTk9WScSGIE1JTE9SQUQKK1BBVU5PVknEhiBOSUtPTEEKK1BBVU5PVknEhiBQQVVOCitQQVVOT1ZJxIYgUEVUQVIKK1BBVU5PVknEhiBSQURPxaAKK1BBVU5PVknEhiBSQURPU0xBVgorUEFVTk9WScSGIFJBRE9TTEFWCitQQVVOT1ZJxIYgUkFUT01JUgorUEFVTk9WScSGIFNMQVZBCitQQVVOT1ZJxIYgU0xPQk9EQU5LQQorUEFVTk9WScSGIFNSQklDQQorUEFVTk9WScSGIFNUT0pBTktBCitQQVVOT1ZJxIYgVE9NSVNMQVYKK1BBVU5PVknEhiBWVUtPU0FWQQorUEFVTk9WScSGIFpPUkFOCitQQVVOT1ZJxIYgWlZPTktPCitQQVVUIE1JTEFOCitQQVVaRU5CRVJHRVIgSVJFTkEKK1BBVVpFTkJFUkdFUiBKT1ZBTgorUEFWQUkgRlJBTkpBCitQQVZFTEtBIERBTklFTEEKK1BBVkVMS0EgVkxBRElNSVIKK1BBVknEjCBEQU5JQ0EKK1BBVknEjEVWScSGIE1JTEFOCitQQVZJxIxFVknEhiBOQURBCitQQVZJxIxJxIYgRFJBR0lDQQorUEFWScSMScSGIElWQU4KK1BBVknEjEnEhiBNSVJLTworUEFWScWgScSGIMSQVVJBCitQQVZJxIYgxJBVUk8KK1BBVknEhiBBTktBCitQQVZJxIYgQVJPTgorUEFWScSGIEJJTEpBTkEKK1BBVknEhiBEVcWgQU4KK1BBVknEhiBHQcWgTworUEFWScSGIEdPSktPCitQQVZJxIYgSk/FvUVGCitQQVZJxIYgTEpVQknFoEEKK1BBVknEhiBMSlVCSUNBCitQQVZJxIYgTEpVQk9NSVIKK1BBVknEhiBNQVJJSkEKK1BBVknEhiBNSUxBTgorUEFWScSGIE1JTEFOCitQQVZJxIYgTUlMSUNBCitQQVZJxIYgU0xBVktPCitQQVZJxIYgU1RFVkFOCitQQVZJxIYtU1VMT0NLSSBFU1RFUgorUEFWScSGIFRFUkVaSUpBCitQQVZJxIYgVkVOS08KK1BBVknEhiBWRVJLQQorUEFWScSGRVZJxIYgQUxFS1NBTkRBUgorUEFWScSGRVZJxIYgQUxFS1NBTkRBUgorUEFWScSGRVZJxIYgQU5BTklKRQorUEFWScSGRVZJxIYgQlJBTklTTEFWCitQQVZJxIZFVknEhiBERVNBCitQQVZJxIZFVknEhiBEUkFHQU4KK1BBVknEhkVWScSGIERVxaBBTgorUEFWScSGRVZJxIYgRFXFoEFOCitQQVZJxIZFVknEhiBKRUxFTkEKK1BBVknEhkVWScSGIExKSUxKQU5BCitQQVZJxIZFVknEhiBNSUxBTktPCitQQVZJxIZFVknEhiBNSUxPxaAKK1BBVknEhkVWScSGIE1JTE9NSVIKK1BBVknEhkVWScSGIE1JTFVUSU4KK1BBVknEhkVWScSGIE1JT0RSQUcKK1BBVknEhkVWScSGIE1JT0RSQUcKK1BBVknEhkVWScSGIE1JUkEKK1BBVknEhkVWScSGIE1JUktPCitQQVZJxIZFVknEhiBTTEFWS08KK1BBVknEhkVWScSGIFNMT0JPREFOCitQQVZJTiBMSlVCSUNBCitQQVZLT1Ygxb1JVktPCitQQVZLT1Ygxb1JVk9KSU4KK1BBVktPViDEkFVSxJBFVktBCitQQVZLT1YgxJBVUsSQSU5BCitQQVZLT1YgQUxFS1NBTkRBUgorUEFWS09WIEFOS0EKK1BBVktPViBCT8W9SURBUgorUEFWS09WIEJPU0lMSktBCitQQVZLT1YgQlJBTktPCitQQVZLT1YgRFJBR0FOCitQQVZLT1YgRFJBR0FOCitQQVZLT1YgRFXFoEFOCitQQVZLT1YgRFXFoEFOCitQQVZLT1YgR09KS08KK1BBVktPViBHT1JEQU5BCitQQVZLT1YgSVZBTktBCitQQVZLT1YgSk9WQU4KK1BBVktPViBKT1ZBTgorUEFWS09WIEpPVkFOCitQQVZLT1YgS0FUSUNBCitQQVZLT1YgTEFaQVIKK1BBVktPViBNSUxBTgorUEFWS09WIE1JTEFOCitQQVZLT1YgTUlMQU4KK1BBVktPViBNSUxJVk9KIERJUEwgSU5HCitQQVZLT1YgTUlMT8WgCitQQVZLT1YgTUlMT0pFCitQQVZLT1YgTUlMT1JBRAorUEFWS09WIE1JTE9SQUQKK1BBVktPViBNSUxVVElOCitQQVZLT1YgTUlUQVIKK1BBVktPViBOQURBCitQQVZLT1YgTkFEQQorUEFWS09WIFBBVkxFCitQQVZLT1YgUEVUQVIKK1BBVktPViBSQURJVk9KCitQQVZLT1YgUkFET1ZBTgorUEFWS09WIFJBVE9NSVIKK1BBVktPViBTQVZBCitQQVZLT1YgU0FWQQorUEFWS09WIFNJTknFoEEKK1BBVktPViBTTEFWS08KK1BBVktPViBTVEVWQU4KK1BBVktPViBTVEVWQU4KK1BBVktPViBTVEVWQU4KK1BBVktPViBVUk/FoAorUEFWS09WIFZJVE9NSVIKK1BBVktPViBaT1JBTgorUEFWS09WIFpPUktBCitQQVZLT1ZJxIYgQk/FvUlEQVIKK1BBVktPVknEhiBCT1JJU0xBVgorUEFWS09WScSGIERSQUdBTkEKK1BBVktPVknEhiBEUkFHSUNBCitQQVZLT1ZJxIYgSk9WQU5LQQorUEFWS09WScSGIEtBVElDQQorUEFWS09WScSGIE5JS09MQQorUEFWS09WScSGIFBFVEFSCitQQVZLT1ZJxIYgUkFET0pFCitQQVZMRUtJxIYgU1RFVkFOCitQQVZMRVNLSSBNRU5LQQorUEFWTEVWU0tJIERFU0EKK1BBVkxFVlNLSSBUUkFKQU4KK1BBVkxJxIwgTUlSS08KK1BBVkxJxIxJxIYgS1JFxaBJTUlSCitQQVZMScSMScSGIExKVUJJxaBBIERSCitQQVZMScSGIMSQT1LEkEUKK1BBVkxJxIYgQk9SSVNMQVYKK1BBVkxJxIYgQlJBTktPIERJUEwgSU5HCitQQVZMScSGIFBFVEFSIERJUEwgSU5HCitQQVZMScSGIFZMQURBCitQQVZMScSGRVYgxJBPUsSQRQorUEFWTElDQSBCUkFOSVNMQVYKK1BBVkxJQ0EgSk9WQU4KK1BBVkxJQ0EgTEFaQVIKK1BBVkxJQ0EgTUFSSUNBCitQQVZMSUNBIE1JQ0EKK1BBVkxJQ0EgTUlMQU4KK1BBVkxJQ0EgTUlMRU5BCitQQVZMSUNBIE1JTEVWQQorUEFWTElDQSBOQURBCitQQVZMSUNBIE5JS09MQQorUEFWTElDQSBOSUtPTEEKK1BBVkxJQ0EgU0FWTworUEFWTElDQSBTT0ZJSkEKK1BBVkxJQ0EgVE9ET1IKK1BBVkxJQ0EgVkxBRElNSVIKK1BBVkxJSyBBTlRBTAorUEFWTElLIEpPU0lQCitQQVZMSUsgS0FUQVJJTkEKK1BBVkxJSyBNScWgQQorUEFWTElLIFZJTktPCitQQVZMT1Ygxb1BUktPCitQQVZMT1Ygxb1JVkFOCitQQVZMT1Ygxb1JVktBCitQQVZMT1YgxJBPS0EKK1BBVkxPViBBTEVLU0FOREFSCitQQVZMT1YgQUxFS1NBTkRBUgorUEFWTE9WIEFMRUtTQU5EQVIKK1BBVkxPViBCT0dEQU5LQQorUEFWTE9WIEJPUklTTEFWCitQQVZMT1YgREFOSUNBCitQQVZMT1YgREFOSUxPCitQQVZMT1YgRFJBR0lOSkEKK1BBVkxPViBEUkFHT01JUgorUEFWTE9WIERVxaBBTktBCitQQVZMT1YgRFXFoEFOS0EKK1BBVkxPViBEVcWgQU4KK1BBVkxPViBEVcWgQU4KK1BBVkxPViBKT1ZBTgorUEFWTE9WIEtBVElDQQorUEFWTE9WLUtPU1RJxIYgQU5BIERSCitQQVZMT1YgS09WSUxKS0EKK1BBVkxPViBLUklTVElOQQorUEFWTE9WIEtVWk1BTgorUEFWTE9WIExBWkFSCitQQVZMT1YgTEFaQVIKK1BBVkxPViBMSlVCSUNBCitQQVZMT1YgTEpVQklDQQorUEFWTE9WIE1BUklKQQorUEFWTE9WIE1JTEFOCitQQVZMT1YgTUlMRVRBCitQQVZMT1YgTUlMSVZPSgorUEFWTE9WIE1JTE9SQUQKK1BBVkxPViBNSUxPUkFECitQQVZMT1YgTUlMT1ZBTgorUEFWTE9WIE1JTE9WQU4KK1BBVkxPViBNSUxVVElOCitQQVZMT1YgTUlSQQorUEFWTE9WLU1JUktPVknEhiBNSVJPU0xBVkEgRFIKK1BBVkxPViBNSVJPU0xBVgorUEFWTE9WIE1JUk9TTEFWCitQQVZMT1YgTUlUS08KK1BBVkxPViBOQURBCitQQVZMT1YgTkFEQQorUEFWTE9WIE5BVEFMSUpBCitQQVZMT1YgTkVWRU5LQQorUEFWTE9WIE9MR0EKK1BBVkxPViBQQUpBCitQQVZMT1YgUEFWRUwKK1BBVkxPViBQQVZFTAorUEFWTE9WIFBBVkxFCitQQVZMT1YgUEVUQVIKK1BBVkxPViBQRVRBUgorUEFWTE9WIFJBREEKK1BBVkxPViBSQURJVk9KCitQQVZMT1YgUkFETUlMQQorUEFWTE9WIFJBRE9TTEFWQQorUEFWTE9WIFJBRE9TTEFWCitQQVZMT1YgU0FWQQorUEFWTE9WIFNBVkEKK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVEVWQU4KK1BBVkxPViBTVE9KQU4KK1BBVkxPViBTVkVUT1pBUgorUEFWTE9WIFZBU0lMSUpFCitQQVZMT1YgVkVSQQorUEFWTE9WIFZFUkEKK1BBVkxPViBWRVJJQ0EKK1BBVkxPViBWSURPU0FWQQorUEFWTE9WIFZMQURJTUlSCitQQVZMT1YgVkxBU1RJTUlSCitQQVZMT1ZJxIYgxIxFRE9NSVIKK1BBVkxPVknEhiDFvUFSS08KK1BBVkxPVknEhi3FvUVORVIgT0xHQQorUEFWTE9WScSGIMSQT1LEkEUKK1BBVkxPVknEhiDEkE9SxJBFCitQQVZMT1ZJxIYgxJBPUsSQRQorUEFWTE9WScSGIMSQT1LEkE8KK1BBVkxPVknEhiDEkE9SxJBPCitQQVZMT1ZJxIYgQUxFS1NBTkRBUiBEUgorUEFWTE9WScSGIEFMRUtTQU5EQVIKK1BBVkxPVknEhiBBTEVLU0lKRQorUEFWTE9WScSGIEFOQQorUEFWTE9WScSGIEFOQQorUEFWTE9WScSGIEFORFJJSkEKK1BBVkxPVknEhiBBTklDQQorUEFWTE9WScSGIEFOS0lDQQorUEFWTE9WScSGIEJMQUdPSkUKK1BBVkxPVknEhiBCTEFHTworUEFWTE9WScSGIEJPxb1JREFSCitQQVZMT1ZJxIYgQk/FvU8KK1BBVkxPVknEhiBCT0dEQU4KK1BBVkxPVknEhiBCT0dPTEpVQgorUEFWTE9WScSGIEJPUkEKK1BBVkxPVknEhiBCT1JJU0FWCitQQVZMT1ZJxIYgQk9SSVNMQVYKK1BBVkxPVknEhiBCT1JJU0xBVgorUEFWTE9WScSGIEJSQU5LTworUEFWTE9WScSGIEJSQU5LTworUEFWTE9WScSGIENWRVRBTgorUEFWTE9WScSGIERFSkFOCitQQVZMT1ZJxIYgRElNSVRSSUpFCitQQVZMT1ZJxIYgRE9CUklWT0oKK1BBVkxPVknEhiBET0JST1NMQVYKK1BBVkxPVknEhiBEUkFHQU4KK1BBVkxPVknEhiBEUkFHQU4KK1BBVkxPVknEhiBEUkFHQU4KK1BBVkxPVknEhiBEUkFHQU4KK1BBVkxPVknEhiBEUkFHT0xKVUIKK1BBVkxPVknEhiBEUkFHT0xKVUIKK1BBVkxPVknEhiBEUkFHT1NMQVZBCitQQVZMT1ZJxIYgRFJBR09TTEFWCitQQVZMT1ZJxIYgRFJBR1VUSU4KK1BBVkxPVknEhiBEVcWgQU5LQQorUEFWTE9WScSGIERVxaBBTgorUEFWTE9WScSGIERVxaBBTgorUEFWTE9WScSGIERVxaBBTgorUEFWTE9WScSGIERVxaBBTgorUEFWTE9WScSGIERVxaBBTgorUEFWTE9WScSGIERVxaBLTworUEFWTE9WScSGIEVNSUwKK1BBVkxPVknEhiBFUsW9RUJFVAorUEFWTE9WScSGIEVSxb1FQkVUCitQQVZMT1ZJxIYgR09KS08KK1BBVkxPVknEhiBHT1JJTktBCitQQVZMT1ZJxIYgSUxJSkEKK1BBVkxPVknEhiBJTElKQQorUEFWTE9WScSGIElMT05BCitQQVZMT1ZJxIYgSUxPTkEKK1BBVkxPVknEhiBJUklOQQorUEFWTE9WScSGIElWQU4gRElQTCBJTkcKK1BBVkxPVknEhiBJVkFOCitQQVZMT1ZJxIYgSkFHTworUEFWTE9WScSGIEpBTktPCitQQVZMT1ZJxIYgSkFOS08KK1BBVkxPVknEhiBKQU5PxaAKK1BBVkxPVknEhiBKRUxBCitQQVZMT1ZJxIYgSkVMRU5BCitQQVZMT1ZJxIYgSkVMRU5BCitQQVZMT1ZJxIYgSkVMRU5BCitQQVZMT1ZJxIYgSkVMRU5BCitQQVZMT1ZJxIYgSkVMSUNBCitQQVZMT1ZJxIYgSk9BS0lNCitQQVZMT1ZJxIYgSk9WQU4KK1BBVkxPVknEhiBKT1ZBTgorUEFWTE9WScSGIEpPVklDQQorUEFWTE9WScSGIEtBVEFSSU5BCitQQVZMT1ZJxIYgS0FUSUNBCitQQVZMT1ZJxIYgS09OU1RBTlRJTgorUEFWTE9WScSGIEtPVklOS0EKK1BBVkxPVknEhiBMQVpBUgorUEFWTE9WScSGIExBWkFSCitQQVZMT1ZJxIYgTEFaQVIKK1BBVkxPVknEhiBMSlVCScWgQQorUEFWTE9WScSGIE1BR0RBCitQQVZMT1ZJxIYgTUFSQSBESVBMIElORworUEFWTE9WScSGIE1BUkEKK1BBVkxPVknEhiBNQVJJQ0EKK1BBVkxPVknEhiBNQVJLTyBESVBMIElORworUEFWTE9WScSGIE1BUktPCitQQVZMT1ZJxIYgTUlDQQorUEFWTE9WScSGIE1JTEFESU4KK1BBVkxPVknEhiBNSUxBTgorUEFWTE9WScSGIE1JTEFOCitQQVZMT1ZJxIYgTUlMRU5BCitQQVZMT1ZJxIYgTUlMRU5LTworUEFWTE9WScSGIE1JTEVOS08KK1BBVkxPVknEhiBNSUxFCitQQVZMT1ZJxIYgTUlMRQorUEFWTE9WScSGIE1JTElDQQorUEFWTE9WScSGIE1JTElDQQorUEFWTE9WScSGIE1JTElDQQorUEFWTE9WScSGIE1JTElTQVYKK1BBVkxPVknEhiBNSUxKQU5BCitQQVZMT1ZJxIYgTUlMS0EKK1BBVkxPVknEhiBNSUxLQQorUEFWTE9WScSGIE1JTE9KRQorUEFWTE9WScSGIE1JTE9KRQorUEFWTE9WScSGIE1JTE9NSVIKK1BBVkxPVknEhiBNSUxPUkFEIERSCitQQVZMT1ZJxIYgTUlMT1JBRAorUEFWTE9WScSGIE1JTE9SQUQKK1BBVkxPVknEhiBNSUxPUkFECitQQVZMT1ZJxIYgTUlMT1NBVkEKK1BBVkxPVknEhiBNSUxPU0FWCitQQVZMT1ZJxIYgTUlMT1ZBTgorUEFWTE9WScSGIE1JTE9WQU4KK1BBVkxPVknEhiBNSU9EUkFHCitQQVZMT1ZJxIYgTUlPRFJBRworUEFWTE9WScSGIE1JT0RSQUcKK1BBVkxPVknEhiBNSVJBCitQQVZMT1ZJxIYgTUlSSkFOQSBEUgorUEFWTE9WScSGIE1JUkpBTkEKK1BBVkxPVknEhiBNSVJKQU5BCitQQVZMT1ZJxIYgTUlSSkFOQQorUEFWTE9WScSGIE1JUktPIERJUEwgT0VDCitQQVZMT1ZJxIYgTUlSS08KK1BBVkxPVknEhiBNSVJLTworUEFWTE9WScSGIE1JUk9TTEFWQQorUEFWTE9WScSGIE1JUk9TTEFWCitQQVZMT1ZJxIYgTU9NxIxJTE8KK1BBVkxPVknEhiBOQURBIERSCitQQVZMT1ZJxIYgTkFEQQorUEFWTE9WScSGIE5BREEKK1BBVkxPVknEhiBORURFTEpLQQorUEFWTE9WScSGIE5FREVMSktPCitQQVZMT1ZJxIYgTkVNQU5KQQorUEFWTE9WScSGIE5FTUFOSkEKK1BBVkxPVknEhiBOSUtPTEEKK1BBVkxPVknEhiBOSUtPTEEKK1BBVkxPVknEhiBOSUtPTElDQQorUEFWTE9WScSGIE5JTkEKK1BBVkxPVknEhiBOT1ZBSworUEFWTE9WScSGIE9MR0EKK1BBVkxPVknEhiBPTEdBCitQQVZMT1ZJxIYgT0xHQQorUEFWTE9WScSGIE9MR0EKK1BBVkxPVknEhiBQQVZMRQorUEFWTE9WScSGIFBBVkxFCitQQVZMT1ZJxIYgUEXEkEEKK1BBVkxPVknEhiBQRVJPCitQQVZMT1ZJxIYgUEVUQVIKK1BBVkxPVknEhiBQRVRBUgorUEFWTE9WScSGIFBFVEFSCitQQVZMT1ZJxIYgUExFTUVOS0EKK1BBVkxPVknEhi1QT1BPVknEhiBaT1JBIERSIExFS0FSCitQQVZMT1ZJxIYgUFJFRFJBRworUEFWTE9WScSGIFBSRURSQUcKK1BBVkxPVknEhiBQUlZPU0xBVgorUEFWTE9WScSGIFJBREVOS08KK1BBVkxPVknEhiBSQURJVk9KCitQQVZMT1ZJxIYgUkFETUlMQQorUEFWTE9WScSGIFJBRE1JTE8gRElQTCBJTkcKK1BBVkxPVknEhiBSQURNSUxPCitQQVZMT1ZJxIYgUkFET0pFCitQQVZMT1ZJxIYgUkFET0pLQQorUEFWTE9WScSGIFJBRE9NSVIgRElQTCBPRUMKK1BBVkxPVknEhiBSQURPTUlSCitQQVZMT1ZJxIYgUkFET1NMQVZBCitQQVZMT1ZJxIYgUkFET1ZBTiBEUiBWRVRFUklORQorUEFWTE9WScSGIFJBRE9WQU4KK1BBVkxPVknEhiBSQUpLTworUEFWTE9WScSGIFJBTktPCitQQVZMT1ZJxIYgUkFUS08KK1BBVkxPVknEhiBTQVZBCitQQVZMT1ZJxIYgU0FWTworUEFWTE9WScSGIFNJTUEKK1BBVkxPVknEhiBTSU1FT04KK1BBVkxPVknEhiBTSU1FT04KK1BBVkxPVknEhiBTSU5JxaBBCitQQVZMT1ZJxIYgU0xBVklDQQorUEFWTE9WScSGIFNMQVZLTyBESVBMIElORworUEFWTE9WScSGIFNMQVZLTworUEFWTE9WScSGIFNMQVZLTworUEFWTE9WScSGIFNMQVZLTworUEFWTE9WScSGIFNMT0JPREFOIERSCitQQVZMT1ZJxIYgU0xPQk9EQU4KK1BBVkxPVknEhiBTTE9CT0RBTgorUEFWTE9WScSGIFNMT0JPREFOCitQQVZMT1ZJxIYgU01JTEpBCitQQVZMT1ZJxIYgU1RBTkEKK1BBVkxPVknEhiBTVEFOSUtBCitQQVZMT1ZJxIYgU1RBTklTTEFWCitQQVZMT1ZJxIYgU1RFVkFOS0EKK1BBVkxPVknEhiBTVEVWQU4KK1BBVkxPVknEhiBTVEVWQU4KK1BBVkxPVknEhiBTVEVWQU4KK1BBVkxPVknEhiBTVEVWQU4KK1BBVkxPVknEhiBTVEVWQU4KK1BBVkxPVknEhiBTVEpFUEFOCitQQVZMT1ZJxIYgU1RPSkFOCitQQVZMT1ZJxIYgU1RPSkFOCitQQVZMT1ZJxIYgU1ZFVElTTEFWCitQQVZMT1ZJxIYgU1ZFVE9aQVIKK1BBVkxPVknEhiBUT8WgQQorUEFWTE9WScSGIFRPTUEKK1BBVkxPVknEhiBUT01JU0xBViBEUgorUEFWTE9WScSGIFZFTElaQVIKK1BBVkxPVknEhiBWRVJBCitQQVZMT1ZJxIYgVkVSQQorUEFWTE9WScSGIFZFUkEKK1BBVkxPVknEhiBWSURBCitQQVZMT1ZJxIYgVklET1NBVkEKK1BBVkxPVknEhiBWSURPU0FWQQorUEFWTE9WScSGIFZJRE9TTEFWCitQQVZMT1ZJxIYgVklUT01JUgorUEFWTE9WScSGIFZJVE9NSVIKK1BBVkxPVknEhiBWTEFESU1JUgorUEFWTE9WScSGIFZPSklTTEFWCitQQVZMT1ZJxIYgWkFHT1JLQQorUEFWTE9WScSGIFpEUkFWS08KK1BBVkxPVknEhiBaT1JBTgorUEFWTE9WScSGIFpPUkFOCitQQVZMT1ZJxIYgWk9SQU4KK1BBVkxPVknEhiBaT1JBTgorUEFWTE9WScSGIFpPUkEKK1BBVkxPVknEhiBaT1JJQ0EKK1BBVkxPVknEhiBaVk9OSU1JUgorUEFWTE9WU0tJIEFMRUtTQU5EQVIKK1BBVkxPVlNLSSBNQVJJSkEKK1BBVkxPVlNLSSBTRVJHRUoKK1BBVk/FoEVWScSGIEFOS0EKK1BBVk/FoEVWScSGIFJPRE9MSlVCCitQQVpBUlNLSSBTVEVWQU4KK1BBWk1BTkogSlVMSUpBTkEKK1BFxIxBUknEhiBLQVRJQ0EKK1BFxIxJIEdFWkEKK1BFxIxJIEnFoFRWQU4KK1BFxIxJIE1BUklKQQorUEXEjEtBSS1LT1ZBxIwgQU5BCitQRcSMS0FJIE1BUkdJVEEKK1BFxIxWQVJBQyBTVEFOT0pFCitQRcWgRU5KQU5TS0kgSVZBTgorUEXFoEVOSkFOU0tJIElWQU4KK1BFxaBFTkpBTlNLSSBLQVJMTworUEXFoEVWScSGIEJPR0RBTgorUEXFoEVWU0tJIMSQT0tBCitQRcWgRVZTS0kgVE9NRQorUEXFoEVWU0tJIFZMQURPCitQRcWgScSGIMW9SVZBTgorUEXFoEnEhiBBTEVLU0FOREFSCitQRcWgScSGIEFOxJBFTEtPCitQRcWgScSGIEJVRElNSVIKK1BFxaBJxIYgREVTSU1JUgorUEXFoEnEhiBESU1JVFJJSkUKK1BFxaBJxIYgRElNSVRSSUpFCitQRcWgScSGIERSQUdBTgorUEXFoEnEhiBEUkFHSUNBCitQRcWgScSGIERSQUdPTEpVQgorUEXFoEnEhiBEUkFHT0xKVUIKK1BFxaBJxIYgR09KS08KK1BFxaBJxIYgR1JBRElNSVIKK1BFxaBJxIYgSUxJSkEKK1BFxaBJxIYgSk9SREFOCitQRcWgScSGIEpPVkFOCitQRcWgScSGIExKVUJJQ0EKK1BFxaBJxIYgTUlMQURJTgorUEXFoEnEhiBNSUxBTgorUEXFoEnEhiBNSUxJTktPCitQRcWgScSGIE1JTFVUSU4KK1BFxaBJxIYgTUlMVVRJTgorUEXFoEnEhiBNSVJPU0xBVgorUEXFoEnEhiBQRVRBUgorUEXFoEnEhiBSQURNSUxBCitQRcWgScSGIFJBSktPCitQRcWgScSGIFJVxb1BCitQRcWgScSGIFNBVkEKK1BFxaBJxIYgU1RBTk9KRQorUEXFoEnEhiBTVEVWQU4gRFIKK1BFxaBJxIYgVkxBRElNSVIKK1BFxaBJxIYgVlVLQcWgSU4KK1BFxaBJS0FOIFRJSE9NSVIKK1BFxaBJS0FOIFZVSworUEXFoEtBIEFOQQorUEXFoEtBTiBEUkFHQU4KK1BFxaBLQU4gVkVSQQorUEXFoEtBTk9WIE1JTE9SQUQKK1BFxaBLQU5PViBQRVJTSURBCitQRcWgS0FOT1YgU1RFVkFOCitQRcWgS0FOT1YgVE9ET1IKK1BFxaBPVknEhiBNSUxJVk9KRQorUEXFoE9WScSGIFNUT0pBTgorUEXFoFRBTEnEhiBTTE9CT0RBTktBCitQRcWgVEVSQUMgxIxFRE9NSVIKK1BFxaBURVJBQyBNSUxPTUlSCitQRcWgVEVSQUMgTUlMVVRJTgorUEXFoFRJIEpPxb1FRgorUEXFoFVUIEFMRUtTQU5EUkEKK1BFxaBVVCBCT8WgS08KK1BFxaBVVCBCUkFOS08KK1BFxaBVVCBEVcWgQU4KK1BFxaBVVCBEVcWgQU4KK1BFxaBVVCBJTElKQQorUEXFoFVUIE1BUklKQQorUEXFoFVUIE1JTEFOCitQRcWgVVQgTUlMSUNBCitQRcWgVVQgU0xBVktBCitQRcWgVVQgU01JTEpBCitQRcWgVVQgVkxBRElNSVIKK1BFxIZBTkFDIEJPU0lMSktBCitQRcSGQU5BQyBESU1JVFJJSkUKK1BFxIZBTkFDIEpPVkFOCitQRcSGQU5BQyBOSUtPTEEKK1BFxIZBTkFDIFZFU05BCitQRcSGQU5JTiBEVcWgQU4KK1BFxIZBTklOIExKVUJJxaBBIERJUEwgSU5HCitQRcSGQU5JTiBNSVJPU0xBVkEKK1BFxIZBTklOIE9NSUxKRU4KK1BFxIZBTklOLVZFUk1FWk9WScSGIE9MSkEKK1BFxIZLTyBEQU5JTE8KK1BFxIZLTyBWRVJBCitQRcSGTyBMQVpBUgorUEXEhk8gTFVLQQorUEXEhk8gU1ZFVE9aQVIKK1BFQyBKVUxJSkUKK1BFQ0FSU0tJIExFS1NBCitQRUNFIMSQT1LEkEUKK1BFQ0UgxJBPUsSQRQorUEVDRSBBTEVLU0FOREFSCitQRUNFIEFOVE9OCitQRUNFIElMRcWgCitQRUNFIFpPTFRBTgorUEVDRUxKIEJPxb1PCitQRUNFTEogU1RFVkFOCitQRUNJxIYgQUNBCitQRUNJxIYgS0FUQVJJTkEKK1BFQ0nEhiBNSU9EUkFHCitQRUNJxIYgU1RFVkFOCitQRUNOSklLIEFOQQorUEVDTyBNSVJTQUQKK1BFQ09WScSGIFJBRE9NSVIKK1BFRE9WScSGIFJBVE9NSVIKK1BFScSGLVRVS1VMSkFDIFZKRUtPU0xBVgorUEVKxIxJxIYgQk/FvUlEQVIKK1BFSsSMScSGIEJSQVRJU0xBVgorUEVKxIxJxIYgRE9CUklWT0pFCitQRUrEjEnEhiBET0JSSVZPSgorUEVKxIxJxIYgRE9CUk9TQVYKK1BFSsSMScSGIERSQUdPTUlSCitQRUrEjEnEhiBEVcWgQU5LQQorUEVKxIxJxIYgRFVCUkFWS0EKK1BFSsSMScSGIEdSQURJTUlSCitQRUrEjEnEhiBJTElKQQorUEVKxIxJxIYgSUxJSkEKK1BFSsSMScSGIEpBU01JTkEKK1BFSsSMScSGIEpPVkFOCitQRUrEjEnEhiBKT1ZBTgorUEVKxIxJxIYgTEpVQklDQQorUEVKxIxJxIYgTEpVQk9NSVIKK1BFSsSMScSGIE1JTEVOS08KK1BFSsSMScSGIE1JTEUKK1BFSsSMScSGIE1JT0RSQUcKK1BFSsSMScSGIE1JUk9TTEFWCitQRUrEjEnEhiBNSVRBUgorUEVKxIxJxIYgTU9NxIxJTE8KK1BFSsSMScSGIE5PVkFLCitQRUrEjEnEhiBQRVRBUgorUEVKxIxJxIYgUkFET1NMQVZBCitQRUrEjEnEhiBSVcW9QQorUEVKxIxJxIYgU0FWQQorUEVKxIxJxIYgU0FWQQorUEVKxIxJxIYgU1ZFVElTTEFWCitQRUrEjEnEhiBWT0pJU0xBVgorUEVKxIxJxIYgVk9KSVNMQVYKK1BFSsSMScSGIFpPUkFOCitQRUpBSyDEkE9SxJBFCitQRUpBSyDEkFVSQQorUEVKQUsgQlJBTktPCitQRUpBSyBEUkFHT1NMQVZBCitQRUpBSyBKRUxFTkEKK1BFSkFLIEpPVkFOCitQRUpBSyBKT1ZJQ0EKK1BFSkFLIExBWkFSCitQRUpBSyBMSlVCSUNBCitQRUpBSyBNSUxBTgorUEVKQUsgTUlMSU5LQQorUEVKQUsgTUlPRFJBRworUEVKQUsgTUlSSkFOQQorUEVKQUsgTU9KQQorUEVKQUsgTkVWRU5LQQorUEVKQUsgUkFET1ZBTgorUEVKQUsgUkFKS08KK1BFSkFLIFNBVkEKK1BFSkFLIFNMQVZLTworUEVKQUsgVFJJVkEKK1BFSkFLIFZFUklDQQorUEVKQUsgVkxBRElNSVIKK1BFSkFLScSGIE1BUktPCitQRUpBS09WScSGIMW9QVJLTworUEVKQUtPVknEhiDEkE9SxJBFCitQRUpBS09WScSGIERVxaBBTgorUEVKQUtPVknEhiBJTElKQQorUEVKQUtPVknEhiBNSUxFTktPCitQRUpBS09WScSGIE5BTkRPUgorUEVKQUtPVknEhiBORU5BRAorUEVKQUtPVknEhiBQRVJJQ0EKK1BFSkFLT1ZJxIYgUEVUQVIKK1BFSkFLT1ZJxIYgUFJFRFJBRworUEVKQU5PVknEhiDEkE9SxJBFCitQRUpBTk9WScSGIEFOxJBFTEtPCitQRUpBTk9WScSGIEJSQU5LTworUEVKQU5PVknEhiBESU1JVFJJSkUKK1BFSkFOT1ZJxIYgTUlMS0EKK1BFSkFOT1ZJxIYgUkFET1ZBTiBEUgorUEVKQU5PVknEhiBaT1JBTgorUEVKScSMScSGIE1JTEFOCitQRUpJxIYgxb1JVkFOCitQRUpJxIYgQUxFS1NBTkRBUgorUEVKScSGIEFMRUtTQU5EQVIKK1BFSknEhiBBTklDQQorUEVKScSGIEFOVE9OCitQRUpJxIYgQk9HREFOS0EKK1BFSknEhiBCT1JJVk9KCitQRUpJxIYgQlJBTklTTEFWCitQRUpJxIYgQlJBTklTTEFWCitQRUpJxIYgRFJBR0FOCitQRUpJxIYgRFJBR0FOCitQRUpJxIYgRFJBR0nFoEEKK1BFSknEhiBEUkFHSUNBCitQRUpJxIYgRFJBR08KK1BFSknEhiBEUkFHTworUEVKScSGIERVxaBBTgorUEVKScSGIERVxaBBTgorUEVKScSGIERVxaBBTgorUEVKScSGIEdBVlJBCitQRUpJxIYgSVZBTgorUEVKScSGIElWQU4KK1BFSknEhiBKQU5KQQorUEVKScSGIEpPVkFOCitQRUpJxIYgTEpVQk9NSVIKK1BFSknEhiBNQVJBCitQRUpJxIYgTUlIQUpMTworUEVKScSGIE1JTEFOCitQRUpJxIYgTUlMQU4KK1BFSknEhiBNSUxBTgorUEVKScSGIE1JTEVOS08KK1BFSknEhiBNSUxJQ0EKK1BFSknEhiBNSUxPxaAKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPU0FWCitQRUpJxIYgTkVERUxKS08KK1BFSknEhiBOSUtPTEEKK1BFSknEhiBOSUtPCitQRUpJxIYgTk9WQUsKK1BFSknEhiBPUkpFTgorUEVKScSGIFBSRURSQUcKK1BFSknEhiBSQURPSktBCitQRUpJxIYgUkFET1NBVgorUEVKScSGIFJBSktPCitQRUpJxIYgUlXFvUlDQQorUEVKScSGIFNMT0JPREFOS0EKK1BFSknEhiBTTE9CT0RBTgorUEVKScSGIFNMT0JPREFOCitQRUpJxIYgU09GSUpBCitQRUpJxIYgU1RBTktPCitQRUpJxIYgU1RFVkFOCitQRUpJxIYgU1RJUEFOCitQRUpJxIYgVkVSSUNBCitQRUpJxIYgVkxBRE8KK1BFSklOIMSQT1LEkEUKK1BFSklOIMSQVVLEkElOQQorUEVKSU4gQU7EkEVMS0EKK1BFSklOIEJSQU5JTUlSCitQRUpJTiBCUkFOSU1JUgorUEVKSU4gQlJBTklNSVIKK1BFSklOIERFSkFOCitQRUpJTiBESU1JVFJJSkUKK1BFSklOIERVxaBBTiBEUgorUEVKSU4gR09KS08KK1BFSklOIEpFTEVOQQorUEVKSU4gSk9WQU4KK1BFSklOIExBWkFSIERJUEwgT0VDCitQRUpJTiBNQVJJSkEKK1BFSklOIE1BUklUQQorUEVKSU4gTUlMSVZPSgorUEVKSU4gTUlMT8WgCitQRUpJTiBNSUxPUkFECitQRUpJTiBNSVJPU0xBVgorUEVKSU4gTUxBREVOCitQRUpJTiBORU5BRAorUEVKSU4gTklLT0xBCitQRUpJTiBOSUtPTEEKK1BFSklOIE5JS09MQQorUEVKSU4gTk9WQUsKK1BFSklOIFBBVkxFCitQRUpJTiBQRVJTSURBCitQRUpJTiBQTEFWxaBBCitQRUpJTiBSQURBCitQRUpJTiBSQURBCitQRUpJTiBSQURPU0xBVgorUEVKSU4gU1RFVkFOCitQRUpJTiBTVEVWQU4KK1BFSklOIFZBU0EKK1BFSklOIFZFUklDQQorUEVKSU4gVlVLT1NBVkEKK1BFSklOT1YgQlJBTklTTEFWCitQRUpJTk9WIExKVUJJQ0EKK1BFSklOT1YgVkVMSktPCitQRUpJTk9WScSGIERSQUdBTgorUEVKS09WScSGIEFMRUtTQU5EQVIKK1BFSktPVknEhiBEQU5JTEtBCitQRUpLT1ZJxIYgSUJPTEpLQQorUEVKS09WScSGIElWQU4KK1BFSktPVknEhiBKQVNOQQorUEVKTk9WScSGIEJPU0lMSktBCitQRUpOT1ZJxIYgTEpVQklOS0EKK1BFSk5PVknEhiBNSUxBTgorUEVKTk9WScSGIE1JUk9TTEFWCitQRUpOT1ZJxIYgTklLT0xBCitQRUpOT1ZJxIYgU1RFVkFOCitQRUpPVknEhiDEkE9LQQorUEVKT1ZJxIYgxJBVS0FOCitQRUpPVknEhiBBTEVLU0FOREFSCitQRUpPVknEhiBBTEVLU0FOREFSCitQRUpPVknEhiBCT8W9SURBUgorUEVKT1ZJxIYgQk9SSVNMQVYKK1BFSk9WScSGIEJPUklWT0pFCitQRUpPVknEhiBCT1JLQQorUEVKT1ZJxIYgQk9TSUxKS0EKK1BFSk9WScSGIEJSQU5LQQorUEVKT1ZJxIYgREFOSUNBCitQRUpPVknEhiBEQU5JTE8KK1BFSk9WScSGIERBVklECitQRUpPVknEhiBERUpBTgorUEVKT1ZJxIYgRE9CUklMQQorUEVKT1ZJxIYgRFJBR0lDQQorUEVKT1ZJxIYgTEpVQk8KK1BFSk9WScSGIE1BUktPCitQRUpPVknEhiBNSUxBTgorUEVKT1ZJxIYgTUlMRU5BCitQRUpPVknEhiBNSUxFTkEKK1BFSk9WScSGIE1JTElKQQorUEVKT1ZJxIYgTUlMT0pLQQorUEVKT1ZJxIYgTUlPRFJBRworUEVKT1ZJxIYgTUlSSkFOQQorUEVKT1ZJxIYgTU9NSVIKK1BFSk9WScSGIE5BREEKK1BFSk9WScSGIE9MR0EKK1BFSk9WScSGIFBBVkxFCitQRUpPVknEhiBQRVRBUgorUEVKT1ZJxIYgU0FWQQorUEVKT1ZJxIYgU0xBVktBCitQRUpPVknEhiBTTE9CT0RBTktBCitQRUpPVknEhiBTTE9CT0RBTgorUEVKT1ZJxIYgVE9NSVNMQVYKK1BFSk9WU0tJIERSQUdBTgorUEVKT1ZTS0kgS09MRQorUEVKT1ZTS0kgVE9NSVNMQVYKK1BFS0FSIERBUktPCitQRUtBUiBKQU5PxaAKK1BFS0FSIE1JTEtBCitQRUtBUiBST1pBTElKQQorUEVLQVJPVknEhiBEUkFHSUNBCitQRUtBUyBBTlRFCitQRUtFxIwgTUlUQQorUEVLRVogQlJBTktPCitQRUtFWiBKT1ZBTgorUEVLRVogSk9WQU4KK1BFS0VaIE1BUklDQQorUEVLRVogTUlMT1JBRAorUEVLRVogU1RBTkEKK1BFS0VaIFpPUkEKK1BFS0nEhiBCUkFOSVNMQVYgRFIKK1BFS0nEhiBHT1JBTgorUEVLScSGIEtSU1RPCitQRUtJxIYgTUlIQUpMTworUEVLScSGIE1JTEFOCitQRUtJxIYgTUlMQU4KK1BFS0nEhiBNSUxPxaAKK1BFS0nEhiBNSVJLTworUEVLScSGIFNURVZBTgorUEVLT1ZJxIYgxb1FTEpLTworUEVLT1ZJxIYgSUxJSkEKK1BFS09WScSGIE1BR0RBTEVOQQorUEVLT1ZJxIYgTUlMSVZPSkUKK1BFS09WScSGIE1JVFJVxaBBCitQRUtPVknEhi1QQVJMQcSGIFNNSUxKQSBEUgorUEVLT1ZJxIYgUEFWQQorUEVLT1ZJxIYgVkVSQQorUEVLT1ZJxIYgVklEQQorUEVLT1ZJxIYgVlVLQcWgSU4KK1BFS1VSQVIgS09STkVMCitQRUtVUkFSIFJPTUFOCitQRUxBR0nEhiBOQURBCitQRUxBR0nEhiBTUsSQQU4KK1BFTEUgRkVSRU5DCitQRUxFIE1BUklKQQorUEVMRSBaT0xUQU4KK1BFTEVHUklOIFNUSkVQQU4KK1BFTEVHUklOIFZMQURPCitQRUxFVknEhiBCUkFOS08KK1BFTEhFIEZSQU5KQSBEUgorUEVMSkhBIMSQVVJBCitQRUxKSEEgU0FOSkEKK1BFTEpIQSBaVk9OS08KK1BFTE9aQSBEVcWgQU4KK1BFTE9aQSBOQURBCitQRUxWQSBKT1NJUAorUEVMVkEgSk9WQU4KK1BFTFZBIFpPTFRBTgorUEVMVkFJLVpPUknEhiBFRElUCitQRU1BQyBCUkFOSVNMQVYKK1BFTUFDIExBWkFSCitQRU5BIE1BUklOS08KK1BFTkEgTUlMQU4KK1BFTkEgTUlPRFJBRworUEVOQSBSQURJVk9KCitQRU5BIFNMT0JPREFOCitQRU5BQyBTVEFLSUNBCitQRU5BVklOIFZFTElNSVIKK1BFTkMgRE9CUklMQQorUEVOQyBJUkVOQQorUEVOQ0EgU0xBVktPCitQRU5Exb1JxIYgQlJBTklTTEFWCitQRU5Exb1JxIYgSkVST1NJTUEKK1BFTkVaScSGIERVxaBBTgorUEVORVpJxIYgTkVOQUQKK1BFTkVaScSGIFJBRE9TTEFWCitQRU5FWknEhiBaT1JJQ0EKK1BFTknEhiDEjEVET01JUgorUEVOScSGIMSQVVLEkElDQQorUEVOScSGIEJPUklTTEFWCitQRU5JxIYgQlJBTktPCitQRU5JxIYgTUlIQUpMTworUEVOScSGIE1JTEVWQQorUEVOScSGIE1JTElDQQorUEVOScSGIFBBVkxFCitQRU5JxIYgU0xBVktPCitQRU5JxIYgU1RFVkFOCitQRU5JxIYgVkxBRElNSVIKK1BFTkpBxaBLT1ZJxIYgWlZPTklNSVIKK1BFTkpJTiDFvUlWQQorUEVOSklOIFNMQVZLTworUEVOT1YgRU1JTAorUEVOT1YgTEpVQknFoEEKK1BFTk9WIE1BUktPCitQRU5aRcWgIMSQT1LEkEUKK1BFTlpFxaAgRkVSRU5DCitQRU5aRcWgIEZFUkVOQworUEVOWkXFoCBNSUhBTEoKK1BFTlpFxaAgTUlIQUxKCitQRU5aRcWgIFRJQk9SCitQRVBJxIYgTEFaTworUEVQScSGIE1JTEFOCitQRVBJxIYgTUlMRQorUEVQScSGIE1JUkpBTkEKK1BFUEnEhiBNSVJLTworUEVQTElOQUMgVE9NQQorUEVSxIxJIEFHTkVaQQorUEVSxIxJxIYgRFJBR0FOCitQRVLFoCBLU0VOSUpBCitQRVLFoEFKIE1JUkpBTkEKK1BFUsWgScSGIERBTklDQQorUEVSxaBJxIYgVkFMRVJJSkEKK1BFUsSQRcSQQUogQkHFoEtJTQorUEVSxJBVTiBaVk9OS08KK1BFUkHEhiBCUkFOS08KK1BFUkHEhiBMSlVQS08KK1BFUkFaScSGIFNBVkEKK1BFUkFaScSGIFZMQURJTUlSCitQRVJDIEJSQU5LQQorUEVSQyBFTEEKK1BFUkMgVkxBRElNSVIKK1BFUkNFIExVS0EKK1BFUkRBTiBTVEFOSVNMQVYKK1BFUkXFoCBIRVJNSU5BCitQRVJFxb1BIE5JS09MQQorUEVSRUdJIEdFWkEKK1BFUkVHSSBPU0tBUgorUEVSRUhJTkFDIElWQU4KK1BFUkVOxIxFVknEhiBWQVNPCitQRVJFUEFUScSGIFBJUk/FoAorUEVSRVBBVEnEhiBTVEVWQU4KK1BFUkVVTEEgQk9HREFOCitQRVJHQUwgTUlST1NMQVYgRFIgSU5HCitQRVJHRSBFU1RFUgorUEVSR0UgTUFSQQorUEVSR0UgVklLVE9SSUpBCitQRVJJxIxFVknEhiBCUkFOS08KK1BFUknEjEVWScSGIFJBSktPCitQRVJJxIxJTiDFvUlWQU4KK1BFUknEjElOIE1JTEFOS0EKK1BFUknEjElOIE1JTEVOS08KK1BFUknEjElOIFJBVEtPCitQRVJJxIxJTiBWTEFEQQorUEVSScWgQSBKQUtPVgorUEVSScWgQSBNSVJPU0xBVgorUEVSScWgScSGIMSMRURPTUlSCitQRVJJxaBJxIYgxb1JVk9EQVJLQQorUEVSScWgScSGIMSQT1LEkEUKK1BFUknFoEnEhiDEkE9SxJBFCitQRVJJxaBJxIYgQUxFS1NBTkRBUgorUEVSScWgScSGIEFOSUNBCitQRVJJxaBJxIYgQkxBxb1PCitQRVJJxaBJxIYgQkxBR09KRQorUEVSScWgScSGIEJPQkFOCitQRVJJxaBJxIYgQk9SSVNMQVYKK1BFUknFoEnEhiBCUkFOS08KK1BFUknFoEnEhiBEQU5JQ0EKK1BFUknFoEnEhiBEUkFHT01JUgorUEVSScWgScSGIERVxaBBTktBCitQRVJJxaBJxIYgSVJFTkEKK1BFUknFoEnEhiBLQVRJQ0EKK1BFUknFoEnEhiBLQVRJQ0EKK1BFUknFoEnEhiBMQVpBUgorUEVSScWgScSGIExBWkFSCitQRVJJxaBJxIYgTEFaQVIKK1BFUknFoEnEhiBMQVpBCitQRVJJxaBJxIYgTEpVQk9NSVIKK1BFUknFoEnEhiBNQU5DSUtBCitQRVJJxaBJxIYgTUFSQQorUEVSScWgScSGIE1JSEFKTE8KK1BFUknFoEnEhiBNSUxBTgorUEVSScWgScSGIE1JTEVOS08KK1BFUknFoEnEhiBNSUxJTktPCitQRVJJxaBJxIYgTUlMSkEKK1BFUknFoEnEhiBNSUxPVkFOCitQRVJJxaBJxIYgTUlMT1ZBTgorUEVSScWgScSGIE1JTFVUSU4KK1BFUknFoEnEhiBNSU9EUkFHCitQRVJJxaBJxIYgTUlSQQorUEVSScWgScSGIE5JS09MQQorUEVSScWgScSGIFJBREUKK1BFUknFoEnEhiBSQURPU0xBVkEKK1BFUknFoEnEhiBSQURPU0xBVgorUEVSScWgScSGIFJBTktPCitQRVJJxaBJxIYgU1RBTktPCitQRVJJxaBJxIYgU1RFVk8KK1BFUknFoEnEhiBTVE9KQU4KK1BFUknFoEnEhiBTVkVUT1pBUgorUEVSScWgScSGIFRPRE9SCitQRVJJxaBJxIYgVUdMSkXFoEEKK1BFUknFoEnEhiBWQVNPCitQRVJJxaBJxIYgVkFTTworUEVSScSGIMW9QVJLTworUEVSScSGIMW9SVZLQQorUEVSScSGIMW9SVZPSklOCitQRVJJxIYgxJBPUsSQRQorUEVSScSGIMSQVVJJQ0EKK1BFUknEhiBBTEVLU0FOREFSCitQRVJJxIYgQU5BCitQRVJJxIYgQklTRVJLQQorUEVSScSGIEJPxb1JREFSCitQRVJJxIYgQk/FvUlEQVIKK1BFUknEhiBCT1JJUworUEVSScSGIEJSQU5JU0xBVgorUEVSScSGIEJSQU5JU0xBVgorUEVSScSGIEJSQU5LTworUEVSScSGIENWSUpFVElOCitQRVJJxIYgRE9CUklMQQorUEVSScSGIERSQUdBTkEKK1BFUknEhiBEVcWgQU5LQQorUEVSScSGIERVxaBBTgorUEVSScSGIERVxaBBTgorUEVSScSGIEdPSktPIERJUEwgSU5HCitQRVJJxIYgR09SQU4KK1BFUknEhiBJVkFOCitQRVJJxIYgSkFOS08KK1BFUknEhiBKRUxLQQorUEVSScSGIEpPVkFOS0EKK1BFUknEhiBKT1ZBTgorUEVSScSGIEtTRU5JSkEKK1BFUknEhiBMQVpBCitQRVJJxIYgTEpVQknFoEEKK1BFUknEhiBMSlVCSUNBCitQRVJJxIYgTEpVQklOS0EKK1BFUknEhiBMSlVCSU5LTworUEVSScSGIExKVUJPTUlSCitQRVJJxIYgTUFSQQorUEVSScSGIE1BUklKQQorUEVSScSGIE1BUklKQQorUEVSScSGIE1BUklKQQorUEVSScSGIE1BUklOS08KK1BFUknEhiBNQVJLTworUEVSScSGIE1JSEEKK1BFUknEhiBNSUxBRElOCitQRVJJxIYgTUlMQU4KK1BFUknEhiBNSUxFTktPCitQRVJJxIYgTUlMSUNBCitQRVJJxIYgTUlMS0lDQQorUEVSScSGIE1JTE/FoAorUEVSScSGIE1JTE/FoAorUEVSScSGIE1JTE9SQUQKK1BFUknEhiBNSU9EUkFHCitQRVJJxIYgTUlUQVIKK1BFUknEhiBOQVRBxaBBCitQRVJJxIYtTkXFoEnEhiBDT0tBCitQRVJJxIYgTklLT0xBCitQRVJJxIYgTklLT0xBCitQRVJJxIYgTklLT0xBCitQRVJJxIYgTklLT0xBCitQRVJJxIYgUEFWTEUKK1BFUknEhiBQRVRBUgorUEVSScSGIFJBxaBBCitQRVJJxIYgUkFERQorUEVSScSGIFJBRElWT0oKK1BFUknEhiBSQURPCitQRVJJxIYgUkFKS08KK1BFUknEhiBST0RPTEpVQgorUEVSScSGIFJVxb1JQ0EKK1BFUknEhiBTQVZBCitQRVJJxIYgU0FWQQorUEVSScSGIFNMQVZJQ0EKK1BFUknEhiBTTEFWS08KK1BFUknEhiBTTE9CT0RBTgorUEVSScSGIFNMT0JPREFOCitQRVJJxIYgU01JTEpBCitQRVJJxIYgU1RBTktBCitQRVJJxIYgU1ZFVE9aQVIKK1BFUknEhiBUT01JU0xBVgorUEVSScSGIFZBU0EKK1BFUknEhiBWSU5LQQorUEVSScSGIFZMQVRLTworUEVSScSGIFpERU5LQQorUEVSScSGIFpPUkFOCitQRVJJxIYgWk9SQU4KK1BFUknEhiBaT1JBCitQRVJJQ0EgQU5URQorUEVSSUNBIFJBRE9TTEFWCitQRVJJTiBCUkFOSVNMQVYKK1BFUklOIERSQUdJxaBBCitQRVJJTiBNSUxJTktPCitQRVJJTiBNSUxPUkFECitQRVJJTiBSQURJxaBBCitQRVJJTiBTRUtVTEEKK1BFUklOIFpPUkEKK1BFUklOQUMgUkFET1ZBTgorUEVSSU5BQyBSQURPVkFOCitQRVJJTk9WScSGIEJSQU5LTworUEVSSU5PVknEhiBOQURBCitQRVJJTk9WScSGIFNMQVZJQ0EKK1BFUklOT1ZJxIYgU0xBVktPCitQRVJJTk9WScSGIFNUQU5LTworUEVSSVogU1RFVk8KK1BFUktPViBSQURJTktBCitQRVJLT1ZBQyBNQVJJSkEKK1BFUktPVknEhiBCUkFOSU1JUgorUEVSS09WScSGIEJSQU5JU0xBVgorUEVSS09WScSGIERBTklDQQorUEVSS09WScSGIERSQUdBTgorUEVSS09WScSGIEdWT1pERU4KK1BFUktPVknEhiBKRUxLQQorUEVSS09WScSGIFJBRElWT0oKK1BFUktPVknEhiBSQURPTUFOIE1SCitQRVJLT1ZJxIYgU0xBVktPCitQRVJLT1ZJxIYgVEFESUpBCitQRVJLT1ZJxIYgVE9NTworUEVSS09WU0tJIMSQT1LEkEUKK1BFUktPVlNLSSBBTsSQRUxLTworUEVSS1XEjElOIMSQT1LEkEUKK1BFUktVxIxJTiDEkFVMSU5LQQorUEVSS1XEjElOIERVxaBBTgorUEVSS1XEjElOIEdPUkRBTkEKK1BFUktVxIxJTiBLQVRJQ0EKK1BFUktVxIxJTiBOSUtPTEEKK1BFUktVxIxJTiBSQURJVk9KIERSCitQRVJMQUtJIExBSk/FoAorUEVSTEnEhiBEUkFHQU4KK1BFUkxJTkFDIFNJTUVVTgorUEVSTkpBSyBOQVRBTElKQQorUEVSTkpBSyBOSUtPTEEgRElQTCBJTkcKK1BFUk5KQUtPVknEhiBEUkFHT1NMQVYKK1BFUk/FoEVWScSGIE5PVklDQQorUEVST8WgRVZJxIYgU1RBTktBCitQRVJPU0FWTEpFVknEhiBMSlVCScWgQQorUEVST1ZBTk9WScSGIEFMRUtTQU5EQVIKK1BFUk9WQU5PVknEhiBEVcWgQU4KK1BFUk9WQU5PVknEhiBKQUdPREEKK1BFUk9WScSGIMW9QU5LQQorUEVST1ZJxIYgQU7EkEVMS0EKK1BFUk9WScSGIEJPSkFOQQorUEVST1ZJxIYgQlJBTktPCitQRVJPVknEhiBCUkFUSU1JUgorUEVST1ZJxIYgRFJBR08KK1BFUk9WScSGIEdBQlJJRUxBCitQRVJPVknEhiBJVkFOS0EKK1BFUk9WScSGIEpFTEEKK1BFUk9WScSGIEpPVkFOCitQRVJPVknEhiBLQVRBUklOQQorUEVST1ZJxIYgTUFSS08KK1BFUk9WScSGIE1JTEVOS08gRFIKK1BFUk9WScSGIE1JTE9SQUQKK1BFUk9WScSGIE1MQcSQRU4KK1BFUk9WScSGIE5BREXFvURBCitQRVJPVknEhiBOSUtPTEEKK1BFUk9WScSGIFJBREHFoElOCitQRVJPVknEhiBSQURJU0FWCitQRVJPVknEhiBSQURJU0xBVgorUEVST1ZJxIYgUkFESVZPSkUKK1BFUk9WScSGIFJBRElWT0oKK1BFUk9WScSGIFJBRE9WQU4gRElQTCBJTkcKK1BFUk9WScSGIFNWRVRPTUlSCitQRVJPVknEhiBWRVNFTElOCitQRVJPVknEhiBWTEFKS08KK1BFUlRJxIYgWkFLQVJJQcWgCitQRVJUT1QgSkVMRU5BCitQRVJVTknEjEnEhiBET0JSSUxBCitQRVJVTknEjEnEhiBNSUxPUkFECitQRVJVTknEjEnEhiBSQURBTgorUEVSVU5PVknEhiBMSklMSkFOQQorUEVSVU5PVknEhiBQQU5UTworUEVSVU5PVknEhiBTVEFOT0pFCitQRVJWQVogxb1JVktBCitQRVJWQVogRFJBR0lOSkEgRFIgUFJPRgorUEVTSVJBQyBEUkFHT0xKVUIKK1BFU0lSQUMgS0FUQVJJTkEKK1BFU0lSQUMgUEVUQVIKK1BFU0lSQUMgU1RFVkFOCitQRVNMQcSGIEpPVkFOCitQRVNUQUxJxIYgSk9TSVAKK1BFU1RFTEVLIExKVUJJxaBBCitQRVNURUxFSyBMSlVCScWgQQorUEVUQUtPViDFvUlWS08KK1BFVEFLT1YgSlVMS0EKK1BFVEFLT1YgTUlMRU5LTworUEVUQUtPViBSQURPU0xBVgorUEVUQUtPViBSQU5LQQorUEVUQUtPViBTQVZBCitQRVRBS09WScSGIERPQlJJTEEKK1BFVEFLT1ZJxIYgRFXFoEFOCitQRVRBS09WScSGIElMSUpBCitQRVRBS09WScSGIEpPVkFOCitQRVRBS09WScSGIE1JTElDQQorUEVUQUtPVknEhiBORU1BTkpBCitQRVRBS09WScSGIFJBRElWT0oKK1BFVEFLT1ZJxIYgUkFKS08KK1BFVEFLT1ZJxIYgU0FWQQorUEVURSDEkFVSQQorUEVURSDEkFVSQQorUEVURSBEVcWgQU5LQQorUEVURSBGRVJFTkMKK1BFVEUgRkVSRU5DCitQRVRFIEZSQU5KQQorUEVURSBJxaBUVkFOCitQRVRFIEnFoFRWQU4KK1BFVEUgScWgVFZBTgorUEVURSBLQVJPTEoKK1BFVEUgUEVUQVIKK1BFVEUgU1RFUEFOCitQRVRFIFNURVZBTgorUEVURUogUkFUS08KK1BFVEVLIERBTUlSCitQRVRFTElOIEVMSVpBQkVUQQorUEVURU5KSSBKT1NJUCBEUgorUEVURU5KSSBTVEVWQU4KK1BFVEVSIEZSQU5DScWgS0EKK1BFVEVSIEpPxb1FRgorUEVURVIgSk9MQU4KK1BFVEVSIEpPVkFOCitQRVRFUiBNSUhBTEoKK1BFVEVSIFZJTE1PxaAKK1BFVEVSS0EgxJBPUsSQRQorUEVURVJLQSBKRUxFTkEKK1BFVEVSS0EgSk9TSVAKK1BFVEVSS0EgTUFSSUpBCitQRVRFUktBIFNURVZBTgorUEVURVJLQSBWTEFESVNMQVYKK1BFVEVSTEnEhiBNSUxBTgorUEVURVJORUwgTElESUpBCitQRVRJxIYgTUlMQU4KK1BFVEnEhiBaT1JLQQorUEVUSUpFVknEhiBKT1ZBTiBNUgorUEVUSUpFVknEhiBKT1ZBTgorUEVUSU4gTklLT0xBIFBST0ZFU09SCitQRVRLQU5JxIYgTUlMT1JBRAorUEVUS09WIMW9QVJFCitQRVRLT1YgxJBPUsSQRQorUEVUS09WIMSQVVJBCitQRVRLT1YgQk9SSVNMQVYKK1BFVEtPViBJVkFOCitQRVRLT1YgTUlMQU4KK1BFVEtPViBOQURFxb1EQQorUEVUS09WIFNBVkEKK1BFVEtPViBTVEVWQU4KK1BFVEtPViBTVEVWQQorUEVUS09WScSGIMSMRURBCitQRVRLT1ZJxIYgxb1BUktPCitQRVRLT1ZJxIYgxb1FTEpLTworUEVUS09WScSGIMW9SVZPUkFECitQRVRLT1ZJxIYgxb1JVk9SQUQKK1BFVEtPVknEhiDEkE9SxJBFIERSCitQRVRLT1ZJxIYgxJBPUsSQRQorUEVUS09WScSGIMSQT1LEkEUKK1BFVEtPVknEhiDEkE9SxJBFCitQRVRLT1ZJxIYgxJBPUsSQRQorUEVUS09WScSGIMSQVUxBCitQRVRLT1ZJxIYgxJBVUkHEkAorUEVUS09WScSGIEFMRUtTQU5EQVIKK1BFVEtPVknEhiBBTkEKK1BFVEtPVknEhiBBTlRVTgorUEVUS09WScSGIEJPSkFOQQorUEVUS09WScSGIEJPUklTTEFWCitQRVRLT1ZJxIYgQk9SS08KK1BFVEtPVknEhiBCUkFOS08KK1BFVEtPVknEhiBCUkFOS08KK1BFVEtPVknEhiBCUkFOS08KK1BFVEtPVknEhiBCUkFOS08KK1BFVEtPVknEhiBDVkVUS08KK1BFVEtPVknEhiBEQVJJTktBCitQRVRLT1ZJxIYgRFJBR0FOCitQRVRLT1ZJxIYgRFJBR0FOCitQRVRLT1ZJxIYgRFJBR0nFoEEKK1BFVEtPVknEhiBEUkFHSUNBCitQRVRLT1ZJxIYgRFJBR09MSlVCCitQRVRLT1ZJxIYgRFXFoEFOCitQRVRLT1ZJxIYgRFXFoEFOCitQRVRLT1ZJxIYgRFXFoEFOCitQRVRLT1ZJxIYgR09SREFOQQorUEVUS09WScSGIEdWT1pERU4KK1BFVEtPVknEhiBJxaBUVkFOCitQRVRLT1ZJxIYgSUxJSkEKK1BFVEtPVknEhiBJTElKQQorUEVUS09WScSGIElMSkEKK1BFVEtPVknEhiBJUkVOQQorUEVUS09WScSGIEpBR09EQQorUEVUS09WScSGIEpPU0lQCitQRVRLT1ZJxIYgSk9WQU4KK1BFVEtPVknEhiBKT1ZPCitQRVRLT1ZJxIYgS0FMTUFOCitQRVRLT1ZJxIYgS0FUQVJJTkEKK1BFVEtPVknEhiBLT1NUQURJTgorUEVUS09WScSGIEtSU1RBCitQRVRLT1ZJxIYgTEFaQVIKK1BFVEtPVknEhiBMQVpBUgorUEVUS09WScSGIExBWkFSCitQRVRLT1ZJxIYgTEFaTworUEVUS09WScSGIExKVUJJTktPCitQRVRLT1ZJxIYgTEpVQk9NSVIKK1BFVEtPVknEhiBNQVJLTworUEVUS09WScSGIE1JSEFKTE8KK1BFVEtPVknEhiBNSUxBTkEKK1BFVEtPVknEhiBNSUxBTgorUEVUS09WScSGIE1JTEFOCitQRVRLT1ZJxIYgTUlMQU4KK1BFVEtPVknEhiBNSUxBTgorUEVUS09WScSGIE1JTEFOCitQRVRLT1ZJxIYgTUlMSUNBCitQRVRLT1ZJxIYgTUlMS0EKK1BFVEtPVknEhiBNSUxPUkFECitQRVRLT1ZJxIYgTUlMT1JBRAorUEVUS09WScSGIE1JTE9WQU5LQQorUEVUS09WScSGIE1JTFVUSU4KK1BFVEtPVknEhiBNSUxVVElOCitQRVRLT1ZJxIYgTUlMVVRJTgorUEVUS09WScSGIE1JT0RSQUcKK1BFVEtPVknEhiBNSU9EUkFHCitQRVRLT1ZJxIYgTUlPRFJBRworUEVUS09WScSGIE1JT1JJS0EKK1BFVEtPVknEhiBNSVJBCitQRVRLT1ZJxIYgTUlSSkFOQSBESVBMIElORworUEVUS09WScSGIE1JUkpBTkEKK1BFVEtPVknEhiBNSVJLTworUEVUS09WScSGIE1JUktPCitQRVRLT1ZJxIYgTUlSS08KK1BFVEtPVknEhiBNTEFERU4KK1BFVEtPVknEhiBNTEFERU4KK1BFVEtPVknEhiBNTEFERU4KK1BFVEtPVknEhiBOQURBCitQRVRLT1ZJxIYgTklLTworUEVUS09WScSGIE9CUkFECitQRVRLT1ZJxIYgT0xJVkVSQQorUEVUS09WScSGIFBBVkxFCitQRVRLT1ZJxIYgUEFWTEUKK1BFVEtPVknEhiBQQVZMRQorUEVUS09WScSGIFBFVEFSCitQRVRLT1ZJxIYgUEVUQVIKK1BFVEtPVknEhiBQRVRBUgorUEVUS09WScSGIFBFVFJBCitQRVRLT1ZJxIYgUFVOScWgQQorUEVUS09WScSGIFJBREUKK1BFVEtPVknEhiBSQURJVk9KCitQRVRLT1ZJxIYgUkFET1ZBTgorUEVUS09WScSGIFJBRE9WQU4KK1BFVEtPVknEhiBSQVRLQQorUEVUS09WScSGIFNMQVZLTworUEVUS09WScSGIFNMT0JPREFOCitQRVRLT1ZJxIYgU0xPQk9EQU4KK1BFVEtPVknEhiBTUsSQQU4KK1BFVEtPVknEhiBTVEFOQQorUEVUS09WScSGIFNUQU5PSkUKK1BFVEtPVknEhiBTVEVWQU4KK1BFVEtPVknEhiBTVEVWQU4KK1BFVEtPVknEhiBTVkVUSVNMQVYKK1BFVEtPVknEhiBUT01JU0xBVgorUEVUS09WScSGIFRPTUlTTEFWCitQRVRLT1ZJxIYgVkFTSUxJSkUKK1BFVEtPVknEhiBWRVJBCitQRVRLT1ZJxIYgVkVSSUNBCitQRVRLT1ZJxIYgVkVTRUxJTgorUEVUS09WScSGIFZMQURJTUlSCitQRVRLT1ZJxIYgVkxBRElNSVIKK1BFVEtPVknEhiBWTEFESU1JUgorUEVUS09WScSGIFZMQURJU0xBVgorUEVUS09WScSGIFZPSklTTEFWCitQRVRLT1ZJxIYgVlVLQcWgSU4KK1BFVEtPVknEhiBWVUtPU0FWQQorUEVUS09WScSGIFpMQVRLTworUEVUS09WScSGIFpMQVRPTUlSCitQRVRLT1ZJxIYgWk9SQU4KK1BFVEtPVlNLQSBTTEFWSUNBCitQRVRLT1ZTS0kgQUNBCitQRVRLT1ZTS0kgR09SQU4KK1BFVEtPVlNLSSBNSUxLQQorUEVUS09WU0tJIFNUQU5LTworUEVUTEVLIEpPVkFOCitQRVRMSkFOU0tJIEJSQU5LTworUEVUTEpBTlNLSSBEUkFHT1NMQVYKK1BFVExKQU5TS0kgSVJFTkEKK1BFVE8gSk/FvUVGCitQRVRPxaBFVknEhiBNSUxFCitQRVRPxaBFVknEhiBTTEFWS08KK1BFVE/FoEVWScSGIFNURVZBTgorUEVUT8WgRVZJxIYgU1ZFVElTTEFWCitQRVRPSExFQiBQQVZJQ0EKK1BFVE9KRVZJxIYgxJBPUsSQRQorUEVUT1ZJxIYgxJBVUk8KK1BFVE9WScSGIEdPSktPCitQRVRPVknEhiBNSUxFTkEKK1BFVE9WScSGIFNMQVZLTworUEVUUkHFoElOT1ZJxIYgRFJBR0FOCitQRVRSQcWgS09WScSGIERSQUdBTgorUEVUUkHFoEtPVknEhiBFTUlMSUpBCitQRVRSQUtPVknEhi1HUkFPVkFDIEtPU0FOQQorUEVUUkFOT1ZJxIYgSk9TSVAKK1BFVFJBTk9WScSGIE1BR0RBCitQRVRSQU5PVknEhiBaVk9OS08KK1BFVFJFxaAgRlJBTkpPCitQRVRSRcWgIFJBREUKK1BFVFJFTkogU1RFVkFOCitQRVRSRVZTS0EgWk9SQU5LQQorUEVUUkVWU0tJIEJPUklTCitQRVRSRVZTS0kgSUxPTkEKK1BFVFJFVlNLSSBLSVJPCitQRVRSSSBNSUxFTkEKK1BFVFJJIE1JUk9TTEFWQQorUEVUUknEjEVWScSGIElWQU4KK1BFVFJJxIxJxIYgQlJBTktPCitQRVRSScSMScSGIERBTkUKK1BFVFJJxIxJxIYgSk9WTworUEVUUknEjEnEhiBNSUxBTgorUEVUUknEjEnEhiBNSUxBTgorUEVUUknEjEnEhiBTVEVWQU4KK1BFVFJJxIxJxIYgVEFUSkFOQQorUEVUUknEhiDEkE9SxJBFCitQRVRSScSGIEFMRUtTQU5EQVIKK1BFVFJJxIYgQU5BU1RBWklKQQorUEVUUknEhiBCT8WgS08KK1BFVFJJxIYgQlJBTklTTEFWQQorUEVUUknEhiBCUkFOS08gRFIKK1BFVFJJxIYgREFOSUxPCitQRVRSScSGIERFU0FOS0EgRElQTCBJTkcKK1BFVFJJxIYgREVTSU1JUgorUEVUUknEhiBESU1JVFJJSkUgRElQTCBJTkcKK1BFVFJJxIYgRElNSVRSSUpFCitQRVRSScSGIERJTUlUUklKRQorUEVUUknEhiBEVcWgQU5LQQorUEVUUknEhiBEVcWgQU4KK1BFVFJJxIYgSUxJSkEKK1BFVFJJxIYgSk9WQU4KK1BFVFJJxIYgTEFaQVIgTVIKK1BFVFJJxIYgTEpJTEpBTkEKK1BFVFJJxIYgTEpVQklDQQorUEVUUknEhiBNSUxBTgorUEVUUknEhiBNSUxBTgorUEVUUknEhiBNSUxFTktPCitQRVRSScSGIE1JTEVUQQorUEVUUknEhiBNSUxJVk9KCitQRVRSScSGIE1JTE9SQUQKK1BFVFJJxIYgTkFEQQorUEVUUknEhiBPTEdBCitQRVRSScSGIFBFVEFSCitQRVRSScSGIFBFVEFSCitQRVRSScSGIFJBRElTQVYKK1BFVFJJxIYgUkFESVNBVgorUEVUUknEhiBSQURPVkFOCitQRVRSScSGIFNMQVZJQ0EKK1BFVFJJxIYgU0xPQk9EQU5LQQorUEVUUknEhiBTTE9CT0RBTgorUEVUUknEhiBTT0ZJSkEKK1BFVFJJxIYgU09GSUpBCitQRVRSScSGIFZBU0lMSUpFCitQRVRSScSGIFZVTEVUQQorUEVUUklLIMWgQU5ET1IKK1BFVFJJSyBBTEVLU0FOREFSIERJUEwgSU5HCitQRVRSSUsgRUxJWkFCRVRBCitQRVRSSUsgScWgVFZBTgorUEVUUklLIFZJTkNFCitQRVRSSUsgWk9MVEFOCitQRVRSSUtBIExKVUJJxaBBCitQRVRSSUtBIE1JT0RSQUcKK1BFVFJJS09OSkEgS1NFTklKQQorUEVUUklLT05KQSBMQVpBUgorUEVUUklOIERVxaBBTgorUEVUUklOIEtBVElDQQorUEVUUklOIE1BSkEKK1BFVFJJTiBNSUxBTktBCitQRVRSSU4gTUlMQU5LQQorUEVUUklOIFJBRE1JTEEKK1BFVFJJTiBWTEFESU1JUgorUEVUUklOIFZMQURJTUlSCitQRVRSSU5JxIYgTUlSS08KK1BFVFJJTk9WScSGIE1JTElOQQorUEVUUklOT1ZJxIYgU1RFVkEKK1BFVFJPIEFOVEUKK1BFVFJPIEtBVEFMSU4KK1BFVFJPIE5JS08KK1BFVFJPIFNBTkpBCitQRVRST05JxIYgxb1JVk9UQQorUEVUUk9OScSGIEFMRUtTQU5EQVIKK1BFVFJPTknEhiBLQVRBUklOQQorUEVUUk9OSUpFVknEhiBEUkFHT01JUgorUEVUUk9OSUpFVknEhiBHT1JBTgorUEVUUk9OSUpFVknEhiBQUkVEUkFHCitQRVRST05JSkVWScSGIFNSRVRBCitQRVRST05JSkVWScSGIFZMQVNUSU1JUgorUEVUUk9OSkUgTUlPRFJBRworUEVUUk9OSkUgTUlPRFJBRworUEVUUk9WIMW9SVZBTkEKK1BFVFJPViDFvUlWQU4KK1BFVFJPViBBTkFUT0xJSgorUEVUUk9WIEFOQQorUEVUUk9WIEJPUklTCitQRVRST1YgREFOSUNBCitQRVRST1YgRFXFoEFOS0EKK1BFVFJPViBEVcWgQU4KK1BFVFJPViBFVklDQQorUEVUUk9WIEZSQU5LQQorUEVUUk9WIEnFoFRWQU4KK1BFVFJPViBJVkFOCitQRVRST1YgSkFTTUlOQQorUEVUUk9WIEpFTEVOQQorUEVUUk9WIEpPxb1FRgorUEVUUk9WIExBWkFSCitQRVRST1YgTEpVQk9NSVIKK1BFVFJPViBMSlVCT01JUgorUEVUUk9WIE1BUklKQQorUEVUUk9WIE1BUklKQQorUEVUUk9WIE1BUklOS08KK1BFVFJPViBNSUxBTgorUEVUUk9WIE1JTEVOS08KK1BFVFJPViBNSUxJQ0EKK1BFVFJPViBNSUxPUkFECitQRVRST1YgTUlMT1NBVkEKK1BFVFJPViBNSUxPVkFOCitQRVRST1YgTUlPRFJBRworUEVUUk9WIE1JT0RSQUcKK1BFVFJPViBNSVJPU0xBVgorUEVUUk9WIE1PTcSMSUxPCitQRVRST1YgTkFEQQorUEVUUk9WIE5BVEFMSUpBCitQRVRST1YgTkVCT0rFoEEgRFIKK1BFVFJPViBPTEdBCitQRVRST1YgUkFETUlMQQorUEVUUk9WIFNBxaBBCitQRVRST1YgU0FWQQorUEVUUk9WIFNBVkEKK1BFVFJPViBTQVZBCitQRVRST1YgU0VSR0lKRQorUEVUUk9WIFNMQVZLQQorUEVUUk9WIFNMQVZLTworUEVUUk9WIFNMT0JPREFOCitQRVRST1YgU1JCSVZPSgorUEVUUk9WIFNURVZBTgorUEVUUk9WIFNWRVRPWkFSCitQRVRST1YgVE9NSVNMQVYKK1BFVFJPViBWQVNPCitQRVRST1YgVkVMSVpBUgorUEVUUk9WIFZMQURJTUlSCitQRVRST1YgVk9KSVNMQVYKK1BFVFJPViBWT0pJU0xBVgorUEVUUk9WIFpMQVRPTUlSCitQRVRST1bEjEFOLcWgUEFOT1ZJxIYgRVVGRU1JSkEKK1BFVFJPVkHEjEtJIERVxaBBTgorUEVUUk9WQcSMS0kgSk9WQU4KK1BFVFJPVkHEjEtJIExKSUxKQU5BCitQRVRST1ZBxIxLSSBWRVJBCitQRVRST1ZJxIYgxIxFREEKK1BFVFJPVknEhiDFoFRFRkFOCitQRVRST1ZJxIYgxb1BUktPCitQRVRST1ZJxIYgxb1BUktPCitQRVRST1ZJxIYgxb1BUktPCitQRVRST1ZJxIYgxb1BUktPCitQRVRST1ZJxIYgxb1FTEpLTworUEVUUk9WScSGIMW9RUxKS08KK1BFVFJPVknEhiDFvUlLQQorUEVUUk9WScSGIMW9SVZBTgorUEVUUk9WScSGIMW9SVZLQQorUEVUUk9WScSGIMW9SVZLQQorUEVUUk9WScSGIMW9SVZLTworUEVUUk9WScSGIMW9SVZLTworUEVUUk9WScSGIMW9SVZPSklOCitQRVRST1ZJxIYgxb1JVk9SQUQKK1BFVFJPVknEhiDFvUlWT1RBCitQRVRST1ZJxIYgxJBPS0lDQQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkFVSQQorUEVUUk9WScSGIEFMRUtTQU5EQVIKK1BFVFJPVknEhiBBTEVLU0FOREFSCitQRVRST1ZJxIYgQUxFS1NBTkRBUgorUEVUUk9WScSGIEFMRUtTQU5EQVIKK1BFVFJPVknEhiBBTEVLU0FORFJBCitQRVRST1ZJxIYgQUxFS1NBTkRSQQorUEVUUk9WScSGIEFMSU5LQQorUEVUUk9WScSGIEFOxJBFTEtBCitQRVRST1ZJxIYgQU5BCitQRVRST1ZJxIYgQU5HRUxJTkEKK1BFVFJPVknEhiBBTklDQQorUEVUUk9WScSGIEFOS0EKK1BFVFJPVknEhiBBTktBCitQRVRST1ZJxIYtQkFMScW9IExKSUxKQU5BCitQRVRST1ZJxIYgQklMSkFOQQorUEVUUk9WScSGIEJPxaBLTworUEVUUk9WScSGIEJPxb1JREFSCitQRVRST1ZJxIYgQk9HREFOCitQRVRST1ZJxIYgQk9HREFOCitQRVRST1ZJxIYgQk9KQU5BCitQRVRST1ZJxIYgQk9TSUxKS0EKK1BFVFJPVknEhiBCT1NJTEpLQQorUEVUUk9WScSGIEJSQU5JTUlSCitQRVRST1ZJxIYgQlJBTklTTEFWQQorUEVUUk9WScSGIEJSQU5JU0xBVkEKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOSVNMQVYKK1BFVFJPVknEhiBCUkFOS0EKK1BFVFJPVknEhiBCUkFOS08KK1BFVFJPVknEhiBCUkFOS08KK1BFVFJPVknEhiBCUkFOS08KK1BFVFJPVknEhiBCUkFOS08KK1BFVFJPVknEhiBDVklLTworUEVUUk9WScSGIERBTUlSCitQRVRST1ZJxIYgREFNSVIKK1BFVFJPVknEhiBEQU5JQ0EKK1BFVFJPVknEhiBEQU5JQ0EKK1BFVFJPVknEhiBEQU5JQ0EKK1BFVFJPVknEhiBEQVJBCitQRVRST1ZJxIYgREFSSU5LQQorUEVUUk9WScSGIERBUklOS0EKK1BFVFJPVknEhiBERUpBTgorUEVUUk9WScSGIERFU0FOS0EKK1BFVFJPVknEhiBERVNJTUlSCitQRVRST1ZJxIYgRElNSVRSSUpFCitQRVRST1ZJxIYgRE9CUklDQQorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdBTgorUEVUUk9WScSGIERSQUdJxaBBIERJUEwgUFJBVk5JSworUEVUUk9WScSGIERSQUdJxaBBCitQRVRST1ZJxIYgRFJBR0nEhgorUEVUUk9WScSGIERSQUdJTkpBCitQRVRST1ZJxIYgRFJBR09MSlVCIERSCitQRVRST1ZJxIYgRFJBR09MSlVCCitQRVRST1ZJxIYgRFJBR09MSlVCCitQRVRST1ZJxIYgRFJBR09NSVIKK1BFVFJPVknEhiBEUkFHT1NMQVYKK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgQU4KK1BFVFJPVknEhiBEVcWgSUNBCitQRVRST1ZJxIYgRFXFoEtPCitQRVRST1ZJxIYgRVZBCitQRVRST1ZJxIYgRVZHRU5JSkUKK1BFVFJPVknEhiBFVklDQQorUEVUUk9WScSGIEZBQklKQU4KK1BFVFJPVknEhiBHQVZSSUxPCitQRVRST1ZJxIYgR09SREFOQQorUEVUUk9WScSGIEdPUkRBTkEKK1BFVFJPVknEhiBHUkFESU1JUgorUEVUUk9WScSGIEdSQURJTUlSCitQRVRST1ZJxIYgSFJJU1RJTkEKK1BFVFJPVknEhiBJTElKQQorUEVUUk9WScSGIElMSUpBCitQRVRST1ZJxIYgSUxJSkEKK1BFVFJPVknEhiBJTE9OQQorUEVUUk9WScSGIElTQUsKK1BFVFJPVknEhiBJVkFOS0EKK1BFVFJPVknEhiBJVkFOCitQRVRST1ZJxIYgSVZBTgorUEVUUk9WScSGIElWQU4KK1BFVFJPVknEhiBJVkFOCitQRVRST1ZJxIYgSVZBTgorUEVUUk9WScSGIEpBTktPCitQRVRST1ZJxIYgSkFTTUlOS0EKK1BFVFJPVknEhiBKRUxFTkEKK1BFVFJPVknEhiBKRUxJQ0EKK1BFVFJPVknEhiBKRUxJU0FWRVRBCitQRVRST1ZJxIYgSkVWUkVNCitQRVRST1ZJxIYgSk/FvUVGCitQRVRST1ZJxIYgSk9WQU5LQQorUEVUUk9WScSGIEpPVkFOS0EKK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEtBVElDQQorUEVUUk9WScSGIEtBVElDQQorUEVUUk9WScSGIEtBVElDQQorUEVUUk9WScSGIEtBVElDQQorUEVUUk9WScSGIEtPU1RBIERSCitQRVRST1ZJxIYgS1JTVE8KK1BFVFJPVknEhiBMQVpBUgorUEVUUk9WScSGIExBWkFSCitQRVRST1ZJxIYgTEVOS0EKK1BFVFJPVknEhiBMSURBCitQRVRST1ZJxIYgTEpJTEpBTkEKK1BFVFJPVknEhiBMSklMSkFOQQorUEVUUk9WScSGIExKSUxKQU5BCitQRVRST1ZJxIYgTEpJTEpBTkEKK1BFVFJPVknEhiBMSlVCScWgQQorUEVUUk9WScSGIExKVUJJQ0EKK1BFVFJPVknEhiBMSlVCSUNBCitQRVRST1ZJxIYgTEpVQklDQQorUEVUUk9WScSGIExKVUJJTktBCitQRVRST1ZJxIYgTEpVQklTQVYKK1BFVFJPVknEhiBMSlVCT01JUgorUEVUUk9WScSGIExKVUJPTUlSCitQRVRST1ZJxIYgTUFSQQorUEVUUk9WScSGIE1BUklDQQorUEVUUk9WScSGIE1BUklKQQorUEVUUk9WScSGIE1BUklKQQorUEVUUk9WScSGIE1BUklLQQorUEVUUk9WScSGIE1BUktPCitQRVRST1ZJxIYgTUFSS08KK1BFVFJPVknEhiBNQVJLTworUEVUUk9WScSGIE1BUktPCitQRVRST1ZJxIYgTUlBSkxPCitQRVRST1ZJxIYgTUlDQQorUEVUUk9WScSGIE1JSEFJTE8KK1BFVFJPVknEhiBNSUhBSUxPCitQRVRST1ZJxIYgTUlIQUpMTyBEUiBWRVRFUklORQorUEVUUk9WScSGIE1JSk9NSVIKK1BFVFJPVknEhiBNSUxBRElOCitQRVRST1ZJxIYgTUlMQU5LQQorUEVUUk9WScSGIE1JTEFOS08KK1BFVFJPVknEhiBNSUxBTktPCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxFTkEKK1BFVFJPVknEhiBNSUxFTktPCitQRVRST1ZJxIYgTUlMRU5LTworUEVUUk9WScSGIE1JTEVOS08KK1BFVFJPVknEhiBNSUxFTgorUEVUUk9WScSGIE1JTEVWQQorUEVUUk9WScSGIE1JTEUKK1BFVFJPVknEhiBNSUxJxIYKK1BFVFJPVknEhiBNSUxJQ0EKK1BFVFJPVknEhiBNSUxJQ0EKK1BFVFJPVknEhiBNSUxJQ0EKK1BFVFJPVknEhiBNSUxJVk9KCitQRVRST1ZJxIYgTUlMT8WgIERSCitQRVRST1ZJxIYgTUlMT8WgIERSCitQRVRST1ZJxIYgTUlMT8WgCitQRVRST1ZJxIYgTUlMT0pFCitQRVRST1ZJxIYgTUlMT0pLTworUEVUUk9WScSGIE1JTE9MSlVCCitQRVRST1ZJxIYgTUlMT1JBRAorUEVUUk9WScSGIE1JTE9SQUQKK1BFVFJPVknEhiBNSUxPVkFOCitQRVRST1ZJxIYgTUlMT1ZBTgorUEVUUk9WScSGIE1JTE9WQU4KK1BFVFJPVknEhiBNSUxVTgorUEVUUk9WScSGIE1JTFVOCitQRVRST1ZJxIYgTUlMVVRJTgorUEVUUk9WScSGIE1JTFVUSU4KK1BFVFJPVknEhiBNSUxVVElOCitQRVRST1ZJxIYgTUlPRFJBRworUEVUUk9WScSGIE1JT0RSQUcKK1BFVFJPVknEhiBNSU9EUkFHCitQRVRST1ZJxIYgTUlPTEpVQgorUEVUUk9WScSGIE1JT01JUgorUEVUUk9WScSGIE1JUsSMRUEKK1BFVFJPVknEhiBNSVJKQU5BCitQRVRST1ZJxIYgTUlSSkFOQQorUEVUUk9WScSGIE1JUktPCitQRVRST1ZJxIYgTUlST1NMQVYgRFIgTEVLQVIKK1BFVFJPVknEhiBNSVJPU0xBVkEKK1BFVFJPVknEhiBNSVJPU0xBVktBCitQRVRST1ZJxIYgTUlST1NMQVYKK1BFVFJPVknEhiBNSVJPU0xBVgorUEVUUk9WScSGIE1MQcSQRU4KK1BFVFJPVknEhiBNTEFERU4KK1BFVFJPVknEhiBNTEFERU4KK1BFVFJPVknEhiBNT03EjElMTworUEVUUk9WScSGIE1PTcSMSUxPCitQRVRST1ZJxIYgTU9NxIxJTE8KK1BFVFJPVknEhiBNT03EjElMTworUEVUUk9WScSGIE5BREEKK1BFVFJPVknEhiBOQURBCitQRVRST1ZJxIYgTkFEQQorUEVUUk9WScSGIE5BRElSQQorUEVUUk9WScSGIE5BVEFMSUpBCitQRVRST1ZJxIYgTkVOQUQKK1BFVFJPVknEhiBORVZFTkEKK1BFVFJPVknEhiBORVZFTktBIERSCitQRVRST1ZJxIYgTklLT0xBCitQRVRST1ZJxIYgTklLT0xBCitQRVRST1ZJxIYgTk9WQUsKK1BFVFJPVknEhiBOT1ZJQ0EKK1BFVFJPVknEhiBPQlJBRAorUEVUUk9WScSGIE9MR0EKK1BFVFJPVknEhiBPTEdJQ0EKK1BFVFJPVknEhiBPTElWRVJBCitQRVRST1ZJxIYgUEFKQQorUEVUUk9WScSGIFBBTlRFTElKQQorUEVUUk9WScSGIFBFUlNJREEKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUUklKQQorUEVUUk9WScSGIFBMQU1FTktBCitQRVRST1ZJxIYtUE9QQURJxIYgTUlMQU4KK1BFVFJPVknEhiBQUkVEUkFHCitQRVRST1ZJxIYgUFJWT1NMQVYKK1BFVFJPVknEhiBSQURBCitQRVRST1ZJxIYgUkFERQorUEVUUk9WScSGIFJBREnFoEEgRElQTCBJTkcKK1BFVFJPVknEhiBSQURJxaBBCitQRVRST1ZJxIYgUkFEScWgQQorUEVUUk9WScSGIFJBRElWT0pFCitQRVRST1ZJxIYgUkFESVZPSgorUEVUUk9WScSGIFJBRElWT0oKK1BFVFJPVknEhiBSQURNSUxBCitQRVRST1ZJxIYgUkFETUlMQQorUEVUUk9WScSGIFJBRE1JTEEKK1BFVFJPVknEhiBSQURNSUxBCitQRVRST1ZJxIYgUkFETUlMQQorUEVUUk9WScSGIFJBRE9KS0EKK1BFVFJPVknEhiBSQURPTUlSCitQRVRST1ZJxIYgUkFET01JUgorUEVUUk9WScSGIFJBRE9NSVIKK1BFVFJPVknEhiBSQURPTUlSCitQRVRST1ZJxIYgUkFET1NBVgorUEVUUk9WScSGIFJBRE9TTEFWCitQRVRST1ZJxIYgUkFET1NMQVYKK1BFVFJPVknEhiBSQUpLTworUEVUUk9WScSGIFJBSktPCitQRVRST1ZJxIYgUkFOS08KK1BFVFJPVknEhiBSQU5LTworUEVUUk9WScSGIFJBVEtPCitQRVRST1ZJxIYgUkFUS08KK1BFVFJPVknEhiBSQVRPTUlSCitQRVRST1ZJxIYgUklTVE8KK1BFVFJPVknEhiBST0RPTEpVQgorUEVUUk9WScSGIFJPU0EKK1BFVFJPVknEhiBSVcW9QQorUEVUUk9WScSGIFJVxb1JQ0EKK1BFVFJPVknEhiBSVVpNQVJJTktBCitQRVRST1ZJxIYgU0FWQU4KK1BFVFJPVknEhiBTQVZBCitQRVRST1ZJxIYgU0FWQQorUEVUUk9WScSGIFNBVkEKK1BFVFJPVknEhiBTSU1BCitQRVRST1ZJxIYgU0lNRVVOCitQRVRST1ZJxIYgU0lNTworUEVUUk9WScSGIFNJTknFoEEKK1BFVFJPVknEhiBTTEFWSUNBCitQRVRST1ZJxIYgU0xBVktBCitQRVRST1ZJxIYgU0xBVktBCitQRVRST1ZJxIYgU0xBVktPCitQRVRST1ZJxIYgU0xBVktPCitQRVRST1ZJxIYgU0xPQk9EQU4gRElQTCBJTkcKK1BFVFJPVknEhiBTTE9CT0RBTiBESVBMIElORworUEVUUk9WScSGIFNMT0JPREFOIERSCitQRVRST1ZJxIYgU0xPQk9EQU5LQQorUEVUUk9WScSGIFNMT0JPREFOCitQRVRST1ZJxIYgU0xPQk9EQU4KK1BFVFJPVknEhiBTTE9CT0RBTgorUEVUUk9WScSGIFNMT0JPREFOCitQRVRST1ZJxIYgU0xPQk9EQU4KK1BFVFJPVknEhiBTTUlMSkEKK1BFVFJPVknEhiBTTkXFvUFOQQorUEVUUk9WScSGIFNPRklKQQorUEVUUk9WScSGIFNQQVNFCitQRVRST1ZJxIYgU1BBU09KRQorUEVUUk9WScSGIFNQT01FTktBCitQRVRST1ZJxIYgU1LEkEFOCitQRVRST1ZJxIYgU1RBTUVOS08KK1BFVFJPVknEhiBTVEFOScWgQQorUEVUUk9WScSGIFNUQU5JU0xBVgorUEVUUk9WScSGIFNURVZBTiBESVBMIElORworUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNURVZBTgorUEVUUk9WScSGIFNUT0pBRElOCitQRVRST1ZJxIYgU1RPSkFOCitQRVRST1ZJxIYgU1RPSkFOCitQRVRST1ZJxIYgU1RPSktBCitQRVRST1ZJxIYgU1VaQU5BIERSCitQRVRST1ZJxIYgU1VaQU5BCitQRVRST1ZJxIYgU1ZFVElTTEFWCitQRVRST1ZJxIYgU1ZFVEtPCitQRVRST1ZJxIYgU1ZFVE9aQVIKK1BFVFJPVknEhiBTVkVUT1pBUgorUEVUUk9WScSGIFNWRVRPWkFSCitQRVRST1ZJxIYgU1ZFVE9aQVIKK1BFVFJPVknEhiBTVkVUT1pBUgorUEVUUk9WScSGIFRBVEpBTkEKK1BFVFJPVknEhiBUSUJPUgorUEVUUk9WScSGIFRJTktBCitQRVRST1ZJxIYgVE9ET1JLQQorUEVUUk9WScSGIFRPTUlTTEFWCitQRVRST1ZJxIYgVVJPxaAKK1BFVFJPVknEhiBVUk/FoAorUEVUUk9WScSGIFZBU0EKK1BFVFJPVknEhiBWQVNJTElKRQorUEVUUk9WScSGIFZFTElCT1IKK1BFVFJPVknEhiBWRUxJQk9SCitQRVRST1ZJxIYgVkVMSUJPUgorUEVUUk9WScSGIFZFTElNSVIKK1BFVFJPVknEhiBWRVJBCitQRVRST1ZJxIYgVkVSQQorUEVUUk9WScSGIFZFUkEKK1BFVFJPVknEhiBWRVJBCitQRVRST1ZJxIYgVkVSQQorUEVUUk9WScSGIFZFUklDQQorUEVUUk9WScSGIFZFU0VMQQorUEVUUk9WScSGIFZFU0VMSU4KK1BFVFJPVknEhiBWRVNOQQorUEVUUk9WScSGIFZJxaBOSkEKK1BFVFJPVknEhiBWSURBCitQRVRST1ZJxIYgVkxBREEKK1BFVFJPVknEhiBWTEFERQorUEVUUk9WScSGIFZMQURJTUlSCitQRVRST1ZJxIYgVkxBRElNSVIKK1BFVFJPVknEhiBWTEFESVNMQVZBCitQRVRST1ZJxIYgVkxBU1RJTUlSCitQRVRST1ZJxIYgVk9KSU4KK1BFVFJPVknEhiBWT0pJTgorUEVUUk9WScSGIFZPSklTTEFWCitQRVRST1ZJxIYgVk9KSVNMQVYKK1BFVFJPVknEhiBWT0pJU0xBVgorUEVUUk9WScSGIFZPSktBCitQRVRST1ZJxIYgVlVLQcWgSU4KK1BFVFJPVknEhiBWVUtJQ0EKK1BFVFJPVknEhiBaQUdPUktBCitQRVRST1ZJxIYgWkFHT1JLQQorUEVUUk9WScSGIFpBR09SS0EKK1BFVFJPVknEhiBaREVOS08KK1BFVFJPVknEhiBaREVOS08KK1BFVFJPVknEhiBaTEFUQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkEKK1BFVFJPVknEhiBaT1JBCitQRVRST1ZJxIYgWk9SSUNBCitQRVRST1ZJxIYgWk9SSUNBCitQRVRST1ZJxIYgWk9SSUNBCitQRVRST1ZJxIYgWk9SS0EKK1BFVFJPVlNLSSBCT1JJUworUEVUUk9WU0tJIERJTUlUUklKRQorUEVUUk9WU0tJIEVWQQorUEVUUk9WU0tJIEZJREFOxIxPCitQRVRST1ZTS0kgSEVMRU5BCitQRVRST1ZTS0kgTUlMQURJTgorUEVUUk9WU0tJIE1JTEFOCitQRVRST1ZTS0kgTUlMT0RBUktBCitQRVRST1ZTS0kgUEVUQVIKK1BFVFJPVlNLSSBTTEFWS0EKK1BFVFJVxaBFVknEhiBNT03EjElMTworUEVUUlXFoEVWU0tJIE1PTcSMSUxPCitQRVRSVcWgRVZTS0kgTkFEQQorUEVUUlXFoEnEhi1QQVJJUE9WScSGIE9MR0EKK1BFVFJVxaBJxIYgVkFTSUxKCitQRVRSVUxKRVNLT1YgRFJBR0FOCitQRVRSVUxKRVNLT1YgRFJBR0FOCitQRVVMScSGIExKVUJPTUlSCitQRVVMScSGIE1JUkpBTkEKK1BFVUxKQSBWT0pJTgorUEVVUkHEjEEgRFJBR0FOCitQRVVSQcSMQSBNSUxFCitQRVZBxIwgU1RKRVBBTgorUEVWScSGIEVSxb1FQkVUCitQRVpERVbFoEVLIEpBTkVaCitQRVpERVbFoEVLIEtBUkwKK1BFWkVST1ZJxIYgVkVMSU1JUgorUEZBSkZFUiBBTEVLU0FOREFSCitQRkFKRkVSIEFUSUxBCitQRkFKRkVSIFBFVEFSCitQRkFKRkVSVCBBTEVLU0FOREFSCitQRkFVIEpPVkFOS0EKK1BGVU7FoFRBSk4gSk9TSVAKK1BJxaBLT1JJxIYgSVZBTgorUEnFoFBFSyBNQVJUQQorUEnFoFRBTE9WScSGIE1JSEFKTE8KK1BJxaBUQUxPVknEhiBNSVJLTworUEnEhlVSScSGIMW9SVZLTworUEnEhlVSScSGIE1JS08KK1BJxb1VUklDQSBNQVRPCitQSUdMIEFOQQorUElHTCBJTVJFCitQSUhBSkxJxIYgQkxBxb0KK1BJSExFUiBKT1NJUAorUElITEVSIFNUQU5LTyBEUgorUElITEVSIFRPRE9SCitQSUpBTknEhiBEQU5JSkVMCitQSUpFVExPVknEhiBCUkFOTworUElKRVRMT1ZJxIYgSk9WQU4KK1BJSlVLT1ZJxIYgRUxaQQorUElKVUtPVknEhiBJTElKQQorUElLU0lBREVTIE9ORFJFSgorUElLU0lKQURFUyBBTkEKK1BJS1NJSkFERVMgUEFWRUwKK1BJS1NJSkFERVMgUEFWTEUKK1BJS1VMQSDEkE9SxJBFCitQSUtVTEEgQlJBTktPCitQSUwgQU5EUklKQQorUElMIE1JSEFKTE8KK1BJTCBTVEVWQU4KK1BJTCBURVJFWkEKK1BJTEFSIE1BUklDQQorUElMQyBOQU5ET1IKK1BJTEMgUkXFvUUKK1BJTEMgWk9MVEFOCitQSUxFUiBLQVJMTworUElMScWgIEFOQQorUElMScWgIEFORFJBxaAKK1BJTEnFoCBKT1NJUAorUElMScWgRVIgxJBPUsSQRQorUElMScSGIMW9QVJLTworUElMScSGIEFOVE9OCitQSUxJxIYgQk9SSVZPSgorUElMScSGIEJPUk8KK1BJTEnEhiBHQVZSQQorUElMScSGIEpPVkFOCitQSUxJxIYtS0FMRU5JxIYgTUlMSU5LQQorUElMScSGIExKSUxKQQorUElMScSGIE1JTE/FoAorUElMScSGIE1JTFVUSU4KK1BJTEnEhiBSQU5LTworUElMScSGIFNMQVZLTworUElMScSGIFNSQk9MSlVCCitQSUxJxIYgU1RBTktPCitQSUxJxIYgU1RFVkFOCitQSUxJxIYgVk9KSVNMQVYKK1BJTElQT1YgRVZBCitQSUxJUE9WScSGIMSMRURBCitQSUxJUE9WScSGIMW9SVZLTworUElMSVBPVknEhiDEkE9SxJBFCitQSUxJUE9WScSGIMSQVVJBCitQSUxJUE9WScSGIEFOxJBBCitQSUxJUE9WScSGIEJPxaBLTworUElMSVBPVknEhiBCT8W9SURBUgorUElMSVBPVknEhiBCUkFOS08KK1BJTElQT1ZJxIYgQ1ZJSkVUQQorUElMSVBPVknEhiBDVklKRVRBCitQSUxJUE9WScSGIERBTkUKK1BJTElQT1ZJxIYgREFOSUNBCitQSUxJUE9WScSGIERBTklDQQorUElMSVBPVknEhiBEUkFHQU4KK1BJTElQT1ZJxIYgRFJBR08KK1BJTElQT1ZJxIYgR09SQU4KK1BJTElQT1ZJxIYgSk9MQU4KK1BJTElQT1ZJxIYgSk9WQU4KK1BJTElQT1ZJxIYgTEFaQVIKK1BJTElQT1ZJxIYgTEpJTEpBTkEKK1BJTElQT1ZJxIYgTEpVQklDQQorUElMSVBPVknEhiBMSlVCTworUElMSVBPVknEhiBNQVJJSkEKK1BJTElQT1ZJxIYgTUlIQUpMTworUElMSVBPVknEhiBNSUhBSkxPCitQSUxJUE9WScSGIE1JTEFOCitQSUxJUE9WScSGIE1JTEFOCitQSUxJUE9WScSGIE1JTEFOCitQSUxJUE9WScSGIE1JTEVOS08KK1BJTElQT1ZJxIYgTUlMRVZBCitQSUxJUE9WScSGIE1JTE/FoAorUElMSVBPVknEhiBNSVJLTworUElMSVBPVknEhiBOSUtPTEEKK1BJTElQT1ZJxIYgUEVUQVIgRElQTCBJTkcKK1BJTElQT1ZJxIYgUkFERQorUElMSVBPVknEhiBSQURFCitQSUxJUE9WScSGIFJBRElWT0pFCitQSUxJUE9WScSGIFJBRE9NSVIKK1BJTElQT1ZJxIYgU0xBVktPCitQSUxJUE9WScSGIFNQT01FTktPCitQSUxJUE9WScSGIFNUQU5BCitQSUxJUE9WScSGIFNURVZBTgorUElMSVBPVknEhiBTVEVWQU4KK1BJTElQT1ZJxIYgU1RFVk8KK1BJTElQT1ZJxIYgVk9KSU4KK1BJTElQT1ZJxIYgWk9SSUNBCitQSUxJUE9WScSGIFpWT05LTworUElMSknEhiBNQVJJSkFOCitQSUxLTyBJUkVOQQorUElMS08gUEFWTEUKK1BJTE9WScSGIERFU0lNSVIKK1BJTE9WScSGIERVxaBBTktBCitQSUxPVknEhiBNSUxBTgorUElOxIZJUiBKQU4KK1BJTsSGSVIgVkxBRElNSVIKK1BJTsSGSVIgWkRFTktPCitQSU7EhkpFUiBPTkRSRUoKK1BJTsSGSkVSIFNBTVVFTAorUElOxIZKRVIgU0FNVUlMTworUElOSlXFoEnEhiBJTElKQQorUElOSlVIIE1JUkpBTkEKK1BJTkpVSCBQRVRBUgorUElOVEHEjCBGUkFOSk8KK1BJTlRBxIwgTEFESVNMQVYKK1BJTlRBxIwgTklLT0xBIERJUEwgT0VDCitQSU5UQcSMIFZFU05BCitQSU5UQcSGIMSQT1LEkEUKK1BJTlRBxIYgTUFSSUpBCitQSU5UQVJJxIYgSkFTTkEKK1BJTlRBUknEhiBKT1ZBTgorUElOVEVSIEFEUklFTkUKK1BJTlRFUiBBTEVLU0FOREFSCitQSU5URVIgQU5EUkHFoAorUElOVEVSIEJFTEEKK1BJTlRFUiBCRUxBCitQSU5URVIgRlJBTkpBCitQSU5URVIgSU1SRQorUElOVEVSIEpBTk/FoAorUElOVEVSIEtBUk9MSgorUElOVEVSIEtBVEFMSU4KK1BJTlRFUiBMRU5LQQorUElOVEVSIExJVklKQQorUElOVEVSIE1BUklKQQorUElOVEVSIE1JSEFMSgorUElOVEVSIE1JSEFMSgorUElOVEVSIFNURVZBTgorUElOVEVSIFRJQk9SCitQSU5URVIgVkVSQQorUElOVEVSIFZKRUtPU0xBVgorUElQRVIgVkVMSUJPUgorUElQRVJBQyBOQURBCitQSVBFUktPViBBTktBCitQSVBFUlNLSSDFvUlWQQorUElQRVJTS0kgQU5BCitQSVBFUlNLSSBEUkFHT01JUgorUElQRVJTS0kgS09TVEEKK1BJUkMgREFOSUNBCitQSVJJIEpBTk/FoAorUElSSSBKT8W9RUYKK1BJUkkgSk9TSVAKK1BJUkkgSk9TSVAKK1BJUknEhiBJQlJBSElNCitQSVJJxIYgT1NNQU4KK1BJUknEhiBaT1JBCitQSVJJVkFUUknEhiBEVcWgQU5LQQorUElSTUFKRVIgSk9TSVAKK1BJUk/FoEtJIERSQUdJQ0EKK1BJUk/FoEtJIEpVTElKQU5BCitQSVJPxaBLSSBNSU9EUkFHCitQSVJPxaBLSSBWQVNBCitQSVJUScSGIEtTRU5JSkEKK1BJUlRJxIYgUkFESU5LQQorUElSVEnEhiBTQVZFVEEKK1BJUyBFRElUQQorUElTQcSMScSGIFZMQURJTUlSCitQSVNBUiDFoEFORE9SCitQSVNBUiBEVcWgQU4KK1BJU0FSIEpPxb1FRgorUElTQVIgTEFTTE8KK1BJU0FSRVYgxJBPUsSQRQorUElTQVJFViBFTUlMSUpBCitQSVNBUkVWIEtBVElDQQorUElTQVJFViBNSUxBTgorUElTQVJFVknEhiDEkE9SxJBFCitQSVNBUkVWScSGIE1JUktPCitQSVNBUkVWScSGIE1JUktPCitQSVNBUkVWScSGIE1JVEFSCitQSVNBUkVWScSGIFNQQVNFTklKQQorUElTQVJJxIYgxJBVUkEKK1BJU0FSScSGIMSQVVJPCitQSVNBUknEhiBCTEHFvU8KK1BJU0FSScSGIEJSQU5LTworUElTQVJJxIYgRFJBR0FOCitQSVNBUknEhiBEUkFHTworUElTQVJJxIYgTkXEkE8KK1BJU0FSScSGIE9TVE9KQQorUElTQVJJxIYgT1NUT0pBCitQSVNBUknEhiBQQVZMRQorUElTQVJJxIYgVkxBRE8KK1BJU0FST1YgxJBPUsSQRQorUElTQVJPViBLQVRJQ0EKK1BJU0FST1YgVkFTQQorUElUQSBNQUhNVVQKK1BJVEEgTUFITVVUCitQSVRPTUHEjEnEhiBTVE9KQU5LQQorUElUT01BxIxJxIYgVkxBREEKK1BJVFVLIE5BREEKK1BJVUtPVknEhiBJVkFOCitQSVVLT1ZJxIYgTUFHREEKK1BJVkHEjCBCT1NJTEpLQQorUElWQUMgRFJBR09MSlVCCitQSVZBQyBNSUxPUkFECitQSVZBQyBNSUxPVkFOCitQSVZBQyBaVk9OSU1JUgorUElWQVJTS0kgQlJBTktBCitQSVZBUlNLSSBEVcWgQU4KK1BJVkFSU0tJIE1JT0RSQUcKK1BJVkFSU0tJIFJBVE9NSVIKK1BJVkFSU0tJIFNMQVZJQ0EKK1BJVkFSU0tJIFNURVZBTgorUElWQVJTS0kgVkVTRUxJTiBNUiBQSAorUElWTknEjEtJIEJPR0RBTktBCitQSVZOScSMS0kgQlJBTklTTEFWCitQSVZOScSMS0kgQlJBTklTTEFWCitQSVZOScSMS0kgQlJBTktBCitQSVZOScSMS0kgRFJBR0FOCitQSVZOScSMS0kgR09SREFOQQorUElWTknEjEtJIElWQU5LQQorUElWTknEjEtJIEtBVEFSSU5BCitQSVZOScSMS0kgTUFSSUpBCitQSVZOScSMS0kgTUlMQU4KK1BJVk5JxIxLSSBNSUxFVEEKK1BJVk5JxIxLSSBSQURFTktPCitQSVZOScSMS0kgUkFKS08KK1BJVk5JxIxLSSBTVE9KS0EKK1BJVk5JxIxLSSBTVkVUT1pBUgorUEpBTknEhiBNSUhBSkxPCitQSkFOScSGIFJJU1RBCitQSkXFoMSMScSGIEJPR09MSlVCCitQSkXFoMSMScSGIExFUE9TQVZBCitQSkXFoMSMScSGIE1BUklKQQorUEpFxaDEjEnEhiBNSUxFVkEKK1BKRcWgxIxJxIYgTk9WQUsKK1BKRcWgSVZBQyBaRFJBVktPCitQSkVUTE9WScSGIERSQUdJQ0EKK1BKRVZBxIwgTklLT0xBCitQSkVWQUMgQlJBTktPCitQSkVWQUMgRFXFoEFOCitQSkVWQUMgU1RFVkFOCitQSkVWQUMgVkxBRElNSVIKK1BKRVZBQyBaT1JBCitQSkVWQUxJQ0EgVVJPxaAKK1BKRVZJxIYgxJBVUkHEkAorUEpFVknEhiBCT8W9TworUEpFVknEhiBNSVJLTyBEUgorUEpFVknEhiBNSVJPU0xBVkEgRFIKK1BMQcSMS0nEhiDFvUFSS08KK1BMQcSMS0nEhiBCT8W9SURBUgorUExBxIxLScSGIEJSQU5LTworUExBxIxLScSGIE1FTEFOSUpBCitQTEHEjEtJxIYgU0xBVktPCitQTEHEjEtJxIYgVE9NSVNMQVYKK1BMQcSMS08gU1RKRVBBTgorUExBxIxLT1Ygxb1JVktBCitQTEHEjEtPViDEkE9SxJBFCitQTEHEjEtPViBCT1JJVk9KCitQTEHEjEtPViBCUkFOSVNMQVYKK1BMQcSMS09WIEJSQU5JU0xBVgorUExBxIxLT1YgQlJBTklTTEFWCitQTEHEjEtPViBCUkFOS0EKK1BMQcSMS09WIERVxaBBTgorUExBxIxLT1YgSUxPTktBCitQTEHEjEtPViBNSUxBTgorUExBxIxLT1YgTUlST0xKVUIKK1BMQcSMS09WIFBBSkEKK1BMQcSMS09WIFBFUkEKK1BMQcSMS09WIFBFVEFSCitQTEHEjEtPViBSVURPTEYKK1BMQcSMS09WIFNBVkEKK1BMQcSMS09WIFNBVkVUQQorUExBxIxLT1YgU0lNQQorUExBxIxLT1YgU1RBTklNSVIKK1BMQcSMS09WIFNURVZBTgorUExBxIxLT1YgU1RFVkEKK1BMQcSMS09WIFNUT0pBTgorUExBxIxLT1YgU1ZFVE9aQVIKK1BMQcSMS09WIFZVS09TQVZBCitQTEHEjEtPVknEhiBNSUxBTgorUExBxIxLT1ZJxIYgUEFKQQorUExBQyBFRE8KK1BMQUtBTE9WScSGIE1JTEFESU4KK1BMQU7EjEFLIEFNQUxJSkEKK1BMQU7EjEFLIEVVRkVNSUpBCitQTEFOxIxBSyBFVUdFTgorUExBTsSMQUsgSk9WQU4KK1BMQU7EjEFLIE1JSEFKTE8KK1BMQU7EjEFLIE1JUk9TTEFWIERSIFBST0YKK1BMQU5JxIYgUkFET1ZBTgorUExBTknEhiBaREVOS0EKK1BMQU5JTsSMScSGIE1JTkEKK1BMQU5JTsSMScSGIFZFU0VMSU4KK1BMQU5KQU5JTiBSQURPTUlSCitQTEFOT0pFVknEhiBNSUxVVElOIERSCitQTEFOT1ZJxIYgVkVTTkEKK1BMQVRJxaBBIE1JTEFOCitQTEFUScWgQSBNSU9EUkFHCitQTEFWxaBJxIYgQU7EkEEKK1BMQVbFoEnEhiBBTklDQQorUExBVsWgScSGIEFOSUNBCitQTEFWxaBJxIYgQU5LQQorUExBVsWgScSGIEJPxaBLTworUExBVsWgScSGIEJPxb1BCitQTEFWxaBJxIYgQk/FvUEKK1BMQVbFoEnEhiBCT8W9SURBUgorUExBVsWgScSGIEJPR09NSVIKK1BMQVbFoEnEhiBCT1JJU0xBVgorUExBVsWgScSGIEJSQU5JU0xBVgorUExBVsWgScSGIEJSQU5LTworUExBVsWgScSGIEJSQU5LTworUExBVsWgScSGIEJSQU5LTworUExBVsWgScSGIENWSUpPCitQTEFWxaBJxIYgRFJBR0FOCitQTEFWxaBJxIYgRFXFoEFOCitQTEFWxaBJxIYgRFXFoElDQQorUExBVsWgScSGIEdPUkRBTkEKK1BMQVbFoEnEhiBKRUxJU0FWRVRBCitQTEFWxaBJxIYgSk9WQU5LQQorUExBVsWgScSGIEpPVkFOCitQTEFWxaBJxIYgSk9WQU4KK1BMQVbFoEnEhiBKT1ZJQ0EKK1BMQVbFoEnEhiBLQVRBUklOQQorUExBVsWgScSGIEtSU1RBCitQTEFWxaBJxIYgTEFaQVIKK1BMQVbFoEnEhiBMSklMSkFOQQorUExBVsWgScSGIExKVUJJQ0EKK1BMQVbFoEnEhiBMSlVCSUNBCitQTEFWxaBJxIYgTEpVQklOS0EKK1BMQVbFoEnEhiBMSlVCT01JUgorUExBVsWgScSGIExVS0EKK1BMQVbFoEnEhiBNQVJJSkEKK1BMQVbFoEnEhiBNQVJJTktPCitQTEFWxaBJxIYgTUFSSU5LTworUExBVsWgScSGIE1JTEVOS08KK1BMQVbFoEnEhiBNSUxFTktPCitQTEFWxaBJxIYgTUlMSUNBCitQTEFWxaBJxIYgTUlMSUNBCitQTEFWxaBJxIYgTUlMSU5LQQorUExBVsWgScSGIE1JTE/FoAorUExBVsWgScSGIE1JTE9NSVIKK1BMQVbFoEnEhiBNSU9EUkFHCitQTEFWxaBJxIYgTUlSS08KK1BMQVbFoEnEhiBNSVJLTworUExBVsWgScSGIE1JUk9TTEFWIERSIExFS0FSCitQTEFWxaBJxIYgTUlUQVIKK1BMQVbFoEnEhiBNSVRBCitQTEFWxaBJxIYgTU9NxIxJTE8KK1BMQVbFoEnEhiBNT01JUgorUExBVsWgScSGIE5FUkEKK1BMQVbFoEnEhiBOSUtPTEEKK1BMQVbFoEnEhiBOT1ZLQQorUExBVsWgScSGIFBBVkEKK1BMQVbFoEnEhiBQRVRBUgorUExBVsWgScSGIFBFVEFSCitQTEFWxaBJxIYgUkFERQorUExBVsWgScSGIFJBRE1JTEEKK1BMQVbFoEnEhiBSQURPVkFOCitQTEFWxaBJxIYgUkFET1ZBTgorUExBVsWgScSGIFJBTktPCitQTEFWxaBJxIYgUkFOS08KK1BMQVbFoEnEhiBTSU1BCitQTEFWxaBJxIYgU0xPQk9EQU4KK1BMQVbFoEnEhiBTTE9CT0RBTgorUExBVsWgScSGIFNURVZBTgorUExBVsWgScSGIFNURVZBTgorUExBVsWgScSGIFNURVZPCitQTEFWxaBJxIYgVE9ERQorUExBVsWgScSGIFRPRE9SCitQTEFWxaBJxIYgVklOS08KK1BMQVbFoEnEhiBWSVRPTUlSCitQTEFWxaBJxIYgVkxBREEKK1BMQVbFoEnEhiBWT0pJTgorUExBVsWgScSGIFZPSklOCitQTEFWxaBJxIYgVlVLT1NBVkEKK1BMQVbFoEnEhiBaT1JLQQorUExBVsWgSU4gRFXFoEFOCitQTEFWxaBJTiBNSUxJQ0EKK1BMQVbFoElOIFNURVZBTgorUExBVkFDIMW9RUxKS08KK1BMQVZBQyBEVcWgQU4KK1BMQVZBQyBKQU5LTworUExBVkMgQUhNRVQKK1BMQVZDIEJBSlJVxaAKK1BMQVZMSkFOSU4gxb1JVktPCitQTEFaQcSMScSGIFZJRE9KRQorUExBWklOQSBQVU5JxaBBCitQTEXFoEEgSk9TSVAKK1BMRcWgRSBHT1JBTgorUExFxaBLTyBBTklDQQorUExFxaBUScSGIERJTUlUUklKRQorUExFxaBUScSGIE1JUkpBTkEKK1BMRcSGQcWgIERBTklMTworUExFxIZBxaAgSUxJSkEKK1BMRcSGQcWgIEtBVElDQQorUExFxIZBxaAgTUlMRVZBCitQTEXEhkHFoCBSQURFCitQTEXEhkHFoCBST1pBTElKQQorUExFTUnEhiDEkFVSTworUExFTUnEhiBEQU5FCitQTEVNScSGIE1JTEFOCitQTEVTS09OSkEgTUlMT0pJQ0EKK1BMRVNLT05KScSGIEFNQUxJSkEKK1BMRVNLT1ZJxIYgQU5UVU4KK1BMRVNLT1ZJxIYgTklLT0xBCitQTEVTS09WScSGIFpEUkFWS08KK1BMRVRFTCBLU0VOSUpBCitQTEVURUwgTUlMQU4KK1BMRVRJS0FQScSGIERSQUdBTgorUExFVElLT1NJxIYgTEpFUktBCitQTEVUSUtPU0nEhiBQRVRBUgorUExFVEwgT1RJTElKQQorUExJU05JxIYgTUlMSUNBCitQTElTTknEhiBNSUxPUkFECitQTElWQVIgSk9WQU4KK1BMSlVDTyBCUkFOS08KK1BMT0ggRFJBR08KK1BMT0ggRlJBTkpBCitQTE9KIE1BUklKQQorUExPUyBNSU9EUkFHCitQTFXFvUFSRVYgTEFaQVIKK1BMVcW9QVJFViBPTElWRVJBIERSCitQTFXFvUFST1YgTUlMRU5LTworUExVS0FWRUMgSVZBTgorUExaQUsgRFJBR09TTEFWCitQT8SMQU5JxIYgVFJJUE8KK1BPxIxFSyBCUkFOSVNMQVYKK1BPxIxFSyBCUkFOS08KK1BPxIxFSyBMSklMSkFOQQorUE/EjEVLIE1JTE9WQU4KK1BPxIxFSyBWTEFEQQorUE/EjEVLIFZMQURJU0xBVgorUE/EjEVLIFZMQURJU0xBVgorUE/EjEVUQUsgTUlMRU5LTworUE/EjEVUQUsgTUlMSUNBCitQT8SMVcSMQSBETUlUQVIKK1BPxIxVxIxBIERVxaBBTgorUE/EjFXEjEEgSk9WQU5LQQorUE/EjFXEjEEgUEVUQVIKK1BPxIxVxIxBIFJBRE1JTEEKK1BPxaDEjEnEhiBFUklLQQorUE/FoEEgxJBVUkEKK1BPxaBBIEFORFJBxaAKK1BPxaBBIERSQUdJQ0EKK1BPxaBBIEnFoFRWQU4KK1BPxaBBIEtBUkxPCitQT8WgQSBQRVRBUgorUE/FoEEgUk9aQUxJSkEKK1BPxaBBIFNORcW9QU5BCitQT8WgQVJBQyBEVcWgS08KK1BPxaBBUkFDIFpPUkFOCitQT8WgVEEgTklLT0xBCitQT8WgVEnEhiDEkE9SxJBFIERSCitQT8WgVEnEhiBEUkFHQU4KK1BPxaBUScSGIE1JTEFOCitQT8WgVEnEhiBTTE9CT0RBTktBCitQT8WgVEnEhiBTT0ZJSkEKK1BPxaBUScSGIFNSxJBBTiBESVBMIElORworUE/FoFRPxaAgVkVSQQorUE/FvUFSIE1JTElDQQorUE/FvUFSRVYgxJBPUsSQRQorUE/FvUFSRVYgxJBPUsSQRQorUE/FvUFSRVYgQUxFS1NBTkRBUgorUE/FvUFSRVYgQU7EkEVMS0EKK1BPxb1BUkVWIERPUkEKK1BPxb1BUkVWIEpFTEVOQQorUE/FvUFSRVYgUkFERQorUE/FvUFSRVYgUkFUT01JUktBCitQT8W9QVJFViBSQVRPTUlSCitQT8W9QVJFViBTVEVWQU4KK1BPxb1BUkVWIFZFU0VMSU4KK1BPxb1FR0EgTUlMRQorUE/FvUVHQSBTT0ZJSkEKK1BPxb1FR0EgU1RFVkFOCitQT8W9R0FKIEFOVFVOCitQT8W9R0FKIFRPTUlTTEFWCitQT0JPUiBKRUxFTkEKK1BPQk9SIFNSRVRPCitQT0JSQU4gU1RFVkFOCitQT0JSQU4gVkxBRElNSVIKK1BPQlJJxIYgSVNBSworUE9CVcSGQU5PVknEhi1LVUxKQU5LScSGIMWgVUhSRVRBCitQT0JVxJBBTk9WScSGIElMSU5LQQorUE9CVcSQQU5PVknEhiBNVUhBUkVNCitQT0JVxJBBTk9WScSGIFNWRVRMQU5BCitQT0NBSlQgVklLVE9SCitQT0NNQU4gQU5UVU4KK1BPQ01BTiBWSUxJTQorUE9DUk5JxIYgTUlMRQorUE9DUk5JxIYgTklLT0xBCitQT0RHT1JOSUsgTUlMQU4KK1BPREdPUk5JSyBSQUpOQQorUE9ETElQRUMgTUFSSUpBCitQT0RNQUpPUlNLSSBNQVJBCitQT0RPQk5JSyBKQVNOQQorUE9ET0xBIEpVU1RJTkEKK1BPRFJBxaDEjEFOSU4gSk9WQU4KK1BPRFJBxaDEjEFOSU4gTkFEQQorUE9EUkHFoMSMQU5JTiBWT0pBCitQT0RSQVZBQyBCUkFOS08KK1BPR0FOxIxFViBHT1JBTgorUE9HQU7EjEVWIEdPUkFOCitQT0dBTkogSlVMSUpBTkEKK1BPR1VCRVJPVknEhiBKT1ZBTgorUE9KQknEhiBEVcWgQU4KK1BPSkUgSk9TSVAKK1BPSknEhiBCUkFOS08KK1BPS0EgSk9TSVAKK1BPS0FTIEpPU0lQCitQT0tSQUpBQyBBTkdFTElOQQorUE9LUkFKQUMgSk9WQU4KK1BPS1JBSkFDIEpPVkFOCitQT0tSQUpBQyBNSUxBTgorUE9LUkFKQUMgTUlMT1JBRAorUE9LUkFKQUMgUkFERQorUE9LUkFKQUMgU0xBVktPCitQT0tSScSGIFZPSklTTEFWCitQT0tVxaBFVlNLSSBET0JSSU5LQQorUE9LVVBFQyBNSUxBTgorUE9MQUsgSkVMRU5BCitQT0xBSyBKT8W9RUYKK1BPTEFLIFNURVZBTgorUE9MQUtPVknEhiBFUsW9RUJFVAorUE9MQUtPVknEhiBKQU5PxaAKK1BPTEFORUMgRlJBTkpPCitQT0xFIE5JS09MQQorUE9MRSBOSUtPTEEKK1BPTEVESUNBIERVxaBBTktBCitQT0xFTkRFUiBTT0ZJSkEKK1BPTEVSTUFOIEJFTEEKK1BPTEVSTUFOIE1JTElDQQorUE9MRVRBTk9WScSGIE1BUklOS08KK1BPTEVUTyBET01FTklLCitQT0xFVE8gSVZBTgorUE9MR0FSIEnFoFRWQU4KK1BPTEnEhiDEkFVSQQorUE9MScSGIEJPxaBLTworUE9MScSGIERBTklDQQorUE9MScSGIERSQUdBTgorUE9MScSGIExKVUJJQ0EKK1BPTEnEhiBNQVJJSkFOCitQT0xJxIYgU0xPQk9EQU4KK1BPTElNQUMgQU7EkEVMSUpBCitQT0xJTiDEkFVSQQorUE9MSU4gTEFTTE8KK1BPTElOU0tJIEFSQU5LQQorUE9MSkHEjEtJIEFMRUtTQU5EQVIKK1BPTEpBxIxLSSBNSUxJQ0EKK1BPTEpBxIxLSSBNSUxJQ0EKK1BPTEpBxIxLSSBTVkVUT1pBUgorUE9MSkFLIMSQRVLEkAorUE9MSkFLIEVWQQorUE9MSkFLIEZSQU5KTworUE9MSkFLIExBU0xPCitQT0xKQUsgTUnFoEEKK1BPTEpBSyBNSUhBTEoKK1BPTEpBSyBNSUxLQQorUE9MSkFLIE1JT0RSQUcKK1BPTEpBSyBNSU9EUkFHCitQT0xKQUsgTklLT0xBCitQT0xKQUsgTklLT0xBCitQT0xKQUsgUEVUQVIKK1BPTEpBSyBSQU5LTworUE9MSkFLT1ZJxIYgU1RKRVBBTgorUE9MSkFOU0tJIEpPVklDQQorUE9MSkFOU0tJIExKVUJJQ0EKK1BPTEpBTlNLSSBTVE9KQU4KK1BPTEpJxIxBSyBBTlRFCitQT0xKScSMQUsgTEpVQkFOCitQT0xKScSGIFJFRklLCitQT0xKT1ZLQSBKQU4KK1BPTEpWQcWgIEpPxb1FRgorUE9MT0pBQyBMVUtBCitQT0xPVknEhiBLT1NUQQorUE9MT1ZJxIYgU1RFVk8KK1BPTE9WSU5BIMSQT1LEkEUKK1BPTE9WSU5BIERBTklKRUwKK1BPTE9WSU5BIElTQQorUE9MT1ZJTkEgTUlMQU4KK1BPTE9WSU5BIE1JTElDQQorUE9MT1ZJTkEgTUlMT1JBRAorUE9MT1ZJTkEgTkFEQQorUE9MT1ZJTkEgTklLT0xBCitQT0xPVklOQSBQTEVNRU5LQQorUE9MT1ZJTkEgUkFESVZPSkUKK1BPTE9WSU5BIFNMT0JPREFOCitQT0xPVklOQSBTVEVWTworUE9MT1ZJTkEgVE9ET1IKK1BPTE9WSU5BIFZMQURJTUlSCitQT0xPVklOQSBWTEFETworUE9MT1ZJTlNLSSBTQVZBCitQT0xUVVJBIMW9VcW9QU5BCitQT0xUVVJBIEdBQk9SCitQT0xUVVJBIElSRU5BCitQT0xUVVJBIE1JUktPCitQT0xVxb1BTlNLSSBJVkFOS0EKK1BPTFVNSVJBQyBNSUxJQ0EKK1BPTFVUQSBMSU5BCitQT0xWRVJFxb1BTi1PQsWgVVNUIMSGRcSGSUxJSkEKK1BPTFpPVknEhiBBTEVLU0FOREFSCitQT0xaT1ZJxIYgSk9WQU4KK1BPTFpPVknEhiBNSU9NSVIKK1BPTFpPVknEhiBNSVJPU0xBVgorUE9MWk9WScSGIFJBRE9TTEFWCitQT01PUknFoEtJIEJSQU5JU0xBVgorUE9OR08gxb1Vxb1BTkEKK1BPTkdPIEpBTk/FoAorUE9OR08gTEFTTE8KK1BPTkdPIFNURVZBTgorUE9OSkFSQUMgU0FWTworUE9OSkFWScSGIEdPUkRBTkEKK1BPTkpBVknEhiBSQURJU0FWCitQT05KQVZJxIYgU0lOScWgQQorUE9OSkVWScSGIE1PTcSMSUxPCitQT05KRVZJxIYgUEVUQVIKK1BPTkpFVknEhiBTUEFTQU4KK1BPTkpFVknEhiBaVkVaREFOCitQT05KScSMQU4gSE9SSVNMQVYKK1BPTkpJxIxBTiBKQU4KK1BPTkpJxIxBTiBKT1NJUAorUE9OSklHRVIgxJBVUkEKK1BPTkpJR0VSIElWQU4KK1BPTk/EhktPIMSMRURPTUlSCitQT05PUkFDIExBWkFSCitQT1AtSk9WQU5PViBWRVJBCitQT1AgWkRFTktPCitQT1DEkFVSxJBFViBNSUxBTgorUE9QQSBTUEFTRU5JSkEKK1BPUEFEScSGIMW9SVZBTgorUE9QQURJxIYgxb1JVkEKK1BPUEFEScSGIMW9SVZLTworUE9QQURJxIYgxJBPS08KK1BPUEFEScSGIMSQVUtBCitQT1BBREnEhiBCUkFOS0EKK1BPUEFEScSGIEdPSktPCitQT1BBREnEhiBJU0lET1IKK1BPUEFEScSGLUpBTlVaT1ZJxIYgUkFETUlMQQorUE9QQURJxIYgTEpJTEpBTkEKK1BPUEFEScSGIExKVUJJQ0EKK1BPUEFEScSGIExKVUJPCitQT1BBREnEhiBNSUxBTgorUE9QQURJxIYgTUlMRU5LTworUE9QQURJxIYgTUlMRU5LTworUE9QQURJxIYgTUlMRU5LTworUE9QQURJxIYgTUlPRFJBRworUE9QQURJxIYgTkVERUxKS08KK1BPUEFEScSGIE5FR09WQU4KK1BPUEFEScSGIE5JS09MQQorUE9QQURJxIYgTk9WQUsKK1BPUEFEScSGIFBFVEtPCitQT1BBREnEhiBQUkVEUkFHCitQT1BBREnEhiBSQURNSUxBCitQT1BBREnEhiBSQURNSUxBCitQT1BBREnEhiBSQVRPTUlSCitQT1BBREnEhiBTSUxWSUpBCitQT1BBREnEhiBTTEFWS08KK1BPUEFEScSGIFNMQVZPTEpVQgorUE9QQURJxIYgU1RBTkEKK1BPUEFEScSGIFNUT0pJQ0EKK1BPUEFEScSGIFNWRVRMQU5BCitQT1BBREnEhiBUSUhPTUlSCitQT1BBREnEhiBWRVJBCitQT1BBREnEhiBWT0pJU0xBViBBRFZPS0FUCitQT1BBREnEhiBWT0pJU0xBVgorUE9QQVJBIEFMRUtTQU5EQVIKK1BPUEFSQSBJTElKQQorUE9QQVJBIExKVUJJxaBBCitQT1BBUkEgVEFESUpBCitQT1BBUkEgWk9SQU4KK1BPUEFSScSGIMW9SVZPSklOCitQT1BBUknEhiBJU0lET1IKK1BPUEFSScSGIE1BUklDQQorUE9QQVJJxIYgTkVOQUQKK1BPUERBTktPViBKVURJVEEKK1BPUEVKS09WIEJPUklTTEFWCitQT1BFSktPViBMSklMSkFOQQorUE9QRUpLT1YgTUFSQQorUE9QRU5HT1YgVkFTQQorUE9QRVNLVSBSVcW9QQorUE9QR0xJR09SSU4gUEFWTEUKK1BPUEnEhiDFvUVMSktPCitQT1BJxIYgQUxFS1NBTkRBUgorUE9QScSGIEFOxJBFTEtPCitQT1BJxIYgQlJBTktPCitQT1BJxIYgQlVESU1JUgorUE9QScSGIERSQUdBTgorUE9QScSGIERVxaBBTgorUE9QScSGIERVxaBBTgorUE9QScSGIERVxaBBTgorUE9QScSGIEVESVRBCitQT1BJxIYgR09SREFOQQorUE9QScSGIEpFTElTQVZFVEEKK1BPUEnEhiBLQVRJQ0EKK1BPUEnEhiBMSklMSkFOQQorUE9QScSGIExVS0EKK1BPUEnEhiBNSUxBTgorUE9QScSGIE1JTEFOCitQT1BJxIYgTUlMQU4KK1BPUEnEhiBNSUxJQ0EKK1BPUEnEhiBNSUxJVk9KCitQT1BJxIYgTUlSQQorUE9QScSGIE1JUkEKK1BPUEnEhiBNSVJKQU5BCitQT1BJxIYgTkFEQQorUE9QScSGLVBBTEpJxIYgRkVPRE9SQQorUE9QScSGIFJBRElWT0oKK1BPUEnEhiBTQVZBCitQT1BJxIYgU0FWTworUE9QScSGIFNORcW9QU5BCitQT1BJxIYgU09GSUpBCitQT1BJxIYgU09GSUpBCitQT1BJxIYgU1ZFVE9aQVIKK1BPUEnEhiBUT01BCitQT1BJxIYgVlVLSUNBCitQT1BJxIYgWk9SQQorUE9QSU4gSVZBTgorUE9QSU4gUkFESVZPSgorUE9QSU4gVklUT01JUgorUE9QSU4gVkxBRElNSVIKK1BPUElWT0RBIEJPxb1JREFSCitQT1BJVk9EQSBNSUxPVkFOCitQT1BJVk9EQSBNSUxVVElOCitQT1BJVk9EQSBORURFTEpLTworUE9QSVZPREEgUEVUQVIKK1BPUElWT0RBIFJBRElTTEFWCitQT1BNSUhBSkxPViBESU1JVFJJSkUKK1BPUE1JSEFKTE9WIERVxaBBTgorUE9QTk9WQUtPViBEUkFHT01JUgorUE9QTk9WQUtPViBNSUxBTgorUE9QTk9WQUtPViBNSUxJQ0EKK1BPUE9WIMSMRURPTUlSCitQT1BPViDFvUFSS08KK1BPUE9WIMW9QVJLTworUE9QT1Ytxb1JS0VMScSGIFpPUkEKK1BPUE9WIMW9SVZLQQorUE9QT1Ygxb1JVktPCitQT1BPViDFvUlWS08KK1BPUE9WIMW9SVZLTworUE9QT1Ygxb1JVktPCitQT1BPViDFvUlWS08KK1BPUE9WIMW9SVZLTworUE9QT1YgxJBPS0EKK1BPUE9WIMSQT0tBCitQT1BPViDEkE9SxJBFCitQT1BPViDEkE9SxJBFCitQT1BPViDEkE9SxJBFCitQT1BPViDEkE9SxJBFCitQT1BPViDEkE9SxJBFCitQT1BPViDEkE9SxJBFCitQT1BPViDEkFVSxJBJTkEKK1BPUE9WIMSQVVJBCitQT1BPViDEkFVSQQorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQUxFS1NBTkRBUgorUE9QT1YgQU7EkEEKK1BPUE9WIEFORE9OCitQT1BPViBBTktJQ0EKK1BPUE9WLUJBxaBBIFZFUkEKK1BPUE9WIEJPUklWT0ogRElQTCBJTkcKK1BPUE9WIEJSQU5JU0xBVkEKK1BPUE9WIEJSQU5JU0xBVgorUE9QT1YgQlJBTklTTEFWCitQT1BPViBCUkFOSVNMQVYKK1BPUE9WIEJSQU5LTworUE9QT1YgQlJBTktPCitQT1BPViBEQU5JQ0EKK1BPUE9WIERBTklDQQorUE9QT1YgREFOSUxPCitQT1BPViBEQU5JTE8KK1BPUE9WIERBUklOS0EKK1BPUE9WIERJTUlUUklKRQorUE9QT1YgRElNSVRSSUpFCitQT1BPViBEUkFHQU5BCitQT1BPViBEUkFHQU4KK1BPUE9WIERSQUdBTgorUE9QT1YgRFJBR0FOCitQT1BPViBEUkFHQU4KK1BPUE9WIERSQUdBCitQT1BPViBEUkFHScWgQQorUE9QT1YgRFJBR0lDQQorUE9QT1YtRFJBR0lOIE9MR0EKK1BPUE9WIERSQUdPTEpVQgorUE9QT1YgRFJBR09MSlVCCitQT1BPViBEUkFHT0xKVUIKK1BPUE9WIERSQUdPTUlSCitQT1BPViBEUkFHT01JUgorUE9QT1YgRFJBR09NSVIKK1BPUE9WIERSQUdPU0xBVkEKK1BPUE9WIERVxaBBTiBEUgorUE9QT1YgRFXFoEFOCitQT1BPViBEVcWgQU4KK1BPUE9WIERVxaBBTgorUE9QT1YgRFXFoEtBCitQT1BPViBHQVZSQQorUE9QT1YgR09SQU4KK1BPUE9WIEdPUkRBTkEgRFIKK1BPUE9WIEdPUkRBTkEKK1BPUE9WIEdPUkRBTkEKK1BPUE9WIElMT05LQQorUE9QT1YgSVNBCitQT1BPViBJVkFOS0EKK1BPUE9WIElWQU4KK1BPUE9WIElWS0EKK1BPUE9WIEpFTEEKK1BPUE9WIEpFTEEKK1BPUE9WIEpFTElTQVZFVEEKK1BPUE9WIEpFWkRJTUlSCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKVUdPU0xBVgorUE9QT1YgSlVHCitQT1BPViBKVUxLQQorUE9QT1YgS0FUSUNBCitQT1BPViBLQVRJQ0EKK1BPUE9WIEtPU0EKK1BPUE9WIEtPVklOS0EKK1BPUE9WIExBWkFSCitQT1BPViBMQVpBUgorUE9QT1YgTEFaQVIKK1BPUE9WIExBWkFSCitQT1BPViBMRU5LQQorUE9QT1YgTEpJTEpBTkEKK1BPUE9WIExKSUxKQU5BCitQT1BPViBMSlVCScWgQQorUE9QT1YgTEpVQklDQQorUE9QT1YgTEpVQklDQQorUE9QT1YgTEpVQklDQQorUE9QT1YgTEpVQklDQQorUE9QT1YgTEpVQklOS0EKK1BPUE9WIExKVUJPTUlSCitQT1BPViBNQVJBCitQT1BPViBNQVJJQ0EKK1BPUE9WIE1BUklKQQorUE9QT1YgTUFSSUpBCitQT1BPViBNQVJJTktPCitQT1BPViBNQVJLTworUE9QT1YgTUFSS08KK1BPUE9WIE1BUktPCitQT1BPViBNSUxBRElOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMRU5BCitQT1BPViBNSUxFTkEKK1BPUE9WIE1JTEVOS08KK1BPUE9WIE1JTElDQQorUE9QT1YgTUlMSUNBCitQT1BPViBNSUxJQ0EKK1BPUE9WIE1JTElDQQorUE9QT1YgTUlMSVZPSgorUE9QT1YgTUlMSVZPSgorUE9QT1YgTUlMSVZPSgorUE9QT1YgTUlMSVZPSgorUE9QT1YgTUlMS0EKK1BPUE9WIE1JTE/FoAorUE9QT1YgTUlMT8WgCitQT1BPViBNSUxPSkUKK1BPUE9WIE1JTE9SQUQKK1BPUE9WIE1JTE9WQU4KK1BPUE9WIE1JTE9WQU4KK1BPUE9WIE1JTFVUSU4KK1BPUE9WIE1JUkpBTkEKK1BPUE9WIE1JUkpBTkEKK1BPUE9WIE1JUkpBTgorUE9QT1YgTUlST1NMQVYKK1BPUE9WIE1JVEEKK1BPUE9WIE1PTcSMSUxPCitQT1BPViBORURFTEpLTworUE9QT1YgTkVOQVRLQQorUE9QT1YgTklLT0xBCitQT1BPViBOSU5BCitQT1BPViBOSU5PU0xBViBESVBMIElORworUE9QT1YgTk9WQUsKK1BPUE9WIE9CUkFECitQT1BPVi1PQlJPVkHEjEtJIFNPRklKQQorUE9QT1YgT0xHQQorUE9QT1YgUEFKQQorUE9QT1YgUEFWTEUKK1BPUE9WIFBBVkxFCitQT1BPViBQQVZMRQorUE9QT1YgUEVSQQorUE9QT1YgUEVUQVIKK1BPUE9WIFBFVEFSCitQT1BPViBQTEFUT04KK1BPUE9WIFBSRURSQUcKK1BPUE9WIFJBRElWT0pFCitQT1BPViBSQURJVk9KCitQT1BPViBSQURJVk9KCitQT1BPViBSQURJVk9KCitQT1BPViBSQURJVk9KCitQT1BPViBSQURJVk9KCitQT1BPViBSQURNSUxBCitQT1BPViBSQURPSktBCitQT1BPViBSQURPVkFOIERJUEwgSU5HCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQURPVkFOCitQT1BPViBSQVRPTUlSCitQT1BPViBSRUxKQQorUE9QT1YgUk9ET0xKVUIKK1BPUE9WIFNBVkEKK1BPUE9WIFNBVkEKK1BPUE9WIFNBVkEKK1BPUE9WIFNBVkEKK1BPUE9WIFNBVkVUQQorUE9QT1YgU0VLVUxBCitQT1BPViBTSU5JxaBBCitQT1BPViBTTEFWSUNBCitQT1BPViBTTEFWS08KK1BPUE9WIFNMQVZLTworUE9QT1YgU0xBVktPCitQT1BPViBTTE9CT0RBTgorUE9QT1YgU0xPQk9EQU4KK1BPUE9WIFNORcW9QU5BCitQT1BPViBTT0ZJSkEKK1BPUE9WIFNQQVNPSkUKK1BPUE9WIFNSRURPSkUKK1BPUE9WIFNUQU5BCitQT1BPViBTVEVWQU4gRElQTCBJTkcKK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQQorUE9QT1YgU1RFVklDQQorUE9QT1YgU1RPSkFOS0EKK1BPUE9WIFNWRVRMQU5BCitQT1BPViBTVkVUT1pBUgorUE9QT1YgU1ZFVE9aQVIKK1BPUE9WIFRBVE9NSVIKK1BPUE9WIFRPRE9SCitQT1BPViBUUklWQQorUE9QT1YgVVJPxaAKK1BPUE9WIFZBU0lMSUpFCitQT1BPViBWQVNJTElKRQorUE9QT1YgVkFTSUxJSkUKK1BPUE9WIFZFUkEKK1BPUE9WIFZFUkEKK1BPUE9WIFZFUkEKK1BPUE9WIFZFUklDQQorUE9QT1YgVkVTRUxJTgorUE9QT1YgVkxBRElNSVIKK1BPUE9WIFZMQURJTUlSCitQT1BPViBWT0pJTgorUE9QT1YgVk9KSVNMQVYKK1BPUE9WIFZVS09TQVZBCitQT1BPViBaTEFUQQorUE9QT1YgWkxBVElDQQorUE9QT1YgWk9SS0EKK1BPUE9WScSGIMSMQVNMQVYgRElQTCBQUkFWTklLCitQT1BPVknEhiDEjEVET01JUiBESVBMIElORworUE9QT1ZJxIYgxIxFRE9NSVIKK1BPUE9WScSGIMSMRURPTUlSCitQT1BPVknEhiDEjEVET01JUgorUE9QT1ZJxIYtxIxFSk9WScSGIFBBVkxFCitQT1BPVknEhiDFoMSGRVBBTgorUE9QT1ZJxIYgxb1BUktPCitQT1BPVknEhiDFvUFSS08KK1BPUE9WScSGIMW9QVJLTworUE9QT1ZJxIYgxb1FTEpLTworUE9QT1ZJxIYgxb1JVkFOCitQT1BPVknEhiDFvUlWQU4KK1BPUE9WScSGIMW9SVZLTworUE9QT1ZJxIYgxb1JVk9SQUQKK1BPUE9WScSGIMW9VcW9QU5BCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBFCitQT1BPVknEhiDEkE9SxJBJSkUKK1BPUE9WScSGIMSQVVLEkElOQQorUE9QT1ZJxIYgxJBVUsSQSU5BCitQT1BPVknEhiDEkFVSQQorUE9QT1ZJxIYgxJBVUklDQQorUE9QT1ZJxIYgxJBVUk8KK1BPUE9WScSGIMSQVVJPCitQT1BPVknEhiBBS1NFTlRJSkUKK1BPUE9WScSGIEFMRUtTQU5EQVIgRFIgUFJBVk5JSworUE9QT1ZJxIYgQUxFS1NBTkRBUiBEUgorUE9QT1ZJxIYgQUxFS1NBTkRBUgorUE9QT1ZJxIYgQUxFS1NBTkRBUgorUE9QT1ZJxIYgQUxFS1NBTkRBUgorUE9QT1ZJxIYgQUxFS1NBTkRBUgorUE9QT1ZJxIYgQU7EkEVMS0EKK1BPUE9WScSGIEFOxJBFTEtBCitQT1BPVknEhiBBTsSQRUwKK1BPUE9WScSGIEFOQQorUE9QT1ZJxIYgQU5BCitQT1BPVknEhiBBTkdFTElOQQorUE9QT1ZJxIYgQU5HRUxJTkEKK1BPUE9WScSGIEFOR0VMSU5BCitQT1BPVknEhiBBTklDQQorUE9QT1ZJxIYgQkxBR09KRQorUE9QT1ZJxIYgQk/FvUEKK1BPUE9WScSGIEJPxb1JREFSCitQT1BPVknEhiBCT0dEQU4KK1BPUE9WScSGIEJPR0RBTgorUE9QT1ZJxIYgQk9HT0xKVUIKK1BPUE9WScSGIEJPSkFOCitQT1BPVknEhiBCT1JJU0xBVkEKK1BPUE9WScSGIEJPUklTTEFWCitQT1BPVknEhiBCT1JKQU4KK1BPUE9WScSGIEJPUktBCitQT1BPVknEhiBCT1NJTEpLQQorUE9QT1ZJxIYgQlJBTklTTEFWIERSCitQT1BPVknEhiBCUkFOSVNMQVYKK1BPUE9WScSGIEJSQU5JU0xBVgorUE9QT1ZJxIYgQlJBTklTTEFWCitQT1BPVknEhiBCUkFOSVNMQVYKK1BPUE9WScSGIEJSQU5JU0xBVgorUE9QT1ZJxIYgQlJBTklWT0oKK1BPUE9WScSGIEJSQU5JVk9KCitQT1BPVknEhiBCUkFOS0EKK1BPUE9WScSGIEJSQU5LTworUE9QT1ZJxIYgQlJBTktPCitQT1BPVknEhiBCUkFOS08KK1BPUE9WScSGIENWRUpBCitQT1BPVknEhiBEQU7EjElLQQorUE9QT1ZJxIYgREFORQorUE9QT1ZJxIYgREFORQorUE9QT1ZJxIYgREFOSUNBCitQT1BPVknEhiBEQU5JQ0EKK1BPUE9WScSGIERBTklMTworUE9QT1ZJxIYgREFOS0lDQQorUE9QT1ZJxIYgREFSSU5LQQorUE9QT1ZJxIYgREVKQU4KK1BPUE9WScSGIERFU0FOS0EKK1BPUE9WScSGIERFU0EKK1BPUE9WScSGIERJTUlUUklKRQorUE9QT1ZJxIYgRElNSVRSSUpFCitQT1BPVknEhiBESU1JVFJJSkUKK1BPUE9WScSGIERPQlJJTktBCitQT1BPVknEhiBET0JSSU5LQQorUE9QT1ZJxIYgRE9CUklOS08KK1BPUE9WScSGIERPQlJJVk9KCitQT1BPVknEhiBEUkFHQU5BCitQT1BPVknEhiBEUkFHQU4KK1BPUE9WScSGIERSQUdBTgorUE9QT1ZJxIYgRFJBR0FOCitQT1BPVknEhiBEUkFHScWgQSBEUgorUE9QT1ZJxIYgRFJBR0nFoEEKK1BPUE9WScSGIERSQUdJTkpBCitQT1BPVknEhiBEUkFHTyBESVBMIElORworUE9QT1ZJxIYgRFJBR09KTE8KK1BPUE9WScSGIERSQUdPTEpVQgorUE9QT1ZJxIYgRFJBR09MSlVCCitQT1BPVknEhiBEUkFHT0xKVUIKK1BPUE9WScSGIERSQUdPTUlSCitQT1BPVknEhiBEUkFHT01JUgorUE9QT1ZJxIYgRFJBR08KK1BPUE9WScSGIERSQUdPCitQT1BPVknEhiBEUkFHTworUE9QT1ZJxIYgRFJBR1VUSU4KK1BPUE9WScSGIERVxaBBTiBEUgorUE9QT1ZJxIYgRFXFoEFOS0EKK1BPUE9WScSGIERVxaBBTktBCitQT1BPVknEhiBEVcWgQU5LQQorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoElDQQorUE9QT1ZJxIYgRFXFoEtPIERSCitQT1BPVknEhiBFTUlMCitQT1BPVknEhiBGRU9ET1JBCitQT1BPVknEhiBGRU9ET1IKK1BPUE9WScSGIEdPSktPCitQT1BPVknEhiBHT1JBTgorUE9QT1ZJxIYgR09SREFOQQorUE9QT1ZJxIYgSUxFCitQT1BPVknEhiBJTElKQQorUE9QT1ZJxIYgSUxJSkEKK1BPUE9WScSGIElMSUpBCitQT1BPVknEhiBJTElKQQorUE9QT1ZJxIYgSUxJSkEKK1BPUE9WScSGIElSSU5BCitQT1BPVknEhiBJVkFOCitQT1BPVknEhiBJVkFOCitQT1BPVknEhiBJVkFOCitQT1BPVknEhiBJVkFOCitQT1BPVknEhiBJVkFOCitQT1BPVknEhiBKQURSQU5LQQorUE9QT1ZJxIYgSkFOS08KK1BPUE9WScSGIEpBU05BCitQT1BPVknEhiBKRUZUQQorUE9QT1ZJxIYgSkVMRU5BCitQT1BPVknEhiBKRUxFTkEKK1BPUE9WScSGIEpFTEVOQQorUE9QT1ZJxIYgSkVMRU5BCitQT1BPVknEhiBKRUxJU0FWRVRBCitQT1BPVknEhiBKT1ZBTktBCitQT1BPVknEhiBKT1ZBTktBCitQT1BPVknEhiBKT1ZBTktBCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WTworUE9QT1ZJxIYgS0FUQVJJTkEKK1BPUE9WScSGIEtBVElDQQorUE9QT1ZJxIYgS0FUSUNBCitQT1BPVknEhiBLQVRJQ0EKK1BPUE9WScSGIEtPTlNUQU5USU4KK1BPUE9WScSGIEtPU1RBIERSCitQT1BPVknEhiBLT1NUQURJTgorUE9QT1ZJxIYgS09TVEEKK1BPUE9WScSGIEtPU1RBCitQT1BPVknEhiBLUklTVElOQQorUE9QT1ZJxIYgS1JTVEEKK1BPUE9WScSGIEtSU1RPCitQT1BPVknEhiBLU0VOSUpBCitQT1BPVknEhiBMQVpBUiBEUiBMRUtBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMRUxBCitQT1BPVknEhiBMRVBPU0FWQQorUE9QT1ZJxIYgTEpJTEpBTkEgRFIKK1BPUE9WScSGIExKSUxKQU5BCitQT1BPVknEhiBMSklMSkFOQQorUE9QT1ZJxIYgTEpJTEpBTkEKK1BPUE9WScSGIExKSUxKQU5BCitQT1BPVknEhiBMSklMSkFOQQorUE9QT1ZJxIYgTEpVQklDQQorUE9QT1ZJxIYgTEpVQklDQQorUE9QT1ZJxIYgTEpVQklDQQorUE9QT1ZJxIYgTEpVQklDQQorUE9QT1ZJxIYgTEpVQklTQVYKK1BPUE9WScSGIExKVUJPTUlSCitQT1BPVknEhiBMSlVCT01JUgorUE9QT1ZJxIYgTEpVQk9NSVIKK1BPUE9WScSGIExKVUJPTUlSCitQT1BPVknEhiBNQUtTSU0KK1BPUE9WScSGIE1BUkEKK1BPUE9WScSGIE1BUkEKK1BPUE9WScSGIE1BUklKQSBEUgorUE9QT1ZJxIYgTUFSSUpBTkEKK1BPUE9WScSGIE1BUklKQQorUE9QT1ZJxIYgTUFSSUpBCitQT1BPVknEhiBNQVJJSkEKK1BPUE9WScSGIE1BUklKQQorUE9QT1ZJxIYgTUFSSUpBCitQT1BPVknEhiBNQVJJTktPCitQT1BPVknEhiBNQVJLTyBEUiBMRUtBUgorUE9QT1ZJxIYgTUFSS08gTVIgSU5HCitQT1BPVknEhiBNQVJLTworUE9QT1ZJxIYgTUFSS08KK1BPUE9WScSGIE1BUlRBCitQT1BPVknEhiBNRUxBTklKQQorUE9QT1ZJxIYgTUlIQUlMTworUE9QT1ZJxIYgTUlIQUpMTyBEUgorUE9QT1ZJxIYgTUlIQUpMTworUE9QT1ZJxIYgTUlMQU5BCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBCitQT1BPVknEhiBNSUxFTkEKK1BPUE9WScSGIE1JTEVOS08KK1BPUE9WScSGIE1JTEVOS08KK1BPUE9WScSGIE1JTEVOS08KK1BPUE9WScSGIE1JTEVOS08KK1BPUE9WScSGIE1JTEVOS08KK1BPUE9WScSGIE1JTEVUQSBESVBMIElORworUE9QT1ZJxIYgTUlMRQorUE9QT1ZJxIYgTUlMSUNBCitQT1BPVknEhiBNSUxJQ0EKK1BPUE9WScSGIE1JTElKQU4gRFIKK1BPUE9WScSGIE1JTElOS08KK1BPUE9WScSGIE1JTElWT0pFCitQT1BPVknEhiBNSUxLQQorUE9QT1ZJxIYgTUlMT8WgIERJUEwgSU5HCitQT1BPVknEhiBNSUxPxaAKK1BPUE9WScSGIE1JTE/FoAorUE9QT1ZJxIYgTUlMT8WgCitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPUkFECitQT1BPVknEhiBNSUxPU0FWQQorUE9QT1ZJxIYgTUlMT1NBVgorUE9QT1ZJxIYgTUlMT1ZBTgorUE9QT1ZJxIYgTUlMVVRJTgorUE9QT1ZJxIYgTUlPRFJBRworUE9QT1ZJxIYgTUlPRFJBRworUE9QT1ZJxIYgTUlPRFJBRworUE9QT1ZJxIYgTUlPRFJBRworUE9QT1ZJxIYgTUlSQQorUE9QT1ZJxIYgTUlSQQorUE9QT1ZJxIYgTUlSSkFOQQorUE9QT1ZJxIYgTUlSSkFOQQorUE9QT1ZJxIYgTUlSSkFOQQorUE9QT1ZJxIYgTUlSSkFOQQorUE9QT1ZJxIYgTUlSS08KK1BPUE9WScSGIE1JUktPCitQT1BPVknEhiBNSVJLTworUE9QT1ZJxIYgTUlSS08KK1BPUE9WScSGIE1JUktPCitQT1BPVknEhiBNSVJPTEpVQgorUE9QT1ZJxIYgTUlST1NMQVYKK1BPUE9WScSGIE1JUk9TTEFWCitQT1BPVknEhiBNSVJPU0xBVgorUE9QT1ZJxIYgTUlST1NMQVYKK1BPUE9WScSGIE1JVEFSCitQT1BPVknEhiBNSVRBUgorUE9QT1ZJxIYgTUxBREVOCitQT1BPVknEhiBNTEFESU5LTworUE9QT1ZJxIYgTU9NxIxJTE8KK1BPUE9WScSGIE1PTcSMSUxPCitQT1BPVknEhiBNT03EjElMTworUE9QT1ZJxIYgTkFEQQorUE9QT1ZJxIYgTkFEQQorUE9QT1ZJxIYgTkFEQQorUE9QT1ZJxIYgTkFEQQorUE9QT1ZJxIYgTkFEQQorUE9QT1ZJxIYgTkFERcW9REEKK1BPUE9WScSGIE5BREXFvURBCitQT1BPVknEhiBOQURFxb1EQQorUE9QT1ZJxIYgTkFUQUxJSkEKK1BPUE9WScSGIE5FxJBPCitQT1BPVknEhiBORUJPSsWgQQorUE9QT1ZJxIYgTkVERUxKS08KK1BPUE9WScSGIE5FREVMSktPCitQT1BPVknEhiBORU5BRAorUE9QT1ZJxIYgTkVOQUQKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5PVkFLCitQT1BPVknEhiBOT1ZBSworUE9QT1ZJxIYgT0JSQUQKK1BPUE9WScSGIE9CUkFECitQT1BPVknEhiBPTEdBCitQT1BPVknEhiBPTEdBCitQT1BPVknEhiBPTEdBCitQT1BPVknEhiBQQUpBCitQT1BPVknEhiBQQVZMRSBESVBMIFBSQVZOSUsKK1BPUE9WScSGIFBBVkxFCitQT1BPVknEhiBQQVZMRQorUE9QT1ZJxIYgUEFWTEUKK1BPUE9WScSGIFBFUkEKK1BPUE9WScSGIFBFUklDQQorUE9QT1ZJxIYgUEVSTworUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBSQURBCitQT1BPVknEhiBSQURFTktPCitQT1BPVknEhiBSQURFCitQT1BPVknEhiBSQURFCitQT1BPVknEhiBSQURFCitQT1BPVknEhiBSQURJTktBCitQT1BPVknEhiBSQURJVk9KRQorUE9QT1ZJxIYgUkFESVZPSgorUE9QT1ZJxIYgUkFESVZPSgorUE9QT1ZJxIYgUkFETUlMQQorUE9QT1ZJxIYgUkFETUlMQQorUE9QT1ZJxIYgUkFET0lDQQorUE9QT1ZJxIYgUkFET0lDQQorUE9QT1ZJxIYgUkFET0pJQ0EKK1BPUE9WScSGIFJBRE9KS0EKK1BPUE9WScSGIFJBRE9KS0EKK1BPUE9WScSGIFJBRE9NSVIKK1BPUE9WScSGIFJBRE9TQVYKK1BPUE9WScSGIFJBRE9TQVYKK1BPUE9WScSGIFJBRE9TTEFWCitQT1BPVknEhiBSQURPVkFOS0EKK1BPUE9WScSGIFJBRE9WQU5LQQorUE9QT1ZJxIYgUkFET1ZBTgorUE9QT1ZJxIYgUkFEVUwKK1BPUE9WScSGIFJBSktPCitQT1BPVknEhiBSQU5LTworUE9QT1ZJxIYgUkFUS08KK1BPUE9WScSGIFJBVklKT0pMQQorUE9QT1ZJxIYgUkVMSkEgRFIKK1BPUE9WScSGIFJPRE9MSlVCCitQT1BPVknEhiBTQU5KQQorUE9QT1ZJxIYgU0FWQSBESVBMIElORworUE9QT1ZJxIYgU0FWQSBESVBMIElORworUE9QT1ZJxIYgU0FWQQorUE9QT1ZJxIYgU0FWQQorUE9QT1ZJxIYgU0FWQQorUE9QT1ZJxIYgU0FWTworUE9QT1ZJxIYgU0VLVUxBCitQT1BPVknEhiBTSU5JxaBBIERSIExFS0FSCitQT1BPVknEhiBTTEFWSUNBCitQT1BPVknEhiBTTEFWS08gRElQTCBPRUMKK1BPUE9WScSGIFNMQVZLTworUE9QT1ZJxIYgU0xBVktPCitQT1BPVknEhiBTTEFWS08KK1BPUE9WScSGIFNMQVZPTEpVQgorUE9QT1ZJxIYgU0xBVk9MSlVCCitQT1BPVknEhiBTTE9CT0RBTgorUE9QT1ZJxIYgU0xPQk9EQU4KK1BPUE9WScSGIFNMT0JPREFOCitQT1BPVknEhiBTTE9CT0RBTgorUE9QT1ZJxIYgU01JTEpBTkEKK1BPUE9WScSGIFNPRklKQQorUE9QT1ZJxIYgU09GSUpBCitQT1BPVknEhiBTT0ZJSkEKK1BPUE9WScSGIFNPRklKQQorUE9QT1ZJxIYgU09GSUpBCitQT1BPVknEhiBTT05KQQorUE9QT1ZJxIYgU1BBU09KRQorUE9QT1ZJxIYgU1RBTklNSVIKK1BPUE9WScSGIFNUQU5JTUlSCitQT1BPVknEhiBTVEFOS08KK1BPUE9WScSGIFNUQU5LTworUE9QT1ZJxIYgU1RBTktPCitQT1BPVknEhiBTVEVWQU4gRFIKK1BPUE9WScSGIFNURVZBTgorUE9QT1ZJxIYgU1RFVkFOCitQT1BPVknEhiBTVEVWQU4KK1BPUE9WScSGIFNURVZLQQorUE9QT1ZJxIYgU1RFVk8KK1BPUE9WScSGIFNUT0pBTgorUE9QT1ZJxIYgU1ZFVElTTEFWCitQT1BPVknEhiBTVkVUTEFOQQorUE9QT1ZJxIYgU1ZFVE9aQVIKK1BPUE9WScSGIFRFT0RPUgorUE9QT1ZJxIYgVEVSRVpBCitQT1BPVknEhiBUT0RPUgorUE9QT1ZJxIYgVE9NSVNMQVYKK1BPUE9WScSGIFRPTU8KK1BPUE9WScSGIFVHTEpFxaBBCitQT1BPVknEhiBWQVNJTElKRQorUE9QT1ZJxIYgVkFTSUxJSkUKK1BPUE9WScSGIFZFTElNSVIKK1BPUE9WScSGIFZFTElaQVIKK1BPUE9WScSGIFZFTEpLTworUE9QT1ZJxIYgVkVSQQorUE9QT1ZJxIYgVkVSQQorUE9QT1ZJxIYgVkVSQQorUE9QT1ZJxIYgVkVSQQorUE9QT1ZJxIYgVkVSQQorUE9QT1ZJxIYgVkVSSUNBCitQT1BPVknEhiBWRVNFTElOCitQT1BPVknEhiBWSURPSkUKK1BPUE9WScSGIFZJRE9TQVZBCitQT1BPVknEhiBWSUtUT1JJSkEKK1BPUE9WScSGIFZMQURBTgorUE9QT1ZJxIYgVkxBRElNSVIgRFIKK1BPUE9WScSGIFZMQURJTUlSCitQT1BPVknEhiBWTEFESU1JUgorUE9QT1ZJxIYgVkxBRElNSVIKK1BPUE9WScSGIFZMQURJTUlSCitQT1BPVknEhiBWTEFESVNMQVYKK1BPUE9WScSGIFZMQURPCitQT1BPVknEhiBWT0pJTgorUE9QT1ZJxIYgVk9KSU4KK1BPUE9WScSGIFZPSklTTEFWCitQT1BPVknEhiBWVcSMSU5BCitQT1BPVknEhiBWVcSMS08KK1BPUE9WScSGIFZVSkFESU4KK1BPUE9WScSGIFZVS0FESU4KK1BPUE9WScSGIFZVS0FESU4KK1BPUE9WScSGIFZVS09TQVZBCitQT1BPVknEhiBaREVOS08KK1BPUE9WScSGIFpEUkFWS0EKK1BPUE9WScSGIFpMQVRPSkEKK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUktBCitQT1BPVknEhiBaVVpBTkEKK1BPUE9WScSGIFpWT05JTUlSCitQT1BPVklDS0kgxb1BUktPCitQT1BPVklDS0kgQk9SSVNMQVYKK1BPUE9WSUNLSSBKT1ZBTktBCitQT1BPVklDS0kgTEpVQk9NSVIKK1BPUE9WSUNLSSBNSUxFTktPCitQT1BPVklDS0kgTUlMRU5LTworUE9QT1ZJQ0tJIE1JTElDQQorUE9QT1ZJQ0tJIE1JTE/FoAorUE9QT1ZJQ0tJIFBFVEFSCitQT1BPVklDS0kgUkFET01JUgorUE9QT1ZJQ0tJIFJBRE9NSVIKK1BPUE9WSUNLSSBTQUxPTUEKK1BPUE9WSUNLSSBTVkVUSVNMQVYKK1BPUE9WSUNLSSBUQVRKQU5BCitQT1BPVklDS0kgVEVPRE9SCitQT1BPVklDS0kgVkxBRElTTEFWCitQT1BPVklDS0kgWk9SQU4KK1BPUE9WU0tJIFJBRE9KS0EKK1BPUE9WU0tJIFZFTktPCitQT1BSxb1BTiBNSUxBTgorUE9QUsW9QU4gTklLT0xBCitQT1BSxb1BTiBWQUxFTlRJTkEKK1BPUFLFvUVOIEJPUklWT0oKK1BPUFNBVklOIERVxaBBTgorUE9QU0FWSU4gVkVMSU1JUgorUE9QVEXFoElOIMSQT1LEkEUKK1BPUFRFxaBJTiBMQVpBUiBESVBMIFBSQVZOSUsKK1BPUFRFxaBJTiBNSUxBRElOS0EKK1BPUFRFxaBJTiBTVEVWQU4KK1BPUsSMQSBMSklMSkFOQQorUE9SxIxBIFJBTUlaCitQT1JPxaBJTiBEUkFHSU5KQQorUE9ST8WgSU4gR0VPUkdJSkUgRFIgTEVLQVIKK1BPUk9CScSGIE1JTEFOCitQT1JPQknEhiBNSVJPU0xBVgorUE9ST0JJxIYgTUlST1NMQVYKK1BPUk9CScSGIE5JSkFaCitQT1JPQknEhiBOSUtPTEEKK1BPUk9CScSGIFNMT0JPREFOCitQT1JPUEFUIEJPxaBLTworUE9ST1BBVEnEhiBaT1JBCitQT1NBVkFDIFZKRUtPU0xBVgorUE9TTEFOIElWQU4KK1BPU1RPTE9WScSGIFNUQU5JTUlSCitQT1QgRlJBTkpBCitQT1QgSk9TSVAKK1BPVCBNSVJLTyBESVBMIElORworUE9UQUkgTEFESVNMQVYKK1BPVEggTEpVREVWSVQKK1BPVEnEhiBNQVJJSkVMQQorUE9UScSGIFJBRElWT0pFCitQT1RJxIYgUkFET01JUgorUE9US09OSkFLIEpPVkFOCitQT1RLT05KQUsgTUFSQQorUE9US09OSkFLIE5JS09MQQorUE9US09OSkFLIFBFVEFSCitQT1RLT05KQUsgU09GSUpBCitQT1RLT05KQUsgU1RBTktPCitQT1RLT05KQUsgU1RFVk8KK1BPVEtPTkpBSyBWTEFETworUE9US09aQVJBQyBKVUxJSkFOQQorUE9UTkVSIFRFUkVaSUpBCitQT1RPS09WScSGIEFCRFVMQUgKK1BPVE9LT1ZJxIYgU01BSk8KK1BPVFBBUknEhiBKRUxJQ0EKK1BPVFJBTiBNScWgQQorUE9UUkVCScSGIMSQVVJPCitQT1RSRUJJxIYgRE9CUklMQQorUE9UUkVCScSGIERSQUdJQ0EKK1BPVFJFQknEhiBNSUxFCitQT1RSRUJJxIYgTUlMRQorUE9UUkVCScSGIE1JTElDQQorUE9UUkVCScSGIE5JS09MQQorUE9UUkVCScSGIFJBREUKK1BPVFJFQknEhiBTTEFWS08KK1BPVFJFQknEhiBTT0ZJSkEKK1BPVFVSScSGIFNURVZBCitQT1XEjEtJIFJBRElTTEFWCitQT1ZBIE1JUk9TTEFWQQorUE9WQcW9QU4gQU5EUklKQQorUE9WQcW9QU4gTUFSSUpBCitQT1ZBWkFJIEnFoFRWQU4KK1BPVkFaQUkgVElCT1IKK1BPVknEhiBNSUxBTgorUE9WUsW9QU4gU0lNTworUE9aREFOIMSQVVJPCitQT1pERVIgVkVST05BCitQT1pERVJFQyBGUkFOQworUE9aTkFOT1ZJxIYgREVKQU4KK1BPWk5BTk9WScSGIEpFTEVOQQorUE9aTkFOT1ZJxIYgTEpVQk9NSVIKK1BPWk5BTk9WScSGIE1JTEFOCitQT1pOQU5PVknEhiBNSUxBTgorUE9aTkFOT1ZJxIYgTUlMRU5LTworUE9aTkFOT1ZJxIYgT0JSQUQKK1BPWk5BTk9WScSGIFJBRElWT0pFCitQT1pOScSGIMSQVVJPCitQT1pOScSGIEpPVk8KK1BPWk5JxIYgTUlSQQorUE9aTknEhiBOSUtPTEEKK1BPWk9KRVZJxIYgS0xBUkEKK1BPWk9KRVZJxIYgU1RFVkFOCitQUsSMScSGIEpFTElTQVZFVEEKK1BSxIxJxIYgU1RKRVBBTgorUFLEjEnEhiBUSUhPTUlSCitQUsSMScSGIFZMQURJTUlSCitQUsWgQSBNSVJPU0xBViBNUgorUFLFoEEgVkVSQQorUFLEhknEhiBJVkFOCitQUsW9QVIgTkFEQQorUFLFvUVWQUxKU0tJIE5JS09MQQorUFLFvU5JQ0EgTUlMQU5BCitQUsW9TklDQSBaTEFUS08KK1BSQcWgxIxFVknEhiBBTlRPTklKQQorUFJBxaDEjEVWScSGIFpPUklDQQorUFJBxaBUQUxPIE1JTFVUSU4KK1BSQcWgVEFMTyBQRVRBUgorUFJBxb1JxIYgQklMSkFOQQorUFJBxb1JxIYgQlJBTktPCitQUkFDTkVSIEpPU0lQCitQUkFDTkVSIFJVxb1JQ0EKK1BSQUxJQ0EgTEpVQk9NSVIKK1BSQUxJQ0EgTkVERUxKS08KK1BSQUxJQ0EgU1RFVkFOCitQUkFMSUNBIFNURVZBTgorUFJBTUVOS08gTUlST1NMQVYKK1BSQU1FTktPIE5FREVMSktPCitQUkFNRU5LTyBSSVNUTworUFJBTUVOS08gU1JFVE8KK1BSQU5JxIYgS0FUSUNBCitQUkFOScSGIE1JUktPCitQUkFOScSGIFBFVEFSCitQUkFOScSGIFRPRklMCitQUkFOSknEhiBaTEFUS08KK1BSQU5KS0nEhiBNQVJLTworUFJBTktJxIYgTUlMRQorUFJBVkRBIEJPUkJBTEEKK1BSQVZEQSBMQURJU0xBVgorUFJBVkRBIExBSk/FoAorUFJBVklDQSBFVklDQQorUFJBVklDQSBMSlVCT01JUgorUFJEScSGIE5FREVMSktPCitQUkXEjEFOSUNBIEJPxb1PCitQUkXFoEVSTiBKVUxJSkFOQQorUFJFxaBPVkEgTUlSSkFOQQorUFJFQkVHIERSQUdBTgorUFJFQklSxIxFVknEhiBORVZFTkEKK1BSRUJJUkHEjEVWScSGIEtSSVNUSU5BCitQUkVCSVJBxIxFVknEhiBMQVpPCitQUkVEQSBBVVJFTAorUFJFREnEhiBNSUhBSkxPCitQUkVEScSGIFJBRE9NSVIKK1BSRURPSkVWScSGIMW9RUxKS08KK1BSRURPSkVWScSGIEFOS0EKK1BSRURPSkVWScSGIEJPxb1PCitQUkVET0pFVknEhiBCT8W9TworUFJFRE9KRVZJxIYgQk9SSVNMQVYKK1BSRURPSkVWScSGIERBTklDQQorUFJFRE9KRVZJxIYgRFJBR0lDQQorUFJFRE9KRVZJxIYgTEpVQk9NSVIKK1BSRURPSkVWScSGIExVS0EKK1BSRURPSkVWScSGIE1JTEFOCitQUkVET0pFVknEhiBNSUxFCitQUkVET0pFVknEhiBNSUxJQ0EKK1BSRURPSkVWScSGIE1JTE9SQUQKK1BSRURPSkVWScSGIE1JTE9WQU4KK1BSRURPSkVWScSGIE1JUktPCitQUkVET0pFVknEhiBORU5BRAorUFJFRE9KRVZJxIYgUEFWTEUKK1BSRURPSkVWScSGIFBSRURSQUcKK1BSRURPSkVWScSGIFJBRE9TTEFWQQorUFJFRE9KRVZJxIYgU0lNQQorUFJFRE9KRVZJxIYgU0lNTworUFJFRE9KRVZJxIYgU1RPSkFOCitQUkVET0pFVknEhiBUUklWTworUFJFRE9KRVZJxIYgWk9SQQorUFJFRE9MQUMgRFJBR09NSVIKK1BSRURPVknEhiBEVcWgQU4KK1BSRURSQcWgS0kgRFJBR09MSlVCCitQUkVEUkFHT1ZJxIYgQk9SQQorUFJFRFJBR09WScSGIERFU0lNSVIKK1BSRURSQUdPVknEhiBNQVJJSkEKK1BSRURSQUdPVknEhiBOT1ZBSworUFJFRFJBR09WScSGIFZFU0VMS08KK1BSRURSQUdPVknEhiBWRVNOQQorUFJFRFJBR09WScSGIFpWRVpEQU4gRElQTCBJTkcKK1BSRUdVTiDEkFVSQQorUFJFR1VOIE5JS09MQQorUFJFR1VOIFBFVEFSCitQUkVHVU4gU1RFVkFOCitQUkVHVU4gWk9SQQorUFJFS0FKQUMgxb1JVk9KSU4KK1BSRUtBSkFDIFNMQVZLTworUFJFS0FKU0tJIEJSQU5LTworUFJFS0FKU0tJIE1JUkpBTgorUFJFS0nEhiBBTsSQRUxLQQorUFJFS09EUkFWQUMgTkVWRU5LQQorUFJFS09HQcSMScSGIMSQT1LEkEUKK1BSRUtPR0HEjEnEhiBEQU5JQ0EKK1BSRUtPR0HEjEnEhiBJTElKQQorUFJFS09HQcSMScSGIFZFUkEKK1BSRUtPUCBKT8W9RUYKK1BSRUtPUCBSQURPSktBCitQUkVLUEFMSkFKIEJJQkEKK1BSRUtQQUxKQUogS09MSkEKK1BSRUtQQUxKQUogTUFSVElOCitQUkVLUEFMSkFKIFBKRVRFUgorUFJFTCBNQVJJSkEKK1BSRUxFVknEhiBCT1JJU0xBVgorUFJFTEVWScSGIE1BUktPCitQUkVMRVZJxIYgTUlMQU4KK1BSRUxFVknEhiBNSUxPxaAKK1BSRUxFVknEhiBSQURPTUlSCitQUkVMRVZJxIYgU0VOS0EKK1BSRUxFVknEhiBWQVNJTElKRQorUFJFTEnEhiBNSUxPSktBCitQUkVMScSGIFZBU0EKK1BSRUxJxIYgWkFHT1JLQQorUFJFTUnEhiBQRVRBUgorUFJFTUnEhiBWQVNBCitQUkVNT1ZJxIYgREFOSUNBCitQUkVNT1ZJxIYgUkFET01JUgorUFJFTU9WScSGIFRPTUlTTEFWCitQUkVNVcWgIEZSQU5KQQorUFJFTVXFvUnEhiBEQU1JUgorUFJFTVXFvUnEhiBNQVRPCitQUkVNVcW9ScSGIFZMQURJTUlSCitQUkVORE9WScSGIFBBTEpVxaAKK1BSRU5UT1ZJxIYgRFJBR0FOCitQUkVOVE9WScSGIERSQUdBTgorUFJFTlRPVknEhiBNSUxBTgorUFJFTlRPVknEhiBQQVZMRQorUFJFTlRPVknEhiBQRVRBUgorUFJFTlRPVknEhiBSSVNUTworUFJFTlRPVknEhiBWQVNPCitQUkVSQUQgRE9CUklMQQorUFJFUkFET1YgRElOS0EKK1BSRVJBRE9WIERSQUdJQ0EKK1BSRVJBRE9WIERVQlJBVktBCitQUkVSQURPViBHQVZSQQorUFJFUkFET1YgTEFaQVIKK1BSRVJBRE9WIExFUE9TQVZBCitQUkVSQURPViBNQVJJSkEKK1BSRVJBRE9WIE1JUkpBTkEKK1BSRVJBRE9WIE1JUkpBTkEKK1BSRVJBRE9WIE5FREVMSktPCitQUkVSQURPViBQRVRBUgorUFJFUkFET1YgU0FWQQorUFJFUkFET1YgVkVMSVpBUgorUFJFUkFET1YgVkxBRElNSVIKK1BSRVJBRE9WScSGIEFOQQorUFJFUkFET1ZJxIYgQk9KQQorUFJFUkFET1ZJxIYgTUlMRU5LTworUFJFUkFET1ZJxIYgTUxBREVOCitQUkVSQURPVknEhiBORURFTEpLTworUFJFUkFET1ZJxIYgTkVERUxKS08KK1BSRVNFxIxLT1ZJxIYgVkVTTkEKK1BSRVRNRVJTS0kgSk9WQU4KK1BSRVRNRVJTS0kgU1RFVkFOCitQUkVWRURFTiBMRU8KK1BSR09NRUxKQSBOSUtPTEEKK1BSScWgScSGIEtBVElDQQorUFJJxaBJxIYgTEFaQVIKK1BSScWgScSGIExJRElKQQorUFJJxaBJxIYgTUlMT8WgCitQUknFoEnEhiBNSVRBCitQUknFoEnEhiBOQVRBTElKQQorUFJJxaBJxIYgU1RFVkFOCitQUklCQUtPVknEhiBLU0VOSUpBCitQUklCQUtPVknEhiBNSUxBTkEKK1BSSUJBS09WScSGIE5JS09MQQorUFJJQkFOT1ZJxIYgVE9NSVNMQVYKK1BSSUJJxIxFVknEhiBBUlNFTklKRQorUFJJQknEjEVWScSGIFNBVktBCitQUklCScSMRVZJxIYgU1ZFVE9aQVIgRFIgSU5HCitQUklCScWgIFNURVZBTgorUFJJQknFoEVWIE1JUkpBTkEKK1BSSUJJxaBJxIYgTEpVQk8KK1BSSUJJxaBJxIYgTUlST1NMQVYKK1BSSUJJxaBJxIYgUklTVElOSkEKK1BSSUJJxaBJxIYgU0FWTworUFJJQknEhiBBUlNFTklKRQorUFJJQknEhiBEQU5JTE8KK1BSSUJJxIYgRElNSVRSSUpFCitQUklCScSGIE1BUklKQQorUFJJQknEhiBNSUxPSkUKK1BSSUJJxIYgU0FWQQorUFJJQknEhkVWScSGIEpPVk8KK1BSSUJJxIZFVknEhiBPTEdBCitQUklCScSGRVZJxIYgVEFUSkFOQQorUFJJQklMT1ZJxIYgQlJBTktJQ0EKK1BSSUNBIMW9SVZLTworUFJJQ0EgQUxFS1NBTkRBUgorUFJJQ0EgQk9SSVZPSgorUFJJQ0EgQk9TSUxKS0EKK1BSSUNBIERBTklMTworUFJJQ0EgRFXFoEFOCitQUklDQSBJU08KK1BSSUNBIEpPVkFOS0EKK1BSSUNBIE1BUktPCitQUklDQSBNSUxFCitQUklDQSBNTEFERU4KK1BSSUNBIFBFVEFSCitQUklDQSBTT0ZJSkEKK1BSSUpFVknEhiDEkE9SxJBFCitQUklKRVZJxIYgTUlMQU4KK1BSSUpJxIYgTUlMQU4KK1BSSUpJxIYgTUlSU0FECitQUklKT1ZJxIYgQk9HREFOCitQUklKT1ZJxIYgRFJBR0FOCitQUklKT1ZJxIYgU1RBTknFoEEKK1BSSUtFTCBQRVRBUgorUFJJS0lEQU5PVknEjCBMQVNMTworUFJJS0lEQU5PVknEhiBBTkEKK1BSSUxKRVZBIEJPUklTTEFWCitQUklNT1JBQyBOSUtPTEEKK1BSSU1PVknEhiBCTEFHT0pFCitQUklNT1ZJxIYgREVKQU4KK1BSSU1PVknEhiBET0JSSUNBCitQUklNT1ZJxIYgR09SREFOQQorUFJJTU9WScSGIEtPVklOS0EKK1BSSU1PVknEhiBNSUxBTgorUFJJTU9WScSGIFNUT0pBTgorUFJJTkNJUCBKT1pPCitQUklTRUxBQyBCT1JJUworUFJJU0VMQUMgQlJBTktPCitQUklTRUxBQyBaRFJBVktPCitQUklTTEFOIFpWT05JTUlSCitQUklTVEFJIExBRElTTEFWCitQUklWUk9EU0tJIEJPUklTIERSCitQUklWUk9EU0tJIEtPTlNUQU5USU4KK1BSS1XFoEnEhiBBTklDQQorUFJLVcWgScSGIFNMQVZLTworUFJMRVZJxIYgU1RPSkFOCitQUkxJTkFDIFZFTEpLTworUFJMSkVWScSGIE5BREEKK1BST8SMSUtFVknEhiBBTktBCitQUk/FoEnEhiBCT0dEQU4KK1BST8WgScSGIEpPVkFOCitQUk/FoEnEhiBORcSQTworUFJPxaBJxIYgTkXEkE8KK1BST8WgScSGIE5FQk9KxaBBCitQUk/FoEnEhiBOSUtPTEEKK1BST8WgScSGIFBFVEFSCitQUk/FoEnEhiBTTUlMSkEKK1BST0JPSsSMRVZJxIYgQU5UVU4KK1BST0JPSsSMRVZJxIYgRVJORVNUCitQUk9CT0rEjEVWScSGIE1BUklKQQorUFJPQk9KxIxJxIYgQlJBTklTTEFWQQorUFJPREFOQSBLUlNUQU4KK1BST0RBTknEhiBCT1JJU0xBVgorUFJPREFOScSGIE1JTEFOCitQUk9EQU5PViBBTsSQRUxLQQorUFJPREFOT1YgQkxBR09KQQorUFJPREFOT1YgQk9SQQorUFJPREFOT1YgREFOSUxPCitQUk9EQU5PViBEUkFHT0xKVUIKK1BST0RBTk9WIERSQUdPTEpVQgorUFJPREFOT1YgRFJBR09TTEFWCitQUk9EQU5PViBEVcWgQU4KK1BST0RBTk9WIEdPUklDQQorUFJPREFOT1YgSUxJSkEKK1BST0RBTk9WIEpPVkFOCitQUk9EQU5PViBKVVNUSU5BCitQUk9EQU5PViBNSUxBTgorUFJPREFOT1YgTUlMRU5BCitQUk9EQU5PViBNSUxFTktPCitQUk9EQU5PViBNSU9EUkFHCitQUk9EQU5PViBNTEFERU4KK1BST0RBTk9WIE5FREVMSktPCitQUk9EQU5PViBSQURPU0xBVgorUFJPREFOT1YgU0FWQQorUFJPREFOT1YgU0xBVktBIERSCitQUk9EQU5PViBaVVpBTkEKK1BST0RBTk9WScSGIMWgUElSTworUFJPREFOT1ZJxIYgxb1BUktPCitQUk9EQU5PVknEhiDFvUVMSktPCitQUk9EQU5PVknEhiDFvUlWQU4KK1BST0RBTk9WScSGIMW9SVZLQQorUFJPREFOT1ZJxIYgxb1JVktPCitQUk9EQU5PVknEhiDEkE9LQQorUFJPREFOT1ZJxIYgxJBPUsSQRQorUFJPREFOT1ZJxIYgxJBPUsSQRQorUFJPREFOT1ZJxIYgxJBPUsSQRQorUFJPREFOT1ZJxIYgxJBVUk8KK1BST0RBTk9WScSGIEFMRUtTQU5EQVIKK1BST0RBTk9WScSGIEFOxJBFTEtPCitQUk9EQU5PVknEhiBCSUxKQU5BCitQUk9EQU5PVknEhiBCT1JJU0xBVgorUFJPREFOT1ZJxIYgQk9TSUxKS0EKK1BST0RBTk9WScSGIEJSQU5JTUlSCitQUk9EQU5PVknEhiBEQU1KQU4KK1BST0RBTk9WScSGIERBTklDQQorUFJPREFOT1ZJxIYgREFOSUNBCitQUk9EQU5PVknEhiBEQU5JTEtBCitQUk9EQU5PVknEhiBEUkFHQU4KK1BST0RBTk9WScSGIERSQUdBTgorUFJPREFOT1ZJxIYgRFJBR0FOCitQUk9EQU5PVknEhiBEVcWgQU5LQQorUFJPREFOT1ZJxIYgRFXFoEFOCitQUk9EQU5PVknEhiBEVcWgQU4KK1BST0RBTk9WScSGIERVxaBJQ0EKK1BST0RBTk9WScSGIEdBVlJBCitQUk9EQU5PVknEhiBKT1ZBTktBCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBLT1NUQQorUFJPREFOT1ZJxIYgS09TVEEKK1BST0RBTk9WScSGIExBWkFSIERJUEwgSU5HCitQUk9EQU5PVknEhiBMSlVCSUNBCitQUk9EQU5PVknEhiBMSlVCSU5LQQorUFJPREFOT1ZJxIYgTEpVQk9KQQorUFJPREFOT1ZJxIYgTEpVQk9NSVIKK1BST0RBTk9WScSGIE1BUlRBCitQUk9EQU5PVknEhiBNSUxBTgorUFJPREFOT1ZJxIYgTUlMQU4KK1BST0RBTk9WScSGIE1JTEFOCitQUk9EQU5PVknEhiBNSUxBTgorUFJPREFOT1ZJxIYgTUlMSUNBCitQUk9EQU5PVknEhiBNSUxKS08KK1BST0RBTk9WScSGIE1JTE9SQUQKK1BST0RBTk9WScSGIE1JTE9WQU4KK1BST0RBTk9WScSGIE1JT0RSQUcKK1BST0RBTk9WScSGIE1JT0RSQUcKK1BST0RBTk9WScSGIE1JUkEKK1BST0RBTk9WScSGIE1JUkpBTkEKK1BST0RBTk9WScSGIE1JUk9TTEFWCitQUk9EQU5PVknEhiBNTEFERU4KK1BST0RBTk9WScSGIE5JS09MQQorUFJPREFOT1ZJxIYtUEFOSktPVknEhiDEkFVSxJBJTktBCitQUk9EQU5PVknEhiBQQVZBCitQUk9EQU5PVknEhiBQQVZMRQorUFJPREFOT1ZJxIYgUEVUQVIKK1BST0RBTk9WScSGIFBFVEFSCitQUk9EQU5PVknEhiBQRVRBUgorUFJPREFOT1ZJxIYgUkFESVNBVgorUFJPREFOT1ZJxIYgUkFET1NMQVYKK1BST0RBTk9WScSGIFJBVEtPCitQUk9EQU5PVknEhiBST0RPTEpVQgorUFJPREFOT1ZJxIYgU0FWQQorUFJPREFOT1ZJxIYgU0lOScWgQQorUFJPREFOT1ZJxIYgU0lOScWgQQorUFJPREFOT1ZJxIYgU0xBVktPCitQUk9EQU5PVknEhiBTTE9CT0RBTgorUFJPREFOT1ZJxIYgU0xPQk9EQU4KK1BST0RBTk9WScSGIFNUQU5BCitQUk9EQU5PVknEhiBUQU5BU0lKRQorUFJPREFOT1ZJxIYgVkFTQQorUFJPREFOT1ZJxIYgVkFTQQorUFJPREFOT1ZJxIYgVkVMSU5LQQorUFJPREFOT1ZJxIYgVkVMSktPCitQUk9EQU5PVknEhiBWRVJBIERSCitQUk9EQU5PVknEhiBWSURPU0FWQQorUFJPREFOT1ZJxIYgVkxBRElNSVIKK1BST0RBTk9WScSGIFpBR09SS0EKK1BST0RBTk9WScSGIFpBR09SS0EKK1BST0RBTk9WScSGIFpPUkFOCitQUk9EScSGIERBTklDQQorUFJPREnEhiBWSURBCitQUk9EScSGIFZJVE9NSVIKK1BST0RJxIYgVklUT01JUgorUFJPRk9OVEFST1ZJxIYgUk9aQUxJSkEKK1BST0hBU0tBIE1JTEVOS08KK1BST0hBU0tBIE5JS09MQQorUFJPSEFTS0EgU1RFVkFOCitQUk9IQVNLQSBWRVJBCitQUk9KS09WU0tJIERFU1BBCitQUk9LRcWgIEJFTEEKK1BST0tFxaAgTEFESVNMQVYKK1BST0tJxIYgxJBPUsSQRQorUFJPS0nEhiBHT1JBTgorUFJPS0nEhiBNSUxBTgorUFJPS0nEhiBNSVJBCitQUk9LScSGIFJVxb1JQ0EKK1BST0tJxIYgU1RFVkFOCitQUk9LScSGIFNURVZBTgorUFJPS0nEhiBaT1JBTgorUFJPS0nEhiBaT1JBTgorUFJPS0lOIEFOxJBFTEtBCitQUk9LSU4gQlJBTklTTEFWCitQUk9LSU4gS1NFTklKQQorUFJPS0lOIExBWkFSCitQUk9LSU4gTUFSS08KK1BST0tJTiBNSVJBCitQUk9LSU4gUkFESVZPSgorUFJPS0lOIFJVxb1JQ0EKK1BST0tJTiBTVEVWQU4KK1BST0tJTiBTVEVWQU4KK1BST0tJTiBaTEFUSU5LQQorUFJPS0lOIFpPUkEKK1BST0tPUEVDIERVxaBBTgorUFJPS09QRUMgSEVMRU5BCitQUk9LT1BFQyBKRUxJU0FWRVRBCitQUk9LT1BFQyBTVEVWQU4KK1BST0tPUEnEhiDEjEVETworUFJPS09QScSGIE1JSEFKSUxPCitQUk9LT1BJxIYgU1RPSkFOCitQUk9MRSBDVklKTworUFJPTEUgSkFHT0RBCitQUk9MRSBNRUxBTklKQQorUFJPTEUgTUlMRU5LTworUFJPTEUgTUlMSUpBTkEKK1BST0xFIE1JTE/FoAorUFJPTEUgTUlSS08KK1BST0xFIE1JUk9TTEFWCitQUk9MRSBNSVRBUgorUFJPTEUgTUlUQVIKK1BST0xFIE1MQURFTgorUFJPTEUgUkFET1ZBTgorUFJPTEUgUklTVEEKK1BST0xFIFNUQU5JU0xBVgorUFJPTEUgU1RBTktPCitQUk9MRSBVR0xKRcWgQQorUFJPTEUgVkVMSktPCitQUk9MRSBWRVJPTkEKK1BST0xJxIYgRFJBR0lDQQorUFJPTEnEhiBNSUxPUkFECitQUk9MScSGIFBFUk8KK1BST0xJxIYgVklECitQUk9TRU5JQ0EgTUFSS08KK1BST1NFTklDQSBWSURPU0FWQQorUFJPU0VOSUsgRFVCUkFWS08KK1BST1NFTklLIFpWT05JTUlSCitQUk9TVFJBTiDEjEVET01JUgorUFJPU1RSQU4gUEVUQVIKK1BST1RJxIYgxb1BUktPCitQUk9UScSGIMSQT0tBCitQUk9UScSGIMSQT1LEkEUKK1BST1RJxIYgQk9TSUxKS0EKK1BST1RJxIYgQlJBTklTTEFWCitQUk9UScSGIERSQUdBTgorUFJPVEnEhiBEVcWgQU4KK1BST1RJxIYgSUxJSkEgRElQTCBJTkcKK1BST1RJxIYgSk9TSU0KK1BST1RJxIYgTUFSSUpBCitQUk9UScSGIE1JTEVOQSBEUiBTVE9NQVRPTE9HCitQUk9UScSGIE1JTEtBCitQUk9UScSGLU1JTE/FoEVWScSGIFNJTUtBIFBST0YKK1BST1RJxIYgTUlMT8WgCitQUk9UScSGIE1JTE9SQUQKK1BST1RJxIYgTUlSSkFOQQorUFJPVEnEhiBNSVRBUgorUFJPVEnEhiBOQURBCitQUk9UScSGIE9CUkFECitQUk9UScSGIFBSRURSQUcKK1BST1RJxIYgUFVOScWgQQorUFJPVEnEhiBSQURPTUlSCitQUk9UScSGIFNBTVVJTE8KK1BST1RJxIYgU01JTEpBCitQUk9UScSGIFZJREEKK1BST1RJxIYgVklUT01JUgorUFJPVsSMSSBBR0FGSUpBCitQUk9WxIxJIEVWR0VOSUpFIERJUEwgSU5HCitQUk9WxIxJIEpPVkdFTgorUFJPVsSMSSBWRVJBCitQUlBBIEFOxJBBCitQUlBBIEdPU1BBCitQUlBBIExBWkFSCitQUlBBIE1BUkdJVEEKK1BSUEEgTUlMT1ZBTgorUFJQQSBWRUxKS08KK1BSUEEgWkFHT1JLQQorUFJQScSGIEFMRUtTQU5EQVIKK1BSUEnEhiBBTEVLU0FOREFSCitQUlBJxIYgQUxFS1NBTkRBUgorUFJQScSGIE1BUklKQU5BCitQUlBJxIYgTklLT0xBCitQUlBJxIYgUkFET1ZBTgorUFJTS0FMTyBCTEFHTworUFJTVE9KRVZJxIYgR09SQU4KK1BSU1RPSkVWScSGIFZPSklTTEFWCitQUlRJTkEgQlJBTktPCitQUlXFvUFSRVYgVEFUSkFOQQorUFJVREFOLcSQVVJJxaBJxIYgUkFET0pLQSBEUgorUFJVR0nEhiBMSlVCT01JUgorUFJVR0nEhiBWT0pJU0xBVgorUFJVR0lOScSGIExKVUJJQ0EKK1BSVU5JxIYgSk9WQU4KK1BSVVNJTkEgRFJBR08KK1BSVVNJTkEgSUxJSkEKK1BSVVNJTkEgTUFSR0lUQQorUFJVU0lOQSBNSUxBTgorUFJVU0lOQSBWTEFUS08KK1BSVkFOT1YgQlJBTklTTEFWCitQUlZBTk9WIERBUklOS0EKK1BSVkFOT1YgRElWTkEKK1BSVkFOT1YgTUlMT8WgCitQUlZBTk9WIFZMQURJTUlSCitQUlZBTk9WScSGIE1JTEVWQQorUFNPREFST1YgQlJBTktPCitQU09ET1JPViBNQUpBCitQU09ET1JPViBTUEFTT0pFCitQU09ET1JPViBUQU1BUkEKK1BUScSMQVIgxJBVUkEKK1BUScSMQVIgTUlMQU4KK1BVxaBBQyBCUkFOS08KK1BVxaBBQyBKRUxFTktPCitQVcWgQUMgTUlMRU5BCitQVcWgQUMgTUlMRU5BCitQVcWgQVJBIMSQT1LEkEUKK1BVxaBBUkEgQk/FvUlEQVIKK1BVxaBBUkEgRFXFoEFOCitQVcWgQVJBIEpFTEVOQQorUFXFoEFSQSBNSUxJVk9KCitQVcWgQVJBIE1JUktPCitQVcWgQVJBIE1JUk9TTEFWCitQVcWgQVJBIFJBRE1JTEEKK1BVxaBFTEpJxIYgSkVMRU5BCitQVcWgRU5KQUsgTUFSSUpBCitQVcWgScSGIERSQUdPTEpVQgorUFXFoEnEhiBEVcWgQU4KK1BVxaBJxIYgRU1JTAorUFXFoEnEhiBHT1JBTgorUFXFoEnEhiBKT1ZBTgorUFXFoEnEhiBMSlVCSU5LTworUFXFoEnEhiBNSUxFTkEKK1BVxaBJxIYgTUlMSUNBCitQVcWgScSGIE1JTElWT0oKK1BVxaBJxIYgTUlMT8WgCitQVcWgScSGIE5JS09MQQorUFXFoEnEhiBPQlJBRAorUFXFoEnEhiBQQVZMRQorUFXFoEnEhiBTQVZBCitQVcWgScSGIFNBVkEKK1BVxaBJxIYgU09GSUpBCitQVcWgScSGIFNURVZBTgorUFXFoEnEhiBWRVJJQ0EKK1BVxaBJxIYgVkVSSUNBCitQVcWgScSGIFpBR09SS0EKK1BVxaBJQlJLIENWRVRLTworUFXFoElCUksgVkFTQQorUFXFoElOIE1JUkpBTkEKK1BVxaBJTiBNSVJPU0xBVgorUFXFoElOIE1JUk9TTEFWCitQVcWgSU4gVkxBREEKK1BVxaBLQcWgIMSQVVJBCitQVcWgS0HFoCDEkFVSQQorUFXFoEtBxaAgQ0lMQQorUFXFoEtBxaAgSk/FvUVGCitQVcWgS0HFoCBKT0FLSU0KK1BVxaBLQcWgIEpVTElKQU4KK1BVxaBLQcWgIE1JSEFKTE8KK1BVxaBLQcWgIE1JTEVOQQorUFXFoEtBxaAgTUlST1NMQVYKK1BVxaBLQcWgIE9MRU5BCitQVcWgS0HFoCBPTlVGUklKRQorUFXFoEtBxaAgUEVUQVIKK1BVxaBLQcWgIFJPWkFMSUpBCitQVcWgS0HFoCBTVEVWQU4KK1BVxaBLQcWgIFZFUkEKK1BVxaBLQcWgIFZMQURJTUlSCitQVcWgS0HFoCBWTEFESU1JUgorUFXFoEtBUiBKT1ZJQ0EKK1BVxaBLQVIgU1RFVkEKK1BVxaBLQVIgVk9KSVNMQVYKK1BVxaBLQVJFVknEhiBKT1ZBTktBCitQVcWgS0FSRVZJxIYgU1ZFVElTTEFWCitQVcWgS0FSScSGIEFOQQorUFXFoEtBUknEhiBJVkFOCitQVcWgS0FSScSGIEpVUkUKK1BVxaBLQVJJxIYgTUFSSUpBCitQVcWgS0FST1YgREFOSUxLQQorUFXFoEtBUk9WIERBTklMS0EKK1BVxaBLQVJPViBNSUxBTgorUFXFoEtBUk9WIFpPUkEKK1BVxaBLT1ZJxIYgQU7EkEVMS08KK1BVxaBUUknEhiBNSUxBTgorUFXFoFRSScSGIFNQQVNPSkUKK1BVxb0tRVZJxIYgT0xHQQorUFXFvUnEhiBWRVJBCitQVcSQQSBMRVBPU0FWQQorUFVBxIwgU1ZFVElTTEFWCitQVUHEjCBTVkVUT1pBUgorUFVBxIxBIFZFTEpLTyBEUgorUFVDQVIgxJBVUk8KK1BVQ0FSIERVxaBBTgorUFVDQVIgTUlMSUNBCitQVUNBUiBTVEVWTworUFVDQVIgVkFTSUxJSkUKK1BVQ0FSIFZBU08KK1BVQ0FSIFpEUkFWS08KK1BVQ0FSRVZJxIYgxb1JVktPCitQVUNBUkVWScSGIEJPU0lMSktBCitQVUNBUkVWScSGIEdPSktPCitQVUNBUkVWScSGIEhJTERBCitQVUNBUkVWScSGIEpFTEEKK1BVQ0FSRVZJxIYgTk9WQUsKK1BVQ0FSRVZJxIYgU09GSUpBCitQVUNPVlNLSSDEkFVSTworUFVEQVIgREFOSUxPCitQVURBUiBHT0pLTworUFVEQVIgUkFKS08KK1BVREFSIFJBTktPCitQVURBUiBSQU5LTworUFVEQVIgUkFOS08KK1BVREFSIFJBVEtPCitQVURBUiBTTE9CT0RBTgorUFVEQVIgU1RFVkFOCitQVURBUiBaRFJBVktPCitQVURJxIYgSUxJSkEKK1BVREnEhiBKT1pBCitQVURSTEpBIEJSQU5LTworUFVHQVIgQU7EkEVMS0EKK1BVSEHEjEEgU1RFVk8KK1BVSEFMQUsgQkVSVEEKK1BVSEFMQUsgTEFTTE8gRFIgTEVLQVIKK1BVSEFMQUsgU1RFVkFOCitQVUhBTiBPU0tBUgorUFVIQU5JxIYgVEVSRVpBCitQVUhBUiBEVcWgQU4KK1BVSEFSIEZSQU5DCitQVUnEhiDEkE9SxJBFCitQVUnEhiBSQURPU0xBVgorUFVKQSBGTE9SSU4KK1BVSknEhiBNSUxJVk9KCitQVUpJxIYgTUlMT8WgCitQVUpJxIYgTkFERcW9REEKK1BVSknEhiBQRVJTSURBIERJUEwgSU5HCitQVUpJxIYgU0FWQQorUFVKScSGIFNURVZBTgorUFVKSU4gTEFaQQorUFVKSU4gUkFERQorUFVKSU4gUkFESVZPSkUKK1BVSklOIFNURVZBTgorUFVKSU4gVkxBU1RBIERSCitQVUxBSSBMQUpPxaAKK1BVTEVUScSGIFpEUkFWS08KK1BVTEnEhiBBTlRPTklKQQorUFVMScSGIE9MR0EKK1BVTEnEhiBSQURPSktBCitQVUxJU0FLIEZSQU5KQQorUFVMSVNBSyBJTE9OS0EKK1BVTElTQUsgSk9WQU4KK1BVTElTQUsgTUlIQUpMTworUFVMSVNBSyBOQURFxb1EQQorUFVMSVNBSyBOSUtPTEEKK1BVTEpJWkVWScSGIEFOVFVOIERJUEwgSU5HCitQVU5ET1YgQU5EUkVKCitQVU5HVUwgSk9WSUNBCitQVU5HVUwgTUlSQQorUFVQQVZBQyDEkE9SxJBFCitQVVBBVkFDIEJSQU5LTworUFVQQVZBQyBCUkFOS08KK1BVUEFWQUMgRlJBTkpBCitQVVBBVkFDIE1JTEFOCitQVVBBVkFDIFBFVEFSCitQVVBBVkFDIFNUQUtBCitQVVBBVkFDIFNURVZBTgorUFVQQVZBQyBTVE9KQU4KK1BVUEFWQUMgVE9ET1IKK1BVUEFWQUMgVkVTTkEKK1BVUEnEhiBSQURNSUxBCitQVVBJTiDFvUlWQU4KK1BVUE9WQUMgRE1JVEFSCitQVVBPVkFDIERVxaBBTgorUFVQT1ZBQyBMVUtBCitQVVBPVkFDIE1JTE/FoAorUFVQT1ZBQyBNSUxPxaAKK1BVUE9WQUMgU1ZFVExBTkEKK1BVUE9WQUMgVE9ET1IKK1BVUE9WScSGIExKVUJPTUlSCitQVVJBxIYgxb1JVktPCitQVVJBxIYgQlJBTktPCitQVVJBxIYgRVLFvUVCRVQKK1BVUkHEhiBKT1ZBTgorUFVSQcSGIExBWkFSCitQVVJBxIYgTUFHREEKK1BVUkHEhiBNSUxBRElOCitQVVJBxIYgTUlMQURJTgorUFVSQcSGIE1JTEVOS08KK1BVUkHEhiBNSVJPU0xBVgorUFVSQcSGIE5BREEKK1BVUkHEhiBPTEdBCitQVVJJxaBJxIYgxIxFRE8KK1BVUknFoEnEhiBTVkVUTEFOQQorUFVSScSGIEJMQU5LQQorUFVSScSGIEJPxb1PCitQVVJJxIYgRElKQU5BCitQVVJJxIYgRFJBR0FOCitQVVJJxIYgRFJBR0lDQQorUFVSScSGIE1JTEFOCitQVVJJxIYgU0xPQk9EQU4KK1BVUknEhiBaT1JBCitQVVJLT1YgVkVTRUxJTgorUFVSS09WScSGIExKSUxKQU5BCitQVVJUScSGIE5JS09MQQorUFVTVEFJIElNUkUKK1BVU1RBSSBKRU5FCitQVVNUQUpJxIYgQlJBTktBCitQVVNUQUpJxIYgUkFEQQorUFVTVEFKScSGIFZVS0lDQQorUFVTVEkgSk9TSVAKK1BVVEFSScSGIEpPVkFOCitQVVRJxIYgxb1JVkFOQQorUFVUScSGIEtBVElDQQorUFVUScSGIExJVklKQQorUFVUScSGIFNMT0JPREFOCitQVVRJxIYgU1ZFVElTTEFWCitQVVRJxIYgWk9SQU4KK1BVVE5JSyBBTEVLU0FOREFSCitQVVROSUsgQUxFS1NBTkRBUgorUFVUTklLIEJPUklTTEFWCitQVVROSUsgQlJBTktPCitQVVROSUsgREFOSUxLQQorUFVUTklLIERJTUlUUklKRQorUFVUTklLIEdFUlRSVURBCitQVVROSUsgR09SQU4KK1BVVE5JSyBJVkFOCitQVVROSUsgSkVMRU5BCitQVVROSUsgS0FUSUNBCitQVVROSUsgS1NFTklKQQorUFVUTklLIExKVUJJQ0EKK1BVVE5JSyBNSUxBTgorUFVUTklLIE1JTEFOCitQVVROSUsgTUlMRU5BCitQVVROSUsgTUlMT1JBRAorUFVUTklLIE5FVkVOS0EKK1BVVE5JSyBQQUpPCitQVVROSUsgUEVUQVIKK1BVVE5JSyBQRVRBUgorUFVUTklLIFJBREUKK1BVVE5JSyBSQURPTUlSCitQVVROSUsgUkFET1ZBTgorUFVUTklLIFNMT0JPREFOIERJUEwgSU5HCitQVVROSUsgU05Fxb1BTkEKK1BVVE5JSyBTVEVGQU5JSkEKK1BVVE5JSyBTVEVWQU4KK1BVVE5JSyBTVEVWQU4KK1BVVE5JSy1VUkHEjCBSRU5BVEEKK1BVVE5JSyBWTEFESU1JUiBEUgorUFVUTklLIFZMQURJTUlSCitQVVROSUsgWk9SQU4KK1BVVE5JS09WScSGIElWQU4KK1BVVE5JS09WScSGIE1JTEVOQQorUFVUTklLT1ZJxIYgUElST8WgS0EKK1BVVkHEjEEgTEpJTEpBTkEKK1BVVkFMScSGIEtBVElDQQorUFVaScSGIEJJTEpBTkEKK1BVWknEhiBCT8WgS08KK1BVWknEhiBCT1NBCitQVVpJxIYgRFJBR09NSVIKK1BVWknEhiBTQVZBCitQVVpJxIYgVkVMSktPCitQVVpJR0HEhkEgS1JJU1RJTkEKK1JBxIxJxIYgQVJBTsSQRUwKK1JBxIxJxIYgTEVQT1NBVkEKK1JBxIxJxIYgTUlMT8WgCitSQcSMScSGIE1JUk9TTEFWCitSQcSMScSGIE5BREEKK1JBxIxJxIYgUkFOS08KK1JBxIxJxIYgU0HFoEEKK1JBxIxJxIYtU0FWSU4gWk9SSUNBCitSQcSMScSGIFNUT0pBTgorUkHEjEnEhiBUT01JU0xBVgorUkHEjEnEhiBWRVJBCitSQcSMScSGIFpEUkFWS08KK1JBxaDEjEFOSU4gQlJBTklTTEFWCitSQcWgxIxBTklOIEJSQU5JU0xBVgorUkHFoMSMScSGIE5FSFJVCitSQcWgQSBET0pOQQorUkHFoEFKU0tJIERVxaBBTgorUkHFoEFKU0tJIFZFUk9TTEFWCitSQcWgRVRBIERBTkUKK1JBxaBFVEEgTUlPRFJBRworUkHFoEVUQSBNSVJKQU5BCitSQcWgRVRBIE5JS09MQQorUkHFoEVUQSBQRVRBUgorUkHFoEVUQSBTVEVWQQorUkHFoEVUQSBUT01BCitSQcWgRVRBIFpEUkFWS08KK1JBxaBFVknEhiDFvUFSS08KK1JBxaBFVknEhiDFvUVMSktPCitSQcWgRVZJxIYgTUlPRFJBRworUkHFoEnEhiBCT8W9SURBUiBEUgorUkHFoEnEhiBESU1JVFJJSkUKK1JBxaBJxIYgRFXFoElDQQorUkHFoEnEhiBJQk9KS0EKK1JBxaBJxIYgSUdOSkFUCitSQcWgScSGIElMSUpBCitSQcWgScSGLUtPUMSMT0sgTkFEQQorUkHFoEnEhiBMQVpBUgorUkHFoEnEhiBNQU5EQQorUkHFoEnEhiBNQVJJSkEKK1JBxaBJxIYgTkFERcW9REEKK1JBxaBJxIYgTklLT0xBCitSQcWgScSGIFBBVU4KK1JBxaBJxIYgUEVUQVIgTVIgSU5HCitSQcWgScSGIFNNSUxKQQorUkHFoEnEhiBTVE9KQU4KK1JBxaBJxIYgVVJPxaAKK1JBxaBJxIYgVkVTTkEKK1JBxaBJREkgRE9ST1RFSkEKK1JBxaBJREkgU0xPQk9EQU5LQQorUkHFoElKT1ZBTiBSQURNSUxBCitSQcWgSVRJIEJBSlJBTQorUkHFoElUSSBIQVZBCitSQcWgSVRJIElNRVIKK1JBxaBLT1YgQlJBTktPCitSQcWgS09WIEJSQU5LTworUkHFoEtPViBEQU5JQ0EKK1JBxaBLT1YgTUFSSUpBCitSQcWgS09WIFNNSUxKS0EKK1JBxaBLT1ZJxIYgxJBPUsSQRQorUkHFoEtPVknEhiDEkE9SxJBFCitSQcWgS09WScSGIERBUklOS0EKK1JBxaBLT1ZJxIYgRFJBR0FOCitSQcWgS09WScSGIERSQUdPTEpVQgorUkHFoEtPVknEhiBEUkFHT1NMQVZBCitSQcWgS09WScSGIEdPUkRBTkEKK1JBxaBLT1ZJxIYgTUlMQU4KK1JBxaBLT1ZJxIYgTUlMSUNBCitSQcWgS09WScSGIE1JT0RSQUcKK1JBxaBLT1ZJxIYgTUlSSkFOQQorUkHFoEtPVknEhiBNSVJKQU5BCitSQcWgS09WScSGIE1MQURFTgorUkHFoEtPVknEhiBSQURPU0FWCitSQcWgS09WScSGIFNMT0JPREFOCitSQcWgS09WScSGIFNSRcSGS08KK1JBxaBLT1ZJxIYgU1RFVkFOCitSQcWgS09WScSGIFZFUkEKK1JBxaBLT1ZJxIYgVkxBRElNSVIKK1JBxaBPVknEhiBSQURPVkFOCitSQcWgT1ZJxIYgVk9KSVNMQVYKK1JBxb1OQVRPVknEhiBSQURJVk9KCitSQcSQRUxJxIYgR09SREFOQQorUkHEkEVMScSGIE1JTEFOCitSQcSQRU5PVknEhiDFvUVMSktPCitSQcSQRU5PVknEhiDFvUVMSktPCitSQcSQRU5PVknEhiBCT8W9TworUkHEkEVOT1ZJxIYgQk9SSVMKK1JBxJBFTk9WScSGIEJPU0EKK1JBxJBFTk9WScSGIEJSQU5LTworUkHEkEVOT1ZJxIYgRFJBR0EKK1JBxJBFTk9WScSGIERVxaBBTgorUkHEkEVOT1ZJxIYgRFXFoEFOCitSQcSQRU5PVknEhiBLQVJMTworUkHEkEVOT1ZJxIYgTUFORQorUkHEkEVOT1ZJxIYgTUlMQU5LTworUkHEkEVOT1ZJxIYgTUlMRVZBCitSQcSQRU5PVknEhiBNSUxLQQorUkHEkEVOT1ZJxIYgTUlMS0EKK1JBxJBFTk9WScSGIE5FQk9KxaBBCitSQcSQRU5PVknEhiBOSUtPTEEKK1JBxJBFTk9WScSGIFNPRklKQQorUkHEkEVOT1ZJxIYgVVJPxaAKK1JBxJBFTk9WScSGIFZFTEpLTworUkHEkEVOT1ZJxIYgWk9SSUNBCitSQcSQRVZJxIYgU0FWTworUkFCQUTFvUlKRVZTS0kgUEFVTEEKK1JBQkFUScSGIE1JTE/FoAorUkFCSSBKT8W9RUYKK1JBQklKQUMgU1JCQQorUkFCUkVOT1ZJxIYgTUFSSUpBCitSQUJSRU5PVknEhiBSQURJU0FWCitSQUJSRU5PVknEhiBaTEFUSU5LQQorUkFDIMWgQU5ET1IKK1JBQyBBTEJFUlQKK1JBQyBBTkEKK1JBQyBCUlVOTworUkFDIEVETVVORAorUkFDIEZFUkVOQworUkFDIEZFUkVOQworUkFDIEZSQU5KQQorUkFDIEdBQlJJSkVMCitSQUMgSkFOT8WgCitSQUMgSkVMSVNBVkVUQQorUkFDIEpPVkFOCitSQUMgTEpJTEpBTkEKK1JBQyBMSlVCT01JUgorUkFDIE1BUklKQQorUkFDIE1BUklKQQorUkFDIE1FTEFOSUpBCitSQUMgUEFMCitSQUMgUlVET0xGCitSQUMtU0FCTyBMQUpPxaAKK1JBQyBTVEVWQU4KK1JBQyBURU9ET1IKK1JBQyBWTEFESU1JUgorUkFDIFpMQVRBCitSQUNBIMSQVVJPCitSQUNBIERSQUdBTgorUkFDQSBEUkFHQU4KK1JBQ0EgRFJBR0FOCitSQUNBIERVxaBBTgorUkFDQSBHT1JEQU5BIERSCitSQUNBIE1JUktPCitSQUNBIFBFVEFSCitSQUNBIFJVxb1JQ0EKK1JBQ0nEhiDEjEVET01JUgorUkFDScSGIEJSQU5LTworUkFDScSGIERVxaBBTgorUkFDScSGIE1JTEFOCitSQUNJxIYgTUlMRU5LTworUkFDScSGIE1JTElDQQorUkFDScSGIE1JTElDQQorUkFDScSGIE1JTE9SQUQKK1JBQ0nEhiBNSVJKQU5BCitSQUNJxIYgTkVERUxKS08KK1JBQ0nEhiBSQURFTktPCitSQUNJxIYgU0xPQk9EQU4KK1JBQ0nEhiBTTE9CT0RBTgorUkFDScSGIFZFTEpLTworUkFDScSGIFpEUkFWS08KK1JBQ0nEhiBaRFJBVktPCitSQUNJxIYgWk9SQU4KK1JBQ0tPViBEQVJJTktBCitSQUNLT1YgRFJBR09TTEFWCitSQUNLT1YgS0FUSUNBCitSQUNLT1YgTEFaQVIKK1JBQ0tPViBNSUxJQ0EKK1JBQ0tPViBNSUxJVk9KCitSQUNLT1YgTUlMT8WgCitSQUNLT1YgTUlST1NMQVYKK1JBQ0tPViBNSVJPU0xBVgorUkFDS09WIE5BVEHFoEEKK1JBQ0tPViBPTEdBCitSQUNLT1YgUkFET0pLQQorUkFDS09WIFJBRE9NSVIKK1JBQ0tPViBSQURPU0xBVgorUkFDS09WIFNBVkEKK1JBQ0tPViBTTE9CT0RBTgorUkFDS09WIFNSxJBBTgorUkFDS09WIFNSxJBBTgorUkFDS09WIFNSxJBBTgorUkFDS09WIFpMQVRJQ0EKK1JBQ0tPVknEhiDEkE9SxJBFCitSQUNLT1ZJxIYgRFJBR09NSVIKK1JBQ0tPVknEhiBEVcWgQU4KK1JBQ0tPVknEhiBMQVpBUgorUkFDS09WScSGIE1JTEFOCitSQUNLT1ZJxIYgTUlMT8WgCitSQUNLT1ZJxIYgTUlSSkFOQQorUkFDTEVSIMSQRVLEkAorUkFDTEVSIE1BUkdJVAorUkFDTyBNScSGTworUkFDTyBSQVRLTworUkFEIFBSRURSQUcKK1JBREHFoElOIEVMVklSQQorUkFEQcWgSU4gVkxBRElNSVIKK1JBREHFoElOIFpWRVpEQU4KK1JBREFLIMSQT1LEkEUKK1JBREFLIMSQVVJJQ0EKK1JBREFLIERVxaBBTgorUkFEQUsgRFXFoEFOCitSQURBSyBHQVZSQQorUkFEQUsgSkVMSVNBVkVUQQorUkFEQUsgSk9WQU5LQQorUkFEQUsgSk9WQU4KK1JBREFLIEtPVklOS0EKK1JBREFLIExBWkFSCitSQURBSyBMQVpBUgorUkFEQUsgTEpVQklDQQorUkFEQUsgTEpVQklDQQorUkFEQUsgTFVLQQorUkFEQUsgTUlMQURJTktBCitSQURBSyBNSVJPU0xBVgorUkFEQUsgT0xHQQorUkFEQUsgUkFETUlMQQorUkFEQUsgU0xBVktPCitSQURBSyBaT1JBCitSQURBS09WScSGIMW9SVZBTgorUkFEQUtPVknEhiDEkE9SxJBFCitSQURBS09WScSGIMSQT1LEkEUKK1JBREFLT1ZJxIYgxJBVUkHEkAorUkFEQUtPVknEhiBBTEVLU0FOREFSCitSQURBS09WScSGIEFOQSBEUgorUkFEQUtPVknEhiBCUkFOS08KK1JBREFLT1ZJxIYgQlJBTktPCitSQURBS09WScSGIEJSQU5LTworUkFEQUtPVknEhiBEQU1KQU4KK1JBREFLT1ZJxIYgREFSS0EKK1JBREFLT1ZJxIYgRElNSVRSSUpFCitSQURBS09WScSGIERVxaBBTgorUkFEQUtPVknEhiBEVcWgQU4KK1JBREFLT1ZJxIYgSUxJSkEKK1JBREFLT1ZJxIYgSUxJSkEKK1JBREFLT1ZJxIYgSkVMRU5BCitSQURBS09WScSGIEpPVkFOCitSQURBS09WScSGIEpPVkFOCitSQURBS09WScSGIEpPVkFOCitSQURBS09WScSGIEpPVkFOCitSQURBS09WScSGIExBWk8KK1JBREFLT1ZJxIYgTEpJTEpBTkEKK1JBREFLT1ZJxIYgTUFOREEKK1JBREFLT1ZJxIYgTUFORQorUkFEQUtPVknEhiBNSUxBTktPCitSQURBS09WScSGIE1JTEFOCitSQURBS09WScSGIE1JTEVOQQorUkFEQUtPVknEhiBNSUxFCitSQURBS09WScSGIE1JTEUKK1JBREFLT1ZJxIYgTUlMT0pLQQorUkFEQUtPVknEhiBNSUxPUkFECitSQURBS09WScSGIE1JUk9TTEFWCitSQURBS09WScSGIE5FTkFECitSQURBS09WScSGIFBFVEFSCitSQURBS09WScSGIFJBREUKK1JBREFLT1ZJxIYgUkFERQorUkFEQUtPVknEhiBSQUpLTworUkFEQUtPVknEhiBSVcW9SUNBCitSQURBS09WScSGIFNBVkEKK1JBREFLT1ZJxIYgU01JTEpLQQorUkFEQUtPVknEhiBURU9ET1JBCitSQURBS09WScSGIFZMQURJTUlSCitSQURBS09WScSGIFZMQURJU0xBVgorUkFEQU4gVkVMSU1JUgorUkFEQU5PViBCSUxKQU5BCitSQURBTk9WIERSQUdPTUlSCitSQURBTk9WIERVxaBBTgorUkFEQU5PViBHT1NQQVZBCitSQURBTk9WIExKVUJPTUlSIEFEVk9LQVQKK1JBREFOT1YgTEpVQk9NSVIKK1JBREFOT1YgTUlST1NMQVZBCitSQURBTk9WIE5JS09MQQorUkFEQU5PViBPTElWRVJBCitSQURBTk9WIFJBRElOS0EKK1JBREFOT1YgUkFESVZPSgorUkFEQU5PViBSQURPU0xBVgorUkFEQU5PViBWRVJJQ0EKK1JBREFOT1ZJxIYgxb1FTEpLTworUkFEQU5PVknEhiDEkE9SxJBFCitSQURBTk9WScSGIMSQT1LEkEUKK1JBREFOT1ZJxIYgxJBVS0EKK1JBREFOT1ZJxIYgQUxFS1NBTkRBUgorUkFEQU5PVknEhiBBTsSQRUxLTworUkFEQU5PVknEhiBCT8W9SURBUgorUkFEQU5PVknEhiBESU1JVFJJSkUKK1JBREFOT1ZJxIYgRFJBR0FOCitSQURBTk9WScSGIERSQUdJQ0EKK1JBREFOT1ZJxIYgRFJBR09NSVIKK1JBREFOT1ZJxIYgRFJBR09NSVIKK1JBREFOT1ZJxIYgRFJBR1VUSU4KK1JBREFOT1ZJxIYgR09KS08KK1JBREFOT1ZJxIYgSUxJSkEKK1JBREFOT1ZJxIYgSk9WQU5LQQorUkFEQU5PVknEhiBKT1ZBTgorUkFEQU5PVknEhiBKT1ZBTgorUkFEQU5PVknEhiBKT1ZBTgorUkFEQU5PVknEhiBLQVRBCitSQURBTk9WScSGIEtPVklMSktBCitSQURBTk9WScSGIExKVUJPCitSQURBTk9WScSGIE1BUklKQQorUkFEQU5PVknEhiBNSUxBTktPCitSQURBTk9WScSGIE1JTEFOCitSQURBTk9WScSGIE1JTEFOCitSQURBTk9WScSGIE1JTEFOCitSQURBTk9WScSGIE1JTEVOS08KK1JBREFOT1ZJxIYgTUlMT8WgCitSQURBTk9WScSGIE1JT0RSQUcKK1JBREFOT1ZJxIYgTUlPRFJBRworUkFEQU5PVknEhiBORVZFTktBCitSQURBTk9WScSGIE5JS09MQQorUkFEQU5PVknEhiBOSUtPTEEKK1JBREFOT1ZJxIYgT0JSQUQKK1JBREFOT1ZJxIYgUEVUQVIKK1JBREFOT1ZJxIYgUEVUQVIKK1JBREFOT1ZJxIYgUkFESVZPSgorUkFEQU5PVknEhiBSQURPVkFOS0EKK1JBREFOT1ZJxIYgUkFET1ZBTgorUkFEQU5PVknEhiBSQUpLTworUkFEQU5PVknEhiBTQcWgQQorUkFEQU5PVknEhiBTQVZBCitSQURBTk9WScSGIFNPRklKQQorUkFEQU5PVknEhiBTT0ZJSkEKK1JBREFOT1ZJxIYgU1JFVEVOCitSQURBTk9WScSGIFRSScWgQQorUkFEQU5PVknEhiBWSVRPTUlSCitSQURBVCBNQVJLTworUkFEQVRPVknEhiBNQVJJSkEKK1JBREVLIEFORFJBxaAKK1JBREVLIE1BUklKQQorUkFERUtBIMWgVEVGS0EKK1JBREVLQSBEVcWgS08KK1JBREVLQSBKT1ZBTgorUkFERUtBIE1JTEUKK1JBREVLQSBNSUxLQQorUkFERUtBIE5JS09MQQorUkFERUtBIFJBRE9WQU4KK1JBREVLSU4gTEpVQklDQQorUkFERUxJxIYgTUlMQU4KK1JBREVOxIxJxIYgSk9TSVAKK1JBREVOS09WScSGIMSMRURPTUlSCitSQURFTktPVknEhiDFvUlWT0pJTgorUkFERU5LT1ZJxIYgQkxBxb1BCitSQURFTktPVknEhiBEUkFHQU4KK1JBREVOS09WScSGIExFUE9TQVZBCitSQURFTktPVknEhiBMSlVCScWgQQorUkFERU5LT1ZJxIYgTUlMSVZPSkUKK1JBREVOS09WScSGIE1JTE9WQU4KK1JBREVOS09WScSGIE1JTE9WQU4KK1JBREVOS09WScSGIE1JT0RSQUcKK1JBREVOS09WScSGIE5BREEKK1JBREVOS09WScSGIFJBRE9NSVIKK1JBREVOS09WScSGIFJBRE9TTEFWQQorUkFERU5LT1ZJxIYgUkFUT01JUgorUkFERU5LT1ZJxIYgUk9aQUxJSkEKK1JBREVOS09WScSGIFNMT0JPREFOCitSQURFTktPVknEhiBUT01JU0xBVgorUkFERU5LT1ZJxIYgVklUT01JUgorUkFERU5LT1ZJxIYgVkpFUkEKK1JBREVOT1ZJxIYgT0JSRU4KK1JBREVUQSBTTEFWS08KK1JBREVUQSBTVkVUT1pBUgorUkFERVRJxIYgQk/FoEtPCitSQURFVEnEhiBCUkFOS08KK1JBREVUScSGIEdPUkFOCitSQURFVEnEhiBSQURPTUlSCitSQURFVEnEhiBWT0pJU0xBVgorUkFERVZJxIYgxJBPUsSQRQorUkFERVZJxIYgR09SQU4KK1JBREVWScSGIElWQU4KK1JBREVWScSGIE1JTEVWQQorUkFERVZJxIYgTUlMT8WgCitSQURFVknEhiBWT0pJTUlSCitSQURJxIxFViBKRUxJQ0EKK1JBREnEjEVWIE1BUklKQSBEUgorUkFEScSMRVZJxIYgUkFETUlMQQorUkFEScSMRVZJxIYgU0FWQQorUkFEScSMRVZJxIYgWk9SQU4KK1JBREnEjEnEhiBTTUlMSkFOQQorUkFEScWgScSGIMW9SVZLTworUkFEScWgScSGIMSQT1LEkEUKK1JBREnFoEnEhiBBTsSQRUxLQQorUkFEScWgScSGIEJJTEpBTkEKK1JBREnFoEnEhiBCT1JJU0xBVgorUkFEScWgScSGIEJPUklTTEFWCitSQURJxaBJxIYgQlJBTklTTEFWCitSQURJxaBJxIYgQlJBTktBCitSQURJxaBJxIYgQlJBTktPCitSQURJxaBJxIYgRFJBR0nFoEEKK1JBREnFoEnEhiBEUkFHVVRJTgorUkFEScWgScSGIERVxaBBTgorUkFEScWgScSGIERVxaBJQ0EKK1JBREnFoEnEhiBJTElKQQorUkFEScWgScSGIEpFRlRBCitSQURJxaBJxIYgSkVMRU5BCitSQURJxaBJxIYgSk9WQU4KK1JBREnFoEnEhiBKT1ZPCitSQURJxaBJxIYgS0FUSUNBCitSQURJxaBJxIYgTEFaQVIKK1JBREnFoEnEhiBMQVpBUgorUkFEScWgScSGIExBWkFSCitSQURJxaBJxIYgTEpJTEpBTkEKK1JBREnFoEnEhiBMSlVCSUNBCitSQURJxaBJxIYgTUFSS08KK1JBREnFoEnEhiBNSUxBTgorUkFEScWgScSGIE1JTEVOQQorUkFEScWgScSGIE1JTEVOS08KK1JBREnFoEnEhiBNSUxJQ0EKK1JBREnFoEnEhiBNSUxJSkFOQQorUkFEScWgScSGIE1JTFVUSU4KK1JBREnFoEnEhiBNSVJPU0xBVkEKK1JBREnFoEnEhiBNTEFERU4KK1JBREnFoEnEhiBORU5BCitSQURJxaBJxIYgTklLT0xBCitSQURJxaBJxIYgT0JSQURJTgorUkFEScWgScSGIE9MSVZFUkEKK1JBREnFoEnEhiBQRVJJQ0EKK1JBREnFoEnEhiBQRVJPCitSQURJxaBJxIYgUEVSU0EKK1JBREnFoEnEhiBQRVRBUgorUkFEScWgScSGIFJBRElWT0oKK1JBREnFoEnEhiBSQURNSUxBCitSQURJxaBJxIYgUkFET0pLQQorUkFEScWgScSGIFNBVkVUQQorUkFEScWgScSGIFNMT0JPREFOCitSQURJxaBJxIYgU1RBTk9KRQorUkFEScWgScSGIFNURVZBTgorUkFEScWgScSGIFNURVZBTgorUkFEScWgScSGIFNWRVRPWkFSCitSQURJxaBJxIYgVE9ET1IKK1JBREnFoEnEhiBWTEFESU1JUgorUkFEScWgScSGIFZMQURJTUlSCitSQURJxaBJxIYgWk9SQU4KK1JBREnEhiDEjEVEQQorUkFEScSGIMW9RUxKS08KK1JBREnEhiDFvUlWQU4KK1JBREnEhiDEkE9SxJBFCitSQURJxIYgxJBPUsSQRQorUkFEScSGIEFOxJBBCitSQURJxIYgQU7EkEVMS08KK1JBREnEhiBBTkRSSUpBIERSCitSQURJxIYgQU5HRUxJTkEKK1JBREnEhiBBTktJQ0EKK1JBREnEhiBBTlRFCitSQURJxIYgQk/FoEtPCitSQURJxIYgQlJBTktBCitSQURJxIYgRE9CUklWT0pFCitSQURJxIYgRFJBR09MSlVCCitSQURJxIYgRFXFoEFOCitSQURJxIYgRFXFoEFOCitSQURJxIYgRlJBTkpBCitSQURJxIYgRlJBTkpPCitSQURJxIYgR09KS08KK1JBREnEhiBIUkFOSVNMQVYKK1JBREnEhiBJTElKQQorUkFEScSGIElMSUpBCitSQURJxIYgSVZBTktBCitSQURJxIYgSk9TSVAKK1JBREnEhiBKT1ZBTgorUkFEScSGIExBWkFSCitSQURJxIYgTEpVQklDQQorUkFEScSGIExKVUJPTUlSCitSQURJxIYgTUFSSUpBCitSQURJxIYgTUlKQQorUkFEScSGIE1JTEFOS08KK1JBREnEhiBNSUxBTgorUkFEScSGIE1JTEFOCitSQURJxIYgTUlMRQorUkFEScSGIE1JTElWT0oKK1JBREnEhiBNSUxJVk9KCitSQURJxIYgTUlMS0EKK1JBREnEhiBNSUxVVElOIERJUEwgSU5HCitSQURJxIYgTUlSSkFOQQorUkFEScSGIE1JUktPCitSQURJxIYgTUxBREVOCitSQURJxIYgTkVERUxKS08KK1JBREnEhiBORU5BRAorUkFEScSGIFBBVkxFCitSQURJxIYgUEVUQVIKK1JBREnEhiBQRVRBUgorUkFEScSGIFBFVEFSCitSQURJxIYgUEVUQVIKK1JBREnEhiBQRVRBUgorUkFEScSGLVBPUE9WScSGIEdPUkRBTkEKK1JBREnEhiBQUkVEUkFHCitSQURJxIYgUkFEQQorUkFEScSGIFJBREUKK1JBREnEhiBST0JFUlQKK1JBREnEhiBTQVZBCitSQURJxIYgU0xBVknFoEEKK1JBREnEhiBTTEFWS08KK1JBREnEhiBTT0ZJSkEKK1JBREnEhiBTVEFOS08KK1JBREnEhiBTVEVWQU4KK1JBREnEhiBTVEVWQU4KK1JBREnEhiBTVE9KQU4KK1JBREnEhiBUSUhPTUlSCitSQURJxIYgVFJJVkEKK1JBREnEhiBWRUxJTktBCitSQURJxIYgVkxBRElNSVIKK1JBREnEhiBaRFJBVktPCitSQURJxIYgWk9SQU4KK1JBREnEhiBaT1JBCitSQURJxIYgWk9SSUNBCitSQURJQlJBVE9WScSGIE1JTElDQQorUkFESUJSQVRPVknEhiBNT03EjElMTworUkFESUpFTEpBQyBKRUxFTkEKK1JBRElKRUxKQUMgTU9NxIxJTE8KK1JBRElOIMW9SVZBTgorUkFESU4gQUxFS1NBTkRBUgorUkFESU4gQU5UT05JSkEKK1JBRElOIEJSQU5JU0xBVgorUkFESU4gQlJBTklTTEFWCitSQURJTiBCUkFOS08KK1JBRElOIERSQUdPSkxBCitSQURJTiBIUklTVElOQQorUkFESU4gSVZBTktBCitSQURJTiBKT1ZBTktBCitSQURJTiBMQVpBUgorUkFESU4gTEpVQk9NSVIgRFIgTEVLQVIKK1JBRElOIExKVUJPTUlSCitSQURJTiBNQUtTSU1JTElKQU4KK1JBRElOIE1BUkEKK1JBRElOIE1JTEFESU5LQQorUkFESU4gTUlMQU4KK1JBRElOIE1JTEFOCitSQURJTiBNSUxBTgorUkFESU4gTUlMQU4KK1JBRElOIE1JTEFOCitSQURJTiBNSUxFTkEKK1JBRElOIE1JTEtBCitSQURJTiBNSVJBCitSQURJTiBNSVJPU0xBVgorUkFESU4gTUxBREVOCitSQURJTiBOQURBCitSQURJTiBOSUtPTEEgRElQTCBJTkcKK1JBRElOIFBFVEFSIERSCitSQURJTiBSQURBCitSQURJTiBSQURPU0xBVgorUkFESU4gU0xBVklOS0EKK1JBRElOIFNMQVZLTworUkFESU4gU1RFVkFOCitSQURJTiBTVEVWQU4KK1JBRElOIFNWRVRJU0xBVgorUkFESU4gVE9NSVNMQVYKK1JBRElOIFZFU0VMSU4KK1JBRElOIFZMQURJTUlSCitSQURJTiBaTEFUT0pFCitSQURJTiBaT1JBTktBCitSQURJTiBaT1JBCitSQURJTk9WScSGIMSQT1LEkEUKK1JBRElOT1ZJxIYgQlVESU1JUgorUkFESU5PVknEhiBESU1JVFJJSkUKK1JBRElOT1ZJxIYgRFXFoEtPCitSQURJTk9WScSGIElMSUpBCitSQURJTk9WScSGIExBWk8KK1JBRElOT1ZJxIYgTUFOT0pMTworUkFESU5PVknEhiBNQVJJSkEKK1JBRElOT1ZJxIYgTUlMSUNBCitSQURJTk9WScSGIE1JTElWT0oKK1JBRElOT1ZJxIYgTUlMT1JBRAorUkFESU5PVknEhiBNSVJBCitSQURJTk9WScSGIE1MQURFTgorUkFESU5PVknEhiBNT03EjElMTyBESVBMIFBSQVZOSUsKK1JBRElOT1ZJxIYgTU9NxIxJTE8KK1JBRElOT1ZJxIYgTklLT0xBCitSQURJTk9WScSGIFJBRE9TTEFWCitSQURJTk9WScSGIFNJTFZBTkEKK1JBRElOT1ZJxIYgU1RFVkFOCitSQURJTk9WScSGIFZVS0HFoElOCitSQURJU0FWTEpFVknEhiDFvUlWT1JBRAorUkFESVNBVkxKRVZJxIYgQk9HREFOCitSQURJU0FWTEpFVknEhiBCT1JJVk9KRQorUkFESVNBVkxKRVZJxIYgSVZBTgorUkFESVNBVkxKRVZJxIYgTUlMT1NBVgorUkFESVNBVkxKRVZJxIYgU0xBVklDQQorUkFESVNBVkxKRVZJxIYgU1RBTknFoEEKK1JBRElTQVZMSkVWScSGIFpPUklDQSBEUgorUkFESVZPSsWgQSBNSUxPxaAKK1JBRElWT0rFoEEgU01JTEpBCitSQURJVk9KQUMgRE9CUklMQQorUkFESVZPSkFDIERSQUdBCitSQURJVk9KQUMgRFJBR09MSlVCCitSQURJVk9KQUMgSk9WQU4KK1JBRElWT0pBQyBOQVRBTElKQQorUkFESVZPSkVWIFJBRElOS0EKK1JBRElWT0pFVknEhiBBTsSQRUxLTworUkFESVZPSkVWScSGIEJPR09MSlVCCitSQURJVk9KRVZJxIYgQlJBTklTTEFWCitSQURJVk9KRVZJxIYgQlJBTktPCitSQURJVk9KRVZJxIYgQlJBVElNSVIKK1JBRElWT0pFVknEhiBEUkFHQU4gTVIKK1JBRElWT0pFVknEhiBEUkFHScWgQQorUkFESVZPSkVWScSGIERSQUdPTUlSCitSQURJVk9KRVZJxIYgRFJBR09TTEFWCitSQURJVk9KRVZJxIYgRFXFoEFOIERJUEwgT0VDCitSQURJVk9KRVZJxIYgRFXFoEFOS0EKK1JBRElWT0pFVknEhiBJREEKK1JBRElWT0pFVknEhiBKQU5LTworUkFESVZPSkVWScSGIEpFTEEKK1JBRElWT0pFVknEhiBKT1ZBTktBCitSQURJVk9KRVZJxIYgSk9WQU4KK1JBRElWT0pFVknEhiBMSlVCSUNBCitSQURJVk9KRVZJxIYgTEpVQk9EUkFHCitSQURJVk9KRVZJxIYgTEpVQk9NSVIKK1JBRElWT0pFVknEhiBMSlVCT01JUgorUkFESVZPSkVWScSGIExVS0EKK1JBRElWT0pFVknEhiBMVUtBCitSQURJVk9KRVZJxIYgTUlMQU4KK1JBRElWT0pFVknEhiBNSUxBCitSQURJVk9KRVZJxIYgTUlMRQorUkFESVZPSkVWScSGIE1JTElWT0pFCitSQURJVk9KRVZJxIYgTUlMT01JUgorUkFESVZPSkVWScSGIE1JUkpBTkEKK1JBRElWT0pFVknEhiBNTEFERU4KK1JBRElWT0pFVknEhiBNT03EjElMTworUkFESVZPSkVWScSGIE5FxJBPCitSQURJVk9KRVZJxIYgTkVNQU5KQQorUkFESVZPSkVWScSGIE5JS09MQQorUkFESVZPSkVWScSGIFBBVkxFCitSQURJVk9KRVZJxIYgUkFEScWgQQorUkFESVZPSkVWScSGIFJBRElWT0pFCitSQURJVk9KRVZJxIYgUkFET8WgCitSQURJVk9KRVZJxIYgUkFUS08KK1JBRElWT0pFVknEhiBTSU5JxaBBCitSQURJVk9KRVZJxIYgU0xPQk9EQU4KK1JBRElWT0pFVknEhiBTTE9CT0RBTgorUkFESVZPSkVWScSGIFNMT0JPREFOCitSQURJVk9KRVZJxIYgU0xPQk9EQU4KK1JBRElWT0pFVknEhiBTVEVWQU4KK1JBRElWT0pFVknEhiBTVE9KQURJTgorUkFESVZPSkVWScSGIFRPTUlTTEFWCitSQURJVk9KRVZJxIYgVFVHT01JUgorUkFESVZPSkVWScSGIFZFUkEKK1JBRElWT0pFVknEhiBWSURBCitSQURJVk9KRVZJxIYgVklEQQorUkFESVZPSkVWScSGIFZVS0lDQQorUkFESVZPSkVWScSGIFpPUkFOCitSQURJVk9KRVZJxIYgWk9SQU4KK1JBRElWT0pLT1YgxJBPUsSQRQorUkFESVZPSktPViBKRUxJQ0EKK1JBRElWT0pLT1YgTUlSSkFOQQorUkFESVZPSktPViBSQUpLTworUkFESVZPSktPViBTQVZBCitSQURJVk9KS09WIFNURVZBTgorUkFETE9WQcSMS0kgRE9CUklOS0EKK1JBRExPVkHEjEtJIFNJTknFoEEKK1JBRExPVknEhiBNSUxLQQorUkFETUFOIMWgSU1VTgorUkFETUFOIMWgUElSTworUkFETUFOIElWQU4KK1JBRE1BTiBMRVBPU0FWQQorUkFETUFOIE1JTEFOCitSQURNQU4gTUlMRQorUkFETUFOIE1JTElDQQorUkFETUFOIE1JTE9WQU4KK1JBRE1BTiBNSVJPU0xBVgorUkFETUFOScSGIEVWSUNBCitSQURNQU5PVkFDIE1JTE9WQU4KK1JBRE1BTk9WScSGIERSQUdJQ0EKK1JBRE1BTk9WScSGIERVxaBBTktBCitSQURNQU5PVknEhiBNSUxVVElOCitSQURNSUxPIMSQVVJPCitSQURNSUxPIE1BUklKQQorUkFETUlMTyBNSVJLTworUkFETUlMT1ZJxIYgRFXFoEFOS0EKK1JBRE1JTE9WScSGIE1JTEFOCitSQURNSUxPVknEhiBNSUxPxaAKK1JBRE1JTE9WScSGIE1JUk9TTEFWCitSQURNSUxPVknEhiBORURFTEpLTworUkFETUlMT1ZJxIYgUkFERSBQUk9GRVNPUgorUkFETUlMT1ZJxIYgU0xBVk9MSlVCCitSQURNSUxPVknEhiBTVEVWTworUkFETknEhiBET0JSSU5LQQorUkFETk9WIEFMRUtTQQorUkFETk9WIExFTktBCitSQUROT1YgUkFESVZPSgorUkFETk9WIFJBSktPCitSQUROT1YgWk9SS0EKK1JBRE5PVknEhiBEUkFHQU4KK1JBRE5PVknEhiBPTEdJQ0EKK1JBRE5PVknEhiBSQURPVkFOCitSQUROT1ZJxIYgVVJPxaAKK1JBRE5PVknEhiBVUk/FoAorUkFET8SMQUogRFXFoEFOS0EKK1JBRE/EjEFKIElMSUpBCitSQURPxIxBSiBNQVJBCitSQURPxIxBSiBNSUxLQQorUkFET8SMQUogTkVERUxKS0EKK1JBRE/EjEFKIFNBVktBCitSQURPxaAgQk9SSVNMQVYKK1JBRE/FoCBEQU5JQ0EKK1JBRE/FoCBEUkVOS0EKK1JBRE/FoCBNQVJUQQorUkFET8WgIE1JTEFOCitSQURPxaAgUlXFvUEKK1JBRE/FoCBWT0pJU0xBVgorUkFET8WgIFpPUkEKK1JBRE/FoEVWScSGLcWgVElNQUMgTEpVQklDQQorUkFET8WgRVZJxIYgxJBPUsSQRQorUkFET8WgRVZJxIYgQU7EkEVMS0EKK1JBRE/FoEVWScSGIEFOSUNBCitSQURPxaBFVknEhiBBTklDQQorUkFET8WgRVZJxIYgQk/FvUlEQVIKK1JBRE/FoEVWScSGIEJPxb1PCitSQURPxaBFVknEhiBCUkFOSVNMQVYKK1JBRE/FoEVWScSGIEJSQU5LTworUkFET8WgRVZJxIYgREVTQU5LQQorUkFET8WgRVZJxIYgRFXFoElDQQorUkFET8WgRVZJxIYgSkVMSVNBVkVUQQorUkFET8WgRVZJxIYgSk9WQU5LQQorUkFET8WgRVZJxIYgSk9WQU4KK1JBRE/FoEVWScSGIEpPVkFOCitSQURPxaBFVknEhiBMSklMSkFOQQorUkFET8WgRVZJxIYgTEpVQklDQQorUkFET8WgRVZJxIYgTUlMRU5BCitSQURPxaBFVknEhiBNSUxFTkEKK1JBRE/FoEVWScSGIE1JTElWT0oKK1JBRE/FoEVWScSGIE1JTE/FoAorUkFET8WgRVZJxIYgTUlMVVRJTgorUkFET8WgRVZJxIYgTUlPRFJBRworUkFET8WgRVZJxIYgTUlSSkFOQQorUkFET8WgRVZJxIYgTUlST1NMQVZBCitSQURPxaBFVknEhiBNSVRBUgorUkFET8WgRVZJxIYgTklLT0xBCitSQURPxaBFVknEhiBPTElWRVJBCitSQURPxaBFVknEhiBSQURFCitSQURPxaBFVknEhiBSQURJVk9KCitSQURPxaBFVknEhiBSQURNSUxBCitSQURPxaBFVknEhiBSQURPVkFOCitSQURPxaBFVknEhiBSQURPVkFOCitSQURPxaBFVknEhiBST0RPTEpVQgorUkFET8WgRVZJxIYgU1RBTklDQQorUkFET8WgRVZJxIYgVEVSRVpBCitSQURPxaBFVknEhiBWTEFESU1JUgorUkFET8WgRVZJxIYgWkRSQVZLTworUkFET0MgRlJBTkpBCitSQURPQy1TSU1JxIYgU09GSUpBCitSQURPScSMScSGIE1JTE/FoAorUkFET0nEjEtJIEJSQU5JU0xBVgorUkFET0rEjEVWScSGIE1JTE/FoAorUkFET0rEjEnEhiBCT8W9QSBESVBMIElORworUkFET0rEjEnEhiBCT8W9SURBUgorUkFET0rEjEnEhiBCT8W9SURBUgorUkFET0rEjEnEhiBEQU5JQ0EKK1JBRE9KxIxJxIYgREFSSU5LQQorUkFET0rEjEnEhiBEUkFHQU5BCitSQURPSsSMScSGIERSQUdPTUlSCitSQURPSsSMScSGIERSQUdPCitSQURPSsSMScSGIERVxaBLTworUkFET0rEjEnEhiBHT0pLTworUkFET0rEjEnEhiBJUkVOQQorUkFET0rEjEnEhiBJVkFOCitSQURPSsSMScSGIElWQU4KK1JBRE9KxIxJxIYgSVZBTgorUkFET0rEjEnEhiBMSklKQU5BCitSQURPSsSMScSGIExKSUxKQU5BCitSQURPSsSMScSGIE1JTEFESU4KK1JBRE9KxIxJxIYgTUlMQU4KK1JBRE9KxIxJxIYgTUlMRU5LTworUkFET0rEjEnEhiBNSUxJQ0EKK1JBRE9KxIxJxIYgTUlMT1JBRAorUkFET0rEjEnEhiBNSUxVVElOCitSQURPSsSMScSGIE1JT0RSQUcKK1JBRE9KxIxJxIYgTUlUQVIKK1JBRE9KxIxJxIYgTkFESUNBCitSQURPSsSMScSGIE5FTkFECitSQURPSsSMScSGLU9CRVJLTkXFvUVWIE1JUkpBTkEKK1JBRE9KxIxJxIYgUEFWTEUKK1JBRE9KxIxJxIYgU0FWQQorUkFET0rEjEnEhiBTUkVURU4KK1JBRE9KxIxJxIYgU1RFVkFOCitSQURPSsSMScSGIFZJVE9NSVIKK1JBRE9KxIxJxIYgVkxBREFOCitSQURPSsSMScSGIFZPSklTTEFWCitSQURPSsSMSU4gxJBPUsSQRQorUkFET0rEjElOIEFOSUNBCitSQURPSsSMSU4gRE9CUklMQQorUkFET0rEjElOIERVxaBJQ0EKK1JBRE9KxIxJTiBFVklDQQorUkFET0rEjElOIEpVTEtBCitSQURPSsSMSU4gTUFSQQorUkFET0rEjElOIE1BUlRBCitSQURPSsSMSU4gTUlMQU4KK1JBRE9KxIxJTiBNSUxLQQorUkFET0rEjElOIE1JTE/FoAorUkFET0rEjElOIE1JTE9WQU4KK1JBRE9KxIxJTiBNSVJKQU5BCitSQURPSsSMSU4gUkFETUlMQQorUkFET0rEjElOIFJBRE9KS0EKK1JBRE9KxIxJTiBSQURPVkFOCitSQURPSsSMSU4gU0xPQk9EQU4KK1JBRE9KxIxJTiBTUkVET0pFCitSQURPSsSMSU4gVE9ET1IKK1JBRE9KxIxJTiBWRUxJTUlSCitSQURPSsSMSU4gVkVSQQorUkFET0rEjElOIFZFUkEKK1JBRE9KQSBCT1JJU0xBVgorUkFET0pBIEtPVklMSktBCitSQURPSkVWIElWQU4KK1JBRE9KRVYgU0xBVktPCitSQURPSkVWScSGIMSQT0tBCitSQURPSkVWScSGIEFOxJBFTEtBCitSQURPSkVWScSGIEJPU0lMSktBCitSQURPSkVWScSGIERFSkFOCitSQURPSkVWScSGIERSQUdPU0xBVgorUkFET0pFVknEhiBKRUxFTkEKK1JBRE9KRVZJxIYgSkVMSUNBCitSQURPSkVWScSGIEtBVEEKK1JBRE9KRVZJxIYgS09TVEEKK1JBRE9KRVZJxIYgTUlMQU4KK1JBRE9KRVZJxIYgTUlMRU5LTworUkFET0pFVknEhiBNSUxFCitSQURPSkVWScSGIE1JTFVUSU4KK1JBRE9KRVZJxIYgTUlSSkFOQQorUkFET0pFVknEhiBNSVJPU0FOREEKK1JBRE9KRVZJxIYgTU9NxIxJTE8KK1JBRE9KRVZJxIYgTklLT0xBCitSQURPSkVWScSGIE5JS09MQQorUkFET0pFVknEhiBOSUtPTEEKK1JBRE9KRVZJxIYgUEVUUkEKK1JBRE9KRVZJxIYgUkFESVNBVgorUkFET0pFVknEhiBSQURPU0xBVktBIERSCitSQURPSkVWScSGIFNBVkEKK1JBRE9KRVZJxIYgU0xBVktPCitSQURPSkVWScSGIFNSQk9MSlVCCitSQURPSkVWScSGIFNURVZBTgorUkFET0pFVknEhiBTVEVWQU4KK1JBRE9KRVZJxIYgVEFUSkFOQQorUkFET0pFVknEhiBWRVJBCitSQURPSkVWScSGIFpPUkFOCitSQURPSknEjEnEhiDEkE9LQQorUkFET0pJxIxJxIYgxJBPUsSQTworUkFET0pJxIxJxIYgREFOSUxPCitSQURPSknEjEnEhiBEUkFHQU4KK1JBRE9KScSMScSGIEpFTEVOQQorUkFET0pJxIxJxIYgSk9SREFOCitSQURPSknEjEnEhiBMSlVCT01JUgorUkFET0pJxIxJxIYgTUlMSUNBCitSQURPSknEjEnEhiBNSUxPU0FWCitSQURPSknEjEnEhiBPQlJFTgorUkFET0pJxIxJxIYgUkFERQorUkFET0pJxIxJxIYgUkFEScWgQQorUkFET0pJxIxJxIYgVkxBREFOCitSQURPSknEjEnEhiBWT0pJTgorUkFET0pLTyBKRUxFTkEKK1JBRE9KS09WScSGIMSQVVLEkElOS0EKK1JBRE9KS09WScSGIExKVUJJQ0EKK1JBRE9KS09WScSGIFBSRURSQUcKK1JBRE9KS09WScSGIFBSVk9TTEFWCitSQURPSktPVknEhiBQUlZPU0xBVgorUkFET0pLT1ZJxIYgUkFKS08KK1JBRE9KS09WScSGIFRJSE9NSVIKK1JBRE9KS09WScSGIFRPTUlTTEFWCitSQURPSktPVknEhiBUUkFKS08KK1JBRE9KS09WScSGIFZMQURJTUlSCitSQURPTUFOIEpFTEVOQQorUkFET01BTiBMSlVCSUNBCitSQURPTUFOIE1BUlRBCitSQURPTUFOIE1JUk9TTEFWCitSQURPTUFOIFpPUkFOCitSQURPTUlSIFNUT0pBTgorUkFET01JUk9WScSGIE1JTE9SQUQKK1JBRE9NSVJPVknEhiBWSU5LTworUkFET01JUk9WScSGIFZVS1NBTgorUkFET01JUk9WScSGIFpMQVRBCitSQURPTsSMScSGIEpVU1VGCitSQURPTsSMScSGIFJBTUlaCitSQURPTknEhiDFvUVMSktPCitSQURPTknEhiDFvUlWQU4KK1JBRE9OScSGIMW9SVZLTworUkFET05JxIYgQUxFS1NBTkRBUgorUkFET05JxIYgQU7EkEVMS0EKK1JBRE9OScSGIEJMQUdPSkUKK1JBRE9OScSGIEJSQU5JU0xBVgorUkFET05JxIYgQlJBTktPIERJUEwgSU5HCitSQURPTknEhiBCUkFOS08KK1JBRE9OScSGIERBTklDQQorUkFET05JxIYgRFXFoEFOCitSQURPTknEhiBFVkdFTklKRQorUkFET05JxIYgRkVSRU5DCitSQURPTknEhiBIQU5BCitSQURPTknEhiBKT1ZBTgorUkFET05JxIYgTEpVQk9NSVIKK1JBRE9OScSGIE1BS1NJTQorUkFET05JxIYgTUlMSVZPSkUKK1JBRE9OScSGIE1JTE9WQU4KK1JBRE9OScSGIE1MQURFTgorUkFET05JxIYgTkFEQQorUkFET05JxIYgTkFEQQorUkFET05JxIYgTkVERUxKS08KK1JBRE9OScSGIE5FTkFECitSQURPTknEhiBOSUtPTEEKK1JBRE9OScSGIE5JS09MQQorUkFET05JxIYgTk9WSUNBCitSQURPTknEhiBQRVRBUgorUkFET05JxIYgUkFEQQorUkFET05JxIYgUkFERQorUkFET05JxIYgUkFESVZPSgorUkFET05JxIYgUkFESVZPSgorUkFET05JxIYgUkFETUlMQQorUkFET05JxIYgUkFKS08KK1JBRE9OScSGIFNPRklKQQorUkFET05JxIYgVkxBREEKK1JBRE9OScSGIFZMQURJTUlSCitSQURPTkpBIEFOVEUKK1JBRE9OSkFOSU4gTUFSVEEKK1JBRE9OSkFOSU4gUEVUQVIKK1JBRE9OSkFOSU4gVkxBU1RJTUlSCitSQURPTkpJxIYgQlJBTklTTEFWCitSQURPTkpJxIYgRFJBR0FOCitSQURPTkpJxIYgSVZBTgorUkFET05KScSGIEtBVEFSSU5BCitSQURPTkpJxIYgTFVLQQorUkFET05KScSGIE1BTkRBCitSQURPTkpJxIYgTUlMQURJTgorUkFET05KScSGIE1JTE9WQU4KK1JBRE9OSknEhiBNSVJKQU5BCitSQURPTkpJxIYgTUlUQVIKK1JBRE9OSknEhiBPTEdBCitSQURPTkpJxIYgU0VOS0EKK1JBRE9OSknEhiBTTEFWT01JUgorUkFET05KScSGIFNMT0JPREFOCitSQURPTkpJxIYgU05Fxb1BTkEKK1JBRE9OSknEhiBTVEFOQQorUkFET05KScSGIFZFUklDQQorUkFET1NBViBFUsW9RUJFVAorUkFET1NBViBLUklTVElOQQorUkFET1NBViBSQURJVk9KCitSQURPU0FWxIxFViBEVcWgQU4KK1JBRE9TQVbEjEVWIE1JTEEKK1JBRE9TQVZBQyBESU1JVFJJSkUgRFIKK1JBRE9TQVZBQyBEVcWgSUNBCitSQURPU0FWQUMgTkVERUxKS08KK1JBRE9TQVZBQyBWRUxJWkFSCitSQURPU0FWQUMgVkxBRE8KK1JBRE9TQVZMSkVWIMW9SVZBTgorUkFET1NBVkxKRVYgQk/FvUlEQVIKK1JBRE9TQVZMSkVWIERSQUdPTEpVQgorUkFET1NBVkxKRVYgRFJBR1VUSU4KK1JBRE9TQVZMSkVWIEdPSktPCitSQURPU0FWTEpFViBJVkFOCitSQURPU0FWTEpFViBKRVZSRU0KK1JBRE9TQVZMSkVWIEtBxIZBCitSQURPU0FWTEpFViBNSUxPUkFECitSQURPU0FWTEpFViBOSUtPTEEKK1JBRE9TQVZMSkVWIFBBVkxFCitSQURPU0FWTEpFViBTTEFWS0EKK1JBRE9TQVZMSkVWIFNURVZBTgorUkFET1NBVkxKRVYgWk9SQQorUkFET1NBVkxKRVYgWk9SSUNBCitSQURPU0FWTEpFVknEhiDFvUlWQU4KK1JBRE9TQVZMSkVWScSGIMSQT1LEkEUKK1JBRE9TQVZMSkVWScSGIMSQT1LEkEUKK1JBRE9TQVZMSkVWScSGIEFMRUtTQU5EQVIKK1JBRE9TQVZMSkVWScSGIEFOQQorUkFET1NBVkxKRVZJxIYgQU5BCitSQURPU0FWTEpFVknEhiBCT8W9SURBUgorUkFET1NBVkxKRVZJxIYgQk9HREFOCitSQURPU0FWTEpFVknEhiBCT0dPVklECitSQURPU0FWTEpFVknEhiBCT1JBCitSQURPU0FWTEpFVknEhiBCT1JBCitSQURPU0FWTEpFVknEhiBCVURJTUlSCitSQURPU0FWTEpFVknEhiBEQU5JRUwKK1JBRE9TQVZMSkVWScSGIERJQU5BCitSQURPU0FWTEpFVknEhiBET0JSSVZPSkUKK1JBRE9TQVZMSkVWScSGIERSQUdBTgorUkFET1NBVkxKRVZJxIYgRFJBR0nFoEEKK1JBRE9TQVZMSkVWScSGIERSQUdPTEpVQgorUkFET1NBVkxKRVZJxIYgRFJBR1VUSU4KK1JBRE9TQVZMSkVWScSGIERVxaBBTiBESVBMIElORworUkFET1NBVkxKRVZJxIYgRFXFoEFOCitSQURPU0FWTEpFVknEhiBEVcWgQU4KK1JBRE9TQVZMSkVWScSGIElMSUpBCitSQURPU0FWTEpFVknEhiBKQVNNSU5BCitSQURPU0FWTEpFVknEhiBKT1ZBTgorUkFET1NBVkxKRVZJxIYgSk9WQU4KK1JBRE9TQVZMSkVWScSGIEpPVkFOCitSQURPU0FWTEpFVknEhiBKVUxJSkEKK1JBRE9TQVZMSkVWScSGIExFUE9TQVZBCitSQURPU0FWTEpFVknEhiBMSklMSkFOQQorUkFET1NBVkxKRVZJxIYgTEpJTEpBCitSQURPU0FWTEpFVknEhiBMSlVCScWgQQorUkFET1NBVkxKRVZJxIYgTEpVQk9NSVIKK1JBRE9TQVZMSkVWScSGIExKVUJPTUlSCitSQURPU0FWTEpFVknEhiBNQVJLTworUkFET1NBVkxKRVZJxIYgTUlMQU4KK1JBRE9TQVZMSkVWScSGIE1JTEFOCitSQURPU0FWTEpFVknEhiBNSUxBTgorUkFET1NBVkxKRVZJxIYgTUlMRU5LTworUkFET1NBVkxKRVZJxIYgTUlMRU5LTworUkFET1NBVkxKRVZJxIYgTUlMRVZBCitSQURPU0FWTEpFVknEhiBNSUxLQQorUkFET1NBVkxKRVZJxIYgTUlMT1ZBTgorUkFET1NBVkxKRVZJxIYgTUlPRFJBRworUkFET1NBVkxKRVZJxIYgTUlSSkFOQQorUkFET1NBVkxKRVZJxIYgTUlSSkFOQQorUkFET1NBVkxKRVZJxIYgTUxBREVOCitSQURPU0FWTEpFVknEhiBOSkVHT1NBVkEKK1JBRE9TQVZMSkVWScSGIFBBVkxFCitSQURPU0FWTEpFVknEhiBQRVRBUgorUkFET1NBVkxKRVZJxIYgUkFEScWgQQorUkFET1NBVkxKRVZJxIYgUkFEScWgQQorUkFET1NBVkxKRVZJxIYgUkFESVZPSgorUkFET1NBVkxKRVZJxIYgUkFNSVpBCitSQURPU0FWTEpFVknEhiBST0RPTEpVQiBESVBMIElORworUkFET1NBVkxKRVZJxIYgU0FWQQorUkFET1NBVkxKRVZJxIYgU0lOScWgQQorUkFET1NBVkxKRVZJxIYgU1RFVkFOCitSQURPU0FWTEpFVknEhiBTVEVWQU4KK1JBRE9TQVZMSkVWScSGIFNURVZBTgorUkFET1NBVkxKRVZJxIYgU1RPSkFOCitSQURPU0FWTEpFVknEhiBTVkVUSVNMQVYKK1JBRE9TQVZMSkVWScSGIFNWRVRJU0xBVgorUkFET1NBVkxKRVZJxIYgU1ZFVExBTkEKK1JBRE9TQVZMSkVWScSGIFNWRVRPWkFSCitSQURPU0FWTEpFVknEhiBWSURPU0FWQQorUkFET1NBVkxKRVZJxIYgVkxBREVUQQorUkFET1NBVkxKRVZJxIYgWkFHQQorUkFET1NBVkxKRVZJxIYgWkFHT1JLQQorUkFET1NBVkxKRVZJxIYgWk9SSUNBCitSQURPVkFDIElWQQorUkFET1ZBQyBOSUtPTEEKK1JBRE9WQUMgUEVUQVIKK1JBRE9WQUMgU0FWQQorUkFET1ZBTiBBTlRFCitSQURPVkFOIFZJRE9TQVZBCitSQURPVkFOxIxFViBCUkFOSVNMQVYKK1JBRE9WQU7EjEVWIExKVUJJQ0EKK1JBRE9WQU7EjEVWIFZMQURJTUlSCitSQURPVkFOxIxFViBWTEFESU1JUgorUkFET1ZBTkFDIMSQVVJBCitSQURPVkFOQUMgTkXEkE8KK1JBRE9WQU5PViDFvUlWQU4KK1JBRE9WQU5PViBBTEVLU0FOREFSCitSQURPVkFOT1YgQU7EkEVMS0EKK1JBRE9WQU5PViBBTktBCitSQURPVkFOT1YgQk/FvUlEQVIKK1JBRE9WQU5PViBCT0dEQU5LQQorUkFET1ZBTk9WIEJSQU5LTworUkFET1ZBTk9WIERBTklDQQorUkFET1ZBTk9WIERVxaBBTgorUkFET1ZBTk9WIERVxaBBTgorUkFET1ZBTk9WIERVxaBBTgorUkFET1ZBTk9WIEVWSUNBCitSQURPVkFOT1YgR09SREFOQQorUkFET1ZBTk9WIElMSUpBCitSQURPVkFOT1YgS1VaTUFOCitSQURPVkFOT1YgTEpVQklDQQorUkFET1ZBTk9WIE1BUklKQQorUkFET1ZBTk9WIE1FTEFOSUpBCitSQURPVkFOT1YgTUlMQU4KK1JBRE9WQU5PViBNSUxBTgorUkFET1ZBTk9WIE1JTEVOS08KK1JBRE9WQU5PViBNSUxFTktPCitSQURPVkFOT1YgTUlMRU5LTworUkFET1ZBTk9WIE1JTElDQQorUkFET1ZBTk9WIE1JTElDQQorUkFET1ZBTk9WIE1JTElDQQorUkFET1ZBTk9WIE1JTEtBCitSQURPVkFOT1YgTUlSSkFOQQorUkFET1ZBTk9WIE5BREEKK1JBRE9WQU5PViBORVZFTktBCitSQURPVkFOT1YgUEVUQVIKK1JBRE9WQU5PViBQRVRBUgorUkFET1ZBTk9WIFBFVEFSCitSQURPVkFOT1YgUkFET01JUgorUkFET1ZBTk9WIFJBRE9WQU4KK1JBRE9WQU5PViBSVcW9SUNBCitSQURPVkFOT1YgU0xPQk9EQU5LQQorUkFET1ZBTk9WIFNMT0JPREFOCitSQURPVkFOT1YgU0xPQk9EQU4KK1JBRE9WQU5PViBTTUlMSkFOQQorUkFET1ZBTk9WIFNURVZBTgorUkFET1ZBTk9WIFNURVZBTgorUkFET1ZBTk9WIFNURVZBCitSQURPVkFOT1YgU1ZFVE9aQVIKK1JBRE9WQU5PViBUQVRKQU5BCitSQURPVkFOT1YgVElOS0EKK1JBRE9WQU5PViBWT0pJU0xBVgorUkFET1ZBTk9WScSGIMW9SVZBRElOCitSQURPVkFOT1ZJxIYgxJBPUsSQSUpFCitSQURPVkFOT1ZJxIYgQk9SQQorUkFET1ZBTk9WScSGIEJPUktBCitSQURPVkFOT1ZJxIYgQlJBTktPCitSQURPVkFOT1ZJxIYgREFOSUxPCitSQURPVkFOT1ZJxIYgREFSSU5LQQorUkFET1ZBTk9WScSGIERPQlJJVk9KRQorUkFET1ZBTk9WScSGIERSQUdBTgorUkFET1ZBTk9WScSGIERSQUdJxaBBCitSQURPVkFOT1ZJxIYgRFJBR0nFoEEKK1JBRE9WQU5PVknEhiBEUkFHT0xKVUIKK1JBRE9WQU5PVknEhiBEVcWgQU5LQQorUkFET1ZBTk9WScSGIERVxaBBTgorUkFET1ZBTk9WScSGIERVxaBLTyBESVBMIElORworUkFET1ZBTk9WScSGIElMT05LQQorUkFET1ZBTk9WScSGIEpFTElDQQorUkFET1ZBTk9WScSGIEpPS0EKK1JBRE9WQU5PVknEhiBKT1ZBTktBCitSQURPVkFOT1ZJxIYgTEFaQVIKK1JBRE9WQU5PVknEhiBMQVpPCitSQURPVkFOT1ZJxIYgTEpVQklDQQorUkFET1ZBTk9WScSGIExKVUJPTUlSCitSQURPVkFOT1ZJxIYgTUFSQQorUkFET1ZBTk9WScSGIE1BUklKQSBEUgorUkFET1ZBTk9WScSGIE1BUklKQQorUkFET1ZBTk9WScSGIE1JxIZPCitSQURPVkFOT1ZJxIYgTUlMQURJTgorUkFET1ZBTk9WScSGIE1JTEFOCitSQURPVkFOT1ZJxIYgTUlMQU4KK1JBRE9WQU5PVknEhiBNSUxBTgorUkFET1ZBTk9WScSGIE1JTEEKK1JBRE9WQU5PVknEhiBNSUxJQ0EKK1JBRE9WQU5PVknEhiBNSUxPxaAKK1JBRE9WQU5PVknEhiBNSUxPxaAKK1JBRE9WQU5PVknEhiBNSUxPUkFECitSQURPVkFOT1ZJxIYgTUlMT1JBRAorUkFET1ZBTk9WScSGIE1JTE9SQUQKK1JBRE9WQU5PVknEhiBNSUxVVElOCitSQURPVkFOT1ZJxIYgTUlSQQorUkFET1ZBTk9WScSGIE1JUk9TTEFWIERSIFBST0YKK1JBRE9WQU5PVknEhiBNSVJPU0xBVgorUkFET1ZBTk9WScSGIE1MQcSQRU4KK1JBRE9WQU5PVknEhiBNT01JUgorUkFET1ZBTk9WScSGIE5BREEKK1JBRE9WQU5PVknEhiBORURFTEpLTworUkFET1ZBTk9WScSGIE5JS09MQQorUkFET1ZBTk9WScSGIE5JTk9TTEFWIERSCitSQURPVkFOT1ZJxIYgUFJFRFJBRworUkFET1ZBTk9WScSGIFJBREVOS08KK1JBRE9WQU5PVknEhiBSQURJVk9KCitSQURPVkFOT1ZJxIYgUkFET0pJQ0EKK1JBRE9WQU5PVknEhiBSQURPTUlSIERSIExFS0FSCitSQURPVkFOT1ZJxIYgUkFET1NMQVYKK1JBRE9WQU5PVknEhiBSQURPU0xBVgorUkFET1ZBTk9WScSGIFJBRE9WQU4KK1JBRE9WQU5PVknEhiBSQUpBCitSQURPVkFOT1ZJxIYgUkFKS08KK1JBRE9WQU5PVknEhiBTTEFET0xKVUIKK1JBRE9WQU5PVknEhiBTTEFWS08KK1JBRE9WQU5PVknEhiBTTEFWS08KK1JBRE9WQU5PVknEhiBTTE9CT0RBTgorUkFET1ZBTk9WScSGIFNORcW9QU5BCitSQURPVkFOT1ZJxIYgU1JFVEVOCitSQURPVkFOT1ZJxIYgU1RBTk9KRQorUkFET1ZBTk9WScSGIFNURVZBTgorUkFET1ZBTk9WScSGIFNURVZBTgorUkFET1ZBTk9WScSGIFNWRVRJU0xBVgorUkFET1ZBTk9WScSGIFRPTUlTTEFWCitSQURPVkFOT1ZJxIYgVkVMSVNBVgorUkFET1ZBTk9WScSGIFZJRE9TQVZBCitSQURPVkFOT1ZJxIYgVklOS0EKK1JBRE9WQU5PVknEhiBWTEFESU1JUgorUkFET1ZBTk9WScSGIFZPSklTTEFWCitSQURPVkFOT1ZJxIYgVk9KSVNMQVYKK1JBRE9WQU5PVknEhiBaT1JLQQorUkFET1ZBTk9WScSGIFpWRVpEQU5BCitSQURPVknEhiDEjEVET01JUgorUkFET1ZJxIYgxb1BUktPCitSQURPVknEhiDFvUlWQU4KK1JBRE9WScSGIMSQT1LEkEUKK1JBRE9WScSGIEFMRUtTQU5EQVIKK1JBRE9WScSGIEFMRUtTQU5EQVIKK1JBRE9WScSGIEFOxJBFTElKQQorUkFET1ZJxIYgQkxBR0EKK1JBRE9WScSGIEJMQUdPSkUKK1JBRE9WScSGIEJPxaBLTworUkFET1ZJxIYgQk9HT0xKVUIKK1JBRE9WScSGIEJPUklTTEFWCitSQURPVknEhiBCUkFOSVNMQVYgRElQTCBJTkcKK1JBRE9WScSGIEJSQU5LTworUkFET1ZJxIYgREFNSkFOCitSQURPVknEhiBEQVJLTworUkFET1ZJxIYgREVKQU4KK1JBRE9WScSGIERJTUlUUklKRQorUkFET1ZJxIYgRE9CUklMQQorUkFET1ZJxIYgRFJBR0FOCitSQURPVknEhiBEUkFHScWgQQorUkFET1ZJxIYgRFJBR0lDQQorUkFET1ZJxIYgRFJBR09MSlVCCitSQURPVknEhiBEUkFHVVRJTgorUkFET1ZJxIYgRFXFoEFOCitSQURPVknEhiBHT0pLTyBESVBMIElORworUkFET1ZJxIYgSVJNQQorUkFET1ZJxIYgSVZBCitSQURPVknEhiBKRVZUTworUkFET1ZJxIYgSk9WQU4KK1JBRE9WScSGIExKVUJPTUlSCitSQURPVknEhiBNQUdEQUxFTkEKK1JBRE9WScSGIE1BR0RBCitSQURPVknEhiBNSUxBTgorUkFET1ZJxIYgTUlMQU4KK1JBRE9WScSGIE1JTEFOCitSQURPVknEhiBNSUxBTgorUkFET1ZJxIYgTUlMRU5BCitSQURPVknEhiBNSUxFVkEKK1JBRE9WScSGIE1JTEUKK1JBRE9WScSGIE1JTE/FoAorUkFET1ZJxIYgTUlMT0pFCitSQURPVknEhiBNSUxPTUlSCitSQURPVknEhiBNSUxVVElOCitSQURPVknEhiBNSU9EUkFHCitSQURPVknEhiBNSU9EUkFHCitSQURPVknEhiBNSVLEjEVUQQorUkFET1ZJxIYgTU9NxIxJTE8KK1JBRE9WScSGIE1PTcSMSUxPCitSQURPVknEhiBORURFTEpLTworUkFET1ZJxIYgTk9WQUsKK1JBRE9WScSGIE9MR0EKK1JBRE9WScSGIFBBVkxFCitSQURPVknEhiBQRVRBUgorUkFET1ZJxIYgUEVUS08KK1JBRE9WScSGIFJBRE9KS0EKK1JBRE9WScSGIFJBRE9NSVIKK1JBRE9WScSGIFJBRE9WQU4KK1JBRE9WScSGIFJBRE9WQU4KK1JBRE9WScSGIFJBRE9WQU4KK1JBRE9WScSGIFJBSktPCitSQURPVknEhiBSQVRPTUlSIERJUEwgSU5HCitSQURPVknEhiBST1pJS0EKK1JBRE9WScSGIFNBVk8KK1JBRE9WScSGIFNJTUEKK1JBRE9WScSGIFNMQVZJQ0EKK1JBRE9WScSGIFNMQVZJQ0EKK1JBRE9WScSGIFNMQVZLQQorUkFET1ZJxIYgU0xBVktPCitSQURPVknEhiBTUkVURU4KK1JBRE9WScSGIFNUQU5LTworUkFET1ZJxIYgU1RFVkFOCitSQURPVknEhiBTVFJBSElOSkEKK1JBRE9WScSGIFRFUkVaSUpBCitSQURPVknEhi1VVkVSScSGIE1JTEEgRFIKK1JBRE9WScSGIFZFTElNSVIKK1JBRE9WScSGIFZFTEpBCitSQURPVknEhiBWRUxKS08KK1JBRE9WScSGIFZFTEpLTworUkFET1ZJxIYgVkVSQQorUkFET1ZJxIYgVkVSQQorUkFET1ZJxIYgVklEQUsKK1JBRE9WScSGIFZJRE9TQVYKK1JBRE9WScSGIFZMQURJTUlSCitSQURPVknEhiBWTEFESU1JUgorUkFET1ZJxIYgVkxBSktPCitSQURPVknEhiBWT0pJU0xBVgorUkFET1ZJxIYgVlVLU0FOCitSQURPVknEhiBaRFJBVktPCitSQURPVknEhiBaT1JBTgorUkFET1ZOSUtPVknEhiBNQVJJSkEKK1JBRFUgQlJBTktPCitSQURVSktPIMSQVVJBCitSQURVSktPIEFMRUtTQU5EQVIKK1JBRFVKS08gQlJBTktPCitSQURVSktPIERFU0EKK1JBRFVKS08gRFXFoEFOCitSQURVSktPIERVxaBBTgorUkFEVUpLTyBHT1JBTgorUkFEVUpLTyBKQVNNSU5BCitSQURVSktPIExKSUxKQU5BCitSQURVSktPIE1BUktPCitSQURVSktPIE1JTEFOCitSQURVSktPIE1JUkEKK1JBRFVKS08gTUlSS08KK1JBRFVKS08gTkVERUxKS08KK1JBRFVKS08gU1RFVk8KK1JBRFVKS09WIEFMRUtTQU5EQVIKK1JBRFVKS09WIERBTklDQSBESVBMIElORworUkFEVUpLT1YgREFOSUxPCitSQURVSktPViBEQU5JTE8KK1JBRFVKS09WIERFSkFOCitSQURVSktPViBEUkFHT0xKVUIKK1JBRFVKS09WIExKVUJJQ0EKK1JBRFVKS09WIExKVUJJQ0EKK1JBRFVKS09WIE1JTEFOCitSQURVSktPViBNSUxJVk9KCitSQURVSktPViBNSVRBUgorUkFEVUpLT1YgTklLT0xBCitSQURVSktPViBQRVRBUgorUkFEVUpLT1YgUlXFvUlDQQorUkFEVUpLT1YgU1RFVkFOCitSQURVSktPViBWTEFESU1JUgorUkFEVUpLT1ZJxIYgSUxJSkEKK1JBRFVKS09WScSGIEpFTEtBCitSQURVSktPVknEhiBLT1NUQQorUkFEVUtBIExBSk/FoAorUkFEVUtJxIYgUkFET1NBVgorUkFEVUtJTiBBTEVLU0EKK1JBRFVLSU4gQlJBTktBCitSQURVS0lOIERBTklDQQorUkFEVUtJTiBHQVZSQQorUkFEVUtJTiBMSlVCT01JUgorUkFEVUtJTiBNSUxBTgorUkFEVUtJTiBNSUxFTktPCitSQURVS0lOIE1JUktPCitSQURVS0lOIFJBRE9TTEFWCitSQURVS0lOIFNUT0pLQQorUkFEVUxBxaBLSSBCT8WgS08KK1JBRFVMQcWgS0kgU1RFVkFOCitSQURVTEVWIEpPVkFOCitSQURVTEogSkVMRU5BCitSQURVTE9WIENWRVRJU0xBVgorUkFEVUxPViBDVkVUSVNMQVYKK1JBRFVMT1YgSk9WQU4KK1JBRFVMT1YgSlVMS0EKK1JBRFVMT1ZJxIYgxb1JVktPCitSQURVTE9WScSGIMSQT0tPCitSQURVTE9WScSGIMSQT1LEkEUKK1JBRFVMT1ZJxIYgxJBPUsSQRQorUkFEVUxPVknEhiDEkFVSTworUkFEVUxPVknEhiBBTEVLU0FOREFSCitSQURVTE9WScSGIEFMRUtTQU5EQVIKK1JBRFVMT1ZJxIYgQU7EkEVMS0EKK1JBRFVMT1ZJxIYgQU7EkEVMS08KK1JBRFVMT1ZJxIYgQU7EkEVMS08KK1JBRFVMT1ZJxIYgQU5BCitSQURVTE9WScSGLUJFTEnEhiBaT1JLQQorUkFEVUxPVknEhiBCT0dEQU5LQQorUkFEVUxPVknEhiBCT1JJVk9KCitSQURVTE9WScSGIEJPU0EKK1JBRFVMT1ZJxIYgQk9TSUxKS0EKK1JBRFVMT1ZJxIYgQlJBTktBCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQVRJU0xBVgorUkFEVUxPVknEhiBEQU5JSkVMQQorUkFEVUxPVknEhiBEUkFHQU4KK1JBRFVMT1ZJxIYgRFJBR0lDQQorUkFEVUxPVknEhiBEUkFHSUNBCitSQURVTE9WScSGIERSQUdPTEpVQgorUkFEVUxPVknEhiBEUkFHVVRJTgorUkFEVUxPVknEhiBEVcWgQU4KK1JBRFVMT1ZJxIYgR09SQU4KK1JBRFVMT1ZJxIYgSUxJSkEKK1JBRFVMT1ZJxIYgSk9SREFOCitSQURVTE9WScSGIEpPVkFOCitSQURVTE9WScSGIEpPVkFOCitSQURVTE9WScSGIEtSVU5JU0xBVgorUkFEVUxPVknEhiBLU0VOSUpBCitSQURVTE9WScSGIExBWkFSCitSQURVTE9WScSGIExKVUJJxaBBIERJUEwgSU5HCitSQURVTE9WScSGIE1BR0RBCitSQURVTE9WScSGIE1BUklKQU5BCitSQURVTE9WScSGIE1BUklKQQorUkFEVUxPVknEhiBNQVJJSkEKK1JBRFVMT1ZJxIYgTUlIQUlMTworUkFEVUxPVknEhiBNSUxBTgorUkFEVUxPVknEhiBNSUxBTgorUkFEVUxPVknEhiBNSUxBTgorUkFEVUxPVknEhiBNSUxBTgorUkFEVUxPVknEhiBNSUxFTkEKK1JBRFVMT1ZJxIYgTUlMRQorUkFEVUxPVknEhiBNSUxPSkUKK1JBRFVMT1ZJxIYgTUlMT1JBRCBEUgorUkFEVUxPVknEhiBNSUxPVkFOCitSQURVTE9WScSGIE1JTFVUSU4KK1JBRFVMT1ZJxIYgTUlSSkFOQQorUkFEVUxPVknEhiBNSVJLTworUkFEVUxPVknEhiBNSVJPU0xBVkEKK1JBRFVMT1ZJxIYgTkFEQQorUkFEVUxPVknEhiBORURFTEpLQQorUkFEVUxPVknEhiBOSUtPTEEgRElQTCBJTkcKK1JBRFVMT1ZJxIYgTklLT0xBCitSQURVTE9WScSGIE5JS09MQQorUkFEVUxPVknEhiBOSUtPTEEKK1JBRFVMT1ZJxIYgTklOT1NMQVZBIERSCitSQURVTE9WScSGIFBFVEFSCitSQURVTE9WScSGIFBFVEFSCitSQURVTE9WScSGIFJBREUKK1JBRFVMT1ZJxIYgUkFESVZPSgorUkFEVUxPVknEhiBSQURPSkUgRFIKK1JBRFVMT1ZJxIYgUkFET0pLQQorUkFEVUxPVknEhiBSQURPTUlSCitSQURVTE9WScSGIFJBSktPCitSQURVTE9WScSGIFJPWkFMSUpBCitSQURVTE9WScSGIFJVxb1BCitSQURVTE9WScSGIFJVRE9MRgorUkFEVUxPVknEhiBTQVZBCitSQURVTE9WScSGIFNBVkEKK1JBRFVMT1ZJxIYgU0FWQQorUkFEVUxPVknEhiBTRUxJTUlSCitSQURVTE9WScSGIFNMQVZJQ0EKK1JBRFVMT1ZJxIYgU0xPQk9EQU4KK1JBRFVMT1ZJxIYgU1JFxIZLTworUkFEVUxPVknEhiBTUkVUTworUkFEVUxPVknEhiBTVEFOQQorUkFEVUxPVknEhiBTVEFOS08KK1JBRFVMT1ZJxIYgU1RFVkFOIERSCitSQURVTE9WScSGIFNURVZBTgorUkFEVUxPVknEhiBTVEVWQU4KK1JBRFVMT1ZJxIYgU1ZFVEtPCitSQURVTE9WScSGIFNWRVRPWkFSCitSQURVTE9WScSGIFNWRVRPWkFSCitSQURVTE9WScSGIFRPTUHFoAorUkFEVUxPVknEhiBWRUxJTUlSCitSQURVTE9WScSGIFpMQVRJTktBIERSCitSQURVTE9WScSGIFpPUkFOCitSQURVTE9WScSGIFpPUkFOCitSQURVTE9WScSGIFpWT05JTUlSCitSQURVTUlMTyBBTEVLU0FOREFSCitSQURVTUlMTyBHT1JEQU5BCitSQURVTUlMTyBNScSGTworUkFEVU1JTE8gTUlMT1JBRAorUkFEVU1JTE8gTUlSS08KK1JBRFVOIMW9RUxKS08KK1JBRFVOIMW9RUxKS08KK1JBRFVOIERSQUdBTgorUkFEVU4gR09SQU4KK1JBRFVOIElMSUpBCitSQURVTiBKT1ZBTgorUkFEVU4gTEpVQklDQQorUkFEVU4gTUFSS08KK1JBRFVOIE1JTE/FoAorUkFEVU4gU0xPQk9EQU4KK1JBRFVOIFNNSUxKQQorUkFEVU4gVkxBRE8KK1JBRFVOSknEhiBNSUxPTUlSCitSQURVTktPVknEhiBNSVJPU0xBVgorUkFEVU5LT1ZJxIYgUkFET01JUgorUkFEVU5LT1ZJxIYgUkFOS08KK1JBRFVOT1ZJxIYgxJBPUsSQRQorUkFEVU5PVknEhiBKRUxJQ0EKK1JBRFVOT1ZJxIYgSkVMSUNBCitSQURVTk9WScSGIEpFVlJFTQorUkFEVU5PVknEhiBSQURVTgorUkFEVU5PVknEhiBST1NBTkRBCitSQURVU0lOIE1JTEUKK1JBRFVTSU4gVE9NQQorUkFEVVNJTiBWRVJJQ0EKK1JBRFVTSU4gVkxBRElNSVIKK1JBRFVTSU5PVknEhiBCSVNFUiBESVBMIElORworUkFEVVNJTk9WScSGIEJPUkEKK1JBRFVTSU5PVknEhiBEQU5JTE8KK1JBRFVTSU5PVknEhiBNSUxBTgorUkFEVVNJTk9WScSGIE5FREVMSktPCitSQURVU0lOT1ZJxIYgVk9KSVNMQVYKK1JBRFZBTkogU0HFoEEKK1JBRFZBTkpJIEpPVkFOCitSQURWQU5TS0kgU1RFVkFOCitSQUZBIEFORFJBxaAKK1JBRkFJIEdBQk9SCitSQUZBSSBJxaBUVkFOCitSQUZBSSBKVUxJSkFOQQorUkFGQUkgU1RFVkFOCitSQUZBSSBUSUJPUgorUkFGQUpMT1ZJxIYgWlVaQU5BCitSQUZBTCDEkFVSxJBJTktBCitSQUZBTCBMQUpPxaAKK1JBRkFMIE1BUklKQQorUkFHQcSMIElWQU4KK1JBR0FJIEpPVkdFTgorUkFHQUpJIMSQVVJBCitSQUdBSkkgSVJJTkEKK1JBR0FKSSBOSUtPTEEKK1JBR0FKSSBOSUtPTEEKK1JBR0FKSSBWTEFEQQorUkFHQUpJIFZMQURBCitSQUdBSkkgVkxBRElNSVIKK1JBR08gQURBTQorUkFHVcW9IERSQcW9RU4KK1JBSEVMScSGIFNWRVRPTUlSIERSCitSQUhNQU4gTUlIQUpMTworUkFJxIwgQUxFS1NBTkRBUgorUkFJxIwgTklLT0xBCitSQUnEjEVWScSGIMW9SVZLTworUkFJxIxFVknEhiDFvUlWT0pJTgorUkFJxIxFVknEhiDFvUlWT0pJTgorUkFJxIxFVknEhiBCT1JLQQorUkFJxIxFVknEhiBEUkFHScSGCitSQUnEjEVWScSGIE1JTEFOCitSQUnEjEVWScSGIE1JTElDQQorUkFJxIxFVknEhiBOSUtPTEEKK1JBScSMRVZJxIYgVkVTTkEKK1JBScSMRVZJxIYgWk9SQU4KK1JBScSMScSGIMW9SVZPSklOCitSQUnEjEnEhiDFvUlWT0pJTgorUkFJxIYgRFJBR0FOCitSQUnEhiBOSUtPTEEKK1JBSUxJxIYgUkFOS08KK1JBSUxJxIYgVlVLT1NBVkEKK1JBSU1PVlNLSSBERVNBTktBCitSQUlOQUMgTUFSSUtBCitSQUlOQUMgTUlUQVIKK1JBSsSMQU4gScWgVFZBTgorUkFKxIxFVEnEhiBEUkFHT01JUgorUkFKxIxFVEnEhiBFTUlMCitSQUrEjEVUScSGIEdPSktPCitSQUrEjEVUScSGIElWQU5LQQorUkFKxIxFVEnEhiBMQVpBUgorUkFKxIxFVEnEhiBMSlVCSUNBCitSQUrEjEVUScSGIE1JTElWT0oKK1JBSsSMRVRJxIYgTUlST1NMQVYKK1JBSsSMRVRJxIYgUlXFvUlDQQorUkFKxIxFVEnEhiBTSU5JxaBBCitSQUrEjEVUScSGIFNUT0pBTgorUkFKxIxFVEnEhiBWRVJBCitSQUrEjEVUScSGIFZMQURJU0xBVgorUkFKxIxFVEnEhiBWTEFESVNMQVYKK1JBSsSMRVZJxIYgVkxBREVUQQorUkFKxIxJxIYgR1JHQQorUkFKxIxJxIYgUEFWTEUKK1JBSsSMScSGIFNURVZBTgorUkFKxaBJxIYgQU7EkEEKK1JBSsWgScSGIERBTklDQQorUkFKxaBJxIYgRFXFoEFOCitSQUrFoEnEhiBJTElKQQorUkFKxaBJxIYgSkVMQQorUkFKxaBJxIYgTkFEQQorUkFKxaBJxIYgUkFERQorUkFKxaBJxIYgU1RBTkEKK1JBSsWgScSGIFNUQU5LTworUkFKxaBMSSBJTE9OQQorUkFKxaBMSSBMQVNMTworUkFKQcSMScSGLcSMQVBBS09WScSGIEpFTElDQQorUkFKQcSMScSGIMSQVVJPCitSQUpBxIxJxIYgxJBVUk8KK1JBSkHEjEnEhiBBTEVLU0FOREFSCitSQUpBxIxJxIYgQk9SSVNMQVYKK1JBSkHEjEnEhiBCT1JJU0xBVgorUkFKQcSMScSGIEJSQU5JU0xBVkEKK1JBSkHEjEnEhiBETUlUQVIKK1JBSkHEjEnEhiBEVcWgQU4KK1JBSkHEjEnEhiBHT1JEQU5BCitSQUpBxIxJxIYgSUxJSkEKK1JBSkHEjEnEhiBKT1ZBTgorUkFKQcSMScSGIE1JTEFOCitSQUpBxIxJxIYgTUlMQU4KK1JBSkHEjEnEhiBNSUxBTgorUkFKQcSMScSGIFBFVEFSCitSQUpBxIxJxIYgVElIT01JUgorUkFKQcSMScSGIFZMQURJTUlSCitSQUpBxIxJxIYgVkxBRE8KK1JBSkHEjEnEhiBaT1JJQ0EKK1JBSkHEjEnEhiBaT1JLQQorUkFKQUsgQlJBTktPCitSQUpBSyBNSUxFTkEKK1JBSkFLIE5FR09WQU4KK1JBSkFLT1ZBQyBNSU9EUkFHCitSQUpBS09WQUMgWk9SQU4KK1JBSkJFUiBKT8W9RUYKK1JBSkRBIFBFVEFSCitSQUpEQSBQRVRFUgorUkFKREEgU0FOREkKK1JBSkVWScSGIEtPU1RBCitSQUpFVknEhiBWQUxFUklKQQorUkFKSCBERcW9RQorUkFKSCBPTEdBCitSQUpIIFZMQURJTUlSCitSQUpJxIwgTUlMQU4KK1JBSknEjEnEhiBLQVRBTElOCitSQUpJxIxJxIYgTUlPRFJBRworUkFKScSMScSGIE1JT0RSQUcKK1JBSknEhiBBTktJQ0EKK1JBSknEhiBCT1JJU0FWCitSQUpJxIYgREFSSU5LQQorUkFKScSGIERFU0FOS0EKK1JBSknEhiBET0JSSVZPSgorUkFKScSGIERSQUdBTgorUkFKScSGIERSQUdBCitSQUpJxIYgRFJBR0lDQQorUkFKScSGIERSQUdVVElOCitSQUpJxIYgR09SREFOQQorUkFKScSGIElHTkpBVAorUkFKScSGIElTQQorUkFKScSGIEpPVkFOCitSQUpJxIYgSk9WQU4KK1JBSknEhiBLQVRBUklOQQorUkFKScSGIEtPVklOS0EKK1JBSknEhiBLUklTVElOQQorUkFKScSGIExKVUJJQ0EKK1JBSknEhiBMVUtBCitSQUpJxIYgTUlMQU4KK1JBSknEhiBNSUxFTkEKK1JBSknEhiBNSUxLQQorUkFKScSGIE1JTE9SQUQKK1JBSknEhiBNSU9NSVIKK1JBSknEhiBOQURBCitSQUpJxIYgTkFEQQorUkFKScSGIE5JS09MQQorUkFKScSGIFBFUktBCitSQUpJxIYgUEVUQVIKK1JBSknEhiBSQURFCitSQUpJxIYgUkFESVNMQVYKK1JBSknEhiBSQURNSUxBCitSQUpJxIYgUlXFvUEKK1JBSknEhiBTTEFWS0EKK1JBSknEhiBTTkXFvUFOQQorUkFKScSGIFNQQVNPSkUgRFIKK1JBSknEhiBTVEVWQU4KK1JBSknEhiBTVEVWQU4KK1JBSknEhiBTVEVWQU4KK1JBSknEhiBWRUxJTUlSCitSQUpJxIYgVkVMSU1JUgorUkFKScSGIFZFTElOS0EKK1JBSknEhiBWT0pJU0xBVgorUkFKScSGIFZPSklTTEFWCitSQUpJxIYgWk9SQU4KK1JBSklMScSGIEpPVkFOS0EKK1JBSklOQUMtQlVLVVJPViBEUkFHQU5BCitSQUpJTkFDIE5FTkFECitSQUpJTkFDIFNWRVRPWkFSCitSQUpJTk9WScSGIE1JUktPCitSQUpLScSGIE5JS09MQQorUkFKS09WIEJPR0RBTiBEUgorUkFKS09WIEJPUklWT0oKK1JBSktPViBERVNBTktBCitSQUpLT1YgRFJBR0nEhgorUkFKS09WIERVxaBBTgorUkFKS09WIElTSURPUgorUkFKS09WIElWQU4KK1JBSktPViBJVkFOCitSQUpLT1YgTEpVQk9NSVIKK1JBSktPViBNQVJLTworUkFKS09WIE1JTEFOCitSQUpLT1YgTUlMRU5LTworUkFKS09WIE1JTE9SQUQKK1JBSktPViBNTEFERU4gRElQTCBJTkcKK1JBSktPViBNT01JUgorUkFKS09WIE1PTUlSCitSQUpLT1YgTklLT0xBCitSQUpLT1YgUEVUQVIKK1JBSktPViBSQUpLTworUkFKS09WIFJBVElNSVIKK1JBSktPViBTQVZBCitSQUpLT1YgU1RFVkFOCitSQUpLT1YgVkVTTkEKK1JBSktPViBWTEFESU1JUgorUkFKS09WIFZVS0HFoElOCitSQUpLT1ZJxIYgxIxFRE9NSVIKK1JBSktPVknEhiDFvUlWQU4gRFIKK1JBSktPVknEhiBBTktJQ0EKK1JBSktPVknEhiBCTEFHVVRJTgorUkFKS09WScSGIEJPR09MSlVCCitSQUpLT1ZJxIYgQk9SSVZPSkUKK1JBSktPVknEhiBCUkFOS08KK1JBSktPVknEhiBEQU1OSkFOCitSQUpLT1ZJxIYgRFJBR0FOQQorUkFKS09WScSGIERSQUdBTgorUkFKS09WScSGIERSQUdJxaBBCitSQUpLT1ZJxIYgRFJBR09MSlVCCitSQUpLT1ZJxIYgRFXFoEFOCitSQUpLT1ZJxIYgSVZPCitSQUpLT1ZJxIYgTEpVQk9NSVIKK1JBSktPVknEhiBNSUxBTgorUkFKS09WScSGIE1JTEVWQQorUkFKS09WScSGIE1JTEnEhgorUkFKS09WScSGIE1JTEpLTworUkFKS09WScSGIE1JUktPCitSQUpLT1ZJxIYgTUlST0xKVUIKK1JBSktPVknEhiBOSUtPTEEKK1JBSktPVknEhiBQRVRBUgorUkFKS09WScSGIFJBSktPCitSQUpLT1ZJxIYgUkFUS08KK1JBSktPVknEhiBTTEFWS08KK1JBSktPVknEhiBTTE9CT0RBTgorUkFKS09WScSGIFNSQk9MSlVCCitSQUpLT1ZJxIYgU1JFVEVOCitSQUpLT1ZJxIYgU1RFVkFOCitSQUpLT1ZJxIYgU1RPSkEKK1JBSktPVknEhiBTVkVUSVNMQVYKK1JBSktPVknEhiBUQVRKQU5BCitSQUpLT1ZJxIYgVE9NSVNMQVYKK1JBSktPVknEhiBWRUxJTUlSCitSQUpLT1ZJxIYgVklET1NBVgorUkFKS09WScSGIFZMQVNUSU1JUgorUkFKTEnEhiBNSUxLQQorUkFKTEnEhiBORVZFTktBCitSQUpNT1ZTS0EgSkVMWkEKK1JBSk5JxIYgRFJBR0FOCitSQUpOScSGIE5PVkFLCitSQUpOSU5HRVIgSk/FvUVGCitSQUpOT1ZJxIYgQUxPSloKK1JBSk5PVknEhiBCTEHFvQorUkFKTk9WScSGIEpFTEVOQQorUkFKTk9WScSGIEpPVkFOCitSQUpOT1ZJxIYgSlVMSUpBTkEKK1JBSk5PVknEhiBOQURBCitSQUpOT1ZJxIYgU05Fxb1BTkEKK1JBSk5QUkVIVCBWRVJBCitSQUpUQSBJxaBUVkFOCitSQUpUQSBNQVJJSkEKK1JBSlRBIE5JS09MQQorUkFKVEVOQkFIIEVMRU1JUgorUkFKVEVSIERSQUdJQ0EKK1JBSlRFUiBaT0xUQU4KK1JBSyBBTklDQQorUkFLIE1BUklKQQorUkFLIE5JS09MQQorUkFLIFZFTElCT1IKK1JBS8WgQU5KSSBMQURJU0xBVgorUkFLQVMgxJBPUsSQRQorUkFLQVMgUkFET0pLQQorUkFLQVpPViBNSU9EUkFHCitSQUtFVEnEhiBUT01JU0xBVgorUkFLScSGIMW9QVJLTworUkFLScSGIMW9SVZLQQorUkFLScSGIMW9SVZLTworUkFLScSGIMSQT1LEkEUKK1JBS0nEhiDEkE9SxJBFCitSQUtJxIYgxJBPUsSQRQorUkFLScSGIMSQVVJBCitSQUtJxIYgQUxFS1NBTkRBUgorUkFLScSGIEFOxJBFTElKQQorUkFLScSGIEFOxJBFTEtBCitSQUtJxIYgQU5BU1RBU0lKQQorUkFLScSGIEFOQQorUkFLScSGIEJMQUdPSkUKK1JBS0nEhiBCT8W9TworUkFLScSGIEJPR0RBTktBCitSQUtJxIYgQk9STworUkFLScSGIEJSQU5JTUlSCitSQUtJxIYgQlJBTklTTEFWCitSQUtJxIYgQlJBTktBCitSQUtJxIYgQlJBTktPCitSQUtJxIYgREFSSU5LQQorUkFLScSGIERPTUlOS0EKK1JBS0nEhiBEUkFHQU5BCitSQUtJxIYgRFJBR0FOCitSQUtJxIYgRFJBR0nFoEEKK1JBS0nEhiBEUkFHT01JUgorUkFLScSGIERVxaBBTktBCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgRFXFoEFOCitSQUtJxIYgR0FWUkEKK1JBS0nEhiBHTElHT1JJSkUKK1JBS0nEhiBHT1JEQU5BCitSQUtJxIYgR1JVSkEKK1JBS0nEhiBJVkFOCitSQUtJxIYgSk9WQU5LQQorUkFLScSGIEpPVkFOCitSQUtJxIYgSk9WQU4KK1JBS0nEhiBKT1ZBTgorUkFLScSGIEpPVklDQQorUkFLScSGIEtBVElDQQorUkFLScSGIEtMRU1FTlQKK1JBS0nEhiBMQVpBUgorUkFLScSGIExKSUxKQU5BCitSQUtJxIYgTEpJTEpBTkEKK1JBS0nEhiBMSklMSkFOQQorUkFLScSGIExKVUJJxaBBIERSIExFS0FSCitSQUtJxIYgTEpVQknFoEEKK1JBS0nEhiBMSlVCSUNBCitSQUtJxIYgTEpVQklDQQorUkFLScSGIExKVUJJQ0EKK1JBS0nEhiBMSlVCSUNBCitSQUtJxIYgTEpVQk9NSVIKK1JBS0nEhiBMSlVCTworUkFLScSGIE1BVElKQQorUkFLScSGIE1JTEFOS0EKK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEVOS08KK1JBS0nEhiBNSUxFTktPCitSQUtJxIYgTUlMRU5LTworUkFLScSGIE1JTElDQQorUkFLScSGIE1JTElOQQorUkFLScSGIE1JTElWT0pFCitSQUtJxIYgTUlMSVZPSgorUkFLScSGIE1JTElWT0oKK1JBS0nEhiBNSUxJVk9KCitSQUtJxIYgTUlMS0EKK1JBS0nEhiBNSUxPxaAKK1JBS0nEhiBNSUxPVkFOCitSQUtJxIYgTUlMVVRJTgorUkFLScSGIE1JT0RSQUcKK1JBS0nEhiBNSVJBCitSQUtJxIYgTUlSQQorUkFLScSGIE1JUkpBTkEKK1JBS0nEhiBNSVJKQU5BCitSQUtJxIYgTUlSSkFOQQorUkFLScSGIE1JUkpBTkEKK1JBS0nEhiBNSVJPU0xBVkEKK1JBS0nEhiBOQVRBTElKQQorUkFLScSGIE5FQk9KxaBBCitSQUtJxIYgTkVERUxKS08KK1JBS0nEhiBORU5BRAorUkFLScSGIE5FTkFECitSQUtJxIYgTklLT0xBCitSQUtJxIYgTklLT0xBCitSQUtJxIYgTk9WQUsKK1JBS0nEhiBPQlJBRAorUkFLScSGIFBBSkEKK1JBS0nEhiBQQU5FCitSQUtJxIYgUEFWTEUKK1JBS0nEhiBQRVRBUgorUkFLScSGIFBFVEFSCitSQUtJxIYgUFJFRFJBRworUkFLScSGIFJBRE1JTEEKK1JBS0nEhiBSQURNSUxBCitSQUtJxIYgUkFET0pLQQorUkFLScSGIFJBRE9KS0EKK1JBS0nEhiBSQURPU0xBViBESVBMIElORworUkFLScSGIFJBRE9WQU4KK1JBS0nEhiBSQURPVkFOCitSQUtJxIYgUkFET1ZBTgorUkFLScSGIFJBRE9WQU4KK1JBS0nEhiBSQURPVkFOCitSQUtJxIYgUkFKS08KK1JBS0nEhiBSQUpLTworUkFLScSGIFJVxb1JQ0EKK1JBS0nEhiBTQVZBCitSQUtJxIYgU0xBVktBCitSQUtJxIYgU0xBVktPCitSQUtJxIYgU0xPQk9EQU4KK1JBS0nEhiBTTE9CT0RBTgorUkFLScSGIFNMT0JPREFOCitSQUtJxIYgU01JTEpBTkEKK1JBS0nEhiBTT0ZJSkEKK1JBS0nEhiBTVEFNRU5LQQorUkFLScSGIFNURVZBTktBCitSQUtJxIYgU1RFVkFOCitSQUtJxIYgU1RFVkFOCitSQUtJxIYgU1RFVkFOCitSQUtJxIYgU1RFVkFOCitSQUtJxIYgU1RFVklDQQorUkFLScSGIFNUT0pBTktBCitSQUtJxIYgU1RPSkFOCitSQUtJxIYgU1ZFVE9NSVIKK1JBS0nEhiBTVkVUT1pBUgorUkFLScSGIFRJTUEKK1JBS0nEhiBUT0RPUgorUkFLScSGIFRPTUlTTEFWCitSQUtJxIYgVkFTSUxJSkUKK1JBS0nEhiBWRUxFTUlSCitSQUtJxIYgVkVSQQorUkFLScSGIFZFUkEKK1JBS0nEhiBWSURPU0FWQQorUkFLScSGIFZMQURJTUlSCitSQUtJxIYgVkxBRElNSVIKK1JBS0nEhiBWTEFESU1JUgorUkFLScSGIFZMQURJTUlSCitSQUtJxIYgVkxBRElNSVIKK1JBS0nEhiBaQUdBCitSQUtJxIYgWkxBVEEKK1JBS0nEhiBaT1JBTgorUkFLScSGIFpPUktBCitSQUtJxIZFVknEhiBTVEFNRU5BCitSQUtJxIZFVknEhiBUSUhPTUlSCitSQUtJxIZFVknEhiBaT1JBTgorUkFLSU4gxJBPUsSQRQorUkFLSU4gQU5UVU4KK1JBS0lOIEJPUklTTEFWCitSQUtJTiBHT0pLTworUkFLSU4gSkVMSUNBCitSQUtJTiBKVUxJSkFOQQorUkFLSU4tTUFSVElOT1ZJxIYgUkFETUlMQQorUkFLSU4gUkFET1ZBTgorUkFLSVRBIEFOS0lDQQorUkFLSVRBIEJPxb1PCitSQUtJVEEgQ1ZJSkFOCitSQUtJVEEgQ1ZJSk8KK1JBS0lUQSBKT1ZPCitSQUtJVEEgTEpJTEpBTkEKK1JBS0lUQSBNSUxBTgorUkFLSVRBIE1MQURJTktPCitSQUtJVEEgUEVUQVIKK1JBS0lUQSBTSU1LQQorUkFLT8SMRVZJxIYgxJBPUsSQRQorUkFLT8SMRVZJxIYgQk9STworUkFLT8SMRVZJxIYgR1JVSklDQQorUkFLT8SMRVZJxIYgTUFSSUpBTgorUkFLT8SMRVZJxIYgTUFSS08KK1JBS0/EjEVWScSGIE1JTEFOCitSQUtPxIxFVknEhiBNSUxJSkEKK1JBS0/EjEVWScSGIE1JUk9TTEFWCitSQUtPxIxFVknEhiBSQURFCitSQUtPxIxFVknEhiBSQURNSUxBCitSQUtPxaAgSkFOT8WgCitSQUtPxaAgS0FUSUNBCitSQUtPxaAgWlZPTklNSVIKK1JBS0/FoEkgTkFEQQorUkFLT8WgSSBWTEFESVNMQVYKK1JBS09OSkFDIEJPR09MSlVCCitSQUtPTkpBQyBQVU5JxaBBCitSQUtPVknEhiBBTEVLU0FOREFSCitSQUtPVknEhiBEUkFHSUNBCitSQUtPVknEhiBEVcWgQU4KK1JBS09WScSGIEpVR09TTEFWCitSQUtPVknEhiBMSlVCSU5LQQorUkFLT1ZJxIYgTUlMQU4KK1JBS09WScSGIE1JTE9WQU4KK1JBS09WScSGIE5JS09MQQorUkFLT1ZJxIYgT1NUT0pBCitSQUtPVknEhiBSQURPTUlSCitSQUtPVknEhiBSQVRLTworUkFLT1ZJxIYgU0xBVktPCitSQUtPVknEhiBTVEFOSVNMQVYKK1JBS09WScSGIFRPTUlTTEFWCitSQUtPVknEhiBWSVRPTUlSS0EKK1JBS09WScSGIFZMQURPCitSQUtVxaBJxIYgVkxBRElNSVIKK1JBTEVUScSGIMW9SVZLQQorUkFMRVRJxIYgxJBPUsSQRQorUkFMRVRJxIYgxJBVUkEKK1JBTEVUScSGIEFOxJBFTEtBCitSQUxFVEnEhiBBTkEKK1JBTEVUScSGIEJPR0RBTgorUkFMRVRJxIYgRE9CUklDQQorUkFMRVRJxIYgRFJBR0FOCitSQUxFVEnEhiBEVcWgQU4KK1JBTEVUScSGIElMSUpBCitSQUxFVEnEhiBKRUxJQ0EKK1JBTEVUScSGIExBWkFSCitSQUxFVEnEhiBMQVpBUgorUkFMRVRJxIYgTEFaQVIKK1JBTEVUScSGIExFUE9TQVZBCitSQUxFVEnEhiBNQUpBCitSQUxFVEnEhiBNSUxBTgorUkFMRVRJxIYgTUlMT8WgCitSQUxFVEnEhiBNSUxPxaAKK1JBTEVUScSGIE1JTE9SQUQKK1JBTEVUScSGIE1JUktPCitSQUxFVEnEhiBNSVJPU0xBVgorUkFMRVRJxIYgTUxBREVOCitSQUxFVEnEhiBQRVRBUgorUkFMRVRJxIYtU0FWScSGIEpFTEVOQQorUkFMRVRJxIYtU0FWScSGIEpFTEVOQQorUkFMRVRJxIYgVkVMSktPCitSQUxFVEnEhiBWRVJBCitSQUxFVEnEhiBaT1JBTgorUkFMRVRJxIYgWk9SSUNBCitSQUxFVknEhiBORUJPSsWgQQorUkFMScSGIMW9SVZPSklOCitSQUxJxIYgQlJBTktPCitSQUxJxIYgRFJBR0lDQQorUkFMScSGIERVxaBBTgorUkFMScSGIE1BUklKQQorUkFMScSGIE1BUklKQQorUkFMScSGIE1JTEUKK1JBTEnEhiBNT01JUktBCitSQUxJxIYgU1RFVkFOCitSQUxJxIYgU1RFVkEKK1JBTEpJxIYgQU7EkEVMS08KK1JBTEpJxIYgRFJBR0lOSkEKK1JBTEpJxIYgRFXFoEFOCitSQUxKScSGIE5FREVMSktPCitSQU1BxIwgQU5JQ0EKK1JBTUHEjCBJVkFOCitSQU1BxIwgSlVMSUpBTgorUkFNQcSMIExFT05BCitSQU1BxIwgTEpVQk9NSVIKK1JBTUHEjCBMSlVCT01JUgorUkFNQcSMIExKVUJPTUlSCitSQU1BxIwgTUFSSUpBCitSQU1BxIwgTUlIQUpMTworUkFNQcSMIE1JSEFKTE8KK1JBTUHEjCBNSVJPU0xBVgorUkFNQcSMIE5BREEKK1JBTUHEjCBOQVRBTElKQQorUkFNQcSMIFBFVEFSCitSQU1BxIwgU0lNRU9OCitSQU1BxIwgVkxBRElNSVIKK1JBTUHEjCBaREVOS0EKK1JBTUHEhiBNSUxFVkEKK1JBTUFEQU5JIFJPWkEKK1JBTUFEQU5PViBNVU1VRElKQQorUkFNQURBTk9WScSGIMSQRU1BTEoKK1JBTUFEQU5PVknEhiBKQUtPVgorUkFNQURBTk9WU0tJIE5BREEKK1JBTUFEQU5PVlNLSSBORURFTEpLTworUkFNQURBTlNLSSBEUkFHScSGCitSQU1BREFOU0tJIEpFTEVOQQorUkFNQURBTlNLSSBNSUxJTktBCitSQU1BWkFOT1YgVklLVE9SCitSQU1JxIYgxJBVS0EKK1JBTUnEhiBKT1ZBTktBCitSQU1JxIYgTEFaQVIKK1JBTUnEhiBMVUtBCitSQU1JxIYgTFVLQQorUkFNScSGIE1JTE/FoCBESVBMIE9FQworUkFNScSGIE5JS09MQQorUkFNScSGIFJBRE9KS0EKK1JBTUnEhiBTVE9KQU4KK1JBTUnEhiBWRUxJREEKK1JBTUxKQUsgVkxBRElNSVIKK1JBTUxKQUsgWkxBVEtPCitSQU7EjEnEhiDFoElNRQorUkFOxIxJxIYgRFXFoEFOS0EKK1JBTsSMScSGIEhSQU5JU0xBVgorUkFOxIxJxIYgSk9SREFOCitSQU7EjEnEhiBNSUxPxaAKK1JBTsSMScSGIFJBTktPCitSQU7EkEVMT1ZJxIYgxJBPUsSQRQorUkFOxJBFTE9WScSGIEhSQU5JU0xBVgorUkFOxJBFTE9WScSGIElMSUpBCitSQU7EkEVMT1ZJxIYgTEpJTEpBTkEKK1JBTsSQRUxPVknEhiBMSlVCScWgQQorUkFOxJBFTE9WScSGIExKVUJPRFJBRworUkFOxJBFTE9WScSGIE1JUkpBTkEKK1JBTsSQRUxPVknEhiBNSVJPU0xBVgorUkFOxJBFTE9WScSGIE1JUk9TTEFWCitSQU7EkEVMT1ZJxIYgTUxBREVOCitSQU7EkEVMT1ZJxIYgT0JSQUQKK1JBTsSQRUxPVknEhiBSVcW9SUNBCitSQU7EkEVMT1ZJxIYgU0xBVk9MSlVCCitSQU7EkEVMT1ZJxIYgU1RFVkFOCitSQU7EkEVMT1ZJxIYgVE9NSVNMQVYKK1JBTsSQRUxPVknEhiBWTEFTVElNSVIKK1JBTsSQRUxPVknEhiBaT1JBTgorUkFOREVMSiDEkE9SxJBFCitSQU5ERUxKIMSQVVLEkElOS0EKK1JBTkRFTEogTEFaQVIKK1JBTkRFTEogT0xJVkVSQQorUkFOREVMSiBQRVRBUgorUkFOREVMSiBTVEVWQU4KK1JBTkRFTEogU1ZFVE9aQVIKK1JBTkdFTE9WIERJTUlUQVIKK1JBTkdFTE9WIFNURVZBTgorUkFOR0VMT1YgU1RFVkFOCitSQU5JxIYgVkxBRElTTEFWCitSQU5JTiBKT1ZBTgorUkFOSU4gTEFaQVIKK1JBTklTQVYgUkFESVZPSgorUkFOSVNBVkxKRVYgxb1JVktPCitSQU5JU0FWTEpFViDEkE9SxJBFCitSQU5JU0FWTEpFViDEkE9SxJBFCitSQU5JU0FWTEpFViBHT1JEQU5BCitSQU5JU0FWTEpFViBNSUxJQ0EKK1JBTklTQVZMSkVWIE1JTE/FoAorUkFOSVNBVkxKRVYgUEFKQQorUkFOSVNBVkxKRVYgUkFEQQorUkFOSVNBVkxKRVYgUkFETUlMQQorUkFOSVNBVkxKRVYgUkFETUlMQQorUkFOSVNBVkxKRVYgUkFET1NMQVYKK1JBTklTQVZMSkVWIFNMQVZPTEpVQgorUkFOSVNBVkxKRVYgU1RFVkFOCitSQU5JU0FWTEpFViBUSUpBTkEKK1JBTklTQVZMSkVWScSGIMW9QVJLTworUkFOSVNBVkxKRVZJxIYgxb1FTEpLTworUkFOSVNBVkxKRVZJxIYgQk9HVU1JTEEKK1JBTklTQVZMSkVWScSGIERPQlJJVk9KCitSQU5JU0FWTEpFVknEhiBEVcWgQU4KK1JBTklTQVZMSkVWScSGIEpFTEVOQQorUkFOSVNBVkxKRVZJxIYgTkVCT0rFoEEKK1JBTklTQVZMSkVWScSGIFJBRElWT0oKK1JBTklTQVZMSkVWScSGIFNJTknFoEEKK1JBTklTQVZMSkVWScSGIFNMQVZLQQorUkFOSVNBVkxKRVZJxIYgVklPTEVUQQorUkFOSVNBVkxKRVZJxIYgWk9SQU4KK1JBTklTTEFWLUxBUlRZIE5BREEgRFIKK1JBTklUT1ZJxIYgQk/FoEtPCitSQU5JVE9WScSGIEJPR09MSlVCCitSQU5JVE9WScSGIERJVk5BCitSQU5JVE9WScSGIERSQUdPU0xBVgorUkFOSVRPVknEhiBKRUxJQ0EKK1JBTklUT1ZJxIYgU0xBVklDQQorUkFOSVRPVknEhiBWRUxJU0xBVgorUkFOS0nEhiBTVEVWTworUkFOS0nEhiBUT01JU0xBVgorUkFOS09WIEFOS0lDQQorUkFOS09WIERSQUdBTiBEUgorUkFOS09WIERSQUdPTEpVQgorUkFOS09WIEdST1pEQQorUkFOS09WIElSRU5BCitSQU5LT1YgSVZBTktBCitSQU5LT1YgSk9WQU4KK1JBTktPViBLT1NUQQorUkFOS09WIExKSUxKQU5BCitSQU5LT1YgTEpVQklDQQorUkFOS09WIE1BUklKQQorUkFOS09WIE1JTEFOCitSQU5LT1YgTUlMSVZPSgorUkFOS09WIE1JUk9TTEFWCitSQU5LT1YgTkVERUxKS08KK1JBTktPViBORURFTEpLTworUkFOS09WIE9MR0lDQQorUkFOS09WIFBFVEFSCitSQU5LT1YgUkFESVNMQVYKK1JBTktPViBSQURNSUxBCitSQU5LT1YgUkFET0pLQQorUkFOS09WIFNURVZBTgorUkFOS09WIFNURVZBTgorUkFOS09WIFRBTkFTSUpFCitSQU5LT1YgWk9SQQorUkFOS09WScSGIMW9SVZLTworUkFOS09WScSGIEFOxJBFTEtBIERSCitSQU5LT1ZJxIYgQU5EUklKQQorUkFOS09WScSGIEFOS0EKK1JBTktPVknEhiBCT8WgS08KK1JBTktPVknEhiBCT0pBTgorUkFOS09WScSGIEJPUklWT0oKK1JBTktPVknEhiBCUkFOSVNMQVYKK1JBTktPVknEhiBCUkFOS0EKK1JBTktPVknEhiBEQVJJTktBCitSQU5LT1ZJxIYgREVTQU5LQQorUkFOS09WScSGIERSQUdPCitSQU5LT1ZJxIYgRFXFoEFOCitSQU5LT1ZJxIYgRFXFoElDQQorUkFOS09WScSGIERVQlJBVktBCitSQU5LT1ZJxIYgSVJFTkEKK1JBTktPVknEhiBJVkFOCitSQU5LT1ZJxIYgSk9WQU4KK1JBTktPVknEhiBMSlVCSUNBCitSQU5LT1ZJxIYgTUVMQU5JSkEKK1JBTktPVknEhiBNSUxJQ0EKK1JBTktPVknEhiBNSVJPU0xBVgorUkFOS09WScSGIE5JS09MQSBESVBMIElORworUkFOS09WScSGIFBSRURSQUcKK1JBTktPVknEhiBSQURJVk9KCitSQU5LT1ZJxIYgUkFUT01JUgorUkFOS09WScSGIFJPWkFMSUpBCitSQU5LT1ZJxIYgU0xPQk9EQU4KK1JBTktPVknEhiBTVEVWQU4KK1JBTktPVknEhiBTVkVUT1pBUgorUkFOS09WScSGIFNWRVRPWkFSCitSQU5LT1ZJxIYgVE9NSVNMQVYKK1JBTktPVknEhiBWVUtPU0FWQQorUkFOS09WScSGIFpPUkFOCitSQU5PR0FKRUMgSVZBTgorUkFPTknEhiDEkE9SxJBFCitSQU9OScSGIElLT05JSkEKK1JBT05JxIYgSkFOS08KK1JBT05JxIYgUkFERU5LTworUkFPTknEhiBTUEFTT0pFCitSQU9OScSGIFZVS09MQQorUkFQxIxPIEtBVEFMSU4KK1JBUEFJxIYgREVKQU4KK1JBUEFJxIYgTUlPRFJBRyBEUgorUkFQQUnEhiBSQURFTktBCitSQVBBScSGIFNURVZBTgorUkFQQUpJxIYgQU5BTUFSSUpBCitSQVBBSknEhiBCT1JJVk9KRQorUkFQQUpJxIYgRFXFoEtPCitSQVBBSknEhiBNSUxBTiBBRFZPS0FUCitSQVBBSknEhiBNSUxBTgorUkFQQUpJxIYgTUlMQU4KK1JBUEFKScSGIFJBRE9KQQorUkFQQUpJxIYgU1RFVkFOCitSQVBBSknEhiBUQU1BUkEKK1JBUEnEhiBCT1JFCitSQVBJxIYgRFJBR09NSVIKK1JBUEnEhiBEVcWgQU5LQQorUkFQScSGIEpPVkFOCitSQVBJxIYgSk9WQU4KK1JBUEnEhiBNSUxBTgorUkFQScSGIE5BREEKK1JBUEnEhiBORU5BRAorUkFQScSGIFJBREUKK1JBUEnEhiBSVcWgS08KK1JBUE8gU1RKRVBBTgorUkFQT1RJIEnFoFRWQU4KK1JBU1BPUE9WScSGIEJPxaBLTworUkFTUE9QT1ZJxIYgTUlMT8WgCitSQVNQT1BPVknEhiBTTE9CT0RBTgorUkFTUE9QT1ZJxIYgU1ZFVElTTEFWCitSQVNQT1BPVknEhiBWTEFESVNMQVYKK1JBU1RBVkFDIFBFVEFSCitSQVNUSUsgxJBPUsSQRQorUkFTVE9WQUMgxJBVUk8KK1JBU1RPVknEhiBJTElKQQorUkFTVE9WScSGIEpFTEVOQQorUkFTVE9WScSGIE1JTEFOCitSQVNUT1ZJxIYgTUlMSUNBCitSQVNUT1ZJxIYtUExJVkVMScSGIERFU0FOS0EKK1JBU1RPVknEhiBSQURPSktBCitSQVNUT1ZJxIYgU0xPQk9EQU4KK1JBU1RPVknEhiBTVEVWQU4KK1JBU1RPVknEhiBWRVJBCitSQVQgRkVSRU5DCitSQVQgRlJBTkpBCitSQVQgSkFLT0IKK1JBVCBKT1NJUAorUkFUQUpBQyBEUkFHT0xKVUIgRFIKK1JBVEdFQkVSIEpVTElKQQorUkFUR0VCRVIgTEFTTE8KK1JBVEnEhiDEkFVSxJBJTkEKK1JBVEnEhiBCT1JBCitSQVRJxIYgRFXFoEFOCitSQVRLRUxJxIYgTUlMQU4KK1JBVEtPViDFvUlWS08KK1JBVEtPViDEkE9SxJBFCitSQVRLT1YgQUNBCitSQVRLT1YgQk9SSVZPSgorUkFUS09WIENFQ0lMSUpBCitSQVRLT1YgRFJBR0FOCitSQVRLT1YgRFJBR0lOSkEKK1JBVEtPViBEUkFHSU5KQQorUkFUS09WIERVxaBBTktBCitSQVRLT1YgRFXFoEFOCitSQVRLT1YgSkVMRU5BCitSQVRLT1YgSlVMSUpBTkEKK1JBVEtPViBLQVRBUklOQQorUkFUS09WIExFUE9TQVZBCitSQVRLT1YgTUnEhk8KK1JBVEtPViBNSUxFTktPCitSQVRLT1YgTUlMRU5LTworUkFUS09WIE1JTElDQQorUkFUS09WIE5FTkFECitSQVRLT1YgTkVOQUQKK1JBVEtPViBQQVZMRQorUkFUS09WIFBSRURSQUcKK1JBVEtPViBSQURFCitSQVRLT1YgUkFESVZPSgorUkFUS09WIFJBRE9NSVIKK1JBVEtPViBSVcW9SUNBCitSQVRLT1YgU0FWS0EKK1JBVEtPViBTTUlMSkFOQQorUkFUS09WIFNUQU5JU0xBVkEKK1JBVEtPViBTVEFOSVNMQVYKK1JBVEtPViBWRVJBCitSQVRLT1YgVklET1NBVkEKK1JBVEtPViBWTEFESU1JUgorUkFUS09WIFZMQURJTUlSCitSQVRLT1YgVk9KSVNMQVYKK1JBVEtPViBWVUpJQ0EKK1JBVcWgIEtMQVVESUpBCitSQVXFoCBSSUhBUkQKK1JBVcWgRU5CRVJHRVIgTUFSVElOCitSQVXFoEtJIMSQT1LEkEUKK1JBVcWgS0kgQU5HRUxJTkEKK1JBVcWgS0kgREFOSUxPCitSQVXFoEtJIExKSUxKQU5BCitSQVXFoEtJIE1JTEFOQQorUkFVxaBLSSBNSUxPxaAKK1JBVVNBVkxKRVZJxIYgxJBPUsSQRQorUkFVU0FWTEpFVknEhiBEVcWgQU5LQQorUkFVWkEgUEFMS08KK1JBVkFKScSGIMSQVVJPCitSQVZBU0kgTEpVQklDQQorUkFWScSGIE5JS09MQQorUkFWScSGIFNMT0JPREFOS0EKK1JBVkxJxIYtQkFOSkFDIFNORcW9QU5BCitSQVZMScSGIFBFSk8KK1JBVkxJxIYgVklEQQorUkFWTElKQSBEUkFHQU4KK1JBWkRFVsWgRUsgU1RPSkFOS0EKK1JBWknEhiBExb1FTUFMCitSQVpNT1ZTS0kgTklLT0xBCitSQVpVTUVOScSGLUtPVFJPxaBBTiBNSUxFTkEKK1JFxIxFSSBJTE9OS0EKK1JFxIxLTyBJTEXFoAorUkXFoMSGQU5TS0kgQk/FoEtPCitSRcWgxIZBTlNLSSBCT0dEQU4KK1JFxaDEhkFOU0tJIFZFUkEKK1JFxaBFVEFSIEFOVEUKK1JFxaBFVEFSIFNUQU5BCitSRcWgRVRBUk9WScSGIEpPVkFOCitSRcWgSVRJIMSQT1LEkEUKK1JFxaBOSkFLIEFORFJJSkEKK1JFxaBOSkFLIExBU0xPCitSRcWgTkpBSyBTVEVWQU4KK1JFxaBOSkFLIFpPUklDQQorUkXFvU5KQUsgTEFTTE8KK1JFxb1VSyBKT1NJUAorUkXEkEVQIERSQcWgS08KK1JFxJBFUEkgRMW9RUxKQU4KK1JFxJBFUEkgTUlMQUlNCitSRcSQRVBPVknEhiBBTElKQQorUkVCQSBCTEFHT0pFCitSRUJBIElHT1IKK1JFQkEgSUdPUgorUkVCScSGIEJPR0RBTiBESVBMIElORworUkVCScSGIERSQUdBTgorUkVCScSGIE5FREVMSktPCitSRUJJxIYgTkVERUxKS08KK1JFQknEhiBTSU1FT04KK1JFQknEhiBTSU1PCitSRUJJxIYgU0xPQk9EQU4gRFIKK1JFQknEhiBWTEFESU1JUgorUkVCUklOQSBLQVRBUklOQQorUkVExb1BIElCUkFISU0KK1JFRMW9RUsgSk9WQU4KK1JFRMW9RVAgSlVTTklKQQorUkVExb1FUE9WIMWgRVZLSU4KK1JFRMW9RVBPViBLQU1CRVIKK1JFREUgUlVET0xGCitSRURJRyBWSUxJTQorUkVETEkgxJBPUsSQRQorUkVETEkgTUFSSUpBCitSRURMSSBWRVJBCitSRUdBSlogU1RFVkFOCitSRUdFQyBFVEVMS0EKK1JFR0VMSkFDIExKVUJJQ0EKK1JFR0VMSkFDIE1BUkEKK1JFR0VSIEpPVkFOCitSRUdMIFZMQURJTUlSCitSRUdPREnEhiBTVkVUT1pBUgorUkVHT0pFVknEhiBNTEHEkEVOS08KK1JFSEFLIElNUkUKK1JFSEFLIExBU0xPCitSRUhBSyBPTEdBCitSRUhORVIgTUFSSUpBCitSRUhORVIgU1RBTUVOS0EKK1JFSU5IT0xDIMSQRVpFCitSRUlOSE9MQyDEkEVaRQorUkVJTkhPTFogxJBFWkUKK1JFS0EgQVJJRgorUkVLQS1JVkFOT1ZJxIYgRFXFoElDQQorUkVLRcSGRSDFoEFORE9SCitSRUtFQ0tJIEVMRU9OT1JBCitSRUtFQ0tJIEpPxb1FRgorUkVLScSGIEhVU0VJTgorUkVMScSGIMSQT1LEkEUKK1JFTEnEhiDEkE9SxJBFCitSRUxJxIYgREFSS08KK1JFTEnEhiBESU1JVFJJSkUKK1JFTEnEhiBHT0pLTworUkVMScSGIEpPVkFOCitSRUxJxIYgSk9WSUNBCitSRUxJxIYgS09OU1RBTlRJTgorUkVMScSGIExKVUJBTgorUkVMScSGIE1JTEFOCitSRUxJxIYgTUlMRU5LTworUkVMScSGIE1JTElWT0oKK1JFTEnEhiBNSVJBCitSRUxJxIYgUEFWTEUKK1JFTEnEhiBQRVRBUgorUkVMScSGIFJBRElOS0EKK1JFTEnEhiBTQVZBCitSRUxJxIYgU0xBVk9MSlVCCitSRUxJxIYgU09GSUpBCitSRUxJxIYgU09GSUpBCitSRUxJxIYgU1BPTUVOS0EgRElQTCBQUkFWTklLCitSRUxJxIYgU1JFVEEKK1JFTEpBTk9WScSGIE1BUklKQQorUkVMSknEhiDEkFVSSUNBCitSRUxKScSGIMSQVVJPCitSRUxKScSGIEJPxb1JREFSCitSRUxKScSGIERBTUpBTktBCitSRUxKScSGIERBTklMTworUkVMSknEhiBKT1ZBTgorUkVMSknEhiBMSlVCT01JUgorUkVMSknEhiBNQVJBCitSRUxKScSGIE1JTE9SQUQKK1JFTEpJxIYgUk9NQU4KK1JFTEpJxIYgU0xBVktPCitSRUxKScSGIFNNSUxKQQorUkVMSknEhiBTTkXFvUFOQQorUkVMSknEhiBTVEVWQU4KK1JFTEpJxIYgU1RFVkEKK1JFTEpJxIYgWkxBVEtPCitSRUxKScSGIFpPUktBCitSRUxKSU4gRFXFoEFOS0EKK1JFTEpJTiBEVcWgQU4KK1JFTEpJTiBEVcWgQU4KK1JFTEpJTiBJR05KQVQgRFIKK1JFTEpJTiBJTE9OQQorUkVMSklOIElWQU4KK1JFTEpJTiBMQVpBUgorUkVMSklOIExFUE9TQVZBCitSRUxKSU4gTUFSSUNBCitSRUxKSU4gTUlMQU4KK1JFTEpJTiBNSUxBTgorUkVMSklOIE1JTElDQQorUkVMSklOIE1JTElWT0oKK1JFTEpJTiBNSUxPxaAKK1JFTEpJTiBNSUxPxaAKK1JFTEpJTiBNSUxPxaAKK1JFTEpJTiBNSUxPxaAKK1JFTEpJTiBNSUxPUkFECitSRUxKSU4gTkFEQQorUkVMSklOIFBST0tPUElKRQorUkVMSklOIFJBRE9WQU4KK1JFTEpJTiBTQVZBCitSRUxKSU4gU0lNQQorUkVMSklOIFNMT0JPREFOCitSRUxKSU4gU1RFVkFOCitSRUxPVEEgUlVET0xGCitSRU1FQ0tJIERSQUdVVElOCitSRU1FQ0tJIFBFVEFSCitSRU1FTEkgQU5UT04KK1JFTUVMSSBMQVNMTworUkVNRU5BUiBEUkFHVVRJTgorUkVNRVIgQlJBTklTTEFWCitSRU1MSU5HRVIgUk9CRVJUCitSRU7EjEFSIMWgQU5ET1IKK1JFTsSMQVIgVElWQURBUgorUkVOxIxFVknEhiBNSUxBTgorUkVORFVMScSGIE1BUktPCitSRU5EVUxJxIYgU1RPSkFOCitSRVDFoFRPSyBKT8W9RUYKK1JFUEHFoEkgSk9TSVAKK1JFUEHFoEkgU1RFVkFOCitSRVBBQyDFvVXFvUFOQQorUkVQQUMgxJBPUsSQRQorUkVQQUMgQU5BCitSRVBBQyBJU0EKK1JFUEFDIEpPVkFOCitSRVBBQyBLT1ZJTEpLQQorUkVQQUMgTUlST1NMQVYKK1JFUEFDIFBFUktJQ0EKK1JFUEFDIFBFVEFSCitSRVBBQyBTTEFWS08KK1JFUEFDIFNUQU5JxaBBCitSRVBBQyBWQVNJTElKQQorUkVQScSGIMW9SVZBTgorUkVQScSGIERBTklDQQorUkVQScSGIEVNSUwKK1JFUEnEhiBHSVpFTEEKK1JFUEnEhiBJVkFOCitSRVBJxIYgTUFSS08KK1JFUEnEhiBNSUxFTkEKK1JFUEnEhiBNSUxLQQorUkVQScSGIFZFUklDQQorUkVQScSGIFpPUkFOCitSRVNBTiBBTkEKK1JFU0FOT1ZJxIYgQU5LQQorUkVTQU5PVknEhiBEUkFHQU4KK1JFU0FOT1ZJxIYgTEpVQk8KK1JFU0FOT1ZJxIYgTkFEQQorUkVTQU5PVknEhiBQRVJPCitSRVNNQU4gWkRSQVZLTworUkVTVUxPVlNLSSBTVE9KQU4KK1JFVSBMQVZJTkVMCitSRVZFUyBBTkRSSUpBCitSRVZJRCBLQVRBUklOQQorUkVaQU5DT1YgS0FUSUNBCitSRVpFQyBBTlRPTgorUkVaTknEjEVLIEtBUkxPCitSScW9QU5KSSBJUkVOQQorUknEkEnEjEtJIMSQT0tBCitSScSQScSMS0kgxJBPUsSQRQorUknEkEnEjEtJIE1JTEFOS0EKK1JJxJBJxIxLSSBNSUxBTgorUknEkEnEjEtJIFNQT01FTktBCitSScSQSUstR1JVSknEhiDEjEVET01JUgorUknEkElLLUdSVUpJxIYgSkFEUkFOS0EKK1JJxJBJSy1HUlVKScSGIFZFTElNSVIKK1JJQkFSIMWgQU5ET1IKK1JJQkFSIEJFTEEgRFIKK1JJQkFSIElNUkUKK1JJQkFSIEtBVElDQQorUklCQVJFVknEhiBWRVJBCitSSUJBUk9WIE1JUk9TTEFWCitSSUJBUk9WIFNMQVZJQ0EKK1JJQknEjCBSVcW9QQorUklCScSGIMSMRURPCitSSUJJxIYgQlJBTktPCitSSUJJxIYgRlJBTkMKK1JJQknEhiBKT1ZBTgorUklCScSGIE1JSEFKTE8KK1JJQknEhiBNSUxBTgorUklCScSGIFBBVk8KK1JJQknEhiBQRVRBUgorUklCScSGIFNUQU5LTworUklCScSGIFpPUklDQQorUklCT1ZJxIYgQU1BTElKQQorUklDIE1JSEFMSiBESVBMIE9FQworUklDIFJVRE9MRgorUklDIFZFU0VMSU4KK1JJQ0EgQU5JQ0EKK1JJQ0UgTUFSR0lUQQorUklHTyDEkFVMQQorUklHTyBMQVNMTworUklIQUsgTkFORE9SCitSSUhUQVJFQyBLQVRBUklOQQorUklKQVZFQyBJVkFOCitSSUtFUiBaVk9OSU1JUgorUklLScSGIMW9RUxKS08KK1JJS0nEhiBEUkFHSUNBCitSSUtJxIYgTUlMQURJTgorUklLScSGIE1JTEVOS08KK1JJTCBQQUwKK1JJTEFLIE1JTE9NSVIKK1JJTEtFIFJPQkVSVAorUklNxaBOQUpERVIgUk9CRVJUCitSSU1BQyBKT1NJUAorUklNQU4gRUdPTiBEUgorUklNQVIgTEVPTkEKK1JJTUFSIFZMQURJTUlSCitSSU1TS0kgxb1BUktPCitSSU1TS0kgxb1BUktPCitSSU1TS0kgxb1BUktPCitSSU1TS0kgxb1BUktPCitSSU1TS0kgxJBPS0EKK1JJTVNLSSBCSVNFUktBCitSSU1TS0kgQklTRVJLQQorUklNU0tJIEJSQU5JU0xBVgorUklNU0tJIEJSQU5LQQorUklNU0tJIEJSQU5LTworUklNU0tJIEpBU01JTkEKK1JJTVNLSSBKRUxFTkEKK1JJTVNLSSBNSUxBTgorUklNU0tJIE1JTElDQQorUklNU0tJIE5BVEFMSUpBCitSSU1TS0kgTk9WQUsKK1JJTVNLSSBTQVZBCitSSU1TS0kgU0FWQQorUklNU0tJIFNNSUxKQQorUklNU0tJIFNNSUxKQQorUklNU0tJIFNURVZBTgorUklTIMWgQU5ET1IKK1JJUyBBTEVLU0FOREFSCitSSVMgRFJBR0lOSkEKK1JJUyBEVcWgS08KK1JJUyBHRVpBCitSSVMgTkVERUxKS08KK1JJUyBTVEVWQU4KK1JJUyBUQU5KQQorUklTIFpEUkFWS08KK1JJU09WScSGIERVxaBBTgorUklTT1ZJxIYgTkVERUxKS08KK1JJU09WScSGIE5FREVMSktPCitSSVNUQSDFvUVMSktBCitSSVNUQU5PVknEhiBDVkVUSU4KK1JJU1RBTk9WScSGIFJBREUKK1JJU1RBTk9WScSGIFJBRE9TTEFWCitSSVNUQU5PVknEhiBWRVJJQ0EKK1JJU1RBTk9WScSGIFZPSklNSVIKK1JJU1RBTk9WScSGIFpEUkFWS08KK1JJU1RBTk9WScSGIFpPUkFOCitSSVNUQU5PVknEhiBaT1JBTgorUklTVEnEhiDEkE9SxJBFIERSIExFS0FSCitSSVNUScSGIMSQT1LEkEUKK1JJU1RJxIYgxJBPUsSQRQorUklTVEnEhiDEkE9SxJBFCitSSVNUScSGIMSQVUpBCitSSVNUScSGIMSQVVLEkEEKK1JJU1RJxIYgQUxFS1NBTkRBUgorUklTVEnEhiBBTEVLU0FOREFSCitSSVNUScSGIEFMRUtTQU5EQVIKK1JJU1RJxIYgQUxFS1NBTkRBUgorUklTVEnEhiBBTEVLU0EKK1JJU1RJxIYgQU5EUklKQQorUklTVEnEhiBCT8W9SURBUgorUklTVEnEhiBCT8W9SURBUgorUklTVEnEhiBCT1JBCitSSVNUScSGIEJPUklTTEFWCitSSVNUScSGIEJSQU5JU0xBVgorUklTVEnEhiBCUkFOS08KK1JJU1RJxIYgQ1ZKRVRBTktBCitSSVNUScSGIERBTklMTworUklTVEnEhiBEQVJJTktBCitSSVNUScSGIERJTUlUUklKRQorUklTVEnEhiBESU1JVFJJSkUKK1JJU1RJxIYgRElNSVRSSUpFCitSSVNUScSGIERPQlJJVk9KRQorUklTVEnEhiBEUkFHQU4KK1JJU1RJxIYgRFJBR0FOCitSSVNUScSGIERSQUdJxaBBCitSSVNUScSGIERSQUdJQ0EKK1JJU1RJxIYgRFJBR09KTEEKK1JJU1RJxIYgRFJBR09MSlVCCitSSVNUScSGIERSQUdPTEpVQgorUklTVEnEhiBEVcWgQU4gRFIKK1JJU1RJxIYgRFXFoEFOCitSSVNUScSGIERVxaBBTgorUklTVEnEhiBEVcWgQU4KK1JJU1RJxIYgRFXFoEFOCitSSVNUScSGIEdBVlJJTE8KK1JJU1RJxIYgSVNJRE9SCitSSVNUScSGIEpBU01JTkEKK1JJU1RJxIYgSkVMRU5BCitSSVNUScSGIEpFTEVOQQorUklTVEnEhiBKRVJFTUlKQQorUklTVEnEhiBKT1ZBTiBEUgorUklTVEnEhiBKT1ZBTiBEUgorUklTVEnEhiBKT1ZBTgorUklTVEnEhiBLU0VOSUpBCitSSVNUScSGIExBQlVEIERSIExFS0FSCitSSVNUScSGIExBWkFSCitSSVNUScSGIExKSUxKQU5BCitSSVNUScSGIExKSUxKQU5BCitSSVNUScSGIExKVUJJQ0EKK1JJU1RJxIYgTEpVQklDQQorUklTVEnEhiBNQVJJSkEKK1JJU1RJxIYgTUFSSUpBCitSSVNUScSGIE1BUklKQQorUklTVEnEhiBNQVJJSkEKK1JJU1RJxIYgTUFSSUpFTktBCitSSVNUScSGIE1BUktPCitSSVNUScSGIE1JSEFKTE8KK1JJU1RJxIYgTUlMQU5LQQorUklTVEnEhiBNSUxBTgorUklTVEnEhiBNSUxBTgorUklTVEnEhiBNSUxBTgorUklTVEnEhiBNSUxBTgorUklTVEnEhiBNSUxBTgorUklTVEnEhiBNSUxFVEEKK1JJU1RJxIYgTUlMSVZPSkUKK1JJU1RJxIYgTUlMS0EKK1JJU1RJxIYgTUlMT8WgCitSSVNUScSGIE1JTE/FoAorUklTVEnEhiBNSUxPUkFECitSSVNUScSGIE1JTE9SQUQKK1JJU1RJxIYgTUlMVU4KK1JJU1RJxIYgTUlMVVRJTgorUklTVEnEhiBNSU9EUkFHCitSSVNUScSGIE1JT0RSQUcKK1JJU1RJxIYgTUlST1NMQVYKK1JJU1RJxIYgTUlST1NMQVYKK1JJU1RJxIYgTUlST1NMQVYKK1JJU1RJxIYgTUlST1NMQVYKK1JJU1RJxIYgTUlST1NMQVYKK1JJU1RJxIYgTUxBREVOCitSSVNUScSGIE5BREEKK1JJU1RJxIYgTkFUQUxJSkEKK1JJU1RJxIYgTkVHT1ZBTgorUklTVEnEhiBORVNUT1IKK1JJU1RJxIYgTklLT0xBCitSSVNUScSGIE5JS09MQQorUklTVEnEhiBOT1ZJQ0EKK1JJU1RJxIYgT0xHQQorUklTVEnEhiBQQVZMRQorUklTVEnEhiBQRVJBCitSSVNUScSGIFBFVEFSCitSSVNUScSGLVBPUE9WScSGIE1JTElDQQorUklTVEnEhiBSQURJU0FWCitSSVNUScSGIFJBSVNBCitSSVNUScSGIFJPRE9MSlVCIERSCitSSVNUScSGIFNBVkEKK1JJU1RJxIYgU0FWQQorUklTVEnEhiBTQVZPCitSSVNUScSGIFNMQcSQQU4KK1JJU1RJxIYgU0xBVklDQQorUklTVEnEhiBTTEFWSUNBCitSSVNUScSGIFNMQVZLTworUklTVEnEhiBTUE9NRU5LQQorUklTVEnEhiBTVEFOScWgQQorUklTVEnEhiBTVEFOT0pFIERSCitSSVNUScSGIFNURVZBTgorUklTVEnEhiBTVEVWQU4KK1JJU1RJxIYgU1RFVkFOCitSSVNUScSGIFNURVZBTgorUklTVEnEhiBTVEVWSUNBCitSSVNUScSGIFNWRVRJU0xBVgorUklTVEnEhiBURU1FTEpLTworUklTVEnEhiBUT01JU0xBVgorUklTVEnEhiBWRVJJQ0EKK1JJU1RJxIYgVklUT01JUgorUklTVEnEhiBWTEFESU1JUgorUklTVEnEhiBWTEFESU1JUgorUklTVEnEhiBWTEFESU1JUgorUklTVEnEhiBWT0pJTgorUklTVEnEhiBWT0pJU0xBVgorUklTVEnEhiBaQUdPUktBCitSSVNUScSGIFpEUkFWS08KK1JJU1RJxIYgWk9SQU4KK1JJU1RJxIYgWk9SQU4KK1JJU1RJTiBKT1ZBTgorUklTVElOIE1JT0RSQUcKK1JJU1RJTiBNSU9EUkFHCitSSVNUSVZPSkVWScSGIEFOxJBFTEtBCitSSVNUSVZPSkVWScSGIEFOSUNBCitSSVNUSVZPSkVWScSGIERFU0lNSVIKK1JJU1RJVk9KRVZJxIYgSUdOSkFUCitSSVNUSVZPSkVWScSGIFJBRE9NSVIKK1JJU1RJVk9KRVZJxIYgUkFUT01JUgorUklTVElWT0pFVknEhiBTVE9KQU5LQQorUklTVElWT0pFVknEhiBaRFJBVktPCitSSVNUT1ZJxIYgSk9WQU5LQQorUklTVE9WScSGIE5FQk9KxaBBCitSSVNUT1ZJxIYgUkFESVZPSkUKK1JJU1RPVknEhiBSQVRLTworUklTVE9WU0tJIEFMRUtTQU5EQVIKK1JJU1RPVlNLSSBLT1NUQQorUklTVE9WU0tJIExKSUxKQU5BCitSSVNUT1ZTS0kgTEpJTEpBTkEKK1JJU1RPVlNLSSBMSlVCTworUklTVE9WU0tJIFNJTUVPTgorUklURVIgQU5LSUNBCitSSVRFUiBBTlRPTgorUklURVIgRlJBTkpBCitSSVRFUiBKT8W9RUYKK1JJVEVSIExVRFZJRworUklURVIgTkFEQQorUklUT0MgR0VaQQorUklUVEVSIMWgQU5ET1IKK1JJVknEhiBJVk8KK1JJWk5JxIYgQlJBTklTTEFWQQorUklaTknEhiBWRUxKS08KK1JJWk5JxIYgVkVMSktPCitSSVpPVlNLSSBEUkFHTworUklaVkFOIMWgVUtSSQorUklaVkFOT1ZJxIYgU0FESUsKK1JNVcWgIFpPUklDQQorUk5JxIYgTUlIQUlMTworUk5KQUsgREFOSUNBCitSTkpBSyBTVEFOS08KK1JPxaBJTiBLU0VOSUpBCitST8WgSU4gWk9SS08KK1JPxaBVIEtPU1RBCitST8WgVUxKIMW9SVZBTgorUk/FoFVMSiDFvUlWQQorUk/FoFVMSiBBTsSQRUxLQQorUk/FoFVMSiBFTUlMCitST8WgVUxKIExBWkFSCitST8WgVUxKIE1JTEFOQQorUk/FoFVMSiBNSUxPUkFECitST8WgVUxKIFJBRE9WQU4KK1JPxaBVTEogU1ZFVE9aQVIKK1JPxaBVTEogWk9SQU4KK1JPxaBVTEpBIFZBU0EKK1JPxaBVTE9WIFNUQURPSkUKK1JPxb1BIEJFTEEKK1JPxb1BIEZFUkVOQworUk/FvUEgSkFOT8WgCitST8W9QSBKT1ZBTgorUk/FvUEgTUlSS08KK1JPxb1BTktPVknEhiBJVkFOCitST8SQQUsgRlJBTkpBCitST8SQRU5LT1Ygxb1JVk9KSU4KK1JPxJBFTktPViDEkFVSQQorUk/EkEVOS09WIE1JTE/FoAorUk9CT1RJxIYgQU5BCitST0JPVEnEhiBURVJFWkEKK1JPRCBEQU5JQ0EKK1JPREnEhiDEjEVET01JUgorUk9EScSGIMSMRURPTUlSCitST0RJxIYgxaBQSVJPCitST0RJxIYgxJBPUsSQRQorUk9EScSGIEFMRUtTQU5EQVIKK1JPREnEhiBBTkRSSUpBCitST0RJxIYgQk/FvU8KK1JPREnEhiBCT8W9TworUk9EScSGIEJPR0RBTgorUk9EScSGIEJPUklTTEFWCitST0RJxIYgQk9SSVNMQVYKK1JPREnEhiBCUkFOSVNMQVYKK1JPREnEhiBEQU5JQ0EKK1JPREnEhiBEUkFHQU4KK1JPREnEhiBEUkFHT01JUgorUk9EScSGIERVxaBBTgorUk9EScSGIERVxaBBTgorUk9EScSGIERVxaBBTgorUk9EScSGIERVxaBBTgorUk9EScSGIEdPSktPCitST0RJxIYgR09KS08KK1JPREnEhiBHT0pLTworUk9EScSGIEpFTElTQVZFVEEKK1JPREnEhiBKT1ZPCitST0RJxIYgTEVQQQorUk9EScSGIExKSUxKQU5BCitST0RJxIYgTUFOT0pMTworUk9EScSGIE1JxIZBCitST0RJxIYgTUnEhk8KK1JPREnEhiBNSUxBTgorUk9EScSGIE1JTEVOQQorUk9EScSGIE1JTElDQQorUk9EScSGIE1JTElDQQorUk9EScSGIE1JTEtBCitST0RJxIYgTUlMT8WgCitST0RJxIYgTUlMT1JBRAorUk9EScSGIE1JUktPCitST0RJxIYgTUlST1NMQVYKK1JPREnEhiBOQVRBTElKQQorUk9EScSGIE5FxJBPCitST0RJxIYgTkVERUxKS08KK1JPREnEhiBOSUtPTEEKK1JPREnEhiBOSUtPTEEKK1JPREnEhiBOSUtPTEEKK1JPREnEhiBOSUtPTEEKK1JPREnEhiBPTEdBCitST0RJxIYgUEVUQVIgRElQTCBJTkcKK1JPREnEhiBQRVRBUgorUk9EScSGIFBFVFJBCitST0RJxIYgUkFERQorUk9EScSGIFJBTktPCitST0RJxIYgU0xBVktPCitST0RJxIYgU01JTEpBCitST0RJxIYgU1JFVEVOCitST0RJxIYgU1RBTktPCitST0RJxIYgU1RFVkFOCitST0RJxIYgU1VaQU5BCitST0RJxIYgU1VaQU5BCitST0RJxIYgU1ZFVEtPCitST0RJxIYtVE9NTEpBTk9WScSGIE1JUkpBTkEKK1JPREnEhiBWRVJJQ0EKK1JPREnEhiBaT1JBTgorUk9HQcSMIFNWRVRMQU5BCitST0dBxIwgU1ZFVE9aQVIKK1JPR0HEjEVWScSGIE9CUkFECitST0dBTEpTS0kgSkVMRU5BCitST0dBTE8gQU5UT04KK1JPR0FOIFNWRVRPWkFSCitST0dBTk9WScSGIEtBVEFSSU5BCitST0dBTk9WScSGIExVS0EKK1JPR0FOT1ZJxIYgTUlMQU5LQQorUk9HQU5PVknEhiBOQURBCitST0dBTk9WScSGIE5PVkFLCitST0dBTk9WScSGIFNMT0JPREFOCitST0dBTk9WScSGIFNURVZPCitST0dBTk9WScSGIFRBTkpBCitST0dBTk9WScSGIFZFTElaQVIKK1JPR0FWQUMgTUlMQU4KK1JPR0nEhiBBTEVLU0EKK1JPR0nEhiBNSUxPUkFECitST0dJxIYgU0FWQQorUk9HScSGIFZFTEpLTworUk9HScSGIFZFU0VMSU4KK1JPR0nEhiBWRVNOQQorUk9HScSGIFpPUkFOCitST0dMScSGIElWQU4KK1JPR0xJxIYgTEpVQk9NSVIKK1JPR0xJxIYgTUlMQU4KK1JPR0xJxIYgVkVTTkEKK1JPR0xJxIYgVkVTTkEKK1JPR0/FvUFSU0tJIFNURVZBTktBCitST0dVTEnEhiBKRUxFTkEKK1JPR1VMSkEgxJBPUsSQRQorUk9HVUxKQSBJTElKQQorUk9HVUxKQSBKT1ZBTgorUk9HVUxKQSBOSUtPTEEKK1JPR1VMSkEgUEFWTEUgRFIKK1JPR1VMSknEhiBNSUxPUkFECitST0dVTEpJxIYgTkVERUxKS08KK1JPR1VMSknEhiBQUkVEUkFHCitST0dVTEpJxIYgWkRSQVZLTworUk9KS0EgQU5EUkVKCitST0pLQSBBTkRSRUoKK1JPSk5JSyBMSlVCT01JUgorUk9LQSDFvVXFvUFOQQorUk9LQSBKQU5PxaAKK1JPS0EgVkFMRVJJSkEKK1JPS0FJIFBFVEFSCitST0tJxIYgRFXFoEFOCitST0tJxIYgTUlMRU5LTworUk9LTElDRVIgRlJBTkpBCitST0tMSUNFUiBKT1NJUAorUk9LTknEhiBKVUxLSUNBCitST0tOScSGIE1JTEVOS08KK1JPS05JxIYgTU9NxIxJTE8KK1JPS1NBTkRJxIYgQURBTQorUk9LU0FOREnEhiBNSUxBTgorUk9LU0FOREnEhiBTSU1BCitST0tTQU5EScSGIFZMQURJTUlSCitST0tTQU5EScSGIFZMQURPCitST0tTScSGIFNMT0JPREFOCitST0tWScSGIEJPR0RBTgorUk9LVknEhiBCUkFOSVNMQVYKK1JPS1ZJxIYgRFXFoEFOCitST0tWScSGIEdPSktPCitST0tWScSGIExBWkFSCitST0tWScSGIE1BUktPCitST0tWScSGIE1JTEFOCitST0tWScSGIE1JTElDQQorUk9LVknEhiBNSUxPUkFECitST0tWScSGIE5JS09MQSBESVBMIFBPTElUSUtPTE9HCitST0tWScSGIE9NSUxKS08KK1JPS1ZJxIYgUkFESVZPSgorUk9LVknEhiBSQURPSktBCitST0tWScSGIFJBTktPCitST0tWScSGIFNJTknFoEEKK1JPS1ZJxIYgVkVTRUxLTworUk9LVknEhiBaRFJBVktPCitST0xBTkQgVE9NSVNMQVYKK1JPTE9WScSGIERVxaBBTktBCitST0xPVknEhiBPTEdBCitST00gQlJBTktBCitST03EjEVWIE1JUk9TTEFWCitST01BTiBKRUxFTkEKK1JPTUFOIExKVUJJQ0EKK1JPTUFOIE1JTkVBCitST01BTiBNSVJPTgorUk9NQU4gUk9NS08KK1JPTUFOREnEhiBBTktJQ0EKK1JPTUFOREnEhiBKRUxFTkEKK1JPTUFOREnEhiBTVEFOSU1JUgorUk9NQU5FTEkgR0lOTworUk9NQU5JxIYgRFXFoEFOCitST01BTknEhiBFUsW9RUJFVAorUk9NQU5JxIYgSk9DMAorUk9NQU5JxIYgTUFSSUpBCitST01BTktJViBNSUhBSkxPCitST01BTk9WIEpPU0lQCitST01BTk9WIFNORcW9QU5BCitST01BTk9WScSGIMSQT1LEkEUgRElQTCBQUkFWTklLCitST01BTk9WScSGIMSQT1LEkEUKK1JPTUFOT1ZJxIYgQUxFS1NBTkRBUgorUk9NQU5PVknEhiBJTElOS0EKK1JPTUFOT1ZJxIYgTUlMQU4KK1JPTUFOT1ZJxIYgTkFEQQorUk9NQVMgSk9TSVAKK1JPTUnEhiBFVEEKK1JPTUnEhiBKQU5LTworUk9NScSGIExKVUJPTUlSCitST01JxIYgTEpVQk9NSVIKK1JPTUnEhiBNTEFERU4KK1JPTUnEhiBORU5BRAorUk9NScSGIFBBVkxFCitST01JxIYgUFJFRFJBRworUk9NT0RBIEnFoFRWQU4KK1JPTU9EQSBLQVJMTworUk9NT0RBIE1BUklKQQorUk9OxIxFTEkgS0FUSUNBCitST07EjEVWScSGIEJPR0RBTgorUk9OxIxFVknEhiBEUkFHQU4KK1JPTsSMRVZJxIYgSUtPTklKQQorUk9OxIxFVknEhiBLT1NUQQorUk9OxIxFVknEhiBNSUxFCitST07EjEVWScSGIE5BREEKK1JPTsSMRVZJxIYgT0JSQUQKK1JPTsSMRVZJxIYgUEVUQVIKK1JPTsSMRVZJxIYgUEVUQVIKK1JPTsSMRVZJxIYgUEVUQVIKK1JPTsSMRVZJxIYgUkFESVZPSkUKK1JPTsSMRVZJxIYgU0FWRVRBCitST07EjEVWScSGIFNBVk8KK1JPTsSMRVZJxIYgU1RBTkEKK1JPTsSMRVZJxIYgU1RBTklNSVIKK1JPTsSMRVZJxIYgU1RBTklNSVIKK1JPTsSMRVZJxIYgU1RFVkFOCitST07EjEVWScSGIFNURVZBTgorUk9OxIxFVknEhiBWRVJBCitST05BSSBNSVJLTyBESVBMIElORworUk9OVE8gRlJBTkNJxaBLQQorUk9OVE8gSUxPTktBCitST05UTyBKQUtPQgorUk9OVE9WScSGIFJBRE9TTEFWCitST1IgREVTQQorUk9SQkFIRVIgTUFHRE9MTkEKK1JPU0nEhiDEkFVSTworUk9TScSGIEJPR0RBTgorUk9TScSGIERSQUdBTkEKK1JPU0nEhiBEUkFHQU4KK1JPU0nEhiBEUkFHQU4KK1JPU0nEhiBEUkFHQU4KK1JPU0nEhiBEUkFHQU4KK1JPU0nEhiBEVcWgQU4KK1JPU0nEhiBHUk9aREFOQQorUk9TScSGIElMSUpBCitST1NJxIYgTEpJTEpBTkEKK1JPU0nEhiBNSUxFTkEKK1JPU0nEhiBNSUxJQ0EKK1JPU0nEhiBNSUxPUkFECitST1NJxIYgTUlPRFJBRworUk9TScSGIE5JS09MQQorUk9TScSGIE9TVE9KQQorUk9TScSGIFZMQURJTUlSCitST1NJxIYgWk9SQU4KK1JPU0xBVkxKRVYgVk9KSVNMQVYKK1JPU08gSVZBTgorUk9TTyBNQVJUQQorUk9UIERFWklERVIKK1JPVCBGUkFOSkEKK1JPVEFSSVUgVElCRVJJSkUKK1JPVEJBUlQgVkxBRElTTEFWCitST1RJTSBJVkFOCitST1bEjEFOSU4gRVXEkEVOSUpBCitST1bEjEFOSU4gVVpFSVIKK1JPVsSMQU5JTiBWRVNFTElOCitST1ZJxIYgQlJBTklTTEFWCitST1ZJxIYgRElNSVRSSUpFCitST1ZPIE1JSEFMSgorUk9aRU5UQUwgRFJBR0lDQQorUk9aRU5UQUwgS0FSTE8KK1JPWkVOVEFMIE1BUlRPTgorUk9aScSGIEFOVEUKK1JPWk1BUklORyBJxaBUVkFOCitST1pNSVJPViBEUkFHQU4KK1JPWk1JUk9WIE1JTEVOS08KK1JVxaBJVEkgQUxJSkEKK1JVxaBLTyBFUsW9RUJFVAorUlXFoEtVQyDEkE9SxJBFCitSVcWgS1VDIEFUQU5BU0lKRQorUlXFoEtVQyBNQVJHQVJJVEEKK1JVxaBLVUMgTUFSVEEKK1JVxaBLVUMgUEFWTEUKK1JVxaBLVUMgU1RFVkFOCitSVcWgS1VDIFNWRVRJU0xBVgorUlXFoEtVQyBWRVNFTElOCitSVcWgS1VDIFZMQURJTUlSCitSVcW9QU5PVknEhiBEUkFHT0xKVUIKK1JVxb1BTk9WScSGIE1BUklKQQorUlXFvUnEjEnEhiDEkE9SxJBFCitSVcW9ScSMScSGIEJPxaBLTworUlXFvUnEjEnEhiBNSUxBTgorUlXFvUnEjElOIERBTklDQQorUlXFvUnEjElOIFJBRElWT0oKK1JVxb1JxIxLQSDEkFVSQQorUlXFvUnEjEtBIFJVxb1BCitSVcW9ScSGIMW9QVJLTworUlXFvUnEhiBBTEVLU0FOREFSCitSVcW9ScSGIERSQcW9QU5BCitSVcW9ScSGIERVxaBBTgorUlXFvUnEhiBEVcWgQU4KK1JVxb1JxIYgRFXFoEFOCitSVcW9ScSGIEVNQQorUlXFvUnEhiBHT1JEQU5BCitSVcW9ScSGIElWSUNBCitSVcW9ScSGIEpPVkFOCitSVcW9ScSGIEpPVk8KK1JVxb1JxIYgSlVMS0EKK1JVxb1JxIYgS1JTVE8KK1JVxb1JxIYgTUFSSUpBCitSVcW9ScSGIE1BUklKQQorUlXFvUnEhiBNSUxBTgorUlXFvUnEhiBNSUxBTgorUlXFvUnEhiBNSUxJVk9KCitSVcW9ScSGIE1JUkEKK1JVxb1JxIYgTUlSSkFOQQorUlXFvUnEhiBNSVJKQU5BCitSVcW9ScSGIE1JUktPCitSVcW9ScSGIE5JS09MQQorUlXFvUnEhiBOSUtPTEEKK1JVxb1JxIYgUEFWQQorUlXFvUnEhiBQRVRBUgorUlXFvUnEhiBSQURNSUxBCitSVcW9ScSGIFJBRE9NSVIKK1JVxb1JxIYgU0xPQk9EQU4KK1JVxb1JxIYgU01JTEpBTkEKK1JVxb1JxIYgU1RBTktPCitSVcW9ScSGLVNUQVJJIFZFU05BCitSVcW9ScSGIFNUSkVQQU4KK1JVxb1JxIYgU1ZFVE9MSUsKK1JVxb1JxIYgVkVMSktPCitSVcW9ScSGIFZMQURJTUlSIERJUEwgSU5HCitSVcW9ScSGIFpPUkFOCitSVcW9ScSGIFpPUkFOCitSVcW9SU4gxIxFRE9NSVIKK1JVxb1JTiBNSUxPUkFECitSVcW9TklDS0kgSVZBTgorUlXEkEEgTkVNQU5KQQorUlXEkEEgWk9SQU4KK1JVxJBBIFpPUkFOCitSVUJFxb1JxIYgTUlMT1ZBTgorUlVCRcW9ScSGIFNMT0JPREFOCitSVUJJTiBNSUxBTgorUlVCVcWgIEFHTkVaQQorUlVCVcWgIEpPxb1FRgorUlVEQU4gTUFSS08KK1JVREFOIFJBRElWT0pFCitSVURFxb0gSUxJSkEKK1JVREXFvSBNScSGTworUlVERcW9IFBFUkEKK1JVREVLIEpBUk9TTEFWCitSVURFSyBOSUtPTEEKK1JVREVLIE5JS09MQQorUlVEScSGIERBUktPCitSVURJxIYgRElNSVRSSUpFCitSVURJxIYgRFJBR0FOCitSVURJxIYgRFXFoEFOCitSVURJxIYgSU1SRQorUlVEScSGIElWQU4KK1JVREnEhiBJVkFOCitSVURJxIYgSk9TSVAKK1JVREnEhiBMQVpBUgorUlVEScSGIE1BUktPCitSVURJxIYgTUFSS08KK1JVREnEhiBNSUxLQQorUlVEScSGIE5FREVMSktPCitSVURJxIYgTklLT0xBCitSVURJxIYgUEVSQQorUlVEScSGIFNURVZBTgorUlVEScSGIFNURVZJQ0EKK1JVREnEhi1WUkFOScSGIE5FREVMSktBCitSVURPTEYgS0xBSk4KK1JVRE9MRiBPTEdBCitSVURPTEYgU1BBU09KRQorUlVET0xGIFpPUkFOCitSVURPVknEhiBEQU5JTE8KK1JVRE9WScSGIElMSUpBCitSVURPVknEhiBKVUdPU0xBVgorUlVET1ZJxIYgTUlSSkFOQQorUlVET1ZJxIYgWk9SQU4KK1JVRsSMRVNLSSBTTE9CT0RBTgorUlVKRVZJxIYgSkFEUkFOS0EKK1JVSkVWScSGIE1JTEVWQQorUlVLQVZJTkEtxaBMSUJBUiBIRVJNSU5BCitSVUtBVklOQSBBTEVLU0FOREFSCitSVUtBVklOQSBCQVJJQ0EKK1JVS0FWSU5BIERFU1BJTkEKK1JVS0FWSU5BIERPQlJJTEEKK1JVS0FWSU5BIERVxaBBTgorUlVLQVZJTkEgSlVSRQorUlVLQVZJTkEgS1JFxaBJTUlSCitSVUtBVklOQSBMSlVCSUNBCitSVUtBVklOQSBNQVJJSkEKK1JVS0FWSU5BIE1JTEtBCitSVUtBVklOQSBSVURPTEYKK1JVS0FWSU5BIFJVRE9MRgorUlVLQVZJTkEgU1RFVkFOCitSVUtBVklOQSBaVk9OSU1JUgorUlVNQU4gTUlIQUpMTworUlVOScSGIE1BUklKQQorUlVOScSGIE1JTEFOIERJUEwgSU5HCitSVU5KQUpJxIYgSUxJSkEKK1JVTkpBTklOIMSQT1LEkEUKK1JVTkpBTklOIFZMQURJU0xBVgorUlVOSkFOSU4gVk9KTworUlVOSknEhiBBTUFMSUpBCitSVU5KScSGIERSQUdBTgorUlVOSknEhiBEUkFHSUNBCitSVU5KScSGIEdBVlJJTE8KK1JVTkpJxIYgR09SQU4KK1JVTkpPIEpPVkFOCitSVU5UScSGIEJPxaBLTworUlVQxIxJxIYgVkxBRElNSVIKK1JVUEEgQVRJTEEKK1JVUEFSIEJSQU5JU0xBVgorUlVQQVIgRVLFvUVCRVQKK1JVUEnEhiDFvUlWS08KK1JVUE5KQUsgQlJBTklTTEFWCitSVVMgxJBVUsSQSU5LQQorUlVTIERSQUdBTgorUlVTIElWQU5LQQorUlVTIEpPU0lQCitSVVMgTUFSR0lUQQorUlVTIE1BUklKQQorUlVTIE1JTE9TQVZBCitSVVMgUkFEQQorUlVTIFNMQVZJQ0EKK1JVUyBTTUlMSkEKK1JVUyBTVkVUTEFOQQorUlVTIFZFUkEKK1JVUyBWVUtPU0FWQQorUlVTScSGIEFORFJJSkEKK1JVU0tBSkkgU0xBVk9NSVIKK1JVU0tJIERJTUlUUklKRQorUlVTS0kgTEFaQVIKK1JVU0tPVlNLSSDEkE9SxJBFCitSVVNLT1ZTS0kgRFJBR0lDQQorUlVTS09WU0tJIE1BR0RBTEVOQQorUlVTTUlSIFJBRE1JTEEKK1JVU01JUk9WScSGIEJJTEpBTkEKK1JVU01JUk9WScSGIEJJTEpBTkEKK1JVU09WIMW9QVJLTworUlVTT1Ygxb1JVktBCitSVVNPViBCUkFOS0EKK1JVU09WIEJSQU5LTworUlVTT1YgRFJFTktBCitSVVNPViBLQVRJQ0EKK1JVU09WIEtPU1RBCitSVVNPViBLUklTVElOQQorUlVTT1YgTUFSSUpBCitSVVNPViBNSUxBTgorUlVTT1YgTUlMT1JBRAorUlVTT1YgTkFEQQorUlVTT1YgUEFWTEUKK1JVU09WIFNMT0JPREFOCitSVVNPViBWTEFESU1JUgorUlVTT1ZBTiDFvUlWSUNBCitSVVNPVkFOIERSQUdPTEpVQgorUlVTT1ZBTiBNSUxBTgorUlVTT1ZBTiBNSUxBTgorUlVTVEVNQUdJxIYgRVJWSU4KK1JVU1RFTUkgxaBBQkFOCitSVVRFxaBJxIYgSk9WSUNBCitSVVRJxIYgTUlMT1JBRAorUlVUT05JxIYgSlVMS0lDQQorUlVUT05JxIYtS09MRU5EQSBWSURPU0FWQQorUlVUT05JxIYgTEFaQVIKK1JVVE9OScSGIExBWkFSCitSVVRPTkpTS0kgRFXFoEFOCitSVVRPTkpTS0kgSkVMSUNBCitSVVRPTkpTS0kgSk9WQU5LQQorUlVUT05KU0tJIE5BREEKK1JVVE9OSlNLSSBTTE9CT0RBTgorUlVUT05KU0tJIFZBU0EKK1JVVE9OU0tJIMSQT1LEkEUKK1JVVE9WScSGIEJPxaBLTworU0HEjEVLIE1JUk9TTEFWCitTQcSMRVIgUk9LSQorU0HEjEnEhiBNQVJJSkEKK1NBQkFESSBMQVNMTworU0FCQURJIE1JUkpBTkEKK1NBQkFES0EgxaBBTkRPUgorU0FCQURLQSBJTE9OS0EKK1NBQkFES0EgVkFMRVJJSkEKK1NBQkFET8WgIMWgQU5ET1IKK1NBQkFET8WgIMSQVVJBCitTQUJBRE/FoCBJVkFOCitTQUJBRE/FoCBKQU5LTworU0FCQURPxaAgSkFOS08KK1NBQkFET8WgIEpBTktPCitTQUJBRE/FoCBKT0FLSU0KK1NBQkFET8WgIExKVUJPTUlSCitTQUJBRE/FoCBNScWgQQorU0FCQURPxaAgTUlIQUpMTworU0FCQURPxaAgTUlIQUpMTworU0FCQURPxaAgTUlST1NMQVYKK1NBQkFET8WgIFBBVkxJTkEKK1NBQkFET8WgIFJVxb1JQ0EKK1NBQkFET8WgIFNMQVZOQQorU0FCQURPxaAgU0xBVk9NSVIKK1NBQkFET8WgIFNSQklTTEFWCitTQUJBRE/FoCBTVEVWQU4KK1NBQkFET8WgIFZMQURJTUlSCitTQUJBRE/FoCBWTEFESU1JUgorU0FCQURPxaAgWkRFTktBCitTQUJBRFXFoCBKT1ZBTiBESVBMIElORworU0FCQURVxaAgU1RFVkFOCitTQUJBVEtBIFNURVZBTgorU0FCQVRVxaAgQk9SSVNMQVYKK1NBQkFUVcWgIERSQUdPTEpVQgorU0FCQVRVxaAgVE9NSVNMQVYKK1NBQkxJxIYgQlJBTktPCitTQUJMSkFLIERSQUdBTgorU0FCTEpBSyBGUkFOSk8KK1NBQkxKQUsgTUFSSUpBTgorU0FCTEpBS09WScSGIEVTQUQKK1NBQkxKQVIgxJBPUsSQRQorU0FCTEpBUiBNQU5PSkxPCitTQUJMSkFSIE1JTEFOCitTQUJMSkFSIFRFT0RPUgorU0FCTEpBUkVWScSGIFZFUklDQQorU0FCTEpJxIYgREFOSUxPIERJUEwgUFJBVk5JSworU0FCTEpJxIYgREFSQQorU0FCTEpJxIYgR09SREFOQQorU0FCTEpPViBJxaBUVkFOCitTQUJMSk9WIE1JTElDQQorU0FCTyDFoEFORE9SCitTQUJPIMWgQU5KSUtBCitTQUJPIMSQRVpFCitTQUJPIMSQT1LEkEUKK1NBQk8gxJBPUsSQRQorU0FCTyBBTEVLU0FOREFSCitTQUJPIEFMRUtTQU5EQVIKK1NBQk8gQU5BIERSCitTQUJPIEFOQQorU0FCTyBBTkEKK1NBQk8gQU5EUkHFoAorU0FCTyBBTkRSQcWgCitTQUJPIEFOSUNBCitTQUJPIEFOSUNBCitTQUJPIEJFUlRBTEFOCitTQUJPIERSQUdBTgorU0FCTyBFTElaQUJFVEEKK1NBQk8gRU1JTAorU0FCTyBFUsW9RUJFVAorU0FCTyBFUsW9RUJFVAorU0FCTyBFUk5FCitTQUJPIEVSTkUKK1NBQk8gRVNURVIKK1NBQk8gRkVSRU5DCitTQUJPIEZFUkVOQworU0FCTyBGUkFOSkEKK1NBQk8gRlJBTkpBCitTQUJPIEZSQU5KTworU0FCTyBHQcWgUEFSCitTQUJPIEdBQk9SCitTQUJPIEdFUkdFTEoKK1NBQk8gR0laRUxBCitTQUJPIEdPUkRBTkEKK1NBQk8gSElMREEKK1NBQk8gScWgVFZBTgorU0FCTyBJxaBUVkFOCitTQUJPIEnFoFRWQU4KK1NBQk8gScWgVFZBTgorU0FCTyBJxaBUVkFOCitTQUJPIEnFoFRWQU4KK1NBQk8gSUJPTEpLQQorU0FCTyBJREEKK1NBQk8gSUxPTkEKK1NBQk8gSU1SRQorU0FCTyBJTVJFCitTQUJPIElWQU4KK1NBQk8gSkFOSUtBCitTQUJPIEpBTk/FoAorU0FCTyBKT1NJUAorU0FCTyBKT1NJUAorU0FCTyBKT1NJUAorU0FCTyBKT1NJUAorU0FCTyBKT1NJUAorU0FCTyBKT1NJUAorU0FCTyBKVUxJQQorU0FCTyBKVUxJSkFOQQorU0FCTyBLQVJPTElOQQorU0FCTyBLQVRJQ0EKK1NBQk8gS0FUSUNBCitTQUJPIExBRElTTEFWCitTQUJPIExBRElTTEFWCitTQUJPIExBRElTTEFWCitTQUJPIExKVUJPTUlSCitTQUJPIE1BUklKQQorU0FCTyBNQVJUQQorU0FCTyBNSUhBSkxPCitTQUJPIE1JTElDQQorU0FCTyBOSUtPTEEKK1NBQk8gT0xJVkVSQQorU0FCTyBQQVZMRQorU0FCTyBQRVRBUgorU0FCTyBQRVRBUgorU0FCTyBQRVRBUgorU0FCTyBQScWgVEEKK1NBQk8gUk9aQUxJSkEKK1NBQk8gU05JSkXFvUFOQQorU0FCTyBTVEVWQU4KK1NBQk8gVEVSRVpJSkEKK1NBQk8gVElCT1IKK1NBQk8gVkFMRVJJSkEKK1NBQk8gWk9MVEFOCitTQUJPIFpPTFRBTgorU0FCT8WgT1RJIEZBQklKQU4KK1NBQk9MIEpBUk9TTEFWCitTQUJPTCBKRUxFTkEKK1NBQk9MxIxLSSBBTkRSSUpBCitTQUJPTMSMS0kgQU5EUklKQQorU0FCT0zEjEtJIEFORFJJSkEKK1NBQk9MxIxLSSBaT0xUQU4KK1NBQk9MT1ZJxIYgQk9SSVMKK1NBQk9WIEJPUklWT0pFCitTQUJPVkxKRVZJxIYgUkFET1ZBTgorU0FExb1BSyBMSlVCSUNBCitTQUTFvUFLT1YgRFJBR09NSVIKK1NBRMW9QUtPViBEVcWgQU5LQQorU0FExb1BS09WIE1JUk9TTEFWCitTQUTFvUFLT1YgT0xHQQorU0FExb1BS09WIFBFVEFSCitTQUTFvUFLT1YgUkFET1ZBTgorU0FExb1BS09WIFJBRE9WQU4KK1NBRMW9QUtPViBWSURPU0FWQQorU0FExb1BS09WIFpPUkFOCitTQURJxIYgUkFESVZPSgorU0FESUtVIFNBRElLCitTQUlUT1YgxaBBSElNCitTQUpGRVJUIMSQVUxBCitTQUpGRVJUIEpPSEFOCitTQUpGRVJUIExKVUJJxaBBCitTQUpGRVJUIExKVUJJxaBBCitTQUpGRVJUIE1BUkdJVAorU0FKRkVSVCBNQVJJSkEKK1NBSknEhiBNSUxJVk9KRQorU0FKS08gQlJBTktBCitTQUpLTyBJxaBUVkFOCitTQUpLTyBNQVJHSVRBCitTQUpLTyBSVcW9SUNBCitTQUpLTyBaT0xUQU4KK1NBSkxFUiBGRVJFTkMKK1NBSlRPVknEhiBEUkFHSU5KQQorU0FLQcSMIEJPUklTTEFWIExFS0FSCitTQUtBxIwgRkVSRU5DCitTQUtBxIwgScWgVFZBTgorU0FLQcSMIEpBTktPCitTQUtBxIwgSkFOS08KK1NBS0HEjCBKT1ZBTgorU0FLQcSMIEpVTElKQU5BCitTQUtBxIwgSlVMSUpBTgorU0FLQcSMIExKVURFVklUCitTQUtBxIwgTUFHREEKK1NBS0HEjCBNQVJJSkEKK1NBS0HEjCBNSUhBSUxPCitTQUtBxIwgU0lNQQorU0FLQcSMIFNWRVRMQU5BCitTQUtBxIwgVkFTSUxJSkUKK1NBS0HEjCBWTEFESU1JUiBBRFZPS0FUCitTQUtBxIwgVkxBRElNSVIKK1NBS0HEjCBWTEFESU1JUgorU0FLQUwgQURFTEEKK1NBS0FMIEFVR1VTVElOQQorU0FLQUwgR0FCT1IKK1NBS0FMIEpPxb1FRgorU0FLQUwgTUFSSUpBCitTQUtBTCBNQVJJSkEKK1NBS0FMQcWgIE9UTworU0FLQU4gREFMSUJPUgorU0FLT1ZJxIYgQUxJSkEKK1NBS09WScSGIFNUT0pBTgorU0FLVUxTS0kgTUlMQU4KK1NBTEHEjCDEkFVSTworU0FMQUcgRVZHRU5JSkUKK1NBTEFHIEpBTktPCitTQUxBRyBMSlVCQQorU0FMQUkgRVLFvUVCRVQKK1NBTEFJIEVTVEVSCitTQUxBSS1HT01CQVIgUlXFvUEKK1NBTEFJIEnFoFRWQU4gTk9WSU5BUgorU0FMQUkgSkVMSVNBVkVUQQorU0FMQUkgTEFESVNMQVYKK1NBTEFJIExBU0xPCitTQUxBSiBGUkFOSk8KK1NBTEFKIEpBTktPCitTQUxBSiBKT8W9RUYKK1NBTEFKIE1JUkpBTkEKK1NBTEFKIFJVRE9MRgorU0FMQUsgSkFOS08KK1NBTEFLIFZMQURJTUlSCitTQUxBSyBWTEFESU1JUgorU0FMQU1VTiBBTkEKK1NBTEFNVU4gQk9TSUxKS0EKK1NBTEFNVU4gSUxJSkEKK1NBTEFNVU4gSkFOS08KK1NBTEFNVU4gSk9BS0lNCitTQUxBTVVOIEpPQUtJTQorU0FMQU1VTiBOQVRBTElKQQorU0FMQU1VTiBTSUxWRVNURVIKK1NBTEFNVU4gVkxBRElNSVIKK1NBTEFQVVJBIE1JTEUKK1NBTEFQVVJBIE5FREVMSktPCitTQUxBUFVSQSBQRVRBUgorU0FMQVRJxIYgTUlMT1ZBTgorU0FMQVRJxIYgUEVUQVIgTVIgT0VDCitTQUxBVEnEhiBWRUxJTUlSCitTQUxEVU0gVklEQQorU0FMRVRBIEFOVFVOCitTQUxJxIYgTUlMQU4KK1NBTElCRUdPVknEhiBNVVNUQUZBCitTQUxJSE9WScSGIElTTUVUCitTQUxJSkEgU0VGRVIKK1NBTElKRVZJxIYgxaBFxIZFUklKQQorU0FMS0FJIElMT05BCitTQUxLQUkgTEFTTE8KK1NBTE1BIMWgQU5ET1IKK1NBTE1BIEdFWkEKK1NBTE1BIEpPxb1FRiBQUk9GIERSCitTQUxNQSBKT1NJUAorU0FMTUEgUEVUQVIKK1NBTE1BIFRJQk9SCitTQUxNQSBUSUJPUgorU0FMT0NLSSBTVEVWQU4KK1NBTE9OU0tJIEJPxb1JREFSCitTQUxPTlNLSSBKRUxFTkEKK1NBTE9OU0tJIE1JTE9SQUQKK1NBTE9OU0tJIE1JUkpBTkEKK1NBTE9OU0tJIE1JUk9TTEFWCitTQUxPTlNLSSBSVcW9QQorU0FMT05UQUkgSlVMSUpBTkEKK1NBTE9QRUsgQlJBTktPCitTQUxPViBKT1ZBTgorU0FNQUMgSVZBTktBCitTQU1BQyBNSVJLTworU0FNQVLEkEnEhiBCUkFOSVNMQVZBCitTQU1BUkTFvUnEhiDFvUFSS08KK1NBTUFSRMW9ScSGIEFEQU0KK1NBTUFSRMW9ScSGIEJPxaBLTworU0FNQVJExb1JxIYgQk/FoEtPCitTQU1BUkTFvUnEhiBCT1JBCitTQU1BUkTFvUnEhiBCT1JBCitTQU1BUkTFvUnEhiBCUkFOSVNMQVYKK1NBTUFSRMW9ScSGIEJSQU5LTworU0FNQVJExb1JxIYgREFOSUxPCitTQU1BUkTFvUnEhiBEQU5JTE8KK1NBTUFSRMW9ScSGIERFU0EKK1NBTUFSRMW9ScSGIERSQUdBTgorU0FNQVJExb1JxIYgRFXFoEFOCitTQU1BUkTFvUnEhiBHT0pLTworU0FNQVJExb1JxIYgSUxJSkEKK1NBTUFSRMW9ScSGIElWQU4KK1NBTUFSRMW9ScSGIEtSU1RBCitTQU1BUkTFvUnEhiBMSlVCTworU0FNQVJExb1JxIYgTUlMQU4KK1NBTUFSRMW9ScSGIE1JTElKQQorU0FNQVJExb1JxIYgTUlMT8WgCitTQU1BUkTFvUnEhiBNSUxPxaAKK1NBTUFSRMW9ScSGIE1JTE9KS08KK1NBTUFSRMW9ScSGIE1JTE9SQUQKK1NBTUFSRMW9ScSGIE1JTE9TQVYKK1NBTUFSRMW9ScSGIE1JT0RSQUcKK1NBTUFSRMW9ScSGIE1JUkEKK1NBTUFSRMW9ScSGIE5FxJBBCitTQU1BUkTFvUnEhiBOT1ZJQ0EKK1NBTUFSRMW9ScSGIE9MR0EKK1NBTUFSRMW9ScSGIE9TVE9KQQorU0FNQVJExb1JxIYgUkFET0pLQQorU0FNQVJExb1JxIYgUkFET1NMQVYKK1NBTUFSRMW9ScSGIFJBRE9WQU4KK1NBTUFSRMW9ScSGIFJBSktPCitTQU1BUkTFvUnEhiBSQVRLTworU0FNQVJExb1JxIYgUk9aSU5BCitTQU1BUkTFvUnEhiBTQVZLQQorU0FNQVJExb1JxIYgU0FWTworU0FNQVJExb1JxIYgU1BPTUVOS0EKK1NBTUFSRMW9ScSGIFNSRVRFTgorU0FNQVJExb1JxIYgU1JFVEVOCitTQU1BUkTFvUnEhi1TVEFOScWgScSGIE1JTEFOS0EKK1NBTUFSRMW9ScSGIFNWRVRMQU5BCitTQU1BUkTFvUnEhiBWQVNJTElKQQorU0FNQVJExb1JxIYgVkFTTworU0FNQVJExb1JxIYgVkVMSU1JUgorU0FNQVJExb1JxIYgVkxBRE8KK1NBTUFSRMW9ScSGIFZVS0HFoElOCitTQU1BUkTFvUnEhiBaRFJBVktPCitTQU1BUkTFvUnEhiBaT1JBTgorU0FNQVJExb1JxIYgWlVaQU5BCitTQU1BUkTFvUlKQSDEkFVSxJBJTktBCitTQU1BUkTFvUlKQSDEkFVSQcSQCitTQU1BUkTFvUlKQSDEkFVSQQorU0FNQVJExb1JSkEgQk/FoEtPCitTQU1BUkTFvUlKQSBERVNBCitTQU1BUkTFvUlKQSBEVcWgQU4KK1NBTUFSRMW9SUpBIEdPUklDQQorU0FNQVJExb1JSkEgSkVMRU5BCitTQU1BUkTFvUlKQSBMSlVCSUNBCitTQU1BUkTFvUlKQSBMSlVCSUNBCitTQU1BUkTFvUlKQSBNQVJJSkEKK1NBTUFSRMW9SUpBIE1BUklKQQorU0FNQVJExb1JSkEgTUlMQU5LQQorU0FNQVJExb1JSkEgTUlMQU4KK1NBTUFSRMW9SUpBIE1JTEFOCitTQU1BUkTFvUlKQSBNSUxFCitTQU1BUkTFvUlKQSBNSVJLTworU0FNQVJExb1JSkEgTUlST1NMQVYKK1NBTUFSRMW9SUpBIE5FQk9KxaBBCitTQU1BUkTFvUlKQSBOT1ZJQ0EKK1NBTUFSRMW9SUpBIFBFVEFSCitTQU1BUkTFvUlKQSBSQURFCitTQU1BUkTFvUlKQSBSQURFCitTQU1BUkTFvUlKQSBSQU5LTworU0FNQVJExb1JSkEgU1RPSkFOCitTQU1BUkTFvUlKRVZJxIYgTUlST1NMQVYKK1NBTUJSQUlMTyBCUlVOTworU0FNRUMgQk/FvUVOS0EKK1NBTUlJIEFCQkFTCitTQU1PxIxFVEEgQUxFS1NBTkRSQQorU0FNT8SMRVRBIE1JTEUKK1NBTU/EjEVUQSBORVZFTktBCitTQU1PxIxFVEEgUkFET01JUgorU0FNT0pMSUsgTklLT0xBCitTQU1PS09WTElKQSBNQVJLTworU0FNT0xPViBWRUxKS08KK1NBTU9MT1bEjEVWIElWQU5LQQorU0FNU09OT1YgTklLT0xBIERJUEwgSU5HCitTQU7EjEFOSU4gTUlMSVZPSgorU0FOQURFUiDFvUlWS08KK1NBTkFERVIgxb1JVktPCitTQU5BREVSIEpFTEVOQQorU0FOQURFUiBSQURPVkFOCitTQU5BREVSIFNMT0JPREFOCitTQU5BREVSIFZFUkEKK1NBTkRJxIYgQlJBTklNSVIKK1NBTkRJxIYgSVZBTgorU0FOREnEhiBTVkVUTEFOQQorU0FORElLSSBBUE9TVE9MCitTQU5ESUtJIEtPU1RBCitTQU5ESUtJIEtPU1RBCitTQU5LT1ZJxIYgQk9SS08KK1NBTktPVknEhiBMSlVCSU5LQQorU0FOS09WScSGIE1JTE9SQUQKK1NBTktPVknEhiBNSVJBCitTQU5LT1ZJxIYgUEVUQVIKK1NBTktPVknEhiBTQUJJTkEKK1NBTktPVknEhiBTVkVUT1pBUgorU0FOVEFJIElMT05BCitTQU5UTyBGUkFOSkEKK1NBTlRPIEtBUk9MSgorU0FOVE8gTEFESVNMQVYgRElQTCBJTkcKK1NBTlRPIFpPTFRBTgorU0FOVE8gWk9MVEFOCitTQU5UT1ZBQyBEUkFHQU4KK1NBTlRPVkFDIExKVUJJTktBCitTQU5UT1ZBQyBNSUxPxaAKK1NBTlRPVkFDIFBFVEFSCitTQU5UT1ZBQyBTVEVWQU4KK1NBTlRSQcSMIMSQVVLEkElOS0EKK1NBTlRSQcSMIERSQUdPTEpVQgorU0FOVFJBxIwgR09SREFOQQorU0FOVFJBxIwgTUlMQU4KK1NBTlRSQcSMIE1JTE9SQUQKK1NBTlRSQcSMIE1PTcSMSUxPCitTQU5UUkHEjCBOSUtPTEEKK1NBTlRSQcSMIFJBVEtPCitTQU5UUkHEjCBTQVZPCitTQU5UUkHEjCBTTEFWS08KK1NBUFVORMW9ScSGLU1BVEnEhiBNSVJKQU5BCitTQVBVTkTFvUnEhiBNSUxBTgorU0FQVU5Exb1JxIYgTUlSQQorU0FQVU5Exb1JxIYgVEFUSkFOQQorU0FQVU5Exb1JSkEgRVLFvUVCRVQKK1NBUFVORMW9SUpBIE1BUklKQQorU0FSxIxFViBOQURJQ0EKK1NBUsSMRVYgUkFESVZPSgorU0FSQcSMRVZJxIYgU1JCT0xKVUIKK1NBUkFGSUpBTk9WScSGIE5JS09MQQorU0FSQUpMSUpBIERSQUdPTUlSCitTQVJBTUFOREnEhiBNT01JUgorU0FSQU1BTkRJxIYgTkVERUxKS08KK1NBUkFOREEgVkFTSUxKS0EKK1NBUkFQS0EgS0FUSUNBCitTQVJBVExJxIYgTUlMQU4KK1NBUkFUTEnEhiBTUkJPTEpVQgorU0FSQVZPTEFDIExBWkFSIFZFVEVSSU5BUgorU0FSQVZPTEFDIE1BR0RBTEVOQQorU0FSQVZPTEFDIE1JUkpBTkEKK1NBUkFWT0xBQyBNSVJKQU5BCitTQVJBVk9MQUMgU0lOScWgQSBEUgorU0FSQVZPTEFDIFNMQVZLTworU0FSQVZPTEFDIFNWRVRMQU5BCitTQVJJxIYgxJBVUkEKK1NBUknEhiBEQU5JTE8KK1NBUknEhiBJVkFOCitTQVJJxIYgTEVQT1NBVkEKK1NBUknEhiBNQVJJTktPCitTQVJJxIYgTUlMT8WgCitTQVJJxIYgTUlMT0pFIERSCitTQVJJxIYgUkFET8WgCitTQVJJxIYgUkFUS08KK1NBUknEhiBUSUJPUgorU0FSScSGIFZPSklOCitTQVJJS0FTIFNORcW9QU5BCitTQVJJS0FTIFZBU0lMSUpFCitTQVJLQSBBUlBBRAorU0FSS0EgTUlIQUxKCitTQVJLT1RJxIYgRlJBTkpBCitTQVJNRcWgIE1BUklKQSBESVBMIFBSQVZOSUsKK1NBUk9WIExBWkFSCitTQVJWQcWgIMWgQU5ET1IKK1NBUlZBxaAgSkFOT8WgCitTQVJWQUsgQUxFS1NBCitTQVJWQU4gRFJBR09MSlVCCitTQVJWQU4gVkpFUkEKK1NBUyBKRU5FCitTQVNJSyBCT1JJU0xBVgorU0FUQVJJxIYgQlJBTklTTEFWCitTQVRBUknEhiBNSUxKS08gRFIKK1NBVEtBTk9WScSGIEhBQklCCitTQVVFUiBKRUxJQ0EKK1NBVUVSIE1BUkdJVEEKK1NBVUVSIFBBVkxFCitTQVVFUiBST1NBCitTQVVFUiBTTUlMSkFOQQorU0FVU01BTiBMQVNMTworU0FVWkVSIEZSQU5KTworU0FWxIxJxIYgRFJBR0FOCitTQVbEjEnEhiBNSUxBTkEKK1NBVsSMScSGIE1JTElWT0pFCitTQVbEjEnEhiBNSUxJVk9KCitTQVbEjEnEhiBNSVJPU0xBVgorU0FWxIxJxIYgU0xPQk9EQU4KK1NBVkEgRlJBTkpBCitTQVZBTk9WScSGIEJSQU5LTworU0FWQU5PVknEhiBEUkFHT0xKVUIKK1NBVkFOT1ZJxIYgRFXFoEFOCitTQVZBTk9WScSGIEpPVkFOCitTQVZBTk9WScSGIEpPVk8KK1NBVkFOT1ZJxIYgTEpVQk9NSVIKK1NBVkFOT1ZJxIYgTUFSSUNBCitTQVZBTk9WScSGIE1BUklOS08KK1NBVkFOT1ZJxIYgTUlMQU4KK1NBVkFOT1ZJxIYgTUlMT8WgCitTQVZBTk9WScSGIE1JUktPCitTQVZBTk9WScSGIE5FTkFECitTQVZBTk9WScSGIFNORcW9QU5BCitTQVZBTk9WScSGIFNUT0pBTgorU0FWQU5PVknEhiBaRFJBVktBCitTQVZBVEnEhiBEUkFHT01JUgorU0FWQVRJxIYgVkxBRElNSVIKK1NBVkFUT1ZJxIYgQk9TSUxKS0EKK1NBVkFUT1ZJxIYgRFJBR0FOCitTQVZBVE9WScSGIERVxaBBTgorU0FWQVRPVknEhiBSQURPVkFOCitTQVZFTEpJxIYgxIxFRE9NSVIKK1NBVkVMSknEhiBEVcWgQU4KK1NBVkVMSknEhiBNQVJJSkEKK1NBVkVMSknEhiBTVkVUTEFOQQorU0FWRUxKScSGIFZFTEpLTworU0FWRVNLSSBNSUzEjE8KK1NBVkVTS0kgWk9SQU4KK1NBVknEjEVWScSGIEdPSktPCitTQVZJxIxJxIYgR09KS08KK1NBVknEjEnEhiBTVE9KQU4KK1NBVknEjElOIExKVUJJQ0EKK1NBVknEhiDEjEVET01JUgorU0FWScSGIMSMRURPCitTQVZJxIYgxIZFVEtPCitTQVZJxIYgxb1JVktBCitTQVZJxIYgxb1JVktBCitTQVZJxIYgxJBPS0EKK1NBVknEhiDEkE9SxJBFIERJUEwgSU5HCitTQVZJxIYgxJBPUsSQRQorU0FWScSGIMSQVVLEkElKQQorU0FWScSGIEFMRUtTQU5EUkEKK1NBVknEhiBBTEVLU0EKK1NBVknEhiBBTsSQRUxLQQorU0FWScSGIEFOxJBFTEtBCitTQVZJxIYgQU5BCitTQVZJxIYgQU5EUklKQQorU0FWScSGIEFORFJJSkEKK1NBVknEhiBBTkdFTElOQQorU0FWScSGIEJMQUdPSkUKK1NBVknEhiBCTEFHT0pFCitTQVZJxIYgQk/FvUlEQVIKK1NBVknEhiBCT8W9SU1JUiBEUgorU0FWScSGIEJPR0RBTgorU0FWScSGIEJPUklTTEFWCitTQVZJxIYgQlJBTklTTEFWCitTQVZJxIYgQlJBTklTTEFWCitTQVZJxIYgQlJBTklTTEFWCitTQVZJxIYgQlJBTktPCitTQVZJxIYgQ1ZFVEFOS0EKK1NBVknEhiBDVkVUS08KK1NBVknEhiBEQU1KQU4gRFIgTEVLQVIKK1NBVknEhiBEQU5JQ0EKK1NBVknEhiBEQVJBCitTQVZJxIYgREVKQU4KK1NBVknEhiBERVNBTktBCitTQVZJxIYgREVTSU1JUgorU0FWScSGIERPQlJJTEEKK1NBVknEhiBEUkFHQU4KK1NBVknEhiBEUkFHQU4KK1NBVknEhiBEUkFHQU4KK1NBVknEhiBEUkFHQU4KK1NBVknEhiBEUkFHScWgQQorU0FWScSGIERSQUdPU0xBVgorU0FWScSGIERSQUdPCitTQVZJxIYgRFJBR1VUSU4KK1NBVknEhiBEUkFHVVRJTgorU0FWScSGIERVxaBBTktBCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgRFXFoEFOCitTQVZJxIYgR0VPUkdJSkUKK1NBVknEhiBHTElHT1JJSkUKK1NBVknEhiBHT0pLTworU0FWScSGIEdPUkFOCitTQVZJxIYgR09TVElNSVIKK1NBVknEhiBHUk9aREFOQQorU0FWScSGIElMSUpBCitTQVZJxIYgSUxJSkEKK1NBVknEhiBJVkFOCitTQVZJxIYgSkFEUkFOS0EKK1NBVknEhiBKRUxBCitTQVZJxIYgSkVMRU5BCitTQVZJxIYgSkVMRU5BCitTQVZJxIYgSkVMSUNBCitTQVZJxIYgSkVWVE8KK1NBVknEhiBKT1ZBTktBCitTQVZJxIYgSk9WQU4KK1NBVknEhiBKT1ZBTgorU0FWScSGIEpPVkFOCitTQVZJxIYgSk9WQU4KK1NBVknEhiBKT1ZBTgorU0FWScSGIEpPVkFOCitTQVZJxIYgS0FUSUNBCitTQVZJxIYgS0FUSUNBCitTQVZJxIYgS09TVEEKK1NBVknEhiBLU0VOSUpBCitTQVZJxIYgTEFaQVIKK1NBVknEhiBMQVpBUgorU0FWScSGIExFTktBIERSCitTQVZJxIYgTEpJTEpBTkEKK1NBVknEhiBMSklMSkFOQQorU0FWScSGIExKVUJJxaBBCitTQVZJxIYgTEpVQklDQQorU0FWScSGIExKVUJPTUlSCitTQVZJxIYgTEpVQk9TTEFWCitTQVZJxIYgTFVLQQorU0FWScSGIE1BUklKQQorU0FWScSGIE1BUklKQQorU0FWScSGIE1BUklKQQorU0FWScSGIE1BUklKQQorU0FWScSGIE1BUklOQQorU0FWScSGIE1BUklOQQorU0FWScSGIE1BUktPCitTQVZJxIYgTUVExb1PCitTQVZJxIYgTUlIQUpMTworU0FWScSGIE1JTEFESU4KK1NBVknEhiBNSUxBTgorU0FWScSGIE1JTEFOCitTQVZJxIYgTUlMQU4KK1NBVknEhiBNSUxBTgorU0FWScSGIE1JTEVOQQorU0FWScSGIE1JTEVOS08KK1NBVknEhiBNSUxFTktPCitTQVZJxIYgTUlMRU5LTworU0FWScSGIE1JTElKQU5BCitTQVZJxIYgTUlMSVNBVgorU0FWScSGIE1JTElWT0pFCitTQVZJxIYgTUlMSVZPSkUKK1NBVknEhiBNSUxJVk9KRQorU0FWScSGIE1JTElWT0oKK1NBVknEhiBNSUxJVk9KCitTQVZJxIYgTUlMS08KK1NBVknEhiBNSUxPxaAgRElQTCBJTkcKK1NBVknEhiBNSUxPxaAKK1NBVknEhiBNSUxPxaAKK1NBVknEhiBNSUxPxaAKK1NBVknEhiBNSUxPxaAKK1NBVknEhiBNSUxPUkFECitTQVZJxIYgTUlMT1JBRAorU0FWScSGIE1JTE9SQUQKK1NBVknEhiBNSUxPU0FWQQorU0FWScSGIE1JTE9TQVYKK1NBVknEhiBNSUxPVkFOCitTQVZJxIYgTUlMVVRJTgorU0FWScSGIE1JT0RSQUcKK1NBVknEhiBNSU9EUkFHCitTQVZJxIYgTUlSSkFOQQorU0FWScSGIE1JUktPCitTQVZJxIYgTUlSS08KK1NBVknEhiBNSVJPU0xBVgorU0FWScSGIE1JUk9TTEFWCitTQVZJxIYgTUlST1NMQVYKK1NBVknEhiBNSVJPU0xBVgorU0FWScSGIE1MQURFTgorU0FWScSGIE1PTcSMSUxPCitTQVZJxIYgTkFEQQorU0FWScSGIE5BREXFvURBCitTQVZJxIYgTkFUQcWgQQorU0FWScSGIE5FREVMSktPCitTQVZJxIYgTkVERUxKS08KK1NBVknEhiBORURFTEpLTworU0FWScSGIE5FREVMSktPCitTQVZJxIYgTkVOQUQKK1NBVknEhiBOSUtPTEEKK1NBVknEhiBOSUtPTEEKK1NBVknEhiBOSUtPTEEKK1NBVknEhiBOSUtPTEEKK1NBVknEhiBOSU5PU0xBVgorU0FWScSGIE5PVk8KK1NBVknEhiBPTEdBCitTQVZJxIYgT0xJVkVSQQorU0FWScSGIE9MSVZFUkEKK1NBVknEhiBQQU5URUxJSkEKK1NBVknEhiBQQVZMRQorU0FWScSGIFBFUkEKK1NBVknEhiBQRVRBUgorU0FWScSGIFBFVEFSCitTQVZJxIYgUEVUQVIKK1NBVknEhiBQRVRBUgorU0FWScSGIFBMQU5JTktBCitTQVZJxIYgUFJFRFJBRworU0FWScSGIFBST0tPUElKRQorU0FWScSGIFJBREnFoEEKK1NBVknEhiBSQURJVk9KRSBESVBMIElORworU0FWScSGIFJBRE1JTEEKK1NBVknEhiBSQURNSUxBCitTQVZJxIYgUkFETUlMQQorU0FWScSGIFJBRE9KSUNBCitTQVZJxIYgUkFET01JUgorU0FWScSGIFJBRE9NSVIKK1NBVknEhiBSQURPVkFOCitTQVZJxIYgUkFET1ZBTgorU0FWScSGIFJBS0nEhgorU0FWScSGIFJBVEtPCitTQVZJxIYgUkFUS08KK1NBVknEhiBSRUxKQSBEUgorU0FWScSGIFJFTkFUQQorU0FWScSGIFJPS1NBTkRBCitTQVZJxIYgUlXFvUlDQQorU0FWScSGIFNBxaBBCitTQVZJxIYgU0FWQSBBRFZPS0FUCitTQVZJxIYgU0FWQQorU0FWScSGIFNBVkEKK1NBVknEhiBTQVZBCitTQVZJxIYgU0lNRVVOIERJUEwgSU5HCitTQVZJxIYgU0lOScWgQQorU0FWScSGIFNMQVZLTworU0FWScSGIFNMQVZPTEpVQgorU0FWScSGIFNMQVZPTEpVQgorU0FWScSGIFNMT0JPREFOCitTQVZJxIYgU0xPQk9EQU4KK1NBVknEhiBTTUlMSkEKK1NBVknEhiBTUEFTT0pFCitTQVZJxIYgU1BBU09KRQorU0FWScSGIFNSxJBBTgorU0FWScSGIFNSQklTTEFWCitTQVZJxIYgU1JFVEEKK1NBVknEhiBTVEVWQU4KK1NBVknEhiBTVE9KQU5LQQorU0FWScSGIFNUT0pBTgorU0FWScSGIFNUT0pBTgorU0FWScSGIFNUT0pBTgorU0FWScSGIFNWRU5LQQorU0FWScSGIFNWRVRPWkFSCitTQVZJxIYgU1ZFVE9aQVIKK1NBVknEhiBUQVRPTUlSCitTQVZJxIYgVEVPRE9SCitTQVZJxIYgVElOS0EKK1NBVknEhiBUT0RPUgorU0FWScSGIFRPRE9SCitTQVZJxIYgVE9ET1IKK1NBVknEhiBUT01JU0xBVgorU0FWScSGIFVST8WgCitTQVZJxIYgVkVMSktPCitTQVZJxIYgVkVSSUNBCitTQVZJxIYgVkVSSUNBCitTQVZJxIYgVkVTTkEKK1NBVknEhiBWSURPU0FWCitTQVZJxIYgVklUT01JUgorU0FWScSGIFZMQURJTUlSCitTQVZJxIYgVkxBRElNSVIKK1NBVknEhiBWT0pBCitTQVZJxIYgVlVLQU4KK1NBVknEhiBWVUtPVEEKK1NBVknEhiBaT1JBTgorU0FWScSGIFpPUkFOCitTQVZJxIYgWk9SQU4KK1NBVknEhiBaT1JBTgorU0FWScSGIFpPUkFOCitTQVZJxIYgWk9SQQorU0FWSU4gxb1JVktBCitTQVZJTiDFvUlWS08KK1NBVklOIMSQT1LEkEUKK1NBVklOIMSQVVLEkElOS0EKK1NBVklOIEJFUklTTEFWCitTQVZJTiBCSUxKQU5BIERSCitTQVZJTiBCT1JBCitTQVZJTiBEQU5JQ0EKK1NBVklOIERSQUdPTEpVQgorU0FWSU4gRFJBR09NSVIKK1NBVklOIERSRU5LQQorU0FWSU4gRFXFoEFOCitTQVZJTiBEVcWgQU4KK1NBVklOIEpPVkFOCitTQVZJTiBKT1ZBTgorU0FWSU4gSlVMS0EKK1NBVklOIExBU0xPCitTQVZJTiBMQVpBUgorU0FWSU4gTEpVQklOS0EKK1NBVklOIE1BR0RBCitTQVZJTiBNSUxFVkEKK1NBVklOIE1JTElDQQorU0FWSU4gTUlMS0EKK1NBVklOIE1JTE9SQUQKK1NBVklOIE1JTE9SQUQKK1NBVklOIE1JTE9WQU4KK1NBVklOIE1JT0RSQUcgRElQTCBPRUMKK1NBVklOIE1JUkpBTkEKK1NBVklOIE1JUkpBTkEKK1NBVklOIE5JS09MQQorU0FWSU4gUEFWTEUKK1NBVklOIFBSRURSQUcKK1NBVklOIFJBRElWT0oKK1NBVklOIFNBVkEKK1NBVklOIFNORcW9QU5BCitTQVZJTiBTUElSSURPTgorU0FWSU4gU1RBTkEKK1NBVklOIFRPRE9SCitTQVZJTiBUT0RPUgorU0FWSU4gVkVSSUNBCitTQVZJTiBWVUtPU0FWQQorU0FWSU4gWk9SQQorU0FWS0VMSklOIFNURVZBTgorU0FWS0nEhiBEVcWgQU4KK1NBVktPViBEUkFHT0xKVUIKK1NBVktPViBJTElKQQorU0FWS09WIE1JTEFOCitTQVZLT1YgVE9ET1IKK1NBVktPViBWRVJBCitTQVZLT1YgVk9KSVNMQVYKK1NBVktPViBaT1JBTgorU0FWS09WScSGIMW9SVZPUkFECitTQVZLT1ZJxIYgSkFOSkEKK1NBVktPVknEhiBNSUxVVElOCitTQVZLT1ZJxIYgTUlSS08KK1NBVktPVknEhiBORU1BTkpBCitTQVZLT1ZJxIYgU0FWQQorU0FWS09WScSGIFNBVk8KK1NBVktPVknEhiBTVEHFoEEKK1NBVktPVknEhiBUQVRKQU5BCitTQVZLT1ZJxIYgVlVLQQorU0FWS09WScSGIFpEUkFWS08KK1NBVk9WScSGIERFU0FOS0EKK1NBVk9WScSGIEZBVElNQQorU0FWT1ZJxIYgTEpVQk8KK1NBVk9WScSGIExVS0EKK1NBVk9WScSGIE5FTkFECitTQVZPVknEhiBSQURFCitTQVZVLU1JSEFKTE9WScSGIFNPRklKQQorU0FWVSBUSUJJCitTQVZVTEpJxIYgUkFET01JUgorU0FaREFOScSGIMSQT0tBCitTQVpEQU5JxIYgUEFWTEUKK1NBWkRBTknEhiBTVEVWQU4KK1NFxIxBTlNLSSDEkE9SxJBFCitTRcSMRU4gTUlMSVZPSgorU0XEjEVOIFNWRVRPWkFSIERSCitTRcSMRU5KSSBJQk9MSkEKK1NFxIxJIEnFoFRWQU4KK1NFxIxJVkFOT1ZJxIYgTEVQxaBBCitTRcSMSVZBTk9WScSGIExFUMWgQQorU0XEjElWQU5PVknEhiBQQVZMRQorU0XEjFVKU0tJIEFORFJJSkEgRElQTCBJTkcKK1NFxIxVSlNLSSBEQU5JTE8KK1NFxIxVSlNLSSBNTEFERU4KK1NFxIxVSlNLSSBSQURJVk9KCitTRUJBU1RJQU4gRVJORQorU0VCQVNUSUFOIEpPSEFOQQorU0VCQVNUSUpBTiBaTEFUS08KK1NFQkVMRURJIFBBVkxFCitTRUJFTkpJIEZFUkVOQworU0VCRU5KSSBGUkFOSkEKK1NFQknFoEFOT1ZJxIYgxJBPUsSQRQorU0VCScWgQU5PVknEhiBQQVZMRQorU0VERUogSkFORVoKK1NFREVSIEFMRUtTQU5EQVIKK1NFREVSIElWSUNBCitTRURFUiBTTEFWS08KK1NFREVSIFZMQURJTUlSCitTRURFUkxBTkQgxJBPUsSQRQorU0VETEHEjEVLIFNBUkEKK1NFRExBSyBBTkRSQcWgCitTRURMQU4gSUxJSkEKK1NFRExBTiBNQU5PSkxPCitTRURMQU4gTUlSS08gRElQTCBJTkcKK1NFRExBTiBSQURPU0xBVgorU0VETEFOIFNBVkEKK1NFRExBUiBJTElKQQorU0VETEFSIE1BTkUKK1NFRExBUiBNSUxJQ0EKK1NFRExBUiBNSUxJQ0EKK1NFRExBUiBOQURBCitTRURNQUsgRFJBR0FOCitTRURNQUsgVkxBRE8KK1NFRsSMSUsgxb1Vxb1BTkEKK1NFRkVSIE1BUklKQQorU0VGRVIgU0FLSUIKK1NFRkVSIFNFTkFECitTRUZFUk9WScSGIFNVQUQKK1NFRyDFvVXFvUFOQQorU0VHIElNUkUKK1NFR0VESSBCUkFOS0EKK1NFR0VESSBESU1JVFJJSkUKK1NFR0VESSBFVkdFTklKRQorU0VHRURJIElWSUNBCitTRUdFREkgSk9TSVAKK1NFR0VESSBKT1ZBTgorU0VHRURJIEpVTElKQU4KK1NFR0VESSBLQVJPTEoKK1NFR0VESS1LT1ZBxIxFViBCUkFOS0EgRFIKK1NFR0VESSBLU0VOSUpBCitTRUdFREkgTEVPTkEKK1NFR0VESSBNQVJJSkEKK1NFR0VESSBNRUxJVEEKK1NFR0VESSBNSUxFTkEKK1NFR0VESSBTTEFWSUNBCitTRUdFREkgU1RFVkFOCitTRUdFREkgVkxBRElNSVIKK1NFR0VESU5BQyBEVcWgS08KK1NFR0VESU5BQyBOQVRBTElKQQorU0VHRURJTkFDIFpEUkFWS08KK1NFR0VESU5TS0kgQVJLQURJSkUKK1NFR0VESU5TS0kgQk9KS08KK1NFR0VESU5TS0kgSlVMSUpBTkEKK1NFR0VESU5TS0kgTkVTVE9SCitTRUdFRElOU0tJIFNBVkEKK1NFR0VESU5TS0kgVE9NQQorU0VHRURJTlNLSSBWSVRPTUlSCitTRUdJIExBU0xPCitTRUdJxIYgQk9SSVNMQVYKK1NFR0nEhiBSQU5LTworU0VJWk9WScSGIERVxaBBTktBCitTRUtBxIwgUEVUQVIKK1NFS0UgQVJQQUQKK1NFS0UgRVZBCitTRUtFIElMSUpBCitTRUtFIEpPU0lQCitTRUtFIEtBVEFSSU5BCitTRUtFIFNURVZBTgorU0VLRSBTVEVWQU4KK1NFS0VMSiBKQU5JCitTRUtFTEogSk9TSVAKK1NFS0VMSiBNQVJJSkEKK1NFS0VMSiBSVcW9SUNBCitTRUtFUkXFoCDFoEFORE9SCitTRUtFUkXFoCDEkFVMQQorU0VLRVJFxaAgREVORcWgCitTRUtFUkXFoCBFVEVMCitTRUtFUkXFoCBGRVJFTkMgRFIgTEVLQVIKK1NFS0VSRcWgIEZFUkVOQworU0VLRVJFxaAgScWgVFZBTgorU0VLRVJFxaAgScWgVFZBTgorU0VLRVJFxaAgSVJFTkEKK1NFS0VSRcWgIEpPxb1FRgorU0VLRVJFxaAgSlVMSUpBTkEKK1NFS0VSRcWgIEpVTElKQQorU0VLRVJFxaAgS0FST0xKCitTRUtFUkXFoCBLQVRJQ0EKK1NFS0VSRcWgIExBSk/FoCBESVBMIElORworU0VLRVJFxaAgTkFORE9SCitTRUtFUkXFoCBTVEVWQU4KK1NFS0VSRcWgIFRJQk9SCitTRUtFUkXFoCBWRVJBCitTRUtFUkVaT1ZJxIYgTUlMQU4KK1NFS0VSScSGIFNURVZBTgorU0VLRVJVxaAgSkVMSVNBVkVUQQorU0VLRVJVxaAgTEpVQklDQQorU0VLRVJVxaAgTUlMS0lDQQorU0VLRVJVxaAgTUlSSkFOQQorU0VLRVJVxaAgUEFWTEUKK1NFS0VSVcWgIFBFVEFSCitTRUtFUlXFoCBTVEFOSVNMQVYKK1NFS0VSVcWgIFZMQURJTUlSCitTRUtJQ0tJIEFMRUtTQU5EQVIKK1NFS0lDS0kgRU1JTElKQQorU0VLSUNLSSBJU0lET1IKK1NFS0lDS0kgTEFaQVIKK1NFS0lDS0kgTUFSSUNBCitTRUtJQ0tJIE1JTE9SQUQKK1NFS0lDS0kgUEVUQVIKK1NFS0lDS0kgVkVMSkEKK1NFS0laIMW9SVZLTworU0VLSVogSUxJSkEKK1NFS0laIEpPVkFOCitTRUtJWiBNRUxBTklKQQorU0VLSVogUEVUQVIKK1NFS0laIFBFVEFSCitTRUtJWiBSQURJVk9KCitTRUtJWiBTT05KQQorU0VLT8WgQU4gTEpVQklDQQorU0VLT8WgQU4gTUFSSU5BCitTRUtPTCBNSUxLQQorU0VLT1NLSSBKT03EjEUKK1NFS09WU0tJIFJBREUKK1NFS1JFTkogSk/FvUVGCitTRUtVTEnEhiDEjEVESUNBCitTRUtVTEnEhiDEjEVET01JUgorU0VLVUxJxIYgxb1BUktPCitTRUtVTEnEhiDFvUlWS08KK1NFS1VMScSGIMW9SVZLTworU0VLVUxJxIYgxb1JVk9KSU4gRElQTCBJTkcKK1NFS1VMScSGIMSQT1LEkEUKK1NFS1VMScSGIMSQT1LEkEUKK1NFS1VMScSGIMSQVVLEkElDQQorU0VLVUxJxIYgxJBVUkHEkAorU0VLVUxJxIYgQUxFS1NBTkRBUgorU0VLVUxJxIYgQUxFS1NBTkRBUgorU0VLVUxJxIYgQU7EkEVMS0EKK1NFS1VMScSGIEFSU0VOSUpFCitTRUtVTEnEhiBCT8W9SURBUiBESVBMIElORworU0VLVUxJxIYgQlJBTklTTEFWCitTRUtVTEnEhiBCUkFOSVNMQVYKK1NFS1VMScSGIEJSQU5JU0xBVgorU0VLVUxJxIYgREFORQorU0VLVUxJxIYgREFSSU5LQQorU0VLVUxJxIYgREFSSU5LQQorU0VLVUxJxIYgREVTQU5LQQorU0VLVUxJxIYgREVTQU5LQQorU0VLVUxJxIYgRE9TVEEKK1NFS1VMScSGIERSQUdBTgorU0VLVUxJxIYgRFJBR0lDQQorU0VLVUxJxIYgRFJBR09MSlVCCitTRUtVTEnEhiBEUkFHT01JUgorU0VLVUxJxIYgRFJBR09NSVIKK1NFS1VMScSGIERVxaBBTgorU0VLVUxJxIYgRFXFoEFOCitTRUtVTEnEhiBEVcWgQU4KK1NFS1VMScSGIERVxaBBTgorU0VLVUxJxIYgSUxJSkEKK1NFS1VMScSGIElMSUpBCitTRUtVTEnEhiBJVkFOCitTRUtVTEnEhiBJVkFOCitTRUtVTEnEhiBLQVRJQ0EKK1NFS1VMScSGIExBWkFSCitTRUtVTEnEhiBMSklMSkFOQQorU0VLVUxJxIYgTEpJTEpBTkEKK1NFS1VMScSGIExKVUJJxaBBCitTRUtVTEnEhiBMSlVCSUNBCitTRUtVTEnEhiBMSlVCSUNBCitTRUtVTEnEhiBMSlVCSUNBCitTRUtVTEnEhiBMSlVCT01JUgorU0VLVUxJxIYgTUFSSUpBCitTRUtVTEnEhiBNQVJJSkEKK1NFS1VMScSGIE1BUklKQQorU0VLVUxJxIYgTUnEhk8KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEVOQQorU0VLVUxJxIYgTUlMRU5BCitTRUtVTEnEhiBNSUxJVk9KRQorU0VLVUxJxIYgTUlMSkEKK1NFS1VMScSGIE1JTE9SQUQKK1NFS1VMScSGIE1JTE9SQUQKK1NFS1VMScSGIE1JTE9WQU4KK1NFS1VMScSGIE1JTE9WQU4KK1NFS1VMScSGIE1JTE9WQU4KK1NFS1VMScSGIE1JT0RSQUcKK1NFS1VMScSGIE1JT0RSQUcKK1NFS1VMScSGIE1JUkEKK1NFS1VMScSGIE1JUkpBTkEKK1NFS1VMScSGIE1JUkpBTkEKK1NFS1VMScSGIE1JUktPCitTRUtVTEnEhiBORUdJQ0EKK1NFS1VMScSGIE5FTUFOSkEKK1NFS1VMScSGIE9MR0EKK1NFS1VMScSGIE9MSVZFUkEKK1NFS1VMScSGIFBBVkxFCitTRUtVTEnEhiBQQVZMRQorU0VLVUxJxIYgUEVUQVIgRFIKK1NFS1VMScSGIFBFVEFSCitTRUtVTEnEhiBQRVRLTworU0VLVUxJxIYgUkFERQorU0VLVUxJxIYgUkFESVZPSiBNUgorU0VLVUxJxIYgUkFETUlMQQorU0VLVUxJxIYgUkFET1NBVgorU0VLVUxJxIYgUlXFvUlDQQorU0VLVUxJxIYgU0lNTworU0VLVUxJxIYgU0xBVktPCitTRUtVTEnEhiBTTUlMSkEKK1NFS1VMScSGIFNQQVNBCitTRUtVTEnEhiBTUEFTTworU0VLVUxJxIYgU1RBTklTTEFWCitTRUtVTEnEhiBTVEFOT0pFCitTRUtVTEnEhiBTVEVWQU4KK1NFS1VMScSGIFNURVZBTgorU0VLVUxJxIYgU1RPSkFOIERJUEwgSU5HCitTRUtVTEnEhiBTVE9KQU4KK1NFS1VMScSGIFNWRVRPWkFSCitTRUtVTEnEhiBTVkVUT1pBUgorU0VLVUxJxIYgVElIT01JUgorU0VLVUxJxIYgVE9NSVNMQVYKK1NFS1VMScSGIFRPTUlTTEFWCitTRUtVTEnEhiBVU1RJSkFOS0EKK1NFS1VMScSGIFZBTEVOVElOQQorU0VLVUxJxIYgVkVOTworU0VLVUxJxIYgVklET0pFCitTRUtVTEnEhiBWSU5LTworU0VLVUxJxIYgVkxBRElNSVIKK1NFS1VMScSGIFZMQURJTUlSCitTRUtVTEnEhiBWTEFETworU0VLVUxJxIYgVk9KSVNMQVYKK1NFS1VMScSGIFpPUkFOCitTRUtVTEnEhiBaT1JBTgorU0VLVUxJxIYgWk9SQQorU0VLVUxJxIYgWk9SSUNBCitTRUtVTE9WScSGIE1JSEFJTE8KK1NFS1VMT1ZJxIYgTUlMQU5LQQorU0VLVUxPVknEhiBNSUxFTktPCitTRUtVTE9WScSGIFJBRElWT0pFCitTRUtVTE9WScSGIFNMQVZLTworU0VMIEFOQQorU0VMIEpPxb1FRgorU0VMIExBRElTTEFWCitTRUxBSyBKT1ZBTgorU0VMQUsgSk9WTworU0VMQUsgTUlSSkFOQQorU0VMQUsgU1RFVkFOCitTRUxBS09WScSGIMSQT1LEkEUgRFIgTEVLQVIKK1NFTEFLT1ZJxIYgRFJBR0lDQSBEUiBMRUtBUgorU0VMQUtPVknEhiBMSlVCSVNBVgorU0VMQUtPVknEhiBNSUxBTgorU0VMQUtPVknEhiBNSU9EUkFHCitTRUxBS09WScSGIE1JUk9TTEFWCitTRUxBS09WScSGIE1MQURFTgorU0VMQUtPVknEhiBSQURPU0xBVgorU0VMQUtPVknEhiBTUkXEhktPCitTRUxBS09WScSGIFZPSkEKK1NFTEXFoCBLQVJPTEoKK1NFTEXFoCBLQVJPTEoKK1NFTEXFoCBNSUhBSkxPCitTRUxFxaBJIEVMWkEKK1NFTEXFoEkgRVRFTEtBCitTRUxFxaBJIExBRElTTEFWCitTRUxFxaBJIExBU0xPCitTRUxFxaBJIE1BR0RBTEVOQQorU0VMRcWgSSBNQVJJSkEKK1NFTEXFoEkgUEFMCitTRUxFxaBJIFNURVZBTgorU0VMRcWgSSBWSU5DRQorU0VMRcWgSSBaT0xUQU4KK1NFTEVOQSBKRUxFTkEKK1NFTEVOQSBOSUtPTEEKK1NFTEVOScSGIEFOS0lDQQorU0VMSSBFVEVMS0EKK1NFTEkgScWgVFZBTiBEUgorU0VMSSBNSUtMT8WgCitTRUxJxIYgRFJBR1VUSU4KK1NFTEnEhiBNScSGTworU0VMScSGIE1JTE/FoAorU0VMScSGIE1JTE9SQUQKK1NFTElIIERBTklMTworU0VMSUggRFJBR08KK1NFTElLIEpPU0lQCitTRUxJSyBMQURJU0xBVgorU0VMSU1PVknEhiBNVVNUQUZBCitTRUxJTkdFUiBHQUJSSUpFTEEKK1NFTEpBS09WIE5BREEKK1NFTE1BTiBIQUtJSkEKK1NFTFNLSSBBTkEKK1NFTFNLSSBNQVJJSkEKK1NFTFZFUiBBTElOQcSQSQorU0VNQU4gSk9BS0lNCitTRU1FREVSIERJTUlUUklKRQorU0VNRURFUiBTVVpBTkEKK1NFTUVERVIgU1VaQU5BCitTRU1FSyDEjEFCQQorU0VNRUsgxIxJTEEKK1NFTUVOU0tJIEtPUk5FTElKQQorU0VNRVJFREkgSk/FvUVGCitTRU1FUkVESSBWRVJBCitTRU1JWiBLQVRJQ0EKK1NFTUlaT1ZJxIYgU0FESUsKK1NFTU5JQyBSVURPTEYgRFIKK1NFTiBNQVJUSU4KK1NFTsSMVUsgU0xBVklDQQorU0VOxIxVSyBTVEVWTworU0VOxIZBTlNLSSBKVUxJSkEKK1NFTsSGQU5TS0kgS0FUSUNBCitTRU7EhkFOU0tJIE5BREEKK1NFTsSGQU5TS0kgUEVUQVIKK1NFTsSGQU5TS0kgWk9SQQorU0VOQcWgSSBMQURJU0xBVgorU0VOQ0kgTEFESVNMQVYKK1NFTkRFUkFLIMSQVVJBCitTRU5ERVJBSyBFVUdFTgorU0VOREVSQUsgTElESUpBCitTRU5ERVJBSyBNRUxBTklKQQorU0VOREVSQUsgTUlSS08KK1NFTkRFUkFLIE5JS09MQQorU0VOREVSQUsgUEVUQVIKK1NFTkRFUkFLIFNJTFZFU1RFUgorU0VORcWgSSBKRUxFTkEKK1NFTknEhiBBTklDQQorU0VOScSGIElWQU5LQQorU0VOScSGIExBWkFSCitTRU5JxIYgTUlMT1JBRAorU0VOScSGIFJJU1RPCitTRU5JxIYgVkxBRElNSVIKK1NFTkpFxaAgxaBBTkRPUgorU0VOSkkgQUdPxaBUT04gRFIgTEVLQVIKK1NFTkpJIElMT05BCitTRU5KSSBJUkVOQQorU0VOVEUgTEpVQklDQQorU0VOVEUgUEVUQVIKK1NFTlRJTiDEjEVET01JUgorU0VOVElWQU5BQyDEkE9SxJBFCitTRU5USVZBTkFDIE1BUktPCitTRU5USVZBTkFDIE1JTEFOCitTRU5USVZBTkFDIE1JTE/FoAorU0VOVElWQU5BQyBNT01JUgorU0VOVElWQU5BQyBTQVZBCitTRU5USVZBTkFDIFNWRVRMQU5BCitTRU5USVZBTkFDIFRPRE9SCitTRU5USVZBTkFDIFZFU05BCitTRU5UTUFSVE9OSSBGRVJFTkMKK1NFUCBBTlRBTAorU0VQIERFxb1FIERSIExFS0FSCitTRVAgRkVSRU5DCitTRVAtVkFSR0EgRU1JTElKQQorU0VSQUZJTU9WIEtJUklMCitTRVJBVExJxIYgxIxFRE9NSVIKK1NFUkFUTEnEhiBEQVJLQQorU0VSQVRMScSGIEdPTFVCCitTRVJBVExJxIYgTUlSQcWgCitTRVJBVExJxIYgTUlSSkFOQQorU0VSQVRMScSGIFZFTElNSVIgRFIKK1NFUkFUTEnEhiBaT1JBTgorU0VSREEgxaBBTkRPUgorU0VSREFSIERBTklDQQorU0VSREFSIElMSUpBCitTRVJEQVIgTUFSQQorU0VSREFSIE1MQURFTgorU0VSREFSIE5FREVMSktPCitTRVJEQVIgUEVUQVIKK1NFUkRBUiBQRVRBUgorU0VSREFSRVZJxIYgxIZBWklNCitTRVJEQVJFVknEhiBHSVpFTEEKK1NFUkXFoEkgRkVSRU5DCitTRVJFxaBJIEnFoFRWQU4KK1NFUkXFoEkgTEFTTE8KK1NFUkXFoEkgUk9aQUxJSkEKK1NFUkXFoEkgU1RFVkFOCitTRVJFxaBJIFRJQk9SCitTRVJFTsSMRSBMQURJU0xBVgorU0VSRU7EjEXFoCBKT8W9RUYgTk9WSU5BUgorU0VSTkVDIFNURVZBTgorU0VSVEnEhiBEUkFHQU4KK1NFUlRJxIYgTUFSSUpBCitTRVJUScSGIE1BVElKQQorU0VSVEnEhiBNSUxBTgorU0VSVEnEhiBWTEFEQQorU0VURU7EjEnEhiBNSUxPUkFECitTRVZFUiDFoElNRQorU0VWRVJJTkkgSkFOCitTRVZJxIYgxJBPUsSQRQorU0VWScSGIFJBREVOS08KK1NFVktJxIYgQlJBTktPCitTRVZLScSGIE1BR0RBTEVOQQorU0nEjCBBTkRSSUpBCitTScSMIERSQUdBTgorU0nEjCBGRVJFTkMKK1NJxIwgSU1SRQorU0nEjCBKT8W9RUYKK1NJxIwgSk9TSVAKK1NJxIwgSk9TSVAKK1NJxIwgSlVMSUpBTkEKK1NJxIwgS0FMTUFOCitTScSMIEtBTE1BTgorU0nEjCBNQVJHSVRBCitTScSMIE1BUklKQQorU0nEjCBNQVJJSkEKK1NJxIwgTUlIQUxKCitTScSMIE1JUk9TTEFWQQorU0nEjCBQRVRBUiBEUiBMRUtBUgorU0nEjCBQSVJPxaBLQQorU0nEjCBTVEVWQU4KK1NJxIwgU1RFVkFOCitTScSMIFNURVZBTgorU0nEjCBURVJFWkEKK1NJxIwgVkxBRElTTEFWCitTScSMIFpMQVRLTworU0nEhiBNSVJPU0xBVgorU0nEhiBTTEHEkEFOQQorU0nEhiBTVEFOSVNMQVYKK1NJxIYgU1RBTktPCitTScSQSSBNSVJLTworU0lCRVIgScWgVFZBTgorU0lCRVIgScWgVFZBTgorU0lCSU5BQyBWVUtJQ0EKK1NJQklOS0nEhiBQRVRBUgorU0lCSU5LScSGIFJBVEtPCitTSUJJTktJxIYgUkFUS08KK1NJQklOS0nEhiBWQVNBCitTSUJJTk9WIE5JS09MQQorU0lCSU5PVknEhiBSQURPTUlSCitTSUJJTlNLSSBWSURBCitTSUTFvUlNT1NLSSBESU1JVFJJSkUKK1NJRE9SIMSGSVJJTCBEUgorU0lHRVRJLUJJxIxLRUkgQUdPVEEKK1NJR0VUSSBKQcWgQQorU0lHRVRJIEpBTk/FoAorU0lHRVRJIFNURVZBTgorU0lLQSBGUkFOSkEKK1NJS0EgSVJFTkEKK1NJS0lNScSGIEFOxJBFTEtBCitTSUtJTUnEhiBOT1ZBSworU0lLSU1JxIYgU1LEkEFOCitTSUtJTUnEhiBTUsSQQU4KK1NJS0lSSUNBIE1JUkpBTkEKK1NJS09SQSBLQVJPTEoKK1NJS09SQSBMQURJU0xBVgorU0lLT1JBIFBFVEFSCitTSUxBxaBLSSBJTElKQQorU0lMQcWgS0kgUkFET1ZBTgorU0lMQcWgS0kgU0xBVktPCitTSUxBxaBLSSBTTkXFvUFOQQorU0lMQcWgS0kgVkVSQQorU0lMQcWgS0kgVkxBRElTTEFWQQorU0lMQcSQRVYgUlXFvUlDQQorU0lMQcSQSSDFoEFORE9SCitTSUxBxJBJIEFORFJBxaAKK1NJTEHEkEkgRlJBTkpBCitTSUxBxJBJIEdJWkVMQQorU0lMQcSQSSBJxaBUVkFOCitTSUxBxJBJIElNUkUKK1NJTEHEkEkgSkVMSVNBVkVUQQorU0lMQcSQSSBLQVJPTEoKK1NJTEHEkEkgTEFESVNMQVYKK1NJTEHEkEkgTEFTTE8gVkFKQVIKK1NJTEHEkEkgTEFTTE8KK1NJTEHEkEkgTEFTTE8KK1NJTEHEkEkgTEFTTE8KK1NJTEHEkEkgTEpVREVWSVQKK1NJTEHEkEkgTEpVREVWSVQKK1NJTEHEkEkgTUFSSUpBCitTSUxBxJBJIE1JS0xPxaAKK1NJTEHEkEkgUk9aQUxJSkEKK1NJTEHEkEkgVEVSRVpBCitTSUxBxJBJIFZJS1RPUklKQQorU0lMQUsgQU5EUkHFoAorU0lMQUsgR0laRUxBCitTSUxBSyBJxaBUVkFOCitTSUxBSyBaT0xUQU4KK1NJTEJBxaBLSSBET8WgS08KK1NJTEJBxaBLSSBMSlVCSUNBCitTSUxCQcWgS0kgTUFSSkFOCitTSUxCQcWgS0kgWk9SQU4KK1NJTEJFUkhPTEMgU1RFVkFOCitTSUxFUiDEkFVMQQorU0lMRVIgRFXFoElDQQorU0lMRVIgR1VTVEFWCitTSUxFUiBLQVJMCitTSUxKQU5PVlNLSSBEQVJLTworU0lMSkFOT1ZTS0kgSk/FvUUKK1NJTE5JIFNMQVZOQQorU0lMVkHFoEkgxaBBTkRPUgorU0lMVkHFoEkgSkFOT8WgCitTSUxWQcWgSSBLQVJPTEoKK1NJTFZFU1RST1ZJxIYgTUlMSUNBCitTSUxWRVNUUk9WScSGIFRBTkFTSUpFCitTSU3EjElOIE1JSEFKTE8KK1NJTUFOScSGIElMSUpBCitTSU1BTknEhiBKRVpESU1JUgorU0lNQU5JxIYgUEVUS08KK1NJTUFOScSGIFJBSktBCitTSU1BTknEhiBTQVZBCitTSU1FTkRJxIYgQk/FvUEKK1NJTUVOREnEhiBHT1JBTgorU0lNRU5EScSGIFNWRVRPWkFSCitTSU1FTkRJxIYgVkxBRElNSVIKK1NJTUVOVEnEhiBKT1ZBTgorU0lNRU5UScSGIFZPSklTTEFWCitTSU1FT05PViBQQVZMRQorU0lNRU9OT1YgUkFESVZPSgorU0lNRU9OT1YgWkRSQVbEjE8KK1NJTUVPTk9WScSGIMSQT1LEkEUKK1NJTUVPTk9WScSGIE1JTElWT0oKK1NJTUVPTk9WScSGIFJBRE9TTEFWCitTSU1FT05PVknEhiBTTE9CT0RBTktBCitTSU1FVEnEhiBNT03EjElMTworU0lNRVRJxIYgT1NUT0pBCitTSU1FVU5PVknEhiBCT1JJU0xBVgorU0lNRVVOT1ZJxIYgRFJBR0FOCitTSU1FVU5PVknEhiBEUkFHQU4KK1NJTUVVTk9WScSGIERSQUdPTEpVQgorU0lNRVVOT1ZJxIYgRFXFoEFOCitTSU1FVU5PVknEhiBKQU5LTworU0lNRVVOT1ZJxIYgTEVQT1NBVkEKK1NJTUVVTk9WScSGIE1JTEFOCitTSU1FVU5PVknEhiBNSUxPTUlSCitTSU1FVU5PVknEhiBORVZFTktBCitTSU1FVU5PVknEhiBSQURPU0FWCitTSU1FVU5PVknEhiBTQVZBCitTSU1FVU5PVknEhiBTSU1PCitTSU1FVU5PVknEhiBTSU1PCitTSU1FVU5PVknEhiBTUkVURU4KK1NJTUVVTk9WScSGIFZMQURBCitTSU1JxIxJxIYgRFJBR0FOQQorU0lNScWgScSGIFJBRE9KSUNBCitTSU1JxIYgxIxFREEKK1NJTUnEhiDFvUlWT0pJTgorU0lNScSGIMW9SVZPSklOCitTSU1JxIYgxJBVUsSQRVZLQQorU0lNScSGIMSQVVJBCitTSU1JxIYgxJBVUk8KK1NJTUnEhiBBQ0EKK1NJTUnEhiBBREFNCitTSU1JxIYgQUxFS1NBTkRBUgorU0lNScSGIEFMRUtTQU5EQVIKK1NJTUnEhiBBTsSQRUxLQQorU0lNScSGIEJPxaBLTworU0lNScSGIEJPSkFOQQorU0lNScSGIEJPUkEKK1NJTUnEhiBCT1JJU0xBVgorU0lNScSGIEJPUklTTEFWCitTSU1JxIYgQk9SS0EKK1NJTUnEhiBCT1NJTEpLQQorU0lNScSGIEJSQU5JU0xBVgorU0lNScSGIEJSQU5JU0xBVgorU0lNScSGIEJSQU5JU0xBVgorU0lNScSGIEJSQU5LTworU0lNScSGIEJVRElNSVIKK1NJTUnEhi1DSEFMQUJJIERSQUdBTkEKK1NJTUnEhiBDVkVUSU4KK1NJTUnEhiBERUpBTgorU0lNScSGIERPQlJJVk9KRQorU0lNScSGIERPQlJJVk9KRQorU0lNScSGIERPSsSMSU4KK1NJTUnEhiBEUkFHQU4KK1NJTUnEhiBEUkFHSUNBCitTSU1JxIYgRFJBR09MSlVCCitTSU1JxIYgRFJBR09MSlVCCitTSU1JxIYgRFJBR1VUSU4KK1NJTUnEhiBEVcWgQU5LQQorU0lNScSGIERVxaBBTgorU0lNScSGIERVxaBBTgorU0lNScSGIERVxaBJQ0EKK1NJTUnEhiBHT0pLTworU0lNScSGIEdPUkRBTkEKK1NJTUnEhiBHUkFESU1JUgorU0lNScSGIEhFUk1JTkEgRFIKK1NJTUnEhiBJTElKQQorU0lNScSGIElMT05LQQorU0lNScSGIElWQU4KK1NJTUnEhiBKRUxFTkEKK1NJTUnEhiBKT1ZBTgorU0lNScSGIEpPVkFOCitTSU1JxIYgSk9WSUNBCitTSU1JxIYgSk9WTworU0lNScSGIEpPVk8KK1NJTUnEhiBKVURJVAorU0lNScSGIEtSSVNUSU5BCitTSU1JxIYgTEpJTEpBTkEKK1NJTUnEhiBNQVJJSkEKK1NJTUnEhiBNQVJJSkEKK1NJTUnEhiBNQVJJSkEKK1NJTUnEhiBNSUNBCitTSU1JxIYgTUlIQUlMTworU0lNScSGIE1JTEFOCitTSU1JxIYgTUlMQU4KK1NJTUnEhiBNSUxBTgorU0lNScSGIE1JTEVOQQorU0lNScSGIE1JTElDQQorU0lNScSGIE1JTElKQQorU0lNScSGIE1JTElWT0oKK1NJTUnEhiBNSUxPxaAKK1NJTUnEhiBNSUxPxaAKK1NJTUnEhiBNSUxPxaAKK1NJTUnEhiBNSUxPUkFECitTSU1JxIYgTUlMT1JBRAorU0lNScSGIE1JTE9WQU4KK1NJTUnEhiBNSUxVVElOCitTSU1JxIYgTUlMVVRJTgorU0lNScSGIE1JTFVUSU4KK1NJTUnEhiBNSVJLTworU0lNScSGIE1PTcSMSUxPCitTSU1JxIYgTU9NxIxJTE8KK1NJTUnEhiBNT03EjElMTworU0lNScSGIE1PTcSMSUxPCitTSU1JxIYgTkFEQQorU0lNScSGIE5BREEKK1NJTUnEhiBOQVJBTsSMQQorU0lNScSGIE5FxJBPCitTSU1JxIYgTkVERUxKS08KK1NJTUnEhiBORU1BTkpBCitTSU1JxIYgTkVWRU5LQQorU0lNScSGIE5JS09MQQorU0lNScSGIE5JS09MQQorU0lNScSGIE5PVkFLCitTSU1JxIYgTk9WQUsKK1NJTUnEhiBOT1ZBSworU0lNScSGIE9MR0EKK1NJTUnEhiBPU1RPSkEKK1NJTUnEhiBQQU5URUxJSkEKK1NJTUnEhiBQQVZMRQorU0lNScSGIFBFVEFSCitTSU1JxIYgUkFEQQorU0lNScSGIFJBREVOS08KK1NJTUnEhiBSQURFTktPCitTSU1JxIYgUkFESVNBVgorU0lNScSGIFJBRElWT0pFCitTSU1JxIYgUkFESVZPSkUKK1NJTUnEhiBSQURJVk9KCitTSU1JxIYgUkFET0pFCitTSU1JxIYgUkFET1ZBTgorU0lNScSGIFJBSktPCitTSU1JxIYgUlXFvUlDQQorU0lNScSGIFJVxb1JQ0EKK1NJTUnEhiBTQVZBCitTSU1JxIYgU0lNQQorU0lNScSGIFNJTknFoEEKK1NJTUnEhiBTTEFEQQorU0lNScSGIFNMQVZLTworU0lNScSGIFNMT0JPREFOCitTSU1JxIYgU1LEkEFOCitTSU1JxIYgU1JFVEVOCitTSU1JxIYgU1RFVkFOCitTSU1JxIYgU1RFVkFOCitTSU1JxIYgU1RFVkFOCitTSU1JxIYgU1RPSkFOS0EKK1NJTUnEhiBTVkVUSVNMQVYKK1NJTUnEhiBTVkVUSVNMQVYKK1NJTUnEhiBUSUhPTUlSCitTSU1JxIYgVElIT01JUgorU0lNScSGIFRPREUKK1NJTUnEhiBUT01JU0xBVgorU0lNScSGIFRPTUlTTEFWCitTSU1JxIYgVkFKS0EKK1NJTUnEhiBWQVNBCitTSU1JxIYgVkVST05LQQorU0lNScSGIFZFU0VMS08KK1NJTUnEhiBWSU5LQQorU0lNScSGIFZMQURFCitTSU1JxIYgVkxBRElNSVIKK1NJTUnEhiBWTEFETworU0lNScSGIFZPSklTTEFWCitTSU1JxIYgWkxBVElNSVIKK1NJTUnEhiBaT1JBTgorU0lNScSGIFpPUkFOCitTSU1JxIYgWk9SQU4KK1NJTUnEhiBaT1JBCitTSU1JxIYgWk9SQQorU0lNScSGIFpPUklDQQorU0lNScSGIFpPUktBCitTSU1JxIZFVknEhiBSQURPTUFOCitTSU1JSk9OT1ZJxIYgU0xPQk9EQU4KK1NJTUlLScSGIEpPVkFOCitTSU1JTEVOSkkgRFXFoElDQQorU0lNSU4gxb1JVktBCitTSU1JTiDFvUlWT0pJTgorU0lNSU4gQU7EkEVMS0EKK1NJTUlOIEFSQU5LQQorU0lNSU4gQ1ZFVEtPCitTSU1JTiBEQU5JQ0EKK1NJTUlOIERBTklMTworU0lNSU4gRElOQQorU0lNSU4gRFJBR0FOCitTSU1JTiBISUxEQQorU0lNSU4gSVZBTktBCitTSU1JTiBJVkFOCitTSU1JTiBKQcWgQQorU0lNSU4gSkVMRU5BCitTSU1JTiBLT1NUQQorU0lNSU4gTEFaQVIKK1NJTUlOIExFUE9TQVZBCitTSU1JTiBMSlVCSUNBCitTSU1JTiBNQUdEQQorU0lNSU4gTUlMRU5BCitTSU1JTiBNSUxJQ0EKK1NJTUlOIE1JTElDQQorU0lNSU4gTUlMSVZPSgorU0lNSU4gTUlMSVZPSgorU0lNSU4gTUlMVVRJTgorU0lNSU4gTUlST1NMQVYKK1NJTUlOIE5BREEKK1NJTUlOIE5BREEKK1NJTUlOIE5FQk9KxaBBCitTSU1JTiBQQVZMRQorU0lNSU4gUEVUQVIKK1NJTUlOIFJBRElDQQorU0lNSU4gUkFESVZPSkUKK1NJTUlOIFJBRE9KSUNBCitTSU1JTiBSQURPVkFOCitTSU1JTiBTSU5JxaBBCitTSU1JTiBTT0ZJSkEKK1NJTUlOIFNURVZBTgorU0lNT05PVknEhiBEUkFHT1NMQVZBCitTSU1PTk9WScSGIEhSSVNUSU5BCitTSU1PTk9WScSGIElSRU5BIERSCitTSU1PTk9WScSGIE1JTEUKK1NJTU9OT1ZJxIYgTUlMT1JBRAorU0lNT05PVknEhiBNSUxPUkFECitTSU1PTk9WScSGIE5BREEKK1NJTU9OT1ZJxIYgTklLT0xBCitTSU1PTk9WScSGIFBFVEFSCitTSU1PTk9WScSGIFNMT0JPREFOCitTSU1PTk9WScSGIFRPTUlTTEFWCitTSU1PTk9WScSGIFZPSklTTEFWCitTSU1PTk9WU0tJIEZJTktBCitTSU1PTk9WU0tJIE1JVEEKK1NJTU9USU4gUkFET1ZBTgorU0lNT1ZJxIYgxb1FTEpLTworU0lNT1ZJxIYgxb1JVk9UQQorU0lNT1ZJxIYgQU5LQQorU0lNT1ZJxIYgQlJBTklTTEFWIERSCitTSU1PVknEhiBEUkFHT0xKVUIKK1NJTU9WScSGIERSQUdPTEpVQgorU0lNT1ZJxIYgRFJBR08KK1NJTU9WScSGIEpPVkEKK1NJTU9WScSGIExKVUJJxaBBCitTSU1PVknEhiBNSUxBTgorU0lNT1ZJxIYgTUlMQU4KK1NJTU9WScSGIE1JTEFOCitTSU1PVknEhiBNSUxBTgorU0lNT1ZJxIYgTUlMT8WgCitTSU1PVknEhiBNSUxPxaAKK1NJTU9WScSGIE1JUktPCitTSU1PVknEhiBNSVRBUgorU0lNT1ZJxIYgUEVUQVIKK1NJTU9WScSGIFJBRElWT0pFCitTSU1PVknEhiBSQURPTUlSCitTSU1PVknEhiBTTE9CT0RBTiBQUk9GRVNPUgorU0lNT1ZJxIYgU0xPQk9EQU4KK1NJTU9WScSGIFRPRE9SCitTSU1PVknEhiBWSURBSworU0lNT1ZJxIYgVkxBRElNSVIKK1NJTU9WTEpFVknEhiBKT0NBCitTSU1VTknEhiDFvUVMSU1JUgorU0lNVU5JxIYgQU5EUklKQQorU0lNVU5JxIYgTUFHREEKK1NJTVVOScSGIFNUQU5JTUlSCitTSU1VTk9WScSGIE1BUklKQQorU0lNVU5PVknEhiBNSUxVTgorU0lNVVJEScSGIE1JTEFOCitTSU1VUkRJxIYgUEVUQVIKK1NJTVVSREnEhiBWSVRPTUlSCitTSU7EjEnEhiBaVk9OSU1JUgorU0lOxJBFTEnEhiBMSlVCSVNBVgorU0lOxJBFTEnEhiBNSUxPxaAKK1NJTsSQScSGIE1JTEVOS08KK1NJTkFESU5PVknEhiBWT0pPCitTSU5BTkkgQUJEVUxBCitTSU5BTkkgTUlMSUNBCitTSU5BTk9WScSGIFNBRkVUCitTSU5HRVIgRFJBR0lDQQorU0lOR0VSIFJVxb1JQ0EKK1NJUkHEjEtJIEtBUk9MSU5BCitTSVJBQ0tJIEpPVkFOCitTSVJBQ0tJIFZMQURJTUlSCitTSVJBSyBMQVNMTyBEUgorU0lSScWgS0kgxb1BUktPCitTSVJJxaBLSSDEkFVSxJBJTkEKK1NJUknFoEtJIEJSQU5JU0xBVgorU0lSScWgS0kgSVZBTgorU0lSScWgS0kgSkFTTUlOS0EKK1NJUknFoEtJIEpFTEVOQQorU0lSScWgS0kgSk9WQU4KK1NJUknFoEtJIE1JUk9TTEFWQQorU0lSScWgS0kgU0xBVktPIFNVRElKQQorU0lSScWgS0kgU0xBVktPCitTSVJPxIxJxIYgSVZBTgorU0lST8W9RU5LTyBTTkXFvUFOQQorU0lST8W9RU5LTyBWRVJBCitTSVJPVElOIFNMQVZJQ0EKK1NJUk9WSUNBIEpBTk/FoAorU0lSVcSMRUsgVklMSU0gRElQTCBJTkcKK1NJVEHFoCBJTE9OQQorU0lUQcWgIExBSk/FoAorU0lUQVJFVknEhiBBTUlSCitTSVRBUknEhiBQQUpBCitTSVbEjCBBTUFMSUpBCitTSVbEjCBBTsSQRUxLQQorU0lWxIwgREFOSUxPCitTSVbEjCBIRUxFTkEKK1NJVsSMIElSSU5BCitTSVbEjCBKQU5LTworU0lWxIwgTEpVQk9NSVIKK1NJVsSMIExKVUJPTUlSCitTSVbEjCBORVNUT1IKK1NJVsSMIFZMQURJTUlSCitTSVbEjEVWIMSQT0tBCitTSVbEjEVWIEJPxb1JREFSCitTSVbEjEVWIEpPVkFOIERSCitTSVbEjEVWIEpVTEtBCitTSVbEjEVWIExKVUJJQ0EKK1NJVsSMRVYgTUlMQU4KK1NJVsSMRVYgWk9SQU4KK1NJVkHEjEtJIMSQVVJBCitTSVZBxIxLSSBKT1ZBTgorU0lWQcSMS0kgTUlMQU4KK1NJVkHEjEtJIE1JUkpBTkEKK1NJVkHEjEtJIE1JUk9TTEFWCitTSVZBxIxLSSBTQVZBCitTSVZBxIxLSSBTTE9CT0RBTktBCitTSVZBxIxLSSBWRVJBCitTSVZBxIxLSSBWRVJBCitTSVZBQyBKT1ZBTktBCitTSVZBSyBJQk9MSkEKK1NJVkFLIEpVRElUQQorU0lWQUsgTEpVQklOS0EKK1NJVkFLIFJPWklOQQorU0lWScSGIEdPSktPCitTSVZJxIYgUkFERQorU0laT1YgTUFSR0lUQQorU0pFTknEjEnEhiBORURFTEpLTworU0pFUEFOT1ZJxIYgU1LEkEFOCitTS0FLQVZBQyBOSUtPTEEKK1NLQUtBVkFDIE5PVkEKK1NLQUtBVkFDIE5PVkEKK1NLQUtBVkFDIFNPRklKQQorU0tBS0FWQUMgVkVMSU1JUgorU0tBS0FWQUMgVlVKSUNBCitTS0FLQVZBQyBaRFJBVktPCitTS0FLScSGIEJPxaBLTworU0tBS0nEhiBNSUxBTgorU0tBS0nEhiBOSUtPTEEKK1NLQUtVTiDFvUlWS08KK1NLQUxBIEFOVEFMCitTS0FMQSBNSUxFTkEKK1NLQUxBIFZMQURJTUlSCitTS0FMSUNLSSBaQUdPUktBCitTS0FOREFSU0tJIEFOS0EKK1NLQU5EQVJTS0kgTUlMQU4KK1NLQU5EQVJTS0kgTUlMT8WgCitTS0FOREFSU0tJIE1JUktPCitTS0FOREFSU0tJIE1MQURFTgorU0tBTkRBUlNLSSBNT03EjElMTworU0tBTkRBUlNLSSBSQURPVkFOCitTS0FSQU1VQ0EgTUlKTworU0tBUkFNVUNBIFpEUkFWS08KK1NLRUxFRMW9ScSGIEFMRUtTQU5EQVIKK1NLRUxFRMW9ScSGIEFMRUtTQU5EQVIKK1NLRUxFRMW9ScSGIEJSQU5JU0xBVgorU0tFTEVExb1JxIYgQlJBTklTTEFWCitTS0VMRUTFvUnEhiBEUkFHSUNBCitTS0VMRUTFvUnEhiBLQVRJQ0EKK1NLRUxFRMW9ScSGIExKVUJJTktPCitTS0VMRUTFvUnEhiBNQVJJSkEKK1NLRUxFRMW9ScSGIE1JTEFOCitTS0VMRUTFvUnEhiBNSVJPU0xBVkEKK1NLRUxFRMW9ScSGIFJBRE9TTEFWCitTS0VMRUTFvUnEhiBSQURPU0xBVgorU0tFTEVExb1JSkEgS0FUQQorU0tFTEVExb1JSkEgUkFET0pJQ0EKK1NLRUxFRMW9SUpBIFNQQVNJTUlSCitTS0VORMW9ScSGIMW9QVJLTworU0tFTkTFvUnEhiBCT0dEQU4KK1NLRU5Exb1JxIYgQlJBTktBCitTS0VORMW9ScSGIERBTkUKK1NLRU5Exb1JxIYgREFOSUxPCitTS0VORMW9ScSGIERSQUdPTUlSCitTS0VORMW9ScSGIERVxaBBTgorU0tFTkTFvUnEhiBJTElKQQorU0tFTkTFvUnEhiBKQVNNSU5LQQorU0tFTkTFvUnEhiBKT1ZBTktBCitTS0VORMW9ScSGIE1BUkdBUkVUQQorU0tFTkTFvUnEhiBNSUxBTgorU0tFTkTFvUnEhiBNSUxFTktPCitTS0VORMW9ScSGIE1JTElDQQorU0tFTkTFvUnEhiBSQURFCitTS0VORMW9ScSGIFNBUkEKK1NLRU5Exb1JxIYgU09GSUpBCitTS0VORMW9ScSGIFNURVZBTgorU0tFTkRFUk9WScSGIEFORFJJSkEKK1NLRU5ERVJPVknEhiBCRVJJU0xBVgorU0tFTkRFUk9WScSGIEdBQk9SCitTS0VOREVST1ZJxIYgTUFSSUpBCitTS0VOREVST1ZJxIYgU0lOScWgQQorU0tFUkxFVE9WScSGIE1JTE/FoAorU0tFUkxFVE9WScSGIFpPUkFOCitTS0VSVCBCT8W9SURBUgorU0tJxIxBSyBMQVNMTworU0tJVkpBTkkgxaBBTkRPUgorU0tJVkpBTkkgTUlIQUxKCitTS0xBQklOQUMgVkxBRElNSVIKK1NLTEFCSU5TS0kgU0FNTworU0tMRU5BIEpPSEFOIERJUEwgSU5HCitTS0xFTkEgT0xJVkVSQQorU0tMRU5BIFZJS1RPUklKQQorU0tMRU5BUiBQRVRBUgorU0tMSkFSIMSQVVJPCitTS0/EjEFKScSGIFZVS0HFoElOCitTS0/EjE9WU0tJIE1BUklKQQorU0tPQkUgSVZBTgorU0tPSyBNSVJKQU5BCitTS09LQU5EScSGIFBFVEFSCitTS09LScSGIE5FTkFECitTS09LScSGIFZFU05BCitTS09LTknEhiBEVcWgQU4KK1NLT0tOScSGIFNURVZBTgorU0tPS08gTUlMT8WgCitTS09NSU5BIFZFUklDQQorU0tPUEFMIEJFTEEKK1NLT1BBTCBKT1ZBTgorU0tPUknEhiBKQVNNSU5LQQorU0tPUknEhiBMSlVCTworU0tPUknEhiBUT05LQQorU0tPUknEhiBWVUpPCitTS09SVVBBTiDEkFVSQQorU0tPUlVQQU4gREFOSUNBCitTS09SVVBBTiBLQVRBCitTS09SVVBBTiBSQURFTktPCitTS09SVVBBTiBTTEFWS08KK1NLT1RPVknEhiBGRVJFTkMKK1NLUkFNT8SGSU4gU1JFxIZLTworU0tST0JJxIYgRFJBR0FOCitTS1JPQknEhiBQRVRBUgorU0tST0JPTkpBIEFMRUtTQU5EQVIKK1NLUk9CT05KQSBLQVRJQ0EKK1NLUk9CT05KQSBOSUtPTEEKK1NLUk9CT05KQSBWTEFESU1JUgorU0tVQkFOIEhFTEVOQQorU0tVQkFOIEpBTktPCitTS1VCQU4gSkVGUkVNCitTS1VCQU4gSlVMSUpBTgorU0tVQkFOIExFT05BCitTS1VCQU4gTEpVQk9NSVIKK1NLVUJBTiBNSUhBSkxPCitTS1VCQU4gTkFUQUxJSkEKK1NLVUJBTiBOSUtPTEEKK1NLVUJBTiBaT1JLQQorU0tVTEFSIFJBRE9KS0EKK1NLVUxJxIYgTUlSSkFOQQorU0tVTEnEhiBTSU1LQQorU0tVTEnEhiBWTEFESU1JUgorU0tVTVBJSkEgSk/FvUVGCitTS1VSVVBBVElTIE1JUkpBTkEKK1NMQcSGQU5JTiBJVkFOCitTTEFEQUtPVknEhiBOSUtPTEEKK1NMQURFSyBBTkRSSUpBCitTTEFEScSGIENWRVRBCitTTEFEScSGIFNMT0JPREFOCitTTEFEScSGIFNURVZBTgorU0xBREnEhiBaT1JJQ0EKK1NMQURPSkEgTUlMT1ZBTgorU0xBRE9KRSBJTElKQQorU0xBRE9KRSBSQURPTUlSCitTTEFET0pFViBNSUxBTgorU0xBRE9KRVYgUFJFRFJBRworU0xBRE9KRVZJxIYgxb1JVktPCitTTEFET0pFVknEhiBNSVJLTworU0xBRE9KRVZJxIYgUkFESVZPSgorU0xBTUEgxJBPUsSQRQorU0xBTUEgTUFSSUpBCitTTEFNQVIgRkVSRU5DCitTTEFOQyBKRUxFTkEKK1NMQU5LQU1FTkFDIMW9SVZLTworU0xBTktBTUVOQUMgxb1JVktPCitTTEFOS0FNRU5BQyDEkE9SxJBFCitTTEFOS0FNRU5BQyBBTEVLU0FOREFSCitTTEFOS0FNRU5BQyBBTktJQ0EKK1NMQU5LQU1FTkFDIEJSQU5JU0xBVgorU0xBTktBTUVOQUMgRFXFoEFOS0EKK1NMQU5LQU1FTkFDIElEQQorU0xBTktBTUVOQUMgSkVMRU5BCitTTEFOS0FNRU5BQyBKT1ZBTgorU0xBTktBTUVOQUMgTUFSSUpBCitTTEFOS0FNRU5BQyBNQVJJSkEKK1NMQU5LQU1FTkFDIE1JTEFOCitTTEFOS0FNRU5BQyBNSUxBTgorU0xBTktBTUVOQUMgTUlMQU4KK1NMQU5LQU1FTkFDIE1JTE/FoAorU0xBTktBTUVOQUMgTUlMT8WgCitTTEFOS0FNRU5BQyBNSUxPSkUKK1NMQU5LQU1FTkFDIE1JUkpBTkEKK1NMQU5LQU1FTkFDIE1PTcSMSUxPCitTTEFOS0FNRU5BQyBOQURBCitTTEFOS0FNRU5BQyBQRVRBUiBEUgorU0xBTktBTUVOQUMgUEVUQVIKK1NMQU5LQU1FTkFDIFBFVEFSCitTTEFOS0FNRU5BQyBQUk9LQQorU0xBTktBTUVOQUMgUkFET1NMQVYKK1NMQU5LQU1FTkFDIFNURVZBTgorU0xBTktBTUVOQUMgVkVTRUxJTgorU0xBTktBTUVOQUMgWk9SQU4KK1NMQVRWSU5TS0kgR0VPUkdJSkUKK1NMQVZJxIYgxJBPUsSQRQorU0xBVknEhiBTT0ZJSkEKK1NMQVZJQ0EgU1RJUEUKK1NMQVZLScSGIERVxaBBTktBCitTTEFWS09WScSGIEFMT0paCitTTEFWS09WScSGIE1JTE/FoAorU0xBVktPVknEhiBNSVJKQU5BCitTTEFWS09WScSGIFNJQklOCitTTEFWS09WScSGIFNORcW9QU5BCitTTEFWS09WScSGIFRSSUZVTgorU0xBVktPVknEhiBaREVOS08KK1NMQVZOScSGIERBTklMTworU0xBVk5JxIYgSkFTTUlOQQorU0xBVk5JxIYgTEpVQklDQQorU0xBVk5JxIYgTk9WS0EKK1NMQVZOScSGIFJBRElWT0oKK1NMQVZOT1ZJxIYgSVZBTgorU0xBVlVKIEJPxb1PCitTTEFWVUogRFJBR0FOCitTTEFWVUpFVknEhiBEVcWgQU4KK1NMQVZVSkVWScSGIExKVUJPTUlSCitTTEFWVUpFVknEhiBNSUxFTkEKK1NMQVZVSkVWScSGIFJBRElTQVYKK1NMQVZVSkVWScSGIFNURVZPCitTTEFWVUxKIE1JTEUKK1NMRVDEjEVWIMW9SVZBTgorU0xFUMSMRVYgREFOSUNBCitTTEVQxIxFViBKT1ZBTgorU0xFUMSMRVYgTklLT0xBCitTTEVQxIxFViBaREVOS0EKK1NMRVDEjEVWIFpPUklDQQorU0xFUMSMRVZJxIYgS1JTVEFOCitTTEVQxIxFVknEhiBMSlVCScWgQQorU0xFUMSMRVZJxIYgTUlMQU4KK1NMRVDEjEVWScSGIE9MR0EKK1NMRVDEjEVWScSGIFJVxb1BCitTTEVQxIxFVknEhiBaRFJBVktBCitTTEVQS08gSVJFTkEKK1NMRVBLTyBKT1ZBTgorU0xFUEtPIE1JSEFKTE8KK1NMRVBLTyBNSUxJQ0EKK1NMRVNBUiBEQU5JTE8KK1NMRVNBUiBKRUxFTkEKK1NMRVNBUiBNT03EjElMTworU0xFU0FSIFZBU0EKK1NMScWgS08gQU5EUklKQQorU0xJxaBLTyBNQVJLTworU0xJxaBLT1ZJxIYgQU7EkEVMS0EKK1NMSUpFUMSMRVZJxIYgQU5BCitTTElKRVDEjEVWScSGIEJJU0VSS0EKK1NMSUpFUMSMRVZJxIYgRFJBR0FOCitTTElKRVDEjEVWScSGIERVxaBBTgorU0xJSkVQxIxFVknEhiBEVcWgQU4KK1NMSUpFUMSMRVZJxIYgR0VPUkdJSkUKK1NMSUpFUMSMRVZJxIYgSkFOS08KK1NMSUpFUMSMRVZJxIYgSkFOS08KK1NMSUpFUMSMRVZJxIYgSk9WQU4KK1NMSUpFUMSMRVZJxIYgS09WSUxKS0EKK1NMSUpFUMSMRVZJxIYgTEpVQkFOCitTTElKRVDEjEVWScSGIE1JTE9SQUQKK1NMSUpFUMSMRVZJxIYgTUlMT1ZBTgorU0xJSkVQxIxFVknEhiBNSVJPU0xBVkEKK1NMSUpFUMSMRVZJxIYgTk9WSUNBCitTTElKRVDEjEVWScSGIFJVxb1JQ0EKK1NMSUpFUMSMRVZJxIYgU0FWTworU0xJSkVQxIxFVknEhiBWRVJBCitTTElKRVDEjEVWScSGIFZKRUtPU0xBVkEKK1NMSUpFUMSMRVZJxIYgWlZPTktPCitTTElKRVBBQyBNSUxPxaAKK1NMSUpFUEFDIFNMT0JPREFOCitTTElNQUsgQURBTQorU0xJVkEgRUxJWkFCRVRBCitTTElWS0EgxJBVUkEKK1NMSVZLQSBBTkEKK1NMSVZLQSBCT8W9QU5BCitTTElWS0EgQk9TSUxKS0EKK1NMSVZLQSBKQVJPU0xBVgorU0xJVktBIEpPVkFOCitTTElWS0EgTUnFoEEKK1NMSVZLQSBNScWgQQorU0xJVktBIFNURVZBTgorU0xJVktBIFpERU5LQQorU0xJVktBIFpMQVRBCitTTEpVS0EgQk9IVVNMQVYKK1NMSlVLQSBKVVJBSgorU0xPQk9EQSBBTlRBTAorU0xPQk9EQSBJxaBUVkFOCitTTE9CT0RBIEpBTk/FoAorU0xPQk9EQSBKT8W9RUYKK1NMT0JPREEgSlVMS0EKK1NMT0JPREEgTUlIQUpMTworU0xPQk9EQSBNSUhBTEoKK1NMT0JPREEgUEVUQVIKK1NMT0JPREEgU0xBVktBCitTTE9CT0RBIFNURVZBTgorU0xPS0FSIElWQU4KK1NMT0tBUiBNQVRJSkEKK1NMT1ZJxIYgRFJBR09MSlVCIERSCitTTFVOSlNLSSBGUkFOSkEKK1NNQUdJTiBJVkFOCitTTUFKScSGIE1BS1NJTQorU01BSknEhiBNSUxPxaAKK1NNQUpJxIYgU0xPQk9EQU4KK1NNQUpJxIYgU0xPQk9EQU4KK1NNRURFUkVWQUMgRFXFoEFOCitTTUVERVJFVkFDIEpPVkFOCitTTUVERVJFVkFDIE1JTElDQQorU01FREVSRVZBQyBQRVRBUgorU01FREVSRVZBQyBTVEVWSUNBCitTTUnEhkVWScSGIFVST8WgCitTTUlFxaBLTyBKRUxJU0FWRVRBCitTTUlMScSGIE1BUklKQQorU01JTEpBTknEhiDEkE9SxJBFCitTTUlMSkFOScSGIMSQT1LEkEUKK1NNSUxKQU5JxIYgxJBPUsSQRQorU01JTEpBTknEhiBCT0pBTkEKK1NNSUxKQU5JxIYgQk9SS0EKK1NNSUxKQU5JxIYgQlJBTktPCitTTUlMSkFOScSGIERPQlJJVk9KCitTTUlMSkFOScSGIERSQUdJQ0EKK1NNSUxKQU5JxIYgSUxJSkEKK1NNSUxKQU5JxIYgSk9WQU5BCitTTUlMSkFOScSGIEpPVkFOCitTTUlMSkFOScSGIEpPVk8KK1NNSUxKQU5JxIYgTEpJTEpBTkEKK1NNSUxKQU5JxIYgTEpJTEpBTkEKK1NNSUxKQU5JxIYgTUFSSUpBCitTTUlMSkFOScSGIE1JTEFOCitTTUlMSkFOScSGIE1JTEFOCitTTUlMSkFOScSGIE1JTEVOS08KK1NNSUxKQU5JxIYgTUlMS0EKK1NNSUxKQU5JxIYgTUlMT1JBRAorU01JTEpBTknEhiBNSUxVVElOCitTTUlMSkFOScSGIE1JT0RSQUcKK1NNSUxKQU5JxIYgTUxBREVOCitTTUlMSkFOScSGIE5FVkVOS0EKK1NNSUxKQU5JxIYgTkVWRU5LQQorU01JTEpBTknEhiBPTElWRVJBCitTTUlMSkFOScSGIFBFVEFSCitTTUlMSkFOScSGIFBSRURSQUcKK1NNSUxKQU5JxIYgUkFEQQorU01JTEpBTknEhiBSQURFCitTTUlMSkFOScSGIFNBVkEKK1NNSUxKQU5JxIYgU09GSUpBCitTTUlMSkFOScSGIFNPRklKQQorU01JTEpBTknEhiBTVEFOQQorU01JTEpBTknEhiBTVEVWTworU01JTEpBTknEhiBUUklWTworU01JTEpBTknEhiBWRVNFTEtPCitTTUlMSkFOScSGIFZJRE9TQVYKK1NNSUxKQU5JxIYgVklOS08KK1NNSUxKQU5JxIYgVkxBRElNSVIKK1NNSUxKQU5JxIYgVkxBRElNSVIKK1NNSUxKQU5JxIYgWkxBVEtPCitTTUlMSkFOScSGIFpPUktBCitTTUlMSkFOT1YgTUlMQU4KK1NNSUxKQU5PViBSQURPVkFOCitTTUlMSkFOU0tJIE1JTEFOCitTTUlMSknEhiDFvUlWS08KK1NNSUxKS09WScSGIFJBRE9NSVIKK1NNSUxKS09WScSGIFNUQU5JTUlSCitTTUlSTk9WIEpVRElUQQorU01JUk5PViBKVURJVAorU01JUk5PViBSQVNUSVNMQVYKK1NNSVJOT1YgVkxBRElNSVIKK1NNT0sgTklLT0xBCitTTU9MxIxJxIYgUlXFvUEKK1NNT0xFTklDS0kgTUVMSVRBCitTTU9MRU5TS0kgS0FSTE8KK1NNT0xFTlNLSSBST1pBTElKQQorU01PTEpBTklLT1YgTUlIQUpMTyBESVBMIElORworU01PTE9WScSGIERSQUdPTEpVQgorU01PTE9WScSGIE1JSEFKTE8KK1NNT0xPVknEhiBSQURNSUxBCitTTU9MT1ZJxIYgUkFUS08KK1NNT0xPVknEhiBTQVZBCitTTVJFS0EgRFJBR0lDQQorU01VxJBBIEdSQURJTUlSCitTTVXEkEEgSk9WQU4KK1NNVcSQQSBNSUxFTktPCitTTVXEkEEgTklLT0xBCitTTVXEkEEgU0FWQQorU01VSyDFvUlWQU5BCitTTVVLIEJPUklWT0oKK1NNVVRFSyBKT1NJUAorU01VVE5JIElWQU4KK1NOSklEQSBBTkEKK1NOSklEQSBTQcWgQQorU09CxIxBSyBGUkFOSkEKK1NPQk/EjEFOIE1JxaBBCitTT0JPxIZBTiBJVkFOCitTT0NFSyBJTVJFCitTT0NFSyBKT1NJUAorU09DRUsgTUlSSkFOQQorU09GSUxKIEFMRUtTQU5EUkEKK1NPRklMSiBEUkFHSUNBCitTT0ZJTEogSk9WQU5LQQorU09GSUxKIFJBTktPCitTT0ZJTEogU0xBVklDQQorU09GSU5LScSGIEJSQU5LQQorU09GUkFExb1JSkEgTVVIQU1FRAorU09GUkFOSU4gQk9SSVZPSgorU09GUkFOSU4gS1VaTUFOCitTT0ZSQU5JTiBNSUxJVk9KCitTT0ZSRU5JxIYgVkVSSUNBCitTT0ZST05JSkVWScSGIExKVUJJQ0EKK1NPRlRJxIYgTUFSSUpBCitTT0dJxIYgU0FWQQorU09HScSGIFZMQURJU0xBVgorU09KRVZJxIYgTUxBREVOCitTT0pJxIYgUkFET0pLQQorU09LRUxFIEJSQU5JU0xBVgorU09LScSGIMW9SVZLTworU09LScSGIMSQVVLEkElDQQorU09LScSGIElMSUpBCitTT0tJxIYgTElESUpBCitTT0tJxIYgWk9SS0EKK1NPS05JxIYgVE9NSVNMQVYKK1NPS09MQSBBTlRVTgorU09LT0xBIEZFUkVOQworU09LT0xBIEnFoFRWQU4KK1NPS09MQSBJxaBUVkFOCitTT0tPTEEgS0FUQVJJTkEKK1NPS09MQSBNQVJUQQorU09LT0xBSSBKT8W9RUYKK1NPS09MQUkgTEFKT8WgCitTT0tPTEnEhiDFvUVMSktPCitTT0tPTE9WIEFMRUtTQU5EQVIKK1NPS09MT1YgTEpVQk9NSVIKK1NPS09MT1YgTUlMQU4KK1NPS09MT1YgTkFES0EKK1NPS09MT1YgU0xBVktBCitTT0tPTE9WIFNURVZBTgorU09LT0xPViBaSU5BSURPCitTT0tPTE9WScSGIMSQT1LEkEUKK1NPS09MT1ZJxIYgQU5BCitTT0tPTE9WScSGIERVxaBLTworU09LT0xPVknEhiBLQVRBUklOQQorU09LT0xPVknEhiBNSUxFCitTT0tPTE9WScSGIE5BVEFMSUpBCitTT0tPTE9WScSGIFJVxb1JQ0EKK1NPS09MT1ZJxIYgU0xPQk9EQU4KK1NPS09MT1ZJxIYgU0xPQk9EQU4KK1NPS09MT1ZJxIYgVE9NSVNMQVYKK1NPS09MT1ZJxIYgWk9SSUNBCitTT0tPVknEhiBESU1JVFJJSkUKK1NPS09WScSGIERVxaBBTgorU09MQVIgTEpVQklDQQorU09MQVIgU1RKRVBBTgorU09MQVJFVknEhiBKT1ZBTktBCitTT0xBUkVWScSGIE1JTEFOS0EKK1NPTEFSScSGIFNPRklKQQorU09MQVJPViBCT1JJU0xBVgorU09MQVJPViBCT1JPCitTT0xBUk9WIE1JTEFOCitTT0xBUk9WIE1JTElDQQorU09MQVJPViBNSUxJQ0EKK1NPTEFST1YgTUlMT8WgCitTT0xBUk9WIE1JTE9WQU4KK1NPTEFST1YgTklLT0xBCitTT0xBUk9WIFJBRElWT0oKK1NPTERBVCBCT8WgS08KK1NPTERBVCBCUkFOS0EKK1NPTERBVCBEUkFHTworU09MREFUIE1JTE/FoAorU09MREFUIE1JVEFSCitTT0xEQVQgUEVUQVIKK1NPTERBVCBWRVNOQQorU09MREFUT1ZJxIYgxJBPUsSQRQorU09MREFUT1ZJxIYgxJBPUsSQRQorU09MREFUT1ZJxIYgR09SQU4KK1NPTERBVE9WScSGIEpPVkFOCitTT0xEQVRPVknEhiBNSUxBCitTT0xEQVRPVknEhiBTQVZBIE5PVklOQVIKK1NPTERBVE9WScSGIFNUQU5PSkUKK1NPTERBVE9WScSGIFZFU05BCitTT0xEQVRPVknEhiBWT0pPCitTT0xETyBBTEVLU0FOREFSCitTT0xETyBJVkFOCitTT0xETyBOT1ZJQ0EKK1NPTERPIFZMQURJTUlSCitTT0xFxaBBIE1JxaBPCitTT0xPTVVOIEJSQU5LTworU09MT01VTiBEUkFHTworU09MT01VTiBJTElKQQorU09MT01VTiBNSUxFCitTT0xPTVVOIFZFU0EKK1NPTE9OSkEgU1RFVkFOCitTT01CT1JBQyBBTEVLU0FOREFSCitTT01CT1JBQyBKT1ZBTgorU09NQk9SQUMgTUFSSUpBCitTT01CT1JBQyBTUkXEhktPCitTT01CT1JBQyBURVJFWkEKK1NPTUJPUkFDIFRPRE9SCitTT01CT1JTS0kgTEFaQVIKK1NPTUJPUlNLSSBNSUxJQ0EKK1NPTUVSIElNUkUKK1NPTUVSIEpFTEVOQQorU09NRVIgVElCT1IKK1NPUEtBIEFOSUNBCitTT1BLQSBKQU5LTworU09QS0EgTEpVQk9NSVIKK1NPUEtBIExKVUJPTUlSCitTT1BLQSBNQVJJSkEKK1NPUEtBIE1JUk9TTEFWCitTT1LFoEFLIE1JTEFOCitTT1LFoEFLIFZBTEVOVElOCitTT1JBREkgQU5UVU4KK1NPUkFESSBJVkFOCitTT1JBREkgU1RKRVBBTgorU09SQUpJxIYgTUlMQU4KK1NPUkFKScSGIE1JTElWT0oKK1NPUkFLIERFTElWT0pFCitTT1JHIEFOR0VMSU5BCitTT1JHIEpFTEVOQQorU09SRyBOSUtPTEEKK1NPUkdFUiBNSVJBCitTT1JPIE1JTEFOCitTT1JPIE1JT0RSQUcKK1NPUk8gTUlSSkFOQQorU09STyBOSUtPTEEKK1NPUk8gU0lNTworU09URVIgSkFOT8WgCitTT1RJUk9WScSGIFNMQVZJQ0EKK1NPVE9OSUNBIFJBSktPCitTT1ZBIFBFVEFSCitTT1ZBIFJVREkKK1NPVknFoCDEkE9SxJBFCitTT1ZJxaAgTUnFoEEKK1NPVknFoCBPTEdBCitTT1ZJxaAgUEFWTEUKK1NPVklMSiDEkE9SxJBFCitTT1ZJTEogxJBVUk8KK1NPVklMSiBBTsSQRUxLTworU09WSUxKIEFOS0EKK1NPVklMSiBCT8W9TworU09WSUxKIEJPR0RBTgorU09WSUxKIERVxaBBTgorU09WSUxKIElMSUpBCitTT1ZJTEogSUxJSkEKK1NPVklMSiBJTElKQQorU09WSUxKIElWSUNBCitTT1ZJTEogSk9WQU4gRFIgTEVLQVIKK1NPVklMSiBMSlVCSUNBCitTT1ZJTEogTUlMQU4gTVIKK1NPVklMSiBNSUxBTgorU09WSUxKIFBFUktBCitTT1ZJTEogUEVUQVIKK1NPVklMSiBQRVRBUgorU09WSUxKIFZMQURPCitTUEFIScSGIEtFTUFMCitTUEFJxIYgxb1FTEpLTworU1BBScSGIE1JTEFOCitTUEFJxIYgTUlMQU4KK1NQQUpJxIYgQk/FvUEKK1NQQUpJxIYgRElLTworU1BBSknEhiBKT1ZBTgorU1BBSknEhiBKVUxJSkFOQQorU1BBSknEhiBNSUxPSkUKK1NQQUpJxIYgTUlSSkFOQQorU1BBSknEhiBTT0ZJSkEKK1NQQUpJxIYgVk9KSVNMQVYKK1NQQUpJxIYgWk9SQU4KK1NQQUpJxIYgWk9SQU4KK1NQQUxFVknEhiBNSU9NSVIKK1NQQUxFVknEhiBWRVJBCitTUEFSSU9TSSBBTsSQRUxLQQorU1BBU0VOT1NLSSBESU1JVFJJSkUKK1NQQVNFTk9WIE1JTEUKK1NQQVNFTk9WIFNQQVNLTworU1BBU0VOT1YgU1RBTkEKK1NQQVNFTk9WScSGIMW9SVZLTworU1BBU0VOT1ZJxIYgTEpVQklDQQorU1BBU0VOT1ZTS0kgUk9NQU4KK1NQQVNFTk9WU0tJIFZBU0EKK1NQQVNJxIYgxb1JVk9NSVIKK1NQQVNJxIYgxJBPUsSQRQorU1BBU0nEhiBBTEVLU0FOREFSCitTUEFTScSGIEJPxb1JREFSCitTUEFTScSGIEJSQU5JU0xBVgorU1BBU0nEhiBCUkFOSVNMQVYKK1NQQVNJxIYgRFJBR0nFoEEKK1NQQVNJxIYgR09SREFOQQorU1BBU0nEhiBHT1JEQU5BCitTUEFTScSGIEpFTElTQVZFVEEKK1NQQVNJxIYgSk9WQU4KK1NQQVNJxIYgSlVHT1NMQVYKK1NQQVNJxIYgTEpJTEpBTkEKK1NQQVNJxIYgTEpVQklDQQorU1BBU0nEhiBNSUxBTgorU1BBU0nEhiBNSUxFVkEKK1NQQVNJxIYgTUlMT8WgCitTUEFTScSGIE1JTFVUSU4KK1NQQVNJxIYgTUlSSkFOQQorU1BBU0nEhiBNSVJLTworU1BBU0nEhiBPTElWRVJBCitTUEFTScSGIFBFVEFSCitTUEFTScSGIFBSRURSQUcKK1NQQVNJxIYgU1RBTknFoEEKK1NQQVNJxIYgU1RBTktPCitTUEFTScSGIFNUT0pBTgorU1BBU0nEhiBTVkVUSVNMQVYKK1NQQVNJxIYgVE9NSVNMQVYgRElQTCBJTkcKK1NQQVNJxIYgVE9NSVNMQVYKK1NQQVNJxIYgVFJBSkFOS0EKK1NQQVNJxIYgVkVMScSMS08KK1NQQVNJxIYgVlVKSUNBCitTUEFTT0pFViBMSlVCSUNBCitTUEFTT0pFViBTVE9KQU4KK1NQQVNPSkVWScSGIMW9SVZPVEEKK1NQQVNPSkVWScSGIMSQT1LEkEUKK1NQQVNPSkVWScSGIMSQVVJBCitTUEFTT0pFVknEhiBCT1JJxaBBIE1SCitTUEFTT0pFVknEhiBCT1JJU0xBVgorU1BBU09KRVZJxIYgQ1ZFVEtPCitTUEFTT0pFVknEhiBERVNJTUlSCitTUEFTT0pFVknEhiBET0JSSUxBCitTUEFTT0pFVknEhiBET0JST1NBVgorU1BBU09KRVZJxIYgRFJBR0FOCitTUEFTT0pFVknEhiBEUkFHScWgQQorU1BBU09KRVZJxIYgRFJBR09MSlVCCitTUEFTT0pFVknEhiBEUkFHT01JUgorU1BBU09KRVZJxIYgRFXFoEFOCitTUEFTT0pFVknEhiBFTElaQUJFVEEKK1NQQVNPSkVWScSGIEdPU1BBVkEKK1NQQVNPSkVWScSGIEdPU1RJTUlSCitTUEFTT0pFVknEhiBKT1ZBTgorU1BBU09KRVZJxIYgSlVMS0EKK1NQQVNPSkVWScSGIEtBVElDQQorU1BBU09KRVZJxIYgS1JTVEEKK1NQQVNPSkVWScSGIExBWkFSCitTUEFTT0pFVknEhiBNScSGTworU1BBU09KRVZJxIYgTUnEhk8KK1NQQVNPSkVWScSGIE1JSEFKTE8KK1NQQVNPSkVWScSGIE1JTE9SQUQKK1NQQVNPSkVWScSGIE1JT0RSQUcKK1NQQVNPSkVWScSGIE1JT0RSQUcKK1NQQVNPSkVWScSGIE1PTcSMSUxPCitTUEFTT0pFVknEhiBORUJPSsWgQQorU1BBU09KRVZJxIYgTk9WQUsKK1NQQVNPSkVWScSGIFBBVkxFCitTUEFTT0pFVknEhiBQUkVEUkFHCitTUEFTT0pFVknEhiBSQUNPCitTUEFTT0pFVknEhiBSQURJU0FWCitTUEFTT0pFVknEhiBSQURPSkxFCitTUEFTT0pFVknEhiBSQU5LTyBESVBMIElORworU1BBU09KRVZJxIYgUk9ET0xKVUIKK1NQQVNPSkVWScSGIFJVxb1JQ0EKK1NQQVNPSkVWScSGIFNMQVZLQQorU1BBU09KRVZJxIYgU0xBVktPCitTUEFTT0pFVknEhiBTTEFWTworU1BBU09KRVZJxIYgU0xPQk9EQU4KK1NQQVNPSkVWScSGIFNPTkpBCitTUEFTT0pFVknEhiBTVEFOSVNMQVZBCitTUEFTT0pFVknEhiBTVEVWQU4KK1NQQVNPSkVWScSGIFNVWkFOQQorU1BBU09KRVZJxIYgVklUT01JUiBEUgorU1BBU09KRVZJxIYgVkxBRElNSVIKK1NQQVNPSkVWScSGIFpPUkFOCitTUEFTT0xJIEZFUkFUCitTUEFTT1ZBIExKVUJJQ0EKK1NQRVJBTlNLSSBMSlVETUlMQSBNUgorU1BFUk5KQUsgxJBPUsSQRQorU1BFUk5KQUsgQk9HREFOCitTUEVSTkpBSyBMSlVCSU5LQQorU1BFUk5KQUsgTUlMRU5LTyBESVBMIElORworU1BFVkFLIERBTklFTEEKK1NQRVZBSyBKVVJBSgorU1BFVkFLIFpPUk9TTEFWCitTUEnEjEFOT1ZJxIYgRVZJQ0EKK1NQScSMQU5PVknEhiBNQUpBCitTUEnEjEFOT1ZJxIYgWkFHT1JLQQorU1BJTEtVQ0nEhiBCT1JJVk9KRQorU1BJUknEhiBBTEVLU0FOREFSCitTUElSSURPTk9WIEFOQVNUQVMKK1NQSVJJRE9OT1ZJxIYgR1JBRElNSVIKK1NQSVJJRE9OT1ZJxIYgTUlMRU5LTworU1BJUklET05PVknEhiBTSUxWSUpBCitTUElST1NLSSBBTEVLU0FOREFSCitTUElST1ZTS0kgQ0FORQorU1BPSkEgxb1FTEpLTworU1BSRU1JxIYgRFJBR0FOCitTUFJFTUnEhiBQRVRBUgorU1BSRU1JxIYgU1JFVEVOCitTUFJFTU8gxJBVUk8KK1NQUkVNTyBNSU9EUkFHCitTUFJFTU8gTUlSS08KK1NQUkVNTyBNSVJPU0xBVgorU1BSRU1PIFJBRE9WQU4KK1NQUkVNTyBTTEFWS08KK1NQUkVNTyBWT0pJU0xBVgorU1BVU0VOSUsgTEFKT8WgCitTUsSQQU5PViDFvUFSS08KK1NSxJBBTk9WIMW9SVZLTworU1LEkEFOT1YgS09OU1RBTlRJTgorU1LEkEFOT1YgTUlIQUpMTworU1LEkEFOT1YgTUlMSVZPSgorU1LEkEFOT1YgTUlMT8WgIERJUEwgSU5HCitTUsSQQU5PViBNSUxPxaAKK1NSxJBBTk9WIE1JUk9TTEFWCitTUsSQQU5PViBOQURBCitTUsSQQU5PViBOQURBCitTUsSQQU5PViBTTEFWS08KK1NSxJBBTk9WIFNMT0JPREFOS0EKK1NSxJBBTk9WIFNMT0JPREFOS0EKK1NSxJBBTk9WIFNMT0JPREFOCitTUsSQQU5PViBWRVJBCitTUsSQRU5PVknEhiBNSUxBTgorU1LEkEVOT1ZJxIYgVVJPxaAKK1NSxJBFVknEhiBCT0pBTgorU1JCSU4gQU5LQQorU1JCSU4gQk9HREFOCitTUkJJTiBKT1ZBTiBEUgorU1JCSU4gS09TVEEKK1NSQklOIE1JUk9TTEFWCitTUkJJTk9WU0tJIEJPUklTCitTUkJJTk9WU0tJIERSQUdBTkEKK1NSQklOT1ZTS0kgRFJBR0FOQQorU1JCSU5PVlNLSSBNQcWgQQorU1JCSU5PVlNLSSBQQU5UQQorU1JCSU5PVlNLSSBQRVRBUgorU1JCTEpBTiBMQVpBUgorU1JCTEpBTklOIERSQUdBTgorU1JCTEpBTklOIFBSRURSQUcKK1NSQk9WQU4gSk9OCitTUkJVTE9WScSGIEJPxb1JREFSCitTUkJVTE9WScSGIERSQUdPTEpVQgorU1JCVUxPVknEhiBNSVJPU0xBVgorU1JEQU5PViDFvUlWQU4KK1NSREFOT1Ygxb1JVk9KSU4KK1NSREFOT1YgxJBPUsSQRQorU1JEQU5PViBCT8W9SURBUgorU1JEQU5PViBKRUxLQQorU1JEQU5PViBKT1ZBTgorU1JEQU5PViBMQVpBUgorU1JEQU5PViBMQVpBUgorU1JEQU5PViBMSklMSkFOQQorU1JEQU5PViBNScWgQQorU1JEQU5PViBNSUxJQ0EKK1NSREFOT1YgTUlMT8WgCitTUkRBTk9WIE1JTE9TQVZBCitTUkRBTk9WIFBFVEFSCitTUkRBTk9WIFNJTUEKK1NSREFOT1YgU0xBVktBCitTUkRBTk9WIFNMT0JPREFOCitTUkRBTk9WIFNMT0JPREFOCitTUkRBTk9WIFRPRE9SCitTUkRBTk9WScSGIEJSQU5JU0xBVgorU1JEQU5PVknEhiBERUpBTgorU1JEQU5PVknEhiBEUkFHT0pFCitTUkRBTk9WScSGIEZJTElQCitTUkRBTk9WScSGIExFUE9TQVZBCitTUkRBTk9WScSGIE9aUkVOIERJUEwgSU5HCitTUkRBTk9WScSGIFJPU0FOREEKK1NSREFOT1ZJxIYgU0FOSkEKK1NSREnEhiDEjEVET01JUgorU1JEScSGIMW9SVZLTworU1JEScSGIMW9SVZLTworU1JEScSGIMW9SVZLTworU1JEScSGIMSQT1LEkEUgTVIKK1NSREnEhiDEkFVSTworU1JEScSGIEFOxJBBCitTUkRJxIYgQU5BCitTUkRJxIYgQk/FoEtPCitTUkRJxIYgQk9HREFOCitTUkRJxIYgQk9TQQorU1JEScSGIEJSQU5JU0xBVgorU1JEScSGIERBTkUKK1NSREnEhiBESUpBTkEKK1NSREnEhiBEVcWgQU4KK1NSREnEhiBFTUVSSUtBCitTUkRJxIYgRU1FUklLQQorU1JEScSGIEdPUkFOCitTUkRJxIYgSVZBTgorU1JEScSGIEpFTEVOQQorU1JEScSGIExKVUJJQ0EKK1NSREnEhiBNSUxBTgorU1JEScSGIE1JTEFOCitTUkRJxIYgTUlMSUNBCitTUkRJxIYgTUlSSkFOQQorU1JEScSGIE1JUktPCitTUkRJxIYgTUlSS08KK1NSREnEhiBOQURBCitTUkRJxIYgTkFEQQorU1JEScSGIE5JS09MQQorU1JEScSGIE5JS09MQQorU1JEScSGIE5JS09MQQorU1JEScSGIFBFVEFSCitTUkRJxIYgUkFERQorU1JEScSGIFJBREUKK1NSREnEhiBTSU1BCitTUkRJxIYgU0xPQk9EQU4KK1NSREnEhiBTVkVUT1pBUgorU1JEScSGIFZBU08KK1NSREnEhiBWTEFESU1JUgorU1JEScSGIFZPSkEKK1NSREnEhiBaT1JBCitTUkXEhktPViDFvUlWS08KK1NSRcSGS09WIEJMQUdJQ0EKK1NSRcSGS09WIEJSQU5LTworU1JFxIZLT1YgRFJBR0FOCitTUkXEhktPViBEUkFHSUNBCitTUkXEhktPViBEVcWgQU4KK1NSRcSGS09WIERVxaBBTgorU1JFxIZLT1YgRVLFvUVCRVQKK1NSRcSGS09WIEpPVkFOCitTUkXEhktPViBLQVRJQ0EKK1NSRcSGS09WIE1JTEVOQQorU1JFxIZLT1YgTUlMRU5BCitTUkXEhktPViBNSUxJVk9KCitTUkXEhktPViBNSVJPU0xBVgorU1JFxIZLT1YgUkFESVZPSgorU1JFxIZLT1YgUkFET0pLQQorU1JFxIZLT1YgU1RBTktPCitTUkXEhktPViBTVEVWQU4KK1NSRcSGS09WIFRFT0RPUkEKK1NSRcSGS09WIFZBU0EKK1NSRcSGS09WIFpEUkFWS08KK1NSRcSGS09WScSGIEFMRUtTQU5EQVIgRFIKK1NSRcSGS09WScSGIERSQUdJxaBBCitTUkXEhktPVknEhiBNQVJJSkEKK1NSRcSGS09WScSGIE1JTFVUSU4KK1NSRcSGS09WScSGIFJBREnFoEEKK1NSRcSGS09WScSGIFNUT0pBTkEKK1NSRcSGTyBEQU5JQ0EKK1NSRcSGTyBNScSGTworU1JFQk9UTkpBSyBTVEFOS08KK1NSRUJSTyBJTElKQSBEUgorU1JFREFOT1ZJxIYgTUlMT1JBRCBESVBMIElORworU1JFREFOT1ZJxIYgTkVERUxKS08KK1NSRURPSkVWScSGIERBUklOS0EKK1NSRURPSkVWScSGIERPQlJPCitTUkVET0pFVknEhiBKVUxLSUNBCitTUkVET0pFVknEhiBMQVpBUgorU1JFRE9KRVZJxIYgTUlMSVNBVgorU1JFRE9KRVZJxIYgTUlSS08KK1NSRURPSkVWScSGIE5FQk9KxaBBCitTUkVET0pFVknEhiBWRUxJTUlSCitTUkVET0pFVknEhiBWRUxJTUlSCitTUkVET1ZJxIYgUkFKS08KK1NSRUpJxIYgQk9SS0EKK1NSRU3EjEVWIMSQT1LEkEUKK1NSRU3EjEVWIEFMRUtTQU5EQVIgRFIgTEVLQVIKK1NSRU3EjEVWIExBWkFSCitTUkVNxIxFViBNQVJJSkEKK1NSRU3EjEVWIE5FU1RPUgorU1JFTcSMRVYgU0xPQk9EQU4KK1NSRU3EjEVWIFNPRklKQQorU1JFTcSMRVZJxIYgQk9SSVNMQVYKK1NSRU3EjEVWScSGIEpPVkFOCitTUkVNxIxFVknEhiBKT1ZBTgorU1JFTcSMRVZJxIYgS0FUQQorU1JFTcSMRVZJxIYgS0FUSUNBCitTUkVNxIxFVknEhiBMSlVCScWgQQorU1JFTcSMRVZJxIYgUkFESVZPSgorU1JFTcSMRVZJxIYgUkFTVEtPCitTUkVNxIxFVknEhiBTTEFWTkEKK1NSRU3EjEVWScSGIFNUQU5JU0xBVgorU1JFTcSMRVZJxIYgVkVMSktPCitTUkVNQcSMS0kgxJBPUsSQRQorU1JFTUHEjEtJIERSQUdPTEpVQgorU1JFTUHEjEtJIERVxaBBTktBCitTUkVNQcSMS0ktR0FWUklMT1ZJxIYgTUFKQQorU1JFTUHEjEtJIElWQU5LQQorU1JFTUHEjEtJIEpPVkFOS0EKK1NSRU1BxIxLSSBNSUxPxaAKK1NSRU1BxIxLSS1NSVJLT1ZJxIYgTUlSSkFOQQorU1JFTUHEjEtJIFBFVEFSCitTUkVNQcSMS0kgU0lNQQorU1JFTUHEjEtJIFNPS0EKK1NSRU1BxIxLSSBTUEFTT0pFCitTUkVNQcSMS0kgU1RBTk9KRQorU1JFTUHEjEtJIFZMQURBCitTUkVNQcSMS0kgWk9SSUNBCitTUkVNQUMgxJBPUsSQRQorU1JFTUFDIEFMRUtTQU5EQVIKK1NSRU1BQyBEUkFHT0xKVUIKK1NSRU1BQyBJU0FLCitTUkVNQUMgSkFOS08KK1NSRU1BQyBKT1ZBTgorU1JFTUFDIExKVUJJQ0EKK1NSRU1BQyBMSlVCSUNBCitTUkVNQUMgTUlMRU5BCitTUkVNQUMgTUlMRU5LTworU1JFTUFDIE1JTElWT0oKK1NSRU1BQyBNSVJBCitTUkVNQUMgTklLT0xBCitTUkVNQUMgUEFVTElOQQorU1JFTUFDIFBBVkxFCitTUkVNQUMgUEVSU0lEQQorU1JFTUFDIFJBRE9KS08KK1NSRU1BQyBTTE9CT0RBTgorU1JFTUFDIFNSxJBBTgorU1JFTUFDIFNUT0pBTktBCitTUkVNQUMgU1ZFVElTTEFWCitTUkVNQUMgU1ZFVElTTEFWCitTUkVNQUMgVEFOQVNJSkUKK1NSRU1BQyBWTEFESU1JUgorU1JFTUFDIFZMQUpLTworU1JFTUFDIFpPUkFOQQorU1JFTUFDIFpPUkFOCitTUkVURU5PVknEhiDEkFVSxJBJTktBCitTUkVURU5PVknEhiBCT1JJVk9KCitTUkVURU5PVknEhi1NQU5PSkxPVknEhiDEkFVSxJBJTktBCitTUkVURU5PVknEhiBORVZFTktBCitTUkVURU5PVknEhiBTVE9KQURJTgorU1JFVEnEhiBNSUxFTktPCitTUkVUScSGIE1JUkpBTkEKK1NSRVRJxIYgUkFUT01JUgorU1JFVEtPVknEhiBWRVJJQ0EKK1NSTkRPVknEhiBaT1JLQQorU1JORUMgxb1FTEpLTworU1JOScSGIEJPR0RBTgorU1JOScSGIEVWSUNBCitTUk5LQSBKQU5LTworU1JOS0EgSk9WQU4KK1NUQcWgVUsgTUlIQUpMTworU1RBSEFOScSGIEFOS0EKK1NUQUlOIFNURVZBTgorU1RBSsSMScSGIElWQU4KK1NUQUrEjEnEhiBQRVRBUgorU1RBSsWgScSGIMSQVVJBCitTVEFKScSGIMSQT1LEkEUKK1NUQUpJxIYgQUxFS1NBTkRSQQorU1RBSknEhiBCT8W9SURBUgorU1RBSknEhiBCT1JJU0xBVgorU1RBSknEhiBCT1JJU0xBVgorU1RBSknEhiBCT1JJVk9KCitTVEFKScSGIEJSQU5JTUlSCitTVEFKScSGIEJSQU5JU0xBVgorU1RBSknEhiBEUkFHT0xKVUIKK1NUQUpJxIYgRFXFoEFOCitTVEFKScSGIERVxaBJQ0EKK1NUQUpJxIYgRkVNQQorU1RBSknEhiBHTElHT1JJSkUKK1NUQUpJxIYgR0xJR09SSUpFCitTVEFKScSGIEdSSUdPUklKRSBESVBMIElORworU1RBSknEhiBKVVNUSU5BCitTVEFKScSGIExFUE9TQVZBCitTVEFKScSGIExKVUJPTUlSCitTVEFKScSGIE1BUkEKK1NUQUpJxIYgTUFSSUpBCitTVEFKScSGIE1JTEFOIERJUEwgSU5HCitTVEFKScSGIE1JTEFOCitTVEFKScSGIE1JTEVTQQorU1RBSknEhiBNSUxFVkEKK1NUQUpJxIYgTUlMS0EKK1NUQUpJxIYgTUlST1NMQVYKK1NUQUpJxIYgTkVTVE9SCitTVEFKScSGIFBBVkxFCitTVEFKScSGIFBFVEFSCitTVEFKScSGLVBPUE9WIEJPUklTTEFWQSBEUgorU1RBSknEhiBSQURJVk9KCitTVEFKScSGIFJBRE9TTEFWCitTVEFKScSGIFNJS0EKK1NUQUpJxIYgU1JFVEEKK1NUQUpJxIYgU1RBTklTTEFWCitTVEFKScSGIFNUT0pBRElOCitTVEFKScSGIFRPRE9SCitTVEFKScSGIFZFTElNSVIKK1NUQUpJxIYgVlVLT1NBVgorU1RBSknEhiBaTEFUQQorU1RBSktPVknEhiBCUkFUSVNMQVYKK1NUQUpLT1ZJxIYgRFJBR09MSlVCCitTVEFLScSGIMW9SVZBTgorU1RBS0nEhiDFvUlWS0EKK1NUQUtJxIYgxJBVUk8KK1NUQUtJxIYgQUxFS1NBTkRBUgorU1RBS0nEhiBCT8WgS08KK1NUQUtJxIYgQk/FvUlEQVIKK1NUQUtJxIYgQk9SSVZPSkUKK1NUQUtJxIYgQlJBTklTTEFWCitTVEFLScSGIERFSkFOCitTVEFLScSGIERVxaBBTiBESVBMIElORworU1RBS0nEhiBKRUxFTkEKK1NUQUtJxIYgSk9WQU4gU1VESUpBCitTVEFLScSGIE1FTElOREEKK1NUQUtJxIYgTUlMQU4KK1NUQUtJxIYgTUlMQU4KK1NUQUtJxIYgTUlSS08KK1NUQUtJxIYgTU9NSVIKK1NUQUtJxIYgTkVCT0rFoEEKK1NUQUtJxIYgTkVERUxKS08KK1NUQUtJxIYgTklLT0xBCitTVEFLScSGIFBBVkxFCitTVEFLScSGIFNQT01FTktBCitTVEFLScSGIFNUT0pBTgorU1RBS0nEhiBWRVJBCitTVEFLScSGIFpBSEFSSUpFCitTVEFLScSGIFpPUkFOCitTVEFLT1JJxIYgWkRSQVZLTworU1RBTUFUT1ZJxIYgTUlMRU5LTyBEUgorU1RBTUFUT1ZJxIYgTUlMT1JBRAorU1RBTUVOScSGIERBTU5KQU4KK1NUQU1FTknEhiBNQVJLTworU1RBTUVOScSGIFJBRE9TQVYKK1NUQU1FTknEhiBUT01JU0xBVgorU1RBTUVOS09WScSGIMW9SVZPSklOCitTVEFNRU5LT1ZJxIYgxb1JVk9KSU4KK1NUQU1FTktPVknEhiBBTEVLU0FOREFSCitTVEFNRU5LT1ZJxIYgQkxBR09KRQorU1RBTUVOS09WScSGIERSQUdBTgorU1RBTUVOS09WScSGIEdPUkRBTkEKK1NUQU1FTktPVknEhiBMSlVCT01JUiBEUgorU1RBTUVOS09WScSGIExKVUJPTUlSCitTVEFNRU5LT1ZJxIYgTUFSSkFOCitTVEFNRU5LT1ZJxIYgTUlMT1JBRAorU1RBTUVOS09WScSGIE1JUk9TTEFWQQorU1RBTUVOS09WScSGIE5PVklDQQorU1RBTUVOS09WScSGIFBFVFJPTklKRQorU1RBTUVOS09WScSGIFJBRE9NSVIgRElQTCBJTkcKK1NUQU1FTktPVknEhiBTSU5JxaBBCitTVEFNRU5LT1ZJxIYgU0xBVk9MSlVCCitTVEFNRU5LT1ZJxIYgU0xPQk9EQU4KK1NUQU1FTktPVknEhiBTUkVURU4gRFIKK1NUQU1FTktPVknEhiBTUkVURU4KK1NUQU1FTktPVknEhiBTVEFOSU1JUgorU1RBTUVOS09WScSGIFNUT0pBTgorU1RBTUVOS09WScSGIFNUT0pBTgorU1RBTUVOS09WScSGIFNUT0pBTgorU1RBTUVOS09WScSGIFZBU0lMSUpFCitTVEFNRU5LT1ZJxIYgVkVMSUJPUgorU1RBTUVOS09WScSGIFZFUkEKK1NUQU1FTktPVknEhiBWTEFESU1JUiBESVBMIElORworU1RBTUVOS09WScSGIFZMQURJTUlSCitTVEFNRU5LT1ZJxIYgVkxBU1RJTUlSCitTVEFNRU5LT1ZJxIYgVlVLQURJTgorU1RBTUVOS09WScSGIFpPUkFOCitTVEFNRU5LT1ZJxIYgWk9SQQorU1RBTUVOT1YgQlJBTktPCitTVEFNRU5PViBOSUtPTEEKK1NUQU1FTk9WIFNMQVZLQQorU1RBTUVOT1ZJxIYgS1JTVElWT0oKK1NUQU1FTk9WScSGIFJBSktPCitTVEFNRVZTS0kgVE9OxIxFCitTVEFNT1JBTiBLQVRJQ0EKK1NUQU1QRkVSIFJPWkFMSUpBCitTVEFOxIxFVEnEhiBEUkFHSUNBCitTVEFOxIxFVEnEhiBQQVZMRQorU1RBTsSMScSGIEFOxJBFTEtBCitTVEFOxIxJxIYgQU5EUklKQSBEUgorU1RBTsSMScSGIEJMQUdPSkUgTVIKK1NUQU7EjEnEhiBCT8W9QU5BCitTVEFOxIxJxIYgQk/FvUlEQVIKK1NUQU7EjEnEhiBEQU5JQ0EKK1NUQU7EjEnEhiBEUkFHT0xKVUIKK1NUQU7EjEnEhiBMQVpBUgorU1RBTsSMScSGIExKVUJPTUlSCitTVEFOxIxJxIYgTUFSSUpBCitTVEFOxIxJxIYgTUFSS08KK1NUQU7EjEnEhiBNScSGQQorU1RBTsSMScSGIE1JSEFKTE8KK1NUQU7EjEnEhiBNSUtBCitTVEFOxIxJxIYgTUlPRFJBRworU1RBTsSMScSGIE5JS09MQQorU1RBTsSMScSGIFBBVkxFCitTVEFOxIxJxIYgVEFOS09TQVZBCitTVEFOxIxJxIYgVElIT01JUgorU1RBTsSMScSGIFpPUkFOCitTVEFOxIxJSyBNQVJHSVRBCitTVEFOxIxVIE1BUklKQQorU1RBTsSMVUwgxb1JVkFOCitTVEFOxIxVTCBBTktBCitTVEFOxIxVTCBMSklMSkFOQQorU1RBTsSMVUwgTEpVQk9NSVIKK1NUQU7EjFVMIFJBRElTTEFWCitTVEFOxIxVTCBSQURPVkFOCitTVEFOxIxVTCBTQVZBCitTVEFOxIxVTE9WIERSQUdJQ0EKK1NUQU7EjFVMT1YgTUlMQU4KK1NUQU5BxIZFViDFvUlWQQorU1RBTkHEhkVWIE1JTEVOQQorU1RBTkHEhkVWIE1JTElWT0oKK1NUQU5BxIZFViBTUkVET0pFIERSCitTVEFOQVIgxJBVUkEKK1NUQU5BUiDEkFVSQQorU1RBTkFSIMSQVVJBCitTVEFOQVIgQU5LQQorU1RBTkFSIERFU0EKK1NUQU5BUiBEVcWgQU5LQQorU1RBTkFSIERVxaBBTgorU1RBTkFSLUdPR0nEhiBTVEVWQU4KK1NUQU5BUiBJTElKQQorU1RBTkFSIE1JTEUKK1NUQU5BUiBSQURFCitTVEFOQVIgUkFUS08KK1NUQU5BUkVWScSGIMW9RUxKS08KK1NUQU5BUkVWScSGIEJPxb1BCitTVEFOQVJFVknEhiBNQVJLTworU1RBTkFSRVZJxIYgTUlIQUpMTworU1RBTkFSRVZJxIYgTUlMQU4KK1NUQU5BUkVWScSGIE5FREVMSktBCitTVEFOQVJFVknEhiBTQVZBCitTVEFOQk9MSUpBIE1JUktPCitTVEFORUtPVknEhiBNSUxBTgorU1RBTkVLT1ZJxIYgU1RBTklTTEFWCitTVEFORUtPVknEhiBWT0pBCitTVEFOScSMS09WIMSMRURPTUlSCitTVEFOScSMS09WIEJPUkEKK1NUQU5JxIxLT1YgSk9WQU4KK1NUQU5JxIxLT1YgTEpJTEpBTkEKK1NUQU5JxIxLT1YgTUFSVEEKK1NUQU5JxaBJxIYgQk9HT0xKVUIKK1NUQU5JxaBJxIYgQk9SSVNMQVYKK1NUQU5JxaBJxIYgQlVESU5LQQorU1RBTknFoEnEhiBEQU1KQU4KK1NUQU5JxaBJxIYgRFJBR09MSlVCCitTVEFOScWgScSGIERSQUdPTEpVQgorU1RBTknFoEnEhiBEUkFHT01JUgorU1RBTknFoEnEhiBEVcWgQU4KK1NUQU5JxaBJxIYgRFXFoEFOCitTVEFOScWgScSGIEdPSktPCitTVEFOScWgScSGIEpFTEVOQQorU1RBTknFoEnEhiBKT1ZBTgorU1RBTknFoEnEhiBKT1ZBTgorU1RBTknFoEnEhiBLQVRJQ0EKK1NUQU5JxaBJxIYgTEVQT1NBVkEKK1NUQU5JxaBJxIYgTEpJTEpBTkEgRFIKK1NUQU5JxaBJxIYgTEpVQklDQQorU1RBTknFoEnEhiBNQVJLTworU1RBTknFoEnEhiBNQVJLTworU1RBTknFoEnEhiBNSUxBTgorU1RBTknFoEnEhiBNSUxBTgorU1RBTknFoEnEhiBNSUxJxIYgRFIgTEVLQVIKK1NUQU5JxaBJxIYgTUlMSVZPSgorU1RBTknFoEnEhiBNSUxPxaAKK1NUQU5JxaBJxIYgTUlPRFJBRworU1RBTknFoEnEhiBNSU9EUkFHCitTVEFOScWgScSGIE1MQURFTgorU1RBTknFoEnEhiBNT01JUgorU1RBTknFoEnEhiBORUJPSsWgQQorU1RBTknFoEnEhiBORURFTEpLQQorU1RBTknFoEnEhiBOSUtPTEEKK1NUQU5JxaBJxIYgTklLT0xBCitTVEFOScWgScSGIE9MR0lDQQorU1RBTknFoEnEhiBQQVZMRQorU1RBTknFoEnEhiBQQVZMRQorU1RBTknFoEnEhiBQRVRBUgorU1RBTknFoEnEhiBQUk9LQQorU1RBTknFoEnEhiBSQURBCitTVEFOScWgScSGIFJBRE9WQU4KK1NUQU5JxaBJxIYgUkFUS08KK1NUQU5JxaBJxIYgUkVMSkEKK1NUQU5JxaBJxIYgU0lNTworU1RBTknFoEnEhiBTTEFWS08gRElQTCBJTkcKK1NUQU5JxaBJxIYgU0xPQk9EQU4KK1NUQU5JxaBJxIYgU1RBTknFoEEKK1NUQU5JxaBJxIYgU1RBTklTTEFWCitTVEFOScWgScSGIFNURVZPCitTVEFOScWgScSGIFNUT0pBTsSMQQorU1RBTknFoEnEhiBTVkVUTEFOQQorU1RBTknFoEnEhiBTVkVUT1pBUiBEUgorU1RBTknFoEnEhiBTVkVUT1pBUgorU1RBTknFoEnEhiBUSUhPTUlSCitTVEFOScWgScSGIFRPRE9SCitTVEFOScWgScSGIFRPTUHFoAorU1RBTknFoEnEhiBWQVNJTEpLQQorU1RBTknFoEnEhiBWRUxKS08KK1NUQU5JxaBJxIYgVkxBREEKK1NUQU5JxaBJxIYgWk9SQU4KK1NUQU5JxaBJxIYgWk9SQU4KK1NUQU5JxaBJTiBCUkFOS08KK1NUQU5JxaBJTiBJU0EKK1NUQU5JxaBJTiBWT0pJTgorU1RBTknFoExKRVZJxIYgRFXFoEFOS0EKK1NUQU5JxIYgxb1JVkFESU4KK1NUQU5JxIYgxb1JVkFOCitTVEFOScSGIMSQVVJBCitTVEFOScSGIEFMRUtTQU5EQVIKK1NUQU5JxIYgQk/FoEtPCitTVEFOScSGIEJPR0RBTgorU1RBTknEhiBCUkFOS0EKK1NUQU5JxIYgQlJBTktPCitTVEFOScSGIEJSQU5LTworU1RBTknEhiBEQU5FCitTVEFOScSGIERBTklDQQorU1RBTknEhiBEQU5LQQorU1RBTknEhiBEUkFHQU4KK1NUQU5JxIYgRFJBR09TTEFWIERSCitTVEFOScSGIERSQUdPCitTVEFOScSGIERVxaBBTgorU1RBTknEhiBHT0pLTworU1RBTknEhiBJTElKQQorU1RBTknEhiBJTElKQQorU1RBTknEhiBJTElKQQorU1RBTknEhiBJTElKQQorU1RBTknEhiBJVkFOCitTVEFOScSGIEpBRFJBTktBCitTVEFOScSGIEpFTEVOQQorU1RBTknEhiBKT1ZBTiBESVBMIElORworU1RBTknEhiBKT1ZBTiBESVBMIElORworU1RBTknEhiBKVUxLQQorU1RBTknEhiBLUklTVElWT0pFCitTVEFOScSGIExJTktBCitTVEFOScSGIExKVUJPRFJBRworU1RBTknEhiBNQU5FCitTVEFOScSGIE1BUktPCitTVEFOScSGIE1JTEFOIERJUEwgUFJBVk5JSworU1RBTknEhiBNSUxBTktPCitTVEFOScSGIE1JTEFOS08KK1NUQU5JxIYgTUlMQU4KK1NUQU5JxIYgTUlMQU4KK1NUQU5JxIYgTUlMQU4KK1NUQU5JxIYgTUlMQU4KK1NUQU5JxIYgTUlMRQorU1RBTknEhiBNSUxJQ0EKK1NUQU5JxIYgTUlMSU5LTworU1RBTknEhiBNSUxJU0FWCitTVEFOScSGIE1JTE9KRQorU1RBTknEhiBNSUxPU0FWQQorU1RBTknEhiBNTEFERU4KK1NUQU5JxIYgTU9NxIxJTE8KK1NUQU5JxIYgT0xHQQorU1RBTknEhiBPU1RPSkEKK1NUQU5JxIYgUEVUQVIKK1NUQU5JxIYgUEVUQVIKK1NUQU5JxIYgUEVUQVIKK1NUQU5JxIYgUkFERQorU1RBTknEhiBSQURFCitTVEFOScSGIFJBREnFoEEKK1NUQU5JxIYgUkFET1ZBTiBESVBMIElORworU1RBTknEhiBSQUpLTworU1RBTknEhiBTQVZPCitTVEFOScSGIFNJTU8KK1NUQU5JxIYgU0lOScWgQQorU1RBTknEhiBTUEFTT0pFCitTVEFOScSGIFNSxJBBTgorU1RBTknEhiBTVEFNRU5BCitTVEFOScSGIFNURVZBTgorU1RBTknEhiBVUk/FoAorU1RBTknEhiBWRUxJQk9SCitTVEFOScSGIFZJS1RPUgorU1RBTknEhiBWSVRPTUlSCitTVEFOScSGIFZJVE9NSVIKK1NUQU5JxIYgVkxBRElNSVIKK1NUQU5JxIYgVk9KSVNMQVYKK1NUQU5JxIYgWk9SQU4KK1NUQU5JxIYgWk9SQU4KK1NUQU5Jxb1BTiBNSUxPUkFECitTVEFOSUsgT0xHQQorU1RBTklLScSGIE1JTEFOCitTVEFOSUtJxIYgTUlMRVZBCitTVEFOSU1JUk9WIEFMRUtTQU5EQVIKK1NUQU5JTUlST1YgQU5BCitTVEFOSU1JUk9WIEJPUklWT0oKK1NUQU5JTUlST1YgQlJBTktBCitTVEFOSU1JUk9WIERVxaBBTgorU1RBTklNSVJPViBHQVZSQQorU1RBTklNSVJPViBKRUxLQQorU1RBTklNSVJPViBLQVRJQ0EKK1NUQU5JTUlST1YgTEpJTEpBTkEKK1NUQU5JTUlST1YgTEpJTEpBTkEKK1NUQU5JTUlST1YgTEpVQklDQQorU1RBTklNSVJPViBORURFTEpLTworU1RBTklNSVJPViBSQURJVk9KCitTVEFOSU1JUk9WIFJBTktBCitTVEFOSU1JUk9WIFNMQVZLTworU1RBTklNSVJPViBaT1JJQ0EKK1NUQU5JTUlST1ZJxIYgxb1JVk9KSU4KK1NUQU5JTUlST1ZJxIYgREVTSU1JUgorU1RBTklNSVJPVknEhiBEUkFHQU4KK1NUQU5JTUlST1ZJxIYgRFJBR0FOCitTVEFOSU1JUk9WScSGIERSQUdPTUlSCitTVEFOSU1JUk9WScSGIEpBRFJBTktBCitTVEFOSU1JUk9WScSGIEpFTElDQQorU1RBTklNSVJPVknEhiBLUlNUTworU1RBTklNSVJPVknEhiBNT01BIERSCitTVEFOSU1JUk9WScSGIFBBVkxFCitTVEFOSU1JUk9WScSGIFJBRE9KS0EKK1NUQU5JTUlST1ZJxIYgU1RBTklNSVIKK1NUQU5JTUlST1ZJxIYgVEFUSkFOQQorU1RBTklNSVJPVknEhiBUUklGVU4KK1NUQU5JTUlST1ZJxIYgVkVST05JS0EKK1NUQU5JU0FWTEpFViDEkE9LQQorU1RBTklTQVZMSkVWIMSQT1LEkEUKK1NUQU5JU0FWTEpFViBBTEVLU0FORFJBCitTVEFOSVNBVkxKRVYgQU5BCitTVEFOSVNBVkxKRVYgRE9CUklWT0oKK1NUQU5JU0FWTEpFViBEVcWgQU4KK1NUQU5JU0FWTEpFViBMSlVCSUNBCitTVEFOSVNBVkxKRVYgTEpVQk9NSVIKK1NUQU5JU0FWTEpFViBNSUxBTgorU1RBTklTQVZMSkVWIE1JTElDQQorU1RBTklTQVZMSkVWIE1JTE9KS08KK1NUQU5JU0FWTEpFViBNSVJPU0xBVgorU1RBTklTQVZMSkVWScSGIMSQT1LEkEUgRElQTCBJTkcKK1NUQU5JU0FWTEpFVknEhiDEkE9SxJBFCitTVEFOSVNBVkxKRVZJxIYgQklMSkFOQQorU1RBTklTQVZMSkVWScSGIEJPxb1BCitTVEFOSVNBVkxKRVZJxIYgQ1ZFVEEKK1NUQU5JU0FWTEpFVknEhiBEQU5FCitTVEFOSVNBVkxKRVZJxIYgRElNSVRSSUpFCitTVEFOSVNBVkxKRVZJxIYgRFJBR09NSVIKK1NUQU5JU0FWTEpFVknEhiBEVcWgQU5LQQorU1RBTklTQVZMSkVWScSGIEVMSVpBQkVUQQorU1RBTklTQVZMSkVWScSGIEdJWkVMQQorU1RBTklTQVZMSkVWScSGIEdPUkRBTkEKK1NUQU5JU0FWTEpFVknEhiBJR05KQVRJSkUKK1NUQU5JU0FWTEpFVknEhiBLQVRJQ0EKK1NUQU5JU0FWTEpFVknEhiBMRVBPU0FWQQorU1RBTklTQVZMSkVWScSGIE1BUklKQQorU1RBTklTQVZMSkVWScSGIE1JTEFOCitTVEFOSVNBVkxKRVZJxIYgTUlMQU4KK1NUQU5JU0FWTEpFVknEhiBNSUxJVk9KRQorU1RBTklTQVZMSkVWScSGIE1JTE/FoAorU1RBTklTQVZMSkVWScSGIE1JT0RSQUcKK1NUQU5JU0FWTEpFVknEhiBNSU9EUkFHCitTVEFOSVNBVkxKRVZJxIYgTUlSS08KK1NUQU5JU0FWTEpFVknEhiBOQURBCitTVEFOSVNBVkxKRVZJxIYgUkFERQorU1RBTklTQVZMSkVWScSGIFJVxb1JQ0EKK1NUQU5JU0FWTEpFVknEhiBTQVZBIERJUEwgSU5HCitTVEFOSVNBVkxKRVZJxIYgU1RBVlJBIERJUEwgSU5HCitTVEFOSVNBVkxKRVZJxIYgU1RFVkFOCitTVEFOSVNBVkxKRVZJxIYgVkVMSVpBUgorU1RBTklTQVZMSkVWScSGIFZFTEpLTworU1RBTklTQVZMSkVWScSGIFpPUklDQQorU1RBTklWVUsgxb1BUktPCitTVEFOSVZVSyBERUpBTgorU1RBTklWVUsgTUlSS08KK1NUQU5JVlVLIE1MQURFTgorU1RBTklWVUsgTkFEQQorU1RBTklWVUsgTkVERUxKS08KK1NUQU5JVlVLIE5JS09MQQorU1RBTklWVUsgWkRSQVZLTworU1RBTklWVUtPVknEhiBEUkFHVVRJTiBNUgorU1RBTklWVUtPVknEhiBEUkFHVVRJTgorU1RBTklWVUtPVknEhiBMSklMSkFOQQorU1RBTklWVUtPVknEhiBNQVJJSkEKK1NUQU5JVlVLT1ZJxIYgTUlMSVZPSiBEUiBWRVRFUklORQorU1RBTklWVUtPVknEhiBVUk/FoAorU1RBTktJxIYgRFJBR0FOCitTVEFOS0nEhiBMQVpBUgorU1RBTktJxIYgTUlMT8WgCitTVEFOS0nEhiBTVEVWQU4KK1NUQU5LScSGIFZJTE9HT1JLQQorU1RBTktJSkVWScSGIERVxaBBTgorU1RBTktJTiDEkE9SxJBFCitTVEFOS0lOIEJSQU5LQQorU1RBTktJTiBKQVNNSU5BCitTVEFOS0lOIE1JTEUKK1NUQU5LSU4gTUlMSVZPSgorU1RBTktJTiBNSUxJVk9KCitTVEFOS0lOIFRPRE9SCitTVEFOS08gSU1SRQorU1RBTktPIElWQU4KK1NUQU5LTyBKT1NJUCBESVBMIElORworU1RBTktPIFNURVZBTgorU1RBTktPIFNURVZBTgorU1RBTktPIFNURVZBTgorU1RBTktPIFZFUklDQQorU1RBTktPViDFvUFSS08KK1NUQU5LT1Ygxb1JVktBCitTVEFOS09WIMW9SVZLTworU1RBTktPViDFvUlWS08KK1NUQU5LT1YgxJBPUsSQRQorU1RBTktPViBCT0pBTkEKK1NUQU5LT1YgREFSSU5LQQorU1RBTktPViBEQVJLTworU1RBTktPViBEVcWgQU4KK1NUQU5LT1YgRFXFoEFOCitTVEFOS09WIEXFvUVCRVQKK1NUQU5LT1YgSVZBTktBCitTVEFOS09WIElWQU4KK1NUQU5LT1YgSkVMRU5BCitTVEFOS09WIEtBVElDQQorU1RBTktPViBLT1ZJTkEKK1NUQU5LT1YgTEpVQklDQQorU1RBTktPViBNQVJJSkEKK1NUQU5LT1YgTUFSSU5LTworU1RBTktPViBNQVJLTworU1RBTktPViBNSUxBTktPCitTVEFOS09WIE1JTEFOS08KK1NUQU5LT1YgTUlMT8WgCitTVEFOS09WIE1JUkpBTkEKK1NUQU5LT1YgTUlST1NMQVYKK1NUQU5LT1YgTkVWRU5LQQorU1RBTktPViBOSUtPTEEKK1NUQU5LT1YgUEFKQSBEUgorU1RBTktPViBQQVZMRQorU1RBTktPViBQRVRBUgorU1RBTktPViBQRVRBUgorU1RBTktPViBSQURPVkFOCitTVEFOS09WIFJBU1RLTworU1RBTktPViBSVcW9SUNBCitTVEFOS09WIFNMT0JPREFOS0EKK1NUQU5LT1YgU09GSUpBCitTVEFOS09WIFNUQU5LQQorU1RBTktPViBTVEVWQU4KK1NUQU5LT1YgU1RFVkFOCitTVEFOS09WIFNUT0pBTgorU1RBTktPViBTVkVUSVNMQVYKK1NUQU5LT1YgU1ZFVE9aQVIKK1NUQU5LT1YgVkVMSktPCitTVEFOS09WIFZFTEpLTworU1RBTktPViBWTEFESU1JUgorU1RBTktPViBWT0pJU0xBVgorU1RBTktPViBWT0pJU0xBVgorU1RBTktPViBWT0pJU0xBVgorU1RBTktPViBaT1JBTktBCitTVEFOS09WIFpPUkFOCitTVEFOS09WScSGIMW9QVJLTworU1RBTktPVknEhiDFvUFSS08KK1NUQU5LT1ZJxIYgxb1JVktPCitTVEFOS09WScSGIMW9SVZLTworU1RBTktPVknEhiDFvUlWT0pJTgorU1RBTktPVknEhiDFvUlWT0pJTgorU1RBTktPVknEhiDFvUlWT1JBRAorU1RBTktPVknEhiDEkE9SxJBFCitTVEFOS09WScSGIMSQT1LEkEUKK1NUQU5LT1ZJxIYgxJBPUkUKK1NUQU5LT1ZJxIYgxJBVUk8KK1NUQU5LT1ZJxIYgQUxFS1NBTkRBUgorU1RBTktPVknEhiBBTEVLU0FOREFSCitTVEFOS09WScSGIEFMRUtTQU5EQVIKK1NUQU5LT1ZJxIYgQU7EkEVMS0EKK1NUQU5LT1ZJxIYgQU7EkEVMS0EKK1NUQU5LT1ZJxIYgQU5BCitTVEFOS09WScSGIEFOSUNBCitTVEFOS09WScSGIEFSQU5LQQorU1RBTktPVknEhiBBVlJBTQorU1RBTktPVknEhiBCSUxKQU5BCitTVEFOS09WScSGIEJPxb1JREFSCitTVEFOS09WScSGIEJPxb1JREFSCitTVEFOS09WScSGIEJPR09MSlVCIERSCitTVEFOS09WScSGIEJPR09MSlVCCitTVEFOS09WScSGIEJPSkFOQQorU1RBTktPVknEhiBCT0pBTgorU1RBTktPVknEhiBCT1JBCitTVEFOS09WScSGIEJPUkEKK1NUQU5LT1ZJxIYgQk9SQQorU1RBTktPVknEhiBCT1JJU0xBVgorU1RBTktPVknEhiBCT1JJU0xBVgorU1RBTktPVknEhiBCT1NJTEpLQQorU1RBTktPVknEhiBCUkFOS08KK1NUQU5LT1ZJxIYgREFOSUNBCitTVEFOS09WScSGIERBTklMTworU1RBTktPVknEhiBEQVJJTktBCitTVEFOS09WScSGIERJVk5BCitTVEFOS09WScSGIERPQlJJTktBCitTVEFOS09WScSGIERPQlJJVk9KRQorU1RBTktPVknEhiBET0JSSVZPSkUKK1NUQU5LT1ZJxIYgRE9CUk9TTEFWCitTVEFOS09WScSGIERSQUdBTgorU1RBTktPVknEhiBEUkFHQU4KK1NUQU5LT1ZJxIYgRFJBR0nFoEEKK1NUQU5LT1ZJxIYgRFJBR0nFoEEKK1NUQU5LT1ZJxIYgRFJBR0lDQQorU1RBTktPVknEhiBEUkFHT0xKVUIKK1NUQU5LT1ZJxIYgRFJBR09SQUQKK1NUQU5LT1ZJxIYgRFJBR1VUSU4KK1NUQU5LT1ZJxIYgRFXFoEFOCitTVEFOS09WScSGIERVxaBBTgorU1RBTktPVknEhiBEVcWgQU4KK1NUQU5LT1ZJxIYgRFXFoEFOCitTVEFOS09WScSGIERVxaBLTworU1RBTktPVknEhiBFVkVMSU4gRFIKK1NUQU5LT1ZJxIYgRVZJQ0EKK1NUQU5LT1ZJxIYgRlJFREVSSUsKK1NUQU5LT1ZJxIYgSUxJSkEKK1NUQU5LT1ZJxIYgSUxJSkEKK1NUQU5LT1ZJxIYgSVZBTgorU1RBTktPVknEhiBJVkFOCitTVEFOS09WScSGIEpBR09EQQorU1RBTktPVknEhiBKRUxFTkEKK1NUQU5LT1ZJxIYgSkVMSUNBCitTVEFOS09WScSGIEpFU0VOS0EgRFIKK1NUQU5LT1ZJxIYgSk9WQU4gRElQTCBJTkcKK1NUQU5LT1ZJxIYgSk9WQU4KK1NUQU5LT1ZJxIYgSk9WSUNBCitTVEFOS09WScSGIEpPVklDQQorU1RBTktPVknEhiBLQVRBTElOCitTVEFOS09WScSGIEtBVEFSSU5BCitTVEFOS09WScSGIEtBVElDQQorU1RBTktPVknEhiBLT1NBTkEKK1NUQU5LT1ZJxIYgS09TVEFESU4KK1NUQU5LT1ZJxIYgTEFaQVIgRElQTCBJTkcKK1NUQU5LT1ZJxIYgTEFaQVIKK1NUQU5LT1ZJxIYgTEFaQVIKK1NUQU5LT1ZJxIYgTEpJTEpBTkEKK1NUQU5LT1ZJxIYgTEpJTEpBTkEKK1NUQU5LT1ZJxIYgTEpJTEpBTkEKK1NUQU5LT1ZJxIYgTEpVQklDQQorU1RBTktPVknEhiBMSlVCSUNBCitTVEFOS09WScSGIExKVUJJU0FWCitTVEFOS09WScSGIExKVUJPTUlSCitTVEFOS09WScSGIExKVUJPTUlSCitTVEFOS09WScSGIExKVUJPTUlSCitTVEFOS09WScSGIExKVUJPCitTVEFOS09WScSGIE1BUklKQQorU1RBTktPVknEhiBNQVJJSkEKK1NUQU5LT1ZJxIYgTUFSSU5LTworU1RBTktPVknEhiBNQVJJTktPCitTVEFOS09WScSGIE1BUkpBTgorU1RBTktPVknEhiBNQVJLTworU1RBTktPVknEhiBNRUxBTklKQQorU1RBTktPVknEhiBNSUhBSkxPCitTVEFOS09WScSGIE1JSEFKTE8KK1NUQU5LT1ZJxIYgTUlMQU5LTworU1RBTktPVknEhiBNSUxBTktPCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEFOCitTVEFOS09WScSGIE1JTEVOS08KK1NUQU5LT1ZJxIYgTUlMT8WgCitTVEFOS09WScSGIE1JTE/FoAorU1RBTktPVknEhiBNSUxPUkFECitTVEFOS09WScSGIE1JTFVUSU4KK1NUQU5LT1ZJxIYgTUlPRFJBRworU1RBTktPVknEhiBNSU9NSVIKK1NUQU5LT1ZJxIYgTUlSSkFOQQorU1RBTktPVknEhiBNSVJKQU5BCitTVEFOS09WScSGIE1JUktPCitTVEFOS09WScSGIE1JUktPCitTVEFOS09WScSGIE1JUk9MSlVCCitTVEFOS09WScSGIE1JUk9TTEFWCitTVEFOS09WScSGIE1JUk9TTEFWCitTVEFOS09WScSGIE1JVEFSCitTVEFOS09WScSGIE1MQURFTgorU1RBTktPVknEhiBNTEFERU4KK1NUQU5LT1ZJxIYgTU9NxIxJTE8KK1NUQU5LT1ZJxIYgTkFEQQorU1RBTktPVknEhiBOQURBCitTVEFOS09WScSGIE5BREEKK1NUQU5LT1ZJxIYgTkFEQQorU1RBTktPVknEhiBOQVRBxaBBCitTVEFOS09WScSGIE5BVEFMSUpBCitTVEFOS09WScSGIE5FTkFECitTVEFOS09WScSGIE5FVkVOQQorU1RBTktPVknEhiBOSUtPTEEKK1NUQU5LT1ZJxIYgTklLT0xBCitTVEFOS09WScSGIE5JS09MQQorU1RBTktPVknEhiBOSUtPTEEKK1NUQU5LT1ZJxIYgTklLT0xBCitTVEFOS09WScSGIE9MR0EKK1NUQU5LT1ZJxIYgT0xHQQorU1RBTktPVknEhiBPTEdJQ0EKK1NUQU5LT1ZJxIYgT1NUT0pBCitTVEFOS09WScSGIFBBVkxFCitTVEFOS09WScSGIFBFVEFSCitTVEFOS09WScSGIFBFVEFSCitTVEFOS09WScSGIFJBRElWT0oKK1NUQU5LT1ZJxIYgUkFET01JUgorU1RBTktPVknEhiBSQURPU0xBVgorU1RBTktPVknEhiBTQcWgQQorU1RBTktPVknEhiBTQVZLQQorU1RBTktPVknEhiBTQVZPCitTVEFOS09WScSGIFNMQVZLTworU1RBTktPVknEhiBTTEFWS08KK1NUQU5LT1ZJxIYgU0xPQk9EQU5LQQorU1RBTktPVknEhiBTTE9CT0RBTgorU1RBTktPVknEhiBTTE9CT0RBTgorU1RBTktPVknEhiBTTE9CT0RBTgorU1RBTktPVknEhiBTT0ZJSkEKK1NUQU5LT1ZJxIYgU1LEkEFOCitTVEFOS09WScSGIFNSQk9MSlVCIERJUEwgSU5HCitTVEFOS09WScSGIFNUQU1FTgorU1RBTktPVknEhiBTVEFOS08KK1NUQU5LT1ZJxIYgU1RBTk9KRQorU1RBTktPVknEhiBTVEVWQU4KK1NUQU5LT1ZJxIYgU1RFVkFOCitTVEFOS09WScSGIFNURVZPCitTVEFOS09WScSGIFNWRVRJU0xBVgorU1RBTktPVknEhiBTVkVUSVNMQVYKK1NUQU5LT1ZJxIYgU1ZFVE9aQVIKK1NUQU5LT1ZJxIYgU1ZFVE9aQVIKK1NUQU5LT1ZJxIYgVEVSRVpBCitTVEFOS09WScSGIFRJT1NBVgorU1RBTktPVknEhiBUT8WgQQorU1RBTktPVknEhiBUT01JU0xBVgorU1RBTktPVknEhiBUT01JU0xBVgorU1RBTktPVknEhiBWRU5FUkEKK1NUQU5LT1ZJxIYgVkVTRUxJTgorU1RBTktPVknEhiBWRVNFTElOCitTVEFOS09WScSGIFZJVE9NSVIKK1NUQU5LT1ZJxIYgVkxBREFOCitTVEFOS09WScSGIFZMQURBCitTVEFOS09WScSGIFZMQURJTUlSCitTVEFOS09WScSGIFZMQURJTUlSCitTVEFOS09WScSGIFZPSklTTEFWCitTVEFOS09WScSGLVZSQU5JxIYgTUlMSUNBCitTVEFOS09WScSGIFpMQVRJVk9KRQorU1RBTktPVknEhiBaT1JBTgorU1RBTktPVknEhiBaT1JBTgorU1RBTktPVknEhiBaT1JBCitTVEFOS09WU0tJIEtPU1RBCitTVEFOS09WU0tJIFNURVZBTgorU1RBTktPVlNLSSBWRUxKQU4KK1NUQU5PSsSMScSGIMSQT1LEkEUKK1NUQU5PSsSMScSGIEFOxJBFTEtPCitTVEFOT0rEjEnEhiBBTktJQ0EKK1NUQU5PSsSMScSGIERFU0lNSVIKK1NUQU5PSsSMScSGIERVxaBBTktBCitTVEFOT0rEjEnEhiBPTEdBCitTVEFOT0rEjEnEhiBTTE9CT0RBTgorU1RBTk9KxIxJxIYgU09GSUpBCitTVEFOT0rEjEnEhiBTVEVWQU4KK1NUQU5PSsSMScSGIFZFUkEKK1NUQU5PSsSMScSGIFZPSklTTEFWCitTVEFOT0pFViDFvUlWQU4KK1NUQU5PSkVWIEFMRUtTQU5EUkEKK1NUQU5PSkVWIEJSQU5JU0xBVgorU1RBTk9KRVYgREVKQU4KK1NUQU5PSkVWIERVxaBBTgorU1RBTk9KRVYgRFXFoEFOCitTVEFOT0pFViBEVcWgQU4KK1NUQU5PSkVWIERVxaBBTgorU1RBTk9KRVYgR09SQU4KK1NUQU5PSkVWIEpPQ0EKK1NUQU5PSkVWIExBWkFSCitTVEFOT0pFViBMSlVCSUNBCitTVEFOT0pFViBNSUxBTgorU1RBTk9KRVYtTU9TS0FMSiBPTEdBCitTVEFOT0pFViBORUJPSsWgQQorU1RBTk9KRVYgTklLT0xBCitTVEFOT0pFVi1QRVRSRU5KIE1JUkpBTkEKK1NUQU5PSkVWIFNBVkEKK1NUQU5PSkVWIFNUQU5LQQorU1RBTk9KRVYgU1RFVkFOCitTVEFOT0pFViBUSUhPTUlSCitTVEFOT0pFViBWRVJJQ0EKK1NUQU5PSkVWIFZMQURJTUlSCitTVEFOT0pFViBWTEFESU1JUgorU1RBTk9KRVZJxIYgxIxFRE9NSVIKK1NUQU5PSkVWScSGIMW9QVJLTworU1RBTk9KRVZJxIYgxb1JVkFOS08KK1NUQU5PSkVWScSGIMW9SVZPSklOCitTVEFOT0pFVknEhiDEkFVSQQorU1RBTk9KRVZJxIYgQk/FvUlEQVIKK1NUQU5PSkVWScSGIERBTklDQQorU1RBTk9KRVZJxIYgRFJBR0FOCitTVEFOT0pFVknEhiBEUkFHT0xKVUIKK1NUQU5PSkVWScSGIERVxaBBTgorU1RBTk9KRVZJxIYgRFXFoEFOCitTVEFOT0pFVknEhiBIUkFOSVNMQVYKK1NUQU5PSkVWScSGIElMSUpBCitTVEFOT0pFVknEhiBKT1ZBTgorU1RBTk9KRVZJxIYgS0HEhkEKK1NUQU5PSkVWScSGIEtPU1RBCitTVEFOT0pFVknEhiBMSlVCSU5LQQorU1RBTk9KRVZJxIYtTUFOREnEhiBNSUxBCitTVEFOT0pFVknEhiBNQVJJSkEKK1NUQU5PSkVWScSGIE1JTEFOCitTVEFOT0pFVknEhiBNSUxBTgorU1RBTk9KRVZJxIYgTUlMQU4KK1NUQU5PSkVWScSGIE1JTEFOCitTVEFOT0pFVknEhiBNSUxBCitTVEFOT0pFVknEhiBNSUxFVEEKK1NUQU5PSkVWScSGIE1JTElWT0oKK1NUQU5PSkVWScSGIE1JTE9SQUQKK1NUQU5PSkVWScSGIE1JT0RSQUcKK1NUQU5PSkVWScSGIE1JT0RSQUcKK1NUQU5PSkVWScSGIE1JUk9TTEFWCitTVEFOT0pFVknEhiBOQURBCitTVEFOT0pFVknEhiBOQVRBxaBBCitTVEFOT0pFVknEhiBORUJPSsWgQQorU1RBTk9KRVZJxIYgTkVNQU5KQQorU1RBTk9KRVZJxIYgTkVTVE9SCitTVEFOT0pFVknEhiBOSUtPTEEKK1NUQU5PSkVWScSGIE5JS09MQQorU1RBTk9KRVZJxIYgUEFWTEUKK1NUQU5PSkVWScSGIFBFVEFSCitTVEFOT0pFVknEhiBQUkVEUkFHCitTVEFOT0pFVknEhiBSQURNSUxBCitTVEFOT0pFVknEhiBSQURPTUlSCitTVEFOT0pFVknEhiBSQURPU0xBVgorU1RBTk9KRVZJxIYgUkFETworU1RBTk9KRVZJxIYgU0xPQk9EQU4KK1NUQU5PSkVWScSGIFNPRklKQQorU1RBTk9KRVZJxIYgU1JCT0xKVUIKK1NUQU5PSkVWScSGIFNURVZBTgorU1RBTk9KRVZJxIYgU1ZFVElTTEFWCitTVEFOT0pFVknEhiBUQVRKQU5BCitTVEFOT0pFVknEhiBUT01JU0xBVgorU1RBTk9KRVZJxIYtVkFSR0EgQU5BIERSCitTVEFOT0pFVknEhiBWRUxKS08KK1NUQU5PSkVWScSGIFZMQURJTUlSCitTVEFOT0pFVknEhiBWTEFESU1JUgorU1RBTk9KRVZJxIYgVkxBRElTTEFWCitTVEFOT0pFVknEhiBWVUsKK1NUQU5PSkVWScSGIFpEUkFWS08KK1NUQU5PSkVWScSGIFpMQVRLTworU1RBTk9KRVZJxIYgWk9SQU4KK1NUQU5PSkVWScSGIFpPUkFOCitTVEFOT0pFVknEhiBaT1JBTgorU1RBTk9KRVZJxIYgWk9SQU4KK1NUQU5PSktPVknEhiBNSUxPxaAKK1NUQU5PSktPVknEhiBSQURFCitTVEFOT0pLT1ZJxIYgVkxBREEKK1NUQU5PSkxPVknEhiBNSVRBUgorU1RBTk9KTE9WScSGIFNURVZBTgorU1RBTk9KT1NLSSBEQU5JQ0EKK1NUQU5PSk9TS0kgWkxBVEEKK1NUQU5PSlNLSSBCTEFHT0pFCitTVEFOT1ZJxIYgU1RFVkFOCitTVEFOT1ZJxIYgVkVTRUxJTgorU1RBTlRFIEpPU0lQCitTVEFOVEnEhiBCQVJUVUwKK1NUQU5UScSGIEJFUlRBTEFOCitTVEFOVEnEhiBLQVRBTElOCitTVEFOVEnEhiBMQURJU0xBVgorU1RBTlRJxIYgVkVST05BCitTVEFOVcWgScSGIE1JSkFUCitTVEFOVUwgUEVUQVIKK1NUQU5VTE9WIFNWRVRMQU5BCitTVEFOVUxPViBUT0RPUgorU1RBTlVMT1ZJxIYgRElNSVRSSUpFIERSCitTVEFOVUxPVknEhiBNSUxBTiBEUgorU1RBUEFSIEFMRUtTQU5EQVIKK1NUQVBBUlNLSSBCT1JJU0xBVgorU1RBUEFSU0tJIE1JTEFOCitTVEFQQVJTS0kgUEVUQVIKK1NUQVBBUlNLSSBTVEVWQU4KK1NUQVLEjEVWIEFOxJBFTEtBCitTVEFSxIxFViBCUkFOS0EKK1NUQVLEjEVWIERFU0FOS0EKK1NUQVLEjEVWIEpFTEEKK1NUQVLEjEVWIEtBVElDQQorU1RBUsSMRVYgTUlMQU4gRElQTCBJTkcKK1NUQVLEjEVWIE1JTEVOS08KK1NUQVLEjEVWIE1JTE/FoAorU1RBUsSMRVYgTUlST1NMQVYKK1NUQVLEjEVWIFNUT0pBTktBCitTVEFSxIxFVknEhiBBTklDQQorU1RBUsSMRVZJxIYgQU5LQQorU1RBUsSMRVZJxIYgQk/FoEtPCitTVEFSxIxFVknEhiBCT0dEQU4KK1NUQVLEjEVWScSGIEJPUklTTEFWCitTVEFSxIxFVknEhiBCUkFOSVNMQVYKK1NUQVLEjEVWScSGIEJVRElNSVIKK1NUQVLEjEVWScSGIERSQUdJQ0EKK1NUQVLEjEVWScSGIERVxaBBTktBCitTVEFSxIxFVknEhiBEVcWgQU4KK1NUQVLEjEVWScSGIEZSQU5KQQorU1RBUsSMRVZJxIYgSVZBTgorU1RBUsSMRVZJxIYgTEpVQklOS08gRElQTCBJTkcKK1NUQVLEjEVWScSGIE1JTEFOCitTVEFSxIxFVknEhiBNSUxBTgorU1RBUsSMRVZJxIYgTUlMQU4KK1NUQVLEjEVWScSGIE1JTEFOCitTVEFSxIxFVknEhiBNSUxJQ0EKK1NUQVLEjEVWScSGIE1JTElDQQorU1RBUsSMRVZJxIYgTUlMS0EKK1NUQVLEjEVWScSGIE1JTE9WQU4KK1NUQVLEjEVWScSGIE1JT0RSQUcKK1NUQVLEjEVWScSGIE1JUktPCitTVEFSxIxFVknEhiBNSVJLTworU1RBUsSMRVZJxIYgTUlSS08KK1NUQVLEjEVWScSGIE5JS09MQQorU1RBUsSMRVZJxIYgT0xHQQorU1RBUsSMRVZJxIYgUEFWTEUKK1NUQVLEjEVWScSGIFJVRE9MRgorU1RBUsSMRVZJxIYgU1RBTUVOS0EKK1NUQVLEjEVWScSGIFNUQU5LTworU1RBUsSMRVZJxIYgU1RJUE8KK1NUQVLEjEVWScSGIFNUT0pBTgorU1RBUsSMRVZJxIYgVkxBU1RJTUlSCitTVEFSQcSMRUsgxb1FTEpLTworU1RBUkHEjEVLIEpPxb1FRgorU1RBUkHEjEVLIEpPVkFOCitTVEFSRVZJxIYgTklLT0xBCitTVEFSSSBEQU5JRUwKK1NUQVJJIExJVklKQQorU1RBUknEhiBJVkFOCitTVEFST1ZJxIYgQk9SSVZPSiBEUgorU1RBUk9WScSGIEJSQU5LTworU1RBUk9WScSGIE1BUklKQQorU1RBUk9WScSGIE1JTEFOCitTVEFST1ZJxIYgUFJFRFJBRworU1RBUk9WScSGIFJBRE9NSVIKK1NUQVJPVknEhiBSQVNUSVNMQVYKK1NUQVJPVknEhiBaRFJBVktPCitTVEFST1ZMQUggTUxBREVOCitTVEFWRU5PViDEkE9SxJBFCitTVEFWSkVMIE1MQURFTgorU1RBVlJFVlNLSSBCT0dEQU4KK1NUQVZSScSGIElMT05LQQorU1RBVlJJxIYgU1RBTk9KRQorU1RBVlJPViBEQU5JQ0EKK1NURcSGIE1JVEFSCitTVEXEhiBWQVNJTElKRQorU1RFRkFOIElWQU4KK1NURUZBTiBMSlVCT01JUkEKK1NURUZBTklERVMgSlVMSUpFCitTVEVGQU5JREVTIExKVURFVklUCitTVEVGQU5JRElTIEtJUklBS0kKK1NURUZBTkpVSyBOSUtPTEEKK1NURUZBTk9WIEJMQUdPSkUKK1NURUZBTk9WIExKVUJPTUlSCitTVEVGQU5PViBOQURBCitTVEVGQU5PVknEhiDFvUFSS08KK1NURUZBTk9WScSGIMW9SUtBCitTVEVGQU5PVknEhiDFvUlLQQorU1RFRkFOT1ZJxIYgxb1JS0EKK1NURUZBTk9WScSGIMW9SVZLTworU1RFRkFOT1ZJxIYgxb1JVk9SQUQKK1NURUZBTk9WScSGIMW9SVZPVEEKK1NURUZBTk9WScSGIMSQT1LEkEUKK1NURUZBTk9WScSGIMSQVVJJQ0EgRFIgTEVLQVIKK1NURUZBTk9WScSGIEFMRUtTQU5EQVIKK1NURUZBTk9WScSGIEFMRUtTQU5EQVIKK1NURUZBTk9WScSGIEFOQQorU1RFRkFOT1ZJxIYgQU5HRUxJTkEKK1NURUZBTk9WScSGIEFOS0EKK1NURUZBTk9WScSGIEJPR0RBTgorU1RFRkFOT1ZJxIYgQk9HT0xKVUIKK1NURUZBTk9WScSGIEJPUklWT0pFCitTVEVGQU5PVknEhiBCT1JJVk9KCitTVEVGQU5PVknEhiBCUkFOSVNMQVYKK1NURUZBTk9WScSGIEJSQU5LQQorU1RFRkFOT1ZJxIYgQlJBTktPCitTVEVGQU5PVknEhiBEQU5JQ0EKK1NURUZBTk9WScSGIERBTklDQQorU1RFRkFOT1ZJxIYgREFOSUxLQQorU1RFRkFOT1ZJxIYgREFSSU5LQQorU1RFRkFOT1ZJxIYgREXFvUUKK1NURUZBTk9WScSGIERFSkFOCitTVEVGQU5PVknEhiBEUkFHQU5BCitTVEVGQU5PVknEhiBEUkFHQU4KK1NURUZBTk9WScSGIERSQUdBTgorU1RFRkFOT1ZJxIYgRFJBR0FOCitTVEVGQU5PVknEhiBEUkFHQU4KK1NURUZBTk9WScSGIERSQUdBTgorU1RFRkFOT1ZJxIYgRFJBR0nFoEEKK1NURUZBTk9WScSGIERSQUdJxaBBCitTVEVGQU5PVknEhiBEUkFHSUNBCitTVEVGQU5PVknEhiBEUkFHSUNBCitTVEVGQU5PVknEhiBEUkFHSUNBCitTVEVGQU5PVknEhiBEUkFHT0xKVUIKK1NURUZBTk9WScSGIERSQUdPTEpVQgorU1RFRkFOT1ZJxIYgRFJBR1VUSU4KK1NURUZBTk9WScSGIERSQUdVVElOCitTVEVGQU5PVknEhiBEVcWgQU4KK1NURUZBTk9WScSGIERVxaBLTworU1RFRkFOT1ZJxIYgRVLFvUlLQQorU1RFRkFOT1ZJxIYtR0VSScSGIFpPUktBCitTVEVGQU5PVknEhiBHT1JBTgorU1RFRkFOT1ZJxIYgR09SREFOCitTVEVGQU5PVknEhiBJVkFOCitTVEVGQU5PVknEhiBKRUxJQ0EKK1NURUZBTk9WScSGIEpFTElDQQorU1RFRkFOT1ZJxIYgSk9TSUYKK1NURUZBTk9WScSGIEpPVkFOS0EKK1NURUZBTk9WScSGIEpPVkFOCitTVEVGQU5PVknEhiBKT1ZBTgorU1RFRkFOT1ZJxIYgSk9aRUZJTkEKK1NURUZBTk9WScSGIEpVTElKQU5BCitTVEVGQU5PVknEhiBLQVJBTkZJTEEKK1NURUZBTk9WScSGIEtBVElDQQorU1RFRkFOT1ZJxIYgTEFaQVIKK1NURUZBTk9WScSGIExFTktBCitTVEVGQU5PVknEhiBMSlVCT01JUiBEUgorU1RFRkFOT1ZJxIYgTEpVQk9NSVIKK1NURUZBTk9WScSGIExVQ0lKQQorU1RFRkFOT1ZJxIYgTUFSSUpBCitTVEVGQU5PVknEhiBNQVJJTktPCitTVEVGQU5PVknEhiBNQVJLTworU1RFRkFOT1ZJxIYgTUFSVEEKK1NURUZBTk9WScSGIE1BUlRBCitTVEVGQU5PVknEhiBNSUhBSkxPCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxFTkEKK1NURUZBTk9WScSGIE1JTEVOCitTVEVGQU5PVknEhiBNSUxJQ0EKK1NURUZBTk9WScSGIE1JTE/FoAorU1RFRkFOT1ZJxIYgTUlMT8WgCitTVEVGQU5PVknEhiBNSUxPSkUKK1NURUZBTk9WScSGIE1JTE9WQU4KK1NURUZBTk9WScSGIE1JTFVUSU4gRElQTCBQUkFWTklLCitTVEVGQU5PVknEhiBNSUxVVElOCitTVEVGQU5PVknEhiBNSU9NSVIKK1NURUZBTk9WScSGIE1JUkEKK1NURUZBTk9WScSGIE1JUkpBTkEKK1NURUZBTk9WScSGIE1JUktPCitTVEVGQU5PVknEhiBNSVJLTworU1RFRkFOT1ZJxIYgTUlSS08KK1NURUZBTk9WScSGIE1JUk9TTEFWCitTVEVGQU5PVknEhiBNSVJPU0xBVgorU1RFRkFOT1ZJxIYgTUlST1NMQVYKK1NURUZBTk9WScSGIE1JUk9TTEFWCitTVEVGQU5PVknEhiBOQURBCitTVEVGQU5PVknEhiBORURFTEpLQQorU1RFRkFOT1ZJxIYgTklLT0xBCitTVEVGQU5PVknEhiBOSUtPTEEKK1NURUZBTk9WScSGIE5JS09MQQorU1RFRkFOT1ZJxIYgTklLT0xBCitTVEVGQU5PVknEhiBQQU5UQQorU1RFRkFOT1ZJxIYgUEFVTEEKK1NURUZBTk9WScSGIFBFVEFSCitTVEVGQU5PVknEhiBSQURNSUxBCitTVEVGQU5PVknEhiBSQURNSUxBCitTVEVGQU5PVknEhiBSQURPU0xBVgorU1RFRkFOT1ZJxIYgUlXFvUlDQQorU1RFRkFOT1ZJxIYgU0FOSkEKK1NURUZBTk9WScSGIFNMQVZJQ0EgRFIKK1NURUZBTk9WScSGIFNMQVZLQQorU1RFRkFOT1ZJxIYgU0xBVktPCitTVEVGQU5PVknEhiBTTEFWS08KK1NURUZBTk9WScSGIFNMT0JPREFOIFBST0ZFU09SCitTVEVGQU5PVknEhiBTTE9CT0RBTgorU1RFRkFOT1ZJxIYgU01JTEpBCitTVEVGQU5PVknEhiBTTUlMSktBCitTVEVGQU5PVknEhiBTTkXFvUFOQQorU1RFRkFOT1ZJxIYgU1RBTknFoEEKK1NURUZBTk9WScSGIFNUQU5LTworU1RFRkFOT1ZJxIYgU1RFVkFOCitTVEVGQU5PVknEhiBTVEVWQU4KK1NURUZBTk9WScSGIFNURVZBTgorU1RFRkFOT1ZJxIYgU1RKRVBBTgorU1RFRkFOT1ZJxIYgU1RPSkFOQQorU1RFRkFOT1ZJxIYgU1VaQU5BCitTVEVGQU5PVknEhiBTVkVUSVNMQVYKK1NURUZBTk9WScSGIFNWRVRPWkFSCitTVEVGQU5PVknEhiBTVkVUT1pBUgorU1RFRkFOT1ZJxIYgVEFUSkFOQQorU1RFRkFOT1ZJxIYtVElMScSGIERJVk5BCitTVEVGQU5PVknEhiBUT0RPUgorU1RFRkFOT1ZJxIYgVE9NSVNMQVYKK1NURUZBTk9WScSGIFZBU0EKK1NURUZBTk9WScSGIFZBU0EKK1NURUZBTk9WScSGIFZBU0lMSUpFCitTVEVGQU5PVknEhiBWRVJBCitTVEVGQU5PVknEhiBWRVJBCitTVEVGQU5PVknEhiBWRVJJQ0EKK1NURUZBTk9WScSGIFZFU05BCitTVEVGQU5PVknEhiBWRVNOQQorU1RFRkFOT1ZJxIYgVklUT01JUgorU1RFRkFOT1ZJxIYgVkxBRElDQQorU1RFRkFOT1ZJxIYgVkxBRElNSVIKK1NURUZBTk9WScSGIFZMQURJTUlSCitTVEVGQU5PVknEhiBWTEFESU1JUgorU1RFRkFOT1ZJxIYgVkxBRElNSVIKK1NURUZBTk9WScSGIFZMQUpLTworU1RFRkFOT1ZJxIYgVk9KSVNMQVZBCitTVEVGQU5PVknEhiBWT0pJU0xBVgorU1RFRkFOT1ZJxIYgVk9KSVNMQVYKK1NURUZBTk9WScSGIFpPUkFOCitTVEVGQU5PVknEhiBaT1JBTgorU1RFRkFOT1ZTS0EgWk9SS0EKK1NURUZBTk9WU0tJIExFVktPCitTVEVGQU5PVlNLSSBNRVRPRElKRQorU1RFRkFOT1ZTS0kgTUlMT1JBRAorU1RFRkFOT1ZTS0kgU1RBTUVOCitTVEVHScSGIERFSkFOCitTVEVHScSGIElWQU4KK1NURUdJxIYgTklLT0xBCitTVEVHTkpBScSGIE9MR0EKK1NURUdOSkFKScSGIFZMQURJTUlSCitTVEVKScSGIEFSQU5LQQorU1RFSknEhiBKRUxFTkEKK1NURUpJxIYgS09TVEEKK1NURUpJxIYgTkVWRU5LQQorU1RFSknEhiBSVcW9QQorU1RFSklOIMSQT1LEkEUKK1NURUpJTiBCT1JJU0xBVgorU1RFSklOIERVxaBBTiBESVBMIElORworU1RFSklOIEpFTEVOQQorU1RFSklOIEpPVkFOS0EKK1NURUpJTiBMSlVCSUNBCitTVEVKSU4gUlXFvUlDQQorU1RFSklOIFNBxaBBCitTVEVKSU4gU1LEkEFOCitTVEVMQSBWTEFESU1JUkEKK1NURUxKQSBOT1ZBSworU1RFTEpJxIYgTUlMSVZPSkUKK1NURUxKScSGIE1JTFVOCitTVEVMS0nEhiDEkFVSSUNBCitTVEVMS0nEhiBEUkFHSUNBCitTVEVMS0nEhiBNSUxJVk9KCitTVEVMS0nEhiBSQURJQ0EKK1NURUxLScSGIFJFTEpBIERJUEwgSU5HCitTVEVMS0nEhiBTVkVUT1pBUgorU1RFTEtJxIYgWkxBVE9NSVIKK1NURVBBTsSMRVYgQU5JQ0EKK1NURVBBTsSMRVYgU1RFVkFOCitTVEVQQU7EjEVWIFZMQURJU0xBVgorU1RFUEFOxIxFViBaT1JBTgorU1RFUEFOxIxFViBaT1JBCitTVEVQQU7EjEVWIFpPUklDQQorU1RFUEFOxIxFVknEhiBNSUxJQ0EKK1NURVBBTsSMRVZJxIYgTUlPRFJBRworU1RFUEFOxIxFVknEhiBTT0ZJSkEKK1NURVBBTsSMRVZJxIYgU1BBU09KRQorU1RFUEFOScSGIE1JTElTQVYKK1NURVBBTknEhiBQUkVEUkFHCitTVEVQQU5PViDEkE9SxJBFCitTVEVQQU5PViDEkE9SxJBFCitTVEVQQU5PViDEkE9SxJBFCitTVEVQQU5PViBBTEVLU0FOREFSCitTVEVQQU5PViBBTEVLU0FORFJBCitTVEVQQU5PViBBTsSQRUxLQQorU1RFUEFOT1YgQlJBTklTTEFWCitTVEVQQU5PViBCUkFOS08KK1NURVBBTk9WIEJSQU5LTworU1RFUEFOT1YgRFJBR0nFoEEKK1NURVBBTk9WIERSQUdJQ0EKK1NURVBBTk9WIERVxaBBTgorU1RFUEFOT1YgRFXFoEFOCitTVEVQQU5PViBFTUlMCitTVEVQQU5PViBKT0xFCitTVEVQQU5PViBLQVRJQ0EKK1NURVBBTk9WIExKSUxKQU5BCitTVEVQQU5PViBMSlVCT01JUiBEUgorU1RFUEFOT1YgTEpVQk9NSVIKK1NURVBBTk9WIE1BS1NBCitTVEVQQU5PViBNQVJBCitTVEVQQU5PViBNSUxBTktBCitTVEVQQU5PViBNSUxBTktBCitTVEVQQU5PViBNSUxBTgorU1RFUEFOT1YgTUlMQU4KK1NURVBBTk9WIE1JTEVWQQorU1RFUEFOT1YgTUlMSVZPSgorU1RFUEFOT1YgTUlMSVZPSgorU1RFUEFOT1YgTUlMSVZPSgorU1RFUEFOT1YgTUlMT1ZBTgorU1RFUEFOT1YgTklLT0xBCitTVEVQQU5PViBQQUpBCitTVEVQQU5PViBQQUpBCitTVEVQQU5PViBQRVRBUiBEUgorU1RFUEFOT1YgUEVUQVIKK1NURVBBTk9WIFBJUk/FoEtBCitTVEVQQU5PViBSQURJVk9KCitTVEVQQU5PViBSQURPVkFOCitTVEVQQU5PViBTQVZBCitTVEVQQU5PViBTQVZBCitTVEVQQU5PViBTRVJHSUpFCitTVEVQQU5PViBTTE9CT0RBTgorU1RFUEFOT1YgU1ZFVElTTEFWCitTVEVQQU5PViBWQVNJTElKRQorU1RFUEFOT1YgVkVMSU1JUgorU1RFUEFOT1YgVkVTTkEKK1NURVBBTk9WIFZJREEKK1NURVBBTk9WIFZJRE9TQVZBCitTVEVQQU5PViBWT0pOQQorU1RFUEFOT1YgWkRSQVZLTworU1RFUEFOT1ZJxIYgxJBVUsSQSUNBCitTVEVQQU5PVknEhiBCUkFUSVNMQVYKK1NURVBBTk9WScSGIERSQUdJxaBBCitTVEVQQU5PVknEhiBEUkFHSUNBCitTVEVQQU5PVknEhiBNSUxPUkFECitTVEVQQU5PVknEhiBORUJPSsWgQQorU1RFUEFOT1ZJxIYgU0xPQk9EQU4KK1NURVBBTk9WScSGIFNORcW9QU5BCitTVEVQQU5PVknEhiBTVEVWQU4KK1NURVBBTk9WScSGIFNWRVRMQU5BCitTVEVQScSGIEpPU0lQCitTVEVQScSGIE1BUklKQQorU1RFUklPIMSQT1LEkEUKK1NURVJJTyBCUkFOS08gRFIKK1NURVJQSU4gWlZPTklNSVIKK1NURVbEjEnEhiBTQVZBVElKRQorU1RFVkFOxIxFViBBTktJQ0EKK1NURVZBTsSMRVYgTUlMSUNBCitTVEVWQU7EjEVWIE1JTE9SQUQKK1NURVZBTsSMRVYgT0xHQQorU1RFVkFOxIxFVknEhiBMSklMSkFOQQorU1RFVkFOREnEhiDEkFVSTworU1RFVkFOREnEhiBNSUxJQ0EKK1NURVZBTkRJxIYgUkFERQorU1RFVkFOScSGIEJPUklWT0pFCitTVEVWQU5JxIYgRFJBR09TTEFWCitTVEVWQU5JxIYgSVZBTgorU1RFVkFOScSGIE1JT0RSQUcKK1NURVZBTknEhiBTTE9CT0RBTgorU1RFVkFOScSGIFZVS09NQU4KK1NURVZBTk9WIMW9SVZBTgorU1RFVkFOT1YgRFJBR0FOQQorU1RFVkFOT1YgRU1JTEtBCitTVEVWQU5PViBHQVZSQQorU1RFVkFOT1YgSkVMRU5BCitTVEVWQU5PViBMSklMSkFOQQorU1RFVkFOT1YgTUFETEVOCitTVEVWQU5PViBNSUxPUkFECitTVEVWQU5PViBNSUxPVkFOCitTVEVWQU5PViBNSUxVVElOCitTVEVWQU5PViBNTEFERU4KK1NURVZBTk9WIE1MQURFTgorU1RFVkFOT1YgTkFUQUxJSkEKK1NURVZBTk9WIFNUQU5BCitTVEVWQU5PViBTVkVUT1pBUgorU1RFVkFOT1YgVkVTRUxJTgorU1RFVkFOT1YgVkxBRElNSVIKK1NURVZBTk9WIFpMQVRPSkUKK1NURVZBTk9WScSGIMW9SVZBRElOCitTVEVWQU5PVknEhiDFvUlWS0EKK1NURVZBTk9WScSGIMW9SVZPUkFECitTVEVWQU5PVknEhiBBREFNCitTVEVWQU5PVknEhiBBTEVLU0FOREFSCitTVEVWQU5PVknEhiBCT8WgS08KK1NURVZBTk9WScSGIEJPUkEKK1NURVZBTk9WScSGIEJSQU5JU0xBVkEKK1NURVZBTk9WScSGIERBTklDQQorU1RFVkFOT1ZJxIYgREVTSU1JUgorU1RFVkFOT1ZJxIYgRFJBR0nFoEEKK1NURVZBTk9WScSGIERSQUdJQ0EKK1NURVZBTk9WScSGIERSQUdPU0xBVgorU1RFVkFOT1ZJxIYgRFXFoEFOIERSCitTVEVWQU5PVknEhiBHT1JBTgorU1RFVkFOT1ZJxIYgR09SQU4KK1NURVZBTk9WScSGIEpBUk9TTEFWCitTVEVWQU5PVknEhiBKT1ZBTgorU1RFVkFOT1ZJxIYgTEpVQknFoEEKK1NURVZBTk9WScSGIE1JTEFESU5LQQorU1RFVkFOT1ZJxIYgTUlMQURJTgorU1RFVkFOT1ZJxIYgTUlMRU5LTworU1RFVkFOT1ZJxIYgTUlMRQorU1RFVkFOT1ZJxIYgTUlMSVZPSgorU1RFVkFOT1ZJxIYgTUlMS0EKK1NURVZBTk9WScSGIE1JTE9MSlVCCitTVEVWQU5PVknEhiBNSU9NSVIKK1NURVZBTk9WScSGIE1JUkEKK1NURVZBTk9WScSGIE1MQURFTktBCitTVEVWQU5PVknEhi1ORcSGQUsgU0xPQk9EQU5LQSBESVBMIElORworU1RFVkFOT1ZJxIYgTklLT1NBVkEKK1NURVZBTk9WScSGIFJBRE9TTEFWCitTVEVWQU5PVknEhiBSQUpLTworU1RFVkFOT1ZJxIYgUkFOS08gRFIgTEVLQVIKK1NURVZBTk9WScSGIFJBVEtPCitTVEVWQU5PVknEhiBSVcW9QQorU1RFVkFOT1ZJxIYgU0FWQQorU1RFVkFOT1ZJxIYgU0xPQk9EQU4KK1NURVZBTk9WScSGIFNORcW9QU5BCitTVEVWQU5PVknEhiBTVE9KQURJTgorU1RFVkFOT1ZJxIYgU1ZJSkVUTEFOQQorU1RFVkFOT1ZJxIYgVE9NSVNMQVYKK1NURVZBTk9WScSGIFRPTUlTTEFWCitTVEVWQU5PVknEhiBWRVJBCitTVEVWQU5PVknEhiBWTEFEQQorU1RFVkFOT1ZJxIYgVkxBU1RJTUlSCitTVEVWQU5PVknEhiBaTEFUS08gRFIKK1NURVZBTk9WScSGIFpPUkFOCitTVEVWQU5PVknEhiBaT1JJQ0EKK1NURVZBTk9WU0tJIEdPxaBFCitTVEVWQU5PVlNLSSBTTE9CT0RBTgorU1RFVknEhiBET0JSSVZPSkUKK1NURVZJxIYgRFXFoEFOCitTVEVWScSGIEdPUkRBTkEKK1NURVZJxIYgTEpVQknFoEEKK1NURVZJxIYgTklLT0xBCitTVEVWScSGIFBFVEFSCitTVEVWScSGIFNMT0JPREFOCitTVEVWScSGIFNORcW9QU5BCitTVEVWScSGIFNSQkEKK1NURVZJxIYgVkVMSU1JUgorU1RFVknEhiBWT0pJU0xBVgorU1RFVklOIEJPR0RBTgorU1RFVklOIEJPUklTTEFWCitTVEVWSU4gTkFEQSBESVBMIElORworU1RFVklOIFJBRE9KTEEKK1NURVZPVknEhiBBTktBCitTVEVWT1ZJxIYgQk/FvUlEQVIKK1NURVZPVknEhiBCUkFOSVNMQVYKK1NURVZPVknEhiBJVkFOIERJUEwgUFJBVk5JSworU1RFVk9WScSGLUxVS0nEhiBSQURNSUxBCitTVEVWT1ZJxIYgTUlMT1NBVkEKK1NURVZPVknEhiBWT0pJTgorU1RJSkHEjEnEhiBCUkFOS08KK1NUSUpBxIxJxIYgUEFWTEUKK1NUSUpBxIxJxIYgU1ZFVE9aQVIKK1NUSUpBS09WScSGIERSQUdBTgorU1RJSkVQT1ZJxIYgQUxFS1NBCitTVElKRVBPVknEhiBNSUxJSkFOQQorU1RJSk9WScSGIElMSUpBCitTVElKT1ZJxIYgSkVMSVNBVkVUQQorU1RJSk9WScSGIE1BUkEKK1NUSUpPVknEhiBNSUxBTgorU1RJS0nEhiBCSUxKQU5BCitTVElLScSGIEpPVkFOCitTVElLScSGIE1PTUlSS0EKK1NUSUtPVknEhiBST1NBCitTVElMSU5PVknEhiBLT1ZJTktBCitTVElMSU5PVknEhiBaVk9OSU1JUiBESVBMIElORworU1RJUEFOxIxJxIYgU1RJUEFOCitTVElQQU5PVknEhiBCSkVMSUNBCitTVElQQU5PVknEhiBHT0pLTworU1RJUEVUScSGIERSQUdBTgorU1RJUEnEhiBBTkRSSUpBCitTVElQScSGIEFOVEUKK1NUSVBJxIYgQlVERQorU1RJUEnEhiBHSVpFTEEKK1NUSVBJxIYgSkHFoEEKK1NUSVBJxIYgTkFEQQorU1RJUEnEhiBPTElWRVJBCitTVElQScSGIFNPTkpBCitTVElQScSGIFZFTEpLTworU1RJU0tBTE8gVElIT01JUgorU1RKRUxKQSBEQU5JQ0EKK1NUSkVQxIxFVknEhiBBTklDQQorU1RKRVBBTk9WScSGIEJPxb1PCitTVEpFUEFOT1ZJxIYgQk9SSVZPSkUKK1NUSkVQQU5PVknEhiBDVkVKQQorU1RKRVBBTk9WScSGIEpBU05BCitTVEpFUEFOT1ZJxIYgSkVMRU5BCitTVEpFUEFOT1ZJxIYgSkVMSVNBVkVUQQorU1RKRVBBTk9WScSGIEpPVklDQQorU1RKRVBBTk9WScSGIFNUQU5LQQorU1RKRVBBTk9WScSGIFRPTUlTTEFWCitTVEpFUEnEhiBKT1NJUAorU1RKRVBJxIYgTUlKTworU1RPxaBJxIYgRFJBR0FOCitTVE/FoEnEhiBEUkFHQU4KK1NUT8WgScSGIERSQUdBTgorU1RPxaBJxIYgRFXFoEFOCitTVE/FoEnEhiBEVcWgQU4KK1NUT8WgScSGIERVxaBBTgorU1RPxaBJxIYgSkVMRU5BCitTVE/FoEnEhiBNSUxJQ0EKK1NUT8WgScSGIE5FREVMSktPCitTVE/FoEnEhiBSQURJVk9KCitTVE/FoEnEhiBTTEFWScWgQQorU1RPxaBJxIYgU1RPSkFESU4KK1NUT8WgScSGIFNUT0pBTgorU1RPxaBJxIYgVEFOSkEKK1NUT8WgScSGIFRPTUlTTEFWCitTVE/FoEnEhiBWTEFESU1JUgorU1RPxaBJxIYgVk9KSVNMQVYKK1NUT8WgScSGIFpPUkFOCitTVE/FvUlOScSGIERSQUdJTkpBCitTVE9FU0tJIEpFVlRJTQorU1RPR09WIEFOQVRPTElKIERJUEwgSU5HCitTVE9JTEpLT1ZJxIYgxb1JS0EKK1NUT0lMSktPVknEhiBEUkFHT1NMQVYKK1NUT0lMSktPVknEhiBKRUxJQ0EKK1NUT0lMSktPVknEhiBKT1ZBTgorU1RPSUxKS09WScSGIE1JTE9SQUQKK1NUT0lMSktPVknEhiBORU5BRAorU1RPSUxKS09WScSGIFNUT0pBTgorU1RPSUxLT1ZTS0kgQk9SSVMKK1NUT0lTQVZMSkVWScSGIMSQVUpBCitTVE9JU0FWTEpFVknEhiBNScSGTworU1RPSsSMRVYgTUFSSUpBCitTVE9KxIxFVknEhiBJTElKQQorU1RPSsSMRVZJxIYgU1RBTk9KS08KK1NUT0rEjEVWU0tJIEJMQUdPSkEKK1NUT0rEjEVWU0tJIFRPTUlTTEFWCitTVE9KxIxFVlNLSSBUT05FCitTVE9KxIxJxIYgxJBPUsSQRQorU1RPSsSMScSGIMSQVVJPCitTVE9KxIxJxIYgREVTSU1JUgorU1RPSsSMScSGIERVxaBBTgorU1RPSsSMScSGIEpFTEVOQQorU1RPSsSMScSGIE1JTEFOCitTVE9KxIxJxIYgTUlMQU4KK1NUT0rEjEnEhiBNSUxFTktPCitTVE9KxIxJxIYgTUlST1NMQVYKK1NUT0rEjEnEhiBOSUtPTEEKK1NUT0rEjEnEhiBTUkXEhktPCitTVE9KxIxJxIYgU1JFVEtPCitTVE9KxIxJTk9WScSGIE1BUktPCitTVE9KxIxJTk9WScSGIFNJTU8KK1NUT0rFoEnEhiDFvUlWQU4KK1NUT0rFoEnEhiDEkE9SxJBFCitTVE9KxaBJxIYgxJBPUsSQRQorU1RPSsWgScSGIEJPSktBCitTVE9KxaBJxIYgREFOxIxJS0EKK1NUT0rFoEnEhiBEUkFHSQorU1RPSsWgScSGIERVxaBBTktBCitTVE9KxaBJxIYgSkVMRU5BCitTVE9KxaBJxIYgSk9WQU4KK1NUT0rFoEnEhiBKT1ZBTgorU1RPSsWgScSGIExBWkFSCitTVE9KxaBJxIYgTUFSSUpBCitTVE9KxaBJxIYgTUFSSUpBCitTVE9KxaBJxIYgTUFSSUpBCitTVE9KxaBJxIYgTUlMQU4gRElQTCBJTkcKK1NUT0rFoEnEhiBNSUxBTgorU1RPSsWgScSGIE1JTEFOCitTVE9KxaBJxIYgTUlMSVZPSgorU1RPSsWgScSGIE1JTEtBCitTVE9KxaBJxIYgTUlMT8WgCitTVE9KxaBJxIYgTUlSQQorU1RPSsWgScSGIE5BREEKK1NUT0rFoEnEhiBOQURBCitTVE9KxaBJxIYgTkVHT1ZBTgorU1RPSsWgScSGIE5FTkFECitTVE9KxaBJxIYgTkVWRU5LQQorU1RPSsWgScSGIE5FVkVOS0EKK1NUT0rFoEnEhiBOSUtPTEEKK1NUT0rFoEnEhiBPTEdBCitTVE9KxaBJxIYgUEVUQVIKK1NUT0rFoEnEhiBQUk9LT1BJSkUKK1NUT0rFoEnEhiBQUlZPU0xBVgorU1RPSsWgScSGIFNBVkEKK1NUT0rFoEnEhiBTQVZBCitTVE9KxaBJxIYgU0FWQQorU1RPSsWgScSGIFNMQVZJQ0EKK1NUT0rFoEnEhiBTTUlMSkEKK1NUT0rFoEnEhiBTT0ZJSkEKK1NUT0rFoEnEhiBTUkJJU0xBVgorU1RPSsWgScSGIFNUQU5PSkUKK1NUT0rFoEnEhiBTVEVWQU4KK1NUT0rFoEnEhiBUQVRKQU5BCitTVE9KxaBJxIYgVkVSQQorU1RPSsWgScSGIFZJRE9TQVZBCitTVE9KxaBJxIYgVkxBRElNSVIKK1NUT0rFoEnEhiBWTEFESU1JUgorU1RPSsWgScSGIFZMQURJTUlSCitTVE9KxaBJxIYgVk9KSVNMQVYKK1NUT0rFoEnEhiBWVUpBRElOIERJUEwgSU5HCitTVE9KxaBJxIYgWkRSQVZLTworU1RPSsWgSU4gxb1BUktPCitTVE9KxaBJTiDEkE9SxJBFCitTVE9KxaBJTiDEkFVSxJBBCitTVE9KxaBJTiDEkFVSxJBJTktBCitTVE9KxaBJTiBCT0dPU0xPVgorU1RPSsWgSU4gRElNSVRSSUpFCitTVE9KxaBJTiBET0JSSVZPSgorU1RPSsWgSU4gRFJBR0FOCitTVE9KxaBJTiBEVcWgQU4KK1NUT0rFoElOIEVNSUwKK1NUT0rFoElOIEVTVEVSCitTVE9KxaBJTiBHQVZSQQorU1RPSsWgSU4gR1JPWkRBTkEKK1NUT0rFoElOIEpPVkFOCitTVE9KxaBJTiBKT1ZBTgorU1RPSsWgSU4gTEFaQVIKK1NUT0rFoElOIE1JTEFOS0EKK1NUT0rFoElOIE1JTEFOCitTVE9KxaBJTiBNSUxBTgorU1RPSsWgSU4gTUlMSUNBCitTVE9KxaBJTiBNSUxPUkFECitTVE9KxaBJTiBNSUxPVkFOCitTVE9KxaBJTiBOSUtPTEEKK1NUT0rFoElOIE9MR0EKK1NUT0rFoElOIFJBREEKK1NUT0rFoElOIFJBRE9TTEFWCitTVE9KxaBJTiBTQVZBCitTVE9KxaBJTiBTQVZBCitTVE9KxaBJTiBTSU5JxaBBCitTVE9KxaBJTiBTVkVUT1pBUgorU1RPSsWgSU4gVE9ET1IKK1NUT0rFoElOIFZBU0EKK1NUT0rFoElOIFZFUkEKK1NUT0rFoElOIFpMQVRBCitTVE9KQSBMSklMSkFOQQorU1RPSkEgTUFSSUpBCitTVE9KQSBNSUxBTkEKK1NUT0pBIFNMQcSQQU5BCitTVE9KQSBTTE9CT0RBTiBEUiBMRUtBUgorU1RPSkEgVk9KSVNMQVYKK1NUT0pBxIxJxIYgRElNSVRSSUpFCitTVE9KQcSMScSGIE1JTEFOCitTVE9KQcSMScSGIE5FTkFECitTVE9KQcSMScSGIFZMQURJU0xBVgorU1RPSkFESU5PViBSQURJVk9KCitTVE9KQURJTk9WScSGIEFOSUNBCitTVE9KQURJTk9WScSGIEJPUklTTEFWQQorU1RPSkFESU5PVknEhiBCT1JJVk9KCitTVE9KQURJTk9WScSGIERJTUlUUklKRQorU1RPSkFESU5PVknEhiBET0JSSUxBCitTVE9KQURJTk9WScSGIERSQUdBTkEgTEVLQVIKK1NUT0pBRElOT1ZJxIYgRFJBR0lOSkEKK1NUT0pBRElOT1ZJxIYgRFJBR09TTEFWCitTVE9KQURJTk9WScSGIExBWkFSCitTVE9KQURJTk9WScSGIExKVUJJxaBBCitTVE9KQURJTk9WScSGIE1JTEFOCitTVE9KQURJTk9WScSGIE1JTEFOCitTVE9KQURJTk9WScSGIE1JTEVWQQorU1RPSkFESU5PVknEhiBNSUxJQ0EKK1NUT0pBRElOT1ZJxIYgTUlMSU5LTworU1RPSkFESU5PVknEhiBNSUxLQQorU1RPSkFESU5PVknEhiBNSUxPSkUKK1NUT0pBRElOT1ZJxIYgUEVUQVIKK1NUT0pBRElOT1ZJxIYgUEVUQVIKK1NUT0pBRElOT1ZJxIYgUFVOScWgQQorU1RPSkFESU5PVknEhiBTTEFWS08KK1NUT0pBRElOT1ZJxIYgU0xPQk9EQU4KK1NUT0pBRElOT1ZJxIYgU0xPQk9EQU4KK1NUT0pBRElOT1ZJxIYgU09GSUpBCitTVE9KQURJTk9WScSGIFNPRklKQQorU1RPSkFESU5PVknEhiBTVEVWQU4KK1NUT0pBRElOT1ZJxIYgVEFUSkFOQQorU1RPSkFESU5PVknEhiBWTEFERVRBCitTVE9KQUsgWk9SSUNBCitTVE9KQUtPViBCT8W9SURBUgorU1RPSkFLT1YgTUlMT1JBRAorU1RPSkFLT1YgU1JCT1NMQVYKK1NUT0pBS09WIFNSQk9TTEFWCitTVE9KQUtPVknEhiDEkFVLQU4KK1NUT0pBS09WScSGIMSQVVJPCitTVE9KQUtPVknEhiBCUkFOSVNMQVZBCitTVE9KQUtPVknEhiBESVZOQQorU1RPSkFLT1ZJxIYgRFJBR0FOCitTVE9KQUtPVknEhiBKRUxLQQorU1RPSkFLT1ZJxIYgS09TVEEKK1NUT0pBS09WScSGIExBWkFSCitTVE9KQUtPVknEhiBNQVJHSVRBCitTVE9KQUtPVknEhiBNSUhBSkxPCitTVE9KQUtPVknEhiBNSUxBRElOS0EKK1NUT0pBS09WScSGIE1JTEEKK1NUT0pBS09WScSGIE1JTEUKK1NUT0pBS09WScSGIE1JTElTQVYKK1NUT0pBS09WScSGIE1JTE9WQU4KK1NUT0pBS09WScSGIE5JS09MQQorU1RPSkFLT1ZJxIYgUkFETUlMQQorU1RPSkFLT1ZJxIYgU0FWQU4KK1NUT0pBS09WScSGIFNMQVZLTworU1RPSkFLT1ZJxIYgU01JTEpBCitTVE9KQUtPVknEhiBTVEFOS08KK1NUT0pBS09WScSGIFNURVZPCitTVE9KQUtPVknEhiBTVkVUT1pBUgorU1RPSkFLT1ZJxIYgWk9SQU4KK1NUT0pBS09WScSGIFpPUkEKK1NUT0pBTsSMRVYgR09SREFOQQorU1RPSkFOxIxFViBJVkFOCitTVE9KQU7EjEVWIFJBRE9NSVIKK1NUT0pBTsSMRVYgU0xBVklDQQorU1RPSkFOxIxFViBWQVNBCitTVE9KQU7EjEnEhiBWTEFEQQorU1RPSkFOQUMgQlJBTktPCitTVE9KQU5BQyBNSUxFCitTVE9KQU5BQyBOSUtPTEEKK1NUT0pBTknEhiBBTkdFTElOQQorU1RPSkFOT1NLSSBEVcWgQU4KK1NUT0pBTk9TS0kgR0FWUklMCitTVE9KQU5PViBCUkFOS08KK1NUT0pBTk9WIEJSQU5LTworU1RPSkFOT1YgSVZBTgorU1RPSkFOT1YgTUlMT1ZBTgorU1RPSkFOT1YgTUlSSkFOQQorU1RPSkFOT1YgTUxBREVOIERSCitTVE9KQU5PViBOQURBCitTVE9KQU5PViBOQURBCitTVE9KQU5PViBPTEdBCitTVE9KQU5PViBSQURJVk9KRQorU1RPSkFOT1YgUkFET1ZBTgorU1RPSkFOT1YgU0FWQQorU1RPSkFOT1YgU0FWQQorU1RPSkFOT1YgU0VOS0EKK1NUT0pBTk9WIFNUQU5LTworU1RPSkFOT1YgU1RFVkFOCitTVE9KQU5PViBWRVJBCitTVE9KQU5PViBWTEFESU1JUgorU1RPSkFOT1YgVlVLSUNBCitTVE9KQU5PViBaT1JBTgorU1RPSkFOT1ZJxIYgxb1JVktPCitTVE9KQU5PVknEhiDFvUlWS08KK1NUT0pBTk9WScSGIMW9SVZLTworU1RPSkFOT1ZJxIYgxb1JVk9KSU4KK1NUT0pBTk9WScSGIMW9SVZPUkFECitTVE9KQU5PVknEhiDEkE9SxJBFCitTVE9KQU5PVknEhiDEkE9SxJBFCitTVE9KQU5PVknEhiDEkFVSxJBJQ0EKK1NUT0pBTk9WScSGIMSQVVJBCitTVE9KQU5PVknEhiBBQ0EKK1NUT0pBTk9WScSGIEFMRUtTQU5EQVIKK1NUT0pBTk9WScSGIEFMRUtTQU5EQVIKK1NUT0pBTk9WScSGIEFMRUtTQU5EQVIKK1NUT0pBTk9WScSGIEFMSk/FoEEKK1NUT0pBTk9WScSGIEFOQQorU1RPSkFOT1ZJxIYtQkFMSU5UIEJPxb1BTkEKK1NUT0pBTk9WScSGIEJMQUdPSkUKK1NUT0pBTk9WScSGIEJPxaBLTworU1RPSkFOT1ZJxIYgQk/FoEtPCitTVE9KQU5PVknEhiBCT8WgS08KK1NUT0pBTk9WScSGIEJPxb1JREFSCitTVE9KQU5PVknEhiBCT8W9SURBUgorU1RPSkFOT1ZJxIYgQk9CQU4KK1NUT0pBTk9WScSGIEJPR09MSlVCCitTVE9KQU5PVknEhiBCT1JJU0xBVkEKK1NUT0pBTk9WScSGIEJPUklTTEFWCitTVE9KQU5PVknEhiBCT1JJVk9KRQorU1RPSkFOT1ZJxIYgQk9SSVZPSgorU1RPSkFOT1ZJxIYgQlJBTklTTEFWCitTVE9KQU5PVknEhiBCUkFOSVNMQVYKK1NUT0pBTk9WScSGIEJSQU5JU0xBVgorU1RPSkFOT1ZJxIYgQlJBTktBCitTVE9KQU5PVknEhiBCUkFOS0EKK1NUT0pBTk9WScSGIEJSQU5LTworU1RPSkFOT1ZJxIYgQlJBTktPCitTVE9KQU5PVknEhiBCVURJTUlSCitTVE9KQU5PVknEhiBDVklKRVRBCitTVE9KQU5PVknEhiBEQU5JQ0EKK1NUT0pBTk9WScSGIERBTklDQQorU1RPSkFOT1ZJxIYgREFOSUxPCitTVE9KQU5PVknEhiBEQU5LQQorU1RPSkFOT1ZJxIYgREFSSU5LQSBEUgorU1RPSkFOT1ZJxIYgREVTSU1JUgorU1RPSkFOT1ZJxIYgRE9CUklMQQorU1RPSkFOT1ZJxIYgRE9CUklMQQorU1RPSkFOT1ZJxIYgRE9CUklMQQorU1RPSkFOT1ZJxIYgRE9CUklOS0EKK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0nFoEEKK1NUT0pBTk9WScSGIERSQUdJxaBBCitTVE9KQU5PVknEhiBEUkFHSUNBCitTVE9KQU5PVknEhiBEUkFHT0xKVUIKK1NUT0pBTk9WScSGIERSQUdPTEpVQgorU1RPSkFOT1ZJxIYgRFJBR09NSVIKK1NUT0pBTk9WScSGIERSQUdPU0xBVgorU1RPSkFOT1ZJxIYgRFXFoEFOCitTVE9KQU5PVknEhiBEVcWgSUNBCitTVE9KQU5PVknEhiBHQVZSSUxPCitTVE9KQU5PVknEhiBHQVZSTworU1RPSkFOT1ZJxIYgR09SQU4KK1NUT0pBTk9WScSGIEdSQURJTUlSCitTVE9KQU5PVknEhiBJVktPCitTVE9KQU5PVknEhiBKQUtPVgorU1RPSkFOT1ZJxIYgSkFTTUlOQQorU1RPSkFOT1ZJxIYtSkVGVE9WScSGIEJPU0lMSktBCitTVE9KQU5PVknEhiBKRUxFTkEKK1NUT0pBTk9WScSGIEpFTEVOQQorU1RPSkFOT1ZJxIYgSkVMSUNBCitTVE9KQU5PVknEhiBKT1ZBTgorU1RPSkFOT1ZJxIYgSk9WQU4KK1NUT0pBTk9WScSGIEpVTEtBCitTVE9KQU5PVknEhiBLQVRJQ0EKK1NUT0pBTk9WScSGIEtPTlNUQU5USU4KK1NUT0pBTk9WScSGIEtPU1RBCitTVE9KQU5PVknEhiBLUlNUQQorU1RPSkFOT1ZJxIYgTEFaQVIKK1NUT0pBTk9WScSGIExBWkFSCitTVE9KQU5PVknEhiBMRU9OQQorU1RPSkFOT1ZJxIYgTEpVQknFoEEKK1NUT0pBTk9WScSGIExKVUJJQ0EKK1NUT0pBTk9WScSGIExKVUJJTktPCitTVE9KQU5PVknEhiBMSlVCT01JUgorU1RPSkFOT1ZJxIYgTEpVQk9NSVIKK1NUT0pBTk9WScSGIE1BUklKQQorU1RPSkFOT1ZJxIYgTUFSS08KK1NUT0pBTk9WScSGIE1JxaBBCitTVE9KQU5PVknEhiBNSUxBSworU1RPSkFOT1ZJxIYgTUlMQU4KK1NUT0pBTk9WScSGIE1JTEFOCitTVE9KQU5PVknEhiBNSUxFVEEKK1NUT0pBTk9WScSGIE1JTEUKK1NUT0pBTk9WScSGIE1JTElDQQorU1RPSkFOT1ZJxIYgTUlMSUNBCitTVE9KQU5PVknEhiBNSUxJVk9KRQorU1RPSkFOT1ZJxIYgTUlMS0EKK1NUT0pBTk9WScSGIE1JTE/FoAorU1RPSkFOT1ZJxIYgTUlMT8WgCitTVE9KQU5PVknEhiBNSUxPxaAKK1NUT0pBTk9WScSGIE1JTE9WQU4KK1NUT0pBTk9WScSGIE1JTE9WQU4KK1NUT0pBTk9WScSGIE1JTE9WQU4KK1NUT0pBTk9WScSGIE1JT0RSQUcKK1NUT0pBTk9WScSGIE1JT0RSQUcKK1NUT0pBTk9WScSGIE1JT01JUgorU1RPSkFOT1ZJxIYgTUlSQQorU1RPSkFOT1ZJxIYgTUlSSkFOQQorU1RPSkFOT1ZJxIYgTUlSSkFOQQorU1RPSkFOT1ZJxIYgTUlST0xKVUIKK1NUT0pBTk9WScSGIE1JUk9TTEFWCitTVE9KQU5PVknEhiBNSVJPU0xBVgorU1RPSkFOT1ZJxIYgTUlST1NMQVYKK1NUT0pBTk9WScSGIE1JUk9TTEFWCitTVE9KQU5PVknEhiBNSVJPCitTVE9KQU5PVknEhiBNT03EjElMTworU1RPSkFOT1ZJxIYgTU9NSVIKK1NUT0pBTk9WScSGIE5BREEKK1NUT0pBTk9WScSGIE5BREEKK1NUT0pBTk9WScSGIE5BU1RBUworU1RPSkFOT1ZJxIYgTkVERUxKS08KK1NUT0pBTk9WScSGIE5FTkFECitTVE9KQU5PVknEhiBORU5BRAorU1RPSkFOT1ZJxIYgTklLSUNBCitTVE9KQU5PVknEhiBOSUtPTEEKK1NUT0pBTk9WScSGIE5JS09MQQorU1RPSkFOT1ZJxIYgTk9WSUNBCitTVE9KQU5PVknEhiBOT1ZJQ0EKK1NUT0pBTk9WScSGIE9CUkFECitTVE9KQU5PVknEhiBPTEdBCitTVE9KQU5PVknEhiBPU1RPSkEKK1NUT0pBTk9WScSGIFBFVEFSCitTVE9KQU5PVknEhiBQRVRBUgorU1RPSkFOT1ZJxIYgUEVUQVIKK1NUT0pBTk9WScSGIFBFVEFSCitTVE9KQU5PVknEhiBQUlZBTgorU1RPSkFOT1ZJxIYgUkFERQorU1RPSkFOT1ZJxIYgUkFERQorU1RPSkFOT1ZJxIYgUkFESVNBVgorU1RPSkFOT1ZJxIYgUkFETUlMQQorU1RPSkFOT1ZJxIYgUkFETUlMQQorU1RPSkFOT1ZJxIYgUkFETUlMQQorU1RPSkFOT1ZJxIYgUkFETUlMTworU1RPSkFOT1ZJxIYgUkFET0lDQQorU1RPSkFOT1ZJxIYgUkFET01JUgorU1RPSkFOT1ZJxIYgUkFET01JUgorU1RPSkFOT1ZJxIYgUkFET1ZBTgorU1RPSkFOT1ZJxIYgUlXFvUlDQQorU1RPSkFOT1ZJxIYgU0HFoEEKK1NUT0pBTk9WScSGIFNBVkEKK1NUT0pBTk9WScSGLVNJTUnEhiBWRVNOQQorU1RPSkFOT1ZJxIYgU0xBVktPCitTVE9KQU5PVknEhiBTTEFWS08KK1NUT0pBTk9WScSGIFNMQVZLTworU1RPSkFOT1ZJxIYgU0xBVk9KS0EKK1NUT0pBTk9WScSGIFNMQVZPTEpVQgorU1RPSkFOT1ZJxIYgU0xPQk9EQU4KK1NUT0pBTk9WScSGIFNMT0JPREFOCitTVE9KQU5PVknEhiBTTE9CT0RBTgorU1RPSkFOT1ZJxIYgU1LEkEFOCitTVE9KQU5PVknEhiBTUkJPTEpVQgorU1RPSkFOT1ZJxIYgU1JFVEVOCitTVE9KQU5PVknEhiBTUkVURU4KK1NUT0pBTk9WScSGIFNUQU5JU0xBViBEUiBMRUtBUgorU1RPSkFOT1ZJxIYgU1RBTk9KRQorU1RPSkFOT1ZJxIYgU1RBTk9KRQorU1RPSkFOT1ZJxIYgU1RFVkFOIERSCitTVE9KQU5PVknEhiBTVEVWQU4KK1NUT0pBTk9WScSGIFNURVZBTgorU1RPSkFOT1ZJxIYgU1RFVkFOCitTVE9KQU5PVknEhiBTVEVWQU4KK1NUT0pBTk9WScSGIFNUT0pBTgorU1RPSkFOT1ZJxIYgU1RPSkFOCitTVE9KQU5PVknEhiBTVE9MRQorU1RPSkFOT1ZJxIYgU1ZFVElTTEFWCitTVE9KQU5PVknEhiBTVkVUTEFOQQorU1RPSkFOT1ZJxIYgU1ZFVE9aQVIKK1NUT0pBTk9WScSGIFRJSE9NSVIgRFIgSU5HCitTVE9KQU5PVknEhiBUSUhPTUlSCitTVE9KQU5PVknEhiBUT01JU0xBViBNUgorU1RPSkFOT1ZJxIYgVE9NSVNMQVYKK1NUT0pBTk9WScSGIFZBTEVSSUpBCitTVE9KQU5PVknEhiBWQVNJTElKRQorU1RPSkFOT1ZJxIYgVkFTTworU1RPSkFOT1ZJxIYgVkVMSU1JUgorU1RPSkFOT1ZJxIYgVkVMSU1JUgorU1RPSkFOT1ZJxIYgVkVMSktPCitTVE9KQU5PVknEhiBWRVJBCitTVE9KQU5PVknEhiBWRVJBCitTVE9KQU5PVknEhiBWRVNOQQorU1RPSkFOT1ZJxIYgVkVTTkEKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQVNUSU1JUgorU1RPSkFOT1ZJxIYgVk9KSVNMQVYKK1NUT0pBTk9WScSGIFZVS0HFoElOCitTVE9KQU5PVknEhiBaRFJBVktPCitTVE9KQU5PVknEhiBaT1JBTiBEUgorU1RPSkFOT1ZJxIYgWk9SQU4KK1NUT0pBTk9WScSGIFpPUkFOCitTVE9KQU5PVknEhiBaT1JBTgorU1RPSkFOT1ZJxIYgWk9SS0EKK1NUT0pBTk9WU0tJIMW9SVZLTworU1RPSkFOT1ZTS0kgQU5EUklKQQorU1RPSkFOT1ZTS0kgQklMSkFOQQorU1RPSkFOT1ZTS0kgQlJBTklNSVIKK1NUT0pBTk9WU0tJIERSQUdBTiBESVBMIE9FQworU1RPSkFOT1ZTS0kgSk9SREFOCitTVE9KQU5PVlNLSSBMSlVCScWgQQorU1RPSkFOT1ZTS0kgTEpVQklDQQorU1RPSkFOT1ZTS0kgUEFWTEUKK1NUT0pBTk9WU0tJIFBBVkxFCitTVE9KQU5PVlNLSSBTQU5FCitTVE9KQU5PVlNLSSBTTEFWSUNBCitTVE9KQU5PVlNLSSBUT01PCitTVE9KRVYgU1RPScSMS08KK1NUT0pJxIxJxIYgREVTQU5LQQorU1RPSknEjEnEhiBHTElHT1JJSkUKK1NUT0pJxIxJxIYgSkFTTUlOQQorU1RPSknEjEnEhiBKQVNNSU5BCitTVE9KScSMScSGIE1JTElDQQorU1RPSknEjEnEhiBST1NBCitTVE9KScSMScSGIFNMQVZLTworU1RPSknEjEnEhiBUT0RPUkEKK1NUT0pJxaBJxIYgxJBVUklDQSBEUgorU1RPSknEhiDEkFVSxJBJTktBCitTVE9KScSGLUFQScSGIFNMQVZLQQorU1RPSknEhiBCT0dPTEpVQgorU1RPSknEhiBCT0dPTEpVQgorU1RPSknEhiBCT0dPTEpVQgorU1RPSknEhiBCUkFOS0EKK1NUT0pJxIYgRE9CUklWT0oKK1NUT0pJxIYgRFJBR0lOSkEKK1NUT0pJxIYgRFJBR09MSlVCCitTVE9KScSGIERVxaBBTgorU1RPSknEhiBHQVZSQQorU1RPSknEhiBHT0pLTworU1RPSknEhiBHUkFESU1JUgorU1RPSknEhiBJxaBUVkFOCitTVE9KScSGIEpVTElKQU5BCitTVE9KScSGIEtBVElDQQorU1RPSknEhiBMSlVCSU5LQQorU1RPSknEhiBNQVJBCitTVE9KScSGIE1BUklOS08KK1NUT0pJxIYgTUlMQU4KK1NUT0pJxIYgTUlMRU5BCitTVE9KScSGIE1JTEUKK1NUT0pJxIYgTUlMSUNBCitTVE9KScSGIE1JT0RSQUcgRFIKK1NUT0pJxIYgTUlPTUlSCitTVE9KScSGIE1JUktPCitTVE9KScSGIE1MQURFTiBEUiBMRUtBUgorU1RPSknEhiBORURFTEpLTworU1RPSknEhiBOSUtPTEEKK1NUT0pJxIYgU0lOScWgQSBEUgorU1RPSknEhiBTTEFWS0EKK1NUT0pJxIYgU1RBTklTTEFWCitTVE9KScSGIFNWRVRMQU5BCitTVE9KScSGIFNWRVRPWkFSCitTVE9KScSGIFRPRE9SCitTVE9KScSGIFZBU0EKK1NUT0pJxIYgVlXEjEtPCitTVE9KScSGIFZVS0HFoElOCitTVE9KScSGIFpPUkFOCitTVE9KScSGRVZJxIYgU0xPQk9EQU4KK1NUT0pJQyBKT05FTAorU1RPSklMSktPVknEhiBCT8W9SURBUgorU1RPSklMSktPVknEhiBCT8W9SURBUgorU1RPSklMSktPVknEhiBCUkFOSU1JUiBESVBMIE9FQworU1RPSklMSktPVknEhiBEQU1JUgorU1RPSklMSktPVknEhiBEQVJLQQorU1RPSklMSktPVknEhiBHT1JBTiBEUgorU1RPSklMSktPVknEhiBHT1JEQU5BCitTVE9KSUxKS09WScSGIEpFTElDQQorU1RPSklMSktPVknEhiBMSlVCScWgQQorU1RPSklMSktPVknEhiBUT01JU0xBVgorU1RPSklMSktPVknEhiBUT01JU0xBVgorU1RPSklMSktPVknEhiBWSUtUT1IKK1NUT0pJTEtPVknEhiBNSUxFVElKRQorU1RPSklMS09WScSGIE1JTEUKK1NUT0pJTEtPVknEhiBTVE9KQU4KK1NUT0pJTEtPVknEhiBWQUxFUklKQQorU1RPSklMT1YgUkFET1NMQVYKK1NUT0pJTE9WScSGIE1JTEFOCitTVE9KSUxPVknEhiBNSUxBTgorU1RPSklOIMSMRURPTUlSCitTVE9KSU4gTUlMSVZPSiBEUiBQUk9GCitTVE9KSU4gTUlMSVZPSgorU1RPSklOT1Ygxb1JVktPCitTVE9KSU5PViBCUkFOS08KK1NUT0pJTk9WIERVxaBBTgorU1RPSklOT1YgSk9WQU4KK1NUT0pJTk9WIEtBVEFSSU5BCitTVE9KSU5PViBLQVRJQ0EKK1NUT0pJTk9WIExKVUJJQ0EKK1NUT0pJTk9WIE1JTEVOS08KK1NUT0pJTk9WIFpPUklDQQorU1RPSklOT1ZJxIYgR09SQU4KK1NUT0pJTk9WScSGIE1BUklDQQorU1RPSklTQVZMSkVWScSGIERVxaBBTgorU1RPSklTQVZMSkVWScSGIEpPVkFOS0EKK1NUT0pJU0FWTEpFVknEhiBNSUxBTgorU1RPSklTQVZMSkVWScSGIE1JTEUKK1NUT0pJU0FWTEpFVknEhiBTTE9CT0RBTgorU1RPSklTQVZMSkVWScSGIFNMT0JPREFOCitTVE9KSVNBVkxKRVZJxIYgVkVMSktPCitTVE9KS09WIMW9QVJLTworU1RPSktPViDFvUlWT1JBRAorU1RPSktPViBBTEVLU0FOREFSCitTVE9KS09WIEJPR0RBTgorU1RPSktPViBCT1JJVk9KCitTVE9KS09WIEJSQU5JU0xBVgorU1RPSktPViBESU1JVFJJSkUKK1NUT0pLT1YgRFJBR0lOQQorU1RPSktPViBJVkFOCitTVE9KS09WIEpFTElDQQorU1RPSktPViBKRUxLQQorU1RPSktPViBKT1ZBTgorU1RPSktPViBKVUxLQQorU1RPSktPViBLQVRJQ0EKK1NUT0pLT1YgTEpVQklDQQorU1RPSktPViBNSUxBTgorU1RPSktPViBNSUxBTgorU1RPSktPViBNSUxBTgorU1RPSktPViBNSUxFTkEKK1NUT0pLT1YgTUlMRVZLQQorU1RPSktPViBNSUxFCitTVE9KS09WIE1JT0RSQUcKK1NUT0pLT1YgTUlPTUlSCitTVE9KS09WIE1JUk9TTEFWCitTVE9KS09WIE1MQURFTgorU1RPSktPViBORUdPVkFOCitTVE9KS09WIFJBRElWT0oKK1NUT0pLT1YgUkFESVZPSgorU1RPSktPViBTTE9CT0RBTgorU1RPSktPViBTVEVWQU4KK1NUT0pLT1YgU1RPSkFOCitTVE9KS09WIFNUT0pBTgorU1RPSktPViBUT0RPUgorU1RPSktPViBWRVJJQ0EKK1NUT0pLT1YgVlVLT1NBVkEKK1NUT0pLT1YgWkRSQVZLTworU1RPSktPVknEhi3FoEFMQk9UIEJPSkFOQQorU1RPSktPVknEhiDFvUlWS0EKK1NUT0pLT1ZJxIYgxb1JVk9UQQorU1RPSktPVknEhiDEkE9SxJBFCitTVE9KS09WScSGIMSQT1LEkEUKK1NUT0pLT1ZJxIYgQUxFS1NBTkRBUgorU1RPSktPVknEhiBBTEVLU0FOREFSCitTVE9KS09WScSGIEFMRUtTQU5EQVIKK1NUT0pLT1ZJxIYgQU7EkEVMS0EKK1NUT0pLT1ZJxIYgQU5BTklKRQorU1RPSktPVknEhiBBTlRPTklKRQorU1RPSktPVknEhiBCTEFHT0pFCitTVE9KS09WScSGIEJPxb1JREFSCitTVE9KS09WScSGIEJPxb1JREFSCitTVE9KS09WScSGIEJPUklTTEFWCitTVE9KS09WScSGIEJPUktPCitTVE9KS09WScSGIEJSQU5JU0xBVgorU1RPSktPVknEhiBEUkFHQU4KK1NUT0pLT1ZJxIYgRFJBR0FOCitTVE9KS09WScSGIERSQUdJTkpBCitTVE9KS09WScSGIERSQUdPTEpVQgorU1RPSktPVknEhiBEUkFHT0xKVUIKK1NUT0pLT1ZJxIYgRFXFoEFOS0EKK1NUT0pLT1ZJxIYgRFXFoEFOS0EKK1NUT0pLT1ZJxIYgRFXFoEFOCitTVE9KS09WScSGIERVxaBBTgorU1RPSktPVknEhiBEVcWgQU4KK1NUT0pLT1ZJxIYgR09SREFOQQorU1RPSktPVknEhiBHT1JEQU5BCitTVE9KS09WScSGIEdSQURJTUlSCitTVE9KS09WScSGIElMSUpBCitTVE9KS09WScSGIElWQU4KK1NUT0pLT1ZJxIYgSkVMRU5BCitTVE9KS09WScSGIEpFTEVOQQorU1RPSktPVknEhiBKRUxFTkEKK1NUT0pLT1ZJxIYtSk9WQU5PVknEhiBTTEFWSUNBCitTVE9KS09WScSGIEpPVkFOCitTVE9KS09WScSGIEpPVkFOCitTVE9KS09WScSGIEtBVElDQQorU1RPSktPVknEhiBLVVpNQU4KK1NUT0pLT1ZJxIYgTEVOS0EKK1NUT0pLT1ZJxIYgTUFSSUpBCitTVE9KS09WScSGIE1JTEFOCitTVE9KS09WScSGIE1JTEFOCitTVE9KS09WScSGIE1JTEFOCitTVE9KS09WScSGIE1JTEVOS08KK1NUT0pLT1ZJxIYgTUlMRU5LTworU1RPSktPVknEhiBNSUxFTlRJSkUKK1NUT0pLT1ZJxIYgTUlMT8WgCitTVE9KS09WScSGIE1JTE9WQU4KK1NUT0pLT1ZJxIYgTUlMVEVOCitTVE9KS09WScSGIE1JTFVUSU4KK1NUT0pLT1ZJxIYgTUlPRFJBRworU1RPSktPVknEhiBNSU9EUkFHCitTVE9KS09WScSGIE1JUkpBTkEKK1NUT0pLT1ZJxIYgTUlSSkFOQQorU1RPSktPVknEhiBNSVJKQU5BCitTVE9KS09WScSGIE1JUkpBTkEKK1NUT0pLT1ZJxIYgTUlSSkFOQQorU1RPSktPVknEhiBNSVJLTworU1RPSktPVknEhiBNSVJPU0xBVgorU1RPSktPVknEhiBNTEFERU4KK1NUT0pLT1ZJxIYgTkFEQQorU1RPSktPVknEhiBQQVZMRQorU1RPSktPVknEhiBQQVZMRQorU1RPSktPVknEhiBQRVRBUgorU1RPSktPVknEhiBQRVRBUgorU1RPSktPVknEhiBQRVRBUgorU1RPSktPVknEhiBQUkVEUkFHIERSCitTVE9KS09WScSGIFJBREVOS08KK1NUT0pLT1ZJxIYgUkFESVNBViBESVBMIElORworU1RPSktPVknEhiBSQURJVk9KRQorU1RPSktPVknEhiBSQURNSUxBCitTVE9KS09WScSGIFJBRE1JTEEKK1NUT0pLT1ZJxIYgUkFET01JUgorU1RPSktPVknEhiBSQURPU0xBVktBCitTVE9KS09WScSGIFJBRE9TTEFWCitTVE9KS09WScSGIFJBRE9WQU4gRElQTCBJTkcKK1NUT0pLT1ZJxIYgU0FOSkEKK1NUT0pLT1ZJxIYgU0xBVktBCitTVE9KS09WScSGIFNMQVZPTEpVQgorU1RPSktPVknEhiBTTUlMSktBCitTVE9KS09WScSGIFNUT0pBRElOCitTVE9KS09WScSGIFRFT0RPUgorU1RPSktPVknEhiBWRUxJTUlSCitTVE9KS09WScSGIFZFTEpLTworU1RPSktPVknEhiBWRVJPU0xBVgorU1RPSktPVknEhiBWTEFESU1JUgorU1RPSktPVknEhiBWTEFESU1JUgorU1RPSktPVknEhiBaQUdPUktBCitTVE9KS09WScSGIFpMQVRJQk9SCitTVE9KS09WScSGIFpPUkFOCitTVE9KS09WU0tJIERSQUdBTgorU1RPSktPVlNLSSBEUkFHQU4KK1NUT0pMT1ZJxIYgxJBVTEEKK1NUT0pNRU5PVknEhiDFvUlWS08KK1NUT0pNRU5PVknEhiBJVkFOCitTVE9KTUVOT1ZJxIYgSk9WQU4KK1NUT0pNRU5PVknEhiBNQVJJSkEKK1NUT0pNRU5PVknEhiBWTEFEQQorU1RPSk1FTk9WScSGIFZPSklTTEFWCitTVE9KTknEhiBCT8WgS08KK1NUT0pOScSGIERSQUdBTgorU1RPSk5JxIYgRFJBR0lDQQorU1RPSk5JxIYgRFXFoEFOCitTVE9KTknEhiBNSUxJQ0EKK1NUT0pOScSGIE1JUktPCitTVE9KTknEhiBQQVZMRQorU1RPSk5JxIYgUkFET01JUgorU1RPSk5JxIYgU0xPQk9EQU4KK1NUT0pOT1YgREFNSkFOCitTVE9KT1ZJxIYgUkFET01JUgorU1RPSk9WScSGIFRPTUHFoAorU1RPSlNBVkxKRVZJxIYgTklLT0xBCitTVE9KU0FWTEpFVknEhiBQRVRBUgorU1RPSlNBVkxKRVZJxIYgU1RFVkFOCitTVE9KU0FWTEpFVknEhiBUSUhPTUlSCitTVE9LQU5PVknEhiDEkE9SxJBFCitTVE9LQU5PVknEhiBNSUxPUkFECitTVE9LScSGIMSQT1LEkEUKK1NUT0tJxIYgRFJBR09MSlVCCitTVE9LScSGIERVxaBBTgorU1RPS0nEhiBKT1ZJQ0EKK1NUT0tJxIYgTUlMQU4KK1NUT0tJxIYgVE9ET1IKK1NUT0tJTiBBTEVTQU5EQVIKK1NUT0tJTiBCUkFOS08KK1NUT0tJTiBNSUxJVk9KCitTVE9LSU4gU0xPQk9EQU4KK1NUT0tJTiBTVE9KQU4KK1NUT0tVxIZBIERBTkUKK1NUT0tVxIZBIE1JSEFKTE8KK1NUT0tVxIZBIE1JTEFOCitTVE9LVcSGQSBNSUxBTgorU1RPS1XEhkEgTUlMQU4KK1NUT0tVxIZBIE1JUkpBTkEKK1NUT0tVxIZBIE5JS09MQQorU1RPS1XEhkEgUEVUQVIKK1NUT0xFU0tJIE1JVElKQQorU1RPTEnEhiDEkFVSTworU1RPTEnEhiBCSVNFUktBCitTVE9MScSGIERVxaBBTgorU1RPTEnEhiBEVcWgQU4KK1NUT0xJxIYgRFXFoEFOCitTVE9MScSGIEtBVElDQQorU1RPTEnEhiBMSlVCSUNBCitTVE9MScSGIE1JUkpBTkEKK1NUT0xJxIYgTUlST1NMQVYKK1NUT0xJxIYgTUlST1NMQVYKK1NUT0xJxIYgTkVOQUQKK1NUT0xJxIYgUEVUQVIgRFIKK1NUT0xJxIYgU1JFVEEKK1NUT0xJxIYgU1RFVkFOCitTVE9QSU7FoEVLIFNUQU5JU0xBVgorU1RSQcW9TUXFoFRFUiBCT8W9SURBUgorU1RSQcW9TUXFoFRFUiBEVcWgQU4KK1NUUkHFvU1FxaBURVJPViBESU1JVFJJSkUKK1NUUkHFvU1FxaBURVJPViBNSUxJQ0EKK1NUUkHFvU1FxaBURVJPViBNSVJPU0xBViBESVBMIElORworU1RSQcW9TUXFoFRFUk9WIFNBVkEKK1NUUkHFvU1FxaBURVJPViBTT0ZJSkEKK1NUUkHFvU1FxaBURVJPViBTVEVWQU4KK1NUUkFDRU5TS0kgTUlST1NMQVYKK1NUUkFDRU5TS0kgU1RFVkFOCitTVFJBR0EgU1RKRVBBTgorU1RSQUhJTknEhiBLUlNUT01JUgorU1RSQUpJTiBCUkFOSVNMQVZBCitTVFJBSklOIEpFTEVOQQorU1RSQUpJTiBOQURBCitTVFJBSklOIFJBRE9WQU4KK1NUUkFKSU4gU1RPSkFOCitTVFJBSklOIFZFTElaQVIKK1NUUkFKSU5JxIYgQk/FvUlEQVIKK1NUUkFKSU5JxIYgSVJFTkEKK1NUUkFKSU5JxIYgSk9WQU4KK1NUUkFKSU5JxIYgTEFaQVIKK1NUUkFKSU5JxIYgTUlMVVRJTgorU1RSQUpOScSGIEJSQU5LTworU1RSQUpOScSGIERVxaBBTgorU1RSQUpOScSGIEdSVUpBCitTVFJBSk5JxIYgTUFSSUpBCitTVFJBSk5JxIYgTUlMQU5LTworU1RSQUpOScSGIE1JTEFOCitTVFJBSk5JxIYgTUxBREVOCitTVFJBSk5JxIYgUEFMCitTVFJBSk5JxIYgVE/FoEEKK1NUUkFOScSGIEpPVklDQQorU1RSQU5KQUtPVknEhiDFvUlWT0pJTgorU1RSQU5KQU5BQyBNSUxPUkFECitTVFJBTkpBTkFDIE1JUk9TTEFWCitTVFJCQcSMS0kgRlJJRE9MSU5BCitTVFJCQcSMS0kgU1RFVkFOCitTVFJCQUQgU1RFVkFOCitTVFJCQVQgVE9NSVNMQVYKK1NUUkVIT1ZTS0kgWlVaQU5BCitTVFJFTEUgUkHFoEEKK1NUUkVaT1NLSSBKT1ZBTgorU1RSRVpPU0tJIE1JTEVTQQorU1RSRVpPU0tJIE5JS09ESU5LQQorU1RSRVpPU0tJIFZMQURJTUlSCitTVFJHQVIgUEVUQVIKK1NUUknEjEVWScSGIERBUkEKK1NUUknEjEVWScSGIERVxaBBTgorU1RSScSMRVZJxIYgSk9TSVAKK1NUUknEjEVWScSGIEpVTEtBCitTVFJJxIxFVknEhiBLU0VOSUpBCitTVFJJxIxFVknEhiBMSlVCT01JUgorU1RSScSMRVZJxIYgTUxBREVOCitTVFJJxIxFVknEhiBSQURJVk9KCitTVFJJxIxFVknEhiBTQVZLQQorU1RSScSMRVZJxIYgVkVMSU1JUgorU1RSScSMRVZJxIYgVkxBRElTTEFWQQorU1RSScSMS08gVkxBRElNSVIKK1NUUklCRVIgRU1JTAorU1RSSUJFUiBGUkFOSkEKK1NUUklCRVIgRlJBTkpBCitTVFJJQkVSIE1JSEFKTE8KK1NUUklCRVIgU1RFVkFOCitTVFJJQkVSIFNURVZBTgorU1RSSUNLSSBJVkFOCitTVFJJS0EgxJBPUsSQRQorU1RSSUtBIEJSQU5LTworU1RSSUtPVknEhiDEhkFNSUwKK1NUUklLT1ZJxIYgQkVMSQorU1RSSUtPVknEhiBKQU5PxaAKK1NUUklLT1ZJxIYgTUlMT1NBVgorU1RSSUtPVknEhiBSQURPU0xBVgorU1RSSUtPVknEhiBWRVJBCitTVFJJTkVLQSBLQVRJQ0EKK1NUUklaT1ZJxIYgTEpJTEpBTkEKK1NUUklaT1ZJxIYgTUFLU0lNCitTVFJVR0FSIMW9QVJLTworU1RSVUdBUiDFvUlWT1JBRAorU1RSVUdBUiBHT1JBTgorU1RSVUdBUiBKT1NJUAorU1RSVUdBUiBNSUxVVElOCitTVFJVR0FSIFBBVkxFCitTVFJVR0FSIFJBRE1JTEEKK1NUUlVHQVIgU09OSkEKK1NUUlVHQVIgVk9KSVNMQVYKK1NUUlVHQVIgWkFSSUpBCitTVFJVSEFSIEFOQQorU1RSVUhBUiBKQVJNSUxBCitTVFJVSEFSIEpPU0lQCitTVFJVSEFSIE1BR0RBCitTVFJVSEFSSUsgSk9TSVAKK1NUUlVIQVJJSyBKT1NJUAorU1RSVUhBUklLLUpVUiBSQVNUSVNMQVYKK1NUUlVIQVJJSyBKVVJBSiBEUgorU1RSVUhBUklLIE1BUkpFTkEKK1NUUlVIQVJJSyBNQVRPCitTVFJVSEFSSUsgUEFWTEUKK1NUUlVLQU4gRE9NQUdPSiBEUgorU1RSVU5KQcWgIEdPUkRBTkEKK1NUVUJMSU5BQyBNSUxPxaAKK1NUVURFTiDFvUlWT1JBRAorU1RVTEFSIERVxaBBTgorU1RVUEFSIMSMRURBCitTVFVQQVIgxb1FTEpLTworU1RVUEFSIMW9SVZLTworU1RVUEFSIMSQT1LEkEUKK1NUVVBBUiBCT0dPTEpVQgorU1RVUEFSIEJPUk8KK1NUVVBBUiBCT1NJTEpLQQorU1RVUEFSIEJSQU5LTworU1RVUEFSIEJSQU5LTworU1RVUEFSIEJSQU5LTworU1RVUEFSIENWRVRBCitTVFVQQVIgREVTQU5LQQorU1RVUEFSIERSQUdBTgorU1RVUEFSIERSQUdPCitTVFVQQVIgRFXFoEFOS0EKK1NUVVBBUiBEVcWgQU4KK1NUVVBBUiBEVcWgQU4KK1NUVVBBUiBEVcWgQU4KK1NUVVBBUiBJTElKQQorU1RVUEFSIEpBTkpBCitTVFVQQVIgSkFOS08KK1NUVVBBUiBKT1ZPCitTVFVQQVIgTEpVQklOS0EKK1NUVVBBUiBNQVJLTworU1RVUEFSIE1BUktPCitTVFVQQVIgTUlMSkEKK1NUVVBBUiBNSUxLQQorU1RVUEFSIE1JTE9SQUQKK1NUVVBBUiBNSUxPUkFECitTVFVQQVIgTUlSSkFOQQorU1RVUEFSIE1JUktPCitTVFVQQVIgTklLT0xBCitTVFVQQVIgUEVSTworU1RVUEFSIFBFVEFSCitTVFVQQVIgUEVUQVIKK1NUVVBBUiBSQURBCitTVFVQQVIgUkFERQorU1RVUEFSIFJBSktPCitTVFVQQVIgUkFKS08KK1NUVVBBUiBSQUpLTworU1RVUEFSIFNMQcSQQU5BCitTVFVQQVIgVkxBRElNSVIKK1NUVVBBUiBaRFJBVktPCitTVFVQQVIgWk9SQU4KK1NUVVBBVlNLSSBBTkRSRUoKK1NUVVBBVlNLSSBKQU5LTworU1RVUEnEhiBTTEFWRU5LTworU1RVUElOIElWQU4KK1NUVVBJTiBaVk9OSU1JUgorU1RVUkFSIFpEUkFWS08KK1NUVk9SScSGIFBBVkxFCitTVcSMRVZJxIYgREFORSBESVBMIFBSQVZOSUsKK1NVxIxFVknEhiBEUkFHQU4KK1NVxIxFVknEhiBEVcWgQU4KK1NVxIxFVknEhiBNQVJJSkEKK1NVxIxFVknEhiBNQVJUQQorU1XEjEVWScSGIE1JUk9TTEFWCitTVcSMRVZJxIYgTklLT0xBCitTVcSMRVZJxIYgTklLT0xBCitTVcSMRVZJxIYgUlXFvUlDQQorU1XFoEEgREFOSUxPCitTVcWgQSBNQVJLTworU1XFoEEgTUlMSUpBTkEKK1NVxaBBQyBWSU5LTworU1XFoEnEhiBHT1JEQU5BCitTVcWgScSGIEhJTERBCitTVcWgScSGIFJBREEKK1NVxaBJxIYgVlVKQU5BCitTVcSQSSBKT1ZBTgorU1XEkEkgTUFSSUpBCitTVcSQSSBTVEFOS08KK1NVQkHFoEnEhiBCT1JJU0xBVgorU1VCQcWgScSGIEpVTEtBCitTVUJBxaBJxIYgTEFaQVIKK1NVQkHFoEnEhiBNQVJLTworU1VCQcWgScSGIE1JTEFOCitTVUJBxaBJxIYgTklLT0xBCitTVUJBxaBJxIYgUEVSTworU1VCQcWgScSGIFBFVEFSIE1SCitTVUJBxaBJxIYgUkFKS08KK1NVQkHFoEnEhiBTSU1BCitTVUJBxaBJxIYgU1RPSkFOCitTVUJBSktPViBSQURPSktBCitTVUJBS09WIEtPVklMSktBCitTVUJBS09WIFNNSUxKS0EKK1NVQkFLT1YgU09GSUpBCitTVUJBTk9WScSGIE1JTEFOCitTVUJJxIYgxb1BUktPCitTVUJJxIYgxJBPUsSQRQorU1VCScSGIEFMRUtTQU5EQVIKK1NVQknEhiBBTsSQRUxLQQorU1VCScSGIEJPxb1FTkEKK1NVQknEhiBCT8W9SURBUgorU1VCScSGIEJSQU5JU0xBVgorU1VCScSGIERBTUlSCitTVUJJxIYgREFSQQorU1VCScSGIERJTUlUUklKRQorU1VCScSGIERVxaBBTgorU1VCScSGIEdPUkRBTkEKK1NVQknEhiBKT1ZBTgorU1VCScSGIEtPU1RBCitTVUJJxIYgTEFaQVIKK1NVQknEhiBMQVpBUgorU1VCScSGIExBWkFSCitTVUJJxIYgTEpVQklDQQorU1VCScSGIExKVUJPTUlSCitTVUJJxIYgTEpVQk9NSVIKK1NVQknEhiBMSlVCT01JUgorU1VCScSGIE1BUklKQQorU1VCScSGIE1BUktPCitTVUJJxIYgTUFSS08KK1NVQknEhiBNSUxBTgorU1VCScSGIE1JUk9TTEFWQQorU1VCScSGIE1MQURFTgorU1VCScSGIE5BREEKK1NVQknEhiBORURFTEpLQQorU1VCScSGIE5FREVMSktPCitTVUJJxIYgTk9WQUsKK1NVQknEhiBPTEdBCitTVUJJxIYgUEFKQQorU1VCScSGIFJBRElWT0oKK1NVQknEhiBSQURPU0xBVgorU1VCScSGIFNNSUxKQQorU1VCScSGIFNORcW9QU5BCitTVUJJxIYgU1RFVkFOCitTVUJJxIYgWk9SQU4KK1NVQk9UScSMS0kgQlJBTklTTEFWCitTVUJPVEnEjEtJIEdPUklDQQorU1VCT1RJxIxLSSBLQVRJQ0EKK1NVQk9UScSMS0kgTFVLQQorU1VCT1RJxIxLSSBNSVJKQU5BCitTVUJPVEnEjEtJIE1JUktPCitTVUJPVEnEjEtJIE5BREEKK1NVQk9UScSMS0kgTkVTVE9SIERJUEwgSU5HCitTVUJPVEnEjEtJIFJBRE9WQU4KK1NVQk9UScSMS0kgU0FWQQorU1VCT1RJxIxLSSBTTE9CT0RBTgorU1VCT1RJxIxLSSBTT0ZJSkEKK1NVQk9UScSMS0kgU1ZFVElTTEFWCitTVUJPVEnEjEtJIFZBU0EKK1NVQk9UScSMS0kgVkVSQQorU1VCT1RJxIxLSSBWTEFESU1JUgorU1VCT1RJxIxLSSBaT1JBTgorU1VCT1RJxIYgxb1BUktPCitTVUJPVEnEhiDEkE9SxJBFCitTVUJPVEnEhiDEkFVSTworU1VCT1RJxIYgQUxFS1NBTkRBUgorU1VCT1RJxIYgQlJBTklTTEFWIERSCitTVUJPVEnEhiBEUkFHVVRJTgorU1VCT1RJxIYgRFXFoEFOCitTVUJPVEnEhiBEVcWgQU4KK1NVQk9UScSGIExKSUxKQU5BCitTVUJPVEnEhiBMSlVCSUNBCitTVUJPVEnEhiBNQUNBCitTVUJPVEnEhiBNQVJLTworU1VCT1RJxIYgTUlMSVZPSgorU1VCT1RJxIYgTUlMT8WgCitTVUJPVEnEhiBNSUxPUkFECitTVUJPVEnEhiBNSU9EUkFHIERJUEwgSU5HCitTVUJPVEnEhiBORU5BRAorU1VCT1RJxIYgUkFESVZPSgorU1VCT1RJxIYgUkFET8WgCitTVUJPVEnEhiBSQUpLTworU1VCT1RJxIYgUkFKS08KK1NVQk9UScSGIFJVxb1BCitTVUJPVEnEhiBSVcW9QQorU1VCT1RJxIYgU0FWQQorU1VCT1RJxIYgU0xPQk9EQU4KK1NVQk9UScSGIFNUQU5BCitTVUJPVEnEhiBTVkVUT1pBUgorU1VCT1RJxIYgU1ZFVE9aQVIKK1NVQk9UScSGIFRPTUlTTEFWCitTVUJPVEnEhiBWRVJBCitTVUJPVEnEhiBWTEFEQU5BCitTVUJPVElOIMW9SVZLTworU1VCT1RJTiDFvUlWS08KK1NVQk9USU4gxJBPUsSQRQorU1VCT1RJTiDEkE9SxJBFCitTVUJPVElOIMSQVVJBCitTVUJPVElOIEJPR0RBTgorU1VCT1RJTiBCT0dEQU4KK1NVQk9USU4gREFOSUNBCitTVUJPVElOIERJTUlUUklKRQorU1VCT1RJTiBEUkFHQU4KK1NVQk9USU4gRFJBR0lOSkEKK1NVQk9USU4gRFXFoEFOS0EKK1NVQk9USU4gSVJJTkEKK1NVQk9USU4gSVZBTgorU1VCT1RJTiBKRUxFTkEKK1NVQk9USU4gSkVMSUNBCitTVUJPVElOIExKSUxKQU5BCitTVUJPVElOIExKVUJJTktBCitTVUJPVElOIE1BUktPCitTVUJPVElOIE1BUktPCitTVUJPVElOIE1BUktPCitTVUJPVElOIE1JTEFOCitTVUJPVElOIE1JTEFOCitTVUJPVElOIE1JTEFOCitTVUJPVElOIE1JTE9SQUQKK1NVQk9USU4gTkVWRU5LQQorU1VCT1RJTiBQQVZMRQorU1VCT1RJTiBQRVRBUgorU1VCT1RJTiBQUkVEUkFHCitTVUJPVElOIFJBRE9TTEFWCitTVUJPVElOIFJBRE9WQU4KK1NVQk9USU4gU0HFoEEKK1NVQk9USU4gU0FWQQorU1VCT1RJTiBTQVZBCitTVUJPVElOIFNBVkEKK1NVQk9USU4gU0xPQk9EQU4KK1NVQk9USU4gU01JTEpBCitTVUJPVElOIFNUQU5LQQorU1VCT1RJTiBTVEVWQU4KK1NVQk9USU4gU1RFVkFOCitTVUJPVElOIFNWRVRPWkFSCitTVUJPVElOIFNWRVRPWkFSCitTVUJPVElOIFNWRVRPWkFSCitTVUJPVElOIFpPUkEKK1NVQlUgxJBPUsSQRQorU1VExb1VS09WScSGIE5JS09MQQorU1VExb1VTSBCT8WgS08KK1NVRMW9VU0gQk9HREFOCitTVUTFvVVNIElMSUpBCitTVURBSyBWTEFESU1JUgorU1VEQVIgRFXFoEFOCitTVURBUiBEVcWgQU4KK1NVREFSIEdBSkEKK1NVREFSIFZPSklOCitTVURBUkVWScSGIEJPxaBLTworU1VEQVJPViBCUkFUSVNMQVYKK1NVREFSU0tJIERVxaBBTgorU1VESU1BQyBEUkFHTworU1VESU1BQyBNSUxBTgorU1VIQU5FSyBBREFNCitTVUhBTlNLSSBTVEVWQU4KK1NVSE9WU0tJIEpBTk8KK1NVScSGIEJSQU5LTworU1VJxIYgTkVOQUQKK1NVSkVSIE1JSEFKTE8KK1NVSknEhiBKRUxFTkEKK1NVSknEhiBNSUxBTgorU1VKScSGIFNPRklKQQorU1VKScSGIFZPSklOCitTVUpJxIYgWkRFTktBCitTVUtBxIwgTUlIQUpMTworU1VLTkpBSkEgREFOSUxPCitTVUtOT1ZJxIYgTUlSS08KK1NVS05PVknEhiBSQURJVk9KRQorU1VLTk9WScSGIFNMQVZLTworU1VLT0xBIEFOVEFMCitTVUtPTEEgU1VaQU5BCitTVUtVUCBNQVJHSVRBCitTVUxFSk1BTk9WIE5BRklKQQorU1VMScSGIE1BUklDQQorU1VMScSGIFRPTUlTTEFWCitTVUxKQSBSQU1BREFOCitTVUxKQUdJxIYgUkVGSUsKK1NVTE9DS0kgSk/FoEtBCitTVUxPTUFSIEFHTkVaQQorU1VMT01BUiBFUsW9RUJFVAorU1VMT01BUiBJTE9OQQorU1VMT01BUiBKQU5PxaAKK1NVTE9NQVIgTUFHREEKK1NVTUFOIE1JTEUKK1NVTUFST1YgSkVMSVNBVkVUQQorU1VNSU5BIERBTklDQQorU1VNSU5KQSBNScWgQQorU1VOQUpLTyDEkFVSTworU1VOQUpLTyBEVcWgQU4KK1NVTkRBxIYgxJBVUkEKK1NVTkRBxIYgVE9ET1IKK1NVTknEhiBNSVJKQU5BCitTVU5LQSBMSlVCSUNBCitTVU5UT0sgQU5JQ0EKK1NVTlpFUiBWTEFESU1JUgorU1VQScSGIEJPUknFoEEKK1NVUEnEhiBEQVJJTktBCitTVVBJxIYgTUlMQU4KK1NVUEnEhiBPTEdBCitTVVLEhkEgSk9TSVAKK1NVUsSGQSBUUkFKQU4KK1NVUkEgTUFSR0lUQQorU1VSRFXEjEFOIERJTUlUUklKRQorU1VSRFXEjEtJIMW9SVZLTworU1VSRFXEjEtJIERSQUdBTgorU1VSRFXEjEtJIElMSUpBCitTVVJEVcSMS0kgSUxJSkEKK1NVUkRVxIxLSSBJU0lET1IKK1NVUkRVxIxLSSBNQVJBCitTVVJEVcSMS0kgTUlMQU4KK1NVUkRVxIxLSSBNSUxPxaAKK1NVUkRVxIxLSSBNSUxPxaAKK1NVUkRVxIxLSSBNSVJKQU5BCitTVVJEVcSMS0kgTkVCT0rFoEEKK1NVUkRVxIxLSSBQQU5URUxJSkEKK1NVUkRVxIxLSSBQRVJTQQorU1VSRFXEjEtJIFNJTknFoEEKK1NVUkRVxIxLSSBTVEFOS0EKK1NVUkRVxIxLSSBTVEVWQU4KK1NVUkxBIEJPxb1PCitTVVJMQSBEVcWgQU4KK1NVUkxBIExVS0EKK1NVUkxBIFBFVEFSCitTVVJMQSBQRVRBUgorU1VSTEEgU0FWQQorU1VSTEEgWk9SQU4KK1NVUkxJxIYgTUlMRU5LTworU1VST1ZJIEFOVE9OCitTVVJPVkkgSk9MQU5LQQorU1VST1ZJIE1JSEFMCitTVVJPVkkgTUlST1NMQVYKK1NVUk9WSSBTVEVWQU4KK1NVUk9WSSBWTEFESU1JUgorU1VTRURTS0kgT1NLQVIKK1NVVEFSScSGIFZFUkEKK1NVVFJJTiBCT1JJUworU1VUVVJPVknEhiBKQUdBCitTVVRVUk9WScSGIE1BUklKQQorU1VUVVJPVknEhiBORVNUTworU1VUVVJPVknEhiBaVk9OSU1JUgorU1VWQcSMQVIgSUxJTktBCitTVVZBxIxBUiBUT0RPUgorU1VWQcSMQVIgVkVSQQorU1VWQcSMQVJFViBCT1JJU0xBVkEKK1NVVkHEjEFSRVYgSk9WQU4KK1NVVkHEjEFSRVYgTUFSSUpBCitTVVZBxIxBUkVWIE1JTEVOS08KK1NVVkHEjEFSRVYgTU9NSVIKK1NVVkHEjEFSRVYgT0JSQUQKK1NVVkHEjEFSRVYgUEFKQQorU1VWQcSMQVJFViBSQURFTktPCitTVVZBSsSMRVZJxIYgU1ZFVElTTEFWCitTVVZBSkFDIMW9RUxKS08KK1NVVkFKQUMgVkFTSUxJSkUKK1NVVkFKRMW9ScSGIMW9SVZLTworU1VWQUpExb1JxIYgxJBPUsSQRQorU1VWQUpExb1JxIYgxJBPUsSQRQorU1VWQUpExb1JxIYgRElNSVRSSUpFCitTVVZBSkTFvUnEhiBHT0pLTworU1VWQUpExb1JxIYgSUxJSkEKK1NVVkFKRMW9ScSGIElTQQorU1VWQUpExb1JxIYgSk9WQU4KK1NVVkFKRMW9ScSGIExKSUxKQU5BCitTVVZBSkTFvUnEhiBNQVJJSkEKK1NVVkFKRMW9ScSGIE1BUklOS08KK1NVVkFKRMW9ScSGIE1JTEtBCitTVVZBSkTFvUnEhiBORU5BRAorU1VWQUpExb1JxIYgTkVOQUQKK1NVVkFKRMW9ScSGIE9CUkFECitTVVZBSkTFvUnEhiBPTEdJQ0EKK1NVVkFKRMW9ScSGIFBFVEFSCitTVVZBSkTFvUnEhiBSQURNSUxBCitTVVZBSkTFvUnEhiBWQVNBCitTVVZBSkTFvUnEhiBWQVNBCitTVVZBSkTFvUlOIEpPVkFOCitTVVZBSkTFvUlOIEpPVkFOCitTVVZBSkTFvUlOIE1MQURFTgorU1VWQUpExb1JTiBOSUtPTEEKK1NVWknEhiBNQVJBCitTVVpJxIYgTUlSS08KK1NVWknEhiBOSUtPTEEKK1NVWknEhiBTT0ZJSkEKK1NWQUxJTkEgS0FUQQorU1ZFxIZOSkFLIEJSQU5LTworU1ZFVEnEhiBJVkFOIERSCitTVkVUScSGIElWQU4KK1NWRVRJxIYgTEpFUktBCitTVkVUTElLIEFEQU0KK1NWSUxBS09TIE1BUklKQQorU1ZJTEFSIEFOxJBFTEtBCitTVklMQVIgQlJBTklTTEFWCitTVklMQVIgR09KS08KK1NWSUxBUiBMSlVCT01JUgorU1ZJTEFSIE1JSEFKTE8KK1NWSUxBUiBNSUhBSkxPCitTVklMQVIgTklLT0xBCitTVklMQVIgUEVUQVIKK1NWSUxBUiBSQURPTUlSCitTVklMQVIgUkFUS08KK1NWSUxBUiBTTEFWSUNBCitTVklMQVIgU09GSUpBCitTVklMQVIgVkVSSUNBCitTVklMQVIgVklOS0EKK1NWSUxBUkVWScSGIFNURVZPCitTVklMQVJLT1ZJxIYgU1RBTklNSVIgRElQTCBJTkcKK1NWSUxBUk9WIE1JTEFOCitTVklMT0tPUyBCT1JJU0xBVgorU1ZJTE9LT1MgR0FWUkEKK1NWSUxPS09TIEtBVElDQQorU1ZJTE9LT1MgTUlMQU4KK1NWSUxPS09TIFNURVZBTgorU1ZJTkpBUkVWScSGIFNMQVZLTworU1ZJUsSMRVYgxb1JVktPCitTVklSxIxFViBKT1ZBTgorU1ZJUsSMRVYgTUlMSVZPSgorU1ZJUsSMRVYgTUlMT8WgCitTVklSxIxFViBSQURBCitTVklSxIxFVknEhiBBTEVLU0FOREFSIERSIERPQ0VOVAorU1ZJUsSMRVZJxIYgQU5BCitTVklSxIxFVknEhiBCT1JJU0xBVgorU1ZJUsSMRVZJxIYgRFJBR0FOCitTVklSxIxFVknEhiBEUkFHQQorU1ZJUsSMRVZJxIYgRFJFTktBCitTVklSxIxFVknEhiBKT1ZBTgorU1ZJUsSMRVZJxIYgSk9WQU4KK1NWSVLEjEVWScSGIExKVUJPTUlSCitTVklSxIxFVknEhiBNSUxJVk9KCitTVklSxIxFVknEhiBNSUxPUkFECitTVklSxIxFVknEhiBNSVJKQU5BCitTVklSxIxFVknEhiBQRVRBUgorU1ZJUsSMRVZJxIYgUkFET1ZBTgorU1ZJUsSMRVZJxIYgU0xBVktPCitTVklSxIxFVknEhiBTVEVWQU4KK1NWSVLEjEVWScSGIFRFT0RPUkEKK1NWSVLEjEVWScSGLVRSQUpLT1ZJxIYgTEpVQklDQQorU1ZJUsSMRVZJxIYgVkFTQQorU1ZJUsSMRVZJxIYgVlVLQU4KK1NWSVJBQyBSVcW9SUNBCitTVklUScSGIEJPxb1PCitTVklUTElDQSBEUkFHQU4KK1NWSVRMSUNBIERVxaBBTgorU1ZJVExJQ0EgR09KS08gRElQTCBPRUMKK1NWSVRMSUNBIEpFTElDQQorU1ZJVExJQ0EgTUlMQU4KK1NWSVRMSUNBIFJVxb1JQ0EKK1NWSVRMSUNBIFNJTU8KK1NWSVRMSUNBIFNUQU5LTworU1ZJVExJQ0EgVEFOQVNJSkUgRElQTCBPRUMKK1NWSVRMSUNBIFZFUkEKK1NWT0JPREEgU1RFVkFOCitTVk9SQ0FOIEJSQU5JU0xBVgorU1ZPUkNBTiBMSlVCT01JUgorU1ZPUkNBTiBNSUxPxaAKK1NWT1JDQU4gTUlMT1JBRAorU1ZPUkNBTiBNSUxPUkFECitTVk9SQ0FOIFJBRElTTEFWCitTVk9SQ0FOIFJBRE9NSVIKK1NWT1JDQU4gU1RFVkFOCitTVk9SQ0FOIFNUT0pBTgorU1ZPUkNBTiBaT1JJQ0EKK1NWUkRMQU4gTUxBxJBBTgorU1ZSS09UQSDFvUlWS08KK1NWUktPVEEgVlVLT01BTgorU1ZSWknEhiBHT1JEQU5BCitUQcSMSSBJU01BSUxKCitUQcSMSSBURU9GSUwKK1RBxaAgS0FST0xKCitUQcWgRVZTS0kgTUlMS0EKK1RBxaBFVlNLSSBTT0ZJSkEKK1RBxaBJIExKVUJJQ0EKK1RBxaBJIFBFVEFSCitUQcWgSSBST1pBTElKQQorVEHFoEkgU1RFVkFOCitUQcWgSSBaT0xUQU4KK1RBxaBJxIYgTUlMSVZPSgorVEHFoEnEhiBWRVJBCitUQcWgTkFESSBNSUhBTEoKK1RBQsWgIE5BREEKK1RBQsWgIE5PSEFERURJTgorVEFCQcSMS0kgVkxBRElNSVIKK1RBQkHEjEtJIFpPUklDQQorVEFCQUsgRFJBR0FOCitUQUJBSyBJVkFOCitUQUJBSyBWQVNBCitUQUJBSyBWT0pJU0xBVgorVEFCQUtPViBEUkFHT01JUgorVEFCQUtPViBNSUxFTktPCitUQUJBS09WIE1MQURFTgorVEFCQUtPVknEhiDEkE9SxJBFIERJUEwgSU5HCitUQUJBS09WScSGIERVxaBBTgorVEFCQUtPVknEhiBJU01FVAorVEFCQUtPVknEhiBNSVJLTworVEFCT1JJIMSQT1LEkEUgRFIgTEVLQVIKK1RBQ09WScSGIFZFUkEKK1RBREnEhiDFvUlWQU4KK1RBREnEhiDEkE9SxJBFCitUQURJxIYgxJBPUsSQRQorVEFEScSGIEFMRUtTQU5EQVIKK1RBREnEhiBBTkEKK1RBREnEhiBBUlNFTklKRQorVEFEScSGIEJPU0lMSktBCitUQURJxIYgREFOSUxPCitUQURJxIYgRFJBR0FOCitUQURJxIYgRFJBR0EKK1RBREnEhiBEVcWgQU4KK1RBREnEhiBEVcWgQU4KK1RBREnEhiBEVcWgQU4KK1RBREnEhiBFRElUQQorVEFEScSGIEdPUkFOCitUQURJxIYgSUxJSkEKK1RBREnEhiBJTElKQQorVEFEScSGIElWQU4KK1RBREnEhiBKT1ZJQ0EKK1RBREnEhiBLUkFTSU1JUgorVEFEScSGIExBWkFSCitUQURJxIYgTEFaQVIKK1RBREnEhiBNQVJJSkEKK1RBREnEhiBNQVJJTktPCitUQURJxIYgTUFSSU5LTworVEFEScSGIE1JSk8KK1RBREnEhiBNSUxPxaAgRElQTCBJTkcKK1RBREnEhiBNSUxPxaAKK1RBREnEhiBNSUxPSkUKK1RBREnEhiBNSUxPU0FWCitUQURJxIYgTUlSS08KK1RBREnEhiBNSVJLTworVEFEScSGIE1JUktPCitUQURJxIYgTkFEQQorVEFEScSGIE5FVkVOS0EKK1RBREnEhiBPQlJFTgorVEFEScSGIFBFVEFSCitUQURJxIYgUkFET0pFCitUQURJxIYgUkFUS08KK1RBREnEhiBTQcWgQQorVEFEScSGIFNBVkEKK1RBREnEhiBTTE9CT0RBTgorVEFEScSGIFNPRklKQQorVEFEScSGIFNQQVNPSkUKK1RBREnEhiBTVE9KQU4KK1RBREnEhiBUQU5LT1NBVkEKK1RBREnEhiBVUk/FoAorVEFEScSGIFZFU0VMSU4KK1RBREnEhiBaT1JBTgorVEFEScSGIFpPUkEKK1RBREnEhiBaT1JLQQorVEFESUpBTk9WScSGIFNJTFZFU1RFUgorVEFESUpJTiBHTEnFoEEKK1RBRElKSU4gTUlMSUNBCitUQURJSklOIE1JTE/FoAorVEFESUpJTiBNSUxPUkFECitUQURJTiBEVcWgQU5LQQorVEFESU4gRFXFoEFOCitUQURJTiBJVkFOS0EKK1RBRElOIE1JTE9WQU4KK1RBRElOIFpMQVRPSkUKK1RBSElST1ZJxIYgRVZJQ0EKK1RBSElST1ZJxIYgTUFSSUpBCitUQUhJUk9WScSGIE1JTEFESU5LQQorVEFJUk9WScSGIEFMRUtTQU5EQVIKK1RBSkhNQU4gQkVMQQorVEFKSE1BTiBERVNBTktBCitUQUpITUFOIEpPU0lQCitUQUpLT1YgQU7EkEVMS0EKK1RBSktPViBKT1ZBTgorVEFKS09WIE1JUkpBTkEKK1RBSktPViBSQURPSktBCitUQUpLT1ZJxIYgTUlMSUNBCitUQUpUSSBWRVJPTklLQQorVEFLQcSMIMWgQU5ET1IKK1RBS0HEjCDEkEVSxJBJCitUQUtBxIwgxJBPUsSQRQorVEFLQcSMIMSQVUxBCitUQUtBxIwgxJBVUkEKK1RBS0HEjCDEkFVSQQorVEFLQcSMIEFOxJBFTEtBCitUQUtBxIwgQU5EUklKQQorVEFLQcSMIEFOVEFMCitUQUtBxIwgQU5UQUwKK1RBS0HEjCBBTlRVTgorVEFLQcSMIEFOVFVOCitUQUtBxIwgQVJQQUQKK1RBS0HEjCBFUk5FCitUQUtBxIwgRVZHRU4KK1RBS0HEjCBGRVJFTkMKK1RBS0HEjCBGUkFOSkEKK1RBS0HEjCBJxaBUVkFOCitUQUtBxIwgScWgVFZBTgorVEFLQcSMIEpBS0lNCitUQUtBxIwgSkFOT8WgCitUQUtBxIwgSkFOT8WgCitUQUtBxIwgSkFOT8WgCitUQUtBxIwgSk/FvUVGIERJUEwgSU5HCitUQUtBxIwgSk/FvUVGCitUQUtBxIwgSk/FvUVGCitUQUtBxIwgSk9TSVAKK1RBS0HEjCBLQVJPTEoKK1RBS0HEjCBLQVRJQ0EKK1RBS0HEjCBLQVRJQ0EKK1RBS0HEjCBMQURJU0xBVgorVEFLQcSMIExBSk/FoAorVEFLQcSMIExBU0xPCitUQUtBxIwgTUFHREEKK1RBS0HEjCBNQVRBCitUQUtBxIwgTUlIQUpMTworVEFLQcSMIE1JTEFOCitUQUtBxIwgTUlSS08KK1RBS0HEjCBST8W9QQorVEFLQcSMIFNFTkEKK1RBS0HEjCBTT0ZJSkEKK1RBS0HEjCBTT0ZJSkEKK1RBS0HEjCBTVEVWQU4KK1RBS0HEjCBUSUJPUgorVEFLQcSMIFRJQk9SCitUQUtBxIwgVklOS08KK1RBS0HEjCBWTEFESU1JUgorVEFLQcSMIFZMQURJTUlSCitUQUtBxIwgWk9MVEFOCitUQUtBxIxJIEFSUEFEIERJUEwgT0VDCitUQUtBxIxJIEFSUEFEIERSCitUQUtBxIxJIEdBQk9SCitUQUtPIFpWT05JTUlSCitUQUtPVkFDIFJBRElTQVYKK1RBS09WU0tJIEJMQUdPSkUKK1RBS09WU0tJIEpPVkFOS0EKK1RBTEVTS0kgTEpVQklDQQorVEFMRVNLSSBSSVNUQQorVEFMScSGIERSQUdBTgorVEFMScSGIE1JVEFSCitUQUxJSkFOIFJPxb1BCitUQUxPIMWgQU5ET1IKK1RBTE8gxb1JVktBCitUQUxPIEFMRUtTQU5EQVIKK1RBTE8gQlJJR0lUQQorVEFMTyBGUkFOSkEKK1RBTE8gSkVMRU5BCitUQUxPIEpFTElTQVZFVEEKK1RBTE8gSk/FvUVGCitUQUxPIEpPU0lQCitUQUxPIEpPVkFOCitUQUxPIFRFUkVaQQorVEFMT8WgSSDEkE9SxJBFCitUQUxPxaBJIElSRU5BCitUQUxPxaBJIEtBUk9MSgorVEFMT1ZJxIYgQkVIVURJTgorVEFMT1ZJxIYgSEFKUklKQQorVEFMT1ZJxIYgU0FESUsKK1RBTUHFoCDEkEVSxJAKK1RBTUHFoCDEkFVSQQorVEFNQcWgIElSSU5FSgorVEFNQcWgLUpPxaBBTk9WIEFMRUtTQU5EUkEKK1RBTUHFoCBMSlVCT01JUgorVEFNQcWgIE1BUklKQQorVEFNQcWgIE1JSEFKTE8KK1RBTUHFoCBQQVZMRQorVEFNQcWgIFZMQURJTUlSCitUQU1BxaAgVkxBRElNSVIKK1RBTUHFoEkgQUdPxaBUT04KK1RBTUHFoEkgQUxBREFSCitUQU1BxaBJIFRJQk9SCitUQU1BxaBLT1ZJxIYgWk9MVEFOCitUQU1CVVJBxaBFViBWVUtBxaBJTgorVEFNQlVSS09WU0tJIERSQUdBTgorVEFNSU5Exb1JxIYgxIxFRE9NSVIKK1RBTUlORMW9ScSGIEFOxJBFTEtPCitUQU1JTkTFvUnEhiBLT1ZJTktBCitUQU1JTkTFvUnEhiBSSVNUQQorVEFNSU5Exb1JSkEgREFOSUxPCitUQU1JTkTFvUlKQSBNSUxPUkFECitUQU1JTkTFvUlKQSBNSVJLTworVEFNSU5Exb1JSkEgVkxBRE8KK1RBTsSMSUsgxaBBTkRPUgorVEFOxIxJSyBBTEJFUlQKK1RBTsSMSUsgQUxFS1NBTkRBUgorVEFOxIxJSyBFTUlMCitUQU7EjElLIElCT0xKQQorVEFOxIxJSyBST1pBCitUQU5BQ0tPViBOT1ZBSworVEFOQUNLT1ZJxIYgQUNPCitUQU5BQ0tPVknEhiBNSUhBSkxPCitUQU5BU0nEhiBKT1ZBTgorVEFOQVNJxIYgT0xJVkVSQQorVEFOQVNJxIYgUFJFRFJBRworVEFOQVNJxIYgUlXFvUEKK1RBTkFTScSGIFNQQVNPSkUKK1RBTkFTScSGIFZBTEVSSUpBCitUQU5BU0nEhiBWQUxFUklKQQorVEFOQVNJSkVWScSGIMW9QVJLTworVEFOQVNJSkVWScSGLUZJTElQT1YgSVZBTktBCitUQU5BU0lKRVZJxIYgTUlMQU4KK1RBTkFTSUpFVknEhiBTSU5JxaBBCitUQU5BU0lKSU4gTFVLQQorVEFOQVNJSklOIFBFVEFSCitUQU5BU0lKSU4gVkVSQQorVEFOQVNJTiBEQU5JU0xBVkEKK1RBTkFTSU4gSk9WQU4KK1RBTkFTSU4gTEpVQklDQQorVEFOQVNJTiBORVNUT1IKK1RBTkFTSU4gU1RFVkFOCitUQU5BU0lOIFNURVZBTgorVEFOQVNJTiBTVEVWQU4KK1RBTkFTSU4gU1RFVkFOCitUQU5BU0tPVknEhiBEUkFHQU4KK1RBTkFTS09WScSGIERSQUdPTUlSCitUQU5BU0tPVknEhiBHSU5BCitUQU5BU0tPVknEhiBHT1JEQU5BCitUQU5BU0tPVknEhiBHT1NQQVZBCitUQU5BU0tPVknEhiBMQVpBUgorVEFOQVNLT1ZJxIYgTUlMRQorVEFOQVNLT1ZJxIYgTk9WQUsKK1RBTkFTS09WScSGIFNUQU5JU0xBVgorVEFOQVNLT1ZJxIYgVklUS08KK1RBTkFTS09WScSGIFZJVE9NSVIKK1RBTkFTS09WScSGIFZVS0FOCitUQU5ESSBKVUxJSkFOQQorVEFORVYgVFJBSktPCitUQU5HTCBJVkFOCitUQU5HTCBPTEdBCitUQU5KRVZJxIYgRFJBR09MSlVCCitUQU5KRVZJxIYgTEpVQk9NSVIKK1RBTkpHQSBHT1JBTgorVEFOSkdBIExKVUJPTUlSCitUQU5KR0EgTUFSSUpBCitUQU5KR0EgUkFKS08KK1RBTkpHQSBUQU5FCitUQU5LQSBJxaBUVkFOCitUQU5LT1NJxIYgQk9HREFOCitUQU5LT1NJxIYgQk9KQU5BCitUQU5LT1NJxIYgQlJBTktPCitUQU5LT1NJxIYgSk9WQU4KK1RBTktPU0nEhiBLVVpNQU4KK1RBTktPU0nEhiBNQVJLTworVEFOS09TScSGIE1JSEFKTE8KK1RBTktPU0nEhiBNSUxBTgorVEFOS09TScSGIE1JTEVOQQorVEFOS09TScSGIE1JTElDQQorVEFOS09TScSGIE1JTElDQQorVEFOS09TScSGIE5JS09MQQorVEFOS09TScSGIFJBWklKQQorVEFOS09TScSGIFNURVZBTgorVEFOS09WScSGIFNBTEtPCitUQU5PVknEhiBHQVZSSUxPIE1SCitUQU5PVknEhiBKT1ZPCitUQU5PVknEhiBWTEFESU1JUgorVEFOVEnEhiBTTEFWS08KK1RBTlVSRMW9ScSGIMW9SVZPSklOCitUQU5VUkTFvUnEhiBBTEVLU0FOREFSCitUQU5VUkTFvUnEhiBEQVJJTktBCitUQU5VUkTFvUnEhiBHT0pLTworVEFOVVJExb1JxIYgSk9WQU4KK1RBTlVSRMW9ScSGIE1JTElDQQorVEFOVVJExb1JxIYgTUlSS08KK1RBTlVSRMW9ScSGIFNSQk9NSVIKK1RBTlVSRMW9ScSGIFNUQU5JU0xBVkEKK1RBTlVSRMW9ScSGIFNWRVRPWkFSCitUQU5VUkTFvUnEhiBaT1JBCitUQVBBSSBSVURPTEYKK1RBUEFKIEdBQlJJSkVMCitUQVBBSiBTVEFNRU5LQQorVEFQQUxBR0EgSk9OCitUQVBBTEFHQSBUT0RPUgorVEFQQVZJxIxLSSDEjEVET01JUgorVEFQQVZJxIxLSSBCT1JJVk9KCitUQVBBVknEjEtJIEZFT0RPUgorVEFQQVZJxIxLSSBNTEFERU4KK1RBUEFWScSMS0kgUkFET1ZBTgorVEFQQVZJxIxLSSBTVEVWQU4KK1RBUEFWSUNBIMSMRURPTUlSCitUQVBBVklDQSBBTEVLU0FORFJBCitUQVBBVklDQSBBTEVLU0FORFJBCitUQVBBVklDQSBCT1JLQQorVEFQQVZJQ0EgQlJBTktBCitUQVBBVklDQSBET0JSSUxBCitUQVBBVklDQSBKRUxJQ0EKK1RBUEFWSUNBIExKVUJPTUlSCitUQVBBVklDQSBNSUxPUkFECitUQVBBVklDQSBNSVRBCitUQVBBVklDQSBSQURPU0xBVkEKK1RBUEFWSUNBIFJBSktPCitUQVBBVklDQSBTSU1BCitUQVBBVklDQSBTVEVWQU4KK1RBUEFWSUNBIFRJSE9NSVIKK1RBUEFWSUNBIFZFUklDQQorVEFQQVZJQ0EgVkVSSUNBCitUQVJBS8SMSUpBIMSQT1LEkEUKK1RBUkFLxIxJSkEtTUlMT1ZBTk9WScSGIFJBVEtBCitUQVJBTkTFvUEgSVZBTgorVEFSQU5Exb1BIElWQU4KK1RBUkFTRU5LTyBCUkFUSVNMQVYgRFIKK1RBUkJVSyBNSVJLTworVEFSQlVLIE5JS09MQQorVEFSRVZTS0kgxIZBTUlMCitUQVJHVcWgIE1BVElKQQorVEFSSSBJTE9OQQorVEFSSkFOIERFxb1FCitUQVJKQU4gR0FCT1IKK1RBUkpBTiBJTVJFCitUQVJKQU4gS0FSTE8KK1RBUkpBTiBUSUJPUgorVEFSS08gSkFOT8WgCitUQVJMQcSGIFBFUklDQQorVEFSTEUgSUxJSkEKK1RBUkxFIElWQU4KK1RBUk5PQ0tJIEFNQUxJSkEgRFIKK1RBUk5PQ0tJIFBBTAorVEFTRVYgQkxBxb1PCitUQVNFVlNLSSBJTE8KK1RBU0VWU0tJIEpPUkRBTgorVEFTScSGIMW9QUtMSU5BCitUQVNJxIYgxb1JVk9KSU4KK1RBU0nEhiDEkE9SxJBFCitUQVNJxIYgQU7EkEVMSUpBCitUQVNJxIYgQU5BCitUQVNJxIYgQkxBR09KRSBESVBMIFBSQVZOSUsKK1RBU0nEhiBCTEFHT0pFCitUQVNJxIYgQk/FvUlEQVIgTVIgUEgKK1RBU0nEhiBCT1JJU0xBVgorVEFTScSGIEJPUklWT0pFCitUQVNJxIYgQk9SSVZPSkUKK1RBU0nEhiBERVNBTktBCitUQVNJxIYgRE9CUklWT0oKK1RBU0nEhiBJVkFOCitUQVNJxIYgTEpVQk9EUkFHIERJUEwgSU5HCitUQVNJxIYgTUlMT8WgIERSIExFS0FSCitUQVNJxIYgTUlMT8WgIERSCitUQVNJxIYgTUlMT8WgIERSCitUQVNJxIYgTUlMT8WgCitUQVNJxIYgTUlST1NMQVYKK1RBU0nEhiBNSVJPU0xBVgorVEFTScSGIE5FVkVOS0EKK1RBU0nEhiBSQURFCitUQVNJxIYgU0lOScWgQQorVEFTScSGIFNMT0JPREFOCitUQVNJxIYgVFJJRlVOCitUQVNJxIYgVVJPxaAKK1RBU0nEhiBWRVJBCitUQVNJxIYgVkxBREFOS0EKK1RBU0nEhiBaT1JBTgorVEFTS09WScSGIERVxaBBTgorVEFTS09WScSGIE1JUk9TTEFWCitUQVNLT1ZJxIYgUEVSQQorVEFTT1ZBQyBET0JSSUxBCitUQVNPVkFDIE1JTE9SQUQKK1RBVEFJIEVNSUxJSkEKK1RBVEFJIElWQU4KK1RBVEFJIEtBUk9MSgorVEFUQUkgTUFSR0lUCitUQVRBSSBUSUJPUgorVEFUQUxPVknEhiDFvUlWS08KK1RBVEFMT1ZJxIYgQlJBTklNSVIKK1RBVEFMT1ZJxIYgRFJBR0FOCitUQVRBTE9WScSGIElMSUpBCitUQVRBTE9WScSGIElMSUpBCitUQVRBTE9WScSGIExBWk8KK1RBVEFMT1ZJxIYgTUlMQU4KK1RBVEFMT1ZJxIYgTUlMQU4KK1RBVEFMT1ZJxIYgUEVUQVIKK1RBVEFMT1ZJxIYgUEVUQVIKK1RBVEFMT1ZJxIYgUEVUQVIKK1RBVEFSIERVxaBBTgorVEFUQVIgRFXFoEFOCitUQVRBUkVWScSGIEJMQcW9QQorVEFUQVJJTiBSVcW9SUNBCitUQVRBUlNLSSBEVcWgQU4KK1RBVEFSU0tJIE1JTE9SQUQKK1RBVEFSU0tJIE5BREEKK1RBVEFSU0tJIFNWRVRJU0xBVgorVEFUQVJTS0kgVkxBREVUQQorVEFUScSGIMW9QVJLTworVEFUScSGIMSQVVLEkElOS0EKK1RBVEnEhiBBTEVLU0FOREFSCitUQVRJxIYgQUxFS1NBTkRBUgorVEFUScSGIEFOS0lDQQorVEFUScSGIEJSQU5LTworVEFUScSGIERBTkEKK1RBVEnEhiBEUkFHQU4KK1RBVEnEhiBEUkFHT8WgCitUQVRJxIYgRFJBR09MSlVCCitUQVRJxIYgRFJBR09NSVIKK1RBVEnEhiBEVcWgQU4KK1RBVEnEhiBFTUlMIERSCitUQVRJxIYgRVZJQ0EKK1RBVEnEhiBJTElKQQorVEFUScSGIElMSUpBCitUQVRJxIYgSUxPTktBCitUQVRJxIYgSkVMRU5BCitUQVRJxIYgSk9WQU4gRElQTCBJTkcKK1RBVEnEhiBKT1ZBTgorVEFUScSGIExBWkFSCitUQVRJxIYgTUFSQQorVEFUScSGIE1BUklKQQorVEFUScSGIE1BUklKQQorVEFUScSGIE1JTEFOCitUQVRJxIYgTUlMQU4KK1RBVEnEhiBNSUxJVk9KCitUQVRJxIYgTUlMS0EKK1RBVEnEhiBNSUxPxaAKK1RBVEnEhiBNSUxPUkFECitUQVRJxIYgTUlMT1NBVgorVEFUScSGIE1JTFVUSU4gRElQTCBJTkcKK1RBVEnEhiBORURFTEpLTworVEFUScSGIFBBSkEKK1RBVEnEhiBQRVJTSURBCitUQVRJxIYgUEVUQVIKK1RBVEnEhiBSQURNSUxBCitUQVRJxIYgUkFET1NMQVYKK1RBVEnEhiBTTEFWS08KK1RBVEnEhiBTTE9CT0RBTgorVEFUScSGIFNSQklTTEFWCitUQVRJxIYgU1RFVkFOCitUQVRJxIYgVE9NSVNMQVYKK1RBVEnEhiBaTEFUSUNBCitUQVRPTUlSIE1BUktPCitUQVRPTUlST1YgSk9WQU4KK1RBVE9NSVJPViBNQVJJSkEKK1RBVE9NSVJPViBNQVJJSkEKK1RBVE9NSVJPViBSQURJVk9KCitUQVRPTUlST1YgWk9SQU4KK1RBVE9NSVJPVknEhiBCUkFOS0EKK1RBVcWgQU4gTUFSS08KK1RBVcWgQU5PVknEhiBJTElKQQorVEFVxaBBTk9WScSGIFJBREUKK1RBVUJORVIgS0FUSUNBCitURcWgQU5PViBNSUxBTgorVEXFoEFOT1ZJxIYgxIxFRE8KK1RFxaBBTk9WScSGIMW9RUxKS08KK1RFxaBBTk9WScSGIMSQT0tPCitURcWgQU5PVknEhiBDVklKRVRBCitURcWgQU5PVknEhiBEUkFHQU4KK1RFxaBBTk9WScSGIERSQUdBTgorVEXFoEFOT1ZJxIYgRFXFoEFOCitURcWgQU5PVknEhiBKRUxBCitURcWgQU5PVknEhiBMQVpBUgorVEXFoEFOT1ZJxIYgTkVOQUQKK1RFxaBBTk9WScSGIE5FVkVOS0EKK1RFxaBBTk9WScSGIFBFVEFSCitURcWgQU5PVknEhiBSQcWgS08KK1RFxaBBTk9WScSGIFJBSktPCitURcWgQU5PVknEhiBUT01BCitURcWgQU5PVknEhiBWT0pBCitURcWgQU5PVknEhiBaT1JBTgorVEXFoEVOSkkgRURVQVJECitURcWgScSGIMSQT1LEkEUKK1RFxaBJxIYgQUxFS1NBTkRBUgorVEXFoEnEhiBEQVJJTktBCitURcWgScSGIERSQUdBTgorVEXFoEnEhiBEVcWgQU4KK1RFxaBJxIYgRVLFvUVCRVQKK1RFxaBJxIYgR1JBRElNSVIKK1RFxaBJxIYgSUxJSkEKK1RFxaBJxIYgSlVMSUpBTkEKK1RFxaBJxIYgTEpVQk9NSVIKK1RFxaBJxIYgTFVLQQorVEXFoEnEhiBNQVJJSkEKK1RFxaBJxIYgTUlMRU5LTworVEXFoEnEhiBNSUxFCitURcWgScSGIE1JTEUKK1RFxaBJxIYgTUlMSUNBCitURcWgScSGIE1JTE9SQUQKK1RFxaBJxIYgTUlSS08KK1RFxaBJxIYgUEVSU0EKK1RFxaBJxIYgUkFESVNMQVYKK1RFxaBJxIYgU0xBVktBCitURcWgScSGIFNMQVZPTEpVQiBESVBMIElORworVEXFoEnEhiBTT0ZJSkEKK1RFxaBJxIYgU1RBTklTTEFWQQorVEXFoEnEhiBTVEVWQU4gRFIKK1RFxaBJxIYgU1ZFVExBTkEKK1RFxaBJxIYgWkRSQVZLTworVEXFoElOIEpBU01JTktBCitURcWgSU4gTEpVQklOS0EKK1RFxaBJTiBNSUxPxaAKK1RFxaBJTiBTVEVWS0EKK1RFxaBJTiBWRVNOQQorVEXFoE9WScSGIERSQUdJQ0EKK1RFxaBPVknEhiBMSlVCTworVEXFoE9WScSGIE1JTEVOS08KK1RFxaBPVknEhiBNSUxPTUlSCitURcWgT1ZJxIYgTUlMT1JBRAorVEXFoE9WScSGIFZBU0lMSUpFCitURcW9TEEgQU5EUklKQQorVEVEScSGIMW9SVZLTworVEVEScSGIEJSQU5JU0xBVgorVEVEScSGIE1JTE9WQU4KK1RFREnEhiBORVZFTktBCitURUdFTFRJSkEgQk9HREFOCitURUdFTFRJSkEgRFXFoEFOCitURUdFTFRJSkEgRFXFoEFOCitURUdFTFRJSkEgSUxPTktBCitURUdFTFRJSkEgTUFHREFMRU5BCitURUdFTFRJSkEgTUlMQU4KK1RFR0VMVElKQSBNSVRSQQorVEVHRUxUSUpBIFNUQU5LTworVEVHRUxUSUpBIFZMQUpLTworVEVHTEHFoCBBTkEKK1RFR0xBxaAgTElESUpBCitURUdMQcWgIE5BREEKK1RFR0xBxaBJIEnFoFRWQU4KK1RFR0xBxaBJIEpPxb1FRgorVEVKScSGIEJSQU5LTworVEVKScSGLUtPVkHEjCBNQVJJSkEKK1RFSknEhiBMQVpBUgorVEVKScSGIE1JTElKQQorVEVLScSGIEJPUk8KK1RFS0nEhiBNSUxBTgorVEVLScSGIE1JTEtBCitURUtJxIYgTUlPRFJBRworVEVLScSGIE1JUktPCitURUtJxIYgU0xBVklDQQorVEVLScSGIFNMQVZLTworVEVMIEZFUkVOQworVEVMIEpBTk/FoAorVEVMIEpFTElTQVZFVEEKK1RFTCBKRU5FCitURUwgUEVUQVIKK1RFTCBWSUxNT8WgCitURUxBUk9WIEFOS0EKK1RFTEFST1YgSk9WQU4KK1RFTEFST1YgTUlMT8WgCitURUxBUk9WIE5BREEKK1RFTEFST1YgUEVSQQorVEVMQVJPViBTSU1BCitURUxBUk9WIFNJTknFoEEKK1RFTEFST1YgU0lOScWgQQorVEVMQVJPViBTTUlMSkFOQQorVEVMQVJPViBWT0pJTgorVEVMQVJPViBaT1JBCitURUxBUk9WScSGIEJPUklTCitURUxBUk9WScSGIERJTUlUUklKRQorVEVMQVJPVknEhiBJVkFOQQorVEVMQVJPVknEhiBJVkFOCitURUxBUk9WScSGIFJBVE9NSVIKK1RFTEFST1ZJxIYgU0xPQk9EQU4KK1RFTEFST1ZJxIYgU1RFVkFOCitURUxBUk9WScSGIFNUSkVQQU4KK1RFTEVLSSDFoEFORE9SCitURUxFS0kgRVJJS0EKK1RFTEVLSSBTVEVWQU4KK1RFTEVLSSBWRVJBCitURU1FUklOQUMgREFSQQorVEVNRVJJTkFDIE1JTEVWQQorVEVNRVJJTkFDIE1JT0RSQUcKK1RFTUVSSU5TS0kgSkVMSUNBCitURU1FUklOU0tJIEpPVkFOCitURU1FUklOU0tJIE5BREEKK1RFTVVOT1ZJxIYgTUFSSUpBCitURU5DRSBBTEJJTgorVEVOSkkgxJBPUsSQRQorVEVOSkkgSk9TSVAKK1RFTkpJIEpPU0lQCitURU5KSSBKT1NJUAorVEVOSkkgS1NFTklKQQorVEVOSkkgTUFSSUpBCitURU5KT1ZJxIYgRE9CUklWT0pFCitURU5KT1ZJxIYgTUlMT8WgCitURU5KT1ZJxIYgUkFESVZPSkUKK1RFT0RPUk9WScSGIEFORFJFSkEKK1RFT0RPUk9WScSGIERPQlJJTEEKK1RFT0RPUk9WScSGIERVxaBBTgorVEVPRE9ST1ZJxIYgSk9WQU4KK1RFT0RPUk9WScSGIEpPVkFOCitURU9ET1JPVknEhiBMSlVCTworVEVPRE9ST1ZJxIYgTUFSQQorVEVPRE9ST1ZJxIYgTUlMQU4KK1RFT0RPUk9WScSGIE5BREEKK1RFT0RPUk9WScSGIFBBSkEKK1RFT0RPUk9WScSGIFBFUkEKK1RFT0RPUk9WScSGIFBFUkEKK1RFT0RPUk9WScSGIFJBVElNSVIKK1RFT0RPUk9WScSGIFNBVkEKK1RFT0RPUk9WScSGIFNJTUEKK1RFT0RPUk9WScSGIFNMT0JPREFOCitURU9ET1JPVknEhiBWSVRPTUlSCitURU9ET1JPVknEhiBWTEFESVNMQVYgRElQTCBJTkcKK1RFT0RPUk9WScSGIFZMQURJU0xBVkEKK1RFT0RPU0nEhiBNSVJKQU5BCitURU9ET1NJSkVWScSGIEJSQU5JU0xBVgorVEVPRE9TSUpFVknEhiBNSUxJQ0EKK1RFT0RPU0lKRVZJxIYgWk9SQU4KK1RFT0ZBTk9WIMSQVVLEkElDQQorVEVPRkFOT1YgQk/FoEtPCitURU9GQU5PViBET0JSSU5LQQorVEVPRkFOT1YgRFXFoEFOCitURU9GQU5PViBEVcWgS08KK1RFT0ZBTk9WIE1BUklOS08KK1RFT0ZBTk9WIE1JTEFOCitURU9GQU5PViBNSUxJVk9KCitURU9GQU5PViBNSUxPxaAKK1RFT0ZBTk9WIE1JTE/FoAorVEVPRkFOT1YgT0xJVkVSQQorVEVPRkFOT1YgWk9SQQorVEVPRkFOT1ZJxIYgxaBURUZBTklKQQorVEVPRkFOT1ZJxIYgQUxFS1NBTkRBUgorVEVPRkFOT1ZJxIYgQUxFS1NBTkRBUgorVEVPRkFOT1ZJxIYgQU5BCitURU9GQU5PVknEhiBBUkFOxJBFTAorVEVPRkFOT1ZJxIYgQk9HREFOCitURU9GQU5PVknEhiBCT0dEQU4KK1RFT0ZBTk9WScSGIERBTklMTworVEVPRkFOT1ZJxIYgRE9OS0EKK1RFT0ZBTk9WScSGIERVxaBBTgorVEVPRkFOT1ZJxIYgTUFSS08gRFIgVkVURVJJTkUKK1RFT0ZBTk9WScSGIE1JTEVWQQorVEVPRkFOT1ZJxIYgTUlMSUNBCitURU9GQU5PVknEhiBUQURJSkEKK1RFT0ZJTE9WScSGIMSQVVLEkElDQQorVEVPRklMT1ZJxIYgQUxFS1NBTkRBUgorVEVPRklMT1ZJxIYgQlJBTktBCitURU9GSUxPVknEhiBHT1JBTgorVEVPRklMT1ZJxIYgTU9NxIxJTE8KK1RFT0ZJTE9WScSGIFNBVk8KK1RFT1ZBTk9WScSGIE5FVkVOS0EKK1RFUMWgQSBORUJPSsWgQQorVEVQxaBBIFNJTknFoEEKK1RFUMWgScSGIEpPVklDQQorVEVQxaBJxIYgTUlPRFJBRworVEVQxaBJxIYgUkFERQorVEVQQcSMRVZJxIYgQU5EUkVKQQorVEVQQVbEjEVWScSGIMW9QU5LQQorVEVQQVbEjEVWScSGIEJPxb1JREFSCitURVBBVsSMRVZJxIYgR09KS08KK1RFUEFWxIxFVknEhiBNSUxPVkFOCitURVBBVsSMRVZJxIYgUEVUQVIgRFIKK1RFUEFWxIxFVknEhiBSQVRLTworVEVQQVbEjEVWScSGIFNUUkFISU5KQQorVEVQScSGIEZSQU5DSUtBCitURVBJxIYgR09SQU4KK1RFUEnEhiBKT1ZBTgorVEVQScSGIE1JTEFOCitURVBJxIYgTUlMT8WgCitURVBJxIYgTUlMT1ZBTgorVEVQScSGIE5FREVMSktPCitURVBJxIYgT0JSRU5LTworVEVQScSGIFJBRE9WQU4KK1RFUEnEhiBSQUpLTworVEVQScSGIFNORcW9QU5BCitURVBJxIYgVklEQQorVEVQScSGIFpPUkFOCitURVJFxIxFSyBBTsSQRUxLQQorVEVSRcSMScSGIExBSk/FoAorVEVSRcSMSUsgUEFMCitURVJFQ0tJIEnFoFRWQU4KK1RFUkVLIMSQVUxBCitURVJFSyBBTkRSSUpBCitURVJFSyBGRVJFTkMKK1RFUkVLIEnFoFRWQU4KK1RFUkVLIElNUkUgRElQTCBJTkcKK1RFUkVLIElSRU5BCitURVJFSyBKQU5PxaAKK1RFUkVLIEtBVEFMSU4KK1RFUkVLIExBU0xPCitURVJFSyBMSlVERVZJVCBEUiBJTkcKK1RFUkVLIE9MR0EKK1RFUkVLIFRJQk9SCitURVJFWklKQSBCT1NJTEpLQQorVEVSSEXFoCDFoEFORE9SCitURVJKRUsgQUxFS1NBTkRBUgorVEVSSkVLLUtPVkHEjCBLQVJMTworVEVSSkVLIE1JSEFKTE8KK1RFUkpFSyBWSUtUT1JJSkEKK1RFUktFTEogQU5BCitURVJMSlVLIElWQU4KK1RFUk5PVkFDIEnFoFRWQU4KK1RFUlpJxIYgxb1JVktPCitURVJaScSGIMSQT1LEkEUKK1RFUlpJxIYgxJBVUk8KK1RFUlpJxIYgQkVMQQorVEVSWknEhiBCSVNFUktBCitURVJaScSGIEJPR09MSlVCCitURVJaScSGIEJSQU5LQQorVEVSWknEhiBEUkFHQU4KK1RFUlpJxIYgRFJBR09NSVIKK1RFUlpJxIYgRFXFoEFOCitURVJaScSGIERVxaBBTgorVEVSWknEhiBGUkFOQ0EKK1RFUlpJxIYgSkVWUkVNCitURVJaScSGIEpPVkFOCitURVJaScSGIE1JTEFOCitURVJaScSGIE1JTEFOCitURVJaScSGIE1JTEVOQQorVEVSWknEhiBNSUxFTktPCitURVJaScSGIE1JTElDQQorVEVSWknEhiBNSU9EUkFHCitURVJaScSGIE1JT0RSQUcKK1RFUlpJxIYgTklLT0xBCitURVJaScSGIE5KRUdPU0FWQQorVEVSWknEhiBQQVZMRQorVEVSWknEhiBQRVJLQQorVEVSWknEhiBQRVRBUiBEUgorVEVSWknEhiBQRVRBUgorVEVSWknEhiBQRVRBUgorVEVSWknEhiBSRUxKQQorVEVSWknEhiBTQVZBCitURVJaScSGIFNMQVZLTworVEVSWknEhiBTTEFWS08KK1RFUlpJxIYgU0xBVk5BCitURVJaScSGIFNMT0JPREFOCitURVJaScSGIFNSQklTTEFWCitURVJaScSGIFNUQU5LQQorVEVSWknEhiBURU9ET1IKK1RFUlpJxIYgVEVSRVpBCitURVJaScSGIFRSSUZVTgorVEVSWknEhiBWRVJBCitURVJaScSGIFZMQURBTgorVEVSWknEhiBWT0pJU0xBVgorVEVSWklKQSBNSVRBUgorVEVSWklOIEJSQU5JU0xBVgorVEVSWklOIEJSQU5LTworVEVSWklOIERSQUdPU0xBVgorVEVSWklOIERVxaBBTgorVEVSWklOIEpPVkFOS0EKK1RFUlpJTiBKT1ZBTktBCitURVJaSU4gTEpVQklDQQorVEVSWklOIE1JTEFOCitURVJaSU4gTUlMSU5BCitURVJaSU4gTUlSSkFOQQorVEVSWklOIE1JUk9TTEFWQQorVEVSWklOIE1JUk9TTEFWQQorVEVSWklOIE1JVEEKK1RFUlpJTiBORVZFTktBCitURVJaSU4gUkFESVZPSgorVEVSWklOIFJBRE1JTEEKK1RFUlpJTiBSSVNUQQorVEVSWklOIFNMT0JPREFOCitURVJaSU4gU1RBTktPCitURVJaSU4gVE/FoEEKK1RFUlpJTiBWQVNBCitURVJaSU4gVkVMSU1JUgorVEVSWklOIFZFTEpLTworVEVSWklOIFZFUklDQQorVEVSWklOIFZFU0VMSU4KK1RFUlpJTiBWT0pJU0xBVgorVEVTTEEgxaBQSVJPCitURVNMQSBCUkFOS08KK1RFU0xBIERSQUdBTgorVEVTTEEgTUlSQQorVEVTTEnEhiDEkE9SxJBFCitURVNMScSGIE1BS1NJTQorVEVTTEnEhiBNQVJLTworVEVTTEnEhiBWTEFESU1JUgorVEVTVElOIE1BUklKQQorVEnFoEFOT1ZJxIYgTUlMSVZPSgorVEnFoEnEhiBNSUxFTkEKK1RJxaBNQSDEjEVET01JUgorVEnFoE1BIMW9RUxKS08KK1RJxaBNQSDEkFVSSUNBCitUScWgTUEgQU5EUkVKCitUScWgTUEgQlJBTktPCitUScWgTUEgRFXFoEFOCitUScWgTUEgRFXFoEFOCitUScWgTUEgSUxJSkEKK1RJxaBNQSBKT1ZBTgorVEnFoE1BIExBWkFSCitUScWgTUEgTEpJTEpBTkEKK1RJxaBNQSBNQVJJSkEKK1RJxaBNQSBNQVJUQQorVEnFoE1BLU1JTE/FoEVWU0tJIE5BVEHFoEEKK1RJxaBNQSBNSUxPxaAKK1RJxaBNQSBNSVJLTworVEnFoE1BIE1PTUlSCitUScWgTUEgTklLT0xBCitUScWgTUEgU0lOScWgQQorVEnFoE1BIFNNSUxKQQorVEnFoE1BIFNURVZBTgorVEnFoE1BIFNWRVRPWkFSCitUScWgTUEgVk9KSU5LQQorVEnFoE1BIFZPSklOCitUScWgTUEgWk9SQU4KK1RJQkFJIEnFoFRWQU4KK1RJQyBBTkFNQVJJSkEKK1RJQ0EgQk/FvU8KK1RJQ0EgQ1ZFVEEKK1RJQ0EgRE1JVEFSCitUSUNBIERSQUdBTgorVElDQSBKT1ZBTgorVElDQSBNSUxPxaAKK1RJQ0EgTkVERUxKS08KK1RJR0FOSiBBTlRFCitUSUhJIEpPU0lQCitUSUhPTUlST1ZJxIYgTUlMQU4KK1RJSE9NSVJPVknEhiBWRUxKS08KK1RJSFZJTlNLSSBWTEFEQU4KK1RJSFZJTlNLSSBWTEFESU1JUiBESVBMIElORworVElKQU5JxIYgTUlMT8WgCitUSUpBTknEhiBTTUlMSkEKK1RJSkFOScSGIFpPUkFOCitUSUtWRcWgQSBOQUlMQQorVElLVknEhiBCT8WgS08KK1RJS1ZJxIYgTUlST1NMQVYKK1RJS1ZJQ0tJIEhSVk9KRQorVElLVklDS0kgTUFSSUpBTkEKK1RJTCBFRFZJTiBEUgorVElNQVJBQyBCUkFOS08KK1RJTUFSQUMgU1RPSkFOCitUSU1BUk9WIMSQT1LEkEUKK1RJTUFST1YgU1RFVkFOCitUSU1BUk9WIFZBU0EKK1RJTUFST1YgVkVSQQorVElNSUxJxIYgRElNSVRSSUpFCitUSU1LTyBJUklORUoKK1RJTUtPIExKVUJPVgorVElNS08gTUVMQU5JSkEKK1RJTUtPIE5FU1RPUgorVElNS08gVkVSQQorVElNS08gVkxBRElNSVIKK1RJTU9UScSGIMSQT1LEkEUKK1RJTU9UScSGIFNUQU5BCitUSU1PVEnEhiBVUk/FoAorVElNT1RJSkVWScSGIEFOSUNBCitUSU1PVElKRVZJxIYgQk/FvUlEQVIKK1RJTU9USUpFVknEhiBESU1JVFJJSkUKK1RJTU9USUpFVknEhiBKRVZSRU0KK1RJTU9USUpFVknEhi1LT1BSSVZJQ0EgTUFKQQorVElNT1RJSkVWScSGIE1JUk9TTEFWCitUSU1PVElKRVZJxIYgT0xHQQorVElNT1RJSkVWScSGIFBMRU1FTktBCitUSU1PVElKRVZJxIYgUkFET1NMQVYKK1RJTktPVknEhiBUT01JU0xBVgorVElOVEVSIEhFRFZJR0EKK1RJTlRPUiDEkFVSQQorVElOVE9SIERVxaBBTgorVElOVE9SIE1BUktPCitUSU5UT1IgTUlMS0EKK1RJTlRPUiBNSU9EUkFHCitUSU5UT1IgTUlSQQorVElOVE9SLVJBRE9NSVIgU1RPSkEKK1RJTlRPUiBTVEVWQU4KK1RJTlVTIEJFUk5BREVUQQorVElOVVMgTUFSVEEKK1RJT0RPUk9WScSGIExKSUxKQU5BCitUSU9ET1JPVknEhiBSQURPVkFOCitUSVDFoElOIEJPUklTTEFWCitUSVBVUkEgSk9TSVAKK1RJUFVSQSBKT1NJUAorVElQVVJBIExBRElTTEFWCitUSVBVUkEgTEFTTE8KK1RJUiBJxaBUVkFOCitUSVIgTUlMS0EKK1RJUiBQRVRBUgorVElSSSBBTlRBTAorVElSSU5EQSDEkFVSQQorVElSSU5HRVIgRUxaQQorVElSS0FKTEEgQU5BCitUSVJLQUpMQSBTTEFWT01JUgorVElSTkFOScSGIEJJU0VSS0EKK1RJU0lOT1ZJxIYgSkVMSVNBVkVUQQorVElTVEEgRVLFvUVCRVQKK1RJU1RBIEpBTk/FoAorVElURUxBQyDEkE9SxJBFCitUSVRFTEFDIMSQT1LEkEUKK1RJVEVMQUMgSkVMRU5BCitUSVRFTEFDIEpPVkFOCitUSVRFTEFDIE1JTElOS0EKK1RJVEVMQUMgTkFEQQorVElURUxBQyBTVEVWQU4KK1RJVEVMQUMgWk9SSUNBCitUSVRPViBBTEVLU0FOREFSCitUSVRPViBBTkEKK1RJVE9WIEFOSUNBCitUSVRPViBFVkdFTklKRQorVElUT1YgUEFWTEUKK1RJVE9WIFRPTUlTTEFWCitUS0FMxIxFQyBKT1ZBTgorVEtBTEVDIFBBVkFPCitUT8WgScSGIMW9QVJLTworVE/FoEnEhiBCT1JJU0xBVkEKK1RPxaBJxIYgQk9SSVNMQVYKK1RPxaBJxIYgQlJBVElTTEFWCitUT8WgScSGIEJSQVRJU0xBVgorVE/FoEnEhiBEQU5JQ0EKK1RPxaBJxIYgRFJBR0FOCitUT8WgScSGIERSQUdBTgorVE/FoEnEhiBEVcWgQU4KK1RPxaBJxIYgRFXFoEFOCitUT8WgScSGIERVxaBBTgorVE/FoEnEhiBFUsW9RUJFVAorVE/FoEnEhiBFVklDQQorVE/FoEnEhiBHT0pLTworVE/FoEnEhiBKRUxBCitUT8WgScSGIEpPVkFOCitUT8WgScSGIEpPVklDQQorVE/FoEnEhiBLUlNUQU4KK1RPxaBJxIYgS1JTVE9NSVIKK1RPxaBJxIYgTEpVQklDQQorVE/FoEnEhiBMSlVCSU5LTworVE/FoEnEhiBNSUhBSkxPCitUT8WgScSGIE1JTEFOCitUT8WgScSGIE1JTEFOCitUT8WgScSGIE1JTEFOCitUT8WgScSGIE1JTEVWQQorVE/FoEnEhiBNSUxFCitUT8WgScSGIE1JTE/FoAorVE/FoEnEhiBNSUxPUkFECitUT8WgScSGIE1JTFVUSU4KK1RPxaBJxIYgTUlPRFJBRworVE/FoEnEhiBNSVJLTworVE/FoEnEhiBNSVRBUgorVE/FoEnEhiBORURFTEpLTworVE/FoEnEhiBORVZFTktBCitUT8WgScSGIE5JS09MQQorVE/FoEnEhiBOSUtPCitUT8WgScSGIE5PVkFLCitUT8WgScSGIE9CUkFECitUT8WgScSGIE9TVE9KQQorVE/FoEnEhiBQRVJPCitUT8WgScSGIFBFVEFSCitUT8WgScSGIFJBREUKK1RPxaBJxIYgUkFET01JUgorVE/FoEnEhiBSQURPTUlSCitUT8WgScSGIFJBVEtPCitUT8WgScSGIFNBVkEKK1RPxaBJxIYgU0xBVktBCitUT8WgScSGIFNPRklKQQorVE/FoEnEhiBTVEFOSU1JUgorVE/FoEnEhiBTVEVWQU4KK1RPxaBJxIYgU1RFVkFOCitUT8WgScSGIFNWRVRJU0xBVgorVE/FoEnEhiBTVkVUTEFOQQorVE/FoEnEhiBWRUxJQk9SCitUT8WgScSGIFZFUkEKK1RPxaBJxIYgVklECitUT8WgScSGIFZMQURPCitUT8WgScSGIFZMQVNUSU1JUgorVE/FoEnEhiBWT0pJTgorVE/FoElOT1ZJxIYgTFVLQQorVE/FoEtPViBIUkFOSVNMQVYKK1RPxaBLT1YgUEVSQQorVE/FoEtPVknEhiBWVcSMRVRBCitUT8WgS09WScSGIFZVxIxJxIYKK1RPxaBLT1ZJxIYgWkRSQVZLTworVE/FoE9WScSGIE1JTEFOS0EKK1RPxaBPVknEhiBNSUxPSkUKK1RPxJBFUiBLT1NUQQorVE9CRMW9ScSGLUJSQcWgQU5BQyBNSVJPU0xBVkEKK1RPQkTFvUnEhiBLQVRBUklOQQorVE9CRMW9ScSGIE1JTEVOS08KK1RPQkTFvUnEhiBTVEVWQU4KK1RPQkkgTUFSSUpBCitUT0JJIE1JUk9TTEFWCitUT0JJQcWgIFZJTE1PxaAKK1RPQk9MS0EgQU5BCitUT0JPTEtBIERBTklFTAorVE9CT0xLQSBFUklLQQorVE9CT0xLQSBJxaBUVkFOCitUT0JPTEtBIElMT05BCitUT0RJxIYgQk9HREFOCitUT0RJxIYgQk9SSVNMQVYKK1RPREnEhiBCT1JJU0xBVgorVE9EScSGIEJSQU5JU0xBVgorVE9EScSGIERBTklKRUxBCitUT0RJxIYgR09KS08gRElQTCBJTkcKK1RPREnEhiBNQVJJSkFOQQorVE9EScSGIE1JTEFOS08KK1RPREnEhiBNSUxBTgorVE9EScSGIE1JTEUKK1RPREnEhiBNSUxPxaAgRElQTCBJTkcKK1RPREnEhiBNSUxPxaAKK1RPREnEhiBNSVJPU0xBVgorVE9EScSGIE5FxJBPCitUT0RJxIYgUkFESVZPSgorVE9EScSGIFJBSktPCitUT0RJxIYgUkFUT01JUgorVE9EScSGIFNUQU5JU0FWQQorVE9EScSGIFNUQU5LTworVE9EScSGIFRPTUlTTEFWCitUT0RJxIYgVkVMSU1JUgorVE9EScSGIFZMQURPCitUT0RPxaBLT1ZJxIYgQk9HREFOCitUT0RPxaBLT1ZJxIYgTkFEQQorVE9ET8WgS09WScSGIE5FTUFOSkEKK1RPRE9SxIxFVknEhiBEUkFHVVRJTgorVE9ET1LEjEVWScSGIE9TVE9KQQorVE9ET1LEjEVWScSGIFBFUk8KK1RPRE9SxIxFVknEhiBTVkVUTEFOQQorVE9ET1LEjEVWScSGIFZBU0lMSUpFCitUT0RPUsSMRVZJxIYgVkFTTworVE9ET1LEjEVWScSGIFZPSklOCitUT0RPUkFOIFRSQUpBTgorVE9ET1JJxIYgxIxFRE9NSVIKK1RPRE9SScSGIEJSQU5LTworVE9ET1JJxIYgRFJBR0FOCitUT0RPUknEhiBHT0pLTworVE9ET1JJxIYgSUxJSkEKK1RPRE9SScSGIEpFTEVOQQorVE9ET1JJxIYgSk9WQU5LQQorVE9ET1JJxIYgSk9WQU4KK1RPRE9SScSGIExKVUJBCitUT0RPUknEhiBMSlVCSVZPSkUKK1RPRE9SScSGIE1BUklKQQorVE9ET1JJxIYgTUlMT8WgCitUT0RPUknEhiBNSUxPxaAKK1RPRE9SScSGIE5FREVMSktPCitUT0RPUknEhiBOSUtPTEEKK1RPRE9SScSGIE5JS08KK1RPRE9SScSGIFJBRE1JTEEKK1RPRE9SScSGIFNFTElNSVIKK1RPRE9SScSGIFRSSVZVTkEKK1RPRE9ST1YgxJBVUkEKK1RPRE9ST1YgQUxFS1NBTkRBUgorVE9ET1JPViBCSVNFUktBCitUT0RPUk9WIERFU0FOS0EKK1RPRE9ST1YgR0xJxaBBCitUT0RPUk9WIElWQU4KK1RPRE9ST1YtSkHFoEFSRVZJxIYgREFOSUNBCitUT0RPUk9WIE1JTElWT0oKK1RPRE9ST1YgTUlMT8WgCitUT0RPUk9WIE5FREVMSktPCitUT0RPUk9WIE9CUkVOS0EKK1RPRE9ST1YgUkFET1ZBTgorVE9ET1JPViBST0JFUlQKK1RPRE9ST1YgU0FWQQorVE9ET1JPViBTTE9CT0RBTgorVE9ET1JPViBTUElSTyBEUgorVE9ET1JPViBUT01JU0xBVgorVE9ET1JPVknEhiDEjEVETworVE9ET1JPVknEhiDFvUFSS08KK1RPRE9ST1ZJxIYgxb1BUktPCitUT0RPUk9WScSGIMW9SVZPSklOCitUT0RPUk9WScSGIMW9SVZPVEEKK1RPRE9ST1ZJxIYgxb1JVk9UQQorVE9ET1JPVknEhiBBTEVLU0FOREFSCitUT0RPUk9WScSGIEFMRUtTQU5EQVIKK1RPRE9ST1ZJxIYgQUxFS1NBTkRBUgorVE9ET1JPVknEhiBBTsSQRUxLTworVE9ET1JPVknEhiBBTkEKK1RPRE9ST1ZJxIYgQU5LQQorVE9ET1JPVknEhiBBTlRVTgorVE9ET1JPVknEhiBCT8WgS08KK1RPRE9ST1ZJxIYgQk/FoEtPCitUT0RPUk9WScSGIEJPR0RBTgorVE9ET1JPVknEhiBCT1JJU0xBVgorVE9ET1JPVknEhiBCT1JJVk9KRQorVE9ET1JPVknEhiBCT1NBCitUT0RPUk9WScSGIEJSQU5JU0xBVgorVE9ET1JPVknEhiBCUkFOS08KK1RPRE9ST1ZJxIYgQlJBTktPCitUT0RPUk9WScSGIEJSQU5LTworVE9ET1JPVknEhiBCUkFOS08KK1RPRE9ST1ZJxIYgQ1ZFVEtPCitUT0RPUk9WScSGIENWSUpFVElOCitUT0RPUk9WScSGIENWSUpPCitUT0RPUk9WScSGIERBTklDQQorVE9ET1JPVknEhiBEQU5JTE8KK1RPRE9ST1ZJxIYgRElNSVRSSUpFCitUT0RPUk9WScSGIERPQlJPU0FWCitUT0RPUk9WScSGIERPQlJPU0FWCitUT0RPUk9WScSGIERSQUdBTgorVE9ET1JPVknEhiBEUkFHQU4KK1RPRE9ST1ZJxIYgRFJBR0FOCitUT0RPUk9WScSGIERSQUdBTgorVE9ET1JPVknEhiBEUkFHSUNBCitUT0RPUk9WScSGIERSQUdPTEpVQgorVE9ET1JPVknEhiBEUkFHT0xKVUIKK1RPRE9ST1ZJxIYgRFJBR09TTEFWCitUT0RPUk9WScSGIERSQUdPU0xBVgorVE9ET1JPVknEhiBEVcWgQU4KK1RPRE9ST1ZJxIYgRFXFoEFOCitUT0RPUk9WScSGIERVxaBBTgorVE9ET1JPVknEhiBEVcWgQU4KK1RPRE9ST1ZJxIYgRFXFoEtPCitUT0RPUk9WScSGIEdPSktPCitUT0RPUk9WScSGIEdPSktPCitUT0RPUk9WScSGIEdSQURJTUlSCitUT0RPUk9WScSGIElMRQorVE9ET1JPVknEhiBKQVNOQQorVE9ET1JPVknEhiBKRUxFTkEKK1RPRE9ST1ZJxIYgSkVMSUNBCitUT0RPUk9WScSGIEpFTElDQQorVE9ET1JPVknEhiBKT0tBCitUT0RPUk9WScSGIEpPVkFOS0EKK1RPRE9ST1ZJxIYgSk9WSUNBCitUT0RPUk9WScSGIEpVTElKQU5BCitUT0RPUk9WScSGIEtPVklOS0EKK1RPRE9ST1ZJxIYgTEFaQVIKK1RPRE9ST1ZJxIYgTEVOS0EKK1RPRE9ST1ZJxIYgTEpVQklDQQorVE9ET1JPVknEhiBMSlVCSUNBCitUT0RPUk9WScSGIExKVUJJTktBCitUT0RPUk9WScSGIExKVUJPTUlSCitUT0RPUk9WScSGIE1BUkEKK1RPRE9ST1ZJxIYgTUFSR0lUQQorVE9ET1JPVknEhiBNQVJJSkEKK1RPRE9ST1ZJxIYgTUFSS08KK1RPRE9ST1ZJxIYgTUFSS08KK1RPRE9ST1ZJxIYgTUFSS08KK1RPRE9ST1ZJxIYgTUnFoE8KK1RPRE9ST1ZJxIYgTUnEhkEKK1RPRE9ST1ZJxIYgTUnEhk8KK1RPRE9ST1ZJxIYgTUlIQUpMTworVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxBTgorVE9ET1JPVknEhiBNSUxFTktPCitUT0RPUk9WScSGIE1JTEUKK1RPRE9ST1ZJxIYgTUlMSUNBCitUT0RPUk9WScSGIE1JTEtBCitUT0RPUk9WScSGIE1JTE/FoAorVE9ET1JPVknEhiBNSUxPUkFECitUT0RPUk9WScSGIE1JTE9WQU4KK1RPRE9ST1ZJxIYgTUlSS08gRElQTCBJTkcKK1RPRE9ST1ZJxIYgTUlSS08gRFIgTEVLQVIKK1RPRE9ST1ZJxIYgTUlSS08KK1RPRE9ST1ZJxIYgTUlSS08KK1RPRE9ST1ZJxIYgTUlSS08KK1RPRE9ST1ZJxIYgTUlSS08KK1RPRE9ST1ZJxIYgTUlST1NMQVZBCitUT0RPUk9WScSGIE1JUk9TTEFWCitUT0RPUk9WScSGIE1MQURFTiBEUgorVE9ET1JPVknEhiBNTEFERU4KK1RPRE9ST1ZJxIYgTUxBRE9NSVIKK1RPRE9ST1ZJxIYgTU9NxIxJTE8KK1RPRE9ST1ZJxIYgTU9NxIxJTE8KK1RPRE9ST1ZJxIYgTU9NSVJLQQorVE9ET1JPVknEhiBOQURBCitUT0RPUk9WScSGIE5BREEKK1RPRE9ST1ZJxIYgTknEhklGT1IKK1RPRE9ST1ZJxIYgTklLT0xBCitUT0RPUk9WScSGIE5JS09MQQorVE9ET1JPVknEhiBPTEdJQ0EKK1RPRE9ST1ZJxIYgT1NUT0pBCitUT0RPUk9WScSGIFBFVEFSCitUT0RPUk9WScSGIFBFVEFSCitUT0RPUk9WScSGIFJBxaBLTworVE9ET1JPVknEhiBSQURBCitUT0RPUk9WScSGIFJBREnFoEEKK1RPRE9ST1ZJxIYgUkFESVZPSiBBRFZPS0FUCitUT0RPUk9WScSGIFJBRElWT0pFCitUT0RPUk9WScSGIFJBRElWT0oKK1RPRE9ST1ZJxIYgUkFETUlMQQorVE9ET1JPVknEhiBSQURPSktBCitUT0RPUk9WScSGIFJBRE9TTEFWCitUT0RPUk9WScSGIFJBSktPCitUT0RPUk9WScSGIFJBTktPCitUT0RPUk9WScSGIFJBVEtPCitUT0RPUk9WScSGIFJPU0EKK1RPRE9ST1ZJxIYgU0HFoEEKK1RPRE9ST1ZJxIYgU0FWQQorVE9ET1JPVknEhiBTQVZBCitUT0RPUk9WScSGIFNBVk8KK1RPRE9ST1ZJxIYgU0FWTworVE9ET1JPVknEhiBTRU5LQQorVE9ET1JPVknEhiBTSU1BCitUT0RPUk9WScSGIFNJTknFoEEKK1RPRE9ST1ZJxIYgU0xBVkUKK1RPRE9ST1ZJxIYgU0xPQk9EQU4KK1RPRE9ST1ZJxIYgU0xPQk9EQU4KK1RPRE9ST1ZJxIYgU01JTEpLQQorVE9ET1JPVknEhiBTTkXFvUFOQQorVE9ET1JPVknEhiBTT0ZJSkEKK1RPRE9ST1ZJxIYgU1JFRE9KRQorVE9ET1JPVknEhiBTUkVURU4KK1RPRE9ST1ZJxIYgU1RBTklNSVIKK1RPRE9ST1ZJxIYgU1RBTklTTEFWCitUT0RPUk9WScSGIFNUQU5LTworVE9ET1JPVknEhiBTVEVWQU4KK1RPRE9ST1ZJxIYgU1RFVkFOCitUT0RPUk9WScSGIFNURVZBCitUT0RPUk9WScSGIFRPREUKK1RPRE9ST1ZJxIYgVE9ERQorVE9ET1JPVknEhiBUT01JU0xBVgorVE9ET1JPVknEhiBUT01JU0xBVgorVE9ET1JPVknEhiBWRVJBCitUT0RPUk9WScSGIFZFUkEKK1RPRE9ST1ZJxIYgVkVSQQorVE9ET1JPVknEhiBWTEFERVRBCitUT0RPUk9WScSGIFZMQURJTUlSCitUT0RPUk9WScSGIFZMQURJTUlSCitUT0RPUk9WScSGIFZMQURJU0xBVgorVE9ET1JPVknEhiBWVUtBxaBJTgorVE9ET1JPVknEhiBaT1JBTgorVE9ET1JPVknEhiBaT1JBTgorVE9ET1JPVknEhiBaT1JBTgorVE9ET1JPVknEhiBaT1JBCitUT0RPUk9WScSGIFpPUktBCitUT0RPUk9WU0tJIE1BTkFTSUpFCitUT0RPUk9WU0tJIE1JUk9TTEFWCitUT0RPUk9WU0tJIE5BREEKK1RPRE9TSUpFVknEhiDEkE9SxJBFCitUT0RPU0lKRVZJxIYgRFJBR09MSlVCCitUT0RPU0lKRVZJxIYgTUlMQU4KK1RPRE9TSUpFVknEhiBaTEFUS08gRElQTCBQUkFWTklLCitUT0ZJTCBTT0ZJSkEKK1RPSE9MSiBKT1ZPCitUT0hPTEpFVknEhiBCT8WgS08KK1RPSE9MSkVWScSGIFpEUkFWS08KK1RPSkFHQSBNSUxBTgorVE9KQUdBIE1JTE/FoAorVE9KQUdBIFNWRVRPWkFSCitUT0pBR0nEhiDEkE9SxJBFCitUT0pBR0nEhiBCT8W9SURBUgorVE9KQUdJxIYgREFORQorVE9KQUdJxIYgREFOSUxPCitUT0pBR0nEhiBEVcWgQU4KK1RPSkFHScSGIEpFTEEKK1RPSkFHScSGIExVRE1JTEEKK1RPSkFHScSGIE1JUkpBTkEKK1RPSkFHScSGIE5JS09MQQorVE9KQUdJxIYgTklLT0xBCitUT0pBR0nEhiBSQURPVkFOCitUT0pBR0nEhiBTTE9CT0RBTgorVE9KWkFOIElMT05BCitUT0tBUiBKVUxJSkEKK1RPS0nEhiBLT1NBUkEKK1RPS0nEhiBNSUhBSkxPCitUT0tJxIYgTUlMQU4KK1RPS0nEhiBTQVZBCitUT0tJxIYgU0FWQQorVE9LScSGIFNBVkEKK1RPS0lOLcSQRVJJxIYgWkFHT1JLQQorVE9LSU4gxJBPUsSQRQorVE9LSU4gQUxJU0EKK1RPS0lOIEJPUkEKK1RPS0lOIERBTklDQQorVE9LSU4gUFJPS09QIERSIExFS0FSCitUT0tJTiBTTE9CT0RBTgorVE9LSU4gVkVSQQorVE9LSU4gVkxBREEKK1RPS09ESSBKQU5PxaAKK1RPS09ESSBKT0xBTktBCitUT0tPREkgTUFSR0lUQQorVE9LT1ZJxIYgSkVMSUNBCitUT0wgQU5EUkHFoAorVE9MIEpPxb1FRgorVE9MREkgRVZBCitUT0xESSBWSUxNT8WgCitUT0xJxIYgTUlMT8WgCitUT0xJxIYgVkVTTkEKK1RPTElDS0kgWk9SQQorVE9MSU1JUiBVUk/FoAorVE9MSkFHQSBWVUtPU0FWQQorVE9MSkVWScSGIEJSQU5LTworVE9MSkVWScSGIERPQlJJU0xBVgorVE9MSkVWScSGIERSQUdJQ0EKK1RPTEpJxIYgUkFKS08KK1RPTE1BxIwgWk9SQU4KK1RPTE1BxIxFViDFvUlWQQorVE9MTUHEjEVWIE1JUk9TTEFWCitUT0xOQUkgT1RPCitUT0xOQUkgUlXFvUEKK1RPTFQgSk/FvUVGCitUT0xUIEpPU0lQCitUT0xWQUogQUdORcWgCitUT0xWQUogRUxFT05PUkEKK1RPTFZFVCBPU0tBUgorVE9NxIxBTkpJIElWQU4KK1RPTcSMQU5KSSBNSVJPU0xBVkEKK1RPTcSMQU5KSSBTVEFOSVNMQVZBCitUT03EjEVWQSBORVZFTktBIERSCitUT03EjEVWU0tJIENWRVRBTgorVE9NxIxJxIYgxIxFRE9NSVIKK1RPTcSMT1YgVE9NxIxPCitUT03EjE9WQSBBTkVUQSBEUgorVE9NxIxPVkEgQU5JVEEgRFIKK1RPTcWgScSGIExBRElTTEFWCitUT01BIMWgQU5ET1IKK1RPTUEgQU5EUklKQQorVE9NQSBKQU5PxaAKK1RPTUEgSkFOT8WgCitUT01BIEpBTk/FoAorVE9NQSBKVUxJSkFOQQorVE9NQSBMQURJU0xBVgorVE9NQSBNQVJJSkEKK1RPTUEgTUlIQUpMTworVE9NQSBPTEdBCitUT01BIFBBTAorVE9NQSBST1pBTElKQQorVE9NQSBTVEVWQU4KK1RPTUHFoCDEkFVSQQorVE9NQcWgIEpBTktPCitUT01BxaAgSk9WQU4KK1RPTUHFoCBNSUxPUkFECitUT01BxaAgTUlMT1ZBTgorVE9NQcWgIFNUT0pBTktBCitUT01BxaBFViBCT8W9SURBUgorVE9NQcWgRVYgS09WSU5LQQorVE9NQcWgRVYgTUFUSUpBCitUT01BxaBFViBNQVRJSkEKK1RPTUHFoEVWIFBFVEFSCitUT01BxaBFViBWRVJBCitUT01BxaBFVknEhiBCTEFHT1RBCitUT01BxaBFVknEhiBCT8W9SURBUgorVE9NQcWgRVZJxIYgQk9SSVNMQVYKK1RPTUHFoEVWScSGIERSQUdBTkEKK1RPTUHFoEVWScSGIEVWSUNBCitUT01BxaBFVknEhiBJVkFOCitUT01BxaBFVknEhiBKRUxJQ0EKK1RPTUHFoEVWScSGIEpPVkFOCitUT01BxaBFVknEhiBLT1NUQQorVE9NQcWgRVZJxIYgTEpVQknFoEEKK1RPTUHFoEVWScSGIExKVUJJQ0EKK1RPTUHFoEVWScSGIExVS0EKK1RPTUHFoEVWScSGIE1BTk9KTEUKK1RPTUHFoEVWScSGIE1JTEVOS08KK1RPTUHFoEVWScSGIE1JTElWT0oKK1RPTUHFoEVWScSGIE1JTEtBCitUT01BxaBFVknEhiBNSUxPUkFECitUT01BxaBFVknEhiBNSU9EUkFHCitUT01BxaBFVknEhiBNSU9EUkFHCitUT01BxaBFVknEhiBOQURBCitUT01BxaBFVknEhiBOQURFxb1EQQorVE9NQcWgRVZJxIYgUkFESVZPSgorVE9NQcWgRVZJxIYgUkFET0pLQQorVE9NQcWgRVZJxIYgUkFET0pLQQorVE9NQcWgRVZJxIYgU0FWTworVE9NQcWgRVZJxIYgU0xPQk9EQU4KK1RPTUHFoEVWScSGIFNWRVRPTUlSCitUT01BxaBFVknEhiBWTEFESU1JUgorVE9NQcWgRVZJxIYgVk9KSVNMQVYKK1RPTUHFoEnEhiDEkFVSQQorVE9NQcWgScSGIEJFUlRBCitUT01BxaBJxIYgTUFSVElOCitUT01BxaBJxIYgTUlSSkFOQQorVE9NQcWgScSGIFRJQk9SCitUT01BQyBJVkFOCitUT01BQyBNSVJPU0xBVgorVE9NQUMgUlXFvUlDQQorVE9NQU4gRElOCitUT01BTiBGUkFOSkEKK1RPTUFOIEpPxb1FRgorVE9NQU4gTEFTTE8KK1RPTUFOIE1BR0RPTE5BCitUT01BTknEhiBEVcWgQU4KK1RPTUFOScSGLUxBQ0tPVknEhiBNSUxFTkEKK1RPTUFOScSGIE1JTEVOQQorVE9NQU5JxIYgWkRFTktBCitUT01BTk9WScSGIEJSQU5JU0xBVgorVE9NQU5PVknEhiBNQVJJSkEKK1RPTUFOT1ZJxIYgTUlPRFJBRworVE9NQU5PVknEhiBSQUpLTworVE9NQU5PVknEhiBUT01JU0xBVgorVE9NQVMgQU5EUklKQQorVE9NQVMgSk9TSVAKK1RPTUFTIFJVRE9MRgorVE9NQVMgWkRSQVZLQQorVE9NRUMgVkxBRElTTEFWCitUT01JxIxJxIYgQU5URQorVE9NScSMScSGIENWSUpPCitUT01JxIxJxIYgSk9WTworVE9NScSMScSGIFBFVEFSCitUT01JxIxJxIYgU1RPSkEKK1RPTUnEjEnEhiBUT01JU0xBVgorVE9NScSMSU4gTUFSSUpBCitUT01JxIYgxIxFRE9NSVIgRElQTCBJTkcKK1RPTUnEhiDEjEVET01JUgorVE9NScSGIMW9RUxKS08KK1RPTUnEhiDFvUlWS08KK1RPTUnEhiDFvUlWT0pJTgorVE9NScSGIMSQT1LEkEUKK1RPTUnEhiDEkFVSxJBJQ0EKK1RPTUnEhiDEkFVSxJBJTktBCitUT01JxIYgxJBVUklDQQorVE9NScSGIEFMRUtTQU5EQVIKK1RPTUnEhiBBTEVLU0FOREFSCitUT01JxIYgQUxFS1NBTkRBUgorVE9NScSGIEFMRUtTQU5EQVIKK1RPTUnEhiBBTEVLU0FOREFSCitUT01JxIYgQUxFS1NBCitUT01JxIYgQU5BCitUT01JxIYgQU5HRUxJTkEKK1RPTUnEhiBBTktBCitUT01JxIYgQU5LSUNBCitUT01JxIYgQU5LSUNBCitUT01JxIYgQVJJSkFETkEKK1RPTUnEhiBCSUxKQU5BCitUT01JxIYgQk/FoEtPCitUT01JxIYgQk/FoEtPCitUT01JxIYgQk/FvUlEQVJLQQorVE9NScSGIEJPR0RBTktBCitUT01JxIYgQk9KS0EKK1RPTUnEhiBCT1JJU0xBViBEUiBJTkcKK1RPTUnEhiBCT1JJU0xBVgorVE9NScSGIEJPU0lMSktBCitUT01JxIYgQlJBTktPCitUT01JxIYgREFOSUNBCitUT01JxIYgREFOSUxPIE1SCitUT01JxIYgREFSSU5LQQorVE9NScSGIERFSkFOCitUT01JxIYgREVWQQorVE9NScSGIERSQUdBTgorVE9NScSGIERSQUdBTgorVE9NScSGIERSQUdBTgorVE9NScSGIERSQUdBCitUT01JxIYgRFJBR0EKK1RPTUnEhiBEUkFHT0xKVUIKK1RPTUnEhiBEUkFHVVRJTgorVE9NScSGIERVxaBBTgorVE9NScSGIERVxaBBTgorVE9NScSGIERVxaBJQ0EKK1RPTUnEhiBFVkEKK1RPTUnEhiBFVkEKK1RPTUnEhiBHT1JEQU5BCitUT01JxIYgR1JBRElNSVIKK1RPTUnEhiBJTEUKK1RPTUnEhiBJTEUKK1RPTUnEhiBJTElKQQorVE9NScSGIElMSUpBCitUT01JxIYgSUxJSkEKK1RPTUnEhiBJVkFOCitUT01JxIYtSVZJxIxJxIYgQklMSkFOQQorVE9NScSGIEpFTEVOQQorVE9NScSGIEpFTElDQQorVE9NScSGIEpPU0lGCitUT01JxIYgSk9TSVAKK1RPTUnEhiBKT1ZBTktBCitUT01JxIYgSk9WQU4KK1RPTUnEhiBKT1ZBTgorVE9NScSGIEpPVkFOCitUT01JxIYgSlVMSUFOQQorVE9NScSGIEtBVEFSSU5BCitUT01JxIYgS09OU1RBTlRJTgorVE9NScSGIEtPUk5FTElBCitUT01JxIYgS09TQQorVE9NScSGIEtSU1RBCitUT01JxIYgTEFaQVIKK1RPTUnEhiBMQVpBUgorVE9NScSGIExFUE9TQVZBCitUT01JxIYgTEpJTEpBTkEKK1RPTUnEhiBMSklMSkEKK1RPTUnEhiBMSlVCQQorVE9NScSGIExKVUJJxaBBCitUT01JxIYgTEpVQknFoEEKK1RPTUnEhiBMSlVCScWgQQorVE9NScSGIExKVUJJTktBCitUT01JxIYgTEpVQk9NSVIKK1RPTUnEhiBMSlVCT01JUgorVE9NScSGIE1BUkdJVAorVE9NScSGIE1BUklKQQorVE9NScSGIE1BUklKQQorVE9NScSGIE1BUklKQQorVE9NScSGIE1BUklKQQorVE9NScSGIE1BUktPCitUT01JxIYgTUlKT0RSQUcKK1RPTUnEhiBNSUxBRElOCitUT01JxIYgTUlMQU4KK1RPTUnEhiBNSUxBTgorVE9NScSGIE1JTEFOCitUT01JxIYgTUlMQU4KK1RPTUnEhiBNSUxFTktPCitUT01JxIYgTUlMRU5LTworVE9NScSGIE1JTEUKK1RPTUnEhiBNSUxJVk9KCitUT01JxIYgTUlMS0EKK1RPTUnEhiBNSUxPxaAKK1RPTUnEhiBNSUxPxaAKK1RPTUnEhiBNSUxPTUlSCitUT01JxIYgTUlMT1JBRAorVE9NScSGIE1JTE9SQUQKK1RPTUnEhiBNSUxPU0FWCitUT01JxIYgTUlSSkFOQQorVE9NScSGIE1JUkpBTkEKK1RPTUnEhiBNSVJKQU4KK1RPTUnEhiBNSVJLTworVE9NScSGIE1JUktPCitUT01JxIYgTUlST1NMQVYKK1RPTUnEhiBNSVJPU0xBVgorVE9NScSGIE1JUk9TTEFWCitUT01JxIYgTUlST1NMQVYKK1RPTUnEhiBNSVRBUgorVE9NScSGIE1MQURFTgorVE9NScSGIE1PTcSMSUxPCitUT01JxIYgTU9NxIxJTE8KK1RPTUnEhiBOQVRBxaBBCitUT01JxIYgTkFUQUxJSkEKK1RPTUnEhiBORUJPSsWgQQorVE9NScSGIE5FREVMSktBCitUT01JxIYtTkVERUxKS09WScSGIERPQlJJTEEKK1RPTUnEhiBORURFTEpLTworVE9NScSGIE5FTkFECitUT01JxIYgTkVOQUQKK1RPTUnEhiBORU5BRAorVE9NScSGIE5JS09MQQorVE9NScSGIE5JS09MQQorVE9NScSGIE5PVklDQQorVE9NScSGIE9MR0lDQSBNUgorVE9NScSGIE9MSVZFUkEKK1RPTUnEhiBQQVZMRSBEUgorVE9NScSGIFBFTEtBCitUT01JxIYgUEVUQVIKK1RPTUnEhiBQRVRLTworVE9NScSGIFJBRElWT0pFCitUT01JxIYgUkFET1ZBTgorVE9NScSGIFJBRE9WQU4KK1RPTUnEhiBSQVRPTUlSCitUT01JxIYgUk9aQUxJSkEKK1RPTUnEhiBTQcWgQQorVE9NScSGIFNBVkEKK1RPTUnEhiBTQVZBCitUT01JxIYgU0VMSU1JUgorVE9NScSGLVNJTUlOIE1JTEtBCitUT01JxIYgU0lOScWgQQorVE9NScSGIFNMQVZJQ0EKK1RPTUnEhiBTTEFWSUNBCitUT01JxIYgU0xBVktPCitUT01JxIYgU0xBVktPCitUT01JxIYgU0xBVktPCitUT01JxIYgU0xBVk9MSlVCCitUT01JxIYgU0xPQk9EQU5LQQorVE9NScSGIFNMT0JPREFOCitUT01JxIYgU0xPQk9EQU4KK1RPTUnEhiBTTkXFvUFOQQorVE9NScSGIFNPRklKQQorVE9NScSGIFNUQU5LTworVE9NScSGIFNURVZBTgorVE9NScSGIFNURVZBTgorVE9NScSGIFNURVZBTgorVE9NScSGIFNURVZBTgorVE9NScSGIFNUSVBBCitUT01JxIYgU1RKRVBBTgorVE9NScSGIFNWRVRPWkFSCitUT01JxIYgU1ZFVE9aQVIKK1RPTUnEhiBUQVRKQU5BCitUT01JxIYgVE9ERQorVE9NScSGIFRPRE9SCitUT01JxIYgVkFMRVJJSkEKK1RPTUnEhiBWRUxKS08KK1RPTUnEhiBWRUxKS08KK1RPTUnEhiBWRVJBCitUT01JxIYgVkVSSUNBCitUT01JxIYgVkVTTkEKK1RPTUnEhiBWRVNOQQorVE9NScSGIFZFU05BCitUT01JxIYgVklECitUT01JxIYgVklOS08KK1RPTUnEhiBWTEFESU1JUgorVE9NScSGIFZMQURJTUlSCitUT01JxIYgVkxBU1RJTUlSCitUT01JxIYgVkxBU1RJTUlSCitUT01JxIYgVk9KSVNMQVZBCitUT01JxIYgVlVLT1NBVkEKK1RPTUnEhiBaT1JBTgorVE9NScSGIFpPUklDQQorVE9NScSGIFpPUktBCitUT01JxIYgWk9SS0EKK1RPTUnEhiBaT1JLQQorVE9NSUsgSk9WQU4KK1RPTUlLIFNPRklKQQorVE9NSUsgU1RFVkFOCitUT01JTiDFvUlWQU4KK1RPTUlOIEFMRUtTQU5EQVIKK1RPTUlOIEJSQU5JU0xBVgorVE9NSU4gQlJBTklTTEFWCitUT01JTiBESU1JVFJJSkUKK1RPTUlOIERSQUdBTgorVE9NSU4gRFJBR0FOCitUT01JTiBEUkFHSU5KQQorVE9NSU4gRFXFoEFOCitUT01JTiBHT1JEQU5BCitUT01JTiBMSlVCSUNBCitUT01JTiBMSlVCSUNBCitUT01JTiBNQVJJSkEKK1RPTUlOIE1JTEFOCitUT01JTiBNSUxVVElOCitUT01JTiBNSUxVVElOCitUT01JTiBNSVJPU0xBVgorVE9NSU4gTUlUQVIKK1RPTUlOIFJBRE9TTEFWCitUT01JTiBTVEVWQU4gRElQTCBQUkFWTklLCitUT01JTiBTVEVWQU4KK1RPTUlOIFNURVZBTgorVE9NSU4gU1RFVkFOCitUT01JTiBTVEVWQU4KK1RPTUlOIFNWRVRMQU5BCitUT01JTiBWQVNBCitUT01JTiBWSURPU0FWQQorVE9NSU7EjEnEhiBNSUxPVkFOCitUT01JTkFDIFZJTktPCitUT01LQSBBTFBBUgorVE9NS0EgS0FSTE8KK1RPTUxKQU5PVknEhiBCT0dPU0xBVgorVE9NTEpBTk9WScSGIExKVUJJQ0EKK1RPTUxKQU5PVknEhiBNQVJJSkEKK1RPTUxKQU5PVknEhiBNSUxBTgorVE9NTyBKT1NJUAorVE9NT1YgQk9HREFOCitUT01PViBNSVLEjEUKK1RPTU9WIFNBVkEKK1RPTU9WIFNMT0JPREFOCitUT01PViBUT8WgQQorVE9NT1YgVE9ET1IKK1RPTU9WIFZFTElOCitUT01PViBWRUxJTgorVE9NT1ZJxIYgQU7EkEEKK1RPTU9WScSGIEJPxb1JREFSCitUT01PVknEhiBCT1JJU0xBVgorVE9NT1ZJxIYgRFJBR0lOSkEKK1RPTU9WScSGIERVxaBBTgorVE9NT1ZJxIYgTUlUQVIKK1RPTU9WScSGIFJBRE9NSVIKK1RPTU9WScSGIFJBRE9TTEFWCitUT01PVknEhiBTVE9KQU5LQQorVE9NT1ZJxIYgVE9NTworVE9NT1ZJxIYgVkFTSUxJSkUKK1RPTU9WScSGIFpPUkFOCitUT01PVknEhiBaT1JJQ0EKK1RPTsSMRVYgSVZBTgorVE9ORE9MTyBTTUlMSkEKK1RPTknEhiDFvUlLSUNBCitUT05JxIYgUlXFvUlDQQorVE9OScSGIFNUT0pJTUVOCitUT05LT1ZJxIYgSk9DQQorVE9OS09WScSGIEpPU0lQCitUT05LT1ZJxIYgTUlMQU4KK1RPTktPVknEhiBNSUxBTgorVE9OVEUgRlJJxJBFxaAKK1RPTlRJxIYgxJBPUsSQRQorVE9OVEnEhiBEVcWgQU4KK1RPUEFMT1YgRFXFoEFOCitUT1BBTE9WIEdBVlJBIERJUEwgSU5HCitUT1BBTE9WIEpFTElDQQorVE9QQUxPViBNRUxBTklKQQorVE9QQUxPViBNRUxBTklKQQorVE9QQUxPViBNSUhBSkxPCitUT1BBTE9WIE1JTEVOQQorVE9QQUxPViBNSUxPxaAKK1RPUEFMT1YgTUlMT1JBRAorVE9QQUxPViBOQURBCitUT1BBTE9WIFBFVEFSCitUT1BBTE9WIFNPRklKQQorVE9QQUxPViBTUEFTT0pFCitUT1BBTE9WIFNUQU5JU0xBVkEKK1RPUEFMT1YgU1RFVkFOCitUT1BBTE9WIFNURVZBTgorVE9QQUxPViBTVEVWQU4KK1RPUEFMT1YgU1ZFVE9aQVIKK1RPUEFMT1YgVkFTSUxJSkUKK1RPUEFMT1YgVkVSQQorVE9QQUxPVknEhiBCT8W9TworVE9QQUxPVknEhiBEVcWgQU4KK1RPUEFMT1ZJxIYgRFVLQVRJTktBCitUT1BBTE9WScSGIEVNSUxJSkEKK1RPUEFMT1ZJxIYgSkVMRU5BCitUT1BBTE9WScSGIEpVTElKRQorVE9QQUxPVknEhiBNSUhBSkxPCitUT1BBTE9WScSGIE1JTEFOCitUT1BBTE9WScSGIE1JUktPCitUT1BBTE9WScSGIE5FVkVOS0EKK1RPUEFMT1ZJxIYgUkFET0pJQ0EKK1RPUEFMT1ZJxIYgU1RBTklKQQorVE9QQUxPVknEhiBWTEFKS08KK1RPUEFMU0tJIERBTklMTworVE9QQUxTS0kgRFXFoEFOS0EKK1RPUEFMU0tJLUZJxaBURcWgIE5BREEKK1RPUEFMU0tJIE1JTEVOQQorVE9QQUxTS0kgWk9SQU4KK1RPUEFSIE1BUklKQQorVE9QScSGIMSMRURPCitUT1BJxIYgxJBVUk8KK1RPUEnEhiBBTlRPCitUT1BJxIYgQ1ZJSkEKK1RPUEnEhiBEQU5JQ0EKK1RPUEnEhiBEQU5JQ0EKK1RPUEnEhiBEUkFHQU4KK1RPUEnEhiBEUkFHQU4KK1RPUEnEhiBJTElKQQorVE9QScSGIEpPVkFOCitUT1BJxIYgSk9WQU4KK1RPUEnEhiBMRU9OCitUT1BJxIYgTEpVQk8KK1RPUEnEhiBNQVJJSkEKK1RPUEnEhiBNSUxBRElOS0EKK1RPUEnEhiBNSUxBTgorVE9QScSGIE1JTElWT0pFCitUT1BJxIYgTUlMSVZPSgorVE9QScSGIE1JTE9SQUQKK1RPUEnEhiBNSUxPUkFECitUT1BJxIYgTUlMT1JBRAorVE9QScSGIE1JTE9SQUQKK1RPUEnEhiBNSUxPVkFOCitUT1BJxIYgTUlSS08KK1RPUEnEhiBNSVRBUgorVE9QScSGIE5BVEFMSUpBCitUT1BJxIYgTkXEkE8KK1RPUEnEhiBOSUtPCitUT1BJxIYgUEVUQVIKK1RPUEnEhiBSQVRLTworVE9QScSGIFNSRVRFTgorVE9QScSGIFNURVZBTgorVE9QScSGIFRBVEpBTkEKK1RPUEnEhiBWT0pJTgorVE9QScSGIFZPSklTTEFWCitUT1BLQSBBTEVLU0FOREFSCitUT1BLQSBBTEVLU0FOREFSCitUT1BMQUsgSU1SRQorVE9QTElDQSBBQkVESU4KK1RPUExJQ0EgR0FOSQorVE9QTElDQSBORcSQTUVESU4KK1RPUExJQ0EgUkFNQURBTgorVE9QTElDQSBaRcSGSVIKK1RPUExJQ0EgWkVOSUpBCitUT1BPIEFOVE9OSUpBCitUT1BPIExKVUJPTUlSCitUT1BPIE5FTkFECitUT1BPTMSMRVZJxIYgSk9WQU4KK1RPUE9MQUMgUkFESVZPSiBEUiBMRUtBUgorVE9QT0xJxIYgxJBVUkEKK1RPUE9MScSGIERVxaBBTgorVE9QT0xJxIYgUEVKQQorVE9QT0xKQU5JTiBWTEFESVNMQVZBCitUT1BPTEtPVknEhiBWTEFESU1JUgorVE9QT0xPVkHEjEtJIFJBRE9WQU4KK1RPUE9MT1ZBxIxLSSBWVUtPU0FWQQorVE9QUkVLIFNJTU8KK1RPUsSQQU5TS0kgQUxFS1NBTkRBUgorVE9SQkFST1YgRFXFoEFOCitUT1JCSUNBIEFMRUtTQQorVE9SQklDQSBCT1JJU0xBVgorVE9SQklDQSBEVcWgQU4KK1RPUkJJQ0EgRFXFoEFOCitUT1JCSUNBIElMSUpBCitUT1JCSUNBIEpFTEtBCitUT1JCSUNBIEpVTEtBCitUT1JCSUNBIE1BUklKQQorVE9SQklDQSBNSUxPxaAKK1RPUkJJQ0EgTUlST1NMQVYKK1RPUkJJQ0EgTkFEQQorVE9SQklDQSBSQURPU0xBVgorVE9SQklDQSBWRVJJQ0EKK1RPUkRBIEpBTktPCitUT1JEQUkgSUxPTkEKK1RPUkRBSSBNQVJJSkEKK1RPUkRBSSBTVkVUTEFOQQorVE9SREFKIE1JxaBLTworVE9SREFKSSBKQU5LTworVE9SRVIgxJBVUkEKK1RPUk1BIEdFWkEKK1RPUk1BIEpPU0lQCitUT1JNQSBKT1ZBTgorVE9STUEgTUFSR0lUQQorVE9STUEgU1RFVkFOCitUT1JNQSBWSUxJTQorVE9STUHFoEkgxJBFUsSQCitUT1JNQcWgSSBKQU5PxaAKK1RPUk1BxaBJIFNNSUxKS0EKK1RPUk1BxaBJIFNURVZBTgorVE9STU/FoEkgSk/FvUVGCitUT1JOSkFOU0tJIMW9QVJLTworVE9STkpBTlNLSSBCT1JJU0xBVgorVE9STkpBTlNLSSBCUkFOSVNMQVYKK1RPUk5KQU5TS0kgSkVMS0EKK1RPUk5KQU5TS0kgU1ZFVElTTEFWCitUT1JPSyDEjEFCQQorVE9ST01BTiBCUkFOSVNMQVYKK1RPUk9NQU4gTkXEkEVMSktPCitUT1JPTUFOIFJBRElTQVYKK1RPUk9NQU4gUkFETUlMQQorVE9ST01BTiBSQURPSklDQQorVE9ST1ZJxIYgVFJJUE8KK1RPUlRJxIYgQU5EUklKQQorVE9SVEnEhiBKT1NJUAorVE9SVEnEhiBNSUhBSkxPCitUT1JUScSGIFNURVZBTgorVE9SVEnEhiBWRVJBCitUT1NNQU4gSk9TSVAKK1RPU1VOT1ZJxIYgSkVMSVNBVkVUQQorVE9TVU5PVknEhiBNQVJJSkEKK1RPU1VOT1ZJxIYgVkxBRElNSVIKK1RPVCDFoEFORE9SCitUT1QgxaBBTkRPUgorVE9UIMWgQU5ET1IKK1RPVCBBTUFMSUpBCitUT1QgQU5BCitUT1QgQU5BCitUT1QgQU5EUkHFoAorVE9UIEFORFJJSkEKK1RPVCBBTkRSSUpBCitUT1QgQU5JQ0EKK1RPVCBBTlRBTCBESVBMIElORworVE9UIEFOVE9OSUpBCitUT1QgQVJQQUQKK1RPVC1BUlZBSSBBTlRBTAorVE9ULUFSVkFJIEpBTk/FoAorVE9ULUFSVkFJIEpBTk/FoAorVE9ULUJBR0kgSU1SRQorVE9ULUJBR0kgSkFOT8WgCitUT1QtQkFHSSBNQVJJSkEKK1RPVCBCQUxJTlQKK1RPVCBCRVJUQQorVE9ULUJPSk5JSyBERVpJREVSIERJUEwgSU5HCitUT1QgQk9SQQorVE9UIERFxb1FCitUT1QgRFXFoEFOS0EKK1RPVCBGRVJFTkMKK1RPVCBGRVJFTkMKK1RPVCBGRVJFTkMKK1RPVCBGRVJFTkMKK1RPVCBGRVJFTkMKK1RPVCBGUkFOSkEKK1RPVCBGUkFOSkEKK1RPVCBGUkFOSkEKK1RPVCBHQUJPUgorVE9UIEdFWkEKK1RPVC1IT1JUSSDFoEFORE9SCitUT1QgScWgVFZBTgorVE9UIEnFoFRWQU4KK1RPVCBJxaBUVkFOCitUT1QgSUJPTEpBIERSCitUT1QgSUxPTkEKK1RPVCBJTE9OQQorVE9UIElMT05BCitUT1QgSU1SRQorVE9UIElSRU5BCitUT1QgSVJFTkEKK1RPVCBJVkFOCitUT1QgSkFOT8WgCitUT1QgSkFOT8WgCitUT1QgSkFOT8WgCitUT1QgSkVMRU5BCitUT1QgSk/FvUVGCitUT1QgSk/FvUVGCitUT1QgSk/FvUVGCitUT1QgSk/FvUVGCitUT1QgSk/FvUVGCitUT1QgSk9TSVAKK1RPVCBKT1ZBTktBCitUT1QgSk9WQU4KK1RPVCBKVUxJSkFOQQorVE9UIEpVTElKQU5BCitUT1QgSlVMSUpBCitUT1QtS0HFoEEgQkxBxb0KK1RPVCBLQVJPTEoKK1RPVCBLQVJPTEoKK1RPVCBLQVRBUklOQQorVE9UIEtBVElDQQorVE9UIEtPVklMSktBCitUT1QgTEFKT8WgCitUT1QgTEFKT8WgCitUT1QgTEFTTE8gRFIKK1RPVCBMQVNMTworVE9UIExBU0xPCitUT1QgTEFTTE8KK1RPVCBMSVZJSkEKK1RPVCBNQUdET0xOQQorVE9UIE1BUkdJVEEKK1RPVCBNQVJHSVRBCitUT1QgTUFSSUpBCitUT1QgTUFSSUpBCitUT1QgTUFSSUpBCitUT1QgTUFSSUpBCitUT1QgTUlIQUxKCitUT1QgTUlIQUxKCitUT1QgTUlLTE/FoAorVE9UIE1JTEFOS0EKK1RPVCBNSUxLQQorVE9UIE1JUk9TTEFWCitUT1QgTkVCT0rFoEEKK1RPVCBPTEdBCitUT1QgUEFMSUtBCitUT1QgUEFMCitUT1QgUEFMCitUT1QgUEFMCitUT1QgUEFWTEUKK1RPVCBST1pBTElKQQorVE9UIFJPWkFMSUpBCitUT1QgU0lMVkVTVEVSCitUT1QgU1RFVkFOCitUT1QgU1RFVkFOCitUT1QgU1RFVkFOCitUT1QgU1RKRVBBTgorVE9UIFRFUkVaQQorVE9UIFRFUkVaQQorVE9UIFRJQk9SCitUT1QgVE9NSVNMQVYKK1RPVCBWQUxFUklKQQorVE9UIFZMQURJTUlSCitUT1QgVkxBRElTTEFWCitUT1QgWklUQQorVE9UIFpMQVRBCitUT1QgWk9MVEFOCitUT1QgWk9SQQorVE9UQVJWQUkgTUFSSUpBCitUT1RIIFNJTFZFU1RFUgorVE9UScSGIFNWRVRPWkFSCitUT1RPVknEhiBKT1ZBTktBCitUT1RPVknEhiBNSUxBTgorVE9WQVJMT8W9QSBEVcWgQU5LQQorVE9WRVJOScSGIFpPUkEKK1RPVklMT1ZJxIYgU1ZFVExBTkEKK1RPVklMT1ZJxIYgWk9SQU4KK1RPVklUT1ZJxIYgTklLT0xBCitUT1ZJVE9WScSGIFNMT0JPREFOCitUT1ZKQU5JTiBCSUxKQU5BCitUT1ZMSkFOScSGIERVxaBBTgorVE9WTEpBTknEhiBTQVZBCitUUkHFvUkgUEFMCitUUkFCQUsgS0FUQVJJTkEKK1RSQUlMT1ZJxIYgTkFEQQorVFJBSUxPVknEhiBTRUxJTUlSCitUUkFJTE9WScSGIFZPSklTTEFWCitUUkFKxIxFVknEhiBMRVBPU0FWQQorVFJBSsSMRVZTS0EgQU5JVEEKK1RSQUpBTk9WU0tJIExKVUJJQ0EKK1RSQUpBTk9WU0tJIExKVUJPCitUUkFKQU5PVlNLSSBNT0pTTworVFJBSkFOT1ZTS0kgVFJBSkFOCitUUkFKQkFSIEFET0xGCitUUkFKQkFSIFpWT05JTUlSCitUUkFKRVIgTEFESVNMQVYgRFIKK1RSQUpFUiBST0JFUlQKK1RSQUpLT1ZJxIYgQk/FvUlEQVIKK1RSQUpLT1ZJxIYgQlJBTklNSVIKK1RSQUpLT1ZJxIYgQlJBTklTTEFWCitUUkFKS09WScSGIEJSQU5LTworVFJBSktPVknEhiBESU1JVFJJSkUKK1RSQUpLT1ZJxIYgR0xJR09SSUpFCitUUkFKS09WScSGIE1JTEFOCitUUkFKS09WScSGIE1JTE9SQUQKK1RSQUpLT1ZJxIYgTkFEQQorVFJBSktPVknEhiBOQUpEQU4KK1RSQUpLT1ZJxIYgUlXFvUlDQQorVFJBSktPVknEhiBTTE9CT0RBTgorVFJBSktPVknEhiBTVE9KQURJTgorVFJBSktPVlNLSSBESU1JVFJJSkUKK1RSQUpLT1ZTS0kgTUVUT0RJSkUKK1RSQUpLT1ZTS0kgUEFOVEEKK1RSQUtJTE9WScSGIFZMQURBCitUUkFMSknEhiBJVkFOCitUUkFOREFGSVIgVkFTSUxJSkUKK1RSQU5LT0xPVknEhiBDVkVUQQorVFJBTktVTE9WIEpPxb1FRgorVFJBVU0gQVJBTktBCitUUkFWQU5KIEpPVkFOS0EKK1RSQVZBUiDEkFVSTworVFJBVkFSIExKVUJJxaBBCitUUkFWQVIgTUlMT1NBVgorVFJBVklDQSBNSUxBTgorVFJBVklDQSBNSUxFCitUUkFWSUNBIE5JS09MQQorVFJBVklDQSBSQURFCitUUkJBTk9TIMW9SVZBCitUUkJJxIYgQlJBTklTTEFWCitUUkJJxIYgTEpVQknFoEEKK1RSQknEhiBNSUxBRElOCitUUkJJxIYgTUlST1NMQVYKK1RSQknEhiBUQU1BUkEKK1RSQknEhiBWTEFESU1JUgorVFJCT0pFVknEhiDEkE9SxJBFCitUUkJPSkVWScSGIMSQVVJBxJAKK1RSQk9KRVZJxIYgQk9HT0xKVUIKK1RSQk9KRVZJxIYgQlJBTktPCitUUkJPSkVWScSGIERSQUdJQ0EKK1RSQk9KRVZJxIYgR0FWUkEKK1RSQk9KRVZJxIYgSURBCitUUkJPSkVWScSGIElMSUpBCitUUkJPSkVWScSGIEpPVkFOCitUUkJPSkVWScSGIExBWkEKK1RSQk9KRVZJxIYgTUFSSUNBCitUUkJPSkVWScSGIE1JTEUKK1RSQk9KRVZJxIYgTUlMSUNBCitUUkJPSkVWScSGIE5JS09MQQorVFJCT0pFVknEhiBOSUtPTEEKK1RSQk9KRVZJxIYgU1RFVkFOCitUUkJPTEpFVkFDIERSQUdPU0xBVgorVFJCT1ZJxIYgTUlIQUpMTyBESVBMIFBSQVZOSUsKK1RSQk9WScSGIE1JTEFOCitUUkJPVknEhiBNSUxBTgorVFJCT1ZJxIYgVkVTTkEKK1RSRcWgTkpJxIYgQUxFS1NBTkRSQQorVFJFxaBOSknEhiBKT1ZBTgorVFJFxaBOSknEhiBTVEVWQU4KK1RSRcSGQUtPViBTVE9KQU4KK1RSRUJBVElDS0kgQUxFS1NBTkRBUgorVFJFQkFUSUNLSSBBTEVLU0FOREFSCitUUkVCQVRJQ0tJIEpVU1RJTkEKK1RSRUJBVElDS0kgTUFSSUpBCitUUkVCScSMTklLLVZVxIxJxIYgT0xHQQorVFJFQk9WQUMgTUlMRQorVFJFTsSMRVZTS0kgTkFERcW9REEKK1RSRVBBTknEhiBNQUhNVVQKK1RSRVNJR0xBVknEhiBLQVRJQ0EKK1RSRVNJR0xBVknEhiBNSUxBTgorVFJFU0lHTEFWScSGIFNMQVZLTworVFJFU0lHTEFWScSGIFNURVZBTgorVFJFU0lHTEFWScSGIFZBU0EKK1RSRVNJR0xBVknEhiBWQVNBCitUUkVTS0nEhiBaRFJBVktPCitUUkdBTEEgxJBVUkEKK1RSR08gTkVWRU5LQQorVFJJxIxLT1ZJxIYgQU5LQQorVFJJxIxLT1ZJxIYgSlVMS0EKK1RSScSMS09WScSGIE1JT0RSQUcKK1RSScSMS09WScSGIFNJTknFoEEKK1RSScSMS09WScSGIFZFUklDQQorVFJJxaBJxIYgSFJBTklTTEFWCitUUknFoEnEhi1JTEnEhiBTVkVUTEFOQQorVFJJxaBJxIYgTUxBREVOCitUUklGS09WScSGIEpPVklDQQorVFJJRktPVknEhiBLVVpNQU4KK1RSSUZLT1ZJxIYgTEpVQklDQQorVFJJRktPVknEhiBNQVJLTworVFJJRktPVknEhiBNSUxBRElOCitUUklGS09WScSGIE1JTEFOCitUUklGS09WScSGIE1JTEFOCitUUklGS09WScSGIE1JTElTQVYKK1RSSUZLT1ZJxIYgTUlST1NMQVZBCitUUklGS09WScSGIE5FREVMSktPCitUUklGS09WScSGIFNSxJBBIERSCitUUklGS09WScSGIFZMQURJTUlSCitUUklGS09WScSGIFZPSklTTEFWCitUUklGVSBET1JVCitUUklGVU7EjEVWScSGIE1BUklKQQorVFJJRlVOxIxFVknEhiBNSUxPxaAKK1RSSUZVTkpBR0nEhiBTUEFTT0pFCitUUklGVU5KQUdJxIYgU1ZFVElTTEFWCitUUklGVU5PViBEQU5JTE8KK1RSSUZVTk9WIEpPU0lGCitUUklGVU5PViBNSU9EUkFHCitUUklGVU5PViBSQURNSUxBCitUUklGVU5PVknEhiDFvUlLSUNBCitUUklGVU5PVknEhiDFvUlWS0EKK1RSSUZVTk9WScSGIEJPxaBLTworVFJJRlVOT1ZJxIYgREFOS0EKK1RSSUZVTk9WScSGIERSQUdBTgorVFJJRlVOT1ZJxIYgRFJBR09NSVIKK1RSSUZVTk9WScSGIElMSU5LQQorVFJJRlVOT1ZJxIYgSkVMRU5BCitUUklGVU5PVknEhiBKT1ZBTgorVFJJRlVOT1ZJxIYgSk9WQU4KK1RSSUZVTk9WScSGIE1BS1NJTQorVFJJRlVOT1ZJxIYgTUlMSVNBVgorVFJJRlVOT1ZJxIYgTUlMT1JBRCBESVBMIElORworVFJJRlVOT1ZJxIYgTUlSSkFOQQorVFJJRlVOT1ZJxIYgTUlSS08KK1RSSUZVTk9WScSGIE5BREEKK1RSSUZVTk9WScSGIE5BREXFvURBCitUUklGVU5PVknEhiBORUdPVkFOS0EKK1RSSUZVTk9WScSGIE9MR0EKK1RSSUZVTk9WScSGIFBBVkxFCitUUklGVU5PVknEhiBQRVRBUgorVFJJRlVOT1ZJxIYgUEVUQVIKK1RSSUZVTk9WScSGIFJBRElWT0oKK1RSSUZVTk9WScSGIFJBRE1JTEEKK1RSSUZVTk9WScSGIFJBRE9NSVIgRElQTCBQUkFWTklLCitUUklGVU5PVknEhiBSVcW9SUNBCitUUklGVU5PVknEhiBTTEFWSUNBCitUUklGVU5PVknEhiBTTE9CT0RBTiBEUgorVFJJRlVOT1ZJxIYgU0xPQk9EQU4KK1RSSUZVTk9WScSGIFNPRklKQQorVFJJRlVOT1ZJxIYgU1RBTkEKK1RSSUZVTk9WScSGIFNWRVRJU0xBViBEUgorVFJJRlVOT1ZJxIYgU1ZFVE9NSVIKK1RSSUZVTk9WScSGIFRSSUZVTgorVFJJRlVOT1ZJxIYgVkFTQQorVFJJRlVOT1ZJxIYgVkVSQQorVFJJRlVOT1ZJxIYgVkxBREFOCitUUklGVU5PVknEhiBWTEFESU1JUgorVFJJRlVOT1ZJxIYgVkxBRElNSVIKK1RSSUZVTk9WScSGIFZPSklTTEFWCitUUklGVU5PVknEhiBWVUtPU0FWQQorVFJJRlVOT1ZJxIYgVlVLT1NBVgorVFJJS0nEhiBEUkFHSUNBCitUUklLScSGIE1JUktPCitUUklLScSGIFJPU0EKK1RSSUtJxIYgU1ZFVE9aQVIKK1RSSUtJxIYgVkxBRElNSVIKK1RSSVBLT1ZJxIYgTUlMQU4KK1RSSVBLT1ZJxIYgU0xPQk9EQU4KK1RSSVBPTFNLSSBNQVJJSkEKK1RSSVBVTk9WScSGIMSQT1LEkElKQQorVFJJUFVOT1ZJxIYgQkxBxb1PCitUUklQVU5PVknEhiBEUkFHT01JUgorVFJJUyBKQUtPQgorVFJJVkFOT1ZJxIYgRFJBR0FOCitUUklWQU5PVknEhiBSQURFCitUUklWQU5PVknEhiBTVEVWQU4KK1RSSVZBTk9WScSGIFZFUkEKK1RSSVZJxIYgQk9SSVMKK1RSSVZJxIYgQlJBTklTTEFWCitUUklWScSGIERPQlJJVk9KRQorVFJJVknEhiBEVcWgQU4KK1RSSVZJxIYgSk9WQU4KK1RSSVZJxIYgU1ZFVExBTkEKK1RSSVZVTsSMScSGIE1JUkEKK1RSSVZVTkTFvUEgTUlMT8WgCitUUklWVU5Exb1BIE5FTkFECitUUklWVU5JxIYgQk9HT0xKVUIKK1RSSVZVTknEhiBNSVJPU0xBVgorVFJJVlVOScSGIFJBTktPCitUUklWVU5PVknEhiBNTEFERU5LTworVFJJVlVOT1ZJxIYgU0lNTworVFJJVlVOT1ZJxIYgVElIT01JUgorVFJJWkxJxIYgU0xBVktPCitUUktMSkEgR09KS08KK1RSS0xKQSBNSVJLTworVFJLVUxKQSDFvUlWT1JBRAorVFJLVUxKQSBBTkEKK1RSS1VMSkEgQk/FoEtPCitUUktVTEpBIEJPUklTTEFWCitUUktVTEpBIEJSQU5LTworVFJLVUxKQSBEUkFHQU4KK1RSS1VMSkEgRFJBR0FOCitUUktVTEpBIEVTVEVSCitUUktVTEpBIEdPSktPCitUUktVTEpBIEdST1pEQQorVFJLVUxKQSBKT1ZBTgorVFJLVUxKQSBKVUxLQQorVFJLVUxKQSBNQVJJTktPCitUUktVTEpBIE1JTEFOCitUUktVTEpBIE1JTE9SQUQKK1RSS1VMSkEgTUlPRFJBRworVFJLVUxKQSBNSU9EUkFHCitUUktVTEpBIE5FREVMSktPCitUUktVTEpBIE5JS09MQQorVFJLVUxKQSBOT1ZBSworVFJLVUxKQSBOT1ZBSworVFJLVUxKQSBQRVRBUgorVFJLVUxKQSBSQU5LTworVFJLVUxKQSBTTEFWS08KK1RSS1VMSkEgU09GSUpBCitUUktVTEpBIFNPTkpBCitUUktVTEpBIFNURVZBTgorVFJLVUxKQSBTVE9KQU5LQQorVFJLVUxKQSBWTEFESVNMQVZBCitUUk3EjEnEhiBSQURPU0xBVgorVFJOxIxJxIYgTEFaTworVFJOQVZBQyBNSUxBTgorVFJOScSGIFJBRE1JTEEKK1RSTknEhiBWRVJBCitUUk5JTknEhiDFvUlWQU4KK1RSTklOScSGIMW9SVZPSklOCitUUk5JTknEhiDEkE9SxJBFCitUUk5JTknEhiDEkFVSQQorVFJOSU5JxIYgQk9HREFOCitUUk5JTknEhiBCT0pBCitUUk5JTknEhiBCT1JJVk9KCitUUk5JTknEhiBCT1NJTEpLQQorVFJOSU5JxIYgRE9CUklWT0oKK1RSTklOScSGIERSQUdBTgorVFJOSU5JxIYgRFJBR0FOCitUUk5JTknEhiBEVcWgQU4KK1RSTklOScSGIE1BUkEKK1RSTklOScSGIE1BUklKQQorVFJOSU5JxIYgTUlSS08KK1RSTklOScSGIE1JUktPCitUUk5JTknEhiBNSVJPU0xBVgorVFJOSU5JxIYgTU9NxIxJTE8KK1RSTklOScSGIE9MSVZFUkEKK1RSTklOScSGIFJBRElWT0oKK1RSTklOScSGIFJBRE9KS0EKK1RSTklOScSGIFJBRE9WQU4KK1RSTklOScSGIFNURVZBCitUUk5JTknEhiBWTEFESU1JUgorVFJOSkFLT1YgRFXFoEFOCitUUk5PVkFDIE5BREEKK1RST8SMQSBLT1JORUwKK1RST8WgRUxKQUMgTUFUTworVFJPxaBLSU4gU0FWRVRBCitUUk/FoEtJTiBUQU1BUkEKK1RST0pBTk9WIEVEVkFSRAorVFJPSkFOT1YgTUFSSUpBCitUUk9KQU5PViBST01BTgorVFJPSktPVknEhiBJTE9OQQorVFJPTUxFUiBMQVNMTworVFJQxIxFVknEhiBNSVJPU0xBVgorVFJQxIxFVlNLSSBUT03EjEUKK1RSUElOQUMgSkVMRU5BCitUUlBLQSBQQVZMRQorVFJQS0EgUEFWTEUKK1RSUE9WU0tJIFZBU0lMSgorVFJTVEVOSkFLIEZSQU5KQQorVFJUScSGIFNMQVZLTworVFJVxaBOT1ZFQyBJVkFOCitUUlVCQVJBQyBHQUJSSUpFTEEKK1RSVURBIEFMSUpBCitUUlVEScSGIElWQU4KK1RSVUpJxIYgRFXFoElDQQorVFJVSknEhiBNSUxPxaAgVkVURVJJTkFSCitUUlVNQknEhiBWRURSQU4KK1RSVU1JxIYgU09GSUpBCitUUlVNScSGIFZFUkEKK1RVxIxFViDFvUlWQU5LQQorVFXFoEVWIMW9SVZLTworVFXFoEpBSyBKQU4KK1RVxaBKQUsgSlVSQUoKK1RVxaBKQUsgTUlMT8WgCitUVcWgTkVLIE9USUxJSkEKK1RVxaBOSkFLIEFOQQorVFVCScSGIMW9SVZBTgorVFVCScSGIEFMRUtTQU5EQVIKK1RVQknEhiBCUkFOSVNMQVYKK1RVQknEhiBEUkFHVVRJTgorVFVCScSGIERVxaBBTgorVFVCScSGIERVxaBBTgorVFVCScSGIEpVR09TTEFWCitUVUJJxIYgTEVQT1NBVkEKK1RVQknEhiBNSUxBTgorVFVCScSGIE1JTEVOS08KK1RVQknEhiBNSUxJVk9KCitUVUJJxIYgTUlMT8WgCitUVUJJxIYgTUlMT0pLTworVFVCScSGIE1JTE9SQUQKK1RVQknEhiBOSUtPTEEKK1RVQknEhiBOT1ZBSworVFVCScSGIE9MR0EKK1RVQknEhiBQRVRBUgorVFVCScSGIFJBREEKK1RVQknEhiBSQURNSUxBCitUVUJJxIYgUkFET1ZBTgorVFVCScSGIFNBVkEKK1RVQknEhiBTVEFOS08KK1RVQknEhiBTVkVUT1pBUiBEUgorVFVCScSGIFZFUkEKK1RVQknEhiBWTEFESU1JUgorVFVCScSGIFpPUkFOCitUVUJJTiBLQVRBUklOQQorVFVCSU4gU1RPSkFOIERJUEwgSU5HCitUVUJJTiBTVE9KQQorVFVCSU4gVE9NSVNMQVYKK1RVQklOIFpPUktBCitUVUNBS09WIMSQT1LEkEUKK1RVQ0FLT1YgxJBPUsSQRQorVFVDQUtPViBCT8WgS08KK1RVQ0FLT1YgQk9HREFOS0EKK1RVQ0FLT1YgQk9SQQorVFVDQUtPViBCUkFOS08KK1RVQ0FLT1YgREFSSU5LQQorVFVDQUtPViBEUkFHQU4KK1RVQ0FLT1YgS0FNRU5LTworVFVDQUtPViBMQVRJTktBCitUVUNBS09WIE1BUklKQQorVFVDQUtPViBNQVJLTworVFVDQUtPViBNSUxBTgorVFVDQUtPViBNSUxBTgorVFVDQUtPViBNSUxJQ0EKK1RVQ0FLT1YgTk9WQUsKK1RVQ0FLT1YgUkFESVZPSgorVFVDQUtPViBSQURPSktBCitUVUNBS09WIFJBRE9TTEFWCitUVUNBS09WIFJBSktPCitUVUNBS09WIFNJTknFoEEKK1RVQ0FLT1YgVEFOQVNJSkUKK1RVQ0FLT1YgVkVSQQorVFVDQUtPViBWTEFESU1JUgorVFVDQUtPViBaT1JBTkEKK1RVQ0FLT1YgWk9SQQorVFVDQUtPVknEhiDEkE9SxJBFCitUVUNBS09WScSGIERBTklDQQorVFVDQUtPVknEhiBERVNBTktBCitUVUNBS09WScSGIEpPVkFOCitUVUNBS09WScSGIE1JTE/FoAorVFVDQUtPVknEhiBSQURPU0xBVgorVFVDScSGIMSQT1LEkEUKK1RVQ0nEhiBCUkFOSVNMQVYKK1RVQ0nEhiBMQVpBUgorVFVDScSGIE1JTEVOS08KK1RVQ0nEhiBNSVJPU0xBVkEKK1RVQ0nEhiBNSVJPU0xBVgorVFVDScSGIFZVSklDQQorVFVDT1ZJxIYgWk9SQQorVFVGRUdExb1JxIYgTUlMRU4KK1RVS0HEjCBNSUhBSkxPCitUVUtBTknEhiBFTkRSRQorVFVLQU5JxIYgSVJFTkEKK1RVS0FSIEZBRElMCitUVUtBUiBNSVJKQU5BCitUVUtJxIYgUEVUQVIKK1RVS0nEhiBTVE9KQU5LQQorVFVMQcSGIEpPVklDQQorVFVMRU7EjEnEhiBLQVRJQ0EKK1RVTEVOxIxJxIYgUkFET1NMQVZBCitUVUxFTsSMScSGIFJBRE9TTEFWCitUVUxJxIYgQk9SS08KK1RVTEnEhiBORVZFTktPCitUVUxVQkVDIMSQT1LEkEUKK1RVTFVCRUMgTUlMS0EKK1RVTFVCRUMgVkFTSUxJSkUKK1RVTUFSScSGIEJSQU5JU0xBVgorVFVNQVJJxIYgQ1ZFVElOCitUVU1BUknEhiBNSUxPUkFECitUVU1CQVMgQUdORVpBCitUVU1CQVMgSVZBTgorVFVNQkFTIExKVURFVklUCitUVU1JTiBEVcWgQU5LQQorVFVOR1VaIEpFTElTQVZFVEEKK1RVTknEhiBSQURPSklDQQorVFVOScSGIFJBSktPCitUVU5JxIYgU1BBU09KRQorVFVOScSGIFNURVZBTgorVFVOVEVWIE1BUklKQQorVFVQQU7EjEVWU0tJIE5JS09MQQorVFVQRUMgWlZPTklNSVIKK1RVUEnEhiBORVZFTktBCitUVVIgTUlIQUpMTworVFVSIFNVWkFOQQorVFVSxIxBTiBKQU4KK1RVUsSMQU4gSkFOCitUVVLEjEFOIEpVUkFKCitUVVLEjEFOIFZMQURJTUlSIFNVRElKQQorVFVSxIxJxIYgTUlST1NMQVZBCitUVVLFoEnEhiBKRUxFTkEKK1RVUsWgSUpBTiBWQVNBCitUVVJBSSBCRUxBCitUVVJBSSBNSUhBSkxPCitUVVJBSSBURVJFWkEKK1RVUkFKTEnEhiBNSUxFCitUVVJBSkxJSkEgQk/FvUlDQQorVFVSQUpMSUpBIE1JUk9TTEFWCitUVVJBTiDEkFVSQQorVFVSQU4gTEpVQklDQQorVFVSQU5TS0kgxJBPUsSQRQorVFVSQU5TS0kgRkVSRU5DCitUVVJBTlNLSSBHRVpBCitUVVJBTlNLSSBKQU5PxaAKK1RVUkFOU0tJIEpPU0lQCitUVVJBTlNLSSBMQVNMTworVFVSQU5TS0kgTUFSSUNBCitUVVJBTlNLSSBNQVJJSkEKK1RVUkFOU0tJIE1BVElKQQorVFVSQU5TS0kgUEVUQVIKK1RVUkFOU0tJIFNURVZBTgorVFVSSSBBUlBBRAorVFVSSSBUSUJPUgorVFVSScSGIExVS0EKK1RVUknEhiBNQVJJTktPCitUVVJJS0EgSk9TSU0KK1RVUklOU0tJIERVxaBBTgorVFVSSU5TS0kgRURJVEEKK1RVUklOU0tJIE1JTEVUQQorVFVSSU5TS0kgTUlPTUlSCitUVVJLIE1JUktPCitUVVJLIE5BREEKK1RVUktBTEogS0FUQQorVFVSS09WScSGIEhBS0lKQQorVFVSS09WScSGIE1JUktPCitUVVJLT1ZJxIYgTUlUQVIKK1RVUktPVknEhiBQRVRBUgorVFVSS09WScSGIFJBRklUCitUVVJLT1ZJxIYgVkxBRElNSVIKK1RVUktPVknEhiBaSU5LQQorVFVSS1VMT1Ygxb1BS0xJTkEKK1RVUktVTE9WIERVxaBBTgorVFVSS1VMT1YgSk9WQU4KK1RVUkxBS09WIENWRVRBTgorVFVSTkFKIFNMQVZPTEpVQiBESVBMIElORworVFVSTyBNSUhBTEoKK1RVUk9NQU4gTUlMT1JBRAorVFVST1BPTEpBQyBNScSGTworVFVSVURJxIYgTUlMQU4KK1RVUlVEScSGIE1JT0RSQUcKK1RVUlVESUpBIE1JTE9SQUQKK1RVUlVLQUxPIE1JT0RSQUcKK1RVUlVLQUxPIFJBRE1JTEEKK1RVUlVLQUxPIFpPUkEKK1RVUlpPIEpFTElTQVZFVEEKK1RVUlpPIEtBUkxPCitUVVRJxIYgSUxJSkEKK1RVVE5JTE9WScSGIE5BREEKK1RVVE5KRVZJxIYgQk/FvUVOS0EKK1RVVE5KRVZJxIYgQk9HREFOCitUVVROSkVWScSGIEpPVkFOCitUVVROSkVWScSGIE1JUk9TTEFWCitUVVROSkVWScSGIFJBRE9KS0EKK1RVVE9ST1YgREVTQU7EjEnEhgorVFVUT1JPViBKVUxLSUNBCitUVVRPUk9WIFNUQU5BCitUVVRPUk9WIFNURVZBTgorVFVUVUxVR0TFvUlKQSBNQVJBCitUVVZFRMW9ScSGIERSQUdBTkEKK1RVVknEhiBTTE9CT0RBTgorVFZSVEtPVknEhiBNQVJJTiBEUiBMRUtBUgorVcWgxIZFQlJLQSBMQVpBUgorVcWgxIZFQlJLQSBNSUxFTktPCitVxaDEhkVCUktBIFpMQVRPCitVxaDEhlVNTEnEhiBNSUxFTktPCitVxaDEhlVNTEnEhiBORcWgS08KK1XFoMSGVU1MScSGIFZVS0lDQQorVcWgQU4gSkFORVoKK1XFoEpBSyBKQU5LTworVcWgSkFLIEpBUk1JTEEKK1XFoEpBSyBWTEFTVEEKK1XFoExKRUJSS0EgTUlMT1JBRAorVcWgVElQQUsgSkVMQQorVcSGVUtBTE8gU0lNTworVcW9QVIgREVTQU5LQQorVcW9QVIgS0FUSUNBCitVxb1JxIxBTklOIMSQT1LEkEUKK1VCQVbEjEnEhiBTQVZBCitVQkFWScSGIERBUklOS0EKK1VCQVZJxIYgTEpVQklDQQorVUJBVknEhiBNT03EjElMTyBEUgorVUJJUEFSSVAgxIxFRE8KK1VCSVBBUklQIMW9SVZLTworVUJJUEFSSVAgR09KS08KK1VCSVBBUklQIElMRQorVUJJUEFSSVAgSkFOSkEKK1VCSVBBUklQIEpPVk8KK1VCSVBBUklQIE1BUklOS08KK1VCSVBBUklQIE1BUktPCitVQklQQVJJUCBNSUxBTgorVUJJUEFSSVAgTUlSS08KK1VCSVBBUklQIE1PTUlSCitVQklQQVJJUCBQQVZMRQorVUJJUEFSSVAgU0xBVktPCitVQklQQVJJUCBUT0RFCitVQklQQVJJUCBWT0pLTworVUJJUEFSSVAgWkRSQVZLTworVUJJUEFSSVAgWk9SQU4KK1VCT1JLQSDFoEFORE9SCitVQk9SS0EgTUFSVE9OCitVQk9SS0EgU1RFVktBCitVQk9STkpJIMWgQU5ET1IKK1VCT1JOSkkgQU5EUkHFoAorVUJPVknEhiBFVkEKK1VCT1ZJxIYgSkVGVEEKK1VCT1ZJxIYgSk9WSUNBCitVQk9WScSGIE1BUktPCitVQk9WScSGIE1JTE/FoAorVUJPVknEhiBQRVRSQQorVUJPVknEhiBSQUpLTworVUNBSiBWTEFESU1JUgorVURJQ0tJIFBBSkEKK1VESUNLSSBTTEFWSUNBCitVRElDS0kgU1JFRE9KRQorVURPVknEjEnEhiBCT0JBTgorVURPVknEjEnEhiBCUkFOS08KK1VET1ZJxIxJxIYgSVZBTgorVURPVknEjEnEhiBNT01JUgorVURPVknEjEnEhiBSQURPU0xBVgorVURPVknEjEnEhiBTVEVWQU4KK1VET1ZJxIxLSSBCUkFOS08gTEVLQVIKK1VET1ZJxIxLSSBKVUxLQQorVURPVknEjEtJIE9MR0lDQSBEUgorVURPVknEjEtJIFNMT0JPREFOCitVRE9WScSMS0kgU1ZFVE9aQVIKK1VEUklKQSBQRVRBUgorVURWQVJESSBLQVJMTworVUdBUsSMSU5BIEJPUklTTEFWCitVR0FSxIxJTkEgRFJBR0FOCitVR0FSxIxJTkEgSUxJSkEKK1VHQVJBSyDEkE9SxJBFCitVR0FSQUsgQk/FvU8KK1VHQVJBSyBEUkFHQU4KK1VHQVJBSyBEVcWgQU4KK1VHQVJBSyBQRVRBUgorVUdBUktPVknEhiBEQVJJTktBCitVR0FSS09WScSGIEpFTEEKK1VHQVJLT1ZJxIYgS0FUSUNBCitVR0FSS09WScSGIFNURVZBTgorVUdMSkXFoEnEhiBCT8WgS08KK1VHTEpFxaBJxIYgSElMREEKK1VHUsSMScSGIFZVS0lDQQorVUdSRcWgScSGIFBFVEFSCitVR1JFTSBNQVJJSkEKK1VHUkVNIFJBRE9WQU4KK1VHUkVOIE1JTE9SQUQKK1VHUkVOIFBFVEFSCitVR1JFTknEhiBMQVNMTworVUdSRU5JxIYgTUlIQUxKCitVR1JFTk9WScSGIFZVxIxJxIYKK1VHUkVOT1ZJxIYgVlVKQURJTgorVUdSSUNBIERSQUdBTgorVUdSSUNBIFNSRcSGS08KK1VHUklOIElMSUpBCitVR1JJTiBNSUxPVkFOCitVR1JJTsSMScSGIERBTklMS0EKK1VHUklOxIxJxIYgRE9CUklMQQorVUdSSU7EjEnEhiBNSUxJVk9KCitVR1JJTsSMScSGIE1JUkpBTkEgRFIKK1VHUklOxIxJxIYgU1RFVkFOCitVR1JJTsSMScSGIFZMQURBIERJUEwgSU5HCitVR1JJTk9WIMSQVVJJQ0EKK1VHUklOT1YgRE9CUklMQQorVUdSSU5PViBNSUxJQ0EKK1VHUklOT1YgTkFEQQorVUdSTk9WIFZMQURJTUlSCitVR1JOT1YgWk9SSUNBCitVSEVSIFZFUkEKK1VITEFSSUsgRUxJWkFCRVRBCitVSExBUklLIExBRElTTEFWCitVSExBUklLIFNURVZBTgorVUhPUiBQRVRBUgorVUogTUFSVE9OCitVSsSMScSGIEJMQcW9CitVSsSMScSGIFRPTUEKK1VKRElMT1ZJxIYgTUlMT1JBRAorVUpGQUxVxaAgVkVMSU1JUgorVUpGQUxVxaBJIMSQVVJBCitVSkZBTFXFoEkgSkFOS08KK1VKRkFMVcWgSSBKVUxJSkFOCitVSkZBTFXFoEkgTEpVQk9NSVIKK1VKRkFMVcWgSSBNSVJPU0xBVgorVUpGQUxVxaBJIE5JS09MQQorVUpGQUxVxaBJIFNJTFZFU1RFUgorVUpGQUxVxaBJIFZMQURJTUlSCitVSkZFTEpBTiBNSUxBTgorVUpIQVpJIEJPUknFoEtBCitVSkhBWkkgSVZBTgorVUpIQVpJIEpFTElTQVZFVEEKK1VKSEFaSSBMQURJU0xBVgorVUpIQVpJIE1JUktPCitVSkhFTEpJIEpPVkFOS0EKK1VKSEVMSkkgTUlIQUxKCitVSkxBS0/FoCBLQVJMTworVUpWQVJJIEdBQk9SCitVSlZBUkkgS0FUQUxJTgorVUtBxIxFSyBWRVJLQQorVUtST1BJTkEgxIxFREEKK1VLUk9QSU5BIERFU0FOS0EKK1VLUk9QSU5BIEpFTEVOQQorVUtST1BJTkEgSk9WQU5LQQorVUtST1BJTkEgSk9WQU4KK1VLUk9QSU5BIE1JTE9WQU4KK1VLUk9QSU5BIE5FQk9KxaBBCitVS1JPUElOQSBQQU5UTworVUtST1BJTkEgVE9NSVNMQVYKK1VMRU1FSyDEkFVSTworVUxJxIYgxb1FTEpLQQorVUxJxIYgxJBPUsSQRQorVUxJxIYgQUxFS1NBTkRBUgorVUxJxIYgRE9CUk9TTEFWCitVTEnEhiBNSUxBTgorVUxKQVJFVknEhiBQRVJPCitVTUVLIE1BUkdJVEEKK1VNRUsgTUlLTE/FoAorVU1JxIxFVknEhiBQRVJBCitVTUnEhkVWScSGIMW9RUxKS08KK1VNScSGRVZJxIYgR09SREFOQQorVU1JxIZFVknEhiBNSVJLTworVU1JxIZFVknEhiBNTEFERU4KK1VOxIxBTklOIEJPSkFOCitVTsSMQU5JTiBEVcWgQU4KK1VOR0FSIFRJSE9NSVIKK1VOR1VST1ZJxIYgSkVMRU5BCitVTktPVknEhiBBTsSQRUxLTworVU5LT1ZJxIYgTUxBREVOCitVUkHEjCDFoEFORE9SCitVUkHEjCBBTEVLU0FOREFSCitVUkHEjCBEQU5JQ0EKK1VSQcSMIEdJWkVMQQorVVJBxIwgScWgVFZBTgorVVJBxIwgUk9aQUxJSkEKK1VSQkFOIMSQRVLEkAorVVJCQU4gxJBPUsSQRQorVVJCQU4gQU5BCitVUkJBTiBIT1JWQVQKK1VSQkFOIEnFoFRWQU4KK1VSQkFOIEpBTk/FoAorVVJCQU4gSkFTTkEKK1VSQkFOIE1JSEFMSgorVVJCQU4gTUlIQUxKCitVUkJBTiBQQVZFTAorVVJCQU4gU1RBTklTTEFWCitVUkJBTiBTVEVWQU4KK1VSQkFOIFZJS1RPUklKQQorVVJCQU4gVkxBRElTTEFWCitVUkJBTsSMSUsgUElST8WgS0EKK1VSQkFOxIxJSyBTSUxWSUEKK1VSQkFOT1ZJxIYgU1RFVkFOCitVUkRBUkVWScSGIFNUQU5JTUlSCitVUkVLRSDEkE9SxJBFCitVUkkgxIxBQkEKK1VSSSBBTEVLU0FOREFSCitVUkkgRVZBCitVUkkgR0FCT1IKK1VSSSBLQVJMTworVVJJIExBU0xPCitVUkkgUEFKQQorVVJJIFNURVZBTgorVVJJIFNURVZBTgorVVJLSU4gTEpVQklDQQorVVJMSUggTUFSSUpBCitVUk/FoEVWIMW9SVZBTgorVVJPxaBFViBCT0pLQQorVVJPxaBFViBJTElKQQorVVJPxaBFViBKRVJJQ0EKK1VST8WgRVYgTUlMRU5LTworVVJPxaBFViBNSVJKQU5BCitVUk/FoEVWIFBBSkEKK1VST8WgRVYgU09GSUpBCitVUk/FoEVWIFNUT0pBTgorVVJPxaBFViBWRUxJTktBCitVUk/FoEVWScSGIMW9SVZBTgorVVJPxaBFVknEhiBBTEVLU0FOREFSCitVUk/FoEVWScSGIEJPR0RBTiBESVBMIElORworVVJPxaBFVknEhiBCT1JJVk9KCitVUk/FoEVWScSGIEJSQU5LQQorVVJPxaBFVknEhiBCUkFOS08KK1VST8WgRVZJxIYgRFJBR0nFoEEKK1VST8WgRVZJxIYgRFXFoEFOCitVUk/FoEVWScSGIElWQU4KK1VST8WgRVZJxIYgTEVPTkEKK1VST8WgRVZJxIYgTEpJTEpBTkEKK1VST8WgRVZJxIYgTEpVQklDQQorVVJPxaBFVknEhiBNQVJLQQorVVJPxaBFVknEhiBNSUxPxaAKK1VST8WgRVZJxIYgTUlSSkFOQQorVVJPxaBFVknEhiBOQURBCitVUk/FoEVWScSGIFJVxb1JQ0EKK1VST8WgRVZJxIYgU1LEkEEKK1VST8WgRVZJxIYgU1RBTklTTEFWQQorVVJPxaBFVknEhiBWSURPSktPCitVUk/FoEVWScSGIFZMQURJTUlSCitVUk/FoEVWScSGIFpPUklDQQorVVJTScSGIFZMQURJTUlSCitVUlNVTEVTS1UgRkxPUklOCitVUlNVTEVTS1UgSlVMSUpBTgorVVNLT0tPVknEhiBCUkFOSVNMQVYKK1VTS09LT1ZJxIYgTUlMRU5LTworVVNLT0tPVknEhiBNSUxPxaAKK1VTVEnEhiDEkFVSQQorVVNUScSGIE5JS09MQQorVVNUScSGIFNJTUEKK1VTVEnEhiBWT0pLTworVVRBxaBJIMSMQUJBCitVVEpFxaBBTk9WScSGIFNJTU8KK1VUSkXFoElOT1ZJxIYgREVTQU5LQQorVVRKRcWgSU5PVknEhiBMSklMSkFOQQorVVRKRcWgSU5PVknEhiBNSUxBTgorVVRKRcWgSU5PVknEhiBWRVJBCitVVE9STklLIElWQU4KK1VUT1JOSUsgSk9WQU4KK1VUT1JOSUsgS0FUSUNBCitVVE9STklLIExKVUJJQ0EKK1VUT1JOSUsgTUlMT8WgCitVVE9STklLLVJBRFVMT1ZJxIYgTUFSSUpBCitVVE9STklLIFNURVZBTgorVVRPUk5JSyBTVkVUT1pBUgorVVRSxb1BTiBCUkFOS08KK1VUVknEhiBLT1NUQQorVVRWScSGIFBBVkxFCitVVFZJxIYgVkFTQQorVVRWScSGLVZVS0HFoElOT1ZJxIYgREFSQQorVVZBTEnEhiBBTkdFTElOQQorVVZBTEnEhiBEVcWgQU5LQQorVVZBTEnEhiBEVcWgQU4KK1VWQUxJxIYgRFXFoEtPCitVVkFMScSGIExBWkFSCitVVkFMScSGIE1FTEFOSUpBCitVVkFMScSGIFJBRE9TTEFWCitVVkFMScSGIFNUQU5JU0xBVgorVVZBTEnEhiBWQVNBCitVVkVSScSGIMSQVVJBCitVVkVSScSGIEJSQU5LQQorVVZFUknEhiBNSUxBTgorVVZFUknEhiBNSUxPxaAKK1VWRVJJxIYgTUlMT1JBRAorVVZFUknEhiBNSVJKQU5BCitVVkVSScSGIE5JS09MQQorVVpBSVIgQUxJSkEKK1VaRUlSSSBNVUFSRU0KK1VaRUxBQyDEkE9SxJBFCitVWkVMQUMgxJBPUsSQRQorVVpFTEFDIMSQT1LEkEUKK1VaRUxBQyDEkE9SxJBFCitVWkVMQUMgxJBVUklDQQorVVpFTEFDIMSQVVJPCitVWkVMQUMgQUxFS1NBTkRSQQorVVpFTEFDIEFMRUtTQQorVVpFTEFDIEJJU0VSS0EKK1VaRUxBQyBCT8WgS08KK1VaRUxBQyBCT0dEQU4KK1VaRUxBQyBCT0dEQU4KK1VaRUxBQyBCUkFOSVNMQVYKK1VaRUxBQyBCUkFOSVNMQVYKK1VaRUxBQyBCUkFOSVNMQVYKK1VaRUxBQyBCUkFOS08KK1VaRUxBQyBDVkVUQQorVVpFTEFDIERBUklOS0EKK1VaRUxBQyBERVNBTktBCitVWkVMQUMgRFJBR0FOCitVWkVMQUMgRFJBR0FOCitVWkVMQUMgRFJBR0FOCitVWkVMQUMgRFXFoEFOS0EKK1VaRUxBQyBEVcWgQU4KK1VaRUxBQyBEVcWgQU4KK1VaRUxBQyBEVcWgQU4KK1VaRUxBQyBEVcWgQU4KK1VaRUxBQyBFVkEKK1VaRUxBQyBHQUxJTkEKK1VaRUxBQyBHT1JEQU5BCitVWkVMQUMgSUxJSkEKK1VaRUxBQyBJVkFOCitVWkVMQUMgSkVMRU5BCitVWkVMQUMgS09TVEEKK1VaRUxBQyBMQVpBUgorVVpFTEFDIE1BUklKQQorVVpFTEFDIE1BUklKQQorVVpFTEFDIE1BUklKQQorVVpFTEFDIE1BUklKQQorVVpFTEFDIE1JSEFKTE8KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEUKK1VaRUxBQyBNSUxJQ0EKK1VaRUxBQyBNSUxPxaAKK1VaRUxBQyBNT03EjElMTworVVpFTEFDIE5JS09MQQorVVpFTEFDIE5JS09MQQorVVpFTEFDIE9MSVZFUkEKK1VaRUxBQyBSQURNSUxBCitVWkVMQUMgUkFET0pLQQorVVpFTEFDIFJFTkFUQQorVVpFTEFDIFNMQVZLTworVVpFTEFDIFNMT0JPREFOCitVWkVMQUMgU0xPQk9EQU4KK1VaRUxBQyBTT0ZJSkEKK1VaRUxBQyBTUsSQQU4KK1VaRUxBQyBTUsSQQU4KK1VaRUxBQyBTVEVWQU4KK1VaRUxBQyBTVEVWQU4KK1VaRUxBQyBTVEVWQU4KK1VaRUxBQyBTVEVWQU4KK1VaRUxBQyBTVE9KQU4KK1VaRUxBQyBWRVJBCitVWkVMQUMgVlVKTworVVpFTEFDIFpMQVRLTworVVpFTEFDIFpMQVRLTworVVpFTEFDIFpMQVRLTworVVpFTEFDIFpPUkFOCitVWkVMQUMgWk9SQU4KK1VaRUxBQyBaT1JBTgorVVpFTEFDIFpPUkFOCitVWkVMQUMgWk9SQU4KK1VaRUxBQyBaT1JBTgorVVpPUk9DS0kgScWgVFZBTgorVVpVTk9WScSGIEJSQU5JU0xBVgorVVpVTk9WScSGIExBRElTTEFWCitVWlVOT1ZJxIYgTUlMT1JBRAorVVpVTk9WScSGIE1JVE8KK1VaVU5PVknEhiBOQVNVRgorVVpVTk9WScSGIFJBSktPCitVWlVST1YgT0JSRU5JSkEKK1VaVVJPViBSQURNSUxBCitWQcSMScSGIEFMRUtTQU5EQVIKK1ZBxIxJxIYgWk9SQU4KK1ZBxIxJSyBKT8W9RUYKK1ZBxaAgQVRJTEEKK1ZBxaAgSk9TSVAKK1ZBxaAgUEFWTEUKK1ZBxaAgVkVSQQorVkHFoMSMScSGIEJPxb1JREFSCitWQcWgQcWgIE1JS0xPxaAKK1ZBxaBBxaAgT0xHQQorVkHFoEFESSBGRVJFTkMKK1ZBxaBBREkgSlVMSUpBTkEKK1ZBxaBBREkgVkFMRVJJSkEKK1ZBxaBBTEnEhiBBTktBCitWQcWgQUxJxIYgTUlMT8WgCitWQcWgQUxJxIYgT0JSQUQKK1ZBxaBBTEnEhiBVUk/FoAorVkHFoFRBRyDEkE9SxJBFCitWQcWgVEFHIEFORFJBxaAKK1ZBxaBUQUcgScWgVFZBTgorVkHFoFRBRyBJxaBUVkFOCitWQcWgVEFHIEpBU01JTktBCitWQcWgVEFHIE1BUkdJVEEKK1ZBxaBUQUcgTUFSSUpBCitWQcWgVEFHIE1JSEFMSgorVkHFoFRBRyBPTEdBCitWQcWgVEFHIFJVxb1BCitWQcWgVEFHIFNUT0pBTgorVkHFvUnEhiBEQU5JQ0EKK1ZBxb1JxIYgSk9WQU4KK1ZBxb1JxIYgSlVMSUpBCitWQcW9ScSGIE1JUkEKK1ZBxb1JxIYgU0xBVklDQQorVkHFvUnEhiBWRVJJQ0EKK1ZBxb1JxIYgVkVTRUxJTgorVkHFvUnEhiBWTEFESU1JUgorVkHFvU9OSkkgQU5UQUwKK1ZBxb1PTkpJIFJPWkFMSUpBCitWQUNJIMWgSU1PTgorVkFDScSGIEJMQUdPSkUKK1ZBQ0nEhiBWSURFTgorVkFDTEFWSUsgTUFSSUpBCitWQURBU0tJIENFQ0lMSUpBCitWQURBU0tJIExKVUJPTUlSCitWQURPQyBGUkFOSkEKK1ZBRE9DIElWSUNBCitWQURPQyBKT1NJUAorVkFHScSGIMSQVVJPCitWQUdORVIgxJBVUkEKK1ZBR05FUiBBTkRSSUpBCitWQUdORVIgSk9TSVAKK1ZBR05FUiBLQVJMTworVkFHTkVSIExBU0xPCitWQUdORVIgTUFSSUpBCitWQUdORVIgT1RJTElKQQorVkFHTyBJxaBUVkFOCitWQUdPIFNURVZBTgorVkFHVVJJxIYgWkRSQVZLTworVkFKQUdJxIYgQU7EkEVMS0EKK1ZBSkFHScSGIEJPxaBLTworVkFKQUdJxIYgR09SREFOQQorVkFKQUdJxIYgTUlMQU4KK1ZBSkFHScSGIE5JS09MQSBEUgorVkFKQUdJxIYgTklLT0xBCitWQUpBR0nEhiBTQVZPCitWQUpBR0nEhiBTSU1BCitWQUpBR0nEhiBTVE9KQU4KK1ZBSkFHScSGIFpPUklDQQorVkFKREEgxaBBTkRPUgorVkFKREEgxaBBTkRPUgorVkFKREEgSVJNQQorVkFKREEgTEFKT8WgCitWQUpEQSBMQUpPxaAKK1ZBSkRBIFRJQk9SCitWQUpEQSBUT01JU0xBVgorVkFKREnEhiDFvUlWS08KK1ZBSkRJxIYgSVZBTgorVkFKREnEhiBKT1ZBTiBEUgorVkFKREnEhiBKT1ZBTiBEUgorVkFKREnEhiBNSUxJQ0EKK1ZBSkRJxIYgTUlMSUNBCitWQUpEScSGIE5BREEKK1ZBSkRJxIYgUEVUQVIKK1ZBSkRJxIYgVElIT01JUgorVkFKREwgSk9WQU4KK1ZBSkRMIE1JUk9TTEFWCitWQUpETEUgSk9MQU4KK1ZBSkxFUiBBTkRSSUpBCitWQUpOxaBUQUpOIFBFVEFSCitWQUpOQkVSR0VSIFZMQURJTUlSCitWQUpOQkVSR0VSIFpMQVRLTworVkFKTkJFUkdFUiBaVk9OSU1JUgorVkFKTkdFUlRORVIgUkFET0pLQSBESVBMIEVDQworVkFKTkhFUEwgTUFSSUEKK1ZBSk5IRVBMIE9UTUFSIERJUEwgSU5HCitWQUpPVknEhiBWQVNJTElKRQorVkFKUyDFoEFORE9SCitWQUpTIEJSQU5LTworVkFKUyBLQVJMTworVkFKUyBLQVJMTworVkFKUyBNQUdEQQorVkFKUyBWRVJJQ0EKK1ZBSlNFTkJFUkcgSk9TSVAKK1ZBSlVLScSGIFBBTlRFTElKQQorVkFLQU5KQUMgTUlMSUNBCitWQUwgxJBPUsSQRQorVkFMIEFORFJJSkEKK1ZBTCBFVkEKK1ZBTCBaT0xUQU4KK1ZBTEFIIEpBTktPCitWQUxBTiBPU1RPSkEKK1ZBTEFOIFpPUkFOCitWQUxETUEgQVJCTworVkFMRUsgRU1JTElKQQorVkFMRUsgRlJBTkpBCitWQUxFTsSMSUsgUEFWRUwKK1ZBTEVOxIxJSyBTVEVWQU4KK1ZBTEVOxIZJSyBBTkRSSUpBCitWQUxFTsSGSUsgSkFOCitWQUxFTsSGSUsgUEFWTEUKK1ZBTEVOxIZJSyBWTEFESU1JUgorVkFMRU5UIMW9VcW9QU5BCitWQUxFTlQgSkFOS08KK1ZBTEVOVCBKQU5LTworVkFMRU5UIExBU0xPCitWQUxFTlRBIEpBU01JTktBCitWQUxFTlRFTkpJIEpPU0lQCitWQUxFTlRFTkpJIEpVTElKQU5BCitWQUxFTlRJxIYgSVZBTgorVkFMRU5UScSGIFZJS1RPUgorVkFMRU5UScSGIFZJS1RPUgorVkFMRU5USUsgTklLT0xBCitWQUxFTlRJTiBJTVJFCitWQUxFTlRJTiBKVUNJS0EKK1ZBTEVOVElOIFNURVZBTgorVkFMRU5USVJPViBTVEVWQU4KK1ZBTEVOVElST1ZJxIYgTEpVQk9NSVIKK1ZBTEVOVE9WScSGIEpPU0lQCitWQUxFTlRPVknEhiBLQVJMTworVkFMRU5UT1ZJxIYgS0FSTE8KK1ZBTEVOVE9WScSGIEtBUkxPCitWQUxFTlRPVknEhiBUSUJPUgorVkFMScSGIEdPUkFOCitWQUxJxIYgU0xBVktPCitWQUxJRMW9SUpBIE5JS09MQSBESVBMIElORworVkFMSUhPUkEgSk9aRUYKK1ZBTElIT1JBIEtBVElDQQorVkFMS0FJIEpPxb1FRgorVkFMS08gR0FWUkEKK1ZBTE8gR09SREFOQQorVkFMTyBKT1NJUAorVkFMTyBKT1NJUAorVkFMTyBNSVJLTworVkFMTyBTVEVWQU4KK1ZBTE9LIMSQT1LEkEUKK1ZBTE9LIMSQVVJBCitWQUxPSyBSQVRPTUlSCitWQUxURVIgRFJBR0lOSkEKK1ZBTFRFUiBMSklMSkFOQQorVkFMVEVSIE5PUkJFUlQKK1ZBTFRORVIgUEVUQVIKK1ZBTFXFoEVLIEpPVkFOCitWQUxVxaBFSyBLQVRJQ0EKK1ZBTFXFoEVLIFBBVkxFCitWQUxVSCBCUkFOSVNMQVYKK1ZBTFVIIEpBTktPCitWQUxVSCBKQU5LTworVkFMVUggS0FSTE8KK1ZBTFVIIE1JSEFKTE8KK1ZBTUJBSCBWSUtUT1JJSkEKK1ZBTU/FoEVSIE1JUkpBTkEKK1ZBTU/FoEVSIFBBVkxFCitWQU1QT1ZBQyBKT1NJUAorVkFOxJBFTCBNSUxBTgorVkFOREVSRVIgUEFMCitWQU5ET1JJIE1BUklKQQorVkFOScSGIERSQUdVVElOCitWQU5JxIYgS0FUSUNBCitWQU5JxIYgTEpVQklDQQorVkFOSlVSIEZSQU5KQQorVkFOSlVSIEZSQU5KQQorVkFOSlVSIEnFoFRWQU4gRElQTCBJTkcKK1ZBTkpVUiBKT8W9RUYKK1ZBTkpVUiBKT1NJUAorVkFOSlVSIEtBUkxPCitWQU5KVVIgS0FSTE8KK1ZBTkpVUiBNQVJJSkEKK1ZBTktPIEpBUk9TTEFWCitWQU5PVknEhiBTTkXFvUFOQQorVkFQQSBKT1ZBTktBCitWQVBBIE1JTEFOIERSCitWQVBBIFZFUkEKK1ZBUEEgWk9SQU4KK1ZBUEVOU0tJIElWQU4KK1ZBUEVOU0tJIE1BUklKQQorVkFSxaBBTkpJIElSRU5BCitWQVJBxJBBTklOIE1JTEFOCitWQVJBREkgVElCT1IgRFIgUFJPRgorVkFSQUdJxIYgQk9HREFOCitWQVJBR0nEhiBMSlVCSUNBCitWQVJBR0nEhiBNQVJJSkEKK1ZBUkFHScSGIE1FTEFOSUpBCitWQVJBR0nEhiBNSUxJQ0EKK1ZBUkFHScSGIFZJxIZFTlRJSkUKK1ZBUkFKScSGIEdPUkFOCitWQVJBSknEhiBHT1JBTgorVkFSQVZBIEVNSUxJSkFOCitWQVJCQUkgTEFESVNMQVYKK1ZBUkNBUiBERVNBTktBCitWQVJEScSGIEdBVlJJTE8KK1ZBUkVOSUtBIMSQT0tBCitWQVJFTklLQSBCUkFOSVNMQVYKK1ZBUkVOSUtBIFJBRE9KS0EKK1ZBUkVWQUMgRFJBR0FOCitWQVJHQSDFoEFORE9SCitWQVJHQSDFoEFORE9SCitWQVJHQSDFoEFORE9SCitWQVJHQSDFoEFORE9SCitWQVJHQSDFoEFORE9SCitWQVJHQS3FoE9NT8SQSSBKQU5PxaAKK1ZBUkdBIMW9QVJLTworVkFSR0EgxJBFUsSQCitWQVJHQSDEkE9SxJBFCitWQVJHQSDEkE9SxJBFCitWQVJHQSDEkFVMQQorVkFSR0EgxJBVUkEKK1ZBUkdBIMSQVVJBCitWQVJHQSBBTEVLU0FOREFSCitWQVJHQSBBTkEKK1ZBUkdBIEFORFJBxaAKK1ZBUkdBIEFORFJJSkEKK1ZBUkdBIEFORFJJSkEKK1ZBUkdBIEFOVE9OCitWQVJHQSBBUkFOS0EKK1ZBUkdBIEJFTEEKK1ZBUkdBIEJFTEEKK1ZBUkdBIEJJTEpBTkEKK1ZBUkdBLUJVUkFJIEVSxb1FQkVUCitWQVJHQSBEUkFHSUNBCitWQVJHQSBEVcWgQU5LQQorVkFSR0EgRVLFvUlLQQorVkFSR0EgRkVSRU5DCitWQVJHQSBGRVJFTkMKK1ZBUkdBIEZFUkVOQworVkFSR0EgRlJBTkpBCitWQVJHQSBGUkFOSkEKK1ZBUkdBIEZSQU5KTworVkFSR0EgRlJBTkpPCitWQVJHQSBHQUJPUgorVkFSR0EgR0laRUxBCitWQVJHQSBIRUxFTkEKK1ZBUkdBIEnFoFRWQU4KK1ZBUkdBIEnFoFRWQU4KK1ZBUkdBIEnFoFRWQU4KK1ZBUkdBIEnFoFRWQU4KK1ZBUkdBIElMRcWgCitWQVJHQSBJTVJFCitWQVJHQS1JVkFOIEFOR0VMSU5BCitWQVJHQSBKQUtJTQorVkFSR0EgSkFOIERSCitWQVJHQSBKQU5PxaAKK1ZBUkdBIEpBTk/FoAorVkFSR0EgSkFST1NMQVYKK1ZBUkdBIEpFTEVOQQorVkFSR0EgSkVMSVNBVkVUQQorVkFSR0EgSk/FvUVGCitWQVJHQSBKT8W9RUYKK1ZBUkdBIEpPxb1FRgorVkFSR0EgSk9TSVBBCitWQVJHQSBKT1NJUAorVkFSR0EgSk9TSVAKK1ZBUkdBIEpPVkFOCitWQVJHQSBKVUxJSkEKK1ZBUkdBIEtBUkxPCitWQVJHQSBLQVRBUklOQQorVkFSR0EgS0FUQQorVkFSR0EtS0xJxaBBTknEhiBMSlVCSUNBCitWQVJHQSBLT1JORUxJSkEKK1ZBUkdBIEtPUk5FTAorVkFSR0EgS09TQU5BCitWQVJHQSBMQURJU0xBVgorVkFSR0EgTEFKT8WgCitWQVJHQSBMQUpPxaAKK1ZBUkdBIExBU0xPCitWQVJHQSBMQVNMTworVkFSR0EgTEFTTE8KK1ZBUkdBIExBU0xPCitWQVJHQSBMSlVQS0EKK1ZBUkdBIE1BUkdJVEEKK1ZBUkdBIE1BUklKQQorVkFSR0EgTUFSSUpBCitWQVJHQSBNQVJJSkEKK1ZBUkdBIE1JSEFKTE8KK1ZBUkdBIE1JSEFKTE8KK1ZBUkdBIE1JSEFMSgorVkFSR0EgTUlSS08KK1ZBUkdBIE1JUk9OCitWQVJHQSBNSVJPU0xBVgorVkFSR0EgTklLT0xBCitWQVJHQSBPTEdBCitWQVJHQSBQQUwKK1ZBUkdBIFBBTAorVkFSR0EgUEVUQVIKK1ZBUkdBIFBFVEFSCitWQVJHQSBQRVRFUiBESVBMIElORworVkFSR0EgUkFTVElTTEFWCitWQVJHQSBST1pBTElKQQorVkFSR0EgUk9aQUxJSkEKK1ZBUkdBIFNMQVZJQ0EKK1ZBUkdBIFNURVZBTgorVkFSR0EgU1RFVkFOCitWQVJHQSBTVEpFUEFOCitWQVJHQSBUSUJPUgorVkFSR0EgVElCT1IKK1ZBUkdBIFZFUkEKK1ZBUkdBIFZFUkEKK1ZBUkdBIFZFUk9OSUtBCitWQVJHQSBWTEFESVNMQVYKK1ZBUkdBIFZMQVNUQQorVkFSR0EgWk9MVEFOCitWQVJHQSBaT0xUQU4KK1ZBUkdFQyBJVkFOCitWQVJIT0xJSyBBREFNCitWQVJJxIZBSyBCT8W9TworVkFSScSGQUsgREFSSU5LQQorVkFSSlUgTEFTTE8KK1ZBUkpVIE1BUklKQQorVkFSSlUgVEVSRVpBCitWQVJLQcWgIElWQU4KK1ZBUk1BWiBJU01FVAorVkFSTUXEkEEgxJBPUsSQRQorVkFSTVXFvUEgTUHEhkHFoAorVkFSTklDQSBJVkFOCitWQVJOSUNBIFBFVEFSCitWQVJOSlUgQU5VxaBLQQorVkFSTkpVIEdJWkVMQQorVkFSTkpVIElMT05BCitWQVJOT1MgTUFSVE9OCitWQVJOVVMgSk/FvUVGCitWQVJPxaDEjEnEhiBTUEFTRU5JSkEKK1ZBUk/FoEkgR0FCUklFTEEKK1ZBUk/FoEkgSk9WQU4KK1ZBUk/FoEkgU0lMQVJECitWQVNFTEVLIMWgVEVGQU4KK1ZBU0VMRUsgU1RFVkFOCitWQVNFTEVLIFNURVZBTgorVkFTRUxFSyBWQVNJTEoKK1ZBU0nEhiDFvUVMSktPCitWQVNJxIYgxb1JVktBCitWQVNJxIYgxb1JVktPCitWQVNJxIYgxb1JVktPCitWQVNJxIYgxb1JVktPCitWQVNJxIYgxJBPS0EKK1ZBU0nEhiDEkE9SxJBFCitWQVNJxIYgxJBPUsSQRQorVkFTScSGIEFMRUtTQU5EQVIKK1ZBU0nEhiBBTklDQQorVkFTScSGIEFOS0lDQQorVkFTScSGIEJPSkFOQQorVkFTScSGIEJPUklTTEFWCitWQVNJxIYgQk9SSVZPSgorVkFTScSGIEJSQU5LTworVkFTScSGIENWRVRLTworVkFTScSGIERBUklOS0EKK1ZBU0nEhiBET0JSSVZPSgorVkFTScSGIERSQUdBTkEKK1ZBU0nEhiBEUkFHQU4KK1ZBU0nEhiBEUkFHSUNBCitWQVNJxIYgRFJBR0lDQQorVkFTScSGIERSQUdJQ0EKK1ZBU0nEhiBEUkFHT0xKVUIKK1ZBU0nEhiBEUkFHT01JUgorVkFTScSGIERSQUdPTUlSCitWQVNJxIYgRFJBR09TTEFWCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoEFOCitWQVNJxIYgRFXFoElDQQorVkFTScSGIERVxaBLTyBOT1ZJTkFSCitWQVNJxIYgRFVCUkFWS0EKK1ZBU0nEhiBFTEVOQQorVkFTScSGIEdPUkFOCitWQVNJxIYgR09SREFOQQorVkFTScSGIEdPUkRBTkEKK1ZBU0nEhiBHT1JESUNBCitWQVNJxIYgSkFLT1YKK1ZBU0nEhiBKQU5BCitWQVNJxIYgSkFOS08KK1ZBU0nEhiBKRUxJQ0EKK1ZBU0nEhiBKT1ZPCitWQVNJxIYgS0FUSUNBCitWQVNJxIYgS09TVEEKK1ZBU0nEhiBLUklTVElOQQorVkFTScSGIExBWkFSCitWQVNJxIYgTEpJTEpBTkEgRFIKK1ZBU0nEhiBMSklMSkFOQQorVkFTScSGIExKVUJPTUlSCitWQVNJxIYgTFVLQQorVkFTScSGIE1BS1NJTQorVkFTScSGIE1BUklKQU5BCitWQVNJxIYgTUFSS08KK1ZBU0nEhiBNScSGTworVkFTScSGIE1JSEFJTE8KK1ZBU0nEhiBNSUhBSkxPCitWQVNJxIYgTUlLQQorVkFTScSGIE1JTEFOCitWQVNJxIYgTUlMQU4KK1ZBU0nEhiBNSUxBTgorVkFTScSGIE1JTEFOCitWQVNJxIYgTUlMQU4KK1ZBU0nEhiBNSUxFTktPIERSIFBSSU1BUklVUworVkFTScSGIE1JTEVOS08KK1ZBU0nEhiBNSUxFTktPCitWQVNJxIYgTUlMSUNBCitWQVNJxIYgTUlMSU5LTworVkFTScSGIE1JTE/FoAorVkFTScSGIE1JTE/FoAorVkFTScSGIE1JTE9WQU4KK1ZBU0nEhiBNSUxPVkFOCitWQVNJxIYgTUlMVVRJTgorVkFTScSGIE1JT0RSQUcKK1ZBU0nEhiBNSVJKQU5BCitWQVNJxIYgTUlSSkFOQQorVkFTScSGIE1JUkpBTkEKK1ZBU0nEhiBNSVJPU0xBVkEKK1ZBU0nEhiBOQURBCitWQVNJxIYgTkFEQQorVkFTScSGIE5FREVMSktPCitWQVNJxIYgTkVERUxKS08KK1ZBU0nEhiBORURFTEpLTworVkFTScSGIE5JS09MQQorVkFTScSGIE5PVkFLCitWQVNJxIYgTk9WQUsKK1ZBU0nEhiBOT1ZBSworVkFTScSGIE9MR0EKK1ZBU0nEhiBPTEdJQ0EKK1ZBU0nEhiBPU1RPSkEKK1ZBU0nEhiBPU1RPSkEKK1ZBU0nEhiBQQUpBCitWQVNJxIYgUEVSTworVkFTScSGIFBFVEFSCitWQVNJxIYgUEVUQVIKK1ZBU0nEhi1QT1BPVknEhiBMSklMSkFOQQorVkFTScSGIFBSVk9TTEFWIERJUEwgSU5HCitWQVNJxIYgUkFESUNBCitWQVNJxIYgUkFESVZPSgorVkFTScSGIFJBRE9KRQorVkFTScSGIFJBRE9TTEFWCitWQVNJxIYgUkFET1ZBTgorVkFTScSGIFJBVEtPCitWQVNJxIYgUkFWSUNBCitWQVNJxIYgU0FWQQorVkFTScSGIFNBVkEKK1ZBU0nEhiBTQVZBCitWQVNJxIYgU0VLVUxBCitWQVNJxIYgU0xBVklDQQorVkFTScSGIFNMQVZLTworVkFTScSGIFNMQVZLTworVkFTScSGIFNMT0JPREFOCitWQVNJxIYgU0xPQk9EQU4KK1ZBU0nEhiBTTE9CT0RBTgorVkFTScSGIFNORcW9QU5BCitWQVNJxIYgU09GSUpBCitWQVNJxIYgU1JFVEtPCitWQVNJxIYgU1RBTknFoEEKK1ZBU0nEhiBTVEVWQU4KK1ZBU0nEhiBTVEVWQU4KK1ZBU0nEhiBTVEVWQU4KK1ZBU0nEhiBTVEVWQU4KK1ZBU0nEhiBTVkVUTEFOQQorVkFTScSGIFNWRVRPWkFSCitWQVNJxIYgVElIT01JUgorVkFTScSGIFRJTktBCitWQVNJxIYgVE/FoEEKK1ZBU0nEhiBUT01JU0xBVgorVkFTScSGIFZFTElNSVIKK1ZBU0nEhiBWRUxJTUlSCitWQVNJxIYgVkVTRUxJTgorVkFTScSGIFZJREEKK1ZBU0nEhiBWTEFESU1JUiBEUiBMRUtBUgorVkFTScSGIFZMQURJTUlSCitWQVNJxIYgVk9KSVNMQVYKK1ZBU0nEhiBaRFJBVktPCitWQVNJxIYgWk9SQU4KK1ZBU0nEhiBaT1JJQ0EKK1ZBU0lMxIxJTiBTTE9CT0RBTgorVkFTSUxFU0tJIEJSQU5LTworVkFTSUxJxaBJTiBBTlRPTgorVkFTSUxJxaBJTiBNSUxBTgorVkFTSUxJxIYgQlJBTklTTEFWCitWQVNJTEnEhiBEQU5JQ0EKK1ZBU0lMScSGIERSQUdBCitWQVNJTEnEhiBNSUxBTgorVkFTSUxJxIYgTUlMRU5LTworVkFTSUxJxIYgTUlSQQorVkFTSUxJxIYgTklLT0xBCitWQVNJTEnEhiBSQUpLTworVkFTSUxJxIYgU1RFVkFOCitWQVNJTEnEhiBUT0RFCitWQVNJTEnEhiBWRVNOQQorVkFTSUxJxIYgVk9KSU4gRElQTCBJTkcKK1ZBU0lMSsSMSU4gxb1JVktPCitWQVNJTEpFViBBTkEKK1ZBU0lMSkVWIERFSkFOCitWQVNJTEpFViBEUkFHT1NMQVYKK1ZBU0lMSkVWIEpFTElDQQorVkFTSUxKRVYgSk9WQU4KK1ZBU0lMSkVWIEpPVkFOCitWQVNJTEpFViBMSlVCSUNBCitWQVNJTEpFViBNQVJBCitWQVNJTEpFViBNSUxPUkFECitWQVNJTEpFViBNSVJPTEpVQgorVkFTSUxKRVYgTUlUQQorVkFTSUxKRVYgUkFET1ZBTgorVkFTSUxKRVYgU1BBU09KRQorVkFTSUxKRVYgU1RBTk9KRQorVkFTSUxKRVYgVEFNQVJBCitWQVNJTEpFViBaRFJBVktPCitWQVNJTEpFVknEhiDFoEFSTE9UQQorVkFTSUxKRVZJxIYgxb1JVk9UQQorVkFTSUxKRVZJxIYgxJBPUsSQRQorVkFTSUxKRVZJxIYgxJBVUkEKK1ZBU0lMSkVWScSGLUHEhkFOU0tJIElWQU5BCitWQVNJTEpFVknEhiBBTsSQRUxLQQorVkFTSUxKRVZJxIYgQU5EUkVKQQorVkFTSUxKRVZJxIYgQ1ZFVEtPCitWQVNJTEpFVknEhiBEQU5JQ0EKK1ZBU0lMSkVWScSGIERSQUdJxaBBCitWQVNJTEpFVknEhiBEVcWgSUNBCitWQVNJTEpFVknEhiBHTElHT1IKK1ZBU0lMSkVWScSGIEdPSkFOCitWQVNJTEpFVknEhiBHT0pLTworVkFTSUxKRVZJxIYgR1JPWkRBCitWQVNJTEpFVknEhiBKQVZPUktBCitWQVNJTEpFVknEhiBKVUxLQQorVkFTSUxKRVZJxIYgTEVQQQorVkFTSUxKRVZJxIYgTEpVQklOS08KK1ZBU0lMSkVWScSGIE1BUktPCitWQVNJTEpFVknEhiBNQVJLTworVkFTSUxKRVZJxIYgTUlMRU5BCitWQVNJTEpFVknEhiBNSUxFTktPCitWQVNJTEpFVknEhiBNSUxJU0FWCitWQVNJTEpFVknEhiBNSUxKS08KK1ZBU0lMSkVWScSGIE1JTE/FoAorVkFTSUxKRVZJxIYgTUlMT1JBRAorVkFTSUxKRVZJxIYgTUlPRFJBRyBESVBMIElORworVkFTSUxKRVZJxIYgTUlSQQorVkFTSUxKRVZJxIYgTUlST1NMQVYKK1ZBU0lMSkVWScSGIE1PTcSMSUxPIERSCitWQVNJTEpFVknEhiBOQURBCitWQVNJTEpFVknEhiBORURFTEpLTworVkFTSUxKRVZJxIYgTkVWRU5LQQorVkFTSUxKRVZJxIYgTklLT0xBCitWQVNJTEpFVknEhiBOSUtPTEEKK1ZBU0lMSkVWScSGIE9MR0EKK1ZBU0lMSkVWScSGIE9TVE9KQQorVkFTSUxKRVZJxIYgUEVUQVIKK1ZBU0lMSkVWScSGIFBFVEFSCitWQVNJTEpFVknEhiBSQURBCitWQVNJTEpFVknEhiBSQURFTktBCitWQVNJTEpFVknEhiBSQURPU0FWCitWQVNJTEpFVknEhiBSQURPU0xBVgorVkFTSUxKRVZJxIYgUkFETworVkFTSUxKRVZJxIYgUkFKQSBOT1ZJTkFSCitWQVNJTEpFVknEhiBSQUpLTworVkFTSUxKRVZJxIYgU0lNTworVkFTSUxKRVZJxIYgU0xBVktPCitWQVNJTEpFVknEhiBTVEFOSU1JUgorVkFTSUxKRVZJxIYgVElIT01JUgorVkFTSUxKRVZJxIYgVE/FoEEKK1ZBU0lMSkVWScSGIFVNS0EKK1ZBU0lMSkVWScSGIFZFUklDQQorVkFTSUxKRVZJxIYgVlVLSUNBCitWQVNJTEpFVknEhiBaRFJBVktPCitWQVNJTEpFVknEhiBaTEFUS08KK1ZBU0lMSkVWScSGIFpMQVRPSkUKK1ZBU0lMSkVWScSGIFpPUkFOCitWQVNJTEpFVlNLSSBWQVNJTElKRQorVkFTSU4gxJBPUsSQRQorVkFTSU4gxJBPUsSQRQorVkFTSU4gQU7EkEVMS0EKK1ZBU0lOIEFSQU5LQQorVkFTSU4gQk9SSVZPSkUKK1ZBU0lOIEJSQU5JU0xBVgorVkFTSU4gRFJBR0FOQQorVkFTSU4gRFJBR09NSVIKK1ZBU0lOIEpBU01JTkEKK1ZBU0lOIEpFTEVOQQorVkFTSU4gSkVWUk9TSU1BCitWQVNJTiBKVUxLQQorVkFTSU4gTEFaQVIKK1ZBU0lOIExKVUJJTktBCitWQVNJTiBNQVJJQ0EKK1ZBU0lOIE1JTEVOS08KK1ZBU0lOIE1JTEVOS08KK1ZBU0lOIE5FREVMSktPCitWQVNJTiBPTEdJQ0EKK1ZBU0lOIFBBVkxFCitWQVNJTiBQRVRBUgorVkFTSU4gUkFESVZPSgorVkFTSU4gU1RFVkFOCitWQVNJTiBTVkVUSVNMQVYKK1ZBU0lOIFNWRVRPWkFSCitWQVNJTiBUT0RPUgorVkFTSU4gWk9SQQorVkFTS08gVkVSQQorVkFTS09WScSGIE1JTE9SQUQKK1ZBU0tSU0nEhiBTQVZFVEEKK1ZBU09WScSGIEFMRUtTQU5EQVIKK1ZBU09WScSGIE1JTEVOQQorVkFTT1ZJxIYgTUlMT1ZBTgorVkFTT1ZJxIYgUFJFRFJBRworVkFTT1ZJxIYgU0xBVklNSVJLQQorVkFUQUpJIMSQVUxBCitWQVRJxIYgTUFSSkFOCitWQVRJxIYgTUFSS08KK1ZBVEnEhiBNSVJBxaAKK1ZBVEnEhiBOSUtPTEEKK1ZBVE9WScSGIEhSQU5JU0xBVgorVkFUT1ZJxIYgSkVMRU5BCitWQVVSScSMQUsgS0FUQUxJTgorVkFWQU4gTUlMT1JBRAorVkFWQU4gTUlMT1JBRAorVkFWQU4gTUxBREVOS08KK1ZBVkFOIFBBVkxFCitWQVZBTiBTTEFWS08KK1ZBVknEhiBKT1ZBTgorVkFWUkEgUFJFRFJBRworVkFWUklOIEpPU0lQCitWQVZSSU4gUEVUQVIKK1ZET1ZJQUsgQkVSTkFSRAorVkXEjEVJIEpPxb1FRgorVkXEjEVJIEpPU0lQCitWRcSMRUkgTEpJTEpBTkEKK1ZFxIxFSkkgSk9WQU4KK1ZFxIxFUkEgTUlIQUpMTworVkXEjEVSSSBKVUxJVVMKK1ZFxIxJIEnFoFRWQU4KK1ZFxIxJxIYgU1ZFVExBTkEKK1ZFxaBMSUdBSiBTVEVWQU4KK1ZFxaBMSUdBSiBWRVJBCitWRcWgT1ZJxIYgSVZBTktBCitWRcWgT1ZJxIYgTEVPUE9MRAorVkXFoE9WScSGIE9MR0EKK1ZFxaBPVknEhiBTTUlMSkFOQQorVkXFoE9WScSGIFZMQVNUSU1JUgorVkXFoE9WScSGIFZVS1NBTgorVkXFoE9WScSGIFpPUktBIE1SCitWRcSGS0FMT1YgxJBPUsSQRQorVkXEhktBTE9WIEFMRUtTQU5EQVIKK1ZFxIZLQUxPViBTT0ZJSkEgRFIgTEVLQVIKK1ZFQkVMIFZBTEVSSUpBCitWRUJFUiBCT8W9QU5BCitWRUJFUiBHQUJSSUVMQQorVkVCRVIgR0FCUklFTEEKK1ZFQkVSIE1JTElDQQorVkVCRVIgT0xHQQorVkVCRVIgVEVSRVpJSkEKK1ZFRyDFoEFORE9SCitWRUcgRU5JS0UKK1ZFR8WgRSBQQVZMRQorVkVHRUwgTEFTTE8KK1ZFR1ZBUkkgREXFvUUKK1ZFR1ZBUkkgSlVMSUFOQQorVkVHVkFSSSBNSUtMT8WgCitWRUhURVIgS0FST0xKCitWRUhURVIgS0FST0xKCitWRUhURVIgWk9MVEFOCitWRUlOIEpFS0EKK1ZFSU4gWk9SS0EKK1ZFSU5PVknEhiBOSUtPTEEKK1ZFSklOIMSQT1LEkEUKK1ZFSklOIEJSQU5JU0xBVkEKK1ZFSklOIEJSQU5JU0xBVgorVkVKSU4gRFXFoEFOS0EKK1ZFSklOIEtSSVNUSU5BCitWRUpOT1ZJxIYgREFORQorVkVKTk9WScSGIERSQUdBTgorVkVKTk9WScSGIEpFTEVOQQorVkVKTk9WScSGIE1JUktPCitWRUpOT1ZJxIYgTUxBREVOIERJUEwgSU5HCitWRUpOT1ZJxIYgTklLT0xBCitWRUpOT1ZJxIYgT0JSQUQKK1ZFSk5PVknEhiBSQUpLTworVkVKTk9WScSGIFNJTUVPTgorVkVKTk9WScSGIFRJSE9NSVIKK1ZFSk5PVknEhiBUSUhPTUlSCitWRUpOT1ZJxIYgVkFKS08KK1ZFSk5PVknEhiBWT0pJU0xBVgorVkVKWk9WU0tJIFZFSloKK1ZFS0HFoCDFvVXFvUFOQQorVkVLQcWgIEFUSUxBCitWRUtBxaAgRVZBCitWRUtBxaAgRVZBCitWRUtBxaAgSkFOT8WgCitWRUtBxaAgSlVESVRBCitWRUtBxaAgTEFTTE8KK1ZFS0nEhiBBTkEKK1ZFS0nEhiBEUkFHQU4KK1ZFS0nEhiBFTEVOQQorVkVLScSGIEpVTElKQU5BCitWRUtJxIYgTklLT0xBCitWRUtJxIYgUEVUQVIKK1ZFS0nEhiBSQURJVk9KCitWRUtJxIYgUkFETUlMQQorVkVLScSGIFRFUkVaQQorVkVLScSGIFRFUkVaQQorVkVLScSGIFpWT05LTworVkVLT05KIMWgQU5ET1IKK1ZFS09OSiBMQURJU0xBVgorVkVLT1ZJxIYgTUlMT1JBRAorVkVMxIxFSyBJxaBUVkFOCitWRUzEjEVLIEpPU0lQCitWRUzEjEVLIFZMQURJTUlSCitWRUzEkEkgQU5BCitWRUzEkEkgSk/FvUVGCitWRUzEkEkgTEFESVNMQVYKK1ZFTMSQSSBNQVJJSkEKK1ZFTEFHScSGIFNBTkpBCitWRUxBSkEgSk9WTworVkVMQkFCT1ZJxIYgREVTQU5LQQorVkVMQkFCT1ZJxIYgTUlMT1JBRAorVkVMQkFCT1ZJxIYgUkFESU5LQQorVkVMRcSMS09WScSGIEJSQU5LTworVkVMRcSMS09WScSGIEVWQQorVkVMRU1JUiBBTklDQQorVkVMRU1JUiBEUkFHT0xKVUIKK1ZFTEVNSVIgSUxJSkEKK1ZFTEVNSVIgTUlMT01JUgorVkVMRU1JUiBSSVNUTworVkVMRU1JUiBSSVNUTworVkVMRU1JUiBTQVZLQQorVkVMRU1JUiBTTEFWS08KK1ZFTEVNSVIgU1ZFVE9NSVIKK1ZFTEVNSVIgVE9ET1IKK1ZFTEVNSVIgVk9KQQorVkVMRU1JUiBWT0pLTworVkVMRU1JUk9WIFNJTUEKK1ZFTEVOREXEjEnEhiBCT8W9TworVkVMRU5ERcSMScSGIE1JTEFOCitWRUxFWiBJxaBUVkFOCitWRUxFWiBJxaBUVkFOCitWRUxIRVMgTUlST1NMQVYKK1ZFTEhORVIgSk9TSVAgRElQTCBJTkcKK1ZFTEnEjEtPViDFvUlWQU4KK1ZFTEnEjEtPViBEQU5JQ0EKK1ZFTEnEjEtPViBHUk9aREEKK1ZFTEnEjEtPViBLQVRJQ0EKK1ZFTEnEjEtPViBMSklMSkEKK1ZFTEnEjEtPViBOQVRBxaBBCitWRUxJxIxLT1YgUkFESVZPSgorVkVMScSMS09WScSGIMW9SVZPUkFEIERJUEwgUFJBVk5JSworVkVMScSMS09WScSGIMW9SVZPVEEKK1ZFTEnEjEtPVknEhiDEkE9SxJBFCitWRUxJxIxLT1ZJxIYgQklMSkFOQQorVkVMScSMS09WScSGIERVxaBBTgorVkVMScSMS09WScSGIEVNSUxJSkEKK1ZFTEnEjEtPVknEhiBJVkFOS0EKK1ZFTEnEjEtPVknEhiBKT1ZBTgorVkVMScSMS09WScSGIEpPVkFOCitWRUxJxIxLT1ZJxIYgS0FUQVJJTkEKK1ZFTEnEjEtPVknEhiBLU0VOSUpBCitWRUxJxIxLT1ZJxIYgTUFSSUpBCitWRUxJxIxLT1ZJxIYgTUlMQU5LQQorVkVMScSMS09WScSGIE1JTEFOCitWRUxJxIxLT1ZJxIYgTUlMSUNBCitWRUxJxIxLT1ZJxIYgTUlMT1JBRAorVkVMScSMS09WScSGIE5FTkFECitWRUxJxIxLT1ZJxIYgTklLT0xBCitWRUxJxIxLT1ZJxIYgUEVSU0lEQQorVkVMScSMS09WScSGIFBSRURSQUcKK1ZFTEnEjEtPVknEhiBTTEFWScWgQQorVkVMScSMS09WScSGIFNMQVZPTEpVQgorVkVMScSMS09WScSGIFNPTkpBCitWRUxJxIxLT1ZJxIYgU1RFVkFOCitWRUxJxIxLT1ZJxIYgWk9SQU4KK1ZFTEnEjEtPVlNLSSBBTEVLU0FOREFSCitWRUxJxaBFSyBHQUJSSUVMQQorVkVMScWgRUsgR0VaQQorVkVMScWgRUsgS0FSTE8KK1ZFTEnEhiBJTElKQQorVkVMScSGIFpPUkFOCitWRUxJQ0tJIMSQT1LEkEUKK1ZFTElDS0kgQUxFS1NBTkRBUgorVkVMSUNLSSBBTEVLU0FOREFSCitWRUxJQ0tJIEpFTElDQQorVkVMSUNLSSBKT1ZJQ0EKK1ZFTElDS0kgTEpVQk9NSVIKK1ZFTElDS0kgTUlMQU4KK1ZFTElDS0kgTUlMQU4KK1ZFTElDS0kgTUlMSVZPSgorVkVMSUNLSSBNSU9EUkFHCitWRUxJQ0tJIE5PVkFLCitWRUxJQ0tJIFNWRVRPWkFSCitWRUxJQ0tJIFVST8WgCitWRUxJQ0tJIFpPUkFOCitWRUxJQ0tJIFpPUkEKK1ZFTElKQSBMSklMSkFOQQorVkVMSUpBIFJFxJBFUAorVkVMSUtJxIYgQUxFS1NBTkRBUiBESVBMIElORworVkVMSUtJxIYgQU5BCitWRUxJS0nEhiBEQU5JQ0EKK1ZFTElLScSGIExKVUJPTUlSCitWRUxJS0nEhiBTSU1BCitWRUxJS0nEhiBaT1JBTgorVkVMSU1JUk9WIEpFTEVOQQorVkVMSU1JUk9WIE1JTE/FoAorVkVMSU1JUk9WIFZMQURJTUlSCitWRUxJTUlST1ZJxIYgQU5HRUxBCitWRUxJTUlST1ZJxIYgQk/FoEtPCitWRUxJTUlST1ZJxIYgRElNSVRSSUpFCitWRUxJTUlST1ZJxIYgRFJBxaBLTworVkVMSU1JUk9WScSGIEpFTElTQVZFVEEKK1ZFTElNSVJPVknEhiBKT1ZBTgorVkVMSU1JUk9WScSGIExBWkFSCitWRUxJTUlST1ZJxIYgTk9WQUsKK1ZFTElNSVJPVknEhiBTSU1FT04KK1ZFTElNSVJPVknEhiBTTEFWSUNBCitWRUxJTUlST1ZJxIYgU0xBVk9MSlVCCitWRUxJTUlST1ZJxIYgU01JTEpBTkEKK1ZFTElNSVJPVknEhiBTTkXFvUFOQQorVkVMSU1JUk9WScSGIFZPSklOCitWRUxJT1NLSSBTQURFTQorVkVMSU9WIETFvUVNQUpMTworVkVMSVNBVkxKRVYgR09SREFOQSBEUgorVkVMSVNBVkxKRVYgTUlMT1JBRCBEUgorVkVMSVNBVkxKRVYgU1JFRE9KRQorVkVMSVNBVkxKRVZJxIYgTUlMSVNBVgorVkVMSkEgxb1JVkEgRElQIE9FQworVkVMSkEgUEVUQVIKK1ZFTEpBTk9WScSGIEJSQU5JU0xBVgorVkVMSkFOT1ZJxIYgTU9NxIxJTE8KK1ZFTEpBTk9WScSGIFRPTUlTTEFWQQorVkVMSkFOT1ZTS0kgSVZBTgorVkVMSknEhiBNSUxPVkFOCitWRUxKS08gQU7EkEVMS08KK1ZFTEpLT1YgREFSSU5LQQorVkVMSktPViBHRU9SR0lKRQorVkVMSktPViBJREEKK1ZFTEpLT1YgTUlST1NMQVYgRElQTCBQUkFWTklLCitWRUxKS09WIFBBVkxFCitWRUxKS09WLVBGQUpGRVIgU09GSUpBCitWRUxKS09WIFNURVZBTgorVkVMSktPViBWTEFESU1JUgorVkVMSktPVknEhiDFvUFSS08KK1ZFTEpLT1ZJxIYgQUxFS1NBTkRBUiBESVBMIElORworVkVMSktPVknEhiBBTEVLU0FOREFSCitWRUxKS09WScSGIEFOxJBFTEtBCitWRUxKS09WScSGIEJPxb1JREFSCitWRUxKS09WScSGIEJPSkFOCitWRUxKS09WScSGIERPQlJPU0FWCitWRUxKS09WScSGIERSQUdBTgorVkVMSktPVknEhiBNSUxPTUlSCitWRUxKS09WScSGIE1JT0RSQUcKK1ZFTEpLT1ZJxIYgTUlPRFJBRworVkVMSktPVknEhiBNSVJKQU5BCitWRUxKS09WScSGIE1JUktPCitWRUxKS09WScSGIE5BREEKK1ZFTEpLT1ZJxIYgUEVUQVIKK1ZFTEpLT1ZJxIYgUkFEQQorVkVMSktPVknEhiBSQURJU0FWCitWRUxKS09WScSGIFJBRE9TQVYKK1ZFTEpLT1ZJxIYgUkFET1NMQVYKK1ZFTEpLT1ZJxIYgUlXFvUlDQQorVkVMSktPVknEhiBTUkVURU4KK1ZFTEpLT1ZJxIYgU1ZFVEEKK1ZFTEpLT1ZJxIYgU1ZFVElTTEFWCitWRUxKS09WScSGIFRJSE9NSVIKK1ZFTEpLT1ZJxIYgVklET0pFCitWRUxKS09WScSGIFZPSklTTEFWCitWRUxKS09WScSGIFZVS0HFoElOCitWRUxKT1ZJxIYgRFXFoEFOCitWRUxKT1ZJxIYgTEVQT1NBVkEKK1ZFTEpPVknEhiBNSUxBTgorVkVMSk9WScSGIE1JVEFSCitWRUxKT1ZJxIYgTU9NxIxJTE8KK1ZFTEpPVknEhiBQQVZMRQorVkVMSk9WScSGIFJVxb1BCitWRUxKT1ZJxIYgU0lNTworVkVMSk9WScSGIFNMQVZJQ0EKK1ZFTEtPVlNLSSBJUkVOQQorVkVMS09WU0tJIFRFT0ZJTAorVkVNRU5BQyBPQlJBRAorVkVNScSGIEJPUkEKK1ZFTUnEhiBEUkFHSU5KQQorVkVNScSGIElMSUpBCitWRU1JxIYgTEFaQVIKK1ZFTUnEhiBNSUxBTgorVkVNScSGIFJBRElWT0pFIERSCitWRU1JxIYgUkFESVZPSkUKK1ZFTsSMRUxPVlNLSSBMSlVCSUNBCitWRU7EjEVMT1ZTS0kgVkxBREEKK1ZFTsSMRUxPVlNLSSBWTEFESU1JUgorVkVOxIxFTE9WU0tJIFZMQVNUQQorVkVOQ0VMIEdFWkEKK1ZFTkNFTCBHRVpBCitWRU5DTCBKT1NJUAorVkVOQ0wgWlZPTklNSVIKK1ZFTkRMRU5FUiBBTkRSSUpBTkEKK1ZFTkRMRU5FUiBKRUxFTkEKK1ZFTkRMRU5FUiBaT1JBTgorVkVORSBHT1JEQU5BCitWRU5HUklOIEFHTkXFoAorVkVOR1JJTkcgRkVSRU5DCitWRU5HUklORyBTVEVWQU4KK1ZFUkFDIE1JT0RSQUcKK1ZFUkJBIEpPxb1FRgorVkVSQkFORUMgScWgVFZBTgorVkVSQkFORUMgScWgVFZBTgorVkVSQkFTSSBGUkFOSkEKK1ZFUkJBU0kgSk9WQU5LQQorVkVSRcWgIMSQVUxBCitWRVJFxaAgQU5EUklKQQorVkVSRcWgIERSQUdVVElOCitWRVJFxaAgSEFKTkFMS0EKK1ZFUkXFoCBJVkFOCitWRVJFxaAgSkVMSVNBVkVUQQorVkVSRcWgIEpPxb1FRgorVkVSRcWgIEpPU0lQCitWRVJFxaAgSk9TSVAKK1ZFUkXFoCBMQURJU0xBVgorVkVSRcWgIE1BUklKQQorVkVSRcWgQkFSQU5KSSBJxaBUVkFOCitWRVJFxaBCQVJBTkpJIE1BUklKQQorVkVSRcWgRVZJxIYgVElIT01JUgorVkVSRcW9QU4gxJBVUklDQQorVkVSRcW9QU4gWk9SS0EKK1ZFUkVCIMW9VcW9QU5BCitWRVJFQkXFoCBCT1JJU0xBVkEKK1ZFUkVCRcWgIEVSVklOCitWRVJFQ0tFSSBEVcWgSUNBCitWRVJFQ0tFSSBHRVpBCitWRVJFQ0tFSSBNQVJHSVRBCitWRVJHQcWgIEJSQU5LTworVkVSScSGIFJBVEtPCitWRVJLScSGIFRPRE9SCitWRVJLScSGIFZJVE9NSVIKK1ZFUktJxIYgVk9KSVNMQVYKK1ZFUkxJxIYgTUlMQU4KK1ZFUk1FxaAgTElMSQorVkVSTUVaT1ZJxIYgxJBPUsSQRQorVkVSTkHEjEtJIEFOSVRBCitWRVJOQcSMS0kgQlJBTklTTEFWCitWRVJOQcSMS0kgR0FWUkEKK1ZFUk5BxIxLSSBHQVZSSUxPCitWRVJOQcSMS0kgTUlST1NMQVYKK1ZFUk5FUiBBTkEKK1ZFUk5FUiBNSUhBSkxPCitWRVJORVIgU1RFVkFOCitWRVJOT1QgQU5BCitWRVJOT1QgRFVOSkEKK1ZFUk5PVCBKT1NJUAorVkVSTk9UIFZKRUtPU0xBVkEKK1ZFUk5PVCBaREVOS08KK1ZFUk5PVCBaREVOS08KK1ZFUlpPVEkgRFJBR0lDQQorVkVSWk9USSBKVUxJSkFOQQorVkVSWk9USSBQRVRBUgorVkVSWk9USSBTVEFOS0EKK1ZFU0VMScSGIEJPUklWT0oKK1ZFU0VMScSGIERSQUdPTEpVQgorVkVTRUxJxIYgR09TUEFWQQorVkVTRUxJxIYgUkFET0pLQQorVkVTRUxJxIYgU0xBVktPCitWRVNFTElDQSBNQU5FCitWRVNFTElDQSBNSUxBTgorVkVTRUxJQ0EgU1ZFVE9aQVIKK1ZFU0VMSU4gUEVUQVIKK1ZFU0VMSU5PViDEkE9SxJBFCitWRVNFTElOT1YgQk9SSVNMQVZBCitWRVNFTElOT1YgQlJBTklTTEFWCitWRVNFTElOT1YgTElCVcWgQQorVkVTRUxJTk9WIE1JTElDQQorVkVTRUxJTk9WIFJJU1RBCitWRVNFTElOT1YgU1RFVkFOIERSCitWRVNFTElOT1YgU1RFVkFOCitWRVNFTElOT1YgU1ZFVE9aQVIKK1ZFU0VMSU5PViBWRVJBCitWRVNFTElOT1ZJxIYgxJBPUsSQRQorVkVTRUxJTk9WScSGIMSQT1LEkEUKK1ZFU0VMSU5PVknEhiDEkE9SxJBFCitWRVNFTElOT1ZJxIYgxJBVSkEKK1ZFU0VMSU5PVknEhiDEkFVSQQorVkVTRUxJTk9WScSGIMSQVVJPCitWRVNFTElOT1ZJxIYgQUxFS1NBTkRBUgorVkVTRUxJTk9WScSGIEFMRUtTQU5EQVIKK1ZFU0VMSU5PVknEhiBBTEVLU0FOREFSCitWRVNFTElOT1ZJxIYgQUxFS1NBTkRBUgorVkVTRUxJTk9WScSGIEJPUkEKK1ZFU0VMSU5PVknEhiBCUkFORQorVkVTRUxJTk9WScSGIEJSQU5JU0xBVgorVkVTRUxJTk9WScSGIEJSQU5JU0xBVgorVkVTRUxJTk9WScSGIERBUkEKK1ZFU0VMSU5PVknEhiBEQVJLTworVkVTRUxJTk9WScSGIERSQUdBTgorVkVTRUxJTk9WScSGIERSQUdPTUlSCitWRVNFTElOT1ZJxIYgRFJBR09SQUQKK1ZFU0VMSU5PVknEhiBEVcWgQU5LQQorVkVTRUxJTk9WScSGIEdPUkRBTkEKK1ZFU0VMSU5PVknEhiBJTElKQQorVkVTRUxJTk9WScSGIEpFTElTQVZLQQorVkVTRUxJTk9WScSGIEpPUkRBTgorVkVTRUxJTk9WScSGIEpPU0lQQQorVkVTRUxJTk9WScSGIEpPVkFOS0EKK1ZFU0VMSU5PVknEhiBKVUxJSkFOQQorVkVTRUxJTk9WScSGIEtBVElDQQorVkVTRUxJTk9WScSGIExBTkEKK1ZFU0VMSU5PVknEhiBMRU5LSUNBCitWRVNFTElOT1ZJxIYgTEpVQk9NSVIKK1ZFU0VMSU5PVknEhiBNQVJJSkEKK1ZFU0VMSU5PVknEhiBNSUtBCitWRVNFTElOT1ZJxIYgTUlMQU5LQQorVkVTRUxJTk9WScSGIE1JTEFOCitWRVNFTElOT1ZJxIYgTUlMQU4KK1ZFU0VMSU5PVknEhiBNSUxBTgorVkVTRUxJTk9WScSGIE1JTEFOCitWRVNFTElOT1ZJxIYgTUlMQU4KK1ZFU0VMSU5PVknEhiBNSUxFTkEKK1ZFU0VMSU5PVknEhiBNSUxFCitWRVNFTElOT1ZJxIYgTUlMSVNBVgorVkVTRUxJTk9WScSGIE1JTE9SQUQKK1ZFU0VMSU5PVknEhiBNSVJLTworVkVTRUxJTk9WScSGIE1JVEEKK1ZFU0VMSU5PVknEhiBNTEFERU4KK1ZFU0VMSU5PVknEhiBOSUtPTEEKK1ZFU0VMSU5PVknEhiBOSUtPTEEKK1ZFU0VMSU5PVknEhiBPTEdBCitWRVNFTElOT1ZJxIYgUEFWTEUKK1ZFU0VMSU5PVknEhiBQRVJTSURBCitWRVNFTElOT1ZJxIYgUEVUQVIKK1ZFU0VMSU5PVknEhi1QT1BPVknEhiBCUkFOS0EKK1ZFU0VMSU5PVknEhiBQUkVEUkFHCitWRVNFTElOT1ZJxIYgUkFETUlMCitWRVNFTElOT1ZJxIYgUkFOS08KK1ZFU0VMSU5PVknEhiBSQU5LTworVkVTRUxJTk9WScSGIFJVxb1JQ0EKK1ZFU0VMSU5PVknEhiBSVcW9SUNBCitWRVNFTElOT1ZJxIYgUlXFvUlDQQorVkVTRUxJTk9WScSGIFNBVkEKK1ZFU0VMSU5PVknEhiBTRVZFUgorVkVTRUxJTk9WScSGIFNMT0JPREFOCitWRVNFTElOT1ZJxIYgU1BBU09KRQorVkVTRUxJTk9WScSGIFNURVZBTgorVkVTRUxJTk9WScSGIFNURVZBTgorVkVTRUxJTk9WScSGIFNWRVRJU0xBVgorVkVTRUxJTk9WScSGIFRPRE9SCitWRVNFTElOT1ZJxIYgVE9ET1IKK1ZFU0VMSU5PVknEhiBVUk/FoAorVkVTRUxJTk9WScSGIFZBU0lMSktBCitWRVNFTElOT1ZJxIYgVkVMSU1JUgorVkVTRUxJTk9WScSGIFZFTElaQVIKK1ZFU0VMSU5PVknEhiBWRUxKS08KK1ZFU0VMSU5PVknEhiBWRVJBCitWRVNFTElOT1ZJxIYgVkVSQQorVkVTRUxJTk9WScSGIFZFU0VMSU4KK1ZFU0VMSU5PVknEhiBWRVNFTElOCitWRVNFTElOT1ZJxIYgVklOS0EKK1ZFU0VMSU5PVknEhiBWTEFESVNMQVYKK1ZFU0VMSU5PVknEhiBWTEFTVElNSVIKK1ZFU0VMSU5PVknEhiBWT0pJU0xBViBEUiBMRUtBUgorVkVTRUxJTk9WScSGIFZPSklTTEFWCitWRVNFTElOT1ZJxIYgVlVLSUNBCitWRVNFTElOT1ZJxIYgWk9SQU4KK1ZFU0VMSU5PVknEhiBaT1JBTgorVkVTRUxJTk9WScSGIFpWRVpEQU4KK1ZFU0nEhiBET0JST1NBVgorVkVTScSGIERSQUdPU0xBVgorVkVTScSGIEtBVElDQQorVkVTScSGIEtSU1RBCitWRVNJxIYgTUlMQU4KK1ZFU0nEhiBNSUxBTgorVkVTScSGIE1JTElDQQorVkVTScSGIE1JT0RSQUcKK1ZFU0nEhiBNSVRBUgorVkVTScSGIE1MQURFTgorVkVTScSGIFJVxb1JQ0EKK1ZFU0nEhi1WQVJHQSBEUkFHSUNBCitWRVNJxIYgVkVTRUxJTktBCitWRVNJTiBCUkFOS08KK1ZFU0lOIE1JTEFOCitWRVNJTiBOQURBCitWRVNJTiBQRVRBUgorVkVTS09WIEFMRUtTQU5EQVIKK1ZFU0tPViBBTEVLU0FOREFSCitWRVNLT1YgSVZBTgorVkVTS09WIEpFTEVOQQorVkVTS09WIE1JTE/FoAorVkVTS09WScSGIEFOS0lDQQorVkVTS09WScSGIERSQcWgS08KK1ZFU0tPVknEhiBLQVRBUklOQQorVkVTS09WScSGIE1BUklDQQorVkVTS09WScSGIE1JUk9TTEFWCitWRVNLT1ZJxIYgTU9NxIxJTE8gRElQTCBJTkcKK1ZFU0tPVknEhiBQRVRBUgorVkVTS09WScSGIFNMQVZLTworVkVTS09WScSGIFNUQU5PSkUKK1ZFU0tPVknEhiBaT1JBCitWRVNMQVZTS0kgVElOS0EKK1ZFU05JxIYgTUlMRU5BCitWRVNOScSGLVZBU0lMSkVWScSGIEFOxJBFTElKQQorVkVTT1ZJxIYgQUNPCitWRVNPVknEhiBBTkRSSUpBCitWRVRSQUIgRlJBTkpBCitWRVRSQUIgS0FUQUxJTgorVkVUUkFCIE1JSEFMSgorVkVUUk8gUEVUQVIKK1ZFVkVSScSMRUsgTUFSSUpBCitWRVpFVEkgTUlIQUVMCitWRVpFVEkgUEVUQVIKK1ZFWklMScSGIMSQT1LEkEUKK1ZFWklMScSGIENSTk9HT1JLQQorVkVaSUxJxIYgRFXFoEFOS0EKK1ZFWklMScSGIERVxaBJQ0EKK1ZFWklMScSGIEpFTElDQQorVkVaSUxJxIYgUkFET1NMQVYKK1ZFWk1BUiBCUkFOS08KK1ZFWk1BUiBJTElKQQorVkVaTUFSIE1BUkdBUklUQQorVkVaTUFSIE1JTEFOCitWRVpNQVIgTUlMT8WgCitWRVpNQVIgTUlMT1JBRAorVkVaTUFSIE1PTcSMSUxPCitWRVpNQVIgTklLT0xBCitWRVpNQVIgUEVUQVIKK1ZFWlVMScSGIMSQT1LEkEUKK1ZJxIxFSyDFoEFORE9SCitWScSMRUsgS0FST0xKCitWScSMRVZJxIYgWlZPTklNSVIKK1ZJxIxJSyBJR05KQVQKK1ZJxaBFS1JVTkEgQk9SSVZPSgorVknFoEVLUlVOQSBEQU5LTworVknFoEVLUlVOQSBEVcWgQU4KK1ZJxaBFS1JVTkEgRFXFoEtPCitWScWgRUtSVU5BIEpPVkFOCitWScWgRUtSVU5BIE1JTEFOCitWScWgRUtSVU5BIFNMQVZLTworVknFoEVLUlVOQSBWT0pJTgorVknFoEnEhiBNSUxFCitWScWgS09WScSGIE1JTElDQQorVknFoEtPVknEhiBNSUxPxaAKK1ZJxaBLT1ZJxIYgUExBTklOS0EKK1ZJxaBLT1ZJxIYgUFJFRFJBRworVknFoEtPVknEhiBWTEFESU1JUiBEUgorVknFoE5JxIYgREFOSUNBCitWScWgTknEhiBEVcWgQU4KK1ZJxaBOScSGIFpPUktBCitWScWgTkpFVsSMQU5JTiBKT1ZBTgorVknFoE5KRVbEjEFOSU4gTEVQQQorVknFoE5KRVZBQyBCT1JPCitWScWgTkpFVkFDIE9MSVZFUkEKK1ZJxaBOSkVWU0tJIEtBVElDQQorVknFoE5KScSMQU4gRFXFoEFOCitWScWgTkpJxIxBTiBHQVZSSUxPCitWScWgTkpJxIxBTiBKT1ZBTktBCitWScWgTkpJxIxBTiBNSUxJQ0EKK1ZJxaBOSknEjEFOSU4gSk9WQU5LQQorVknFoE5KScSMQVIgxb1BUktPCitWScWgTkpJxIxBUiDEkE9SxJBFCitWScWgTkpJxIxBUiDEkE9SxJBFCitWScWgTkpJxIxBUiBEUkFHT1NMQVYKK1ZJxaBOSknEjEFSIE1BUklKQQorVknFoE5KScSMQVIgTUlLQQorVknFoE5KScSMQVIgTkVERUxKS08KK1ZJxaBOSknEjEtJIEdPUkRBTkEKK1ZJxaBOSknEjEtJIE1JTE/FoAorVknFoE5KScSMS0kgTUlST1NMQVYKK1ZJxaBOSknEjEtJIFNSRVRFTgorVknFoE5KScSGIMSMRURPTUlMQQorVknFoE5KScSGIEJSQU5LTworVknFoE5KScSGIEJSQU5TSUxBVkEKK1ZJxaBOSknEhiBEQUxJQk9SCitWScWgTkpJxIYgRFXFoEFOCitWScWgTkpJxIYgSUxJSkEKK1ZJxaBOSknEhiBKT1NJUAorVknFoE5KScSGIE1BUklKQQorVknFoE5KScSGIE1JTEFOCitWScWgTkpJxIYgTUlMSUNBCitWScWgTkpJxIYgT0xJVkVSQQorVknFoE5KScSGIE9MSVZFUgorVknFoE5KScSGIFNQQVNPSkUKK1ZJxaBOSknEhiBUSUhPTUlSCitWScWgTkpJxIYgVkFTSUxJSkUKK1ZJxaBOSknEhiBWRVJBCitWScWgTkpJxIYgVkVTTkEKK1ZJxaBOSk9WU0tJIMSQVVJBCitWScWgTkpPVlNLSSBBUkFOS0EKK1ZJxaBOSk9WU0tJIE1BUklKQQorVknFoE5KT1ZTS0kgTUFSSkFOCitWScWgT8WgRVZJxIYgUlXFvUVOQQorVknFoE9OVEFJIEpPxb1FRgorVknFoE9OVEFJIEpPxb1FRgorVknEhkVWScSGIFJBREnFoEEKK1ZJxb1BSSDFoEFORE9SCitWSUFUT1JJUyBKQU5PxaAKK1ZJQVRPUklTIEpVTEnFoEtBCitWSUFUT1JJUyBMSlVCSUNBCitWSUJPSyBKT8W9RUYKK1ZJQ0VJIEpPxb1FRgorVklDRUkgTklLT0xBCitWSUNJQU4gS0xBUkEKK1ZJQ0tPIEFSUEFECitWSUNLTyBGUkFOSkEKK1ZJQ0tPIEpPU0lQCitWSUNLT8WgIEpPxb1FRgorVklDS09WScSGIEJSQU5LTworVklDS09WScSGIEJSQU5LTworVklDS09WScSGIERSQUdJQ0EKK1ZJQ0tPVknEhiBUT01JU0xBVgorVklDS09WScSGIFZFU05BCitWSUNPIEJPR0RBTgorVklDTyBSQURJVk9KRQorVklDTyBSQURPTUlSCitWSUQgQlJBTklTTEFWQQorVklEQSBKRUxJU0FWRVRBCitWSURBIEpPxb1FRgorVklEQSBKVUxJSkEKK1ZJREEgU0xPQk9EQU5LQQorVklEQSBWSUxJCitWSURBxIwgSkFOSkEgTE9LQUwKK1ZJREHEjCBMQVNMTworVklEQcSMIFNMQVZJQ0EKK1ZJREFKScSGIMW9SVZLTworVklEQUpJxIYgSkFTTUlOQQorVklEQUpJxIYgSk9TSVAKK1ZJREFKScSGIExVxIxJSkFOTworVklEQUpJxIYgTUFSSUpBCitWSURBSknEhiBWRUxKQQorVklEQUpJxIYgVkxBREEKK1ZJREFLT1YgQU5LSUNBCitWSURBS09WIEpPVkFOCitWSURBS09WIFpPUklDQQorVklEQUtPVknEhiBBTEVLU0FOREFSCitWSURBS09WScSGIEFMRUtTQU5EUkEgRFIKK1ZJREFLT1ZJxIYgQU5HRUxJTkEKK1ZJREFLT1ZJxIYgQlJBTklNSVIKK1ZJREFLT1ZJxIYgQlJBTktPCitWSURBS09WScSGIERVxaBBTktBCitWSURBS09WScSGIERVxaBBTgorVklEQUtPVknEhiBFTUlMCitWSURBS09WScSGIElWQU4KK1ZJREFLT1ZJxIYgSVZBTgorVklEQUtPVknEhiBJVkFOCitWSURBS09WScSGIEpBR09EQQorVklEQUtPVknEhiBKT1NJUAorVklEQUtPVknEhiBKT1NJUAorVklEQUtPVknEhiBLT1NBCitWSURBS09WScSGIE1JSEFKTE8KK1ZJREFLT1ZJxIYgTUlMQU4KK1ZJREFLT1ZJxIYgTUlMQU4KK1ZJREFLT1ZJxIYgTUlMSkEKK1ZJREFLT1ZJxIYgTUlSxIxFVEEKK1ZJREFLT1ZJxIYgTUlSSkFOQQorVklEQUtPVknEhiBNSVJLTworVklEQUtPVknEhiBORURFTEpLTworVklEQUtPVknEhiBPTEdBCitWSURBS09WScSGIE9MR0EKK1ZJREFLT1ZJxIYgUkFERU5LTworVklEQUtPVknEhiBSQURNSUxBCitWSURBS09WScSGIFNBVkEKK1ZJREFLT1ZJxIYgU0xBVktBCitWSURBS09WScSGIFNPRklKQQorVklEQUtPVknEhiBTUkXEhktPCitWSURBS09WScSGIFNSRcSGS08KK1ZJREFLT1ZJxIYgU1RFVkFOCitWSURBS09WScSGIFNUT0pBTgorVklEQUtPVknEhiBTVkVUT1pBUgorVklEQUtPVknEhiBURVJFWkEKK1ZJREFLT1ZJxIYgVk9KSVNMQVYKK1ZJREFLT1ZJxIYgVk9KSVNMQVYKK1ZJREFLT1ZJxIYgVlVLQcWgSU4KK1ZJREFOT1ZJxIYgTUlIQUpMTworVklEQU5PVknEhi1TS09LTyBKRUxFTkEKK1ZJREFSScSGIEpPVk8KK1ZJREFSScSGIE1JTE9SQUQKK1ZJREFSScSGIFJBVEtPCitWSURBUknEhiBTVEVWQU4KK1ZJREFTIFRFUkVaQQorVklERUMgSk9TSVAKK1ZJREVDIEpPU0lQCitWSURFTk9WScSGIEJSQU5LTworVklERU5PVknEhiBLT1NPVktBCitWSURFTk9WScSGIExKSUxKQU5BIERSCitWSURFTk9WScSGIE1PTUlSCitWSURFUiBNSVJLTyBESVBMIElORworVklEScSGIMW9RUxKS08KK1ZJREnEhiDEkE9SxJBFCitWSURJxIYgQlJBTklTTEFWCitWSURJxIYgQlJBTktBCitWSURJxIYgQlJBTktBCitWSURJxIYgQlJBTktPCitWSURJxIYgRFJBR0FOQQorVklEScSGIERVxaBBTktBCitWSURJxIYgRU1JTElKQQorVklEScSGIEpFTElDQQorVklEScSGIEpPQ0EKK1ZJREnEhiBMSklMSkFOQQorVklEScSGIExKVUJPTUlSCitWSURJxIYgTUFSSUpBCitWSURJxIYgTUlMQU4KK1ZJREnEhiBNSUxBTgorVklEScSGIE1JTE/FoAorVklEScSGIE1JUk9TTEFWQQorVklEScSGIE1JUk9TTEFWCitWSURJxIYgTkFEQQorVklEScSGIFBFUk8KK1ZJREnEhiBSQURNSUxBCitWSURJxIYgUkFETUlMQQorVklEScSGIFJBSktPCitWSURJxIYgU09GSUpBCitWSURJxIYgU1RBTklTTEFWQQorVklEScSGIFNURVZBTgorVklEScSGIFNWRVRJU0xBVgorVklEScSGIFZFTEpLTworVklEScSGIFZFUkEKK1ZJREnEhiBaRFJBVktPCitWSURJQ0tJIEJSQU5LTworVklESUNLSSBJVkFOCitWSURJQ0tJIEtPU1RBCitWSURJQ0tJIExKVUJPTUlSCitWSURJQ0tJIE1JUk9TTEFWCitWSURJTkVSIEJPxb1JREFSCitWSURNQU5JxIYgR0FCUklKRUxBCitWSURPSkVWScSGIMW9SVZLQQorVklET0pFVknEhiBCTEHFvU8KK1ZJRE9KRVZJxIYgQk/FvUEKK1ZJRE9KRVZJxIYgSk9TSUYKK1ZJRE9KS09WScSGIFJBRE9NSVIKK1ZJRE9TQVZMSkVWScSGIERPQlJPU0FWCitWSURPU0FWTEpFVknEhiBEVcWgQU4KK1ZJRE9TQVZMSkVWScSGIEpFTElDQQorVklET1NBVkxKRVZJxIYgWlZPTklNSVIKK1ZJRE9WScSGIMW9SVZLTworVklET1ZJxIYgQU1JUkEKK1ZJRE9WScSGIEFOSUNBCitWSURPVknEhiBCRUFUUklTCitWSURPVknEhiBCSUxKQU5BCitWSURPVknEhiBCSVNFUktBCitWSURPVknEhiBCT8W9SURBUgorVklET1ZJxIYgQk9SSVNMQVYKK1ZJRE9WScSGIEJPUklTTEFWCitWSURPVknEhiBCUkFOSVNMQVYKK1ZJRE9WScSGIERSQUdPCitWSURPVknEhiBNQVJKQU4KK1ZJRE9WScSGIE1JTEFOCitWSURPVknEhiBNSUxBTgorVklET1ZJxIYgTUlMQU4KK1ZJRE9WScSGIE1JTEUKK1ZJRE9WScSGIE1JTElDQQorVklET1ZJxIYgTUlMT8WgCitWSURPVknEhiBNSVJLTworVklET1ZJxIYgTkFEQQorVklET1ZJxIYgUEVUQVIKK1ZJRE9WScSGIFJBRE9NSVIKK1ZJRE9WScSGIFJBSktPCitWSURPVknEhiBSVcW9SUNBCitWSURPVknEhiBTQVZBCitWSURPVknEhiBTTE9CT0RBTgorVklET1ZJxIYgVklECitWSUdJIEpPU0lQCitWSUdOSkVWScSGIMSQT1LEkEUKK1ZJR05KRVZJxIYgQU5BCitWSUdOSkVWScSGIEJSQU5LQQorVklHTkpFVknEhiBCUkFOS08KK1ZJR05KRVZJxIYgREFLTworVklHTkpFVknEhiBEUkFHQU4KK1ZJR05KRVZJxIYgRFJBR0FOCitWSUdOSkVWScSGIERVxaBBTktBCitWSUdOSkVWScSGIE1JTEVOS08KK1ZJR05KRVZJxIYgTkVWRU5LQQorVklHTkpFVknEhiBSQURFCitWSUdOSkVWScSGIFNURVZBTklKQQorVklHTkpFVknEhiBWRVNOQQorVklHTkpFVknEhiBWTEFESU1JUgorVklHTkpFVknEhiBaT1JBTgorVklKQVRPViBTTUlMSkEKK1ZJSkXFoFRJQ0EgTkpFR09NSVIKK1ZJSlVLIExKVUJBTgorVklKVUsgU0FWQQorVklLT1IgUEVUQVIKK1ZJS09SIFJVxb1BCitWSUzEjEVLIEpBTkpBCitWSUzEjEVLIE5JS09MQQorVklMQSBNSUxPVkFOCitWSUxBR0/FoCDEkEVSxJBJCitWSUxFVEkgWk9SQQorVklMScWgIMSQVVJBCitWSUxJxaAgRlJBTkpBCitWSUxJxIYgTUFSS08KK1ZJTEnEhiBSQURPTUlSCitWSUxJxIYgUkFET1NMQVZBCitWSUxJxIYgUk9aQUxJSkEKK1ZJTEnEhiBWT0pJU0xBVgorVklMSUdPUlNLSSBQQVVMQQorVklMT1RJxIYgxb1JVktPCitWSUxPVEnEhiBNSUxJU0FWCitWSUxPVElKRVZJxIYgRFJBR1VUSU4KK1ZJTE9USUpFVknEhiBLScSGVU4KK1ZJTE9USUpFVknEhiBNSVJPSkUKK1ZJTE9WQcSMS0kgS0FUSUNBCitWSUxPVkHEjEtJIFNMQVZLTworVklMT1ZBQyBKT1ZBTgorVklMT1ZBQyBKT1ZBTgorVklMT1ZBQyBNSUxBTgorVklMT1ZTS0kgxJBPUsSQRQorVklMT1ZTS0kgQlJBTklTTEFWCitWSUxPVlNLSSBCUkFOS08KK1ZJTE9WU0tJIFNBVkEKK1ZJTE9WU0tJIFNMQVZPTUlSCitWSUxPVlNLSSBTTUlMSkFOQQorVklMT1ZTS0kgVkVMSktPCitWSUxPVlNLSSBaT1JBCitWSUxVUyBEQU5JQ0EKK1ZJTUVSIFZFUkEKK1ZJTiBJVkFOCitWSU4gSk9TSVAKK1ZJTiBMQUpPxaAKK1ZJTiBQQVZMRQorVklOIFNWRVRMQU5BCitWSU7FoCBEUkFHVVRJTgorVklOQUogxJBPUsSQRQorVklOQUogxJBPUsSQRQorVklOQUogSkFOS08KK1ZJTkFKIExKVUJJQ0EKK1ZJTkFKIE1FTEFOSUpBCitWSU5BSkkgxJBVUkEKK1ZJTkFKSSBNSVRBUgorVklOQUpJIFZFUklDQQorVklOQVLFvSBWTEFESU1JUgorVklOQ0UgQU5EUklKQQorVklOQ0UgRVLFvUVCRVQKK1ZJTkNFIEnFoFRWQU4KK1ZJTkNFIEtBUkxPCitWSU5DRSBMQUNJS0EKK1ZJTkNFIE1BUkVMQQorVklOQ0UgTUFSR0lUQQorVklOQ0UgUEFWTEUKK1ZJTkNFVElOIEFOQQorVklORMW9QU5PVknEhiBQRVRBUgorVklORMW9QU5PVknEhiBSQURJVk9KRQorVklOREnFoCBEUkFHVVRJTgorVklOREnFoCBTVEVWQU4KK1ZJTkVSIEJSQU5JU0xBVgorVklORVIgSVZBTgorVklORVIgSkVST05JTQorVklORVIgTUFSSUpBCitWSU5FUiBaVk9OSU1JUgorVklOS0EgRU1BTlVFTEEKK1ZJTktJxIYgSUxJSkEKK1ZJTktMRVIgSk/FvUVGCitWSU5LTEVST1ZJxIYgVkVSSUNBCitWSU5LT1ZJxIYgQU5BCitWSU5LT1ZJxIYgRFJBR0FOCitWSU5LT1ZJxIYgTEpVREVWSVQKK1ZJTk9LScSGIEJPR0RBTgorVklOT0tJxIYgVkFTSUxKS0EKK1ZJUkFHIEFMQkVSVAorVklSQUcgQU5EUklKQQorVklSQUcgRVJJS0EKK1ZJUkFHIEpVTElKQU5BCitWSVJBRyBMSlVERVZJVAorVklSQUcgTUFSVE9OCitWSVJBRyBNSUhBSkxPCitWSVJBRyBST0JFUlQKK1ZJUkFHIFJPQkVSVAorVklSQyBGRVJFTkMKK1ZJUkMgSk/FvUVGCitWSVJDIEpPVkFOCitWSVJDIE1BUlRJTgorVklSQyBOQURBCitWSVJDIFJVxb1JQ0EKK1ZJUkMgU1RFVkFOCitWSVJJxIYgSVZBTgorVklSScSGIElWQU4KK1ZJUklKRVZJxIYgxJBPUsSQRQorVklSSUpFVknEhiBCT8W9SURBUgorVklSSUpFVknEhiBCVURJTUlSCitWSVJJSkVWScSGIEpPVkFOS0EKK1ZJUklKRVZJxIYgTEpVQklOS08KK1ZJUklKRVZJxIYgUEVUQVIKK1ZJUklKRVZJxIYgVk9KSU4KK1ZJU0xBVlNLSSDEkFVSQQorVklTTEFWU0tJIEJPR0RBTgorVklTTEFWU0tJIEpBS0lNCitWSVNMQVZTS0kgSkFLSU0KK1ZJU0xBVlNLSSBKQU5PxaAKK1ZJU0xBVlNLSSBKQU5PxaAKK1ZJU0xBVlNLSSBMRU9OCitWSVNMQVZTS0kgTEpVQk9NSVIKK1ZJU0xBVlNLSSBNQVJJSkEKK1ZJU0xBVlNLSSBNSUhBSkxPCitWSVNMQVZTS0kgTUlST04KK1ZJU0xBVlNLSSBNSVJPU0xBVgorVklTTEFWU0tJIE1JUk9TTEFWCitWSVNMQVZTS0kgTkFUQcWgQQorVklTTEFWU0tJIFpMQVRLTworVklTVCBIRUxHQUFOQQorVklUQVMgU1RFVkFOCitWSVRBUyBTVEVWQU4KK1ZJVEFTT1ZJxIYgRFXFoEFOS0EKK1ZJVEFTT1ZJxIYgRFXFoEFOS0EKK1ZJVEFTT1ZJxIYgRFXFoEFOCitWSVRBU09WScSGIE5FQk9KxaBBCitWSVRBWiBQRVRBUgorVklURVogSkFOCitWSVRFWiBUVUdPTUlSCitWSVRFWiBaVk9OS08KK1ZJVEnEhiDEkE9SxJBFCitWSVRJxIYgxJBPUsSQRQorVklUScSGIEJPxaBLTyBEUiBMRUtBUgorVklUSlVLIE1JUkpBTkEgRElQTCBJTkcKK1ZJVEpVSyBQRVRBUiBESVBMIElORworVklUS0FJIElMT05BCitWSVRLT1ZJxIYgQlJBTktPCitWSVRLT1ZJxIYgRFJBR08KK1ZJVEtPVknEhiBKT1ZBTgorVklUT01JUk9WIMW9SVZBTgorVklUT01JUk9WScSGIEJPUklTCitWSVRPTUlST1ZJxIYgRFJBR09NSVIKK1ZJVE9SQUMgxJBVUkEKK1ZJVE9SQUMgxJBVUk8KK1ZJVE9SQUMgQk9SSVNMQVYKK1ZJVE9SQUMgSUxJSkEKK1ZJVE9SQUMgTkFEQQorVklUT1JBQyBSVcW9RU5LQQorVklUT1JPVknEhiBNSUxBTgorVklUT1JPVknEhiBNSUxPxaAKK1ZJVE9ST1ZJxIYgT0xHQQorVklUT1JPVknEhiBSQU5LQQorVklUT1JPVknEhiBTT0ZJSkEKK1ZJVFXFoEtBIFNURVZBTgorVklWT0QgSkVMSVNBVkVUQQorVklWT0QgTUFHREFMRU5BCitWSVpJIMWgQU5ET1IKK1ZJWkkgSk9TSVAKK1ZJWkkgSk9WQU4KK1ZJWkkgS0FUSUNBCitWSVpJIE1BUklKQQorVklaSSBNQVJJSkEKK1ZJWkkgUkFET0pLQQorVklaSSBTT05KQQorVklaSSBTVEVWQU4KK1ZKRcWgVElDQSDEkFVSTworVkpFxaBUSUNBIERVxaBBTktBCitWSkXFoFRJQ0EgSk9WTworVkpFxaBUSUNBIE1JTEFOCitWSkXFoFRJQ0EgTUlSS08KK1ZKRcWgVElDQSBNSVJPU0xBVgorVkpFxaBUSUNBIE5BREEKK1ZKRcWgVElDQSBORUJPSsWgQQorVkpFxaBUSUNBIFNMQVZLTworVkpFUkcgQlJBTklTTEFWCitWSkVUUk9WIExKVUJJQ0EKK1ZMQSBEVcWgQU4KK1ZMQSBEVcWgQU4KK1ZMQSBKT1ZBTgorVkxBIE1JTE9WQU4KK1ZMQSBQRVRBUgorVkxBIFJBRE9TTEFWCitWTEEgU0xBVktPCitWTEEgU1JFVEEKK1ZMQcSMTyBEVcWgQU5LQQorVkxBxaDEjEnEhiBBTEVLU0FOREFSCitWTEHFoEnEhiBNSU9EUkFHCitWTEHFoEnEhiBWQVNPCitWTEHFoEtBTEnEhiDEkE9SxJBFCitWTEHFoEtBTEnEhiBBTEVLU0FOREFSCitWTEHFoEtBTEnEhiBBTkRSSUpBCitWTEHFoEtBTEnEhiBCT8W9QU5BCitWTEHFoEtBTEnEhi1CT0pBTk9WScSGIFJBSktBCitWTEHFoEtBTEnEhiBCUkFOSVNMQVYKK1ZMQcWgS0FMScSGIEJSQU5JU0xBVgorVkxBxaBLQUxJxIYgQlJBTklTTEFWCitWTEHFoEtBTEnEhiBET05LQQorVkxBxaBLQUxJxIYgRkFESUxBCitWTEHFoEtBTEnEhiBJTElKQQorVkxBxaBLQUxJxIYgTEFaQVIKK1ZMQcWgS0FMScSGIExBWkFSCitWTEHFoEtBTEnEhiBNSUxPUkFECitWTEHFoEtBTEnEhiBOSUtPTEEKK1ZMQcWgS0FMScSGIE9MR0EKK1ZMQcWgS0FMScSGIFBBVkxFCitWTEHFoEtBTEnEhiBQQVZMRQorVkxBxaBLQUxJxIYgUEFWTEUKK1ZMQcWgS0FMScSGIFBFVEFSCitWTEHFoEtBTEnEhiBQRVRBUgorVkxBxaBLQUxJxIYtUE9QT1ZJxIYgRFXFoEFOS0EKK1ZMQcWgS0FMScSGIFJBRE9TTEFWCitWTEHFoEtBTEnEhiBTQVZBCitWTEHFoEtBTEnEhiBTTE9CT0RBTgorVkxBxaBLQUxJxIYgU0xPQk9EQU4KK1ZMQcWgS0FMScSGIFNURVZBTgorVkxBxaBLQUxJxIYgU1RPSkFOCitWTEHFoEtBTEnEhiBWTEFESU1JUgorVkxBxaBLQUxJxIYgWk9SQQorVkxBxaBLQUxJSkEgSkVMRU5BCitWTEHFoEtBTElKQSBWTEFEQQorVkxBxaBLQUxJTiBCUkFOS08KK1ZMQcWgS0kgQk9HREFOS0EKK1ZMQcWgS0kgTEFaQVIKK1ZMQcWgS0kgUFJFRFJBRworVkxBREFSU0tJIE9MR0EKK1ZMQURBUlNLSSBPTEdBCitWTEFERVRJxIYgTUlMQU4KK1ZMQURFVEnEhiBNSVJLTworVkxBREnEhiBEUkFHTworVkxBREnEhiBNSUxBTgorVkxBREnEhiBQRVRBUgorVkxBRElNSVIgU0VMRU5BCitWTEFESU1JUiBaRFJBVktPCitWTEFESU1JUk9WScSGIEFMRUtTQU5EQVIKK1ZMQURJTUlST1ZJxIYgTUlMQU4KK1ZMQURJTUlST1ZJxIYgVkxBRElNSVIKK1ZMQURJU0FWTEpFViDFvUlWQU4KK1ZMQURJU0FWTEpFViBNSUxPUkFECitWTEFESVNBVkxKRVYgUEVSQQorVkxBRElTQVZMSkVWIFRPTUEKK1ZMQURJU0FWTEpFVknEhiDEkE9SxJBFCitWTEFESVNBVkxKRVZJxIYgxJBVUkEKK1ZMQURJU0FWTEpFVknEhiBERVNJTUlSCitWTEFESVNBVkxKRVZJxIYgRFJBR0lDQQorVkxBRElTQVZMSkVWScSGIEVSxb1FQkVUCitWTEFESVNBVkxKRVZJxIYgSkVMRU5BCitWTEFESVNBVkxKRVZJxIYgTUlMT1NBVkEKK1ZMQURJU0FWTEpFVknEhiBNSVJPU0xBVgorVkxBRElTQVZMSkVWScSGIE9CUkFECitWTEFESVNBVkxKRVZJxIYtUEXFoEtBTk9WIE1JUkpBTkEKK1ZMQURJU0FWTEpFVknEhiBQUkVEUkFHCitWTEFESVNBVkxKRVZJxIYgVk9KSVNMQVYKK1ZMQURPVknEhiBKT1ZBTgorVkxBRE9WScSGIEpPVkFOCitWTEFET1ZJxIYgUkFET0pLQQorVkxBRFXFoEEgTklLT0xBCitWTEFEVcWgScSGIElWQU4KK1ZMQURVxaBJxIYgTUlMQU4KK1ZMQURVTE9WIMW9SVZPSklOCitWTEFEVUxPVknEhi1QT1BPViBNQVJJSkEgRFIgTEVLQVIKK1ZMQURVTE9WScSGIFRJSE9NSVIKK1ZMQUggREFOSUNBCitWTEFIIElWQU4KK1ZMQUggUEFWTEUKK1ZMQUggUkFET1ZBTgorVkxBSEVLIFNUQU5LTworVkxBSElOScSGIE1JTE/FoAorVkxBSE8gS1JVTk9TTEFWCitWTEFIT1ZJxIYgxJBPUsSQRQorVkxBSE9WScSGIEJPSkFOQQorVkxBSE9WScSGIEJSQU5JU0xBVgorVkxBSE9WScSGIEJSQU5LQQorVkxBSE9WScSGIEJSQU5LQQorVkxBSE9WScSGIERBTklKRUxBCitWTEFIT1ZJxIYgRFJBR09MSlVCCitWTEFIT1ZJxIYgRFJBR08KK1ZMQUhPVknEhiBEVcWgQU4KK1ZMQUhPVknEhiBKRUxJQ0EKK1ZMQUhPVknEhiBMSlVCSUNBCitWTEFIT1ZJxIYgTEpVQklOS0EKK1ZMQUhPVknEhiBNQVJJSkEKK1ZMQUhPVknEhiBNSUxBTiBESVBMIElORworVkxBSE9WScSGIE1JTEVOS08KK1ZMQUhPVknEhiBNSUxJQ0EKK1ZMQUhPVknEhiBNSVJLTyBEUiBJTkcKK1ZMQUhPVknEhiBNSVJPU0xBVkEKK1ZMQUhPVknEhiBNT03EjElMTworVkxBSE9WScSGIFBBVkxFCitWTEFIT1ZJxIYgUkFET8WgCitWTEFIT1ZJxIYgUkFET01JUgorVkxBSE9WScSGIFJBRE9OSkEKK1ZMQUhPVknEhiBTQVZBIERSCitWTEFIT1ZJxIYgU0VOS0EKK1ZMQUhPVknEhiBTTE9CT0RBTgorVkxBSE9WScSGIFNURVZBTgorVkxBSE9WScSGIFNUUkFISU5KQQorVkxBSE9WScSGIFRFT0RPUkEKK1ZMQUhPVknEhiBWSVRPTUlSS0EKK1ZMQUhPVknEhiBWTEFEQQorVkxBSE9WScSGIFZMQURJTUlSCitWTEFIVcWgScSGIE1JUktPCitWTEFIVcWgScSGIE9MR0lDQQorVkxBSVNBVkxKRVZJxIYgxb1JVktPCitWTEFJU0FWTEpFVknEhiDEkFVKTworVkxBSVNBVkxKRVZJxIYgQU5HRUxJTkEKK1ZMQUlTQVZMSkVWScSGIERBTklMTworVkxBSVNBVkxKRVZJxIYgREFSQQorVkxBSVNBVkxKRVZJxIYgRE1JVEFSCitWTEFJU0FWTEpFVknEhiBEVcWgQU4KK1ZMQUlTQVZMSkVWScSGIE1BS1NJTQorVkxBSVNBVkxKRVZJxIYgTUlMQU4KK1ZMQUlTQVZMSkVWScSGIE1JTEFOCitWTEFJU0FWTEpFVknEhiBNSUxJSkFOQQorVkxBSVNBVkxKRVZJxIYgTUlMT8WgCitWTEFJU0FWTEpFVknEhiBNT03EjElMTworVkxBSVNBVkxKRVZJxIYgTklLT0xBCitWTEFJU0FWTEpFVknEhiBOSUtPTEEKK1ZMQUlTQVZMSkVWScSGIE5JS09MQQorVkxBSVNBVkxKRVZJxIYgUkFETUlMQQorVkxBSVNBVkxKRVZJxIYgU0FWTworVkxBSVNBVkxKRVZJxIYgU0xPQk9EQU4KK1ZMQUlTQVZMSkVWScSGIFNPRklKQQorVkxBSVNBVkxKRVZJxIYgU1RPSkEKK1ZMQUlTQVZMSkVWScSGIFRSSVZVTkEKK1ZMQUlTQVZMSkVWScSGIFZBU08KK1ZMQUpBTktPViBMQVpBUgorVkxBSkFOS09WIE5BVEFMSUpBCitWTEFKQU5LT1YgU0xPQk9EQU4KK1ZMQUpBTktPVi1WVUxJxIYgVkVSQQorVkxBSknEhiBEUkFHQU4KK1ZMQUpJxIYgRFJBR09TTEFWQQorVkxBSknEhiBEVcWgQU5LQQorVkxBSknEhiBEVcWgSUNBCitWTEFKScSGIEpPVkFOCitWTEFKScSGIE1BUklKQQorVkxBSknEhiBNSUxPxaAKK1ZMQUpJxIYgVkFMRVJJSkEKK1ZMQUpLT1YgQk9TSUxKS0EKK1ZMQUpLT1YgQlJBTklTTEFWCitWTEFKS09WIEJSQU5LTworVkxBSktPVi1JVkFOT1ZJxIYgU05Fxb1BTkEKK1ZMQUpLT1YgTEFaQVIKK1ZMQUpLT1YgTEFaQQorVkxBSktPViBNQUNBCitWTEFKS09WIE1JT0RSQUcKK1ZMQUpLT1YgTUlSS08KK1ZMQUpLT1YgTUxBREVOCitWTEFKS09WIE5JS09MQQorVkxBSktPViBQQVZMRQorVkxBSktPViBQRVRBUgorVkxBSktPViBaT1JJQ0EKK1ZMQUpLT1ZJxIYgQU5UT05JSkEKK1ZMQUpLT1ZJxIYgQk9HREFOCitWTEFKS09WScSGIE1JTFVUSU4KK1ZMQUpLT1ZJxIYgTUlPRFJBRworVkxBSktPVknEhiBORU1BTkpBCitWTEFKTknEhiDEjEVET01JUgorVkxBSk5JxIYgR09SQU4KK1ZMQUpOScSGIE1JUkpBTkEKK1ZMQUpOScSGIFpPUkEKK1ZMQUpPVkFOT1YgU0xPQk9EQU4KK1ZMQUxVS0lOIERSQUdPU0xBVgorVkxBTFVLSU4gSUxPTkEKK1ZMQUxVS0lOIElMT05LQQorVkxBTFVLSU4gTUlMT1JBRCBESVBMIElORworVkxBTFVLSU4gTUlSSkFOQQorVkxBTFVLSU4gTkFEQQorVkxBTFVLSU4gU0FWQQorVkxBTFVLSU4gU0xBVktPCitWTEFMVUtJTiBaT1JBCitWTEFPVi3FvUFSS09WIE9MR0EKK1ZMQU9WIEdPUkRBTkEKK1ZMQU9WIEpBVk9SS0EKK1ZMQU9WIE1JTE/FoAorVkxBT1YgTUlST1NMQVYKK1ZMQU9WIFZFTElNSVIKK1ZMQU9WScSGIMSQT1LEkEUKK1ZMQU9WScSGIMSQT1LEkEUKK1ZMQU9WScSGIMSQT1LEkEUKK1ZMQU9WScSGIMSQT1LEkEUKK1ZMQU9WScSGIEFMRUtTQU5EQVIKK1ZMQU9WScSGIEFOSUNBCitWTEFPVknEhiBCT8WgS08KK1ZMQU9WScSGIEJSQU5JU0xBVkEKK1ZMQU9WScSGIERJTUlUUklKRQorVkxBT1ZJxIYgRFJBR0FOCitWTEFPVknEhiBEUkFHQU4KK1ZMQU9WScSGIERSQUdPTEpVQgorVkxBT1ZJxIYgRFXFoEFOCitWTEFPVknEhiBEVcWgS08KK1ZMQU9WScSGIEdBVlJBCitWTEFPVknEhiBIQVJJCitWTEFPVknEhiBJR05KQVQKK1ZMQU9WScSGIElWQU5LQQorVkxBT1ZJxIYgSkVMQQorVkxBT1ZJxIYgSk9WQU4KK1ZMQU9WScSGIEpPVkFOCitWTEFPVknEhiBLQVRJQ0EKK1ZMQU9WScSGIExBWkFSCitWTEFPVknEhiBMSlVCScWgQQorVkxBT1ZJxIYgTEpVQklDQQorVkxBT1ZJxIYgTEpVQk9NSVIKK1ZMQU9WScSGIExKVUJPTUlSCitWTEFPVknEhiBMVUtBCitWTEFPVknEhiBNQVJBCitWTEFPVknEhiBNQVJLTworVkxBT1ZJxIYgTUlMT8WgCitWTEFPVknEhiBNSUxPxaAKK1ZMQU9WScSGIE1JTE9TQVYKK1ZMQU9WScSGIE1JUk9TTEFWCitWTEFPVknEhiBNTEFERU4KK1ZMQU9WScSGIE5JS09MQQorVkxBT1ZJxIYgTklLT0xBCitWTEFPVknEhiBPTElWRVJBCitWTEFPVknEhiBQTEVNRU5LQQorVkxBT1ZJxIYgUkFESVZPSgorVkxBT1ZJxIYgUkFKS08KK1ZMQU9WScSGIFNBVkEKK1ZMQU9WScSGIFNMQVZLTworVkxBT1ZJxIYgU1RBTk9KRQorVkxBT1ZJxIYgU1RFVkFOCitWTEFPVknEhiBTVEVWQU4KK1ZMQU9WScSGIFNWRVRPWkFSCitWTEFPVknEhiBUT8WgQQorVkxBT1ZJxIYgVE9ET1IKK1ZMQU9WScSGIFRPTUEKK1ZMQU9WScSGIFRPTUlTTEFWCitWTEFPVknEhiBWRVNOQQorVkxBT1ZJxIYgVkxBU1RJU0xBVkEKK1ZMQU9WScSGIFpPUkFOCitWTEFTQcSMRVZJxIYgU1RPSktPCitWTEFTQUsgUkVOQVRBCitWTEFTT1YgTUlIQUpMTworVkxBU1RFTEnEhiBST0tTQU5EQQorVkxBVEtPVknEhiDFvUVMSktPCitWTEFUS09WScSGIEFOR0VMTworVkxBVEtPVknEhiBEVcWgQU4KK1ZMQVRLT1ZJxIYgS1JFxaBJTUlSCitWTEFUS09WScSGIE1BUklKQQorVkxBVEtPVknEhiBNQVJJSkEKK1ZMQVRLT1ZJxIYgTUlMQU4KK1ZMQVRLT1ZJxIYgTUlMSUNBCitWTEFUS09WScSGIE1JUk9TTEFWCitWTEFUS09WScSGIE1MQURFTgorVkxBVEtPVknEhiBOSUtPTEEKK1ZMQVRLT1ZJxIYgU0FWS0EKK1ZMQVRLT1ZJxIYgU1ZFVE9aQVIKK1ZPxaBUScSGIEFMRUtTQU5EQVIKK1ZPxaBUScSGIE1JT0RSQUcKK1ZPREEgWkRFTktPCitWT0RBTE9WIERFSkFOCitWT0RBTE9WIE1MQURFTgorVk9ERU5JxIxBUiBOSUtPTEEKK1ZPRE9HQVogRFJBR0FOCitWT0RPR0FaIExFUE9TQVZBCitWT0RPUElWRUMgxb1FTEpLTworVk9ET1BJVkVDIERSQUdJQ0EKK1ZPRE9QSVZFQyBNSUhBRUwKK1ZPR0FOSkFDIE1JTEVOS08KK1ZPR0xFxaAgTElESUpBCitWT0lOIEFMRUtTQU5EQVIgRFIgTEVLQVIKK1ZPSsSMRVZTS0kgQUxFS1NBTkRBUgorVk9KxIxJxIYgSk9WQU4KK1ZPSkHFoMSGVUsgTUFSQQorVk9KScSMScSGIEpFTEVOQQorVk9KScSMScSGIFJBSktPCitWT0pJxIxJxIYgU0FWQQorVk9KScSMScSGIFZMQURJTUlSCitWT0pJTUlST1ZJxIYgU0xBVktPCitWT0pJTiBNSUxLQQorVk9KSU5PViDEkE9SxJBFCitWT0pJTk9WIE1JUkEKK1ZPSklOT1YgUkFET1NMQVYKK1ZPSklOT1ZJxIYgQUxFS1NBTkRSQQorVk9KSU5PVknEhiBCT0dJxIYKK1ZPSklOT1ZJxIYgRFJBR0FOCitWT0pJTk9WScSGIERSQUdPTEpVQgorVk9KSU5PVknEhiBEUkFHT1NMQVYKK1ZPSklOT1ZJxIYgSkVMRU5BCitWT0pJTk9WScSGIEpPVkFOIERSCitWT0pJTk9WScSGIExKSUxKQU5BCitWT0pJTk9WScSGIExKVUJPTUlSCitWT0pJTk9WScSGIE1JTElWT0pFCitWT0pJTk9WScSGIE1JTE9SQUQKK1ZPSklOT1ZJxIYgTUlSSkFOQSBEUgorVk9KSU5PVknEhiBNSVJPU0xBVgorVk9KSU5PVknEhiBNSVJPU0xBVgorVk9KSU5PVknEhiBNSVJPU0xBVgorVk9KSU5PVknEhiBORUJPSsWgQQorVk9KSU5PVknEhiBWRVNFTElOCitWT0pJTk9WScSGIFZVSklDQQorVk9KSU5PVknEhiBWVUtPU0FWQQorVk9KSU5PVknEhiBaT1JLQQorVk9KSVNBVkxKRVZJxIYgWkxBVElKQQorVk9KS0nEhiBCT8WgS08KK1ZPSktJxIYgUkFESVNMQVYKK1ZPSk5JxIYgRlJBTkpBCitWT0pOScSGLUhBSkRVSyBHSVpBCitWT0pOScSGLUhBSkRVSyBMSklMSkFOQQorVk9KTknEhi1IQUpEVUsgTUlSSkFOQQorVk9KTknEhiBKT1ZBTgorVk9KTknEhi1LT1JUVUnFoCBTVEFOQQorVk9KTknEhiBTVEVWQU4KK1ZPSk5PViBCUkFOSVNMQVYKK1ZPSk5PVi1JTEnEhiBST1pBTElKQQorVk9KTk9WIFNUT0pBTiBEUiBMRUtBUgorVk9KTk9WScSGIMW9QVJLTworVk9KTk9WScSGIMW9QVJLTworVk9KTk9WScSGIMW9QVJLTworVk9KTk9WScSGIMSQT1LEkEUKK1ZPSk5PVknEhiDEkE9SxJBFCitWT0pOT1ZJxIYgxJBVUkEKK1ZPSk5PVknEhiDEkFVSTworVk9KTk9WScSGIEFDQQorVk9KTk9WScSGIEFOQVNUQVpJSkEKK1ZPSk5PVknEhiBCUkFDQQorVk9KTk9WScSGIEJSQU5LTworVk9KTk9WScSGIEJSQU5LTworVk9KTk9WScSGIEJSQU5LTworVk9KTk9WScSGIERBTklDQQorVk9KTk9WScSGIERBVk9SCitWT0pOT1ZJxIYgREVTQU5LQQorVk9KTk9WScSGIERFU0FOS0EKK1ZPSk5PVknEhiBESU1JVFJJSkUKK1ZPSk5PVknEhiBEUkFHQU4KK1ZPSk5PVknEhiBEUkFHQU4KK1ZPSk5PVknEhiBEUkFHSUNBCitWT0pOT1ZJxIYgRFXFoEFOIERJUEwgSU5HCitWT0pOT1ZJxIYgRFXFoEFOCitWT0pOT1ZJxIYgRFXFoEFOCitWT0pOT1ZJxIYgRFXFoEFOCitWT0pOT1ZJxIYgRFXFoEFOCitWT0pOT1ZJxIYgR0laRUxBCitWT0pOT1ZJxIYgSUxJSkEKK1ZPSk5PVknEhiBJTElKQQorVk9KTk9WScSGIElMSUpBCitWT0pOT1ZJxIYgSUxJSkEKK1ZPSk5PVknEhiBJVkFOS0EKK1ZPSk5PVknEhiBJVkFOCitWT0pOT1ZJxIYgSk9WQU4KK1ZPSk5PVknEhiBKT1ZBTgorVk9KTk9WScSGIEtBVEFSSU5BCitWT0pOT1ZJxIYgS0FUSUNBCitWT0pOT1ZJxIYgS0xBUkEKK1ZPSk5PVknEhiBMSlVCScWgQQorVk9KTk9WScSGIExKVUJJTktBCitWT0pOT1ZJxIYgTUFSQQorVk9KTk9WScSGIE1BUktPCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMRU5LTworVk9KTk9WScSGIE1JTEVOS08KK1ZPSk5PVknEhiBNSUxJQ0EKK1ZPSk5PVknEhiBNSUxJTkEKK1ZPSk5PVknEhiBNSUxKQU4KK1ZPSk5PVknEhiBNSUxLQQorVk9KTk9WScSGIE1JTE/FoAorVk9KTk9WScSGIE1JTFVUSU4KK1ZPSk5PVknEhiBNSU9EUkFHCitWT0pOT1ZJxIYgTUlSSkFOQQorVk9KTk9WScSGIE1JUktPCitWT0pOT1ZJxIYgTUlST1NMQVYKK1ZPSk5PVknEhiBNTEFERU4gRElQTCBPRUMKK1ZPSk5PVknEhiBOQURBCitWT0pOT1ZJxIYgTkFEQQorVk9KTk9WScSGIE5BREXFvURBCitWT0pOT1ZJxIYgTkFUQcWgQQorVk9KTk9WScSGIE5BVEHFoEEKK1ZPSk5PVknEhiBOSUtPTEEgRFIKK1ZPSk5PVknEhiBOSUtPTEEKK1ZPSk5PVknEhiBOSUtPTEEKK1ZPSk5PVknEhiBQRVRBUgorVk9KTk9WScSGIFBFVEFSCitWT0pOT1ZJxIYgUEVUQVIKK1ZPSk5PVknEhiBSQURBCitWT0pOT1ZJxIYgUkFERQorVk9KTk9WScSGIFJBREUKK1ZPSk5PVknEhiBSQURFCitWT0pOT1ZJxIYgUkFESVZPSgorVk9KTk9WScSGLVJBRFVKS09WIE5BREEKK1ZPSk5PVknEhiBSQUpLTworVk9KTk9WScSGIFJVxb1JQ0EKK1ZPSk5PVknEhiBTTEFWS08KK1ZPSk5PVknEhiBTTEFWS08KK1ZPSk5PVknEhiBTUEFTRU5JSkEKK1ZPSk5PVknEhiBTVEFNRU5LQQorVk9KTk9WScSGIFNUQU5JU0xBVgorVk9KTk9WScSGIFNURVZBTgorVk9KTk9WScSGIFNURVZBTgorVk9KTk9WScSGIFNURVZBTgorVk9KTk9WScSGIFNURVZBCitWT0pOT1ZJxIYgU1RFVk8KK1ZPSk5PVknEhiBTVE9KS0EKK1ZPSk5PVknEhiBTVFJBSElOSkEKK1ZPSk5PVknEhiBUT01JU0xBVgorVk9KTk9WScSGIFZFU0VMSU4KK1ZPSk5PVknEhiBWRVNFTElOCitWT0pOT1ZJxIYgVkxBRElNSVIKK1ZPSk5PVknEhiBWTEFESU1JUgorVk9KTk9WScSGIFZMQURJTUlSCitWT0pOT1ZJxIYgVkxBRElNSVIKK1ZPSk5PVknEhiBWT0pJU0xBVgorVk9KTk9WScSGIFZPSklTTEFWCitWT0pOT1ZJxIYgWkRSQVZLTworVk9KVCBMSlVCSUNBCitWT0pUIE1JTEFOQQorVk9KVEFTIFNUQU5JU0xBVgorVk9KVEVIT1ZTS0kgSkFST1NMQVYKK1ZPSlRFSE9WU0tJIE9UTworVk9KVEVIT1ZTS0kgT1RPCitWT0pURUhPVlNLSSBaQUdPUktBCitWT0pWT0RJxIYgxJBVUkEKK1ZPSlZPREnEhiBBTEVLU0FOREFSCitWT0pWT0RJxIYgQU5BCitWT0pWT0RJxIYgQlJBTklTTEFWCitWT0pWT0RJxIYgREFOSUNBCitWT0pWT0RJxIYgRFJBR09MSlVCCitWT0pWT0RJxIYgRFXFoEFOCitWT0pWT0RJxIYgR1JBRElNSVIKK1ZPSlZPREnEhiBKT1ZBTgorVk9KVk9EScSGIE1BTknFoEEKK1ZPSlZPREnEhiBNSUxBTgorVk9KVk9EScSGIE1JTEUKK1ZPSlZPREnEhiBNSUxPxaAKK1ZPSlZPREnEhiBNSUxPUkFECitWT0pWT0RJxIYgTUlSS08KK1ZPSlZPREnEhiBOQURBCitWT0pWT0RJxIYgTklLT0xBCitWT0pWT0RJxIYgUkFET1ZBTgorVk9KVk9EScSGIFJBVEtBCitWT0pWT0RJxIYgU0xBVktPCitWT0pWT0RJxIYgU1RFVkFOCitWT0pWT0RJxIYgU1RFVkFOCitWT0pWT0RJxIYtVEFTScSGIFNWRVRMQU5BCitWT0pWT0RJxIYgVkFTTworVk9KVk9EScSGIFZPSklTTEFWCitWT0pWT0RJxIYgWk9SQQorVk9LxaBJIMSQRVZBRAorVk9LQUxJxIYgSElMREVHQVJECitWT0tBTEnEhiBURU9CQUxECitWT0tJxIYgRFJBR0FOCitWT0tJxIYgRFXFoEtPCitWT0tJxIYgSk9WQU4KK1ZPS0nEhiBOQURBCitWT0zEjEVWScSGIEJPUklTTEFWCitWT0zEjEVWScSGIEVWQQorVk9MxIxFVknEhiBUT0RPUgorVk9MxIxFVlNLSSBFVkFOVElKRQorVk9MxIxFVlNLSSBOSUtPTEEKK1ZPTEHFoCBJU0lET1IKK1ZPTEHFoCBNSUxBTktPCitWT0xBxaAgTUlMQU4KK1ZPTEFSIEFORFJBxaAKK1ZPTEFSIEtBUkxPCitWT0xBUiBQRVRBUgorVk9MQVIgU1RKRVBBTgorVk9MQVJFViBMSlVCT01JUgorVk9MQVJFViBOQURBCitWT0xBUkVWIFNURVZBTgorVk9MQVJFVknEhiBNQVJLTworVk9MQVJFVknEhiBaT1JBTgorVk9MQVJPViBNSUxBTgorVk9MQVJPViBSQURPVkFOCitWT0xFTkMgTUFSSUpBCitWT0xGIEJPUklTCitWT0xGIERSQUdVVElOCitWT0xGIEnFoFRWQU4KK1ZPTEYgTEpVQklDQQorVk9MRiBMSlVERVZJVAorVk9MRiBNSVJBCitWT0xGIE1JUkEKK1ZPTEYgVkVSQQorVk9MScSMIFZMQURJTUlSCitWT0xJxIYgQUxFS1NBTkRBUgorVk9MScSGIEJPxb1JREFSCitWT0xJxIYgRFJBR09TTEFWCitWT0xJxIYgR1JVSkEKK1ZPTEnEhiBMSklMSkFOQQorVk9MScSGIE1BUklOS0EKK1ZPTEnEhiBQRVRBUgorVk9MScSGIFJBRE9TTEFWCitWT0xJxIYgU0xBVktPCitWT0xJxIYgVElIT01JUgorVk9MScSGIFZJTktBCitWT0xLQVIgRU1JTAorVk9MS09WIFJBRE9TTEFWCitWT0xPxaBLSU4gQlJBVElTTEFWCitWT0xPxaBLSU4gRFJBR0lDQQorVk9OScSGIFZMQVRLTworVk9SQcSMRUsgxb1FTEpLTworVk9SQcSMRUsgTEFESVNMQVYKK1ZPUkFUT1ZJxIYgUkFESVZPSgorVk9SR0nEhiDEkE9SxJBFCitWT1JHScSGIEFMRUtTQU5EQVIKK1ZPUkdJxIYgQU7EkEVMS0EKK1ZPUkdJxIYgQk9SSVZPSgorVk9SR0nEhiBEUkFHQU4KK1ZPUkdJxIYgRU1JTAorVk9SR0nEhiBHQVZSQQorVk9SR0nEhiBKT1NJUAorVk9SR0nEhiBMQVpBUgorVk9SR0nEhiBNQVJBCitWT1JHScSGIE1JTEFESU5LQQorVk9SR0nEhiBOSUtPTEEgRFIKK1ZPUkdJxIYgU0xPQk9EQU4KK1ZPUkdJxIYgU1RFVkFOCitWT1JHScSGIFNURVZBTgorVk9SR0nEhiBWVUpJQ0EKK1ZPUkdJxIYgWkRSQVZLTworVk9SR0nEhiBaT1JBCitWT1JHSU5DIENWRVRBCitWT1JHVcSMScSGIE1JTE/FoAorVk9SR1XEjEnEhiBTQcWgQQorVk9SR1XEjElOIElWQU4KK1ZPUktBUEEgTklLT0xBCitWT1JLQVBJxIYgRFXFoEFOCitWT1JLQVBJxIYgTEpVQklDQQorVk9SS0FQScSGIE1JTEFOCitWT1JLQVBJxIYgTklLT0xBCitWT1JMScSMRUsgSkFOT8WgCitWT1JMScSMRUsgSkFOT8WgCitWT1JMScSMRUsgTUFSSUNBCitWT1JPQkpFViBQRVRBUgorVk9ST0JKRVYgU0FWQQorVk9ST1RPVknEhiBTVEFOQQorVk9SVEnEhiBCT1NJTEpLQQorVk9aQVIgQU5BCitWT1pBUiBEQU5JQ0EKK1ZPWkFSIERSQUdBTgorVk9aQVIgTUlMT8WgCitWT1pBUiBQQVZMRSBESVBMIElORworVk9aQVJFVknEhiDEkE9SxJBFCitWT1pBUkVWScSGIEVMSVpBQkVUQQorVk9aQVJFVknEhiBKRUxJQ0EKK1ZPWkFSRVZJxIYgTUlSS08KK1ZPWkFST1ZJxIYgVklEQQorVlLEjElOQUMgUEVUQVIKK1ZSxaBLQSDEkE9SxJBFCitWUsWgS0EgREFOSUpFTAorVlLFoEtBIEtBVEFSSU5BCitWUkHEjEFSIEJSQU5JU0xBVgorVlJBxIxBUiBEQVJJTktBCitWUkHEjEFSIEpPVkFOCitWUkHEjEFSIExKVUJPTUlSCitWUkHEjEFSIExKVUJPCitWUkHEjEFSIE1JTEFOCitWUkHEjEFSIE1JT0xKS0EKK1ZSQcSMQVIgTkVERUxKS08KK1ZSQcSMQVIgU0xBVktBCitWUkHEjEFSIFNMT0JPREFOCitWUkHEjEFSIFZFUkEKK1ZSQcSMQVIgVlVLCitWUkHEjEFSIFpERU5LQQorVlJBxIxBUknEjEnEhiBSQURFCitWUkHEjEFSScSGIMSQT1LEkEUKK1ZSQcSMQVJJxIYgQUxFS1NBTkRBUgorVlJBxIxBUknEhiBESU1JVFJJSkUKK1ZSQcSMQVJJxIYgSkVMSUNBCitWUkHEjEFSScSGIExKSUxKQU5BCitWUkHEjEFSScSGIExKVUJJxaBBCitWUkHEjEFSScSGIExKVUJPTUlSCitWUkHEjEFSScSGIE1BUklKQQorVlJBxIxBUknEhiBNSUxFTktPCitWUkHEjEFSScSGIE1JTElTQVYKK1ZSQcSMQVJJxIYgTUlMT01JUgorVlJBxIxBUknEhiBWTEFESU1JUgorVlJBxIxFVknEhiBTQVZLQQorVlJBxaBUQU5PVknEhiBMSlVCSU5LQQorVlJBQkxJSyBKVUxJSkFOQQorVlJBR09WScSGIEpPQ0EKK1ZSQU5BIE5BREEKK1ZSQU5BQyBLU0VOSUpBCitWUkFOQUMgU0VBRAorVlJBTkFDIFZBSElEQQorVlJBTkFDIFpJSkFECitWUkFORcWgIMSMRURPTUlSCitWUkFORcWgIEJPxb1JREFSCitWUkFORcWgIERBVk9SSU4KK1ZSQU5FxaAgRU1JTElKQQorVlJBTkXFoCBKT1ZBTktBCitWUkFORcWgIE1BUklKQQorVlJBTkXFoCBNSUxBTgorVlJBTkXFoCBNSUxLQQorVlJBTkXFoCBNSUxVVElOCitWUkFORcWgIE5BREEKK1ZSQU5FxaAgTklLT0xBCitWUkFORcWgIFBFVEFSCitWUkFORcWgIFNNSUxKQQorVlJBTkXFoCBWRVJJQ0EKK1ZSQU5FxaBFVknEhiBBREFNCitWUkFORcWgRVZJxIYgQlJBTklTTEFWIERSCitWUkFORcWgRVZJxIYgREFNSkFOCitWUkFORcWgRVZJxIYgS0FUSUNBCitWUkFORcWgRVZJxIYgTUlMQU4KK1ZSQU5FxaBFVknEhiBNSUxBTgorVlJBTkXFoEVWScSGIE1JTE/FoAorVlJBTkXFoEVWScSGIE1JUk9TTEFWCitWUkFORcWgRVZJxIYgTUxBREVOCitWUkFORcWgRVZJxIYgTkFEQSBEUgorVlJBTkXFoEVWScSGIFBSRURSQUcKK1ZSQU5FxaBFVknEhiBSQUpLTworVlJBTkXFoEVWScSGIFNURVZBTgorVlJBTkXFoEVWScSGIFNUT0pBTgorVlJBTknEhiDEjEVET01JUgorVlJBTknEhiBCUkFOS08KK1ZSQU5JxIYgRE9CUklOQQorVlJBTknEhiBEUkFHSU5KQQorVlJBTknEhiBEUkFHT1NMQVYKK1ZSQU5JxIYgSUxJSkEKK1ZSQU5JxIYgSkFEUkFOS0EKK1ZSQU5JxIYgTUFSS08KK1ZSQU5JxIYgTUlMQU4gUFJPRkVTT1IKK1ZSQU5JxIYgTUlMT1JBRAorVlJBTknEhiBNSUxVVElOCitWUkFOScSGIE1JUsSMRVRBCitWUkFOScSGIE1JUktPCitWUkFOScSGIE1JVFJBCitWUkFOScSGIE5FTkFECitWUkFOScSGIE5JS09MQQorVlJBTknEhiBSQURJVk9KRQorVlJBTknEhiBSQURPSktBCitWUkFOScSGIFNMQVZLTworVlJBTknEhiBTTE9CT0RBTgorVlJBTkpFxaAgR09KS08KK1ZSQU5KRcWgIEpPVkFOS0EKK1ZSQU5KRcWgIE1JTEVOS08KK1ZSQU5KRcWgIE1JTEVOS08KK1ZSQU5KRcWgIE1JTEUKK1ZSQU5KRcWgIE1JTEtBCitWUkFOSkXFoCBORU5BRAorVlJBTkpFxaAgUkFET01JUgorVlJBTkpFxaAgU09GSUpBCitWUkFOSkXFoCBTVkVUSVNMQVYKK1ZSQU5KRcWgIFNWRVRMQU5BCitWUkFOSkXFoEVWScSGIEJSQU5LTworVlJBTkpFxaBFVknEhiBESU5LQQorVlJBTkpFxaBFVknEhiBEUkFHQU4KK1ZSQU5KRcWgRVZJxIYgSk9WSUNBCitWUkFOSkXFoEVWScSGIE1PTUlSCitWUkFOSkXFoEVWScSGIFJBVE9NSVIKK1ZSQU5KRcWgRVZJxIYgVkVMSktPCitWUkFOSkVWQUMgRFJBR0FOCitWUkFOSkVWQUMgTUlMSVZPSkUKK1ZSQU5KS09WScSGIE1JTEFOCitWUkFOSktPVknEhiBNSUxFCitWUkFOSktPVknEhiBTTUlMSktBCitWUkFOSktPVknEhiBTUkVUTworVlJBTkpPIEZSQU5KQQorVlJBTkpPIFpPTFRBTgorVlJBTktPVknEhiBKVVJBSgorVlJBTktPVknEhiBMVUtBCitWUkFOS09WScSGIE1JTEFOCitWUkFQxIxFViDFvUlWS08KK1ZSQVDEjEVWIERVxaBLTworVlJBUMSMRVYgTUVMQU5JSkEKK1ZSQVROSkFOIEJSQU5JTUlSCitWUkFUT05KScSGIFNMQVZPTEpVQgorVlJCQcWgS0kgxb1BUktPCitWUkJBxaBLSSDFvUFSS08KK1ZSQkHFoEtJIMSQT1LEkEUKK1ZSQkHFoEtJIMSQT1LEkEUKK1ZSQkHFoEtJIMSQVVJBCitWUkJBxaBLSSBBTEVLU0FOREFSCitWUkJBxaBLSSBBTklDQQorVlJCQcWgS0kgQlJBTklTTEFWQQorVlJCQcWgS0kgREFSSU5LQQorVlJCQcWgS0kgRFJBR09NSVIKK1ZSQkHFoEtJIERSQUdPU0xBVgorVlJCQcWgS0kgRFXFoEFOCitWUkJBxaBLSSBEVcWgQU4KK1ZSQkHFoEtJIERVxaBBTgorVlJCQcWgS0kgRFXFoElDQQorVlJCQcWgS0kgR09SREFOQQorVlJCQcWgS0kgSkVMRU5BCitWUkJBxaBLSSBKRUxJU0FWRVRBCitWUkJBxaBLSSBKT1ZBTgorVlJCQcWgS0kgSlVMSUpBTkEKK1ZSQkHFoEtJIEtPU1RBCitWUkJBxaBLSSBMQVpBUgorVlJCQcWgS0kgTEpJTEpBTkEKK1ZSQkHFoEtJIExKVUJJQ0EgTVIKK1ZSQkHFoEtJIExKVUJPTUlSCitWUkJBxaBLSSBNSUxBTgorVlJCQcWgS0kgTUlMQU4KK1ZSQkHFoEtJIE1JTEVOQQorVlJCQcWgS0kgTUlMRU5LTworVlJCQcWgS0kgTUlMSUNBCitWUkJBxaBLSSBNSUxPUkFECitWUkJBxaBLSSBNSU9EUkFHCitWUkJBxaBLSSBNSVJPU0xBVgorVlJCQcWgS0kgTUlST1NMQVYKK1ZSQkHFoEtJIFBBVkxFCitWUkJBxaBLSSBQRVRBUiBESVBMIElORworVlJCQcWgS0kgUEVUQVIKK1ZSQkHFoEtJIFBFVEFSCitWUkJBxaBLSSBSQURBCitWUkJBxaBLSSBSQURFTktPCitWUkJBxaBLSSBTQVZBCitWUkJBxaBLSSBTTE9CT0RBTgorVlJCQcWgS0kgU1RFVkFOIERSCitWUkJBxaBLSSBTVkVUTEFOQQorVlJCQcWgS0kgVEFOSkEKK1ZSQkHFoEtJIFRJTUEKK1ZSQkHFoEtJIFRPRE9SCitWUkJBxaBLSSBWTEFESVNMQVYKK1ZSQkFKQUMgxJBPUsSQRQorVlJCQUpBQyBDVkXEhkUKK1ZSQkFKQUMgSk9WQU4KK1ZSQkFKQUMgVkFMRVJJSkEKK1ZSQkFOQUMgTEFKT8WgCitWUkJJQ0EgRFJBR09MSlVCCitWUkJJQ0EgS1NFTklKQQorVlJCSUNBIFBFVEFSCitWUkJMSkFOQUMgQUxFTgorVlJDQU4gVkFMRVJJSkEKK1ZSQ0VMSiDFvUlWS08KK1ZSQ0VMSiBCT8W9SURBUgorVlJDRUxKIExKSUxKQU5BCitWUkNFTEogTUlIQUpMTworVlJDRUxKIFpPUkFOCitWUkRPTEpBSyBCUkFOSU1JUgorVlJET0xKQUsgUkFET1ZBTktBCitWUkXFoMSGQUsgScWgVFZBTgorVlJFxIZBIEJSQU5LTworVlJFxIZPIFZFTElNSVIKK1ZSRUJBQyBaVk9OSU1JUgorVlJFQkFMT1YgQUxFS1NBTkRSQQorVlJFQkFMT1YgU1RFVkFOCitWUkVCQUxPViBUSUhPTUlSCitWUkVWRVpPU0tJIFJJU1RPCitWUkVWScSMScSGIMSQT1LEkEUKK1ZSRVZJxIxJxIYgU0lNQQorVlJFVknEjEnEhiBUUklWVU4KK1ZSR09WIEtPU1RBCitWUkdPVknEhiBEUkFHQU4KK1ZSR09WScSGIFNURVZBTgorVlJHT1ZJxIYgVkVSQQorVlJHT1ZJxIYgVkxBRElNSVIKK1ZSSE9WQUMgQlJBTklTTEFWCitWUkhPVkFDIERBTkUKK1ZSSE9WQUMgSkFTTUlOQQorVlJIT1ZBQyBORURFTEpLTworVlJIT1ZBQyBTTEFWS08gRElQTCBJTkcKK1ZSSE9WQUMgVE9NSVNMQVYKK1ZSS0XFoCBHT1JBTgorVlJNScSGIE1MQURFTgorVlJOxIxJxIYgxJBPUsSQRQorVlJTQUpLT1YgSUxJSkEKK1ZSU0FKS09WIElTSURPUgorVlJTQUpLT1YgSlVMS0EKK1ZSU0FKS09WIExKVUJJQ0EKK1ZSU0FKS09WIE1JTE/FoAorVlJTQUpLT1YgTkVWRU5LQQorVlJTRUxKQSBWSU5LTworVlJUSUtBUEEgSk9WQU5LQQorVlJUSVBSQcWgS0kgUEVUQVIKK1ZSVElQUkHFoEtJIFJBRE9WQU4gRFIKK1ZSVElQUkHFoEtJIFJBRE9WQU4KK1ZSVElQUkHFoEtJIFZBU0EKK1ZSVE9WxaBOSUsgTUlIQUpMTworVlJUVUxFSyBTTUlMSkEKK1ZSVFVOScSGIEJPUklTTEFWCitWUlRVTknEhiBNQVJLTworVlJUVU5JxIYgTklLT0xBCitWUlRVTlNLSSBEQU5JQ0EKK1ZSVFVOU0tJIEhFRFZJR0EKK1ZSVFVOU0tJIEpVTEtBCitWUlRVTlNLSSBLQVRBUklOQQorVlJUVU5TS0kgTUlMQU4KK1ZSVFVOU0tJIE1JTElDQQorVlJUVU5TS0kgTUlPRFJBRworVlJUVU5TS0kgTUxBREVOCitWUlRVTlNLSSBTUsSQQU4KK1ZSVFVOU0tJIFZMQURJTUlSCitWUlXEhklOScSGIFJBRE9KSUNBCitWUlXEhklOScSGIFJBSktPCitWUlpJxIYgQk9SSVNMQVYKK1ZSWknEhiBEUkFHSUNBCitWUlpJxIYgRFJBR0lDQQorVlJaScSGIE5BREXFvURBCitWUlpJxIYgU1RFVk8KK1ZVxIxBSiBBTEVLU0FOREFSCitWVcSMQUogRlJBTgorVlXEjEFKIE1JT01JUkEKK1ZVxIxBSiBST0JFUlQKK1ZVxIxBTk9WScSGIFBSRURSQUcKK1ZVxIxFTEnEhiBSQURPTUlSCitWVcSMRUxJxIYgU0xBVktPCitWVcSMRUxJxIYgVkVSQQorVlXEjEVMScSGIFZMQUpLTworVlXEjEVOIE1JTEFOQQorVlXEjEVOScSGIFBSRURSQUcKK1ZVxIxFTk9WIMSQVVJJQ0EKK1ZVxIxFTk9WIEtBVEFMSU4KK1ZVxIxFTk9WIE1JUkpBTkEKK1ZVxIxFTk9WIFNURVZBTgorVlXEjEVOT1ZJxIYgxb1JVkFOCitWVcSMRU5PVknEhiDFvUlWQU4KK1ZVxIxFTk9WScSGIEJSQU5LQQorVlXEjEVOT1ZJxIYgREVTQU5LQQorVlXEjEVOT1ZJxIYgRFJBR09MSlVCCitWVcSMRU5PVknEhiBKT1ZBTgorVlXEjEVOT1ZJxIYgTFVLQQorVlXEjEVOT1ZJxIYgTUlSS08KK1ZVxIxFTk9WScSGIFBFVEFSCitWVcSMRU5PVknEhiBTUkVUTworVlXEjEVOT1ZJxIYgU1ZFVExBTkEKK1ZVxIxFUknEhiBQUlZPU0xBVgorVlXEjEVUScSGIMW9SUtBCitWVcSMRVRJxIYgxb1JVktPCitWVcSMRVRJxIYgQU7EkEVMS0EKK1ZVxIxFVEnEhiBCT8W9SURBUgorVlXEjEVUScSGIEJPSkFOQQorVlXEjEVUScSGIERBUklOS0EKK1ZVxIxFVEnEhiBERVNJTUlSCitWVcSMRVRJxIYgREVWQQorVlXEjEVUScSGIERJTUlUUklKRQorVlXEjEVUScSGIERSQUdBTgorVlXEjEVUScSGIERVxaBBTgorVlXEjEVUScSGIExBWkFSCitWVcSMRVRJxIYgTEpJTEpBTkEKK1ZVxIxFVEnEhiBNScSGQQorVlXEjEVUScSGIE1JTEVOQQorVlXEjEVUScSGIE1JTEVOQQorVlXEjEVUScSGIE1JTEVOCitWVcSMRVRJxIYgTUlMT1NBVgorVlXEjEVUScSGIE5JS09MQQorVlXEjEVUScSGIE5JS09MQQorVlXEjEVUScSGIE5JTktPCitWVcSMRVRJxIYgUEVUQVIKK1ZVxIxFVEnEhiBQRVRBUgorVlXEjEVUScSGIFJBREUKK1ZVxIxFVEnEhiBSQURPSktBCitWVcSMRVRJxIYgUkFET0pLTworVlXEjEVUScSGIFJBSktPCitWVcSMRVRJxIYgU0FOSkEKK1ZVxIxFVEnEhiBTTE9CT0RBTgorVlXEjEVUScSGIFNNSUxKS0EKK1ZVxIxFVEnEhiBTT0ZJSkEKK1ZVxIxFVEnEhiBTVEFOS08KK1ZVxIxFVEnEhiBTVEVWQU4KK1ZVxIxFVEnEhiBTVkVUTEFOQQorVlXEjEVUScSGIFZBTkpBCitWVcSMRVRJxIYgVkVMSktPIERSCitWVcSMRVRJxIYgVkVSQQorVlXEjEVUScSGIFZMQURJU0xBVgorVlXEjEVUScSGIFpPUkFOCitWVcSMRVRJxIYgWk9SQU4KK1ZVxIxFVElOIMW9SVZBTgorVlXEjEVUSU4gTUlMT1JBRAorVlXEjEVUSU4gUEVUQVIKK1ZVxIxFVElOIFNPRklKQQorVlXEjEVUSU4gVE9ET1IKK1ZVxIxFVkFDIMW9RUxJTUlSCitWVcSMRVZJxIYgQUxFS1NBTkRBUgorVlXEjEVWScSGIEJPxb1BTkEKK1ZVxIxFVknEhiBWQUxFUklKQQorVlXEjEnEjEVWScSGIE1JTEFOCitWVcSMScSMRVZJxIYgTklLT0xBCitWVcSMScSGIMW9QVJLTworVlXEjEnEhiDEkE9SxJBFCitWVcSMScSGIMSQVVLEkElOS0EKK1ZVxIxJxIYgQk9HREFOCitWVcSMScSGIEJSQU5JU0xBVkEKK1ZVxIxJxIYgRFJBR0FOCitWVcSMScSGIERVxaBBTgorVlXEjEnEhiBEVcWgQU4KK1ZVxIxJxIYgSkVMRU5BCitWVcSMScSGIEpPVkFOS0EKK1ZVxIxJxIYgSk9WQU4KK1ZVxIxJxIYgS0FUSUNBCitWVcSMScSGIE1BUkdJVEEKK1ZVxIxJxIYgTUlMQU4KK1ZVxIxJxIYgTUlMQU4KK1ZVxIxJxIYgTUlST1NMQVYKK1ZVxIxJxIYgTkVWRU5LQQorVlXEjEnEhiBOSUtPTEEKK1ZVxIxJxIYgUkFETUlMQQorVlXEjEnEhiBTTE9CT0RBTgorVlXEjEnEhiBUT0RPUgorVlXEjEnEhiBWRVNFTElOCitWVcSMScSGRVZJxIYgxJBPUsSQRQorVlXEjEnEhkVWScSGIEJPxb1JREFSCitWVcSMScSGRVZJxIYgRFXFoEFOCitWVcSMScSGRVZJxIYgR09SREFOQQorVlXEjEnEhkVWScSGIE1JTEFOCitWVcSMScSGRVZJxIYgTUlMQU4KK1ZVxIxJxIZFVknEhiBNSUxFTktPCitWVcSMScSGRVZJxIYgTUlMSUNBCitWVcSMScSGRVZJxIYgTUlPRFJBRworVlXEjEnEhkVWScSGIE5BREXFvURBCitWVcSMScSGRVZJxIYgUEVUQVIKK1ZVxIxJxIZFVknEhiBTRUxJTUlSCitWVcSMScSGRVZJxIYgVlVLT1NBVgorVlXEjElOScSGIEFOxJBFTElKQQorVlXEjElOScSGIEFORFJJSkEKK1ZVxIxJTknEhiBEVcWgQU4KK1ZVxIxJTknEhiBHQVZSSUxPCitWVcSMSU5JxIYgSkFOSkEKK1ZVxIxJTknEhiBKQVNNSU5LQQorVlXEjElOScSGIExKSUxKQU5BIERSCitWVcSMSU5JxIYgTEpVQk9NSVIKK1ZVxIxJTknEhiBNQVJJSkEKK1ZVxIxJTknEhiBNSUxBTgorVlXEjElOScSGIE1JTEFOCitWVcSMSU5JxIYgTUlMSVNBVgorVlXEjElOScSGIE1JTFVUSU4KK1ZVxIxJTknEhiBNSU9EUkFHCitWVcSMSU5JxIYgTUxBREVOCitWVcSMSU5JxIYgTUxBREVOCitWVcSMSU5JxIYgUEVUQVIKK1ZVxIxJTknEhiBSQURNSUxBCitWVcSMSU5JxIYgUkFETUlMQQorVlXEjElOScSGIFJBRE1JTEEKK1ZVxIxJTknEhiBSQUpLTworVlXEjElOScSGIFZFU05BCitWVcSMSU5JxIYgVkxBRElNSVIKK1ZVxIxJTknEhiBWVUtNQU4KK1ZVxIxJTknEhiBaTEFUSUJPUgorVlXEjElOT1ZJxIYgUkFETUlMQQorVlXEjEtPViBCT0pBTkEKK1ZVxIxLT1YgQlJBTklTTEFWCitWVcSMS09WIE1BUkVMQQorVlXEjEtPViBNSUxPVkFOCitWVcSMS09WQUMgRFJBR0FOCitWVcSMS09WQUMgUkFERQorVlXEjEtPVkFDIFRPTUlTTEFWCitWVcSMS09WScSGIMSMQVNMQVYKK1ZVxIxLT1ZJxIYgxb1BUktPCitWVcSMS09WScSGIMW9SVZLTworVlXEjEtPVknEhiDEkE9SxJBFCitWVcSMS09WScSGIMSQT1LEkEUKK1ZVxIxLT1ZJxIYgQU7EkEVMS08KK1ZVxIxLT1ZJxIYgQU5BCitWVcSMS09WScSGIEJPR0RBTgorVlXEjEtPVknEhiBCUkFOSVNMQVYKK1ZVxIxLT1ZJxIYgQlJBTktPCitWVcSMS09WScSGIEJSQU5LTworVlXEjEtPVknEhiBET0JSSUxBCitWVcSMS09WScSGIERSQUdBTgorVlXEjEtPVknEhiBEUkFHTworVlXEjEtPVknEhiBEVcWgQU5LQQorVlXEjEtPVknEhiBEVcWgQU4KK1ZVxIxLT1ZJxIYgRFXFoEFOCitWVcSMS09WScSGIERVxaBBTgorVlXEjEtPVknEhiBEVcWgQU4KK1ZVxIxLT1ZJxIYgRFVCUkFWS0EKK1ZVxIxLT1ZJxIYgRU1JTgorVlXEjEtPVknEhiBFVklDQQorVlXEjEtPVknEhiBHRU9SR0lKRQorVlXEjEtPVknEhiBKQU5LTworVlXEjEtPVknEhiBKQU5LTworVlXEjEtPVknEhiBKT1ZBTgorVlXEjEtPVknEhiBKT1ZBTgorVlXEjEtPVknEhiBKT1ZBTgorVlXEjEtPVknEhiBKT1ZBTgorVlXEjEtPVknEhiBMSlVCSUNBCitWVcSMS09WScSGIExVS0EgRElQTCBPRUMKK1ZVxIxLT1ZJxIYgTUFSQQorVlXEjEtPVknEhiBNQVJJSkEKK1ZVxIxLT1ZJxIYgTUFSS08KK1ZVxIxLT1ZJxIYgTUFSS08KK1ZVxIxLT1ZJxIYgTUlIQUpMTworVlXEjEtPVknEhiBNSUhBSkxPCitWVcSMS09WScSGIE1JTEFOCitWVcSMS09WScSGIE1JTEFOCitWVcSMS09WScSGIE1JTEVOQQorVlXEjEtPVknEhiBNSUxPxaAKK1ZVxIxLT1ZJxIYgTUlMT8WgCitWVcSMS09WScSGIE1JTE/FoAorVlXEjEtPVknEhiBNSUxPSktBCitWVcSMS09WScSGIE1JTE9SQUQKK1ZVxIxLT1ZJxIYgTUlPRFJBRworVlXEjEtPVknEhiBNSU9EUkFHCitWVcSMS09WScSGIE1JUktPCitWVcSMS09WScSGIE1JUk9TTEFWCitWVcSMS09WScSGIE1PTcSMSUxPCitWVcSMS09WScSGIE5BREEgRFIKK1ZVxIxLT1ZJxIYgTkFEQQorVlXEjEtPVknEhiBORURFTEpLTworVlXEjEtPVknEhiBOSUtPTEEgVkVURVJJTkFSCitWVcSMS09WScSGIE5PVklDQQorVlXEjEtPVknEhiBQQVVMSU5BCitWVcSMS09WScSGLVBFVVJBxIxBIExKSUxKQU5BCitWVcSMS09WScSGIFJBRElWT0oKK1ZVxIxLT1ZJxIYgUkFET1ZBTgorVlXEjEtPVknEhiBTQVZFVEEKK1ZVxIxLT1ZJxIYtU0lNScSGIFZFU05BCitWVcSMS09WScSGIFNJTknFoEEKK1ZVxIxLT1ZJxIYgU1RFVkFOCitWVcSMS09WScSGIFNUT0pBTiBEUiBMRUtBUgorVlXEjEtPVknEhiBTVE9KQU4gRFIKK1ZVxIxLT1ZJxIYgU1ZFVExBTkEKK1ZVxIxLT1ZJxIYgVEFKU0lKQQorVlXEjEtPVknEhiBUT01PCitWVcSMS09WScSGIFZBU0EKK1ZVxIxLT1ZJxIYgVkxBRElTTEFWCitWVcSMS09WScSGIFZPSklTTEFWCitWVcSMS09WScSGIFZVS0lDQQorVlXEjEtPVknEhiBWVUtPU0FWQQorVlXEjFVSRVZJxIYgxIxFRE8KK1ZVxIxVUkVWScSGIMSQT1LEkEUKK1ZVxIxVUkVWScSGIEFOxJBFTElKQQorVlXEjFVSRVZJxIYgQklMSkFOQQorVlXEjFVSRVZJxIYgQkxBxb1PCitWVcSMVVJFVknEhiBCT8WgS08KK1ZVxIxVUkVWScSGIEJSQU5JU0xBVgorVlXEjFVSRVZJxIYgREFSSU5LQQorVlXEjFVSRVZJxIYgRFJBR09NSVIKK1ZVxIxVUkVWScSGIERVxaBBTgorVlXEjFVSRVZJxIYgR09SREFOQQorVlXEjFVSRVZJxIYgSkVMRU5BCitWVcSMVVJFVknEhiBNQcWgQQorVlXEjFVSRVZJxIYgTUlMT8WgCitWVcSMVVJFVknEhiBNSVJLTworVlXEjFVSRVZJxIYgTUxBREVOCitWVcSMVVJFVknEhiBOQURBCitWVcSMVVJFVknEhiBOSUtPTEEKK1ZVxIxVUkVWScSGIFBFVEFSCitWVcSMVVJFVknEhiBURVJFWklKQQorVlXEjFVSRVZJxIYgVVJPxaAKK1ZVxIxVUkVWScSGIFZFU05BCitWVcSMVVJFVknEhiBWTEFESVNMQVZBCitWVcSMVVJFVknEhiBWTEFETworVlXEjFVSRVZJxIYgVk9KSVNMQVYKK1ZVxIxVUkVWScSGIFZPSk8KK1ZVxIxVUk9WScSGIEpBU05BCitWVcSMVVJPVknEhiBKT1ZBTgorVlXEjFVST1ZJxIYgTUlSS08KK1ZVxIxVUk9WScSGIE1JUk9TTEFWCitWVcSMVVJPVknEhiBNTEFERU4KK1ZVxIxVUk9WScSGIFBSRURSQUcKK1ZVxIxVUk9WScSGIFNMT0JPREFOIERSCitWVcWgVEFSIEJPR0RBTgorVlVDRUxJxIYgU0xPQk9EQU4gRElQTCBJTkcKK1ZVQ0VMSkEgRFJBR0FOCitWVUNFTEpBIE1JTE/FoAorVlVDRUxKQS1QRVRST05JSkVWScSGIFZFUkEKK1ZVQ0VMSkEgVFJJVlVOCitWVUNFTEpBIFZPSklOCitWVURSQUcgU0FWTworVlVEUkFHIFpPUkFOCitWVURSQUcgWk9SQU4KK1ZVRFJBS09WScSGIFJBVEtPCitWVUdERUxJxIYgRE9CUklWT0oKK1ZVR0RFTEnEhiBWVUsKK1ZVR0xFQyBFRElUQQorVlVHUkVOScSMRUsgxJBVUkEKK1ZVR1JFTknEjEVLIE1BR0RBCitWVUdSSU4gU1RFVkFOCitWVUdSSU7EjEnEhiBBTktBCitWVUdSSU7EjEnEhiBGUkFOSk8KK1ZVR1JJTsSMScSGIEpBUk9TTEFWCitWVUdSSU5FQyBSVURPTEYKK1ZVScSGIEpPU0lQCitWVUrEjEnEhiBEUkFHQU4KK1ZVSsSMScSGIE1JTEUKK1ZVSsSMScSGIFBFVEFSCitWVUrEjEnEhiBQRVRSSUpBCitWVUrEjElOIEpPVkFOCitWVUrEjElOIE1JTEFOCitWVUrEjElOIE1JVEEKK1ZVSkHEjEnEhiBEUkFHVVRJTgorVlVKQcSMScSGIERVQlJBVktBCitWVUpBxIxJxIYgTUlMSVNBVgorVlVKQcSMScSGIE1JTE9SQUQKK1ZVSkHEjEnEhiBNSUxPUkFECitWVUpBxIxJxIYgTklLT0xBCitWVUpBxIxJxIYgUkFET1NBVgorVlVKQcSMScSGIFJBSktPCitWVUpBxaBLT1ZJxIYgU0xBVktPCitWVUpBxaBLT1ZJxIYgVkxBRElNSVIKK1ZVSkHFoEtPVknEhiBWTEFESVNMQVYKK1ZVSkHFoEtPVknEhiBaT1JBCitWVUpBQ0tPViDEkE9SxJBFCitWVUpBQ0tPViBBTEVLU0FOREFSCitWVUpBQ0tPViBKT1ZBTgorVlVKQURJTk9WIERPQlJJVk9KRSBESVBMIElORworVlVKQURJTk9WScSGIEJMQUdPSkUKK1ZVSkFESU5PVknEhiBCUkFOSVNMQVZBCitWVUpBRElOT1ZJxIYgTEpVQklDQQorVlVKQURJTk9WScSGIE1JTEFOCitWVUpBRElOT1ZJxIYgTUlMSVZPSkUKK1ZVSkFESU5PVknEhiBNSUxJVk9KCitWVUpBRElOT1ZJxIYgTUlMSVZPSgorVlVKQURJTk9WScSGIFJBRE/FoAorVlVKQURJTk9WScSGIFJBSktPCitWVUpBRElOT1ZJxIYgU0xBVklDQQorVlVKQURJTk9WScSGIFNWRVRPWkFSCitWVUpBRElOT1ZJxIYgVE9NSVNMQVYKK1ZVSkFESU5PVknEhiBWRVJBCitWVUpBRElOT1ZJxIYgVknFoE5KQQorVlVKQURJTk9WScSGIFZJVE8KK1ZVSkFESU5PVknEhiBWT0pJU0xBVgorVlVKQUtMSUpBIERFU0EKK1ZVSkFLTElKQSBTVEFOS08KK1ZVSkFLT1ZJxIYgxJBVUkHEkAorVlVKQUtPVknEhiBEUkFHVVRJTgorVlVKQUtPVknEhiBLUlNUQU4KK1ZVSkFLT1ZJxIYgU0xPQk9EQU4KK1ZVSkFLT1ZJxIYgVkFTTworVlVKQUtPVknEhiBWVUpPCitWVUpBTknEhiDFvUlWT1NBVgorVlVKQU5JxIYgxb1JVk9TTEFWCitWVUpBTknEhiBCT1JJVk9KCitWVUpBTknEhiBCUkFOS08KK1ZVSkFOScSGIEdPUkRBTkEKK1ZVSkFOScSGIEpPUkRBTgorVlVKQU5JxIYgS09STkVMSUpBCitWVUpBTknEhiBNSUxBTgorVlVKQU5JxIYgTUlMRQorVlVKQU5JxIYgTUlMT1ZBTgorVlVKQU5JxIYgTkVERUxKS0EKK1ZVSkFOScSGIFBFVEFSCitWVUpBTknEhi1WQVJHQSBESU5LQSBEUgorVlVKQU5PViBBTEVLU0FOREFSCitWVUpBTk9WIE1JTEFOS0EKK1ZVSkFOT1YgTklLT0xBCitWVUpBTk9WScSGIMW9QVJLTworVlVKQU5PVknEhiBBTEVLU0FOREFSCitWVUpBTk9WScSGIEJPxaBLTworVlVKQU5PVknEhiBCT8W9SURBUiBEUgorVlVKQU5PVknEhiBCT8W9SURBUgorVlVKQU5PVknEhiBCT1JJU0xBVgorVlVKQU5PVknEhiBCUkFOS08KK1ZVSkFOT1ZJxIYgREVTSU1JUgorVlVKQU5PVknEhiBESU1JVFJJSkUKK1ZVSkFOT1ZJxIYgRElNSVRSSUpFCitWVUpBTk9WScSGIERSQUdJQ0EKK1ZVSkFOT1ZJxIYgSk9WQU5LQQorVlVKQU5PVknEhiBKT1ZPCitWVUpBTk9WScSGIE1JSk8KK1ZVSkFOT1ZJxIYgTUlMQU4KK1ZVSkFOT1ZJxIYgTUlMRQorVlVKQU5PVknEhiBNSUxJTktBCitWVUpBTk9WScSGIE1JTE9SQUQKK1ZVSkFOT1ZJxIYgTUlSS08KK1ZVSkFOT1ZJxIYgTUxBREVOCitWVUpBTk9WScSGIFNJTU8KK1ZVSkFOT1ZJxIYgU0xBVk9MSlVCCitWVUpBTk9WScSGIFNUQU5BCitWVUpBTk9WScSGIFNUT0pBTgorVlVKQU5PVknEhiBWSVRPTUlSCitWVUpBU0lOIFNUUkFJTE8KK1ZVSkFTSU5PVknEhiDEjEVET01JUgorVlVKQVNJTk9WScSGIEpFTElDQQorVlVKQVNJTk9WScSGIExKVUJPTUlSCitWVUpBU0lOT1ZJxIYgTUFSS08KK1ZVSkFTSU5PVknEhiBNSUxBTgorVlVKQVNJTk9WScSGIE1JUk9TTEFWCitWVUpBU0lOT1ZJxIYgUkFETUlMQQorVlVKQVRPVknEhiBNSUxFTktPCitWVUpBVE9WScSGIE1JUkpBTkEKK1ZVSkFUT1ZJxIYgVEVPRE9SCitWVUpFVknEhiBSVcW9QQorVlVKScSMScSGIMSQT1LEkEUKK1ZVSknEjEnEhiBCSVNFUktBCitWVUpJxIxJxIYgQk/FvUlEQVIKK1ZVSknEjEnEhiBDVkVUQQorVlVKScSMScSGIERBTklMTyBEUgorVlVKScSMScSGIERPQlJJTEEKK1ZVSknEjEnEhiBEUkFHQU4KK1ZVSknEjEnEhiBEVcWgQU4KK1ZVSknEjEnEhiBHT0pLTworVlVKScSMScSGIElHTkpBVAorVlVKScSMScSGIElMSUpBCitWVUpJxIxJxIYgSVZJQ0EgRFIgUFJPRgorVlVKScSMScSGIE1BUktPCitWVUpJxIxJxIYgTUlIQUpMTworVlVKScSMScSGIE1JTEVOS08KK1ZVSknEjEnEhiBNSUxPxaAKK1ZVSknEjEnEhiBNSUxPxaAKK1ZVSknEjEnEhiBQRVRBUgorVlVKScSMScSGIFBFVFJBCitWVUpJxIxJxIYgUkFET1NMQVYKK1ZVSknEjEnEhiBSQU5LTworVlVKScSMScSGIFJBVEtPCitWVUpJxIxJxIYgUkFUS08KK1ZVSknEjEnEhiBTSU1PCitWVUpJxIxJxIYgU0xPQk9EQU4KK1ZVSknEjEnEhiBTUsSQQU4KK1ZVSknEjEnEhiBTVEFOS08KK1ZVSknEjEnEhiBTVEVWQU4KK1ZVSknEjEnEhiBTVE9KQU4gRElQTCBJTkcKK1ZVSknEjEnEhiBTVkVUS08KK1ZVSknEjEnEhiBUT01JU0xBVgorVlVKScSMScSGIFZBU0lMSUpFCitWVUpJxIxJxIYgVkVSQQorVlVKScSMScSGIFZFUklDQQorVlVKScSMScSGIFZMQURJTUlSCitWVUpJxIxJxIYgVk9KSU4KK1ZVSknEjElOIMW9QVJLTworVlVKScSMSU4gxJBPUsSQRQorVlVKScSMSU4gxJBVUsSQSUNBCitWVUpJxIxJTiBMSlVCSUNBCitWVUpJxIxJTiBQRVRBUgorVlVKScSGIMW9QVJLTworVlVKScSGIMW9SVZLTworVlVKScSGIMSQT1LEkEUKK1ZVSknEhiDEkE9SxJBFCitWVUpJxIYgxJBVUsSQSUpBCitWVUpJxIYgxJBVUkEKK1ZVSknEhiDEkFVSQQorVlVKScSGIEFMRUtTQU5EQVIKK1ZVSknEhiBBTEVLU0FOREFSCitWVUpJxIYgQU7EkEVMSUpBCitWVUpJxIYgQU5URQorVlVKScSGIEFOVEUKK1ZVSknEhiBCT1JJU0xBVgorVlVKScSGIEJSQU5JU0xBVgorVlVKScSGIEJSQU5JU0xBVgorVlVKScSGIEJSQU5LQQorVlVKScSGIERSQUdBCitWVUpJxIYgRFJBR0EKK1ZVSknEhiBEUkFHSU5KQQorVlVKScSGIERSQUdPU0xBVkEKK1ZVSknEhiBEUkFHT1NMQVYKK1ZVSknEhiBEVcWgQU4KK1ZVSknEhiBJVkFOIERSCitWVUpJxIYgSVZBTiBEUgorVlVKScSGIElWQU5LQQorVlVKScSGIEpBS09CIERSIExFS0FSCitWVUpJxIYgSk9WQU4KK1ZVSknEhiBKT1ZBTgorVlVKScSGIEpPVk8KK1ZVSknEhiBLQVRBUklOQQorVlVKScSGLUtPU08gVkVTTkEKK1ZVSknEhiBMQVpBUgorVlVKScSGIExKVUJBTgorVlVKScSGIExKVUJJQ0EKK1ZVSknEhiBNQVJJSkEgUFJPRkVTT1IKK1ZVSknEhiBNSUxBTgorVlVKScSGIE1JTEVWQQorVlVKScSGIE1JTEVWQQorVlVKScSGIE1JTEVWS0EKK1ZVSknEhiBNSUxJQ0EKK1ZVSknEhiBNSUxPxaAgRFIKK1ZVSknEhiBNSUxPxaAKK1ZVSknEhiBNSUxPxaAKK1ZVSknEhiBNSUxPxaAKK1ZVSknEhiBNSVJBCitWVUpJxIYgTUlST1NMQVYgRElQTCBJTkcKK1ZVSknEhiBNT01JUgorVlVKScSGIE5BREEKK1ZVSknEhiBOQURBCitWVUpJxIYgUEFWTEUgRFIKK1ZVSknEhiBQUkVEUkFHCitWVUpJxIYgUkFESVZPSgorVlVKScSGIFJBRE9TTEFWCitWVUpJxIYgUkFUS0EKK1ZVSknEhiBTQVZPCitWVUpJxIYgU0FWTworVlVKScSGIFNMQVZLQQorVlVKScSGIFNPRklKQQorVlVKScSGIFNUQU5LTworVlVKScSGIFNUQU5LTworVlVKScSGIFNURVZBTgorVlVKScSGIFNURVZBTgorVlVKScSGIFNURVZBTgorVlVKScSGIFZFUkEKK1ZVSknEhiBWRVNOQQorVlVKScSGIFZMQURJTUlSCitWVUpJxIYgVkxBRElNSVIKK1ZVSknEhiBWT0pJU0xBVkEKK1ZVSknEhiBaT1JBTgorVlVKSU4gxJBPS0EKK1ZVSklOIMSQVVJJQ0EKK1ZVSklOIEFMRUtTQU5EQVIKK1ZVSklOIERBTklDQQorVlVKSU4gREFWSUQKK1ZVSklOIEpFVlJFTQorVlVKSU4gSk9WQU5LQQorVlVKSU4gTEFaQVIKK1ZVSklOIE1BUkEKK1ZVSklOIE1FTEFOSUpBCitWVUpJTiBNSVJKQU5BCitWVUpJTiBSQURJVk9KCitWVUpJTiBSQURPVkFOCitWVUpJTiBTTEFWS08KK1ZVSklOIFNMT0JPREFOCitWVUpJTiBTVkVUT1pBUgorVlVKSU4gVlVKQURJTgorVlVKSU5PVknEhiDFvUlWS0EKK1ZVSklOT1ZJxIYgxJBVUkEKK1ZVSklOT1ZJxIYgxJBVUk8KK1ZVSklOT1ZJxIYgQk9SSVNMQVYKK1ZVSklOT1ZJxIYgQlJBTklNSVIKK1ZVSklOT1ZJxIYgR05KQVRJSkEKK1ZVSklOT1ZJxIYgSk9WTworVlVKSU5PVknEhiBMSlVCT01JUgorVlVKSU5PVknEhiBNSUxPxaAKK1ZVSklOT1ZJxIYgTUxBRElOS08KK1ZVSklOT1ZJxIYgTkFEQQorVlVKSU5PVknEhiBTUkVURU4KK1ZVSklOT1ZJxIYgU1RPSkFOCitWVUpJTk9WScSGIFRFT0RPU0lKRQorVlVKSU5PVknEhiBWRVJBCitWVUpJTk9WScSGIFZJRE9KRQorVlVKS08gU0FWQQorVlVKS09WIMSMRURPTUlSCitWVUpLT1YgxJBPUsSQRQorVlVKS09WIEFMRUtTQU5EQVIKK1ZVSktPViBBTlRJTklKQQorVlVKS09WIEJPxb1JREFSCitWVUpLT1YgQk/FvUlEQVIKK1ZVSktPViBEUkFHSUNBCitWVUpLT1YgRFJBR0lOSkEKK1ZVSktPViBEUkFHT0xKVUIKK1ZVSktPViBEVcWgQU4KK1ZVSktPViBEVcWgQU4KK1ZVSktPVi1JU0FLT1YgSkFHSUNBCitWVUpLT1YgSkVMRU5BCitWVUpLT1YgTEFaQVIKK1ZVSktPViBMQVpBUgorVlVKS09WIE1JTEFOIERJUEwgSU5HCitWVUpLT1YgTUlMQU5BCitWVUpLT1YgTUlMQU5BCitWVUpLT1YgTUlMQU4KK1ZVSktPViBNSUxBTgorVlVKS09WIE1JTEVOQQorVlVKS09WIE1JTElDQQorVlVKS09WIE1JTElDQQorVlVKS09WIE1JTElWT0oKK1ZVSktPViBNSVJKQU5BCitWVUpLT1YgTUlST1NMQVYgRElQTCBJTkcKK1ZVSktPViBNSVJPU0xBVgorVlVKS09WIE5BREEKK1ZVSktPViBORU5BRAorVlVKS09WIE9MR0EKK1ZVSktPViBQQVZMRQorVlVKS09WIFBFUkEKK1ZVSktPViBQRVRBUiBESVBMIFBSQVZOSUsKK1ZVSktPViBSQURJVk9KCitWVUpLT1YgUkFET1NMQVYKK1ZVSktPViBTQVZBCitWVUpLT1YgU0FWQQorVlVKS09WIFNFTktBCitWVUpLT1YgU0lNQQorVlVKS09WIFNMQVZLTworVlVKS09WIFNMT0JPREFOCitWVUpLT1YgU05Fxb1BTkEKK1ZVSktPViBTTkXFvUFOQQorVlVKS09WIFNURVZBTgorVlVKS09WIFNWRVRPWkFSCitWVUpLT1YgVEFNQVJBCitWVUpLT1YgVE9NSVNMQVYKK1ZVSktPViBWQVNBIERSCitWVUpLT1YgVkVTRUxJTiBEUiBQUk9GCitWVUpLT1YgVkxBRElNSVIKK1ZVSktPViBaRFJBVktPCitWVUpLT1YgWkRSQVZLTworVlVKS09WScSGIMSQVVJBCitWVUpLT1ZJxIYgRFJBR0FOCitWVUpLT1ZJxIYgR09SREFOQQorVlVKS09WScSGIEdPU1BBVkEKK1ZVSktPVknEhiBNSVJBCitWVUpLT1ZJxIYgTklLT0xBCitWVUpLT1ZJxIYgUlXFvUEKK1ZVSktPVknEhiBTTE9CT0RBTgorVlVKS09WScSGIFNURVZBTgorVlVKTk9WScSGIEFOS0EKK1ZVSk5PVknEhiBCT1NJTEpLQQorVlVKTk9WScSGIERSQUdBTgorVlVKTk9WScSGIEdPSktPCitWVUpOT1ZJxIYgR09KS08KK1ZVSk5PVknEhiBJTElKQQorVlVKTk9WScSGLU1JSEFKTE9WScSGIERFU0FOS0EKK1ZVSk5PVknEhiBNSUxBTgorVlVKTk9WScSGIE1JTEFOCitWVUpOT1ZJxIYgVkVMSktPCitWVUpOT1ZJxIYgVkVSQQorVlVKTk9WScSGIFpPUkEKK1ZVSk/FoEVWScSGIEJPUklTTEFWCitWVUpPxaBFVknEhiBCUkFOS08gRElQTCBPRUMKK1ZVSk/FoEVWScSGIERPQlJJU0xBVgorVlVKT8WgRVZJxIYgRFXFoEFOCitWVUpPxaBFVknEhiBLTEFSQQorVlVKT8WgRVZJxIYgTEpVQk9NSVIKK1ZVSk/FoEVWScSGIE1JTEFOCitWVUpPxaBFVknEhiBOSUtPTEEKK1ZVSk/FoEVWScSGIFJBVEtPCitWVUpPxaBFVknEhiBaT1JBCitWVUpPVknEhiDEkE9SxJBFCitWVUpPVknEhiBBTEVLU0FOREFSCitWVUpPVknEhiBCTEHFvU8KK1ZVSk9WScSGIEJMQUdPSkUKK1ZVSk9WScSGIEJPxb1JREFSCitWVUpPVknEhiBEQU5JQ0EKK1ZVSk9WScSGIERBUklOS0EKK1ZVSk9WScSGIERSQUdPTEpVQgorVlVKT1ZJxIYgRFXFoEFOCitWVUpPVknEhiBNQVJUQQorVlVKT1ZJxIYgTUlIQUlMTworVlVKT1ZJxIYgTUlMT01JUgorVlVKT1ZJxIYgTUlMT1JBRAorVlVKT1ZJxIYgTUlMT1JBRAorVlVKT1ZJxIYgTUlMT1JBRAorVlVKT1ZJxIYgTUlMT1ZBTgorVlVKT1ZJxIYgTUlPRFJBRworVlVKT1ZJxIYgTUlPTUlSCitWVUpPVknEhiBNSVJKQU5BCitWVUpPVknEhiBORcSQRUxKS08KK1ZVSk9WScSGIE5FxJBPCitWVUpPVknEhiBOT1ZJQ0EKK1ZVSk9WScSGIE9MR0EKK1ZVSk9WScSGIFBBVkxFCitWVUpPVknEhiBQQVZMRQorVlVKT1ZJxIYgUEVUS08KK1ZVSk9WScSGIFJBRElWT0pFCitWVUpPVknEhiBSQURJVk9KCitWVUpPVknEhiBSQURPSkUKK1ZVSk9WScSGIFJBVEtPCitWVUpPVknEhiBTTE9CT0RBTgorVlVKT1ZJxIYgU0xPQk9EQU4KK1ZVSk9WScSGIFNURVZBTgorVlVKT1ZJxIYgU1ZFVElTTEFWCitWVUpPVknEhiBWQVNJTElKRQorVlVKT1ZJxIYgVkFTSUxJSkUKK1ZVSk9WScSGIFZBU0lMSUpFCitWVUpPVknEhiBWRUxKS08KK1ZVSk9WScSGIFZFU0VMSU4KK1ZVSk9WScSGIFZMQURPCitWVUpPVknEhiBWTEFKS08KK1ZVSk9WScSGIFZMQVRLTworVlVKT1ZJxIYgVk9KSVNMQVYKK1ZVSk9WScSGIFZPSklTTEFWCitWVUpPVknEhiBWT0pJU0xBVgorVlVKT1ZJxIYgVlVLSUNBCitWVUpPVknEhiBaT1JBTgorVlVLxIxFVknEhiBEVcWgQU4KK1ZVS8SMRVZJxIYgR09SREFOQQorVlVLxIxFVknEhiBKT1ZBTgorVlVLxIxFVknEhiBLUlNUTworVlVLxIxFVknEhiBMSlVCT01JUgorVlVLxIxFVknEhiBMSlVCT01JUgorVlVLxIxFVknEhiBNSUxFTktPCitWVUvEjEVWScSGIE1JTEVOS08KK1ZVS8SMRVZJxIYgUEVUQVIKK1ZVS8SMRVZJxIYgU0FWTworVlVLxIxFVknEhiBTT0ZJSkEKK1ZVS8SMRVZJxIYgU1RFVkFOCitWVUvEjEVWScSGIFpPUkFOCitWVUvFoEEgxIxFRE8KK1ZVS8WgQSDFvUVMSktPCitWVUvFoEEgQk9SSVZPSkUKK1ZVS8WgQSBMQVpBUgorVlVLxaBBIE1JTEVOS08KK1ZVS8WgQSBNSUxVVElOCitWVUvFoEEgUEVUQVIKK1ZVS8WgQSBWSkVSQQorVlVLQcWgRVZJxIYgTUlMTworVlVLQcWgRVZJxIYgU0xPQk9EQU4KK1ZVS0HFoElOIEpPVkFOCitWVUtBxaBJTk9WIEJSQU5JTUlSCitWVUtBxaBJTk9WIENWRVRLTworVlVLQcWgSU5PViBTVEVWQU4KK1ZVS0HFoElOT1ZJxIYgxb1BUktPCitWVUtBxaBJTk9WScSGIMW9SVZBTgorVlVLQcWgSU5PVknEhiDEkE9SxJBFCitWVUtBxaBJTk9WScSGIEJPxb1JREFSCitWVUtBxaBJTk9WScSGIEJPSkFOCitWVUtBxaBJTk9WScSGIERSQUdBTgorVlVLQcWgSU5PVknEhiBEUkFHSU5KQQorVlVLQcWgSU5PVknEhiBEUkFHT0xKVUIKK1ZVS0HFoElOT1ZJxIYgSVJFTkEKK1ZVS0HFoElOT1ZJxIYgSVJFTkEKK1ZVS0HFoElOT1ZJxIYgTEFaQVIKK1ZVS0HFoElOT1ZJxIYgTEFaQVIKK1ZVS0HFoElOT1ZJxIYgTUlMQU4KK1ZVS0HFoElOT1ZJxIYgTUlMRQorVlVLQcWgSU5PVknEhiBNSUxJQ0EKK1ZVS0HFoElOT1ZJxIYgTUlSQQorVlVLQcWgSU5PVknEhiBNSVJKQU5BCitWVUtBxaBJTk9WScSGIE1JUk9TTEFWCitWVUtBxaBJTk9WScSGIE1PTUlSCitWVUtBxaBJTk9WScSGIE5JS09MQQorVlVLQcWgSU5PVknEhiBQQVZMRQorVlVLQcWgSU5PVknEhiBSQURPSkUKK1ZVS0HFoElOT1ZJxIYgU1BPTUVOS0EKK1ZVS0HFoElOT1ZJxIYgU1RPSkFOCitWVUtBxaBJTk9WScSGIFZFUkEKK1ZVS0HFoElOT1ZJxIYgVkVSSUNBCitWVUtBxaBJTk9WScSGIFZFU0VMSU4KK1ZVS0HFoElOT1ZJxIYgVklEQQorVlVLQcWgSU5PVknEhiBaRFJBVktPCitWVUtBRElOIERPQlJJVk9KRQorVlVLQURJTiBUT01JU0xBVgorVlVLQURJTk9WIMSQT1LEkEUKK1ZVS0FESU5PViDEkFVSQQorVlVLQURJTk9WIEJPSktBCitWVUtBRElOT1YgQlJBTklTTEFWCitWVUtBRElOT1YgSVNJRE9SCitWVUtBRElOT1YgSVZBTktBCitWVUtBRElOT1YgSVZBTktBCitWVUtBRElOT1YgSk9WQU4KK1ZVS0FESU5PViBLQVRJQ0EKK1ZVS0FESU5PViBNSUxFTktPCitWVUtBRElOT1YgTUlPRFJBRworVlVLQURJTk9WIE5FTkFECitWVUtBRElOT1ZJxIYgQU7EkEVMS08KK1ZVS0FESU5PVknEhiBCSUxKQU5BCitWVUtBRElOT1ZJxIYgQk9TSUxKS0EKK1ZVS0FESU5PVknEhiBCUkFOSVNMQVYKK1ZVS0FESU5PVknEhiBCUkFOSVNMQVYKK1ZVS0FESU5PVknEhiBCUkFOSVNMQVYKK1ZVS0FESU5PVknEhiBCUkFOS08KK1ZVS0FESU5PVknEhiBHQUJSSUpFTEEgUFJPRkVTT1IKK1ZVS0FESU5PVknEhiBKRUxJQ0EKK1ZVS0FESU5PVknEhiBMRVBPU0FWQQorVlVLQURJTk9WScSGIExKVUJPCitWVUtBRElOT1ZJxIYgTUlMRU5LTworVlVLQURJTk9WScSGIE1JTElWT0pFCitWVUtBRElOT1ZJxIYgTUlMSk9KS08KK1ZVS0FESU5PVknEhiBNSUxPxaAKK1ZVS0FESU5PVknEhiBNSUxPSkUKK1ZVS0FESU5PVknEhiBNSUxPUkFECitWVUtBRElOT1ZJxIYgTklLT0xBCitWVUtBRElOT1ZJxIYgUEFWTEUgRFIKK1ZVS0FESU5PVknEhiBQRVRBUgorVlVLQURJTk9WScSGIFBFVEFSCitWVUtBRElOT1ZJxIYgU09GSUpBIExPS0FMCitWVUtBRElOT1ZJxIYgU09GSUpBCitWVUtBRElOT1ZJxIYgU1RBTkEKK1ZVS0FESU5PVknEhiBTVEVWQU4gRFIKK1ZVS0FESU5PVknEhiBTVkVUT1pBUgorVlVLQURJTk9WScSGIFNWRVRPWkFSCitWVUtBRElOT1ZJxIYgVEFUSkFOQQorVlVLQURJTk9WScSGIFZFTElaQVIKK1ZVS0FESU5PVknEhiBWTEFESVNBVgorVlVLQURJTk9WScSGIFpPTElLQQorVlVLQURJTk9WScSGIFpPTElLQQorVlVLQUpMT1YgQlVESU1JUgorVlVLQUpMT1YgTUlST1NMQVYKK1ZVS0FKTE9WScSGIMW9SVZBTiBQUk9GRVNPUgorVlVLQUpMT1ZJxIYgxJBPUsSQRQorVlVLQUpMT1ZJxIYgQU5LSUNBCitWVUtBSkxPVknEhiBEQU5JTE8KK1ZVS0FKTE9WScSGIERBUklOS0EKK1ZVS0FKTE9WScSGIERVxaBBTgorVlVLQUpMT1ZJxIYgRUxJWkFCRVRBCitWVUtBSkxPVknEhiBMQVpBUgorVlVLQUpMT1ZJxIYgTUlMRU5BCitWVUtBSkxPVknEhiBNSVJKQU5BCitWVUtBSkxPVknEhiBTUkVUTworVlVLQUpMT1ZJxIYgU1RFVkFOCitWVUtBTEnEhiBNVU1JTgorVlVLQUxKRVZJxIYgSUxJSkEKK1ZVS0FMSkVWScSGIFNMQVZLTworVlVLQUxPVknEhiBTVkVUTEFOQQorVlVLQU5JxIYgQUxFS1NBTkRBUgorVlVLQU5JxIYgUEVUQVIKK1ZVS0FOScSGIFNSRVRFTgorVlVLQU5JxIYgWk9SQU4KK1ZVS0FOScSGIFpPUkFOCitWVUtBTk9WScSGIMW9SVZLQQorVlVLQU5PVknEhiBBTklDQQorVlVLQU5PVknEhiBNQVJJTkEKK1ZVS0FOT1ZJxIYgTUlST1NMQVYKK1ZVS0FOT1ZJxIYgTkVCT0rFoEEKK1ZVS0FOT1ZJxIYgUkFESVZPSgorVlVLQU5PVknEhiBTTEFWSU1JUgorVlVLQU5PVknEhiBTTE9CT0RBTgorVlVLQU5PVknEhiBTTE9CT0RBTgorVlVLQVMgxJBPUsSQRQorVlVLQVMgxJBVUk8KK1ZVS0FTIEFOS0lDQQorVlVLQVMgQlJBTktPCitWVUtBUyBPTUVSS0EKK1ZVS0FTT1ZJxIYgQlJBTklTTEFWCitWVUtBU09WScSGIE1BUklKQQorVlVLQVNPVknEhiBNSUxBTgorVlVLQVNPVknEhiBTTEFWSUNBCitWVUtBVknEhiBBTEVLU0FORFJBCitWVUtFTEnEhiBBTsSQRUxLQQorVlVLRUxJxIYgQk9SSVNMQVYKK1ZVS0VMScSGIEJSQU5LTworVlVLRUxJxIYgQlJBTktPCitWVUtFTEnEhiBEQVJBCitWVUtFTEnEhiBEUkFHQU4KK1ZVS0VMScSGIEpPVkFOCitWVUtFTEnEhiBMSlVCT01JUgorVlVLRUxJxIYgTUlMQU4KK1ZVS0VMScSGIE1JTEUKK1ZVS0VMScSGIE1JTElDQQorVlVLRUxJxIYgTUlPRFJBRworVlVLRUxJxIYgTU9NSVIKK1ZVS0VMScSGIFBBVkxFCitWVUtFTEnEhiBQRVRBUgorVlVLRUxJxIYgUEVUQVIKK1ZVS0VMScSGIFJBREEKK1ZVS0VMScSGIFJBREUKK1ZVS0VMScSGIFNJTFZJSkUKK1ZVS0VMScSGIFNJTU8KK1ZVS0VMScSGIFNMQVZLTworVlVLRUxJxIYgU1RFVkFOCitWVUtFTEnEhiBTVEVWQU4KK1ZVS0VMScSGIFRPTUlTTEFWCitWVUtFTEnEhiBWRUxKS08KK1ZVS0VMScSGIFZFUklDQQorVlVLRUxJxIYgVkVTTkEKK1ZVS0VMScSGIFZVS0lDQQorVlVLRUxJxIYgWkRSQVZLTyBEUgorVlVLRUxJxIYgWk9SSUNBCitWVUtFTEnEhiBaVk9OSU1JUgorVlVLRUxKQSBCUkFOS0EKK1ZVS0nEjEVWScSGIERSQUdPTUlSCitWVUtJxIxFVknEhiBMSklMSkFOQQorVlVLScSMRVZJxIYgTUlMQU4KK1ZVS0nEjEVWScSGIE1JTEFOCitWVUtJxIxFVknEhiBNSUxBTgorVlVLScSMRVZJxIYgTUlUQVIgRElQTCBQUkFWTklLCitWVUtJxIxFVknEhiBSQU5LTworVlVLScSMRVZJxIYgU1BBU09KRQorVlVLScSMRVZJxIYgVkVTTkEKK1ZVS0nEhi3EhlVMQUZJxIYgQlJBTktBCitWVUtJxIYgxb1JVktPCitWVUtJxIYgQU5EUkVKCitWVUtJxIYgQk/FvUlEQVIKK1ZVS0nEhiBCT1JJU0xBVgorVlVLScSGIEJSQU5LTworVlVLScSGIEJSQU5LTworVlVLScSGIEJVRElNSVIKK1ZVS0nEhiBERUpBTgorVlVLScSGIERJTUlUUklKRQorVlVLScSGIERVxaBBTgorVlVLScSGIElWQU5LQQorVlVLScSGIEpPVkFOCitWVUtJxIYgTEpVQklDQQorVlVLScSGIExKVUJPTUlSCitWVUtJxIYgTUFSSUpBCitWVUtJxIYgTUlMQU4KK1ZVS0nEhiBNSUxJQ0EKK1ZVS0nEhiBNSVJKQU5BCitWVUtJxIYgTUlSS08KK1ZVS0nEhiBNT03EjElMTworVlVLScSGIE5JS09MQQorVlVLScSGIE5JS09MQQorVlVLScSGIE5PVkFLCitWVUtJxIYgUEVUQVIKK1ZVS0nEhiBTVEFOS08KK1ZVS0nEhiBTVEVWQU4KK1ZVS0nEhiBWRUxJTUlSCitWVUtJxIYgVkxBRE8KK1ZVS0nEhiBWVUtBxaBJTgorVlVLScSGRVZJxIYgxJBPUsSQRQorVlVLScSGRVZJxIYgxJBPUsSQRQorVlVLScSGRVZJxIYgQUxFS1NBTkRBUgorVlVLScSGRVZJxIYgQlJBVElTTEFWCitWVUtJxIZFVknEhiBEUkFHSUNBCitWVUtJxIZFVknEhiBEVcWgQU5LQQorVlVLScSGRVZJxIYgSVNJRE9SCitWVUtJxIZFVknEhiBJU0lET1IKK1ZVS0nEhkVWScSGIE1JT01JUgorVlVLScSGRVZJxIYgTUlST1NMQVYKK1ZVS0nEhkVWScSGIE1JUk9TTEFWCitWVUtJxIZFVknEhiBNT03EjElMTyBEUgorVlVLScSGRVZJxIYgU1RBTknFoEEKK1ZVS0nEhkVWScSGIFRPTUEKK1ZVS0nEhkVWScSGIFZFTEpLTworVlVLTEnFoCBEUkFHQU4KK1ZVS0xJxaAgU0xPQk9EQU4KK1ZVS01BTk9WScSGIERBTklMTworVlVLTUFOT1ZJxIYgTEpVQkEKK1ZVS01BTk9WScSGIE1JTEFOQQorVlVLTUFOT1ZJxIYgTUlMQU4KK1ZVS01BTk9WScSGIE5FTkFECitWVUtNQU5PVknEhiBQRVRBUgorVlVLTUFOT1ZJxIYgU0lNTworVlVLTUFOT1ZJxIYgVkVMSU1JUgorVlVLTUFOT1ZJxIYgVkVSQQorVlVLTUlST1ZJxIYgxJBPUsSQRQorVlVLTUlST1ZJxIYgxJBPUsSQRQorVlVLTUlST1ZJxIYgQk/FvUlEQVIKK1ZVS01JUk9WScSGIEJSQU5LTworVlVLTUlST1ZJxIYgQlJBTktPCitWVUtNSVJPVknEhiBEQU5FCitWVUtNSVJPVknEhiBEUkFHQU4KK1ZVS01JUk9WScSGIEdPSktPCitWVUtNSVJPVknEhiBJTElKQQorVlVLTUlST1ZJxIYgSUxJSkEKK1ZVS01JUk9WScSGIElMSUpBCitWVUtNSVJPVknEhiBKQU5KQQorVlVLTUlST1ZJxIYgTEpVQk9NSVIKK1ZVS01JUk9WScSGIE1JTEFOCitWVUtNSVJPVknEhiBNSUxBTgorVlVLTUlST1ZJxIYgTUlMSUNBCitWVUtNSVJPVknEhiBNSUxPxaAKK1ZVS01JUk9WScSGIE1JTE8KK1ZVS01JUk9WScSGIE5JS09MQQorVlVLTUlST1ZJxIYgUEVUQVIKK1ZVS01JUk9WScSGIFJBTktPCitWVUtNSVJPVknEhiBSQU5LTworVlVLTUlST1ZJxIYgUk9ET0xKVUIKK1ZVS01JUk9WScSGIFNNSUxKS0EKK1ZVS01JUk9WScSGIFNSRcSGS08KK1ZVS01JUk9WScSGIFZFTElOS0EKK1ZVS01JUk9WScSGIFZVS0lDQQorVlVLTUlST1ZJxIYgWkRSQVZLQQorVlVLTknEhiBNQVJJSkFOCitWVUtPQlJBRCBEUkFHTworVlVLT0JSQUQgTEpVQk9NSVIKK1ZVS09CUkFEIE1BUktPCitWVUtPQlJBRCBNSUxPxaAKK1ZVS09CUkFUIERBTklDQQorVlVLT0JSQVQgRFJBR0FOCitWVUtPQlJBVCBKT8WgTworVlVLT0JSQVQgTEpVQk9NSVIKK1ZVS09CUkFUIE1JTEFOCitWVUtPQlJBVCBOSUtPTEEKK1ZVS09CUkFUIFBFVEFSCitWVUtPQlJBVCBUQVRKQU5BCitWVUtPQlJBVCBaRFJBVktPCitWVUtPQlJBVE9WIFJBRE9WQU4gRElQTCBJTkcKK1ZVS09CUkFUT1YgU0xPQk9EQU4KK1ZVS09CUkFUT1ZJxIYgQk9HREFOCitWVUtPQlJBVE9WScSGIERBTklDQQorVlVLT0JSQVRPVknEhiBKT1ZBTgorVlVLT0JSQVRPVknEhiBNSVJKQU5BCitWVUtPQlJBVE9WScSGIE5BREEKK1ZVS09CUkFUT1ZJxIYgU0xBVklDQQorVlVLT0rEjEnEhiBEVcWgQU4KK1ZVS09KQSBBTlRVTgorVlVLT0pFIERVxaBBTgorVlVLT0pFIEdBxaBPCitWVUtPSkUgSUxJSkEKK1ZVS09KRSBKT1ZBTgorVlVLT0pFIE1JTEFOQQorVlVLT0pFIFJBRElWT0pFCitWVUtPSkUgUkFETUlMQQorVlVLT0pFIFJBRE9WQU4KK1ZVS09KRSBWQU5KQQorVlVLT0pFIFZPSk8KK1ZVS09KRVYgQk9HREFOCitWVUtPSkVWIERVxaBBTgorVlVLT0pFViBEVcWgQU4KK1ZVS09KRVYgU0xPQk9EQU4KK1ZVS09KRVZJxIYgxJBVUk8KK1ZVS09KRVZJxIYgTUFSQQorVlVLT0pFVknEhiBNScSGTworVlVLT0pFVknEhiBNSU9EUkFHCitWVUtPSkVWScSGIE5JS08KK1ZVS09KRVZJxIYgVkVSSUNBCitWVUtPSkVWScSGIFZJRE9TQVYKK1ZVS09KRVZJxIYgWk9SQU4KK1ZVS09KScSMScSGIEJPUklTTEFWCitWVUtPSknEjEnEhiBEUkFHQU4KK1ZVS09KScSMScSGIE1JT0RSQUcKK1ZVS09KScSMScSGIE1JT0RSQUcKK1ZVS09KScSMScSGIFNMQVZPTEpVQgorVlVLT01BTiBFTUlMSUpBCitWVUtPTUFOIE1JTE9SQUQKK1ZVS09NQU4gUkFEQQorVlVLT01BTiBaT1JBTgorVlVLT01BTiBaT1JLQQorVlVLT01BTk9WIEpPVkFOCitWVUtPTUFOT1ZJxIYgQU5EUklKQQorVlVLT01BTk9WScSGIEtBVElDQQorVlVLT01BTk9WScSGIE5JS09MQQorVlVLT01BTk9WScSGIFJBRE9NSVIKK1ZVS09NQU5PVknEhiBTTEFWS08KK1ZVS09TQVYgQk9SSVZPSkUKK1ZVS09TQVYgQk9SS08gRFIKK1ZVS09TQVYgRE9CUklMQQorVlVLT1NBViBKT1ZPCitWVUtPU0FWIE1JTE9WQU4KK1ZVS09TQVYgUkFERQorVlVLT1NBViBTRU5LQQorVlVLT1NBViBWTEFKS08KK1ZVS09TQVZMSkVWIEJPR0RBTktBCitWVUtPU0FWTEpFViBEQU5JQ0EKK1ZVS09TQVZMSkVWIERSQUdJQ0EKK1ZVS09TQVZMSkVWIEpFTEVOQQorVlVLT1NBVkxKRVYgTEFaQVIKK1ZVS09TQVZMSkVWIE1BS1NBCitWVUtPU0FWTEpFViBNSUxBTgorVlVLT1NBVkxKRVYgUEVUQVIKK1ZVS09TQVZMSkVWIFNBVkEKK1ZVS09TQVZMSkVWIFNMQVZJQ0EKK1ZVS09TQVZMSkVWIFNURVZBTgorVlVLT1NBVkxKRVYgVk9KSU4gRElQTCBJTkcKK1ZVS09TQVZMSkVWScSGIEFOxJBFTEtBCitWVUtPU0FWTEpFVknEhiBCQVJCQVJBCitWVUtPU0FWTEpFVknEhiBDVklKRVRJTgorVlVLT1NBVkxKRVZJxIYgRFJBR0lDQQorVlVLT1NBVkxKRVZJxIYgSVZBTgorVlVLT1NBVkxKRVZJxIYgTEpVQklDQQorVlVLT1NBVkxKRVZJxIYgTFVLQQorVlVLT1NBVkxKRVZJxIYgTUFSQQorVlVLT1NBVkxKRVZJxIYgTUlMRU5LTworVlVLT1NBVkxKRVZJxIYgTUlMT1JBRAorVlVLT1NBVkxKRVZJxIYgTUlSQQorVlVLT1NBVkxKRVZJxIYgTUlST1NMQVYKK1ZVS09TQVZMSkVWScSGIFBBVkxFCitWVUtPU0FWTEpFVknEhiBTTE9CT0RBTgorVlVLT1NBVkxKRVZJxIYgU1RPSkFOCitWVUtPU0xBVsSMRVZJxIYgTklLT0xBCitWVUtPU0xBVsSMRVZJxIYgWkFSSUpFCitWVUtPU0xBVk9WScSGIFJBRE9OSkEKK1ZVS09UQSBNQVJLTworVlVLT1RBIE1JTEFOCitWVUtPVEnEhiBCUkFOS08KK1ZVS09UScSGIElWQQorVlVLT1RJxIYgS0FUQVJJTkEKK1ZVS09UScSGLUtPVkHEjEVWScSGIEJJTEpBTkEKK1ZVS09UScSGIExVS0EKK1ZVS09UScSGIE1BUkEKK1ZVS09UScSGIE1BUklKQQorVlVLT1RJxIYgTUlMQU4KK1ZVS09UScSGIE1JTElDQQorVlVLT1RJxIYgTUlPRFJBRworVlVLT1RJxIYgTkVOQUQKK1ZVS09UScSGIE5JS09MQQorVlVLT1RJxIYgT0xHQQorVlVLT1RJxIYgUEVSScWgQQorVlVLT1RJxIYgUkFET0pFCitWVUtPVEnEhiBSQURPVkFOCitWVUtPVEnEhiBTT0ZJSkEKK1ZVS09UScSGIFpPUklDQQorVlVLT1Ygxb1JVktPCitWVUtPViDEkE9SxJBFCitWVUtPViDEkE9SxJBFCitWVUtPViBCT8WgS08KK1ZVS09WIEJPxaBLTworVlVLT1YgQk/FvUFOQQorVlVLT1YgQlJBTklTTEFWCitWVUtPViBCUkFOSVNMQVYKK1ZVS09WIERSQUdBTgorVlVLT1YgRFJBR09MSlVCCitWVUtPViBKT1ZBTgorVlVLT1YgSk9WQU4KK1ZVS09WIExBWkFSCitWVUtPViBMSlVCT01JUgorVlVLT1YgTUFSSUpBCitWVUtPViBNQVJLTworVlVLT1YgTklLT0xJSkEKK1ZVS09WIE9MR0EKK1ZVS09WIFNURVZJQ0EKK1ZVS09WIFZVS0HFoElOCitWVUtPVkFDIERSQUdBTgorVlVLT1ZBQyBQQU5UQQorVlVLT1ZJxIYgxaBURUZJQ0EKK1ZVS09WScSGIMW9SVZLTworVlVLT1ZJxIYgxb1JVk9KSU4KK1ZVS09WScSGIMSQT1LEkEUKK1ZVS09WScSGIMSQVUtBCitWVUtPVknEhiBBTEVLU0FOREFSCitWVUtPVknEhiBBTEVLU0FORFJBCitWVUtPVknEhiBBTEVLU0lKQQorVlVLT1ZJxIYgQU5EUklKQQorVlVLT1ZJxIYgQU5UTworVlVLT1ZJxIYgQklMSkFOQQorVlVLT1ZJxIYgQkxBxb1PCitWVUtPVknEhiBCTEFHT0pFCitWVUtPVknEhiBCT8WgS08KK1ZVS09WScSGIEJPxaBLTworVlVLT1ZJxIYgQk9HScSGCitWVUtPVknEhiBCT0pBTkEKK1ZVS09WScSGIEJPSkFOQQorVlVLT1ZJxIYgQk9SScWgQQorVlVLT1ZJxIYgQk9SScWgQQorVlVLT1ZJxIYgQk9SSVZPSgorVlVLT1ZJxIYgQk9TSUxKS0EKK1ZVS09WScSGIEJSQU5JU0xBVgorVlVLT1ZJxIYgQlVESU1JUgorVlVLT1ZJxIYgQ1ZFVEtPCitWVUtPVknEhiBEQVJJTktBCitWVUtPVknEhiBET0JSSVZPSkUKK1ZVS09WScSGIERSQUdBTgorVlVLT1ZJxIYgRFJBR0FOCitWVUtPVknEhiBEUkFHT0xKVUIKK1ZVS09WScSGIERSQUdPU0xBVgorVlVLT1ZJxIYgRFJBR08KK1ZVS09WScSGIERVxaBBTiBEUiBMRUtBUgorVlVLT1ZJxIYgRFXFoEFOS0EKK1ZVS09WScSGIERVxaBBTgorVlVLT1ZJxIYgRFXFoEFOCitWVUtPVknEhiBHRVpBIE5PVklOQVIKK1ZVS09WScSGIEdPSktPCitWVUtPVknEhiBHT1JBTgorVlVLT1ZJxIYgR09SREFOQQorVlVLT1ZJxIYgSUxJSkEKK1ZVS09WScSGIElMSUpBCitWVUtPVknEhiBJVkFOCitWVUtPVknEhiBJVkFOCitWVUtPVknEhiBJVklDQQorVlVLT1ZJxIYgSkFTTUlOQQorVlVLT1ZJxIYgSkVMSUNBCitWVUtPVknEhiBKT1NJUAorVlVLT1ZJxIYgSk9WQQorVlVLT1ZJxIYgSlVMSUpBTkEKK1ZVS09WScSGIEpVTElKQU5BCitWVUtPVknEhiBMSlVCQU4KK1ZVS09WScSGIE1BUkdBUkVUQQorVlVLT1ZJxIYgTUFSSkVOS0EKK1ZVS09WScSGIE1BVE8KK1ZVS09WScSGIE1JTEFESU4KK1ZVS09WScSGIE1JTEFOCitWVUtPVknEhiBNSUxBTgorVlVLT1ZJxIYgTUlMRU5BCitWVUtPVknEhiBNSUxFTkEKK1ZVS09WScSGIE1JTEVOS08KK1ZVS09WScSGIE1JTElWT0pFCitWVUtPVknEhiBNSUxJVk9KRQorVlVLT1ZJxIYgTUlMSVZPSkUKK1ZVS09WScSGIE1JTElWT0oKK1ZVS09WScSGIE1JTEpBTgorVlVLT1ZJxIYgTUlMS0EKK1ZVS09WScSGIE1JTEtBCitWVUtPVknEhiBNSUxPUkFECitWVUtPVknEhiBNSUxVVElOCitWVUtPVknEhiBNSUxVVElOCitWVUtPVknEhiBNSU9EUkFHCitWVUtPVknEhiBNSU9EUkFHCitWVUtPVknEhiBNSVJKQU5BCitWVUtPVknEhiBNSVJKQU5BCitWVUtPVknEhiBNSVJLTworVlVLT1ZJxIYgTUlSS08KK1ZVS09WScSGIE1JUk9KRQorVlVLT1ZJxIYgTUlST1NMQVYKK1ZVS09WScSGIE1JUk9TTEFWCitWVUtPVknEhiBNSVRBUgorVlVLT1ZJxIYgTUlUQVIKK1ZVS09WScSGIE1JVEEKK1ZVS09WScSGIE1MQURFTgorVlVLT1ZJxIYgTkFEQQorVlVLT1ZJxIYgTkFEQQorVlVLT1ZJxIYgTkVEQQorVlVLT1ZJxIYgT0JSQUQKK1ZVS09WScSGIE9CUkFECitWVUtPVknEhiBPTEdJQ0EKK1ZVS09WScSGIE9MR0lDQQorVlVLT1ZJxIYgUEVUQVIKK1ZVS09WScSGIFBFVEFSCitWVUtPVknEhiBQRVRBUgorVlVLT1ZJxIYgUkFERU5LTworVlVLT1ZJxIYgUkFERQorVlVLT1ZJxIYgUkFET1NMQVYKK1ZVS09WScSGIFJBRE9WQU4KK1ZVS09WScSGIFJBVEtPCitWVUtPVknEhiBTQVZBCitWVUtPVknEhiBTRU5LQQorVlVLT1ZJxIYgU0lNQQorVlVLT1ZJxIYgU0xPQk9EQU4KK1ZVS09WScSGIFNMT0JPREFOCitWVUtPVknEhiBTUkXEhktPCitWVUtPVknEhiBTUkVET0pFCitWVUtPVknEhiBTVEFOS0EKK1ZVS09WScSGIFNUQU5LQQorVlVLT1ZJxIYgU1RJUEEKK1ZVS09WScSGIFNWRVRJU0xBVgorVlVLT1ZJxIYgU1ZFVExBTkEKK1ZVS09WScSGIFNWRVRMQU5BCitWVUtPVknEhi1UQVbEjElPU0tBIEFMRUtTQU5EUkEKK1ZVS09WScSGIFRPRE9SCitWVUtPVknEhiBUT01JU0xBVgorVlVLT1ZJxIYgVkVTTkEKK1ZVS09WScSGIFZJREFLCitWVUtPVknEhiBWSU5LQQorVlVLT1ZJxIYgVkxBRElNSVIKK1ZVS09WScSGIFZMQURJTUlSCitWVUtPVknEhiBWTEFESU1JUgorVlVLT1ZJxIYgVkxBRElTTEFWIERSCitWVUtPVknEhiBWTEFUS08gRElQTCBJTkcKK1ZVS09WScSGIFZPSklTTEFWCitWVUtPVknEhiBWT0pLTworVlVLT1ZJxIYgVlXEjEnEhgorVlVLT1ZJxIYgVlVLQcWgSU4KK1ZVS09WScSGIFpPUkFOCitWVUtPVknEhiBaT1JBTgorVlVLT1ZJxIYgWk9SQU4KK1ZVS09WScSGIFpPUkFOCitWVUtPVknEhiBaT1JBTgorVlVLT1ZMSkFLIEJPU0lMSktBCitWVUtPVkxKQUsgRVZJQ0EKK1ZVS09WTEpBSyBNSVJLTworVlVLT1ZMSkFLIFZPSklOCitWVUtPVk9KQUMgT0xHQQorVlVLT1ZPSkFDIFZPSklTTEFWCitWVUtTQU4gTUlMQU4KK1ZVS1NBTiBNSUxJVk9KCitWVUtTQU4gTUlPRFJBRworVlVLU0FOIE5JS09MQQorVlVLU0FOIFJBRE9TTEFWIFBST0ZFU09SCitWVUtTQU4gUlXFvUlDQQorVlVLU0FOIFNWRVRPWkFSCitWVUtTQU4gVlVLT1NBVkEKK1ZVS1NBTk9WIExKVUJJQ0EKK1ZVS1NBTk9WIFZPSklTTEFWCitWVUtTQU5PVknEhiDFvUlWT1JBRAorVlVLU0FOT1ZJxIYgQUxFS1NBTkRBUgorVlVLU0FOT1ZJxIYgQUxFS1NBTkRBUgorVlVLU0FOT1ZJxIYgREFSS08KK1ZVS1NBTk9WScSGIERFU0FOS0EKK1ZVS1NBTk9WScSGIEdPUkFOCitWVUtTQU5PVknEhiBHT1JEQU5BCitWVUtTQU5PVknEhiBKT1ZBTgorVlVLU0FOT1ZJxIYgTUlMRQorVlVLU0FOT1ZJxIYgTUlMSVNBVgorVlVLU0FOT1ZJxIYgTUlMT1JBRAorVlVLU0FOT1ZJxIYgTUlPRFJBRworVlVLU0FOT1ZJxIYgTUlSTworVlVLU0FOT1ZJxIYgU0FWTworVlVLU0FOT1ZJxIYgU1RFVkFOS0EKK1ZVS1NJxIYgU1RFVk8KK1ZVS1NJxIYgVkVMSU1JUgorVlVLVcWgScSGIEFOVEUKK1ZVTEFOT1ZJxIYgUkVMSkEKK1ZVTEFOT1ZJxIYgVk9KSVNMQVYKK1ZVTEVUQSBCT0pBTgorVlVMRVRBIFBSRURSQUcKK1ZVTEVUQSBSSVNUTworVlVMRVRJxIYgxb1FTEpLTworVlVMRVRJxIYgxJBPUsSQSUpFCitWVUxFVEnEhiBBTkRSSUpBCitWVUxFVEnEhiBCT1JJU0xBVgorVlVMRVRJxIYgQlJBTklTTEFWQQorVlVMRVRJxIYgQlJBTktPCitWVUxFVEnEhiBCUkFOS08KK1ZVTEVUScSGIERBTklDQSBEUgorVlVMRVRJxIYgRElNSVRSSUpFCitWVUxFVEnEhiBKRUxFTkEKK1ZVTEVUScSGIEpFTElDQSBQUk9GRVNPUgorVlVMRVRJxIYgTUlMQURJTgorVlVMRVRJxIYgTUlMQU4gVkVURVJJTkFSCitWVUxFVEnEhiBNSUxFCitWVUxFVEnEhiBNSUxJVk9KCitWVUxFVEnEhiBNTEFERU4KK1ZVTEVUScSGIE5BREXFvURBCitWVUxFVEnEhiBORURFTEpLTworVlVMRVRJxIYgTklLT0xBCitWVUxFVEnEhiBPQlJBRAorVlVMRVRJxIYgUkFET1ZBTgorVlVMRVRJxIYgU1LEkEFOCitWVUxFVEnEhiBWQVNJTElKRQorVlVMRVRJxIYgVklET1NBVkEKK1ZVTEVUScSGIFZJVE9NSVIKK1ZVTEVUScSGIFZMQURJTUlSCitWVUxFVEnEhiBWTEFTVElNSVIKK1ZVTEVUScSGIFpPUklDQQorVlVMRVRJTiBaT1JBCitWVUxFVknEhiDEjEVET01JUgorVlVMRVZJxIYgxIxFRE9NSVIKK1ZVTEVWScSGIMSMRURPTUlSCitWVUxFVknEhiBTUEFTT0pFCitWVUxJxIYgxb1JS0EKK1ZVTEnEhiDEkE9SxJBFCitWVUxJxIYgxJBPUsSQRQorVlVMScSGIEJPxb1JREFSCitWVUxJxIYgQk9SSVNMQVYKK1ZVTEnEhiBCUkFOSVNMQVYKK1ZVTEnEhiBCUkFOSVNMQVYKK1ZVTEnEhiBEQVJJTktBCitWVUxJxIYgREVTQU5LQQorVlVMScSGIERSQUdPTEpVQgorVlVMScSGIElMSUpBCitWVUxJxIYgSkFWT1JLQQorVlVMScSGIEpFTEVOQQorVlVMScSGIEpFTEVOQQorVlVMScSGIEpPVkFOCitWVUxJxIYgSk9WQU4KK1ZVTEnEhiBKT1ZBTgorVlVMScSGIExVS0EKK1ZVTEnEhiBMVUtBCitWVUxJxIYgTUlMQU5LQQorVlVMScSGIE1JTEFOCitWVUxJxIYgTUlMSVZPSkUKK1ZVTEnEhiBNSUxPUkFECitWVUxJxIYgTUlMT1JBRAorVlVMScSGIE1JUk9TTEFWCitWVUxJxIYgTUxBREVOCitWVUxJxIYgTU9NxIxJTE8KK1ZVTEnEhiBOSUtPTEEKK1ZVTEnEhiBQRVRLTworVlVMScSGIFNMQVZJQ0EKK1ZVTEnEhiBTTEFWS08KK1ZVTEnEhiBTVEVWQU4KK1ZVTEnEhiBaTEFUQQorVlVMScSGIFpMQVRJSkEKK1ZVTElLScSGIExVS0EKK1ZVTElLScSGIFJVxb1JQ0EKK1ZVTElLScSGIFZFU0VMSU4KK1ZVTElLScSGIFZPSklTTEFWCitWVUxJTiBBTkdFTElOQQorVlVMSU4gQlJBTklTTEFWCitWVUxJTiBHT0pLTworVlVMSU4gSlVMS0EKK1ZVTElOIE1MQURFTgorVlVMSU4gTkVOQUQKK1ZVTElOIE5FTkFECitWVUxJTiBQUkVEUkFHCitWVUxJTiBSQURPTUlSCitWVUxJTiBTVEVWQU4KK1ZVTElOIFZVS0HFoElOCitWVUxKQUogVkFTRUxKCitWVUxKRVZJxIYgxJBPS0EKK1ZVTEtBTkkgR09SREFOQQorVlVMT1ZJxIYgRFJBR0lDQQorVlVMT1ZJxIYgRFJBR0/FoAorVlVMT1ZJxIYgRFJBR09MSlVCCitWVUxPVknEhiBEUkFHT01JUgorVlVMT1ZJxIYgR09SQU4KK1ZVTE9WScSGIFBFVEFSCitWVUxPVknEhiBSQUpLTworVlVMT1ZJxIYgU0FWTworVlVMT1ZJxIYgU0xBVknFoEEKK1ZVTE9WScSGIFZMQURJTUlSCitWVUxPVknEhiBWVUtJQ0EKK1ZVTFNBTk9WScSGIElMS0EKK1ZVTkRFUkxJSCBKT1NJUAorVlVORFVLIE1JUk9TTEFWQQorVlVOScSGIE1JTEpFTktPCitWVU5JxIYgUEVUQVIKK1ZVTknEhiBSQURPSktBCitWVU5KQUsgxJBPUsSQRQorVlVOSkFLIEJSQU5JU0xBVkEKK1ZVTkpBSyBEVcWgQU4KK1ZVUkRFTEpBIE5FTUFOSkEgRFIgUFJPRgorVlVSREVMSkEgU09GSUpBCitWVVJERUxKQSBWQVNBCitWVVJTVCBKT1ZBTktBCitWVVJVTkEgQlJBTktPCitWVVJVTkEgTUFSSUpBCitWVVJVTknEhiBaRFJBVktPCitaQUJMRcSGQU5TS0kgVkxBREEKK1pBQlJEQUMgTUlMQU4KK1pBQlVOT1YgVkxBRElNSVIKK1pBRE9SIEFORFJJSkEgRFIgSVVSRQorWkFEUkFWRUMgSk9TSVAKK1pBRFJPIE5JS09MQQorWkFGSVJPVknEhiBCUkFOS08KK1pBR0EgTUlMQU4KK1pBR0FKxIxBTiBLT1NUQQorWkFHT1LEjEnEhiDFvUFSS08KK1pBR09SxIxJxIYgxb1JVktPCitaQUdPUsSMScSGIMW9SVZLTworWkFHT1LEjEnEhiDEkE9SxJBFCitaQUdPUsSMScSGIMSQT1LEkEUKK1pBR09SxIxJxIYgxJBPUsSQRQorWkFHT1LEjEnEhiBBTEVLU0FOREFSCitaQUdPUsSMScSGIEFOR0VMSU5BCitaQUdPUsSMScSGIEJPUklTTEFWCitaQUdPUsSMScSGIEJPUklTTEFWCitaQUdPUsSMScSGIERSQUdPTEpVQgorWkFHT1LEjEnEhiBHQVZSQQorWkFHT1LEjEnEhiBHTElHT1JJSkUKK1pBR09SxIxJxIYgR09SQU4KK1pBR09SxIxJxIYgSUxJSkEKK1pBR09SxIxJxIYgSUxJSkEKK1pBR09SxIxJxIYgSVJFTkEKK1pBR09SxIxJxIYgSkFTTUlOQQorWkFHT1LEjEnEhiBKRUxFTkEKK1pBR09SxIxJxIYgSk9WQU4KK1pBR09SxIxJxIYgSk9WQU4KK1pBR09SxIxJxIYgS1JJU1RJTkEKK1pBR09SxIxJxIYgTEFaQVIKK1pBR09SxIxJxIYgTEFaQVIKK1pBR09SxIxJxIYgTEFaQQorWkFHT1LEjEnEhiBNQVJJSkEKK1pBR09SxIxJxIYgTUlMQU4KK1pBR09SxIxJxIYgTUlMQU4KK1pBR09SxIxJxIYgTUlMSUNBCitaQUdPUsSMScSGIE1JTElWT0pFCitaQUdPUsSMScSGIE1JTElWT0oKK1pBR09SxIxJxIYgTUlMSVZPSgorWkFHT1LEjEnEhiBNSUxPxaAKK1pBR09SxIxJxIYgTUlMT1NBVgorWkFHT1LEjEnEhi1PUsWgT8WgIERSQUdBTkEKK1pBR09SxIxJxIYgUEFOVEEKK1pBR09SxIxJxIYgUEVUQVIKK1pBR09SxIxJxIYgUEVUQVIKK1pBR09SxIxJxIYgUFJFRFJBRworWkFHT1LEjEnEhiBSQURJVk9KCitaQUdPUsSMScSGIFJBRE9TTEFWCitaQUdPUsSMScSGIFNMT0JPREFOCitaQUdPUsSMScSGIFNURVZBTgorWkFHT1LEjEnEhiBTVkVUSVNMQVYKK1pBR09SxIxJxIYgU1ZFVE9aQVIKK1pBR09SxIxJxIYgVVJPxaAKK1pBR09SxIxJxIYgVkFTQQorWkFHT1LEjEnEhiBWQVNBCitaQUdPUsSMScSGIFZBU0EKK1pBR09SxIxJxIYgVlVLT1NBVkEKK1pBR09SxIxJxIYgWklKQUgKK1pBR09SQUMgQk/FvUlDQQorWkFHT1JBQyBESU1JVFJJSkUKK1pBR09SQUMgRFXFoEFOCitaQUdPUkFDIElWQU4KK1pBR09SQUMgTUFSSUpBCitaQUdPUkFDIE1JTEVOQQorWkFHT1JBQyBNSUxJQ0EKK1pBR09SQUMgTUlMSUNBCitaQUdPUkFDIE5FREVMSktPCitaQUdPUkFDIE5JS09MQQorWkFHT1JBQyBOSUtPTEEKK1pBR09SQUMgT1NUT0pBCitaQUdPUkFDIFBFVEFSCitaQUdPUkFDIFJBSktPCitaQUdPUkFDIFJVxb1JQ0EKK1pBR09SQUMgU0lNTworWkFHT1JBQyBWQUxLTworWkFHT1JFQyBKT1NJUAorWkFHT1JJQ0EgT1pSRU4KK1pBR1JBxJBBIEJBSklSQU0KK1pBSEFSSUpFVknEhiBCT0dEQU4KK1pBSE9SQUkgSk9WQU4KK1pBSE9SRUMgWlVaQU5BCitaQUhPUk9ETkkgQU5UT04KK1pBSE9ST0ROSSBJVkFOCitaQUlNT1ZJxIYgTVVIQVJFTQorWkFKWk9WIEpFTEVOQQorWkFLQU5KIEFSUEFECitaQUtBTkogTEFKT8WgCitaQUtBTkogTUlSS08KK1pBS0FOSi1UT0JPTEtBIEVWQQorWkFLScSGIMSQT1LEkEUKK1pBS0nEhiBCT8W9SURBUgorWkFLScSGIERJTUlUUklKRQorWkFLScSGIERPQlJJVk9KCitaQUtJxIYgRE9CUklWT0oKK1pBS0nEhiBJVkFOCitaQUtJxIYgTUlMQU4KK1pBS0nEhiBTQVZBCitaQUtMQU4gxJBVUkEKK1pBS0xBTiBNSUxBTgorWkFLTEFOIE5FR0lDQQorWkFLTEFOIFJBTktPCitaQUtMQU4gU0xPQk9EQU4KK1pBS0xBTiBTVEFOScWgQQorWkFLTEFOIFRJSE9NSVIKK1pBS0xBTiBUT01JU0xBVgorWkFMSVMgR0VPUkdJSkUKK1pBTElTIEpBTklTCitaQU1BS0xBUiBaT1JBTgorWkFNT0xPIEVEVUFSRAorWkFNVVJPVknEhiBBTEVLU0FOREFSCitaQU1VUk9WScSGIEJPSkFOQQorWkFNVVJPVknEhiBLT1NUQQorWkFNVVJPVknEhiBNSUxFTkEKK1pBTVVST1ZJxIYgT0xHQSBEUgorWkFNVVJPVknEhiBTVE9KQU4KK1pBTk9WSkFLIFBFVEVSCitaQVBVTklESVMgTEVPTklEQVMKK1pBUkVDS0kgUk9aQUxJSkEKK1pBUknEjE5JIFZFUklDQQorWkFSScSMTkkgVkVST05JS0EKK1pBUknEhiDEkE9SxJBFCitaQVJJxIYgxJBPUsSQRQorWkFSScSGIMSQT1LEkEUKK1pBUknEhiBCT8WgS08KK1pBUknEhiBCT0dEQU4KK1pBUknEhiBCT1JJU0xBVgorWkFSScSGIEJSQU5JU0xBVgorWkFSScSGIEJSQVRJU0xBVgorWkFSScSGIERSQUdBCitaQVJJxIYgRFJBR09TTEFWCitaQVJJxIYgRFXFoEFOCitaQVJJxIYgSVZBTktBCitaQVJJxIYgSVZBTgorWkFSScSGIEpFTEVOQQorWkFSScSGIEpPVkFOCitaQVJJxIYgSk9WTworWkFSScSGIEtBVElDQQorWkFSScSGIEtBVElDQQorWkFSScSGIExBWkFSCitaQVJJxIYgTUFSSUpBCitaQVJJxIYgTUFSSUpBCitaQVJJxIYgTUlLQQorWkFSScSGIE1JTEFESU4KK1pBUknEhiBNSUxBTgorWkFSScSGIE1JTEFOCitaQVJJxIYgTUlMRU5BCitaQVJJxIYgTUlMSUNBCitaQVJJxIYgTUlMSUNBCitaQVJJxIYgTUlPRFJBRworWkFSScSGIE1MQURFTgorWkFSScSGIE1PTcSMSUxPCitaQVJJxIYgTklLT0xBCitaQVJJxIYgTklLT0xBCitaQVJJxIYgTk9WQUsKK1pBUknEhiBQRVRBUgorWkFSScSGIFJBRE1JTEEKK1pBUknEhiBSQUpPCitaQVJJxIYgU0FWQQorWkFSScSGIFNMT0JPREFOCitaQVJJxIYgU0xPQk9EQU4KK1pBUknEhiBTVEFOSU1JUgorWkFSScSGIFNUQU5JU0xBVgorWkFSScSGIFNUQU5LQQorWkFSScSGIFNURVZBTgorWkFSScSGIFZFU05BCitaQVJJxIYgWkFSSUpBCitaQVJJxIYgWkRSQVZLTworWkFSScSGIFpPUktBCitaQVJJTiBTVEVWQQorWkFSSU5HRVItUElOVEVSIE5JS09MQQorWkFSS09WIEtPQ0EKK1pBUkxJIEtBVEFSSU5BCitaQVJOT0NLSSBQQVZMRQorWkFST0wgQUxFS1NBTkRBUgorWkFSVUJBQyBBTEVLU0FOREFSCitaQVJVQkFDIEJPUktBCitaQVJVQkFDIFJPTUlDQQorWkFSVUJJQ0EgQk/FvUFOQQorWkFSVUJJQ0EgUkFEVU4KK1pBUlVQU0tJIMSQT1LEkEUKK1pBUlVQU0tJIEJSQU5LTworWkFSVVBTS0kgTUlMT1ZBTgorWkFURUsgTUFSSUpBCitaQVRFWkFMTyBEVcWgQU4gUFJPRgorWkFURVpBTE8gTUlPRFJBRworWkFURVpBTE8gUEVUQVIKK1pBVEVaQUxPIFBSRURSQUcKK1pBVkFSR08gWk9MVEFOCitaQVZBUktPIMWgQU5ET1IKK1pBVkFSS08gxaBBTkRPUgorWkFWQVJLTyDFoEFORE9SCitaQVZBUktPIEFOVEFMCitaQVZBUktPIEVTVEVSQQorWkFWQVJLTyBJxaBUVkFOCitaQVZBUktPIEpBTk/FoAorWkFWQVJLTyBLQVJMTworWkFWQVJLTyBNQVJJSkEKK1pBVkFSS08gVkVSQQorWkFWQVJPxaAgQU5EUklKQQorWkFWScWgQSBQRVRBUgorWkFWScWgQSBSQU5LTworWkFWScWgScSGIENWSUpFVEEKK1pBVknFoEnEhiBNSUxBTgorWkFWScWgScSGIFBSRURSQUcKK1pBVknFoEnEhiBWSURBCitaQVZJxaBJTiBNQVJJQ0EKK1pBVknFoElOIE1PTUlSCitaQVZJxaBJTiBTQVZBCitaQVZSVEFOSUsgSVZBTgorWkFWUlRBTklLIElWQU4KK1pBVlJUQU5JSyBNQVJKQU4KK1pBWlVMSkFLIFNMQVZLTworWkJBxIxOSUsgWk9GSUpBCitaQklMSknEhiBEUkFHT0xKVUIKK1pCVcSGTk9WScSGIEpPVkFOS0EKK1pCVcSGTk9WScSGIE1JTEFOCitaQlXEhk5PVknEhiBNSUxPxaAKK1pCVcSGTk9WScSGIE1JVEEKK1pCVcSGTk9WScSGIFBBVkxFCitaQlXEhk5PVknEhiBTQVZBCitaREVMQVIgU0xPQk9EQU4KK1pERU5KQUsgSk9TSVAKK1pESUhBTiBNQVJLTworWkRKRUxBUiBEUkFHQU4KK1pESkVMQVIgTUlST1NMQVYKK1pESkVMQVIgT0xHQQorWkRKRUxBUiBWScWgTkpBCitaREpFTEFSIFpEUkFWS08KK1pESkVMQVJJxIYgQlJBTktPCitaREpFTEFSScSGIERSQUdBTgorWkRSQVZFU0tJIERVxaBBTktBCitaRFJBVkVWU0tJIElMSUpBCitaRFJBVktPVknEhiBBTsSQRUxJSkEKK1pEUkFWS09WScSGIEJPR09MSlVCCitaRFJBVktPVknEhiBCT1JJU0xBVgorWkRSQVZLT1ZJxIYgREVKQU4KK1pEUkFWS09WScSGIERSQUdPTEpVQgorWkRSQVZLT1ZJxIYgRFXFoEFOS0EKK1pEUkFWS09WScSGIEpFTEVOQQorWkRSQVZLT1ZJxIYgSk9WQU4KK1pEUkFWS09WScSGIE1JSEFKTE8KK1pEUkFWS09WScSGIE1JTEFOCitaRFJBVktPVknEhiBNSU9EUkFHCitaRFJBVktPVknEhiBNSU9EUkFHCitaRFJBVktPVknEhiBNSVJPU0xBVgorWkRSQVZLT1ZJxIYgUkFERQorWkRSQVZLT1ZJxIYgUkFERQorWkRSQVZLT1ZJxIYgVElIT01JUgorWkRSQVZLT1ZJxIYgVE9NSVNMQVYKK1pEUkFWS09WScSGIFZFUk9MSlVCCitaRFJBVktPVknEhiBWSURPSkUKK1pEVVBTS0kgQk/FvUlEQVIKK1pFxIxBSyBWT0pBCitaRcSMRVZJxIYgxJBPUsSQTworWkXEjEVWScSGIEFOR0VMSU5BCitaRcSMRVZJxIYgQ1ZJSkFOCitaRcSMRVZJxIYgRE9CUklWT0pFIERSCitaRcSMRVZJxIYgRFJBR0FOIERSCitaRcSMRVZJxIYgRFXFoEFOCitaRcSMRVZJxIYgR09MVUIKK1pFxIxFVknEhiBHVk9aREVOCitaRcSMRVZJxIYgSElNWk8KK1pFxIxFVknEhiBLUlNUTworWkXEjEVWScSGIExKVUJJQ0EKK1pFxIxFVknEhiBMSlVCSU5LTworWkXEjEVWScSGIE1BUklKQQorWkXEjEVWScSGIE1JTEFOCitaRcSMRVZJxIYgTUlMQU4KK1pFxIxFVknEhiBNSUxJU0FWCitaRcSMRVZJxIYgTUlMTworWkXEjEVWScSGIE1JT01JUgorWkXEjEVWScSGIE1JUkpBTkEKK1pFxIxFVknEhiBOSUtPTEEKK1pFxIxFVknEhiBOSUtPTEEKK1pFxIxFVknEhiBOT1ZBSworWkXEjEVWScSGIFBSRURSQUcKK1pFxIxFVknEhiBSQUpLTworWkXEjEVWScSGIFJJU1RJVk9KRQorWkXEjEVWScSGIFNBVk8KK1pFxIxFVknEhiBTTEFWS08KK1pFxIxFVknEhiBTTE9CT0RBTgorWkXEjEVWScSGIFNNSUxKQQorWkXEjEVWScSGIFNNSUxKQQorWkXEjEVWScSGIFNPRklKQQorWkXEjEVWScSGIFZFU05BCitaRcSMRVZJxIYgVkxBRElNSVIKK1pFxIxFVknEhiBaT1JBTgorWkXEjElST1ZJxIYgSUxNSQorWkXEhklSSSBJU01BSUwKK1pFxIZJUkkgWklKQQorWkVDIMW9RUxKS08KK1pFQyDEkFVSTworWkVDIEJPxaBLTworWkVDIEJPxb1JREFSCitaRUMgREFOSUpFTAorWkVDIERSQUdBTgorWkVDIERSQUdVVElOCitaRUMgRFXFoEFOCitaRUMgRFXFoEFOCitaRUMgSk9WQU4KK1pFQyBNQVJJSkEKK1pFQyBNQVJJSkEKK1pFQyBNQVJJTktPCitaRUMgTUFUQQorWkVDIE1JTEFOCitaRUMgTUlMQU4KK1pFQyBNSUxFIERJUEwgSU5HCitaRUMgTUlMT8WgCitaRUMgTUlMT8WgCitaRUMgTUlMT1JBRAorWkVDIE1JTE9WQU4KK1pFQyBOSUtPTEEKK1pFQyBOSUtPTEEKK1pFQyBSQURPVkFOCitaRUMgUkFKS08KK1pFQyBSQUpLTworWkVDIFNURVZBTklKQQorWkVDIFpPUklDQQorWkVESSBNSUhBTEoKK1pFR0EgQUxFS1NBTkRBUgorWkVHTkFMIFJVRE9MRgorWkVKQUsgSVZBTgorWkVKQUsgTUlMRVRBCitaRUpBSyBSQURPxaAKK1pFS0EgR1pJTQorWkVLQSBISVJaRU4KK1pFS0EgSVJNQQorWkVLQVZJQ0EgSkVMRU5BCitaRUtBVklDQSBNSVJKQU5BCitaRUtBVklDQSBTTEFWSUNBCitaRUtBVklDQSBTUsSQQU4KK1pFS0nEhiBNSVJBCitaRUtPTkpBIFpEUkFWS08KK1pFS09WScSGIEJPxaBLTworWkVLT1ZJxIYgRFJBR09NSVIKK1pFS09WScSGIEdPUkRBTkEKK1pFS09WScSGIEhBTktJSkEKK1pFS09WScSGIEpVTElKQU5BCitaRUtPVknEhiBMSUxBCitaRUtPVknEhiBNSUxBRElOCitaRUtPVknEhiBNSUxPxaAKK1pFS09WScSGIFBFVEFSIERJTFAgT0VDCitaRUtPVknEhiBQRVRBUgorWkVLT1ZJxIYgUkFERU5LTworWkVLT1ZJxIYgUklaQQorWkVLT1ZJxIYgVkFTTworWkVLT1ZTS0kgWk9SSUNBCitaRUxFTkJBQkEgUkFUS08KK1pFTEVOQkFCQSBTVEVWQU4KK1pFTEVOSEFTScSGIEVNSVIKK1pFTEVOSkFLIEFORFJJSkEKK1pFTEVOSkFLIFNUSkVQQU4KK1pFTEVOS0EgRlJBTkpBCitaRUxFTktBIE1BUklKQQorWkVMRU5LTyBFTUEKK1pFTEVOT1ZJxIYgQk9SScWgQQorWkVMRU5PVknEhiBEUkFHQU4KK1pFTEVOT1ZJxIYgSkVMRU5BCitaRUxFTk9WScSGIEpPVkFOCitaRUxFTk9WScSGIExKVUJJQ0EKK1pFTEVOT1ZJxIYgTEpVQk8KK1pFTEVOT1ZJxIYgTUFSQQorWkVMRU5PVknEhiBNSUxBRElOCitaRUxFTk9WScSGIE1JTEFOCitaRUxFTk9WScSGIE1JTElTQVYKK1pFTEVOT1ZJxIYgTUlMSVNBVgorWkVMRU5PVknEhiBWRVJBCitaRUxFTk9WScSGIFZMQURJTUlSCitaRUxFTlNLSSBBTEVLU0FOREFSCitaRUxFTlNLSSBBTEVLU0FOREFSCitaRUxFTlNLSSBKRUxFTkEKK1pFTEVOU0tJIE1JTElDQQorWkVMScSGIMSQT1LEkEUKK1pFTEnEhiBJVkFOCitaRUxJxIYgSkFOT8WgCitaRUxJxIYgSk9WQU4KK1pFTEnEhiBMQVpBUgorWkVMScSGIExKVUJBCitaRUxJxIYgTEpVQklDQQorWkVMScSGIExKVUJPTUlSCitaRUxJxIYgTUFSVEEKK1pFTEnEhiBQQVZMRQorWkVMScSGIFBFUlNJREEKK1pFTEnEhiBQRVRBUgorWkVMScSGIFJVxb1JQ0EKK1pFTEnEhiBWTEFESU1JUgorWkVMScSGIFpPTFRBTgorWkVMSkFKScSGIE5JS09MQSBEUgorWkVMSknEhiBTTE9CT0RBTgorWkVMSktPIE1BUklDQQorWkVMSktPVknEhiDFvUVMSktPCitaRUxKS09WScSGIMW9RUxKS08KK1pFTEpLT1ZJxIYgxJBVUk8KK1pFTEpLT1ZJxIYgQk9TQQorWkVMSktPVknEhiBCUkFOS08KK1pFTEpLT1ZJxIYgQlJBTktPCitaRUxKS09WScSGIERFU0lNSVIKK1pFTEpLT1ZJxIYgRFJBR1VUSU4KK1pFTEpLT1ZJxIYgRFXFoEtPCitaRUxKS09WScSGIElWQU5LQQorWkVMSktPVknEhiBKT1ZBTgorWkVMSktPVknEhiBKT1ZPCitaRUxKS09WScSGIEtSSVNUSU5BCitaRUxKS09WScSGIExKSUxKQU5BCitaRUxKS09WScSGIE1BUktPCitaRUxKS09WScSGIE1JTEFOCitaRUxKS09WScSGIE1JTEFOCitaRUxKS09WScSGIE1JTEnEhgorWkVMSktPVknEhiBNSUxKQQorWkVMSktPVknEhiBNSUxPxaAKK1pFTEpLT1ZJxIYgTUlSS08KK1pFTEpLT1ZJxIYgT1NUT0pBCitaRUxKS09WScSGIFJBRE1JTEEKK1pFTEpLT1ZJxIYgUkFOS08KK1pFTEpLT1ZJxIYgUkFUS08KK1pFTEpLT1ZJxIYgU0lNQQorWkVMSktPVknEhiBTVEVWTworWkVMSktPVknEhiBTVE9KQU5LQQorWkVMSktPVknEhiBUT0RFCitaRUxKS09WScSGIFRPTUEKK1pFTEpLT1ZJxIYgVkVSQQorWkVMSktPVknEhiBWTEFKS08KK1pFTEpLT1ZJxIYgVlVLQcWgSU4KK1pFTEpLT1ZJxIYgWk9SQU4KK1pFTEpLT1ZJxIYgWk9SQU4KK1pFTEpLT1ZJxIYgWk9SQU4KK1pFTUJFUkkgRkVSRU5DCitaRU1CRVJJIEpPU0lQCitaRU1CRVJJIFJPQkVSVAorWkVNS08gxaBBTkRPUgorWkVNTEpBSyBJVkFOCitaRU1MSkFOQUMgTUlMQU5LQQorWkVOVEFJIFJPQkVSVCBESVBMIElORworWkVOVU4gQVZETworWkVOWkVST1ZJxIYgUEFWTEUKK1pFUkRPIEJPxb1JREFSCitaRVJETyBNSUxPUkFECitaRVJETyBSQURPU0xBVgorWkVSRE8gWkxBVEEKK1pFUkVNU0tJIERBTklMTworWkVSRU1TS0kgRFJBR0FOCitaRVJFTVNLSSBEVcWgQU4KK1pFUkVNU0tJIEtBTUVOS08KK1pFUkVNU0tJIE5BREEKK1pFUkVNU0tJIE5PVkFLCitaRVJFTVNLSSBQRVRBUgorWkVSRU1TS0kgUEVUQVIKK1pFUkVNU0tJIFBJUk/FoEtBCitaRVJFTVNLSSBSQURPSktBCitaRVJFTVNLSSBSQU5LTworWkVSRU1TS0kgUkFUT01JUgorWkVSRU1TS0kgUlXFvUlDQQorWkVSRU1TS0kgU0xBVklDQQorWkVSRU1TS0kgU1RFVkFOCitaRVJFTVNLSSBTVEVWQU4KK1pFUkVNU0tJIFRFT0ZBTgorWkVSRU1TS0kgVE9NSVNMQVYKK1pFUkVNU0tJIFZFUkEKK1pFUkVNU0tJIFZMQURJTUlSCitaRVJFTVNLSSBWVUpBRElOCitaRVpESU4gQUxFS1NBTkRBUiBEUgorWkdPTUJBIExBWkFSCitaR09NQkEgVkxBRElNSVIKK1pHT05KQU5JTiBNSUxBTgorWkdPTkpBTklOIFJBREUKK1pHT05KQU5JTiBSVcW9QQorWklEQVIgTUFSSUpBTgorWklLT1YgQU5EUklKQQorWklLT1YgRFJBR09MSlVCCitaSU1BIMSMQUJBCitaSU1BIFJVRE9MRgorWklNQU5KSSBKT1ZBTgorWklNT05KQSBMSlVCT01JUgorWklNT05KScSGIFZMQURJTUlSCitaSU5BScSGIENWSUpFVEEKK1pJTkFJxIYgVVJPxaAKK1pJUkFNT1Ygxb1BUktPCitaSVJBTU9WIEpFVlJPU0lNQQorWklSQU1PViBKRVZST1NJTUEKK1pJUkFNT1YgU0FWQQorWklSQU1PViBTVEVWQU4KK1pJUkRVSCBNQVJJSkFOCitaSVJPSkUgRFJBR0FOCitaSVJPSkVWScSGIEFOxJBBCitaSVJPSkVWScSGIEdPSktPCitaSVJPSkVWScSGIE1JTEVOS08KK1pJUk9KRVZJxIYgTUxBREVOCitaSVJPSkVWScSGIE9CUkFECitaSVJPSkVWScSGIFRPTUlTTEFWCitaSVNJSkFERVMgTUlSSkFOQQorWklWTEFLIEJSQU5LTworWklWTEFLIEpFTEtBCitaSVZMQUsgSk9WQU4KK1pJVkxBSyBQRVJPCitaSVZMQUsgUEVSTworWklWTEFLIFZMQURJTUlSCitaSVZMQUtPVknEhiBEUkFHT0xKVUIKK1pKQcSMScSGIMSQT1LEkEUKK1pKQcSMScSGIMSQT1LEkEUKK1pKQcSMScSGIEJSQU5LTworWkpBSknEhiBLUlNUQU4KK1pKQUxJxIYgRFJBR09NSVIgQURWT0tBVAorWkpBTEnEhiBEUkFHT01JUgorWkpBTEnEhiBNQVJHSVRBCitaSkVWQUxPIEFOS0lDQQorWkxBVEFOT1ZJxIYgQkxBR09KRQorWkxBVEFOT1ZJxIYgQ1ZFVEtPCitaTEFUQU5PVknEhiBSQURJVk9KCitaTEFUQU5PVknEhiBUSUhPTUlSCitaTEFUQU5PVknEhiBWTEFESU1JUgorWkxBVEFOT1ZTS0kgRElNSVRSSUpFCitaTEFUQU5PVlNLSSBSVVNFCitaTEFUQVIgTUlMRU5LTworWkxBVEFSRVYgRFXFoEFOCitaTEFUQVJFViBEVcWgQU4KK1pMQVRBUkVWIFZFUklDQQorWkxBVEFSScSGIE1PTcSMSUxPCitaTEFUQVJJxIYgVk9KSVNMQVYKK1pMQVRBUk9WIE1JTE9WQU4KK1pMQVRFSyBMQVpBUgorWkxBVEnEjEFOSU4gVE/FoE8KK1pMQVRJxIYgTUlMT1JBRAorWkxBVEnEhiBSQURPU0xBVgorWkxBVEnEhiBWRVNFTElOCitaTEFUS09WScSGIEJPxaBLTworWkxBVEtPVknEhiBCT1JJU0xBVgorWkxBVEtPVknEhiBKRUxJQ0EKK1pMQVRLT1ZJxIYtSk9WScSGIE9MR0lDQQorWkxBVEtPVknEhiBLQVRBUklOQQorWkxBVEtPVknEhiBNRUxBTklKQQorWkxBVEtPVknEhiBSVVNPTUlSCitaTEFUS09WScSGIFNMQcSQQU5BCitaTEFUS09WScSGIFNMQVZLTworWkxBVE9OScSGIFNMQVZLTworWkxBVE9WRVJIT1ZOSUtPViDEkE9SxJBFCitaTEFUT1ZJxIYgSkVMSVNBVkVUQQorWkxBVE9WScSGIE5JS09MQQorWkxJxIxJxIYgQUxFS1NBTkRSQQorWkxJxIxJxIYgREFSSU5LQQorWkxJxIxJxIYgRElNSVRSSUpFCitaTEnEjEnEhiBEVcWgQU5LQSBESVBMIElORworWkxJxIxJxIYgRFXFoEFOCitaTEnEjEnEhiBJVkFOCitaTEnEjEnEhiBLQVRJQ0EKK1pMScSMScSGIExKVUJJQ0EKK1pMScSMScSGIE1JTEFOCitaTEnEjEnEhiBNSUxPUkFECitaTEnEjEnEhiBSQURPVkFOCitaTEnEjEnEhiBWQVNJTEpLQQorWkxPSlVUUk8gTUnEhk8KK1pMT0pVVFJPIE1JSEFKTE8KK1pMT0pVVFJPIFNURVZPCitaTE9KVVRSTyBWQVNBCitaTE9LT0xJQ0Egxb1JVktPCitaTE9LT0xJQ0EgxJBPUsSQRQorWkxPS09MSUNBIEJPxaBLTworWkxPS09MSUNBIEpPUkdPVkFOS0EKK1pMT0tPTElDQSBKT1ZBTgorWkxPS09MSUNBIEpPVkFOCitaTE9LT0xJQ0EgTEFaQVIKK1pMT0tPTElDQSBMSlVCSUNBCitaTE9LT0xJQ0EgTUFSS08KK1pMT0tPTElDQSBNSUxPxaAKK1pMT0tPTElDQSBNSU9EUkFHCitaTE9LT0xJQ0EgTklLT0xBCitaTE9LT0xJQ0EgTk9WQUsKK1pMT0tPTElDQSBTTEFWS08KK1pMT0tPTElDQSBTTEFWTkEKK1pMT0tPTElDQSBTVEVWQU4KK1pMT0tPTElDQSBTVEVWQU4KK1pMT0tPTElDQSBUT0RPUgorWkxPS09MSUNBIFZMQURBCitaTE9LT0xJQ0EgWkxBVEEKK1pNSUpBTkpBQyBNSUxBTgorWk1SWkxJS0FSIE1JUkpBTkEKK1pPxIZFVknEhiBNQVJJSkEKK1pPxIZFVknEhiBWSVRPUgorWk9CRU5JQ0EgQklMSkFOQQorWk9CRU5JQ0EgREFOSUNBCitaT0JFTklDQSBNSVJKQU5BCitaT0dPVknEhiBWVUsKK1pPS0kgU1RFVkFOCitaT0tJxIYgUkFET1ZBTgorWk9MTkFJIFRPTUHFoAorWk9MTkpBTiBQQVZFTAorWk9MT1RJxIYgS0FUQVJJTkEKK1pPTE9UScSGIFZFTElOS0EKK1pPTE9UScSGIFZVS09TQVYKK1pPTUJPUkFDIFpWT05LTworWk9OQSBESVZOQQorWk9OQUkgUEFMCitaT05JxIYgTEpVQkFOCitaT05JxIYgUklaQUgKK1pPUkFEIE1JSEFMSgorWk9SQUQgU1RFVkFOCitaT1JBSkEgxJBVUkEKK1pPUkFKQSBEUkFHQU4KK1pPUkFKQSBJR05KQVQKK1pPUkFKQSBQRVRBUgorWk9SQUpBIFNURVZBTgorWk9SQU5JxIYgU0xBVklDQQorWk9SQU5PVknEhiBEVcWgQU5LQQorWk9SQU5PVknEhiBJTElKQQorWk9SQU5PVknEhiBMQVpBUgorWk9SQU5PVknEhiBMQVpBUgorWk9SQU5PVknEhiBNSUxBTgorWk9SQU5PVknEhiBNSU9EUkFHCitaT1JBTk9WScSGIFNPRklKQQorWk9SQU5PVknEhiBTUEFTQQorWk9SQU5PVknEhiBTVEVWQU4KK1pPUkFOT1ZJxIYgU1ZFVExBTkEKK1pPUknEjEnEhiBEUkFHT0xKVUIKK1pPUknEhiDEjEVETworWk9SScSGIMSQT1LEkEUKK1pPUknEhiDEkE9SxJBFCitaT1JJxIYgxJBVUsSQSUNBCitaT1JJxIYgxJBVUklDQQorWk9SScSGIMSQVVJPCitaT1JJxIYgxJBVUk8KK1pPUknEhiDEkFVSTworWk9SScSGIEFOxJBFTEtBCitaT1JJxIYgQk/FoEtPCitaT1JJxIYgQk/FvUlEQVIKK1pPUknEhiBCT0dEQU4KK1pPUknEhiBCT0dPTEpVQgorWk9SScSGIEJPUklWT0oKK1pPUknEhiBCT1JPCitaT1JJxIYgQk9STworWk9SScSGIEJSQU5LQQorWk9SScSGIEJSQU5LTworWk9SScSGIERBUklOS0EKK1pPUknEhiBEQVJLTworWk9SScSGIERSQUdBTgorWk9SScSGIERSQUdBTgorWk9SScSGIERSQUdBTgorWk9SScSGIERSQUdPTEpVQgorWk9SScSGIERVxaBBTktBCitaT1JJxIYgRFXFoEFOCitaT1JJxIYgRFXFoEFOCitaT1JJxIYtR0FSRElOT1ZBxIxLSSBNQVJJSkFOQQorWk9SScSGIEdBVlJJTE8KK1pPUknEhiBHT1JEQU5BCitaT1JJxIYgSkVMSVNBVkVUQQorWk9SScSGIEpFTElTQVZFVEEKK1pPUknEhiBKT1ZBTgorWk9SScSGIEtBVEEKK1pPUknEhiBLTEFSQQorWk9SScSGIEtPU1RBRElOCitaT1JJxIYgS09WSUxKS0EKK1pPUknEhiBMQVpBUgorWk9SScSGIExVS0EKK1pPUknEhiBNQVJJSkEKK1pPUknEhiBNQVJLTworWk9SScSGIE1JS0EKK1pPUknEhiBNSUxBTgorWk9SScSGIE1JTEFOCitaT1JJxIYgTUlMQU4KK1pPUknEhiBNSUxBTgorWk9SScSGIE1JTEFOCitaT1JJxIYgTUlMRVZBCitaT1JJxIYgTUlMSUNBCitaT1JJxIYgTUlMSUNBCitaT1JJxIYgTUlMT1JBRAorWk9SScSGIE1JTE9SQUQKK1pPUknEhiBNSUxPUkFECitaT1JJxIYgTUlMT1JBRAorWk9SScSGIE1JTE9SQUQKK1pPUknEhiBNSU9EUkFHCitaT1JJxIYgTUlSS08gSU5HCitaT1JJxIYgTUlSS08KK1pPUknEhiBNSVJPU0xBVgorWk9SScSGIE5JS09MQQorWk9SScSGIE5JS09MQQorWk9SScSGIE5JS09MQQorWk9SScSGIFBBVkxFCitaT1JJxIYgUEVSQQorWk9SScSGIFBFVEFSCitaT1JJxIYgUEVUS08KK1pPUknEhiBSQURFCitaT1JJxIYgUkFERQorWk9SScSGIFNBVkEKK1pPUknEhiBTSU1BCitaT1JJxIYgU0lNRU9OCitaT1JJxIYgU0xBVklDQQorWk9SScSGIFNMT0JPREFOCitaT1JJxIYgU05Fxb1BTkEKK1pPUknEhiBTT0tBCitaT1JJxIYgU1BBU09KRQorWk9SScSGIFNUQU5LTworWk9SScSGIFNUT0pBTgorWk9SScSGIFNWRVRLTworWk9SScSGIFNWRVRLTworWk9SScSGIFZBU0lMSUpFCitaT1JJxIYgVkVMSU1JUgorWk9SScSGIFZFTEpLTyBESVBMIElORworWk9SScSGIFZMQURJU0xBVgorWk9SScSGIFZMQURPCitaT1JJxIYgVk9KSU4KK1pPUknEhiBWT0pLQQorWk9SScSGIFpEUkFWS0EKK1pPUknEhiBaT1JJQ0EKK1pPUknEhiBaVk9OSU1JUgorWk9SSUNBIEFDTworWk9SSUNBIERVxaBBTgorWk9SSUNBIE1BUktPCitaT1JJSkFOIEVNSUwKK1pPUkpBTiBCUkFOS08KK1pPUkpBTiBKQU5LTworWk9SS0nEhiDFvUlWS08KK1pPUk5JSkEgQlJBTktPCitaT1JOSUpBIFZMQURJU0xBVgorWk9STklLIEFMREEKK1pPUlpJxIYgTUlMT1JBRAorWk9USU4gxJBPUsSQRQorWk9USU4gU0FWQQorWk9USU4gU0xBVk9MSlVCCitaT1RPVknEhiBBTEVLU0FOREFSCitaT1RPVknEhiBPQlJBRAorWk9WScSGIEFOQQorWk9WScSGIERVxaBBTgorWk9WScSGIE1JTE9WQU4KK1pPVknEhiBNSVJPU0xBVgorWk9WS08gxaBJTVVOCitaT1ZLTyBJTElKQQorWk9WS08gSk9TSVAKK1pPVktPIE1BTkRBCitaT1ZLTyBNQVJKQU4KK1pPWlVLIExKVUJPTUlSCitaUklMScSGIE5BREEKK1pSSUxJxIYgVkVSQQorWlJJTEnEhiBWTEFESU1JUiBEUiBMRUtBUgorWlJOScSGIMWgUElSTworWlJOScSGIMSQT1LEkEUKK1pSTknEhiDEkFVSTworWlJOScSGIMSQVVJPCitaUk5JxIYgQlJBTktPCitaUk5JxIYgRFXFoEFOCitaUk5JxIYgR09KS08KK1pSTknEhiBHT0pLTworWlJOScSGIEpPVkFOCitaUk5JxIYgTEFaQVIKK1pSTknEhiBNQUpBCitaUk5JxIYgTUFMSU5BCitaUk5JxIYgTUFORSBESVBMIElORworWlJOScSGIE1BTkUKK1pSTknEhiBNQVJJTktPCitaUk5JxIYgTUlMQU4KK1pSTknEhiBNSUxBTgorWlJOScSGIE1JTE/FoAorWlJOScSGIE1JUkpBTkEKK1pSTknEhiBNSVJPTEpVQgorWlJOScSGIE5FTkFECitaUk5JxIYgTklLT0xBCitaUk5JxIYgUEVUQVIKK1pSTknEhiBTSU5JxaBBCitaUk5JxIYgU0xPQk9EQU4KK1pSTknEhiBTUsSQQU4KK1pSTknEhiBWTEFETworWlJOScSGIFpPUkFOCitaUk5JxIYgWk9SQU4KK1pVQkFDIMSMRURPTUlSCitaVUJBQyBESVZOQQorWlVCQUMgTUlMQU4KK1pVQkFDIFBFUk8KK1pVQkFLIFNURVZBTgorWlVCQU4gUEVUQVIKK1pVQkFOT1YgQlJBTklTTEFWCitaVUJBTk9WIFZMQURJTUlSCitaVUJFUiBEVcWgQU4KK1pVQkVSIE1BUktPCitaVUJFUkVDIEpPVkFOCitaVUJJxIYgxb1BUktPCitaVUJJxIYgxJBVUsSQQQorWlVCScSGIEJJTEpBTkEKK1pVQknEhiBCT8W9TworWlVCScSGIEJSQU5JU0xBVkEKK1pVQknEhiBEUkFHTworWlVCScSGIEpPVk8KK1pVQknEhiBMQVpPCitaVUJJxIYgUEVUQVIKK1pVQknEhiBSQURPU0xBVgorWlVCScSGIFJBVEtPCitaVUJJxIYgVkVSQQorWlVCScSGIFZFUktBCitaVUJPViBBREVMQQorWlVCT1ZJxIYgQU5EUklKQQorWlVCT1ZJxIYgTUlSSkFOQQorWlVCT1ZJxIYgU0xPQk9EQU4KK1pVQk9WScSGIFNURVZBTgorWlVDQUpJxIYgSkVMRU5BCitaVUtJxIYgR09KS08KK1pVS09WScSGIE1JTElOS08KK1pVTEnEhiBBR05FxaAKK1pVTUJVTE9WScSGIFBSRURSQUcKK1pVUEFOxIxJxIYgRlJBTkMKK1pVUEFOxIxJxIYgSVZBTgorWlVQQU5DIERBUktPCitaVVBBTkMgUkFKS08KK1pVUEtPViDEkFVSQQorWlVQS09WIE1JUk9TTEFWCitaVVJLT1ZJxIYgxJBPUsSQRQorWlVSS09WScSGIEFMRUtTQU5EQVIKK1pVUktPVknEhiBCT0dPTEpVQgorWlVSS09WScSGIERVxaBBTgorWlVSS09WScSGIEdBVlJBCitaVVJLT1ZJxIYgTUlSSkFOQQorWlVSS09WScSGIE5JS09MQQorWlVSS09WScSGIFJBRE9TTEFWCitaVVJLT1ZJxIYgUlXFvUEKK1pVUktPVknEhiBWRVJBCitaVVJPVkFDIEpPVk8KK1pVUk9WQUMgVkVMSktPCitaVVZJxIYgT0JSQUQKK1pVWkFLVSBSRUTFvUVQCitaVkFSQSBKVUxJSkEKK1pWRUtBTk9WScSGIEpPU0lQCitaVkVLScSGIERVxaBBTktBCitaVkVLScSGIEpVR09TTEFWCitaVkVLScSGIE1BUklKQQorWlZFS0nEhiBNSUxBTgorWlZFS0nEhiBOQURBCitaVkVLScSGIFBFVEFSCitaVkVLScSGIFNJTknFoEEKK1pWRUtJxIYgVkVMSU1JUgorWlZFUsW9SU5BIEpPU0lQCitaVkVaREFOT1ZJxIYgQk9SQQorWlZFWkRBTk9WScSGIFRPTUEKK1pWRVpESU4gSk9WQU5LQQorWlZJSkVSIE1JTE9SQUQKK1pWSVpEScSGIE1FSE1FRAorWlZPxaBFQyBLTEFSQQorWlZPTkFSRVZJxIYgS0FUQQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TUi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNSLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTU3NjBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TUi50eHQKQEAgLTAsMCArMSw2MTI1NCBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivQp9CQ0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CQ0KfQmNCLINCI0JXQm9CY0KbQkAor0KfQkNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Cn0JDQp9CY0Isg0J3QmNCa0J7Qm9CQCivQp9CQ0KfQmNCI0JAg0JHQoNCQ0J3QmtCeCivQp9CQ0ILQldCd0J7QktCY0Isg0JbQkNCg0JrQngor0KfQkNCC0JXQndCe0JLQmNCLINCh0JDQkdCY0J3QkAor0KfQkNCR0JDQmCDQkNCd0JTQoNCY0IjQkAor0KfQkNCR0JDQmCDQm9CQ0IjQntCoCivQp9CQ0JHQkNCYINCc0JDQoNCY0IjQkAor0KfQkNCR0JDQmCDQodCi0JXQktCQ0J0KK9Cn0JDQkdCQ0Jgg0KHQotCV0JLQkNCdCivQp9CQ0JHQkNCg0JrQkNCf0JAg0JHQoNCQ0J3QmtCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0JzQmNCb0JXQndCa0J4KK9Cn0JDQkdCQ0KDQmtCQ0J/QkCDQnNCY0KDQntCh0JvQkNCSCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KHQmNCc0J4KK9Cn0JDQkdCQ0KDQmtCQ0J/QkCDQodCi0JDQndCa0J4KK9Cn0JDQkdCQ0KDQmtCQ0J/QkCDQotCQ0JzQkNCg0JAKK9Cn0JDQkdCQ0KDQmtCQ0J/QkCDQotCe0JzQkNCoCivQp9CQ0JHQlNCQ0KDQmNCLINCd0JjQmtCe0JvQkAor0KfQkNCR0JTQkNCg0JjQiyDQl9Ce0KDQmNCm0JAKK9Cn0JDQkdCYINCd0JDQndCU0J7QoAor0KfQkNCR0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQkNCR0KDQkNCU0Jgg0JDQk9Cd0JXQl9CY0IjQkAor0KfQkNCR0KDQkNCU0Jgg0JjQktCQ0J0KK9Cn0JDQkdCg0JDQlNCYINCI0JXQm9CV0J3QkAor0KfQkNCR0KDQkNCU0Jgg0InQo9CR0JjQptCQCivQp9CQ0JHQoNCQ0JTQmCDQodCi0JXQktCQ0J0KK9Cn0JDQkdCg0JTQkCDQnNCQ0KDQotCY0J0KK9Cn0JDQkdCg0JjQm9CeINCR0J7Qk9CU0JDQnQor0KfQkNCR0KDQmNCb0J4g0JHQoNCQ0J3QmNCh0JvQkNCSCivQp9CQ0JHQoNCY0JvQniDQm9CQ0JfQkNCgCivQp9CQ0JHQoNCY0JvQniDQidCj0JHQmNCm0JAKK9Cn0JDQkdCg0JjQm9CeINCh0J/QkNCh0J7QiNCQCivQp9CQ0JTQldCoINCX0JTQldCd0JrQkAor0KfQkNCU0JXQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Cn0JDQlNCe0JLQodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KfQkNCT0InQldCS0JjQiyDQotCe0JzQkAor0KfQkNCT0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQiNCQINCS0JDQndCa0JAKK9Cn0JDQiNCY0Isg0JHQntCT0J7QidCj0JEKK9Cn0JDQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KfQkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9CQ0JrQqNCY0KDQkNCdINCc0JjQm9CQ0JTQmNCdCivQp9CQ0JrQkNCdINCV0KPQk9CV0J0KK9Cn0JDQmtCQ0J0g0JXQktCT0JXQndCY0IjQlQor0KfQkNCa0JDQnSDQmNCS0JDQnQor0KfQkNCa0JDQnSDQiNCj0JvQmNCI0JDQnQor0KfQkNCa0JDQnSDQnNCY0KXQkNCI0JvQngor0KfQkNCa0JDQnSDQodCi0JXQktCQ0J0KK9Cn0JDQmtCQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KfQkNCa0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0JrQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQmtCQ0KDQkCDQkNCd0JAKK9Cn0JDQmtCQ0KDQldCS0JjQiyDQnNCe0JzQmNCgCivQp9CQ0JrQkNCg0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Cn0JDQmtCYINCo0JDQndCU0J7QoAor0KfQkNCa0Jgg0JDQnNCQ0JvQmNCI0JAKK9Cn0JDQmtCYINCQ0J3QlNCg0JDQqAor0KfQkNCa0Jgg0JvQkNCU0JjQodCb0JDQkgor0KfQkNCa0Jgg0JvQkNCI0J7QqAor0KfQkNCa0Jgg0JvQkNCh0JvQngor0KfQkNCa0Jgg0JzQmNCl0JDQiQor0KfQkNCa0Jgg0JzQmNCl0JDQiQor0KfQkNCa0Jgg0J/QmNCg0J7QqNCa0JAKK9Cn0JDQmtCY0Isg0KHQkNCS0JAKK9Cn0JDQmtCY0Isg0JfQm9CQ0KLQntCI0JUg0JTQoAor0KfQkNCa0JzQkNCaINCU0JDQndCY0KbQkAor0KfQkNCa0JzQkNCaINCU0JXQiNCQ0J0KK9Cn0JDQmtCc0JDQmiDQm9CQ0JfQkNCgCivQp9CQ0JrQnNCQ0Jog0InQmNCJ0JDQndCQCivQp9CQ0JrQnNCQ0Jog0InQo9CR0JjQptCQCivQp9CQ0JrQnNCQ0Jog0KHQntCk0JjQiNCQCivQp9CQ0JrQnNCQ0Jog0KHQktCV0KLQntCX0JDQoAor0KfQkNCa0JzQkNCbINCS0J7QiNCY0KHQm9CQ0JIKK9Cn0JDQmtCe0JLQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0JDQmtCe0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JDQmtCe0JLQkNCmINCf0JDQndCi0JXQm9CY0IjQkAor0KfQkNCa0J7QktCQ0KYg0KHQkNCS0JAKK9Cn0JDQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQp9CQ0JrQoNCQINCc0JjQm9CV0J3QkAor0KfQkNCb0JAg0ILQo9Cb0JAKK9Cn0JDQm9CQINCY0KDQldCdCivQp9CQ0JvQkCDQmNCS0JDQndCa0JAKK9Cn0JDQm9CQINCb0JXQndCa0JAKK9Cn0JDQm9CQ0JrQmNCLINCR0KDQkNCd0JrQngor0KfQkNCb0JDQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9Cn0JDQm9CQ0JrQmNCLINCc0JDQoNCa0J4KK9Cn0JDQm9CQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cn0JDQm9CVINCY0JLQkNCdCivQp9CQ0JvQlSDQiNCe0KHQmNCfCivQp9CQ0JvQlSDQnNCY0JvQkNCdCivQp9CQ0JvQlSDQodCe0KTQmNCI0JAKK9Cn0JDQm9CVINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQm9CV0J3QmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0JDQm9CV0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQp9CQ0JvQldCd0JjQiyDQlNCY0J3QkAor0KfQkNCb0JXQndCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cn0JDQm9CV0J3QmNCLINCb0JDQl9CQ0KAKK9Cn0JDQm9CV0J3QmNCLINCJ0JjQidCQ0J3QkAor0KfQkNCb0JXQndCY0Isg0InQo9CR0J7QnNCY0KAKK9Cn0JDQm9CV0J3QmNCLINCb0KPQmtCQCivQp9CQ0JvQldCd0JjQiyDQnNCY0JvQntCh0JDQktCQCivQp9CQ0JvQldCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KfQkNCb0JXQndCY0Isg0KHQotCV0JLQkNCdCivQp9CQ0JvQmNCLINCR0J7QqNCa0J4KK9Cn0JDQm9CY0Isg0IjQntCS0J4KK9Cn0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQp9CQ0JvQmNCI0JAg0JTQkNCd0JjQptCQCivQp9CQ0JvQmNCI0JAg0IjQntCS0JDQnQor0KfQkNCb0JjQiNCQINCb0JDQl9CQ0KAKK9Cn0JDQm9CY0IjQkCDQnNCY0JvQkNCdCivQp9CQ0JzQgtCY0Isg0IjQkNCl0JjQiNCQCivQp9CQ0JzQkNCd0JPQntChINCC0J7QoNCC0JUKK9Cn0JDQnNCQ0J3Qk9Ce0KEg0JrQkNCi0JjQptCQCivQp9CQ0JzQkdCV0KAg0InQo9CR0JjQptCQCivQp9CQ0JzQkdCe0KAg0ILQo9Cg0J4KK9Cn0JDQnNCR0J7QoCDQkNCd0JTQoNCY0IjQkAor0KfQkNCc0JHQntCgINCI0J7QodCY0J8KK9Cn0JDQnNCP0JjQiyDQndCV0JDQlAor0KfQkNCc0J4g0JHQkNCg0JHQkNCg0JAKK9Cn0JDQnNCf0KDQkNCTINCC0J7QoNCC0JUg0JvQldCa0JDQoAor0KfQkNCc0J/QoNCQ0JMg0JTQoNCQ0JPQkAor0KfQkNCc0J/QoNCQ0JMg0JTQo9Co0JDQnQor0KfQkNCc0J/QoNCQ0JMg0InQo9CR0JjQptCQCivQp9CQ0JzQn9Cg0JDQkyDQnNCY0JvQkNCdCivQp9CQ0J3Qp9CQ0KAg0ILQntCg0ILQlQor0KfQkNCd0KfQkNCg0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Cn0JDQndCn0JDQoNCV0JLQmNCLINCc0JjQoNCe0InQo9CRCivQp9CQ0J3Qp9CQ0KDQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cn0JDQndCQ0I/QmNCLINCC0J7QoNCC0JUKK9Cn0JDQndCQ0I/QmNCLINCI0J7QktCQ0J0KK9Cn0JDQndCQ0I/QmNCLINCh0JDQitCQCivQp9CQ0J3QkNCU0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQp9CQ0J3QkNCU0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cn0JDQndCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cn0JDQndCQ0JTQmCDQiNCQ0J3QntCoINCc0KAKK9Cn0JDQndCQ0JTQmCDQidCY0InQkNCd0JAKK9Cn0JDQndCQ0JPQm9CY0Isg0ILQntCa0JAKK9Cn0JDQndCQ0Jog0JbQldCJ0JrQngor0KfQkNCd0JDQmiDQgtCj0KDQkAor0KfQkNCd0JDQmiDQkdCe0KHQmNCJ0JrQkCDQlNCgCivQp9CQ0J3QkNCaINCc0JjQpdCQ0IjQm9CeCivQp9CQ0J3QkNCaINCc0JjQoNCa0J4KK9Cn0JDQndCQ0Jog0JzQntCc0KfQmNCb0J4KK9Cn0JDQndCQ0Jog0J3QldCS0JXQndCa0JAKK9Cn0JDQndCQ0Jog0J3QmNCa0J7Qm9CQCivQp9CQ0J3QkNCaINCd0JjQmtCe0JvQkAor0KfQkNCd0JDQmiDQndCY0JrQntCb0JAKK9Cn0JDQndCQ0Jog0J7Qm9CY0JLQldCg0JAKK9Cn0JDQndCQ0Jog0JLQldCJ0JrQngor0KfQkNCd0JDQmiDQktCV0KHQldCb0JjQnQor0KfQkNCd0JDQmiDQktCj0JrQkNCo0JjQnQor0KfQkNCd0JPQkNCb0JjQiyDQlNCj0KjQkNCdCivQp9CQ0J3QmNCLINCJ0JjQidCQ0J3QkAor0KfQkNCd0JjQiyDQnNCY0JvQntCoCivQp9CQ0J3QmNCLINCe0KHQotCe0IjQkAor0KfQkNCK0JXQktCQ0KYg0KjQkNCg0JvQntCi0JAKK9Cn0JDQitCYINCQ0J3QlNCg0JjQiNCQCivQp9CQ0IrQmCDQk9CQ0JHQmAor0KfQkNCK0Jgg0JPQkNCR0J7QoAor0KfQkNCK0Jgg0JPQmNCX0JXQm9CQCivQp9CQ0IrQmCDQmNCg0JXQndCQCivQp9CQ0IrQmCDQmNCg0JXQndCQCivQp9CQ0IrQmCDQiNCQ0J3QmtCeCivQp9CQ0IrQmCDQmtCQ0KDQm9CeCivQp9CQ0IrQmCDQm9CQ0KHQm9CeCivQp9CQ0IrQmCDQm9CQ0KHQm9CeCivQp9CQ0IrQmCDQndCQ0JTQkAor0KfQkNCK0Jgg0KHQkNCc0KPQldCbCivQp9CQ0IrQmCDQodCi0JXQktCQ0J0KK9Cn0JDQitCYINCh0KLQldCS0JDQnQor0KfQkNCK0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KfQkNCK0Jgg0JfQntCb0KLQkNCdCivQp9CQ0IrQmCDQl9Cj0JfQkNCd0JAKK9Cn0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0KfQkNCd0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQp9CQ0J3QmtCe0JLQmNCLINCR0J7QiNCQCivQp9CQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KfQkNCd0JrQntCS0JjQiyDQlNCQ0J3QlQor0KfQkNCd0JrQntCS0JjQiyDQlNCQ0J3QlQor0KfQkNCd0JrQntCS0JjQiyDQlNCQ0J3QlQor0KfQkNCd0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cn0JDQndCa0J7QktCY0Isg0IjQntCS0JAKK9Cn0JDQndCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cn0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQp9CQ0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cn0JDQndCa0J7QktCY0Isg0JzQmNCa0JAKK9Cn0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9CQ0J3QmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0KfQkNCd0JrQntCS0JjQiyDQntCb0JPQkAor0KfQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgINCc0KAKK9Cn0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0KfQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQkNCd0JrQntCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0KfQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cn0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQkNCd0JrQntCS0JjQiyDQl9Cb0JDQotCQCivQp9CQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cn0JDQnyDQkNCd0KLQkNCbCivQp9CQ0J/QkNCd0JTQkCDQiNCe0KHQmNCfCivQp9CQ0J/QldCJ0JAg0JTQoNCQ0JPQkNCdCivQp9CQ0J/QldCJ0JAg0IjQkNCdINCU0KAKK9Cn0JDQn9CV0InQkCDQiNCe0JLQkNCdCivQp9CQ0J/QldCJ0JAg0J/QkNCS0JvQlQor0KfQkNCf0JrQniDQiNCj0JvQmNCI0JDQnQor0KfQkNCf0JrQniDQnNCY0JvQntCg0JDQlAor0KfQkNCf0JrQniDQnNCY0KDQntCh0JvQkNCSCivQp9CQ0J/QmtCeINCd0JXQodCi0J7QoAor0KfQkNCf0J4g0JDQlNCQ0JwKK9Cn0JDQn9CeINCY0JvQmNCI0JAKK9Cn0JDQn9CeINCI0JDQndCe0KgKK9Cn0JDQn9CeINCc0JDQoNCY0IjQkAor0KfQkNCf0J4g0J3QkNCU0JAKK9Cn0JDQn9Cg0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQkNCg0JDQn9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KfQkNCh0IrQmCDQldCg0JbQldCR0JXQogor0KfQkNCh0IrQmCDQpNCV0KDQldCd0KYKK9Cn0JDQodCi0JLQldCdINCI0KPQm9CY0IjQkNCd0JAKK9Cn0JDQoiDQkNCd0JTQoNCY0IjQkAor0KfQkNCi0JDQm9CY0J3QkNCmINCc0JjQm9CQ0J0KK9Cn0JDQotCQ0JvQmNCd0JDQpiDQndCY0JrQntCb0JAKK9Cn0JDQotCQ0JvQntCSINCh0KLQntCI0JDQnQor0KfQkNCi0JvQkNCI0JAg0KHQotCQ0J3QkAor0KfQkNCi0JvQkNCaINCe0JvQmNCS0JXQoNCQCivQp9CQ0KLQo9CoINCX0JvQkNCi0JrQngor0KfQkNCj0KjQldCS0JjQiyDQmtCV0JzQkNCbCivQp9CQ0KPQqNCV0JLQmNCLINCc0JjQlNCl0JDQogor0KfQkNCj0KjQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KfQkNCS0JjQiyDQqNCi0JXQpNCY0KbQkAor0KfQkNCS0JjQiyDQltCY0JLQmtCQCivQp9CQ0JLQmNCLINCC0J7QoNCC0JUKK9Cn0JDQktCY0Isg0JHQntCo0JrQngor0KfQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0JDQktCY0Isg0JTQldCI0JDQnQor0KfQkNCS0JjQiyDQlNCV0IjQkNCdCivQp9CQ0JLQmNCLINCU0KDQkNCT0JjQptCQCivQp9CQ0JLQmNCLINCU0KDQkNCT0J4KK9Cn0JDQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cn0JDQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cn0JDQktCY0Isg0JrQoNCh0KLQkNCdCivQp9CQ0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KfQkNCS0JjQiyDQnNCY0JvQldCd0JAKK9Cn0JDQktCY0Isg0JzQmNCg0JrQngor0KfQkNCS0JjQiyDQn9CV0KLQkNCgCivQp9CQ0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQp9CQ0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQp9CQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JDQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQkNCS0JjQiyDQodCe0JrQkAor0KfQkNCS0JjQiyDQotCe0KjQkAor0KfQkNCS0JjQiyDQktCV0JvQmNCX0JDQoAor0KfQkNCS0JjQiyDQktCb0JDQlNCeCivQp9CQ0JLQmNCLINCX0J7QoNCa0JAKK9Cn0JDQl9CY0Jwg0KfQldCb0JXQkdCY0IjQkAor0KfQldCn0JXQmiDQlNCg0JDQk9CY0KbQkAor0KfQldCn0JXQmiDQktCY0JvQmNCcCivQp9CV0KfQo9CaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0KfQo9CaINCR0KDQkNCd0JjQodCb0JDQkgor0KfQldCn0KPQmiDQnNCY0JvQntCoCivQp9CV0KfQo9CaINCh0JvQkNCS0JjQptCQCivQp9CV0KfQo9CaINCh0KLQldCS0JDQnQor0KfQldCo0InQkNCgINCC0KPQoNCQCivQp9CV0KjQidCQ0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cn0JXQqNCJ0JDQoCDQlNCQ0KDQmNCd0JrQkAor0KfQldCo0InQkNCgINCI0J7QodCY0J8KK9Cn0JXQqNCJ0JDQoCDQiNCe0JLQkNCdCivQp9CV0KjQidCQ0KAg0KHQotCV0JLQkNCdCivQp9CV0KjQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cn0JXQqNCJ0JXQktCY0Isg0JrQntCh0KLQkAor0KfQldCo0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KfQldCo0InQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cn0JXQqNCJ0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cn0JXQqNCJ0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQp9CV0JHQkNCmINCJ0KPQkdCY0KbQkAor0KfQldCR0JDQpiDQn9CQ0JLQm9CVCivQp9CV0JHQldCP0JjQiyDQnNCY0JvQkNCdCivQp9CV0JHQodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KfQldCR0JfQkNCdINCf0JDQndCi0JAKK9Cn0JXQlNCY0Isg0KDQldCP0J4KK9Cn0JXQk9CQ0KAg0JHQntCW0J4KK9Cn0JXQk9CQ0KAg0JTQldCh0JDQndCa0JAKK9Cn0JXQk9CQ0KAg0JTQoNCQ0JPQkNCdCivQp9CV0JPQkNCgINCc0JjQm9Ce0KgKK9Cn0JXQk9CQ0KAg0JzQmNCg0JrQngor0KfQldCT0JDQoCDQn9CQ0J3QlQor0KfQldCT0JDQoCDQodCg0JXQotCa0J4KK9Cn0JXQk9CQ0KAg0KHQotCV0JLQkNCd0JjQiNCQCivQp9CV0JPQkNCgINCh0JLQldCi0JvQkNCd0JAKK9Cn0JXQk9CQ0KAg0KLQntCU0J7QoAor0KfQldClINCQ0J3QotCe0J0KK9Cn0JXQpSDQiNCe0JbQldCkCivQp9CV0KUg0IjQntCh0JjQnwor0KfQldClINCI0J7QktCQ0J0KK9Cn0JXQpSDQnNCY0JrQm9Ce0KgKK9Cn0JXQpSDQodCi0JDQndCa0JAKK9Cn0JXQpSDQl9Cb0JDQotCQCivQp9CV0KXQkNCaINCa0JDQm9Cc0JDQnSDQlNCgCivQp9CV0KXQntCSINCY0JLQkNCdCivQp9CV0KXQntCSINCf0JXQotCQ0KAKK9Cn0JXQiNCe0JLQmNCLINCR0JjQodCV0KDQmtCQCivQp9CV0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9CV0IjQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KfQldCI0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KfQldCa0JDQndCe0JLQmNCLINCW0JjQktCQ0J3QkAor0KfQldCa0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQp9CV0JrQlSDQlNCV0JbQlQor0KfQldCa0JUg0JzQkNCg0JjQiNCQCivQp9CV0JrQlSDQodCd0JXQltCQ0J3QkAor0KfQldCa0JUg0KHQotCV0JLQkNCdCivQp9CV0JrQldCg0JXQktCQ0KYg0JHQoNCQ0J3QmtCeCivQp9CV0JrQldCg0JjQndCQ0KYg0JTQo9Co0JDQnQor0KfQldCa0JXQoNCY0J3QkNCmINCX0J7QoNCQ0J0KK9Cn0JXQmtCYINCU0JDQoNCY0J3QmtCQCivQp9CV0JrQmCDQlNCQ0JLQmNCUCivQp9CV0JrQmNCLINCQ0J3QkAor0KfQldCa0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KfQldCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cn0JXQmtCY0Isg0JTQoNCQ0JPQkNCdCivQp9CV0JrQmNCLINCY0JvQmNCI0JAKK9Cn0JXQmtCY0Isg0IjQntCS0JDQnQor0KfQldCa0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQldCa0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQldCa0JjQiyDQnNCY0JvQntCS0JDQnQor0KfQldCa0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KfQldCa0JjQiyDQnNCe0JzQp9CY0JvQngor0KfQldCa0JjQiyDQodCQ0JLQkAor0KfQldCa0JjQiyDQodCQ0JLQkAor0KfQldCa0JjQiyDQktCQ0KHQkAor0KfQldCa0JjQiyDQl9CU0KDQkNCS0JrQngor0KfQldCa0KDQj9CY0J0g0KDQkNCU0JjQodCb0JDQkgor0KfQldCb0JDQoCDQodCi0JXQktCQ0J0KK9Cn0JXQm9CV0JHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0JvQldCR0JjQiyDQkdCe0JbQngor0KfQldCb0JXQkdCY0Isg0JjQm9CY0IjQkAor0KfQldCb0JXQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JXQm9CV0JHQmNCLINCc0J7QnNCn0JjQm9CeCivQp9CV0JvQldCR0JjQiyDQntCb0JPQkAor0KfQldCb0JXQkdCY0Ist0KLQo9CR0JjQiyDQktCV0KHQndCQCivQp9CV0JvQldCR0JjQiyDQl9Ce0KDQmtCQCivQp9CV0JvQldCa0JXQotCY0Isg0IjQntCS0JDQnQor0KfQldCb0JXQmtCV0KLQmNCLINCI0J7QktCQ0J0KK9Cn0JXQm9CV0JrQldCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQp9CV0JvQldCa0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KfQldCb0JXQmtCV0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQp9CV0JvQldCa0JXQotCY0Isg0KLQkNCc0JDQoNCQCivQp9CV0JvQldCd0JDQmiDQmtCQ0KLQkNCb0JjQnQor0KfQldCb0JXQodCd0JjQmiDQlNCg0JDQk9Cj0KLQmNCdCivQp9CV0JvQmNCLINCR0JDQndCVCivQp9CV0JvQmNCLINCU0JjQndCa0JAKK9Cn0JXQm9CY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQp9CV0JvQmNCLINCY0JvQmNCI0JAKK9Cn0JXQm9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KfQldCb0JjQiyDQidCj0JHQmNCd0JrQngor0KfQldCb0JjQiyDQidCj0JHQntCc0JjQoAor0KfQldCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0KfQldCb0JjQiyDQn9CQ0JLQm9CVCivQp9CV0JvQmNCLINCh0KDQgtCQ0J0KK9Cn0JXQm9CY0Isg0KHQotCQ0J3QmtCeINCU0KAKK9Cn0JXQm9CY0Isg0JLQldCg0JAKK9Cn0JXQm9CY0KbQkCDQiNCV0JvQldCd0JAKK9Cn0JXQm9CY0JrQntCS0JjQiyDQldCc0JjQmwor0KfQldCb0J7QpNCY0JPQkCDQkNCd0KLQntCd0JjQiNCQCivQp9CV0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KfQldCb0J7QktCh0JrQmCDQkNCd0JTQoNCV0IgKK9Cn0JXQm9Ce0JLQodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cn0JXQnNCQ0J0g0ILQntCg0ILQlQor0KfQldCc0JDQnSDQgtCj0KDQkAor0KfQldCc0JDQnSDQkNCd0JTQoNCY0IjQkAor0KfQldCc0JDQnSDQlNCQ0J3QmNCb0J4KK9Cn0JXQnNCQ0J0g0JPQntCg0JTQkNCd0JAKK9Cn0JXQnNCQ0J0g0IjQkNCdCivQp9CV0JzQkNCdINCI0J7QktCQ0J0KK9Cn0JXQnNCQ0J0g0JzQmNCo0JAKK9Cn0JXQnNCQ0J0g0JzQmNCg0J7QodCb0JDQkgor0KfQldCc0JDQnSDQntCb0JPQkAor0KfQldCc0JDQnSDQoNCj0JbQldCd0JrQkAor0KfQldCc0JDQnSDQodCQ0JzQo9CV0JsKK9Cn0JXQnNCQ0J0g0KHQotCV0JLQkNCdCivQp9CV0JzQkNCdINCi0JXQoNCV0JfQkAor0KfQldCc0JHQmNCLINCc0JjQm9CQ0J0KK9Cn0JXQnNCV0KDQlSDQldCg0JbQldCR0JXQogor0KfQldCc0JXQoNCVINCb0JDQiNCe0KgKK9Cn0JXQnNCV0KDQm9CY0Isg0J/QldCi0JDQoAor0KfQldCd0JTQldCoINCR0KDQkNCd0JrQngor0KfQldCd0JXQiNCQ0KYg0JbQmNCS0JDQnQor0KfQldCd0JXQiNCQ0KYg0JPQoNCj0IjQkAor0KfQldCd0JXQiNCQ0KYg0InQo9CR0JjQptCQCivQp9CV0J3QldCI0JDQpiDQidCj0JHQmNCm0JAKK9Cn0JXQndCV0IjQkNCmINCc0JjQm9Ce0KgKK9Cn0JXQndCV0IjQkNCmINCc0JjQm9Cj0KLQmNCdCivQp9CV0J3QldCI0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQp9CV0J3QldCI0JDQpiDQktCV0JvQmNCh0JvQkNCSCivQp9CV0J3Qk9CV0KDQmCDQkNCi0JjQm9CQCivQp9CV0J3Qk9CY0Isg0JzQkNCg0JjQiNCQCivQp9CV0J3Qo9Co0JAg0JPQldCe0KDQk9CY0J3QkAor0KfQldCf0KfQkNCK0Jgg0JzQmNCg0IjQkNCd0JAKK9Cn0JXQn9CVINCQ0J3QmNCm0JAKK9Cn0JXQn9CYINCI0JDQndCe0KgKK9Cn0JXQn9CYINCb0JDQodCb0J4KK9Cn0JXQn9CYINCc0JDQoNCY0IjQkAor0KfQldCf0Jgg0J3QkNCd0JTQntCgCivQp9CV0J/QmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0JXQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQldCf0JjQiyDQodCc0JjQidCQCivQp9CV0J/QmNCLINCS0JXQm9CY0JzQmNCgCivQp9CV0J/QmNCdINCS0JjQmtCi0J7QoAor0KfQldCf0JvQlSDQodCi0JXQktCQ0J0KK9Cn0JXQn9Cg0JXQk9CYINCY0KDQldCd0JAKK9Cn0JXQn9Cg0JXQk9CYINCI0KPQm9CY0IjQkAor0KfQldCf0KHQmtCYINCI0J7QktCQ0J0KK9Cn0JXQn9Ch0JrQmCDQodCi0JXQktCQ0J0KK9Cn0JXQoCDQqNCQ0J3QlNCe0KAKK9Cn0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCgINCk0KDQkNCK0JAKK9Cn0JXQoCDQm9CQ0JTQmNCh0JvQkNCSCivQp9CV0KAg0JzQkNCg0JjQiNCQCivQp9CV0KDQldCa0J7QktCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQp9CV0KDQldCa0J7QktCY0Isg0KDQmNCh0KLQngor0KfQldCg0JXQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0KfQldCg0JXQmtCe0JLQmNCLINCS0JDQodCa0KDQodCY0IjQlQor0KfQldCg0JXQktCY0Isg0JjQktCQ0J0KK9Cn0JXQoNCV0JLQmNCLINCS0JXQoNCY0KbQkAor0KfQldCg0JXQktCY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0KDQldCS0JjQptCa0Jgg0JTQo9Co0JDQnQor0KfQldCg0JXQktCY0KbQmtCYINCI0J7QktCQ0J0KK9Cn0JXQoNCV0JLQmNCm0JrQmCDQidCj0JHQmNCm0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQnNCY0KLQkAor0KfQldCg0JXQktCY0KbQmtCYINCd0JDQlNCQCivQp9CV0KDQldCS0JjQptCa0Jgg0KDQkNCU0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQoNCj0JbQmNCm0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQodCi0JXQktCQ0J0KK9Cn0JXQoNCV0JLQmNCm0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQotCV0J7QlNCe0KAKK9Cn0JXQoNCT0JUg0JHQldCb0JAKK9Cn0JXQoNCYINCI0J7QltCV0KQKK9Cn0JXQoNCa0JXQlyDQkdCe0JPQlNCQ0J3QmtCQCivQp9CV0KDQmtCV0Jcg0JTQo9Co0JDQndCa0JAKK9Cn0JXQoNCa0JXQlyDQldCS0JjQptCQCivQp9CV0KDQmtCV0Jcg0IjQntCS0JDQndCa0JAKK9Cn0JXQoNCa0JXQlyDQodCi0JXQktCQ0J0KK9Cn0JXQoNCa0JXQl9Ce0JIg0JTQo9Co0JDQndCa0JAKK9Cn0JXQoNCa0JjQiyDQntCh0JzQkNCdCivQp9CV0KDQmtCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0KfQldCg0J3Qp9CV0KYg0JLQldCg0JAKK9Cn0JXQoNCd0JDQmiDQldCS0JAKK9Cn0JXQoNCd0JXQmi3QkNCf0KDQniDQltCj0JbQkNCd0JAKK9Cn0JXQoNCd0JXQmtCQINCh0KLQldCS0JDQnQor0KfQldCg0J3QmCDQmNCo0KLQktCQ0J0KK9Cn0JXQoNCd0JjQp9CV0Jog0JXQoNCW0JXQkdCV0KIKK9Cn0JXQoNCd0JjQp9CV0Jog0JjQqNCi0JLQkNCdCivQp9CV0KDQndCY0KfQldCaINCY0KjQotCS0JDQnQor0KfQldCg0J3QmNCLINCU0KPQqNCQ0J0KK9Cn0JXQoNCd0JjQmiDQkNCi0JjQm9CQCivQp9CV0KDQndCY0Jog0IjQntCW0JXQpAor0KfQldCg0J3QmNCaINCc0JDQoNCT0JjQotCQCivQp9CV0KDQndCY0JLQldCmINCi0JDQotCI0JDQndCQCivQp9CV0KDQitCQINCc0JDQoNCY0IjQkAor0KfQldCg0IrQkCDQnNCQ0KLQmNCb0JTQkAor0KfQldCg0IrQkNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Cn0JXQoNCK0JDQndCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQp9CV0KDQitCV0JLQodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQp9CV0KDQitCj0Kgg0IjQkNCa0JjQnAor0KfQldCg0J3QntCT0KPQkdCe0JIg0JHQntCg0JjQoQor0KfQldCg0J3Qo9CoINCY0JHQntCJ0JAKK9Cn0JXQoNCd0KPQqCDQotCY0JHQntCgCivQp9CV0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQp9CV0KDQo9CR0I/QmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cn0JXQoNCj0JHQj9CY0Isg0IjQntCS0JDQnQor0KfQldCg0KPQkdCP0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KfQldCg0KPQkdCP0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KfQldCg0KPQn9Ce0JbQmNCLINCe0JvQk9CQCivQp9CV0KDQktCQ0KDQmCDQldCg0JbQldCR0JXQogor0KfQldCg0JLQldCK0JDQmiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KfQldCg0JLQldCK0JDQmiDQiNCe0KHQmNCfCivQp9CV0KDQktCV0IrQkNCaINCJ0KPQkdCY0KbQkAor0KfQldCg0JLQldCK0JDQmiDQntCb0JPQkAor0KfQldCg0JLQldCK0JDQmiDQn9CV0KLQkNCgCivQp9CV0KDQktCV0IrQkNCaINCX0JDQk9Ce0KDQmtCQCivQp9CV0KDQktCV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0KDQktCV0J3QmtCeINCQ0J3QkAor0KfQldCh0JDQmiDQkNCd0JTQoNCY0IjQkAor0KfQldCi0JUg0JDQoNCe0J0g0JTQmNCf0Jsg0JjQndCTCivQp9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9CV0KLQm9CVINCc0JDQoNCY0IjQkAor0KfQldCi0J3QmNCaINCR0J7Qk9CU0JDQnQor0KfQldCi0J3QmNCaINCI0J7QktCQ0J0KK9Cn0JXQotCd0JjQmiDQl9CQ0JPQntCg0JrQkAor0KfQldCi0J3QmNCa0J7QktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cn0JXQotCe0IjQldCS0JjQiyDQnNCY0JvQmtCQCivQp9CV0KLQntCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KfQldCS0JDQoNCYINCC0J7QoNCC0JUKK9Cn0JXQktCQ0KDQmCDQkNCd0KLQkNCbCivQp9CV0JLQkNCg0Jgg0JzQkNCg0JjQiNCQCivQp9CV0JLQkNCg0Jgg0JzQmNCl0JDQiNCb0J4KK9Cn0JXQktCQ0KDQmCDQl9Ce0JvQotCQ0J0KK9Cn0JjQp9CQINCI0J7QktCQ0J0KK9Cn0JjQp9CQINCd0JjQmtCe0JvQkAor0KfQmNCn0JDQmCDQiNCe0JbQldCkCivQp9CY0KfQkNCaINCQ0J3QmtCY0KbQkAor0KfQmNCn0JDQmiDQnNCY0KDQmtCeCivQp9CY0KfQkNCa0JjQnSDQkNCd0ILQldCb0JrQkAor0KfQmNCn0JDQoNCV0JLQmNCLINCh0JDQktCeCivQp9CY0KfQldCaINCU0JDQndCY0IjQldCbCivQp9CY0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cn0JjQp9CY0Isg0JzQmNCb0JUKK9Cn0JjQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KfQmNCn0JrQntCS0JjQiyDQodCS0JXQotCa0J4KK9Cn0JjQp9Ce0JLQkNCn0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQp9CY0KfQntCS0JDQp9Ca0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQp9CY0KfQntCS0JDQpiDQgtCe0KDQgtCVCivQp9CY0KfQntCS0JDQpiDQmtCe0KHQotCQCivQp9CY0KfQntCS0JDQpiDQnNCY0JvQmNCm0JAKK9Cn0JjQp9Ce0JLQkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9Cn0JjQp9Ce0JLQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JjQltCV0Jog0J/QkNCS0JvQlQor0KfQmNCW0JXQmiDQodCb0JDQktCe0JzQmNCgCivQp9CY0JbQnNCV0KjQmNCI0JAg0JjQktCQ0J0KK9Cn0JjQkdCg0Jgg0IjQkNCd0J7QqAor0KfQmNCR0KDQmCDQn9CY0KDQntCo0JrQkAor0KfQmNCV0KQg0IjQkNCdCivQp9CY0JXQpCDQnNCQ0KDQotCY0J0KK9Cn0JjQldCkINCh0JDQnNCj0JXQmwor0KfQmNCl0Jgg0KTQldCg0JXQndCmCivQp9CY0KXQmCDQiNCQ0J3QntCoCivQp9CY0KXQmCDQiNCQ0J3QntCoCivQp9CY0Jog0JDQndCU0KDQmNCI0JAKK9Cn0JjQmiDQmNCb0JjQiNCQCivQp9CY0Jog0IjQldCd0JUKK9Cn0JjQmiDQl9Ce0JvQotCQ0J0KK9Cn0JjQmtCYINCI0J7QodCY0J8KK9Cn0JjQmtCYINCc0JDQoNCY0IjQkAor0KfQmNCa0JjQiyDQgtCe0KDQgtCVCivQp9CY0JrQmNCLINCm0JLQldCi0J7QnNCY0KAKK9Cn0JjQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cn0JjQmtCY0Isg0JXQnNCY0JsKK9Cn0JjQmtCY0Isg0JXQktCY0KbQkAor0KfQmNCa0JjQiyDQnNCY0JvQkNCdCivQp9CY0JrQmNCLINCd0JjQmtCe0JvQkAor0KfQmNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cn0JjQmtCe0Kgg0JbQo9CW0JDQndCQCivQp9CY0JrQntCoINCC0JXQoNCCCivQp9CY0JrQntCoINCC0J7QoNCC0JUKK9Cn0JjQmtCe0Kgg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQmtCe0Kgg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQmtCe0Kgg0KTQldCg0JXQndCmCivQp9CY0JrQntCoINCI0J7QodCY0J8g0JTQoAor0KfQmNCa0J7QqCDQiNCj0JvQmNCI0JDQndCQCivQp9CY0JrQntCoINCb0JDQlNCY0KHQm9CQ0JIKK9Cn0JjQmtCe0Kgg0JvQldCl0JXQmwor0KfQmNCa0J7QqCDQnNCQ0KDQmNCI0JAKK9Cn0JjQmtCe0IjQldCS0JjQiyDQktCY0J3QmtCeCivQp9CY0JrQntCS0JjQiyDQodCg0JXQotCa0J4KK9Cn0JjQmtCS0JDQoCDQmtCQ0KDQm9CeCivQp9CY0JvQkNCTINCI0JDQndCe0KgKK9Cn0JjQm9CQ0JMg0J3QkNCd0JTQntCgCivQp9CY0JvQkNCTINCd0JDQndCU0J7QoAor0KfQmNCb0JXQkyDQldCS0JAKK9Cn0JjQm9CY0Isg0JDQktCU0J4KK9Cn0JjQm9CY0Isg0JjQqNCi0JLQkNCdCivQp9CY0JvQmNCLINCI0J7QodCY0J8KK9Cn0JjQm9CY0Isg0IjQo9Cb0JjQkNCd0JAKK9Cn0JjQm9CY0Isg0JzQkNCb0JLQmNCd0JAKK9Cn0JjQm9CY0Isg0JzQkNCg0JrQngor0KfQmNCb0JjQmiDQkNCd0JrQkAor0KfQmNCb0JjQmiDQmNCb0J7QndCa0JAKK9Cn0JjQm9CY0J3Qk9CY0KDQmNChINCf0JDQktCb0JUKK9Cn0JjQndCn0JDQmiDQk9CQ0JHQntCgCivQp9CY0J3Qp9Cj0KDQkNCaINCc0JjQpdCQ0IjQm9CeCivQp9CY0J3Qp9Cj0KDQkNCaINCf0JDQktCb0JUKK9Cn0JjQndCn0KPQoNCQ0Jog0KHQotCV0JLQkNCdCivQp9CY0J3Qp9Cj0KDQldCaINCR0J7QqNCa0J4KK9Cn0JjQndCU0KDQkNCaINCU0JDQo9CiCivQp9CY0J3QlNCg0JDQmiDQodCQ0J3QmNCI0JAKK9Cn0JjQnyDQnNCQ0KLQngor0KfQmNCf0JDQmi3QpNCQ0JfQldCa0JDQqCDQmNCR0J7QiNCQCivQp9CY0J/QlSDQgtCe0KDQgtCVCivQp9CY0J/QlSDQldCg0JbQldCR0JXQogor0KfQmNCf0JUg0JXQoNCW0JjQmtCQCivQp9CY0J/QlSDQpNCg0JDQitCQCivQp9CY0J/QlSDQmNCg0JXQnQor0KfQmNCf0JUg0IjQkNCd0J7QqAor0KfQmNCf0JUg0IjQntCh0JjQnwor0KfQmNCf0JUg0IjQo9Cb0JjQiNCQ0J3QkAor0KfQmNCf0JUg0JvQkNCh0JvQngor0KfQmNCf0JUg0JvQkNCh0JvQngor0KfQmNCf0JUg0JzQkNCg0JjQiNCQCivQp9CY0J/QlSDQnNCQ0KDQotCQCivQp9CY0J/QlSDQnNCY0KXQkNCJCivQp9CY0J/QlSDQnNCY0KXQkNCJCivQp9CY0J/QlSDQodCi0IjQldCf0JDQnQor0KfQmNCf0JjQiyDQmtCQ0KLQmNCm0JAKK9Cn0JjQn9Ca0JDQoCDQkNCd0JTQoNCV0IgKK9Cn0JjQn9Ca0JDQoCDQodCi0JXQktCQ0J0KK9Cn0JjQn9Cb0JjQiyDQm9CQ0JfQkNCgCivQp9CY0J/Qm9CY0Isg0JzQmNCb0JDQnQor0KfQmNCf0JvQmNCLINCS0JXQoNCQCivQp9CY0J/Qm9CY0Isg0JLQmNCU0JAKK9Cn0JjQoNClINCU0JXQltCVCivQp9CY0KDQpSDQktCQ0KHQmtCQCivQp9CY0KDQmNCLINCI0J7QltCV0KQKK9Cn0JjQodCQ0KAg0KTQldCg0JXQndCmINCU0JjQn9CbINCY0J3Qkwor0KfQmNCh0JDQoCDQm9CQ0KHQm9CeCivQp9CY0KLQm9Cj0KfQkNCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cn0JjQktCn0JjQiyDQldCg0JbQldCR0JXQogor0KfQmNCS0KfQmNCLINCc0JjQpdCQ0IjQm9CeCivQp9CY0JLQp9CY0Isg0JzQmNCb0JUKK9Cn0JjQktCn0JjQiyDQnNCY0InQkAor0KfQmNCS0KfQmNCLINCg0JDQlNCe0JzQmNCgCivQp9CY0JLQp9CY0Isg0KHQkNCS0J4KK9Cn0JjQktCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KfQmNCS0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cn0JjQl9Cc0JDQlNCY0JAg0JPQo9Ch0KLQkNCSCivQp9CY0JfQnNCQ0JTQmNCQINCS0JXQoNCe0J3QmNCa0JAKK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQgtCj0JvQkAor0KfQmNCX0JzQkNCU0JjQiNCQINCY0KjQotCS0JDQnQor0KfQmNCX0JzQkNCU0JjQiNCQINCI0JDQndCe0KgKK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQmtCQ0KDQntCJCivQp9CY0JfQnNCQ0JTQmNCI0JAg0JzQmNCa0JgKK9Cn0JjQl9Cc0JDQoCDQkNCd0JAKK9Cn0JjQl9Cc0JDQoCDQkNCd0JjQptCQCivQp9CY0JfQnNCQ0KAg0IjQkNCd0JrQngor0KfQmNCX0JzQkNCgINCI0J7QkNCa0JjQnAor0KfQmNCX0JzQkNCgINCb0JDQiNCe0KgKK9Cn0JjQl9Cc0JDQoCDQnNCQ0KDQmNCI0JAKK9Cn0JjQl9Cc0JDQoCDQnNCY0KDQmtCeCivQp9CY0JfQnNCQ0KAg0J/QkNCS0JvQlQor0KfQmNCX0JzQkNCgINCh0KLQldCS0JDQnQor0KfQmNCX0JzQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JjQl9Cc0JXQqNCY0IjQkCDQnNCQ0JPQlNCQCivQp9CY0JfQnNCY0Isg0JDQndCY0KbQkAor0KfQmNCX0JzQmNCLINCY0JLQkNCdCivQp9CY0JfQnNCY0Isg0KDQkNCU0JAKK9Cn0JjQl9Cc0JjQiyDQl9Ce0KDQkAor0KfQmNCX0JzQntCS0JjQiyDQktCY0JTQkNCaCivQp9Cc0JXQm9CY0Jog0JzQkNCg0KLQmNCdCivQp9Cc0JXQm9CY0Jog0KDQkNCh0KLQmNCh0JvQkNCSCivQp9Ce0KfQkNCIINCh0KPQm9CeCivQp9Ce0KjQmtCe0JIg0J3QkNCU0JAKK9Cn0J7QkNCoINCY0KDQldCd0JAKK9Cn0J7QkdCQ0J0g0IjQntCdCivQp9Ce0JHQkNCdINCI0J7QktCQ0J0KK9Cn0J7QkdCQ0J0g0IjQntCS0JDQnQor0KfQntCR0JDQnSDQm9CY0JTQmNCI0JAKK9Cn0J7QkdCQ0J0g0JzQkNCg0JjQiNCQCivQp9Ce0JHQkNCdINCd0JjQmtCjCivQp9Ce0JHQkNCd0J7QkiDQltCY0JLQmtCQCivQp9Ce0JHQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9Cn0J7QkdCQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQp9Ce0JHQkNCd0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQp9Ce0JHQkNCd0J7QkiDQlNCj0KjQkNCdCivQp9Ce0JHQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9Cn0J7QkdCQ0J3QntCSINCJ0JjQidCQ0J3QkAor0KfQntCR0JDQndCe0JIg0JzQldCb0JDQndCY0IjQkAor0KfQntCR0JDQndCe0JIg0JzQmNCJ0JrQkAor0KfQntCR0JDQndCe0JIg0KDQo9CW0JjQptCQCivQp9Ce0JHQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JHQkNCd0J7QkiDQodCS0JXQotCeCivQp9Ce0JHQkNCd0J7QkiDQktCQ0KHQkAor0KfQntCR0JDQndCe0JIg0JLQm9CQ0JTQmNCh0JvQkNCSCivQp9Ce0JHQkNCd0J7QkiDQl9Ce0KDQkNCdCivQp9Ce0JHQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0KfQntCR0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KfQntCR0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiy3Qk9CV0Jcg0JzQkNCg0JjQiNCQCivQp9Ce0JHQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0KfQntCR0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KfQntCR0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KfQntCR0JDQndCe0JLQmNCLINCh0JDQktCQCivQp9Ce0JHQkNCd0J7QktCY0Isg0KHQkNCS0J4KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JHQkNCd0J7QktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KfQntCR0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cn0J7QkdCQ0J3QodCa0Jgg0JTQoNCQ0JPQkNCdCivQp9Ce0JHQkNCd0KHQmtCYINCc0JjQm9CV0J3QkAor0KfQntCR0JDQndCh0JrQmCDQoNCQ0JTQntCI0JrQkAor0KfQntCR0JjQiyDQoNCV0InQkAor0KfQntCR0JjQiyDQodCi0KDQkNCl0JjQitCQCivQp9Ce0JHQmNCLINCi0JjQnNCe0KLQldCICivQp9Ce0JHQntCiINCY0JvQntCd0JrQkAor0KfQntCR0KDQlNCQINCI0JDQndCa0J4KK9Cn0J7QkdCg0JTQkCDQiNCQ0J3QmtCeCivQp9Ce0IjQmNCLINCh0KLQldCk0JDQndCY0JTQkAor0KfQntCa0JAg0JjQktCQ0J3QmtCQCivQp9Ce0JrQkNCoINCb0KPQptCY0IjQkAor0KfQntCa0JDQnSDQndCY0JrQntCb0JAKK9Cn0J7QmtCQ0J3QmNCm0JAg0KHQkNCS0JAKK9Cn0J7QmtCQ0J3QmNCm0JAg0KHQntCk0JjQiNCQCivQp9Ce0JrQmNCLINCc0JjQm9CQ0J0KK9Cn0J7QmtCJ0JDQoiDQl9CU0JXQndCa0JAKK9Cn0J7QmtCg0JvQmNCLINCR0JDQoNCR0JDQoNCQCivQp9Ce0JrQoNCb0JjQiyDQiNCe0KHQmNCfCivQp9Ce0JvQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9Ce0JvQkNCaINCU0KDQkNCT0J7QidCj0JEKK9Cn0J7Qm9CQ0Jog0JTQoNCQ0JPQntCJ0KPQkQor0KfQntCb0JDQmiDQk9Ce0KDQkNCdCivQp9Ce0JvQkNCaINCa0KDQmNCh0KLQmNCd0JAKK9Cn0J7Qm9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9Cn0J7Qm9CQ0Jot0JzQmNCl0JDQm9CY0Jog0JzQkNCg0JjQiNCQCivQp9Ce0JvQkNCa0J7QkiDQnNCY0JvQkNCdCivQp9Ce0JvQkNCa0J7QkiDQnNCY0JvQlQor0KfQntCb0JDQmtCe0JIg0J/QkNCS0JvQlQor0KfQntCb0JDQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQp9Ce0JvQkNCa0J7QktCY0Isg0JzQntCc0JAKK9Cn0J7Qm9CQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cn0J7Qm9CQ0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQp9Ce0JvQkNCa0J7QktCY0Isg0KLQldCe0JTQntCgCivQp9Ce0JvQkNCa0J7QktCY0Isg0JLQkNCK0JAKK9Cn0J7Qm9CV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KfQntCb0JjQiyDQgtCj0KDQngor0KfQntCb0JjQiyDQkNCd0ILQldCb0JrQkAor0KfQntCb0JjQiyDQkdCe0KDQngor0KfQntCb0JjQiyDQlNCV0KHQkAor0KfQntCb0JjQiyDQlNCj0KjQkNCdCivQp9Ce0JvQmNCLINCU0KPQqNCa0J4KK9Cn0J7Qm9CY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQp9Ce0JvQmNCLLdCT0JDQi9CV0KjQkCDQodCb0JDQktCY0KbQkAor0KfQntCb0JjQiyDQmNCS0JDQnQor0KfQntCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0KfQntCb0JjQiyDQiNCe0JLQkNCdCivQp9Ce0JvQmNCLINCI0J7QktCQ0J0KK9Cn0J7Qm9CY0Isg0JvQo9Ca0JAKK9Cn0J7Qm9CY0Isg0JzQkNCg0JAKK9Cn0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQp9Ce0JvQmNCLINCc0JjQm9CQ0J0KK9Cn0J7Qm9CY0Isg0JzQmNCb0JDQnQor0KfQntCb0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JvQmNCLINCc0JjQoNCI0JDQndCQCivQp9Ce0JvQmNCLINCc0JjQoNCa0J4KK9Cn0J7Qm9CY0Isg0JzQmNCg0J7QodCb0JDQktCa0JAKK9Cn0J7Qm9CY0Isg0J/QldCi0JDQoAor0KfQntCb0JjQiyDQoNCQ0JTQkAor0KfQntCb0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KfQntCb0JjQiyDQoNCY0KHQotCeCivQp9Ce0JvQmNCLINCh0JDQktCQCivQp9Ce0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KfQntCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQp9Ce0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQp9Ce0JvQntCS0JjQiyDQnNCY0JvQlQor0KfQntCb0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0KfQntCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cn0J7Qm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cn0J7Qm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cn0J7Qm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQp9Ce0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cn0J7Qm9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQp9Ce0JvQntCS0JjQiyDQktCb0JDQlNCeCivQp9Ce0JzQkCDQgtCj0JvQkAor0KfQntCc0JAg0ILQo9Cb0JAKK9Cn0J7QnNCY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cn0J7QnNCY0Isg0JTQkNCg0JAKK9Cn0J7QnNCY0Isg0JTQoNCQ0JPQkNCdCivQp9Ce0JzQmNCLINCU0KPQqNCQ0J3QmtCQCivQp9Ce0JzQmNCLINCV0KDQltCV0JHQldCiCivQp9Ce0JzQmNCLINCY0JvQmNCI0JAKK9Cn0J7QnNCY0Isg0IjQkNCo0JrQngor0KfQntCc0JjQiyDQiNCQ0KjQmtCeCivQp9Ce0JzQmNCLINCa0KDQodCi0JAKK9Cn0J7QnNCY0Isg0JvQmNCU0JjQiNCQCivQp9Ce0JzQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9Ce0JzQmNCLINCc0JjQm9Ce0KgKK9Cn0J7QnNCY0Isg0JzQmNCg0J7QidCj0JEKK9Cn0J7QnNCY0Isg0JzQm9CQ0JTQldCdCivQp9Ce0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0J7QnNCY0Isg0KHQnNCY0InQkNCd0JAKK9Cn0J7QnNCY0Isg0KLQntCU0J7QoAor0KfQntCc0JjQiyDQotCe0JTQntCgCivQp9Ce0JzQntCgINCY0JvQntCd0JrQkAor0KfQntCc0J7QoCDQnNCQ0KLQmNCb0JTQkAor0KfQntCd0JPQoNCQ0JTQkNCmINCU0JDQndCY0IjQldCb0JAKK9Cn0J7QndCT0KDQkNCU0JDQpiDQmNCS0JDQndCa0JAKK9Cn0J7QndCT0KDQkNCU0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQp9Ce0J3QmNCLINCQ0J3QmtCQCivQp9Ce0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQp9Ce0J3QmNCLINCc0JjQm9Ce0KgKK9Cn0J7QndCY0Isg0J/QldCi0JDQoAor0KfQntCd0JjQiyDQotCY0IjQkNCd0JAKK9Cn0J7QndCY0Isg0JfQntCg0JDQnQor0KfQntCd0JrQkCDQgtCV0KDQggor0KfQntCd0JrQkCDQk9Ce0KDQlNCQ0J3QkAor0KfQntCd0JrQkCDQmtCQ0KDQntCJCivQp9Ce0J3QmtCQINCf0JXQotCQ0KAKK9Cn0J7QndCa0JDQqCDQldCc0JjQmwor0KfQntCd0JrQkNCoINCT0JDQkdCg0JjQldCb0JAKK9Cn0J7QndCa0JDQqCDQm9CQ0JTQmNCh0JvQkNCSCivQp9Ce0J3QmtCY0Isg0JbQmNCS0JrQngor0KfQntCd0JrQmNCLINCQ0JvQldCa0KHQkAor0KfQntCd0JrQmNCLINCR0JjQidCQ0J3QkAor0KfQntCd0JrQmNCLINCR0J7Qk9Ce0InQo9CRINCb0JXQmtCQ0KAKK9Cn0J7QndCa0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQp9Ce0J3QmtCY0Isg0JTQoNCQ0JPQkNCdCivQp9Ce0J3QmtCY0Isg0IjQldCb0JAKK9Cn0J7QndCa0JjQiyDQiNCj0JTQmNCiCivQp9Ce0J3QmtCY0Isg0InQmNCJ0JDQndCQCivQp9Ce0J3QmtCY0Isg0JzQkNCg0JjQiNCQCivQp9Ce0J3QmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Cn0J7QndCa0JjQiyDQnNCY0JvQldCd0JAKK9Cn0J7QndCa0JjQiyDQnNCY0JvQntCoCivQp9Ce0J3QmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0J7QndCa0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQntCd0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQp9Ce0J3QmtCY0Isg0JzQntCc0KfQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQp9Ce0J3QmtCY0Isg0J3QldCR0J7QiNCo0JAKK9Cn0J7QndCa0JjQiyDQndCV0KHQotCe0KAKK9Cn0J7QndCa0JjQiyDQn9CV0KLQkNCgCivQp9Ce0J3QmtCY0Isg0KDQkNCU0JXQndCa0J4KK9Cn0J7QndCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9Ce0J3QmtCY0Isg0KHQkNCo0JAKK9Cn0J7QndCa0JjQiyDQodCb0JDQktCa0J4KK9Cn0J7QndCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0J3QmtCY0Isg0KHQndCV0JbQkNCd0JAKK9Cn0J7QndCa0JjQiyDQodCi0JDQnNCV0J3QkAor0KfQntCd0JrQmNCLINCh0KLQldCS0JDQnQor0KfQntCd0JrQmNCLINCi0JjQpdCe0JzQmNCgCivQp9Ce0J3QotCe0Kgg0IjQntCW0JXQpAor0KfQntCd0KLQntCoINCX0J7QoNCQCivQp9Ce0J/Qp9CY0Isg0JzQkNCg0KLQmNCdCivQp9Ce0J/QmNCaINCf0JXQotCQ0KAKK9Cn0J7Qn9CY0Jog0JLQkNCh0JjQm9CY0IjQkAor0KfQntCf0J7QoNCU0JAg0JLQo9Ca0J7QodCQ0JLQkAor0KfQntCgINCk0KDQkNCK0JAKK9Cn0J7QoCDQiNCe0KHQmNCfCivQp9Ce0KDQkNCaINCI0J7QodCY0J8KK9Cn0J7QoNCQ0Jog0KHQotCY0J/QlQor0KfQntCg0JDQm9CY0Isg0JjQktCQ0J3QmtCQCivQp9Ce0KDQkdCQINCC0JXQoNCCCivQp9Ce0KDQkdCQINCY0KjQotCS0JDQnQor0KfQntCg0JHQkCDQiNCe0JLQkNCdCivQp9Ce0KDQkdCQINCI0J7QktCQ0J0KK9Cn0J7QoNCR0JAg0JzQmNCl0JDQiQor0KfQntCg0JTQkCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KfQntCg0JTQkCDQkNCb0JjQiNCQCivQp9Ce0KDQlNCQINCd0JDQlNCV0JbQlNCQCivQp9Ce0KDQlNCQINCi0J7QnNCY0KHQm9CQ0JIKK9Cn0J7QoNCU0JAg0JLQldCg0JAKK9Cn0J7QoNCU0JDQqCDQkNCd0JTQoNCY0IjQkAor0KfQntCg0JTQkNCoINCQ0KDQn9CQ0JQKK9Cn0J7QoNCU0JDQqCDQlNCj0KjQkNCd0JrQkAor0KfQntCg0JTQkNCoINCV0KDQltCV0JHQldCiCivQp9Ce0KDQlNCQ0Kgg0KXQkNCg0JPQmNCi0JAKK9Cn0J7QoNCU0JDQqCDQmNCg0JXQndCQCivQp9Ce0KDQlNCQ0Kgg0JvQkNCh0JvQngor0KfQntCg0JTQkNCoINCc0JjQpdCQ0IkKK9Cn0J7QoNCU0JDQqCDQodCb0JDQktCa0J4KK9Cn0J7QoNCU0JDQoCDQkdCg0JDQndCa0J4KK9Cn0J7QoNCU0JDQoNCV0JIg0InQmNCJ0JDQndCQCivQp9Ce0KDQlNCQ0KDQldCSINCS0JXQoNCQCivQp9Ce0KDQlNCQ0KDQntCSINCR0J7QoNCY0KHQm9CQ0JLQmtCQCivQp9Ce0KDQlNCQ0KDQntCSINCY0JLQkNCdCivQp9Ce0KDQlNCQ0KDQntCSINCh0JLQldCi0JjQodCb0JDQkgor0KfQntCg0JTQkNCg0J7QkiDQotCV0J7QlNCe0KAKK9Cn0J7QoNCU0JDQoNCe0JIg0KLQldCe0JTQntCgCivQp9Ce0KDQmNCLINCc0JDQoNCY0IjQkNCdCivQp9Ce0KDQndCV0J3QmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0J7QoNCd0JXQndCa0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0KfQntCg0J3QldCd0JrQmCDQiNCe0JLQkNCdCivQp9Ce0KDQndCV0J3QmtCYINCS0JvQkNCU0JAKK9Cn0J7QoNCd0Jgg0JzQmNCb0KPQndCQCivQp9Ce0KDQndCY0Igg0JzQmNCg0J7QodCb0JDQkgor0KfQntCg0KLQkNCdINCW0JjQktCa0J4KK9Cn0J7QoNCi0JDQnSDQkdCe0KjQmtCeCivQp9Ce0KDQotCQ0J0g0JzQmNCb0JjQptCQCivQp9Ce0KDQotCQ0J0g0J3QkNCU0JAKK9Cn0J7QoNCi0JDQnSDQoNCQ0JTQmNCS0J7QiAor0KfQntCg0KLQkNCd0J7QktCQ0KfQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Cn0J7QktCY0Isg0JTQkNCg0JrQngor0KfQntCS0JjQiyDQlNCQ0KDQmtCeCivQp9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCS0JjQiyDQk9Cj0KHQotCQ0JIKK9Cn0J7QktCY0Isg0JjQktCQ0J0KK9Cn0J7QktCY0Isg0IjQkNCd0JrQngor0KfQntCS0JjQiyDQiNCe0KHQmNCfCivQp9Ce0JLQmNCLINCa0J7QktCY0InQmtCQCivQp9Ce0JLQmNCLINCa0KDQodCi0J4KK9Cn0J7QktCY0Isg0JvQkNCU0JAKK9Cn0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0KfQntCS0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JLQmNCLINCc0JjQm9CV0JLQkAor0KfQntCS0JjQiyDQnNCe0JzQmNCgCivQp9Ce0JLQmNCLINCe0JvQk9CQCivQp9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cn0J7QktCY0Isg0KDQkNCU0J7QqAor0KfQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9Ce0JLQmNCLINCg0JDQotCa0J4KK9Cn0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cn0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQp9Ce0JLQmNCLINCS0JvQkNCU0JAKK9Cn0J7QktCY0Isg0JLQm9CQ0KLQmtCeCivQp9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0KfQntCS0JjQm9CeINCR0KDQkNCd0JjQodCb0JDQkgor0KfQntCS0KEg0IjQkNCo0JAKK9Cn0J7QktChINCf0JDQktCb0JUKK9Cn0J7QktChINCf0JDQktCb0JUKK9Cn0J7QktChINCS0JXQoNCY0KbQkAor0KfQoNCV0KLQndCY0Jot0KbQktCV0IjQkNCd0J7QktCY0Isg0J7Qm9CT0JAg0JTQmNCf0Jsg0JjQndCTCivQp9Cg0IrQldCa0JAg0JfQm9CQ0KLQmtCeCivQp9Cg0J3QntCI0JDQp9Ca0Jgg0JTQkNCd0JjQodCb0JDQkgor0KfQo9CnINCI0JXQm9CV0J3QkAor0KfQo9CnINCc0JDQoNCY0IjQkAor0KfQo9Cn0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0KfQo9Cn0JrQntCS0JjQiyDQp9CV0JTQngor0KfQo9Cn0JrQntCS0JjQiyDQltCV0InQmtCeCivQp9Cj0KfQmtCe0JLQmNCLINCC0KPQoNCeCivQp9Cj0KfQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQp9Cj0KfQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQo9Cn0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KfQo9Cn0JrQntCS0JjQiyDQodCQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cn0KPQp9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQo9Cn0JrQntCS0JjQiyDQodCf0JDQodCQCivQp9Cj0KfQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cn0KPQp9Cj0JvQmNChINCU0JjQnNCY0KLQoNCY0IjQlQor0KfQo9CR0KDQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cn0KPQkdCg0JjQm9CeINCQ0J3QmtCQCivQp9Cj0JHQoNCY0JvQniDQlNCg0JDQk9CQ0J0KK9Cn0KPQkdCg0JjQm9CeINCU0KPQqNCQ0J0KK9Cn0KPQkdCg0JjQm9CeINCI0J7QktCeCivQp9Cj0JHQoNCY0JvQniDQm9CQ0JfQngor0KfQo9CR0KDQmNCb0J4g0JzQmNCb0JDQnQor0KfQo9CR0KDQmNCb0J4g0J/QldCi0JDQoAor0KfQo9CR0KDQmNCb0J4g0KHQntCk0JjQiNCQCivQp9Cj0JHQoNCY0JvQniDQktCb0JDQlNCY0JzQmNCgCivQp9Cj0JHQoNCY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQp9Cj0JHQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KfQo9CU0JDQndCe0JIg0KfQldCU0JAKK9Cn0KPQlNCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9Cj0JTQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Cn0KPQlNCQ0J3QntCSINCc0JjQm9CY0KbQkAor0KfQo9CU0JjQiyDQmNCS0JDQnQor0KfQo9CU0JjQiyDQiNCe0JLQkNCd0JrQkAor0KfQo9CU0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQo9CU0JjQiyDQndCY0JrQntCb0JAKK9Cn0KPQlNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cn0KPQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQo9CU0J7QnNCY0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cn0KPQlNCe0JzQmNCg0J7QktCY0Isg0KPQoNCe0KgKK9Cn0KPQk9CQ0Ikg0JDQndCa0JAKK9Cn0KPQk9CQ0Ikg0JzQmNCg0IjQkNCd0JAKK9Cn0KPQk9CQ0Ikg0KHQktCV0KLQngor0KfQo9CT0JXQiSDQkNCd0JPQldCb0JjQndCQCivQp9Cj0KXQkCDQnNCQ0KDQmNCI0JAKK9Cn0KPQpdCQINCf0JDQktCb0JUKK9Cn0KPQpdCQINCh0JvQkNCS0JrQngor0KfQo9Cl0JAg0KHQotCV0JLQkNCdCivQp9Cj0KXQkC3QktCj0IjQmtCe0JIg0KDQo9CW0JAKK9Cn0KPQpdCQINCX0JvQkNCi0JAKK9Cn0KPQiNCQ0J3QntCSINCR0J7QoNCY0KEKK9Cn0KPQmtCQINCS0IjQldCa0J7QodCb0JDQkgor0KfQo9Ca0JDQidCY0Isg0J3QldCS0JXQndCa0JAKK9Cn0KPQmtCY0Isg0JHQntCg0JjQktCe0IjQlQor0KfQo9Ca0JjQiyDQnNCY0JvQmtCQCivQp9Cj0JrQmNCLINCc0JjQoNCh0JDQlNCQCivQp9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0KPQmtCY0Isg0JfQntCg0JDQnQor0KfQo9Ca0InQkNCoINCY0JLQkNCdCivQp9Cj0JrQidCV0Jog0KTQoNCQ0IrQkAor0KfQo9Ca0InQldCaINCc0JDQoNCT0JjQotCQCivQp9Cj0JrQidCV0JLQmNCLINCR0KPQlNCY0JzQmtCQCivQp9Cj0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cn0KPQmtCj0KDQkNCd0J7QktCY0Isg0JbQmNCa0JAKK9Cn0KPQmtCj0KDQkNCd0J7QktCY0Isg0JzQmNCI0JAKK9Cn0KPQm9CQ0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQp9Cj0JvQkNCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQp9Cj0JvQmNCLINCI0J7QktCQCivQp9Cj0JvQmNCaINCl0JDQiNCd0JXQoNCY0JoKK9Cn0KPQm9CY0J3QkCDQltCV0InQmtCeCivQp9Cj0InQkNCaINCU0KDQkNCT0JAKK9Cn0KPQidCQ0Jog0JjQktCQ0J0KK9Cn0KPQidCQ0Jog0JrQkNCg0JvQngor0KfQo9CJ0JDQmiDQnNCY0KDQmtCeCivQp9Cj0InQkNCaINCd0JDQlNCQCivQp9Cj0InQkNCiINCU0JDQndCVCivQp9Cj0InQkNCiINCI0JDQmtCe0JIKK9Cn0KPQidCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cn0KPQm9CeINCR0J7QltCQCivQp9Cj0JvQniDQnNCQ0KDQmtCeCivQp9Cj0JvQniDQnNCQ0KLQngor0KfQo9Cd0JrQniDQkdCg0JDQndCa0J4KK9Cn0KPQn9CQ0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cn0KPQn9CV0InQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cn0KPQn9CY0Isg0ILQntCg0ILQlQor0KfQo9Cf0JjQiyDQkdCe0JbQmNCU0JDQoAor0KfQo9Cf0JjQiyDQkdCe0IjQkNCdCivQp9Cj0J/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KfQo9Cf0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0KPQn9CY0Isg0JTQo9Co0JDQnQor0KfQo9Cf0JjQiyDQpdCg0JjQodCi0JjQpNCe0KAKK9Cn0KPQn9CY0Isg0IjQldCb0JXQndCQCivQp9Cj0J/QmNCLINCa0JDQiNCa0JAKK9Cn0KPQn9CY0Isg0JrQkNCI0JrQkAor0KfQo9Cf0JjQiyDQmtCQ0KLQmNCm0JAKK9Cn0KPQn9CY0Isg0JrQkNCi0JjQptCQCivQp9Cj0J/QmNCLINCa0J7QodCi0JDQlNCY0J3QmtCQCivQp9Cj0J/QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Cn0KPQn9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cn0KPQn9CY0Isg0JzQmNCb0JDQnQor0KfQo9Cf0JjQiyDQnNCY0JvQmNCm0JAKK9Cn0KPQn9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cn0KPQn9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cn0KPQn9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cn0KPQn9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0KPQn9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KfQo9Cf0JjQiyDQntCb0JPQkAor0KfQo9Cf0JjQiyDQoNCQ0JTQmNCd0JrQkAor0KfQo9Cf0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9Cj0J/QmNCLINCh0J/QntCc0JXQndCa0JAKK9Cn0KPQn9CY0Isg0KHQotCV0JLQkNCdCivQp9Cj0J/QmNCLINCh0KLQldCS0JDQnQor0KfQo9Cf0JjQiyDQodCi0J7QiNCQ0J0KK9Cn0KPQn9CY0Isg0KPQoNCe0KgKK9Cn0KPQn9CY0Isg0JfQntCg0JDQnQor0KfQo9Cg0KfQmNCLINCU0KPQqNCQ0J0KK9Cn0KPQoNCn0JjQiyDQmNCb0JjQiNCQCivQp9Cj0KDQp9CY0Isg0JvQkNCX0JDQoAor0KfQo9Cg0KfQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQp9Cj0KDQk9CQ0J3QntCSINCV0JzQmNCbCivQp9Cj0KDQmNCLINCW0JDQoNCa0J4KK9Cn0KPQoNCY0Isg0ILQntCg0ILQlQor0KfQo9Cg0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0KfQo9Cg0JjQiyDQlNCj0KjQkNCd0JrQkAor0KfQo9Cg0JjQiyDQnNCY0JvQldCd0JAKK9Cn0KPQoNCY0Isg0JzQmNCb0J7QqAor0KfQo9Cg0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQp9Cj0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0KfQo9Cg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Cj0KDQmNCLINCS0JDQodCQCivQp9Cj0KDQmNCLINCS0JXQm9CY0J3QmtCQCivQp9Cj0KDQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cn0KPQoNCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KfQo9Cg0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQp9Cj0KDQntCS0JjQiyDQktCj0JrQodCQ0J0KK9Cn0KPQoNCj0KjQmtCYINCT0JDQktCg0JAKK9Cn0KPQoNCj0KjQmtCYINCc0JjQptCQCivQp9Cj0KHQotCe0JLQmNCLINCQ0KDQmNCkCivQp9Cj0KLQo9Cg0JAg0JzQkNCg0JrQngor0KfQo9Ci0KPQoNCY0Isg0IjQldCg0J7QndCY0JwKK9Cn0KPQotCj0KDQmNCb0J4g0KfQldCU0J7QnNCY0KAKK9Cn0KPQotCj0KDQmNCb0J4g0JHQntCW0JAKK9Cn0KPQotCj0KDQmNCb0J4g0JzQmNCb0JjQktCe0IjQlQor0KfQo9Ci0KPQoNCY0JvQniDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0KfQo9Ci0KPQoNCY0JvQntCSINCc0JDQoNCY0IjQkAor0KfQo9Ci0KPQoNCY0JvQntCSINCc0JjQm9Ce0KgKK9Cn0KPQotCj0KDQmNCb0J7QkiDQnNCY0JvQntCoCivQp9Cj0KLQo9Cg0JjQm9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0KfQo9Ci0KPQoNCY0JvQntCSINCS0JXQm9CY0J3QmtCQCivQp9Cj0KLQo9Cg0JjQm9Ce0JIg0JLQo9CI0JjQptCQCivQp9Cj0JLQkNCb0J4g0InQo9CR0JjQptCQCivQp9Cj0JLQkNCg0JTQmNCLINCQ0J3QotCj0J0KK9Cn0JLQntCa0JjQiyDQnNCQ0KDQmtCeCivQp9CS0J7QmtCY0Isg0KDQkNCi0JrQngor0KfQktCe0KDQmNCLINCU0KPQqNCQ0J0KK9Cn0JLQntCg0JjQiyDQnNCY0JvQntCI0JUKK9Cn0JLQntCg0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQp9CS0J7QoNCa0J7QkiDQl9CU0KDQkNCS0JrQngor0KfQktCe0KDQmtCe0JIg0JfQm9CQ0KLQkNCdCivQp9CS0J7QoNCeLdCC0KPQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Cn0JLQntCg0J4g0JTQntCR0KDQntCh0JvQkNCSCivQp9CS0J7QoNCe0JLQmNCLINCI0JXQm9CV0J3QmtCQCivQp9CS0J7QoNCe0JLQmNCLINCJ0KPQkdCeCivQp9CS0J7QoNCe0JLQmNCLINCg0JDQotCa0J4KK9Cn0JLQntCg0J7QktCY0Isg0JLQo9CI0JjQptCQCivQqNCL0JXQmtCY0Isg0JHQo9CU0JjQnNCY0KAKK9Co0IvQldCa0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQqNCL0JXQmtCY0Isg0JrQntCh0JAKK9Co0IvQldCa0JjQiyDQnNCY0JvQkNCd0JrQkAor0KjQi9CV0JrQmNCLINCc0JjQm9CY0IsKK9Co0IvQldCa0JjQiyDQnNCY0JvQmNCm0JAKK9Co0IvQldCa0JjQiyDQnNCY0J7QnNCY0KAKK9Co0IvQldCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQqNCL0JXQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0KjQi9CV0JrQmNCLINCS0KPQmtCeCivQqNCL0JXQn9CQ0J3Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Co0IvQldCf0JDQndCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JLQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Co0IvQldCf0JDQndCe0JLQmNCLINCg0JDQqNCa0J4KK9Co0IvQldCf0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0KjQi9CV0J/QkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0KjQi9CV0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQqNCL0JXQoNCR0JDQi9CV0JIg0JPQm9CY0JPQntCg0JjQiNCVCivQqNCL0JXQktCn0JjQmiDQn9CQ0JLQm9CVCivQqNCL0JjQkdCQ0J0g0JzQkNCg0JjQndCQCivQqNCL0J7Qn9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Co0IvQntCf0JjQiyDQodCi0JDQndCY0JzQmNCgCivQqNCL0J7Qn9Cj0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQqNCL0KPQoNCY0KYg0IjQntCh0JjQnwor0KjQkNCo0JjQiyDQltCY0JLQmtCeCivQqNCQ0KjQmNCLINCC0J7QoNCC0JUKK9Co0JDQqNCY0Isg0JTQo9Co0JDQnQor0KjQkNCo0JjQiyDQnNCY0JvQkNCdCivQqNCQ0KjQmNCLINCc0JjQm9CQ0J0KK9Co0JDQqNCY0Isg0JzQmNCb0J7QqAor0KjQkNCo0JjQiyDQnNCY0KDQmtCeCivQqNCQ0KjQmNCLINCd0JXQktCV0J3QmtCQCivQqNCQ0KjQmNCLINCf0JXQotCQ0KAKK9Co0JDQqNCY0Isg0KHQkNCS0J4KK9Co0JDQqNCY0Isg0KHQotCV0JLQkNCdCivQqNCQ0KjQmNCLINCX0J7QoNCQ0J0KK9Co0JDQqNCY0J0g0JTQkNCd0JjQptCQCivQqNCQ0KjQmNCdINCg0JDQlNCe0JzQmNCgCivQqNCQ0KjQmNCd0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQqNCQ0KjQmNCd0JDQp9Ca0Jgg0KHQntCK0JAKK9Co0JDQqNCY0J3QkNCn0JrQmCDQktCQ0KHQmNCb0JjQiNCVCivQqNCQ0KjQidCY0J0g0JvQkNCX0JDQoAor0KjQkNCo0J7QktCY0Isg0KLQoNCY0KTQmtCeCivQqNCQ0JHQkNCd0Jgg0J3QkNCX0JjQnAor0KjQkNCR0JDQndCe0JLQmNCLINCQ0JHQlNCj0KDQkNCl0JzQkNCdCivQqNCQ0JHQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0KjQkNCR0JXQpiDQlNCg0JDQk9CY0KbQkAor0KjQkNCR0JjQiyDQgtCj0KDQngor0KjQkNCR0JjQiyDQpdCj0KHQldCY0J0KK9Co0JDQkdCY0Isg0J/QkNCS0JvQlQor0KjQkNCR0JvQmCDQnNCQ0KDQotCe0J0KK9Co0JDQkdCb0Jgg0JzQmNCl0JDQiNCb0J4KK9Co0JDQkdCe0JLQmNCLINCc0JXQpdCc0JXQlNCQ0JvQmNCI0JAKK9Co0JDQlNCVINCI0JXQm9CV0J3QkAor0KjQkNCk0JDQoNCY0Jog0InQmNCJ0JDQndCQCivQqNCQ0KTQoNCQ0Iog0JDQndCU0KDQmNCI0JAKK9Co0JDQpNCg0JDQiiDQlNCV0JbQlQor0KjQkNCk0KDQkNCKINCk0KDQkNCK0JAKK9Co0JDQpNCg0JDQiiDQm9CQ0KHQm9CeCivQqNCQ0KTQoNCQ0Iog0JvQkNCh0JvQngor0KjQkNCk0KDQkNCKINCf0JjQoNCe0KjQmtCQCivQqNCQ0KTQoNCQ0Iog0KHQotCV0JLQkNCdCivQqNCQ0KTQoNCQ0Iog0KLQldCe0JTQntCg0JAKK9Co0JDQk9Cj0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCQ0JPQo9Cd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Co0JDQmNCdINCQ0J3QlNCg0JjQiNCQCivQqNCQ0JjQnSDQnNCY0JvQldCS0JAKK9Co0JDQmNCdINCX0JDQk9Ce0KDQmtCQCivQqNCQ0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Co0JDQmNCd0J7QktCY0Isg0JzQkNCg0JjQndCQCivQqNCQ0IjQkNCi0J7QktCY0Isg0IjQldCb0JjQptCQCivQqNCQ0IjQkNCi0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Co0JDQiNCR0JXQoCDQlNCQ0J3QmNCm0JAKK9Co0JDQiNCR0JXQoCDQnNCY0JvQldCd0JrQngor0KjQkNCI0JTQmNCaINCk0KDQkNCd0KbQmNCo0JrQkAor0KjQkNCI0KTQkNCgINCf0JDQktCb0JUKK9Co0JDQiNCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Co0JDQiNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Co0JDQiNCY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCQ0IjQmNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Co0JDQiNCY0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0KjQkNCI0JjQndCe0JLQmNCLINCh0JjQlNCQCivQqNCQ0IjQnSDQlNCj0KjQkNCdCivQqNCQ0IjQndCR0JXQoNCT0JXQoCDQiNCe0JLQkNCdCivQqNCQ0IjQndCR0JXQoNCT0JXQoCDQm9CY0JvQmAor0KjQkNCI0J3QntCSINCI0J7QktCQ0J0KK9Co0JDQiNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Co0JDQiNCd0J7QkiDQn9CV0KLQkNCgCivQqNCQ0IjQndCe0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQqNCQ0IjQotCYINCV0KLQldCb0JrQkAor0KjQkNCI0KLQmCDQk9CY0JfQldCb0JAKK9Co0JDQiNCi0Jgg0JrQkNCi0JjQptCQCivQqNCQ0IjQotCYINCc0JDQoNCY0IjQkAor0KjQkNCI0KLQntCoINCC0J7QoNCC0JUKK9Co0JDQiNCi0J7QqCDQgtCj0KDQkAor0KjQkNCI0KLQntCoINCJ0KPQkdCY0KjQkAor0KjQkNCI0KLQntCoINCd0JjQmtCe0JvQkAor0KjQkNCI0KLQntCoINCh0JjQnNCQCivQqNCQ0IjQotCe0Kgg0KHQmNCc0JAKK9Co0JDQmtCY0Isg0JbQldCJ0JrQngor0KjQkNCa0JjQiyDQgtCe0KDQgtCVCivQqNCQ0JrQmNCLINCY0JvQmNCI0JAKK9Co0JDQmtCY0Isg0JjQm9CY0IjQkAor0KjQkNCa0JjQiyDQmNCb0JjQiNCQCivQqNCQ0JrQmNCLINCI0JDQitCQCivQqNCQ0JrQmNCLINCa0JDQotCQCivQqNCQ0JrQmNCLINCc0JDQndCVCivQqNCQ0JrQmNCLINCc0JjQm9Cj0KLQmNCdCivQqNCQ0JrQmNCLINCg0JDQlNCVCivQqNCQ0JrQmNCLINCX0J7QoNCa0JAKK9Co0JDQmtCe0KLQkCDQlNCj0KjQkNCdCivQqNCQ0JrQntCi0JAg0JrQntCI0J4KK9Co0JDQmtCe0KLQkCDQnNCY0JvQkNCdCivQqNCQ0JrQntCi0JAg0JzQmNCb0J7QoNCQ0JQKK9Co0JDQmtCe0KLQkCDQodCY0JzQldCe0J0KK9Co0JDQmtCe0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQqNCQ0JrQntCi0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQkNCa0KMg0JzQldCl0JzQldCUCivQqNCQ0JvQkNCR0JDQm9CY0IjQkCDQlNCg0JDQk9Ce0JzQmNCgCivQqNCQ0JvQkNCR0JDQm9CY0IjQkCDQktCQ0KHQngor0KjQkNCb0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQqNCQ0JvQkNCc0J7QnSDQqNCQ0J3QlNCe0KAKK9Co0JDQm9CQ0JzQntCdINCQ0J3QlNCg0JjQiNCQCivQqNCQ0JvQkNCc0J7QnSDQiNCe0KHQmNCfCivQqNCQ0JvQkNCc0J7QnSDQiNCe0KHQmNCfCivQqNCQ0JvQkNCc0J7QnSDQnNCY0KjQkAor0KjQkNCb0JDQnNCe0J0g0JzQmNCl0JDQiNCb0J4KK9Co0JDQm9CQ0JzQntCdINCc0JjQpdCQ0IjQm9CeCivQqNCQ0JvQkNCd0JrQmCDQiNCQ0J3QntCoCivQqNCQ0JvQkNCd0JrQmCDQiNCQ0J3QntCoCivQqNCQ0JvQkdCe0KIg0JfQo9CX0JAKK9Co0JDQm9CV0KAg0JLQldCg0JAKK9Co0JDQm9CT0J4g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Co0JDQm9CY0J/Qo9Cg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Co0JDQm9CY0J/Qo9Cg0J7QktCY0Isg0KHQm9CQ0JLQmNCo0JAKK9Co0JDQnNCQ0KLQmNCLINCd0JXQnNCQ0IrQkAor0KjQkNCc0JXQpiDQnNCY0JvQmNCm0JAKK9Co0JDQndCU0J7QmyDQkNCi0JjQm9CQCivQqNCQ0J3QlNCe0Jsg0JDQotCY0JvQkAor0KjQkNCd0JTQntCbINCY0KjQotCS0JDQnQor0KjQkNCd0JTQntCbINCa0JDQotCY0KbQkAor0KjQkNCd0JTQntCbINCc0JDQotCY0IjQkAor0KjQkNCd0JTQntCbINCc0JjQpdCQ0IjQm9CeCivQqNCQ0J3QlNCe0KAg0JjQm9Ce0J3QkAor0KjQkNCd0JTQntCgINCI0J7QodCY0J8KK9Co0JDQndCU0J7QoCDQm9CQ0JTQmNCh0JvQkNCSCivQqNCQ0J3QlNCe0KAg0JzQkNCg0JjQiNCQCivQqNCQ0J3QlNCe0KAg0KLQmNCR0J7QoAor0KjQkNCd0JTQntCg0Jgg0KjQkNCg0JjQmtCQCivQqNCQ0IrQmNCLINCc0JjQm9CQ0JTQmNCdCivQqNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCQ0J3QotCQINCo0JDQndCU0J7QoAor0KjQkNCd0KLQkCDQkNCc0JDQm9CY0IjQkAor0KjQkNCd0KLQkCDQkdCV0JvQkAor0KjQkNCd0KLQkCDQlNCj0KjQkNCd0JrQkAor0KjQkNCd0KLQkCDQpNCV0KDQldCd0KYKK9Co0JDQndCi0JAg0JjQqNCi0JLQkNCdCivQqNCQ0J3QotCQINCY0JvQntCd0JrQkAor0KjQkNCd0KLQkCDQmNCc0KDQlQor0KjQkNCd0KLQkCDQiNCe0KHQmNCfCivQqNCQ0J3QotCQINCb0JDQodCb0J4KK9Co0JDQndCi0JAg0JzQmNCg0J7QodCb0JDQkgor0KjQkNCd0KLQkCDQn9CQ0JsKK9Co0JDQndCi0JAg0KHQmNCc0JAKK9Co0JDQndCi0JAg0KHQm9CQ0JLQmtCeCivQqNCQ0J3QotCQINCh0J7QpNCY0IjQkAor0KjQkNCd0KLQkCDQodCi0JXQktCQ0J0KK9Co0JDQndCi0JAg0JLQmNCd0JrQngor0KjQkNCd0KLQkCDQktCb0JDQlNCY0JzQmNCgCivQqNCQ0J3QotCQ0Jog0IjQntCh0JjQnwor0KjQkNCd0KLQkNCaINCa0JDQoNCb0J4KK9Co0JDQndCi0JDQm9CQ0JEg0KHQntCk0JjQiNCQCivQqNCQ0J3QotCV0Jog0JbQldCJ0JrQngor0KjQkNCd0KLQldCaINCX0JTQldCd0JrQkAor0KjQkNCf0Jgg0J/QmNCg0J7QqNCa0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCQ0J/QmNCLINCd0JjQmtCe0JvQkAor0KjQkNCf0JjQndCQINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JDQn9Ce0IrQkCDQiNCe0JLQkNCdCivQqNCQ0J/QntCK0JAg0JzQkNCg0JrQngor0KjQkNCf0J7QitCQ0KYg0JbQkNCg0JrQngor0KjQkNCf0J7QitCQ0KYg0JbQkNCg0JrQngor0KjQkNCf0J7QitCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Co0JDQn9Ce0IrQkNCmINCI0JXQm9Ca0JAg0J/QoNCe0KTQldCh0J7QoAor0KjQkNCf0J7QitCQ0KYg0KDQkNCU0JAKK9Co0JDQn9Ce0IrQkNCmINCh0KLQldCS0JDQnQor0KjQkNCf0J7QitCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0KjQkNCf0KPQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0KjQkNCg0KfQkNCd0KHQmtCYINCI0KPQm9Ca0JAKK9Co0JDQoNCn0JDQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9Co0JDQoNCn0JDQndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQqNCQ0KDQp9CV0JIg0JDQndCi0J7QndCY0IjQkAor0KjQkNCg0KfQldCSINCI0JXQm9CV0J3QkAor0KjQkNCg0KfQldCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0KjQkNCg0KfQldCSINCd0JjQmtCe0JvQkAor0KjQkNCg0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Co0JDQoNCn0JXQktCY0Isg0JbQkNCg0JrQngor0KjQkNCg0KfQldCS0JjQiyDQltCV0JvQmNCc0JjQoAor0KjQkNCg0KfQldCS0JjQiyDQkNCd0JjQptCQCivQqNCQ0KDQp9CV0JLQmNCLINCR0KDQkNCi0JjQnNCY0KAKK9Co0JDQoNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0KjQkNCg0KfQldCS0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQqNCQ0KDQp9CV0JLQmNCLINCY0JvQmtCQCivQqNCQ0KDQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0KjQkNCg0KfQldCS0JjQiyDQnNCQ0KDQk9CY0KLQkCDQlNCgCivQqNCQ0KDQp9CV0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQkNCg0KfQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KjQkNCg0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQqNCQ0KDQp9CV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQqNCQ0KDQp9CV0JLQmNCLINCg0JDQiNCa0J4KK9Co0JDQoNCn0JXQktCY0Isg0JLQmNCU0J7QiNCVCivQqNCQ0KDQp9CV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JDQoNCo0JDQndCh0JrQmCDQnNCQ0KDQmNCd0JrQngor0KjQkNCg0KjQkNCd0KHQmtCYINCc0JjQm9CQ0J0KK9Co0JDQoNCQINCY0JzQoNCVCivQqNCQ0KDQkCDQmNCc0KDQlQor0KjQkNCg0JDQpiDQgtCe0KDQgtCVCivQqNCQ0KDQkNCmINCR0JjQidCQ0J3QkAor0KjQkNCg0JDQpiDQkdCe0KjQmtCeCivQqNCQ0KDQkNCmINCU0KPQqNCQ0J0KK9Co0JDQoNCQ0KYg0JTQo9Co0JDQnQor0KjQkNCg0JDQpiDQnNCY0JvQkNCdCivQqNCQ0KDQkNCmINCc0JjQm9CVCivQqNCQ0KDQkNCmINCc0JjQm9CY0KbQkAor0KjQkNCg0JDQpiDQnNCY0J7QlNCg0JDQkwor0KjQkNCg0JDQpiDQoNCQ0JTQntCI0JUKK9Co0JDQoNCQ0KYg0KDQkNCU0J7QnNCY0KAKK9Co0JDQoNCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Co0JDQoNCQ0KYg0KDQo9CW0JjQptCQCivQqNCQ0KDQkNCmINCh0KLQldCS0JAKK9Co0JDQoNCQ0KYg0KHQktCV0KLQntCX0JDQoAor0KjQkNCg0JDQndCU0Jgg0KjQkNCd0JTQntCgCivQqNCQ0KDQkNCd0J7QktCY0Isg0JDQndCY0KLQkAor0KjQkNCg0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQqNCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0g0JTQoCDQm9CV0JrQkNCgCivQqNCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KjQkNCg0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQqNCQ0KDQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KjQkNCg0JXQndCQ0KYg0JHQntCW0JjQlNCQ0KAKK9Co0JDQoNCV0J3QkNCmINCc0JDQoNCa0J4KK9Co0JDQoNCV0J3QkNCmINCg0J7Ql9CY0J3QkAor0KjQkNCg0JXQndCQ0KYg0JLQmNCU0JDQmgor0KjQkNCg0JXQndCQ0KYg0JLQntCI0JjQodCb0JDQkgor0KjQkNCg0JPQkNCnINCR0KDQkNCd0JrQngor0KjQkNCg0JPQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCQ0KDQk9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KjQkNCg0JPQmNCLINCX0JvQkNCi0JjQptCQCivQqNCQ0KDQk9CY0J0g0JbQkNCg0JrQngor0KjQkNCg0JPQmNCdINCc0JDQoNCY0IjQkAor0KjQkNCg0Jgg0JzQkNCg0JjQiNCQCivQqNCQ0KDQmCDQodCi0JXQktCQ0J0KK9Co0JDQoNCY0Isg0IjQntCh0JjQnwor0KjQkNCg0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQqNCQ0KDQmNCLINCa0J7QodCi0JAKK9Co0JDQoNCY0Isg0InQo9CR0JjQptCQCivQqNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0KjQkNCg0JjQiyDQnNCQ0KLQngor0KjQkNCg0JjQiyDQndCV0J3QkNCUCivQqNCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Co0JDQoNCY0Isg0KHQntCk0JjQiNCQCivQqNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0KjQkNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSINCc0KAKK9Co0JDQoNCY0Isg0JfQktCV0JfQlNCQ0J3QkAor0KjQkNCg0JjQmiDQkNCd0JAKK9Co0JDQoNCY0Jog0JDQndCU0KDQmNCI0JAKK9Co0JDQoNCY0Jog0IjQntCS0JDQnQor0KjQkNCg0JjQmiDQmtCQ0KLQmNCm0JAKK9Co0JDQoNCY0Jog0InQo9CR0JjQptCQCivQqNCQ0KDQmNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JDQoNCY0Jog0KHQotCV0JLQkNCdCivQqNCQ0KDQmNCaLdCS0JjQlNCY0Isg0J3QkNCU0JAKK9Co0JDQoNCY0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KjQkNCg0JrQkNCU0Jgg0JLQldCg0J7QndCY0JrQkAor0KjQkNCg0JrQkNCKINCQ0J3QotCe0J0KK9Co0JDQoNCa0JDQiiDQpNCV0KDQldCd0KYKK9Co0JDQoNCa0JDQiiDQpNCg0JDQitCQCivQqNCQ0KDQmtCQ0Iog0IjQkNCd0J7QqAor0KjQkNCg0JrQkNCK0JDQpiDQpNCV0KDQldCd0KYKK9Co0JDQoNCa0JXQl9CYLdCf0JXQotCg0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KjQkNCg0JrQmNCLINCh0KDQgtCQ0J0KK9Co0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQqNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Co0JDQoNCK0JDQmCDQkNCd0JrQmNCm0JAKK9Co0JDQoNCK0JDQmCDQnNCY0JrQm9Ce0KgKK9Co0JDQoNCK0JDQmCDQn9CQ0JsKK9Co0JDQoNCeINCI0J7QktCQ0J0KK9Co0JDQoNCeINCd0JDQlNCQCivQqNCQ0KDQntCo0Jgg0JLQkNCb0JXQoNCY0IjQkAor0KjQkNCg0J7QqNCa0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQqNCQ0KDQntCYLdCh0JDQkdCeINCS0JXQoNCQCivQqNCQ0KDQntCS0JjQiyDQgtCj0KDQngor0KjQkNCg0J7QktCY0Isg0JzQmNCg0JrQngor0KjQkNCg0J7QktCY0Isg0J/QldCi0JDQoAor0KjQkNCg0KMg0JTQo9Co0JjQptCQCivQqNCQ0KDQktCQ0KDQmCDQqNCQ0J3QlNCe0KAKK9Co0JDQoNCS0JDQoNCYINCa0JDQoNCe0IkKK9Co0JDQoNCS0JDQoNCYINCc0JDQoNCi0JAKK9Co0JDQoNCS0JDQoNCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Co0JDQoNCS0JDQoNCYINCS0JDQm9CV0KDQmNCI0JAKK9Co0JDQodCY0JLQkNCgINCQ0KXQnNCV0JQKK9Co0JDQotCQ0KDQkCDQnNCY0JvQkNCdCivQqNCQ0KLQntCg0JAg0KHQotCe0IjQkNCdCivQqNCQ0KLQoNCY0Isg0JDQndCQCivQqNCQ0KLQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCQ0KPQm9CQINCT0J7QoNCQ0J0KK9Co0JDQo9Cb0JAg0KDQkNCU0J7QktCQ0J0KK9Co0JDQo9Cb0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0JDQktCV0JvQmNCdINCo0JDQndCU0J7QoAor0KjQkNCS0JXQm9CY0J0g0IjQntCh0JjQnwor0KjQkNCS0JXQm9CY0J0g0IjQntCS0JDQnQor0KjQkNCS0JXQm9CY0J0g0IjQo9Cb0JjQiNCQCivQqNCQ0JLQldCg0JTQmNCI0JAg0J3QmNCa0J7Qm9CQCivQqNCQ0JLQmNCI0JAg0JTQo9Co0JDQnQor0KjQkNCS0JjQiNCQINCc0JjQm9CVCivQqNCQ0JLQmNCI0JAg0JzQmNCb0J7QoNCQ0JQKK9Co0JDQktCY0IjQkCDQn9CV0KLQkNCgCivQqNCQ0JLQmNCI0JAg0KDQkNCU0JUKK9Co0JDQktCg0InQo9CT0JAg0JzQmNCb0JDQnQor0KjQldCn0JjQiyDQkNCb0JjQiNCQCivQqNCV0KfQmNCLINCI0KPQm9Ca0JAKK9Co0JXQqNCQINCh0JvQkNCS0JrQngor0KjQldCo0JXQidCQINCR0KDQkNCd0JjQnNCY0KAKK9Co0JXQqNCV0InQkCDQnNCQ0KDQmNCI0JDQnQor0KjQldCo0JXQoNCY0J3QkNCmINCC0J7QoNCC0JUKK9Co0JXQqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Co0JXQqNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQqNCV0KjQldCS0JjQiyDQm9CV0J7QndCQCivQqNCV0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Co0JXQqNCV0JLQmNCLINCc0JDQoNCQCivQqNCV0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KjQldCo0JXQktCY0Isg0KHQotCV0JLQkNCdCivQqNCV0KjQmNCLINCW0JjQktCe0KLQkCDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQqNCY0Isg0JDQo9Cg0JXQm9CY0IjQkAor0KjQldCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0KjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JXQqNCY0Isg0JLQldCg0JAKK9Co0JXQqNCY0Isg0JLQmNCU0JAKK9Co0JXQqNCa0JDQoCDQndCQ0JTQkAor0KjQldCo0JvQmNCI0JAg0KfQldCU0JAKK9Co0JXQqNCb0JjQiNCQINCR0KDQkNCd0JrQngor0KjQldCo0JvQmNCI0JAg0JTQoNCQ0JPQkNCdCivQqNCV0KjQm9CY0IjQkCDQlNCj0KjQkNCdCivQqNCV0KjQo9CcINCR0KDQkNCd0JrQngor0KjQldCo0KPQnCDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0KjQo9CcINCY0JvQmNCI0JAKK9Co0JXQqNCj0Jwg0JzQmNCl0JDQiNCb0J4KK9Co0JXQqNCj0Jwg0JzQmNCb0JDQnQor0KjQldCo0KPQnCDQnNCY0JvQkNCdCivQqNCV0KjQo9CcINCc0JjQm9CV0J3QmtCeCivQqNCV0KjQo9CcINCh0JDQktCQCivQqNCV0KjQo9CcINCh0JvQkNCS0JjQptCQCivQqNCV0KjQo9CcINCi0J7QnNCQCivQqNCV0IvQldCg0J7QkiDQkNCd0ILQldCb0JjQiNCQCivQqNCV0IvQldCg0J7QkiDQkdCY0InQkNCd0JAKK9Co0JXQi9CV0KDQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0KjQldCL0JXQoNCe0JIg0JTQoNCV0J3QmtCQCivQqNCV0IvQldCg0J7QkiDQlNCj0KjQkNCdCivQqNCV0IvQldCg0J7QkiDQldCc0JjQmwor0KjQldCL0JXQoNCe0JIg0JjQlNCQCivQqNCV0IvQldCg0J7QkiDQmNCS0JDQnQor0KjQldCL0JXQoNCe0JIg0IjQntCS0JDQnQor0KjQldCL0JXQoNCe0JIg0JrQkNCI0JAKK9Co0JXQi9CV0KDQntCSINCc0JDQotCQCivQqNCV0IvQldCg0J7QkiDQnNCY0JvQkNCdCivQqNCV0IvQldCg0J7QkiDQn9CQ0JLQm9CVCivQqNCV0IvQldCg0J7QkiDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0KjQldCL0JXQoNCe0JIg0J/QldCi0JDQoAor0KjQldCL0JXQoNCe0JIg0J/QoNCe0JTQkNCdCivQqNCV0IvQldCg0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQqNCV0IvQldCg0J7QkiDQodCQ0JLQkAor0KjQldCL0JXQoNCe0JIg0KHQmNCd0JjQqNCQCivQqNCV0IvQldCg0J7QkiDQodCS0JXQotCb0JDQndCQCivQqNCV0IvQldCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQqNCV0IvQldCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQqNCV0IvQldCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQqNCV0IvQldCg0J7QkiDQl9Cb0JDQotCe0IjQlQor0KjQldCL0JXQoNCe0JIg0JfQm9CQ0KLQntCI0JUKK9Co0JXQkdCV0KjQi9CV0J0g0JjQnNCg0JUKK9Co0JXQkdCV0KjQi9CV0J0g0IjQntCW0JXQpAor0KjQldCR0JXQlNCY0J3QmCDQndCV0JLQl9CQ0JQKK9Co0JXQkdCV0Jog0ILQo9Cb0JAKK9Co0JXQkdCV0Jog0JDQndCj0KjQmtCQCivQqNCV0JHQldCaINCY0JLQkNCdCivQqNCV0JHQldCaINCI0J7QodCY0J8KK9Co0JXQkdCV0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQqNCV0JHQldCXINCU0KDQkNCT0JDQnQor0KjQldCR0JXQlyDQlNCj0KjQkNCdCivQqNCV0JHQldCXINCb0JDQl9CeCivQqNCV0JHQldCXINCg0JDQlNCe0IjQmtCQCivQqNCV0JHQldCXINCh0JjQnNCeCivQqNCV0JHQldCXINCh0KLQldCS0JDQnQor0KjQldCR0JXQlyDQodCi0JXQktCeCivQqNCV0JHQldCXINCh0KLQldCS0J4KK9Co0JXQkdCYINCI0JXQm9CY0KbQkAor0KjQldCk0KfQmNCLINCV0JzQmNCbCivQqNCV0KTQp9CY0Isg0JzQmNCg0JrQngor0KjQldCk0JXQoCDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KjQldCk0JXQoCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KjQldCk0JXQoCDQiNCj0JvQmNCI0JUg0JTQoAor0KjQldCk0JXQoCDQmtCQ0KLQkNCg0JjQndCQCivQqNCV0KTQldCgINCa0JvQkNCg0JAKK9Co0JXQpNCV0KAg0JzQmNCe0JTQoNCQ0JMKK9Co0JXQpNCV0KAg0J/QldCi0JDQoAor0KjQldCk0JXQoCDQoNCQ0JTQntCI0JUKK9Co0JXQpNCV0KAg0KHQm9CQ0JLQmtCeCivQqNCV0JPQldCmINCV0JTQo9CQ0KDQlAor0KjQldCT0JjQndCQINCd0JjQmtCe0JvQkAor0KjQldCT0J4g0J3QmNCa0J7Qm9CQCivQqNCV0JPQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0JXQk9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Co0JXQk9Cg0KIg0KfQldCU0J7QnNCY0KAKK9Co0JXQk9Cg0KIg0KfQldCU0J7QnNCY0KAKK9Co0JXQk9Cg0KIg0IjQntCS0J4KK9Co0JXQk9Cg0KIg0IjQntCS0J4KK9Co0JXQk9Cg0KIg0JzQkNCi0J4KK9Co0JXQk9Cg0KIg0JzQm9CQ0JTQldCdCivQqNCV0JPQoNCiINCd0JDQlNCQCivQqNCV0JPQoNCiINCf0JXQotCQ0KAKK9Co0JXQk9Cg0KIg0JLQntCI0JjQodCb0JDQkgor0KjQldCT0KPQidCV0JIg0JTQo9Co0JDQnQor0KjQldCT0KPQidCV0JIg0JTQo9Co0JDQnQor0KjQldCT0KPQidCV0JIg0JTQo9Co0JDQnQor0KjQldCT0KPQidCV0JIg0JPQoNCj0IjQkAor0KjQldCT0KPQidCV0JIg0IjQntCS0JDQnQor0KjQldCT0KPQidCV0JIg0JzQkNCg0JrQngor0KjQldCT0KPQidCV0JIg0JzQmNCa0JAKK9Co0JXQk9Cj0InQldCSINCc0JjQm9CV0J3QmtCeCivQqNCV0JPQo9CJ0JXQkiDQn9CQ0IjQkAor0KjQldCT0KPQidCV0JIg0J/QldCi0JDQoAor0KjQldCT0KPQidCV0JIg0KDQkNCU0J7QodCb0JDQkgor0KjQldCT0KPQidCV0JIg0KDQo9CW0JjQptCQCivQqNCV0JPQo9CJ0JXQkiDQodCb0JDQktCa0J4KK9Co0JXQk9Cj0InQldCSINCh0J3QldCW0JDQndCQCivQqNCV0JPQo9CJ0JXQkiDQl9CQ0JPQntCg0JrQkAor0KjQldCT0KPQidCV0JIg0JfQntCg0JjQptCQCivQqNCV0KXQmNCLINCJ0KPQkdCY0KbQkAor0KjQldCl0JjQiyDQnNCY0KDQodCQCivQqNCV0KXQmNCLINCh0JvQkNCS0JjQptCQCivQqNCV0KXQntCS0JjQiyDQoNCQ0JzQmNCXCivQqNCV0IjQnNCV0KjQmCDQodCi0JXQktCQ0J0KK9Co0JXQiNCf0JXQqCDQqNCQ0KDQm9Ce0KLQkAor0KjQldCI0J/QldCoINCk0JXQlNCe0KAKK9Co0JXQiNCf0JXQqCDQpNCV0JTQntCgCivQqNCV0IjQn9CV0Kgg0JPQkNCb0JjQndCQCivQqNCV0IjQn9CV0Kgg0JjQm9Ce0J3QkAor0KjQldCaINCI0KPQm9CY0IjQkNCdCivQqNCV0JrQkNCg0JjQiyDQnNCY0JvQntCh0JDQkgor0KjQldCa0JDQoNCY0Isg0J3QkNCU0JAKK9Co0JXQmtCV0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0JXQmtCj0JvQkNCg0JDQpiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KjQldCa0KPQm9CQ0KDQkNCmINCR0KDQkNCd0JjQodCb0JDQkiDQlNCY0J/QmyDQntCV0KYKK9Co0JXQmtCj0JvQkNCg0JDQpiDQlNCj0KjQkNCdCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0J/QoNCV0JTQoNCQ0JMKK9Co0JXQmtCj0JvQkNCg0JDQpiDQodCQ0JLQmtCQCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KjQldCbINCc0JDQoNCT0JjQotCQCivQqNCV0JvQkSDQm9CQ0KHQm9CeCivQqNCV0JvQldCh0KIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Co0JXQidCV0Jwg0IjQo9Cb0JjQiNCQ0J3QkAor0KjQldCJ0JXQnCDQmtCQ0KDQntCJINCU0JjQn9CbINCY0J3Qkwor0KjQldCJ0JXQnCDQidCY0InQkNCd0JAKK9Co0JXQidCV0Jwg0KHQotCV0JLQkNCdCivQqNCV0InQldCcINCX0J7Qm9Ci0JDQnQor0KjQldCb0JrQldCdINCY0JvQntCd0JrQkAor0KjQldCb0JzQmNCLINCS0KPQmtCe0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQldCd0KfQldCS0JjQiyDQnNCY0JvQntCc0JjQoAor0KjQldCd0JHQntCg0J0g0JDQlNCQ0JvQkdCV0KDQoiDQlNCgINCf0KDQntCkCivQqNCV0J3QlNCj0JvQkCDQqNCQ0J3QlNCe0KAKK9Co0JXQndCU0KPQm9CQINCQ0J3QotCQ0JsKK9Co0JXQndCU0KPQm9CQINCT0JDQkdCe0KAKK9Co0JXQndCl0JDQo9CX0JXQoCDQotCe0JzQmNCh0JvQkNCSCivQqNCV0J3QmiDQkNCb0JHQmNCd0JAKK9Co0JXQndCaINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQldCd0Jog0JLQntCI0JjQnQor0KjQldCd0KLQkNCb0JXQoCDQldCc0JjQmwor0KjQldCfINCb0JXQndCa0JAKK9Co0JXQn9Co0JXQmCDQmtCg0JjQodCi0JjQndCQCivQqNCV0J/QkCDQodCS0JXQotCe0JfQkNCgCivQqNCV0J/QkNCg0JXQktCY0Isg0JTQkNCg0JrQngor0KjQldCf0JDQoNCe0JLQmNCLINCU0JDQoNCa0J4KK9Co0JXQn9CQ0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Co0JXQn9CQ0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCV0J/QkNCg0J7QktCY0Isg0JfQntCg0JAKK9Co0JXQn9CV0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KjQldCf0JXQptCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQqNCV0J/QldCJINCb0JXQndCa0JAKK9Co0JXQn9CV0KDQkNCmINCg0JDQndCa0JAKK9Co0JXQn9CY0Isg0JfQkNCU0JAKK9Co0JXQn9CY0J3QodCa0Jgg0ILQo9Cg0JAKK9Co0JXQn9CY0J3QodCa0Jgg0ILQo9Cg0JAKK9Co0JXQn9CY0J3QodCa0Jgg0IjQntCQ0JrQmNCcCivQqNCV0J/QmNCd0KHQmtCYINCh0JvQkNCS0JjQptCQCivQqNCV0KDQkdCQ0J0g0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Co0JXQoNCR0JXQj9CY0IjQkCDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0KDQkdCV0I/QmNCI0JAg0JzQmNCg0JrQngor0KjQldCg0JHQldCP0JjQiNCQINCc0JjQoNCa0J4KK9Co0JXQoNCR0JjQiyDQiNCV0JvQmtCQCivQqNCV0KDQkdCY0Isg0JfQkNCT0J7QoNCa0JAKK9Co0JXQoNCR0JjQiyDQl9CQ0JPQntCg0JrQkAor0KjQldCg0JHQo9Cb0JAg0JHQoNCQ0J3QmtCeCivQqNCV0KDQkdCj0JvQkCDQnNCY0JvQkNCdCivQqNCV0KDQldCoINCo0JDQndCU0J7QoAor0KjQldCg0JXQqCDQltCj0JbQkNCd0JAKK9Co0JXQoNCV0Kgg0JDQndCQCivQqNCV0KDQldCoINCQ0J3QotCj0J0KK9Co0JXQoNCV0Kgg0JXQndCU0KDQlQor0KjQldCg0JXQqCDQldCh0KLQldCgCivQqNCV0KDQldCoINCk0KDQkNCd0KbQmNCo0JrQkAor0KjQldCg0JXQqCDQk9CY0JfQldCb0JAKK9Co0JXQoNCV0Kgg0JjQnNCg0JUKK9Co0JXQoNCV0Kgg0IjQkNCd0J7QqAor0KjQldCg0JXQqCDQmtCQ0KDQntCJINCc0KAKK9Co0JXQoNCV0Kgg0JvQkNCh0JvQngor0KjQldCg0JXQqCDQodCi0JXQktCQ0J0KK9Co0JXQoNCV0JPQmCDQl9Ce0JvQotCQ0J0KK9Co0JXQoNCV0JzQldCi0JrQntCS0KHQmtCYINCQ0JvQldCa0KHQkAor0KjQldCg0JXQnNCV0KLQmtCe0JLQodCa0Jgg0JHQntCd0JAKK9Co0JXQoNCV0KAg0JvQldCd0JrQkAor0KjQldCg0KTQldCX0Jgg0ILQo9Cg0JAKK9Co0JXQoNCY0Isg0JzQmNCb0JrQkAor0KjQldCg0JjQpCDQndCV0KjQkNCiCivQqNCV0KDQmNCk0Jgg0KDQkNCR0JjQiNCQCivQqNCV0KDQmNCk0Jgg0KHQkNCk0JXQogor0KjQldCg0JrQntCSINCJ0JjQidCQ0J3QkAor0KjQldCg0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JXQoNCe0JLQmNCLINCI0J7QktCY0KbQkAor0KjQldCh0JXQmiDQodCi0JDQndCY0KHQm9CQ0JIKK9Co0JXQodCi0JDQnSDQkdCe0KDQmNChCivQqNCV0KHQotCQ0J3QntCSINCR0KDQkNCd0JrQngor0KjQldCh0KLQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9Co0JXQodCi0JjQiyDQkdCe0JPQlNCQ0J0KK9Co0JXQotCQ0JvQniDQqNCQ0J3QlNCe0KAKK9Co0JXQotCQ0JvQniDQpNCg0JDQitCQCivQqNCV0KLQkNCb0J4g0JjQnNCg0JUKK9Co0JXQotCQ0JvQniDQmNCc0KDQlQor0KjQldCi0JDQm9CeINCa0JDQoNCb0J4KK9Co0JXQotCQ0JvQniDQmtCQ0KDQntCJCivQqNCV0KLQmtCQINCa0JDQotCQCivQqNCV0KLQmtCQINCi0J7QnNCY0KHQm9CQ0JIKK9Co0JXQotCg0JDQiNCn0JjQiyDQmNCb0JTQmNCa0J4KK9Co0JXQktCn0JjQiyDQgtCe0KDQgtCVCivQqNCV0JLQkNCgINCV0JzQmNCb0JjQiNCQCivQqNCV0JLQkNCgINCI0J7QodCY0J8g0JLQldCi0JXQoNCY0J3QkNCgCivQqNCV0JLQkNCgINCS0JvQkNCU0JjQodCb0JDQkgor0KjQldCS0JDQoNCb0JjQiyDQmtCe0KHQotCQCivQqNCV0JLQldCg0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQqNCV0JLQmNCLINCC0J7QoNCC0JUg0JzQoAor0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Co0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Co0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0JLQmNCLINCI0J7QktCeCivQqNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Co0JXQktCY0Isg0JzQmNCb0JDQnQor0KjQldCS0JjQiyDQnNCY0JvQntCoCivQqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KjQldCS0JjQiyDQndCQ0JTQkAor0KjQldCS0JjQiyDQndCQ0JTQkAor0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Co0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Co0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Co0JXQktCY0Isg0KHQkNCS0JrQkAor0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQqNCV0JLQmNCLINCh0KDQgtCQ0J0KK9Co0JXQktCY0Isg0KLQoNCY0JLQngor0KjQldCS0J4g0KfQldCU0J7QnNCY0KAKK9Co0JXQktCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCV0JLQniDQkdCe0KjQmtCeCivQqNCV0JLQniDQkdCe0KjQmtCeCivQqNCV0JLQniDQkdCg0JDQndCa0J4KK9Co0JXQktCeINCU0KPQqNCQ0J0KK9Co0JXQktCeINCI0J7QktCeCivQqNCV0JLQniDQnNCY0JvQkNCdCivQqNCV0JLQniDQnNCY0JvQkNCdCivQqNCV0JLQniDQnNCY0JvQkNCdCivQqNCV0JLQniDQnNCb0JDQlNCV0J0KK9Co0JXQktCeINCh0JvQkNCS0JjQptCQCivQqNCV0JLQniDQktCb0JDQlNCeCivQqNCY0KjQkCDQiNCe0KHQmNCfCivQqNCY0KjQkCDQiNCe0KHQmNCfCivQqNCY0KjQkNCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQqNCY0KjQkNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KjQmNCo0JDQoNCY0KbQkCDQidCj0J/QmtCeCivQqNCY0KjQkNCg0JjQptCQINCX0JTQoNCQ0JLQmtCeCivQqNCY0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KjQmNCo0JjQiyDQnNCY0JvQkNCdCivQqNCY0KjQmNCLINCc0JvQkNCU0JXQnQor0KjQmNCo0JjQiyDQn9CV0KLQmtCQCivQqNCY0KjQmNCLINCh0KLQiNCV0J/QkNCdCivQqNCY0KjQmtCQINCc0JDQoNCT0JjQotCQCivQqNCY0KjQmtCe0JIg0JDQndCi0JUKK9Co0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQmNCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCY0KjQidCQ0JPQmNCLINCn0JXQlNCeCivQqNCY0KjQidCQ0JPQmNCLINCU0KPQqNCQ0J0KK9Co0JjQqNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JjQqNCe0JLQmNCLINCc0JjQm9CQ0KjQmNCdCivQqNCY0ILQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JjQgtCQ0J3QmNCdINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCY0ILQkNCd0JjQnSDQnNCY0JvQmNCm0JAKK9Co0JjQgtCQ0J3QmNCdINCc0JjQm9Ce0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0JjQgtCQ0J3QodCa0Jgg0JHQo9CU0JjQnNCY0KAKK9Co0JjQgtCQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KjQmNCR0JDQm9CY0Isg0JjQm9CY0IjQkAor0KjQmNCR0JDQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Co0JjQkdCj0Jsg0JfQntCg0JDQnQor0KjQmNCR0KPQmyDQl9Ce0KDQmNCm0JAKK9Co0JjQkdCj0JvQntCSINCC0KPQoNCQCivQqNCY0KYg0JzQkNCg0JjQiNCQCivQqNCY0KYg0KLQldCg0JXQl9CQCivQqNCY0KTQm9CY0Kgg0IjQkNCT0J7QlNCQCivQqNCY0KTQm9CY0Kgg0JvQkNCI0J7QqAor0KjQmNCk0JvQmNCoINCh0JvQkNCS0JrQngor0KjQmNCT0KPQlCDQgtCe0KDQgtCVCivQqNCY0KXQkCDQmNCo0KLQktCQ0J0KK9Co0JjQiNCQ0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCY0IjQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQmNCI0JDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KjQmNCI0JDQp9CY0Isg0JHQntCh0JjQidCa0JAKK9Co0JjQiNCQ0KfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQmNCI0JDQp9CY0Isg0JTQkNCd0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQlNCQ0J3QmNCm0JAKK9Co0JjQiNCQ0KfQmNCLINCU0JDQndCY0JvQngor0KjQmNCI0JDQp9CY0Isg0JTQkNCd0JjQm9CeCivQqNCY0IjQkNCn0JjQiyDQlNCj0KjQkNCdCivQqNCY0IjQkNCn0JjQiyDQlNCj0KjQmNCm0JAKK9Co0JjQiNCQ0KfQmNCLINCU0KPQqNCY0KbQkAor0KjQmNCI0JDQp9CY0Isg0IjQldCb0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQm9CV0KHQkAor0KjQmNCI0JDQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KjQmNCI0JDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0JjQiNCQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCh0KLQkNCd0JrQkAor0KjQmNCI0JDQp9CY0Isg0KHQotCV0JLQkNCdCivQqNCY0IjQkNCn0JjQiyDQl9Ce0KDQmNCm0JAKK9Co0JjQiNCQ0KfQmtCYINCW0JjQktCQCivQqNCY0IjQkNCn0JrQmCDQltCY0JLQmtCeCivQqNCY0IjQkNCn0JrQmCDQgtCj0KDQgtCY0J3QmtCQCivQqNCY0IjQkNCn0JrQmCDQkdCe0JbQmNCU0JDQoAor0KjQmNCI0JDQp9Ca0Jgg0JTQoNCQ0JPQkNCd0JAKK9Co0JjQiNCQ0KfQmtCYINCT0J7QoNCU0JDQndCQCivQqNCY0IjQkNCn0JrQmCDQmNCh0JAKK9Co0JjQiNCQ0KfQmtCYINCI0J7QktCQ0J0KK9Co0JjQiNCQ0KfQmtCYINCa0J7QodCi0JAKK9Co0JjQiNCQ0KfQmtCYINCb0JDQl9CQ0KAKK9Co0JjQiNCQ0KfQmtCYINCc0JjQm9CQ0J0KK9Co0JjQiNCQ0KfQmtCYINCc0JjQm9CV0J3QmtCeCivQqNCY0IjQkNCn0JrQmCDQnNCY0JvQntCoCivQqNCY0IjQkNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KjQmNCI0JDQp9Ca0Jgg0J3QldCh0KLQntCgINCU0KAKK9Co0JjQiNCQ0KfQmtCYINCf0JXQotCQ0KAKK9Co0JjQiNCQ0KfQmtCYINCf0KDQldCU0KDQkNCTCivQqNCY0IjQkNCn0JrQmCDQoNCQ0JTQntCh0JvQkNCS0JAKK9Co0JjQiNCQ0KfQmtCYINCh0JjQnNCQCivQqNCY0IjQkNCn0JrQmCDQodCb0JDQktCa0J4KK9Co0JjQiNCQ0KfQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Co0JjQiNCQ0KfQmtCYINCh0KLQldCS0JDQnQor0KjQmNCI0JDQp9Ca0Jgg0KLQntCc0JjQodCb0JDQkgor0KjQmNCI0JDQp9Ca0Jgg0JLQmNCi0J7QnNCY0KAKK9Co0JjQiNCQ0KfQmtCYINCS0KPQiNCY0KbQkAor0KjQmNCI0JDQmiDQgtCe0KDQgtCVCivQqNCY0IjQkNCaINCI0JXQm9CY0KbQkAor0KjQmNCI0JDQmiDQnNCY0JvQldCd0JrQngor0KjQmNCI0JDQmiDQnNCY0JvQntCoCivQqNCY0IjQkNCaINCf0JDQktCb0JUKK9Co0JjQiNCQ0Jog0J/QldCi0JDQoAor0KjQmNCI0JDQmiDQotCe0JzQkAor0KjQmNCI0JDQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Co0JjQiNCQ0JrQntCSINCS0JXQidCa0J4KK9Co0JjQiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQmNCI0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCY0IjQkNCa0J7QktCY0Isg0KHQotCV0JLQkAor0KjQmNCI0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Co0JjQiNCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JjQiNCQ0J0g0JHQntCI0JAKK9Co0JjQiNCQ0J0g0JHQoNCQ0J3QmtCeCivQqNCY0IjQkNCdINCR0KDQkNCd0JrQngor0KjQmNCI0JDQnSDQkdCg0JDQndCa0J4KK9Co0JjQiNCQ0J0g0JTQkNCd0JUKK9Co0JjQiNCQ0J0g0JjQm9CY0IjQkAor0KjQmNCI0JDQnSDQnNCY0JvQldCS0JAKK9Co0JjQiNCQ0J0g0JzQmNCb0J7QqAor0KjQmNCI0JDQnSDQnNCY0KDQmtCeCivQqNCY0IjQkNCdINCd0JXQktCV0J3QmtCQCivQqNCY0IjQkNCdINCd0JjQmtCe0JvQkAor0KjQmNCI0JDQnSDQoNCQ0JTQlQor0KjQmNCI0JDQnSDQodCb0J7QkdCe0JTQkNCdCivQqNCY0IjQo9CaINCU0KDQkNCT0JDQnQor0KjQmNCaINCi0JjQkdCe0KAKK9Co0JjQmtCV0KIg0JjQqNCi0JLQkNCdCivQqNCY0JrQldCiINCY0KjQotCS0JDQnQor0KjQmNCa0JXQoiDQmNCc0KDQlQor0KjQmNCa0JXQoiDQiNCe0JbQldCkCivQqNCY0JrQldCiINCb0JDQodCb0J4KK9Co0JjQmtCV0KIg0JvQkNCh0JvQngor0KjQmNCa0JXQoiDQm9CQ0KHQm9CeCivQqNCY0JrQldCiINCc0JDQk9CU0JAKK9Co0JjQmtCV0KIg0KHQotCV0JLQkNCdCivQqNCY0JrQmNCLINCR0J7Qk9CU0JDQnQor0KjQmNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCY0JrQnNCQ0J0g0JfQktCe0J3QmtCeCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQgtCe0KDQgtCVCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQkdCe0KDQmNCh0JvQkNCSCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQlNCj0KjQkNCdCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQiNCV0JvQldCd0JAKK9Co0JjQmtCe0J/QkNCg0JjQiNCQINCc0JjQm9CQ0J0KK9Co0JjQmtCe0J/QkNCg0JjQiNCQINCd0JXQktCV0J3QkAor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0KLQmNCl0J7QnNCY0KAKK9Co0JjQmtCe0J/QkNCg0JjQiNCQINCi0JjQpdCe0JzQmNCgCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQktCb0JDQlNCY0JzQmNCgCivQqNCY0JvQlSDQqNCQ0J3QlNCe0KAKK9Co0JjQm9CVINCb0JDQlNCY0KHQm9CQ0JIKK9Co0JjQm9CVINCX0J7Qm9Ci0JDQnQor0KjQmNCb0JXQoCDQnNCY0JvQntCg0JDQlAor0KjQmNCb0JXQoCDQnNCY0JvQntCg0JDQlAor0KjQmNCb0Jgg0JjQqNCi0JLQkNCdCivQqNCY0JvQmCDQmtCQ0KDQm9CeCivQqNCY0JvQmCDQnNCY0KXQkNCI0JvQngor0KjQmNCb0Jgg0JLQkNCb0JXQoNCY0IjQkAor0KjQmNCb0JjQiyDQgtCe0KDQgtCVCivQqNCY0JvQmNCLINCC0J7QoNCC0JUKK9Co0JjQm9CY0Isg0ILQntCg0ILQlQor0KjQmNCb0JjQiyDQkNCd0JAKK9Co0JjQm9CY0Isg0JHQntCT0JTQkNCdCivQqNCY0JvQmNCLINCU0JDQndCY0KbQkAor0KjQmNCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQqNCY0JvQmNCLINCU0KPQqNCY0KbQkAor0KjQmNCb0JjQiyDQiNCe0JLQkNCdCivQqNCY0JvQmNCLINCJ0KPQkdCY0KbQkAor0KjQmNCb0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQqNCY0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Co0JjQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0JjQm9CY0Isg0JzQmNCg0JrQngor0KjQmNCb0JjQiyDQnNCY0KDQmtCeCivQqNCY0JvQmNCLINCd0JDQlNCQCivQqNCY0JvQmNCLINCd0JjQmtCe0JvQkAor0KjQmNCb0JjQiyDQntCb0JPQmNCm0JAKK9Co0JjQm9CY0Isg0J7Qm9CT0JjQptCQCivQqNCY0JvQmNCLINCf0JXQotCQ0KAKK9Co0JjQm9CY0Isg0J/QldCi0JDQoAor0KjQmNCb0JjQiyDQoNCQ0KbQmtCeCivQqNCY0JvQmNCLINCh0JDQktCQCivQqNCY0JvQmNCLINCh0J/QkNCh0JXQndCa0JAKK9Co0JjQm9CY0Isg0KHQotCe0IjQkNCdCivQqNCY0JvQmNCLINCi0J7QqNCQCivQqNCY0JvQmNCLINCi0J7QlNCe0KAKK9Co0JjQm9CY0Isg0JLQkNCh0JAKK9Co0JjQm9CY0Isg0JLQldCg0JAKK9Co0JjQm9CY0Isg0JLQmNCi0J7QnNCY0KAKK9Co0JjQidCV0JMg0IjQntCX0J4KK9Co0JjQidCV0JPQntCS0JjQiyDQkdCe0KjQmtCeCivQqNCY0InQldCT0J7QktCY0Isg0JHQntCo0JrQngor0KjQmNCJ0JXQk9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JjQidCV0JPQntCS0JjQiyDQlNCj0KjQkNCdCivQqNCY0InQldCT0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Co0JjQidCV0JPQntCS0JjQiyDQnNCY0JvQkNCdCivQqNCY0InQldCT0J7QktCY0Isg0J3QkNCU0JAKK9Co0JjQidCY0Isg0IvQkNCc0JjQmwor0KjQmNCJ0JrQo9CiINCc0JjQm9CQ0J0KK9Co0JjQidCa0KPQoiDQnNCY0JvQkNCdCivQqNCY0InQmtCj0KIg0JzQmNCg0JrQngor0KjQmNCc0KfQmNCLINCe0JvQk9CY0KbQkAor0KjQmNCc0KjQmNCLINCU0KPQqNCQ0J0KK9Co0JjQnNCo0JjQiyDQmNCb0JjQiNCQCivQqNCY0JzQqNCY0Isg0KHQkNCS0J4KK9Co0JjQnNCQINCI0J7QkNCa0JjQnAor0KjQmNCc0JAg0JzQkNCg0JPQmNCi0JAKK9Co0JjQnNCQINCS0JXQoNCe0J3QmNCa0JAKK9Co0JjQnNCQ0Jog0IjQkNCdCivQqNCY0JzQkNCb0JAg0JLQmNCa0KLQntCgCivQqNCY0JzQkNCdINCQ0JvQldCa0KHQldCICivQqNCY0JzQkNCd0JTQmCDQk9CQ0JHQoNCY0IjQldCb0JAKK9Co0JjQnNCQ0J3QlNCYINCh0KLQldCS0JDQnQor0KjQmNCc0JXQmiDQktCb0JDQotCa0J4KK9Co0JjQnNCY0KfQmNCLINCf0JXQotCQ0KAKK9Co0JjQnNCY0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KjQmNCc0JjQiyDQkNCd0KLQngor0KjQmNCc0JjQiyDQkdCe0JbQkNCd0JAKK9Co0JjQnNCY0Isg0KTQoNCQ0IrQngor0KjQmNCc0JjQiyDQk9CY0JfQldCb0JAKK9Co0JjQnNCY0Isg0KXQoNCS0J7QiNCVCivQqNCY0JzQmNCLINCI0KPQm9CQINCU0JjQn9CbINCY0J3Qkwor0KjQmNCc0JjQiyDQnNCY0JvQkNCdCivQqNCY0JzQmNCLINCc0JjQm9CQ0J0KK9Co0JjQnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KjQmNCc0JjQiyDQnNCb0JDQlNCV0J0KK9Co0JjQnNCY0Isg0J3QmNCd0J7QodCb0JDQkgor0KjQmNCc0JjQiyDQodCb0JDQktCa0J4KK9Co0JjQnNCY0Isg0KHQm9CQ0JLQmtCeCivQqNCY0JzQmNCLINCh0KLQldCS0JDQnQor0KjQmNCc0JjQkyDQotCY0JHQntCgCivQqNCY0JzQntCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KjQmNCc0J7QnSDQqNCQ0J3QlNCe0KAKK9Co0JjQnNCe0J0g0ILQldCg0IIKK9Co0JjQnNCe0J0g0JDQoNCf0JDQlAor0KjQmNCc0J7QnSDQldCg0JbQldCR0JXQogor0KjQmNCc0J7QnSDQnNCQ0KDQmNCm0JAKK9Co0JjQnNCe0J0g0JzQmNCl0JDQiQor0KjQmNCc0J7QnSDQktCY0JvQnNCe0Kgg0JTQoAor0KjQmNCc0J7QndCY0Jog0JLQm9CQ0JTQkAor0KjQmNCc0J7QitCYINCo0JDQndCU0J7QoAor0KjQmNCc0J7QitCYINCR0JDQoNCR0JDQoNCQCivQqNCY0JzQntCK0Jgg0IjQkNCd0J7QqAor0KjQmNCc0J7QitCYINCh0J7QpNCY0IjQkAor0KjQmNCc0J7QitCYINCX0J7Qm9Ci0JDQnQor0KjQmNCc0J7QitCYINCX0JLQntCd0JrQngor0KjQmNCc0J7QitCY0Jog0JzQkNCi0JjQiNCQCivQqNCY0JzQntCS0JjQiyDQiNCe0JbQldCkCivQqNCY0JzQntCS0JjQiyDQnNCY0KDQngor0KjQmNCc0J/QoNCQ0JPQkCDQlNCj0KjQkNCdCivQqNCY0JzQn9Cg0JDQk9CQINCI0JDQlNCg0JDQndCa0JAKK9Co0JjQnNCj0JTQktCQ0KDQkNCmINCf0JDQktCQ0J4KK9Co0JjQnNCj0JvQmNCI0JAg0JTQoNCQ0JbQldCdCivQqNCY0JzQo9Cb0JjQiNCQINCI0J7QktCeCivQqNCY0JzQo9Cd0ILQkCDQidCj0JHQntCc0JjQoAor0KjQmNCc0KPQndCV0KYg0JzQkNCg0JjQiNCQCivQqNCY0JzQo9Cd0JjQiyDQkNCd0JrQkAor0KjQmNCc0KPQndCY0Isg0JjQktCQ0J0KK9Co0JjQnNCj0J3QmNCLINCa0JDQoNCb0J4KK9Co0JjQnNCj0J3QmNCLINCh0KLQldCS0JDQnQor0KjQmNCc0KPQndCe0JLQkNCn0JrQmCDQmtCQ0KLQmNCm0JAKK9Co0JjQnNCj0J3QntCS0JDQp9Ca0Jgg0J3QmNCa0J7Qm9CQCivQqNCY0JzQo9Cd0J7QktCQ0KfQmtCYINCd0JjQmtCe0JvQkAor0KjQmNCc0KPQndCe0JLQkNCn0JrQmCDQodCb0JDQktCa0J4KK9Co0JjQnNCj0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQmNCc0KPQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQqNCY0JzQo9Cd0J7QktCY0Isg0IjQntCh0JjQnwor0KjQmNCc0KPQndCe0JLQmNCLINCI0J7QodCY0J8KK9Co0JjQnNCj0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQqNCY0JzQo9Cd0J7QktCY0Isg0J3QldCd0JDQlAor0KjQmNCc0KPQndCe0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Co0JjQnNCj0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Co0JjQnNCj0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9Co0JjQnNCj0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQqNCY0JzQo9Cd0J7QktCY0Isg0KLQntCc0JAKK9Co0JjQndCQ0JPQmyDQmtCQ0KDQntCJCivQqNCY0J3QkNCT0Jsg0JrQkNCg0J7QiQor0KjQmNCd0JDQk9CbINCe0KLQngor0KjQmNCd0JDQk9CbINCh0KLQldCS0JDQnQor0KjQmNCd0JjQmiDQlNCg0JDQk9CQ0J0KK9Co0JjQndCY0JrQntCSINCC0J7QoNCC0JUKK9Co0JjQndCY0JrQntCSINCc0JjQm9CQ0J0KK9Co0JjQndCa0JAg0JzQkNCg0JPQmNCi0JAKK9Co0JjQndCa0JAg0JfQm9CQ0KLQmtCeCivQqNCY0J3QmtCeINCT0JjQl9CV0JvQkAor0KjQmNCd0JrQniDQmNCS0JDQndCa0JAKK9Co0JjQndCa0J4g0IjQkNCd0J7QqAor0KjQmNCd0JrQniDQodCi0JXQktCQ0J0KK9Co0JjQndCa0J4g0JLQm9CQ0JTQmNCh0JvQkNCSCivQqNCY0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KjQmNCf0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQqNCY0J/Qp9CY0Isg0JzQkNCg0JjQiNCQCivQqNCY0J/Qp9CY0Isg0JzQmNCU0J4KK9Co0JjQn9Cn0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQqNCY0J/Qp9CY0Isg0J3QmNCd0J7QodCb0JDQkgor0KjQmNCf0JXQmiDQiNCe0KHQmNCfINCd0J7QktCY0J3QkNCgCivQqNCY0J/QldCi0JjQiyDQkNCd0ILQkAor0KjQmNCf0JXQotCY0Isg0JzQntCc0KfQmNCb0J4KK9Co0JjQn9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JjQn9CY0J0g0IjQntCS0JDQndCa0JAKK9Co0JjQn9Ca0JAg0JHQntCW0JAKK9Co0JjQn9Ca0JAg0JHQntCW0J4KK9Co0JjQn9Ca0JAg0JHQoNCQ0J3QmtCeCivQqNCY0J/QmtCQINCU0KDQkNCT0JDQnQor0KjQmNCf0JrQkCDQlNCg0JDQk9CeCivQqNCY0J/QmtCQINCT0KDQo9CI0J4KK9Co0JjQn9Ca0JAg0JzQkNCg0JrQngor0KjQmNCf0JrQkCDQnNCY0KDQmtCeCivQqNCY0J/QmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQn9Ca0JAg0JzQmNCg0J4KK9Co0JjQn9Ca0JAg0J3QldCC0J4KK9Co0JjQn9Ca0JAg0JfQntCg0JDQnQor0KjQmNCf0JrQkCDQl9Ce0KDQkNCdCivQqNCY0J/QntCoINCo0JDQndCU0J7QoAor0KjQmNCf0J7QqCDQgtCe0KDQgtCVCivQqNCY0J/QntCoINCC0J7QoNCC0JUKK9Co0JjQn9Ce0Kgg0ILQo9Cg0JAKK9Co0JjQn9Ce0Kgg0ILQo9Cg0J4KK9Co0JjQn9Ce0Kgg0JXQlNCY0KIKK9Co0JjQn9Ce0Kgg0JXQoNCW0JXQkdCV0KIKK9Co0JjQn9Ce0Kgg0JjQk9CK0JDQpgor0KjQmNCf0J7QqCDQiNCQ0J3QntCoCivQqNCY0J/QntCoINCI0J7QktCQ0J3QmtCQCivQqNCY0J/QntCoINCI0J7QktCQ0J0KK9Co0JjQn9Ce0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0KjQmNCf0J7QqCDQnNCY0KDQiNCQ0J3QkAor0KjQmNCf0J7QqCDQoNCe0JfQkNCb0JjQiNCQCivQqNCY0J/QntCoINCS0JvQkNCU0JjQnNCY0KAKK9Co0JjQn9Ce0KjQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KjQmNCf0J7QodCa0Jgg0JrQoNCh0KLQlQor0KjQmNCf0J7QktCQ0KYg0KbQktCY0IjQldCi0JAKK9Co0JjQn9Ce0JLQkNCmINCU0JDQndCY0JvQngor0KjQmNCf0J7QktCQ0KYg0IjQkNCK0JAKK9Co0JjQn9Ce0JLQkNCmINCd0JXQlNCV0InQmtCeCivQqNCY0J/QntCS0JDQpiDQoNCQ0JTQmNCm0JAKK9Co0JjQn9Ce0JLQkNCmINCS0JDQodCY0JvQmNCI0JAKK9Co0JjQn9Cg0JDQk9CQINCj0KDQntCoCivQqNCY0J/Qo9Co0JjQiyDQpdCV0JvQldCd0JAKK9Co0JjQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JjQoNCY0IjQntCS0KHQmtCYINCT0J7QptCVCivQqNCY0KDQmtCQINCI0JDQnQor0KjQmNCg0JrQkCDQodCQ0JzQo9CV0JsKK9Co0JjQoNCe0KfQmtCQINCQ0J3QotCj0J0KK9Co0JjQoNCe0JrQmCDQkNCU0JDQnAor0KjQmNCg0J7Qm9CQINCY0JLQkNCdCivQqNCY0KDQntCd0JjQiyDQidCj0JHQngor0KjQmNCh0KLQntCSINCU0KDQkNCT0J4KK9Co0JjQotCVINCa0JDQoNCe0IkKK9Co0JjQotCVINCc0JDQoNCY0IjQkAor0KjQmNCi0JUg0KLQmNCR0J7QoAor0KjQmNCi0JXQoCDQmtCQ0KDQm9CeCivQqNCY0KLQldCgINCg0KPQltCY0KbQkAor0KjQmNCi0JXQoCDQodCb0J7QkdCe0JTQkNCdCivQqNCY0JLQldCT0Jgg0JjQnNCg0JUKK9Co0JrQkNCJ0JDQpiDQodCi0JDQndCa0J4KK9Co0JrQkNCJ0JDQpiDQl9Ce0KDQkNCdCivQqNCa0JDQoNCY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JrQkNCg0JjQptCQINCU0J7Qm9Ce0KDQldChCivQqNCa0JDQoNCY0KbQkCDQodCi0IjQldCf0JDQnQor0KjQmtCQ0KDQmNCdINCi0J7QlNCe0KAKK9Co0JrQkNCi0JDQoNCY0Isg0JfQntCg0JDQnQor0KjQmtCQ0JLQmNCLINCm0JLQmNCI0J4KK9Co0JrQkNCS0JjQiyDQiNCe0JLQngor0KjQmtCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Co0JrQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Co0JrQldCa0JjQiyDQnNCY0J7QnNCY0KAKK9Co0JrQmNCJ0JDQiNCY0KbQkCDQktCb0JDQlNCY0JzQmNCgCivQqNCa0JjQidCV0JLQmNCLINCc0JjQm9CY0JTQoNCQ0JMKK9Co0JrQntCR0JDQiSDQndCQ0JTQkAor0KjQmtCe0JHQkNCJINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JrQntCU0JDQmiDQn9CQ0JLQm9CVCivQqNCa0J7Qm9Ce0J/QmNCI0JAg0JvQkNCX0JDQoAor0KjQmtCe0J3QlNCg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQqNCa0J7QoNCY0Isg0KfQldCU0J7QnNCY0KAKK9Co0JrQntCg0JjQiyDQqNCi0KDQkNCm0JjQnNCY0KAKK9Co0JrQntCg0JjQiyDQgtCj0IjQkAor0KjQmtCe0KDQmNCLINCC0KPQoNCeCivQqNCa0J7QoNCY0Isg0JDQndCa0JAKK9Co0JrQntCg0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KjQmtCe0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQmtCe0KDQmNCLINCR0KDQkNCd0JrQngor0KjQmtCe0KDQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQqNCa0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQqNCa0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQqNCa0J7QoNCY0Isg0JTQo9Co0JDQnQor0KjQmtCe0KDQmNCLINCU0KPQqNCQ0J0KK9Co0JrQntCg0JjQiyDQlNCj0KjQkNCdCivQqNCa0J7QoNCY0Isg0JTQo9Co0JrQngor0KjQmtCe0KDQmNCLINCT0KDQo9Cc0JjQmtCe0JIKK9Co0JrQntCg0JjQiyDQiNCe0JLQkNCdCivQqNCa0J7QoNCY0Isg0IjQntCS0JDQnQor0KjQmtCe0KDQmNCLINCa0KHQldCd0JjQiNCQCivQqNCa0J7QoNCY0Isg0JvQkNCX0JDQoAor0KjQmtCe0KDQmNCLINCJ0JjQidCQ0J3QkAor0KjQmtCe0KDQmNCLINCc0JDQoNCQCivQqNCa0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQqNCa0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQqNCa0J7QoNCY0Isg0JzQmNCL0J4KK9Co0JrQntCg0JjQiyDQnNCY0JvQkNCdCivQqNCa0J7QoNCY0Isg0JzQmNCb0JDQnQor0KjQmtCe0KDQmNCLINCc0JjQm9CQ0J0KK9Co0JrQntCg0JjQiyDQnNCY0JvQkNCdCivQqNCa0J7QoNCY0Isg0JzQmNCb0JXQndCa0J4KK9Co0JrQntCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0KjQmtCe0KDQmNCLINCc0JjQm9Ca0JAKK9Co0JrQntCg0JjQiyDQnNCY0JvQntCoCivQqNCa0J7QoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0JrQntCg0JjQiyDQnNCY0KDQmtCeCivQqNCa0J7QoNCY0Isg0JzQmNCg0JrQngor0KjQmtCe0KDQmNCLINCc0JjQoNCa0J4KK9Co0JrQntCg0JjQiyDQndCY0JrQntCb0JAKK9Co0JrQntCg0JjQiyDQndCY0JrQntCb0JAKK9Co0JrQntCg0JjQiyDQn9CQ0JLQm9CVCivQqNCa0J7QoNCY0Isg0J/QkNCS0JvQlQor0KjQmtCe0KDQmNCLINCf0JXQoNCeCivQqNCa0J7QoNCY0Isg0KHQm9CQ0JLQmtCeCivQqNCa0J7QoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KjQmtCe0KDQmNCLINCh0JzQmNCJ0JAKK9Co0JrQntCg0JjQiyDQodCc0JjQidCQCivQqNCa0J7QoNCY0Isg0KHQoNCV0IvQmtCeCivQqNCa0J7QoNCY0Isg0KHQotCQ0J3QkAor0KjQmtCe0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Co0JrQntCg0JjQiyDQl9Ce0KDQkAor0KjQmtCe0KDQniDQqNCY0JzQlQor0KjQmtCe0KDQniDQnNCY0KDQiNCQ0J3QkAor0KjQmtCe0KDQniDQktCQ0KHQmNCb0JjQiNCQCivQqNCa0KDQkNCS0JDQnSDQkNCd0JTQoNCY0IjQkAor0KjQmtCg0JHQmNCLINCW0JXQidCa0J4KK9Co0JrQoNCR0JjQiyDQgtCj0KDQngor0KjQmtCg0JHQmNCLINCQ0J3QmNCm0JAKK9Co0JrQoNCR0JjQiyDQkdCb0JDQltCeCivQqNCa0KDQkdCY0Isg0JHQntCW0J4KK9Co0JrQoNCR0JjQiyDQkdCe0IjQkNCd0JAKK9Co0JrQoNCR0JjQiyDQkdCg0JDQndCa0J4KK9Co0JrQoNCR0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQmtCg0JHQmNCLINCU0KPQqNCQ0J0KK9Co0JrQoNCR0JjQiyDQiNCe0JLQkNCdCivQqNCa0KDQkdCY0Isg0IjQntCS0JDQnQor0KjQmtCg0JHQmNCLINCJ0KPQkdCY0KbQkAor0KjQmtCg0JHQmNCLINCc0JDQoNCQCivQqNCa0KDQkdCY0Isg0JzQkNCg0JjQptCQCivQqNCa0KDQkdCY0Isg0JzQmNCb0JUKK9Co0JrQoNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQmtCg0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCa0KDQkdCY0Isg0J3QldCR0J7QiNCo0JAKK9Co0JrQoNCR0JjQiyDQntCh0KLQntCI0JAKK9Co0JrQoNCR0JjQiyDQn9CV0KLQkNCgCivQqNCa0KDQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KjQmtCg0JHQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JrQoNCR0JjQiyDQl9Ce0KDQmtCQCivQqNCa0KDQkdCY0J3QkCDQodCi0IjQldCf0JDQnQor0KjQmtCg0JPQldCiINCI0J7QodCY0J8KK9Co0JrQoNCY0IjQldCbINCU0KDQkNCT0JDQnQor0KjQmtCg0JjQiNCV0Jsg0JzQmNCb0JDQnQor0KjQmtCg0JjQiNCV0Ikg0JDQiNCd0JjQiNCQCivQqNCa0KDQmNCI0JXQiSDQodCQ0JzQmNCgCivQqNCa0KDQmNCI0JXQiSDQktCV0KXQkdCeCivQqNCa0KDQmNCK0JDQoCDQmtCQ0KDQntCJCivQqNCa0KDQmNCK0JDQoCDQnNCQ0KDQmNCeCivQqNCa0KDQmNCK0JDQoCDQl9CS0J7QndCY0JzQmNCgCivQqNCa0KDQmNCS0JDQnSDQgtCj0KDQkAor0KjQmtCg0JjQktCQ0J0g0JDQndCi0KPQnQor0KjQmtCg0JjQktCQ0J0g0KTQoNCQ0IrQkAor0KjQmtCg0JjQktCQ0J0g0JrQkNCg0JvQngor0KjQmtCg0JjQktCQ0J0g0JvQkNCU0JjQodCb0JDQkgor0KjQmtCg0JjQktCQ0J0g0J/QldCi0JDQoAor0KjQmtCg0JjQktCQ0J0g0KHQotCV0JLQkNCdCivQqNCa0KDQmNCS0JDQnSDQodCi0JXQktCQ0J0KK9Co0JrQoNCY0JLQkNCKINCf0JjQqNCi0JAKK9Co0JrQo9Cb0JXQotCY0Isg0J7Qm9CT0JAKK9Co0JrQo9Cb0JXQotCY0Isg0JfQntCg0JDQnQor0KjQmtCj0J3QptCQINCY0JLQkNCdCivQqNCa0KPQndCm0JAg0IjQldCb0JjQptCQCivQqNCa0KPQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9Co0JrQo9Cd0JTQoNCY0Isg0JzQmNCb0JjQptCQCivQqNCa0KPQndCU0KDQmNCLINCf0JXQotCQ0KAKK9Co0JrQo9Cd0JTQoNCY0Isg0KDQntCX0JDQm9CY0IjQkAor0KjQmtCS0JDQoNCV0Jog0JLQm9CQ0JTQkAor0KjQm9CQ0KXQotCV0KAg0JLQldCd0JTQldCbCivQqNCb0JDQiNCV0KAg0KDQo9CU0J7Qm9CkCivQqNCb0JDQktCY0Jog0JjQm9Ce0J3QkAor0KjQm9CV0KXQotCQINCX0JTQldCd0JrQngor0KjQm9CV0JzQldCd0JTQldCgINCC0J7QoNCC0JUKK9Co0JvQldCc0JXQndCU0JXQoCDQkNCd0JPQldCb0JAKK9Co0JvQldCc0JXQndCU0JXQoCDQmNCg0JXQndCQCivQqNCJ0JDQn9CY0Isg0JPQntCg0JDQnQor0KjQidCQ0J/QmNCLINCc0JjQoNCI0JDQndCQCivQqNCJ0JDQn9CY0Isg0J7QkdCg0JXQnQor0KjQidCQ0J/QmNCLINCg0KPQltCY0KbQkAor0KjQidCQ0J/QmNCLINCh0KLQldCS0JDQnQor0KjQidCQ0J/QmNCLINCi0JDQotCI0JDQndCQCivQqNCJ0JDQn9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KjQidCQ0J/QmNCLINCS0JXQm9CV0JzQmNCgCivQqNCJ0JjQktCQ0J3Qp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9Co0InQmNCS0JDQndCn0JDQndCY0J0g0IjQntCS0JDQnQor0KjQidCY0JLQkNCd0KfQkNCd0JjQnSDQnNCQ0KDQmNCI0JAKK9Co0InQmNCS0JDQndCn0JDQndCY0J0g0JzQmNCb0KPQotCY0J0KK9Co0InQmNCS0JjQiyDQgtCe0KDQgtCVCivQqNCJ0JjQktCY0Isg0JHQntCg0JrQkAor0KjQidCY0JLQmNCLINCI0JXQm9CV0J3QkAor0KjQidCY0JLQmNCLINCJ0JjQidCQ0J3QkAor0KjQidCY0JLQmNCLINCc0JjQoNCI0JDQndCQCivQqNCJ0JjQktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KjQidCY0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQqNCJ0JjQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQqNCJ0JjQktCa0J7QktCY0Isg0ILQntCg0ILQlQor0KjQidCj0JrQkCDQlNCg0JDQk9CY0KjQkAor0KjQidCj0JrQkCDQnNCY0IjQntCU0KDQkNCTCivQqNCJ0KPQmtCQINCc0JjQm9CQ0J0KK9Co0InQo9Ca0JAg0JzQmNCb0J7QqAor0KjQidCj0JrQmNCLINCW0JjQktCQ0J0g0JTQoAor0KjQidCj0JrQmNCLINCc0JjQm9CY0JLQntCICivQqNCJ0KPQmtCY0Isg0KDQntCh0JDQndCU0JAKK9Co0JzQkNCK0JAg0JzQmNCg0JrQngor0KjQnNCQ0IrQkCDQodCb0JDQktCa0J4KK9Co0JzQmNCU0JXQoNCa0JDQmyDQpNCg0JDQitCQCivQqNCc0JjQk9CV0InQodCa0Jgg0J3QmNCa0J7Qm9CQCivQqNCc0JjQk9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KjQnNCY0JPQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCc0JjQk9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KjQnNCY0KIg0KTQldCg0JTQmNCd0JDQndCUCivQqNCc0JjQoiDQk9CY0JfQldCb0JAKK9Co0JzQmNCiINCI0J7QodCY0J8KK9Co0JzQmNCiINCI0J7QktCQ0J0KK9Co0JzQmNCiLdCa0J7QotCQINCa0JDQotCY0KbQkAor0KjQnNCY0KIg0JzQkNCg0JjQiNCQCivQqNCc0JjQoiDQnNCY0KDQiNCQ0J3QkAor0KjQnNCY0KIt0J/QoNCe0JrQmNCdINCC0KPQoNCC0JjQndCQCivQqNCc0JjQoiDQoNCV0JbQlQor0KjQnNCY0KIg0KHQotCQ0J3QkAor0KjQnNCY0KIg0KHQotCQ0J3QntCI0JrQkAor0KjQnNCY0KIg0KHQotCV0JLQkNCdCivQqNCc0JjQoiDQodCi0JXQktCQ0J0KK9Co0JzQmNCiINCS0JjQntCb0JXQotCQCivQqNCc0JjQoiDQl9Cb0JDQotCa0J4KK9Co0JzQmNCi0KDQkNCdINCC0J7QoNCC0JUKK9Co0JzQo9CaINCY0JLQkNCdCivQqNCd0JDQiNCU0JXQoCDQqNCQ0J3QlNCe0KAKK9Co0J3QkNCI0JTQldCgINCQ0J3QmNCm0JAKK9Co0J3QkNCI0JTQldCgINCY0JvQmNCd0JrQkAor0KjQndCQ0IjQlNCV0KAg0IjQkNCd0J7QqAor0KjQndCQ0IjQlNCV0KAg0IjQkNCg0J7QodCb0JDQkgor0KjQndCQ0IjQlNCV0KAg0KHQotCV0JLQkNCdCivQqNCd0JDQiNCU0JXQoCDQktCV0KDQkAor0KjQndCQ0IjQlNCV0KDQntCSINCI0J7QodCY0J8KK9Co0J3QkNCI0JTQldCg0J7QkiDQktCV0KHQndCQCivQqNCd0JDQo9Ci0JjQmyDQlNCg0JDQk9Cj0KLQmNCdCivQqNCd0JXQmyDQn9CV0KLQldCgCivQqNCK0JDQoNCY0Isg0JjQktCQ0J0KK9Co0J7QqCDQkNCd0KLQkNCbCivQqNCe0Kgg0JDQndCi0JDQmwor0KjQntCoINCR0JDQm9CY0J3Qogor0KjQntCoINCU0JXQl9CY0JTQldCgCivQqNCe0Kgg0JPQmNCX0JXQm9CQCivQqNCe0Kgg0JjQm9Ce0J3QkAor0KjQntCoINCI0JXQm9CY0KbQkAor0KjQntCoINCb0JDQiNCe0KgKK9Co0J7QqCDQnNCQ0KDQmNCI0JAKK9Co0J7QqCDQotCY0JHQntCgCivQqNCe0KjQmNCLINCc0JjQoNCa0J4KK9Co0J7QqNCY0Isg0J3QkNCi0JDQqNCQCivQqNCe0KjQmNCLINCe0JvQk9CQCivQqNCe0KjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Co0J7QqNCY0Isg0JLQo9CaCivQqNCe0KjQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQntCo0JrQmNCLINCc0JjQoNCQCivQqNCe0Isg0JHQntCI0JDQndCQCivQqNCe0Isg0JTQo9Co0JDQnQor0KjQntCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0J7QkdCQ0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KjQntCR0JDQmtCYINCc0JDQoNCY0IjQkAor0KjQntCR0JjQiyDQnNCY0KDQkAor0KjQntCR0JjQiyDQoNCQ0JTQlQor0KjQntCR0JjQiyDQktCV0KDQkAor0KjQntCR0JjQiyDQl9Ce0KDQkNCdCivQqNCe0JHQmNCLINCX0J7QoNCQ0J0KK9Co0J7QkdCe0KIg0ILQo9Cg0JAKK9Co0J7QkdCe0KIg0JHQntCo0JrQngor0KjQntCR0J7QoiDQkdCg0JDQndCa0J4KK9Co0J7QkdCe0KIg0JTQoNCQ0JPQkNCdCivQqNCe0JHQntCiINCI0J7QktCQ0J0KK9Co0J7QkdCe0KIg0InQo9CR0J7QnNCY0KAKK9Co0J7QkdCe0KIg0JzQmNCb0JDQnQor0KjQntCR0J7QoiDQnNCY0JvQmNCm0JAKK9Co0J7QkdCe0KIg0J/QldCi0JrQngor0KjQntCR0J7QoiDQodCV0JrQo9Cb0JAKK9Co0J7QkdCe0KIg0KHQm9CQ0JLQmNCm0JAKK9Co0J7QlNCY0Isg0JTQntCR0KDQmNCb0JAKK9Co0J7QlNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Co0J7QlNCY0Isg0JPQmNCX0JXQm9CQCivQqNCe0JTQmNCLINCc0JjQm9CQ0J0KK9Co0J7QlNCY0Isg0KLQntCU0J7QoAor0KjQntCU0J7QoNCe0JLQmNCLINCg0J7QodCQCivQqNCe0KTQpdCQ0KPQl9CV0KAg0JzQmNCl0JDQiNCb0J4KK9Co0J7QpNCl0JDQo9CX0JXQoCDQoNCe0JfQkNCb0JjQiNCQCivQqNCe0KTQoNCQ0J0g0JzQkNCg0JjQiNCQCivQqNCe0KTQoNCQ0J3QkNCmINCc0JXQm9CQ0J3QmNCI0JAKK9Co0J7Qk9Ce0KDQntCSINCh0KLQldCS0JDQnQor0KjQntCI0JjQiyDQltCY0JLQmtCeCivQqNCe0IjQmNCLINCR0KDQkNCd0JrQngor0KjQntCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQntCI0JjQiyDQndCV0JTQldCJ0JrQkAor0KjQntCI0JvQldCS0KHQmtCQINCh0JDQitCQCivQqNCe0JrQmNCLINCC0J7QoNCC0JUKK9Co0J7QmtCY0Isg0IjQo9CU0JjQotCQCivQqNCe0JrQmNCLINCc0JjQm9CQ0J0KK9Co0J7QmtCY0Isg0J/QldCi0JDQoAor0KjQntCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KjQntCa0JjQiyDQodCc0JjQidCQCivQqNCe0JrQmNCm0JAg0JbQmNCS0JrQngor0KjQntCa0JjQptCQINCR0KDQkNCd0JjQodCb0JDQkgor0KjQntCa0JjQptCQINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQntCa0JjQptCQINCU0KDQkNCT0JjQqNCQCivQqNCe0JrQmNCm0JAg0IjQntCS0JDQnQor0KjQntCa0JjQptCQINCI0KPQlNCY0KLQkAor0KjQntCa0JjQptCQINCJ0KPQkdCY0KbQkAor0KjQntCa0JjQptCQINCc0JjQm9Ce0KgKK9Co0J7QmtCY0KbQkCDQl9Ce0KDQkAor0KjQntCa0JvQntCS0JDQp9Ca0Jgg0JbQmNCS0JrQngor0KjQntCa0JvQntCS0JDQp9Ca0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0KjQntCa0JvQntCS0JDQp9Ca0Jgg0J3QkNCU0JAKK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCg0JDQotCe0JzQmNCgCivQqNCe0Jsg0JHQldCb0JAKK9Co0J7Qm9CQ0IjQkCDQgtCe0KDQgtCVCivQqNCe0JvQkNCI0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCe0JvQkNCI0JAg0JPQntCI0JrQngor0KjQntCb0JDQiNCQINCc0JjQm9CQ0J0KK9Co0J7Qm9CQ0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQqNCe0JvQkNCI0JAg0J3QkNCU0JAKK9Co0J7Qm9CQ0IjQkCDQndCQ0JTQkAor0KjQntCb0JDQiNCQINCg0JDQlNCe0KHQm9CQ0JIKK9Co0J7Qm9CQ0IjQkCDQodCb0JDQktCa0J4KK9Co0J7Qm9CQ0IjQkCDQodCb0JDQktCa0J4KK9Co0J7Qm9CQ0IjQkCDQodCb0J7QkdCe0JTQkNCdCivQqNCe0JvQkNCI0JAg0JLQmNCo0IrQkAor0KjQntCb0JDQmiDQiNCe0JrQkAor0KjQntCb0JDQmiDQnNCQ0KDQmNCd0JrQngor0KjQntCb0JDQmiDQnNCY0JvQlQor0KjQntCb0JDQmiDQoNCQ0JTQlQor0KjQntCb0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KjQntCb0KLQldChINCo0JDQndCU0J7QoAor0KjQntCb0KLQldChINCY0JHQntCJ0JAKK9Co0J7Qm9Ci0JXQoSDQiNCe0JbQldCkCivQqNCe0JzQmtCV0KDQldCa0Jgg0JjQm9Ce0J3QmtCQCivQqNCe0JzQmtCV0KDQldCa0Jgg0IjQntCh0JjQnwor0KjQntCc0JrQldCg0JXQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9Co0J7QnNCa0JXQoNCV0JrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQqNCe0JzQmtCV0KDQldCa0Jgg0KHQotCV0JLQkNCdCivQqNCe0JzQmtCV0KDQldCa0Jgg0KHQotCV0JLQkNCdCivQqNCe0JzQntCC0Jgg0JbQntCk0JjQiNCQCivQqNCe0JzQntCC0Jgg0ILQntCg0ILQlQor0KjQntCc0J7QgtCYINCV0JLQkAor0KjQntCc0J7QgtCYINCk0KDQkNCK0JAKK9Co0J7QnNCe0ILQmCDQmNCo0KLQktCQ0J0KK9Co0J7QnNCe0ILQmCDQiNCV0JvQldCd0JAKK9Co0J7QnNCe0ILQmCDQiNCe0JLQkNCdCivQqNCe0JzQntCC0Jgg0JvQkNCh0JvQngor0KjQntCc0J7QgtCYINCc0JjQpdCQ0IjQm9CeCivQqNCe0JzQntCC0Jgg0J/QkNCbCivQqNCe0JzQntCC0Jgg0J/QkNCbCivQqNCe0JzQntCC0Jgg0J/QkNCbCivQqNCe0JzQntCC0Jgg0KDQntCX0JAKK9Co0J7QnNCe0ILQmCDQl9Ce0JvQotCQ0J0KK9Co0J7QnNCe0ILQmCDQl9Ce0KDQkAor0KjQntCfINCc0JDQk9CU0JDQm9CV0J3QkAor0KjQntCfINCc0JjQm9CQ0J0KK9Co0J7Qn9CQ0JvQniDQgtCj0KDQgtCY0J3QkAor0KjQntCf0JDQm9CeINCC0KPQoNCC0JjQndCQCivQqNCe0J/QkNCb0J4g0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0J7QldCmCivQqNCe0J/QkNCb0J4g0JzQmNCe0JTQoNCQ0JMKK9Co0J7QoNCC0JDQnSDQoNCe0JzQkNCdCivQqNCe0KDQkNCaINCc0JjQoNCI0JDQndCQCivQqNCe0KDQkNCb0J7QkiDQnNCY0JvQntCoCivQqNCe0KDQkNCb0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQqNCe0KDQnNCQ0Jcg0JTQo9Co0JDQnQor0KjQntCg0JzQkNCXINCc0JjQm9CQ0J0KK9Co0J7QoNCc0JDQlyDQndCY0JrQntCb0JAKK9Co0J7QoNCc0JDQlyDQktCb0JDQlNCY0JzQmNCgCivQqNCe0KDQntCK0JAg0KHQkNCS0JAKK9Co0J7QoNCe0IrQkCDQktCV0KDQkAor0KjQntCh0JHQldCg0JPQldCgINCR0J7QoNCY0KjQmtCQCivQqNCe0KHQkdCV0KDQk9CV0KAg0IjQntCh0JjQnyDQlNCY0J/QmyDQntCV0KYKK9Co0J7QodCR0JXQoNCT0JXQoCDQn9CQ0JLQm9CVCivQqNCe0KHQotCQ0JrQntCSINCg0JDQodCi0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Co0J7QotCYLdCn0JDQm9CV0J3QmNCLINCc0JDQoNCY0IjQkAor0KjQntCi0Jgg0KTQldCC0JAKK9Co0J7QotCYINCY0JLQkNCd0JAKK9Co0J7QotCYINCI0J7QodCY0J8KK9Co0J7QotCYINCI0J7QodCY0J8KK9Co0J7QotCYINCc0JDQoNCY0IjQkAor0KjQntCi0Jgg0JzQkNCg0JjQiNCQCivQqNCe0KLQoNCQINCc0J7QnNCn0JjQm9CeCivQqNCe0KPQpiDQnNCY0JvQkNCdCivQqNCe0KPQpiDQnNCY0KDQntCh0JvQkNCSCivQqNCe0KPQpiDQl9Cb0JDQotCQCivQqNCe0JLQqCDQiNCQ0J3QmtCeCivQqNCe0JLQqCDQiNCe0JDQmtCY0JwKK9Co0J7QktCQ0Iog0IjQntCQ0JrQmNCcCivQqNCe0JLQldCKINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCe0JLQldCKINCa0JDQoNCb0J4KK9Co0J7QktCV0Iog0JLQldCg0JAKK9Co0J7QktCJ0JDQmtCe0JIg0IjQntCS0JDQnQor0KjQntCS0InQkNCa0J7QkiDQnNCY0JvQntCoCivQqNCe0JLQidCQ0JrQntCSINCc0JjQm9Ce0KgKK9Co0J7QktCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KjQntCS0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Co0J7QktCJ0JDQndCh0JrQmCDQkNCd0JrQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQkdCe0KHQmNCJ0JrQkAor0KjQntCS0InQkNCd0KHQmtCYINCR0KDQkNCd0JrQngor0KjQntCS0InQkNCd0KHQmtCYINCU0JDQndCY0KbQkAor0KjQntCS0InQkNCd0KHQmtCYINCU0JDQndCY0JvQngor0KjQntCS0InQkNCd0KHQmtCYINCU0JDQndCa0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9CY0KjQkAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0JjQptCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0J7QnNCY0KAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCV0J3QmtCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JXQnNCY0JsKK9Co0J7QktCJ0JDQndCh0JrQmCDQiNCj0JvQmtCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0KjQntCS0InQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0KjQntCS0InQkNCd0KHQmtCYINCJ0KPQkdCe0JzQmNCgCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQkNCg0JPQmNCi0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCb0J7QqAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkiDQlNCgCivQqNCe0JLQidCQ0J3QodCa0Jgg0J3QkNCU0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQn9CQ0JLQm9CVCivQqNCe0JLQidCQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Co0J7QktCJ0JDQndCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQqNCe0JLQidCQ0J3QodCa0Jgg0KHQkNCS0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQodCi0J7QiNCQ0J0KK9Co0J/QkNCU0JjQiNCV0KAg0KLQkNCi0JjQiNCQ0J3QkAor0KjQn9CQ0JPQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Co0J/QkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Co0J/QkNCd0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQqNCf0JDQndCTINCb0JDQodCb0J4KK9Co0J/QkNCd0JMg0JfQntCb0KLQkNCdCivQqNCf0JDQndCY0Isg0JHQntCo0JrQngor0KjQn9CQ0J3QmNCLINCk0KDQkNCK0JAKK9Co0J/QkNCd0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQqNCf0JDQndCY0Isg0J3QkNCU0JAKK9Co0J/QkNCd0JjQiyDQntCi0J4KK9Co0J/QkNCK0JXQktCY0Isg0KHQo9CX0JDQndCQCivQqNCf0JDQitCV0JLQmNCLINCS0KPQmtCe0KLQkAor0KjQn9CQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQqNCf0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkAor0KjQn9CQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQqNCf0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KjQn9CQ0KDQkNCS0JDQm9CeINCc0JDQoNCY0IjQkAor0KjQn9CQ0KDQkNCS0JDQm9CeINCd0JDQotCQ0KjQkAor0KjQn9CQ0KDQkNCS0JDQm9CeINCh0JDQktCQCivQqNCf0JDQoNCQ0JLQkNCb0J4g0JfQlNCg0JDQktCa0J4KK9Co0J/QkNCg0J7QktCY0Isg0JjQm9CY0IjQkAor0KjQn9CV0JPQkNCgINCb0JDQl9CQ0KAKK9Co0J/QldCl0JDQoCDQnNCQ0KDQmNCI0JAKK9Co0J/QldChINCV0KLQldCbCivQqNCf0JXQoSDQktCY0JvQmNCcCivQqNCf0JXQoSDQktCY0JvQmNCcCivQqNCf0JjQptCQINCc0JjQntCU0KDQkNCTCivQqNCf0JjQmtCQINCc0JjQm9CQ0J0KK9Co0J/QmNCd0JTQm9CV0KAg0JzQkNCg0JjQiNCQCivQqNCf0JjQndCU0JvQldCgLdCi0KDQkdCe0IjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQn9CY0KDQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Co0J/QmNCg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQn9CY0KDQmNCLINCT0J7QodCf0JDQktCQCivQqNCf0JjQoNCY0Isg0JjQm9CVCivQqNCf0JjQoNCY0Isg0IjQntCS0J4KK9Co0J/QmNCg0JjQiyDQm9Cj0JrQkAor0KjQn9CY0KDQmNCLINCb0KPQmtCQCivQqNCf0JjQoNCY0Isg0JzQmNCb0JUKK9Co0J/QmNCg0JjQiyDQndCV0ILQngor0KjQn9CY0KDQmNCLINCe0JHQoNCQ0JQKK9Co0J/QmNCg0JjQiyDQodCi0J7QiNCQ0J0KK9Co0J/QmNCg0JjQiyDQotCe0JTQlQor0KjQn9CY0KDQmNCLINCj0KDQntCoCivQqNCf0JjQoNCY0Isg0JfQntCg0JDQnQor0KjQn9CY0KDQmtCQINCc0JDQotCY0JvQlAor0KjQn9CY0KDQotCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCf0JjQoNCi0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Co0J/QmNChINCU0JDQndCY0JvQngor0KjQn9CY0KEg0JTQkNCd0JjQm9CeCivQqNCf0JjQoSDQm9CQ0IjQntCoCivQqNCf0JjQoSDQnNCY0KDQiNCQ0J3QkAor0KjQn9CY0KEg0J3QkNCd0JTQntCgCivQqNCf0J7QitCQINCa0J7QktCY0InQmtCeCivQqNCf0KDQntClINCU0KDQldCd0JrQkAor0KjQn9Cg0J7QpSDQiNCQ0J3QmtCeCivQqNCf0KDQntClINCc0JDQk9CU0JAKK9Co0J/QoNCe0KUg0KHQm9CQ0JLQmtCeCivQqNCf0KDQntClINCh0KLQkNCd0JrQngor0KjQn9Cg0J7QpSDQodCi0JXQktCQ0J0KK9Co0KDQkNCl0J7QmyDQpdCY0JvQlNCQCivQqNCg0JDQpdCe0Jsg0JrQkNCg0JvQngor0KjQoNCQ0KXQntCbINCJ0KPQlNCV0JLQmNCiCivQqNCg0JDQiCDQktCb0JDQlNCY0JzQmNCgCivQqNCg0JDQmiDQiNCe0JLQmNCm0JAKK9Co0KDQkNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Co0KDQkNCaINCb0JDQodCb0J4KK9Co0KDQkNCaINCe0KLQngor0KjQoNCQ0Jog0J7QotCeCivQqNCg0JDQnCDQpdCj0JPQngor0KjQoNCQ0J3QpiDQoNCY0KXQkNCg0JQKK9Co0KDQkNCd0KYg0KDQmNCl0JDQoNCUCivQqNCg0JDQndCa0JAg0JDQndCQCivQqNCg0JDQndCa0JAg0JTQldCh0JDQndCa0JAKK9Co0KDQldCU0JXQoCDQiNCQ0J3QntCoCivQqNCg0JXQlNCV0KAg0IjQkNCd0J7QqAor0KjQoNCV0Jog0JDQndCU0KDQmNCI0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCg0JXQmiDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCi0JDQkdCYINCo0KLQldCk0JjQptCQCivQqNCi0JDQiNCdINCb0JjQktCY0IjQkAor0KjQotCQ0IjQndCV0KAg0JrQoNCV0KjQmNCc0JjQoAor0KjQotCQ0IjQndCV0KAg0JzQmNCg0IjQkNCd0JAKK9Co0KLQkNCI0J3QldCgINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCI0J3QldCgINCX0JLQntCd0JjQnNCY0KAKK9Co0KLQkNCI0J3QpNCV0JvQlCDQnNCY0KXQkNCI0JvQngor0KjQotCQ0IjQndCY0KYg0JzQmNCg0J7QodCb0JDQkgor0KjQotCQ0IjQndCY0KYg0KLQmNCR0J7QoAor0KjQotCQ0J3QlNCYINCa0JDQotCY0KbQkAor0KjQotCQ0J3QlNCYINCX0J7Qm9Ci0JDQnQor0KjQotCQ0J3QpNCV0Ikg0JDQm9Ce0IjQlwor0KjQotCQ0J3QpNCV0Ikg0JzQmNCg0J7QodCb0JDQkgor0KjQotCQ0J3Qk9CbINCC0J7QoNCC0JUKK9Co0KLQkNCK0J4t0KLQntCiINCT0JjQl9CV0JvQkAor0KjQotCQ0KDQmiDQldCT0J7QnSDQlNCY0J/QmyDQmNCd0JMKK9Co0KLQkNCg0Jog0JzQmNCg0JrQngor0KjQotCQ0KHQndCYINCI0J7QodCY0J8KK9Co0KLQkNCh0J3QmCDQmtCQ0KLQmNCm0JAKK9Co0KLQkNCi0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCj0KXQldCgINCI0J7QodCY0J8KK9Co0KLQldCR0Jsg0IjQldCb0JXQndCQCivQqNCi0JXQpNCQ0J0g0ILQntCg0ILQlQor0KjQotCV0KTQkNCdINCV0KPQgtCV0J0KK9Co0KLQldCk0JDQnSDQiNCj0JvQmNCI0JDQndCQCivQqNCi0JXQpNCQ0J0g0JzQkNCi0JjQiNCQCivQqNCi0JXQpNCQ0J0g0J7QodCa0JDQoAor0KjQotCV0KTQkNCdINCg0KPQlNCe0JvQpAor0KjQotCV0KTQkNCdINCi0KDQkNCI0JDQnQor0KjQotCV0KTQkNCd0JDQpiDQodCi0JXQktCQ0J0KK9Co0KLQldCk0JDQndCY0KbQmtCYINCc0JjQqNCeCivQqNCi0JXQpNCQ0J3QmNCU0JXQoSDQmtCQ0KDQm9CeINCU0KAKK9Co0KLQldCk0JDQndCY0JTQldChINCa0JDQoNCb0J4KK9Co0KLQldCk0JDQndCa0J4g0JLQmNCa0KLQntCg0JjQiNCQCivQqNCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Co0KLQldCk0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0KLQldCk0JrQniDQgtCe0KDQgtCVCivQqNCi0JXQpNCa0J4g0ILQntCg0ILQlQor0KjQotCV0KTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQqNCi0JXQpNCj0JvQmNCaINCI0J7QltCV0KQKK9Co0KLQldCT0JXQoCDQoNCe0JbQmAor0KjQotCV0JPQldCgINCS0JDQm9CV0J3QotCY0J3QkAor0KjQotCV0KXQldCgINCg0JDQlNCc0JjQm9CQCivQqNCi0JXQm9Cm0JXQoCDQiNCe0KHQmNCfCivQqNCi0JXQm9CYINCQ0J3QotCj0J0KK9Co0KLQldCg0JvQlSDQiNCe0KHQmNCfCivQqNCi0JXQoNCb0JUg0KHQotCV0JLQkNCdCivQqNCi0JXQoNCb0JXQnNCQ0J0g0JrQoNCY0KHQotCY0IjQkNCdCivQqNCi0JXQoNCb0JXQnNCQ0J0g0J/QldCg0JAKK9Co0KLQldCi0JjQiyDQmtCg0JjQodCi0JjQndCQCivQqNCi0JXQotCY0Isg0KLQmNCl0J7QnNCY0KAKK9Co0KLQldCi0JjQiyDQktCV0KHQndCQCivQqNCi0JXQotCY0Isg0JLQmNCU0JAKK9Co0KLQldCi0JjQnSDQpdCV0JvQldCd0JAKK9Co0KLQldCi0JjQnSDQnNCY0JvQkNCdCivQqNCi0JXQotCY0J0g0JzQmNCb0JUKK9Co0KLQldCi0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9Co0KLQldCS0JDQndCn0JXQkiDQidCj0JHQntCc0JjQoAor0KjQotCY0KbQkCDQktCY0KLQntCc0JjQoAor0KjQotCY0JPQm9CV0KAg0JjQktCQ0J0KK9Co0KLQmNCT0JvQldCgINCc0JjQm9CQ0J0KK9Co0KLQmNCT0JvQmNCLINCU0KDQkNCT0JDQnQor0KjQotCY0JPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KjQotCY0JrQkNCS0JDQpiDQmtCe0KHQntCS0JrQkAor0KjQotCY0JrQntCS0JDQpiDQodCf0JDQodCe0IjQlQor0KjQotCY0JzQkNCmINCe0KLQngor0KjQotCY0JzQkNCmINCg0KPQlNCe0JvQpAor0KjQotCe0JrQntCS0JDQpiDQiNCe0JLQkNCdCivQqNCi0J7QmtCe0JLQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9Co0KLQntCb0JHQkCDQl9CS0J7QndCY0JzQmNCgCivQqNCi0J7QoSDQmtCQ0KLQmNCm0JAKK9Co0KLQoNCQ0IjQpSDQmNCo0KLQktCQ0J0KK9Co0KLQoNCQ0IjQpSDQiNCe0KHQmNCfCivQqNCi0KDQkNCI0KUg0J7QotCi0J4KK9Co0KLQoNCQ0J3Qk9CQ0KAg0J3QkNCU0JAKK9Co0KLQoNCQ0J3Qk9CQ0KDQntCSINCR0J7QoNCY0JLQntCICivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0KLQoNCQ0J3Qk9CQ0KDQntCSINCI0JXQm9CV0J3QkAor0KjQotCg0JDQndCT0JDQoNCe0JIg0IjQldCb0JXQndCQCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQnNCY0JvQmNCm0JAKK9Co0KLQoNCQ0J3Qk9CQ0KDQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Co0KLQoNCQ0J/QkNCI0JXQktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KjQotCg0JDQodCV0KAg0JzQmNCl0JDQiNCb0J4g0JTQoCDQm9CV0JrQkNCgCivQqNCi0KDQkNCh0JXQoCDQndCQ0JTQkAor0KjQotCg0JDQo9CRINCV0KDQltCV0JHQldCiCivQqNCi0KDQkNCj0JEg0JjQqNCi0JLQkNCdCivQqNCi0KDQkNCj0JEg0KHQotCV0JLQkNCdCivQqNCi0KDQkdCQINCU0JDQndCY0JvQngor0KjQotCg0JHQkCDQnNCY0JvQkNCdCivQqNCi0KDQkdCQ0KfQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Co0KLQoNCR0JDQpiDQltCV0InQmtCeCivQqNCi0KDQkdCQ0KYg0ILQntCg0ILQlQor0KjQotCg0JHQkNCmINCC0KPQoNCeCivQqNCi0KDQkdCQ0KYg0JDQndCC0JXQm9Ca0JAKK9Co0KLQoNCR0JDQpiDQkdCe0KjQmtCeCivQqNCi0KDQkdCQ0KYg0JHQntCg0JjQodCb0JDQkgor0KjQotCg0JHQkNCmINCR0KDQkNCd0JrQkAor0KjQotCg0JHQkNCmINCU0JDQoNCY0J3QmtCQCivQqNCi0KDQkdCQ0KYg0JTQldCh0JDQndCa0JAKK9Co0KLQoNCR0JDQpiDQlNCg0JDQk9CQ0J0KK9Co0KLQoNCR0JDQpiDQlNCj0KjQkNCdCivQqNCi0KDQkdCQ0KYg0JTQo9Co0JDQnQor0KjQotCg0JHQkNCmINCU0KPQqNCQ0J0KK9Co0KLQoNCR0JDQpiDQlNCj0KjQkNCdCivQqNCi0KDQkdCQ0KYg0IjQntCS0JDQnQor0KjQotCg0JHQkNCmINCJ0KPQkdCY0KbQkAor0KjQotCg0JHQkNCmINCJ0KPQkdCe0JzQmNCgCivQqNCi0KDQkdCQ0KYg0JzQkNCg0JjQiNCQCivQqNCi0KDQkdCQ0KYg0JzQmNCL0J4KK9Co0KLQoNCR0JDQpiDQnNCY0IvQngor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J3QmtCeCivQqNCi0KDQkdCQ0KYg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J0KK9Co0KLQoNCR0JDQpiDQnNCY0JvQkNCdCivQqNCi0KDQkdCQ0KYg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCmINCc0JjQm9CV0J3QkAor0KjQotCg0JHQkNCmINCc0JjQm9CY0KbQkAor0KjQotCg0JHQkNCmINCc0JjQm9CY0JLQntCICivQqNCi0KDQkdCQ0KYg0JzQmNCb0J7QqAor0KjQotCg0JHQkNCmINCc0JjQoNCI0JDQndCQCivQqNCi0KDQkdCQ0KYg0JzQmNCg0JrQngor0KjQotCg0JHQkNCmINCc0J7QnNCn0JjQm9CeCivQqNCi0KDQkdCQ0KYg0J3QldCc0JDQitCQCivQqNCi0KDQkdCQ0KYg0J3QmNCa0J7Qm9CQCivQqNCi0KDQkdCQ0KYg0KDQkNCU0J7QiNCa0JAKK9Co0KLQoNCR0JDQpiDQoNCQ0JTQntCS0JDQnQor0KjQotCg0JHQkNCmINCh0JDQktCa0JAKK9Co0KLQoNCR0JDQpiDQodCb0JDQktCY0KbQkAor0KjQotCg0JHQkNCmINCh0JvQkNCS0JrQngor0KjQotCg0JHQkNCmINCh0KLQkNCd0JAKK9Co0KLQoNCR0JDQpiDQodCi0JXQktCQ0J0KK9Co0KLQoNCR0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQqNCi0KDQkdCQ0KYg0KPQoNCe0KgKK9Co0KLQoNCR0JDQpiDQktCb0JDQlNCeCivQqNCi0KDQkdCQ0KYg0JLQo9Ca0JjQptCQCivQqNCi0KDQkdCQ0KYg0JfQntCg0JjQptCQCivQqNCi0KDQkdCV0J3QmiDQmNCS0JDQndCa0JAKK9Co0KLQoNCR0JXQndCaINCd0JjQmtCe0JvQkAor0KjQotCg0JHQntCI0JAg0JbQmNCS0JrQngor0KjQotCg0JHQntCI0JAg0ILQntCg0ILQlQor0KjQotCg0JHQntCI0JAg0ILQntCg0ILQlQor0KjQotCg0JHQntCI0JAg0KDQkNCU0JAKK9Co0KLQoNCR0J7QiNCQINCg0JDQlNCY0JLQntCICivQqNCi0KDQkdCe0IjQkCDQodCi0JXQktCQ0J0KK9Co0KLQoNCR0J7QiNCVINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQotCg0JjQptCa0Jgg0IjQntCh0JjQnwor0KjQotCg0Jog0IjQntCh0JjQnwor0KjQotCg0Jog0JzQkNCg0JjQiNCQCivQqNCi0KDQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KjQotCg0JrQmNCLINCc0J7QnNCY0KAKK9Co0KLQoNCe0Jog0JbQldCJ0JrQngor0KjQotCg0KLQkNCaINCh0JvQkNCS0JrQngor0KjQotCg0KLQkNCaINCh0JvQntCR0J7QlNCQ0J0KK9Co0KLQo9Cb0JAg0JzQmNCb0JUKK9Co0KLQo9Cb0JjQiyDQkdCe0JbQmNCU0JDQoAor0KjQotCj0JvQmNCLINCT0J7QoNCQ0J0KK9Co0KLQo9Cb0JjQiyDQiNCe0JLQngor0KjQotCj0JvQmNCLINCc0JDQoNCa0J4KK9Co0KLQo9Cb0JjQiyDQoNCQ0JTQntCS0JDQnQor0KjQotCj0JzQn9CkINCl0JXQm9Cc0KPQogor0KjQotCj0JzQn9CkINCe0KHQktCQ0JvQlAor0KjQo9Co0KfQldCS0JjQiyDQiNCe0JLQngor0KjQo9Co0KfQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KjQo9Co0JAg0KfQldCU0J7QnNCY0KAKK9Co0KPQqNCQINCU0KPQqNCQ0J0KK9Co0KPQqNCQINCI0J7QktCQ0J0KK9Co0KPQqNCQINCa0JXQnNCQ0JsKK9Co0KPQqNCQINCh0KLQntCI0JDQndCa0JAKK9Co0KPQqNCQ0Jog0ILQntCa0JAKK9Co0KPQqNCQ0Jog0ILQntCg0ILQlQor0KjQo9Co0JDQmiDQk9Ce0KHQn9CQ0JLQkAor0KjQo9Co0JDQmiDQnNCQ0KDQmNCI0JAKK9Co0KPQqNCQ0Jog0J3QldCS0JXQndCQCivQqNCj0KjQkNCaINCh0KLQkNCc0JXQndCa0J4g0JTQoAor0KjQo9Co0JDQmiDQotCe0JzQmNCh0JvQkNCSCivQqNCj0KjQkNCa0J7QkiDQn9CQ0IjQkAor0KjQo9Co0JXQktCh0JrQmCDQnNCY0JvQkNCdCivQqNCj0KjQmNCLINCg0JjQodCi0J4KK9Co0KPQqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KjQo9Co0JrQkNCS0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQqNCj0KjQmtCQ0JLQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQqNCj0KjQmtCe0JLQmNCLINCR0J7QoNCY0KEKK9Co0KPQqNCJ0JjQmiDQiNCe0JLQkNCdCivQqNCj0KjQitCQ0KAg0JbQkNCg0JrQngor0KjQo9Co0IrQkNCgINCR0J7QoNCY0KHQm9CQ0JIKK9Co0KPQqNCK0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQqNCj0KjQitCQ0KAg0JzQmNCl0JDQiNCb0J4KK9Co0KPQqNCK0JDQoCDQnNCY0JvQkNCdCivQqNCj0KjQitCQ0KAg0JzQmNCb0JDQnQor0KjQo9Co0IrQkNCgINCf0JXQotCQ0KAKK9Co0KPQqNCK0JDQoCDQn9CV0KLQkNCgCivQqNCj0KjQitCQ0KAg0J/QldCi0JDQoAor0KjQo9Co0IrQkNCgINCh0JvQkNCS0JrQngor0KjQo9Co0IrQkNCgINCh0J7QpNCY0IjQkAor0KjQo9Co0IrQkNCgINCh0KLQkNCd0JrQngor0KjQo9Co0IrQldCS0JjQiyDQlNCj0KjQkNCdCivQqNCj0KjQitCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQqNCj0KjQitCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Co0KPQqNCK0JjQiyDQodCi0JDQndCa0JAKK9Co0KPQqNCi0KDQkNCdINCc0JvQkNCU0JXQnQor0KjQo9Co0KLQo9CcINCI0J7QktCQ0J0KK9Co0KPQi9CQ0Jog0JzQmNCb0JDQnQor0KjQo9CL0J7QkiDQi9CY0KDQkAor0KjQo9CL0J7QkiDQlNCQ0J3QmNCm0JAKK9Co0KPQi9Ce0JIg0JTQkNCd0JjQm9CeCivQqNCj0IvQntCSINCc0JjQm9Ce0KgKK9Co0KPQi9Ce0JIg0JLQo9Ca0J7QodCQ0JLQkAor0KjQo9CR0JDQoNCQINCc0JvQkNCU0JXQnQor0KjQo9CR0JDQoNCY0Isg0JvQo9Ca0JAKK9Co0KPQkdCQ0KDQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KjQo9CR0JDQoNCY0Isg0JfQntCg0JDQnQor0KjQo9CR0JXQoNCiINCY0JvQntCd0JrQkAor0KjQo9CR0JjQiyDQiNCe0JLQkNCd0JrQkAor0KjQo9CR0J7QiiDQodCY0JvQktCY0KPQoQor0KjQo9CU0JDQoCDQiNCe0JbQldCkCivQqNCj0JTQkNCgINCI0J7QodCY0J8KK9Co0KPQlNCY0KbQmtCYINCI0J7QltCV0KQKK9Co0KPQk9CY0Isg0JzQmNCb0JDQnQor0KjQo9CT0JjQiyDQndCQ0JTQkAor0KjQo9CT0JjQiyDQn9CV0KLQkNCgCivQqNCj0JPQmNCdINCW0JjQktCa0J4KK9Co0KPQk9CY0J0g0JHQldCg0JjQodCQ0JIKK9Co0KPQk9CY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQqNCj0JPQmNCdINCb0JXQmtCh0JAKK9Co0KPQk9CY0J0g0InQmNCJ0JDQndCQCivQqNCj0JPQmNCdINCJ0JjQidCQ0J3QkAor0KjQo9CT0JjQnSDQnNCY0JvQmtCQCivQqNCj0JPQmNCdINCc0JjQntCU0KDQkNCTCivQqNCj0JPQmNCdINCc0JjQntCU0KDQkNCTCivQqNCj0JPQmNCdINCg0JDQlNCQCivQqNCj0JPQmNCdINCg0JDQndCa0JAKK9Co0KPQpdCQ0IjQlNCQINCC0KPQoNCQCivQqNCj0KXQkNCI0JTQkCDQmNCc0KDQlQor0KjQo9Cl0JDQiNCU0JAg0JvQkNCI0J7QqAor0KjQo9CI0JTQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCj0IjQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Co0KPQiNCY0Isg0KDQldCP0J4KK9Co0KPQiNCY0KbQkCDQnNCY0JvQkNCdCivQqNCj0JrQkCDQkNCb0JXQmtCh0JAKK9Co0KPQmtCQ0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQqNCj0JrQkNCg0JAg0JHQntCT0JTQkNCdCivQqNCj0JrQkNCg0JAg0JTQnNCY0KLQkNCgCivQqNCj0JrQkNCg0JAg0JTQo9Co0JDQnQor0KjQo9Ca0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQo9Ca0JjQiyDQnNCY0KDQntCJ0KPQkQor0KjQo9Ca0JjQiyDQl9Ce0KDQmNCm0JAKK9Co0KPQmtCb0JAg0KHQm9CQ0JLQmtCeCivQqNCj0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQqNCj0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQqNCj0JrQo9Cd0JTQkCDQnNCQ0KDQmNCI0JAKK9Co0KPQmtCj0J3QlNCQINCc0JjQm9CQ0J0KK9Co0KPQmtCj0KDQnNCQINCh0KLQldCS0J4KK9Co0KPQm9CQ0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQqNCj0JvQpiDQkNCd0JTQoNCQ0KgKK9Co0KPQm9CmINCU0JXQm9CY0JzQmNCgINCU0KAg0J/QoNCe0KQKK9Co0KPQm9CmINCY0JzQoNCVINCU0JjQn9CbINCY0J3Qkwor0KjQo9Cb0KYg0JjQnNCg0JUKK9Co0KPQm9CmINCI0J7QltCV0KQKK9Co0KPQm9CmINCI0J7QltCV0KQKK9Co0KPQm9CmINCa0J7QodCQ0J3QkAor0KjQo9Cb0KYg0JLQldCg0JAKK9Co0KPQm9CV0J3QotCY0Isg0JzQmNCb0JUKK9Co0KPQm9Cl0J7QpCDQiNCe0JbQldCkINCa0IrQmNCW0JXQktCd0JjQmgor0KjQo9CJ0JDQnSDQkNCd0JAKK9Co0KPQidCQ0J0g0IjQkNCd0JrQngor0KjQo9CJ0JDQnSDQiNCQ0J0KK9Co0KPQidCQ0J0g0IjQkNCdCivQqNCj0InQkNCdINCI0JDQoNCe0KHQm9CQ0JIKK9Co0KPQidCQ0J0g0J/QkNCbCivQqNCj0InQnNCQ0J3QkNCmLdCo0JXQi9CV0KDQntCSINCc0JjQoNCI0JDQndCQCivQqNCj0InQnNCQ0J3QkNCmINCR0KDQkNCd0JjQnNCY0KAKK9Co0KPQidCc0JDQndCQ0KYg0IjQntCS0JDQnQor0KjQo9CJ0JzQkNCd0JDQpiDQo9Cg0J7QqAor0KjQo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0KjQo9Cc0JDQpdCV0KAg0JjQm9Ce0J3QkAor0KjQo9Cc0JDQpdCV0KAg0IjQkNCd0J7QqAor0KjQo9Cc0JDQiNCh0JrQmCDQkdCb0JDQltCV0J3QmtCQCivQqNCj0JzQkNCdINCS0JjQotCe0JzQmNCgCivQqNCj0JzQkNCd0J7QktCQ0KYg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQnNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0KPQnNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Co0KPQnNCQ0KAg0JHQntCW0J4KK9Co0KPQnNCQ0KAg0JzQmNCb0JDQnQor0KjQo9Cc0JDQoCDQodCY0JzQkAor0KjQo9Cc0JDQoNCV0JLQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9Co0KPQnNCQ0KDQntCSINCd0JjQmtCe0JvQkAor0KjQo9Cc0JDQoNCj0J3QkCDQptCS0JXQotCQCivQqNCj0JzQkNCg0KPQndCY0Isg0J/QkNCS0JvQlQor0KjQo9Cc0JXQpiDQldCg0J3QkAor0KjQo9Cc0JXQpiDQiNCQ0J3QntCoCivQqNCj0JzQmNCLINCc0JvQkNCU0JXQnQor0KjQo9Cc0J7QitCQINCc0JjQm9CQ0J0KK9Co0KPQndCU0J7QktCQINCk0JvQntCg0JAKK9Co0KPQndCY0Isg0IjQntCS0J4KK9Co0KPQitCY0Isg0J/QldCi0JDQoAor0KjQo9CK0JrQkCDQnNCQ0KDQmtCeCivQqNCj0IrQmtCQINCc0JjQm9CY0KbQkAor0KjQo9CK0JrQkCDQoNCQ0KLQmtCeCivQqNCj0J3QmtCQINCI0J7QktCQ0J0KK9Co0KPQndCa0JjQiyDQm9CQ0JfQkNCgCivQqNCj0J3QotCY0Isg0JzQkNCi0JXQiAor0KjQo9Cf0JUg0KjQmNCc0JUKK9Co0KPQn9CY0KbQkCDQlNCj0KjQkNCdCivQqNCj0J/QmNCm0JAg0JvQkNCX0JDQoAor0KjQo9Cf0JjQptCQINCb0JDQl9CQCivQqNCj0J/QmNCm0JAg0InQo9CR0JjQptCQCivQqNCj0J/QmNCm0JAg0JzQkNCg0JAKK9Co0KPQn9CY0KbQkCDQnNCY0JvQkNCdCivQqNCj0J/QmNCm0JAg0JzQmNCb0J7QqAor0KjQo9Cf0JjQptCQINCf0JXQotCQ0KAKK9Co0KPQn9CY0KbQkCDQodCb0JDQktCa0J4KK9Co0KPQn9CY0KbQkCDQktCQ0KHQkAor0KjQo9Cf0KPQoiDQltCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0KjQo9Cf0KPQoiDQgtCj0KDQngor0KjQo9Cf0KPQoiDQlNCj0KjQkNCdCivQqNCj0J/Qo9CiINCh0JvQntCR0J7QlNCQ0J0KK9Co0KPQn9Cj0KIg0KHQktCV0KLQntCX0JDQoAor0KjQo9Cg0JDQitCYINCi0JXQoNCV0JfQmNCI0JAKK9Co0KPQoNCR0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KjQo9Cg0IjQkNCdINCI0JDQndCe0KgKK9Co0KPQoNCI0JDQnSDQiNCe0JLQkNCdCivQqNCj0KDQiNCQ0J3Qp9CV0JIg0JjQktCQ0J0KK9Co0KPQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Co0KPQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQo9Cg0JrQkNCb0J7QktCY0Isg0JzQmNCb0JXQndCQCivQqNCj0KDQmtCe0JLQmNCLINCU0J7QoNCQ0J0KK9Co0KPQoNCa0J7QktCY0Isg0JjQoNCk0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQoNCb0JDQnSDQp9CV0JTQntCc0JjQoAor0KjQo9Cg0JvQkNCdINCC0J7QoNCC0J4KK9Co0KPQoNCb0JDQnSDQlNCg0JDQk9Ce0JzQmNCgCivQqNCj0KDQm9CQ0J0g0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCj0KDQm9CQ0J0g0JPQntCI0JrQngor0KjQo9Cg0JvQkNCdINCI0J7QktCQ0J0KK9Co0KPQoNCb0JDQnSDQnNCQ0KDQmNCd0JrQngor0KjQo9Cg0JvQkNCdINCc0JDQoNCa0J4KK9Co0KPQoNCb0JDQnSDQnNCY0JvQntCoCivQqNCj0KDQm9CQ0J0g0JzQmNCg0JrQngor0KjQo9Cg0JvQkNCdINCc0J7QnNCY0KAKK9Co0KPQoNCb0JDQnSDQndCV0JTQldCJ0JrQngor0KjQo9Cg0JvQkNCdINCg0KPQqNCa0J4KK9Co0KPQoNCb0JDQnSDQktCe0IjQmNCh0JvQkNCSCivQqNCj0KDQm9CQ0J0g0JLQo9Ca0J7QodCQ0JLQkAor0KjQo9Ch0KLQldCgINCd0JXQk9Ce0KHQm9CQ0JIKK9Co0KPQodCi0KDQmNCI0JDQnSDQntCb0JPQkAor0KjQo9Ci0JDQndCe0JLQmNCLINCd0JDQlNCQCivQqNCj0KLQmNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0KPQotCY0JvQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KjQo9Ci0KPQm9Ce0JLQmNCLINCU0JDQndCa0JAKK9Co0KPQotCj0JvQntCS0JjQiyDQktCV0KHQndCQCivQqNCj0KLQktCY0Isg0JHQoNCQ0J3QmtCQCivQqNCj0JLQkNCaINCc0JjQntCU0KDQkNCTCivQqNCj0JLQkNCa0J7QkiDQlNCQ0KDQmNCd0JrQkAor0KjQo9CS0JDQmtCe0JIg0JTQldCI0JDQnQor0KjQo9CS0JDQmtCe0JIg0IjQntCS0JDQnQor0KjQo9CS0JDQmtCe0JIg0JzQmNCb0JXQndCQCivQqNCj0JLQkNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0KjQo9CS0JDQmtCe0JIg0KHQotCV0JLQkNCdCivQqNCj0JLQkNCa0J7QkiDQotCY0KXQntCc0JjQoCDQlNCgCivQqNCj0JLQkNCa0J7QkiDQktCV0KHQldCb0JjQndCa0JAKK9Co0KPQktCQ0JrQntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0KjQo9CS0JDQmtCe0JLQmNCLINCR0J7Qk9Ce0KHQm9CQ0JIKK9Co0KPQktCQ0JrQntCS0JjQiyDQlNCQ0JzQiNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQqNCj0JLQkNCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KjQo9CS0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Co0JLQkNCRINCV0KHQotCV0KAKK9Co0JLQkNCRINCl0JXQndCg0JjQiNCV0KLQkAor0KjQktCQ0JPQldCgINCc0JDQoNCi0JjQnQor0KjQktCQ0IjQkdCV0KDQmNCLINCS0JjQoNCT0JjQndCY0IjQkAor0KjQktCQ0IjQptCV0KAg0JPQmNCX0JXQm9CQCivQqNCS0JDQiNCm0JXQoCDQmNCS0JjQptCQCivQqNCS0JDQiNCm0JXQoC3QoNCQ0JrQmNCLINCY0KDQldCd0JAKK9Co0JLQkNCI0KbQldCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Co0JLQkNCd0JTQmNCb0JjQmiDQiNCe0JbQldCkCivQqNCS0JDQoNCmINCY0JvQntCd0JAKK9Co0JLQkNCg0KYg0KLQmNCR0J7QoAor0KjQktCQ0KDQpiDQktCb0JDQlNCY0JzQmNCgCivQqNCS0JXQlNCY0Isg0JDQi9CY0JwKK9Co0JLQldCU0JjQiyDQlNCj0KjQkNCdCivQqNCS0JXQlNCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQqNCS0JXQlNCY0Isg0JXQoNCW0JjQmtCQCivQqNCS0JXQlNCY0Isg0JPQoNCj0IjQkAor0KjQktCV0JTQmNCLINCI0J7QktCQ0J0KK9Co0JLQldCU0JjQiyDQnNCY0JvQmNCm0JAKK9Co0JLQldCU0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQktCV0JTQmNCLINCc0JjQm9Cj0KLQmNCdCivQqNCS0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQqNCS0JXQlNCY0Isg0J/QldCi0JDQoAor0KjQktCV0InQkCDQkdCe0JPQlNCQ0J0KK9Co0JLQldCJ0JAg0J/QldCi0JDQoAor0KjQktCV0Jwg0ILQo9Cg0JAKK9Co0JLQldCd0JTQkCDQk9Ce0KDQkNCdCivQqNCS0JXQoCDQmtCQ0KDQm9CeCivQqNCS0JXQoNCV0KAg0KDQo9CU0J7Qm9CkCivQqNCS0JXQoNCa0J4g0JDQndCC0JXQm9CY0IjQkAor0KjQktCY0J3QlCDQndCV0J3QkNCUCivQqNCS0J7QkSDQiNCe0KHQmNCfCivQqNCS0J7QkSDQm9CQ0IjQntCoCivQqNCS0J7QitCQINCW0JXQidCa0J4KK9Co0JLQntCK0JAg0ILQo9Cg0ILQmNCd0JrQkAor0KjQktCe0IrQkCDQkdCY0InQkNCd0JAKK9Co0JLQntCK0JAg0JHQntCo0JrQngor0KjQktCe0IrQkCDQkdCe0KjQmtCeCivQqNCS0J7QitCQINCR0J7QltCY0JTQkNCgCivQqNCS0J7QitCQINCR0J7QoNCY0JLQntCICivQqNCS0J7QitCQINCR0KDQkNCd0JrQngor0KjQktCe0IrQkCDQlNCg0JDQk9Ce0InQo9CRCivQqNCS0J7QitCQINCU0KPQqNCQ0J0KK9Co0JLQntCK0JAg0JTQo9Co0JrQngor0KjQktCe0IrQkCDQnNCY0JvQkNCdCivQqNCS0J7QitCQINCc0JjQoNCQCivQqNCS0J7QitCQINCg0JDQotCa0J4KK9Co0JLQntCK0JAg0KDQkNCi0JrQngor0KjQktCe0IrQkCDQodCS0JXQotCe0JfQkNCgCivQqNCS0J7QitCQINCS0JXQidCa0J4KK9Co0JLQoNCQ0JrQkCDQpNCg0JDQitCeCivQqNCS0KDQkNCa0JAg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQktCg0JDQmtCQINCh0KLQldCS0JDQnQor0IvQkNCL0JjQiyDQlNCQ0J3QmNCm0JAKK9CL0JDQi9CY0Isg0JTQo9Co0JDQnQor0IvQkNCL0JjQiyDQnNCQ0KDQmtCeCivQi9CQ0IvQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9CL0JDQpdCj0J0g0JrQkNCg0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CL0JDQiNCQINCS0JDQndCa0JAKK9CL0JDQmtCY0Isg0JPQmNCX0JAKK9CL0JDQm9CQ0KHQkNCdINCI0J7QktCQ0J0KK9CL0JDQm9CQ0KHQkNCdINCh0KLQntCI0JDQnQor0IvQkNCb0JXQotCQINCY0JLQmNCm0JAKK9CL0JDQm9CY0Isg0JjQm9CY0IjQkAor0IvQkNCb0JjQiyDQiNCe0JLQkNCdCivQi9CQ0JvQmNCLINCI0J7QktCQ0J0KK9CL0JDQm9CY0Isg0JvQo9Ca0JAKK9CL0JDQm9CY0Isg0JzQmNCb0J7QqAor0IvQkNCb0JjQiyDQnNCe0JzQp9CY0JvQngor0IvQkNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQi9CQ0JvQmNCLINCX0J7QoNCQ0J0KK9CL0JDQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9CL0JDQm9Ce0JLQmNCLINCb0JDQmtCY0IsKK9CL0JDQm9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQi9CQ0JvQo9Co0JjQiyDQiNCQ0JrQntCSCivQi9CQ0KLQmNCLINCg0JDQlNCV0J3QmtCeCivQi9CQ0KLQmNCLINCh0JzQmNCJ0JDQndCQCivQi9CQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CL0JDQotCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQi9CQ0KLQntCS0JjQiyDQnNCQ0KXQmNCiCivQi9CQ0KLQntCS0JjQiyDQodCY0JzQkNCdCivQi9CQ0JLQkNCgINCc0JDQoNCa0J4KK9CL0JDQl9CY0Isg0ILQntCg0ILQlQor0IvQkNCX0JjQiyDQnNCY0JvQlQor0IvQkNCX0JjQiyDQnNCY0JvQlQor0IvQkNCX0JjQiyDQn9CV0KLQkNCgCivQi9CV0JHQmNCLINCR0J7QoNCY0JLQntCICivQi9CV0JHQmNCLINCc0JjQm9CQ0J0KK9CL0JXQkdCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CL0JXQkdCe0JLQmNCLINCd0JXQndCQ0JQKK9CL0JXQpdCQINCR0KDQkNCd0JUKK9CL0JXQiNCY0Isg0JTQo9Co0JDQnQor0IvQldCI0JjQiyDQlNCj0KjQkNCdCivQi9CV0JvQkNCfINCc0JvQkNCU0JXQnQor0IvQldCb0JDQnyDQodCS0JXQotCe0JfQkNCgCivQi9CV0JvQmNCLINCJ0KPQkdCQCivQi9CV0JvQmNCLINCh0JvQkNCS0JrQngor0IvQldCb0JjQiyDQktCY0JrQotCe0KDQmNCI0JAKK9CL0JXQndCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IvQldCg0JDQnSDQkdCe0KjQmtCeCivQi9CV0KDQkNCdINCU0KPQqNCQ0J0KK9CL0JXQoNCQ0J0g0IjQldCb0JrQkAor0IvQldCg0JDQnSDQnNCY0JvQldCd0JrQngor0IvQldCg0JDQnSDQodCi0J7QiNCQ0J0KK9CL0JXQoNCQ0J0g0JLQldCJ0JrQngor0IvQldCg0JDQnSDQl9Ce0KDQkNCd0JrQkAor0IvQldCg0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQi9CV0KDQkNCd0JjQiyDQnNCY0JvQkNCdCivQi9CV0KDQkNCd0JjQiyDQnNCY0JvQmNCm0JAKK9CL0JXQoNCQ0J3QmNCLINCg0JDQlNCY0J3QmtCQCivQi9CV0KDQkNCd0JjQiyDQodCd0JXQltCQ0J3QkAor0IvQldCg0JDQndCY0Isg0JfQntCg0JDQnQor0IvQldCg0JjQnNCQ0JPQmNCLINCV0KLQpdCV0JwKK9CL0JXQoNCc0J7Qki3QmtCQ0JLQldCn0JDQnSDQkdCe0IjQkNCd0JAKK9CL0JXQodCQ0KDQntCSINCW0JDQoNCa0J4KK9CL0JXQodCQ0KDQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0IvQldCh0JDQoNCe0JIg0KDQo9CW0JjQptCQCivQi9CV0KHQkNCg0J7QkiDQodCY0JzQkAor0IvQldCh0JDQoNCe0JIg0KHQotCV0JLQkNCdCivQi9CV0KHQkNCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQi9CV0KHQkNCg0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9CL0JXQodCQ0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IvQldCi0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQi9CV0KLQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQi9CV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQi9CV0KLQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQi9CV0KLQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CL0JXQotCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CL0JXQotCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQi9CV0KLQntCI0JXQktCY0Isg0JHQntCh0JAKK9CL0JXQotCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQi9CV0KLQntCI0JXQktCY0Isg0IjQntCS0J4KK9CL0JXQotCe0IjQldCS0JjQiyDQnNCY0JvQntCoCivQi9CV0KLQntCI0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CL0JXQotCe0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9CV0KLQntCI0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9CL0JXQotCe0IjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IvQldCS0JDQnyDQkdCe0JbQkAor0IvQmNCo0JjQnSDQlNCj0KjQkNCd0JrQkAor0IvQmNCd0JrQo9CbINCh0JDQktCQCivQi9CY0J3QmtCj0Jsg0JLQkNCb0KLQkAor0IvQmNCf0JUg0JXQoNCW0JXQkdCV0KIKK9CL0JjQn9Cg0J7QktCQ0KYg0KHQkNCS0JAKK9CL0JjQn9Cg0J7QktCQ0KYg0KLQntCo0JAKK9CL0JjQn9Cg0J7QktCQ0KYg0JfQlNCg0JDQktCa0J4KK9CL0JjQoNCQ0Jog0JzQmNCb0J7QoNCQ0JQKK9CL0JjQoNCQ0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IvQmNCg0JDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CL0JjQoNCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQmNCg0JDQmtCe0JLQmNCLINCh0JDQiNCQCivQi9CY0KDQldCS0KHQmtCYINCR0KPQlNCY0JzQmNCgCivQi9CY0KDQmNCLINCL0JjQoNCQCivQi9CY0KDQmNCLINCW0JjQktCa0JAKK9CL0JjQoNCY0Isg0JbQmNCS0JrQkAor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CL0JjQoNCY0Isg0JDQndCY0KbQkAor0IvQmNCg0JjQiyDQkNCd0JjQotCQCivQi9CY0KDQmNCLINCR0J7QqNCa0J4KK9CL0JjQoNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0IvQmNCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0IvQmNCg0JjQiyDQkdCe0JbQngor0IvQmNCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0JHQntCg0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQkdCg0JDQndCa0JAKK9CL0JjQoNCY0Isg0JHQoNCQ0J3QmtCeCivQi9CY0KDQmNCLINCU0JDQndCY0KbQkAor0IvQmNCg0JjQiyDQlNCQ0J3QmNCb0J4KK9CL0JjQoNCY0Isg0JTQldCh0JDQndCa0JAKK9CL0JjQoNCY0Isg0JTQmNCS0JrQngor0IvQmNCg0JjQiyDQlNCe0JHQoNCY0JvQkAor0IvQmNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CL0JjQoNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CL0JjQoNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CL0JjQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IvQmNCg0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0IvQmNCg0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQmNCg0JjQiyDQlNCj0KjQkNCdCivQi9CY0KDQmNCLINCU0KPQqNCQ0J0KK9CL0JjQoNCY0Isg0JTQo9Co0JjQptCQCivQi9CY0KDQmNCLINCT0JDQktCg0JjQm9CeCivQi9CY0KDQmNCLINCT0J7QoNCU0JDQndCQCivQi9CY0KDQmNCLINCY0JLQkNCd0JrQkAor0IvQmNCg0JjQiyDQmNCS0JDQnQor0IvQmNCg0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IvQmNCg0JjQiyDQiNCe0KDQlNCQ0J0KK9CL0JjQoNCY0Isg0IjQntCS0JDQndCa0JAKK9CL0JjQoNCY0Isg0IjQntCS0JDQnQor0IvQmNCg0JjQiyDQiNCe0JLQkNCdCivQi9CY0KDQmNCLINCI0J7QktCQ0J0KK9CL0JjQoNCY0Isg0JrQkNCc0JXQndCa0J4KK9CL0JjQoNCY0Isg0JrQkNCi0JjQptCQCivQi9CY0KDQmNCLINCb0JDQl9CQ0KAKK9CL0JjQoNCY0Isg0JvQldCd0JrQkAor0IvQmNCg0JjQiyDQidCj0JHQmNCm0JAKK9CL0JjQoNCY0Isg0InQo9CR0JjQptCQCivQi9CY0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQi9CY0KDQmNCLINCc0JDQoNCa0J4KK9CL0JjQoNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CL0JjQoNCY0Isg0JzQmNCb0JDQnQor0IvQmNCg0JjQiyDQnNCY0JvQldCd0JrQngor0IvQmNCg0JjQiyDQnNCY0JvQldCd0JrQngor0IvQmNCg0JjQiyDQnNCY0JvQldCi0JAKK9CL0JjQoNCY0Isg0JzQmNCb0JjQptCQCivQi9CY0KDQmNCLINCc0JjQm9Ca0JAKK9CL0JjQoNCY0Isg0JzQmNCb0J7QqAor0IvQmNCg0JjQiyDQnNCY0JvQntCoCivQi9CY0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQi9CY0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQi9CY0KDQmNCLINCc0JjQntCU0KDQkNCTCivQi9CY0KDQmNCLINCc0JjQoNCQCivQi9CY0KDQmNCLINCc0JvQkNCU0JXQnQor0IvQmNCg0JjQiyDQndCY0JrQntCb0JAKK9CL0JjQoNCY0Isg0J/QkNCI0JAKK9CL0JjQoNCY0Isg0J/QldCi0JDQoAor0IvQmNCg0JjQiyDQn9CV0KLQkNCgCivQi9CY0KDQmNCLLdCf0JXQotCg0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0IvQmNCg0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IvQmNCg0JjQiyDQoNCQ0JTQlQor0IvQmNCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IvQmNCg0JjQiyDQoNCQ0JTQnNCY0JvQngor0IvQmNCg0JjQiyDQoNCQ0JTQntCc0JjQoAor0IvQmNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0IvQmNCg0JjQiyDQoNCe0JHQldCg0KIKK9CL0JjQoNCY0Isg0KHQkNCS0JAKK9CL0JjQoNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CL0JjQoNCY0Isg0KHQm9CQ0JLQmtCeCivQi9CY0KDQmNCLINCh0JvQkNCS0JrQngor0IvQmNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQi9CY0KDQmNCLINCh0JzQmNCJ0JAKK9CL0JjQoNCY0Isg0KHQntCk0JjQiNCQCivQi9CY0KDQmNCLINCh0KDQldCU0J7QiNCVCivQi9CY0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQodCi0JXQktCQ0J0KK9CL0JjQoNCY0Isg0KHQotCV0JLQkNCdCivQi9CY0KDQmNCLINCh0KLQldCS0JDQnQor0IvQmNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0IvQmNCg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQi9CY0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CL0JjQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0IvQmNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CL0JjQoNCY0Ist0KLQntCdINCI0JXQm9CY0KbQkAor0IvQmNCg0JjQiyDQktCQ0KHQkAor0IvQmNCg0JjQiyDQktCV0KDQkAor0IvQmNCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQi9CY0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CL0JjQoNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCS0KPQp9Ca0J4KK9CL0JjQoNCY0Isg0JfQntCg0JDQnQor0IvQmNCg0JjQiyDQl9Ce0KDQkAor0IvQmNCg0JjQiyDQl9Ce0KDQkAor0IvQmNCg0JjQiyDQl9Ce0KDQmtCQCivQi9CY0KDQmNCb0J7QkiDQnNCY0JvQkNCdCivQi9CY0KDQmNCb0J7QktCY0Isg0JDQndCY0KbQkAor0IvQmNCg0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IvQmNCg0JjQm9Ce0JLQmNCLINCc0JjQm9CY0JLQntCICivQi9CY0KDQmNCb0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQi9CY0KDQmNCb0J7QktCY0Isg0J7Qm9CT0JAKK9CL0JjQoNCY0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQi9CY0KDQmNCb0J7QktCY0Isg0JLQldCg0JAKK9CL0JjQoNCY0J0g0JTQoNCQ0JPQntCh0JvQkNCSCivQi9CY0KDQmNCdLdCd0J7QktCi0JAg0JLQldCg0JAKK9CL0JjQoNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0IvQmNCg0JjQotCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQi9CY0KDQiNCQ0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IvQmNCg0IjQkNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0IvQmNCg0IjQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQmNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmtCe0JLQmNCLINCm0JLQldCi0JDQndCa0JAKK9CL0JjQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9CL0JjQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9CL0JjQoNCa0J7QktCY0Isg0IjQkNCd0JrQngor0IvQmNCg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CL0JjQoNCa0J7QktCY0Isg0JzQkNCg0JrQngor0IvQmNCg0JrQntCS0JjQiyDQnNCQ0KDQotCQCivQi9CY0KDQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQi9CY0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CL0JjQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0IvQmNCg0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IvQmNCg0J7QktCY0Isg0JbQkNCg0JrQngor0IvQmNCg0J7QktCY0Isg0JTQldCI0JDQnQor0IvQmNCg0J7QktCY0Isg0JPQoNCj0IjQmNCm0JAKK9CL0JjQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQi9CY0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CL0JjQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQi9CY0KDQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0IvQmNCg0J/QkNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0IvQmNCg0KPQqNCY0Isg0KDQkNCI0JrQngor0IvQmNCi0JjQiyDQlNCj0KjQkNCdCivQi9CY0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQi9Ce0IvQmtCQ0JvQniDQodCY0JzQkAor0IvQntCI0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQi9Ce0IjQkNCd0J7QktCY0Isg0JHQntCg0J4KK9CL0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQi9Ce0IjQlNCV0KAg0JPQntCI0JrQngor0IvQntCc0JAg0JrQkNCi0JDQoNCY0J3QkAor0IvQntCf0JjQiyDQkNCd0JTQoNCY0IjQkAor0IvQntCf0JjQiyDQldCS0JjQptCQCivQi9Ce0J/QmNCLINCc0JjQi9CQCivQi9Ce0J/QmNCLINCc0JjQm9CVCivQi9Ce0J/QmNCLINCc0JjQm9Ce0KgKK9CL0J7Qn9CY0Isg0JLQldCg0JAKK9CL0J7QoNCY0Ist0ILQntCa0JjQiyDQndCQ0JTQkAor0IvQntCg0JjQiyDQgtCe0KDQgtCVCivQi9Ce0KDQmNCLINCC0KPQoNCeCivQi9Ce0KDQmNCLINCC0KPQoNCeCivQi9Ce0KDQmNCLINCQ0J3QlNCg0JjQiNCQCivQi9Ce0KDQmNCLINCR0JjQodCV0KDQmtCQCivQi9Ce0KDQmNCLINCR0JvQkNCT0J7QiNCVCivQi9Ce0KDQmNCLINCR0J7QoNCQCivQi9Ce0KDQmNCLINCI0J7QktCQ0J0KK9CL0J7QoNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0IvQntCg0JjQiyDQidCY0InQkNCd0JAKK9CL0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQi9Ce0KDQmNCLINCc0JjQi9CeCivQi9Ce0KDQmNCLINCc0JjQmtCQ0JjQm9CeCivQi9Ce0KDQmNCLINCg0JDQiNCa0J4KK9CL0J7QoNCa0J7QktCY0Isg0JjQktCQ0J0KK9CL0J7QoNCa0J7QktCY0Isg0JzQkNCg0JrQngor0IvQntCg0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQi9Ce0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KDQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0IvQntCg0J7QktCY0Isg0JzQmNCg0J4KK9CL0J7QoNCe0JLQmNCLINCg0JXQndCQ0KLQkAor0IvQntCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQntCh0JjQiyDQqNCi0JXQpNCY0KbQkAor0IvQntCh0JjQiyDQltCQ0KDQmtCeCivQi9Ce0KHQmNCLINCW0JjQktCQ0J3QkAor0IvQntCh0JjQiyDQltCY0JLQmtCQCivQi9Ce0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQi9Ce0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQi9Ce0KHQmNCLINCR0J7Qk9CU0JDQnSDQodCj0JTQmNCI0JAKK9CL0J7QodCY0Isg0JHQoNCQ0J3QmtCeCivQi9Ce0KHQmNCLINCR0KDQkNCd0JrQngor0IvQntCh0JjQiyDQlNCQ0J3QmNCm0JAKK9CL0J7QodCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CL0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQi9Ce0KHQmNCLINCU0KDQkNCT0JjQptCQCivQi9Ce0KHQmNCLINCU0KDQkNCT0JjQptCQCivQi9Ce0KHQmNCLINCU0KPQqNCQ0J0KK9CL0J7QodCY0Isg0JTQo9Co0JDQnQor0IvQntCh0JjQiyDQlNCj0KjQmtCeCivQi9Ce0KHQmNCLINCk0JDQlNCY0JsKK9CL0J7QodCY0Isg0JjQm9CY0IjQkAor0IvQntCh0JjQiyDQiNCV0JvQmtCQCivQi9Ce0KHQmNCLINCI0J7QktCQ0J0KK9CL0J7QodCY0Isg0IjQntCS0JDQnQor0IvQntCh0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KHQmNCLINCI0J7Ql9CeCivQi9Ce0KHQmNCLINCJ0JjQidCQ0J3QkAor0IvQntCh0JjQiyDQnNCQ0KDQmNCI0JAKK9CL0J7QodCY0Isg0JzQkNCg0JjQiNCQCivQi9Ce0KHQmNCLINCc0JjQm9CQ0J0KK9CL0J7QodCY0Isg0JzQmNCb0JXQndCQCivQi9Ce0KHQmNCLINCc0JjQm9CY0KbQkAor0IvQntCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IvQntCh0JjQiyDQnNCj0KXQkNCc0JXQlAor0IvQntCh0JjQiyDQntCb0JPQkAor0IvQntCh0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9CL0J7QodCY0Isg0KHQkNCS0JrQkAor0IvQntCh0JjQiyDQodCc0JjQidCQCivQi9Ce0KHQmNCLINCh0J3QldCW0JDQndCQCivQi9Ce0KHQmNCLINCh0KLQkNCd0JrQkAor0IvQntCh0JjQiyDQodCi0J7QiNCQ0J0KK9CL0J7QodCY0Isg0KLQntCU0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9CL0J7QodCY0Isg0JLQldCg0JAKK9CL0J7QodCY0Isg0JLQldCg0J7QodCb0JDQkgor0IvQntCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQi9Ce0KHQmNCLINCX0J7QoNCQ0J0KK9CL0J7QodCY0Isg0JfQntCg0JrQkAor0IvQntCh0JjQnSDQlNCj0KjQkNCdCivQi9Ce0KHQmNCdINCX0J7QoNCQ0J0KK9CL0J7QodCeINCT0JDQktCg0JjQm9CeCivQi9Ce0KHQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CL0J7QodCe0JLQmNCLINCc0JjQm9CV0KLQkAor0IvQntCh0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0IvQntCS0JjQiyDQm9CQ0JfQkNCgCivQi9Ce0JLQmNCdINCc0JjQm9CQ0J0KK9CL0KPQi9CQINCQ0JTQkNCcCivQi9Cj0IvQmNCb0J7QktCY0Isg0KbQktCY0IjQkAor0IvQo9CL0JjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQi9Cj0IvQmNCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQi9Cj0IvQo9CXINCc0JDQoNCa0J4KK9CL0KPQi9Cj0Jcg0KHQkNCo0JAKK9CL0KPQi9Cj0Jcg0KHQotCQ0J3QmtCeCivQi9Cj0JHQkCDQoNCQ0KLQmtCeINCU0JjQn9CbINCY0J3Qkwor0IvQo9CR0JjQiyDQlNCj0KjQkNCdCivQi9Cj0JjQiyDQmNCb0JjQiNCQCivQi9Cj0JjQiyDQnNCQ0KDQkAor0IvQo9CY0Isg0JzQmNCb0JrQkAor0IvQo9CI0JjQiyDQidCj0JHQmNCm0JAKK9CL0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQi9Cj0Jog0ILQo9Cg0J4KK9CL0KPQmiDQlNCg0JDQk9CeCivQi9Cj0Jog0JTQo9Co0JDQnQor0IvQo9CaINCU0KPQqNCQ0J0KK9CL0KPQmiDQk9Ce0IjQmtCeCivQi9Cj0Jog0JvQldCb0JAKK9CL0KPQmiDQm9Cj0JrQkAor0IvQo9CaINCc0JDQoNCQCivQi9Cj0Jog0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CL0KPQmiDQnNCY0JvQlQor0IvQo9CaINCc0JjQm9CY0KbQkAor0IvQo9CaINCc0JjQm9Ca0JDQnQor0IvQo9CaINCc0JjQm9Ce0KDQkNCUCivQi9Cj0Jog0JzQmNCg0J7QodCb0JDQkgor0IvQo9CaINCd0JjQmtCe0JvQkAor0IvQo9CaINCg0JDQlNCY0JLQntCICivQi9Cj0Jog0KDQkNCi0JrQngor0IvQo9CaINCh0JvQntCR0J7QlNCQ0J0KK9CL0KPQmiDQotCe0JzQmNCh0JvQkNCSCivQi9Cj0Jog0JfQntCg0JrQkAor0IvQo9Ca0J7QktCY0Isg0JzQmNCb0KPQnQor0IvQo9Ca0J7QktCY0Isg0JzQmNCg0JAKK9CL0KPQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0IvQo9Ca0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CL0KPQmtCe0JLQmNCLINCi0JjQpdCe0JzQmNCg0JrQkAor0IvQo9Ca0J7QktCY0Isg0JfQntCg0JDQnQor0IvQo9Cb0JjQiyDQgtCe0KDQgtCVCivQi9Cj0JvQmNCLINCI0JDQodCc0JjQndCa0JAKK9CL0KPQm9CY0JHQoNCaINCR0J7Qk9CU0JDQnQor0IvQo9Cb0JjQkdCg0Jog0JTQoNCQ0JPQkNCdCivQi9Cj0JvQmNCR0KDQmiDQlNCg0JDQk9CQ0J0KK9CL0KPQm9CY0JHQoNCaINCU0KDQkNCT0J7QodCb0JDQkgor0IvQo9Cb0JjQkdCg0Jog0JTQo9Co0JDQndCa0JAKK9CL0KPQm9CY0JHQoNCaINCU0KPQqNCQ0J0KK9CL0KPQm9CY0JHQoNCaINCT0J7QodCf0JDQktCQCivQi9Cj0JvQmNCR0KDQmiDQiNCV0JvQmNCm0JAKK9CL0KPQm9CY0JHQoNCaINCI0JXQm9Ca0JAKK9CL0KPQm9CY0JHQoNCaINCc0JjQm9CQ0J0KK9CL0KPQm9CY0JHQoNCaINCc0JjQm9CVCivQi9Cj0JvQmNCR0KDQmiDQnNCY0JvQlQor0IvQo9Cb0JjQkdCg0Jog0JzQmNCe0JTQoNCQ0JMKK9CL0KPQm9CY0JHQoNCaINCc0JjQoNCa0J4KK9CL0KPQm9CY0JHQoNCaINCc0JvQkNCU0JXQnQor0IvQo9Cb0JjQkdCg0Jog0JzQntCc0KfQmNCb0J4KK9CL0KPQm9CY0JHQoNCaINCg0JDQlNCY0JLQntCI0JUKK9CL0KPQm9CY0JHQoNCaINCg0JDQlNCe0IjQmtCQCivQi9Cj0JvQmNCR0KDQmiDQoNCQ0KLQmtCeCivQi9Cj0JvQmNCR0KDQmiDQoNCY0KHQotCeCivQi9Cj0JvQmNCR0KDQmiDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0JvQmNCR0KDQmiDQodCe0JrQkAor0IvQo9Cb0JjQkdCg0Jog0KHQotCV0JLQkNCdCivQi9Cj0JvQmNCR0KDQmiDQotCg0JjQktCeCivQi9Cj0JvQo9CcINCR0KDQkNCd0JrQngor0IvQo9Cb0KPQnCDQk9Ce0IjQmtCeCivQi9Cj0JvQo9CcINCY0JvQmNCI0JAKK9CL0KPQm9Cj0Jwg0IjQldCb0JjQptCQCivQi9Cj0JvQo9CcINCI0J7QktCQ0J0KK9CL0KPQm9Cj0Jwg0JvQkNCX0JDQoAor0IvQo9Cb0KPQnCDQnNCQ0KDQkAor0IvQo9Cb0KPQnCDQnNCQ0KDQkAor0IvQo9Cb0KPQnCDQnNCY0KXQkNCI0JvQngor0IvQo9Cb0KPQnCDQnNCY0JvQkNCdCivQi9Cj0JvQo9CcINCc0JjQm9CV0KLQkAor0IvQo9Cb0KPQnCDQnNCY0JvQntCoCivQi9Cj0JvQo9CcINCc0JjQntCU0KDQkNCTCivQi9Cj0JvQo9CcINCc0JjQoNCa0J4KK9CL0KPQm9Cj0Jwg0JzQmNCg0JrQngor0IvQo9Cb0KPQnCDQndCQ0JTQkAor0IvQo9Cb0KPQnCDQndCQ0JTQkAor0IvQo9Cb0KPQnCDQndCY0JrQntCb0JAKK9CL0KPQm9Cj0Jwg0J/QldCg0J4KK9CL0KPQm9Cj0Jwg0KDQkNCU0JUKK9CL0KPQm9Cj0Jwg0KDQkNCU0JUKK9CL0KPQm9Cj0Jwg0KHQkNCS0JAKK9CL0KPQm9Cj0Jwg0KHQm9CQ0JLQmtCeCivQi9Cj0JvQo9CcINCh0KLQkNCd0JrQkAor0IvQo9Cb0KPQnCDQodCi0JDQndCa0JAKK9CL0KPQm9Cj0Jwg0KHQotCV0JLQngor0IvQo9Cb0KPQnCDQodCi0JXQktCeCivQi9Cj0JvQo9CcINCj0KDQntCoCivQi9Cj0JvQo9CcINCS0JDQodCQCivQi9Cj0JvQo9Cc0JDQnSDQodCi0JXQktCQ0J0KK9CL0KPQm9Cj0JzQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0IvQo9Cc0KPQoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQi9Cj0J/QmNCLINCU0KPQqNCQ0J0KK9CL0KPQn9CY0J3QkCDQkdCg0JDQndCa0J4KK9CL0KPQn9CY0J3QkCDQnNCY0JvQkNCU0JjQnQor0IvQo9Cf0JjQndCQINCd0J7QktCY0KbQkAor0IvQo9Cf0JjQndCQINCi0J7QnNCY0KHQm9CQ0JIg0JTQoAor0IvQo9Cf0KPQoNCU0JjQiNCQINCI0JXQm9CV0J3QkAor0IvQo9Cf0KPQoNCU0JjQiNCQINCc0JjQm9CQ0J0KK9CL0KPQn9Cj0KDQlNCY0IjQkCDQnNCY0JvQntCS0JDQnQor0IvQo9Cf0KPQoNCU0JjQiNCQINCh0JDQqNCQCivQi9Cj0J/Qo9Cg0JTQmNCI0JAg0KHQotCV0JLQkNCdCivQi9Cj0KDQp9CY0Isg0KfQldCU0J7QnNCY0KAKK9CL0KPQoNCn0JjQiyDQltCY0JLQkNCdCivQi9Cj0KDQp9CY0Isg0JbQmNCS0JDQnQor0IvQo9Cg0KfQmNCLINCW0JjQktCa0J4KK9CL0KPQoNCn0JjQiyDQgtCe0KDQgtCVCivQi9Cj0KDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CL0KPQoNCn0JjQiyDQkNCd0JTQoNCY0IjQkAor0IvQo9Cg0KfQmNCLINCR0J7QqNCa0J4KK9CL0KPQoNCn0JjQiyDQkdCe0JPQlNCQ0J0KK9CL0KPQoNCn0JjQiyDQkdCe0KDQmNCS0J7QiAor0IvQo9Cg0KfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IvQo9Cg0KfQmNCLINCR0KDQkNCd0JrQngor0IvQo9Cg0KfQmNCLINCR0KDQkNCd0JrQngor0IvQo9Cg0KfQmNCLINCR0KDQkNCd0JrQngor0IvQo9Cg0KfQmNCLINCU0JDQndCY0JvQngor0IvQo9Cg0KfQmNCLINCU0JXQodCf0JjQndCQCivQi9Cj0KDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQi9Cj0KDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQi9Cj0KDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQi9Cj0KDQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQi9Cj0KDQp9CY0Isg0JTQo9Co0JDQnQor0IvQo9Cg0KfQmNCLINCU0KPQqNCQ0J0KK9CL0KPQoNCn0JjQiyDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0Isg0JPQldCe0KDQk9CY0IjQlQor0IvQo9Cg0KfQmNCLINCT0J7QiNCa0J4KK9CL0KPQoNCn0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IvQo9Cg0KfQmNCLINCY0JHQntCI0JAKK9CL0KPQoNCn0JjQiyDQmNCb0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JjQm9CY0IjQkAor0IvQo9Cg0KfQmNCLINCI0JDQodCc0JjQndCQCivQi9Cj0KDQp9CY0Isg0IjQldCb0JXQndCQCivQi9Cj0KDQp9CY0Isg0IjQntCS0JDQnSDQndCe0JLQmNCd0JDQoAor0IvQo9Cg0KfQmNCLINCI0J7QktCQCivQi9Cj0KDQp9CY0Isg0JrQkNCc0JXQndCa0J4KK9CL0KPQoNCn0JjQiy3QmtCQ0KHQkNCb0JjQptCQINCR0J7QodCQCivQi9Cj0KDQp9CY0Isg0JrQkNCi0JjQptCQCivQi9Cj0KDQp9CY0Isg0JvQkNCX0JDQoAor0IvQo9Cg0KfQmNCLINCb0JDQl9CQ0KAKK9CL0KPQoNCn0JjQiyDQidCY0InQkNCd0JAKK9CL0KPQoNCn0JjQiyDQidCY0InQkNCd0JAKK9CL0KPQoNCn0JjQiyDQidCj0JHQmNCo0JAKK9CL0KPQoNCn0JjQiyDQidCj0JHQntCc0JjQoAor0IvQo9Cg0KfQmNCLINCc0JDQoNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JAKK9CL0KPQoNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CL0KPQoNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CL0KPQoNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CL0KPQoNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0IvQo9Cg0KfQmNCLINCc0JjQiNCeCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQldCd0JAKK9CL0KPQoNCn0JjQiyDQnNCY0JvQldCS0JAKK9CL0KPQoNCn0JjQiyDQnNCY0JvQlQor0IvQo9Cg0KfQmNCLINCc0JjQm9CVCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JjQiwor0IvQo9Cg0KfQmNCLINCc0JjQm9CY0KbQkAor0IvQo9Cg0KfQmNCLINCc0JjQm9CY0JLQntCICivQi9Cj0KDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQo9Cg0KfQmNCLINCc0JjQntCU0KDQkNCTCivQi9Cj0KDQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CL0KPQoNCn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IvQo9Cg0KfQmNCLINCc0JjQoNCI0JDQndCQCivQi9Cj0KDQp9CY0Isg0JzQmNCg0JrQngor0IvQo9Cg0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0JzQm9CQ0JTQldCdCivQi9Cj0KDQp9CY0Isg0JzQntCc0KfQmNCb0J4KK9CL0KPQoNCn0JjQiyDQndCQ0JTQkAor0IvQo9Cg0KfQmNCLINCd0JXQndCQ0JQKK9CL0KPQoNCn0JjQiyDQndCY0JrQntCb0JAKK9CL0KPQoNCn0JjQiyDQntCb0JPQkAor0IvQo9Cg0KfQmNCLINCe0JvQk9CQCivQi9Cj0KDQp9CY0Isg0J/QkNCS0JvQlQor0IvQo9Cg0KfQmNCLINCf0JXQotCQ0KAKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQlQor0IvQo9Cg0KfQmNCLINCg0JDQlNCY0JLQntCICivQi9Cj0KDQp9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IvQo9Cg0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCg0JDQiNCa0J4KK9CL0KPQoNCn0JjQiyDQoNCQ0IjQmtCeCivQi9Cj0KDQp9CY0Isg0KDQkNCi0JrQkAor0IvQo9Cg0KfQmNCLINCg0JDQotCe0JzQmNCgCivQi9Cj0KDQp9CY0Isg0KHQkNCS0JAKK9CL0KPQoNCn0JjQiyDQodCb0JDQktCY0KbQkAor0IvQo9Cg0KfQmNCLINCh0JvQkNCS0JrQngor0IvQo9Cg0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0KPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0KDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQo9Cg0KfQmNCLINCh0KLQldCS0JDQnQor0IvQo9Cg0KfQmNCLINCh0KLQldCS0J4KK9CL0KPQoNCn0JjQiyDQo9Cg0J7QqAor0IvQo9Cg0KfQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CL0KPQoNCn0JjQiyDQktCV0KDQkAor0IvQo9Cg0KfQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0IvQo9Cg0KfQmNCLINCS0KPQmtCQ0KjQmNCdCivQi9Cj0KDQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9CL0KPQoNCn0JjQiyDQl9Cb0JDQotCQCivQi9Cj0KDQp9CY0Isg0JfQntCg0JDQnQor0IvQo9Cg0KfQmNCLINCX0J7QoNCQ0J0KK9CL0KPQoNCn0JjQiNCQINCh0JjQnNCQCivQi9Cj0KDQp9CY0J0g0JbQmNCS0JrQngor0IvQo9Cg0KfQmNCdINCW0JjQktCa0J4KK9CL0KPQoNCn0JjQnSDQgtCe0KDQgtCVCivQi9Cj0KDQp9CY0J0g0ILQo9Cg0JAKK9CL0KPQoNCn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IvQo9Cg0KfQmNCdINCR0J7QltCY0JTQkNCgCivQi9Cj0KDQp9CY0J0g0JHQoNCQ0J3QmtCeCivQi9Cj0KDQp9CY0J0g0JTQoNCQ0JPQntCc0JjQoAor0IvQo9Cg0KfQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCdINCU0KDQldCd0JrQkAor0IvQo9Cg0KfQmNCdINCU0KPQqNCQ0J0KK9CL0KPQoNCn0JjQnSDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0J0g0JXQnNCY0JvQmNCI0JAKK9CL0KPQoNCn0JjQnSDQiNCV0JvQldCd0JAKK9CL0KPQoNCn0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IvQo9Cg0KfQmNCdINCJ0KPQkdCY0KbQkAor0IvQo9Cg0KfQmNCdINCc0JDQmtCh0JAKK9CL0KPQoNCn0JjQnSDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0J0g0JzQmNCb0JXQndCQCivQi9Cj0KDQp9CY0J0g0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQnSDQnNCY0JvQntCg0JDQlAor0IvQo9Cg0KfQmNCdINCe0JHQoNCQ0JQKK9CL0KPQoNCn0JjQnSDQn9CV0KLQkNCgCivQi9Cj0KDQp9CY0J0g0KDQkNCU0JjQktCe0IgKK9CL0KPQoNCn0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQi9Cj0KDQp9CY0J0g0KDQo9CW0JAKK9CL0KPQoNCn0JjQnSDQodCQ0KDQkAor0IvQo9Cg0KfQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CL0KPQoNCn0JjQnSDQotCe0JTQntCgCivQi9Cj0KDQp9CY0J0g0JLQkNCh0JAKK9CL0KPQoNCn0JjQnSDQktCV0JvQldCc0JjQoAor0IvQo9Cg0KfQmNCdINCS0JXQm9CY0JzQmNCgCivQi9Cj0KDQp9CY0J0g0JLQldCg0JjQptCQCivQi9Cj0KDQp9CY0J0g0JLQo9Ca0JjQptCQCivQi9Cj0KDQp9CY0J0g0JfQntCg0JAKK9CL0KPQoNCL0JjQiNCY0Isg0KDQkNCi0J7QnNCY0KAKK9CL0KPQoNCU0JjQiyDQiNCe0JLQkNCdCivQi9Cj0KDQlNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IvQo9Cg0JTQmNCLINCX0J7QoNCQ0J0KK9CL0KPQoNCT0KPQlyDQmNCb0JjQiNCQCivQi9Cj0KDQk9Cj0Jcg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCT0KPQlyDQndCQ0JTQkAor0IvQo9Cg0JPQo9CXINCS0JXQoNCY0KbQkAor0IvQo9Cg0JjQp9CY0Isg0KLQkNCi0IjQkNCd0JAKK9CL0KPQoNCY0Isg0ILQntCg0ILQlQor0IvQo9Cg0JjQiyDQiNCe0JLQkNCdCivQi9Cj0KDQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCY0Isg0JzQmNCb0J7QqAor0IvQo9Cg0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQo9Cg0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IvQo9Cg0JjQiyDQn9CV0JvQkNCT0JjQiNCQCivQi9Cj0KDQmNCLINCh0JDQktCeCivQi9Cj0KDQmNCLINCh0JjQnNCeCivQi9Cj0KDQmNCLINCh0JjQndCY0KjQkAor0IvQo9Cg0JjQiyDQodCj0JfQkNCd0JAKK9CL0KPQoNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQi9Cj0KDQmtCe0JLQmNCLINCo0J/QmNCg0J4KK9CL0KPQoNCa0J7QktCY0Ist0ILQntCg0ILQldCS0JjQiyDQnNCY0J7QnNCY0KDQkAor0IvQo9Cg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CL0KPQoNCb0JjQkdCg0Jog0JHQntCh0JjQidCa0JAKK9CL0KPQoNCj0JLQmNCI0JAg0JHQoNCQ0J3QmtCeCivQi9Cj0KDQo9CS0JjQiNCQINCd0JjQmtCe0JvQkAor0IvQo9Cg0KPQktCY0IjQkCDQndCY0JrQntCb0JAKK9CL0KPQoNCj0JLQmNCI0JAg0JLQm9CQ0JTQngor0IvQo9Ci0JjQm9CeINCh0KLQldCS0J4KK9CL0KPQl9Ce0JLQmNCLINCR0KDQkNCd0JUKK9CL0KPQl9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CL0KPQl9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CL0KPQl9Ce0JLQmNCLINCT0J7QoNCQ0J0KK9CL0KPQl9Ce0JLQmNCLINCc0JjQoNCa0J4KK9CW0JDQkdCQ0InQkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9CW0JDQkdCY0Isg0JPQntCg0JDQnQor0JbQkNCR0JjQiyDQidCj0JHQntCc0JjQoAor0JbQkNCR0KPQidCQ0KYg0J/QkNCS0JvQlQor0JbQkNCk0KDQkNCdINCc0JDQoNCi0JjQnQor0JbQkNCT0JDQoCDQlNCg0JDQk9CQ0J0KK9CW0JDQk9CQ0KAg0JXQoNCd0JXQodCiCivQltCQ0JPQkNCgINCY0JLQkNCdCivQltCQ0JPQkNCgINCI0J7QktCQ0J0KK9CW0JDQk9CQ0KAg0InQmNCJ0JAKK9CW0JDQk9CQ0KAg0JzQkNCg0JjQiNCQCivQltCQ0JPQkNCgINCc0JDQotCY0IjQkAor0JbQkNCT0JDQoCDQn9CQ0JLQkNCeCivQltCQ0JPQkNCgINCg0JDQlNCe0KHQm9CQ0JLQkAor0JbQkNCI0JAg0KLQntCc0JjQodCb0JDQkgor0JbQkNCI0JDQp9Ca0J4g0JbQldCJ0JrQngor0JbQkNCaINCU0KDQkNCT0KPQotCY0J0KK9CW0JDQmtCY0Isg0InQo9CR0JjQptCQCivQltCQ0JrQmNCLINCc0JDQoNCY0IjQkAor0JbQkNCa0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQkNCa0JjQiyDQnNCb0JDQlNCV0J0KK9CW0JDQmtCY0Isg0JLQldCg0JAKK9CW0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQkNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQltCQ0JrQo9Cb0JAg0JDQoNCQ0J3QmtCQCivQltCQ0JrQo9Cb0JAg0JHQntCg0JjQodCb0JDQkgor0JbQkNCa0KPQm9CQINCc0JjQm9CQ0J0KK9CW0JDQmtCj0JvQkCDQnNCY0JvQkNCdCivQltCQ0JrQo9Cb0JAg0JzQmNCe0JTQoNCQ0JMKK9CW0JDQmtCj0JvQkCDQnNCY0KDQkAor0JbQkNCa0KPQm9CQINCg0JDQlNCY0JLQntCIINCU0KAg0J/QoNCe0KQKK9CW0JDQmtCj0JvQkCDQl9Ce0KDQkAor0JbQkNCc0JHQntCa0Jgg0JzQkNCg0JjQiNCQCivQltCQ0JzQkdCe0JrQmCDQktCV0KDQntCd0JAKK9CW0JDQoNCn0JDQndCY0J0g0JHQoNCQ0J3QmtCeCivQltCQ0KDQp9CQ0J3QmNCdINCf0KDQldCU0KDQkNCTCivQltCQ0KDQmNCdINCg0JDQlNCe0IjQmNCm0JAKK9CW0JDQoNCY0J0g0KHQmNCd0JjQqNCQCivQltCQ0KDQmNCdLdCi0JDQkdCQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0JbQkNCg0JjQnSDQktCV0KHQldCb0JjQnQor0JbQkNCg0JrQniDQm9CQ0JTQmNCh0JvQkNCSCivQltCQ0KDQmtCeINCc0JjQpdCQ0IjQm9CeCivQltCQ0KDQmtCe0JIg0JTQo9Co0JDQnQor0JbQkNCg0JrQntCSINCa0J7QodCi0JAKK9CW0JDQoNCa0J7QkiDQidCY0InQkNCd0JAKK9CW0JDQoNCa0J7QkiDQktCV0KHQldCb0JrQkAor0JbQkNCg0JrQntCSINCX0JvQkNCi0J7QiNCVCivQltCQ0KDQmtCe0JLQkNCn0JrQmCDQmNCb0JjQiNCQCivQltCQ0KDQmtCe0JLQkNCn0JrQmCDQnNCY0KDQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQltCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JbQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0IjQlSDQlNCgINCf0KDQntCkCivQltCQ0KDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JPQntCI0JrQngor0JbQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQltCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JDQoNCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQltCQ0KDQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQltCQ0KDQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQltCQ0KDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CW0JDQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JbQkNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQltCQ0KDQmtCe0JLQmNCLINCd0J7QktCY0KbQkAor0JbQkNCg0JrQntCS0JjQiyDQoNCY0KHQotCeCivQltCQ0KDQmtCe0JLQmNCLINCg0JjQodCi0J4KK9CW0JDQoNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCS0JvQkNCI0JrQngor0JbQkNCg0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JbQkNCg0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JbQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkAor0JbQlNCV0KDQmNCLINCI0JXQm9CY0KbQkAor0JbQlNCV0KDQmNCLINCc0JDQoNCY0IjQkAor0JbQlNCV0KDQmNCLINCc0JjQm9CQ0J0KK9CW0JTQldCg0JjQiyDQnNCY0JvQldCd0JrQngor0JbQlNCV0KDQniDQlNCg0JDQk9CY0IrQkAor0JbQlNCV0KDQniDQlNCj0KjQmNCm0JAKK9CW0JTQldCg0J4g0JPQntCI0JrQngor0JbQlNCV0KDQniDQnNCQ0KDQmNCd0JrQngor0JbQlNCV0KDQniDQn9CV0KLQkNCgCivQltCU0JXQoNCeINCf0JXQotCQ0KAKK9CW0JTQldCg0J4g0KDQkNCU0J7QnNCY0KAKK9CW0JTQoNCQ0JvQlSDQoNCQ0JTQntCS0JDQnQor0JbQlNCg0JDQm9CY0Isg0JLQkNCh0J4KK9CW0JTQoNCK0JAg0JzQmNCb0JDQnQor0JbQlNCg0IrQkCDQnNCY0JvQkNCdCivQltCU0KDQitCQINCc0JjQoNCa0J4KK9CW0JTQoNCK0JAg0J3QldCC0J4KK9CW0JTQoNCK0JAg0J3QldCC0J4KK9CW0JTQoNCK0JAg0KHQmNCc0J4KK9CW0JXQltCV0Ikg0JHQoNCQ0J3QmtCeCivQltCV0JbQldCJINCc0JjQm9CQ0J0KK9CW0JXQltCV0Ikg0JzQmNCb0JDQnQor0JbQldCW0JXQiSDQodCQ0JLQkAor0JbQldCW0JXQiSDQodCS0JXQotCY0KHQm9CQ0JIKK9CW0JXQkdCV0InQkNCdINCc0JjQm9CV0J3QkAor0JbQldCR0JXQidCQ0J0g0JzQmNCb0JXQndCa0J4KK9CW0JXQkdCV0InQkNCdINCc0JjQm9Ce0KDQkNCUCivQltCV0JHQldCJ0JDQnSDQnNCY0KLQkAor0JbQldCR0JXQidCQ0J0g0J3QldCU0JXQidCa0J4KK9CW0JXQkdCV0KDQkNCdINCQ0J3QgtCV0JvQmtCQCivQltCV0JPQkNCg0JDQpiDQgtCe0KDQgtCVCivQltCV0JPQkNCg0JDQpiDQlNCQ0J3QmNCm0JAKK9CW0JXQk9CQ0KDQkNCmINCU0KPQqNCQ0J0KK9CW0JXQk9CQ0KDQkNCmINCb0JDQl9CQ0KAKK9CW0JXQk9CQ0KDQkNCmINCc0JjQm9CQ0J0KK9CW0JXQk9CQ0KDQkNCmINCc0JjQm9CV0J3QmtCeCivQltCV0JPQkNCg0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JbQldCT0JDQoNCQ0KYg0KHQotCV0JLQkNCdCivQltCV0JPQkNCg0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQltCV0JrQmNCLINCW0JjQktCa0J4KK9CW0JXQmtCY0Isg0JHQntCo0JrQngor0JbQldCa0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQltCV0JrQmNCLINCg0KPQltCQCivQltCV0JrQmNCLINCX0J7QoNCQ0J0KK9CW0JXQm9CV0Jwg0KHQotCV0JLQkNCdCivQltCV0JvQldCgINCC0KPQoNCC0JXQktCa0JAKK9CW0JXQm9CV0JfQldCdINCI0J7QodCY0J8KK9CW0JXQm9CYINCQ0J3QlNCg0JDQqAor0JbQldCb0Jgg0JjQqNCi0JLQkNCdCivQltCV0JvQmCDQmtCQ0KLQkNCg0JjQndCQCivQltCV0JvQmCDQodCY0JvQktCV0KHQotCV0KAKK9CW0JXQnNCR0JXQoNCYINCo0JDQndCU0J7QoAor0JbQldCc0JHQldCg0Jgg0IjQntCh0JjQnwor0JbQldCc0JHQldCg0Jgg0KDQntCR0JXQoNCiCivQltCV0JzQkdCV0KDQmCDQoNCe0JHQldCg0KIKK9CW0JXQndCV0KAg0JrQkNCg0JvQngor0JbQldCd0JjQm9CeINCR0J7QltCY0JTQkNCgCivQltCV0KDQkNCI0JjQiyDQk9CQ0JLQoNCY0JvQngor0JbQldCg0JDQktCY0KbQkCDQlNCQ0JzQiNCQ0J0KK9CW0JXQoNCQ0JLQmNCm0JAg0JzQmNCb0JDQlNCY0J0KK9CW0JXQoNCQ0JLQmNCm0JAg0J3QkNCU0JAKK9CW0JXQoNCQ0JLQmNCm0JAg0KHQotCQ0J3QntCI0JUKK9CW0JXQoNCQ0JLQidCV0JIg0JjQm9CY0IjQkAor0JbQldCg0JjQiyDQmNCg0JzQkAor0JbQldCh0KLQmNCLINCo0KLQldCk0JDQndCY0IjQkAor0JbQmNCW0JAg0J3QkNCU0JAKK9CW0JjQltCQ0JrQmNCLINCh0JDQktCQCivQltCY0JbQkNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQltCY0JbQkNCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CW0JjQltCQ0JrQntCSINCc0JjQm9Ce0KgKK9CW0JjQltCQ0JrQntCSINCf0JDQktCb0JUKK9CW0JjQltCQ0JrQntCSINCS0JXQm9CY0J3QmtCQCivQltCY0JbQkNCa0J7QkiDQktCY0KLQntCc0JjQoAor0JbQmNCW0JDQmtCe0JIg0JLQm9CQ0JTQkAor0JbQmNCW0JDQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCW0JjQiyDQp9CV0JTQntCc0JjQoAor0JbQmNCW0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQltCY0JbQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQltCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CW0JjQltCY0Isg0JLQldCh0JXQm9CY0J0KK9CW0JjQltCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQltCY0JHQoNCV0JMg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQkdCg0JXQkyDQmNCS0JDQndCQCivQltCY0JTQldCaINCI0J7QodCY0J8KK9CW0JjQlNCY0KjQmNCLINCX0J7QoNCQ0J0KK9CW0JjQk9CQINCI0JXQm9CV0J3QkAor0JbQmNCT0JAg0JrQkNCg0JvQngor0JbQmNCT0JAg0JzQmNCg0JrQngor0JbQmNCT0JAg0JzQo9Ch0KLQkNCk0JAKK9CW0JjQk9CQ0JvQkNCmINCS0JXQoNCe0J3QkAor0JbQmNCT0JjQiyDQkdCe0JPQlNCQ0J0KK9CW0JjQk9CY0Isg0JHQoNCQ0J3QmtCeCivQltCY0JPQmNCLINCU0JDQndCY0KbQkAor0JbQmNCT0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CW0JjQk9CY0Isg0JTQo9Co0JDQnQor0JbQmNCT0JjQiyDQiNCj0JvQmNCI0JAKK9CW0JjQk9CY0Isg0InQo9CR0JjQqNCQCivQltCY0JPQmNCLINCc0JjQm9CQ0J0KK9CW0JjQk9CY0Isg0JzQmNCb0JDQnQor0JbQmNCT0JjQiyDQnNCY0JvQkNCdCivQltCY0JPQmNCLINCc0JjQm9CV0JLQkAor0JbQmNCT0JjQiyDQnNCY0JvQmtCQCivQltCY0JPQmNCLINCc0JjQoNCa0J4KK9CW0JjQk9CY0Isg0J3QldCU0JXQidCa0J4KK9CW0JjQk9CY0Isg0J3QmNCa0J7Qm9CQCivQltCY0JPQmNCLINCf0JXQotCQ0KAKK9CW0JjQk9CY0Isg0J/QldCi0JDQoAor0JbQmNCT0JjQiyDQn9CV0KLQkNCgCivQltCY0JPQmNCLINCg0JDQlNCVCivQltCY0JPQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CW0JjQk9CY0Isg0KHQkNCS0JrQkAor0JbQmNCT0JjQiyDQktCe0IjQmNCdCivQltCY0JPQnNCe0J3QlCDQkdCV0JvQkAor0JbQmNCT0JzQntCd0JQg0JHQoNCQ0J3QmtCQCivQltCY0JPQoNCQ0Jgg0ILQntCg0ILQlQor0JbQmNCT0KDQkNCYINCY0KjQotCS0JDQnSDQnNCgCivQltCY0JPQoNCQ0Jgg0IjQntCS0JDQnQor0JbQmNCT0KDQmCDQiNCe0KHQmNCfCivQltCY0JPQoNCYINCJ0KPQkdCY0KbQkAor0JbQmNCT0KDQmCDQnNCY0KDQmtCeCivQltCY0JPQo9Cg0KHQmtCYINCf0JDQktCb0JUKK9CW0JjQpdCQINCc0JDQoNCY0IjQkAor0JbQmNCl0JvQkNCS0KHQmtCYINCI0KPQm9Ca0JAKK9CW0JjQiNCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JbQmNCa0JjQiyDQgtCe0KDQgtCVCivQltCY0JrQmNCLINCC0J7QoNCC0JUKK9CW0JjQmtCY0Isg0ILQntCg0ILQlQor0JbQmNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CW0JjQmtCY0Isg0JTQntCR0KDQmNCb0JAKK9CW0JjQmtCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JrQmNCLINCU0KPQqNCQ0J0KK9CW0JjQmtCY0Isg0IjQntCS0JDQndCa0JAKK9CW0JjQmtCY0Isg0IjQntCS0JDQnQor0JbQmNCa0JjQiyDQiNCe0JLQkNCdCivQltCY0JrQmNCLINCa0JDQotCY0KbQkAor0JbQmNCa0JjQiyDQidCj0JHQmNCm0JAKK9CW0JjQmtCY0Isg0JzQkNCg0JjQptCQCivQltCY0JrQmNCLINCc0JDQoNCY0IjQkAor0JbQmNCa0JjQiyDQnNCY0KXQkNCI0JvQngor0JbQmNCa0JjQiyDQnNCY0JvQkNCdCivQltCY0JrQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9CW0JjQmtCY0Isg0J3QldCS0JXQndCQCivQltCY0JrQmNCLINCd0JjQmtCe0JvQkAor0JbQmNCa0JjQiyDQndCY0JrQntCb0JAKK9CW0JjQmtCY0Isg0J7Qm9CT0JAKK9CW0JjQmtCY0Isg0J7Qm9CY0JLQldCg0JAKK9CW0JjQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CW0JjQmtCY0Isg0KDQkNCU0J7QnNCY0KAKK9CW0JjQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JbQmNCa0JjQiyDQodCe0KTQmNCI0JAKK9CW0JjQmtCY0Isg0KLQkNCc0JDQoNCQCivQltCY0JrQmNCLINCi0JjQpdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JbQmNCa0JjQiyDQotCe0JTQntCgCivQltCY0JrQmNCLINCS0JDQodCQCivQltCY0JrQmNCLLdCS0JDQodCY0Isg0KLQkNCc0JDQoNCQCivQltCY0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQltCY0JrQmNCLINCS0JXQoNCQCivQltCY0JrQmNCLINCS0JXQoNCY0KbQkAor0JbQmNCa0JjQiyDQktCY0KLQntCc0JjQoAor0JbQmNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JrQntCS0JjQiyDQndCV0J3QkNCUCivQltCY0JvQldCS0KHQmtCYINCa0KDQodCi0J4KK9CW0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CW0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCb0JjQiyDQodCi0J7QiNCQ0J0KK9CW0JjQm9Cd0JjQmiDQgtCj0KDQkAor0JbQmNCb0J3QmNCaINCC0KPQoNCQCivQltCY0JvQndCY0Jog0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9CW0JjQm9Cd0JjQmi3Qn9CV0KLQoNCe0JLQmNCLINCW0JXQm9CY0JzQmNCgCivQltCY0J3QmNCLINCc0JDQoNCY0J3QkAor0JbQmNCg0JDQktCQ0KYg0KHQotCV0JLQkNCdCivQltCY0KDQmtCQINCf0JDQktCV0JsKK9CW0JjQoNCe0Kgg0JzQmNCg0J7QnQor0JbQmNCg0J7QktCd0JjQmiDQkNCd0KLQntCdCivQltCY0JLQp9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JbQmNCS0JDQidCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CW0JjQktCQ0InQldCS0JjQiyDQk9Ce0KDQkNCdCivQltCY0JLQkNCJ0JXQktCY0Isg0J7Qm9CT0JAKK9CW0JjQktCQ0InQldCS0JjQiyDQodCi0JDQndCQCivQltCY0JLQkNCd0KfQldCSINCY0JvQmNCI0JAKK9CW0JjQktCQ0J3Qp9CV0JIg0IjQntCS0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQmtCQ0KHQkCDQlNCY0J/QmyDQmNCd0JMKK9CW0JjQktCQ0J3Qp9CV0JIg0JzQmNCa0JAKK9CW0JjQktCQ0J3Qp9CV0JIg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQnNCY0JvQkNCdCivQltCY0JLQkNCd0KfQldCSINCf0JDQiNCQCivQltCY0JLQkNCd0KfQldCSINCg0JDQlNCQCivQltCY0JLQkNCd0KfQldCSINCg0JDQndCa0J4KK9CW0JjQktCQ0J3Qp9CV0JIg0KHQotCV0JLQkNCdCivQltCY0JLQkNCd0KfQldCSINCh0KLQoNCQ0KXQmNCK0JAKK9CW0JjQktCQ0J3Qp9CV0JLQmNCLINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JjQidCa0J4KK9CW0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9CW0JjQktCQ0J3Qp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQktCQ0J3Qp9CV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQltCY0JLQkNCd0JDQpiDQlNCV0IjQkNCdCivQltCY0JLQkNCd0JDQpiDQlNCV0IjQkNCdCivQltCY0JLQkNCd0JDQpiDQm9CQ0JfQkNCgCivQltCY0JLQkNCd0JDQpiDQl9Ce0KDQmNCm0JAKK9CW0JjQktCQ0J3QmNCLINCC0J7QmtCQCivQltCY0JLQkNCd0JjQiyDQnNCY0KXQkNCI0JvQngor0JbQmNCS0JDQndCY0Isg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CW0JjQktCQ0J3QmNCLINCc0JjQotCQ0KAKK9CW0JjQktCQ0J3QmNCLINCf0KDQldCU0KDQkNCTCivQltCY0JLQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQkNCd0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQkNCd0JrQmNCLINCV0JLQmNCm0JAKK9CW0JjQktCQ0J3QmtCe0JIg0JjQk9CK0JDQogor0JbQmNCS0JDQndCe0JIg0JbQkNCg0JrQngor0JbQmNCS0JDQndCe0JIg0JbQmNCS0JDQnQor0JbQmNCS0JDQndCe0JIg0JbQmNCS0JrQngor0JbQmNCS0JDQndCe0JIg0JDQndCC0JXQm9CY0IjQkAor0JbQmNCS0JDQndCe0JIg0JHQntCT0J7QidCj0JEKK9CW0JjQktCQ0J3QntCSINCR0KDQkNCd0JrQngor0JbQmNCS0JDQndCe0JIg0JTQkNCd0JjQptCQCivQltCY0JLQkNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CW0JjQktCQ0J3QntCSINCU0J7QkdCg0JjQm9CQCivQltCY0JLQkNCd0J7QkiDQlNCe0JHQoNCY0JLQntCICivQltCY0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0IjQm9CQCivQltCY0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCU0KDQkNCT0J7QodCb0JDQkgor0JbQmNCS0JDQndCe0JIg0JTQo9Co0JDQnQor0JbQmNCS0JDQndCe0JIg0JPQntCg0J7QodCb0JDQktCQCivQltCY0JLQkNCd0J7QkiDQiNCj0KHQotCY0J3QkAor0JbQmNCS0JDQndCe0JIg0JvQkNCX0JDQoAor0JbQmNCS0JDQndCe0JIg0JvQkNCX0JDQoAor0JbQmNCS0JDQndCe0JIg0JvQldCf0J7QodCQ0JLQkAor0JbQmNCS0JDQndCe0JIg0InQo9CR0JjQptCQCivQltCY0JLQkNCd0J7QkiDQnNCQ0JPQlNCQCivQltCY0JLQkNCd0J7QkiDQnNCQ0JrQodCY0J0KK9CW0JjQktCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQltCY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCe0JIg0JzQmNCb0JXQotCQCivQltCY0JLQkNCd0J7QkiDQnNCY0JvQmNCS0J7QiAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0J7QqAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0J7QqAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CW0JjQktCQ0J3QntCSINCc0JjQntCU0KDQkNCTCivQltCY0JLQkNCd0J7QkiDQnNCY0J7QnNCY0KAKK9CW0JjQktCQ0J3QntCSINCc0JjQotCQCivQltCY0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CW0JjQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0JbQmNCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQltCY0JLQkNCd0J7QkiDQnNCe0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQndCQ0KLQkNCo0JAKK9CW0JjQktCQ0J3QntCSINCd0JjQmtCe0JvQkAor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JjQptCQCivQltCY0JLQkNCd0J7QkiDQn9CQ0JLQm9CVCivQltCY0JLQkNCd0J7QkiDQn9CQ0JLQm9CVCivQltCY0JLQkNCd0J7QkiDQn9CQ0JLQm9CVCivQltCY0JLQkNCd0J7QkiDQn9CQ0JLQm9CVCivQltCY0JLQkNCd0J7QkiDQoNCQ0JTQmNCo0JAKK9CW0JjQktCQ0J3QntCSINCg0JDQiNCa0J4KK9CW0JjQktCQ0J3QntCSINCh0JDQktCQCivQltCY0JLQkNCd0J7QkiDQodCb0JDQktCa0J4KK9CW0JjQktCQ0J3QntCSINCh0KDQgtCQ0J0KK9CW0JjQktCQ0J3QntCSINCh0KDQkdCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCh0KLQkNCd0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0JbQmNCS0JDQndCe0JIg0KLQntCU0J7QoAor0JbQmNCS0JDQndCe0JIg0KLQntCc0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JIg0KLQo9CT0J7QnNCY0KAKK9CW0JjQktCQ0J3QntCSINCS0JXQm9CY0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QkiDQl9Cb0JDQotCY0J3QmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQltCY0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQmNCI0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkNCd0JrQmNCm0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQltCY0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JbQmNCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCR0J7QoNCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCj0JTQmNCc0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQltCY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQltCY0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiy3Qm9CV0Kgg0JTQo9Co0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQltCY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQltCY0JLQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQntCR0KDQkNCUCivQltCY0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQkNCd0J7QktCY0Isg0KDQkNCU0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JbQmNCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQmNCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCS0JjQiyDQktCY0JTQntCI0JUKK9CW0JjQktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQkNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JbQmNCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQmNCLINCC0J7QoNCC0JUKK9CW0JjQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CW0JjQktCY0Isg0JPQkNCS0KDQkAor0JbQmNCS0JjQiyDQiNCV0KTQotCQCivQltCY0JLQmNCLINCI0JXQm9CY0KbQkAor0JbQmNCS0JjQiyDQiNCe0JLQkNCdCivQltCY0JLQmNCLINCb0JDQl9CQ0KAKK9CW0JjQktCY0Isg0InQo9CR0JjQptCQCivQltCY0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CW0JjQktCY0Isg0KHQkNCS0JAKK9CW0JjQktCY0Isg0KHQkNCS0JAKK9CW0JjQktCY0Isg0KHQnNCY0InQkAor0JbQmNCS0JjQiyDQodCf0JDQodCe0IjQlQor0JbQmNCS0JjQiyDQktCV0JvQmNCR0J7QoAor0JbQmNCS0JjQiyDQktCY0J3QmtCQINCU0KAKK9CW0JjQktCY0Isg0JfQntCg0JrQkAor0JbQmNCS0JjQnSDQndCQ0JTQkAor0JbQmNCS0JrQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JrQmNCLINCh0KLQldCS0JDQnQor0JbQmNCS0JrQntCSINCC0J7QoNCC0JUKK9CW0JjQktCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JbQmNCS0JrQntCSINCQ0J3QgtCV0JvQmtCQCivQltCY0JLQmtCe0JIg0JHQntCg0JjQodCb0JDQktCQCivQltCY0JLQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQltCY0JLQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9CW0JjQktCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQltCY0JLQmtCe0JIg0JTQo9Co0JrQngor0JbQmNCS0JrQntCSINCV0KHQotCV0KAKK9CW0JjQktCa0J7QkiDQk9Cg0JDQlNCY0JzQmNCgCivQltCY0JLQmtCe0JIg0JjQktCQ0J0KK9CW0JjQktCa0J7QkiDQmtCe0KHQotCQCivQltCY0JLQmtCe0JIg0JzQkNCg0JrQngor0JbQmNCS0JrQntCSINCc0JXQm9CQ0J3QmNCI0JAKK9CW0JjQktCa0J7QkiDQndCV0J3QkNCUCivQltCY0JLQmtCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JrQntCSINCg0JDQlNCe0IjQmtCQCivQltCY0JLQmtCe0JIg0KHQkNCS0JAKK9CW0JjQktCa0J7QkiDQodCQ0JLQkAor0JbQmNCS0JrQntCSINCh0JvQkNCS0JrQngor0JbQmNCS0JrQntCSINCh0JvQkNCS0JrQngor0JbQmNCS0JrQntCSINCS0JDQodCQCivQltCY0JLQmtCe0JLQmNCLINCn0JDQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQltCQ0JrQm9CY0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQltCY0JLQmtCQCivQltCY0JLQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQltCY0JLQmtCe0JLQmNCLINCC0J7QmtCQCivQltCY0JLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CW0JjQktCa0J7QktCY0Isg0ILQntCg0ILQlQor0JbQmNCS0JrQntCS0JjQiyDQkNCI0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQkNCb0J7QiNCX0JjQiNCQCivQltCY0JLQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQltCY0JLQmtCe0JLQmNCLINCR0JvQkNCo0JrQngor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQltCY0JLQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQltCY0JLQmtCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQkdCe0KDQngor0JbQmNCS0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQkdCg0JDQndCa0JAg0JTQoAor0JbQmNCS0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CW0JjQktCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQltCY0JLQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JLQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JbQmNCS0JrQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkCDQlNCgCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JjQiwor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQltCY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KPQqNCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9CW0JjQktCa0J7QktCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQltCY0JLQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQltCY0JLQmtCe0JLQmNCLINCY0JvQntCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQktCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQo9Cb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCj0JvQmtCQCivQltCY0JLQmtCe0JLQmNCLINCI0KPQm9Ca0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCa0J7QodCi0JAKK9CW0JjQktCa0J7QktCY0Isg0JrQoNCV0KjQngor0JbQmNCS0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCoCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQltCY0JLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQltCY0JLQmtCe0JLQmNCLINCc0JjQoNCn0JXQotCQCivQltCY0JLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CW0JjQktCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQltCY0JLQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQltCY0JLQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQltCY0JLQmtCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQltCY0JLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JbQmNCS0JrQntCS0JjQiyDQntCR0KDQkNCUCivQltCY0JLQmtCe0JLQmNCLINCf0JDQktCb0JUKK9CW0JjQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQlQor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQngor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0KDQntCh0JAKK9CW0JjQktCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCh0JDQqNCQCivQltCY0JLQmtCe0JLQmNCLINCh0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCh0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCh0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCh0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQltCY0JLQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQmNCS0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9CW0JjQktCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9CW0JjQktCa0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0KHQoNCV0KLQldCdCivQltCY0JLQmtCe0JLQmNCLINCh0KLQkNCc0JXQndCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KHQotCV0J/QkNCdCivQltCY0JLQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQltCY0JLQmtCe0JLQmNCLINCi0JjQndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0KLQntCo0JAKK9CW0JjQktCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCS0JXQmtCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JLQldCg0JAKK9CW0JjQktCa0J7QktCY0Isg0JLQldCg0JAKK9CW0JjQktCa0J7QktCY0Isg0JLQmNCU0J7QiNCa0J4KK9CW0JjQktCa0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQltCY0JLQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CW0JjQktCa0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9CW0JjQktCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQl9CU0JXQndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQltCY0JLQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQltCY0JLQmtCe0JLQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQidCV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CW0JjQktCa0KPQptCY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQltCY0JLQmtCj0KbQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQktCd0Jgg0JDQndCQCivQltCY0JLQndCYINCk0KDQkNCK0JAKK9CW0JjQktCe0IjQmNCd0J7QkiDQkdCe0KDQmNCS0J7QiAor0JbQmNCS0J7QiNCY0J3QntCSINCJ0KPQkdCY0KbQkAor0JbQmNCS0J7QiNCY0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQltCY0JLQntCI0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CW0JjQktCe0IjQmNCd0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JbQmNCS0J7QiNCY0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQntCI0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0J7QiNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQltCY0JLQntCI0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JbQmNCS0J7QiNCd0J7QktCY0Isg0KHQkNCK0JAKK9CW0JjQktCe0IjQndCe0JLQmNCLINCh0KDQgtCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQltCY0JLQntCI0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQltCY0JLQntCi0JjQiyDQkNCd0JPQldCb0JjQndCQCivQltCY0JLQntCi0JjQiyDQlNCj0KjQkNCdCivQltCY0JLQntCi0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCe0KLQmNCLINCh0KLQldCS0JDQnQor0JbQmNCS0J7QotCY0Isg0JLQldCb0JjQnNCY0KAKK9CW0JjQktCe0KLQmNCdINCc0JDQoNCY0KbQkAor0JbQmNCS0J7QotCY0J0g0JzQmNCi0JDQoAor0JbQnNCj0JrQmNCLINCR0KDQkNCd0JrQngor0JbQnNCj0JrQmNCLINCT0J7QoNCU0JDQndCQCivQltCc0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQltCd0JjQlNCQ0KDQqNCY0Isg0JjQk9Cd0JDQpgor0JbQndCY0JTQkNCg0JXQpiDQmNCS0JDQnQor0JbQndCY0JTQkNCg0JXQpiDQmNCS0JDQnQor0JbQntCb0KbQldCgINCk0JXQoNCV0J3Qpgor0JbQntCb0KbQldCgINCS0JjQm9Cc0J7QqAor0JbQntCJ0J7QnCDQmtCb0JDQoNCQCivQltCe0InQntCcINCc0JjQoNCI0JDQndCQCivQltCe0KDQliDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JbQntCg0JjQiyDQpNCY0JvQmNCfCivQltCj0JbQkCDQnNCY0KDQmtCeCivQltCj0JHQntCg0Jgg0JzQmNCb0JXQndCQCivQltCj0JPQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CW0KPQk9CY0Isg0JrQoNCh0KLQngor0JbQo9CT0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0KPQk9CY0Isg0JzQmNCb0JjQiNCQCivQltCj0JPQmNCLINCc0JjQm9CY0KHQkNCSCivQltCj0JPQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCj0JPQmNCLINCc0JjQoNCa0J4KK9CW0KPQk9CY0Isg0KDQkNCU0J7QiNCa0JAKK9CW0KPQk9CY0Isg0KDQkNCi0JrQngor0JbQo9CT0JjQiy3QoNCY0IjQkNCS0JXQpiDQodCY0JvQktCY0IjQkAor0JbQo9CT0JjQiyDQodCi0JDQndCY0KjQkAor0JbQo9CT0JjQiyDQodCi0JDQndCa0J4KK9CW0KPQiNCY0Isg0JzQntCc0JjQoAor0JbQo9CI0JjQiyDQodCb0JDQktCa0J4KK9CW0KPQiNCeINCc0JDQoNCI0JDQnQor0JbQo9Cc0JHQldCg0JrQntCS0JjQiyDQgtCe0KDQgtCVINCc0KAKK9CW0KPQndCQ0KYg0IjQo9Cb0JrQkAor0JbQo9Cd0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQltCj0J3Qk9Cj0Jsg0KHQnNCY0InQkAor0JbQo9Cd0JjQiyDQkdCe0KjQmtCeCivQltCj0J3QmNCLINCU0JDQoNCa0J4KK9CW0KPQndCY0Isg0IjQntCS0JjQqNCQCivQltCj0J3QmNCLINCc0JjQm9CQ0J0KK9CW0KPQndCY0Isg0JzQmNCb0JXQndCa0J4KK9CW0KPQndCY0Isg0JzQmNCb0JjQiNCQ0J0KK9CW0KPQndCY0Isg0JzQntCc0KfQmNCb0J4KK9CW0KPQndCY0Isg0J3QldCd0JDQlAor0JbQo9Cd0JjQiy3Qn9Ce0J/QntCSINCh0J3QldCW0JDQndCQCivQltCj0J3QmNCLINCg0JDQlNCQCivQltCj0J3QmNCLINCh0JjQnNCQCivQltCj0J3QmNCLINCh0J7QitCQCivQltCj0J3QmNCLINCS0JXQm9CY0JzQmNCgCivQltCj0IrQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CW0KPQndCi0JXQoCDQkNCd0KLQo9CdINCU0JjQn9CbINCY0J3Qkwor0JbQo9Cd0KLQldCgINCR0J7QltCQ0J3QkAor0JbQo9Cf0JDQnSDQldCU0KPQkNCg0JQKK9CW0KPQn9CQ0J0g0JzQmNCg0JrQngor0JbQo9Cf0JDQndCn0JjQiyDQnNCQ0KDQk9CQ0KDQldCi0JAKK9CW0KPQn9CQ0J3QldCmINCQ0JvQkdCV0KDQoiDQlNCgCivQltCj0J/QkNCd0JXQpiDQmtCh0JXQndCY0IjQkAor0JbQo9Cf0JDQndCV0KYg0JzQmNCg0JAKK9CW0KPQn9CQ0J3QldCmINCc0JjQoNCQCivQltCj0J/QkNCg0JjQiyDQktCY0JrQotCe0KAKK9CW0KPQn9CY0Isg0JDQndCi0JUKK9CW0KPQn9CY0Isg0JTQkNCd0JUKK9CW0KPQn9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CW0KPQn9CY0Isg0JzQmNCI0J4KK9CW0KPQn9Cj0J3QodCa0Jgg0JbQkNCg0JrQngor0JbQo9Cf0KPQndCh0JrQmCDQltCY0JLQntCg0JDQlAor0JbQo9Cf0KPQndCh0JrQmCDQk9Ce0IjQmtCeCivQltCj0J/Qo9Cd0KHQmtCYINCT0KDQntCX0JTQkNCd0JAKK9CW0KPQn9Cj0J3QodCa0Jgg0JPQoNCj0IjQmNCm0JAKK9CW0KPQn9Cj0J3QodCa0Jgg0KXQldCb0JXQndCQCivQltCj0J/Qo9Cd0KHQmtCYINCY0JLQkNCdCivQltCj0J/Qo9Cd0KHQmtCYINCc0JDQoNCY0J3QmtCeCivQltCj0J/Qo9Cd0KHQmtCYINCh0KLQldCS0JDQnQor0JbQo9Cf0KPQndCh0JrQmCDQktCV0KHQldCb0JjQndCa0JAKK9CW0KPQoNCW0JXQktCY0Isg0KbQktCV0KLQmtCeCivQltCj0KDQltCY0J3QntCS0JjQiyDQmtCe0KHQotCQCivQltCj0KDQltCe0JLQkNCdINCb0JjQkAor0JbQo9Cg0JbQntCS0JDQnSDQndCV0JvQowor0JbQo9Cg0JbQntCS0JDQnSDQotCg0JDQndCU0JDQpNCY0KAKK9CW0KPQoNCW0KPQmyDQkdCe0KjQmtCeCivQltCj0KDQltCj0Jsg0KHQotCQ0J3QntCI0JUKK9CW0KPQoNCY0Isg0JzQmNCl0JDQmNCb0J4KK9CW0KPQoNCY0Isg0JLQkNCh0J4KK9CW0KPQoNCa0JAg0JDQo9Cg0J7QoNCQCivQltCj0KLQmNCLINCc0JjQm9Ca0JAKK9CW0KPQotCY0Isg0J/QldCi0JDQoAor0JbQo9Ci0JjQiyDQodCi0JXQktCeCivQgtCQ0KfQkNCd0JjQnSDQoNCQ0JTQntCS0JDQnQor0ILQkNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCQ0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCQ0IjQmNCLINCW0JDQoNCa0J4KK9CC0JDQiNCY0Isg0JbQldCJ0JrQngor0ILQkNCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0ILQkNCI0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0JDQiNCY0Isg0IjQldCb0JXQndCa0J4KK9CC0JDQiNCY0Ist0IjQntCS0JDQndCe0JLQmNCLINCg0JDQiNCa0JAKK9CC0JDQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0JDQiNCY0Isg0J3QkNCU0JAKK9CC0JDQiNCY0Isg0J3QldCS0JXQndCQCivQgtCQ0IjQmNCLINCd0JjQmtCe0JvQkAor0ILQkNCI0JjQiyDQktCV0InQmtCeCivQgtCQ0IjQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQgtCQ0JrQntCd0J7QkiDQnNCY0JvQmtCQCivQgtCQ0JrQntCd0J7QkiDQodCi0JXQktCQ0J0KK9CC0JDQmtCe0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0ILQkNCa0J7QndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQgtCQ0JrQntCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQgtCQ0JrQntCSINCJ0JjQidCQ0J3QkAor0ILQkNCa0J7QkiDQnNCY0KXQkNCI0JvQngor0ILQkNCa0J7QkiDQnNCY0JvQkNCdCivQgtCQ0JrQntCS0JjQiyDQltCY0JLQmtCQCivQgtCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CC0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CC0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CC0JDQmtCe0JLQmNCLINCC0KPQoNCQCivQgtCQ0JrQntCS0JjQiyDQgtCj0KDQngor0ILQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9CC0JDQmtCe0JLQmNCLINCQ0J3QmtCQCivQgtCQ0JrQntCS0JjQiyDQlNCQ0KDQkAor0ILQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0ILQkNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0ILQkNCa0J7QktCY0Isg0JjQm9CVCivQgtCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQgtCQ0JrQntCS0JjQiyDQiNCe0JrQkAor0ILQkNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CC0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0JDQmtCe0JLQmNCLINCI0J7QktCY0KbQkAor0ILQkNCa0J7QktCY0Isg0IjQntCS0J4KK9CC0JDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCU0KAg0JjQndCTCivQgtCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQgtCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQgtCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQgtCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQgtCQ0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQgtCQ0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQkNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0JDQmtCe0JLQmNCLINCd0JXQgtCeCivQgtCQ0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0ILQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQgtCQ0JrQntCS0JjQiyDQntCh0KLQntCI0JAKK9CC0JDQmtCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQgtCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQgtCQ0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0ILQkNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0JDQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCQ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0ILQkNCa0J7QktCY0Isg0KDQkNCd0JrQngor0ILQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9CC0JDQmtCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQgtCQ0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQgtCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0JDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0ILQkNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQgtCQ0JrQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0ILQkNCa0J7QktCY0Isg0JLQkNCh0J4KK9CC0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0JDQmtCe0JLQmNCLINCS0J7QiNCeCivQgtCQ0JrQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQgtCQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQgtCQ0JvQkNCYINCb0JDQiNCe0KgKK9CC0JDQm9CY0J3QkNCmINCT0J7QoNCU0JDQndCQCivQgtCQ0JvQmNCd0JDQpiDQoNCQ0JTQmNCS0J7QiAor0ILQkNCb0J4g0JzQmNCg0JrQngor0ILQkNCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQkNCb0KPQqCDQodCi0JXQktCQ0J0KK9CC0JDQnSDQiNCe0JLQkNCdCivQgtCQ0J3QmNCoINCb0JDQl9CQ0KAKK9CC0JDQndCY0Kgg0J7Qm9CY0JLQldCg0JAKK9CC0JDQndCY0Isg0JzQkNCi0J4KK9CC0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QqAor0ILQkNCd0KLQkNCgINCQ0J3QgtCV0JvQmNCI0JAKK9CC0JDQndCi0JDQoCDQiNCe0JbQldCkCivQgtCQ0J/QkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQkNCf0JAg0JTQo9Co0JDQnQor0ILQkNCf0JAg0JzQkNCg0JrQngor0ILQkNCf0JAg0J/QldCi0JDQoAor0ILQkNCf0JjQiyDQlNCQ0JLQmNCUCivQgtCQ0J/QmNCLINCa0KDQodCi0JAKK9CC0JDQn9CY0Isg0JzQmNCb0JXQodCQCivQgtCQ0J/QmNCLINCc0JjQm9CV0KHQkAor0ILQkNCf0JjQiy3QnNCY0JvQmNCLINCi0JDQotCI0JDQndCQINCb0JXQmtCQ0KAKK9CC0JDQn9CY0Isg0J/QkNCS0JvQlQor0ILQkNCg0JzQkNCi0Jgg0KTQoNCQ0IrQkAor0ILQkNCg0JzQkNCi0Jgg0JPQmNCX0JXQm9CQCivQgtCQ0KDQnNCQ0KLQmCDQmNCb0J7QndCQCivQgtCQ0KDQnNCQ0KLQmCDQiNCj0JvQmNCeCivQgtCQ0KDQnNCQ0KLQmCDQm9CQ0KHQm9CeCivQgtCQ0KDQnNCQ0KLQmCDQnNCY0KXQkNCI0JvQngor0ILQkNCg0JzQkNCi0Jgg0KHQndCV0JbQkNCd0JAKK9CC0JDQotCa0J7QkiDQoNCQ0JTQkAor0ILQldCR0J3QkNCgINCe0JHQoNCQ0JQKK9CC0JXQmtCV0KAg0KDQntCX0JDQm9CY0IjQkAor0ILQldCa0JjQiyDQltCY0JLQntCI0JjQnQor0ILQldCa0JjQiyDQmtCQ0KLQmNCm0JAKK9CC0JXQmtCY0Isg0JzQmNCb0JDQnQor0ILQldCa0JjQiyDQnNCY0JvQldCd0JAKK9CC0JXQmtCY0Isg0JzQmNCb0J7QnNCY0KAKK9CC0JXQmtCY0Isg0J3QkNCU0JAKK9CC0JXQmtCY0Isg0J3QldCU0JXQidCa0J4KK9CC0JXQmtCY0Isg0J/QkNCS0JvQlQor0ILQldCa0JjQiyDQoNCQ0JTQlQor0ILQldCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0ILQldCa0JjQiyDQodCi0JDQndCQCivQgtCV0JrQmNCLINCh0KLQntCI0JDQndCa0JAKK9CC0JXQm9CY0Isg0KPQoNCe0KgKK9CC0JXQnNCR0JXQoCDQmNCo0KLQktCQ0J0KK9CC0JXQnNCg0J7QktCh0JrQmCDQotCe0JzQkNCoCivQgtCV0JzQoNCe0JLQodCa0Jgg0JLQm9CQ0KLQmtCeCivQgtCV0JzQoNCe0JLQodCa0Jgg0JfQlNCV0J3QmtCeCivQgtCV0J3QkNCU0JjQiyDQlNCg0JDQk9CY0KjQkAor0ILQldCd0JDQlNCY0IjQkCDQn9CV0KLQkNCgCivQgtCV0J3QlNCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CC0JXQndCU0JjQiyDQm9CQ0JfQkNCgCivQgtCV0J3QldCoINCf0JXQotCQ0KAKK9CC0JXQndCT0JUg0JDQndCU0KDQkNCoCivQgtCV0J3Qk9CVINCQ0J3QlNCg0JjQiNCQCivQgtCV0J3Qk9CVINCf0JXQotCV0KAKK9CC0JXQndCY0Isg0IjQldCb0JXQndCQCivQgtCV0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0JXQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQldCd0JjQiyDQl9Ce0KDQmNCm0JAKK9CC0JXQndCY0KHQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CC0JXQoNCCINCC0KPQoNCQCivQgtCV0KDQgiDQkNCd0KLQo9CdCivQgtCV0KDQgiDQmNCT0J7QoAor0ILQldCg0IIg0IjQntCh0JjQnwor0ILQldCg0IIg0JrQkNCi0JDQoNCY0J3QkAor0ILQldCg0IIg0InQo9CR0JjQptCQCivQgtCV0KDQgiDQn9CV0KLQkNCgCivQgtCV0KDQgiDQktCY0JvQnNCe0KgKK9CC0JXQoNCVINCa0J7QoNCd0JXQmwor0ILQldCg0JUg0JfQntCb0KLQkNCdCivQgtCV0KDQpNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCV0KDQmCDQqNCQ0J3QlNCe0KAKK9CC0JXQoNCYINCV0J3QlNCg0JUKK9CC0JXQoNCYINCV0KDQltCV0JHQldCiCivQgtCV0KDQmCDQk9CV0JfQkAor0ILQldCg0Jgg0JrQkNCg0J7QiQor0ILQldCg0Jgg0JvQkNCU0JjQodCb0JDQkgor0ILQldCg0Jgg0JvQkNCh0JvQngor0ILQldCg0Jgg0KHQkNCR0J7Qm9CnCivQgtCV0KDQmCDQodCQ0JvQntCc0JUKK9CC0JXQoNCY0Isg0JbQmNCS0JDQnQor0ILQldCg0JjQiyDQgtCe0KDQgtCVCivQgtCV0KDQmNCLINCC0KPQoNCQCivQgtCV0KDQmNCLINCR0KDQkNCd0JrQngor0ILQldCg0JjQiyDQlNCQ0J3QmNCm0JAKK9CC0JXQoNCY0Isg0JTQldCh0JDQndCa0JAKK9CC0JXQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQgtCV0KDQmNCLINCU0J7QkdCg0JjQndCa0J4KK9CC0JXQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCV0KDQmNCLINCk0JXQm9CY0JrQoQor0ILQldCg0JjQiyDQiNCQ0KDQntCh0JvQkNCSCivQgtCV0KDQmNCLINCI0J7QktCQ0J0KK9CC0JXQoNCY0Isg0IjQntCS0JDQnQor0ILQldCg0JjQiyDQiNCj0JvQmtCQCivQgtCV0KDQmNCLINCc0JjQptCQCivQgtCV0KDQmNCLINCc0JjQpdCQ0IjQm9CeCivQgtCV0KDQmNCLINCc0JjQm9CQ0J0KK9CC0JXQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0JXQoNCY0Isg0JzQmNCb0JUKK9CC0JXQoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0ILQldCg0JjQiyDQnNCY0JvQntCoCivQgtCV0KDQmNCLINCc0JjQntCU0KDQkNCTCivQgtCV0KDQmNCLINCc0JjQoNCI0JDQndCQCivQgtCV0KDQmNCLINCd0JDQlNCQCivQgtCV0KDQmNCLINCe0JvQk9CQCivQgtCV0KDQmNCLINCe0JvQmNCS0JXQoNCQCivQgtCV0KDQmNCLINCf0JXQotCQ0KAKK9CC0JXQoNCY0Isg0KDQkNCU0JUKK9CC0JXQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9CC0JXQoNCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0JXQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQldCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQldCg0JjQiyDQodCb0JDQktCa0J4KK9CC0JXQoNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQgtCV0KDQmNCLINCS0JXQidCa0J4KK9CC0JXQoNCY0Isg0JLQntCI0JjQnQor0ILQldCg0JrQmCDQktCV0KDQkAor0ILQldCg0JrQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0ILQldCg0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0ILQldCg0JrQntCS0JjQiyDQktCb0JDQlNCV0KLQkAor0ILQldCg0JzQkNCdINCW0JjQktCa0J4KK9CC0JXQoNCc0JDQnSDQndCV0JTQldCJ0JrQngor0ILQldCg0JzQkNCd0J7QkiDQmNCS0JDQnQor0ILQldCg0JzQkNCd0J7QkiDQidCj0JHQntCc0JjQoAor0ILQldCg0JzQkNCd0J7QkiDQnNCY0JvQkNCdCivQgtCV0KDQnNCQ0J3QntCSINCc0JjQm9CV0J3QkAor0ILQldCg0JzQkNCd0J7QkiDQndCQ0JTQldCW0JTQkAor0ILQldCg0JzQkNCd0J7QkiDQntCb0JPQkAor0ILQldCg0JzQkNCd0J7QkiDQn9CV0KLQkNCgCivQgtCV0KDQnNCQ0J3QntCSINCi0J7QlNCe0KAKK9CC0JXQoNCc0JDQndCe0JIg0JLQm9CQ0JTQkAor0ILQldCg0JzQkNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQgtCV0KDQnNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0JXQoNCc0JDQndCe0JLQmNCLINCc0JjQm9Ce0JTQkNCd0JrQkAor0ILQldCg0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQgtCV0KDQnNCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9CC0JXQoNCc0JDQotCYINCY0KDQldCd0JAKK9CC0JXQotCa0JAg0IjQkNCd0J4KK9CC0JXQotCa0JAg0JzQmNCl0JDQmwor0ILQldCi0JrQkCDQnNCY0KXQkNCbCivQgtCV0KLQmtCQINCc0JjQoNCa0J4KK9CC0JXQotCS0JDQmCDQkNCd0JTQoNCQ0Kgg0JTQmNCf0Jsg0JjQndCTCivQgtCV0KLQktCQ0Jgg0JDQndCU0KDQkNCoCivQgtCV0KLQktCQ0Jgg0JDQndCY0KbQkAor0ILQldCi0JLQkNCYINCk0JXQoNCV0J3Qpgor0ILQldCi0JLQkNCYINCY0JzQoNCVCivQgtCV0KLQktCQ0Jgg0JvQkNCI0J7QqAor0ILQldCS0JXQmtCYINCI0J7QktCQ0J0KK9CC0JjQlNCY0Isg0JzQkNCg0JjQiNCQCivQgtCY0JTQmNCLINCc0JDQoNCY0J3QmtCeCivQgtCY0JrQmNCLINCh0KLQntCI0JDQnQor0ILQmNCa0JjQiyDQktCY0JrQotCe0KDQmNCI0JAKK9CC0JjQm9CQ0KEg0JHQntCg0J4KK9CC0JjQm9CQ0KEg0JTQoNCQ0JPQkNCdCivQgtCY0JvQkNChINCU0KPQqNCQ0J0KK9CC0JjQm9CQ0KEg0JPQoNCe0JfQlNCQ0J3QkAor0ILQmNCb0JDQoSDQnNCQ0KDQmNCd0JrQngor0ILQmNCb0JDQoSDQnNCY0JvQntCg0JDQlAor0ILQmNCb0JDQoSDQnNCY0JvQntCg0JDQlAor0ILQmNCb0JDQoSDQnNCY0JvQntCg0JDQlAor0ILQmNCb0JDQoSDQndCY0JrQntCb0JAKK9CC0JjQm9CQ0KEg0KHQotCV0JLQkNCdCivQgtCY0JvQktCV0KHQmCDQqNCQ0J3QlNCe0KAKK9CC0JjQm9CS0JXQodCYINCa0JDQoNCb0J4KK9CC0JjQnSDQgtCj0KDQkAor0ILQmNCdINCI0KPQm9CY0IjQkNCd0JAKK9CC0JjQndCC0JjQiyDQnNCY0JvQntCI0JrQngor0ILQmNCd0JjQiyDQmNCS0JjQptCQCivQgtCY0J3QmNCLINCd0JjQmtCe0JvQkAor0ILQmNCd0JjQiyDQodCb0JDQktCa0JAKK9CC0JjQndCY0Isg0KHQntCk0JjQiNCQCivQgtCY0J3QmNCLINCS0JvQkNCU0JXQotCQCivQgtCY0J3QmNCLINCX0J7QoNCQ0J0KK9CC0JjQitCQINCQ0J3QlNCg0JXQiAor0ILQmNCd0J7QktCY0Isg0KbQktCV0KLQmtCeCivQgtCY0J3QntCS0JjQiyDQmNCS0JrQngor0ILQmNCd0J7QktCY0Isg0JrQntCb0JUKK9CC0JjQn9CQ0JvQniDQgtCj0KDQngor0ILQmNCf0JDQm9CeINCT0J7QiNCa0J4KK9CC0JjQn9CQ0JvQniDQnNCY0JvQkNCdCivQgtCY0J/QkNCb0J4g0JzQmNCg0JrQngor0ILQmNCf0JDQm9CeINCc0JjQoNCe0KHQm9CQ0JIKK9CC0JjQn9CQ0JvQniDQoNCQ0JTQlQor0ILQmNCf0JDQndCe0JIg0JjQlNCQCivQgtCY0J/QkNCd0J7QkiDQndCY0JrQntCb0JAKK9CC0JjQn9CQ0J3QntCSINCg0JXQidCQCivQgtCY0J/QkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQgtCY0KDQmNCo0Jgg0JjQqNCi0JLQkNCdCivQgtCY0KDQm9CY0Isg0KHQotCV0JLQkNCdCivQgtCY0KHQkNCb0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0JjQodCQ0JvQntCSINCI0JXQm9CV0J3QkAor0ILQmNCh0JDQm9Ce0JIg0IjQldCb0JXQndCQCivQgtCY0KHQkNCb0J7QkiDQm9CQ0JfQkNCgCivQgtCY0KHQkNCb0J7QkiDQidCj0JHQmNCd0JrQkAor0ILQmNCh0JDQm9Ce0JIg0JzQmNCb0JDQnQor0ILQmNCh0JDQm9Ce0JIg0JzQmNCb0JDQnQor0ILQmNCh0JDQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9CC0JjQodCQ0JvQntCSINCc0JjQm9CY0JLQntCICivQgtCY0KHQkNCb0J7QkiDQnNCY0J7QlNCg0JDQkwor0ILQmNCh0JDQm9Ce0JIg0JzQmNCe0JTQoNCQ0JMKK9CC0JjQodCQ0JvQntCSINCd0JDQlNCQCivQgtCY0KHQkNCb0J7QkiDQodCe0IrQkAor0ILQmNCh0JDQm9Ce0JLQmNCLINCa0JDQotCY0KbQkAor0ILQmNCi0JrQntCSINCI0J7QktCQ0J0KK9CC0JjQotCa0J7QkiDQodCe0KTQmNCI0JAKK9CC0IjQkNCaINCW0JjQktCa0J4KK9CC0J7QgtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0J7Qk9CeINCc0JjQm9Ce0JLQkNCdCivQgtCe0JPQniDQnNCY0KDQiNCQ0J3QkAor0ILQntCT0J4g0KDQo9CW0JjQptCQCivQgtCe0JPQniDQl9Ce0KDQkNCdCivQgtCe0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQntCT0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQmtCQCivQgtCe0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0JrQmNCLINCR0J7QqNCa0J4KK9CC0J7QmtCY0Isg0JHQntCg0JjQktCe0IjQlQor0ILQntCa0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0KbQktCV0KLQmtCeCivQgtCe0JrQmNCLINCU0JDQoNCY0J3QmtCQCivQgtCe0JrQmNCLINCU0KDQkNCT0JDQnQor0ILQntCa0JjQiyDQlNCg0JDQk9CY0KjQkAor0ILQntCa0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0JrQmNCLINCU0KDQkNCT0J4KK9CC0J7QmtCY0Isg0JPQntCg0JDQnQor0ILQntCa0JjQiyDQmNCS0JDQnQor0ILQntCa0JjQiyDQiNCV0JvQmNCh0JDQktCQCivQgtCe0JrQmNCLINCI0J7QoNCU0JDQnQor0ILQntCa0JjQiyDQidCj0JHQmNCd0JrQngor0ILQntCa0JjQiyDQidCj0JHQngor0ILQntCa0JjQiyDQm9Cj0JrQkAor0ILQntCa0JjQiyDQnNCQ0KDQmNCd0JrQngor0ILQntCa0JjQiyDQnNCQ0KLQmNCb0JTQkAor0ILQntCa0JjQiyDQnNCY0KXQkNCI0JvQngor0ILQntCa0JjQiyDQnNCY0JvQkNCdCivQgtCe0JrQmNCLINCc0JjQm9CQ0J0KK9CC0J7QmtCY0Isg0JzQmNCb0JjQodCQ0JIKK9CC0J7QmtCY0Isg0JzQmNCb0JjQktCe0IjQlQor0ILQntCa0JjQiyDQnNCY0JvQntCS0JDQnQor0ILQntCa0JjQiyDQnNCY0JvQo9Ci0JjQnQor0ILQntCa0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9CC0J7QmtCY0Isg0J/QldCi0JDQoAor0ILQntCa0JjQiyDQoNCQ0JTQmNCh0JDQkgor0ILQntCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQntCa0JjQiyDQoNCQ0KLQmtCeCivQgtCe0JrQmNCLINCg0KPQltCQCivQgtCe0JrQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQgtCe0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0J7QmtCY0Isg0KHQntCk0JjQiNCQCivQgtCe0JrQmNCLINCh0KLQkNCd0JjQqNCQCivQgtCe0JrQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0ILQntCa0JjQiyDQktCV0KDQkAor0ILQntCa0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0ILQntCa0JjQiyDQktCj0IjQkNCU0JjQnQor0ILQntCa0JjQiyDQktCj0JrQkNCU0JjQnQor0ILQntCa0JjQiyDQl9Ce0KDQkNCdCivQgtCe0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQgtCe0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQgtCe0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQgtCe0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0ILQntCa0J7QktCY0Isg0J/QldCi0JDQoAor0ILQntCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0J7QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQgtCe0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CC0J7QmtCS0KPQp9CY0Isg0J3QkNCU0JAKK9CC0J7Qm9CQ0Jgg0JjQnNCg0JUKK9CC0J7Qm9CQ0Jgg0JzQkNCi0JjQm9CU0JAKK9CC0J7QidCV0JLQmNCLINCC0J7QmtCQCivQgtCe0JvQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0ILQntCc0J/QkNCg0JjQiyDQlNCj0KjQkNCdCivQgtCe0JzQn9CQ0KDQmNCLINCY0JvQmNCI0JAKK9CC0J7QnNCf0JDQoNCY0Isg0JzQldCb0JDQndCY0IjQkAor0ILQntCc0J/QkNCg0JjQiyDQndCY0JrQntCb0JAKK9CC0J7QnNCf0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQgtCe0JzQn9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0ILQntCc0J/QkNCg0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0ILQntCd0J7QktCY0Isg0ILQntCg0ILQmNCI0JUKK9CC0J7QndCe0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9CC0J7QndCe0JLQmNCLINCX0JDQoNCY0IjQkAor0ILQntCg0ILQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCW0JjQktCe0KLQkAor0ILQntCg0ILQldCS0JjQiyDQgtCe0JrQkAor0ILQntCg0ILQldCS0JjQiyDQgtCe0KDQgtCVCivQgtCe0KDQgtCV0JLQmNCLINCC0J7QoNCC0JUKK9CC0J7QoNCC0JXQktCY0Isg0ILQo9Cg0JAKK9CC0J7QoNCC0JXQktCY0Isg0JDQptCQCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQgtCe0KDQgtCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0ILQntCg0ILQldCS0JjQiyDQkdCe0KDQkAor0ILQntCg0ILQldCS0JjQiyDQkdCe0KDQmNCh0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQgtCe0KDQgtCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCU0JDQoNCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQldCh0J/QntCiCivQgtCe0KDQgtCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQntCg0ILQldCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JbQkAor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQo9Co0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCj0KjQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQo9Co0JDQnQor0ILQntCg0ILQldCS0JjQiyDQldCg0J3QldCh0KIKK9CC0J7QoNCC0JXQktCY0Isg0JXQktCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQpNCQ0KLQmNCc0JAKK9CC0J7QoNCC0JXQktCY0Isg0JPQmNCX0JXQm9CQCivQgtCe0KDQgtCV0JLQmNCLINCT0J7QoNCQCivQgtCe0KDQgtCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JjQm9CY0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCY0JvQntCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JjQktCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQmNCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCQ0JPQntCU0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCe0KDQgtCV0JLQmNCLINCI0JXQm9CV0J3QkAor0ILQntCg0ILQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQgtCe0KDQgtCV0JLQmNCLINCa0J7QndCh0KLQkNCd0JTQmNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JrQntCh0KLQkAor0ILQntCg0ILQldCS0JjQiyDQm9CQ0JfQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCb0JDQl9CQ0KAKK9CC0J7QoNCC0JXQktCY0Isg0InQmNCJ0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCQINCU0JjQn9CbINCY0J3Qkwor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCo0JAKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQptCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCc0JDQoNCY0IjQkAor0ILQntCg0ILQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CV0J3QkAor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QqCDQlNCgCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KgKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0JrQngor0ILQntCg0ILQldCS0JjQiyDQnNCY0KDQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCc0JvQkNCU0JXQnQor0ILQntCg0ILQldCS0JjQiyDQndCQ0JTQkAor0ILQntCg0ILQldCS0JjQiyDQndCQ0JTQkAor0ILQntCg0ILQldCS0JjQiyDQndCV0JTQldCJ0JrQniDQlNCgCivQgtCe0KDQgtCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCd0JjQmtCe0JvQkAor0ILQntCg0ILQldCS0JjQiyDQn9CQ0IjQkAor0ILQntCg0ILQldCS0JjQiyDQn9CQ0J3QotCQCivQgtCe0KDQgtCV0JLQmNCLINCf0JDQktCb0JUKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCS0JvQlQor0ILQntCg0ILQldCS0JjQiyDQn9CQ0JLQm9CVCivQgtCe0KDQgtCV0JLQmNCLINCf0JXQotCQ0KAKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCI0JrQkAor0ILQntCg0ILQldCS0JjQiyDQoNCQ0J3QgtCV0JsKK9CC0J7QoNCC0JXQktCY0Isg0KHQkNCo0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQkNCS0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQkNCC0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQkNCS0JrQngor0ILQntCg0ILQldCS0JjQiyDQodCb0JDQktCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQntCk0JjQiNCQCivQgtCe0KDQgtCV0JLQmNCLINCh0J7QpNCY0IjQkAor0ILQntCg0ILQldCS0JjQiyDQodCg0ILQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KDQgtCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQoNCV0KLQldCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQkNCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQodCi0JXQktCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0ILQntCg0ILQldCS0JjQiyDQotCY0J7QodCQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCS0JXQm9CY0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCS0JXQoNCQCivQgtCe0KDQgtCV0JLQmNCLINCS0JXQoNCQCivQgtCe0KDQgtCV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CC0J7QoNCC0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQktCb0JDQiNCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQktCe0IjQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCS0KPQp9Ca0J4KK9CC0J7QoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQntCg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQntCg0ILQmNCLINCR0KDQkNCd0JrQngor0ILQntCg0ILQmNCLINCc0JDQoNCa0J4KK9CC0J7QoNCC0JjQiyDQnNCY0JvQkNCdCivQgtCe0KDQgtCY0IjQldCS0KHQmtCYINCU0KDQkNCT0JDQnQor0ILQntCg0ILQmNCI0JXQktCh0JrQmCDQlNCj0KjQkNCdCivQgtCe0KDQgtCY0IjQldCS0KHQmtCYINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JjQnSDQpNCV0JzQmtCQCivQgtCe0KDQgtCY0J0g0KDQkNCU0JUKK9CC0J7QoNCC0JjQnSDQodCQ0JLQkAor0ILQntCg0ILQmNCe0KHQmtCYINCa0JjQoNCeCivQgtCe0KDQldCS0KHQmtCYINCT0J7QoNCQ0J0KK9CC0J7QoNCT0JjQldCS0JAg0IjQldCb0JjQptCQCivQgtCe0KDQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9CC0J7QoNCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0J7QoNCY0Isg0InQo9CR0JjQodCQ0JIKK9CC0J7QoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0ILQntCg0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQntCg0JjQiyDQktCV0KDQmNCm0JAKK9CC0J7QoNCe0IjQldCS0JjQiyDQktCj0JrQntCi0JAKK9CC0J7QotCV0JLQkCDQotCg0JDQiNCQ0J3QmtCQCivQgtCe0KLQo9Cd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0ILQntCX0JjQiyDQqNCj0JrQoNCY0IjQkAor0ILQo9CC0JDQoCDQnNCV0JvQkNCd0JjQiNCQCivQgtCj0ILQkNCgINCS0JvQkNCU0JAKK9CC0KPQgtCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9CC0JDQoCDQl9CS0J7QndCY0JzQmNCgCivQgtCj0ILQmNCLINCU0KDQkNCT0JDQnQor0ILQo9CU0KPQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CC0KPQk9CQINCf0JDQktCV0JsKK9CC0KPQmtCQ0J3QntCSINCR0J7QoNCY0JLQntCICivQgtCj0JrQkNCd0J7QkiDQldCc0JjQm9CY0IjQkNCdCivQgtCj0JrQkNCd0J7QkiDQnNCY0JvQkNCdCivQgtCj0JrQkNCd0J7QkiDQndCQ0JTQkAor0ILQo9Ca0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0ILQo9Ca0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCj0JrQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQgtCj0JrQkNCd0J7QktCY0Isg0JjQktCeCivQgtCj0JrQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQgtCj0JrQkNCd0J7QktCY0Isg0JzQkNCg0JAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQkNCd0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9CC0KPQmtCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCd0JDQlNCQCivQgtCj0JrQkNCd0J7QktCY0Isg0J/Qo9Cd0JjQqNCQCivQgtCj0JrQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQgtCj0JrQkNCd0J7QktCY0Isg0KHQotCQ0JrQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0ILQo9Ca0JjQp9CY0J0g0IjQntCS0JDQndCa0JAKK9CC0KPQmtCY0KfQmNCdINCc0JDQoNCY0IjQkAor0ILQo9Ca0JjQp9CY0J0g0KHQoNCV0JTQntCI0JUKK9CC0KPQmtCY0KfQmNCdINCh0KDQldCU0J7QiNCVCivQgtCj0JrQmNCLLdCo0JDQkdCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0KPQmtCY0Isg0JbQkNCg0JrQkAor0ILQo9Ca0JjQiyDQltCQ0KDQmtCeCivQgtCj0JrQmNCLINCW0JXQidCa0J4KK9CC0KPQmtCY0Isg0JbQmNCS0J7QotCQCivQgtCj0JrQmNCLINCC0J7QoNCC0JUKK9CC0KPQmtCY0Isg0ILQntCg0ILQlQor0ILQo9Ca0JjQiyDQgtCe0KDQgtCVCivQgtCj0JrQmNCLINCC0J7QoNCC0JUKK9CC0KPQmtCY0Isg0ILQo9CgMAor0ILQo9Ca0JjQiyDQgtCj0KDQkAor0ILQo9Ca0JjQiyDQgtCj0KDQngor0ILQo9Ca0JjQiyDQkNCT0J3QmNCm0JAKK9CC0KPQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQgtCj0JrQmNCLINCQ0J3QkAor0ILQo9Ca0JjQiyDQkNCd0JAKK9CC0KPQmtCY0Isg0JDQndCU0KDQmNCI0JAKK9CC0KPQmtCY0Isg0JDQndCY0KbQkAor0ILQo9Ca0JjQiyDQkdCY0InQkNCd0JAKK9CC0KPQmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0ILQo9Ca0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0KPQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0JrQmNCLINCR0KDQkNCd0JrQngor0ILQo9Ca0JjQiyDQlNCQ0J3QmNCm0JAg0JTQoAor0ILQo9Ca0JjQiyDQlNCQ0J3QmNCb0J4KK9CC0KPQmtCY0Isg0JTQmNCI0JDQndCQCivQgtCj0JrQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQo9Ca0JjQiyDQlNCe0JHQoNCY0JvQkAor0ILQo9Ca0JjQiyDQlNCe0JHQoNCY0JLQntCICivQgtCj0JrQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQmtCY0Isg0JTQoNCQ0JPQntCI0JvQngor0ILQo9Ca0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JTQo9Co0JDQnQor0ILQo9Ca0JjQiyDQlNCj0KjQkNCdCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JTQo9Co0JDQnQor0ILQo9Ca0JjQiyDQk9CV0J3QkAor0ILQo9Ca0JjQiyDQk9CV0J3Qngor0ILQo9Ca0JjQiyDQk9CY0JfQldCb0JAKK9CC0KPQmtCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0KPQmtCY0Isg0JjQm9CY0IjQkAor0ILQo9Ca0JjQiyDQmNCb0JjQiNCQCivQgtCj0JrQmNCLINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0ILQo9Ca0JjQiyDQmNCS0JDQndCa0JAKK9CC0KPQmtCY0Isg0IjQkNCo0JAKK9CC0KPQmtCY0Isg0IjQldCb0JXQndCQCivQgtCj0JrQmNCLINCI0J7QktCQ0J0KK9CC0KPQmtCY0Isg0IjQntCS0JjQptCQCivQgtCj0JrQmNCLINCI0KPQm9Ca0JAKK9CC0KPQmtCY0Isg0JvQldCeCivQgtCj0JrQmNCLINCJ0JjQidCQ0J3QkAor0ILQo9Ca0JjQiyDQidCj0JHQmNCm0JAKK9CC0KPQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0KPQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0KPQmtCY0Isg0JzQkNCa0KHQmNCcCivQgtCj0JrQmNCLINCc0JDQoNCQCivQgtCj0JrQmNCLINCc0JDQoNCY0IjQkAor0ILQo9Ca0JjQiyDQnNCQ0KDQmNCd0JAKK9CC0KPQmtCY0Isg0JzQmNCI0J7QlNCg0JDQkwor0ILQo9Ca0JjQiyDQnNCY0JvQkNCd0JrQkAor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCj0JrQmNCLINCc0JjQm9CV0JLQkAor0ILQo9Ca0JjQiyDQnNCY0JvQlQor0ILQo9Ca0JjQiyDQnNCY0JvQlQor0ILQo9Ca0JjQiyDQnNCY0JvQmNCm0JAKK9CC0KPQmtCY0Isg0JzQmNCb0JjQptCQCivQgtCj0JrQmNCLINCc0JjQidCa0J4KK9CC0KPQmtCY0Isg0JzQmNCb0JrQkAor0ILQo9Ca0JjQiyDQnNCY0JvQntCoCivQgtCj0JrQmNCLINCc0JjQm9Ce0KgKK9CC0KPQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0KPQmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQnNCY0KDQmtCeCivQgtCj0JrQmNCLINCc0JjQoNCa0J4KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQnNCY0KDQmtCeCivQgtCj0JrQmNCLINCd0JXQgtCeCivQgtCj0JrQmNCLINCd0JXQlNCV0InQmtCeCivQgtCj0JrQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQmtCY0Isg0J3QntCS0JDQmgor0ILQo9Ca0JjQiyDQndCe0JLQkNCaCivQgtCj0JrQmNCLINCd0J7QktCQ0JoKK9CC0KPQmtCY0Isg0J7QodCi0J7QiNCQCivQgtCj0JrQmNCLINCf0JDQndCVCivQgtCj0JrQmNCLINCf0JDQktCb0JUKK9CC0KPQmtCY0Isg0J/QldCg0JjQqNCQCivQgtCj0JrQmNCLINCf0JXQotCQ0KAKK9CC0KPQmtCY0Isg0J/QldCi0JDQoAor0ILQo9Ca0JjQiyDQoNCQ0JTQlQor0ILQo9Ca0JjQiyDQoNCQ0JTQmNCS0J7QiAor0ILQo9Ca0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQgtCj0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQgtCj0JrQmNCLINCg0JDQiNCa0J4KK9CC0KPQmtCY0Isg0KDQntCh0JAKK9CC0KPQmtCY0Isg0KDQo9CW0JjQptCQINCb0J7QmtCQ0JsKK9CC0KPQmtCY0Isg0KHQkNCS0JAKK9CC0KPQmtCY0Isg0KHQkNCS0JrQkAor0ILQo9Ca0JjQiyDQodCQ0JLQniDQlNCgCivQgtCj0JrQmNCLINCh0JvQkNCS0JjQptCQCivQgtCj0JrQmNCLINCh0JvQkNCS0JrQngor0ILQo9Ca0JjQiyDQodCb0JDQktCe0InQo9CRCivQgtCj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0KPQmtCY0Isg0KHQoNCC0JDQnQor0ILQo9Ca0JjQiyDQodCg0JHQntCJ0KPQkQor0ILQo9Ca0JjQiyDQodCi0JDQndCQCivQgtCj0JrQmNCLINCh0KLQkNCd0JrQngor0ILQo9Ca0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQgtCj0JrQmNCLINCh0KLQntCI0JDQndCa0JAKK9CC0KPQmtCY0Isg0KHQotCe0IjQkNCdCivQgtCj0JrQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQmtCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0ILQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQgtCj0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CC0KPQmtCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0ILQo9Ca0JjQiyDQktCV0JvQldCc0JjQoAor0ILQo9Ca0JjQiyDQktCV0KDQmNCm0JAKK9CC0KPQmtCY0Isg0JLQldCg0J7QndCY0JrQkAor0ILQo9Ca0JjQiyDQktCY0JTQkNCaCivQgtCj0JrQmNCLINCS0JjQlNCQCivQgtCj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0JrQmNCLINCS0JvQkNCI0JrQngor0ILQo9Ca0JjQiyDQktCe0IjQmNCdCivQgtCj0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CC0KPQmtCY0Isg0JLQo9Ca0JDQnQor0ILQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQgtCj0JrQmNCdINCU0KPQqNCQ0J0KK9CC0KPQmtCY0J0g0KHQotCV0JLQkNCdCivQgtCj0JrQndCY0Isg0KHQoNCV0KLQldCdCivQgtCj0JvQkCDQmtCQ0KDQm9CeCivQgtCj0JvQmNCd0JDQpiDQiNCV0JvQmNCm0JAKK9CC0KPQm9CY0J3QkNCmINCS0JXQodCV0JvQmNCdCivQgtCj0JvQmNCX0JjQkdCQ0KDQmNCLLdCe0KDQldCo0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CC0KPQm9CS0JXQl9CQ0J0g0JrQntCh0JAKK9CC0KPQm9CS0JXQl9CQ0J0g0JzQmNCb0J7QqAor0ILQo9Cb0JLQldCX0JDQnSDQoNCe0JfQkNCb0JjQiNCQCivQgtCj0JzQmNCLINCR0J7Qk9CU0JDQnQor0ILQo9Cc0JjQiyDQlNCj0KjQkNCdCivQgtCj0JzQmNCLINCT0J7QodCf0JDQktCQCivQgtCj0JzQmNCLINCY0JvQmNCI0JAKK9CC0KPQnNCY0Isg0JzQkNCg0JjQiNCQCivQgtCj0JzQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCj0JzQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cc0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQnNCY0Isg0KPQoNCe0KgKK9CC0KPQndCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0ILQo9Cg0KfQldCaINCc0JjQm9CV0J3QmtCeCivQgtCj0KDQp9CV0JLQmNCLINCa0KHQldCd0JjQiNCQCivQgtCj0KDQp9CY0JDQndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQp9CY0JDQndCh0JrQmCDQn9CQ0JLQm9CVCivQgtCj0KDQp9CY0Jog0IjQntCh0JjQnwor0ILQo9Cg0KfQiNCQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0ILQo9Cg0KfQntCaINCc0JjQm9CY0J3QkAor0ILQo9Cg0ILQldCSINCW0JDQoNCa0J4KK9CC0KPQoNCC0JXQkiDQgtCe0KDQgtCVCivQgtCj0KDQgtCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCC0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Cg0ILQldCSINCR0J7QltCY0JTQkNCgCivQgtCj0KDQgtCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0KDQgtCV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQgtCj0KDQgtCV0JIg0JTQntCR0KDQmNCb0JAKK9CC0KPQoNCC0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQgtCj0KDQgtCV0JIg0JTQo9Co0JDQnQor0ILQo9Cg0ILQldCSINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQkiDQmtCQ0IvQkAor0ILQo9Cg0ILQldCSINCa0JDQotCQCivQgtCj0KDQgtCV0JIg0InQo9CR0JjQqNCQCivQgtCj0KDQgtCV0JIg0JzQkNCg0JjQiNCQCivQgtCj0KDQgtCV0JIg0JzQkNCg0JjQiNCQCivQgtCj0KDQgtCV0JIg0JzQmNCb0JXQotCQCivQgtCj0KDQgtCV0JIg0JzQm9CQ0JTQldCdCivQgtCj0KDQgtCV0JIg0J3QkNCU0JXQltCU0JAKK9CC0KPQoNCC0JXQkiDQndCV0JLQldCd0JrQkAor0ILQo9Cg0ILQldCSINCd0J7QktCQ0JoKK9CC0KPQoNCC0JXQkiDQntCR0KDQkNCUCivQgtCj0KDQgtCV0JIg0J/QkNCS0JAKK9CC0KPQoNCC0JXQkiDQn9Cg0JLQntCh0JvQkNCSCivQgtCj0KDQgtCV0JIg0KHQkNCS0JjQptCQCivQgtCj0KDQgtCV0JIg0KHQm9CQ0JLQmtCeCivQgtCj0KDQgtCV0JIg0KHQotCV0JLQkNCdCivQgtCj0KDQgtCV0JIg0KLQntCU0J7QoAor0ILQo9Cg0ILQldCSINCS0JDQodCQCivQgtCj0KDQgtCV0JIg0JLQldCg0JAKK9CC0KPQoNCC0JXQkiDQl9Ce0KDQmtCQCivQgtCj0KDQgtCV0JLQkNCmINCU0KDQkNCT0J7QidCj0JEKK9CC0KPQoNCC0JXQktCY0Isg0JbQldCJ0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQltCY0JLQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCW0JjQktCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JbQmNCS0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQgtCV0JLQmNCLINCC0KPQoNCC0JjQptCQINCU0JjQn9CbINCY0J3Qkwor0ILQo9Cg0ILQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQgtCj0KDQgtCV0JLQmNCLINCR0KDQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQo9Cg0ILQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQgtCj0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQlNCj0KjQmNCm0JAKK9CC0KPQoNCC0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQkNCa0J7Qkgor0ILQo9Cg0ILQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCj0KDQgtCV0JLQmNCLINCI0JXQm9CY0KbQkAor0ILQo9Cg0ILQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0ILQo9Cg0ILQldCS0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCI0KPQm9Ca0JAKK9CC0KPQoNCC0JXQktCY0Isg0JvQkNCX0JDQoAor0ILQo9Cg0ILQldCS0JjQiyDQm9CQ0JfQngor0ILQo9Cg0ILQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQo9Cg0ILQldCS0JjQiyDQnNCQ0J3QntCI0JvQngor0ILQo9Cg0ILQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0KPQoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JzQmNCb0JjQptCQCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CY0JLQntCICivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCj0KDQgtCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQgtCj0KDQgtCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQgtCj0KDQgtCV0JLQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0ILQldCS0JjQiyDQoNCQ0JTQmNCd0JrQkAor0ILQo9Cg0ILQldCS0JjQiyDQoNCQ0J3QmtCeCivQgtCj0KDQgtCV0JLQmNCLINCh0JDQktCQCivQgtCj0KDQgtCV0JLQmNCLINCh0JDQktCQCivQgtCj0KDQgtCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0KHQoNCC0JDQnSDQlNCgCivQgtCj0KDQgtCV0JLQmNCLINCh0KLQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQodCi0JDQndCe0IjQmtCQCivQgtCj0KDQgtCV0JLQmNCLINCh0KLQldCS0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQgtCj0KDQgtCV0JLQmNCLINCi0J7QlNCe0KAKK9CC0KPQoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQo9Cg0ILQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQgtCj0KDQgtCV0JLQmNCLINCS0JXQodCV0JvQmNCdCivQgtCj0KDQgtCV0JLQmNCLINCS0JjQlAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCQCivQgtCj0KDQgtCV0JLQmNCLINCS0JvQkNCU0JAKK9CC0KPQoNCC0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0KDQgtCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0ILQo9Cg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCC0JXQktCh0JrQmCDQkdCe0KjQmtCeCivQgtCj0KDQgtCY0Isg0JHQntCW0JjQlNCQ0KAKK9CC0KPQoNCC0JjQiyDQnNCY0JvQntCoCivQgtCj0KDQgtCY0Isg0JzQntCc0KfQmNCb0J4KK9CC0KPQoNCC0JjQiyDQodCQ0JLQngor0ILQo9Cg0ILQmNCLINCh0KLQkNCd0JAKK9CC0KPQoNCC0JjQnSDQodCi0JXQktCQ0J0KK9CC0KPQoNCC0KPQm9Ce0JIg0JTQldCI0JDQnQor0ILQo9Cg0ILQo9Cb0J7QkiDQldCS0JjQptCQCivQgtCj0KDQkCDQpNCg0JDQitCQCivQgtCj0KDQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0ILQo9Cg0JAg0IjQo9Cb0JjQiNCQ0J3QkCDQnNCgCivQgtCj0KDQkNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCQ0Kgg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQoNCQ0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQkNCo0JXQktCY0Isg0ILQo9Cg0J4KK9CC0KPQoNCQ0KjQldCS0JjQiyDQk9Ce0IjQmtCeCivQgtCj0KDQkNCo0JXQktCY0Isg0JjQktCeCivQgtCj0KDQkNCo0JXQktCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0ILQo9Cg0JDQqNCV0JLQmNCLINCc0JjQm9CVCivQgtCj0KDQkNCo0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0KPQoNCQ0KjQldCS0JjQiyDQotCY0JHQntCgCivQgtCj0KDQkNCo0JXQktCY0Isg0JfQntCg0JDQnQor0ILQo9Cg0JDQqNCY0J3QntCSINCS0JXQm9CY0JzQmNCgCivQgtCj0KDQkNCo0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQkdCe0JbQngor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0ILQo9Cg0JDQk9CY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JDQk9CY0Isg0JTQmNCb0JUKK9CC0KPQoNCQ0JPQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JDQk9CY0Isg0JPQmNCT0JAKK9CC0KPQoNCQ0JPQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCQ0JPQmNCLINCI0KPQm9Ca0JAKK9CC0KPQoNCQ0JPQmNCLINCb0JDQl9CQ0KAKK9CC0KPQoNCQ0JPQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CC0KPQoNCQ0JPQmNCLINCh0JDQktCQCivQgtCj0KDQkNCT0JjQiyDQodCi0JXQktCQ0J0KK9CC0KPQoNCQ0JPQmNCdINCI0J7QktCQ0J0KK9CC0KPQoNCQ0JPQmNCdINCh0KLQkNCd0JrQkAor0ILQo9Cg0JDQmiDQiNCe0JbQldCkCivQgtCj0KDQkNCaINCI0J7QodCY0KQKK9CC0KPQoNCQ0JrQntCS0JDQpiDQpNCQ0KLQnNCY0KDQkAor0ILQo9Cg0JDQnSDQkdCe0IjQkNCd0JAKK9CC0KPQoNCQ0J0g0JjQm9CY0IjQkAor0ILQo9Cg0JDQnSDQiNCV0JvQldCd0JAKK9CC0KPQoNCQ0J0g0IjQntCS0J4KK9CC0KPQoNCQ0J0g0JzQmNCb0JDQnQor0ILQo9Cg0JDQnSDQnNCY0JvQkNCdCivQgtCj0KDQkNCdINCg0JDQiNCa0J4KK9CC0KPQoNCQ0J0g0KDQkNCI0JrQngor0ILQo9Cg0JDQnSDQodCb0JDQktCa0J4KK9CC0KPQoNCQ0J0g0KHQndCV0JbQkNCd0JAKK9CC0KPQoNCQ0J0g0JfQlNCg0JDQktCa0J4KK9CC0KPQoNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQkNCd0J7QktCY0Isg0JjQm9Ce0J3QkAor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQgtCj0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCj0KDQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0ILQo9Cg0JDQndCe0JLQmNCLINCd0JDQlNCQCivQgtCj0KDQkNCd0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CC0KPQoNCQ0KHQmNCd0J7QktCY0Isg0JzQmNCb0JUKK9CC0KPQoNCU0JrQntCSINCV0JLQkAor0ILQo9Cg0JXQmtCe0JLQmNCLINCa0JDQoNCb0J4KK9CC0KPQoNCV0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CC0KPQoNCV0JrQntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQgtCj0KDQldCd0JTQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCV0J3QlNCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQgtCj0KDQmNCn0JjQiyDQlNCg0JDQk9CY0IrQkAor0ILQo9Cg0JjQp9CY0Isg0JTQoNCQ0JPQngor0ILQo9Cg0JjQp9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0ILQo9Cg0JjQp9CY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JjQp9CY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JjQp9CY0Isg0JzQmNCJ0J7QiNCa0J4KK9CC0KPQoNCY0KfQmNCLINCc0JjQm9Ce0KgKK9CC0KPQoNCY0KfQmNCLINCd0JXQqNCa0J4KK9CC0KPQoNCY0KfQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0JjQp9CY0Isg0J/QkNCS0JvQlQor0ILQo9Cg0JjQp9CY0Isg0KDQo9CW0JAKK9CC0KPQoNCY0KfQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQp9CY0Isg0KHQm9CQ0JLQmtCeCivQgtCj0KDQmNCn0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQoNCY0KfQmNCLINCi0JDQndCa0J7QodCQ0JLQkAor0ILQo9Cg0JjQp9CY0Isg0JfQm9CQ0KLQmNCm0JAKK9CC0KPQoNCY0KfQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCY0KfQmNCdINCC0J7QoNCC0JUKK9CC0KPQoNCY0KfQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCj0KDQmNCn0JjQnSDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0KfQmNCdINCU0KDQkNCT0KPQotCY0J0KK9CC0KPQoNCY0KfQmNCdINCa0JDQotCQ0KDQmNCd0JAKK9CC0KPQoNCY0KfQmNCdINCa0JDQotCY0KbQkAor0ILQo9Cg0JjQp9CY0J0g0JzQkNCg0JrQngor0ILQo9Cg0JjQp9CY0J0g0JzQmNCb0JDQnQor0ILQo9Cg0JjQp9CY0J0g0JzQmNCb0J7QoNCQ0JQKK9CC0KPQoNCY0KfQmNCdINCc0JjQntCU0KDQkNCTCivQgtCj0KDQmNCn0JjQnSDQn9CV0KLQkNCgCivQgtCj0KDQmNCn0JjQnSDQoNCQ0JTQntCh0JvQkNCS0JAKK9CC0KPQoNCY0KfQmNCdINCg0KPQltCY0KbQkAor0ILQo9Cg0JjQp9CY0J0g0KHQmNCd0JjQqNCQCivQgtCj0KDQmNCn0JjQnSDQodCe0KTQmNCI0JAKK9CC0KPQoNCY0KfQmNCdINCh0KLQkNCd0JjQiNCQCivQgtCj0KDQmNCn0JjQnSDQodCi0JXQktCQ0J0KK9CC0KPQoNCY0KfQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCY0KfQmNCdINCi0J7QnNCY0KHQm9CQ0JIKK9CC0KPQoNCY0KfQmNCdINCS0JDQodCY0JvQmNCI0JUKK9CC0KPQoNCY0KfQmNCdINCX0J7QoNCa0JAKK9CC0KPQoNCY0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCn0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQgtCj0KDQmNCn0JrQntCS0JjQiyDQl9Cb0JDQotCQ0J3QkAor0ILQo9Cg0JjQqCDQmtCb0JDQoNCQCivQgtCj0KDQmNCoINCc0JjQoNCe0KHQm9CQ0JIKK9CC0KPQoNCY0Kgg0J/QkNCJ0J4KK9CC0KPQoNCY0KjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CC0KPQoNCY0KjQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCY0KjQmNCLINCI0JXQm9CV0J3QkAor0ILQo9Cg0JjQqNCY0Isg0JvQkNCX0JDQoAor0ILQo9Cg0JjQqNCY0Isg0JzQkNCi0J4KK9CC0KPQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCY0KjQmNCLINCc0JjQm9CY0IjQkAor0ILQo9Cg0JjQqNCY0Isg0JzQmNCb0JjQodCQ0JIKK9CC0KPQoNCY0KjQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0JjQqNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CC0KPQoNCY0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCj0KDQmNCo0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQoNCY0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCY0KjQmNCLINCS0JXQoNCQCivQgtCj0KDQmNCo0JjQiyDQktCY0JTQkAor0ILQo9Cg0JjQqNCY0Isg0JfQm9CQ0KLQkNCd0JAKK9CC0KPQoNCY0KjQmNCLINCX0JvQkNCi0JAKK9CC0KPQoNCY0Isg0JbQkNCg0JrQngor0ILQo9Cg0JjQiyDQltCV0InQmtCeCivQgtCj0KDQmNCLINCW0JjQktCe0KDQkNCUCivQgtCj0KDQmNCLINCC0JXQoNCCCivQgtCj0KDQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQmNCLINCC0KPQoNCQCivQgtCj0KDQmNCLINCC0KPQoNCY0KbQkAor0ILQo9Cg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Cg0JjQiyDQkNCd0ILQldCb0JrQkAor0ILQo9Cg0JjQiyDQkNCd0JPQldCb0JjQndCQCivQgtCj0KDQmNCLINCQ0J3QmtCQCivQgtCj0KDQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9CC0KPQoNCY0Isg0JHQm9CQ0JPQntCc0JjQoAor0ILQo9Cg0JjQiyDQkdCe0JbQmNCU0JDQoAor0ILQo9Cg0JjQiyDQkdCe0JbQmNCU0JDQoAor0ILQo9Cg0JjQiyDQkdCe0JPQntCJ0KPQkQor0ILQo9Cg0JjQiyDQkdCe0JPQntCJ0KPQkQor0ILQo9Cg0JjQiyDQkdCe0IjQkNCdCivQgtCj0KDQmNCLINCR0J7QoNCY0JLQntCICivQgtCj0KDQmNCLINCR0J7QoNCa0JAKK9CC0KPQoNCY0Isg0JHQntCg0JrQkAor0ILQo9Cg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQgtCj0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQgtCj0KDQmNCLINCR0KDQkNCd0JrQkAor0ILQo9Cg0JjQiyDQkdCg0JDQndCa0JAKK9CC0KPQoNCY0Isg0JHQoNCQ0J3QmtCeCivQgtCj0KDQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0ILQo9Cg0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQo9Cg0JjQiyDQlNCV0IjQkNCdCivQgtCj0KDQmNCLINCU0JXQiNCQ0J0KK9CC0KPQoNCY0Isg0JTQldCh0J/QntCiCivQgtCj0KDQmNCLINCU0J7QkdCg0JUKK9CC0KPQoNCY0Isg0JTQntCR0KDQmNCb0JAKK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JjQptCQCivQgtCj0KDQmNCLINCU0KDQkNCT0JjQptCQCivQgtCj0KDQmNCLINCU0KDQkNCT0KPQotCY0J0g0JTQoAor0ILQo9Cg0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCY0Isg0JXQktCQCivQgtCj0KDQmNCLINCk0KDQkNCK0JAKK9CC0KPQoNCY0Isg0JPQntCI0JrQngor0ILQo9Cg0JjQiyDQk9Ce0IjQmtCeCivQgtCj0KDQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0KDQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0ILQo9Cg0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0JjQm9CY0IjQkAor0ILQo9Cg0JjQiyDQmNCb0JjQiNCQCivQgtCj0KDQmNCLINCI0JDQodCc0JjQndCa0JAKK9CC0KPQoNCY0Isg0IjQldCb0JjQptCQCivQgtCj0KDQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQmNCLINCI0J7QktCeCivQgtCj0KDQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CC0KPQoNCY0Isg0InQmNCJ0JDQndCQCivQgtCj0KDQmNCLINCJ0KPQkdCY0KjQkAor0ILQo9Cg0JjQiyDQidCj0JHQmNCo0JAKK9CC0KPQoNCY0Isg0InQo9CR0JjQptCQCivQgtCj0KDQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Cg0JjQiyDQidCj0JHQntCU0KDQkNCTCivQgtCj0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCj0KDQmNCLINCc0JDQoNCQCivQgtCj0KDQmNCLINCc0JDQoNCY0IjQkAor0ILQo9Cg0JjQiyDQnNCY0IvQkAor0ILQo9Cg0JjQiyDQnNCY0JvQkNCd0JrQngor0ILQo9Cg0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCj0KDQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Cg0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQgtCj0KDQmNCLINCc0JjQm9Ce0KgKK9CC0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0KPQoNCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0KPQoNCY0Isg0JzQmNCb0KPQnQor0ILQo9Cg0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQo9Cg0JjQiyDQnNCY0KDQmtCeCivQgtCj0KDQmNCLINCc0JjQoNCe0InQo9CRCivQgtCj0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0ILQo9Cg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQmNCLINCc0JjQotCQ0KAKK9CC0KPQoNCY0Isg0JzQntCc0KfQmNCb0J4KK9CC0KPQoNCY0Isg0J3QldCU0JXQidCa0J4KK9CC0KPQoNCY0Isg0J3QldCc0JDQitCQCivQgtCj0KDQmNCLINCd0JXQndCQ0JQKK9CC0KPQoNCY0Isg0J3QldCS0JXQndCa0JAKK9CC0KPQoNCY0Isg0J/QldCi0KDQkAor0ILQo9Cg0JjQiyDQn9Cg0JXQlNCg0JDQkwor0ILQo9Cg0JjQiyDQn9Cg0JXQlNCg0JDQkwor0ILQo9Cg0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQgtCj0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQgtCj0KDQmNCLINCg0JDQlNCe0JjQptCQCivQgtCj0KDQmNCLINCg0JDQlNCe0IjQmtCQCivQgtCj0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0KDQkNCi0JrQngor0ILQo9Cg0JjQiyDQodCQ0IrQkAor0ILQo9Cg0JjQiyDQodCQ0JLQmtCQCivQgtCj0KDQmNCLINCh0JDQktCeCivQgtCj0KDQmNCLINCh0JXQmtCj0JvQkAor0ILQo9Cg0JjQiyDQodCb0JDQktCY0KbQkAor0ILQo9Cg0JjQiyDQodCb0JDQktCa0JAKK9CC0KPQoNCY0Isg0KHQm9CQ0JLQmtCeCivQgtCj0KDQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQiyDQodCg0JHQntCJ0KPQkQor0ILQo9Cg0JjQiyDQodCi0JDQndCY0JzQmNCgCivQgtCj0KDQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CC0KPQoNCY0Isg0KHQotCV0JLQkNCdCivQgtCj0KDQmNCLINCh0KLQntCI0JDQndCa0JAKK9CC0KPQoNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0ILQo9Cg0JjQiyDQotCV0J7QlNCe0KAKK9CC0KPQoNCY0Isg0KLQldCg0JXQl9CQCivQgtCj0KDQmNCLINCi0J7QlNCe0KAKK9CC0KPQoNCY0Isg0KLQntCU0J7QoAor0ILQo9Cg0JjQiyDQotCj0JPQntCc0JjQoAor0ILQo9Cg0JjQiyDQktCQ0KHQkAor0ILQo9Cg0JjQiyDQktCV0InQmtCeCivQgtCj0KDQmNCLINCS0JXQoNCQCivQgtCj0KDQmNCLINCS0JXQoNCQCivQgtCj0KDQmNCLINCS0JjQlNCQCivQgtCj0KDQmNCLINCS0JjQlNCe0IjQlQor0ILQo9Cg0JjQiyDQktCb0JDQlNCQCivQgtCj0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0KDQmNCLINCS0J7QiNCY0J0KK9CC0KPQoNCY0Isg0JLQntCI0JjQodCb0JDQkgor0ILQo9Cg0JjQiyDQktCj0JrQkNCo0JjQnQor0ILQo9Cg0JjQiyDQl9CU0JXQndCa0JAKK9CC0KPQoNCY0Isg0JfQlNCg0JDQktCa0J4KK9CC0KPQoNCY0Isg0JfQntCg0JDQnQor0ILQo9Cg0JjQptCQINCc0JjQm9Ce0KgKK9CC0KPQoNCY0KbQkCDQndCV0JLQldCd0JrQkAor0ILQo9Cg0JjQptCQINCg0JDQlNCVCivQgtCj0KDQmNCm0JAg0KDQkNCd0JrQngor0ILQo9Cg0JjQptCQINCg0JDQndCa0J4KK9CC0KPQoNCY0KbQkCDQoNCQ0KLQmtCeCivQgtCj0KDQmNCm0JAg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQntCV0KYKK9CC0KPQoNCY0Jog0JTQo9Co0JDQnQor0ILQo9Cg0JjQmiDQiNCj0JvQmtCQCivQgtCj0KDQmNCaINCc0JjQm9CQ0J0KK9CC0KPQoNCY0Jog0J7QotCY0JvQmNCI0JAKK9CC0KPQoNCY0JrQmNCdINCY0JvQmNCI0JAKK9CC0KPQoNCY0JrQmNCdINCS0JXQoNCQCivQgtCj0KDQmNCdINCY0JvQmNCI0JAKK9CC0KPQoNCY0J0g0IjQntCh0JjQnwor0ILQo9Cg0JjQnSDQndCe0JLQkAor0ILQo9Cg0JjQnSDQndCe0JLQkAor0ILQo9Cg0JjQnSDQodCQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQoNCY0J0g0KHQktCV0KLQm9CQ0J3QkAor0ILQo9Cg0JjQnSDQotCV0J7QlNCe0KAKK9CC0KPQoNCa0JjQiyDQlNCg0JDQk9CY0KbQkAor0ILQo9Cg0JrQmNCdINCc0JjQm9CV0J3QmtCeCivQgtCj0KDQmtCY0J0g0KDQkNCU0JjQqNCa0J4KK9CC0KPQoNCa0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQgtCj0KDQmtCe0JLQmNCLINCn0JDQodCb0JDQkgor0ILQo9Cg0JrQntCS0JjQiyDQgtCV0J3QkAor0ILQo9Cg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQoNCa0J7QktCY0Isg0JDQndCi0J7QnQor0ILQo9Cg0JrQntCS0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CC0KPQoNCa0J7QktCY0Isg0J/QldCg0JjQptCQCivQgtCj0KDQmtCe0JLQmNCLINCg0JDQlNCVCivQgtCj0KDQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0ILQo9Cg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0KPQoNCa0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0ILQo9Cg0JrQntCS0JjQiyDQktCb0JDQiNCa0J4KK9CC0KPQoNCa0J7QktCh0JrQmCDQn9CQ0JLQldCbCivQgtCj0KDQndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CC0KPQoNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQgtCj0KDQntCS0JjQiyDQltCY0JLQmtCQCivQgtCj0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Cg0J7QktCY0Isg0JHQntCo0JrQngor0ILQo9Cg0J7QktCY0Isg0JHQntCI0JAKK9CC0KPQoNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CC0KPQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQgtCj0KDQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CC0KPQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQo9Cg0J7QktCY0Isg0JPQntCI0JrQngor0ILQo9Cg0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0ILQo9Cg0J7QktCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0J7QktCY0Isg0InQo9CR0JjQptCQCivQgtCj0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQgtCj0KDQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JrQkAor0ILQo9Cg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CC0KPQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQgtCj0KDQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0JUKK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCj0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CC0KPQoNCe0JLQmNCLINCh0J7QpNCY0IjQkAor0ILQo9Cg0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0ILQo9Cg0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0ILQo9Cg0J7QktCY0Isg0JLQkNCh0J4KK9CC0KPQoNCe0JLQmNCLINCS0JXQodCd0JAKK9CC0KPQoNCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQgtCj0KDQntCS0JjQiyDQktCj0JrQkNCU0JjQnQor0ILQo9Cg0J7QktCY0Isg0JfQntCg0JrQkAor0ILQo9Cg0J7QktCa0JAg0JzQkNCg0JjQiNCQCivQgtCj0KDQntCS0JrQkCDQntCd0JTQoNCV0IgKK9CC0KPQoNCe0JLQmtCQINCS0JvQkNCU0JjQodCb0JDQkgor0ILQo9Cg0J7QktCh0JrQmCDQiNCe0JLQmNCm0JAKK9CC0KPQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQl9CQINCh0KLQldCS0J4KK9CQ0Kcg0KjQkNCd0JTQntCgCivQkNCnINCk0JXQoNCV0J3Qpgor0JDQpyDQpNCg0JDQitCQINCU0KAg0J/QoNCY0JzQkNCg0JjQiNCj0KEKK9CQ0Kcg0JPQkNCR0J7QoAor0JDQpyDQiNCe0JbQldCkINCQ0JrQkNCU0JXQnNCh0JrQmCDQodCb0JjQmtCQ0KAKK9CQ0Kcg0IjQntCW0JXQpCDQkdCY0J7Qm9Ce0JMKK9CQ0Kcg0IjQntCS0JDQnQor0JDQpyDQmtCQ0KLQmNCm0JAKK9CQ0Kcg0JvQkNCI0J7QqAor0JDQpy3QndCY0JrQntCb0JjQiyDQldCg0JbQldCR0JXQogor0JDQpyDQntCi0J4KK9CQ0Kcg0J/QkNCS0JvQlQor0JDQpyDQotCY0JHQntCgCivQkNCn0JDQmCDQmNCo0KLQktCQ0J0KK9CQ0KfQkNCYINCX0J7Qm9Ci0JDQnQor0JDQp9CQ0J3QkNCh0JrQmCDQktCV0KHQndCQCivQkNCn0JDQndCh0JrQmCDQltCY0JLQmtCeCivQkNCn0JDQndCh0JrQmCDQkNCb0JHQmNCd0JAKK9CQ0KfQkNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCn0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KfQkNCd0KHQmtCYINCU0J7QkdCg0JjQktCe0IgKK9CQ0KfQkNCd0KHQmtCYINCU0KDQkNCT0JjQptCQCivQkNCn0JDQndCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQkNCn0JDQndCh0JrQmCDQiNCV0JvQmNCh0J7Qkgor0JDQp9CQ0J3QodCa0Jgg0JrQntCh0JDQndCQCivQkNCn0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkNCn0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkNCn0JDQndCh0JrQmCDQndCY0JrQntCb0JAKK9CQ0KfQkNCd0KHQmtCYINCg0JDQlNCQCivQkNCn0JDQndCh0JrQmCDQodCi0JDQndCQCivQkNCn0JDQndCh0JrQmCDQodCi0JDQndCY0KHQm9CQ0JIKK9CQ0KfQkNCd0KHQmtCYINCi0JXQntCU0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9CQ0KfQkNCd0KHQmtCYINCi0J7QlNCe0KAKK9CQ0KfQkNCd0KHQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9CQ0KfQkNCd0KHQmtCYINCX0JTQoNCQ0JLQmtCeCivQkNCn0JDQndCh0JrQmCDQl9Ce0KDQmNCm0JAKK9CQ0KjQi9CV0KDQmNCLINCh0KLQldCS0JDQnQor0JDQqNCL0JXQoNCY0Isg0KHQotCV0JLQkNCdCivQkNCo0IvQldCg0JjQiyDQl9Ce0KDQkAor0JDQqNCQ0J3QmNCdINCg0JDQlNCY0JLQntCI0JUKK9CQ0KjQkNCd0JjQnSDQl9Ce0KDQkNCdCivQkNCo0JjQmtCjINCS0JjQotCQ0JvQmNChINCU0KAg0JvQldCa0JDQoAor0JDQqNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JDQqNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQqNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQkNCo0J7QitCQINCd0JXQlNCV0InQmtCeCivQkNCo0J7QitCQINCe0JvQk9CQCivQkNCo0KLQkNCb0JrQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCo0KLQkNCb0JrQntCS0KHQmtCYINCa0KDQmNCh0KLQmNCd0JAKK9CQ0IvQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9CQ0IvQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CQ0IvQmNCLINCY0JvQmNCI0JAKK9CQ0IvQmNCLINCc0JjQoNCa0J4KK9CQ0IvQmNCLINCh0KLQldCS0JDQnQor0JDQi9CY0JzQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCL0JjQnNCe0JIg0JHQntCo0JrQngor0JDQi9CY0JzQntCSINCU0KDQkNCT0JjQptCQCivQkNCL0JjQnNCe0JIg0JvQldCb0JAKK9CQ0IvQmNCc0J7QkiDQnNCQ0KDQmtCeCivQkNCL0JjQnNCe0JIg0JzQmNCb0JDQnQor0JDQi9CY0JzQntCSINCc0JjQoNCI0JDQndCQINCf0KDQntCk0JXQodCe0KAKK9CQ0IvQmNCc0J7QkiDQndCV0JTQldCJ0JrQngor0JDQi9CY0JzQntCSINCg0JDQlNCY0JLQntCICivQkNCL0JjQnNCe0JIg0KDQkNCU0J7QodCb0JDQktCQCivQkNCL0JjQnNCe0JLQmNCLINCW0JjQktCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CQ0IvQmNCc0J7QktCY0Isg0ILQntCg0ILQlQor0JDQi9CY0JzQntCS0JjQiyDQgtCe0KDQgtCVCivQkNCL0JjQnNCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JHQntCo0JrQngor0JDQi9CY0JzQntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQkNCL0JjQnNCe0JLQmNCLINCR0J7QoNCa0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkNCL0JjQnNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JDQi9CY0JzQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JDQi9CY0JzQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CQ0IvQmNCc0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JjQm9CY0IjQkAor0JDQi9CY0JzQntCS0JjQiyDQiNCe0JLQkAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCc0JjQm9CQCivQkNCL0JjQnNCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUg0JTQoAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQntCI0JjQptCQCivQkNCL0JjQnNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQkNCL0JjQnNCe0JLQmNCLINCe0JHQoNCQ0JQKK9CQ0IvQmNCc0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0IvQmNCc0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0KDQkNCi0JrQngor0JDQi9CY0JzQntCS0JjQiyDQodCQ0JLQkAor0JDQi9CY0JzQntCS0JjQiyDQodCQ0JLQkAor0JDQi9CY0JzQntCS0JjQiyDQodCb0JDQktCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQotCQ0JTQmNCI0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JLQkNCh0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JDQi9CY0JzQn9CS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQgtCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCC0JDQndCh0JrQmCDQmNCS0JDQndCQCivQkNCC0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JDQgtCQ0J3QodCa0Jgg0J3QkNCU0JAKK9CQ0ILQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JDQgtCY0Isg0JTQoNCQ0JPQngor0JDQgtCY0Isg0J7QotCeCivQkNCC0JjQnSDQkNCU0JDQnAor0JDQkdCQ0I/QmNCLINCc0JDQoNCa0J4KK9CQ0JHQkNCP0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JDQkdCQ0I/QmNCLINCh0JDQktCeCivQkNCR0JDQj9CY0Isg0KHQotCQ0J3QmtCeCivQkNCR0JDQl9CQINCS0JXQodCd0JAKK9CQ0JHQkNCX0Jgg0JjQidCQ0JcKK9CQ0JHQkNCX0Jgg0KDQkNCc0JDQlNCQ0J0KK9CQ0JHQkNCX0J7QktCh0JrQmCDQodCj0JvQotCQ0J0KK9CQ0JHQlNCY0IjQldCS0JjQiyDQqNCj0JrQoNCY0IjQkAor0JDQkdCU0JjQiNCV0JLQmNCLINCY0KHQnNCV0KIKK9CQ0JHQoNCQ0KXQkNCcINCV0JLQkAor0JDQkdCg0JDQpdCQ0Jwg0JjQoNCV0J3QkAor0JDQkdCg0JDQpdCQ0Jwg0J/QkNCS0JXQmwor0JDQkdCg0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQkNCR0KDQkNCc0J7QktCY0Isg0JvQmNCS0JjQiNCQCivQkNCR0KDQkNCc0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQkdCg0JDQnNCe0JLQmNCLINCd0JDQlNCQCivQkNCR0KDQkNCc0J7QktCY0Isg0KHQotCQ0J3QkAor0JDQkdCg0JDQnNCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CQ0JHQoNCb0JjQiyDQndCQ0JTQkAor0JDQkdCiINCb0JDQodCb0J4KK9CQ0JHQoy3QkNCR0JXQlCDQnNCj0KXQkNCc0JXQlAor0JDQptCY0JPQkNCdINCI0J7QktCQ0J3QmtCQCivQkNCm0JjQnS3Qn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JDQptCa0JXQotCQINCU0KDQkNCT0JDQnQor0JDQptCa0JXQotCQINCc0JjQoNCI0JDQndCQCivQkNCm0JrQldCi0JAg0KLQmNCl0J7QnNCY0KAKK9CQ0KbQmtCe0JLQmNCLINCc0JDQoNCQCivQkNCP0JDQmNCfINCc0JjQm9Ce0KDQkNCUCivQkNCP0JDQmNCfINCc0JjQoNCI0JDQndCQCivQkNCP0JXQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCP0JXQnNCe0JLQmNCLINCT0KDQo9CI0J4KK9CQ0I/QmNCLINCW0JDQoNCa0J4KK9CQ0I/QmNCLINCR0J7QqNCa0J4KK9CQ0I/QmNCLINCR0KDQkNCd0JrQngor0JDQj9CY0Isg0JTQldCh0JDQndCa0JAKK9CQ0I/QmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0I/QmNCLINCU0KPQqNCY0KbQkAor0JDQj9CY0Isg0JPQntCg0JDQnQor0JDQj9CY0Isg0JjQm9CY0IjQkAor0JDQj9CY0Isg0IjQntCS0JDQndCa0JAKK9CQ0I/QmNCLINCI0J7QktCQ0J0KK9CQ0I/QmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9CQ0I/QmNCLINCc0JjQm9CQ0J0KK9CQ0I/QmNCLINCc0JjQm9CV0J0KK9CQ0I/QmNCLINCc0JjQm9CY0KHQkNCSCivQkNCP0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkNCP0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQj9CY0Isg0J3QldCU0JXQidCa0J4KK9CQ0I/QmNCLINCf0JXQoNCeCivQkNCP0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JDQj9CY0Isg0KDQkNCU0J7QitCQCivQkNCP0JjQiyDQoNCQ0J3QmtCeCivQkNCP0JjQiyDQoNCQ0KLQmtCeCivQkNCP0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCP0JjQiyDQktCb0JDQlNCeCivQkNCP0JjQiyDQl9Ce0KDQkNCdCivQkNCP0JjQkdCQ0JHQkCDQnNCY0JvQmNCm0JAKK9CQ0I/QmNCR0JDQkdCQINCd0JjQmtCe0JvQkAor0JDQlNCQ0Jwg0KjQkNCg0JvQntCi0JAKK9CQ0JTQkNCcINCC0KPQoNCQCivQkNCU0JDQnCDQlNCV0J3QldCoCivQkNCU0JDQnCDQmNCg0JzQkAor0JDQlNCQ0Jwg0IjQntCW0JXQpAor0JDQlNCQ0Jwg0IjQntCh0JjQnwor0JDQlNCQ0Jwg0JrQoNCj0J3QmNCm0JAg0JTQoAor0JDQlNCQ0Jwg0JvQkNCU0JjQodCb0JDQkgor0JDQlNCQ0Jwg0JvQkNCU0JjQodCb0JDQkgor0JDQlNCQ0Jwg0JvQkNCh0JvQngor0JDQlNCQ0Jwg0J7Qm9CT0JjQptCQCivQkNCU0JDQnCDQotCY0JHQntCgINCd0J7QktCY0J3QkNCgCivQkNCU0JDQnNCe0JIg0ILQntCg0ILQlQor0JDQlNCQ0JzQntCSINCR0J7QltCY0JTQkNCgCivQkNCU0JDQnNCe0JIg0JTQoNCQ0JPQkNCdCivQkNCU0JDQnNCe0JIg0JTQo9Co0JDQnQor0JDQlNCQ0JzQntCSINCY0JLQkNCdCivQkNCU0JDQnNCe0JIg0IjQntCS0JDQnQor0JDQlNCQ0JzQntCSINCI0KPQm9CY0JDQndCQCivQkNCU0JDQnNCe0JIg0IjQo9Cb0JrQkAor0JDQlNCQ0JzQntCSINCI0KPQm9Ca0JAKK9CQ0JTQkNCc0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQkNCU0JDQnNCe0JIg0InQo9CR0JAKK9CQ0JTQkNCc0J7QkiDQnNCQ0KDQmNCI0JAKK9CQ0JTQkNCc0J7QkiDQnNCY0KDQntCh0JvQkNCS0JAKK9CQ0JTQkNCc0J7QkiDQoNCQ0JTQntCS0JDQnQor0JDQlNCQ0JzQntCSINCi0JjQptCQCivQkNCU0JDQnNCe0JIg0JLQmNCi0J7QnNCY0KAKK9CQ0JTQkNCc0J7QktCY0Isg0ILQo9Cg0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JHQntCo0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQlNCg0JDQk9CQCivQkNCU0JDQnNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0JTQkNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JDQlNCQ0JzQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkNCU0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JPQntCI0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQkNCU0JDQnNCe0JLQmNCLINCT0J7QoNCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JjQm9Ce0J3QkAor0JDQlNCQ0JzQntCS0JjQiyDQmNCS0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQiNCV0JvQkAor0JDQlNCQ0JzQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CQ0JTQkNCc0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CQ0JTQkNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQmtCQ0KLQkAor0JDQlNCQ0JzQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCU0JDQnNCe0JLQmNCLINCb0JDQl9CQ0KAKK9CQ0JTQkNCc0J7QktCY0Isg0InQmNCJ0JDQndCQCivQkNCU0JDQnNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkNCU0JDQnNCe0JLQmNCLINCc0JDQoNCQCivQkNCU0JDQnNCe0JLQmNCLINCc0JDQoNCQCivQkNCU0JDQnNCe0JLQmNCLINCc0JDQoNCQCivQkNCU0JDQnNCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JzQmNCb0JrQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQmNCg0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQlNCQ0JzQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQlNCQ0JzQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQlNCQ0JzQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JDQlNCQ0JzQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JDQlNCQ0JzQntCS0JjQiyDQodCb0JDQktCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0KHQntCK0JAKK9CQ0JTQkNCc0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JDQlNCQ0JzQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkNCU0JDQnNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0JTQkNCc0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQlNCQ0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkNCU0JXQnNCYINCT0J7QoNCU0JDQndCQCivQkNCU0JXQnNCYINCY0JzQldCgCivQkNCU0JXQnNCe0JIg0JrQldCc0JDQmwor0JDQlNCV0JzQntCS0JjQiyDQiNCj0KHQo9CkCivQkNCU0JXQnNCe0JLQmNCLINCe0KHQnNCQ0J0KK9CQ0JTQm9CV0KjQmNCLINCJ0KPQkdCY0KbQkAor0JDQlNCd0JDQgtCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0JTQntCgINCI0J7QktCQ0J0KK9CQ0JPQkNCg0KHQmtCYINCI0JDQnSDQlNCgCivQkNCT0JDQotCY0Isg0JzQkNCi0JUKK9CQ0JPQkNCi0JjQiyDQnNCY0KDQmtCeCivQkNCT0JDQotCY0Isg0JLQldCb0JjQnNCY0KAKK9CQ0JPQkdCQ0JHQkCDQkdCg0JDQndCa0JAKK9CQ0JPQkdCQ0JHQkCDQlNCQ0J3QlQor0JDQk9CR0JDQkdCQINCU0JDQndCY0KbQkAor0JDQk9CR0JDQkdCQINCU0JDQndCY0JvQngor0JDQk9CR0JDQkdCQINCU0KPQqNCQ0J0KK9CQ0JPQkdCQ0JHQkCDQiNCe0JLQkNCdCivQkNCT0JHQkNCR0JAg0J3QldCU0JXQidCa0JAKK9CQ0JPQkdCQ0JHQkCDQndCV0JTQldCJ0JrQngor0JDQk9CR0JDQkdCQINCd0JjQmtCe0JvQkCDQlNCgCivQkNCT0JHQkNCR0JAg0J3QmNCa0J7Qm9CQCivQkNCT0JHQkNCR0JAg0JLQmNCU0JAKK9CQ0JPQmNCLINCc0JDQoNCa0J4KK9CQ0JPQmNCLINCd0JDQlNCQCivQkNCT0JjQiyDQndCY0JrQntCb0JDQiAor0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQkNCT0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCe0JXQpgor0JDQk9CY0Isg0KHQoNCR0JjQodCb0JDQkgor0JDQk9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQk9CeINCc0JDQoNCa0J4KK9CQ0JPQniDQl9Ce0KDQmNCm0JAKK9CQ0JPQntCnINCU0KPQqNCQ0J0KK9CQ0JPQntCo0KLQntCdINCR0JXQm9CQCivQkNCT0J7QqNCi0J7QnSDQpNCV0KDQldCd0KYKK9CQ0JPQntCo0KLQntCdINCa0JDQoNCe0IkKK9CQ0JPQntCo0KLQntCdINCb0JDQodCb0J4KK9CQ0JPQntCo0KLQntCdINCc0JjQpdCQ0IkKK9CQ0JPQntCo0KLQntCdINCS0JXQoNCQCivQkNCT0KDQkNCc0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CQ0JPQoNCQ0JzQntCS0JjQiyDQoNCQ0JTQlQor0JDQk9Cj0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JDQk9Cj0KbQmNCLINCe0JvQk9CY0KbQkAor0JDQpdCc0JXQlCDQldCb0JXQlwor0JDQpdCc0JXQotCe0JIg0KjQo9Ca0KDQmAor0JDQpdCc0JXQotCe0JLQmNCLINCa0JDQoNCb0J4KK9CQ0KXQnNCV0KLQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CQ0KXQnNCV0KLQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9CQ0JjQoNCQ0JvQlNCYINCR0J7QltCY0JTQkNCgCivQkNCIINCR0KDQkNCd0JjQodCb0JDQkgor0JDQiCDQktCV0KHQndCQCivQkNCI0JDQndCe0JLQmNCLINCh0JDQm9Ca0J4KK9CQ0IjQptCV0JIg0JTQo9Co0JDQnQor0JDQiNCP0JDQndCe0JLQmNCLINCQ0J3QkNCh0KLQkNCh0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0JDQiNCU0JDQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQiNCU0JXQoCDQltCV0InQmtCeCivQkNCI0JTQldCgINCR0J7QqNCa0J4KK9CQ0IjQlNCV0KAg0JTQkNCd0JjQptCQCivQkNCI0JTQmNCLINCC0J7QoNCC0JUKK9CQ0IjQlNCY0J3QmCDQodCQ0JHQoNCY0IjQkAor0JDQiNCU0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JDQiNCU0KPQmiDQiNCe0KHQmNCcCivQkNCI0JTQo9CaINCc0JDQoNCa0J4KK9CQ0IjQlNCj0Jog0JzQmNCb0JjQptCQCivQkNCI0JTQo9CaINCi0J7QqNCQCivQkNCI0JTQo9Ca0J7QktCY0Isg0JPQntCI0JrQngor0JDQiNCU0KPQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JDQiNCU0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0IjQlNCj0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CQ0IjQk9CV0J3QnNCQ0KXQoiDQnNCQ0KDQmNCd0JAKK9CQ0IjQmtCj0J3QmNCLINCQ0JTQmNCbCivQkNCI0JrQo9Cd0JjQiyDQndCV0JfQmNCgCivQkNCI0KDQkNCd0J7QktCY0Isg0IjQo9Ch0KPQpAor0JDQiNCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CQ0IjQotCb0JHQldCXINCc0JjQiNCQ0KIKK9CQ0IjQotCb0JHQldCXINCc0JjQiNCQ0KIKK9CQ0IjQktCQ0JfQntCS0JjQiyDQkNCL0JjQpAor0JDQiNCS0JDQl9Ce0JLQmNCLINCQ0KHQm9CQ0J0KK9CQ0IjQktCQ0JfQntCS0JjQiyDQldCh0JzQkAor0JDQiNCS0JDQl9Ce0JLQmNCLINCk0JDQmNCUCivQkNCI0JLQmNCb0JXQoCDQodCi0JXQktCQ0J0KK9CQ0IjQl9CV0J3QkdCV0KDQk9CV0KAg0JHQldCb0JAKK9CQ0JrQqNCQ0JzQntCS0JjQiyDQn9Cb0JDQktCo0JAKK9CQ0JrQmNCaINCU0KDQkNCT0JjQptCQCivQkNCa0JjQmiDQlNCj0KjQkNCdCivQkNCa0JjQnSDQlNCg0JDQk9CQCivQkNCa0JjQnSDQodCe0KTQmNCI0JAKK9CQ0JrQntCd0KfQmNCLINCX0J7QoNCQ0J0KK9CQ0JrQoNCQ0J8g0KTQmNCb0JjQnyDQn9Cg0J7QpAor0JDQmtCg0JDQn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0JrQodCV0J3QotCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQkNCa0KHQldCd0KLQmNCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQINCh0KPQlNCY0IjQkAor0JDQmtCh0JXQndCi0JjQiNCV0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9CQ0JrQodCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCa0KHQmNCdINCc0JjQm9Ce0JLQkNCdCivQkNCa0KHQmNCdINCS0JvQkNCU0JjQnNCY0KAg0JTQoCDQmNCd0JMKK9CQ0JvQkNCC0Jgg0KjQkNCd0JTQntCgCivQkNCb0JDQkdCQ0KjQntCS0KHQmtCYINCT0KDQo9CI0JAKK9CQ0JvQkNCR0JDQqNCe0JLQodCa0Jgg0JjQkdCg0JDQpdCY0JwKK9CQ0JvQkNCR0KPQoNCY0Isg0J/QkNCS0JvQlQor0JDQm9CQ0JHQo9Cg0JjQiyDQotCV0J7QlNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCb0JDQj9CY0Isg0ILQntCg0ILQngor0JDQm9CQ0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCb0JDQlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0JvQkNCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JDQm9CQ0JTQmNCLINCY0JTQkAor0JDQm9CQ0JTQmNCLINCh0KLQldCS0JDQnQor0JDQm9CQ0JPQmNCLINCU0KPQqNCQ0J0KK9CQ0JvQkNCT0JjQiyDQnNCj0IjQngor0JDQm9CQ0JPQmNCLINCd0JDQlNCQCivQkNCb0JDQk9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQm9CQ0JPQmNCLINCS0JXQoNCQCivQkNCb0JDQmNCm0JAg0KDQkNCU0J7QiNCa0JAKK9CQ0JvQkNCI0JjQptCQINCR0KDQkNCd0JrQngor0JDQm9CQ0IjQmNCm0JAg0IjQntCS0J4KK9CQ0JvQkNCdINCS0JXQoNCQCivQkNCb0JDQndCe0JIg0KDQo9CW0JjQptCQCivQkNCb0JDQoNCT0JjQiyDQiNCV0JvQldCd0JAKK9CQ0JvQkNCg0JPQmNCLINCc0JjQm9CY0KbQkAor0JDQm9CQ0KDQk9CY0Isg0J/QldCi0JDQoAor0JDQm9CQ0KDQk9CY0Isg0KDQkNCU0JUKK9CQ0JvQkNCg0JPQmNCLINCg0JDQndCa0JAKK9CQ0JvQkNCg0JPQmNCLINCi0JjQnNCQCivQkNCb0JDQodCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQkNCb0JDQodCe0JIg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CQ0JvQkNCS0JDQitCQINCc0JjQoNCI0JDQndCQCivQkNCb0JHQmNCI0JDQndCY0Isg0JHQntCg0J4KK9CQ0JvQkdCY0IjQkNCd0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkNCb0JHQntCiINCY0JvQmNCI0JAKK9CQ0JvQkdCg0JXQpdCiINCI0JDQndCe0KgKK9CQ0JvQkdCg0JXQpdCiINCc0JDQoNCY0IjQkAor0JDQm9CR0KDQldCl0KIg0JzQkNCg0JjQiNCQCivQkNCb0JHQo9CJINCU0JjQktCd0JAKK9CQ0JvQkdCj0Ikg0JPQntCg0JTQkNCd0JAKK9CQ0JvQkdCj0Ikg0JLQldCh0JXQm9CY0J0KK9CQ0JvQkdCj0Ikg0JLQntCI0JjQodCb0JDQktCa0JAKK9CQ0JvQldCa0KHQkNCd0JTQldCgINCQ0J3QkAor0JDQm9CV0JrQodCQ0J3QlNCV0KAg0KDQo9CU0J7Qm9CkCivQkNCb0JXQmtCh0JDQndCU0KDQmNCLINCc0JjQm9CV0KHQkCDQlNCgCivQkNCb0JXQmtCh0JDQndCU0KDQntCSINCh0JvQkNCS0KfQkAor0JDQm9CV0JrQodCQ0J3QlNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkNCb0JXQmtCh0JDQndCU0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCb0JXQmtCh0Jgg0KHQotCV0JLQkNCdCivQkNCb0JXQmtCh0JjQiyDQp9CQ0KHQm9CQ0JIKK9CQ0JvQldCa0KHQmNCLINCn0JXQlNCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQltCY0JLQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0ILQntCg0ILQlQor0JDQm9CV0JrQodCY0Isg0ILQo9Cg0JAKK9CQ0JvQldCa0KHQmNCLINCQ0KbQkAor0JDQm9CV0JrQodCY0Isg0JDQlNCQ0JwKK9CQ0JvQldCa0KHQmNCLINCQ0KDQodCQCivQkNCb0JXQmtCh0JjQiyDQkdCY0KHQldCg0JrQkAor0JDQm9CV0JrQodCY0Isg0JHQntCW0JjQlNCQ0KAKK9CQ0JvQldCa0KHQmNCLINCR0J7QltCY0JTQkNCgCivQkNCb0JXQmtCh0JjQiyDQkdCe0JPQlNCQ0J0KK9CQ0JvQldCa0KHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JDQm9CV0JrQodCY0Isg0JHQoNCQ0J3QmtCeCivQkNCb0JXQmtCh0JjQiyDQkdCg0JDQndCa0J4KK9CQ0JvQldCa0KHQmNCLINCR0KDQkNCd0JrQngor0JDQm9CV0JrQodCY0Isg0JHQo9CU0JjQnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCU0JDQndCY0KbQkAor0JDQm9CV0JrQodCY0Isg0JTQkNCg0JjQndCa0JAKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0JDQnQor0JDQm9CV0JrQodCY0Isg0JTQoNCQ0JPQkAor0JDQm9CV0JrQodCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JDQm9CV0JrQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9CQ0JvQldCa0KHQmNCLINCU0KPQqNCQ0J0KK9CQ0JvQldCa0KHQmNCLINCU0KPQqNCQ0J0KK9CQ0JvQldCa0KHQmNCLINCV0JLQmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCT0J7QiNCa0J4KK9CQ0JvQldCa0KHQmNCLINCT0J7QoNCQ0J0KK9CQ0JvQldCa0KHQmNCLINCT0J7QoNCU0JDQndCQCivQkNCb0JXQmtCh0JjQiy3Qk9Cg0JjQodCV0KAg0J3QmNCa0J7Qm9CQCivQkNCb0JXQmtCh0JjQiyDQmNCb0JjQndCa0JAKK9CQ0JvQldCa0KHQmNCLINCY0JLQkNCdCivQkNCb0JXQmtCh0JjQiyDQiNCV0JvQldCd0JAKK9CQ0JvQldCa0KHQmNCLINCI0JXQm9CY0KbQkAor0JDQm9CV0JrQodCY0Isg0IjQldCb0JjQptCQCivQkNCb0JXQmtCh0JjQiyDQiNCe0KHQmNCfCivQkNCb0JXQmtCh0JjQiyDQiNCe0JLQkNCdCivQkNCb0JXQmtCh0JjQiyDQiNCe0JLQngor0JDQm9CV0JrQodCY0Isg0JrQkNCi0JAKK9CQ0JvQldCa0KHQmNCLINCa0JDQotCY0KbQkAor0JDQm9CV0JrQodCY0Isg0JrQkNCi0JjQptCQCivQkNCb0JXQmtCh0JjQiyDQmtCe0KHQkAor0JDQm9CV0JrQodCY0Isg0JrQntCh0KLQkAor0JDQm9CV0JrQodCY0Isg0JrQntCh0KLQkAor0JDQm9CV0JrQodCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JDQm9CV0JrQodCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JDQm9CV0JrQodCY0Isg0InQmNCJ0JDQndCQCivQkNCb0JXQmtCh0JjQiyDQidCY0InQkNCd0JAKK9CQ0JvQldCa0KHQmNCLINCJ0KPQkdCY0KjQkAor0JDQm9CV0JrQodCY0Isg0InQo9Ci0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCc0JDQoNCY0J0KK9CQ0JvQldCa0KHQmNCLINCc0JjQm9CQ0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQkNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQkNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQkNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQldCd0JAKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9CY0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQmNCS0J7QiAor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0KgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0KgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0KgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0IjQlQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQm9CV0JrQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CQ0JvQldCa0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkNCb0JXQmtCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQm9CV0JrQodCY0Isg0JzQmNCg0JrQngor0JDQm9CV0JrQodCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQm9CV0JrQodCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JvQldCa0KHQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCb0JXQmtCh0JjQiyDQnNCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQndCQ0JTQkAor0JDQm9CV0JrQodCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JDQm9CV0JrQodCY0Isg0J3QldCR0J7QiNCo0JAKK9CQ0JvQldCa0KHQmNCLINCd0JjQmtCe0JvQkAor0JDQm9CV0JrQodCY0Isg0J3QmNCa0J7Qm9CQCivQkNCb0JXQmtCh0JjQiyDQn9CQ0KPQm9CY0J3QkAor0JDQm9CV0JrQodCY0Isg0J/QkNCS0JvQlQor0JDQm9CV0JrQodCY0Isg0J/QldCi0JDQoAor0JDQm9CV0JrQodCY0Isg0J/QldCi0JDQoAor0JDQm9CV0JrQodCY0Isg0J/QldCi0JDQoAor0JDQm9CV0JrQodCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CQ0JvQldCa0KHQmNCLINCg0JDQlNCVCivQkNCb0JXQmtCh0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JDQm9CV0JrQodCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCg0JDQiNCa0J4KK9CQ0JvQldCa0KHQmNCLINCg0JDQotCa0J4KK9CQ0JvQldCa0KHQmNCLINCg0JDQotCa0J4KK9CQ0JvQldCa0KHQmNCLINCg0JjQodCi0J4KK9CQ0JvQldCa0KHQmNCLINCh0JDQktCeCivQkNCb0JXQmtCh0JjQiyDQodCb0JDQktCd0JAKK9CQ0JvQldCa0KHQmNCLINCh0JzQmNCJ0JAKK9CQ0JvQldCa0KHQmNCLINCh0KLQldCS0JDQnQor0JDQm9CV0JrQodCY0Isg0KHQotCV0JLQkNCdCivQkNCb0JXQmtCh0JjQiyDQktCQ0KHQkAor0JDQm9CV0JrQodCY0Isg0JLQldCg0JAKK9CQ0JvQldCa0KHQmNCLINCS0JXQoNCQCivQkNCb0JXQmtCh0JjQiyDQktCV0KHQndCQCivQkNCb0JXQmtCh0JjQiyDQktCY0KLQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkNCb0JXQmtCh0JjQiyDQl9CU0KDQkNCS0JXQndCa0JAKK9CQ0JvQldCa0KHQmNCLINCX0JTQoNCQ0JLQmtCeCivQkNCb0JXQmtCh0JjQiyDQl9Cb0JDQotCY0JHQntCgCivQkNCb0JXQmtCh0JjQiyDQl9Ce0KDQkNCdCivQkNCb0JXQmtCh0JjQiNCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JDQm9CV0JrQodCY0IjQldCS0JjQiyDQkdCe0KDQkAor0JDQm9CV0JrQodCY0IjQldCS0JjQiyDQmNCh0JjQlNCe0KAKK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQm9CV0JrQodCY0IjQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CQ0JvQldCa0KHQntCSINCT0JXQntCg0JPQmAor0JDQm9CV0JrQodCe0JIg0JzQmNCb0KPQotCY0J0KK9CQ0JvQldCa0KHQntCSINCh0JjQnNCV0J7QnQor0JDQm9CV0JrQodCe0JIg0JfQntCg0JDQnQor0JDQm9CV0JrQodCe0JLQodCa0Jgg0JzQmNCb0JUKK9CQ0JvQldCa0KHQntCS0KHQmtCYINCh0KDQkdCe0InQo9CRCivQkNCb0JXQnNCf0JjQiyDQodCQ0JLQngor0JDQm9CV0JzQn9CY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQkNCb0JXQnNCf0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CQ0JvQldCd0JTQldCgINCo0JXQpNCY0JoKK9CQ0JvQmCDQiNCj0JvQmNCh0KLQkNCdCivQkNCb0JjQqNCY0Isg0JHQldCh0JjQnAor0JDQm9CY0KjQmNCLINCd0JjQiNCQ0JcKK9CQ0JvQmNCo0JjQiyDQoNCV0I/QldCfCivQkNCb0JjQqNCY0Isg0JLQkNCh0JLQmNCI0JAKK9CQ0JvQmNCC0KPQmtCY0Isg0JjQm9CY0IjQkAor0JDQm9CY0JHQkNCo0JjQiyDQpdCQ0JzQmNCUCivQkNCb0JjQiNCQINCQ0JHQlNCY0KDQkNCl0JzQkNCdCivQkNCb0JjQiNCQINCY0JfQldCiCivQkNCb0JjQiNCV0JLQmNCLINCd0JXQl9CY0KAKK9CQ0JvQmNCI0JXQktCY0Isg0KHQkNCU0KDQmNCI0JAKK9CQ0JvQmNCb0J7QktCY0Isg0JLQmNCd0JrQngor0JDQm9CY0JzQn9CY0Isg0JbQmNCS0JrQngor0JDQm9CY0JzQn9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0JvQmNCc0J/QmNCLINCR0JDQoNCR0JDQoNCQCivQkNCb0JjQnNCf0JjQiyDQkdCe0JPQntCc0JjQoAor0JDQm9CY0JzQn9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JDQm9CY0JzQn9CY0Isg0JTQoNCQ0JPQkNCdCivQkNCb0JjQnNCf0JjQiyDQlNCg0JDQk9CY0KbQkAor0JDQm9CY0JzQn9CY0Isg0IjQldCb0JAKK9CQ0JvQmNCc0J/QmNCLINCI0J7QktCQ0J0KK9CQ0JvQmNCc0J/QmNCLINCJ0KPQkdCY0KbQkAor0JDQm9CY0JzQn9CY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JvQmNCc0J/QmNCLINCh0JvQkNCS0JrQkAor0JDQm9CY0JzQn9CY0Isg0KHQm9CQ0JLQmtCeCivQkNCb0JjQnNCf0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQmNCc0J/QmNCLINCi0JjQpdCe0JzQmNCgCivQkNCb0JjQnNCf0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCb0JjQnNCf0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CQ0JvQmNCc0J/QmNCI0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JvQmNCc0J/QmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQm9CY0JzQn9CY0IjQldCS0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CQ0JvQmNCe0JIg0KXQo9Ch0JXQmNCdCivQkNCb0JjQntCSINCe0JzQldCgCivQkNCJ0Jgg0JDQiNCg0JDQlNCY0J0KK9CQ0InQmCDQnNCQ0JrQodCj0KIKK9CQ0InQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CQ0InQmNCLINCg0JDQnNCeCivQkNCJ0JjQiNCj0J/QmCDQp9CV0KDQmNCcCivQkNCb0JrQmNCLINCh0KLQldCS0JDQnQor0JDQm9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkNCb0JzQkNCo0Jgg0JXQotCV0JsKK9CQ0JvQnNCQ0KjQmCDQnNCQ0KDQmNCo0JrQkAor0JDQm9Cc0JDQqNCYINCc0JDQotCY0IjQkAor0JDQm9Cc0JDQqNCYINCh0JDQnNCj0JXQmwor0JDQm9Cc0JDQltCQ0J0g0KHQm9CQ0JLQmtCeINCd0J7QktCY0J3QkNCgCivQkNCb0J7QoNCY0Isg0JTQoNCQ0JPQntCc0JjQoNCa0JAKK9CQ0JvQntCg0JjQiyDQmNCb0JjQiNCQCivQkNCb0KLQldCg0J7QkiDQkNCd0JAKK9CQ0JvQotCa0J7QoNCdINCc0JDQm9CS0JjQndCQCivQkNCb0JLQkNCP0JjQnSDQlNCg0JDQk9Cj0KLQmNCdCivQkNCb0JLQmNCg0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JDQm9CS0JjQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQkNCc0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0JzQkNCc0J7QktCY0Isg0JzQmNCb0JXQktCQCivQkNCc0JHQkNCg0I/QmNCI0JXQkiDQpdCg0JjQodCi0J4KK9CQ0JzQkdCeINCY0JvQmNCI0JAKK9CQ0JzQkdCg0J7Ql9CY0Isg0KDQkNCh0KLQmtCeCivQkNCc0JHQoNCj0Kgg0JDQotCY0JvQkAor0JDQnNCR0KDQo9Co0JjQiyDQnNCQ0JPQlNCQCivQkNCc0JHQoNCj0KHQntCSINCI0J7QktCQ0J0KK9CQ0JzQldCi0J7QkiDQntCh0JzQkNCdCivQkNCc0JXQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CQ0JzQldCi0J7QktCY0Isg0ILQntCg0ILQngor0JDQnNCV0KLQntCS0JjQiyDQgtCj0KDQngor0JDQnNCV0KLQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JDQnNCV0KLQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CQ0JzQldCi0J7QktCY0Isg0IjQntCS0JDQnQor0JDQnNCV0KLQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CQ0JzQldCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQnNCV0KLQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCc0JXQotCe0JLQmNCLINCc0JDQoNCa0J4KK9CQ0JzQldCi0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CQ0JzQldCi0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0JzQldCi0J7QktCY0Isg0JzQmNCg0JrQngor0JDQnNCV0KLQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQnNCV0KLQntCS0JjQiyDQoNCQ0IjQmtCeCivQkNCc0JXQotCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0JzQldCi0J7QktCY0Isg0KDQo9Ch0JzQmNCg0JAKK9CQ0JzQldCi0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkNCc0JXQotCe0JLQmNCLINCS0J7QiNCY0J0KK9CQ0JzQmNCW0JjQiyDQlNCQ0J3QmNCm0JAKK9CQ0JzQmNCW0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCc0JjQltCY0Isg0KLQldCe0JTQntCg0JAKK9CQ0J3Qp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CQ0J3Qp9CY0Isg0JzQmNCb0JDQnQor0JDQndCn0JjQiyDQndCV0JLQldCd0JrQkCDQlNCgCivQkNCd0ILQldCb0JjQiyDQkNCd0ILQldCb0JrQngor0JDQndCC0JXQm9CY0Isg0JDQndCU0KDQmNCI0JAKK9CQ0J3QgtCV0JvQmNCLINCQ0J3QmNCm0JAKK9CQ0J3QgtCV0JvQmNCLINCR0JjQidCQ0J3QkAor0JDQndCC0JXQm9CY0Isg0JHQm9CQ0JPQmNCo0JAKK9CQ0J3QgtCV0JvQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9CQ0J3QgtCV0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0J3QgtCV0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0J3QgtCV0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JDQndCC0JXQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9CQ0J3QgtCV0JvQmNCLINCU0KDQkNCT0JjQptCQCivQkNCd0ILQldCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkNCd0ILQldCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0JDQndCC0JXQm9CY0Isg0JPQntCg0JDQnQor0JDQndCC0JXQm9CY0Isg0JjQm9CY0IjQkAor0JDQndCC0JXQm9CY0Isg0JjQm9CY0IjQkAor0JDQndCC0JXQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CQ0J3QgtCV0JvQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CQ0J3QgtCV0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCd0ILQldCb0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0JXQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0J3QgtCV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQkNCd0ILQldCb0JjQiyDQnNCY0KLQkNCgCivQkNCd0ILQldCb0JjQiyDQndCY0JrQntCb0JAKK9CQ0J3QgtCV0JvQmNCLINCg0JDQlNCc0JjQm9CQCivQkNCd0ILQldCb0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQkNCd0ILQldCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkNCd0ILQldCb0JjQiyDQodCQ0JLQkAor0JDQndCC0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CQ0J3QgtCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCh0KLQldCS0JDQnQor0JDQndCC0JXQm9CY0Isg0JLQkNCh0JAKK9CQ0J3QgtCV0JvQmNCLINCS0JDQodCeCivQkNCd0ILQldCb0JjQiyDQktCV0InQmtCeCivQkNCd0ILQldCb0JjQiyDQktCV0KHQldCb0JjQnQor0JDQndCC0JXQm9CY0Isg0JLQldCh0J3QkAor0JDQndCC0JXQm9CY0Isg0JLQm9CQ0JTQkAor0JDQndCC0JXQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCd0ILQldCb0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkNCd0ILQldCb0JrQntCS0JjQiy3QlNCj0JTQmNCLINCX0JvQkNCi0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JvQmNCU0JjQiNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCd0ILQldCb0JrQntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkNCd0ILQldCb0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KDQntCR0JXQoNCiCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCY0JzQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCS0JXQoNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCY0J3QmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCY0J3QmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCY0J3QmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCj0JrQkNCU0JjQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JfQntCg0JDQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JfQntCg0JDQnQor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JfQntCg0JAKK9CQ0J3QgtCV0JvQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CQ0J3QgtCV0JvQntCS0JjQiyDQktCV0KDQmNCm0JAKK9CQ0J3QgtCV0JvQntCS0KHQmtCYINCC0J7QoNCC0JUKK9CQ0J3QgtCY0Isg0KHQotCV0JLQkNCdCivQkNCd0ILQo9Co0JjQiyDQltCQ0KDQmtCeCivQkNCd0ILQo9Co0JjQiyDQiNCV0JvQmNCh0JDQktCa0JAKK9CQ0J3QgtCj0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCd0ILQo9Co0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JDQodCi0JDQodCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQkNCd0JDQodCi0JDQodCY0IjQldCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0JfQntCg0JjQptCQCivQkNCd0JDQodCi0JDQodCY0IjQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CQ0J3QkNCh0KLQkNCh0J7QkiDQnNCQ0KDQmtCeCivQkNCd0JDQodCi0JDQodCe0JIg0J3QmNCa0J7Qm9CQCivQkNCd0JDQodCi0JDQodCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QkNCjINCT0JDQkdCg0JjQldCb0JAKK9CQ0J3QkNCjINCh0KLQldCS0JDQnQor0JDQndCU0JDQkdCQ0Jog0JzQkNCg0JrQngor0JDQndCU0JDQkdCQ0JrQkCDQkNCd0KLQlQor0JDQndCU0JDQkdCQ0JrQkCDQodCb0JDQktCY0KbQkAor0JDQndCU0JXQoCDQmNCc0KDQlQor0JDQndCU0JXQoNCb0J7QnSDQodCi0JXQktCY0KbQkAor0JDQndCU0JXQodCV0JvQmNCLINCo0KLQldCk0JjQptCQCivQkNCd0JTQldCS0KHQmtCYINCg0JDQlNCVCivQkNCd0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J3QlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQndCU0J7QndCY0JDQlNCY0KEg0JzQmNCb0JjQptCQCivQkNCd0JTQntCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0J3QlNCe0J3QntCSINCd0JXQndCQ0JQKK9CQ0J3QlNCe0J3QntCSINCX0J7QoNCY0KbQkAor0JDQndCU0J7QndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQndCU0KDQkNCo0JjQmiDQn9CQ0JLQldCbCivQkNCd0JTQoNCV0JDQotCQINCh0JvQkNCS0JrQngor0JDQndCU0KDQldCY0Isg0KDQkNCU0J7QktCQ0J0KK9CQ0J3QlNCg0JXQiNCV0JIg0KXQldCb0JXQndCQCivQkNCd0JTQoNCV0IjQldCSINCc0JjQpdCQ0IjQm9CeCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQkdCe0JPQntCh0JDQkgor0JDQndCU0KDQldCI0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JDQndCU0KDQldCI0JXQktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JDQndCU0KDQldCI0JXQktCY0Isg0JjQktCQ0J0KK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCc0JDQoNCa0J4KK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCi0JXQntCU0J7QoAor0JDQndCU0KDQldCI0JXQktCY0Isg0JLQo9Ca0JDQqNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQkNCd0JTQoNCV0IjQmNCLINCW0JDQoNCa0J4KK9CQ0J3QlNCg0JXQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JDQndCU0KDQldCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QlNCg0JXQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQndCU0KDQldCI0JjQiyDQodCb0JDQktCe0InQo9CRCivQkNCd0JTQoNCV0IjQmNCLINCh0KDQldCi0JXQnQor0JDQndCU0KDQldCI0JjQiyDQktCV0KDQkAor0JDQndCU0KDQldCI0JjQiyDQl9Ce0KDQkNCdCivQkNCd0JTQoNCV0IjQmNCLINCX0J7QoNCY0KbQkAor0JDQndCU0KDQldChINCQ0J3QgtCV0JvQmtCeCivQkNCd0JTQoNCY0KfQldCaINCQ0J3QkAor0JDQndCU0KDQmNCn0JXQmiDQm9CQ0IjQntCoCivQkNCd0JTQoNCY0KfQldCaINCc0JDQk9CU0JDQm9CV0J3QkAor0JDQndCU0KDQmNCn0JXQmiDQn9CQ0JLQkNCeCivQkNCd0JTQoNCY0KfQldCaINCf0JDQktCb0JUKK9CQ0J3QlNCg0JjQiyDQltCV0InQmtCQCivQkNCd0JTQoNCY0Isg0JbQmNCa0JAKK9CQ0J3QlNCg0JjQiyDQltCY0JLQkNCdCivQkNCd0JTQoNCY0Isg0ILQntCg0ILQlQor0JDQndCU0KDQmNCLINCC0KPQoNCC0JjQndCQCivQkNCd0JTQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QlNCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JDQndCU0KDQmNCLINCR0J7QiNCQ0J0KK9CQ0J3QlNCg0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JDQndCU0KDQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CQ0J3QlNCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QlNCg0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JDQndCU0KDQmNCLINCU0J7QodCi0JAKK9CQ0J3QlNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkNCd0JTQoNCY0Isg0JTQo9Co0JDQnQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQkNCd0JTQoNCY0Isg0JTQo9Co0JDQnQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQpNCg0JjQlNCQCivQkNCd0JTQoNCY0Isg0JjQm9CY0IjQkAor0JDQndCU0KDQmNCLINCI0JXQm9CV0J3QkAor0JDQndCU0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkNCd0JTQoNCY0Isg0IjQntCS0JjQptCQCivQkNCd0JTQoNCY0Ist0JrQntCS0JDQp9CV0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQkNCd0JTQoNCY0Isg0JvQkNCX0JDQoAor0JDQndCU0KDQmNCLINCb0JDQl9CQCivQkNCd0JTQoNCY0Isg0InQmNCJ0JDQndCQCivQkNCd0JTQoNCY0Isg0InQmNCJ0JDQndCQCivQkNCd0JTQoNCY0Isg0JvQo9CU0JzQmNCb0JAKK9CQ0J3QlNCg0JjQiyDQnNCY0JvQlQor0JDQndCU0KDQmNCLINCc0JjQm9Ce0KgKK9CQ0J3QlNCg0JjQiyDQnNCY0JvQntCoCivQkNCd0JTQoNCY0Isg0J3QldCR0J7QiNCo0JAKK9CQ0J3QlNCg0JjQiyDQndCV0KHQotCe0KAKK9CQ0J3QlNCg0JjQiyDQndCY0JrQntCb0JAKK9CQ0J3QlNCg0JjQiyDQn9CV0KDQmNCm0JAKK9CQ0J3QlNCg0JjQiyDQn9CV0KLQkNCgCivQkNCd0JTQoNCY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0J3QlNCg0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQkNCd0JTQoNCY0Isg0KHQkNCS0JAKK9CQ0J3QlNCg0JjQiyDQodCY0JzQkAor0JDQndCU0KDQmNCLINCh0JvQkNCS0JrQkAor0JDQndCU0KDQmNCLINCh0JvQkNCS0JrQkAor0JDQndCU0KDQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CQ0J3QlNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JTQoNCY0Isg0KHQotCV0JLQkNCdCivQkNCd0JTQoNCY0Isg0KHQotCV0JLQkNCdCivQkNCd0JTQoNCY0Isg0KLQntCU0J7QoAor0JDQndCU0KDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0J3QlNCg0JjQiyDQktCV0KDQmNCm0JAKK9CQ0J3QlNCg0JjQiyDQktCb0JDQlNCQCivQkNCd0JTQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoNCQCivQkNCd0JTQoNCY0Isg0JLQo9Ca0J7QnNCQ0J0KK9CQ0J3QlNCg0JjQiyDQl9Ce0KDQkAor0JDQndCU0KDQmNCT0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QlNCg0JjQiNCQ0KjQldCSINCa0J7QodCQ0J3QkAor0JDQndCU0KDQmNCI0JDQqNCV0JIg0KDQo9CW0JjQptCQCivQkNCd0JTQoNCY0IjQkNCo0JXQktCY0Isg0JbQldCJ0JrQngor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCQ0J3QmtCQCivQkNCd0JTQoNCY0IjQkNCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkNCd0JTQoNCY0IjQkNCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQkNCd0JTQoNCY0IjQkNCo0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CQ0J3QlNCg0JjQiNCV0JLQmNCLINCW0JjQktCQCivQkNCd0JTQoNCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQkNCd0JTQoNCY0J0g0JDQndCC0JXQm9Ca0JAKK9CQ0J3QlNCg0JjQnSDQmNCh0JjQlNCe0KAKK9CQ0J3QlNCg0JjQnSDQmtCQ0KLQmNCm0JAKK9CQ0J3QlNCg0JjQnSDQnNCY0JvQkNCU0JjQndCa0JAKK9CQ0J3QlNCg0JjQnSDQndCQ0JTQkAor0JDQndCU0KDQntCm0JrQmCDQn9CQ0Jsg0JTQmNCf0Jsg0JjQndCTCivQkNCd0JTQo9Cb0JDQiNCV0JLQmNCLINCh0KLQldCS0J4KK9CQ0J3Qk9CV0JHQoNCQ0J3QoiDQmNCb0J7QndCa0JAKK9CQ0J3Qk9CV0JvQldCh0JrQmCDQktCQ0J3Qk9CV0JsKK9CQ0J3Qk9CV0JvQntCSINCU0KPQqNCQ0J0KK9CQ0J3Qk9CV0JvQntCSINCh0KDQldCL0JrQngor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0JTQo9Co0JDQnQor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0JjQm9CY0IjQkAor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0IjQkNCd0JTQoNCVCivQkNCd0JPQldCb0J7QktCh0JrQmCDQnNCY0KLQoNCVCivQkNCd0JPQldCb0J7QktCh0JrQmCDQotCe0JzQngor0JDQndCY0KfQmNCLINCW0JjQktCe0KLQkAor0JDQndCY0KfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JDQndCY0KfQmNCLINCU0KDQkNCT0JDQnQor0JDQndCY0KfQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0J7QldCmCivQkNCd0JjQp9CY0Isg0KTQmNCb0JjQnwor0JDQndCY0KfQmNCLINCY0JvQmNCI0JAKK9CQ0J3QmNCn0JjQiyDQmtCe0JLQmNCd0JrQkAor0JDQndCY0KfQmNCLINCc0JjQm9CV0J3QkCDQlNCY0J/QmyDQldCm0KYKK9CQ0J3QmNCn0JjQiyDQnNCY0KDQmtCeCivQkNCd0JjQp9CY0Isg0JzQmNCg0J4KK9CQ0J3QmNCn0JjQiyDQnNCY0KDQngor0JDQndCY0KfQmNCLINCd0JXQndCQ0JQKK9CQ0J3QmNCn0JjQiyDQntCh0KLQntCI0JAKK9CQ0J3QmNCn0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JDQndCY0KfQmNCLINCh0KLQkNCa0JAKK9CQ0J3QmNCn0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQkNCd0JjQp9CY0Isg0KLQntCU0J7QoAor0JDQndCY0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQkNCd0JjQp9CY0J0g0JbQkNCg0JrQngor0JDQndCY0KfQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JDQndCY0KjQmNCLINCI0JDQodCc0JjQndCa0JAKK9CQ0J3QmNCLINCU0KPQqNCQ0J0KK9CQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QmNCLINCX0J7QoNCQCivQkNCd0JjQmtCQINCT0JDQktCg0JjQm9CeCivQkNCd0JjQmtCQINCI0KPQm9CY0IjQlSDQn9Cg0J7QpNCV0KHQntCgCivQkNCd0JjQotCY0Isg0JjQqNCi0JLQkNCdCivQkNCd0JrQmNCLINCc0JDQoNCI0JDQnQor0JDQndCa0JjQiyDQn9CV0KDQmNCm0JAKK9CQ0J3QntCI0KfQmNCLINCW0JXQidCa0J4KK9CQ0J3QntCI0KfQmNCLINCb0JDQl9CQ0KAKK9CQ0J3QntCI0KfQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QntCI0KfQmNCLINCg0JDQlNCY0JLQntCICivQkNCd0J7QiNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JDQndCe0IjQp9CY0Isg0KHQn9CQ0KHQntCI0JUKK9CQ0J3QntCI0KfQmNCLLdCh0KLQntCI0JrQntCS0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQkNCd0KLQkNCbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0KLQkNCbINCS0JXQoNCe0J3QkAor0JDQndCi0JDQndCQ0KHQmNCLINCh0KLQkNCd0JrQngor0JDQndCi0JDQndCQ0KHQmNCI0JXQktCY0Isg0JHQntCg0JAKK9CQ0J3QotCV0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQndCi0JjQiyDQgtCe0JrQkAor0JDQndCi0JjQiyDQgtCe0KDQgtCVCivQkNCd0KLQmNCLINCC0J7QoNCC0JUKK9CQ0J3QotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QotCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JDQndCi0JjQiyDQkdCe0KjQmtCeCivQkNCd0KLQmNCLINCR0J7QltCY0JTQkNCgINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9CQ0J3QotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CQ0J3QotCY0Isg0JHQoNCQ0J3QmtCeCivQkNCd0KLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JDQndCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0J3QotCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0KLQmNCLINCU0KDQkNCT0JDQnQor0JDQndCi0JjQiyDQlNCg0JDQk9CY0KjQkAor0JDQndCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0JDQndCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0JDQndCi0JjQiyDQiNCj0JvQmtCQCivQkNCd0KLQmNCLINCa0J7QodCi0JAKK9CQ0J3QotCY0Isg0InQo9CR0JjQqNCQCivQkNCd0KLQmNCLINCb0KPQmtCQCivQkNCd0KLQmNCLINCc0JDQoNCY0KbQkAor0JDQndCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CQ0J3QotCY0Isg0JzQmNCb0JDQnQor0JDQndCi0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QotCY0Isg0JzQmNCb0JDQnQor0JDQndCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JDQndCi0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JDQndCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQndCi0JjQiyDQnNCY0KDQmtCeCivQkNCd0KLQmNCLINCc0JjQoNCa0J4KK9CQ0J3QotCY0Isg0J3QldCd0JDQlAor0JDQndCi0JjQiyDQndCV0JLQldCd0JAKK9CQ0J3QotCY0Isg0J7Qm9CT0JAKK9CQ0J3QotCY0Isg0J/QkNCS0JvQlQor0JDQndCi0JjQiyDQn9CQ0JLQm9CVCivQkNCd0KLQmNCLINCf0JDQktCb0JUKK9CQ0J3QotCY0Isg0J/QldCi0JDQoAor0JDQndCi0JjQiyDQoNCQ0JTQntCI0JrQngor0JDQndCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JDQndCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JDQndCi0JjQiyDQodCb0JDQgtCQ0J3QkAor0JDQndCi0JjQiyDQodCb0JDQktCY0KbQkAor0JDQndCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0KLQmNCLINCh0JzQmNCJ0JAKK9CQ0J3QotCY0Isg0KHQnNCY0InQkAor0JDQndCi0JjQiyDQodCe0KTQmNCI0JAKK9CQ0J3QotCY0Isg0KHQotCQ0J3Qp9CQCivQkNCd0KLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JDQndCi0JjQiyDQodCi0JDQndCe0IjQlQor0JDQndCi0JjQiyDQodCi0J7QiNCQ0J0KK9CQ0J3QotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCd0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CQ0J3QotCY0Isg0KHQktCV0KLQntCS0JjQlAor0JDQndCi0JjQiyDQktCV0KDQmNCm0JAKK9CQ0J3QotCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CQ0J3QotCY0Isg0JfQkNCT0J7QoNCa0JAKK9CQ0J3QotCY0Isg0JfQm9CQ0KLQkNCdCivQkNCd0KLQmNCdINCY0JLQkNCd0JrQkAor0JDQndCi0JjQnSDQktCV0JvQldCc0JjQoAor0JDQndCi0J7Qm9Ce0JLQmNCLINCY0JLQkNCdCivQkNCd0KLQntCd0JjQiyDQltCY0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JDQndCi0J7QndCY0Isg0JbQmNCS0JrQngor0JDQndCi0J7QndCY0Isg0ILQntCg0ILQlQor0JDQndCi0J7QndCY0Isg0JHQntCg0JjQktCe0IgKK9CQ0J3QotCe0J3QmNCLINCR0KDQkNCd0JrQngor0JDQndCi0J7QndCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JDQndCi0J7QndCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0KLQntCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QotCe0J3QmNCLINCT0J7QoNCU0JDQndCQCivQkNCd0KLQntCd0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQkNCd0KLQntCd0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQkNCd0KLQntCd0JjQiyDQiNCV0JvQldCd0JAKK9CQ0J3QotCe0J3QmNCLINCJ0KPQkdCY0KbQkAor0JDQndCi0J7QndCY0Isg0JzQkNCg0JjQiNCQCivQkNCd0KLQntCd0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQntCd0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQntCd0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQntCd0JjQiyDQnNCY0JvQmNCS0J7QiAor0JDQndCi0J7QndCY0Isg0J3QldCR0J7QiNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQkNCd0KLQntCd0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JDQndCi0J7QndCY0Isg0KDQkNCd0JrQngor0JDQndCi0J7QndCY0Isg0KDQkNCi0JrQngor0JDQndCi0J7QndCY0Isg0KHQmNCc0JAKK9CQ0J3QotCe0J3QmNCLINCh0JvQkNCS0JjQptCQCivQkNCd0KLQntCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0KLQntCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0KLQntCd0JjQiyDQodCi0JXQktCQ0J0KK9CQ0J3QotCe0J3QmNCLINCX0J7QoNCa0JAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCR0J7QltCj0KAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCU0JDQnNCK0JDQnQor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQidCY0InQkAor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCh0KLQldCS0JAKK9CQ0J3QotCe0J3QmNCd0Jgg0JzQkNCg0JjQiNCQCivQkNCd0KLQntCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0J3QotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JDQndCi0KPQnSDQnNCY0JvQntCoCivQkNCd0KLQo9Cd0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CQ0J3QotCj0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CQ0J3QotCj0J3QntCS0JjQiyDQk9CY0JfQldCb0JAKK9CQ0J3QotCj0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCd0KLQo9Cd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkNCd0KLQo9Cd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0J3QotCj0J3QntCS0JjQiyDQndCV0JTQkAor0JDQndCi0KPQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0J3Qo9Cn0JjQnSDQndCV0J3QkNCUCivQkNCd0KPQmtCY0Isg0JrQntCh0KLQkAor0JDQn9CQ0KDQkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J/QkNCi0J7QktCY0Isg0IjQntCS0JDQnQor0JDQn9CQ0KLQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCf0JDQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JDQn9CQ0KLQntCS0JjQiyDQodCQ0JLQkAor0JDQn9CV0KDQm9CY0Isg0JLQntCI0JjQnQor0JDQn9CY0Isg0ILQntCg0ILQlQor0JDQn9CY0Isg0JDQndCa0JjQptCQCivQkNCf0JjQiyDQkdCg0JDQndCa0J4g0JTQoCDQktCV0KLQldCg0JjQndCVCivQkNCf0JjQiyDQkdCg0JDQndCa0J4KK9CQ0J/QmNCLINCU0KPQqNCQ0J0KK9CQ0J/QmNCLINCI0KPQm9Ca0JAKK9CQ0J/QmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CQ0J/QmNCLINCc0JjQm9CQ0J0KK9CQ0J/QmNCLINCc0JjQm9CQ0J0KK9CQ0J/QmNCLINCc0JjQm9CY0KbQkAor0JDQn9CY0Isg0JzQmNCb0J7QqAor0JDQn9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0J/QmNCLINCc0JjQoNCI0JDQndCQCivQkNCf0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCf0JjQiyDQntCb0JjQktCV0KDQkAor0JDQn9CY0Isg0J/QkNCI0JAKK9CQ0J/QmNCLINCf0JDQiNCQCivQkNCf0JjQiyDQoNCQ0JTQmNCo0JrQngor0JDQn9CY0Isg0KDQkNCU0JjQktCe0IjQlQor0JDQn9CY0Isg0KDQkNCi0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCf0JjQiyDQodCg0JXQotCQCivQkNCf0JjQiyDQodCi0JXQktCQ0J0KK9CQ0J/QmNCLINCh0KLQntCI0JDQnQor0JDQn9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JDQn9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JDQn9CY0Isg0JLQldCg0JAKK9CQ0J/QmNCLINCX0JTQoNCQ0JLQmtCeCivQkNCf0JjQiyDQl9Ce0KDQmtCQCivQkNCf0J7QodCi0J7Qm9Ce0JIg0InQo9CR0J7QnNCY0KAKK9CQ0J/QntCh0KLQntCb0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CQ0J/QntCh0KLQntCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0J/QoNCeINCk0KDQkNCK0JAKK9CQ0J/QoNCeINCI0JDQndCe0KgKK9CQ0J/QoNCeINCI0J7QltCV0KQKK9CQ0J/QoNCeINCb0JDQodCb0J4KK9CQ0J/QoNCeINCJ0KPQkdCe0JzQmNCgCivQkNCf0KDQniDQoNCY0KXQkNCg0JQKK9CQ0J/QoNCeLdCh0JDQnNCQ0KDQj9CY0IjQkCDQktCV0KDQkCDQlNCgCivQkNCf0KDQniDQodCi0JXQktCQ0J0KK9CQ0J/QoNCeINCX0J7Qm9Ci0JDQnQor0JDQn9CiINCR0J7Qk9Ce0InQo9CRCivQkNCf0KIg0JzQkNCg0JrQngor0JDQoNCo0JjQndCe0JIg0ILQntCg0ILQlQor0JDQoNCo0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CQ0KDQgtCV0JvQkNCcLdCo0KDQkNCaINCV0JTQmNCiCivQkNCg0ILQldCb0JDQnSDQmNCo0KLQktCQ0J0KK9CQ0KDQkNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCg0JDQgtCQ0J3QmNCdINCi0JjQnNCe0KLQmNCI0JUKK9CQ0KDQkNCC0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9CQ0KDQkNCC0JDQndCh0JrQmCDQndCQ0JTQkAor0JDQoNCQ0ILQkNCd0KHQmtCYLdCg0JDQiNCa0J7QkiDQnNCQ0IjQkAor0JDQoNCQ0KbQmtCYINCV0KDQltCY0JrQkAor0JDQoNCQ0KbQmtCY0Isg0ILQntCg0ILQlQor0JDQoNCQ0KbQmtCY0Isg0JzQmNCb0JjQptCQCivQkNCg0JDQptCa0JjQiyDQl9Cb0JDQotCe0IjQlSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JDQoNCQ0JTQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCg0JDQlNCh0JrQmCDQmNCS0JDQndCa0JAKK9CQ0KDQkNCU0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkNCg0JDQlNCh0JrQmCDQnNCY0KLQkAor0JDQoNCQ0JTQodCa0Jgg0KDQkNCU0JjQktCe0IgKK9CQ0KDQkNCU0KHQmtCYINCh0J7QpNCY0IjQkAor0JDQoNCQ0JTQodCa0Jgg0KHQoNCV0KLQldCd0JrQkAor0JDQoNCQ0JTQodCa0Jgg0KHQotCe0IjQkNCd0JrQkAor0JDQoNCQ0JTQodCa0Jgg0JfQm9CQ0KLQkAor0JDQoNCQ0JvQmNCm0JAg0KDQkNCI0JrQngor0JDQoNCQ0JzQkdCQ0KjQmNCLINCC0J7QoNCC0JUKK9CQ0KDQkNCc0JHQkNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0KDQkNCd0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCg0JDQndCn0JjQiyDQmtCQ0KDQm9CeCivQkNCg0JDQndCC0JXQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCg0JDQndCC0JXQm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCg0JDQndCC0JXQm9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQitCV0JPQntCS0JDQnQor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQodCQ0JLQkAor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQodCg0JXQotCV0J0KK9CQ0KDQkNCd0ILQo9ChINCQ0J3QotCe0J0KK9CQ0KDQkNCd0JjQptCa0Jgg0JTQmNCd0JrQkAor0JDQoNCQ0J3QmNCm0JrQmCDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CQ0KDQkNCd0JjQptCa0Jgg0JzQmNCb0JDQndCQCivQkNCg0JDQndCY0KbQmtCYINCc0JjQm9CY0KbQkAor0JDQoNCQ0J3QmNCm0JrQmCDQnNCY0JvQntCoINCU0KAg0J/QoNCe0KQKK9CQ0KDQkNCd0JjQptCa0Jgg0JfQkNCT0J7QoNCa0JAKK9CQ0KDQkNCd0JjQptCa0Jgg0JfQntCg0JjQptCQCivQkNCg0JDQndCY0KLQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCg0JDQitCe0Kgg0J/QkNCbCivQkNCg0JDQn9Cn0JjQiyDQn9CQ0KjQkNCT0JAKK9CQ0KDQkNCf0JjQndCQ0KYg0JzQmNCb0JjQptCQCivQkNCg0JDQn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9CQ0KDQkNCf0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JDQoNCQ0KAg0J/QldCi0JDQoAor0JDQoNCQ0KEg0JHQoNCQ0J3QmtCeCivQkNCg0JDQoSDQiNCj0JPQntCh0JvQkNCSCivQkNCg0JDQoSDQidCj0JHQngor0JDQoNCR0JXQoSDQndCV0J3QkNCUCivQkNCg0JHQo9Cd0JjQiyDQn9CV0KDQkAor0JDQoNCR0KPQotCY0J3QkCDQgtCj0KDQgtCY0J3QmtCQCivQkNCg0JHQo9Ci0JjQndCQINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCR0KPQotCY0J3QkCDQnNCQ0KDQmNCI0JAKK9CQ0KDQkdCj0KLQmNCd0JAg0J3QkNCi0JDQm9CY0IjQkAor0JDQoNCR0KPQotCY0J3QkCDQktCV0JvQmNCc0JjQoAor0JDQoNCR0KPQotCY0J3QkCDQktCb0JDQlNCY0JzQmNCgCivQkNCg0I/QntCdINCd0JDQotCQ0JvQmNCI0JAKK9CQ0KDQlNCQ0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQkNCg0JTQkNCb0JjQiyDQm9CV0J/QntCh0JDQktCQCivQkNCg0JTQkNCb0JjQiyDQodCb0JDQktCa0J4KK9CQ0KDQlNCV0InQkNCdINCI0J7QnQor0JDQoNCU0JXQidCQ0J0g0JzQkNCg0JjQiNCQCivQkNCg0JTQldCJ0JDQnSDQn9CV0KLQkNCgCivQkNCg0JTQntCm0JrQmCDQmNCo0KLQktCQ0J0KK9CQ0KDQldCW0JjQndCQINCC0J7QoNCC0JUKK9CQ0KDQldCW0JjQndCQINCR0J7QqNCa0J4KK9CQ0KDQmNCk0Jgg0JjQkdCg0JDQpdCY0JwKK9CQ0KDQmNCk0J7QktCY0Isg0KHQoNCR0JjQptCQCivQkNCg0JjQl9CQ0KLQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JDQoNCa0KPQm9CQINCR0JvQkNCW0JUKK9CQ0KDQmtCj0JvQkCDQodCb0JDQktCY0KbQkAor0JDQoNCa0KPQm9CQINCh0JvQkNCS0JjQptCQCivQkNCg0JvQntCSINCU0KDQkNCT0JDQnQor0JDQoNCc0JDQptCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCg0JzQkNCm0JrQmCDQoNCQ0JTQntCS0JDQnQor0JDQoNCc0JDQptCa0Jgg0KHQntCk0JjQiNCQCivQkNCg0JzQkNCm0JrQmCDQodCi0JXQktCQ0J0KK9CQ0KDQnNCR0KDQo9Ch0KLQldCgINCb0JDQodCb0J4KK9CQ0KDQnNCR0KDQo9Ch0KLQldCgINCc0JDQoNCY0IjQkAor0JDQoNCd0JDQo9CiINCC0J7QoNCC0JUKK9CQ0KDQndCQ0KPQoiDQlNCg0JDQk9CY0IrQkAor0JDQoNCd0JDQo9CiINCc0JjQm9CY0KbQkAor0JDQoNCd0JDQo9CiINCS0JDQodCQCivQkNCg0J3QntCj0KEg0KLQldCg0JXQl9CQCivQkNCg0J3QntCS0InQldCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCg0J7Qmi3QlNCY0JLQiNCQ0Jog0JPQntCg0JTQkNCd0JAKK9CQ0KDQn9CQ0KjQmCDQgtCe0KDQgtCVCivQkNCg0J/QkNCo0Jgg0JvQkNCh0JvQngor0JDQoNCh0JXQndCY0Isg0JbQmNCS0JrQngor0JDQoNCh0JXQndCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCS0JAKK9CQ0KDQodCV0J3QmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQoNCh0JXQndCY0Isg0JTQoNCQ0KjQmtCeCivQkNCg0KHQldCd0JjQiyDQiNCe0JLQkNCd0JrQkAor0JDQoNCh0JXQndCY0Isg0JzQntCc0JjQoAor0JDQoNCh0JXQndCY0Isg0J7Qm9CT0JjQptCQCivQkNCg0KHQldCd0JjQiyDQktCV0InQmtCeCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0JjQm9Cj0J3QmtCQCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeINCU0KAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JzQntCc0JjQoAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQodCb0JDQktCa0JAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0KHQnNCY0InQkAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CQ0KDQodCV0J3QmNCdINCC0KPQoNCC0JjQndCa0JAKK9CQ0KDQodCV0J3QmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCg0KHQldCd0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCh0JXQndCY0J0g0JHQntCT0J7QidCj0JEKK9CQ0KDQodCV0J3QmNCdINCT0JDQiNCQCivQkNCg0KHQldCd0JjQnSDQiNCe0JLQkNCdCivQkNCg0KHQldCd0JjQnSDQiNCe0JLQkNCdCivQkNCg0KHQldCd0JjQnSDQmtCe0KHQotCQCivQkNCg0KHQldCd0JjQnSDQmtCg0JjQodCi0JjQndCQCivQkNCg0KHQldCd0JjQnSDQnNCQ0KDQmNCI0JAKK9CQ0KDQodCV0J3QmNCdINCc0JjQotCQCivQkNCg0KHQldCd0JjQnSDQnNCb0JDQlNCV0J0KK9CQ0KDQodCV0J3QmNCdINCc0JvQkNCU0JXQnQor0JDQoNCh0JXQndCY0J0g0KHQktCV0KLQntCX0JDQoAor0JDQoNCh0JXQndCY0J0g0JLQmNCi0J7QnNCY0KAKK9CQ0KDQodCV0J3QmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CQ0KDQodCV0IrQldCSINCQ0JvQldCa0KHQldCICivQkNCg0KHQldCd0J7QkiDQkNCb0JXQmtCh0JAKK9CQ0KDQodCV0J3QntCSINCQ0KDQmNCo0JrQngor0JDQoNCh0JXQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCg0KHQldCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KDQodCV0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCh0JXQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CQ0KDQodCV0J3QntCSINCa0JDQotCY0KbQkAor0JDQoNCh0JXQndCe0JIg0JzQmNCb0JDQnQor0JDQoNCh0JXQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JDQoNCh0JXQndCe0JIg0J/QldCg0JAKK9CQ0KDQodCV0J3QntCSINCf0JXQotCQ0KAKK9CQ0KDQodCV0J3QntCSINCf0JXQotCQ0KAKK9CQ0KDQodCV0J3QntCSINCg0JDQlNCY0JLQntCICivQkNCg0KHQldCd0J7QkiDQodCQ0KjQkAor0JDQoNCh0JXQndCe0JIg0JLQkNCh0JjQm9CY0IjQlQor0JDQoNCh0JXQndCe0JLQmNCLINCW0JjQktCa0J4KK9CQ0KDQodCV0J3QntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CQ0KDQodCV0J3QntCS0JjQiyDQndCQ0JTQkCDQlNCgCivQkNCg0KHQldCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0KDQodCV0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JDQoNCh0JXQndCe0JLQmNCLINCh0JDQktCeCivQkNCg0KHQldCd0J7QktCY0Isg0KHQoNCC0JDQnQor0JDQoNCh0JXQndCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9CQ0KDQodCV0J3QntCS0JjQiyDQotCg0JjQktCeCivQkNCg0KHQldCd0J7QktCY0Isg0JLQldCh0J3QkAor0JDQoNCh0JXQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CQ0KDQodCV0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQkNCg0KHQmNCLINCn0JXQlNCe0JzQmNCgCivQkNCg0KHQmNCLINCW0JDQoNCa0J4KK9CQ0KDQodCY0Isg0JbQmNCS0JrQngor0JDQoNCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCh0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CQ0KDQodCY0Isg0JTQo9Co0JrQngor0JDQoNCh0JjQiyDQldCg0JbQldCR0JXQogor0JDQoNCh0JjQiyDQm9CQ0JfQkNCgCivQkNCg0KHQmNCLINCb0JjQlNCY0IjQkAor0JDQoNCh0JjQiyDQidCj0JHQmNCo0JAKK9CQ0KDQodCY0Isg0JzQkNCg0JjQiNCQCivQkNCg0KHQmNCLINCc0JjQpdCQ0JjQm9CeCivQkNCg0KHQmNCLINCc0JjQpdCe0InQmtCQCivQkNCg0KHQmNCLINCc0JjQm9Ce0KgKK9CQ0KDQodCY0Isg0JzQmNCb0J7QodCb0JDQkiDQlNCgCivQkNCg0KHQmNCLINCc0JjQm9Cj0KLQmNCdCivQkNCg0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkNCg0KHQmNCLINCc0JjQntCc0JjQoAor0JDQoNCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQoNCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQoNCh0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQoNCh0JjQiyDQntCR0KDQkNCUCivQkNCg0KHQmNCLINCf0JXQoNCY0KbQkAor0JDQoNCh0JjQiyDQn9CV0KLQkNCgCivQkNCg0KHQmNCLINCg0JDQlNCe0JzQmNCgCivQkNCg0KHQmNCLINCg0JDQlNCe0KHQkNCSCivQkNCg0KHQmNCLINCh0JDQktCV0KLQkAor0JDQoNCh0JjQiyDQodCb0JDQktCa0JAKK9CQ0KDQodCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0JDQoNCh0JjQiyDQodCb0JDQktCe0InQo9CRCivQkNCg0KHQmNCLINCh0KLQkNCd0JrQngor0JDQoNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCg0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0KDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQoNCh0JjQiyDQotCg0JDQiNCQ0J0KK9CQ0KDQodCY0Isg0JfQntCg0JDQnQor0JDQoNCh0JjQiyDQl9Ce0KDQkNCdCivQkNCg0KHQmNCLINCX0J7QoNCQ0J0KK9CQ0KDQodCY0JrQmNCdINCc0JjQm9CQ0J3QmtCeCivQkNCg0KHQmNCa0JjQnSDQn9CQ0JLQm9CVCivQkNCg0KHQm9CQ0J3QkNCT0JjQiyDQndCQ0ILQkAor0JDQoNCh0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQodCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CQ0KDQodCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0KDQodCe0JLQmNCLINCc0JDQotCV0IjQkAor0JDQoNCh0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQoNCh0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkNCg0KIg0ILQo9Cg0JAKK9CQ0KDQoiDQl9CS0J7QndCY0JzQmNCgCivQkNCg0KLQo9Ca0J7QkiDQlNCj0KjQkNCdCivQkNCg0KLQo9Ca0J7QkiDQntCb0JPQkAor0JDQoNCj0JvQkCDQnNCY0IvQngor0JDQoNCS0JDQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCS0JDQmCDQkNCg0J/QkNCUCivQkNCg0JLQkNCYINCU0JDQndCY0KbQkAor0JDQoNCS0JDQmCDQn9CQ0JLQkNCeCivQkNCg0JLQkNCYINCi0JXQoNCV0JfQkAor0JDQoNCS0JDQiNCYINCf0JDQktCQ0J4KK9CQ0KDQktCQ0J3QmNCi0JjQlNCY0KEg0KHQotCV0KDQiNCe0KEKK9CQ0KHQkNCd0Jgg0JDQodCQ0J0KK9CQ0KHQkNCd0Jgg0KXQo9Cg0JjQqNCQCivQkNCh0JDQndCYINCd0JDQmNCJ0JAKK9CQ0KHQkNCd0Jgg0J3QkNCX0JjQpNCQCivQkNCh0JDQndCe0JIg0JfQntCg0JAKK9CQ0KHQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQkNCh0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JDQodCQ0J3QntCS0JjQiyDQl9Cj0KXQoNCQCivQkNCh0JDQndCe0JLQodCa0Jgg0KDQntCX0JDQm9CY0IjQkAor0JDQodCY0Isg0JzQmNCb0JDQnQor0JDQodCe0JTQmCDQiNCQ0J3QntCoCivQkNCh0J7QlNCYINCI0J7QltCV0KQKK9CQ0KHQntCU0Jgg0JzQmNCg0JrQngor0JDQodCe0KLQmNCLINCc0KPQkNCc0JXQoAor0JDQodCi0JDQpdCe0JIt0IjQldCg0JXQnNCY0Isg0JzQkNCg0JjQiNCQCivQkNCh0KLQkNCb0J7QqCDQmNCo0KLQktCQ0J0KK9CQ0KHQo9Cg0I/QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CQ0KHQo9Cg0I/QmNCLINCb0KPQmtCQCivQkNCh0KPQoNCP0JjQiyDQnNCY0JvQntCoCivQkNCh0KPQoNCP0JjQiyDQnNCY0JvQntCoCivQkNCh0KPQoNCP0JjQiyDQnNCY0JvQntCoCivQkNCh0KPQoNCP0JjQiyDQnNCe0JvQntCoCivQkNCh0KPQoNCP0JjQiyDQndCY0JrQntCb0JAKK9CQ0KHQo9Cg0I/QmNCLINCd0JjQmtCe0JvQkAor0JDQodCj0KDQj9CY0Isg0KHQntCk0JjQiNCQCivQkNCh0KPQoNCP0JjQiyDQodCi0JXQktCQ0J0KK9CQ0KHQo9Cg0I/QmNCLINCi0JXQntCU0J7QoAor0JDQodCj0KDQj9CY0Isg0KLQldCe0JTQntCgCivQkNCi0JDQndCQ0KbQmtCe0JIg0ILQntCg0ILQlQor0JDQotCQ0J3QkNCm0JrQntCSINCR0J7QoNCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0JHQntCg0JjQktCe0IgKK9CQ0KLQkNCd0JDQptCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QkiDQmNCb0J7QndCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0JzQkNCg0JjQiNCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQnNCY0KDQmtCeCivQkNCi0JDQndCQ0KbQmtCe0JIg0J3QntCS0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQntCb0JPQkAor0JDQotCQ0J3QkNCm0JrQntCSINCf0JDQktCb0JUKK9CQ0KLQkNCd0JDQptCa0J7QkiDQodCQ0KjQkAor0JDQotCQ0J3QkNCm0JrQntCSINCh0KLQldCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCSINCh0KLQldCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQltCY0JLQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JDQndCQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCR0J7Qk9Ce0JHQntCICivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQkdCg0JDQndCa0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQlNCj0KjQkNCdINCU0KAg0JvQldCa0JDQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCY0JLQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JvQkNCX0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JvQo9Ca0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQmNCg0JrQngor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KDQkNCi0JrQngor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQodCQ0JLQkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQotCV0J7QlNCe0KAg0JTQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQotCe0KjQkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQkNCi0JDQndCQ0KHQmNCQ0JTQmNChINCl0KDQmNCh0KLQntCk0J7QoNCe0KEKK9CQ0KLQkNCd0JDQodCY0IjQkNCU0JjQoSDQkNCd0JXQodCi0JgKK9CQ0KLQkNCd0JDQodCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CQ0KLQkNCd0JDQodCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0KLQkNCd0JDQodCa0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9CQ0KLQkNCd0JDQodCe0KHQmtCYINCh0KLQldCS0J4KK9CQ0KLQkNCd0JDQodCe0JIg0JzQkNCg0JrQngor0JDQotCQ0J3QkNCh0J7QktCh0JrQmCDQoNCY0KHQotCeCivQkNCi0JDQoNCQ0KYg0JTQoNCQ0JPQntCoCivQkNCi0JXQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0KLQldCJ0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CQ0KLQmNCLINCU0JDQndCY0KbQkAor0JDQotCb0JDQk9CY0Isg0JHQoNCQ0J3QmtCeCivQkNCi0JvQkNCT0JjQiyDQiNCe0JLQkNCdCivQkNCi0JvQkNCT0JjQiyDQnNCY0JvQkNCdCivQkNCi0JvQkNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0KLQm9CQ0JPQmNCLINCX0JTQoNCQ0JLQmtCeCivQkNCi0JvQkNCT0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQotCb0JDQoSDQgtCe0KDQgtCVINCU0KAKK9CQ0KLQm9CQ0KEg0JjQktCQ0J0KK9CQ0KLQm9CQ0KEg0JzQmNCg0JrQngor0JDQotCb0JjQiyDQm9CQ0JfQkNCgCivQkNCi0JvQmNCLINCc0JjQm9CQ0J0KK9CQ0KPQltCY0J3QkCDQnNCY0JvQmNCm0JAKK9CQ0KPQltCY0J3QkCDQnNCY0KDQkAor0JDQo9CW0JjQndCQINCc0JjQoNCe0KHQm9CQ0JLQkAor0JDQo9CV0KAg0JzQkNCg0JAKK9CQ0KPQk9Cj0KHQotCY0J0g0JjQktCY0KbQkAor0JDQo9CT0KPQodCi0JjQndCe0JIg0JDQndCi0J7QnQor0JDQo9CT0KPQodCi0JjQndCe0JIg0JjQktCQ0J0KK9CQ0KPQm9CY0Jog0JjQm9Ce0J3QkAor0JDQo9Cg0JXQm9CY0IjQkNCdINCC0JDQnQor0JDQktCQ0JrQo9Cc0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CQ0JLQkNCa0KPQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JDQktCU0JDQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkNCS0JTQkNCb0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CQ0JLQlNCQ0JvQntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQkNCS0JTQkNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQktCU0Jgg0KDQkNCc0JDQlNCQ0J0KK9CQ0JLQlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0JLQlNCY0Isg0KTQo9CQ0JQKK9CQ0JLQlNCY0Isg0JPQntCg0JTQkNCd0JAKK9CQ0JLQlNCY0Isg0KXQo9Ch0J3QmNCI0JAKK9CQ0JLQlNCY0Isg0JzQkNCb0JjQiwor0JDQktCU0JjQiyDQnNCj0JvQmNCI0JAKK9CQ0JLQldCc0JDQoNCY0JAg0J/QldCi0JDQoAor0JDQktCg0JDQnNCe0JIg0JHQntCo0JrQngor0JDQktCg0JDQnNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCS0KDQkNCc0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0JLQoNCQ0JzQntCSINCU0J7QkdCg0JjQm9CQCivQkNCS0KDQkNCc0J7QkiDQk9CQ0JLQoNCQCivQkNCS0KDQkNCc0J7QkiDQmNCS0JDQnQor0JDQktCg0JDQnNCe0JIg0IjQntCS0JDQndCa0JAKK9CQ0JLQoNCQ0JzQntCSINCI0J7QktCQ0J0KK9CQ0JLQoNCQ0JzQntCSINCJ0JjQidCQ0J3QkAor0JDQktCg0JDQnNCe0JIg0JzQmNCb0JDQlNCY0J0KK9CQ0JLQoNCQ0JzQntCSINCc0JjQm9CV0JLQkAor0JDQktCg0JDQnNCe0JIg0JzQmNCb0JrQkAor0JDQktCg0JDQnNCe0JIg0JzQmNCg0IjQkNCd0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQotCQCivQkNCS0KDQkNCc0J7QkiDQn9CQ0IjQkAor0JDQktCg0JDQnNCe0JIg0J/QldCg0JAKK9CQ0JLQoNCQ0JzQntCSINCf0JXQotCQ0KAKK9CQ0JLQoNCQ0JzQntCSINCg0JDQlNCY0JLQntCICivQkNCS0KDQkNCc0J7QkiDQodCi0JXQktCQ0J0KK9CQ0JLQoNCQ0JzQntCSINCh0JLQldCi0J7Qm9CY0JoKK9CQ0JLQoNCQ0JzQntCSINCh0JLQldCi0J7Qm9CY0JoKK9CQ0JLQoNCQ0JzQntCSINCX0J7QoNCQ0J0KK9CQ0JLQoNCQ0JzQntCSINCX0J7QoNCQ0J0KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQltCY0JLQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JDQktCg0JDQnNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQkNCS0KDQkNCc0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCS0KDQkNCc0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCS0KDQkNCc0J7QktCY0Isg0JTQoNCQ0JPQngor0JDQktCg0JDQnNCe0JLQmNCLINCk0KDQkNCd0KbQmNCo0JrQkAor0JDQktCg0JDQnNCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQmNCb0JjQndCa0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQiNCe0JLQkNCdINCU0KAg0JvQldCa0JDQoAor0JDQktCg0JDQnNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JDQktCg0JDQnNCe0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCi0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCe0JzQmNCgCivQkNCS0KDQkNCc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkNCS0KDQkNCc0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkNCS0KDQkNCc0J7QktCY0Isg0KDQkNCi0JrQngor0JDQktCg0JDQnNCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQodCi0JDQndCa0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQotCV0J7QlNCe0KAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQotCe0JzQkAor0JDQktCg0JDQnNCe0JLQmNCLINCS0JXQidCa0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQktCV0KDQkAor0JDQktCg0JDQnNCe0JLQmNCLINCS0JXQoNCQCivQkNCS0KDQkNCc0J7QktCY0Isg0JLQldCg0JAKK9CQ0JLQoNCQ0JzQntCS0KHQmtCYINCR0J7QoNCY0KEKK9CQ0JfQm9CV0J0g0JHQntCg0JjQodCb0JDQkgor0JHQkNCn0JAg0KjQkNCd0JTQntCgCivQkdCQ0KfQkCDQm9CQ0JTQmNCh0JvQkNCSCivQkdCQ0KfQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0JHQkNCn0JjQiyDQp9CV0JTQntCc0JjQoCDQn9Cg0J7QpNCV0KHQntCgCivQkdCQ0KfQmNCLINCW0JjQktCa0J4KK9CR0JDQp9CY0Isg0ILQntCg0ILQlQor0JHQkNCn0JjQiyDQkNCd0KLQlQor0JHQkNCn0JjQiyDQkdCg0JDQndCa0JAKK9CR0JDQp9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCQ0KfQmNCLINCI0J7QktCQ0J0KK9CR0JDQp9CY0Isg0JrQkNCg0JAKK9CR0JDQp9CY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0KfQmNCLINCc0JjQm9CQ0J0g0JTQoCDQktCV0KLQldCg0JjQndCVCivQkdCQ0KfQmNCLINCc0JjQm9CY0KbQkAor0JHQkNCn0JjQiyDQnNCY0KDQmtCeCivQkdCQ0KfQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCn0JjQiyDQodCc0JjQidCQ0J3QkAor0JHQkNCn0JrQkNCb0JjQiyDQgtCe0KDQgtCVCivQkdCQ0KfQmtCQ0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0KfQmtCQ0JvQmNCLINCU0J7QkdCg0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0JTQntCR0KDQmNCm0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0IjQntCS0JDQnQor0JHQkNCn0JrQkNCb0JjQiyDQm9CQ0JfQkNCgCivQkdCQ0KfQmtCQ0JvQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCn0JrQkNCb0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCn0JrQkNCb0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KfQmtCQ0JvQmNCLINCc0JjQm9CQCivQkdCQ0KfQmtCQ0JvQmNCLINCd0J7QktCQ0JoKK9CR0JDQp9Ca0J4g0JzQmNCb0JDQndCQCivQkdCQ0KfQmtCeINCf0JXQotCQ0KAKK9CR0JDQp9Cb0JjQiyDQgtCe0KDQgtCVCivQkdCQ0KfQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0KfQm9CY0Isg0JvQkNCX0JDQoAor0JHQkNCn0JvQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCn0JvQmNCI0JAg0IjQntCh0JjQnwor0JHQkNCn0JvQmNCI0JAg0JzQkNCg0JrQngor0JHQkNCn0JvQmNCI0JAg0KDQo9CW0JjQptCQCivQkdCQ0KfQm9CY0IjQkCDQodCb0JDQktCY0KbQkAor0JHQkNCn0KPQm9Ce0JIg0KHQotCV0JLQkNCdCivQkdCQ0KfQktCQ0J3QmNCdINCW0JjQktCe0IjQmNCdCivQkdCQ0KfQktCQ0J3QodCa0Jgg0JHQntCo0JrQngor0JHQkNCn0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnSDQlNCgINCY0J3Qkwor0JHQkNCoINCI0KPQm9CY0JAKK9CR0JDQqNCQINCU0KPQqNCQ0J0KK9CR0JDQqNCQINCI0J7QktCQ0J0KK9CR0JDQqNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCQ0KjQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0JHQkNCo0JjQp9CV0JLQmNCLINCS0J7QiNCY0J0g0JTQoAor0JHQkNCo0JjQp9CV0JLQmNCLINCS0J7QiNCY0J0KK9CR0JDQqNCY0Isg0JbQkNCg0JrQngor0JHQkNCo0JjQiyDQgtCj0KDQngor0JHQkNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCo0JjQiyDQkdCY0InQkNCd0JAKK9CR0JDQqNCY0Isg0JHQntCW0J4KK9CR0JDQqNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQkNCo0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0JTQo9Co0JDQnQor0JHQkNCo0JjQiyDQlNCj0KjQkNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0JTQo9Co0JDQnQor0JHQkNCo0JjQiyDQpNCg0JDQitCeCivQkdCQ0KjQmNCLINCT0JDQktCg0JAKK9CR0JDQqNCY0Isg0JPQoNCj0IjQmNCm0JAKK9CR0JDQqNCY0Isg0JjQlNCg0JjQlwor0JHQkNCo0JjQiyDQmNCb0JjQiNCQCivQkdCQ0KjQmNCLINCI0JDQndCa0J4KK9CR0JDQqNCY0Isg0IjQldCb0JAKK9CR0JDQqNCY0Isg0IjQldCb0JXQndCQCivQkdCQ0KjQmNCLINCI0J7QktCQ0J0KK9CR0JDQqNCY0Isg0IjQntCS0JDQnQor0JHQkNCo0JjQiyDQiNCj0KDQlQor0JHQkNCo0JjQiyDQm9CQ0JfQkNCgCivQkdCQ0KjQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCo0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQqNCY0Isg0JvQo9Ca0JAKK9CR0JDQqNCY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQqNCY0Isg0JzQmNCb0JDQnQor0JHQkNCo0JjQiyDQnNCY0JvQkAor0JHQkNCo0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JDQqNCY0Isg0JzQmNCb0KPQotCY0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCQ0KjQmNCLINCc0JjQotCQCivQkdCQ0KjQmNCLINCd0JXQlNCV0InQmtCQCivQkdCQ0KjQmNCLINCd0JXQodCi0J7QoAor0JHQkNCo0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQqNCY0Isg0J/QkNCS0JvQlQor0JHQkNCo0JjQiyDQn9CV0KLQkNCgCivQkdCQ0KjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQqNCY0Isg0KHQkNCS0JAKK9CR0JDQqNCY0Isg0KHQkNCS0JAKK9CR0JDQqNCY0Isg0KHQmNCc0JrQkAor0JHQkNCo0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQkNCo0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQkNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQqNCY0Isg0KHQntCK0JAKK9CR0JDQqNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CR0JDQqNCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQqNCY0Isg0JLQldCg0JAKK9CR0JDQqNCY0IvQldCS0JjQiyDQlNCV0KHQkAor0JHQkNCo0JjQptCQINCc0JjQm9CQ0J0KK9CR0JDQqNCY0KbQkCDQoNCQ0J3QmtCeCivQkdCQ0KjQmNCm0JAg0KDQmNCh0KLQngor0JHQkNCo0JrQkNCb0J4g0JzQkNCg0JrQngor0JHQkNCo0J3QldCmINCY0JLQkNCdCivQkdCQ0KjQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JDQqNCi0JjQiyDQnNCY0JvQmtCQCivQkdCQ0KjQotCY0Isg0J/QldCi0JDQoAor0JHQkNCo0KLQntCS0JDQndCe0JIg0JTQkNCd0JjQptCQCivQkdCQ0KjQotCe0JLQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9CR0JDQqNCi0J7QktCQ0J3QntCS0JjQiyDQmNCS0JDQnQor0JHQkNCo0KLQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JDQi9CQ0J0g0JTQoNCQ0JPQntCc0JjQoAor0JHQkNCL0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQi9CQ0J3QntCSINCh0KLQkNCd0JrQngor0JHQkNCL0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCQ0IvQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQkdCQ0IvQkNCd0J7QktCY0Isg0IjQo9Cm0JAKK9CR0JDQi9CQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IvQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JHQkNCL0JDQndCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0JHQkNCL0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JHQkNCL0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JHQkNCL0JjQiyDQidCY0InQkNCd0JAKK9CR0JDQi9CY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQi9CY0J3QkCDQnNCb0JDQlNCV0J0KK9CR0JDQi9CY0J3QkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQltCQ0J3Qp9CY0Jog0JHQldCb0JAKK9CR0JDQltCQ0J3QotCY0Jog0JzQkNCg0JAKK9CR0JDQltCU0JDQoCDQkdCg0KPQndCeCivQkdCQ0JbQlNCQ0KAg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQltCV0J3QntCSINCQ0J3Qk9CV0JvQmNCd0JAKK9CR0JDQgtCYINCo0JDQndCU0J7QoAor0JHQkNCC0Jgt0KDQmNCR0JDQoCDQoNCV0J3QkNCi0JAKK9CR0JDQgtCY0J0g0KHQnNCY0InQmtCQCivQkdCQ0JHQkCDQmNCb0J7QndCa0JAKK9CR0JDQkdCQINCI0JDQndCe0KgKK9CR0JDQkdCQINCI0J7QnQor0JHQkNCR0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQkdCQ0KDQmNCa0JjQnSDQnNCQ0KDQmtCeCivQkdCQ0JHQldCmINCX0J7QoNCQ0J0KK9CR0JDQkdCYINCY0JLQkNCdCivQkdCQ0JHQmNCLINCW0JDQoNCa0J4KK9CR0JDQkdCY0Isg0JbQldCJ0JrQkAor0JHQkNCR0JjQiyDQltCY0JLQkNCdCivQkdCQ0JHQmNCLINCW0JjQktCQ0J0KK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCe0KDQgtCVCivQkdCQ0JHQmNCLINCC0J7QoNCC0JUKK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCe0KDQgtCVCivQkdCQ0JHQmNCLINCC0KPQoNCC0JjQptCQCivQkdCQ0JHQmNCLINCC0KPQoNCQCivQkdCQ0JHQmNCLINCC0KPQoNCQCivQkdCQ0JHQmNCLINCC0KPQoNCeCivQkdCQ0JHQmNCLINCQ0KbQkAor0JHQkNCR0JjQiyDQkNCY0JTQkAor0JHQkNCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQkNCR0JjQiyDQkNCb0JXQmtCh0JAKK9CR0JDQkdCY0Isg0JDQm9Ca0JAKK9CR0JDQkdCY0Isg0JDQndCQCivQkdCQ0JHQmNCLINCQ0J3QkAor0JHQkNCR0JjQiyDQkNCd0JAKK9CR0JDQkdCY0Isg0JHQmNCJ0JDQndCQCivQkdCQ0JHQmNCLINCR0J7QltCY0KbQkAor0JHQkNCR0JjQiyDQkdCe0JbQmNCU0JDQoNCa0JAKK9CR0JDQkdCY0Isg0JHQntCT0JTQkNCdCivQkdCQ0JHQmNCLINCR0J7QiNCQCivQkdCQ0JHQmNCLINCR0J7QoNCY0KjQkAor0JHQkNCR0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9CR0JDQkdCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQkNCR0JjQiyDQkdCg0JDQndCa0J4KK9CR0JDQkdCY0Isg0KbQktCY0IjQngor0JHQkNCR0JjQiyDQlNCQ0J3QlQor0JHQkNCR0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQkNCR0JjQiyDQlNCQ0JLQmNCUCivQkdCQ0JHQmNCLINCU0KDQkNCo0JrQngor0JHQkNCR0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JHQkNCR0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQkdCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQngor0JHQkNCR0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQkNCR0JjQiyDQlNCj0KjQkNCdCivQkdCQ0JHQmNCLINCU0KPQqNCQ0J0KK9CR0JDQkdCY0Isg0JTQo9Co0JDQnQor0JHQkNCR0JjQiyDQlNCj0KjQkNCdCivQkdCQ0JHQmNCLINCU0KPQqNCY0KbQkAor0JHQkNCR0JjQiyDQk9Ce0IjQmtCeCivQkdCQ0JHQmNCLINCT0J7QiNCa0J4KK9CR0JDQkdCY0Isg0JPQntCg0JDQnQor0JHQkNCR0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQkNCR0JjQiyDQk9Ce0KDQmNCm0JAKK9CR0JDQkdCY0Isg0JPQntCh0J/QkNCS0JAKK9CR0JDQkdCY0Isg0KXQldCb0JXQndCQCivQkdCQ0JHQmNCLINCY0JvQmNCI0JAKK9CR0JDQkdCY0Isg0JjQm9CY0IjQkAor0JHQkNCR0JjQiyDQmNCb0JjQiNCQCivQkdCQ0JHQmNCLINCY0JvQmNCd0JrQkAor0JHQkNCR0JjQiyDQmNCS0JDQnQor0JHQkNCR0JjQiyDQmNCS0JDQnQor0JHQkNCR0JjQiyDQmNCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCI0J7QktCQ0J0KK9CR0JDQkdCY0Isg0IjQntCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCI0J7QktCQ0J0KK9CR0JDQkdCY0Isg0JrQkNCi0JjQptCQCivQkdCQ0JHQmNCLINCa0JDQl9CY0JzQmNCgCivQkdCQ0JHQmNCLLdCa0J7Qn9CJ0JDQnSDQoNCe0JbQkAor0JHQkNCR0JjQiyDQmtCe0KHQkAor0JHQkNCR0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQkdCQ0JHQmNCLINCa0J7QodCi0JAKK9CR0JDQkdCY0Isg0JrQoNCh0KLQkAor0JHQkNCR0JjQiyDQm9CQ0JfQngor0JHQkNCR0JjQiyDQm9CQ0JfQngor0JHQkNCR0JjQiyDQm9CV0J7QndCY0JQKK9CR0JDQkdCY0Isg0InQmNCJ0JDQndCQCivQkdCQ0JHQmNCLINCJ0JjQidCQ0J3QkAor0JHQkNCR0JjQiyDQidCY0InQkNCd0JAKK9CR0JDQkdCY0Isg0InQo9CR0JjQqNCQCivQkdCQ0JHQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCR0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCR0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCR0JjQiyDQm9Cj0JrQkAor0JHQkNCR0JjQiyDQnNCQ0IjQkAor0JHQkNCR0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQkdCQ0JHQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCR0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQkNCR0JjQiyDQnNCQ0KDQmtCeCivQkdCQ0JHQmNCLINCc0JDQotCeCivQkdCQ0JHQmNCLINCc0JjQiNCeCivQkdCQ0JHQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JXQotCQCivQkdCQ0JHQmNCLINCc0JjQm9CV0JLQkAor0JHQkNCR0JjQiyDQnNCY0JvQldCS0JAKK9CR0JDQkdCY0Isg0JzQmNCb0JjQiwor0JHQkNCR0JjQiyDQnNCY0JvQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0JHQkNCR0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQkNCR0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCR0JjQiyDQnNCY0JvQntCh0JDQkgor0JHQkNCR0JjQiyDQnNCY0KDQkAor0JHQkNCR0JjQiyDQnNCY0KDQkAor0JHQkNCR0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQkNCR0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCR0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCR0JjQiyDQnNCe0JzQmNCgCivQkdCQ0JHQmNCLLdCc0KDQmtCo0JjQiyDQiNCj0JvQmtCQCivQkdCQ0JHQmNCLINCc0KPQoNCY0JcKK9CR0JDQkdCY0Isg0J3QkNCU0JAKK9CR0JDQkdCY0Isg0J3QkNCU0JAKK9CR0JDQkdCY0Isg0J3QkNCU0JAKK9CR0JDQkdCY0Isg0J3QkNCi0JDQqNCQCivQkdCQ0JHQmNCLINCd0JXQlNCV0InQmtCeCivQkdCQ0JHQmNCLINCd0JXQndCQ0JQKK9CR0JDQkdCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0JHQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCR0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQkdCY0Isg0J7Qm9CT0JjQptCQCivQkdCQ0JHQmNCLINCe0KHQotCe0IjQkAor0JHQkNCR0JjQiyDQntCh0KLQntCI0JAKK9CR0JDQkdCY0Isg0J/QldCg0KHQkAor0JHQkNCR0JjQiyDQn9CV0KDQodCY0JTQkAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0JXQotCQ0KAKK9CR0JDQkdCY0Isg0J/QldCi0JDQoAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0JXQotCQ0KAKK9CR0JDQkdCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0JDQkdCY0Isg0KDQkNCU0JXQndCa0J4KK9CR0JDQkdCY0Isg0KDQkNCU0JUKK9CR0JDQkdCY0Isg0KDQkNCU0JUKK9CR0JDQkdCY0Isg0KDQkNCU0JjQndCa0JAKK9CR0JDQkdCY0Isg0KDQkNCU0JjQodCQ0JIKK9CR0JDQkdCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JHQkNCR0JjQiyDQoNCQ0JTQntCI0JUKK9CR0JDQkdCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0JDQkdCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0JDQkdCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JDQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQkNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQkNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQkNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCQ0JHQmNCLINCg0JDQiNCa0J4KK9CR0JDQkdCY0Isg0KDQkNCd0JrQngor0JHQkNCR0JjQiyDQodCQ0KjQkAor0JHQkNCR0JjQiyDQodCQ0JLQngor0JHQkNCR0JjQiyDQodCb0JDQlNCVCivQkdCQ0JHQmNCLINCh0JvQkNCS0JjQptCQCivQkdCQ0JHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQkdCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCR0JjQiyDQodCc0JjQidCa0JAKK9CR0JDQkdCY0Isg0KHQnNCY0InQmtCQCivQkdCQ0JHQmNCLINCh0J3QldCW0JDQndCQCivQkdCQ0JHQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCR0JjQiyDQodCi0JDQmtCQCivQkdCQ0JHQmNCLINCh0KLQkNCd0JrQngor0JHQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JHQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0J4KK9CR0JDQkdCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCR0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCQ0JHQmNCLINCi0J7QnNCeCivQkdCQ0JHQmNCLINCS0JDQodCQCivQkdCQ0JHQmNCLINCS0JDQodCQCivQkdCQ0JHQmNCLINCS0JXQoNCQCivQkdCQ0JHQmNCLINCS0JXQoNCY0KbQkAor0JHQkNCR0JjQiyDQktCV0KHQndCQCivQkdCQ0JHQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CR0JDQkdCY0Isg0JLQo9CI0J4KK9CR0JDQkdCY0Isg0JLQo9Ca0JzQkNCdCivQkdCQ0JHQmNCLINCX0JDQk9Ce0KDQmtCQCivQkdCQ0JHQmNCLINCX0JTQoNCQ0JLQmtCeCivQkdCQ0JHQmNCLINCX0J7QoNCQ0J0KK9CR0JDQkdCY0Isg0JfQntCg0JDQnQor0JHQkNCR0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0JHQmNCI0JDQndCe0JLQmNCLINCI0KPQm9Ca0JAKK9CR0JDQkdCY0JvQntCdINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQkdCY0JvQntCdINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQkdCY0J0g0ILQntCg0ILQlQor0JHQkNCR0JjQnSDQkdCe0JPQlNCQ0J0KK9CR0JDQkdCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0JHQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQkNCR0JjQnSDQlNCj0KjQkNCdCivQkdCQ0JHQmNCdINCI0J7QktCQ0J0KK9CR0JDQkdCY0J0g0JrQkNCi0JDQoNCY0J3QkAor0JHQkNCR0JjQnSDQmtCg0JjQodCi0JjQndCQCivQkdCQ0JHQmNCdINCb0JDQl9CQ0KAKK9CR0JDQkdCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0JDQkdCY0J0g0JzQkNCg0JjQiNCQCivQkdCQ0JHQmNCdINCc0JDQoNCY0J0KK9CR0JDQkdCY0J0g0JzQmNCl0JDQiNCb0J4KK9CR0JDQkdCY0J0g0JzQmNCb0JDQnQor0JHQkNCR0JjQnSDQnNCY0JvQldCd0JAKK9CR0JDQkdCY0J0g0JzQmNCb0JXQndCa0J4g0JTQoCDQmNCd0JMKK9CR0JDQkdCY0J0g0JzQmNCb0JXQndCa0J4KK9CR0JDQkdCY0J0g0JzQmNCe0JTQoNCQ0JMKK9CR0JDQkdCY0J0g0JzQmNCg0IjQkNCd0JAKK9CR0JDQkdCY0J0g0JzQmNCg0IjQkNCd0JAKK9CR0JDQkdCY0J0g0J3QkNCU0JAKK9CR0JDQkdCY0J0g0J3QmNCa0J7Qm9CQCivQkdCQ0JHQmNCdINCf0JXQotCQ0KAKK9CR0JDQkdCY0J0g0KDQkNCU0J7QiNCa0JAKK9CR0JDQkdCY0J0g0KHQkNCS0JAKK9CR0JDQkdCY0J0g0JfQntCg0JDQnQor0JHQkNCR0IjQkNCaINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQkdCa0JAg0IjQkNCdCivQkdCQ0JHQntCg0JDQpiDQlNCg0JDQk9CQ0J0KK9CR0JDQkdCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCQ0JHQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQkdCe0JLQmNCLINCI0JDQodCc0JjQndCQCivQkdCQ0JHQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CR0JDQkdCe0JLQmNCLINCI0J7QktCQ0J0KK9CR0JDQkdCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCQ0JHQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JHQkNCR0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CR0JDQkdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCQ0JHQntCS0JjQiyDQodCY0J3QmNCo0JAg0JTQoAor0JHQkNCR0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCR0J7QktCY0Isg0JfQntCg0JAKK9CR0JDQptCa0J7QktCY0Isg0JTQntCR0KDQntCh0JvQkNCSCivQkdCQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQkNCm0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQptCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CR0JDQptCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQptCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CR0JDQptCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JHQkNCU0JAg0JjQqNCi0JLQkNCdCivQkdCQ0JTQkNCb0JjQiyDQnNCQ0IjQlNCQCivQkdCQ0JTQkNCK0JDQpiDQiNCV0JvQldCd0JAKK9CR0JDQlNCK0JDQoCDQnNCY0JvQkNCdCivQkdCQ0JTQitCQ0KAg0JzQmNCb0JjQktCe0IjQlQor0JHQkNCU0IrQkNCgINCS0JvQkNCU0J4KK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkdCQ0JTQitCQ0KDQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQkNCU0IrQkNCg0JXQktCY0Isg0JzQmNCb0JDQndCQCivQkdCQ0JTQitCQ0KDQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQkNCU0IrQkNCg0JXQktCY0Isg0KDQkNCU0J7QqAor0JHQkNCU0IrQkNCg0JXQktCY0Isg0KHQotCQ0J3QkAor0JHQkNCU0J7QktCY0J3QkNCmINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQlNCe0JLQmNCd0JDQpiDQndCY0JrQntCb0JAKK9CR0JDQlNCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCU0KDQidCY0KbQkCDQlNCj0KjQmNCm0JAKK9CR0JDQlNCg0InQmNCm0JAg0JPQkNCS0KDQkAor0JHQkNCU0KDQidCY0KbQkCDQm9CQ0JfQkNCgCivQkdCQ0JTQoNCJ0JjQptCQINCc0JvQkNCU0JXQnQor0JHQkNCU0KDQidCY0KbQkCDQntCb0JPQkAor0JHQkNCU0KDQidCY0KbQkCDQn9CV0KLQkNCgCivQkdCQ0JTQoNCJ0JjQptCQINCg0JDQlNCe0IjQmtCQCivQkdCQ0KTQo9ChINCb0JDQodCb0J4KK9CR0JDQk9CYINCC0KPQm9CQCivQkdCQ0JPQmC3QkdCV0J3QmtCe0JLQmNCLINCf0JDQmwor0JHQkNCT0Jgg0KTQldCg0JXQndCmCivQkdCQ0JPQmCDQmNCo0KLQktCQ0J0KK9CR0JDQk9CYINCI0JDQndCe0KgKK9CR0JDQk9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JDQk9CY0Iog0JvQkNCX0JDQoAor0JHQkNCT0JjQiiDQm9CV0J/QntCh0JDQktCQCivQkdCQ0JPQm9CQ0JLQkCDQnNCY0JvQkNCdCivQkdCQ0JPQntCK0JAg0IjQkNCdCivQkdCQ0JPQntCK0JAg0JzQkNCg0JjQiNCQCivQkdCQ0JPQntCK0JAg0J3QkNCU0JAKK9CR0JDQpSDQldCg0J3QkAor0JHQkNCl0JzQkNCdINCc0JDQoNCa0J4KK9CR0JDQpdCi0JjQiNCQ0KDQldCS0JjQiyDQiNCV0JvQkAor0JHQkNCl0KPQnSDQndCY0JrQntCb0JAKK9CR0JDQpdCj0J0g0J/QldCi0JDQoAor0JHQkNCY0Isg0JzQmNCg0JrQngor0JHQkNCY0Isg0KHQotCQ0J3QkAor0JHQkNCI0KfQldCi0JAg0JzQntCc0KfQmNCb0J4KK9CR0JDQiNCn0JXQotCQINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQiNCn0JXQotCY0Isg0JHQntCT0JTQkNCdINCU0KAKK9CR0JDQiNCn0JXQotCY0Isg0InQo9CR0JjQptCQCivQkdCQ0IjQp9CV0KLQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCI0KfQldCi0JjQiyDQnNCQ0KDQmtCeCivQkdCQ0IjQp9CV0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCQ0IjQp9CV0KLQmNCLINCc0JjQoNCa0J4KK9CR0JDQiNCn0JXQotCY0Isg0J/QkNCS0JvQlQor0JHQkNCI0KfQldCi0JjQiyDQn9CV0KLQkNCgCivQkdCQ0IjQp9CV0JIg0IjQntCS0JDQnQor0JHQkNCI0KfQldCSINCc0JjQoNCI0JDQndCQCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0IjQntCS0JDQnQor0JHQkNCI0KjQkNCd0KHQmtCYINCJ0JjQidCQ0J3QkAor0JHQkNCI0KjQkNCd0KHQmtCYINCc0JjQm9CQ0JTQmNCdCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CR0JDQiNCo0JDQndCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0JHQkNCI0KjQkNCd0KHQmtCYINCh0JDQktCQCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0KHQkNCS0JAKK9CR0JDQiNCo0JDQndCh0JrQmCDQodCc0JjQidCQCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0JHQkNCI0KjQldCSINCU0KDQkNCT0J7QnNCY0KAKK9CR0JDQiNCo0JXQkiDQmNCb0JjQiNCQCivQkdCQ0IjQqNCV0JIg0JzQmNCb0JjQptCQCivQkdCQ0IjQqNCV0JIg0KHQotCV0JLQkNCdCivQkdCQ0IjQqNCV0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCQ0IjQqNCY0Isg0JbQkNCg0JrQngor0JHQkNCI0KjQmNCLINCU0KDQkNCT0JDQnQor0JHQkNCI0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCQINCC0J7QoNCC0JUKK9CR0JDQiNCQINCh0KLQldCS0JDQnQor0JHQkNCI0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQkdCQ0IjQkNCmINCV0JzQmNCb0JjQiNCQINCU0KAKK9CR0JDQiNCQ0KYg0JjQodCQ0JoKK9CR0JDQiNCQ0KYg0InQo9CR0JjQptCQCivQkdCQ0IjQkNCmINCc0JjQm9CQ0J0KK9CR0JDQiNCQ0KYg0JzQmNCb0J7QqAor0JHQkNCI0JDQpiDQnNCY0JvQo9Ci0JjQnQor0JHQkNCI0JDQpiDQodCS0JXQotCb0JDQndCQCivQkdCQ0IjQkNCmINCS0JXQoNCQCivQkdCQ0IjQkNCT0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0JDQiNCQ0JPQmNCLINCc0JjQm9CV0J3QkAor0JHQkNCI0JDQk9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0JDQiNCQ0JPQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCQ0IjQkNCT0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCI0JDQk9CY0Isg0J/QldCi0JDQoAor0JHQkNCI0JDQk9CY0Isg0KDQkNCU0JAKK9CR0JDQiNCQ0JPQmNCLINCg0JDQlNCVCivQkdCQ0IjQkNCT0JjQiyDQodCQ0JLQngor0JHQkNCI0JDQk9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQkNCI0JDQk9CY0Isg0KLQkNCc0JDQoNCQCivQkdCQ0IjQkNCa0JjQiyDQnNCQ0KDQkAor0JHQkNCI0JDQm9CeINCI0J7QktCQ0J3QmtCQCivQkdCQ0IjQkNCb0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkdCQ0IjQkNCb0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCQ0IjQkNCiINCc0JjQm9Ce0KDQkNCUCivQkdCQ0IjQkNCiINCc0JjQoNCa0J4KK9CR0JDQiNCQ0KIg0JzQmNCg0JrQngor0JHQkNCI0JDQoiDQndCV0JTQldCJ0JrQngor0JHQkNCI0JDQoiDQndCY0JrQntCb0JAKK9CR0JDQiNCQ0KIg0KDQkNCU0J7QktCQ0J0KK9CR0JDQiNCQ0KIg0KLQoNCY0KTQo9CdCivQkdCQ0IjQkNCiINCS0JXQm9CY0JzQmNCgCivQkdCQ0IjQkNCX0JXQoiDQiNCV0JLQk9CV0J3QmNCI0JAKK9CR0JDQiNCQ0JfQldCiINCi0J7QlNCe0KAKK9CR0JDQiNCQ0JfQldCiINCS0JXQoNCQINCU0JjQn9CbINCY0J3Qkwor0JHQkNCI0JDQl9CV0KLQntCSINCU0KDQkNCT0JDQnQor0JHQkNCI0JDQl9CV0KLQntCSINCU0KDQkNCT0JDQnQor0JHQkNCI0JDQl9CV0KLQntCSINCg0JDQlNCY0JLQntCICivQkdCQ0IjQkNCX0JjQoiDQnNCY0JvQkNCdCivQkdCQ0IjQkdCQ0KDQkNCaINCY0JLQkNCdCivQkdCQ0IjQk9CeINCX0J7Qm9Ci0JDQnQor0JHQkNCI0Jgg0JDQoNCQ0J3QmtCQCivQkdCQ0IjQmC3QpdCg0JjQkdCQ0KAg0IjQo9Cb0JjQiNCQCivQkdCQ0IjQmCDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KfQldCU0J7QnNCY0KAKK9CR0JDQiNCY0Isg0JbQkNCg0JrQngor0JHQkNCI0JjQiyDQltCY0JrQkAor0JHQkNCI0JjQiyDQltCY0JLQmtCeCivQkdCQ0IjQmNCLINCW0JjQktCe0IjQmNCdCivQkdCQ0IjQmNCLINCC0J7QoNCC0JUg0JTQoAor0JHQkNCI0JjQiyDQgtCj0KDQkAor0JHQkNCI0JjQiyDQgtCj0KDQngor0JHQkNCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCI0JjQiyDQkdCe0KjQmtCeCivQkdCQ0IjQmNCLINCR0J7QltCY0KbQkAor0JHQkNCI0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0JDQiNCY0Isg0JHQntCT0J7QidCj0JEKK9CR0JDQiNCY0Isg0JHQntCI0JrQkAor0JHQkNCI0JjQiyDQkdCe0KDQkAor0JHQkNCI0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkdCQ0IjQmNCLINCR0J7QodCY0InQmtCQCivQkdCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQkdCQ0IjQmNCLINCU0JDQndCY0KbQkAor0JHQkNCI0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JDQiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JrQngor0JHQkNCI0JjQiyDQk9Ce0IjQmtCeCivQkdCQ0IjQmNCLINCT0J7QoNCU0JDQndCQCivQkdCQ0IjQmNCLINCY0JvQmNCI0JAKK9CR0JDQiNCY0Isg0JjQm9CY0J3QmtCQCivQkdCQ0IjQmNCLINCY0JvQntCd0JAKK9CR0JDQiNCY0Isg0IjQkNCT0J7QqAor0JHQkNCI0JjQiyDQiNCQ0J3QmtCeCivQkdCQ0IjQmNCLINCI0JDQndCa0J4KK9CR0JDQiNCY0Isg0IjQldCb0JjQptCQCivQkdCQ0IjQmNCLINCI0J7QktCQ0J0KK9CR0JDQiNCY0Isg0IjQntCS0JDQnQor0JHQkNCI0JjQiyDQiNCe0JLQkNCdCivQkdCQ0IjQmNCLINCI0J7QktCY0KbQkAor0JHQkNCI0JjQiyDQmtCg0KHQotCQCivQkdCQ0IjQmNCLINCb0JDQl9CQ0KAKK9CR0JDQiNCY0Isg0JvQo9Ca0JAKK9CR0JDQiNCY0Isg0JzQkNCg0JAKK9CR0JDQiNCY0Isg0JzQkNCg0JAKK9CR0JDQiNCY0Isg0JzQkNCg0JjQptCQCivQkdCQ0IjQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCY0Isg0JzQldCb0JDQndCY0IjQkAor0JHQkNCI0JjQiyDQnNCY0IvQngor0JHQkNCI0JjQiyDQnNCY0KXQkNCI0JvQniDQlNCgCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0g0JTQoCDQn9Cg0J7QpAor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCQ0IjQmNCLINCc0JjQm9CVCivQkdCQ0IjQmNCLINCc0JjQm9CY0KbQkAor0JHQkNCI0JjQiyDQnNCY0JvQmtCQCivQkdCQ0IjQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCQ0IjQmNCLINCc0JjQntCU0KDQkNCTCivQkdCQ0IjQmNCLINCc0JjQoNCa0J4KK9CR0JDQiNCY0Isg0JzQmNCg0JrQngor0JHQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCc0JjQotCQ0KAKK9CR0JDQiNCY0Isg0JzQmNCi0JDQoAor0JHQkNCI0JjQiyDQnNCY0KLQkAor0JHQkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9CR0JDQiNCY0Isg0JzQm9CQ0JTQldCdCivQkdCQ0IjQmNCLINCc0JvQkNCU0JXQnQor0JHQkNCI0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCI0JjQiyDQndCQ0JTQkAor0JHQkNCI0JjQiyDQndCQ0JTQkAor0JHQkNCI0JjQiyDQndCQ0KLQkNCo0JAKK9CR0JDQiNCY0Isg0J3QldCC0J4KK9CR0JDQiNCY0Isg0J3QldCS0JXQndCQCivQkdCQ0IjQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQiNCY0Isg0J/QldCg0JAKK9CR0JDQiNCY0Isg0J/QldCg0J4KK9CR0JDQiNCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0JDQiNCY0Isg0J/QldCi0JDQoAor0JHQkNCI0JjQiyDQn9CV0KLQkNCgCivQkdCQ0IjQmNCLINCg0JDQlNCVCivQkdCQ0IjQmNCLINCg0JDQlNCVCivQkdCQ0IjQmNCLINCg0JDQlNCVCivQkdCQ0IjQmNCLINCg0JDQlNCY0JLQntCICivQkdCQ0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQkdCQ0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0KHQkNCS0JAKK9CR0JDQiNCY0Isg0KHQkNCS0J4KK9CR0JDQiNCY0Isg0KHQmNCc0J4KK9CR0JDQiNCY0Isg0KHQmNCd0JjQqNCQCivQkdCQ0IjQmNCLINCh0JvQkNCS0JrQngor0JHQkNCI0JjQiyDQodCb0JDQktCa0J4KK9CR0JDQiNCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0JDQiNCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0JDQiNCY0Isg0KHQntCk0JjQiNCQCivQkdCQ0IjQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCI0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQiNCY0Isg0KHQntCK0JAKK9CR0JDQiNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CR0JDQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCI0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCQ0IjQmNCLINCi0J7QlNCe0KAKK9CR0JDQiNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCI0JjQiy3QotCj0KDQmNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQkdCQ0IjQmNCLINCS0JDQodCQCivQkdCQ0IjQmNCLINCS0JDQodCQCivQkdCQ0IjQmNCLINCS0JXQoNCe0J3QkAor0JHQkNCI0JjQiyDQktCV0KHQldCb0JjQnQor0JHQkNCI0JjQiyDQktCY0JTQkAor0JHQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQkNCI0JjQiyDQl9Ce0KDQkNCd0JrQkAor0JHQkNCI0JjQiyDQl9Ce0KDQkNCdCivQkdCQ0IjQmNCLINCX0J7QoNCQ0J0KK9CR0JDQiNCY0Isg0JfQntCg0JDQnQor0JHQkNCI0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0JDQiNCY0JvQniDQlNCg0JDQk9Ce0JzQmNCgCivQkdCQ0IjQmNCb0J4g0JTQoNCQ0JPQntCc0JjQoAor0JHQkNCI0JjQm9CeINCU0KPQqNCQ0J0KK9CR0JDQiNCY0JvQniDQn9CV0KDQngor0JHQkNCI0JjQm9CeINCS0JjQlNCe0KHQkNCS0JAKK9CR0JDQiNCY0JvQntCSINCJ0JjQidCQ0J3QkAor0JHQkNCI0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQkdCQ0IjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQnSDQk9CQ0JLQoNCY0JvQngor0JHQkNCI0JjQnSDQmNCS0JDQnQor0JHQkNCI0JjQnSDQmtCQ0IvQkAor0JHQkNCI0JjQnSDQidCj0JHQmNCm0JAKK9CR0JDQiNCY0J0g0JzQmNCb0JDQndCa0JAKK9CR0JDQiNCY0J0g0J3QkNCU0JAKK9CR0JDQiNCY0J0g0KDQkNCU0J7QiNCa0JAKK9CR0JDQiNCY0J0g0KDQkNCI0JrQngor0JHQkNCI0JjQnSDQoNCj0JbQmNCm0JAKK9CR0JDQiNCY0J0g0KHQkNCS0JAKK9CR0JDQiNCY0J0g0KHQkNCS0JXQotCQCivQkdCQ0IjQmNCdINCh0KLQntCI0JDQndCa0JAKK9CR0JDQiNCa0JjQnSDQkNCd0ILQldCb0JrQngor0JHQkNCI0JrQmNCdINCh0KLQntCI0JDQnQor0JHQkNCI0JrQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CR0JDQiNCa0JjQnSDQktCV0KHQldCb0JjQnQor0JHQkNCI0JrQmNCdINCS0JjQotCe0JzQmNCgCivQkdCQ0IjQntCgINCc0JDQoNCY0IjQkAor0JHQkNCI0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCQ0IjQntCS0JjQiyDQnNCQ0KDQkAor0JHQkNCI0J7QktCY0Isg0JzQmNCi0JDQoAor0JHQkNCI0J7QktCY0Isg0JLQldCg0JAKK9CR0JDQiNCg0JDQnNCYINCo0JXQpNCa0JgKK9CR0JDQiNCg0JDQnNCYINCo0JXQpNCa0JgKK9CR0JDQiNCg0JDQnNCYINCQ0JPQoNCe0J0KK9CR0JDQiNCg0JDQnNCYINCR0JDQotCY0IjQkAor0JHQkNCI0KDQkNCc0Jgg0JPQkNCd0JgKK9CR0JDQiNCg0JDQnNCYINCh0JrQldCd0JTQldCgCivQkdCQ0IjQoNCQ0JzQntCS0JjQiyDQqNCV0KDQmNCkCivQkdCQ0IjQoNCQ0JzQntCS0JjQiyDQpdCY0JLQl9CY0IjQkAor0JHQkNCI0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQkdCQ0IjQoSDQpNCg0JDQndCmCivQkdCQ0IjQo9Cd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkdCQ0IjQo9ChINCI0J7QltCV0KQKK9CR0JDQmtCo0JAg0ILQntCg0ILQlQor0JHQkNCa0KjQkCDQmNCc0KDQlQor0JHQkNCa0KjQkCDQiNCe0JbQldCkCivQkdCQ0JrQqNCQINCb0JDQiNCe0KgKK9CR0JDQmtCo0JAg0JvQkNCI0J7QqAor0JHQkNCa0KjQkCDQm9CQ0KHQm9CeCivQkdCQ0JrQqNCQINCc0JDQk9CU0JAKK9CR0JDQmtCo0JAg0JzQmNCl0JDQiNCb0J4KK9CR0JDQmtCo0JAg0JfQntCb0KLQkNCdCivQkdCQ0JrQqNCQINCX0J7Qm9Ci0JDQnQor0JHQkNCa0JAg0JDQndCi0JDQmwor0JHQkNCa0JAg0JjQqNCi0JLQkNCdCivQkdCQ0JrQkCDQmNCo0KLQktCQ0J0KK9CR0JDQmtCQINCY0KjQotCS0JDQnQor0JHQkNCa0JAg0JjQkdCe0InQkAor0JHQkNCa0JAg0JzQmNCb0JjQptCQCivQkdCQ0JrQkNCYINCY0KDQldCdCivQkdCQ0JrQkNCIINCY0JLQkNCdCivQkdCQ0JrQkNCIINCc0JjQidCa0J4KK9CR0JDQmtCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQmtCQ0IjQmNCdINCU0J7QkdCg0JjQm9CQCivQkdCQ0JrQkNCI0JjQnSDQidCj0JHQntCc0JjQoAor0JHQkNCa0JDQiNCY0J0g0J3QldCS0JXQndCa0JAKK9CR0JDQmtCQ0IjQmNCdINCi0J7QlNCe0KAKK9CR0JDQmtCQ0JvQmNCLINCC0KPQm9CY0J3QmtCQINCh0KPQlNCY0IjQkAor0JHQkNCa0JDQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CR0JDQmtCQ0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JDQmtCQ0JvQntCS0JjQiyDQndCV0JzQkNCK0JAKK9CR0JDQmtCV0JIg0ILQntCg0ILQlQor0JHQkNCa0Jgg0JjQoNCV0J3QkAor0JHQkNCa0Jgg0J7QotCeCivQkdCQ0JrQmCDQktCV0KDQkAor0JHQkNCa0JjQqCDQp9CV0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQmtCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQkNCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JDQmtCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQmtCY0Isg0JjQktCQ0J0KK9CR0JDQmtCY0Isg0IjQntCS0JDQnQor0JHQkNCa0JjQiyDQmtCe0KHQotCQCivQkdCQ0JrQmNCLINCc0JjQiNCe0JzQmNCgCivQkdCQ0JrQmNCLINCc0JjQm9Ce0KgKK9CR0JDQmtCY0Isg0JzQmNCb0J7QqAor0JHQkNCa0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JHQkNCa0JjQiyDQnNCY0KDQkAor0JHQkNCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQmtCY0Isg0J3QkNCU0JAKK9CR0JDQmtCY0Isg0KHQmNCd0JjQqNCQCivQkdCQ0JrQmNCLINCh0J7QitCQCivQkdCQ0JrQm9CQ0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQkNCa0JzQkNCXINCb0JDQl9CeCivQkdCQ0JrQnNCQ0Jcg0InQo9CR0JDQnQor0JHQkNCa0JzQkNCXINCX0J7QoNCQ0J0KK9CR0JDQmtCeINCc0JjQqNCQCivQkdCQ0JrQntCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JDQmtCe0Kgg0ILQldCg0ILQmAor0JHQkNCa0J7QqCDQk9CQ0JHQntCgCivQkdCQ0JrQntCoINCb0JDQiNCe0KgKK9CR0JDQmtCe0Kgg0JvQkNCh0JvQngor0JHQkNCa0J7QqCDQnNCQ0KDQmNCI0JAKK9CR0JDQmtCe0Kgg0J/QkNCbCivQkdCQ0JrQntCoINCf0JXQotCQ0KAKK9CR0JDQmtCe0Kgg0KLQldCg0JXQl9CY0IjQkAor0JHQkNCa0J7QktCY0Isg0KDQkNCU0JUKK9CR0JDQmtCi0JDQmCDQodCi0JXQktCQ0J0KK9CR0JDQmtCj0J3QmNCLINCY0JLQkNCdCivQkdCQ0JrQo9Cd0JjQiyDQktCY0JTQntCh0JDQktCQCivQkdCQ0JrQktCY0Isg0JzQmNCb0JDQnQor0JHQkNCbINCa0JDQoNCb0J4KK9CR0JDQmyDQl9CS0J7QndCY0JzQmNCgCivQkdCQ0JvQp9CQ0JrQntCS0JjQiyDQktCQ0KHQngor0JHQkNCb0KjQmNCLINCg0JDQndCa0JAKK9CR0JDQm9CQINCV0KLQldCb0JrQkAor0JHQkNCb0JAg0JjQqNCi0JLQkNCdCivQkdCQ0JvQkCDQiNCQ0J3QntCoCivQkdCQ0JvQkCDQiNCj0JvQmNCI0JDQndCQCivQkdCQ0JvQkCDQiNCj0JvQmNCI0JAKK9CR0JDQm9CQINCa0JDQoNCb0J4KK9CR0JDQm9CQINCa0JDQoNCb0J4KK9CR0JDQm9CQINCa0JDQoNCe0IkKK9CR0JDQm9CQINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JDQm9CQINCc0JjQpdCQ0IkKK9CR0JDQm9CQINCi0JXQoNCV0JcKK9CR0JDQm9CQ0KjQkCDQiNCe0JbQldCkCivQkdCQ0JvQkNCLINCQ0J3QkAor0JHQkNCb0JDQiyDQlNCj0KjQkNCd0JrQkAor0JHQkNCb0JDQiyDQiNCe0JLQkNCdCivQkdCQ0JvQkNCLINCJ0KPQkdCeCivQkdCQ0JvQkNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQm9CQ0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCb0JDQiyDQodCb0JDQktCa0J4KK9CR0JDQm9CQ0Isg0KHQoNCR0JjQodCb0JDQkgor0JHQkNCb0JDQiyDQodCi0JXQktCQ0J0KK9CR0JDQm9CQ0Isg0JLQo9CI0J4KK9CR0JDQm9CQ0Isg0JfQntCg0JAKK9CR0JDQm9CQ0JYg0KjQkNCd0JTQntCgCivQkdCQ0JvQkNCWINCC0KPQm9CQCivQkdCQ0JvQkNCWINCC0KPQm9CQCivQkdCQ0JvQkNCWINCC0KPQm9CQCivQkdCQ0JvQkNCWINCC0KPQm9CQCivQkdCQ0JvQkNCWINCQ0JTQkNCb0JHQldCg0KIKK9CR0JDQm9CQ0JYg0JDQndCQCivQkdCQ0JvQkNCWINCV0KLQldCb0JrQkAor0JHQkNCb0JDQliDQk9CV0JfQkAor0JHQkNCb0JDQliDQk9CV0JfQkAor0JHQkNCb0JDQliDQmNCg0JXQndCQCivQkdCQ0JvQkNCWINCY0JLQkNCd0JrQkAor0JHQkNCb0JDQliDQiNCQ0J3QmNCa0JAKK9CR0JDQm9CQ0JYg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0JDQm9CQ0JYg0IjQntCh0JjQnwor0JHQkNCb0JDQliDQiNCe0JLQkNCdCivQkdCQ0JvQkNCWINCa0JDQotCQ0KDQmNCd0JAKK9CR0JDQm9CQ0JYg0JvQkNCh0JvQngor0JHQkNCb0JDQliDQn9CQ0JsKK9CR0JDQm9CQ0JYg0J/QkNCbCivQkdCQ0JvQkNCWLdCf0JjQoNCYINCC0JXQoNCCCivQkdCQ0JvQkNCWINCX0JjQotCQCivQkdCQ0JvQkNCW0JXQkiDQodCi0JjQn9CQ0J0KK9CR0JDQm9CQ0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQkNCb0JDQkdCQ0J0g0JHQntCo0JrQngor0JHQkNCb0JDQkdCQ0J0g0JHQoNCQ0J3QmtCeCivQkdCQ0JvQkNCR0JDQnSDQnNCY0JvQntCS0JDQnQor0JHQkNCb0JDQkdCQ0J0g0JzQmNCb0KPQotCY0J0KK9CR0JDQm9CQ0JHQkNCdINCd0JXQgtCeCivQkdCQ0JvQkNCR0JDQnSDQn9CV0KLQkNCgCivQkdCQ0JvQkNCR0JDQnSDQodCQ0JLQngor0JHQkNCb0JDQkdCQ0J0g0KHQn9Ce0JzQldCd0JrQkAor0JHQkNCb0JDQkdCQ0J0g0JLQmNCUCivQkdCQ0JvQkNCR0JDQnSDQktCj0JrQkNCo0JjQnQor0JHQkNCb0JDQkdCQ0J3QntCSINCQ0J3QkAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQkdCQ0JvQkNCR0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCQ0JvQkNCR0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JvQkNCR0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JDQm9CQ0Igg0JzQmNCl0JDQiNCb0J4KK9CR0JDQm9CQ0JvQmNCLINCP0JXQktCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQkdCQ0JvQkNCb0JjQiyDQj9CV0JLQkNCUCivQkdCQ0JvQkNCd0JXQodCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQm9CQ0KIg0JjQoNCV0J3QkAor0JHQkNCb0JDQotCe0J0g0ILQldCg0IIKK9CR0JDQm9CQ0KLQntCdINCC0JXQoNCCCivQkdCQ0JvQkNCi0J7QnSDQgtCV0KDQggor0JHQkNCb0JDQotCe0J0g0JHQldCb0JAKK9CR0JDQm9CQ0KLQntCdINCY0JzQoNCVCivQkdCQ0JvQkNCi0J7QnSDQnNCQ0JPQlNCe0JvQndCQCivQkdCQ0JvQkNCi0J7QnSDQn9CV0KLQkNCgCivQkdCQ0JvQptCQINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQm9Cm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JHQkNCb0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQm9CV0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JHQkNCb0JXQoCDQiNCe0KHQmNCfCivQkdCQ0JvQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQkNCb0JPQniDQpNCg0JDQndCm0JjQqNCa0JAKK9CR0JDQm9CYINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCQ0JvQmCDQk9CQ0JHQntCgCivQkdCQ0JvQmCDQm9CQ0KHQm9CeCivQkdCQ0JvQmNCLINCV0KHQkNCUCivQkdCQ0JvQmNCWINCY0JvQlNCQCivQkdCQ0JvQmNCWINCc0JjQpdCQ0IkKK9CR0JDQm9CY0JYg0JfQntCb0KLQkNCdCivQkdCQ0JvQmNCd0JQg0J/QkNCbCivQkdCQ0JvQmNCd0JQg0KHQmNCb0JLQmNCQCivQkdCQ0JvQmNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQkdCQ0JvQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQkdCQ0JvQmNCd0KIg0KjQkNCd0JTQntCgINCc0KAKK9CR0JDQm9CY0J3QoiDQltCY0JPQnNCj0J3QlAor0JHQkNCb0JjQndCiINCC0J7QoNCC0JUKK9CR0JDQm9CY0J3QoiDQgtCj0KDQkAor0JHQkNCb0JjQndCiINCQ0J3QlNCg0JXQiAor0JHQkNCb0JjQndCiINCU0JXQltCVCivQkdCQ0JvQmNCd0KIg0JjQqNCi0JLQkNCdCivQkdCQ0JvQmNCd0KIg0JjQm9Ce0J3QkAor0JHQkNCb0JjQndCiINCY0JzQoNCVCivQkdCQ0JvQmNCd0KIg0JjQnNCg0JUKK9CR0JDQm9CY0J3QoiDQiNCe0JbQldCkCivQkdCQ0JvQmNCd0KIg0IjQntCW0JXQpAor0JHQkNCb0JjQndCiINCI0J7QodCY0J8KK9CR0JDQm9CY0J3QoiDQiNCe0KHQmNCfCivQkdCQ0JvQmNCd0KIg0IjQntCh0JjQnwor0JHQkNCb0JjQndCiINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQm9CY0J3QoiDQmtCQ0KDQntCJCivQkdCQ0JvQmNCd0KIg0JzQkNCL0JDQqAor0JHQkNCb0JjQndCiINCc0JDQoNCT0JDQoNCV0KLQkAor0JHQkNCb0JjQndCiINCc0JDQoNCY0JAKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQmNCI0JAKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQmNCI0JAKK9CR0JDQm9CY0J3QoiDQnNCY0KXQkNCY0JvQngor0JHQkNCb0JjQndCiINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQm9CY0J3Qoi3QnNCY0KLQoNCe0JLQmNCLINCe0JvQk9CQCivQkdCQ0JvQmNCd0KIg0KDQkNCU0J7QodCb0JDQkgor0JHQkNCb0JjQndCiINCg0J7QkdCV0KDQogor0JHQkNCb0JjQndCiINCh0JvQkNCS0J7QnNCY0KAKK9CR0JDQiSDQkdCg0JDQndCa0J4KK9CR0JDQiSDQnNCY0JvQntCg0JDQlAor0JHQkNCJINCh0JDQktCeCivQkdCQ0InQkCDQmNCU0KDQmNCXCivQkdCQ0InQkNCaINCn0JXQlNCe0JzQmNCgCivQkdCQ0InQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQidCe0KjQldCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQkdCQ0InQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JHQkNCJ0J7QqNCV0JLQmNCLINCc0JjQoNCeCivQkdCQ0InQntCX0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9CR0JDQidCe0JfQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSINCU0KAKK9CR0JDQm9Ca0J7QktCe0Igg0JLQm9CQ0JTQmNCc0JjQoAor0JHQkNCb0J3QntCW0JDQnSDQndCV0JLQldCd0JrQkAor0JHQkNCb0J3QntCW0JDQnSDQodCY0JzQkAor0JHQkNCb0J4g0JPQkNCo0J/QkNCgCivQkdCQ0JvQniDQn9CV0KLQkNCgCivQkdCQ0JvQntCoINCd0KPQptCQCivQkdCQ0JvQntCoINCi0J7QlNCe0KAKK9CR0JDQm9Ce0Kgg0KLQntCU0J7QoAor0JHQkNCb0J7QkdCQ0J0g0JzQmNCb0JDQnQor0JHQkNCb0J7QkdCQ0J0g0JzQmNCb0JDQnQor0JHQkNCb0J7QkyDQqNCQ0J3QlNCe0KAKK9CR0JDQm9Ce0JMg0JbQmNCS0JrQkAor0JHQkNCb0J7QkyDQltCj0JbQkNCd0JAKK9CR0JDQm9Ce0JMg0ILQntCg0ILQlQor0JHQkNCb0J7QkyDQgtCe0KDQgtCVCivQkdCQ0JvQntCTINCC0J7QoNCC0JUKK9CR0JDQm9Ce0JMg0ILQo9Cg0JAKK9CR0JDQm9Ce0JMg0ILQo9Cg0JAKK9CR0JDQm9Ce0JMg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQm9Ce0JMg0JDQndCQCivQkdCQ0JvQntCTINCQ0J3QkAor0JHQkNCb0J7QkyDQkNCd0JAKK9CR0JDQm9Ce0JMg0JDQndCU0KDQkNCoCivQkdCQ0JvQntCTINCQ0J3QlNCg0JjQiNCQCivQkdCQ0JvQntCTINCR0JXQm9CQCivQkdCQ0JvQntCTINCR0KDQkNCd0JrQngor0JHQkNCb0J7QkyDQlNCV0JbQlQor0JHQkNCb0J7QkyDQlNCV0JbQlQor0JHQkNCb0J7QkyDQlNCg0JDQk9CQ0J0KK9CR0JDQm9Ce0JMg0JTQo9Co0JDQndCa0JAKK9CR0JDQm9Ce0JMg0KTQldCg0JXQndCmCivQkdCQ0JvQntCTINCk0KDQkNCK0JAKK9CR0JDQm9Ce0JMg0KTQoNCQ0IrQkAor0JHQkNCb0J7QkyDQpNCg0JDQitCQCivQkdCQ0JvQntCTINCY0KjQotCS0JDQnQor0JHQkNCb0J7QkyDQmNCR0J7QiNCa0JAKK9CR0JDQm9Ce0JMg0JjQnNCg0JUKK9CR0JDQm9Ce0JMg0JjQnNCg0JUKK9CR0JDQm9Ce0JMg0IjQntCW0JXQpAor0JHQkNCb0J7QkyDQiNCe0KbQkAor0JHQkNCb0J7QkyDQiNCe0JLQkNCdCivQkdCQ0JvQntCTINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQm9Ce0JMg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQkNCb0J7QkyDQmtCQ0JvQnNCQ0J0KK9CR0JDQm9Ce0JMg0JrQkNCg0J7QiQor0JHQkNCb0J7QkyDQmtCQ0KDQntCJCivQkdCQ0JvQntCTINCa0JDQotCQ0KDQmNCd0JAKK9CR0JDQm9Ce0JMg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCb0J7QkyDQm9CQ0JTQmNCh0JvQkNCSCivQkdCQ0JvQntCTINCb0JDQodCb0J4KK9CR0JDQm9Ce0JMg0JzQkNCT0JTQkAor0JHQkNCb0J7QkyDQnNCQ0KDQkAor0JHQkNCb0J7QkyDQnNCQ0KDQmNCI0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCY0IjQkAor0JHQkNCb0J7QkyDQnNCQ0KDQmNCI0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCi0JAKK9CR0JDQm9Ce0JMg0JzQmNCb0JXQndCQCivQkdCQ0JvQntCTINCc0JjQoNCa0J4KK9CR0JDQm9Ce0JMg0J3QmNCa0J7Qm9CQCivQkdCQ0JvQntCTINCd0JjQmtCe0JvQkAor0JHQkNCb0J7QkyDQn9CY0KjQotCQCivQkdCQ0JvQntCTINCf0JjQoNCe0KjQmtCQCivQkdCQ0JvQntCTINCh0JjQnNCQCivQkdCQ0JvQntCTINCh0JzQmNCJ0JAKK9CR0JDQm9Ce0JMg0KHQn9Ce0JzQldCd0JrQkAor0JHQkNCb0J7QkyDQodCi0JXQktCQ0J0KK9CR0JDQm9Ce0JMg0KHQotCV0JLQkNCdCivQkdCQ0JvQntCTINCh0KLQldCS0JDQnQor0JHQkNCb0J7QkyDQotCY0JHQntCgCivQkdCQ0JvQntCTINCS0JXQm9CY0JzQmNCgCivQkdCQ0JvQntCTINCX0J7QoNCQ0J0KK9CR0JDQm9Ce0Jog0JjQqNCi0JLQkNCdCivQkdCQ0JvQntCS0JjQiyDQnNCY0JvQmNCLCivQkdCQ0JvQotCQINCQ0J3QkAor0JHQkNCb0KLQmNCLINCU0JDQndCY0KbQkAor0JHQkNCb0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQkdCQ0JvQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQkdCQ0JvQotCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQkNCb0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JvQo9Cd0J7QktCY0Isg0JjQktCQ0J0KK9CR0JDQnNCR0KPQm9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9CR0JDQnSDQodCi0JXQktCQ0J0KK9CR0JDQndCn0JXQktCY0Isg0J/QldCi0JDQoAor0JHQkNCd0KfQldCS0JjQiyDQoNCQ0JTQlQor0JHQkNCd0KfQmCDQkdCQ0JvQmNCd0KIKK9CR0JDQndCn0Jgg0JrQkNCg0J7QiQor0JHQkNCd0KfQmNCLINCW0JjQktCa0J4KK9CR0JDQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCd0KfQmNCLINCI0J7QktCQ0J0KK9CR0JDQndCn0JjQiyDQiNCj0JvQmtCQCivQkdCQ0J3Qp9CY0Isg0JvQkNCX0JAKK9CR0JDQndCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQndCn0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQndCn0JjQiyDQodCi0JXQktCY0KbQkAor0JHQkNCd0KfQmNCLINCi0J7QlNCe0KAKK9CR0JDQndCC0KPQoCDQnNCY0KDQmtCeCivQkdCQ0J3QkNCL0JDQndCY0J0g0InQmNCJ0JDQndCQCivQkdCQ0J3QkNCL0JDQndCY0J0g0J7Qm9CT0JAKK9CR0JDQndCQ0Jgg0KLQmNCR0J7QoAor0JHQkNCd0JDQmCDQktCV0KDQkAor0JHQkNCd0JDQiCDQiNCe0KHQmNCfCivQkdCQ0J3QlNCQINCW0JjQktCa0J4KK9CR0JDQndCU0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQkNCd0JTQmNCLINCI0JXQm9CY0KbQkAor0JHQkNCd0JTQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCQ0J3QlNCY0Isg0InQo9CR0J4KK9CR0JDQndCU0JjQiyDQoNCQ0JTQlQor0JHQkNCd0JTQmNCLINCh0JDQktCa0JAKK9CR0JDQndCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCQ0J3QlNCY0Isg0JLQldCg0JjQptCQCivQkdCQ0J3QlNCY0Isg0JLQo9CI0JDQlNCY0J0KK9CR0JDQndCU0JjQnSDQltCY0JLQntCg0JDQlAor0JHQkNCd0JTQmNCdINCY0JLQkNCdCivQkdCQ0J3QlNCY0J0g0JrQkNCi0JjQptCQCivQkdCQ0J3QlNCY0J0g0JzQmNCe0JTQoNCQ0JMKK9CR0JDQndCU0JjQnSDQnNCb0JDQlNCV0J0KK9CR0JDQndCU0J7QkdCg0JDQndCh0JrQmCDQntCb0JPQkAor0JHQkNCd0JTQntCb0J4g0JTQoNCQ0JPQmNCm0JAKK9CR0JDQndCU0KPQmtCQINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQndCk0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0J3Qk9CeINCJ0KPQlNCV0JLQmNCiCivQkdCQ0J3QmNCLINCQ0J3QgtCQCivQkdCQ0J3QmNCLINCR0J7QltCY0JTQkNCgCivQkdCQ0J3QmNCLINCR0KDQkNCd0JrQniDQlNCgCivQkdCQ0J3QmNCLINCV0JzQmNCb0JjQiNCQCivQkdCQ0J3QmNCLINCV0JLQmNCm0JAKK9CR0JDQndCY0Isg0JrQkNCi0JjQptCQCivQkdCQ0J3QmNCLINCc0JjQm9Ce0KgKK9CR0JDQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9CR0JDQndCY0Isg0J/QkNCd0JUKK9CR0JDQndCY0Isg0J/QldCi0JDQoAor0JHQkNCd0JjQiyDQoNCQ0JTQlQor0JHQkNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQkNCd0JjQiyDQoNCQ0KHQotCa0J4KK9CR0JDQndCY0Isg0KDQo9CW0JjQptCQCivQkdCQ0J3QmNCLINCh0JvQkNCS0JrQngor0JHQkNCd0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCQ0J3QmNCLINCX0J7QoNCa0JAKK9CR0JDQndCY0IvQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CR0JDQndCY0IvQldCS0JjQiyDQktCV0KHQldCb0JjQnQor0JHQkNCd0JjQkC3QltCY0JLQkNCU0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0IrQkNCoINCC0KPQoNCQCivQkdCQ0IrQkNCmINCn0JXQlNCe0JzQmNCgCivQkdCQ0IrQkNCmINCn0JXQlNCeCivQkdCQ0IrQkNCmINCn0JXQlNCeCivQkdCQ0IrQkNCmINCo0J/QmNCg0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCQ0IrQkNCmINCW0JjQktCQ0J0KK9CR0JDQitCQ0KYg0ILQntCg0ILQlQor0JHQkNCK0JDQpiDQgtCe0KDQgtCVCivQkdCQ0IrQkNCmINCC0J7QoNCC0JUKK9CR0JDQitCQ0KYg0JHQntCh0JjQidCa0JAKK9CR0JDQitCQ0KYg0JTQkNCd0JjQm9CeCivQkdCQ0IrQkNCmINCU0JzQmNCi0JDQoAor0JHQkNCK0JDQpiDQlNCg0JDQk9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCQ0IrQkNCmINCU0KDQkNCT0JDQnQor0JHQkNCK0JDQpiDQlNCg0JDQk9CY0KbQkAor0JHQkNCK0JDQpiDQlNCg0JDQk9CY0KbQkAor0JHQkNCK0JDQpiDQlNCj0KjQkNCdCivQkdCQ0IrQkNCmINCU0KPQqNCa0J4KK9CR0JDQitCQ0KYg0JTQo9Co0JrQngor0JHQkNCK0JDQpiDQldCc0JjQmwor0JHQkNCK0JDQpiDQk9CQ0JLQoNCQCivQkdCQ0IrQkNCmINCT0J7QiNCa0J4KK9CR0JDQitCQ0KYg0IjQldCb0JXQndCQCivQkdCQ0IrQkNCmINCI0J7QktCQ0J0KK9CR0JDQitCQ0KYg0IjQntCS0JDQnQor0JHQkNCK0JDQpiDQmtCQ0KLQmNCm0JAKK9CR0JDQitCQ0KYg0JzQmNCb0JDQnQor0JHQkNCK0JDQpiDQnNCY0JvQkNCdCivQkdCQ0IrQkNCmINCc0JjQm9CVCivQkdCQ0IrQkNCmINCc0JjQm9Ce0KDQkNCUCivQkdCQ0IrQkNCmINCc0JjQoNCa0J4KK9CR0JDQitCQ0KYg0J3QldCU0JXQidCa0J4KK9CR0JDQitCQ0KYg0J3QmNCa0J7Qm9CQCivQkdCQ0IrQkNCmINCe0JvQk9CQCivQkdCQ0IrQkNCmINCf0JXQoNCeCivQkdCQ0IrQkNCmINCf0JXQotCQ0KAKK9CR0JDQitCQ0KYg0KDQkNCU0JAKK9CR0JDQitCQ0KYg0KDQkNCU0J7QitCQCivQkdCQ0IrQkNCmINCh0JDQktCQCivQkdCQ0IrQkNCmINCh0JDQktCQCivQkdCQ0IrQkNCmINCh0JDQktCV0KLQkAor0JHQkNCK0JDQpiDQodCQ0JLQngor0JHQkNCK0JDQpiDQodCb0JDQktCa0J4KK9CR0JDQitCQ0KYg0KHQm9CQ0JLQndCQCivQkdCQ0IrQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQitCQ0KYg0KHQotCV0JLQkNCdCivQkdCQ0IrQkNCmINCi0JXQntCU0J7QoAor0JHQkNCK0JDQpiDQktCV0KHQndCQCivQkdCQ0IrQkNCmINCS0JjQndCa0J4KK9CR0JDQitCQ0KYg0JLQmNCi0J7QnNCY0KAKK9CR0JDQitCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JHQkNCK0JDQmCDQiNCQ0JPQkAor0JHQkNCK0JDQmCDQiNCQ0J3QntCoCivQkdCQ0IrQkNCYINCI0J7QktCQ0J0KK9CR0JDQitCQ0Jgg0JvQkNCI0J7QqAor0JHQkNCK0JDQmCDQnNCQ0IvQkNCoCivQkdCQ0IrQkNCYINCc0JDQoNCY0IjQkAor0JHQkNCK0JDQmCDQoNCe0JzQkNCdCivQkdCQ0IrQkNCYINCg0KPQltCQCivQkdCQ0IrQkNCd0JDQpiDQkdCg0JDQndCa0J4KK9CR0JDQitCQ0J3QkNCmINCR0KDQkNCi0JjQodCb0JDQkgor0JHQkNCK0JDQndCQ0KYg0JzQmNCb0JDQnQor0JHQkNCK0JDQndCQ0KYg0KDQkNCU0JUKK9CR0JDQitCQ0J3QkNCmINCh0JvQkNCS0JjQptCQCivQkdCQ0IrQkNCd0JjQnSDQlNCQ0J3QmNCm0JAKK9CR0JDQitCQ0J3QmNCdINCU0JDQoNCQCivQkdCQ0IrQkNCd0JjQnSDQiNCV0JvQldCd0JAKK9CR0JDQitCQ0J3QmNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCQ0IrQkNCd0JjQnSDQiNCe0JLQkNCdCivQkdCQ0IrQkNCd0JjQnSDQndCV0JTQldCJ0JrQngor0JHQkNCK0JDQndCY0J0g0J3QldCU0JXQidCa0J4KK9CR0JDQitCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JHQkNCK0JDQndCY0J0g0J3QmNCa0J7Qm9CQCivQkdCQ0IrQkNCd0JjQnSDQoNCQ0JTQnNCY0JvQkAor0JHQkNCK0JDQndCY0J0g0KHQntCk0JjQiNCQCivQkdCQ0IrQkNCd0JjQnSDQktCV0JvQmNCc0JjQoAor0JHQkNCK0JDQoNCYINCb0JDQiNCe0KgKK9CR0JDQitCV0JPQm9CQ0JIg0JHQntCW0JAKK9CR0JDQitCV0JPQm9CQ0JIg0JTQoNCQ0JPQkNCdCivQkdCQ0IrQldCT0JvQkNCSINCU0KPQqNCQ0J0KK9CR0JDQitCV0JPQm9CQ0JIg0J3QmNCa0J7Qm9CQCivQkdCQ0IrQldCT0JvQkNCSINCg0JDQlNCY0JLQntCICivQkdCQ0IrQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQkNCd0JrQkCDQm9CQ0IjQntCoCivQkdCQ0J3QmtCe0JLQkNCn0JrQmCDQgtCj0KDQkAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0IjQntCS0JDQnQor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0J3QmtCe0JLQkNCn0JrQmCDQndCQ0JTQkAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0J/QldCi0JDQoAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0KHQkNCS0JAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCh0JLQldCi0J7Ql9CQ0KAKK9CR0JDQndCa0J7QktCY0Isg0JzQmNCb0KPQnQor0JHQkNCd0J7QktCn0JDQndCY0J0g0JTQoNCQ0JPQmNCm0JAKK9CR0JDQndCe0JLQp9CQ0J3QmNCdINCc0JjQm9CQ0J0KK9CR0JDQndCe0JLQp9CQ0J3QmNCdINCc0J7QnNCn0JjQm9CeCivQkdCQ0J3QntCS0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JHQkNCd0J7QktCQ0KfQmtCYINCI0J7QktCQ0J0KK9CR0JDQndCe0JLQkNCn0JrQmCDQnNCQ0KDQmNCI0JAKK9CR0JDQndCe0JLQkNCn0JrQmCDQoNCj0JbQmNCm0JAKK9CR0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CR0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQkdCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQkdCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQkNCd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JHQkNCd0J7QktCY0Ist0JvQntCmINCd0JDQlNCQCivQkdCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0J3QntCS0JjQiyDQnNCY0InQmtCeCivQkdCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQndCe0JLQmNCLINCh0JvQkNCS0JAKK9CR0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQndCh0JrQmCDQldCg0JjQmtCQCivQkdCQ0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0KDQp9CY0JrQmNCdINCC0J7QoNCC0JUKK9CR0JDQoNCo0Jgg0JXQndCU0KDQlQor0JHQkNCg0KjQmCDQm9CQ0KHQm9CeCivQkdCQ0KDQkNCn0JDQndCY0J0g0JTQkNCd0JjQptCQCivQkdCQ0KDQkNCn0JDQndCY0J0g0JvQkNCX0JDQoAor0JHQkNCg0JDQp9CQ0J3QmNCdINCf0JDQiNCQCivQkdCQ0KDQkNCn0JDQndCY0J0g0KHQkNCS0JrQkAor0JHQkNCg0JDQp9CYINCh0KLQldCS0JDQnQor0JHQkNCg0JDQp9Ca0J7QkiDQp9CV0JTQntCc0JjQoAor0JHQkNCg0JDQp9Ca0J7QkiDQgtCe0KDQgtCVCivQkdCQ0KDQkNCn0JrQntCSINCT0J7QoNCY0J3QmtCQCivQkdCQ0KDQkNCn0JrQntCSINCc0JjQm9CQ0J0KK9CR0JDQoNCQ0KfQmtCe0JIg0KHQoNCV0JTQntCI0JUKK9CR0JDQoNCQ0KfQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9CR0JDQoNCQ0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CR0JDQoNCQ0KjQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCQ0KDQkNCo0JjQnSDQk9Ce0KDQkNCdCivQkdCQ0KDQkNCo0JjQnSDQidCj0JHQntCc0JjQoAor0JHQkNCg0JDQqNCY0J0g0J3QldCS0JXQndCa0JAKK9CR0JDQoNCQ0KjQmNCdINCh0JDQktCQCivQkdCQ0KDQkNCLINCW0JDQoNCa0J4KK9CR0JDQoNCQ0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQoNCQ0Isg0JTQo9Co0JDQndCa0JAKK9CR0JDQoNCQ0Isg0JPQntCU0JjQnNCY0KAKK9CR0JDQoNCQ0Isg0JPQntCI0JrQngor0JHQkNCg0JDQiyDQiNCe0KHQmNCfCivQkdCQ0KDQkNCLINCa0J7QktCY0InQmtCQCivQkdCQ0KDQkNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCQ0Isg0JzQmNCb0J7QqAor0JHQkNCg0JDQiyDQnNCY0JvQntCoCivQkdCQ0KDQkNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CR0JDQoNCQ0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQoNCQ0Isg0KDQkNCU0J7QitCQCivQkdCQ0KDQkNCLINCh0JDQoNCQ0KTQmNCd0JAKK9CR0JDQoNCQ0Isg0KHQotCQ0J3QmNCc0JjQoNCa0JAKK9CR0JDQoNCQ0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQoNCQ0Isg0JLQmNCU0JDQmgor0JHQkNCg0JDQiyDQktCj0KfQmNCd0JAKK9CR0JDQoNCQ0KYg0JzQkNCb0JjQqNCQCivQkdCQ0KDQkNCmINCc0JDQoNCa0J4KK9CR0JDQoNCQ0KYg0J3QntCS0J4KK9CR0JDQoNCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JHQkNCg0JDQiNCV0JLQkNCmINCI0J7QktCQCivQkdCQ0KDQkNCa0J4g0KHQkNCS0JAKK9CR0JDQoNCQ0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQoNCQ0J0g0IjQkNCa0JjQnAor0JHQkNCg0JDQnSDQnNCY0KXQkNCI0JvQngor0JHQkNCg0JDQnSDQnNCY0KDQntCdINCU0JjQn9CbINCY0J3Qkwor0JHQkNCg0JDQndCY0J0g0JLQkNCh0JjQm9CY0IjQlQor0JHQkNCg0JDQitCQ0Jgg0IjQldCd0JUKK9CR0JDQoNCQ0IrQmCDQpNCV0KDQldCd0KYKK9CR0JDQoNCQ0IrQmCDQpNCV0KDQldCd0KYKK9CR0JDQoNCQ0IrQmCDQm9CQ0KHQm9CeCivQkdCQ0KDQkNCK0Jgg0J/QkNCS0JvQlQor0JHQkNCg0JDQitCYINCh0KLQldCS0JDQnQor0JHQkNCg0JDQndCe0JLQodCa0Jgg0JLQm9CQ0JTQkAor0JHQkNCg0JDQoSDQotCe0JzQkCDQlNCgCivQkdCQ0KDQkNCiINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0KDQkNCiINCU0KDQkNCT0JjQptCQCivQkdCQ0KDQkNCiINCU0KDQkNCT0JjQitCQCivQkdCQ0KDQkNCiINCk0JXQoNCV0J3Qpgor0JHQkNCg0JDQoiDQmNCc0KDQlQor0JHQkNCg0JDQoiDQntCb0JPQkAor0JHQkNCg0JDQoiDQntCh0JrQkNCgCivQkdCQ0KDQkNCi0J7QkiDQkdCe0KjQmtCeCivQkdCQ0KDQkdCQ0KDQmNCLINCQ0J3QotCVCivQkdCQ0KDQkdCQ0KDQmNCLINCf0JDQktCb0JUKK9CR0JDQoNCR0JDQotCV0KHQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JHQkNCg0JHQldCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQoNCR0JXQoNCY0Isg0JzQmNCg0JrQngor0JHQkNCg0JHQmNCgINCQ0J3QotCVCivQkdCQ0KDQkdCY0KAg0InQo9CR0JAKK9CR0JDQoNCR0KMg0JLQkNCh0JAKK9CR0JDQoNCR0KPQmyDQnNCQ0KDQmNCI0JAKK9CR0JDQoNCR0KPQmyDQnNCY0JvQkNCdCivQkdCQ0KDQkdCj0Jsg0JzQmNCb0JDQnQor0JHQkNCg0JHQo9CbINCh0JDQktCQCivQkdCQ0KDQkdCj0Jsg0KHQotCe0IjQkNCdCivQkdCQ0KDQkdCj0Jsg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9CR0JDQoNCR0KPQm9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCQ0KDQkdCj0JvQntCSINCU0J7QkdCg0JjQktCe0IgKK9CR0JDQoNCR0KPQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9CR0JDQoNCR0KPQm9Ce0JIg0J3QmNCa0J7Qm9CQCivQkdCQ0KDQkdCj0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQoNCR0KPQl9CQ0J0g0IjQkNCh0J3QkAor0JHQkNCg0JHQo9CX0JDQnSDQoNCj0JbQmNCm0JAKK9CR0JDQoNCm0JDQmyDQgtCV0KDQggor0JHQkNCg0KbQkNCbINCQ0J3QkAor0JHQkNCg0KbQkNCbINCI0J7QltCV0KQKK9CR0JDQoNCm0JDQmyDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0JHQkNCg0KbQldCbINCa0JDQotCY0KbQkAor0JHQkNCg0JTQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0KDQlNCQ0Jog0JDQndCa0JjQptCQCivQkdCQ0KDQlNCQ0Jog0JvQo9Ca0JAKK9CR0JDQoNCU0JjQiyDQltCV0InQmtCeCivQkdCQ0KDQlNCY0Isg0JzQmNCg0JrQngor0JHQkNCg0JTQntCoINCI0J7QltCV0KQKK9CR0JDQoNCU0J7QqCDQnNCV0JvQkNCd0JjQiNCQCivQkdCQ0KDQlNCj0J0g0JrQkNCg0JvQngor0JHQkNCg0JXQqNCY0Isg0JjQktCQ0J0KK9CR0JDQoNCV0KjQmNCLINCc0JDQotCeCivQkdCQ0KDQldCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCQ0KDQmNCn0JXQktCY0Isg0KHQotCY0J/QlQor0JHQkNCg0JjQp9CY0Isg0JHQmNCh0JXQoNCa0JAKK9CR0JDQoNCY0KjQmNCLINCQ0J3QgtCV0JvQmtCeCivQkdCQ0KDQmNCo0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQkNCg0JjQqNCY0Isg0JHQntCo0JrQngor0JHQkNCg0JjQqNCY0Isg0JjQm9CY0IjQkAor0JHQkNCg0JjQqNCY0Isg0JjQm9CY0IjQkAor0JHQkNCg0JjQqNCY0Isg0IjQkNCK0JAKK9CR0JDQoNCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCg0JjQqNCY0Isg0JzQkNCg0JrQngor0JHQkNCg0JjQqNCY0Isg0JzQmNCb0JDQnQor0JHQkNCg0JjQqNCY0Isg0JzQmNCb0JDQnQor0JHQkNCg0JjQqNCY0Isg0J/QldCi0JDQoAor0JHQkNCg0JjQqNCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JDQoNCY0KjQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9CR0JDQoNCY0KjQmNCLINCX0J7QoNCa0JAKK9CR0JDQoNCY0Isg0InQo9CR0JjQptCQCivQkdCQ0KDQmNCLINCf0JDQo9Cb0JjQndCQCivQkdCQ0KDQmNCLINCh0JvQkNCS0JjQptCQCivQkdCQ0KDQiNCQ0JrQotCQ0KAg0KHQn9CQ0KHQldCd0JjQiNCQCivQkdCQ0KDQiNCQ0JrQotCQ0KAg0KHQotCV0JLQkAor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JbQmNCS0JrQngor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCQ0KDQkAor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JzQkNCg0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCc0JjQm9Ca0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCc0JjQm9Ce0IjQlQor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JfQm9CQ0KLQmtCeCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCSINCc0JjQm9CY0KbQkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0ILQntCa0J4KK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCQ0J3QmtCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQnNCY0JvQntCoCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0JLQo9Cn0JjQndCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQktCj0KfQmNCd0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCX0J7QoNCa0JAKK9CR0JDQoNCI0JDQnNCe0JLQmNCLINCQ0JvQmNCbCivQkdCQ0KDQiNCQ0JzQntCS0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQkdCQ0KDQiNCQ0JzQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0KDQndCQINCT0JDQqNCf0JDQoAor0JHQkNCg0J3QkCDQmNCS0JDQnQor0JHQkNCg0J3QkCDQiNCQ0J3QntCoCivQkdCQ0KDQndCQINCI0J7QodCY0J8KK9CR0JDQoNCd0JAg0JzQmNCl0JDQiQor0JHQkNCg0J4g0KTQoNCQ0IrQngor0JHQkNCg0J4g0IjQldCb0JXQndCQCivQkdCQ0KDQniDQiNCe0JbQldCkCivQkdCQ0KDQniDQiNCe0JbQldCkCivQkdCQ0KDQniDQiNCe0KHQmNCfCivQkdCQ0KDQntCoINCR0J7QltCeCivQkdCQ0KDQntCoINCR0J7QoNCY0KHQm9CQ0JIg0JTQoAor0JHQkNCg0J7QqCDQkdCe0KDQmNCh0JvQkNCSCivQkdCQ0KDQntCoINCb0JDQl9CeCivQkdCQ0KDQntCoINCd0JXQkdCe0IjQqNCQCivQkdCQ0KDQntCoINCd0JjQmtCe0JvQkAor0JHQkNCg0J7QqCDQndCY0JrQntCb0JAKK9CR0JDQoNCe0KjQldCS0JjQiyDQiNCe0JLQngor0JHQkNCg0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0JDQoNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JDQoNCi0JAg0ILQldCg0IIKK9CR0JDQoNCi0JAg0ILQntCg0ILQlQor0JHQkNCg0KLQkCDQkNCg0J/QkNCUCivQkdCQ0KDQotCQINCU0JXQltCVCivQkdCQ0KDQotCQINCV0JzQkAor0JHQkNCg0KLQkCDQmNCb0JTQmNCa0J4KK9CR0JDQoNCi0JAg0JjQoNCc0JAKK9CR0JDQoNCi0JAg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCQ0KDQotCV0Jog0JDQndCU0KDQmNCI0JAKK9CR0JDQoNCi0JXQmiDQmtCQ0KLQkNCg0JjQndCQCivQkdCQ0KDQotCV0Jog0KDQo9CU0J7Qm9CkINCU0JjQn9CbINCY0J3Qkwor0JHQkNCg0KLQldCaINCh0KLQldCS0JDQnQor0JHQkNCg0KLQntCoINCU0JDQndCY0JvQngor0JHQkNCg0KLQntCoINCU0KDQkNCT0JjQptCQCivQkdCQ0KDQotCe0Kgg0JjQnNCg0JUKK9CR0JDQoNCi0J7QqCDQm9CQ0JTQmNCh0JvQkNCSCivQkdCQ0KDQotCe0Kgg0JvQkNCh0JvQngor0JHQkNCg0KLQntCoINCh0JLQldCi0JvQkNCd0JAKK9CR0JDQoNCi0J7QqCDQl9CS0J7QndCY0JzQmNCgCivQkdCQ0KDQotCe0Igg0JzQmNCg0IjQkNCd0JAKK9CR0JDQoNCi0J7QmiDQnNCQ0KDQk9CY0KIKK9CR0JDQoNCi0J7Qm9Ce0JLQmNCLINCQ0J3QotCj0J0KK9CR0JDQoNCi0J7Qm9Ce0JLQmNCLINCI0J7QodCY0J8KK9CR0JDQoNCi0J7Qm9Ce0JLQmNCLINCc0JDQoNCY0J0KK9CR0JDQoNCi0KPQm9Ce0JLQmNCLINCf0JDQktCb0JUKK9CR0JDQoNCj0KjQmNCLINCc0JDQoNCi0JjQnQor0JHQkNCg0KPQj9CY0IjQkCDQnNCQ0KDQmtCeCivQkdCQ0KDQo9CU0JDQndCe0JIg0JTQo9Co0JDQndCa0JAKK9CR0JDQodCQ0KDQkCDQgtCj0KDQngor0JHQkNCh0JDQoNCQINCQ0J3QmtCQCivQkdCQ0KHQkNCg0JAg0JTQmNCS0J3QkAor0JHQkNCh0JDQoNCQINCU0KDQkNCT0JjQptCQCivQkdCQ0KHQkNCg0JAg0IjQntCS0JDQnQor0JHQkNCh0JDQoNCQINCc0JDQoNCi0JAKK9CR0JDQodCQ0KDQkCDQnNCY0JvQmNCS0J7QiAor0JHQkNCh0JDQoNCQINCc0JjQoNCQCivQkdCQ0KHQkNCg0JAg0J/QkNCI0J4KK9CR0JDQodCQ0KDQkNCR0JAg0JTQo9Co0JjQptCQCivQkdCQ0KHQkNCg0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0JDQodCQ0KDQmNCLINCU0JDQndCVCivQkdCQ0KHQkNCg0JjQiyDQlNCg0JDQk9CY0IrQkAor0JHQkNCh0JDQoNCY0Isg0JTQo9Co0JDQnQor0JHQkNCh0JDQoNCY0Isg0IjQldCb0JXQndCQCivQkdCQ0KHQkNCg0JjQiyDQiNCe0JLQkNCdCivQkdCQ0KHQkNCg0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCh0JDQoNCY0Isg0JzQmNCb0JDQnQor0JHQkNCh0JDQoNCY0Isg0JzQmNCb0JDQnQor0JHQkNCh0JDQoNCY0Isg0JzQmNCb0JrQkAor0JHQkNCh0JDQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JDQodCQ0KDQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCh0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0KHQkNCg0JjQiyDQktCV0KDQkAor0JHQkNCh0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JHQkNCh0JjQiyDQodCg0ILQkNCdCivQkdCQ0KHQmNCe0JvQmCDQodCg0JXQi9Ca0J4KK9CR0JDQodCa0JjQiNCY0J0g0JfQntCg0JAKK9CR0JDQodCg0JDQmiDQkdCg0JDQndCa0J4KK9CR0JDQodCg0JDQmiDQnNCY0JvQkNCdCivQkdCQ0KHQotCQINCU0JDQndCVCivQkdCQ0KHQotCQINCU0JDQndCY0JXQm9CQCivQkdCQ0KHQotCQINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQodCi0JAg0JTQo9Co0JDQnQor0JHQkNCh0KLQkCDQmNCS0JDQndCQCivQkdCQ0KHQotCQINCa0JDQotCY0KbQkAor0JHQkNCh0KLQkCDQidCj0JHQmNCm0JAKK9CR0JDQodCi0JAg0JzQkNCg0JjQiNCQCivQkdCQ0KHQotCQINCc0JDQoNCY0IjQkAor0JHQkNCh0KLQkCDQnNCQ0KDQmNCI0JAKK9CR0JDQodCi0JAg0JzQmNCb0JDQnQor0JHQkNCh0KLQkCDQnNCY0JvQntCoCivQkdCQ0KHQotCQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQodCi0JAg0J3QmNCa0J7Qm9CQCivQkdCQ0KHQotCQINCh0KLQldCS0JAKK9CR0JDQodCi0JAg0JLQm9CQ0JTQngor0JHQkNCh0KLQkNClINCR0KDQkNCd0JrQngor0JHQkNCh0KLQkNCI0JAg0JHQoNCQ0J3QmtCeCivQkdCQ0KHQotCQ0IjQkCDQnNCY0JvQkNCdCivQkdCQ0KLQkCDQlNCV0JfQmNCU0JXQoAor0JHQkNCi0JAg0JjQm9Ce0J3QkAor0JHQkNCi0JAg0JrQkNCg0J7QiQor0JHQkNCi0JAg0JvQkNCh0JvQngor0JHQkNCi0JAg0JvQkNCh0JvQngor0JHQkNCi0JAg0JzQkNCg0JPQmNCi0JAKK9CR0JDQotCQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCQ0KLQkNCaINCV0JzQmNCbCivQkdCQ0KLQkNCaINCc0JjQoNCa0J4KK9CR0JDQotCQ0JrQntCS0JjQiyDQmtCe0KHQkNCg0JAKK9CR0JDQotCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KLQkNCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CR0JDQotCQ0JvQntCSINCg0JDQlNCY0KbQkAor0JHQkNCi0JDQndCn0JXQkiDQiNCe0JLQkNCdCivQkdCQ0KLQkNCd0KfQldCSINCh0JvQkNCS0J3QkAor0JHQkNCi0JDQitCh0JrQmCDQnNCY0JvQkNCdCivQkdCQ0KLQkNCK0KHQmtCYINCc0JjQm9CQ0J0KK9CR0JDQotCQ0J3QntCS0JjQiyDQkNCd0JrQkAor0JHQkNCi0JDQoCDQp9CV0JTQntCc0JjQoAor0JHQkNCi0JDQoCDQp9CV0JTQntCc0JjQoAor0JHQkNCi0JDQoCDQnNCY0JvQntCoCivQkdCQ0KLQkNCgINCc0J7QnNCY0KAKK9CR0JDQotCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCi0JDQoCDQktCV0JvQmNCc0JjQoAor0JHQkNCi0JDQoCDQktCe0IjQmNCdCivQkdCQ0KLQkNCg0JjQm9CeINCW0JXQidCa0J4KK9CR0JDQotCQ0KEg0JHQntCW0JDQndCQCivQkdCQ0KLQkNCXINCS0JvQkNCU0J4KK9CR0JDQotCV0KDQndCV0Jog0JjQktCQ0J0KK9CR0JDQotCY0Isg0ILQo9Cg0JDQggor0JHQkNCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQkNCi0JjQiyDQkdCg0JDQndCa0JAKK9CR0JDQotCY0Isg0JjQktCQ0J3QkAor0JHQkNCi0JjQiyDQnNCY0KXQkNCI0JvQngor0JHQkNCi0JjQndCY0Isg0ILQo9Cg0J4KK9CR0JDQotCY0J3QmNCLINCU0KDQkNCT0JDQnQor0JHQkNCi0JjQndCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0JDQotCY0J3QmNCLINCh0JDQktCQCivQkdCQ0KLQmNCd0JjQiyDQodCf0JDQodCe0IjQlQor0JHQkNCi0JjQodCi0JjQiyDQmNCS0JDQnQor0JHQkNCi0JrQmNCLINCI0KPQodCj0KQKK9CR0JDQotCa0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JHQkNCi0JrQntCS0JjQiyDQnNCQ0KDQkAor0JHQkNCi0J7QoNCYINCI0JDQndCe0KgKK9CR0JDQotCe0KDQmCDQiNCe0JbQldCkCivQkdCQ0KLQntCg0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0KLQntCg0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0KLQntCg0Jgg0JzQmNCl0JDQiQor0JHQkNCi0J7QoNCYINCc0JjQpdCQ0IkKK9CR0JDQotCe0KDQmCDQnNCY0KXQkNCJCivQkdCQ0KLQntChINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0KLQntChINCR0J7QqNCa0J4KK9CR0JDQotCe0KEg0JHQntCo0JrQngor0JHQkNCi0J7QoSDQnNCY0JvQkNCdCivQkdCQ0KLQntChINCd0JDQlNCQCivQkdCQ0KLQntChINCg0JDQlNCY0JLQntCICivQkdCQ0KLQntChINCX0J7QoNCY0KbQkAor0JHQkNCi0KDQndCV0Jog0JfQlNCV0J3QmtCQCivQkdCQ0KLQo9Cg0JDQnSDQntCR0KDQkNCUCivQkdCQ0KLQo9Cg0JDQnSDQoNCQ0JTQntCS0JDQnQor0JHQkNCj0JXQoCDQldCS0JAKK9CR0JDQo9CV0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQkNCj0JXQoCDQmtCh0JXQndCY0IjQkAor0JHQkNCj0JXQoCDQntCi0J4KK9CR0JDQo9CaINCU0KDQkNCT0JDQnQor0JHQkNCj0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQo9Cg0JDQndCe0JIg0JvQkNCX0JDQoAor0JHQkNCS0JDQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCS0JDQoNCn0JjQiyDQktCV0KHQldCb0JjQnQor0JHQkNCX0JDQndCn0JjQmiDQktCQ0JvQldCg0JjQiNCQCivQkdCQ0JfQntCa0JjQnSDQltCY0JLQmNCm0JAKK9CR0JXQpyDQiNCQ0IrQkAor0JHQldCn0JXQmCDQm9CQ0IjQntCoCivQkdCV0KfQldCI0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCn0JXQiNCQ0KYg0JHQntCo0JrQngor0JHQldCn0JXQiNCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0KfQldCI0JDQpiDQiNCe0JLQkNCdCivQkdCV0KfQldCI0JDQpiDQmtCQ0JzQldCd0JrQngor0JHQldCn0JXQiNCQ0KYg0JzQmNCb0JDQnQor0JHQldCn0JXQiNCQ0KYg0KDQkNCU0JXQndCa0J4KK9CR0JXQp9CV0IjQkNCmINCg0JDQlNCe0IjQmtCQCivQkdCV0KfQldCI0JDQpiDQodCQ0JLQkAor0JHQldCn0JXQm9CY0Isg0ILQntCg0ILQlQor0JHQldCn0JXQm9CY0Isg0JHQmNCh0JXQoNCa0JAKK9CR0JXQp9CV0JvQmNCLINCR0J7QodCY0InQmtCQCivQkdCV0KfQldCb0JjQiyDQlNCe0JHQoNCY0J3QmtCeCivQkdCV0KfQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQldCn0JXQm9CY0Isg0JPQmNCd0JAKK9CR0JXQp9CV0JvQmNCLINCI0J7QktCQ0J0KK9CR0JXQp9CV0JvQmNCLINCb0JDQl9CQ0KAKK9CR0JXQp9CV0JvQmNCLINCc0JDQoNCY0IjQkAor0JHQldCn0JXQm9CY0Isg0JzQkNCg0JjQiNCQCivQkdCV0KfQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0KfQldCb0JjQiyDQnNCY0JvQldCd0JAKK9CR0JXQp9CV0JvQmNCLINCc0JjQm9CY0KbQkAor0JHQldCn0JXQm9CY0Isg0JzQmNCb0J7QqAor0JHQldCn0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQldCn0JXQm9CY0Isg0KDQkNCU0JjQktCe0IgKK9CR0JXQp9CV0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCV0KfQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQp9CV0JvQmNCLINCh0KLQldCS0JDQnQor0JHQldCn0JXQm9CY0Isg0JLQkNCh0JAKK9CR0JXQp9CV0JvQmNCLINCS0JXQodCV0JvQmNCdCivQkdCV0KfQldCb0JjQiyDQktCV0KHQldCb0JjQnQor0JHQldCn0JjQiyDQnNCj0KXQmNCR0JAKK9CR0JXQp9CY0Isg0JLQldCg0J7QidCj0JEKK9CR0JXQp9Ca0JXQmCDQiNCQ0J3QntCoCivQkdCV0KfQmtCV0Jgg0J/QldCi0JDQoAor0JHQldCn0JrQldCI0Jgg0JrQkNCg0JvQngor0JHQldCn0JLQkNCg0JTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCn0JLQkNCg0JTQmCDQiNCe0KHQmNCfCivQkdCV0KjQkNCd0JjQiyDQkdCe0JbQkNCd0JAKK9CR0JXQqNCQ0J3QmNCLINCX0JTQoNCQ0JLQmtCeCivQkdCV0KjQldCK0Jgg0JrQkNCg0JvQngor0JHQldCo0JXQitCYINCa0JDQoNCb0J4KK9CR0JXQqNCV0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQkdCV0KjQldCS0JjQiyDQkNCb0JXQmtCh0JAKK9CR0JXQqNCV0JLQmNCLINCI0J7QktCQ0J0KK9CR0JXQqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCV0KjQldCS0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0J7QldCmCivQkdCV0KjQmNCLINCc0JDQoNCY0IjQkAor0JHQldCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JXQqNCY0Isg0JzQldCl0JzQldCUCivQkdCV0KjQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCV0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JXQqNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCV0KjQmtCV0KAg0JDQndCU0KDQmNCI0JAKK9CR0JXQqNCa0JXQoCDQkdCe0JbQngor0JHQldCo0JrQldCgINCh0KDQldCL0JrQkAor0JHQldCo0JvQmNCLINCI0J7QktCQ0J0KK9CR0JXQqNCb0JjQiyDQotCV0KDQldCX0JjQiNCQCivQkdCV0KjQm9CY0IjQkCDQk9Ce0KHQn9CQ0JLQkAor0JHQldCo0JvQmNCdINCW0JjQktCa0J4g0JTQmNCf0Jsg0J7QldCmCivQkdCV0KjQm9CY0J0g0JHQoNCQ0J3QmtCeCivQkdCV0KjQm9CY0J0g0JjQktCQ0J0KK9CR0JXQqNCb0JjQnSDQmNCS0JjQptCQCivQkdCV0KjQm9CY0J0g0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0JXQqNCb0JjQnSDQnNCY0J7QlNCg0JDQkwor0JHQldCo0JvQmNCdINCh0KLQntCI0JDQnQor0JHQldCo0JvQmNCdINCS0JvQkNCU0JjQodCb0JDQktCQCivQkdCV0IvQkNCT0KPQmyDQodCQ0JLQkAor0JHQldCL0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCL0JjQnSDQntCb0JPQkAor0JHQldCL0JjQoNCe0JLQodCa0Jgg0JDQlNCV0JwKK9CR0JXQltCQ0J0g0JLQmNCa0KLQntCgCivQkdCV0JbQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCW0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JbQkNCd0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQkdCV0JbQkNCd0J7QkiDQnNCY0KDQntCJ0KPQkQor0JHQldCW0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0JXQkNCU0JXQoCDQiNCe0JLQkNCdCivQkdCV0JDQoNCQINCW0JjQktCa0J4KK9CR0JXQkNCg0JAg0ILQntCg0ILQlQor0JHQldCQ0KDQkCDQiNCe0JLQkNCdCivQkdCV0JDQoNCQINCc0JDQoNCa0J4KK9CR0JXQkNCg0JAg0J/QldCi0JDQoAor0JHQldCQ0KDQkCDQn9CV0KLQkNCgCivQkdCV0JDQotCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQkdCV0JHQldCaINCc0JDQotCeCivQkdCV0JHQldCJ0JAt0JzQkNCi0KPQqCDQkNCd0JrQkAor0JHQldCR0JjQiyDQkNCd0JAKK9CR0JXQkdCY0Isg0InQmNCJ0JDQndCQCivQkdCV0JHQmNCLINCd0JXQktCV0J3QmtCQCivQkdCV0JHQmNCLINCd0JXQktCV0J3QmtCQCivQkdCV0JHQmNCLINCf0JXQotCQ0KAKK9CR0JXQkdCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQldCm0JUg0JHQldCb0JAKK9CR0JXQptCVINCi0JjQkdCe0KAKK9CR0JXQptCY0Isg0KHQotCV0JLQkNCdCivQkdCV0I/QldCi0Jgg0JzQkNCg0JjQiNCQCivQkdCV0JTQkNCaINCR0JjQidCQ0J3QkAor0JHQldCU0JUg0KjQkNCd0JTQntCgCivQkdCV0JTQlSDQn9CV0KLQkNCgINCU0KAKK9CR0JXQlNCVINCf0JXQotCQ0KAKK9CR0JXQlNCV0JrQntCS0JjQiyDQkNCd0KLQntCdCivQkdCV0JTQndCQ0KDQmNCaINCQ0J3QlNCg0JjQiNCQCivQkdCV0JTQndCQ0KDQmNCaINCU0JDQoNCY0J3QmtCQCivQkdCV0JTQndCQ0KDQmNCaINCI0JDQndCe0KgKK9CR0JXQlNCd0JDQoNCY0Jog0IjQntCh0JjQnwor0JHQldCU0J3QkNCg0JjQmiDQnNCY0KXQkNCJCivQkdCV0JTQntCSINCR0JjQodCV0KDQmtCQCivQkdCV0JTQntCSINCI0J7QktCQ0J0KK9CR0JXQlNCe0JIg0InQo9CR0JjQptCQCivQkdCV0JTQntCSINCc0JDQoNCY0IjQkAor0JHQldCU0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQkdCV0JTQntCSINCd0JDQlNCQCivQkdCV0JTQntCSINCf0KDQldCU0KDQkNCTCivQkdCV0JTQntCSINCg0JDQlNCQCivQkdCV0JTQntCSINCh0KDQgtCQ0J0KK9CR0JXQlNCe0JIg0KHQo9Cd0KfQmNCm0JAKK9CR0JXQlNCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCV0JTQoNCY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQkyDQkNCd0JTQoNCY0IjQkAor0JHQldCTLdCS0JDQm9Ce0JLQmNCn0JjQiyDQkNCd0ILQldCb0JrQngor0JHQldCTLdCS0J7Qm9Ce0JLQmNCn0JjQiyDQmNCS0JDQnQor0JHQldCT0JDQndCYINCo0JXQoNCY0KQKK9CR0JXQk9CQ0J3QntCS0JjQiyDQnNCV0KXQnNCV0JQKK9CR0JXQk9CQ0J3QntCS0JjQiyDQodCQ0J3QmNCUCivQkdCV0JPQldCn0JrQmCDQoNCQ0IjQmtCeCivQkdCV0JPQldCn0JrQmCDQodCQ0JLQkAor0JHQldCT0JXQndCY0KjQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9CR0JXQk9CV0J3QmNCo0JjQiyDQktCj0JrQkNCo0JjQnQor0JHQldCT0JjQiyDQnNCY0JvQntCoCivQkdCV0JPQmNCLINCc0JjQoNCa0J4KK9CR0JXQk9Cb0JXQoNCR0JXQk9Ce0JLQmNCLINCP0JXQktCQ0JQKK9CR0JXQk9Ce0IjQldCSINCQ0J3QmtCQCivQkdCV0JPQntCI0JXQkiDQkdCe0JPQlNCQ0J0KK9CR0JXQk9Ce0IjQldCSINCb0JDQl9CQ0KAKK9CR0JXQk9Ce0IjQldCSINCb0JDQl9CQCivQkdCV0JPQntCI0JXQkiDQn9CV0KLQkNCgCivQkdCV0JPQntCI0JXQkiDQoNCQ0JTQntCI0JrQkAor0JHQldCT0J7QiNCV0JIg0KLQntCo0JAKK9CR0JXQk9Ce0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQldCT0J7QktCY0Isg0JXQktCY0KbQkAor0JHQldCT0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CR0JXQk9Ce0JLQmNCLINCI0J7QktCQ0J0KK9CR0JXQk9Ce0JLQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQk9Ce0JLQmNCLLdCb0JjQktCQ0IjQkCDQmNCb0JjQiNCQCivQkdCV0JPQntCS0JjQiyDQidCj0JHQkNCdCivQkdCV0JPQntCS0JjQiyDQnNCY0JvQmNCI0JAKK9CR0JXQk9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0JPQntCS0JjQiyDQnNCY0KDQmtCeCivQkdCV0JPQntCS0JjQiyDQoNCe0IvQmtCeCivQkdCV0JPQntCS0JjQiyDQodCQ0JLQngor0JHQldCT0J7QktCY0Isg0KLQntCU0J7QoAor0JHQldCT0J7QktCY0Isg0JfQntCg0J4KK9CR0JXQpdCV0KAg0JXQktCQCivQkdCV0KXQldCg0JDQndCeINCI0J7QodCY0J8KK9CR0JXQpdCi0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCI0JDQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9CR0JXQiNCQ0KDQntCS0JjQiyDQndCV0J3QkNCUCivQkdCV0IjQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0JHQldCI0JDQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0IjQkNCi0J7QktCY0Isg0JzQmNCg0JrQngor0JHQldCI0KLQntCS0JjQiyDQkNCb0JjQiNCQCivQkdCV0Jog0JDQndCi0J7QndCY0IjQkAor0JHQldCaINCU0KDQkNCT0JDQndCQCivQkdCV0Jog0IjQntCS0JDQnQor0JHQldCaINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQmiDQidCY0InQkNCd0JAKK9CR0JXQmiDQoNCj0JbQkAor0JHQldCaINCh0KLQldCS0JDQnQor0JHQldCa0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0JrQkNCg0JXQmiDQmNCb0JjQndCa0JAKK9CR0JXQmtCVINCb0JDQodCb0J4KK9CR0JXQmtCVINCc0JDQoNCY0IjQkNCdCivQkdCV0JrQldCgINCk0KDQldCU0JXQoNCY0JoKK9CR0JXQmtCV0KAg0JjQqNCi0JLQkNCdCivQkdCV0JrQldCgINCY0JTQkAor0JHQldCa0JXQoCDQiNCe0JbQldCkCivQkdCV0JrQldCgINCI0J7QodCY0J8KK9CR0JXQmtCV0KAg0KHQotCV0JLQkNCdCivQkdCV0JrQmNCLINCR0J7QoNCY0KEKK9CR0JXQmtCY0Isg0JHQoNCQ0J3QmtCQCivQkdCV0JrQmNCLINCI0KPQoNCVCivQkdCV0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JXQmtCY0Isg0JLQldCg0JAKK9CR0JXQmtCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JXQmtCg0JjQiyDQnNCY0KDQkAor0JHQldCa0KDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JXQmtCi0JDQqCDQlNCQ0J3QmNCm0JAKK9CR0JXQmtCi0JDQqCDQodCb0JDQktCa0J4KK9CR0JXQmtCj0KIg0JTQoNCQ0JPQkNCdCivQkdCV0JrQo9CiINCf0JXQotCQ0KAKK9CR0JXQmtCS0JDQm9CQ0KYg0JbQmNCS0JDQnQor0JHQldCa0JLQkNCb0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JrQktCQ0JvQkNCmINCR0KDQkNCd0JrQkAor0JHQldCa0JLQkNCb0JDQpiDQkdCg0JDQndCa0J4KK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmtCeCivQkdCV0JrQktCQ0JvQkNCmINCU0KDQkNCT0J7QidCj0JEKK9CR0JXQmtCS0JDQm9CQ0KYg0JXQnNCY0JvQmNCI0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JjQodCQCivQkdCV0JrQktCQ0JvQkNCmINCb0JDQl9CQ0KAKK9CR0JXQmtCS0JDQm9CQ0KYg0InQo9CR0JjQptCQCivQkdCV0JrQktCQ0JvQkNCmINCJ0KPQkdCY0KbQkAor0JHQldCa0JLQkNCb0JDQpiDQidCj0JHQmNCd0JrQngor0JHQldCa0JLQkNCb0JDQpiDQnNCQ0KDQkAor0JHQldCa0JLQkNCb0JDQpiDQnNCY0IjQkAor0JHQldCa0JLQkNCb0JDQpiDQnNCY0JvQkNCd0JrQngor0JHQldCa0JLQkNCb0JDQpiDQnNCY0JvQkNCdCivQkdCV0JrQktCQ0JvQkNCmINCc0JjQm9CY0KHQkNCSCivQkdCV0JrQktCQ0JvQkNCmINCc0JjQoNCI0JDQndCQCivQkdCV0JrQktCQ0JvQkNCmINCg0JDQlNCY0JLQntCICivQkdCV0JrQktCQ0JvQkNCmINCg0JDQlNCc0JjQm9CQCivQkdCV0JrQktCQ0JvQkNCmINCh0JXQoNCQ0KTQmNCd0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0KHQotCV0JLQkNCdCivQkdCV0JvQp9CV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CR0JXQm9Cn0JXQktCY0Isg0KDQkNCi0JrQngor0JHQldCb0JDQmiDQqNCQ0J3QlNCe0KAKK9CR0JXQm9CQ0Jog0JDQndCQCivQkdCV0JvQkNCaINCc0JDQoNCT0JjQotCQCivQkdCV0JvQkNCaINCc0JjQiNCeCivQkdCV0JvQkNCaINCS0JvQkNCU0JAKK9CR0JXQm9CQ0J0g0IjQntCW0JXQpAor0JHQldCb0JDQndCn0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0JXQm9CQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCV0JvQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0JXQm9CQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0JXQm9CQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQldCb0JDQndCe0JLQmNCLINCi0JjQkdCe0KAKK9CR0JXQm9CV0KbQmtCYINCI0JXQm9CV0J3QkAor0JHQldCb0JXQk9CY0KjQkNCd0JjQnSDQlNCg0JDQk9Ce0JzQmNCgINCU0KAKK9CR0JXQm9CV0KHQm9CY0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQkdCV0JvQldCh0JvQmNCI0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQkdCV0JvQldCh0JvQmNCdINCU0J7QkdCg0JjQm9CQCivQkdCV0JvQldCh0JvQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQm9CV0KHQm9CY0J0g0KHQktCV0KLQntCX0JDQoCDQlNCgCivQkdCV0JvQldCi0JjQiyDQiNCV0JvQldCd0JAKK9CR0JXQm9CYINCQ0J3QlNCg0JjQiNCQCivQkdCV0JvQmCDQldCc0JjQmwor0JHQldCb0Jgg0KDQntCX0JDQm9CY0IjQkAor0JHQldCb0Jgg0KHQotCV0JLQkNCdCivQkdCV0JvQmCDQktCe0IjQmNCh0JvQkNCSCivQkdCV0JvQmNCn0JrQkCDQkNCd0JAKK9CR0JXQm9CY0KfQmtCQINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCb0JjQp9Ca0JAg0JzQmNCg0J7QodCb0JDQkgor0JHQldCb0JjQiyDQltCY0JLQmtCQCivQkdCV0JvQmNCLINCC0J7QoNCC0JUKK9CR0JXQm9CY0Isg0ILQntCg0ILQlQor0JHQldCb0JjQiyDQgtCj0KDQmNCm0JAKK9CR0JXQm9CY0Isg0JHQntCo0JrQngor0JHQldCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQldCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQldCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JHQntCg0JjQoQor0JHQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkdCV0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0JXQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JvQmNCLLdCR0KDQmtCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9CR0JXQm9CY0Isg0JTQkNCd0JjQptCQCivQkdCV0JvQmNCLINCU0JDQndCY0IjQldCb0JAKK9CR0JXQm9CY0Isg0JTQoNCQ0JPQkNCdCivQkdCV0JvQmNCLINCU0KDQkNCT0JjQptCQCivQkdCV0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0JXQm9CY0Isg0JTQo9Co0JDQnSDQlNCgCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JHQldCb0JjQiyDQlNCj0KjQkNCdCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0KK9CR0JXQm9CY0Isg0JTQo9Co0JDQnQor0JHQldCb0JjQiyDQlNCj0KjQmtCeCivQkdCV0JvQmNCLINCU0KPQqNCa0J4KK9CR0JXQm9CY0Isg0KTQm9Ce0KDQmNCa0JAKK9CR0JXQm9CY0Isg0JjQm9CY0IjQkAor0JHQldCb0JjQiyDQiNCe0KHQmNCcCivQkdCV0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQkdCV0JvQmNCLINCI0J7QktCY0KbQkAor0JHQldCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQkdCV0JvQmNCLINCI0KPQm9Ca0JAKK9CR0JXQm9CY0Isg0JvQkNCX0JDQoAor0JHQldCb0JjQiyDQidCj0JHQmNCm0JAKK9CR0JXQm9CY0Isg0JzQkNCg0JjQptCQCivQkdCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JXQm9CY0Isg0JzQmNCb0JXQndCQCivQkdCV0JvQmNCLINCc0JjQm9CY0JLQntCICivQkdCV0JvQmNCLINCc0JjQm9Ce0KgKK9CR0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JXQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JXQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQldCb0JjQiyDQndCV0J3QkNCUCivQkdCV0JvQmNCLINCd0JXQodCi0J7QoAor0JHQldCb0JjQiyDQndCY0JrQntCb0JAKK9CR0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQldCb0JjQiyDQn9CV0KLQkNCgCivQkdCV0JvQmNCLINCg0JDQlNCY0J3QmtCQCivQkdCV0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCV0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0JXQm9CY0Isg0KHQkNCS0JAKK9CR0JXQm9CY0Isg0KHQldCd0JAKK9CR0JXQm9CY0Isg0KHQmNCc0JAKK9CR0JXQm9CY0Isg0KHQm9CQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQldCb0JjQiyDQodCb0JDQktCa0J4KK9CR0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JXQm9CY0Isg0KHQntCk0JjQiNCQCivQkdCV0JvQmNCLINCh0KDQgtCQ0J0KK9CR0JXQm9CY0Isg0KHQotCQ0J3QmtCeCivQkdCV0JvQmNCLINCh0KLQldCS0JDQnQor0JHQldCb0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQkdCV0JvQmNCLINCh0KLQntCI0JDQnQor0JHQldCb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CR0JXQm9CY0Isg0KLQntCU0J7QoAor0JHQldCb0JjQiyDQktCV0KDQkAor0JHQldCb0JjQiyDQktCV0KHQndCQCivQkdCV0JvQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JHQldCb0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQldCb0JjQiyDQktCj0JrQkAor0JHQldCb0JjQiyDQl9Ce0KDQkAor0JHQldCb0JjQnNCQ0KDQmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CR0JXQm9CY0J3QmNCLINCC0KPQoNCQCivQkdCV0JvQmNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCV0JvQmNCd0KHQmtCYINCh0J/QkNCh0JXQndCY0IjQkAor0JHQldCJ0JDQmtCe0JIg0JzQmNCb0JjQptCQCivQkdCV0InQkNCd0KHQmtCYINCW0JjQktCa0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JbQmNCS0JrQkAor0JHQldCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQkdCV0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9CR0JXQidCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JHQldCJ0JDQndCh0JrQmCDQkNCd0ILQldCb0JjQiNCQCivQkdCV0InQkNCd0KHQmtCYINCQ0J3QmtCY0KbQkAor0JHQldCJ0JDQndCh0JrQmC3QkdCQ0IjQmNCLINCa0JDQi9Cj0KjQkAor0JHQldCJ0JDQndCh0JrQmCDQkdCe0KDQkAor0JHQldCJ0JDQndCh0JrQmCDQkdCe0KDQkAor0JHQldCJ0JDQndCh0JrQmCDQkdCe0KDQmNCS0J7QiAor0JHQldCJ0JDQndCh0JrQmCDQlNCg0JDQk9CQ0J3QkAor0JHQldCJ0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JHQldCJ0JDQndCh0JrQmCDQldCc0JjQm9CY0IjQkAor0JHQldCJ0JDQndCh0JrQmCDQk9CQ0JLQoNCQCivQkdCV0InQkNCd0KHQmtCYINCT0J7QoNCU0JDQndCQCivQkdCV0InQkNCd0KHQmtCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCV0InQkNCd0KHQmtCYINCI0J7QktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0IjQntCS0JDQnQor0JHQldCJ0JDQndCh0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQkdCV0InQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CR0JXQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JHQldCJ0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkdCV0InQkNCd0KHQmtCYINCb0JXQn9Ce0IjQmtCQCivQkdCV0InQkNCd0KHQmtCYINCJ0KPQkdCe0JzQmNCgCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9CQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CR0JXQidCQ0J3QodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9CR0JXQidCQ0J3QodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9CR0JXQidCQ0J3QodCa0Jgg0JzQmNCb0KPQotCY0J0KK9CR0JXQidCQ0J3QodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9CR0JXQidCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0JHQldCJ0JDQndCh0JrQmCDQoNCQ0JTQkAor0JHQldCJ0JDQndCh0JrQmCDQoNCQ0JTQnNCY0JvQkAor0JHQldCJ0JDQndCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0JHQldCJ0JDQndCh0JrQmCDQoNCQ0J3QmtCeCivQkdCV0InQkNCd0KHQmtCYINCg0KPQltCY0KbQkAor0JHQldCJ0JDQndCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCV0InQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JHQldCJ0JDQndCh0JrQmCDQotCV0J7QlNCe0KAKK9CR0JXQidCQ0J3QodCa0Jgg0KLQntCo0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JLQkNCh0JjQm9CY0IjQlQor0JHQldCJ0JDQndCh0JrQmCDQktCV0KDQkAor0JHQldCJ0JDQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCV0InQkNCd0KHQmtCYINCS0JvQkNCU0JjQodCb0JDQkgor0JHQldCJ0JDQndCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQkdCV0InQkNCd0KHQmtCYINCX0JDQk9Ce0KDQmtCQCivQkdCV0InQkNCd0KHQmtCYINCX0JTQldCd0JrQkAor0JHQldCJ0JjQnSDQltCY0JLQkAor0JHQldCJ0JjQnSDQgtCe0KDQgtCVCivQkdCV0InQmNCdINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCV0InQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQldCJ0JjQnSDQnNCQ0KDQmNCI0JAg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCV0InQmNCdINCd0JXQlNCV0InQmtCeCivQkdCV0InQmNCdINCg0JDQlNCY0JLQntCICivQkdCV0InQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JXQidCY0J0g0KDQo9CW0JAKK9CR0JXQidCY0J0g0KHQkNCS0JAKK9CR0JXQidCY0J0g0KHQntCk0JjQiNCQCivQkdCV0InQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQidCY0J3QkNCmINCX0J7QoNCQ0J0KK9CR0JXQm9Ce0KjQldCSINCd0JXQktCV0J3QmtCQCivQkdCV0JvQntCR0KDQkNCU0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQntCR0KDQkNCU0JjQiyDQodCQ0JLQkAor0JHQldCb0J7QkdCg0Jog0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JvQntCR0KDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0JXQm9Ce0JHQoNCaINCb0JjQktCY0IjQlQor0JHQldCb0J7QptCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0JXQm9Ce0KbQmNCLINCg0JDQlNCc0JjQm9CQCivQkdCV0JvQntCY0KbQkCDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0JvQntCY0KbQkCDQktCY0JTQkNCdCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQkCDQlNCgCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9CR0JXQm9Ce0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9CR0JXQm9Ce0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9CR0JXQm9Ce0KHQkNCS0JjQiyDQiNCV0JvQmNCm0JAKK9CR0JXQm9Ce0KLQmCDQmNCS0JDQndCa0J4KK9CR0JXQm9Ce0JLQkNCg0Jgg0JjQktCQ0J0KK9CR0JXQm9Ce0JLQmNCLINCR0JjQidCQ0J3QkAor0JHQldCb0J7QktCY0Isg0KDQkNCU0JAKK9CR0JXQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JHQldCb0KPQqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCV0JvQo9Co0JXQktCY0Isg0J3QntCS0JjQptCQCivQkdCV0JvQo9CW0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQldCb0KPQltCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JXQnCDQmNCS0JDQnQor0JHQldCcINCI0J7QktCQ0J0KK9CR0JXQnCDQmtCQ0KDQm9CeCivQkdCV0Jwg0JzQmNCg0J7QodCb0JDQkgor0JHQldCc0JjQm9CV0KAg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCV0J3Qp9CY0Jog0ILQo9Cb0JAKK9CR0JXQndCn0JjQmiDQmNCb0J7QndCa0JAKK9CR0JXQndCQINCc0JjQm9Ce0KHQkNCS0JAKK9CR0JXQndCQ0KjQmNCLINCS0JjQndCa0J4KK9CR0JXQndCQ0Jog0J/QkNCbCivQkdCV0J3QkNCg0JjQmiDQm9CQ0KHQm9CeCivQkdCV0J3QkNCg0JjQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0JXQndCmINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCV0J3QpiDQlNCg0JDQk9CQ0J0KK9CR0JXQndCm0JUg0JzQkNCg0JjQiNCQCivQkdCV0J3QptCVINCc0JjQpdCQ0IkKK9CR0JXQndCm0JUg0JzQmNCa0JXQqAor0JHQldCd0KbQldCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0JHQldCd0KbQldCi0JjQiyDQidCj0JTQldCS0JjQogor0JHQldCd0KbQo9CdINCS0JXQm9CY0J3QmtCQCivQkdCV0J3QlNCV0Jog0JzQmNCb0JDQnQor0JHQldCd0JXQqCDQidCj0JTQnNCY0JvQkAor0JHQldCd0JXQltCQ0J0g0InQo9CR0JjQptCQCivQkdCV0J3QldCU0JXQmtCe0JLQmNCLINCY0JLQkNCdCivQkdCV0J3Qk9CY0J0t0ILQo9Cg0JrQmNCLINCd0JXQl9CQCivQkdCV0J3Qk9CY0J0g0JHQntCW0JjQlNCQ0KAKK9CR0JXQndCT0JjQnSDQlNCe0JHQoNCY0J3QmtCQCivQkdCV0J3Qk9CY0J0g0JTQo9Co0JDQnQor0JHQldCd0JPQmNCdINCa0J7QktCY0KbQkAor0JHQldCd0JPQmNCdINCc0JjQm9CQ0J0KK9CR0JXQndCY0KfQkNCaINCa0JDQoNCb0J4KK9CR0JXQndCY0KfQkNCaINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQldCd0JjQqNCV0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0JHQldCd0JjQiyDQldCS0JAKK9CR0JXQndCY0Isg0JPQoNCj0IjQmNCm0JAKK9CR0JXQndCY0Isg0J/QldCi0JDQoAor0JHQldCd0JjQiyDQodCV0JrQo9Cb0JAKK9CR0JXQndCY0Isg0JfQlNCV0J3QmtCeCivQkdCV0J3QmNCdINCW0JjQktCe0IjQmNCdCivQkdCV0IrQkCDQmtCQ0KLQkNCg0JjQndCQCivQkdCV0IrQkNCaINCU0KDQkNCT0J7QodCb0JDQktCQCivQkdCV0IrQkNCaINCV0JLQmNCm0JAKK9CR0JXQndCa0JAg0JzQkNCg0JjQiNCQCivQkdCV0J3QmtCQINCc0JjQpdCQ0JjQm9CeCivQkdCV0J3QmtCVINCV0JvQl9CQCivQkdCV0J3QmtCe0JLQmNCLINCI0J7QptCQCivQkdCV0J3QmtCe0JLQmNCLINCI0J7QptCQCivQkdCV0J3QniDQotCY0JHQntCgCivQkdCV0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQkdCV0J3QntCS0JjQiyDQodCi0JDQndCQCivQkdCV0J7Qp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9CR0JXQntCn0JDQndCY0J0g0JzQmNCe0JTQoNCQ0JMKK9CR0JXQntCn0JDQndCY0J0g0J/QkNCS0JvQlQor0JHQldCe0JTQoNCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JHQldCe0JTQoNCQ0J3QodCa0Jgg0KHQotCe0IjQkNCdCivQkdCV0J7QmtCe0JLQmNCLINCU0JDQnNCY0KAKK9CR0JXQoCDQkNCb0JXQmtCh0JjQiNCVCivQkdCV0KAg0KTQoNCQ0IrQngor0JHQldCg0KfQldCaINCC0JXQoNCCCivQkdCV0KDQp9CV0Jog0JHQntCW0JjQlNCQ0KAKK9CR0JXQoNCn0JXQmiDQpNCg0JDQitCQCivQkdCV0KDQp9CV0Jog0JvQkNCU0JjQodCb0JDQkgor0JHQldCg0KfQldCaINCc0JDQoNCY0IjQkAor0JHQldCg0KfQldCaINCc0JjQpdCQ0JjQm9CeCivQkdCV0KDQp9CV0Jog0J7QodCa0JDQoAor0JHQldCg0KfQldCaINCh0JDQndCY0KHQm9CeCivQkdCV0KDQi9CQ0J0g0JzQmNCg0IjQkNCd0JAKK9CR0JXQoNCL0JDQnSDQn9CV0KLQkNCgCivQkdCV0KDQi9CQ0J0g0KHQm9CQ0JLQmtCeCivQkdCV0KDQkCDQgtCe0KDQgtCeCivQkdCV0KDQkCDQlNCg0JDQk9CQ0J0KK9CR0JXQoNCQ0Jog0J3QldCR0J7QiNCo0JAKK9CR0JXQoNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCg0JDQoCDQltCY0JLQkNCd0JAKK9CR0JXQoNCQ0KAg0JHQntCg0JjQktCe0IgKK9CR0JXQoNCQ0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0KDQkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCg0JDQoCDQlNCj0KjQkNCd0JrQkAor0JHQldCg0JDQoCDQnNCY0JvQkNCdCivQkdCV0KDQkNCgINCc0JjQm9CQ0J0KK9CR0JXQoNCQ0KAg0JzQmNCb0JDQnQor0JHQldCg0JDQoCDQoNCQ0JTQmNCS0J7QiAor0JHQldCg0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQkdCV0KDQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9CR0JXQoNCQ0KAg0KLQmNCc0JAKK9CR0JXQoNCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCg0JDQoNCe0JIg0ILQo9Cg0JjQptCQCivQkdCV0KDQkdCQ0JrQntCSINCJ0KPQkdCY0KbQkAor0JHQldCg0JHQkNCa0J7QkiDQnNCQ0KDQkAor0JHQldCg0JHQkNCa0J7QkiDQnNCY0JvQntCoCivQkdCV0KDQkdCQ0JrQntCSINCf0JXQotCQ0KAKK9CR0JXQoNCR0JDQmtCe0JIg0KHQotCV0JLQkNCdCivQkdCV0KDQkdCQ0KLQntCS0JjQiyDQltCQ0KDQmtCeCivQkdCV0KDQkdCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQldCg0JHQldCgINCJ0JjQidCQ0J3QkAor0JHQldCg0JHQldCgINCh0KLQldCS0JDQnQor0JHQldCg0JHQldCg0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQldCg0JHQldCg0JjQiyDQiNCe0JLQkNCdCivQkdCV0KDQkdCV0KDQmNCLINCb0JDQl9CQ0KAKK9CR0JXQoNCR0JXQoNCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0JXQoNCV0Kgg0ILQntCg0ILQlQor0JHQldCg0JXQqCDQlNCQ0J3QmNCb0J4KK9CR0JXQoNCV0Kgg0JjQm9Ce0J3QkAor0JHQldCg0JXQqCDQiNCe0KHQmNCfCivQkdCV0KDQldCoINCI0KPQm9CY0KjQmtCQCivQkdCV0KDQldCoINCa0JDQoNCe0IkKK9CR0JXQoNCV0Kgg0JrQntCg0J3QldCbCivQkdCV0KDQldCoINCi0JjQkdCe0KAKK9CR0JXQoNCV0Kgt0KLQntCiINCa0J7QoNCd0JXQmwor0JHQldCg0JXQpdCQ0J3QmNCLINCI0KPQm9Ca0JAKK9CR0JXQoNCV0IrQmCDQldCj0JPQldCdCivQkdCV0KDQldCK0Jgg0IjQkNCd0J7QqAor0JHQldCg0JXQitCYINCI0JXQm9CV0J3QkAor0JHQldCg0JXQitCYINCc0JjQmtCb0J7QqAor0JHQldCg0JXQitCYINCc0JjQmtCb0J7QqAor0JHQldCg0JXQitCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CR0JXQoNCV0IrQmCDQodCi0JXQktCQ0J0KK9CR0JXQoNCV0IrQmCDQotCY0JHQntCgCivQkdCV0KDQldCd0KLQkCDQiNCe0KHQmNCfCivQkdCV0KDQldCd0KLQlSDQmNCb0J7QndCQCivQkdCV0KDQldCi0JjQiyDQkNCd0KLQo9CdCivQkdCV0KDQldCi0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0KDQldCi0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JHQldCg0JXQotCa0JAg0KjQkNCd0JTQntCgCivQkdCV0KDQldCi0JrQkCDQk9Ce0KDQlNCQ0J3QkAor0JHQldCg0JXQotCa0JAg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQldCg0JXQotCa0JAg0JrQkNCg0JvQngor0JHQldCg0JXQotCa0JAg0JzQmNCl0JDQiQor0JHQldCg0JPQldCbINCC0KPQoNCQCivQkdCV0KDQk9CV0Jsg0JDQndCi0KPQnQor0JHQldCg0JPQldCgINCk0KDQkNCK0JAg0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0JHQldCg0JPQldCgINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQoNCY0KjQkCDQkNCX0JjQoQor0JHQldCg0JjQqNCQINCR0J7QiNCa0JAKK9CR0JXQoNCY0KjQkCDQlNCV0JzQngor0JHQldCg0JjQqNCQINCk0JDQmNCaCivQkdCV0KDQmNCo0JAg0JzQmNCg0JLQldCi0JAKK9CR0JXQoNCY0KjQkCDQoNCQ0JPQmNCRCivQkdCV0KDQmNCLINCW0JjQktCa0J4KK9CR0JXQoNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CR0JXQoNCY0Isg0JDQndCi0JAKK9CR0JXQoNCY0Isg0JDQndCi0JAKK9CR0JXQoNCY0Isg0JHQldCg0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQkdCV0KDQmNCLINCR0JjQidCQ0J3QkAor0JHQldCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQldCg0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0JXQoNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CR0JXQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0JXQoNCY0Isg0JTQo9Co0JDQnQor0JHQldCg0JjQiyDQk9Ce0IjQmtCeCivQkdCV0KDQmNCLINCT0J7QiNCa0J4KK9CR0JXQoNCY0Isg0JPQntCI0JrQngor0JHQldCg0JjQiyDQmNCb0JjQiNCQCivQkdCV0KDQmNCLINCI0J7QoNCU0JDQndCQCivQkdCV0KDQmNCLINCI0J7QktCeCivQkdCV0KDQmNCLINCa0J7QodCi0JAKK9CR0JXQoNCY0Isg0JzQkNCg0JAKK9CR0JXQoNCY0Ist0JzQkNCh0JrQkNCg0JXQmyDQmtCQ0KDQnNCV0J3QodCY0KLQkCDQlNCgCivQkdCV0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JXQoNCY0Isg0JzQmNCb0JDQnQor0JHQldCg0JjQiyDQnNCY0JvQkNCdCivQkdCV0KDQmNCLINCc0JjQm9CY0KbQkCDQnNCgCivQkdCV0KDQmNCLINCc0JjQm9CY0JLQntCICivQkdCV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCV0KDQmNCLINCd0JDQlNCQCivQkdCV0KDQmNCLINCd0JjQmtCe0JvQkAor0JHQldCg0JjQiyDQn9CV0KDQodCY0JTQkAor0JHQldCg0JjQiyDQn9CV0KLQkNCgCivQkdCV0KDQmNCLINCg0JDQlNCY0JLQntCICivQkdCV0KDQmNCLINCg0JDQiNCa0J4KK9CR0JXQoNCY0Isg0KDQkNCI0JrQngor0JHQldCg0JjQiyDQodCQ0JLQkAor0JHQldCg0JjQiyDQotCe0JTQlQor0JHQldCg0JjQiyDQktCV0KDQkAor0JHQldCg0JjQiyDQktCV0KDQmNCm0JAKK9CR0JXQoNCY0Isg0JLQldCh0J3QkCDQlNCgCivQkdCV0KDQmNCLINCX0J7QoNCY0KbQkAor0JHQldCg0JjQodCQ0JLQidCV0JLQmNCLINCg0JDQiNCa0J4KK9CR0JXQoNCY0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0JXQoNCa0JXQqCDQmNCo0KLQktCQ0J0KK9CR0JXQoNCa0Jgg0IjQntCW0JXQpAor0JHQldCg0JrQmNCLINCg0KPQltCY0KbQkAor0JHQldCg0JrQntCS0JjQiyDQkdCV0KDQmNCh0JvQkNCSCivQkdCV0KDQmtCe0JLQmNCLINCP0JDQpNCV0KAKK9CR0JXQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQldCg0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQkdCV0KDQm9CQ0J3Qp9CY0Isg0JTQkNCd0JjQiNCV0JsKK9CR0JXQoNCb0J7QktCQ0J0g0JPQldCe0KDQk9CY0J3QkAor0JHQldCg0J3QkNCm0JrQmCDQkNCU0J7Qm9CkCivQkdCV0KDQndCQ0KDQlCDQgtCe0KDQgtCVCivQkdCV0KDQndCl0JDQoNCUINCW0JDQoNCa0J4KK9CR0JXQoNCd0KXQkNCg0JQg0JHQntCW0JjQlNCQ0KAKK9CR0JXQoNCd0KXQkNCg0JQg0JHQntCI0JDQndCQCivQkdCV0KDQndCl0JDQoNCUINCk0JjQm9CY0J8KK9CR0JXQoNCd0KXQkNCg0JQg0JjQm9CY0IjQkAor0JHQldCg0J3QpdCQ0KDQlCDQidCj0JHQkNCdCivQkdCV0KDQndCl0JDQoNCUINCc0JDQoNCY0IjQkAor0JHQldCg0J3QpdCQ0KDQlCDQnNCY0JvQkNCdCivQkdCV0KDQndCl0JDQoNCUINCc0JjQm9CY0KbQkCDQlNCgCivQkdCV0KDQndCl0JDQoNCUINCc0JjQm9Ce0KDQkNCUCivQkdCV0KDQndCl0JDQoNCUINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JXQoNCd0KXQkNCg0JQg0KDQkNCI0JrQngor0JHQldCg0J3QpdCQ0KDQlCDQodCY0JzQngor0JHQldCg0J3QpdCQ0KDQlCDQotCg0JjQktCeCivQkdCV0KDQntCoINCJ0KPQkdCY0KbQkAor0JHQldCg0KLQkCDQiNCQ0J3QntCoCivQkdCV0KDQotCQINCc0JjQm9CY0KbQkAor0JHQldCg0KLQkCDQn9CQ0JsKK9CR0JXQoNCi0JAg0J/QldCi0JDQoAor0JHQldCg0KLQmNCLINCi0JDQotCI0JDQndCQCivQkdCV0KDQotCY0Isg0JfQktCe0J3QmtCeCivQkdCV0KDQotCe0Jog0IjQkNCd0J7QqAor0JHQldCg0KLQntCaINCI0KPQm9CY0IjQkNCd0JAKK9CR0JXQoNCi0J7QmiDQm9CQ0IjQntCoCivQkdCV0KDQotCg0J7QnSDQm9CV0J3QmtCVCivQkdCV0KDQo9ChINCS0IjQldCa0J7QodCb0JDQkgor0JHQldCg0JfQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCh0JXQlNCV0Kgg0IjQntCW0JXQpAor0JHQldCh0JXQoNCc0JXQitCYINCC0J7QoNCC0JUKK9CR0JXQodCV0KDQnNCV0IrQmCDQkdCg0JDQndCa0J4KK9CR0JXQodCV0KDQnNCV0IrQmCDQlNCY0J7QndCY0JfQmNCI0JUKK9CR0JXQodCV0KDQnNCV0IrQmCDQldCj0KTQldCc0JjQiNCQCivQkdCV0KHQldCg0JzQldCK0Jgg0JjQoNCV0J3QkAor0JHQldCh0JXQoNCc0JXQitCYINCY0JLQkNCdCivQkdCV0KHQldCg0JzQldCK0Jgg0JrQmNCg0JjQmwor0JHQldCh0JXQoNCc0JXQitCYINCa0KHQldCd0JjQiNCQCivQkdCV0KHQldCg0JzQldCK0Jgg0JvQldCe0J3QkAor0JHQldCh0JXQoNCc0JXQitCYINCc0JXQm9CQ0J3QmNCI0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQntCb0JPQkAor0JHQldCh0JXQoNCc0JXQitCYINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQodCV0KDQnNCV0IrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCV0KHQmtCe0KDQntCS0JDQiNCd0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCh0JvQkNCLINCU0KDQkNCT0JDQndCQCivQkdCV0KHQm9CQ0Isg0JzQmNCb0KPQotCY0J0KK9CR0JXQodCb0JDQiyDQoNCQ0JTQnNCY0JvQkAor0JHQldCh0J3QmNCb0J7QkiDQkdCe0KjQmtCeCivQkdCV0KHQndCY0JvQntCSINCe0JvQmNCS0JXQoNCQCivQkdCV0KHQoyDQodCY0JvQkAor0JHQldCh0KMg0KLQntCU0J7QoAor0JHQldCh0KMg0KLQoNCQ0J3QlNCQ0KTQmNCgCivQkdCV0KLQmCDQodCi0JDQndCa0J4g0JDQlNCS0J7QmtCQ0KIKK9CR0JXQo9CmINCW0JjQktCQ0J0KK9CR0JXQo9CmINCc0JjQoNCQCivQkdCV0KPQpiDQntCb0JPQkAor0JHQldCX0JTQkNCdINCQ0J3QkAor0JHQldCX0JTQkNCdINCk0KDQkNCK0JAKK9CR0JXQl9CU0JDQnSDQmNCb0JTQmNCa0J4KK9CR0JXQl9CU0JDQnSDQmNCg0JXQndCQCivQkdCV0JfQlNCQ0J0g0IjQntCh0JjQnwor0JHQldCX0JXQndCo0JXQmiDQndCQ0KLQkNCb0JjQiNCQCivQkdCV0JfQmCDQmtCQ0KLQmNCm0JAKK9CR0JXQl9CI0JDQmiDQnNCY0JvQkNCd0JrQkAor0JHQldCX0IjQkNCaINCX0JTQldCd0JrQngor0JHQldCX0KPQiSDQgtCe0KDQgtCVCivQkdCV0JfQo9CJINCJ0JjQidCQ0J3QkCDQn9Cg0J7QpNCV0KHQntCgCivQkdCY0KfQkNCaINCY0JPQndCQ0KYKK9CR0JjQp9CQ0Jog0IjQo9Ch0KLQmNCd0JAKK9CR0JjQp9CQ0J0g0JDQndCa0JAKK9CR0JjQp9CQ0J0g0JjQktCY0KbQkAor0JHQmNCn0JrQldCYINCi0JXQoNCV0JfQmNCI0JAKK9CR0JjQi9CQ0J3QmNCLINCU0JDQndCY0KbQkAor0JHQmNCL0JDQndCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JHQmNCL0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQkdCY0IvQkNCd0JjQiyDQn9CV0KLQkNCgCivQkdCY0IvQkNCd0JjQiyDQn9CV0KLQoNCQCivQkdCY0JHQldCgINCh0KLQldCS0JDQnQor0JHQmNCR0JXQoNCP0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQmNCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQmNCR0JjQiyDQn9CQ0JLQm9CVCivQkdCY0JHQmNCLINCh0J7QpNCY0IjQkAor0JHQmNCR0JjQiyDQodCi0IjQldCf0JDQnQor0JHQmNCR0JjQnSDQiNCj0JPQntCh0JvQkNCSCivQkdCY0JHQmNCdINCc0JjQm9CY0J3QmtCeCivQkdCY0KbQmNCa0JjQnSDQnNCY0JvQkNCdCivQkdCY0KbQmiDQlNCg0JDQk9Cj0KLQmNCdCivQkdCY0KbQniDQoNCj0JbQmNCm0JAKK9CR0JjQptCe0Jog0JXQotCV0JvQmtCQCivQkdCY0KbQntCaINCc0JDQoNCT0JjQotCQCivQkdCY0KbQntCaINCc0JDQoNCT0JjQotCQCivQkdCY0JXQm9Cn0JjQmiDQm9CY0JTQmNCI0JAKK9CR0JjQk9CQINCR0J7QoNCY0KHQm9CQ0JIKK9CR0JjQk9CQINCc0JjQm9CQ0J0KK9CR0JjQk9CQINCd0JDQlNCQCivQkdCY0JPQkCDQodCc0JjQidCQCivQkdCY0JPQntCS0JjQiy3QqNCY0KDQntCa0Jgg0JfQntCg0JjQptCQCivQkdCY0JPQntCS0JjQiyDQkNCd0JAKK9CR0JjQk9Ce0JLQmNCLINCS0J7QiNCY0J0KK9CR0JjQk9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JjQpdCe0KDQkNCmINCc0JjQoNCI0JDQndCQCivQkdCY0IjQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JHQmNCI0JDQndCa0J4g0J/QldCi0JDQoAor0JHQmNCI0JXQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JjQiNCV0JvQmNCLINCQ0JvQldCa0KHQkAor0JHQmNCI0JXQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCY0IjQldCb0JjQiyDQlNCQ0KDQkAor0JHQmNCI0JXQm9CY0Isg0JjQktCY0KbQkAor0JHQmNCI0JXQm9CY0Isg0IjQntCS0JDQnQor0JHQmNCI0JXQm9CY0Isg0IjQntCS0JjQptCQCivQkdCY0IjQldCb0JjQiyDQnNCQ0KLQngor0JHQmNCI0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQmNCI0JXQm9CY0Isg0JzQmNCb0JUKK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CVCivQkdCY0IjQldCb0JjQiyDQnNCY0JvQlQor0JHQmNCI0JXQm9CY0Isg0JzQmNCb0JUKK9CR0JjQiNCV0JvQmNCLINCd0J7QktCQ0JoKK9CR0JjQiNCV0JvQmNCLINCf0JXQoNCeCivQkdCY0IjQldCb0JjQiyDQoNCY0KHQotCeCivQkdCY0IjQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JjQiNCV0JvQmNCLINCh0KLQntCI0JDQnQor0JHQmNCI0JXQidCQ0KYg0J3QldCU0JXQidCa0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCY0IjQldCb0J7QktCY0Isg0J3QntCS0JrQkAor0JHQmNCI0KPQmtCb0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0JjQiNCj0JrQm9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCY0IjQo9Ca0JvQmNCLINCc0JDQoNCY0J3QmtCeCivQkdCY0JrQkNCgINCU0KDQkNCT0JDQndCQCivQkdCY0JrQkNCgINCk0JXQlNCe0KDQkAor0JHQmNCa0JDQoNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQmNCa0JjQiyDQltCY0JLQkNCdCivQkdCY0JrQmNCLINCC0J7QoNCC0JUKK9CR0JjQmtCY0Isg0JTQkNCd0JjQptCQCivQkdCY0JrQmNCLINCU0KPQqNCQ0J0KK9CR0JjQmtCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9CR0JjQmtCY0Isg0InQmNCJ0JDQndCQCivQkdCY0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCY0JrQmNCLINCc0JjQntCU0KDQkNCTCivQkdCY0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQmNCa0JjQiyDQn9CV0KDQkAor0JHQmNCa0JjQptCa0Jgg0ILQntCg0ILQlQor0JHQmNCa0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JjQmtCY0KbQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JHQmNCa0JjQptCa0Jgg0IjQldCb0JjQptCQCivQkdCY0JrQmNCm0JrQmCDQiNCV0JvQmNCm0JAKK9CR0JjQmtCY0KbQmtCYINCI0J7QktCQ0J0KK9CR0JjQmtCY0KbQmtCYINCI0J7QktCQ0J0KK9CR0JjQmtCY0KbQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9CR0JjQmtCY0KbQmtCYINCc0JjQm9Ce0KgKK9CR0JjQmtCY0KbQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JjQmtCY0KbQmtCYINCg0JDQlNCe0IjQmtCQCivQkdCY0JrQmNCm0JrQmCDQodCY0J3QmNCo0JAKK9CR0JjQmtCY0KbQmtCYINCh0JjQndCY0KjQkAor0JHQmNCa0JjQptCa0Jgg0JLQkNCh0JjQm9CY0IjQlQor0JHQmNCa0JjQoiDQnNCQ0JPQlNCe0JvQndCQCivQkdCY0JrQmNCiINCd0J7QoNCR0JXQoNCiCivQkdCY0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0JjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0JjQm9Cn0JDQoCDQpdCY0JvQlNCQCivQkdCY0JvQp9CQ0KAg0JLQldCg0JAKK9CR0JjQm9CQINCc0JjQoNCa0J4KK9CR0JjQm9CQ0Jog0JzQmNCb0JDQnQor0JHQmNCb0JDQmiDQndCQ0JTQkAor0JHQmNCb0JDQm9Ce0JLQmNCLINCh0JDQkdCQ0KXQo9CU0JjQnQor0JHQmNCb0JDQndCP0JjQiNCQINCU0JDQndCY0KbQkAor0JHQmNCb0JDQndCY0Isg0J3QkNCU0JAKK9CR0JjQm9CQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQkdCY0JvQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0JjQm9CQ0J3QntCS0JjQiyDQn9CV0KDQngor0JHQmNCb0JDQoSDQodCc0JjQidCQCivQkdCY0JvQkdCY0IjQkCDQkdCe0JPQlNCQ0J0KK9CR0JjQm9CR0JjQiNCQINCU0JXQiNCQ0J0KK9CR0JjQm9CR0JjQiNCQINCU0KDQkNCT0JDQnQor0JHQmNCb0JHQmNCI0JAg0IjQkNCh0J3QkAor0JHQmNCb0JHQmNCI0JAg0JzQmNCb0JDQnQor0JHQmNCb0JHQmNCI0JAg0KHQnNCY0InQkAor0JHQmNCb0JXQmiDQnNCY0JvQmNCm0JAKK9CR0JjQm9CV0KAg0ILQntCg0ILQlQor0JHQmNCb0Jgg0IjQo9Cb0JjQiNCQCivQkdCY0JvQmNCn0JjQiyDQodCi0IjQldCf0JDQnQor0JHQmNCb0JjQiyDQkNCd0KLQlQor0JHQmNCb0JjQiyDQkdCg0JDQndCa0JjQptCQCivQkdCY0JvQmNCLINCT0J7QoNCU0JDQndCQCivQkdCY0JvQmNCLINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQmNCb0JjQiyDQmNCS0JDQnQor0JHQmNCb0JjQiyDQiNCQ0JrQntCSCivQkdCY0JvQmNCLINCI0JXQm9CV0J3QkAor0JHQmNCb0JjQiyDQnNCY0JvQkNCdCivQkdCY0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CR0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JjQm9CY0Isg0JzQmNCg0J4KK9CR0JjQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0JjQm9CY0Isg0KHQoNCC0JDQnQor0JHQmNCb0JjQiyDQodCi0IjQldCf0JDQnQor0JHQmNCb0JjQiyDQodCi0KDQkNCY0J0KK9CR0JjQm9CY0KbQmtCYINCb0JDQodCb0J4KK9CR0JjQm9CY0J3QntCS0JjQiyDQkdCe0KDQmNChCivQkdCY0JvQmNCd0J7QktCY0Isg0KHQkNCo0JAKK9CR0JjQidCQ0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQkdCY0InQitCQINCS0JvQkNCU0JjQnNCY0KAKK9CR0JjQm9Ce0JrQkNCf0JjQiyDQmNCS0JDQnQor0JHQmNCb0J7QmtCQ0J/QmNCLINCI0KPQoNCVCivQkdCY0JvQntCa0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQkdCY0JvQo9Co0JjQiyDQodCb0JDQktCY0KbQkAor0JHQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCY0J0g0JzQo9Cl0JDQnNCV0KIKK9CR0JjQndCQ0JrQkNCIINCR0JDQiNCg0JDQnAor0JHQmNCd0JTQkNChINCC0KPQoNCQCivQkdCY0J3QlNCQ0KEg0JTQoNCQ0JPQmNCm0JAKK9CR0JjQndCU0JDQoSDQnNCY0KXQkNCI0JvQngor0JHQmNCd0JTQldCgINCQ0KDQkNCd0JrQkAor0JHQmNCd0JPQntCb0JQg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQmNCd0JPQntCb0JQg0JrQkNCg0JvQngor0JHQmNCd0JPQntCb0JQg0KDQo9CU0J7Qm9CkCivQkdCY0J3Qk9Cj0JvQkNCmINCW0JjQktCa0J4KK9CR0JjQndCT0KPQm9CQ0KYg0JHQntCI0JDQndCQCivQkdCY0J3Qk9Cj0JvQkNCmINCc0JjQoNCI0JDQndCQCivQkdCY0J7QndCU0JjQiyDQiNCV0JvQldCd0JAKK9CR0JjQntCg0JDQpiDQlNCV0KHQmNCc0JjQoAor0JHQmNCe0KDQkNCmINCg0JDQndCa0J4KK9CR0JjQoNCL0JAg0KHQoNCV0KLQmtCeCivQkdCY0KDQptCb0JjQnSDQoNCj0JbQmNCm0JAKK9CR0JjQoNCU0JjQiyDQkdCV0JvQkAor0JHQmNCg0JXQqCDQm9CV0J3QmtCQCivQkdCY0KDQldCoINCg0J7Ql9CQ0JvQmNCI0JAKK9CR0JjQoNCT0JXQnNCQ0IjQldCgINCc0JDQoNCY0IjQkAor0JHQmNCg0KXQnNCQ0J0g0JDQndCQCivQkdCY0KDQmNCK0Jgg0JTQldCd0JXQqAor0JHQmNCg0JjQitCYINCV0KPQk9CV0J0KK9CR0JjQoNCc0JDQndCQ0KYg0JTQo9Co0JDQnQor0JHQmNCg0J4g0JDQndCi0J7QnQor0JHQmNCg0J4g0JPQmNCX0JXQm9CQCivQkdCY0KDQniDQk9CY0JfQldCb0JAKK9CR0JjQoNCeINCY0KjQotCS0JDQnQor0JHQmNCg0J4g0JjQm9Ce0J3QkAor0JHQmNCg0J4g0JjQnNCg0JUKK9CR0JjQoNCeINCY0JzQoNCVCivQkdCY0KDQniDQmtCQ0KLQkNCb0JjQnQor0JHQmNCg0J4g0JvQkNCI0J7QqAor0JHQmNCg0J4g0JzQmNCa0JvQntCoCivQkdCY0KDQniDQnNCY0JvQntCoCivQkdCY0KDQntCo0JXQktCY0Isg0JzQmNCb0JjQptCQCivQkdCY0KDQntCS0InQldCSINCR0KDQkNCd0JjQnNCY0KAKK9CR0JjQoNCe0JLQidCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCY0KDQntCS0InQldCSINCc0JjQm9CQ0J0KK9CR0JjQoNCe0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9CR0JjQoNCe0JLQidCV0JIg0JzQmNCb0J7QodCQ0JIKK9CR0JjQoNCe0JLQidCV0JIg0JzQmNCg0J7QodCb0JDQkgor0JHQmNCg0J7QktCJ0JXQkiDQotCe0JTQntCgINCU0KAKK9CR0JjQoNCe0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQmNCg0J7QktCJ0JXQktCY0Isg0InQo9CR0JjQptCQCivQkdCY0KDQotCQINCS0JvQkNCU0JjQnNCY0KAKK9CR0JjQoNCS0JDQm9Ch0JrQmCDQlNCj0KjQkNCdCivQkdCY0KHQldCg0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQkdCY0KHQldCg0KfQmNCLINCU0KDQkNCT0J4KK9CR0JjQodCV0KDQp9CY0Isg0JzQmNCb0JrQkNCd0JAKK9CR0JjQodCY0Isg0IjQntCS0JDQnQor0JHQmNCh0KLQoNCY0KbQkNCdINCe0JvQk9CQCivQkdCY0KHQotCg0J7QktCY0Isg0JDQndCi0J7QnQor0JHQmNCi0JjQiyDQj9CV0JzQkNCY0JsKK9CR0JjQotCeINCh0KLQldCS0JDQnQor0JHQmNCj0Jog0JzQkNCg0JjQiNCQCivQkdCY0JLQntCb0JDQoNCV0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQkdCY0JfQiNCQ0Jog0KDQldCd0JDQotCeCivQkdCY0JfQo9Cc0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQkdCY0JfQo9Cc0JjQiyDQiNCV0JvQmtCQCivQkdCY0JfQo9Cc0JjQiyDQm9CQ0JfQkNCgCivQkdCY0JfQo9Cc0JjQiyDQnNCY0JvQkNCdCivQkdCI0JXQlNCY0Isg0JTQldCh0JDQndCa0JAKK9CR0IjQldCU0J7QkiDQgtCj0JrQkAor0JHQiNCV0JTQntCSINCU0KDQkNCT0J4KK9CR0IjQldCU0J7QkiDQndCY0JrQntCb0JAKK9CR0IjQldCT0J7QktCY0Isg0JTQkNCd0JjQm9Ca0JAKK9CR0IjQldCT0J7QktCY0Isg0JPQntCI0JrQngor0JHQiNCV0JrQmNCLINCb0KPQmtCQCivQkdCI0JXQmtCY0Isg0J7QodCi0J7QiNCQCivQkdCI0JXQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCI0JXQmtCe0JLQmNCLINCg0JDQlNCVCivQkdCI0JXQm9CQ0KYg0ILQo9Cg0JAKK9CR0IjQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9CR0IjQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9CR0IjQldCb0JDQpiDQldCi0JXQm9Ca0JAKK9CR0IjQldCb0JDQiNCQ0KYg0JTQoNCQ0JPQkNCdCivQkdCI0JXQm9CQ0IjQkNCmINCc0JjQidCQCivQkdCI0JXQm9CQ0IjQkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9CR0IjQldCb0JDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0IjQldCb0JDQndCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQotCQ0IrQkAor0JHQiNCV0JvQldCi0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0IjQldCb0JXQotCY0Isg0InQo9CR0JjQptCQCivQkdCI0JXQm9CV0KLQmNCLINCb0KPQmtCQCivQkdCI0JXQm9CYLdCl0JDQj9CY0Isg0IjQldCb0JjQptCQCivQkdCI0JXQm9CY0Isg0ILQo9Cg0JAKK9CR0IjQldCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCI0JXQm9CY0Isg0JHQoNCQ0J3QmtCeCivQkdCI0JXQm9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9CR0IjQldCb0JjQiyDQlNCc0JjQotCQ0KAKK9CR0IjQldCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQiNCV0JvQmNCLINCI0J7QktCQ0J0KK9CR0IjQldCb0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0IjQldCb0JjQiyDQmtCg0KHQotCQ0J0KK9CR0IjQldCb0JjQiyDQidCj0JHQntCc0JjQoAor0JHQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0IjQldCb0JjQiyDQnNCY0KDQmtCeCivQkdCI0JXQm9CY0Isg0J3QldCU0JXQidCa0J4KK9CR0IjQldCb0JjQiyDQntCb0JPQkAor0JHQiNCV0JvQmNCLINCf0JXQotCQ0KAKK9CR0IjQldCb0JjQiyDQn9CV0KLQkNCgCivQkdCI0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQkdCI0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQiNCV0JvQmNCLINCh0KLQldCS0J4KK9CR0IjQldCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCI0JXQm9CY0Isg0JLQldCg0JAKK9CR0IjQldCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCI0JXQm9CY0KbQkCDQp9CV0JTQngor0JHQiNCV0JvQmNCm0JAg0ILQntCg0ILQmNCI0JAKK9CR0IjQldCb0JjQptCQINCQ0JvQldCa0KHQkAor0JHQiNCV0JvQmNCm0JAg0JHQntCT0JTQkNCdCivQkdCI0JXQm9CY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0IjQldCb0JjQptCQINCU0JDQndCY0JvQngor0JHQiNCV0JvQmNCm0JAg0JTQntCR0KDQmNCS0J7QiNCVCivQkdCI0JXQm9CY0KbQkCDQlNCg0JDQk9Cj0KLQmNCdCivQkdCI0JXQm9CY0KbQkCDQk9Ce0IjQmtCeCivQkdCI0JXQm9CY0KbQkCDQk9Ce0IjQmtCeCivQkdCI0JXQm9CY0KbQkCDQiNCQ0JTQoNCQ0J3QmtCQCivQkdCI0JXQm9CY0KbQkCDQiNCQ0JTQoNCQ0J3QmtCQCivQkdCI0JXQm9CY0KbQkCDQm9Cj0JrQkAor0JHQiNCV0JvQmNCm0JAg0JzQmNCb0JDQnQor0JHQiNCV0JvQmNCm0JAg0JzQmNCb0JjQptCQCivQkdCI0JXQm9CY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JHQiNCV0JvQmNCm0JAg0J3QkNCU0JAKK9CR0IjQldCb0JjQptCQLdCf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQiNCV0JvQmNCm0JAg0KDQkNCI0JrQngor0JHQiNCV0JvQmNCm0JAg0KDQkNCa0J4KK9CR0IjQldCb0JjQptCQINCg0JDQotCa0J4KK9CR0IjQldCb0JjQptCQINCh0JDQktCa0JAKK9CR0IjQldCb0JjQptCQINCh0JvQkNCS0JrQngor0JHQiNCV0JvQmNCm0JAg0KHQn9CQ0KHQntCI0JUKK9CR0IjQldCb0JjQptCQINCi0JjQk9Cg0JDQnQor0JHQiNCV0JvQmNCm0JAg0JLQldCJ0JrQngor0JHQiNCV0JvQmNCm0JAg0JLQldCJ0JrQngor0JHQiNCV0JvQmNCm0JAg0JLQntCI0J4KK9CR0IjQldCb0JjQptCQINCS0KPQmtCe0KHQkNCS0JAKK9CR0IjQldCb0JjQptCQINCX0J7QoNCQ0J0KK9CR0IjQldCb0JjQndCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0IjQldCb0JjQndCY0Isg0IjQntCS0J4KK9CR0IjQldCb0JjQktCj0Jog0JPQntCg0JDQnQor0JHQiNCV0JvQmNCS0KPQmiDQktCb0JDQlNCY0JzQmNCgCivQkdCI0JXQidCQ0KYg0JDQndCQCivQkdCI0JXQidCQ0KYg0JHQntCg0JAKK9CR0IjQldCJ0JDQpiDQkdCg0JDQndCa0J4KK9CR0IjQldCJ0JDQpiDQnNCY0JvQkNCdCivQkdCI0JXQidCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CR0IjQldCb0J7QqCDQlNCQ0J3QmNCm0JAKK9CR0IjQldCb0J7QqCDQnNCY0KDQntCh0JvQkNCSCivQkdCI0JXQm9Ce0Kgg0JzQmNCg0J7QodCb0JDQkgor0JHQiNCV0JvQntCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQkdCI0JXQm9Ce0JHQkNCR0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0IjQldCb0J7QkdCQ0JHQkCDQlNCQ0KDQkAor0JHQiNCV0JvQntCR0KDQmiDQkdCe0KjQmtCeCivQkdCI0JXQm9Ce0JHQoNCaINCR0J7QqNCa0J4KK9CR0IjQldCb0J7QkdCg0Jog0JPQntCg0JDQnQor0JHQiNCV0JvQntCR0KDQmiDQm9CQ0JfQkNCgCivQkdCI0JXQm9Ce0JHQoNCaINCb0JDQl9CQ0KAKK9CR0IjQldCb0J7QkdCg0Jog0JzQkNCd0JUKK9CR0IjQldCb0J7QkdCg0Jog0JzQkNCg0JrQngor0JHQiNCV0JvQntCR0KDQmiDQnNCY0JvQkNCdCivQkdCI0JXQm9Ce0JHQoNCaINCc0JjQm9Ce0KgKK9CR0IjQldCb0J7QkdCg0Jog0J/QldCi0JDQoAor0JHQiNCV0JvQntCR0KDQmi3QktCQ0KDQk9CQINCI0JDQodCd0JAKK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCC0J7QoNCC0JUKK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCR0JvQkNCT0J7QiNCVCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQlNCV0IjQkNCd0JAKK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCU0KDQkNCT0JDQnQor0JHQiNCV0JvQntCT0KDQm9CY0Isg0InQo9CR0JjQptCQCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQidCj0JHQngor0JHQiNCV0JvQntCT0KDQm9CY0Isg0JzQmNCi0JDQoAor0JHQiNCV0JvQntCT0KDQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CR0IjQldCb0J7QotCe0JzQmNCLINCI0J7QktCeCivQkdCI0JXQm9Ce0JLQmNCLINCg0JDQotCa0J4KK9CR0IjQldCb0J7QktCj0Jog0JzQmNCg0IjQkNCd0JAKK9CR0IjQldCb0J7QktCj0Jog0KHQm9CQ0JLQmNCm0JAKK9CR0IjQldCb0J7QktCj0Jog0KHQm9CQ0JLQmtCeCivQkdCb0JDQqNCa0J4g0KLQmNCR0J7QoAor0JHQm9CQ0KjQmtCe0JLQmNCLINCk0KDQkNCK0J4KK9CR0JvQkNCo0JrQntCS0JjQiyDQm9CQ0KHQm9CeCivQkdCb0JDQqNCa0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQm9CQ0JbQkNCdINCk0KDQkNCK0J4KK9CR0JvQkNCW0JDQnSDQmNCS0J4KK9CR0JvQkNCW0JDQnSDQnNCQ0KDQmtCeCivQkdCb0JDQltCQ0J0g0KHQm9CQ0JLQmtCeCivQkdCb0JDQltCV0Jog0JPQo9Ch0KLQkNCSCivQkdCb0JDQltCV0Jog0IjQldCb0JXQndCQCivQkdCb0JDQltCV0Jog0JzQkNCg0JjQiNCQCivQkdCb0JDQltCV0Jog0JzQmNCl0JDQiQor0JHQm9CQ0JbQldCS0JAg0J7Qm9CT0JAKK9CR0JvQkNCW0JXQktCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0JvQkNCW0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CR0JvQkNCW0JXQktCY0Isg0JTQoNCQ0JPQngor0JHQm9CQ0JbQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQm9CQ0JbQldCS0JjQiyDQlNCj0KjQmNCm0JAKK9CR0JvQkNCW0JXQktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JHQm9CQ0JbQldCS0JjQiyDQpNCg0JDQitCeCivQkdCb0JDQltCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQkdCb0JDQltCV0JLQmNCLINCg0JDQlNCVINCU0KAg0JvQldCa0JDQoAor0JHQm9CQ0JbQldCS0JjQiyDQodCi0IjQldCf0JDQnQor0JHQm9CQ0JbQldCS0JjQiyDQodCj0JfQkNCd0JAKK9CR0JvQkNCW0JXQktCY0Isg0JLQldCg0JAKK9CR0JvQkNCW0JXQktCY0Isg0JfQntCg0JDQnQor0JHQm9CQ0JbQmNCLINCC0J7QoNCC0JUKK9CR0JvQkNCW0JjQiyDQkdCe0KjQmtCeCivQkdCb0JDQltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CR0JvQkNCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JvQkNCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JvQkNCW0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCb0JDQltCY0Isg0KXQoNCY0KHQotCY0J3QkAor0JHQm9CQ0JbQmNCLINCY0JLQkNCdCivQkdCb0JDQltCY0Isg0IjQldCb0JXQndCQCivQkdCb0JDQltCY0Isg0JrQodCV0J3QmNCI0JAKK9CR0JvQkNCW0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JvQkNCW0JjQiyDQnNCV0KLQntCU0JjQiNCVCivQkdCb0JDQltCY0Isg0JzQmNCl0JDQiNCb0J4KK9CR0JvQkNCW0JjQiyDQodCQ0JLQkAor0JHQm9CQ0JbQmNCLINCh0JDQktCa0J4KK9CR0JvQkNCW0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCb0JDQltCY0Isg0JLQmNCU0JAKK9CR0JvQkNCW0JjQmiDQkNCd0KLQkNCbCivQkdCb0JDQltCY0J0g0JTQoNCQ0JPQmNCK0JAKK9CR0JvQkNCT0J7QiNCV0JIg0JbQmNCS0JrQngor0JHQm9CQ0JPQntCI0JXQkiDQltCY0JLQmtCeCivQkdCb0JDQk9Ce0IjQldCSINCC0J7QoNCC0JUKK9CR0JvQkNCT0J7QiNCV0JIg0JjQktCQ0J0KK9CR0JvQkNCT0J7QiNCV0JIg0JzQmNCb0JjQktCe0IgKK9CR0JvQkNCT0J7QiNCV0JIg0JzQmNCb0J7QoNCQ0JQKK9CR0JvQkNCT0J7QiNCV0JIg0JzQmNCi0JAKK9CR0JvQkNCT0J7QiNCV0JIg0KDQkNCU0JAKK9CR0JvQkNCT0J7QiNCV0JIg0KDQkNCU0J7QodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQkiDQodCi0JXQktCQ0J0KK9CR0JvQkNCT0J7QiNCV0JIg0JLQldCb0JjQnNCY0KAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCn0JXQlNCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQltCQ0KDQmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkNCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0JXQi9Ca0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0J7QoNCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQiNCQ0JPQmNCm0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCI0JDQndCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCa0KDQodCi0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JrQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCa0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQntCoCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCb0JDQgtCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCe0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQndCQ0JTQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCg0JDQlNCVCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQldCg0JDQpNCY0J3QkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0IrQldCW0JDQndCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCi0JDQndCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0KLQldCS0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JLQldCi0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCb0JDQk9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQm9CQ0KXQniDQiNCe0JbQldCkCivQkdCb0JDQndCQ0KDQmNCaINCo0JDQndCU0J7QoAor0JHQm9CQ0J3QkNCg0JjQmiDQgtCj0KDQkAor0JHQm9CQ0J3QkNCg0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQm9CQ0J3QkNCg0JjQmiDQldCi0JXQm9Ca0JAKK9CR0JvQkNCd0JDQoNCY0Jog0JjQm9Ce0J3QkAor0JHQm9CQ0J3QkNCg0JjQmiDQiNCe0JbQldCkCivQkdCb0JDQndCQ0KDQmNCaINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JvQkNCd0JDQoNCY0Jog0J7Qm9CT0JAKK9CR0JvQkNCd0JDQoNCY0Jog0KHQotCV0JLQkNCdCivQkdCb0JDQndCQ0KDQmNCaINCi0JjQkdCe0KAKK9CR0JvQkNCd0JDQoNCY0Jog0JLQkNCb0JXQoNCY0IjQkAor0JHQm9CQ0J3Qo9Co0JAg0JHQoNCQ0J3QmtCeCivQkdCb0JDQndCj0KjQkCDQmNCb0JjQiNCQCivQkdCb0JDQndCj0KjQkCDQoNCQ0JTQlQor0JHQm9CQ0J3Qo9Co0JAg0JLQldCg0JAKK9CR0JvQkNCd0KPQqNCQINCX0J7QoNCQ0J0KK9CR0JvQkNCi0JXQqNCY0Isg0JzQmNCe0InQmtCQCivQkdCb0JDQotCV0KjQmNCLINCg0JDQiNCa0J4KK9CR0JvQkNCi0J3QmNCm0JrQmCDQktCV0KHQndCQCivQkdCb0JXQp9CY0Isg0IjQldCb0JXQndCQCivQkdCb0JXQp9CY0Isg0InQo9CR0JjQptCQCivQkdCb0JXQp9CY0Isg0JzQmNCb0JDQlNCY0J0KK9CR0JvQldCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQm9CV0KfQmNCLINCg0JDQlNCe0KHQkNCSINCc0KAKK9CR0JvQldCn0JjQiyDQodCQ0KjQkAor0JHQm9CV0KXQmyDQiNCe0JLQkNCd0JrQkAor0JHQm9CY0KLQktCQINCC0J7QoNCC0JUKK9CR0JvQmNCi0JLQkCDQkdCg0JDQndCa0J4KK9CR0JvQmNCX0JDQndCQ0KYg0JTQntCR0KDQmNCS0J7QiAor0JHQm9CY0JfQkNCd0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQkdCb0JjQl9CQ0J3QkNCmINCU0KPQqNCQ0J0KK9CR0JvQmNCX0JDQndCQ0KYg0IjQldCb0JrQmNCm0JAKK9CR0JvQmNCX0JDQndCQ0KYg0JvQldCf0J7QodCQ0JLQkAor0JHQm9CY0JfQkNCd0JDQpiDQnNCY0JvQntCg0JDQlAor0JHQm9CY0JfQkNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCb0JjQl9CQ0J3QkNCmINCd0JXQndCQ0JQKK9CR0JvQmNCX0JDQndCQ0KYg0KHQkNCS0JAKK9CR0JvQmNCX0JDQndCQ0KYg0JLQo9CI0JjQptCQCivQkdCb0J7QltCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCb0KPQnNCV0J3QqNCQ0IjQnSDQmtCQ0KDQm9CeCivQkdCe0KfQkNCdINCY0JLQkNCdCivQkdCe0KfQmtCe0KAg0J3QmNCa0J7Qm9CQCivQkdCe0KjQp9CQ0J3QmNCdINCR0J7QqNCa0J4KK9CR0J7QqNCa0JjQiyDQkdCe0KDQmtCQCivQkdCe0KjQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QqNCa0JjQiyDQndCQ0KLQkNCo0JAKK9CR0J7QqNCa0JjQiyDQl9Ce0KDQkAor0JHQntCo0JrQntCSINCW0JDQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCe0KjQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9CR0J7QqNCa0J7Qki3QiNCQ0JPQntCU0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0J7QqNCa0J7QkiDQidCj0JHQmNCd0JrQkAor0JHQntCo0JrQntCSINCb0KPQmtCQCivQkdCe0KjQmtCe0JIg0JzQmNCb0JjQktCe0IjQlQor0JHQntCo0JrQntCSINCc0JjQm9Ce0KgKK9CR0J7QqNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JHQntCo0JrQntCSINCh0JDQktCa0JAKK9CR0J7QqNCa0J7QkiDQodCe0KTQmNCI0JAKK9CR0J7QqNCa0J7QkiDQodCg0JXQotCV0J0KK9CR0J7QqNCa0J7QkiDQodCi0JXQktCQ0J0KK9CR0J7QqNCa0J7QkiDQodCi0J7QiNCQ0J0KK9CR0J7QqNCa0J7QkiDQktCV0KHQndCQCivQkdCe0KjQmtCe0JIg0JLQo9CI0JDQlNCY0J0KK9CR0J7QqNCa0J7QktCY0Isg0JbQldCJ0JrQngor0JHQntCo0JrQntCS0JjQiyDQltCY0JLQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkAor0JHQntCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CR0J7QqNCa0J7QktCY0Isg0JDQndCC0JAKK9CR0J7QqNCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQkdCe0KjQmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQkdCe0KjQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JHQntCg0JjQoQor0JHQntCo0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0IjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCe0KjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQntCo0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JPQntCg0JDQnQor0JHQntCo0JrQntCS0JjQiyDQpdCV0JTQktCY0JPQkAor0JHQntCo0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCa0KDQodCi0J4KK9CR0J7QqNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQkdCe0KjQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JHQntCo0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9CR0J7QqNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0J7QqNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0J7QqNCa0J7QktCY0Isg0J3QkNCU0JAKK9CR0J7QqNCa0J7QktCY0Isg0J3QkNCU0JAKK9CR0J7QqNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0KjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCo0JrQntCS0JjQiyDQndCe0JLQmtCQCivQkdCe0KjQmtCe0JLQmNCLLdCf0JXQoNCe0JLQmNCLINCY0JLQkNCd0JAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KjQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQkdCe0KjQmtCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQkdCe0KjQmtCe0JLQmNCLINCg0J7QodCQCivQkdCe0KjQmtCe0JLQmNCLINCh0JDQktCQCivQkdCe0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCe0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCo0JrQntCS0JjQiyDQodCi0JXQktCQ0J0g0JDQlNCS0J7QmtCQ0KIKK9CR0J7QqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0KjQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QqNCa0J7QktCY0Isg0JLQldCJ0JrQngor0JHQntCo0JrQntCS0JjQiyDQktCb0JDQlNCQCivQkdCe0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQntCo0JrQntCS0KHQmtCYINCU0J7QiNCn0JjQnQor0JHQntCo0JrQntCS0KHQmtCYINCg0JDQlNCQCivQkdCe0KjQitCQ0KfQmNCLINCg0JDQiNCa0J4KK9CR0J7QqNCK0JDQmiDQgtCe0KDQgtCVCivQkdCe0KjQitCQ0Jog0ILQo9Cg0JAKK9CR0J7QqNCK0JDQmiDQgtCj0KDQngor0JHQntCo0IrQkNCaINCQ0J3QkAor0JHQntCo0IrQkNCaINCR0J7QltCY0JTQkNCgCivQkdCe0KjQitCQ0Jog0JTQkNCg0JrQngor0JHQntCo0IrQkNCaINCU0JXQiNCQ0J0KK9CR0J7QqNCK0JDQmiDQlNCV0KHQkNCd0JrQkAor0JHQntCo0IrQkNCaINCk0JXQoNCV0J3Qpgor0JHQntCo0IrQkNCaINCY0KjQotCS0JDQnQor0JHQntCo0IrQkNCaINCI0JXQm9CV0J3QkAor0JHQntCo0IrQkNCaINCI0JXQm9CY0KbQkAor0JHQntCo0IrQkNCaINCI0JXQm9CY0KbQkAor0JHQntCo0IrQkNCaINCI0KPQm9Ca0JAKK9CR0J7QqNCK0JDQmiDQmtCQ0KLQkNCg0JjQndCQCivQkdCe0KjQitCQ0Jog0JrQntCh0KLQkAor0JHQntCo0IrQkNCaINCJ0KPQkdCe0JzQmNCgCivQkdCe0KjQitCQ0Jog0InQo9CR0J7QnNCY0KAKK9CR0J7QqNCK0JDQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0J7QqNCK0JDQmiDQnNCQ0KDQmNCI0JAKK9CR0J7QqNCK0JDQmiDQnNCY0JvQkNCdCivQkdCe0KjQitCQ0Jog0JzQmNCb0JXQndCQCivQkdCe0KjQitCQ0Jog0JzQmNCb0J7QoNCQ0JQKK9CR0J7QqNCK0JDQmiDQnNCY0KDQmtCeCivQkdCe0KjQitCQ0Jog0J3QldCC0J4KK9CR0J7QqNCK0JDQmiDQndCY0JrQntCb0JAKK9CR0J7QqNCK0JDQmiDQn9CQ0JLQm9CVCivQkdCe0KjQitCQ0Jog0J/QldCi0JDQoAor0JHQntCo0IrQkNCaINCg0JDQlNCc0JjQm9CQCivQkdCe0KjQitCQ0Jog0KDQkNCU0J7QiNCa0JAKK9CR0J7QqNCK0JDQmiDQoNCQ0JTQntCS0JDQnQor0JHQntCo0IrQkNCaINCh0JvQkNCS0JrQkAor0JHQntCo0IrQkNCaINCh0JvQkNCS0JrQngor0JHQntCo0IrQkNCaINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmiDQktCV0JvQmNCc0JjQoAor0JHQntCo0IrQkNCaINCS0JjQlNCe0KHQkNCS0JAKK9CR0J7QqNCK0JDQmiDQktCY0J3QmtCQCivQkdCe0KjQitCQ0Jog0JLQntCI0JjQodCb0JDQkgor0JHQntCo0IrQkNCaINCX0J7QoNCQ0J0KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JHQntCo0IrQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQntCo0IrQkNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQntCo0IrQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQmtCe0KDQndCV0JvQmNCI0JUKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCm0JAg0JTQmNCf0Jsg0J7QldCmCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQmNCi0JDQoAor0JHQntCo0IrQkNCa0J7QktCY0Isg0J/QkNCS0JDQngor0JHQntCo0IrQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQntCo0IrQkNCa0J7QktCY0Isg0KDQkNCi0JrQngor0JHQntCo0IrQkNCa0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9CR0J7Qi9CQ0J0g0JzQkNCg0JjQiNCQCivQkdCe0IvQldCg0JXQkyDQl9Cj0JfQkNCd0JAKK9CR0J7QltCQINCf0JDQmwor0JHQntCW0JDQndCY0Isg0JbQmNCa0JAKK9CR0J7QltCQ0J3QmNCLINCC0J7QoNCC0JUKK9CR0J7QltCQ0J3QmNCLINCQ0J3QgtCV0JvQmtCQCivQkdCe0JbQkNCd0JjQiyDQlNCj0KjQkNCdCivQkdCe0JbQkNCd0JjQiyDQk9Ce0IjQmtCeCivQkdCe0JbQkNCd0JjQiyDQiNCV0JvQldCd0JAKK9CR0J7QltCQ0J3QmNCLINCa0J7QodCQCivQkdCe0JbQkNCd0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QltCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JbQkNCd0JjQiyDQndCV0JLQldCd0JrQkAor0JHQntCW0JDQndCe0JLQmNCLINCg0JDQiNCa0JAKK9CR0J7QltCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQldCgINCb0JDQiNCe0KgKK9CR0J7QltCV0KAg0InQo9CU0JXQktCY0KIKK9CR0J7QltCV0KAg0JfQntCg0JAKK9CR0J7QltCY0KfQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCe0JbQmNCn0JjQiyDQn9CV0KLQkNCgCivQkdCe0JbQmNCn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCe0JbQmNCn0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQniDQlNCgCivQkdCe0JbQmNCn0JrQntCS0JjQiyDQndCV0KDQkAor0JHQntCW0JjQp9Ca0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQntCW0JjQp9Ca0J7QktCY0Isg0JfQntCg0JrQkAor0JHQntCW0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQntCW0JjQiyDQltCQ0KDQmtCeCivQkdCe0JbQmNCLINCW0JjQktCQ0J3QkAor0JHQntCW0JjQiyDQltCY0JLQmtCeCivQkdCe0JbQmNCLINCC0J7QoNCC0JUKK9CR0J7QltCY0Isg0ILQo9Cg0ILQmNCd0JAKK9CR0J7QltCY0Isg0ILQo9Cg0JAKK9CR0J7QltCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QltCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QltCY0Isg0JDQndCC0JXQm9Ca0JAKK9CR0J7QltCY0Isg0JHQntCo0JrQngor0JHQntCW0JjQiyDQkdCe0JbQkNCd0JAKK9CR0J7QltCY0Isg0JHQntCg0JjQktCe0IgKK9CR0J7QltCY0Isg0JHQntCg0JrQngor0JHQntCW0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JbQmNCLINCU0JDQoNCY0J3QmtCQCivQkdCe0JbQmNCLINCU0JXQiNCeCivQkdCe0JbQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0JbQmNCLINCU0KDQkNCT0JDQnQor0JHQntCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JbQmNCLINCU0KDQkNCT0JDQnQor0JHQntCW0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JbQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0J7QltCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCW0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCe0JbQmNCLINCU0KPQqNCQ0J0KK9CR0J7QltCY0Isg0JPQkNCS0KDQngor0JHQntCW0JjQiyDQk9Ce0IjQmtCeCivQkdCe0JbQmNCLINCT0J7QoNCU0JDQndCQCivQkdCe0JbQmNCLINCT0J7QoNCU0JDQndCQCivQkdCe0JbQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CR0J7QltCY0Isg0JjQm9CY0IjQkAor0JHQntCW0JjQiyDQmNCS0JDQnQor0JHQntCW0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQntCW0JjQiyDQiNCe0JLQkNCdCivQkdCe0JbQmNCLINCI0J7QktCQ0J0KK9CR0J7QltCY0Isg0IjQntCS0JjQptCQCivQkdCe0JbQmNCLINCI0KPQm9Ca0JAKK9CR0J7QltCY0Isg0JrQodCV0J3QmNCI0JAKK9CR0J7QltCY0Isg0JvQkNCX0JDQoAor0JHQntCW0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JbQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCW0JjQiyDQnNCQ0KDQkAor0JHQntCW0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQntCW0JjQiyDQnNCQ0KDQmtCeCivQkdCe0JbQmNCLINCc0JDQoNCa0J4KK9CR0J7QltCY0Isg0JzQkNCg0JrQngor0JHQntCW0JjQiyDQnNCQ0KLQmNCI0JAKK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JXQktCQCivQkdCe0JbQmNCLINCc0JjQm9CVCivQkdCe0JbQmNCLINCc0JjQm9CY0KHQkNCSCivQkdCe0JbQmNCLINCc0JjQidCa0J4KK9CR0J7QltCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QltCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7QltCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QltCY0Isg0JzQmNCg0JrQngor0JHQntCW0JjQiyDQnNCY0KDQmtCeCivQkdCe0JbQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0JbQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0JbQmNCLINCd0JXQgtCeCivQkdCe0JbQmNCLINCd0JXQndCQ0JQKK9CR0J7QltCY0Isg0J3QldCd0JDQlAor0JHQntCW0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QltCY0Isg0J7Qm9CT0JAKK9CR0J7QltCY0Isg0J7Ql9Cg0JXQnQor0JHQntCW0JjQiyDQn9CQ0JLQm9CVINCU0JjQn9CbINCY0J3Qkwor0JHQntCW0JjQiyDQn9CV0KDQkAor0JHQntCW0JjQiyDQn9CV0KLQkNCgCivQkdCe0JbQmNCLINCg0JDQlNCY0JLQntCICivQkdCe0JbQmNCLINCg0JDQlNCc0JjQm9CQCivQkdCe0JbQmNCLLdCg0JDQlNCe0JzQmNCg0J7QktCY0Isg0IjQntCa0JAKK9CR0J7QltCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7QltCY0Isg0KDQkNCI0JrQngor0JHQntCW0JjQiyDQoNCQ0J3QmtCeCivQkdCe0JbQmNCLINCh0JDQitCQCivQkdCe0JbQmNCLINCh0JDQktCQCivQkdCe0JbQmNCLINCh0JDQktCQCivQkdCe0JbQmNCLINCh0JDQktCeCivQkdCe0JbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QltCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCW0JjQiyDQodCg0JXQotCV0J0KK9CR0J7QltCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JHQntCW0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QltCY0Isg0KHQotCV0JLQngor0JHQntCW0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQkdCe0JbQmNCLINCi0JDQnNCQ0KDQkAor0JHQntCW0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQntCW0JjQiyDQotCV0J7QlNCe0KAKK9CR0J7QltCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQntCW0JjQiyDQktCV0KDQmNCm0JAKK9CR0J7QltCY0Ist0JLQmNCb0JjQiyDQiNCV0JvQldCd0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQkNCd0JrQkAor0JHQntCW0JjQiyDQktCb0JDQlNCQCivQkdCe0JbQmNCLINCS0JvQkNCU0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQkAor0JHQntCW0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0J7QltCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JHQntCW0JjQiyDQl9Cb0JDQotCQCivQkdCe0JbQmNCLINCX0JvQkNCi0JjQptCQCivQkdCe0JbQmNCLINCX0J7QoNCQ0J0KK9CR0J7QltCY0Isg0JfQntCg0JDQnQor0JHQntCW0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQmNCLINCX0J7QoNCQ0J0KK9CR0J7QltCY0Isg0JfQntCg0JrQkAor0JHQntCW0JjQlNCQ0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QltCY0JTQkNCgINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QltCY0JTQkNCgINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QltCY0JTQkNCgLdCa0KDQmNCW0JDQmiDQmNCg0JXQndCQCivQkdCe0JbQmNCU0JDQoCDQidCj0JHQntCc0JjQoAor0JHQntCW0JjQlNCQ0KDQldCS0JjQiyDQgtCj0KDQkAor0JHQntCW0JjQlNCQ0KDQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JHQntCW0JjQlNCQ0KDQldCS0JjQiyDQn9CV0KDQodCY0JTQkAor0JHQntCW0JjQlNCQ0KDQldCS0JjQiyDQktCV0InQmtCeCivQkdCe0JbQmNCdINCW0JDQoNCa0J4KK9CR0J7QltCY0J0g0ILQntCg0ILQlQor0JHQntCW0JjQnSDQlNCQ0J3QmNCm0JAKK9CR0J7QltCY0J0g0JTQkNCg0JjQndCa0JAKK9CR0J7QltCY0J0g0JTQldCh0JDQndCa0JAKK9CR0J7QltCY0J0g0JjQk9CK0JDQoiDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QltCY0J0g0JjQodCY0JTQntCgCivQkdCe0JbQmNCdINCI0JXQm9CY0KbQkAor0JHQntCW0JjQnSDQiNCj0JvQmNCI0JDQndCQCivQkdCe0JbQmNCdINCa0KDQmNCh0KLQmNCd0JAKK9CR0J7QltCY0J0g0JrQodCV0J3QmNCI0JAKK9CR0J7QltCY0J0g0JvQkNCX0JDQoAor0JHQntCW0JjQnSDQidCj0JHQmNCm0JAKK9CR0J7QltCY0J0g0InQo9CR0JjQptCQCivQkdCe0JbQmNCdINCc0JjQm9Ce0KgKK9CR0J7QltCY0J0g0JzQmNCb0J7QqAor0JHQntCW0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQkdCe0JbQmNCdINCd0JjQmtCe0JvQkAor0JHQntCW0JjQnSDQn9CQ0JLQm9CVCivQkdCe0JbQmNCdINCf0JXQotCQ0KAKK9CR0J7QltCY0J0g0KDQkNCU0JjQktCe0IgKK9CR0J7QltCY0J0g0KDQkNCU0J7QktCQ0J0KK9CR0J7QltCY0J0g0KHQmNCd0JjQqNCQCivQkdCe0JbQmNCdINCh0JvQkNCS0JjQptCQCivQkdCe0JbQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QltCY0J0g0KHQotCV0JLQkNCdCivQkdCe0JbQmNCdINCh0KLQldCS0JDQnQor0JHQntCW0JjQnSDQodCi0JXQktCQ0J0KK9CR0J7QltCY0J3QmNCLINCg0KPQltCY0KbQkAor0JHQntCW0JjQndCe0JLQodCa0Jgg0JDQndCT0JXQmwor0JHQntCW0JjQndCe0JLQodCa0Jgg0KDQmNCh0KLQlQor0JHQntCW0JjQndCe0JLQodCa0Jgg0KLQoNCQ0IjQkNCdCivQkdCe0JbQiNCQ0Jog0KTQoNCQ0IrQngor0JHQntCW0IjQkNCaINCc0JjQmtCQCivQkdCe0JbQiNCQ0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JHQntCW0J4g0JXQm9CV0J7QndCe0KDQkAor0JHQntCW0J7QmtCYINCV0KDQndCVCivQkdCe0JbQntCa0Jgg0JjQm9Ce0J3QkAor0JHQntCW0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0J7QltCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQkdCe0JbQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CR0J7QltCe0JLQmNCLINCT0J7QoNCn0JjQnQor0JHQntCW0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7QltCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQntCW0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCe0JbQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JHQntCW0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QltCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCe0JbQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQntCW0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9CR0J7QltCe0JLQmNCLINCg0JDQqNCa0J4KK9CR0J7QltCe0JLQmNCLINCh0JvQkNCS0JrQngor0JHQntCW0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0J7QltCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JHQntCW0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0J7QltCe0JLQmNCLINCS0JXQoNCQCivQkdCe0JbQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JbQo9Cb0JjQiyDQkNCd0ILQldCb0JrQngor0JHQntCW0KPQm9CY0Isg0JjQktCQ0J0KK9CR0J7QltCj0JvQmNCLINCY0JLQmNCm0JAKK9CR0J7QltCj0JvQmNCLINCh0JjQndCY0KjQkAor0JHQntCW0KPQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7QgtCQINCC0KPQoNCQCivQkdCe0ILQkCDQkNCd0JTQoNCY0IjQkAor0JHQntCC0JAg0JDQndCU0KDQmNCI0JAKK9CR0J7QgtCQINCQ0J3QlNCg0JjQiNCQCivQkdCe0ILQkCDQmNCS0JDQnQor0JHQntCC0JAg0JjQktCQ0J0KK9CR0J7QgtCQINCI0J7QktCQ0J0KK9CR0J7QgtCQINCh0JDQqNCQCivQkdCe0ILQkCDQodCi0JXQktCQ0J0KK9CR0J7QgtCQ0J3QkNCmINCI0JXQm9CV0J3QkAor0JHQntCC0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQntCC0JDQndCQ0KYg0JfQlNCg0JDQktCa0J4KK9CR0J7QgtCQ0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QkNCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0J7QkNCg0J7QkiDQiNCe0JLQkNCdCivQkdCe0JDQoNCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0JHQntCQ0KDQntCSINCc0JjQm9CQ0J3QmtCQCivQkdCe0JEg0IjQo9Ch0KLQmNCd0JAKK9CR0J7QkdCQ0Jog0JjQqNCi0JLQkNCdCivQkdCe0JHQkNCaINCa0JDQotCY0KbQkAor0JHQntCR0JDQnSDQgtCV0KDQggor0JHQntCR0JDQnSDQnNCQ0KDQmNCI0JAKK9CR0J7QkdCQ0J0g0JzQldCg0JjQnNCQCivQkdCe0JHQkNCdINCd0JXQlNCV0InQmtCeCivQkdCe0JHQkNCdINCh0KLQmNCf0JUKK9CR0J7QkdCQ0J0g0KHQo9CX0JDQndCQCivQkdCe0JHQkNCdLdCS0JDQoNCd0KPQoSDQldCg0JbQldCR0JXQogor0JHQntCR0JDQiiDQmNCc0KDQlQor0JHQntCR0JDQoCDQkdCe0KjQmtCeCivQkdCe0JHQkNCg0JXQktCY0Isg0KDQo9CW0JjQptCQCivQkdCe0JHQldCg0JjQiyDQntCb0JPQkAor0JHQntCR0JXQoNCY0Isg0JfQntCg0JrQkAor0JHQntCR0JjQiyDQgtCe0KDQgtCVCivQkdCe0JHQmNCLINCC0J7QoNCC0JUKK9CR0J7QkdCY0Isg0JHQntCT0JTQkNCdCivQkdCe0JHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCR0JjQiyDQmNCS0JDQnQor0JHQntCR0JjQiyDQiNCe0KHQmNCfCivQkdCe0JHQmNCLINCa0JDQiNCQCivQkdCe0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCe0JHQmNCLINCc0JjQm9CQ0J3QmtCQCivQkdCe0JHQmNCLINCc0JjQm9CY0KbQkAor0JHQntCR0JjQiyDQnNCb0JDQlNCV0J0KK9CR0J7QkdCY0Isg0J3QldCd0JDQlAor0JHQntCR0JjQiyDQoNCj0JbQmNCm0JAKK9CR0J7QkdCY0Isg0KLQkNCK0JAKK9CR0J7QkdCY0J3QkNCmINCI0J7QodCY0J8KK9CR0J7QkdCY0J3QkNCmINCb0KPQptCY0IjQkAor0JHQntCR0JjQndCV0KYg0IjQntCh0JjQnwor0JHQntCR0InQkNCT0J7QktCY0Isg0JHQntCT0J7QodCb0JDQkgor0JHQntCR0J7QqCDQodCi0JDQndCa0J4KK9CR0J7QpiDQodCi0JXQktCQ0J0KK9CR0J7QptCQINCU0JDQndCVCivQkdCe0KbQkCDQlNCj0KjQkNCdCivQkdCe0KbQkCDQnNCY0JvQlQor0JHQntCm0JAg0JzQmNCb0J7QqAor0JHQntCm0J7QndCQ0JTQmCDQnNCQ0KDQotCe0J0KK9CR0J7Qj9Ce0J3QmCDQk9CY0JfQldCb0JAKK9CR0J7Qj9Ce0J3QmCDQodCi0JXQktCQ0J0KK9CR0J7QlNCQINCI0J7QktCQ0J0KK9CR0J7QlNCQ0JrQntCoINCI0J7QodCY0J8KK9CR0J7QlNCQ0JrQntCoINCh0KLQiNCV0J/QkNCdCivQkdCe0JTQldCT0KDQkNCI0JDQpiDQodCe0KTQmNCI0JAKK9CR0J7QlNCYINCV0KDQltCV0JHQldCiCivQkdCe0JTQmCDQiNCQ0KHQnNCY0J3QkAor0JHQntCU0Jgg0JvQkNCI0J7QqAor0JHQntCU0Jgg0JvQkNCh0JvQngor0JHQntCU0Jgg0JzQmNCl0JDQiNCb0J4KK9CR0J7QlNCY0Kgg0IjQntCW0JXQpAor0JHQntCU0JjQqCDQnNCY0JvQmNCm0JAKK9CR0J7QlNCY0KDQntCW0JAg0J/QldCi0JDQoAor0JHQntCU0JjQoNCe0JbQkCDQoNCQ0JTQmNCS0J7QiAor0JHQntCU0JjQoNCe0JPQkCDQiNCe0JLQkNCdCivQkdCe0JTQmNCg0J7Qk9CQINCc0JDQoNCY0IjQkAor0JHQntCU0JjQoNCe0JPQkCDQndCY0JrQngor0JHQntCU0JjQoNCe0JPQkCDQn9Cg0JXQlNCg0JDQkwor0JHQntCU0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QlNCd0JDQoCDQqNCQ0J3QlNCe0KAKK9CR0J7QlNCd0JDQoCDQoNCY0KHQotCQCivQkdCe0JTQndCQ0KAg0KHQotCV0JLQkNCdCivQkdCe0JTQndCQ0KAg0JLQldCg0JjQptCQCivQkdCe0JTQniDQmNCo0KLQktCQ0J0KK9CR0J7QlNCeINCa0JDQoNCe0IkKK9CR0J7QlNCeINCc0JDQoNCY0IjQkAor0JHQntCU0J4g0JzQkNCg0JjQiNCQCivQkdCe0JTQniDQnNCQ0KLQmNCI0JAKK9CR0J7QlNCeINCh0KLQldCS0JDQnQor0JHQntCU0J7Qp9CYINCI0J7QltCV0KQKK9CR0J7QlNCe0JvQniDQqNCQ0J3QlNCe0KAKK9CR0J7QlNCe0JvQniDQmNCo0KLQktCQ0J0KK9CR0J7QlNCe0IrQmCDQmtCQ0KDQm9CeCivQkdCe0JTQntCgINCQ0J3QotCe0J0KK9CR0J7QlNCe0KAg0JDQndCi0KPQnQor0JHQntCU0J7QoCDQkdCe0KHQmNCJ0JrQkAor0JHQntCU0J7QoCDQpNCg0JDQitCQCivQkdCe0JTQntCgINCk0KDQkNCK0JAKK9CR0J7QlNCe0KAg0JjQqNCi0JLQkNCdCivQkdCe0JTQntCgINCI0JDQndCe0KgKK9CR0J7QlNCe0KAg0IjQntCh0JjQnwor0JHQntCU0J7QoCDQn9CV0KLQkNCgCivQkdCe0JTQntCgINCh0JjQndCY0KjQkAor0JHQntCU0KDQlSDQmNCo0KLQktCQ0J0KK9CR0J7QlNCg0JjQpy3QpdCV0KDQi9CQ0J0g0JDQoNCQ0J3QmtCQCivQkdCe0JTQoNCY0Kcg0JzQmNCl0JDQiNCb0J4KK9CR0J7QlNCg0JjQpyDQodCi0JXQktCQ0J0KK9CR0J7QlNCg0JjQpyDQktCV0KHQndCQCivQkdCe0JTQoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0J7QlNCg0J7QltCQINCR0KDQkNCd0JrQngor0JHQntCU0KDQntCW0JAg0J7Qm9CT0JAKK9CR0J7QlNCg0J7QltCY0Isg0JjQm9CY0IjQkAor0JHQntCU0KDQntCW0JjQiyDQmNCb0JjQiNCQCivQkdCe0JTQoNCe0JbQmNCLINCI0J7QktCQ0J0KK9CR0J7QlNCg0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCU0KDQntCW0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QlNCj0JvQmNCLINCo0KLQldCk0JDQndCY0IjQkAor0JHQntCU0KPQm9CY0Isg0IjQldCb0JXQndCQCivQkdCe0JTQo9Cb0JjQiyDQn9CV0KLQkNCgCivQkdCe0JTQo9Cb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JTQo9Cb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JTQktCQ0Jgg0IjQkNCd0JrQngor0JHQntCT0JDQoNCe0KjQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JPQkNCg0J7QqNCa0Jgg0JDQndCU0KDQmNCI0JAKK9CR0J7Qk9CQ0KLQmNCd0J7QodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0JHQntCT0JDQktCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JHQntCT0JDQktCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQkNCS0JDQpiDQlNCg0JDQk9CY0KbQkAor0JHQntCT0JDQktCQ0KYg0IjQkNCU0KDQkNCd0JrQkAor0JHQntCT0JDQktCQ0KYg0JzQmNCg0IjQkNCd0JAKK9CR0J7Qk9CU0JDQnSDQkNCd0JTQoNCQ0KgKK9CR0J7Qk9CU0JDQnSDQkdCY0InQkNCd0JAKK9CR0J7Qk9CU0JDQnSDQlNCj0KjQkNCdCivQkdCe0JPQlNCQ0J0g0JjQqNCi0JLQkNCdCivQkdCe0JPQlNCQ0J0g0JjQnNCg0JUKK9CR0J7Qk9CU0JDQnSDQmNCS0JDQnQor0JHQntCT0JTQkNCdINCI0J7QodCY0J8KK9CR0J7Qk9CU0JDQnSDQiNCe0KHQmNCfCivQkdCe0JPQlNCQ0J0g0JzQkNCd0JUKK9CR0J7Qk9CU0JDQnS3QnNCY0IjQmNCdINCU0KPQqNCQ0J3QmtCQCivQkdCe0JPQlNCQ0J0g0JzQmNCb0JrQkAor0JHQntCT0JTQkNCdINCd0JjQmtCe0JvQkAor0JHQntCT0JTQkNCdINCh0KLQldCS0JDQnQor0JHQntCT0JTQkNCdINCh0KLQldCS0JAKK9CR0J7Qk9CU0JDQnSDQktCV0KDQmNCm0JAKK9CR0J7Qk9CU0JDQnSDQl9Ce0KDQkNCdCivQkdCe0JPQlNCQ0J3QpNCYINCo0JDQndCU0J7QoCDQndCe0JLQmNCd0JDQoAor0JHQntCT0JTQkNCd0KTQmCDQnNCQ0KDQmNCd0JrQngor0JHQntCT0JTQkNCd0J7Qki3QkNCd0KLQntCd0JjQiyDQkdCY0InQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JHQmNCh0JXQoNCa0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9CR0J7Qk9CU0JDQndCe0JIg0JHQoNCQ0J3QmtCQINCU0KAg0JvQldCa0JDQoAor0JHQntCT0JTQkNCd0J7QkiDQlNCQ0J3QmNCb0J4KK9CR0J7Qk9CU0JDQndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCe0JPQlNCQ0J3QntCSINCU0KDQkNCT0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQlNCj0KjQkNCdCivQkdCe0JPQlNCQ0J3QntCSLdCl0JjQmyDQlNCe0JHQoNCY0JvQkAor0JHQntCT0JTQkNCd0J7QkiDQmNCg0JzQkAor0JHQntCT0JTQkNCd0J7QkiDQmNCS0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQm9CQ0JfQkNCgCivQkdCe0JPQlNCQ0J3QntCSINCc0JDQoNCY0KbQkAor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCSINCc0JjQm9CV0J3QkAor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQntCoCivQkdCe0JPQlNCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQkdCe0JPQlNCQ0J3QntCSINCd0JDQlNCQCivQkdCe0JPQlNCQ0J3QntCSINCe0JvQk9CQCivQkdCe0JPQlNCQ0J3QntCSINCf0JXQotCQ0KAKK9CR0J7Qk9CU0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQkdCe0JPQlNCQ0J3QntCSINCh0JvQkNCS0J3QkAor0JHQntCT0JTQkNCd0J7QkiDQodCc0JjQidCQCivQkdCe0JPQlNCQ0J3QntCSINCh0KLQkNCd0JrQngor0JHQntCT0JTQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCSINCX0J7QoNCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCW0JjQktCQ0J0g0JzQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkNCd0JrQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0J7QoNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCV0KLQldCb0JrQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JPQldCU0JXQntCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JjQm9Ce0J3QkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCI0J7QktCY0KbQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0IvQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQotCQ0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0JDQlNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0J7QktCQ0JoKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCf0JDQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQniDQnNCgINCf0KDQkNCS0J3QmNCaCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkCDQn9Cg0J7QpNCV0KHQntCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0J7QitCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQotCV0JLQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCS0JDQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCb0JDQiNCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JPQlNCQ0J3QntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JTQkNCd0J7QktCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JPQldCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQldCi0JjQiyDQodCQ0IrQkAor0JHQntCT0JjQp9CV0JLQmNCLINCW0JjQktCa0J4KK9CR0J7Qk9CY0KfQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCT0JjQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JHQntCT0JjQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7Qk9CY0KfQldCS0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQkdCe0JPQmNCn0JXQktCY0Isg0JrQntCh0KLQkNCU0JjQndCa0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQmtCg0KHQotCQCivQkdCe0JPQmNCn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQkdCe0JPQmNCn0JXQktCY0Isg0InQo9CR0JjQptCQCivQkdCe0JPQmNCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQkdCe0JPQmNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQkdCe0JPQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JPQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JPQmNCn0JXQktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQl9Ce0KDQmtCQCivQkdCe0JPQmNCo0JjQiyDQkNCd0JTQoNCY0IjQkAor0JHQntCT0JjQqNCY0Isg0KTQoNCQ0IrQkAor0JHQntCT0JjQqNCY0Isg0IjQntCh0JjQnwor0JHQntCT0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCT0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCT0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCe0JPQmNCLINCU0KDQkNCT0JDQnQor0JHQntCT0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQntCT0JjQiyDQmNCb0JTQmNCa0J4KK9CR0J7Qk9CY0Isg0IjQldCb0JXQndCQCivQkdCe0JPQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCe0JPQmNCLINCI0J7QktCQ0J0KK9CR0J7Qk9CY0Isg0InQo9CR0JjQptCQCivQkdCe0JPQmNCLINCc0JDQoNCY0IjQkAor0JHQntCT0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JPQmNCLINCh0J7QpNCY0IjQkAor0JHQntCT0JjQiyDQodCg0JXQi9Ca0J4KK9CR0J7Qk9CY0Isg0KHQotCV0JLQkNCdCivQkdCe0JPQmNCL0JXQktCY0Isg0JbQldCJ0JrQkAor0JHQntCT0JjQi9CV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQkdCe0JPQmNCL0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQmNCL0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCe0JPQmNCL0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0J7Qk9CY0IvQldCS0JjQiyDQiNCV0JvQmtCQCivQkdCe0JPQmNCL0JXQktCY0Isg0IjQntCb0JXQotCQCivQkdCe0JPQmNCL0JXQktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9CR0J7Qk9CY0IvQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQndCQ0KAg0KjQkNCd0JTQntCgCivQkdCe0JPQndCQ0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQkdCe0JPQndCQ0KAg0JDQndCi0JDQmwor0JHQntCT0J3QkNCgINCV0JvQmNCX0JDQkdCV0KLQkAor0JHQntCT0J3QkNCgINCV0JvQmNCX0JDQkdCV0KLQkAor0JHQntCT0J3QkNCgINCT0JjQl9CV0JvQkAor0JHQntCT0J3QkNCgINCI0J7QltCV0KQKK9CR0J7Qk9Cd0JDQoCDQmtCQ0JvQnNCQ0J0KK9CR0J7Qk9Cd0JDQoCDQm9CQ0IjQntCoCivQkdCe0JPQndCQ0KAg0JzQkNCg0JjQkAor0JHQntCT0J3QkNCgINCc0JDQoNCY0IjQkAor0JHQntCT0J3QkNCgINCc0JjQoNCa0J4KK9CR0J7Qk9Cd0JDQoCDQoNCe0JfQmNCa0JAKK9CR0J7Qk9Cd0JDQoCDQodCY0JvQkNCg0JQKK9CR0J7Qk9Cd0JDQoCDQodCi0JXQktCQ0J0g0JTQoAor0JHQntCT0J7QiNCV0JIg0JbQmNCS0JrQngor0JHQntCT0J7QiNCV0JLQkNCmINCV0KDQltCV0JHQldCiCivQkdCe0JPQntCI0JXQktCQ0KYg0IjQntCS0JDQnQor0JHQntCT0J7QiNCV0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCe0JbQngor0JHQntCT0J7QiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCT0J7QiNCV0JLQmNCLINCU0KDQkNCT0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQntCT0J7QiNCV0JLQmNCLINCb0JDQl9CeCivQkdCe0JPQntCI0JXQktCY0Isg0InQo9CR0JjQodCQ0JIKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQnNCY0KLQkNCgCivQkdCe0JPQntCI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQntCT0J7QiNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCe0JPQntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQntCT0J7QiNCV0JLQmNCLINCg0JDQiNCa0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQodCi0JDQndCY0IjQkAor0JHQntCT0J7QiNCV0JLQmNCLINCi0J7QlNCe0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JHQntCT0J7QiNCV0JLQmNCLINCS0JvQkNCU0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCb0JDQlNCY0KbQkAor0JHQntCT0J7QiNCV0JLQmNCLINCS0JvQkNCI0JrQngor0JHQntCT0J7QodCQ0JIg0JzQmNCb0JDQnQor0JHQntCT0J7QodCQ0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7Qk9Ce0KHQkNCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCe0JPQntCh0JDQktCQ0KYg0JfQlNCg0JDQktCa0J4KK9CR0J7Qk9Ce0KHQkNCS0InQldCSINCI0J7QktCQ0J3QmtCQCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JbQkNCg0JrQngor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgINCY0J3Qkwor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCVCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCX0JvQkNCi0JAKK9CR0J7Qk9Ce0JLQkNCmINCU0J7QkdCg0J7QodCb0JDQktCQCivQkdCe0JPQntCS0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQntCS0JDQpiDQnNCY0JvQkNCdINCU0KAKK9CR0J7Qk9Ce0JLQkNCmINCd0JjQmtCe0JvQkAor0JHQntCT0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0J7QktCY0Isg0JjQkdCe0IjQkAor0JHQntCT0J7QktCY0Isg0JzQmNCI0J4KK9CR0J7Qk9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JPQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0JPQntCS0JjQiyDQktCV0KHQndCQCivQkdCe0JPQntCS0JjQiyDQktCV0KHQndCQCivQkdCe0JPQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9CR0J7Qk9Cj0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCe0JPQo9Cd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkdCe0JPQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0JPQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JPQo9Cd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCT0KPQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7Qk9Cj0J3QntCS0JjQiyDQktCb0JDQlNCVCivQkdCe0JPQo9Cd0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCT0KPQoiDQidCj0JHQngor0JHQntCT0KPQoiDQndCQ0JTQkAor0JHQntCl0JDQp9CV0Jog0JLQkNCb0KLQldCgCivQkdCe0KXQmNCd0KYg0JHQntCW0JDQndCQCivQkdCe0KXQntCm0JrQmCDQiNCQ0J3QntCoCivQkdCe0KXQntCm0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQkdCe0KXQntCm0JrQmCDQn9CV0KLQkNCgCivQkdCe0KXQntCm0JrQmCDQoNCe0JHQldCg0KIKK9CR0J7QpdCe0KLQkCDQodCY0JvQktCV0KHQotCV0KAKK9CR0J7QpdCj0Kgg0IjQntCS0JDQnQor0JHQntCI0KfQldCi0JAg0JPQntCg0JDQnQor0JHQntCI0KfQldCS0KHQmtCYINCd0JDQo9CcCivQkdCe0IjQp9CY0Isg0JzQmNCb0JDQnQor0JHQntCI0JAg0JDQndCU0KDQkNCoCivQkdCe0IjQkCDQldCg0JjQmtCQCivQkdCe0IjQkNCmINCU0JDQpNCY0J3QkAor0JHQntCI0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JHQntCI0JDQlNCY0Isg0JzQmNCg0JrQngor0JHQntCI0JDQk9CY0Isg0JzQkNCg0JrQngor0JHQntCI0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QiNCQ0J3QmNCLINCQ0J3QkAor0JHQntCI0JDQndCY0Isg0JHQntCT0J7QodCQ0JIKK9CR0J7QiNCQ0J3QmNCLINCR0J7QoNCY0JrQkAor0JHQntCI0JDQndCY0Isg0JHQntCh0JjQidCa0JAKK9CR0J7QiNCQ0J3QmNCLINCR0KDQkNCd0JUKK9CR0J7QiNCQ0J3QmNCLINCR0KPQlNCY0JzQmNCgCivQkdCe0IjQkNCd0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQntCI0JDQndCY0Isg0JTQldCh0JDQndCa0JAKK9CR0J7QiNCQ0J3QmNCLINCU0KDQkNCT0JjQptCQCivQkdCe0IjQkNCd0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0IjQkNCd0JjQiyDQlNCj0KjQkNCdCivQkdCe0IjQkNCd0JjQiyDQlNCj0KjQkNCdCivQkdCe0IjQkNCd0JjQiyDQmNCb0JjQiNCQCivQkdCe0IjQkNCd0JjQiyDQiNCV0JvQmNCm0JAKK9CR0J7QiNCQ0J3QmNCLINCJ0KPQkdCeCivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQkNCdCivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQntCI0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0J7QiNCQ0J3QmNCLINCc0JjQm9Ce0KgKK9CR0J7QiNCQ0J3QmNCLINCc0JjQm9Cj0J0KK9CR0J7QiNCQ0J3QmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0IjQkNCd0JjQiyDQoNCQ0J3QmtCeCivQkdCe0IjQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0IjQkNCd0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCe0IjQkNCd0JjQiyDQktCV0JvQmNCc0JjQoAor0JHQntCI0JDQndCY0Isg0JfQntCg0JDQnQor0JHQntCI0JDQndCY0Isg0JfQntCg0JAKK9CR0J7QiNCQ0J3QntCS0JjQiyDQp9CV0JTQngor0JHQntCI0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9CR0J7QiNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCe0IjQkNCd0J7QktCY0Isg0JzQkNCg0IjQkNCdCivQkdCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QiNCQ0J3QntCS0JjQiyDQoNCY0KHQotCQ0J0KK9CR0J7QiNCQ0J3QntCS0JjQiyDQktCj0IjQkNCU0JjQnQor0JHQntCI0JDQndCe0JLQmNCLINCS0KPQiNCQ0JTQmNCdCivQkdCe0IjQkNCiINCI0JDQndCa0J4KK9CR0J7QiNCQ0KIg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QiNCQ0KIg0KDQkNCU0J7QnNCY0KAKK9CR0J7QiNCQ0KIg0JLQldCh0JXQm9CY0J0g0JTQoAor0JHQntCI0JHQmNCLINCg0JDQiNCa0J4KK9CR0J7QiNCY0KfQmNCLINCg0JDQlNCY0JLQntCICivQkdCe0IjQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CR0J7QiNCY0Isg0JHQm9CQ0JPQntCi0JAKK9CR0J7QiNCY0Isg0JHQntCT0JTQkNCdCivQkdCe0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCe0IjQmNCLINCR0J7Qk9Ce0JzQmNCgCivQkdCe0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CR0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0JTQkNCd0JjQptCQCivQkdCe0IjQmNCLINCU0JXQiNCQ0J0KK9CR0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JHQntCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQntCI0JjQiyDQlNCg0JDQk9CY0IrQkAor0JHQntCI0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQntCI0JjQiyDQlNCj0KjQkNCdCivQkdCe0IjQmNCLINCU0KPQqNCQ0J0KK9CR0J7QiNCY0Isg0JPQntCg0JTQkNCd0JAg0JTQoAor0JHQntCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCI0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0J7QiNCY0Ist0JrQntCb0JDQoNCh0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JHQntCI0JjQiyDQm9CQ0JfQkNCgCivQkdCe0IjQmNCLINCc0JDQoNCa0J4KK9CR0J7QiNCY0Isg0JzQmNCo0JrQngor0JHQntCI0JjQiyDQnNCY0JvQkAor0JHQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0JHQntCI0JjQiyDQnNCY0JvQmNCU0JDQoAor0JHQntCI0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQntCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCI0JjQiyDQnNCY0KDQmtCeCivQkdCe0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQkdCe0IjQmNCLINCg0JDQiNCa0J4KK9CR0J7QiNCY0Isg0KDQkNCI0JrQngor0JHQntCI0JjQiyDQodCV0J3QmtCQCivQkdCe0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCe0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCe0IjQmNCLINCh0J7QitCY0KbQkAor0JHQntCI0JjQiyDQodCg0JXQotCV0J0KK9CR0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQkdCe0IjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0KPQk9CJ0JXQqNCQCivQkdCe0IjQmNCLINCS0JXQoNCQCivQkdCe0IjQmNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQkdCe0IjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QiNCa0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QiNCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QiNCa0J4g0IjQntCS0JDQndCa0JAKK9CR0J7QiNCa0J4g0JzQkNCg0JjQiNCQCivQkdCe0IjQmtCeINCd0JXQktCV0J3QmtCQCivQkdCe0IjQmtCe0JIg0KTQldCe0JTQntCgCivQkdCe0IjQmtCe0JIg0KDQntCc0JDQnQor0JHQntCI0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0J7QiNCa0J7QktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JHQntCI0JrQntCS0JjQiyDQm9CV0J3QkAor0JHQntCI0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QiNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCI0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CR0J7QiNCe0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7QiNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCI0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0IjQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0J7QiNCe0JLQmNCLINCU0KDQkNCT0J7QiNCVCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0J7QiNCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0J7QiNCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0J7QiNCe0JLQmNCLINCY0JrQntCd0JjQiNCQCivQkdCe0IjQntCS0JjQiyDQiNCQ0JrQntCSCivQkdCe0IjQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0J7QiNCe0JLQmNCLINCJ0KPQkdCeCivQkdCe0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0IjQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QiNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQntCI0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQkdCe0IjQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCe0IjQntCS0JjQiyDQndCQ0JTQkAor0JHQntCI0J7QktCY0Isg0J3QntCS0JjQptCQCivQkdCe0IjQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0IjQntCS0JjQiyDQodCg0JXQotCa0J4KK9CR0J7QiNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QiNCe0JLQmNCLINCS0JXQm9CY0KjQkAor0JHQntCI0J7QktCY0Isg0JLQldCJ0JrQngor0JHQntCI0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQkdCe0IjQntCS0JjQiyDQktCe0IjQmNCdCivQkdCe0IjQntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JrQqNCQ0J0g0JDQndCa0JAKK9CR0J7QmtCo0JDQnSDQldCc0JjQm9CY0IjQkNCdCivQkdCe0JrQqNCQ0J0g0KHQotCe0IjQkNCdCivQkdCe0JrQqNCY0Isg0ILQntCa0JAKK9CR0J7QmtCo0JjQiyDQiNCV0JvQldCd0JAKK9CR0J7QmtCo0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JrQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QmtCo0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQntCa0KjQmNCLINCg0JDQlNCQCivQkdCe0JrQqNCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0J7QmtCo0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCe0JrQqNCY0Isg0KDQo9CW0JXQndCa0JAKK9CR0J7QmtCo0JjQiyDQodCe0JrQkAor0JHQntCa0JAg0JbQmNCS0JrQkAor0JHQntCa0JAg0KHQmNCb0JLQmNCeCivQkdCe0JrQkCDQodCi0IjQldCf0JDQnQor0JHQntCa0JDQnSDQkNCd0ILQkAor0JHQntCa0JDQnSDQkNCd0JjQptCQCivQkdCe0JrQkNCdINCU0KDQkNCT0J4KK9CR0J7QmtCQ0J0g0JzQmNCb0JDQnQor0JHQntCa0JDQnSDQnNCY0JvQkNCdCivQkdCe0JrQkNCdINCc0JjQm9CV0J3QkAor0JHQntCa0JDQnSDQnNCY0KDQmtCeCivQkdCe0JrQkNCdINCd0JjQmtCe0JvQkAor0JHQntCa0JDQnSDQoNCQ0JTQlQor0JHQntCa0JDQnSDQoNCQ0JTQntCc0JjQoAor0JHQntCa0JDQnSDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JrQkNCdINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QmtCQ0J0g0JLQldCJ0JrQngor0JHQntCa0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JrQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JrQmNCLINCU0JDQndCY0JvQngor0JHQntCa0JjQiyDQlNCj0KjQkNCdCivQkdCe0JrQmNCLINCc0JjQm9CQ0J0KK9CR0J7QmtCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JHQntCa0JjQiyDQktCY0JQKK9CR0J7QmtCe0KAg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QmtCe0KAg0ILQntCg0ILQlQor0JHQntCa0J7QoCDQk9CQ0JLQoNCQCivQkdCe0JrQntCgINCb0JDQodCb0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCe0JrQntCgINCb0JDQodCb0J4KK9CR0J7QmtCe0KAg0JzQkNCg0JjQiNCQCivQkdCe0JrQntCg0J7QkiDQotCQ0J3QkNCh0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JHQntCa0KPQnSDQlNCj0JHQoNCQ0JLQmtCQCivQkdCe0JrQo9CdINCd0J7QktCQ0JoKK9CR0J7QmtCj0J0g0J/QldCi0JDQoAor0JHQntCa0KPQnSDQodCf0JDQodCY0IjQkAor0JHQntCa0KPQnSDQodCi0JXQktCQCivQkdCe0JrQo9CdINCS0JvQkNCU0JjQnNCY0KAKK9CR0J7Qm9CQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQkdCe0JvQlNCY0JbQkNCgINCI0J7QltCV0KQKK9CR0J7Qm9CU0JjQltCQ0KAg0JvQkNCh0JvQngor0JHQntCb0JTQmNCdINCg0KPQlNCe0JvQpAor0JHQntCb0JTQntCm0JrQmCDQiNCe0JbQldCkCivQkdCe0JvQlNCe0KbQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CR0J7Qm9CU0J7QkyDQm9CQ0IjQntCoCivQkdCe0JvQldCg0JDQpiDQkNCd0JAKK9CR0J7Qm9CV0KHQndCY0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCb0JXQodCd0JjQmtCe0JIg0JTQkNCg0JjQndCa0JAKK9CR0J7Qm9CV0KHQndCY0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQkdCe0JvQldCh0J3QmNCa0J7QkiDQl9Ce0KDQkNCdCivQkdCe0JvQpCDQkdCg0JDQndCa0J4KK9CR0J7Qm9CkINCd0JXQktCV0J3QmtCQCivQkdCe0JvQpNCY0Jog0IjQntCh0JjQnwor0JHQntCb0JjQiyDQl9Cb0JDQotCa0J4KK9CR0J7Qm9CY0J3QntCS0KHQmtCQINCh0J7QpNCY0IjQkAor0JHQntCb0JjQndCe0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JHQntCJ0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0J7QidCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCJ0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CR0J7QidCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QidCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQntCJ0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JHQntCJ0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQntCb0JzQkNCd0JDQpiDQkdCg0JDQndCa0J4KK9CR0J7Qm9Cc0JDQndCQ0KYg0JXQktCT0JXQndCY0IjQlQor0JHQntCb0J4g0JbQntCb0KIKK9CR0J7Qm9Ce0Jog0JDQndCU0KDQkNCoCivQkdCe0JvQntCaINCI0J7QltCV0KQKK9CR0J7Qm9Ce0Jog0JrQkNCg0JvQngor0JHQntCb0J7QmiDQmtCQ0KDQntCJCivQkdCe0JvQntCaINCf0JDQmwor0JHQntCb0J7QoNCY0J0g0KDQkNCU0JjQktCe0IgKK9CR0J7Qm9Ci0JAg0JbQldCJ0JrQngor0JHQntCb0KLQkCDQgtCj0KDQkAor0JHQntCb0KLQkCDQkdCg0JDQndCa0J4KK9CR0J7Qm9Ci0JAg0JTQoNCQ0JPQmNCm0JAKK9CR0J7QnNCV0KjQotCQ0KAg0KDQkNCU0JAKK9CR0J7QndCQINCh0KLQldCS0JDQnQor0JHQntCd0I/QmNCLINCU0JXQiNCQ0J0KK9CR0J7QndCU0JDQoNCV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9CR0J7QndCU0J7QmtCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQntCd0JTQntCa0JjQiyDQidCj0JHQmNCm0JAKK9CR0J7QndCV0KDQoiDQlNCj0KjQkNCdINCU0KAKK9CR0J7QndCV0KDQoiDQlNCj0KjQkNCdCivQkdCe0J3QmNCLINCU0KDQkNCT0JDQnQor0JHQntCd0JjQiyDQnNCQ0KDQiNCQ0J0KK9CR0J7QndCY0Isg0JzQmNCb0JjQptCQCivQkdCe0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0J7QndCj0KEg0InQo9CR0JjQptCQCivQkdCe0KAg0JXQndCU0KDQlQor0JHQntCg0KfQkNCd0JjQnSDQidCj0JHQmNCm0JAKK9CR0J7QoNCn0JDQndCY0J0g0KHQntCk0JjQiNCQCivQkdCe0KDQp9CQ0J3QodCa0Jgg0KLQmNCd0JrQkAor0JHQntCg0KfQmNCLINCR0KPQlNCVCivQkdCe0KDQp9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9CR0J7QoNCn0JjQiyDQiNCe0JLQkNCdCivQkdCe0KDQqNCYINCi0JjQktCQ0JTQkNCgINCU0JjQn9CbINCe0JXQpgor0JHQntCg0KjQntCoINCQ0KLQmNCb0JAKK9CR0J7QoNCo0J7QqCDQkdCQ0KDQkdCQ0KDQkAor0JHQntCg0KjQntCoINCY0KjQotCS0JDQnQor0JHQntCg0KjQntCoINCY0KjQotCS0JDQnQor0JHQntCg0KjQntCoINCY0JzQoNCVCivQkdCe0KDQqNCi0J3QkNCgINCl0JXQndCg0JjQmgor0JHQntCg0KjQotCd0JXQoCDQndCQ0JTQkAor0JHQntCg0ILQmNCdINCb0JDQl9CQ0KAKK9CR0J7QoNCC0J7QqNCa0Jgg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QoNCC0J7QqNCa0Jgg0JHQntCo0JrQngor0JHQntCg0ILQntCo0JrQmCDQnNCY0JvQmNCm0JAKK9CR0J7QoNCC0J7QqNCa0Jgg0KLQkNCc0JDQoNCQCivQkdCe0KDQgtCe0KjQmtCYINCS0J7QiNCY0J0KK9CR0J7QoNCQ0Kgg0JjQoNCV0J3QkAor0JHQntCg0JDQoSDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0KDQkNChINCc0JDQoNCY0IjQkAor0JHQntCg0JDQoSDQnNCY0JvQmNCm0JAKK9CR0J7QoNCR0JDQqCDQmtCQ0KDQntCJCivQkdCe0KDQkdCQ0Kgg0JLQmNCe0JvQldCi0JAKK9CR0J7QoNCR0JDQqCDQl9Ce0JvQotCQ0J0KK9CR0J7QoNCR0JXQiSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCg0JHQldCJINCI0JDQndCe0KgKK9CR0J7QoNCR0JXQiSDQiNCe0KHQmNCfCivQkdCe0KDQkdCV0Ikg0InQo9CR0JjQptCQCivQkdCe0KDQkdCV0Ikg0JzQkNCg0JjQiNCQCivQkdCe0KDQkdCV0Ikg0J3QldCS0JXQndCa0JAKK9CR0J7QoNCU0JDQqCDQgtCV0JfQlQor0JHQntCg0JTQkNCoINCQ0JrQntCoCivQkdCe0KDQlNCQ0Kgg0JHQldCb0JAKK9CR0J7QoNCU0JDQqCDQpNCV0KDQldCd0KYKK9CR0J7QoNCU0JDQqCDQpNCg0JDQitCQCivQkdCe0KDQlNCQ0Kgg0KXQmNCb0JTQkAor0JHQntCg0JXQndCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9CR0J7QoNCV0J3QntCS0JjQiyDQnNCY0JvQlQor0JHQntCg0JXQndCe0JLQmNCLINCS0JXQoNCQCivQkdCe0KDQmCDQmNCc0KDQlSDQlNCgCivQkdCe0KDQmCDQnNCQ0KDQmNCI0JAKK9CR0J7QoNCY0KfQmNCLINCb0JDQl9CQ0KAKK9CR0J7QoNCY0KfQmNCLINCd0J7QktCQ0JoKK9CR0J7QoNCY0KfQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0J7QoNCY0KfQmNCLINCg0JDQlNCj0JvQlQor0JHQntCg0JjQqNCV0JIg0JHQntCg0JjQodCb0JDQkgor0JHQntCg0JjQqNCV0JIg0InQmNCJ0JDQndCQCivQkdCe0KDQmNCo0JXQkiDQnNCY0JvQldCd0JrQngor0JHQntCg0JjQqNCV0JIg0J3QmNCa0J7Qm9CQCivQkdCe0KDQmNCo0JXQkiDQoNCj0JbQmNCm0JAKK9CR0J7QoNCY0KjQldCSINCh0JDQktCQCivQkdCe0KDQmNCo0JXQkiDQotCV0J7QlNCe0KAKK9CR0J7QoNCY0KjQldCSINCS0JDQodCQCivQkdCe0KDQmNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0J7QoNCY0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0J7QoNCY0Isg0KfQldCU0J7QnNCY0KAKK9CR0J7QoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCY0Isg0JTQo9Co0JDQnQor0JHQntCg0JjQiyDQmtCQ0JzQldCd0JrQngor0JHQntCg0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0J7QoNCY0Isg0JzQmNCb0JDQnQor0JHQntCg0JjQiyDQnNCY0JvQmtCQCivQkdCe0KDQmNCLINCd0JjQmtCe0JvQkAor0JHQntCg0JjQiyDQn9CV0KLQkNCgCivQkdCe0KDQmNCLINCh0KLQldCS0JDQnQor0JHQntCg0JjQiyDQl9Ce0KDQkNCdCivQkdCe0KDQmNCLINCX0J7QoNCQ0J0KK9CR0J7QoNCY0KEg0IjQntCh0JjQnwor0JHQntCg0JjQktCe0IjQldCS0JjQiyDQktCY0KLQntCc0JjQoAor0JHQntCg0IjQkNCd0JjQnSDQodCb0JDQktCa0J4KK9CR0J7QoNCI0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkdCe0KDQiNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQkdCe0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QoNCa0J4g0KHQotCQ0J3QmNCh0JvQkNCSCivQkdCe0KDQmtCe0JLQkNCn0JrQmCDQl9Ce0KDQkNCdCivQkdCe0KDQmtCe0JLQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9CR0J7QoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CR0J7QoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCg0InQkCDQodCi0JXQktCQ0J0KK9CR0J7QoNCe0Kgg0KjQkNCd0JTQntCgCivQkdCe0KDQntCoINCo0JDQndCU0J7QoAor0JHQntCg0J7QqCDQgtCV0KDQggor0JHQntCg0J7QqC3QgtCV0JLQmCDQltCV0InQmtCeCivQkdCe0KDQntCoINCC0J7QoNCC0JUKK9CR0J7QoNCe0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCe0Kgg0JDQndCU0KDQmNCI0JAKK9CR0J7QoNCe0Kgg0JDQndCi0KPQnQor0JHQntCg0J7QqCDQldCg0J3QlQor0JHQntCg0J7QqCDQldCS0JAKK9CR0J7QoNCe0Kgg0JjQqNCi0JLQkNCdCivQkdCe0KDQntCoINCI0J7QltCV0KQKK9CR0J7QoNCe0Kgg0IjQntCb0JDQnQor0JHQntCg0J7QqCDQiNCj0JvQmNCI0JAKK9CR0J7QoNCe0Kgg0JvQkNCU0JjQodCb0JDQkgor0JHQntCg0J7QqCDQm9CQ0IjQntCoCivQkdCe0KDQntCoINCc0JDQoNCT0JjQotCQCivQkdCe0KDQntCoINCc0JjQpdCQ0IjQm9CeCivQkdCe0KDQntCoINCc0JjQpdCQ0IjQm9CeCivQkdCe0KDQntCoINCc0JjQmtCb0J7QqAor0JHQntCg0J7QqCDQktCV0KDQkAor0JHQntCg0J7QqNCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQkdCe0KDQntCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCg0J7QptCa0Jgg0JTQkNCd0JjQptCQCivQkdCe0KDQntCm0JrQmCDQidCj0JHQmNCd0JrQkAor0JHQntCg0J7QiNCQINCJ0KPQkdCQ0J0KK9CR0J7QoNCe0IjQkCDQoNCj0JbQmNCm0JAKK9CR0J7QoNCe0IjQldCSINCQ0KDQodCV0J0g0JTQoCDQm9CV0JrQkNCgCivQkdCe0KDQntCI0JXQkiDQldCc0JjQm9CY0IjQkNCdINCU0KAKK9CR0J7QoNCe0IjQldCSINCI0JDQk9Ce0JTQkAor0JHQntCg0J7QiNCV0JIg0InQo9CR0J7QnNCY0KAKK9CR0J7QoNCe0IjQldCSINCg0JDQlNCc0JjQm9CQCivQkdCe0KDQntCI0JXQktCY0Isg0JDQndCQCivQkdCe0KDQntCI0JXQktCY0Isg0JHQntCo0JrQngor0JHQntCg0J7QiNCV0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7QoNCe0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0KDQntCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0KDQntCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0KDQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCg0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7QoNCe0IjQldCS0JjQiyDQmtCg0KHQotCQCivQkdCe0KDQntCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQkdCe0KDQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JHQntCg0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9CR0J7QoNCe0IjQldCS0JjQiyDQn9CV0KLQoNCQCivQkdCe0KDQntCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeINCf0KDQntCkCivQkdCe0KDQntCc0JjQodCQINCU0KDQkNCT0JjQptCQCivQkdCe0KDQntCc0JjQodCQINCI0JXQm9CV0J3QkAor0JHQntCg0J7QitCQ0KYg0JTQoNCQ0JPQkNCdCivQkdCe0KDQntCK0JDQpiDQnNCY0JvQmNCm0JAKK9CR0J7QoNCe0IrQkNCmINCe0JvQk9CQCivQkdCe0KDQntCK0JDQpiDQktCV0KDQkAor0JHQntCg0J7QotCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KDQntCi0JAg0IjQntCS0JDQndCa0JAKK9CR0J7QoNCe0KLQkCDQnNCY0JvQkNCdCivQkdCe0KDQntCi0JAg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QoNCe0KLQkCDQnNCY0KDQkAor0JHQntCg0J7QotCQINCg0JDQlNCe0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQkdCe0KDQntCS0KfQkNCd0JjQnSDQidCj0JHQntCc0JjQoAor0JHQntCg0J7QktCn0JDQndCY0J0g0JzQmNCb0JjQodCQ0JIKK9CR0J7QoNCe0JLQp9CQ0J3QmNCdINCd0JXQlNCV0InQmtCeCivQkdCe0KDQntCS0KfQkNCd0JjQnSDQoNCQ0JTQntCc0JjQoAor0JHQntCg0J7QktCn0JDQndCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQntCg0J7QktCQ0KYg0JDQoNCh0J4KK9CR0J7QoNCe0JLQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCg0J7QktCQ0KYg0JrQkNCi0JjQptCQCivQkdCe0KDQntCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JHQntCg0J7QktCY0KfQkNCd0JjQnSDQnNCY0JvQntCg0JDQlAor0JHQntCg0J7QktCY0Isg0JDQotCY0JvQkAor0JHQntCg0J7QktCY0Isg0IjQntCh0JjQnwor0JHQntCg0J7QktCY0Isg0IjQntCS0JDQnQor0JHQntCg0J7QktCY0Isg0JrQntCh0KLQkAor0JHQntCg0J7QktCY0Isg0JzQldCd0JAKK9CR0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QoNCe0JLQmNCLINCg0KPQlNCe0JvQpAor0JHQntCg0J7QktCY0Isg0JLQm9CQ0JTQlQor0JHQntCg0J7QktCY0IvQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQkdCe0KDQntCS0JjQptCQINCR0J7QiNCa0JAKK9CR0J7QoNCe0JLQmNCm0JAg0JjQktCQ0J0KK9CR0J7QoNCe0JLQmNCm0JAg0JjQktCQ0J0KK9CR0J7QoNCe0JLQmNCm0JAg0IjQldCb0JXQndCQCivQkdCe0KDQntCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQkdCe0KDQntCS0J3QmNCm0JAg0JHQoNCQ0J3QmtCeCivQkdCe0KDQntCS0J3QmNCm0JAg0JzQkNCg0JrQngor0JHQntCg0J7QktCd0JjQptCQINCc0JjQm9CQ0J0KK9CR0J7QoNCe0JLQndCY0KbQkCDQnNCY0JvQldCS0JAKK9CR0J7QoNCe0JfQkNCdINCc0JjQm9Ce0KDQkNCUCivQkdCe0KDQo9CoINCY0KjQotCS0JDQnQor0JHQntCg0KPQqCDQmNCg0JXQndCQCivQkdCe0KDQl9CQ0KjQmtCYINCR0KDQkNCi0JjQodCb0JDQktCQCivQkdCe0KDQl9CQ0KjQmtCYINCg0JDQlNCe0JzQmNCgCivQkdCe0KDQl9CQ0KjQmtCYINCh0KLQldCS0JDQnQor0JHQntCh0JDQmiDQmNCg0JXQndCQCivQkdCe0KHQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0J7QodCQ0J3Qp9CY0Isg0JHQntCo0JrQngor0JHQntCh0JDQndCn0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0J7QodCQ0J3Qp9CY0Isg0JHQntCT0JTQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCI0JXQm9CY0KbQkAor0JHQntCh0JDQndCn0JjQiyDQnNCQ0J3QntCI0JvQngor0JHQntCh0JDQndCn0JjQiyDQnNCY0JvQldCS0JAKK9CR0J7QodCQ0J3Qp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7QodCQ0J3Qp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7QodCQ0J3Qp9CY0Isg0KDQkNCI0JrQngor0JHQntCh0JDQndCn0JjQiyDQotCg0JjQktCQCivQkdCe0KHQkNCd0KfQmNCLINCS0JDQodCeCivQkdCe0KHQkNCd0KfQmNCLINCS0JvQkNCU0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0JLQo9CI0J4KK9CR0J7QodCQ0J3QkNCmINCI0J7QktCQ0J0KK9CR0J7QodCQ0J3QkNCmINCJ0KPQkdCY0KbQkAor0JHQntCh0JDQndCQ0KYg0JzQkNCg0JjQiNCQCivQkdCe0KHQkNCd0JDQpiDQndCY0JrQntCb0JAKK9CR0J7QodCQ0J3QkNCmINCS0JXQoNCQCivQkdCe0KHQmNCLINCR0J7QltCQ0J3QkAor0JHQntCh0JjQiyDQkdCg0JDQndCa0J4KK9CR0J7QodCY0Isg0JTQo9Co0JDQnSDQlNCgCivQkdCe0KHQmNCLINCI0J7QktCQ0J0KK9CR0J7QodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7QodCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7QodCY0Isg0KHQm9CQ0JLQmtCQCivQkdCe0KHQmNCJ0JrQmNCLINCb0JDQl9CQ0KAKK9CR0J7QodCY0InQmtCY0Isg0JvQo9Ca0JAKK9CR0J7QodCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQntCh0JjQntCaINCU0J7QoNCjCivQkdCe0KHQndCQ0Jgt0JHQkNCR0JAg0JvQo9Cm0JjQiNCQCivQkdCe0KHQndCQ0Jgg0IjQkNCd0J7QqAor0JHQntCh0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQkdCe0KHQndCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JHQntCh0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KHQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0J7QodCd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQntCh0J3QmNCLINCU0JDQktCY0JQKK9CR0J7QodCd0JjQiyDQlNCQ0JLQmNCUCivQkdCe0KHQndCY0Isg0IjQntCS0JDQnQor0JHQntCh0J3QmNCLINCc0JDQoNCQCivQkdCe0KHQndCY0Isg0JzQmNCg0JrQngor0JHQntCh0J3QmNCLINCc0JvQkNCU0JXQnQor0JHQntCh0J3QmNCLINCd0JDQlNCQCivQkdCe0KHQndCY0Isg0J3Qo9Cg0JjQiNCQCivQkdCe0KHQndCY0Isg0KDQkNCU0J7QodCQCivQkdCe0KHQndCY0Isg0KDQkNCI0JrQngor0JHQntCh0J3QmNCLINCS0JXQoNCQCivQkdCe0KHQndCY0Isg0JLQm9CQ0JTQkAor0JHQntCh0J3QmNCLINCS0JvQkNCU0JAKK9CR0J7QodCd0JjQiyDQl9Ce0KDQkNCdCivQkdCe0KLQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QotCY0Kcg0J7Qm9CY0JLQldCg0JAKK9CR0J7QotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QotCY0Isg0JHQntCT0JTQkNCdCivQkdCe0KLQmNCLINCU0JDQndCY0KbQkAor0JHQntCi0JjQiyDQlNCQ0KDQmtCeCivQkdCe0KLQmNCLINCU0JDQoNCa0J4KK9CR0J7QotCY0Isg0JPQkNCS0KDQkAor0JHQntCi0JjQiyDQnNCY0JvQkNCdCivQkdCe0KLQmNCLINCc0JjQm9CQ0J0KK9CR0J7QotCY0Isg0JzQmNCb0JUKK9CR0J7QotCY0Isg0JzQmNCb0J7QoNCQ0JQg0JDQlNCS0J7QmtCQ0KIKK9CR0J7QotCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQkdCe0KLQmNCLINCe0JvQmNCS0JXQoNCQCivQkdCe0KLQmNCLINCf0KDQntCa0JAKK9CR0J7QotCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQkdCe0KLQmNCLINCS0JXQoNCY0KbQkAor0JHQntCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0KLQmNCLINCX0J7QoNCQ0J3QmtCQCivQkdCe0KLQmtCQINCQ0J3QotCQ0JsKK9CR0J7QotCa0JAg0JTQkNCS0JjQlAor0JHQntCi0JrQkCDQldCg0JbQldCR0JXQogor0JHQntCi0JrQkCDQktCV0KDQntCd0JAKK9CR0J7QotCa0JAg0JfQntCb0KLQkNCdCivQkdCe0KLQm9CY0Jog0JPQldCX0JAKK9CR0J7QotCb0JjQmiDQnNCQ0KDQmNCI0JAKK9CR0J7QotCe0KjQmtCYINCU0KDQkNCT0J7QktCQ0J0KK9CR0J7QotCe0KjQmtCYINCh0JDQktCQCivQkdCe0KLQntCg0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQkdCe0KLQl9CQINCY0KjQotCS0JDQnQor0JHQntCX0JXQiNCQ0KYg0JDQndCi0JDQmyDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JHQntCX0JXQiNCQ0KYg0JTQo9Co0JDQnQor0JHQntCX0JXQiNCQ0KYg0JPQntCg0JTQkNCd0JAKK9CR0J7Ql9CV0IjQkNCmINCc0JjQm9CV0J3QmtCeCivQkdCe0JfQldCI0JDQpiDQodCc0JjQidCa0JAKK9CR0J7Ql9CV0IjQkNCmINCh0JLQldCi0JjQodCb0JDQkgor0JHQntCX0JXQiNCQ0KYg0JLQldCg0JAKK9CR0J7Ql9Ce0JrQmNCdINCh0KLQldCS0JjQptCQCivQkdCg0KfQmNCLINCY0JPQitCQ0KYKK9CR0KDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQoNCn0JjQiyDQndCV0ILQngor0JHQoNCn0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQoNCn0JjQnSDQgtCe0KDQgtCVCivQkdCg0KfQmNCdINCc0JjQm9CY0J3QmtCQCivQkdCg0KfQmNCdINCd0JjQmtCe0JvQkAor0JHQoNCn0JjQnSDQoNCQ0KLQntCc0JjQoAor0JHQoNCn0JjQnSDQodCb0JDQktCY0KbQkAor0JHQoNCn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQkdCg0KfQmNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQoNCn0JrQkNCb0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQkNCn0JXQktCY0Isg0JjQktCQ0J0KK9CR0KDQkNCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQkNCo0JDQndCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JHQoNCQ0KjQkNCd0JDQpiDQk9CQ0JLQoNCY0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCo0JDQndCQ0KYg0JjQm9CY0IjQkAor0JHQoNCQ0KjQkNCd0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQoNCQ0KjQkNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCg0JDQqNCa0J4g0IjQntCW0JXQpAor0JHQoNCQ0KjQitCeINCT0KPQodCi0JDQkgor0JHQoNCQ0KjQitCeINCY0KjQotCS0JDQnQor0JHQoNCQ0KjQitCeINCY0KjQotCS0JDQnQor0JHQoNCQ0KbQkNCd0J7QktCY0Isg0JTQkNCc0IjQkNCdCivQkdCg0JDQptCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JHQoNCQ0KbQmNCLINCc0JjQm9CQ0J0KK9CR0KDQkNCU0JDQpyDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0KDQkNCU0JDQpyDQmNCc0KDQlQor0JHQoNCQ0JTQkNCoINCW0JjQktCQINCU0JjQn9CbINCY0J3Qkwor0JHQoNCQ0JTQkNCg0JjQiyDQndCV0JTQldCJ0JrQngor0JHQoNCQ0JTQmNCLINCC0J7QoNCC0JUKK9CR0KDQkNCU0JjQiyDQgtCe0KDQgtCVCivQkdCg0JDQlNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0KDQkNCU0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQoNCQ0JTQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCg0JDQlNCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JDQlNCY0Isg0JXQktCT0JXQndCY0IjQkAor0JHQoNCQ0JTQmNCLINCT0JDQktCg0JjQm9CeCivQkdCg0JDQlNCY0Isg0IjQo9Ch0KLQmNCd0JAKK9CR0KDQkNCU0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQoNCQ0JTQmNCLINCc0JjQm9CQ0J0KK9CR0KDQkNCU0JjQiyDQnNCY0JvQmNCm0JAKK9CR0KDQkNCU0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCg0JDQlNCY0Isg0JzQmNCJ0JrQngor0JHQoNCQ0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0KDQkNCU0JjQiyDQodCg0JXQotCQCivQkdCg0JDQlNCY0Ist0KLQldCK0Jgg0JfQntCg0JjQptCQCivQkdCg0JDQlNCY0Isg0KLQldCe0JTQntCg0JAKK9CR0KDQkNCU0JjQiyDQotCe0JzQmNCh0JvQkNCS0JAKK9CR0KDQkNCU0JjQiyDQktCY0JTQntCI0JUKK9CR0KDQkNCU0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0KDQkNCU0J7QqCDQodCb0J7QkdCe0JTQkNCdCivQkdCg0JDQpdCi0Jsg0JzQkNCg0JjQptCQCivQkdCg0JDQiNCU0JjQiyDQmNCS0JDQnQor0JHQoNCQ0IjQldCgINCk0KDQkNCK0JAKK9CR0KDQkNCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0KDQkNCI0JjQiyDQnNCY0JvQmNCm0JAKK9CR0KDQkNCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQoNCQ0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0KDQkNCI0JrQntCSINCc0JDQoNCa0J4KK9CR0KDQkNCI0JrQntCS0JjQiyDQmNCS0J4KK9CR0KDQkNCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQoNCQ0IjQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCg0JDQiNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CR0KDQkNCI0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQkdCg0JDQiNCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQkdCg0JDQiNCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JHQoNCQ0IjQntCS0JjQiyDQktCV0InQmtCeCivQkdCg0JDQmtCe0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQkdCg0JDQmtCj0KEg0JTQo9Co0JDQndCa0JAKK9CR0KDQkNCa0KPQoSDQidCY0InQkNCd0JAKK9CR0KDQkNCa0KPQoSDQnNCQ0KDQmNCI0JAKK9CR0KDQkNCa0KPQoSDQnNCY0JvQkNCdCivQkdCg0JDQmtCj0KEg0JzQntCc0KfQmNCb0J4KK9CR0KDQkNCb0J7QktCY0Isg0KDQkNCi0JrQngor0JHQoNCQ0J3Qp9CY0Isg0JHQntCg0JjQoSDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCd0KfQmNCLINCI0JDQodCd0JAKK9CR0KDQkNCd0KfQmNCLINCc0JjQm9CV0J3QkAor0JHQoNCQ0J3Qp9CY0Isg0JzQmNCb0KPQqNCa0J4KK9CR0KDQkNCd0JAg0J/QldCi0JDQoAor0JHQoNCQ0J3QmNCb0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0KDQkNCd0JrQntCSINCC0J7QoNCC0JUKK9CR0KDQkNCd0JrQntCSINCC0J7QoNCC0JUKK9CR0KDQkNCd0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCg0JDQndCa0J7Qki3QkdCe0JrQkCDQoNCe0JfQkNCb0JjQiNCQCivQkdCg0JDQndCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0JHQoNCQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCg0JDQndCa0J7QkiDQlNCe0JHQoNCY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0JTQoNCQ0JPQkNCd0JAKK9CR0KDQkNCd0JrQntCSINCU0KDQkNCT0JDQnQor0JHQoNCQ0J3QmtCe0JIg0JTQo9Co0JDQnQor0JHQoNCQ0J3QmtCe0JIg0JXQnNCY0JsKK9CR0KDQkNCd0JrQntCSINCY0JvQmNCI0JAKK9CR0KDQkNCd0JrQntCSINCI0JXQm9CY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0IjQntCS0JDQndCa0JAKK9CR0KDQkNCd0JrQntCSINCa0J7QodCi0JAKK9CR0KDQkNCd0JrQntCSINCa0J7QodCi0JAKK9CR0KDQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0InQo9CR0JjQptCQCivQkdCg0JDQndCa0J7QkiDQidCj0JHQmNCd0JrQngor0JHQoNCQ0J3QmtCe0JIg0JzQmNCb0JjQptCQCivQkdCg0JDQndCa0J7QkiDQnNCY0JvQntCg0JDQlAor0JHQoNCQ0J3QmtCe0JIg0JzQmNCg0JrQngor0JHQoNCQ0J3QmtCe0JIg0JzQmNCi0JAKK9CR0KDQkNCd0JrQntCSINCc0JjQotCQCivQkdCg0JDQndCa0J7QkiDQnNCb0JDQlNCV0J0KK9CR0KDQkNCd0JrQntCSINCc0J7QnNCY0KAKK9CR0KDQkNCd0JrQntCSINCd0JDQlNCQCivQkdCg0JDQndCa0J7QkiDQntCb0JjQktCV0KDQkAor0JHQoNCQ0J3QmtCe0JIg0KDQkNCU0JjQktCe0IgKK9CR0KDQkNCd0JrQntCSINCg0JDQlNCe0JLQkNCdCivQkdCg0JDQndCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JHQoNCQ0J3QmtCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCg0JDQndCa0J7QkiDQktCV0InQmtCeCivQkdCg0JDQndCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQkdCg0JDQndCa0J7QkiDQl9Cb0JDQotCY0J3QmtCQCivQkdCg0JDQndCa0J7QktCQ0J0g0ILQntCg0ILQlQor0JHQoNCQ0J3QmtCe0JLQkNCdINCS0JvQkNCh0KLQmNCc0JjQoAor0JHQoNCQ0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCg0JDQndCa0J7QktCY0Isg0JHQntCI0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0KDQkNCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0KDQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KDQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KDQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQoNCQ0J3QmtCe0JLQmNCLLdCa0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQoNCQ0J3QmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CR0KDQkNCd0JrQntCS0JjQiyDQodCQ0JLQmtCQCivQkdCg0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JHQoNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CR0KDQkNCd0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCg0JDQndCa0J7QktCY0Isg0KLQo9CT0J7QnNCY0KAKK9CR0KDQkNCd0JrQntCS0JjQiyDQl9CY0J3QkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CR0KDQkNCd0J7QktCQ0KfQmtCYINCC0J7QoNCC0JUKK9CR0KDQkNCd0J7QktCQ0KfQmtCYINCQ0J3Qk9CV0JvQmNCd0JAKK9CR0KDQkNCd0J7QktCQ0KfQmtCYINCT0JDQktCg0JjQm9CeCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQmNCS0JDQndCQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQidCj0JHQmNCm0JAKK9CR0KDQkNCd0J7QktCQ0KfQmtCYINCe0JvQk9CQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9CR0KDQkNCd0J7QktCY0Isg0JHQmNCh0JXQoNCa0JAKK9CR0KDQkNCd0J7QktCY0Isg0KDQo9CW0JAKK9CR0KDQkNCe0JLQmNCLINCh0JDQndCU0KDQkAor0JHQoNCQ0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCQ0KIg0JTQo9Co0JDQnQor0JHQoNCQ0KLQmNCLINCQ0KjQmNCgCivQkdCg0JDQotCY0Isg0JTQoNCQ0JPQngor0JHQoNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9CR0KDQkNCi0JjQiyDQk9Ce0KDQkNCdCivQkdCg0JDQotCY0Isg0InQo9CR0JjQptCQCivQkdCg0JDQotCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQkNCi0JjQiyDQnNCj0KXQngor0JHQoNCQ0KLQmNCLINCd0JXQlNCV0InQmtCeCivQkdCg0JDQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQkNCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCg0JDQotCe0J3QntCW0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JHQoNCR0J7QoNCY0Isg0JvQkNCX0JDQoAor0JHQoNCR0J7QoNCY0Isg0KHQoNCR0JjQodCb0JDQkgor0JHQoNCm0JDQndCe0JIg0ILQo9Cg0ILQmNCd0JrQkAor0JHQoNCm0JDQndCe0JIg0J7Qm9CT0JAKK9CR0KDQptCQ0J3QntCSINCh0JjQnNCQCivQkdCg0KbQkNCd0J7QkiDQotCY0KXQntCc0JjQoAor0JHQoNCm0JDQndCh0JrQmCDQndCY0JrQntCb0JAKK9CR0KDQlNCQ0KAg0JTQkNCd0JUKK9CR0KDQlNCQ0KAg0JTQoNCQ0JPQngor0JHQoNCU0JDQoCDQmNCb0JjQiNCQCivQkdCg0JTQkNCgINCY0JLQkNCd0JrQkAor0JHQoNCU0JDQoCDQnNCY0JvQkNCdCivQkdCg0JTQkNCgINCf0JXQoNCeCivQkdCg0JTQkNCgINCh0JvQkNCS0JjQqNCQCivQkdCg0JTQkNCg0JXQktCY0Isg0JTQo9Co0JrQngor0JHQoNCU0JDQoNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQoNCU0JDQoNCY0Isg0JrQntCh0KLQkAor0JHQoNCU0JDQoNCY0Isg0JzQmNCb0JDQnQor0JHQoNCU0JDQoNCY0Isg0J/QldCi0JDQoAor0JHQoNCV0KjQi9CQ0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQkdCg0JXQqNCa0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CR0KDQldCo0JrQntCS0KHQmtCYINCU0KDQkNCT0JjQptCQCivQkdCg0JXQltCQ0J0g0JjQm9Ce0J3QkAor0JHQoNCV0JbQkNCdINCb0JXQntCd0J7QoNCQCivQkdCg0JXQltCQ0J0g0JzQkNCg0JjQiNCQCivQkdCg0JXQkdCV0KAg0InQo9CR0JjQptCQCivQkdCg0JXQkdCV0KDQmNCd0JAg0JzQmNCb0JDQnQor0JHQoNCV0JHQldCg0JjQndCQINCh0KLQldCS0JDQnQor0JHQoNCV0JPQo9CdINCC0J7QoNCC0JUKK9CR0KDQldCT0KPQnSDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQoNCV0JPQo9CdINCd0JjQmtCe0JvQkAor0JHQoNCV0JPQo9CdINCg0JDQlNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQkdCg0JXQmtCQ0JvQniDQiNCe0KHQmNCfCivQkdCg0JXQmtCY0Isg0JjQm9CY0IjQkAor0JHQoNCV0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCV0JrQmNCLINCh0KLQldCS0JDQnQor0JHQoNCV0J3QldCm0JrQmCDQl9CU0KDQkNCS0JrQngor0JHQoNCV0J3QldCh0JXQmyDQlNCg0JDQk9CQ0J0KK9CR0KDQldCd0JXQodCV0Jsg0JPQkNCR0KDQmNCV0JsKK9CR0KDQldCd0JXQodCV0Jsg0JzQmNCg0IjQkNCd0JAKK9CR0KDQldCd0JXQodCV0Jsg0J3QmNCa0J7Qm9CQCivQkdCg0JXQodCi0J7QktCQ0KfQmtCYINCY0JLQkNCdCivQkdCg0JXQodCi0J7QktCQ0KfQmtCYINCI0JDQodCc0JjQndCQCivQkdCg0JXQodCi0J7QktCQ0KfQmtCYINCc0JjQm9Ca0JAKK9CR0KDQldCh0KLQntCS0JDQp9Ca0Jgg0KHQotCV0JLQkAor0JHQoNCV0KIg0JLQldCg0JAKK9CR0KDQldCi0KjQndCQ0IjQlNCV0KAg0JDQndCQCivQkdCg0JXQl9Cd0JjQmiDQldCg0J3QlQor0JHQoNCV0JfQitCQ0Jog0IjQkNCd0J7QqAor0JHQoNCV0JfQitCQ0Jog0JzQkNCg0JjQiNCQCivQkdCg0JXQl9Ce0JLQp9CV0Jog0IjQntCS0JDQndCa0JAKK9CR0KDQldCX0J7QktCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0KDQldCX0J7QktCQ0KYg0JTQo9Co0JDQnQor0JHQoNCV0JfQntCS0JDQpiDQmNCS0JDQnQor0JHQoNCV0JfQntCS0JDQpiDQmNCS0JDQnQor0JHQoNCV0JfQntCS0JDQpiDQiNCj0KDQkNCICivQkdCg0JXQl9Ce0JLQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9CR0KDQldCX0J7QktCQ0KYg0InQo9CR0JjQndCa0JAKK9CR0KDQldCX0J7QktCQ0KYg0JzQmNCb0JXQndCQCivQkdCg0JXQl9Ce0JLQkNCmINCc0JjQm9Ce0KgKK9CR0KDQldCX0J7QktCQ0KYg0J/QldCi0JDQoAor0JHQoNCV0JfQntCS0JDQpiDQodCQ0JLQkAor0JHQoNCV0JfQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQoNCY0KjQldCS0JDQpiDQiNCj0KDQlQor0JHQoNCY0JrQldCgINCh0JzQmNCJ0JDQndCQCivQkdCg0JjQitCQ0Jog0JTQoNCQ0JPQngor0JHQoNCY0KLQktCV0KYg0JzQkNCg0JrQngor0JHQoNCY0JfQkCDQltCV0JvQnNCY0KDQkAor0JHQoNCY0JfQkCDQiNCQ0J0KK9CR0KDQmNCX0JAg0JvQo9Ca0KDQldCm0JjQiNCQCivQkdCg0Jog0KHQmNCc0J4KK9CR0KDQmtCQ0J3QmNCLINCc0JDQoNCa0J4KK9CR0KDQmtCQ0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQkdCg0JrQkNCd0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQoNCa0JDQndCb0JjQiyDQltCV0InQmtCeCivQkdCg0JrQkNCd0JvQmNCLINCU0KPQqNCQ0J0KK9CR0KDQmtCY0Isg0ILQntCg0ILQlQor0JHQoNCa0JjQiyDQgtCe0KDQgtCVCivQkdCg0JrQmNCLINCC0KPQoNCeCivQkdCg0JrQmNCLINCQ0JHQkNCXCivQkdCg0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JrQmNCLINCQ0J3QmtCQCivQkdCg0JrQmNCLINCQ0J3QmtCY0KbQkAor0JHQoNCa0JjQiy3QkdCV0JvQmNCLINCU0JDQndCY0KbQkAor0JHQoNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0KDQmtCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JrQmNCLINCU0KDQkNCT0JDQnQor0JHQoNCa0JjQiyDQlNCg0JDQk9CQCivQkdCg0JrQmNCLINCU0KDQkNCT0J4KK9CR0KDQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0KDQmtCY0Isg0JPQntCI0JrQngor0JHQoNCa0JjQiyDQmNCb0JjQiNCQCivQkdCg0JrQmNCLINCY0JLQkNCdCivQkdCg0JrQmNCLINCY0JLQmNCm0JAKK9CR0KDQmtCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0KDQmtCY0Isg0IjQntCS0JDQnQor0JHQoNCa0JjQiyDQiNCe0JLQkNCdCivQkdCg0JrQmNCLINCI0J7QktCQ0J0KK9CR0KDQmtCY0Isg0IjQntCS0JDQnQor0JHQoNCa0JjQiyDQidCj0JHQntCc0JjQoAor0JHQoNCa0JjQiyDQm9Cj0JrQkAor0JHQoNCa0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0KDQmtCY0Isg0JzQkNCd0JTQkAor0JHQoNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KDQmtCY0Isg0JzQkNCg0JjQiNCQCivQkdCg0JrQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCg0JrQmNCLINCc0JjQm9CQ0J0KK9CR0KDQmtCY0Isg0JzQmNCb0JDQnQor0JHQoNCa0JjQiyDQnNCY0JvQkNCdCivQkdCg0JrQmNCLINCc0JjQoNCI0JDQndCQCivQkdCg0JrQmNCLINCc0JjQotCQ0KAKK9CR0KDQmtCY0Isg0J3QkNCU0JAKK9CR0KDQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9CR0KDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQkdCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCa0JjQiyDQn9CV0KLQkNCgCivQkdCg0JrQmNCLINCf0JXQotCQ0KAKK9CR0KDQmtCY0Isg0J/QldCi0KDQkAor0JHQoNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQoNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KDQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQoNCa0JjQiyDQoNCQ0KLQmtCeCivQkdCg0JrQmNCLINCg0KPQltCQCivQkdCg0JrQmNCLINCh0JjQm9CS0JjQiNCQCivQkdCg0JrQmNCLINCh0JvQkNCS0JrQngor0JHQoNCa0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQoNCa0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQoNCa0JjQiyDQotCe0JzQniDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQmtCY0Isg0KPQoNCe0KgKK9CR0KDQmtCY0Isg0JLQldCX0JjQm9CY0IjQkAor0JHQoNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCg0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCg0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQkdCg0JrQmNCLINCX0J7QoNCQ0J0KK9CR0KDQmtCJ0JDQpyDQkdCg0JDQndCY0JzQmNCgCivQkdCg0JrQidCQ0Kcg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCg0JrQidCQ0Kcg0JTQoNCQ0JPQntCJ0KPQkQor0JHQoNCa0InQkNCnINCY0JvQmNCI0JAKK9CR0KDQmtCJ0JDQpyDQmtCQ0KLQkNCg0JjQndCQCivQkdCg0JrQidCQ0Kcg0JzQmNCb0JDQndCa0J4KK9CR0KDQmtCJ0JDQpyDQnNCY0JvQkNCdCivQkdCg0JrQidCQ0Kcg0J3QmNCa0J7Qm9CQCivQkdCg0JrQidCQ0Kcg0J3QmNCa0J7Qm9CQCivQkdCg0JrQidCQ0Kcg0KDQo9CW0JjQptCQCivQkdCg0JrQidCQ0Kcg0KHQm9Ce0JHQntCU0JDQnQor0JHQoNCa0InQkNCnINCh0KLQldCS0JDQnQor0JHQoNCa0InQkNCn0JAg0JHQoNCQ0KLQntCJ0KPQkQor0JHQoNCa0InQkNCn0JjQiyDQkdCe0JbQldCd0JAKK9CR0KDQmtCJ0JDQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCa0J4g0J3QmNCa0J7Qm9CQCivQkdCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQkdCg0JrQntCS0JjQiyDQkNCd0KLQo9CdCivQkdCg0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQoNCa0J7QktCY0Isg0JTQoNCQ0JPQngor0JHQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQoNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9CR0KDQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQkdCg0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQoNCa0J7QktCY0Isg0JzQkNCT0JTQkAor0JHQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQoNCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JHQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQoNCa0J7QktCY0Isg0JLQmNCe0JTQodCQ0JLQkAor0JHQoNCa0J7QktCY0Isg0JLQiNCV0JrQntCh0JvQkNCSCivQkdCg0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9CR0KDQm9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQoNCb0JjQiyDQmNCS0JDQnQor0JHQoNCc0JHQntCi0JAg0IjQntCS0JDQnQor0JHQoNCc0JHQntCi0JAg0IjQntCS0JDQnQor0JHQoNCK0JDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQoNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQoNCe0KjQotCV0JDQnSDQktCY0J7QoNCV0JsKK9CR0KDQntCL0JXQotCQINCR0J7Qk9CU0JDQnQor0JHQoNCe0IvQldCi0JAg0JzQmNCL0JAKK9CR0KDQntCL0JXQotCQINCc0JjQm9Ce0KDQkNCUCivQkdCg0J7Qi9CV0KLQkCDQndCV0JTQldCJ0JrQngor0JHQoNCe0IvQldCi0JAg0J7QkdCg0JDQlAor0JHQoNCe0JTQoNCQ0J3QodCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JHQoNCe0IjQp9CY0J0g0JTQo9Co0JDQnQor0JHQoNCe0IjQp9CY0J0g0KHQkNCS0JAKK9CR0KDQntCd0JfQkCDQlNCg0JDQk9CQ0J0KK9CR0KDQntCd0JfQkCDQoNCQ0IjQmtCeCivQkdCg0J7Ql9Ce0JLQmNCLINCY0JLQkNCdCivQkdCg0KHQkNCd0J7QktCY0Isg0JrQoNCh0KLQkAor0JHQoNCh0KLQmNCd0JAg0JLQkNCh0JjQm9CY0IjQlQor0JHQoNCi0JDQnSDQiNCe0KHQmNCfCivQkdCg0KLQmtCQINCI0JDQnQor0JHQoNCj0KjQitCQ0Jgg0IjQntCh0JjQnwor0JHQoNCj0KjQitCQ0Jog0J/QldCg0J4KK9CR0KDQo9CI0JjQiyDQlNCj0KjQkNCdCivQkdCg0KPQiNCY0Isg0IjQntCS0JDQnQor0JHQoNCj0IjQmNCLINCc0JDQndCe0IjQm9CeCivQkdCg0KPQiNCY0Isg0JzQmNCb0JDQnQor0JHQoNCj0IjQmNCLINCc0JjQm9CY0KbQkAor0JHQoNCj0IjQmNCLINCh0JvQkNCS0JrQngor0JHQoNCj0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQo9CaINCQ0J3QlNCg0JjQiNCQINCU0KAKK9CR0KDQo9Ca0J3QldCgINCR0J7Qk9CU0JDQnQor0JHQoNCj0JrQndCV0KAg0JHQntCT0JTQkNCdCivQkdCg0KPQndCn0JXQktCY0Isg0KXQmNCS0JfQngor0JHQoNCj0J3Qp9CV0JLQmNCLINCg0JXQj9CV0J8KK9CR0KDQo9Cd0JTQl9CQINCm0JXQptCY0JvQmNCI0JAKK9CR0KDQo9Cd0JTQl9CQINCS0JvQkNCU0JjQnNCY0KAg0JzQoAor0JHQoNCj0J3QldCgINCI0J7QodCY0J8KK9CR0KDQo9Cd0JXQoiDQldCb0JXQnNCV0KAKK9CR0KDQo9Cd0JXQoiDQpNCg0JDQitCQCivQkdCg0KPQndCV0KIg0JjQqNCi0JLQkNCdCivQkdCg0KPQndCV0KIg0JfQntCb0KLQkNCdCivQkdCg0KPQndCV0KIg0JfQntCb0KLQkNCdCivQkdCg0KPQodCY0J0g0JTQo9Co0JrQngor0JHQoNCj0KHQmNCdINCa0JDQiNCY0KbQkAor0JHQoNCj0KHQmNCdINCc0JjQm9Ce0IjQmtCeCivQkdCg0KPQodCY0J0g0JzQmNCb0J7QktCQ0J0KK9CR0KDQo9Ch0JjQnSDQoNCQ0JTQmNCm0JAKK9CR0KDQo9Ch0JjQnSDQodCb0JDQktCa0J4KK9CR0KDQo9Ch0IrQkNCYINCa0JDQoNCb0J4KK9CR0KDQo9Ch0IrQkNCYINCb0JDQodCb0J4KK9CR0KDQo9Ch0IrQkNCYINCc0JDQoNCT0JDQoNCY0KLQkAor0JHQoNCX0JDQmiDQltCY0JLQmtCQCivQkdCg0JfQkNCaINCW0JjQktCe0KDQkNCUCivQkdCg0JfQkNCaINCC0J7QoNCC0JUKK9CR0KDQl9CQ0Jog0ILQntCg0ILQlQor0JHQoNCX0JDQmiDQgtCe0KDQgtCVCivQkdCg0JfQkNCaINCC0J7QoNCC0JUKK9CR0KDQl9CQ0Jog0ILQo9Ca0JAKK9CR0KDQl9CQ0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KDQl9CQ0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KDQl9CQ0Jog0JDQndCC0JXQm9Ca0JAKK9CR0KDQl9CQ0Jog0JHQntCT0JTQkNCd0JrQkAor0JHQoNCX0JDQmiDQkdCe0KDQmNCh0JvQkNCSCivQkdCg0JfQkNCaINCR0J7QodCQCivQkdCg0JfQkNCaINCR0KDQkNCd0JjQodCb0JDQkgor0JHQoNCX0JDQmiDQlNCg0JDQk9CQ0J0KK9CR0KDQl9CQ0Jog0JTQoNCQ0JPQkNCdCivQkdCg0JfQkNCaINCU0KDQkNCT0JjQptCQCivQkdCg0JfQkNCaINCU0KDQkNCT0J7QnNCY0KAKK9CR0KDQl9CQ0Jog0JTQo9Co0JrQngor0JHQoNCX0JDQmiDQk9Ce0IjQmtCeCivQkdCg0JfQkNCaINCY0JvQmNCI0JAKK9CR0KDQl9CQ0Jog0IjQkNCU0KDQkNCd0JrQkAor0JHQoNCX0JDQmiDQiNCV0JvQldCd0JAKK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0JrQntCh0KLQkAor0JHQoNCX0JDQmiDQm9CQ0JfQkNCgCivQkdCg0JfQkNCaINCb0JXQn9Ce0KHQkNCS0JAKK9CR0KDQl9CQ0Jog0JzQkNCg0JjQiNCQCivQkdCg0JfQkNCaINCc0JjQm9CQCivQkdCg0JfQkNCaINCc0JjQm9CV0J3QmtCeCivQkdCg0JfQkNCaINCc0JjQm9CV0J3QmtCeCivQkdCg0JfQkNCaINCc0JjQm9CV0J3QmtCeCivQkdCg0JfQkNCaINCc0JjQm9Ce0JLQkNCdCivQkdCg0JfQkNCaINCc0JjQm9Ce0JLQkNCdCivQkdCg0JfQkNCaINCc0JjQoNCQCivQkdCg0JfQkNCaINCc0JjQoNCQCivQkdCg0JfQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KDQl9CQ0Jog0JzQmNCi0JDQoAor0JHQoNCX0JDQmiDQn9CV0KLQkNCgCivQkdCg0JfQkNCaINCf0KDQldCU0KDQkNCTCivQkdCg0JfQkNCaINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KDQl9CQ0Jog0KHQkNCS0JAKK9CR0KDQl9CQ0Jog0KHQkNCS0JXQotCQCivQkdCg0JfQkNCaINCh0JjQnNCV0J7QnQor0JHQoNCX0JDQmiDQodCb0JDQktCa0J4KK9CR0KDQl9CQ0Jog0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0KDQl9CQ0Jog0KHQotCV0JLQkNCdCivQkdCg0JfQkNCaINCh0KLQldCS0JDQnQor0JHQoNCX0JDQmiDQodCi0JXQktCQ0J0KK9CR0KDQl9CQ0Jog0KHQotCe0IjQkNCd0JrQkAor0JHQoNCX0JDQmiDQodCS0JXQotCb0JDQndCQCivQkdCg0JfQkNCaINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KDQl9CQ0Jog0KLQntCo0JAKK9CR0KDQl9CQ0Jog0KLQntCo0JAKK9CR0KDQl9CQ0Jog0KLQntCo0JjQptCQCivQkdCg0JfQkNCaINCi0J7QlNCe0KAKK9CR0KDQl9CQ0Jog0JLQkNCh0JAKK9CR0KDQl9CQ0Jog0JLQkNCh0JAKK9CR0KDQl9CQ0Jog0JLQkNCh0JAKK9CR0KDQl9CQ0Jog0JLQldCJ0JrQngor0JHQoNCX0JDQmiDQktCY0JTQkAor0JHQoNCX0JDQmiDQktCY0JTQntCh0JDQktCQCivQkdCg0JfQkNCaINCS0JjQlNCe0KHQm9CQ0JIKK9CR0KDQl9CQ0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCg0JfQkNCaINCX0J7QoNCQ0J0KK9CR0KDQl9CQ0JrQntCS0JjQiyDQmNCT0J7QoAor0JHQoNCX0JDQmtCe0JLQmNCLINCd0JXQndCQ0JQg0JTQoAor0JHQoNCX0JDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JHQoNCX0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQoNCX0JjQiyDQltCY0JLQkNCdCivQkdCg0JfQmNCLINCC0J7QoNCC0JUKK9CR0KDQl9CY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JfQmNCLINCk0KDQkNCK0JAKK9CR0KDQl9CY0Isg0JjQktCQ0J0KK9CR0KDQl9CY0Isg0IjQntCS0JDQnQor0JHQoNCX0JjQiyDQm9CQ0JfQkNCgCivQkdCg0JfQmNCLINCb0JDQl9CQ0KAKK9CR0KDQl9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQl9CY0Isg0J/QldCi0JDQoAor0JHQoNCX0JjQiyDQn9CV0KLQkNCgCivQkdCg0JfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KDQl9CY0Isg0KHQotCV0JLQkNCdCivQkdCg0JfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KDQl9CY0Isg0KLQntCU0J7QoAor0JHQoNCX0JjQiyDQl9Cb0JDQotCQCivQkdCg0JfQmNCm0JAg0JHQoNCQ0J3QmtCQCivQkdCg0JfQmNCm0JAg0KTQldCg0JTQngor0JHQoNCX0JjQptCQINCY0JLQkNCd0JrQkAor0JHQoNCX0JjQptCQINCc0JDQoNCY0J3QmtCeCivQkdCg0JfQntCS0JDQnSDQkdCV0KXQmNCI0JAKK9CR0KMg0JjQqNCi0JLQkNCdCivQkdCj0KfQkCDQlNCj0KjQkNCdCivQkdCj0KfQkCDQlNCj0KjQmNCm0JAKK9CR0KPQp9CQINCY0KDQmNCd0JAKK9CR0KPQp9CQINCS0JDQodCQCivQkdCj0KfQkNCd0KHQmtCYINCI0J7QltCV0KQKK9CR0KPQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQo9Cn0JrQniDQkNCl0J3QldCi0JAKK9CR0KPQp9Ca0J4g0IjQkNCd0JrQngor0JHQo9Cn0JrQniDQnNCQ0KDQmNCI0JAKK9CR0KPQp9CeINCU0JDQndCY0IjQldCb0JAKK9CR0KPQp9CjLdCc0JDQoNCi0J7QndCe0KjQmCDQk9CY0JfQldCb0JAKK9CR0KPQqCDQkNCd0JAKK9CR0KPQqCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0KPQqCDQodCY0JvQktCV0KHQotCV0KAKK9CR0KPQqNCY0Isg0KHQoNCV0IvQmtCeCivQkdCj0KjQidCV0KLQkCDQkdCg0JDQndCa0JAKK9CR0KPQqNCi0KDQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQo9Co0KLQoNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCj0KjQotCg0J7QktCY0Isg0J7Qm9CT0JAKK9CR0KPQi9CQ0J0g0JTQo9Co0JDQnQor0JHQo9CL0JDQnSDQlNCj0KjQkNCdCivQkdCj0IvQkNCdINCc0JjQm9CV0JLQkAor0JHQo9CL0JDQnSDQodCb0JDQktCa0JAKK9CR0KPQi9CQ0J3QodCa0Jgg0JzQkNCL0JDQqAor0JHQo9CL0JjQnSDQoNCQ0JTQlQor0JHQo9CL0J4g0JfQkNCT0J7QoNCa0JAKK9CR0KPQltCQ0J3Qp9CY0Isg0JzQmNCg0JAKK9CR0KPQltCQ0J3QmNCdINCc0JjQm9CVCivQkdCj0ILQmCDQgtCj0JvQkAor0JHQo9CC0JjQm9CQ0J0g0J/QldCi0JDQoAor0JHQo9CQ0KfQkCDQlNCg0JDQk9CQ0J0KK9CR0KPQkNCn0JAg0J7Qm9CT0JjQptCQCivQkdCj0JDQp9CQINCh0KLQldCS0JDQnQor0JHQo9CR0JDQm9CeINCU0KDQkNCT0JDQnQor0JHQo9CR0JDQm9CeINCU0KDQkNCT0JjQitCQCivQkdCj0JHQkNCb0J4g0JPQntCg0JDQnQor0JHQo9CR0JDQm9CeINCY0JvQmNCI0JAKK9CR0KPQkdCQ0JvQniDQiNCe0JLQkNCdCivQkdCj0JHQkNCb0J4g0IjQntCS0J4KK9CR0KPQkdCQ0JvQniDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JHQkNCb0J4g0J/QldCi0JDQoAor0JHQo9CR0JDQm9CeINCg0JDQotCe0JzQmNCgCivQkdCj0JHQkNCb0J4g0KHQmNCc0J4KK9CR0KPQkdCQ0JvQniDQotCV0J7QlNCe0KDQkAor0JHQo9CR0JDQiiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQkdCQ0Iog0JTQkNCd0JUKK9CR0KPQkdCQ0Iog0JjQktCQ0J3QmtCQCivQkdCj0JHQkNCKINCc0JjQm9CY0KbQkAor0JHQo9CR0JDQiiDQnNCY0JvQntCoCivQkdCj0JHQkNCKINCg0JDQlNCVCivQkdCj0JHQkNCKINCg0JDQlNCe0IjQmtCQCivQkdCj0JHQkNCKINCh0KDQkdCe0InQo9CRCivQkdCj0JHQkNCKINCS0JjQlNCe0KHQkNCS0JAKK9CR0KPQkdCQ0IrQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9CR0JDQitCQINCR0JDQotCg0JjQiwor0JHQo9CR0JDQitCQINCU0JDQoNCY0J3QmtCQCivQkdCj0JHQkNCK0JAg0JrQkNCi0JjQptCQCivQkdCj0JHQkNCK0JAg0JzQkNCo0JDQnQor0JHQo9CR0JDQitCQINCg0JDQlNCY0KHQkNCSCivQkdCj0JHQkNCK0JAg0KLQkNCU0JjQiNCQCivQkdCj0JHQkNCK0JAg0JLQntCI0JjQodCb0JDQkgor0JHQo9CR0JDQitCQINCX0J7QoNCa0JAKK9CR0KPQkdCY0Isg0JzQmNCb0JDQnQor0JHQo9CR0J3QmNCLINCS0JXQoNCe0J3QkAor0JHQo9CR0IrQldCS0JjQiyDQgtCe0KDQgtCVCivQkdCj0JHQitCV0JLQmNCLINCR0J7QoNCVCivQkdCj0JHQitCV0JLQmNCLINCU0JDQoNCQCivQkdCj0JHQitCV0JLQmNCLINCU0KDQkNCT0J4KK9CR0KPQkdCK0JXQktCY0Isg0JPQntCI0JrQngor0JHQo9CR0IrQldCS0JjQiyDQiNCQ0IrQkAor0JHQo9CR0IrQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQo9CR0IrQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CR0KPQkdCK0JXQktCY0Isg0JzQkNCg0JjQndCa0J4KK9CR0KPQkdCK0JXQktCY0Isg0JzQmNCg0JrQngor0JHQo9CR0IrQldCS0JjQiyDQndCV0J3QkNCUCivQkdCj0JHQitCV0JLQmNCLINCe0KHQotCe0IjQkAor0JHQo9CR0IrQldCS0JjQiyDQoNCQ0JTQkAor0JHQo9CR0IrQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQo9CR0IrQldCS0JjQiyDQoNCV0InQkAor0JHQo9CR0IrQldCS0JjQiyDQodCg0JHQntCJ0KPQkQor0JHQo9CR0IrQldCS0JjQiyDQodCg0JXQotCV0J0KK9CR0KPQkdCK0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQo9CR0IrQldCS0JjQiyDQktCQ0KHQmtCg0KHQmNCI0JUKK9CR0KPQkdCK0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9CR0IrQmNCLINCW0JXQidCa0J4KK9CR0KPQkdCe0IrQkCDQkdCe0KDQmNChCivQkdCj0JHQntCK0JAg0JTQntCh0KLQkNCd0JAKK9CR0KPQkdCe0IrQkCDQlNCj0KjQkNCdCivQkdCj0JHQntCK0JAg0KDQkNCU0J7QktCQ0J0KK9CR0KPQkdCg0JXQqNCa0J4g0JPQntCg0JTQkNCd0JAKK9CR0KPQkdCj0Ikg0JzQmNCb0JjQiwor0JHQo9CR0KPQiSDQndCQ0JTQkAor0JHQo9CR0KPQiSDQodCi0J7QiNCQ0J3QmtCQCivQkdCj0JHQo9CJINCh0KLQntCI0JAKK9CR0KPQptCQ0JvQniDQnNCY0JvQkNCU0JjQnQor0JHQo9Cm0JDQm9CeINCc0JjQoNCQCivQkdCj0KbQkNCb0J4g0JzQmNCi0JDQoAor0JHQo9Cm0JDQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KPQptCY0Isg0JDQndCi0JUKK9CR0KPQptCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0KPQptCj0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cm0KPQidCV0JLQmNCLINCX0JvQkNCi0J7QnNCY0KAg0JTQoAor0JHQo9CP0JDQmtCe0KHQmtCYINCi0J7QnNCQCivQkdCj0I/QkNCg0J7QkiDQodCQ0JLQkAor0JHQo9CU0JAg0JDQlNCQCivQkdCj0JTQkCDQldCS0JAKK9CR0KPQlNCQINCl0JDQiNCd0JDQm9Ca0JAKK9CR0KPQlNCQINCI0J7QltCV0KQKK9CR0KPQlNCQINCi0JXQoNCV0JfQkAor0JHQo9CU0JDQiyDQl9Ce0KDQkNCdCivQkdCj0JTQkNCYINCT0J7QoNCY0KbQkAor0JHQo9CU0JDQmCDQmNCb0J7QndCa0JAKK9CR0KPQlNCQ0Jgg0IjQntCW0JXQpAor0JHQo9CU0JDQmCDQiNCe0JvQkNCdCivQkdCj0JTQkNCYINCI0J7QktCQ0J0KK9CR0KPQlNCQ0Jgg0JvQkNCI0J7QqAor0JHQo9CU0JDQmCDQm9CQ0IjQntCoCivQkdCj0JTQkNCYINCX0J7QoNCQCivQkdCj0JTQkNCaINCU0KDQkNCT0JDQnQor0JHQo9CU0JDQmiDQmNCS0JjQptCQCivQkdCj0JTQkNCaINCc0JjQm9CQ0J0KK9CR0KPQlNCQ0Jog0JLQldCg0JAKK9CR0KPQlNCQ0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCj0JTQkNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQlNCQ0JrQntCSINCU0KDQkNCT0JDQnQor0JHQo9CU0JDQmtCe0JIg0JPQntCg0JjQptCQCivQkdCj0JTQkNCa0J7QkiDQmNCS0JDQnQor0JHQo9CU0JDQmtCe0JIg0InQmNCJ0JDQndCQCivQkdCj0JTQkNCa0J7QkiDQnNCY0JvQkNCdCivQkdCj0JTQkNCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0JHQo9CU0JDQmtCe0JIg0J7Qm9CY0JLQldCg0JAKK9CR0KPQlNCQ0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQlNCQ0J3QntCSINCQ0J3QotCQ0JsKK9CR0KPQlNCQ0J3QntCSINCU0JDQndCY0KbQkAor0JHQo9CU0JDQndCe0JLQmNCLINCh0JDQktCV0KLQkAor0JHQo9CU0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9CR0KPQlNCV0KDQmtCQINCc0JDQoNCY0IjQkAor0JHQo9CU0JjQqNCQINCR0J7QltCQCivQkdCj0JTQmNCo0JAg0JHQntCg0JAKK9CR0KPQlNCY0KjQkCDQnNCY0KDQmtCeCivQkdCj0JTQmNCo0JAg0KLQmNCl0J7QnNCY0KAKK9CR0KPQlNCY0KjQmNCLINCU0KDQkNCT0JDQnQor0JHQo9CU0JjQqNCY0J0g0ILQntCg0ILQlQor0JHQo9CU0JjQqNCY0J0g0JjQktCQ0J0KK9CR0KPQlNCY0KjQmNCdINCc0JjQm9Ce0KgKK9CR0KPQlNCY0KjQmNCdINCc0JjQm9Ce0KgKK9CR0KPQlNCY0KjQmNCdINCd0JjQmtCe0JvQkCDQlNCgCivQkdCj0JTQmNCo0JjQnS3QodCQ0JrQkNCnINCh0J7QitCQINCU0KAKK9CR0KPQlNCY0KjQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQlNCY0Isg0JbQldCJ0JrQngor0JHQo9CU0JjQiyDQlNCQ0J3QmNCb0J4KK9CR0KPQlNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCj0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCj0JTQmNCLINCc0JjQm9CQ0J0KK9CR0KPQlNCY0Isg0JfQntCg0JrQkAor0JHQo9CU0JjQnNCn0JjQiyDQiNCe0JLQkNCdCivQkdCj0JTQmNCc0KfQmNCLINCJ0JjQidCQ0J3QkAor0JHQo9CU0JjQnNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQo9CU0JjQnNCQINCR0JDQiNCg0KPQqAor0JHQo9CU0JjQnNCQ0KYg0JHQo9CU0JjQnNCY0KAKK9CR0KPQlNCY0JzQkNCmINCX0J7QoNCQ0J0KK9CR0KPQlNCY0JzQmNCgINCc0JDQoNCY0IjQkAor0JHQo9CU0JjQnNCY0KAg0JzQmNCb0JDQnQor0JHQo9CU0JjQnNCY0KAg0JzQmNCb0J7QiNCa0J4KK9CR0KPQlNCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0KPQlNCY0JzQmNCg0J7QktCY0Isg0J3QldCT0J7QktCQ0J0KK9CR0KPQlNCY0JzQmNCg0J7QktCY0Isg0KPQoNCe0KgKK9CR0KPQlNCY0JzQmtCY0Ist0JrQoNCh0KLQmNCLINCU0KDQkNCT0JDQndCQCivQkdCj0JTQmNCc0JvQmNCI0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQlNCY0JzQm9CY0IjQkCDQlNCg0JDQk9CY0KbQkAor0JHQo9CU0JjQnNCb0JjQiNCQINCY0JvQmNCI0JAKK9CR0KPQlNCY0JzQm9CY0IjQkCDQnNCY0JvQkNCdCivQkdCj0JTQmNCc0JvQmNCI0JAg0JzQmNCb0JDQnQor0JHQo9CU0JjQnNCb0JjQiNCQINCg0JDQlNCVCivQkdCj0JTQmNCc0KHQmtCYINCC0KPQoNCQCivQkdCj0JTQmNCc0KHQmtCYINCh0JvQkNCS0KPQiAor0JHQo9CU0JjQndCn0JXQktCY0Isg0JPQkNCR0J7QoAor0JHQo9CU0JjQndCn0JXQktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQo9CU0JjQndCn0JXQktCY0Isg0JzQmNCg0JrQngor0JHQo9CU0JjQndCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCj0JTQmNCd0KHQmtCYINCa0JjQoNCY0JsKK9CR0KPQlNCY0J3QodCa0Jgg0InQo9CR0JAKK9CR0KPQlNCY0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQkdCj0JTQmNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0JrQkNCg0J7Qm9CY0J3QkAor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCg0KPQltCY0KbQkAor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JHQo9CU0IjQmNCb0JDQnSDQn9CV0KLQkNCgCivQkdCj0JTQntCo0JDQnSDQltCY0JLQmtCeCivQkdCj0JTQntCo0JDQnSDQgtCe0KDQgtCVCivQkdCj0JTQntCo0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9CU0J7QqNCQ0J0t0JrQntCS0JDQpyDQiNCV0JvQldCd0JAKK9CR0KPQlNCe0KjQkNCdINCc0JjQm9Ce0KgKK9CR0KPQlNCe0KjQkNCdINCd0JDQlNCQCivQkdCj0JTQntCo0JDQnSDQodCQ0JLQkAor0JHQo9CU0J7QqNCQ0J0g0KHQkNCS0JAKK9CR0KPQlNCe0KjQkNCdINCh0KLQldCS0JDQnQor0JHQo9CU0J7QqNCQ0J0g0KLQntCo0JjQptCQCivQkdCj0JTQntCo0JDQnSDQktCQ0KHQkAor0JHQo9CU0J7QqNCQ0J0g0JLQkNCh0JAKK9CR0KPQlNCe0KjQkNCdINCS0KPQmtCe0KHQkNCS0JAKK9CR0KPQlNCe0JLQkNCb0KfQldCSINCQ0KDQodCQCivQkdCj0JTQntCS0JDQm9Cn0JXQkiDQntCb0JPQkAor0JHQo9CU0J7QktCQ0JvQp9CV0JIg0J/QldCi0JDQoAor0JHQo9CU0J7QktCQ0JvQp9CV0JIg0J/QldCi0JDQoAor0JHQo9CU0KPQoNCY0J0g0KDQkNCU0J7QiNCVCivQkdCj0JPQkNCP0JjQiNCQINCb0JDQiNCe0KgKK9CR0KPQk9CQ0I/QmNCI0JAg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KfQmNCLINCf0JXQotCQ0KAKK9CR0KPQk9CQ0KDQp9CY0Isg0KDQkNCU0JzQmNCb0J4KK9CR0KPQk9CQ0KDQp9CY0Isg0KHQnNCY0InQmtCQCivQkdCj0JPQkNCg0JjQnS3Qp9Ce0J3QmtCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0KPQk9CQ0KDQmNCdINCW0JjQktCQ0J0KK9CR0KPQk9CQ0KDQmNCdINCW0JjQktCQ0J0KK9CR0KPQk9CQ0KDQmNCdINCW0JjQktCQ0J0KK9CR0KPQk9CQ0KDQmNCdINCW0JjQktCQ0J0KK9CR0KPQk9CQ0KDQmNCdINCR0J7QqNCa0J4KK9CR0KPQk9CQ0KDQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQmNCdINCU0JDQndCY0KbQkAor0JHQo9CT0JDQoNCY0J0g0JjQm9CY0IjQkAor0JHQo9CT0JDQoNCY0J0g0JjQktCQ0J3QkAor0JHQo9CT0JDQoNCY0J0g0IjQldCS0KDQntCh0JjQnNCQCivQkdCj0JPQkNCg0JjQnSDQidCY0InQkNCd0JAKK9CR0KPQk9CQ0KDQmNCdINCJ0KPQkdCe0JzQmNCgCivQkdCj0JPQkNCg0JjQnSDQnNCQ0KDQmNCI0JAKK9CR0KPQk9CQ0KDQmNCdINCc0JjQm9Ce0KgKK9CR0KPQk9CQ0KDQmNCdINCc0JjQm9Ce0KDQkNCUCivQkdCj0JPQkNCg0JjQnSDQoNCQ0JTQmNCh0JvQkNCSCivQkdCj0JPQkNCg0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQkdCj0JPQkNCg0JjQnSDQodCY0J3QmNCo0JAKK9CR0KPQk9CQ0KDQmNCdINCh0J/QkNCh0J7QiNCVCivQkdCj0JPQkNCg0JjQnSDQodCi0JXQktCQ0J0KK9CR0KPQk9CQ0KDQmNCdINCS0JXQm9CY0JHQntCgCivQkdCj0JPQkNCg0JjQnSDQktCV0KHQndCQCivQkdCj0JPQkNCg0JjQnSDQl9Ce0KDQkNCdCivQkdCj0JPQkNCg0JjQnSDQl9Ce0KDQmNCm0JAKK9CR0KPQk9CQ0KDQmNCd0J7QktCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQkdCj0JPQkNCg0JjQoyDQiNCj0JvQmNCI0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQltCQ0KDQmtCeCivQkdCj0JPQkNCg0KHQmtCYINCW0JjQmtCQCivQkdCj0JPQkNCg0KHQmtCYINCW0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCj0JPQkNCg0KHQmtCYINCC0J7QoNCC0JUKK9CR0KPQk9CQ0KDQodCa0Jgg0ILQntCg0ILQlQor0JHQo9CT0JDQoNCh0JrQmCDQgtCj0KDQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JHQntCI0JDQndCQCivQkdCj0JPQkNCg0KHQmtCYINCR0KDQkNCd0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQlNCj0KjQkNCdINCU0KAKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQlNCj0KjQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCU0KPQqNCa0J4KK9CR0KPQk9CQ0KDQodCa0Jgg0JXQktCY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQiNCe0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCI0KPQm9Ca0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JrQkNCi0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JrQoNCh0KLQkAor0JHQo9CT0JDQoNCh0JrQmCDQmtCh0JXQndCY0IjQkAor0JHQo9CT0JDQoNCh0JrQmCDQm9CQ0JfQkNCgCivQkdCj0JPQkNCg0KHQmtCYINCb0JDQl9CQ0KAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9CV0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQldCd0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQldCi0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQoNCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQoNCI0JDQndCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQoNCI0JDQndCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCd0JDQlNCQCivQkdCj0JPQkNCg0KHQmtCYINCd0JXQlNCV0InQmtCeCivQkdCj0JPQkNCg0KHQmtCYINCd0JjQmtCe0JvQkAor0JHQo9CT0JDQoNCh0JrQmCDQntCb0JjQktCV0KDQkAor0JHQo9CT0JDQoNCh0JrQmCDQn9CQ0IjQkAor0JHQo9CT0JDQoNCh0JrQmCDQn9CQ0JLQm9CVCivQkdCj0JPQkNCg0KHQmtCYINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0KDQkNCh0KLQmtCeCivQkdCj0JPQkNCg0KHQmtCYINCg0JDQotCe0JzQmNCgCivQkdCj0JPQkNCg0KHQmtCYINCh0JDQktCQCivQkdCj0JPQkNCg0KHQmtCYINCh0JDQktCQCivQkdCj0JPQkNCg0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0J7QpNCY0IjQkAor0JHQo9CT0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQotCQ0KLQiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQktCe0IjQmNCh0JvQkNCS0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCX0J7QoNCQCivQkdCj0JPQldCJINCY0JLQkNCdCivQkdCj0KXQkCDQkdCg0JDQndCa0JAKK9CR0KPQpdCQINCg0JDQlNCY0JLQntCI0JUKK9CR0KPQpdCQINCS0KPQmtCQ0KjQmNCdCivQkdCj0KXQnNCY0JvQldCgINCQ0JPQndCV0KgKK9CR0KPQpdCc0JjQm9CV0KAg0JDQotCY0JvQkAor0JHQo9Cl0JzQmNCb0JXQoCDQldCS0JAKK9CR0KPQpdCc0JjQm9CV0KAg0IjQntCh0JjQnwor0JHQo9Cl0JzQmNCb0JXQoCDQiNCe0KHQmNCfCivQkdCj0KXQnNCY0JvQldCgINCa0JDQoNCb0J4KK9CR0KPQmNCo0JAg0JzQmNCb0JjQndCa0J4KK9CR0KPQmNCb0JAg0JDQndCQCivQkdCj0JjQm9CQINCY0KDQmNCd0JXQiAor0JHQo9CY0JvQkCDQidCj0JHQmNCm0JAKK9CR0KPQmNCb0JAg0JzQkNCa0KHQmNCc0JjQm9CY0IjQkNCdCivQkdCj0JjQm9CQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KPQmNCb0JAg0KHQm9CQ0JLQmNCm0JAKK9CR0KPQmNCb0JAg0KHQm9CQ0JLQntCc0JjQoAor0JHQo9CI0JDQmiDQldCc0JjQmwor0JHQo9CI0JDQmiDQnNCQ0KLQmNCb0JTQkAor0JHQo9CI0JDQmiDQodCQ0JLQkAor0JHQo9CI0JDQndCU0KDQmNCLINCQ0J3QgtCV0JvQmtCQCivQkdCj0IjQkNCd0JTQoNCY0Isg0IjQntCS0JDQnQor0JHQo9CI0JDQndCU0KDQmNCLINCJ0KPQkdCY0KbQkAor0JHQo9CI0JDQndCU0KDQmNCLINCc0JDQoNCY0IjQkAor0JHQo9CI0JDQndCU0KDQmNCLINCc0JjQm9CY0JLQntCICivQkdCj0IjQkNCd0JTQoNCY0Isg0JzQmNCi0JDQoAor0JHQo9CI0JDQndCU0KDQmNCLINCd0JjQmtCe0JvQkAor0JHQo9CI0JDQndCU0KDQmNCLINCf0JDQktCb0JUKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQn9CV0KLQkNCgCivQkdCj0IjQkNCd0JTQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQo9CI0JDQndCU0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQiNCQ0KEg0JzQmNCb0JXQndCa0J4KK9CR0KPQiNCQ0KEg0JLQldCd0KfQldCh0JvQkNCSCivQkdCj0IjQlNCe0KjQkCDQodCi0JXQktCQ0J0KK9CR0KPQiNCU0J7QqNCY0Jog0JHQntCl0J7QnNCY0JsKK9CR0KPQiNCU0J7QqNCY0Jog0JrQm9CQ0KDQkAor0JHQo9CI0JTQntCo0JjQmiDQnNCY0KDQntCh0JvQkNCSCivQkdCj0IjQlNCe0KjQniDQmNCo0KLQktCQ0J0KK9CR0KPQiNCY0KjQmNCLINCW0JjQktCa0J4KK9CR0KPQiNCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQo9CI0JvQkCDQldCi0JXQm9Ca0JAKK9CR0KPQiNCb0JAg0IjQkNCh0JzQmNCd0JAKK9CR0KPQiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQo9CI0J3QntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0JHQo9Ca0JDQm9Ce0JIg0JfQntCg0JAKK9CR0KPQmtCQ0KDQkCDQlNCj0KjQkNCd0JrQkAor0JHQo9Ca0JDQoNCY0KbQkCDQlNCQ0J3QmNCm0JAKK9CR0KPQmtCQ0KDQmNCm0JAg0IjQntCS0JDQnQor0JHQo9Ca0JDQotCa0JAg0JDQndCU0KDQldCICivQkdCj0JrQkNCi0JrQkCDQoNCQ0JTQntCh0JvQkNCSCivQkdCj0JrQkNCi0JrQniDQktCb0JDQlNCY0JzQmNCgCivQkdCj0JrQkNCi0JrQntCSINCY0JLQkNCdCivQkdCj0JrQmNCLINCI0JDQmtCe0JIKK9CR0KPQmtCY0JvQmNCLINCU0KDQkNCT0JAKK9CR0KPQmtCY0JvQmNCLINCU0KDQkNCT0JjQptCQCivQkdCj0JrQmNCdINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9CR0KPQmtCY0J3QkNCmINCC0J7QoNCC0JUKK9CR0KPQmtCY0J3QkNCmINCR0JjQidCQ0J3QkAor0JHQo9Ca0JjQndCQ0KYg0JHQntCT0KPQnNCY0JvQkAor0JHQo9Ca0JjQndCQ0KYg0JTQmNCd0JAKK9CR0KPQmtCY0J3QkNCmINCT0JvQmNCT0J7QoNCY0IjQlQor0JHQo9Ca0JjQndCQ0KYg0JjQktCQ0J0KK9CR0KPQmtCY0J3QkNCmINCI0KPQm9Ca0JAKK9CR0KPQmtCY0J3QkNCmINCb0JDQl9CQ0KAKK9CR0KPQmtCY0J3QkNCmINCc0JjQm9CQ0JTQmNCdCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQkNCdCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQmNCm0JAKK9CR0KPQmtCY0J3QkNCmINCc0JjQm9Ce0KHQkNCS0JAKK9CR0KPQmtCY0J3QkNCmINCc0JjQoNCa0J4KK9CR0KPQmtCY0J3QkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KPQmtCY0J3QkNCmINCg0KPQltCY0KbQkAor0JHQo9Ca0JjQndCQ0KYg0KHQm9CQ0JLQmtCeCivQkdCj0JrQmNCd0JDQpiDQodCi0JDQndCa0JAKK9CR0KPQmtCY0J3QkNCmINCh0KLQldCS0JDQnQor0JHQo9Ca0JjQndCQ0KYg0KPQoNCe0KgKK9CR0KPQmtCe0JLQp9CQ0J3QmNCdINCQ0KbQkAor0JHQo9Ca0J7QktCQ0KfQmtCYINCc0JjQntCU0KDQkNCTCivQkdCj0JrQntCS0JDQp9Ca0Jgg0J/QldCg0JAKK9CR0KPQmtCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQkdCj0JrQntCS0JDQpiDQkNCd0JrQmNCm0JAKK9CR0KPQmtCe0JLQkNCmINCQ0KLQmNCb0JAKK9CR0KPQmtCe0JLQkNCmINCh0KLQldCS0JDQnQor0JHQo9Ca0J7QktCQ0KYg0JLQm9CQ0JTQngor0JHQo9Ca0J7QktCQ0JvQkCDQlNCV0KHQkNCd0JrQkAor0JHQo9Ca0J7QktCY0KfQkNCd0JjQnSDQoNCV0InQkAor0JHQo9Ca0J7QktCY0Isg0JDQndCU0KDQkNCoCivQkdCj0JrQntCS0JjQptCQINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQo9Ca0J7QktCY0KbQkCDQoNCQ0J3QmtCeCivQkdCj0JrQotCQINCd0JDQlNCQCivQkdCj0JrQotCQINCX0JLQntCd0JrQngor0JHQo9Ca0KPQnNCY0KDQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JHQo9Ca0KPQnNCY0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9CR0KPQmtCj0KDQldCm0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQmtCj0KDQldCm0JrQmCDQodCY0J3QmNCo0JAKK9CR0KPQmtCj0KDQmNCLINCi0JDQotCI0JDQndCQCivQkdCj0JrQo9Cg0J7QkiDQltCQ0KDQmtCeCivQkdCj0JrQo9Cg0J7QkiDQltCY0JLQkNCdCivQkdCj0JrQo9Cg0J7QkiDQltCY0JLQkNCdCivQkdCj0JrQo9Cg0J7QkiDQkdCe0KjQmtCeCivQkdCj0JrQo9Cg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0JHQo9Ca0KPQoNCe0JIg0JrQodCV0J3QmNCI0JAKK9CR0KPQmtCS0JAg0JLQldCb0JjQnNCY0KAKK9CR0KPQmtCS0JjQiyDQltCV0InQmtCQCivQkdCj0JrQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQmtCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0KPQmtCS0JjQiyDQkdCj0JTQlQor0JHQo9Ca0JLQmNCLINCU0JDQndCVCivQkdCj0JrQktCY0Isg0JTQkNCd0JjQm9CeCivQkdCj0JrQktCY0Isg0JTQkNCd0JjQm9CeCivQkdCj0JrQktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCj0JrQktCY0Isg0JTQo9Co0JDQnQor0JHQo9Ca0JLQmNCLINCY0JvQmNCI0JAKK9CR0KPQmtCS0JjQiyDQmNCb0JjQndCa0JAKK9CR0KPQmtCS0JjQiyDQiNCQ0J3QmtCeCivQkdCj0JrQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0KPQmtCS0JjQiyDQiNCe0JLQkNCdCivQkdCj0JrQktCY0Isg0JrQntCS0JjQidCa0JAKK9CR0KPQmtCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQo9Ca0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQo9Ca0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQkdCj0JrQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0KPQmtCS0JjQiyDQnNCY0JvQmtCQCivQkdCj0JrQktCY0Isg0JzQmNCb0J7QqAor0JHQo9Ca0JLQmNCLINCc0JjQm9Ce0KgKK9CR0KPQmtCS0JjQiyDQnNCY0JvQntCoCivQkdCj0JrQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0KPQmtCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JrQktCY0Isg0JzQm9CQ0JTQldCdCivQkdCj0JrQktCY0Isg0J3QntCS0JjQptCQCivQkdCj0JrQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KPQmtCS0JjQiyDQodCb0JDQktCY0KbQkAor0JHQo9Ca0JLQmNCLINCh0J7QpNCY0IjQkAor0JHQo9Ca0JLQmNCLINCh0KLQldCS0JDQnQor0JHQo9Ca0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQmtCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCj0JrQktCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0KPQmtCS0JjQiyDQktCb0JDQlNCeCivQkdCj0JvQkNCY0Isg0KDQldCJ0JAKK9CR0KPQm9CQ0IjQmNCLINCC0KPQoNCeCivQkdCj0JvQkNCI0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0KPQm9CQ0IjQmNCLINCc0JjQntCU0KDQkNCTCivQkdCj0JvQkNCI0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQkdCj0JvQkNCI0JjQiyDQndCV0JTQldCJ0JrQngor0JHQo9Cb0JDQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9Cb0JDQmtCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cb0JDQotCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQo9Cb0JDQotCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQo9Cb0JDQotCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Cb0JDQotCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Cb0JDQotCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCj0JvQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQo9Cb0JDQotCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9CR0KPQm9CQ0KLQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JHQo9Cb0JDQotCe0JLQmNCLINCc0J7QnNCY0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQndCe0JLQkNCaCivQkdCj0JvQkNCi0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQo9Cb0JDQotCe0JLQmNCLINCf0JXQoNCeCivQkdCj0JvQkNCi0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0KPQm9CQ0KLQntCS0JjQiyDQoNCQ0JTQnNCY0JvQngor0JHQo9Cb0JDQotCe0JLQmNCLINCg0JDQlNCe0IrQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCh0JDQktCQCivQkdCj0JvQkNCi0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQodCf0JDQodCQCivQkdCj0JvQkNCi0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQo9Cb0JDQotCe0JLQmNCLINCS0J7QiNCY0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCj0JvQkNCi0J7QktCY0Isg0JfQm9CQ0KLQmNCI0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCj0JvQldCi0JjQndCQ0KYg0JzQmNCb0J7QktCQ0J0KK9CR0KPQm9CV0JLQodCa0JAg0JLQldCg0JAKK9CR0KPQm9CY0Isg0KjQo9CL0J4KK9CR0KPQm9CY0Isg0JDQlNCY0JvQkAor0JHQo9Cb0JjQiyDQkNCd0KLQlQor0JHQo9Cb0JjQiyDQkNCg0JjQpAor0JHQo9Cb0JjQiyDQkdCe0KDQmNChCivQkdCj0JvQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Cb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCj0JvQmNCLINCU0KPQqNCQ0J0KK9CR0KPQm9CY0Isg0JzQkNCg0JAKK9CR0KPQm9CY0Isg0JzQkNCg0JjQiNCQCivQkdCj0JvQmNCLINCc0JDQoNCY0J3QkAor0JHQo9Cb0JjQiyDQntCX0KDQldCdCivQkdCj0JvQmNCLINCf0JXQoNCh0JAKK9CR0KPQm9CY0Isg0J/QldCi0JDQoAor0JHQo9Cb0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JHQo9Cb0JjQiyDQodCc0JjQidCQCivQkdCj0JvQmNCLINCh0KLQldCS0JDQnQor0JHQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCj0JvQmNCaLdCY0JvQldCQ0J3QkCDQlNCe0KDQmNCd0JAKK9CR0KPQiSDQgtCj0KDQkAor0JHQo9CJINCR0J7QodCY0JvQiNCa0JAKK9CR0KPQiSDQnNCY0JvQkNCdCivQkdCj0InQp9CY0Jog0JXQo9CT0JXQnQor0JHQo9CJ0KfQmNCaINCI0J7QkNCa0JjQnAor0JHQo9CJ0KfQmNCaINCc0JjQpdCQ0IjQm9CeCivQkdCj0InQp9CY0Jog0J3QmNCa0J7Qm9CQCivQkdCj0InQp9CY0Jog0J/QkNCj0JvQmNCd0JAKK9CR0KPQidCQ0Jog0KDQkNCi0JrQngor0JHQo9CJ0JDQnSDQlNCg0JDQk9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0JHQo9CJ0JDQnSDQn9CV0KLQkNCgCivQkdCj0InQkNCdINCh0JvQkNCS0JjQptCQCivQkdCj0InQmNCLINCY0JvQmNCI0JAKK9CR0KPQidCY0Isg0IjQldCb0JXQndCQCivQkdCj0InQmNCLINCI0J7QktCQ0J0KK9CR0KPQidCY0Isg0InQo9CR0JjQptCQCivQkdCj0InQmNCLINCc0JjQm9CQ0J0KK9CR0KPQidCY0Isg0JzQmNCb0JUKK9CR0KPQidCY0Isg0J3QntCS0JDQmgor0JHQo9CJ0JjQiyDQn9CQ0JLQngor0JHQo9CJ0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQo9CJ0JjQiyDQodCV0JrQo9Cb0JAKK9CR0KPQidCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0KPQidCY0Isg0KHQotCV0JLQkAor0JHQo9CJ0JjQiyDQktCQ0KHQngor0JHQo9CJ0JjQnSDQkdCg0JDQndCa0J4KK9CR0KPQidCY0J0g0KHQm9CQ0JLQmtCeCivQkdCj0InQmNCdINCi0J7QnNCY0KHQm9CQ0JIKK9CR0KPQidCe0JLQp9CY0Isg0KHQotCY0J/QkNCdCivQkdCj0InQo9CT0JjQiyDQoNCQ0JTQntCI0JUKK9CR0KPQm9Ce0JLQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JHQo9Cb0J7QktCY0Isg0JjQoNCY0J3QldCICivQkdCj0JvQo9CcINCf0JXQotCQ0KAKK9CR0KPQm9Cj0KIg0JDQndCC0JXQm9Ca0J4KK9CR0KPQm9Cj0KIg0J3QntCS0JjQptCQCivQkdCj0JzQkSDQkNCd0KLQntCdCivQkdCj0JzQkdCQ0KDQntCh0JrQmCDQoNCQ0JTQkAor0JHQo9Cc0JHQmNCLINCc0JjQm9CQ0JTQmNCdINCU0KAKK9CR0KPQnNCR0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQo9Cc0JHQmNCLINCg0JDQiNCa0J4KK9CR0KPQnNCR0JjQiyDQktCV0InQmtCeCivQkdCj0JzQkdCY0Isg0JLQldCJ0JrQngor0JHQo9Cd0KfQmNCLINCC0J7QoNCC0JUKK9CR0KPQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cd0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0J3Qp9CY0Isg0JTQoNCQ0JPQkNCdCivQkdCj0J3Qp9CY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JHQo9Cd0KfQmNCLINCc0JjQm9CQ0J0KK9CR0KPQndCQ0Igg0JzQo9Cl0JDQnNCV0JQKK9CR0KPQndCU0JDQm9CV0KHQmtCYINCc0JjQm9Ce0KgKK9CR0KPQndCU0JDQm9CeINCR0KDQkNCd0JrQngor0JHQo9Cd0JTQkNCb0J4g0J3QldCR0J7QiNCo0JAKK9CR0KPQndCU0JDQm9CeINCd0JjQmtCe0JvQkAor0JHQo9Cd0JTQkNCb0J4g0KHQm9CQ0JLQmtCeCivQkdCj0J3QlNCQ0JvQniDQodCb0J7QkdCe0JTQkNCdCivQkdCj0J3QlNCQ0JvQniDQodCb0J7QkdCe0JTQkNCdCivQkdCj0J3QlNCY0Isg0JDQndCi0KPQnQor0JHQo9Cd0JXQotCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0J3QldCi0JAg0JzQmNCb0JDQnQor0JHQo9Cd0JXQotCQINCh0J3QldCW0JDQndCQCivQkdCj0J3QldCi0JAg0JLQo9Ca0J7QodCQ0JLQkAor0JHQo9Cd0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQndCY0Isg0JzQmNCb0JDQnQor0JHQo9CK0JDQpiDQktCQ0KHQngor0JHQo9CK0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQkdCj0IrQldCS0KfQldCSINCC0J7QoNCC0JUKK9CR0KPQitCV0JLQp9CV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQitCV0JLQp9CV0JIg0KHQoNCC0JDQnQor0JHQo9CK0JXQktCQ0KfQmtCYINCW0JjQktCe0IjQmNCdCivQkdCj0IrQldCS0JDQp9Ca0Jgg0JHQoNCQ0J3QmtCeCivQkdCj0IrQldCS0JDQp9Ca0Jgg0JTQoNCQ0JPQmNCK0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQiNCe0JLQkNCd0JrQkAor0JHQo9CK0JXQktCQ0KfQmtCYINCJ0KPQkdCY0KbQkAor0JHQo9CK0JXQktCQ0KfQmtCYINCc0JjQm9CV0J3QkAor0JHQo9CK0JXQktCQ0KfQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9CR0KPQitCY0Jog0KjQkNCd0JTQntCgCivQkdCj0IrQmNCaINCU0KDQkNCT0JjQptCQCivQkdCj0IrQmNCaINCY0JLQkNCdCivQkdCj0IrQmNCaINCI0J7QodCY0J8KK9CR0KPQitCY0Jog0JrQkNCg0J7QiQor0JHQo9CK0JjQmiDQl9Ce0JvQotCQ0J0KK9CR0KPQitCY0Jog0JfQntCb0KLQkNCdCivQkdCj0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCj0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCj0J3QoiDQnNCY0IjQngor0JHQo9Cg0KfQldCgINCi0J7QnNCY0KHQm9CQ0JIKK9CR0KPQoNCo0JjQiyDQotCY0J3QmtCQCivQkdCj0KDQkNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0KDQkNCYINCQ0J3QlNCg0JDQqAor0JHQo9Cg0JDQmCDQmtCQ0KDQntCJCivQkdCj0KDQkNCYINCa0JDQotCY0KbQkAor0JHQo9Cg0JDQmCDQn9CV0KLQkNCgCivQkdCj0KDQkNCI0Jgg0IjQntCh0JjQnwor0JHQo9Cg0JDQiiDQkdCV0JvQkCDQlNCgINCb0JXQmtCQ0KAKK9CR0KPQoNCQ0Iog0JXQndCU0KDQlQor0JHQo9Cg0JDQiiDQnNCQ0KDQotCQCivQkdCj0KDQkNCKINCd0JDQndCU0J7QoAor0JHQo9Cg0JDQiiDQodCY0JTQntCd0JjQiNCQCivQkdCj0KDQkNCK0Jgg0JzQkNCg0JjQiNCQCivQkdCj0KDQkNCK0Jgg0J3QkNCd0JTQntCgCivQkdCj0KDQkNCX0J7QoCDQlNCg0JDQk9Ce0IjQkAor0JHQo9Cg0JDQl9Ce0KAg0JfQlNCg0JDQktCa0J4KK9CR0KPQoNCR0JDQpSDQk9CV0KDQpdCQ0KDQlAor0JHQo9Cg0JHQkNCdINCk0JjQm9CY0J8KK9CR0KPQoNCU0JAg0JzQldCb0JjQndCU0JAKK9CR0KPQoNCU0JAg0KHQotCQ0J3QmNCh0JvQkNCSCivQkdCj0KDQldCS0JjQiyDQnNCY0JvQmNCLCivQkdCj0KDQk9CY0Isg0JTQoNCQ0JPQntCI0JUKK9CR0KPQoNCT0JjQiyDQiNCe0JLQkNCdCivQkdCj0KDQk9CY0Isg0J/QldCi0JDQoAor0JHQo9Cg0JPQmNCI0JDQqNCV0JIg0JLQldCh0JXQm9CY0J0KK9CR0KPQoNCY0Isg0ILQntCa0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCj0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQo9Cg0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CR0KPQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0KPQoNCY0Isg0KTQoNCQ0IrQkAor0JHQo9Cg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQo9Cg0JjQiyDQmtCQ0KLQmNCm0JAKK9CR0KPQoNCY0Isg0JrQntCh0KLQkAor0JHQo9Cg0JjQiyDQm9CV0J7QndCe0KDQkAor0JHQo9Cg0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCj0KDQmNCLINCd0JDQlNCQCivQkdCj0KDQiNCQ0J0g0ILQntCg0ILQlQor0JHQo9Cg0IjQkNCd0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0KK9CR0KPQoNCa0JAg0JXQm9CV0J7QndCe0KDQkCDQlNCgCivQkdCj0KDQmtCQINCV0JzQmNCb0JjQiNCQCivQkdCj0KDQmtCQINCV0KDQltCV0JHQldCiCivQkdCj0KDQmtCQINCI0J7QktCQ0J0KK9CR0KPQoNCa0JAg0JzQmNCg0J7QodCb0JDQkgor0JHQo9Cg0JrQkCDQn9CQ0JLQm9CVCivQkdCj0KDQmtCQINCf0JXQotCQ0KAKK9CR0KPQoNCa0JAg0KHQntCk0JjQiNCQCivQkdCj0KDQmtCQINCh0KLQldCS0JDQnQor0JHQo9Cg0JrQkCDQodCi0JXQktCQ0J0KK9CR0KPQoNCa0JXQoNCiINCV0JTQktCY0J0KK9CR0KPQoNCa0JjQnSDQltCY0JLQkNCdCivQkdCj0KDQmtCY0J0g0ILQntCa0JAKK9CR0KPQoNCb0JDQmiDQndCQ0KLQkNCb0JjQiNCQCivQkdCj0KDQnNCQ0IjQkCDQndCY0JrQntCb0JAKK9CR0KPQoNCc0KPQj9CY0IjQkCDQkdCg0JDQndCa0J4KK9CR0KPQoNCc0KPQj9CY0IjQkCDQnNCY0JvQkNCdCivQkdCj0KDQnNCj0I/QmNCI0JAg0J3QmNCa0J7Qm9CQCivQkdCj0KDQndCQ0Isg0KTQldCb0JjQmtChCivQkdCj0KDQndCQ0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0KPQoNCd0JDQiyDQodCi0JXQktCQ0J0KK9CR0KPQoNCd0JDQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCj0KDQndCe0JIg0JjQktCQ0J3QkAor0JHQo9Cg0J3QntCSINCY0JLQkNCdCivQkdCj0KDQndCe0JIg0JLQldCh0JXQm9CY0J3QmtCQCivQkdCj0KDQntCS0JDQpiDQndCQ0JTQkAor0JHQo9Cg0KHQkNCLINCU0JDQoNCY0J3QmtCQCivQkdCj0KDQodCQ0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0KPQoNCh0JDQiyDQiNCe0JLQkNCdCivQkdCj0KDQodCQ0Isg0InQo9CR0J7QnNCY0KAKK9CR0KPQoNCh0JDQiyDQnNCY0JvQkNCd0JrQkAor0JHQo9Cg0KHQkNCLINCc0JjQm9CQ0J0KK9CR0KPQoNCh0JDQiyDQnNCY0JvQmNCm0JAKK9CR0KPQoNCh0JDQiyDQnNCY0JvQntCg0JDQlAor0JHQo9Cg0KHQkNCLINCc0JjQoNCa0J4KK9CR0KPQoNCh0JDQiyDQndCY0JrQntCb0JAKK9CR0KPQoNCh0JDQiyDQn9CV0KDQkAor0JHQo9Cg0KHQkNCLINCf0JXQoNCh0JAKK9CR0KPQoNCh0JDQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCj0KDQodCQ0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cg0KHQkNCLINCS0IjQldCa0J7QodCb0JDQktCQCivQkdCj0KDQodCQ0Isg0JLQm9CQ0JTQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JHQo9Cg0KHQmNCLINCh0KLQldCS0JDQnQor0JHQo9Cg0KHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQoNCj0Kgg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0KPQoNCj0Kgg0JHQntCo0JrQngor0JHQo9Cg0KPQnNCP0JjQiNCQINCg0JDQlNCVCivQkdCj0KDQl9CQ0J0g0JzQmNCg0IjQkNCd0JAKK9CR0KPQoNCX0JXQm9CY0Isg0JzQmNCb0JrQkAor0JHQo9Cg0JfQldCb0JjQiyDQl9Cb0JDQotCQCivQkdCj0KHQkNCg0KfQldCS0JjQiyDQodCb0JDQktCY0KbQkAor0JHQo9Ch0JDQoNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQkdCj0KHQmNCI0JAg0InQo9CR0JjQndCa0JAKK9CR0KPQodCY0IjQkCDQnNCY0JvQkNCdCivQkdCj0KHQntCSINCQ0JvQldCa0KHQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQkdCj0KHQntCSINCY0JPQntCgCivQkdCj0KHQo9Cb0JDQj9CY0Isg0JzQo9Ch0KLQkNCk0JAKK9CR0KPQotCQINCb0JDQl9CQ0KAKK9CR0KPQotCQINCS0J7QiNCY0KHQm9CQ0JIg0JTQoAor0JHQo9Ci0JDQqCDQpNCV0KDQldCd0KYKK9CR0KPQotCV0KAg0JrQodCV0J3QmNCI0JAKK9CR0KPQotCV0KDQldCgINCY0KjQotCS0JDQnQor0JHQo9Ci0JXQoNCV0KAg0IjQo9Cb0JjQiNCQCivQkdCj0KLQldCg0JjQnSDQlNCV0KjQkAor0JHQo9Ci0J7QoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Ci0J7QoCDQldCd0JTQoNCVCivQkdCj0KLQntCgINCc0JjQpdCQ0IjQm9CeCivQkdCj0KLQntCg0JDQpiDQiNCe0KHQmNCfCivQkdCj0KLQntCg0JDQpiDQnNCQ0KDQmNCI0JAKK9CR0KPQotCe0KDQkNCmINCX0J7QoNCQ0J0KK9CR0KPQotCj0JvQmNCI0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0KLQo9Cg0J7QktCY0Isg0KDQkNCi0JrQngor0JHQo9Ci0KPQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQl9CQINCY0KDQldCd0JAKK9CR0KPQl9CQINCa0J7QoNCd0JXQm9CY0KMKK9CR0KPQl9CQINCc0JjQpdCQ0IkKK9CR0KPQl9CQ0Kgg0KjQkNCd0JTQntCgCivQkdCj0JfQkNCoINCI0J7QodCY0J8KK9CR0KPQl9CQ0Kgg0IjQntCh0JjQnwor0JHQo9CX0JDQqCDQm9CQ0IjQntCoCivQkdCj0JfQkNCoINCf0JDQktCQ0J4KK9CR0KPQl9CQ0Kgg0J/QkNCS0JvQlQor0JHQo9CX0JDQqNCYINCI0J7QodCY0J8KK9CR0KPQl9CQ0KjQmCDQnNCY0KXQkNCI0JvQngor0JHQo9CX0JDQj9CY0Isg0InQmNCJ0JDQndCQCivQkdCj0JfQkNCP0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQo9CX0JDQj9CY0IjQkCDQndCV0J3QkNCUCivQkdCj0JfQkNCP0JjQiNCQINCd0J7QktCQ0JoKK9CR0KPQl9CQ0InQmtCeINCI0KPQodCj0KQg0JTQmNCf0Jsg0JjQndCTCivQkdCj0JfQkNCd0KfQmNCLINCI0J7QodCY0J8KK9CR0KPQl9CQ0J3Qp9CY0Isg0J3QkNCU0JXQltCU0JAKK9CR0KPQl9CQ0J3QodCa0Jgg0JzQmNCo0JAKK9CR0KPQl9CQ0KDQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0KPQl9CQ0KDQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQo9CX0JDQoNCV0JLQmNCLINCg0KPQltCQCivQkdCj0JfQkNCg0J7QkiDQltCY0JLQkNCdCivQkdCj0JfQkNCg0J7QkiDQiNCe0JLQkNCdCivQkdCj0JfQkNCg0J7QkiDQl9Ce0KDQkAor0JHQo9CX0JDQoNCh0JrQmCDQgtCe0KDQgtCVCivQkdCj0JfQk9CeINCI0JDQndCe0KgKK9CR0KPQl9Ce0JPQkNCKINCc0JDQoNCY0IjQkAor0KbQkNCm0JrQniDQnNCQ0KDQmNCI0JAKK9Cm0JDQiNCY0Isg0JzQmNCb0J7QqAor0KbQkNCI0J3QldCgINCI0JXQm9CV0J3QkAor0KbQkNCI0J3QldCgINCJ0KPQkdCY0KbQkAor0KbQkNCI0J3QldCgINCh0KLQldCS0JDQnQor0KbQkNCI0J3QldCgINCh0KLQldCS0JAKK9Cm0JDQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Cm0JDQmtCY0Isg0JPQntCg0JTQkNCd0JAKK9Cm0JDQmtCY0Isg0IjQldCb0JXQndCa0J4KK9Cm0JDQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KbQkNCa0JjQiyDQn9CV0KLQkNCgCivQptCQ0JrQmNCLINCh0KLQldCS0JDQnQor0KbQkNCd0JTQmNCgINCk0KDQkNCK0JAKK9Cm0JDQndCY0Isg0InQmNCJ0JDQndCQCivQptCQ0J3QmNCLINCS0JXQm9CY0JzQmNCgCivQptCQ0J8g0ILQo9Cg0JAKK9Cm0JDQnyDQkdCe0KjQmtCeCivQptCQ0J8g0IjQntCQ0JrQmNCcCivQptCQ0J8g0IjQntCS0JDQnQor0KbQkNCfINCd0JXQndCQ0JQKK9Cm0JDQnyDQndCV0J3QkNCUCivQptCQ0J8g0KDQkNCU0J7QiNCa0JAKK9Cm0JDQnyDQotCQ0JzQkNCg0JAKK9Cm0JDQn9CQ0KAt0IjQkNCd0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQptCQ0J/QkNCgINCI0JDQndCe0KgKK9Cm0JDQn9CQ0KAg0IjQntCS0JDQnQor0KbQkNCf0JDQoCDQnNCQ0KDQmNCI0JAKK9Cm0JDQn9CQ0KAg0JzQkNCg0JjQiNCQCivQptCQ0J/QmNCaINCI0J7QodCY0J8KK9Cm0JDQn9CY0Jog0InQo9CU0JXQktCY0KIKK9Cm0JDQoCDQnNCQ0KDQmNCI0JAKK9Cm0JDQoNCQ0J0g0JHQntCo0JrQngor0KbQkNCg0JDQnSDQk9CV0J7QoNCT0JUKK9Cm0JDQoNCQ0J0g0J/QldCg0KHQkAor0KbQkNCg0JDQnSDQn9CV0KLQkNCgCivQptCQ0KDQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cm0JDQoNCV0JLQmNCLINCW0JjQktCQ0J0KK9Cm0JDQoNCV0JLQmNCLINCW0JjQktCa0JAKK9Cm0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cm0JDQoNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0JDQoNCV0JLQmNCLINCV0KHQotCV0KAKK9Cm0JDQoNCV0JLQmNCLINCa0JDQotCY0KbQkAor0KbQkNCg0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cm0JDQoNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0KbQkNCg0JXQktCY0Isg0JzQmNCb0JUKK9Cm0JDQoNCV0JLQmNCLINCd0JDQlNCQCivQptCQ0KDQldCS0JjQiyDQn9CV0KLQkNCgCivQptCQ0KDQldCS0JjQiyDQodCQ0JLQkAor0KbQkNCg0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQptCQ0KDQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cm0JDQoNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KbQkNCg0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KbQkNCg0JjQp9CY0Isg0KHQm9CQ0JLQmtCeCivQptCQ0KDQmNCLINCQ0J3QlNCg0JjQiNCQCivQptCQ0KDQmNCLINCR0KDQkNCd0JrQngor0KbQkNCg0JjQiyDQk9Ce0IjQmtCeCivQptCQ0KDQmNCLINCb0JDQl9CQ0KAKK9Cm0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQptCQ0KDQmNCLINCc0JjQoNCI0JDQndCQCivQptCQ0KDQmNCLINCh0JvQkNCS0JrQniDQlNCgINCf0KDQntCkCivQptCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0KbQkNCg0JjQi9CV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQptCQ0KDQniDQk9Ce0KDQkNCdCivQptCQ0KLQmNCLINCb0JDQl9CQ0KAKK9Cm0JDQktCd0JjQiyDQnNCQ0KDQotCQCivQptCQ0JLQndCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KbQkNCX0JjQnSDQlNCg0JDQk9CQ0J0KK9Cm0JUg0J/QkNCS0JvQlQor0KbQldCm0JXQmyDQnNCQ0KDQmNCI0JAKK9Cm0JXQk9Cb0JXQlNCYINCC0KPQoNCeCivQptCV0KXQntCb0JAg0KTQldCg0JXQndCmCivQptCV0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cm0JXQmtCY0Isg0JHQntCg0JjQktCe0IjQlQor0KbQldCa0JjQiyDQkdCe0KDQmtCeCivQptCV0JrQmNCLINCI0KPQm9Ca0JAKK9Cm0JXQmtCY0Isg0J/QldCi0JDQoAor0KbQldCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KbQldCa0KPQqCDQldCS0JAKK9Cm0JXQm9CY0Isg0JHQoNCQ0J3QmtCeCivQptCV0JvQmNCdINCc0JjQm9CQ0J0KK9Cm0JXQm9CY0J0g0JzQmNCb0JDQnQor0KbQldCd0JDQiCDQotCQ0KXQmNCgCivQptCV0J3QlNCV0KAg0JDQndCT0JXQm9CY0J3QkAor0KbQldCd0JjQiyDQnNCY0JvQntCS0JDQnQor0KbQldCfINCh0KLQldCS0JDQnQor0KbQldCf0KQg0KHQotCV0JLQkNCdCivQptCV0KDQk9Ce0Jsg0JLQmNCU0J7QodCQ0JLQkAor0KbQldCg0JjQiyDQlNCQ0J3QmNCm0JAKK9Cm0JXQoNCY0Isg0JzQldCl0JzQldCUCivQptCV0KDQndCQINCg0KPQlNCe0JvQpAor0KbQldCg0J7QktCQ0KYg0JfQntCg0JrQkAor0KbQldCg0J7QktCY0Isg0JHQkNCi0KDQmNCLCivQptCV0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cm0JXQoNCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0KbQldCg0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cm0JXQoNCe0JLQmNCLINCY0JrQntCd0JjQiNCQCivQptCV0KDQntCS0JjQiyDQidCj0JHQmNCS0J7QiNCVCivQptCV0KDQntCS0JjQiyDQnNCY0KjQngor0KbQldCg0J7QktCY0Isg0J3QldCd0JDQlAor0KbQldCg0J7QktCY0Isg0J3QntCS0JDQmgor0KbQldCg0J7QktCY0Isg0J/QldCi0JDQoAor0KbQldCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KbQldCg0J7QktCY0Isg0KHQoNCV0KLQldCdCivQptCV0KDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQptCV0KDQntCS0JjQiyDQo9Cg0J7QqAor0KbQldCg0J7QktCh0JrQmCDQlNCQ0J3QmNCI0JXQmwor0KbQldCh0J3QkNCaINCI0JDQndCa0J4KK9Cm0JXQodCd0JDQmiDQn9CQ0JLQm9CVCivQptCV0KHQndCQ0Jog0JfQm9CQ0KLQmtCeCivQptCV0KLQldCK0Jgg0IjQntCS0JDQnQor0KbQldCi0JjQndCQINCI0J7QktCQ0J0KK9Cm0JXQotCY0J3QkCDQidCY0InQkNCd0JAKK9Cm0JXQktCmINCk0KDQkNCK0JAKK9Cm0JXQktCmINCh0J7QitCQCivQptCY0JHQoNCY0Isg0KLQntCU0J7QoAor0KbQmNCR0KPQm9CQINCC0KPQoNCQCivQptCY0JHQo9Cb0JAg0JHQldCb0JAKK9Cm0JjQkdCj0JvQkCDQiNCQ0J3QmtCeCivQptCY0JHQo9Cb0JAg0IjQntCS0JDQnQor0KbQmNCR0KPQm9CQINCI0J7QktCQ0J0KK9Cm0JjQkdCj0JvQkCDQnNCQ0KDQiNCV0J3QmtCQCivQptCY0JHQo9Cb0JAg0JzQmNCo0JAKK9Cm0JjQkdCj0JvQkCDQn9CV0KDQkAor0KbQmNCm0JXQoNCYINCk0JXQoNCV0J3Qpgor0KbQmNCm0JXQoNCYINCa0JDQoNCe0IkKK9Cm0JjQptCV0KDQmCDQm9CQ0KHQm9CeCivQptCY0KbQldCg0Jgg0JzQkNCi0JjQm9CU0JAKK9Cm0JjQptCV0KDQmCDQn9CV0KDQkAor0KbQmNCm0JXQoNCYINCS0JjQndCa0J4KK9Cm0JjQptCa0JAg0KjQi9CV0KTQkNCdCivQptCY0KbQmtCQINCI0JDQnQor0KbQmNCm0JzQmNCbINCR0J7QltCY0JTQkNCgCivQptCY0KbQnNCY0Jsg0JHQoNCQ0J3QmtCeCivQptCY0KbQnNCY0Jsg0JrQoNCh0KLQngor0KbQmNCm0JzQmNCbINCc0JDQoNCY0IjQkAor0KbQmNCm0JzQmNCbINCc0JDQoNCa0J4KK9Cm0JjQptCc0JjQmyDQnNCY0JvQkNCdCivQptCY0KbQnNCY0Jsg0KHQotCe0IjQkNCdCivQptCY0KbQnNCY0Jsg0KLQkNCi0IjQkNCd0JAKK9Cm0JjQptCc0JjQmyDQl9Ce0KDQkNCdCivQptCY0KbQnNCY0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JjQptCc0JjQm9Ce0JLQmNCLINCX0J7QoNCa0JAKK9Cm0JjQptCeINCU0KPQqNCQ0J0KK9Cm0JjQptCS0JDQoNCY0J0g0InQo9CR0J7QnNCY0KAKK9Cm0JjQpNCg0JjQiyDQk9CQ0JvQmNCRCivQptCY0JPQkNCdINCQ0J3QotCj0J0KK9Cm0JjQk9CQ0J0g0JjQktCQ0J0KK9Cm0JjQk9CQ0Iog0IjQntCh0JjQnwor0KbQmNCT0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KbQmNCT0JDQndCe0JLQmNCLINCU0JDQndCVCivQptCY0JPQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQmNCT0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQptCY0JPQkNCd0J7QktCY0Isg0J7QodCi0J7QiNCQCivQptCY0JPQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0KbQmNCT0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9Cm0JjQk9CY0Isg0JjQktCQ0J0KK9Cm0JjQk9Cb0JXQoCDQodCd0JXQltCQ0J3QkAor0KbQmNCT0InQldCm0JrQmCDQpNCg0JDQitCQCivQptCY0JPQidCV0KbQmtCYINCS0JXQoNCQCivQptCY0JrQntCg0JAg0JbQo9CW0JDQndCQCivQptCY0JrQntCi0JAg0JbQldCJ0JrQngor0KbQmNCa0J7QotCQINCe0JvQk9CQCivQptCY0JrQntCi0JAg0KHQm9CQ0JLQmtCeCivQptCY0JrQo9Co0JAg0IjQntCS0JDQnQor0KbQmNCa0KPQqNCQINCX0J7QoNCQ0J0KK9Cm0JjQnNCR0JDQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQmNCc0JHQkNCbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCY0JzQkdCQ0Jsg0KLQmNCR0J7QoAor0KbQmNCc0JHQkNCbINCS0JXQoNCY0KbQkAor0KbQmNCc0JHQkNCJ0JXQktCY0Isg0JfQm9CQ0KLQkNCd0JAKK9Cm0JjQnNCV0KDQnNCQ0J0g0JvQkNCU0JjQodCb0JDQkgor0KbQmNCc0JXQoNCc0JDQnSDQodCc0JjQidCQCivQptCY0J3QptCe0JLQmNCLINCW0JjQktCa0JAKK9Cm0JjQndCU0JXQoCDQktCY0JTQkAor0KbQmNCd0JTQoNCY0Isg0ILQntCg0ILQlQor0KbQmNCd0JTQoNCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cm0JjQndCU0KDQmNCLINCf0JXQotCQ0KAg0JTQoAor0KbQmNCd0JPQkNCg0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JjQndCT0JXQm9CYINCc0JjQm9CV0J3QkAor0KbQmNCd0JPQmCDQmtCQ0KDQm9CeCivQptCY0J3QmtCb0JXQoCDQiNCV0JvQmNCh0JDQktCV0KLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cm0JjQndCa0JvQldCgINCI0KPQm9CY0IjQlQor0KbQmNCd0JrQm9CV0KAg0JrQkNCb0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0KbQmNCd0JrQm9CV0KAg0JrQkNCb0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0KbQmNCd0JrQm9CV0KAg0JrQkNCb0JzQkNCdCivQptCY0J3QmtCb0JXQoCDQnNCQ0JPQlNCe0JvQndCQCivQptCY0J3QmtCe0KbQmtCYINCC0J7QoNCC0JUKK9Cm0JjQndCa0J7QptCa0Jgg0JLQntCI0JjQodCb0JDQkgor0KbQmNCf0KDQo9CoINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQptCY0KDQkdCj0KEg0JzQkNCg0JjQiNCQCivQptCY0KDQk9CV0KAg0JTQo9Co0JDQndCa0JAKK9Cm0JjQoNCe0Jog0KjQkNCd0JTQntCgCivQptCY0KLQmtCe0JLQmNCLINCY0JLQmtCQCivQptCY0KLQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cm0JjQktCg0JjQiyDQnNCY0JvQmtCQCivQptCc0JjQidCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KbQntCm0JXQmiDQqNCi0JXQpNCQ0J3QmNCI0JAKK9Cm0J7QptCV0Jog0JjQnNCg0JUKK9Cm0J7QptCV0Jog0IjQntCh0JjQnwor0KbQntCm0JXQmiDQodCi0JXQktCQ0J0KK9Cm0J7QptCY0J0g0JzQmNCg0JAKK9Cm0J7QptCeINCS0JDQpdCU0JXQotCQCivQptCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQptCe0JvQmNCLINCR0J7Qk9Ce0KHQkNCSCivQptCe0JvQmNCLINCk0KDQkNCK0JAKK9Cm0J7Qm9CY0Isg0IjQntCh0JjQnwor0KbQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cm0J7Qm9CY0Isg0JvQkNCU0JjQodCb0JDQkgor0KbQntCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQptCe0J3QmNCLINCU0KDQkNCT0JjQitCQCivQptCe0J3QmNCLINCI0JDQndCa0J4g0JzQoCDQmNCd0JMKK9Cm0J7QndCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0J7Qn9Ca0J7QkiDQltCV0InQmtCeCivQptCg0JXQn9CY0Isg0JvQkNCU0JjQodCb0JDQkgor0KbQoNCV0J/Qo9Cb0JjQiyDQktCY0JTQntCh0JDQktCQCivQptCg0JXQn9Cj0InQkCDQotCe0JTQntCgCivQptCg0JXQktCQ0KAg0JHQntCT0JTQkNCdCivQptCg0JXQktCQ0KAg0JzQmNCb0KPQotCY0J0g0JTQmNCf0Jsg0JjQndCTCivQptCg0JXQktCQ0KAg0KHQmNCc0JAKK9Cm0KDQldCS0JDQoCDQodCb0JDQktCa0J4KK9Cm0KDQmtCS0JXQitCQ0JrQntCSINCU0JDQndCY0KbQkAor0KbQoNCa0JLQldCK0JDQmtCe0JIg0JTQo9Co0JDQndCa0JAKK9Cm0KDQmtCS0JXQitCQ0JrQntCSINCh0KPQm9Ci0JDQndCY0IjQkAor0KbQoNCd0KfQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KbQoNCd0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQptCg0J3Qp9CV0JLQmNCLINCc0JjQoNCa0J4KK9Cm0KDQndCn0JXQktCY0Isg0J3QldCU0JXQidCa0JAKK9Cm0KDQndCn0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQptCg0J3Qp9CV0JLQmNCLINCS0JXQoNCQCivQptCg0J3Qp9CV0JLQmNCLINCS0JvQkNCU0J4KK9Cm0KDQndCQ0JTQkNCaINCS0JvQkNCi0JrQngor0KbQoNCd0Jgg0JLQldCg0JjQptCQCivQptCg0J3QmCDQl9Ce0KDQmNCm0JAKK9Cm0KDQndCY0Isg0JHQoNCQ0J3QmtCQCivQptCg0J3QmNCLINCU0KDQkNCT0JDQnQor0KbQoNCd0JjQiyDQk9Ce0KDQkNCdCivQptCg0J3QmNCLINCc0JDQoNCa0J4KK9Cm0KDQndCY0Isg0JzQmNCb0JDQnQor0KbQoNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KbQoNCd0JjQiyDQndCY0JrQntCb0JAKK9Cm0KDQndCY0Isg0J7QodCi0J7QiNCQCivQptCg0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQptCg0J3QmNCLINCh0J7QpNCY0IjQkAor0KbQoNCd0JjQiyDQo9CT0InQldCo0JAKK9Cm0KDQndCY0Isg0JLQkNCh0JAKK9Cm0KDQndCY0Isg0JLQldCg0JAKK9Cm0KDQitCQ0KYg0JzQmNCb0JXQndCQCivQptCg0IrQkNCaINCW0JjQktCQ0J3QmtCQCivQptCg0IrQkNCa0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cm0KDQitCQ0J3QmNCdINCR0KDQkNCd0JjQodCb0JDQktCQCivQptCg0IrQkNCd0JjQnSDQl9CQ0JPQntCg0JrQkAor0KbQoNCK0JDQndCh0JrQmC3Qp9CV0J3Qk9CV0KDQmCDQmtCg0JjQodCi0JjQndCQCivQptCg0IrQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Cm0KDQitCQ0J3QodCa0Jgg0ILQntCa0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0JHQo9CU0JjQnNCa0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0JjQktCQ0J0KK9Cm0KDQitCQ0J3QodCa0Jgg0IjQldCb0JXQndCQCivQptCg0IrQkNCd0KHQmtCYINCa0JDQotCY0KbQkAor0KbQoNCK0JDQndCh0JrQmCDQmtCj0JfQnNCQ0J0KK9Cm0KDQitCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0KbQoNCK0JDQndCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0KbQoNCK0JDQndCh0JrQmCDQodCQ0IrQkAor0KbQoNCK0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Cm0KDQitCQ0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KbQoNCK0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQptCg0IrQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9Cm0KDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCg0J3QmtCe0JLQmNCLLdCh0JDQktCY0Isg0InQmNCJ0JDQndCQCivQptCg0J3QmtCe0JLQmNCLINCX0JvQkNCi0JAKK9Cm0KDQndCe0JHQkNCg0JDQpiDQlNCj0KjQkNCdCivQptCg0J3QntCR0JDQoNCQ0KYg0IjQntCS0JDQnQor0KbQoNCd0J7QkdCg0IrQkCDQnNCY0JvQkNCdCivQptCg0J3QntCR0KDQitCQINCc0JjQoNCI0JDQndCQCivQptCg0J3QntCR0KDQitCQINCf0JXQotCQ0KAKK9Cm0KDQndCe0JPQm9CQ0JLQkNCmINCc0JjQpdCQ0IjQm9CeCivQptCg0J3QntCT0JvQkNCS0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQptCg0J3QntCT0J7QoNCn0JXQktCY0Isg0IjQldCb0JjQptCQCivQptCg0J3QntCT0J7QoNCQ0KYg0ILQntCa0J4KK9Cm0KDQndCe0JPQntCg0JDQpiDQkdCe0KDQmNCo0JAKK9Cm0KDQndCe0JPQntCg0JDQpiDQkdCe0KHQmNCJ0JrQkAor0KbQoNCd0J7Qk9Ce0KDQkNCmINCU0KDQkNCT0JDQnQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCU0KDQkNCT0J7QidCj0JEKK9Cm0KDQndCe0JPQntCg0JDQpiDQlNCj0KjQkNCdCivQptCg0J3QntCT0J7QoNCQ0KYg0JzQmNCb0JDQnQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCc0JjQm9Ca0JAKK9Cm0KDQndCe0JPQntCg0JDQpiDQnNCY0JvQntCh0JDQkgor0KbQoNCd0J7Qk9Ce0KDQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cm0KDQndCe0JPQntCg0JDQpiDQn9CQ0JLQm9CVCivQptCg0J3QntCT0J7QoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCh0JLQldCi0JvQkNCd0JAKK9Cm0KDQndCe0JPQntCg0JDQpiDQktCV0JvQmNCc0JjQoCDQlNCgCivQptCg0J3QntCT0J7QoNCQ0KYg0JfQlNCg0JDQktCa0J4KK9Cm0KDQndCe0JPQntCg0JDQpiDQl9Ce0KDQmNCm0JAKK9Cm0KDQndCe0IjQkCDQkNCd0KLQlQor0KbQoNCd0J7QiNCQINCh0JvQkNCS0JjQptCQCivQptCg0J3QntCI0JDQp9Ca0Jgg0JHQntCT0JTQkNCdCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQkNCd0JjQptCQINCU0KAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQlNCQ0J3QmNCb0J4KK9Cm0KDQndCe0IjQkNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9Cm0KDQndCe0IjQkNCn0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQiNCe0JLQkNCdCivQptCg0J3QntCI0JDQp9Ca0Jgg0JrQkNCi0JjQptCQCivQptCg0J3QntCI0JDQp9Ca0Jgg0JzQmNCb0JXQndCQINCU0KAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQnNCY0JvQntCoCivQptCg0J3QntCI0JDQp9Ca0Jgg0JzQm9CQ0JTQldCdCivQptCg0J3QntCI0JDQp9Ca0Jgg0J7QkdCg0JDQlAor0KbQoNCd0J7QiNCQ0KfQmtCYINCe0JHQoNCQ0JQKK9Cm0KDQndCe0IjQkNCn0JrQmCDQoNCQ0JTQnNCY0JvQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCh0J7QpNCY0IjQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQl9Ce0KDQmNCm0JAKK9Cm0KDQndCe0JrQoNCQ0Jog0IjQntCS0JDQnQor0KbQoNCd0J7QmtCg0JDQmiDQnNCY0JvQntCoCivQptCg0J3QntCa0KDQkNCaINCh0KLQldCS0JDQnQor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0JPQntCI0JrQngor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCb0KPQmtCQCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cm0KDQndCe0JzQo9CiINCc0JjQpdCQ0IjQm9CeCivQptCg0JLQldCd0Jgg0JbQkNCg0JrQngor0KbQoNCS0JXQndCYINCQ0J3QkAor0KbQoNCS0JXQndCYINCR0JjQodCV0KDQmtCQCivQptCg0JLQldCd0Jgg0JTQoNCQ0JPQkNCdCivQptCg0JLQldCd0Jgg0JzQkNCg0JrQngor0KbQoNCS0JXQndCYINCc0JjQm9CQ0J0KK9Cm0KDQktCV0J3QmCDQnNCY0JvQldCd0JrQngor0KbQoNCS0JXQndCYINCc0JjQntCc0JjQoAor0KbQoNCS0JXQndCYINCh0JjQnNCQCivQptCg0JLQldCd0Jgg0KHQotCV0JLQkNCdCivQptCg0JLQldCd0Jgg0KHQotCV0JLQkNCdCivQptCg0JLQldCd0JrQniDQiNCQ0J3QmtCeCivQptCg0JLQldCd0JrQniDQnNCY0JvQkNCdCivQptCg0JLQldCd0JrQniDQoNCQ0JTQntCc0JjQoAor0KbQoNCS0JXQndCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQptCg0JLQldCd0JrQntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Cm0KDQktCV0J3QmtCe0JIg0J/QldCi0JDQoAor0KbQoNCS0JXQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0KbQoNCS0JXQndCa0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQptCg0JLQldCd0JrQntCS0JjQiyDQodCY0J3QmNCo0JAg0JTQoAor0KbQoNCS0JXQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cm0KPQptCQ0Jog0JzQmNCg0IjQkNCd0JAKK9Cm0KPQptCQ0Jog0KDQkNCl0JjQnAor0KbQo9Cm0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQo9Cm0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQptCj0KbQmNCLINCT0JjQndCQCivQptCj0KbQmNCLINCI0JXQm9Ca0JAKK9Cm0KPQptCY0Isg0InQmNCJ0JDQndCQCivQptCj0KbQmNCLINCh0KLQkNCd0JAKK9Cm0KPQptCY0Isg0KHQotCQ0J3QntCI0JvQngor0KbQo9Cm0JjQiyDQktCV0KDQkAor0KbQo9Cm0JjQiyDQktCV0KHQndCQCivQptCj0KbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cm0KPQptCe0JLQmNCLINCg0JDQpNCV0KIKK9Cm0KPQk9Cb0Jgg0IjQntCS0JDQnQor0KbQo9Ca0JjQiyDQoNCQ0JTQkAor0KbQo9Ca0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQptCj0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cm0KPQitCQ0Jog0JzQmNCb0KPQotCY0J0KK9Cm0KPQn9CQ0Isg0KHQktCV0KLQntCc0JjQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KbQo9Cf0JDQoNCY0Isg0KLQntCc0JAKK9Cm0KPQoNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQptCS0JXQiNCQ0J3QntCSINCI0JXQm9CV0J3QkAor0KbQktCV0IjQkNCd0J7QkiDQndCV0JHQntCI0KjQkAor0KbQktCV0IjQkNCd0J7QkiDQn9Cg0JXQlNCg0JDQkwor0KbQktCV0IjQkNCd0J7QkiDQktCV0JvQmNCR0J7QoAor0KbQktCV0IjQkNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCd0JDQlNCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KbQktCV0IjQmNCLINCn0JXQlNCe0JzQmNCgCivQptCS0JXQiNCY0Isg0JbQkNCg0JrQngor0KbQktCV0IjQmNCLINCW0JjQktCe0IjQmNCdCivQptCS0JXQiNCY0Isg0ILQntCg0ILQlSDQlNCgCivQptCS0JXQiNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KbQktCV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Cm0JLQldCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCS0JXQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cm0JLQldCI0JjQiyDQkdCe0KDQmNCS0J7QiAor0KbQktCV0IjQmNCLINCU0KDQkNCT0JDQnQor0KbQktCV0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KbQktCV0IjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cm0JLQldCI0JjQiyDQmNCT0IrQkNCiCivQptCS0JXQiNCY0Isg0JjQktCQ0J0KK9Cm0JLQldCI0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCI0JjQiyDQmtCQ0KLQmNCm0JAKK9Cm0JLQldCI0JjQiyDQm9CQ0JfQkNCgCivQptCS0JXQiNCY0Isg0JzQmNCb0JDQnQor0KbQktCV0IjQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCI0JjQiyDQnNCY0JvQmNCh0JDQkgor0KbQktCV0IjQmNCLINCc0JjQm9Ce0KgKK9Cm0JLQldCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0KbQktCV0IjQmNCLINCc0JjQoNCI0JDQndCQCivQptCS0JXQiNCY0Isg0J3QkNCU0JXQltCU0JAKK9Cm0JLQldCI0JjQiyDQndCV0JTQldCJ0JrQkAor0KbQktCV0IjQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cm0JLQldCI0JjQiyDQndCY0JrQntCb0JAKK9Cm0JLQldCI0JjQiyDQntCb0JPQkAor0KbQktCV0IjQmNCLINCf0JDQktCb0JUKK9Cm0JLQldCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQptCS0JXQiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cm0JLQldCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cm0JLQldCI0JjQiyDQodCb0JDQktCe0InQo9CRCivQptCS0JXQiNCY0Isg0KHQotCV0JLQkNCdCivQptCS0JXQiNCY0Isg0KHQotCV0JLQkNCdCivQptCS0JXQiNCY0Isg0JLQm9CQ0JTQkNCdCivQptCS0JXQiNCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cm0JLQldCI0JjQnSDQkdCe0JbQkAor0KbQktCV0IjQmNCdINCR0J7QiNCQ0J3QkAor0KbQktCV0IjQmNCdINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQptCS0JXQiNCY0J0g0JzQkNCg0JjQiNCQCivQptCS0JXQiNCY0J0g0JzQmNCb0JDQnQor0KbQktCV0IjQmNCdINCc0JjQm9Ce0KgKK9Cm0JLQldCI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KbQktCV0IjQmNCdINCd0J7QktCQ0JoKK9Cm0JLQldCI0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQptCS0JXQiNCY0J0g0KLQoNCY0JLQkAor0KbQktCV0JrQmNCLINCc0JjQm9CV0KLQkAor0KbQktCV0JrQmNCLINCS0J7QiNCY0J0KK9Cm0JLQldCa0JjQiyDQl9Cb0JDQotCY0KbQkAor0KbQktCV0KDQlNCV0Ikg0IjQkNCd0JrQngor0KbQktCV0KDQlNCV0Ikg0KDQo9CW0JAKK9Cm0JLQldCg0IrQkNCaINCI0JXQndCVCivQptCS0JXQotCQ0J3QntCS0JjQiyDQkNCd0JjQotCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cm0JLQldCi0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0IjQldCg0JzQmNCd0JAg0JTQoCDQm9CV0JrQkNCgCivQptCS0JXQotCQ0J3QntCS0JjQiyDQnNCQ0JPQlNCe0JvQndCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCm0JAKK9Cm0JLQldCi0JDQndCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cm0JLQldCi0JDQndCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cm0JLQldCi0JDQndCe0JLQmNCLINCS0JXQidCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQptCS0JXQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQptCS0JXQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQptCS0JXQotCQ0J3QntCS0KHQmtCYINCc0JDQndCe0IjQm9CeCivQptCS0JXQotCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQptCS0JXQotCY0KfQkNCd0JjQnSDQidCj0JHQmNCm0JAKK9Cm0JLQldCi0JjQp9CQ0J3QmNCdINCc0JjQm9Ca0JAKK9Cm0JLQldCi0JjQp9CQ0J3QmNCdINCS0JXQodCd0JAKK9Cm0JLQldCi0JjQp9CQ0J3QmNCdINCX0J7QoNCQ0J0KK9Cm0JLQldCi0JjQiyDQkdCe0KjQmtCeCivQptCS0JXQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KbQktCV0KLQmNCLINCb0JDQl9CQ0KAKK9Cm0JLQldCi0JjQiyDQm9CQ0JfQngor0KbQktCV0KLQmNCLINCJ0KPQkdCY0KbQkAor0KbQktCV0KLQmNCLINCc0JDQoNCY0IjQkAor0KbQktCV0KLQmNCLINCf0JXQotCQ0KAKK9Cm0JLQldCi0JjQiyDQodCb0JDQktCa0J4KK9Cm0JLQldCi0JjQiyDQodCi0JDQndCa0J4KK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCR0J7QqNCa0J4KK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCR0KDQkNCd0JrQngor0KbQktCV0KLQmNCL0JDQndCY0J0g0JTQkNCd0JUKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCU0JDQndCY0KbQkAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JjQm9CY0IjQkAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JjQoNCV0J3QkAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JzQmNCb0J7QqAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCh0J3QldCW0JDQndCQCivQptCS0JXQotCY0IvQkNCd0JjQnSDQl9Ce0KDQkNCdCivQptCS0JXQotCY0J3QmNCLINCc0JDQoNCa0J4KK9Cm0JLQldCi0JjQndCY0Isg0JzQkNCi0JjQiNCQCivQptCS0JXQotCY0IrQkNCd0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQptCS0JXQotCY0J3QntCSINCh0JDQktCQCivQptCS0JXQotCY0J3QntCS0JjQiyDQkNCd0JrQkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JHQoNCQ0J3QkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQptCS0JXQotCY0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCY0JLQkNCd0JrQngor0KbQktCV0KLQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCV0KLQmNCd0J7QktCY0Isg0KHQmNCc0J4KK9Cm0JLQldCi0JjQndCe0JLQmNCLINCS0JXQoNCQCivQptCS0JXQotCY0J3QntCS0JjQiyDQl9Ce0KDQkAor0KbQktCV0KLQmtCe0JIg0IjQntCS0JDQnQor0KbQktCV0KLQmtCe0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cm0JLQldCi0JrQntCSINCg0JDQlNCe0IjQlQor0KbQktCV0KLQmtCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQptCS0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0KbQktCV0KLQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0KLQmtCe0JLQmNCLINCQ0J3QmtCQCivQptCS0JXQotCa0J7QktCY0Isg0JHQntCI0JDQndCQCivQptCS0JXQotCa0J7QktCY0Isg0JHQntCg0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KbQktCV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KbQktCV0KLQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQptCS0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAg0JzQoAor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLLdCT0JvQkNCU0JjQiyDQodCc0JjQidCQCivQptCS0JXQotCa0J7QktCY0Isg0JPQoNCe0JfQlNCQCivQptCS0JXQotCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCY0JLQkNCd0JrQkAor0KbQktCV0KLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCI0JXQm9Ca0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQm9CY0JLQmNCQCivQptCS0JXQotCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQptCS0JXQotCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQptCS0JXQotCa0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCg0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQngor0KbQktCV0KLQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0JTQo9Cb0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCg0JjQodCi0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQptCS0JXQotCa0J7QktCY0Isg0KHQntCa0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQodCg0JHQntCR0KDQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQptCS0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KbQktCV0KLQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCi0J7QndCYCivQptCS0JXQotCa0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JfQntCg0JAKK9Cm0JLQldCi0JrQntCS0KHQmtCYINCR0J7QoNCY0KEKK9Cm0JLQldCi0JrQntCS0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Cm0JLQldCi0JrQntCS0KHQmtCYINCd0JjQmtCe0JvQkAor0KbQktCV0KLQmtCe0JLQodCa0Jgg0JLQntCI0J4KK9Cm0JLQldCi0J7QiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQntCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQptCS0JXQotCe0IjQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0KbQktCV0KLQntCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQptCS0JjQiNCQ0J0g0JzQkNCg0JjQiNCQCivQptCS0JjQiNCQ0J0g0JzQkNCg0JrQngor0KbQktCY0IjQkNCd0J7QktCY0Isg0JDQndCC0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCQ0J3QkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JDQndCi0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCR0J7QoNCeCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0KbQkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KbQktCY0IjQkNCd0J7QktCY0Isg0KDQkNCd0JrQngor0KbQktCY0IjQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KbQktCY0IjQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCX0JvQkNCi0JAKK9Cm0JLQmNCI0JXQotCQ0J0g0JzQmNCg0JrQngor0KbQktCY0IjQldCi0JjQp9CQ0J3QmNCdINCI0J7QktCeCivQptCS0JjQiNCV0KLQmNCLINCY0JPQntCgCivQptCS0JjQiNCV0KLQmNCLINCI0J7QktCeCivQptCS0JjQiNCV0KLQmNCLINCc0JjQm9CVCivQptCS0JjQiNCV0KLQmNCLINCd0JDQlNCQCivQptCS0JjQiNCV0KLQmNCd0J7QktCY0Isg0KDQo9CW0JAKK9Cm0JLQmNCI0JXQotCY0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cm0JLQmNCI0JXQotCY0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cm0JLQmNCI0JjQiyDQltCV0InQmtCeCivQptCS0JjQiNCY0Isg0JTQoNCQ0JPQkNCdCivQptCS0JjQiNCY0Isg0JPQntCg0JDQnQor0KbQktCY0IjQmNCLINCI0JXQm9CY0KHQkNCS0JAKK9Cm0JLQmNCI0JjQiyDQiNCe0JLQkNCd0JrQkAor0KbQktCY0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQptCS0JjQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQmNCI0JjQiyDQnNCb0JDQgtCQCivQptCS0JjQiNCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JjQiNCY0Isg0J/QkNCd0KLQlQor0KbQktCY0IjQmNCLINCg0KPQltCY0KbQkAor0KbQktCY0IjQmNCLINCh0KLQldCS0JDQnQor0KbQktCY0IjQmNCdINCR0KDQkNCd0JrQngor0KbQktCY0IjQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KbQktCY0IjQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQptCS0JjQiNCe0JLQmNCLINCd0JXQgtCV0InQmtCQCivQptCS0JjQiNCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQptCS0JjQiNCe0JLQmNCLINCS0J7QiNCY0J0KK9Cm0JLQmNCa0JjQiyDQnNCY0KXQkNCY0JvQngor0KbQktCY0J3QkyDQiNCe0KHQmNCfCivQptCS0JjQotCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KbQktCY0KLQmtCeINCf0JXQotCQ0KAKK9Cm0JLQmNCi0JrQntCS0JDQpiDQnNCQ0KDQmtCeCivQptCS0IjQldCi0JDQnSDQntCb0JPQkAor0KbQktCI0JXQotCY0Isg0JjQm9CY0IjQkAor0KbQktCI0JXQotCY0IvQkNCd0JjQnSDQltCY0JLQmtCeCivQptCS0IjQldCi0JjQi9CQ0J3QmNCdINCT0J7QiNCa0J4KK9Cm0JLQiNCV0KLQmNCL0JDQndCY0J0g0KHQotCV0JLQngor0KbQktCI0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQiNCV0KLQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQptCS0IjQldCi0J7QiNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQptCS0J7QoNCe0JLQmNCLINCg0JDQlNCe0KgKK9Cm0JLQoNCa0JDQiSDQgtCj0KDQngor0I/QkNCR0JDQodCQ0J0g0JTQoNCQ0JPQntCI0JUKK9CP0JDQkdCY0Isg0JzQmNCb0JrQkAor0I/QkNCP0JjQiyDQktCj0JrQntCh0JDQktCQCivQj9CQ0KTQldCg0J7QktCh0JrQmCDQoNCV0ILQldCfCivQj9CQ0KTQmNCLINCl0JDQnNCU0JjQiNCQCivQj9CQ0KTQniDQnNCQ0KLQmNCI0JAKK9CP0JDQiNCQINCc0JDQoNCY0KbQkAor0I/QkNCa0JjQiyDQp9CV0JTQngor0I/QkNCa0JjQiyDQkdCe0JbQkNCd0JAKK9CP0JDQmtCY0Isg0JvQkNCX0JAKK9CP0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0I/QkNCa0KPQm9CQINCV0KDQltCV0JHQldCiCivQj9CQ0JrQo9Cb0JAg0JXQoNCW0JXQkdCV0KIKK9CP0JDQmtCj0JvQkCDQmNCS0JDQnQor0I/QkNCa0KPQm9CQINCc0JDQoNCY0KbQkAor0I/QkNCa0KPQm9CQINCd0JXQlNCV0InQmtCeCivQj9CQ0JrQo9Cb0JAg0J/QldCi0JDQoAor0I/QkNCa0KPQm9CQINCg0JDQlNCVCivQj9CQ0JrQo9Cb0JAg0JLQmNCU0J7QodCQ0JIKK9CP0JDQmtCj0JvQmNCdINCU0KPQqNCQ0J3QmtCQCivQj9CQ0JrQo9Cb0JjQnSDQn9CV0KLQkNCgCivQj9CQ0JrQo9Cb0JjQnSDQodCi0JXQktCQ0J0KK9CP0JDQm9CY0Isg0KHQotCe0IjQkNCdCivQj9CQ0JzQkdCQ0KDQodCa0Jgg0IjQntCS0JDQnQor0I/QkNCc0JHQkNChINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQj9CQ0JzQkdCQ0KEg0JzQmNCb0JUKK9CP0JDQnNCR0JDQodCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQj9CQ0JzQkdCY0Isg0JHQoNCQ0J3QmtCeCivQj9CQ0JzQkdCY0Isg0JzQmNCb0J7QktCQ0J0KK9CP0JDQnNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0I/QkNCc0JHQmNCLINCh0JvQkNCS0JrQngor0I/QkNCc0JHQmNCLINCh0KDQldCi0JAKK9CP0JDQndCY0Isg0KHQkNCS0JAKK9CP0JDQndCY0Isg0KHQotCQ0JfQkAor0I/QkNCg0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQj9CQ0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQj9CV0JvQldCi0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CP0JXQm9CV0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQj9CV0JvQldCi0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQj9CV0JvQldCi0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CP0JXQm9CV0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQj9CV0JvQldCi0J7QktCY0Isg0KLQntCc0J4KK9CP0JXQm9CY0JvQntCS0JjQiyDQiNCQ0J3QkAor0I/QldCf0JjQndCQINCI0J7QktCQ0J0KK9CP0JXQktCV0JvQldCa0JjQlNCY0KEg0JzQkNCg0JjQndCQCivQj9CV0JLQldCb0JXQmtCY0JTQmNChINCf0JDQndCi0JAKK9CP0JXQktCV0KAg0J3QldCU0JXQidCa0J4KK9CP0JXQktCV0KDQlNCQ0J3QntCS0JjQiyDQkNCd0JjQotCQCivQj9CV0JLQldCg0JTQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0I/QldCS0JXQoNCU0JDQndCe0JLQmNCLINCd0JDQodCi0J4KK9CP0JXQktCV0KDQlNCQ0J3QntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JTQltCY0JTQkCDQmtCQ0KLQmNCm0JAKK9CP0JjQlNCQINCa0JDQotCY0KbQkAor0I/QmNCU0JAg0JzQmNCb0JDQlNCY0J0KK9CP0JjQlNCQINCc0JjQm9Ce0JzQmNCgCivQj9CY0JPQo9Cg0JDQqCDQnNCY0JvQldCd0JrQngor0I/QmNCT0KPQoNCh0JrQmCDQkdCe0KDQmNCS0J7QiAor0I/QmNCT0KPQoNCh0JrQmCDQkdCg0JDQndCY0JzQmNCgCivQj9CY0JPQo9Cg0KHQmtCYINCR0KDQkNCd0JrQngor0I/QmNCT0KPQoNCh0JrQmCDQlNCQ0J3QmNCb0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0JTQo9Co0JrQngor0I/QmNCT0KPQoNCh0JrQmCDQidCY0InQkNCd0JAKK9CP0JjQk9Cj0KDQodCa0Jgg0InQmNCJ0JDQndCQCivQj9CY0JPQo9Cg0KHQmtCYINCc0JDQoNCY0IjQkAor0I/QmNCT0KPQoNCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CP0JjQk9Cj0KDQodCa0Jgg0JzQmNCb0JDQnQor0I/QmNCT0KPQoNCh0JrQmCDQnNCY0JvQldCd0JrQngor0I/QmNCT0KPQoNCh0JrQmCDQn9CV0KLQkNCgCivQj9CY0JPQo9Cg0KHQmtCYINCf0KDQldCU0KDQkNCTCivQj9CY0JrQmNCLINCc0JjQm9CQ0J0KK9CP0JjQm9CY0KLQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQj9CY0JvQmNCi0J7QkiDQmtCQ0KLQmNCm0JAKK9CP0JjQm9CY0KLQntCSINCh0KLQldCS0JDQnQor0I/QmNCb0JjQotCe0JIg0KHQotCV0JLQkAor0I/QmNCb0JjQotCe0JIg0JLQldCb0JjQndCa0JAKK9CP0JjQm9CS0JjQj9CY0IjQldCSINCc0JjQotCa0J4KK9CP0JjQnSDQnNCY0KDQmtCeCivQj9CY0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0I/QmNCd0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQj9CY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0I/QmNCg0JjQiyDQoNCj0JbQmNCm0JAKK9CP0J7Qj9CeINCg0JjQodCi0J4KK9CP0J7QlNCQ0J0g0JTQoNCQ0JPQkAor0I/QntCU0JDQnSDQnNCY0KDQiNCQ0J3QkAor0I/QntCU0JDQnSDQndCY0JrQntCb0JAKK9CP0J7QlNCQ0J0g0JLQldCg0JAKK9CP0J7Qk9CQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0I/QntCT0J7QktCY0Isg0JbQmNCS0JDQnQor0I/QntCT0J7QktCY0Isg0JzQmNCb0KPQnQor0I/QntCb0JXQkiDQkNCh0JXQnSDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQj9Ce0JvQldCSINCQ0KHQldCdCivQj9Ce0JvQldCSINCQ0KHQldCdCivQj9Ce0JvQldCSINCc0JjQotCa0J4KK9CP0J7Qm9CV0JIg0J/QkNCd0JTQlQor0I/QntCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0I/QntCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQj9Ce0JzQkdCQINCW0JjQktCa0J4KK9CP0J7QnNCR0JXQotCQINCa0J7QodCi0JAKK9CP0J7QnNCR0JXQotCQINCc0JjQm9Ce0KgKK9CP0J7QnNCR0JXQotCQINCd0JjQmtCe0JvQkAor0I/QntCc0JHQldCi0JAg0KHQktCV0KLQntCX0JDQoAor0I/QntCc0JHQldCi0JAg0JLQm9CQ0JTQngor0I/QntCc0JHQmNCLINCU0KPQqNCQ0J0KK9CP0J7QnNCR0JjQiyDQnNCY0InQkAor0I/QntCc0JHQmNCLINCh0J7QmtCQCivQj9Ce0J3Qm9CV0Jcg0J/QmNCg0J7QqNCa0JAKK9CP0J7Qn9CQ0JvQmNCLINCU0KDQkNCT0JDQnQor0I/Qo9CP0JDQoCDQgtCj0KDQkAor0I/Qo9CP0JDQoCDQiNCe0JDQmtCY0JwKK9CP0KPQj9CQ0KAg0KHQm9CQ0JLQmtCeCivQj9Cj0JTQntCS0JjQiyDQodCc0JjQidCa0JAKK9CP0KPQlNCe0JLQmNCLINCS0JDQodCeCivQj9Cj0JrQm9CV0JLQodCa0Jgg0KHQkNCo0JAKK9CP0KPQmtCJ0JXQkiDQlNCg0JDQk9CQ0J0KK9CP0KPQmtCJ0JXQkiDQodCi0J7QiNCQ0J0KK9CP0KPQndCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CP0KPQndCY0Isg0JzQmNCb0JjQktCe0IjQlQor0I/Qo9Cd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0I/Qo9Cd0JjQiyDQoNCQ0JTQntCc0JjQoAor0I/Qo9CK0JAg0JDQnNCQ0JvQmNCI0JAKK9CP0KPQitCQINCV0JLQk9CV0J3QmNCI0JUKK9CP0KPQitCQINCT0J7QoNCU0JDQndCQCivQj9Cj0IrQkCDQmNCg0JXQndCQCivQj9Cj0IrQkCDQmNCS0JDQnQor0I/Qo9CK0JAg0IjQkNCa0JjQnAor0I/Qo9CK0JAg0IjQkNCd0JrQngor0I/Qo9CK0JAg0IjQldCb0JXQndCQCivQj9Cj0IrQkCDQidCj0JHQntCc0JjQoAor0I/Qo9CK0JAg0JzQmNCg0J7QnQor0I/Qo9CK0JAg0JLQm9CQ0JTQmNCc0JjQoAor0I/Qo9CK0JAg0JfQktCe0J3QmNCc0JjQoAor0I/Qo9CS0JXQoCDQktCV0KHQldCb0JjQndCa0JAKK9CP0KPQktCV0KAg0JLQntCI0JjQodCb0JDQkgor0I/Qo9CS0JXQoNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JTQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JTQkNCn0JXQktCY0Isg0JzQntCc0JjQoAor0JTQkNCn0JjQiyDQlNCj0KjQkNCdCivQlNCQ0KfQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CU0JDQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9CU0JDQp9CY0Isg0JzQmNCo0JAKK9CU0JDQp9CY0Isg0JzQmNCb0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQlNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9CU0JDQp9CY0Isg0JzQmNCb0JjQptCQCivQlNCQ0KfQmNCLINCd0JDQlNCV0JbQlNCQCivQlNCQ0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCQ0KfQmNCLINCS0JXQm9CY0J3QmtCQCivQlNCQ0KfQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JTQkNCo0JjQiy3Qk9Cj0JvQlCDQidCY0InQkNCd0JAKK9CU0JDQqNCY0Isg0JzQkNCg0JjQiNCQCivQlNCQ0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCQ0KjQmNCLINCg0JDQlNCj0JvQlQor0JTQkNCo0JjQiyDQktCb0JDQlNCeCivQlNCQ0JbQgtCjINCd0JjQodCi0J7QoAor0JTQkNCR0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JTQkNCR0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0JDQkdCV0KDQldCgINCQ0J3QotCe0J3QmNCI0JAKK9CU0JDQkdCV0KLQmNCLINCg0JDQlNCY0KHQkNCSCivQlNCQ0JHQldCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JTQkNCR0JjQiyDQp9CV0JTQntCc0JjQoCDQlNCY0J/QmyDQntCV0KYKK9CU0JDQkdCY0Isg0ILQntCg0ILQlQor0JTQkNCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCR0JjQiyDQkdCe0KDQmtCeCivQlNCQ0JHQmNCLINCT0J7QodCf0JDQktCQCivQlNCQ0JHQmNCLINCI0J7QktCQ0J0KK9CU0JDQkdCY0Isg0IjQntCS0JDQnQor0JTQkNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQkdCY0Isg0JzQkNCg0JrQngor0JTQkNCR0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CU0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0JDQkdCY0Isg0JzQmNCb0KPQotCY0J0KK9CU0JDQkdCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JDQkdCY0Isg0J3QldCU0JXQidCa0J4KK9CU0JDQkdCY0Isg0J3QldCd0JDQlAor0JTQkNCR0JjQiyDQndCV0J3QkNCUCivQlNCQ0JHQmNCLINCd0JXQndCQ0JQKK9CU0JDQkdCY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JDQkdCY0Isg0KHQm9CQ0JLQmtCeCivQlNCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JTQkNCR0JjQiyDQodCS0JXQotCQCivQlNCQ0JHQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQkdCY0J0g0ILQntCg0ILQlQor0JTQkNCR0J7QktCY0Isg0JHQntCT0JTQkNCdCivQlNCQ0JHQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0JDQptCY0J0g0JbQldCJ0JrQngor0JTQkNCU0JDQmCDQgtCj0JvQkAor0JTQkNCU0JDQmCDQkdCQ0KDQkdCQ0KDQkAor0JTQkNCU0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQlNCQ0JTQkNCYINCb0JDQlNCY0KHQm9CQ0JIKK9CU0JDQlNCQ0Jgg0JvQkNCh0JvQngor0JTQkNCU0JDQmCDQodCi0JXQktCQ0J0KK9CU0JDQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCQ0JTQmNCLINCJ0KPQkdCY0KbQkAor0JTQkNCY0Isg0JvQo9Ca0JAKK9CU0JDQmNCLINCc0JjQm9CQ0J0KK9CU0JDQiNCnINCc0JjQpdCQ0IjQm9CeCivQlNCQ0IjQpyDQndCQ0JTQkAor0JTQkNCI0Kcg0KDQo9CR0JXQnQor0JTQkNCI0Kcg0JfQntCg0JjQptCQCivQlNCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JTQkNCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQkNCI0JjQiyDQlNCj0KjQkNCdCivQlNCQ0IjQmNCLINCJ0JjQidCQ0J3QkAor0JTQkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0JTQkNCI0JrQniDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0IjQmtCeINCS0JvQkNCU0JjQnNCY0KAKK9CU0JDQiNCe0JLQmNCLINCX0J7QoNCQCivQlNCQ0JrQmNCLINCC0J7QoNCC0JUKK9CU0JDQmtCY0Isg0JDQndCi0JUKK9CU0JDQmtCY0Isg0JHQntCI0JDQndCQCivQlNCQ0JrQmNCLINCR0J7QoNCY0KEKK9CU0JDQmtCY0Isg0JHQntCg0JrQkAor0JTQkNCa0JjQiyDQkdCg0JDQndCa0JAKK9CU0JDQmtCY0Isg0JTQkNCd0JUKK9CU0JDQmtCY0Isg0JTQkNCd0JjQm9CeCivQlNCQ0JrQmNCLINCU0KDQkNCT0J4KK9CU0JDQmtCY0Isg0JTQoNCQ0JPQngor0JTQkNCa0JjQiyDQlNCj0KjQkNCd0JrQkAor0JTQkNCa0JjQiyDQk9Ce0IjQmtCeCivQlNCQ0JrQmNCLINCY0JvQmNCI0JAKK9CU0JDQmtCY0Isg0IjQldCb0JXQndCQCivQlNCQ0JrQmNCLINCa0KHQldCd0JjQiNCQCivQlNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9CU0JDQmtCY0Isg0JzQmNCb0J7QiNCVCivQlNCQ0JrQmNCLINCc0JjQm9Ce0JzQmNCgCivQlNCQ0JrQmNCLINCc0JjQotCQ0KAKK9CU0JDQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JDQmtCY0Isg0J3QldCU0JXQidCa0J4KK9CU0JDQmtCY0Isg0J3QldCU0JXQidCa0J4KK9CU0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQlNCQ0JrQmNCLINCd0JjQmtCe0JvQkAor0JTQkNCa0JjQiyDQn9CQ0JLQm9CVCivQlNCQ0JrQmNCLINCf0JXQotCQ0KAKK9CU0JDQmtCY0Isg0KDQkNCI0JrQngor0JTQkNCa0JjQiyDQoNCQ0J3QmtCeCivQlNCQ0JrQmNCLINCg0JDQotCa0J4KK9CU0JDQmtCY0Isg0KDQldCJ0JAKK9CU0JDQmtCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CU0JDQmtCY0Isg0KHQm9CQ0JLQmtCeCivQlNCQ0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JDQmtCY0Isg0KHQoNCV0KLQldCdCivQlNCQ0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JTQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CU0JDQmtCY0Isg0JLQm9CQ0JTQngor0JTQkNCa0JjQiyDQl9Ce0KDQkNCdCivQlNCQ0JrQntCS0JjQiyDQgtCe0JrQngor0JTQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCQ0JrQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JTQkNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JTQkNCa0KHQldCgINCI0J7QktCQ0J0KK9CU0JDQmtCh0JXQoCDQodCi0JXQktCQ0J0KK9CU0JDQm9Cn0JXQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CU0JDQm9CY0J/QntCSINCR0KPQlNCY0JzQmNCgCivQlNCQ0JvQmNCf0J7QktCY0Isg0JDQkdCU0KPQmwor0JTQkNCJ0JDQpiDQidCj0JHQmNCm0JAKK9CU0JDQidCV0JIg0InQmNCJ0JDQndCQCivQlNCQ0InQldCSINCc0JjQm9CQ0J0KK9CU0JDQm9Cc0JDQptCY0IjQkCDQiNCQ0JTQoNCQ0J3QmtCQCivQlNCQ0JvQnNCQ0KbQmNCI0JAg0JzQmNCg0JrQngor0JTQkNCb0J7QqCDQnNCQ0KDQmNCI0JAKK9CU0JDQnNCo0JjQiyDQiNCe0KHQmNCkCivQlNCQ0JzQiNCQ0J0g0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0JDQnNCI0JDQnSDQiNCe0J0KK9CU0JDQnNCI0JDQndCQ0KYg0KDQkNCU0JzQmNCb0JAKK9CU0JDQnNCI0JDQndCQ0KYg0KDQkNCU0J7QktCQ0J0KK9CU0JDQnNCI0JDQndCQ0KYg0KHQotCe0IjQkNCd0JrQkAor0JTQkNCc0IjQkNCd0JjQiyDQl9Ce0KDQmNCm0JAKK9CU0JDQnNCI0JDQndCe0KHQmtCQINCh0JvQkNCS0JrQkAor0JTQkNCc0IjQkNCd0J7QkiDQltCY0JrQkAor0JTQkNCc0IjQkNCd0J7QkiDQgtCe0KDQgtCVCivQlNCQ0JzQiNCQ0J3QntCSINCR0JjQidCQ0J3QkAor0JTQkNCc0IjQkNCd0J7QkiDQkdCg0JDQndCa0JAKK9CU0JDQnNCI0JDQndCe0JIg0KbQktCV0KLQmtCeCivQlNCQ0JzQiNCQ0J3QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQkNCc0IjQkNCd0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQlNCQ0JzQiNCQ0J3QntCSINCY0JTQkAor0JTQkNCc0IjQkNCd0J7QkiDQiNCe0KDQlNCQ0J3QmtCQCivQlNCQ0JzQiNCQ0J3QntCSINCI0J7QktCQ0J0KK9CU0JDQnNCI0JDQndCe0JIg0JrQkNCi0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCSINCb0JDQl9CQCivQlNCQ0JzQiNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQlNCQ0JzQiNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQlNCQ0JzQiNCQ0J3QntCSINCf0JDQktCb0JUKK9CU0JDQnNCI0JDQndCe0JIg0KHQntCk0JjQiNCQCivQlNCQ0JzQiNCQ0J3QntCSINCh0KLQkNCd0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQldCc0JjQmwor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCI0J7QktCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLLdCc0JjQm9CV0J3QmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCd0J7QktCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQntCR0KDQkNCUCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0JjQnNCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCi0JXQktCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQotCV0KDQldCX0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCi0J7QlNCe0KAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUg0JTQoAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQltCY0JLQmtCeCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCc0JjQm9CQ0J0KK9CU0JDQnNCI0JDQndCe0JLQodCa0Jgg0KDQo9CW0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CU0JDQnNCJ0JDQndCe0JLQmNCLINCW0JjQktCe0KLQkAor0JTQkNCc0IrQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQkNCc0IrQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JTQkNCc0IrQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JTQkNCc0IrQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JTQkNCdINCc0JjQoNCQCivQlNCQ0J3QpyDQotCY0JHQntCgCivQlNCQ0J3Qp9CV0KLQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CU0JDQndCn0J4g0KfQkNCR0JAKK9CU0JDQndCn0J4g0IjQldCd0JUKK9CU0JDQndCQ0JjQm9Ce0JIg0JDQptCQCivQlNCQ0J3QkNCY0JvQntCSINCi0JXQktCQCivQlNCQ0J3Qk9Cj0JHQmNCLINCW0JDQoNCa0J4KK9CU0JDQndCT0KPQkdCY0Isg0KDQkNCU0JjQktCe0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CU0JDQndCT0KPQkdCY0Isg0KDQkNCi0JrQngor0JTQkNCd0JPQo9CX0J7QkiDQlNCj0KjQkNCdCivQlNCQ0J3QmCDQk9CQ0KjQn9CQ0KAKK9CU0JDQndCYINCb0JDQodCb0J4KK9CU0JDQndCY0KfQmNCLINCR0J7QoNCeCivQlNCQ0J3QmNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0JDQndCY0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CU0JDQndCY0KfQmNCLINCU0KDQkNCT0J4KK9CU0JDQndCY0KfQmNCLINCY0KDQldCd0JAKK9CU0JDQndCY0KfQmNCLINCh0JDQktCY0KbQkAor0JTQkNCd0JjQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9CU0JDQndCY0Kgg0JXQktCQCivQlNCQ0J3QmNCoINCY0KjQotCS0JDQnQor0JTQkNCd0JjQqCDQnNCQ0KDQmNCI0JAKK9CU0JDQndCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CU0JDQndCY0Isg0JLQldCh0J3QkAor0JTQkNCd0JjQiyDQl9Ce0KDQmNCm0JAKK9CU0JDQndCY0JXQmyDQkNCd0JTQoNCY0IjQkAor0JTQkNCd0JjQldCbINCQ0KDQkNCd0JrQkAor0JTQkNCd0JjQldCbINCl0JjQm9CU0JAKK9CU0JDQndCY0JXQmyDQiNCe0KHQmNCfCivQlNCQ0J3QmNCV0Jsg0J/QldCi0JDQoAor0JTQkNCd0JjQldCbINCf0JjQoNCe0KjQmtCQCivQlNCQ0J3QmNCV0Jsg0KDQo9CW0JAKK9CU0JDQndCY0JrQntCSINCc0JjQoNCe0InQo9CRCivQlNCQ0J3QmNCa0J7QkiDQktCQ0JvQldCg0JjQiNCQCivQlNCQ0J3QmNCb0J7QkiDQkNCd0JjQptCQCivQlNCQ0J3QmNCb0J7QkiDQkdCe0KHQmNCJ0JrQkAor0JTQkNCd0JjQm9Ce0JIg0JTQo9Co0JDQnQor0JTQkNCd0JjQm9Ce0JIg0JzQmNCb0JDQnQor0JTQkNCd0JjQm9Ce0JIg0KDQkNCU0J7QnNCY0KAKK9CU0JDQndCY0JvQntCSINCh0JzQmNCJ0JDQndCQCivQlNCQ0J3QmNCb0J7QkiDQodCi0J7QiNCQ0J0KK9CU0JDQndCY0JvQntCSINCS0JDQodCQCivQlNCQ0J3QmNCb0J7QktCQ0KYg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCQ0J3QmNCb0J7QktCQ0KYg0J/QldCi0JDQoAor0JTQkNCd0JjQm9Ce0JLQkNCmINCg0KPQltCQCivQlNCQ0J3QmNCb0J7QktCQ0KYg0JLQmNCi0J7QnNCY0KAKK9CU0JDQndCY0JvQntCS0JjQiyDQltCY0JLQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CU0JDQndCY0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCd0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JTQkNCd0JjQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQndCY0JvQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0JzQkNCg0JrQngor0JTQkNCd0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQndCY0JvQntCS0JjQiyDQnNCY0KDQmtCeINCU0KAKK9CU0JDQndCY0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQn9CV0KDQodCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0KDQkNCU0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CU0JDQndCY0JvQntCS0JjQiy3QktCV0KHQldCb0JjQndCe0JIg0JLQldCg0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQkNCK0Jgg0KTQldCg0JXQndCmCivQlNCQ0IrQmCDQk9CV0JfQkAor0JTQkNCK0Jgg0JrQkNCg0J7QiQor0JTQkNCK0Jgg0JvQkNCh0JvQngor0JTQkNCK0Jgg0JzQkNCL0JDQqAor0JTQkNCd0JrQkCDQnNCQ0KDQmtCeCivQlNCQ0J3QmtCQINCX0JvQkNCi0JAKK9CU0JDQndCa0J4g0IjQkNCd0JrQngor0JTQkNCd0JrQniDQiNCQ0KDQntCh0JvQkNCSCivQlNCQ0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQlNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JjQqNCQCivQlNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JTQkNCd0JrQo9CmINCU0KDQkNCT0JDQnQor0JTQkNCd0JrQo9CmINCc0JjQm9CY0KbQkAor0JTQkNCd0JrQo9CmINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQndCa0KPQpiDQktCe0IjQmNCh0JvQkNCSCivQlNCQ0J3QntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0J/Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JDQn9Cn0JXQktCY0Isg0IjQntCS0JDQnQor0JTQkNCf0KfQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JDQn9Cn0JXQktCY0Isg0J/QkNCS0JvQlQor0JTQkNCf0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQlNCQ0J/Qp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0JTQkNCf0KfQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CU0JDQoNCQ0Kgg0JbQldCJ0JrQngor0JTQkNCg0JDQliDQiNCj0JvQmNCI0JDQndCQCivQlNCQ0KDQkNCWINCh0KLQldCS0JDQnQor0JTQkNCg0JDQkdCQ0Iog0IjQntCW0JXQpAor0JTQkNCg0JDQkdCe0Kgg0IjQo9Cb0JrQkAor0JTQkNCg0JDQkdCe0Kgg0JvQkNCU0JjQodCb0JDQkgor0JTQkNCg0JDQkdCe0Kgg0JzQkNCg0JjQiNCQCivQlNCQ0KDQkNCR0J7QqCDQn9CV0KLQkNCgCivQlNCQ0KDQkNCR0KPQpiDQndCV0JTQldCJ0JrQngor0JTQkNCg0JDQlNCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0KDQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0KDQnNCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9CU0JDQoNCc0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JDQoNCe0IjQldCS0JjQiyDQm9CQ0JfQkNCgCivQlNCQ0KDQktCY0Kgg0JfQntCg0JjQptCQCivQlNCQ0KHQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQlNCQ0KHQntCS0JjQiyDQl9Cb0JDQotCQCivQlNCQ0KPQotCe0JLQkC3QoNCj0KjQldCS0InQkNCdINCS0JXQm9CY0J3QmtCQINCU0KAKK9CU0JDQo9Ci0J7QktCY0Isg0ILQntCg0ILQlQor0JTQkNCj0KLQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0JDQo9Ci0J7QktCY0Isg0I/QldCc0JDQmwor0JTQkNCj0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JDQo9Ci0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCj0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQkNCS0JjQlCDQkNCd0JTQoNCQ0KgKK9CU0JDQktCY0JQg0JjQm9Ce0J3QkAor0JTQkNCS0JjQlNCe0JIg0ILQo9Cg0ILQmNCd0JAKK9CU0JDQktCY0JTQntCSINCR0J7Qk9CU0JDQnQor0JTQkNCS0JjQlNCe0JIg0JHQo9CU0JjQnNCa0JAKK9CU0JDQktCY0JTQntCSINCI0JXQm9CY0KbQkAor0JTQkNCS0JjQlNCe0JIg0IjQntCS0JDQnQor0JTQkNCS0JjQlNCe0JIg0InQo9CR0J7QnNCY0KAKK9CU0JDQktCY0JTQntCSINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCSINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCSINCc0JjQm9CY0IsKK9CU0JDQktCY0JTQntCSINCc0JjQm9CY0JLQntCICivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQmtCQCivQlNCQ0JLQmNCU0J7QkiDQndCV0JPQntCS0JDQnQor0JTQkNCS0JjQlNCe0JIg0KDQkNCU0J7QodCb0JDQkgor0JTQkNCS0JjQlNCe0JIg0KDQkNCU0J7QktCQ0J0KK9CU0JDQktCY0JTQntCSINCh0JvQkNCS0JrQngor0JTQkNCS0JjQlNCe0JIg0KHQotCe0IjQkNCdCivQlNCQ0JLQmNCU0J7QkiDQotCY0KXQntCc0JjQoAor0JTQkNCS0JjQlNCe0JLQkNCmINCC0J7QoNCC0JUKK9CU0JDQktCY0JTQntCS0JDQpiDQkdCe0KjQmtCeCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JTQkNCd0JjQm9CeCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JTQo9Co0JDQndCa0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQldCb0JLQmNCg0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQk9CQ0JLQoNCQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JPQntCI0JrQngor0JTQkNCS0JjQlNCe0JLQkNCmINCJ0KPQkdCY0KbQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JLQkNCmINCg0JDQlNCY0JLQntCICivQlNCQ0JLQmNCU0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JLQkNCmINCg0JDQlNCc0JjQm9CQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0KHQotCV0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCQ0KYg0KLQntCU0J7QoAor0JTQkNCS0JjQlNCe0JLQkNCmINCS0JXQoNCY0KbQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCS0JXQodCV0JvQmNCd0JrQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQlNCQ0JLQmNCU0J7QktCY0Isg0KfQkNCh0JvQkNCSCivQlNCQ0JLQmNCU0J7QktCY0Isg0JTQkNCS0J7QoAor0JTQkNCS0JjQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQlNCj0KjQmtCeCivQlNCQ0JLQmNCU0J7QktCY0Isg0JPQntCg0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQiNCe0JLQngor0JTQkNCS0JjQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQntCoCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0KDQmtCeCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCd0JXQndCQ0JQKK9CU0JDQktCY0JTQntCS0JjQiyDQntCb0JPQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCf0JXQoNCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0J/QldCi0JDQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0KDQkNCU0JUg0JTQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCVCivQlNCQ0JLQmNCU0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQlNCQ0JLQmNCU0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQodCQ0JLQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCh0KDQldCi0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQodCi0JDQndCa0J4KK9CU0JDQktCY0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQo9Cg0J7QqAor0JTQkNCS0JjQlNCe0JLQmNCLINCS0JDQodCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JTQkNCS0JjQlNCe0JLQmNCLINCX0J7QoNCQCivQlNCQ0JLQmNCU0J7QktCh0JrQmCDQnNCQ0KDQkAor0JTQkNCS0JjQndCY0Isg0KHQotCe0IjQkNCdCivQlNCQ0JLQntCT0JjQiyDQotCV0J7QlNCe0KAKK9CU0JDQktCe0KHQmNCgINCY0JLQkNCdCivQlNCQ0JLQntCh0JjQoCDQnNCQ0JrQodCY0JwKK9CU0JDQktCe0KHQmNCgINCi0JXQntCU0J7QoAor0JTQkNCS0J7QodCY0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JTQlS3QktCg0JjQldChINCY0JLQkNCd0JrQkAor0JTQldCo0Jgg0JfQntCb0KLQkNCdCivQlNCV0KjQmNCLINCc0JDQoNCQCivQlNCV0KjQniDQltCY0JLQkNCd0JrQkAor0JTQldCW0JUg0IjQntCS0JDQnQor0JTQldCW0JUg0JrQkNCg0JvQngor0JTQldCW0JUg0JfQlNCV0J3QmtCQCivQlNCV0JbQldCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0JTQldCC0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQlNCV0ILQkNCd0KHQmtCYINCU0KPQqNCQ0J0KK9CU0JXQgtCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0JTQldCQ0Jog0JbQkNCg0JrQngor0JTQldCQ0Jog0JDQndCU0KDQkNCoCivQlNCV0JDQmiDQkNCd0JTQoNCY0IjQkNCd0JAKK9CU0JXQkNCaINCQ0J3QlNCg0JjQiNCQCivQlNCV0JDQmiDQkNCg0JDQndCa0JAKK9CU0JXQkNCaINCk0JXQoNCV0J3Qpgor0JTQldCQ0Jog0JjQm9CV0KgKK9CU0JXQkNCaINCb0JDQo9Cg0JAKK9CU0JXQkNCaINCc0JDQotCY0JvQlNCQCivQlNCV0JDQnSDQndCV0JLQldCd0JrQkAor0JTQldCQ0KDQntCh0JrQmCDQpNCV0KXQmNCcCivQlNCV0JDQoNCe0JLQmNCLINCh0JDQm9CY0JwKK9CU0JXQkdCV0InQkNCn0JrQmCDQltCY0JLQntCI0JjQnQor0JTQldCR0JXQidCQ0KfQmtCYINCC0J7QoNCC0JUKK9CU0JXQkdCV0InQkNCn0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCR0JXQidCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JHQntCh0JjQidCa0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JjQktCQ0J0KK9CU0JXQkdCV0InQkNCn0JrQmCDQmNCS0JDQnQor0JTQldCR0JXQidCQ0KfQmtCYINCa0JDQotCY0KbQkAor0JTQldCR0JXQidCQ0KfQmtCYINCJ0KPQkdCY0KbQkAor0JTQldCR0JXQidCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JzQmNCg0J7QodCb0JDQkgor0JTQldCR0JXQidCQ0KfQmtCYINCd0JDQlNCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0KHQoNCC0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JLQldCg0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQktCj0JrQntCh0JDQktCQCivQlNCV0JHQldCJ0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9CU0JXQpiDQkNCd0JjQptCQCivQlNCV0JTQkNCIINCU0JDQktCY0JQKK9CU0JXQlNCQ0Igg0JvQldCa0J4KK9CU0JXQlNCV0Jgg0JjQm9Ce0J3QkAor0JTQldCU0JXQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JTQldCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0JXQlNCY0Isg0JTQntCR0KDQntCh0JDQkgor0JTQldCU0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JXQlNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQlNCV0JTQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JTQldCU0JjQiyDQk9CQ0JLQoNCY0JvQngor0JTQldCU0JjQiyDQiNCe0JLQngor0JTQldCU0JjQiyDQmtCe0JLQmNCd0JrQkAor0JTQldCU0JjQiyDQnNCQ0KDQkAor0JTQldCU0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JXQlNCY0Isg0JzQmNCb0JjQktCe0Igg0JTQoCDQn9Cg0J7QpAor0JTQldCU0JjQiyDQnNCY0JvQngor0JTQldCU0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQldCU0JjQiyDQndCV0JzQkNCK0JAKK9CU0JXQlNCY0Isg0KDQkNCU0JjQptCQCivQlNCV0JTQmNCLINCh0JvQkNCS0JrQkAor0JTQldCU0JjQiyDQodCi0JXQktCQ0J0KK9CU0JXQlNCY0Ist0KLQkNCh0JjQiyDQnNCY0KDQkAor0JTQldCU0JjQnSDQlNCV0IjQkNCdCivQlNCV0JTQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQldCU0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JXQlNCY0J0g0JLQkNCh0JjQm9CY0IjQlQor0JTQldCU0JjQndCh0JrQmCDQotCY0JHQntCgCivQlNCV0JTQntCS0JjQiyDQnNCY0KjQngor0JTQldCk0KDQkNCd0JPQldCf0JDQnSDQpNCg0JDQndCh0J7QkAor0JTQldCT0JAg0JDQktCg0JDQnAor0JTQldCI0JDQndCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CU0JXQiNCQ0J3QntCh0JrQmCDQnNCY0JvQkNCdCivQlNCV0IjQkNCd0J7QkiDQkdCV0KDQmNCh0JvQkNCSCivQlNCV0IjQkNCd0J7QkiDQlNCQ0J3QmNCb0J4KK9CU0JXQiNCQ0J3QntCSINCI0JXQm9CV0J3QkAor0JTQldCI0JDQndCe0JIg0JzQmNCi0JAKK9CU0JXQiNCQ0J3QntCSINCh0JjQnNCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JTQldCI0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CU0JXQiNCQ0J3QntCS0JjQiyDQltCY0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQlNCV0IjQkNCd0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JTQldCI0JDQndCe0JLQmNCLINCC0KPQoNCY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQldCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCg0JDQlNCQCivQlNCV0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JTQldCI0JDQndCe0JLQodCa0Jgg0JzQm9CQ0JTQldCdCivQlNCV0IjQkNCd0J7QktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQlNCV0IjQkNCd0J7QktCh0JrQmCDQktCV0KHQldCb0JjQnQor0JTQldCa0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQlNCV0JrQkNCd0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CU0JXQmtCQ0J3QmNCLINCc0JjQm9Ce0KgKK9CU0JXQmtCQ0J3QmNCLINCc0JjQm9Ce0KgKK9CU0JXQmtCQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JXQmtCQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JXQmtCQ0Iog0JDQndCi0JDQmwor0JTQldCa0JDQndCh0JrQmCDQlNCY0J3QkAor0JTQldCa0JDQndCh0JrQmCDQn9CQ0JLQm9CVCivQlNCV0JrQmNCLINCU0JDQndCVCivQlNCV0JvQkNCnINCk0KDQkNCd0KbQmNCo0JrQkAor0JTQldCb0JXQotCY0Isg0JPQntCg0JTQkNCd0JAKK9CU0JXQm9CY0Isg0ILQntCg0ILQlQor0JTQldCb0JjQiyDQkdCY0InQkNCd0JAKK9CU0JXQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CU0JXQm9CY0Isg0JHQntCT0JTQkNCdCivQlNCV0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQlNCV0JvQmNCLINCU0JXQodCY0JzQmNCgCivQlNCV0JvQmNCLINCU0KDQkNCT0JjQptCQCivQlNCV0JvQmNCLINCU0KDQkNCT0JjQptCQCivQlNCV0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JXQm9CY0Ist0JjQkdCj0JrQmNCLINCV0KHQkNCUCivQlNCV0JvQmNCLINCY0JvQmNCI0JAKK9CU0JXQm9CY0Isg0IjQkNCK0JAKK9CU0JXQm9CY0Isg0IjQntCS0JDQnQor0JTQldCb0JjQiyDQnNCQ0KDQkAor0JTQldCb0JjQiyDQnNCY0IvQniDQlNCgCivQlNCV0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQlNCV0JvQmNCLINCc0JjQm9CQ0J3QkAor0JTQldCb0JjQiyDQnNCY0JvQkNCdCivQlNCV0JvQmNCLINCc0JjQm9CY0KbQkAor0JTQldCb0JjQiyDQnNCY0JvQmtCQCivQlNCV0JvQmNCLINCc0JjQm9Ce0KgKK9CU0JXQm9CY0Isg0JzQmNCb0J7QnNCY0KAKK9CU0JXQm9CY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JTQldCb0JjQiyDQnNCj0KHQotCQ0KTQkAor0JTQldCb0JjQiyDQn9CQ0KjQmtCeCivQlNCV0JvQmNCLINCf0JXQotCQ0KAKK9CU0JXQm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0JXQm9CY0Isg0KDQkNCU0J7QiNCa0JAg0JTQoAor0JTQldCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0JTQldCb0JjQiyDQoNCQ0JTQntCh0JDQkgor0JTQldCb0JjQiy3QodCb0JDQktCa0J7QktCY0Isg0JLQldCg0JAKK9CU0JXQm9CY0Isg0KHQoNCV0KLQldCdCivQlNCV0JvQmNCLINCh0KLQntCI0JDQnQor0JTQldCb0JjQiyDQodCS0JXQotCe0JfQkNCgCivQlNCV0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JXQm9CY0Isg0JLQkNCh0JAKK9CU0JXQm9CY0Isg0JLQldCh0JXQm9Ca0J4KK9CU0JXQm9CY0Isg0JLQldCh0J3QkAor0JTQldCb0JjQiyDQktCb0JDQlNCeCivQlNCV0JvQmNCLINCS0JvQkNCU0J4KK9CU0JXQm9CY0ILQntCg0ILQldCS0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0JTQldCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CU0JXQm9CY0JHQkNCo0JjQiyDQidCj0JHQmNCo0JAKK9CU0JXQm9CY0JHQkNCo0JjQiyDQidCj0JHQmNCm0JAKK9CU0JXQm9CY0JHQkNCo0JjQiyDQnNCQ0KDQmNCm0JAKK9CU0JXQm9CY0JHQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JTQldCb0JjQkdCQ0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQm9CY0JHQkNCo0JjQiyDQodCQ0JLQngor0JTQldCb0JjQkdCQ0KjQmNCLINCh0J7QpNCY0IjQkAor0JTQldCb0JjQkdCQ0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JXQm9CY0JHQm9CQ0IvQkNCd0JjQnSDQiNCe0JLQkNCdCivQlNCV0JvQmtCe0JLQmNCLINCI0J7QktCY0KbQkAor0JTQldCb0J7QmNCaINCU0KDQkNCT0KPQotCY0J0KK9CU0JXQm9Ce0J3Qk9CQINCh0KLQkNCd0JrQngor0JTQldCb0J7QkiDQntCg0JTQkNCd0KfQngor0JTQldCc0KfQldCo0JXQnSDQktCQ0KHQmNCb0JjQiNCVCivQlNCV0JzQqNCQ0KAg0JPQntCg0JTQkNCd0JAKK9CU0JXQnNCo0JDQoC3QktCV0JPQldCgINCc0JDQoNCY0IjQkAor0JTQldCc0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQlNCV0JzQkNCdINCI0JDQndCa0J4KK9CU0JXQnNCQ0J0g0KDQkNCh0KLQmNCh0JvQkNCSCivQlNCV0JzQkdCY0KYg0KHQnNCY0InQkNCd0JAKK9CU0JXQnNCVINCV0JzQkAor0JTQldCc0JUg0KTQoNCQ0J3QptCY0KjQmtCQCivQlNCV0JzQlSDQmNCg0JXQndCQCivQlNCV0JzQlSDQmtCb0JDQoNCQCivQlNCV0JzQldCo0Jgg0JDQoNCf0JDQlAor0JTQldCc0JXQm9CY0KEg0InQo9CR0JjQptCQCivQlNCV0JzQldCd0JTQmCDQkdCV0JvQkAor0JTQldCc0JXQndCU0Jgg0JTQntCg0J7QotCV0JAKK9CU0JXQnNCV0KAg0JHQldCb0JAKK9CU0JXQnNCV0KAg0KTQoNCQ0J3Qpgor0JTQldCc0JXQotCV0KAg0KTQldCg0JXQndCmCivQlNCV0JzQldCi0JXQoCDQpNCg0JDQitCQCivQlNCV0JzQldCi0JXQoCDQodCi0JXQktCQ0J0KK9CU0JXQnNCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CU0JXQnNCI0JXQnSDQkdCe0KDQmNCh0JvQkNCSCivQlNCV0JzQmtCeLdCg0JjQpdCi0JXQoCDQiNCe0KHQmNCfCivQlNCV0JzQntCS0KHQmtCYINCh0JXQktCU0JjQiNCQCivQlNCV0JzQo9CiINCg0J7Ql9CQ0JvQmNCI0JAKK9CU0JXQndCn0JjQmiDQktCb0JDQlNCY0KHQm9CQ0JIKK9CU0JXQndCU0JAg0JTQoNCQ0JPQkNCdCivQlNCV0J3QlNCQINCc0JjQm9CY0JLQntCICivQlNCV0J3QlNCY0Isg0KHQoNCV0KLQmNCc0JjQoAor0JTQldCd0JXQqNCYINCS0JjQm9CY0JwKK9CU0JXQndCT0J7QoNCY0KbQmNCI0JAg0KHQotCI0JXQn9CQ0J0KK9CU0JXQndCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JXQndCY0Isg0JbQmNCS0J7QotCQCivQlNCV0J3QmNCLINCJ0KPQkdCY0KjQkAor0JTQldCd0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CU0JXQndCY0Isg0KDQkNCU0JjQptCQCivQlNCV0J3QmNCLINCh0JjQndCY0KjQkAor0JTQldCd0JjQiyDQl9Cj0JfQkNCd0JAKK9CU0JXQndCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CU0JXQndCa0J7QktCh0JrQmCDQiNCQ0J3QlQor0JTQldCf0KfQldCK0KHQmtCYINCh0KLQldCk0JDQnQor0JTQldCgINCk0KDQkNCK0JAKK9CU0JXQoCDQiNCe0JbQldCkCivQlNCV0KAg0JvQkNCI0J7QqAor0JTQldCgINCh0KLQldCS0JDQnQor0JTQldCg0JDQiNCY0Isg0KHQotCe0IjQkAor0JTQldCg0JHQkNCa0J7QkiDQnNCQ0KDQmtCeCivQlNCV0KDQkdCe0JPQntCh0JjQiNCQ0J0g0JHQoNCQ0J3QmtCeCivQlNCV0KDQlNCY0Isg0KDQo9CU0J7Qm9CkCivQlNCV0KDQldClINCh0JjQnNCV0J7QnQor0JTQldCg0JXQotCQINCc0JjQm9CQ0J0KK9CU0JXQoNCV0KLQkCDQn9CV0KLQkNCgCivQlNCV0KDQldCi0JAg0KHQktCV0KLQntCX0JDQoAor0JTQldCg0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQldCg0JjQmtCg0JDQktCQINCc0JjQptCQCivQlNCV0KDQnNCV0J3QgtCY0IjQldCS0KHQmtCYINCU0JjQnNCY0KLQkNCgCivQlNCV0KDQntCK0JjQiyDQotCe0JTQntCgCivQlNCV0KDQo9Co0JXQmiDQnNCY0InQldCd0JrQngor0JTQldCg0JLQmNCo0JXQktCY0Isg0IjQo9Ch0KPQpAor0JTQldCg0JLQmNCo0JXQktCY0Isg0J3QldCP0JjQkQor0JTQldCg0JLQmNCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCV0KDQktCY0KjQmCDQnNCY0KHQmNCdCivQlNCV0KDQktCY0KjQmCDQoNCQ0JzQkNCU0JDQnQor0JTQldCg0JLQmNCo0Jgg0KDQo9Co0JjQogor0JTQldCg0JLQmNCLINCo0JXQpNCa0JAKK9CU0JXQodCd0JjQptCQINCC0J7QoNCC0JUKK9CU0JXQodCd0JjQptCQINCC0KPQoNCeINCc0KAKK9CU0JXQodCd0JjQptCQINCR0J7Qk9CU0JDQnQor0JTQldCh0J3QmNCm0JAg0JHQoNCQ0J3QmtCeCivQlNCV0KHQndCY0KbQkCDQiNCQ0J3QmtCeCivQlNCV0KHQndCY0KbQkCDQm9Cj0JrQkAor0JTQldCh0J3QmNCm0JAg0J3QmNCa0J7Qm9CQCivQlNCV0KHQndCY0KbQkCDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CU0JXQodCd0JjQptCQINCg0JDQlNCe0JzQmNCgCivQlNCV0KHQndCY0KbQkCDQoNCV0InQkAor0JTQldCh0J3QmNCm0JAg0KHQnNCY0InQmtCQCivQlNCV0KHQndCY0KbQkCDQodCi0JDQndCQCivQlNCV0KHQn9CV0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0KHQn9CYINCI0J7QktCQCivQlNCV0KHQn9CYINCS0JXQidCa0J4KK9CU0JXQodCf0JjQiyDQm9CQ0JfQkNCgCivQlNCV0KHQn9CY0Isg0JzQkNCg0JrQngor0JTQldCh0J/QmNCLINCc0JjQoNCI0JDQndCQCivQlNCV0KHQn9CY0Isg0KHQoNCV0KLQldCdCivQlNCV0KHQn9CY0Isg0JfQntCg0JDQnQor0JTQldCh0J/QntCiINCU0KPQqNCQ0J0KK9CU0JXQodCf0J7QoiDQnNCY0JvQkNCdCivQlNCV0KHQn9Ce0KIg0JzQmNCb0JjQptCQCivQlNCV0KHQn9Ce0KIg0JzQmNCg0IjQkNCd0JAKK9CU0JXQodCf0J7QoiDQndCQ0JTQkAor0JTQldCh0J/QntCiINCd0JXQndCQ0JQKK9CU0JXQodCf0J7QoiDQodCb0J7QkdCe0JTQkNCdCivQlNCV0KHQn9Ce0KLQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0KHQn9Ce0KLQntCSINCU0J7QkdCg0JjQm9CQCivQlNCV0KHQn9Ce0KLQntCSINCV0JLQlNCe0JrQmNCI0JAKK9CU0JXQodCf0J7QotCe0JIg0JjQm9CY0IjQkAor0JTQldCh0J/QntCi0J7QkiDQiNCe0KbQkAor0JTQldCh0J/QntCi0J7QkiDQidCj0JHQmNCd0JrQkAor0JTQldCh0J/QntCi0J7QkiDQnNCY0JvQkNCdCivQlNCV0KHQn9Ce0KLQntCSINCc0JjQm9Ce0JLQkNCdCivQlNCV0KHQn9Ce0KLQntCSINCg0JDQlNCc0JjQm9CQCivQlNCV0KHQn9Ce0KLQntCSINCg0KPQltCY0KbQkAor0JTQldCh0J/QntCi0J7QkiDQktCY0JvQnNCQCivQlNCV0KHQn9Ce0KLQntCSINCS0JjQotCe0JzQmNCg0JrQkAor0JTQldCh0J/QntCi0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCSINCX0J7QoNCQ0J0KK9CU0JXQodCf0J7QotCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JTQldCh0J/QntCi0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JTQldCh0J/QntCi0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9CU0JXQodCf0J7QotCe0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CU0JXQodCf0J7QotCe0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CU0JXQodCf0J7QotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CU0JXQodCf0J7QotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CU0JXQodCf0J7QotCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0KLQmtCeCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQodCY0JzQmtCQCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQodCi0JDQndCa0J4KK9CU0JXQodCf0J7QotCe0JLQmNCLINCS0JDQodCeCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CU0JXQotCQ0KDQmCDQnNCQ0KDQmNCI0JAKK9CU0JXQotCV0JvQmNCdINCC0KPQoNCQCivQlNCV0KLQldCb0JjQnSDQiNCe0KHQmNCfCivQlNCV0KLQldCb0JjQnSDQndCQ0JTQkAor0JTQldCj0KDQkCDQlNCj0KjQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQlNCV0KPQoNCQINCg0JDQiNCa0J4KK9CU0JXQo9Cg0JAg0JLQldCg0JAKK9CU0JXQo9Cg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQldCS0JDQmCDQqNCQ0J3QlNCe0KAKK9CU0JXQktCQ0Jgg0JjQnNCg0JUKK9CU0JXQktCQ0Jgg0JvQkNCI0J7QqAor0JTQldCS0JDQmCDQodCQ0IrQkAor0JTQldCS0JDQmCDQl9Ce0KDQmNCm0JAKK9CU0JXQktCQ0IjQkCDQndCQ0JTQkAor0JTQldCS0JDQiNCQINCe0JzQldCgINCU0KAKK9CU0JXQktCQ0JvQlCDQldCi0JXQm9Ca0JAKK9CU0JXQktCQ0JvQlCDQmNCS0JDQnQor0JTQldCS0JDQm9CUINCI0J7QpdCQ0J0KK9CU0JXQktCV0KfQldCg0Jgg0JrQoNCY0KHQotCY0J3QkAor0JTQldCS0JXQp9CV0KDQodCa0Jgg0JDQktCg0JDQnAor0JTQldCS0JXQp9CV0KDQodCa0Jgg0JTQkNCd0JjQptCQCivQlNCV0JLQldCn0JXQoNCh0JrQmCDQktCQ0KHQmNCb0JjQiNCVINCU0KAKK9CU0JXQktCV0JTQkNCdINCC0J7QoNCC0JUKK9CU0JXQktCV0JTQkNCdINCR0J7Qk9CU0JDQnQor0JTQldCS0JXQlNCQ0J0g0JTQoNCQ0JPQntCI0JUKK9CU0JXQktCV0JTQkNCdINCc0JDQoNCQCivQlNCV0JLQldCU0JDQnSDQnNCY0JvQntCS0JDQnQor0JTQldCS0JXQlNCQ0J0g0JzQmNCg0JrQngor0JTQldCS0JXQotCQ0Jog0JfQntCg0JAKK9CU0JXQktCY0Ist0KfQntCR0JDQndCa0KHQmCDQnNCY0InQldCd0JrQkAor0JTQldCS0JjQiyDQltCY0JLQkNCdCivQlNCV0JLQmNCLINCC0J7QmtCQCivQlNCV0JLQmNCLINCC0J7QoNCC0JUKK9CU0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JXQktCY0Isg0JDQndCa0JjQptCQCivQlNCV0JLQmNCLINCR0JjQidCQ0J3QkAor0JTQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JTQldCS0JjQiyDQkdCg0JDQndCa0JAKK9CU0JXQktCY0Isg0KbQktCY0IjQldCi0JAKK9CU0JXQktCY0Isg0JTQkNCd0JjQptCQCivQlNCV0JLQmNCLINCU0JDQndCY0JvQmtCQCivQlNCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CU0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JTQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQlNCV0JLQmNCLINCU0KDQkNCT0J4KK9CU0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQldCS0JjQiyDQldCS0JjQptCQCivQlNCV0JLQmNCLINCT0J7QoNCQ0J0KK9CU0JXQktCY0Isg0JPQoNCe0JfQlNCQCivQlNCV0JLQmNCLINCY0JPQitCQ0KIKK9CU0JXQktCY0Isg0JjQm9CY0IjQkAor0JTQldCS0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JTQldCS0JjQiyDQiNCe0JLQkNCd0JrQkCDQlNCgCivQlNCV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JXQktCY0Isg0JrQkNCi0JjQptCQCivQlNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JXQktCY0Isg0JzQmNCb0JDQnQor0JTQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JTQldCS0JjQiyDQnNCY0JvQldCi0JAKK9CU0JXQktCY0Isg0JzQmNCb0J7QqAor0JTQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQldCS0JjQiyDQnNCY0KDQkAor0JTQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CU0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JXQktCY0Isg0J3QldCd0JDQlAor0JTQldCS0JjQiyDQndCe0JLQmtCQCivQlNCV0JLQmNCLINCf0JXQotCQ0KAKK9CU0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JTQldCS0JjQiyDQodCY0JzQkAor0JTQldCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JTQldCS0JjQiyDQotCe0JzQkAor0JTQldCS0JjQiyDQktCV0JvQmNCd0JrQkAor0JTQldCS0JjQiyDQktCb0JDQlNCQCivQlNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQlNCV0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQlNCV0JLQoNCK0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCV0JLQoNCK0JAg0JTQoNCQ0JPQmNCm0JAKK9CU0JXQktCg0IrQkCDQidCj0JHQmNCm0JAKK9CU0JXQktCg0IrQkC3QnNCY0KXQkNCI0JvQntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JXQktCg0IrQkCDQnNCY0J7QlNCg0JDQkwor0JTQldCS0KDQitCQINCh0J/QkNCh0J7QiNCVCivQlNCV0JLQo9Co0JjQiyDQnNCY0JvQkNCdCivQlNCY0KbQmtCe0JIg0ILQntCg0ILQlQor0JTQmNCm0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQlNCY0KbQmtCe0JIg0JTQoNCQ0JPQkNCdCivQlNCY0KbQmtCe0JIg0JTQoNCQ0JPQkNCdCivQlNCY0KbQmtCe0JIg0JTQo9Co0JrQngor0JTQmNCm0JrQntCSINCY0JLQkNCdCivQlNCY0KbQmtCe0JIg0JrQntCh0KLQkAor0JTQmNCm0JrQntCSINCc0JjQoNCI0JDQndCQCivQlNCY0KbQmtCe0JIg0J3QmNCa0J7Qm9CQCivQlNCY0KbQmtCe0JIg0KHQotCV0JLQkNCdCivQlNCY0KbQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9CU0JjQptCa0J7QkiDQktCV0KHQldCb0JjQnQor0JTQmNCm0JrQntCSINCX0J7QoNCa0JAKK9CU0JjQptCc0JDQnSDQl9CU0JXQndCa0JAKK9CU0JjQlNCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JTQmNCU0JDQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQlNCY0IjQkNCa0J7QktCY0Isg0J/QkNCS0JAKK9CU0JjQiNCQ0JzQkNCi0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0JjQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JrQmNCLINCR0KDQkNCd0JrQngor0JTQmNCa0JjQiyDQlNCj0KjQkNCdCivQlNCY0JrQmNCLINCT0J7QoNCQ0J0KK9CU0JjQmtCY0Isg0IjQntCS0JDQndCa0JAKK9CU0JjQmtCY0Isg0IjQntCS0JDQnQor0JTQmNCa0JjQiyDQnNCY0JvQkNCdCivQlNCY0JrQmNCLINCg0JDQotCa0J4KK9CU0JjQmtCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQlNCY0JrQmNCLINCh0KLQldCS0JDQnQor0JTQmNCa0JjQiyDQktCV0JvQmNCd0JrQkAor0JTQmNCa0JjQiyDQl9CQ0JPQntCg0JrQkAor0JTQmNCa0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JrQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JjQmtCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0JjQmtCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JjQmtCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JjQmtCb0JjQiyDQlNCj0KjQkNCdCivQlNCY0JrQm9CY0Isg0JTQo9Co0JDQnQor0JTQmNCa0JvQmNCLINCI0JDQodCc0JjQndCQCivQlNCY0JrQm9CY0Isg0IjQntCS0JDQnQor0JTQmNCa0JvQmNCLINCI0KPQlNCY0KIKK9CU0JjQmtCb0JjQiyDQnNCQ0KDQotCQCivQlNCY0JrQm9CY0Isg0JzQmNCb0JDQnQor0JTQmNCa0JvQmNCLINCc0JjQm9CV0KLQkAor0JTQmNCa0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JjQmtCb0JjQiyDQn9CV0KLQkNCgCivQlNCY0JrQm9CY0Isg0KHQotCQ0J3QmtCeCivQlNCY0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CU0JjQm9CR0JXQoNCe0JLQmNCLINCQ0J3QotCeCivQlNCY0JzQp9Ce0JLQodCa0Jgg0KLQoNCQ0IjQp9CVCivQlNCY0JzQqNCY0Isg0JDQndCa0JAKK9CU0JjQnNCQINCR0J7QodCQCivQlNCY0JzQkNCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JjQnNCQ0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCY0JzQkNCd0JjQiyDQkNCd0JrQkAor0JTQmNCc0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JzQldCh0JrQmCDQmNCb0JjQiNCQCivQlNCY0JzQldCh0JrQmCDQnNCV0KLQntCU0JjQiNCVCivQlNCY0JzQmNCLINCW0JDQoNCa0J4KK9CU0JjQnNCY0Isg0ILQntCg0ILQlQor0JTQmNCc0JjQiyDQkNCa0KHQldCd0KLQmNCI0JUKK9CU0JjQnNCY0Isg0JDQmtCh0JXQndCi0JjQiNCVCivQlNCY0JzQmNCLINCQ0J3QgtCV0JvQmtCQCivQlNCY0JzQmNCLINCR0J7Qk9CU0JDQnQor0JTQmNCc0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQnNCY0Isg0JTQkNCd0JjQptCQCivQlNCY0JzQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQmNCc0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9CU0JjQnNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JTQmNCc0JjQiyDQlNCg0JDQk9CeCivQlNCY0JzQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JTQmNCc0JjQiyDQlNCj0KjQkNCdCivQlNCY0JzQmNCLINCU0KPQqNCQ0J0KK9CU0JjQnNCY0Isg0JXQnNCY0JvQmNCI0JAKK9CU0JjQnNCY0Isg0JXQoNCW0JXQkdCV0KIKK9CU0JjQnNCY0Isg0JjQk9CK0JDQogor0JTQmNCc0JjQiyDQmNCS0JDQnQor0JTQmNCc0JjQiyDQiNCQ0J3QmtCeCivQlNCY0JzQmNCLINCa0J7QodCi0JAKK9CU0JjQnNCY0Isg0JvQkNCX0JDQoAor0JTQmNCc0JjQiyDQm9CQ0JfQkNCgCivQlNCY0JzQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCY0JzQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0Isg0JzQmNCb0JDQnQor0JTQmNCc0JjQiyDQnNCY0JvQldCS0JAKK9CU0JjQnNCY0Isg0JzQmNCb0JjQptCQCivQlNCY0JzQmNCLINCc0JjQm9Ce0KgKK9CU0JjQnNCY0Isg0JzQmNCb0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0JTQmNCc0JjQiyDQnNCY0KLQkAor0JTQmNCc0JjQiyDQndCQ0JTQkAor0JTQmNCc0JjQiyDQndCQ0JTQkAor0JTQmNCc0JjQiyDQndCV0JHQntCI0KjQkAor0JTQmNCc0JjQiyDQndCY0JrQntCb0JAKK9CU0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JzQmNCLINCd0JjQmtCe0JvQkAor0JTQmNCc0JjQiyDQndCY0JrQntCb0JAKK9CU0JjQnNCY0Isg0J7Qm9CT0JAKK9CU0JjQnNCY0Isg0J7Ql9Cg0JXQnQor0JTQmNCc0JjQiyDQn9CV0KLQkNCgCivQlNCY0JzQmNCLINCh0KLQkNCd0JrQngor0JTQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQlNCY0JzQmNCLINCh0KLQldCS0JDQnQor0JTQmNCc0JjQiyDQodCi0JXQktCQCivQlNCY0JzQmNCLINCS0JDQodCQCivQlNCY0JzQmNCLINCS0JXQoNCY0KbQkAor0JTQmNCc0JjQiyDQktCY0KLQntCc0JjQoAor0JTQmNCc0JjQiyDQktCY0KLQntCc0JjQoAor0JTQmNCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCY0JzQmNCi0KDQkNCo0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCLINCW0JjQktCe0KDQkNCUCivQlNCY0JzQmNCi0KDQmNCLINCR0J7Qk9Ce0InQo9CRCivQlNCY0JzQmNCi0KDQmNCLINCR0KDQkNCd0JrQngor0JTQmNCc0JjQotCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JjQnNCY0KLQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0JjQnNCY0KLQoNCY0Isg0JzQmNCb0JXQktCQCivQlNCY0JzQmNCi0KDQmNCLINCd0J7QktCQ0JoKK9CU0JjQnNCY0KLQoNCY0Isg0J/QldCg0J4KK9CU0JjQnNCY0KLQoNCY0Isg0KDQkNCi0JrQngor0JTQmNCc0JjQotCg0JjQiyDQktCb0JDQlNCQ0J0KK9CU0JjQnNCY0KLQoNCY0Isg0JfQntCg0JDQnQor0JTQmNCc0JjQotCg0JjQkNCU0JjQoSDQn9CQ0JLQm9Ce0KEKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0ILQntCg0ILQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQgtCj0KDQgtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQkNCg0KHQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCQ0KDQodCV0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiy3QkdCV0KHQldCg0JzQldCK0Jgg0JrQkNCi0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JHQoNCX0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0J7QkdCg0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JXQoNCW0JXQkdCV0KIKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQldCi0JXQm9CQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JXQktCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0JXQm9CY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAg0JTQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQkNCg0JPQmNCi0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQkNCdINCc0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9CY0JLQntCICivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JrQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Ce0IjQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0KDQp9CVCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQndCQ0JTQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCd0JXQndCQ0JQKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0JDQiNCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KDQkNCi0JrQngor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0JDQqNCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQkNCS0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQoNCC0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0JDQndCa0J4KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0JDQndCe0IjQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCS0JXQoNCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQktCj0IjQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JfQm9CQ0KLQmNCR0J7QoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JfQntCg0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JfQntCg0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCh0JrQmCDQnNCY0KXQkNCI0JvQngor0JTQmNCc0JjQotCg0J7QkiDQltCY0JLQntCI0JjQnQor0JTQmNCc0JjQotCg0J7QkiDQgtCe0JrQkAor0JTQmNCc0JjQotCg0J7QkiDQgtCe0KDQgtCVCivQlNCY0JzQmNCi0KDQntCSINCR0J7QqNCa0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JHQntCg0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JzQmNCi0KDQntCSINCR0KDQkNCd0JrQngor0JTQmNCc0JjQotCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JjQnNCY0KLQoNCe0JIg0JTQo9Co0JDQnQor0JTQmNCc0JjQotCg0J7QkiDQlNCj0KjQkNCdCivQlNCY0JzQmNCi0KDQntCSINCV0KTQotCY0JwKK9CU0JjQnNCY0KLQoNCe0JIg0IjQntCm0JAKK9CU0JjQnNCY0KLQoNCe0JIg0J/QldCi0JDQoAor0JTQmNCc0JjQotCg0J7QkiDQoNCQ0JTQmNCh0JvQkNCSCivQlNCY0JzQmNCi0KDQntCSINCh0JvQkNCS0JrQngor0JTQmNCc0JjQotCg0J7QkiDQodCe0KHQkAor0JTQmNCc0JjQotCg0J7QkiDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0KLQoNCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQlNCY0JzQmNCi0KDQntCSINCj0KDQntCoCivQlNCY0JzQmNCi0KDQntCSINCS0JXQm9CY0KfQmtCeCivQlNCY0JzQmNCi0KDQntCSINCX0JvQkNCi0JAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0JjQm9Ce0J3QkAor0JTQmNCc0JjQotCg0J7QktCh0JrQmCDQidCj0JHQntCc0JjQoAor0JTQmNCc0JjQotCg0J7QktCh0JrQmCDQidCj0JHQntCc0JjQoAor0JTQmNCc0JjQotCg0J7QktCh0JrQmCDQn9CQ0JLQm9CVCivQlNCY0JzQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0JjQnNCa0J7QktCh0JrQmCDQk9Ce0KDQkNCdCivQlNCY0JzQmtCe0JLQodCa0Jgg0InQo9CR0JjQqNCQCivQlNCY0JzQntCh0JrQmCDQndCY0JrQntCb0JAKK9CU0JjQnNCe0JIg0JTQmNCc0JjQotCQ0KAKK9CU0JjQnNCe0JIg0KLQntCU0J7QoAor0JTQmNCc0J7QktCQINCa0JDQotCY0KbQkAor0JTQmNCc0J7QktCY0Isg0KHQntCk0JjQiNCQCivQlNCY0JzQntCS0KHQmtCYINCC0JXQoNCeCivQlNCY0JzQntCS0KHQmtCYINCQ0J3QlNCg0JjQiNCQCivQlNCY0JzQntCS0KHQmtCYINCJ0KPQkdCY0KbQkAor0JTQmNCc0J7QktCh0JrQmCDQnNCQ0KDQmNCd0JAKK9CU0JjQnNCe0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQlNCY0JzQntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JTQmNCd0KfQmNCLINCa0JDQotCY0KbQkAor0JTQmNCd0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCY0J3Qp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQmNCd0KfQmNCLINCh0KDQldCi0JXQndCa0JAKK9CU0JjQndCn0JjQmiDQnNCQ0KDQmNCI0JAKK9CU0JjQndCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JjQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9CU0JjQndCY0Isg0JHQntCh0JAKK9CU0JjQndCY0Isg0IjQntCo0JrQkAor0JTQmNCd0JjQiy3QmtCd0JXQltCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQlNCY0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCY0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQlNCY0J3QmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CU0JjQndCY0Isg0JLQm9CQ0JTQldCi0JAKK9CU0JjQndCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JTQmNCK0JDQqNCa0Jgg0JbQkNCg0JrQngor0JTQmNCK0JDQqNCa0Jgg0JjQoNCY0J3QkAor0JTQmNCK0JDQqNCa0Jgg0JrQodCV0J3QmNCI0JAKK9CU0JjQitCQ0KjQmtCYINCb0JXQn9CQCivQlNCY0IrQkNCo0JrQmCDQndCV0KHQotCe0KAKK9CU0JjQitCQ0KjQmtCYINCh0KLQkNCd0JjQnNCY0KAKK9CU0JjQitCQ0KjQmtCYINCh0KLQkNCd0JrQkAor0JTQmNCK0JDQqNCa0Jgg0KHQotCV0JLQkNCdCivQlNCY0IrQkNCo0JrQmCDQotCg0JjQktCQCivQlNCY0IrQkNCo0JrQmCDQl9CU0KDQkNCS0JrQngor0JTQmNCK0JXQqCDQiNCe0KHQmNCfCivQlNCY0J3Qo9Cb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JTQmNCe0KjQmCDQiNCe0KHQmNCfCivQlNCY0KDQndCV0KAg0JDQoNCQ0J3QmtCQCivQlNCY0KHQmNCLINCJ0KPQkdCY0KjQkAor0JTQmNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCY0KLQoNCY0KUg0JDQndCQCivQlNCY0KLQoNCY0KUg0KDQntCR0JXQoNCiCivQlNCY0KLQoNCY0KUg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCS0JjQiyDQnNCY0JvQldCd0JrQngor0JTQmNCS0JjQiNCQ0KfQmtCYINCU0KDQkNCT0JDQnQor0JTQmNCS0JjQiNCQ0KfQmtCYINCU0KDQkNCT0JDQnQor0JTQmNCS0JjQm9CUINCC0J7QoNCC0JUKK9CU0JjQktCY0JvQlCDQkNCd0JTQoNCY0IjQkAor0JTQmNCS0JjQm9CUINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCY0JLQmNCb0JQg0KDQkNCU0J7QodCb0JDQkgor0JTQmNCS0IjQkNCaINCU0KPQqNCQ0J0KK9CU0JjQktCI0JDQmiDQlNCj0KjQkNCdCivQlNCY0JLQiNCQ0Jog0JTQo9Co0JDQnQor0JTQmNCS0IjQkNCaINCc0JDQoNCY0J3QmtCeCivQlNCY0JLQiNCQ0Jog0JzQmNCb0JDQnQor0JTQmNCS0IjQkNCaINCc0JjQm9CQ0J0KK9CU0JjQktCI0JDQmiDQnNCY0JvQkNCdCivQlNCY0JLQiNCQ0Jog0KHQkNCS0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JTQmNCS0IjQkNCa0J7QktCY0Isg0JPQkNCS0KDQkAor0JTQmNCS0IjQkNCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JTQmNCS0IjQkNCa0J7QktCY0Ist0KDQkNCU0JjQp9CV0JLQkCDQlNCe0KDQmNCd0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQmNCS0IjQkNCa0J7QktCY0Isg0KLQntCU0J7QoAor0JTQmNCS0IjQkNCa0J7QktCY0Isg0JLQm9CQ0JTQkAor0JTQmNCS0InQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JLQidCQ0Jog0JDQndCT0JXQm9CY0J3QkAor0JTQmNCS0InQkNCaINCR0J7QqNCa0J4KK9CU0JjQktCJ0JDQmiDQlNCV0KHQmNCc0JjQoAor0JTQmNCS0InQkNCaINCU0J7QkdCg0JjQktCe0IgKK9CU0JjQktCJ0JDQmiDQlNCg0JDQk9CeCivQlNCY0JLQidCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0JTQmNCS0InQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JjQktCJ0JDQmiDQoNCQ0KLQmtCeCivQlNCY0JLQidCQ0Jog0JfQlNCg0JDQktCa0J4KK9CU0JjQktCJ0JDQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JjQktCJ0JDQmtCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JTQmNCS0InQkNCdINCd0JXQndCQ0JQKK9CU0JjQktCd0JjQiyDQltCY0JLQkNCdCivQlNCY0JLQndCY0Isg0ILQntCg0ILQlQor0JTQmNCS0J3QmNCLINCI0JXQm9Ca0JAKK9CU0JjQktCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQmNCS0J3QmNCLINCf0JDQiNCQCivQlNCY0JLQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQmNCS0J3QmNCLINCh0J7QitCQCivQlNCY0JLQndCY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQmNCS0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0JjQl9CU0JDQoCDQkNCd0ILQkAor0JTQmNCX0JTQkNCgINCQ0J3QmtCY0KbQkAor0JTQmNCX0JTQkNCgINCY0JLQmNCm0JAKK9CU0JjQl9CU0JDQoCDQiNCe0KHQmNCfCivQlNCY0JfQlNCQ0KAg0IjQo9Cg0JUKK9CU0JjQl9CU0JDQoCDQiNCj0KDQngor0JTQmNCX0JTQkNCgINCc0JDQoNCY0IjQkAor0JTQmNCX0JTQkNCgINCc0JDQoNCa0J4KK9CU0JjQl9CU0JDQoCDQn9CQ0JLQngor0JTQmNCX0JTQkNCgINCh0JDQoNCQ0KTQmNCd0JAKK9CU0JjQl9CU0JDQoCDQktCb0JDQlNCeCivQlNCY0JfQlNCQ0KDQldCS0JjQiyDQoNCQ0JTQntCJ0KPQkQor0JTQm9Cj0KXQmCDQiNCe0KHQmNCfCivQlNCc0JjQotCg0JDQqNCY0J3QntCS0JjQiyDQoNCQ0JTQlQor0JTQnNCY0KLQoNCY0IjQldCSINCb0JjQlNCY0IjQkAor0JTQnNCY0KLQoNCe0JLQmNCLINCU0JDQndCY0KbQkAor0JTQnNCY0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCV0J3QmtCeINCb0JXQmtCQ0KAKK9CU0JzQmNCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JzQmNCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0J7QqNCV0JzQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQntCo0JXQnSDQltCY0JLQkNCU0JjQnQor0JTQntCo0JXQnSDQkdCY0InQkNCd0JAKK9CU0J7QqNCV0J0g0JHQoNCQ0J3QmtCeCivQlNCe0KjQldCdINCU0JXQodCQ0J3QmtCQCivQlNCe0KjQldCdINCU0KDQkNCT0JDQnQor0JTQntCo0JXQnSDQlNCj0KjQkNCdCivQlNCe0KjQldCdINCU0KPQqNCQ0J0KK9CU0J7QqNCV0J0g0JTQo9Co0JDQnQor0JTQntCo0JXQnSDQlNCj0JHQoNCQ0JLQmtCQCivQlNCe0KjQldCdINCl0KDQmNCh0KLQmNCd0JAg0JTQoAor0JTQntCo0JXQnSDQmNCb0JjQiNCQCivQlNCe0KjQldCdINCY0JLQkNCdCivQlNCe0KjQldCdINCY0JLQkNCdCivQlNCe0KjQldCdINCI0JXQm9CV0J3QkAor0JTQntCo0JXQnSDQnNCY0JvQkNCdCivQlNCe0KjQldCdINCc0JjQm9CQ0J0KK9CU0J7QqNCV0J0g0JzQmNCb0JUKK9CU0J7QqNCV0J0g0JzQmNCb0J7QqAor0JTQntCo0JXQnSDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0KjQldCdINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7QqNCV0J0g0KDQkNCi0JrQngor0JTQntCo0JXQnSDQodCS0JXQotCb0JDQndCQCivQlNCe0KjQldCdINCS0J7QiNCY0J0KK9CU0J7QqNCV0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JTQntCo0JXQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CU0J7QqNCV0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CU0J7QqNCV0J3QntCS0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JTQntCo0JXQndCe0JLQmNCLINCS0J7QiNCY0J0KK9CU0J7QqNCY0Isg0JPQmNCX0JXQm9CQCivQlNCe0KjQm9CY0Isg0JzQmNCb0JjQptCQCivQlNCe0KjQm9CY0Isg0J3QldCd0JDQlAor0JTQntCo0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7QqNCb0J7QkiDQmtCg0KHQotCeCivQlNCe0KjQm9Ce0JIg0KHQm9CQ0JLQmNCm0JAKK9CU0J7QltCY0Isg0InQmNCJ0JDQndCQCivQlNCe0JbQmNCLINCc0JDQoNCY0KbQkAor0JTQntCW0JjQiyDQodCi0JXQktCQ0J0KK9CU0J7QltCY0Isg0KHQotCV0JLQkNCdCivQlNCe0JbQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JTQntCW0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JTQntCR0JDQnSDQnNCQ0KDQp9CV0JsKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0KfQldCU0J7QnNCY0KAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JHQntCg0JjQodCb0JDQkgor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQntCR0KDQmNCd0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQlNCj0KjQkNCd0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQlNCj0KjQkNCd0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQlNCj0KjQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCY0KDQldCd0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0IjQldCb0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQiNCj0JvQmtCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCI0KPQm9Ca0JjQptCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JDQmtCh0JjQnAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQnNCY0JvQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JjQm9CQ0J0KK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQmNCg0JrQngor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQn9CV0KLQkNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCg0JDQlNCe0JzQmNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCh0JDQktCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCh0JDQktCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYLdCh0JDQktCY0Isg0KLQmNCd0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0KLQmNCd0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQl9Ce0KDQmNCm0JAKK9CU0J7QkdCQ0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9CU0J7QkdCV0Kgg0IjQntCS0JDQnQor0JTQntCR0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JTQntCR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0J7QkdCY0Isg0J/QldCi0JDQoAor0JTQntCR0J4g0JjQm9CV0KgKK9CU0J7QkdCeINCI0J7QltCV0KQKK9CU0J7QkdCeINCI0J7QltCV0KQKK9CU0J7QkdCe0Kgg0IjQntCW0JXQpAor0JTQntCR0J7QqNCYINCo0JDQndCU0J7QoAor0JTQntCR0J7QqNCYINCC0JXQoNCCCivQlNCe0JHQntCo0Jgg0JXQoNCW0JXQkdCV0KIKK9CU0J7QkdCe0KjQmCDQiNCQ0J3QntCoCivQlNCe0JHQntCo0Jgg0JvQkNCh0JvQngor0JTQntCR0J7QqNCYINCc0JDQk9CU0JDQm9CV0J3QkAor0JTQntCR0J7QqNCYINCc0JDQoNCT0JjQotCQCivQlNCe0JHQntCo0Jgg0J/QkNCbCivQlNCe0JHQntCa0JDQmCDQnNCY0KXQkNCI0JvQngor0JTQntCR0J7QktCY0KfQldCaINCk0KDQkNCd0KYKK9CU0J7QkdCg0JAg0JjQktCQ0J0KK9CU0J7QkdCg0JDQqCDQnNCY0JvQmtCQCivQlNCe0JHQoNCQ0J0g0KHQm9CQ0JLQmtCeCivQlNCe0JHQoNCQ0J3QmNCLINCg0JDQlNCe0JLQkNCdCivQlNCe0JHQoNCQ0J3QmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CU0J7QkdCg0JUg0JHQntCW0JAKK9CU0J7QkdCg0JXQndCe0JIg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CU0J7QkdCg0JXQndCe0JIg0JPQoNCV0KLQkAor0JTQntCR0KDQldCd0J7QkiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQntCR0KDQldCd0J7QkiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQntCR0KDQldCd0J7QkiDQndCY0JrQntCb0JAKK9CU0J7QkdCg0JXQndCe0JIg0KHQkNCd0JTQoNCQCivQlNCe0JHQoNCV0J3QntCSINCS0J7QiNCY0J0KK9CU0J7QkdCg0JXQotCY0Isg0JzQkNCg0JjQptCQCivQlNCe0JHQoNCY0KfQmtCYINCU0KPQqNCQ0J0KK9CU0J7QkdCg0JjQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQlNCe0JHQoNCY0Isg0JbQmNCS0JrQngor0JTQntCR0KDQmNCLINCC0J7QoNCC0JUKK9CU0J7QkdCg0JjQiyDQkdCe0KjQmtCeCivQlNCe0JHQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCe0JHQoNCY0Isg0JXQoNCW0JXQkdCV0KIKK9CU0J7QkdCg0JjQiyDQk9Ce0IjQmtCeCivQlNCe0JHQoNCY0Isg0IjQntCS0JDQnQor0JTQntCR0KDQmNCLINCa0J7QodCi0JAKK9CU0J7QkdCg0JjQiyDQidCj0JHQmNCm0JAKK9CU0J7QkdCg0JjQiyDQnNCY0JvQkNCU0JjQnQor0JTQntCR0KDQmNCLINCc0JjQm9CQ0J0KK9CU0J7QkdCg0JjQiyDQnNCY0JvQkNCdCivQlNCe0JHQoNCY0Isg0J3QldCT0J7QodCQ0JLQkAor0JTQntCR0KDQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CU0J7QkdCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQntCR0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0J7QkdCg0JjQiyDQodCi0JXQktCQ0J0KK9CU0J7QkdCg0JjQiyDQo9CT0InQldCo0JAKK9CU0J7QkdCg0JjQiyDQktCV0KDQntCd0JjQmtCQCivQlNCe0JHQoNCY0Isg0JLQldCh0J3QkAor0JTQntCR0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQlNCe0JHQoNCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCe0JHQoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCe0JHQoNCY0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JTQntCR0KDQmNCb0J7QktCY0Isg0KDQkNCI0JrQngor0JTQntCR0KDQmNCb0J7QktCY0Isg0KDQkNCI0JrQngor0JTQntCR0KDQmNCb0J7QktCY0Isg0KHQmNCc0JAKK9CU0J7QkdCg0JjQnSDQlNCV0JbQlQor0JTQntCR0KDQmNCdINCd0JjQmtCe0JvQkAor0JTQntCR0KDQmNCdINCe0JvQk9CQCivQlNCe0JHQoNCY0J3QmNCLINCU0JDQoNCY0J3QmtCQCivQlNCe0JHQoNCY0JLQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQntCR0KDQmNCS0J7QiNCV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CU0J7QkdCg0IrQkNCmINCh0KLQntCI0JDQndCa0JAKK9CU0J7QkdCg0J7QlNCV0Jsg0KTQoNCQ0IrQngor0JTQntCR0KDQntCU0J7Qm9Ch0JrQmCDQiNCV0JvQldCd0JAKK9CU0J7QkdCg0J7QlNCe0JvQodCa0Jgg0IjQo9Cb0JrQkAor0JTQntCR0KDQntCU0J7Qm9Ch0JrQmCDQktCj0JrQmNCm0JAKK9CU0J7QkdCg0J7QmtCV0KEg0JzQmNCb0JXQndCQCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCU0KPQqNCQ0J0KK9CU0J7QkdCg0J7QnNCY0KDQntCSINCV0KPQpNCY0JzQmNCI0JAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCd0JDQlNCQCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQn9CV0KLQkNCgCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQktCY0KLQntCc0JjQoAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JLQntCI0JjQodCb0JDQkgor0JTQntCR0KDQntCc0JjQoNCe0JLQmNCLINCf0JDQktCb0JUKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JvQkNCX0JDQoAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQm9CQ0JfQkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCc0JjQm9CQ0J0KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JzQmNCb0JDQnQor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCc0JjQm9Ce0JLQkNCdCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCc0JjQoNCQCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCf0JXQotCQ0KAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KDQkNCU0JAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KDQkNCd0JrQngor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQodCQ0JLQkAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQodCS0JXQotCe0JfQkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQlNCg0JXQndCa0JAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JrQngor0JTQntCR0KDQntCh0JDQktCJ0JXQktCY0Isg0JLQkNCh0JAg0J3QntCS0JjQndCQ0KAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0J7QkdCg0J7QotCQINCR0JjQodCV0KDQmtCQCivQlNCe0JHQoNCe0KLQkCDQlNCQ0JzQmNCgCivQlNCe0JHQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQlNCe0JHQoNCe0JLQmNCLINCU0JDQnNCI0JDQndCa0JAKK9CU0J7QkdCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CU0J7QlNCV0KDQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JTQntCU0JXQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQlNCe0JTQmNCLINCY0JLQkNCdCivQlNCe0JTQmNCLINCI0JXQm9CV0J3QkAor0JTQntCU0JjQiyDQnNCY0JvQmNCS0J7QiAor0JTQntCU0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQntCU0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQntCU0JjQiyDQodCQ0JLQkAor0JTQntCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCe0JTQmNCLINCh0KLQkNCd0J7QiNCVCivQlNCe0JTQmNCLINCh0KLQntCI0JDQnQor0JTQntCU0JjQiyDQktCV0KDQkAor0JTQntCU0JjQmiDQkdCQ0KDQotCe0JsKK9CU0J7QlNCY0Jog0KHQotCV0JLQkNCdCivQlNCe0JTQm9CV0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCU0J7QqCDQm9CQ0JfQkNCgCivQlNCe0JPQkNCd0I/QmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JTQntCI0KfQmNCd0J7QktCY0Isg0ILQo9CI0JAKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JTQntCI0KfQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0J7QiNCn0JjQndCe0JLQmNCLINCI0J7QodCY0KQKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CU0J7QiNCn0JjQndCe0JLQodCa0Jgg0JLQkNCd0KfQkAor0JTQntCI0JTQldCgINCY0JLQngor0JTQntCI0JTQldCgINCI0JDQmtCe0JIKK9CU0J7QiNCY0Isg0JvQkNCX0JDQoAor0JTQntCI0JrQmNCLINCR0J7QltCY0JTQkNCgCivQlNCe0IjQmtCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CU0J7QiNCa0JjQiyDQmtCh0JXQndCY0IjQkAor0JTQntCI0JrQmNCLINCc0JDQoNCY0IjQkAor0JTQntCI0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCe0IjQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0J7QiNCa0JjQiyDQnNCb0JDQlNCV0J0KK9CU0J7QiNCa0JjQiyDQnNCb0JDQlNCV0J0KK9CU0J7QiNCa0JjQiyDQn9CQ0IjQkAor0JTQntCI0JrQmNCLINCf0JXQotCQ0KAg0JTQoAor0JTQntCI0JrQmNCLINCf0JXQotCQ0KAKK9CU0J7QiNCa0JjQiyDQoNCQ0IjQmtCeCivQlNCe0IjQmtCY0Isg0KDQkNCI0JrQngor0JTQntCI0JrQmNCLINCh0JvQkNCS0JrQngor0JTQntCI0JrQmNCLINCS0IjQldCa0J7QodCb0JDQkgor0JTQntCa0JvQldCQ0J0g0JDQlNCQ0JwKK9CU0J7QmtCc0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0J7QmtCc0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQntCa0JzQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CU0J7QmtCc0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQlNCe0JrQndCY0Isg0JLQldCJ0JrQngor0JTQntCa0J7QqNCY0Isg0JzQkNCg0JjQiNCQCivQlNCe0JvQkNCoINCc0JjQm9Ce0JLQkNCdCivQlNCe0JvQldCd0JXQpiDQpNCb0J7QoNCY0IjQkNCdCivQlNCe0JvQk9CQINCc0JjQm9CV0J3QkAor0JTQntCb0JjQndCQ0Igg0ILQo9Cg0J4KK9CU0J7Qm9CY0J3QkNCIINCI0JDQoNCe0KHQm9CQ0JLQkAor0JTQntCb0JjQndCQ0KAg0InQo9CR0JjQptCQCivQlNCe0JvQmNCd0JPQkCDQnNCQ0KDQmNCe0KDQkAor0JTQntCb0JjQndCT0JAg0J3QmNCa0J7Qm9CQ0IjQlQor0JTQntCb0J7QqCDQpNCg0JDQitCQCivQlNCe0JvQntCS0KfQkNCaINCa0JDQotCY0KbQkAor0JTQntCb0J7QktCQ0KYg0JDQndCa0JjQptCQCivQlNCe0JvQntCS0JDQpiDQkdCY0KHQldCg0JrQkAor0JTQntCb0J7QktCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CU0J7Qm9Ce0JLQkNCmINCI0J7QktCQ0J0KK9CU0J7Qm9Ce0JLQkNCmINCb0JDQl9CQ0KAKK9CU0J7Qm9Ce0JLQkNCmINCb0JDQl9CQ0KAKK9CU0J7Qm9Ce0JLQkNCmINCc0JDQoNCY0IjQkAor0JTQntCb0J7QktCQ0KYg0JzQmNCb0JjQptCQCivQlNCe0JvQntCS0JDQpiDQnNCY0JvQntCoCivQlNCe0JvQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JTQntCb0J7QktCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0JTQntCb0J7QktCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0JTQntCb0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCe0JvQntCS0JDQpiDQodCb0JDQktCa0J4KK9CU0J7Qm9Ce0JLQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CU0J7Qm9Ce0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQlNCe0JvQntCS0JDQpiDQl9Ce0KDQmtCQCivQlNCe0JzQkNCh0KLQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0J7QnNCQ0JfQldCiINCd0JjQmtCe0JvQkAor0JTQntCc0JDQl9CV0KIg0JfQntCg0JjQptCQCivQlNCe0JzQkNCX0JXQotCe0JIg0JLQldCb0JjQnNCY0KAKK9CU0J7QnNCQ0JfQldCi0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0J7QnNCQ0JfQldCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0J7QnNCQ0JfQldCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0J7QnNCR0Jgg0JvQkNCh0JvQngor0JTQntCc0JHQmCDQoNCQ0JTQntCI0JrQkAor0JTQntCc0JHQmCDQodCc0JjQidCa0JAKK9CU0J7QnNCY0J3QmNCLINCQ0J3QkAor0JTQntCc0JjQndCY0Isg0J3QmNCa0J7Qm9CQCivQlNCe0JzQntCK0Jgg0JzQkNCg0KLQmNCdCivQlNCe0JzQntCd0JrQntCoINCV0JLQkAor0JTQntCc0J7QndCa0J7QqCDQktCY0JvQnNCe0KgKK9CU0J7QnNCe0J3QmtCe0KEg0JjQqNCi0JLQkNCdCivQlNCe0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCe0J3Qp9CV0JIg0KLQntCU0JUKK9CU0J7QndCn0JjQiyDQndCQ0JTQkAor0JTQntCd0JDQoiDQlNCg0JDQk9Cj0KLQmNCdCivQlNCe0J3QkNCiINCh0JDQktCV0KLQkAor0JTQntCd0JTQo9CgINCW0JjQktCa0J4KK9CU0J7QndCU0KPQoCDQlNCQ0J3QmNCm0JAKK9CU0J7QndCU0KPQoCDQlNCQ0KDQmNCd0JrQkAor0JTQntCd0JTQo9CgINCc0JjQm9CY0KbQkAor0JTQntCd0JTQo9CgINCh0JvQkNCS0JrQngor0JTQntCd0JTQo9CgINCh0KLQkNCd0JrQngor0JTQntCd0JTQo9CgINCX0JTQoNCQ0JLQmtCeCivQlNCe0J3QldCSINCi0J7QlNCe0KAKK9CU0J7QndCV0JLQodCa0Jgg0IjQldCb0JXQndCQCivQlNCe0J3QldCS0KHQmtCYINCa0KDQmNCh0KLQmNCd0JAKK9CU0J7QndCY0Isg0JbQmNCS0J7QiNCY0J0KK9CU0J7QndCa0J7QoCDQj9CV0JzQoQor0JTQntCd0KHQmtCe0JIg0KHQldCg0JPQmNCI0JUKK9CU0J7QndCh0JrQntCS0JAg0JfQntCI0JAg0JTQoCDQm9CV0JrQkNCgCivQlNCe0J/Qo9CCINCR0J7QltCY0JTQkNCgCivQlNCe0J/Qo9CCINCR0KDQkNCd0JrQngor0JTQntCf0KPQgiDQlNCj0JHQoNCQ0JLQmtCQCivQlNCe0J/Qo9CCINCT0J7QoNCQ0J0KK9CU0J7Qn9Cj0IIg0JzQkNCg0JjQiNCQCivQlNCe0J/Qo9CCINCc0JjQm9CQ0J0g0JTQoAor0JTQntCf0KPQgiDQnNCY0KDQntCh0JvQkNCS0JAKK9CU0J7Qn9Cj0ILQkCDQltCY0JLQmtCeCivQlNCe0J/Qo9CC0JAg0JTQkNCg0JAKK9CU0J7Qn9Cj0ILQkCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCe0J/Qo9CC0JAg0KHQkNCS0JAKK9CU0J7Qn9Cj0ILQkCDQktCb0JDQlNCY0JzQmNCgCivQlNCe0KDQp9CY0Isg0JDQm9Ce0IjQl9CQCivQlNCe0KDQp9CY0Ist0JHQmNCa0JjQiyDQntCb0JPQmNCm0JAKK9CU0J7QoNCn0JjQiyDQkdCe0JbQngor0JTQntCg0KfQmNCLINCa0JvQldCc0JXQndCiCivQlNCe0KDQp9CY0Isg0JzQkNCg0IjQkNCdCivQlNCe0KDQmNCLINCW0JDQoNCa0J4KK9CU0J7QoNCY0Isg0JHQmNCJ0JDQndCQCivQlNCe0KDQmNCLINCR0JjQidCQ0J3QkAor0JTQntCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCe0KDQmNCLINCk0KDQkNCK0JAKK9CU0J7QoNCY0Isg0JjQm9CY0IjQkAor0JTQntCg0JjQiyDQmNCg0JzQkAor0JTQntCg0JjQiyDQiNCe0KHQmNCfCivQlNCe0KDQmNCLINCf0JXQotCQ0KAKK9CU0J7QoNCY0Isg0KHQotCV0JLQkNCdCivQlNCe0KDQmNCLINCS0JXQodCV0JvQmNCdCivQlNCe0KDQmtCeINCh0J7QpNCY0IjQkAor0JTQntCg0JzQkNCdINCb0JDQodCb0J4KK9CU0J7QoNCeINCT0JXQl9CQINCU0KAKK9CU0J7QoNCe0KjQldCSINCC0J7QoNCC0JUKK9CU0J7QoNCe0KjQmtCYINCC0J7QoNCC0JUKK9CU0J7QoNCe0KjQmtCYINCR0KDQkNCd0JrQngor0JTQntCg0J7QqNCa0Jgg0JTQldCh0JDQndCa0JAKK9CU0J7QoNCe0KjQmtCYINCI0J7QktCQ0J0g0JTQoAor0JTQntCg0J7QqNCa0Jgg0InQmNCJ0JDQndCQCivQlNCe0KDQntCo0JrQmCDQnNCQ0KDQmNCI0JAKK9CU0J7QoNCe0KjQmtCYINCc0JjQm9CQ0J0KK9CU0J7QoNCe0KjQmtCYINCc0JjQm9CQCivQlNCe0KDQntCo0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JTQntCg0J7QqNCa0Jgg0J3QmNCa0J7Qm9CQCivQlNCe0KDQntCo0JrQmCDQodCY0JzQkAor0JTQntCg0J7QqNCa0Jgg0JLQmNCU0J7QodCQ0JLQkAor0JTQntCg0J7QqNCa0Jgg0JLQo9CI0JDQlNCY0J0KK9CU0J7QoNCe0KbQmtCYINCc0JDQpdCQ0JsKK9CU0J7QoNCe0JPQpdCQ0JfQmCDQmNCg0JjQndCQCivQlNCe0KDQntCT0Jgg0KjQkNCd0JTQntCgCivQlNCe0KDQntCK0KHQmtCYINCU0KPQqNCQ0J0KK9CU0J7QoNCe0IrQodCa0Jgg0JrQkNCi0JDQoNCY0J3QkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCC0KPQoNCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQkNCd0JjQptCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JTQkNCd0JjQptCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JPQoNCj0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCI0JXQm9CV0J3QkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCa0KHQldCd0JjQiNCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JzQkNCg0JPQmNCi0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQnNCQ0KDQmNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQnNCQ0KDQiNCQ0J3QkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQndCY0JrQntCb0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQoNCQ0JTQlQor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCh0JDQktCV0KLQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCh0KLQldCS0JDQndCa0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQktCj0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCS0KPQmtCQCivQlNCe0KDQntCh0JvQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JvQkNCX0JDQoAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JzQkNCg0JjQiNCQCivQlNCe0KDQntCh0JvQntCS0JDQpiDQnNCY0JvQkNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCf0JXQotCQ0KAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCX0J7QoNCQ0J0KK9CU0J7QoNCe0KLQmNCLINCC0J7QoNCC0JUKK9CU0J7QoNCe0KLQmNCLINCC0J7QoNCC0JUKK9CU0J7QoNCe0KLQmNCLINCT0JjQl9CV0JvQkAor0JTQntCg0J7QotCY0Isg0JPQntCg0JTQkNCdCivQlNCe0KDQntCi0JjQiy3Qk9Cj0KLQldCo0JAg0JvQldCe0J3QkAor0JTQntCg0J7QotCY0Isg0JjQm9CQINCc0KAg0J/QoNCe0KQKK9CU0J7QoNCe0KLQmNCLINCc0JDQoNCY0IjQkAor0JTQntCg0J7QotCY0Isg0KHQotCV0JLQkNCdCivQlNCe0KDQntCi0JrQkCDQlNCg0JDQk9CQ0J0KK9CU0J7QoNCe0KLQmtCQINCc0JjQm9Ce0KgKK9CU0J7QodCi0JDQnSDQkNCd0JAKK9CU0J7QodCi0JDQnSDQkNCg0J/QkNCUCivQlNCe0KHQotCQ0J0g0JTQkNCg0JjQndCa0JAKK9CU0J7QodCi0JDQnSDQmNCo0KLQktCQ0J0KK9CU0J7QodCi0JDQnSDQiNCe0JbQldCkCivQlNCe0KHQotCQ0J0g0JvQkNCU0JjQodCb0JDQkgor0JTQntCh0KLQkNCdINCf0JXQotCQ0KAKK9CU0J7QodCi0JDQnSDQodCi0JXQktCQ0J0KK9CU0J7QodCi0JDQnSDQotCY0JHQntCgCivQlNCe0KHQotCQ0J3QmNCLINCU0KDQkNCT0JjQptCQCivQlNCe0KHQotCQ0J3QmNCLINCg0JDQlNCc0JjQm9CeCivQlNCe0KHQotCQ0J3QmNCLINCS0J7QmNCh0JvQkNCSCivQlNCe0KHQotCQ0Iog0IjQntCh0JjQnwor0JTQntCh0KLQkNCKINCg0J7Ql9CQ0JvQmNCI0JAKK9CU0J7QodCi0JjQiyDQodCb0JDQktCa0J4KK9CU0J7QodCi0JjQiyDQodCe0KTQmNCI0JAKK9CU0J7QotCb0JjQiyDQltCY0JLQmtCeCivQlNCe0KLQm9CY0Isg0JHQntCo0JrQngor0JTQntCi0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0J7QotCb0JjQiyDQlNCe0JHQoNCY0JvQkAor0JTQntCi0JvQmNCLINCU0KPQqNCQ0J0KK9CU0J7QotCb0JjQiyDQm9CQ0JfQkNCgCivQlNCe0KLQm9CY0Isg0JvQkNCX0JDQoAor0JTQntCi0JvQmNCLINCb0KPQmtCQCivQlNCe0KLQm9CY0Isg0KHQkNCS0JAKK9CU0J7QotCb0JjQiyDQodCe0KTQmNCI0JAKK9CU0J7QotCb0JjQiyDQktCQ0KHQkAor0JTQntCi0J7QkiDQlNCg0JDQk9CeCivQlNCe0JLQkNCiINCf0JDQktCb0JUg0JTQoAor0JTQntCS0JDQoiDQktCb0JDQlNCY0JzQmNCgCivQlNCe0JLQkNCi0J7QkiDQkNCU0JDQnAor0JTQntCS0JXQlNCV0J0g0JHQntCg0JjQodCb0JDQkgor0JTQntCS0JPQkNCdINCI0J7QodCY0J8KK9CU0J7QktCY0IjQkNCg0J7QkiDQnNCY0JvQntCoCivQlNCe0JLQmNCI0JDQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9CU0J7QktCY0IjQkNCg0KHQmtCYINCR0KDQkNCd0JrQkAor0JTQntCS0JjQiNCQ0KDQodCa0Jgg0JzQmNCb0JXQndCQCivQlNCe0JLQmNCI0JDQoNCh0JrQmCDQodCi0JDQndCY0JzQmNCgCivQlNCe0JLQndCY0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCe0JfQldCiINCC0J7QoNCC0JUKK9CU0J7Ql9CV0KIg0JHQntCW0J4KK9CU0J7Ql9CV0KIg0JTQoNCQ0JPQmNCm0JAKK9CU0J7Ql9CV0KIg0JjQm9CY0IjQkAor0JTQntCX0JXQoiDQiNCQ0KHQndCQCivQlNCe0JfQldCiINCI0KPQm9Ca0JjQptCQCivQlNCe0JfQldCiINCJ0KPQkdCY0KbQkAor0JTQntCX0JXQoiDQidCj0JHQntCc0JjQoAor0JTQntCX0JXQoiDQnNCY0KXQkNCI0JvQngor0JTQntCX0JXQoiDQnNCY0JvQkNCdCivQlNCe0JfQldCiINCc0JjQm9Ce0JLQkNCdCivQlNCe0JfQldCiINCd0JjQmtCe0JvQkAor0JTQntCX0JXQoiDQoNCQ0JTQlQor0JTQntCX0JXQoiDQoNCQ0JTQnNCY0JvQkAor0JTQntCX0JXQoiDQoNCQ0JTQntCh0JvQkNCS0JrQkAor0JTQntCX0JXQoiDQodCQ0JLQmtCQCivQlNCe0JfQldCiINCh0KLQkNCd0JrQngor0JTQoNCn0JAg0JDQndCQCivQlNCg0KfQkCDQkdCg0JDQndCa0J4KK9CU0KDQp9CQINCU0KDQkNCT0JjQptCQCivQlNCg0KfQkCDQiNCQ0J3QmtCeCivQlNCg0KfQkCDQnNCY0JvQkNCdCivQlNCg0KfQkCDQoNCQ0KLQmtCeCivQlNCg0KfQkCDQodCb0JDQktCa0J4KK9CU0KDQp9CQINCh0KLQldCS0JDQnQor0JTQoNCn0JAt0KPQoNCT0JXQnSDQnNCQ0KDQmNCI0JAKK9CU0KDQp9CQINCS0JvQkNCi0JrQngor0JTQoNCn0JXQm9CY0Isg0JTQntCR0KDQmNCh0JDQkgor0JTQoNCn0JXQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0KDQltCQ0IjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlSDQn9Cg0J7QpNCV0KHQntCgCivQlNCg0JbQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCn0JAg0JbQmNCS0JrQngor0JTQoNCQ0KfQkCDQgtCe0KDQgtCVCivQlNCg0JDQp9CQINCQ0KbQkAor0JTQoNCQ0KfQkCDQlNCj0JHQoNCQ0JLQmtCQCivQlNCg0JDQp9CQINCc0JjQm9CVCivQlNCg0JDQp9CQINCf0JXQotCQ0KAg0JTQoAor0JTQoNCQ0KfQkCDQn9CV0KLQkNCgCivQlNCg0JDQp9CQINCh0J/QkNCh0JXQndCa0JAKK9CU0KDQkNCn0JAg0KLQntCc0J4g0JTQoAor0JTQoNCQ0KfQmNCdINCa0J7QodCi0JAKK9CU0KDQkNCo0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQlNCg0JDQqNCa0J4g0IjQldCb0JrQkAor0JTQoNCQ0KjQmtCeINCc0JjQm9Ce0JLQkNCdCivQlNCg0JDQqNCa0J4g0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0KjQmtCe0JLQmNCLINCR0KDQkNCd0JrQniDQlNCY0J/QmyDQntCV0KYKK9CU0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9CQCivQlNCg0JDQqNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0KjQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCg0JDQqNCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CU0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JTQoNCQ0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCg0JDQqNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JTQoNCQ0KjQmtCe0JLQmNCLINCh0JDQktCeCivQlNCg0JDQqNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CU0KDQkNCo0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCg0JDQqNCa0J7QktCY0Isg0KHQoNCV0KLQldCdCivQlNCg0JDQltCV0KLQkCDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JbQldCi0JAg0KHQotCV0JLQkNCdCivQlNCg0JDQltCV0KLQmNCdINCU0KPQqNCQ0J0KK9CU0KDQkNCW0JXQotCY0J0g0JzQm9CQ0JTQldCdCivQlNCg0JDQltCY0Isg0JbQkNCg0JrQngor0JTQoNCQ0JbQmNCLINCC0J7QoNCC0JUKK9CU0KDQkNCW0JjQiyDQgtCe0KDQgtCVCivQlNCg0JDQltCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQkNCW0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0KDQkNCW0JjQiyDQkdCj0JTQngor0JTQoNCQ0JbQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CU0KDQkNCW0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQlNCg0JDQltCY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0JbQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCW0JjQiyDQldCc0JjQmwor0JTQoNCQ0JbQmNCLINCT0J7QoNCU0JDQndCQCivQlNCg0JDQltCY0Isg0JjQm9CY0IjQkAor0JTQoNCQ0JbQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCW0JjQiyDQmNCg0JXQndCQCivQlNCg0JDQltCY0Isg0IjQkNCo0JAKK9CU0KDQkNCW0JjQiyDQiNCV0JvQmNCm0JAKK9CU0KDQkNCW0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCa0JDQotCY0KbQkAor0JTQoNCQ0JbQmNCLINCa0J7QodCi0JAKK9CU0KDQkNCW0JjQiyDQm9CQ0JfQkNCgCivQlNCg0JDQltCY0Isg0InQo9CR0JjQptCQCivQlNCg0JDQltCY0Isg0JzQkNCg0JjQiNCQCivQlNCg0JDQltCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JbQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCW0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JbQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQltCY0Isg0JzQmNCb0JjQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQlNCg0JDQltCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCW0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCg0JDQltCY0Isg0JzQmNCg0JAKK9CU0KDQkNCW0JjQiyDQnNCY0KLQkAor0JTQoNCQ0JbQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CU0KDQkNCW0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQlNCg0JDQltCY0Isg0J3QldCh0KLQntCgCivQlNCg0JDQltCY0Isg0J3QldCS0JXQndCa0JAKK9CU0KDQkNCW0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCW0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCW0JjQiyDQntCh0KLQntCI0JAKK9CU0KDQkNCW0JjQiyDQn9CV0KLQkNCgCivQlNCg0JDQltCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQoNCV0InQkAor0JTQoNCQ0JbQmNCLINCh0JvQkNCS0JrQngor0JTQoNCQ0JbQmNCLINCh0J7QpNCY0IjQkAor0JTQoNCQ0JbQmNCLINCh0KLQkNCd0JrQngor0JTQoNCQ0JbQmNCLINCh0KLQldCS0JDQnQor0JTQoNCQ0JbQmNCLINCh0KLQldCS0JDQnQor0JTQoNCQ0JbQmNCLINCh0KPQl9CQ0J3QkAor0JTQoNCQ0JbQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0KDQkNCW0JjQiyDQktCV0JvQmNCd0JrQkAor0JTQoNCQ0JbQmNCLINCS0JXQoNCQCivQlNCg0JDQltCY0Isg0JLQldCg0JAKK9CU0KDQkNCW0JjQiyDQktCV0KDQkAor0JTQoNCQ0JbQmNCLINCX0JvQkNCi0JrQngor0JTQoNCQ0JbQmNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9CU0KDQkNCW0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQlNCg0JDQk9CQ0Kgg0ILQntCg0ILQlQor0JTQoNCQ0JPQkNCoINCC0KPQoNCeCivQlNCg0JDQk9CQ0Kgg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQkNCoINCR0KDQkNCd0JrQngor0JTQoNCQ0JPQkNCoINCU0KDQkNCT0J7QnNCY0KAKK9CU0KDQkNCT0JDQqCDQmNCS0JDQnQor0JTQoNCQ0JPQkNCoINCa0JDQotCY0KbQkAor0JTQoNCQ0JPQkNCoLdCa0J7QktCQ0Kcg0InQo9CR0JjQptCQCivQlNCg0JDQk9CQ0Kgg0JvQldCf0J7QodCQ0JLQkAor0JTQoNCQ0JPQkNCoINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQkNCoINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQkNCoINCc0JDQndCe0IjQm9CeCivQlNCg0JDQk9CQ0Kgg0JzQmNCb0JDQnQor0JTQoNCQ0JPQkNCoINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQk9CQ0Kgg0JzQmNCg0JAKK9CU0KDQkNCT0JDQqCDQnNCY0KDQiNCQ0J3QkAor0JTQoNCQ0JPQkNCoINCc0J7QnNCn0JjQm9CeCivQlNCg0JDQk9CQ0Kgg0KDQkNCU0JjQktCe0IgKK9CU0KDQkNCT0JDQqCDQoNCQ0JTQntCc0JjQoAor0JTQoNCQ0JPQkNCoINCh0J/QntCc0JXQndCa0JAKK9CU0KDQkNCT0JDQqCDQodCS0JXQotCb0JDQndCQCivQlNCg0JDQk9CQ0Kgg0JfQntCg0JDQnQor0JTQoNCQ0JPQkNCo0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQlNCg0JDQk9CQ0J0g0JzQmNCb0JXQndCQCivQlNCg0JDQk9CQ0J3QmNCLINCU0KDQkNCT0JAKK9CU0KDQkNCT0JDQndCY0Isg0IjQkNCd0JrQngor0JTQoNCQ0JPQkNCd0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQoNCQ0JPQkNCd0JjQiyDQnNCY0JvQmNCm0JAg0JTQoAor0JTQoNCQ0JPQkNCd0JjQiyDQnNCY0JvQmtCQCivQlNCg0JDQk9CQ0J3QmNCLINCc0JjQoNCa0J4KK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCQ0JPQkNCd0JjQiyDQndCQ0JTQldCW0JTQkAor0JTQoNCQ0JPQkNCd0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9CQ0J3QmNCLINCS0JjQlNCQCivQlNCg0JDQk9CQ0J3QmNCLINCX0JXQmtCeCivQlNCg0JDQk9CQ0J3QntCSINCc0JjQm9Ce0KgKK9CU0KDQkNCT0JDQndCe0JIg0J7Qm9CT0JAKK9CU0KDQkNCT0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0JPQkNCd0J7QkiDQodCi0J7QiNCQ0J3QmtCQCivQlNCg0JDQk9CQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CU0KDQkNCT0JXQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCT0JXQidCV0JLQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCQ0JTQkNCcCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JPQntCI0JrQngor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JjQm9CY0J3QmtCQCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQmNCS0JrQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JrQoNCV0KjQmNCc0JjQoAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JvQkNCX0JDQoAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0InQo9CR0JjQptCQCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JzQmNCJ0JAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCc0JjQoNCa0J4KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQodCf0JDQodCQCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQodCg0JXQotCV0J0KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCS0J7QiNCY0J0KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CU0KDQkNCT0JjQqNCQINCW0JDQoNCa0J4KK9CU0KDQkNCT0JjQqNCY0Isg0JHQntCT0JTQkNCdCivQlNCg0JDQk9CY0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JLQmtCQCivQlNCg0JDQk9CY0KjQmNCLINCI0J7QktCQ0J3QmtCQCivQlNCg0JDQk9CY0KjQmNCLINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQmNCo0JjQiyDQn9CV0KLQkNCgCivQlNCg0JDQk9CY0KjQmNCLINCg0JDQlNCVCivQlNCg0JDQk9CY0Isg0KfQldCU0J7QnNCY0KAKK9CU0KDQkNCT0JjQiyDQltCV0InQmtCeCivQlNCg0JDQk9CY0Isg0ILQntCg0ILQlQor0JTQoNCQ0JPQmNCLINCQ0J3QkAor0JTQoNCQ0JPQmNCLINCR0KDQkNCd0JrQngor0JTQoNCQ0JPQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCT0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CY0Isg0JXQm9CS0JjQoNCQCivQlNCg0JDQk9CY0Isg0JjQm9CY0IjQkAor0JTQoNCQ0JPQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCT0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQk9CY0Isg0IjQldCb0JXQndCQCivQlNCg0JDQk9CY0Isg0InQo9CR0JjQqNCQCivQlNCg0JDQk9CY0Isg0InQo9CR0JjQqNCQCivQlNCg0JDQk9CY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JTQoNCQ0JPQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQk9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JTQoNCQ0JPQmNCLINCc0JjQm9Ca0JAKK9CU0KDQkNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JPQmNCLINCd0JDQlNCQCivQlNCg0JDQk9CY0Isg0J3QldCU0JXQidCa0J4KK9CU0KDQkNCT0JjQiyDQndCV0JLQldCd0JrQkAor0JTQoNCQ0JPQmNCLINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQmNCLINCe0JHQoNCQ0JQKK9CU0KDQkNCT0JjQiyDQn9CQ0KPQm9CQCivQlNCg0JDQk9CY0Isg0J/QkNCS0JvQlQor0JTQoNCQ0JPQmNCLINCf0JXQoNCQCivQlNCg0JDQk9CY0Isg0J/QldCi0JDQoAor0JTQoNCQ0JPQmNCLINCf0JXQotCQ0KAKK9CU0KDQkNCT0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9CY0Isg0KHQkNCS0JAKK9CU0KDQkNCT0JjQiyDQodCb0JDQktCa0J4KK9CU0KDQkNCT0JjQiyDQodCf0JDQodCe0IjQlQor0JTQoNCQ0JPQmNCLINCh0KLQldCS0JDQnQor0JTQoNCQ0JPQmNCLINCh0KLQldCS0JDQnQor0JTQoNCQ0JPQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQiyDQktCV0KDQkAor0JTQoNCQ0JPQmNCLINCS0JXQodCd0JAKK9CU0KDQkNCT0JjQi9CV0JLQmNCLINCR0J7Qk9CY0KbQkAor0JTQoNCQ0JPQmNCL0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCL0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCg0JDQk9CY0IvQldCS0JjQiyDQoNCQ0IjQmNCm0JAKK9CU0KDQkNCT0JjQnSDQltCQ0KDQmtCeCivQlNCg0JDQk9CY0J0g0JHQntCT0JTQkNCdCivQlNCg0JDQk9CY0J0g0JHQntCg0JjQktCe0IgKK9CU0KDQkNCT0JjQnSDQlNCQ0J3QmNCb0J4KK9CU0KDQkNCT0JjQnSDQlNCV0KHQkNCd0JrQkAor0JTQoNCQ0JPQmNCdINCU0KPQqNCa0J4KK9CU0KDQkNCT0JjQnSDQk9Ce0KDQlNCQ0J3QkAor0JTQoNCQ0JPQmNCdINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCg0JDQk9CY0J0g0IjQntCS0J4g0JTQmNCf0Jsg0JjQndCTCivQlNCg0JDQk9CY0J0g0JvQkNCX0JDQoAor0JTQoNCQ0JPQmNCdINCc0JDQoNCa0J4KK9CU0KDQkNCT0JjQnSDQnNCY0J7QlNCg0JDQkwor0JTQoNCQ0JPQmNCdINCc0JjQntCU0KDQkNCTCivQlNCg0JDQk9CY0J0g0J3QmNCa0J7Qm9CQCivQlNCg0JDQk9CY0J0g0J/QldCi0KDQmNCI0JAKK9CU0KDQkNCT0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JTQoNCQ0JPQmNCdINCg0JjQodCi0J4KK9CU0KDQkNCT0JjQnSDQodCQ0KjQkAor0JTQoNCQ0JPQmNCdINCh0J7QmtCY0KbQkAor0JTQoNCQ0JPQmNCdINCh0KLQldCS0JDQnQor0JTQoNCQ0JPQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCdINCS0JDQodCQCivQlNCg0JDQk9CY0J0g0JLQntCI0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCdINCX0J7QoNCQ0J0KK9CU0KDQkNCT0JjQndCn0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CY0J3Qp9CY0Isg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9Ce0KjQldCSINCU0KDQkNCT0JDQnQor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JbQldCJ0JrQngor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCR0J7QqNCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQoNCQ0JTQmNCo0JAKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JfQm9CQ0KLQkNCd0JAKK9CU0KDQkNCT0J7QiNCb0J7QkiDQkNCd0JrQmNCm0JAKK9CU0KDQkNCT0J7QiNCb0J7QkiDQkdCe0KjQmtCeCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JTQo9Co0JDQnQor0JTQoNCQ0JPQntCI0JvQntCSINCU0KPQkdCg0JDQktCa0JAKK9CU0KDQkNCT0J7QiNCb0J7QkiDQk9CQ0JLQoNCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JvQkNCX0JDQoAor0JTQoNCQ0JPQntCI0JvQntCSINCc0JDQoNCT0JjQotCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JzQmNCb0J7QqAor0JTQoNCQ0JPQntCI0JvQntCSINCc0JjQm9Ce0KgKK9CU0KDQkNCT0J7QiNCb0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JLQntCI0JjQodCb0JDQkgor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JzQkNCg0JAKK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0JTQoNCQ0JPQntCJ0JXQktCY0Isg0JPQntCI0JrQngor0JTQoNCQ0JPQntCJ0JXQktCY0Isg0JzQkNCg0JjQndCa0J4KK9CU0KDQkNCT0J7QidCV0JLQmNCLINCc0JjQotCQ0KAKK9CU0KDQkNCT0J7QidCV0JLQmNCLINCg0JDQndCa0J4KK9CU0KDQkNCT0J7QidCV0JLQmNCLINCh0JXQmtCj0JvQkAor0JTQoNCQ0JPQntCJ0JXQktCY0Isg0KHQotCe0IjQkNCdCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQktCb0JDQlNCVCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0ILQntCa0JAKK9CU0KDQkNCT0J7QnNCY0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0KDQkNCT0J7QnNCY0KDQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCY0JLQkNCdCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0InQo9CR0JjQptCQCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0KHQkNCS0JAKK9CU0KDQkNCT0J7QnNCY0KDQntCS0JjQiyDQotCe0JTQntCgCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQkNCd0JPQldCb0JjQndCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQmNCb0JjQiNCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQmtCQ0KLQmNCm0JAKK9CU0KDQkNCT0J7QodCQ0JLQkNCmINCc0JXQm9CQ0J3QmNCI0JAKK9CU0KDQkNCT0J7QodCQ0JLQkNCmINCc0JjQm9CQ0J3QmtCeCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0J3QmNCa0J7Qm9CQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQl9Cj0JfQkNCd0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCC0KPQoNCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQidCY0InQkNCd0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JTQoNCQ0JPQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JTQoNCQ0JPQntCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0KjQkAor0JTQoNCQ0JPQntCh0JDQktCJ0JXQktCY0Isg0JLQntCI0JAKK9CU0KDQkNCT0J7QodCb0JDQktCY0Isg0JLQmNCU0JDQmgor0JTQoNCQ0JPQntCS0JDQpiDQodCb0JDQktCa0J4KK9CU0KDQkNCT0J7QktCY0Isg0KfQldCU0J4KK9CU0KDQkNCT0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CU0KDQkNCT0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCg0JDQk9Ce0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CU0KDQkNCT0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JTQoNCQ0JPQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQk9Ce0JLQmNCLINCc0JjQm9CY0IsKK9CU0KDQkNCT0J7QktCY0Isg0JzQmNCb0JjQptCQCivQlNCg0JDQk9Ce0JLQmNCLINCc0JjQoNCQCivQlNCg0JDQk9Ce0JLQmNCLINCg0JDQndCa0J4KK9CU0KDQkNCT0J7QktCY0Isg0KHQndCY0IjQldCW0JDQndCQCivQlNCg0JDQk9Ce0JLQmNCLINCh0KLQkNCc0JXQndCa0JAKK9CU0KDQkNCT0J7QktCY0Isg0KHQktCV0KLQmNCc0JjQoAor0JTQoNCQ0JPQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQlNCg0JDQk9Ce0JLQmNCLINCS0JXQoNCQCivQlNCg0JDQk9Ce0JLQmNCLINCS0JjQlNCQ0JoKK9CU0KDQkNCT0J7QktCY0Isg0JLQm9CQ0JTQkAor0JTQoNCQ0JPQntCS0JjQiyDQl9Ce0KDQkNCdCivQlNCg0JDQk9Cj0JzQmNCb0J4g0JzQmNCb0J7QnNCY0KAKK9CU0KDQkNCT0KPQnNCY0JvQniDQnNCY0JvQo9Ci0JjQnQor0JTQoNCQ0JPQo9Cd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQo9Cd0J7QktCY0Isg0J/QldCg0J4KK9CU0KDQkNCT0KPQotCY0J3QntCS0JjQiyDQltCY0JLQmtCQCivQlNCg0JDQk9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQo9Ci0JjQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQlNCg0JDQk9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JTQoNCQ0KUg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0KDQkNClINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCg0JDQpdCe0KLQo9Ch0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQlNCg0JDQpdCe0KLQo9Ch0JrQmCDQn9CV0KLQkNCgCivQlNCg0JDQmtCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CU0KDQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9CU0KDQkNCa0KPQmyDQktCQ0KHQngor0JTQoNCQ0JrQo9Cb0JAg0JTQo9Co0JDQnQor0JTQoNCQ0JrQo9Cb0JAg0KDQkNCU0JzQmNCb0JAKK9CU0KDQkNCa0KPQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQkNCa0KPQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCg0JDQmtCj0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAg0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0JTQoNCQ0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQlNCg0JDQmtCj0JvQmNCLINCV0KDQltCV0JHQldCiCivQlNCg0JDQmtCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JTQoNCQ0JrQo9Cb0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCa0J7QodCi0JAKK9CU0KDQkNCa0KPQm9CY0Isg0JvQkNCX0JDQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQidCj0JHQmNCm0JAKK9CU0KDQkNCa0KPQm9CY0Isg0JzQkNCg0JAKK9CU0KDQkNCa0KPQm9CY0Isg0JzQkNCg0JAKK9CU0KDQkNCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCa0KPQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9CU0KDQkNCa0KPQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCQ0JrQo9Cb0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQoNCQ0JrQo9Cb0JjQiyDQodCc0JjQidCQCivQlNCg0JDQmtCj0JvQmNCLINCh0J7QpNCY0IjQkAor0JTQoNCQ0JrQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCa0KPQm9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JTQoNCQ0JrQo9Cb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0KDQkNCa0KPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQodCS0JXQotCe0JfQkNCgCivQlNCg0JDQmtCj0JvQmNCLINCi0J7QlNCe0KAKK9CU0KDQkNCa0KPQm9CY0Isg0JfQntCg0JDQnQor0JTQoNCQ0J/QqNCY0J0g0KfQkNCS0JAKK9CU0KDQkNCf0KjQmNCdINCC0J7QoNCC0JUKK9CU0KDQkNCf0KjQmNCdINCU0JDQndCY0KbQkAor0JTQoNCQ0J/QqNCY0J0g0JvQldCf0J7QodCQ0JLQkAor0JTQoNCQ0J/QqNCY0J0g0JzQmNCb0JDQnQor0JTQoNCQ0J/QqNCY0J0g0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCf0KjQmNCdINCf0JXQotCQ0KAKK9CU0KDQkNCf0KjQmNCdINCf0KDQldCU0KDQkNCTCivQlNCg0JDQn9Co0JjQnSDQodCQ0JLQkAor0JTQoNCQ0J/QqNCY0J0g0JfQkNCT0J7QoNCa0JAKK9CU0KDQkNCf0KjQmNCdINCX0J7QoNCQ0J0KK9CU0KDQkNCf0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0KDQkNCf0JjQiyDQodCV0J3QmNCi0JAKK9CU0KDQkNCf0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCg0JDQn9CY0Isg0JLQldCb0JjQnNCY0KAKK9CU0KDQkNCf0J7QqCDQodCi0JXQktCQ0J0KK9CU0KDQldCo0JrQkNCYINCo0JDQndCU0J7QoAor0JTQoNCV0KbQo9CdINCS0JXQidCa0J4KK9CU0KDQldCl0JXQoCDQm9CQ0IjQntCoCivQlNCg0JXQpdCV0KAg0J3QmNCa0J7Qm9CQCivQlNCg0JXQpdCV0KAg0J7QotCeCivQlNCg0JXQpdCV0KAg0JLQmNCb0JjQnCDQlNCY0J/QmyDQmNCd0JMKK9CU0KDQldCa0J7QktCY0Isg0ILQo9Cg0J4KK9CU0KDQldCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQlNCg0JXQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0KDQldCc0J/QldCi0JjQiyDQlNCQ0KDQmtCeCivQlNCg0JXQnNCf0JXQotCY0Isg0J/QldCi0JDQoAor0JTQoNCV0JzQn9CV0KLQmNCLINCX0JTQldCd0JrQngor0JTQoNCV0IrQkNCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQlNCg0JXQndCa0J7QktCY0Isg0JvQkNCh0JvQngor0JTQoNCV0J3QntCS0KfQkNCd0JjQnSDQidCj0JHQntCc0JjQoAor0JTQoNCV0J3QntCS0JDQpiDQoNCQ0J3QmtCeCivQlNCg0JXQndCe0JLQldCmINCm0JLQldCi0J4KK9CU0KDQldCi0JDQoCDQnNCY0KDQmtCeCivQlNCg0JXQl9CT0JAg0IjQkNCa0J7Qkgor0JTQoNCV0JfQk9CQINCi0J7QlNCe0KAKK9CU0KDQldCX0JPQmNCLINCU0JDQoNCQCivQlNCg0JXQl9CT0JjQiyDQmNCb0JjQiNCQCivQlNCg0JXQl9CT0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0KDQldCX0JPQmNCLINCc0JjQm9CQ0J0KK9CU0KDQldCX0JPQmNCLINCg0JDQlNCY0JLQntCICivQlNCg0JXQl9CT0JjQiyDQodCS0JXQotCb0JDQndCQCivQlNCg0JXQl9CT0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCg0JjQk9Cj0JvQntCSINCh0J/QkNCh0J7QiNCVCivQlNCg0JjQndCn0JXQktCY0Isg0JbQmNCS0J7QotCQCivQlNCg0JjQndCn0JXQktCY0Isg0JTQldCh0JDQndCa0JAg0JTQoAor0JTQoNCY0J3Qp9CY0Isg0JzQldCb0JDQndCY0IjQkAor0JTQoNCY0J3Qp9CY0Isg0JzQmNCb0J7QiNCa0J4KK9CU0KDQmNCd0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCg0JjQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQmNCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCg0JjQndCY0Isg0IjQkNCT0J7QlNCQCivQlNCg0JjQndCY0Isg0JzQmNCb0JDQnQor0JTQoNCY0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQlNCg0JjQndCY0Isg0JzQmNCb0JXQotCQCivQlNCg0JjQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9CU0KDQmNCd0JjQiyDQnNCY0KDQmtCeCivQlNCg0JjQndCY0Isg0J3QldCU0JXQidCa0J4KK9CU0KDQmNCd0JjQiyDQn9CV0KDQngor0JTQoNCY0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQlNCg0JjQndCY0Isg0KHQkNCS0J4KK9CU0KDQmNCd0JjQiyDQodCb0JDQktCY0KbQkAor0JTQoNCY0J3QmNCLINCh0KLQldCS0J4KK9CU0KDQmNCd0JjQiyDQotCe0JzQngor0JTQoNCY0J3QmNCLINCX0JTQoNCQ0JLQmtCeCivQlNCg0JjQitCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQmNCK0J7QktCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQlNCg0Jog0JHQkNCg0JHQkNCg0JAKK9CU0KDQmtCj0KjQmNCLINCY0JvQmNCI0JAKK9CU0KDQidCQ0KfQkCDQgtCe0KDQgtCVCivQlNCg0InQkNCn0JAg0ILQntCg0ILQlQor0JTQoNCJ0JDQp9CQINCR0KDQkNCd0JrQkAor0JTQoNCJ0JDQp9CQINCU0KDQkNCT0JDQnQor0JTQoNCJ0JDQp9CQINCU0KPQqNCQ0J0KK9CU0KDQidCQ0KfQkCDQnNCQ0KDQmtCeCivQlNCg0InQkNCn0JAg0JzQmNCL0JAKK9CU0KDQidCQ0KfQkCDQnNCY0JvQkNCd0JrQngor0JTQoNCJ0JDQp9CQINCc0JjQm9Ce0KDQkNCUCivQlNCg0InQkNCn0JAg0JzQmNCg0JrQngor0JTQoNCJ0JDQp9CQINCd0JXQgtCeCivQlNCg0InQkNCn0JAg0J3QldCd0JDQlAor0JTQoNCJ0JDQp9CQINCg0JDQlNCe0JLQkNCdCivQlNCg0InQkNCn0JAg0KDQkNCU0J7QktCQ0J0KK9CU0KDQidCQ0KfQkCDQodCi0J7QiNCQCivQlNCg0InQkNCn0JAg0JfQlNCg0JDQktCa0JAKK9CU0KDQidCQ0KfQmNCLINCa0JDQotCQCivQlNCg0InQldCS0JjQiyDQgtCj0KDQngor0JTQoNCJ0JXQktCY0Isg0JDQndCY0KbQkAor0JTQoNCJ0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CU0KDQidCV0JLQmNCLINCc0JjQm9CV0KLQkAor0JTQoNCJ0JXQktCY0Isg0JzQmNCJ0JAKK9CU0KDQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCg0InQmNCLINCc0JjQm9CQ0JTQmNCdCivQlNCg0InQmNCLINCf0KDQldCU0KDQkNCTCivQlNCg0JzQkNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCg0JzQkNCd0JDQpiDQodCi0JDQndCa0J4KK9CU0KDQnNCQ0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9CU0KDQndCU0JDQoNCV0JLQmNCLINCR0J7QoNCQCivQlNCg0J3QlNCQ0KDQldCS0JjQiyDQkdCe0KDQkAor0JTQoNCd0JTQkNCg0JXQktCY0Isg0JrQkNCi0JjQptCQCivQlNCg0J3QlNCQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0JTQoNCd0JTQkNCg0KHQmtCYINCS0JXQm9CY0JzQmNCgCivQlNCg0J7QkdCQ0KYg0JbQkNCg0JrQngor0JTQoNCe0JHQkNCmINCW0JDQoNCa0J4KK9CU0KDQntCR0JDQpiDQgtCe0KDQgtCVCivQlNCg0J7QkdCQ0KYg0JDQndCQCivQlNCg0J7QkdCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCg0J7QkdCQ0KYg0InQmNCJ0JDQndCQCivQlNCg0J7QkdCQ0KYg0JzQmNCb0JDQnQor0JTQoNCe0JHQkNCmINCc0JjQm9CQ0J0KK9CU0KDQntCR0JDQpiDQnNCY0JvQntCg0JDQlAor0JTQoNCe0JHQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KDQntCR0JDQpiDQndCV0J3QkNCUCivQlNCg0J7QkdCQ0KYg0J3QmNCa0J7Qm9CQCivQlNCg0J7QkdCQ0KYg0J/QoNCV0JTQoNCQ0JMKK9CU0KDQntCR0JDQpiDQoNCQ0JTQntCI0JrQkAor0JTQoNCe0JHQkNCmINCg0JDQlNCe0IjQmtCQCivQlNCg0J7QkdCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCg0J7QkdCQ0KYg0JLQm9CQ0JTQngor0JTQoNCe0JHQkNCmINCS0KPQmtCQ0KjQmNCdINCd0J7QktCY0J3QkNCgCivQlNCg0J7QkdCQ0KYg0JfQlNCg0JDQktCa0J4KK9CU0KDQntCR0JjQndCQINCI0KPQm9CY0IjQkNCd0JAKK9CU0KDQntCR0JjQndCQINCJ0KPQkdCY0KbQkAor0JTQoNCe0JHQmNCd0JAg0JzQmNCl0JDQiQor0JTQoNCe0JHQmNCK0JDQmiDQoNCj0JbQkAor0JTQoNCe0JHQitCQ0Jog0JXQktCY0KbQkAor0JTQoNCe0JHQitCQ0Jog0InQmNCJ0JDQndCQCivQlNCg0J7QkdCK0JDQmiDQnNCY0JvQmNCS0J7QiNCVCivQlNCg0J7QkdCK0JDQmiDQnNCY0J7QlNCg0JDQkwor0JTQoNCe0JHQitCQ0Jog0JzQntCc0KfQmNCb0J4KK9CU0KDQntCR0IrQkNCaINCg0JDQlNCY0KjQkAor0JTQoNCe0JHQitCQ0Jog0KDQkNCU0J7QiNCY0KbQkAor0JTQoNCe0JHQitCQ0Jog0KDQkNCU0J7QiNCY0KbQkAor0JTQoNCe0JHQitCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQlNCg0J7QkdCK0JDQmtCe0JLQmNCLINCT0JLQntCX0JTQldCdCivQlNCg0J7QkdCK0JDQmtCe0JLQmNCLINCg0JjQodCi0JjQktCe0IjQlQor0JTQoNCe0JHQitCY0Jog0IjQntCh0JjQnwor0JTQoNCe0JHQitCY0Jog0IjQo9CU0JjQogor0JTQoNCe0IrQkNCaINCW0JjQktCQ0J3QkAor0JTQoNCe0IrQkNCaINCW0JjQktCa0J4KK9CU0KDQntCK0JDQmiDQgtCe0KDQgtCVCivQlNCg0J7QitCQ0Jog0JTQkNCg0JjQndCa0JAKK9CU0KDQntCK0JDQmiDQnNCY0JvQkNCdCivQlNCg0J7QitCQ0Jog0JzQmNCg0IjQkNCd0JAKK9CU0KDQntCK0JDQmiDQntCb0JPQkAor0JTQoNCe0IrQkNCaINCg0JDQodCi0JrQngor0JTQoNCe0IrQkNCaINCh0JDQktCY0J3QmtCQCivQlNCg0J7QitCQ0Jog0KHQotCV0JLQkNCdCivQlNCg0J7Qn9Ca0JAg0JDQoNCf0JDQlAor0JTQoNCe0J/QmtCQINCI0JXQm9CV0J3QkAor0JTQoNCe0J/QmtCQINCd0JDQotCQ0KjQkAor0JTQoNCe0J/QmtCQINCh0KLQldCS0JDQnQor0JTQoNCe0J/QniDQnNCY0JvQmtCQCivQlNCg0J7Qn9CeINCS0JDQodCQCivQlNCg0J7Qn9CeINCX0J7QoNCQ0J0KK9CU0KDQntCX0JTQmNCaINCY0JvQntCd0JAKK9CU0KDQntCX0JTQmNCaINCc0JDQoNCY0IjQkAor0JTQoNCj0JbQldCi0JjQiyDQltCY0JrQkAor0JTQoNCj0JPQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CU0KDQo9CT0J7QktCY0Isg0KDQo9CW0JjQptCQCivQlNCg0JLQldCd0I/QmNCI0JAg0KDQkNCU0J7QktCQ0J0KK9CU0KDQktCV0J3Qj9CY0IjQkCDQodCb0JDQktCa0J4KK9CU0KDQktCV0IrQkNCaINCS0JXQoNCY0KbQkAor0JTQo9Cn0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JTQo9Cn0JjQiyDQnNCY0JvQkNCdCivQlNCj0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQqNCQ0J3QmNCLINCU0KDQkNCT0JDQnQor0JTQo9Co0JDQndCY0Isg0JvQkNCX0JDQoAor0JTQo9Co0JDQndCY0Isg0InQo9CR0JjQptCQCivQlNCj0KjQkNCd0JjQiyDQndCQ0JTQkAor0JTQo9Co0JDQndCY0Isg0J3QldCd0JDQlAor0JTQo9Co0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQlNCj0KjQkNCd0J7QktCY0Isg0JfQktCV0JfQlNCQ0J3QkAor0JTQo9Co0JXQmiDQl9Cb0JDQotCa0J4g0JTQmNCf0Jsg0J7QldCmCivQlNCj0KjQmNCLINCR0KDQkNCd0JrQngor0JTQo9Co0JjQiyDQl9Ce0KDQkNCdCivQlNCj0IvQkNCaINCQ0J3QlNCg0JjQiNCQCivQlNCj0IvQkNCaINCQ0KDQkNCd0JrQkAor0JTQo9CL0JDQmiDQkdCQ0KDQkdCQ0KDQkAor0JTQo9CL0JDQmiDQnNCY0KXQkNCI0JvQngor0JTQo9CL0JDQmiDQotCe0JzQkAor0JTQo9CC0JDQmiDQlNCg0JDQk9Cj0KLQmNCdCivQlNCj0ILQmNCaINCk0KDQkNCK0JAKK9CU0KPQkdCQ0JjQiyDQkdCe0JbQmNCU0JDQoAor0JTQo9CR0JDQmNCLINCc0JjQm9CQ0J0KK9CU0KPQkdCQ0JjQiyDQnNCY0KDQmtCeCivQlNCj0JHQkNCI0JjQiyDQltCQ0KDQmtCeCivQlNCj0JHQkNCI0JjQiyDQgtCj0KDQkAor0JTQo9CR0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KPQkdCQ0IjQmNCLINCR0JjQidCQ0J3QkAor0JTQo9CR0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0JHQkNCI0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQkdCQ0IjQmNCLINCc0JjQm9Ce0KgKK9CU0KPQkdCQ0IjQmNCLINCc0JjQoNCa0J4KK9CU0KPQkdCQ0IjQmNCLINCS0JjQlNCQCivQlNCj0JHQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQkdCJ0JXQktCY0Isg0KHQotCe0IjQkNCdCivQlNCj0JHQidCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KPQkdCJ0JXQktCY0Isg0JfQm9CQ0KLQkAor0JTQo9CR0IrQkNCa0J7QktCY0Isg0JzQkNCg0KLQkAor0JTQo9CR0J7QktCh0JrQkCDQnNCY0JvQntCi0JAKK9CU0KPQkdCe0JLQodCa0Jgg0IjQkNCd0JrQngor0JTQo9CR0J7QktCh0JrQmCDQmtCQ0KLQmNCm0JAKK9CU0KPQkdCg0JDQktCQ0KYg0JTQo9Co0JDQnQor0JTQo9CR0KDQntCI0JAg0JTQkNCd0JjQptCQCivQlNCj0JHQoNCe0IjQkCDQodCb0J7QkdCe0JTQkNCdCivQlNCj0KbQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JTQo9Cm0JjQiyDQnNCY0JvQkNCdCivQlNCj0JTQkCDQn9CQ0JLQm9CVCivQlNCj0JTQkNCoINCC0KPQoNCQCivQlNCj0JTQkNCoINCC0KPQoNCQCivQlNCj0JTQkNCoINCC0KPQoNCQCivQlNCj0JTQkNCoINCQ0J3QkAor0JTQo9CU0JDQqCDQkNCd0KLQkNCbCivQlNCj0JTQkNCoINCQ0KDQn9CQ0JQKK9CU0KPQlNCQ0Kgg0JDQoNCf0JDQlAor0JTQo9CU0JDQqCDQkdCe0KDQmNChCivQlNCj0JTQkNCoINCl0JXQm9CV0J3QkAor0JTQo9CU0JDQqCDQiNCQ0J3QntCoCivQlNCj0JTQkNCoINCI0KPQm9CY0IjQkNCdCivQlNCj0JTQkNCoINCb0JDQl9CQ0KAKK9CU0KPQlNCQ0Kgg0JzQkNCg0JjQndCa0J4KK9CU0KPQlNCQ0Kgg0JzQmNCl0JDQiQor0JTQo9CU0JDQqCDQn9CY0KDQntCo0JrQkAor0JTQo9CU0JDQqCDQoNCe0JzQkNCdCivQlNCj0JTQkNCoINCh0JvQkNCS0J7QnNCY0KAKK9CU0KPQlNCQ0Jog0IjQkNCg0J7QodCb0JDQkgor0JTQo9CU0JDQmiDQnNCQ0KDQmNCI0JAKK9CU0KPQlNCQ0Jog0KHQotCV0JLQkNCdCivQlNCj0JTQkNCdINCc0JjQm9CY0JLQntCICivQlNCj0JTQkNCgINCd0JjQmtCe0JvQkAor0JTQo9CU0JDQoNCY0J0g0JbQkNCg0JrQngor0JTQo9CU0JDQoNCY0J0g0JTQoNCQ0JPQkNCdCivQlNCj0JTQkNCg0JjQnSDQodCQ0JLQkAor0JTQo9CU0JDQoNCY0J0g0KHQotCV0JLQkNCdCivQlNCj0JTQkNCg0JjQnSDQodCi0JXQktCQ0J0KK9CU0KPQlNCQ0KDQmNCdINCS0JXQodCV0JvQmNCdCivQlNCj0JTQkNCg0JjQnSDQl9Ce0KDQkNCdCivQlNCj0JTQkNCg0JjQnSDQl9Ce0KDQkNCdCivQlNCj0JTQmNCLINCQ0J3QmNCm0JAKK9CU0KPQlNCY0Isg0JrQntCh0KLQkAor0JTQo9CU0JjQiyDQmtCe0KHQotCQCivQlNCj0JTQmNCLINCc0JDQotCVCivQlNCj0JTQmNCLINCc0JjQm9CQCivQlNCj0JTQmNCLINCc0JjQm9CVCivQlNCj0JTQmNCLINCc0JjQm9Ce0KgKK9CU0KPQlNCY0Isg0JzQmNCb0J7QqAor0JTQo9CU0JjQiyDQndCQ0JTQkAor0JTQo9CU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQlNCj0JTQmNCLINCS0JDQodCQCivQlNCj0JTQmNCLINCS0JDQodCQCivQlNCj0JTQmNCLINCS0JXQoNCY0KbQkAor0JTQo9CU0JjQiyDQl9Ce0KDQkNCdCivQlNCj0JTQntCI0JXQktCY0Isg0J3QldCP0JDQlAor0JTQo9CU0J7QmiDQlNCQ0J3QmNCV0Jsg0JTQoAor0JTQo9CU0J7QmiDQiNCQ0J3QmtCeCivQlNCj0JTQntCaINCf0JDQktCV0JsKK9CU0KPQlNCj0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9CU0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQlNCj0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0KPQlNCS0JDQoNCh0JrQmCDQkdCe0JbQmNCU0JDQoAor0JTQo9CU0JLQkNCg0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9CU0KPQlNCS0JDQoNCh0JrQmCDQmNCS0JDQnQor0JTQo9CU0JLQkNCg0KHQmtCYINCf0JDQiNCQCivQlNCj0JTQktCQ0KDQodCa0Jgg0JLQldCb0JjQndCa0JAKK9CU0KPQk9CQ0IjQm9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CU0KPQk9CQ0IjQm9CY0Isg0JDQoNCI0JDQndCQCivQlNCj0JPQkNCI0JvQmNCLINCc0JjQm9Ce0KgKK9CU0KPQk9CQ0IjQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KPQk9CQ0JvQmNCLINCU0KDQkNCT0JDQnQor0JTQo9CT0JDQndCP0JjQiNCQINCR0KDQkNCd0JrQngor0JTQo9CT0JDQndCP0JjQiNCQINCU0KDQkNCT0J7QnNCY0KAKK9CU0KPQk9CQ0J3Qj9CY0IjQkCDQlNCj0KjQkNCdCivQlNCj0JPQkNCd0I/QmNCI0JAg0J3QldCU0JXQidCa0J4KK9CU0KPQk9CY0J0g0KHQotCe0IjQkNCdCivQlNCj0JPQntCo0JjQiNCQINCW0JjQktCa0J4KK9CU0KPQk9Ce0KjQmNCI0JAt0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QkNCU0JAKK9CU0KPQk9Ce0IrQmNCLINCc0JjQm9CVCivQlNCj0JPQntCK0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JTQo9CT0J7QitCY0Isg0J3QmNCa0J7Qm9CQCivQlNCj0JPQntCK0JjQiyDQodCS0JXQotCe0JzQmNCgCivQlNCj0KUg0JrQkNCi0JDQoNCY0J3QkAor0JTQo9Cl0JDQp9CV0Jog0JLQm9CQ0JTQngor0JTQo9CY0Isg0IjQntCh0JjQnwor0JTQo9CI0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JTQo9CI0JDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQo9CI0JDQmtCe0JLQmNCLINCd0J7QktCQCivQlNCj0IjQkNCa0J7QktCY0Isg0JLQldCJ0JrQngor0JTQo9CI0JXQktCh0JrQmCDQktCQ0J3Qk9CV0Jsg0JTQoAor0JTQo9CI0JjQiyDQgtCe0KDQgtCVCivQlNCj0IjQmNCLINCY0JLQkNCdCivQlNCj0IjQmNCLINCY0JLQmNCm0JAKK9CU0KPQiNCY0Isg0InQo9CR0JjQptCQCivQlNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0IjQmNCLINCh0JzQmNCJ0JAKK9CU0KPQiNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JTQo9CI0JjQnSDQltCY0JLQkAor0JTQo9CI0JjQnSDQltCY0JLQmtCeCivQlNCj0IjQmNCdINCU0JDQndCY0KbQkAor0JTQo9CI0JjQnSDQm9Cj0JrQkAor0JTQo9CI0JjQnSDQodCY0JzQldCe0J0KK9CU0KPQiNCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQlNCj0IjQmNCdINCi0JXQntCU0J7QoAor0JTQo9CI0JjQnSDQktCY0KLQntCc0JjQoAor0JTQo9CI0JrQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JTQo9CI0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0KPQiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JTQo9CI0JrQntCS0JjQiyDQotCV0J7QlNCe0KAKK9CU0KPQiNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQo9CI0JvQntCS0JjQiyDQkdCe0KDQkAor0JTQo9CI0JzQmNCLINCQ0J3QotCVCivQlNCj0IjQnNCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JTQo9CI0JzQntCS0JjQiyDQldCS0JAKK9CU0KPQiNCc0J7QktCY0Isg0KTQldCg0JXQndCmCivQlNCj0IjQnNCe0JLQmNCLINCI0J7QodCY0J8KK9CU0KPQiNCe0JLQmNCLINCY0JvQmNCI0JAKK9CU0KPQiNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCj0IjQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQo9Ca0JAg0JzQmNCg0J7QodCb0JDQkgor0JTQo9Ca0JDQmCDQkNCd0JTQoNCQ0KgKK9CU0KPQmtCQ0J0g0J3QkNCi0JDQqNCQCivQlNCj0JrQkNCg0JjQiyDQktCY0JTQkAor0JTQo9Ca0JXQoSDQpNCe0KHQmtCQCivQlNCj0JrQmNCLINCC0KPQoNCeCivQlNCj0JrQmNCLINCR0J7QoNCQCivQlNCj0JrQmNCLINCU0JDQndCY0JvQngor0JTQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0KPQmtCY0Isg0JTQo9Co0JDQnQor0JTQo9Ca0JjQiyDQmNCS0JDQndCa0JAKK9CU0KPQmtCY0Isg0IjQldCb0JXQndCQCivQlNCj0JrQmNCLINCI0J7QktCQ0J0KK9CU0KPQmtCY0Isg0IjQntCS0JDQnQor0JTQo9Ca0JjQiyDQmtCe0KHQkAor0JTQo9Ca0JjQiyDQidCj0JHQmNCm0JAKK9CU0KPQmtCY0Isg0JzQmNCb0JDQnQor0JTQo9Ca0JjQiyDQnNCY0JvQkNCdCivQlNCj0JrQmNCLINCc0JjQm9CQ0J0KK9CU0KPQmtCY0Isg0JzQmNCb0JjQptCQCivQlNCj0JrQmNCLINCc0JjQm9CY0KbQkAor0JTQo9Ca0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQo9Ca0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQo9Ca0JjQiyDQoNCQ0JTQlQor0JTQo9Ca0JjQiyDQoNCQ0JTQlQor0JTQo9Ca0JjQiyDQoNCQ0IjQmtCeCivQlNCj0JrQmNCLINCh0JvQkNCS0JjQptCQCivQlNCj0JrQmNCLINCh0J7QpNCY0IjQkAor0JTQo9Ca0JjQiyDQodCi0JXQktCeINCU0JjQn9CbINCY0J3Qkwor0JTQo9Ca0JjQiyDQktCj0JrQkNCo0JjQnSDQlNCgCivQlNCj0JrQmNCLINCX0J7QoNCQ0J0KK9CU0KPQmtCe0JLQkCDQm9CY0JvQmAor0JTQo9Ca0J7QktCh0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0KPQm9CV0IjQkNCdINCW0JjQktCQ0JTQmNCd0JrQkAor0JTQo9Cb0JXQiNCQ0J0g0KHQm9CQ0JLQmtCeCivQlNCj0JvQmNCLINCo0JDQndCU0J7QoAor0JTQo9Cb0JjQiyDQkNCd0JrQkAor0JTQo9Cb0JjQiyDQmNCS0JDQnQor0JTQo9Cb0JjQiyDQiNCe0KHQmNCfCivQlNCj0JvQmNCLINCI0J7QodCY0J8KK9CU0KPQm9CY0Isg0InQo9CU0JXQktCY0KIKK9CU0KPQm9CY0Isg0JzQkNCT0JTQkAor0JTQo9Cb0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQo9Cb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCj0JvQmNCLINCd0JjQmtCe0JvQkAor0JTQo9Cb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CU0KPQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQnQor0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCj0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JTQo9Cb0J7QktCY0Isg0JzQmNCb0KPQnQor0JTQo9Cb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KPQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9CU0KPQm9Ce0JLQmNCLINCg0JDQotCa0JAKK9CU0KPQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9CU0KPQnNCQINCc0JjQm9Ce0KDQkNCUCivQlNCj0JzQkNCd0KfQmNCLINCh0JvQkNCS0JjQptCQCivQlNCj0JzQkNCd0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQlNCj0JzQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQlNCj0JzQldCU0JDQqCDQodCf0JDQodCe0IjQlQor0JTQo9Cc0JXQlNCQ0Kgg0JLQkNCh0JjQm9CY0IjQlQor0JTQo9Cc0JXQndCn0JjQiyDQmNCS0JDQnQor0JTQo9Cc0JjQiyDQodCb0JDQktCY0KbQkAor0JTQo9Cc0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCj0JzQmNCi0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCj0JzQmNCi0KDQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQo9Cc0JjQotCg0J7QkiDQm9Cj0JrQkAor0JTQo9Cc0JjQotCg0J7QkiDQnNCQ0KDQmNCI0JAKK9CU0KPQnNCY0KLQoNCe0JIg0JzQmNCe0JTQoNCQ0JMKK9CU0KPQnNCY0KLQoNCe0JIg0J3QldCU0JXQidCa0J4KK9CU0KPQnNCY0KLQoNCe0JIg0KHQm9CQ0JLQmtCeCivQlNCj0JzQmNCi0KDQntCSINCS0JXQoNCY0KbQkAor0JTQo9Cc0JjQotCg0J7QkiDQktCe0IjQmNCdCivQlNCj0JzQndCY0Isg0KjQkNCg0JjQmtCQCivQlNCj0JzQndCY0Isg0JzQmNCb0JDQnQor0JTQo9Cc0J7QndCY0Isg0JHQoNCQ0J3QmtCeCivQlNCj0JzQntCd0JjQiyDQn9CV0KLQkNCgCivQlNCj0J3QgtCV0KAg0KDQkNCU0JUKK9CU0KPQndCC0JXQoCDQoNCQ0JTQlQor0JTQo9Cd0ILQldCg0JjQnSDQgtCe0KDQgtCVCivQlNCj0J3QgtCV0KDQntCSINCa0J7QodCQ0J3QkAor0JTQo9Cd0ILQldCg0J7QkiDQndCQ0JTQkAor0JTQo9Cd0ILQldCg0J7QkiDQn9CY0KDQntCo0JrQkAor0JTQo9Cd0ILQldCg0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KPQndCC0JXQoNCh0JrQmCDQltCY0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0ILQntCg0ILQlQor0JTQo9Cd0ILQldCg0KHQmtCYINCC0J7QoNCC0JUKK9CU0KPQndCC0JXQoNCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9Cd0ILQldCg0KHQmtCYINCQ0J3QkAor0JTQo9Cd0ILQldCg0KHQmtCYINCm0JLQldCi0JDQndCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0JTQoNCQ0JPQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0JjQktCQ0J3QmtCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0JjQktCQ0J0KK9CU0KPQndCC0JXQoNCh0JrQmCDQiNCe0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0JzQkNCg0JjQiNCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0JzQmNCb0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCc0JjQoNCI0JDQndCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0J3QntCS0JDQmgor0JTQo9Cd0ILQldCg0KHQmtCYINCh0JjQnNCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0KHQntCk0JjQiNCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQlNCj0J3QgtCV0KDQodCa0Jgg0KLQmNCl0J7QnNCY0KAKK9CU0KPQndCC0JXQoNCh0JrQmCDQotCg0JjQktCQCivQlNCj0J3QgtCV0KDQodCa0Jgg0JfQlNCg0JDQktCa0J4KK9CU0KPQndCU0JjQiyDQpdCQ0KDQkNCb0JDQnNCf0JjQiNCVCivQlNCj0J3QlNCY0Isg0IjQldCb0JXQndCQCivQlNCj0J3QlNCY0Isg0KHQm9CQ0JLQmtCeCivQlNCj0J3QlNCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQlNCj0J3QmNCLINCU0KDQkNCT0JjQiwor0JTQo9CK0JjQiyDQodCi0J7QiNCQ0J0KK9CU0KPQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9CU0KPQndCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JTQo9Cf0JDQmiDQmNCc0KDQlQor0JTQo9Cf0JDQmiDQnNCQ0KDQmNCI0JAKK9CU0KPQn9CQ0JvQniDQodCb0JDQktCa0JAKK9CU0KPQn9Ce0KAg0JPQntCg0JTQkNCd0JAKK9CU0KPQn9Ce0KAg0JzQmNCb0J7QqAor0JTQo9Cf0J7QoCDQnNCY0KDQmtCeCivQlNCj0J/QntCgINCX0J7QoNCY0KbQkAor0JTQo9Cg0JDQp9Ca0J7QktCY0Isg0JHQkNCl0KDQmNCI0JAKK9CU0KPQoNCQ0KfQmtCe0JLQmNCLINCh0JXQndCY0IjQkAor0JTQo9Cg0JDQmtCe0JLQmNCLINCC0KPQoNCeCivQlNCj0KDQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0KDQkNCa0J7QktCY0Isg0JPQntCI0JrQngor0JTQo9Cg0JDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CU0KPQoNCQ0J0g0JHQoNCQ0J3QmtCeCivQlNCj0KDQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQo9Cg0JPQo9Ci0J7QktCY0Isg0KDQmNCk0JDQlAor0JTQo9Cg0JrQkNCb0JjQiyDQktCY0JrQotCe0KAKK9CU0KPQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KPQoNCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQlNCj0KDQmtCj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCj0KDQmtCj0JvQmNCLINCh0J/QkNCh0J7QiNCVCivQlNCj0KDQm9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQo9Cg0JzQkNCdINCU0KDQkNCT0J7QidCj0JEKK9CU0KPQoNCc0JDQnSDQk9Ce0IjQmtCeCivQlNCj0KDQnNCQ0J0g0J3QkNCU0JAKK9CU0KPQoNCc0JDQnSDQoNCQ0KHQotCY0KHQm9CQ0JIKK9CU0KPQoNCe0KjQmtCQINCo0JDQndCU0J7QoAor0JTQo9Cg0J7QqNCa0JAg0JjQktCQ0J3QmtCQCivQlNCj0KDQntCo0JrQkCDQiNCV0JvQldCd0JAKK9CU0KPQoNCe0KjQmtCQINCc0JjQpdCQ0IjQm9CeCivQlNCj0KDQntCo0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQlNCj0KDQo9Co0JrQkCDQn9CQ0JsKK9CU0KPQoNCj0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQoNCj0KLQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JTQo9Cg0KPQotCe0JLQmNCLINCh0JXQndCa0JAKK9CU0KPQodCY0Isg0JPQntCh0J/QkNCS0JAKK9CU0KPQodCf0JDQoNCQINCc0JjQm9CV0J3QkAor0JTQo9Ch0J/QldCgINCo0JjQnNCeCivQlNCj0KLQmNCd0JAg0JDQndCU0KDQmNCI0JAKK9CU0KPQotCY0J3QkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0KPQotCY0J3QkCDQkdCg0JDQotCe0InQo9CRCivQlNCj0KLQmNCd0JAg0JTQoNCQ0JPQkNCdCivQlNCj0KLQmNCd0JAg0JjQoNCV0J3QkAor0JTQo9Ci0JjQndCQINCc0JjQntCc0JjQoAor0JTQo9Ci0JjQndCQINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQotCY0J3QkCDQktCb0JDQlNCY0JzQmNCgCivQlNCj0JLQitCQ0Jog0JTQmNCS0J3QkAor0JTQo9CS0IrQkNCaINCU0JjQktCd0JAKK9CU0KPQktCK0JDQmiDQmNCS0JjQptCQCivQlNCj0JLQitCQ0Jog0JrQntCh0KLQkAor0JTQo9CS0IrQkNCaINCb0JDQl9CQ0KAKK9CU0KPQktCK0JDQmiDQm9CQ0JfQkNCgCivQlNCj0JLQitCQ0Jog0JzQkNCg0JAKK9CU0KPQktCK0JDQmiDQnNCY0JvQldCd0JrQngor0JTQo9CS0IrQkNCaINCc0JjQm9Ce0KDQkNCUCivQlNCj0JLQitCQ0Jog0J3QldCd0JDQlAor0JTQo9CS0IrQkNCaINCg0JDQlNCe0IjQmtCQCivQlNCj0JLQitCQ0Jog0KHQotCQ0J3QkAor0JTQktCe0KDQkNCn0JrQniDQqNCQ0J3QlNCe0KAKK9CU0JLQntCg0J3QmNCLINCc0JjQoNCI0JDQndCQCivQldCo0JrQmCDQldCg0JbQldCR0JXQogor0JXQqNCa0JjQp9CV0JLQmNCLINCS0JDQodCQCivQldCL0JjQnCDQoNCQ0JTQntCS0JDQnQor0JXQi9CY0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQldCL0JjQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JXQi9CY0JzQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JXQgtCV0JTQmCDQiNCe0JbQldCkCivQldCC0JXQlNCYINCI0KPQm9CY0IjQkNCd0JAKK9CV0JHQldCd0KXQlS3QiNCe0JLQkNCd0J7QktCY0Isg0IjQkNCh0J3QkCDQlNCgCivQldCR0JXQndCl0JUg0J3QmNCa0J7Qm9CQCivQldCR0JXQoNCl0JDQoNCULdCc0JDQoNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CV0JHQldCg0KXQkNCg0KIg0J/QldCi0JDQoAor0JXQkdCV0KDQodCiLdCh0JXQlNCb0JDQp9CV0Jog0JPQkNCR0KDQmNCV0JvQkAor0JXQptCV0KIg0IjQntCS0JDQnQor0JXQptCV0KIg0IjQntCS0JDQnQor0JXQptCV0KIg0JrQkNCi0JDQm9CY0J0KK9CV0KbQldCiINCf0JDQmwor0JXQlNCV0JvQldCK0Jgg0JzQkNCg0JjQiNCQCivQldCU0JXQm9CY0J3QodCa0Jgg0JXQo9CT0JXQnQor0JXQlNCV0JvQmNCd0KHQmtCYINCI0J7QkNCa0JjQnAor0JXQlNCV0JvQmNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0JXQlNCV0JvQmNCd0KHQmtCYINCS0JXQoNCQCivQldCU0JXQm9CY0J3QodCa0Jgg0JLQldCg0JAKK9CV0KTQotCV0JzQmNCI0KMg0J3QmNCa0J7Qm9CQCivQldCT0JXQidCQINCc0JjQm9CY0KbQkAor0JXQk9CV0InQkCDQndCV0JHQntCI0KjQkAor0JXQk9CV0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0JXQk9CY0Isg0KfQldCU0JzQmNCb0JAKK9CV0JPQmNCLINCC0J7QmtCQCivQldCT0JjQiyDQkdCg0JDQptCeCivQldCT0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CV0JPQmNCLINCm0JLQldCi0JDQndCa0JAKK9CV0JPQmNCLINCU0KDQkNCT0JDQnQor0JXQk9CY0Isg0JzQkNCd0JUKK9CV0JPQmNCLINCc0JDQoNCY0IjQkNCdCivQldCT0JjQiyDQnNCY0KbQkAor0JXQk9CY0Isg0JzQmNCb0JDQnQor0JXQk9CY0Isg0JzQmNCb0JDQnQor0JXQk9CY0Isg0J7Qm9CT0JAKK9CV0IjQmNCLINCc0JjQm9CQ0J0KK9CV0JrQldCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQldCa0KXQkNCg0JTQoiDQidCj0JHQmNCm0JAKK9CV0JrQm9CY0Isg0JzQkNCg0IjQkNCdCivQldCa0JzQldCo0KfQmNCLINCc0JjQm9CY0KHQkNCSCivQldCa0JzQldCP0JjQiyDQkNCd0JrQkAor0JXQmtCc0JXQj9CY0Isg0J3QmNCa0J7Qm9CQCivQldCa0KDQldChINCC0J7QoNCC0JUKK9CV0JrQoNCV0KEg0JDQndCU0KDQmNCI0JAKK9CV0JrQoNCV0KEg0IjQkNCd0J7QqAor0JXQmtCg0JXQoSDQiNCj0JvQmNCI0JDQndCQCivQldCa0KDQldChINCc0JjQm9Ca0JAKK9CV0JrQoNCV0KEg0J3QkNCd0JTQntCgCivQldCa0KDQldChINCe0KLQngor0JXQmtCg0JXQoS3QoNCQ0JrQmNCLINCS0JXQoNCY0KbQkAor0JXQmtCg0JXQoSDQoNCe0JfQkNCb0JjQiNCQCivQldCa0KDQldChINCS0JDQm9CV0KDQmNCI0JAKK9CV0JvQldCaINCV0JLQkAor0JXQm9CV0KDQniDQl9CS0JXQl9CU0JDQndCQCivQldCb0JXQodCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQldCb0JXQodCY0J0g0JHQoNCQ0J3QmtCQCivQldCb0JXQodCY0J0g0JTQoNCQ0JPQkAor0JXQm9CV0KHQmNCdINCU0KDQkNCT0J7QidCj0JEKK9CV0JvQldCh0JjQnSDQlNCj0KjQkNCd0JrQkAor0JXQm9CV0KHQmNCdINCT0KDQkNCU0JjQnNCY0KAKK9CV0JvQldCh0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQldCb0JXQodCY0J0g0KHQkNCS0JAKK9CV0JvQldCh0JjQnSDQodCY0J3QmNCo0JAKK9CV0JvQldCh0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQldCb0JXQlyDQgtCe0JrQkAor0JXQm9CV0Jcg0JPQntCg0JDQnQor0JXQm9CV0JfQntCS0JjQiyDQndCY0JrQntCb0JAKK9CV0JvQldCX0J7QktCY0Isg0J/QldCi0JDQoAor0JXQm9Cl0JDQoNCiINCb0JDQl9CQ0KAKK9CV0JvQpdCQ0KDQoiDQm9CQ0JfQkNCgCivQldCb0JjQkNChINCY0KDQldCd0JAKK9CV0JvQmNCI0JDQqCDQiNCQ0J0KK9CV0JvQmNCX0JXQmiDQltCj0JbQkNCd0JAKK9CV0JvQmNCX0JXQmiDQmNCS0JDQnQor0JXQm9Ce0KAg0JjQqNCi0JLQkNCdCivQldCb0J7QoCDQiNCQ0J3QntCoCivQldCb0J7QoCDQidCj0JHQmNCm0JAKK9CV0JvQntCgINCf0JDQktCb0JUKK9CV0JvQntCgINCX0J7QoNCY0KbQkAor0JXQm9Ci0JXQoCDQiNCQ0J3QntCoCivQldCb0KLQldCgINCX0J7Qm9Ci0JDQnQor0JXQnNCV0KAg0IjQkNCa0J7Qkgor0JXQnNCV0KAg0JzQkNCg0JrQngor0JXQnNCY0J3QmCDQkdCQ0IjQoNCQ0JwKK9CV0JzQmNCd0Jgg0JPQkNCd0JgKK9CV0JzQmNCd0Jgg0KDQntCX0JDQm9CY0IjQkAor0JXQndCQ0KXQntCb0J4g0J3QkNCU0JAKK9CV0J3Qk9CV0JvQnNCQ0J0g0JrQkNCi0JjQptCQCivQldCd0JPQldCg0KIg0JzQmNCl0JDQiNCb0J4KK9CV0J3Qk9Cb0JXQoCDQm9CQ0IjQntCoCivQldCf0JjQpNCQ0J3QmNCLINCm0JLQldCi0JDQndCQCivQldCf0JjQpNCQ0J3QmNCLINCU0KPQqNCa0J4KK9CV0KDQp9CYLdCS0JDQoNCT0JAg0JzQkNCg0JjQqNCa0JAKK9CV0KDQp9CY0Isg0JHQntCI0JDQndCQCivQldCg0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQldCg0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQldCg0KjQotCVINCW0JXQidCa0J4KK9CV0KDQkNCaINCR0J7QoNCeCivQldCg0JDQmiDQlNCj0KjQkNCdCivQldCg0JDQmiDQmNCb0JjQiNCQCivQldCg0JDQmiDQm9CQ0JfQkNCgCivQldCg0JDQmiDQnNCQ0KDQmtCeCivQldCg0JDQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JXQoNCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CV0KDQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CV0KDQkNCa0J7QktCY0Isg0JrQoNCY0KHQotCY0JLQntCICivQldCg0JDQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JXQoNCQ0JrQntCS0JjQiyDQidCj0JHQntCI0JUKK9CV0KDQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CV0KDQkNCa0J7QktCY0Isg0JzQmNCi0JDQoAor0JXQoNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0JXQoNCQ0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQldCg0JDQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JXQoNCR0JXQqCDQldCg0JbQldCR0JXQogor0JXQoNCR0JXQltCd0JjQmiDQodCe0IrQkAor0JXQoNCR0JXQoSDQkdCg0JDQndCa0JAKK9CV0KDQkdCV0KEg0JzQkNCg0JPQmNCi0JAKK9CV0KDQkdCV0Jcg0JHQm9CQ0JbQngor0JXQoNCR0JXQlyDQldCg0JbQldCR0JXQogor0JXQoNCm0JXQkyDQqNCf0JjQoNCeCivQldCg0KbQldCTINCW0JDQoNCa0J4KK9CV0KDQptCV0JMg0JbQmNCS0JrQngor0JXQoNCm0JXQkyDQlNCQ0KDQkAor0JXQoNCm0JXQkyDQidCY0InQkNCd0JAKK9CV0KDQptCV0JMg0JzQmNCa0JAKK9CV0KDQptCV0JMg0KDQkNCU0J7QktCQ0J0KK9CV0KDQptCV0JMg0KDQkNCI0JrQngor0JXQoNCm0JXQkyDQoNCQ0IjQmtCeCivQldCg0KbQldCTINCh0JvQntCR0J7QlNCQ0J0KK9CV0KDQptCV0JMg0KHQotCQ0J3QkAor0JXQoNCm0JXQkyDQl9CU0JXQndCa0J4KK9CV0KDQptCV0JMg0JfQlNCg0JDQktCa0J4KK9CV0KDQptCV0JPQkNCdINCT0J7QoNCQ0J0KK9CV0KDQptCV0JPQkNCdINCc0JjQotCQCivQldCg0KbQldCT0J7QktCn0JXQktCY0Isg0JbQmNCS0J7QlNCQ0KAKK9CV0KDQptCV0JPQntCS0KfQldCS0JjQiyDQlNCe0KHQotCQCivQldCg0KbQldCT0J7QktCQ0KYg0JDQndCC0JXQm9Ca0J4KK9CV0KDQptCV0JPQntCS0JDQpiDQkdCg0JDQotCY0KHQm9CQ0JIKK9CV0KDQptCV0JPQntCS0JDQpiDQnNCY0J7QlNCg0JDQkwor0JXQoNCm0JXQk9Ce0JLQkNCmINCc0JjQotCQ0KAKK9CV0KDQptCV0JPQntCS0JDQpiDQndCQ0JTQkAor0JXQoNCm0JXQk9Ce0JLQkNCmINCh0JDQktCQCivQldCg0KbQldCT0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0JXQoNCm0JXQk9Ce0JLQkNCmINCh0KLQldCS0JDQnQor0JXQoNCm0JXQk9Ce0JLQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9CV0KDQptCV0JPQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CV0KDQlNCV0Kgg0JTQkNCd0JjQldCbCivQldCg0JTQldCoINCV0JzQmNCbCivQldCg0JTQldCoINCV0KHQotCV0KAKK9CV0KDQlNCV0Kgg0JXQotCV0JvQmtCQCivQldCg0JTQldCoINCY0JvQntCd0JAKK9CV0KDQlNCV0Kgg0JjQktCQ0J0KK9CV0KDQlNCV0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0JXQoNCU0JXQqCDQmtCb0JDQoNCQCivQldCg0JTQldCoINCb0JDQodCb0J4KK9CV0KDQlNCV0Kgg0J/QkNCbCivQldCg0JTQldCoINCf0JXQotCQ0KAKK9CV0KDQlNCV0KjQmCDQm9CQ0KHQm9CeCivQldCg0JTQldCo0Jgg0JLQkNCb0JXQoNCY0IjQkAor0JXQoNCU0JXQkyDQkNCg0JDQndCa0JAKK9CV0KDQlNCV0JMg0JjQm9Ce0J3QkAor0JXQoNCU0JXQkyDQiNCQ0J3QntCoCivQldCg0JTQldCTINCI0KPQodCi0JjQndCQCivQldCg0JTQldCTINCi0J7QnNCY0KHQm9CQ0JIKK9CV0KDQlNCV0Jgg0KjQkNCd0JTQntCgCivQldCg0JTQldCYINCI0J7QodCY0J8KK9CV0KDQlNCV0Jgg0IjQntCS0JDQnQor0JXQoNCU0JXQmCDQnNCY0KXQkNCI0JvQngor0JXQoNCU0JXQmCDQn9CV0KLQkNCgCivQldCg0JTQldCYINCX0J7Qm9Ci0JDQnQor0JXQoNCU0JXQiSDQkdCg0JDQndCa0J4KK9CV0KDQlNCV0Ikg0JXQnNCY0JsKK9CV0KDQlNCV0Ikg0JPQntCg0JDQnQor0JXQoNCU0JXQiSDQm9Cj0JTQnNCY0JvQkAor0JXQoNCU0JXQiSDQnNCY0JvQo9Ci0JjQnQor0JXQoNCU0JXQidCQ0J0g0JbQmNCS0JrQngor0JXQoNCU0JXQidCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CV0KDQlNCV0InQkNCdINCQ0JvQmtCh0JDQndCU0JDQoAor0JXQoNCU0JXQidCQ0J0g0JHQmNCh0JXQoNCa0JAKK9CV0KDQlNCV0InQkNCdINCR0J7QqNCa0J4KK9CV0KDQlNCV0InQkNCdLdCR0J7Qk9CU0JDQndCe0JIg0KHQm9CQ0JLQmNCm0JAKK9CV0KDQlNCV0InQkNCdINCU0JDQndCY0JvQngor0JXQoNCU0JXQidCQ0J0g0JTQntCR0KDQmNCS0J7QiAor0JXQoNCU0JXQidCQ0J0g0JTQo9Co0JDQndCa0JAKK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J0KK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J0KK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J0KK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J0KK9CV0KDQlNCV0InQkNCdINCI0JXQm9CV0J3QkAor0JXQoNCU0JXQidCQ0J0g0JrQkNCi0JjQptCQCivQldCg0JTQldCJ0JDQnSDQidCj0JHQmNCm0JAKK9CV0KDQlNCV0InQkNCdINCJ0KPQkdCe0JzQmNCgCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQkNCU0JjQnQor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CV0KDQlNCV0InQkNCdINCc0JjQm9CQ0J0KK9CV0KDQlNCV0InQkNCdINCc0JjQm9CV0J3QmtCeCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQmNCS0J7QiAor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9CV0KDQlNCV0InQkNCdINCc0JjQm9Ce0KDQkNCUCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQntCS0JDQnQor0JXQoNCU0JXQidCQ0J0g0JzQmNCg0IjQkNCd0JAKK9CV0KDQlNCV0InQkNCdINCd0JDQlNCV0JbQlNCQCivQldCg0JTQldCJ0JDQnSDQndCY0JrQntCb0JAKK9CV0KDQlNCV0InQkNCdINCf0KDQldCU0KDQkNCTCivQldCg0JTQldCJ0JDQnSDQoNCQ0JTQmNCS0J7QiAor0JXQoNCU0JXQidCQ0J0g0KHQm9CQ0JLQmtCQCivQldCg0JTQldCJ0JDQnSDQodCb0JDQktCa0JAKK9CV0KDQlNCV0InQkNCdINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQldCg0JTQldCJ0JDQnSDQodCg0JXQlNCe0IjQlQor0JXQoNCU0JXQidCQ0J0g0KHQotCV0JLQkNCdCivQldCg0JTQldCJ0JDQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9CV0KDQlNCV0InQkNCdINCi0JjQpdCe0JzQmNCgCivQldCg0JTQldCJ0JDQnSDQktCV0KDQmNCm0JAKK9CV0KDQlNCV0InQkNCdINCS0KPQmtCY0KbQkAor0JXQoNCU0JXQidCQ0J0g0JfQm9CQ0KLQmtCeCivQldCg0JTQldCJ0JDQnSDQl9Ce0KDQkAor0JXQoNCU0JXQidCQ0J3QmNCdINCQ0J3QgtCV0JvQmtCeCivQldCg0JTQldCJ0Jgg0ILQldCg0IIKK9CV0KDQlNCV0InQmCDQkNCd0KLQkNCbCivQldCg0JTQldCJ0Jgg0JHQldCb0JAKK9CV0KDQlNCV0InQmCDQkdCY0KHQldCg0JrQkAor0JXQoNCU0JXQidCYINCR0J7QoNCR0JDQm9CQCivQldCg0JTQldCJ0Jgg0JTQldCW0JUKK9CV0KDQlNCV0InQmCDQlNCg0JDQk9CY0KbQkAor0JXQoNCU0JXQidCYINCk0KDQkNCK0JAKK9CV0KDQlNCV0InQmCDQk9CQ0KjQn9CQ0KAKK9CV0KDQlNCV0InQmCDQmNCo0KLQktCQ0J0KK9CV0KDQlNCV0InQmCDQiNCV0J3QlQor0JXQoNCU0JXQidCYINCI0J7QltCV0KQKK9CV0KDQlNCV0InQmCDQmtCQ0KDQntCJCivQldCg0JTQldCJ0Jgg0JvQkNCI0J7QqAor0JXQoNCU0JXQidCYINCb0JDQodCb0J4g0JTQmNCf0Jsg0JjQndCTCivQldCg0JTQldCJ0Jgg0JzQkNCi0JjQm9CU0JAKK9CV0KDQlNCV0InQmCDQodCe0KTQoNCe0J3QkAor0JXQoNCU0JXQidCYINCh0KLQldCS0JDQnQor0JXQoNCU0JXQidCYINCi0JjQkdCe0KAKK9CV0KDQlNCV0JLQmNCaINCc0JDQoNCQCivQldCg0JTQldCS0JjQmiDQnNCQ0KDQmNCI0JAKK9CV0KDQlNCV0JLQmNCaINCh0JvQntCR0J7QlNCQ0J0KK9CV0KDQlNCV0JLQmNCaINCS0J7QiNCY0KHQm9CQ0JIKK9CV0KDQlNCV0JLQmNCaINCS0KPQmtCY0KbQkAor0JXQoNCU0JXQktCY0Jog0JfQlNCg0JDQktCa0J4KK9CV0KDQldCoINCo0JDQndCU0J7QoAor0JXQoNCV0Kgg0JvQkNCh0JvQngor0JXQoNCV0ILQmNCdINCS0KPQmtCQ0KjQmNCdCivQldCg0JXQkyDQm9CQ0IjQntCoCivQldCg0JXQnNCY0Isg0IjQldCb0JjQptCQCivQldCg0JXQnNCY0Isg0IjQntCS0JDQnQor0JXQoNCV0JzQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9CV0KDQldCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0JXQoNCV0JzQmNCLINCh0JDQktCQCivQldCg0JXQnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CV0KDQldCc0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JXQoNCV0JzQmNCLINCi0JjQpdCe0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JXQoNCV0JzQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JXQoNCV0JzQmNCI0JAg0JzQmNCb0JDQnQor0JXQoNCV0JzQmNCI0JAg0KHQotCQ0J3QmtCeCivQldCg0JXQnNCY0J0g0J3QmNCa0J7Qm9CQCivQldCg0JXQndCi0JAg0InQo9CR0JjQptCQCivQldCg0JMg0J7Qm9CT0JAKK9CV0KDQk9CV0JvQkNCo0JXQkiDQlNCj0JHQoNCQ0JLQmtCQCivQldCg0JPQldCb0JDQqNCV0JIg0JjQktCQ0J0KK9CV0KDQk9CV0JvQkNCo0JXQkiDQiNCe0JLQkNCdCivQldCg0JPQldCb0JDQqNCV0JIg0JzQmNCb0JDQnQor0JXQoNCT0JXQm9CQ0KjQldCSINCc0JjQm9Ce0KgKK9CV0KDQk9CV0JvQkNCo0JXQkiDQnNCe0JzQp9CY0JvQngor0JXQoNCT0JXQm9CQ0KjQldCSINCd0JXQodCi0J7QoAor0JXQoNCT0JXQm9CQ0KjQldCSINCh0JzQmNCJ0JrQkAor0JXQoNCT0JXQm9CQ0KjQldCSINCi0JjQpdCe0JzQmNCgCivQldCg0JPQldCb0JDQqNCV0JIg0JfQntCg0JrQkAor0JXQoNCl0JDQoNCi0JjQpyDQkNCd0JAKK9CV0KDQpdCQ0KDQotCY0Kcg0KDQo9CU0J7Qm9CkCivQldCg0Jgg0JjQm9Ce0J3QkAor0JXQoNCYINCI0JDQndCe0KgKK9CV0KDQmCDQiNCe0JLQkNCdCivQldCg0JjQiyDQgtCj0JvQmNCd0JrQkAor0JXQoNCY0Isg0JHQntCW0JjQnQor0JXQoNCY0Isg0InQmNCJ0JDQndCQCivQldCg0JjQiyDQnNCQ0KDQmtCeCivQldCg0JjQiyDQnNCY0JvQntCc0JjQoAor0JXQoNCY0Isg0J3QldCR0J7QiNCo0JAKK9CV0KDQmNCLINCf0JXQoNCeCivQldCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JXQoNCY0Isg0KHQktCV0KLQntCc0JjQoAor0JXQoNCY0Isg0JfQntCg0JjQptCQCivQldCg0JrQmNCLINCC0J7QoNCC0JUKK9CV0KDQmtCY0Isg0J/QldCi0JDQoAor0JXQoNCb0JDQo9CV0KAg0JjQktCQ0J0KK9CV0KDQm9CQ0KPQldCgINCI0J7QodCY0J8KK9CV0KDQm9CV0KAg0JLQldCg0J7QndCQCivQldCg0J3QldCh0KIg0KTQoNCQ0IrQkAor0JXQoNCe0KAg0IjQntCS0JDQnQor0JXQoNCe0KAg0J/QldCi0JDQoAor0JXQoNCe0KAg0KHQotCV0JLQkNCdCivQldCg0KHQmtCYINCf0JXQotCQ0KAKK9CV0KDQodCa0Jgt0J/QldCi0JrQntCS0JjQiyDQodCe0IrQkAor0JXQoNCi0Jsg0KTQldCg0JXQndCmCivQldCg0KLQmyDQpdCV0JTQktCY0JPQkAor0JXQoNCi0Jsg0JvQkNCh0JvQngor0JXQoNCi0Jsg0JLQm9CQ0KHQotCQCivQldChINCa0JvQkNCg0JAKK9CV0KHQlSDQqNCQ0J3QlNCe0KAKK9CV0KHQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0JXQodCi0JXQoCDQiNCe0KHQmNCfCivQldCh0KLQldCgINCc0JDQoNCY0IjQkCDQlNCgCivQldCh0KLQldCgINCc0JDQoNCi0JAKK9CV0KLQqNCR0JXQoNCT0JXQoCDQiNCQ0JrQntCRCivQldCi0JXQoCDQntCi0J4KK9CV0KLQldCg0J7QktCY0Isg0JLQldCg0JAKK9CV0KLQmNCd0KHQmtCYINCW0JjQktCQ0J0KK9CV0KLQmNCd0KHQmtCYINCW0JjQktCe0IjQmNCdCivQldCi0JjQndCh0JrQmCDQgtCe0KDQgtCVCivQldCi0JjQndCh0JrQmCDQlNCg0JDQk9CY0IsKK9CV0KLQmNCd0KHQmtCYINCU0KDQkNCT0JjQiwor0JXQotCY0J3QodCa0Jgg0IjQntCS0JDQnQor0JXQotCY0J3QodCa0Jgg0InQo9CR0JjQqNCQCivQldCi0JjQndCh0JrQmCDQnNCY0KXQkNCI0JvQngor0JXQotCY0J3QodCa0Jgg0JzQmNCb0J7QqAor0JXQotCY0J3QodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9CV0KLQmNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQldCi0JjQndCh0JrQmCDQnNCY0JvQntCS0JDQnQor0JXQotCY0J3QodCa0Jgg0J3QkNCU0JAKK9CV0KLQmNCd0KHQmtCYINCf0JXQotCQ0KAKK9CV0KLQmNCd0KHQmtCYINCg0JDQlNCe0JLQkNCdCivQldCi0JjQndCh0JrQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JXQotCY0J3QodCa0Jgg0JLQldCJ0JrQngor0JXQotCY0J3QodCa0Jgg0JLQldCg0JAKK9CV0KLQmNCd0KHQmtCYINCS0JXQoNCY0KbQkAor0JXQotCe0KDQlSDQgtCY0J3QkAor0JXQktCC0JjQiyDQodCi0JDQndCa0JAKK9CV0JLQldCi0J7QktCY0Isg0JHQm9CQ0KjQmtCeCivQldCS0JXQotCe0JLQmNCLINCI0J7QodCY0J8KK9CV0JLQldCi0J7QktCY0Isg0IjQntCS0JDQnQor0JXQktCV0KLQntCS0JjQiyDQiNCe0JLQkNCdCivQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQldCS0JjQiyDQiNCe0JLQkNCdCivQldCS0JjQiyDQm9CQ0JfQkNCgCivQldCS0JjQiyDQm9CQ0JfQkNCgCivQldCS0JjQiyDQn9CV0KLQkNCgCivQldCS0JjQiyDQodCQ0JLQkAor0KTQkCDQnNCV0JvQkNCd0JjQiNCQCivQpNCQINCc0JjQm9Ca0JAKK9Ck0JDQp9CQ0KAg0KHQotCV0JLQkNCdCivQpNCQ0KfQmtCeINCI0J7QltCV0KQKK9Ck0JDQp9Ca0J4g0KHQmNCc0JAKK9Ck0JDQkdCY0JDQnSDQkdCe0KDQkdCQ0JvQkAor0KTQkNCR0JjQkNCdINCY0KjQotCS0JDQnQor0KTQkNCR0JjQkNCdINCI0JDQndCe0KgKK9Ck0JDQkdCY0IjQkNCdINCo0JDQndCU0J7QoAor0KTQkNCR0JjQiNCQ0J0g0JDQndCQCivQpNCQ0JHQmNCI0JDQnSDQmNCb0J7QndCQCivQpNCQ0JHQmNCI0JDQnSDQmNCc0KDQlQor0KTQkNCR0JjQiNCQ0J0g0JjQktCQ0J0KK9Ck0JDQkdCY0IjQkNCdINCI0JDQndCe0KgKK9Ck0JDQkdCY0IjQkNCdINCb0JDQodCb0J4KK9Ck0JDQkdCY0IjQkNCdINCd0JjQmtCe0JvQkAor0KTQkNCR0JjQiNCQ0J0g0KHQotCV0JLQkNCdCivQpNCQ0JHQmNCI0JDQnSDQodCi0JXQktCQ0J0KK9Ck0JDQkdCY0IjQkNCd0KfQmNCLINCY0JLQkNCdCivQpNCQ0JHQmNCI0JDQndCn0JjQiyDQodCi0IjQldCf0JDQnQor0KTQkNCR0JjQiNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0KTQkNCR0JjQiNCQ0J3QntCS0JjQiyDQkNCd0JAKK9Ck0JDQkdCg0Jgg0JzQmNCa0JvQntCoCivQpNCQ0JHQoNCYINCd0JDQndCU0J7QoAor0KTQkNCR0KDQmCDQodCi0IjQldCf0JDQnQor0KTQkNCR0KDQmCDQl9CS0J7QndCa0J4KK9Ck0JDQkdCg0JjQmiDQmtCQ0KLQkNCb0JjQnQor0KTQkNCm0JjQoSDQn9CQ0J3QotCQCivQpNCQ0JjQnSDQkNCd0JAKK9Ck0JDQmNCdINCb0JDQiNCe0KgKK9Ck0JDQmNCdINCh0KLQldCS0JDQnQor0KTQkNCIINCT0JDQkdCe0KAKK9Ck0JDQiNCU0JXQotCY0Isg0InQo9CR0JjQptCQCivQpNCQ0IjQlNCY0JPQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQkNCI0KTQldCgINCf0JXQotCQ0KAKK9Ck0JDQiNCT0JXQiSDQmNCS0JDQnQor0KTQkNCI0KXQndCV0KAg0KXQldCd0KDQmNCaCivQpNCQ0IjQpdCi0J3QldCgINCI0J7QodCY0J8KK9Ck0JDQiNCl0KLQndCV0KAg0KDQo9CW0JAKK9Ck0JDQiNCY0J0g0JjQqNCi0JLQkNCdCivQpNCQ0IjQmtCQINCU0JDQndCY0KbQkAor0KTQkNCI0JrQkCDQndCQ0JTQkAor0KTQkNCI0JrQkCDQn9CQ0JLQm9CVCivQpNCQ0IjQndCY0Jog0JzQkNCg0JjQiNCQCivQpNCQ0IjQoi3Qk9Cg0JDQndCV0KAg0KDQntCW0JAKK9Ck0JDQiNCiINCI0JXQm9CY0KbQkAor0KTQkNCI0KLQndCV0KAg0JLQldCg0J7QndCY0JrQkAor0KTQkNCa0JjQnSDQpNCg0JDQitCQCivQpNCQ0JrQmNCdINCY0JLQkNCdCivQpNCQ0JrQmNCdINCX0JLQntCd0JjQnNCY0KAKK9Ck0JDQm9CRINCC0J7QoNCC0JUKK9Ck0JDQm9CRINCR0J7QodCY0InQmtCQCivQpNCQ0JvQkSDQiNCe0KHQmNCfCivQpNCQ0JvQkSDQmtCQ0KDQntCJCivQpNCQ0JvQkSDQmtCQ0KDQntCJCivQpNCQ0JvQkSDQnNCQ0KDQmNCd0JAKK9Ck0JDQm9CRINCc0JDQotCY0IjQkAor0KTQkNCb0JEg0J7QotCeCivQpNCQ0JvQkSDQl9Ce0JvQotCQ0J0KK9Ck0JDQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Ck0JDQnNCY0JvQmNCLINCY0JLQkNCdCivQpNCQ0J3Qp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCQ0J3Qp9CV0JLQmNCLINCI0J7QodCY0J8KK9Ck0JDQndCn0JXQktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Ck0JDQndCn0JXQktCY0Isg0InQo9CU0JXQktCY0KIKK9Ck0JDQndCn0JXQktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0KTQkNCd0JrQkCDQlNCj0KjQkNCdCivQpNCQ0J3QmtCQINCc0JDQoNCQCivQpNCQ0KDQkNCT0J4g0KjQkNCd0JTQntCgCivQpNCQ0KDQkNCT0J4g0KjQkNCd0JTQntCgCivQpNCQ0KDQkNCT0J4g0JDQoNCQ0J3QmtCQCivQpNCQ0KDQkNCT0J4g0JDQoNCf0JDQlAor0KTQkNCg0JDQk9CeINCk0KDQkNCK0JAKK9Ck0JDQoNCQ0JPQniDQiNCe0JbQldCkCivQpNCQ0KDQkNCT0J4g0IjQntCh0JjQnwor0KTQkNCg0JDQk9CeINCa0JDQoNCb0J4KK9Ck0JDQoNCQ0JPQniDQm9CQ0KHQm9CeCivQpNCQ0KDQkNCT0J4g0JzQkNCg0JjQiNCQCivQpNCQ0KDQmiDQkNCc0JDQm9CY0IjQkAor0KTQkNCg0Jog0JHQldCQ0KLQkAor0KTQkNCg0JrQkNCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCQ0KDQmtCQ0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JDQoNCa0JDQqCDQkdCe0JbQldCd0JAKK9Ck0JDQoNCa0JDQqCDQlNCg0JDQk9Cj0KLQmNCdCivQpNCQ0KDQmtCQ0Kgg0JXQm9CV0JzQldCgCivQpNCQ0KDQmtCQ0Kgg0JXQm9CY0JfQkNCR0JXQotCQCivQpNCQ0KDQmtCQ0Kgg0JXQm9CX0JAKK9Ck0JDQoNCa0JDQqCDQldCh0KLQldCgCivQpNCQ0KDQmtCQ0Kgg0JXQodCi0JXQoAor0KTQkNCg0JrQkNCoINCk0JXQoNCV0J3Qpgor0KTQkNCg0JrQkNCoINCk0JXQoNCV0J3Qpgor0KTQkNCg0JrQkNCoINCk0JXQoNCV0J3Qpgor0KTQkNCg0JrQkNCoINCk0JXQoNCV0J3Qpgor0KTQkNCg0JrQkNCoINCk0KDQkNCK0JAKK9Ck0JDQoNCa0JDQqCDQk9CQ0JHQntCgCivQpNCQ0KDQmtCQ0Kgg0JjQqNCi0JLQkNCdCivQpNCQ0KDQmtCQ0Kgg0JjQqNCi0JLQkNCdCivQpNCQ0KDQmtCQ0Kgg0JjQm9Ce0J3QkAor0KTQkNCg0JrQkNCoINCY0JvQntCd0JrQkAor0KTQkNCg0JrQkNCoINCY0JzQoNCVCivQpNCQ0KDQmtCQ0Kgg0IjQkNCdCivQpNCQ0KDQmtCQ0Kgg0IjQkNCg0J7QodCb0JDQkgor0KTQkNCg0JrQkNCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpNCQ0KDQmtCQ0Kgg0IjQntCW0JXQpAor0KTQkNCg0JrQkNCoINCI0J7QltCV0KQKK9Ck0JDQoNCa0JDQqCDQiNCe0JbQldCkCivQpNCQ0KDQmtCQ0Kgg0IjQntCW0JXQpAor0KTQkNCg0JrQkNCoINCI0J7QodCY0J8KK9Ck0JDQoNCa0JDQqCDQiNCe0KHQmNCfCivQpNCQ0KDQmtCQ0Kgg0IjQntCS0JDQnQor0KTQkNCg0JrQkNCoINCI0J7QktCT0JXQnQor0KTQkNCg0JrQkNCoINCI0KPQlNCY0KLQkAor0KTQkNCg0JrQkNCoINCa0JDQoNCb0J4KK9Ck0JDQoNCa0JDQqCDQmtCQ0KLQkNCb0JjQnQor0KTQkNCg0JrQkNCoINCa0JvQkNCg0JAKK9Ck0JDQoNCa0JDQqCDQm9CQ0JTQmNCh0JvQkNCSCivQpNCQ0KDQmtCQ0Kgg0JvQkNCI0J7QqAor0KTQkNCg0JrQkNCoINCb0JDQodCb0J4KK9Ck0JDQoNCa0JDQqCDQnNCQ0KDQmNCI0JAKK9Ck0JDQoNCa0JDQqCDQnNCQ0KLQmNCb0JTQkAor0KTQkNCg0JrQkNCoINCc0JjQpdCQ0IkKK9Ck0JDQoNCa0JDQqCDQndCQ0JTQkAor0KTQkNCg0JrQkNCoINCf0JDQmwor0KTQkNCg0JrQkNCoINCf0JDQktCb0JUKK9Ck0JDQoNCa0JDQqCDQoNCe0JfQkNCb0JjQiNCQCivQpNCQ0KDQmtCQ0Kgg0KHQotCV0JLQkNCdCivQpNCQ0KDQmtCQ0Kgt0KLQntCiINCS0JjQmtCi0J7QoNCY0IjQkAor0KTQkNCg0JrQkNCoINCS0JXQoNCQCivQpNCQ0KDQmtCQ0Kgg0JLQldCg0JjQptCQCivQpNCQ0KDQmtCY0Isg0JzQmNCb0JDQnQor0KTQkNCg0JrQntCSINCI0J7QktCQ0J3QmtCQCivQpNCQ0KIg0IjQntCh0JjQnwor0KTQkNCiINCb0JDQodCb0J4KK9Ck0JDQoiDQnNCY0KXQkNCbCivQpNCQ0KLQmNCLINCc0JDQoNCQCivQpNCQ0KLQo9Cg0J7QktCY0Isg0KDQkNCI0JrQngor0KTQkNCj0JrQntCS0JjQiyDQndCQ0JTQkAor0KTQkNCX0JXQmtCQ0Kgg0JDQndCi0JDQmwor0KTQkNCX0JXQmtCQ0Kgg0IjQkNCd0J7QqAor0KTQkNCX0JXQmtCQ0Kgg0JrQkNCi0JDQm9CY0J0KK9Ck0JDQl9CV0JrQkNCoINCi0JjQkdCe0KAKK9Ck0JDQl9Cb0JjQiyDQiNCV0JvQmNCm0JAKK9Ck0JDQl9Cb0JjQiyDQiNCe0JLQkNCd0JrQkAor0KTQkNCX0JvQmNCd0J7QktCY0Isg0JXQm9CR0JjQodCQCivQpNCQ0JfQm9CY0J3QntCS0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQpNCV0KjQmNCoINCY0JzQoNCVCivQpNCV0KjQmNCoINCI0J7QltCV0KQKK9Ck0JXQqNCY0Kgg0IjQntCW0JXQpAor0KTQldCm0JUg0JjQktCQ0J0KK9Ck0JXQptCVINCc0JDQoNCY0IjQkAor0KTQldCU0JXQoNCV0KAg0IjQntCS0JDQnQor0KTQldCU0JXQoNCV0KAg0JzQmNCg0JrQngor0KTQldCU0Jgg0IjQntCW0JXQpAor0KTQldCl0JXQoCDQqNCQ0J3QlNCe0KAKK9Ck0JXQpdCV0KAg0KjQkNCd0JTQntCgCivQpNCV0KXQldCgINCC0JXQoNCCCivQpNCV0KXQldCgINCC0KPQm9CQCivQpNCV0KXQldCgINCC0KPQm9CQCivQpNCV0KXQldCgINCQ0J3QlNCg0JDQqAor0KTQldCl0JXQoCDQkNCg0JjQodCi0JjQlAor0KTQldCl0JXQoCDQldCg0J3QlQor0KTQldCl0JXQoCDQldCg0J3QlQor0KTQldCl0JXQoCDQpNCV0KDQldCd0KYKK9Ck0JXQpdCV0KAg0IjQkNCd0J7QqAor0KTQldCl0JXQoCDQiNCQ0J3QntCoCivQpNCV0KXQldCgINCI0JDQndCe0KgKK9Ck0JXQpdCV0KAg0IjQntCW0JXQpAor0KTQldCl0JXQoCDQiNCe0JbQldCkCivQpNCV0KXQldCgINCI0J7QktCQ0J0KK9Ck0JXQpdCV0KAg0IjQntCS0JDQnQor0KTQldCl0JXQoCDQiNCj0JvQmNCI0JAKK9Ck0JXQpdCV0KAg0JrQkNCb0JzQkNCdCivQpNCV0KXQldCgINCb0JDQiNCe0KgKK9Ck0JXQpdCV0KAg0JvQkNCh0JvQngor0KTQldCl0JXQoCDQm9CQ0KHQm9CeCivQpNCV0KXQldCgINCc0JDQoNCT0JjQotCQCivQpNCV0KXQldCgINCc0JDQoNCY0IjQkAor0KTQldCl0JXQoCDQnNCY0KXQkNCI0JvQngor0KTQldCl0JXQoCDQndCQ0J3QlNCe0KAKK9Ck0JXQpdCV0KAg0KHQotCV0JLQkNCdCivQpNCV0KXQldCgINCh0KLQldCS0JDQnQor0KTQldCl0JXQoCDQotCV0KDQldCX0JAKK9Ck0JXQpdCV0KAg0JLQldCg0JAKK9Ck0JXQpdCV0KDQktCQ0KDQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQldCl0JjQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQldCl0JjQoCDQn9CV0KLQkNCgCivQpNCV0KXQmNCg0J7QkiDQkNCS0KDQkNCcCivQpNCV0KXQmNCg0J7QkiDQmtCe0KHQkNCd0JAKK9Ck0JXQpdCY0KDQntCSINCc0JjQoNCI0JDQndCQCivQpNCV0IjQgtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ck0JXQiNCU0JXQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0KTQldCI0JXQqCDQqNCQ0J3QlNCe0KAKK9Ck0JXQiNCV0Kgg0ILQntCg0ILQlQor0KTQldCI0JXQqCDQkNCg0JDQndCa0JAKK9Ck0JXQiNCV0Kgg0JPQldCd0JAKK9Ck0JXQiNCV0Kgg0JjQqNCi0JLQkNCdCivQpNCV0IjQldCoINCY0KjQotCS0JDQnQor0KTQldCI0JXQqCDQiNCQ0J3QntCoCivQpNCV0IjQldCoINCI0JDQndCe0KgKK9Ck0JXQiNCV0Kgg0InQmNCJ0JDQndCQCivQpNCV0IjQldCoINCX0J7Qm9Ci0JDQnQor0KTQldCI0JXQqCDQl9Ce0JvQotCQ0J0KK9Ck0JXQiNCk0JDQoCDQiNCj0JvQmNCI0JDQndCQCivQpNCV0IjQodCQINCT0JXQntCg0JPQmNCI0JUKK9Ck0JXQiNCh0JAg0IjQkNCd0JrQniDQnNCgINCf0KUKK9Ck0JXQiNCh0JAg0JzQkNCg0JPQmNCi0JAKK9Ck0JXQiNCh0JAt0J/QntCf0J7QktCY0Isg0JvQldCe0J3QkAor0KTQldCI0KHQotCl0JDQnNCV0Jsg0J/QkNCbCivQpNCV0IjQl9Cj0JvQkNCl0Jgg0KTQldCI0JfQo9Cb0JDQpQor0KTQldCa0JXQotCVINCo0JDQndCU0J7QoAor0KTQldCa0JXQotCVINCo0JDQndCU0J7QoAor0KTQldCa0JXQotCVINCW0KPQltCQ0J3QkAor0KTQldCa0JXQotCVINCQ0JTQntCb0KQKK9Ck0JXQmtCV0KLQlSDQpNCV0KDQldCd0KYKK9Ck0JXQmtCV0KLQlSDQpNCV0KDQldCd0KYKK9Ck0JXQmtCV0KLQlSDQiNCQ0JPQntCU0JAKK9Ck0JXQmtCV0KLQlSDQmtCQ0KDQm9CeCivQpNCV0JrQldCi0JUg0JrQkNCi0JjQptCQCivQpNCV0JrQldCi0JUg0JvQkNCh0JvQngor0KTQldCa0JXQotCVINCc0JDQoNCY0IjQkAor0KTQldCa0JXQotCVINCc0JDQoNCY0IjQkAor0KTQldCa0JXQotCVINCc0JDQoNCY0IjQkAor0KTQldCa0JXQotCVINCc0JjQpdCQ0IjQm9CeCivQpNCV0JrQldCi0JUg0JzQmNCl0JDQiQor0KTQldCa0JXQotCVINCf0JXQotCQ0KAKK9Ck0JXQmtCV0KLQlSDQodCi0JXQktCQ0J0KK9Ck0JXQmtCV0KLQlSDQktCV0KHQndCQCivQpNCV0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ck0JXQm9CR0JDQkSDQoNCQ0JTQkAor0KTQldCb0JHQkNCRINCh0JDQktCQCivQpNCV0JvQkdCQ0JEg0KHQotCQ0J3QmNCc0JjQoAor0KTQldCb0JHQkNCR0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ck0JXQm9CR0JDQkdCe0JIg0IjQntCS0JDQnQor0KTQldCb0JHQkNCR0J7QkiDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KTQldCb0JHQkNCfINCI0KPQm9Ca0JAKK9Ck0JXQm9CR0JDQnyDQndCY0JrQntCb0JAKK9Ck0JXQm9CR0JDQn9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQpNCV0JvQkdCQ0J/QntCSINCc0JjQm9CQ0J3QmtCQCivQpNCV0JvQkdCQ0J/QntCSINCc0JjQm9Ce0KDQkNCUCivQpNCV0JvQkdCQ0J/QntCSINCd0JXQnNCQ0IrQkAor0KTQldCb0JHQkNCf0J7QkiDQoNCQ0JTQnNCY0JvQkAor0KTQldCb0JHQkNCf0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQpNCV0JvQkdCQ0J/QntCSINCh0KLQldCS0JDQnQor0KTQldCb0JTQqNCV0KAg0JDQndCQCivQpNCV0JvQlNCo0JXQoCDQmtCQ0KDQm9CeCivQpNCV0JvQlNCV0KjQlNCYINCQ0J3QlNCg0JjQiNCQCivQpNCV0JvQlNCV0KjQmCDQpNCg0JDQitCQCivQpNCV0JvQlNCV0KjQmCDQmNCR0J7QidCQINCU0KAKK9Ck0JXQm9CU0JXQqNCYINCc0JDQoNCY0IjQkAor0KTQldCb0JTQldCW0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQpNCV0JvQlNCV0JbQlNCYINCb0JDQodCb0J4KK9Ck0JXQm9CU0JXQltCU0Jgg0J/QldCi0JDQoAor0KTQldCb0JTQldCW0JTQmCDQodCi0JXQktCQ0J0KK9Ck0JXQm9CU0JXQkNCaINCU0JDQndCY0KbQkAor0KTQldCb0JTQldCQ0Jog0IjQntCW0JXQpAor0KTQldCb0JTQmCDQqNCQ0J3QlNCe0KAKK9Ck0JXQm9CU0Jgg0JXQoNCW0JXQkdCV0KIKK9Ck0JXQm9CU0Jgg0IjQkNCg0J7QodCb0JDQkgor0KTQldCb0JTQktCQ0KDQmCDQiNCe0KHQmNCfCivQpNCV0JvQlNCS0JDQoNCYINCI0J7QktCQ0J0KK9Ck0JXQm9CU0JLQkNCg0Jgg0IjQo9Ch0KLQmNCd0JAKK9Ck0JXQm9CU0JLQkNCg0Jgg0JrQkNCb0JzQkNCdCivQpNCV0JvQlNCS0JDQoNCYINCe0JvQk9CY0KbQkAor0KTQldCb0JTQktCQ0KDQmCDQodCi0JXQktCQ0J0KK9Ck0JXQm9CU0JLQldCR0JXQmyDQoNCe0JfQkNCb0JjQiNCQCivQpNCV0JvQlSDQlNCg0JDQltCV0J0g0JvQldCa0JDQoAor0KTQldCb0JXQiyDQmNCX0JXQogor0KTQldCb0JXQk9CYINCQ0J3QkAor0KTQldCb0JXQk9CYINCb0JDQlNCY0KHQm9CQ0JIKK9Ck0JXQidCQINCc0JjQoNCI0JDQndCQCivQpNCV0JvQndCV0KAg0JTQo9Co0JDQndCa0JAKK9Ck0JXQm9Cd0JXQoCDQotCY0JHQntCgCivQpNCV0JzQmNCLINCQ0JvQldCa0KHQmNCI0JUKK9Ck0JXQnNCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ck0JXQnNCY0Isg0JPQoNCj0IjQmNCm0JAKK9Ck0JXQnNCY0Isg0JzQmNCb0JjQiNCQCivQpNCV0JzQmNCLINCc0JjQm9Ce0JLQkNCdCivQpNCV0JzQmNCLINCf0JXQotCa0J4KK9Ck0JXQnNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ck0JXQnNCY0Isg0KHQotCQ0J3QmtCQCivQpNCV0JzQmNCLINCS0JXQidCa0J4KK9Ck0JXQnNCY0Isg0JfQntCg0JAKK9Ck0JXQndCmINCg0KPQltCY0KbQkAor0KTQldCd0JTQm9CV0KAg0IjQntCS0JDQnQor0KTQldCd0JTQoNCY0Jog0JDQndCU0KDQmNCI0JAKK9Ck0JXQndCU0KDQmNCaINCk0KDQkNCK0J4KK9Ck0JXQndCU0KDQmNCaINCa0JDQoNCb0J4KK9Ck0JXQitCQ0KYg0JjQktCQ0J0KK9Ck0JXQitCQ0KYg0IjQntCS0JDQnQor0KTQldCK0JDQpiDQodCY0J3QmNCo0JAKK9Ck0JXQitCQ0KYg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ck0JXQitCV0Kgg0JDQndCQCivQpNCV0IrQldCoINCk0KDQkNCK0JAKK9Ck0JXQitCS0JXQqNCYINCc0JDQoNCY0KjQmtCQCivQpNCV0KDQp9CY0Jog0JDQndCU0KDQmNCI0JAKK9Ck0JXQoNCQ0KDQmNCd0J7QkiDQn9CQ0JLQm9CVCivQpNCV0KDQkNCg0JjQniDQodCY0JvQktCY0J4KK9Ck0JXQoNCQ0KLQmCDQkNCk0JjQlwor0KTQldCg0JDQotCYINCR0JXQoNCeCivQpNCV0KDQkNCi0Jgg0JXQpdCQ0KIKK9Ck0JXQoNCQ0KLQmCDQoNCQ0JPQmNCfCivQpNCV0KDQkNCi0Jgg0KHQldCI0KTQmNCU0JjQnQor0KTQldCg0JDQotCYINCh0JrQldCd0JTQldCgCivQpNCV0KDQldCd0KfQkNCaINCY0JLQmNCm0JAKK9Ck0JXQoNCV0J3Qp9CV0Jog0InQo9CR0JjQptCQCivQpNCV0KDQldCd0KfQldCaINCe0JvQmNCS0JXQoCDQlNCY0J/QmyDQmNCd0JMKK9Ck0JXQoNCV0J3Qp9CV0Jog0JLQmNCb0JrQngor0KTQldCg0JXQndCn0JXQkiDQnNCY0JvQntCg0JDQlAor0KTQldCg0JXQndCn0JXQkiDQl9Ce0KDQkAor0KTQldCg0JXQndCn0JXQktCY0Isg0ILQntCg0ILQlQor0KTQldCg0JXQndCn0JXQktCY0Ist0KHQkNCb0JDQiCDQiNCV0JvQldCd0JAKK9Ck0JXQoNCV0J3QkNCmINCQ0J3QlNCg0JjQiNCQCivQpNCV0KDQldCd0JDQpiDQkNCd0JTQoNCY0IjQkAor0KTQldCg0JXQndCQ0KYg0JjQktCQ0J0KK9Ck0JXQoNCV0J3QkNCmINCg0JDQlNCc0JjQm9CQCivQpNCV0KDQldCd0KYg0JDQndCi0JDQmwor0KTQldCg0JXQndCmINCI0J7QltCV0KQKK9Ck0JXQoNCV0J3QpiDQiNCe0JbQldCkCivQpNCV0KDQldCd0KbQmCDQgtCV0KDQggor0KTQldCg0JXQndCm0Jgg0JTQldCX0JjQlNCV0KAKK9Ck0JXQoNCV0J3QptCYINCV0KPQk9CV0J0KK9Ck0JXQoNCV0J3QptCYINCk0KDQkNCK0JAKK9Ck0JXQoNCV0J3QptCYINCI0KPQm9CY0IjQkNCd0JAKK9Ck0JXQoNCV0J3QptCYINCh0KLQldCS0JDQnQor0KTQldCg0JXQndCm0Jgg0JLQldCg0JAKK9Ck0JXQoNCY0Jog0IjQo9Cg0JDQiAor0KTQldCg0JjQmiDQiNCj0KDQkNCICivQpNCV0KDQmNCX0J7QktCY0Isg0JDQpdCc0JXQogor0KTQldCg0JrQniDQkNCd0JTQoNCV0Igg0JTQoCDQm9CV0JrQkNCgCivQpNCV0KDQmtCeINCc0JjQm9Ce0KgKK9Ck0JXQoNCa0J4g0J/QkNCS0JXQmwor0KTQldCg0JrQniDQn9CQ0JLQm9CVCivQpNCV0KDQm9CQ0J0g0KDQkNCU0JzQmNCb0JAKK9Ck0JXQotCQ0KXQmCDQkdCQ0IjQoNCQ0JwKK9Ck0JXQotCQ0KXQntCS0JjQiyDQmNCh0JzQldCiCivQpNCV0KLQkNCYINCX0JjQkdCV0KAKK9Ck0JjQp9Ce0Jog0JDQm9Ce0IjQl9CY0IjQlQor0KTQmNCo0JDQmtCe0JIg0JrQntCd0KHQotCQ0JTQmNCdCivQpNCY0KjQkNCd0JMg0InQmNCJ0JDQndCQCivQpNCY0KjQldCgINCC0J7QoNCC0JUg0JTQoCDQm9CV0JrQkNCgCivQpNCY0KjQldCgINCC0J7QoNCC0JUKK9Ck0JjQqNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0KTQmNCo0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQmNCo0JXQoCDQkNCd0KLQntCdCivQpNCY0KjQldCgINCR0JvQkNCd0JrQkAor0KTQmNCo0JXQoCDQlNCg0JDQk9Cj0KLQmNCdCivQpNCY0KjQldCgINCT0JDQktCg0JAKK9Ck0JjQqNCV0KAg0JjQoNCV0J3QkAor0KTQmNCo0JXQoCDQmNCg0JXQndCQCivQpNCY0KjQldCgINCI0JXQndCVCivQpNCY0KjQldCgINCI0J7QodCY0J8KK9Ck0JjQqNCV0KAg0JrQkNCg0J7QiQor0KTQmNCo0JXQoCDQm9CQ0KHQm9CeCivQpNCY0KjQldCgINCb0JXQniDQlNCgCivQpNCY0KjQldCgINCd0JDQotCQ0JvQmNCI0JAKK9Ck0JjQqNCV0KAg0J/QmNCg0J7QqNCa0JAKK9Ck0JjQqNCV0KAg0KHQotCV0JLQkNCdCivQpNCY0KjQldCgINCX0JLQntCd0JjQnNCY0KAKK9Ck0JjQqNCbINCk0JXQlNCe0KAKK9Ck0JjQqNCbINCI0KPQm9CY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Ck0JjQqNCi0JXQqCDQmNCc0KDQlQor0KTQmNCo0KLQldCoINCc0JDQoNCY0IjQkAor0KTQmNCo0KLQldCoINCc0JjQpdCQ0IkKK9Ck0JjQqNCi0JXQqCDQn9CY0KDQntCo0JrQkAor0KTQmNCQ0JvQkCDQmNCS0JDQndCa0JAKK9Ck0JjQkNCb0JAg0JjQktCQ0J0KK9Ck0JjQkdCY0KjQkNCdINCC0KPQoNCQ0IIKK9Ck0JjQkdCY0KjQkNCdINCh0JvQkNCS0J7QidCj0JEKK9Ck0JjQptCVINCV0KDQltCV0JHQldCiCivQpNCY0KbQmNCd0JPQldCgINCS0JDQm9CV0KDQmNCI0JAKK9Ck0JjQlNCj0KjQldCaINCa0JDQotCY0KbQkAor0KTQmNCk0JAg0JTQoNCQ0JPQmNCm0JAKK9Ck0JjQpNCQINCd0JXQkdCYCivQpNCY0JPQo9Cg0JAg0KjQkNCd0JTQntCgCivQpNCY0IjQkNCi0J7QktCY0Isg0J7Qm9CT0JAKK9Ck0JjQiNCj0JrQntCS0JjQiyDQodCQ0JTQldCi0JAKK9Ck0JjQiNCj0InQkNCd0JjQnSDQl9Cj0JvQpNCeCivQpNCY0JvQldCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KTQmNCb0JXQmtCe0JLQmNCLINCh0JXQmNCUCivQpNCY0JvQldCfINCC0JXQoNCCCivQpNCY0JvQldCfINCC0J7QoNCC0JUKK9Ck0JjQm9CV0J8g0ILQntCg0ILQlQor0KTQmNCb0JXQnyDQkNCd0KLQkNCbCivQpNCY0JvQldCfINCR0JXQm9CQCivQpNCY0JvQldCfINCY0JTQkAor0KTQmNCb0JXQnyDQiNCV0J3QlQor0KTQmNCb0JXQnyDQiNCe0JbQldCkCivQpNCY0JvQldCfINCa0JDQm9Cc0JDQnQor0KTQmNCb0JXQnyDQmtCQ0JvQnNCQ0J0KK9Ck0JjQm9CV0J8g0JvQkNCU0JjQodCb0JDQkgor0KTQmNCb0JXQnyDQnNCY0KDQiNCQ0J3QkAor0KTQmNCb0JXQnyDQl9Ce0JvQotCQ0J0KK9Ck0JjQm9CV0J/QmCDQnNCY0KDQntCh0JvQkNCSCivQpNCY0JvQmNCc0J7QndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQpNCY0JvQmNCc0J7QndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ck0JjQm9CY0J8g0IjQntCS0JDQnSDQlNCgINCf0KDQkNCS0J3QmNCaCivQpNCY0JvQmNCfINCg0JDQlNCe0KHQkNCSCivQpNCY0JvQmNCf0KfQldCSINCX0JTQoNCQ0JLQmtCeCivQpNCY0JvQmNCf0JDQqCDQlNCg0JDQk9CQ0J0KK9Ck0JjQm9CY0J/QkNCo0JXQkiDQndCQ0JTQkAor0KTQmNCb0JjQn9CV0KYg0JfQmNCi0JAKK9Ck0JjQm9CY0J/QldCd0JTQmNCdINCc0JDQoNCa0J4KK9Ck0JjQm9CY0J/QntCSINCY0JvQmNCI0JAKK9Ck0JjQm9CY0J/QntCSINCc0JjQm9Ce0KgKK9Ck0JjQm9CY0J/QntCSINCc0JjQntCU0KDQkNCTCivQpNCY0JvQmNCf0J7QkiDQnNCe0JzQmNCgCivQpNCY0JvQmNCf0J7QkiDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCSINCf0KDQldCU0KDQkNCTCivQpNCY0JvQmNCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0KTQmNCb0JjQn9Ce0JIg0KHQm9CQ0ILQkNCd0JAKK9Ck0JjQm9CY0J/QntCSINCi0JjQpdCe0JzQmNCgCivQpNCY0JvQmNCf0J7QkiDQotCY0IjQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQp9CV0JTQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCY0JvQmNCf0J7QktCY0Isg0JDQndCi0J7QnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0KTQmNCb0JjQn9Ce0JLQmNCLINCR0J7QoNCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQpNCY0JvQmNCf0J7QktCY0Ist0JTQkNCc0IjQkNCd0J7QkiDQndCQ0JTQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JTQmNCI0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JTQntCR0KDQmNCm0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCY0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JjQktCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQiNCe0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0InQo9CR0JjQndCa0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JXQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JDQotCQ0KjQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCd0JjQmtCe0JvQmNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQn9CQ0KPQm9CQCivQpNCY0JvQmNCf0J7QktCY0Isg0J/QldCg0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQoNCQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQo9CW0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQo9CU0J7Qm9CkCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQkNCS0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCY0JHQmNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCf0JDQodCe0IjQlQor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0KDQgtCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCQ0J0g0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ck0JjQm9CY0J/QntCS0JjQiyDQktCV0KHQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JLQmNCU0J7QodCQ0JIKK9Ck0JjQm9CY0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQpNCY0JvQmNCf0J7QktCY0Isg0JfQntCg0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JfQntCg0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0KTQmNCb0JjQn9Ce0JLQodCa0JAt0J7QkdCg0JDQlNCe0JLQmNCLINCS0JXQoNCQCivQpNCY0JvQmNCf0J7QktCh0JrQmCDQkdCe0JbQngor0KTQmNCb0JjQn9Ce0JLQodCa0Jgg0KLQntCU0J7QoQor0KTQmNCb0JrQniDQlNCg0JDQk9CY0KbQkAor0KTQmNCb0JrQniDQiNCe0KHQmNCfCivQpNCY0JvQmtCeINCI0J7QktCQ0J0KK9Ck0JjQm9Ca0J4g0JzQkNCg0JjQiNCQCivQpNCY0JvQmtCeINCc0JjQpdCQ0IkKK9Ck0JjQm9Ca0J4g0JzQmNCl0JDQiQor0KTQmNCb0JrQniDQn9CQ0JLQldCbCivQpNCY0JvQmtCeINCi0JjQpdCe0JzQmNCgCivQpNCY0J3Qp9Cj0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JjQndCn0KPQoCDQiNCe0JbQldCkCivQpNCY0J3Qp9Cj0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0KTQmNCd0KfQo9CgINCb0JDQlNCY0KHQm9CQ0JIKK9Ck0JjQndCP0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Ck0JjQndCP0JDQndCe0JLQmNCLINCc0JjQmtCeCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQntCR0KDQkNCUCivQpNCY0J3Qmi3QlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQntCg0J7QotCV0JAKK9Ck0JjQndCaINCS0JjQmtCi0J7QoCDQndCe0JLQmNCd0JDQoAor0KTQmNCd0JrQkCDQk9Ce0KDQp9CQ0J0KK9Ck0JjQoCDQkdCV0JDQotCQCivQpNCY0KDQkNCKINCI0J7QltCV0KQKK9Ck0JjQoNCQ0IrQmCDQgtCV0KDQggor0KTQmNCg0JDQitCYINCC0J7QoNCC0JUKK9Ck0JjQoNCQ0IrQmCDQgtCe0KDQgtCVCivQpNCY0KDQkNCK0Jgg0JXQoNCW0JXQkdCV0KIKK9Ck0JjQoNCQ0IrQmCDQiNCe0JLQkNCdCivQpNCY0KDQkNCK0Jgg0JLQmNCa0KLQntCgCivQpNCY0KDQmNCLINCc0JDQoNCY0IjQkAor0KTQmNCg0KPQm9Ce0JLQmNCLINCa0J7QodCi0JDQndCi0JjQnQor0KTQmNCh0KLQoNCY0Isg0ILQntCg0ILQlQor0KTQmNCh0KLQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ck0JjQktCV0KjQmCDQk9CQ0JHQntCgCivQpNCY0JLQldCo0Jgg0KLQmNCR0J7QoAor0KTQm9CQ0KYg0JjQktCQ0J3QmtCQCivQpNCb0JDQpiDQn9CV0KLQkNCgCivQpNCb0JDQiNChINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpNCb0JXQk9CV0KAg0KHQotCV0JLQkNCdCivQpNCb0JXQk9CeINCY0JLQkNCdCivQpNCb0JXQk9CeINCc0JDQoNCi0JAKK9Ck0JvQldCa0JDQpyDQktCb0JDQlNCeCivQpNCb0JjQotCd0JXQoCDQntCh0JrQkNCgCivQpNCb0J7QmtCQINCC0JXQndCY0JrQkAor0KTQm9Ce0KDQkCDQktCQ0KHQkAor0KTQm9Ce0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KTQm9Ce0KDQmNCLINCJ0KPQkdCY0KbQkAor0KTQm9Ce0KDQmNCLINCX0J7QoNCQ0J0KK9Ck0JvQntCg0JjQiyDQl9Ce0KDQkNCdCivQpNCb0J7QoNCY0J0g0JLQmNCd0JrQkAor0KTQntCU0J7QoCDQltCe0KTQmNCI0JAKK9Ck0J7QlNCe0KAg0JDQndCQCivQpNCe0JTQntCgINCQ0J3QlNCg0JjQiNCQCivQpNCe0JTQntCgINCV0KDQltCV0JHQldCiCivQpNCe0JTQntCgINCk0JXQoNCV0J3Qpgor0KTQntCU0J7QoCDQpNCg0JDQitCQCivQpNCe0JTQntCgINCk0KDQkNCK0JAKK9Ck0J7QlNCe0KAg0IjQntCb0JDQnQor0KTQntCU0J7QoCDQiNCe0JLQkNCdCivQpNCe0JTQntCgINCI0J7QktCQ0J0KK9Ck0J7QlNCe0KAg0JrQkNCb0JzQkNCdCivQpNCe0JTQntCgINCa0JDQotCQCivQpNCe0JTQntCgINCb0JDQiNCe0KgKK9Ck0J7QlNCe0KAg0JvQkNCh0JvQngor0KTQntCU0J7QoCDQm9CQ0KHQm9CeCivQpNCe0JTQntCgINCb0JDQodCb0J4KK9Ck0J7QlNCe0KAg0JvQkNCh0JvQngor0KTQntCU0J7QoCDQm9CY0JTQmNCI0JAKK9Ck0J7QlNCe0KAg0JzQkNCg0KLQkAor0KTQntCU0J7QoCDQntCh0JrQkNCgINCU0JjQn9CbINCe0JXQpgor0KTQntCU0J7QoCDQotCY0JHQntCgCivQpNCe0JTQntCgINCi0JjQkdCe0KAKK9Ck0J7QlNCe0KAg0KLQmNCR0J7QoAor0KTQntCU0J7QoCDQl9CU0KDQkNCS0JrQngor0KTQntCU0J7QoNCQINCI0JDQndCa0J4KK9Ck0J7Qk9CQ0KDQkNCo0Jgg0ILQldCg0IIg0JTQoAor0KTQntCT0JDQoNCQ0KjQmCDQgtCV0KDQggor0KTQntCT0JDQoNCQ0KjQmCDQkNCd0JTQoNCY0IjQkAor0KTQntCT0JDQoNCQ0KjQmCDQkNCd0JjQmtCeCivQpNCe0JPQkNCg0JDQqNCYINCY0JvQntCd0JAKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0KHQotCV0JLQkNCdCivQpNCe0JPQmyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ck0J7QiNCa0JDQoCDQiNCQ0J3QmtCeCivQpNCe0JvQmNCLINCg0JDQlNCe0JzQmNCgINCU0KAKK9Ck0J7Qm9Ci0JjQnSDQnNCQ0KDQk9CY0KLQkAor0KTQntCb0KLQmNCdINCc0JjQm9CY0KbQkAor0KTQntCd0KLQkNCKINCb0J7QotCQ0KAKK9Ck0J7QoNCQ0Jgg0JfQntCb0KLQkNCdCivQpNCe0KDQkNCYINCX0J7QoNCY0KbQkAor0KTQntCg0JPQkNCnINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpNCe0KDQk9CY0Isg0JjQktCQ0J0KK9Ck0J7QoNCT0J4g0JjQqNCi0JLQkNCdCivQpNCe0KDQk9CeINCb0JDQodCb0J4KK9Ck0J7QoNCY0KjQmtCe0JIg0IjQntCS0JDQndCa0JAKK9Ck0J7QoNCY0KjQmtCe0JIg0JvQkNCX0JDQoAor0KTQntCg0JjQqNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0J7QoNCa0JDQn9CQINCh0JDQktCeCivQpNCe0KDQmtCQ0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCe0KDQmtCQ0J/QmNCLINCY0JLQkNCd0JrQkAor0KTQntCg0JrQkNCf0JjQiyDQm9CQ0JfQkNCgCivQpNCe0KDQmtCQ0J/QmNCLINCc0JDQoNCY0IjQkAor0KTQntCg0JrQkNCf0JjQiyDQndCY0JrQntCb0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0KHQkNCS0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0JLQldCb0JjQndCa0JAKK9Ck0J7QoNCeINCY0JLQkNCdCivQpNCe0KDQniDQiNCj0JvQmNCI0JDQndCQCivQpNCe0KLQmNCLINCC0J7QoNCC0JUKK9Ck0J7Ql9CV0JrQntCoINCQ0J3QmtCY0KbQkAor0KTQoNCn0JXQmiDQgtCj0KDQkAor0KTQoNCn0JXQmiDQnNCQ0KDQmNCI0JAKK9Ck0KDQltCe0J8g0JzQmNCo0JUKK9Ck0KDQltCe0JLQmNCLINCC0J7QoNCC0JUKK9Ck0KDQltCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQpNCg0JbQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KTQoNCW0J7QktCY0Isg0JzQmNCb0JXQndCQCivQpNCg0JDQptCY0JvQlSDQndCY0KbQlQor0KTQoNCQ0IjQodCiINCg0KPQlNCe0JvQpAor0KTQoNCQ0IjQotCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQpNCg0JDQiNCXINCf0JXQotCQ0KAKK9Ck0KDQkNCd0KfQmNCLINCg0J7Qmgor0KTQoNCQ0J3QpiDQnNCQ0JPQlNCQ0JvQldCd0JAg0JTQmNCf0Jsg0JjQndCTCivQpNCg0JDQndCm0JXQiSDQpNCg0JDQndCmCivQpNCg0JDQndCm0JXQoCDQmNCS0JDQnQor0KTQoNCQ0J3QptCV0KAg0JjQktCQ0J0KK9Ck0KDQkNCd0KbQmNCo0JrQntCS0JjQiyDQkNCi0JjQm9CQCivQpNCg0JDQndCm0JjQqNCa0J7QktCY0Isg0JjQktCQ0J0KK9Ck0KDQkNCd0KbQmNCo0JrQntCS0JjQiyDQnNCQ0KLQlQor0KTQoNCQ0J3QptCY0JAg0JDQndCU0KDQmNCI0JAKK9Ck0KDQkNCd0KbQmNCQINCY0KjQotCS0JDQnQor0KTQoNCQ0J3QptCY0JAg0J/QldCi0JDQoAor0KTQoNCQ0J3QptCY0IjQkCDQiNCe0JbQldCkCivQpNCg0JDQndCm0JjQiNCQLdCa0KPQmtCY0KfQmtCQINCc0JDQoNCT0JDQoNCV0KLQkAor0KTQoNCQ0J3QptCY0KHQotCYINCC0J7QoNCC0JUKK9Ck0KDQkNCd0KbQmNCh0KLQmCDQiNCQ0KDQntCh0JvQkNCSCivQpNCg0JDQndCm0JjQodCi0Jgg0J/QkNCS0JvQlQor0KTQoNCQ0J3QptCY0KHQotCYINCS0JvQkNCU0JjQnNCY0KAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQkNCb0JXQmtCh0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQlNCQ0KDQmNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCU0JXQodCQ0J3QmtCQCivQpNCg0JDQndCm0KPQodCa0Jgg0JTQoNCQ0JPQkNCdCivQpNCg0JDQndCm0KPQodCa0Jgg0JTQo9Co0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCY0JLQkNCdINCU0KAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQiNCe0JLQkNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCc0JDQoNCa0J4KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQnNCY0JvQkNCdCivQpNCg0JDQndCm0KPQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KTQoNCQ0J3QptCj0KHQmtCYINCf0JXQotCQ0KAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQoNCQ0JTQntCS0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQpNCg0JDQndCm0KPQodCa0Jgg0KHQotCg0JDQpdCY0IrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCX0J7QoNCQ0J0KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQl9Ce0KDQkNCdCivQpNCg0JDQndCm0KPQodCa0Jgg0JfQntCg0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCX0J7QoNCa0JAKK9Ck0KDQkNCd0KbQo9CXINCU0JDQoNCY0J3QmtCQCivQpNCg0JDQndCm0KPQlyDQiNCV0JvQldCd0JAKK9Ck0KDQkNCd0KbQo9CXINCS0JXQm9CY0JzQmNCgCivQpNCg0JDQndCm0KPQlyDQktCj0JoKK9Ck0KDQkNCd0JXQotCQINCI0J7QktCeCivQpNCg0JDQndCY0Isg0JjQktCQ0J0KK9Ck0KDQkNCd0JjQiyDQnNCY0JvQmtCQCivQpNCg0JDQitCY0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0KDQkNCK0JjQiyDQnNCQ0KDQmNCm0JAKK9Ck0KDQkNCK0J4g0JbQo9CW0JDQndCQCivQpNCg0JDQndCaINCC0JXQoNCCCivQpNCg0JDQndCaINCk0JXQoNCV0J3Qpgor0KTQoNCQ0J3QmiDQmNCb0JXQqAor0KTQoNCQ0J3QmiDQiNCQ0J3QntCoCivQpNCg0JDQndCaINCi0JjQkdCe0KAKK9Ck0KDQkNCd0JrQkCDQnNCY0KXQkNCI0JvQngor0KTQoNCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ck0KDQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ck0KDQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KTQoNCQ0J3Ql9CV0KAg0JjQktCQ0J0KK9Ck0KDQkNCi0J7QiCDQiNCe0KbQkAor0KTQoNCQ0KLQoNCY0Isg0KHQmNCT0JzQo9Cd0JQKK9Ck0KDQkNCi0KPQptCQ0J0g0ILQntCg0ILQlQor0KTQoNCQ0KLQo9Cm0JDQnSDQgtCe0KDQgtCVCivQpNCg0JDQotCj0KbQkNCdINCk0JjQm9CY0J8KK9Ck0KDQkNCi0KPQptCQ0J0g0JjQktCQ0J0KK9Ck0KDQkNCi0KPQptCQ0J0g0J3QldCS0JXQndCQCivQpNCg0JDQotCj0KbQkNCdINCf0JXQotCQ0KAKK9Ck0KDQkNCi0KPQptCQ0J3QntCSINCY0JLQkNCd0JrQkAor0KTQoNCV0Jgg0JXQm9CY0JfQkNCR0JXQotCQCivQpNCg0JXQnNCV0KAg0JDQndCi0KPQnQor0KTQoNCV0JzQmyDQqNCQ0J3QlNCe0KAKK9Ck0KDQldCd0JrQldCbINCQ0J3QkAor0KTQoNCV0J3QmtCV0Jsg0JXQktCQCivQpNCg0JXQndCa0Jsg0JTQoNCQ0JPQmNCm0JAKK9Ck0KDQmNCnINCR0J7QltCY0JTQkNCgCivQpNCg0JjQpyDQmtCQ0KLQmNCm0JAKK9Ck0KDQmNCoINCU0KDQkNCT0JDQnQor0KTQoNCY0Kgg0JzQmNCb0JDQnQor0KTQoNCY0KjQp9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KTQoNCY0KYg0KDQo9CU0J7Qm9CkCivQpNCg0JjQlNCg0JjQpSDQkNCd0JAKK9Ck0KDQmNCU0KDQmNClINCI0JXQm9CV0J3QkAor0KTQoNCY0JTQoNCY0KUg0JzQkNCT0JTQkAor0KTQoNCY0JTQoNCY0KUg0JfQntCg0JjQptCQCivQpNCg0JjQndCU0JjQmiDQpNCg0JDQitCQCivQpNCg0JjQndCU0JjQmiDQnNCY0KXQkNCJCivQpNCg0JjQndCU0KDQmNCaINCR0JXQm9CQCivQpNCg0JrQkCDQkNCg0KLQo9CgCivQpNCg0JrQkCDQndCY0JrQntCb0JAKK9Ck0KDQiSDQnNCj0KXQkNCg0JXQnAor0KTQoNCe0Jsg0JzQkNCg0JjQiNCQ0J0KK9Ck0KDQntCbINCd0JDQlNCQCivQpNCg0J7QmyDQktCY0JvQmNCcCivQpNCg0KPQltCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCj0KfQmNCaINCa0JDQoNCb0J4KK9Ck0KPQlNCV0KDQldCgINCI0KPQm9CY0IjQlQor0KTQo9CU0JXQoNCV0KAg0JzQkNCT0JTQkNCb0JXQndCQCivQpNCj0IjQmtCQINCC0J7QoNCC0JUKK9Ck0KPQiNCi0J4g0JLQm9CQ0JTQmNCc0JjQoAor0KTQo9Cb0JDQiNCi0JXQoCDQgtCe0KDQgtCVCivQpNCj0J3Qi9CY0Jog0J/QkNCS0JvQlQor0KTQo9Cd0JTQo9Cg0KPQidCQINCc0JjQm9CV0J3QmtCeCivQpNCj0J3QmiDQqNCi0JXQpNCQ0J3QmNCI0JAKK9Ck0KPQndCaINCb0JDQiNCe0KgKK9Ck0KPQndCi0JXQmiDQmNCS0JDQnQor0KTQo9Cg0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQpNCj0KDQm9CQ0J0g0JXQoNCW0JXQkdCV0KIKK9Ck0KPQoNCb0JDQnSDQnNCQ0KDQmtCeCivQpNCj0KDQnNCQ0J0g0KTQoNCQ0IrQkAor0KTQo9Cg0JzQkNCdINCI0J7QktCQ0J0KK9Ck0KPQoNCc0JDQnSDQnNCQ0KDQmNCI0JAKK9Ck0KPQoNCc0JDQnSDQotCY0JzQntCk0JXQiAor0KTQo9Cg0JzQkNCdINCi0JjQndCa0JAKK9Ck0KPQoNCeINCY0JzQoNCVCivQpNCj0KHQmtCeINCQ0J3Qk9CV0JvQkAor0KTQo9Ch0JrQniDQmNCo0KLQktCQ0J0KK9Ck0KPQodCa0J4g0JzQkNCg0JjQiNCQCivQpNCj0KHQmtCeINCc0JjQpdCQ0IkKK9Ck0KPQotCeINCQ0J3QotCQ0JsKK9Ck0KPQotCeINCI0J7QltCV0KQKK9Ck0KPQotCeINCI0J7QltCV0KQKK9Ck0KPQotCeINCc0JjQoNCa0J4KK9Ck0KPQotCe0KjQmtCYINCc0JjQm9CQ0J0KK9Ck0KPQotCe0KjQmtCYINCc0JjQotCQCivQk9CQ0KfQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0KfQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JPQkNCn0JXQktCY0Isg0KLQldCg0JXQl9CQCivQk9CQ0KfQmNCLINCR0KDQkNCd0JrQngor0JPQkNCn0JjQiyDQlNCQ0J3QmNCm0JAKK9CT0JDQp9CY0Isg0JTQkNCd0JjQm9CeCivQk9CQ0KfQmNCLINCc0JjQm9CQ0J0KK9CT0JDQp9CY0Isg0KHQotCV0JLQkNCdCivQk9CQ0KfQmNCLINCh0KLQldCS0JDQnQor0JPQkNCn0JjQiyDQktCb0JDQlNCQ0J0KK9CT0JDQqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9CQ0KjQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQkNCo0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQqNCV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQk9CQ0KjQldCS0JjQiyDQodCQ0JLQmtCQCivQk9CQ0KjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCo0Jgg0ILQldCc0JDQmNCJCivQk9CQ0KjQmCDQpdCQ0JzQlNCYCivQk9CQ0KjQmCDQiNCj0JvQmNCI0JDQndCQCivQk9CQ0KjQmCDQidCj0JDQnQor0JPQkNCo0Jgg0JfQntCg0JDQnQor0JPQkNCo0JjQiyDQkdCe0JPQlNCQ0J0KK9CT0JDQqNCY0Isg0JTQo9Co0JDQnQor0JPQkNCo0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JPQkNCo0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JPQkNCo0JjQiyDQmtCg0KHQotCQCivQk9CQ0KjQmNCLINCc0JjQoNCe0InQo9CRCivQk9CQ0KjQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCo0JjQiyDQodCY0JvQktCQ0J3QkAor0JPQkNCo0JjQiyDQotCe0JTQntCgINCU0JjQn9CbINCY0J3Qkwor0JPQkNCo0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQk9CQ0KjQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9CQ0KjQmNCLINCX0J7QoNCQCivQk9CQ0KjQn9CQ0KAg0JHQntCT0JTQkNCdCivQk9CQ0KjQn9CQ0KAg0IjQkNCd0J7QqAor0JPQkNCo0J/QkNCgINCb0JDQiNCe0KgKK9CT0JDQqNCf0JDQoCDQm9CY0JTQmNCI0JAKK9CT0JDQqNCf0JDQoCDQnNCY0JvQldCd0JrQngor0JPQkNCo0J/QkNCg0JXQktCY0Isg0JXQoNCY0JrQkAor0JPQkNCo0J/QkNCg0JXQktCY0Isg0InQmNCJ0JDQndCQCivQk9CQ0KjQn9CQ0KDQmNCLINCd0JDQlNCQCivQk9CQ0KjQn9CQ0KDQmNCdINCJ0JjQidCQ0J3QkAor0JPQkNCo0J/QkNCg0J7QktCY0Isg0IjQntCh0JjQnwor0JPQkNCL0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0IvQkCDQnNCY0J7QlNCg0JDQkwor0JPQkNCL0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCL0JDQqCDQlNCg0JDQk9CY0KbQkAor0JPQkNCL0JDQqCDQodCY0J3QmNCo0JAKK9CT0JDQi9CQ0Kgg0KHQotCV0JLQkNCdCivQk9CQ0IvQldCo0JAg0ILQo9Cg0J4KK9CT0JDQi9CV0KjQkCDQkdCg0JDQndCa0JAKK9CT0JDQi9CV0KjQkCDQlNCg0JDQk9CQ0J0KK9CT0JDQi9CV0KjQkCDQlNCg0JDQk9CQ0J0KK9CT0JDQi9CV0KjQkCDQmNCb0JjQiNCQCivQk9CQ0IvQldCo0JAg0JzQkNCd0J7QiNCb0J4KK9CT0JDQi9CV0KjQkCDQnNCY0JvQntCoCivQk9CQ0IvQldCo0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQi9CV0KjQkCDQnNCY0JvQntCS0JDQnSDQlNCgCivQk9CQ0IvQldCo0JAg0J3QmNCa0J7Qm9CQCivQk9CQ0IvQldCo0JAg0KHQm9CQ0JLQmtCeCivQk9CQ0IvQldCo0JAg0JLQldCJ0JrQngor0JPQkNCL0JXQqNCQINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQi9CY0J3QkCDQltCQ0KDQmtCeCivQk9CQ0IvQmNCd0JAg0InQmNCJ0JDQndCQCivQk9CQ0IvQmNCd0J7QktCY0Isg0JHQntCW0J4KK9CT0JDQi9CY0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQi9CY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQk9CQ0IvQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQi9CY0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQk9CQ0JbQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JPQkNCW0JjQmiDQotCV0KDQldCX0JjQiNCQCivQk9CQ0JbQniDQmtCQ0KLQmNCm0JAKK9CT0JDQltCeLdCc0JDQotCe0KjQmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JPQkNCW0J4g0JzQmNCl0JDQiNCb0J4KK9CT0JDQltCeINCc0JjQmtCb0J7QqAor0JPQkNCC0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQk9CQ0JHQm9CV0KAg0JLQmNCa0KLQntCg0JjQiNCQCivQk9CQ0JHQntCgINCQ0KDQn9CQ0JQKK9CT0JDQkdCe0KAg0JHQldCb0JAKK9CT0JDQkdCe0KAg0JXQoNCW0JXQkdCV0KIKK9CT0JDQkdCe0KAg0JjQoNCV0J3QkAor0JPQkNCR0J7QoCDQiNCe0JbQldCkCivQk9CQ0JHQntCgINCa0JDQoNCe0IkKK9CT0JDQkdCe0KAg0J3QkNCd0JTQntCgCivQk9CQ0JHQntCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JDQkdCe0KDQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JPQkNCR0J7QoNCe0JIg0JPQkNCS0KDQmNCb0J4KK9CT0JDQkdCe0KDQntCSINCc0JjQm9CQ0J0KK9CT0JDQkdCe0KDQntCSINCc0JjQotCQCivQk9CQ0JHQntCg0J7QkiDQn9CQ0JLQm9CVCivQk9CQ0JHQntCg0J7QkiDQn9CV0KLQkNCgCivQk9CQ0JHQoNCVINCg0J7QmtCeCivQk9CQ0JHQoNCY0Isg0JXQktCY0KbQkAor0JPQkNCR0KDQmNCLINCa0KHQldCd0JjQiNCQCivQk9CQ0JHQoNCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0JDQkdCg0JjQiyDQndCV0KHQotCe0KAKK9CT0JDQkdCg0JjQiyDQn9CV0KLQkNCgCivQk9CQ0JHQoNCY0Isg0KHQm9CQ0JLQmtCeCivQk9CQ0JHQoNCY0JXQmyDQnNCY0JrQm9Ce0KgKK9CT0JDQkdCg0JjQiNCV0JvQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9CT0JDQkdCg0J7QktCY0Isg0JDQndCU0KDQkNCoCivQk9CQ0JHQoNCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQk9CQ0KbQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQj9CQINCa0KDQmNCW0JDQnQor0JPQkNCP0JAg0KDQo9CW0JAKK9CT0JDQj9CY0Isg0JzQmNCb0JDQnQor0JPQkNCP0JjQiyDQktCY0J3QmtCeCivQk9CQ0I/Qo9CgINCY0JLQkNCdCivQk9CQ0I/Qo9Cg0JjQiyDQl9Cb0JDQotCa0J4KK9CT0JDQlNCQ0J3QldCmINCa0JDQotCQ0KDQmNCd0JAKK9CT0JDQlNCK0JDQmCDQiNCe0JLQkAor0JPQkNCU0IrQkNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQk9CY0Isg0JDQktCg0JDQnAor0JPQkNCT0JjQiyDQkdCe0KjQmtCeCivQk9CQ0JPQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CT0JDQk9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CT0JDQk9CY0Isg0JTQo9Co0JDQnQor0JPQkNCT0JjQiy3Qk9Cg0KPQkdCV0KjQkCDQnNCY0JvQldCS0JAKK9CT0JDQk9CY0Isg0IjQntCS0JDQndCa0JAKK9CT0JDQk9CY0Isg0IjQntCS0JDQnQor0JPQkNCT0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JPQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JDQk9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CT0JDQk9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCT0JjQiyDQktCY0JTQntCh0JDQktCQCivQk9CQ0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQkNCT0J7QktCY0Isg0J3QntCS0JDQmgor0JPQkNCT0J7QktCY0Isg0J7Qm9CT0JAKK9CT0JDQk9Ce0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQk9CQ0JPQoNCn0JjQnSDQm9CQ0JfQkNCgCivQk9CQ0JPQoNCn0JjQnSDQnNCb0JDQlNCV0J0KK9CT0JDQk9Cg0JjQptCQINCI0J7QktCQ0J0KK9CT0JDQk9Cj0JvQkCDQnNCj0IjQngor0JPQkNCY0Isg0JLQldCJ0JrQngor0JPQkNCY0KbQmtCYINCd0JjQmtCe0JvQkAor0JPQkNCY0KbQmtCYINCh0JDQitCQCivQk9CQ0JjQptCa0Jgg0KLQkNCd0JDQodCY0IjQlQor0JPQkNCY0KbQmtCYINCS0JXQoNCY0KbQkAor0JPQkNCY0J3QntCSINCg0JDQlNCe0JLQkNCdCivQk9CQ0IjQqNCY0J0g0KHQm9CQ0JLQmNCm0JAKK9CT0JDQiNCo0JjQnSDQodCc0JjQidCQCivQk9CQ0IjQqNCY0J0g0KHQotCQ0J3QmNCh0JvQkNCSCivQk9CQ0IjQkNCd0JjQiyDQodCi0IjQldCf0JDQnQor0JPQkNCI0JTQkCDQqNCQ0J3QlNCe0KAKK9CT0JDQiNCU0J7QqCDQgtCj0JvQkAor0JPQkNCI0JTQntCoINCY0KjQotCS0JDQnQor0JPQkNCI0JTQntCoINCY0JHQntCJ0JAKK9CT0JDQiNCU0J7QqCDQm9CQ0KHQm9CeCivQk9CQ0IjQlNCe0Kgg0InQo9CR0J7QnNCY0KAKK9CT0JDQiNCU0J7QqCDQnNCY0KXQkNCI0JvQngor0JPQkNCI0JTQntCoINCd0JjQmtCe0JvQkAor0JPQkNCI0JTQntCoINCf0JXQotCQ0KAKK9CT0JDQiNCU0J7QqNCV0JLQmNCLINCC0J7QoNCC0JUKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQgtCe0KDQgtCVINCU0KAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQlNCQ0J3QmNCm0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCc0JjQm9CY0JLQntCICivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCi0J7QlNCe0KAKK9CT0JDQiNCV0KAg0ILQo9Cg0JAKK9CT0JDQiNCV0KAg0IjQntCm0JAKK9CT0JDQiNCV0KAg0JvQldCe0J3QkAor0JPQkNCI0JXQoCDQnNCQ0J3QntCI0JvQngor0JPQkNCI0JXQoCDQndCQ0JTQkAor0JPQkNCI0JPQldCgINCI0J7QltCV0KQKK9CT0JDQiNCY0KjQmNCdINCU0JDQoNCQCivQk9CQ0IjQmNCo0JjQnSDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCo0JjQnSDQnNCY0JvQmNCm0JAKK9CT0JDQiNCY0KjQmNCdINCf0JXQotCQ0KAKK9CT0JDQiNCY0KjQmNCdINCh0KLQldCS0JDQnQor0JPQkNCI0JjQqNCY0J0g0KHQotCV0JLQkNCdCivQk9CQ0IjQmNCo0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQk9CQ0IjQmNCLINCW0JDQoNCa0J4KK9CT0JDQiNCY0Isg0JbQkNCg0JrQngor0JPQkNCI0JjQiyDQltCY0JLQmtCQCivQk9CQ0IjQmNCLINCW0JjQktCa0J4KK9CT0JDQiNCY0Isg0JbQmNCS0J7QotCQCivQk9CQ0IjQmNCLINCC0J7QoNCC0JUKK9CT0JDQiNCY0Isg0ILQo9Cg0J4KK9CT0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQiNCY0Isg0JDQndCQCivQk9CQ0IjQmNCLINCR0J7QltCY0KbQkAor0JPQkNCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQkNCI0JjQiyDQkdCe0JPQlNCQ0J0KK9CT0JDQiNCY0Isg0JHQntCT0J7QidCj0JEKK9CT0JDQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCLINCm0JLQmNCI0JDQnQor0JPQkNCI0JjQiyDQptCS0JjQiNCQ0J0KK9CT0JDQiNCY0Isg0JTQkNCd0JjQptCQCivQk9CQ0IjQmNCLINCU0JXQiNCQ0J0KK9CT0JDQiNCY0Isg0JTQldCI0JDQnQor0JPQkNCI0JjQiyDQlNCV0IjQkNCdCivQk9CQ0IjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0IjQmNCLINCU0KDQkNCT0JjQptCQCivQk9CQ0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CT0JDQiNCY0Isg0JTQoNCQ0JPQngor0JPQkNCI0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQkNCI0JjQiyDQlNCj0KjQmtCeINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQk9CQ0IjQmNCLINCT0J7QiNCa0J4KK9CT0JDQiNCY0Isg0JPQntCg0JDQnQor0JPQkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JPQkNCI0JjQiyDQmNCR0J7QidCQCivQk9CQ0IjQmNCLINCI0JXQm9CV0J3QkAor0JPQkNCI0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQk9CQ0IjQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CT0JDQiNCY0Isg0JrQoNCj0J3QkAor0JPQkNCI0JjQiyDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCLINCb0JDQl9CeCivQk9CQ0IjQmNCLINCc0JDQmtCh0JAKK9CT0JDQiNCY0Isg0JzQkNCg0JjQiNCQINCU0KAKK9CT0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0IjQmNCLINCc0JDQoNCY0J3QmtCeINCU0KAKK9CT0JDQiNCY0Isg0JzQmNCL0J4KK9CT0JDQiNCY0Isg0JzQmNCa0JAKK9CT0JDQiNCY0Isg0JzQmNCb0JDQndCQCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0JjQiyDQnNCY0JvQmNCd0JrQngor0JPQkNCI0JjQiyDQnNCY0JvQmNCS0J7QiAor0JPQkNCI0JjQiyDQnNCY0JvQntCoCivQk9CQ0IjQmNCLINCc0JjQm9Ce0IjQmtCQCivQk9CQ0IjQmNCLINCc0JjQm9Ce0KHQkNCSCivQk9CQ0IjQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9CQ0IjQmNCLINCc0JjQntCU0KDQkNCTCivQk9CQ0IjQmNCLINCc0JjQntCU0KDQkNCTCivQk9CQ0IjQmNCLINCc0JjQoNCI0JDQndCQCivQk9CQ0IjQmNCLINCc0JjQoNCa0J4g0JTQoAor0JPQkNCI0JjQiyDQnNCY0KDQmtCeCivQk9CQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQiNCY0Isg0JzQmNCi0KDQkAor0JPQkNCI0JjQiyDQnNCb0JDQlNCV0J3QmtCeCivQk9CQ0IjQmNCLINCc0JvQkNCU0JXQnQor0JPQkNCI0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQkNCI0JjQiyDQndCV0JTQldCJ0JrQngor0JPQkNCI0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQk9CQ0IjQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQiNCY0Isg0J3QntCS0JDQmgor0JPQkNCI0JjQiyDQntCb0JjQktCV0KDQkAor0JPQkNCI0JjQiyDQn9CV0JvQmtCQCivQk9CQ0IjQmNCLINCf0JXQoNCh0JAKK9CT0JDQiNCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0JDQiNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CT0JDQiNCY0Isg0KDQkNCU0J7QnNCY0KAKK9CT0JDQiNCY0Isg0KDQkNCI0JrQkAor0JPQkNCI0JjQiyDQoNCQ0KLQmtCeCivQk9CQ0IjQmNCLINCg0JDQotCa0J4KK9CT0JDQiNCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JPQkNCI0JjQiyDQoNCj0JbQmNCm0JAKK9CT0JDQiNCY0Isg0KHQkNCS0JAKK9CT0JDQiNCY0Isg0KHQm9CQ0JrQkAor0JPQkNCI0JjQiyDQodCb0JDQktCY0KbQkAor0JPQkNCI0JjQiyDQodCb0JDQktCa0J4KK9CT0JDQiNCY0Isg0KHQm9CQ0JLQmtCeCivQk9CQ0IjQmNCLINCh0KDQldCL0JrQngor0JPQkNCI0JjQiyDQodCg0JXQotCeCivQk9CQ0IjQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CT0JDQiNCY0Isg0KHQotCQ0J3QntCI0JvQngor0JPQkNCI0JjQiyDQodCi0J7QiNCQ0J0KK9CT0JDQiNCY0Isg0KHQotCg0JDQpdCY0IrQkAor0JPQkNCI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9CQ0IjQmNCLINCi0JDQndCQ0KHQmtCeCivQk9CQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQk9CQ0IjQmNCLINCS0JXQodCd0JAKK9CT0JDQiNCY0Isg0JLQmNCU0JAKK9CT0JDQiNCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JPQkNCI0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CT0JDQiNCY0Isg0JfQntCg0JDQnQor0JPQkNCI0JjQptCQINCR0KDQkNCd0JrQngor0JPQkNCI0JjQptCa0Jgg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCm0JrQmCDQlNCj0KjQkNCdCivQk9CQ0IjQmNCm0JrQmCDQiNCV0JvQldCd0JAKK9CT0JDQiNCY0KbQmtCYINCb0JDQl9CQ0KAKK9CT0JDQiNCY0KbQmtCYINCc0JDQoNCY0IjQkAor0JPQkNCI0JjQptCa0Jgg0JzQmNCb0JAKK9CT0JDQiNCY0KbQmtCYINCc0JjQm9CY0KbQkAor0JPQkNCI0JjQptCa0Jgg0KHQkNCS0JAKK9CT0JDQiNCY0J0g0JbQmNCS0JrQngor0JPQkNCI0JjQnSDQgtCe0KDQgtCVCivQk9CQ0IjQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0IjQmNCdINCQ0J3QmtCQCivQk9CQ0IjQmNCdINCR0KDQkNCd0JrQngor0JPQkNCI0JjQnSDQlNCg0JDQk9CY0KbQkAor0JPQkNCI0JjQnSDQiNCe0JLQkNCdCivQk9CQ0IjQmNCdINCb0JDQl9CQ0KAKK9CT0JDQiNCY0J0g0JzQmNCl0JDQiNCb0J4KK9CT0JDQiNCY0J0g0JzQmNCb0JDQnQor0JPQkNCI0JjQnSDQnNCY0JvQldCd0JrQngor0JPQkNCI0JjQnSDQnNCY0JvQntCS0JDQnQor0JPQkNCI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JPQkNCI0JjQnSDQndCQ0JTQkAor0JPQkNCI0JjQnSDQndCV0JLQldCd0JrQkAor0JPQkNCI0JjQnSDQn9CV0KLQkNCgCivQk9CQ0IjQmNCdINCh0JvQkNCS0JrQkCDQlNCgCivQk9CQ0IjQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CT0JDQiNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCI0JjQndCQINCU0KDQkNCT0J7QnNCY0KAKK9CT0JDQiNCY0J3QntCSINCW0JjQktCQ0J0KK9CT0JDQiNCY0J3QntCSINCW0JjQktCa0J4KK9CT0JDQiNCY0J3QntCSINCW0JjQktCa0J4KK9CT0JDQiNCY0J3QntCSINCC0J7QmtCY0KbQkAor0JPQkNCI0JjQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQiNCY0J3QntCSINCQ0J3QgtCV0JvQmtCQCivQk9CQ0IjQmNCd0J7QkiDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0J3QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQkNCI0JjQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0JPQkNCI0JjQndCe0JIg0JjQktCQ0J3QmtCQCivQk9CQ0IjQmNCd0J7QkiDQiNCV0JvQldCd0JAKK9CT0JDQiNCY0J3QntCSINCI0J7QktCQ0J0KK9CT0JDQiNCY0J3QntCSINCI0KPQm9Ca0JAKK9CT0JDQiNCY0J3QntCSINCa0J7QodCi0JAKK9CT0JDQiNCY0J3QntCSINCa0J7QodCi0JAKK9CT0JDQiNCY0J3QntCSINCb0JDQl9CQ0KAKK9CT0JDQiNCY0J3QntCSINCb0JDQl9CQ0KAKK9CT0JDQiNCY0J3QntCSINCb0JDQl9CQ0KAKK9CT0JDQiNCY0J3QntCSINCJ0JjQidCQ0J3QkAor0JPQkNCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQk9CQ0IjQmNCd0J7QkiDQidCj0JHQmNCm0JAKK9CT0JDQiNCY0J3QntCSINCc0JDQoNCY0IjQkAor0JPQkNCI0JjQndCe0JIg0JzQkNCg0JrQngor0JPQkNCI0JjQndCe0JIg0JzQkNCg0JrQngor0JPQkNCI0JjQndCe0JIg0JzQmNCb0JDQnQor0JPQkNCI0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQiNCY0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IjQmNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JPQkNCI0JjQndCe0JIg0J3QmNCa0J7Qm9CQCivQk9CQ0IjQmNCd0J7QkiDQn9CV0KDQkAor0JPQkNCI0JjQndCe0JIg0J/QldCg0KHQmNCU0JAKK9CT0JDQiNCY0J3QntCSINCg0JDQlNCQCivQk9CQ0IjQmNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JPQkNCI0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CT0JDQiNCY0J3QntCSINCh0JDQktCQCivQk9CQ0IjQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9CT0JDQiNCY0J3QntCSINCh0KLQldCS0JDQnQor0JPQkNCI0JjQndCe0JIg0KLQntCU0J7QoAor0JPQkNCI0JjQndCe0JIg0JLQldCb0JjQnNCY0KAKK9CT0JDQiNCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQk9CQ0IjQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JPQkNCI0JjQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JPQkNCI0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQkNCI0JjQndCe0JLQmNCLINCY0JrQntCd0JjQiNCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JPQkNCI0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0JDQiNCY0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JDQiNCY0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CT0JDQiNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQniDQmNCo0KLQktCQ0J0KK9CT0JDQiNCe0JTQmCDQiNCe0JbQldCkCivQk9CQ0IjQntCU0Jgg0JzQkNCg0JjQiNCQCivQk9CQ0IjQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQk9CQ0IjQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQkNCI0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQk9CQ0IjQotCQINCQ0J3QmNCm0JAKK9CT0JDQiNCi0JAg0JDQo9Cg0JXQm9CY0IjQkAor0JPQkNCaINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQk9CQ0Jog0JzQmNCb0JDQnQor0JPQkNCaINCd0JXQktCV0J3QmtCQCivQk9CQ0Jog0KDQkNCU0JUKK9CT0JDQmiDQodCb0JDQktCa0J4KK9CT0JDQmiDQodCd0JXQltCQ0J3QkAor0JPQkNCaINCX0J7QoNCa0JAKK9CT0JDQmtCY0Isg0JHQntCo0JrQngor0JPQkNCa0J7QktCY0Isg0JDQndCi0J7QndCY0IjQkAor0JPQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQk9CQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CT0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CT0JDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CT0JDQmtCe0JLQmNCLINCX0J7QoNCQCivQk9CQ0Jsg0KjQkNCd0JTQntCgCivQk9CQ0Jsg0ILQo9Cb0JAKK9CT0JDQmyDQgtCj0JvQkAor0JPQkNCbINCQ0J3QmtCQCivQk9CQ0Jsg0KTQldCg0JXQndCmCivQk9CQ0Jsg0KTQldCg0JXQndCmCivQk9CQ0Jsg0KTQldCg0JXQndCmCivQk9CQ0Jsg0JPQkNCR0J7QoAor0JPQkNCbINCT0JjQl9CV0JvQkAor0JPQkNCbINCI0JDQndCe0KgKK9CT0JDQmyDQiNCe0JbQldCkCivQk9CQ0Jsg0IjQntCW0JXQpAor0JPQkNCbINCI0J7QktCQ0J0KK9CT0JDQmyDQmtCQ0JvQnNCQ0J0KK9CT0JDQmyDQm9CQ0IjQntCoCivQk9CQ0Jsg0JvQkNCI0J7QqAor0JPQkNCbINCc0JDQoNCT0JjQogor0JPQkNCbINCc0JDQoNCY0JAKK9CT0JDQmyDQnNCY0KjQkAor0JPQkNCbINCc0JjQmtCb0J7QqAor0JPQkNCbINCf0JDQktCb0JUKK9CT0JDQmyDQn9CV0KLQkNCgCivQk9CQ0Jsg0J/QldCi0JDQoAor0JPQkNCbINCh0KLQldCS0JDQnQor0JPQkNCb0JDQpiDQiNCe0KHQmNCfCivQk9CQ0JvQkNCmINCf0JDQktCb0JUKK9CT0JDQm9CQ0JzQkSDQkNCi0JjQm9CQCivQk9CQ0JvQkNCc0JHQntCoINCQ0J3QkAor0JPQkNCb0JDQnNCR0J7QqCDQkNCd0KLQntCdCivQk9CQ0JvQkNCc0JHQntCoINCV0KDQltCV0JHQldCiCivQk9CQ0JvQkNCc0JHQntCoINCY0JzQoNCVCivQk9CQ0JvQkNCc0JHQntCoINCI0J7QodCY0J8KK9CT0JDQm9CQ0JzQkdCe0Kgg0JvQkNCh0JvQngor0JPQkNCb0JDQnNCR0J7QqCDQm9CQ0KHQm9CeCivQk9CQ0JvQkdCQ0Kcg0IjQntCW0JXQpAor0JPQkNCb0JXQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0JvQldCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JDQm9CV0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQm9CV0KfQmNCLINCX0J7QoNCQ0J0KK9CT0JDQm9CV0KfQmNCLINCX0J7QoNCQ0J0KK9CT0JDQm9CV0KjQldCSINCW0JjQktCe0IjQmNCdCivQk9CQ0JvQldCo0JXQkiDQlNCj0JHQoNCQ0JLQmtCQCivQk9CQ0JvQldCo0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQk9CQ0JvQldCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQkNCb0JXQotCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQk9CQ0JvQldCi0JjQiyDQktCQ0KHQkAor0JPQkNCb0JXQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCb0JXQotCY0Isg0JfQntCg0JAKK9CT0JDQm9CV0KLQmNCdINCc0JjQm9CY0KbQkAor0JPQkNCb0JXQotCY0J0g0J3QmNCa0J7Qm9CQCivQk9CQ0JvQldCi0JjQnSDQn9CQ0IjQmNCm0JAKK9CT0JDQm9CV0KLQmNCdINCh0JjQnNCQCivQk9CQ0JvQldCi0JjQnSDQodCb0JDQktCa0J4KK9CT0JDQm9CV0KLQmNCdLdCh0JzQmNCiINCg0JDQlNCe0IjQmtCQCivQk9CQ0JvQldCi0JjQnSDQodCi0JXQktCQ0J0KK9CT0JDQm9CV0KLQmNCdINCX0JvQkNCi0JrQngor0JPQkNCb0KTQmCDQiNCe0KHQmNCfCivQk9CQ0JvQpNCYINCc0JjQm9CV0J3QkAor0JPQkNCb0JPQniDQmNCo0KLQktCQ0J0KK9CT0JDQm9CY0KfQmNCLINCR0KDQkNCd0JrQngor0JPQkNCb0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQk9CQ0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQk9CQ0JvQmNCLINCY0JLQkNCd0JrQkAor0JPQkNCb0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JvQmNCLINCI0J7QktCQ0J0KK9CT0JDQm9CY0Isg0IjQntCS0JDQnQor0JPQkNCb0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JDQm9CY0Isg0JrQkNCi0JjQptCQCivQk9CQ0JvQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9CT0JDQm9CY0Isg0InQo9CR0JjQptCQCivQk9CQ0JvQmNCLINCc0JDQoNCY0IjQkNCdCivQk9CQ0JvQmNCLINCc0JjQm9CQ0JTQmNCdCivQk9CQ0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JvQmNCLINCc0JjQm9Ca0JAKK9CT0JDQm9CY0Isg0JzQmNCb0J7QqAor0JPQkNCb0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQkNCb0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JvQmNCLINCc0JjQotCQ0KAKK9CT0JDQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQm9CY0Isg0J3QldCU0JXQidCa0J4KK9CT0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JvQmNCLINCe0JvQk9CQCivQk9CQ0JvQmNCLINCf0JXQotCQ0KAKK9CT0JDQm9CY0Isg0KDQntCW0JjQmtCQCivQk9CQ0JvQmNCLINCh0JDQitCQCivQk9CQ0JvQmNCLINCh0JvQkNCS0JrQkAor0JPQkNCb0JjQiyDQodCi0JXQktCeCivQk9CQ0JvQmNCLINCi0JXQoNCV0JfQkAor0JPQkNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9CQ0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9CQ0JvQmNCm0JrQmCDQgtCj0KDQkAor0JPQkNCb0JjQmiDQldCi0JXQm9Ca0JAKK9CT0JDQm9CY0J/QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CT0JDQm9Ca0J4g0IjQo9Cb0JjQkAor0JPQkNCb0J4g0ILQo9Cg0JAKK9CT0JDQm9Ce0IrQkCDQlNCV0KHQkNCd0JrQkAor0JPQkNCb0J7QitCQINCU0KDQkNCT0J7QidCj0JEKK9CT0JDQm9Ce0IrQkCDQnNCY0J7QlNCg0JDQkwor0JPQkNCb0J7QitCQINCc0JjQoNCa0J4KK9CT0JDQm9Ce0IrQkCDQoNCQ0JTQlQor0JPQkNCb0J7QktCY0Isg0ILQntCg0ILQlQor0JPQkNCb0J7QktCY0Isg0ILQo9Cg0JAKK9CT0JDQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQk9CQ0JvQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JPQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkCDQlNCgCivQk9CQ0JvQntCS0JjQiyDQmNCS0JjQptCQCivQk9CQ0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CT0JDQm9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0JPQkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JPQkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JPQkNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0JDQm9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQk9CQ0JvQntCS0JjQiyDQodCi0JXQktCeCivQk9CQ0JvQntCS0JjQiyDQl9Ce0KDQmtCQCivQk9CQ0JvQo9ChINCb0JDQodCb0J4KK9CT0JDQnNCR0JXQoCDQodCb0J7QkdCe0JTQkNCdCivQk9CQ0J3Qj9CYINCh0JDQktCa0JAKK9CT0JDQndCT0JvQmCDQkNCd0JAKK9CT0JDQndCY0Isg0JDQm9Ce0IjQl9CY0IjQlQor0JPQkNCd0JjQiyDQkNCb0J7QiNCX0JjQiNCVCivQk9CQ0J3QmNCLINCc0JjQqNCeCivQk9CQ0J3QmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQk9CQ0J3QmNCLINCX0JTQldCd0JrQngor0JPQkNCd0JjQiyDQl9Ce0KDQmNCm0JAKK9CT0JDQitCYINCh0JDQnNCj0JXQmwor0JPQkNCd0KLQkNCgINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQk9CQ0J3QotCQ0KAg0KTQmNCb0JjQnwor0JPQkNCd0KLQkNCgINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0JPQkNCg0KfQldCSINCU0JDQndCY0KbQkAor0JPQkNCg0KfQldCSINCc0JjQm9Cj0KLQmNCdCivQk9CQ0KDQp9CV0JLQmNCLINCf0JXQoNCeCivQk9CQ0KDQp9CV0JLQmNCLINCf0JXQoNCeCivQk9CQ0KDQkNCo0JXQktCY0Isg0JzQmNCb0JrQkAor0JPQkNCg0JDQkdCQINCQ0J3QlNCg0JjQiNCQCivQk9CQ0KDQkNCR0JDQndCU0JjQiyDQgtCe0KDQgtCVCivQk9CQ0KDQkNCR0JDQndCU0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JDQoNCQ0JHQkNCd0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0KDQkNCR0JDQndCU0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQoNCQ0JHQkNCd0KLQmNCdINCY0JLQkNCdCivQk9CQ0KDQkNCR0JDQndCi0JjQnSDQnNCY0JvQntCS0JDQnQor0JPQkNCg0JDQkdCQ0J3QotCY0J0g0KHQotCV0JLQkNCdCivQk9CQ0KDQkNCYINCR0JXQm9CQCivQk9CQ0KDQkNCYINCa0J7QoNCd0JXQm9CY0IjQkAor0JPQkNCg0JDQiCDQkdCg0JDQndCY0JzQmNCgCivQk9CQ0KDQkNCIINCI0JXQm9CV0J3QkAor0JPQkNCg0JDQiCDQntCb0JPQkAor0JPQkNCg0JDQm9CV0IjQmNCLINCS0JXQoNCY0KbQkAor0JPQkNCg0JDQn9CY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JPQkNCg0JTQkNCo0JXQktCY0Isg0JzQmNCb0J7QqAor0JPQkNCg0JTQkNCo0JXQktCY0Ist0KHQotCg0JjQp9CV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQk9CQ0KDQlNCQ0KjQldCS0JjQiyDQktCV0KHQldCb0JjQnQor0JPQkNCg0JTQmNCLINCQ0JvQmNCI0JAKK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQgtCe0KDQgtCVCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0JHQntCg0JjQodCb0JDQkgor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCR0KDQkNCd0JjQnNCY0KAKK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQptCS0JXQotCQCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0JzQmNCe0KDQmtCQCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0J3QldCU0JXQidCa0J4KK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQk9CQ0KDQldCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQkNCg0JXQktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JAKK9CT0JDQoNCY0Isg0JbQkNCg0JrQngor0JPQkNCg0JjQiyDQm9CQ0JfQkNCgCivQk9CQ0KDQmNCLINCb0KPQmtCQCivQk9CQ0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQoNCY0Isg0J3QkNCU0JAKK9CT0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQk9CQ0KDQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JPQkNCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CT0JDQoNCe0JLQndCY0JrQntCSINCC0J7QoNCC0JUKK9CT0JDQoNCe0JLQndCY0JrQntCSINCR0J7QoNCa0JAKK9CT0JDQoNCi0J3QldCgINCf0JXQotCQ0KAKK9CT0JDQoNCj0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CT0JDQoNCj0J3QntCS0JjQiyDQktCQ0KHQkAor0JPQkNCi0JDQm9CeINCT0J7QoNCQ0J0KK9CT0JDQotCQ0JvQniDQoNCQ0KLQmtCeCivQk9CQ0KLQkNCg0JjQiyDQltCV0InQmtCeCivQk9CQ0KLQkNCg0JjQiyDQltCV0InQmtCeCivQk9CQ0KLQkNCg0JjQiyDQkdCe0KjQmtCeCivQk9CQ0KLQkNCg0JjQiyDQlNCg0JDQltCVCivQk9CQ0KLQkNCg0JjQiyDQnNCQ0J3QntCI0JvQngor0JPQkNCi0JDQoNCY0Isg0KHQkNCS0JrQkAor0JPQkNCi0JDQoNCY0Isg0KHQotCQ0J3QkAor0JPQkNCi0JDQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQkNCi0JDQoNCY0Isg0JfQm9CQ0KLQmNCR0J7QoAor0JPQkNCi0JXQoCDQiNCe0KHQmNCfCivQk9CQ0KPQlNCV0IrQmCDQk9CQ0JHQoNCY0IjQldCb0JAKK9CT0JDQo9CU0JXQitCYINCc0JDQotCY0JvQlAor0JPQkNCj0JTQldCK0Jgg0KLQmNCS0JDQlNCQ0KAKK9CT0JDQktCQINCQ0JvQldCa0KHQldCICivQk9CQ0JLQkNCd0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkiDQkNCU0JLQntCa0JDQogor0JPQkNCS0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JPQkNCS0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JPQkNCS0JDQndCh0JrQmCDQlNCQ0KDQkAor0JPQkNCS0JDQndCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0JTQo9Co0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQk9CQ0JLQoNCY0JvQngor0JPQkNCS0JDQndCh0JrQmCDQmNCS0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQiNCV0JvQldCd0JAKK9CT0JDQktCQ0J3QodCa0Jgg0IjQo9CU0JjQotCQCivQk9CQ0JLQkNCd0KHQmtCYINCa0J7QndCh0KLQkNCd0KLQmNCdINCU0KAKK9CT0JDQktCQ0J3QodCa0Jgg0JrQntCh0KLQkCDQlNCf0Jsg0JjQndCTCivQk9CQ0JLQkNCd0KHQmtCYINCa0J7QodCi0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JPQkNCS0JDQndCh0JrQmCDQm9Cj0JrQkAor0JPQkNCS0JDQndCh0JrQmCDQnNCQ0KDQk9CY0KLQkAor0JPQkNCS0JDQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQk9CQ0JLQkNCd0KHQmtCYINCd0JDQlNCQCivQk9CQ0JLQkNCd0KHQmtCYINCd0J7QktCQ0JoKK9CT0JDQktCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0JPQkNCS0JDQndCh0JrQmCDQn9CV0KLQoNCQCivQk9CQ0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQodCS0JXQotCe0JfQkNCgCivQk9CQ0JLQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0JPQkNCS0JDQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQktCQ0KDQmNCLINCT0JDQktCg0JjQm9CeCivQk9CQ0JLQkNCg0JjQiyDQiNCV0KDQldCc0JjQiNCVCivQk9CQ0JLQkNCg0JjQiyDQidCj0JHQmNCm0JAKK9CT0JDQktCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JLQm9CY0Jog0JPQldCg0JPQldCJCivQk9CQ0JLQntCU0Jgg0JXQodCi0JXQoAor0JPQkNCS0KDQkNCdINCT0J7QiNCa0J4KK9CT0JDQktCg0JDQnSDQidCj0JHQntCc0JjQoAor0JPQkNCS0KDQkNCd0KfQmNCLINCC0KPQoNCC0JjQptCQCivQk9CQ0JLQoNCQ0J3Qp9CY0Isg0IjQntCS0JDQnQor0JPQkNCS0KDQkNCd0KfQmNCLINCa0JDQotCY0KbQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCc0JDQoNCT0JjQotCQCivQk9CQ0JLQoNCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JLQoNCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JLQoNCQ0J3Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCS0KDQkNCd0JjQiyDQk9Ce0IjQmtCeCivQk9CQ0JLQoNCQ0J3QmNCLINCY0JvQmNCI0JAKK9CT0JDQktCg0JDQndCY0Isg0JfQktCV0JfQlNCQ0J3QkAor0JPQkNCS0KDQkNCd0J7QkiDQkdCe0KHQkAor0JPQkNCS0KDQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQk9CQ0JLQoNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQk9CQ0JLQoNCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCS0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQk9CQ0JLQoNCY0Isg0JbQmNCS0JrQkAor0JPQkNCS0KDQmNCLINCC0J7QoNCC0JUKK9CT0JDQktCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JDQktCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JDQktCg0JjQiy3Qk9CQ0JfQlNCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JLQoNCY0Isg0JjQktCQ0J0KK9CT0JDQktCg0JjQiyDQmNCS0JDQnQor0JPQkNCS0KDQmNCLINCI0J7QktCQ0J0KK9CT0JDQktCg0JjQiyDQiNCe0JLQngor0JPQkNCS0KDQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCS0KDQmNCLINCc0JjQpdCQ0IjQm9CeCivQk9CQ0JLQoNCY0Isg0JzQmNCb0JDQnQor0JPQkNCS0KDQmNCLINCc0JjQm9CQ0J0KK9CT0JDQktCg0JjQiyDQnNCY0JvQldCd0JAKK9CT0JDQktCg0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JLQoNCY0Isg0JzQmNCb0J7QqAor0JPQkNCS0KDQmNCLINCc0JjQoNCa0J4KK9CT0JDQktCg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JLQoNCY0Isg0J/QldCi0JDQoAor0JPQkNCS0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQk9CQ0JLQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JPQkNCS0KDQmNCLINCh0JXQndCa0JAKK9CT0JDQktCg0JjQiyDQodCb0JDQktCa0JAKK9CT0JDQktCg0JjQiyDQodCf0JDQodCe0IjQlQor0JPQkNCS0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CT0JDQktCg0JjQiyDQktCV0JvQmNCd0JrQkAor0JPQkNCS0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQiyDQl9Ce0KDQkNCdCivQk9CQ0JLQoNCY0Isg0JfQntCg0JAKK9CT0JDQktCg0JjQm9Ce0JIg0JbQmNCS0JrQkAor0JPQkNCS0KDQmNCb0J7QkiDQkNCd0JrQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JIg0JHQntCT0JTQkNCdCivQk9CQ0JLQoNCY0JvQntCSINCT0J7QoNCU0JDQndCQCivQk9CQ0JLQoNCY0JvQntCSINCl0JXQoNCc0JjQndCQCivQk9CQ0JLQoNCY0JvQntCSINCI0KPQm9Ca0JAKK9CT0JDQktCg0JjQm9Ce0JIg0InQo9CR0JjQptCQCivQk9CQ0JLQoNCY0JvQntCSINCc0JDQoNCi0JAKK9CT0JDQktCg0JjQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9CT0JDQktCg0JjQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9CT0JDQktCg0JjQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQktCg0JjQm9Ce0JIg0KDQkNCU0JjQktCe0IgKK9CT0JDQktCg0JjQm9Ce0JIg0KHQm9CQ0JLQmtCeCivQk9CQ0JLQoNCY0JvQntCSINCh0JzQmNCJ0JAKK9CT0JDQktCg0JjQm9Ce0JIg0KLQntCU0J7QoAor0JPQkNCS0KDQmNCb0J7QkiDQo9Cg0J7QqAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JbQmNCa0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQltCY0JLQmtCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQltCY0JLQntCI0JjQnSDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCV0JzQmNCbCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQk9Cg0J7Ql9CU0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCa0JvQkNCj0JTQmNCI0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCQ0KDQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0IjQlQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQotCQ0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCgINCf0KDQntCkCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCf0JDQktCb0JUKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCg0JDQiNCa0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JDQktCQINCU0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JDQktCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeINCU0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0KLQldCS0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KLQntCo0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCi0J7QlNCe0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JXQoNCQINCU0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JXQoNCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQl9Cb0JDQotCQCivQk9CQ0JLQoNCY0JvQntCS0KHQmtCYINCf0JDQktCb0JjQndCQCivQk9CQ0JLQoNCe0JLQmNCLINCT0J7QoNCQ0J0KK9CT0JDQktCg0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CT0JDQktCg0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlQor0JPQkNCS0KDQntCS0JjQiyDQodCS0JXQotCb0JDQndCQINCb0J7QmtCQ0JsKK9CT0JDQl9CQ0KTQmCDQm9CQ0KHQm9CeCivQk9CQ0JfQlNCY0Isg0JHQntCg0JjQktCe0IgKK9CT0JDQl9CV0J/QntCSINCY0JvQmNCI0JAKK9CT0JDQl9CY0Isg0JjQktCQ0J0KK9CT0JDQl9CY0JHQkNCg0JjQiyDQmNCX0JXQotCQCivQk9CQ0JfQmNCR0JDQoNCY0Isg0IjQldCb0JXQndCQCivQk9CQ0JfQmNCR0JDQoNCY0Isg0IjQntCS0JDQndCa0JAKK9CT0JDQl9CY0JHQkNCg0JjQiyDQodCY0JzQkAor0JPQkNCX0JjQiNCQINCI0J7QktCQ0J0KK9CT0JDQl9CY0JLQntCU0JAg0JPQntCI0JrQngor0JPQldCn0JXQktCh0JrQmCDQodCg0JXQotCa0J4KK9CT0JXQkdCQ0KPQldCgINCV0KDQktCY0J0g0JTQoAor0JPQldCR0JXQm9ChINCQ0J3QkAor0JPQldCm0Jgg0ILQo9Cg0JAKK9CT0JXQlNCV0JvQntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CT0JXQlNCV0JvQntCS0KHQmtCYINCh0J7QpNCY0IjQkAor0JPQldCT0JXQqCDQiNCj0JvQmNCI0JDQndCQCivQk9CV0JPQldCoINCd0JDQndCU0J7QoAor0JPQldCT0JXQqCDQodCb0JDQktCY0KbQkAor0JPQldCT0JXQndCR0JDQo9CV0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0JPQldCT0JXQndCR0JDQo9CV0KAg0JjQm9Ce0J3QmtCQCivQk9CV0JPQldCd0JHQkNCj0JXQoCDQl9Ce0KDQkAor0JPQldCT0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCT0JjQiyDQndCV0JzQkNCK0JAKK9CT0JXQm9CV0Jgg0IjQldCd0JUKK9CT0JXQm9CV0KAg0KjQkNCd0JTQntCgCivQk9CV0JvQldCgINCC0KPQm9CQCivQk9CV0JvQldCgINCQ0JTQkNCcCivQk9CV0JvQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CV0JvQldCgINCR0JXQm9CQCivQk9CV0JvQldCgINCI0JXQm9CY0KHQkNCS0JXQotCQCivQk9CV0JvQldCgINCI0J7QktCQ0J0KK9CT0JXQm9CV0KAg0JvQkNCh0JvQngor0JPQldCb0JXQoCDQm9CQ0KHQm9CeCivQk9CV0JvQldCgINCc0JDQoNCY0IjQkAor0JPQldCb0JXQoCDQnNCQ0KDQotCQCivQk9CV0JvQldCgINCe0JvQk9CQCivQk9CV0JvQldCgLdCf0JXQotCa0J7QktCY0Isg0JPQmNCX0JXQm9CQCivQk9CV0JvQldCgINCi0JjQkdCe0KAKK9CT0JXQidCY0Isg0JzQkNCi0J4KK9CT0JXQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CV0J3QpiDQpNCV0KDQldCd0KYKK9CT0JXQndCmINCb0JDQiNCe0KgKK9CT0JXQndCm0JXQmyDQiNCj0JvQmNCI0JDQndCQCivQk9CV0J3QptCV0Jsg0JzQkNCg0JjQiNCQ0J3QkAor0JPQldCd0KbQldCbINCS0JDQm9CV0KDQmNCI0JAKK9CT0JXQndCm0Jgg0IjQntCh0JjQnwor0JPQldCd0JXQktCQ0IjQnSDQgtCj0KDQkAor0JPQldCd0JXQktCQ0IjQnSDQiNCe0JLQkNCdCivQk9CV0J3QldCS0JDQiNCdINCa0JDQoNCb0J4KK9CT0JXQndCV0JLQkNCI0J0g0JvQkNCI0J7QqAor0JPQldCd0JXQktCQ0IjQnSDQm9CQ0IjQntCoCivQk9CV0J3QntCS0JAg0JzQkNCI0JTQkCDQlNCY0J/QmyDQmNCd0JMKK9CT0JXQndCe0JLQkCDQnNCY0JvQmNCm0JAg0JTQmNCf0Jsg0JjQndCTCivQk9CV0J7QoNCT0JjQldCSINCb0JXQn9Ce0KHQkNCS0JAKK9CT0JXQntCg0JPQmNCV0JLQodCa0Jgg0J/QldCg0J4KK9CT0JXQntCg0JPQmNCV0JLQodCa0Jgg0JLQkNCh0JjQmwor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQltCY0JLQmtCeCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCY0JLQkNCd0JAKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0JvQkNCX0JAKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0InQo9CR0JjQqNCQCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0J3QldCh0KLQntCgCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CT0JXQoNCQINCY0JHQntCJ0JAKK9CT0JXQoNCQ0Jog0JXQnNCY0JvQmNCI0JAKK9CT0JXQoNCQ0KHQmNCc0J7QktCh0JrQmCDQl9Cb0JDQotCVCivQk9CV0KDQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JPQldCg0JTQmNCI0JDQnSDQp9CV0JTQntCc0JjQoAor0JPQldCg0JUg0JvQkNCI0J7QqAor0JPQldCg0JUg0JfQntCb0KLQkNCdCivQk9CV0KDQldCm0Jgg0IjQo9Cg0JDQiAor0JPQldCg0JXQkyDQltCj0JbQkNCd0JAKK9CT0JXQoNCV0JMg0JDQndCU0KDQkNCoCivQk9CV0KDQldCTINCR0JvQkNCd0JrQkAor0JPQldCg0JXQkyDQldCj0JPQldCdCivQk9CV0KDQldCTINCi0JjQkdCe0KAKK9CT0JXQoNCT0JXQpyDQodCc0JjQidCQCivQk9CV0KDQk9CV0Ikg0KjQmNCc0J7QnQor0JPQldCg0Jgg0KLQldCg0JXQl9CQCivQk9CV0KDQmNCLINCW0JDQoNCa0J4KK9CT0JXQoNCY0Isg0ILQntCg0ILQlQor0JPQldCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCg0JjQiyDQkNCd0KLQntCdCivQk9CV0KDQmNCLINCm0JLQldCi0JAKK9CT0JXQoNCY0Isg0JPQmNCd0JAKK9CT0JXQoNCY0Isg0JPQntCg0JTQkNCd0JAKK9CT0JXQoNCY0Isg0JjQktCQ0J0KK9CT0JXQoNCY0Isg0JjQktCQ0J0KK9CT0JXQoNCY0Isg0JrQntCh0KLQkAor0JPQldCg0JjQiyDQmtCe0JLQmNCm0JAKK9CT0JXQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0JXQoNCY0Isg0JzQkNCg0JjQiNCQCivQk9CV0KDQmNCLINCc0JjQm9CQ0J0KK9CT0JXQoNCY0Isg0JzQmNCb0J7QqAor0JPQldCg0JjQiyDQnNCY0JvQntCoCivQk9CV0KDQmNCLINCc0JjQoNCa0J4KK9CT0JXQoNCY0Isg0J3QldCU0JXQidCa0J4KK9CT0JXQoNCY0Isg0J3QldCh0KLQntCgCivQk9CV0KDQmNCLINCe0JHQoNCQ0JQKK9CT0JXQoNCY0Isg0J/QldCi0JDQoAor0JPQldCg0JjQiyDQoNCQ0JTQmNCd0JrQkAor0JPQldCg0JjQiyDQodCi0JXQktCQ0J0KK9CT0JXQoNCY0KUg0JDQndCU0KDQmNCI0JAKK9CT0JXQoNCbINCk0JXQoNCU0J4KK9CT0JXQoNCbINCc0JDQoNCY0IjQkAor0JPQldCg0JvQkCDQlNCg0JDQk9CQ0J3QkAor0JPQldCg0JvQkCDQm9CQ0JTQmNCh0JvQkNCSCivQk9CV0KDQm9CQINCi0JXQntCU0J7QoAor0JPQldCg0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JPQldCg0JzQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CT0JXQoNCd0JDQpyDQgtCe0KDQgtCVCivQk9CV0KDQndCQ0Kcg0KTQoNCQ0IrQkAor0JPQldCg0J3QkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9CT0JXQoNCeINCC0JXQoNCCCivQk9CV0KDQniDQlNCj0KjQkNCd0JrQkAor0JPQldCg0J4g0IjQkNCd0J7QqAor0JPQldCg0J4g0IjQntCW0JXQpAor0JPQldCg0J4g0JrQkNCg0JvQngor0JPQldCg0J4g0JvQkNCI0J7QqAor0JPQldCg0J4g0JzQkNCg0JPQmNCi0JAKK9CT0JXQoNCe0JvQlCDQiNCQ0JrQntCRCivQk9CV0KDQntCb0JQg0JvQkNCh0JvQngor0JPQldCg0J7QkiDQkNCd0JPQldCbINCU0JjQn9CbINCY0J3Qkwor0JPQldCg0KLQndCV0KAg0JDQndCQCivQk9CV0KDQotCd0JXQoCDQpNCg0JDQitCQCivQk9CV0KDQotCd0JXQoCDQiNCe0JbQldCkCivQk9CV0KDQotCd0JXQoCDQoNCV0JbQlQor0JPQldCi0JXQmyDQpdCV0JvQnNCj0KIKK9CT0JXQlyDQiNCQ0J3QntCoCivQk9CV0Jcg0IjQldCb0JjQptCQCivQk9CV0Jcg0JrQkNCi0JjQptCQCivQk9CV0Jcg0KLQmNCR0J7QoAor0JPQldCXINCS0JXQoNCe0J3QmNCa0JAKK9CT0KXQkNCd0JTQntCj0KAt0KjQkNCbINCI0KPQm9CY0IjQkNCd0JAKK9CT0JjQkNCU0KDQntCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JjQkdCQ0J3QmNCm0JAg0JPQldCe0KDQk9CY0J3QkAor0JPQmNCT0JAg0KHQoNCV0KLQldCdCivQk9CY0JPQmNCLINCc0JjQntCc0JjQoAor0JPQmNCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQmNCT0JjQiyDQl9Ce0KDQkNCdCivQk9CY0JrQmNCLINCR0J7QltCY0JTQkNCgCivQk9CY0JrQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQmNCa0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQk9CY0JrQntCS0KHQmtCYINCc0JjQndCeCivQk9CY0JvQldCX0JDQnSDQmtCe0KDQmNCe0JvQkNCdCivQk9CY0JvQkyDQmNCg0JXQndCQCivQk9CY0JvQmNCLINCU0KDQkNCT0JDQnQor0JPQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JjQnNCR0J7QqCDQlNCe0JHQoNCY0JLQntCI0JUKK9CT0JjQndCm0KPQiSDQodCV0KDQk9CY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CT0JjQntCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CY0J7QnSDQkNCd0JAg0JTQoAor0JPQmNCe0J0g0JjQqNCi0JLQkNCdCivQk9CY0J7QnSDQmtCQ0JvQnNCQ0J0KK9CT0JjQntCdINCd0JDQndCU0J7QoAor0JPQmNCg0JjQiyDQnNCQ0KLQmNCI0JAKK9CT0JjQoNCY0KYg0JHQldCb0JAKK9CT0JjQoNCY0KYg0JXQm9CV0J3QkAor0JPQmNCg0JjQpiDQmNCc0KDQlQor0JPQmNCg0JjQpiDQiNCe0JbQldCkCivQk9CY0KDQmNCmINCb0JDQodCb0J4KK9CT0JjQoNCY0KYt0JzQntCa0KPQqCDQmtCb0JDQoNCQCivQk9CY0KDQmNCX0JQg0JvQkNCh0JvQniDQndCe0JLQmNCd0JDQoAor0JPQmNCg0J3QoiDQoNCe0JfQkNCb0JjQiNCQCivQk9CY0KEg0KXQldCU0JLQmNCT0JAKK9CT0IjQkNCk0J4g0JzQkNCi0JjQiNCQCivQk9CI0JXQoCDQktCb0JDQlNCY0JzQmNCgCivQk9Cb0JDQlNCY0Kgg0KHQotCV0JLQkNCdCivQk9Cb0JDQlNCY0Isg0JzQmNCb0JDQnQor0JPQm9CQ0JTQmNCLINCg0JDQiNCa0J4KK9CT0JvQkNCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9Cb0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JvQkNCU0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CT0JvQkNCI0KUg0JPQldCe0KDQkwor0JPQm9CQ0JzQntCn0JDQndCY0J0g0J3QldCS0JXQndCa0JAKK9CT0JvQkNCc0J7Qp9CQ0J3QmNCdINCd0JXQktCV0J3QmtCQCivQk9Cb0JDQnNCe0KfQkNCd0JjQnSDQn9CV0KDQngor0JPQm9CQ0JzQntCn0JDQndCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JPQm9CQ0JzQntCn0JjQiyDQlNCQ0J3QlQor0JPQm9CQ0JzQntCn0JjQiyDQodCd0JXQltCQ0J3QkAor0JPQm9CQ0JzQntCn0JvQmNCI0JAg0KDQo9CW0JjQptCQCivQk9Cb0JDQndCmINCQ0J3QotCj0J0KK9CT0JvQkNCh0J7QktCQ0KYg0JzQkNCg0KLQkAor0JPQm9CQ0JLQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JvQkNCS0JDQqCDQltCQ0KDQmtCeCivQk9Cb0JDQktCQ0Kgg0IjQntCS0J4KK9CT0JvQkNCS0JDQqCDQnNCY0JvQkNCdCivQk9Cb0JDQktCQ0Kgt0KLQoNCR0JjQiyDQkdCe0KjQmtCeCivQk9Cb0JDQktCQ0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0JPQm9CQ0JLQkNCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CT0JvQkNCS0JDQqNCa0Jgg0JbQmNCS0J7QiNCY0J0KK9CT0JvQkNCS0JDQqNCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JvQkNCS0JDQqNCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CT0JvQkNCS0JDQqNCa0Jgg0JDQndCC0JXQm9Ca0JAKK9CT0JvQkNCS0JDQqNCa0Jgg0JHQntCT0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQm9CQ0JLQkNCo0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JvQkNCS0JDQqNCa0Jgg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQk9Cb0JDQktCQ0KjQmtCYINCU0KDQkNCT0JDQnQor0JPQm9CQ0JLQkNCo0JrQmCDQlNCj0KjQkNCdCivQk9Cb0JDQktCQ0KjQmtCYINCT0JvQmNCo0JAKK9CT0JvQkNCS0JDQqNCa0Jgg0JzQmNCb0KPQotCY0J0KK9CT0JvQkNCS0JDQqNCa0Jgg0J3QldCc0JDQitCQCivQk9Cb0JDQktCQ0KjQmtCYINCh0JjQnNCQCivQk9Cb0JDQktCQ0KjQmtCYINCh0JjQndCY0KjQkAor0JPQm9CQ0JLQkNCo0JrQmCDQodCc0JjQidCa0JAKK9CT0JvQkNCS0JDQnSDQiNCe0JLQkNCdCivQk9Cb0JDQktCQ0J3QmNCLINCR0J7QodCY0InQmtCQCivQk9Cb0JDQktCQ0J3QmNCLINCI0KPQm9Ca0JAKK9CT0JvQkNCS0JDQndCY0Isg0JzQmNCg0JrQngor0JPQm9CQ0JLQkNCg0JTQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQm9CQ0JLQkNCg0JTQkNCd0J7QkiDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0JvQkNCS0JDQoNCU0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQk9Cb0JDQktCQ0KDQlNCQ0J3QntCSINCh0J7QmtCeCivQk9Cb0JDQktCQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JvQkNCS0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JvQkNCS0JjQp9CY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JPQm9CQ0JLQmNCLINCR0J7QqNCa0J4KK9CT0JvQkNCS0JjQiyDQk9CQ0JLQoNCeCivQk9Cb0JDQktCY0Isg0IjQldCb0JrQkAor0JPQm9CQ0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CT0JvQkNCS0JjQndCY0Isg0IjQntCS0J4KK9CT0JvQkNCS0JjQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JvQkNCS0J7Qp9CV0JLQmNCLINCY0JvQmNCI0JAKK9CT0JvQldCC0JAg0JzQmNCb0JXQndCa0J4KK9CT0JvQldCU0JjQiyDQnNCY0JvQmNCm0JAKK9CT0JvQmNCo0JjQiyDQgtCe0KDQgtCeCivQk9Cb0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQm9CY0KjQmNCLINCR0KDQkNCd0JrQngor0JPQm9CY0KjQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CT0JvQmNCo0JjQiyDQmNCb0JjQiNCQCivQk9Cb0JjQqNCY0Isg0JjQktCQ0J0KK9CT0JvQmNCo0JjQiyDQiNCV0JvQmNCm0JAKK9CT0JvQmNCo0JjQiyDQiNCe0JLQkNCdCivQk9Cb0JjQqNCY0Ist0JrQldCh0JXQkyDQktCQ0JvQldCg0JjQiNCQCivQk9Cb0JjQqNCY0Isg0InQo9CR0JjQqNCQCivQk9Cb0JjQqNCY0Isg0JzQmNCb0JXQktCQCivQk9Cb0JjQqNCY0Isg0J3QldCd0JDQlAor0JPQm9CY0KjQmNCLINCf0KDQldCU0KDQkNCTCivQk9Cb0JjQqNCY0Isg0KDQkNCU0J7QnNCY0KAKK9CT0JvQmNCo0JjQiyDQodCY0JzQngor0JPQm9CY0KjQmNCLINCh0KDQldCi0JAKK9CT0JvQmNCo0JjQiyDQktCV0KHQndCQCivQk9Cb0JjQqNCY0Isg0JfQntCg0JDQnQor0JPQm9CY0KjQmNCdINCC0J7QoNCC0JUKK9CT0JvQmNCo0JjQnSDQkdCg0JDQndCa0JAKK9CT0JvQmNCo0JjQnSDQndCV0J3QkNCUCivQk9Cb0JjQqNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JPQm9CY0JHQmNCLINCc0JjQm9CQ0J0KK9CT0JvQmNCR0J7QotCQINCS0JvQkNCU0J4KK9CT0JvQmNCT0JjQiyDQltCV0InQmtCQCivQk9Cb0JjQk9CY0Isg0JzQmNCg0JAKK9CT0JvQmNCT0JjQiyDQndCV0JTQldCJ0JrQngor0JPQm9CY0JPQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CT0JvQmNCT0J7QoNCV0JLQmNCLINCU0KPQqNCa0J4KK9CT0JvQmNCT0J7QoNCV0JLQmNCLINCi0J7QnNCeCivQk9Cb0JjQk9Ce0KDQmNCLINCW0JXQidCa0J4KK9CT0JvQmNCT0J7QoNCY0Isg0JbQmNCS0J7QiNCY0J0KK9CT0JvQmNCT0J7QoNCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CT0JvQmNCT0J7QoNCY0Isg0JDQndCC0JXQm9Ca0JAKK9CT0JvQmNCT0J7QoNCY0Isg0KbQktCV0KLQkNCd0JrQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JvQmNCT0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0JjQqNCQCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0JjQptCQCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0JjQitCQCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CT0JvQmNCT0J7QoNCY0Isg0IjQldCb0JXQndCQCivQk9Cb0JjQk9Ce0KDQmNCLINCa0JDQotCY0KbQkAor0JPQm9CY0JPQntCg0JjQiyDQidCj0JHQntCc0JjQoAor0JPQm9CY0JPQntCg0JjQiyDQnNCY0JvQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCc0JjQm9CQ0J0KK9CT0JvQmNCT0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JvQmNCT0J7QoNCY0Isg0JzQm9CQ0JTQldCdCivQk9Cb0JjQk9Ce0KDQmNCLINCd0JjQmtCe0JvQkAor0JPQm9CY0JPQntCg0JjQiyDQoNCQ0JTQmNCo0JAKK9CT0JvQmNCT0J7QoNCY0Isg0KHQotCQ0J3QntCI0JUKK9CT0JvQmNCT0J7QoNCY0Isg0KHQotCV0JLQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCh0KLQldCS0JDQnQor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCa0KDQodCi0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0J/QldCi0KDQkAor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCg0KPQltCY0KbQkAor0JPQm9CY0JPQntCg0JjQnSDQgtCj0KDQgtCY0J3QmtCQCivQk9Cb0JjQk9Ce0KDQmNCdINCR0J7QiNCQ0J3QkAor0JPQm9CY0JPQntCg0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQk9Cb0JjQk9Ce0KDQmNCdINCh0JvQkNCS0JjQptCQCivQk9Cb0JjQk9Ce0KDQmNCdINCh0KLQldCS0JDQnQor0JPQm9CY0JPQntCg0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQk9Cb0JjQk9Ce0KDQmNCdINCX0J7QoNCQ0J0KK9CT0JvQmNCT0J7QoNCY0J0g0JfQntCg0JrQkAor0JPQm9CY0JPQntCg0J7QkiDQlNCV0KHQmNCc0JjQoAor0JPQm9CY0JPQntCg0J7QkiDQiNCe0JLQkNCdCivQk9Cb0JjQk9Ce0KDQntCSINCb0JXQmtCQCivQk9Cb0JjQk9Ce0KDQntCSINCJ0KPQkdCe0JzQmNCgCivQk9Cb0JjQk9Ce0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9CT0JvQmNCT0J7QoNCe0JLQodCa0Jgg0KLQoNCQ0IjQmtCeCivQk9Cb0JjQndCi0JjQiyDQnNCY0JvQlQor0JPQm9CY0J3QotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CT0JvQmNCd0KLQmNCLINCd0JjQmtCe0JvQkAor0JPQm9CY0J3QotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JPQm9CY0J3QotCY0Isg0KHQkNCS0JrQkAor0JPQm9CY0J3QotCY0Isg0JLQldCh0JXQm9Ca0JAKK9CT0JvQntCW0JDQndCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0JvQntCW0JDQndCh0JrQmCDQn9CV0KLQkNCgCivQk9Cb0J7QltCQ0J3QodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JPQm9Ce0JPQntCK0JDQpiDQktCY0KLQntCc0JjQoAor0JPQm9Ce0JPQntCS0KfQkNCdINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQk9Cb0J7Qk9Ce0JLQkNCmINCI0JXQktCg0JXQnAor0JPQm9Ce0JPQntCS0JDQpiDQmtCe0KDQndCV0JvQmNCI0JAKK9CT0JvQntCT0J7QktCQ0KYg0JzQmNCg0JrQngor0JPQm9Ce0JPQntCS0JDQpiDQnNCe0JzQp9CY0JvQngor0JPQm9Cj0KjQkNCmINCR0J7QltCY0JTQkNCgCivQk9Cb0KPQqNCQ0KYg0JTQo9Co0JDQnQor0JPQm9Cj0KjQkNCmINCc0JjQpdCQ0IjQm9CeCivQk9Cb0KPQqNCQ0KYg0JzQmNCb0JDQnQor0JPQm9Cj0KjQkNCmINCc0JjQm9Ce0KgKK9CT0JvQo9Co0JDQpiDQnNCY0JvQntCg0JDQlAor0JPQm9Cj0KjQkNCmINCf0JXQotCQ0KAKK9CT0JvQo9Co0JjQiyDQkdCg0JDQndCa0J4KK9CT0JvQo9Co0JjQptCQINCJ0KPQkdCe0JzQmNCgCivQk9Cb0KPQqNCY0KbQkCDQnNCY0JvQkNCdCivQk9Cb0KPQqNCY0KbQkCDQnNCY0JvQkNCdCivQk9Cb0KPQqNCY0KbQkCDQnNCY0JvQlQor0JPQm9Cj0KjQmNCm0JAg0J3QldCd0JDQlAor0JPQm9Cj0KjQmNCm0JAg0J/QldCi0JDQoAor0JPQm9Cj0KjQmNCm0JAg0KHQm9CQ0ILQkNCd0JAKK9CT0JvQo9Co0JjQptCQINCh0JvQkNCS0JrQkAor0JPQm9Cj0KjQmNCm0JAg0JfQlNCg0JDQktCa0J4KK9CT0JvQo9Cl0JDQmNCLINCQ0J3QgtCV0JvQmtCeCivQk9Cb0KPQpdCQ0IjQmNCLINCR0J7QltCeCivQk9Cb0KPQpdCQ0Jog0JrQkNCg0JvQngor0JPQm9Cj0KXQntCS0JjQiyDQnNCY0JvQntCoCivQk9Cb0KPQpdCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQk9Cb0KPQpdCe0JLQmNCLINCS0JXQidCa0J4KK9CT0JvQo9Cc0JDQpiDQlNCQ0J3QlQor0JPQm9Cj0JzQkNCmINCU0JDQndCY0JvQngor0JPQm9Cj0JzQkNCmINCU0JDQndCY0JvQngor0JPQm9Cj0JzQkNCmINCU0KDQkNCT0JDQnQor0JPQm9Cj0JzQkNCmINCU0KPQqNCQ0J0KK9CT0JvQo9Cc0JDQpiDQk9CQ0JLQoNCQCivQk9Cb0KPQnNCQ0KYg0IjQldCb0JXQndCQCivQk9Cb0KPQnNCQ0KYg0JvQkNCX0J4KK9CT0JvQo9Cc0JDQpiDQidCj0JHQngor0JPQm9Cj0JzQkNCmINCc0JDQk9CU0JDQm9CV0J3QkAor0JPQm9Cj0JzQkNCmINCc0JjQm9CQ0J0KK9CT0JvQo9Cc0JDQpiDQnNCY0JvQlQor0JPQm9Cj0JzQkNCmINCc0JjQntCU0KDQkNCTINCU0KAKK9CT0JvQo9Cc0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQk9Cb0KPQnNCQ0KYg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQk9Cb0KPQnNCY0KfQmNCLINCc0JDQndCU0JAKK9CT0JvQo9CS0JDQmNCLINCC0J7QoNCC0JUKK9CT0JvQo9CS0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0KPQktCQ0IjQmNCLINCI0J7QktCQ0J0KK9CT0JvQo9CS0JDQmtCe0JIg0JzQmNCb0JDQlNCY0J3QmtCQCivQk9Cb0KPQktCQ0JrQntCSINCf0JDQktCb0JUKK9CT0JvQo9CS0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JvQo9CS0IrQkCDQodCi0JXQktCQ0J0KK9CT0JzQmNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JzQmNCX0JjQiyDQndCV0JPQntCS0JDQnQor0JPQnNCY0JfQmNCLINCS0JvQkNCU0JAKK9CT0J3QmNCfINCI0J7QkNCa0JjQnAor0JPQndCY0J8g0JLQldCb0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQk9Cd0JjQnyDQktCV0KDQkAor0JPQndCY0J8g0JLQm9CQ0JTQmNCc0JjQoAor0JPQitCQ0KLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CT0IrQldCnINCh0JLQldCdCivQk9Ce0KfQkNCd0JjQnSDQoNCQ0JTQlQor0JPQntCn0JjQiyDQkNCd0ILQkAor0JPQntCo0JjQiyDQiNCV0JLQoNCV0JwKK9CT0J7QqNCY0Isg0InQmNCJ0JAKK9CT0J7QqNCY0Isg0J/QkNCS0JvQlQor0JPQntCo0JjQiyDQn9CQ0JLQm9CVCivQk9Ce0KjQmNCLINCf0JDQktCb0JUKK9CT0J7QqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQk9Ce0KjQitCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JPQntCC0JXQktCQ0KYg0JHQntCh0JjQidCa0JAKK9CT0J7QkdCV0KYg0JrQkNCi0JjQptCQCivQk9Ce0JHQldCmINCc0JjQm9CQ0J0KK9CT0J7QkdCV0InQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9Ce0JHQldCJ0JjQiyDQodCi0KDQkNCl0JjQitCQCivQk9Ce0JHQldCJ0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CT0J7QkdCV0InQmNCLINCS0KPQmtCQ0JTQmNCdCivQk9Ce0JHQldCJ0JjQiyDQktCj0JoKK9CT0J7QkdCe0KAg0JDQndCQCivQk9Ce0JHQntCgINCb0JDQlNCY0KHQm9CQ0JIKK9CT0J7QkdCe0KAg0JfQntCb0KLQkNCdCivQk9Ce0JHQntCgINCX0J7Qm9Ci0JDQnQor0JPQntCm0JjQiyDQkdCe0JPQntCh0JDQkgor0JPQntCm0JjQiyDQiNCV0JLQoNCe0KHQmNCc0JAKK9CT0J7QptCY0Isg0JLQmNCU0J7QiNCa0J4KK9CT0J7QlNCQINCe0JvQmNCS0JjQiNCQCivQk9Ce0JTQkNCgINCa0JDQotCQ0KDQmNCd0JAKK9CT0J7QlNCY0Isg0JzQkNCg0JjQiNCQCivQk9Ce0JTQmNCLINCX0JLQntCd0JrQngor0JPQntCU0JjQiyDQl9CS0J7QndCa0J4KK9CT0J7QlNCY0J3QkCDQlNCQ0KDQmtCeCivQk9Ce0JTQmNCd0JAg0JzQmNCb0JrQngor0JPQntCU0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQk9Ce0JTQntCo0JXQkiDQmtCg0KHQotCQCivQk9Ce0JTQntCgINCo0JDQndCU0J7QoAor0JPQntCU0J7QoCDQiNCQ0J3QntCoCivQk9Ce0JTQntCgINCI0J7QodCY0J8KK9CT0J7QlNCj0J3QpiDQlNCj0KjQkNCdCivQk9Ce0JPQmNCLINCU0J7QkdCg0JjQm9CeCivQk9Ce0JPQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CT0J7Qk9CY0Isg0JzQkNCg0JAKK9CT0J7Qk9CY0Isg0J/QkNCS0JvQlQor0JPQntCT0JjQiyDQodCb0JDQktCa0J4KK9CT0J7Qk9CY0Isg0JLQldCb0JjQndCa0JAKK9CT0J7Qk9Ce0JvQkNCaINCc0JDQoNCT0JjQotCQCivQk9Ce0JPQntCJ0JXQkiDQnNCY0KXQkNCI0JvQngor0JPQntCT0J7QidCV0JIg0KPQidCQ0J3QkAor0JPQntCT0J7QidCV0JIg0JLQkNCh0JjQm9CY0IjQlQor0JPQntCT0J7QkiDQnNCY0JvQkNCdCivQk9Ce0IjQkNCdINCk0JXQoNCV0J3Qpgor0JPQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0J7QiNCY0Isg0JPQntCI0JrQngor0JPQntCI0JjQiyDQnNCY0JvQldCd0JAKK9CT0J7QiNCY0Isg0JzQmNCb0JUKK9CT0J7QiNCa0J7QkiDQltCY0JLQmtCeCivQk9Ce0IjQmtCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQntCI0JrQntCSINCc0JjQm9CV0J3QkAor0JPQntCI0JrQntCSINCg0JDQlNCe0JzQmNCgCivQk9Ce0IjQmtCe0JIg0JLQkNCh0JjQm9CY0IjQlQor0JPQntCI0JrQntCS0JjQiyDQlNCe0J3QmtCQCivQk9Ce0IjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JPQntCI0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQk9Ce0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0J7QiNCa0J7QktCY0Isg0JPQldCe0KDQk9CY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CT0J7QiNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JPQntCI0JrQntCS0JjQiyDQiNCV0JvQkAor0JPQntCI0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CT0J7QiNCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CT0J7QiNCa0J7QktCY0Isg0JzQmNCi0JAKK9CT0J7QiNCa0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CT0J7QiNCa0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9CT0J7QiNCa0J7QktCY0Isg0J/QkNCS0JvQlQor0JPQntCI0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQngor0JPQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCJ0KPQkQor0JPQntCI0JrQntCS0JjQiyDQodCQ0JLQngor0JPQntCI0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQk9Ce0IjQndCY0Isg0JTQkNCS0J7QoAor0JPQntCI0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JIKK9CT0J7QmtCb0JXQoCDQmNCb0J7QndCQCivQk9Ce0JvQlNCc0JDQnSDQkNCd0JrQmNCm0JAKK9CT0J7Qm9CU0JzQkNCdLdCi0J7QnNCQ0KjQldCS0JjQiyDQldCS0JAKK9CT0J7Qm9CV0Kgg0KDQo9CW0JAKK9CT0J7Qm9CV0J3QmNCLINCh0JvQkNCS0JrQngor0JPQntCb0JXQitCQINCR0KDQkNCd0JrQngor0JPQntCb0JXQitCQINCY0KDQldCd0JAKK9CT0J7Qm9CV0IrQkCDQnNCY0KDQntCh0JvQkNCS0JAKK9CT0J7Qm9CV0IrQkCDQnNCY0KDQntCh0JvQkNCS0JAKK9CT0J7Qm9CV0JLQkCDQndCQ0JTQkAor0JPQntCb0JjQqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9Ce0JvQmNCLINCW0JjQktCQ0J0KK9CT0J7Qm9CY0Isg0ILQntCg0ILQlQor0JPQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQntCb0JjQiyDQkNCd0JjQptCQCivQk9Ce0JvQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JPQntCb0JjQiyDQpNCQ0JjQlAor0JPQntCb0JjQiyDQidCj0JHQntCc0JjQoAor0JPQntCb0JjQiyDQnNCQ0KDQmtCeCivQk9Ce0JvQmNCLINCh0JvQkNCS0JrQkAor0JPQntCb0JjQiyDQodCi0JDQndCa0JAKK9CT0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCb0JjQiyDQktCe0IjQmNCdCivQk9Ce0JvQmNCLINCS0J7QiNCa0J4KK9CT0J7Qm9CY0IjQkNCdINCQ0J3QkAor0JPQntCb0JjQiNCQ0J3QmNCdINCU0KPQqNCQ0J3QmtCQCivQk9Ce0JvQmNCI0JDQndCY0J0g0JXQoNCW0JXQkdCV0KIKK9CT0J7Qm9CY0Jog0J7Qm9CT0JAKK9CT0J7Qm9CY0Jog0KHQm9Ce0JHQntCU0JDQnQor0JPQntCJ0JXQktCQ0KfQmtCYINCU0KDQkNCT0JjQptCQCivQk9Ce0JvQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQntCb0J4g0JTQoNCQ0JPQntCh0JvQkNCSCivQk9Ce0JvQntCn0J7QoNCR0JjQnSDQodCb0JDQktCj0IgKK9CT0J7Qm9Ce0KfQntCg0JTQmNCdINCU0KDQkNCT0J4KK9CT0J7Qm9Ce0KjQmNCdLdCU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9CT0J7Qm9Ce0KjQmNCdINCh0KLQldCS0JjQptCQCivQk9Ce0JvQntCR0J7Qp9CQ0J3QmNCdINCc0JjQm9Ce0KHQkNCSCivQk9Ce0JvQntCc0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0J7Qm9Ce0J3QmNCLINCX0JDQk9Ce0KDQmtCQCivQk9Ce0JvQntCj0KUg0JjQktCQ0J0KK9CT0J7Qm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9CT0J7Qm9Cj0KjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JPQntCb0KPQqNCY0J0g0JTQoNCQ0JPQkNCdCivQk9Ce0JvQo9Co0JjQnSDQidCj0JHQmNCm0JAKK9CT0J7Qm9Cj0KjQmNCdINCJ0KPQkdCe0JzQmNCgCivQk9Ce0JvQo9Co0JjQnS3QnNCY0IvQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Ce0JvQo9Co0JjQnSDQnNCY0J7QlNCg0JDQkwor0JPQntCb0KPQqNCY0J0g0J3QkNCU0JAKK9CT0J7Qm9Cj0KjQmNCdINCd0JjQmtCe0JvQkAor0JPQntCb0KPQkdCY0KfQmNCLINCS0JXQoNCQCivQk9Ce0JvQo9CR0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQk9Ce0JvQo9CR0IjQkNCi0J3QmNCa0J7QktCQINCd0JjQndCQCivQk9Ce0JvQo9CR0J7QkiDQndCQ0JrQkAor0JPQntCb0KPQkdCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQk9Ce0JvQo9CR0J7QktCY0Isg0ILQntCg0ILQlQor0JPQntCb0KPQkdCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Ce0JvQo9CR0J7QktCY0Isg0JDQoNCh0JXQnQor0JPQntCb0KPQkdCe0JLQmNCLINCR0J7QqNCa0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JPQntCb0KPQkdCe0JLQmNCLINCR0KDQkNCd0JrQngor0JPQntCb0KPQkdCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQntCb0KPQkdCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCg0JDQk9CQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JPQntCb0KPQkQor0JPQntCb0KPQkdCe0JLQmNCLINCT0J7Qm9Cj0JEKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQmNCb0JjQiNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JjQktCQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQiNCV0KDQldCc0JjQiNCVCivQk9Ce0JvQo9CR0J7QktCY0Isg0IjQntCS0JDQnQor0JPQntCb0KPQkdCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0InQmNCJ0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQm9Cj0JrQkAor0JPQntCb0KPQkdCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQkNCd0J7QiNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCb0KPQnQor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCb0JDQgtCV0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQndCQ0JTQkAor0JPQntCb0KPQkdCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JPQntCb0KPQkdCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JPQntCb0KPQkdCe0JLQmNCLINCf0JXQoNCY0KjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCh0JXQmtCj0JvQkAor0JPQntCb0KPQkdCe0JLQmNCLINCh0KLQkNCd0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQodCi0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JPQntCb0KPQkdCe0JLQmNCLINCi0J7QnNCeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQk9Ce0JvQo9CR0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JPQntCb0KPQkdCe0JLQmNCLINCX0J7QoNCQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQk9Ce0JvQo9CR0KHQmtCYINCc0JjQm9CY0KbQkAor0JPQntCb0KPQkdCh0JrQmCDQoNCj0JbQkAor0JPQntCc0JHQkNCoINCi0JDQnNCQ0KgKK9CT0J7QnNCR0JDQoCDQqNCQ0J3QlNCe0KAKK9CT0J7QnNCR0JDQoCDQldCb0JjQl9CQ0JHQldCi0JAKK9CT0J7QnNCR0JDQoCDQpNCV0KDQldCd0KYKK9CT0J7QnNCR0JDQoCDQmNCo0KLQktCQ0J0KK9CT0J7QnNCR0JDQoCDQiNCQ0J3QntCoCivQk9Ce0JzQkdCQ0KAg0IjQkNCd0J7QqAor0JPQntCc0JHQkNCgINCa0JDQotCQ0JvQmNCdCivQk9Ce0JzQkdCQ0KAg0JzQmNCl0JDQiQor0JPQntCc0JHQkNCgINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0J7QnNCR0J7QqCDQmNCo0KLQktCQ0J0KK9CT0J7QnNCR0J7QqCDQmNCS0JjQptCQCivQk9Ce0JzQkdCe0Kgg0JrQkNCg0JvQngor0JPQntCc0JHQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0J7QnNCY0KDQkNCmINCW0JjQktCa0J4KK9CT0J7QnNCY0KDQkNCmINCR0KDQkNCd0JrQngor0JPQntCc0JjQoNCQ0KYg0KHQotCe0IjQkNCdCivQk9Ce0J3Qp9CY0J0g0KHQoNCV0KLQmtCeCivQk9Ce0J3QgtCQINCW0JjQktCQ0J0KK9CT0J7QndCC0JAg0JzQmNCb0JXQndCQCivQk9Ce0J3QgtCQINCf0JXQotCQ0KAKK9CT0J7QndCU0JAg0JvQkNCU0JjQodCb0JDQkgor0JPQntCd0JTQkNCgINCg0KPQltCQCivQk9Ce0IrQkCDQkdCg0JDQndCY0JzQmNCgCivQk9Ce0IrQkCDQnNCY0JvQntCh0JvQkNCSCivQk9Ce0IrQkCDQn9CV0KLQkNCgCivQk9Ce0KDQqNCVINCQ0J3QlNCg0JjQiNCQCivQk9Ce0KDQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0JPQntCg0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CT0J7QoNCR0JDQndCe0JIg0JjQktCQ0J0KK9CT0J7QoNCU0JDQndCY0Isg0KHQotCe0IjQkNCdCivQk9Ce0KDQlNCY0Isg0JTQkNCg0JjQndCa0JAKK9CT0J7QoNCU0JjQiyDQk9Ce0IjQmtCeCivQk9Ce0KDQlNCY0Isg0JvQkNCS0JjQndCY0IjQkAor0JPQntCg0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Ce0KDQlNCY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0J7QoNCU0JjQiyDQoNCY0KHQotCeCivQk9Ce0KDQlNCY0Isg0KHQm9CQ0JLQmtCeCivQk9Ce0KDQlNCY0Isg0KHQotCV0JLQkNCdCivQk9Ce0KDQlNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CT0J7QoNCU0J7QqCDQltCj0JbQkNCd0JAKK9CT0J7QoNCV0KfQkNCdINCa0JDQoNCb0J4KK9CT0J7QoNCV0KYg0JTQoNCQ0JPQo9Ci0JjQnQor0JPQntCg0JXQpiDQndCQ0JTQkAor0JPQntCg0JXQitCQ0Jog0KDQo9CU0J7Qm9CkCivQk9Ce0KDQmNCn0JDQndCV0KYg0JzQmNCI0J4KK9CT0J7QoNCI0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQk9Ce0KDQiNCQ0J3QkNCmINCc0JDQoNCY0J0KK9CT0J7QoNCK0JDQmiDQmtCQ0KLQmNCm0JAKK9CT0J7QoNCi0JLQkCDQiNCe0KHQmNCfCivQk9Ce0KHQkNCg0JjQiyDQpNCg0JDQitCQCivQk9Ce0KHQn9CY0Isg0J3QldCU0JXQidCa0J4KK9CT0J7QodCf0J7QgtCY0J3QkNCn0JrQmCDQoNCQ0JTQntCS0JDQnQor0JPQntCh0J/QntCU0JjQndCe0JLQmNCLINCY0JLQkNCdCivQk9Ce0KHQotCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0J7QodCi0JjQnNCY0KDQntCS0JjQiyDQnNCQ0KDQmNCdCivQk9Ce0KHQotCY0JzQmNCg0J7QktCY0Isg0J/QldCi0JDQoAor0JPQntCh0KLQntCI0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQk9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9CT0J7QodCi0J7QiNCY0Isg0IjQntCS0JDQnQor0JPQntCh0KLQntCI0JjQiyDQm9CQ0JfQkNCgCivQk9Ce0KHQotCe0IjQmNCLINCc0JjQm9CQ0J3QkAor0JPQntCh0KLQntCI0JjQiyDQnNCY0JvQntCoCivQk9Ce0KHQotCe0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0J7QodCi0J7QiNCY0Isg0JzQmNCi0JDQoAor0JPQntCh0KLQntCI0JjQiyDQodCb0JDQktCa0JAKK9CT0J7QodCi0J7QiNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CT0J7QodCi0J7QiNCY0Isg0KLQldCe0JTQntCgCivQk9Ce0KHQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0J7QodCi0J7QktCY0Isg0JHQntCT0JTQkNCdCivQk9Ce0KHQotCe0JLQmNCLINCY0JrQkAor0JPQntCh0KLQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JPQntCh0KLQntCS0JjQiyDQnNCe0JzQmNCgCivQk9Ce0KLQqNCi0JDQiNCdINCk0JXQoNCV0J3Qpgor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KfQldCU0J4KK9CT0J7QktCV0JTQkNCg0JjQptCQINCW0JXQm9CY0JzQmNCgCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQlNCV0IjQkNCdCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQlNCg0JDQk9CY0KbQkAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JzQmNCb0JXQndCa0J4KK9CT0J7QktCV0JTQkNCg0JjQptCQINCc0JjQm9Ce0JLQkNCdCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQnNCY0KLQkNCgCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQnNCY0KLQkNCgCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQn9CQ0JLQm9CVCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQodCY0JzQngor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KHQm9CQ0JLQmtCeCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQotCQ0KLQkNCI0JDQndCQCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQktCV0JvQmNCc0JjQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQntCS0JXQlNCQ0KDQntCS0JjQiyDQiNCj0JvQmNCI0JAKK9CT0J7QktCV0JTQkNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQk9Ce0JLQldCU0JDQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9CT0J7QktCe0KDQp9CY0J0g0JbQmNCS0JrQkAor0JPQntCS0J7QoNCn0JjQnSDQkdCe0JPQlNCQ0J0KK9CT0J7QktCe0KDQp9CY0J0g0JTQkNCg0JjQndCa0JAKK9CT0J7QktCe0KDQp9CY0J0g0JTQldCb0JjQndCa0JAKK9CT0J7QktCe0KDQp9CY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQk9Ce0JLQntCg0KfQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQntCS0J7QoNCn0JjQnSDQlNCj0KjQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCT0JDQktCg0JAKK9CT0J7QktCe0KDQp9CY0J0g0JvQkNCX0JDQoAor0JPQntCS0J7QoNCn0JjQnSDQnNCb0JDQlNCV0J0KK9CT0J7QktCe0KDQp9CY0J0g0KHQkNCS0JAKK9CT0J7QktCe0KDQp9CY0J0g0KHQm9CQ0JLQmNCm0JAKK9CT0J7QktCe0KDQp9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JPQntCS0J7QoNCn0JjQnSDQodCi0JXQktCQ0J0KK9CT0J7QktCe0KDQp9CY0J0g0KHQotCe0IjQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCS0JXQoNCQCivQk9Ce0JLQntCg0KfQmNCdINCS0JvQkNCU0JAKK9CT0J7QktCe0KDQp9CY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JPQntCS0J7QoNCn0JjQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCn0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQk9Cg0KfQlSDQnNCY0JvQkNCdCivQk9Cg0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0KfQmNCLINCc0JjQm9CY0JLQntCICivQk9Cg0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQk9Cg0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JPQoNCn0JjQiy3QotCj0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0KfQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCn0JjQiyDQl9Ce0KDQmtCQCivQk9Cg0KfQmtCYINCc0JjQm9CVCivQk9Cg0KfQmtCYINCc0JjQoNCI0JDQndCQCivQk9Cg0KjQmNCLINCC0J7QoNCC0JUKK9CT0KDQqNCY0Isg0ILQntCg0ILQlQor0JPQoNCo0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KjQmNCLINCg0KPQltCY0KbQkAor0JPQoNCo0JjQiyDQodCe0KTQmNCI0JAKK9CT0KDQgtCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JPQoNCQ0KfQkNCd0JjQnSDQmNCS0JDQnQor0JPQoNCQ0KfQkNCd0JjQnSDQktCQ0JvQldCg0JjQiNCQCivQk9Cg0JDQp9CV0Jog0KHQotCV0JLQkNCdCivQk9Cg0JDQp9CY0Jog0KHQm9CQ0JLQmtCQCivQk9Cg0JDQp9CY0Jog0KHQotCV0JLQkNCdCivQk9Cg0JDQp9Ca0J4g0KjQkNCd0JTQntCgCivQk9Cg0JDQp9Ca0J4g0J7Qm9CT0JAKK9CT0KDQkNCn0JrQniDQntCb0JPQkAor0JPQoNCQ0KfQmtCeINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0KDQkNCo0JAg0IjQntCh0JjQnwor0JPQoNCQ0KjQkNCgINCQ0J3QkAor0JPQoNCQ0KjQmNCLINCS0JDQm9CV0J3QotCY0J0KK9CT0KDQkNCo0JjQiyDQl9CU0JXQndCa0J4KK9CT0KDQkNCo0J3QldCgINCh0J7QpNCY0IjQkAor0JPQoNCQ0ILQmNCdINCc0JjQm9Ce0KgKK9CT0KDQkNCRINCk0JXQoNCV0J3Qpgor0JPQoNCQ0JHQkNCgINCI0J7QodCY0J/QkAor0JPQoNCQ0JHQkNCgINCI0J7QodCY0J8KK9CT0KDQkNCR0JDQoCDQnNCY0KDQmtCeCivQk9Cg0JDQkdCV0JYg0JjQm9CVCivQk9Cg0JDQkdCV0JYg0IjQntCI0JAKK9CT0KDQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQkNCR0JjQiyDQo9Cg0J7QqAor0JPQoNCQ0JHQntCm0Jgg0KDQkNCc0JDQlNCQ0J0KK9CT0KDQkNCR0J7QktCQ0KYg0JDQptCeCivQk9Cg0JDQkdCe0JLQkNCmINCm0JLQldCi0JAKK9CT0KDQkNCR0J7QktCQ0KYg0JTQmNCc0JjQotCg0JjQiNCVCivQk9Cg0JDQkdCe0JLQkNCmINCI0J7QktCQ0J0KK9CT0KDQkNCR0J7QktCQ0KYg0J3QldCS0JXQndCa0JAKK9CT0KDQkNCR0J7QktCQ0KYg0KDQkNCd0JrQngor0JPQoNCQ0JHQntCS0JDQpiDQodCY0JzQldCj0J0KK9CT0KDQkNCR0KPQndCP0JjQiNCQINCI0KPQm9CY0IjQkNCd0JAKK9CT0KDQkNCU0JDQqNCn0JXQktCY0Isg0J7QodCc0JDQnQor0JPQoNCQ0JTQmNCLINCW0JjQktCa0J4KK9CT0KDQkNCU0JjQiyDQkdCe0JbQmNCm0JAKK9CT0KDQkNCU0JjQiyDQlNCQ0J3QmtCQCivQk9Cg0JDQlNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CT0KDQkNCU0JjQndCn0JXQktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0JPQoNCQ0JTQmNCd0JAg0KHQnNCY0InQmtCQCivQk9Cg0JDQlNCY0J3QkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0JDQlNCY0J3QkNCmINCh0KDQldCU0J7QiNCVCivQk9Cg0JDQlNCY0J3QkNCmINCh0KDQldCU0J7QiNCVCivQk9Cg0JDQlNCY0J3QkNCmINCh0KDQldCU0J7QiNCVCivQk9Cg0JDQlNCY0J3QkNCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0KDQkNCU0J7QiNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JPQoNCQ0JTQntCI0JXQktCY0Isg0InQo9CR0JjQptCQCivQk9Cg0JDQpdCV0Jog0J3QkNCU0JAKK9CT0KDQkNCl0J7QktCQ0KYg0ILQntCg0ILQlQor0JPQoNCQ0KXQntCS0JDQpiDQgtCe0KDQgtCVCivQk9Cg0JDQpdCe0JLQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JPQoNCQ0KXQntCS0JDQpiDQptCS0JjQiNCeCivQk9Cg0JDQpdCe0JLQkNCmINCU0JDQndCY0IjQldCb0JAKK9CT0KDQkNCl0J7QktCQ0KYg0JTQoNCQ0JPQkNCd0JAKK9CT0KDQkNCl0J7QktCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CT0KDQkNCl0J7QktCQ0KYg0JTQo9Co0JDQndCa0JAKK9CT0KDQkNCl0J7QktCQ0KYg0JTQo9Co0JDQnQor0JPQoNCQ0KXQntCS0JDQpiDQlNCj0KjQkNCdCivQk9Cg0JDQpdCe0JLQkNCmINCU0KPQqNCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0JPQntCI0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQiNCQ0J3QmtCeCivQk9Cg0JDQpdCe0JLQkNCmINCI0J7QktCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0IjQntCS0JDQnQor0JPQoNCQ0KXQntCS0JDQpiDQnNCY0J7QlNCg0JDQkwor0JPQoNCQ0KXQntCS0JDQpiDQnNCY0KDQmtCeCivQk9Cg0JDQpdCe0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQkNCl0J7QktCQ0KYg0J3QkNCU0JAKK9CT0KDQkNCl0J7QktCQ0KYg0J3QmNCa0J7Qm9CQCivQk9Cg0JDQpdCe0JLQkNCmINCe0JHQoNCQ0JQKK9CT0KDQkNCl0J7QktCQ0KYg0KDQkNCU0JUKK9CT0KDQkNCl0J7QktCQ0KYg0KDQkNCd0JrQkAor0JPQoNCQ0KXQntCS0JDQpiDQodCb0JDQktCY0KbQkAor0JPQoNCQ0KXQntCS0JDQpiDQodCb0JDQktCa0J4KK9CT0KDQkNCl0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQk9Cg0JDQpdCe0JLQkNCmINCh0JzQmNCJ0JAKK9CT0KDQkNCl0J7QktCQ0KYg0KHQn9CQ0KHQngor0JPQoNCQ0KXQntCS0JDQpiDQktCQ0KHQngor0JPQoNCQ0KXQntCS0JDQpiDQktCV0JvQmNCc0JjQoAor0JPQoNCQ0KXQntCS0JDQpiDQl9CU0JXQndCa0J4KK9CT0KDQkNCI0JvQmNCd0JMg0JXQnNCY0JsKK9CT0KDQkNCd0JTQmNCLINCc0JjQiNCe0JTQoNCQ0JMKK9CT0KDQkNCd0JTQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCQ0J3QlNCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQoCDQn9Cg0J7QpAor0JPQoNCQ0J3QlNCY0Isg0KHQotCe0IjQkNCdCivQk9Cg0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0JDQndCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0JDQndCj0JvQkCDQk9Ce0IjQmtCeCivQk9Cg0JDQntCK0JAg0ILQo9Cg0J4KK9CT0KDQkNCe0KAg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCQ0J7QoCDQodCb0JDQktCa0J4KK9CT0KDQkNCe0KDQkNCmINCY0KHQmNCU0J7QoAor0JPQoNCQ0J7QktCQ0KYg0ILQntCg0ILQlQor0JPQoNCQ0J7QktCQ0KYg0JDQntCg0JjQmtCQCivQk9Cg0JDQntCS0JDQpiDQkdCb0JDQlgor0JPQoNCQ0J7QktCQ0KYg0JHQntCT0JTQkNCdCivQk9Cg0JDQntCS0JDQpiDQkdCe0JPQlNCQ0J0KK9CT0KDQkNCe0JLQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9CT0KDQkNCe0JLQkNCmINCU0KPQqNCQ0J0KK9CT0KDQkNCe0JLQkNCmINCc0JjQm9Ce0KgKK9CT0KDQkNCe0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQk9Cg0JDQntCS0JDQpiDQntCb0JjQktCV0KDQkAor0JPQoNCQ0J7QktCQ0KYt0J/QkNCU0KDQntCSINCJ0KPQkdCY0J3QmtCQCivQk9Cg0JDQntCS0JDQpiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JPQoNCQ0J/Qp9CQ0Jog0IjQntCh0JjQnwor0JPQoNCQ0JLQkNCg0JAg0JTQoNCQ0JPQmNCm0JAKK9CT0KDQkNCS0JDQoNCQINCd0JjQmtCe0JvQkAor0JPQoNCQ0JLQkNCg0JAg0KDQkNCU0JUKK9CT0KDQkdCQINCa0J7QodCi0JAKK9CT0KDQkdCQINCc0JjQm9CQ0J0KK9CT0KDQkdCQINCd0JXQktCV0J3QmtCQCivQk9Cg0JHQkCDQktCj0JrQntCI0JjQptCQCivQk9Cg0JHQkNCi0JjQndCY0Isg0JzQmNCb0JDQnQor0JPQoNCR0JDQotCY0J3QmNCLINCc0JjQm9Ce0KgKK9CT0KDQkdCQ0JIg0IjQntCdCivQk9Cg0JHQkNCS0JDQpiDQndCV0JLQldCd0JrQkAor0JPQoNCR0JDQktCQ0KYg0J3QmNCa0J7Qm9CQCivQk9Cg0JHQmNCLINCW0JjQktCQ0J0KK9CT0KDQkdCY0Isg0JbQmNCS0JrQngor0JPQoNCR0JjQiyDQgtCe0KDQgtCVINCc0KAKK9CT0KDQkdCY0Isg0ILQo9Cg0JDQggor0JPQoNCR0JjQiyDQgtCj0KDQngor0JPQoNCR0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQk9Cg0JHQmNCLINCQ0J3QmtCQCivQk9Cg0JHQmNCLINCQ0J3QmtCY0KbQkAor0JPQoNCR0JjQiyDQkdCe0KjQmtCeCivQk9Cg0JHQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CT0KDQkdCY0Isg0JHQntCg0JjQktCe0IjQlQor0JPQoNCR0JjQiyDQkdCg0JDQndCa0J4KK9CT0KDQkdCY0Isg0I/QldCS0JDQlAor0JPQoNCR0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JPQoNCR0JjQiyDQlNCV0KHQkAor0JPQoNCR0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cg0JHQmNCLINCU0KDQkNCT0JDQnQor0JPQoNCR0JjQiyDQlNCg0JDQk9CeCivQk9Cg0JHQmNCLINCU0KDQldCd0JrQkAor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCY0KbQkAor0JPQoNCR0JjQiyDQk9Ce0IjQmtCeCivQk9Cg0JHQmNCLINCT0J7QoNCQ0J0KK9CT0KDQkdCY0Isg0IjQntCS0JDQndCa0JAKK9CT0KDQkdCY0Isg0IjQntCS0JDQndCa0JAKK9CT0KDQkdCY0Isg0IjQntCS0JDQnQor0JPQoNCR0JjQiyDQiNCe0JLQkNCdCivQk9Cg0JHQmNCLINCI0J7QktCY0KbQkAor0JPQoNCR0JjQiyDQiNCe0JLQngor0JPQoNCR0JjQiyDQm9CQ0JfQkNCgCivQk9Cg0JHQmNCLINCJ0KPQkdCQ0J0KK9CT0KDQkdCY0Isg0InQo9CR0JjQqNCQCivQk9Cg0JHQmNCLINCc0JDQoNCY0IjQkAor0JPQoNCR0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCY0Isg0JzQmNCb0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQldCd0JAKK9CT0KDQkdCY0Isg0JzQmNCb0JXQndCQCivQk9Cg0JHQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0JHQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0JHQmNCLINCc0JjQm9CVCivQk9Cg0JHQmNCLINCc0JjQm9CY0IsKK9CT0KDQkdCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0JHQmNCLINCc0JjQm9Ca0JAKK9CT0KDQkdCY0Isg0JzQmNCb0J7QqAor0JPQoNCR0JjQiyDQnNCY0JvQntCoCivQk9Cg0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0JHQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9Cg0JHQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9Cg0JHQmNCLINCc0JjQm9Cj0KLQmNCdCivQk9Cg0JHQmNCLINCc0JjQoNCQCivQk9Cg0JHQmNCLINCc0JjQoNCQCivQk9Cg0JHQmNCLINCc0JvQkNCU0JXQnQor0JPQoNCR0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQkdCY0Isg0J7QodCi0J7QiNCQCivQk9Cg0JHQmNCLINCf0JXQotCQ0KAKK9CT0KDQkdCY0Isg0J/QldCi0JDQoAor0JPQoNCR0JjQiyDQn9CV0KLQkNCgCivQk9Cg0JHQmNCLINCg0JDQlNCVCivQk9Cg0JHQmNCLINCg0J7QodCQCivQk9Cg0JHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQkdCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0JHQmNCLINCh0KLQldCS0JDQnQor0JPQoNCR0JjQiyDQodCi0JXQktCeCivQk9Cg0JHQmNCLINCh0JLQldCi0JrQngor0JPQoNCR0JjQiyDQktCQ0KHQkCDQlNCgCivQk9Cg0JHQmNCLINCS0JXQoNCQCivQk9Cg0JHQmNCLINCS0JjQlAor0JPQoNCR0JjQiyDQktCe0IjQmNCdCivQk9Cg0JHQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CT0KDQkdCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JPQoNCR0JjQnSDQnNCQ0KDQmNCI0JAKK9CT0KDQkdCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JPQoNCR0J7QktCQ0KYg0JzQmNCl0JDQiQor0JPQoNCR0J7QktCY0Isg0JDQm9CY0JsKK9CT0KDQkdCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JPQoNCR0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9CT0KDQkdCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQkdCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCe0JLQmNCLINCc0JjQoNCn0JXQotCQCivQk9Cg0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQoNCR0J7QktCY0Isg0JzQo9Cg0JDQogor0JPQoNCR0J7QktCY0Isg0JzQo9Cg0JDQogor0JPQoNCR0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CT0KDQkdCe0JLQmNCLINCg0KPQltCY0KbQkAor0JPQoNCR0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQk9Cg0JHQntCS0JjQiyDQodCc0JjQidCQCivQk9Cg0KbQlSDQkNCd0JjQptCQCivQk9Cg0KbQmNCLINCI0J7QktCQ0J0KK9CT0KDQptCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KbQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCm0JjQiyDQktCV0KHQldCb0JjQnQor0JPQoNCm0J7QktCY0Isg0JLQldCg0JjQptCQCivQk9Cg0JTQmNCLINCY0JLQmNCm0JAKK9CT0KDQlNCY0Isg0JvQo9CI0JrQkAor0JPQoNCU0JjQiyDQnNCQ0KDQkAor0JPQoNCU0JjQndCY0Isg0JzQmNCg0JrQngor0JPQoNCU0JjQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCV0Kcg0KDQntCX0JDQm9CY0IjQkAor0JPQoNCV0KfQldCbINCa0JDQoNCb0J4KK9CT0KDQldCn0J3QmNCaINCI0JDQndCa0J4KK9CT0KDQldCn0J3QmNCaINCc0JDQoNCY0IjQkAor0JPQoNCV0KfQndCY0Jog0J/QkNCS0JvQlQor0JPQoNCV0JHQldCb0JTQmNCd0JPQldCgINCJ0KPQkdCY0KbQkAor0JPQoNCV0JHQldCb0JTQmNCd0JPQldCgINCf0JXQotCQ0KAKK9CT0KDQldCR0IrQldCSINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0KDQldCR0J4g0J3QldCU0JXQidCa0J4KK9CT0KDQldCR0J7QktCY0Isg0KDQkNCd0JrQngor0JPQoNCV0JPQldCmINCc0JDQoNCY0IjQkAor0JPQoNCV0JPQldCmINCS0JjQm9CYCivQk9Cg0JXQk9CV0KYg0JLQmNCb0JgKK9CT0KDQldCT0JXQoCDQpdCV0JTQktCY0JPQkAor0JPQoNCV0JPQntCgINCI0J7QodCY0J8KK9CT0KDQldCT0J7QoNCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0JXQk9Ce0KDQmNCLINCU0KPQqNCQ0J0KK9CT0KDQldCT0J7QoNCY0Isg0JzQmNCb0JDQndCa0JAKK9CT0KDQldCT0J7QoNCY0J0g0J/QldCi0JDQoAor0JPQoNCV0JPQntCg0J7QktCY0Isg0JDQndCi0J7QndCY0IjQlQor0JPQoNCV0JPQntCg0J7QktCY0Isg0JjQktCQ0J0KK9CT0KDQldCT0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQk9Cg0JXQk9Cj0Kgg0JDQndCi0JDQmwor0JPQoNCV0JPQo9CoINCI0JDQndCe0KgKK9CT0KDQldCT0KPQqCDQm9CQ0KHQm9CeCivQk9Cg0JXQk9Cj0Kgg0J/QldCi0JDQoAor0JPQoNCV0JPQo9Cg0JjQiyDQmNCS0JDQnQor0JPQoNCV0JjQodCY0J3Qk9CV0KAg0JTQkNCg0JjQndCQCivQk9Cg0JXQmNCX0JXQoCDQn9CV0KLQkNCgCivQk9Cg0JXQmiDQodCQ0JTQmNCaCivQk9Cg0JXQmtChINCf0JDQktCV0JsKK9CT0KDQldCa0KMg0JDQlNCV0JwKK9CT0KDQldCa0KMg0JPQkNCd0JgKK9CT0KDQldCa0KMg0KXQkNCh0JDQnQor0JPQoNCV0JrQoyDQnNCj0KXQkNCc0JXQoAor0JPQoNCV0JrQoyDQndCV0JfQmNCgCivQk9Cg0JXQmtCjINCg0JDQnNCY0JcKK9CT0KDQldCa0KMg0KHQkNCR0JjQogor0JPQoNCV0JrQo9Cb0J7QktCY0Isg0IjQntCS0JDQnQor0JPQoNCV0JrQo9Cb0J7QktCY0Isg0KHQotCQ0J3Qp9CVCivQk9Cg0JPQkNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CT0KDQk9CQ0KAg0ILQo9Cg0JjQptCQCivQk9Cg0JPQkNCgINCR0KDQkNCd0JrQkAor0JPQoNCT0JDQoCDQm9CQ0JfQkNCgCivQk9Cg0JPQkNCgINCi0J7QqNCQCivQk9Cg0JPQmNCn0JXQktCY0Isg0IjQo9Cb0JjQqNCa0JAKK9CT0KDQk9CY0Isg0JHQntCo0JrQngor0JPQoNCT0JjQiyDQkdCe0IjQkNCd0JAKK9CT0KDQk9CY0Isg0JTQoNCQ0JPQntCI0JUKK9CT0KDQk9CY0Isg0JzQmNCI0J4KK9CT0KDQk9CY0Isg0JzQmNCb0JDQnQor0JPQoNCT0JjQiyDQodCQ0JLQldCi0JAKK9CT0KDQk9CY0Isg0KHQmNCc0J4KK9CT0KDQk9CY0Isg0JLQldCg0JAKK9CT0KDQk9CY0Isg0JLQldCg0JjQptCQCivQk9Cg0JPQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CT0KDQk9CY0J3Qp9CV0JLQmNCLINCc0JjQpdCQ0JXQm9CQINCf0KDQntCk0JXQodCe0KAKK9CT0KDQk9CY0J3Qp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0KDQk9Cj0KAg0JTQo9Co0JDQnQor0JPQoNCT0KPQoCDQoNCQ0JTQntCh0JvQkNCSCivQk9Cg0JPQo9CgINCS0JvQkNCU0JAKK9CT0KDQk9Cj0KDQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9Cg0JPQo9Cg0JXQktCY0Isg0KDQkNCI0JrQngor0JPQoNCT0KPQoNCY0Isg0JDQndCi0KPQnQor0JPQoNCT0KPQoNCY0Isg0IjQntCh0JjQnwor0JPQoNCT0KPQoNCY0Isg0KDQo9CW0JjQptCQCivQk9Cg0JPQo9Cg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0JPQo9Cg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0KDQmNCk0JDQotCe0J3QkyDQmtCQ0KDQm9CeCivQk9Cg0JjQpNCQ0KLQntCd0JMg0J7QotCeCivQk9Cg0JjQk9Ce0KDQmNCI0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCY0JPQntCg0JjQiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCY0JPQntCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CT0KDQmNCI0JDQmiDQlNCQ0J3QmNCm0JAKK9CT0KDQmNCI0JDQmiDQmtCe0KHQntCS0JrQkAor0JPQoNCY0IjQkNCaINCc0JjQm9CQ0J0KK9CT0KDQmNCI0JDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCY0IjQkNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JPQoNCY0JvQldCmINCh0KLQkNCd0JrQngor0JPQoNCY0JvQldCmINCh0KLQkNCd0JrQngor0JPQoNCY0J3QpdCj0KIg0JvQkNCU0JjQodCb0JDQkgor0JPQoNCY0KHQkCDQn9CV0KLQkNCgCivQk9Cg0JjQodCl0JDQkdCV0KAg0KTQoNCQ0IrQkAor0JPQoNCY0JfQldCJINCa0JDQoNCb0J4KK9CT0KDQmNCX0JXQoCDQn9CV0KLQkNCgCivQk9Cg0JjQl9CV0KAg0KHQotCV0JLQkNCdCivQk9Cg0JrQkNCS0JDQpiDQnNCY0JvQkNCdCivQk9Cg0JrQkNCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQk9Cg0JrQmNCd0JjQiyDQmtCe0KHQkNCg0JAKK9CT0KDQmtCY0J3QmNCLINCc0JjQm9CQ0J0KK9CT0KDQmtCe0JLQmNCLINCW0JjQktCQ0J0KK9CT0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0KDQmtCe0JLQmNCLINCC0KPQoNCeCivQk9Cg0JrQntCS0JjQiyDQkNCd0JrQkAor0JPQoNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CT0KDQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQk9Cg0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQk9Cg0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0KDQmtCe0JLQmNCLINCU0JDQndCVCivQk9Cg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JrQntCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0JPQoNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQk9Cg0JrQntCS0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JPQoNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQk9Cg0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAg0JTQoAor0JPQoNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0KDQmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CT0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQk9Cg0JrQntCS0JjQiyDQktCe0IjQmNCc0JjQoAor0JPQoNCa0J7QktCY0Isg0JLQntCI0JjQnQor0JPQoNCa0J7QktCh0JrQmCDQn9CQ0J3QotCQCivQk9Cg0JvQmNCLINCC0J7QoNCC0JUKK9CT0KDQm9CY0Isg0InQo9CR0JjQndCa0J4KK9CT0KDQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CT0KDQm9CY0KbQkCDQltCV0InQmtCeCivQk9Cg0JvQmNCm0JAg0JHQntCh0JjQidCa0JAKK9CT0KDQm9CY0KbQkCDQnNCY0JvQldCS0JAKK9CT0KDQm9CY0KbQkCDQnNCY0JvQntCS0JDQnQor0JPQoNCb0JjQptCQINCh0KLQkNCd0JrQngor0JPQoNCb0JjQptCQINCS0J7QiNCY0J0KK9CT0KDQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9Cg0JzQkNCoINCC0KPQoNCeCivQk9Cg0JzQkNCoINCR0KDQkNCd0JrQngor0JPQoNCc0J7QqCDQn9Cg0JXQlNCg0JDQkwor0JPQoNCc0KPQqNCQINCW0JjQktCa0J4KK9CT0KDQnNCj0KjQkCDQgtCj0KDQngor0JPQoNCc0KPQqNCQINCc0JjQm9CQ0J0KK9CT0KDQnNCj0KjQkCDQnNCY0JvQkNCdCivQk9Cg0JzQo9Co0JAg0KDQkNCU0JUKK9CT0KDQnNCj0KjQkCDQodCb0JDQktCa0J4KK9CT0KDQnNCj0KjQkCDQodCc0JjQidCa0JAKK9CT0KDQnNCj0KjQkCDQodCi0J7QiNCQ0J0KK9CT0KDQnNCj0KjQkCDQktCV0JvQmtCeCivQk9Cg0IrQkCDQgtCj0KDQkAor0JPQoNCK0JAg0JDQndCU0KDQmNCI0JAKK9CT0KDQitCQINCQ0J3QmtCQCivQk9Cg0IrQkC3QkNCh0JDQndCYINCJ0KPQnNCd0JjQiNCQCivQk9Cg0IrQkCDQlNCj0KjQkNCdCivQk9Cg0IrQkCDQiNCQ0J3QmtCeCivQk9Cg0IrQkCDQiNCQ0J0KK9CT0KDQitCQINCI0J7QktCQ0J0KK9CT0KDQitCQINCI0J7QktCQ0J0KK9CT0KDQitCQINCI0J7QktCQ0J0KK9CT0KDQitCQINCI0J7QktCQ0J0KK9CT0KDQitCQINCI0KPQoNCQ0IgKK9CT0KDQitCQINCb0JDQodCb0J4KK9CT0KDQitCQINCJ0KPQlNCV0JLQmNCiCivQk9Cg0IrQkCDQnNCQ0KDQmNCI0JAKK9CT0KDQitCQINCe0KHQmtCQ0KAKK9CT0KDQitCQINCh0J7QpNCY0IjQkAor0JPQoNCK0JAg0KHQotCV0JLQkNCdCivQk9Cg0IrQkCDQodCi0JXQktCQ0J0KK9CT0KDQitCQINCh0KLQldCS0JDQnQor0JPQoNCK0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQoNCe0KjQldCaINCX0JLQntCd0JjQnNCY0KAKK9CT0KDQntCo0JrQniDQnNCQ0KDQmNCI0JAKK9CT0KDQntCcINCm0JjQoNCY0JsKK9CT0KDQntCc0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0KDQntChINCC0J7QoNCC0JUKK9CT0KDQntChINCY0JLQkNCdCivQk9Cg0J7QoSDQm9CQ0JTQmNCh0JvQkNCSCivQk9Cg0J7Ql9CU0JDQndCY0Isg0ILQntCg0ILQlQor0JPQoNCe0JfQlNCQ0J3QmNCLINCV0J3QmNCd0JrQkAor0JPQoNCe0JfQlNCQ0J3QmNCLINCI0J7QodCY0J8KK9CT0KDQntCX0JTQkNCd0JjQiyDQnNCY0JvQkNCdCivQk9Cg0J7Ql9CU0JDQndCY0Isg0JzQmNCb0JDQnQor0JPQoNCe0JfQlNCQ0J3QntCSINCh0JvQkNCS0JrQngor0JPQoNCe0JfQlNCQ0J3QntCS0KHQmtCYINCU0JDQnNCI0JDQnQor0JPQoNCe0JfQlNCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQk9Cg0J7Ql9CU0JDQndCe0JLQodCa0Jgg0J/QldCi0JDQoAor0JPQoNCe0JfQlNCY0Isg0JHQntCo0JrQngor0JPQoNCe0JfQlNCY0Isg0JHQntCT0JTQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQlNCV0KHQkNCd0JrQkAor0JPQoNCe0JfQlNCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JPQoNCe0JfQlNCY0Isg0JTQo9Co0JDQnQor0JPQoNCe0JfQlNCY0Isg0IjQkNCh0JzQmNCd0JAKK9CT0KDQntCX0JTQmNCLINCI0J7QktCQ0J0KK9CT0KDQntCX0JTQmNCLINCI0J7QktCQ0J0KK9CT0KDQntCX0JTQmNCLINCI0J7QktCQ0J0KK9CT0KDQntCX0JTQmNCLINCa0KPQl9Cc0JDQnQor0JPQoNCe0JfQlNCY0Isg0JvQkNCX0JDQoAor0JPQoNCe0JfQlNCY0Isg0InQo9CR0JjQqNCQCivQk9Cg0J7Ql9CU0JjQiyDQidCj0JHQntCc0JjQoAor0JPQoNCe0JfQlNCY0Isg0JzQmNCb0JDQnQor0JPQoNCe0JfQlNCY0Isg0J/QldCi0JDQoAor0JPQoNCe0JfQlNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQktCV0KHQndCQCivQk9Cg0J7Ql9CU0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQoNCe0JfQlNCY0Isg0JfQntCg0JDQnQor0JPQoNCe0JfQlNCY0Isg0JfQntCg0JjQptCQCivQk9Cg0J7Ql9CT0KPQoiDQotCY0JHQntCgCivQk9Cg0KPQkdCQINCU0J7QoNCjCivQk9Cg0KPQkdCQINCi0JjQkdCV0KDQmNCI0JUKK9CT0KDQo9CR0JDQpyDQk9Ce0KDQlNCQ0J3QkAor0JPQoNCj0JHQkNCnINCc0JDQmtCh0JAKK9CT0KDQo9CR0JDQpyDQnNCe0JzQp9CY0JvQngor0JPQoNCj0JHQkNCnINCh0KLQkNCd0JrQkAor0JPQoNCj0JHQkNCnINCi0JDQndCQ0KHQmNCI0JUKK9CT0KDQo9CR0JDQp9CY0Isg0JPQntCI0JrQngor0JPQoNCj0JHQkNCd0J7QkiDQlNCe0JHQoNCY0JLQntCICivQk9Cg0KPQkdCQ0J3QntCSINCU0KPQqNCQ0J3QmtCQCivQk9Cg0KPQkdCQ0J3QntCSINCd0J7QktCQ0JoKK9CT0KDQo9CR0JDQndCe0JIg0JfQkNCl0JDQoNCY0IjQlQor0JPQoNCj0JHQldCo0JAg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCV0KjQmNCLINCU0KDQkNCT0JDQnQor0JPQoNCj0JHQldCo0JjQiyDQlNCj0KjQkNCdCivQk9Cg0KPQkdCV0KjQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CT0KDQo9CR0JXQoCDQldCU0KPQkNCg0JQKK9CT0KDQo9CR0JXQoCDQldCc0JjQmwor0JPQoNCj0JHQldCgINCV0JLQkNCb0JQKK9CT0KDQo9CR0JXQoCDQpNCg0JDQitCQCivQk9Cg0KPQkdCV0KAg0KDQo9CU0J7Qm9CkCivQk9Cg0KPQkdCV0KLQmNCLINCe0JvQk9CQCivQk9Cg0KPQkdCY0KjQkCDQkNCd0ILQldCb0J4KK9CT0KDQo9CR0JjQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0KDQo9CR0JjQqNCY0Isg0JzQmNCg0JrQngor0JPQoNCj0JHQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CR0JjQiyDQltCQ0KDQmtCeCivQk9Cg0KPQkdCY0Isg0JbQkNCg0JrQngor0JPQoNCj0JHQmNCLINCQ0J3QmtCQCivQk9Cg0KPQkdCY0Isg0JzQmNCb0JDQnQor0JPQoNCj0JHQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCj0JHQmNCdINCc0JjQm9CQ0J0KK9CT0KDQo9CR0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQk9Cg0KPQkdCI0JXQqNCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0KPQkdCI0JXQqNCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0KDQo9CR0IjQldCo0JjQiyDQnNCY0KDQmtCeCivQk9Cg0KPQkdCI0JXQqNCY0Isg0KHQotCV0JLQngor0JPQoNCj0JHQntCgINCQ0JTQkNCcCivQk9Cg0KPQkdCe0KAg0JHQoNCQ0J3QmtCeCivQk9Cg0KPQkdCe0KAg0JXQnNCQCivQk9Cg0KPQkdCe0KAg0IjQldCk0KLQngor0JPQoNCj0JHQntCgLdCI0J7QiNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CT0KDQo9CR0J7QoCDQiNCe0JLQngor0JPQoNCj0JHQntCgINCb0JDQl9CQ0KAKK9CT0KDQo9CR0J7QoCDQm9CQ0JfQngor0JPQoNCj0JHQntCgINCJ0KPQkdCe0JzQmNCgCivQk9Cg0KPQkdCe0KAg0JzQmNCJ0JDQndCQCivQk9Cg0KPQkdCe0KAg0JzQmNCb0J7QqAor0JPQoNCj0JHQntCgINCd0JXQgtCeCivQk9Cg0KPQkdCe0KAg0J3QldCU0JXQidCa0J4KK9CT0KDQo9CR0J7QoCDQndCV0JLQldCd0JAKK9CT0KDQo9CR0J7QoCDQndCY0JrQntCb0JAKK9CT0KDQo9CR0J7QoCDQndCY0JrQntCb0JAKK9CT0KDQo9CR0J7QoCDQntCb0JPQkAor0JPQoNCj0JHQntCgINCg0JDQlNCVCivQk9Cg0KPQkdCe0KAg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0JHQntCgINCh0KDQldCi0J4KK9CT0KDQo9CR0J7QoCDQktCj0IjQngor0JPQoNCj0JHQntCgINCX0JTQoNCQ0JLQmtCeCivQk9Cg0KPQkdCe0KDQntCS0JjQiyDQnNCY0JvQlQor0JPQoNCj0JHQntCS0JjQiyDQmNCb0JjQiNCQCivQk9Cg0KPQldCh0JrQoy3Qi9CY0KDQmNCo0JDQnSDQlNCV0JvQmNCI0JAKK9CT0KDQo9CY0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CT0KDQo9CY0Jog0JLQldCg0J7QndCY0JrQkAor0JPQoNCj0IjQp9CY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCQ0J3QkNCmINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JXQkiDQntCT0IrQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQoNCj0IjQmNCnINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CI0JjQp9CY0Isg0JHQmNCJ0JDQndCQCivQk9Cg0KPQiNCY0KfQmNCLINCI0J7QktCQCivQk9Cg0KPQiNCY0KfQmNCLINCc0JDQoNCY0J3QmtCeCivQk9Cg0KPQiNCY0KfQmNCLINCc0JjQkAor0JPQoNCj0IjQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQo9CI0JjQp9CY0Isg0JzQmNCb0J7QiNCVCivQk9Cg0KPQiNCY0KfQmNCLINCd0JXQndCQ0JQKK9CT0KDQo9CI0JjQp9CY0Isg0J/QldCi0JDQoAor0JPQoNCj0IjQmNCn0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JPQoNCj0IjQmNCn0JjQiyDQoNCQ0JTQntCc0JjQoAor0JPQoNCj0IjQmNCn0JjQnSDQodCi0JDQndCe0IjQlQor0JPQoNCj0IjQmNCn0JrQntCSINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQp9Ca0J7QkiDQnNCY0JvQmtCQCivQk9Cg0KPQiNCY0Isg0JbQmNCS0JrQkAor0JPQoNCj0IjQmNCLINCW0JjQktCe0KDQkNCUCivQk9Cg0KPQiNCY0Isg0ILQldCd0JAKK9CT0KDQo9CI0JjQiyDQgtCV0J3QmNCh0JjQiNCVCivQk9Cg0KPQiNCY0Isg0ILQntCg0ILQlQor0JPQoNCj0IjQmNCLINCC0KPQoNCC0JjQptCQCivQk9Cg0KPQiNCY0Isg0ILQo9Cg0JAKK9CT0KDQo9CI0JjQiyDQgtCj0KDQkAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQo9CI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQo9CI0JjQiyDQkNCd0ILQldCb0JrQngor0JPQoNCj0IjQmNCLINCQ0J3QlNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JDQndCY0KbQkAor0JPQoNCj0IjQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CT0KDQo9CI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQk9Cg0KPQiNCY0Isg0JHQntCg0JjQktCe0IgKK9CT0KDQo9CI0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JPQoNCj0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQoNCj0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQoNCj0IjQmNCLINCR0KDQkNCd0JrQngor0JPQoNCj0IjQmNCLINCm0JLQmNCI0JXQotCY0J0KK9CT0KDQo9CI0JjQiyDQptCS0JjQiNCeCivQk9Cg0KPQiNCY0Isg0JTQkNCd0JjQptCQCivQk9Cg0KPQiNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQk9Cg0KPQiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CT0KDQo9CI0JjQiyDQlNCj0KjQkNCdCivQk9Cg0KPQiNCY0Isg0JTQo9Co0JDQnQor0JPQoNCj0IjQmNCLINCU0KPQqNCQ0J0KK9CT0KDQo9CI0JjQiyDQpNCg0JDQndCm0JjQqNCa0JAKK9CT0KDQo9CI0JjQiyDQk9CQ0JLQoNCQCivQk9Cg0KPQiNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CT0KDQo9CI0JjQiyDQk9Ce0KDQkNCdCivQk9Cg0KPQiNCY0Isg0JPQntCg0JjQptCQCivQk9Cg0KPQiNCY0Isg0JPQoNCj0IjQkAor0JPQoNCj0IjQmNCLINCY0JvQmNCd0JrQkAor0JPQoNCj0IjQmNCLINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQoNCj0IjQmNCLINCY0JLQkNCd0JrQkAor0JPQoNCj0IjQmNCLINCI0JDQitCQCivQk9Cg0KPQiNCY0Isg0IjQldCb0JjQptCQCivQk9Cg0KPQiNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CT0KDQo9CI0JjQiyDQiNCV0JvQmtCQINCU0KAKK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQnQor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQnQor0JPQoNCj0IjQmNCLINCI0J7QktCY0KbQkAor0JPQoNCj0IjQmNCLINCI0KPQm9Ca0JAKK9CT0KDQo9CI0JjQiyDQmtCe0KHQotCQINCU0KAKK9CT0KDQo9CI0JjQiyDQmtCe0KHQotCQINCU0KAKK9CT0KDQo9CI0JjQiyDQm9CQ0JfQkNCgCivQk9Cg0KPQiNCY0Isg0JvQldCd0JrQkAor0JPQoNCj0IjQmNCLINCJ0JjQidCQ0J3QkAor0JPQoNCj0IjQmNCLINCJ0KPQkdCY0KbQkAor0JPQoNCj0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQk9Cg0KPQiNCY0Isg0InQo9CR0J4KK9CT0KDQo9CI0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQo9CI0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQo9CI0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQo9CI0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQo9CI0JjQiyDQnNCQ0KDQmNCd0JAKK9CT0KDQo9CI0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQoNCj0IjQmNCLINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JjQiyDQnNCY0JvQkNCdCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JDQnQor0JPQoNCj0IjQmNCLINCc0JjQm9CV0J3QkAor0JPQoNCj0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JUKK9CT0KDQo9CI0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQo9CI0JjQiyDQnNCY0JvQntCoCivQk9Cg0KPQiNCY0Isg0JzQmNCb0J7QqAor0JPQoNCj0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0KPQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0KDQo9CI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQoNCj0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQk9Cg0KPQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCj0IjQmNCLINCc0JjQotCQ0KAKK9CT0KDQo9CI0JjQiyDQndCQ0JTQkCDQlNCgINCb0JXQmtCQ0KAKK9CT0KDQo9CI0JjQiyDQndCQ0JTQkAor0JPQoNCj0IjQmNCLINCd0JDQlNCQCivQk9Cg0KPQiNCY0Isg0J3QldCU0JXQidCa0J4KK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CI0JjQiyDQndCe0JLQkNCaCivQk9Cg0KPQiNCY0Isg0J/QkNCS0JvQlQor0JPQoNCj0IjQmNCLINCf0JXQotCQ0KAKK9CT0KDQo9CI0JjQiyDQoNCQ0JTQldCd0JrQngor0JPQoNCj0IjQmNCLINCg0JDQlNCVCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JjQqNCQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JjQndCa0JAKK9CT0KDQo9CI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JPQoNCj0IjQmNCLINCg0JDQlNCY0JLQntCICivQk9Cg0KPQiNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CT0KDQo9CI0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQoNCj0JbQmNCm0JAKK9CT0KDQo9CI0JjQiyDQodCQ0IrQkAor0JPQoNCj0IjQmNCLINCh0JDQktCQCivQk9Cg0KPQiNCY0Isg0KHQkNCS0JAKK9CT0KDQo9CI0JjQiyDQodCY0J3QmNCo0JAKK9CT0KDQo9CI0JjQiyDQodCb0JDQktCY0KjQkAor0JPQoNCj0IjQmNCLINCh0JvQkNCS0JjQptCQCivQk9Cg0KPQiNCY0Isg0KHQm9CQ0JLQmtCQCivQk9Cg0KPQiNCY0Isg0KHQm9CQ0JLQmtCeCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0Isg0KHQnNCY0InQkNCd0JAKK9CT0KDQo9CI0JjQiyDQodCc0JjQidCQCivQk9Cg0KPQiNCY0Isg0KHQnNCY0InQkAor0JPQoNCj0IjQmNCLINCh0KDQgtCQ0J0KK9CT0KDQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQo9CI0JjQiyDQodCi0J7QiNCQ0J0g0JTQoAor0JPQoNCj0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CT0KDQo9CI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9Cg0KPQiNCY0Isg0KLQkNCi0IjQkNCd0JAKK9CT0KDQo9CI0JjQiyDQktCV0JvQmNCc0JjQoAor0JPQoNCj0IjQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCj0IjQmNCLINCS0JXQodCV0JvQmNCdCivQk9Cg0KPQiNCY0Isg0JLQldCh0J3QkAor0JPQoNCj0IjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQoNCj0IjQmNCLINCX0JvQkNCi0JjQptCQCivQk9Cg0KPQiNCY0Isg0JfQm9CQ0KLQmNCm0JAKK9CT0KDQo9CI0JjQnSDQlNCQ0J3QmNCm0JAKK9CT0KDQo9CI0JjQnSDQlNCj0KjQkNCdCivQk9Cg0KPQiNCY0J0g0InQo9CR0JjQptCQCivQk9Cg0KPQiNCY0J0g0JzQmNCb0JDQnQor0JPQoNCj0IjQmNCdINCc0JjQm9Ce0KgKK9CT0KDQo9CI0JjQnSDQndCQ0JTQkAor0JPQoNCj0IjQmNCdINCe0JvQk9CQCivQk9Cg0KPQiNCY0J0g0J/QldCi0JDQoAor0JPQoNCj0IjQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9CT0KDQo9CI0JjQnSDQodCQ0KjQkAor0JPQoNCj0IjQmNCdINCh0JzQmNCJ0JAKK9CT0KDQo9CI0JjQnSDQodCf0JDQodCe0IjQlQor0JPQoNCj0IjQmNCdINCi0JXQoNCV0JfQkAor0JPQoNCj0IjQmNCdINCX0J7QoNCQ0J0KK9CT0KDQo9CI0JjQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CT0KDQo9CI0JjQndCe0JLQmNCLINCX0J7QoNCa0JAKK9CT0KDQo9CI0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cg0KPQiNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQk9Cg0KPQiNCe0JLQodCa0Jgg0JvQkNCX0JDQoAor0JPQoNCj0JvQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JPQoNCj0JvQntCS0JjQiyDQl9CU0JXQndCa0J4KK9CT0KDQo9Cb0J7QktCY0Isg0JfQlNCg0JDQktCa0JAKK9CT0KDQo9Cb0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0KDQo9Cd0KfQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9Cd0JjQmiDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CT0KPQqNCQINCd0JjQmtCe0JvQkAor0JPQo9Co0JAg0J/QoNCV0JTQoNCQ0JMKK9CT0KPQqNCQ0JLQkNCmINCX0J7QoNCQ0J0KK9CT0KPQqNCY0Isg0JHQntCT0JTQkNCdCivQk9Cj0KjQmNCLINCR0J7QoNCY0KEKK9CT0KPQqNCY0Isg0JzQkNCd0J7QiNCb0J4KK9CT0KPQqNCY0Isg0JzQkNCd0J7QiNCb0J4KK9CT0KPQqNCY0Isg0JzQmNCb0JXQndCa0JAKK9CT0KPQqNCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0KPQqNCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0KPQqNCY0Isg0KPQk9CJ0JXQqNCQCivQk9Cj0KjQmNCLINCS0JDQodCY0InQmtCQCivQk9Cj0JbQkNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KPQltCQ0JvQmNCLINCh0KLQiNCV0J/QkNCdCivQk9Cj0JbQkNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9Cj0JbQkNCb0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQk9Cj0JbQldCb0JAg0JvQkNCh0JvQngor0JPQo9CW0JLQkNCKINCY0JLQmNCm0JAKK9CT0KPQltCS0JjQptCQINCC0J7QoNCC0JUKK9CT0KPQltCS0JjQptCQINCC0J7QoNCC0JUKK9CT0KPQltCS0JjQptCQINCR0KDQkNCd0JjQodCb0JDQkgor0JPQo9CW0JLQmNCm0JAg0JzQmNCb0JDQnQor0JPQo9CW0JLQmNCm0JAg0JzQmNCb0JDQnQor0JPQo9CW0JLQmNCm0JAg0JzQmNCg0JrQngor0JPQo9CW0JLQmNCm0JAg0J3QmNCa0J7Qm9CQCivQk9Cj0JbQktCY0KbQkCDQodCi0JXQktCeCivQk9Cj0JbQktCY0KbQkCDQl9Ce0KDQkNCdCivQk9Cj0JHQkNCoINCQ0J3QgtCV0JvQmNCI0JAKK9CT0KPQkdCQ0Kgg0JzQmNCg0J7QodCb0JDQkgor0JPQo9CR0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQk9Cj0JHQkNCoINCX0JDQk9Ce0KDQmtCQCivQk9Cj0JHQkNCd0JTQkCDQkdCQ0KDQkdCQ0KDQkAor0JPQo9CR0JDQndCU0JAg0JvQkNCU0JjQodCb0JDQkgor0JPQo9CR0JXQoNCY0J3QkCDQlNCj0KjQkNCdCivQk9Cj0JHQldCg0JjQndCQINCh0JvQntCR0J7QlNCQ0J0KK9CT0KPQkdCV0KDQmNCd0JjQiyDQidCj0JHQmNCm0JAKK9CT0KPQkdCV0KDQndCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQo9CR0JjQiyDQnNCY0KDQmtCeCivQk9Cj0JHQmNCm0JAg0IjQntCS0JDQnQor0JPQo9CR0JjQmiDQqNCQ0J3QlNCe0KAKK9CT0KPQkdCY0Jog0KjQkNCd0JTQntCgCivQk9Cj0JHQmNCaINCa0JDQoNCb0J4KK9CT0KPQkdCY0Jog0JrQkNCi0JDQoNCY0J3QkAor0JPQo9CR0JjQmiDQodCi0JXQktCQ0J0KK9CT0KPQpiDQodCi0JXQktCQ0J0KK9CT0KPQptCY0IjQkNCdINCh0KLQldCS0JAKK9CT0KPQptCjINCc0JjQoNCI0JDQndCQCivQk9Cj0KbQo9CJINCI0JXQm9CV0J3QkAor0JPQo9Cm0KPQiSDQnNCQ0KDQk9CY0KLQkAor0JPQo9Cm0KPQiSDQktCV0KDQkAor0JPQo9Cm0KPQitCQINCI0J7QktCQ0J0KK9CT0KPQptCj0IrQkCDQnNCY0JvQkNCdCivQk9Cj0KbQo9CK0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQptCj0IrQkCDQnNCY0JvQntCg0JDQlAor0JPQo9Cm0KPQndCh0JrQmCDQltCY0JLQmtCQCivQk9Cj0KbQo9Cd0KHQmtCYINCC0J7QoNCC0JUKK9CT0KPQptCj0J3QodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9CT0KPQptCj0J3QodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0JPQo9Cm0KPQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KPQptCj0J3QodCa0Jgg0JjQktCQ0J3QmtCQCivQk9Cj0KbQo9Cd0KHQmtCYINCY0JLQkNCd0JrQkAor0JPQo9Cm0KPQndCh0JrQmCDQiNCV0JvQldCd0JAKK9CT0KPQptCj0J3QodCa0Jgg0IjQntCS0JDQnQor0JPQo9Cm0KPQndCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0KPQptCj0J3QodCa0Jgg0J3QkNCU0JAKK9CT0KPQptCj0J3QodCa0Jgg0J/QldCg0KHQmNCU0JAKK9CT0KPQptCj0J3QodCa0Jgg0KDQkNCU0JUKK9CT0KPQptCj0J3QodCa0Jgg0KHQmNCc0JAKK9CT0KPQlNCQ0Ikg0JzQkNCg0KLQkAor0JPQo9CU0JDQm9Ce0JLQmNCLINCc0J7QnNCY0KAKK9CT0KPQlNCQ0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JPQo9CU0JXQiSDQgtCe0KDQgtCVCivQk9Cj0JTQldCJINCR0KDQkNCd0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CT0KPQlNCV0Ikg0IjQntCS0JDQnQor0JPQo9CU0JXQiSDQnNCQ0KDQmNCI0JAKK9CT0KPQlNCV0Ikg0JzQmNCb0JDQnQor0JPQo9CU0JXQiSDQnNCY0JvQldCd0JAKK9CT0KPQlNCV0Ikg0JzQntCc0KfQmNCb0J4KK9CT0KPQlNCV0Ikg0J3QldCU0JXQidCa0JAKK9CT0KPQlNCV0Ikg0KHQkNCS0JAg0JTQoAor0JPQo9CU0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JPQo9CU0J7QktCY0Isg0J/QkNCS0JvQlQor0JPQo9CU0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CT0KPQlNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JPQo9CU0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KPQlNCj0KDQmNCLINCQ0J3QgtCV0JvQmtCQINCU0KAKK9CT0KPQlNCj0KDQmNCLINCR0KDQkNCd0JjQnNCY0KAg0JTQoAor0JPQo9CU0KPQoNCY0Isg0JTQldCI0JDQnQor0JPQo9CU0KPQoNCY0Isg0IjQntCS0JDQnQor0JPQo9CU0KPQoNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQk9Cj0JTQo9Cg0JjQiyDQktCQ0KHQkAor0JPQo9CU0KPQoNCY0Isg0JfQntCg0JDQnQor0JPQo9CV0JvQnNCY0J3QniDQqNCQ0J3QlNCe0KAKK9CT0KPQldCb0JzQmNCd0J4g0KTQoNCY0ILQldCoCivQk9Cj0JPQkCDQktCV0KDQkAor0JPQo9CT0JAg0JLQldCg0JAKK9CT0KPQk9CY0Isg0KHQmNCd0JjQqNCQCivQk9Cj0JPQm9CV0KLQkCDQodCg0JHQmNCh0JvQkNCSCivQk9Cj0JrQntCU0Jgg0JzQm9CQ0JTQldCdCivQk9Cj0JvQkNCn0Jgg0IjQntCh0JjQnwor0JPQo9Cb0JDQi9CYINCJ0KPQkdCY0J3QmtCQCivQk9Cj0JvQkNCdINCR0J7QqNCa0J4KK9CT0KPQm9CQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cj0JvQkNCdINCS0JjQlNCe0KHQkNCS0JAKK9CT0KPQm9CUINCS0JDQm9CV0KDQmNCI0JAKK9CT0KPQm9CV0JLQmNCLINCi0JDQotCI0JDQndCQCivQk9Cj0JvQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCU0JjQnNCn0JUKK9CT0KPQm9CV0JLQodCa0Jgg0JTQmNCc0KfQlQor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCU0JjQnNCn0JUKK9CT0KPQm9CV0JLQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CT0KPQm9CV0JLQodCa0Jgg0KHQkNCo0JAKK9CT0KPQm9CY0Kcg0JjQnNCg0JUKK9CT0KPQm9CY0Isg0KHQotCQ0J3QmtCeCivQk9Cj0JvQmNCLINCS0JXQodCd0JAKK9CT0KPQm9CY0J0g0JzQkNCg0JjQptCQCivQk9Cj0JvQmNCdINCX0JvQkNCi0JrQngor0JPQo9CJ0JDQqCDQnNCQ0KDQmNCI0JAKK9CT0KPQidCQ0Kgg0KLQldCg0JXQl9CY0IjQkAor0JPQo9CJ0JDQqCDQktCV0KHQndCQCivQk9Cj0InQn9CQINCc0JjQm9CQ0J0KK9CT0KPQidCf0JAg0KHQkNCS0JAKK9CT0KPQndCV0Jog0JzQkNCg0JjQiNCQCivQk9Cj0J3QldCaINCc0JDQotCVCivQk9Cj0J3QldCaINCi0J7QnNCQCivQk9Cj0J3QmNCLINCc0JjQm9CV0J3QkAor0JPQo9CK0JXQktCY0Isg0JzQmNCb0JUKK9CT0KPQitCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQk9Cj0KDQkNCdINCi0JDQnNCQ0KgKK9CT0KPQoNCI0JDQndCe0JIg0JbQkNCg0JrQngor0JPQo9Cg0IjQkNCd0J7QkiDQkdCb0JDQk9Ce0IjQlQor0JPQo9Cg0IjQkNCd0J7QkiDQiNCV0JvQmNCm0JAKK9CT0KPQoNCI0JDQndCe0JIg0JLQkNCh0JAKK9CT0KPQoNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cj0KHQmNCLINCc0JjQm9CV0JLQkAor0JPQo9Ch0JzQkNCdINCC0J7QoNCC0JUg0JTQoCDQm9CV0JrQkNCgCivQk9Cj0KHQnNCQ0J0g0JTQoNCQ0JPQmNCm0JAKK9CT0KPQodCc0JDQnSDQk9CV0KDQpdCQ0KDQlAor0JPQo9Ch0JzQkNCdINCl0JjQm9CU0JAKK9CT0KPQodCc0JDQnSDQmNCc0KDQlQor0JPQo9CiINCI0JDQndCa0J4KK9CT0KPQoiDQiNCe0JLQkNCdCivQk9Cj0KIg0J3QkNCi0JDQm9CY0IjQkAor0JPQo9Ci0JDQmCDQiNCe0JvQkNCdCivQk9Cj0KLQkNCYINCc0JjQpdCQ0IkKK9CT0KPQotCQ0IjQmCDQmNCb0JXQqAor0JPQo9Ci0JDQiSDQnNCY0JvQntCg0JDQlAor0JPQo9Ci0JXQqNCQINCC0KPQoNCeCivQk9Cj0KLQldCo0JAg0JzQmNCg0JrQngor0JPQo9Ci0JXQqNCQINCd0JjQmtCe0JvQkAor0JPQo9Ci0JXQqNCQINCS0J7QiNCY0KHQm9CQ0JIKK9CT0KPQotCYINCW0J7Qm9CiCivQk9Cj0KLQmNCLINCo0J/QmNCg0J4KK9CT0KPQotCY0Isg0JPQntCg0JDQnQor0JPQo9Ci0JzQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cj0KLQnNCQ0J0g0JTQkNCg0JjQndCa0J4KK9CT0KPQotCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQk9Cj0KLQntCS0JjQiyDQlNCQ0J3QmNCV0JvQkAor0JPQo9Ci0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0KPQotCe0JLQmNCLINCg0JDQlNCVCivQk9Cj0KLQntCS0JjQiyDQoNCY0KHQotCeCivQk9Cj0KLQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CT0KPQotCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQk9Cj0KLQntCS0JjQiyDQl9Ce0KDQkNCdCivQk9Cj0KLQktCQ0IjQnSDQkNCU0JDQnAor0JPQo9Ci0JLQkNCI0J0g0JDQlNCQ0JwKK9CT0KPQotCS0JDQiNCdINCV0JvQmNCX0JDQkdCV0KLQkAor0JPQo9Ci0JLQkNCI0J0g0JXQktCQCivQk9Cj0JfQmNCI0JDQnSDQiNCe0JLQngor0JPQo9CX0JjQiNCQ0J0g0JzQmNCb0JDQnQor0JPQo9CX0JjQiNCQ0J0g0J3QmNCa0J7Qm9CQCivQk9Cj0JfQmNCd0JAg0KfQldCU0J7QnNCY0KAKK9CT0KPQl9CY0J3QkCDQidCj0JHQmNCh0JDQkgor0JPQo9CX0JjQndCQINCc0JjQpdCQ0IjQm9CeCivQk9Cj0JfQmNCd0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQl9CY0J3QkCDQnNCY0JvQntCg0JDQlAor0JPQo9CX0JjQndCQINCc0JjQm9Ce0KHQkNCSINCU0KAKK9CT0KPQl9CY0J3QkCDQktCb0JDQlNCY0JzQmNCgCivQk9Cj0JfQmNCd0JAg0JLQntCI0JjQodCb0JDQkgor0JPQo9CX0JjQndCQINCS0KPQmtCQ0KjQmNCdCivQk9CS0JXQoNCY0Isg0JHQntCg0JjQktCe0IgKK9CT0JLQldCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JPQktCV0KDQniDQm9CQ0JfQngor0JPQktCV0KDQniDQnNCY0KDQkAor0JPQktCe0JbQgtCQ0J0g0JHQntCg0JjQodCb0JDQktCQCivQk9CS0J7QltCC0JDQnSDQnNCY0KXQkNCI0JvQngor0JPQktCe0JbQgtCQ0J0g0KDQkNCU0J7QktCQ0J0KK9CT0JLQntCY0Isg0JHQoNCQ0J3QmtCeCivQk9CS0J7QmNCLINCc0JjQm9CQ0J0KK9CT0JLQntCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JPQktCe0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JLQntCI0JjQiyDQnNCY0JvQkNCdCivQk9CS0J7QiNCY0Isg0KHQotCQ0J3QmtCeCivQk9CS0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQk9CS0J7QmtCQINCd0JDQlNCQCivQk9CS0J7Ql9CU0JXQnSDQkdCe0KHQmNCJ0JrQkAor0JPQktCe0JfQlNCV0J0g0JHQoNCQ0J3QmtCeCivQk9CS0J7Ql9CU0JXQnSDQodCg0JXQotCeCivQk9CS0J7Ql9CU0JXQnSDQktCb0JDQlNCY0JzQmNCgCivQk9CS0J7Ql9CU0JXQndCQ0KYg0JbQmNCS0JrQngor0JPQktCe0JfQlNCV0J3QkNCmINCR0J7QoNCQCivQk9CS0J7Ql9CU0JXQndCQ0KYg0JHQntCg0JAKK9CT0JLQntCX0JTQldCd0JDQpiDQkdCe0KDQmtCQCivQk9CS0J7Ql9CU0JXQndCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0JPQktCe0JfQlNCV0J3QkNCmINCU0KPQqNCQ0J0KK9CT0JLQntCX0JTQldCd0JDQpiDQoNCQ0IjQmtCeCivQk9CS0J7Ql9CU0JXQndCQ0KYg0KHQndCV0JbQkNCd0JAKK9CT0JLQntCX0JTQldCd0J7QkiDQiNCe0JLQkNCdCivQk9CS0J7Ql9CU0JXQndCe0JIg0JzQmNCb0JDQnQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCC0KPQoNCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCR0J7QltCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQldCI0JDQnQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0InQo9CR0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCL0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCoCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0KDQkNCI0JrQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCh0KLQldCS0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Ist0KLQntCU0J7QoNCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLLdCi0J7QlNCe0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQktCY0JTQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQk9CS0J7Ql9CU0JjQiyDQgtCe0KDQgtCVCivQk9CS0J7Ql9CU0JjQiyDQnNCY0JvQkNCdCivQpdCQ0KjQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KXQkNCo0J7QktCY0Isg0JjQnNCg0JUKK9Cl0JDQgtCY0J3QkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0KXQkNCR0JDQqCDQl9Ce0KDQkNCdCivQpdCQ0JHQkNCI0JXQpiDQidCj0JHQmNCm0JAKK9Cl0JDQkdCV0Jog0JbQldCJ0JrQngor0KXQkNCR0JXQndCo0KPQoSDQnNCY0JvQldCd0JrQngor0KXQkNCR0JXQndCo0KPQoSDQnNCY0JvQldCd0JrQngor0KXQkNCR0JjQiNCQ0J0g0KTQoNCQ0IrQkAor0KXQkNCR0JjQiNCQ0J0g0JLQldCh0J3QkAor0KXQkNCR0JjQiNCQ0J3QldCmINCi0JjQpdCe0JzQmNCgCivQpdCQ0JHQntCgINCI0JDQnQor0KXQkNCR0KDQkNCcINCQ0KDQkNCd0JrQkAor0KXQkNCR0KDQkNCcINCa0JDQoNCe0IkKK9Cl0JDQkdCj0JTQkCDQiNCe0KHQmNCfCivQpdCQ0JHQo9CU0JAg0JLQkNCb0JXQndCi0JjQnQor0KXQkNCm0J7Qn9Cj0JvQntChINCC0J7QoNCC0JUKK9Cl0JDQptCe0J/Qo9Cb0J7QoSDQndCQ0JTQkAor0KXQkNCP0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JDQj9CYINCa0J7QodCi0JAg0JDQlNCS0J7QmtCQ0KIKK9Cl0JDQj9CYLdCc0JDQndCe0JIg0InQo9Cf0KfQngor0KXQkNCP0Jgt0J/QkNCS0JvQntCS0JjQiyDQntCb0JPQkAor0KXQkNCP0Jgg0KDQkNCc0JDQlNCQ0J0KK9Cl0JDQj9CY0Isg0JHQntCh0JjQidCa0JAKK9Cl0JDQj9CY0Isg0JPQntCg0JDQndCa0JAKK9Cl0JDQj9CY0Isg0JjQkdCg0JDQpdCY0JwKK9Cl0JDQj9CY0Isg0JjQodCc0JXQogor0KXQkNCP0JjQiyDQm9CQ0JfQkNCgCivQpdCQ0I/QmNCLINCb0JDQl9CQ0KAKK9Cl0JDQj9CY0Isg0JzQmNCb0JDQnSDQlNCgCivQpdCQ0I/QmNCLINCc0JjQm9CV0JLQkAor0KXQkNCP0JjQiyDQnNCe0J3QmNCa0JAKK9Cl0JDQj9CY0Isg0JzQo9Cl0JDQoNCV0JwKK9Cl0JDQj9CY0Isg0J3QkNCU0JAKK9Cl0JDQj9CY0Isg0J7Qm9CT0JAg0JTQoAor0KXQkNCP0JjQiyDQn9CQ0JLQm9CVCivQpdCQ0I/QmNCLINCg0JDQlNCY0JLQntCICivQpdCQ0I/QmNCLINCh0JvQkNCS0KPQiAor0KXQkNCP0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQpdCQ0I/QmNCQ0KXQnNCV0KLQntCS0JjQiyDQoNCQ0KHQmNCcCivQpdCQ0I/QmNCQ0KDQodCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQpdCQ0I/QmNCR0JDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQpdCQ0I/QmNCR0JDQkdCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cl0JDQj9CY0JHQkNCR0JjQiyDQoNCQ0JTQntCc0JjQoAor0KXQkNCP0JjQkdCQ0JHQmNCLINCX0J7QoNCY0KbQkAor0KXQkNCP0JjQpdCQ0KHQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cl0JDQj9CY0JLQo9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAg0J/QoNCe0KQKK9Cl0JDQj9Ce0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpdCQ0I/QntCS0JjQiyDQoNCQ0KLQmtCeCivQpdCQ0JTQkNCU0Jgg0KHQnNCY0InQkAor0KXQkNCU0JjQmiDQkNCU0KDQmNCV0J0KK9Cl0JDQlNCY0Jog0IjQntCW0JXQpAor0KXQkNCU0J3QkNCCINCT0JjQl9CV0JvQkAor0KXQkNCU0J3QkNCCINCi0JXQoNCV0JfQkAor0KXQkNCU0J3QkNCCINCS0JXQoNCQCivQpdCQ0JTQndCQ0IIg0JLQldCg0J7QndCY0JrQkAor0KXQkNCU0J3QkNCC0JXQkiDQkNCg0KHQldCdCivQpdCQ0JTQndCQ0ILQldCSINCU0KPQqNCQ0J0g0JTQoAor0KXQkNCU0J3QkNCC0JXQkiDQlNCj0KjQkNCdCivQpdCQ0JTQndCQ0ILQldCSINCY0KHQmNCU0J7QoAor0KXQkNCU0J3QkNCC0JXQkiDQnNCY0J7QlNCg0JDQkwor0KXQkNCU0J3QkNCC0JXQkiDQnNCY0KDQmtCeCivQpdCQ0JTQndCQ0ILQldCSINCh0KLQkNCd0JjQodCb0JDQkgor0KXQkNCU0J3QkNCC0JXQkiDQodCi0JXQktCQ0J0KK9Cl0JDQlNCd0JDQgtCV0JIg0KHQotCe0IjQkNCdCivQpdCQ0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0JDQmNCdINCX0J7QoNCY0KbQkAor0KXQkNCI0KfQo9Cd0Jog0IjQntCW0JXQpAor0KXQkNCI0KfQo9Cd0Jog0JzQmNCg0JrQngor0KXQkNCI0JDQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCI0JTQkNCg0JXQktCY0Isg0J7QoNCl0JDQnQor0KXQkNCI0JTQkNCg0J/QkNCo0JjQiyDQldCh0JDQlAor0KXQkNCI0JTQldCgINCC0J7QoNCC0JUKK9Cl0JDQiNCU0JXQoCDQlNCg0JDQk9CQ0J0KK9Cl0JDQiNCU0JXQoCDQm9Cj0JrQkAor0KXQkNCI0JTQldCgINCc0JDQoNCY0KbQkAor0KXQkNCI0JTQldCgINCc0JDQoNCa0J4KK9Cl0JDQiNCU0JXQoCDQnNCY0JvQntCoCivQpdCQ0IjQlNCV0KAg0KDQkNCU0JUKK9Cl0JDQiNCU0JXQoCDQoNCQ0IjQmtCeCivQpdCQ0IjQlNCV0KAg0KHQotCe0IjQkNCd0JrQkAor0KXQkNCI0JTQldCgINCS0JXQodCd0JAKK9Cl0JDQiNCU0JXQoCDQl9Ce0KDQkNCdCivQpdCQ0IjQlNCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cl0JDQiNCU0JjQnSDQkdCe0JPQlNCQ0J0KK9Cl0JDQiNCU0JjQnSDQodCb0JDQktCa0J4KK9Cl0JDQiNCU0KMg0JDQndCQCivQpdCQ0IjQlNCjINCQ0J3QlNCg0JjQiNCQCivQpdCQ0IjQlNCjINCQ0J3QotCQ0JsKK9Cl0JDQiNCU0KMg0KTQldCg0JXQndCmCivQpdCQ0IjQlNCjLdCT0KDQkNCI0JvQkNClINCV0JzQkAor0KXQkNCI0JTQoyDQmNCb0J7QndCa0JAKK9Cl0JDQiNCU0KMg0JjQoNCV0J3QkAor0KXQkNCI0JTQoyDQiNCe0JbQldCkCivQpdCQ0IjQlNCjINCI0J7Qm9CY0JrQkAor0KXQkNCI0JTQoyDQiNCe0KHQmNCfCivQpdCQ0IjQlNCjINCa0JDQotCY0KbQkAor0KXQkNCI0JTQoyDQmtCb0JDQoNCQCivQpdCQ0IjQlNCjINCb0JDQiNCe0KgKK9Cl0JDQiNCU0KMg0JvQkNCh0JvQngor0KXQkNCI0JTQoyDQidCj0JTQldCS0JjQogor0KXQkNCI0JTQoyDQnNCQ0KDQmNCI0JAKK9Cl0JDQiNCU0KMg0J7QotCeCivQpdCQ0IjQlNCjINCf0JDQktCb0JUKK9Cl0JDQiNCU0KMg0KHQotCV0JLQkNCdCivQpdCQ0IjQlNCj0Jog0ILQntCg0ILQlQor0KXQkNCI0JTQo9CaINCY0KDQmNCd0JAKK9Cl0JDQiNCU0KPQmiDQiNCQ0J3QmtCeCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQkNCg0KHQldCdCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0InQmNCJ0JDQndCQCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCe0KLQngor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCh0JzQmNCJ0JAKK9Cl0JDQiNCd0JDQmyDQkNCd0KLQkNCbCivQpdCQ0IjQndCQ0Jsg0JPQkNCR0KDQmNCI0JXQm9CQCivQpdCQ0IjQndCQ0Jsg0JjQktCQ0J0KK9Cl0JDQiNCd0JDQmyDQm9CQ0KHQm9CeCivQpdCQ0IjQndCQ0Jsg0InQo9CR0JjQptCQCivQpdCQ0IjQndCQ0Jsg0JzQkNCg0JjQiNCQCivQpdCQ0IjQndCQ0Jsg0J3QmNCa0J7Qm9CQCivQpdCQ0IjQndCmINCC0J7QoNCC0JUKK9Cl0JDQiNCd0KYg0IjQntCh0JjQnwor0KXQkNCI0J3QpiDQiNCe0JLQkNCdCivQpdCQ0IjQndCmINCX0JvQkNCi0JAKK9Cl0JDQiNCi0KTQntCT0JXQmyDQktCb0JDQlNCQCivQpdCQ0IjQotCk0J7Qk9CV0Jsg0JLQm9CQ0JTQmNCh0JvQkNCSCivQpdCQ0IjQotCbINCY0JLQkNCdCivQpdCQ0IjQktCQ0Jcg0KDQkNCI0JrQngor0KXQkNCI0JfQm9CV0KAg0ILQntCg0ILQlQor0KXQkNCI0JfQm9CV0KAg0JTQo9Co0JDQnQor0KXQkNCI0JfQm9CV0KAg0IjQntCS0JDQnQor0KXQkNCa0JDQpyDQnNCQ0KLQmNCI0JAKK9Cl0JDQmtCV0KAg0JjQktCQ0J0KK9Cl0JDQmtCV0KAg0KLQldCg0JXQl9CQCivQpdCQ0JvQkNCoINCX0KPQl9CQ0J3QkAor0KXQkNCb0JDQqNCYINCC0J7QoNCC0JUKK9Cl0JDQm9CQ0KjQmCDQldCi0JXQm9Ca0JAKK9Cl0JDQm9CQ0KjQmC3QmtCY0Kgg0KTQoNCQ0J3QmtCQCivQpdCQ0JvQkNCo0Jgg0KDQo9CW0JAg0JTQoCDQmNCd0JMKK9Cl0JDQm9CQ0Jgg0JjQnNCg0JUKK9Cl0JDQm9CQ0Jgg0JzQkNCg0JjQiNCQCivQpdCQ0JvQkNCYINCf0JXQotCQ0KAKK9Cl0JDQm9CQ0Jgg0KHQkNCR0J7Qm9CnCivQpdCQ0JvQkNCf0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cl0JDQm9CQ0J/QmCDQmNCg0JXQndCQCivQpdCQ0JvQkNCf0Jgg0JjQktCQ0J0KK9Cl0JDQm9CQ0KEg0KjQkNCd0JTQntCgCivQpdCQ0JvQkNChINCk0KDQkNCK0JAKK9Cl0JDQm9CQ0KEg0JzQkNCg0JjQiNCQCivQpdCQ0JvQkNCS0JDQitCQINCW0JXQidCa0J4KK9Cl0JDQm9CQ0JLQkNCK0JAg0InQo9CR0JDQnQor0KXQkNCb0JDQktCQ0IrQkCDQnNCY0JvQkNCdCivQpdCQ0JvQkNCS0JDQitCQINCg0JDQlNCVCivQpdCQ0JvQkNCS0JDQitCQINCh0KLQldCS0JAKK9Cl0JDQm9CV0KAg0KHQotCV0JLQkNCdCivQpdCQ0JvQmNCb0J7QktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9Cl0JDQm9CY0Jwg0KHQldCk0JXQoAor0KXQkNCb0KPQn9Ca0JAg0IjQntCW0JXQpCDQlNCgCivQpdCQ0Jwg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JDQnNCjINCc0JjQpdCQ0IkKK9Cl0JDQnNCX0JjQiyDQnNCY0JvQldCd0JAKK9Cl0JDQnSDQodCe0KTQmNCI0JAKK9Cl0JDQndCm0JrQniDQiNCe0JbQldCkINCU0KAKK9Cl0JDQndCm0JrQniDQiNCe0JbQldCkINCU0KAKK9Cl0JDQndCU0JAg0JrQkNCi0JjQptCQCivQpdCQ0J3QkyDQnNCQ0KLQldCICivQpdCQ0J3QkyDQktCb0JDQotCa0J4KK9Cl0JDQndCT0JAg0JDQndCi0KPQnQor0KXQkNCd0JPQkCDQkNCd0KLQo9CdCivQpdCQ0J3Qk9CQINCc0JDQoNCY0IjQkAor0KXQkNCd0JPQntCS0KHQmtCYINCQ0J3QlNCg0JjQiNCQCivQpdCQ0J3QodCa0J4g0IjQntCh0JjQnwor0KXQkNCd0KHQmtCeINCh0KLQldCS0JDQnQor0KXQkNCd0KPQqNCY0Isg0KHQldCQ0JQKK9Cl0JDQoNCQ0KfQmNCLINCP0JXQnNCQ0JsKK9Cl0JDQoNCQ0KfQmNCLINCJ0KPQkdCY0KbQkAor0KXQkNCg0JDQmiDQn9CQ0JLQm9CVCivQpdCQ0KDQkNCc0JHQkNCo0JjQiyDQkdCe0JbQkNCd0JAKK9Cl0JDQoNCQ0JzQmNCI0JAg0JzQkNCg0JjQiNCQCivQpdCQ0KDQkNCd0JPQntCX0J4g0KjQkNCd0JTQntCgCivQpdCQ0KDQkNCd0JPQntCX0J4g0KjQkNCd0JTQntCgCivQpdCQ0KDQkNCd0JPQntCX0J4g0KjQkNCg0JjQmtCQCivQpdCQ0KDQkNCd0JPQntCX0J4g0JHQkNCb0JjQndCiCivQpdCQ0KDQkNCd0JPQntCX0J4g0JHQntCo0JrQngor0KXQkNCg0JDQndCT0J7Ql9CeINCV0KDQltCV0JHQldCiCivQpdCQ0KDQkNCd0JPQntCX0J4g0JXQoNCW0JXQkdCV0KIKK9Cl0JDQoNCQ0J3Qk9Ce0JfQniDQmNCo0KLQktCQ0J0KK9Cl0JDQoNCQ0J3Qk9Ce0JfQniDQmNCc0KDQlQor0KXQkNCg0JDQndCT0J7Ql9CeLdCI0JXQk9Cg0JjQqNCa0Jgg0JzQkNCg0JjQiNCQCivQpdCQ0KDQkNCd0JPQntCX0J4g0JrQkNCg0J7QiQor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCW0KPQltCQ0J3QkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCC0KPQoNCQCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JHQntCW0JjQlNCQ0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQmNCg0JjQndCQCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JjQktCQ0J0KK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQiNCe0JDQmtCY0JwKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQiNCe0JLQkNCdCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0IjQntCS0JDQnQor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCJ0KPQkdCY0KbQkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCd0JXQodCi0J7QoAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCd0JjQmtCe0JvQkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCh0JjQm9CS0JXQodCi0JXQoAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCh0KLQntCI0JDQndCa0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQktCV0KHQndCQCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cl0JDQoNCk0JzQkNCdINCc0JDQoNCQCivQpdCQ0KDQpdCQ0Jgg0JbQldCJ0JrQngor0KXQkNCg0KXQkNCYINCR0J7QltCQ0J3QkAor0KXQkNCg0KXQkNCYINCI0JDQndCa0J4KK9Cl0JDQoNCl0JDQiNCYINCl0JXQm9CV0J3QkAor0KXQkNCg0KXQkNCI0Jgg0IjQkNCd0JrQngor0KXQkNCg0KXQkNCI0Jgg0IjQntCQ0JrQmNCcCivQpdCQ0KDQpdCQ0IjQmCDQiNCe0JDQmtCY0JwKK9Cl0JDQoNCl0JDQiNCYINCJ0KPQkdCe0JzQmNCgCivQpdCQ0KDQpdCQ0IjQmCDQidCj0JHQntCc0JjQoAor0KXQkNCg0KXQkNCI0Jgg0JzQmNCg0J7QnQor0KXQkNCg0KXQkNCI0Jgg0J3QmNCa0J7Qm9CQCivQpdCQ0KDQpdCQ0IjQmCDQktCb0JDQlNCY0JzQmNCgCivQpdCQ0KDQpdCQ0IjQmCDQktCb0JDQlNCY0JzQmNCgCivQpdCQ0KDQmNCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpdCQ0KDQmNCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQpdCQ0KDQmNCoINCJ0KPQkdCY0JLQntCI0JUKK9Cl0JDQoNCY0Kgg0J/QmNCg0J7QqNCa0JAKK9Cl0JDQoNCY0IjQkNCdINCo0KLQldCk0JjQptCQCivQpdCQ0KDQmtCQ0Jgg0KHQotCV0JLQkNCdCivQpdCQ0KDQnNCQ0KIg0JrQntCd0KDQkNCUCivQpdCQ0KDQn9CQ0Iog0JzQmNCl0JDQmwor0KXQkNCg0KIg0JzQkNCg0JPQmNCi0JAKK9Cl0JDQoNCi0JjQkyDQmNCg0JXQndCQCivQpdCQ0KDQotCY0JMg0KLQmNCR0J7QoAor0KXQkNCg0KLQnNCQ0J0g0JrQkNCi0JDQoNCY0J3QkAor0KXQkNCg0KLQnNCQ0J0g0JLQldCh0J3QkAor0KXQkNChINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCQ0KEg0JrQkNCg0JvQngor0KXQkNChINCc0JDQoNCi0JAKK9Cl0JDQoSDQnNCY0JvQmNCm0JAKK9Cl0JDQodCQ0J3QkNCT0JjQiyDQldCh0J3QkNCkCivQpdCQ0KHQkNCd0JDQk9CY0Isg0JzQmNCb0JDQnQor0KXQkNCh0JXQndCQ0KPQldCgINCI0J7QodCY0J8KK9Cl0JDQodCY0Isg0I/QldCc0JDQmwor0KXQkNCi0JDQm9CQINCc0JDQotCVCivQpdCQ0KLQkNCb0JAg0JfQntCb0KLQkNCdCivQpdCQ0KPQkyDQkNCd0JjQptCQCivQpdCQ0KPQmiDQoNCe0JHQldCg0KIKK9Cl0JDQo9Cf0KLQnNCQ0J0g0KHQm9CQ0JLQmtCeCivQpdCQ0KPQoNCU0JjQiyDQoNCQ0JHQmNCI0JAKK9Cl0JDQo9Ch0JXQoCDQpdCY0JvQlNCQCivQpdCQ0KPQl9CV0KAg0J7QodCa0JDQoAor0KXQkNCj0JfQm9Ce0KXQndCV0KAg0JjQoNCV0J3QkAor0KXQkNCS0IjQkNCgINCS0JXQm9CY0JfQkNCgCivQpdCQ0JLQm9CV0Jog0KTQoNCQ0IrQkAor0KXQkNCS0JvQldCaINCI0J7QodCY0J8KK9Cl0JDQktCg0JDQnSDQl9Cb0JDQotCa0J4KK9Cl0JDQktCX0Jgg0KjQldCg0JjQpAor0KXQkNCS0JfQmCDQm9CY0JzQkNCdCivQpdCV0ILQldCoINCI0JDQndCe0KgKK9Cl0JXQgtCV0JvQkNCYINCh0KLQldCS0JDQnQor0KXQldCC0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JXQgtCYINCc0JjQm9CY0KbQkAor0KXQldCU0JXQqCDQiNCQ0J3QntCoCivQpdCV0JPQldCU0JjQqCDQgtCV0KDQggor0KXQldCT0JXQlNCY0Kgg0JHQldCb0JAKK9Cl0JXQk9CV0JTQmNCoINCR0JXQoNCi0JAKK9Cl0JXQk9CV0JTQmNCoINCT0JXQl9CQCivQpdCV0JPQldCU0JjQqCDQmNCo0KLQktCQ0J0KK9Cl0JXQk9CV0JTQmNCoINCI0J7QltCV0KQKK9Cl0JXQk9CV0JTQmNCoINCI0J7QpdCQ0J3QkAor0KXQldCT0JXQlNCY0Kgg0IjQntCX0JXQpNCY0J3QkAor0KXQldCT0JXQlNCY0Kgg0KLQldCg0JXQl9CY0IjQkAor0KXQldCT0JXQlNCY0Kgg0JfQntCb0KLQkNCdCivQpdCV0JPQldCU0KPQqCDQmtCQ0KDQntCb0JjQndCQCivQpdCV0JjQnCDQnNCQ0JPQlNCQCivQpdCV0JrQmNCLINCh0JvQkNCS0JjQptCQCivQpdCV0JvQldCgINCT0JDQkdCg0JjQiNCV0JsKK9Cl0JXQm9CV0KAg0JjQndCT0KDQmNCUCivQpdCV0Jwg0IjQkNCd0J7QqAor0KXQldCc0Jgg0JDQndCY0KbQkAor0KXQldCc0Jgg0JLQm9CQ0JTQmNCh0JvQkNCSCivQpdCV0JzQntCdINCR0J7QoNCY0KEKK9Cl0JXQnNCe0J0g0JzQkNCg0JjQiNCQCivQpdCV0JzQntCdINCh0JvQkNCS0JjQptCQCivQpdCV0JzQntCdINCi0JXQoNCV0JfQmNCI0JAKK9Cl0JXQnNCe0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KXQldCc0J7QnSDQktCb0JDQlNCY0JzQmNCgCivQpdCV0JzQoNCY0KUg0JrQm9CQ0KDQkAor0KXQldCc0KPQnSDQnNCY0KXQkNCI0JvQngor0KXQldCdINCW0JXQidCa0J4KK9Cl0JXQnSDQmNCS0JjQptCQCivQpdCV0J0g0JzQkNCg0JjQiNCQCivQpdCV0J3Qk9CbINCU0JDQnNCI0JDQnQor0KXQldCd0JPQmyDQiNCe0JLQkNCdCivQpdCV0J3Qk9CbINCg0JjQpdCQ0KDQlAor0KXQldCd0JjQqCDQktCY0JvQnNCQCivQpdCV0J3QmtCV0Jsg0KTQmNCb0JjQnwor0KXQldCfINCc0JDQmtCh0JjQnAor0KXQldCg0KfQmNCaINCg0J7QkdCV0KDQogor0KXQldCg0JDQmiDQmNCS0JDQnQor0KXQldCg0JDQmiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cl0JXQoNCQ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQldCg0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KXQldCg0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cl0JXQoNCR0JXQlyDQnNCY0JvQldCd0JrQngor0KXQldCg0JHQodCiINCQ0J3QotCj0J0KK9Cl0JXQoNCR0KPQoiDQgtCe0KDQgtCVCivQpdCV0KDQkdCj0KIg0JPQkNCR0J7QoAor0KXQldCg0JHQo9CiINCI0J7QltCV0KQKK9Cl0JXQoNCR0KPQoiDQmtCQ0KDQntCJCivQpdCV0KDQkdCj0KIg0JrQmNCg0JjQmwor0KXQldCg0JHQo9CiINCc0JjQpdCQ0IjQm9CeCivQpdCV0KDQkdCj0KIg0KHQmNCb0JLQldCh0KLQldCgCivQpdCV0KDQptCV0JMg0ILQntCg0ILQlQor0KXQldCg0KbQldCTINCU0KDQkNCT0J7QodCb0JDQkgor0KXQldCg0KbQldCTINCa0JDQoNCb0J4KK9Cl0JXQoNCm0JXQndCR0JXQoNCT0JXQoCDQgtCj0JvQkAor0KXQldCg0KbQldCd0JHQldCg0JPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JXQoNCm0JXQndCR0JXQoNCT0JXQoCDQk9CY0JfQldCb0JAKK9Cl0JXQoNCm0JXQndCR0JXQoNCT0JXQoCDQmNCg0JXQnQor0KXQldCg0KbQntCTINCC0J7QoNCC0JUKK9Cl0JXQoNCU0Jgg0IjQntCh0JjQnwor0KXQldCg0JTQmCDQidCY0InQkNCd0JAKK9Cl0JXQoNCU0Jgt0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KXQldCg0JXQndCn0JjQiyDQm9CV0J7Qn9Ce0JvQlAor0KXQldCg0JXQndCU0JjQiNCQINCC0J7QoNCC0JUKK9Cl0JXQoNCV0J3QlNCY0IjQkCDQnNCQ0KDQmtCeCivQpdCV0KDQldCi0JAg0KHQm9Ce0JHQntCU0JDQnQor0KXQldCg0JPQldCiINCa0JDQotCY0KbQkAor0KXQldCg0JjQiyDQnNCY0KXQntCS0JjQmwor0KXQldCg0JjQndCTINCQ0JzQkNCb0JjQiNCQCivQpdCV0KDQmNCd0JMg0JjQktCQ0J0KK9Cl0JXQoNCc0JDQnSDQp9CY0JvQkAor0KXQldCg0JzQkNCdINCQ0J3QgtCQCivQpdCV0KDQnNCQ0J0g0JjQktCQ0J0KK9Cl0JXQoNCc0JDQnSDQmtCQ0KDQm9CeCivQpdCV0KDQnNCQ0J0g0JLQmNCb0JjQnAor0KXQldCg0J7QoCDQm9CQ0JfQkNCgCivQpdCV0KDQn9Ca0JAg0JTQo9CR0KDQkNCS0JrQkAor0KXQldCg0J/QmtCQINCY0JLQkNCdINCU0KAg0JjQndCTCivQpdCV0KDQotCbINCI0J7QltCV0KQKK9Cl0JXQoNCi0Jsg0J3QkNCU0JAKK9Cl0JXQoSDQqNCQ0J3QlNCe0KAKK9Cl0JXQoSDQm9CQ0KHQm9CeCivQpdCV0KHQmtCeINCS0JjQmtCi0J7QoNCY0IjQkAor0KXQldCS0JXQoCDQnNCQ0KDQk9CY0KLQkAor0KXQldCS0JXQoCDQn9CQ0JLQm9CVCivQpdCV0JLQldCg0JAg0JzQmNCl0JDQiNCb0J4KK9Cl0JXQktCV0KDQkCDQl9Cj0JfQkNCd0JAKK9Cl0JXQktCY0JfQmCDQmNCb0J7QndCQCivQpdCV0JLQmNCX0Jgg0J/QldCi0JDQoAor0KXQmNCL0JjQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQmNCL0JjQmyDQiNCe0KHQmNCfCivQpdCY0IvQmNCbINCa0JDQotCQ0KDQmNCd0JAKK9Cl0JjQltCQINCI0J7QktCQ0J0KK9Cl0JjQltCQINCc0JjQqNCQCivQpdCY0JHQqCDQnNCQ0KDQmNCI0JAKK9Cl0JjQkdCoINCg0JjQpdCQ0KDQlCDQodCj0JTQmNCI0JAKK9Cl0JjQkdCoINCi0JDQndCa0KDQldCUCivQpdCY0JXQmyDQmtCh0JXQndCY0IjQkAor0KXQmNCbINCI0J7QodCY0J8KK9Cl0JjQmyDQktCV0KDQkAor0KXQmNCb0JjQldCgLdCa0J7Qm9CQ0KDQntCSINCS0JDQm9CV0KDQmNCI0JAg0JTQoAor0KXQmNCb0JjQldCgINCb0JDQiNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQpdCY0J3QmNCLINCC0J7QoNCC0JUKK9Cl0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQpdCY0J3QmNCLINCc0JDQndCVCivQpdCY0J3QmNCLINCc0JjQm9CY0KbQkAor0KXQmNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KXQmNCf0JjQmiDQqNCi0JXQpNCQ0J3QkAor0KXQmNCf0JjQmiDQiNCe0JLQkNCdCivQpdCY0J/QmNCaINCa0JDQoNCb0J4KK9Cl0JjQoNCoINCh0KLQiNCV0J/QkNCdCivQpdCY0KDQqNCV0J3QkdCV0KDQk9CV0KAg0JzQkNCg0KLQkAor0KXQmNCg0KjQldCd0JHQldCg0JPQldCgINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cl0JjQoNCo0JzQkNCdINCQ0J3QotCj0J0KK9Cl0JjQoNCI0J7QktCQ0KLQmCDQidCj0JHQmNCm0JAKK9Cl0JjQoNCI0J7QktCQ0KLQmNCIINCc0JjQoNCe0J0KK9Cl0JjQoNCc0JDQnSDQpNCg0JDQitCQCivQpdCY0KDQnNCQ0J0g0JfQntCb0KLQkNCdCivQpdCY0KLQldCd0JHQldCg0JPQldCgINCC0J7QoNCC0JUKK9Cl0JjQotCYINCk0KDQkNCd0KYKK9Cl0JjQotCbINCV0JvQmNCX0JDQkdCV0KLQkAor0KXQmNCi0Jsg0KHQotCV0JLQkNCdCivQpdCb0JDQgtCY0Jog0JfQktCe0J3QmtCeCivQpdCb0JDQlNCd0Jgg0JjQktCQ0J0KK9Cl0JvQkNCU0J3QmCDQodCb0JDQktCa0J4KK9Cl0JvQkNCf0JXQpiDQodCi0IjQldCf0JDQnQor0KXQm9CQ0JLQodCQINCh0JvQkNCS0JjQptCQCivQpdCb0JXQkdCV0KYg0J3QntCg0JHQldCg0KIKK9Cl0JvQntCW0JDQnSDQiNCe0JLQkNCdCivQpdCc0JjQiSDQmNCb0JjQiNCQCivQpdCd0JDQotCa0J4g0JzQmNCo0JrQngor0KXQntCn0JrQniDQkNCI0JXQogor0KXQntCo0JXQmiDQp9CQ0JHQkAor0KXQntCo0JXQmiDQpNCg0JDQitCQCivQpdCe0JHQoNCQ0KIg0JzQkNCg0KLQkAor0KXQntCP0JAg0KDQkNCc0JDQlNCQ0J0KK9Cl0J7Qj9CY0Isg0KXQkNCb0JjQlAor0KXQntCP0JjQiyDQntCc0JXQoAor0KXQntCP0JjQiyDQodCi0JDQl9CQCivQpdCe0JTQkCDQnNCV0IjQoNCV0JwKK9Cl0J7QlNCQ0Jog0JzQmNCb0JUKK9Cl0J7QlNCQ0Jog0KHQmNCb0JLQldCh0KLQkNCgCivQpdCe0JTQkNCaINCh0J7QpNCY0IjQkAor0KXQntCU0JDQmiDQktCV0KDQkAor0KXQntCU0JDQmiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cl0J7QlNCQ0KAg0IjQntCh0JjQnwor0KXQntCU0Jgg0JXQoNCd0JUKK9Cl0J7QlNCYINCV0KDQndCVCivQpdCe0JTQmCDQpNCV0KDQldCd0KYKK9Cl0J7QlNCYINCS0JjQm9Cc0JAKK9Cl0J7QlNCY0Jog0JHQkNCg0JHQkNCg0JAKK9Cl0J7QlNCY0J3QmtCQINCc0JjQpdCQ0JjQm9CeCivQpdCe0JTQndCY0Jog0JDQm9Ce0IjQlwor0KXQntCU0J7QkdCQINCU0JDQndCY0IjQldCb0JAKK9Cl0J7QlNCe0JvQmNCnINCI0JDQndCa0J4KK9Cl0J7QlNCe0JvQmNCLINCI0JDQoNCe0KHQm9CQ0JIKK9Cl0J7QpNCc0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQntCk0JzQkNCdINCQ0KDQotCj0KAKK9Cl0J7QpNCc0JDQnSDQkdCg0KPQndCeCivQpdCe0KTQnNCQ0J0g0KTQoNCQ0IrQkAor0KXQntCk0JzQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9Cl0J7QpNCc0JDQnSDQnNCQ0KDQmNCI0JAKK9Cl0J7QpNCc0JDQnSDQktCV0KHQndCQCivQpdCe0KXQitCV0KYg0JTQkNCg0JrQngor0KXQntCl0IrQldCmINCf0JXQotCQ0KAKK9Cl0J7QpdCK0JXQpiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0JvQptCV0KAg0JvQkNCU0JjQodCb0JDQkgor0KXQntCb0JXQoNCR0JDQpSDQmtCQ0KLQmNCm0JAKK9Cl0J7Qm9CYINCQ0J3QlNCg0JjQiNCQINCc0KAg0J/QpQor0KXQntCb0Jgg0JrQkNCi0JDQoNCY0J3QkAor0KXQntCb0JjQp9CV0Jog0JvQkNCh0JvQngor0KXQntCb0JjQp9CV0Jog0JzQkNCg0JPQmNCiCivQpdCe0JvQmNCn0JXQmiDQodCi0JXQktCQ0J0KK9Cl0J7Qm9CY0JPQkCDQmtCQ0KDQm9CeCivQpdCe0JvQmNCT0JAg0KHQndCV0JbQkNCd0JAKK9Cl0J7Qm9CY0JPQkCDQodCi0JXQktCQ0J0KK9Cl0J7Qm9CY0Jog0IjQkNCd0JrQngor0KXQntCb0JjQmiDQiNCe0JDQmtCY0JwKK9Cl0J7Qm9CeINCb0JXQntCd0KLQmNCd0JAKK9Cl0J7Qm9CeINCS0JjQm9Cc0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Cl0J7Qm9Ce0JQg0KHQotCV0JLQkNCdCivQpdCe0JvQntCU0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7Qm9Ce0KIg0KDQo9CW0JAKK9Cl0J7Qm9Ce0JLQmtCQINCQ0J3QmtCQCivQpdCe0JvQntCS0JrQkCDQkdCg0JDQndCa0JAKK9Cl0J7Qm9Ce0JLQmtCQINCd0JDQotCQ0JvQmNCI0JAKK9Cl0J7Qm9Cf0JXQoNCiINCV0KDQndCV0KHQogor0KXQntCb0J/QldCg0KIg0JvQo9CI0J4KK9Cl0J7QnNCQINCQ0J3QkAor0KXQntCc0JAg0JHQntCh0JjQidCa0JAKK9Cl0J7QnNCQINCV0KPQk9CV0J0KK9Cl0J7QnNCQINCI0JDQndCa0J4KK9Cl0J7QnNCQINCI0J7QktCT0JXQnQor0KXQntCc0JAg0JzQmNCg0J7QodCb0JDQkgor0KXQntCc0JAg0J3QmNCa0J7Qm9CQCivQpdCe0JzQkCDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0KXQntCc0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCc0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCc0JAg0JLQo9Ca0JjQptCQCivQpdCe0JzQntCJ0JAg0IjQntCW0JXQpAor0KXQntCgINCR0J7QltCY0KbQkAor0KXQntCgINCY0JvQmNCI0JAKK9Cl0J7QoCDQn9CQ0JLQm9CVCivQpdCe0KDQkNCaINCc0JjQpdCQ0IjQm9CeCivQpdCe0KDQkNCaINCd0JDQndCU0J7QoAor0KXQntCg0JPQkNChINCY0KjQotCS0JDQnQor0KXQntCg0JPQkNChINCc0JDQotCY0JvQlNCQCivQpdCe0KDQk9Ce0KjQmCDQgtCj0JvQkAor0KXQntCg0JPQntCo0Jgg0JrQkNCi0JDQoNCY0J3QkAor0KXQntCg0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQntCg0JjQiyDQmtCe0KHQmNCcCivQpdCe0KDQnSDQktCQ0JvQldCd0KLQmNCdCivQpdCe0KDQitCQ0Jog0JbQmNCS0JAKK9Cl0J7QoNCK0JDQmiDQgtCj0KDQngor0KXQntCg0IrQkNCaINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQntCg0IrQkNCaINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQntCg0IrQkNCaINCY0JLQkNCdCivQpdCe0KDQitCQ0Jog0IjQkNCd0J7QqAor0KXQntCg0IrQkNCaINCI0JDQnQor0KXQntCg0IrQkNCaINCc0JDQk9CU0JDQm9CV0J3QkAor0KXQntCg0IrQkNCaINCc0JjQqNCQCivQpdCe0KDQitCQ0Jog0JzQmNCg0JrQngor0KXQntCg0IrQkNCaINCe0JvQk9CQCivQpdCe0KDQitCQ0Jog0J/QldCi0JDQoAor0KXQntCg0IrQkNCaLdCf0KPQqNCa0JDQqNCe0JLQkCDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCK0JDQmiDQodCe0KTQoNCe0J3QkAor0KXQntCg0IrQkNCaINCh0KLQldCS0JDQnQor0KXQntCg0IrQkNCaINCS0JvQkNCU0JAKK9Cl0J7QoNCK0JDQmiDQktCb0JDQlNCQCivQpdCe0KDQitCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCg0IrQmNCaINCo0JDQndCU0J7QoAor0KXQntCg0IrQmNCaINCC0JXQoNCCCivQpdCe0KDQitCY0Jog0ILQldCg0IIKK9Cl0J7QoNCK0JjQmiDQl9Ce0JvQotCQ0J0KK9Cl0J7QoNCd0J7QmiDQl9Ce0JvQotCQ0J0KK9Cl0J7QoNCd0KPQndCTLdCo0J7QnNCQ0J0g0KjQotCV0KTQkNCd0JjQiNCQCivQpdCe0KDQntCo0JjQm9Ce0JIg0KHQntCk0JjQiNCQCivQpdCe0KDQntCo0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQntCg0J7QqNCa0J4g0KHQotCV0KTQkNCdINCU0KAKK9Cl0J7QoNCe0JLQmNCmINCU0KDQkNCT0JjQitCQCivQpdCe0KDQntCS0JjQpiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0KDQotCYINCU0KDQkNCT0JDQndCQCivQpdCe0KDQotCYINCT0JXQl9CQCivQpdCe0KDQotCYINCI0J7QodCY0J8KK9Cl0J7QoNCi0Jgg0JLQm9CQ0JTQmNCh0JvQkNCSCivQpdCe0KDQktCQ0KbQmtCYINCc0JDQoNCa0J4KK9Cl0J7QoNCS0JDQptCa0Jgg0KHQndCV0JbQkNCd0JAKK9Cl0J7QoNCS0JDQoiDQqNCQ0J3QlNCe0KAKK9Cl0J7QoNCS0JDQoiDQqNCQ0J3QlNCe0KAKK9Cl0J7QoNCS0JDQoiDQltCe0JvQogor0KXQntCg0JLQkNCiINCC0KPQm9CQCivQpdCe0KDQktCQ0KIg0ILQo9Cg0JAKK9Cl0J7QoNCS0JDQoiDQkNCT0JgKK9Cl0J7QoNCS0JDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQntCg0JLQkNCiINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCe0KDQktCQ0KIg0JDQndCU0KDQkNCoCivQpdCe0KDQktCQ0KIg0JDQndCU0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQkNCd0JrQkAor0KXQntCg0JLQkNCiINCQ0J3QotCQ0JsKK9Cl0J7QoNCS0JDQoiDQkNCg0J/QkNCUCivQpdCe0KDQktCQ0KIg0JHQldCb0JAKK9Cl0J7QoNCS0JDQoiDQkdCY0KHQldCg0JrQkAor0KXQntCg0JLQkNCiINCU0JXQltCVCivQpdCe0KDQktCQ0KIg0JTQmNCc0JjQotCg0JjQiNCVCivQpdCe0KDQktCQ0KIg0JXQlNCY0KIKK9Cl0J7QoNCS0JDQoiDQldCb0JjQl9CQ0JHQldCi0JAKK9Cl0J7QoNCS0JDQoiDQldCg0JbQldCR0JXQogor0KXQntCg0JLQkNCiINCV0KDQmNCa0JAKK9Cl0J7QoNCS0JDQoiDQldCh0KLQldCgCivQpdCe0KDQktCQ0KIg0KTQldCg0JXQndCmCivQpdCe0KDQktCQ0KIg0KTQldCg0JXQndCmCivQpdCe0KDQktCQ0KIg0KTQldCg0JXQndCmCivQpdCe0KDQktCQ0KIg0KTQldCg0JXQndCmCivQpdCe0KDQktCQ0KIg0KTQoNCQ0IrQkAor0KXQntCg0JLQkNCiINCk0KDQkNCK0JAKK9Cl0J7QoNCS0JDQoiDQpNCg0JDQitCeCivQpdCe0KDQktCQ0KIg0JPQkNCR0J7QoAor0KXQntCg0JLQkNCiINCT0JjQl9CV0JvQkAor0KXQntCg0JLQkNCiINCT0KDQntCX0JTQkNCd0JAKK9Cl0J7QoNCS0JDQoiDQmNCo0KLQktCQ0J0KK9Cl0J7QoNCS0JDQoiDQmNCT0J7QoAor0KXQntCg0JLQkNCiINCY0JPQntCgCivQpdCe0KDQktCQ0KIg0JjQm9Ce0J3QmtCQCivQpdCe0KDQktCQ0KIg0JjQnNCg0JUKK9Cl0J7QoNCS0JDQoiDQmNCc0KDQlQor0KXQntCg0JLQkNCiINCY0JzQoNCVCivQpdCe0KDQktCQ0KIg0JjQoNCV0J3QkAor0KXQntCg0JLQkNCiINCY0KDQldCd0JrQkAor0KXQntCg0JLQkNCiINCY0JLQkNCd0JrQkAor0KXQntCg0JLQkNCiINCY0JLQkNCdCivQpdCe0KDQktCQ0KIg0IjQkNCd0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Cl0J7QoNCS0JDQoiDQiNCQ0J3QntCoCivQpdCe0KDQktCQ0KIg0IjQldCb0JXQndCQCivQpdCe0KDQktCQ0KIg0IjQntCW0JXQpAor0KXQntCg0JLQkNCiINCI0J7QltCV0KQKK9Cl0J7QoNCS0JDQoiDQiNCe0JbQldCkCivQpdCe0KDQktCQ0KIg0IjQntCh0JjQnwor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0KHQmNCfCivQpdCe0KDQktCQ0KIg0IjQntCh0JjQnwor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0JLQkNCdCivQpdCe0KDQktCQ0KIg0JrQkNCb0JzQkNCdCivQpdCe0KDQktCQ0KIg0JrQkNCg0JvQngor0KXQntCg0JLQkNCiINCa0JDQoNCb0J4KK9Cl0J7QoNCS0JDQoiDQmtCQ0KDQm9CeCivQpdCe0KDQktCQ0KIg0JrQkNCg0J7QiQor0KXQntCg0JLQkNCiINCa0JDQotCQ0JvQmNCdCivQpdCe0KDQktCQ0KIg0JrQkNCi0JDQoNCY0J3QkAor0KXQntCg0JLQkNCiINCa0JDQotCY0KbQkAor0KXQntCg0JLQkNCiINCa0JDQotCY0KbQkAor0KXQntCg0JLQkNCiINCb0JDQiNCe0KgKK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9Cj0JTQktCY0JMKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQnNCQ0KLQngor0KXQntCg0JLQkNCiINCc0JjQpdCQ0IkKK9Cl0J7QoNCS0JDQoi3QnNCY0JvQmNCi0JjQp9CYINCa0JDQoNCe0Ikg0JTQoAor0KXQntCg0JLQkNCiINCc0JjQm9Ca0JAKK9Cl0J7QoNCS0JDQoiDQnNCY0JvQmtCQCivQpdCe0KDQktCQ0KIg0JzQmNCb0J7QodCb0JDQkgor0KXQntCg0JLQkNCiINCc0JjQoNCa0J4KK9Cl0J7QoNCS0JDQoiDQn9CQ0IjQkAor0KXQntCg0JLQkNCiINCf0JDQktCb0JUKK9Cl0J7QoNCS0JDQoiDQn9CV0KLQkNCgCivQpdCe0KDQktCQ0KIg0KDQkNCU0JzQmNCb0JAKK9Cl0J7QoNCS0JDQoiDQoNCe0JbQkAor0KXQntCg0JLQkNCiINCg0J7Ql9CQ0JvQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQoNCj0JbQkAor0KXQntCg0JLQkNCiINCg0KPQlNCe0JvQpAor0KXQntCg0JLQkNCiINCh0JDQnNCj0JXQmwor0KXQntCg0JLQkNCiINCh0JjQm9CS0JXQodCi0JXQoAor0KXQntCg0JLQkNCiINCh0JvQkNCS0JrQngor0KXQntCg0JLQkNCiINCh0JzQmNCJ0JAKK9Cl0J7QoNCS0JDQoiDQodCi0JXQktCQ0J0KK9Cl0J7QoNCS0JDQoiDQotCQ0JzQkNCoCivQpdCe0KDQktCQ0KIg0KLQldCg0JXQl9CQCivQpdCe0KDQktCQ0KIg0KLQldCg0JXQl9CQCivQpdCe0KDQktCQ0KIg0KLQmNCR0J7QoAor0KXQntCg0JLQkNCiINCi0JjQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQotCY0JHQntCgCivQpdCe0KDQktCQ0KIg0KLQmNCR0J7QoAor0KXQntCg0JLQkNCiINCS0JDQm9CV0KDQmNCI0JAKK9Cl0J7QoNCS0JDQoiDQktCV0KDQmNCm0JAKK9Cl0J7QoNCS0JDQoiDQktCV0KDQntCd0JjQmtCQCivQpdCe0KDQktCQ0KIg0JLQldCg0J7QndCY0JrQkAor0KXQntCg0JLQkNCiINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QoNCS0JDQoiDQl9Ce0JvQotCQ0J0KK9Cl0J7QoNCS0JDQoiDQl9Ce0JvQotCQ0J0KK9Cl0J7QoNCS0JDQotCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cl0J7QoNCS0JDQotCY0Isg0J7Qm9CT0JAKK9Cl0J7QoNCS0JDQotCY0Isg0KHQm9CQ0JLQmtCeCivQpdCe0KDQktCQ0KLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cl0J7QoNCS0JDQotCe0JIg0KDQkNCh0KLQmtCeCivQpdCe0KDQktCQ0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQpdCe0KDQktCQ0KLQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cl0J7QoNCS0JDQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQpdCe0KDQktCQ0KLQntCS0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9Cl0J7QoNCS0JDQotCh0JrQmCDQlNCj0KjQkNCdCivQpdCe0KDQktCQ0KLQodCa0Jgg0InQo9CR0JjQptCQCivQpdCe0KDQktCQ0KLQodCa0Jgg0InQo9CR0JjQptCQCivQpdCe0KDQktCQ0KLQodCa0Jgg0JzQmNCb0JXQndCa0J4KK9Cl0J7QoNCS0JDQotCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQpdCe0KDQktCQ0KLQodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Cl0J7QoNCS0JDQotCh0JrQmCDQoNCj0JbQmNCm0JAKK9Cl0J7QodCi0JjQiyDQkdCY0KHQldCg0JrQkAor0KXQntCh0KLQndCY0Jog0JrQkNCi0JjQptCQCivQpdCe0KHQotCe0J3QodCa0Jgg0KHQotCQ0J3QkAor0KXQntCiINCQ0JTQldCcCivQpdCe0KPQpCDQldCb0JLQmNCg0JAKK9Cl0J7QktCQ0J0g0JzQkNCg0KLQmNCdCivQpdCe0JLQkNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0J7QktCQ0J3QldCmINCS0JjQmtCi0J7QoNCY0IjQkAor0KXQoNCL0JDQnSDQiNCe0JLQkNCdCivQpdCg0IvQkNCdINCI0J7QktCQ0J0KK9Cl0KDQkNCR0JDQoCDQmNCS0J4KK9Cl0KDQkNCR0J7QktCh0JrQmCDQkNCd0KLQntCdCivQpdCg0JDQkdCe0JLQodCa0Jgg0JDQndCi0J7QnQor0KXQoNCQ0JHQntCS0KHQmtCYINCR0J7QiNCQ0J3QkCDQlNCgCivQpdCg0JDQkdCe0JLQodCa0Jgg0JXQlNCT0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cl0KDQkNCR0J7QktCh0JrQmCDQmNCc0KDQlQor0KXQoNCQ0JHQntCS0KHQmtCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cl0KDQkNCR0KDQmNCLINCV0KPQk9CV0J0KK9Cl0KDQkNCU0JXQp9Cd0Jgg0JHQldCb0JAKK9Cl0KDQkNCU0JXQp9Cd0Jgg0KTQoNCQ0IrQkAor0KXQoNCQ0JTQldCn0J3QmCDQiNCe0KHQmNCfCivQpdCg0JDQndCY0KfQkNCaINCc0JjQoNCa0J4KK9Cl0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCf0JDQktCb0JUKK9Cl0KDQkNCf0J7QktCY0Isg0J7QodCc0JDQnQor0KXQoNCU0JvQmNCn0JrQkCDQlNCV0KHQkNCd0JrQkAor0KXQoNCV0KjQp9CQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KXQoNCV0J3QkNCgINCb0JDQo9Cg0JAKK9Cl0KDQk9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cl0KDQk9CY0Isg0JzQmNCb0JDQnQor0KXQoNCT0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cl0KDQmNCn0JDQndCV0Jog0JzQmNCg0J7QodCb0JDQkgor0KXQoNCY0KfQkNCd0JXQmiDQndCV0JTQldCJ0JrQkAor0KXQoNCY0JHQidCQ0J0g0JDQndCi0J7QnQor0KXQoNCY0JHQntCS0KjQldCaINCk0KDQkNCd0KYKK9Cl0KDQmNCm0JrQkNCd0JjQiyDQm9Cj0JrQkAor0KXQoNCY0JXQqNCY0Jog0JzQkNCg0JjQiNCQCivQpdCg0JjQiNCV0KjQmNCaINCI0JDQnQor0KXQoNCY0IjQldCo0JjQmiDQiNCj0KDQkNCICivQpdCg0JjQodCi0JjQiyDQkdCb0JDQk9Ce0IjQlQor0KXQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQpdCg0JjQodCi0JjQiyDQm9CV0J/QntCh0JDQktCQCivQpdCg0JjQodCi0JjQiyDQidCj0JHQmNCm0JAKK9Cl0KDQmNCh0KLQmNCU0JjQoSDQkNCf0J7QodCi0J7Qmwor0KXQoNCY0KHQotCY0JTQmNChINCd0JjQmtCe0JvQkAor0KXQoNCY0KHQotCY0JTQmNChINCd0JjQmtCe0JvQkAor0KXQoNCY0KHQotCe0JIg0JHQoNCQ0J3QmtCeCivQpdCg0JjQodCi0J7QkiDQnNCY0JvQntCh0JjQiNCQCivQpdCg0JjQodCi0J7QkiDQktCV0KHQndCQCivQpdCg0JjQodCi0J7QkiDQl9CQ0JPQntCg0JrQkAor0KXQoNCY0KHQotCe0JLQkCDQldCc0JjQm9CY0IjQkAor0KXQoNCY0KHQotCe0JLQodCa0Jgg0KLQntCc0JAKK9Cl0KDQmNCh0KLQoyDQotCY0KXQntCc0JjQoAor0KXQoNCa0JDQm9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Cl0KDQndCn0JDQoCDQodCQ0JzQo9CV0JsKK9Cl0KDQndCn0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KXQoNCd0KfQmNCLINCc0JjQpdCQ0JQKK9Cl0KDQndCn0JjQiyDQktCQ0KXQmNCUCivQpdCg0J3Qp9CY0JDQoCDQkNCd0JAKK9Cl0KDQndCn0JjQkNCgINCI0JDQndCa0J4KK9Cl0KDQndCn0JjQkNCg0J7QktCQINCi0JXQoNCV0JfQmNCQCivQpdCg0J3Qp9CI0JDQoCDQkNCd0JTQoNCV0IgKK9Cl0KDQndCn0IjQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cl0KDQitCQ0KfQmtCYINCW0JDQoNCa0J4KK9Cl0KDQitCQ0KfQmtCYINCC0J7QoNCC0JUKK9Cl0KDQitCQ0KfQmtCYINCI0JXQm9CY0KbQkAor0KXQoNCK0JDQp9Ca0Jgg0IjQntCS0JDQnQor0KXQoNCK0JDQp9Ca0Jgg0JvQkNCX0JjQptCQCivQpdCg0IrQkNCn0JrQmCDQnNCY0JvQmtCQCivQpdCg0IrQkNCn0JrQmCDQnNCb0JDQlNCV0J0KK9Cl0KDQitCQ0Jog0JTQkNCd0JUKK9Cl0KDQitCQ0Jog0JTQoNCQ0JPQkNCdCivQpdCg0IrQkNCaINCU0KPQqNCQ0J0KK9Cl0KDQitCQ0Jog0InQmNCJ0JDQndCQCivQpdCg0IrQkNCaINCc0JDQoNCY0IjQkAor0KXQoNCK0JDQmiDQoNCQ0IjQmtCeCivQpdCg0IrQkNCaINCS0JXQidCa0J4KK9Cl0KDQitCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0KDQitCQ0JrQntCS0JjQiyDQmNCS0JDQndCQCivQpdCg0IrQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KXQoNCK0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cl0KDQitCV0Jcg0J7QkdCg0JDQlAor0KXQoNCe0JzQmNCoINCQ0JzQkNCb0JjQiNCQCivQpdCg0J7QnNCY0Kgg0JDQndCQCivQpdCg0J7QnNCY0Kgg0JHQkNCg0JHQkNCg0JAKK9Cl0KDQntCc0JjQqCDQkdCe0KDQmNCh0JvQkNCSCivQpdCg0J7QnNCY0Kgg0IjQntCQ0JrQmNCcCivQpdCg0J7QnNCY0Kgg0IjQntCQ0JrQmNCcCivQpdCg0J7QnNCY0Kgg0JrQkNCi0JjQptCQCivQpdCg0J7QnNCY0Kgg0JzQkNCg0JjQiNCQCivQpdCg0J7QnNCY0Kgg0JzQldCb0JDQndCY0IjQkAor0KXQoNCe0JzQmNCoINCc0JjQpdCQ0IjQm9CeINCU0JjQn9CbINCY0J3Qkwor0KXQoNCe0JzQmNCoINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0KDQntCc0JjQqCDQnNCY0KDQntCh0JvQkNCSCivQpdCg0J7QnNCY0Kgg0J3QkNCU0JAKK9Cl0KDQntCc0JjQqCDQndCY0JrQntCb0JAKK9Cl0KDQntCc0JjQqCDQn9CV0KLQkNCgCivQpdCg0J7QnNCY0Kgg0KHQmNCc0JAKK9Cl0KDQntCc0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQpdCg0J7QnNCY0Kgg0JfQlNCV0J3QmtCQCivQpdCg0J7QitCV0KYg0JLQmNCL0JDQl9Ce0KHQm9CQ0JIKK9Cl0KDQodCi0J4g0KHQm9CQ0JLQmtCeCivQpdCg0KPQkdCV0IrQkCDQgtCj0KDQkAor0KXQoNCj0JHQldCK0JAg0KTQldCR0KDQntCd0JAKK9Cl0KDQo9CR0JXQitCQINCI0JDQndCa0J4KK9Cl0KDQo9CR0JXQitCQINCI0J7QkNCa0JjQnAor0KXQoNCj0JHQldCK0JAg0IjQntCQ0JrQmNCcCivQpdCg0KPQkdCV0IrQkCDQiNCe0JDQmtCY0JwKK9Cl0KDQo9CR0JXQitCQINCa0JDQoNCb0J4KK9Cl0KDQo9CR0JXQitCQINCc0JjQpdCQ0IjQm9CeCivQpdCg0KPQkdCV0IrQkCDQnNCY0KDQntCh0JvQkNCSCivQpdCg0KPQkdCV0IrQkCDQn9CV0KLQkNCgCivQpdCg0KPQkdCV0IrQkCDQl9CS0J7QndCY0JzQmNCgCivQpdCg0KPQkdCY0Jog0JDQndCU0KDQldCICivQpdCg0KPQkdCY0Jog0IjQntCS0JDQnQor0KXQoNCj0JHQmNCaINCa0JDQoNCb0J4KK9Cl0KDQo9CR0JjQmiDQnNCY0KDQmtCeCivQpdCg0KPQkdCY0Jog0J7QodCa0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Cl0KDQo9CR0JjQmiDQoNCe0JfQkNCb0JjQiNCQCivQpdCg0KPQodCi0JDQndCe0JLQmNCLINCi0KPQoNCh0KPQnQor0KXQoNCj0KHQotCY0Isg0JXQnNCY0J0KK9Cl0KDQo9Ch0KLQmNCLINCV0J3QktCV0KAKK9Cl0KDQo9Ch0KLQmNCLINCX0JjQiNCQ0KUKK9Cl0KDQo9Ch0KLQmNCLINCX0JjQm9Cl0JAKK9Cl0KPQp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9Cl0KPQp9Ca0JAg0IjQntCS0JDQnQor0KXQo9CW0JLQkNCgINCo0JDQndCU0J7QoAor0KXQo9CC0JXQpiDQiNCe0JLQkNCd0JrQkAor0KXQo9CC0JXQpiDQmtCQ0KDQm9CeCivQpdCj0JHQkNCYINCT0JDQkdCe0KAKK9Cl0KPQkdCQ0J3QmNCLINCc0JjQm9CV0J3QkAor0KXQo9CR0JXQoCDQkdCe0IjQkNCd0JAKK9Cl0KPQkdCV0KAg0JTQoNCQ0JPQkNCdCivQpdCj0JHQldCgINCV0JvQl9CQCivQpdCj0JHQldCgINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQpdCj0JHQldCgINCc0JDQk9CU0JDQm9CV0J3QkAor0KXQo9CR0JXQoCDQnNCQ0KDQmNCI0JAKK9Cl0KPQkdCV0KAg0JzQkNCi0JjQm9CU0JAKK9Cl0KPQkdCV0KAg0J/QldCi0JDQoAor0KXQo9CR0JXQoCDQotCY0JHQntCgCivQpdCj0JHQldCg0KIg0JXQktCQCivQpdCj0JHQldCg0KIg0KDQkNCU0JzQmNCb0JAKK9Cl0KPQkdCV0KDQoiDQktCV0KDQkAor0KXQo9CR0JjQiNCQ0KAg0JXQndCV0KEKK9Cl0KPQkdCY0IjQkNCgINCd0JDQlNCQCivQpdCj0JTQkNCaINCY0KDQmNCd0JXQiAor0KXQo9CU0JDQmiDQndCQ0KLQkNCb0JjQiNCQCivQpdCj0JTQntCc0JXQmyDQmNCS0JDQnQor0KXQo9CI0JTQo9CgINCR0KDQkNCd0JrQkAor0KXQo9Cc0KHQmtCYINCg0J7QodCQCivQpdCj0IrQkNCU0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0KPQitCQ0JTQmCDQmNCb0J7QndCa0JAKK9Cl0KPQitCQ0JTQmCDQntCb0JPQkAor0KXQo9Cf0JXQoNCiINCb0JDQiNCe0KgKK9Cl0KPQn9CY0Jog0JzQmNCg0IjQkNCd0JAKK9Cl0KPQoSDQmNCc0KDQlQor0KXQo9Ch0JDQkyDQkNCg0J/QkNCUCivQpdCj0KHQkNCT0JjQiyDQldCh0JDQlAor0KXQo9Ch0JDQk9CY0Isg0KHQo9Cb0JXQiNCc0JDQnQor0KXQo9Ch0JDQk9CY0Isg0JfQmNCd0JXQotCQCivQpdCj0KHQkNCaINCg0JDQlNCe0JLQkNCdCivQpdCj0KHQkNCgINCV0JLQkAor0KXQo9Ch0JDQoCDQmNCo0KLQktCQ0J0KK9Cl0KPQodCQ0KAg0IjQkNCd0JrQngor0KXQo9Ch0JDQoCDQm9CQ0KHQm9CeCivQpdCj0KHQkNCgINCi0J7QlNCe0KAKK9Cl0KPQodCV0JjQnSDQnNCV0KXQnNCV0JQKK9Cl0KPQodCV0JjQndCR0JXQk9Ce0JLQmNCLINCd0JDQnNCY0JoKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCQ0KLQmNCb0JAKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCQ0KLQmNCb0JAKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCV0KHQnNCV0KDQkNCb0JTQkAor0KXQo9Ch0JXQmNCd0J7QktCY0Isg0JjQodCc0JXQogor0KXQo9Ch0JXQndCR0JXQk9Ce0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Cl0KPQodCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KXQo9Ch0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQpdCj0KHQmtCQINCY0JvQntCd0JAKK9Cl0KPQodCa0JAt0KDQntCa0JAg0JzQkNCT0JTQkCDQlNCgCivQpdCj0KHQmtCeINCc0JjQiNCeCivQpdCj0KHQntCS0JjQiyDQpdCj0KHQngor0KXQo9Ci0JDQm9CQ0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cl0KPQotCQ0JvQkNCg0J7QktCY0Isg0JrQntCh0KLQkAor0KXQo9CX0IjQkNCdINCi0JjQpdCe0JzQmNCgCivQpdCS0JDQm9CQINCc0JjQoNCQCivQpdCS0JXQotCa0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CY0KfQkNCT0JjQiyDQndCY0JrQntCb0JAKK9CY0KfQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JjQp9CY0J0g0JbQmNCS0JrQngor0JjQp9CY0J0g0JzQmNCb0JXQndCa0J4KK9CY0KfQmNCdINCg0JDQlNCY0KHQm9CQ0JIKK9CY0KfQmNCdINCh0KDQldCi0JXQnQor0JjQqNCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQmNCo0J/QkNCdINCo0JDQndCU0J7QoAor0JjQqNCf0JDQnSDQnNCQ0KDQk9CY0KLQkAor0JjQqNCf0JDQndCe0JLQmNCLINCI0J7QltCV0KQKK9CY0KjQotCe0Jog0IjQntCh0JjQnwor0JjQqNCi0J7QmiDQiNCe0KHQmNCfCivQmNCo0KLQntCaINCc0JjQoNCI0JDQndCQCivQmNCo0KLQntCaINCh0KLQldCS0JDQnQor0JjQqNCi0J7QmtCe0JLQmNCLINCh0KLQldCS0J4KK9CY0KjQotCS0JDQndCe0JIg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CY0IvQmNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JjQi9Cj0KDQo9CfINCW0JjQktCe0IjQmNCdCivQmNCL0KPQoNCj0J8g0JzQmNCb0J7QoNCQ0JQKK9CY0IvQo9Cg0KPQnyDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JjQltCQ0Jog0KTQldCg0JXQndCmCivQmNCW0JDQmiDQmtCQ0KDQm9CeCivQmNCW0JDQmiDQoNCe0JfQkNCb0JjQiNCQCivQmNCC0JjQlNCe0JIg0J7Qm9CT0JAKK9CY0ILQmNCU0J7QkiDQktCV0JvQmNCd0JrQkAor0JjQgtCe0KjQmtCYINCl0J7QoNCh0KIKK9CY0ILQntCo0JrQmCDQndCY0JrQntCb0JAKK9CY0ILQo9Co0JrQmCDQodCi0JXQktCQ0J0KK9CY0JHQoNCQ0KXQmNCcINCU0JXQnNCY0KAKK9CY0JHQoNCQ0KXQmNCc0JDQk9CY0Isg0J3QkNCU0JAKK9CY0JHQoNCQ0KXQmNCc0Jgg0JjQkdCg0JDQpdCY0JwKK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0JTQldCg0JLQmNCo0JAKK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0JXQnNCY0JsKK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0KXQkNCc0JTQmNCI0JAKK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JjQkdCg0JDQpdCY0JzQntCS0JjQiyDQodCb0JDQktCa0J4KK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0JLQldCg0JAKK9CY0JHQoNCQ0KXQmNCc0J/QkNCo0JjQiyDQkNCd0JAKK9CY0JHQoNCQ0IjQotCV0KAg0JjQktCQ0J0KK9CY0JHQoNCQ0IjQotCV0KAg0InQo9CR0J7QnNCY0KAKK9CY0JHQoNCQ0IjQotCV0KAg0JzQm9CQ0JTQldCdCivQmNCR0KDQmNCo0JXQktCY0Isg0ILQo9Cb0JDQk9CQCivQmNCR0KDQmNCo0JXQktCY0Isg0JzQmNCg0KHQkNCUCivQmNCR0KDQmNCo0JXQktCY0Isg0KHQo9CQ0JQKK9CY0JHQoNCe0KfQmNCLINCU0JjQnNCY0KLQoNCY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CY0JHQoNCe0KfQmNCLINCc0JDQoNCY0IjQkAor0JjQkdCg0J7Qp9CY0Isg0KDQkNCi0J7QnNCY0KAKK9CY0JHQoNCe0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JHQoNCe0KfQmNCLINCS0JXQoNCQCivQmNCR0KDQntCb0Jgg0JHQkNCdCivQmNCm0J7QodCa0Jgg0JvQkNCX0JDQoAor0JjQlNCV0Jgg0J3QkNCd0JTQntCgCivQmNCU0JXQiNCYINCI0J7QktCQ0J0KK9CY0JTQldCI0Jgg0JLQkNCb0JXQoNCY0IjQkAor0JjQlNCg0JjQl9Ce0JLQmNCLINCQ0KXQnNCV0KIg0JTQoAor0JjQlNCS0J7QoNCV0JDQnSDQotCe0JTQntCgCivQmNCU0JLQntCg0JXQkNCdINCS0JjQmtCV0J3QotCY0IjQlQor0JjQpNCI0KMg0JDQndCT0JXQm9CY0JrQkAor0JjQpNCI0KMg0JPQkNCR0J7QoAor0JjQpNCa0J4g0JjQm9CU0JjQmtCeINCU0JjQn9CbINCY0J3Qkwor0JjQk9CY0Isg0JbQmNCS0JDQlNCY0J0KK9CY0JPQmNCLINCC0KPQm9CS0JDQodCY0IjQkAor0JjQk9CY0Isg0JDQndCa0JAKK9CY0JPQmNCLINCU0KDQkNCT0JDQnQor0JjQk9CY0Isg0IjQntCS0JDQndCa0JAKK9CY0JPQmNCLINCc0JjQm9Ca0JAKK9CY0JPQmNCLINCc0JjQm9Ce0KDQkNCUCivQmNCT0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CY0JPQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JPQmNCLINCd0JjQmtCe0JvQkAor0JjQk9CY0Isg0J/QkNCS0JvQlQor0JjQk9CY0Isg0KDQkNCI0JrQngor0JjQk9CY0Isg0KHQkNCo0JAKK9CY0JPQmNCLINCh0KLQldCS0JDQnQor0JjQk9CY0Isg0KHQotCV0JLQkNCdCivQmNCT0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmNCT0JjQiyDQktCj0JrQkAor0JjQk9Cd0JDQpiDQn9CV0KDQkAor0JjQk9CK0JDQpiDQktCY0JTQkAor0JjQk9CK0JDQotCY0Isg0JDQndCa0JAKK9CY0JPQitCQ0KLQmNCLINCR0J7QoNCY0JLQntCICivQmNCT0IrQkNCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0JjQk9CK0JDQotCY0Isg0JPQntCI0JrQngor0JjQk9CK0JDQotCY0Isg0J3QldCS0JXQndCa0JAKK9CY0JPQitCQ0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCT0IrQkNCi0JjQiyDQktCY0JQKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCQ0KDQkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCc0JjQotCQCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCd0J7QktCQ0JoKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KDQkNCU0JDQqNCY0J0KK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JjQk9CK0JDQotCe0JIt0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAg0J/QoNCe0KQKK9CY0JPQitCQ0KLQntCS0JjQiyDQltCY0JLQmtCeCivQmNCT0IrQkNCi0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CY0JPQitCQ0KLQntCS0JjQiyDQkNCd0JPQldCb0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQkNCd0JrQkAor0JjQk9CK0JDQotCe0JLQmNCLINCU0JDQndCY0JvQngor0JjQk9CK0JDQotCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQmNCT0IrQkNCi0J7QktCY0Isg0JrQntCh0JDQoNCQCivQmNCT0IrQkNCi0J7QktCY0Isg0InQo9CR0JjQqNCQCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQkNCg0JjQptCQCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9CVCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQmNCb0JrQkAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoCDQn9Cg0JDQktCd0JjQmgor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9Ce0KgKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQodCQ0JLQkAor0JjQk9CK0JDQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JPQitCQ0KLQntCS0JjQiyDQktCV0KDQkAor0JjQk9CK0JDQotCe0JLQmNCLINCS0JXQoNCQCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQmNCU0JDQmgor0JjQk9CK0JDQotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CY0JPQitCQ0KLQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQo9Cn0JrQngor0JjQk9CK0JDQotCe0JLQodCa0Jgg0JXQpNCg0JXQnAor0JjQk9CK0JjQiyDQkdCg0JDQndCa0J4KK9CY0JPQitCY0Isg0IjQntCS0JDQnQor0JjQk9CK0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JPQitCY0Isg0JfQmNCX0JAKK9CY0JPQitCY0Isg0JfQntCg0JDQnQor0JjQk9CK0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmNCT0KDQkNCn0JrQmCDQgtCe0KDQgtCVCivQmNCT0KDQkNCn0JrQmCDQldCi0JXQm9CQCivQmNCT0KDQkNCn0JrQmCDQiNCj0JvQmNCdCivQmNCT0KDQkNCn0JrQmCDQmtCQ0KDQm9CeCivQmNCT0KDQkNCn0JrQmCDQm9CQ0KHQm9CeCivQmNCT0KDQmNCLINCd0JDQlNCQCivQmNCT0KDQmNCLINCh0KLQntCI0JDQndCa0JAKK9CY0JPQoNCj0KLQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQpdCQ0KEg0JjQm9Ce0J3QkAor0JjQiNCQ0KfQmNCLINCR0KDQkNCd0JrQngor0JjQiNCQ0KfQmNCLINCc0JDQmtCh0JjQnAor0JjQiNCV0JLQidCV0JIg0KTQldCe0JTQntCgCivQmNCa0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JrQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CY0JrQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQmNCa0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JjQmtCV0InQmNCLINCY0KDQpNCQ0J0KK9CY0JrQmNCLINCU0JXQiNCQ0J0KK9CY0JrQmNCLINCI0J7QktCQ0J0KK9CY0JrQmNCLINCc0JvQkNCU0JXQnQor0JjQmtCY0Isg0JzQm9CQ0JTQldCdCivQmNCa0JjQiyDQodCc0JjQidCQ0J3QkAor0JjQmtCe0JTQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JjQmtCe0J3QmNCLINCC0KPQoNCQCivQmNCa0J7QndCe0JIg0JTQldCI0JDQnQor0JjQmtCe0KLQmNCdINCI0JDQndCe0KgKK9CY0JrQntCi0JjQnSDQiNCe0JLQkNCd0JrQkAor0JjQmtCe0KLQmNCdINCc0JDQotCY0IjQkAor0JjQmtCe0KLQmNCdINCf0JDQmwor0JjQmtCe0KLQmNCdINCf0JXQotCQ0KAKK9CY0JrQntCS0JDQpiDQkdCe0KjQmtCeCivQmNCa0J7QktCQ0KYg0KHQotCV0JLQkNCdCivQmNCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JjQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CY0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JjQmtCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQmNCa0KDQkNCo0JXQkiDQiNCV0JvQmNCm0JAKK9CY0JrQoNCQ0KjQldCSINCI0J7QktCQ0J0KK9CY0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0Jsg0IjQldCb0JjQptCQCivQmNCb0KfQmNCaINCc0JDQoNCY0IjQkAor0JjQm9CV0Kgg0KTQoNCQ0J3QptCY0KjQmtCQCivQmNCb0JXQqCDQmNCc0KDQlQor0JjQm9CV0Kgg0JjQoNCV0J3QkAor0JjQm9CV0Kgg0JzQmNCl0JDQmNCb0J4KK9CY0JvQldCoINCc0JjQm9CQ0J0KK9CY0JvQldCoINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JvQmNCn0JjQiyDQkNCd0KLQo9CdCivQmNCb0JjQp9CY0Isg0JjQktCQ0J0KK9CY0JvQmNCn0JjQiyDQidCj0JHQmNCm0JAKK9CY0JvQmNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0JjQm9CY0KfQmNCLINCf0JXQotCQ0KAKK9CY0JvQmNCn0JjQiy3Qn9Ce0J/QmNCLINCe0InQkAor0JjQm9CY0Isg0KfQldCU0J7QnNCY0KAKK9CY0JvQmNCLINCn0JXQlNCeCivQmNCb0JjQiyDQqNCY0JzQo9CdCivQmNCb0JjQiyDQltCV0InQmtCeCivQmNCb0JjQiyDQltCY0JLQmtCeCivQmNCb0JjQiyDQltCY0JLQmtCeCivQmNCb0JjQiyDQltCY0JLQmtCeCivQmNCb0JjQiyDQltCY0JLQntCc0JjQoAor0JjQm9CY0Isg0JbQmNCS0J7QnNCY0KAKK9CY0JvQmNCLINCW0JjQktCe0JzQmNCgCivQmNCb0JjQiyDQltCY0JLQntCg0JDQlAor0JjQm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9CY0JvQmNCLINCC0J7QoNCC0JUKK9CY0JvQmNCLINCC0J7QoNCC0JUKK9CY0JvQmNCLINCC0J7QoNCC0JUKK9CY0JvQmNCLINCQ0JvQldCa0KHQkCDQlNCgCivQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0Isg0JDQndCY0KbQkAor0JjQm9CY0Isg0JDQndCa0JjQptCQCivQmNCb0JjQiyDQkNCg0KHQkAor0JjQm9CY0Isg0JDQoNCh0JAKK9CY0JvQmNCLINCR0JjQidCQ0J3QkAor0JjQm9CY0Isg0JHQm9CQ0JPQntCI0JUKK9CY0JvQmNCLINCR0J7QqNCa0J4KK9CY0JvQmNCLINCR0J7QqNCa0J4KK9CY0JvQmNCLINCR0J7QltCY0JTQkNCgCivQmNCb0JjQiyDQkdCe0JHQkNCdCivQmNCb0JjQiyDQkdCe0JPQlNCQ0J0KK9CY0JvQmNCLINCR0J7Qk9Ce0InQo9CRCivQmNCb0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JrQkAor0JjQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JjQm9CY0Isg0JHQntCg0JrQkAor0JjQm9CY0Isg0JHQntCh0JjQidCa0JAKK9CY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0KDQkNCd0JrQngor0JjQm9CY0Isg0JHQoNCQ0J3QmtCeCivQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9CY0JvQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQmNCb0JjQiyDQptCV0KbQmNCb0JjQiNCQCivQmNCb0JjQiyDQptCS0JXQotCQCivQmNCb0JjQiyDQptCS0JjQiNCQ0J0KK9CY0JvQmNCLINCU0JDQndCVCivQmNCb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JjQm9CY0Isg0JTQldCI0JDQnQor0JjQm9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQmNCb0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JvQmNCLINCU0KDQkNCT0JDQnQor0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQmNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JjQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JjQm9CY0Isg0JTQoNCQ0JPQngor0JjQm9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9CY0JvQmNCLINCU0KPQqNCQ0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J0KK9CY0JvQmNCLINCU0KPQqNCY0KbQkAor0JjQm9CY0Isg0JTQo9Co0JjQptCQCivQmNCb0JjQiyDQldCU0JjQogor0JjQm9CY0Isg0JXQoNCW0JjQmtCQCivQmNCb0JjQiyDQk9Ce0KDQkNCdCivQmNCb0JjQiyDQk9Ce0KDQkNCdCivQmNCb0JjQiy3Qk9Cg0JXQk9Ce0KAg0JzQmNCg0JAKK9CY0JvQmNCLINCY0JvQmNCI0JAKK9CY0JvQmNCLINCY0JvQmNCI0JAKK9CY0JvQmNCLINCY0JvQmNCI0JAKK9CY0JvQmNCLINCY0KDQldCd0JAKK9CY0JvQmNCLINCY0JLQkNCdINCU0KAKK9CY0JvQmNCLINCY0JLQkNCdCivQmNCb0JjQiyDQmNCS0JDQnQor0JjQm9CY0Isg0IjQldCb0JXQndCQCivQmNCb0JjQiyDQiNCV0JvQldCd0JAKK9CY0JvQmNCLINCI0JXQm9CV0J3QmtCeCivQmNCb0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JjQm9CY0Isg0IjQldCb0JrQkAor0JjQm9CY0Isg0IjQntCh0JjQpAor0JjQm9CY0Isg0IjQntCS0JDQndCa0JAKK9CY0JvQmNCLINCI0J7QktCQ0J0KK9CY0JvQmNCLINCI0J7QktCQ0J0KK9CY0JvQmNCLINCI0J7QktCQ0J0KK9CY0JvQmNCLINCI0J7QktCQ0J0KK9CY0JvQmNCLINCI0J7QktCQ0J0KK9CY0JvQmNCLINCI0J7QktCY0KbQkAor0JjQm9CY0Isg0JrQntCS0JjQidCa0JAKK9CY0JvQmNCLINCa0KDQodCi0JDQnQor0JjQm9CY0Isg0JvQkNCX0JDQoAor0JjQm9CY0Isg0JvQkNCX0JDQoAor0JjQm9CY0Isg0JvQkNCX0JDQoAor0JjQm9CY0Isg0InQo9CR0JjQqNCQCivQmNCb0JjQiyDQidCj0JHQmNCo0JAKK9CY0JvQmNCLINCJ0KPQkdCY0KbQkAor0JjQm9CY0Isg0InQo9CR0JjQptCQCivQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9CY0JvQmNCLINCJ0KPQkdCY0J3QmtCeCivQmNCb0JjQiyDQidCj0JHQngor0JjQm9CY0Isg0JzQkNCg0JAKK9CY0JvQmNCLINCc0JDQoNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JvQmNCLINCc0JDQoNCY0IjQkAor0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JvQmNCLINCc0JDQoNCY0J3QmtCeCivQmNCb0JjQiyDQnNCQ0KDQmtCeCivQmNCb0JjQiyDQnNCY0KXQkNCI0JvQngor0JjQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JvQmNCLINCc0JjQm9CQ0JTQmNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkNCdCivQmNCb0JjQiyDQnNCY0JvQkAor0JjQm9CY0Isg0JzQmNCb0JXQndCQCivQmNCb0JjQiyDQnNCY0JvQldCd0JAKK9CY0JvQmNCLINCc0JjQm9CV0J0KK9CY0JvQmNCLINCc0JjQm9CV0JLQkAor0JjQm9CY0Isg0JzQmNCb0JUKK9CY0JvQmNCLINCc0JjQm9CY0IsKK9CY0JvQmNCLINCc0JjQm9CY0KbQkAor0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQmNCb0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JvQmNCLINCc0JjQm9CY0KHQkNCSCivQmNCb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQmNCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9CY0JvQmNCLINCc0JjQm9CY0JLQntCICivQmNCb0JjQiyDQnNCY0JvQntCoCivQmNCb0JjQiyDQnNCY0JvQntCoCivQmNCb0JjQiyDQnNCY0JvQntCoCivQmNCb0JjQiyDQnNCY0JvQntCoCivQmNCb0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQm9CY0Ist0JzQmNCb0KPQqNCY0Isg0J7Qm9CT0JAKK9CY0JvQmNCLINCc0JjQm9Cj0KjQmtCQCivQmNCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CY0JvQmNCLINCc0JjQntCU0KDQkNCTCivQmNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JjQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CY0JvQmNCLINCc0JjQoNCa0J4KK9CY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQm9CY0Isg0JzQmNCi0JDQoAor0JjQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CY0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQmNCb0JjQiyDQnNCe0JzQp9CY0JvQngor0JjQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CY0JvQmNCLINCd0JDQlNCQCivQmNCb0JjQiyDQndCV0ILQngor0JjQm9CY0Isg0J3QldCR0J7QiNCo0JAKK9CY0JvQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCb0JjQiyDQndCV0J3QkNCUCivQmNCb0JjQiyDQndCV0JLQldCd0JrQkAor0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQmNCb0JjQiyDQndCY0JrQntCb0JAKK9CY0JvQmNCLINCe0JHQoNCQ0JQKK9CY0JvQmNCLINCe0JHQoNCV0J0KK9CY0JvQmNCLINCe0JvQk9CQCivQmNCb0JjQiyDQntCb0JPQkAor0JjQm9CY0Isg0J7Qm9CY0JLQldCg0JAKK9CY0JvQmNCLINCe0KHQotCe0IjQkAor0JjQm9CY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9CY0JvQmNCLINCf0JDQktCb0JUKK9CY0JvQmNCLINCf0JXQoNCeCivQmNCb0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQiy3Qn9CV0KLQoNCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CY0JvQmNCLINCf0KDQldCS0JjQodCb0JDQkgor0JjQm9CY0Isg0KDQkNCU0JUKK9CY0JvQmNCLINCg0JDQlNCY0JLQntCICivQmNCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0JjQm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CY0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JjQm9CY0Isg0KDQkNCU0J4KK9CY0JvQmNCLINCg0JDQndCa0J4KK9CY0JvQmNCLINCg0JDQotCa0J4KK9CY0JvQmNCLINCg0JDQotCa0J4KK9CY0JvQmNCLINCg0KPQltCQCivQmNCb0JjQiyDQoNCj0JbQmNCm0JAKK9CY0JvQmNCLINCh0JDQktCQINCU0KAKK9CY0JvQmNCLINCh0JDQktCQCivQmNCb0JjQiy3QodCQ0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0JjQm9CY0Isg0KHQmNCc0J4KK9CY0JvQmNCLINCh0JjQndCY0KjQkAor0JjQm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CY0JvQmNCLINCh0JvQkNCS0JrQngor0JjQm9CY0Isg0KHQm9CQ0JLQmtCeCivQmNCb0JjQiyDQodCb0JDQktCe0InQo9CRCivQmNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCb0JjQiyDQodCg0ILQkNCdCivQmNCb0JjQiyDQodCg0ILQkNCdCivQmNCb0JjQiyDQodCg0ILQkNCdCivQmNCb0JjQiyDQodCg0JXQotCV0J0KK9CY0JvQmNCLINCh0KLQkNCd0JAKK9CY0JvQmNCLINCh0KLQkNCd0JjQqNCQCivQmNCb0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmNCb0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmNCb0JjQiyDQodCi0JDQndCa0JAKK9CY0JvQmNCLINCh0KLQldCS0J4KK9CY0JvQmNCLINCh0KLQntCI0JDQndCn0JUKK9CY0JvQmNCLINCh0KLQntCI0JDQnQor0JjQm9CY0Isg0KHQotCe0IjQkNCdCivQmNCb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQmNCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQmNCb0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCb0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JjQm9CY0Isg0KLQntCU0JUKK9CY0JvQmNCLINCi0J7QlNCVCivQmNCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCQ0KHQkAor0JjQm9CY0Isg0JLQldCg0JAKK9CY0JvQmNCLINCS0JjQlNCe0KHQkNCSCivQmNCb0JjQiyDQktCY0J3QmtCQCivQmNCb0JjQiyDQktCY0J3QmtCeCivQmNCb0JjQiyDQktCb0JDQlNCQ0J0KK9CY0JvQmNCLINCS0JvQkNCU0JDQnQor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCb0JjQiyDQktCb0JDQotCa0JAKK9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQmNCb0JjQiyDQl9Cb0JDQotCa0J4KK9CY0JvQmNCLINCX0JvQkNCi0JrQngor0JjQm9CY0Isg0JfQntCg0JDQnQor0JjQm9CY0Isg0JfQntCg0JjQptCQCivQmNCb0JjQkdCQ0KjQmNCLINCU0JDQoNCY0J3QmtCQCivQmNCb0JjQkdCQ0KjQmNCLINCd0JjQmtCe0JvQkAor0JjQm9CY0JHQkNCo0JjQiyDQntCh0KLQntCI0JAKK9CY0JvQmNCR0JDQqNCY0Isg0KHQotCV0JLQkNCdCivQmNCb0JjQkdCQ0KjQmNCLINCh0KLQldCS0J4KK9CY0JvQmNCR0JDQqNCY0Isg0JfQm9CQ0KLQkAor0JjQm9CY0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0IjQiyDQodCc0JjQidCQCivQmNCb0JjQiNCLINCh0JLQldCi0J7Qm9CY0JoKK9CY0JvQmNCI0JDQqNCV0JIg0KHQntCk0JjQiNCQCivQmNCb0JjQiNCQ0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0IjQkNCo0JXQktCY0Isg0JTQkNCg0JAKK9CY0JvQmNCI0JDQqNCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQm9CY0IjQkNCo0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmNCb0JjQiNCQ0JfQmCDQkNCR0JTQmNCh0JDQnNCYCivQmNCb0JjQiNCQ0JfQmCDQlNCQ0KPQogor0JjQm9CY0IjQkNCX0Jgg0KXQkNCk0JjQl9CQCivQmNCb0JjQiNCQ0JfQmCDQiNCQ0JvQp9CY0J0KK9CY0JvQmNCI0JDQl9CYINCX0JDQiNCd0JXQmwor0JjQm9CY0IjQkNCX0J7QktCY0Isg0JLQldCP0KDQmNCI0JAKK9CY0JvQmNCI0JXQkiDQmNCS0JDQnQor0JjQm9CY0IjQldCSINCY0JLQkNCdCivQmNCb0JjQiNCV0JIg0InQo9CR0JXQnQor0JjQm9CY0IjQldCS0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JjQm9CY0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JvQmNCI0JXQktCY0Isg0KDQkNCU0JUKK9CY0JvQmNCI0JXQktCh0JrQmCDQi9CY0KDQngor0JjQm9CY0IjQldCS0KHQmtCYINCC0J7QoNCC0JUKK9CY0JvQmNCI0JXQktCh0JrQmCDQlNCQ0J3QmNCb0J4KK9CY0JvQmNCI0JjQnSDQltCQ0KDQmtCeCivQmNCb0JjQiNCY0J0g0JbQmNCS0JDQnQor0JjQm9CY0IjQmNCdINCU0KPQqNCQ0J0KK9CY0JvQmNCI0JjQnSDQiNCV0JvQldCd0JAKK9CY0JvQmNCI0JjQnSDQiNCe0JLQkNCdCivQmNCb0JjQiNCY0J0g0IjQntCS0JDQnQor0JjQm9CY0IjQmNCdINCc0JjQm9CQ0J0KK9CY0JvQmNCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0IjQmNCdINCc0JjQm9CY0JLQntCICivQmNCb0JjQiNCY0J0g0JzQmNCb0J7QqAor0JjQm9CY0IjQmNCdINCc0JjQoNCI0JDQndCQCivQmNCb0JjQiNCY0J0g0KHQotCV0JLQkNCdCivQmNCb0JjQiNCY0J0g0KHQktCV0KLQntCX0JDQoAor0JjQm9CY0IjQmNCdINCi0JDQndCQ0KHQmNCI0JUKK9CY0JvQmNCI0JjQnSDQo9Cg0J7QqAor0JjQm9CY0IjQmNCdINCX0J7QoNCa0JAKK9CY0JvQmNCdINCW0JDQoNCa0J4KK9CY0JvQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCb0JjQnSDQkNCd0JrQmNCm0JAKK9CY0JvQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JvQmNCdINCR0J7QoNCa0JAKK9CY0JvQmNCdINCU0KDQkNCT0JjQitCQCivQmNCb0JjQnSDQlNCg0JDQk9CY0IrQkAor0JjQm9CY0J0g0JTQo9Co0JDQnQor0JjQm9CY0J0g0JTQo9Co0JDQnQor0JjQm9CY0J0g0JjQktCQ0J0KK9CY0JvQmNCdINCJ0KPQkdCY0J3QmtCeCivQmNCb0JjQnSDQidCj0JHQntCc0JjQoAor0JjQm9CY0J0g0JzQmNCb0JDQnQor0JjQm9CY0J0g0JzQmNCb0JXQndCa0J4KK9CY0JvQmNCdINCc0JvQkNCU0JXQnQor0JjQm9CY0J0g0J3QldCU0JXQidCa0J4KK9CY0JvQmNCdINCd0JjQmtCe0JvQkAor0JjQm9CY0J0g0KDQkNCU0JUKK9CY0JvQmNCdINCh0J3QldCW0JDQndCQCivQmNCb0JjQnSDQodCe0KTQmNCI0JAKK9CY0JvQmNCdINCi0JjQnNCQCivQmNCb0JjQnSDQl9Ce0KDQkAor0JjQm9CY0J3Qp9CY0Isg0JzQntCc0JjQoAor0JjQm9CY0J3Qp9CY0Isg0J3QldCR0J7QiNCo0JAKK9CY0InQkNCX0Jgg0I/QkNCc0JjQiQor0JjQm9Ca0JjQiyDQiNCV0JvQkAor0JjQm9Ca0JjQiyDQnNCQ0KDQmNCm0JAKK9CY0JvQmtCY0Isg0JzQmNCb0JDQnQor0JjQm9Ca0JjQiyDQnNCY0KDQkAor0JjQm9Ca0JjQiyDQndCQ0JTQkAor0JjQm9Ca0JjQiyDQndCV0JHQntCI0KjQkAor0JjQm9Ca0JjQiyDQndCV0J3QkNCUCivQmNCb0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQmNCb0JrQmNCLINCh0KLQldCS0JjQptCQCivQmNCb0JrQmNCLINCX0JvQkNCi0J7QiNCQCivQmNCb0JrQmNCdINCg0JDQlNCY0JLQntCICivQmNCb0J7QktCQ0KfQkCDQnNCQ0KDQmtCeCivQmNCb0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9Ce0JLQodCa0Jgg0JfQm9CQ0KLQkAor0JjQnNCo0JjQoNCe0JLQmNCLINCa0J7Qm9Ce0JzQkNCdCivQmNCc0KjQmNCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQnNCo0JjQoNCe0JLQmNCLINCh0JzQkNCI0JjQmwor0JjQnNCQ0JzQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JjQnNCR0KDQkCDQltCY0JLQntCI0JjQnQor0JjQnNCR0KDQmNCo0JjQiyDQkdCV0KXQmNCI0JAKK9CY0JzQkdCg0JjQqNCY0Isg0JjQktCQ0J0KK9CY0JzQkdCg0J7QitCV0JIg0KDQkNCI0JrQngor0JjQnNCR0KDQntCK0JXQkiDQoNCQ0IjQmtCeCivQmNCc0JHQoNCe0IrQldCSINCg0JDQiNCa0J4KK9CY0JzQkdCg0J7QitCV0JIg0KHQn9CQ0KHQntCI0JAKK9CY0JzQkdCg0J7QndCe0JLQmNCLINCC0J7QoNCC0JUKK9CY0JzQkdCg0J7QndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JzQkdCg0J7QndCe0JLQmNCLINCI0KPQm9Ca0JAKK9CY0JzQoNCV0KjQmCDQmNCS0JDQnQor0JjQndCC0JjQiyDQlNCg0JDQk9CY0KbQkAor0JjQndCC0JjQiyDQlNCj0KjQkNCdCivQmNCd0ILQmNCLINCI0JXQm9CV0J3QkAor0JjQndCC0JjQiyDQiNCV0JvQmNCm0JAKK9CY0J3QgtCY0Isg0KLQldCg0JXQlwor0JjQndCC0JjQiyDQktCe0IjQmNCdCivQmNCd0ILQmNCdINCW0JjQktCa0J4KK9CY0J3QgtCY0J0g0ILQo9Cg0JAKK9CY0J3QgtCY0J0g0JTQo9Co0JDQnQor0JjQndCC0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQmNCd0JjQiyDQkdCg0JDQndCa0J4KK9CY0J3QmNCLINCU0KDQkNCT0JDQnQor0JjQndCY0Isg0JTQo9Co0JDQnQor0JjQndCY0Isg0IjQldCb0JXQndCQCivQmNCd0JjQiyDQmtCg0KHQotCQCivQmNCd0JjQiyDQidCj0JHQmNCm0JAKK9CY0J3QmNCLINCc0JjQm9CQ0J0g0JTQoAor0JjQndCY0Isg0KLQmNCd0JTQkAor0JjQndCY0Isg0JLQkNCh0J4KK9CY0IrQkNCmINCR0J7Qk9CU0JDQnQor0JjQitCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CY0IrQkNCmINCI0J7QktCQ0J0KK9CY0IrQkNCmINCJ0KPQkdCY0KbQkAor0JjQitCQ0KYg0JzQmNCg0JrQngor0JjQitCQ0KYg0J3QmNCa0J7Qm9CQCivQmNCK0JDQpiDQoNCQ0JTQkAor0JjQitCQ0KYg0KDQkNCU0JUKK9CY0IrQkNCmINCg0JDQlNCe0JzQmNCgCivQmNCK0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQmNCK0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQmNCd0J7QktCQ0J0g0JTQntCR0KDQmNCS0J7QiNCVCivQmNCf0JDQpyDQmtCQ0KLQkNCb0JjQndCQCivQmNCf0JDQpyDQmtCQ0KLQmNCm0JAKK9CY0J/QmNCLINCX0J7QoNCQCivQmNCg0KjQkNCYINCY0JLQkNCdCivQmNCg0KjQkNCI0Jgg0IjQntCS0JDQnQor0JjQoNCo0JDQiNCYINCh0KLQldCS0JAKK9CY0KDQmNCLINCR0J7QltCeCivQmNCg0JjQiyDQk9CQ0KjQn9CQ0KAKK9CY0KDQnNCV0Kgg0JzQkNCg0JjQkAor0JjQoNCc0JXQitCYINCI0J7QltCV0KQKK9CY0KDQnNCV0IrQmCDQiNCe0KHQmNCfCivQmNCg0JzQldCK0Jgg0JzQkNCg0JPQmNCiCivQmNCh0JDQmNCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQmNCh0JDQmNCb0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CY0KHQkNCY0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQmNCh0JDQmNCb0J7QktCY0Isg0JLQldCb0JjQodCQ0JIKK9CY0KHQkNCI0JXQkiDQnNCQ0KDQmNCI0JAKK9CY0KHQkNCI0JXQktCY0Isg0JvQkNCX0JDQoAor0JjQodCQ0IjQldCS0JjQiyDQnNCY0JvQntCoCivQmNCh0JDQiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmNCh0JDQiNCb0J7QkiDQiNCe0J3QldCbCivQmNCh0JDQiNCb0J7QkiDQiNCe0J3QldCbCivQmNCh0JDQiNCb0J7QkiDQiNCe0J3QldCbCivQmNCh0JDQiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0KHQkNCI0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQodCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JjQodCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CY0KHQkNCI0JvQntCS0JjQiyDQpNCV0JTQntCgCivQmNCh0JDQmiDQmNCb0JjQiNCQCivQmNCh0JDQmiDQodCi0JDQndCa0J4KK9CY0KHQkNCa0J7QkiDQltCQ0KDQmtCeCivQmNCh0JDQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9CY0KHQkNCa0J7QkiDQkNCm0JrQngor0JjQodCQ0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CY0KHQkNCa0J7QkiDQptCS0JXQotCa0J4KK9CY0KHQkNCa0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CY0KHQkNCa0J7QkiDQlNCg0JDQk9CQ0J3QkAor0JjQodCQ0JrQntCSINCU0KDQkNCT0J7QidCj0JEKK9CY0KHQkNCa0J7QkiDQlNCj0KjQmNCm0JAKK9CY0KHQkNCa0J7QkiDQldCh0KLQldCgCivQmNCh0JDQmtCe0JIg0JjQktCQ0J0KK9CY0KHQkNCa0J7QkiDQiNCV0JvQmNCm0JAKK9CY0KHQkNCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0JjQodCQ0JrQntCSINCa0JDQotCY0KbQkAor0JjQodCQ0JrQntCSINCb0JXQn9Ce0KHQkNCS0JAKK9CY0KHQkNCa0J7QkiDQidCj0JHQmNCm0JAKK9CY0KHQkNCa0J7QkiDQidCj0JHQmNCm0JAKK9CY0KHQkNCa0J7QkiDQnNCY0JvQkNCdCivQmNCh0JDQmtCe0JIg0JzQmNCb0JDQnQor0JjQodCQ0JrQntCSINCc0JjQm9CV0J3QmtCeCivQmNCh0JDQmtCe0JIg0JzQmNCb0JjQktCe0IgKK9CY0KHQkNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0JjQodCQ0JrQntCSINCc0JjQm9Cj0KLQmNCdCivQmNCh0JDQmtCe0JIg0JzQmNCe0JTQoNCQ0JMKK9CY0KHQkNCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0J3QldCd0JDQlAor0JjQodCQ0JrQntCSINCf0JXQotCQ0KAKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQlQor0JjQodCQ0JrQntCSINCg0JDQlNCY0KbQkAor0JjQodCQ0JrQntCSINCg0JDQlNCY0J3QmtCQCivQmNCh0JDQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQnNCY0JvQkAor0JjQodCQ0JrQntCSINCg0JDQlNCe0JzQmNCgCivQmNCh0JDQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CY0KHQkNCa0J7QkiDQoNCj0JbQmNCm0JAKK9CY0KHQkNCa0J7QkiDQodCQ0JLQkAor0JjQodCQ0JrQntCSINCh0JvQkNCS0JrQngor0JjQodCQ0JrQntCSINCh0JzQmNCJ0JrQkAor0JjQodCQ0JrQntCSINCh0KDQldCU0J7QiNCVCivQmNCh0JDQmtCe0JIg0KHQotCV0JLQkNCdCivQmNCh0JDQmtCe0JIg0KHQotCV0JLQkNCdCivQmNCh0JDQmtCe0JIg0KLQntCU0J7QoAor0JjQodCQ0JrQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9CY0KHQkNCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0JfQntCg0JjQptCQCivQmNCh0JDQmtCe0JLQmNCLINCC0KPQoNCQINCU0JjQn9CbINCY0J3Qkwor0JjQodCQ0JrQntCS0JjQiyDQkNCd0JAKK9CY0KHQkNCa0J7QktCY0Isg0JzQkNCg0JrQngor0JjQodCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CY0KHQkNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JjQodCQ0JrQntCS0KHQmtCYINCI0JDQmtCe0JIKK9CY0KHQkNCa0J7QktCh0JrQmCDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9CY0KHQkNCd0J7QktCY0Isg0JDQndCQCivQmNCh0JjQiNCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQmNCh0JjQiNCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9CY0KHQmtCQ0JvQntCSINCc0JDQoNCY0IjQkNCd0JAKK9CY0KHQmtCY0Isg0JzQmNCb0JDQlNCY0J0KK9CY0KHQmtCg0JjQnSDQkdCg0JDQndCa0J4KK9CY0KHQmtCg0JjQnSDQiNCV0JvQldCd0JAKK9CY0KHQm9CQ0JzQkdCQ0KjQmNCLINCJ0JjQidCQ0J3QkAor0JjQodCb0JDQnNCYINCQ0JHQmNCRCivQmNCh0JvQkNCc0J7QktCY0Isg0JzQkNCl0JzQo9CUCivQmNCh0JvQkNCc0J7QktCY0Isg0J3QkNCU0JAKK9CY0KHQnNCQ0JjQm9CYINCo0JDQi9CY0KAKK9CY0KLQkNCb0J4g0JXQktCY0KbQkAor0JjQotCQ0JvQniDQnNCQ0KDQmtCeCivQmNCi0JXQkdCV0IjQkNCmINCX0J7QoNCQCivQmNCS0JDQp9Ca0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQp9Ca0J7QktCY0Isg0JzQkNCd0J7QiNCb0J4KK9CY0JLQkNCn0JrQntCS0JjQiyDQndCQ0JTQkAor0JjQktCQ0KjQp9CV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCS0JDQqNCn0JXQndCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQkNCo0KfQldCd0JrQniDQmtCQ0KLQmNCm0JAKK9CY0JLQkNCo0JrQoy3QnNCY0JvQntCS0JDQndCe0JLQmNCLINCk0JXQm9CY0KfQmNCQCivQmNCS0JDQmiDQiNCQ0J0KK9CY0JLQkNCdINCo0JDQndCU0J7QoAor0JjQktCQ0J0g0ILQo9Cg0JAKK9CY0JLQkNCdINCQ0KLQmNCb0JAKK9CY0JLQkNCdINCm0JXQptCY0JvQmNCI0JAKK9CY0JLQkNCdINCT0JDQkdCe0KAKK9CY0JLQkNCdINCI0J7QltCV0KQKK9CY0JLQkNCdINCI0J7QktCQ0J0KK9CY0JLQkNCdINCa0JDQotCQ0JvQmNCdCivQmNCS0JDQnSDQnNCY0KXQkNCI0JvQngor0JjQktCQ0J0g0KHQmNCb0JLQldCh0KLQldCgCivQmNCS0JDQnSDQktCV0KDQntCd0JAKK9CY0JLQkNCd0KfQldCSINCY0KDQmNCd0JAKK9CY0JLQkNCd0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9CY0JLQkNCd0KfQldCS0JjQiyDQltCQ0KDQmtCeINCU0KAKK9CY0JLQkNCd0KfQldCS0JjQiyDQkdCe0KjQmtCeCivQmNCS0JDQndCn0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQmNCS0JDQndCn0JXQktCY0Isg0JTQkNCg0JrQngor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQmNCS0JDQndCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCT0JDQktCg0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQmNCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JDQoNCY0KbQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVINCf0KDQntCk0JXQodCe0KAKK9CY0JLQkNCd0KfQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9CY0JLQkNCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCn0JXQktCY0Isg0KDQkNCU0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQmNCS0JDQndCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQodCY0J3QmNCo0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQodCi0JDQndCa0J4KK9CY0JLQkNCd0KfQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCS0JDQndCn0JXQktCY0Isg0JLQm9CQ0JTQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JjQktCQ0J3Qp9CY0Isg0JDQndCi0JUKK9CY0JLQkNCd0KfQmNCLINCR0KDQkNCd0JrQngor0JjQktCQ0J3Qp9CY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCn0JjQiyDQiNCe0KHQmNCfCivQmNCS0JDQndCn0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQmNCS0JDQndCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JLQkNCd0KfQmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0KfQmNCLINCe0JvQk9CQCivQmNCS0JDQndCn0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmNCS0JDQndCn0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CY0JLQkNCd0KfQmNCLINCh0KLQldCS0JDQnQor0JjQktCQ0J3Qp9CY0Isg0KHQotCV0JLQkNCdCivQmNCS0JDQndCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JDQndCn0JjQnSDQndCY0JrQntCb0JAKK9CY0JLQkNCd0KfQmNCdINCe0InQldCTCivQmNCS0JDQndCn0KPQmiDQn9CQ0JLQkNCeCivQmNCS0JDQndCU0JjQiyDQmNCS0JjQptCQCivQmNCS0JDQndCU0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JjQktCQ0J3QldCW0JAg0JDQndCU0KDQmNCI0JAKK9CY0JLQkNCd0JXQmiDQgtCj0KDQkAor0JjQktCQ0J3QldCaINCU0KPQqNCa0J4KK9CY0JLQkNCd0JXQmiDQktCY0JrQotCe0KDQmNCI0JAKK9CY0JLQkNCd0Jgg0KXQmNCJ0JAKK9CY0JLQkNCd0JjQqCDQmtCe0JLQmNCJ0JrQkAor0JjQktCQ0J3QmNCoINCh0JvQkNCS0JrQngor0JjQktCQ0J3QmNCoINCh0JvQkNCS0JrQngor0JjQktCQ0J3QmNCo0JXQktCY0Isg0ILQo9Cg0J4KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCV0JLQmNCm0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCY0JvQmNCI0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCI0JXQm9CY0KbQkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0JzQmNCl0JDQmNCb0J4KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQotCQ0KAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCd0JDQlNCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQndCQ0JTQkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0J3QldCC0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCd0JXQnNCQ0IrQkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0J7Qm9CT0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCf0JXQotCQ0KAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCg0JDQiNCa0J4KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCi0JjQndCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQktCj0JrQmNCm0JAKK9CY0JLQkNCd0JjQiyDQp9CV0JTQntCc0JjQoAor0JjQktCQ0J3QmNCLINCC0J7QoNCC0JUKK9CY0JLQkNCd0JjQiyDQkNCb0JHQldCg0KIKK9CY0JLQkNCd0JjQiyDQkNCd0JAKK9CY0JLQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9CY0JLQkNCd0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JjQktCQ0J3QmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3QmNCLINCU0KDQkNCT0JjQptCQCivQmNCS0JDQndCY0Isg0JTQo9Co0JDQnQor0JjQktCQ0J3QmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQmNCS0JDQndCY0Isg0JjQktCQ0J3QkAor0JjQktCQ0J3QmNCLINCY0JLQkNCdCivQmNCS0JDQndCY0Isg0JjQktCQ0J0KK9CY0JLQkNCd0JjQiyDQmNCS0JDQnQor0JjQktCQ0J3QmNCLINCI0J7QktCeCivQmNCS0JDQndCY0Isg0JzQkNCg0JjQndCQCivQmNCS0JDQndCY0Isg0JzQmNCb0JDQnQor0JjQktCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9CY0JLQkNCd0JjQiyDQn9CV0KDQodCY0JTQkAor0JjQktCQ0J3QmNCLINCf0JXQotCQ0KAKK9CY0JLQkNCd0JjQiyDQodCd0JXQltCQ0J3QkAor0JjQktCQ0J3QmNCLINCh0KLQldCS0JDQnQor0JjQktCQ0J3QmNCLINCX0JvQkNCi0J7QiNCVCivQmNCS0JDQitCYINCh0JjQndCY0KjQkAor0JjQktCQ0IrQmCDQktCV0KDQntCd0JjQmtCQCivQmNCS0JDQndCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CY0JLQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQmNCS0JDQndCa0J7QktCY0Isg0JHQntCW0JDQndCQCivQmNCS0JDQndCa0J7QktCY0Isg0JHQntCW0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQmNCS0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JjQm9CVCivQmNCS0JDQndCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JLQkNCd0JrQntCS0JjQiyDQndCV0J3QkNCUCivQmNCS0JDQndCa0J7QktCY0Isg0J3QntCS0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCg0JDQlNCVCivQmNCS0JDQndCa0J7QktCY0Isg0KHQkNCS0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JjQktCQ0J3QmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmNCS0JDQndCe0JIg0JbQmNCS0JDQnQor0JjQktCQ0J3QntCSINCC0J7QmtCQCivQmNCS0JDQndCe0JIg0ILQntCg0ILQlQor0JjQktCQ0J3QntCSINCC0KPQoNCC0JXQktCa0JAKK9CY0JLQkNCd0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQmNCS0JDQndCe0JIg0JHQntCg0JjQoQor0JjQktCQ0J3QntCSINCU0JjQnNCY0KLQkNCgCivQmNCS0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CY0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JjQktCQ0J3QntCSINCV0JzQmNCb0JjQiNCQCivQmNCS0JDQndCe0JIg0JXQktCY0KbQkAor0JjQktCQ0J3QntCSINCT0JDQktCg0JAKK9CY0JLQkNCd0J7QkiDQiNCj0JvQmtCQCivQmNCS0JDQndCe0JIg0JrQkNCi0JjQptCQCivQmNCS0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9CY0JLQkNCd0J7QkiDQnNCQ0KDQmNCm0JAKK9CY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CY0JLQkNCd0J7QkiDQnNCY0KjQkAor0JjQktCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQmNCS0JDQndCe0JIg0JzQmNCb0JUKK9CY0JLQkNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JjQktCQ0J3QntCSINCc0JjQotCQCivQmNCS0JDQndCe0JIg0J3QmNCa0J7Qm9CQCivQmNCS0JDQndCe0JIg0J7Qm9CY0JLQldCg0JAKK9CY0JLQkNCd0J7QkiDQn9CV0KLQkNCgCivQmNCS0JDQndCe0JIg0KHQldCg0JPQmNCI0JUKK9CY0JLQkNCd0J7QkiDQodCb0JDQktCa0J4KK9CY0JLQkNCd0J7QkiDQktCV0KDQkAor0JjQktCQ0J3QntCSINCX0JTQoNCQ0JLQmtCeCivQmNCS0JDQndCe0JIg0JfQntCg0JAKK9CY0JLQkNCd0J7QkiDQl9Ce0KDQmNCm0JAKK9CY0JLQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CY0JLQkNCd0J7QktCY0Isg0JbQmNCa0JAKK9CY0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CY0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JjQktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CY0JLQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JjQktCQ0J3QntCS0JjQiyDQkdCe0JbQkAor0JjQktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CY0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCm0JLQldCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CY0JLQkNCd0J7QktCY0Isg0JTQldCh0JAKK9CY0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmNCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KTQoNCQ0IrQkAor0JjQktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0g0JTQoAor0JjQktCQ0J3QntCS0JjQiyDQiNCQ0J3QntCoCivQmNCS0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JjQktCQ0J3QntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQmtCg0KHQotCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JjQktCQ0J3QntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JjQktCQ0J3QntCS0JjQiyDQidCj0JTQldCS0JjQogor0JjQktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdINCh0KPQlNCY0IjQkAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQldCi0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmtCeCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0J0KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmNCS0JDQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCS0JDQndCe0JLQmNCLINCd0JXQk9Ce0JLQkNCdCivQmNCS0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JjQktCQ0J3QntCS0JjQiyDQntCR0KDQkNCUCivQmNCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CY0JLQkNCd0J7QktCY0Isg0J/QldCi0KDQkAor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0KjQmtCeCivQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9CY0JLQkNCd0J7QktCY0Isg0KHQmNCc0J4KK9CY0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CY0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQodCi0JDQnNCV0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CY0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmNCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CY0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9CY0JLQkNCd0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JjQktCQ0J3QntCS0JjQiyDQktCb0JDQlNCQCivQmNCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQmNCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmNCS0JDQndCe0JLQmNCLINCX0J7QoNCQCivQmNCS0JDQndCe0JLQodCa0Jgg0ILQntCg0ILQlQor0JjQktCQ0J3QntCS0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQmNCS0JDQndCe0JLQodCa0Jgg0JjQm9CY0IjQkAor0JjQktCQ0J3QntCS0KHQmtCYINCh0KLQkNCd0JAKK9CY0JLQkNCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmNCS0JXQk9CV0Kgg0JDQndCQCivQmNCS0JXQk9CV0Kgg0JjQqNCi0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JjQktCV0JPQldCoINCb0JDQodCb0J4KK9CY0JLQldCaINCS0JvQkNCU0JjQnNCY0KAKK9CY0JLQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JjQktCV0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmNCS0JXQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmNCS0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JXQotCY0Isg0JvQkNCX0JAKK9CY0JLQldCi0JjQiyDQidCY0InQkNCd0JAKK9CY0JLQldCi0JjQiyDQnNCY0JvQntCI0JrQngor0JjQktCV0KLQmNCLINCg0JDQlNCVINCU0KAKK9CY0JLQldCi0JjQiyDQoNCQ0JTQlSDQlNCgCivQmNCS0JXQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CY0JLQldCi0JjQiyDQktCQ0KHQkAor0JjQktCV0KLQmNCLINCS0JXQodCd0JAKK9CY0JLQldCX0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQktCV0JfQmNCLINCU0KDQkNCT0J4KK9CY0JLQldCX0JjQiyDQk9Ce0IjQmtCeCivQmNCS0JXQl9CY0Isg0JzQkNCg0JrQniDQlNCgCivQmNCS0JXQl9CY0Isg0JzQmNCb0JUKK9CY0JLQldCX0JjQiyDQl9Ce0KDQkNCdCivQmNCS0JXQl9CY0Isg0JfQktCe0J3QmtCeCivQmNCS0JjQp9CY0Isg0JzQmNCg0JAKK9CY0JLQmNCn0JjQiyDQndCQ0JTQkAor0JjQktCY0KfQmNCLLdCi0J7QnNCY0Isg0JHQmNCJ0JDQndCQCivQmNCS0JjQiyDQkdCb0JDQk9Ce0JzQmNCgCivQmNCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JjQktCY0Isg0IjQo9Cb0JjQiNCQCivQmNCS0JjQiyDQnNCV0JvQmNCi0JAKK9CY0JLQmNCLINCc0JjQoNCa0J4g0JzQoCDQn9ClCivQmNCS0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCe0JXQpgor0JjQktCY0Isg0KDQkNCU0JUKK9CY0JLQmNCLINCh0KLQntCI0JDQnQor0JjQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JjQktCY0Isg0JLQkNCh0J4KK9CY0JLQmNCLINCS0J7QiNCY0JzQmNCgCivQmNCS0JjQiyDQl9Cb0JDQotCa0J4KK9CY0JLQmtCe0JIg0KfQldCU0J7QnNCY0KAKK9CY0JLQmtCe0JIg0JbQmNCS0JrQkAor0JjQktCa0J7QkiDQgtCe0KDQgtCVCivQmNCS0JrQntCSINCR0J7QqNCa0J4KK9CY0JLQmtCe0JIg0JHQntCg0JjQktCe0IgKK9CY0JLQmtCe0JIg0JTQkNCd0JjQm9CeCivQmNCS0JrQntCSINCU0J7QkdCg0JjQktCe0IgKK9CY0JLQmtCe0JIg0JTQo9Co0JDQnQor0JjQktCa0J7QkiDQmNCh0JAKK9CY0JLQmtCe0JIg0JjQktCQ0J0KK9CY0JLQmtCe0JIg0IjQldCb0JXQndCQCivQmNCS0JrQntCSINCI0JXQm9CV0J3QkAor0JjQktCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CY0JLQmtCe0JIg0JrQkNCi0JjQptCQCivQmNCS0JrQntCSINCa0JDQotCY0KbQkAor0JjQktCa0J7QkiDQnNCY0JvQldCd0JrQngor0JjQktCa0J7QkiDQnNCY0JvQmNCm0JAKK9CY0JLQmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9CY0JLQmtCe0JIg0J7Qm9CT0JjQptCQCivQmNCS0JrQntCSINCf0JXQotCQ0KAKK9CY0JLQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0JjQktCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JjQktCa0J7QkiDQodCQ0JLQkAor0JjQktCa0J7QkiDQodCV0JrQo9Cb0JAKK9CY0JLQmtCe0JIg0KHQm9CQ0JLQmtCeCivQmNCS0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JjQktCa0J7QkiDQodCi0JDQndCQCivQmNCS0JrQntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQmNCS0JrQntCSINCh0KLQldCS0JDQnQor0JjQktCa0J7QkiDQodCi0JXQktCQ0J0KK9CY0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQmNCS0JrQntCSINCj0KDQntCoCivQmNCS0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQmtCe0JLQmNCLINCC0KPQoNCeCivQmNCS0JrQntCS0JjQiyDQkNCd0KLQo9CdCivQmNCS0JrQntCS0JjQiyDQkNCg0KHQkAor0JjQktCa0J7QktCY0Isg0JHQntCW0JAKK9CY0JLQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JjQktCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JjQktCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JjQktCa0J7QktCY0Isg0JTQldCI0JDQnQor0JjQktCa0J7QktCY0Isg0JTQmNCS0J3QkAor0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdINCU0JjQn9CbINCY0J3Qkwor0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JjQktCa0J7QktCY0Isg0JXQodCi0JXQoNCQCivQmNCS0JrQntCS0JjQiyDQk9Cj0KHQotCQ0JIg0JTQoAor0JjQktCa0J7QktCY0Ist0JjQktCQ0J3QlNCV0JrQmNCLINCU0JDQndCY0KbQkAor0JjQktCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQmNCS0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQmNCS0JrQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JjQktCa0J7QktCY0Ist0JvQkNCX0JDQoCDQotCQ0KLQiNCQ0J3QkCDQlNCgCivQmNCS0JrQntCS0JjQiyDQm9Cj0JrQkAor0JjQktCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JLQmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQldCd0KLQmNCI0JUKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JjQktCa0J7QktCY0Isg0JzQmNCb0JUKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QidCj0JEg0JTQmNCf0Jsg0JjQndCTCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQktCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CY0JLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmNCS0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CY0JLQmtCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JjQktCa0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQmNCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JjQktCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmNCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CY0JLQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQmNCS0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JjQktCa0J7QktCY0Isg0KDQkNCd0JrQngor0JjQktCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmNCS0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQmNCS0JrQntCS0JjQiyDQktCV0KDQkAor0JjQktCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQmNCS0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JrQntCS0JjQiyDQktCb0JDQiNCa0J4KK9CY0JLQmtCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQmNCS0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQktCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQmNCS0J7QqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQktCe0Kgg0KDQntCU0J7QidCj0JEKK9CY0JLQntCoINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQntCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQktCe0KjQldCSINCU0KPQqNCQ0J0KK9CY0JLQntCo0JXQkiDQmNCb0JjQiNCQCivQmNCS0J7QqNCV0JIg0JrQkNCi0JDQoNCY0J3QkAor0JjQktCe0KjQldCSINCa0J7QodCi0JAKK9CY0JLQntCo0JXQkiDQnNCQ0KDQmtCeCivQmNCS0J7QqNCV0JIg0KHQm9CQ0JLQmtCeCivQmNCS0J7QqNCV0JIg0JLQntCI0JjQodCb0JDQkgor0JjQktCe0KjQldCS0JjQiyDQgtCj0KDQngor0JjQktCe0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JjQktCe0KjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CY0JLQntCo0JXQktCY0Isg0JPQntCI0JrQngor0JjQktCe0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0J7QqNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmNCS0J7QqNCV0JLQmNCLINCh0JDQktCQCivQmNCS0J7QqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQntCo0JXQktCY0Isg0JfQntCg0JDQnQor0JjQktCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQktCe0JLQmNCLINCf0JXQotCQ0KAKK9CY0JfQkdCg0JDQlNCY0Isg0KHQotCV0JLQkNCdCivQmNCX0JPQkNCg0IjQkNCdINCc0JjQm9CY0JLQntCICivQiNCQ0KjQp9CV0J3QmtCe0JIg0KHQotCQ0J3QkAor0IjQkNCo0JDQoCDQpdCQ0KHQkNCdCivQiNCQ0KjQkNCg0JDQk9CY0Isg0JjQktCQ0J3QmtCQCivQiNCQ0KjQkNCg0JDQk9CY0Isg0JfQmNCI0J4KK9CI0JDQqNCQ0KDQldCS0JjQiyDQpdCj0KHQldCY0J0KK9CI0JDQqNCQ0KDQldCS0JjQiyDQnNCj0KXQkNCg0JXQnAor0IjQkNCo0JDQoNCV0JLQmNCLINCg0JDQnNCeCivQiNCQ0KjQkNCg0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQkNCo0JDQoNCYINCP0JDQpNCV0KAKK9CI0JDQqNCQ0KDQntCSINCo0JDQmNCfCivQiNCQ0KjQmNCLINCU0JXQodCQ0J3QmtCQCivQiNCQ0KjQmNCLINCh0JjQndCY0KjQkAor0IjQkNCo0JjQndCh0JrQmCDQoNCj0JbQkAor0IjQkNCo0J4g0JDQndCQCivQiNCQ0KjQniDQiNCe0JbQldCkINCU0KAKK9CI0JDQqNCeINCc0JjQm9Ce0KHQkNCSCivQiNCQ0KjQniDQnNCY0KDQntCh0JvQkNCS0JAKK9CI0JDQqNCe0JLQmNCLINCT0J7QiNCa0J4KK9CI0JDQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCQ0IvQmNCc0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JvQldCa0JDQoAor0IjQkNCL0JjQnNCe0JLQmNCLINCR0J7QiNCY0J0KK9CI0JDQi9CY0JzQntCS0JjQiyDQiNCe0JLQkAor0IjQkNCL0JjQnNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9CI0JDQi9CY0JzQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQkNCL0JjQnNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0JDQi9CY0JzQntCS0JjQiyDQodCi0JXQktCeCivQiNCQ0IvQmNCc0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQkNCL0JjQnNCe0JLQodCa0Jgg0JzQntCI0KHQlQor0IjQkNCR0JvQkNCd0J7QkiDQgtCj0JrQkAor0IjQkNCR0JvQkNCd0J7QkiDQlNCg0JDQk9CY0KbQkAor0IjQkNCR0JvQkNCd0J7QkiDQmNCT0IrQkNCi0JjQiNCVCivQiNCQ0JHQm9CQ0J3QntCSINCI0JXQm9CV0J3QkAor0IjQkNCR0JvQkNCd0J7QkiDQidCj0JHQntCc0JjQoAor0IjQkNCR0JvQkNCd0J7QkiDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQkdCb0JDQndCe0JIg0JfQntCg0JAKK9CI0JDQkdCb0JDQndCe0JIg0JfQntCg0JAKK9CI0JDQkdCb0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQiNCQ0JHQm9CQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQiNCQ0KbQkNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0IjQkNCm0JDQndCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0IjQkNCm0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQptCY0KjQmNCdINCQ0J3QmtCQCivQiNCQ0KbQmNCLINCU0JDQoNCY0J3QmtCQCivQiNCQ0KbQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCT0JXQoCDQkNCd0JAKK9CI0JDQk9CV0KAg0JzQkNCg0JjQnQor0IjQkNCT0JXQoCDQnNCY0KXQkNCI0JvQngor0IjQkNCT0JXQoCDQn9CQ0JLQkNCeCivQiNCQ0JPQldCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCT0JXQotCY0Isg0JzQmNCb0J7QqAor0IjQkNCT0JXQotCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0JPQldCi0JjQiyDQktCV0JvQmNCc0JjQoAor0IjQkNCT0JXQotCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQkNCT0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCT0JvQmNCm0JAg0JHQoNCQ0J3QmtCeCivQiNCQ0JPQm9CY0KbQkCDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JPQitCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0JPQntCU0JjQiyDQkNCd0ILQldCb0JrQngor0IjQkNCT0J7QlNCY0Isg0JTQo9Co0JDQnQor0IjQkNCT0J7QlNCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0JPQntCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0JPQntCU0JjQiyDQn9CV0KLQkNCgCivQiNCQ0JPQntCU0JjQiyDQoNCQ0J3QmtCeCivQiNCQ0JPQntCU0JjQiyDQktCV0InQmtCeCivQiNCQ0JPQntCU0JjQiyDQktCb0JDQlNCeCivQiNCQ0JPQo9Co0KIt0JDQmtCa0JDQlCDQm9CQ0JTQkAor0IjQkNCl0IjQkCDQoNCV0KjQkNCUCivQiNCQ0KXQo9Cg0JAg0JLQo9Ca0JDQqNCY0J0KK9CI0JDQiNCn0JDQndCY0J0g0JHQntCW0J4KK9CI0JDQiNCn0JXQktCY0Isg0JDQndCT0JXQm9CQCivQiNCQ0IjQkNCT0JjQnSDQoNCQ0JTQntCS0JDQnQor0IjQkNCI0JDQk9CY0J0g0KHQn9CQ0KHQntCI0JUKK9CI0JDQiNCQ0JPQmNCdINCX0J7QoNCY0KbQkAor0IjQkNCI0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CI0JDQiNCY0Isg0ILQntCg0ILQlQor0IjQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQiNCY0Isg0JjQm9CY0IjQkAor0IjQkNCI0JjQiyDQmNCS0JDQndCa0JAKK9CI0JDQiNCY0Isg0JvQkNCX0JDQoAor0IjQkNCI0JjQiyDQm9CV0J3QmtCQCivQiNCQ0IjQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCI0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0IjQmNCLINCh0JDQktCQCivQiNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0IjQkNCI0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCQ0IjQmNCdINCb0JDQlNCY0KHQm9CQ0JIKK9CI0JDQiNCY0J0g0JzQmNCg0IjQkNCd0JAKK9CI0JDQiNCY0J0g0JfQm9CQ0KLQmtCeCivQiNCQ0JrQqNCQINCf0JjQoNCe0KjQmtCQCivQiNCQ0JrQqNCV0JLQkNCmINCU0KDQkNCT0J4KK9CI0JDQmtCo0JjQiyDQltCQ0KDQmtCeCivQiNCQ0JrQqNCY0Isg0ILQntCg0ILQlQor0IjQkNCa0KjQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCo0JjQiyDQgtCj0KDQkAor0IjQkNCa0KjQmNCLINCQ0J3QkAor0IjQkNCa0KjQmNCLINCR0J7Qk9CU0JDQnQor0IjQkNCa0KjQmNCLINCR0J7Qk9CU0JDQnQor0IjQkNCa0KjQmNCLINCR0J7QiNCQ0J0KK9CI0JDQmtCo0JjQiyDQkdCg0JDQndCa0J4KK9CI0JDQmtCo0JjQiyDQlNCQ0J3QlQor0IjQkNCa0KjQmNCLINCU0JDQndCVCivQiNCQ0JrQqNCY0Isg0JTQkNCd0JUKK9CI0JDQmtCo0JjQiyDQlNCV0IjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQnNCY0KLQkNCgCivQiNCQ0JrQqNCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J0KK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J0KK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JrQngor0IjQkNCa0KjQmNCLINCV0JzQmNCbCivQiNCQ0JrQqNCY0Isg0JjQm9CY0IjQkAor0IjQkNCa0KjQmNCLINCY0JvQmNCI0JAKK9CI0JDQmtCo0JjQiyDQmNCS0JjQptCQCivQiNCQ0JrQqNCY0Isg0JjQktCY0KbQkAor0IjQkNCa0KjQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CI0JDQmtCo0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQiNCQ0JrQqNCY0Isg0IjQldCb0JXQndCQCivQiNCQ0JrQqNCY0Isg0IjQntCS0JDQndCa0JAKK9CI0JDQmtCo0JjQiyDQiNCe0JLQkNCdCivQiNCQ0JrQqNCY0Isg0IjQntCS0JDQnQor0IjQkNCa0KjQmNCLINCa0JDQotCY0KbQkAor0IjQkNCa0KjQmNCLINCJ0JjQidCQCivQiNCQ0JrQqNCY0Isg0InQo9CR0JjQodCQ0JIKK9CI0JDQmtCo0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCa0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0JrQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQmtCo0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCa0KjQmNCLINCc0JDQoNCa0J4KK9CI0JDQmtCo0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0JrQqNCY0Isg0JzQkNCg0JrQngor0IjQkNCa0KjQmNCLINCc0JjQiNCQ0KIKK9CI0JDQmtCo0JjQiyDQnNCY0JvQkNCdCivQiNCQ0JrQqNCY0Isg0JzQmNCb0JDQnQor0IjQkNCa0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCQ0JrQqNCY0Isg0JzQmNCb0JXQktCQCivQiNCQ0JrQqNCY0Isg0JzQmNCb0J7QqAor0IjQkNCa0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0JrQqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JDQmtCo0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQkNCa0KjQmNCLINCc0JjQoNCa0J4KK9CI0JDQmtCo0JjQiyDQndCV0JHQntCI0KjQkAor0IjQkNCa0KjQmNCLINCd0JXQlNCV0InQmtCeCivQiNCQ0JrQqNCY0Isg0J3QldCd0JDQlAor0IjQkNCa0KjQmNCLINCf0JDQktCb0JUKK9CI0JDQmtCo0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0JrQqNCY0Isg0J/QldCi0JDQoAor0IjQkNCa0KjQmNCLINCf0JXQotCQ0KAKK9CI0JDQmtCo0JjQiy3Qn9Cg0J7QktCn0Jgg0JHQoNCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0KDQkNCU0JXQndCa0J4KK9CI0JDQmtCo0JjQiyDQoNCQ0JTQlQor0IjQkNCa0KjQmNCLINCg0JDQlNCVCivQiNCQ0JrQqNCY0Isg0KDQkNCU0JjQqNCQCivQiNCQ0JrQqNCY0Isg0KDQkNCU0J7QiNCa0J4KK9CI0JDQmtCo0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQkNCa0KjQmNCLINCg0JDQlNCj0J0KK9CI0JDQmtCo0JjQiyDQoNCY0KHQotCeCivQiNCQ0JrQqNCY0Isg0KDQntCh0JAKK9CI0JDQmtCo0JjQiyDQoNCj0JbQmNCm0JAKK9CI0JDQmtCo0JjQiyDQoNCj0JbQmNCm0JAKK9CI0JDQmtCo0JjQiyDQodCQ0JLQkAor0IjQkNCa0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQmtCo0JjQiyDQodCc0JjQidCQCivQiNCQ0JrQqNCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0JrQqNCY0Isg0KHQktCV0KLQmtCeCivQiNCQ0JrQqNCY0Isg0KHQktCV0KLQm9CQ0J3QkCDQlNCY0J/QmyDQn9ClCivQiNCQ0JrQqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQkNCa0KjQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0JDQmtCo0JjQiyDQktCV0JvQmNCc0JjQoAor0IjQkNCa0KjQmNCLINCS0JXQoNCQCivQiNCQ0JrQqNCY0Isg0JLQm9CQ0JTQkAor0IjQkNCa0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQmtCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCQ0JrQkNCRINCU0JXQltCVCivQiNCQ0JrQkNCRINCI0J7QltCV0KQKK9CI0JDQmtCQ0JEg0J/QkNCS0JXQmwor0IjQkNCa0JXQqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCa0JXQqNCV0JLQmNCLINCd0JjQmtCeCivQiNCQ0JrQmNCo0JAg0JjQqNCi0JLQkNCdCivQiNCQ0JrQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCY0Isg0JTQkNCd0JjQptCQCivQiNCQ0JrQmNCLINCU0JDQoNCQCivQiNCQ0JrQmNCLINCU0JXQodCQ0J3QmtCQCivQiNCQ0JrQmNCLINCc0JjQm9CQ0J3QmtCQCivQiNCQ0JrQmNCLINCc0JjQntCU0KDQkNCTCivQiNCQ0JrQmNCLINCd0JjQmtCe0JvQkAor0IjQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQmtCY0Isg0JLQmNCU0JAKK9CI0JDQmtCY0KbQkCDQp9CV0JTQngor0IjQkNCa0JjQptCQINCY0JvQmNCI0JAKK9CI0JDQmtCY0JzQntCSINCh0JvQkNCS0JrQniDQlNCgINCb0JXQmtCQ0KAKK9CI0JDQmtCY0JzQntCS0JAt0JPQkNCX0JXQn9Ce0JLQkCDQiNCj0JvQmtCQINCU0KAKK9CI0JDQmtCY0JzQntCS0KHQmtCYINCR0JvQkNCT0J7QiAor0IjQkNCa0JjQnNCe0JLQodCa0Jgg0JHQntCT0J7QodCb0JDQkgor0IjQkNCa0JjQnNCe0JLQodCa0Jgg0JHQntCg0JrQngor0IjQkNCa0JjQnNCe0JLQodCa0Jgg0JTQkNCd0JUKK9CI0JDQmtCb0JjQiyDQmNCS0JDQnQor0IjQkNCa0J7QkSDQiNCe0KjQmtCQCivQiNCQ0JrQntCRINCI0J7QltCV0KQKK9CI0JDQmtCe0JEg0JvQkNCI0J7QqAor0IjQkNCa0J7QkdCQ0KYg0ILQo9Cg0ILQmNCm0JAKK9CI0JDQmtCe0JHQmCDQkdCe0KDQmNChCivQiNCQ0JrQntCR0Jgg0KLQkNCi0IjQkNCd0JAKK9CI0JDQmtCe0JHQmCDQktCY0JvQnNCe0KgKK9CI0JDQmtCe0JHQntCS0JjQiyDQpNCg0JDQitCeCivQiNCQ0JrQntCR0KEg0JjQqNCi0JLQkNCdCivQiNCQ0JrQntCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQoAor0IjQkNCa0J7QndCY0Isg0IjQkNCh0JzQmNCd0JAKK9CI0JDQmtCe0J3QmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0J7QldCmCivQiNCQ0JrQntCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQkNCa0J7Qn9Cn0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQiNCQ0JrQntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CI0JDQmtCe0J/QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0JrQntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQkNCa0J7QotCY0J0g0JbQmNCS0JrQngor0IjQkNCa0J7QotCY0J0g0JrQntCh0KLQkAor0IjQkNCa0J7QotCY0J0g0J/Qm9CV0JzQldCd0JrQkAor0IjQkNCa0J7QkiDQodCQ0JvQkNCc0KPQnQor0IjQkNCa0J7QktCQ0KYg0JjQktCQ0J0KK9CI0JDQmtCe0JLQmNCLINCg0JDQlNCVCivQiNCQ0JrQntCS0InQldCSINCW0JDQoNCa0J4KK9CI0JDQmtCe0JLQidCV0JIg0ILQo9Cg0JAKK9CI0JDQmtCe0JLQidCV0JIg0ILQo9Cg0JjQptCQCivQiNCQ0JrQntCS0InQldCSINCQ0JvQldCa0KHQldCICivQiNCQ0JrQntCS0InQldCSINCU0JDQndCY0KbQkAor0IjQkNCa0J7QktCJ0JXQkiDQlNCg0JDQk9CQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0JTQo9Co0JDQnQor0IjQkNCa0J7QktCJ0JXQkiDQmNCS0JDQnQor0IjQkNCa0J7QktCJ0JXQkiDQiNCV0KTQoNCV0JwKK9CI0JDQmtCe0JLQidCV0JIg0JrQkNCi0JAKK9CI0JDQmtCe0JLQidCV0JIg0JrQntCh0KLQkAor0IjQkNCa0J7QktCJ0JXQkiDQmtCg0JjQodCi0JjQpNCe0KAKK9CI0JDQmtCe0JLQidCV0JIg0JzQkNCg0JjQndCQCivQiNCQ0JrQntCS0InQldCSINCc0JjQm9Ce0KgKK9CI0JDQmtCe0JLQidCV0JIg0JzQmNCb0J7QqAor0IjQkNCa0J7QktCJ0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0JrQntCS0InQldCSINCg0JDQlNCe0JLQkNCdCivQiNCQ0JrQntCS0InQldCSINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0KHQktCV0KLQntCX0JDQoAor0IjQkNCa0J7QktCJ0JXQkiDQktCb0JDQlNCQCivQiNCQ0JrQntCS0InQldCSINCX0JvQkNCi0J7QiNCVCivQiNCQ0JrQntCS0InQldCS0JjQiyDQltCY0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0ILQntCg0ILQlQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0ILQntCg0ILQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JHQntCW0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCR0J7QoNCY0KjQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCU0JDQnNCI0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQmNCS0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQk9Ce0IjQmtCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQmNCT0IrQkNCiCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCQ0IrQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0IjQntCh0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCI0J7QktCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JvQkNCX0JDQoAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0InQmNCJ0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JvQo9Ca0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JDQoNCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JXQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQmNCLCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JjQktCe0Igg0JzQoCDQn9ClCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0InQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9Ce0KgKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQoNCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQotCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCe0JHQoNCQ0JQKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCf0JDQiNCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQoNCQ0JTQmNCo0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCQ0JrQntCS0InQldCS0JjQiyDQoNCQ0JTQntCI0JrQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQkNCS0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCh0JjQnNCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQodCe0IrQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQkNCh0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JDQodCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCY0JrQotCe0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JjQmtCi0J7QoAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQmNCa0KLQntCgCivQiNCQ0JrQntCS0InQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQkNCa0J7QktCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0JDQmtCj0Kgg0JzQmNCg0IjQkNCd0JAKK9CI0JDQmtCj0JHQldCmINCC0KPQoNCQCivQiNCQ0JrQo9CR0JXQpiDQm9CQ0JTQmNCh0JvQkNCSCivQiNCQ0JzQkCDQndCQ0JTQkAor0IjQkNCc0JHQntCgINCQ0J3QlNCg0JXQkAor0IjQkNCc0JHQntCgINCU0JDQndCY0JXQm9CQCivQiNCQ0JzQkdCe0KAg0JjQnNCg0JUKK9CI0JDQnNCR0J7QoCDQnNCY0KXQkNCJCivQiNCQ0JzQkdCg0KPQqNCY0Isg0KTQoNCQ0IrQngor0IjQkNCc0JjQndCQINCc0JjQm9Ce0JLQkNCdCivQiNCQ0JzQmNCd0JAg0KDQkNCi0JrQngor0IjQkNCc0KDQmNCaINCC0J7QoNCC0JUKK9CI0JDQnNCg0JjQmiDQiNCV0JvQldCd0JAKK9CI0JDQnNCg0JjQmiDQidCj0JHQmNCm0JAKK9CI0JDQnNCg0JjQmiDQntCi0J4KK9CI0JDQndCn0JAg0JTQldCI0JDQnSDQlNCgCivQiNCQ0J3Qp9CQINCa0J7QodCi0JAg0JTQoAor0IjQkNCd0KfQkCDQidCj0JHQmNCm0JAKK9CI0JDQndCn0JjQiyDQkdCY0InQkNCd0JAKK9CI0JDQndCn0JjQiyDQkdCe0JbQkNCd0JAKK9CI0JDQndCn0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQndCn0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0JDQndCn0JjQiyDQlNCg0JDQk9CY0IrQkAor0IjQkNCd0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQiNCQ0J3Qp9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCQ0J3Qp9CY0Isg0JTQo9Co0JDQnQor0IjQkNCd0KfQmNCLINCU0KPQqNCQ0J0KK9CI0JDQndCn0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQkNCd0KfQmNCLINCT0J7QoNCY0KbQkAor0IjQkNCd0KfQmNCLINCI0JXQoNCe0KHQmNCcCivQiNCQ0J3Qp9CY0Isg0InQo9CR0JjQptCQCivQiNCQ0J3Qp9CY0Isg0JzQmNCb0J7QqAor0IjQkNCd0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQndCn0JjQiyDQnNCb0JDQlNCV0J0KK9CI0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQndCn0JjQiyDQn9CV0KDQkAor0IjQkNCd0KfQmNCLINCf0JXQotCQ0KAKK9CI0JDQndCn0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQkNCd0KfQmNCLINCh0JDQktCQCivQiNCQ0J3Qp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCQ0J3Qp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCQ0J3Qp9CY0Isg0KLQmNCl0J7QnNCY0KAKK9CI0JDQndCn0JjQiyDQotCY0J3QmtCQCivQiNCQ0J3Qp9CY0Isg0JLQldCb0JjQkdCe0KAKK9CI0JDQndCn0JjQiyDQktCY0J3QmtCQCivQiNCQ0J3Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQkNCd0KfQmNCLINCS0JvQkNCh0KLQkAor0IjQkNCd0KfQo9Cg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0KfQo9Cg0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQkNCd0KfQo9Cg0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3Qp9Cj0KDQmNCLINCI0J7QktCQ0J0KK9CI0JDQndCn0KPQoNCY0Isg0JvQkNCX0JDQoAor0IjQkNCd0KfQo9Cg0JjQiyDQm9CV0J3QmtCQCivQiNCQ0J3Qp9Cj0KDQmNCLINCc0JjQoNCI0JDQndCQCivQiNCQ0J3Qp9Cj0KDQmNCLINCh0JDQktCQCivQiNCQ0J3QltCV0JrQntCS0JjQiyDQnNCY0JvQldCS0JrQkAor0IjQkNCd0JbQldCa0J7QktCY0Isg0J7Qm9CT0JAKK9CI0JDQndCW0JXQiSDQkNCd0KLQntCdCivQiNCQ0J3QkNCn0JXQmiDQgtCe0KDQgtCVCivQiNCQ0J3QkNCn0JXQmiDQmtCQ0KLQmNCm0JAKK9CI0JDQndCQ0KfQmtCe0JLQmNCLINCh0KLQntCY0JsKK9CI0JDQndCQ0Isg0IjQkNCd0J7QqAor0IjQkNCd0JDQiyDQmtCQ0KDQntCJCivQiNCQ0J3QptCY0Isg0JHQm9CQ0JPQntCI0JUKK9CI0JDQndCm0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQkNCd0JTQoNCY0Isg0ILQo9Cg0JjQptCQCivQiNCQ0J3QlNCg0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQndCU0KDQmNCLINCI0JDQndCU0KDQmNCI0JAKK9CI0JDQndCU0KDQmNCLINCc0JDQoNCY0J3QmtCeCivQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0J3QlNCg0JjQiyDQnNCY0IvQngor0IjQkNCd0JTQoNCY0Isg0JzQmNCb0JXQndCQCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQmNCd0JAKK9CI0JDQndCU0KDQmNCLINCc0JjQm9Ca0JAKK9CI0JDQndCU0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JTQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCd0JTQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCd0JTQoNCY0Isg0JzQmNCi0JDQoAor0IjQkNCd0JTQoNCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0JDQndCU0KDQmNCLINCd0JXQlNCV0InQmtCeCivQiNCQ0J3QlNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQkNCd0JTQoNCY0Isg0KDQkNCi0JrQngor0IjQkNCd0JTQoNCY0Isg0KDQmNCh0KLQngor0IjQkNCd0JTQoNCY0Isg0KHQmNCc0J4KK9CI0JDQndCU0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCU0KDQmNCLINCh0KDQldCi0JXQnQor0IjQkNCd0JTQoNCY0Isg0KHQotCQ0J3QmtCeCivQiNCQ0J3QlNCg0JjQiyDQodCi0JDQndCa0J4KK9CI0JDQndCU0KDQmNCLINCh0KLQkNCd0JrQngor0IjQkNCd0JTQoNCY0Isg0KPQk9CJ0JXQqNCQCivQiNCQ0J3QlNCg0JjQiyDQktCY0JTQkAor0IjQkNCd0JTQoNCY0Isg0JLQmNCd0JrQkAor0IjQkNCd0JTQoNCY0Isg0JfQntCg0JDQnQor0IjQkNCd0JTQoNCY0Isg0JfQntCg0JDQnQor0IjQkNCd0JXQqCDQndCV0JLQldCdCivQiNCQ0J3QldCT0JAg0KHQndCV0JbQkNCd0JAKK9CI0JDQndCV0JIg0JHQm9CQ0JPQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQiNCQ0J3QldCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0J3QmNCn0JjQiyDQkdCb0JDQltCeCivQiNCQ0J3QmNCn0JjQiyDQkdCe0JbQkAor0IjQkNCd0JjQp9CY0Isg0IjQldCb0JXQndCQCivQiNCQ0J3QmNCn0JjQiyDQnNCY0JvQldCS0JAKK9CI0JDQndCY0KfQmNCLINCc0JjQoNCa0J4KK9CI0JDQndCY0KfQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CI0JDQndCY0KfQmNCLINCh0KLQldCS0J4KK9CI0JDQndCY0Isg0KfQkNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JjQiyDQltCY0JLQntCg0JDQlAor0IjQkNCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JjQiyDQkNCd0ILQldCb0JrQngor0IjQkNCd0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3QmNCLINCU0KPQqNCa0J4KK9CI0JDQndCY0Ist0KXQmNCb0KIg0JPQntCg0JTQkNCd0JAKK9CI0JDQndCY0Isg0JjQoNCV0J3QkAor0IjQkNCd0JjQiyDQmNCS0JDQnSDQlNCgCivQiNCQ0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQiNCQ0J3QmNCLINCd0JDQlNCQCivQiNCQ0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQiNCQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQkNCd0JjQi9CY0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCd0JjQi9CY0IjQldCS0JjQiyDQnNCY0JvQntCoCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCc0JjQoNCa0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0J7Ql9Cg0JXQndCa0JAKK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0KDQkNCi0JrQngor0IjQkNCd0JjQi9CY0IjQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CI0JDQndCY0IvQmNCdINCQ0J3Qk9CV0JvQmNCd0JAKK9CI0JDQndCY0IvQmNCdINCY0JvQmNCI0JAKK9CI0JDQndCY0KbQmtCYINCh0KLQkNCd0JjQnNCY0KAKK9CI0JDQndCY0Jog0KTQldCg0JXQndCmCivQiNCQ0IrQkNCd0JjQnSDQkdCg0JDQndCa0J4KK9CI0JDQitCQ0J3QmNCdINCh0JjQnNCeCivQiNCQ0IrQkNCi0J7QktCY0Isg0JTQldCI0JDQnQor0IjQkNCK0JDQotCe0JLQmNCLINCT0J7QoNCY0KbQkAor0IjQkNCK0JDQotCe0JLQmNCLINCc0JDQndCVCivQiNCQ0IrQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQkNCK0JDQotCe0JLQmNCLINCc0JjQoNCa0J4KK9CI0JDQitCQ0KLQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCK0JDQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQkNCK0JDQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQiNCQ0IrQkNCi0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JDQitCQ0KLQntCS0JjQiyDQktCV0KDQkAor0IjQkNCK0JXQotCe0JIg0KDQkNCU0JAKK9CI0JDQitCV0KLQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0JDQitCV0KLQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0IjQkNCK0JXQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQiNCQ0IrQldCi0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCK0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCQ0IrQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0IjQkNCK0JXQktCY0Isg0JfQntCg0JDQnQor0IjQkNCK0JXQktCY0Isg0JfQntCg0JDQnQor0IjQkNCK0JjQp9CY0Isg0KHQmNCc0J4KK9CI0JDQitCY0Kgg0IjQldCb0JjQptCQCivQiNCQ0IrQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCQ0IrQmNCLINCW0JXQidCa0J4KK9CI0JDQitCY0Isg0JbQmNCS0JrQkAor0IjQkNCK0JjQiyDQltCY0JLQmtCeCivQiNCQ0IrQmNCLINCC0J7QoNCC0JUg0JTQoAor0IjQkNCK0JjQiyDQkdCe0KjQmtCeCivQiNCQ0IrQmNCLINCU0JDQndCY0KbQkAor0IjQkNCK0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCU0JjQn9CbINCe0JXQpgor0IjQkNCK0JjQiyDQmNCb0JjQiNCQCivQiNCQ0IrQmNCLINCI0JXQm9CQCivQiNCQ0IrQmNCLINCI0JXQktCg0JXQnAor0IjQkNCK0JjQiyDQiNCV0JLQotCeCivQiNCQ0IrQmNCLINCI0J7QktCQ0J0KK9CI0JDQitCY0Isg0IjQntCS0J4KK9CI0JDQitCY0Isg0IjQntCS0J4KK9CI0JDQitCY0Isg0IjQntCS0J4KK9CI0JDQitCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0JDQitCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQitCY0Isg0JvQo9Ca0JAKK9CI0JDQitCY0Isg0JzQkNCg0JjQiNCQCivQiNCQ0IrQmNCLINCc0JDQoNCa0J4KK9CI0JDQitCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0IrQmNCLINCc0JjQm9CY0JLQntCICivQiNCQ0IrQmNCLINCc0JjQm9Ca0JAKK9CI0JDQitCY0Isg0JzQmNCb0J7QnNCY0KAKK9CI0JDQitCY0Isg0JzQm9CQ0JTQldCdCivQiNCQ0IrQmNCLINCd0JDQotCQ0KjQkAor0IjQkNCK0JjQiyDQndCV0JHQntCI0KjQkAor0IjQkNCK0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQkNCK0JjQiyDQodCQ0JLQngor0IjQkNCK0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQitCY0Isg0JLQmNCi0J7QnNCY0KAKK9CI0JDQitCY0Isg0JLQntCI0JjQodCb0JDQkiDQnNCgCivQiNCQ0IrQmNCLINCS0J7QiNCa0J4KK9CI0JDQitCY0Isg0JLQo9Ca0J7QotCQCivQiNCQ0IrQmNCdINCR0J7Qk9Ce0InQo9CRCivQiNCQ0IrQmNCdINCU0JDQnNCI0JDQnQor0IjQkNCK0JjQnSDQm9CQ0JfQkNCgCivQiNCQ0IrQmNCdINCc0JjQm9CY0JLQntCICivQiNCQ0IrQmNCdINCg0JDQlNCY0JLQntCICivQiNCQ0IrQmNCdINCh0J3QldCW0JDQndCQCivQiNCQ0IrQntCoINCX0J7QoNCQ0J0KK9CI0JDQitCe0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0JDQitCe0KjQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQitCe0KjQldCS0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9CI0JDQitCj0KjQldCS0JjQiyDQk9Ce0IjQmtCeCivQiNCQ0IrQo9Co0JXQktCY0Isg0IjQntCa0JjQptCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0JzQmNCg0JAKK9CI0JDQitCj0KjQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCK0KPQqNCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQiNCQ0IrQo9Co0JXQktCY0Isg0KHQotCe0IjQkNCdCivQiNCQ0J3QmtCQINCo0JDQndCU0J7QoAor0IjQkNCd0JrQkCDQmNCS0JDQnQor0IjQkNCd0JrQkNCKINCS0JvQkNCU0J4KK9CI0JDQndCa0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCQ0J3QmtCeINCI0JDQndCe0KgKK9CI0JDQndCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQkNCd0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QkiDQlNCg0JDQk9CY0KbQkAor0IjQkNCd0JrQntCSINCU0KPQqNCQ0J0KK9CI0JDQndCa0J7QkiDQmNCS0JDQnQor0IjQkNCd0JrQntCSINCI0JXQm9CY0KbQkAor0IjQkNCd0JrQntCSINCI0J7QktCQ0J0KK9CI0JDQndCa0J7QkiDQiNCe0JLQmNCm0JAKK9CI0JDQndCa0J7QkiDQnNCY0JvQkNCdCivQiNCQ0J3QmtCe0JIg0JzQmNCb0JjQiNCQ0J3QkAor0IjQkNCd0JrQntCSINCc0JjQntCc0JjQoAor0IjQkNCd0JrQntCSINCc0JjQotCQCivQiNCQ0J3QmtCe0JIg0JzQmNCi0JrQngor0IjQkNCd0JrQntCSINCd0JDQlNCQCivQiNCQ0J3QmtCe0JIg0J3QldCU0JXQidCa0J4KK9CI0JDQndCa0J7QkiDQndCY0JrQntCb0JAKK9CI0JDQndCa0J7QkiDQndCY0JrQntCb0JAKK9CI0JDQndCa0J7QkiDQndCe0JLQmtCQCivQiNCQ0J3QmtCe0JIg0J/QoNCV0JTQoNCQ0JMKK9CI0JDQndCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0IjQkNCd0JrQntCSINCg0JDQlNCe0KHQm9CQ0JLQkAor0IjQkNCd0JrQntCSINCg0JDQndCC0JXQmwor0IjQkNCd0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JIg0KHQnNCY0InQmtCQCivQiNCQ0J3QmtCe0JIg0KHQn9CQ0KHQntCI0JAKK9CI0JDQndCa0J7QkiDQodCg0JXQlNCe0IjQlQor0IjQkNCd0JrQntCSINCi0JjQpdCe0JzQmNCgCivQiNCQ0J3QmtCe0JIg0JLQldCg0JAKK9CI0JDQndCa0J7QkiDQl9CQ0JPQntCg0JrQkCDQlNCgCivQiNCQ0J3QmtCe0JLQmNCLINCn0JDQodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQp9CV0JTQngor0IjQkNCd0JrQntCS0JjQiyDQp9CV0JTQngor0IjQkNCd0JrQntCS0JjQiyDQltCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0IjQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQiNCQ0J3QmtCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCC0KPQoNCQCivQiNCQ0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQkNCd0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCQ0J3QmtCQCivQiNCQ0J3QmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JHQntCo0JrQngor0IjQkNCd0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkdCe0JbQngor0IjQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0IjQkNCd0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiCDQlNCgINCb0JXQmtCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQlNCQ0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JTQo9Co0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCl0KDQmNCh0KLQmNCS0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCY0JPQitCQ0KIKK9CI0JDQndCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCI0J7QoNCU0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JrQkNCb0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JrQntCS0JjQiyDQmtCQ0JvQnNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQiNCQ0J3QmtCe0JLQmNCLINCa0KDQodCi0JAKK9CI0JDQndCa0J7QktCY0Ist0JrQo9CX0JzQkNCd0KfQldCSINCe0JvQmNCS0JXQoNCQCivQiNCQ0J3QmtCe0JLQmNCLINCb0JDQodCb0J4KK9CI0JDQndCa0J7QktCY0Isg0JvQkNCh0JvQngor0IjQkNCd0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0JDQndCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQi9CQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQi9CQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCI0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQiNCQ0J3QmtCe0JLQmNCLLdCc0KDQmtCY0Isg0JfQntCg0JAg0JTQmNCf0Jsg0JjQndCTCivQiNCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQiNCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQiNCQ0J3QmtCe0JLQmNCLINCd0JDQodCi0JAKK9CI0JDQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQndCa0J7QktCY0Isg0J7QkdCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0J3QmtCe0JLQmNCLINCf0JDQktCb0JUKK9CI0JDQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KDQkNCI0JrQngor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQndCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KDQkNCi0JrQngor0IjQkNCd0JrQntCS0JjQiyDQoNCe0KHQkAor0IjQkNCd0JrQntCS0JjQiyDQoNCj0JbQkAor0IjQkNCd0JrQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQiNCQ0J3QmtCe0JLQmNCLINCh0J/QkNCh0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0IjQkNCd0JrQntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQotCY0JHQntCgCivQiNCQ0J3QmtCe0JLQmNCLINCi0J7QlNCe0KAKK9CI0JDQndCa0J7QktCY0Isg0KLQntCU0J7QoAor0IjQkNCd0JrQntCS0JjQiyDQotCe0JTQntCgCivQiNCQ0J3QmtCe0JLQmNCLINCS0JXQodCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQktCj0JrQmNCLCivQiNCQ0J3QmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQktCj0JrQntCc0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQl9Cb0JDQotCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0JvQotCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCa0JAKK9CI0JDQndCa0KPQm9Ce0JIg0JTQkNCd0JjQptCQCivQiNCQ0J3QmtCj0JvQntCSLdCU0JXQnNCI0JXQnSDQnNCQ0IjQkAor0IjQkNCd0JrQo9Cb0J7QkiDQlNCg0JDQk9CY0KjQkCDQnNCgINCf0KUKK9CI0JDQndCa0KPQm9Ce0JIg0KHQotCV0JLQkNCdCivQiNCQ0J3QmtCj0JvQntCS0KHQmtCYINCc0JDQoNCY0IjQkAor0IjQkNCd0JrQo9Cb0J7QktCh0JrQmCDQn9CV0KLQkNCgCivQiNCQ0J3QniDQiNCj0JvQmNCI0JAKK9CI0JDQndCe0KjQldCSINCR0JjQodCV0KDQmtCQCivQiNCQ0J3QntCo0JXQkiDQlNCg0JDQk9CY0KbQkAor0IjQkNCd0J7QqNCV0JIg0InQmNCJ0JDQndCQCivQiNCQ0J3QntCo0JXQkiDQnNCY0JvQkNCdCivQiNCQ0J3QntCo0JXQkiDQnNCY0JvQldCd0JAKK9CI0JDQndCe0KjQldCSINCc0JjQm9CV0J3QmtCeCivQiNCQ0J3QntCo0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0JDQndCe0KjQmCDQpNCg0JDQndCm0JjQqNCa0JAKK9CI0JDQndCe0KjQmCDQmNCb0J7QndCQCivQiNCQ0J3QntCo0Jgg0JrQkNCg0JvQngor0IjQkNCd0J7QqNCYINCb0JDQodCb0J4KK9CI0JDQndCe0KjQmCDQnNCQ0KDQk9CY0KLQkAor0IjQkNCd0J7QqNCYINCc0JjQpdCQ0IkKK9CI0JDQndCe0KjQmCDQnNCY0KXQkNCJCivQiNCQ0J3QntCo0Jgg0KLQldCg0JXQl9CQCivQiNCQ0J3QntCo0Jgg0JfQntCb0KLQkNCdCivQiNCQ0J3QntCS0JDQpiDQltCY0JLQntCI0JjQnQor0IjQkNCd0J7QktCY0Isg0InQmNCJ0JAKK9CI0JDQndCj0KjQmtCeINCY0KjQotCS0JDQnQor0IjQkNCd0KPQoSDQnNCY0JvQmtCQCivQiNCQ0J3Qo9ChINCS0J7QmNCh0JvQkNCSCivQiNCQ0J3Qo9CX0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQndCj0JfQntCS0JjQiyDQiNCe0JvQkNCdCivQiNCQ0J3Qo9CX0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0JDQndCj0JfQntCS0JjQiyDQnNCY0KDQkNCJ0KPQkQor0IjQkNCd0KPQl9Ce0JLQmNCLINCd0J7QktCY0KbQkCDQlNCgCivQiNCQ0J3Qo9CX0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0KPQl9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CI0JDQn9Cj0J3Qj9CQINCb0JDQl9CQCivQiNCQ0J/Qo9Cd0I/QmNCLINCC0J7QoNCC0JUKK9CI0JDQn9Cj0J3Qj9CY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JDQn9Cj0J3Qj9CY0Isg0JzQmNCg0JrQngor0IjQkNCf0KPQndCP0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQn9Cj0J3Qj9CY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J/Qo9Cd0I/QmNCLINCd0JjQmtCe0JvQkAor0IjQkNCf0KPQndCP0JjQiyDQodCQ0JLQkAor0IjQkNCg0JDQmiDQmNCS0JDQnQor0IjQkNCg0JDQnNCQ0Jcg0JTQmNCI0JDQndCQCivQiNCQ0KDQkNCc0JDQlyDQnNCY0JvQntCS0JDQnQor0IjQkNCg0JDQnNCQ0Jcg0J3QmNCa0J7Qm9CQCivQiNCQ0KDQpiDQkNCd0JPQldCbCivQiNCQ0KDQmCDQn9Cg0J7QmtCQCivQiNCQ0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0KDQmNCLINCQ0JLQlNCeCivQiNCQ0KDQmNCLINCR0J7QiNCQ0J0KK9CI0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0KDQmNCLINCU0JDQndCY0JXQm9CQCivQiNCQ0KDQmNCLINCU0JXQodCQ0J3QmtCQCivQiNCQ0KDQmNCLINCU0KDQkNCT0JDQndCQCivQiNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCg0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CI0JDQoNCY0Isg0JrQoNCY0KHQotCY0J3QkAor0IjQkNCg0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCQ0KDQmNCLINCJ0JjQidCQ0J3QkAor0IjQkNCg0JjQiyDQidCY0InQkNCd0JAKK9CI0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQiNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCg0JjQiyDQnNCY0JvQkNCdCivQiNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CI0JDQoNCY0Isg0JzQmNCb0J7QiNCa0J4KK9CI0JDQoNCY0Isg0JzQmNCg0JAKK9CI0JDQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCg0JjQiyDQl9Ce0KDQkNCdCivQiNCQ0KDQnNCY0J3QkNCmINCR0KDQkNCd0JrQngor0IjQkNCg0J7QqNCV0J3QmtCeINCa0JDQotCQ0KDQmNCd0JAKK9CI0JDQoNCe0KjQldCS0KHQmtCYINCQ0J3QotCe0J0KK9CI0JDQoNCe0KjQldCS0KHQmtCYINCY0JLQmNCm0JAKK9CI0JDQoNCe0KjQldCS0KHQmtCYINCf0JDQktCV0JsKK9CI0JDQodCV0J3QntCS0KHQmtCYINCQ0J3QkAor0IjQkNCh0JjQiyDQlNCY0JLQndCQCivQiNCQ0KHQmNCLINCI0JDQndCa0J4KK9CI0JDQodCY0Isg0JzQkNCd0JTQkAor0IjQkNCh0JjQiyDQnNCY0KDQmtCeCivQiNCQ0KHQmNCLINCS0JXQoNCY0KbQkAor0IjQkNCh0JjQmtCQINCg0KPQltCQCivQiNCQ0KHQmNCa0JAg0KHQotCe0IjQkNCd0JrQkAor0IjQkNCh0JjQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JDQodCc0JjQndCe0JLQmNCLINCI0JDQnNCY0J0KK9CI0JDQodCd0JjQiyDQnNCY0JvQkNCdINCU0KAg0JvQldCa0JDQoAor0IjQkNCh0J3QmNCLINCc0JjQm9CQ0J0KK9CI0JDQodCd0JjQiyDQnNCY0JvQntCc0JjQoNCa0JAKK9CI0JDQodCd0JjQiyDQodCY0J3QmNCo0JAKK9CI0JDQodCd0JjQk9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQotCY0Isg0JDQndCC0JXQm9CY0IjQkAor0IjQkNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQotCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0IjQkNCi0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CI0JDQo9Ca0J7QktCY0Isg0J/QldCI0JrQkAor0IjQkNCj0KEg0JLQkNCb0KLQldCgCivQiNCQ0JLQndCYINCf0JXQotCQ0KAKK9CI0JDQktCe0KDQkNCdINCY0JLQkNCdCivQiNCQ0JLQntCg0JjQndCQINCC0KPQoNCQCivQiNCQ0JLQntCg0JjQndCQINCJ0JjQidCQ0J3QkAor0IjQkNCS0J7QoNCY0J3QkCDQnNCY0JvQlQor0IjQkNCS0J7QoNCY0J3QkCDQodCY0JzQngor0IjQkNCS0J7QoNCd0JjQmiDQkdCe0KHQmNCJ0JrQkAor0IjQkNCS0J7QoNCd0JjQmiDQn9CQ0JLQldCbCivQiNCQ0JfQmNCLINCU0JDQndCY0JvQngor0IjQkNCX0JjQiyDQmNCS0JDQndCa0JAKK9CI0JDQl9CY0Isg0JvQkNCX0JAKK9CI0JDQl9CY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQl9CY0Isg0JzQkNCg0JjQndCa0J4KK9CI0JDQl9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCX0JjQiy3QodCQ0JLQmNCdINCi0JDQotCI0JDQndCQCivQiNCQ0JfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CI0JDQl9CS0JjQiyDQkNCd0JrQkAor0IjQldCn0JjQndCQ0KYg0JzQmNCb0JDQnQor0IjQldCn0JjQndCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CI0JXQp9CY0J3QkNCmINCS0JXQoNCQCivQiNCV0KfQnNCV0J3QmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQp9Cc0JXQndCY0KbQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQldCn0JzQldCd0JjQptCQINCI0JXQm9CV0J3QkAor0IjQldCn0JzQldCd0JjQptCQINCc0JjQm9Ce0KgKK9CI0JXQp9Cc0JXQndCY0KbQkCDQktCb0JDQlNCY0JzQmNCgCivQiNCV0KjQmNCLINCW0JjQktCa0JAKK9CI0JXQqNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0JXQqNCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0IjQldCo0JjQiyDQiNCj0JvQmtCQCivQiNCV0KjQmNCLINCc0JjQm9CQ0J0KK9CI0JXQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQqNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCV0KjQmNCLINCh0KLQldCS0JDQnQor0IjQldCo0JjQiyDQl9Ce0KDQkNCdCivQiNCV0JYg0JTQoNCQ0JPQkNCdCivQiNCV0JYg0JPQntCh0J/QntCI0JjQndCa0JAKK9CI0JXQliDQnNCY0JvQntCg0JDQlAor0IjQldCWINCh0JvQntCR0J7QlNCQ0J0KK9CI0JXQliDQotCg0JjQktCeCivQiNCV0JbQldCaINCc0JjQm9CY0JLQntCICivQiNCV0KbQmtCe0JIg0J3QkNCU0JAKK9CI0JXQlNCV0KDQkNCdINCI0J7QodCY0J8KK9CI0JXQlNCV0KDQkNCdINCI0J7QodCY0J8KK9CI0JXQpNCY0Isg0JPQntCg0JDQnQor0IjQldCk0KLQldCd0JjQiyDQqNCf0JjQoNCeCivQiNCV0KTQotCV0J3QmNCLINCS0JvQkNCU0J4KK9CI0JXQpNCi0JjQiyDQltCQ0KDQmtCeCivQiNCV0KTQotCY0Isg0JHQmNCJ0JDQndCQCivQiNCV0KTQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JXQpNCi0JjQiyDQkdCe0KDQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQldCk0KLQmNCLINCR0KDQkNCd0JrQngor0IjQldCk0KLQmNCLINCU0JDQnNCI0JDQnQor0IjQldCk0KLQmNCLINCU0KDQkNCT0JDQnQor0IjQldCk0KLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CI0JXQpNCi0JjQiyDQiNCV0KTQotCQCivQiNCV0KTQotCY0Isg0IjQldCb0JXQndCQCivQiNCV0KTQotCY0Isg0IjQntCS0JDQnQor0IjQldCk0KLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CI0JXQpNCi0JjQiyDQidCj0JHQntCc0JjQoAor0IjQldCk0KLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQpNCi0JjQiyDQnNCY0JvQkNCdCivQiNCV0KTQotCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JXQpNCi0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQldCk0KLQmNCLINCc0JjQotCQCivQiNCV0KTQotCY0Isg0KHQoNCV0KLQldCd0JrQkAor0IjQldCk0KLQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCV0KTQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQldCk0KLQmNCLINCS0JXQm9CY0J3QmtCQCivQiNCV0KTQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQldCk0KLQmNCLINCS0JvQkNCh0KLQkAor0IjQldCk0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCV0KTQotCe0JLQmNCLINCk0KDQkNCK0JAKK9CI0JXQk9CQ0KDQkNCmINCe0JvQk9CQCivQiNCV0JPQlNCY0Isg0JTQkNCc0IjQkNCdCivQiNCV0JPQlNCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JXQk9CU0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CI0JXQk9CU0JjQiyDQktCQ0KHQkAor0IjQldCT0JTQmNCLINCS0JDQodCeCivQiNCV0JPQldCoINCc0JjQm9CQCivQiNCV0JrQldCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0JXQmtCV0JvQmNCLINCR0KDQkNCd0JrQngor0IjQldCa0JXQm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9CI0JXQmtCV0JvQmNCLINCb0JDQodCb0J4KK9CI0JXQmtCV0JvQmNCLINCc0JjQm9CQ0J0KK9CI0JXQmtCV0JvQmNCLINCc0JjQm9CY0IsKK9CI0JXQmtCV0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQiNCV0JrQldCb0JjQiyDQodCb0JDQktCa0J4KK9CI0JXQmtCV0JvQmNCLINCX0J7QoNCY0KbQkAor0IjQldCa0J3QmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CI0JXQm9Cn0JjQiyDQiNCe0JfQldCk0JjQndCQCivQiNCV0JvQp9CY0Isg0JrQoNCY0KHQotCY0IjQkNCdCivQiNCV0JvQp9CY0Isg0InQo9CR0JjQqNCQCivQiNCV0JvQp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0JXQm9Cn0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQldCb0KfQmNCLINCf0JDQktCb0JUKK9CI0JXQm9Cn0JjQiyDQl9Ce0KDQkAor0IjQldCb0JDQp9CQINCC0KPQoNCeCivQiNCV0JvQkNCn0JAg0ILQo9Cg0J4KK9CI0JXQm9CQ0KfQkCDQkdCg0JDQndCa0J4KK9CI0JXQm9CQ0KfQkCDQlNCV0KHQkAor0IjQldCb0JDQp9CQINCa0J7QodCi0JAKK9CI0JXQm9CQ0KfQkCDQnNCY0KXQkNCI0JvQngor0IjQldCb0JDQp9CQINCc0JjQm9CV0J3QmtCeCivQiNCV0JvQkNCn0JAg0KDQo9CW0JAKK9CI0JXQm9CQ0KfQkCDQodCY0JzQniDQlNCgINCY0J3Qkwor0IjQldCb0JDQp9CQINCh0JvQntCR0J7QlNCQ0J0KK9CI0JXQm9CQ0KfQkCDQodCi0JDQndCa0J4KK9CI0JXQm9CQ0KfQkCDQodCi0J7QiNCQ0J0KK9CI0JXQm9CQ0KfQmNCLINCR0J7QltCY0JTQkNCgCivQiNCV0JvQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQm9CQ0KfQmNCLINCU0JDQndCY0JvQngor0IjQldCb0JDQp9CY0Isg0JTQo9Co0JDQnQor0IjQldCb0JDQp9CY0Isg0IjQo9Cb0JjQqNCa0JAKK9CI0JXQm9CQ0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCV0JvQkNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQldCb0JDQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JXQm9CQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JXQm9CQ0KfQmNCLINCg0JDQotCe0JzQmNCgCivQiNCV0JvQkNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JvQkNCn0JjQiyDQl9Ce0KDQmtCQCivQiNCV0JvQkNCS0JjQiyDQltCV0InQmtCeCivQiNCV0JvQkNCS0JjQiyDQlNCg0JDQk9CeCivQiNCV0JvQldCnINCY0JvQmNCI0JAKK9CI0JXQm9CV0KfQkNCd0JjQnSDQgtCe0KDQgtCVCivQiNCV0JvQldCn0JDQndCY0J0g0JzQkNCg0JjQiNCQCivQiNCV0JvQldCn0JjQiyDQiNCe0JLQkNCdCivQiNCV0JvQldCd0KfQmNCLINCk0KDQkNCK0JAKK9CI0JXQm9CV0J3QmNCLINCW0JjQktCQ0J0KK9CI0JXQm9CV0J3QmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CV0J3QmNCLINCf0JDQndCi0JAKK9CI0JXQm9CV0J3QmNCLINCf0JDQktCb0JUKK9CI0JXQm9CV0J3QmNCLINCg0JDQlNCQCivQiNCV0JvQldCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JvQldCd0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCV0JvQldCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQldCb0JXQndCa0J7QktCY0Isg0JPQoNCe0JfQlNCQCivQiNCV0JvQldCd0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CI0JXQm9CV0KHQmNCLINCQ0J3Qk9CV0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQiNCV0JvQmNCn0JjQiyDQltCY0JLQmtCeCivQiNCV0JvQmNCn0JjQiyDQgtCj0KDQngor0IjQldCb0JjQp9CY0Isg0JHQldCQ0KLQkAor0IjQldCb0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JvQmNCn0JjQiyDQlNCj0KjQkNCdCivQiNCV0JvQmNCn0JjQiyDQiNCV0JvQldCd0JAKK9CI0JXQm9CY0KfQmNCLINCI0J7QktCeCivQiNCV0JvQmNCn0JjQiyDQidCj0JHQmNCm0JAKK9CI0JXQm9CY0KfQmNCLINCc0JDQoNCY0IjQkAor0IjQldCb0JjQp9CY0Isg0JzQmNCb0JDQnQor0IjQldCb0JjQp9CY0Isg0JzQmNCb0JUKK9CI0JXQm9CY0KfQmNCLINCc0JjQoNCa0J4KK9CI0JXQm9CY0KfQmNCLINCf0JXQotCQ0KAKK9CI0JXQm9CY0KfQmNCLINCf0JXQotCQ0KAKK9CI0JXQm9CY0KfQmNCLINCg0J7QodCQCivQiNCV0JvQmNCn0JjQiyDQktCY0JQKK9CI0JXQm9CY0Isg0JbQmNCS0JrQngor0IjQldCb0JjQiyDQltCY0JLQmtCeCivQiNCV0JvQmNCLINCC0J7QoNCC0JUKK9CI0JXQm9CY0Isg0ILQntCg0ILQlQor0IjQldCb0JjQiyDQkNCL0JjQnAor0IjQldCb0JjQiyDQkNCd0ILQkAor0IjQldCb0JjQiyDQkNCd0KLQlQor0IjQldCb0JjQiyDQkdCj0JTQmNCc0JjQoAor0IjQldCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JXQm9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0IjQldCb0JjQiyDQlNCj0KjQkNCdCivQiNCV0JvQmNCLINCV0JzQmNCb0JjQiNCQCivQiNCV0JvQmNCLINCV0KHQotCV0KDQkAor0IjQldCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQldCb0JjQiyDQmNCS0JDQndCa0JAKK9CI0JXQm9CY0Isg0JjQktCY0KbQkAor0IjQldCb0JjQiyDQiNCQ0JPQntCU0JjQndCa0JAKK9CI0JXQm9CY0Isg0IjQkNCK0JAKK9CI0JXQm9CY0Isg0IjQldCb0JXQndCQCivQiNCV0JvQmNCLINCI0J7QktCQ0J0KK9CI0JXQm9CY0Isg0JvQkNCX0JDQoAor0IjQldCb0JjQiyDQm9CQ0JfQkNCgCivQiNCV0JvQmNCLINCJ0KPQkdCY0KbQkAor0IjQldCb0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQldCb0JjQiyDQm9Cj0JrQkAor0IjQldCb0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0JXQm9CY0Isg0JzQkNCg0JjQndCQCivQiNCV0JvQmNCLLdCc0JDQotCY0Isg0JzQkNCg0JjQiNCQCivQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CY0Isg0JzQmNCb0JDQnQor0IjQldCb0JjQiyDQnNCY0JvQldCd0JAKK9CI0JXQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JXQm9CY0Isg0JzQmNCb0JrQkAor0IjQldCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQldCb0JjQiyDQnNCY0KLQkAor0IjQldCb0JjQiyDQnNCe0JzQmNCgCivQiNCV0JvQmNCLINCd0JDQlNCQCivQiNCV0JvQmNCLINCd0JXQlNCV0InQmtCeCivQiNCV0JvQmNCLINCf0JDQktCb0JUKK9CI0JXQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0KDQkNCU0JXQndCa0J4KK9CI0JXQm9CY0Isg0KDQntCh0JAKK9CI0JXQm9CY0Isg0KHQkNCS0JAKK9CI0JXQm9CY0Isg0KHQmNCc0JAKK9CI0JXQm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JXQm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0IjQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQm9CY0Isg0KHQotCV0JLQkAor0IjQldCb0JjQiyDQodCi0JXQktCQCivQiNCV0JvQmNCLINCh0KLQmNCf0JUKK9CI0JXQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQldCb0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCV0JvQmNCLINCi0J7QnNCQCivQiNCV0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0JXQm9CY0Isg0JLQkNCh0JAKK9CI0JXQm9CY0Isg0JLQkNCh0J4KK9CI0JXQm9CY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQiNCV0JvQmNCm0JrQmCDQodCY0JzQldCj0J0KK9CI0JXQm9CY0J0g0IjQntCS0JDQnQor0IjQldCb0JjQnSDQoNCQ0JTQnNCY0JvQkAor0IjQldCb0JjQndCn0JjQiyDQlNCj0IjQngor0IjQldCb0JjQndCV0Jog0KHQotCV0JLQkNCdCivQiNCV0JvQmNCh0JDQktCQ0KYg0JPQntCg0JTQkNCdCivQiNCV0JvQmNCh0JDQktCQ0KYg0JzQmNCb0J7QqAor0IjQldCb0JjQodCQ0JLQkNCmINCc0J7QnNCY0KAKK9CI0JXQm9Ca0JjQiyDQiNCe0JLQkNCdCivQiNCV0JvQmtCY0Isg0JvQkNCX0JDQoAor0IjQldCb0JrQmNCLINCe0JvQmNCS0JXQoNCQCivQiNCV0JvQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQldCb0J7QktCQ0KYg0JbQkNCg0JrQngor0IjQldCb0J7QktCQ0KYg0JbQkNCg0JrQngor0IjQldCb0J7QktCQ0KYg0ILQntCg0ILQlQor0IjQldCb0J7QktCQ0KYg0ILQntCg0ILQlQor0IjQldCb0J7QktCQ0KYg0ILQo9Cg0J4KK9CI0JXQm9Ce0JLQkNCmINCR0JjQodCV0KDQmtCQCivQiNCV0JvQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0JXQm9Ce0JLQkNCmINCR0KDQkNCd0JrQkAor0IjQldCb0J7QktCQ0KYg0JHQoNCQ0J3QmtCQCivQiNCV0JvQntCS0JDQpiDQkdCg0JDQndCa0J4KK9CI0JXQm9Ce0JLQkNCmINCU0KDQkNCT0JDQnQor0IjQldCb0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQiNCV0JvQntCS0JDQpiDQlNCj0KjQkNCdCivQiNCV0JvQntCS0JDQpiDQmNCX0JDQkdCV0JvQkAor0IjQldCb0J7QktCQ0KYg0IjQntCS0JDQnQor0IjQldCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0IjQldCb0J7QktCQ0KYg0JzQmNCb0JjQptCQCivQiNCV0JvQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQiNCV0JvQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQiNCV0JvQntCS0JDQpiDQndCQ0JTQkAor0IjQldCb0J7QktCQ0KYg0J3QmNCa0J7Qm9CQCivQiNCV0JvQntCS0JDQpiDQoNCQ0JTQntCI0JrQkAor0IjQldCb0J7QktCQ0KYg0KDQkNCU0J7QiNCa0JAKK9CI0JXQm9Ce0JLQkNCmINCg0JDQlNCe0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0IjQldCb0J7QktCQ0KYg0KDQo9CW0JjQptCQCivQiNCV0JvQntCS0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JvQntCS0JDQpiDQodCi0JXQktCQ0J0KK9CI0JXQm9Ce0JLQkNCmINCh0KLQntCI0JDQnQor0IjQldCb0J7QktCQ0KYg0KLQo9CT0J7QnNCY0KAKK9CI0JXQm9Ce0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQiNCV0JvQntCS0JDQpiDQktCb0JDQlNCQCivQiNCV0JvQntCS0JDQpiDQktCj0IjQmNCm0JAKK9CI0JXQm9Ce0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQiNCV0JvQo9Co0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQldCb0KPQqNCY0Isg0JvQldCd0JrQkAor0IjQldCb0KPQqNCY0Isg0JzQkNCi0JjQiNCVCivQiNCV0JzQpyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0JXQnNCg0JjQiyDQiNCV0JvQkAor0IjQldCd0JXQptCa0J7QkiDQoNCQ0JTQnNCY0JvQkAor0IjQldCd0JXQptCa0J7QkiDQodCQ0KjQkAor0IjQldCd0JXQmCDQkNCd0JTQoNCQ0KgKK9CI0JXQndCV0Jgg0JXQo9CT0JXQnQor0IjQldCd0JXQmCDQm9CQ0IjQntCoCivQiNCV0J3QldCYINCc0JjQntCU0KDQkNCTCivQiNCV0J3QldCYINCg0KPQltCQCivQiNCV0J3QldCYINCh0KLQldCS0JDQnQor0IjQldCd0JXQmCDQotCY0JHQntCgCivQiNCV0J3QldCSINCR0JvQkNCT0J7QiAor0IjQldCf0KPQoNCh0JrQmCDQndCV0J3QkNCUCivQiNCV0KDQp9CY0Isg0KTQoNCQ0IrQngor0IjQldCg0JDQndCn0JUg0JTQkNCd0JjQptCQCivQiNCV0KDQkNCd0KIg0JDQndCU0KDQmNCI0JAKK9CI0JXQoNCQ0J3QoiDQn9CQ0KLQmNCLINCS0JXQoNCQINCU0KAKK9CI0JXQoNCQ0J3QoiDQn9CV0KLQkNCgCivQiNCV0KDQkNCj0KjQldCaINCk0KDQkNCK0J4KK9CI0JXQoNCQ0KPQqNCV0Jog0JjQktCY0KbQkAor0IjQldCg0JHQmNCLINCU0KDQkNCT0JjQptCQCivQiNCV0KDQldCR0JjQndCo0JXQmiDQkNCd0JAKK9CI0JXQoNCV0JHQmNCd0KjQldCaINCh0JvQkNCS0JrQngor0IjQldCg0JXQm9CVINCk0KDQkNCd0KbQmNCo0JrQkAor0IjQldCg0JXQnNCV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQiNCV0KDQldCc0JjQiyDQgtCe0JrQkAor0IjQldCg0JXQnNCY0Isg0ILQntCg0ILQlQor0IjQldCg0JXQnNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQoNCV0JzQmNCLLdCR0JvQkNCT0J7QiNCV0JLQmNCLINCS0JXQoNCY0KbQkAor0IjQldCg0JXQnNCY0Isg0JHQm9CQ0JPQntCI0JUKK9CI0JXQoNCV0JzQmNCLINCU0JjQnNCY0KLQoNCY0IjQlSDQlNCgINCb0JXQmtCQ0KAKK9CI0JXQoNCV0JzQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQldCg0JXQnNCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JXQoNCV0JzQmNCLINCI0JDQodCd0JAKK9CI0JXQoNCV0JzQmNCLINCI0JXQm9CV0J3QkAor0IjQldCg0JXQnNCY0Isg0IjQntCS0JDQnQor0IjQldCg0JXQnNCY0Isg0IjQntCS0JDQnQor0IjQldCg0JXQnNCY0Isg0JvQkNCX0JDQoAor0IjQldCg0JXQnNCY0Isg0InQmNCJ0JDQndCQCivQiNCV0KDQldCc0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQiNCV0KDQldCc0JjQiyDQnNCY0JvQldCS0JAKK9CI0JXQoNCV0JzQmNCLINCc0JjQoNCQCivQiNCV0KDQldCc0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCV0KDQldCc0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQldCg0JXQnNCY0Isg0J3QldCd0JDQlAor0IjQldCg0JXQnNCY0Isg0J7Qm9CY0JLQldCg0JAKK9CI0JXQoNCV0JzQmNCLINCf0JDQktCb0JUKK9CI0JXQoNCV0JzQmNCLINCf0JDQktCb0JUKK9CI0JXQoNCV0JzQmNCLINCg0JDQlNCVCivQiNCV0KDQldCc0JjQiyDQodCi0JDQndCQCivQiNCV0KDQldCc0JjQiyDQodCi0JDQndCa0J4KK9CI0JXQoNCV0JzQmNCLINCh0KLQkNCd0J7QiNCVCivQiNCV0KDQldCc0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCh0KLQldCS0JDQnQor0IjQldCg0JXQnNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQldCg0JXQnNCY0Isg0JLQldCg0JAKK9CI0JXQoNCV0JzQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JXQoNCV0JzQmNCLINCX0J7QoNCQCivQiNCV0KDQldCc0JjQiNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CI0JXQoNCV0J3QmNCLINCc0JvQkNCU0JXQnQor0IjQldCg0JPQmNCLINCc0JjQm9CY0KbQkAor0IjQldCg0JPQmNCLINCc0JjQntCU0KDQkNCTCivQiNCV0KDQk9CY0Isg0JzQmNCg0JrQngor0IjQldCg0JPQmNCLINCf0JXQotCQ0KAKK9CI0JXQoNCT0JjQiyDQodCb0JDQktCY0KbQkAor0IjQldCg0JPQmNCLINCh0J/QkNCh0J7QiNCVCivQiNCV0KDQmNCLINCU0KPQqNCQ0J0KK9CI0JXQoNCY0Isg0JrQntCS0JjQndCa0JAKK9CI0JXQoNCY0Isg0InQo9CR0JjQqNCQCivQiNCV0KDQmNCLINCc0JjQm9CY0KbQkAor0IjQldCg0JjQiyDQn9CV0KLQkNCgCivQiNCV0KDQmNCd0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQoNCY0J3QmNCLLdCa0KPQoNCY0J0g0JXQlNCY0KIKK9CI0JXQoNCY0J3QmNCLINCc0JjQntCU0KDQkNCTCivQiNCV0KDQmNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCV0KDQmNCd0JrQmNCLINCU0KDQkNCT0JDQnQor0IjQldCg0JjQndCa0JjQiyDQmNCS0JDQnQor0IjQldCg0JjQndCa0JjQiyDQn9CQ0JLQm9CVCivQiNCV0KDQmtCQ0J0g0JDQndCi0JUKK9CI0JXQoNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCV0KDQmtCe0JIg0JbQkNCg0JrQngor0IjQldCg0JrQntCSINCQ0J3QlNCg0JjQiNCQCivQiNCV0KDQmtCe0JIg0JHQoNCQ0J3QmNCc0JjQoAor0IjQldCg0JrQntCSINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QkiDQiNCe0JLQmNCm0JAKK9CI0JXQoNCa0J7QkiDQiNCe0JLQmNCm0JAKK9CI0JXQoNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0IjQldCg0JrQntCSINCc0JjQoNCI0JDQndCQCivQiNCV0KDQmtCe0JIg0J/QkNCS0JvQlQor0IjQldCg0JrQntCSINCh0JzQmNCJ0JAKK9CI0JXQoNCa0J7QkiDQodCd0JXQltCQ0J3QkAor0IjQldCg0JrQntCSINCS0JXQidCa0J4KK9CI0JXQoNCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQiNCV0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0JXQoNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQoNCa0J7QktCY0Isg0JTQnNCY0KLQkNCgCivQiNCV0KDQmtCe0JLQmNCLINCk0KDQkNCK0J4KK9CI0JXQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCV0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CI0JXQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCV0KDQmtCe0JLQmNCLINCb0JXQndCa0JAKK9CI0JXQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQldCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQiNCV0KDQmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCV0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQldCg0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQldCg0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQiNCV0KDQmtCe0JLQmNCLINCh0JjQnNCeCivQiNCV0KDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0IjQldCg0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CI0JXQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCV0KDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0IjQldCg0JrQntCS0JjQiyDQodCS0JXQotCa0J4KK9CI0JXQoNCa0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQiNCV0KDQmtCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CI0JXQoNCa0J7QktCY0Isg0JLQkNCh0JAKK9CI0JXQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQnNCgCivQiNCV0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JXQoNCa0J7QktCY0Isg0JLQm9CQ0JTQngor0IjQldCg0JrQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQiNCV0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JXQoNCe0KHQmNCc0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0IjQldCg0J7QotCY0IjQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQldCh0JjQiyDQnNCY0JvQldCd0JAKK9CI0JXQodCi0KDQntCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCV0KHQotCg0J7QktCY0Isg0JjQoNCV0J3QkAor0IjQldCS0ILQldCd0JjQiyDQoNCj0JbQmNCm0JAKK9CI0JXQktCC0JXQndCY0Isg0JLQm9CQ0JTQkAor0IjQldCS0ILQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQINCU0KAKK9CI0JXQktCC0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQldCS0JjQiyDQp9CV0JTQngor0IjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQktCY0Isg0JzQmNCb0JDQnQor0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQldCS0JjQiyDQndCQ0JTQkAor0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JXQktCY0Isg0KLQntCU0J7QoAor0IjQldCS0KDQldCc0J7QkiDQltCY0JLQkAor0IjQldCS0KDQldCc0J7QkiDQgtCe0KDQgtCVCivQiNCV0JLQoNCV0JzQntCSINCc0JjQm9CQ0J0KK9CI0JXQktCg0JXQnNCe0JIg0JzQmNCg0IjQkNCd0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCS0KDQldCc0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCh0J7QpNCY0IjQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQktCb0JDQlNCQ0J0KK9CI0JXQktCg0JjQiyDQltCY0JLQkNCdCivQiNCV0JLQoNCY0Isg0ILQntCg0ILQlQor0IjQldCS0KDQmNCLINCC0J7QoNCC0JUKK9CI0JXQktCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQldCS0KDQmNCLINCR0J7Qk9Ce0InQo9CRCivQiNCV0JLQoNCY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JLQoNCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQiNCV0JLQoNCY0Isg0JTQkNCd0JjQptCQCivQiNCV0JLQoNCY0Isg0JTQldCh0JjQnNCY0KAKK9CI0JXQktCg0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQiNCV0JLQoNCY0Isg0JXQktCY0KbQkAor0IjQldCS0KDQmNCLINCT0JjQk9CQCivQiNCV0JLQoNCY0Isg0JPQntCg0JDQnQor0IjQldCS0KDQmNCLINCI0JXQm9CQCivQiNCV0JLQoNCY0Isg0IjQntCS0JDQnQor0IjQldCS0KDQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CI0JXQktCg0JjQiyDQidCj0JHQmNCm0JAKK9CI0JXQktCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JXQktCg0JjQiyDQnNCY0JvQkNCdCivQiNCV0JLQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JXQktCg0JjQiyDQnNCY0JvQlQor0IjQldCS0KDQmNCLINCc0JjQm9Ce0KgKK9CI0JXQktCg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCV0JLQoNCY0Isg0KDQkNCU0JjQqNCQCivQiNCV0JLQoNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQldCS0KDQmNCLINCg0JDQlNCY0JLQntCICivQiNCV0JLQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0JXQktCg0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCV0JLQoNCY0Isg0KDQkNCd0JjQodCQ0JIKK9CI0JXQktCg0JjQiyDQodCb0JDQktCa0J4KK9CI0JXQktCg0JjQiyDQodCb0JDQktCa0J4KK9CI0JXQktCg0JjQiyDQodCb0JDQktCa0J4KK9CI0JXQktCg0JjQiyDQodCb0JDQktCa0J4KK9CI0JXQktCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JLQoNCY0Isg0KHQoNCR0J7QidCj0JEKK9CI0JXQktCg0JjQiyDQodCi0JDQnNCV0J3QmtCeCivQiNCV0JLQoNCY0Isg0KHQotCV0JLQkNCdINCU0KAg0JjQndCTCivQiNCV0JLQoNCY0Isg0KHQotCV0JLQkNCdCivQiNCV0JLQoNCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0IjQldCS0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQldCS0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0IjQldCS0KLQntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CI0JXQktCi0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQldCS0KLQntCS0JjQiyDQnNCY0KDQmtCeCivQiNCV0JLQotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0JXQktCi0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CI0JXQktCi0J7QktCY0Isg0JLQntCI0JrQkNCdCivQiNCV0JLQotCe0JLQmNCLINCS0KPQmtCe0KLQkAor0IjQldCS0KLQntCS0JjQiyDQktCj0JvQlQor0IjQldCX0JTQmNCLINCU0J7QkdCg0JjQm9CQCivQiNCV0JfQlNCY0Isg0JTQoNCQ0JPQkNCdCivQiNCV0JfQlNCY0Isg0IjQntCS0JDQnQor0IjQldCX0JTQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCV0JfQlNCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0JXQl9CU0JjQiyDQodCQ0JLQkAor0IjQldCX0JTQmNCLINCh0J/QmNCg0JAKK9CI0JXQl9CU0JjQiyDQodCi0JXQktCa0JAKK9CI0JXQl9CU0JjQiyDQodCi0J7QiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JDQptCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0JXQl9CU0JjQnNCY0KDQntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JXQl9CU0JjQnNCY0KDQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JfQntCg0JjQptCQCivQiNCV0JfQldCg0JrQmNCLINCe0JvQk9CY0KbQkAor0IjQmNCg0J7QotCQLdCT0JDQl9CY0JHQkNCg0JjQiyDQlNCQ0J3QmNCV0JvQkAor0IjQntCn0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCn0JjQiyDQodCi0JDQndCe0IjQm9CeCivQiNCe0KfQmNCdINCW0JjQmtCQCivQiNCe0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QqNCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQiNCe0KjQkNCd0J7QkiDQm9CQ0JfQkNCgCivQiNCe0KjQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9CI0J7QqNCQ0J3QntCSINCc0JvQkNCU0JXQnQor0IjQntCo0JXQktCh0JrQmCDQgtCe0KDQgtCY0IjQkAor0IjQntCo0JjQiyDQgtCj0KDQkAor0IjQntCo0JjQiyDQkdCb0JDQltCeCivQiNCe0KjQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCo0JjQiyDQnNCY0JvQkNCdCivQiNCe0KjQmNCLINCc0JjQm9CY0JLQntCICivQiNCe0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0KjQmNCLINCf0JXQotCQ0KAKK9CI0J7QltCQINCa0JDQotCQ0JvQmNCdCivQiNCe0JbQmNCLINCC0KPQoNCQCivQiNCe0JDQndCe0JLQmNCLINCm0JLQldCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QkNCd0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9CI0J7QkNCd0J7QktCY0Isg0KDQkNCc0J7QndCQCivQiNCe0KbQmNCLINCW0JjQktCe0IjQmNCdINCU0JjQn9CbINCY0J3Qkwor0IjQntCm0JjQiyDQltCY0JLQntCg0JDQlCDQlNCgCivQiNCe0KbQmNCLINCC0J7QoNCC0JUKK9CI0J7QptCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QptCY0Isg0JDQndCC0JXQm9Ca0JAKK9CI0J7QptCY0Isg0JDQndCT0JXQm9CY0J3QkAor0IjQntCm0JjQiyDQkNCd0JrQmNCm0JAKK9CI0J7QptCY0Isg0JHQntCg0JjQodCb0JDQkgor0IjQntCm0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0IjQntCm0JjQiyDQkdCg0JDQndCa0JAKK9CI0J7QptCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QptCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0IjQntCm0JjQiyDQpNCY0JvQmNCfCivQiNCe0KbQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9CI0J7QptCY0Isg0JjQm9CY0IjQkAor0IjQntCm0JjQiyDQmNCh0JjQlNCe0KAKK9CI0J7QptCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QptCY0Isg0IjQntCS0JDQndCa0JAKK9CI0J7QptCY0Isg0InQmNCJ0JDQndCQCivQiNCe0KbQmNCLINCc0JDQoNCY0IjQkAor0IjQntCm0JjQiyDQnNCQ0KDQmtCeCivQiNCe0KbQmNCLINCc0JDQoNCa0J4KK9CI0J7QptCY0Isg0JzQkNCg0KLQkAor0IjQntCm0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9CI0J7QptCY0Isg0JzQmNCb0JDQnQor0IjQntCm0JjQiyDQnNCY0JvQkNCdCivQiNCe0KbQmNCLINCc0JjQm9Ce0KgKK9CI0J7QptCY0Isg0JzQmNCb0J7QqAor0IjQntCm0JjQiyDQnNCY0KDQmtCeCivQiNCe0KbQmNCLINCc0JvQkNCU0JXQnQor0IjQntCm0JjQiyDQndCV0J3QkNCUCivQiNCe0KbQmNCLINCf0JXQotCQ0KAKK9CI0J7QptCY0Isg0J/QldCi0JDQoAor0IjQntCm0JjQiyDQn9CV0KLQkNCgCivQiNCe0KbQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0KbQmNCLINCg0JDQlNCc0JjQm9CQCivQiNCe0KbQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QptCY0Isg0KDQntCU0J7QidCj0JEKK9CI0J7QptCY0Isg0KHQkNCS0JAKK9CI0J7QptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCm0JjQiyDQodCc0JjQidCQCivQiNCe0KbQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QptCY0Isg0KHQotCV0JLQkNCdCivQiNCe0KbQmNCLINCh0KLQldCS0JDQnQor0IjQntCm0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQiNCe0KbQmNCLINCS0JXQoNCQCivQiNCe0KbQmNCLINCX0J7QoNCQ0J0KK9CI0J7QptCY0J0g0JHQoNCQ0J3QmtCeCivQiNCe0KbQmNCdINCf0JXQoNCh0JjQlNCQCivQiNCe0KbQmNCdINCX0JvQkNCi0J7QiNCVCivQiNCe0KbQmtCe0JIg0JTQkNCd0JjQptCQCivQiNCe0KbQmtCe0JIg0JzQkNCd0J7QiNCb0J4KK9CI0J7QptCa0J7QkiDQnNCY0JvQkNCd0JrQkAor0IjQntCm0JrQntCSINCc0JjQm9Ce0KHQkNCSCivQiNCe0KbQmtCe0JIg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0KbQmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCe0KbQmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCe0KbQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CI0J7QptCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCgCivQiNCe0KbQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0KbQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CI0J7QptCe0JLQmNCLINCW0JjQktCe0JzQmNCgCivQiNCe0KbQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCm0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CI0J7QptCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQntCm0KPQm9Ce0JIg0JHQoNCQ0J3QmtCQCivQiNCe0KbQo9Cb0J7QkiDQnNCY0KXQkNCJCivQiNCe0JTQkNCbINCg0J7QltCQCivQiNCe0KXQmNCc0KHQotCQ0Jsg0JDQk9CQ0KLQkAor0IjQntCI0JjQiyDQgtCe0KDQgtCVCivQiNCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0IjQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0IjQmNCLINCU0J7QmNCd0JAKK9CI0J7QiNCY0Isg0JTQoNCQ0JPQmAor0IjQntCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQoAor0IjQntCI0JjQiyDQlNCj0KjQkNCdCivQiNCe0IjQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CI0J7QiNCY0Isg0JjQktCQ0J3QmtCQCivQiNCe0IjQmNCLINCY0JLQkNCd0JrQkAor0IjQntCI0JjQiyDQiNCV0JvQkAor0IjQntCI0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QiNCY0Isg0InQo9CR0JjQptCQCivQiNCe0IjQmNCLINCc0JjQi9Ca0J4KK9CI0J7QiNCY0Isg0JzQmNCb0JXQktCQCivQiNCe0IjQmNCLINCc0JjQm9Ce0KgKK9CI0J7QiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QiNCY0Isg0JzQmNCg0JrQngor0IjQntCI0JjQiyDQnNCY0KDQmtCeCivQiNCe0IjQmNCLINCc0JjQoNCe0InQo9CRCivQiNCe0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QiNCY0Isg0J7Qm9CT0JAKK9CI0J7QiNCY0Isg0KHQkNCS0JAKK9CI0J7QiNCY0Isg0KHQmNCc0J4KK9CI0J7QiNCY0Isg0KHQotCQ0J3QkAor0IjQntCI0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCI0JjQiyDQodCS0JXQotCeCivQiNCe0IjQmNCdINCR0JDQoNCR0JDQoNCQCivQiNCe0IjQmNCdINCU0J7QkdCg0J7QodCQ0JIKK9CI0J7QiNCY0J0g0KHQmNCd0JjQqNCQCivQiNCe0IjQmtCY0Isg0ILQntCg0ILQlQor0IjQntCI0JrQmNCLINCC0J7QoNCC0JUKK9CI0J7QiNCa0JjQiyDQgtCe0KDQgtCVCivQiNCe0IjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QiNCa0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9CI0J7QiNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQlNCQ0J3QmNCm0JAKK9CI0J7QiNCa0JjQiyDQlNCY0J3QkAor0IjQntCI0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QiNCa0JjQiyDQlNCj0KjQmtCeCivQiNCe0IjQmtCY0Isg0IjQntCS0JjQptCQCivQiNCe0IjQmtCY0Isg0JrQkNCi0JjQptCQCivQiNCe0IjQmtCY0Isg0JrQkNCi0JjQptCQCivQiNCe0IjQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QiNCa0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0J7QiNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QiNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QiNCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCI0JrQmNCLINCc0JjQm9CV0J3QkAor0IjQntCI0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0IjQmtCY0Isg0JzQmNCb0JjQptCQCivQiNCe0IjQmtCY0Isg0JzQmNCb0JjQptCQCivQiNCe0IjQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QiNCa0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCgCivQiNCe0IjQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCI0JrQmNCLINCd0JDQlNCQCivQiNCe0IjQmtCY0Isg0J7Qm9CT0JAKK9CI0J7QiNCa0JjQiyDQn9CQ0IjQkAor0IjQntCI0JrQmNCLLdCf0J7Qm9CV0KLQotCeINCX0J7QoNCQCivQiNCe0IjQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0J7QiNCa0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQntCI0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQiNCe0IjQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQntCI0JrQmNCLINCh0JvQkNCS0JrQngor0IjQntCI0JrQmNCLINCh0JzQmNCJ0JrQkAor0IjQntCI0JrQmNCLINCh0J3QldCW0JDQndCQCivQiNCe0IjQmtCY0Isg0KHQntCk0JjQiNCQCivQiNCe0IjQmtCY0Isg0KHQntCa0J4KK9CI0J7QiNCa0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QiNCa0JjQiyDQo9Cg0J7QqAor0IjQntCI0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQntCa0JAg0JrQkNCi0JDQoNCY0J3QkAor0IjQntCa0JAg0JLQkNCh0J4KK9CI0J7QmtCQ0J3QmNCLINCY0JvQmNCI0JAKK9CI0J7QmtCQ0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0IjQntCa0JDQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQiNCe0JrQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCe0JrQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCe0JrQkNCd0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9CI0J7QmtCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCa0JDQndCe0JLQmNCLINCg0JDQlNCQCivQiNCe0JrQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0J7QmtCQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QmtCQ0J3QntCS0JjQiyDQotCe0JTQntCgCivQiNCe0JrQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCa0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0IjQntCa0JjQqNCY0Isg0JHQoNCQ0J3QmtCeCivQiNCe0JrQmNCo0JjQiyDQodCf0JDQodCe0IjQlQor0IjQntCa0JjQiyDQltCQ0KDQmtCeCivQiNCe0JrQmNCLINCW0JDQoNCa0J4KK9CI0J7QmtCY0Isg0JbQmNCS0JDQnQor0IjQntCa0JjQiyDQgtCe0KDQgtCVCivQiNCe0JrQmNCLINCC0KPQoNCQ0IIKK9CI0J7QmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0J7QmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0IjQntCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QmtCY0Isg0JHQo9CU0JjQnNCY0KAKK9CI0J7QmtCY0Isg0KbQktCY0IjQldCi0JjQnQor0IjQntCa0JjQiyDQlNCQ0J3QlQor0IjQntCa0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQntCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QmtCY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JrQmNCLINCU0KDQkNCT0JDQnQor0IjQntCa0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQntCa0JjQiyDQlNCg0JDQk9CY0IrQkAor0IjQntCa0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQmNCT0IrQkNCiCivQiNCe0JrQmNCLINCI0JXQm9CV0J3QkAor0IjQntCa0JjQiyDQiNCe0JrQkAor0IjQntCa0JjQiyDQmtCg0KHQotCQ0J0KK9CI0J7QmtCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0J7QmtCY0Isg0JvQkNCa0JjQiwor0IjQntCa0JjQiyDQm9CQ0JfQngor0IjQntCa0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QmtCY0Isg0InQo9CR0JjQptCQCivQiNCe0JrQmNCLINCJ0KPQkdCeCivQiNCe0JrQmNCLINCb0KPQmtCQCivQiNCe0JrQmNCLINCc0JDQoNCQCivQiNCe0JrQmNCLINCc0JDQoNCY0IjQkAor0IjQntCa0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JrQmNCLINCc0JjQpdCQ0IjQm9CeCivQiNCe0JrQmNCLINCc0JjQm9CQ0J0KK9CI0J7QmtCY0Isg0JzQmNCb0JDQnQor0IjQntCa0JjQiyDQnNCY0JvQkNCdCivQiNCe0JrQmNCLINCc0JjQm9CQ0J0KK9CI0J7QmtCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QmtCY0Isg0JzQmNCb0JXQktCQCivQiNCe0JrQmNCLINCc0JjQm9CY0IjQkAor0IjQntCa0JjQiyDQnNCY0JvQmNCh0JDQkgor0IjQntCa0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCa0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCa0JjQiyDQnNCY0KDQmtCeCivQiNCe0JrQmNCLINCc0JjQoNCa0J4KK9CI0J7QmtCY0Isg0JzQmNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KDQmtCeCivQiNCe0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QmtCY0Isg0J3QkNCU0JAKK9CI0J7QmtCY0Isg0J3QkNCU0JAKK9CI0J7QmtCY0Isg0J3QkNCU0JjQptCQCivQiNCe0JrQmNCLINCd0JXQndCQ0JQKK9CI0J7QmtCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JrQmNCLINCd0JjQmtCe0JvQkAor0IjQntCa0JjQiyDQn9CV0KLQkNCgCivQiNCe0JrQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0J7QmtCY0Isg0KDQkNCU0J7QmNCm0JAKK9CI0J7QmtCY0Isg0KDQmNCh0KLQkAor0IjQntCa0JjQiyDQodCQ0KjQkAor0IjQntCa0JjQiyDQodCY0JzQkAor0IjQntCa0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QmtCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JrQmNCLINCh0JvQkNCS0JrQngor0IjQntCa0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QmtCY0Isg0KHQndCV0JbQkNCd0JAKK9CI0J7QmtCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQntCa0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QmtCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCe0JrQmNCLINCS0JXQidCa0J4KK9CI0J7QmtCY0Isg0JLQldCg0JAKK9CI0J7QmtCY0Isg0JLQm9CQ0JTQngor0IjQntCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QmtCY0Isg0JLQo9CI0JDQlNCY0J0KK9CI0J7QmtCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CI0J7QmtCY0Isg0JLQo9Ca0J4KK9CI0J7QmtCY0Isg0JfQm9CQ0KLQkAor0IjQntCa0JjQiyDQl9Ce0KDQmtCQCivQiNCe0JrQnNCQ0J3QntCS0JjQiyDQodCQ0JLQldCi0JAKK9CI0J7QmtCe0JLQmNCLINCW0JjQktCa0J4KK9CI0J7QmtCe0JLQmNCLINCC0KPQoNCC0JjQndCQCivQiNCe0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CI0J7QmtCe0JLQmNCLLdCc0JjQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CI0J7QmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQiNCe0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JrQodCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CI0J7QmtCh0JjQiyDQk9Ce0IjQmtCeCivQiNCe0JrQodCY0JzQntCS0Isg0J3QldCR0J7QiNCo0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCW0JDQoNCa0J4KK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCU0JDQoNCa0J4KK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCU0KPQqNCa0J4KK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCT0J7Qm9Cj0JHQkNCd0JrQkAor0IjQntCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQodCQ0JIg0JTQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQndCQ0JTQkAor0IjQntCa0KHQmNCc0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQntCa0KHQmNCc0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCh0JjQndCY0KjQkAor0IjQntCa0KHQmNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JrQodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0JrQodCY0JzQntCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQiNCe0JrQodCY0JzQntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JrQodCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCe0JrQodCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQiNCe0JvQlNCY0Isg0JzQkNCg0JAKK9CI0J7Qm9CU0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCb0JjQiyDQltCY0JLQkNCdCivQiNCe0JvQmNCLINCW0JjQktCe0IjQmNCdCivQiNCe0JvQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CI0J7Qm9CY0Isg0JTQkNCd0JjQm9CeCivQiNCe0JvQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CI0J7Qm9CY0Isg0IjQntCS0JDQnQor0IjQntCb0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0IjQntCb0JjQiyDQmtCe0KHQotCQCivQiNCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JvQmNCLINCd0JXQkdCe0IjQqNCQCivQiNCe0JvQmNCLINCf0JXQotCQ0KAKK9CI0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCb0JjQiyDQo9Cg0J7QqAor0IjQntCb0JjQiyDQktCQ0KHQkAor0IjQntCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QndCn0JjQiyDQnNCQ0KDQkAor0IjQntCd0JDQqCDQlNCj0KjQkNCdCivQiNCe0J3QkNCoINCb0JDQodCb0J4KK9CI0J7QndCQ0Kgg0J3QmNCa0J7Qm9CQCivQiNCe0J3QmNCLINCR0J7QqNCa0J4KK9CI0J7QndCY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0IrQldCSINCc0JjQm9CY0JLQntCICivQiNCe0IrQldCSINCh0JvQkNCS0J7QidCj0JEKK9CI0J7QitCY0Isg0KHQkNCS0J4KK9CI0J7QndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QndCi0J7QktCY0Isg0JDQm9CV0JrQodCQCivQiNCe0J3QotCe0JLQmNCLLdCR0JjQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QndCi0J7QktCY0Isg0KDQo9CU0J7Qm9CkCivQiNCe0J3Qo9CX0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCg0JTQkNCnINCQ0J3QkAor0IjQntCg0JTQkNCdINCV0KDQltCV0JHQldCiCivQiNCe0KDQlNCQ0J3QntCSINCa0JjQoNCY0JsKK9CI0J7QoNCU0JDQndCe0JLQodCa0Jgg0KHQotCQ0J3QntCI0JrQngor0IjQntCg0JPQkNCd0J7QktCY0Isg0KHQmNCc0J4KK9CI0J7QoNCT0JjQiyDQltCY0JLQkNCd0JAKK9CI0J7QoNCT0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQiNCe0KDQk9Ce0JLQkNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCg0J7QktCY0Isg0KDQkNCd0JrQngor0IjQntCh0JXQktCh0JrQmCDQodCY0JzQldCe0J0KK9CI0J7QodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QodCY0Isg0KTQmNCb0JjQnwor0IjQntCh0JjQiyDQmNCb0JjQiNCQCivQiNCe0KHQmNCLINCY0JLQkNCdCivQiNCe0KHQmNCLINCa0J7QodCQ0J3QkAor0IjQntCh0JjQiyDQidCj0JHQmNCd0JrQngor0IjQntCh0JjQiyDQidCj0JHQmNCd0JrQngor0IjQntCh0JjQiyDQidCj0JHQntCc0JjQoAor0IjQntCh0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCh0JjQiyDQntCR0KDQkNCUCivQiNCe0KHQmNCLINCe0JvQk9CQCivQiNCe0KHQmNCLINCg0JDQlNCY0J3QmtCQCivQiNCe0KHQmNCLINCh0KDQgtCQCivQiNCe0KHQmNCLINCh0KLQldCS0JDQnQor0IjQntCh0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0KTQmNCU0JjQoSDQmtCe0KHQotCQCivQiNCe0KHQmNCk0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0KHQmNCk0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQiNCe0KHQmNCk0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0KHQmNCk0J7QktCY0Isg0J7Qm9CT0JAKK9CI0J7QodCY0JzQp9CV0JIg0JfQktCe0J3QmNCc0JjQoAor0IjQntCh0JjQnNCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQntCh0JjQnNCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0KHQmNCc0J7QkiDQlNCj0KjQkNCdCivQiNCe0KHQmNCc0J7QkiDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CI0J7QodCY0JzQntCSINCI0JXQm9CV0J3QkAor0IjQntCh0JjQnNCe0JIg0KHQotCV0JLQkNCdCivQiNCe0KHQmNCc0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQiNCe0KHQmNCc0J7QkiDQktCe0IjQngor0IjQntCh0JjQnNCe0JLQmNCLINCW0JjQktCQCivQiNCe0KHQmNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CI0J7QodCY0JzQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0IjQntCh0JjQnNCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CI0J7QodCY0JzQntCS0JjQiyDQnNCQ0KDQmtCeCivQiNCe0KHQmNCc0J7QktCY0Isg0JzQmNCb0JjQptCQCivQiNCe0KHQmNCc0J7QktCY0Isg0J3QldCd0JDQlAor0IjQntCh0JjQnNCe0JLQmNCLINCh0JjQndCY0KjQkAor0IjQntCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JrQkAor0IjQntCh0JjQnNCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQiNCe0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCh0JjQnNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0KHQmNCc0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQiNCe0KHQmNCc0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCh0JjQnSDQlNCg0JDQk9CQ0J0KK9CI0J7QodCY0J0g0JzQkNCg0JjQiNCQCivQiNCe0KHQmNCdINCc0JjQm9CVCivQiNCe0KHQmNCdINCg0JDQlNCY0KbQkAor0IjQntCh0JjQnSDQoNCQ0JTQntCS0JDQnQor0IjQntCh0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQiNCe0KHQmNCf0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0IjQntCh0JjQn9Ce0JLQmNCLINCR0J7QoNCeCivQiNCe0KHQmNCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQiNCe0KHQmNCf0J7QktCY0Isg0JjQktCY0KbQkAor0IjQntCh0JjQn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QodCY0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0KHQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCi0JDQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQiNCe0KLQkNCd0J7QktCY0Isg0JrQntCg0J3QldCb0JjQiNCQCivQiNCe0KLQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QotCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCi0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQiNCe0KLQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCi0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0IjQntCi0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0J7QotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0KfQmNCLINCU0KPQqNCa0J4KK9CI0J7QktCn0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QktCn0JjQiyDQktCb0JDQlNCQ0J0KK9CI0J7QktCQ0KfQldCS0JjQiyDQlNCc0JjQotCQ0KAKK9CI0J7QktCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0KfQldCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0IjQntCS0JDQndCn0JXQktCY0Isg0JPQntCI0JrQngor0IjQntCS0JDQndCn0JXQktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCn0JXQktCY0Isg0IjQldCb0JjQptCQCivQiNCe0JLQkNCd0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0KfQldCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0IjQntCS0JDQndCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JLQkNCd0KfQldCS0JjQiy3Ql9CV0JrQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JDQndCn0JXQktCY0Ist0JfQldCa0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3Qp9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3Qp9CY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQntCS0JDQndCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0KbQkNCYINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCU0JjQiyDQnNCQ0J3QlNCQCivQiNCe0JLQkNCd0JTQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QlNCY0J0g0JzQmNCb0JDQnQor0IjQntCS0JDQndCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCY0Isg0ILQo9Cg0J4KK9CI0J7QktCQ0J3QmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QmNCLINCU0J7QkdCg0JjQptCQCivQiNCe0JLQkNCd0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQiNCe0JLQkNCd0JjQiyDQnNCY0KDQmtCeCivQiNCe0JLQkNCd0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QktCQ0J3QmNCLINCc0J7QnNCY0KAKK9CI0J7QktCQ0J3QmNCLINCe0JvQmNCS0JXQoNCQCivQiNCe0JLQkNCd0JjQiyDQntCb0JjQktCV0KDQkAor0IjQntCS0JDQndCa0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JIg0JbQkNCg0JrQngor0IjQntCS0JDQndCe0JIg0JbQmNCS0JAKK9CI0J7QktCQ0J3QntCSINCR0JjQidCQ0J3QkAor0IjQntCS0JDQndCe0JIg0JHQntCo0JrQngor0IjQntCS0JDQndCe0JIg0JHQntCI0JDQndCQCivQiNCe0JLQkNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCSINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3QntCSINCU0KDQkNCT0JjQitCQCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQiNCe0JLQkNCd0J7QkiDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QkiDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QkiDQlNCj0KjQmNCm0JAKK9CI0J7QktCQ0J3QntCSINCY0JPQitCQ0KIKK9CI0J7QktCQ0J3QntCSINCY0KHQkAor0IjQntCS0JDQndCe0JIg0JjQktCQ0J0KK9CI0J7QktCQ0J3QntCSINCI0JDQqNCQCivQiNCe0JLQkNCd0J7QkiDQiNCQ0KHQndCQCivQiNCe0JLQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCSINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCSINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCSINCI0J7QktCY0KbQkAor0IjQntCS0JDQndCe0JIg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JIg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JIg0JzQldCb0JDQndCY0IjQkAor0IjQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9CI0J7QktCQ0J3QntCSINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCSINCc0JjQoNCI0JDQndCQCivQiNCe0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CI0J7QktCQ0J3QntCSINCc0J7QnNCn0JjQm9CeCivQiNCe0JLQkNCd0J7QkiDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0IjQntCS0JDQndCe0JIg0KHQkNCS0JAKK9CI0J7QktCQ0J3QntCSINCh0J/QntCc0JXQndCa0JAKK9CI0J7QktCQ0J3QntCSINCh0KLQldCS0JDQndCa0JAKK9CI0J7QktCQ0J3QntCSINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCQ0J3QntCSINCi0J7QlNCe0KAKK9CI0J7QktCQ0J3QntCSINCi0J7QnNCQCivQiNCe0JLQkNCd0J7QkiDQktCY0JTQkAor0IjQntCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KfQldCU0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQkNCU0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQldCd0ILQmAor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0ILQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkCDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCe0JXQpgor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQkNCd0ILQldCbCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQoNCh0JAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQodCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLLdCQ0KDQodCY0Isg0JLQmNCe0JvQldCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiy3QkdCQ0J3QmtCe0JLQkNCn0JrQmCDQiNCe0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoCDQn9Cg0J7QpNCV0KHQntCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0JbQngor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCR0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkiDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQptCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KbQktCV0KLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQkNCb0JjQkdCe0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCQ0JvQmNCR0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0JLQntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCe0JXQpgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdINCU0KAg0J/QoNCe0KQKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JXQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCV0JzQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQldCh0JzQkAor0IjQntCS0JDQndCe0JLQmNCLINCV0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQpNCV0JvQmNCm0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KTQmNCb0JjQnwor0IjQntCS0JDQndCe0JLQmNCLINCT0JXQntCg0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCT0KDQntCX0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCT0KDQo9CI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Cg0KPQiNCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCg0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0g0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkCDQlNCgINCf0KDQntCkCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0JDQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JDQodCc0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JLQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQo9Cb0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCe0KHQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCe0KHQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0IjQntCS0JDQndCe0JLQmNCLLdCa0J7QodCi0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAg0JzQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCb0KPQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQm9CY0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQkNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0IjQkNCiCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCo0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnSDQkNCU0JLQntCa0JDQogor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QotCY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCLCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCJ0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JrQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCK0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQm9CQ0ILQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCc0JDQitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCc0JDQitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCd0JDQlCDQkNCU0JLQntCa0JDQogor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQktCV0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCe0JLQkNCaCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7QodCi0J7QiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7QodCi0J7QiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7QodCi0J7QiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQntCS0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KDQngor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQoNCeCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkyDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCd0ILQldCbCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQotCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JDQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0JLQldCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0JLQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JDQktCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCV0KDQkNCk0JjQnAor0IjQntCS0JDQndCe0JLQmNCLINCh0JjQnNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQmNCc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCY0JzQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQnNCY0InQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JzQmNCJ0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCc0JjQidCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCc0JjQidCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCf0JjQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0KDQgtCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0KjQkAor0IjQntCS0JDQndCe0JLQmNCLLdCh0KLQntCI0JDQnSDQk9CV0KDQotCg0KPQlNCQINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KPQl9CQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCV0J7QlNCe0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCe0JTQntCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCi0KDQkNCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCi0KPQk9Ce0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KPQoNCe0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0IkKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCn0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQntCJ0KPQkQor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCY0JTQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCb0JzQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQo9Cn0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9CU0JXQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCh0JrQkCDQptCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCh0JrQkCDQotCQ0KHQmtCQCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0JDQoAor0IjQntCS0JDQndCe0JLQodCa0Jgg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQodCa0Jgg0JzQmNCb0JUKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCd0JjQmtCe0JvQkAor0IjQntCS0JDQndCe0JLQodCa0Jgg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQodCa0Jgg0KHQmNCc0JXQntCd0JAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCh0KLQntCI0JDQlNCY0J0KK9CI0J7QktCV0KAg0JzQmNCl0JDQiQor0IjQntCS0JXQotCY0Isg0JDQndCU0KDQmNCI0JAKK9CI0J7QktCV0KLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JXQotCY0Isg0JHQoNCQ0J3QmtCeCivQiNCe0JLQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCV0KLQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JXQotCY0Isg0JLQldCh0JXQm9CY0J0KK9CI0J7QktCY0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CI0J7QktCY0KfQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQmNCn0JjQiyDQltCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQltCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQltCV0InQmtCeCivQiNCe0JLQmNCn0JjQiyDQltCY0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQmNCn0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQmNCn0JjQiyDQgtCj0KDQkAor0IjQntCS0JjQp9CY0Isg0JDQndCa0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQmNCn0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0J7QktCY0KfQmNCLINCR0J7QoNCQCivQiNCe0JLQmNCn0JjQiyDQkdCg0JDQndCVCivQiNCe0JLQmNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0IjQntCS0JjQp9CY0Isg0JHQoNCQ0J3QmtCQCivQiNCe0JLQmNCn0JjQiyDQlNCV0IjQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCY0KfQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KPQqNCa0J4KK9CI0J7QktCY0KfQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CI0J7QktCY0KfQmNCLINCl0JXQm9CV0J3QkAor0IjQntCS0JjQp9CY0Isg0JjQm9CY0IjQkAor0IjQntCS0JjQp9CY0Isg0JjQm9CY0IjQkAor0IjQntCS0JjQp9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QktCY0KfQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCY0KfQmNCLINCI0J7QktCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JrQkNCi0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQm9CQ0JfQkNCgCivQiNCe0JLQmNCn0JjQiyDQm9CV0J/QntCh0JDQktCQCivQiNCe0JLQmNCn0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCY0KfQmNCLINCJ0JjQidCQ0J3QkAor0IjQntCS0JjQp9CY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCJ0KPQkdCY0J3QmtCQCivQiNCe0JLQmNCn0JjQiyDQidCj0JHQntCc0JjQoAor0IjQntCS0JjQp9CY0Isg0JzQkNCa0KHQmNCcCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQkAor0IjQntCS0JjQp9CY0Isg0JzQkNCg0JjQiNCQCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCY0KfQmNCLINCc0JDQoNCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JDQoNCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JDQoNCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JDQoNCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JjQm9CQ0JTQmNCdCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQntCc0JjQoAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QktCY0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQmNCn0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QktCY0KfQmNCLINCe0JHQoNCQ0JQKK9CI0J7QktCY0KfQmNCLINCe0JvQk9CQCivQiNCe0JLQmNCn0JjQiyDQn9CQ0IjQkAor0IjQntCS0JjQp9CY0Isg0J/QldCi0JDQoAor0IjQntCS0JjQp9CY0Isg0KDQkNCU0JAKK9CI0J7QktCY0KfQmNCLINCg0JDQlNCVCivQiNCe0JLQmNCn0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQiNCe0JLQmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JLQmNCn0JjQiyDQoNCQ0JTQntCc0JjQoAor0IjQntCS0JjQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCY0KfQmNCLINCg0JDQotCa0J4KK9CI0J7QktCY0KfQmNCLINCh0JDQktCV0KLQkAor0IjQntCS0JjQp9CY0Isg0KHQmNCc0J4KK9CI0J7QktCY0KfQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CI0J7QktCY0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCY0KfQmNCLINCh0KDQldCi0JXQnQor0IjQntCS0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQmNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CI0J7QktCY0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCY0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCY0KfQmNCLINCi0JDQndCQ0KHQmNCI0JUKK9CI0J7QktCY0KfQmNCLINCi0JDQotCI0JDQndCQCivQiNCe0JLQmNCn0JjQiyDQotCe0JTQntCgCivQiNCe0JLQmNCn0JjQiyDQo9Cg0J7QqAor0IjQntCS0JjQp9CY0Isg0JLQkNCh0JAKK9CI0J7QktCY0KfQmNCLINCS0JXQoNCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JLQntCI0JjQnQor0IjQntCS0JjQp9CY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JjQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QktCY0KfQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCY0KfQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQmNCn0JjQnSDQkNCd0JjQptCQCivQiNCe0JLQmNCn0JjQnSDQmtCQ0KLQmNCm0JAKK9CI0J7QktCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQp9CY0J0g0InQo9CR0JjQptCQCivQiNCe0JLQmNCn0JjQnSDQnNCY0JvQntCS0JDQnQor0IjQntCS0JjQp9CY0J0g0KHQm9CQ0JLQmtCeCivQiNCe0JLQmNCn0JjQnSDQodCe0KTQmNCI0JAKK9CI0J7QktCY0KfQmNCdINCi0J7QqNCQCivQiNCe0JLQmNCo0JXQktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCo0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QktCY0KjQmNCLINCW0JDQoNCa0J4KK9CI0J7QktCY0KjQmNCLINCC0KPQoNCeCivQiNCe0JLQmNCo0JjQiyDQkdCe0KDQngor0IjQntCS0JjQqNCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JjQqNCY0Isg0IjQntCS0JDQnQor0IjQntCS0JjQqNCY0Isg0JzQmNCi0JDQoAor0IjQntCS0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCo0JjQiyDQn9CQ0JLQm9CVCivQiNCe0JLQmNCo0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQntCS0JjQqNCY0Isg0KHQmNCc0J4KK9CI0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CI0J7QktCY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQiyDQltCQ0KDQmtCeCivQiNCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQiNCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCY0Isg0JDQndCY0KbQkAor0IjQntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQmNCLINCR0J7QkdCQ0J0KK9CI0J7QktCY0Isg0JHQntCg0JAKK9CI0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JjQiyDQptCS0JXQotCQCivQiNCe0JLQmNCLINCU0JDQktCY0JQKK9CI0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQiNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCY0Isg0JXQoNCY0JrQkAor0IjQntCS0JjQiyDQk9Ce0IjQmtCeCivQiNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQmNCLINCY0JLQkNCd0JAKK9CI0J7QktCY0Isg0JjQktCQ0J0KK9CI0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkCDQlNCgCivQiNCe0JLQmNCLINCI0JDQodCd0JAKK9CI0J7QktCY0Isg0IjQntCm0J4KK9CI0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CI0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQmNCLINCI0J7QktCeCivQiNCe0JLQmNCLINCa0J7QodCi0JAKK9CI0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0J7QktCY0Isg0InQo9CR0JjQqNCQCivQiNCe0JLQmNCLINCc0JDQoNCY0KbQkAor0IjQntCS0JjQiyDQnNCQ0KDQmNCI0JDQnQor0IjQntCS0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCLINCc0JXQm9CY0KLQkAor0IjQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQiNCe0JLQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9CI0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0J7QktCY0Isg0JzQmNCg0JAKK9CI0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCY0Isg0JzQmNCi0JDQoAor0IjQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCY0Isg0J/QkNCI0JjQptCQCivQiNCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQiNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JjQiyDQoNCQ0JTQlQor0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCS0JjQiyDQodCQ0JLQngor0IjQntCS0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9CI0J7QktCY0Isg0KHQotCQ0J3QkAor0IjQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0IjQntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQmNCLINCS0JDQodCQCivQiNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQiNCe0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQiNCe0JLQmNCLINCS0JXQidCa0J4KK9CI0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CI0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0IjQntCS0JjQi9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JLQmNCL0JXQktCY0Isg0JzQmNCb0JAKK9CI0J7QktCY0IvQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQntCS0JjQi9CV0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QktCY0IvQldCS0JjQiyDQodCi0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQmNCL0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0IjQntCS0JjQi9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCY0J0g0JbQmNCS0JAKK9CI0J7QktCY0J0g0JDQndCC0JXQm9Ca0JAKK9CI0J7QktCY0J0g0JHQntCg0JjQktCe0IgKK9CI0J7QktCY0J0g0JHQoNCQ0J3QmtCeCivQiNCe0JLQmNCdINCU0KDQkNCT0JDQnQor0IjQntCS0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQiNCe0JLQmNCdINCU0KPQqNCQ0J0KK9CI0J7QktCY0J0g0JTQo9Co0JDQnQor0IjQntCS0JjQnSDQmNCS0JDQnQor0IjQntCS0JjQnSDQiNCV0JvQldCd0JAKK9CI0J7QktCY0J0g0InQo9CR0JjQptCQCivQiNCe0JLQmNCdINCc0JjQm9CQ0J0KK9CI0J7QktCY0J0g0JzQmNCb0JjQktCe0Igg0JTQoAor0IjQntCS0JjQnSDQnNCY0JvQntCoCivQiNCe0JLQmNCdINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QktCY0J0g0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCY0J0g0KHQmNCc0JAKK9CI0J7QktCY0J0g0KHQm9CQ0JLQmtCeINCU0KAKK9CI0J7QktCY0J0g0KHQktCV0KLQm9CQ0J3QkAor0IjQntCS0JjQnSDQktCV0KHQndCQCivQiNCe0JLQmNCdINCX0JvQkNCi0J7QiNCVCivQiNCe0JLQmNCdINCX0KPQodCa0JAKK9CI0J7QktCY0J3QntCSINCR0J7Qk9CU0JDQnQor0IjQntCS0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0IjQntCS0J7QktCY0Isg0JbQldCJ0JrQngor0IjQntCS0J7QktCY0Isg0JDQndCa0JAKK9CI0J7QktCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JLQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQntCS0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QktCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0JLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0J7QktCY0Isg0KDQkNCU0JUKK9CI0J7QktCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JLQntCS0JjQiyDQoNCQ0IjQmtCeCivQiNCe0JLQntCS0JjQiyDQodCi0JDQndCQCivQiNCe0JLQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7Ql9CQ0J3QntCSINCU0JDQndCY0KbQkAor0IjQntCX0JDQndCe0JIg0JzQmNCb0JDQnQor0IjQntCX0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCX0JDQndCe0JIg0JfQntCg0JDQnQor0IjQntCX0JXQpNCn0JDQmiDQmNCS0JDQnQor0IjQntCX0JjQiyDQiNCe0JfQkAor0IjQntCX0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQiNCe0JfQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JfQmNCLINCc0JjQoNCa0J4KK9CI0J7Ql9CY0Isg0J/QldCI0J4KK9CI0KPQqNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0IjQo9Co0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0KPQkNCd0JjQnSDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0KPQkNCd0JjQnSDQiNCe0JLQkNCdCivQiNCj0JPQmNCdINCc0JjQm9CV0J3QkAor0IjQo9CT0J7QktCY0Isg0ILQo9Cg0JDQggor0IjQo9CT0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0IjQo9CT0J7QktCY0Isg0JzQmNCb0JUKK9CI0KPQk9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9CI0KPQk9Ce0JLQmNCLINCS0JXQodCV0JvQmNCdCivQiNCj0JPQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQo9Cl0JDQoSDQgtCV0KDQggor0IjQo9Cl0JDQoSDQkNCd0JTQoNCQ0KgKK9CI0KPQpdCQ0KEg0JDQndCU0KDQkNCoCivQiNCj0KXQkNChINCQ0J3QotCQ0JsKK9CI0KPQpdCQ0KEg0JTQldCX0JUKK9CI0KPQpdCQ0KEg0JXQoNCd0JUKK9CI0KPQpdCQ0KEg0JXQktCQCivQiNCj0KXQkNChINCk0JXQoNCV0J3Qpgor0IjQo9Cl0JDQoSDQpNCV0KDQldCd0KYKK9CI0KPQpdCQ0KEg0JPQldCX0JAg0JTQoCDQn9Cg0J7QpNCV0KHQntCgCivQiNCj0KXQkNChINCT0JjQl9CV0JvQkAor0IjQo9Cl0JDQoSDQmNCS0JDQndCa0JAKK9CI0KPQpdCQ0KEg0IjQkNCd0J7QqAor0IjQo9Cl0JDQoSDQiNCQ0J3QntCoCivQiNCj0KXQkNChINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCj0KXQkNChINCa0JDQotCQ0KDQmNCd0JAKK9CI0KPQpdCQ0KEt0JrQntCh0KLQmNCLINCC0JXQoNCC0JgKK9CI0KPQpdCQ0KEg0JvQkNCU0JjQodCb0JDQkgor0IjQo9Cl0JDQoSDQnNCQ0KDQmNCI0JAKK9CI0KPQpdCQ0KEg0JzQmNCl0JDQiQor0IjQo9Cl0JDQoSDQnNCY0KXQkNCJCivQiNCj0KXQkNChINCc0JjQiNCeCivQiNCj0KXQkNChINCc0JjQoNCe0J0KK9CI0KPQpdCQ0KEg0KHQotCV0JLQkNCdCivQiNCj0KXQkNChINCh0KLQldCS0JDQnQor0IjQo9Cl0JDQoSDQodCi0JXQktCQ0J0KK9CI0KPQpdCQ0KEg0KHQotCV0JLQkNCdCivQiNCj0KXQkNChINCi0JjQkdCe0KAg0JTQmNCf0Jsg0JjQndCTCivQiNCj0KXQkNChINCi0JjQkdCe0KAKK9CI0KPQpdCQ0KEg0JLQkNCb0JXQoNCY0IjQkAor0IjQo9Cl0JDQoSDQktCY0JrQotCe0KDQmNCI0JAKK9CI0KPQpdCQ0KEg0JLQm9CQ0JTQmNCh0JvQkNCSCivQiNCj0JrQmNCLINCR0JDQndCVCivQiNCj0JrQmNCLINCk0KDQkNCK0JAKK9CI0KPQmtCY0Isg0KTQoNCQ0IrQngor0IjQo9Ca0JjQiyDQmNCS0JjQptCQCivQiNCj0JrQmNCLINCI0J7QodCY0J8KK9CI0KPQmtCY0Isg0JvQo9Ca0JAKK9CI0KPQmtCY0Isg0JzQkNCg0JrQngor0IjQo9Ca0JjQiyDQndCQ0JTQkAor0IjQo9Ca0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CI0KPQmtCe0JLQmNCLINCg0JDQodCY0JwKK9CI0KPQm9CY0J3QkNCmINCU0KDQkNCT0JjQitCQCivQiNCj0J3QkyDQgtCV0KDQggor0IjQo9Cd0JMg0KTQoNCQ0J3QptCY0KjQmtCQCivQiNCj0J3QkyDQmNCR0J7QidCa0JAKK9CI0KPQndCTINCY0JvQlNCY0JrQngor0IjQo9Cd0JMg0JjQktCY0KbQkAor0IjQo9Cd0JMg0IjQntCh0JjQnwor0IjQo9Cd0JMg0IjQntCS0JDQnQor0IjQo9Cd0JMg0JrQkNCg0J7QiSDQnNCgCivQiNCj0J3QkyDQnNCQ0KDQmNCI0JAKK9CI0KPQndCTINCg0J7QkdCV0KDQogor0IjQo9Cd0JMg0KDQntCR0JXQoNCiCivQiNCj0J3QkyDQktCV0KDQmNCm0JAKK9CI0KPQndCj0JfQntCS0JjQiyDQmNCh0JzQldCiCivQiNCj0J/QldCaINCX0JTQldCd0JrQkAor0IjQo9Cg0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQiNCj0KDQp9CY0Isg0JbQldCJ0JrQngor0IjQo9Cg0KfQmNCLINCU0JXQodCQ0J3QmtCQCivQiNCj0KDQqNCY0Isg0KbQktCV0KLQkAor0IjQo9Cg0JDQk9CQINCc0JDQoNCa0J4KK9CI0KPQoNCQ0JPQkCDQnNCY0JvQntCg0JDQlAor0IjQo9Cg0JDQmtCY0Isg0JPQntCg0JDQnQor0IjQo9Cg0JDQmtCY0Isg0JjQm9CY0IjQkAor0IjQo9Cg0JDQmtCY0Isg0JjQktCQ0J0KK9CI0KPQoNCQ0JrQmNCLINCI0JXQm9CQCivQiNCj0KDQkNCa0JjQiyDQiNCe0JfQngor0IjQo9Cg0JDQmtCY0Isg0J/QldCI0J4KK9CI0KPQoNCQ0JrQmNCLINCh0KLQmNCf0J4KK9CI0KPQoNCQ0IrQmCDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCQ0KEg0JDQndCY0KbQkAor0IjQo9Cg0JDQoSDQkNCd0KLQlQor0IjQo9Cg0JDQodCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0KPQoNCm0JAg0JbQldCJ0JrQngor0IjQo9Cg0KbQkCDQgtCe0KDQgtCVCivQiNCj0KDQptCQINCY0JLQkNCdCivQiNCj0KDQptCQINCb0JDQoNCY0KHQkAor0IjQo9Cg0JXQqNCV0JIg0J/QldCi0JDQoAor0IjQo9Cg0JXQqNCY0Isg0IjQntCX0J4KK9CI0KPQoNCV0KjQmNCLINCS0JXQoNCQCivQiNCj0KDQmNCo0JXQktCY0Isg0JDQndCa0JAKK9CI0KPQoNCY0KjQldCS0JjQiyDQnNCQ0KDQkAor0IjQo9Cg0JjQqNCV0JLQmNCLINCc0JjQoNCa0J4KK9CI0KPQoNCY0KjQmNCLINCC0J7QoNCC0JUKK9CI0KPQoNCY0KjQmNCLINCC0KPQoNCQCivQiNCj0KDQmNCo0JjQiyDQkNCb0J7QiNCXCivQiNCj0KDQmNCo0JjQiyDQkNCd0JTQoNCY0IjQkAor0IjQo9Cg0JjQqNCY0Isg0JHQntCT0J7QidCj0JEKK9CI0KPQoNCY0KjQmNCLINCU0KDQkNCT0JDQnQor0IjQo9Cg0JjQqNCY0Isg0KTQoNCQ0IrQkAor0IjQo9Cg0JjQqNCY0Isg0JPQntCh0J/QkNCS0JAKK9CI0KPQoNCY0KjQmNCLINCY0JPQitCQ0KIKK9CI0KPQoNCY0KjQmNCLINCY0JvQmNCd0JrQkAor0IjQo9Cg0JjQqNCY0Isg0JjQktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCI0JXQm9CV0J3QkAor0IjQo9Cg0JjQqNCY0Isg0IjQntCS0JDQnQor0IjQo9Cg0JjQqNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0IjQo9Cg0JjQqNCY0Isg0InQo9CR0JjQptCQCivQiNCj0KDQmNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCj0KDQmNCo0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQo9Cg0JjQqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0KPQoNCY0KjQmNCLINCd0JXQlNCV0InQmtCQCivQiNCj0KDQmNCo0JjQiyDQndCV0J3QkNCUCivQiNCj0KDQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CI0KPQoNCY0KjQmNCLINCe0JvQk9CQCivQiNCj0KDQmNCo0JjQiyDQntCh0KLQntCI0JAKK9CI0KPQoNCY0KjQmNCLINCf0JXQotCQ0KAKK9CI0KPQoNCY0KjQmNCLINCf0JXQotCQ0KAKK9CI0KPQoNCY0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCj0KDQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCh0KLQldCS0JDQnQor0IjQo9Cg0JjQqNCY0Isg0JLQm9CQ0KLQmtCeCivQiNCj0KDQmNCo0JjQiyDQl9Ce0KDQmtCQCivQiNCj0KDQmNCo0JjQnSDQltCQ0KDQmtCeCivQiNCj0KDQmNCo0JjQnSDQltCY0JLQkAor0IjQo9Cg0JjQqNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCj0KDQmNCo0JjQnSDQlNCg0JDQk9Ce0InQo9CRCivQiNCj0KDQmNCo0JjQnSDQidCY0InQkNCd0JAKK9CI0KPQoNCY0KjQmNCdINCc0JjQm9CY0J3QkAor0IjQo9Cg0JjQqNCY0J0g0JzQmNCb0J7QqAor0IjQo9Cg0JjQqNCY0J0g0J3QkNCi0JDQm9CY0IjQkAor0IjQo9Cg0JjQqNCY0J0g0KDQkNCh0KLQmtCeINCU0JjQn9CbINCY0J3Qkwor0IjQo9Cg0JjQqNCY0J0g0KHQm9CQ0JLQmtCeCivQiNCj0KDQmNCo0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQiNCj0KDQmNCLINCW0JjQktCQ0JTQmNCd0JrQkAor0IjQo9Cg0JjQiyDQkNCd0JAKK9CI0KPQoNCY0Isg0JDQktCT0KPQodCiCivQiNCj0KDQmNCLINCR0J7QodCY0InQmtCeCivQiNCj0KDQmNCLINCm0JLQmNCI0J4KK9CI0KPQoNCY0Isg0KTQmNCb0JjQnwor0IjQo9Cg0JjQiyDQmNCb0JjQiNCQCivQiNCj0KDQmNCLINCY0JLQkNCdCivQiNCj0KDQmNCLINCI0JXQm9Ca0JAKK9CI0KPQoNCY0Isg0JzQkNCg0JjQiNCQCivQiNCj0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQo9Cg0JjQiyDQnNCQ0KDQmtCeCivQiNCj0KDQmNCLINCc0JDQoNCa0J4KK9CI0KPQoNCY0Isg0JzQmNCb0J7QqAor0IjQo9Cg0JjQiyDQn9CQ0KPQm9CY0J3QkAor0IjQo9Cg0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmNCLINCh0J7QpNCY0IjQkAor0IjQo9Cg0JjQkdCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0IjQo9Cg0JjQkdCQ0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0KPQoNCY0KYg0JjQktCQ0J0KK9CI0KPQoNCY0KYg0IjQntCh0JjQnwor0IjQo9Cg0JjQpiDQodCi0IjQldCf0JDQnQor0IjQo9Cg0JjQptCQINCQ0J3QkAor0IjQo9Cg0JjQptCQINCU0JDQm9CY0JHQntCgCivQiNCj0KDQmNCm0JAg0IjQkNCdCivQiNCj0KDQmNCaINCo0JDQndCU0J7QoAor0IjQo9Cg0JjQmiDQlNCj0KjQkNCdCivQiNCj0KDQmNCaINCI0J7QodCY0J8KK9CI0KPQoNCY0Jog0IjQntCh0JjQnwor0IjQo9Cg0JjQmiDQiNCe0JLQkNCdCivQiNCj0KDQmNCaINCc0JDQoNCY0IjQkAor0IjQo9Cg0JjQmiDQnNCY0KXQkNCbCivQiNCj0KDQmNCaINCc0JjQm9Ca0JAKK9CI0KPQoNCY0Jog0J/QkNCS0JvQlQor0IjQo9Cg0JjQmiDQodCi0JXQktCQ0J0KK9CI0KPQoNCY0KHQotCe0JLQodCa0Jgg0JPQldCe0KDQkyDQlNCY0J/QmyDQmNCd0JMKK9CI0KPQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCj0KDQiNCV0JLQmNCLINCI0JDQodCc0JjQndCQCivQiNCj0KDQmtCY0Isg0JDQndCi0KPQnQor0IjQo9Cg0JrQmNCLINCQ0KPQk9Cj0KHQotCY0J0KK9CI0KPQoNCa0JjQiyDQnNCQ0KDQmtCeCivQiNCj0KDQmtCe0JLQmNCLINCQ0J3QkAor0IjQo9Cg0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CI0KPQoNCa0J7QktCY0Isg0JHQntCW0JjQptCQCivQiNCj0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQo9Cg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCj0KDQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CI0KPQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQo9Cg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmtCe0JLQmNCLINCX0JvQkNCi0JrQngor0IjQo9Cg0JrQntCS0JjQiyDQl9CS0J7QndCa0J4KK9CI0KPQoNCa0J7QktCh0JrQmCDQodCi0JXQktCQ0J0KK9CI0KPQoNCb0JjQndCQINCQ0J3QotCj0J0KK9CI0KPQoNCb0JjQndCQINCc0JDQoNCa0J4g0JTQoAor0IjQo9Cg0JvQmNCd0JAg0J/QkNCS0JvQlQor0IjQo9Cg0KPQmtCe0JLQodCa0Jgg0JPQntCh0J/QkNCS0JAKK9CI0KPQoNCj0JrQntCS0KHQmtCYINCb0JXQktCa0J4KK9CI0KPQoNCj0JrQntCS0KHQmtCYINCc0JjQm9Ce0JLQkNCd0JrQkAor0IjQo9Ch0KLQmNCdINCm0JjQoNCY0JsKK9CI0KPQodCi0JjQnSDQlNCQ0J3QmNCm0JAKK9CI0KPQodCj0KTQmCDQkdCV0KDQl9CQ0KIKK9CI0KPQodCj0KTQntCS0JjQiyDQkNCc0JjQoAor0IjQo9CS0JDQnSDQpNCQ0J3QmNCa0JAKK9Ca0IvQmNCa0KMg0ILQkNCS0JjQlAor0JrQi9CY0JrQoyDQoNCQ0KXQmNCcCivQmtCQ0KfQkNCaINCY0JvQntCd0JAKK9Ca0JDQp9CQ0J/QntCgINCh0JXQpNCV0JTQmNCdCivQmtCQ0KfQkNCgINCn0JXQlNCe0JzQmNCgCivQmtCQ0KfQkNCgINCC0KPQoNCeCivQmtCQ0KfQkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0JrQkNCn0JDQoCDQlNCj0KjQkNCd0JrQkAor0JrQkNCn0JDQoCDQodCb0JDQktCa0J4KK9Ca0JDQp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCn0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KfQkNCgINCi0JDQlNCY0IjQkAor0JrQkNCn0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQp9CQ0JLQldCd0JTQkCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQkNCn0JDQktCV0J3QlNCQINCb0JDQl9CeCivQmtCQ0KfQkNCS0JXQndCU0JAg0JzQmNCb0JDQnQor0JrQkNCn0JDQktCV0J3QlNCQINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KfQkNCS0JXQndCU0JAg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KfQkNCS0JXQndCU0JAg0KLQkNCi0IjQkNCd0JAKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQotCQ0KLQiNCQ0J3QkAor0JrQkNCn0JDQktCV0J3QlNCQINCS0JXQoNCQCivQmtCQ0KfQnNCQ0KDQp9CY0Jog0KjQotCV0KTQkNCdCivQmtCQ0KfQnNCQ0KDQp9CY0Jog0IjQldCb0JXQndCQCivQmtCQ0KjQkCDQotCY0JHQntCgCivQmtCQ0KjQkNCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCQ0KjQkNCd0JjQnSDQnNCY0JvQldCi0JAKK9Ca0JDQqNCQ0J3QmNCdINCc0JjQoNCQCivQmtCQ0KjQkNCd0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQkNCo0JDQndCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQkNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCo0JjQiyDQiNCe0JLQkNCdINCU0KAKK9Ca0JDQqNCY0Isg0JzQkNCg0JjQiNCQCivQmtCQ0KjQmNCLINCc0JjQm9CY0JLQntCICivQmtCQ0KjQmNCLINCc0JvQkNCU0JXQnQor0JrQkNCo0JjQiyDQoNCV0JLQldCa0JAKK9Ca0JDQqNCY0Isg0JLQldCg0JAKK9Ca0JDQqNCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQmtCQ0KjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JDQqNCY0Jog0JjQktCQ0J0KK9Ca0JDQqNCY0JrQntCS0JjQiyDQgtCe0KDQgtCeCivQmtCQ0KjQmNCa0J7QktCY0Isg0JHQntCo0JrQngor0JrQkNCo0JjQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9Ca0JDQqNCY0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQkNCo0JjQmtCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JrQkNCo0JjQmtCe0JLQmNCLINCS0JvQkNCU0J4KK9Ca0JDQqNCb0JjQmiDQmNCc0KDQlQor0JrQkNCo0JvQmNCaINCc0JDQotCY0IjQkAor0JrQkNCo0J7QktCh0JrQmCDQiNCQ0J3QmtCeCivQmtCQ0KjQntCS0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQkNCL0JDQndCh0JrQmCDQltCQ0KDQmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Ca0JDQi9CQ0J3QodCa0Jgg0JbQmNCS0JrQngor0JrQkNCL0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQmtCQ0IvQkNCd0KHQmtCYINCR0J7QiNCQ0J3QkAor0JrQkNCL0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JDQi9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCU0KPQqNCQ0J3QmtCQCivQmtCQ0IvQkNCd0KHQmtCYINCU0KPQqNCQ0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0InQo9CR0JjQptCQCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9CY0JLQntCICivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9CY0JLQntCICivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9Ca0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQi9CQ0J3QodCa0Jgg0JzQmNCb0KPQotCY0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQktCQCivQmtCQ0IvQkNCd0KHQmtCYINCc0JvQkNCU0JXQnQor0JrQkNCL0JDQndCh0JrQmCDQn9CQ0JLQm9CVINCU0KAg0JvQldCa0JDQoAor0JrQkNCL0JDQndCh0JrQmCDQn9Cb0JDQotCe0J0g0JTQoAor0JrQkNCL0JDQndCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0JrQkNCL0JDQndCh0JrQmCDQodCY0JzQkAor0JrQkNCL0JDQndCh0JrQmCDQodCb0JDQktCa0J4KK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQnNCY0InQkAor0JrQkNCL0JDQndCh0JrQmCDQodCe0KTQmNCI0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0IvQkNCd0KHQmtCYINCi0J7QlNCe0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JLQldCb0JjQndCa0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JLQldCg0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoCDQktCV0KLQldCg0JjQndCQ0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ca0JDQi9CY0JDQmiDQnNCY0KXQkNCI0JvQngor0JrQkNCL0KPQoNCY0J0g0JbQmNCS0JDQnQor0JrQkNCL0KPQoNCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JrQkNCL0KPQoNCY0J0g0JzQmNCb0JDQndCQCivQmtCQ0IvQo9Cg0JjQnSDQnNCY0JvQkNCdCivQmtCQ0IvQo9Cg0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQmtCQ0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQkdCQINCh0KPQm9CV0IjQnNCQ0J0KK9Ca0JDQkdCY0Isg0JDQndCQCivQmtCQ0JHQmNCLINCR0J7Qk9CU0JDQnQor0JrQkNCR0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0JDQkdCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0JDQkdCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQkNCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0JHQmNCLINCi0JjQnNCe0KjQldCd0JrQngor0JrQkNCR0JjQidCeINCU0KDQkNCT0JjQptCQCivQmtCQ0JHQmNCJ0J4g0IjQntCh0JjQnwor0JrQkNCR0JjQidCeINCh0JjQm9CS0JjQngor0JrQkNCR0J7QmiDQldCg0JjQmtCQCivQmtCQ0JHQntCaINCI0J7QltCV0KQKK9Ca0JDQptCQ0KDQntCoINCa0J7QodCi0JDQoQor0JrQkNCU0JDQqCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0JrQkNCU0JDQoCDQiNCj0JvQmNCI0JDQndCQCivQmtCQ0JTQmNCLINCY0JvQmNCI0JAKK9Ca0JDQlNCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Ca0JDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCQ0JTQmNCLINCh0JDQktCQCivQmtCQ0JTQmNCI0JAg0JLQntCI0JjQodCb0JDQkgor0JrQkNCU0JjQktCd0JjQmiDQnNCY0J7QlNCg0JDQkwor0JrQkNCU0JvQldCn0JjQmiDQmtCQ0KLQmNCm0JAKK9Ca0JDQlNCg0JjQiNCQINCk0JXQktCX0JjQiNCQCivQmtCQ0JTQoNCY0IjQkCDQpdCQ0JHQmNCJCivQmtCQ0JTQoNCY0IjQkCDQpdCQ0KHQkNCkCivQmtCQ0JTQoNCY0IjQkCDQpdCj0KDQnNCV0KIKK9Ca0JDQlNCS0JDQiiDQiNCQ0J3QntCoCivQmtCQ0JTQktCQ0Iog0IjQntCS0JDQnQor0JrQkNCU0JLQkNCKINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0JDQlNCS0JDQiiDQm9CQ0IjQntCoCivQmtCQ0KXQoNCY0JzQkNCdINCf0JXQotCQ0KAKK9Ca0JDQpdCg0JjQnNCQ0J0g0KHQndCV0JbQkNCd0JAKK9Ca0JDQpdCg0JjQnNCQ0J0g0KHQndCV0JbQkNCd0JAKK9Ca0JDQpdCg0JjQnNCQ0J0g0KHQndCV0JbQkNCd0JAKK9Ca0JDQmNCLINCY0JLQkNCdCivQmtCQ0JjQiyDQmtCQ0KLQkNCb0JjQnSDQlNCgCivQmtCQ0JjQiyDQn9CV0KLQkNCgCivQmtCQ0JjQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQmtCQ0JjQotCe0JLQmNCLINCI0JXQm9CQCivQmtCQ0IjQp9CY0Isg0InQmNCJ0JDQndCQCivQmtCQ0IjQp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0JDQiNCn0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQkNCI0JXQktCY0Isg0JbQkNCg0JrQngor0JrQkNCI0KTQldCoINCX0JLQntCd0JrQngor0JrQkNCI0JPQkNCd0JjQiyDQmNCb0JjQiNCQCivQmtCQ0IjQk9CQ0J3QmNCLINCJ0KPQkdCQ0J0KK9Ca0JDQiNCT0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQiNCT0JDQndCY0Isg0JLQldCg0J7QndCY0JrQkAor0JrQkNCI0JjQqCDQltCV0InQmtCeCivQmtCQ0IjQmNCoINCc0JjQm9CVCivQmtCQ0IjQmNCLINCW0JXQidCa0J4KK9Ca0JDQiNCY0Isg0J3QkNCU0JAKK9Ca0JDQiNCa0JDQoNCQINCR0J7Qk9CU0JDQnQor0JrQkNCI0JrQkNCg0JAg0JzQmNCb0JXQndCa0J4KK9Ca0JDQiNCa0JDQoNCQINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0JDQiNCe0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQiNCe0J0g0JDQndCQCivQmtCQ0IjQntCdINCJ0JjQidCQ0J3QkAor0JrQkNCI0J7QnSDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0IjQntCdINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQiNCi0JXQoSDQgtCj0KDQngor0JrQkNCI0KLQldCXINCU0KDQkNCT0JDQnQor0JrQkNCI0KLQldCXINCc0JjQoNCa0J4KK9Ca0JDQiNCi0JXQlyDQndCV0JTQldCJ0JrQngor0JrQkNCI0KLQldCXINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JDQiNCi0JXQlyDQotCg0JjQktCj0J0KK9Ca0JDQiNCi0JXQlyDQktCQ0JvQldCd0KLQmNCd0JAKK9Ca0JDQiNCX0JXQoCDQmtCQ0KDQm9CeCivQmtCQ0JrQkNCoINCU0JDQnNCY0KAKK9Ca0JDQmtCQ0Kgg0JjQm9CY0IjQkAor0JrQkNCa0JDQqCDQiNCe0JbQldCkCivQmtCQ0JrQkNCoINCI0J7QodCY0J8KK9Ca0JDQmtCQ0Kgg0JzQkNCg0JjQiNCQCivQmtCQ0JrQntCK0Jgg0JDQndCQCivQmtCQ0JrQo9Cn0JrQkCDQmNCo0KLQktCQ0J0KK9Ca0JDQmtCj0KfQmtCQINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCQ0JrQo9Cn0JrQkCDQodCi0JXQktCQ0J0KK9Ca0JDQm9Cn0J7QkiDQnNCY0KXQkNCJCivQmtCQ0JvQkCDQk9CV0JfQkAor0JrQkNCb0JDQp9CQ0IjQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0JDQm9CQ0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0JvQkNCR0JAg0JHQntCI0JDQnQor0JrQkNCb0JDQkdCQINCR0KDQkNCd0JrQngor0JrQkNCb0JDQkdCQINCU0KDQkNCT0JjQptCQCivQmtCQ0JvQkNCR0JAg0InQo9Cf0JrQngor0JrQkNCb0JDQkdCQINCb0KPQmtCQCivQmtCQ0JvQkNCR0JAg0JzQkNCg0JrQngor0JrQkNCb0JDQkdCQINCc0JvQkNCU0JXQnQor0JrQkNCb0JDQkdCQINCd0JjQmtCe0JvQkAor0JrQkNCb0JDQkdCQINCh0KLQldCS0JDQnQor0JrQkNCb0JDQkdCY0Isg0JTQkNCd0JUKK9Ca0JDQm9CQ0JHQmNCLINCh0KLQldCS0J4KK9Ca0JDQm9CQ0JHQoNCY0Isg0JHQoNCQ0J3QmtCeCivQmtCQ0JvQkNCR0KDQmNCLINCc0JjQpdCe0JLQmNCbCivQmtCQ0JvQkNCk0JDQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0JDQm9CQ0KTQkNCi0JjQiyDQndCV0JHQntCI0KjQkAor0JrQkNCb0JDQmCDQmtCQ0KDQntCJCivQmtCQ0JvQkNCI0I/QmNCLINCU0JDQoNCa0J4KK9Ca0JDQm9CQ0IjQj9CY0Isg0JvQo9Ca0JAKK9Ca0JDQm9CQ0IjQj9CY0Isg0JzQmNCl0JDQmNCb0J4KK9Ca0JDQm9CQ0IjQj9CY0Isg0JzQmNCb0JDQnQor0JrQkNCb0JDQnNCQ0J3QlNCQINCU0KDQkNCT0JDQnQor0JrQkNCb0JDQnNCQ0J3QlNCQINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQm9CQ0Iog0ILQo9Ca0JAKK9Ca0JDQm9CQ0Iog0JTQoNCQ0JPQmNCo0JAKK9Ca0JDQm9CQ0Iog0KTQldCc0JrQkAor0JrQkNCb0JDQiiDQodCi0JXQktCQ0J0KK9Ca0JDQm9CQ0IrQkCDQlNCj0KjQkNCd0JrQkAor0JrQkNCb0JDQitCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQm9CQ0IrQldCSINCX0J7QoNCQCivQmtCQ0JvQkNCK0J7QqCDQgtCj0KDQkAor0JrQkNCb0JDQitCe0Kgg0JDQndCQCivQmtCQ0JvQkNCK0J7QqCDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0JvQkNCK0J7QqCDQiNCQ0J3QntCoCivQmtCQ0JvQkNCK0J7QqCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCb0JDQitCe0Kgg0J/QldCi0JDQoAor0JrQkNCb0JDQitCe0Kgg0J/QldCi0JDQoAor0JrQkNCb0JDQitCe0Kgg0KDQo9CW0JAKK9Ca0JDQm9CQ0IrQntCoINCg0KPQltCQCivQmtCQ0JvQkNCK0KPQqCDQgtCj0KDQkAor0JrQkNCb0JDQitCj0Kgg0KTQoNCQ0IrQkAor0JrQkNCb0JDQn9CQ0Kgg0JXQktCY0KbQkAor0JrQkNCb0JDQn9CQ0KjQldCSINCU0JjQndCQCivQmtCQ0JvQkNCf0JDQqNCV0JIg0KHQmNCd0JjQqNCQCivQmtCQ0JvQkNCf0JDQotCYINCo0JDQoNCQCivQmtCQ0JvQkNCf0JDQotCYINCk0JXQoNCV0J3Qpgor0JrQkNCb0JDQn9CQ0KLQmCDQmNCS0JDQnQor0JrQkNCb0JDQn9CQ0KLQmCDQoNCj0JTQntCb0KQKK9Ca0JDQm9CQ0J/QmNCoINCg0KPQlNCYCivQmtCQ0JvQkNCf0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JDQm9CQ0KPQlyDQnNCQ0KDQmNCd0JrQngor0JrQkNCb0JDQo9CX0J7QkiDQnNCQ0KjQkAor0JrQkNCb0KYg0JzQmNCb0JXQndCa0JAKK9Ca0JDQm9CmINCc0JjQm9Ca0J4KK9Ca0JDQm9CmINCh0JvQkNCS0J7QiNCa0JAKK9Ca0JDQm9CV0JAg0IjQldCb0JXQndCQCivQmtCQ0JvQldCI0KHQmtCYINCX0JvQkNCi0J7QnNCY0KAKK9Ca0JDQm9CV0Jwg0JHQoNCQ0J3QmtCeCivQmtCQ0JvQldCcINCY0JLQkNCd0JrQkAor0JrQkNCb0JXQnCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCb0JXQnCDQndCV0JTQldCJ0JrQngor0JrQkNCb0JXQnCDQodCg0JXQotCV0J0KK9Ca0JDQm9CV0Jwg0KHQoNCV0KLQldCdCivQmtCQ0JvQldCc0JHQldCgINCR0J7QqNCa0J4KK9Ca0JDQm9CV0JzQkdCV0KAg0JzQmNCo0JAKK9Ca0JDQm9CV0JzQkdCV0KAg0JzQmNCb0JXQndCQCivQmtCQ0JvQldCc0JHQldCgINCc0JjQm9CY0JLQntCICivQmtCQ0JvQldCc0JHQldCgINCc0JjQoNCI0JDQndCQCivQmtCQ0JvQldCc0JHQldCgINCh0J7QpNCY0IjQkAor0JrQkNCb0JXQnNCR0JXQoCDQodCi0J7QiNCQ0JTQmNCdCivQmtCQ0JvQldCc0Jgg0KjQldCg0JjQpAor0JrQkNCb0JXQndCU0JXQoCDQmtCg0JjQodCi0JjQndCQCivQmtCQ0JvQldCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQm9CV0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0JvQldCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCQ0JvQldCK0KPQmiDQnNCY0KLQkNCgCivQmtCQ0JvQldCd0KLQmNCLINCR0J7QodCQCivQmtCQ0JvQldCd0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCQ0JvQldCX0JjQiyDQiNCV0JvQldCd0JAKK9Ca0JDQm9CV0JfQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCQ0JvQldCX0JjQiyDQntCb0JPQkAor0JrQkNCb0JXQl9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQkNCb0JjQp9CQ0J3QmNCdINCc0J7QnNCn0JjQm9CeCivQmtCQ0JvQmNCLINCU0KDQkNCT0JDQndCQCivQmtCQ0JvQmNCLINCI0J7QodCY0J8KK9Ca0JDQm9CY0Isg0IjQntCS0JDQndCa0JAKK9Ca0JDQm9CY0Isg0JzQmNCb0JXQndCQCivQmtCQ0JvQmNCLINCc0KPQodCi0JDQpNCQCivQmtCQ0JvQmNCLINCe0JvQk9CQCivQmtCQ0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCQ0JvQmNCLINCh0J7QpNCY0IjQkAor0JrQkNCb0JjQmiDQk9Cg0J7Ql9CU0JAKK9Ca0JDQm9CY0J0g0JXQlNCj0JDQoNCUCivQmtCQ0JvQmNCdINCc0JDQoNCY0IjQkNCdCivQmtCQ0JvQmNCd0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0JDQm9CY0J3QmNCLINCI0J7QktCeCivQmtCQ0JvQmNCd0JjQiyDQmtCg0KHQotCeCivQmtCQ0JvQmNCd0JjQiyDQnNCY0JvQkNCU0JjQnQor0JrQkNCb0JjQndCY0Isg0JzQmNCb0JjQptCQCivQmtCQ0JvQmNCd0JjQiyDQndCQ0JTQkAor0JrQkNCb0JjQndCh0JrQmCDQlNCQ0KDQmtCeCivQmtCQ0JvQmNCS0J7QlNCQINCg0KPQlNCe0JvQpAor0JrQkNCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQidCV0JLQmNCLINCa0KDQodCi0J4KK9Ca0JDQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQkNCb0JrQkNCdINCc0JjQm9CQ0J0KK9Ca0JDQm9Cc0JDQnSDQmtCb0JDQoNCQCivQmtCQ0JvQnNCQ0J0g0JzQmNCl0JDQiNCb0J4KK9Ca0JDQm9Cc0JDQnSDQnNCY0JrQm9Ce0KgKK9Ca0JDQm9Cc0JDQnSDQoNCQ0JTQmNCm0JAKK9Ca0JDQm9Cc0JDQoCDQgtCe0KDQgtCVCivQmtCQ0JvQnNCQ0KAg0ILQo9Cg0JAKK9Ca0JDQm9Cc0JDQoCDQkNCd0JAKK9Ca0JDQm9Cc0JDQoCDQpNCV0KDQldCd0KYKK9Ca0JDQm9Cc0JDQoCDQpNCg0JDQitCQCivQmtCQ0JvQnNCQ0KAg0JPQoNCT0KPQoAor0JrQkNCb0JzQkNCgINCY0KjQotCS0JDQnQor0JrQkNCb0JzQkNCgINCb0JDQiNCe0KgKK9Ca0JDQm9Cc0JDQoCDQnNCY0KDQmtCeCivQmtCQ0JvQnNCQ0KAt0JLQldCg0JXQqCDQk9CY0JfQldCb0JAKK9Ca0JDQm9Cc0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0JvQnNCQ0KDQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCb0J3QntCaINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQm9Ce0KfQkNCYINCo0JDQndCU0J7QoAor0JrQkNCb0J7Qp9CQ0Jgg0JjQqNCi0JLQkNCdCivQmtCQ0JvQntCn0JDQmCDQm9CV0J3QmtCVCivQmtCQ0JvQntCn0JDQmCDQn9CV0KLQkNCgCivQmtCQ0JvQntCn0JDQiNCYINCC0J7QoNCC0JUKK9Ca0JDQm9Ce0KfQkNCKINCk0JXQoNCV0J3Qpgor0JrQkNCb0J7QptCYINCY0JLQkNCdCivQmtCQ0JvQntCm0Jgg0JvQkNCU0JjQodCb0JDQkgor0JrQkNCb0J7QptCYINCi0JjQkdCe0KAKK9Ca0JDQm9Ce0KbQmCDQktCV0KHQldCb0JjQndCa0JAKK9Ca0JDQm9Ce0J/QldCgINCI0J7QktCQ0J3QmtCQCivQmtCQ0JvQntCf0JXQoCDQn9CV0KDQmNCm0JAKK9Ca0JDQm9Ce0JfQmCDQkNCg0JDQndCa0JAKK9Ca0JDQm9Ci0J3QldCa0JXQoCDQldCc0JjQm9CY0IjQkAor0JrQkNCb0KLQndCV0JrQldCgINCV0JzQmNCb0JjQiNCQCivQmtCQ0JvQo9Co0JXQkiDQk9Cb0JjQqNCQCivQmtCQ0JvQo9Co0JrQkCDQodCb0JDQktCa0J4KK9Ca0JDQm9Cj0JbQmNCLINCa0JDQotCY0KbQkAor0JrQkNCb0KPQltCY0Isg0J3QkNCU0JAKK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQkNCg0JrQngor0JrQkNCb0KPQgtCV0KDQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQmNCg0JjQiNCQ0J3QkAor0JrQkNCb0KPQgtCV0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0KPQoNCe0KgKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCC0J7QmtCQCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQgtCe0JrQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JDQk9Cd0JXQl9CQCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQkdCe0KDQmNChCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQk9CQ0JLQoNCQCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0KHQmNCd0JjQqNCQCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQodCi0J7QiNCQ0J0g0JTQoAor0JrQkNCb0KPQk9CV0KAg0J3QmNCa0J7Qm9CQCivQmtCQ0JvQo9CT0JXQoCDQl9Ce0KDQkNCdCivQmtCQ0JzQp9CV0KHQmtCQINCU0KDQkNCT0JjQptCQCivQmtCQ0JzQp9CV0KHQmtCYINCU0JjQnNCn0JUKK9Ca0JDQnNCn0JXQodCa0Jgg0KHQotCV0JLQkNCdCivQmtCQ0JzQp9CV0JLQmNCLINCQ0J3QkAor0JrQkNCc0KfQldCS0KHQmtCYINCh0JDQktCQCivQmtCQ0JzQkNCg0JjQoiDQl9Ce0KDQkNCdCivQmtCQ0JzQkNCh0Jgg0KTQldCg0JXQndCmCivQmtCQ0JzQkNCh0Jgg0KTQldCg0JXQndCmCivQmtCQ0JzQkNCh0Jgg0JjQnNCg0JUKK9Ca0JDQnNCQ0KHQmCDQiNCQ0J3QntCoCivQmtCQ0JzQkdCV0KDQmCDQlNCj0KjQkNCdCivQmtCQ0JzQkdCV0KDQmCDQnNCj0KHQkAor0JrQkNCc0JHQldCg0J7QktCY0Isg0JHQkNCi0J4KK9Ca0JDQnNCR0JXQoNCe0JLQmNCLINCh0JjQndCY0KjQkAor0JrQkNCc0JXQndCQ0KDQntCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ca0JDQnNCV0J3QkNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQkNCc0JXQndCQ0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0JDQnNCV0IrQmNCm0JrQmCDQiNCj0JvQmNCI0JDQnQor0JrQkNCc0JXQndCa0J4g0JzQmNCb0JDQnQor0JrQkNCc0JXQndCa0J4g0KDQkNCU0JUKK9Ca0JDQnNCV0J3QmtCeINCg0JDQlNCVCivQmtCQ0JzQldCd0JrQniDQktCV0KDQkAor0JrQkNCc0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0JDQnNCV0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCQ0JzQldCd0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQmtCQ0JzQldCd0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQkNCc0JXQndCa0J7QktCY0Isg0J7Qm9CT0JAKK9Ca0JDQnNCV0J3QntCSINCV0JzQmNCbINCU0KAKK9Ca0JDQnNCf0JXQmyDQmNCS0JDQnQor0JrQkNCc0J/QmNCLINCf0JDQktCb0JUKK9Ca0JDQnNCg0JAg0JjQktCQ0J0KK9Ca0JDQndCn0JDQoCDQldCg0JbQldCR0JXQogor0JrQkNCd0JDQp9Ca0Jgg0JbQkNCg0JrQngor0JrQkNCd0JDQp9Ca0Jgg0InQmNCJ0JDQndCQCivQmtCQ0J3QkNCn0JrQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ca0JDQndCQ0KfQmtCYINCh0KLQldCS0JDQnQor0JrQkNCd0JDQp9Ca0Jgg0JfQm9CQ0KLQkAor0JrQkNCd0JDQl9CY0KAg0JbQmNCS0JrQkAor0JrQkNCd0JDQl9CY0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQndCQ0JfQmNCgLdCR0JXQm9CY0Isg0JzQmNCb0JjQptCQCivQmtCQ0J3QkNCX0JjQoCDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0J3QkNCX0JjQoCDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0J3QkNCX0JjQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JDQndCQ0JfQmNCgINCm0JLQldCi0JAKK9Ca0JDQndCQ0JfQmNCgINCU0KDQkNCT0JjQptCQCivQmtCQ0J3QkNCX0JjQoCDQlNCg0JDQk9CY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JTQo9Co0JDQnQor0JrQkNCd0JDQl9CY0KAg0JjQktCQ0J3QmtCQCivQmtCQ0J3QkNCX0JjQoCDQiNCe0JLQkNCd0JrQkAor0JrQkNCd0JDQl9CY0KAg0IjQntCS0JDQnQor0JrQkNCd0JDQl9CY0KAg0JrQntCh0KLQkAor0JrQkNCd0JDQl9CY0KAg0JrQntCh0KLQkAor0JrQkNCd0JDQl9CY0KAg0JrQntCh0KLQkAor0JrQkNCd0JDQl9CY0KAg0JzQkNCg0JjQiNCQCivQmtCQ0J3QkNCX0JjQoCDQnNCY0JvQkNCdCivQmtCQ0J3QkNCX0JjQoCDQnNCY0JvQmNCm0JAKK9Ca0JDQndCQ0JfQmNCgINCc0JjQm9Ce0JLQkNCdCivQmtCQ0J3QkNCX0JjQoCDQoNCQ0JTQmNCS0J7QiAor0JrQkNCd0JDQl9CY0KAg0KHQm9CQ0JLQmtCeCivQmtCQ0J3QkNCX0JjQoCDQktCQ0KHQkAor0JrQkNCd0JDQl9CY0KAg0JLQldCg0JjQptCQINCU0KAKK9Ca0JDQndCQ0JfQmNCgINCS0KPQmtCY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JfQkNCl0JDQoNCY0IjQlQor0JrQkNCd0JHQkNCdINCc0JjQm9CY0KbQkAor0JrQkNCd0JTQmNCLINCd0JDQlNCQCivQmtCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0JDQndCU0JjQiyDQodCc0JjQidCQ0J3QkAor0JrQkNCd0JTQmNCLINCS0JjQlNCe0IjQlQor0JrQkNCd0JTQoNCQ0Kcg0ILQntCg0ILQlQor0JrQkNCd0JTQoNCQ0Kcg0JvQldCe0J3QkAor0JrQkNCd0JPQoNCT0JAg0JDQndCa0JAKK9Ca0JDQndCT0KDQk9CQINCa0J7QodCi0JAKK9Ca0JDQndCT0KDQk9CQINCg0KPQltCQCivQmtCQ0J3QmNCW0JDQmCDQldCS0JAKK9Ca0JDQitCQINCI0JDQnQor0JrQkNCK0JXQoNCY0Isg0JzQkNCi0JUKK9Ca0JDQitCeINCY0KjQotCS0JDQnQor0JrQkNCK0J4g0KHQotCI0JXQn9CQ0J0KK9Ca0JDQitCeINCX0J7Qm9Ci0JDQnQor0JrQkNCK0KPQpSDQiNCQ0JrQmNCcCivQmtCQ0IrQo9ClINCI0J7QkNCa0JjQnAor0JrQkNCK0KPQpSDQnNCQ0KDQmNCm0JAKK9Ca0JDQitCj0KUg0JzQmNCg0JAKK9Ca0JDQitCj0KUg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCK0KPQpSDQl9CS0J7QndCa0J4KK9Ca0JDQitCj0JrQkCDQmNCS0JDQnQor0JrQkNCK0KPQmtCQINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQndCa0JDQoNCQ0Kgg0KDQkNCU0J7QodCQ0JIKK9Ca0JDQndCa0JDQoNCQ0Kgg0JLQldCh0JXQm9CY0J0KK9Ca0JDQndCb0JjQiyDQnNCY0JvQkNCdCivQmtCQ0J3Qm9CY0Isg0JfQkNCg0JjQiNCQCivQmtCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVINCU0JjQn9CbINCY0J3Qkwor0JrQkNCd0KLQkNCgINCC0KPQoNCeCivQmtCQ0J3QotCQ0KAg0JTQnNCY0KLQkNCgCivQmtCQ0J3QotCQ0KAg0JrQkNCI0JAKK9Ca0JDQndCi0JDQoCDQnNCY0JvQkNCdCivQmtCQ0J3QotCQ0KAg0JzQmNCb0J7QqAor0JrQkNCd0KLQkNCgINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQndCi0JDQoCDQndCY0JrQntCb0JAKK9Ca0JDQndCi0JDQoCDQntCh0KLQntCI0JAKK9Ca0JDQndCi0JDQoCDQktCb0JDQlNCeCivQmtCQ0J3QotCQ0KDQj9CY0Isg0ILQntCg0ILQlQor0JrQkNCd0KLQkNCg0I/QmNCLINCT0J7QoNCU0JDQndCQCivQmtCQ0J3QotCQ0KDQj9CY0Isg0IjQldCb0JXQndCQCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JrQkNCi0JjQptCQCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JrQntCh0KLQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCb0JDQl9CQ0KAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQm9CQ0JfQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JjQm9CY0KbQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0JDQndCi0JDQoNCP0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JzQm9CQ0JTQldCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0J3QkNCU0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQntCb0JPQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCf0JXQotCQ0KAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQndCi0JDQoNCP0JjQiyDQktCQ0KHQkAor0JrQkNCd0KLQmNCd0JrQntCh0JrQmCDQpdCQ0J3Qowor0JrQkNCd0KLQntCgINCb0JDQiNCe0KgKK9Ca0JDQndCi0J7QoCDQntCh0JrQkNCgCivQmtCQ0J3Qo9Cg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCd0KPQoNCY0Isg0JzQmNCb0JjQptCQCivQmtCQ0J3Qo9Cg0JjQiyDQl9Ce0KDQmtCQCivQmtCQ0J3Qo9Cg0KHQmtCYINCI0J7QktCQ0J0KK9Ca0JDQndCj0KDQodCa0Jgg0JLQmNCU0J7QodCQ0JLQkAor0JrQkNCf0JDQnNCQ0I/QmNCI0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCR0J7QoNCY0KHQm9CQ0JIg0JTQoAor0JrQkNCf0JDQnNCQ0I/QmNCI0JAg0JTQo9Co0JDQndCa0JAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCg0JDQlNCc0JjQm9CQCivQmtCQ0J/QkNCc0JDQj9CY0J0g0IjQntCS0JDQnQor0JrQkNCf0JXQm9CQ0J0g0J3QmNCa0J7Qm9CQCivQmtCQ0J/QldChINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J/QldChINCX0JTQoNCQ0JLQmtCQCivQmtCQ0J/QldCi0JDQndCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQkNCf0JXQotCQ0J3QntCSINCc0JjQoNCI0JDQndCQCivQmtCQ0J/QldCi0JDQndCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0J/QldCi0JDQndCe0JIg0JLQo9Ca0JjQptCQCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0JDQn9CV0KLQkNCd0J7QktCY0Isg0JzQmNCU0KXQkNCiCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCe0JvQk9CQCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9Ca0JDQn9CV0KLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQmtCQ0J/QmNCn0JjQiyDQlNCj0KjQkNCdCivQmtCQ0J/QmNCn0JjQiyDQodCQ0JLQngor0JrQkNCf0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQmtCQ0J/QmNCm0Jsg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQkNCf0JjQotCQ0Iog0JvQkNCh0JvQngor0JrQkNCf0JvQkNCgINCW0JjQktCQ0J0KK9Ca0JDQn9Cb0JDQoCDQnNCQ0KDQmNCI0JAKK9Ca0JDQn9Cb0JDQoNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCQ0J/Qm9CQ0KDQodCa0Jgg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ca0JDQn9Cb0JDQoNCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0JDQn9Cb0JDQoNCh0JrQmCDQodCS0JXQotCb0JDQndCQCivQmtCQ0J/Qm9CY0IjQldCSINCf0JXQotCQ0KAKK9Ca0JDQn9Cc0JDQiNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQn9Ce0Kcg0JDQndCi0JDQmwor0JrQkNCf0J7QpyDQiNCj0JTQmNCiCivQmtCQ0J/QntCgINCQ0JPQndCV0KgKK9Ca0JDQn9Ce0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQn9Ce0KAg0JTQldCh0JDQndCa0JAKK9Ca0JDQn9Ce0KAg0JPQntCI0JrQngor0JrQkNCf0J7QoCDQmtCQ0KLQkNCg0JjQndCQCivQmtCQ0J/QntCgINCd0JDQlNCQCivQmtCQ0J/QntCgINCd0J7QktCY0KbQkAor0JrQkNCf0J7QoCDQodCi0JDQndCQCivQmtCQ0J/QntCh0KLQkCDQotCV0KDQldCX0JAKK9Ca0JDQn9Cg0JjQqCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCf0KPQiyDQmNCb0J7QndCQCivQmtCQ0KDQi9CQ0Kgg0JzQmNCb0JrQkAor0JrQkNCg0JDQpyDQnNCY0KDQmtCeCivQmtCQ0KDQkNCn0J7QitCYINCY0KjQotCS0JDQnQor0JrQkNCg0JDQiyDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCQ0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQiyDQlNCj0KjQkNCdCivQmtCQ0KDQkNCLINCY0JvQmNCI0JAKK9Ca0JDQoNCQ0Isg0IjQldCb0JjQptCQCivQmtCQ0KDQkNCLINCJ0KPQkdCe0JzQmNCgCivQmtCQ0KDQkNCLINCc0JDQoNCY0IjQkAor0JrQkNCg0JDQiyDQnNCY0JvQldCd0JrQngor0JrQkNCg0JDQiyDQoNCQ0JTQldCd0JrQngor0JrQkNCg0JDQiyDQoNCQ0IjQmtCeCivQmtCQ0KDQkNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQoNCQ0ILQldCd0J7QkiDQmNCS0JDQnQor0JrQkNCg0JDQgtCV0J3QntCSINCY0JLQkNCdCivQmtCQ0KDQkNCC0JXQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQoNCQ0ILQmNCd0J7QktCY0Isg0KjQn9CY0KDQngor0JrQkNCg0JDQgtCY0J3QntCS0JjQiyDQndCV0J3QkNCUCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0JDQoNCQ0ILQmNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0JDQoNCQ0ILQmNCd0J7QktCY0Isg0JfQntCg0JAKK9Ca0JDQoNCQ0JHQkCDQmNCg0JXQndCQINCU0KAg0JvQldCa0JDQoAor0JrQkNCg0JDQkdCQINCI0J7QktCQ0J0KK9Ca0JDQoNCQ0JHQkCDQntCb0JPQkAor0JrQkNCg0JDQkdCQ0Kgg0JzQmNCb0JjQktCe0IgKK9Ca0JDQoNCQ0JHQkNCoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQoNCQ0JHQkNCh0JjQmyDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCQ0JHQkNCh0JjQmyDQktCY0JTQntCc0JjQoAor0JrQkNCg0JDQkdCV0JPQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0JDQoNCQ0I/QmNCLINCo0KPQiNCeCivQmtCQ0KDQkNCP0JjQiyDQltCQ0KDQmtCeCivQmtCQ0KDQkNCP0JjQiyDQgtCe0KDQgtCVCivQmtCQ0KDQkNCP0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQmtCQ0KDQkNCP0JjQiyDQkNCS0KDQkNCcCivQmtCQ0KDQkNCP0JjQiyDQkdCe0JbQngor0JrQkNCg0JDQj9CY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQmtCQ0KDQkNCP0JjQiyDQiNCe0JLQkNCdCivQmtCQ0KDQkNCP0JjQiyDQiNCe0JLQkNCdCivQmtCQ0KDQkNCP0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQkNCg0JDQj9CY0Isg0JzQkNCg0JjQiNCQCivQmtCQ0KDQkNCP0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQkNCg0JDQj9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0JDQoNCQ0I/QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQoNCQ0I/QmNCLINCd0JXQndCQ0JQKK9Ca0JDQoNCQ0I/QmNCLINCg0JXQidCQCivQmtCQ0KDQkNCP0JjQiyDQoNCj0JbQkAor0JrQkNCg0JDQj9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0JDQoNCQ0I/QmNCLINCi0JLQoNCi0JrQngor0JrQkNCg0JDQj9CY0Isg0JLQldCg0JAKK9Ca0JDQoNCQ0I/QmNCLINCS0KPQmgor0JrQkNCg0JDQj9CY0Isg0JfQntCg0JDQnQor0JrQkNCg0JDQj9CY0Isg0JfQntCg0JDQnQor0JrQkNCg0JDQlNCQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KDQkNCU0JDQoNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0JDQoNCQ0JTQldCT0JvQmNCLINCa0J7QodCQCivQmtCQ0KDQkNCT0JAg0J3QmNCa0J7Qm9CQCivQmtCQ0KDQkNCT0JjQiy3Qm9CY0J/QmNCd0KHQmtCYINCY0JvQntCd0JAKK9Ca0JDQoNCQ0JjQptCQINCX0J7QoNCQ0J0KK9Ca0JDQoNCQ0IjQmtCe0JIg0JDQm9Ce0IjQl9CY0IjQlQor0JrQkNCg0JDQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0KDQkNCI0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQoNCQ0IjQm9Ce0JLQmNCLINCC0KPQoNCeCivQmtCQ0KDQkNCI0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ca0JDQoNCQ0JrQkNCoINCc0JjQoNCI0JDQndCQCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCV0JLQmNCm0JAKK9Ca0JDQoNCQ0JrQkNCo0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCX0J7QoNCQCivQmtCQ0KDQkNCc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JAKK9Ca0JDQoNCQ0JzQkNCi0JjQiyDQkNCd0KLQlQor0JrQkNCg0JDQnSDQltCV0InQmtCeCivQmtCQ0KDQkNCdINCU0KDQkNCT0JDQnQor0JrQkNCg0JDQnS3QmtCV0KDQnSDQkdCQ0KDQkdCQ0KDQkAor0JrQkNCg0JDQnSDQnNCY0JvQkNCdCivQmtCQ0KDQkNCdINCc0JjQm9CV0J3QmtCeCivQmtCQ0KDQkNCdINCc0JjQm9CY0J3QmtCeCivQmtCQ0KDQkNCdINCh0JDQktCeCivQmtCQ0KDQkNCdINCh0KDQgtCeCivQmtCQ0KDQkNCK0JDQpiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0JDQoNCQ0IrQkNCmINCJ0KPQkdCY0KbQkAor0JrQkNCg0JDQitCQ0KYg0JLQldCg0J7QidCj0JEKK9Ca0JDQoNCQ0J3QntCSINCW0JjQktCQ0J0KK9Ca0JDQoNCQ0J3QntCSINCR0KPQlNCY0JzQmtCQCivQmtCQ0KDQkNCd0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQmtCQ0KDQkNCd0J7QkiDQmtCj0JfQnNCQ0J0KK9Ca0JDQoNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ca0JDQoNCQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQmtCQ0KDQkNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0KDQkNCd0J7QkiDQodCe0KTQmNCI0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQmtCQ0KDQkNCd0J7QktCY0Isg0JHQntCW0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JPQoNCV0KLQkAor0JrQkNCg0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JrQkNCg0JDQndCe0JLQmNCLINCY0JLQmNCm0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0InQo9CR0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQn9CV0KDQngor0JrQkNCg0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQotCV0JLQngor0JrQkNCg0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQotCg0JjQktCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0JLQldCh0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0KDQkNCf0JDQndCW0JAg0JzQkNCg0JjQiNCQCivQmtCQ0KDQkNCf0JDQndCP0JAg0InQmNCJ0JDQndCQCivQmtCQ0KDQkNCf0JDQndCP0JAg0JLQmNCi0J7QnNCY0KAKK9Ca0JDQoNCQ0J/QkNCd0I/QmNCLINCC0KPQoNCQCivQmtCQ0KDQkNCf0JDQndCP0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQkNCg0JDQn9CQ0J3Qj9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQoNCQ0J/QkNCd0I/QmNCdINCR0JDQoNCR0JDQoNCQCivQmtCQ0KDQkNCf0JDQndCP0JjQnSDQl9Ce0KDQmtCQCivQmtCQ0KDQkNChINCa0JDQl9CY0JzQmNCgCivQmtCQ0KDQkNChINCc0JDQk9CU0JAKK9Ca0JDQoNCQ0KEg0J/QldCi0JDQoAor0JrQkNCg0JDQoSDQn9CV0KLQkNCgCivQmtCQ0KDQkNCh0JDQm9CY0KXQntCS0JjQiyDQodCc0JDQmNCbCivQmtCQ0KDQkNCh0JXQmiDQmtCQ0KDQntCJCivQmtCQ0KDQkNCh0JjQiCDQkdCe0KDQmNChCivQmtCQ0KDQkNCh0JjQiCDQiNCQ0KHQnNCY0J3QkAor0JrQkNCg0JDQodCY0Igg0JLQldCg0J7QndCY0JrQkAor0JrQkNCg0JDQotCYINCV0KPQk9CV0J0KK9Ca0JDQoNCQ0KLQo9CgINCI0JDQlNCg0JDQndCa0JAKK9Ca0JDQoNCQ0JLQm9CQINCa0JDQotCQ0KDQmNCd0JAKK9Ca0JDQoNCQ0JLQm9CQINCX0JvQkNCi0JrQngor0JrQkNCg0JDQktCb0JAg0JfQntCg0JjQptCQCivQmtCQ0KDQkdCQ0J0g0KDQo9CU0J7Qm9CkCivQmtCQ0KDQlNCQ0Kgg0J7QkdCg0JDQlAor0JrQkNCg0JTQkNCoINCe0JvQk9CQCivQmtCQ0KDQlNCQ0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JDQoNCU0JDQqNCV0JLQmNCLINCk0JjQiNCQCivQmtCQ0KDQlNCQ0KjQldCS0JjQiyDQpdCj0KHQndCY0IjQkAor0JrQkNCg0JTQntCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0KDQlNCe0Kgg0JXQoNCY0JrQkAor0JrQkNCg0JTQntCoINCY0JvQntCd0JAKK9Ca0JDQoNCU0J7QqCDQm9CQ0IjQntCoCivQmtCQ0KDQlNCe0Kgg0J/QkNCbCivQmtCQ0KDQlNCe0Kgg0JLQldCg0J7QndCY0JrQkAor0JrQkNCg0JTQntCSINCI0J7QodCY0J8KK9Ca0JDQoNCU0KPQnCDQgtCe0KDQgtCVCivQmtCQ0KDQk9CQ0KfQmNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCQ0KDQmNCo0JjQiyDQmNCS0JDQndCa0JAKK9Ca0JDQoNCY0KjQmNCaINCU0JDQndCVCivQmtCQ0KDQmNCo0JjQmiDQiNCe0JLQkNCd0JrQkAor0JrQkNCg0JjQqNCY0Jog0JzQmNCb0KPQotCY0J0KK9Ca0JDQoNCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0JDQoNCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0JDQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQkNCg0JjQiyDQodCQ0JLQkAor0JrQkNCg0JjQiyDQodCQ0JLQkAor0JrQkNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0JDQoNCY0JrQniDQiNCe0KHQmNCfCivQmtCQ0KDQmNCa0J4g0JzQkNCg0JjQiNCQCivQmtCQ0KDQmNCa0J4g0KLQldCg0JXQl9CQCivQmtCQ0KDQmNCd0JAg0JTQoNCQ0JPQmNCm0JAKK9Ca0JDQoNCY0KPQoSDQnNCQ0KDQmNCI0JAKK9Ca0JDQoNCY0KPQoSDQktCV0KDQkAor0JrQkNCg0JvQkNCoINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KDQm9CQ0JLQkNCg0JjQoSDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCb0JDQktCQ0KDQmNChINCY0JLQkNCdCivQmtCQ0KDQm9CQ0JLQkNCg0JjQoSDQndCQ0JTQkAor0JrQkNCg0JvQkNCS0JDQoNCY0KEg0KDQkNCU0JjQktCe0IgKK9Ca0JDQoNCb0JDQktCQ0KDQmNChLdCX0JXQmtCe0JLQmNCLINCc0JjQoNCV0JvQkAor0JrQkNCg0JvQmNCLINCI0JXQpNCi0JAKK9Ca0JDQoNCb0JjQiyDQm9CQ0JfQkNCgCivQmtCQ0KDQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0JDQoNCb0J4g0JLQkNCI0JTQkAor0JrQkNCg0JvQntCS0KfQldCmINCc0JjQoNCa0J4KK9Ca0JDQoNCb0J7QktCY0Isg0ILQldCg0IIKK9Ca0JDQoNCb0J7QktCY0Isg0JzQkNCg0JjQptCQCivQmtCQ0KDQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Ca0JDQoNCe0JvQmNCLINCc0JjQoNCa0J4KK9Ca0JDQoNCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQoNCe0InQmCDQiNCQ0J3QntCoCivQmtCQ0KDQntCJ0Jgg0JvQkNCh0JvQngor0JrQkNCg0J7QktCY0Isg0JPQm9CY0KjQkAor0JrQkNCg0J/QkNCi0Jgg0JvQkNCh0JvQngor0JrQkNCg0J/QntCK0JAg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQkNCg0J/QntCK0JAg0KHQmNCd0JjQqNCQCivQmtCQ0KDQotCQ0JMg0J3QkNCd0JTQntCgCivQmtCQ0KDQotCQ0Jgg0JvQkNCI0J7QqAor0JrQkNCg0KLQkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0KLQiNCVINCI0J7QktCQ0J0KK9Ca0JDQoNCS0JDQmiDQldCc0JAKK9Ca0JDQoNCS0JDQmiDQk9CV0JfQkAor0JrQkNCh0JAg0ILQldCg0IIKK9Ca0JDQodCQINCQ0J3QlNCg0JjQiNCQCivQmtCQ0KHQkCDQkNCd0KLQkNCbCivQmtCQ0KHQkCDQpNCg0JDQitCQCivQmtCQ0KHQkCDQmNCU0JAKK9Ca0JDQodCQINCY0JzQoNCVCivQmtCQ0KHQkCDQiNCV0JvQldCd0JAKK9Ca0JDQodCQINCc0JjQpdCQ0IkKK9Ca0JDQodCQINCg0KPQltCQCivQmtCQ0KHQkCDQoNCj0JbQkAor0JrQkNCh0JAg0JfQntCg0JrQkAor0JrQkNCh0JDQqCDQkNCb0JXQmtCh0JDQndCU0JDQoCDQnNCgCivQmtCQ0KHQkNCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0KHQkNCoINCY0JzQoNCVCivQmtCQ0KHQkNCoINCY0JzQoNCVCivQmtCQ0KHQkNCoINCY0JzQoNCVCivQmtCQ0KHQkNCoINCI0JDQndCe0KgKK9Ca0JDQodCQ0Kgg0IjQntCW0JXQpAor0JrQkNCh0JDQqCDQiNCe0KHQmNCfCivQmtCQ0KHQkNCoINCa0JDQoNCe0IkKK9Ca0JDQodCQ0Kgg0JrQkNCg0J7QiQor0JrQkNCh0JDQqCDQmtCQ0KDQntCJCivQmtCQ0KHQkNCoINCe0JvQk9CQCivQmtCQ0KHQkNCT0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0KHQkNCb0JjQptCQINCW0JDQoNCa0J4KK9Ca0JDQodCQ0JvQmNCm0JAg0JbQmNCS0JrQngor0JrQkNCh0JDQm9CY0KbQkCDQnNCY0JvQkNCdCivQmtCQ0KHQkNCb0JjQptCQINCh0KLQldCS0JDQndCY0IjQkAor0JrQkNCh0JDQnyDQldCg0JLQmNCdCivQmtCQ0KHQkNCf0J7QkiDQodCi0JXQktCQ0J0KK9Ca0JDQodCQ0J/QntCS0JjQiyDQnNCQ0KDQkAor0JrQkNCh0JDQn9Ce0JLQmNCLINCc0JXQpdCeCivQmtCQ0KHQkNCf0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Ca0JDQodCQ0J/QodCa0Jgg0JbQkNCg0JrQngor0JrQkNCh0JDQn9Ch0JrQmCDQiNCV0JvQmtCQCivQmtCQ0KHQkNCgINCh0JXQm9CY0JwKK9Ca0JDQodCY0Isg0JTQkNCd0JjQptCQCivQmtCQ0KHQndCV0KAg0JzQmNCI0J7QidCa0JAKK9Ca0JDQodCf0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCh0J/QldCgINCk0JXQoNCV0J3Qpgor0JrQkNCh0J/QldCgINCk0KDQkNCK0JAKK9Ca0JDQodCf0JXQoCDQm9CQ0JTQmNCh0JvQkNCSCivQmtCQ0KHQn9CV0KAg0KHQotCV0JLQkNCdCivQmtCQ0KHQotCV0JvQmCDQgtCj0KDQgtCY0J3QmtCQCivQmtCQ0KHQotCV0JvQmCDQnNCQ0KDQmtCeCivQmtCQ0KHQotCe0KDQmCDQoNCj0JTQntCb0KQKK9Ca0JDQodCi0KDQkNCi0Jgg0KTQkNCU0JjQmwor0JrQkNCh0KLQoNCQ0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCh0KLQoNCQ0KLQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCh0KLQoNCQ0KLQntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCQ0KHQotCg0JDQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0JDQotCQ0KjQmNCLINCf0JXQotCQ0KAKK9Ca0JDQotCQ0JvQldCd0JjQiyDQlNCj0KjQkNCdCivQmtCQ0KLQkNCb0JjQndCn0JXQkiDQltCY0JLQkNCdCivQmtCQ0KLQkNCd0JAg0JDQndCT0JXQm9CY0J3QkAor0JrQkNCi0JDQndCQINCd0JjQmtCe0JvQkAor0JrQkNCi0JDQndCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ca0JDQotCQ0J3QmNCLINCI0JXQptCQCivQmtCQ0KLQkNCd0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQkNCi0JDQndCY0Isg0InQo9CR0JjQptCQCivQmtCQ0KLQkNCd0JjQiyDQnNCQ0KDQkAor0JrQkNCi0JDQndCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0JDQotCQ0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQmtCQ0KLQkNCd0JjQiyDQodCQ0JLQkCDQlNCgCivQmtCQ0KLQkNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Ca0JDQotCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0JrQkNCi0JDQoNCY0J3Qp9CY0Isg0KbQldCb0JXQodCi0JjQnQor0JrQkNCi0JDQoNCY0JLQkNChINCV0JvQkAor0JrQkNCi0JDQoNCY0JLQkNChLdCd0JjQmtCe0JvQmNCLINCT0JjQl9CV0JvQkAor0JrQkNCi0JDQotCY0Isg0JjQm9Ce0J3QkAor0JrQkNCi0JDQktCQINCg0KPQlNCe0JvQpAor0JrQkNCi0JDQktCY0Isg0JTQkNCd0JjQm9Ca0JAKK9Ca0JDQotCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQkNCi0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0JDQotCY0Isg0JDQlNCQCivQmtCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQkNCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JrQkNCi0JjQiyDQlNCQ0KDQkAor0JrQkNCi0JjQiyDQlNCe0JHQoNCY0JvQkAor0JrQkNCi0JjQiyDQk9Ce0IjQmtCeCivQmtCQ0KLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQotCY0Isg0JjQm9CY0IjQkAor0JrQkNCi0JjQiyDQmNCS0JDQnQor0JrQkNCi0JjQiyDQiNCe0JLQkNCdCivQmtCQ0KLQmNCLINCI0J7QktCeCivQmtCQ0KLQmNCLINCa0J7QodCi0JAKK9Ca0JDQotCY0Isg0JrQoNCh0KLQkAor0JrQkNCi0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQkNCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0JDQotCY0Isg0InQo9CR0JjQndCa0J4KK9Ca0JDQotCY0Isg0JvQo9Ca0JAKK9Ca0JDQotCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQmtCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQkNCi0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQotCY0Isg0JzQmNCi0JAKK9Ca0JDQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0KLQmNCLINCd0J7QktCQ0JoKK9Ca0JDQotCY0Isg0J7QotCY0JvQmNCI0JAKK9Ca0JDQotCY0Isg0J/QkNCS0JvQlSDQlNCgCivQmtCQ0KLQmNCLINCg0JDQlNCY0JLQntCICivQmtCQ0KLQmNCLINCg0JDQotCa0J4KK9Ca0JDQotCY0Isg0KHQkNCS0J4KK9Ca0JDQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KLQmNCLINCh0J3QldCW0JDQndCQCivQmtCQ0KLQmNCLINCh0KDQldCi0JXQnQor0JrQkNCi0JjQiyDQodCi0JDQndCa0J4KK9Ca0JDQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0JDQotCY0Isg0JLQldCh0JXQm9CQCivQmtCQ0KLQmNCLINCS0JXQodCd0JAKK9Ca0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCi0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQmtCQ0KLQmNCd0KfQmNCLINCW0JXQm9CY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JrQkNCi0J3QmNCLINCh0JDQktCV0KLQkAor0JrQkNCi0J7QndCQINCY0JzQoNCVCivQmtCQ0KLQntCd0JAg0IjQntCW0JXQpAor0JrQkNCi0J7QndCQINCb0JDQiNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQmtCQ0KLQntCd0JAg0JvQkNCh0JvQngor0JrQkNCi0J7QndCQINCS0JjQndCm0JUKK9Ca0JDQo9Cg0JjQiyDQndCY0JrQntCb0JAKK9Ca0JDQo9Cg0JjQnSDQiNCj0KDQlQor0JrQkNCj0KDQmNCdINCa0KDQodCi0J4KK9Ca0JDQo9Cg0JjQnSDQm9CQ0JfQkNCgCivQmtCQ0KPQoNCY0J0g0JzQntCc0KfQmNCb0J4KK9Ca0JDQo9Cg0JjQnSDQndCV0JTQldCJ0JrQngor0JrQkNCj0KDQmNCdINCS0JDQodCeCivQmtCQ0KPQoNCY0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQkNCj0KDQmNCd0J7QktCY0Isg0KHQmNCc0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCQ0KPQotCV0J0g0IjQntCl0JDQnQor0JrQkNCS0KfQmNCLINCh0KLQldCS0JDQnQor0JrQkNCS0JDQiNCQINCb0KPQmtCQCivQmtCQ0JLQkNCI0JAg0J3QmNCa0J4KK9Ca0JDQktCQ0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0JDQktCV0KfQkNCdINCY0JLQkNCdINCU0KAKK9Ca0JDQktCV0KfQkNCdINCd0JjQmtCe0JvQkAor0JrQkNCS0JPQmNCLINCc0JjQntCU0KDQkNCTCivQmtCQ0JLQk9CY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0JLQk9CY0Isg0J/QldCi0JDQoAor0JrQkNCS0JPQmNCLINCf0JXQotCQ0KAKK9Ca0JDQktCT0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQktCg0JDQiNCQINCh0KLQldCS0JDQnQor0JrQkNCS0KDQkNCI0JAg0KHQktCV0KLQntCX0JDQoAor0JrQkNCS0KDQkNCdINCW0JXQidCa0J4KK9Ca0JDQl9CQ0KTQldCg0J7QktCY0Isg0KDQldCo0JDQlAor0JrQkNCX0JDQndCm0JXQkiDQiNCe0KHQmNCf0JAKK9Ca0JDQl9CYINCV0KDQndCVCivQmtCQ0JfQmCDQiNCe0JbQldCkCivQmtCQ0JfQmNCI0JAg0KHQnNCY0InQmtCQCivQmtCQ0JfQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQl9CY0JzQmNCg0J7QktCY0Isg0JDQndCQCivQmtCQ0JfQmNCc0JjQoNCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQmtCQ0JfQmNCc0JjQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCQ0JfQmNCc0JjQoNCe0JLQmNCLINCd0JXQodCi0J7QoAor0JrQldCn0JAg0JHQntCI0JDQndCQCivQmtCV0KfQkCDQlNCj0KjQkNCd0JrQkAor0JrQldCn0JAg0JjQm9CY0IjQkAor0JrQldCn0JAg0JzQmNCa0JDQnQor0JrQldCn0JAg0JzQmNCb0JDQnQor0JrQldCn0JAg0JzQmNCb0JDQnQor0JrQldCn0JAg0JzQmNCb0JDQnQor0JrQldCn0JAg0JzQmNCb0JXQndCa0J4KK9Ca0JXQp9CQINCc0JjQm9CV0JLQkAor0JrQldCn0JAg0J/QldCg0J4KK9Ca0JXQp9CQINCg0JDQndCa0J4KK9Ca0JXQp9CQINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQp9CQINCS0J7QiNCY0J0KK9Ca0JXQp9CY0Isg0JbQmNCS0JDQnQor0JrQldCn0JjQiyDQnNCY0JvQkNCdINCQ0JrQkNCU0JXQnNCh0JrQmCDQodCb0JjQmtCQ0KAKK9Ca0JXQp9Ca0JXQqCDQgtCV0KDQggor0JrQldCn0JrQldCoINCk0JXQoNCV0J3Qpgor0JrQldCn0JrQldCoINCI0J7QodCY0J8KK9Ca0JXQp9Ca0JXQnNCV0KLQmCDQmNCo0KLQktCQ0J0KK9Ca0JXQp9Ca0Jgg0KDQo9CW0JjQptCQCivQmtCV0KjQkNCd0KHQmtCYINCY0JLQmtCQCivQmtCV0KjQkNCd0KHQmtCYINCa0JDQotCY0KbQkAor0JrQldCo0JDQndCh0JrQmCDQoNCQ0JTQldCd0JrQngor0JrQldCo0JDQndCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0JrQldCo0JDQndCh0JrQmCDQoNCj0JbQmNCm0JAKK9Ca0JXQqNCQ0J3QodCa0Jgg0KHQmNCc0J4KK9Ca0JXQqNCQ0J3QodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCV0KjQldCJINCn0JXQlNCe0JzQmNCgCivQmtCV0KjQldCJINCV0JLQkAor0JrQldCo0JXQiSDQk9Ce0IjQmtCeCivQmtCV0KjQldCJINCI0J7QktCQ0J0KK9Ca0JXQqNCV0Ikg0KDQkNCU0JzQmNCb0JAKK9Ca0JXQqNCV0Ikg0KHQm9Ce0JHQntCU0JDQnQor0JrQldCo0JXQiSDQo9CT0InQldCo0JAKK9Ca0JXQqNCV0Ikg0JLQo9Ca0JDQqNCY0J0KK9Ca0JXQqNCa0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQmtCV0KjQnNCQ0KDQmtCYLdCa0KDQldCh0KLQkCDQiNCV0JvQldCd0JAKK9Ca0JXQltCY0Isg0JHQmNCJ0JDQndCQCivQmtCV0JbQmNCLINCU0KPQqNCQ0J0KK9Ca0JXQltCY0Isg0JrQkNCi0JjQptCQCivQmtCV0JbQmNCLINCc0JDQoNCI0JDQnQor0JrQldCW0JjQiyDQnNCY0JvQkNCdCivQmtCV0JbQmNCLINCd0JXQktCV0J3QmtCQCivQmtCV0JbQmNCLINCS0JvQkNCU0J4KK9Ca0JXQkdCY0J0g0JbQkNCg0JrQngor0JrQldCm0JXQm9CYINCc0JjQpdCQ0IkKK9Ca0JXQptCY0Isg0JTQkNCd0JjQm9CeINCU0KAKK9Ca0JXQptCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQldCm0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCV0KbQnNCQ0J0g0KfQldCU0JAKK9Ca0JXQptCc0JDQnSDQltCQ0KDQmtCeCivQmtCV0KbQnNCQ0J0g0ILQo9Cg0J4KK9Ca0JXQptCc0JDQnSDQgtCj0KDQngor0JrQldCm0JzQkNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0JXQptCc0JDQnSDQkdCg0JDQndCa0J4KK9Ca0JXQptCc0JDQnSDQlNCg0JDQk9CY0KbQkAor0JrQldCm0JzQkNCdINCU0KPQqNCQ0J0KK9Ca0JXQptCc0JDQnSDQmNCb0JjQiNCQCivQmtCV0KbQnNCQ0J0g0IjQntCS0JDQnQor0JrQldCm0JzQkNCdINCI0J7QktCQ0J0KK9Ca0JXQptCc0JDQnSDQiNCj0JvQmtCQCivQmtCV0KbQnNCQ0J0g0InQo9CR0JAKK9Ca0JXQptCc0JDQnSDQnNCQ0KDQkAor0JrQldCm0JzQkNCdINCc0JDQoNCa0J4KK9Ca0JXQptCc0JDQnSDQnNCY0JvQkNCU0JjQnQor0JrQldCm0JzQkNCdINCc0JjQm9CQ0J0KK9Ca0JXQptCc0JDQnSDQnNCY0JvQkNCdCivQmtCV0KbQnNCQ0J0g0JzQmNCb0JrQkAor0JrQldCm0JzQkNCdINCc0JjQm9Cj0KLQmNCdCivQmtCV0KbQnNCQ0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0JXQptCc0JDQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Ca0JXQptCc0JDQnSDQnNCb0JDQlNCV0J0KK9Ca0JXQptCc0JDQnSDQodCi0JXQktCQ0J0KK9Ca0JXQptCc0JDQnSDQodCS0JXQotCa0J4KK9Ca0JXQptCeINCn0JXQlNCe0JzQmNCgCivQmtCV0KbQniDQk9Ce0IjQmtCeCivQmtCV0KbQniDQiNCV0JvQldCd0JAKK9Ca0JXQptCeINCJ0KPQkdCe0JzQmNCgCivQmtCV0KbQniDQnNCQ0KDQmNCI0JAKK9Ca0JXQptCeINCc0JDQoNCY0IjQkAor0JrQldCm0J4g0JzQmNCg0IjQkNCd0JAKK9Ca0JXQptCeINCc0JjQotCQ0KAKK9Ca0JXQptCeINCc0J7QnNCY0KAKK9Ca0JXQptCeINCg0JDQlNCe0IjQlQor0JrQldCm0J4g0KDQkNCi0JrQngor0JrQldCm0J4g0KHQm9Ce0JHQntCU0JDQnQor0JrQldCm0J4g0KHQm9Ce0JHQntCU0JDQnQor0JrQldCP0JAg0JzQmNCb0J7QoNCQ0JQKK9Ca0JXQlNCY0Isg0JTQo9Co0JDQnQor0JrQldCU0JjQiyDQodCi0JDQndCa0J4KK9Ca0JXQlNCS0JXQqCDQldCS0JAKK9Ca0JXQpNCV0KAg0IjQkNCd0J7QqAor0JrQldCk0JXQoCDQiNCe0KHQmNCfCivQmtCV0JPQm9Ce0JLQmNCLINCS0JjQndCa0J4KK9Ca0JXQmiDQldCg0JbQldCR0JXQogor0JrQldCaINCV0JLQkAor0JrQldCa0JXQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCV0JrQldCKINCT0JjQl9CV0JvQkAor0JrQldCa0JXQlyDQlNCg0JDQk9CY0IrQkAor0JrQldCa0JjQiyDQgtCe0KDQgtCVCivQmtCV0JrQmNCLINCC0KPQoNCQCivQmtCV0JrQmNCLINCQ0JPQmNCm0JAKK9Ca0JXQmtCY0Isg0JTQkNCd0JjQptCQCivQmtCV0JrQmNCLINCU0KDQkNCT0JDQnQor0JrQldCa0JjQiyDQlNCj0KjQkNCdCivQmtCV0JrQmNCLINCT0J7QoNCU0JDQndCQCivQmtCV0JrQmNCLINCa0J7QodCe0JLQmtCQCivQmtCV0JrQmNCLINCc0JjQm9CQ0J0KK9Ca0JXQmtCY0Isg0JzQmNCb0JjQptCQCivQmtCV0JrQmNCLINCc0JjQoNCa0J4KK9Ca0JXQmtCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JrQldCa0JjQiyDQn9CV0KLQkNCgCivQmtCV0JrQmNCLINCh0JvQkNCS0JjQptCQCivQmtCV0JrQmNCLINCi0JXQntCU0J7QoAor0JrQldCa0JjQnSDQnNCQ0KDQmNCI0JAKK9Ca0JXQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0JXQmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Ca0JXQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCV0JvQkdCb0Jgg0JzQmNCl0JDQiNCb0J4KK9Ca0JXQm9CVINCI0J7QltCV0KQKK9Ca0JXQm9CVINCI0J7QltCV0KQKK9Ca0JXQm9CV0Kcg0JzQmNCb0J7QoNCQ0JQKK9Ca0JXQm9CV0Kcg0JzQmNCg0JrQngor0JrQldCb0JXQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQldCb0JXQp9CV0JLQmNCLINCd0JjQmtCY0KbQkAor0JrQldCb0JXQp9CY0Isg0JjQktCQ0J0KK9Ca0JXQm9CV0KfQmNCLINCI0J7QodCY0J8KK9Ca0JXQm9CV0JzQldCdINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQldCb0JXQnNCV0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JXQm9CV0JzQldCdINCQ0J3QkAor0JrQldCb0JXQnNCV0J0g0JPQkNCR0J7QoAor0JrQldCb0JXQnNCV0J0g0JjQnNCg0JUKK9Ca0JXQm9CV0JzQldCdINCI0J7QltCV0KQKK9Ca0JXQm9CV0JzQldCdINCI0J7QltCV0KQKK9Ca0JXQm9CV0JzQldCdINCb0JDQiNCe0KgKK9Ca0JXQm9CV0JzQldCdINCc0JDQi9CQ0KgKK9Ca0JXQm9CV0JzQldCdINCc0JDQoNCY0IjQkAor0JrQldCb0JXQnNCV0J0g0KLQmNCR0J7QoAor0JrQldCb0JXQoCDQiNCQ0J3QntCoCivQmtCV0JvQldCgINCI0JDQndCe0KgKK9Ca0JXQm9CV0KAg0J/QldCi0JDQoAor0JrQldCb0JXQoCDQoNCQ0JTQnNCY0JvQkAor0JrQldCb0JXQoCDQodCi0JXQktCQ0J0KK9Ca0JXQm9CV0KPQktCQINCU0KDQkNCT0J4KK9Ca0JXQm9CV0KPQktCQINCc0JjQpdCQ0IjQm9CeCivQmtCV0JvQmNCLINCh0KLQldCS0JDQndCa0JAKK9Ca0JXQm9CY0IjQkNCo0JXQktCY0Isg0JbQmNCS0JrQngor0JrQldCb0J3QldCgINCc0JDQoNCY0IjQkAor0JrQldCb0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ca0JXQnNCV0KYg0JDQndCU0KDQmNCI0JAKK9Ca0JXQnNCV0KYg0JzQmNCI0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCV0JzQldCd0KbQmCDQkdCV0JvQkAor0JrQldCc0JXQiiDQnNCY0KDQkAor0JrQldCc0JXQiiDQotCV0KDQldCX0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0JrQldCc0JjQktCV0Kgg0JPQldCe0KDQkwor0JrQldCd0ILQldCbINCh0KLQldCS0JjQptCQCivQmtCV0J3QptCV0Jsg0KHQnNCY0InQkAor0JrQldCd0JXQqNCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCV0J3QmNCTINCl0JXQndCU0KDQmNClCivQmtCV0J3QmNCTINCI0JXQmtCQCivQmtCV0J3QmNCTINCI0JXQm9CV0J3QkAor0JrQldCK0JDQm9CeINCh0KLQntCI0JDQnQor0JrQldCf0KfQmNCI0JAg0JjQm9CY0IjQkAor0JrQldCf0KfQmNCI0JAg0JzQmNCb0JUKK9Ca0JXQn9Cn0JjQiNCQINCi0J7QlNCe0KAKK9Ca0JXQn9CVLdCU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCb0JjQktCY0IjQkAor0JrQldCf0JUg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQldCf0JjQiyDQltCY0JLQkNCdCivQmtCV0KDQp9CV0JIg0JrQkNCg0JvQngor0JrQldCg0KfQoyDQnNCY0KDQiNCQ0J3QkAor0JrQldCg0KfQoyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JXQoNCo0J3QldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCV0KDQkNCmINCW0JDQoNCa0J4KK9Ca0JXQoNCQ0KYg0JbQkNCg0JrQngor0JrQldCg0JDQpiDQgtCj0KDQkAor0JrQldCg0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JXQoNCQ0KYg0JTQkNCd0JjQptCQCivQmtCV0KDQkNCmINCU0KPQqNCQ0J0KK9Ca0JXQoNCQ0KYg0JXQoNCW0JXQkdCV0KIKK9Ca0JXQoNCQ0KYg0JPQkNCS0KDQkAor0JrQldCg0JDQpiDQiNCe0JLQkNCdCivQmtCV0KDQkNCmINCI0J7QktCQ0J0KK9Ca0JXQoNCQ0KYg0JvQkNCX0JDQoAor0JrQldCg0JDQpiDQm9CQ0JfQkNCgCivQmtCV0KDQkNCmINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0JXQoNCQ0KYg0JzQmNCb0JjQktCe0IgKK9Ca0JXQoNCQ0KYg0JzQmNCb0J7QqAor0JrQldCg0JDQpiDQnNCY0KLQkAor0JrQldCg0JDQpiDQn9CQ0JLQm9CVCivQmtCV0KDQkNCmINCf0JDQktCb0JUKK9Ca0JXQoNCQ0KYg0J/QldCg0JAKK9Ca0JXQoNCQ0KYg0KHQmNCc0JAKK9Ca0JXQoNCQ0KYg0KHQntCK0JAKK9Ca0JXQoNCQ0KYg0KHQn9CQ0KHQkAor0JrQldCg0JDQpiDQodCi0JDQndCQCivQmtCV0KDQkNCmINCh0KLQkNCd0JjQodCb0JDQktCQCivQmtCV0KDQkNCmINCh0KLQldCS0JDQnQor0JrQldCg0JDQpiDQodCi0JXQktCQ0J0KK9Ca0JXQoNCQ0KYg0KLQntCU0J7QoAor0JrQldCg0JDQpiDQl9Cb0JDQotCa0J4KK9Ca0JXQoNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCV0KDQkNCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JrQldCg0JDQktCn0JjQnSDQnNCY0KLQkAor0JrQldCg0JDQktCn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQmtCV0KDQkNCS0JjQptCQINCU0JDQktCY0JQKK9Ca0JXQoNCQ0JLQmNCm0JAg0IjQntCS0JDQnQor0JrQldCg0JDQktCY0KbQkCDQidCj0JHQntCc0JjQoAor0JrQldCg0JDQktCY0KbQkCDQnNCY0JvQmNCS0J7QiAor0JrQldCg0JDQktCY0KbQkCDQnNCY0JvQntCoCivQmtCV0KDQkNCS0JjQptCQINCc0JjQm9Ce0KgKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCe0JTQoNCQ0JMKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCe0JTQoNCQ0JMKK9Ca0JXQoNCQ0JLQmNCm0JAg0J/QldCi0JDQoAor0JrQldCg0JDQktCY0KbQkCDQodCi0JXQktCQ0J0KK9Ca0JXQoNCQ0JLQmNCm0JAg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCV0KDQldCn0JrQmCDQkdCg0JDQndCa0J4KK9Ca0JXQoNCV0KfQmtCYINCU0KDQkNCT0J7QnNCY0KAKK9Ca0JXQoNCV0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JrQldCg0JXQqNCV0JLQmNCLINCY0JvQntCd0JAKK9Ca0JXQoNCV0KjQldCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQmtCV0KDQldCo0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQldCg0JXQqNCYINCS0JjQndCm0JUKK9Ca0JXQoNCV0JbQmCDQpNCV0KDQldCd0KYKK9Ca0JXQoNCV0KYg0JjQktCQ0J0KK9Ca0JXQoNCV0I/QmNCdINCc0JjQm9CQ0J0KK9Ca0JXQoNCV0I/QmNCdINCc0JjQoNCI0JDQndCQCivQmtCV0KDQldCP0JjQnSDQodCe0KTQmNCI0JAKK9Ca0JXQoNCV0JrQldCoINCY0KjQotCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0JXQoNCV0JrQldCoLdCc0JDQm9Ce0J3QmtCQINCV0KLQldCb0JrQkAor0JrQldCg0JXQndCV0KYg0InQmNCJ0JDQndCQCivQmtCV0KDQldCK0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JXQoNCV0KHQotCV0Kgg0IjQldCd0JUKK9Ca0JXQoNCV0KHQotCV0Kgg0InQo9CR0JjQptCQCivQmtCV0KDQldCh0KLQldCoINCc0JDQoNCT0JjQotCQCivQmtCV0KDQldCX0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0JXQoNCV0JfQntCS0JjQiyDQndCV0ILQngor0JrQldCg0Jgg0JTQldCd0JXQqAor0JrQldCg0Jgg0KTQoNCQ0IrQngor0JrQldCg0Jgg0IjQntCS0JDQnQor0JrQldCg0JjQiyDQodCQ0JLQkAor0JrQldCg0JrQldCXINCU0KDQkNCT0J4KK9Ca0JXQoNCa0JXQlyDQlNCj0KjQkNCd0JrQkAor0JrQldCg0JrQldCXINCU0KPQqNCQ0J0KK9Ca0JXQoNCa0JXQlyDQlNCj0KjQkNCdCivQmtCV0KDQmtCV0Jcg0JPQntCI0JrQngor0JrQldCg0JrQldCXINCY0JvQmNCI0JAKK9Ca0JXQoNCa0JXQlyDQm9CQ0JfQkNCgCivQmtCV0KDQmtCV0Jcg0JzQmNCb0JDQnQor0JrQldCg0JrQldCXINCc0JjQm9CV0J3QmtCeCivQmtCV0KDQmtCV0Jcg0JzQmNCb0JjQptCQCivQmtCV0KDQmtCV0Jcg0JzQmNCg0IjQkNCd0JAKK9Ca0JXQoNCa0JXQlyDQnNCY0KDQntCh0JvQkNCSCivQmtCV0KDQmtCV0Jcg0JzQm9CQ0JTQldCdCivQmtCV0KDQmtCV0Jcg0J3QmNCa0J7Qm9CQCivQmtCV0KDQmtCV0Jcg0J/QkNCj0JvQmNCd0JAKK9Ca0JXQoNCa0JXQlyDQn9CV0KLQkNCgCivQmtCV0KDQmtCV0Jcg0KHQm9Ce0JHQntCU0JDQnQor0JrQldCg0JrQldCXINCh0KDQldCi0JXQnQor0JrQldCg0JrQldCXINCh0KLQldCS0JDQnQor0JrQldCg0JrQldCXINCh0KLQldCS0JDQnQor0JrQldCg0JrQldCXINCS0JvQkNCU0JAKK9Ca0JXQoNCa0JXQlyDQktCe0IjQmNCdCivQmtCV0KDQm9CV0KLQkCDQndCV0ILQngor0JrQldCg0JzQldCmINCY0JvQntCd0JrQkAor0JrQldCg0JzQldCm0Jgg0KLQmNCR0J7QoAor0JrQldCg0JzQldCd0JTQmCDQn9CV0KLQkNCgCivQmtCV0KDQnSDQlNCQ0J3QmNCV0JsKK9Ca0JXQoNCf0JXQmyDQodCe0KTQmNCI0JAKK9Ca0JXQoNCh0J3QmNCaINCI0J7QltCVCivQmtCV0KDQodCd0JjQmiDQnNCY0KjQkAor0JrQldCg0KHQotCY0J3QkyDQmtCQ0KLQkNCg0JjQndCQCivQmtCV0KDQotCV0KEg0JXQoNCW0JXQkdCV0KIKK9Ca0JXQoNCi0JXQoSDQiNCQ0J3QntCoCivQmtCV0KDQotCV0KEg0IjQkNCd0J7QqAor0JrQldCg0KLQldChINCS0JjQm9Cc0J7QqAor0JrQldCg0JLQmNCd0JAg0JDQndCi0J7QnQor0JrQldCg0JLQmNCd0JAg0JDQoNCY0IjQkNCd0JAKK9Ca0JXQodCV0JMg0JvQkNCI0J7QqAor0JrQldCh0JXQkyDQm9CQ0IjQntCoCivQmtCV0KHQldCT0Jgg0JPQldCX0JAKK9Ca0JXQodCV0JPQmCDQmtCQ0KDQntCJCivQmtCV0KHQldCT0Jgg0JLQntCI0JjQodCb0JDQkgor0JrQldCh0JXQoCDQlNCg0JDQk9CY0KjQkAor0JrQldCh0JXQoNCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ca0JXQodCY0Isg0JbQmNCS0JrQngor0JrQldCh0JjQiyDQgtCj0KDQkAor0JrQldCh0JjQiyDQkdCe0KjQmtCeCivQmtCV0KHQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0JXQodCY0Isg0JPQntCg0JDQnQor0JrQldCh0JjQiyDQiNCe0JLQkNCdCivQmtCV0KHQmNCLINCc0JDQoNCY0J3QmtCeCivQmtCV0KHQmNCLINCc0JjQm9CVCivQmtCV0KHQmNCLINCc0JjQm9CY0KbQkAor0JrQldCh0JjQiyDQnNCY0JvQmtCQCivQmtCV0KHQmNCLINCd0JXQktCV0J3QmtCQCivQmtCV0KHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQodCY0Isg0KHQotCQ0J3QntCI0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ca0JXQodCb0JXQoCDQkNCd0JTQoNCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0JXQodCb0JXQoCDQoNCe0JHQldCg0KIKK9Ca0JXQotCV0JvQldCoINCg0J7QltCY0JrQkAor0JrQldCi0JjQkyDQotCe0JzQmNCh0JvQkNCSCivQmtCV0KLQmNCTINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0JXQktCY0Isg0JzQmNCb0JAKK9Ca0JXQktCY0Isg0J7Qm9CT0JAKK9Ca0JXQktCY0Isg0KDQkNCU0JUKK9Ca0JXQktCY0Ikg0JHQoNCQ0J3QmtCeCivQmtCV0JLQoNCV0KjQkNCdINCV0JzQmNCbCivQmtCV0JfQldCo0Jgg0JTQo9Co0JrQngor0JrQldCX0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQldCX0JjQiyDQnNCY0KDQmtCeCivQmtCV0JfQmNCI0JAg0JzQmNCb0J7QoNCQ0JQKK9Ca0JXQl9Cc0JjQiyDQkdCY0InQkNCd0JAKK9Ca0JXQl9Cj0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQldCX0KPQndCe0JLQmNCLINCf0JXQotCa0J4KK9Ca0JXQl9Cj0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQmtCY0KfQmCDQldCg0J3QlQor0JrQmNCn0JjQnSDQldCS0JAKK9Ca0JjQp9CY0J3QkCDQm9CQ0JfQkNCgCivQmtCY0KfQmNCKINCV0JvQmNCX0JDQkdCV0KLQkAor0JrQmNCoLdCn0JXQn9CV0JPQmCDQk9CQ0JHQntCgCivQmtCY0Kgt0KfQldCf0JXQk9CYINCT0JDQkdCe0KAKK9Ca0JjQqC3Qp9CV0J/QldCT0Jgg0KDQo9CU0J7Qm9CkCivQmtCY0Kgt0KfQldCf0JXQk9CYINCi0JXQoNCV0JfQkAor0JrQmNCoINCo0JDQndCU0J7QoAor0JrQmNCoINCo0JDQndCU0J7QoAor0JrQmNCoINCC0JXQoNCCCivQmtCY0Kgg0ILQldCg0IIKK9Ca0JjQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQmNCoINCQ0J3QkAor0JrQmNCoINCQ0J3QlNCg0JjQiNCQCivQmtCY0Kgg0JHQldCb0JAKK9Ca0JjQqCDQkdCV0JvQkAor0JrQmNCoINCR0J7Qm9CU0JjQltCQ0KAKK9Ca0JjQqCDQkdCg0JDQndCa0J4KK9Ca0JjQqCDQlNCj0KjQkNCd0JrQkAor0JrQmNCoINCU0KPQqNCY0KbQkAor0JrQmNCoINCV0KDQndCV0KHQogor0JrQmNCoINCV0KDQndCVCivQmtCY0Kgg0JXQodCi0JXQoAor0JrQmNCoINCV0JLQkAor0JrQmNCoINCk0JXQoNCV0J3Qpgor0JrQmNCoINCk0JXQoNCV0J3Qpgor0JrQmNCoINCk0JXQoNCV0J3Qpgor0JrQmNCoINCk0KDQkNCK0J4KK9Ca0JjQqCDQk9CV0JfQkAor0JrQmNCoINCT0JXQl9CQCivQmtCY0Kgg0JPQmNCX0JXQm9CQCivQmtCY0Kgg0KXQldCb0JXQndCQCivQmtCY0Kgg0KXQldCd0KDQmNCI0JXQotCQCivQmtCY0Kgg0JjQqNCi0JLQkNCdCivQmtCY0Kgg0JjQqNCi0JLQkNCdCivQmtCY0Kgg0JjQqNCi0JLQkNCdCivQmtCY0Kgg0JjQm9Ce0J3QkAor0JrQmNCoINCY0JvQntCd0JrQkAor0JrQmNCoINCY0KDQldCd0JAKK9Ca0JjQqCDQmNCh0JjQlNCe0KAKK9Ca0JjQqCDQmNCS0JDQnQor0JrQmNCoINCY0JLQkNCdCivQmtCY0Kgg0IjQkNCd0JrQngor0JrQmNCoINCI0JDQndCe0KgKK9Ca0JjQqCDQiNCe0JbQldCkCivQmtCY0Kgg0IjQntCm0JAKK9Ca0JjQqCDQiNCe0KHQmNCfCivQmtCY0Kgg0IjQntCh0JjQnwor0JrQmNCoLdCI0J7QktCQ0Jog0KTQoNCQ0IrQkAor0JrQmNCoINCI0J7Ql9CV0KTQmNCd0JAKK9Ca0JjQqCDQiNCj0JvQmNCI0JDQnQor0JrQmNCoINCa0JDQm9Cc0JDQnQor0JrQmNCoINCa0JDQotCQ0JvQmNCdCivQmtCY0Kgg0JrQkNCi0JjQptCQCivQmtCY0Kgg0JrQkNCi0JjQptCQCivQmtCY0Kgg0JvQkNCm0JjQmtCQCivQmtCY0Kgg0JvQkNCh0JvQngor0JrQmNCoINCb0JDQodCb0J4KK9Ca0JjQqCDQnNCQ0KDQk9CY0KLQkAor0JrQmNCoINCc0JDQoNCY0IjQkAor0JrQmNCoINCc0JDQoNCY0IjQkAor0JrQmNCoINCc0JjQpdCQ0IkKK9Ca0JjQqCDQnNCY0IjQkAor0JrQmNCoINCc0JjQm9CQ0J0KK9Ca0JjQqCDQnNCY0JvQmNCm0JAKK9Ca0JjQqCDQnNCY0KDQmtCeCivQmtCY0Kgg0J3QkNCd0JTQntCgCivQmtCY0Kgg0J3QmNCa0J7Qm9CQCivQmtCY0Kgg0J3QmNCa0J7Qm9CQCivQmtCY0Kgg0J7QotCeCivQmtCY0Kgg0J7QotCeCivQmtCY0Kgg0J/QkNCS0JvQlQor0JrQmNCoINCf0JXQoNCQCivQmtCY0Kgg0J/QldCi0JDQoAor0JrQmNCoINCf0JXQotCQ0KAKK9Ca0JjQqCDQn9CV0KLQkNCgCivQmtCY0Kgg0KDQntCX0JDQm9CY0IjQkAor0JrQmNCoINCh0JvQkNCS0JjQptCQCivQmtCY0Kgg0KHQm9CQ0JLQmNCm0JAKK9Ca0JjQqCDQodCb0J7QkdCe0JTQkNCdCivQmtCY0Kgg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCY0Kgg0KHQotCV0JLQkNCdCivQmtCY0Kgg0KHQotCV0JLQkNCdCivQmtCY0Kgg0KHQotCV0JLQkNCdCivQmtCY0Kgg0KHQotCV0JLQkNCdCivQmtCY0Kgg0KHQotCI0JXQn9CQ0J0KK9Ca0JjQqCDQotCY0JHQntCgINCU0KAKK9Ca0JjQqCDQotCY0JHQntCgCivQmtCY0Kgg0KLQmNCR0J7QoAor0JrQmNCoINCi0J7QlNCe0KAKK9Ca0JjQqCDQktCV0KHQndCQCivQmtCY0Kgg0JLQmNCa0KLQntCg0JjQiNCQCivQmtCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCoINCS0KPQmtCe0KHQkNCS0JAKK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqCDQl9Ce0JvQotCQ0J0KK9Ca0JjQqNCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JrQmNCo0JXQk9CV0KbQmCDQiNCQ0J0g0JTQoAor0JrQmNCo0JPQldCm0Jgt0JTQo9CU0JDQqCDQmtCb0JDQoNCQCivQmtCY0KjQk9CV0KbQmCDQldCc0JjQmwor0JrQmNCo0JPQldCm0Jgg0JjQktCQ0J0KK9Ca0JjQqNCT0JXQptCYINCf0JDQktCb0JUKK9Ca0JjQqNCT0JXQptCYINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCo0JPQldCm0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCY0KjQk9CV0KbQmCDQodCi0JXQktCQ0J0KK9Ca0JjQqNCT0JXQptCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqNCI0KPQpdCQ0KEg0IjQkNCa0J7Qkgor0JrQmNCo0JzQmNCo0JrQkCDQn9CQ0JsKK9Ca0JjQqNCf0KDQlNCY0JvQntCSINCU0JXQiNCQ0J0KK9Ca0JjQqNCf0KDQlNCY0JvQntCSINCX0J7QoNCQ0J0KK9Ca0JjQi9CQ0J3QntCS0JjQiyDQkdCe0KDQngor0JrQmNCL0JDQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQmtCY0IvQkNCd0J7QktCY0Isg0IjQntCa0JAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCY0IvQkNCd0J7QktCY0Isg0JzQmNCi0JDQoAor0JrQmNCL0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQmNCL0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ca0JjQi9CQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0JbQkNCg0JrQngor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCc0JjQm9CQ0J0KK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQodCQ0JLQkAor0JrQmNCW0JXQktCh0JrQmCDQlNCY0JzQmtCeCivQmtCY0JbQldCS0KHQmtCYINCc0JjQoNCQCivQmtCY0JbQldCS0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JjQptCe0KjQldCSINCR0KDQkNCd0JrQngor0JrQmNCm0J7QqNCV0JIg0InQmNCJ0JDQndCQCivQmtCY0KbQntCo0JXQkiDQnNCY0KLQkAor0JrQmNCm0J7QqNCV0JIg0KHQkNCo0JAKK9Ca0JjQptCe0KjQldCSINCh0KLQntCI0JDQnQor0JrQmNCm0J7QqNCV0JLQmNCLINCi0KDQmNCS0JAKK9Ca0JjQptCe0KjQldCS0JjQiyDQktCb0JDQiNCa0J4KK9Ca0JjQiNCQ0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JrQmNCI0JDQndCe0JLQmNCLINCc0JDQndCe0IjQm9CVCivQmtCY0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQmtCY0JrQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCY0JrQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0JjQmtCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JjQiNCQCivQmtCY0JrQmNCLLdCo0J7QktCJ0JDQndCh0JrQmCDQidCY0InQkNCd0JAKK9Ca0JjQmtCY0Isg0JzQmNCg0JrQngor0JrQmNCa0JjQiyDQodCc0JjQidCQINCU0KAKK9Ca0JjQmtCY0J3QgtCQ0J3QmNCdINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQmNCa0JjQndCU0JDQmCDQktCV0KDQkAor0JrQmNCa0J7QqCDQk9Ce0KDQlNCQ0J0KK9Ca0JjQmtCe0Kgg0IjQntCS0JDQnQor0JrQmNCa0J7QqCDQm9CQ0JfQkNCgCivQmtCY0JrQntCoINCh0KDQkdCY0KHQm9CQ0JIKK9Ca0JjQmtCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQmtCY0JvQmNCLINCd0JjQmtCe0JvQkAor0JrQmNCb0JjQkdCQ0KDQlNCQINCc0JjQm9Ce0KDQkNCUCivQmtCY0JvQmNCR0JDQoNCU0JAg0JzQmNCi0JDQoAor0JrQmNCb0JjQkdCQ0KDQlNCQINCf0JDQktCb0JUKK9Ca0JjQm9CY0JHQkNCg0JTQkCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0JvQmNCR0JDQoNCU0JAg0JLQntCI0JjQodCb0JDQkgor0JrQmNCc0J/QkNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JjQnNCf0JDQndCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0JrQmNCc0J/QkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQmtCY0JzQn9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JjQnNCf0JDQndCe0JIg0KHQntCk0JjQiNCQCivQmtCY0J3Qp9CV0Kgg0JzQmNCl0JDQiQor0JrQmNCd0ILQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JjQndCC0JjQnSDQktCQ0KHQkAor0JrQmNCd0JTQldCg0J3QkNCIINCY0JvQmNCI0JAKK9Ca0JjQndCU0JXQoNCd0JDQiCDQnNCY0JvQkNCdCivQmtCY0J3QlNCV0KDQndCQ0Igg0J7QotCeCivQmtCY0J3QlNCV0KDQndCe0Igg0J/QkNCS0JvQlQor0JrQmNCd0JjQmiDQiNCQ0J0KK9Ca0JjQndCY0Jog0J/QkNCS0JvQlQor0JrQmNCK0JXQoNCQ0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQmtCY0J3QmtCQINCg0JjQotCQCivQmtCY0J/QldCg0J7QktCY0Isg0IjQntCS0J4KK9Ca0JjQn9CY0Isg0ILQo9Cb0JAKK9Ca0JjQn9CY0Isg0JDQndCU0KDQmNCI0JAKK9Ca0JjQn9CY0Isg0JDQndCa0JAKK9Ca0JjQn9CY0Isg0JXQlNCY0KLQkAor0JrQmNCf0JjQiyDQldCg0JbQldCR0JXQogor0JrQmNCf0JjQiyDQldCg0J3QlQor0JrQmNCf0JjQiyDQpNCV0KDQldCd0KYKK9Ca0JjQn9CY0Isg0KTQoNCQ0IrQkAor0JrQmNCf0JjQiyDQmNCo0KLQktCQ0J0KK9Ca0JjQn9CY0Isg0IjQntCh0JjQnwor0JrQmNCf0JjQiyDQm9CQ0KHQm9CeCivQmtCY0J/QmNCLINCd0JDQndCU0J7QoAor0JrQmNCg0KfQkNCdINCV0JzQmNCbCivQmtCY0KDQqCDQiNCe0JbQldCkCivQmtCY0KDQqCDQnNCY0JvQntCg0JDQlAor0JrQmNCg0KjQldCaINCI0KPQoNCQ0IgKK9Ca0JjQoNCL0JDQnSDQodCQ0JLQkAor0JrQmNCg0IvQkNCd0KHQmtCYINCR0KDQkNCd0JrQngor0JrQmNCg0IvQkNCd0KHQmtCYINCU0KPQqNCa0J4KK9Ca0JjQoNCL0JDQndCh0JrQmCDQmNCS0JDQnQor0JrQmNCg0IvQkNCd0KHQmtCYINCc0JjQm9CY0KbQkAor0JrQmNCg0IvQkNCd0KHQmtCYINCe0JHQoNCQ0JQKK9Ca0JjQoNCL0JDQndCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0JrQmNCg0IvQkNCd0KHQmtCYINCg0JDQlNCe0KHQm9CQ0JLQkAor0JrQmNCg0JTQkCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KDQmNCLINCk0KDQkNCK0J4KK9Ca0JjQoNCY0Isg0JzQldCd0JrQkAor0JrQmNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCY0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCg0JjQj9CY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ca0JjQoNCY0I/QmNCLINCc0JjQm9Ce0KgKK9Ca0JjQoNCY0I/QmNCLINCe0JHQoNCQ0JQKK9Ca0JjQoNCY0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCY0KDQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JjQoNCY0JvQntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQmtCY0KDQmNCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQmtCY0KDQmNCb0J7QktCY0Isg0JrQoNCY0KHQotCQCivQmtCY0KDQmNCb0J7QktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCe0JvQk9CQCivQmtCY0KDQmNCdINCW0JXQidCa0J4KK9Ca0JjQoNCY0J0g0JjQktCY0KbQkAor0JrQmNCg0JjQnSDQodCd0JXQltCQ0J3QkAor0JrQmNCg0IjQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JrQmNCg0IjQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCY0KDQmtCe0JIg0JTQmNCc0JjQotCQ0KAKK9Ca0JjQoNCa0J7QkiDQktCV0KDQmNCm0JAKK9Ca0JjQoNCdINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQoNCe0JLQkNCa0J7QkiDQktCQ0JvQldCg0JjQiNCQCivQmtCY0KDQotCY0Isg0JTQo9Co0JDQnQor0JrQmNCh0JDQp9CQ0J3QmNCdINCU0JXQodCQ0J3QmtCQCivQmtCY0KHQkNCn0JDQndCY0J0g0JTQo9Co0JDQnQor0JrQmNCh0JDQp9CQ0J3QmNCdINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0JrQmNCh0JDQp9CQ0J3QmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JjQodCQ0KfQkNCd0JjQnSDQn9CQ0JLQm9CVCivQmtCY0KHQkNCn0JDQndCY0J0g0KHQktCV0KLQntCX0JDQoAor0JrQmNCh0JXQm9CY0KfQmtCYINCW0JjQktCa0J4g0KHQo9CU0JjQiNCQCivQmtCY0KHQldCb0JjQp9Ca0Jgg0JTQkNCd0JjQptCQCivQmtCY0KHQldCb0JjQp9Ca0Jgg0KTQldCU0J7QoCDQlNCgCivQmtCY0KHQldCb0JjQp9Ca0Jgg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JjQodCV0JvQmNCm0JAg0JbQkNCg0JrQngor0JrQmNCh0JXQm9CY0KbQkCDQndCQ0JTQkAor0JrQmNCh0JXQm9CY0KbQkCDQn9CV0KLQkNCgCivQmtCY0KHQldCb0JjQptCQINCf0JXQotCQ0KAKK9Ca0JjQodCY0Isg0JTQo9Co0JDQnQor0JrQmNCh0JjQiyDQiNCe0JLQkNCdCivQmtCY0KHQmNCLINCc0JjQoNCa0J4KK9Ca0JjQodCY0Isg0KHQoNCC0JDQnQor0JrQmNCh0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCY0KHQmNCdINCQ0J3QgtCQCivQmtCY0KHQmNCdINCc0JjQm9CY0KbQkAor0JrQmNCh0JjQnSDQnNCY0JvQmtCQCivQmtCY0KHQmNCdINCi0J7QnNCeCivQmtCY0KHQm9CY0KYg0JjQoNCV0J3QkAor0JrQmNCh0JvQntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQodCeINCc0JjQm9Ce0KDQkNCUCivQmtCY0KHQotCV0KAg0JLQmNCd0JrQngor0JrQmNCiINCS0JDQodCY0IkKK9Ca0JjQotCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQmtCY0KLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0JjQotCQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0JjQotCQ0J3QntCS0JjQiyDQm9CV0J3QmtCQCivQmtCY0KLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0JjQotCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JrQmNCi0JDQndCe0JLQmNCLINCi0J7QnNCQCivQmtCY0KLQkNCd0J7QktCh0JrQmCDQlNCY0JzQp9CVCivQmtCY0KLQmNCLINCg0JDQlNCe0IjQmtCQCivQmtCY0KLQmNCLINCh0JDQktCeCivQmtCY0KLQmNCLINCh0KLQntCI0JrQngor0JrQmNCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQmNCj0KDQodCa0Jgg0KHQotCV0JLQkNCdINCU0JjQn9CbINCe0JXQpgor0JrQmNCS0J7QktCY0Isg0JDQndCi0J7QndCY0IjQkAor0JrQmNCX0JAg0JHQoNCQ0J3QmtCY0KbQkAor0JrQmNCX0JjQiyDQlNCj0KjQkNCdCivQmtCY0JfQmNCLINCb0JjQlNCY0IjQkAor0JrQmNCX0JjQiyDQnNCQ0KDQmtCeCivQmtCY0JfQmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCY0JfQmNCLINCh0JDQktCa0JAKK9Ca0JjQl9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCX0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCY0JfQmNCLINCh0J3QldCW0JDQndCQCivQmtCY0JfQmNCLINCi0JjQpdCe0KHQm9CQ0JIKK9Ca0JjQl9Cj0KAg0JDQndCU0KDQkNCoCivQmtCY0JfQo9CgINCY0KjQotCS0JDQnQor0JrQmNCX0KPQoCDQiNCQ0J3QntCoCivQmtCY0JfQo9CgINCb0JDQodCb0J4KK9Ca0JjQl9Cj0KAg0J/QkNCS0JXQmwor0JrQmNCX0KPQoCDQktCV0KDQkAor0JrQm9CQ0KfQkNCgINCc0JjQm9Ca0J4KK9Ca0JvQkNCn0JDQoCDQnNCY0JvQntCoCivQmtCb0JDQqNCK0JAg0JbQkNCg0JrQngor0JrQm9CQ0KjQitCQINCR0KDQkNCd0JrQngor0JrQm9CQ0KjQitCQINCI0J7QktCQ0J0KK9Ca0JvQkNCo0IrQkCDQnNCQ0KDQmNCI0JAKK9Ca0JvQkNCo0IrQkCDQnNCY0JrQkAor0JrQm9CQ0KjQitCQINCc0JjQm9CV0J3QkAor0JrQm9CQ0KjQitCQINCc0JjQm9CVCivQmtCb0JDQqNCK0JAg0JzQmNCb0JjQptCQCivQmtCb0JDQqNCK0JAg0JzQmNCg0J7QodCb0JDQkgor0JrQm9CQ0KjQitCQINCS0JvQkNCU0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Ca0JvQkNCLINCU0KDQkNCT0JDQnQor0JrQm9CQ0IvQmNCaINCI0J7QltCV0KQKK9Ca0JvQkNCL0JjQmiDQnNCQ0KDQmNCI0JAKK9Ca0JvQkNCU0KPQqNCY0Isg0JzQldCd0KHQo9Cg0JAKK9Ca0JvQkNCY0Isg0JDQndCi0J4KK9Ca0JvQkNCY0Isg0J/QkNCS0J4KK9Ca0JvQkNCIINCf0JXQotCQ0KAKK9Ca0JvQkNCI0JjQiyDQgtCj0KDQkAor0JrQm9CQ0IjQmNCLINCU0JDQndCY0JvQngor0JrQm9CQ0IjQmNCLINCJ0KPQkdCY0KbQkAor0JrQm9CQ0IjQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0JrQm9CQ0IjQmNCLINCe0JvQk9CQCivQmtCb0JDQiNCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JrQm9CQ0IjQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Ca0JvQkNCI0JjQiyDQktCY0JTQkAor0JrQm9CQ0IjQnSDQkNCb0JHQldCg0KIKK9Ca0JvQkNCI0J0g0JDQndCQCivQmtCb0JDQiNCdINCU0KDQkNCT0KPQotCY0J0KK9Ca0JvQkNCI0J0g0JjQktCQ0J3QmtCQCivQmtCb0JDQiNCdINCY0JLQkNCdCivQmtCb0JDQiNCdINCb0JDQiNCn0J4g0JTQoAor0JrQm9CQ0IjQnSDQnNCY0KDQntCh0JvQkNCSCivQmtCb0JDQiNCdINCS0JXQoNCQCivQmtCb0JDQiNCd0JXQoCDQldCh0KLQldCgCivQmtCb0JDQiNCd0JXQoCDQmNCo0KLQktCQ0J0KK9Ca0JvQkNCc0JDQoCDQmtCQ0KDQm9CeCivQmtCb0JDQnNCY0Jog0JjQnNCg0JUKK9Ca0JvQkNCf0JDQoNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Ca0JvQkNCf0JDQoNCV0JLQmNCLINCh0JDQktCQCivQmtCb0JDQn9CQ0KDQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQmtCb0JDQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0JvQkNCg0JjQiyDQk9Ce0KDQkNCdCivQmtCb0JDQoNCY0Isg0InQo9CR0JjQptCQCivQmtCb0JDQoNCY0Isg0JzQmNCb0JjQiwor0JrQm9CQ0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCb0JDQoNCY0Isg0J7Qm9CT0JAKK9Ca0JvQkNCg0JjQiyDQodCV0JrQkAor0JrQm9CQ0KHQkNCdINCQ0J3QkAor0JrQm9CQ0KHQldCgINCQ0JvQkdCV0KDQogor0JrQm9CQ0KHQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0JvQkNCh0JjQiyDQodCQ0KjQkAor0JrQm9CQ0KPQoSDQldCg0JbQldCR0JXQogor0JrQm9CQ0KPQoSDQldCg0JbQldCR0JXQogor0JrQm9CQ0KPQoSDQm9CQ0KHQm9CeCivQmtCb0JXQkdCV0KfQmtCeINCo0JDQndCU0J7QoAor0JrQm9CV0JHQldCn0JrQniDQqNCQ0J3QlNCe0KAKK9Ca0JvQldCcINCQ0JTQkNCcINCU0KAKK9Ca0JvQldCcINCI0J7QltCV0KQKK9Ca0JvQldCcINCi0JXQoNCV0JfQkAor0JrQm9CV0JzQldCd0J7QktCY0Isg0KPQoNCe0KgKK9Ca0JvQldCd0J7QptCa0Jgg0JzQkNCg0JjQiNCQCivQmtCb0JXQndCe0JLQqNCV0Jog0KTQoNCQ0IrQkAor0JrQm9CV0J3QntCS0KjQldCaINCi0JXQoNCV0JfQmNCI0JAKK9Ca0JvQldCd0J7QktCo0JXQmiDQl9CS0J7QndCY0JzQmNCgCivQmtCb0JXQn9CY0Isg0ILQo9Cg0JDQggor0JrQm9CV0J/QmNCLINCd0JjQmtCe0JvQkAor0JrQm9CV0KIg0JPQldCX0JAKK9Ca0JvQldCj0KIg0JzQmNCb0JDQnQor0JrQm9CV0KPQoiDQoNCj0JbQkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0JvQldCS0JXQoNCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCb0JjQp9CV0Jog0JjQoNCV0J3QkAor0JrQm9CY0KfQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JrQm9CY0KfQmtCe0JLQmNCLINCa0J7QodCi0JAKK9Ca0JvQmNCn0JrQntCS0JjQiyDQktCV0KDQkAor0JrQm9CY0KjQkNCd0JjQiyDQiNCe0KHQmNCfCivQmtCb0JjQqNCQ0J3QmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQm9CY0KbQntCSINCY0JvQmNCI0JAKK9Ca0JvQmNCa0J7QktCQ0KYg0JzQmNCl0JDQiNCb0J4KK9Ca0JvQmNCa0J7QktCQ0KYg0JLQldCb0JjQnNCY0KAKK9Ca0JvQmNCc0JXQqCDQlNCg0JDQk9CQ0J3QkAor0JrQm9CY0JzQldCoINCX0J7QoNCQCivQmtCb0JjQndCQ0KYg0KPQoNCe0KgKK9Ca0JvQmNCd0JDQoCDQmNCS0JDQnQor0JrQm9CY0J3QptCe0JIg0J3QkNCU0JAKK9Ca0JvQmNCd0I/QmNCLINCh0KLQiNCV0J/QkNCdCivQmtCb0JjQndCT0JXQoCDQmtCQ0KLQmNCm0JAKK9Ca0JvQmNCd0JrQniDQiNCQ0J0KK9Ca0JvQmNCd0J7QptCa0Jgg0ILQldCg0IIKK9Ca0JvQmNCd0J7QktCh0JrQmCDQkdCg0JDQndCa0J4KK9Ca0JvQmNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Ca0JvQmNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Ca0JvQmNCd0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQmtCb0JjQn9CQINCW0JjQktCQ0J0KK9Ca0JvQmNCf0JAg0ILQntCg0ILQlQor0JrQm9CY0J/QkCDQiNCV0JvQmNCm0JAKK9Ca0JvQmNCf0JAt0JrQoNCQ0JHQldChINCT0KDQldCi0JAKK9Ca0JvQmNCf0JAg0JvQkNCX0JDQoAor0JrQm9CY0J/QkCDQnNCY0JrQkAor0JrQm9CY0KAg0JjQm9Ce0J3QkAor0JrQm9CY0KAg0KDQntCX0JDQm9CY0IjQkAor0JrQm9CY0KHQkNCg0JAg0JbQmNCS0JrQngor0JrQm9CY0KHQkNCg0JAg0ILQntCg0ILQlQor0JrQm9CY0KHQkNCg0JjQiyDQnNCY0KDQmtCeCivQmtCb0JjQodCY0Isg0J3QkNCU0JAKK9Ca0JvQmNCh0JrQkCDQkNCd0ILQldCb0JjQiNCQCivQmtCb0JjQodCa0JAg0JLQntCI0J4KK9Ca0JvQmNCh0KPQoNCQINCc0JjQm9Ce0KgKK9Ca0JvQmNCh0KPQoNCQINCc0J7QnNCY0KAKK9Ca0JvQmNCh0KPQoNCQINCh0KLQkNCa0JAKK9Ca0JvQmNCh0KPQoNCY0Isg0ILQo9Cg0J4KK9Ca0JvQmNCS0JjQitCYINCI0J7QltCV0KQKK9Ca0InQkNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JrQidCQ0JjQiyDQnNCQ0KbQkAor0JrQidCQ0JjQiyDQodCY0JzQngor0JrQidCQ0JjQnSDQlNCg0JDQk9CY0IrQkAor0JrQidCQ0JjQnSDQm9CQ0JfQkNCgCivQmtCJ0JDQiNCY0Isg0ILQntCg0ILQlSDQn9Cg0J7QpNCV0KHQntCgCivQmtCJ0JDQiNCY0Isg0ILQntCg0ILQlQor0JrQidCQ0IjQmNCLINCC0J7QoNCC0JUKK9Ca0InQkNCI0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQmtCJ0JDQiNCY0Isg0JHQntCg0JrQkAor0JrQidCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JrQidCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JrQidCQ0IjQmNCLINCU0JDQndCY0JvQngor0JrQidCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQidCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQidCQ0IjQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCJ0JDQiNCY0Isg0JjQm9CY0IjQkAor0JrQidCQ0IjQmNCLINCY0JvQmNCI0JAKK9Ca0InQkNCI0JjQiyDQmNCS0JDQnQor0JrQidCQ0IjQmNCLINCI0JXQm9CV0J3QkAor0JrQidCQ0IjQmNCLINCa0J7QktCY0InQmtCQCivQmtCJ0JDQiNCY0Isg0JvQo9Ca0JAKK9Ca0InQkNCI0JjQiyDQnNCQ0KDQkAor0JrQidCQ0IjQmNCLINCc0JjQm9CQ0J0KK9Ca0InQkNCI0JjQiyDQnNCY0JvQldCS0JAKK9Ca0InQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQidCQ0IjQmNCLINCd0JDQlNCQCivQmtCJ0JDQiNCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ca0InQkNCI0JjQiyDQn9CV0KLQkNCgCivQmtCJ0JDQiNCY0Ist0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JrQidCQ0IjQmNCLINCh0JXQndCa0JAKK9Ca0InQkNCI0JjQiyDQktCQ0KLQkAor0JrQidCQ0IjQmNCLINCS0JvQkNCU0J4KK9Ca0InQkNCI0JjQiyDQktCj0JrQmNCm0JAKK9Ca0InQkNCI0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQidCQ0JrQmNCLINCS0KPQmtCQ0KjQmNCdCivQmtCJ0JXQp9CQ0J3QmNCdINCc0JjQoNCI0JDQndCQCivQmtCJ0KPQp9Ce0JLQodCa0Jgg0JzQkNCl0JDQidCY0J3QkAor0JrQidCj0KfQntCS0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQidCj0KLQmNCLINCI0JDQodCc0JjQndCQCivQmtCJ0KPQotCY0Isg0J7QodCi0J7QiNCQCivQmtCb0J7QkdCj0KjQmNCm0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0JvQntCf0KTQldCgINCC0J7QoNCC0JUKK9Ca0JvQntCf0JrQkCDQmtCb0JDQoNCQINCU0KAKK9Ca0JvQntCf0JrQkCDQn9CY0KDQntCo0JrQkAor0JrQnNCV0Kcg0JzQkNCg0KLQmNCdCivQmtCc0JXQp9Ca0J4g0KHQotCV0JLQkNCdCivQmtCc0JXQiyDQiNCQ0J0g0JTQoAor0JrQnNCV0JfQmNCLINCY0JLQkNCd0JrQkAor0JrQnNCV0JfQmNCLINCc0JjQm9CVCivQmtCc0JXQl9CY0Isg0JLQm9CQ0JTQkAor0JrQnNCY0KbQmNCa0JXQktCY0Isg0JfQntCg0JDQnQor0JrQnNCY0KbQmNCa0J7QktCY0Isg0JzQmNCb0J7QiNCa0JAKK9Ca0J3QldCo0JDQo9Cg0JXQmiDQnNCQ0KDQmNCI0JAKK9Ca0J3QldCW0JXQkiDQltCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JrQndCV0JbQldCSINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQkiDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JIg0ILQo9Cg0JAKK9Ca0J3QldCW0JXQkiDQiNCV0JvQmNCm0JAKK9Ca0J3QldCW0JXQkiDQidCY0InQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JbQkNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQltCV0InQmtCeCivQmtCd0JXQltCV0JLQmNCLINCW0JXQidCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQldCJ0JrQngor0JrQndCV0JbQldCS0JjQiyDQltCY0JLQmtCQCivQmtCd0JXQltCV0JLQmNCLINCW0JjQktCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0ILQmNCd0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCj0KDQkAor0JrQndCV0JbQldCS0JjQiyDQgtCj0KDQkAor0JrQndCV0JbQldCS0JjQiyDQgtCj0KDQngor0JrQndCV0JbQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQndCV0JbQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQndCV0JbQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQndCV0JbQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JrQndCV0JbQldCS0JjQiyDQkNCb0JXQmtCh0JAKK9Ca0J3QldCW0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Ca0J3QldCW0JXQktCY0Isg0JDQndCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQkNCd0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCQ0KDQmtCQ0JTQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JHQntCo0JrQngor0JrQndCV0JbQldCS0JjQiyDQkdCe0JbQngor0JrQndCV0JbQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCT0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCR0J7QoNCY0KEKK9Ca0J3QldCW0JXQktCY0Isg0JHQntCg0JrQkAor0JrQndCV0JbQldCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JrQndCV0JbQldCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQndCV0JbQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0KbQktCY0IjQngor0JrQndCV0JbQldCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ca0J3QldCW0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J3QldCW0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCT0JvQmNCo0JAKK9Ca0J3QldCW0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCY0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCY0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCI0JXQm9CQCivQmtCd0JXQltCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQndCV0JbQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQmtCd0JXQltCV0JLQmNCLINCI0J7QodCY0J8KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCeCivQmtCd0JXQltCV0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Ca0J3QldCW0JXQktCY0Isg0JrQoNCh0KLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCb0JDQotCY0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JvQkNCX0JDQoAor0JrQndCV0JbQldCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCd0JUKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0IvQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQmtCQCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0J7QitCQCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0IrQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQndCV0JbQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQndCV0JbQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQndCV0JbQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQntCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQnNCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCc0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0J3QkNCU0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QldCd0JDQlAor0JrQndCV0JbQldCS0JjQiyDQndCV0JLQldCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQn9CQ0J3QotCQCivQmtCd0JXQltCV0JLQmNCLINCf0JDQktCb0JUKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JDQoAor0JrQndCV0JbQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCd0JXQltCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JDQoAor0JrQndCV0JbQldCS0JjQiyDQn9CV0KLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCg0JDQlNCQCivQmtCd0JXQltCV0JLQmNCLINCg0JDQlNCVCivQmtCd0JXQltCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCg0JDQiNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCd0JrQngor0JrQndCV0JbQldCS0JjQiyDQoNCY0KHQotCeCivQmtCd0JXQltCV0JLQmNCLINCg0J7Ql9CQCivQmtCd0JXQltCV0JLQmNCLINCh0JDQktCeCivQmtCd0JXQltCV0JLQmNCLINCh0JjQndCY0KjQkAor0JrQndCV0JbQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JLQkAor0JrQndCV0JbQldCS0JjQiyDQodCi0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQmtCd0JXQltCV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQmtCd0JXQltCV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCi0JXQktCeCivQmtCd0JXQltCV0JLQmNCLINCh0KLQldCS0J4KK9Ca0J3QldCW0JXQktCY0Isg0KHQotCY0J/QlQor0JrQndCV0JbQldCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQktCV0KLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCh0JLQldCi0J4KK9Ca0J3QldCW0JXQktCY0Isg0KLQldCe0JTQntCgCivQmtCd0JXQltCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J3QldCW0JXQktCY0Isg0KPQoNCe0KgKK9Ca0J3QldCW0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQktCV0KDQkAor0JrQndCV0JbQldCS0JjQiyDQktCV0KDQkAor0JrQndCV0JbQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQktCe0IjQmNCdCivQmtCd0JXQltCV0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQmtCd0JXQltCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCX0JvQkNCi0JDQnQor0JrQndCV0JbQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCd0JXQltCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JfQntCg0JAKK9Ca0J3QldCW0JjQiyDQntCb0JPQkAor0JrQndCV0JbQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCd0JXQkdCbINCk0KDQkNCK0JAKK9Ca0J3QldCR0Jsg0J3QmNCa0J7Qm9CQCivQmtCd0JXQk9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQndCV0KAg0JTQldCX0JjQlNCV0KAKK9Ca0J3QldCh0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0J3QldCXINCX0JvQkNCi0JrQngor0JrQndCV0JfQmCDQmNCS0JDQnQor0JrQndCV0JfQmCDQiNCe0JbQldCkCivQmtCd0JXQl9CYINCh0JvQntCR0J7QlNCQ0J0KK9Ca0IrQldCo0JrQniDQltCj0JbQkNCd0JAKK9Ca0IrQldCo0JrQniDQkNCb0JHQldCg0KIKK9Ca0J7Qp9CQ0KAg0JvQkNCh0JvQngor0JrQntCn0JDQoCDQodCi0JXQpNCQ0J3QmNCI0JAKK9Ca0J7Qp9CQ0KAg0KLQmNCl0J7QnNCY0KAKK9Ca0J7Qp9CV0KLQntCSINCi0JDQotCI0JDQndCQCivQmtCe0KfQmCDQldCi0JXQm9Ca0JAKK9Ca0J7Qp9CYINCY0KjQotCS0JDQnQor0JrQntCn0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCn0JjQqCDQgtCj0KDQkAor0JrQntCn0JjQqCDQkNCd0JTQoNCY0IjQkAor0JrQntCn0JjQqCDQkNCd0JTQoNCY0IjQkAor0JrQntCn0JjQqCDQldCg0J3QldCh0KIKK9Ca0J7Qp9CY0Kgg0JPQldCg0JPQldCJINCU0JjQn9CbINCY0J3Qkwor0JrQntCn0JjQqCDQpdCV0JvQldCd0JAKK9Ca0J7Qp9CY0Kgg0JjQqNCi0JLQkNCdCivQmtCe0KfQmNCoINCI0JDQmtCe0JIKK9Ca0J7Qp9CY0Kgg0IjQkNCd0JrQngor0JrQntCn0JjQqCDQiNCQ0J3QntCoCivQmtCe0KfQmNCoINCa0JDQoNCb0J4KK9Ca0J7Qp9CY0Kgg0JzQkNCg0JjQiNCQCivQmtCe0KfQmNCoINCc0JjQpdCQ0IjQm9CeCivQmtCe0KfQmNCoINCd0JjQmtCe0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQmtCe0KfQmNCoINCg0JDQlNCVCivQmtCe0KfQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qp9CY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCn0JjQiyDQlNCg0JDQk9CeCivQmtCe0KfQmNCLINCc0JDQndCVCivQmtCe0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KfQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCn0J7QkdCQINCg0JDQlNCY0KHQm9CQ0JIKK9Ca0J7Qp9Ce0KHQmtCYINCf0JXQotCQ0KAKK9Ca0J7Qp9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KfQntCS0JjQiyDQnNCY0JvQldCi0JAKK9Ca0J7QqNCL0JDQmiDQodCQ0JLQmtCQCivQmtCe0KjQkCDQotCY0JHQntCgINCU0JjQn9CbINCY0J3Qkwor0JrQntCo0JDQndCY0J0g0JzQmNCb0J7QnNCY0KAKK9Ca0J7QqNCQ0IrQmCDQpNCV0KDQldCd0KYKK9Ca0J7QqNCQ0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCo0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QqNCY0Isg0JzQmNCi0JAKK9Ca0J7QqNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0KjQmNCLINCh0KLQldCS0J4KK9Ca0J7QqNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCo0JjQptCa0Jgg0JvQldCQCivQmtCe0KjQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QqNCd0JjQp9CQ0KAg0JzQmNCb0JDQnQor0JrQntCo0J3QmNCn0JDQoCDQodCe0KTQmNCI0JAKK9Ca0J7QqNCe0KbQmtCYINCc0JDQoNCY0IjQkAor0JrQntCo0KPQotCY0Isg0ILQo9Cg0J4KK9Ca0J7QqNCj0KLQmNCLINCC0KPQoNCeCivQmtCe0KjQo9Ci0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCo0KPQotCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0KjQo9Ci0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QqNCj0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QqNCj0KLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QqNCj0KLQmNCLINCa0J7QodCi0JAKK9Ca0J7QqNCj0KLQmNCLINCc0JDQndCVCivQmtCe0KjQo9Ci0JjQiyDQnNCY0JvQntCoCivQmtCe0KjQo9Ci0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7Qi9CQ0JvQniDQoNCQ0JTQntCI0JjQptCQCivQmtCe0JbQo9CbINCT0J7QiNCa0J4KK9Ca0J7QltCj0Jsg0JPQntCI0JrQngor0JrQntCW0KPQmyDQoNCQ0IjQmtCeCivQmtCe0JbQo9CS0JDQoNCQINCT0JDQktCg0JAKK9Ca0J7QkdCQ0Kgg0IjQntCh0JjQnwor0JrQntCR0JDQqCDQmtCQ0KLQmNCm0JAKK9Ca0J7QkdCQ0Kgg0JLQo9Ca0JDQqNCY0J0KK9Ca0J7QkdCQ0Jsg0ILQo9Cg0JAKK9Ca0J7QkdCQ0Jsg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QkdCQ0Jsg0JjQoNCY0KEKK9Ca0J7QkdCQ0Jsg0JjQktCQ0J0KK9Ca0J7QkdCY0JvQkNCg0JjQiyDQgtCj0KDQgtCY0KbQkAor0JrQntCR0JjQm9CQ0KDQntCSINCQ0J3Qk9CV0JvQmNCd0JAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQidCj0JHQntCc0JjQoAor0JrQntCR0JjQm9CQ0KDQntCSINCc0JjQm9CQ0J3QmtCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0JzQmNCb0J7QqAor0JrQntCR0JjQm9CQ0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQndCV0JPQntCS0JDQnQor0JrQntCR0JjQm9CQ0KDQntCSINCd0JXQodCi0J7QoAor0JrQntCR0JjQm9CQ0KDQntCSINCh0JjQnNCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0KLQntCo0JAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQktCQ0KHQkAor0JrQntCR0JjQidCh0JrQmCDQgtCe0KDQgtCVCivQmtCe0JHQmNCJ0KHQmtCYINCU0J7QkdCg0JjQm9CQCivQmtCe0JHQmNCJ0KHQmtCYINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7QkdCY0InQodCa0Jgg0JTQo9Co0JDQnQor0JrQntCR0JjQidCh0JrQmCDQm9CQ0JfQkNCgCivQmtCe0JHQmNCJ0KHQmtCYINCc0JjQm9Ce0KgKK9Ca0J7QkdCY0InQodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QkdCY0InQodCa0Jgg0JzQm9CQ0JTQldCdCivQmtCe0JHQmNCJ0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQntCR0JjQidCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0J7QkdCY0InQodCa0Jgg0JLQmNCU0JAKK9Ca0J7QkdCY0JvQodCa0Jgg0JzQkNCg0JjQiNCQCivQmtCe0JHQoNCV0KXQldCbINCb0JDQiNCe0KgKK9Ca0J7QptCQ0J8g0JzQkNCg0JjQiNCQCivQmtCe0KbQkNCfINCc0JjQoNCQCivQmtCe0KbQkNCfINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QptCYINCk0JXQoNCV0J3Qpgor0JrQntCm0Jgg0KDQldCW0JUKK9Ca0J7QptCY0Isg0JbQmNCa0JjQptCQCivQmtCe0KbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KbQmNCLINCQ0J3QmNCm0JAKK9Ca0J7QptCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QptCY0Isg0IjQkNCh0J3QkAor0JrQntCm0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QptCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JrQntCm0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQntCm0JjQiyDQodCY0J3QmNCo0JAKK9Ca0J7QptCY0Isg0KHQm9CQ0ILQkNCd0JAKK9Ca0J7QptCY0Isg0KHQm9CQ0JLQmtCeCivQmtCe0KbQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QptCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCm0JjQiyDQktCV0JvQmNCd0JrQkAor0JrQntCm0JjQiyDQl9CS0JXQl9CU0JDQnQor0JrQntCm0JjQiNCQ0J3Qp9CY0Isg0JzQmNCg0JAKK9Ca0J7QptCa0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQmtCe0KbQmtCQ0KAg0JHQntCg0JjQodCb0JDQkgor0JrQntCm0JrQkNCgINCJ0KPQkdCe0JzQmNCgCivQmtCe0KbQmtCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCm0JrQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0KbQmtCQ0KDQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0KbQmtCQ0KDQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7QptCeINCo0JDQndCU0J7QoAor0JrQntCm0J4g0JXQoNCW0JXQkdCV0KIKK9Ca0J7QptCe0InQldCS0JDQpiDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qj9CeINCh0JDQqNCQCivQmtCe0I/QniDQl9Ce0KDQkNCdCivQmtCe0JTQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCU0KDQkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0JrQntCU0KDQkNCd0J7QkiDQodCg0JXQlNCe0IjQlQor0JrQntCU0KDQmNCdINCJ0KPQlNCc0JjQm9CQCivQmtCe0JPQntCIINCV0JTQo9CQ0KDQlAor0JrQntCT0J7QiCDQldCc0JAKK9Ca0J7QpSDQiNCe0JbQldCkCivQmtCe0KUg0KHQkNCS0JXQotCQCivQmtCe0KXQkNCd0JXQpiDQqNCQ0J3QlNCe0KAKK9Ca0J7QpdCQ0J3QldCmINCk0KDQkNCK0JAKK9Ca0J7QpdCQ0J3QldCmINCT0JDQqNCf0JDQoAor0JrQntCl0JDQndCV0KYg0IjQntCS0JDQnQor0JrQntCl0JDQndCV0KYg0JzQkNCg0JjQiNCQCivQmtCe0KXQkNCd0JXQpiDQn9CQ0JsKK9Ca0J7QpdCj0KIg0ILQo9Cg0JAKK9Ca0J7QpdCj0KIg0KHQotCe0IjQkAor0JrQntCI0KfQmNCLINCQ0J3QgtCV0JvQmtCeCivQmtCe0IjQp9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QiNCn0JjQiyDQmNCS0JDQndCQCivQmtCe0IjQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0J7QiNCn0JjQiyDQodCg0JXQlNCe0IjQlSDQlNCgCivQmtCe0IjQp9CY0J0g0I/QldCc0JjQidCQCivQmtCe0IjQp9CY0J0g0JzQmNCb0JXQktCQCivQmtCe0IjQkNCU0JjQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCo0JrQngor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQkdCe0KDQngor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQmtCQ0KLQkAor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQnNCY0KDQkAor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQoNCQ0JTQlQor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCI0JTQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0IjQlNCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0IjQlNCY0Isg0J/QldCi0JDQoAor0JrQntCI0JjQp9CY0Isg0J3QntCS0JrQkAor0JrQntCI0JjQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCI0JjQp9CY0J0g0JzQmNCb0JDQnQor0JrQntCI0JjQiyDQp9CV0JTQntCc0JjQoAor0JrQntCI0JjQiyDQltCY0JLQkNCdCivQmtCe0IjQmNCLINCC0KPQoNCQ0IIKK9Ca0J7QiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QiNCY0Isg0JDQoNCh0JXQnQor0JrQntCI0JjQiyDQkdCe0KjQmtCeCivQmtCe0IjQmNCLLdCR0J7QltCQ0J3QmNCLINCh0J7QpNCY0IjQkAor0JrQntCI0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QiNCY0Isg0JTQkNCd0JjQptCQCivQmtCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQntCI0JjQiyDQlNCg0JDQk9CY0IrQkAor0JrQntCI0JjQiyDQlNCj0KjQkNCdCivQmtCe0IjQmNCLINCV0KDQltCV0JHQldCiCivQmtCe0IjQmNCLINCT0J7QoNCQ0J0KK9Ca0J7QiNCY0Isg0JPQntCg0JDQnQor0JrQntCI0JjQiyDQk9Ce0KDQkNCdCivQmtCe0IjQmNCLINCl0KDQmNCh0KLQmNCk0J7QoAor0JrQntCI0JjQiyDQmNCS0JDQnQor0JrQntCI0JjQiyDQmNCS0JDQnQor0JrQntCI0JjQiyDQmNCS0JDQnQor0JrQntCI0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQntCI0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQntCI0JjQiyDQiNCe0JLQngor0JrQntCI0JjQiyDQm9CV0J/QntCh0JDQktCQCivQmtCe0IjQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCI0JjQiyDQidCj0JHQntCU0KDQkNCTCivQmtCe0IjQmNCLINCb0KPQmtCQCivQmtCe0IjQmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0JzQmNCb0JDQnQor0JrQntCI0JjQiyDQnNCY0JvQkNCdCivQmtCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCQCivQmtCe0IjQmNCLINCc0JjQm9CV0J3QkAor0JrQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0JrQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0JrQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0JrQntCI0JjQiyDQnNCY0JvQntCS0JjQndCQCivQmtCe0IjQmNCLINCc0JjQntCU0KDQkNCTCivQmtCe0IjQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0IjQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCe0IjQmNCLINCd0JXQgtCeCivQmtCe0IjQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCe0IjQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCe0IjQmNCLINCd0JXQlNCV0InQmtCeCivQmtCe0IjQmNCLINCe0JvQk9CY0KbQkAor0JrQntCI0JjQiyDQn9CV0KLQkNCgCivQmtCe0IjQmNCLINCg0JDQlNCY0JLQntCICivQmtCe0IjQmNCLINCg0KPQltCY0KbQkAor0JrQntCI0JjQiyDQoNCj0JbQmNCm0JAKK9Ca0J7QiNCY0Isg0KHQkNCS0J4KK9Ca0J7QiNCY0Isg0KHQmNCc0JXQntCdCivQmtCe0IjQmNCLINCh0JjQndCY0KjQkAor0JrQntCI0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9Ca0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0IjQmNCLINCh0KLQldCS0JDQnQor0JrQntCI0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QiNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCe0IjQmNCLINCj0JPQidCV0KjQkAor0JrQntCI0JjQiyDQktCQ0KHQkAor0JrQntCI0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQntCI0JjQiyDQktCY0J3QmtCQCivQmtCe0IjQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JrQntCI0J7QktCY0Isg0JbQkNCg0JrQngor0JrQntCI0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Ca0J7QmtCQ0Jgg0KjQkNCd0JTQntCgCivQmtCe0JrQkNCYINCo0JDQndCU0J7QoAor0JrQntCa0JDQmCDQqNCQ0J3QlNCe0KAKK9Ca0J7QmtCQ0Jgg0JDQm9CY0KHQkAor0JrQntCa0JDQmCDQldCb0JXQndCQCivQmtCe0JrQkNCYINCk0JXQoNCV0J3Qpgor0JrQntCa0JDQmCDQpNCV0KDQldCd0KYKK9Ca0J7QmtCQ0Jgg0KTQldCg0JXQndCmCivQmtCe0JrQkNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QmtCQ0Jgg0JvQkNCh0JvQngor0JrQntCa0JDQmCDQnNCQ0JPQlNCe0JvQndCQCivQmtCe0JrQkNCYINCc0JjQpdCQ0IjQm9CeCivQmtCe0JrQkNCYINCi0JjQkdCe0KAKK9Ca0J7QmtCQ0J0g0JjQktCQ0J0KK9Ca0J7QmtCQ0J3QntCSINCc0JjQm9CV0KLQkAor0JrQntCa0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QmtCQ0J3QntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JrQntCa0JDQoCDQktCV0KDQmNCm0JAKK9Ca0J7QmtCQ0KAg0JLQmNCb0JzQkAor0JrQntCa0JXQiSDQotCj0JPQntCc0JjQoAor0JrQntCa0JXQl9CQINCW0JDQoNCa0J4KK9Ca0J7QmtCV0JfQkCDQlNCj0KjQkNCdCivQmtCe0JrQldCX0JAg0JzQmNCb0JXQndCQCivQmtCe0JrQmNCLINCI0J7QktCQ0J0KK9Ca0J7QmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCa0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCa0JjQoCDQidCj0JHQngor0JrQntCa0J7QoNCj0Kgg0J7QodCi0J7QiNCQCivQmtCe0JrQntCiINCg0JDQlNCVCivQmtCe0JrQntCiINCh0JzQmNCJ0JAKK9Ca0J7QmtCe0KIg0KHQoNCV0KLQkAor0JrQntCa0J7QoiDQodCS0JXQotCb0JDQndCQCivQmtCe0JrQntCiINCS0JjQptCeCivQmtCe0JrQntCi0J7QktCY0Isg0JbQmNCS0JrQngor0JrQntCa0J7QotCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCe0JrQntCi0J7QktCY0Isg0JPQntCI0JrQngor0JrQntCa0J7QotCe0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QmtCe0KLQntCS0JjQiyDQmNCS0JjQptCQCivQmtCe0JrQntCi0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ca0J7QmtCe0KLQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0J7QmtCe0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0JrQntCi0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ca0J7QmtCe0KLQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JrQntCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQmtCe0JvQgtCV0KDQkNCIINCC0J7QnQor0JrQntCb0JDQp9CQ0KDQmNCLINCS0JXQm9CY0JHQntCgCivQmtCe0JvQkNCo0JjQndCQ0KYg0InQo9CR0J7QnNCY0KAKK9Ca0J7Qm9CQ0Jog0JTQo9Co0JDQnQor0JrQntCb0JDQmiDQiNCV0JvQldCd0JAKK9Ca0J7Qm9CQ0Jog0JzQmNCb0JDQnQor0JrQntCb0JDQmtCe0JLQmNCLINCQ0JvQnNCQ0JcKK9Ca0J7Qm9CQ0JrQntCS0JjQiyDQiNCj0KDQlQor0JrQntCb0JDQmtCe0JLQmNCLINCc0JjQm9CVCivQmtCe0JvQkNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0J7Qm9CQ0JrQo9Co0JjQiyDQmNCS0JjQptCQCivQmtCe0JvQkNCa0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQntCb0JDQndCeINCQ0J3QotCe0J0KK9Ca0J7Qm9CQ0J3QniDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0J7Qm9CQ0J3QniDQmNCS0JDQnQor0JrQntCb0JDQndCeINCI0KPQm9Ca0JAKK9Ca0J7Qm9CQ0KAg0JDQndCQCivQmtCe0JvQkNCgINCQ0J3QkAor0JrQntCb0JDQoCDQkNCd0JTQoNCY0IjQkAor0JrQntCb0JDQoCDQkNCd0KLQkNCbCivQmtCe0JvQkNCgINCU0JDQoNCa0J4KK9Ca0J7Qm9CQ0KAg0JjQkdCe0InQmtCQCivQmtCe0JvQkNCgINCY0JLQkNCdCivQmtCe0JvQkNCgINCI0J7QodCY0J8KK9Ca0J7Qm9CQ0KAg0IjQntCh0JjQnwor0JrQntCb0JDQoCDQiNCj0JvQmNCI0JDQndCQCivQmtCe0JvQkNCgINCb0JDQiNCe0KgKK9Ca0J7Qm9CQ0KAg0JvQkNCh0JvQngor0JrQntCb0JDQoCDQm9Ce0JfQmNCd0JrQkAor0JrQntCb0JDQoCDQnNCQ0KLQmNCI0JAKK9Ca0J7Qm9CQ0KAg0JzQmNCb0JjQptCQCivQmtCe0JvQkNCgINCc0JjQoNCa0J4KK9Ca0J7Qm9CQ0KAg0J/QkNCS0JvQlQor0JrQntCb0JDQoCDQn9CV0KLQkNCgCivQmtCe0JvQkNCg0Kgg0KjQotCV0KTQkNCdCivQmtCe0JvQkNCg0JXQktCY0Isg0InQo9CR0JjQptCQCivQmtCe0JvQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JrQntCb0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JvQkNCg0JjQiyDQkdCg0JjQk9CY0KLQkAor0JrQntCb0JDQoNCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0J7Qm9CQ0KDQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0JvQkNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0JvQkNCg0JjQiyDQlNCj0KjQkNCdCivQmtCe0JvQkNCg0JjQiyDQpNCY0JvQmNCfCivQmtCe0JvQkNCg0JjQiyDQmNCU0JAKK9Ca0J7Qm9CQ0KDQmNCLINCa0J7QodCi0JAKK9Ca0J7Qm9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JrQntCb0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0JvQkNCg0JjQiyDQnNCY0JvQkNCdCivQmtCe0JvQkNCg0JjQiyDQnNCY0JvQkNCdCivQmtCe0JvQkNCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0JrQntCb0JDQoNCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0JvQkNCg0JjQiyDQndCQ0JTQkAor0JrQntCb0JDQoNCY0Isg0J3QldCc0JDQitCQCivQmtCe0JvQkNCg0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7Qm9CQ0KDQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQkNCg0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7Qm9CQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7Qm9CQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7Qm9CQ0KDQmNCLINCh0J3QldCW0JDQndCQCivQmtCe0JvQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7Qm9CQ0KDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQmNCLINCS0J7QiNCQCivQmtCe0JvQkNCg0JjQiyDQl9Ce0KDQkNCdCivQmtCe0JvQkNCg0JjQiyDQl9CS0J7QndCa0J4KK9Ca0J7Qm9CQ0KDQntCSINCW0JjQktCQCivQmtCe0JvQkNCg0J7QkiDQgtCe0KDQgtCVCivQmtCe0JvQkNCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCb0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0JvQkNCg0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0JrQntCb0JDQoNCe0JIg0JPQntCI0JrQngor0JrQntCb0JDQoNCe0JIg0IjQntCS0JDQnQor0JrQntCb0JDQoNCe0JIg0IjQntCS0JDQnQor0JrQntCb0JDQoNCe0JIg0IjQo9Cb0JrQkAor0JrQntCb0JDQoNCe0JIg0JrQkNCi0JUKK9Ca0J7Qm9CQ0KDQntCSINCJ0JjQidCQ0J3QkAor0JrQntCb0JDQoNCe0JIg0JzQkNCg0JjQptCQCivQmtCe0JvQkNCg0J7QkiDQnNCY0JvQkNCd0JrQkAor0JrQntCb0JDQoNCe0JIg0JzQmNCb0JjQktCe0IgKK9Ca0J7Qm9CQ0KDQntCSINCc0JjQm9Ce0KgKK9Ca0J7Qm9CQ0KDQntCSINCc0J7QnNCY0KAKK9Ca0J7Qm9CQ0KDQntCSINCd0JDQlNCQINCU0KAg0JvQldCa0JDQoAor0JrQntCb0JDQoNCe0JIg0J3QldCR0J7QiNCo0JAKK9Ca0J7Qm9CQ0KDQntCSINCf0JDQktCb0JUKK9Ca0J7Qm9CQ0KDQntCSINCf0JXQotCQ0KAKK9Ca0J7Qm9CQ0KDQntCSINCg0JDQlNCe0IjQmtCeCivQmtCe0JvQkNCg0J7Qki3QoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JrQntCb0JDQoNCe0JIg0KHQkNCS0JAKK9Ca0J7Qm9CQ0KDQntCSINCi0J7QlNCe0KAKK9Ca0J7Qm9CQ0KDQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQntCS0JjQiyDQltCY0JLQmtCeCivQmtCe0JvQkNCg0J7QktCY0Isg0IjQldCb0JXQndCQCivQmtCe0JvQkNCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0JvQkNCg0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9Ca0J7Qm9CQ0KDQntCS0JjQiyDQm9Cj0JrQkCDQlNCgCivQmtCe0JvQkNCg0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7Qm9CQ0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7Qm9CQ0KDQntCS0JjQiyDQndCV0J3QkNCUCivQmtCe0JvQkNCg0KHQmtCYINCC0J7QoNCC0JUKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JDQndCY0KbQkAor0JrQntCb0JDQoNCh0JrQmCDQkNCg0J/QkNCUCivQmtCe0JvQkNCg0KHQmtCYINCR0J7QodCY0InQmtCQCivQmtCe0JvQkNCg0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCb0JDQoNCh0JrQmCDQlNCQ0J3QmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JTQo9Co0JDQndCa0JAg0JTQmNCf0Jsg0J7QldCmCivQmtCe0JvQkNCg0KHQmtCYINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0IjQntCS0JDQnQor0JrQntCb0JDQoNCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JvQkNCh0JvQngor0JrQntCb0JDQoNCh0JrQmCDQm9CQ0JfQkNCgCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CQ0JTQmNCdCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JzQmNCb0JXQndCa0J4g0JLQldCi0JXQoNCY0J3QkNCgCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CY0KbQkAor0JrQntCb0JDQoNCh0JrQmCDQnNCY0KLQkNCgCivQmtCe0JvQkNCg0KHQmtCYINCc0JvQkNCU0JXQnQor0JrQntCb0JDQoNCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0J3QkNCU0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0J3QmNCa0J7Qm9CQCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCc0JjQm9CQCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCb0JDQoNCh0JrQmCDQotCe0JTQntCgCivQmtCe0JvQkNCg0KHQmtCYINCS0JXQoNCQCivQmtCe0JvQkNCg0KHQmtCYINCX0JTQoNCQ0JLQmtCeCivQmtCe0JvQkdCQ0KEg0JTQkNCd0JjQiNCV0JsKK9Ca0J7Qm9CR0JDQoSDQiNCQ0J3QmtCeCivQmtCe0JvQkdCQ0KEg0IjQntCQ0JrQmNCcCivQmtCe0JvQkdCQ0KEg0JzQldCb0JDQndCY0IjQkAor0JrQntCb0JHQkNChINCc0JjQm9CV0JLQkAor0JrQntCb0JHQkNChINCS0JvQkNCU0JAKK9Ca0J7Qm9CP0JjQiyDQkdCg0JDQndCa0JAKK9Ca0J7Qm9CP0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7Qm9CP0JjQnSDQnNCY0KDQmtCeCivQmtCe0JvQj9CY0J0g0JLQldCh0JXQm9CY0J0KK9Ca0J7Qm9CU0JDQnSDQnNCY0JvQldCd0JrQngor0JrQntCb0JXQqNCa0JAg0JXQlNCj0JDQoNCUCivQmtCe0JvQldCU0JDQoCDQkNCd0JTQoNCY0IjQkAor0JrQntCb0JXQlNCY0J0g0ILQntCg0ILQlQor0JrQntCb0JXQlNCY0J0g0KTQntCi0JjQiNCVCivQmtCe0JvQldCU0JjQnSDQnNCY0JvQntCoCivQmtCe0JvQldCU0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQntCb0JXQlNCY0J0g0J/QldCi0JDQoAor0JrQntCb0JXQlNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JrQntCb0JXQlNCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ca0J7Qm9CV0JTQmNCdINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQldCU0JjQnSDQodCi0JXQktCQ0J0KK9Ca0J7Qm9CV0JTQmNCdINCS0JXQm9CY0JzQmNCgCivQmtCe0JvQldCU0JjQnSDQktCV0KDQkAor0JrQntCb0JXQoCDQkNCd0KLQkNCbCivQmtCe0JvQldCgINCb0JDQiNCe0KgKK9Ca0J7Qm9CV0KHQkNCgINCC0KPQoNCQCivQmtCe0JvQldCh0JDQoCDQkNCd0JjQptCQCivQmtCe0JvQldCh0JDQoCDQpNCV0JTQntCgCivQmtCe0JvQldCh0JDQoCDQpNCV0KDQldCd0KYKK9Ca0J7Qm9CV0KHQkNCgINCT0JDQktCg0JAKK9Ca0J7Qm9CV0KHQkNCgINCI0JDQndCe0KgKK9Ca0J7Qm9CV0KHQkNCgINCI0J7QktCQ0J0KK9Ca0J7Qm9CV0KHQkNCgINCI0J7QktCQ0J0KK9Ca0J7Qm9CV0KHQkNCgINCI0KPQm9CY0IjQkNCdCivQmtCe0JvQldCh0JDQoCDQiNCj0JvQmNCI0JDQnQor0JrQntCb0JXQodCQ0KAg0JrQkNCi0JjQptCQCivQmtCe0JvQldCh0JDQoCDQmtCh0JXQndCY0IjQkAor0JrQntCb0JXQodCQ0KAg0JzQmNCl0JDQiNCb0J4KK9Ca0J7Qm9CV0KHQkNCgINCf0JXQotCQ0KAg0JTQoAor0JrQntCb0JXQodCQ0KAg0J/QldCi0JDQoAor0JrQntCb0JXQodCQ0KAg0KHQmNCc0JXQntCdCivQmtCe0JvQldCh0JDQoCDQktCV0KDQkAor0JrQntCb0JXQodCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCb0JXQodCQ0KAg0JfQntCg0JjQptCQCivQmtCe0JvQldCh0JDQoNCY0Isg0JLQmNCd0JrQngor0JrQntCb0JXQkiDQotCe0JTQntCg0JrQkAor0JrQntCb0JjQiyDQkNCY0KjQkAor0JrQntCb0JjQnSDQiNCe0JbQldCkINCd0J7QktCY0J3QkNCgCivQmtCe0InQkNCP0JjQndCh0JrQmCDQiNCe0JLQkNCdCivQmtCe0InQkNCP0JjQndCh0JrQmCDQodCi0JXQpNCQ0J3QmNCI0JAKK9Ca0J7QidCQ0IjQkCDQkdCb0JDQk9Ce0IjQlQor0JrQntCJ0JDQiNCQINCU0KDQkNCT0JDQnQor0JrQntCJ0JDQiNCQINCT0J7QoNCQ0J0KK9Ca0J7QidCQ0J3QmNCdINCf0JXQotCQ0KAKK9Ca0J7Qm9Cc0JDQnSDQiNCe0JbQldCkCivQmtCe0JvQntCn0JDQmCDQiNCe0KHQmNCfCivQmtCe0JvQntCo0IrQkNCYINCc0JjQoNCe0J0KK9Ca0J7Qm9Ce0KjQitCQ0IjQmCDQiNCQ0J3QmtCeCivQmtCe0JvQntCo0IrQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCb0J7Qn9CY0Isg0J/QldCi0JDQoAor0JrQntCb0J7Qn9CY0Isg0KDQo9CW0JjQptCQCivQmtCe0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7Qm9Ci0JjQnSDQkdCg0JDQndCa0J4KK9Ca0J7Qm9Cj0J3Qj9CY0Isg0JbQmNCS0JrQkAor0JrQntCb0KPQndCP0JjQiyDQgtCj0KDQkAor0JrQntCb0KPQndCP0JjQiyDQkNCd0JrQkAor0JrQntCb0KPQndCP0JjQiyDQn9CV0KDQmNCm0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0KHQm9CQ0JLQmtCeCivQmtCe0JvQo9Cd0I/QmNCLINCh0JvQkNCS0JrQngor0JrQntCb0KPQndCP0JjQiNCQINCQ0J3QgtCV0JvQmtCQCivQmtCe0JvQo9Cd0I/QmNCI0JAg0JHQntCg0JjQodCb0JDQkgor0JrQntCb0KPQndCP0JjQiNCQINCU0JDQktCe0KDQmtCQCivQmtCe0JvQo9Cd0I/QmNCI0JAg0JTQoNCQ0JPQkNCdCivQmtCe0JvQo9Cd0I/QmNCI0JAg0JvQkNCX0JDQoAor0JrQntCb0KPQndCP0JjQiNCQINCJ0KPQkdCe0JzQmNCgCivQmtCe0JvQo9Cd0I/QmNCI0JAg0JzQmNCg0JrQngor0JrQntCb0KPQndCP0JjQiNCQINCd0JDQlNCQCivQmtCe0JvQo9Cd0I/QmNCI0JAg0J3QmNCa0J7Qm9CQCivQmtCe0JvQo9Cd0I/QmNCI0JAg0JfQntCg0JrQkAor0JrQntCb0KPQotCQ0KYg0JzQkNCi0JjQiNCQCivQmtCe0JzQqNCY0Isg0IjQntCS0JDQnQor0JrQntCc0KjQniDQndCY0JrQntCb0JAKK9Ca0J7QnNCQ0JQg0JDQndCQCivQmtCe0JzQkNCUINCT0J7QiNCa0J4KK9Ca0J7QnNCQ0JQg0KDQkNCi0J7QnNCY0KAKK9Ca0J7QnNCQ0JQg0KLQntCc0JjQodCb0JDQkgor0JrQntCc0JDQlNCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQntCc0JDQlNCQ0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQmtCe0JzQkNCU0JDQoNCY0Isg0JzQmNCb0J7QqAor0JrQntCc0JDQlNCY0J3QkCDQnNCQ0J3QlQor0JrQntCc0JDQlNCY0J3QkCDQktCV0JvQmNCh0JvQkNCSCivQmtCe0JzQkNCU0JjQndCQINCS0KPQiNCQ0JTQmNCdCivQmtCe0JzQkNCU0JjQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QnNCQ0JTQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQntCc0JDQlNCY0J3QntCS0JjQiyDQnNCY0KDQkAor0JrQntCc0JDQlNCY0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JzQkNCdINCR0J7QodCY0InQmtCQCivQmtCe0JzQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Ca0J7QnNCQ0KAg0JPQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QnNCQ0KAg0KDQkNCU0JjQktCe0IjQlQor0JrQntCc0JDQoCDQodCb0JDQktCa0JAKK9Ca0J7QnNCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCc0JDQoCDQl9Ce0KDQmtCQCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCc0JDQoNCn0JXQktCY0Isg0JjQqNCi0JLQkNCdCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Ca0J7QnNCQ0KDQp9CV0JLQmNCLINCc0JjQm9CY0J3QmtCeINCU0KAKK9Ca0J7QnNCQ0KDQp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QnNCQ0KDQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QnNCQ0KDQmNCm0JAg0JzQkNCg0JrQngor0JrQntCc0JDQoNCY0KbQkCDQndCe0JLQmtCeCivQmtCe0JzQkNCg0JjQptCQINCg0JDQlNCc0JjQm9CQCivQmtCe0JzQkNCg0J7QnNCYINCC0J7QoNCC0JUKK9Ca0J7QnNCQ0KDQntCc0Jgg0JDQndCC0JXQm9Ca0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JHQntCg0JHQkNCb0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JHQntCg0IjQkNCd0JrQkAor0JrQntCc0JDQoNCe0JzQmCDQkdCe0KDQiNCQ0J3QmtCQCivQmtCe0JzQkNCg0J7QnNCYINCY0KDQnNCQCivQmtCe0JzQkNCg0J7QnNCYINCa0JvQkNCg0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JzQkNCT0JTQntCb0J3QkAor0JrQntCc0JDQoNCe0JzQmCDQnNCQ0JPQlNCe0JvQndCQCivQmtCe0JzQkNCg0J7QnNCYINCc0JDQoNCY0IjQkAor0JrQntCc0JDQoNCe0JzQmCDQn9CV0KLQkNCgCivQmtCe0JzQkNCg0J7QnNCYINCX0J7Qm9Ci0JDQnQor0JrQntCc0JDQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JzQkNCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCc0JDQoNCe0JIg0JHQoNCQ0J3QmtCQCivQmtCe0JzQkNCg0J7QkiDQlNCg0JDQk9CY0KbQkAor0JrQntCc0JDQoNCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0JrQntCc0JDQotCY0J3QkCDQlNCg0JDQk9CQ0J0KK9Ca0J7QnNCQ0KLQmNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QnNCQ0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQkNCi0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QnNCQ0JfQldCmINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7QnNCQ0JfQldCmINCf0JXQotCQ0KAKK9Ca0J7QnNCR0JXQoNCYINCQ0JLQlNCj0KgKK9Ca0J7QnNCR0JjQiSDQktCV0KDQkAor0JrQntCc0JXQndCU0JAg0JDQndCU0KDQmNCI0JAKK9Ca0J7QnNCY0J3QmtCeINCJ0KPQkdCY0KbQkAor0JrQntCc0JvQldCd0JjQiyDQgtCe0KDQgtCVCivQmtCe0JzQm9CV0J3QntCSINCW0JjQktCQ0J0KK9Ca0J7QnNCb0JXQndCe0JIg0ILQntCg0ILQlQor0JrQntCc0JvQldCd0J7QkiDQiNCe0JLQkNCdCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QnNCb0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QnNCb0JXQndCe0JLQmNCLINCc0JjQm9CVCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQktCV0InQmtCeCivQmtCe0JzQm9CV0J3QodCa0Jgg0JbQmNCS0JDQnQor0JrQntCc0JvQldCd0KHQmtCYLdCU0JXQm9CY0Isg0JLQo9Ca0J7QodCQ0JLQkCDQlNCgCivQmtCe0JzQm9CV0J3QodCa0Jgg0JfQntCg0JDQnQor0JrQntCc0InQldCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCc0J7QnNCY0KAKK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCc0InQldCd0J7QktCY0Isg0JLQm9CQ0JTQngor0JrQntCc0JvQo9Co0JDQnSDQkdCe0JbQkAor0JrQntCc0JvQo9Co0JrQmCDQmNCS0JDQndCQINCc0KAKK9Ca0J7QnNCd0JXQndCY0Isg0JjQktCQ0J3QmtCQCivQmtCe0JzQndCV0J3QntCSINCo0JDQoNCb0J7QotCQCivQmtCe0JzQndCV0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQmtCe0JzQndCV0J3QntCSINCd0JjQmtCe0JvQkAor0JrQntCc0J3QldCd0J7QkiDQodCQ0J3QlNCg0JAKK9Ca0J7QnNCd0JXQndCe0JIg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0JzQndCV0J3QntCSINCS0JXQodCV0JvQmNCd0JAKK9Ca0J7QnNCd0JXQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQmtCe0JzQndCV0J3QntCS0JjQiyDQltCY0JLQkNCdCivQmtCe0JzQndCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCc0J3QldCd0J7QktCY0Isg0InQo9CR0J7QiNCVCivQmtCe0JzQndCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQndCV0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JzQndCV0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JrQntCc0J3QldCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQmtCe0JzQntCh0JDQoCDQkdCg0JDQndCa0J4KK9Ca0J7QnNCe0KHQkNCgINCg0JDQiNCa0J4KK9Ca0J7QnNCe0JfQldCmINCC0J7QoNCC0JUKK9Ca0J7QnNCe0JfQldCmINCb0JDQl9CQ0KAKK9Ca0J7QnSDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JrQntCdINCh0KLQldCS0JDQnQor0JrQntCdINCi0J7QnNCQ0JYKK9Ca0J7QndCn0JDQoCDQkNCd0JTQoNCY0IjQkAor0JrQntCd0KfQkNCgINCR0J7QodCY0InQmtCQCivQmtCe0J3Qp9CQ0KAg0IjQntCS0J4KK9Ca0J7QndCn0JDQoCDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0J3Qp9CQ0KAg0JzQmNCg0JAKK9Ca0J7QndCn0JDQoCDQnNCY0KLQkNCgCivQmtCe0J3Qp9CQ0KAg0J3QmNCa0J7Qm9CQCivQmtCe0J3Qp9CQ0KAg0J3QmNCa0J7Qm9CQCivQmtCe0J3Qp9CQ0KAg0KDQkNCd0JrQngor0JrQntCd0KfQkNCgINCh0JvQkNCS0JrQngor0JrQntCd0KfQkNCgINCX0J7QoNCQCivQmtCe0J3Qp9CQ0KAg0JfQntCg0JAKK9Ca0J7QndCn0JDQoNCV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCd0KfQkNCg0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQntCd0KfQldCaINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0J7QndCQ0JrQntCSINCd0JXQlNCV0InQmtCeCivQmtCe0J3QpiDQqNCQ0J3QlNCe0KAKK9Ca0J7QndCmINCY0KjQotCS0JDQnQor0JrQntCd0KYg0JjQm9Ce0J3QkAor0JrQntCd0KYg0InQmNCJ0JDQndCQCivQmtCe0J3QpiDQl9Ce0KDQkNCd0JrQkAor0JrQntCd0JTQkNCdINCc0JDQoNCT0JDQoNCV0KLQkAor0JrQntCd0JTQmNCLINCQ0J3QkAor0JrQntCd0JTQmNCLINCQ0J3QmtCQCivQmtCe0J3QlNCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0J3QlNCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0J3QlNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QndCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0J3QlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QndCU0JjQiyDQiNCe0JLQkNCdCivQmtCe0J3QlNCY0Isg0InQo9CR0JjQptCQCivQmtCe0J3QlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QndCU0JjQiyDQnNCY0KDQkAor0JrQntCd0JTQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCe0J3QlNCY0Isg0J3QldCc0JDQitCQCivQmtCe0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J7QndCU0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCd0JTQmNCLINCg0JDQiNCa0J4KK9Ca0J7QndCU0JjQiyDQodCQ0J3QlNCg0JAKK9Ca0J7QndCU0JjQiyDQotCg0JjQktCeCivQmtCe0J3QlNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0J7QndCU0JjQiyDQl9Ce0KDQmtCQCivQmtCe0J3QlNCe0IjQkNCd0Jgg0ILQntCg0ILQlQor0JrQntCd0JTQoNCQ0Jog0KHQotCe0IjQkNCdCivQmtCe0J3QlNCg0JDQotCI0JXQkiDQqNCi0JXQpNCQ0J3QmNCI0JAKK9Ca0J7QndCV0KfQndCYINCc0JDQoNCY0IjQkAor0JrQntCd0JXQptCa0Jgg0JfQm9CQ0KLQmtCeCivQmtCe0J3QldCm0JrQmCDQl9Cb0JDQotCa0J4KK9Ca0J7QndCV0J0g0KDQntCR0JXQoNCiCivQmtCe0J3QldCdINCg0J7QkdCV0KDQogor0JrQntCd0JXQodCa0JAg0InQmNCJ0JDQndCQCivQmtCe0J3Qk9CeINCS0JXQoNCQCivQmtCe0IrQkNCi0JjQiyDQqNCY0JzQngor0JrQntCK0JXQktCY0Isg0JbQmNCS0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ca0J7QitCV0JLQmNCLINCQ0J3QkAor0JrQntCK0JXQktCY0Isg0JTQkNCd0JjQm9CeCivQmtCe0IrQldCS0JjQiyDQlNCe0JHQoNCY0JLQntCICivQmtCe0IrQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmtCe0IrQldCS0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQmtCe0IrQldCS0JjQiyDQmNCS0JDQndCa0JAKK9Ca0J7QitCV0JLQmNCLINCc0JjQm9CV0JLQkAor0JrQntCK0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0J7QitCV0JLQmNCLINCc0JvQkNCC0JXQnQor0JrQntCK0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0IrQldCS0JjQiyDQndCV0J3QkNCUCivQmtCe0IrQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQntCK0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0J7QitCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQmtCe0IrQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7QitCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCK0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQmtCe0IrQmNCaINCd0JDQlNCQCivQmtCe0IrQmNCaINCS0JjQlNCe0IjQlQor0JrQntCK0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0IrQntCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0IrQntCS0JjQiyDQnNCQ0JrQodCY0JwKK9Ca0J7QitCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QitCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0IrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QitCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JrQntCK0J7QktCY0Isg0KHQnNCY0InQkAor0JrQntCK0J7QktCY0Isg0KHQntCk0JjQiNCQCivQmtCe0IrQntCS0JjQiyDQotCY0J3QmtCQCivQmtCe0IrQntCS0JjQiyDQktCV0KDQkAor0JrQntCd0JrQntCbINCc0JjQpdCQ0IjQm9CeCivQmtCe0J3QmtCe0Ikg0JzQkNCg0JjQiNCQCivQmtCe0J3QntCf0JXQmiDQodCi0JDQndCY0JzQmNCgCivQmtCe0J3QoNCQ0JQg0KTQoNCQ0IrQkAor0JrQntCd0KDQkNCUINCc0JjQoNCn0JAKK9Ca0J7QndCg0JDQlCDQn9CQ0JLQm9CVCivQmtCe0J3QodCi0JDQndCi0JjQnSDQkdCj0KXQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QmNCU0JjQoSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCY0KEg0JPQldCe0KDQk9CY0J7QoQor0JrQntCd0KHQotCQ0J3QotCY0J3QmNCU0JjQoSDQotCV0J7QlNCe0KAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCjINCh0J7QpNCY0IjQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCl0JXQoNCc0JjQndCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JvQo9Ca0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JrQntCd0KLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ca0J7QndCi0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQntCd0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QndCi0JjQiyDQodCb0JDQktCY0KbQkAor0JrQntCd0KLQoNCY0Isg0IjQntCS0JDQnQor0JrQntCf0KfQkNCd0KHQmtCYINCW0JXQidCa0J4KK9Ca0J7Qn9Cn0JDQndCh0JrQmCDQmNCg0JjQndCQCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0J/QldCi0JDQoAor0JrQntCf0KfQkNCd0KHQmtCYINCg0JDQlNCc0JjQm9CQCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0JLQm9CQ0JTQkAor0JrQntCf0KfQntCaINCQ0J3QkAor0JrQntCf0KfQntCaINCa0JDQotCY0KbQkAor0JrQntCf0KfQntCaINCc0JjQqNCQCivQmtCe0J/Qp9Ce0Jog0KHQkNCd0JTQoNCQCivQmtCe0J/QkNCK0JAg0JTQkNCd0JjQm9CeCivQmtCe0J/QkNCK0JAg0JTQoNCQ0JPQntCc0JjQoAor0JrQntCf0JDQitCQINCU0KPQqNCQ0J0KK9Ca0J7Qn9CQ0IrQkCDQlNCj0KjQkNCdCivQmtCe0J/QkNCK0JAg0JPQntCI0JrQngor0JrQntCf0JDQitCQINCT0J7QiNCa0J4KK9Ca0J7Qn9CQ0IrQkCDQmNCb0JjQiNCQCivQmtCe0J/QkNCK0JAg0InQo9Cf0JrQngor0JrQntCf0JDQitCQINCc0JjQi9CeCivQmtCe0J/QkNCK0JAg0JzQmNCe0JTQoNCQ0JMKK9Ca0J7Qn9CQ0IrQkCDQnNCY0KLQkNCgCivQmtCe0J/QkNCK0JAg0KDQkNCd0JjQodCb0JDQkgor0JrQntCf0JDQitCQINCg0J7QodCQCivQmtCe0J/QkNCK0JAg0JLQmNCUCivQmtCe0J/QkNChINCI0JDQndCe0KgKK9Ca0J7Qn9CV0KDQldCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0J/QldCg0JXQpiDQkNCd0JTQoNCY0IjQkAor0JrQntCf0JXQoNCV0KYg0IjQkNCd0J7QqAor0JrQntCf0JXQoNCV0KYg0IjQntCS0JDQnQor0JrQntCf0JXQoNCV0KYg0KHQotCV0JLQkNCdCivQmtCe0J/QldCg0JXQpiDQodCi0JXQktCQ0J0KK9Ca0J7Qn9CV0KHQotCV0J3QodCa0Jgg0JrQkNCi0JjQptCQCivQmtCe0J/QldCh0KLQmNCd0KHQmtCY0Igg0KDQldCT0JjQndCQCivQmtCe0J/QmNCLINCY0JvQntCd0JAKK9Ca0J7Qn9CY0KbQmyDQoNCj0JTQntCb0KQKK9Ca0J7Qn9CY0JvQntCS0JjQiyDQiNCe0KHQmNCfCivQmtCe0J/QmNCb0J7QktCY0Isg0JzQkNCg0JPQkAor0JrQntCf0JjQm9Ce0JLQmNCLLdCc0JjQiNCQ0KLQntCSINCU0KDQkNCT0JjQptCQCivQmtCe0J/QmNCb0J7QktCY0Isg0J/QkNCS0JvQlQor0JrQntCf0JjQotCe0JLQmNCLINCo0J/QmNCg0J4KK9Ca0J7Qn9CY0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0J/Qm9CQ0IrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7Qn9Cb0JDQitCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQntCf0JvQmNCLINCC0J7QoNCC0JUKK9Ca0J7Qn9Cb0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7Qn9Cb0JjQiyDQlNCj0KjQkNCdCivQmtCe0J/Qm9CY0Isg0JzQmNCb0JUKK9Ca0J7Qn9Cg0JXQndCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQmtCe0J/QoNCY0JLQqNCV0Jog0JfQktCe0J3QmNCc0JjQoAor0JrQntCf0KDQmNCS0JjQptCQINCQ0J3Qk9CV0JvQmNCd0JAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQkdCe0JbQmNCU0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCR0J7QltCY0JTQkNCgCivQmtCe0J/QoNCY0JLQmNCm0JAg0JHQntCg0JjQodCb0JDQkgor0JrQntCf0KDQmNCS0JjQptCQINCT0J7QoNCU0JDQndCQCivQmtCe0J/QoNCY0JLQmNCm0JAg0InQmNCJ0JDQndCQCivQmtCe0J/QoNCY0JLQmNCm0JAg0JzQmNCb0JXQndCa0J4KK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQnNCY0JvQo9Ci0JjQnQor0JrQntCf0KDQmNCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQmtCe0J/QoNCY0JLQmNCm0JAg0J3QntCS0JDQmgor0JrQntCf0KDQmNCS0JjQptCQINCe0JHQoNCV0J0KK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQn9CV0KLQkNCgCivQmtCe0J/QoNCY0JLQmNCm0JAg0KHQktCV0KLQntCX0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCX0J7QoNCQ0J0KK9Ca0J7Qn9Cj0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QoNCn0J7QmiDQiNCQ0J0KK9Ca0J7QoNCn0J7QmiDQnNCQ0KDQmNCI0JAKK9Ca0J7QoNCn0J7QmiDQktCb0JDQlNCY0JzQmNCgCivQmtCe0KDQkNCLINCW0JXQidCa0J4KK9Ca0J7QoNCQ0Isg0JDQndCC0JXQm9CY0IjQkAor0JrQntCg0JDQiyDQlNCj0KjQkNCdCivQmtCe0KDQkNCLINCT0J7QiNCa0J4KK9Ca0J7QoNCQ0Isg0JjQk9Ce0KAKK9Ca0J7QoNCQ0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCg0JDQiyDQmtCQ0KLQmNCm0JAKK9Ca0J7QoNCQ0Isg0InQo9CR0JjQodCQ0JIKK9Ca0J7QoNCQ0Isg0JzQkNCd0JUKK9Ca0J7QoNCQ0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QoNCQ0Isg0JzQmNCb0JDQnQor0JrQntCg0JDQiyDQnNCY0JvQlQor0JrQntCg0JDQiyDQnNCY0JvQlQor0JrQntCg0JDQiyDQnNCY0JvQlQor0JrQntCg0JDQiyDQnNCY0JvQlQor0JrQntCg0JDQiyDQnNCY0JvQntCS0JDQnSDQlNCgINCf0KDQntCkCivQmtCe0KDQkNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0KDQkNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0KDQkNCLINCc0JjQntCU0KDQkNCTCivQmtCe0KDQkNCLINCf0JXQotCQ0KAKK9Ca0J7QoNCQ0Isg0J/QldCi0KDQkAor0JrQntCg0JDQiyDQoNCQ0JTQlQor0JrQntCg0JDQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCg0JDQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCg0JDQiyDQoNCQ0JTQntCh0JDQkgor0JrQntCg0JDQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0KDQkNCLINCh0J3QldCW0JDQndCQCivQmtCe0KDQkNCLINCi0JDQotCI0JDQndCQCivQmtCe0KDQkNCLINCS0JvQkNCU0J4KK9Ca0J7QoNCQ0IjQmNCm0JAg0ILQo9Cg0JAKK9Ca0J7QoNCQ0IjQm9CY0IjQkCDQltCQ0KDQmtCeCivQmtCe0KDQkNCI0JvQmNCI0JAg0JbQkNCg0JrQngor0JrQntCg0JDQiNCb0JjQiNCQINCW0JDQoNCa0J4KK9Ca0J7QoNCQ0IjQm9CY0IjQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QoNCQ0IjQm9CY0IjQkCDQnNCY0JvQkNCdCivQmtCe0KDQkNCa0KMg0JvQo9Cn0JjQiNCQ0J0KK9Ca0J7QoNCQ0JrQoyDQm9Cj0KbQmNCI0JDQnQor0JrQntCg0JHQkNCi0KTQmNCd0KHQmtCYINCV0JvQktCY0KDQkAor0JrQntCg0JHQkNCi0KTQmNCd0KHQmtCYINCS0JjQmtCi0J7QoCDQlNCgCivQmtCe0KDQkdCQ0KLQktCY0J3QodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCe0KDQkdCQ0KLQktCY0J3QodCa0Jgt0JvQkNCb0J7QqNCV0JLQmNCLINCX0JvQkNCi0JAKK9Ca0J7QoNCR0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0J7QoNCU0JAg0JzQmNCb0J7QqAor0JrQntCg0JTQkCDQndCQ0J3QlNCe0KAKK9Ca0J7QoNCU0JjQiyDQgtCj0KDQkAor0JrQntCg0JTQmNCLINCR0J7QiNCQ0J0KK9Ca0J7QoNCU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQntCg0JTQmNCLINCT0J7QiNCa0J4KK9Ca0J7QoNCU0JjQiyDQnNCY0JvQkNCdCivQmtCe0KDQldCd0JjQiyDQk9CQ0JHQoNCY0JXQmwor0JrQntCg0JXQndCY0Isg0KLQldCe0JTQntCgCivQmtCe0KDQldCK0Jgg0ILQntCg0ILQlQor0JrQntCg0JXQitCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KDQldCK0Jgg0JvQkNCh0JvQngor0JrQntCg0JXQndCiINCb0KPQlNCS0JjQkwor0JrQntCg0KXQkNCc0JXQoCDQpNCV0KDQldCd0KYKK9Ca0J7QoNCl0JXQpiDQn9CQ0JLQm9CVCivQmtCe0KDQmNCoINCI0KPQm9CY0IjQkNCd0JAKK9Ca0J7QoNCY0IvQkNCd0JDQpiDQmNCS0JDQnQor0JrQntCg0JjQi9CQ0J3QkNCmINCJ0KPQkdCY0J3QmtCQCivQmtCe0KDQmNCWINCQ0KDQn9CQ0JQKK9Ca0J7QoNCY0KbQkCDQgtCe0KDQgtCVCivQmtCe0KDQmNCm0JAg0ILQo9Cg0J4KK9Ca0J7QoNCY0KbQkCDQlNCj0KjQkNCdCivQmtCe0KDQmNCm0JAg0IjQkNCd0JrQngor0JrQntCg0JjQptCQINCc0JjQm9Ce0KDQkNCUCivQmtCe0KDQmNCm0JAg0J3QldCU0JXQidCa0J4KK9Ca0J7QoNCY0KbQkCDQndCY0JrQntCb0JAKK9Ca0J7QoNCY0KbQkCDQn9CV0KLQkNCgCivQmtCe0KDQmNCm0JAg0KHQndCV0JbQkNCd0JAKK9Ca0J7QoNCY0KbQkCDQodCe0KTQmNCI0JAKK9Ca0J7QoNCY0KbQkCDQodCi0JXQktCQ0J0KK9Ca0J7QoNCY0KHQotCe0JLQmNCLINCc0JjQmtCh0JDQoNCUCivQmtCe0KDQm9CQ0KIg0J/QldCg0JjQptCQCivQmtCe0KDQm9CQ0KIg0J/QldCi0JDQoAor0JrQntCg0JzQkNCK0J7QqCDQqNCQ0J3QlNCe0KAKK9Ca0J7QoNCc0JDQitCe0Kgg0JDQndCU0KDQmNCI0JAKK9Ca0J7QoNCc0JDQitCe0Kgg0JHQntCg0JrQkAor0JrQntCg0JzQkNCK0J7QqCDQpNCV0KDQldCd0KYKK9Ca0J7QoNCc0JDQitCe0Kgg0JrQkNCg0J7QiQor0JrQntCg0JzQkNCK0J7QqCDQnNCY0KXQkNCJCivQmtCe0KDQnNCe0Kgg0IjQkNCd0J7QqAor0JrQntCg0JzQntCoINCc0JDQoNCT0JjQotCQCivQmtCe0KDQnNCe0Kgg0JzQkNCg0JPQmNCi0JAKK9Ca0J7QoNCc0J7QqCDQnNCQ0KDQmNCI0JAKK9Ca0J7QoNCc0J7QqCDQotCV0KDQldCX0JAKK9Ca0J7QoNCe0Kgg0KDQkNCh0KLQmNCh0JvQkNCSCivQmtCe0KDQntCoINCS0JvQkNCU0JAKK9Ca0J7QoNCe0KjQkNCdINCo0JDQndCU0J7QoAor0JrQntCg0J7QqNCV0KYg0JvQldCeCivQmtCe0KDQntCR0JrQniDQotCQ0KDQkNChCivQmtCe0KDQntCU0Jgg0KTQoNCQ0IrQkAor0JrQntCg0J7QmtCd0JDQmCDQpNCV0KDQldCd0KYKK9Ca0J7QoNCe0JrQndCQ0Jgg0IjQkNCd0J7QqAor0JrQntCg0J7QmtCd0JDQmCDQl9Ce0JvQotCQ0J0KK9Ca0J7QoNCe0JvQmNCI0JAg0JTQo9Co0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Ca0J7QoNCe0JvQmNCI0JAg0JTQo9Co0JDQnQor0JrQntCg0J7Qm9CY0IjQkCDQodCi0JXQktCQ0J0g0JTQoAor0JrQntCg0J7Qm9CY0IjQkCDQktCV0KDQkAor0JrQntCg0J7QnCDQldCg0JbQldCR0JXQogor0JrQntCg0J7QnCDQotCY0JHQntCgCivQmtCe0KDQntCc0JDQnSDQnNCY0JvQntCg0JDQlAor0JrQntCg0J7QkiDQgtCe0KDQgtCVCivQmtCe0KDQntCS0InQldCSINCY0JLQkNCdCivQmtCe0KDQntCS0InQldCSINCI0J7QktCQ0J3QmtCQCivQmtCe0KDQntCS0InQldCSINCc0JDQoNCY0IjQkAor0JrQntCg0J7QktCJ0JXQkiDQnNCY0JvQldCd0JrQngor0JrQntCg0J7QktCJ0JXQkiDQnNCY0JvQntCoCivQmtCe0KDQntCS0InQldCSINCg0JDQlNCc0JjQm9CQCivQmtCe0KDQntCS0InQldCSINCS0KPQmtCY0KbQkAor0JrQntCg0J/QkCDQkdCV0JvQkAor0JrQntCg0J/QkNCoINCQ0JzQkNCb0JjQiNCQCivQmtCe0KDQn9CQ0Kgg0JTQkNCd0JjQptCQCivQmtCe0KDQn9CQ0Kgg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0KDQn9CQ0Kgg0IjQkNCd0JrQngor0JrQntCg0J/QkNCoINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QoNCf0JDQqCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KDQn9CQ0Kgg0J/QldCg0JAKK9Ca0J7QoNCf0JDQmiDQlNCg0JDQk9CY0IrQkAor0JrQntCg0J/QkNCaINCd0JDQlNCQCivQmtCe0KDQn9Ce0J3QkNCYINCY0KjQotCS0JDQnQor0JrQntCg0J/QntCd0JDQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QoNCj0JPQkCDQkdCe0KDQkAor0JrQntCg0KPQk9CQINCI0KPQm9Ca0JAKK9Ca0J7QoNCj0JPQkCDQoNCQ0JTQntCc0JjQoAor0JrQntCg0KPQndCY0Isg0JvQmNCX0JAKK9Ca0J7QoSDQmNCU0JAKK9Ca0J7QoSDQnNCQ0KDQmNCI0JAKK9Ca0J7QoSDQodCb0JDQktCa0J4KK9Ca0J7QoSDQodCb0JDQktCa0J4KK9Ca0J7QoSDQodCi0JDQndCa0J4KK9Ca0J7QodCQ0Isg0JTQkNCg0JjQndCa0JAKK9Ca0J7QodCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCh0JDQndCY0Isg0JjQktCQ0J3QmtCQCivQmtCe0KHQkNCd0JjQiyDQodCQ0JLQkAor0JrQntCh0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QodCQ0J3QntCSINCa0JDQotCY0KbQkAor0JrQntCh0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCh0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdINCc0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQlNCQ0J3QlQor0JrQntCh0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQmtCe0KHQkNCd0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQm9CQ0JfQngor0JrQntCh0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCh0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Ca0J7QodCQ0J3QntCS0JjQiy3QnNCQ0J3QlNCY0Isg0J3QldCd0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCQ0J3QlQor0JrQntCh0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0IvQngor0JrQntCh0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JrQntCh0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JrQntCh0JDQndCe0JLQmNCLINCc0JjQotCQ0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0JrQntCh0JDQndCe0JLQmNCLINCe0JvQk9CQCivQmtCe0KHQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQntCh0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0J7QodCQ0KDQldCd0JrQniDQn9CV0KLQkNCgCivQmtCe0KHQldCU0J3QkNCgINCh0KLQiNCV0J/QkNCdCivQmtCe0KHQmNCLINCW0JDQoNCa0J4KK9Ca0J7QodCY0Isg0JbQkNCg0JrQngor0JrQntCh0JjQiyDQltCY0JLQntCI0JjQnQor0JrQntCh0JjQiyDQkdCY0InQkNCd0JAKK9Ca0J7QodCY0Isg0JHQntCI0JDQnQor0JrQntCh0JjQiyDQkdCe0KDQmtCeCivQmtCe0KHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCh0JjQiyDQk9Ce0KDQkNCdCivQmtCe0KHQmNCLINCT0J7QoNCU0JDQndCQCivQmtCe0KHQmNCLINCY0JLQkNCdCivQmtCe0KHQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0JjQiyDQiNCe0JLQmNCm0JAKK9Ca0J7QodCY0Isg0JvQo9Ca0JAKK9Ca0J7QodCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0KHQmNCLINCc0JjQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCe0KHQmNCLINCd0JXQlNCV0InQmtCeCivQmtCe0KHQmNCLINCg0KPQltCQCivQmtCe0KHQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QodCY0Isg0KLQntCc0JAKK9Ca0J7QodCY0Isg0JfQntCg0JjQptCQCivQmtCe0KHQmNCd0JAg0JzQmNCb0JjQptCQCivQmtCe0KHQmNCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0KHQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQntCh0JjQoNCe0JLQmNCLINCf0JDQndCi0JXQm9CY0IjQkAor0JrQntCh0IjQldCgINCU0KPQqNCQ0J0KK9Ca0J7QodCI0JXQoNCY0J3QkCDQnNCY0JvQldCd0JrQngor0JrQntCh0JrQkCDQkNCi0JzQkNCd0JAKK9Ca0J7QodCa0JAg0KXQkNCi0JjQj9CVCivQmtCe0KHQmtCQINCI0JDQodCc0JjQlNCY0J0KK9Ca0J7QodCa0JAg0InQldCg0JrQkAor0JrQntCh0JrQkCDQnNCY0JvQldCd0JAKK9Ca0J7QodCa0JAg0J3QkNCU0JXQltCU0JAKK9Ca0J7QodCa0JAg0KHQkNCk0JXQogor0JrQntCh0JrQkCDQodCQ0JvQmAor0JrQntCh0JzQkNCI0JDQpiDQgtCe0KDQgtCVCivQmtCe0KHQnNCQ0IjQkNCmINCQ0J3QmNCm0JAKK9Ca0J7QodCeINCR0J7QodCY0InQmtCQCivQmtCe0KHQniDQpNCg0JDQitCeCivQmtCe0KHQniDQnNCY0KXQkNCJCivQmtCe0KHQniDQntCb0JjQktCV0KDQkAor0JrQntCh0J4g0J/QkNCbCivQmtCe0KHQntCg0KPQqCDQgtCj0KDQkAor0JrQntCh0J7QoNCj0Kgg0JXQotCV0JvQmtCQCivQmtCe0KHQntCg0KPQqCDQn9CV0KLQldCgCivQmtCe0KHQntCS0JDQpiDQp9CV0JTQkAor0JrQntCh0J7QktCQ0KYg0JbQmNCS0JrQngor0JrQntCh0J7QktCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JrQntCh0J7QktCQ0KYg0JHQntCI0JDQnQor0JrQntCh0J7QktCQ0KYg0JHQntCI0JDQnQor0JrQntCh0J7QktCQ0KYg0JTQkNCg0JrQngor0JrQntCh0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQmtCe0KHQntCS0JDQpiDQlNCj0KjQkNCdCivQmtCe0KHQntCS0JDQpiDQk9CV0J7QoNCT0JjQiNCVCivQmtCe0KHQntCS0JDQpiDQk9Ce0IjQmtCeCivQmtCe0KHQntCS0JDQpiDQiNCj0JvQmNCI0JDQndCQCivQmtCe0KHQntCS0JDQpiDQnNCY0JvQkNCdCivQmtCe0KHQntCS0JDQpiDQnNCY0JvQkNCdCivQmtCe0KHQntCS0JDQpiDQnNCY0KDQmtCeCivQmtCe0KHQntCS0JDQpiDQndCY0JrQntCb0JAKK9Ca0J7QodCe0JLQkNCmINCg0JDQlNCY0JLQntCICivQmtCe0KHQntCS0JDQpiDQl9CU0KDQkNCS0JrQngor0JrQntCh0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Ca0J7QodCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JrQntCh0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QodCe0JLQmNCLINCe0JvQk9CQINCf0KDQntCk0JXQodCe0KAKK9Ca0J7QodCe0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QodCe0JLQmNCLINCg0JDQotCa0J4KK9Ca0J7QodCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQntCh0J7QktCg0JDQodCi0Jgg0JDQj9CYCivQmtCe0KHQotCQ0JTQmNCd0J7QodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Ca0J7QodCi0JDQlNCY0J3QntCSINCg0JjQodCi0JAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCS0KPQmtCQ0J0KK9Ca0J7QodCi0JDQlNCY0J3QntCS0KHQmtCYINCU0JjQnNCn0JUKK9Ca0J7QodCi0JXQm9Cd0JjQmiDQndCV0KHQotCe0KAKK9Ca0J7QodCi0JXQm9Cd0JjQmiDQodCY0JvQktCV0KHQotCV0KAKK9Ca0J7QodCi0JXQktCh0JrQmCDQmNCS0JDQnQor0JrQntCh0KLQmNCLLdCo0J7QkdCe0KIg0JzQmNCb0JrQkAor0JrQntCh0KLQmNCLINCW0JDQoNCa0J4KK9Ca0J7QodCi0JjQiyDQltCV0InQmtCeCivQmtCe0KHQotCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0J7QodCi0JjQiyDQgtCe0KDQgtCVCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QodCi0JjQiyDQgtCe0KDQgtCVCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0KPQoNCC0JjQptCQCivQmtCe0KHQotCY0Isg0JDQptCQCivQmtCe0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7QodCi0JjQiyDQkNCd0JAKK9Ca0J7QodCi0JjQiyDQkNCd0JPQldCb0JjQndCQCivQmtCe0KHQotCY0Isg0JDQndCa0JjQptCQCivQmtCe0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCh0KLQmNCLINCR0J7Qk9Ce0InQo9CRCivQmtCe0KHQotCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JrQntCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCR0KDQkNCd0JrQngor0JrQntCh0KLQmNCLINCU0JDQndCY0JvQngor0JrQntCh0KLQmNCLINCU0JXQiNCQ0J0KK9Ca0J7QodCi0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0JDQnQor0JrQntCh0KLQmNCLINCU0KDQkNCT0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCh0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QodCi0JjQiyDQlNCj0KjQkNCdCivQmtCe0KHQotCY0Isg0JTQo9Co0JDQnQor0JrQntCh0KLQmNCLINCV0JvQldCe0J3QntCg0JAKK9Ca0J7QodCi0JjQiyDQk9CV0J7QoNCT0JjQndCQCivQmtCe0KHQotCY0Isg0JPQm9CY0KjQkAor0JrQntCh0KLQmNCLINCT0J7Qm9Cj0JEKK9Ca0J7QodCi0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQntCh0KLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQmNCS0JDQnQor0JrQntCh0KLQmNCLINCY0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQldCb0JXQndCQCivQmtCe0KHQotCY0Isg0IjQldCb0JjQptCQCivQmtCe0KHQotCY0Isg0IjQldCb0JjQptCQCivQmtCe0KHQotCY0Isg0IjQntCg0JTQkNCd0JrQkAor0JrQntCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQntCS0JDQnQor0JrQntCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0JrQoNCh0JzQkNCdCivQmtCe0KHQotCY0Isg0JrQoNCh0KLQkAor0JrQntCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0JrQntCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0JrQntCh0KLQmNCLINCJ0KPQkdCY0KjQkAor0JrQntCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCh0KLQmNCLINCc0JDQmtCh0JjQnAor0JrQntCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQntCh0KLQmNCLINCc0JDQoNCa0J4KK9Ca0J7QodCi0JjQiyDQnNCV0KLQntCU0JjQiNCVCivQmtCe0KHQotCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QodCi0JjQiyDQnNCY0JvQkNCdCivQmtCe0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQntCh0KLQmNCLINCc0JjQm9CV0J3QkCDQlNCgCivQmtCe0KHQotCY0Isg0JzQmNCb0JXQndCQCivQmtCe0KHQotCY0Isg0JzQmNCb0JXQktCQCivQmtCe0KHQotCY0Isg0JzQmNCb0JjQptCQCivQmtCe0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QodCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQntCh0KLQmNCLINCc0JjQm9Cj0KjQkAor0JrQntCh0KLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0KHQotCY0Isg0JzQmNCg0JrQngor0JrQntCh0KLQmNCLINCc0J7QiNCh0JUKK9Ca0J7QodCi0JjQiyDQndCQ0JTQkAor0JrQntCh0KLQmNCLINCd0JDQlNCQCivQmtCe0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0KHQotCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ca0J7QodCi0JjQiyDQn9CQ0JLQm9CVCivQmtCe0KHQotCY0Isg0J/QldCi0JDQoAor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQn9CV0KLQkNCgCivQmtCe0KHQotCY0Isg0J/QldCi0JDQoAor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQmtCe0KHQotCY0Isg0KDQkNCU0J7QiNCa0J4KK9Ca0J7QodCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQntCh0KLQmNCLINCg0JDQlNCe0KHQkNCSCivQmtCe0KHQotCY0Isg0KDQkNCi0JrQngor0JrQntCh0KLQmNCLINCg0KPQltCY0KbQkAor0JrQntCh0KLQmNCLINCh0JDQktCQCivQmtCe0KHQotCY0Isg0KHQkNCS0JAKK9Ca0J7QodCi0JjQiyDQodCb0JDQktCY0KbQkAor0JrQntCh0KLQmNCLINCh0JvQkNCS0JrQkAor0JrQntCh0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QodCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0KHQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCh0KLQmNCLINCh0J3QldCW0JDQndCQCivQmtCe0KHQotCY0Isg0KHQn9CQ0KHQldCd0JrQngor0JrQntCh0KLQmNCLINCh0KDQldCi0JXQnQor0JrQntCh0KLQmNCLINCh0KLQkNCd0JAKK9Ca0J7QodCi0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmtCe0KHQotCY0Isg0KHQotCQ0J3QmtCeCivQmtCe0KHQotCY0Isg0KHQotCQ0JfQkAor0JrQntCh0KLQmNCLINCh0KLQldCS0JDQnQor0JrQntCh0KLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ca0J7QodCi0JjQiyDQodCi0KDQkNCl0JjQitCQINCU0KAg0J/QoNCe0KQKK9Ca0J7QodCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0JTQoAor0JrQntCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QodCi0JjQiyDQotCY0JHQldCg0JjQiNCVCivQmtCe0KHQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0JLQkNCh0J4KK9Ca0J7QodCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQntCh0KLQmNCLINCS0JXQoNCQCivQmtCe0KHQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ca0J7QodCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ca0J7QodCi0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQntCh0KLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JDQnQor0JrQntCh0KLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JjQptCQCivQmtCe0KHQotCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0KLQntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCe0KHQotCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQmtCe0KHQotCe0JLQodCa0Jgg0JrQkNCi0JjQptCQCivQmtCe0KHQotCe0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCh0KLQntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JrQntCh0KLQoNCV0Kgg0JzQntCc0KfQmNCb0J4KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0JPQntCg0JDQnQor0JrQntCh0KLQoNCV0KjQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JrQntCh0KLQoNCV0KjQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCh0KLQoNCV0KjQldCS0JjQiyDQodCi0JDQndCa0JAKK9Ca0J7QodCi0KDQmNCn0JXQndCa0J4g0JLQkNCh0JjQm9CY0IjQlQor0JrQntCh0KLQo9CU0JjQiNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QoiDQmNCb0J7QndCQCivQmtCe0KIg0IjQntCh0JjQnwor0JrQntCiINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QoiDQm9CQ0KHQm9CeCivQmtCe0KIg0JzQkNCg0KLQkAor0JrQntCiINCc0JjQoNCQCivQmtCe0KIg0JzQmNCg0JrQngor0JrQntCi0JAg0JXQoNCW0JXQkdCV0KIKK9Ca0J7QotCQINCb0JDQiNCe0KgKK9Ca0J7QotCQINCc0JjQpdCQ0IjQm9CeCivQmtCe0KLQkNCg0KfQldCS0JjQiyDQldCb0JLQmNCg0JAKK9Ca0J7QotCQ0KDQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCi0JDQoNCQ0KYg0JrQkNCi0JjQptCQCivQmtCe0KLQkNCg0JDQpiDQmtCe0KHQotCQCivQmtCe0KLQkNCg0JDQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QotCQ0KDQkNCd0JjQnSDQidCY0InQkNCd0JAKK9Ca0J7QotCQ0KDQkNCd0JjQnSDQn9CV0KLQkNCgCivQmtCe0KLQkNCg0JvQmNCLINCU0JDQoNCa0J4KK9Ca0J7QotCQ0KDQm9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ca0J7QotCQ0KDQm9CY0Isg0KHQkNCS0JAKK9Ca0J7QotCl0JDQmCDQmNCo0KLQktCQ0J0KK9Ca0J7QotCl0JDQmCDQiNCe0JbQldCkCivQmtCe0KLQpdCQ0Jgg0KHQotCV0JLQkNCdCivQmtCe0KLQpdCQ0Igg0KHQotCV0JLQkNCdCivQmtCe0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0J7QotCb0JDQiNCQINCc0JjQm9CQ0J3QmtCeCivQmtCe0KLQm9CQ0IjQkCDQnNCY0JvQmtCeCivQmtCe0KLQm9CQ0KDQmNCLINCc0JDQoNCa0J4g0JTQoAor0JrQntCi0JvQkNCg0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmtCe0KLQoNCR0JAg0KTQoNCQ0IrQkAor0JrQntCi0KDQlSDQnNCQ0JPQlNCe0JvQndCQCivQmtCe0KLQo9CoINCV0KDQltCV0JHQldCiCivQmtCe0KLQo9CoINCc0JjQm9CY0KbQkAor0JrQntCi0KPQqCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KLQo9CoINCh0KLQldCS0JDQnQor0JrQntCi0KPQiyDQnNCQ0KDQmNCI0JXQotCQCivQmtCe0KLQo9CgINCQ0J3QgtCV0JvQmtCQCivQmtCe0KLQo9CgINCU0KDQkNCT0JDQnQor0JrQntCi0KPQoCDQiNCV0JvQkAor0JrQntCi0KPQoCDQoNCQ0JTQlQor0JrQntCi0KPQoNCe0JIg0J3QkNCU0JAKK9Ca0J7QotCj0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0J7Qo9Cd0JjQoSDQidCY0InQkNCd0JAKK9Ca0J7QktCn0JUg0JDQnNCQ0JvQmNCI0JAKK9Ca0J7QktCn0JXQkiDQodCf0JDQodCV0J3QmtCQCivQmtCe0JLQp9CY0J0g0JzQmNCb0JjQptCQCivQmtCe0JLQp9CY0J0g0JzQmNCb0J7QktCQ0J0KK9Ca0J7QktCn0JjQnSDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0KfQmNCdINCd0JXQk9CQCivQmtCe0JLQp9CY0J0g0KHQotCQ0J3QmNCc0JjQoCDQlNCgCivQmtCe0JLQkNCnINCn0JXQlNCeCivQmtCe0JLQkNCnINCo0JDQndCU0J7QoAor0JrQntCS0JDQpyDQqNCQ0J3QlNCe0KAKK9Ca0J7QktCQ0Kcg0ILQntCg0ILQlQor0JrQntCS0JDQpyDQgtCe0KDQgtCVCivQmtCe0JLQkNCnINCC0KPQm9CQCivQmtCe0JLQkNCnINCC0KPQoNCC0JAKK9Ca0J7QktCQ0Kct0JDQpyDQmtCQ0KDQntCJCivQmtCe0JLQkNCnINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCnINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCnINCQ0J3QkAor0JrQntCS0JDQpyDQkNCd0JAKK9Ca0J7QktCQ0Kcg0JDQndCU0KDQkNCoCivQmtCe0JLQkNCnINCQ0J3QotCQ0JsKK9Ca0J7QktCQ0Kcg0JDQndCi0J7QnQor0JrQntCS0JDQpyDQkNCg0J/QkNCUCivQmtCe0JLQkNCnINCQ0KLQmNCb0JAKK9Ca0J7QktCQ0Kcg0JHQldCb0JAKK9Ca0J7QktCQ0Kcg0JHQldCb0JAKK9Ca0J7QktCQ0Kct0JHQmNCg0JrQkNCoINCc0JjQpdCQ0IkKK9Ca0J7QktCQ0Kcg0JHQntCg0JjQoQor0JrQntCS0JDQpyDQlNCV0JbQlQor0JrQntCS0JDQpyDQlNCV0KHQkNCd0JrQkAor0JrQntCS0JDQpyDQlNCg0JDQk9CY0KbQkCDQnNCgCivQmtCe0JLQkNCnINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0Kcg0JXQotCV0JvQmtCQCivQmtCe0JLQkNCnINCV0KLQldCb0JrQkAor0JrQntCS0JDQpyDQpNCV0KDQldCd0KYKK9Ca0J7QktCQ0Kcg0KTQldCg0JXQndCmCivQmtCe0JLQkNCnINCk0KDQkNCK0JAKK9Ca0J7QktCQ0Kcg0KTQoNCQ0IrQkAor0JrQntCS0JDQpyDQk9CQ0JHQntCgCivQmtCe0JLQkNCnINCT0JjQl9CV0JvQkAor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCb0J7QndCQCivQmtCe0JLQkNCnINCY0JzQoNCVCivQmtCe0JLQkNCnINCY0JzQoNCVCivQmtCe0JLQkNCnINCY0JzQoNCVCivQmtCe0JLQkNCnINCY0KDQldCd0JAKK9Ca0J7QktCQ0Kcg0JjQoNCV0J3QkAor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQmNCS0JDQnQor0JrQntCS0JDQpyDQiNCQ0JrQntCRCivQmtCe0JLQkNCnINCI0JDQndCa0J4KK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J0KK9Ca0J7QktCQ0Kcg0IjQkNCdCivQmtCe0JLQkNCnINCI0JXQm9CY0KbQkAor0JrQntCS0JDQpyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQntCS0JDQpyDQiNCe0JbQldCkCivQmtCe0JLQkNCnINCI0J7QltCV0KQKK9Ca0J7QktCQ0Kcg0IjQntCh0JjQnwor0JrQntCS0JDQpyDQiNCe0KHQmNCfCivQmtCe0JLQkNCnINCI0J7QodCY0J8KK9Ca0J7QktCQ0Kcg0IjQntCh0JjQnwor0JrQntCS0JDQpyDQiNCe0JLQkNCdCivQmtCe0JLQkNCnINCI0J7QktCQ0J0KK9Ca0J7QktCQ0Kcg0IjQntCS0JDQnQor0JrQntCS0JDQpyDQiNCj0JvQmNCQ0J3QkAor0JrQntCS0JDQpyDQiNCj0JvQmNCI0JDQndCQCivQmtCe0JLQkNCnINCa0JDQoNCb0J4KK9Ca0J7QktCQ0Kcg0JrQkNCg0JvQngor0JrQntCS0JDQpyDQmtCQ0KDQntCJCivQmtCe0JLQkNCnINCa0JDQoNCe0IkKK9Ca0J7QktCQ0Kcg0JrQkNCg0J7QiQor0JrQntCS0JDQpyDQmtCQ0KDQntCb0IgKK9Ca0J7QktCQ0Kcg0JrQkNCi0JDQm9CY0J0KK9Ca0J7QktCQ0Kcg0JrQkNCi0JDQoNCY0J3QkAor0JrQntCS0JDQpyDQmtCQ0KLQmNCm0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0JDQotCY0KbQkAor0JrQntCS0JDQpyDQmtCQ0KLQmNCm0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0J7QktCY0InQmtCQCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0JrQntCS0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0JrQntCS0JDQpyDQm9CQ0IjQntCoCivQmtCe0JLQkNCnINCb0JDQiNCe0KgKK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCJ0KPQkdCQ0J0KK9Ca0J7QktCQ0Kcg0InQo9CU0JXQktCY0KIKK9Ca0J7QktCQ0Kcg0JzQkNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0JPQmNCi0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0JjQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0JjQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQotCY0J0KK9Ca0J7QktCQ0Kcg0JzQkNCi0JjQiNCQCivQmtCe0JLQkNCnINCc0JjQpdCQ0IjQm9CeCivQmtCe0JLQkNCnINCc0JjQpdCQ0IjQm9CeCivQmtCe0JLQkNCnINCc0JjQpdCQ0IkKK9Ca0J7QktCQ0Kcg0JzQmNCl0JDQiQor0JrQntCS0JDQpyDQnNCY0JrQm9Ce0KgKK9Ca0J7QktCQ0Kcg0JzQmNCa0JvQntCoCivQmtCe0JLQkNCnINCc0JjQm9CQ0JTQmNCdCivQmtCe0JLQkNCnINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0Kcg0JzQmNCb0JXQndCQCivQmtCe0JLQkNCnINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0Kcg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QktCQ0Kcg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QktCQ0Kcg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QktCQ0Kcg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QktCQ0Kcg0JzQmNCg0JrQngor0JrQntCS0JDQpyDQnNCY0KDQntCdINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0JDQpyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JLQkNCnINCd0JDQotCQ0JvQmNCI0JAKK9Ca0J7QktCQ0Kcg0J3QmNCa0J7Qm9CQCivQmtCe0JLQkNCnINCd0JjQmtCe0JvQkAor0JrQntCS0JDQpyDQntCb0JPQmNCm0JAKK9Ca0J7QktCQ0Kcg0J7Qm9CT0JjQptCQCivQmtCe0JLQkNCnINCe0KLQngor0JrQntCS0JDQpyDQn9CQ0JLQldCbCivQmtCe0JLQkNCnINCf0JXQotCQ0KAKK9Ca0J7QktCQ0Kcg0KDQmNCh0KLQniDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0Kcg0KDQntCW0JgKK9Ca0J7QktCQ0Kcg0KDQntCW0JgKK9Ca0J7QktCQ0Kcg0KDQntCX0JDQm9CY0IjQkAor0JrQntCS0JDQpyDQoNCe0JfQkNCb0JjQiNCQCivQmtCe0JLQkNCnINCg0KPQltCY0KbQkAor0JrQntCS0JDQpyDQodCY0JvQktCV0KHQotCV0KAKK9Ca0J7QktCQ0Kcg0KHQnNCY0InQkAor0JrQntCS0JDQpyDQodCi0JDQndCe0IjQmtCQCivQmtCe0JLQkNCnINCh0KLQldCS0JDQnQor0JrQntCS0JDQpyDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCnINCh0KLQldCS0JDQnQor0JrQntCS0JDQpyDQodCi0IjQldCf0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0Kcg0KHQktCV0KLQntCX0JDQoAor0JrQntCS0JDQpyDQotCV0J7QlNCe0KAg0JTQoCDQn9Cg0J7QpAor0JrQntCS0JDQpyDQotCV0J7QlNCe0KAg0JTQoAor0JrQntCS0JDQpyDQotCY0JHQntCgCivQmtCe0JLQkNCnINCi0JjQkdCe0KAKK9Ca0J7QktCQ0Kct0KLQmNCl0JzQkNCI0JXQoCDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KLQntCc0JjQodCb0JDQkgor0JrQntCS0JDQpyDQotCg0J/QmNCc0JjQoAor0JrQntCS0JDQpyDQktCQ0JvQldCg0JjQiNCQCivQmtCe0JLQkNCnINCS0JXQoNCQCivQmtCe0JLQkNCnINCS0JXQoNCQCivQmtCe0JLQkNCnINCS0JXQoNCQCivQmtCe0JLQkNCnINCS0JXQoNCQCivQmtCe0JLQkNCnINCS0JXQoNCQCivQmtCe0JLQkNCnINCS0JXQoNCY0KbQkAor0JrQntCS0JDQpyDQktCV0KDQntCd0JAKK9Ca0J7QktCQ0Kcg0JLQldCg0J7QndCQCivQmtCe0JLQkNCnINCS0JjQlNCQCivQmtCe0JLQkNCnINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCS0JDQpyDQl9Ce0KDQkAor0JrQntCS0JDQpyDQl9CS0J7QndCY0JzQmNCgCivQmtCe0JLQkNCn0JXQmiDQkdCe0JbQmNCU0JDQoCDQlNCgCivQmtCe0JLQkNCn0JXQmiDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCaINCI0JXQm9CV0J3QkAor0JrQntCS0JDQp9CV0JIg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCQ0KfQldCSINCR0KDQkNCd0JrQkAor0JrQntCS0JDQp9CV0JIg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQkiDQkdCg0JDQndCa0J4KK9Ca0J7QktCQ0KfQldCSINCU0JDQndCn0JUKK9Ca0J7QktCQ0KfQldCSINCU0JDQndCY0JvQmtCQCivQmtCe0JLQkNCn0JXQkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QktCQ0KfQldCSINCU0KDQkNCT0JjQqNCQCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCSINCU0KDQkNCT0KPQotCY0J0KK9Ca0J7QktCQ0KfQldCSINCU0KDQkNCT0KPQotCY0J0KK9Ca0J7QktCQ0KfQldCSINCU0KPQqNCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQkiDQk9Ce0KDQkNCdCivQmtCe0JLQkNCn0JXQkiDQk9Ce0KDQlNCQ0J3QkAor0JrQntCS0JDQp9CV0JIg0JPQntCg0JTQkNCd0JAKK9Ca0J7QktCQ0KfQldCSINCY0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCSINCY0JLQmNCm0JAKK9Ca0J7QktCQ0KfQldCSINCI0JXQm9CQCivQmtCe0JLQkNCn0JXQkiDQiNCV0JvQldCd0JAKK9Ca0J7QktCQ0KfQldCSINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCSINCI0KPQm9CY0IjQkNCd0JAKK9Ca0J7QktCQ0KfQldCSINCI0KPQm9Ca0JAKK9Ca0J7QktCQ0KfQldCSINCb0JDQl9CQ0KAKK9Ca0J7QktCQ0KfQldCSINCc0JDQoNCY0IjQkAor0JrQntCS0JDQp9CV0JIg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JIg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JIg0JzQmNCb0JXQndCQCivQmtCe0JLQkNCn0JXQkiDQnNCY0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9Ce0KDQkNCUINCU0KAg0JvQldCa0JDQoAor0JrQntCS0JDQp9CV0JIg0JzQmNCb0KPQotCY0J0KK9Ca0J7QktCQ0KfQldCSINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCn0JXQkiDQnNCb0JDQlNCV0J0KK9Ca0J7QktCQ0KfQldCSINCd0JXQlNCV0InQmtCeCivQmtCe0JLQkNCn0JXQkiDQndCV0JzQkNCK0JAKK9Ca0J7QktCQ0KfQldCSINCf0JXQotCQ0KAKK9Ca0J7QktCQ0KfQldCSINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JIg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQkiDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0KfQldCSINCh0JLQldCi0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JIg0KHQktCV0KLQntCX0JDQoAor0JrQntCS0JDQp9CV0JIg0KLQldCe0JTQntCgINCU0KAKK9Ca0J7QktCQ0KfQldCSINCi0JXQntCU0J7QoCDQlNCgCivQmtCe0JLQkNCn0JXQkiDQktCV0KDQkAor0JrQntCS0JDQp9CV0JIg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCSINCS0JXQodCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQp9CV0JTQkAor0JrQntCS0JDQp9CV0JLQmNCLINCW0JXQm9CY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JbQldCJ0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCW0JjQktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQltCY0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQo9Cg0ILQmNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQgtCj0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0JPQndCV0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCU0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCd0JXQotCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCa0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQoNCh0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCo0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCT0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCT0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQnNCI0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCY0JvQngor0JrQntCS0JDQp9CV0JLQmNCLINCU0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0JLQntCg0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVINCU0JjQn9CbINCe0JXQpgor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQngor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQldCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQpNCg0JDQitCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQk9Ce0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JjQk9CK0JDQogor0JrQntCS0JDQp9CV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCY0KHQkAor0JrQntCS0JDQp9CV0JLQmNCLINCY0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQkNCT0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCg0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCe0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCQ0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCY0KbQkCDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQm9CQ0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7Qp9CQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQntCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCe0KHQotCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQntCh0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7QktCY0InQmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQoNCh0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0KDQodCi0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0KHQldCd0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JvQkNCX0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCY0InQkAor0JrQntCS0JDQp9CV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCJ0KPQkdCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQkNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JDQoNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JXQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JXQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CY0JLQntCIINCU0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0InQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCi0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQotCQCivQmtCe0JLQkNCn0JXQktCY0Ist0JzQm9CQ0JTQldCd0J7QktCY0Isg0J7Qm9CT0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCQ0JTQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QldCU0JXQidCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCe0JvQk9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCe0JfQoNCV0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQn9CQ0JLQm9CVCivQmtCe0JLQkNCn0JXQktCY0Isg0J/QkNCS0JvQlQor0JrQntCS0JDQp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCVCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCc0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQiNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCg0JXQidCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQo9CW0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQo9CW0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQkNCS0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQldCa0KPQm9CQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQmNCc0JXQntCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KDQkdCY0IjQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KDQldCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCg0JXQotCV0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCi0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCi0JXQktCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQntCb0JjQmgor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCi0JXQoNCV0JfQkAor0JrQntCS0JDQp9CV0JLQmNCLINCi0J7QlNCe0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQkNCh0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JXQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQndCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCe0IjQmNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQntCI0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQo9CI0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQlNCV0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQntCg0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCX0J7QoNCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCX0J7QoNCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCX0JLQntCd0JjQnNCY0KDQmtCQCivQmtCe0JLQkNCn0JjQiyDQltCY0JLQmtCeCivQmtCe0JLQkNCn0JjQiyDQkNCd0JjQptCQCivQmtCe0JLQkNCn0JjQiyDQkdCe0JbQkNCd0JAKK9Ca0J7QktCQ0KfQmNCLINCR0J7QoNCY0JLQntCICivQmtCe0JLQkNCn0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JrQntCS0JDQp9CY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QktCQ0KfQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCJ0JXQn9Ce0KHQkNCS0JAKK9Ca0J7QktCQ0KfQmNCLINCb0KPQmtCQCivQmtCe0JLQkNCn0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JrQntCS0JDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0J3QldCU0JXQidCa0J4KK9Ca0J7QktCQ0KfQmNCLINCd0JjQmtCe0JvQkAor0JrQntCS0JDQp9CY0Isg0J/QldCi0JDQoAor0JrQntCS0JDQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0JLQkNCn0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQmtCe0JLQkNCn0JjQiyDQotCe0KjQkAor0JrQntCS0JDQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0JLQldCh0J3QkAor0JrQntCS0JDQp9CY0Jog0JzQkNCg0JPQmNCi0JAKK9Ca0J7QktCQ0KfQmNCaINCc0JDQoNCY0IjQkAor0JrQntCS0JDQm9Cn0JjQmiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0JvQntCS0KHQmtCYINCi0JXQntCU0J7QoAor0JrQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QktCQ0KAg0IjQkNCK0JAKK9Ca0J7QktCQ0KDQp9CY0Jog0JDQndCU0KDQmNCI0JAKK9Ca0J7QktCQ0KDQp9CY0Jog0JzQkNCg0JjQiNCQCivQmtCe0JLQkNCg0JjQmiDQktCQ0JvQldCg0JjQiNCQCivQmtCe0JLQldCY0J3QlNCbINCI0J7QodCY0J8KK9Ca0J7QktCV0Ikg0KLQntCc0JjQodCb0JDQkgor0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCS0JjQiyDQndCQ0JTQkAor0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQmNCI0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCS0JjQndCn0JjQiyDQkdCe0IjQkNCdCivQmtCe0JLQmNCd0KfQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCY0J3Qp9CY0Isg0J3QkNCU0JAKK9Ca0J7QktCY0J3Qp9CY0Isg0J3QkNCi0JDQqNCQCivQmtCe0JLQmNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQmNCd0KfQmNCLINCh0KLQntCI0JDQnQor0JrQntCS0IjQkNCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0IjQkNCd0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQiNCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0JLQiNCQ0J3QmNCLINCd0JDQlNCQCivQmtCe0JLQiNCQ0J3QmNCLINCd0JXQndCQ0JQKK9Ca0J7QktCI0JDQndCY0Isg0J/QldCg0JAKK9Ca0J7QktCI0JDQndCY0Isg0KHQkNCS0JAKK9Ca0J7QktCJ0JDQnSDQgtCe0KDQgtCVCivQmtCe0JLQidCQ0J0g0KHQkNCS0J4KK9Ca0J7QktCg0JvQmNCI0JAg0IjQntCS0JDQnQor0JrQntCX0JDQmiDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9CQ0JrQmNCSINCY0JLQkNCdCivQmtCe0JfQkNCgINCg0JDQlNCVCivQmtCe0JfQkNCg0KfQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCe0JfQkNCg0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7Ql9CQ0KDQp9CY0Isg0IjQntCS0JDQnQor0JrQntCX0JDQoNCn0JjQiyDQnNCQ0KDQmtCeCivQmtCe0JfQkNCg0KfQmNCLINCc0JjQm9CQ0J0KK9Ca0J7Ql9CQ0KDQkNCmINCc0JjQi9CeCivQmtCe0JfQkNCg0JXQkiDQltCQ0KDQmtCeCivQmtCe0JfQkNCg0JXQkiDQltCY0JLQmtCeCivQmtCe0JfQkNCg0JXQkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JrQntCX0JDQoNCV0JIg0JHQntCT0J7QidCj0JEKK9Ca0J7Ql9CQ0KDQldCSINCU0JDQoNCY0J3QmtCQCivQmtCe0JfQkNCg0JXQkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7Ql9CQ0KDQldCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCX0JDQoNCV0JIg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7Ql9CQ0KDQldCSINCT0J7QodCf0JDQktCQCivQmtCe0JfQkNCg0JXQkiDQm9CQ0JfQkNCgCivQmtCe0JfQkNCg0JXQkiDQidCj0JHQmNCm0JAKK9Ca0J7Ql9CQ0KDQldCSINCc0JDQoNCY0IjQkAor0JrQntCX0JDQoNCV0JIg0JzQmNCb0JDQnQor0JrQntCX0JDQoNCV0JIg0JzQmNCb0JrQkAor0JrQntCX0JDQoNCV0JIg0JzQm9CQ0JTQldCdCivQmtCe0JfQkNCg0JXQkiDQndCV0JTQldCJ0JrQngor0JrQntCX0JDQoNCV0JIg0J/QkNCS0JvQlQor0JrQntCX0JDQoNCV0JIg0J/QldCi0JDQoAor0JrQntCX0JDQoNCV0JIg0KHQkNCS0JAKK9Ca0J7Ql9CQ0KDQldCSINCh0JDQktCQCivQmtCe0JfQkNCg0JXQkiDQotCe0JTQntCgCivQmtCe0JfQkNCg0JXQktCY0Isg0KDQkNCU0JjQndCa0JAKK9Ca0J7Ql9CQ0KDQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCe0JfQkNCg0J7QkiDQgtCe0KDQgtCVCivQmtCe0JfQkNCg0J7QkiDQkNCd0JjQptCQCivQmtCe0JfQkNCg0J7QkiDQk9CQ0JLQoNCQCivQmtCe0JfQkNCg0J7QkiDQmNCS0JDQnQor0JrQntCX0JDQoNCe0JIg0IjQntCS0JDQndCa0JAKK9Ca0J7Ql9CQ0KDQntCSINCa0JDQotCY0KbQkAor0JrQntCX0JDQoNCe0JIg0JzQmNCb0J7QqAor0JrQntCX0JDQoNCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0JrQntCX0JDQoNCe0JIg0J/QkNCS0JvQlQor0JrQntCX0JDQoNCe0JIg0J/QkNCS0JvQlQor0JrQntCX0JDQoNCe0JIg0KHQoNCR0JjQodCb0JDQkgor0JrQntCX0JDQoNCe0JIg0KLQntCc0JjQodCb0JDQkgor0JrQntCX0JDQoNCh0JrQmCDQltCY0JLQkNCdCivQmtCe0JfQkNCg0KHQmtCYINCW0JjQktCa0J4KK9Ca0J7Ql9CQ0KDQodCa0Jgg0JvQmNCU0JjQiNCQCivQmtCe0JfQkNCg0KHQmtCYINCc0JDQoNCY0IjQkAor0JrQntCX0JDQoNCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JfQkNCg0KHQmtCYLdCg0JDQiNCY0Isg0JLQldCg0JjQptCQCivQmtCe0JfQkNCg0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7Ql9CQ0KDQodCa0Jgg0KHQntCk0JjQiNCQCivQmtCe0JfQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCX0JDQoNCh0JrQmCDQotCV0J7QlNCe0KDQkAor0JrQntCX0JDQoNCh0JrQmCDQktCQ0KHQmNCb0JjQiNCVCivQmtCe0JfQkNCg0KHQmtCYINCS0JXQoNCQCivQmtCe0JfQkNCg0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JrQntCX0JHQkNCo0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7Ql9CY0Isg0JHQntCT0JTQkNCdCivQmtCe0JfQmNCLINCf0JXQotCQ0KAKK9Ca0J7Ql9CY0Isg0KDQkNCi0JrQngor0JrQntCX0JjQiyDQoNCe0JbQkAor0JrQntCX0JjQiyDQodCQ0JLQkAor0JrQntCX0JjQiyDQodCi0JDQndCa0J4KK9Ca0J7Ql9CY0Isg0JLQldCJ0JrQngor0JrQntCX0JjQndCQINCY0JLQkNCdCivQmtCe0JfQmNCd0JAg0JzQkNCg0JjQptCQCivQmtCe0JfQm9CY0Jog0JrQkNCi0JDQoNCY0J3QkAor0JrQntCX0JvQmNCaINCb0JDQiNCe0KgKK9Ca0J7Ql9Cb0JjQndCQINCU0JXQodCQ0J3QmtCQCivQmtCe0JfQm9CY0J3QkCDQlNCj0KjQmtCeCivQmtCe0JfQm9CY0J3QkCDQiNCV0JrQkAor0JrQntCX0JvQmNCd0JAg0JzQmNCb0JUKK9Ca0J7Ql9Cb0JjQndCQINCX0JvQkNCi0JjQptCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQltCY0JLQmtCeCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0InQo9CR0JAKK9Ca0J7Ql9Cb0J7QktCQ0KfQmtCYINCh0JDQktCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQodCe0KTQmNCI0JAKK9Ca0J7Ql9Cb0J7QktCQ0KfQmtCYINCS0JXQodCV0JvQmNCdCivQmtCe0JfQm9Ce0JLQmNCLINCR0J7QoNCY0KEKK9Ca0J7Ql9Cb0J7QktCY0Isg0KHQkNCS0JAKK9Ca0J7Ql9Cc0JAg0KjQkNCd0JTQntCgCivQmtCe0JfQnNCQINCV0KLQldCbCivQmtCe0JfQnNCQINCk0JXQoNCV0J3Qpgor0JrQntCX0JzQkCDQiNCe0JbQldCkCivQmtCe0JfQnNCQINCI0J7QodCY0J8KK9Ca0J7Ql9Cc0JjQlNCY0KEt0J/QldCi0KDQntCS0JjQiyDQkNCd0JAKK9Ca0J7Ql9Ce0JzQkNCg0JAg0ILQntCg0ILQlQor0JrQntCX0J7QnNCQ0KDQkCDQiNCe0JLQngor0JrQntCX0J7QnNCQ0KDQkCDQidCj0JHQmNCm0JAKK9Ca0J7Ql9Ce0JzQkNCg0JAg0JzQkNCg0JjQiNCQCivQmtCe0JfQntCc0JDQoNCQINCX0J7QoNCQ0J0KK9Ca0J7Ql9Ce0JzQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9Ce0JzQntCg0JAg0JHQntCW0JjQlNCQ0KAKK9Ca0J7Ql9Ce0JzQntCg0JAg0JHQoNCQ0J3QmtCeCivQmtCe0JfQntCc0J7QoNCQINCY0JvQmNCI0JAKK9Ca0J7Ql9Ce0JzQntCg0JAg0IjQntCa0JAKK9Ca0J7Ql9Ce0JzQntCg0JAg0IjQntCS0J4KK9Ca0J7Ql9Ce0JzQntCg0JAg0JvQkNCX0J4KK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCb0JDQnQor0JrQntCX0J7QnNCe0KDQkCDQnNCY0JvQlQor0JrQntCX0J7QnNCe0KDQkCDQnNCY0JvQntCI0JrQngor0JrQntCX0J7QnNCe0KDQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JfQntCc0J7QoNCQINCf0JXQotCQ0KAKK9Ca0J7Ql9Ce0JzQntCg0JAg0KDQkNCU0J7QnNCY0KAKK9Ca0J7Ql9Ce0JzQntCg0JAg0KHQoNCC0JDQnQor0JrQntCX0J7QnNCe0KDQkCDQotCQ0KLQiNCQ0J3QkAor0JrQntCX0J7QnNCe0KDQkCDQktCQ0KHQmNCb0JjQiNCVCivQmtCe0JfQntCc0J7QoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCe0JfQo9Cd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCn0JDQlNCY0J3QkNCmINCa0J7QodCi0JAKK9Ca0KDQp9CQ0JTQmNCd0JDQpiDQndCY0JrQntCb0JAKK9Ca0KDQp9CV0JTQmNCd0JDQpiDQnNCY0J7QlNCg0JDQkwor0JrQoNCn0JXQlNCY0J3QkNCmINCi0JjQnNCQCivQmtCg0KfQldCb0JjQiyDQkNCd0JTQoNCY0IjQkAor0JrQoNCn0JzQkNCgINCW0JXQidCa0J4KK9Ca0KDQp9Cc0JDQoCDQptCS0JjQiNCeCivQmtCg0KfQnNCQ0KAg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCn0JzQkNCgINCU0KPQqNCa0J4KK9Ca0KDQp9Cc0JDQoCDQiNCe0JLQkNCdCivQmtCg0KfQnNCQ0KAg0JvQldCf0J7QodCQ0JLQkAor0JrQoNCn0JzQkNCgINCJ0KPQkdCY0KbQkAor0JrQoNCn0JzQkNCgINCJ0KPQkdCY0KbQkAor0JrQoNCn0JzQkNCgINCc0JjQm9CQ0J0KK9Ca0KDQp9Cc0JDQoCDQnNCY0JvQkNCdCivQmtCg0KfQnNCQ0KAg0JzQmNCg0JrQngor0JrQoNCn0JzQkNCgINCf0JDQndCVCivQmtCg0KfQnNCQ0KAg0JLQkNCh0J4KK9Ca0KDQp9Cc0JDQoCDQktCY0J3QmtCeCivQmtCg0KfQnNCQ0KAg0JfQntCg0JDQnQor0JrQoNCn0JzQkNCgINCX0J7QoNCQ0J0KK9Ca0KDQp9Cc0JDQoNCY0Jog0JTQkNCd0JjQm9CeCivQmtCg0KfQnNCQ0KDQmNCaINCf0KDQldCU0KDQkNCTCivQmtCg0KfQniDQkdCe0JbQmNCU0JDQoAor0JrQoNCn0J4g0JzQmNCb0JXQndCa0J4KK9Ca0KDQp9CeINCg0JDQodCY0JwKK9Ca0KDQp9CeINCg0JDQodCY0JwKK9Ca0KDQqNCV0JIg0JHQntCg0JjQoQor0JrQoNCo0JXQkiDQmNCS0JDQnQor0JrQoNCo0JXQkiDQiNCj0JvQmNCI0JDQndCQCivQmtCg0KjQldCSINCI0KPQm9Ca0JjQptCQCivQmtCg0KjQmNCLINCU0JDQoNCQCivQmtCg0KjQmNCLINCY0JPQitCQ0KIKK9Ca0KDQqNCY0Isg0IjQldCb0JAKK9Ca0KDQqNCY0Isg0KLQntCc0J4KK9Ca0KDQqNCY0J0g0IjQntCS0J4KK9Ca0KDQqNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCo0KLQldCd0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQoNCW0JAg0JzQmNCb0JXQndCa0J4KK9Ca0KDQltCY0Isg0KHQmNCc0J4KK9Ca0KDQgtCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0JrQoNCQ0KfQldCd0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KDQkNCn0JXQktCh0JrQmCDQkNCf0J7QodCi0J7Qmwor0JrQoNCQ0KfQo9CdINCY0JLQkNCdCivQmtCg0JDQp9Cj0J0g0KLQoNCQ0IjQkNCdCivQmtCg0JDQp9Cj0J0g0KLQoNCQ0IjQkNCdCivQmtCg0JDQp9Cj0J3QntCSINCf0JXQotCQ0KAKK9Ca0KDQkNCn0KPQndCe0JIg0KHQotCV0JLQkNCdCivQmtCg0JDQp9Cj0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JrQoNCQ0KfQo9Cd0J7QktCY0Isg0JLQldCJ0JrQngor0JrQoNCQ0IvQkNCaINCR0J7QqNCa0J4KK9Ca0KDQkNCT0JjQp9CV0Jog0JrQm9CQ0KDQkAor0JrQoNCQ0JPQmNCLINCR0JjQidCQ0J3QkAor0JrQoNCQ0JPQmNCLINCR0J7QoNCQCivQmtCg0JDQk9CY0Isg0InQmNCJ0JDQndCQCivQmtCg0JDQk9CY0Isg0JfQntCg0JDQnQor0JrQoNCQ0JPQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JrQoNCQ0JPQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JDQk9Cj0IjQldCSINCU0KPQqNCQ0J0KK9Ca0KDQkNCT0KPQiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAg0JvQldCa0JDQoAor0JrQoNCQ0JPQo9CI0JXQktCY0Isg0KDQkNCI0JrQngor0JrQoNCQ0JPQo9CI0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JrQoNCQ0JPQo9CJINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCg0JDQk9Cj0Ikg0JTQo9Co0JDQndCa0JAKK9Ca0KDQkNCT0KPQiSDQiNCV0JvQkAor0JrQoNCQ0JPQo9CJINCb0JDQl9CeCivQmtCg0JDQk9Cj0Ikg0KHQkNCS0JrQkAor0JrQoNCQ0JPQo9CJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQmtCg0JDQiNCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQkNCI0KfQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JDQiNCn0JjQndCe0JLQmNCLINCI0J7QktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQmtCg0JDQiNCo0JjQiyDQnNCY0KDQmtCeCivQmtCg0JDQiNCQ0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JDQiNCQ0KfQldCS0JjQiyDQpdCY0JvQlNCQCivQmtCg0JDQiNCQ0KfQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0JfQntCg0JDQnQor0JrQoNCQ0IjQptCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCQ0IjQptCV0KAg0JXQo9CT0JXQnQor0JrQoNCQ0IjQptCV0KAg0JjQoNCV0J3QkAor0JrQoNCQ0IjQptCV0KAg0JjQktCQ0J0KK9Ca0KDQkNCI0KbQldCgINCf0JXQotCQ0KAKK9Ca0KDQkNCI0JjQqNCd0JjQmiDQltCY0JLQntCg0JDQlAor0JrQoNCQ0IjQmNCo0J3QmNCaINCa0KDQmNCh0KLQmNCd0JAKK9Ca0KDQkNCI0JjQiyDQkNCT0JjQptCQCivQmtCg0JDQiNCY0J3QkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCQ0IjQmNCd0JAg0KTQmNCb0JjQnwor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0JDQiNCY0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCg0JDQiNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JDQiNCY0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQmtCg0JDQiNCY0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9Ca0KDQkNCI0J3QmNCaINCW0JDQoNCa0J4KK9Ca0KDQkNCI0J3QmNCaINCb0JDQl9CQ0KAKK9Ca0KDQkNCI0J3QmNCa0JXQoCDQndCQ0J3QlNCe0KAKK9Ca0KDQkNCI0J3QntCSINCR0J7Qk9CU0JDQnQor0JrQoNCQ0IjQndCe0JIg0JHQntCT0J7QidCj0JEKK9Ca0KDQkNCI0J3QntCSINCT0J7QoNCQ0J0KK9Ca0KDQkNCI0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQmtCg0JDQiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQoNCQ0IjQndCe0JLQmNCLINCC0KPQoNCeCivQmtCg0JDQiNCd0J7QktCY0Isg0JHQntCo0JrQngor0JrQoNCQ0IjQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQoNCQ0IjQndCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Ca0KDQkNCI0J3QntCS0JjQiyDQnNCY0JvQmNCLCivQmtCg0JDQiNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQmtCg0JDQiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0JDQiNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQoNCQ0IjQndCe0JLQmNCLINCg0JDQlNCVCivQmtCg0JDQiNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0KDQkNCI0J3QntCS0JjQiyDQktCV0KDQkAor0JrQoNCQ0IjQntCS0JDQnSDQnNCY0KDQiNCQ0J3QkAor0JrQoNCQ0IjQntCS0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQmtCg0JDQmiDQnNCY0KjQkAor0JrQoNCQ0JrQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQoNCQ0JrQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQoNCQ0JvQmNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQkNCb0JjQmiDQntCb0JjQndCa0JAKK9Ca0KDQkNCb0JjQmiDQn9CQ0JLQm9CVCivQmtCg0JDQm9CY0Jog0KHQotCV0JLQkNCdCivQmtCg0JDQiSDQktCQ0JvQldCd0KLQmNCdCivQmtCg0JDQiSDQl9CS0J7QndCY0JzQmNCgCivQmtCg0JDQidCV0JLQkNCn0JrQmCDQkdCQ0KDQkdCQ0KDQkAor0JrQoNCQ0InQldCS0JDQp9Ca0Jgg0JjQm9CY0IjQkAor0JrQoNCQ0InQldCS0JDQp9Ca0Jgg0IjQntCh0JjQnwor0JrQoNCQ0InQldCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JrQoNCQ0InQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCg0JDQidCV0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQoNCQ0InQldCS0JjQiyDQnNCY0JvQmtCQCivQmtCg0JDQidCV0JLQmNCLINCh0JDQktCeCivQmtCg0JDQidCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JrQoNCQ0InQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCQ0InQmNCLINCS0JvQkNCU0JAKK9Ca0KDQkNCK0KfQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQoNCQ0IrQp9CV0JLQmNCLINCI0J7QodCY0J8KK9Ca0KDQkNChINCI0JXQm9CV0J3QkAor0JrQoNCQ0KHQkNCS0JDQpiDQltCY0JLQntCg0JDQlAor0JrQoNCQ0KHQkNCS0JDQpiDQnNCY0JvQmtCQCivQmtCg0JDQodCQ0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQmtCg0JDQodCQ0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQmtCg0JDQodCQ0JLQkNCmINCg0KPQltCY0KbQkAor0JrQoNCQ0KHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCQ0KHQmNCLINCU0KPQqNCQ0J0KK9Ca0KDQkNCh0JjQiyDQk9Ce0JvQo9CRCivQmtCg0JDQodCY0Isg0JzQmNCb0J7QiNCVCivQmtCg0JDQodCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0JDQodCY0Isg0KHQotCV0JLQkNCdCivQmtCg0JDQodCa0J4g0IjQkNCd0JrQngor0JrQoNCQ0KHQndCY0Isg0JjQoNCY0J3QkAor0JrQoNCQ0KHQndCY0Isg0JLQldCg0JAKK9Ca0KDQkNCh0J3QmNCaINCS0JvQkNCi0JrQngor0JrQoNCQ0KHQndCY0Jog0JfQktCe0J3QmtCeCivQmtCg0JDQodCe0IjQldCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0JrQoNCQ0KHQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0JrQoNCQ0KHQo9Cb0JAg0KLQntCc0JAKK9Ca0KDQkNCh0KPQidCQINCU0KPQqNCQ0J0KK9Ca0KDQkNCh0KPQidCQINCh0KLQldCS0JDQnQor0JrQoNCQ0KPQoSDQkNCd0JAKK9Ca0KDQkNCj0KEg0J7QotCeCivQmtCg0JDQktCn0JXQndCa0J4g0J/QldCi0JDQoAor0JrQoNCQ0JLQkNCg0KPQqNCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0JDQktCQ0KDQo9Co0JjQiyDQmNCb0JjQiNCQCivQmtCg0JDQktCQ0KDQo9Co0JjQiyDQotCg0JjQktCj0J0KK9Ca0KDQkNCS0JDQoNCj0KjQmNCLINCS0JjQotCe0JzQmNCgCivQmtCg0JDQktCY0Isg0JTQo9Co0JDQnQor0JrQoNCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KDQkNCS0JjQiyDQn9CV0KLQkNCgCivQmtCg0JDQktCJ0JDQndCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0KDQkNCS0InQkNCd0JDQpiDQmNCS0JDQndCa0JAKK9Ca0KDQkdCQ0IrQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCR0JDQitCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KDQkdCQ0IrQldCS0JjQiyDQodCQ0KjQkAor0JrQoNCR0JDQktCQ0KYg0IjQldCb0JAKK9Ca0KDQptCY0Isg0JHQoNCQ0KLQmNCc0JjQoAor0JrQoNCm0KPQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQmtCg0I/QkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KDQj9CQ0JvQmNCLINCh0KLQldCS0JDQnQor0JrQoNCP0JjQiyDQktCY0JTQntCI0JUKK9Ca0KDQldCo0J4g0JXQnNCY0KAKK9Ca0KDQldCm0KPQmyDQm9CY0JTQmNCI0JAKK9Ca0KDQldCm0KPQiSDQnNCQ0KDQmNCI0JAKK9Ca0KDQldCTINCV0JTQo9CQ0KDQlAor0JrQoNCV0JMg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCV0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KDQldCI0JjQiyDQiNCe0JLQkNCdCivQmtCg0JXQiNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ca0KDQldCI0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0KDQldCI0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0KDQldCI0JjQiyDQodCi0J7QiNCQCivQmtCg0JXQmtCY0Isg0JHQkNCg0JjQqNCQINCU0KAKK9Ca0KDQldCa0JjQiyDQldCd0JLQldCgCivQmtCg0JXQmtCY0Isg0KTQoNCQ0IrQkAor0JrQoNCV0JrQmNCLINCc0JjQm9CV0J3QkAor0JrQoNCV0JrQniDQidCj0JHQmNCm0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCa0JvQkNCg0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCJ0KPQkdCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQidCj0JHQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0InQo9CR0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQoNCV0JzQldCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQodCi0JXQktCeCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQktCe0IjQmNCdCivQmtCg0JXQnNCV0KAg0JXQm9CY0JfQkNCR0JXQotCQCivQmtCg0JXQnNCV0KAg0KTQoNCQ0IrQkAor0JrQoNCV0JzQldCgINCI0J7QktCQ0J0KK9Ca0KDQldCc0JXQoCDQmtCQ0KLQmNCm0JAKK9Ca0KDQldCc0JXQoCDQnNCQ0KLQmNCI0JAKK9Ca0KDQldCc0JXQoCDQn9CQ0IjQkAor0JrQoNCV0JzQmNCLINCU0KDQkNCT0JDQnQor0JrQoNCV0JzQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCg0JXQnNCf0JDQodCa0Jgt0JDQndCU0KDQmNCLINCl0JjQm9CU0JAKK9Ca0KDQldCc0J/QkNCh0JrQmCDQldCb0JjQl9CQ0JHQldCi0JAKK9Ca0KDQldCh0JDQndCa0J4g0JvQkNCh0JvQngor0JrQoNCV0KHQkNCd0JrQniDQnNCQ0KDQk9CY0KLQkAor0JrQoNCV0KHQkNCd0JrQniDQnNCQ0KDQmNCI0JAKK9Ca0KDQldCh0JjQiyDQiNCQ0IrQkAor0JrQoNCV0KHQmNCLINCc0JjQm9CV0J3QkAor0JrQoNCV0KHQmNCLINCc0JjQotCQ0KAKK9Ca0KDQldCh0JjQiyDQodCb0JDQktCa0J4KK9Ca0KDQldCh0J4g0KjQkNCL0JjQoAor0JrQoNCV0KHQntCI0JAg0JTQo9Co0JrQngor0JrQoNCV0KHQntCI0JAg0JzQkNCg0JjQndCa0J4KK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCU0JDQnNCI0JDQnQor0JrQoNCV0KHQntCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCh0KDQkdCe0KHQm9CQ0JIKK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCS0JXQodCd0JAKK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCg0JXQodCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQoNCV0KHQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0JXQodCe0JLQmNCLINCS0JDQodCeCivQmtCg0JXQodCi0JAg0JDQoNCf0JDQlAor0JrQoNCV0KHQotCQINCQ0KLQmNCb0JAKK9Ca0KDQldCh0KLQmNCLINCU0JDQpNCY0J3QkAor0JrQoNCV0KHQotCY0Isg0J3QkNCU0JAKK9Ca0KDQldCh0KLQmNCLINCh0KLQldCS0JDQnQor0JrQoNCV0KHQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCV0JLQldCo0JjQiyDQmtCQ0KDQm9CeCivQmtCg0JXQktCV0KjQmNCLINCa0JDQotCQCivQmtCg0JPQkCDQk9CQ0JLQoNCQCivQmtCg0JPQkCDQnNCQ0J3QlQor0JrQoNCT0JAg0JzQkNCg0JAKK9Ca0KDQk9CQINCc0JjQm9CQ0J0KK9Ca0KDQk9CQINCc0JjQm9Ce0KgKK9Ca0KDQk9CQINCS0JDQodCQCivQmtCg0JPQmNCdINCc0JvQkNCU0JXQnQor0JrQoNCT0JjQnSDQndCQ0JTQkAor0JrQoNCT0JjQnSDQndCV0JTQldCJ0JrQngor0JrQoNCT0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0KDQk9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCg0JPQntCS0JjQiyDQiNCe0JLQngor0JrQoNCT0J7QktCY0Isg0JzQkNCb0JjQqNCQCivQmtCg0JPQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0KDQk9Ce0JLQmNCLINCc0JjQi9CeCivQmtCg0JPQntCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9Ca0KDQk9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCg0JPQntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCg0JPQntCS0JjQiyDQodCc0JjQidCQCivQmtCg0JPQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQoNCT0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQoNCT0J7QktCY0Isg0JLQm9CQ0JTQkAor0JrQoNCT0J7QktCY0Isg0JLQo9Ca0J7QnNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0JPQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0KDQmNCoINCf0JXQotCQ0KAKK9Ca0KDQmNCo0JDQnSDQkdCe0KHQmNCJ0JrQkAor0JrQoNCY0KjQkNCdINCU0KDQkNCT0J7QiNCb0J4KK9Ca0KDQmNCo0JDQnSDQnNCQ0KLQmNCI0JAKK9Ca0KDQmNCo0JDQnSDQnNCY0JvQntCoCivQmtCg0JjQqNCQ0J0g0JLQo9Ca0JjQptCQCivQmtCg0JjQqNCQ0J0g0JfQlNCg0JDQktCa0J4KK9Ca0KDQmNCo0JDQndCe0JIg0IjQntCS0JDQnQor0JrQoNCY0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCY0KjQotCeINCI0KPQm9CY0IjQkNCd0JAKK9Ca0KDQmNCWINCI0JDQndCa0J4KK9Ca0KDQmNCWINCf0JDQktCV0JsKK9Ca0KDQmNCW0JDQmiDQkNCd0JAKK9Ca0KDQmNCW0JDQnSDQqNCQ0J3QlNCe0KAKK9Ca0KDQmNCW0JDQnSDQgtCj0KDQkAor0JrQoNCY0JbQkNCdINCQ0J3QmNCm0JAKK9Ca0KDQmNCW0JDQnSDQldCU0KPQkNCg0JQKK9Ca0KDQmNCW0JDQnSDQiNCQ0J3QntCoCivQmtCg0JjQltCQ0J0g0IjQo9Cb0JAKK9Ca0KDQmNCW0JDQnSDQm9CQ0KHQm9CeCivQmtCg0JjQltCQ0J0g0JzQkNCg0JjQiNCQCivQmtCg0JjQltCQ0J0g0JzQkNCi0JjQiNCQCivQmtCg0JjQltCQ0J0g0JzQmNCa0JvQntCoCivQmtCg0JjQltCQ0J0g0KDQntCW0JAKK9Ca0KDQmNCW0JDQndCY0Isg0IjQntCS0JDQnQor0JrQoNCY0JbQkNCd0JjQiyDQiNCe0JLQkNCdCivQmtCg0JjQltCQ0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0JjQltCQ0J3QmNCLINCh0JvQkNCC0JDQndCQCivQmtCg0JjQltCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQmNCW0JDQndCe0JLQmNCLINCW0KPQltCQ0J3QkAor0JrQoNCY0JbQndCQ0KAg0JHQntCI0JDQnQor0JrQoNCY0JbQndCQ0KAg0JzQkNCg0JAKK9Ca0KDQmNCW0J3QkNCgINCc0JjQoNCa0J4g0JTQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQmNCW0J3QkNCgINCi0J7QnNCQINCU0JjQn9CbINCY0J3Qkwor0JrQoNCY0JzQqNCQ0JzQpdCQ0JvQntCSINCX0JDQmNCU0JAKK9Ca0KDQmNCd0JrQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCg0JjQndCa0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCY0J3QmtCe0JLQodCa0Jgg0JLQldCg0J7QndCY0JrQkAor0JrQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0JjQodCi0JjQiyDQndCQ0JTQkAor0JrQoNCY0KHQotCY0JDQnSDQiNCe0JbQldCkCivQmtCg0JjQodCi0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQmtCg0JjQodCi0J7QktCY0Isg0KDQo9CU0J7Qm9CkCivQmtCg0JjQktCQ0Jog0JDQndCQCivQmtCg0JjQktCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0JrQoNCY0JLQmNCLINCU0KDQkNCT0JDQndCQCivQmtCg0JjQktCY0Isg0InQmNCJ0JDQndCQCivQmtCg0JjQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0JjQktCe0KjQmNCI0JAg0JbQmNCS0JrQngor0JrQoNCY0JLQntCo0JjQiNCQINCk0KDQkNCK0J4KK9Ca0KDQmNCS0J7QqNCY0IjQkCDQnNCY0JvQlQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0JDQnNCQ0JvQmNCI0JAKK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCU0JDQndCY0KbQkAor0JrQoNCY0JLQntCa0JDQn9CY0Isg0JzQkNCg0KLQmNCdCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQndCV0JTQldCJ0JrQngor0JrQoNCY0JLQntCa0JDQn9CY0Isg0J3QldCS0JXQndCa0JAg0JTQmNCf0Jsg0JXQptCmCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQgtCe0KDQgtCVCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQldCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQlNCg0JDQk9CY0KbQkAor0JrQoNCY0JLQntCa0KPQi9CQINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQo9Co0JDQnQor0JrQoNCY0JLQntCa0KPQi9CQINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCg0JjQktCe0JrQo9CL0JAg0IjQntCS0JDQnQor0JrQoNCY0JLQntCa0KPQi9CQINCI0KPQm9CY0IjQkNCd0JAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQmtCg0JjQktCe0JrQo9CL0JAg0JzQmNCb0JjQptCQCivQmtCg0JjQktCe0JrQo9CL0JAg0JzQmNCb0JrQkAor0JrQoNCY0JLQntCa0KPQi9CQINCc0JjQntCU0KDQkNCTCivQmtCg0JjQktCe0JrQo9CL0JAg0J/QldCi0JDQoAor0JrQoNCY0JLQntCa0KPQi9CQINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQoNCQ0JTQntCS0JDQnQor0JrQoNCY0JfQkdCQ0Jgg0JfQntCb0KLQkNCdCivQmtCg0JrQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0JrQldCJ0JXQqCDQkdCe0KDQmNChCivQmtCg0JrQldCJ0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQoNCa0JXQidCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCg0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0JrQm9CV0KYg0IjQntCh0JjQnwor0JrQoNCa0JvQldCmINCS0JXQoNCQCivQmtCg0JrQm9CV0KYg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCa0InQldCoINCC0KPQoNCeCivQmtCg0JrQidCV0Kgg0JHQntCg0JAKK9Ca0KDQmtCJ0JXQqCDQnNCY0JvQlSDQlNCgCivQmtCg0JrQidCY0Isg0ILQo9Cg0J4KK9Ca0KDQmtCJ0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KDQmtCJ0JjQiyDQnNCY0JvQkNCdCivQmtCg0JrQidCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQmtCJ0JjQiyDQndCY0JrQntCb0JAKK9Ca0KDQmtCJ0JjQiyDQntCh0KLQntCI0JAKK9Ca0KDQmtCJ0KPQqCDQkdCe0KjQmtCeCivQmtCg0JrQidCj0Kgg0JHQoNCQ0J3QmtCeCivQmtCg0JrQidCj0Kgg0JTQoNCQ0JPQkNCd0JAKK9Ca0KDQmtCJ0KPQqCDQlNCj0KjQkNCd0JrQkAor0JrQoNCa0InQo9CoINCU0KPQqNCQ0J0KK9Ca0KDQmtCJ0KPQqCDQiNCV0JvQldCd0JAKK9Ca0KDQmtCJ0KPQqCDQiNCV0JvQmNCm0JAKK9Ca0KDQmtCJ0KPQqCDQmtCg0JjQodCi0JjQndCQCivQmtCg0JrQidCj0Kgg0InQo9CR0JjQndCa0JAKK9Ca0KDQmtCJ0KPQqCDQidCj0JHQntCc0JjQoNCa0JAg0JTQoAor0JrQoNCa0InQo9CoINCc0JjQm9CQ0J0KK9Ca0KDQmtCJ0KPQqCDQnNCY0JvQkNCdCivQmtCg0JrQidCj0Kgg0JzQmNCb0JjQptCQCivQmtCg0JrQidCj0Kgg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQmtCJ0KPQqCDQnNCY0KDQntCh0JvQkNCSCivQmtCg0JrQidCj0Kgg0JzQntCc0KfQmNCb0J4KK9Ca0KDQmtCJ0KPQqCDQn9CV0KLQkNCgCivQmtCg0JrQidCj0Kgg0J/QldCi0JDQoAor0JrQoNCa0InQo9CoINCg0JDQlNCVCivQmtCg0JrQidCj0Kgg0KHQm9CQ0JLQmtCeCivQmtCg0JrQidCj0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCa0InQo9CoINCh0KLQldCS0JDQnQor0JrQoNCa0InQo9CoINCS0JXQoNCY0KbQkAor0JrQoNCa0J7QkdCQ0JHQmNCLINCY0JvQmNCI0JAKK9Ca0KDQmtCe0JHQkNCR0JjQiyDQktCV0KDQmNCm0JAKK9Ca0KDQmtCe0JLQmNCLLdCI0KPQn9CV0Jog0JTQo9Co0JDQndCa0JAKK9Ca0KDQnNCQ0KAg0JTQo9Co0JDQnQor0JrQoNCc0JDQoCDQiNCQ0KHQndCQCivQmtCg0JzQkNCgINCc0JDQoNCa0J4KK9Ca0KDQnNCQ0KAg0JfQntCg0JAKK9Ca0KDQnNCf0J7QoiDQk9Ce0IjQmtCeCivQmtCg0JzQn9Ce0KIg0JvQkNCX0JDQoAor0JrQoNCc0J/QntCi0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQoNCc0J/QntCi0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQmtCg0JzQn9Ce0KLQmNCLINCS0KPQmtCY0KbQkAor0JrQoNCd0KfQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQoNCd0JDQiNCQ0KYg0JbQmNCS0JDQnQor0JrQoNCd0JDQiNCQ0KYg0JjQktCQ0J0KK9Ca0KDQndCQ0IjQkNCmINCc0J7QnNCn0JjQm9CeCivQmtCg0J3QkNCI0JDQpiDQndCV0JLQldCd0JrQkAor0JrQoNCd0JDQiNCQ0KYg0J/QldCi0JDQoAor0JrQoNCd0JDQiNCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Ca0KDQndCQ0IjQkNCmINCX0JvQkNCi0JjQptCQCivQmtCg0J3QkNCI0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQmtCg0J3QlNCY0IjQkCDQkdCe0JPQntCJ0KPQkQor0JrQoNCd0JTQmNCI0JAg0JHQoNCQ0J3QmtCeCivQmtCg0J3QlNCY0IjQkCDQnNCQ0KDQmtCeCivQmtCg0J3QlNCY0IjQkCDQnNCY0JvQntCS0JDQnQor0JrQoNCd0JTQmNCI0JAg0J3QldCd0JDQlAor0JrQoNCd0JTQmNCI0JAg0J/QldCi0JDQoAor0JrQoNCd0JTQmNCI0JAg0KHQotCQ0J3QkAor0JrQoNCd0JTQmNCI0JAg0KHQotCV0JLQngor0JrQoNCd0JTQmNCI0JAg0JLQntCI0JjQnQor0JrQoNCd0JXQotCQINCR0J7Qk9CU0JDQnQor0JrQoNCd0JXQotCQINCI0JXQm9Ca0JAKK9Ca0KDQndCV0KLQkCDQnNCY0JvQntCg0JDQlAor0JrQoNCd0JXQotCQINCc0JjQm9Ce0KHQkNCS0JAKK9Ca0KDQndCV0KLQkCDQndCY0JrQntCb0JAKK9Ca0KDQndCV0KLQkCDQoNCQ0JTQlQor0JrQoNCd0JXQotCQINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KDQndCV0KLQkCDQodCi0JXQktCQ0J0KK9Ca0KDQndCV0KLQmNCLINCT0J7QiNCa0J4KK9Ca0KDQndCV0KLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQndCY0Isg0JDQndCQCivQmtCg0J3QmNCLINCf0JXQoNCQCivQmtCg0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQmtCg0J3QmNCLINCh0KLQldCS0JDQnQor0JrQoNCd0JjQiyDQodCi0JjQn9CeCivQmtCg0J3QmNCI0JAg0JzQkNCg0JjQndCa0J4KK9Ca0KDQitCQ0JjQiyDQlNCg0JDQk9CeCivQmtCg0IrQkNCY0Isg0JPQntCg0JDQnQor0JrQoNCK0JDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCg0IrQkNCI0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQoNCK0JDQiNCY0Isg0JjQm9CY0IjQkAor0JrQoNCK0JDQiNCY0Isg0JjQktCY0KbQkAor0JrQoNCK0JDQiNCY0Isg0IjQntCS0JDQnQor0JrQoNCK0JDQiNCY0Isg0JzQmNCb0J7QqAor0JrQoNCK0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCK0JDQiNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0KDQitCV0KjQldCS0JDQpiDQodCQ0JLQkAor0JrQoNCK0JXQotCQINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0KDQitCV0KLQkCDQndCe0JLQkNCaCivQmtCg0IrQldCi0JjQnSDQltCY0JLQmtCeCivQmtCg0IrQldCi0JjQnSDQkdCg0JDQndCa0J4KK9Ca0KDQitCV0KLQmNCdINCU0KDQkNCT0JDQnQor0JrQoNCK0JXQotCY0J0g0IjQntCS0JDQnQor0JrQoNCK0JXQotCY0J0g0JrQkNCi0JjQptCQCivQmtCg0IrQldCi0JjQnSDQnNCQ0IjQkAor0JrQoNCK0JXQotCY0J0g0JzQmNCa0JAKK9Ca0KDQitCV0KLQmNCdINCh0JDQktCQCivQmtCg0IrQmNCLINCY0JLQkNCdCivQmtCg0IrQo9Cb0JDQpiDQlNCj0KjQkNCdCivQmtCg0J3QntCI0JXQm9CQ0KYg0JTQkNCd0JjQm9CeCivQmtCg0J7QqNCb0JDQmiDQodCi0JXQktCQ0J0KK9Ca0KDQntCc0JHQpdCe0JvQpiDQldCc0JjQmwor0JrQoNCe0JzQpdCe0JvQpiDQmtCQ0KDQm9CeCivQmtCg0J7QnNCf0JjQiyDQidCY0InQkNCd0JAg0J/QoNCe0KTQldCh0J7QoAor0JrQoNCe0JzQn9CY0Isg0InQo9CR0JjQptCQCivQmtCg0J7QnNCf0JjQiyDQnNCY0JvQkNCdCivQmtCg0J7QnNCf0JjQiyDQodCi0JDQndCa0J4KK9Ca0KDQntCd0JDQktCV0KLQldCgINCQ0JvQpNCg0JXQlAor0JrQoNCe0J3QmNCLINCb0JDQl9CQ0KAKK9Ca0KDQntCd0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCe0IrQkCDQmNCS0JDQnQor0JrQoNCe0IrQkCDQmNCS0JDQnQor0JrQoNCe0IrQkCDQnNCY0JvQkNCd0JrQkAor0JrQoNCe0J/QqCDQpdCY0JvQlNCQCivQmtCg0J7Qn9CQ0KfQldCaINCY0JLQkNCdCivQmtCg0J7Qn9CkINCQ0J3QgtCV0JvQmtCQCivQmtCg0J7Qn9CkINCk0KDQkNCK0JAKK9Ca0KDQn9CQ0J0g0JbQldCJ0JrQngor0JrQoNCf0JDQnSDQmNCS0JDQnQor0JrQoNCf0JDQnSDQidCY0InQkNCd0JAKK9Ca0KDQn9CQ0J0g0JzQmNCg0JrQngor0JrQoNCf0JDQnSDQodCi0JXQktCQ0J0KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCg0JrQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQptCS0JjQiNCQ0J0KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCa0KDQodCc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCe0JHQoNCV0J0KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCh0JDQqNCQCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0IjQmtCQCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Ca0KDQodCc0JDQndCe0JLQmNCLINCS0JDQodCQCivQmtCg0KHQndCY0Jog0IjQntCdCivQmtCg0KHQndCY0Jog0JzQkNCg0JjQiNCQCivQmtCg0KHQotCQ0IjQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9Ca0KDQodCi0JDQiNCY0Isg0J/QldCg0JrQngor0JrQoNCh0KLQkNCd0J7QktCY0Isg0KbQktCY0IjQngor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0KTQoNCQ0IrQkAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQmtCg0KHQotCQ0J3QntCS0JjQiyDQmtCe0KHQotCQCivQmtCg0KHQotCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQoNCh0KLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQoNCh0KLQldCa0JDQndCY0Isg0KfQldCU0J7QnNCY0KAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCQ0J3QkAor0JrQoNCh0KLQldCa0JDQndCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JrQoNCh0KLQldCa0JDQndCY0Isg0KDQkNCi0J7QnNCY0KAKK9Ca0KDQodCi0JXQktCh0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0KDQodCi0JXQktCh0JrQmCDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiy3QqNCi0JjQnNCQ0KYg0KHQn9CQ0KHQldCd0JjQiNCQINCU0KAKK9Ca0KDQodCi0JjQiyDQltCQ0KDQmtCeCivQmtCg0KHQotCY0Isg0JbQmNCS0JDQnQor0JrQoNCh0KLQmNCLINCW0JjQktCa0J4KK9Ca0KDQodCi0JjQiyDQltCY0JLQmtCeCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLLdCC0KPQoNCn0IjQkNCd0KHQmtCYINCg0KPQltCV0J3QmtCQCivQmtCg0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JrQoNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCg0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCh0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JDQndCY0KbQkAor0JrQoNCh0KLQmNCLINCR0J7QqNCa0J4KK9Ca0KDQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQoNCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCg0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KDQodCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCR0KDQkNCd0JrQngor0JrQoNCh0KLQmNCLINCU0JDQndCY0KbQkAor0JrQoNCh0KLQmNCLINCU0JXQodCQ0J3QmtCQCivQmtCg0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCg0KHQotCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0KDQodCi0JjQiyDQlNCe0JHQoNCY0JvQkAor0JrQoNCh0KLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Ca0KDQodCi0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9CY0IrQkAor0JrQoNCh0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCg0KHQotCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQodCi0JjQiyDQlNCj0KjQkNCdCivQmtCg0KHQotCY0Isg0JTQo9Co0JrQngor0JrQoNCh0KLQmNCLINCV0KLQldCb0JrQkAor0JrQoNCh0KLQmNCLINCV0JLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQk9CQ0JLQoNCQCivQmtCg0KHQotCY0Ist0JPQo9Cd0JXQmiDQnNCQ0KDQmNCI0JAKK9Ca0KDQodCi0JjQiyDQmNCb0JjQiNCQCivQmtCg0KHQotCY0Isg0JjQktCQ0J0g0JTQoAor0JrQoNCh0KLQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCh0KLQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCh0KLQmNCLINCI0J7QoNCU0JDQnQor0JrQoNCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQotCY0Isg0IjQntCS0JDQnQor0JrQoNCh0KLQmNCLINCa0JDQnNCV0J3QmtCeCivQmtCg0KHQotCY0Isg0JrQkNCc0JXQndCa0J4KK9Ca0KDQodCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQmtCe0KDQndCV0JvQmNCI0JAKK9Ca0KDQodCi0JjQiyDQm9CQ0JfQkNCgCivQmtCg0KHQotCY0Isg0JvQkNCX0JDQoAor0JrQoNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0KjQkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0KjQkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0J3QmtCQCivQmtCg0KHQotCY0Isg0InQo9CR0JjQodCQ0JIKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCg0KHQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCg0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JzQkNCg0JrQngor0JrQoNCh0KLQmNCLINCc0JjQm9CQ0JTQmNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0JvQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0KgKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCoCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QiNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQndCn0JUg0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQodCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQoNCh0KLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCg0KHQotCY0Isg0JzQmNCg0JrQngor0JrQoNCh0KLQmNCLINCc0JjQoNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0KDQntCJ0KPQkQor0JrQoNCh0KLQmNCLINCc0JjQoNCe0InQo9CRCivQmtCg0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQmtCg0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQmtCg0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCh0KLQmNCLINCc0JjQotCQ0KAKK9Ca0KDQodCi0JjQiyDQndCQ0JTQkAor0JrQoNCh0KLQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCg0KHQotCY0Isg0J3QldCd0JDQlAor0JrQoNCh0KLQmNCLINCd0JXQndCQ0JQKK9Ca0KDQodCi0JjQiyDQndCY0JrQntCb0JAKK9Ca0KDQodCi0JjQiyDQndCY0JrQntCb0JAKK9Ca0KDQodCi0JjQiyDQndCY0JrQntCb0JAKK9Ca0KDQodCi0JjQiyDQndCe0JLQkNCaCivQmtCg0KHQotCY0Isg0J3QntCS0JDQmgor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQotCY0Isg0J/QldCi0JDQoAor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCY0Isg0J/QldCi0JDQoAor0JrQoNCh0KLQmNCLINCf0JXQotCg0KPQnQor0JrQoNCh0KLQmNCLINCg0JDQlNCY0KHQkNCSCivQmtCg0KHQotCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQoNCh0KLQmNCLINCg0JDQlNCe0IjQlQor0JrQoNCh0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCg0KHQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCh0JDQkgor0JrQoNCh0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQoNCh0KLQmNCLINCg0JDQotCa0J4KK9Ca0KDQodCi0JjQiyDQoNCQ0KLQmtCeCivQmtCg0KHQotCY0Isg0KHQkNCS0JAKK9Ca0KDQodCi0JjQiyDQodCQ0JLQldCi0JAKK9Ca0KDQodCi0JjQiyDQodCY0J3QmNCo0JAKK9Ca0KDQodCi0JjQiyDQodCb0JDQktCY0KbQkAor0JrQoNCh0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KDQodCi0JjQiyDQodCg0ILQkNCdCivQmtCg0KHQotCY0Isg0KHQoNCV0KLQldCdCivQmtCg0KHQotCY0Isg0KHQotCQ0J3QmtCeCivQmtCg0KHQotCY0Isg0KHQotCQ0J3QntCI0JUKK9Ca0KDQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQmtCg0KHQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCg0KHQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCg0KHQotCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JrQoNCh0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0KDQodCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCg0KHQotCY0Isg0KLQmNCd0JrQkAor0JrQoNCh0KLQmNCLINCj0JPQidCV0KjQkCDQlNCgCivQmtCg0KHQotCY0Isg0JLQkNCh0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCg0KHQotCY0Isg0JLQkNCh0JAKK9Ca0KDQodCi0JjQiyDQktCQ0KHQmNCb0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JrQoNCh0KLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0KDQodCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQoNCh0KLQmNCLINCS0JXQidCa0J4KK9Ca0KDQodCi0JjQiyDQktCV0KDQkAor0JrQoNCh0KLQmNCLINCS0JXQoNCQCivQmtCg0KHQotCY0Isg0JLQldCh0JXQm9CY0J0KK9Ca0KDQodCi0JjQiyDQktCb0JDQlNCQCivQmtCg0KHQotCY0Isg0JLQntCI0JjQnQor0JrQoNCh0KLQmNCLLdCS0KDQltCY0J3QkCDQkdCe0KHQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCS0KPQmtCY0KbQkAor0JrQoNCh0KLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCg0KHQotCY0J0g0JbQmNCS0JrQkAor0JrQoNCh0KLQmNCdINCR0KDQkNCd0JrQngor0JrQoNCh0KLQmNCdINCY0JLQkNCdCivQmtCg0KHQotCY0J0g0IjQldCb0JrQkAor0JrQoNCh0KLQmNCdINCa0J7QodCi0JAKK9Ca0KDQodCi0JjQnSDQm9CQ0JfQkNCgCivQmtCg0KHQotCY0J0g0JzQm9CQ0JTQldCdCivQmtCg0KHQotCY0J0g0J3QkNCi0JDQqNCQCivQmtCg0KHQotCY0J0g0J/QldCi0JDQoAor0JrQoNCh0KLQmNCdINCh0JvQkNCS0JrQngor0JrQoNCh0KLQmNCdINCh0KLQldCS0JDQnQor0JrQoNCh0KLQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0KDQodCi0JjQnSDQktCV0KDQkAor0JrQoNCh0KLQmNCdINCS0JvQkNCU0JDQnQor0JrQoNCh0KLQmNCdINCX0J7QoNCQ0J0KK9Ca0KDQodCi0JjQndCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0KHQotCe0J3QntCo0JjQiyDQltCY0JLQkNCdCivQmtCg0KHQotCe0J3QntCo0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0IjQldCb0JXQndCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQotCe0J3QntCo0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCc0JjQm9CQ0J3QmtCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0J7QndCe0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCd0JDQlNCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQndCV0KHQotCe0KAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCh0KLQldCS0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JLQldCg0JAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCS0JjQlNCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQl9Cb0JDQotCQINCU0KAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCX0J7QoNCQCivQmtCg0KHQotCe0JLQodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9Ca0KDQotCV0J3QmNCLINCR0KDQkNCd0JrQngor0JrQoNCi0JXQndCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0KDQotCV0J3QmNCLINCf0JDQktCb0JUKK9Ca0KDQotCY0J3QmNCLINCR0J7QoNCQCivQmtCg0KLQmNCd0JjQiyDQlNCQ0J3QlQor0JrQoNCi0JjQndCY0Isg0JTQkNCd0JUKK9Ca0KDQotCY0J3QmNCLINCc0JjQoNCI0JDQndCQCivQmtCg0KLQmNCd0JjQiyDQnNCY0KDQmtCeCivQmtCg0KLQmNCd0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCg0KLQmNCd0JjQiyDQndCQ0JTQkAor0JrQoNCi0JjQndCY0Isg0KHQkNCS0JAKK9Ca0KDQotCY0J3QmNCLINCh0JzQmNCJ0JDQndCQCivQmtCg0KLQmNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0KPQp9CY0KfQkNCdINCc0JjQm9CQ0J0KK9Ca0KDQo9Co0JrQkCDQgtCe0KDQgtCVCivQmtCg0KPQqNCa0JAg0KHQotCV0JLQkNCdCivQmtCg0KPQltCV0JLQmNCLINCU0JXQiNCQ0J0KK9Ca0KDQo9CW0JXQktCY0Isg0J3QldCd0JDQlAor0JrQoNCj0JbQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0KPQltCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCg0KPQltCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQo9CW0JjQiyDQkNCd0JAKK9Ca0KDQo9CJINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCg0KPQiSDQnNCY0JvQkNCdCivQmtCg0KPQndCY0Isg0JbQmNCS0JDQnQor0JrQoNCj0J3QmNCLINCW0JjQktCe0KDQkNCUCivQmtCg0KPQndCY0Isg0ILQntCg0ILQlQor0JrQoNCj0J3QmNCLINCC0J7QoNCC0JUKK9Ca0KDQo9Cd0JjQiyDQgtCe0KDQgtCVCivQmtCg0KPQndCY0Ist0JHQldCb0JjQiyDQnNCY0JvQkNCd0JAKK9Ca0KDQo9Cd0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQo9Cd0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQo9Cd0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQo9Cd0JjQiyDQlNCQ0KDQkAor0JrQoNCj0J3QmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0KDQo9Cd0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmtCg0KPQndCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JrQoNCj0J3QmNCLINCY0JvQmNCI0JAKK9Ca0KDQo9Cd0JjQiyDQmNCb0J7QndCa0JAKK9Ca0KDQo9Cd0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQo9Cd0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KDQo9Cd0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KDQo9Cd0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCj0J3QmNCLINCc0JjQi9CeCivQmtCg0KPQndCY0Isg0JzQmNCa0JAKK9Ca0KDQo9Cd0JjQiyDQnNCY0JvQkNCd0JrQkAor0JrQoNCj0J3QmNCLINCc0JjQm9CQ0J0KK9Ca0KDQo9Cd0JjQiyDQnNCY0JvQntCoCivQmtCg0KPQndCY0Isg0J3QntCS0JDQmgor0JrQoNCj0J3QmNCLINCf0JDQktCb0JUKK9Ca0KDQo9Cd0JjQiyDQn9CV0KDQmNCo0JAKK9Ca0KDQo9Cd0JjQiyDQn9Cb0JXQnNCV0J3QmtCQCivQmtCg0KPQndCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0KDQo9Cd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0KPQndCY0Isg0KHQntCk0JjQiNCQCivQmtCg0KPQndCY0Isg0KLQntCo0JjQptCQCivQmtCg0KPQndCY0Isg0KPQoNCe0KgKK9Ca0KDQo9Cd0JjQiyDQktCV0JvQmNCn0JrQngor0JrQoNCj0J3QmNCLINCS0JXQoNCY0KbQkAor0JrQoNCj0J3QmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCg0KPQn9CV0JbQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JrQoNCj0J/QldCW0JXQktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0JrQoNCj0J/QidCQ0J3QmNCdINCh0KLQkNCd0JAKK9Ca0KDQo9Cf0InQkNCd0JjQnSDQktCV0KHQldCb0JAKK9Ca0KDQo9Ci0JAg0JHQntCW0JDQndCQCivQmtCg0KPQotCQINCU0KDQkNCT0JDQnQor0JrQoNCS0JDQktCQ0KYg0JHQmNCh0JXQoNCa0JAKK9Ca0KDQktCQ0JLQmNCm0JAg0JTQoNCQ0JbQldCdCivQmtCg0JLQkNCS0JjQptCQINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0KDQktCe0J/QmNCLINCe0JvQk9CQCivQmtCg0JfQnNCQ0J3QntCS0JjQiyDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Ca0KDQl9Cd0JDQoNCY0Isg0JzQmNCb0JUKK9Ca0KDQl9Cd0JDQoNCY0Isg0JLQkNCb0JXQndCi0JjQndCQCivQmtCj0Kcg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Cn0JXQoNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0KfQldCg0JAg0KHQotCV0JLQkNCdCivQmtCj0KfQmNCLINCd0JjQmtCe0JvQkAor0JrQo9Cn0JzQkNCoINCY0KDQldCd0JAKK9Ca0KPQp9Cc0JDQqCDQndCQ0KLQkNCo0JAKK9Ca0KPQp9Cc0JDQqCDQndCY0JrQntCb0JAKK9Ca0KPQp9Cd0JXQoCDQm9CQ0JTQmNCh0JvQkNCSCivQmtCj0KjQkNCa0J7QktCY0Isg0KHQnNCY0InQkAor0JrQo9Co0JvQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQqNCJ0JDQnSDQodCb0JDQktCa0J4KK9Ca0KPQqNCJ0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCj0KjQidCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQo9Co0InQmNCLINCR0J7QoNCY0KEKK9Ca0KPQiyDQodCi0JDQndCa0JAKK9Ca0KPQltCQ0KLQmtCeINCQ0J3QmNCm0JAKK9Ca0KPQltCQ0KLQmtCeINCV0JzQmNCbCivQmtCj0JbQkNCi0JrQniDQnNCQ0KDQotCQCivQmtCj0JbQkNCi0JrQniDQktCb0JDQlNCY0JzQmNCgCivQmtCj0JbQldCb0JrQkCDQodCY0JzQkAor0JrQo9CW0JXQotCY0J0g0JHQntCW0JAKK9Ca0KPQltCV0KLQmNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCj0JbQldCi0JjQnSDQnNCQ0KDQkAor0JrQo9CW0JXQotCY0J0g0JzQmNCb0JDQnQor0JrQo9CW0JXQotCY0J0g0J3QntCS0JDQmgor0JrQo9CW0JXQktCh0JrQmCDQnNCY0JvQmNCS0J7QiNCVCivQmtCj0JbQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0KPQltCY0Isg0JzQm9CQ0JTQldCdCivQmtCj0JbQmNCLINCc0JvQkNCU0JXQnQor0JrQo9CW0JjQiyDQn9CV0KLQkNCgCivQmtCj0JHQkNCK0Jgg0JDQndCQCivQmtCj0JHQkNCd0J7QktCYINCX0JvQkNCi0JrQngor0JrQo9CR0JDQoiDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JrQo9CR0JDQoiDQo9Cg0J7QqAor0JrQo9CR0JDQotCe0JLQmNCLINCQ0J3QkAor0JrQo9CR0JDQotCe0JLQmNCLINCY0JvQmNCI0JAKK9Ca0KPQkdCV0KfQmtCQINCc0JjQm9CQ0J0KK9Ca0KPQkdCV0KIg0JzQmNCb0JDQnQor0JrQo9CR0JjQp9CV0JvQkCDQn9CV0KLQkNCgCivQmtCj0JHQmNCn0JrQniDQpNCV0KDQldCd0KYKK9Ca0KPQkdCY0KbQkCDQodCi0IjQldCf0JDQnQor0JrQo9CR0JjQptCQINCS0JXQoNCQCivQmtCj0JHQmNCaINCk0KDQkNCd0KbQmNCo0JrQkAor0JrQo9CR0JjQitCV0KYg0IjQntCh0JjQnwor0JrQo9CR0KPQoNCY0Isg0JzQmNCL0J4KK9Ca0KPQkdCj0KDQmNCLINCd0J7QktCa0JAKK9Ca0KPQkdCj0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0KPQptCj0JvQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KPQptCj0JvQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCj0KbQo9Cg0JDQpiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0KPQptCj0KDQkNCmINCc0JDQoNCQCivQmtCj0KbQo9Cg0JDQpiDQndCQ0JTQldCW0JTQkAor0JrQo9Cm0KPQoNCQ0KYg0KHQotCV0JLQkNCdCivQmtCj0KbQo9Cg0KHQmtCYINCC0KPQoNCY0KbQkAor0JrQo9Cm0KPQoNCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCj0KbQo9Cg0KHQmtCYINCg0JDQlNCY0KHQm9CQ0JIKK9Ca0KPQlNCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JrQo9CU0JjQiyDQodCi0JXQktCQCivQmtCj0JTQoNCQINCU0JDQndCY0IjQldCb0JAKK9Ca0KPQlNCg0JAg0J7Qm9CT0JAKK9Ca0KPQlNCg0JAt0JfQmNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCj0JTQoNCY0Isg0JTQldCh0JjQnNCY0KAKK9Ca0KPQk9CQINCI0J7QktCQ0J0KK9Ca0KPQk9CY0Isg0JjQm9CY0IjQkAor0JrQo9CT0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQo9CT0JjQiyDQodCQ0JLQmtCQCivQmtCj0JPQm9CYINCY0JzQoNCVCivQmtCj0JPQm9CYINCI0J7QodCY0J8KK9Ca0KPQk9Cb0Jgg0JzQmNCl0JDQiNCb0J4KK9Ca0KPQk9Cb0Jgg0JzQmNCl0JDQiQor0JrQo9CT0JvQmCDQn9CQ0JLQkNCeCivQmtCj0JPQm9CYINCg0J7QltCY0JrQkAor0JrQo9CT0JvQmCDQodCi0JXQktCQ0J0KK9Ca0KPQpdCQ0IjQlNCQINCo0JDQndCU0J7QoAor0JrQo9Cl0JDQiNCU0JAg0JrQodCV0J3QmNCI0JAg0JzQoAor0JrQo9Cl0JDQiNCU0JAg0JLQm9CQ0JTQmNCc0JjQoCDQnNCgCivQmtCj0KXQkNCI0JTQkCDQl9Cb0JDQotCQCivQmtCj0KXQkNCgINCI0JXQm9CV0J3QkAor0JrQo9Cl0JDQoCDQiNCe0JLQkNCdCivQmtCj0KXQkNCgINCh0JvQkNCS0JjQptCQCivQmtCj0IjQkNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KPQiNCe0JLQmNCLINCd0JXQlNCQCivQmtCj0IjQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ca0KPQiNCj0J3Qj9CY0Isg0JvQo9CI0JfQkAor0JrQo9CI0KPQndCP0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQo9CI0KPQndCP0JjQiyDQotCe0JzQkNCd0JjQiNCQCivQmtCj0IjQo9Cd0I/QmNCLINCS0JXQoNCQCivQmtCj0JrQkNCS0JjQptCQINCI0J7QoNCU0JDQnQor0JrQo9Ca0JDQktCY0KbQkCDQnNCY0KDQmtCeCivQmtCj0JrQkNCS0JjQptCQINCg0KPQltCY0KbQkAor0JrQo9Ca0JDQktCh0JrQmCDQn9CQ0JLQm9CVCivQmtCj0JrQmNCLINCW0JDQoNCa0J4KK9Ca0KPQmtCY0Isg0JHQoNCQ0J3QmtCQCivQmtCj0JrQmNCLINCU0KDQkNCT0JDQnQor0JrQo9Ca0JjQiyDQk9Ce0IjQmtCeCivQmtCj0JrQmNCLINCT0J7QoNCU0JDQndCQCivQmtCj0JrQmNCLINCI0JXQm9CY0KbQkAor0JrQo9Ca0JjQiyDQiNCV0JvQmtCQCivQmtCj0JrQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQmtCY0Isg0JzQmNCb0J7QiNCa0JAKK9Ca0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQmtCY0Isg0JzQmNCg0JrQngor0JrQo9Ca0JjQiyDQndCV0JHQntCI0KjQkAor0JrQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQmtCY0Isg0J/QldCi0JDQoAor0JrQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JrQmNCLINCh0KLQldCS0JDQnQor0JrQo9Ca0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCj0JrQmNCLINCS0JXQoNCQCivQmtCj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQmtCY0Isg0JfQntCg0JDQnQor0JrQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQmtCj0JrQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Ca0KPQmtCY0J0g0JbQmNCS0JDQnQor0JrQo9Ca0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9Ca0JjQnSDQlNCV0IjQkNCdCivQmtCj0JrQmNCdINCh0JzQmNCJ0JrQkAor0JrQo9Ca0JvQkCDQmNCS0JDQnQor0JrQo9Ca0J7QpyDQktCY0J3QmtCeCivQmtCj0JrQntCR0JDQoiDQoNCQ0JTQntCS0JDQnQor0JrQo9Ca0J7QiSDQlNCQ0J3QlQor0JrQo9Ca0J7QiSDQlNCg0JDQk9CQ0J0KK9Ca0KPQmtCe0Ikg0JTQo9Co0JrQngor0JrQo9Ca0J7QiSDQnNCY0JvQmtCQCivQmtCj0JrQntCJINCc0JjQoNCI0JDQndCQCivQmtCj0JrQntCJINCg0JDQlNCc0JjQm9CQCivQmtCj0JrQntCJINCg0JDQiNCa0J4KK9Ca0KPQmtCe0JLQodCa0Jgg0IjQntCS0JDQnQor0JrQo9Ca0KDQmNCa0JAg0JHQntCo0JrQngor0JrQo9Ca0KPQp9Ca0JAg0IjQkNCdCivQmtCj0JrQo9Cn0JrQkCDQnNCY0KXQkNCI0JvQngor0JrQo9Ca0KPQiSDQlNCe0JHQoNCY0JvQkAor0JrQo9Ca0KPQoNCe0JIg0IjQntCh0JjQpAor0JrQo9Ca0KPQoNCj0JfQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KPQmtCj0KDQo9CX0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9Cb0KfQkNCgINCY0KjQotCS0JDQnQor0JrQo9Cb0JDQp9CQ0J3QmNCdINCQ0J3QmNCm0JAKK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQnNCY0JvQldCd0JrQngor0JrQo9Cb0JDQp9CQ0J3QmNCdINCd0JDQlNCQCivQmtCj0JvQkNCn0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQmtCj0JvQkNCn0JjQnSDQgtCj0KDQngor0JrQo9Cb0JDQp9CY0J0g0JHQo9CU0JjQnNCa0JAKK9Ca0KPQm9CQ0KfQmNCdINCU0KPQqNCQ0J0KK9Ca0KPQm9CQ0KfQmNCdINCh0JvQkNCS0JrQngor0JrQo9Cb0JDQp9Ca0Jgg0JzQmNCi0JDQoAor0JrQo9Cb0JDQqCDQnNCQ0KDQmtCeCivQmtCj0JvQkNCoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQm9CQ0KjQldCS0JjQiyDQl9Cb0JDQotCQCivQmtCj0JvQkNCo0JjQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQmtCj0JvQkNCo0JjQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Ca0KPQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JrQo9Cb0JDQo9CX0J7QkiDQkNCg0JrQkNCU0JjQiNCVCivQmtCj0JvQkNCj0JfQntCSINCI0J7QktCQ0J3QmtCQCivQmtCj0JvQkNCj0JfQntCSINCc0JjQm9CV0J3QmtCeINCU0KAKK9Ca0KPQm9CV0KjQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JrQo9Cb0JXQqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KPQm9CV0KjQmtCeINCU0KDQkNCT0J7QodCb0JDQktCQCivQmtCj0JvQldCd0J7QktCY0Isg0JDQpdCc0JXQlAor0JrQo9Cb0JXQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KPQm9CV0JLQodCa0Jgg0JrQkNCi0JjQptCQCivQmtCj0JvQldCS0KHQmtCYINCg0J7QltCQCivQmtCj0JvQldCS0KHQmtCYINCg0J7QltCQCivQmtCj0JvQmNCo0JjQiyDQndCV0JTQkAor0JrQo9Cb0JjQqNCY0Isg0J7Qm9CT0JAKK9Ca0KPQm9CY0KjQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Ca0KPQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Ca0KPQm9CY0Isg0IjQntCS0JDQnQor0JrQo9Cb0JjQiyDQiNCe0JLQngor0JrQo9Cb0JjQiyDQm9CQ0JfQkNCgCivQmtCj0JvQmNCLINCd0JXQkdCe0IjQqNCQCivQmtCj0JvQmNCLINCg0JDQlNCY0JLQntCICivQmtCj0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQm9CY0I/QkNCdINCU0KDQkNCT0KPQotCY0J0KK9Ca0KPQm9CY0I/QkNCdINCd0JXQnNCQ0IrQkAor0JrQo9Cb0JjQj9CQ0J0g0JLQkNCh0J4g0JTQoAor0JrQo9CJ0JDQp9CQINCY0JvQmNCI0JAKK9Ca0KPQidCQ0KfQkCDQn9CV0KLQkNCgCivQmtCj0InQkNCaINCc0JDQoNCY0IjQkAor0JrQo9CJ0JDQndCn0JjQiyDQlNCj0KjQkNCdCivQmtCj0InQkNCd0KfQmNCLINCI0KPQm9Ca0JAKK9Ca0KPQidCQ0J3Qp9CY0Isg0JzQmNCb0JXQndCQCivQmtCj0InQkNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JrQo9CJ0JDQndCn0JjQiyDQodCQ0JLQngor0JrQo9CJ0JDQndCn0JjQiyDQktCV0KDQkAor0JrQo9CJ0JDQndCY0J0g0IjQkNCa0J7Qkgor0JrQo9CJ0JDQndCa0JjQiyDQnNCj0KDQkNCU0JjQpAor0JrQo9CJ0JDQndCh0JrQmCDQntCb0JPQkAor0JrQo9CJ0JDQndCh0JrQmCDQodCb0JDQktCa0J4KK9Ca0KPQidCY0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CJ0JjQiyDQkdCY0KHQldCg0JrQkAor0JrQo9CJ0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0KPQidCY0Isg0JvQkNCX0JDQoAor0JrQo9CJ0JjQiyDQidCj0JHQntCc0JjQoAor0JrQo9CJ0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQo9CJ0JjQiyDQndCV0JTQldCJ0JrQngor0JrQo9CJ0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQidCY0Isg0J/QldCi0JDQoAor0JrQo9CJ0JjQiyDQodCQ0JLQngor0JrQo9CJ0JjQiy3QodCc0KPQgtCQINCc0JDQk9CU0JDQm9CV0J3QkAor0JrQo9CJ0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQo9Cb0JrQkCDQk9Cg0JXQotCQCivQmtCj0JvQn9CY0J3Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0KPQm9Cf0JjQndCn0JXQktCY0Isg0IjQntCS0J4KK9Ca0KPQm9Cf0JjQndCh0JrQmCDQlNCj0KjQkNCdCivQmtCj0JvQn9CY0J3QodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQm9Cf0JjQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0KPQm9Cf0JjQndCh0JrQmCDQktCj0IjQkNCU0JjQnQor0JrQo9Cc0JDQndCe0JIg0JbQmNCS0JDQnQor0JrQo9Cc0JDQndCe0JIg0JHQntCW0JjQlNCQ0KAKK9Ca0KPQnNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQo9Cc0JDQl9CV0KYg0JvQkNCX0JAKK9Ca0KPQnNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JrQo9Cc0J7QktCY0Isg0JzQmNCb0JjQptCQCivQmtCj0JzQntCS0JjQiyDQodCQ0JLQngor0JrQo9CdINCC0KPQoNCQCivQmtCj0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KPQnSDQkdCV0JvQkAor0JrQo9CdINCU0JDQndCY0KbQkAor0JrQo9CdINCV0JTQmNCi0JAKK9Ca0KPQnSDQldCg0J3QlQor0JrQo9CdINCb0JDQodCb0J4KK9Ca0KPQnSDQodCi0JXQktCQ0J0KK9Ca0KPQndCn0JDQmtCe0JLQkCDQnNCQ0KDQmNCI0JAKK9Ca0KPQndCQ0KDQkNCmINCQ0J3QmNCV0JvQkAor0JrQo9Cd0JTQkNCn0JjQndCQINCI0J7QktCeCivQmtCj0J3QlNCQ0KfQmNCd0JAg0KDQkNCU0J7QktCQ0J0KK9Ca0KPQndCU0JDQp9CY0J3QkCDQodCQ0JLQngor0JrQo9Cd0JjQiyDQgtCe0KDQgtCVCivQmtCj0J3QmNCLINCT0J7QoNCU0JDQndCQCivQmtCj0J3QmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JrQo9Cd0J7QodCY0Isg0J3QldCP0JDQlAor0JrQo9Cd0J7QodCY0Isg0J7QodCc0JDQnQor0JrQo9Cd0J7QktCQ0KYg0InQo9CR0J4KK9Ca0KPQndCh0KIg0JjQoNCV0J0KK9Ca0KPQndCh0KLQnNCQ0J0g0JDQndCQ0KHQotCQ0KHQmNCI0JAKK9Ca0KPQn9CV0Jog0JbQldCJ0JrQkAor0JrQo9Cf0JXQmiDQl9Ce0KDQmNCm0JAKK9Ca0KPQn9CY0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ca0KPQn9Cg0JXQqNCQ0Jog0JTQkNCd0JjQm9CeCivQmtCj0J/QoNCV0KjQkNCaINCS0JjQlNCQCivQmtCj0J/QoNCV0KjQkNCd0JjQnSDQkdCY0InQkNCd0JAKK9Ca0KPQn9Cg0JXQqNCQ0J3QmNCdINCY0JvQmNCI0JAKK9Ca0KPQn9Cg0JXQqNCQ0J3QmNCdINCc0JjQm9CVINCU0JjQn9CbINCY0J3Qkwor0JrQo9Cf0KDQldCo0JrQmCDQiNCe0KbQkAor0JrQo9Cf0KDQldCo0JrQmCDQktCV0KDQkAor0JrQo9Cf0KPQodCQ0KDQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KPQn9Cj0KHQmNCd0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KPQn9Cj0KHQmNCd0JDQpiDQktCV0InQmtCeCivQmtCj0KDQp9Cj0JHQmNCLINCU0KDQkNCT0JjQiwor0JrQo9Cg0KfQo9CR0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQmtCj0KDQqNCj0JzQntCS0JjQiyDQkNCS0JTQo9Cb0JDQpQor0JrQo9Cg0JDQiNCY0Isg0IjQntCS0JDQnQor0JrQo9Cg0JDQnSDQmNCS0JDQnQor0JrQo9Cg0JDQitCYINCI0JDQnQor0JrQo9Cg0JDQitCYINCI0JDQnQor0JrQo9Cg0JHQkNCb0JjQiNCQINCC0J7QoNCC0JUKK9Ca0KPQoNCR0JDQm9CY0IjQkCDQlNCQ0J3QmNCm0JAKK9Ca0KPQoNCR0JDQm9CY0IjQkCDQiNCe0JLQkNCdCivQmtCj0KDQkdCQ0JvQmNCI0JAg0JvQkNCX0JDQoAor0JrQo9Cg0JHQkNCb0JjQiNCQINCc0JjQoNCI0JDQndCQCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0KTQldCC0JAg0JTQmNCf0Jsg0JjQndCTCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0JjQktCQ0J0KK9Ca0KPQoNCR0JDQotCk0JjQndCh0JrQmCDQodCb0JDQktCa0J4KK9Ca0KPQoNCR0JDQotCk0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCj0KDQkdCQ0KLQktCY0J3QodCa0Jgg0JTQmNCd0JAKK9Ca0KPQoNCR0JDQotCS0JjQndCh0JrQmCDQmNCS0JDQnQor0JrQo9Cg0JHQkNCi0JLQmNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JrQo9Cg0JHQkNCi0JLQmNCd0KHQmtCYINCX0J7QoNCQCivQmtCj0KDQptCY0J3QkNCaINCV0JzQmNCbCivQmtCj0KDQptCY0J3QkNCaINCY0JzQoNCVCivQmtCj0KDQptCY0J3QkNCaINCI0J7QodCY0J8KK9Ca0KPQoNCm0JjQndCQ0Jog0JvQkNCI0J7QqAor0JrQo9Cg0KbQmNCd0JDQmiDQn9CQ0JLQm9CVCivQmtCj0KDQptCY0J3QkNCaINCh0KLQldCS0JDQnQor0JrQo9Cg0KbQmNCd0JDQmiDQktCV0KHQndCQCivQmtCj0KDQlNCYINCQ0JzQkNCb0JjQiNCQCivQmtCj0KDQlNCe0JLQodCa0Jgg0JzQmNCi0JDQoAor0JrQo9Cg0JTQo9Cb0JjQiyDQnNCY0JvQntCoCivQmtCj0KDQldCo0JXQktCY0Isg0KDQkNCm0JrQngor0JrQo9Cg0JXQqNCV0JLQmNCLINCh0JDQktCeCivQmtCj0KDQldCa0JDQqCDQnNCY0KLQkNCgCivQmtCj0KDQldCf0JAg0JLQkNCh0JAKK9Ca0KPQoNCY0Kgg0KjQotCV0KTQkNCdCivQmtCj0KDQmNCP0JAg0JHQntCT0JTQkNCdCivQmtCj0KDQmNCP0JAg0JTQo9Co0JDQnQor0JrQo9Cg0JjQiCDQotCe0JzQmNCh0JvQkNCSCivQmtCj0KDQmNCI0JAg0JLQldCJ0JrQngor0JrQo9Cg0JjQmtCo0JAg0JDQndCi0J7QndCY0J3QkAor0JrQo9Cg0JjQm9CQINCI0JDQndCe0KgKK9Ca0KPQoNCY0JvQmNCLINCI0J7QktCeCivQmtCj0KDQmNCb0JjQiyDQnNCY0JvQkNCdCivQmtCj0KDQmNCb0JjQiyDQnNCY0JvQntCoCivQmtCj0KDQmNCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCj0KDQmNCdINCC0J7QoNCC0JUKK9Ca0KPQoNCY0J0g0IjQntCh0JjQnwor0JrQo9Cg0IjQkNCn0JrQmCDQltCY0JLQmtCeCivQmtCj0KDQiNCQ0KfQmtCYINCC0J7QoNCC0JUKK9Ca0KPQoNCI0JDQp9Ca0Jgg0ILQo9Cg0ILQmNCd0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JDQndCa0JjQptCQCivQmtCj0KDQiNCQ0KfQmtCYINCU0JDQndCY0KbQkAor0JrQo9Cg0IjQkNCn0JrQmCDQiNCe0JLQkNCdCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQpdCQ0IjQm9CeCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CQ0J0KK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCb0JXQktCQCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CV0JLQkAor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0JvQmNCm0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCb0JjQktCe0IgKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCe0JTQoNCQ0JMKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0KHQoNCV0JTQntCI0JUKK9Ca0KPQoNCI0JDQp9Ca0Jgg0KHQotCQ0J3QmtCeCivQmtCj0KDQiNCQ0KfQmtCYINCh0KLQldCS0JDQnQor0JrQo9Cg0IjQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQmtCj0KDQiNCQ0KfQmtCYINCX0J7QoNCQCivQmtCj0KDQiNCQ0JrQntCSINCC0J7QoNCC0JUKK9Ca0KPQoNCI0JDQmtCe0JIg0JTQkNCd0JjQm9CeCivQmtCj0KDQiNCQ0JrQntCSINCU0KDQkNCT0JDQnQor0JrQo9Cg0IjQkNCa0J7QkiDQnNCY0JvQkNCdCivQmtCj0KDQiNCQ0JrQntCSINCc0JjQm9CY0JLQntCICivQmtCj0KDQiNCQ0JrQntCSINCg0J7QmtCh0JDQndCU0JAKK9Ca0KPQoNCI0JDQmtCe0JIg0JLQmNCa0KLQntCg0JjQiNCQCivQmtCj0KDQoSDQgtCe0KDQgtCVCivQmtCj0KDQotCQINCQ0JfQmNChCivQmtCj0KDQotCV0Kgg0IjQkNCh0J3QkAor0JrQo9Cg0KLQldCoINCb0JDQl9CQ0KAKK9Ca0KPQoNCi0JXQqCDQnNCQ0KDQkAor0JrQo9Cg0KLQldCoINCh0JLQldCi0JrQngor0JrQo9Cg0KLQldCo0Jgg0KTQo9CQ0KIKK9Ca0KPQoNCi0JXQqNCYINCd0KPQodCg0JXQogor0JrQo9Cg0KLQldCo0Jgg0JfQldCd0KPQnQor0JrQo9Cg0KLQmCDQnNCj0KHQotCQ0KTQkAor0JrQo9Cg0KLQmCDQndCV0JfQmNCgCivQmtCj0KDQotCY0KjQldCS0JjQiyDQndCQ0KHQo9CkCivQmtCj0KDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KPQoNCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQo9Cg0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCj0KDQotCY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQo9Cg0KLQntCS0JjQiyDQkNCd0JAKK9Ca0KPQoNCi0J7QktCY0Isg0JjQktCQ0J0KK9Ca0KPQoNCi0KPQqNCY0Isg0JjQktCQ0J3QmtCQCivQmtCj0KDQo9Cn0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0KPQoNCj0KfQldCSINCc0JjQoNCI0JDQndCQCivQmtCj0KDQo9Cn0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQmtCj0KDQo9Cn0JrQmCDQmtCQ0JzQldCd0JrQngor0JrQo9Cg0KPQp9Ca0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9Cg0KPQp9Ca0Jgg0JfQm9CQ0KLQmNCc0JjQoAor0JrQo9Cg0KPQqNCY0Isg0JHQntCg0J4KK9Ca0KPQoNCj0KYg0ILQo9Cb0JAKK9Ca0KPQoNCj0KYg0ILQo9Cb0JAKK9Ca0KPQoNCj0KYg0JjQk9Cd0JDQpgor0JrQo9Cg0KPQpiDQmNCg0JXQndCQCivQmtCj0KDQo9CmINCI0JDQndCe0KgKK9Ca0KPQoNCj0KYg0IjQntCS0J4KK9Ca0KPQoNCj0KYg0JvQkNCI0J7QqAor0JrQo9Cg0KPQpiDQm9CQ0KHQm9CeCivQmtCj0KDQo9CmINCd0JDQndCU0J7QoAor0JrQo9Cg0KPQpiDQotCY0JHQntCgCivQmtCj0KDQo9CmINCS0JjQndCa0JAKK9Ca0KPQoNCj0KbQkCDQkdCe0JbQkAor0JrQo9Cg0KPQptCQINCI0J7QktCQ0J0KK9Ca0KPQoNCj0KbQmNCLINCU0KDQkNCT0JDQnQor0JrQo9Cg0KPQptCY0Isg0InQo9CR0JjQptCQCivQmtCj0KDQo9Cm0JjQiyDQodCY0J3QmNCo0JAKK9Ca0KPQoNCj0KbQmNCLINCS0JjQotCe0JzQmNCgCivQmtCj0KDQo9Cm0JjQnSDQltCY0JLQkNCd0JAKK9Ca0KPQoNCj0J3QptCYINCQ0J3QlNCg0JjQiNCQCivQmtCj0KDQo9Cd0KbQmCDQiNCe0JbQldCkCivQmtCj0KDQo9Cd0KbQmCDQiNCe0JbQldCkCivQmtCj0KDQo9Cd0KbQmCDQnNCQ0KDQmNCI0JAKK9Ca0KPQoNCj0JfQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JrQo9Ch0JjQiyDQodCg0JXQotCa0J4KK9Ca0KPQodCb0Jgg0KTQldCg0JXQndCmCivQmtCj0KHQm9CYINCT0JXQl9CQCivQmtCj0KHQnNCj0Jog0JTQkNCg0JjQndCa0JAKK9Ca0KPQodCi0JjQiyDQodCe0KTQmNCI0JAKK9Ca0KPQodCi0KPQlNCY0IjQkCDQlNCQ0J3QmNCm0JAKK9Ca0KPQodCi0KPQlNCY0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCj0KHQotCj0JTQmNCI0JAg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Ch0KLQo9Cg0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQodCi0KPQoNCY0Isg0KHQldCb0JjQnNCY0KAKK9Ca0KPQodCi0KPQoNCY0KbQkCDQpdCQ0KHQkNCdCivQmtCj0KHQotCj0KDQmNCm0JAg0J3QkNCX0JjQpAor0JrQo9Ch0KLQo9Cg0JjQnSDQkNCd0KLQo9CdCivQmtCj0KHQotCj0KDQmNCdINCc0JjQoNCI0JDQndCQCivQmtCj0KHQo9Cg0J7QktCY0Isg0JDQndCa0JjQptCQCivQmtCj0KLQmNCI0JXQktCQ0KYg0InQo9CR0JjQptCQCivQmtCj0KLQm9CQ0KfQkCDQnNCQ0KDQmtCeCivQmtCj0KLQm9CV0KjQmNCLINCJ0KPQkdCY0KjQkAor0JrQo9Ci0JvQldCo0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KPQotCg0Jgg0JrQkNCg0JvQngor0JrQo9Ci0KDQmCDQmtCQ0KDQntCJCivQmtCj0KLQoNCYINCh0KLQldCS0JDQnQor0JrQo9Ci0KDQmNCn0JrQmCDQl9Ce0KDQkNCdCivQmtCj0KLQo9CX0J7QkiDQnNCY0JvQntCg0JDQlAor0JrQo9Ci0KPQl9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0JrQo9CS0JDQiSDQodCi0JXQktCQ0J0KK9Ca0KPQktCQ0InQkCDQlNCg0JDQk9CQ0J0KK9Ca0KPQktCQ0InQkCDQlNCg0JDQk9Ce0InQo9CRCivQmtCj0JLQkNCJ0JAg0JrQkNCi0JjQptCQCivQmtCj0JLQkNCJ0JAg0J7QodCi0J7QiNCQCivQmtCj0JLQldCa0JDQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KPQktCV0JrQkNCb0J7QktCY0Isg0KHQotCg0JDQmNCdCivQmtCj0JLQldCJ0JjQiyDQltCQ0KDQmtCeCivQmtCj0JLQldCJ0JjQiyDQidCY0InQkNCd0JAKK9Ca0KPQktCV0InQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0KPQktCV0InQmNCLINCg0JDQlNCe0JzQkNCdCivQmtCj0JLQmNCX0JjQiyDQltCY0JLQntCI0JjQnQor0JrQo9CS0JjQl9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0KPQl9CV0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCj0JfQnNCQ0J0g0JDQndCa0JAKK9Ca0KPQl9Cc0JDQnSDQkdCe0JPQlNCQ0J0KK9Ca0KPQl9Cc0JDQnSDQkdCe0JPQlNCQ0J0KK9Ca0KPQl9Cc0JDQnSDQkdCe0KDQmNCh0JvQkNCSCivQmtCj0JfQnNCQ0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQmtCj0JfQnNCQ0J0g0JTQoNCQ0JPQkNCdCivQmtCj0JfQnNCQ0J0g0JzQmNCb0JDQnQor0JrQo9CX0JzQkNCdINCc0JjQm9Ce0JLQkNCdCivQmtCj0JfQnNCQ0J0g0JzQmNCg0JrQngor0JrQo9CX0JzQkNCdINCd0JDQlNCQCivQmtCj0JfQnNCQ0J0g0J3QkNCU0JAKK9Ca0KPQl9Cc0JDQnSDQndCQ0JTQkAor0JrQo9CX0JzQkNCdINCd0JDQlNCV0JbQlNCQCivQmtCj0JfQnNCQ0J0g0J/QldCi0JDQoAor0JrQo9CX0JzQkNCdINCg0JjQodCi0J4KK9Ca0KPQl9Cc0JDQnSDQodCb0JDQktCY0KbQkAor0JrQo9CX0JzQkNCd0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0JfQnNCQ0J3Qp9CV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCj0JfQnNCQ0J3Qp9CV0JIg0JTQo9Co0JDQnQor0JrQo9CX0JzQkNCd0KfQldCSINCe0JvQmNCS0JXQoNCQINCU0KAKK9Ca0KPQl9Cc0JDQndCn0JXQkiDQotCY0JzQntCo0JXQndCa0J4KK9Ca0KPQl9Cc0JDQndCe0JIg0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Ca0KPQl9Cc0JDQndCe0JIg0J7QkdCg0JDQlAor0JrQo9CX0JzQkNCd0J7QkiDQntCR0KDQkNCUCivQmtCj0JfQnNCQ0J3QntCSINCg0JDQlNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQmtCj0JfQnNCQ0J3QntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JIg0KHQkNCS0JAKK9Ca0KPQl9Cc0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQmtCj0JfQnNCQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0JrQo9CX0JzQkNCd0J7QkiDQotCQ0J3QkNCh0JjQiNCVCivQmtCj0JfQnNCQ0J3QntCSINCX0J7QoNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0ILQo9Cg0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JrQkNCi0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCb0JDQl9CeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CV0J3QmtCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CVCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0InQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JXQktCV0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCf0JDQiNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCI0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JXQoNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0JrQo9CX0JzQkNCd0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IjQkAor0JrQo9CX0JzQkNCd0J7QktCh0JrQmCDQptCS0JXQotCQCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0JzQmNCb0JUKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0J/QldCg0JUKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0KLQkNCh0JUKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0KLQoNCQ0IjQp9CVCivQmtCj0JfQnNCY0Isg0JzQmNCb0JrQkAor0JrQo9CX0JzQmNCLINCX0JLQntCd0JrQngor0JrQo9CX0JzQmNCd0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQmtCj0JfQnNCY0J3QkNCmINCT0J7QoNCU0JDQndCQCivQmtCj0JfQnNCY0J3QkNCmINCf0JXQotCQ0KAKK9Ca0KPQl9Cc0JjQndCQ0KYg0J/QoNCV0JTQoNCQ0JMKK9Ca0KPQl9Cc0JjQndCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0JrQktCQ0KjQp9CV0JIg0IjQntCS0JDQnQor0JrQktCQ0KjQp9CV0JIg0JzQmNCg0JAKK9Ca0JLQkNCo0KfQldCSINCg0JDQlNCY0JLQntCICivQmtCS0JDQmNCLINCC0J7QoNCC0JUKK9Ca0JLQkNCY0Isg0JTQo9Co0JDQnQor0JrQktCQ0JjQiyDQiNCV0JvQldCd0JAKK9Ca0JLQkNCY0Isg0JzQmNCb0JXQktCQCivQmtCS0KDQk9CY0Isg0JHQntCo0JrQngor0JrQktCg0JPQmNCLINCc0JjQm9CQ0J0KK9Ca0JLQoNCT0JjQiyDQn9CV0KLQkNCgCivQmtCS0KDQk9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Ca0JLQoNCT0JjQiyDQodCQ0JLQngor0JrQktCg0JPQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JDQp9CQ0J3QodCa0Jgg0JTQldCh0JDQndCa0JAKK9Cb0JDQp9Ce0Jog0JrQkNCg0JvQngor0JvQkNCn0J7QmiDQmtCQ0KDQntCJCivQm9CQ0KjQmtCe0JIg0JjQk9Ce0KAg0JTQmNCf0Jsg0JjQndCTCivQm9CQ0IvQkNCaINCC0KPQoNCQCivQm9CQ0IvQkNCaINCc0JjQpdCQ0IkKK9Cb0JDQi9CQ0J3QodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JvQkNCL0JDQoNCQ0KYg0JbQkNCg0JrQngor0JvQkNCL0JDQoNCQ0KYg0JHQmNCJ0JDQndCQCivQm9CQ0IvQkNCg0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0IvQkNCg0JDQpiDQlNCe0JHQoNCY0JLQntCI0JUKK9Cb0JDQi9CQ0KDQkNCmINCI0J7QktCQ0J0KK9Cb0JDQi9CQ0KDQkNCmINCc0JDQmtCh0JjQnAor0JvQkNCL0JDQoNCQ0KYg0J3QmNCa0J7Qm9CQCivQm9CQ0IvQkNCg0JDQpiDQndCY0JrQntCb0JAKK9Cb0JDQi9CQ0KDQkNCmINCd0JjQmtCe0JvQkAor0JvQkNCL0JDQoNCQ0KYg0KLQldCe0JTQntCgCivQm9CQ0IvQkNCg0JDQpiDQktCV0KDQkAor0JvQkNCL0JDQoNCQ0Jog0JbQkNCg0JrQngor0JvQkNCL0JDQoNCQ0Jog0JvQkNCX0JDQoAor0JvQkNCL0JDQoNCQ0Jog0JvQkNCX0JAKK9Cb0JDQi9CQ0KDQkNCaINCc0JjQm9Ce0KgKK9Cb0JDQi9CQ0KDQkNCaINCc0JvQkNCU0JXQnQor0JvQkNCL0JDQoNCQ0Jog0J7Qk9CK0JDQndCa0JAKK9Cb0JDQltCV0JPQmNCLINCd0JXQktCV0J3QmtCQCivQm9CQ0JbQldCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQkNCW0JXQotCY0Isg0JzQkNCg0JjQiNCQINCU0KAKK9Cb0JDQgtCV0JLQkNCmINCU0KPQqNCQ0J0KK9Cb0JDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCC0JXQktCY0Isg0JPQntCI0JrQngor0JvQkNCC0JXQktCY0Isg0IjQntCS0JDQnQor0JvQkNCC0JjQndCe0JLQmNCLINCW0JjQmtCQCivQm9CQ0ILQmNCd0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQm9CQ0JHQkNCoINCY0JLQkNCdCivQm9CQ0JHQkNCU0Jgg0IjQntCW0JXQpAor0JvQkNCR0JDQnSDQiNCj0JvQmtCQCivQm9CQ0JHQkNCdINCc0JjQoNCa0J4KK9Cb0JDQkdCQ0KIg0JDQndCQCivQm9CQ0JHQkNCiINCQ0J3QmtCQCivQm9CQ0JHQkNCiINCI0JDQnQor0JvQkNCR0JDQoiDQmtCS0JXQotCe0KHQm9CQ0JLQkAor0JvQkNCR0JDQoiDQoNCj0JbQldCd0JAKK9Cb0JDQkdCQ0KIg0KHQotCV0JLQkNCdCivQm9CQ0JHQkNCiINCS0JXQoNCQCivQm9CQ0JHQkNCiINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQkdCQ0KIg0JLQm9CQ0JTQmNCh0JvQkNCSCivQm9CQ0JHQkNCS0JjQiyDQmNCS0JDQnQor0JvQkNCR0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cb0JDQkdCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQm9CQ0JHQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cb0JDQkdCj0JTQntCS0JjQiyDQkdCe0KDQmNChCivQm9CQ0JHQo9CU0J7QktCY0Isg0KXQldCb0JXQndCQCivQm9CQ0JHQo9CU0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JvQkNCR0KPQlNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQkdCj0KEg0ILQo9Cg0J4KK9Cb0JDQkdCj0KEg0JHQntCW0JjQlNCQ0KAKK9Cb0JDQkdCj0KEg0JHQoNCQ0J3QmtCeCivQm9CQ0JHQo9ChINCY0JvQmNCI0JAKK9Cb0JDQkdCj0KEg0IjQntCS0JDQnQor0JvQkNCR0KPQoSDQidCj0JHQntCc0JjQoAor0JvQkNCR0KPQoSDQnNCQ0JrQldCU0J7QndCa0JAKK9Cb0JDQkdCj0KEg0JzQmNCb0JDQnQor0JvQkNCR0KPQoSDQnNCY0JvQkNCdCivQm9CQ0JHQo9ChINCc0JjQm9CQ0J0KK9Cb0JDQkdCj0KEg0JzQmNCb0JDQnQor0JvQkNCR0KPQoSDQnNCY0JvQlQor0JvQkNCR0KPQoSDQndCY0JrQntCb0JAKK9Cb0JDQkdCj0KEg0KHQm9CQ0JLQmtCeCivQm9CQ0KbQmNCaINCI0JDQndCe0KgKK9Cb0JDQptCY0Jog0KHQm9CQ0JLQmNCm0JAKK9Cb0JDQptCa0J4g0JzQmNCl0JDQiNCb0J4KK9Cb0JDQptCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cb0JDQptCa0J7QktCY0Isg0IjQntCh0JjQnwor0JvQkNCm0JrQntCS0JjQiyDQoNCQ0JTQlQor0JvQkNCm0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQkNCm0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cb0JDQptCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JvQkNCm0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cb0JDQptCa0J7QktCY0Isg0JfQntCg0JDQnQor0JvQkNCm0JzQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0JDQptCc0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QiNCa0JAKK9Cb0JDQlNCQ0KAg0JzQmNCb0J7QqAor0JvQkNCU0JDQoCDQodCi0JXQktCQ0J0KK9Cb0JDQlNCYINCY0KjQotCS0JDQnQor0JvQkNCU0Jgg0JvQkNCI0J7QqAor0JvQkNCU0Jgg0JzQkNCg0JjQiNCQCivQm9CQ0JTQmNCo0JjQiyDQkNCd0KLQntCdCivQm9CQ0JTQmNCo0JjQiyDQk9Cj0KHQotCQ0JIKK9Cb0JDQlNCY0KjQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9CQ0JTQmNCo0JjQiyDQiNCe0KHQmNCfCivQm9CQ0JTQmNCo0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JTQmNCo0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQlNCY0KjQmNCLINCh0KLQldCS0JDQnQor0JvQkNCU0JjQmiDQqNCQ0J3QlNCe0KAKK9Cb0JDQlNCY0Jog0KTQldCg0JXQndCmCivQm9CQ0JTQmNCaINCa0JDQotCQ0JvQmNCdCivQm9CQ0JTQmNCaINCa0JDQotCQ0JvQmNCdCivQm9CQ0JTQmNCaINCc0JDQoNCT0JjQotCQCivQm9CQ0JTQmNCaINCc0JjQoNCI0JDQndCQCivQm9CQ0JTQmNCa0JAg0JHQm9CQ0JYKK9Cb0JDQlNCe0KbQmtCYINCQ0J3QlNCg0JjQiNCQCivQm9CQ0JTQntCb0JXQliDQldCg0JbQldCR0JXQogor0JvQkNCU0J7Qm9CV0JYg0JzQmNCb0JDQlNCY0J0KK9Cb0JDQk9Cj0JzQj9CY0IjQkCDQpdCQ0JzQmNCUCivQm9CQ0JPQo9Cc0I/QmNCI0JAg0JzQmNCb0JXQndCQCivQm9CQ0JPQo9Cd0I/QmNCdINCU0KDQkNCT0JDQnQor0JvQkNCT0KPQndCP0JjQnSDQlNCg0JDQk9CQ0J0KK9Cb0JDQk9Cj0J3Qj9CY0J0g0JTQoNCQ0JPQkNCdCivQm9CQ0JPQo9Cd0I/QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JDQk9Cj0J3Qj9CY0J0g0JfQntCg0JDQnQor0JvQkNCl0JDQoNCd0JDQoCDQm9Cj0KbQmNCI0JAKK9Cb0JDQpdCe0Kgg0ILQntCg0ILQlQor0JvQkNCl0J7QqCDQkNCd0JTQoNCY0IjQkAor0JvQkNCl0J7QqCDQmNCo0KLQktCQ0J0KK9Cb0JDQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQCivQm9CQ0JjQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cb0JDQmNCd0J7QktCY0Isg0KDQkNCd0JrQngor0JvQkNCI0KjQmNCLINCh0KLQldCS0JDQnQor0JvQkNCI0KjQmNCLINCX0J7QoNCa0JAKK9Cb0JDQiNClINCc0JDQoNCY0IjQkAor0JvQkNCI0KXQotCd0JXQoCDQkNCd0KLQkNCbCivQm9CQ0IjQpdCi0J3QldCgINCk0KDQkNCK0JAKK9Cb0JDQiNCl0KLQndCV0KAg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0JvQkNCI0JjQiyDQqNCi0JXQpNCa0JAKK9Cb0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCI0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQm9CQ0IjQmNCLINCJ0JjQidCQ0J3QkAor0JvQkNCI0JjQiyDQnNCY0KDQmtCeCivQm9CQ0IjQmNCLINCg0JDQiNCa0J4KK9Cb0JDQiNCY0Isg0KHQotCQ0J3QkAor0JvQkNCI0JjQiyDQl9CU0KDQkNCS0JrQngor0JvQkNCI0JrQniDQqNCQ0J3QlNCe0KAKK9Cb0JDQiNCa0J4g0IjQntCh0JjQnwor0JvQkNCI0JrQniDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0JvQkNCI0JrQniDQnNCQ0KDQmNCI0JAKK9Cb0JDQiNCa0J4g0KHQotCV0JLQkNCdCivQm9CQ0IjQmtCeINCS0JXQoNCQCivQm9CQ0IjQntCoINCb0JDQodCb0J4KK9Cb0JDQiNCi0JXQoCDQldCb0JfQkAor0JvQkNCI0KLQldCgINCT0JjQl9CV0JvQkAor0JvQkNCI0KLQldCgINCY0JLQkNCdCivQm9CQ0IjQotCY0KUg0KHQmNCT0KTQoNCY0JQKK9Cb0JDQmtCQ0KLQntCoINCQ0JzQkNCb0JjQiNCQCivQm9CQ0JrQkNCi0J7QqCDQkNCd0JAKK9Cb0JDQmtCQ0KLQntCoINCQ0J3QlNCg0JDQqAor0JvQkNCa0JDQotCe0Kgg0JTQoNCQ0JPQmNCm0JAKK9Cb0JDQmtCQ0KLQntCoINCT0JjQl9CQCivQm9CQ0JrQkNCi0J7QqCDQmNCc0KDQlQor0JvQkNCa0JDQotCe0Kgg0JjQnNCg0JUKK9Cb0JDQmtCQ0KLQntCoINCY0JzQoNCVCivQm9CQ0JrQkNCi0J7QqCDQiNCQ0KHQnNCY0J3QmtCQCivQm9CQ0JrQkNCi0J7QqCDQiNCV0JvQldCd0JAKK9Cb0JDQmtCQ0KLQntCoINCb0JDQiNCe0KgKK9Cb0JDQmtCQ0KLQntCoINCc0JjQpdCQ0IjQm9CeCivQm9CQ0JrQkNCi0J7QqCDQnNCY0JvQmNCm0JAKK9Cb0JDQmtCQ0KLQntCoINCd0JDQlNCQCivQm9CQ0JrQkNCi0J7QqCDQn9CQ0JLQm9CVCivQm9CQ0JrQkNCi0J7QqCDQodCi0JXQktCQ0J0KK9Cb0JDQmtCQ0KLQntCoINCi0JjQkdCe0KAKK9Cb0JDQmtCQ0KLQntCoINCS0JXQoNCQCivQm9CQ0JrQkNCi0J7QqCDQktCY0JvQnNCe0KgKK9Cb0JDQmtCQ0KLQntCoINCX0J7Qm9Ci0JDQnQor0JvQkNCa0JDQotCe0Kgg0JfQntCb0KLQkNCdCivQm9CQ0JrQkNCi0KPQqCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQmtCV0KLQkCDQkdCe0JbQngor0JvQkNCa0JXQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQmtCV0KLQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQmtCV0KLQmNCLINCc0JjQm9CY0JLQntCICivQm9CQ0JrQmNCn0JXQktCY0Isg0J3QkNCU0JAKK9Cb0JDQmtCY0KfQldCS0JjQiy3QodCi0J7QiNCQ0KfQmNCLINCh0J3QldCW0JDQndCQCivQm9CQ0JrQmNCLINCQ0J3QgtCQCivQm9CQ0JrQmNCLINCQ0J3QgtCV0JvQmtCQCivQm9CQ0JrQmNCLINCR0J7Qk9Ce0KHQkNCSCivQm9CQ0JrQmNCLINCR0KDQkNCd0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Cb0JDQmtCY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0JrQmNCLINCR0KDQkNCd0JrQngor0JvQkNCa0JjQiyDQlNCQ0J3QmNCb0J4KK9Cb0JDQmtCY0Isg0JjQm9CY0IjQkAor0JvQkNCa0JjQiyDQiNCe0JvQkNCdCivQm9CQ0JrQmNCLINCc0JDQoNCa0J4KK9Cb0JDQmtCY0Isg0JzQmNCg0JAKK9Cb0JDQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQmtCY0Isg0JzQm9CQ0JTQldCdCivQm9CQ0JrQmNCLINCc0J7QnNCY0KAKK9Cb0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JrQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cb0JDQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0JDQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0JDQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0JDQmtCY0Isg0KDQkNCI0JrQngor0JvQkNCa0JjQiyDQodCQ0JLQkCDQlNCgCivQm9CQ0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQmtCY0Isg0KHQnNCY0InQkAor0JvQkNCa0JjQiyDQodCf0JDQodCe0IjQlQor0JvQkNCa0JjQiyDQodCg0ILQkNCdCivQm9CQ0JrQmNCLINCh0KDQgtCQ0J0KK9Cb0JDQmtCY0Isg0KHQoNCC0JDQnQor0JvQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQmtCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQm9CQ0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JDQmtCY0Isg0JLQldCb0JjQnNCY0KAKK9Cb0JDQmtCY0Isg0JLQldCh0J3QkAor0JvQkNCa0JjQiyDQktCj0KfQldCi0JAKK9Cb0JDQmtCY0Isg0JfQntCg0JjQptCQCivQm9CQ0JrQmNCL0JXQktCY0Isg0JzQmNCb0JjQiNCQCivQm9CQ0JrQmNCL0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JvQkNCa0JjQi9CV0JLQmNCLINCS0JDQodCeCivQm9CQ0JrQmNCL0JXQktCY0Isg0JLQldCh0J3QkAor0JvQkNCa0JjQi9CV0JLQmNCLINCS0KPQmtCh0JDQnSDQlNCgCivQm9CQ0JrQm9CY0IjQkCDQodCi0JXQktCQ0J0KK9Cb0JDQmtCeINCc0JDQoNCY0IjQkAor0JvQkNCa0J7QkdCg0JjQiNCQINCU0KDQkNCT0JDQnQor0JvQkNCa0J7QkdCg0JjQiNCQINCU0KPQqNCQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQmNCb0JjQiNCQCivQm9CQ0JrQntCR0KDQmNCI0JAg0IjQldCb0JXQndCQCivQm9CQ0JrQntCR0KDQmNCI0JAg0JzQmNCb0JDQnQor0JvQkNCa0J7QkdCg0JjQiNCQINCc0JjQm9CQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQnNCY0JvQntCoCivQm9CQ0JrQntCR0KDQmNCI0JAg0JzQmNCb0J7QqAor0JvQkNCa0J7QkdCg0JjQiNCQINCd0JjQmtCe0JvQkAor0JvQkNCa0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cb0JDQmtCe0JLQmNCLINCU0KPQqNCa0J4KK9Cb0JDQmtCe0JLQmNCLINCc0JjQm9CY0IsKK9Cb0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQm9CQ0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQm9CQ0JrQntCS0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JvQkNCb0JDQotCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQm9CQ0JvQkNCi0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCb0JDQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9CQ0JvQkNCi0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JvQkNCb0JjQp9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cb0JDQm9CY0Isg0JbQmNCS0JAKK9Cb0JDQm9CY0Isg0ILQntCg0ILQlQor0JvQkNCb0JjQiyDQkNCd0JrQmNCm0JAKK9Cb0JDQm9CY0Isg0JDQoNCa0JDQlNCY0IjQlQor0JvQkNCb0JjQiyDQkdCe0JPQlNCQ0J0KK9Cb0JDQm9CY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQm9CQ0JvQmNCLINCT0J7QiNCa0J4KK9Cb0JDQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cb0JDQm9CY0Isg0JjQmtCe0J3QmNCI0JAKK9Cb0JDQm9CY0Isg0IjQkNCT0J7QlNCQCivQm9CQ0JvQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cb0JDQm9CY0Isg0IjQo9Cb0JrQkAor0JvQkNCb0JjQiyDQidCj0JHQntCc0JjQoAor0JvQkNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0JDQm9CY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQm9CQ0JvQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQm9CY0Isg0JzQmNCb0JjQptCQCivQm9CQ0JvQmNCLINCc0JjQoNCa0J4KK9Cb0JDQm9CY0Isg0J3QldCd0JDQlAor0JvQkNCb0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQm9CY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoAor0JvQkNCb0JjQiyDQodCg0JXQlNCe0IjQlQor0JvQkNCb0JjQiyDQotCQ0JzQkNCg0JAKK9Cb0JDQm9CY0Isg0KLQntCU0J7QoAor0JvQkNCb0JjQiyDQo9CT0InQldCo0JAKK9Cb0JDQm9CY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JvQkNCb0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQkNCb0JjQnSDQnNCY0JvQkNCdCivQm9CQ0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQkNCb0J7QqNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JvQkNCb0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cb0JDQm9Ce0KjQldCS0JjQiyDQlNCj0KjQmtCeCivQm9CQ0JvQntCo0JXQktCY0Isg0KTQldCc0JrQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9CQ0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JvQkNCb0J7QqNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQnNCQ0KDQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCc0JjQmtCQCivQm9CQ0JvQntCo0JXQktCY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JvQntCo0JXQktCY0Isg0KHQotCV0JLQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCS0JDQodCQCivQm9CQ0JvQntCo0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQkNCb0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQm9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cb0JDQm9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cb0JDQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQm9CQ0JvQntCS0JjQiyDQndCQ0JTQkAor0JvQkNCb0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JvQkNCb0J7QktCY0Isg0KHQo9CX0JDQndCQCivQm9CQ0JvQntCS0JjQiyDQktCV0KDQkAor0JvQkNCc0JHQldCi0JAg0J/QldCa0J4KK9Cb0JDQnNCR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQnNCR0JjQiyDQiNCe0JLQngor0JvQkNCc0JHQmNCLINCe0JvQmNCS0JXQoNCQCivQm9CQ0JzQn9Cg0JXQoiDQmtCg0JjQodCi0JjQiNCQ0J0KK9Cb0JDQndCn0KPQqNCa0Jgg0JXQnNCY0JvQmtCQCivQm9CQ0J3QpiDQpNCg0JDQitCQCivQm9CQ0J3QpiDQnNCQ0KDQmNCI0JAKK9Cb0JDQndCm0J7QqCDQkNCd0JAKK9Cb0JDQndCm0J7QqCDQndCV0J3QkNCUCivQm9CQ0J3QptCe0Kgg0KHQktCV0KLQntCX0JDQoAor0JvQkNCd0KbQntCoINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JDQndCU0JXQmtCQINCQ0J3QotCe0J3QmNCI0JUKK9Cb0JDQndCTINCQ0KLQmNCb0JAKK9Cb0JDQndCTINCU0KDQkNCT0JjQptCQCivQm9CQ0J3QkyDQiNCe0KHQmNCfCivQm9CQ0J3QkyDQnNCY0KDQiNCQ0J3QkAor0JvQkNCd0JMg0JLQkNCb0JXQoNCY0IjQkAor0JvQkNCK0Jgg0JDQndCU0KDQkNCoCivQm9CQ0IrQmCDQodCi0JXQktCQ0J0KK9Cb0JDQndCa0J7QktCh0JrQmCDQn9CV0KbQngor0JvQkNCd0JrQntCS0KHQmtCYINCi0J7QnNCn0JUKK9Cb0JDQn9Cn0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0JDQn9Cn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQm9CQ0J/Qp9CV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQm9CQ0J/Qp9CV0JLQmNCLINCf0JDQiNCQCivQm9CQ0J/Qp9CV0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cb0JDQn9Cn0JjQiyDQnNCY0JvQkNCdCivQm9CQ0J/QkNCU0JDQoiDQpdCe0KDQotCV0J3Ql9CY0IjQkAor0JvQkNCf0JDQlNCQ0KIg0KHQntCg0JjQnQor0JvQkNCf0JDQlNCQ0KIg0JLQkNCh0JjQm9CY0IjQlQor0JvQkNCf0JDQiNCd0JUg0JzQmNCb0JDQnQor0JvQkNCf0J4g0IjQntCS0JDQnQor0JvQkNCf0KMg0JDQndCU0KDQkNCoCivQm9CQ0KDQmtCY0J0g0KHQotCV0JLQkNCdCivQm9CQ0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JDQodCY0Isg0JfQktCe0J3QmtCeCivQm9CQ0KHQmNCLINCX0JLQntCd0JrQngor0JvQkNCh0JjQptCQINCR0KPQlNCY0JzQmNCgCivQm9CQ0KHQmNCm0JAg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCh0JjQptCQINCY0JvQmNCI0JAKK9Cb0JDQodCY0KbQkCDQnNCY0JvQkNCdCivQm9CQ0KHQmNCm0JAg0JzQmNCb0JDQnQor0JvQkNCh0JjQptCQINCc0JjQm9CV0J3QmtCeCivQm9CQ0KHQmNCm0JAg0JzQmNCg0J7QodCb0JDQkgor0JvQkNCh0JjQptCQINCj0KDQntCoCivQm9CQ0KHQmNCm0JAg0JLQldCJ0JrQngor0JvQkNCh0JjQptCQINCX0JTQoNCQ0JLQmtCeCivQm9CQ0KHQmNCm0JAg0JfQm9CQ0KLQkAor0JvQkNCh0JjQptCQINCX0J7QoNCQCivQm9CQ0KHQmtCe0JIg0JTQntCR0KDQlQor0JvQkNCh0JrQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cb0JDQodCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQm9CQ0KHQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCh0JvQniDQldCi0JXQm9Ca0JAKK9Cb0JDQodCb0J4g0KTQldCg0JXQndCmCivQm9CQ0KHQm9CeINCk0KDQkNCK0JAKK9Cb0JDQodCb0J4g0KTQoNCQ0IrQkAor0JvQkNCh0JvQniDQmNCb0J7QndCQCivQm9CQ0KHQm9CeINCI0J7QltCV0KQKK9Cb0JDQodCb0J4g0IjQntCh0JjQnwor0JvQkNCh0JvQniDQiNCe0JLQkNCdCivQm9CQ0KHQm9CeINCb0JDQodCb0J4KK9Cb0JDQodCb0J4g0JzQmNCa0JvQntCoCivQm9CQ0KHQm9CeINCc0JjQm9CV0J3QkAor0JvQkNCh0JvQniDQotCY0JHQntCgCivQm9CQ0KHQm9CeINCS0JXQoNCQCivQm9CQ0KHQm9Ce0JLQodCa0Jgg0KLQldCg0JXQl9CQCivQm9CQ0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQotCQ0Jog0J3QkNCd0JTQntCgCivQm9CQ0KLQkNCbINCc0JDQoNCI0JDQnQor0JvQkNCi0JDQmyDQodCb0JDQktCY0KbQkAor0JvQkNCi0JDQmyDQodCi0JXQktCQ0J0KK9Cb0JDQotCQ0Jsg0JLQldCg0JAKK9Cb0JDQotCQ0Jsg0JfQkNCT0J7QoNCa0JAKK9Cb0JDQotCQ0KEg0JbQmNCS0JrQkAor0JvQkNCi0JDQoSDQm9CQ0JfQkNCgCivQm9CQ0KLQkNChINCc0JDQoNCa0J4KK9Cb0JDQotCQ0KEg0JzQmNCb0JDQlNCY0J0KK9Cb0JDQotCQ0KEg0JzQmNCb0JDQnQor0JvQkNCi0JDQoSDQn9CV0KLQkNCgCivQm9CQ0KLQkNChINCh0JDQktCQINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9Cb0JDQotCQ0KEg0JfQntCg0JAKK9Cb0JDQotCY0KjQmtCeINCj0KDQntCoCivQm9CQ0KLQmNCLINCY0KHQkNCaCivQm9CQ0KLQmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0KLQmNCd0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cb0JDQotCY0J3Qp9CY0Isg0JTQkNCd0JjQptCQCivQm9CQ0KLQmNCd0KfQmNCLINCT0KDQo9CI0JAKK9Cb0JDQotCY0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0KLQmNCd0KfQmNCLINCg0KPQltCQCivQm9CQ0KLQmNCd0JrQmNCLINCh0KLQldCS0JDQnQor0JvQkNCi0JjQndCa0JjQiyDQktCY0J3QmtCQCivQm9CQ0KLQmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JvQkNCi0JjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQgtCj0IjQkAor0JvQkNCi0JjQndCe0JLQmNCLINCR0J7QltCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0KLQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0KLQmNCd0J7QktCY0Isg0JXQoNCY0JrQkAor0JvQkNCi0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQm9CQ0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCb0JDQl9CQCivQm9CQ0KLQmNCd0J7QktCY0Isg0InQo9CR0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCQ0KbQkAor0JvQkNCi0JjQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCi0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQndCV0ILQngor0JvQkNCi0JjQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0KLQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0KLQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JvQkNCi0JjQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQm9CQ0KLQmNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JvQkNCi0JjQndCe0JLQmNCLINCh0JDQktCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCh0JzQmNCJ0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQm9CQ0KLQmNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JvQkNCi0JrQntCS0JjQiyDQltCV0InQmtCeCivQm9CQ0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQotCa0J7QktCY0Isg0IjQntCS0J4KK9Cb0JDQotCa0J7QktCY0Isg0JzQmNCb0JUKK9Cb0JDQotCa0J7QktCY0Isg0JLQo9CI0J4KK9Cb0JDQotCa0J7QktCh0JrQmCDQoNCY0KHQotCeCivQm9CQ0KLQniDQiNCQ0KHQndCQCivQm9CQ0KLQntCS0InQldCSINCX0JDQk9Ce0KDQmtCQCivQm9CQ0KPQqCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0JDQo9CoINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQo9Co0JXQkiDQlNCg0JDQk9CQ0J3QkAor0JvQkNCj0KjQldCSINCI0J7QptCQCivQm9CQ0KPQqNCV0JIg0InQo9CR0JjQndCa0JAKK9Cb0JDQo9Co0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JvQkNCj0KjQldCSINCi0J7QqNCQCivQm9CQ0KPQqNCV0JIg0JLQldCb0JjQnNCY0KAKK9Cb0JDQo9Co0JXQkiDQktCe0IjQmNCh0JvQkNCSCivQm9CQ0KPQqNCV0JLQmNCLINCW0JjQktCQ0J0KK9Cb0JDQo9Co0JXQktCY0Isg0JbQmNCS0JrQkAor0JvQkNCj0KjQldCS0JjQiyDQltCY0JLQmtCQCivQm9CQ0KPQqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JvQkNCj0KjQldCS0JjQiyDQlNCg0JDQk9Ce0IjQlQor0JvQkNCj0KjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQm9CQ0KPQqNCV0JLQmNCLINCf0JDQktCb0JUKK9Cb0JDQo9Co0JXQktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JvQkNCj0KjQldCS0JjQiyDQktCV0KHQldCb0JjQnQor0JvQkNCj0KjQldCS0JjQiyDQl9CY0KLQkAor0JvQkNCj0KjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JvQkNCj0JHQldCg0KIg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Cb0JDQo9ChINCQ0J3QkAor0JvQkNCj0KEg0JrQkNCi0JDQoNCY0J3QkAor0JvQkNCj0KLQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0KPQotCV0KDQldCgINCC0JXQndCC0JgKK9Cb0JDQo9Ci0JXQoNCV0KAg0JvQkNCh0JvQngor0JvQkNCS0JDQpyDQiNCe0JbQldCkCivQm9CQ0JLQkNCnINCb0JDQodCb0J4KK9Cb0JDQktCY0KfQmtCQINCa0JDQoNCb0J4KK9Cb0JDQktCg0J3QmNCLINCa0KHQldCd0JjQiNCQCivQm9CQ0JLQoNCd0JjQiyDQmtCh0JXQndCY0IjQkAor0JvQkNCS0KDQndCY0Isg0JzQmNCb0J7QqAor0JvQkNCS0KDQndCY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0JDQktCg0IrQkCDQm9CQ0JfQkNCgCivQm9CQ0JLQoNCK0JAg0JzQmNCb0JrQkNCdCivQm9CQ0JfQkCDQiNCe0J0KK9Cb0JDQl9CQINCi0JXQntCU0J7QoNCQCivQm9CQ0JfQkNCd0KHQmtCYINCQ0J3QkAor0JvQkNCX0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQl9CQ0J3QodCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cb0JDQl9CQ0J3QodCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cb0JDQl9CQ0KAg0ILQo9Cb0JAKK9Cb0JDQl9CQ0KAg0JXQm9CV0J3QkAor0JvQkNCX0JDQoCDQiNCj0JvQmNCQCivQm9CQ0JfQkNCgINCI0KPQm9CY0IjQkAor0JvQkNCX0JDQoCDQmtCQ0KLQkNCb0JjQnQor0JvQkNCX0JDQoCDQm9CQ0JTQmNCh0JvQkNCSCivQm9CQ0JfQkNCgINCf0JDQktCb0JUKK9Cb0JDQl9CQ0KAg0KHQmNCc0JAKK9Cb0JDQl9CQ0KAg0KHQotCI0JXQn9CQ0J0KK9Cb0JDQl9CQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JvQkNCX0JDQoNCV0JIg0ILQntCa0JAKK9Cb0JDQl9CQ0KDQldCSINCQ0J3QkAor0JvQkNCX0JDQoNCV0JIg0JDQndCU0KDQmNCI0JAKK9Cb0JDQl9CQ0KDQldCSINCI0J7QktCQ0J0KK9Cb0JDQl9CQ0KDQldCSINCS0JXQoNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KfQldCU0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQltCY0JLQmtCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JbQmNCS0J7QotCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0ILQntCg0ILQlQor0JvQkNCX0JDQoNCV0JLQmNCLINCR0J7QqNCa0J4KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0JfQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0JfQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQkNCd0JjQm9CeCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0IjQkNCU0JLQmNCT0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQidCj0JHQngor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JDQndCU0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0KPQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQm9CQ0JfQkNCg0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCc0JjQidCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCi0JDQndCe0IjQlQor0JvQkNCX0JDQoNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0JLQldCh0J3QkAor0JvQkNCX0JDQoNCV0JLQmNCLINCS0JjQlNCQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCX0J7QoNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0JfQntCg0JDQnQor0JvQkNCX0JDQoNCV0JLQodCa0Jgg0ILQntCg0ILQlQor0JvQkNCX0JDQoNCV0JLQodCa0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0JvQkNCX0JDQoNCV0JLQodCa0Jgg0KHQm9CQ0JLQmtCeCivQm9CQ0JfQkNCg0J7QkiDQktCV0KHQldCb0JjQnQor0JvQkNCX0JDQoNCe0JIg0JfQntCg0JDQnQor0JvQkNCX0JDQoNCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQm9CQ0JfQldCd0JTQmNCLINCb0JDQl9CQ0KAKK9Cb0JDQl9CV0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JDQl9CY0KfQmNCLINCh0KLQkNCd0JjQiNCQCivQm9CQ0JfQmNCLINCW0JDQoNCa0J4KK9Cb0JDQl9CY0Isg0JbQmNCS0JDQnQor0JvQkNCX0JjQiyDQltCY0JLQkNCdCivQm9CQ0JfQmNCLINCW0JjQktCQ0J0KK9Cb0JDQl9CY0Isg0JbQmNCS0JrQngor0JvQkNCX0JjQiyDQltCY0JLQntCI0JjQnQor0JvQkNCX0JjQiyDQltCY0JLQntCg0JDQlAor0JvQkNCX0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0JvQkNCX0JjQiyDQkNCd0ILQldCb0JrQkAor0JvQkNCX0JjQiyDQkNCd0JTQoNCY0IjQkAor0JvQkNCX0JjQiyDQkdCe0KjQmtCeCivQm9CQ0JfQmNCLINCR0J7QltCY0JTQkNCgCivQm9CQ0JfQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQm9CQ0JfQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQm9CQ0JfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQl9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JfQmNCLINCR0KDQkNCd0JrQkCDQlNCgCivQm9CQ0JfQmNCLINCR0KPQlNCY0JzQmNCgCivQm9CQ0JfQmNCLINCU0JDQnNCI0JDQndCa0JAKK9Cb0JDQl9CY0Isg0JTQldCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQl9CY0Isg0JTQldCI0JDQnQor0JvQkNCX0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JvQkNCX0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQkAor0JvQkNCX0JjQiyDQlNCg0JDQk9CY0KbQkAor0JvQkNCX0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQm9CQ0JfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQngor0JvQkNCX0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQm9CQ0JfQmNCLINCU0KPQqNCQ0J0KK9Cb0JDQl9CY0Isg0JTQo9Co0JDQnQor0JvQkNCX0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JfQmNCLINCU0KPQqNCQ0J0KK9Cb0JDQl9CY0Isg0JXQnNCY0Jsg0JTQoCDQm9CV0JrQkNCgCivQm9CQ0JfQmNCLINCT0J7QiNCa0J4KK9Cb0JDQl9CY0Isg0JPQntCg0J7QidCj0JEKK9Cb0JDQl9CY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JvQkNCX0JjQiyDQmNCS0JDQndCQCivQm9CQ0JfQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9CQ0JfQmNCLINCI0J7QptCQCivQm9CQ0JfQmNCLINCI0J7QktCQ0J3QmtCQCivQm9CQ0JfQmNCLINCI0J7QktCQ0J0KK9Cb0JDQl9CY0Isg0IjQo9Cb0JrQkAor0JvQkNCX0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0JDQl9CY0Isg0JrQkNCi0JjQptCQCivQm9CQ0JfQmNCLINCa0JDQotCY0KbQkAor0JvQkNCX0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQm9CQ0JfQmNCLINCa0J7QodCi0JAKK9Cb0JDQl9CY0Isg0JvQkNCX0JDQoAor0JvQkNCX0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQmNCLINCJ0KPQkdCQ0J0KK9Cb0JDQl9CY0Isg0InQo9CR0JjQndCa0JAKK9Cb0JDQl9CY0Isg0InQo9CR0JjQodCQ0JLQkAor0JvQkNCX0JjQiyDQidCj0JHQntCc0JjQoAor0JvQkNCX0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0JDQl9CY0Isg0JzQkNCg0JjQiNCQCivQm9CQ0JfQmNCLINCc0JDQoNCY0J3QmtCeCivQm9CQ0JfQmNCLINCc0JDQoNCi0JAKK9Cb0JDQl9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JjQiyDQnNCY0JvQldCd0JAKK9Cb0JDQl9CY0Isg0JzQmNCb0JXQndCQCivQm9CQ0JfQmNCLINCc0JjQm9CV0J3QmtCeCivQm9CQ0JfQmNCLINCc0JjQm9CV0J3QmtCeCivQm9CQ0JfQmNCLINCc0JjQm9CV0JLQmtCQCivQm9CQ0JfQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCX0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JDQl9CY0Isg0JzQmNCb0JjQptCQCivQm9CQ0JfQmNCLINCc0JjQm9CY0J3QmtCeCivQm9CQ0JfQmNCLINCc0JjQm9CY0KHQkNCSINCf0KDQntCk0JXQodCe0KAKK9Cb0JDQl9CY0Isg0JzQmNCb0JjQodCQ0JIKK9Cb0JDQl9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cb0JDQl9CY0Isg0JzQmNCb0J7QqAor0JvQkNCX0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCX0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQkNCX0JjQiyDQnNCY0KDQkAor0JvQkNCX0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQkNCX0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JfQmNCLINCc0JjQoNCe0InQo9CRCivQm9CQ0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JDQl9CY0Isg0JzQm9CQ0JTQldCdCivQm9CQ0JfQmNCLINCd0JDQlNCQCivQm9CQ0JfQmNCLINCd0JDQlNCQCivQm9CQ0JfQmNCLINCd0JDQlNCQCivQm9CQ0JfQmNCLINCd0JDQlNCV0JbQlNCQCivQm9CQ0JfQmNCLINCd0JDQiNCU0JDQnQor0JvQkNCX0JjQiyDQndCV0JLQldCd0JAKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0JvQkNCX0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQl9CY0Isg0J7QkdCg0JXQnQor0JvQkNCX0JjQiyDQn9CQ0IjQkAor0JvQkNCX0JjQiyDQn9CV0KLQkNCgCivQm9CQ0JfQmNCLINCf0JXQotCQ0KAKK9Cb0JDQl9CY0Isg0J/QldCi0JDQoAor0JvQkNCX0JjQiyDQn9CV0KLQkNCgCivQm9CQ0JfQmNCLINCf0JjQoNCe0KjQmtCQCivQm9CQ0JfQmNCLINCf0JjQoNCe0KjQmtCQCivQm9CQ0JfQmNCLINCg0JDQlNCQCivQm9CQ0JfQmNCLINCg0JDQlNCVCivQm9CQ0JfQmNCLINCg0JDQlNCY0KjQkAor0JvQkNCX0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JvQkNCX0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JvQkNCX0JjQiyDQoNCQ0JTQntCI0JrQkAor0JvQkNCX0JjQiyDQoNCQ0JTQntCI0JrQngor0JvQkNCX0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQkNCX0JjQiyDQoNCQ0IjQmtCeCivQm9CQ0JfQmNCLINCg0J7QlNCe0InQo9CRCivQm9CQ0JfQmNCLINCg0KPQltCQCivQm9CQ0JfQmNCLINCh0JDQitCQCivQm9CQ0JfQmNCLINCh0JDQktCQCivQm9CQ0JfQmNCLINCh0JDQktCQCivQm9CQ0JfQmNCLINCh0JDQktCQCivQm9CQ0JfQmNCLINCh0JDQktCQCivQm9CQ0JfQmNCLINCh0JjQnNCQINCU0KAKK9Cb0JDQl9CY0Isg0KHQm9CQ0JLQmtCeCivQm9CQ0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQkNCX0JjQiyDQodCc0JjQidCQCivQm9CQ0JfQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Cb0JDQl9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JvQkNCX0JjQiyDQodCi0JDQndCa0J4KK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCd0JrQkAor0JvQkNCX0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JfQmNCLINCh0KLQldCS0JDQnQor0JvQkNCX0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CY0Isg0KHQotCe0IjQkNCU0JjQnQor0JvQkNCX0JjQiyDQodCi0J7QiNCQ0J0KK9Cb0JDQl9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JvQkNCX0JjQiyDQotCV0J7QlNCe0KAKK9Cb0JDQl9CY0Isg0KLQoNCQ0IjQmtCeCivQm9CQ0JfQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cb0JDQl9CY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JvQkNCX0JjQiyDQktCV0JvQmNCd0JrQkAor0JvQkNCX0JjQiyDQktCV0KHQldCb0JjQnQor0JvQkNCX0JjQiyDQktCV0KHQndCQCivQm9CQ0JfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQl9CY0Isg0JfQntCg0JDQnQor0JvQkNCX0JjQiyDQl9Ce0KDQmNCm0JAKK9Cb0JDQl9CY0Isg0JfQntCg0JjQptCQCivQm9CQ0JfQmNCm0JDQndCYINCQ0InQo9CoCivQm9CQ0JfQmNCdINCR0J7Qk9CU0JDQnQor0JvQkNCX0JjQnSDQkdCg0JDQndCa0J4KK9Cb0JDQl9CY0J0g0JPQntCI0JrQngor0JvQkNCX0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Cb0JDQl9CY0J0g0J3QkNCi0JDQm9CY0IjQkAor0JvQkNCX0JjQnSDQodCQ0JLQkAor0JvQkNCX0JjQnSDQodCQ0JLQkAor0JvQkNCX0JjQnSDQodCY0J3QmNCo0JAKK9Cb0JDQl9CY0J0g0KHQmNCd0JjQqNCQCivQm9CQ0JfQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9CY0J0g0JLQntCI0JjQnQor0JvQkNCX0JjQnSDQl9Ce0KDQmNCm0JAKK9Cb0JDQl9CY0J3QmNCm0JAg0KDQkNCU0J7QiNCa0JAKK9Cb0JDQl9Ce0KAg0JzQmNCg0J7QnQor0JvQkNCX0J7QoCDQndCY0JrQntCb0JAKK9Cb0JDQl9Ce0JIg0KLQoNCQ0IjQkNCdCivQm9CQ0JfQntCS0JAg0KLQoNCQ0IjQmtCQCivQm9CQ0JfQntCS0JjQiyDQp9CV0JTQngor0JvQkNCX0J7QktCY0Isg0JHQntCo0JrQngor0JvQkNCX0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cb0JDQl9Ce0JLQmNCLINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9CQ0JfQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQl9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cb0JDQl9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0JvQkNCX0J7QktCY0Isg0JzQmNCb0JXQndCi0JjQiNCVCivQm9CQ0JfQntCS0JjQiyDQnNCY0JvQldCi0JAKK9Cb0JDQl9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCX0J7QktCY0Isg0JzQmNCb0J7QiNCY0KbQkAor0JvQkNCX0J7QktCY0Isg0J3QldCd0JDQlAor0JvQkNCX0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cb0JDQl9Ce0JLQmNCLINCh0JDQktCY0KbQkAor0JvQkNCX0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQkNCX0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQm9CQ0JfQntCS0JjQiyDQodCi0JXQktCQ0J0g0J/QoNCe0KTQldCh0J7QoAor0JvQkNCX0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQm9CQ0JfQntCS0JjQiyDQktCj0IjQkNCU0JjQnQor0JvQkNCX0J7QktCY0Isg0JfQntCg0JDQnQor0JvQkNCX0J7QktCY0Isg0JfQntCg0JDQnQor0JvQkNCX0J7QktCh0JrQmCDQodCb0JDQktCn0J4KK9Cb0JDQl9Cj0JrQmNCLINCn0JXQlNCeCivQm9CQ0JfQo9Ca0JjQiyDQkNCd0ILQkAor0JvQkNCX0KPQmtCY0Isg0IjQntCS0J4KK9Cb0JDQl9Cj0JrQmNCLINCa0JDQi9CQCivQm9CQ0JfQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JfQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CV0Kcg0JXQndCU0KDQlSDQlNCgCivQm9CV0Kcg0JXQoNCY0KUKK9Cb0JXQp9CQ0KAg0IjQntCh0JjQnwor0JvQldCn0JDQoCDQmtCQ0KDQm9CeCivQm9CV0KfQmNCLINCn0JXQlNCe0JzQmNCgCivQm9CV0KfQmNCLINCU0J7QkdCg0JjQm9CQCivQm9CV0KfQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cb0JXQp9CY0Isg0JPQntCI0JrQngor0JvQldCn0JjQiyDQnNCY0JvQldCS0JAKK9Cb0JXQp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Cb0JXQp9CY0Isg0J3QkNCU0JAKK9Cb0JXQp9CY0Isg0J3QkNCU0JAKK9Cb0JXQp9CY0Isg0KHQmNCc0J4KK9Cb0JXQp9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cb0JXQp9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JvQldCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KjQp9CV0KjQldCdINCV0JTQktCQ0KDQlAor0JvQldCo0KfQldCo0JXQnSDQiNCV0JvQldCd0JAKK9Cb0JXQqNCY0Isg0ILQo9Cg0JAKK9Cb0JXQqNCY0Isg0KHQotCe0IjQkNCdCivQm9CV0KjQmtCY0Isg0ILQntCg0ILQlQor0JvQldCo0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JXQqNCa0J7QkiDQiNCe0JLQkNCdCivQm9CV0KjQmtCe0JIg0JzQmNCb0JDQnQor0JvQldCo0JrQntCSINCc0JjQntCU0KDQkNCTCivQm9CV0KjQmtCe0JIg0J7Qm9CT0JjQptCQCivQm9CV0KjQmtCe0JLQmNCLINCX0JvQkNCi0JrQngor0JvQldCo0J3QmNCaINCX0JDQk9Ce0KDQmtCQCivQm9CV0KjQotCQ0KAg0KHQotCV0JLQkNCdCivQm9CV0KjQotCQ0KAg0JfQntCg0JjQptCQCivQm9CV0JbQkNCI0JjQiyDQktCj0JrQkNCU0JjQnQor0JvQldCW0JDQmtCe0JIg0ILQo9Cg0ILQmNCm0JAKK9Cb0JXQltCQ0JrQntCSINCc0JjQm9CQ0J0KK9Cb0JXQltCY0JzQmNCg0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQldCW0JjQnNCY0KDQkNCmINCR0KDQkNCd0JrQmNCm0JAKK9Cb0JXQltCY0JzQmNCg0JDQpiDQlNCe0JHQoNCY0J3QmtCQCivQm9CV0JbQmNCc0JjQoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0JvQldCW0JjQnNCY0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQltCY0JzQmNCg0JDQpiDQodCS0JXQotCb0JDQndCQCivQm9CV0JbQmNCc0JjQoNCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCC0JDQndCQINCI0JXQm9CV0J3QkAor0JvQldCC0JDQndCQ0KYg0ILQo9Cg0ILQmNCd0JrQkAor0JvQldCC0JDQndCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cb0JXQgtCQ0J3QkNCmINCU0KDQkNCT0J7QnNCY0KAKK9Cb0JXQgtCQ0J3QkNCmINCV0JzQmNCb0JjQiNCQCivQm9CV0ILQkNCd0JDQpiDQk9CQ0JLQoNCQCivQm9CV0ILQkNCd0JDQpiDQk9Ce0KDQmNCm0JAKK9Cb0JXQgtCQ0J3QkNCmINCI0J7QktCQ0J0KK9Cb0JXQgtCQ0J3QkNCmINCc0JjQm9CQ0J0KK9Cb0JXQgtCQ0J3QkNCmINCh0JXQmtCj0JvQkAor0JvQldCC0JDQndCQ0KYg0KHQldCa0KPQm9CQCivQm9CV0ILQkNCd0JDQpiDQodCb0JDQktCa0J4KK9Cb0JXQgtCQ0J3QkNCmINCh0KLQldCS0JDQnQor0JvQldCC0JDQndCQ0KYg0KHQotCV0JLQkNCdCivQm9CV0ILQkNCd0JDQpiDQktCY0KLQntCc0JjQoAor0JvQldCC0JDQndCh0JrQmCDQkdCg0JDQndCa0JAKK9Cb0JXQgtCV0J3QkNCmINCU0KDQkNCT0JDQnQor0JvQldCC0JXQndCQ0KYg0J3QkNCU0JAKK9Cb0JXQgtCV0J3QkNCmINCh0JvQkNCS0JrQngor0JvQldCC0JXQndCQ0KYg0KHQotCQ0J3QmNCc0JjQoAor0JvQldCC0JXQndCQ0KYg0KHQotCg0JDQpdCY0IrQkAor0JvQldCR0JDQoCDQl9Cb0JDQotCY0KbQkAor0JvQldCR0JXQoCDQl9Cb0JDQotCa0J4KK9Cb0JXQkdCbINCQ0KDQn9CQ0JQg0JTQoCDQn9Cg0J7QpNCV0KHQntCgCivQm9CV0JHQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQldCR0KPQoNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JvQldCm0JrQmCDQgtCj0JvQkAor0JvQldCm0JrQmCDQmtCg0JjQqNCi0J7QpAor0JvQldCm0JrQntCS0JjQiyDQldCc0JjQmwor0JvQldCU0JXQndCa0J4g0JDQndCi0JUg0JzQoAor0JvQldCU0JXQoCDQldCc0JjQndCQCivQm9CV0JTQldCgINCe0JvQk9CQCivQm9CV0JPQldCdINCh0KLQntCI0JDQnQor0JvQldCT0JXQotCY0Isg0JHQoNCQ0J3QmtCQCivQm9CV0KXQntCm0JrQmCDQqNCQ0J3QlNCe0KAKK9Cb0JXQpdCe0KbQmtCYINCk0JXQoNCV0J3Qpgor0JvQldCl0J7QotCh0JrQmCDQmtCQ0KDQm9CeCivQm9CV0KXQoCDQlNCQ0JLQntCgCivQm9CV0JjQotCd0JXQoCDQndCY0JrQntCb0JAKK9Cb0JXQmtCYINCC0KPQoNCQCivQm9CV0JrQmCDQnNCQ0KDQmNCI0JAKK9Cb0JXQmtCYINCh0KLQiNCV0J/QkNCdCivQm9CV0JrQmCDQotCV0KDQldCX0JjQiNCQCivQm9CV0JrQmNCLINCW0JjQktCQ0JTQmNCdCivQm9CV0JrQmNCLINCC0J7QoNCC0JjQiNCVCivQm9CV0JrQmNCLINCR0J7Qk9CU0JDQnQor0JvQldCa0JjQiyDQkdCg0JDQndCa0JAKK9Cb0JXQmtCY0Isg0JHQoNCQ0J3QmtCeCivQm9CV0JrQmNCLINCU0JXQiNCQ0J0KK9Cb0JXQmtCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JvQldCa0JjQiyDQlNCj0KjQkNCdCivQm9CV0JrQmNCLINCI0J7QoNCU0JDQnQor0JvQldCa0JjQiyDQidCj0JHQntCc0JjQoAor0JvQldCa0JjQiyDQidCj0JHQntCc0JjQoAor0JvQldCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0JvQldCa0JjQiyDQnNCY0JvQkNCd0JrQkAor0JvQldCa0JjQiyDQndCV0ILQngor0JvQldCa0JjQiyDQndCY0JrQntCb0JAKK9Cb0JXQmtCY0Isg0KHQmNCc0JXQktCj0J0KK9Cb0JXQmtCY0Isg0KHQotCQ0J3QmtCQCivQm9CV0JrQmNCLINCh0KLQldCS0JDQnQor0JvQldCa0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JvQldCa0JjQiyDQotCV0J7QlNCe0KAKK9Cb0JXQmtCY0Isg0JLQldCh0JXQm9Ca0J4KK9Cb0JXQmtCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cb0JXQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Cb0JXQmtCY0J0g0InQo9CR0JjQptCQCivQm9CV0JrQmNCdINCc0JjQm9CQ0J0KK9Cb0JXQmtCY0J0g0JzQmNCb0JDQnQor0JvQldCa0JjQnSDQnNCY0JvQkNCdCivQm9CV0JrQmNCdINCX0JTQoNCQ0JLQmtCeCivQm9CV0JrQniDQgtCV0KDQggor0JvQldCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQmtCeINCR0J7QoNCY0KHQm9CQ0JIKK9Cb0JXQmtCeINCc0JvQkNCU0JXQnQor0JvQldCa0J7QktCY0Isg0JTQntCR0KDQmNCb0J4KK9Cb0JXQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CV0JrQntCS0JjQiyDQnNCY0JvQntCoCivQm9CV0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQm9CV0JrQntCS0JjQiyDQndCe0JLQkNCaCivQm9CV0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQldCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JvQldCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQm9CV0JvQldCQINCi0J7QlNCe0KAKK9Cb0JXQm9CV0J7QktCY0Isg0JHQntCg0J4KK9Cb0JXQm9CY0Isg0JbQldCJ0JrQngor0JvQldCb0JjQiyDQnNCQ0KXQnNCj0KIKK9Cb0JXQm9CY0Isg0JzQkNCg0JjQiNCQCivQm9CV0JvQmNCLINCc0JjQoNCh0JDQnAor0JvQldCb0JjQiyDQl9Cj0JzQoNCV0KLQkAor0JvQldCb0JjQmiDQiNCQ0J3QntCoCivQm9CV0JvQmNCaINCI0JXQndCVCivQm9CV0JvQntCS0JjQiyDQoNCQ0JTQlQor0JvQldCc0JDQmNCLINCW0JXQidCa0J4KK9Cb0JXQnNCQ0JjQiyDQodCe0KTQmNCI0JAKK9Cb0JXQnNCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JvQldCc0JDQiNCY0Isg0KbQldCm0JjQm9CY0IjQkAor0JvQldCc0JDQiNCY0Isg0JrQkNCi0JjQptCQCivQm9CV0JzQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0JXQnNCQ0IjQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQnNCQ0IjQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQnNCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JXQnNCQ0IjQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cb0JXQnNCQ0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQnNCQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JXQnNCl0JUg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0JXQnNCY0Isg0JHQntCh0JAKK9Cb0JXQnNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cb0JXQnNCY0Isg0JvQkNCX0JDQoAor0JvQldCc0JjQiyDQnNCY0JvQldCd0JrQngor0JvQldCc0JjQiyDQndCV0JHQntCI0KjQkAor0JvQldCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0J0g0J/QmNCg0J7QqNCa0JAKK9Cb0JXQndCn0JAg0JDQndCU0KDQmNCI0JAKK9Cb0JXQndCn0JAg0JrQkNCi0JAKK9Cb0JXQndCC0JXQmyDQgtCj0KDQngor0JvQldCd0ILQldCbINCI0J7QktCQ0J0KK9Cb0JXQndCC0JXQmyDQiNCe0JLQkNCdCivQm9CV0J3QgtCV0Jsg0JrQkNCg0J7QiQor0JvQldCd0ILQldCbINCc0JjQpdCQ0IjQm9CeCivQm9CV0J3QkNCg0JQg0JDQoNCf0JDQlAor0JvQldCd0JDQoNCUINCf0JXQotCQ0KAKK9Cb0JXQndCQ0KDQoiDQmtCQ0KLQmNCm0JAKK9Cb0JXQndCQ0KDQotCY0Isg0ILQntCg0ILQlQor0JvQldCd0JDQotCe0JIg0JTQo9Co0JDQnQor0JvQldCd0JTQmNCLINCI0J7QodCY0J8KK9Cb0JXQndCU0JLQkNCI0Jgg0JDQndCU0KDQmNCI0JAKK9Cb0JXQndCU0JLQkNCI0Jgg0IjQntCW0JXQpAor0JvQldCd0JTQktCQ0IjQmCDQidCY0InQkNCd0JAKK9Cb0JXQndCV0KAg0JDQndCU0KDQkNCoCivQm9CV0J3QldCgINCU0JXQltCVCivQm9CV0J3QldCg0KIg0JDQndCi0JDQmwor0JvQldCd0JXQoNCiINCf0JXQotCQ0KAg0JTQoCDQlNCe0KbQldCd0KIKK9Cb0JXQndCV0KDQoiDQodCi0JXQktCQ0J0KK9Cb0JXQndCl0JDQoNCUINCI0JDQndCe0KgKK9Cb0JXQndCa0JXQqCDQiNCe0JLQkNCdCivQm9CV0J3QmtCV0Kgg0JvQkNCh0JvQngor0JvQldCe0JLQkNCmINCc0JjQm9CY0JLQntCI0JUKK9Cb0JXQntCS0JDQpiDQktCj0JrQkNCU0JjQnQor0JvQldCf0KfQldCS0JjQiyDQnNCY0JvQldCi0JAKK9Cb0JXQn9Co0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAg0JTQoCDQm9CV0JrQkNCgCivQm9CV0J/QqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0JXQn9CQ0KAg0KjQkNCd0JTQntCgCivQm9CV0J/QkNCgINCI0JXQm9CY0KbQkAor0JvQldCf0JDQoCDQm9CQ0JTQmNCh0JvQkNCSCivQm9CV0J/QldCoINCb0JDQlNCY0KHQm9CQ0JIKK9Cb0JXQn9CV0Kgg0KLQmNCR0J7QoCDQlNCgINCf0KDQntCkCivQm9CV0J/QpdCQ0KTQoiDQn9CQ0JsKK9Cb0JXQn9CY0KAg0JDQndCC0JXQm9Ca0JAKK9Cb0JXQn9CY0KAg0JHQntCh0JjQidCa0JAKK9Cb0JXQn9CY0KAg0JzQmNCb0J7QoNCQ0JQKK9Cb0JXQn9CY0KAg0JLQldCb0JjQnNCY0KAKK9Cb0JXQn9Ce0KjQkCDQoNCj0JTQntCb0KQKK9Cb0JXQn9Ce0IjQldCSINCR0KDQkNCd0JrQngor0JvQldCf0J7QiNCV0JIg0KHQkNCS0JAKK9Cb0JXQn9Ce0IjQldCSINCS0JDQodCY0JvQmNCI0JUKK9Cb0JXQn9Ce0IjQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0JvQldCf0J7QiNCV0JLQmNCLINCh0KLQkNCd0JrQngor0JvQldCf0J7QoNCY0KEg0IjQkNCdCivQm9CV0J/QntCi0JjQiyDQltCY0JLQkNCdCivQm9CV0J/QntCi0JjQiyDQnNCY0JvQldCd0JrQngor0JvQldCf0J7QotCY0Isg0J3QmNCa0J7Qm9CQCivQm9CV0J/QntCS0JjQiyDQnNCY0JrQkAor0JvQldCf0KPQqNCQINCX0JTQldCd0JrQngor0JvQldCgINCY0JLQkNCdCivQm9CV0KDQmNCLINCV0KDQltCV0JHQldCiCivQm9CV0KDQmNCaINCQ0J3QlNCg0JDQqAor0JvQldCg0JjQmiDQmNCo0KLQktCQ0J0KK9Cb0JXQoNCY0Jog0JzQmNCa0JvQntCoCivQm9CV0KDQmNCd0KYg0JDQndCY0JrQngor0JvQldCg0JjQndCmINCU0KDQkNCT0J7QodCb0JDQkgor0JvQldCg0JjQndCmINCI0JDQndCe0KgKK9Cb0JXQoNCY0J3QpiDQmtCQ0KDQm9CeCivQm9CV0KDQmNCd0KYg0JrQkNCi0JDQm9CY0J0KK9Cb0JXQoNCY0J3QpiDQm9CQ0KHQm9CeCivQm9CV0KDQmNCd0KYg0JvQkNCh0JvQngor0JvQldCg0JjQndCmINCb0JXQngor0JvQldCg0JjQndCmINCb0JXQngor0JvQldCg0J4g0JHQntCW0JjQlNCQ0KAKK9Cb0JXQoNCeINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JXQodCa0J7QktCQ0KYg0ILQntCg0ILQlQor0JvQldCh0JrQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9Cb0JXQodCa0J7QktCQ0KYg0InQo9CR0JjQptCQCivQm9CV0KHQmtCe0JLQkNCmINCc0JjQm9CQ0J0KK9Cb0JXQodCa0J7QktCQ0KYg0JzQmNCb0JDQnQor0JvQldCh0JrQntCS0JDQpiDQnNCY0JvQldCi0JAKK9Cb0JXQodCa0J7QktCQ0KYg0JzQm9CQ0JTQldCdINCf0KDQntCk0JXQodCe0KAKK9Cb0JXQodCa0J7QktCQ0KYg0KDQkNCU0J7QnNCY0KAKK9Cb0JXQodCa0J7QktCQ0KYg0KHQotCQ0J3QmtCQCivQm9CV0KHQmtCe0JLQkNCmINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JvQldCh0JrQntCS0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQm9CV0KLQkNCI0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQldCi0JDQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQotCQ0IjQldCSINCc0JjQpdCQ0IjQm9CeCivQm9CV0KLQkNCI0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KLQmNCLINCn0JXQlNCeCivQm9CV0KLQmNCLINCW0JDQoNCa0J4KK9Cb0JXQotCY0Isg0JbQmNCS0JAKK9Cb0JXQotCY0Isg0JbQmNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cb0JXQotCY0Isg0ILQntCa0J4KK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQm9CV0KLQmNCLINCQ0J3QmNCm0JAKK9Cb0JXQotCY0Isg0JDQndCY0KbQkAor0JvQldCi0JjQiyDQkNCg0JjQqNCa0J4KK9Cb0JXQotCY0Isg0JHQntCT0JTQkNCdCivQm9CV0KLQmNCLINCR0J7QoNCY0JLQntCICivQm9CV0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JXQotCY0Isg0JHQoNCQ0J3QmtCQCivQm9CV0KLQmNCLINCR0KDQkNCd0JrQngor0JvQldCi0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JvQldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JXQotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cb0JXQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0JXQotCY0Isg0JTQo9Co0JDQnQor0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQm9CV0KLQmNCLINCT0JDQktCg0JAKK9Cb0JXQotCY0Isg0JPQntCI0JrQngor0JvQldCi0JjQiyDQk9Ce0KDQlNCQ0J3QkCDQlNCgCivQm9CV0KLQmNCLINCY0JLQkNCdCivQm9CV0KLQmNCLINCI0J7QktCQ0J3QmtCQCivQm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cb0JXQotCY0Isg0JrQntCh0KLQkAor0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cb0JXQotCY0Isg0JvQkNCX0JDQoAor0JvQldCi0JjQiyDQidCj0JHQmNCo0JAKK9Cb0JXQotCY0Isg0InQo9CR0JjQptCQCivQm9CV0KLQmNCLINCc0JDQoNCY0KbQkAor0JvQldCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0JXQotCY0Isg0JzQkNCg0JjQiNCQCivQm9CV0KLQmNCLINCc0JDQoNCY0J3QmtCeCivQm9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQotCY0Isg0JzQmNCb0JDQnQor0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQotCY0Isg0JzQmNCb0JjQptCQCivQm9CV0KLQmNCLINCc0JjQm9CY0KbQkAor0JvQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JXQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JXQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JXQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JXQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cb0JXQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQldCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CV0KLQmNCLINCd0JXQndCQ0JQKK9Cb0JXQotCY0Isg0J3QldCS0JXQndCQCivQm9CV0KLQmNCLINCe0JvQk9CQCivQm9CV0KLQmNCLINCe0JvQk9CQCivQm9CV0KLQmNCLINCe0JvQk9CY0KbQkAor0JvQldCi0JjQiyDQn9CV0KDQkAor0JvQldCi0JjQiyDQoNCQ0JTQkAor0JvQldCi0JjQiyDQoNCQ0JTQlQor0JvQldCi0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JvQldCi0JjQiyDQodCQ0JLQkAor0JvQldCi0JjQiyDQodCQ0JLQkAor0JvQldCi0JjQiyDQodCY0JzQmtCQCivQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JXQotCY0Isg0KHQotCe0IjQkNCdINCb0JXQmtCQ0KAKK9Cb0JXQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQm9CV0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JXQotCY0Isg0KLQntCU0J7QoAor0JvQldCi0JjQiyDQktCV0KDQkAor0JvQldCi0JjQiyDQktCV0KHQndCQCivQm9CV0KLQmNCLINCS0JjQlNCQCivQm9CV0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JXQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Cb0JXQotCY0Isg0JfQlNCg0JDQktCa0J4KK9Cb0JXQotCY0Isg0JfQntCg0JDQnQor0JvQldCi0JjQiyDQl9Ce0KDQkNCdCivQm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cb0JXQotCY0Isg0JfQntCg0JrQkAor0JvQldCi0JjQptCQINCY0JLQkNCd0JAKK9Cb0JXQotCY0KbQkCDQnNCY0JvQkNCdCivQm9CV0KLQmNCm0JAg0KLQntCc0JjQodCb0JDQkgor0JvQldCi0J4g0KDQo9CW0JjQptCQCivQm9CV0KLQntCd0JDQmCDQiNCQ0J3QntCoCivQm9CV0KLQntCd0JDQmCDQm9CQ0KHQm9CeCivQm9CV0JLQkCDQmNCb0JjQndCa0JAKK9Cb0JXQktCQ0Jgg0JPQkNCR0J7QoAor0JvQldCS0JDQmCDQmtCQ0KLQkNCb0JjQnQor0JvQldCS0JDQmCDQndCQ0J3QlNCe0KAKK9Cb0JXQktCQ0Jgg0KHQotCV0JLQkNCdCivQm9CV0JLQkNCI0JDQpiDQktCV0KDQkAor0JvQldCS0JDQmtCe0JIg0JzQkNCg0JAKK9Cb0JXQktCQ0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQktCQ0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JXQktCQ0KDQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9Cb0JXQktCQ0KLQmNCLINCc0JDQotCY0IjQkAor0JvQldCS0JDQotCY0Isg0JzQmNCb0JrQkAor0JvQldCS0JDQotCY0Isg0JzQmNCb0JrQmNCm0JAKK9Cb0JXQktCV0J3QodCa0Jgg0KLQkNCU0JXQiAor0JvQldCS0Jgg0JPQntCg0JDQnQor0JvQldCS0Jgg0JvQldCe0J0KK9Cb0JXQktCYINCS0JjQmtCi0J7QoAor0JvQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JvQldCS0J3QkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JXQktCd0JDQiNCY0Isg0JzQmNCb0JrQkAor0JvQldCS0J3QkNCI0JjQiyDQnNCe0JzQp9CY0JvQngor0JvQldCX0JXQp9CV0JIg0KHQmNCd0JjQqNCQCivQm9CY0KfQkNCd0JjQnSDQlNCg0JDQk9CQ0J0KK9Cb0JjQp9CQ0J3QmNCdINCc0JDQoNCY0IjQkAor0JvQmNCn0JDQndCY0J0g0KHQm9CQ0JLQmtCeCivQm9CY0KfQldCdINCl0J7QotCY0JzQmNCgCivQm9CY0KfQldCdINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQm9CY0KfQldCdINCJ0KPQlNCc0JjQm9CQCivQm9CY0KfQmNCd0JAg0ILQntCg0ILQlQor0JvQmNCn0JjQndCQINCR0KDQkNCd0JrQmNCm0JAKK9Cb0JjQp9CY0J3QkCDQlNCQ0J3QmNCb0J4KK9Cb0JjQp9CY0J3QkCDQlNCc0JjQotCQ0KAKK9Cb0JjQp9CY0J3QkCDQlNCg0JDQk9CeCivQm9CY0KfQmNCd0JAg0JTQo9Co0JDQnQor0JvQmNCn0JjQndCQINCb0KPQmtCQCivQm9CY0KfQmNCd0JAg0JzQkNCg0JjQiNCQCivQm9CY0KfQmNCd0JAg0JzQmNCb0JDQndCa0JAKK9Cb0JjQp9CY0J3QkCDQnNCY0JvQkNCdCivQm9CY0KfQmNCd0JAg0JzQmNCb0JUKK9Cb0JjQp9CY0J3QkCDQn9Cg0JXQlNCg0JDQkwor0JvQmNCn0JjQndCQINCg0JDQlNCVCivQm9CY0KfQmNCd0JAg0JLQldCb0JjQkdCe0KAKK9Cb0JjQp9CY0J3QkCDQl9Ce0KDQkNCdCivQm9CY0KfQmNCd0JDQoCDQlNCg0JDQk9CQ0J0KK9Cb0JjQp9CY0J3QkNCgINCd0JXQlNCV0InQmtCeCivQm9CY0KfQmNCd0JDQoCDQodCb0JDQktCa0J4KK9Cb0JjQp9CY0J3QkNCgINCh0KLQkNCd0JrQngor0JvQmNCn0JjQndCY0Isg0JTQo9Co0JDQnQor0JvQmNCn0JjQndCY0Isg0J3QkNCU0JAKK9Cb0JjQqNCn0JjQiyDQktCV0JvQmNCd0JrQkAor0JvQmNCo0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQm9CY0KjQmNCLINCc0JDQoNCY0KbQkAor0JvQmNCo0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CY0KjQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JjQkdCV0KAg0KHQotCV0JLQkNCdCivQm9CY0JHQoNCY0Isg0JjQktCQ0J0KK9Cb0JjQkdCg0JjQiyDQmNCS0JDQnQor0JvQmNCR0KDQmNCLINCc0JDQoNCY0IjQkNCdCivQm9CY0JTQm9Ce0KQg0J/QmNCg0J7QqNCa0JAKK9Cb0JjQlNCb0J7QpCDQoNCj0JTQntCb0KQKK9Cb0JjQlNCb0J7QpCDQl9Ce0JvQotCQ0J0KK9Cb0JjQpdCi0JXQndCi0JDQmyDQkNCd0KLQkNCbCivQm9CY0KXQotCV0J3QotCQ0Jsg0JXQm9CY0JfQkNCR0JXQotCQCivQm9CY0KXQktCQ0KDQp9CV0Jog0JDQndCU0KDQmNCI0JAKK9Cb0JjQmtCQ0JLQldCmINCI0JDQoNCe0JzQmNCgCivQm9CY0JrQkNCS0JXQpiDQmtCQ0KDQm9CeINCU0JjQn9CbINCY0J3Qkwor0JvQmNCa0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CY0JrQmNCLINCR0KPQlNCY0KHQm9CQ0JIKK9Cb0JjQmtCe0JTQoNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cb0JjQm9Cn0JXQkiDQlNCQ0KDQmNCd0JrQkAor0JvQmNCb0Jgg0JLQldCg0JAKK9Cb0JjQm9CY0Isg0ILQntCg0ILQlQor0JvQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JjQm9CY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JvQmNCb0JjQiyDQnNCY0JvQldCd0JAKK9Cb0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0JjQm9CY0Isg0KHQoNCR0JjQodCb0JDQkgor0JvQmNCb0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JvQmNCb0JjQiyDQktCV0JvQmNCc0JjQoAor0JvQmNCc0JDQndCYINCo0JDQi9CY0KAKK9Cb0JjQnNCQ0J3QmCDQnNCV0JzQmNCoCivQm9CY0JzQkNCd0Jgg0J3QkNCX0JjQpAor0JvQmNCc0JDQndCe0JLQmNCLINCd0JDQl9CY0KQKK9Cb0JjQnNCQ0J3QntCS0KHQmtCYINCY0JHQoNCQ0KXQmNCcCivQm9CY0JzQkNCd0J7QktCh0JrQmCDQnNCj0KHQkNCk0JXQogor0JvQmNCc0JHQntCm0JrQmCDQn9CV0KLQkNCgCivQm9CY0JzQkdCj0KDQk9CV0KAg0IjQntCW0JXQpAor0JvQmNCd0JTQldCc0JDQnSDQiNCV0JvQldCd0JAKK9Cb0JjQndCU0JXQnNCQ0J0g0KDQo9CU0J7Qm9CkCivQm9CY0J3QlNCd0JXQoCDQnNCQ0KDQk9CY0KIKK9Cb0JjQndCY0Isg0JTQoNCQ0JPQkNCdCivQm9CY0IrQkNCaINCU0KDQkNCT0J7QnNCY0KAKK9Cb0JjQndCa0J4g0JrQntCb0J7QnNCQ0J0KK9Cb0JjQn9CQ0Jgg0JrQntCg0J3QldCbCivQm9CY0J/QkNCd0J7QktCY0Isg0JPQntCI0JrQngor0JvQmNCf0J3QmNCn0JrQmCDQl9Ce0KDQmNCm0JAKK9Cb0JjQn9Ce0KLQmNCLINCf0JXQotCQ0KAKK9Cb0JjQn9Ce0JLQkNCmINCU0KPQqNCQ0J0KK9Cb0JjQn9Ce0JLQkNCmINCc0JDQotCY0IjQkAor0JvQmNCh0JjQp9CY0J0g0J3QkNCU0JAKK9Cb0JjQodCY0KfQmNCdINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JjQodCY0Isg0JzQkNCg0JjQptCQCivQm9CY0KHQmNCm0JAg0JzQmNCl0JDQiNCb0J4KK9Cb0JjQodCY0KbQkCDQnNCY0KXQkNCI0JvQngor0JvQmNCh0JjQptCQINCc0JjQm9Ce0Kgg0JDQlNCS0J7QmtCQ0KIKK9Cb0JjQodCe0JIg0JrQkNCi0JjQptCQCivQm9CY0KHQntCSINCc0JjQm9CY0JzQmNCgCivQm9CY0KHQntCSINCc0JjQoNCa0J4KK9Cb0JjQodCe0JLQkNCmINCX0J7QoNCQ0J0KK9Cb0JjQodCj0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JjQodCj0Jsg0JzQmNCb0JrQkAor0JvQmNCh0KPQm9Ce0JIg0J7Qm9CT0JAKK9Cb0JjQodCj0JvQntCSINCg0JDQotCe0JzQmNCgCivQm9CY0KHQo9Cb0J7QkiDQl9Ce0KDQkNCdCivQm9CY0KLQkNCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JjQotCd0JXQoCDQiNCe0JLQkNCdCivQm9CY0KLQoNCY0KfQmNCLINCT0JDQktCg0JAKK9Cb0JjQotCg0JjQp9CY0J0g0JHQntCT0JTQkNCdCivQm9CY0KLQoNCY0KfQmNCdINCT0JXQndCQCivQm9CY0KLQoNCY0KfQmNCdLdCS0JXQkdCV0KAg0JHQntCT0JTQkNCd0JrQkAor0JvQmNCi0KDQmNCn0JjQnSDQktCV0JvQmNCc0JjQoAor0JvQmNCi0JLQiNCQ0Jog0J/QkNCS0JvQlQor0JvQmNCi0JLQiNCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JvQmNCS0JDQlNCQINCc0JjQm9CQ0J0KK9Cb0JjQktCQ0JTQkCDQnNCY0JvQntCoCivQm9CY0JLQkNCI0JAg0IjQntCX0J4KK9Cb0JjQktCQ0IjQkCDQiNCj0KDQlQor0JvQmNCX0JDQotCe0JLQmNCLINCR0KDQkNCd0JrQngor0InQkNCn0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CJ0JDQiNCY0Isg0KLQkNCY0J8KK9CJ0JDQidCY0Isg0ILQntCg0ILQlQor0InQkNCi0JjQpNCYINCa0JDQlNCg0JgKK9CJ0JDQktCg0J7QqNCa0JAg0J/QkNCS0JXQmwor0InQkNCS0KDQntCo0JrQkCDQn9CQ0JLQldCbCivQidCV0KjQldCS0JjQiyDQidCY0InQkNCd0JAg0JTQoAor0InQldCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQidCV0KjQitCQ0Jog0JzQmNCg0J7QidCj0JEKK9CJ0JXQqNCK0JDQmiDQnNCe0JzQp9CY0JvQngor0InQldCJ0JDQmiDQnNCV0KXQngor0InQldCf0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0InQmNCa0JDQoCDQldCS0JPQldCd0JjQiNCVCivQidCY0JrQkNCgINCc0JjQpdCQ0IjQm9CeINCU0JjQn9CbINCY0J3Qkwor0InQmNCa0JDQoCDQktCV0KDQntCd0JAKK9CJ0JjQmtCQ0KAg0JLQm9CQ0JTQmNCc0JjQoCDQm9CV0JrQkNCgCivQidCY0InQkNCaINCJ0JjQidCQ0J3QkAor0InQmNCJ0JDQmiDQnNCY0JvQkNCdCivQidCY0InQkNCaINCc0JjQm9CQ0J0KK9CJ0JjQidCQ0Jog0JzQmNCb0JXQndCa0J4KK9CJ0JjQidCQ0Jog0JzQmNCb0J7QoNCQ0JQKK9CJ0JjQidCQ0Jog0JzQmNCe0JTQoNCQ0JMKK9CJ0JjQidCQ0Jog0JzQmNCg0JrQngor0InQmNCJ0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQidCY0InQkNCaINCd0JDQlNCQCivQidCY0InQkNCaINCd0JDQlNCV0JbQlNCQCivQidCY0InQkNCaINCf0JDQiNCeCivQidCY0InQkNCaINCh0JDQktCQCivQidCY0InQkNCaINCh0JvQkNCS0JrQngor0InQmNCJ0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQidCY0InQkNCaINCS0JvQkNCU0J4KK9CJ0KPQqNCi0JjQndCQINCW0JjQktCQ0J0KK9CJ0KPQqNCi0JjQndCQINCC0J7QoNCC0JUKK9CJ0KPQqNCi0JjQndCQINCI0JXQm9CV0J3QkAor0InQo9Co0KLQmNCd0JAg0InQo9CR0JjQptCQCivQidCj0KjQotCY0J3QkCDQnNCY0JvQkNCdCivQidCj0KjQotCY0J3QkCDQnNCY0JvQkNCdCivQidCj0KjQotCY0J3QkCDQnNCY0JvQntCS0JDQnQor0InQo9Co0KLQmNCd0JAg0J3QmNCa0J7Qm9CQCivQidCj0KjQotCY0J3QkCDQntCb0JPQkAor0InQo9Co0KLQmNCd0JAg0KHQntCk0JjQiNCQCivQidCj0KjQotCY0J3QkCDQktCe0IjQmtCQCivQidCj0KjQotCY0J3QntCSINCd0JDQlNCQCivQidCj0JHQkNCo0KfQmNCaINCQ0J3QotCe0J0KK9CJ0KPQkdCQ0J3QmNCLINCc0JDQoNCQCivQidCj0JHQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CJ0KPQkdCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQidCj0JHQldCd0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0InQo9CR0JXQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0InQo9CR0JXQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQp9CY0Isg0JbQkNCg0JrQngor0InQo9CR0JjQp9CY0Isg0JbQkNCg0JrQngor0InQo9CR0JjQp9CY0Isg0JbQmNCS0JrQkAor0InQo9CR0JjQp9CY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0InQo9CR0JjQp9CY0Isg0JHQm9CQ0JbQngor0InQo9CR0JjQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0JTQkNCd0JrQngor0InQo9CR0JjQp9CY0Isg0JTQkNCg0JAKK9CJ0KPQkdCY0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CJ0KPQkdCY0KfQmNCLINCI0J7QktCY0KbQkAor0InQo9CR0JjQp9CY0Isg0JvQkNCX0JDQoAor0InQo9CR0JjQp9CY0Isg0JvQo9Ca0JAKK9CJ0KPQkdCY0KfQmNCLINCc0JDQoNCY0IjQkNCdCivQidCj0JHQmNCn0JjQiyDQnNCQ0KDQmNCd0JAKK9CJ0KPQkdCY0KfQmNCLINCc0JjQpdCQ0IjQm9CeCivQidCj0JHQmNCn0JjQiyDQnNCY0JvQntCoINCb0J7QmtCQ0JsKK9CJ0KPQkdCY0KfQmNCLINCc0JjQm9Ce0KgKK9CJ0KPQkdCY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0InQo9CR0JjQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0J3QkNCU0JAKK9CJ0KPQkdCY0KfQmNCLINCd0JDQlNCQCivQidCj0JHQmNCn0JjQiyDQndCV0JLQldCd0JrQkAor0InQo9CR0JjQp9CY0Isg0J3QmNCa0J7Qm9CQCivQidCj0JHQmNCn0JjQiyDQn9CV0KLQkNCgCivQidCj0JHQmNCn0JjQiyDQn9CV0KLQkNCgCivQidCj0JHQmNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQidCj0JHQmNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQidCj0JHQmNCn0JjQiyDQoNCQ0KLQmtCeCivQidCj0JHQmNCn0JjQiyDQoNCV0InQkAor0InQo9CR0JjQp9CY0Isg0KDQo9CU0J7Qm9CkCivQidCj0JHQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQidCj0JHQmNCn0JjQiyDQodCi0JDQndCa0J4KK9CJ0KPQkdCY0KfQmNCLINCh0KLQldCS0JDQnQor0InQo9CR0JjQp9CY0Isg0KHQo9CX0JDQndCQCivQidCj0JHQmNCn0JjQiyDQotCQ0JvQmNCd0JrQkAor0InQo9CR0JjQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0InQo9CR0JjQp9CY0Isg0JfQntCg0JAKK9CJ0KPQkdCY0KjQldCS0JjQiyDQnNCY0JvQntCoCivQidCj0JHQmNCo0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CJ0KPQkdCY0KjQmNCLINCc0JjQm9CQ0J3QmtCeCivQidCj0JHQmNCo0JjQiyDQn9CV0KLQkNCgCivQidCj0JHQmNCo0JjQiyDQodCj0JfQkNCd0JAKK9CJ0KPQkdCY0Isg0JDQndCC0JXQm9Ca0JAKK9CJ0KPQkdCY0Isg0JDQndCU0KDQmNCI0JAKK9CJ0KPQkdCY0Isg0JjQktCQ0J0KK9CJ0KPQkdCY0Isg0IjQldCb0JXQndCQCivQidCj0JHQmNCLINCc0JjQoNCI0JDQndCQCivQidCj0JHQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CJ0KPQkdCY0Isg0J/QldCg0J4KK9CJ0KPQkdCY0Isg0KDQkNCI0JrQngor0InQo9CR0JjQkdCg0JDQotCY0Isg0JXQlNCeCivQidCj0JHQmNCR0KDQkNCi0JjQiyDQm9CV0J4KK9CJ0KPQkdCY0J3QkNCmINCc0JjQm9CQ0J3QmtCQCivQidCj0JHQmNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0InQo9CR0JjQndCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCb0JXQndCa0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0InQo9CR0JjQndCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQidCj0JHQmNCd0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQidCj0JHQmNCd0JrQntCS0JjQiyDQodCQ0JLQkAor0InQo9CR0JjQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQidCj0JHQmNCd0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0InQo9CR0JjQodCQ0JLQidCV0JLQmNCLINCU0JDQndCY0KbQkAor0InQo9CR0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQqNCQCivQidCj0JHQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0InQo9CR0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0KbQkAor0InQo9CR0J7QiNCQINCU0KDQldCd0JrQkAor0InQo9CR0J7QiNCQINCc0JvQkNCU0JXQnQor0InQo9CR0J7QiNCQINCh0JjQm9CS0JjQiNCQCivQidCj0JHQntCI0JXQkiDQkdCY0InQkNCd0JAKK9CJ0KPQkdCe0IjQldCSINCY0JLQkNCdCivQidCj0JHQntCI0JXQkiDQiNCV0JvQldCd0JAKK9CJ0KPQkdCe0IjQldCSINCb0JDQl9CQ0KAKK9CJ0KPQkdCe0IjQldCSINCc0JDQiNCQCivQidCj0JHQntCI0JXQkiDQn9CV0KLQkNCgINCc0KAKK9CJ0KPQkdCe0IjQldCSINCg0JDQiNCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0InQo9CR0J7QiNCV0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQidCj0JHQntCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQidCj0JHQntCI0JXQktCY0Isg0JTQldCh0JjQnNCY0KAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCY0JvQmNCI0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQidCj0JHQntCI0JXQktCY0Isg0IjQo9Cb0JrQkAor0InQo9CR0J7QiNCV0JLQmNCLINCa0JDQotCY0KbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCa0J7QodCi0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQnNCQ0KDQmtCeCivQidCj0JHQntCI0JXQktCY0Isg0JzQkNCg0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQidCj0JHQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQidCj0JHQntCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQidCj0JHQntCI0JXQktCY0Isg0JzQmNCg0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCe0KHQotCe0IjQkAor0InQo9CR0J7QiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQoNCj0JbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCg0KPQltCY0KbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CJ0KPQkdCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CJ0KPQkdCe0IjQldCS0JjQiyDQotCe0JTQntCgCivQidCj0JHQntCI0JXQktCY0Isg0JLQldCJ0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQidCj0JHQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0InQo9CR0J7QotCY0J0g0IjQldCb0JXQndCQCivQidCj0JHQntCi0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQidCj0JHQntCi0JjQndCQLdCR0KDQmtCY0Isg0KDQkNCI0J3QkAor0InQo9CR0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9CJ0KPQkdCj0KjQp9CY0Jog0J/QldCi0JDQoAor0InQo9Ca0J7QktCn0JDQndCY0J0g0JzQmNCg0IjQkNCd0JAKK9CJ0KPQmtCe0JLQp9CQ0J3QmNCdINCX0J7QoNCY0KbQkAor0InQo9Cc0J7QltCV0JLQodCa0Jgg0IjQldCb0JXQndCQCivQidCj0JzQntCW0JXQktCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CJ0KPQnNCe0JLQmNCLINCU0JDQndCY0KbQkAor0InQo9Ci0JjQiyDQodCi0JDQndCY0JrQkAor0InQo9Ci0JLQmCDQoNCQ0JTQmNCS0J7QiAor0JvQntCn0JrQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQntCo0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQntCo0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQntCo0JjQiyDQnNCY0KLQoNCQCivQm9Ce0KjQntCd0KYg0KXQldCd0KDQmNCI0JXQotCVCivQm9Ce0JHQntCU0JAg0JDQndCi0KPQnQor0JvQntCR0J7QlNCQINCh0KLQldCS0JDQnQor0JvQntCmINCQ0J3QlNCg0JDQqAor0JvQntCmINCI0J7QltCV0KQKK9Cb0J7QptCYINCY0KjQotCS0JDQnQor0JvQntCU0Jgg0JPQkNCR0J7QoAor0JvQntCU0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0J7QlNCYINCb0JDQodCb0J4KK9Cb0J7Qk9Cj0J3QntCSINCQ0JvQldCa0KHQldCIINCU0JjQn9CbINCY0J3Qkwor0JvQntCI0JDQndCY0KfQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cb0J7QiNCQ0J3QmNCm0JAg0JHQntCo0JrQngor0JvQntCI0J3QkCDQmNCS0JDQnQor0JvQntCI0J7QktCY0Isg0JHQntCW0JjQptCQCivQm9Ce0IjQntCS0JjQiyDQntCh0KLQntCI0JAKK9Cb0J7QiNCe0JLQmNCLINCg0JDQndCa0J4KK9Cb0J7QiNCf0KPQoCDQnNCY0JvQntCS0JDQnQor0JvQntCa0JDQoSDQlNCQ0KDQmtCeCivQm9Ce0JrQmNCLINCU0JDQndCY0KbQkAor0JvQntCa0JjQiyDQiNCV0JvQldCd0JAKK9Cb0J7QmtCY0Isg0InQo9CR0JjQptCQCivQm9Ce0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9Ce0JrQmNCLINCS0JXQoNCQCivQm9Ce0JvQmNCLINCR0J7QqNCa0J4KK9Cb0J7Qm9CY0Isg0JTQntCR0KDQmNCd0JrQkAor0JvQntCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0J7Qm9CY0Isg0JzQmNCb0JDQnQor0JvQntCb0JjQiyDQndCV0JTQldCJ0JrQngor0JvQntCb0JjQiyDQodCb0JDQktCa0JAKK9Cb0J7Qm9CY0Isg0KLQntCU0J7QoAor0JvQntCb0JjQnSDQlNCV0IjQkNCdCivQm9Ce0JvQmNCdINCX0J7QoNCY0KbQkAor0JvQntCc0JXQnSDQldCb0JXQndCQCivQm9Ce0JzQmNCLINCc0J7QnNCY0KAKK9Cb0J7QnNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0J7QnNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQntCc0IjQkNCd0KHQmtCYINCQ0JTQkNCcCivQm9Ce0JzQiNCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQm9Ce0JzQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIg0JzQoCDQntCV0KYg0Jgg0JjQo9Cg0JUKK9Cb0J7QnNCe0JLQmNCLINCc0JjQpdCQ0JjQndCQCivQm9Ce0JzQntCS0JjQiyDQnNCY0KXQkNCY0J3QkAor0JvQntCc0J/QkNCgINCU0KDQkNCT0JDQnQor0JvQntCc0J/QkNCgINCc0JjQotCQ0KAKK9Cb0J7QnNCf0JDQoCDQn9CV0KLQkNCgCivQm9Ce0JzQn9CQ0KAg0KHQkNCS0JAKK9Cb0J7QndCn0JDQoCDQp9CV0JTQntCc0JjQoAor0JvQntCd0KfQkNCgINCC0KPQoNCeCivQm9Ce0J3Qp9CQ0KAg0JHQntCo0JrQngor0JvQntCd0KfQkNCgINCR0J7QltCY0JTQkNCgCivQm9Ce0J3Qp9CQ0KAg0JHQntCI0JDQndCQCivQm9Ce0J3Qp9CQ0KAg0JHQntCg0JjQoQor0JvQntCd0KfQkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0JvQntCd0KfQkNCgINCU0KDQkNCT0JDQnQor0JvQntCd0KfQkNCgINCU0KPQqNCQ0J0KK9Cb0J7QndCn0JDQoCDQlNCj0KjQkNCdCivQm9Ce0J3Qp9CQ0KAg0JTQo9Co0JDQnQor0JvQntCd0KfQkNCgINCU0KPQqNCQ0J0KK9Cb0J7QndCn0JDQoCDQk9Ce0IjQmtCeCivQm9Ce0J3Qp9CQ0KAg0JPQntCg0JTQkNCd0JAKK9Cb0J7QndCn0JDQoCDQmNCb0JjQiNCQCivQm9Ce0J3Qp9CQ0KAg0IjQldCb0JjQptCQCivQm9Ce0J3Qp9CQ0KAg0IjQntCS0JDQnQor0JvQntCd0KfQkNCgINCa0J7QodCi0JAKK9Cb0J7QndCn0JDQoCDQmtCh0JXQndCY0IjQkAor0JvQntCd0KfQkNCgINCJ0KPQkdCY0KbQkAor0JvQntCd0KfQkNCgINCJ0KPQkdCY0KbQkAor0JvQntCd0KfQkNCgINCJ0KPQkdCY0KbQkAor0JvQntCd0KfQkNCgINCc0JDQoNCa0J4KK9Cb0J7QndCn0JDQoCDQnNCY0KXQkNCI0JvQngor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQldCd0JrQngor0JvQntCd0KfQkNCgINCc0JjQm9CVCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JUKK9Cb0J7QndCn0JDQoCDQnNCY0JvQntCg0JDQlAor0JvQntCd0KfQkNCgINCc0JjQoNCa0J4KK9Cb0J7QndCn0JDQoCDQnNCY0KDQmtCeCivQm9Ce0J3Qp9CQ0KAg0J3QldCU0JXQidCa0J4KK9Cb0J7QndCn0JDQoCDQndCV0JLQldCd0JrQkAor0JvQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JvQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JvQntCd0KfQkNCgINCf0JDQndCi0JXQm9CY0IjQkAor0JvQntCd0KfQkNCgINCf0KDQldCU0KDQkNCTCivQm9Ce0J3Qp9CQ0KAg0KDQkNCU0JUKK9Cb0J7QndCn0JDQoCDQoNCQ0JTQntCc0JjQoAor0JvQntCd0KfQkNCgINCg0JDQlNCe0JzQmNCgCivQm9Ce0J3Qp9CQ0KAg0KHQmNCc0J4KK9Cb0J7QndCn0JDQoCDQodCb0JDQktCa0J4KK9Cb0J7QndCn0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQm9Ce0J3Qp9CQ0KAt0KHQoNCV0JzQp9CV0JIg0JLQldCg0JjQptCQCivQm9Ce0J3Qp9CQ0KAg0KHQotCV0JLQngor0JvQntCd0KfQkNCgINCi0JDQotCI0JDQndCQCivQm9Ce0J3Qp9CQ0KAg0JLQldCb0JjQnNCY0KAKK9Cb0J7QndCn0JDQoCDQktCV0KDQkAor0JvQntCd0KfQkNCgINCS0JvQkNCU0JAKK9Cb0J7QndCn0JDQoCDQktCb0JDQlNCY0JzQmNCg0JrQkCDQlNCgCivQm9Ce0J3Qp9CQ0KAg0JLQo9Ca0JDQqNCY0J0KK9Cb0J7QndCn0JDQoCDQl9CU0KDQkNCS0JrQngor0JvQntCd0KfQkNCgINCX0J7QoNCQ0J0KK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCW0JjQktCe0KLQkAor0JvQntCd0KfQkNCg0JXQktCY0Isg0JjQk9CK0JDQogor0JvQntCd0KfQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCg0JXQktCY0Isg0J/Qo9Cd0JjQqNCQCivQm9Ce0J3Qp9CQ0KDQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQntCd0KfQkNCg0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cb0J7QndCn0JDQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0J7QndCn0JDQoNCh0JrQmCDQlNCg0JDQk9CQ0J3QkAor0JvQntCd0KfQkNCg0KHQmtCYINCU0KDQkNCT0JjQqNCQCivQm9Ce0J3Qp9CQ0KDQodCa0Jgg0J/QoNCV0JTQoNCQ0JMKK9Cb0J7QndCn0JDQoNCh0JrQmCDQodCQ0JLQkAor0JvQntCd0KfQkNCg0KHQmtCYINCh0KDQldCU0J7QiNCVCivQm9Ce0J3Qp9CY0J3QkCDQnNCY0InQkAor0JvQntCd0KfQmNCd0JAg0J/QoNCV0JTQoNCQ0JMKK9Cb0J7QndCm0JjQiyDQkdCV0KDQmNCh0JvQkNCS0JAKK9Cb0J7QndCm0JjQiyDQoNCQ0IjQmtCeCivQm9Ce0J/QkNCi0JjQnSDQndCY0JrQntCb0JAKK9Cb0J7Qn9CY0KfQmNCLINCo0J/QmNCg0J4KK9Cb0J7Qn9CY0KfQmNCLINCR0KDQkNCd0JrQngor0JvQntCf0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQm9Ce0J/QmNCn0JjQiyDQiNCV0JvQmNCm0JAKK9Cb0J7Qn9CY0KfQmNCLINCI0J7QktCQ0J0KK9Cb0J7Qn9CY0KfQmNCLINCc0JjQntCU0KDQkNCTCivQm9Ce0J/QmNCn0JjQiyDQntCb0JPQkAor0JvQntCf0JjQp9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cb0J7Qn9Cj0KjQkNCd0KHQmtCYINCU0KPQqNCY0KbQkAor0JvQntCf0KPQqNCY0J3QkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQntCf0KPQqNCY0J3QkCDQiNCV0JvQmNCm0JAKK9Cb0J7QoNCR0JXQmiDQiNCe0KHQmNCfCivQm9Ce0KDQldCaINCI0J7QktCQ0J0KK9Cb0J7QoNCV0J3QptCY0J0g0JzQmNCb0JDQnQor0JvQntCi0JjQndCQINCU0KDQkNCT0JDQnQor0JvQntCi0JjQndCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0J7QotCY0J3QkCDQodCc0JjQidCQCivQm9Ce0JLQp9CV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQm9Ce0JLQp9CV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JvQntCS0KfQldCS0JjQiyDQnNCY0JvQmNCLCivQm9Ce0JLQp9CV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0J7QktCn0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JvQntCS0JDQqCDQoNCe0JfQkNCb0JjQiNCQCivQm9Ce0JLQkNCU0JjQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0JvQntCS0JDQoSDQmNCS0JDQnQor0JvQntCS0JjQiyDQmtCj0JfQnNCQ0J0KK9Cb0J7QktCg0JUg0KfQldCU0J4KK9Cb0J7QktCg0JUg0JTQoNCQ0JPQkNCdCivQm9Ce0JLQoNCVINCJ0JjQidCQ0J3QkAor0JvQntCS0KDQlSDQnNCY0JvQntCoCivQm9Ce0JLQoNCVINCh0JDQktCeCivQm9Ce0JLQoNCVINCh0JvQkNCS0JrQngor0JvQntCS0KDQlSDQodCi0JXQktCQ0J0KK9Cb0J7QktCg0JXQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0J7QktCg0JXQmtCe0JLQmNCLINCX0JvQkNCi0JrQngor0JvQntCS0KDQldCdINCh0JvQkNCS0JrQngor0JvQntCS0KDQldCd0KfQmNCLINCa0JDQotCY0KbQkAor0JvQntCS0KDQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQm9Ce0JLQoNCV0J3QodCa0Jgg0JTQo9Co0JDQnQor0JvQntCS0KDQldCd0KHQmtCYINCU0KPQqNCQ0J0KK9Cb0J7QktCg0JjQiyDQltCV0InQmtCeCivQm9Ce0JLQoNCY0Isg0JbQldCJ0JrQngor0JvQntCS0KDQmNCLINCC0KPQoNCQCivQm9Ce0JLQoNCY0Isg0JTQmNCS0J3QkAor0JvQntCS0KDQmNCLINCc0JDQoNCa0J4KK9Cb0J7QktCg0JjQiyDQndCY0JrQntCb0JAKK9Cb0J7QktCg0JjQiyDQn9CV0KLQkNCgCivQm9Ce0JLQoNCY0Isg0KDQkNCI0JrQngor0JvQntCS0KDQmNCLINCg0JDQotCa0J4KK9Cb0J7QktCg0JjQiyDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JjQiyDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JjQiyDQodCi0JXQktCQ0J0KK9Cb0J7QktCg0JjQiyDQodCi0JXQktCQ0J0KK9Cb0J7QktCg0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JvQntCS0KDQmNCLINCi0KDQmNCS0KPQnQor0JvQntCS0KDQmNCdINCU0JDQoNCQCivQm9Ce0JLQoNCY0J0g0JTQoNCQ0JPQkNCdCivQm9Ce0JfQkNCd0KfQmNCLINCd0JjQmtCeCivQm9Ce0JfQkNCd0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cb0J7Ql9CQ0J3QmNCLLdCf0JDQktCb0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JvQntCX0JDQndCe0JIg0JXQnNCY0JsKK9Cb0J7Ql9CQ0J3QntCSINCh0JDQktCQCivQm9Ce0JfQmNCLINCI0J7QodCY0J8KK9Cb0J7Ql9CY0Isg0JrQoNCh0KLQkAor0JvQntCX0JjQiyDQmtCh0JXQndCY0IjQkAor0JvQntCX0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cb0J7Ql9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JvQntCX0IjQkNCd0JjQnSDQndCY0JrQntCb0JAKK9Cb0J7Ql9CI0JDQndCY0J0g0J3QmNCa0J7Qm9CQCivQm9Ce0JfQiNCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JvQntCX0J7QktCe0Igg0InQo9CR0JjQptCQCivQm9Cj0KfQkNCaINCX0JvQkNCi0JjQptCQCivQm9Cj0KfQkNCgINCc0JjQm9CQ0JTQmNCdCivQm9Cj0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0KPQp9CQ0KAg0JLQldCg0JAKK9Cb0KPQp9CYINCQ0J3QmNCm0JAKK9Cb0KPQp9CYINCY0JLQkNCdCivQm9Cj0KfQmNCLINCn0JXQlNCe0JzQmNCgCivQm9Cj0KfQmNCLINCW0JjQktCa0J4KK9Cb0KPQp9CY0Isg0ILQntCa0J4KK9Cb0KPQp9CY0Isg0ILQntCg0ILQlQor0JvQo9Cn0JjQiyDQgtCj0KDQgtCY0J3QkAor0JvQo9Cn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQm9Cj0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQm9Cj0KfQmNCLINCR0KDQkNCd0JrQngor0JvQo9Cn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0KPQp9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0KPQp9CY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cb0KPQp9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQo9Cn0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQm9Cj0KfQmNCLINCI0JXQm9CV0J3QkAor0JvQo9Cn0JjQiyDQiNCV0JvQmNCm0JAKK9Cb0KPQp9CY0Isg0IjQntCS0JDQnSDQnNCgCivQm9Cj0KfQmNCLINCI0J7QktCQ0J0KK9Cb0KPQp9CY0Isg0IjQntCS0JDQnQor0JvQo9Cn0JjQiyDQiNCe0JLQmNCm0JAKK9Cb0KPQp9CY0Isg0JvQkNCX0J4KK9Cb0KPQp9CY0Isg0InQo9CR0JDQnQor0JvQo9Cn0JjQiyDQidCj0JHQntCc0JjQoAor0JvQo9Cn0JjQiyDQidCj0JHQngor0JvQo9Cn0JjQiyDQnNCY0KXQkNCI0JvQngor0JvQo9Cn0JjQiyDQnNCY0JvQkNCdCivQm9Cj0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQm9Cj0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQm9Cj0KfQmNCLINCc0JjQm9CY0KbQkAor0JvQo9Cn0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQm9Cj0KfQmNCLINCc0JjQm9Ce0KgKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QiNCY0KbQkAor0JvQo9Cn0JjQiyDQnNCY0JvQntCI0JrQkAor0JvQo9Cn0JjQiyDQnNCY0JvQntCc0JjQoAor0JvQo9Cn0JjQiyDQnNCY0JvQntCh0JDQktCQCivQm9Cj0KfQmNCLINCc0JjQm9Cj0KLQmNCdCivQm9Cj0KfQmNCLINCc0JjQntCU0KDQkNCTCivQm9Cj0KfQmNCLINCc0JjQoNCI0JDQndCQCivQm9Cj0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JvQo9Cn0JjQiyDQnNCe0JzQp9CY0JvQngor0JvQo9Cn0JjQiyDQnNCe0JzQmNCgCivQm9Cj0KfQmNCLINCd0JDQlNCQCivQm9Cj0KfQmNCLINCe0JHQoNCQ0JQKK9Cb0KPQp9CY0Isg0J/QkNCd0KLQkAor0JvQo9Cn0JjQiyDQn9CQ0JLQkAor0JvQo9Cn0JjQiyDQn9CV0KLQkNCgCivQm9Cj0KfQmNCLINCf0JXQotCa0J4KK9Cb0KPQp9CY0Isg0J/QldCi0JrQngor0JvQo9Cn0JjQiyDQoNCQ0IjQmtCeCivQm9Cj0KfQmNCLINCg0JjQodCi0J4KK9Cb0KPQp9CY0Isg0KHQm9CQ0JLQmtCeCivQm9Cj0KfQmNCLINCh0JvQkNCS0J3QkAor0JvQo9Cn0JjQiyDQodCe0KTQmNCI0JAKK9Cb0KPQp9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cb0KPQp9CY0Isg0KHQotCV0KTQkNCd0JjQiNCQCivQm9Cj0KfQmNCLINCh0KLQldCS0JDQnQor0JvQo9Cn0JjQiyDQktCQ0KHQngor0JvQo9Cn0JjQiyDQktCb0JDQlNCeCivQm9Cj0KfQmNCLINCS0J7QiNCY0J0KK9Cb0KPQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9Cb0KPQqNCY0J3QntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0JvQo9CW0JDQmNCLINCC0J7QoNCC0JUKK9Cb0KPQltCQ0JjQiyDQgtCe0KDQgtCVCivQm9Cj0JbQkNCY0Isg0JDQndCa0JAKK9Cb0KPQltCQ0JjQiyDQkdCe0JbQmNCm0JAKK9Cb0KPQltCQ0JjQiyDQlNCj0KjQmtCeCivQm9Cj0JbQkNCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JvQo9CW0JDQmNCLINCI0KPQm9Ca0JAKK9Cb0KPQltCQ0JjQiyDQnNCY0KDQkAor0JvQo9CW0JDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQltCQ0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0JbQkNCI0JjQiyDQkNCd0JrQkAor0JvQo9CW0JDQiNCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JvQo9CW0JDQiNCY0Isg0JzQmNCb0JXQndCQCivQm9Cj0JbQkNCI0JjQiyDQndCQ0JTQkAor0JvQo9CW0JDQiNCY0Isg0KHQotCQ0J3QmtCeCivQm9Cj0JbQkNCI0JjQiyDQodCi0JDQndCa0J4KK9Cb0KPQltCQ0IjQmNCLINCh0KLQntCI0JDQnQor0JvQo9CW0JDQndCY0J0g0KHQktCV0KLQntCX0JDQoAor0JvQo9CR0JDQqNCn0JjQmiDQkNCd0KLQkNCbCivQm9Cj0JHQkNCo0KfQmNCaINCb0JDQodCb0J4KK9Cb0KPQkdCQ0KDQlNCQINCJ0KPQkdCY0KbQkAor0JvQo9CR0JDQoNCU0JAg0KHQotCV0JLQkNCdCivQm9Cj0JHQldCdINCg0JDQndCa0J4KK9Cb0KPQkdCV0J0g0KHQkNCS0JAKK9Cb0KPQkdCj0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQm9Cj0JHQo9Cg0JjQiyDQlNCQ0J3QmNCb0J4KK9Cb0KPQkdCj0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9CR0KPQoNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cb0KPQkdCj0KDQmNCLINCc0JjQntCU0KDQkNCTCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0KDQmtCeCivQm9Cj0JHQo9Cg0JjQiyDQndCQ0JTQkAor0JvQo9CR0KPQoNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cb0KPQkdCj0KDQmNCLINCg0JDQiNCa0J4KK9Cb0KPQkdCj0KDQmNCLINCh0KLQkNCd0JAKK9Cb0KPQkdCj0KDQmNCLINCh0KLQldCS0JDQnQor0JvQo9CmINCI0JDQndCe0KgKK9Cb0KPQpiDQiNCj0JvQmNCI0JAKK9Cb0KPQptCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cb0KPQptCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cb0KPQptCY0Isg0J/QldCi0JDQoAor0JvQo9Cm0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JvQo9Cm0JrQkNCg0JYg0JLQm9CQ0JTQmNCc0JjQoAor0JvQo9CU0JDQiNCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cb0KPQlNCQ0IjQmNCLINCS0JXQoNCQCivQm9Cj0JTQntCo0JrQmCDQkNCd0ILQldCb0JrQngor0JvQo9CU0J7QqNCa0Jgg0JrQkNCi0JjQptCQCivQm9Cj0JTQntCo0JrQmCDQm9CQ0JfQkNCgCivQm9Cj0JTQntCo0JrQmCDQm9CQ0JfQkNCgCivQm9Cj0JTQntCo0JrQmCDQidCj0JHQmNCm0JAKK9Cb0KPQlNCe0KjQmtCYINCJ0KPQkdCe0JzQmNCgCivQm9Cj0JTQntCo0JrQmCDQnNCY0JvQldCd0JrQngor0JvQo9CU0J7QqNCa0Jgg0JLQldCb0JjQnNCY0KAKK9Cb0KPQlNCg0J7QktCQ0J0g0KHQotCV0JLQkAor0JvQo9CT0J7QitCQINCb0JDQl9CeCivQm9Cj0JPQntCK0JAg0J/QldCi0JDQoAor0JvQo9CT0J7QitCQINCg0JDQlNCY0JLQntCICivQm9Cj0JPQntCK0JAg0KHQkNCS0JAKK9Cb0KPQk9Ce0IrQkCDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JPQntCK0JAg0JLQldCJ0JrQngor0JvQo9CT0J7QitCQINCS0JjQlNCe0IjQlQor0JvQo9CT0KPQnNCV0KDQodCa0Jgg0JTQkNCd0JjQptCQCivQm9Cj0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQiNCQ0J3QntCSINCU0KDQkNCT0J7QodCb0JDQkgor0JvQo9CI0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQiNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQm9Cj0JrQkNCnINCo0JDQndCU0J7QoAor0JvQo9Ca0JDQpyDQkNCd0JTQoNCQ0KgKK9Cb0KPQmtCQ0Kcg0JDQndCa0JjQptCQCivQm9Cj0JrQkNCnINCQ0KDQkNCd0JrQkAor0JvQo9Ca0JDQpyDQkdCe0KjQmtCeCivQm9Cj0JrQkNCnINCR0J7QqNCa0J4KK9Cb0KPQmtCQ0Kcg0JHQntCW0JjQlNCQ0KAKK9Cb0KPQmtCQ0Kcg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9Cj0JrQkNCnINCU0JDQndCY0JvQngor0JvQo9Ca0JDQpyDQlNCg0JDQk9CQ0J0KK9Cb0KPQmtCQ0Kcg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9Cb0KPQmtCQ0Kcg0KTQldCg0JXQndCmCivQm9Cj0JrQkNCnINCk0KDQkNCd0KbQmNCo0JrQkAor0JvQo9Ca0JDQpyDQpNCg0JDQitCQCivQm9Cj0JrQkNCnINCT0KDQntCX0JTQkAor0JvQo9Ca0JDQpyDQmNCT0IrQkNCiCivQm9Cj0JrQkNCnINCY0JLQkNCdCivQm9Cj0JrQkNCnINCb0JDQl9CQ0KAKK9Cb0KPQmtCQ0Kcg0JzQmNCl0JDQiNCb0J4KK9Cb0KPQmtCQ0Kcg0JzQmNCl0JDQiNCb0J4KK9Cb0KPQmtCQ0Kcg0JzQmNCl0JDQiNCb0J4KK9Cb0KPQmtCQ0Kcg0JzQmNCb0JXQktCQCivQm9Cj0JrQkNCnINCd0JDQlNCV0JbQlNCQCivQm9Cj0JrQkNCnINCf0JXQotCQ0KAKK9Cb0KPQmtCQ0Kcg0J/QldCi0JDQoAor0JvQo9Ca0JDQpyDQoNCQ0JTQlQor0JvQo9Ca0JDQpyDQodCQ0JLQkAor0JvQo9Ca0JDQpyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQo9Ca0JDQpyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQkNCnINCh0KLQldCS0JDQnQor0JvQo9Ca0JDQpyDQodCS0JXQotCa0J4KK9Cb0KPQmtCQ0Kcg0JLQldCb0JjQnNCY0KAKK9Cb0KPQmtCQ0KfQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cb0KPQmtCQ0KfQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQo9Ca0JDQp9CYINCI0KPQm9CY0IjQkNCd0JAKK9Cb0KPQmtCQ0IjQmNCLINCb0JDQl9CQ0KAg0JzQoAor0JvQo9Ca0JDQnSDQgtCe0KDQgtCVCivQm9Cj0JrQkNCdINCS0JjQndCm0JXQndCmCivQm9Cj0JrQkNCd0JjQiyDQpNCg0JjQgtCV0KgKK9Cb0KPQmtCQ0J3QmNCLINCh0KLQldCS0JDQnQor0JvQo9Ca0JDQotCV0JvQmCDQmNCS0JDQndCa0JAKK9Cb0KPQmtCQ0JLQkNCmINCh0JzQmNCJ0JrQkAor0JvQo9Ca0JDQktCQ0KYg0JfQntCg0JDQnQor0JvQo9Ca0JXQqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQo9Ca0JXQndCY0Isg0InQmNCJ0JDQndCQCivQm9Cj0JrQldCi0JAg0KDQkNCU0JzQmNCb0JAKK9Cb0KPQmtCY0KfQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cb0KPQmtCY0KfQmNCLINCa0JDQotCY0KbQkAor0JvQo9Ca0JjQp9CY0Isg0KDQkNCU0JAKK9Cb0KPQmtCY0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JbQmNCS0J7QotCQCivQm9Cj0JrQmNCLINCC0KPQoNCQCivQm9Cj0JrQmNCLINCC0KPQoNCeCivQm9Cj0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9Cj0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9Cj0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9Cj0JrQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cb0KPQmtCY0Isg0JHQldCg0KLQkAor0JvQo9Ca0JjQiyDQkdCe0KjQmtCeCivQm9Cj0JrQmNCLINCR0J7QltCY0JTQkNCgCivQm9Cj0JrQmNCLINCR0J7Qk9Ce0InQo9CRCivQm9Cj0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cb0KPQmtCY0Isg0JHQntCg0J4KK9Cb0KPQmtCY0Isg0JHQntCh0JjQidCa0JAKK9Cb0KPQmtCY0Isg0KbQktCV0KLQkAor0JvQo9Ca0JjQiyDQptCS0IjQldCi0JrQngor0JvQo9Ca0JjQiyDQlNCQ0J3QlQor0JvQo9Ca0JjQiyDQlNCQ0J3QlQor0JvQo9Ca0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JvQo9Ca0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0KPQmtCY0Isg0JTQntCR0KDQmNCb0JAKK9Cb0KPQmtCY0Isg0JTQntCR0KDQntCh0JDQkgor0JvQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQkAor0JvQo9Ca0JjQiyDQlNCg0JDQk9Ce0IjQlQor0JvQo9Ca0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JvQo9Ca0JjQiyDQlNCj0KjQkNCd0JrQkAor0JvQo9Ca0JjQiyDQlNCj0KjQkNCdCivQm9Cj0JrQmNCLINCU0KPQqNCQ0J0KK9Cb0KPQmtCY0Ist0KTQo9CU0JXQoNCV0KAg0IjQntCb0JDQndCa0JAKK9Cb0KPQmtCY0Isg0JPQoNCe0JfQlNCQCivQm9Cj0JrQmNCLINCT0KDQo9CI0JjQptCQINCU0JjQn9CbINCY0J3Qkwor0JvQo9Ca0JjQiyDQmNCb0JjQiNCQCivQm9Cj0JrQmNCLINCY0JvQmNCI0JAKK9Cb0KPQmtCY0Isg0JjQm9CY0IjQkAor0JvQo9Ca0JjQiyDQmNCS0JDQnQor0JvQo9Ca0JjQiyDQmNCS0JDQnQor0JvQo9Ca0JjQiyDQmNCS0JDQnQor0JvQo9Ca0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQm9Cj0JrQmNCLINCI0JDQodCc0JjQndCQCivQm9Cj0JrQmNCLINCI0JXQm9CV0J3QkAor0JvQo9Ca0JjQiyDQiNCV0JvQldCd0JAKK9Cb0KPQmtCY0Isg0IjQldCb0JXQndCQCivQm9Cj0JrQmNCLINCI0JXQm9CY0KbQkAor0JvQo9Ca0JjQiyDQiNCe0JLQkNCd0JrQkAor0JvQo9Ca0JjQiyDQiNCe0JLQkNCdCivQm9Cj0JrQmNCLINCI0J7QktCQ0J0KK9Cb0KPQmtCY0Isg0IjQntCS0JDQnQor0JvQo9Ca0JjQiyDQiNCe0JLQngor0JvQo9Ca0JjQiyDQiNCe0JLQngor0JvQo9Ca0JjQiyDQiNCj0JvQmtCQCivQm9Cj0JrQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cb0KPQmtCY0Isg0JrQntCh0KLQkAor0JvQo9Ca0JjQiyDQmtCe0KHQotCQCivQm9Cj0JrQmNCLINCb0JDQl9CQ0KAKK9Cb0KPQmtCY0Isg0InQmNCJ0JDQndCQCivQm9Cj0JrQmNCLINCJ0KPQkdCQCivQm9Cj0JrQmNCLINCJ0KPQkdCY0KjQkCDQlNCgINCb0JXQmtCQ0KAKK9Cb0KPQmtCY0Isg0InQo9CR0JjQptCQCivQm9Cj0JrQmNCLINCb0IjQo9CR0J7QnNCY0KAKK9Cb0KPQmtCY0Isg0JzQkNCg0JAKK9Cb0KPQmtCY0Isg0JzQkNCg0JjQiNCQCivQm9Cj0JrQmNCLINCc0JDQoNCa0J4KK9Cb0KPQmtCY0Isg0JzQkNCg0JrQngor0JvQo9Ca0JjQiyDQnNCQ0KDQmtCeCivQm9Cj0JrQmNCLINCc0JjQi9CQCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JUKK9Cb0KPQmtCY0Isg0JzQmNCb0JjQiNCQCivQm9Cj0JrQmNCLINCc0JjQm9Ca0JAKK9Cb0KPQmtCY0Isg0JzQmNCb0J7QqAor0JvQo9Ca0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ca0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ca0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQo9Ca0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQo9Ca0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQo9Ca0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9Cj0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0KPQmtCY0Isg0JzQntCc0KfQmNCb0J4KK9Cb0KPQmtCY0Isg0J3QldCS0JXQndCQCivQm9Cj0JrQmNCLINCd0JjQmtCe0JvQkAor0JvQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9Cb0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9Cj0JrQmNCLINCd0J7QktCa0JAKK9Cb0KPQmtCY0Isg0J7QkdCg0JDQlAor0JvQo9Ca0JjQiyDQntCb0JPQkAor0JvQo9Ca0JjQiyDQntCb0JPQmNCm0JAKK9Cb0KPQmtCY0Isg0J/QldCi0JDQoAor0JvQo9Ca0JjQiyDQn9CV0KLQkNCgCivQm9Cj0JrQmNCLINCf0JXQotCQ0KAKK9Cb0KPQmtCY0Isg0J/QldCi0JDQoAor0JvQo9Ca0JjQiyDQoNCQ0JTQntCh0JDQkgor0JvQo9Ca0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQm9Cj0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQm9Cj0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQm9Cj0JrQmNCLINCg0JDQiNCa0J4KK9Cb0KPQmtCY0Isg0KDQmNCh0KLQngor0JvQo9Ca0JjQiyDQoNCj0JbQkAor0JvQo9Ca0JjQiyDQoNCj0JbQkAor0JvQo9Ca0JjQiyDQodCQ0JLQmtCQCivQm9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0Isg0KHQntCk0JjQiNCQCivQm9Cj0JrQmNCLINCh0J7QpNCY0IjQkAor0JvQo9Ca0JjQiyDQodCi0JDQndCQCivQm9Cj0JrQmNCLINCh0KLQkNCd0JjQqNCQCivQm9Cj0JrQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JvQo9Ca0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQm9Cj0JrQmNCLLdCh0KLQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cb0KPQmtCY0Isg0KHQotCV0JLQngor0JvQo9Ca0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQm9Cj0JrQmNCLINCh0KLQntCI0JDQnQor0JvQo9Ca0JjQiyDQodCS0JXQotCb0JDQndCQCivQm9Cj0JrQmNCLINCi0JDQnNCQ0KDQkAor0JvQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Cj0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0KPQmtCY0Isg0JLQldCb0JjQkdCe0KAg0JTQoAor0JvQo9Ca0JjQiyDQktCV0JvQmNCR0J7QoCDQlNCgCivQm9Cj0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQm9Cj0JrQmNCLINCS0JXQidCa0J4KK9Cb0KPQmtCY0Isg0JLQldCg0JAKK9Cb0KPQmtCY0Isg0JLQldCg0JjQptCQCivQm9Cj0JrQmNCLINCS0JXQoNCe0J3QkAor0JvQo9Ca0JjQiyDQktCV0KDQntCd0JjQmtCQCivQm9Cj0JrQmNCLINCS0JXQodCV0JvQmNCdCivQm9Cj0JrQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cb0KPQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cb0KPQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQo9Ca0JjQiyDQktCe0IjQmNCdCivQm9Cj0JrQmNCLINCS0KPQmtCe0KHQkNCSCivQm9Cj0JrQmNCLINCS0KPQmgor0JvQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQm9Cj0JrQmNCLINCX0J7QoNCQ0J0KK9Cb0KPQmtCY0Isg0JfQntCg0JDQnQor0JvQo9Ca0JjQiyDQl9Ce0KDQmtCQCivQm9Cj0JrQniDQqNCQ0J3QlNCe0KAKK9Cb0KPQmtCeINCQ0J3QlNCg0JDQqAor0JvQo9Ca0J7QktCQ0KYg0JDQndCY0KbQkAor0JvQo9Ca0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQm9Cj0JrQntCS0JDQpiDQnNCY0JvQkNCdCivQm9Cj0JrQntCS0JDQpiDQnNCY0JvQntCS0JDQnQor0JvQo9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JvQo9Ca0J7QktCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9Cj0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ca0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cb0KPQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JvQo9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0KPQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQm9CY0Isg0JDQndCQCivQm9Cj0JvQmNCLINCQ0J3QotCj0J0KK9Cb0KPQm9CY0Isg0KTQoNCQ0IrQkAor0JvQo9Cb0JjQiyDQmNCS0JDQnSDQnNCgCivQm9Cj0JvQmNCLINCY0JLQkNCdCivQm9Cj0JvQmNCLINCc0JDQiNCQCivQm9Cj0JvQmNCLINCc0JDQoNCa0J4KK9Cb0KPQndCTINCU0KDQkNCT0JDQnQor0JvQo9Cd0JMg0KHQotCV0JLQkNCdCivQm9Cj0J3Qk9CY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cb0KPQndCT0KPQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cb0KPQn9Co0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQm9Cj0J/QqNCY0Isg0JrQntCg0J3QldCbCivQm9Cj0J/QqNCY0Isg0JrQntCg0J3QldCbCivQm9Cj0J/QqNCe0KAg0KHQotCV0JvQkAor0JvQo9Cf0JjQndCh0JrQmCDQndCY0J3QntCh0JvQkNCSCivQm9Cj0J/QmNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQn9Cj0KYg0IjQldCb0JjQptCQCivQm9Cj0J/Qo9Cg0J7QkiDQm9CQ0JfQkAor0JvQo9Cf0KPQoNCe0JLQmNCdINCd0JXQktCV0J3QmtCQCivQm9Cj0KLQmtCY0Isg0JbQmNCS0JrQkAor0JvQo9Ci0JrQmNCLINCC0J7QoNCC0JUKK9Cb0KPQotCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JvQo9Ci0JrQmNCLINCb0JDQl9CQ0KAKK9Cb0KPQotCa0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ci0JrQmNCLINCh0KLQkNCd0JrQngor0JvQo9Ci0JrQmNCLINCh0KLQldCS0JDQnQor0JvQo9Ci0JrQmNCLINCX0JDQk9Ce0KDQmtCQCivQm9Cj0KLQoNCe0JIg0J3QkNCU0JAKK9Cb0KPQktCg0JDQlNCe0JIg0JHQm9CQ0JPQntCI0JUKK9Cc0JDQp9CV0Jog0IjQntCS0JDQnQor0JzQkNCn0JrQmNCLINCR0KDQkNCd0JrQngor0JzQkNCn0JrQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KfQmtCY0Isg0IjQkNCd0JrQngor0JzQkNCn0JrQmNCLINCI0JDQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQp9Ca0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCn0JrQmNCLINCc0JjQm9CV0JLQmtCQCivQnNCQ0KfQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JDQp9Ca0JjQiyDQnNCY0InQmtCQCivQnNCQ0KfQmtCY0Isg0JzQmNCb0J7QqAor0JzQkNCn0JrQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KfQmtCY0Isg0J3QldCd0JDQlAor0JzQkNCn0JrQmNCLINCf0JXQotCg0JAKK9Cc0JDQp9Ca0JjQiyDQodCi0JXQktCeCivQnNCQ0KfQmtCY0Isg0JLQkNCh0J4KK9Cc0JDQp9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQkNCn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KfQmtCe0JLQmNCLINCi0J7QnNCQCivQnNCQ0KfQo9Ca0JDQoiDQk9Cg0JPQngor0JzQkNCn0JLQkNCd0JjQnSDQkdCe0IjQkNCd0JAg0JTQoCDQm9CV0JrQkNCgCivQnNCQ0KjQkCDQldCg0JbQldCR0JXQogor0JzQkNCo0JAg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQqNCQINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0JzQkNCo0JDQndCe0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQnNCQ0KjQkNCd0J7QktCY0Isg0JHQm9CQ0JbQngor0JzQkNCo0JDQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCQ0KjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0JzQkNCo0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCo0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCo0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQqNCY0Isg0JbQkNCg0JrQngor0JzQkNCo0JjQiyDQltCY0JLQkNCdCivQnNCQ0KjQmNCLINCR0J7QoNCY0KEKK9Cc0JDQqNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KjQmNCLINCU0KDQkNCT0JjQiwor0JzQkNCo0JjQiyDQmNCo0KLQktCQ0J0KK9Cc0JDQqNCY0Isg0JjQnNCg0JUKK9Cc0JDQqNCY0Isg0JjQktCQ0J0KK9Cc0JDQqNCY0Isg0IjQntCS0JDQnQor0JzQkNCo0JjQiyDQmtCQ0KDQntCJCivQnNCQ0KjQmNCLINCc0JDQndCU0JAKK9Cc0JDQqNCY0Isg0JzQmNCb0JDQnSDQlNCgCivQnNCQ0KjQmNCLINCc0JjQm9CY0J3QmtCeCivQnNCQ0KjQmNCLINCc0JjQm9CY0JLQntCICivQnNCQ0KjQmNCLINCc0JjQidCQ0J3QkAor0JzQkNCo0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JDQqNCY0Isg0JzQmNCg0JAKK9Cc0JDQqNCY0Isg0JzQmNCg0JrQngor0JzQkNCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KjQmNCLINCd0JDQlNCQCivQnNCQ0KjQmNCLINCf0JXQotCQ0KAKK9Cc0JDQqNCY0Isg0KDQldCo0JDQlAor0JzQkNCo0JjQiyDQodCV0J3QmtCQCivQnNCQ0KjQmNCLINCh0JXQndCa0JAKK9Cc0JDQqNCY0Isg0KHQmNCc0JXQntCdCivQnNCQ0KjQmNCLINCh0KLQldCS0JDQnQor0JzQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0KjQmNCLINCS0JXQoNCQCivQnNCQ0KjQmNCLINCS0JjQmtCi0J7QoAor0JzQkNCo0JjQiyDQktCj0KfQldCi0JAKK9Cc0JDQqNCY0KDQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCo0JjQoNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCo0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JDQqNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCo0KLQoNCQ0J/QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KjQo9Cb0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cc0JDQqNCj0JvQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQkNCL0JDQqCDQodCi0JXQktCQ0J0KK9Cc0JDQi9CQ0Kgg0JLQkNCh0JAKK9Cc0JDQi9CQ0KjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0IvQkNCo0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQi9CQ0KjQldCSINCU0JDQndCY0JvQngor0JzQkNCL0JDQqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQi9CV0KjQmNCLINCI0J7QodCY0J8KK9Cc0JDQi9CV0KjQmNCLINCc0JjQpdCQ0JjQm9CeCivQnNCQ0IvQmtCeINCI0J7QltCV0KQKK9Cc0JDQi9Ca0J4g0JLQmNCb0JzQntCoCivQnNCQ0JbQmNCLINCC0J7QoNCC0JUKK9Cc0JDQltCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQltCY0Isg0JzQmNCg0JAKK9Cc0JDQltCY0Isg0J/QldCi0JDQoAor0JzQkNCW0JjQiyDQoNCj0JbQkAor0JzQkNCW0JjQkdCg0JDQlNCQINCS0JDQodCeCivQnNCQ0JbQmNCR0KDQkNCU0JAt0JLQo9CT0KDQmNCdINCc0JDQoNCi0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0ILQkNCgINCR0J7QltCY0JTQkNCgCivQnNCQ0ILQkNCgINCV0KDQltCV0JHQldCiCivQnNCQ0ILQkNCgINCI0J7QktCQ0J0KK9Cc0JDQgtCQ0KAg0IjQntCS0JDQnQor0JzQkNCC0JDQoCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCQ0ILQkNCgINCh0KLQldCS0JDQnQor0JzQkNCC0JDQoNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0ILQkNCg0JXQktCY0Isg0JjQktCQ0J0KK9Cc0JDQgtCQ0KDQldCS0JjQiyDQmtCe0KHQotCQCivQnNCQ0ILQkNCg0JXQktCY0Isg0JzQmNCb0JUKK9Cc0JDQgtCQ0KDQldCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0ILQkNCg0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JDQgtCQ0KDQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQgtCQ0KDQmCDQkNCd0JTQntCgCivQnNCQ0ILQmNCh0KLQntCg0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KbQkNCaINCf0JDQktCb0JUKK9Cc0JDQptCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCm0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQptCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQptCQ0J3QntCS0JjQiyDQiNCV0JLQoNCe0KHQmNCc0JAKK9Cc0JDQptCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KbQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCm0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9Cc0JDQptCV0JTQntCd0JjQiyDQkdCe0JPQlNCQ0J0g0JTQoAor0JzQkNCm0JXQlNCe0J3QmNCLINCT0J7QoNCU0JDQndCQCivQnNCQ0KbQldCU0J7QndCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQkNCm0JXQlNCe0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQptCa0J4g0ILQo9Cg0JAKK9Cc0JDQptCa0J4g0JDQndCQCivQnNCQ0KbQndCV0KAg0JTQkNCS0J7QoAor0JzQkNCm0KPQoNCQINCn0JXQlNCeCivQnNCQ0KbQo9Cg0JAg0ILQntCg0ILQlQor0JzQkNCm0KPQoNCQINCU0J7QkdCg0JjQndCa0JAKK9Cc0JDQptCj0KDQkCDQlNCg0JDQk9CeCivQnNCQ0KbQo9Cg0JAg0JvQmNCU0JjQiNCQCivQnNCQ0KbQo9Cg0JAg0JzQmNCb0J7QqAor0JzQkNCm0KPQoNCQINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KbQo9Cg0JAg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCm0KPQoNCQINCf0JXQotCQ0KAKK9Cc0JDQptCj0KDQkCDQotCV0J7QlNCe0KAKK9Cc0JDQptCj0KIg0JzQmNCb0J7QqAor0JzQkNCP0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0I/QkNCgINCc0JjQm9Ce0KDQkNCUCivQnNCQ0I/QkNCgINCc0JjQoNCa0J4KK9Cc0JDQj9CQ0KDQkNCmINCn0JXQlNCe0JzQmNCgCivQnNCQ0I/QkNCg0JDQpiDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCP0JDQoNCV0JIg0JTQo9Co0JDQnQor0JzQkNCP0JDQoNCV0JIg0JzQmNCb0JDQndCa0JAKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQkNCP0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQkdCY0KHQldCg0JrQkAor0JzQkNCP0JDQoNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQj9CQ0KDQldCS0JjQiyDQodCQ0JLQkAor0JzQkNCP0JPQkNCJINCc0JjQm9CV0J3QmtCeCivQnNCQ0I/Qk9CQ0Ikg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCP0J7QktCh0JrQmCDQodCQ0J3QlNCVCivQnNCQ0JTQkNCn0Jgg0JzQkNCg0JjQiNCQCivQnNCQ0JTQkNCm0JrQmCDQkNCd0KLQkNCbCivQnNCQ0JTQkNCm0JrQmCDQiNCQ0J0KK9Cc0JDQlNCQ0KbQmtCYINCI0J7QodCY0J8KK9Cc0JDQlNCQ0KbQmtCYINCa0JDQoNCb0J4KK9Cc0JDQlNCQ0KDQkNChINCQ0J3QlNCg0JDQqAor0JzQkNCU0JDQoNCQ0KEg0JDQoNCf0JDQlAor0JzQkNCU0JDQoNCQ0KEg0JzQkNCL0JDQqAor0JzQkNCU0JDQoNCQ0KEg0JzQkNCg0JjQiNCQCivQnNCQ0JTQkNCg0JDQoSDQoNCe0JfQkNCb0JjQiNCQCivQnNCQ0JTQmCDQgtCj0KDQmNCm0JAKK9Cc0JDQlNCYINCI0J7QltCV0KQKK9Cc0JDQlNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JTQmNCLINCc0JDQoNCY0IjQkNCdCivQnNCQ0JTQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCQ0JTQntCd0JjQiyDQodCi0IjQldCf0JDQnQor0JzQkNCU0J7QkiDQmNCb0JjQiNCQCivQnNCQ0JPQkNCg0JDQqNCV0JLQmNCLINCQ0J3QkNCc0JDQoNCY0IjQkAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQnNCQ0JPQkNCg0JDQqNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQk9CQ0KDQkNCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JDQk9CU0JAg0JrQm9CQ0KDQkAor0JzQkNCT0JTQkNCb0JXQndCY0Isg0JLQldCg0IjQntCSCivQnNCQ0JPQlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCT0JTQoyDQiNCe0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JPQlNCjINCb0JjQkAor0JzQkNCT0JTQoyDQoNCe0JTQmNCa0JAg0JvQldCa0JDQoAor0JzQkNCT0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQk9Cb0JDQiNCb0JjQiyDQodCQ0JHQoNCY0IjQkAor0JzQkNCT0JvQmNCLINCI0J7QktCQ0J0KK9Cc0JDQk9Cb0JjQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCQ0JPQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQk9Cb0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JPQm9Ce0JIg0JTQo9Co0JDQnQor0JzQkNCT0JvQntCS0KHQmtCYINCU0KPQqNCa0J4KK9Cc0JDQk9Cb0J7QktCh0JrQmCDQiNCe0KHQmNCfCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0JzQkNCg0JPQmNCi0JAKK9Cc0JDQk9Cb0J7QktCh0JrQmCDQnNCY0JvQmNCm0JAKK9Cc0JDQk9Cb0J7QktCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0KHQotCV0JLQkNCdCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0KHQotCV0JLQkNCdCivQnNCQ0JPQntCnINCk0KDQkNCK0JAKK9Cc0JDQk9Ce0Kcg0IjQo9Cb0JjQiNCQ0J0KK9Cc0JDQk9Ce0Kcg0JzQmNCg0J7Qigor0JzQkNCT0J7QqCDQqNCQ0J3QlNCe0KAKK9Cc0JDQk9Ce0Kgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQk9Ce0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQkNCT0J7QqCDQnNCQ0KDQmNCI0JAKK9Cc0JDQk9Cj0KDQkCDQotCe0JzQkAor0JzQkNCl0ILQmNCaINCV0JvQldCd0JAKK9Cc0JDQpdCQ0KfQmCDQiNCQ0J3QntCoCivQnNCQ0KXQnNCj0KLQmCDQnNCQ0KXQnNCj0KIKK9Cc0JDQpdCc0KPQotCYINCX0KPQl9CQ0J3QkAor0JzQkNCl0J7QktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQmNCm0KXQldCgINCC0J7QoNCC0JUKK9Cc0JDQiNCo0JDQmCDQpNCV0KDQldCd0KYKK9Cc0JDQiNCo0JDQmCDQmtCb0JDQoNCQCivQnNCQ0IjQlNCQ0J3Qp9CV0JLQmNCLINCc0JjQotCQ0KAKK9Cc0JDQiNCU0JDQndCQ0KYg0JTQoNCQ0JPQmNCK0JAKK9Cc0JDQiNCU0JDQndCP0JjQiyDQiNCe0JfQngor0JzQkNCI0JTQkNCd0I/QmNCLINCf0JXQoNCY0KbQkAor0JzQkNCI0JTQkNCd0I/QmNCLINCf0JXQotCQ0KAKK9Cc0JDQiNCU0JXQktCQ0KYg0JbQmNCS0JrQniDQlNCgCivQnNCQ0IjQlNCV0JLQkNCmINCg0JDQlNCe0JLQkNCdCivQnNCQ0IjQldCgINCo0JDQndCU0J7QoAor0JzQkNCI0JXQoCDQldCU0KPQkNCg0JQKK9Cc0JDQiNCV0KAg0IjQkNCd0J7QqAor0JzQkNCI0JXQoCDQiNCe0JLQkNCdCivQnNCQ0IjQldCgINCa0JDQotCY0KbQkAor0JzQkNCI0JXQoCDQnNCQ0KDQmNCI0JAKK9Cc0JDQiNCV0KAg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQldCgINCf0JXQotCQ0KAKK9Cc0JDQiNCV0KAg0KHQotCV0JLQkNCdCivQnNCQ0IjQldCg0KHQmtCYINCo0KLQldCk0JDQnQor0JzQkNCI0JXQotCY0Isg0JDQndCi0J7QnQor0JzQkNCI0JXQotCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0IjQldCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0IjQmNCLINCS0JXQodCd0JAKK9Cc0JDQiNCY0Isg0JfQntCg0JDQnQor0JzQkNCI0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0IjQmNCdINCV0KTQmNCc0JjQiNCQCivQnNCQ0IjQmNCdINCc0JjQntCU0KDQkNCTCivQnNCQ0IjQmNCd0KHQmtCYINCX0J7QoNCQCivQnNCQ0IjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JDQiNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQiNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQiNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQiNCa0JjQiyDQmNCb0JjQiNCQCivQnNCQ0IjQmtCY0Isg0JjQktCQ0J3QmtCQCivQnNCQ0IjQmtCY0Isg0IjQntCm0JAKK9Cc0JDQiNCa0JjQiyDQnNCY0JvQkNCdCivQnNCQ0IjQmtCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQiNCa0JjQiyDQnNCY0JvQkNCdCivQnNCQ0IjQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCI0JrQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCI0JrQmNCLINCe0JHQoNCQ0JQKK9Cc0JDQiNCa0JjQiyDQoNCQ0JTQlQor0JzQkNCI0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0IjQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQkNCI0JrQmNCLINCS0JXQidCa0J4KK9Cc0JDQiNCa0JjQiyDQktCb0JDQlNCeCivQnNCQ0IjQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JDQiNCa0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0IjQmtCh0J3QldCgINCC0J7QoNCC0JUKK9Cc0JDQiNCe0KAg0ILQo9Cg0JAKK9Cc0JDQiNCe0KAg0JDQndCQCivQnNCQ0IjQntCgINCk0JXQoNCV0J3QpiDQlNCgINCY0J3Qkwor0JzQkNCI0J7QoCDQiNCe0JbQldCkCivQnNCQ0IjQntCgINCI0J7QltCV0KQKK9Cc0JDQiNCe0KAg0JrQkNCg0J7QiQor0JzQkNCI0J7QoCDQmtCQ0KDQntCJCivQnNCQ0IjQntCgINCc0JDQoNCT0JjQotCQCivQnNCQ0IjQntCgINCc0JDQoNCY0IjQkAor0JzQkNCI0J7QoCDQnNCQ0KDQmNCI0JAKK9Cc0JDQiNCe0KAg0J3QkNCd0JTQntCgCivQnNCQ0IjQntCgINCh0KLQldCS0JDQnQor0JzQkNCI0J7QoNCn0JjQmiDQpNCg0JDQitCQCivQnNCQ0IjQntCg0J7QqCDQkdCV0JvQkCDQlNCgCivQnNCQ0IjQntCg0J7QqCDQlNCV0JbQlQor0JzQkNCI0J7QoNCe0Kgg0IjQntCS0JDQnQor0JzQkNCI0J7QoNCe0Kgg0JvQkNCI0J7QqAor0JzQkNCI0J7QoNCe0Kgg0KHQotCV0JLQkNCdCivQnNCQ0IjQntCg0J7QqCDQotCV0KDQldCX0JjQiNCQCivQnNCQ0IjQntCg0J7QqNCYLdCU0JXQo9Cg0JAg0JzQkNCg0JjQiNCQCivQnNCQ0IjQntCg0J7QqNCYINCY0JzQoNCVCivQnNCQ0IjQodCa0Jgg0IjQldCb0JjQptCQCivQnNCQ0IjQodCa0Jgg0IjQntCS0JDQnQor0JzQkNCI0KHQmtCYINCc0JjQm9CQ0J0KK9Cc0JDQiNCh0JrQmCDQndCY0JrQntCb0JAKK9Cc0JDQiNCh0JrQmCDQodCb0JDQktCa0J4KK9Cc0JDQiNCh0JrQmCDQktCV0KHQndCQCivQnNCQ0IjQodCi0J7QoNCQ0KYg0JTQoNCQ0JPQkNCdCivQnNCQ0IjQodCi0J7QoNCQ0KYg0InQo9CR0J7QnNCY0KAKK9Cc0JDQiNCh0KLQntCg0JDQpiDQn9CV0KLQkNCgCivQnNCQ0IjQodCi0J7QoNCQ0KYg0KHQkNCS0J4KK9Cc0JDQiNCh0KLQntCg0J7QkiDQidCj0JHQmNCo0JAKK9Cc0JDQiNCh0KLQntCg0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JDQndCC0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JDQndCa0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0JDQoNCa0J4KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiy3QmtCe0KHQotCY0Isg0JLQldCh0J3QkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQndCV0ILQngor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCh0JDQktCa0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KHQmNCc0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCi0JXQntCU0J7QoAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQo9Cg0J7QqAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQktCQ0KHQkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQnNCQ0IjQotCQ0J0g0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQiNCi0JDQnSDQmtCQ0KDQm9CeCivQnNCQ0IjQotCQ0J0g0JzQmNCl0JDQiNCb0J4KK9Cc0JDQiNCi0JDQnSDQn9CQ0JLQm9CVCivQnNCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cc0JDQmiDQiNCe0KHQmNCf0JAKK9Cc0JDQmiDQntCh0JrQkNCgCivQnNCQ0JrQqNCQINCQ0J3QkAor0JzQkNCa0KjQkCDQiNCe0JLQkNCdCivQnNCQ0JrQqNCQINCa0JDQoNCb0J4KK9Cc0JDQmtCo0JAg0J/QldCi0JDQoAor0JzQkNCa0JDQiNCYINCI0JDQmtCe0JIKK9Cc0JDQmtCQ0IjQmCDQiNCQ0J3QmtCeCivQnNCQ0JrQkNCdINCI0JDQnQor0JzQkNCa0JDQitCY0Isg0JHQntCI0JDQnQor0JzQkNCa0JDQitCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JDQmtCQ0KDQmNCLINCd0JDQlNCQCivQnNCQ0JrQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQmtCQ0KDQmNCLINCS0JjQlNCQCivQnNCQ0JrQkNCg0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0JrQkNCg0JjQnSDQltCQ0KDQmtCeCivQnNCQ0JrQkNCg0JjQnSDQl9CS0J7QndCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCa0JjQqCDQoNCj0JbQkAor0JzQkNCa0JjQqCDQktCb0JDQotCa0J4KK9Cc0JDQmtCY0KLQkNCdINCI0J7QktCQ0J0KK9Cc0JDQmtCY0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0JrQmNCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0JrQmNCS0JjQiyDQodCQ0JLQkAor0JzQkNCa0JjQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCQ0JrQiNCYINCX0JTQldCd0JrQkAor0JzQkNCa0JvQldCd0J7QktCY0Isg0KDQkNCU0JAKK9Cc0JDQmtCJ0JXQndCe0JLQmNCLINCh0KDQkdCe0InQo9CRCivQnNCQ0JrQidCV0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0JrQniDQqNCQ0J3QlNCe0KAKK9Cc0JDQmtCeINCk0KDQkNCK0JAKK9Cc0JDQmtCeINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQmtCeINCc0JjQm9CV0J3QkAor0JzQkNCa0J7QpSDQkNCd0KLQntCdCivQnNCQ0JrQoNCQINCQ0J3QkAor0JzQkNCa0KDQkCDQmNCS0JDQnQor0JzQkNCa0KDQkCDQiNCe0KHQmNCfCivQnNCQ0JrQoNCQINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JDQmtCg0JjQnSDQnNCQ0KDQk9CY0KLQkCDQlNCgCivQnNCQ0JrQoNCY0J0g0KDQo9CW0JjQptCQCivQnNCQ0JrQodCY0Isg0JbQmNCS0JDQndCQCivQnNCQ0JrQodCY0Isg0ILQntCg0ILQlQor0JzQkNCa0KHQmNCLINCR0JjQidCQ0J3QkAor0JzQkNCa0KHQmNCLINCR0J7QqNCa0J4KK9Cc0JDQmtCh0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCa0KHQmNCLINCU0JDQndCY0KbQkAor0JzQkNCa0KHQmNCLINCU0JXQiNCQ0J0KK9Cc0JDQmtCh0JjQiyDQlNCc0JjQotCQ0KAKK9Cc0JDQmtCh0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cc0JDQmtCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQmtCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQmtCh0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCQ0JrQodCY0Isg0JTQo9Co0JDQnQor0JzQkNCa0KHQmNCLINCV0JTQmNCiCivQnNCQ0JrQodCY0Isg0JPQkNCS0KDQkAor0JzQkNCa0KHQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCa0KHQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCa0KHQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0JrQodCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCLINCI0J7QktCQ0J0KK9Cc0JDQmtCh0JjQiyDQm9Cj0JrQkAor0JzQkNCa0KHQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCa0KHQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0JrQodCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JrQodCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCa0KHQmNCLINCg0JDQotCa0J4KK9Cc0JDQmtCh0JjQiyDQodCQ0JLQkAor0JzQkNCa0KHQmNCLINCh0JvQkNCS0JrQngor0JzQkNCa0KHQmNCLINCS0J7QiNCY0J0KK9Cc0JDQmtCh0JjQiyDQl9Ce0KDQmtCQCivQnNCQ0JrQodCY0JzQp9CV0JIg0JDQndCC0JXQm9Ca0J4KK9Cc0JDQmtCh0JjQnNCn0JXQkiDQodCi0JXQktCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0JrQodCY0JzQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JrQodCY0JzQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JIg0JLQldCg0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0ILQo9Cg0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCd0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JHQntCo0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0JDQoNCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0g0JzQoCDQntCV0KYKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCI0JDQmtCe0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCb0JDQl9CQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9CV0J3QmtCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCb0KPQmtCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQndCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9CY0J3QkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQoNCQ0JTQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCd0ILQldCbCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQoNCY0KHQotCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCQ0JLQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQkNCS0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KDQldCL0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQotCY0J3QmtCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQktCV0JvQmNCn0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCX0JvQkNCi0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQodCa0Jgg0ILQntCg0ILQlQor0JzQkNCa0KHQmNCc0J7QktCh0JrQmCDQktCe0IjQngor0JzQkNCa0KHQmNCdINCh0JvQkNCS0JrQkAor0JzQkNCa0KPQpSDQnNCY0KXQkNCY0JvQngor0JzQkNCa0KPQpSDQnNCY0KXQkNCI0JvQngor0JzQkNCa0KPQpSDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQp9CY0Isg0JDQndCU0KDQmNCI0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JvQp9CY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0JDQm9Cn0JjQiyDQiNCe0JbQldCkCivQnNCQ0JvQp9CY0Isg0IjQo9Cb0JrQkAor0JzQkNCb0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCb0JDQqNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCQ0JvQkNCm0JrQniDQiNCj0JvQmNCI0JDQnQor0JzQkNCb0JDQptCa0J4g0InQo9CR0JjQptCQCivQnNCQ0JvQkNCV0J3QmNCLINCU0KDQkNCT0JDQnQor0JzQkNCb0JDQktCg0JDQl9CY0Isg0IjQntCS0JDQnQor0JzQkNCb0JHQkNCo0JAg0JHQntCg0JjQodCb0JDQktCQCivQnNCQ0JvQkdCQ0KjQkCDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JvQkdCQ0KjQkCDQlNCj0KjQkNCd0JrQkAor0JzQkNCb0JHQkNCo0JAg0IjQldCb0JrQkAor0JzQkNCb0JHQkNCo0JAg0JzQmNCb0JDQnQor0JzQkNCb0JHQkNCo0JAg0JzQmNCb0JUKK9Cc0JDQm9CR0JDQqNCQINCS0JXQidCa0J4KK9Cc0JDQm9CR0JDQqNCQINCX0JTQoNCQ0JLQmtCeCivQnNCQ0JvQkdCQ0KjQmNCLINCR0J7QqNCa0J4KK9Cc0JDQm9CR0JDQqNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JvQkdCQ0KjQmNCLINCI0JDQndCa0J4KK9Cc0JDQm9CR0JDQqNCY0Isg0JzQmNCL0J4KK9Cc0JDQm9CR0JDQqNCY0Isg0KDQo9CW0JAKK9Cc0JDQm9CR0JDQqNCa0Jgg0JTQo9Co0JDQnQor0JzQkNCb0JHQkNCo0JrQmC3QiNCQ0J3QmtCe0JIg0JDQndCC0JAKK9Cc0JDQm9CR0JDQqNCa0Jgg0JzQkNCg0JjQiNCQCivQnNCQ0JvQkdCQ0KjQmtCYINCc0JjQm9CY0J3QmtCQCivQnNCQ0JvQldCoINCQ0J3QgtCV0JvQmtCQCivQnNCQ0JvQldCoINCR0J7QoNCQCivQnNCQ0JvQldCoINCU0JzQmNCi0JDQoAor0JzQkNCb0JXQqCDQiNCV0JvQldCd0JAKK9Cc0JDQm9CV0Kgg0IjQntCS0JDQndCa0JAKK9Cc0JDQm9CV0Kgg0JrQntCh0KLQkAor0JzQkNCb0JXQqCDQidCY0InQkNCd0JAKK9Cc0JDQm9CV0Kgg0JzQkNCg0JjQndCa0J4KK9Cc0JDQm9CV0Kgg0J3QntCS0JDQmgor0JzQkNCb0JXQqCDQoNCQ0JTQntCc0JjQoAor0JzQkNCb0JXQqCDQoNCj0JbQmNCm0JAKK9Cc0JDQm9CV0Kgg0KHQotCQ0J3QkAor0JzQkNCb0JXQqCDQodCS0JXQotCb0JDQndCQCivQnNCQ0JvQldCoINCS0JDQodCeCivQnNCQ0JvQldCoINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQm9CV0Kgg0JfQntCg0JAKK9Cc0JDQm9CV0KjQldCSINCW0JjQktCa0J4KK9Cc0JDQm9CV0KjQldCSINCW0JjQktCe0IjQmNCdCivQnNCQ0JvQldCo0JXQkiDQgtCe0KDQgtCVCivQnNCQ0JvQldCo0JXQkiDQkdCe0KjQmtCeCivQnNCQ0JvQldCo0JXQkiDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0JvQldCo0JXQkiDQkdCg0JDQndCa0J4KK9Cc0JDQm9CV0KjQldCSINCU0JDQnNCI0JDQnQor0JzQkNCb0JXQqNCV0JIg0JTQkNCc0IjQkNCdCivQnNCQ0JvQldCo0JXQkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JDQm9CV0KjQldCSINCU0KDQkNCT0JDQndCQCivQnNCQ0JvQldCo0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JvQldCo0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JvQldCo0JXQkiDQlNCj0KjQkNCdCivQnNCQ0JvQldCo0JXQkiDQiNCV0JvQmNCm0JAKK9Cc0JDQm9CV0KjQldCSINCI0J7QktCQ0J0KK9Cc0JDQm9CV0KjQldCSINCa0J7QodCQ0J3QkAor0JzQkNCb0JXQqNCV0JIg0JvQkNCX0JDQoAor0JzQkNCb0JXQqNCV0JIg0InQo9CR0JjQptCQCivQnNCQ0JvQldCo0JXQkiDQidCj0JHQmNCd0JrQngor0JzQkNCb0JXQqNCV0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JDQm9CV0KjQldCSINCb0KPQmtCQCivQnNCQ0JvQldCo0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JDQm9CV0KjQldCSINCc0JjQm9CV0J3QmtCeCivQnNCQ0JvQldCo0JXQkiDQnNCY0JvQldCS0JAKK9Cc0JDQm9CV0KjQldCSINCc0JjQidCQCivQnNCQ0JvQldCo0JXQkiDQnNCY0JvQntCoCivQnNCQ0JvQldCo0JXQkiDQnNCY0J7QlNCg0JDQkwor0JzQkNCb0JXQqNCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CV0KjQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KjQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KjQldCSINCf0JXQotCQ0KAKK9Cc0JDQm9CV0KjQldCSINCf0JXQotCQ0KAKK9Cc0JDQm9CV0KjQldCSINCf0KDQldCU0KDQkNCTCivQnNCQ0JvQldCo0JXQkiDQn9Cg0JXQlNCg0JDQkwor0JzQkNCb0JXQqNCV0JIg0J/QoNCY0JfQoNCV0J3QmtCQCivQnNCQ0JvQldCo0JXQkiDQodCb0JDQktCa0J4KK9Cc0JDQm9CV0KjQldCSINCi0JDQnNCQ0KDQkAor0JzQkNCb0JXQqNCV0JIg0JLQldCg0JAKK9Cc0JDQm9CV0KjQldCSINCS0JjQotCe0JzQmNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0JbQmNCS0JDQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCW0JjQktCa0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQgtCj0JrQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQlNCj0KjQmtCeCivQnNCQ0JvQldCo0JXQktCY0Isg0JPQntCI0JrQngor0JzQkNCb0JXQqNCV0JLQmNCLINCY0JLQkNCdCivQnNCQ0JvQldCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQkNCg0JrQngor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQm9CVCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQnNCQ0JvQldCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCb0JXQqNCV0JLQmNCLINCd0JjQmtCY0KbQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0KHQkNCS0JrQniDQm9Ce0JrQkNCbCivQnNCQ0JvQldCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAg0JTQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCS0JDQodCa0KDQodCY0IjQlQor0JzQkNCb0JXQqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9Cc0JDQm9CV0KbQmtCYINCR0JvQkNCWCivQnNCQ0JvQldCd0KfQmNCLINCC0J7QoNCC0JUKK9Cc0JDQm9CV0J3Qp9CY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JDQm9CV0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCb0JXQndCn0JjQiyDQoNCe0JTQntCJ0KPQkQor0JzQkNCb0JXQndCn0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQm9CV0J3QmNCLINCb0JDQl9CQ0KAKK9Cc0JDQm9CV0J3QmNCLINCg0KPQltCQCivQnNCQ0JvQldCd0JjQiyDQodCY0JzQkAor0JzQkNCb0JXQndCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCb0JXQndCY0KbQkCDQgtCj0KDQngor0JzQkNCb0JXQndCY0KbQkCDQkNCd0KLQo9CdCivQnNCQ0JvQldCd0JjQptCQINCU0KDQkNCT0J4KK9Cc0JDQm9CV0J3QmNCm0JAg0JjQktCQ0J0KK9Cc0JDQm9CV0J3QmNCm0JAg0JzQkNCg0JrQngor0JzQkNCb0JXQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QqCDQlNCgCivQnNCQ0JvQldCd0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCb0JXQoCDQmtCg0JjQqNCi0J7QpAor0JzQkNCb0JXQoNCiINCS0JXQndCU0JXQmwor0JzQkNCb0JXQotCQ0KjQmtCYINCV0JLQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLLdCo0KDQldCaINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQotCY0Ist0KjQoNCV0Jog0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCi0JjQiyDQltCQ0KDQmtCeCivQnNCQ0JvQldCi0JjQiyDQltCY0JLQkNCd0JrQkAor0JzQkNCb0JXQotCY0Isg0JbQmNCS0JrQngor0JzQkNCb0JXQotCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQm9CV0KLQmNCLINCR0J7QodCY0InQmtCQCivQnNCQ0JvQldCi0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCU0KDQkNCT0J4KK9Cc0JDQm9CV0KLQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCb0JXQotCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CV0KLQmNCLINCb0JDQo9Cg0JAKK9Cc0JDQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQm9CV0KLQmNCLINCb0KPQmtCQCivQnNCQ0JvQldCi0JjQiyDQnNCQ0KDQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0JvQldCi0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQkNCb0JXQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CV0KLQmNCLINCc0JjQntCc0JjQoAor0JzQkNCb0JXQotCY0Isg0J3QkNCU0JAKK9Cc0JDQm9CV0KLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0JvQldCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQm9CV0KLQmNCLINCf0JDQiNCQCivQnNCQ0JvQldCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQkNCb0JXQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCb0JXQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCb0JXQotCY0Isg0KHQkNCS0JAKK9Cc0JDQm9CV0KLQmNCLINCh0JDQktCeCivQnNCQ0JvQldCi0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCb0JXQotCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cc0JDQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQm9CV0KLQmNCLINCh0KDQkdCe0InQo9CRCivQnNCQ0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JvQldCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQotCQ0JzQkNCg0JAKK9Cc0JDQm9CV0KLQmNCLINCS0JXQmtCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCS0IjQldCg0JAKK9Cc0JDQm9CV0KLQmNCLINCS0IjQldCg0JAKK9Cc0JDQm9CV0KLQmNCLINCX0JvQkNCi0JrQngor0JzQkNCb0JXQotCY0J0g0KfQkNCg0J3QkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQm9CV0KLQmNCdINCW0JjQktCa0J4KK9Cc0JDQm9CV0KLQmNCdINCC0J7QoNCC0JUKK9Cc0JDQm9CV0KLQmNCdINCC0J7QoNCC0JUKK9Cc0JDQm9CV0KLQmNCdINCC0KPQoNCQCivQnNCQ0JvQldCi0JjQnSDQgtCj0KDQmNCm0JAKK9Cc0JDQm9CV0KLQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JvQldCi0JjQnSDQkdCe0KjQmtCeCivQnNCQ0JvQldCi0JjQnSDQkdCe0JbQkNCd0JAKK9Cc0JDQm9CV0KLQmNCdINCU0JDQndCY0KbQkAor0JzQkNCb0JXQotCY0J0g0JTQkNCg0JjQndCa0JAKK9Cc0JDQm9CV0KLQmNCdINCU0KDQkNCT0JjQqNCQCivQnNCQ0JvQldCi0JjQnSDQlNCj0KjQkNCdCivQnNCQ0JvQldCi0JjQnSDQlNCj0KjQkNCdCivQnNCQ0JvQldCi0JjQnSDQk9Ce0KDQkNCdCivQnNCQ0JvQldCi0JjQnSDQiNCQ0J3QkAor0JzQkNCb0JXQotCY0J0g0IjQldCb0JXQndCQCivQnNCQ0JvQldCi0JjQnSDQiNCe0JLQkNCdCivQnNCQ0JvQldCi0JjQnSDQiNCe0JLQkNCdCivQnNCQ0JvQldCi0JjQnSDQiNCe0JLQkNCdCivQnNCQ0JvQldCi0JjQnSDQidCj0JHQntCc0JjQoAor0JzQkNCb0JXQotCY0J0g0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCi0JjQnSDQnNCQ0KDQmNCI0JAKK9Cc0JDQm9CV0KLQmNCdINCc0JjQm9CQ0J3QmtCQCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQkNCdCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQkNCdCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQntCoCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0JzQmNCg0JrQngor0JzQkNCb0JXQotCY0J0g0J/QkNCI0JAKK9Cc0JDQm9CV0KLQmNCdINCf0JDQktCb0JUKK9Cc0JDQm9CV0KLQmNCdINCg0JDQlNCQCivQnNCQ0JvQldCi0JjQnSDQoNCQ0JTQmNCS0J7QiNCVCivQnNCQ0JvQldCi0JjQnSDQoNCj0JbQmNCm0JAKK9Cc0JDQm9CV0KLQmNCdINCh0JvQkNCS0JjQptCQCivQnNCQ0JvQldCi0JjQnSDQodCb0JDQktCa0J4KK9Cc0JDQm9CV0KLQmNCdINCh0J/QntCc0JXQndCa0JAKK9Cc0JDQm9CV0KLQmNCdINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0J0g0KHQotCV0JLQkNCdCivQnNCQ0JvQldCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCQ0JvQldCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCQ0JvQldCi0JjQnSDQotCY0JzQkAor0JzQkNCb0JXQotCY0J0g0KLQntCU0J7QoAor0JzQkNCb0JXQotCY0J0g0KLQntCU0J7QoAor0JzQkNCb0JXQotCY0J0g0JLQkNCh0JAKK9Cc0JDQm9CV0KLQmNCdINCS0JjQotCe0JzQmNCgCivQnNCQ0JvQldCi0JjQnSDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0JvQldCi0JjQnSDQl9Ce0KDQkAor0JzQkNCb0JXQotCY0J0g0JfQntCg0JAKK9Cc0JDQm9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQm9CYINCW0JjQktCQ0J0KK9Cc0JDQm9CYINCW0JjQktCa0J4KK9Cc0JDQm9CYINCU0JDQnNCI0JDQnQor0JzQkNCb0Jgg0JTQoNCQ0JPQkAor0JzQkNCb0Jgg0JXQm9CV0J7QndCe0KDQkAor0JzQkNCb0Jgg0JPQntCg0JDQnQor0JzQkNCb0Jgg0IjQntCS0JDQnQor0JzQkNCb0Jgg0JrQoNCY0KHQotCY0KTQntCgCivQnNCQ0JvQmCDQidCj0JHQmNCm0JAKK9Cc0JDQm9CYINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JvQmCDQnNCY0JvQntCoCivQnNCQ0JvQmCDQnNCY0J7QlNCg0JDQkwor0JzQkNCb0Jgg0KHQkNCS0JAKK9Cc0JDQm9CYINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JDQm9CYINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQm9CY0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQmNCn0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQkNCb0JjQp9CY0Isg0JzQmNCb0J7QqAor0JzQkNCb0JjQp9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCb0JjQiyDQltCQ0KDQmtCeCivQnNCQ0JvQmNCLINCR0JjQidCQ0J3QkAor0JzQkNCb0JjQiyDQkdCe0JbQkNCd0JAKK9Cc0JDQm9CY0Isg0KbQktCY0IjQldCi0JjQnQor0JzQkNCb0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0JvQmNCLINCc0JjQotCQ0KAKK9Cc0JDQm9CY0Isg0JzQm9CQ0JTQldCdCivQnNCQ0JvQmNCLINCd0J7QktCQ0JoKK9Cc0JDQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQm9CY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQm9CY0Isg0KDQkNCi0JrQngor0JzQkNCb0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQm9CY0Isg0KHQntCk0JjQiNCQCivQnNCQ0JvQmNCLINCh0KLQntCI0JDQnQor0JzQkNCb0JjQiyDQodCi0J7QiNCQCivQnNCQ0JvQmNCLINCj0KDQntCoCivQnNCQ0JvQmNCLINCS0KPQmtCY0KbQkAor0JzQkNCb0JjQj9CQINCW0JXQidCa0J4KK9Cc0JDQm9CY0I/QkNCdINCR0JvQkNCW0J4KK9Cc0JDQm9CY0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JvQmNCdINCC0KPQoNCQCivQnNCQ0JvQmNCdINCY0JvQmNCI0JAKK9Cc0JDQm9CY0J0g0JzQmNCb0JjQptCQCivQnNCQ0JvQmNCdINCe0JvQk9CQCivQnNCQ0JvQmNCdINCh0KLQkNCd0JjQodCb0JDQkgor0JzQkNCb0JjQnSDQotCQ0KLQiNCQ0J3QkAor0JzQkNCb0JjQndCQ0KAg0IjQldCb0JXQndCQCivQnNCQ0JvQmNCd0JjQiyDQodCf0JDQodCe0IjQlQor0JzQkNCb0JjQndCe0JLQmNCLINCQ0J3QgtCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0JHQntCW0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQm9CY0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQm9CY0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JzQkNCb0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQm9CY0J3QntCS0JjQiyDQiNCe0JLQngor0JzQkNCb0JjQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCb0JjQndCe0JLQmNCLINCh0JDQktCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQm9CY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQm9CY0J3QntCS0JjQiyDQktCV0InQmtCeCivQnNCQ0JvQmNCS0KPQmiDQkdCe0JbQkNCd0JAKK9Cc0JDQm9CY0JLQo9CaINCU0KPQqNCQ0J0KK9Cc0JDQm9CY0JLQo9CaINCc0JjQm9CQ0J0KK9Cc0JDQm9CY0JLQo9CaINCd0JjQmtCe0JvQkAor0JzQkNCb0JjQktCj0Jog0J/QkNCS0JvQlQor0JzQkNCb0JjQktCj0Jog0KHQktCV0KLQmNCh0JvQkNCSCivQnNCQ0InQkCDQnNCe0KDQmNCd0JAKK9Cc0JDQidCY0Jog0KHQotCV0JLQkAor0JzQkNCJ0JrQntCS0JjQiyDQgtCj0KDQngor0JzQkNCJ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQidCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0InQmtCe0JLQmNCLLdCP0KPQmtCb0JXQktCh0JrQmCDQkNCd0JAKK9Cc0JDQidCa0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0InQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQidCa0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Cc0JDQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0InQmtCe0JLQmNCLINCg0JDQndCa0JAKK9Cc0JDQidCa0J7QktCY0Isg0JLQldCg0JAKK9Cc0JDQm9Ca0JjQiyDQk9Ce0KDQlNCQ0J0KK9Cc0JDQm9Ca0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JDQm9Ca0JjQiyDQodCi0JDQndCQCivQnNCQ0JvQnNCV0KAg0JDQndCU0KDQmNCI0JAKK9Cc0JDQm9Cc0JXQoCDQkNCd0JTQoNCY0IjQkAor0JzQkNCb0J3QkNCgINCU0KDQkNCT0KPQotCY0J0KK9Cc0JDQm9Cd0JDQoCDQiNCe0KHQmNCfCivQnNCQ0JvQntCn0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JvQntCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCb0J7QkdCQ0JHQmNCLINCJ0KPQkdCQ0J0KK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0JvQntCR0JDQkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCb0J7QkdCQ0JHQmNCLINCd0J7QktCY0KbQkAor0JzQkNCb0J7QkdCQ0JHQmNCLINCg0JDQlNCVCivQnNCQ0JvQntCT0JDQiNCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0JvQntCT0JDQiNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JDQm9Ce0KLQmNCLINCh0JDQktCeCivQnNCQ0JvQntCS0JDQqNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0JvQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0JzQkNCb0J7QktCg0JDQl9CY0Isg0JPQntCI0JrQngor0JzQkNCb0J7QktCg0JDQl9CY0Isg0JPQntCI0JrQngor0JzQkNCb0KPQptCa0J7QkiDQkdCe0JPQlNCQ0J0KK9Cc0JDQm9Cj0KbQmtCe0JIg0JTQkNCd0JjQptCQCivQnNCQ0JvQo9Cm0JrQntCSINCI0J7QktCQ0J0KK9Cc0JDQm9Cj0KbQmtCe0JIg0JzQkNCg0JjQiNCQCivQnNCQ0JvQo9Cm0JrQntCSINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0JzQkNCb0KPQptCa0J7QkiDQoNCQ0JTQntCS0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JDQm9Cj0KbQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCb0KPQptCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JDQm9Cj0KbQmtCe0JIg0JfQntCg0JrQkAor0JzQkNCc0JjQiyDQmNCS0JDQnQor0JzQkNCc0JjQiyDQiNCe0JfQngor0JzQkNCc0KPQltCY0Isg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JzQo9CW0JjQiyDQmNCS0JDQnQor0JzQkNCc0KPQltCY0Isg0JjQktCQ0J0KK9Cc0JDQnNCj0JvQkCDQlNCj0KjQkNCdCivQnNCQ0JzQo9Cb0JAg0JzQm9CQ0JTQldCd0JrQkAor0JzQkNCc0KPQm9CQINCf0JDQktCb0JUKK9Cc0JDQnNCj0JvQkCDQoNCj0JbQkAor0JzQkNCc0KPQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQnNCj0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JzQo9Ci0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQnNCj0JfQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Cc0JDQndCn0JXQkiDQndCY0JrQntCb0JAKK9Cc0JDQndCn0JXQktCh0JrQmCDQmtCQ0KLQkAor0JzQkNCd0KfQldCS0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCd0KfQmNCLINCQ0KDQkNCd0JrQkAor0JzQkNCd0KfQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQnNCQ0J3Qp9CY0Isg0JrQkNCi0JAKK9Cc0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQndCn0JjQiyDQodCQ0KjQkAor0JzQkNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQndCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0J3Qp9CjINCC0J7QoNCC0JUKK9Cc0JDQndCn0KMg0JTQoNCQ0JPQmNCK0JAKK9Cc0JDQndCn0KMg0JTQo9Co0JDQnQor0JzQkNCd0KfQoyDQnNCY0JvQkNCdCivQnNCQ0J3Qp9CjINCc0JjQm9CQ0J0KK9Cc0JDQndCn0KMg0JzQmNCb0J7QqAor0JzQkNCd0KfQoyDQnNCY0JvQntCoCivQnNCQ0J3Qp9CjINCd0JXQndCQ0JQKK9Cc0JDQndCn0KMg0KHQotCV0JLQkNCdCivQnNCQ0J3Qp9CjINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQndCn0KMg0JLQmNCa0KLQntCgCivQnNCQ0J3QkNCh0JjQiNCV0JLQmNCLINCT0JXQoNCQ0KHQmNCcCivQnNCQ0J3QkNCh0KLQmNCg0JDQpiDQlNCQ0JzQiNCQ0J0KK9Cc0JDQndCQ0KHQotCY0KDQkNCmINCJ0KPQkdCY0KjQkAor0JzQkNCd0KYg0KHQotCV0JLQkNCdCivQnNCQ0J3QptCV0JTQldCgINCC0KPQoNCQCivQnNCQ0J3Qj9Cj0JrQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0J3Qj9Cj0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQkNCd0JTQkNCg0JjQnSDQndCQ0KLQkNCo0JAKK9Cc0JDQndCU0JXQmiDQpNCY0JvQmNCfCivQnNCQ0J3QlNCV0JvQpiDQidCj0JHQmNCm0JAKK9Cc0JDQndCU0JjQiyDQp9CQ0JLQkAor0JzQkNCd0JTQmNCLINCW0JjQktCa0J4KK9Cc0JDQndCU0JjQiyDQgtCe0KDQgtCVCivQnNCQ0J3QlNCY0Isg0ILQntCg0ILQlQor0JzQkNCd0JTQmNCLINCC0KPQoNCQCivQnNCQ0J3QlNCY0Isg0ILQo9Cg0JjQptCQCivQnNCQ0J3QlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0J3QlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQndCU0JjQiyDQkdCe0KjQmtCeCivQnNCQ0J3QlNCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0J3QlNCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQnNCQ0J3QlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQkNCd0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCd0JTQmNCLINCm0JLQmNCI0JXQotCQCivQnNCQ0J3QlNCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0J3QlNCY0Isg0JTQkNCg0JAKK9Cc0JDQndCU0JjQiyDQlNCV0JvQpNCY0J3QkAor0JzQkNCd0JTQmNCLINCU0JXQndCV0KgKK9Cc0JDQndCU0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQkNCd0JTQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0J3QlNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0J3QlNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0JTQoNCQ0JPQngor0JzQkNCd0JTQmNCLINCU0KDQkNCT0J4KK9Cc0JDQndCU0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCQ0J3QlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQndCU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQkNCd0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0J3QlNCY0Isg0JTQo9Co0JDQnQor0JzQkNCd0JTQmNCLINCk0KDQkNCK0JAKK9Cc0JDQndCU0JjQiyDQmNCT0IrQkNCiCivQnNCQ0J3QlNCY0Isg0JjQktCQ0J3QmtCQCivQnNCQ0J3QlNCY0Isg0JjQktCa0JAKK9Cc0JDQndCU0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQkNCd0JTQmNCLLdCI0J7QktCQ0J3QntCS0JjQiyDQktCY0J3QmtCQCivQnNCQ0J3QlNCY0Isg0IjQntCS0J4KK9Cc0JDQndCU0JjQiyDQiNCe0JLQngor0JzQkNCd0JTQmNCLINCa0JDQotCY0KbQkAor0JzQkNCd0JTQmNCLINCa0J7QodCi0JAKK9Cc0JDQndCU0JjQiyDQmtCh0JXQndCY0IjQkAor0JzQkNCd0JTQmNCLINCJ0JjQidCQ0J3QkAor0JzQkNCd0JTQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCd0JTQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0J3QlNCY0Isg0JzQkNCd0JUKK9Cc0JDQndCU0JjQiyDQnNCQ0J3QlQor0JzQkNCd0JTQmNCLINCc0JDQoNCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JPQmNCi0JAKK9Cc0JDQndCU0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQndCU0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQndCU0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQndCU0JjQiyDQnNCY0JrQkAor0JzQkNCd0JTQmNCLINCc0JjQm9CQ0JTQmNCI0JAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCd0JTQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQndCU0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQlQor0JzQkNCd0JTQmNCLINCc0JjQm9CVCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQlQor0JzQkNCd0JTQmNCLINCc0JjQm9Ce0IjQlQor0JzQkNCd0JTQmNCLINCc0JjQm9Ce0IjQmtCeINCU0KAg0JvQldCa0JDQoAor0JzQkNCd0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQndCU0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCd0JTQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQndCQ0JTQkAor0JzQkNCd0JTQmNCLINCd0JDQlNCQCivQnNCQ0J3QlNCY0Isg0J3QldCC0J4KK9Cc0JDQndCU0JjQiyDQndCV0ILQngor0JzQkNCd0JTQmNCLINCd0JXQlNCV0InQmtCeINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCQ0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0J3QlNCY0Isg0J3QntCS0JrQkAor0JzQkNCd0JTQmNCLINCf0JDQndCVCivQnNCQ0J3QlNCY0Isg0J/QldCg0JAKK9Cc0JDQndCU0JjQiyDQn9CV0KLQkNCgCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JDQndCU0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQndCU0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCd0JTQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0J3QlNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQndCU0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCd0JTQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0J3QlNCY0Isg0KDQkNCI0JAKK9Cc0JDQndCU0JjQiyDQodCY0J3QmNCo0JAKK9Cc0JDQndCU0JjQiyDQodCb0JDQktCa0JAKK9Cc0JDQndCU0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQndCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0J3QlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCd0JTQmNCLINCh0J3QldCW0JDQndCQCivQnNCQ0J3QlNCY0Isg0KHQoNCV0KLQldCdCivQnNCQ0J3QlNCY0Isg0KHQoNCV0KLQldCdCivQnNCQ0J3QlNCY0Isg0KHQoNCV0KLQngor0JzQkNCd0JTQmNCLINCh0KLQldCS0JDQnQor0JzQkNCd0JTQmNCLINCh0JLQldCi0JrQngor0JzQkNCd0JTQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0JDQndCU0JjQiyDQotCV0KDQldCX0JjQiNCQCivQnNCQ0J3QlNCY0Isg0KLQmNCR0J7QoAor0JzQkNCd0JTQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0KPQoNCe0Kgg0JTQmNCf0Jsg0J7QldCmCivQnNCQ0J3QlNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JzQkNCd0JTQmNCLINCS0JXQm9CY0JfQkNCgCivQnNCQ0J3QlNCY0Isg0JLQldCg0JAKK9Cc0JDQndCU0JjQiyDQktCY0J7Qm9CV0KLQkAor0JzQkNCd0JTQmNCLINCX0JvQkNCi0JjQptCQCivQnNCQ0J3QlNCY0Isg0JfQntCg0JDQnQor0JzQkNCd0JTQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQndCU0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQndCU0JjQiyDQl9Ce0KDQmtCQCivQnNCQ0J3QlNCY0Isg0JfQntCg0JrQkAor0JzQkNCd0JTQmNCLINCX0J7QoNCa0JAKK9Cc0JDQndCU0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQnNCQ0J3QlNCg0JDQn9CQINCC0KPQoNCeCivQnNCQ0J3QlNCg0JjQndCeINCh0JDQndCa0JAKK9Cc0JDQndCV0KHQmtCYINCR0JvQkNCT0J7QiNCQCivQnNCQ0J3QldCS0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCd0JXQktCh0JrQmCDQlNCj0KjQkNCdCivQnNCQ0J3QldCS0KHQmtCYINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQndCV0JLQodCa0Jgg0KLQoNCQ0IjQmtCeINCU0KAKK9Cc0JDQndCV0JLQodCa0Jgg0JLQldCg0JAKK9Cc0JDQndCTINCR0KDQkNCd0JrQngor0JzQkNCd0JPQldCgINCI0J7QodCY0J8KK9Cc0JDQndCl0JDQiNCcINCI0J7QltCV0KQKK9Cc0JDQndCY0Isg0JDQndCa0JjQptCQCivQnNCQ0J3QmNCLINCR0JvQkNCd0JrQkAor0JzQkNCd0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JzQkNCd0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JDQndCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQndCY0Isg0JzQmNCb0J7QiNCVCivQnNCQ0J3QmNCLINCc0JjQm9Ce0IjQlQor0JzQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCd0JjQiyDQodCV0JLQldCgINCU0JjQn9CbINCf0KUKK9Cc0JDQndCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQkNCd0JjQnSDQgtCe0KDQgtCVCivQnNCQ0IrQkCDQodCg0JXQlNCe0IjQlQor0JzQkNCK0JAg0JfQlNCg0JDQktCa0J4KK9Cc0JDQitCQ0Jog0JTQoNCQ0JPQngor0JzQkNCK0JXQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0IrQo9Cb0J7QkiDQm9Cj0JrQkAor0JzQkNCd0J7QiNCb0J7QkiDQmNCg0JXQndCQCivQnNCQ0J3QntCI0JvQntCSINCY0JLQkNCdCivQnNCQ0J3QntCI0JvQntCSINCI0J7QktCQ0J3QmtCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KfQldCU0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCW0JjQktCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JPQoNCj0IjQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JrQntCS0JjQidCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQkNCI0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JDQndCe0IjQm9CeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J3QldCd0JDQlAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KDQkNCi0JrQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JDQktCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAg0JTQoCDQn9Cg0J7QpAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KLQntCo0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCS0JDQndCU0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCS0JXQm9CY0KHQm9CQ0JIKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCS0JXQoNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCX0JLQntCd0JrQngor0JzQkNCd0KPQmtCe0JIg0J7Qm9CT0JAKK9Cc0JDQndCj0JrQntCSINCi0J7QlNCe0KAKK9Cc0JDQntCU0KPQqCDQkNCd0JAKK9Cc0JDQntCU0KPQqCDQlNCQ0J3QmNCm0JAKK9Cc0JDQntCU0KPQqCDQiNCe0JLQngor0JzQkNCe0JTQo9CoINCc0JjQntCU0KDQkNCTCivQnNCQ0J7QlNCj0Kgg0J3QmNCa0J7Qm9CQCivQnNCQ0J7QlNCj0Kgg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQoCDQldCU0JLQkNCg0JQKK9Cc0JDQoNCn0JDQmiDQnNCY0KXQkNCI0JvQngor0JzQkNCg0KfQldCaINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCQINCC0KPQoNCQCivQnNCQ0KDQp9CV0KLQkCDQkdCg0JDQndCa0J4KK9Cc0JDQoNCn0JXQotCQINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQp9CV0KLQkCDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0KfQldCi0JAg0JvQkNCX0JDQoAor0JzQkNCg0KfQldCi0JAg0JzQmNCb0JDQnQor0JzQkNCg0KfQldCi0JAg0KDQkNCI0JrQngor0JzQkNCg0KfQldCi0JAg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0KfQldCi0JAg0KHQotCV0JLQkAor0JzQkNCg0KfQldCi0JAg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCn0JXQotCQINCX0J7QoNCQCivQnNCQ0KDQp9CV0KLQmNCLINCm0JLQldCi0JAKK9Cc0JDQoNCn0JXQotCY0Isg0JTQoNCQ0JPQngor0JzQkNCg0KfQldCi0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQp9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0KfQldCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQp9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0KfQldCi0JjQiyDQntCR0KDQldCd0JjQiNCQCivQnNCQ0KDQp9CV0KLQmNCLINCe0JvQkdCY0J3QkAor0JzQkNCg0KfQldCi0JjQiyDQn9CV0KDQmNCm0JAKK9Cc0JDQoNCn0JXQotCY0Isg0J/QldCi0JDQoAor0JzQkNCg0KfQldCi0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQp9CV0KLQmNCdINCg0JDQlNCVCivQnNCQ0KDQp9CY0Isg0JbQmNCS0JDQnQor0JzQkNCg0KfQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0KfQmNCLINCR0J7QltCQ0J3QkAor0JzQkNCg0KfQmNCLINCI0JXQm9CV0J3QkAor0JzQkNCg0KfQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQp9CY0IvQldCSINCc0JDQoNCY0IjQkAor0JzQkNCg0KfQmNCL0JXQkiDQnNCV0KDQmNCc0JAKK9Cc0JDQoNCn0JjQndCa0J4g0JzQmNCb0JDQnQor0JzQkNCg0KfQntCaINCQ0J3QmNCm0JAKK9Cc0JDQoNCn0J7QmiDQmNCo0KLQktCQ0J0KK9Cc0JDQoNCn0J7QmiDQmNCh0JjQlNCe0KDQkAor0JzQkNCg0KfQntCaINCb0JjQlNCY0IjQkAor0JzQkNCg0KfQntCaINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQp9Ce0Jog0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCn0J7QmiDQktCV0KDQkAor0JzQkNCg0KfQntCaINCX0KPQl9CQ0J3QkAor0JzQkNCg0KfQo9CaINCh0JDQqNCQCivQnNCQ0KDQp9Cj0Jog0KHQotCV0JLQkNCdCivQnNCQ0KDQltCY0Isg0JDQndCY0KbQkAor0JzQkNCg0ILQldCb0J7QqNCa0Jgg0KHQotCQ0J3Qo9Co0JAKK9Cc0JDQoNCQ0Kgg0IjQntCS0JDQnQor0JzQkNCg0JDQqCDQnNCY0KDQntCI0JUKK9Cc0JDQoNCQ0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JDQqCDQktCe0IjQmNCdCivQnNCQ0KDQkNCm0Jgg0JzQmNCl0JDQiQor0JzQkNCg0JDQmtCe0JLQmNCLINCd0JXQktCV0J3QkAor0JzQkNCg0JDQnNCY0KbQkCDQiNCV0JvQldCd0JAKK9Cc0JDQoNCQ0JzQmNCm0JAg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JDQnSDQlNCg0JDQk9CY0KjQkAor0JzQkNCg0JDQnSDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JDQoSDQpNCY0JvQmNCfCivQnNCQ0KDQkNChINCI0J7QodCY0J8KK9Cc0JDQoNCQ0KPQpiDQl9CS0J7QndCY0JzQmNCgCivQnNCQ0KDQkNCS0JjQiyDQgtCj0KDQngor0JzQkNCg0JDQktCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCQ0JLQmNCLINCC0KPQoNCeCivQnNCQ0KDQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCQ0JLQmNCLINCU0JzQmNCi0JDQoAor0JzQkNCg0JDQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCQ0JLQmNCLINCb0JDQl9CeCivQnNCQ0KDQkNCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQkNCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCg0JDQktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JDQktCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQkNCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCQ0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQkNCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCg0JDQktCY0Isg0JLQm9CQ0JTQkAor0JzQkNCg0KbQldCa0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQnNCQ0KDQptCY0JrQmNCLINCW0JjQktCQ0J3QkAor0JzQkNCg0KbQmNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JDQoNCm0JjQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0JXQnNCY0JsKK9Cc0JDQoNCm0JjQmtCY0Isg0JPQmNCT0JAg0JTQoAor0JzQkNCg0KbQmNCa0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0JzQkNCg0KbQmNCa0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0InQo9CR0JjQndCa0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0JzQkNCg0JjQptCQCivQnNCQ0KDQptCY0JrQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0KbQmNCa0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQptCY0JrQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KbQmNCa0JjQiyDQktCV0KDQkAor0JzQkNCg0JTQldCo0JjQiyDQqNCY0JzQlQor0JzQkNCg0JXQqCDQkdCe0JbQngor0JzQkNCg0JXQqCDQotCg0JjQpNCj0J0KK9Cc0JDQoNCV0KjQp9Cj0Jog0J/QldCi0JDQoAor0JzQkNCg0JXQiSDQltCY0JLQkNCdCivQnNCQ0KDQldCJINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCV0Ikg0KHQldCb0JXQndCQCivQnNCQ0KDQldCJINCS0JXQm9CY0KHQm9CQ0JIKK9Cc0JDQoNCV0Ikg0JfQm9CQ0KLQkAor0JzQkNCg0JXQidCV0JIg0IjQldCb0JXQndCQCivQnNCQ0KDQldCi0JjQiyDQnNCQ0KDQmtCeINCU0JjQn9CbINCe0JXQpgor0JzQkNCg0JXQotCY0Isg0KHQotCV0JLQngor0JzQkNCg0JXQotCY0Isg0JLQm9CQ0JTQkAor0JzQkNCg0JXQotCY0Isg0JLQm9CQ0JTQkAor0JzQkNCg0JXQotCY0Isg0JLQm9CQ0JTQkAor0JzQkNCg0JXQktCY0Isg0JDQndCi0JUKK9Cc0JDQoNCk0Jgg0KHQnNCY0InQmtCQCivQnNCQ0KDQk9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JPQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQnNCQ0KDQk9CQ0J3QntCS0JjQiyDQk9CV0J7QoNCT0JjQndCQCivQnNCQ0KDQk9CQ0J3QlyDQktCY0JrQotCe0KAKK9Cc0JDQoNCT0JXQotCQINCQ0J3QmNCm0JAKK9Cc0JDQoNCT0JXQotCQINCc0JDQoNCY0IjQkAor0JzQkNCg0JPQldCi0JjQiyDQltCY0JbQkAor0JzQkNCg0JPQldCi0JjQiyDQldCb0JLQmNCg0JAKK9Cc0JDQoNCT0JjQoiDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQk9CY0KIg0JLQldCg0JAKK9Cc0JDQoNCT0KPQqNCY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0JDQoNCl0J7QqNCV0JLQmNCLINCc0KPQiNCeCivQnNCQ0KDQmNCn0JXQktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KDQmNCn0JXQktCY0Isg0KDQmNCh0KLQkAor0JzQkNCg0JjQp9CY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0JDQoNCY0KfQmNCLINCR0KDQkNCd0JrQngor0JzQkNCg0JjQp9CY0Isg0JHQoNCQ0KLQntCJ0KPQkQor0JzQkNCg0JjQp9CY0Isg0JPQntCI0JrQngor0JzQkNCg0JjQp9CY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JjQp9CY0Isg0JjQktCY0KbQkAor0JzQkNCg0JjQp9CY0Isg0JzQkNCg0JAKK9Cc0JDQoNCY0KfQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCn0JjQiyDQnNCY0KDQkAor0JzQkNCg0JjQp9CY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQoNCY0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQp9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCn0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KDQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQp9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCg0JjQp9CY0J0g0J3QldCd0JDQlAor0JzQkNCg0JjQqNCQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmNCLINCW0JDQoNCa0J4KK9Cc0JDQoNCY0Isg0JbQmNCa0JAKK9Cc0JDQoNCY0Isg0JbQmNCS0JDQndCQCivQnNCQ0KDQmNCLINCW0JjQktCa0J4KK9Cc0JDQoNCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JjQiyDQgtCj0KDQngor0JzQkNCg0JjQiyDQkNCU0JDQnCDQlNCgCivQnNCQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmNCLINCQ0J3QgtCV0JvQmtCeCivQnNCQ0KDQmNCLINCQ0J3QgtCV0JvQmtCeCivQnNCQ0KDQmNCLINCQ0J3QmtCQCivQnNCQ0KDQmNCLINCQ0J3QmtCQCivQnNCQ0KDQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCg0JjQiyDQkdCe0KjQmtCeCivQnNCQ0KDQmNCLINCR0J7QqNCa0J4KK9Cc0JDQoNCY0Isg0JHQntCW0JjQptCQCivQnNCQ0KDQmNCLINCR0J7QltCY0JTQkNCgCivQnNCQ0KDQmNCLINCR0J7Qk9Ce0InQo9CRCivQnNCQ0KDQmNCLINCR0J7QiNCQ0JTQmNCc0JjQoAor0JzQkNCg0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCg0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCLINCR0KDQkNCd0JrQngor0JzQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0Isg0JHQoNCQ0J3Qngor0JzQkNCg0JjQiyDQptCS0JjQiNCeCivQnNCQ0KDQmNCLINCU0JDQndCY0KbQkAor0JzQkNCg0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQkNCg0JjQiyDQlNCQ0JLQmNCUCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmNCLINCU0KPQqNCY0KbQkAor0JzQkNCg0JjQiyDQldCg0JbQldCR0JXQogor0JzQkNCg0JjQiyDQk9Ce0IjQmtCeCivQnNCQ0KDQmNCLINCT0J7QiNCa0J4KK9Cc0JDQoNCY0Isg0JPQoNCj0IjQmNCm0JAg0JTQoAor0JzQkNCg0JjQiyDQmNCb0JUKK9Cc0JDQoNCY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KDQmNCLINCY0JvQmNCd0JrQkAor0JzQkNCg0JjQiyDQmNCS0J4KK9Cc0JDQoNCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JzQkNCg0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQoNCY0Isg0IjQntCm0JAKK9Cc0JDQoNCY0Isg0IjQntCb0JDQndCa0JAKK9Cc0JDQoNCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCLINCI0J7QktCeCivQnNCQ0KDQmNCLINCI0J7QktCeCivQnNCQ0KDQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQoNCY0Isg0JrQkNCU0JjQktCa0JAKK9Cc0JDQoNCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KDQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQiyDQmtCe0KHQotCQCivQnNCQ0KDQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQoNCY0Isg0InQldCf0J7QodCQ0JLQkAor0JzQkNCg0JjQiyDQidCj0JHQkAor0JzQkNCg0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCY0Isg0InQo9Cf0JrQngor0JzQkNCg0JjQiyDQm9Cj0JrQkAor0JzQkNCg0JjQiyDQnNCQ0KDQkAor0JzQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmNCLINCc0JDQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCL0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0g0JTQoAor0JzQkNCg0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JDQoNCY0Isg0JzQmNCb0JDQndCa0JAKK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JUg0JTQmNCf0Jsg0J7QldCmCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JDQoNCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCQ0KDQmNCLINCc0JjQm9Cj0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JjQiyDQnNCY0KDQntCJ0KPQkQor0JzQkNCg0JjQiyDQnNCY0KLQkNCgCivQnNCQ0KDQmNCLINCc0JjQotCQ0KAKK9Cc0JDQoNCY0Ist0JzQmNCi0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JDQoNCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQoNCY0Isg0J3QldCS0JXQndCa0JAKK9Cc0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQiyDQndCe0JLQkNCaCivQnNCQ0KDQmNCLINCd0J7QktCQ0JoKK9Cc0JDQoNCY0Isg0J7QodCi0J7QiNCQCivQnNCQ0KDQmNCLINCf0JDQktCb0JUKK9Cc0JDQoNCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoAor0JzQkNCg0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQkNCg0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQnNCQ0KDQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmNCLINCg0JDQiNCa0J4KK9Cc0JDQoNCY0Isg0KHQkNCS0JAKK9Cc0JDQoNCY0Isg0KHQmNCd0JjQqNCQCivQnNCQ0KDQmNCLINCh0JvQkNCS0JjQptCQCivQnNCQ0KDQmNCLINCh0JvQkNCS0JrQngor0JzQkNCg0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCLINCh0KDQldCi0JXQnSDQlNCgINCf0KDQntCkCivQnNCQ0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JzQkNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCa0JAKK9Cc0JDQoNCY0Isg0KHQotCV0JLQngor0JzQkNCg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCQ0KDQmNCLINCh0JLQldCi0JjQodCb0JDQkiDQn9Cg0J7QpNCV0KHQntCgCivQnNCQ0KDQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCg0JjQiyDQotCQ0JzQkNCg0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCLINCj0KDQntCoCivQnNCQ0KDQmNCLINCS0JDQodCa0JAKK9Cc0JDQoNCY0Isg0JLQkNCh0J4KK9Cc0JDQoNCY0Isg0JLQldCg0JAKK9Cc0JDQoNCY0Isg0JLQmNCUCivQnNCQ0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQkNCg0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cc0JDQoNCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Cc0JDQoNCY0Isg0JfQntCg0JDQndCa0JAKK9Cc0JDQoNCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmNCL0JXQktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQkNCoINCI0J7QltCV0KQKK9Cc0JDQoNCY0JDQqCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0IjQkNCoINCI0J7QktCQ0J0KK9Cc0JDQoNCY0IjQkNCoINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiNCQ0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCI0JDQqCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0IjQkNCoINCc0JjQpdCQ0IkKK9Cc0JDQoNCY0IjQkNCoINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiNCQ0Kgg0JfQlNCV0J3QmtCQCivQnNCQ0KDQmNCI0JDQnSDQltCV0InQmtCeCivQnNCQ0KDQmNCI0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQkNCg0JjQiNCQ0J3QkNCmINCh0KLQntCI0JAKK9Cc0JDQoNCY0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JDQoNCY0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCg0JjQiNCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JzQkNCg0JjQiNCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JzQkNCg0JjQiNCQ0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiNCQ0J3QodCa0Jgg0JLQldCh0J3QkAor0JzQkNCg0JjQnSDQnNCY0JvQkNCdCivQnNCQ0KDQmNCdINCc0JjQm9CY0JLQntCICivQnNCQ0KDQmNCdINCc0JvQkNCU0JXQnQor0JzQkNCg0JjQnSDQndCQ0KLQkNCb0JjQiNCQCivQnNCQ0KDQmNCdINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQnSDQoNCQ0JTQntCc0JjQoAor0JzQkNCg0JjQnSDQktCQ0KHQngor0JzQkNCg0JjQnSDQktCV0KDQmNCm0JAKK9Cc0JDQoNCY0J0g0JfQntCg0JDQnQor0JzQkNCg0JjQndCn0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCY0J3Qp9CV0JIg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCd0KfQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQmNCd0KfQmNCLINCc0JDQoNCa0J4KK9Cc0JDQoNCY0J3Qp9CY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQndCn0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCd0KfQmNCLINCe0JvQk9CQCivQnNCQ0KDQmNCd0KjQldCaINCS0IjQldCa0J7QodCb0JDQkgor0JzQkNCg0JjQndCQINCo0KLQldCk0JDQnQor0JzQkNCg0JjQndCQINCb0KPQi9CY0IjQkNCdCivQnNCQ0KDQmNCd0JDQpiDQl9Ce0KDQkNCdCivQnNCQ0KDQmNCd0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0J3QmNCLINCY0JLQngor0JzQkNCg0JjQndCY0Isg0KHQotCY0J/QkNCdCivQnNCQ0KDQmNCd0JrQntCSINCn0JXQlNCQCivQnNCQ0KDQmNCd0JrQntCSINCW0JDQoNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0ILQntCg0ILQlQor0JzQkNCg0JjQndCa0J7QkiDQgtCe0KDQgtCVCivQnNCQ0KDQmNCd0JrQntCSINCC0KPQoNCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQndCa0J7QkiDQkNCd0JrQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JDQoNCh0JXQnQor0JzQkNCg0JjQndCa0J7QkiDQkdCe0JbQkAor0JzQkNCg0JjQndCa0J7QkiDQlNCV0IjQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCU0KDQkNCT0JjQitCQCivQnNCQ0KDQmNCd0JrQntCSINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0KTQldCc0JrQkAor0JzQkNCg0JjQndCa0J7QkiDQk9CQ0JLQoNCQCivQnNCQ0KDQmNCd0JrQntCSINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQmNCd0JrQntCSINCI0J7QktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0IjQntCS0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQmNCd0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQldCb0JDQndCY0IjQkAor0JzQkNCg0JjQndCa0J7QkiDQnNCY0JvQldCd0JrQngor0JzQkNCg0JjQndCa0J7QkiDQnNCY0JvQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCJ0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0J7QodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QkiDQnNCY0J7QlNCg0JDQkwor0JzQkNCg0JjQndCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQkNCg0JjQndCa0J7QkiDQnNCe0JzQp9CY0JvQngor0JzQkNCg0JjQndCa0J7QkiDQnNCe0JzQp9CY0JvQngor0JzQkNCg0JjQndCa0J7QkiDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0J7QnNCV0KAKK9Cc0JDQoNCY0J3QmtCe0JIg0J/QkNCI0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0KDQo9CW0JjQptCQCivQnNCQ0KDQmNCd0JrQntCSINCh0JDQktCQCivQnNCQ0KDQmNCd0JrQntCSINCh0JjQndCY0KjQkAor0JzQkNCg0JjQndCa0J7QkiDQodCb0JDQktCa0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCh0KLQldCS0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0KHQotCg0JDQpdCY0IrQkCDQlNCgINCf0KDQntCkCivQnNCQ0KDQmNCd0JrQntCSINCS0JXQodCV0JvQmNCdCivQnNCQ0KDQmNCd0JrQntCSINCS0JXQodCd0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JLQm9CQ0JTQkAor0JzQkNCg0JjQndCa0J7QkiDQktCb0JDQiNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0JfQntCg0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCW0JjQktCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCe0IjQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlSDQlNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0KDQkNCi0JjQnNCY0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCa0JDQotCQ0JvQmNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0IvQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JXQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0JjQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQkNCg0JjQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQoAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JjQodCi0JDQndCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0JDQndCe0IjQmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQktCb0JDQlNCY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JLQm9CQ0JTQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JLQntCI0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQktCa0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmNCd0J7QkiDQnNCQ0KDQmNCd0JrQngor0JzQkNCg0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JjQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCQ0KDQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0J3QntCS0JjQiyDQn9CV0IjQngor0JzQkNCg0JjQndCe0JLQmNCLLdCh0KDQlNCQ0J3QntCSINCU0JDQndCY0KbQkAor0JzQkNCg0JjQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QntCS0JjQiyDQktCY0J3QmtCQCivQnNCQ0KDQmNCd0J7QktCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQoNCY0J3QntCS0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQoNCY0J3QntCS0KHQmtCYINCa0JDQotCY0KbQkAor0JzQkNCg0IjQkNCoINCQ0J3QmtCQCivQnNCQ0KDQiNCQ0Kgg0IjQkNCd0JrQngor0JzQkNCg0IjQkNCoINCc0JjQqNCQCivQnNCQ0KDQiNCQ0Kgg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCI0JDQqCDQnNCY0JvQmtCQCivQnNCQ0KDQiNCQ0Kgg0KHQotCQ0J3QmtCeCivQnNCQ0KDQiNCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0IjQkNCdINCU0KPQqNCQ0J0KK9Cc0JDQoNCI0JDQnSDQnNCY0JvQmNCI0JDQndCQCivQnNCQ0KDQiNCQ0J0g0JzQmNCg0JrQngor0JzQkNCg0IjQkNCd0J7QkiDQlNCj0KjQkNCdCivQnNCQ0KDQiNCQ0J3QntCSINCV0KDQltCV0JHQldCiCivQnNCQ0KDQiNCQ0J3QntCSINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQiNCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQiNCQ0J3QntCSINCc0JDQoNCQCivQnNCQ0KDQiNCQ0J3QntCSINCc0JjQpdCQ0IjQm9CeINCU0KAKK9Cc0JDQoNCI0JDQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCI0JDQndCe0JIg0J7Qm9CT0JAKK9Cc0JDQoNCI0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQoNCI0JDQndCe0JIg0KHQntCK0JAKK9Cc0JDQoNCI0JDQndCe0JIg0KLQmNCc0J7QotCY0IjQlQor0JzQkNCg0IjQkNCd0J7QkiDQktCj0IjQmNCm0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQltCV0InQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCW0JjQktCe0KLQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCI0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQkNCd0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0JDQndCY0JvQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JPQkNCR0KDQmNCI0JXQmwor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCI0J7QktCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCS0J7QiNCVCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4g0JTQoCDQmNCd0JMKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkCDQlNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAg0JzQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEg0JTQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQmtCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KLQoNCY0JLQo9CdCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0JjQlAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JLQntCI0JjQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JfQntCg0JAKK9Cc0JDQoNCI0JDQndCh0JrQmCDQpNCV0JTQntCgCivQnNCQ0KDQmtCQ0J3QntCSINCJ0KPQkdCY0KbQkAor0JzQkNCg0JrQkNCd0J7QkiDQl9Ce0KDQmNCm0JAKK9Cc0JDQoNCa0JPQoNCQ0KQg0JDQndCY0KbQkAor0JzQkNCg0JrQk9Cg0JDQpCDQodCe0KTQmNCI0JAKK9Cc0JDQoNCa0Jgg0J3QldCS0JXQndCa0JAKK9Cc0JDQoNCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCYINCh0JvQkNCS0JrQkAor0JzQkNCg0JrQmNCoINCh0J7QpNCY0IjQkAor0JzQkNCg0JrQmNCL0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQoNCa0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J4g0IjQkNCdINCf0KDQntCk0JXQodCe0KAKK9Cc0JDQoNCa0J4g0J3QkNCU0JAg0JTQoAor0JzQkNCg0JrQntCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCa0J7QkiDQltCQ0KDQmtCeCivQnNCQ0KDQmtCe0JIg0JbQmNCS0JAKK9Cc0JDQoNCa0J7QkiDQgtCj0KDQkAor0JzQkNCg0JrQntCSINCQ0J3QgtCV0JvQmtCQCivQnNCQ0KDQmtCe0JIg0KbQktCV0KLQkNCd0JAKK9Cc0JDQoNCa0J7QkiDQlNCe0JHQoNCY0JvQkAor0JzQkNCg0JrQntCSINCU0KDQkNCT0JDQnQor0JzQkNCg0JrQntCSINCU0KDQkNCT0JDQnQor0JzQkNCg0JrQntCSINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QkiDQldCc0JjQmwor0JzQkNCg0JrQntCSINCk0J7QotCY0IjQlQor0JzQkNCg0JrQntCSINCY0JvQmNCI0JAKK9Cc0JDQoNCa0J7QkiDQmNCS0JjQptCQCivQnNCQ0KDQmtCe0JIt0IjQldCb0JXQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JDQoNCa0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCa0J7QkiDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JIg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCSINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmtCe0JIg0JzQmNCb0JjQptCQCivQnNCQ0KDQmtCe0JIg0JzQmNCb0JjQptCQCivQnNCQ0KDQmtCe0JIg0JzQmNCg0JAKK9Cc0JDQoNCa0J7QkiDQndCQ0JTQkAor0JzQkNCg0JrQntCSINCd0JDQlNCQCivQnNCQ0KDQmtCe0JIg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCe0JIg0J/QldCi0JDQoAor0JzQkNCg0JrQntCSINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QkiDQoNCQ0JTQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JIg0KDQkNCU0J7QodCQ0JIKK9Cc0JDQoNCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCSINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmtCe0JIg0KHQkNCS0JAKK9Cc0JDQoNCa0J7QkiDQodCY0J3QmNCo0JAKK9Cc0JDQoNCa0J7QkiDQodCf0JDQodCe0IjQlSDQlNCgCivQnNCQ0KDQmtCe0JIg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JIg0KLQntCc0JjQodCb0JDQkgor0JzQkNCg0JrQntCSINCS0JXQoNCQCivQnNCQ0KDQmtCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0JzQkNCg0JrQntCSINCX0J7QoNCQ0J0g0JzQoAor0JzQkNCg0JrQntCSINCX0J7QoNCQCivQnNCQ0KDQmtCe0JIg0JfQntCg0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQltCV0JvQmNCR0J7QoAor0JzQkNCg0JrQntCS0JjQiyDQltCV0InQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCW0JXQidCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdINCU0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQltCY0JLQntCi0JAKK9Cc0JDQoNCa0J7QktCY0Isg0ILQldCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JTQkNCcCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCo0JrQngor0JzQkNCg0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCg0JjQoQor0JzQkNCg0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCg0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCm0JLQldCi0JrQngor0JzQkNCg0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQldCI0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQngor0JzQkNCg0JrQntCS0JjQiyDQldCg0JbQldCR0JXQogor0JzQkNCg0JrQntCS0JjQiyDQldCS0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JjQk9CK0JDQogor0JzQkNCg0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JjQoNCV0J3QkAor0JzQkNCg0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQmNCS0JrQngor0JzQkNCg0JrQntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQkNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQngor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQngor0JzQkNCg0JrQntCS0JjQiyDQiNCj0JvQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQo9Cb0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQmtCQ0KDQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCg0J7Qm9CY0J3QkAor0JzQkNCg0JrQntCS0JjQiyDQmtCQ0KLQkAor0JzQkNCg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQntCh0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0J7QodCi0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQoNCQ0KHQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQm9CV0J/QntCh0JDQktCQINCb0JXQmtCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCb0KPQmtCQCivQnNCQ0KDQmtCe0JLQmNCLLdCc0JDQiNCi0JXQitCYINCQ0J3QlNCg0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLLdCc0JDQiNCi0JXQitCYINCc0JjQpdCQ0IkKK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JXQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ca0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCJ0KPQkQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQkNCg0JrQntCS0JjQiyDQndCQ0KLQkNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCg0JrQntCS0JjQiyDQndCV0JPQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0JzQkNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCQ0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0J7QkdCg0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQiNCn0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoCDQktCV0KLQldCg0JjQndCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCg0J7QndCY0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQkNCg0JrQntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSINCU0KAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JjQndCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KDQkNCi0JrQngor0JzQkNCg0JrQntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0JzQkNCg0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQkNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCc0JjQidCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0KDQgtCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QkAor0JzQkNCg0JrQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQodCi0JXQpNCQ0J3QmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQntCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCi0JDQndCQ0KHQmNCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KLQntCU0J7QoAor0JzQkNCg0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCj0JPQidCV0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQktCQ0KHQkAor0JzQkNCg0JrQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVINCU0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCg0JrQntCS0JjQiyDQktCV0InQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQi9CQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQlNCe0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQlAor0JzQkNCg0JrQntCS0JjQiyDQktCY0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0J7QiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JLQntCI0JjQnQor0JzQkNCg0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0JvQkNCi0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JfQm9CQ0KLQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JzQkNCg0JrQntCS0JjQi9CQ0J0g0IjQntCdCivQnNCQ0KDQmtCe0JLQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCJ0JXQkiDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QktCh0JrQmCDQptCS0JXQotCQ0J3QkAor0JzQkNCg0JrQntCS0KHQmtCYINCI0J7QktCQ0J0KK9Cc0JDQoNCa0KHQldCgINCY0JLQkNCdCivQnNCQ0KDQmtCh0JXQoCDQiNCe0JLQkNCdCivQnNCQ0KDQmtCj0Kgg0JDQndCa0JjQptCQCivQnNCQ0KDQmtCj0Kgg0JHQntCg0JjQodCb0JDQkgor0JzQkNCg0JrQo9CoINCV0JzQmNCbCivQnNCQ0KDQmtCj0Kgg0JXQotCV0JvQmtCQCivQnNCQ0KDQmtCj0Kgg0IjQntCh0JjQnwor0JzQkNCg0JrQo9CoINCf0KDQldCU0KDQkNCTCivQnNCQ0KDQmtCj0Kgg0JfQntCg0JDQnQor0JzQkNCg0JrQo9Co0JXQkiDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JrQo9Co0JXQkiDQiNCV0JvQldCd0JAKK9Cc0JDQoNCb0J7QkyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQntCoINCU0KPQqNCQ0J0KK9Cc0JDQoNCe0Kgg0JzQmNCb0J7QktCQ0J0KK9Cc0JDQoNCe0Kgg0KHQotCV0JLQkNCdCivQnNCQ0KDQntCoINCS0JXQidCa0J4KK9Cc0JDQoNCe0KjQkNCdINCi0JjQpdCe0JzQmNCgCivQnNCQ0KDQntCo0JXQkiDQmtCg0JjQodCi0JAKK9Cc0JDQoNCe0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCg0J7QqNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQoNCe0KjQldCS0JjQiyDQnNCQ0KLQkAor0JzQkNCg0J7QqNCV0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQoNCe0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQntCC0Jgg0JjQktCQ0J0KK9Cc0JDQoNCe0ILQmCDQiNCe0JvQkNCdCivQnNCQ0KDQntCC0Jgg0IjQntCb0JDQnQor0JzQkNCg0J7QptCYINCc0JDQoNCT0JjQotCQCivQnNCQ0KDQntCI0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCe0IjQldCS0JjQiyDQmNCS0JDQndCa0JAKK9Cc0JDQoNCe0IjQldCS0JjQiyDQiNCe0KHQmNCfCivQnNCQ0KDQntCI0JXQktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cc0JDQoNCe0IjQldCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCQ0KDQntCb0JQg0IjQntCh0JjQnwor0JzQkNCg0J7Qm9CYINCY0KHQkNCaCivQnNCQ0KDQntCdINCU0JXQndCV0KgKK9Cc0JDQoNCe0J0g0JrQkNCg0JvQngor0JzQkNCg0J7QodCb0JDQktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0J7QoiDQmNCS0JDQnQor0JzQkNCg0J7QotCYINCc0JjQmtCb0J7QqAor0JzQkNCg0J7QktCY0Isg0ILQo9Cg0JAKK9Cc0JDQoNCe0JLQmNCLINCR0J7QoNCY0KEg0JTQoAor0JzQkNCg0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JDQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCg0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCg0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCe0JLQmNCLINCX0JTQldCd0JrQkAor0JzQkNCg0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cc0JDQoNCh0JXQndCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cc0JDQoNCh0JXQndCY0Isg0JvQldCa0JAKK9Cc0JDQoNCh0JXQndCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0JzQkNCg0KLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KDQotCY0Isg0ILQo9Cg0JAKK9Cc0JDQoNCi0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JDQoNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCi0JjQiyDQmtCe0KHQotCQCivQnNCQ0KDQotCY0Isg0JvQkNCX0JDQoAor0JzQkNCg0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQotCY0Isg0JzQkNCg0JAKK9Cc0JDQoNCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCi0JjQiyDQntCb0JPQkAor0JzQkNCg0KLQmNCLINCf0JXQoNCeCivQnNCQ0KDQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQoNCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQkNCg0KLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCi0JjQiyDQktCe0IjQndCQCivQnNCQ0KDQotCY0KbQmtCYINCc0JvQkNCU0JXQnQor0JzQkNCg0KLQmNCdINCQ0JvQntCI0JfQmNCI0JUKK9Cc0JDQoNCi0JjQnSDQkNCd0KLQkNCbCivQnNCQ0KDQotCY0J0g0JXQndCU0KDQlQor0JzQkNCg0KLQmNCdINCV0KDQltCV0JHQldCiCivQnNCQ0KDQotCY0J0g0JjQnNCg0JUKK9Cc0JDQoNCi0JjQnSDQmNCS0JDQnQor0JzQkNCg0KLQmNCdINCI0J7QodCY0KQKK9Cc0JDQoNCi0JjQnSDQiNCe0JLQkNCdCivQnNCQ0KDQotCY0J0g0InQo9CR0JjQndCa0JAKK9Cc0JDQoNCi0JjQnSDQnNCQ0KLQmNCb0JTQkAor0JzQkNCg0KLQmNCdINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQkNCg0KLQmNCdINCX0JLQntCd0JjQnNCY0KAKK9Cc0JDQoNCi0JjQndCn0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCi0JjQndCn0JjQiyDQlNCQ0JLQntCgCivQnNCQ0KDQotCY0J3Qp9CY0Isg0JTQkNCS0J7QoAor0JzQkNCg0KLQmNCd0JDQqNCV0JLQmNCLINCl0JXQoNCc0JjQndCQCivQnNCQ0KDQotCY0J3QkNCo0JXQktCY0Isg0J7QotCeCivQnNCQ0KDQotCY0J3QkNCaINCI0J7QktCQ0J0KK9Cc0JDQoNCi0JjQndCV0KYg0JDQndCi0J7QnQor0JzQkNCg0KLQmNCd0JXQmiDQkNCd0KLQkNCbCivQnNCQ0KDQotCY0J3QldCaINCk0JXQoNCV0J3Qpgor0JzQkNCg0KLQmNCd0JrQniDQkNCd0JTQoNCY0IjQkAor0JzQkNCg0KLQmNCd0J7QkiDQgtCe0KDQgtCVCivQnNCQ0KDQotCY0J3QntCSINCQ0J3QmtCQCivQnNCQ0KDQotCY0J3QntCSINCb0JDQl9CQ0KAKK9Cc0JDQoNCi0JjQndCe0JIg0JzQmNCa0JAKK9Cc0JDQoNCi0JjQndCe0JIg0JzQmNCb0JDQnSDQlNCgCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9CY0KbQkAor0JzQkNCg0KLQmNCd0J7QkiDQnNCY0JvQntCoCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9Ce0KgKK9Cc0JDQoNCi0JjQndCe0JIg0JzQmNCb0J7QqAor0JzQkNCg0KLQmNCd0J7QkiDQodCQ0J3QlNCg0JAKK9Cc0JDQoNCi0JjQndCe0JIg0KHQkNCS0JAKK9Cc0JDQoNCi0JjQndCe0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQotCY0J3QntCSINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCQ0J3QkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JDQndCY0KLQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQpNCY0JvQmNCfCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQpNCY0J3QmtCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQmNCS0J4KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnSDQktCV0KLQldCg0JjQndCQ0KAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JzQmNCb0JUKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCe0JvQk9CQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KDQmNCh0KLQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQodCi0JDQndCY0KjQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCj0KDQntCoCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JfQkNCg0JjQiNCVCivQnNCQ0KDQotCY0J3QntCS0KHQmtCYINCg0J7QnNCQ0J0KK9Cc0JDQoNCi0J7QnSDQqNCQ0J3QlNCe0KAKK9Cc0JDQoNCi0J7QnSDQltCj0JbQkNCd0JAKK9Cc0JDQoNCi0J7QnSDQkNCd0JTQoNCQ0KgKK9Cc0JDQoNCi0J7QnSDQpNCV0KDQldCd0KYKK9Cc0JDQoNCi0J7QnSDQmNCo0KLQktCQ0J0KK9Cc0JDQoNCi0J7QnSDQmNCb0JXQqAor0JzQkNCg0KLQntCdINCI0J7QltCV0KQKK9Cc0JDQoNCi0J7QnSDQiNCe0JbQldCkCivQnNCQ0KDQotCe0J0g0IjQntCb0JDQnQor0JzQkNCg0KLQntCdINCb0JDQiNCe0KgKK9Cc0JDQoNCi0J7QnSDQnNCQ0IvQkNCoCivQnNCQ0KDQotCe0J0g0JzQkNCg0JjQiNCQCivQnNCQ0KDQotCe0J0g0KDQntCX0JAKK9Cc0JDQoNCj0KjQp9Cj0Jog0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0KPQqNCV0JLQmNCLINCY0JLQkNCdCivQnNCQ0KDQo9Co0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCj0KjQmNCLINCk0KDQkNCK0JAKK9Cc0JDQoNCj0KjQmNCLINCT0J7QoNCQ0J0KK9Cc0JDQoNCj0KjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQoNCj0KjQmNCLINCJ0KPQkdCeCivQnNCQ0KDQo9Co0JjQiyDQnNCY0J7QoNCY0KbQkAor0JzQkNCg0KPQqNCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JDQoNCj0KjQmNCLINCe0JvQk9CQCivQnNCQ0KDQo9Co0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCj0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCj0J3QmNCLINCR0J7QodCY0InQmtCQCivQnNCQ0KDQo9Cd0JrQmNCLINCc0JjQm9CY0J3QkAor0JzQkNCg0KPQndCe0JLQmNCLINCR0JvQkNCT0J7QotCQCivQnNCQ0KHQm9CQ0Isg0JDQndCi0JUKK9Cc0JDQodCb0JDQiyDQnNCY0JvQldCd0JrQngor0JzQkNCh0JvQkNCLINCg0JDQiNCa0J4KK9Cc0JDQodCb0JDQiyDQktCY0J3QmtCeCivQnNCQ0KHQm9Ce0JLQkNCg0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgCivQnNCQ0KHQndCV0KYg0JDQndCa0JAKK9Cc0JDQodCd0JjQmtCe0KHQkCDQpNCV0JzQmtCQCivQnNCQ0KHQndCY0JrQntCh0JAg0KTQldCc0JrQkAor0JzQkNCh0J3QntCSINCg0J7Ql9CQ0JvQmNCI0JAKK9Cc0JDQodCi0JjQmtCe0KHQkCDQlNCg0JDQk9CY0KbQkAor0JzQkNCh0KLQmNCa0J7QodCQINCd0JjQmtCeCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQodCi0JjQm9Ce0JLQmNCLINCc0JjQoNCQCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQkNCh0KLQmNCb0J7QktCY0Isg0J/Qm9CV0JzQkAor0JzQkNCh0KLQmNCb0J7QktCY0Isg0KDQkNCd0JrQngor0JzQkNCi0JDQiNCn0JjQiyDQpNCg0JDQitCeCivQnNCQ0KLQkNCI0KfQmNCLINCY0JLQkNCdCivQnNCQ0KLQkNCaINCc0JDQoNCY0IjQkAor0JzQkNCi0JDQmiDQnNCQ0KDQiNCQ0J0KK9Cc0JDQotCQ0Jog0JLQldCh0J3QkAor0JzQkNCi0JDQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0JzQkNCi0JDQndCe0JIg0IjQkNCh0JzQmNCd0JAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQlNCV0JfQmNCU0JXQoAor0JzQkNCi0JDQndCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCi0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQotCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JDQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JzQkNCi0JDQoNCj0JPQkCDQidCY0InQkNCd0JAKK9Cc0JDQotCQ0KDQo9CT0JAg0JzQmNCb0JrQkAor0JzQkNCi0JDQoNCj0JPQkCDQn9CQ0JLQm9CVCivQnNCQ0KLQkNCg0KPQk9CQINCX0JDQk9Ce0KDQmtCQCivQnNCQ0KLQkNCg0KPQk9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCQ0KHQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCi0JDQktCj0Ikg0JzQmNCb0JjQptCQCivQnNCQ0KLQlSDQldCi0JXQm9Ca0JAKK9Cc0JDQotCVINCT0JjQl9CV0JvQkAor0JzQkNCi0JUg0JLQldCd0JTQldCbINCU0KAKK9Cc0JDQotCV0KfQmNCaINCc0JjQmtCb0J7QqAor0JzQkNCi0JXQiNCQ0KjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQldCI0JDQqNCV0JIg0KHQktCV0KLQntCX0JDQoAor0JzQkNCi0JXQiNCQ0KjQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCV0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQotCV0IjQldCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JDQotCV0IjQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQkNCi0JXQiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQotCV0IjQldCS0JjQiyDQl9CY0JvQlNCQCivQnNCQ0KLQldCI0JjQiyDQgtCj0KDQkAor0JzQkNCi0JXQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCV0IjQmNCLINCd0JDQlNCV0JbQlNCQCivQnNCQ0KLQldCI0JjQiyDQoNCQ0KLQmtCeCivQnNCQ0KLQldCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQotCV0IjQmNCLINCh0JvQkNCS0J7QidCj0JEg0JTQoCDQm9CV0JrQkNCgCivQnNCQ0KLQldCI0JjQnSDQgtCe0KDQgtCVCivQnNCQ0KLQldCI0JjQnSDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCV0IjQmNCdINCU0KDQkNCT0JjQiwor0JzQkNCi0JXQiNCY0J0g0JTQo9Co0JDQnQor0JzQkNCi0JXQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9Cc0JDQotCV0IjQmNCdINCS0JXQodCV0JvQmNCdCivQnNCQ0KLQldCa0JDQm9CeINCc0JjQm9Ca0JAKK9Cc0JDQotCV0JrQntCS0JjQiyDQodCc0JjQidCQCivQnNCQ0KLQldCe0JLQmNCLINCf0KPQkdCQINCU0KAKK9Cc0JDQotCV0JLQodCa0Jgg0JvQo9CY0ILQmAor0JzQkNCi0JjQp9CV0Jog0InQo9CU0JXQktCY0KIKK9Cc0JDQotCY0KjQkCDQmNCg0JXQndCQCivQnNCQ0KLQmNCo0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCi0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KLQmNCLINCW0JjQktCa0JAKK9Cc0JDQotCY0Isg0JbQmNCS0JrQngor0JzQkNCi0JjQiyDQltCY0JLQmtCeCivQnNCQ0KLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCQ0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQotCY0Isg0ILQntCg0ILQlQor0JzQkNCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KLQmNCLINCC0KPQoNCC0JjQptCQCivQnNCQ0KLQmNCLINCC0KPQoNCQINCU0KAKK9Cc0JDQotCY0Isg0JDQptCa0J4KK9Cc0JDQotCY0Isg0JDQptCa0J4KK9Cc0JDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCY0Isg0JDQndCa0JAKK9Cc0JDQotCY0Isg0JDQndCa0JjQptCQCivQnNCQ0KLQmNCLINCQ0KDQkNCd0JrQkAor0JzQkNCi0JjQiyDQkNCg0JDQndCa0JAKK9Cc0JDQotCY0Ist0JHQkNCj0KEg0JbQmNCS0JrQngor0JzQkNCi0JjQiy3QkdCV0JrQktCQ0JvQkNCmINCS0JXQodCd0JAKK9Cc0JDQotCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JzQkNCi0JjQiyDQkdCe0IjQkNCd0JAKK9Cc0JDQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KLQmNCLINCU0JDQnNCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQotCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQotCY0Isg0JTQntCR0KDQmNCm0JAKK9Cc0JDQotCY0Isg0JTQntCR0KDQmNCb0J4KK9Cc0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQotCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cc0JDQotCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQkNCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQkNCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQkNCi0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQotCY0Isg0JTQo9Co0JDQnQor0JzQkNCi0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JzQkNCi0JjQiyDQldCS0JAKK9Cc0JDQotCY0Isg0KTQmNCd0JrQkAor0JzQkNCi0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCi0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KLQmNCLINCI0JXQm9CV0J3QkAor0JzQkNCi0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQkNCi0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQkNCi0JjQiyDQiNCV0JvQmNCh0JDQktCa0JAKK9Cc0JDQotCY0Isg0IjQntCS0JDQnQor0JzQkNCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQotCY0Ist0JrQldCa0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQkNCi0JjQiyDQmtCg0JjQodCi0JjQndCQCivQnNCQ0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQotCY0Isg0JvQkNCX0JDQoAor0JzQkNCi0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQotCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0KLQmNCLINCJ0JjQidCQ0J3QkAor0JzQkNCi0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQotCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KLQmNCLINCJ0KPQkdCeCivQnNCQ0KLQmNCLINCb0KPQmtCQCivQnNCQ0KLQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0JzQkNCi0JjQiyDQnNCQ0KDQmNCm0JAKK9Cc0JDQotCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQotCY0Isg0JzQkNCg0JrQngor0JzQkNCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCi0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQotCY0Isg0JzQmNCb0J7QqAor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JDQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JDQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JDQotCY0Isg0JzQmNCg0JrQngor0JzQkNCi0JjQiyDQndCQ0JTQkAor0JzQkNCi0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQkNCi0JjQiyDQndCQ0KLQkNCo0JAKK9Cc0JDQotCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCi0JjQiyDQndCV0JPQntCS0JDQnQor0JzQkNCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQotCY0Isg0J3QntCS0JjQptCQCivQnNCQ0KLQmNCLINCf0JDQktCQCivQnNCQ0KLQmNCLINCf0JDQktCb0JUKK9Cc0JDQotCY0Isg0J/QkNCS0JvQlQor0JzQkNCi0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCY0Isg0J/Qm9CQ0J3QmNCd0JrQkAor0JzQkNCi0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQkNCi0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQkNCi0JjQiyDQoNCQ0JTQlQor0JzQkNCi0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCi0JjQiyDQoNCQ0JTQntCI0JUKK9Cc0JDQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCi0JjQiyDQoNCQ0IjQmtCeCivQnNCQ0KLQmNCLINCh0JDQktCQCivQnNCQ0KLQmNCLINCh0JjQnNCQCivQnNCQ0KLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KLQmNCLINCh0KLQkNCd0JrQngor0JzQkNCi0JjQiyDQodCi0JDQndCa0J4KK9Cc0JDQotCY0Isg0KHQotCQ0JfQkAor0JzQkNCi0JjQiyDQodCi0JjQn9CeCivQnNCQ0KLQmNCLINCh0KLQntCI0JDQnQor0JzQkNCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCi0JjQiyDQotCe0JzQkAor0JzQkNCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0KLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cc0JDQotCY0Isg0JLQldCh0JXQm9CY0J0KK9Cc0JDQotCY0Isg0JLQmNCU0JAKK9Cc0JDQotCY0Isg0JLQmNCi0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQkNCi0JjQiyDQktCb0JDQodCi0JjQnNCY0KAg0JzQoAor0JzQkNCi0JjQiyDQktCj0IjQmNCm0JAKK9Cc0JDQotCY0Isg0JLQo9Ca0JjQptCQCivQnNCQ0KLQmNCLINCX0JDQk9Ce0KDQmtCQCivQnNCQ0KLQmNCLINCX0JTQoNCQ0JLQmtCQCivQnNCQ0KLQmNCLINCX0J7QoNCQCivQnNCQ0KLQmNCm0JrQmCDQnNCY0JvQkNCd0JAg0JTQoAor0JzQkNCi0JjQptCa0Jgg0JzQmNCb0J7QqAor0JzQkNCi0JjQiNCQ0Kgg0JjQm9CY0IjQkAor0JzQkNCi0JjQiNCQ0KjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCI0JDQqNCV0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0IjQldCb0JrQkAor0JzQkNCi0JjQiNCQ0KjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JzQkNCg0JrQngor0JzQkNCi0JjQiNCQ0KjQldCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQkNCi0JjQiNCQ0KjQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQmtCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0JDQndCi0JjQptCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0JDQndCi0KPQnQor0JzQkNCi0JjQiNCV0JLQmNCLINCR0J7QiNCQ0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQotCY0IjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCk0KDQkNCd0KfQmNCo0JrQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JDQotCY0IjQldCS0JjQiyDQiNCe0KHQmNCfCivQnNCQ0KLQmNCI0JXQktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQm9CQ0IjQntCoCivQnNCQ0KLQmNCI0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0JzQmNCb0JUKK9Cc0JDQotCY0IjQldCS0JjQiyDQnNCY0JvQntCI0JrQngor0JzQkNCi0JjQiNCV0JLQmNCLINCf0JXQoNCeCivQnNCQ0KLQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCI0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JDQotCY0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0IjQldCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JzQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0JfQntCg0JAKK9Cc0JDQotCY0J0g0JTQntCg0J7QotCV0JAKK9Cc0JDQotCY0J0g0IjQntCh0JjQnwor0JzQkNCi0JjQnSDQm9CQ0IjQntCoCivQnNCQ0KLQmNCdINCc0JDQotCY0IjQkAor0JzQkNCi0JjQoSDQqNCQ0J3QlNCe0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cc0JDQotCY0KEg0KjQkNCd0JTQntCgCivQnNCQ0KLQiNCQ0KfQmNCLINCS0JjQndCa0J4KK9Cc0JDQotCa0J4g0JXQktCQCivQnNCQ0KLQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQotCa0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCi0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCi0JrQntCS0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQnNCQ0KLQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQkNCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQotCa0J7QktCY0Isg0JzQntCc0JjQoAor0JzQkNCi0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCi0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQnNCQ0KLQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JzQkNCi0JrQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCeCivQnNCQ0KLQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JzQkNCi0JrQntCS0JjQiyDQl9CU0JXQndCa0JAg0JTQoAor0JzQkNCi0J7QqNCV0JLQmNCLINCY0JLQkNCdCivQnNCQ0KLQntCo0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQotCe0KjQmtCe0JLQmNCLINCQ0JPQkNCi0JAKK9Cc0JDQotCe0KjQmtCe0JLQmNCLINCi0JXQoNCV0JfQkAor0JzQkNCi0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cc0JDQotCe0JLQmNCLINCQ0J3QkAor0JzQkNCi0J7QktCY0Isg0JHQntCW0JDQndCQCivQnNCQ0KLQntCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCQ0KLQntCS0JjQiyDQkdCe0KDQngor0JzQkNCi0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KLQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQotCe0JLQmNCLINCU0JDQoNCeCivQnNCQ0KLQntCS0JjQiyDQlNCV0KHQkAor0JzQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cc0JDQotCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KLQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JzQkNCi0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQotCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQlQor0JzQkNCi0J7QktCY0Ist0JzQmNCb0JjQiyDQkdCQ0KLQoNCY0IsKK9Cc0JDQotCe0JLQmNCLINCc0JjQm9CY0IsKK9Cc0JDQotCe0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQnNCQ0KLQntCS0JjQiyDQndCQ0KLQkNCo0JAKK9Cc0JDQotCe0JLQmNCLINCf0JDQktCb0JUKK9Cc0JDQotCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JDQotCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQnNCQ0KLQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0KLQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JzQkNCi0J7QktCY0J3QkCDQpNCg0JDQitCQCivQnNCQ0KLQntCS0JjQndCQINCT0J7QoNCQ0J0KK9Cc0JDQotCe0JLQmNCd0JAg0JzQkNCg0JrQngor0JzQkNCi0KDQkNCaINCU0KDQkNCT0JDQnQor0JzQkNCi0KPQqCDQiNCQ0J0KK9Cc0JDQotCj0KjQmtCQINCc0JDQoNCi0J7QnQor0JzQkNCi0KPQidCY0J0g0JjQk9CK0JDQpgor0JzQkNCi0KPQodCa0Jgg0KHQntCK0JAKK9Cc0JDQotCS0JjQmtCe0JIg0JXQo9CT0JXQndCY0IjQlQor0JzQkNCj0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0KPQmyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCj0KDQmNCLINCk0JXQoNCV0J3Qpgor0JzQkNCj0KDQmNCLINCT0JXQl9CQCivQnNCQ0KPQoNCY0Isg0J3QldCd0JDQlAor0JzQkNCS0JjQiyDQodCg0ILQkNCdCivQnNCQ0JLQoNCQ0Jog0JjQnNCg0JUKK9Cc0JDQktCg0JXQndCh0JrQmCDQkdCe0JPQlNCQ0J0KK9Cc0JDQktCg0JXQndCh0JrQmCDQkdCe0KDQmtCeCivQnNCQ0JLQoNCV0J3QodCa0Jgg0JjQktCY0KbQkAor0JzQkNCS0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQl9CQ0JvQmNCm0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0JfQkNCb0JjQptCQINCU0KPQqNCQ0J0KK9Cc0JDQl9CQ0JvQmNCm0JAg0JPQntCI0JrQngor0JzQkNCX0JDQm9CY0KbQkCDQidCj0JHQngor0JzQkNCX0JDQm9CY0KbQkCDQnNCQ0KDQmNCI0JAKK9Cc0JDQl9CQ0JvQmNCm0JAg0KDQkNCI0JrQngor0JzQkNCX0JDQm9CY0KbQkCDQodCd0JXQltCQ0J3QkAor0JzQkNCX0JDQm9CY0KbQkCDQo9Cg0J7QqAor0JzQkNCX0JDQm9CY0KbQkCDQktCQ0KHQngor0JzQkNCX0JDQm9CY0KbQkCDQktCV0InQmtCeCivQnNCQ0JfQkNCd0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQnNCQ0JfQkNCd0IvQmNCaINCf0JDQiNCQCivQnNCQ0JfQkNCK0Jgg0JrQkNCg0JvQngor0JzQkNCX0JjQiyDQltCY0JLQmtCeCivQnNCQ0JfQmNCLINCR0KDQkNCd0JrQngor0JzQkNCX0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQl9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQl9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQl9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCX0JjQiyDQn9Cb0JXQotCY0JrQntCh0JAKK9Cc0JDQl9CY0IrQkNCd0JjQnSDQlNCj0KjQkNCdCivQnNCQ0JfQm9CQ0JzQmCDQj9CQ0JHQmNCgCivQnNCQ0JfQo9CgINCS0KPQmtCY0KbQkAor0JzQpi3QptCe0J3QndCV0JvQmyDQnNCQ0KDQotCQCivQnNCV0KfQmtCQ0KDQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0JzQldCn0JrQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCV0KfQmtCY0Isg0KHQm9CQ0JLQmtCeCivQnNCV0KjQkNCd0J7QktCY0Isg0KXQkNCX0JjQnAor0JzQldCo0KLQldCgINCY0KDQldCd0JAKK9Cc0JXQqNCi0JXQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQldCo0KLQoNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCV0IvQkNCS0JAg0JHQoNCQ0J3QmtCeCivQnNCV0IvQkNCS0JAg0JTQoNCQ0JPQkNCdCivQnNCV0IvQkNCS0JAg0JzQmNCb0JDQnQor0JzQldCC0JDQndCY0J0g0JTQo9Co0JDQnQor0JzQldCC0JXQqNCYINCJ0KPQkdCe0JzQmNCgCivQnNCV0ILQldCo0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQldCC0JXQlCDQnNCQ0KDQmNCm0JAKK9Cc0JXQgtCV0JTQntCS0JjQiyDQgtCe0KDQgtCY0IjQlQor0JzQldCC0JXQlNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQldCC0JXQlNCe0JLQmNCLINCU0JDQndCY0JvQngor0JzQldCC0JXQlNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JXQgtCV0JTQntCS0JjQiyDQlNCg0JDQk9CeCivQnNCV0ILQldCU0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQldCC0JXQlNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCV0ILQldCU0J7QktCY0Isg0J3QldCc0JDQitCQCivQnNCV0ILQldCU0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JXQgtCV0KDQmCDQktCV0KDQntCd0JjQmtCQCivQnNCV0ILQmNCc0J7QoNCV0KYg0JXQlNCj0JDQoNCUCivQnNCV0ILQmNCc0J7QoNCV0KYg0InQo9CR0J7QnNCY0KAKK9Cc0JXQgtCY0JzQntCg0JXQpiDQodCi0IjQldCf0JDQnQor0JzQldCC0JjQnNCe0KDQldCmINCS0JjQmtCi0J7QoAor0JzQldCQ0JzQj9CY0IjQkCDQnNCY0KDQkAor0JzQldCQ0J3Qj9CY0Isg0KHQm9CQ0JLQmtCeCivQnNCV0KbQkNCd0J7QkiDQodCi0J7QiNCQ0J3QmtCQCivQnNCV0JTQkNCa0J7QkiDQltCY0JLQmtCeCivQnNCV0JTQkNCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cc0JXQlNCQ0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JXQlNCQ0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JXQlNCQ0JrQntCSINCc0JjQidCQ0J3QkAor0JzQldCU0JDQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JXQlNCQ0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JXQlNCQ0JrQntCS0JjQiyDQlNCQ0JzQmNCgCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQldCU0JDQmtCe0JLQmNCLINCY0JvQlNCY0JrQngor0JzQldCU0JDQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCV0JTQkNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCV0JTQkNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCV0JTQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQldCU0JDQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCV0JTQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCV0JTQkNCdINCU0KDQkNCT0JjQitCQCivQnNCV0JTQkNCdINCc0JDQndCe0IjQm9CeCivQnNCV0JTQkNCdINCc0JjQm9CV0J3QmtCeCivQnNCV0JTQkNCdINCc0JjQm9CV0J3QmtCeCivQnNCV0JTQkNCdINCc0JjQm9CV0J3QmtCeCivQnNCV0JTQkNCdINCc0JjQm9Ce0KDQkNCUCivQnNCV0JTQkNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JXQlNCQ0J0g0KDQkNCU0JXQndCa0J4KK9Cc0JXQlNCQ0J0g0KHQm9CQ0JLQmNCm0JAKK9Cc0JXQlNCQ0J0g0KHQn9CQ0KHQntCI0JUKK9Cc0JXQlNCQ0J0g0JLQldCb0JjQnNCY0KAKK9Cc0JXQlNCQ0J0g0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCV0JTQkNCd0J7QktCh0JrQmCDQkdCe0KDQmNChCivQnNCV0JTQkNCgINCS0KPQp9Ca0J4KK9Cc0JXQlNCQ0KDQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JXQlNCQ0KDQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JXQlNCQ0KDQldCS0JjQiyDQodCi0JDQndCQCivQnNCV0JTQldCd0JjQptCQINCC0KPQoNCC0JjQptCQCivQnNCV0JTQldCd0JjQptCQINCC0KPQoNCeCivQnNCV0JTQldCd0JjQptCQINCR0J7QodCY0InQmtCQCivQnNCV0JTQldCd0JjQptCQINCc0JjQm9CY0KHQkNCSCivQnNCV0JTQldCd0JjQptCQINCg0JDQlNCe0JzQmNCgCivQnNCV0JTQldCd0JjQptCQINCh0J3QldCW0JDQndCQCivQnNCV0JTQldCd0JjQptCQINCh0J3QldCW0JDQndCQCivQnNCV0JTQldCd0JjQptCQINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JXQlNCV0J3QmNCm0JAg0JLQntCI0JjQodCb0JDQkgor0JzQldCU0JXQoCDQgtCe0KDQgtCVCivQnNCV0JTQldCgINCI0JXQm9CV0J3QkAor0JzQldCU0JjQiyDQgtCj0KDQkAor0JzQldCU0JjQiyDQgtCj0KDQkAor0JzQldCU0JjQiyDQkdCe0KjQmtCeCivQnNCV0JTQmNCLINCR0J7Qk9CU0JDQnQor0JzQldCU0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JXQlNCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JXQlNCY0Isg0JHQoNCQ0J3QmtCQCivQnNCV0JTQmNCLINCU0JDQndCVCivQnNCV0JTQmNCLINCU0JDQndCVCivQnNCV0JTQmNCLINCU0JDQndCY0KbQkAor0JzQldCU0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQldCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCV0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQnNCV0JTQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQlNCY0Isg0JTQo9Co0JDQnQor0JzQldCU0JjQiyDQk9Ce0IjQmtCeCivQnNCV0JTQmNCLINCY0JvQmNCI0JAKK9Cc0JXQlNCY0Isg0JjQm9CY0IjQkAor0JzQldCU0JjQiyDQmNCb0JjQiNCQCivQnNCV0JTQmNCLINCb0JDQl9CQ0KAKK9Cc0JXQlNCY0Isg0JzQmNCL0J4KK9Cc0JXQlNCY0Isg0JzQmNCb0JDQnQor0JzQldCU0JjQiyDQnNCY0JvQkNCdCivQnNCV0JTQmNCLINCc0JjQm9CVCivQnNCV0JTQmNCLINCc0JjQm9CY0KbQkAor0JzQldCU0JjQiyDQnNCY0JvQmtCQCivQnNCV0JTQmNCLINCc0JjQm9Ce0KgKK9Cc0JXQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JXQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JXQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JXQlNCY0Isg0JzQmNCg0JAKK9Cc0JXQlNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JXQlNCY0Isg0JzQmNCg0JrQngor0JzQldCU0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQldCU0JjQiyDQndCY0JrQntCb0JAKK9Cc0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQmNCLINCf0JXQotCQ0KAKK9Cc0JXQlNCY0Isg0KDQkNCU0JUKK9Cc0JXQlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JXQlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JXQlNCY0Isg0KHQkNCS0J4KK9Cc0JXQlNCY0Isg0KHQmNCc0J4KK9Cc0JXQlNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCV0JTQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCV0JTQmNCLINCh0JzQmNCJ0JAKK9Cc0JXQlNCY0Isg0KHQotCV0JLQkNCdCivQnNCV0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JXQlNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cc0JXQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JXQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JXQlNCY0Isg0JfQntCg0JDQnQor0JzQldCU0JjQiyDQl9Ce0KDQkAor0JzQldCU0J7QqCDQo9Cg0J7QqAor0JzQldCU0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQldCi0JAKK9Cc0JXQlNCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JXQlNCe0JLQkNCg0KHQmtCYINCk0KDQkNCK0JAKK9Cc0JXQlNCe0JLQkNCg0KHQmtCYINCc0JjQqNCQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQn9CY0KDQntCo0JrQkAor0JzQldCU0J7QktCQ0KDQodCa0Jgg0J/QmNCg0J7QqNCa0JAKK9Cc0JXQlNCe0JLQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JzQldCU0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMg0JTQoAor0JzQldCU0KPQitCQ0J3QmNCdINCk0JXQkdCg0J7QndCQCivQnNCV0JTQo9CK0JDQndCY0J0g0JjQodCY0JTQntCgCivQnNCV0JTQo9Cg0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JXQlNCj0KDQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JXQlNCj0KDQmNCLINCT0J7QoNCQ0J0KK9Cc0JXQlNCj0KDQmNCLINCY0KDQldCd0JAKK9Cc0JXQlNCj0KDQmNCLINCI0JXQm9CV0J3QkAor0JzQldCU0KPQoNCY0Isg0JrQntCh0KLQkAor0JzQldCU0KPQoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JXQlNCj0KDQmNCLINCf0JXQotCQ0KAKK9Cc0JXQlNCj0KDQmNCLINCh0JzQmNCJ0JAKK9Cc0JXQlNCj0KDQmNCLINCX0JvQkNCi0JAKK9Cc0JXQlNCS0JXQlNCe0JLQmNCLINCU0KDQkNCT0JAKK9Cc0JXQk9Cb0JDQiCDQkdCe0KHQmNCJ0JrQkAor0JzQldCl0JDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQldCl0JDQndCP0JjQodCa0Jgg0JLQldCd0JrQngor0JzQldCl0JzQldCi0Jgg0KXQmNCh0JXQnQor0JzQldCl0JzQldCi0Jgg0KDQkNCk0JXQogor0JzQldCl0JzQldCi0J7QiCDQpdCQ0KHQkNCdCivQnNCV0IjQmNCLINCd0JXQktCV0J3QmtCQCivQnNCV0JrQldCK0JjQqNCQ0KYg0JLQldCh0JXQm9CY0J0KK9Cc0JXQmtCV0IrQmNCo0JDQpiDQl9Ce0KDQkNCdCivQnNCV0JrQmNCLINCh0J7QpNCY0IjQkAor0JzQldCa0JjQndCU0JAg0JzQkNCg0JjQiNCQ0J0g0JTQoAor0JzQldCa0JjQndCU0JAg0JzQmNCg0IjQkNCd0JAKK9Cc0JXQmtCY0J3QmNCLINCQ0J3QotCVCivQnNCV0JrQmNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQldCa0JjQndCY0Isg0KLQntCd0JrQkAor0JzQldCb0JDQoCDQkNCd0JTQoNCQ0KgKK9Cc0JXQm9CQ0KAg0IjQldCb0JXQndCQCivQnNCV0JvQkNCgINCJ0KPQlNCV0JLQmNCiCivQnNCV0JvQldCTINCI0JDQndCa0J4KK9Cc0JXQm9CV0JMg0IjQntCS0JDQnQor0JzQldCb0JXQkyDQiNCe0JLQkNCdCivQnNCV0JvQldCTINCc0JjQqNCQCivQnNCV0JvQldCTINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JXQm9CV0KDQoiDQktCV0J3QlNCV0JsKK9Cc0JXQm9CY0J3QmiDQlNCj0KjQkNCd0JrQkAor0JzQldCb0JjQndCaINCI0J7QpdCQ0J0KK9Cc0JXQidCQINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JXQidCa0KPQotCYINCk0JXQoNCV0J3Qpgor0JzQldCJ0JrQo9Ci0Jgg0IjQntCW0JXQpAor0JzQldCJ0JrQo9Ci0Jgg0JrQkNCg0JvQngor0JzQldCJ0JrQo9Ci0Jgg0J7QoNCR0JDQnQor0JzQldCJ0J3QmNCaINCY0JvQmNCI0JAKK9Cc0JXQidCd0JjQmtCe0JIg0JTQldCh0JDQndCa0JAKK9Cc0JXQm9Ca0KPQoSDQkdCe0JbQkAor0JzQldCb0JrQo9ChINCR0J7QoNCY0JLQntCICivQnNCV0JvQmtCj0KEg0JrQkNCi0JjQptCQCivQnNCV0JvQmtCj0KEg0JzQmNCg0IjQkNCd0JAKK9Cc0JXQm9Ca0KPQoSDQktCe0IjQmNCh0JvQkNCSCivQnNCV0JvQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQldCb0J7QktCY0Isg0JTQldCI0JDQnQor0JzQldCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JXQm9CS0JDQnSDQldCg0JbQldCR0JXQogor0JzQldCb0JLQkNCdINCf0JXQotCQ0KAKK9Cc0JXQm9CS0JDQnSDQl9Ce0KDQkNCdCivQnNCV0JvQktCY0J3Qk9CV0KAg0JDQm9Ce0IjQl9CY0IjQkAor0JzQldCc0JDQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0JzQldCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQldCc0JXQlNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCV0JzQldCU0J7QktCh0JrQmCDQo9CX0JXQmNCgCivQnNCV0JzQmNCo0JXQktCY0Isg0JjQkdCg0JDQpdCY0JwKK9Cc0JXQnNCY0KjQldCS0JjQiyDQmNCh0JzQkNCY0JsKK9Cc0JXQnNCY0KjQldCS0JjQiyDQnNCQ0KDQiNCQ0J0KK9Cc0JXQnNCY0KjQldCS0JjQiyDQnNCV0KXQnNCV0JQKK9Cc0JXQnNCY0KjQldCS0JjQiyDQoNCQ0KjQmNCU0JAKK9Cc0JXQnNCY0KjQmCDQotCV0KTQmNCaCivQnNCV0JzQmNCP0JDQnSDQoNCV0I/Qngor0JzQldCd0ILQkNCdINCo0JDQndCU0J7QoAor0JzQldCd0ILQkNCdINCc0JDQoNCY0IjQkAor0JzQldCd0ILQkNCdINCf0JDQktCV0JsKK9Cc0JXQndCC0JDQnSDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Cc0JXQndCU0JXQkdCQ0JHQkCDQkdCe0KDQmNCh0JvQkNCSCivQnNCV0J3QlNCV0JHQkNCR0JAg0J/QkNCd0KLQkAor0JzQldCd0JTQldCbINCV0JvQmNCX0JDQkdCV0KLQkAor0JzQldCd0JTQoNCQ0JPQmNCLINCC0J7QoNCC0JUKK9Cc0JXQndCU0KDQldCYINCl0JXQm9CV0J3QkAor0JzQldCd0JXQqNCYINCR0JXQm9CQCivQnNCV0J3QldCo0Jgg0JjQoNCV0J3QkAor0JzQldCd0JXQqNCYINCb0JDQodCb0J4KK9Cc0JXQndCT0Jsg0JjQoNCV0J0KK9Cc0JXQndCT0Jsg0JvQkNCI0J7QqAor0JzQldCd0JjQp9CQ0J3QmNCdINCI0JXQm9CQCivQnNCV0J3QmNCn0JDQndCY0J0g0KHQotCV0JLQkNCdCivQnNCV0J3QmNCL0JDQndCY0J0g0J/QldCi0JDQoAor0JzQldCK0JDQmiDQmNCS0JDQnQor0JzQldCd0JfQmNCb0I/QmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0JzQldCg0Kcg0IjQkNCd0J7QqAor0JzQldCg0KfQkCDQodCi0JXQktCQ0J0KK9Cc0JXQoNCoINCc0JjQm9CQ0J0KK9Cc0JXQoNCW0JAg0JrQkNCg0J7QiQor0JzQldCg0ILQldCb0J7QqNCa0Jgg0JzQmNCb0JjQptCQCivQnNCV0KDQpiDQldCS0JAKK9Cc0JXQoNCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCV0KDQlNCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JXQoNCV0Jgg0JrQkNCi0JDQm9CY0J0KK9Cc0JXQoNCV0Jgg0JzQkNCg0JPQmNCi0JAKK9Cc0JXQoNCT0JDQndCmINCa0JDQotCY0KbQkAor0JzQldCg0JPQldCoINCI0JDQndCe0KgKK9Cc0JXQoNCT0JXQmyDQnNCQ0KDQmNCI0JAKK9Cc0JXQoNCY0KfQkNCgINCg0JDQlNCe0IjQmNCm0JAKK9Cc0JXQoNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JXQoNCa0J7QktCY0Isg0JDQm9Ce0IjQlwor0JzQldCg0JrQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cc0JXQoNCa0J7QktCY0Isg0IjQo9CU0JjQogor0JzQldCg0JrQntCS0JjQiyDQidCj0JTQldCS0JjQogor0JzQldCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JXQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQldCg0JrQntCS0JjQiyDQodCY0JvQktCY0JAKK9Cc0JXQoNCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCS0JAKK9Cc0JXQoNCa0J7QktCY0Isg0JLQldCg0JAKK9Cc0JXQoNCa0KPQm9Ce0JIg0InQmNCJ0JDQndCQCivQnNCV0KDQmtCS0JAg0JXQnNCQCivQnNCV0KDQmtCS0JAg0IjQntCW0JXQpAor0JzQldCg0IrQkNCaINCk0KDQkNCK0J4KK9Cc0JXQodCQ0Jog0J3QmNCa0J7Qm9CQCivQnNCV0KHQkNCg0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9Cc0JXQodCQ0KDQntCoINCo0JDQndCU0J7QoCDQlNCgCivQnNCV0KHQkNCg0J7QqCDQgtCj0KDQkAor0JzQldCh0JDQoNCe0Kgg0JDQndCU0KDQkNCoCivQnNCV0KHQkNCg0J7QqCDQkNCg0J/QkNCUCivQnNCV0KHQkNCg0J7QqCDQkNCi0JjQm9CQCivQnNCV0KHQkNCg0J7QqCDQkdCQ0JvQkNCWCivQnNCV0KHQkNCg0J7QqCDQpNCV0KDQldCd0KYKK9Cc0JXQodCQ0KDQntCoINCk0KDQkNCK0JAKK9Cc0JXQodCQ0KDQntCoINCT0JXQl9CQCivQnNCV0KHQkNCg0J7QqCDQk9CV0JfQkAor0JzQldCh0JDQoNCe0Kgg0JPQntCg0JDQnQor0JzQldCh0JDQoNCe0Kgg0JjQqNCi0JLQkNCdCivQnNCV0KHQkNCg0J7QqCDQmNCo0KLQktCQ0J0KK9Cc0JXQodCQ0KDQntCoINCY0JvQntCd0JAKK9Cc0JXQodCQ0KDQntCoINCY0JvQntCd0JAKK9Cc0JXQodCQ0KDQntCoINCY0JzQoNCVCivQnNCV0KHQkNCg0J7QqCDQiNCV0JvQldCd0JAKK9Cc0JXQodCQ0KDQntCoINCI0JXQm9CY0KbQkAor0JzQldCh0JDQoNCe0Kgg0IjQntCh0JjQpAor0JzQldCh0JDQoNCe0Kgg0IjQntCh0J4KK9Cc0JXQodCQ0KDQntCoINCa0JDQoNCb0J4KK9Cc0JXQodCQ0KDQntCoINCa0JDQotCY0KbQkAor0JzQldCh0JDQoNCe0Kgg0JvQkNCI0J7QqAor0JzQldCh0JDQoNCe0Kgg0JvQkNCh0JvQngor0JzQldCh0JDQoNCe0Kgg0JvQldCe0J0KK9Cc0JXQodCQ0KDQntCoINCc0JjQpdCQ0IkKK9Cc0JXQodCQ0KDQntCoINCc0JjQmtCb0J7QqAor0JzQldCh0JDQoNCe0Kgg0J/QkNCS0JvQlQor0JzQldCh0JDQoNCe0Kgg0J/QmNCg0J7QqNCa0JAKK9Cc0JXQodCQ0KDQntCoINCh0KLQldCS0JDQnQor0JzQldCh0JDQoNCe0Kgg0KLQmNCR0J7QoAor0JzQldCh0JDQoNCe0Kgg0KLQmNCR0J7QoAor0JzQldCh0JDQoNCe0Kgg0JfQntCb0KLQkNCdCivQnNCV0KHQkNCg0J7QqCDQl9Ce0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JXQodCQ0KDQntCoINCX0J7QoNCY0KbQkAor0JzQldCh0JDQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQodCQ0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCV0KHQkNCg0J7QktCY0Isg0JzQkNCg0JPQmNCi0JAKK9Cc0JXQodCQ0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCV0KHQkNCg0J7QktCY0Isg0KHQktCV0KLQntCb0JjQmgor0JzQldCh0JXQqNCQ0J0g0JPQldCX0JAKK9Cc0JXQodCV0JvQj9CY0IjQkCDQltCY0JLQmtCeCivQnNCV0KHQldCb0I/QmNCI0JAg0J3QkNCU0JXQltCU0JAKK9Cc0JXQodCV0JvQj9CY0IjQkCDQntCh0KLQntCI0JAKK9Cc0JXQodCV0JvQj9CY0IjQkCDQoNCQ0IjQmtCeCivQnNCV0KHQldCb0I/QmNCI0JAg0KHQm9CQ0JLQmNCm0JAKK9Cc0JXQodCV0JvQj9CY0IjQkCDQodCi0JDQndCY0JzQmNCgCivQnNCV0KLQldCJ0KHQmtCYINCh0JXQoNCT0JjQiNCVCivQnNCV0KLQntCU0JjQiNCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCV0JfQlSDQiNCj0JvQmNCI0JDQndCQCivQnNCV0JfQldCoINCY0JzQoNCVCivQnNCV0JfQldCYINCo0JDQndCU0J7QoAor0JzQldCX0JXQmCDQiNCe0JbQldCkCivQnNCV0JfQldCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JXQl9CV0Jgg0JvQkNCh0JvQngor0JzQldCX0JXQmCDQodCd0JXQltCQ0J3QkAor0JzQldCX0JXQmCDQodCi0JXQktCQ0J0g0JTQoAor0JzQldCX0JXQmCDQodCi0JXQktCQ0J0KK9Cc0JjQp9CQINCI0J7QodCY0J8KK9Cc0JjQp9CQINCI0J7QktCQ0J0KK9Cc0JjQp9CY0Ist0ILQldCg0JzQkNCd0J7QkiDQktCY0JTQkAor0JzQmNCn0JjQiyDQkdCe0KjQmtCeCivQnNCY0KfQmNCLINCR0J7QqNCa0J4KK9Cc0JjQp9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQp9CY0Ist0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQp9CY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQp9CY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQp9CY0Isg0KHQntCk0JjQiNCQCivQnNCY0KfQmNCLINCX0J7QoNCQCivQnNCY0KfQo9Cg0JjQnSDQiNCe0KHQmNCfCivQnNCY0KjQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCo0KfQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQqNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCo0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KjQp9CV0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQqNCn0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQnNCY0KjQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCo0KfQldCS0JjQiyDQnNCY0KbQkAor0JzQmNCo0KfQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCo0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCo0KfQldCS0JjQiyDQntCb0JPQkAor0JzQmNCo0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCn0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCo0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KjQp9CV0JLQmNCLINCX0JvQkNCi0JrQngor0JzQmNCo0JDQnSDQm9CQ0JfQkNCgCivQnNCY0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCo0JDQndCe0JLQmNCLINCh0JjQnNCeCivQnNCY0KjQldCb0JjQiyDQiNCV0KTQotCQCivQnNCY0KjQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KjQmNCLINCC0KPQoNCQCivQnNCY0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KjQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cc0JjQqNCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JjQqNCY0Isg0JDQndCQCivQnNCY0KjQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCo0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCo0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCo0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCo0JjQiyDQldCi0IjQldCdCivQnNCY0KjQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQqNCY0Isg0JjQktCQ0J0KK9Cc0JjQqNCY0Isg0JjQktCQ0J0KK9Cc0JjQqNCY0Isg0IjQkNCT0J7QlNCQCivQnNCY0KjQmNCLINCI0JDQmtCe0JIKK9Cc0JjQqNCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cc0JjQqNCY0Isg0IjQntCh0JjQnwor0JzQmNCo0JjQiyDQiNCe0JLQkNCdCivQnNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQqNCY0Isg0JvQkNCX0JDQoAor0JzQmNCo0JjQiyDQm9CY0J3QmtCQCivQnNCY0KjQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCo0JjQiyDQidCj0JHQngor0JzQmNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQqNCY0Isg0JzQkNCg0JrQngor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQqNCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQqNCY0Isg0JzQmNCb0J7QodCQ0JLQmtCQCivQnNCY0KjQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0KjQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KjQmNCLINCc0JjQntCc0JjQoAor0JzQmNCo0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQqNCY0Isg0J3QkNCU0JAKK9Cc0JjQqNCY0Isg0J3QldCd0JDQlAor0JzQmNCo0JjQiyDQndCV0KHQotCe0KAKK9Cc0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KjQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQqNCY0Isg0KDQkNCU0JUKK9Cc0JjQqNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCo0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCY0KjQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0KjQmNCLINCg0JDQndCa0J4KK9Cc0JjQqNCY0Isg0KHQkNCS0JAKK9Cc0JjQqNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KjQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCo0JjQiyDQodCi0JjQn9CeCivQnNCY0KjQmNCLINCh0KLQiNCV0J/QkNCdCivQnNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQqNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCo0JjQiyDQotCe0JTQntCgINCU0KAKK9Cc0JjQqNCY0Isg0KLQo9CT0J7QnNCY0KAKK9Cc0JjQqNCY0Isg0JLQkNCh0JAKK9Cc0JjQqNCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQmNCo0JjQiyDQktCb0JDQlNCY0KbQkAor0JzQmNCo0JjQiyDQktCe0IjQmNCdCivQnNCY0KjQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0KjQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQqNCY0Isg0JfQntCg0JAKK9Cc0JjQqNCY0Isg0JfQntCg0JjQptCQCivQnNCY0KjQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQqNCY0J3QodCa0Jgg0IjQldCb0JXQndCQCivQnNCY0KjQmtCQ0KAg0IjQntCS0JDQnQor0JzQmNCo0JrQldCJ0JjQnSDQkdCe0KjQmtCeCivQnNCY0KjQmtCY0Isg0KjQmNCc0KPQnQor0JzQmNCo0JrQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQqNCa0JjQiyDQmNCS0JDQnQor0JzQmNCo0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQqNCa0JjQiyDQoNCQ0IjQmtCeCivQnNCY0KjQmtCY0Isg0KDQkNCd0JrQngor0JzQmNCo0JrQmNCLINCh0JLQldCi0JjQodCb0JDQktCa0JAKK9Cc0JjQqNCa0JjQiyDQktCY0KLQntCc0JjQoAor0JzQmNCo0JrQmNCL0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQqNCa0InQmNCdINCa0JDQotCY0KbQkAor0JzQmNCo0JrQntCSINCC0KPQoNCC0JjQndCa0JAKK9Cc0JjQqNCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JrQntCSINCQ0J3Qk9CV0JvQmNCd0JAKK9Cc0JjQqNCa0J7QkiDQkNCd0JrQkAor0JzQmNCo0JrQntCSINCQ0J3QmtCY0KbQkAor0JzQmNCo0JrQntCSINCQ0JLQoNCQ0JwKK9Cc0JjQqNCa0J7QkiDQkdCY0InQkNCd0JAKK9Cc0JjQqNCa0J7QkiDQkdCe0IjQmtCQCivQnNCY0KjQmtCe0JIg0JHQoNCQ0J3QmNCc0JjQoAor0JzQmNCo0JrQntCSINCR0KDQkNCd0JrQngor0JzQmNCo0JrQntCSINCY0JLQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQiNCe0JLQkNCdCivQnNCY0KjQmtCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0JzQmNCo0JrQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQqNCa0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQnNCQ0JrQodCQCivQnNCY0KjQmtCe0JIg0JzQkNCg0JjQptCQCivQnNCY0KjQmtCe0JIg0JzQmNCb0J7QqAor0JzQmNCo0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0KjQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCo0JrQntCSINCd0JDQlNCQCivQnNCY0KjQmtCe0JIg0J3QldCS0JXQndCa0JAKK9Cc0JjQqNCa0J7QkiDQndCY0JrQntCb0JAKK9Cc0JjQqNCa0J7QkiDQndCe0JLQkAor0JzQmNCo0JrQntCSINCg0JDQlNCY0JLQntCICivQnNCY0KjQmtCe0JIg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KjQmtCe0JIg0KHQkNCS0JAKK9Cc0JjQqNCa0J7QkiDQodCi0JDQndCa0JAKK9Cc0JjQqNCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQqNCa0J7QkiDQktCV0KHQndCQCivQnNCY0KjQmtCe0JIg0JLQldCh0J3QkAor0JzQmNCo0JrQntCSINCX0JDQk9Ce0KDQmtCQCivQnNCY0KjQmtCe0JIg0JfQm9CQ0KLQkAor0JzQmNCo0JrQntCS0JjQiyDQltCY0JLQmtCeCivQnNCY0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQqNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCo0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCY0KjQmtCe0JLQmNCLINCQ0J3QkAor0JzQmNCo0JrQntCS0JjQiyDQkNCd0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JDQoNCh0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JHQm9CQ0JbQngor0JzQmNCo0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCo0JrQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCI0JDQnQor0JzQmNCo0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCo0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQqNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KjQmtCe0JLQmNCLINCm0JLQldCi0JrQngor0JzQmNCo0JrQntCS0JjQiyDQlNCQ0J3Qp9CY0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQlNCV0JvQmNCd0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JzQmNCo0JrQntCS0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQnNCY0KjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQmNCo0JrQntCS0JjQiyDQmNCb0J7QndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0IjQntCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCo0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0KjQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCo0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQmNCo0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KjQmtCe0JLQmNCLINCd0JjQi9CY0KTQntCgCivQnNCY0KjQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JjQqNCa0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQnNCY0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCa0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQqNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0Igg0JzQoAor0JzQmNCo0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0KjQmtCe0JLQmNCLINCg0JDQndCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0KHQkNCo0JAKK9Cc0JjQqNCa0J7QktCY0Isg0KHQkNCS0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQodCi0JDQndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCo0JrQntCS0JjQiyDQotCQ0IrQkAor0JzQmNCo0JrQntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQnNCY0KjQmtCe0JLQmNCLINCS0JjQiNCV0J3QptCV0KHQm9CQ0JIKK9Cc0JjQqNCa0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQnNCY0KjQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQl9Cg0J3QmtCQCivQnNCY0KjQmtCe0JLQmNCmINCJ0KPQlNCV0JLQmNCiCivQnNCY0KjQmtCe0JLQmNCmINCX0KPQl9CQ0J3QkAor0JzQmNCo0JrQo9Cb0JjQnSDQlNCg0JDQk9CY0KjQkAor0JzQmNCo0JrQo9Cb0JjQnSDQndCQ0JTQkAor0JzQmNCo0JrQo9Cb0JjQnSDQndCY0JrQntCb0JAKK9Cc0JjQqNCJ0JXQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KjQm9Ce0JIg0InQo9CR0JjQptCQCivQnNCY0KjQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KjQntCS0KHQmtCYINCg0JjQodCi0J4KK9Cc0JjQqNCj0JvQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCj0JvQmNCLINCS0JjQlNCQ0JoKK9Cc0JjQqNCj0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQqNCj0KDQkCDQmNCS0JDQnQor0JzQmNCL0JDQqNCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQi9CQ0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCL0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCL0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCY0IvQkNCd0J7QktCY0Isg0JzQkNCg0IjQkNCdCivQnNCY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0IvQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JjQi9CY0Isg0ILQntCg0ILQlQor0JzQmNCL0JjQiyDQgtCj0KDQgtCY0J3QkAor0JzQmNCL0JjQiyDQkdCe0IjQkNCd0JAKK9Cc0JjQi9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0IvQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCL0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQnNCY0IvQmNCLINCR0KDQkNCd0J4KK9Cc0JjQi9CY0Isg0KbQktCY0IjQldCi0JjQnQor0JzQmNCL0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0IvQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cc0JjQi9CY0Isg0JTQo9Co0JDQnQor0JzQmNCL0JjQiyDQlNCj0KjQkNCdCivQnNCY0IvQmNCLINCY0JvQmNCI0JAKK9Cc0JjQi9CY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQi9CY0Isg0JrQntCd0KHQotCQ0J3QotCY0J3QkAor0JzQmNCL0JjQiyDQmtCg0KHQotCQCivQnNCY0IvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0IvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0IvQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCL0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCL0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JjQi9CY0Isg0JzQmNCb0JXQndCQCivQnNCY0IvQmNCLINCc0JjQm9CV0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCL0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQi9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0IvQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQi9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQi9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCL0JjQiyDQntCb0JjQktCV0KDQkAor0JzQmNCL0JjQiyDQntCX0KDQldCdCivQnNCY0IvQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0IvQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cc0JjQi9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQi9CY0Isg0KDQntCU0J7QidCj0JEKK9Cc0JjQi9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQi9CY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0IvQmNCLINCh0JzQmNCJ0JAKK9Cc0JjQi9CY0Isg0KHQotCe0IjQkNCdCivQnNCY0IvQmNCLINCh0KPQl9CQ0J3QkAor0JzQmNCL0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCL0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0IvQmNCdINCW0JDQoNCa0J4KK9Cc0JjQi9CY0J0g0ILQntCg0ILQlQor0JzQmNCL0JjQnSDQlNCj0KjQmtCeCivQnNCY0IvQmNCdINCb0JDQl9CQCivQnNCY0IvQmNCdINCc0JjQm9CY0KbQkAor0JzQmNCL0JjQnSDQoNCQ0JTQntCS0JDQnQor0JzQmNCL0JjQnSDQo9Cg0J7QqAor0JzQmNCL0JrQntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0JzQmNCL0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQi9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQi9Ce0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCY0IvQntCS0JjQiyDQiNCQ0J3QmtCeCivQnNCY0IvQntCS0JjQiyDQmtCe0KHQotCQ0JTQmNCdINCU0KAKK9Cc0JjQi9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQi9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0IvQntCS0JjQiyDQndCV0JHQntCI0KjQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQi9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0JzQmNCL0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCL0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JjQi9Cj0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0IvQo9Cd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQnNCY0IvQo9Cd0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQnNCY0IvQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQngor0JzQmNCL0KPQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQnNCY0JDQktCV0KYg0JzQkNCL0JDQqAor0JzQmNCm0JDQmCDQnNCQ0KDQmNCI0JAKK9Cc0JjQptCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KbQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQptCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCm0JjQiyDQlNCj0KjQkNCdCivQnNCY0KbQmNCLINCa0KDQodCi0JAg0JTQoAor0JzQmNCm0JjQiyDQnNCY0KDQmtCeCivQnNCY0KbQmtCe0JIg0JHQm9CQ0JPQntCICivQnNCY0KbQmtCe0JIg0JXQm9CV0J3QkAor0JzQmNCU0Jgg0J3QldCd0JDQlAor0JzQmNCU0JjQiyDQgtCe0KDQgtCVCivQnNCY0JTQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0JTQmNCLLdCU0KPQndCC0JXQoNCh0JrQmCDQnNCY0JvQldCd0JAKK9Cc0JjQlNCY0Isg0IjQldCb0JXQndCQCivQnNCY0JTQmNCLINCI0J7QktCQ0J0KK9Cc0JjQlNCY0Isg0InQo9CR0JjQqNCQCivQnNCY0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQlNCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCU0JjQiyDQl9Ce0KDQmtCQCivQnNCY0JPQm9CY0J3QptCYINCR0JDQoNCR0JDQoNCQCivQnNCY0JPQm9CY0J3QptCYINCV0KLQldCb0JrQkAor0JzQmNCT0JvQmNCd0KbQmCDQiNCV0JvQldCd0JAKK9Cc0JjQk9Cb0JjQndCm0Jgg0JvQkNCh0JvQngor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCC0J7QmtCeCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JLQldCg0JAg0JTQoAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCl0JDQiNCJ0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cc0JjQpdCQ0IjQm9CeINCJ0JDQktCeCivQnNCY0KXQkNCI0JvQntCSINCW0JjQktCQCivQnNCY0KXQkNCI0JvQntCSINCC0J7QoNCC0JUKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JzQmNCl0JDQiNCb0J7QkiDQkdCe0JPQlNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCSINCU0KDQkNCT0JDQndCQCivQnNCY0KXQkNCI0JvQntCSINCU0KDQkNCT0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCSINCY0JLQkNCdCivQnNCY0KXQkNCI0JvQntCSINCI0J7QktCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCSINCb0JDQl9CQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0InQmNCJ0JDQndCQCivQnNCY0KXQkNCI0JvQntCSINCc0JDQoNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QkiDQnNCY0JvQkNCdCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0KgKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCg0J7QodCb0JDQktCQCivQnNCY0KXQkNCI0JvQntCSINCd0JjQmtCe0JvQkAor0JzQmNCl0JDQiNCb0J7QkiDQntCb0JPQkAor0JzQmNCl0JDQiNCb0J7QkiDQoNCQ0JTQntCI0JrQkAor0JzQmNCl0JDQiNCb0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCSINCh0J/QkNCh0J7QiNCVCivQnNCY0KXQkNCI0JvQntCSINCS0JXQoNCQCivQnNCY0KXQkNCI0JvQntCSINCS0JXQodCV0JvQmNCdCivQnNCY0KXQkNCI0JvQntCSINCS0JjQlNCe0KHQkNCSCivQnNCY0KXQkNCI0JvQntCSINCX0J7QoNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQp9CV0JTQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JbQldCJ0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JbQmNCS0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCC0KPQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JDQndCY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0J7Qk9Ce0InQo9CRINCU0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQkNCd0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JXQm9CY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KDQldCd0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCV0KDQndCV0KHQogor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KTQoNCQ0IrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JPQntCI0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JUKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAg0JTQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQldCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCa0J7QodCi0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCa0KHQldCd0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQm9CQ0JfQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JvQldCd0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JvQldCd0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQidCj0JHQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQkNCg0JPQmNCi0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0IvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQldCi0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9CVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0JjQn9CbINCY0J3Qkwor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0KPQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCg0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JDQlNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCQ0JTQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JDQlNCY0KDQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QntCS0JDQmgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCe0KHQotCe0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQkNCK0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQktCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQktCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JvQkNCS0J7QidCj0J/QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCc0JjQidCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQntCk0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCg0ILQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQoNCR0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KDQldCi0JXQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQoNCV0KLQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JDQndCY0KjQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JXQktCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JXQktCY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLLdCh0KPQkdCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCi0KPQk9Ce0JzQmNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQo9Cg0J7QqAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JXQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JfQntCg0JDQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQodCa0Jgg0InQo9CR0JjQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KXQkNCb0JDQp9Ca0Jgg0JzQmNCl0JDQmNCb0J4KK9Cc0JjQpdCQ0JvQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KXQkNCb0JXQpiDQkNCd0JPQldCb0JjQndCQCivQnNCY0KXQkNCb0JXQpiDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0JvQldCaINCY0JLQkNCdCivQnNCY0KXQkNCb0JXQmiDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0JvQldCd0JrQniDQodCi0JXQktCQ0J0KK9Cc0JjQpdCQ0JvQmNCLINCf0JXQotCQ0KAKK9Cc0JjQpdCQ0JvQmNCaLdCi0JjQoCDQl9Cj0JfQkNCd0JAKK9Cc0JjQpdCQ0Ikg0JXQodCi0JXQoAor0JzQmNCl0JDQiSDQnNCQ0KDQmNCI0JAg0JTQoAor0JzQmNCl0JDQiSDQnNCY0KXQkNCI0JvQniDQlNCgCivQnNCY0KXQkNCJINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0JzQmNCl0JDQiSDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KXQkNCJ0KfQldCS0JjQiyDQkNCb0J7QiNCX0JjQiNCVCivQnNCY0KXQkNCJ0KfQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCl0JDQidCn0JjQiyDQk9Ce0IjQmtCeCivQnNCY0KXQkNCJ0KfQmNCLINCY0JvQlQor0JzQmNCl0JDQidCn0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCJ0KfQmNCLINCI0J7QktCQ0J0KK9Cc0JjQpdCQ0InQp9CY0Isg0JvQo9Ca0JAKK9Cc0JjQpdCQ0InQp9CY0Isg0JzQmNCi0JDQoAor0JzQmNCl0JDQidCn0JjQiyDQodCf0JDQodCe0IjQlQor0JzQmNCl0JDQidCV0JIg0JbQldCJ0JrQngor0JzQmNCl0JDQidCV0JIg0JjQktCQ0J0g0JTQoAor0JzQmNCl0JDQidCV0JIg0KHQotCe0IjQkNCdCivQnNCY0KXQkNCJ0JXQktCY0Isg0JDQndCi0J7QnQor0JzQmNCl0JDQidCV0JLQmNCLINCV0JzQmNCbCivQnNCY0KXQkNCJ0JXQktCY0Isg0JjQktCQ0J0KK9Cc0JjQpdCQ0InQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCJ0JXQktCY0Isg0KDQo9CW0JjQptCQCivQnNCY0KXQkNCJ0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JjQpdCQ0InQpNCYINCc0JDQoNCY0JrQkAor0JzQmNCl0JDQidCYINCc0JDQoNCY0IjQkAor0JzQmNCl0JDQidCY0KfQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQidCY0KfQmNCLINCU0JzQmNCi0JDQoAor0JzQmNCl0JDQidCY0KfQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0KXQkNCJ0JjQp9CY0Isg0KHQmNCc0J4KK9Cc0JjQpdCQ0InQmNCn0JjQiyDQotCe0JTQlQor0JzQmNCl0JDQidCY0KbQkCDQkNCd0ILQkAor0JzQmNCl0JDQidCY0KbQkCDQkdCe0JbQngor0JzQmNCl0JDQidCY0KbQkCDQptCS0JXQotCa0J4KK9Cc0JjQpdCQ0InQmNCm0JAg0JzQmNCg0JAKK9Cc0JjQpdCQ0InQmtCQINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQidCe0JLQodCa0Jgg0JTQkNCd0JjQm9CeCivQnNCY0KXQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KXQkNCb0J7QktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JzQmNCl0JXQiSDQpNCg0JDQitCeCivQnNCY0KXQldCS0KYg0JjQktCQ0J3QmtCQCivQnNCY0KXQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KXQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0KXQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQpdCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQpdCY0Isg0KDQmNCh0KLQngor0JzQmNCl0JjQiyDQoNCY0KHQotCeCivQnNCY0KXQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0JzQmNCl0JjQiyDQktCV0KDQkAor0JzQmNCl0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KXQmNCLINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQnNCY0KXQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQpdCb0JjQpiDQn9CV0KLQkNCgCivQnNCY0KXQitCQ0Jog0IjQntCQ0JrQmNCcCivQnNCY0KXQitCQ0Jog0JrQkNCi0JjQptCQCivQnNCY0KXQitCQ0Jog0JvQkNCU0JjQodCb0JDQkgor0JzQmNCl0IrQkNCaINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JjQpdCK0JDQmiDQndCQ0JTQkAor0JzQmNCl0IrQkNCaINCf0JXQotCQ0KAKK9Cc0JjQpdCe0KbQmCDQpNCg0JDQitCQCivQnNCY0KXQntCm0Jgg0JfQktCe0J3QmNCc0JjQoAor0JzQmNCl0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQpdCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQpdCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQpdCe0IjQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCl0J7Qm9Cn0JjQiyDQodCi0JXQktCY0KbQkAor0JzQmNCl0J7QidCV0JLQmNCLINCV0JzQkAor0JzQmNCl0J7QidCV0JLQmNCLINCc0JjQm9Ce0KLQmtCQCivQnNCY0IjQkNCnINCh0JvQkNCS0JrQngor0JzQmNCI0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQiNCQ0I/QldCS0JjQiyDQiNCe0JLQngor0JzQmNCI0JDQmNCb0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCI0JDQmNCb0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCI0JDQmNCb0J7QktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQnNCY0IjQkNCY0JvQntCS0JjQiyDQoNCQ0J3QmNCh0JDQkgor0JzQmNCI0JDQmNCb0J7QktCY0Isg0KDQkNCd0JrQngor0JzQmNCI0JDQmNCb0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cc0JjQiNCQ0IjQm9Ce0JLQmNCLINCQ0IjQndCQCivQnNCY0IjQkNCI0JvQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQnNCY0IjQkNCb0KfQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQiNCQ0JvQp9CY0Isg0KHQkNCS0JAKK9Cc0JjQiNCQ0JvQp9CY0Isg0JfQntCg0JAKK9Cc0JjQiNCQ0JvQmNCm0JAg0KHQktCV0KLQntCh0JvQkNCSCivQnNCY0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCI0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQmNCI0JDQoiDQmNCS0JDQnQor0JzQmNCI0JDQoiDQnNCY0JvQkNCd0JrQkAor0JzQmNCI0JDQoiDQoNCe0JrQngor0JzQmNCI0JDQoiDQotCe0JzQmNCh0JvQkNCSCivQnNCY0IjQkNCi0J7QkiDQltCY0JLQmtCQCivQnNCY0IjQkNCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCI0JDQotCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cc0JjQiNCQ0KLQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCI0JDQotCe0JIg0JTQoNCQ0JPQmNCLCivQnNCY0IjQkNCi0J7QkiDQlNCg0JDQk9CY0KbQkAor0JzQmNCI0JDQotCe0JIg0JjQktCQ0J0KK9Cc0JjQiNCQ0KLQntCSINCY0JLQkNCdCivQnNCY0IjQkNCi0J7QkiDQiNCe0KHQkAor0JzQmNCI0JDQotCe0JIg0JrQkNCi0JjQptCQCivQnNCY0IjQkNCi0J7QkiDQm9CQ0JfQkNCgCivQnNCY0IjQkNCi0J7QkiDQidCj0JHQmNCd0JrQkAor0JzQmNCI0JDQotCe0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JjQiNCQ0KLQntCSINCc0JjQm9CQ0JTQmNCdCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkNCdCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkNCdCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkNCdCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkAor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JjQiNCQ0KLQntCSINCc0JjQm9Ce0KgKK9Cc0JjQiNCQ0KLQntCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0IjQkNCi0J7QkiDQnNCY0J7QlNCg0JDQkwor0JzQmNCI0JDQotCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQiNCQ0KLQntCSINCg0JDQlNCY0JLQntCICivQnNCY0IjQkNCi0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQmNCI0JDQotCe0JIg0KHQkNCS0JAKK9Cc0JjQiNCQ0KLQntCSINCh0JDQktCa0JAKK9Cc0JjQiNCQ0KLQntCSINCh0JvQkNCS0JrQngor0JzQmNCI0JDQotCe0JIg0KHQnNCY0InQmtCQCivQnNCY0IjQkNCi0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQiNCQ0KLQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JjQiNCQ0KLQntCSINCS0J7QiNCY0J0KK9Cc0JjQiNCQ0KLQntCSINCX0JvQkNCi0JjQndCa0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQltCY0JLQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCI0JDQotCe0JLQmNCLINCC0KPQiNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0ILQo9Cg0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCI0JDQotCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCY0KHQldCg0JrQkAor0JzQmNCI0JDQotCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCI0JDQotCe0JLQmNCLINCR0J7QltCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQntCT0J7QnNCY0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CY0IsKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CYCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JPQntCI0JrQngor0JzQmNCI0JDQotCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQmtCe0KHQotCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCI0JDQotCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQm9CV0JvQkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCV0J3QmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQkNCg0KLQkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JDQotCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCo0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0JXQktCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9Ca0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCg0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0IjQkNCi0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0J3QldCS0JXQndCQCivQnNCY0IjQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0IjQkNCi0J7QktCY0Isg0J3QntCS0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQntCR0KDQkNCUCivQnNCY0IjQkNCi0J7QktCY0Isg0J/QldCg0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0IjQkNCi0J7QktCY0Ist0J/Qo9Co0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkCDQlNCgCivQnNCY0IjQkNCi0J7QktCY0Isg0KDQkNCU0JjQpwor0JzQmNCI0JDQotCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQodCY0JzQngor0JzQmNCI0JDQotCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0IjQkNCi0J7QktCY0Isg0KHQotCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCi0J7QqNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCI0JDQotCe0JLQmNCLINCS0JXQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQktCY0JQKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQktCe0IjQmNCdINCQ0JTQktCe0JrQkNCiCivQnNCY0IjQkNCi0J7QktCY0Isg0JfQlNCg0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQnNCY0IjQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCX0J7QoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JzQmNCI0JDQktCV0KYg0ILQntCg0ILQlQor0JzQmNCI0JDQktCV0KYg0IjQntCS0JDQnQor0JzQmNCI0JDQktCV0KYg0JvQo9CU0JLQmNCTCivQnNCY0IjQkNCS0JXQpiDQnNCY0KXQkNCI0JvQngor0JzQmNCI0JDQktCV0KYg0J/QkNCI0JAKK9Cc0JjQiNCQ0JLQldCmINCX0J7QoNCQCivQnNCY0IjQmNCLINCW0JXQidCa0J4KK9Cc0JjQiNCY0Isg0JbQldCJ0JrQngor0JzQmNCI0JjQiyDQgtCe0KDQgtCVCivQnNCY0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0IjQmNCLINCQ0J3QotCVCivQnNCY0IjQmNCLINCR0KDQkNCd0JrQngor0JzQmNCI0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQmNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQiNCY0Isg0JTQo9Co0JDQnQor0JzQmNCI0JjQiyDQmNCb0JjQiNCQCivQnNCY0IjQmNCLINCI0JDQitCQCivQnNCY0IjQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0IjQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQiNCY0Isg0JzQmNCb0J7QqAor0JzQmNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCI0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQiNCY0Isg0J/QldCg0JAKK9Cc0JjQiNCY0Isg0J/QldCi0JDQoAor0JzQmNCI0JjQiyDQn9CV0KLQkNCgCivQnNCY0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0IjQmNCLINCh0JDQktCQCivQnNCY0IjQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCI0JjQiyDQotCY0J3QmtCQCivQnNCY0IjQmNCLINCS0JXQidCa0J4KK9Cc0JjQiNCY0Isg0JLQldCh0J3QkAor0JzQmNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0IjQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0IjQmNCdINCI0J7QktCQCivQnNCY0IjQmNCdINCb0JDQl9CQ0KAKK9Cc0JjQiNCY0J0g0JvQkNCX0JDQoAor0JzQmNCI0JjQnSDQnNCY0JvQkNCdCivQnNCY0IjQmNCdINCc0JjQm9CV0JLQkAor0JzQmNCI0JjQnSDQnNCY0JvQmNCm0JAKK9Cc0JjQiNCY0J0g0JzQmNCb0J7QqAor0JzQmNCI0JjQnSDQn9CV0KLQkNCgCivQnNCY0IjQmNCdINCf0JXQotCQ0KAKK9Cc0JjQiNCY0J0g0KDQkNCU0JAKK9Cc0JjQiNCY0J0g0KHQkNCS0JAKK9Cc0JjQiNCY0J0g0KHQmNCc0JAKK9Cc0JjQiNCY0J0g0KHQotCV0JLQkNCdCivQnNCY0IjQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQiNCe0JrQntCSINCU0KDQkNCT0JDQnQor0JzQmNCI0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCI0J7QidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0IjQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCY0IjQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCI0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JjQiNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0IjQntCS0JjQiyDQktCV0KDQkAor0JzQmNCI0KPQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCY0IjQo9Cn0JjQiyDQktCV0KDQkAor0JzQmNCI0KPQp9CY0J0g0JzQmNCb0JrQkAor0JzQmNCI0KPQqNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCe0JHQoNCV0J0KK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCg0JDQlNCVCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCI0KPQqNCa0J7QktCY0Isg0KLQmNCd0JrQkAor0JzQmNCa0KjQkCDQnNCY0JvQkNCdCivQnNCY0JrQqNCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQmtCo0JjQiyDQntCi0J7QnQor0JzQmNCa0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQmtCQ0KjQmNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JrQkNCo0JjQndCe0JLQmNCLINCh0JDQktCQCivQnNCY0JrQkNCLINCc0JjQm9CQ0J0KK9Cc0JjQmtCQ0KYg0JXQktCa0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQgtCe0KDQgtCVCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQlNCg0JDQk9CY0KbQkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCY0JLQkNCd0JrQkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCY0JLQkNCd0JrQkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCI0JDQodCc0JjQndCQCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JzQmNCb0KPQotCY0J0KK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCf0JDQktCb0JUKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQo9Cg0J7QqAor0JzQmNCa0JDQm9CQ0KfQmtCYINCX0J7QoNCQ0J0KK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQl9Ce0KDQkNCdCivQnNCY0JrQkNCdINCR0J7QodCY0InQmtCQCivQnNCY0JrQkNCdINCY0JLQkNCdCivQnNCY0JrQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0JrQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JrQkNCd0J7QktCY0Isg0JjQoNCV0J3QkAor0JzQmNCa0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cc0JjQmtCQ0JLQmNCm0JAg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCa0JUg0JXQodCi0JXQoAor0JzQmNCa0JXQqCDQkNCd0JTQoNCY0IjQkAor0JzQmNCa0JXQqCDQldCd0JTQoNCVCivQnNCY0JrQldCoINCV0KLQldCbCivQnNCY0JrQldCoINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JjQmtCV0Kgg0JzQmNCl0JDQiQor0JzQmNCa0JXQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQmtCY0Isg0JbQkNCg0JrQngor0JzQmNCa0JjQiyDQltCQ0KDQmtCeCivQnNCY0JrQmNCLINCC0KPQoNCQINCU0KAKK9Cc0JjQmtCY0Isg0JTQldCh0JjQnNCY0KAKK9Cc0JjQmtCY0Isg0JjQktCQ0J0KK9Cc0JjQmtCY0Isg0IjQntCh0JjQnyDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQmtCY0Isg0JvQkNCX0JDQoAor0JzQmNCa0JjQiyDQnNCQ0JrQodCY0JwKK9Cc0JjQmtCY0Isg0JzQmNCb0JDQnQor0JzQmNCa0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQmtCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQmtCY0Isg0JzQmNCb0JrQkAor0JzQmNCa0JjQiyDQnNCY0JvQmtCQCivQnNCY0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQmtCY0Isg0J7Qm9CT0JAKK9Cc0JjQmtCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JrQkAor0JzQmNCa0JjQiyDQoNCj0JbQkAor0JzQmNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JrQmNCLINCh0KDQkdCe0InQo9CRCivQnNCY0JrQmNCLINCh0KLQntCI0JAKK9Cc0JjQmtCY0Isg0KLQntCU0J7QoAor0JzQmNCa0JjQiyDQktCb0JDQlNCQ0J0KK9Cc0JjQmtCY0Isg0JfQntCg0JrQkAor0JzQmNCa0JjQnSDQndCQ0JTQkAor0JzQmNCa0JjQotCY0KjQmNCdINCd0JDQlNCQCivQnNCY0JrQm9CV0JIg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCa0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQmtCb0JjQiyDQkNCd0JAKK9Cc0JjQmtCb0JjQiyDQotCV0KDQldCX0JAKK9Cc0JjQmtCb0J7QqCDQkNCd0JTQoNCQ0KgKK9Cc0JjQmtCb0J7QqCDQkNCd0JTQoNCY0IjQkAor0JzQmNCa0JvQntCoINCQ0J3QotCQ0JsKK9Cc0JjQmtCb0J7QqCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JjQmtCb0J7QqCDQiNCQ0J3QmtCeCivQnNCY0JrQm9Ce0Kgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQmtCb0J7QqCDQiNCj0JvQmNCI0JDQnQor0JzQmNCa0JvQntCoINCd0JDQndCU0J7QoCDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQmtCb0J7QqCDQodCi0JXQktCQ0J0KK9Cc0JjQmtCb0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JrQm9Ce0JLQmNCmINCI0JDQnQor0JzQmNCa0JvQntCS0JjQpiDQnNCY0JvQntCh0JvQkNCSCivQnNCY0JrQntCb0JAg0ILQo9Cg0JAKK9Cc0JjQmtCe0JvQkNCm0Jgg0JvQldCf0J7QodCQ0JLQkAor0JzQmNCa0J7Qm9CV0KbQmtCYINCh0JvQkNCS0JjQptCQCivQnNCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCa0J7QkiDQnNCV0KLQntCU0Jgg0JTQoCDQm9CV0JrQkNCgCivQnNCY0JrQntCSINCc0J7QnNCY0KAKK9Cc0JjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQmtCe0JLQmNCLINCC0KPQoNCQCivQnNCY0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JzQmNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQmtCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCY0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgINCf0KDQkNCS0J3QmNCaCivQnNCY0JrQntCS0JjQiyDQndCQ0JTQkAor0JzQmNCa0J7QktCY0Isg0J3QmNCd0J7QodCb0JDQkgor0JzQmNCa0J7QktCY0Isg0J/QkNCS0JAKK9Cc0JjQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JrQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCa0J7QktCY0Isg0KHQoNCV0JTQntCI0JUKK9Cc0JjQmtCe0JLQmNCb0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQmtCh0JDQoiDQiNCe0JbQldCkCivQnNCY0JrQo9CoINCQ0J3QgtCV0JvQmtCQCivQnNCY0JrQo9CoINCc0JjQm9Ca0JAKK9Cc0JjQmtCj0Kgg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQmtCj0JvQldCh0JrQniDQlNCj0KjQkNCdCivQnNCY0JrQo9Cb0JXQodCa0J4g0KHQkNCS0J4g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JrQo9Cb0JjQiyDQqNCY0JzQlQor0JzQmNCa0KPQm9CY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JrQo9Cb0JjQiyDQkdCb0JDQlgor0JzQmNCa0KPQm9CY0Isg0JXQlNCY0KIKK9Cc0JjQmtCj0JvQmNCLINCY0JLQkNCdCivQnNCY0JrQo9Cb0JjQiyDQmNCS0JDQnQor0JzQmNCa0KPQm9CY0Isg0JjQktCQCivQnNCY0JrQo9Cb0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQmNCa0KPQm9CY0Isg0JvQntCS0KDQlQor0JzQmNCa0KPQm9CY0Isg0JzQkNCg0JAKK9Cc0JjQmtCj0JvQmNCLINCc0JjQm9CVCivQnNCY0JrQo9Cb0JjQiyDQnNCY0JvQmNCLCivQnNCY0JrQo9Cb0JjQndCQ0KYg0JzQkNCi0JjQiNCQCivQnNCY0JrQo9Cb0JjQndCQ0KYg0KDQldCd0JXQotCQCivQnNCY0JrQo9Cb0JjQndCQ0KYg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9Cn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9Cn0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQkNCn0JjQiyDQltCV0InQmtCeCivQnNCY0JvQkNCn0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQkNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CQ0KfQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JDQp9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQp9CY0Isg0JjQktCQ0J0KK9Cc0JjQm9CQ0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQkNCn0JjQiyDQnNCQ0KjQkNCdCivQnNCY0JvQkNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQp9CY0Isg0KHQoNCR0J7QodCb0JDQkgor0JzQmNCb0JDQp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JDQp9CY0Isg0JfQntCg0JjQptCQCivQnNCY0JvQkNCoINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQqCDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0JDQqNCV0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0IvQo9CdCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0JDQqNCY0J3QntCS0JjQiy3QodCi0JDQndCe0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0JLQo9Ca0J7QnNCQ0J0KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0JfQm9CQ0KLQntCI0JAKK9Cc0JjQm9CQ0JTQmNCLINCn0JXQlNCQCivQnNCY0JvQkNCU0JjQiyDQlNCe0JHQoNCe0JzQmNCgCivQnNCY0JvQkNCU0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQkNCU0JjQndCe0KHQmtCYINCb0JXQktCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQltCQ0KDQmtCeCivQnNCY0JvQkNCU0JjQndCe0JIg0JbQmNCS0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCR0J7QltCY0JTQkNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0JTQkNCd0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JTQkNCd0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQlNCj0KjQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQiNCe0JLQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCY0JvQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9CV0J3QkAor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQmNCb0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQndCQ0JTQkAor0JzQmNCb0JDQlNCY0J3QntCSINCd0J7QktCQ0JoKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0JDQlNCY0J3QntCSINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQodCg0JHQmNCd0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0KLQmNCl0J7QnNCY0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQktCV0KHQndCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JLQiNCV0KDQkAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQltCY0JLQkNCU0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCQ0JzQmNCgCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCU0JjQktCd0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQlQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQngor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQotCe0JTQlQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JzQmNCb0JDQmiDQgtCe0KDQgtCVCivQnNCY0JvQkNCaINCU0JDQoNCY0J3QmtCQCivQnNCY0JvQkNCaINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0Jog0IjQldCb0JXQndCQCivQnNCY0JvQkNCaINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0Jog0IjQntCS0JDQnQor0JzQmNCb0JDQmiDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CQ0Jog0JvQkNCX0JDQoAor0JzQmNCb0JDQmiDQnNCY0JvQkNCdCivQnNCY0JvQkNCaINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0Jog0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CQ0Jog0JzQmNCb0J7QqAor0JzQmNCb0JDQmiDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQkNCaINCh0JDQktCQCivQnNCY0JvQkNCa0J7QkiDQiNCV0JvQldCd0JAg0JTQoCDQn9Cg0J7QpAor0JzQmNCb0JDQmtCe0JIg0InQo9CR0JjQptCQINCU0KAKK9Cc0JjQm9CQ0JrQntCSINCc0JjQoNCI0JDQndCQCivQnNCY0JvQkNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JDQmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQgtCj0KDQngor0JzQmNCb0JDQmtCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCY0JvQkNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0JvQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQkNCa0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCb0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0JvQkNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQkNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JzQmNCb0JDQmtCe0JLQmNCLINCi0JXQntCU0J7QoAor0JzQmNCb0JDQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQktCe0IjQngor0JzQmNCb0JDQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QmtCeINCh0JvQkNCS0JrQngor0JzQmNCb0JDQndCa0J7QkiDQltCY0JLQkAor0JzQmNCb0JDQndCa0J7QkiDQltCY0JLQkAor0JzQmNCb0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQnNCY0JvQkNCd0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JDQndCa0J7QkiDQptCS0JXQotCQCivQnNCY0JvQkNCd0JrQntCSINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JIg0JjQktCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JIg0IjQldCb0JXQndCQCivQnNCY0JvQkNCd0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0JvQkNCX0JDQoAor0JzQmNCb0JDQndCa0J7QkiDQnNCQ0KDQmtCeCivQnNCY0JvQkNCd0JrQntCSINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCd0JrQntCSINCc0JjQm9CY0JLQntCICivQnNCY0JvQkNCd0JrQntCSINCc0JjQm9Ca0J4KK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQm9CQ0JLQmNCc0JjQoAor0JzQmNCb0JDQndCa0J7QkiDQodCe0KTQmNCI0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JDQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCQ0J3QkAor0JzQmNCb0JDQndCa0J7QktCY0Ist0KbQntCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCY0JvQmNCd0JrQkAor0JzQmNCb0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQmNCb0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JDQndCa0J7QktCY0Isg0JfQntCg0JAKK9Cc0JjQm9CQ0J3QntCSINCQ0J3QmNCm0JAKK9Cc0JjQm9CQ0J3QntCSINCQ0J3QmtCQCivQnNCY0JvQkNCd0J7QkiDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9CQ0J3QntCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQmNCb0JDQndCe0JIg0JTQntCR0KDQmNCS0J7QiAor0JzQmNCb0JDQndCe0JIg0IjQldCb0JjQptCQCivQnNCY0JvQkNCd0J7QkiDQidCj0JHQmNCo0JAKK9Cc0JjQm9CQ0J3QntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0J3QntCSINCc0JjQntCU0KDQkNCTCivQnNCY0JvQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQnNCY0JvQkNCd0J7QkiDQn9CV0KDQodCY0JTQkAor0JzQmNCb0JDQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CQ0J3QntCSINCh0JDQktCa0JAKK9Cc0JjQm9CQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CQ0J3QntCSINCS0KPQmtCe0KHQkNCS0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQltCV0InQmtCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQltCY0JLQntCi0JjQiNCVCivQnNCY0JvQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0JzQmNCb0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCm0JLQmNCI0JXQotCY0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQlNCQ0JzQiNCQ0J3QmtCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQlNCe0J3QmtCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CeCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JzQmNCb0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0JDQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCb0JDQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0KXQngor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQmNCI0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiy3Qn9CV0KLQoNCQ0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCh0JDQqNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQmNCb0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JLQmNCi0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JLQo9CI0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCX0J7QoNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JzQmNCb0JDQoNCY0Isg0JjQktCQ0J0KK9Cc0JjQm9CQ0KLQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JjQm9CQ0KLQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0JDQotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9CV0KjQldCSINCc0JjQm9CY0KbQkAor0JzQmNCb0JXQqNCV0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JjQm9CV0KYg0JTQntCg0J7QotCV0JAKK9Cc0JjQm9CV0KYg0JjQm9Ce0J3QmtCQCivQnNCY0JvQldCYINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQm9CV0Jgg0IjQkNCd0J7QqAor0JzQmNCb0JXQmCDQotCe0JzQmNCh0JvQkNCSCivQnNCY0JvQldCa0KjQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCb0JXQmtCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JXQmtCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JjQm9CV0JrQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JXQmtCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQldCa0JjQiyDQo9Cg0J7QqAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCb0JXQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCC0KPQoNCC0JjQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JXQndCa0J7QktCY0Ist0JDQndCi0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JvQldCd0JrQntCS0JjQiy3QkdCI0JXQm9CQ0IjQkNCmINCc0JjQm9CQ0J3QmtCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQntCT0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KgKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCV0KDQltCY0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JjQm9Ce0J3QmtCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQmNCg0JXQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCI0JXQktCi0J4KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCI0KPQodCi0JjQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JrQoNCh0KLQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQmNCI0JDQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0JvQldCd0JrQntCS0JjQiyDQndCY0IvQmNCk0J7QoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0J/QkNCj0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0JvQldCd0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQodCQ0JLQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Cc0JjQm9CV0J3QmtCe0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQnNCY0JvQldCd0J7QktCY0Isg0JbQmNCS0JAKK9Cc0JjQm9CV0J3QntCS0JjQiy3QkdCV0JrQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQldCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CV0J3QntCS0JjQiyDQntCb0JPQkAor0JzQmNCb0JXQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0JvQldCd0KLQmNCI0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQm9CV0J3QotCY0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JXQoCDQkdCQ0KDQkdCQ0KDQkAor0JzQmNCb0JXQoCDQldCg0JbQldCR0JXQogor0JzQmNCb0JXQoCDQpNCg0JDQitCQCivQnNCY0JvQldCgINCY0JzQoNCVINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0JXQoCDQmNCS0JDQndCa0JAKK9Cc0JjQm9CV0KAg0IjQldCb0JXQndCQCivQnNCY0JvQldCgINCI0JXQm9CY0KbQkAor0JzQmNCb0JXQoCDQmtCQ0KDQm9CeCivQnNCY0JvQldCgINCc0JDQoNCY0IjQkAor0JzQmNCb0JXQoCDQnNCY0KXQkNCI0JvQngor0JzQmNCb0JXQoCDQntCi0J7QmtCQ0KAKK9Cc0JjQm9CV0KAg0JfQm9CQ0KLQmtCeCivQnNCY0JvQldCh0JrQmCDQkNCi0JDQndCQ0KHQmNCI0JUKK9Cc0JjQm9CV0KLQkCDQndCY0JrQntCb0JAKK9Cc0JjQm9CV0KLQkNCo0JrQmCDQkdCe0KDQmNCS0J7QiAor0JzQmNCb0JXQotCQ0KjQmtCYINCc0JjQm9CVCivQnNCY0JvQldCi0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQldCi0JjQiyDQltCY0JLQntCi0JAKK9Cc0JjQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CV0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCY0JvQldCi0JjQiyDQkNCd0JAKK9Cc0JjQm9CV0KLQmNCLINCR0J7QltCQCivQnNCY0JvQldCi0JjQiyDQkdCe0KDQmNCo0JAKK9Cc0JjQm9CV0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JXQotCY0Isg0JTQntCR0KDQntCh0JDQkgor0JzQmNCb0JXQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9CV0KLQmNCLINCT0JLQntCX0JTQldCdCivQnNCY0JvQldCi0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQldCi0JjQiyDQmNCS0JjQptCQCivQnNCY0JvQldCi0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CV0KLQmNCLINCJ0KPQkdCY0KHQkNCSCivQnNCY0JvQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CV0KLQmNCLINCc0JjQm9CY0JLQntCICivQnNCY0JvQldCi0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JjQm9CV0KLQmNCLINCc0JjQotCQCivQnNCY0JvQldCi0JjQiyDQndCQ0JTQkAor0JzQmNCb0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQldCi0JjQiyDQntCb0JPQkAor0JzQmNCb0JXQotCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JXQotCY0Isg0KDQkNCU0JUKK9Cc0JjQm9CV0KLQmNCLINCg0JDQlNCe0KgKK9Cc0JjQm9CV0KLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0JvQldCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQldCi0JjQiyDQoNCQ0J3QmtCeCivQnNCY0JvQldCi0JjQiyDQodCV0JLQldCg0JjQndCQCivQnNCY0JvQldCi0JjQiyDQodCb0JDQktCa0J4g0JTQoCDQm9CV0JrQkNCgCivQnNCY0JvQldCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CV0KLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JjQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCh0J7QitCQCivQnNCY0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9CV0KLQmNCLINCS0JXQm9CVCivQnNCY0JvQldCi0JjQiyDQktCV0JvQmNCR0J7QoAor0JzQmNCb0JXQotCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQm9CV0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0JvQldCi0JjQiyDQktCY0JTQntCh0JDQktCQCivQnNCY0JvQldCi0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JXQotCY0KbQmtCYINCg0JDQlNCQCivQnNCY0JvQldCi0JjQptCa0Jgg0JfQntCg0JrQkAor0JzQmNCb0JXQotCY0J0g0JTQkNCd0JAKK9Cc0JjQm9CV0KLQmNCdINCc0JjQoNCI0JDQndCQCivQnNCY0JvQldCi0JjQnSDQndCY0JrQntCb0JAKK9Cc0JjQm9CV0KLQmNCdINCg0JDQlNCY0JLQntCICivQnNCY0JvQldCi0JjQnSDQodCS0JXQotCe0JfQkNCgINCU0JjQn9CbINCe0JXQpgor0JzQmNCb0JXQotCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0JXQo9Ch0J3QmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JXQo9Ch0J3QmNCLINCc0JDQoNCa0J4KK9Cc0JjQm9CV0KPQodCd0JjQiyDQndCQ0JTQkAor0JzQmNCb0JXQo9Ch0J3QmNCLINCd0JDQlNCQCivQnNCY0JvQldCj0KHQndCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JXQkiDQn9CV0KLQkNCgCivQnNCY0JvQldCS0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JjQm9Cl0JDQndChINCh0KLQkNCd0JjQodCb0JDQkgor0JzQmNCb0JjQp9CV0JLQmNCLINCC0KPQoNCQCivQnNCY0JvQmNCn0JXQktCY0Isg0JDQoNCQ0J3QmtCQCivQnNCY0JvQmNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCn0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JjQm9CY0JLQntCICivQnNCY0JvQmNCn0JXQktCY0Isg0JzQmNCb0JrQkNCdCivQnNCY0JvQmNCn0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCn0JXQktCY0Isg0J3QldCd0JDQlAor0JzQmNCb0JjQp9CV0JLQmNCLINCd0J7QktCY0KbQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCf0JDQktCQCivQnNCY0JvQmNCn0JXQktCY0Isg0J/QldCg0J4KK9Cc0JjQm9CY0KfQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQnNCY0JvQmNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCn0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0JjQp9CY0Isg0JbQkNCg0JrQngor0JzQmNCb0JjQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CY0KfQmNCLINCQ0J3QkAor0JzQmNCb0JjQp9CY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0JjQm9CY0KfQmNCLINCQ0J3QmtCQCivQnNCY0JvQmNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0KfQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQmNCn0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQmNCn0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCn0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CY0KfQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0JvQmNCn0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CY0KfQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCY0JvQmNCn0JjQiyDQnNCQ0KDQmNCd0JrQngor0JzQmNCb0JjQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CY0KfQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9CY0KfQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCn0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JjQp9CY0Isg0KDQkNCI0JrQngor0JzQmNCb0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCn0JjQiyDQotCY0JvQmtCQCivQnNCY0JvQmNCn0JjQiyDQktCQ0KHQkAor0JzQmNCb0JjQqNCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQqNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CY0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCY0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0JvQmNCLINCW0JjQmtCQCivQnNCY0JvQmNCLINCW0JjQktCa0J4KK9Cc0JjQm9CY0Isg0JbQmNCS0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0KPQoNCY0KbQkAor0JzQmNCb0JjQiyDQkNCU0JjQm9CQCivQnNCY0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCY0JvQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cc0JjQm9CY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JzQmNCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JjQiyDQkdCe0JbQngor0JzQmNCb0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9CY0Isg0JHQntCI0JDQndCQCivQnNCY0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cc0JjQm9CY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0JvQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQnNCY0JvQmNCLINCU0JDQndCY0KbQkAor0JzQmNCb0JjQiyDQlNCQ0J3QmNCb0JrQkAor0JzQmNCb0JjQiyDQlNCQ0J3QmNCb0JrQkAor0JzQmNCb0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JjQm9CY0Isg0JTQkNCg0JAKK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JzQmNCb0JjQiyDQldCc0JjQm9CY0IjQkAor0JzQmNCb0JjQiyDQldCc0JjQm9CY0IjQkAor0JzQmNCb0JjQiyDQldCS0JAKK9Cc0JjQm9CY0Isg0JXQktCQCivQnNCY0JvQmNCLINCV0JLQmNCm0JAKK9Cc0JjQm9CY0Isg0KTQldCg0JXQndCmCivQnNCY0JvQmNCLINCT0JDQktCg0JAKK9Cc0JjQm9CY0Isg0JjQm9CY0IjQkAor0JzQmNCb0JjQiy3QiNCQ0JPQntCU0JjQndCh0JrQmCDQnNCY0JvQkNCdCivQnNCY0JvQmNCLINCI0JDQndCa0J4KK9Cc0JjQm9CY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQmNCLINCI0JXQm9CY0KbQkAor0JzQmNCb0JjQiyDQiNCV0JvQmtCQCivQnNCY0JvQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCLINCI0J7QktCQCivQnNCY0JvQmNCLINCI0J7QktCeCivQnNCY0JvQmNCLINCI0J7QktCeCivQnNCY0JvQmNCLINCI0KPQm9Ca0JAKK9Cc0JjQm9CY0Isg0JrQkNCi0JjQptCQCivQnNCY0JvQmNCLINCa0KDQodCi0J4KK9Cc0JjQm9CY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JjQm9CY0Isg0JvQkNCX0JDQoAor0JzQmNCb0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CY0Isg0InQo9CR0JjQqNCQCivQnNCY0JvQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCb0JjQiyDQidCj0JHQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0JzQkNCg0JAKK9Cc0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CY0Isg0JzQmNCb0JDQndCa0JAKK9Cc0JjQm9CY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9CY0Isg0JzQmNCb0J7QqAor0JzQmNCb0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQiyDQnNCY0JvQntCh0JDQkgor0JzQmNCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCY0J/QmyDQntCV0KYKK9Cc0JjQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JjQiyDQnNCY0KLQkAor0JzQmNCb0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQm9CY0Isg0J3QkNCU0JAKK9Cc0JjQm9CY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQiyDQndCe0JLQkNCaCivQnNCY0JvQmNCLINCd0J7QktCQ0JoKK9Cc0JjQm9CY0Isg0J/QkNCd0KLQkAor0JzQmNCb0JjQiyDQn9CQ0JLQm9CVCivQnNCY0JvQmNCLINCf0JXQoNCQCivQnNCY0JvQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQiyDQn9Cg0J7QmtCQCivQnNCY0JvQmNCLINCg0JDQlNCQCivQnNCY0JvQmNCLINCg0JDQlNCVCivQnNCY0JvQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0KDQkNCd0JrQngor0JzQmNCb0JjQiyDQoNCj0JbQkAor0JzQmNCb0JjQiyDQodCQ0J3QlNCg0JAKK9Cc0JjQm9CY0Isg0KHQkNCS0JAKK9Cc0JjQm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9CY0Isg0KHQm9CQ0JLQmtCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0JjQiyDQodCb0JDQktCj0IgKK9Cc0JjQm9CY0Isg0KHQntCk0JjQiNCQCivQnNCY0JvQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0JjQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQmNCLINCi0JXQntCU0J7QoNCQCivQnNCY0JvQmNCLINCi0J7QlNCe0KAKK9Cc0JjQm9CY0Isg0KLQntCU0J7QoAor0JzQmNCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0KPQoNCe0KgKK9Cc0JjQm9CY0Isg0JLQkNCh0JAKK9Cc0JjQm9CY0Isg0JLQldCb0JjQndCa0JAKK9Cc0JjQm9CY0Isg0JLQldCg0JAKK9Cc0JjQm9CY0Isg0JLQldCg0JAKK9Cc0JjQm9CY0Isg0JLQldCg0JjQptCQCivQnNCY0JvQmNCLINCS0JvQkNCU0JjQptCQCivQnNCY0JvQmNCLINCS0JvQkNCU0J4KK9Cc0JjQm9CY0Isg0JLQo9Ca0JjQptCQCivQnNCY0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0JvQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CY0Isg0JfQntCg0JDQnQor0JzQmNCb0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQmNCLINCX0J7QoNCQCivQnNCY0JvQmNCL0JXQkiDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQmNCL0JXQkiDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0IvQldCSINCh0JvQkNCS0JrQngor0JzQmNCb0JjQi9CV0JIg0JLQkNCh0JjQm9CY0IjQlQor0JzQmNCb0JjQi9CV0JIg0JLQmNCa0JXQndCi0JjQiNCVCivQnNCY0JvQmNCL0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQm9CY0IvQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQi9CV0JLQmNCLINCC0KPQoNCQ0IIKK9Cc0JjQm9CY0IvQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JjQi9CV0JLQmNCLINCR0J7QoNCY0KjQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQi9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0JPQntCI0JrQngor0JzQmNCb0JjQi9CV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0JvQmNCL0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQmNCb0JjQi9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCa0KHQldCd0JjQiNCQINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9Cc0JjQm9CY0IvQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQmNCb0JjQi9CV0JLQmNCLINCd0JDQotCQ0KjQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9CY0IvQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQmNCL0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQoNCQ0IjQmtCeCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0J/QkNCh0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCi0JDQndCQCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQldCb0JjQqNCQCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQldCg0J7QidCj0JEKK9Cc0JjQm9CY0IvQldCS0JjQiyDQktCY0KLQntCc0JjQoAor0JzQmNCb0JjQi9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQktCj0JrQntCc0JjQoAor0JzQmNCb0JjQpiDQmtCQ0KDQntCJCivQnNCY0JvQmNCU0KDQkNCTINCa0KDQodCi0J4KK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0JjQlNCg0JDQk9Ce0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQmNCb0JjQlNCg0JDQk9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IjQkNCoLdCf0JDQktCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQmNCI0JDQqNCV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQmNCI0JDQqNCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQm9CY0IjQkNCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JjQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0IjQldCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0JvQmNCa0JjQiyDQlNCg0JDQk9Ce0IjQlQor0JzQmNCb0JjQmtCY0Isg0KHQmNCc0JAKK9Cc0JjQm9CY0J0g0JbQmNCS0JDQnQor0JzQmNCb0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J0g0JTQo9Co0JDQnQor0JzQmNCb0JjQnSDQlNCj0KjQkNCdCivQnNCY0JvQmNCdINCY0JLQkNCdCivQnNCY0JvQmNCdINCI0J7QktCQ0J0KK9Cc0JjQm9CY0J0g0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CY0J0g0JzQmNCb0JjQptCQCivQnNCY0JvQmNCdINCc0J7QnNCY0KAKK9Cc0JjQm9CY0J0g0KDQkNCU0JjQktCe0Igg0JTQoAor0JzQmNCb0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0JjQnSDQodCd0JXQltCQ0J3QkAor0JzQmNCb0JjQnSDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0JvQmNCdINCS0J7QiNCY0KHQm9CQ0JIg0J3QntCS0JjQndCQ0KAKK9Cc0JjQm9CY0J0g0JfQlNCg0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQmNCdINCX0J7QoNCY0KbQkAor0JzQmNCb0JjQndCn0JjQiyDQp9CQ0KHQm9CQ0JIKK9Cc0JjQm9CY0J3Qp9CY0Isg0KHQotCe0IjQkNCdCivQnNCY0JvQmNCd0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQmNCb0JjQndCY0Isg0KDQkNCI0JrQngor0JzQmNCb0JjQndCa0J7QkiDQltCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCSINCW0JjQktCe0IjQmNCdCivQnNCY0JvQmNCd0JrQntCSINCQ0J3QgtCV0JvQmtCQCivQnNCY0JvQmNCd0JrQntCSINCR0J7QltCQCivQnNCY0JvQmNCd0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JjQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QmtCe0JIg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCd0JrQntCSINCU0JDQndCY0JvQngor0JzQmNCb0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQnNCY0JvQmNCd0JrQntCSINCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCSINCI0KPQm9Ca0JAKK9Cc0JjQm9CY0J3QmtCe0JIg0JvQkNCX0JDQoAor0JzQmNCb0JjQndCa0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JjQm9CY0J3QmtCe0JIg0JzQmNCb0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0J3QmtCe0JIg0J3QldCd0JDQlAor0JzQmNCb0JjQndCa0J7QkiDQndCV0J3QkNCUCivQnNCY0JvQmNCd0JrQntCSINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCSINCS0JXQoNCQCivQnNCY0JvQmNCd0JrQntCSINCS0JXQodCV0JvQmNCdCivQnNCY0JvQmNCd0JrQntCSINCS0JvQkNCI0JrQngor0JzQmNCb0JjQndCa0J7QkiDQl9Ce0KDQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQgtCj0KDQngor0JzQmNCb0JjQndCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQkdCe0IjQngor0JzQmNCb0JjQndCa0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQldCi0JXQm9Ca0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0JzQkNCg0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0JzQmNCb0JjQiwor0JzQmNCb0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQndCe0JLQkNCaCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQn9CQ0J3QotCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0KHQoNCV0KLQngor0JzQmNCb0JjQndCa0J7QktCY0Isg0JLQmNCU0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQmNCb0JjQndCa0J7QktCY0Isg0JLQntCI0JAKK9Cc0JjQm9CY0J3QntCSINCT0JDQktCg0JAKK9Cc0JjQm9CY0J3QntCSINCI0JXQm9CV0J3QmtCeCivQnNCY0JvQmNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CY0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QntCSINCd0JXQktCV0J3QkAor0JzQmNCb0JjQndCe0JIg0J3QmNCa0J7Qm9CQCivQnNCY0JvQmNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0JjQndCe0JIg0KHQm9CQ0JLQmtCeCivQnNCY0JvQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQm9CY0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JjQndCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQnNCY0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQm9CQ0JfQngor0JzQmNCb0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCb0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQmNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkAor0JzQmNCb0JjQndCe0JLQmNCLINCi0JjQnNCQCivQnNCY0JvQmNCd0J7QktCY0Isg0JLQiNCV0JrQntCh0JvQkNCSCivQnNCY0JvQmNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQmNCd0KHQmtCYINCQ0KDQn9CQ0JQKK9Cc0JjQm9CY0J3QodCa0Jgg0JXQoNCW0JXQkdCV0KIKK9Cc0JjQm9CY0J3QodCa0Jgg0JPQkNCR0J7QoAor0JzQmNCb0JjQndCh0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0JjQndCh0JrQmCDQiNCV0JvQldCd0JAKK9Cc0JjQm9CY0J3QodCa0Jgg0IjQldCb0JXQndCQCivQnNCY0JvQmNCd0KHQmtCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QodCa0Jgg0JzQmNCl0JDQmNCb0J4KK9Cc0JjQm9CY0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCY0JvQmNCd0KHQmtCYINCi0JXQntCU0J7QoAor0JzQmNCb0JjQndCh0JrQmCDQktCY0JrQotCe0KAKK9Cc0JjQm9CY0J3QodCa0Jgg0JLQmNCa0KLQntCgCivQnNCY0JvQmNCd0KHQmtCYINCX0J7Qm9Ci0JDQnQor0JzQmNCb0JjQodCQ0JLQkNCmINCW0JjQktCQ0J0KK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0KfQldCi0JAKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9CY0JLQntCI0KfQldCSINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0JLQntCI0KfQldCSINCh0KLQldCS0JDQnQor0JzQmNCb0JjQktCe0IjQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQmNCS0J7QiNCo0JAg0JvQkNCX0JDQoAor0JzQmNCb0JjQktCe0IjQqNCY0J0g0IjQntCS0JDQnQor0JzQmNCb0JjQktCe0IjQqNCY0J0g0J/QkNCI0JAKK9Cc0JjQm9CY0JLQntCI0JXQkiDQkNCd0JjQptCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0JHQntCg0JjQktCe0IgKK9Cc0JjQm9CY0JLQntCI0JXQkiDQk9Cg0JDQlNCe0IjQlQor0JzQmNCb0JjQktCe0IjQldCSINCI0J7QktCQ0J3QmtCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cc0JjQm9CY0JLQntCI0JXQkiDQm9Cj0JrQkAor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQmNCS0J7QiNCV0JIg0JzQmNCb0JDQndCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0JzQmNCb0JDQnQor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQkiDQnNCY0JvQntCoCivQnNCY0JvQmNCS0J7QiNCV0JIg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCS0J7QiNCV0JIg0J3QkNCU0JAKK9Cc0JjQm9CY0JLQntCI0JXQkiDQn9CQ0JLQm9CVCivQnNCY0JvQmNCS0J7QiNCV0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCW0JjQktCa0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0KPQlNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JjQm9CY0IjQkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQiNCQ0JPQntCU0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCg0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCg0JDQlNCe0IjQlQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCh0JDQktCeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQodCb0JDQktCd0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCe0IjQkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCS0KPQp9CeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCX0J7QoNCQCivQnNCY0InQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCJ0JDQndCY0Isg0JbQmNCS0JrQkAor0JzQmNCJ0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0InQkNCd0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQkNCd0JjQiyDQiNCe0JLQkNCdCivQnNCY0InQkNCd0JjQiyDQnNCQ0KDQmtCeCivQnNCY0InQkNCd0JjQiyDQndCe0JLQkNCaCivQnNCY0InQkNCd0JjQiyDQntCR0KDQkNCUCivQnNCY0InQkNCd0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCY0InQkNCd0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQiNCQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQidCQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQidCQ0J3QmNCLINCh0KLQkNCd0JrQngor0JzQmNCJ0JDQndCY0Isg0JLQo9Ca0J7QotCQCivQnNCY0InQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0JzQmNCJ0JDQndCe0JLQmNCLINCQ0JTQkNCcCivQnNCY0InQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0InQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCJ0JDQndCe0JLQmNCLINCU0KPQqNCY0KbQkAor0JzQmNCJ0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQidCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCJ0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCJ0JDQndCe0JLQmNCLINCS0JjQm9Cc0JAKK9Cc0JjQidCQ0J3QodCa0Jgg0JHQntCo0JrQngor0JzQmNCJ0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQnNCY0InQkNCd0KHQmtCYINCX0J7QoNCY0KbQkAor0JzQmNCJ0JDQndCh0JrQmCDQl9Ce0KDQmNCm0JAKK9Cc0JjQidCQ0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0InQkNCi0J7QktCY0Isg0JzQkNCg0JjQptCQCivQnNCY0InQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCJ0JDQotCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0InQkNCi0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQidCV0KjQmNCLINCd0JXQndCQ0JQKK9Cc0JjQidCV0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQldCS0JjQiyDQltCY0JLQmtCeCivQnNCY0InQldCS0JjQiyDQkNCU0JDQnAor0JzQmNCJ0JXQktCY0Isg0JDQndCa0JAKK9Cc0JjQidCV0JLQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQidCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQidCV0JLQmNCLINCT0JDQktCg0JjQm9CeCivQnNCY0InQldCS0JjQiyDQiNCQ0IrQkAor0JzQmNCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCJ0JXQktCY0Isg0IjQntCS0J4KK9Cc0JjQidCV0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQidCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCJ0JXQktCY0Isg0InQo9CR0JjQndCa0J4KK9Cc0JjQidCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQnNCY0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCJ0JXQktCY0Isg0J3QkNCi0JDQqNCQCivQnNCY0InQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQmNCJ0JXQktCY0Isg0J7QkdCg0JDQlAor0JzQmNCJ0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCJ0JXQktCY0Isg0JLQldCg0JjQptCQCivQnNCY0InQldCS0JjQiyDQktCV0KDQmNCm0JAKK9Cc0JjQidCV0JLQmNCLINCS0JjQndCa0J4KK9Cc0JjQidCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0InQmtCe0JIg0ILQo9Cg0JjQptCQCivQnNCY0InQmtCe0JLQkNCmINCR0J7Qk9Ce0KHQkNCSCivQnNCY0InQmtCe0JLQkNCmINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JjQidCa0J7QktCQ0KYg0J/QldCi0JDQoAor0JzQmNCJ0JrQntCS0JDQpiDQoNCQ0JTQntCS0JDQnQor0JzQmNCJ0JrQntCS0JDQpiDQotCQ0KLQiNCQ0J3QkAor0JzQmNCJ0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCJ0JrQntCS0JjQiyDQltCY0JLQkNCdCivQnNCY0InQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQidCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCJ0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQmNCJ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQngor0JzQmNCJ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQidCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQidCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQmNCJ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQidCa0J7QktCY0Isg0JvQldCd0JrQlQor0JzQmNCJ0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCY0InQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCJ0JrQntCS0JjQiyDQidCj0J/Qp9CVCivQnNCY0InQmtCe0JLQmNCLINCc0JDQoNCQCivQnNCY0InQmtCe0JLQmNCLINCc0JjQi9CQCivQnNCY0InQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0KDQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0KLQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQidCa0J7QktCY0Isg0JzQntCI0KHQkAor0JzQmNCJ0JrQntCS0JjQiyDQndCY0JrQntCb0JAg0JTQoCDQmNCd0JMKK9Cc0JjQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0InQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQmNCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0InQmtCe0JLQmNCLINCg0JDQpdCY0InQkAor0JzQmNCJ0JrQntCS0JjQiyDQoNCe0KHQkAor0JzQmNCJ0JrQntCS0JjQiyDQoNCe0KHQkAor0JzQmNCJ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQmtCe0JLQmNCLINCh0KLQkNCc0JXQndCa0J4g0JTQoCDQm9CV0JrQkNCgCivQnNCY0InQmtCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cc0JjQidCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCY0InQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQidCa0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQidCe0IjQmtCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQnNCY0InQntCI0JrQntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQnNCY0InQntCI0JrQntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCY0InQntCI0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JjQidCj0Kgg0ILQo9Cg0J4KK9Cc0JjQidCj0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQidCj0Kgg0JHQoNCQ0J3QmtCeCivQnNCY0InQo9CoINCR0KDQkNCd0JrQngor0JzQmNCJ0KPQqCDQlNCg0JDQk9CeCivQnNCY0InQo9CoINCU0KPQqNCQ0J3QmtCQCivQnNCY0InQo9CoINCU0KPQqNCQ0J0KK9Cc0JjQidCj0Kgg0JXQktCQCivQnNCY0InQo9CoINCI0J7QktCQ0J0g0JTQoAor0JzQmNCJ0KPQqCDQiNCe0JLQkNCdCivQnNCY0InQo9CoINCI0J7QktCQ0J0KK9Cc0JjQidCj0Kgg0JrQkNCi0JDQoNCY0J3QkAor0JzQmNCJ0KPQqCDQidCY0InQkNCd0JAKK9Cc0JjQidCj0Kgg0InQo9CR0JjQptCQCivQnNCY0InQo9CoINCc0JDQoNCY0IjQkAor0JzQmNCJ0KPQqCDQnNCQ0KDQmNCI0JAKK9Cc0JjQidCj0Kgg0JzQmNCb0JDQnQor0JzQmNCJ0KPQqCDQnNCY0JvQlQor0JzQmNCJ0KPQqCDQnNCY0JvQntCg0JDQlAor0JzQmNCJ0KPQqCDQnNCY0J7QlNCg0JDQkwor0JzQmNCJ0KPQqCDQndCY0JrQntCb0JAKK9Cc0JjQidCj0Kgg0J/QldCi0JDQoAor0JzQmNCb0JrQntCSINCC0KPQoNCC0JjQndCa0JAKK9Cc0JjQm9Ca0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQnNCY0JvQmtCe0JIg0JDQptCQCivQnNCY0JvQmtCe0JIg0JTQoNCQ0JPQkNCdINCU0KAKK9Cc0JjQm9Ca0J7QkiDQlNCg0JDQk9CY0IrQkAor0JzQmNCb0JrQntCSINCT0J7QoNCU0JDQndCQCivQnNCY0JvQmtCe0JIg0JPQntCg0JTQkNCd0JAKK9Cc0JjQm9Ca0J7QkiDQiNCQ0KHQnNCY0J3QkAor0JzQmNCb0JrQntCSINCI0JXQm9CV0J3QkAor0JzQmNCb0JrQntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9Ca0J7QkiDQm9CQ0JfQkNCgCivQnNCY0JvQmtCe0JIg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9Ca0J7QkiDQodCi0JDQndCe0IjQlQor0JzQmNCb0JrQntCSINCh0KLQldCS0JDQnQor0JzQmNCb0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ca0J7QktCY0Isg0JLQldCJ0JrQngor0JzQmNCb0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J3QntCS0JjQiyDQmtCQ0JzQldCd0JrQngor0JzQmNCb0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JvQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCb0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0JvQndCe0JLQmNCLINCX0J7QoNCQCivQnNCY0JvQniDQk9CY0JfQldCb0JAKK9Cc0JjQm9Ce0Kgg0JjQktCQ0J0KK9Cc0JjQm9Ce0KjQp9CY0J0g0KHQotCQ0KjQkAor0JzQmNCb0J7QqNCn0JjQnSDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0KjQp9CY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0J7QqNCV0JIg0JbQkNCg0JrQniDQlNCgCivQnNCY0JvQntCo0JXQkiDQltCY0JrQkAor0JzQmNCb0J7QqNCV0JIg0JbQmNCS0JrQkAor0JzQmNCb0J7QqNCV0JIg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQm9Ce0KjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCo0JXQkiDQkNCd0ILQldCb0JjQiNCQCivQnNCY0JvQntCo0JXQkiDQkdCe0KjQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QqNCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KjQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQkiDQlNCe0JHQoNCY0JLQntCICivQnNCY0JvQntCo0JXQkiDQlNCj0KjQkNCdCivQnNCY0JvQntCo0JXQkiDQlNCj0KjQmtCeCivQnNCY0JvQntCo0JXQkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0J7QqNCV0JIg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9Ce0KjQldCSINCc0JDQoNCY0IjQkAor0JzQmNCb0J7QqNCV0JIg0JzQmNCL0J4KK9Cc0JjQm9Ce0KjQldCSINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQntCo0JXQkiDQnNCY0JvQkNCdCivQnNCY0JvQntCo0JXQkiDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0JjQktCe0IgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQidCQ0J3QkAor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQkiDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JIg0JzQmNCg0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQmtCeCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCSINCc0JjQotCQCivQnNCY0JvQntCo0JXQkiDQnNCe0JzQp9CY0JvQngor0JzQmNCb0J7QqNCV0JIg0J3QldCR0J7QiNCo0JAKK9Cc0JjQm9Ce0KjQldCSINCd0J7QktCa0JAKK9Cc0JjQm9Ce0KjQldCSINCf0JXQotCQ0KAKK9Cc0JjQm9Ce0KjQldCSINCg0JDQlNCQCivQnNCY0JvQntCo0JXQkiDQodCQ0JLQkAor0JzQmNCb0J7QqNCV0JIg0KHQm9CQ0JLQmtCQCivQnNCY0JvQntCo0JXQkiDQodCe0KTQmNCI0JAKK9Cc0JjQm9Ce0KjQldCSINCh0KLQkNCd0JAKK9Cc0JjQm9Ce0KjQldCSINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQm9Ce0KjQldCSINCS0JDQodCQINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QqNCV0JIg0JLQkNCh0JAKK9Cc0JjQm9Ce0KjQldCSINCS0JXQm9CY0JzQmNCgCivQnNCY0JvQntCo0JXQkiDQl9Cb0JDQotCe0JzQmNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0J3QkNCh0KLQkNCX0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JDQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCY0KHQldCg0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JbQngor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7QiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQptCS0JXQotCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQptCS0JXQotCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCV0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCV0JLQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQk9Cg0J7Ql9CU0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQmNCT0IrQkNCiCivQnNCY0JvQntCo0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQkNCa0J7Qkgor0JzQmNCb0J7QqNCV0JLQmNCLINCI0JDQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCV0KDQmNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQo9Cb0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCa0JvQkNCj0JTQmNCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JvQkNCi0JjQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JvQntCX0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0KLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCl0JDQidCY0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KLQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCQ0JTQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCd0JXQktCV0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCd0J7QktCY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQntCb0JPQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0J/QkNCS0JvQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQlNCVINCU0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQlNCVCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCI0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0KLQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KDQmNCh0KLQngor0JzQmNCb0J7QqNCV0JLQmNCLINCg0KPQltCQCivQnNCY0JvQntCo0JXQktCY0Isg0KDQo9CW0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCV0JvQldCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCf0JDQodCe0IjQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KDQkdCe0JHQoNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCi0J7QiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0KHQktCV0KLQntCJ0KPQkQor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KLQkNCU0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCj0KDQntCoCivQnNCY0JvQntCo0JXQktCY0Isg0JLQkNCh0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JLQldCJ0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JXQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCY0JTQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCb0JDQlNCQINCU0JjQn9CbINCe0JXQpgor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCS0J7QiNCa0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCS0KPQmtCQ0KjQmNCdINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JfQkNCl0JDQoNCY0IjQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JfQm9CQ0KLQmNCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCX0J7QoNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCo0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQkNCd0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQptCS0JjQiNCV0KLQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JPQntCI0JrQngor0JzQmNCb0J7QiNCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCI0JDQndCa0J4KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9Ce0IjQldCS0JjQiy3QnNCY0JvQkNCd0J7QkiDQodCS0JXQotCb0JDQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQm9Ce0IjQlSDQlNCgINCf0KDQntCkCivQnNCY0JvQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQntCI0JXQktCY0Isg0JzQntCc0JjQoCDQlNCgCivQnNCY0JvQntCI0JXQktCY0Isg0J7Qm9CT0JjQptCQCivQnNCY0JvQntCI0JXQktCY0Isg0J/QkNCS0JvQlQor0JzQmNCb0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0JvQntCI0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQoNCQ0J3QmtCeCivQnNCY0JvQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCS0JDQodCQCivQnNCY0JvQntCI0JXQktCY0Isg0JLQm9CQ0JTQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQktCe0IjQmNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JfQktCe0J3QmtCeCivQnNCY0JvQntCI0JjQptCQINCc0JjQidCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQltCY0JLQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQkNCm0JAKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCR0J7QltCQ0J3QkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQmtCg0JjQodCi0JAKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCI0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQnNCY0JvQntCI0JrQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQmNCb0J7QnCDQmNCc0KDQlQor0JzQmNCb0J7QnCDQmNCc0KDQlQor0JzQmNCb0J7QoNCQ0JTQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0J7QoNCQ0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0J7QoNCQ0JTQntCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQmNCb0J7QoNCQ0JTQntCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QoNCQ0JTQntCSINCg0JDQlNCe0KHQm9CQ0JLQmtCQCivQnNCY0JvQntCg0JDQlNCe0JIg0JLQmNCe0JvQldCi0JAKK9Cc0JjQm9Ce0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQm9Ce0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KDQkNCU0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCX0JvQkNCi0J7QiNCVCivQnNCY0JvQntCh0JDQktCQ0KYg0JzQmNCL0JAKK9Cc0JjQm9Ce0KHQkNCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCh0JDQktCY0Isg0JrQoNCh0KLQkNCdCivQnNCY0JvQntCh0JDQktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQntCh0JDQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0KHQkNCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCh0JDQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9Ce0KHQkNCS0JjQiyDQodCi0J7QiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQltCY0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQltCY0JLQmtCQCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCU0J7QkdCg0JXQnQor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQmNCK0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JzQldCb0JDQndCY0IjQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCc0JjQm9CY0KbQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0J3QntCS0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JLQm9CQ0JTQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JLQntCI0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQltCQ0KDQmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JDQlNCY0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCQ0JTQkNCcINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JUKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0J3QntCS0JjQptCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCQ0JLQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQoNCV0KLQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQktCV0KDQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCh0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QodCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KHQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0JvQntCS0KfQldCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCS0JDQpiDQlNCj0KjQkNCdCivQnNCY0JvQntCS0JDQpiDQk9Cb0JjQqNCQCivQnNCY0JvQntCS0JDQpiDQk9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQpiDQmNCb0JUKK9Cc0JjQm9Ce0JLQkNCmINCY0JvQmNCI0JAKK9Cc0JjQm9Ce0JLQkNCmINCI0JXQm9CQCivQnNCY0JvQntCS0JDQpiDQnNCY0JvQkNCdCivQnNCY0JvQntCS0JDQpiDQnNCY0JvQkNCdCivQnNCY0JvQntCS0JDQpiDQnNCY0JvQkNCdCivQnNCY0JvQntCS0JDQpiDQn9CV0KLQkNCgCivQnNCY0JvQntCS0JDQpiDQoNCj0JbQmNCm0JAKK9Cc0JjQm9Ce0JLQkNCmINCh0JjQnNCeCivQnNCY0JvQntCS0JDQpiDQodCi0JDQndCa0J4KK9Cc0JjQm9Ce0JLQkNCmINCh0KLQldCS0JDQnQor0JzQmNCb0J7QktCQ0KYg0KHQotCe0IjQkNCdCivQnNCY0JvQntCS0JDQnSDQmtCe0J3QodCi0JDQndCm0JAKK9Cc0JjQm9Ce0JLQkNCd0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCS0JDQndCn0JXQkiDQmNCh0JjQlNCe0KAKK9Cc0JjQm9Ce0JLQkNCd0KfQldCSINCd0JjQmtCe0JvQkAor0JzQmNCb0J7QktCQ0J3Qp9CV0JIg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0JLQkNCd0KfQldCSINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0JzQmNCb0J7QktCQ0J3QmtCY0Isg0ILQntCg0ILQlQor0JzQmNCb0J7QktCQ0J3QmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCSINCC0J7QoNCC0JUKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQkNCd0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JIg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JIg0JTQoNCQ0JPQkNCdCivQnNCY0JvQntCS0JDQndCe0JIg0JPQntCI0JrQngor0JzQmNCb0J7QktCQ0J3QntCSINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQk9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JIg0JPQntCg0JTQkNCd0JAg0JTQoCDQm9CV0JrQkNCgCivQnNCY0JvQntCS0JDQndCe0JIg0JjQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQiNCj0JvQmtCQCivQnNCY0JvQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQm9CVCivQnNCY0JvQntCS0JDQndCe0JIg0JzQmNCb0JjQndCa0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQnNCY0JvQmNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JIg0KHQmNCc0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0JvQntCS0JDQndCe0JIg0KLQntCU0J7QoAor0JzQmNCb0J7QktCQ0J3QntCSINCS0JDQodCY0JvQmNCI0JUKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQl9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCW0JjQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkNCd0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCR0J7Qk9Ce0KHQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQodCQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCY0JLQmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmtCQ0KLQkNCb0JjQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JrQntCh0JDQoNCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCa0KDQodCi0J7QnNCY0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J3QkNCU0JAg0JzQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J7QkdCg0JXQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQkNCo0JjQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQmNCh0KLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQntCK0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQoNCR0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCi0JXQoNCa0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQmNCU0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0J7QiNCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JzQmNCb0J7QktCY0Isg0KfQldCU0J4KK9Cc0JjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCb0J7QktCY0Isg0JHQntCg0JjQqNCQCivQnNCY0JvQntCS0JjQiyDQkdCe0KDQngor0JzQmNCb0J7QktCY0Isg0JHQntCg0J4KK9Cc0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cc0JjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCb0J7QktCY0Isg0JrQoNCh0KLQngor0JzQmNCb0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9Ce0JLQmNCLINCc0JDQiNCQCivQnNCY0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JzQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQnNCY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQmNCb0J7QktCY0Isg0J7QoNCb0JUKK9Cc0JjQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Ce0JLQmNCLINCg0JDQlNCVCivQnNCY0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQnNCY0JvQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0JvQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQmNCb0KPQqNCY0Isg0JXQktCY0KbQkAor0JzQmNCb0KPQqNCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Cj0J3QntCSINCI0J7QktCQ0J0KK9Cc0JjQm9Cj0J3QntCSINCI0KPQm9Ca0JAKK9Cc0JjQm9Cj0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Cj0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0JvQo9Cd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0KPQndCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQnNCY0JvQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Cj0J3QntCS0JjQiyDQnNCY0JvQo9CdCivQnNCY0JvQo9Cd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQm9Cj0J3QntCS0JjQiyDQodCf0JDQodCV0J3QmtCeCivQnNCY0JvQo9Cd0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0JvQo9Cg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0KPQotCY0J0g0JbQmNCS0JrQngor0JzQmNCb0KPQotCY0J0g0IjQkNCh0J3QkAor0JzQmNCb0KPQotCY0J0g0JzQmNCg0JAKK9Cc0JjQm9Cj0KLQmNCdINCd0JXQlNCV0InQmtCeCivQnNCY0JvQo9Ci0JjQnSDQoNCQ0KLQmtCeCivQnNCY0JvQo9Ci0JjQnSDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JIg0ILQntCa0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQkNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQmNCb0KPQotCY0J3QntCSINCI0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQmtCe0J3QodCi0JDQndCi0JjQnQor0JzQmNCb0KPQotCY0J3QntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0KPQotCY0J3QntCSINCc0JjQotCQCivQnNCY0JvQo9Ci0JjQndCe0JIt0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQoNCQ0JTQkAor0JzQmNCb0KPQotCY0J3QntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQodCQ0JLQkAor0JzQmNCb0KPQotCY0J3QntCSINCh0JDQktCV0KLQkAor0JzQmNCb0KPQotCY0J3QntCSINCi0J7QlNCe0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQktCV0JvQmNCR0J7QoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQqNCi0JXQpNCY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQltCY0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCR0J7QiNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0JDQndCY0IjQldCb0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQmNCT0IrQkNCiCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQm9CY0JTQmNCI0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JvQmNCU0JjQiNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCJ0KPQkdCeCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JDQndCU0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQkNCg0KLQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQntCI0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQINCU0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCe0JvQk9CQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQkNCo0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCS0JXQoNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCS0JXQoNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCS0JXQoNCY0KbQkCDQlNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLLdCS0KPQmtCh0JDQnSDQntCb0JPQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JzQmNCm0JAg0JzQm9CQ0JTQldCdCivQnNCY0JzQmNCm0JAg0J3QldCd0JDQlAor0JzQmNCc0JjQptCQINCd0JXQndCQ0JQKK9Cc0JjQnNCY0KbQkCDQndCV0J3QkNCUCivQnNCY0J3Qp9CY0Isg0JzQmNCg0J7QidCj0JEKK9Cc0JjQndCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0J3Qp9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cc0JjQndCU0JAt0KDQkNCC0JXQndCe0JLQmNCLINCV0JvQldCd0JAKK9Cc0JjQndCU0JAg0KLQmNCR0J7QoAor0JzQmNCd0JTQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0J3QlNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0J3QldCQINCg0J7QnNCQ0J0KK9Cc0JjQndCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQndCY0Isg0J3QkNCU0JAKK9Cc0JjQndCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQndCY0Isg0JfQntCg0JrQkAor0JzQmNCd0JjQmiDQqNCQ0J3QlNCe0KAKK9Cc0JjQndCY0Jog0IjQntCh0JjQnwor0JzQmNCK0JAg0JzQkNCI0JAKK9Cc0JjQitCQINCc0JjQm9Cj0KLQmNCdCivQnNCY0J7QpyDQltCV0InQmtCeCivQnNCY0J7QpyDQmNCS0JDQnQor0JzQmNCe0Kcg0JfQlNCV0J3QmtCeCivQnNCY0J7Qp9CY0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCY0J7Qp9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0J7QlNCQ0J3QmNCLINCU0JDQndCa0J4KK9Cc0JjQntCU0KDQkNCTINCQ0J3QkAor0JzQmNCe0JTQoNCQ0JMg0JzQmNCg0JrQngor0JzQmNCe0JTQoNCQ0JMg0J/QldCg0J4KK9Cc0JjQntCU0KDQkNCTINCX0JTQoNCQ0JLQmtCQCivQnNCY0J7QlNCg0JDQkyDQl9Ce0KDQmNCm0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JDQm9CQ0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQotCe0KjQkAor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQktCV0KDQkAor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiy3QktCj0JrQkNCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JjQntCaINCS0JvQkNCh0KLQmNCc0JjQoAor0JzQmNCe0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQntCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0J7QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQntCb0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQntCb0KHQmtCYINCU0KPQqNCa0J4KK9Cc0JjQntCb0KHQmtCYINCh0KLQkNCd0JrQngor0JzQmNCe0JvQodCa0Jgg0KHQotCV0JLQkNCdCivQnNCY0KDQp9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCn0JXQotCY0Isg0JvQkNCX0JDQoAor0JzQmNCg0KfQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQoNCn0JXQotCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQoNCn0JXQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCg0KfQldCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQoNCn0JXQotCY0Isg0JfQntCg0JDQnQor0JzQmNCg0KfQldCi0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KDQp9CV0JLQodCa0Jgg0JzQmNCl0JDQmNCb0J4KK9Cc0JjQoNCn0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JzQmNCg0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KDQp9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KDQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQoNCn0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0KDQp9CY0Isg0KHQotCe0IjQkNCdCivQnNCY0KDQkNCW0JjQiyDQkNCd0KLQo9CdCivQnNCY0KDQkNCW0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQoNCQ0JbQmNCLINCR0KDQkNCd0JrQngor0JzQmNCg0JDQltCY0Isg0IjQldCb0JAKK9Cc0JjQoNCQ0JbQmNCLINCc0JDQoNCQCivQnNCY0KDQkNCW0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9Cc0JjQoNCQ0JvQldCcINCQ0KXQnNCV0JQKK9Cc0JjQoNCQ0J3QntCS0JjQiyDQmtCh0JXQndCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQoNCQ0J3QntCS0JjQiyDQnNCQ0IjQkAor0JzQmNCg0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQoNCV0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KDQldCo0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQoNCY0Isg0ILQo9Cg0JAKK9Cc0JjQoNCY0Isg0JDQk9CQ0KLQkAor0JzQmNCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCg0JjQiyDQlNCQ0J3QlQor0JzQmNCg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0KDQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQoNCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JjQiyDQlNCj0KjQkNCdCivQnNCY0KDQmNCLINCU0KPQqNCa0J4KK9Cc0JjQoNCY0Isg0IjQntCh0JjQpAor0JzQmNCg0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQmNCLINCI0J7QktCeCivQnNCY0KDQmNCLINCa0JDQotCQCivQnNCY0KDQmNCLINCa0JDQotCY0KbQkAor0JzQmNCg0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JzQmNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQoNCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KDQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQoNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KDQmNCLINCf0JDQktCb0JUKK9Cc0JjQoNCY0Isg0KDQkNCI0JrQngor0JzQmNCg0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQoNCY0Isg0KHQkNCo0JAKK9Cc0JjQoNCY0Isg0KHQkNCS0JrQkAor0JzQmNCg0JjQiyDQodCc0JjQidCQCivQnNCY0KDQmNCLINCh0KLQldCS0JDQnQor0JzQmNCg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0KDQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cc0JjQoNCY0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KDQmNCb0J7QkiDQnNCY0JvQkNCU0JjQnSDQlNCgCivQnNCY0KDQmNCb0J7QkiDQl9Ce0KDQmtCQCivQnNCY0KDQmNCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KDQmNCb0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JjQoNCY0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0KDQmNCb0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0KDQmNCb0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQoNCY0JzQkNCd0J7QkiDQlNCQ0KDQkAor0JzQmNCg0JjQnNCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQoNCI0JDQp9CY0Isg0JHQntCh0JAKK9Cc0JjQoNCI0JDQndCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KDQiNCQ0J3QmNCLINCc0J7QoNCQ0JLQmtCQCivQnNCY0KDQiNCQ0J3QmNCLINCS0JDQodCQCivQnNCY0KDQiNCQ0J3QmNCLINCS0JXQoNCY0KbQkAor0JzQmNCg0IjQkNCd0JjQnSDQndCV0KDQkAor0JzQmNCg0JrQkNCmINCh0KLQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCg0JrQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCg0JrQmNCLINCR0JvQkNCT0J7QiNCVCivQnNCY0KDQmtCe0Iog0KHQoNCV0JTQntCI0JUKK9Cc0JjQoNCa0J7QitCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KDQmtCe0IrQldCSINCh0J3QldCW0JDQndCQCivQnNCY0KDQmtCe0JIg0JbQldCJ0JrQngor0JzQmNCg0JrQntCSINCW0JjQktCQ0J0KK9Cc0JjQoNCa0J7QkiDQgtCe0KDQgtCVCivQnNCY0KDQmtCe0JIg0ILQo9Cg0ILQmNCI0JAKK9Cc0JjQoNCa0J7QkiDQgtCj0KDQgtCY0IjQkAor0JzQmNCg0JrQntCSINCC0KPQoNCY0KbQkAor0JzQmNCg0JrQntCSINCR0J7QodCY0InQmtCQCivQnNCY0KDQmtCe0JIg0JTQo9Co0JjQptCQCivQnNCY0KDQmtCe0JIg0JXQktCY0KbQkAor0JzQmNCg0JrQntCSINCc0JDQoNCY0KbQkAor0JzQmNCg0JrQntCSINCf0JDQktCb0JUKK9Cc0JjQoNCa0J7QkiDQoNCj0JbQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQodCV0JrQo9Cb0JAg0JTQmNCf0Jsg0J7QldCmCivQnNCY0KDQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCg0JrQntCSINCh0J3QldCW0JDQndCQCivQnNCY0KDQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCY0KDQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0KDQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0KDQmtCe0JIg0JLQldCJ0JrQngor0JzQmNCg0JrQntCSINCS0JvQkNCU0JAKK9Cc0JjQoNCa0J7QkiDQl9Ce0KDQkNCdCivQnNCY0KDQmtCe0JIg0JfQntCg0JjQptCQCivQnNCY0KDQmtCe0JIg0JfQntCg0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCg0JrQntCS0JjQiyDQltCY0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCW0JjQktCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JjQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KDQmtCe0JLQmNCLINCQ0JLQoNCQ0JwKK9Cc0JjQoNCa0J7QktCY0Isg0JHQntCg0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQldCI0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQmNCg0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCg0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQldCU0JjQotCQCivQnNCY0KDQmtCe0JLQmNCLINCV0JvQkAor0JzQmNCg0JrQntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0JzQmNCg0JrQntCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0JzQmNCg0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQoNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JDQoNCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JDQoNCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQoAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JjQoNCa0J7QktCY0Isg0J3QntCS0JDQmgor0JzQmNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0KDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0KDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0KHQkNCK0JAKK9Cc0JjQoNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQoNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCY0KDQmtCe0JLQmNCLINCi0KDQmNCk0KPQnQor0JzQmNCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0g0JTQoAor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JfQntCg0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQnNCY0KDQndCY0Isg0IjQntCh0JjQnyDQlNCgCivQnNCY0KDQndCY0Isg0KHQmNCb0JLQmNCI0JAKK9Cc0JjQoNCd0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQmNCg0J7QqNCV0JLQmNCLINCd0JjQndCeCivQnNCY0KDQntCd0JjQptCa0Jgg0KDQo9CW0JjQptCQCivQnNCY0KDQntCd0JjQptCa0Jgg0JfQktCe0J3QmNCc0JjQoAor0JzQmNCg0J7QodCQ0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQoNCe0KHQkNCS0InQldCSINCY0JvQmNCd0JrQkAor0JzQmNCg0J7QodCQ0JLQidCV0JIg0IjQntCm0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCSINCc0JDQoNCY0IjQkAor0JzQmNCg0J7QodCQ0JLQidCV0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JjQoNCe0KHQkNCS0InQldCSINCc0JvQkNCU0JXQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JHQntCo0JrQngor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQntCU0KDQkNCTCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JzQkNCT0JTQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0KHQotCg0JDQpdCY0IrQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQktCV0KDQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JrQkAor0JzQmNCg0J7QodCb0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JjQoNCe0JLQmNCLINCY0JPQntCgCivQnNCY0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQoNCe0JLQmNCLINCc0JjQm9CeCivQnNCY0KDQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KHQkNCY0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KHQkNCI0JvQntCS0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JzQmNCh0JDQidCV0JLQmNCLINCd0JXQnNCQ0IrQkAor0JzQmNCh0JjQnNCYINCa0JDQnNCR0JXQoAor0JzQmNCh0JjQndCYINCc0JjQoNCY0JzQkNCdCivQnNCY0KHQmNCg0JrQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQodCY0KDQmtCY0Isg0JLQm9CQ0JTQkAor0JzQmNCh0JjQoNCb0JjQoSDQk9CV0J7QoNCT0JjQntChCivQnNCY0KHQmtCY0J0g0JTQoNCQ0JPQkNCdCivQnNCY0KHQmtCY0J0g0JzQmNCb0J7QqAor0JzQmNCh0JrQmNCdINCd0JjQmtCeCivQnNCY0KHQmtCY0J0g0JfQlNCg0JDQktCa0J4KK9Cc0JjQodCb0JjQnNCYINCQ0JvQmNCS0JXQkdCYCivQnNCY0KLQkNCgINCi0J7QnNCQCivQnNCY0KLQkNCgINCS0JXQoNCQCivQnNCY0KLQldCS0KHQmtCYINCY0JLQkNCdCivQnNCY0KLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0KLQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCi0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCi0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQotCY0Isg0JTQo9Co0JDQnQor0JzQmNCi0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCi0JjQiyDQmNCT0J7QoAor0JzQmNCi0JjQiyDQiNCe0KHQmNCkCivQnNCY0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCY0Isg0IjQntCS0JDQnQor0JzQmNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQotCY0Isg0JzQmNCb0JDQnQor0JzQmNCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCi0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQotCY0Isg0JzQmNCg0JrQngor0JzQmNCi0JjQiyDQnNCY0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQmNCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQotCY0Isg0J/QkNCS0JvQlQor0JzQmNCi0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCY0KLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQotCY0Isg0KHQoNCV0JHQoNCQCivQnNCY0KLQmNCLINCh0KPQl9CQ0J3QkAor0JzQmNCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0KLQmNCLINCS0JXQoNCQCivQnNCY0KLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JjQotCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQotCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KLQntCo0JXQktCY0Isg0JHQntCT0JTQkNCdCivQnNCY0KLQntCo0JXQktCY0Isg0JzQmNCb0JUKK9Cc0JjQotCe0KjQldCS0JjQiyDQndCQ0JTQkAor0JzQmNCi0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0J7QktCY0Isg0JTQntCR0KDQmNCh0JvQkNCSCivQnNCY0KLQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCQ0KjQmNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0KLQoNCQ0KjQmNCd0J7QktCY0Isg0JfQntCg0JAKK9Cc0JjQotCg0JDQmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cc0JjQotCg0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQotCg0JDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JjQotCg0JDQmtCe0JLQmNCLINCj0JPQidCV0KjQkAor0JzQmNCi0KDQldCa0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQotCg0JXQodCa0Jgg0JzQntCc0KfQmNCb0J4KK9Cc0JjQotCg0JXQktCh0JrQkCDQldCS0JTQntCa0JjQiNCQCivQnNCY0KLQoNCV0JLQodCa0Jgg0JvQkNCc0JHQlQor0JzQmNCi0KDQldCS0KHQmtCYINCc0J7QnNCn0JjQm9CeCivQnNCY0KLQoNCV0JLQodCa0Jgg0KDQkNCU0JAKK9Cc0JjQotCg0JjQp9CV0JLQmNCLINCW0JjQmtCQCivQnNCY0KLQoNCY0KfQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JzQmNCi0KDQmNCn0JXQktCY0Isg0JDQndCQCivQnNCY0KLQoNCY0KfQldCS0JjQiyDQodCc0JjQidCQCivQnNCY0KLQoNCY0Isg0ILQo9Cg0J4KK9Cc0JjQotCg0JjQiyDQkdCe0JPQmNCLCivQnNCY0KLQoNCY0Isg0JzQmNCb0JDQnQor0JzQmNCi0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0JjQiyDQnNCY0JvQntCoCivQnNCY0KLQoNCY0Isg0J3QldCC0J4KK9Cc0JjQotCg0JjQiyDQndCV0ILQngor0JzQmNCi0KDQmNCLINCd0J7QktCQ0JoKK9Cc0JjQotCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCi0KDQmNCLINCS0JDQm9CV0J3QotCY0J3QkAor0JzQmNCi0KDQntCS0KfQkNCdINCI0KPQm9Ca0JjQptCQCivQnNCY0KLQoNCe0JLQp9CQ0J0g0JrQntCh0KLQkAor0JzQmNCi0KDQntCS0KfQkNCdINCb0JDQl9CQ0KAKK9Cc0JjQotCg0J7QktCn0JDQnSDQidCj0JHQmNCd0JrQngor0JzQmNCi0KDQntCS0KfQkNCdINCJ0KPQkdCY0J3QmtCeCivQnNCY0KLQoNCe0JLQp9CQ0J0g0JzQmNCi0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQoNCQ0JTQmNCd0JrQkAor0JzQmNCi0KDQntCS0KfQkNCdINCh0KLQldCS0JDQnQor0JzQmNCi0KDQntCS0KfQkNCdINCh0KLQiNCV0J/QkNCdCivQnNCY0KLQoNCe0JLQp9CQ0J0g0JfQkNCT0J7QoNCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCi0KDQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQmNCi0KDQntCS0JjQiyDQgtCe0JrQngor0JzQmNCi0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQnNCY0KLQoNCe0JLQmNCLINCQ0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9CYCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QiNCb0J4KK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCi0KDQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JTQo9Co0JrQngor0JzQmNCi0KDQntCS0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JPQntCh0J/QkNCS0JAKK9Cc0JjQotCg0J7QktCY0Isg0JPQntCh0J/QkAor0JzQmNCi0KDQntCS0JjQiyDQmNCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCY0KLQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0JzQmNCi0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0KLQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQotCg0J7QktCY0Isg0JzQntCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQmNCi0KDQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KLQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCi0KDQntCS0JjQiyDQntCb0JPQkAor0JzQmNCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCeCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQotCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JjQotCg0J7QktCY0Isg0KHQoNCV0KLQkAor0JzQmNCi0KDQntCS0JjQiyDQodCi0JDQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQnNCY0KLQoNCe0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0KPQl9CQ0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KLQoNCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQnNCY0KLQoNCe0JLQmNCLINCi0J7QlNCVCivQnNCY0KLQoNCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cc0JjQotCg0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JjQotCg0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQotCg0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQotCg0J7QktCY0Isg0JLQldCg0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cc0JjQotCg0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQktCj0KfQldCi0JAKK9Cc0JjQotCg0J7QktCY0Ist0JLQo9CI0J3QmNCLINCh0JzQmNCJ0JDQndCQCivQnNCY0KLQoNCe0JLQmNCLINCS0KPQiNCe0KgKK9Cc0JjQotCg0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQnNCY0KLQoNCj0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQotCg0KPQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KLQoNCj0KjQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCY0KPQp9CY0J0g0J3QkNCi0JDQm9CY0IjQkAor0JzQmNCj0KfQmNCdINCg0J7Ql9CY0J3QkAor0JzQmNCj0KfQmNCdINCh0JvQkNCS0JrQngor0JzQmNCj0KfQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQo9Cn0JjQnSDQktCV0KDQmNCm0JAKK9Cc0JjQlyDQnNCQ0KDQmNCI0JAKK9Cc0JjQlyDQoNCe0JzQkNCdCivQnNCY0JfQlNCg0JDQmiDQkdCg0JDQndCa0J4KK9Cc0IjQldCU0JAg0KHQmNCc0J7QnQor0JzQm9CQ0ILQldCdINCC0KPQoNCeCivQnNCb0JDQgtCV0J0g0JTQnNCY0KLQkNCgCivQnNCb0JDQgtCV0J3QntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JvQkNCC0JXQndCe0JLQmNCLINCV0JvQldCd0JAKK9Cc0JvQkNCC0JXQndCe0JLQmNCLINCg0JDQlNCVCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCI0KPQodCi0JjQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCQ0KDQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQkNCg0JjQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JzQm9CQ0JTQldCd0J7QktCY0Ist0J3QmNCa0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCe0JvQk9CQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KDQkNCI0JrQngor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KDQkNCd0JrQngor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQodCQ0JLQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KHQoNCR0JjQodCb0JDQktCa0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQo9Cg0J7QqAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JLQldCa0J7QodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JfQntCg0JDQndCQCivQnNCb0JDQlNCV0J3QntCS0KHQmtCYINCb0J7Ql9CQ0J3QkAor0JzQm9CQ0JTQmNCdINCY0JzQoNCVCivQnNCb0JDQlNCY0J0g0JzQkNCg0JPQmNCi0JAKK9Cc0JvQkNCX0JXQkiDQktCQ0KHQmNCbCivQnNCb0JjQndCQ0KAg0JzQo9Cl0JDQoNCV0JwKK9Cc0JvQmNCd0JDQoCDQnNCj0KHQotCQ0KTQkAor0JzQm9CY0J3QmtCeINCQ0JzQkdCg0J7Ql9CY0IjQlQor0JzQm9CY0J3QmtCeINCU0KPQqNCQ0J0KK9Cc0JvQmNCd0JrQniDQn9CV0KLQkNCgCivQnNCb0JjQndCa0J4g0JfQktCe0J3QmNCc0JjQoAor0JzQntCnINCI0JXQm9CV0J3QkAor0JzQntCnINCI0J7QktCQ0J3QmtCQCivQnNCe0KjQniDQiNCe0JbQldCkCivQnNCe0KjQntCg0JjQndCQ0KYg0JbQmNCS0JrQngor0JzQntCo0J7QoNCY0J3QkNCmINCd0JXQndCQ0JQKK9Cc0J7QqNCe0KDQmNCd0KHQmtCYINCX0JDQk9Ce0KDQmtCQCivQnNCe0KjQntCg0JjQndCh0JrQmCDQl9Ce0KDQkAor0JzQntCL0JDQnSDQiNCV0JvQldCd0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCe0JbQlSDQldCc0JjQmwor0JzQntCm0JjQiyDQnNCe0JzQmNCgCivQnNCe0KbQmNCaINCC0KPQm9CQCivQnNCe0KbQmNCaINCY0KDQldCd0JrQkAor0JzQntCm0JrQniDQiNCQ0J0KK9Cc0J7QptCa0J4t0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQktCY0JXQoNCQCivQnNCe0KbQmtCeINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0J7QptCa0J4g0KHQotCV0JLQkNCdCivQnNCe0KbQndCQ0Jgg0JjQoNCV0J3QkAor0JzQntCm0J3QmCDQiNCe0JLQkNCdCivQnNCe0KbQndCYINCc0JDQoNCY0IjQkAor0JzQntCm0J3QmCDQodCi0JXQktCQ0J0KK9Cc0J7QlNCV0JvQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cc0J7QlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0J7QlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0J7QlNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQntCU0JjQiyDQoNCQ0J3QmtCeCivQnNCe0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0J7QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQntCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCe0JTQntCo0JDQndCe0JIg0JzQkNCg0KLQkAor0JzQntCU0J7QqNCQ0J3QntCSINCd0JjQmtCe0JvQkAor0JzQntCU0KDQkNClINCS0JvQkNCU0JjQnNCY0KAKK9Cc0J7QlNCg0Jgg0KjQkNCd0JTQntCgCivQnNCe0JTQoNCYINCU0KDQkNCT0JDQnQor0JzQntCU0KDQmCDQldCS0JAKK9Cc0J7QlNCg0JjQiyDQmNCb0JjQiNCQCivQnNCe0JTQoNCY0Isg0KHQotCQ0J3QmtCeCivQnNCe0JTQoNCY0J3QmNCLINCc0JjQm9CY0KbQkAor0JzQntCU0KDQntCK0JAg0KTQldCl0JjQnAor0JzQntCk0JDQoNCU0JjQnSDQodCf0JDQodCV0J3QmtCQCivQnNCe0JPQkCDQkdCg0JDQndCa0J4KK9Cc0J7Qk9CQINCI0J7QktCQ0J0KK9Cc0J7Qk9CQINCc0JjQm9CQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCe0JPQkCDQnNCb0JDQlNCV0J0KK9Cc0J7Qk9CQINCf0JDQiNCQCivQnNCe0JPQkCDQodCi0JXQktCQ0J0KK9Cc0J7Qk9CQINCS0JXQoNCQCivQnNCe0JPQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JPQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0J7Qk9CY0Isg0JPQntCg0JDQndCQCivQnNCe0JPQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JPQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JPQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JPQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0J7Qk9CY0J0g0JjQoNCY0J3QkAor0JzQntCT0JjQnSDQiNCV0JvQldCd0JAKK9Cc0J7Qk9CY0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0JzQntCT0JjQnSDQmtCh0JXQndCY0IjQkAor0JzQntCT0JjQnSDQm9CQ0JfQkNCgCivQnNCe0JPQmNCdINCJ0KPQkdCY0KjQkAor0JzQntCT0JjQnSDQnNCQ0KDQkAor0JzQntCT0JjQnSDQnNCY0JvQkNCd0JAKK9Cc0J7Qk9CY0J0g0JzQmNCb0JDQnQor0JzQntCT0JjQnSDQn9CQ0JLQm9CVCivQnNCe0JPQmNCdINCf0JDQktCb0JUKK9Cc0J7Qk9CY0J0g0J/QkNCS0JvQlQor0JzQntCT0JjQnSDQn9CV0KLQkNCgCivQnNCe0JPQmNCdINCg0JDQlNCe0JzQmNCgCivQnNCe0JPQmNCdINCg0JDQlNCe0JzQmNCgCivQnNCe0JPQmNCdINCS0JjQotCe0JzQmNCgCivQnNCe0KXQkNCn0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0J7QpdCQ0KfQmCDQm9CQ0KHQm9CeCivQnNCe0KXQkNCdINCU0JXQkNCd0JAKK9Cc0J7QpdCQ0J0g0IjQntCdCivQnNCe0KXQkNCdINCf0JXQotCQ0KAKK9Cc0J7QpdCQ0J0g0KHQnNCY0InQkNCd0JAKK9Cc0J7QpdCe0KDQkCDQldCc0JjQm9CY0IjQkNCdCivQnNCe0KXQntCg0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0J7QpdCe0KDQmtCeINCY0JvQmNCI0JAKK9Cc0J7QpdCe0KDQmtCeINCY0JvQmNCI0JAKK9Cc0J7QpdCe0KDQmtCeINCc0JDQoNCT0JjQotCQCivQnNCe0KXQntCg0JrQniDQoNCQ0IjQmtCeCivQnNCe0IjQmNCLINCU0KPQqNCQ0J0KK9Cc0J7QiNCY0Isg0JTQo9Co0JDQnQor0JzQntCI0JjQiyDQmNCS0JDQndCa0JAKK9Cc0J7QiNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQntCI0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQntCI0JjQiyDQnNCY0KLQkNCgCivQnNCe0IjQmNCLINCd0JjQmtCe0JvQkAor0JzQntCI0JjQiyDQndCY0JrQntCb0JAKK9Cc0J7QiNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCe0IjQmNCL0JXQktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cc0J7QiNCY0J0g0KHQntCk0JjQiNCQCivQnNCe0IjQodCVINCa0JDQotCY0KbQkAor0JzQntCI0KHQlSDQndCQ0J3QlNCe0KAKK9Cc0J7QiNCh0JXQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0J7QiNCh0JXQiNCV0JIg0JrQntCd0KHQotCQ0J3QotCY0J0g0JTQmNCf0Jsg0J/QpQor0JzQntCI0KHQmNCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCe0IjQodCY0IjQldCS0JjQiyDQodCQ0JLQkAor0JzQntCI0KHQmNCb0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0J7QiNCh0JjQm9Ce0JIg0JTQoNCQ0JPQkNCdCivQnNCe0IjQodCY0JvQntCSINCc0JjQm9CY0KHQkNCSCivQnNCe0IjQodCY0JvQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQntCI0KHQmNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQntCI0KHQmNCb0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0J7QiNCh0JjQm9Ce0JLQmNCLINCS0JXQoNCQCivQnNCe0IjQodCY0JvQntCS0JjQiyDQktCY0JTQntCI0JUKK9Cc0J7QiNCh0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQnNCe0IjQodCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0IjQl9CV0Kgg0JDQm9Ck0KDQldCUCivQnNCe0IjQl9CV0Kgg0JzQkNCg0JjQiNCQCivQnNCe0JrQo9CoINCo0JDQndCU0J7QoAor0JzQntCa0KPQqCDQmNCc0KDQlQor0JzQntCa0KPQqCDQiNCe0JLQkNCdCivQnNCe0JrQo9CoINCa0JDQm9Cc0JDQnQor0JzQntCa0KPQqCDQm9CQ0KHQm9CeCivQnNCe0JrQo9CoINCb0JDQodCb0J4KK9Cc0J7QmtCj0Kgg0JvQkNCh0JvQngor0JzQntCa0KPQqCDQnNCY0JrQm9Ce0KgKK9Cc0J7QmtCj0Kgg0KLQmNCR0J7QoAor0JzQntCa0KPQqCDQl9Ce0JvQotCQ0J0KK9Cc0J7Qm9CQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Cc0J7Qm9CmINCa0JDQotCY0KbQkAor0JzQntCb0JTQntCS0JDQnSDQidCj0JHQmNCd0JrQkAor0JzQntCb0JTQntCS0JDQnSDQnNCQ0KDQmNCI0JAKK9Cc0J7Qm9CU0J7QktCQ0J3QntCSINCR0J7QqNCa0J4KK9Cc0J7Qm9CU0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCe0JvQlNCS0JDQmCDQldCg0JLQmNCdCivQnNCe0JvQlNCS0JDQmCDQmNCX0JDQkdCV0JvQkAor0JzQntCb0JTQktCQ0Jgg0JvQkNCh0JvQngor0JzQntCb0JTQktCQ0Jgg0J7QotCeCivQnNCe0JvQlNCS0JDQiCDQpNCg0JDQitCQCivQnNCe0JvQlNCS0JDQiCDQpdCY0JvQlNCQCivQnNCe0JvQlNCS0JDQiC3QntCb0JDQpSDQldCc0JjQm9CY0IjQkAor0JzQntCb0JTQktCQ0Igg0KDQntCX0JDQm9CY0JAKK9Cc0J7Qm9CU0JLQkNCIINCh0KLQldCS0JDQnQor0JzQntCb0JTQktCQ0Igg0JLQmNCa0KLQntCgCivQnNCe0JvQlNCS0JDQiNCYINCf0KDQldCU0KDQkNCTCivQnNCe0JvQldCg0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQntCJ0JDQpiDQgtCe0KDQgtCVCivQnNCe0InQkNCmINCR0KDQkNCd0JrQkAor0JzQntCJ0JDQpiDQk9CQ0JLQoNCQCivQnNCe0InQkNCmINCT0JDQktCg0JAKK9Cc0J7QidCQ0KYg0IjQntCS0JDQnQor0JzQntCJ0JDQpiDQiNCe0JLQkNCdCivQnNCe0InQkNCmINCa0JDQotCY0KbQkAor0JzQntCJ0JDQpiDQnNCY0JvQmNCm0JAKK9Cc0J7QidCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Cc0J7QidCQ0KYg0J3QkNCU0JAKK9Cc0J7QidCQ0KYg0J/QkNCI0JAKK9Cc0J7QidCQ0KYg0KHQotCV0JLQkNCdCivQnNCe0InQkNCmINCh0KLQldCS0JDQnQor0JzQntCJ0JDQpiDQktCV0KDQkAor0JzQntCJ0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0J7Qm9Ca0KPQpiDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQntCb0JrQo9CmINCS0JjQoNCC0JjQndCV0JsKK9Cc0J7Qm9Cd0JDQoCDQqNCQ0J3QlNCe0KAKK9Cc0J7Qm9Cd0JDQoC3QqNCi0JXQpNCj0JvQmNCaINCY0JvQntCd0JAKK9Cc0J7Qm9Cd0JDQoCDQgtCe0KDQgtCVCivQnNCe0JvQndCQ0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0J7Qm9Cd0JDQoCDQkNCd0JTQoNCQ0KgKK9Cc0J7Qm9Cd0JDQoCDQkNCd0JTQoNCQ0KgKK9Cc0J7Qm9Cd0JDQoCDQkNCd0KLQntCdCivQnNCe0JvQndCQ0KAg0JDQoNCf0JDQlAor0JzQntCb0J3QkNCgINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCe0JvQndCQ0KAg0JTQldCW0JUKK9Cc0J7Qm9Cd0JDQoCDQldCc0JjQm9CY0IjQkAor0JzQntCb0J3QkNCgINCV0JzQmNCb0JjQiNCQCivQnNCe0JvQndCQ0KAg0JXQktCY0KbQkAor0JzQntCb0J3QkNCgINCk0JXQntCU0J7QoAor0JzQntCb0J3QkNCgINCk0JXQoNCV0J3QpiDQlNCY0J/QmyDQmNCd0JMKK9Cc0J7Qm9Cd0JDQoCDQmNCo0KLQktCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQmNCo0KLQktCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQmNCc0KDQlSDQlNCgCivQnNCe0JvQndCQ0KAg0JjQnNCg0JUKK9Cc0J7Qm9Cd0JDQoCDQmNCc0KDQlQor0JzQntCb0J3QkNCgINCY0KDQldCd0JAKK9Cc0J7Qm9Cd0JDQoCDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0J7Qm9Cd0JDQoCDQmNCS0JDQnQor0JzQntCb0J3QkNCgINCY0JLQkNCdCivQnNCe0JvQndCQ0KAg0IjQkNCa0J7Qkgor0JzQntCb0J3QkNCgINCI0JDQndCe0KgKK9Cc0J7Qm9Cd0JDQoCDQiNCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQiNCV0JvQldCd0JAKK9Cc0J7Qm9Cd0JDQoCDQiNCV0JvQmNCm0JAKK9Cc0J7Qm9Cd0JDQoCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQntCb0J3QkNCgINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCe0JvQndCQ0KAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JbQldCkCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7QltCV0KQKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JbQldCkCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7Qm9CQ0J3QmtCQCivQnNCe0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQntCb0J3QkNCgINCI0J7QodCY0J8KK9Cc0J7Qm9Cd0JDQoCDQiNCe0KHQmNCfCivQnNCe0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQntCb0J3QkNCgINCI0J7QktCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQmtCQ0KDQm9CeCivQnNCe0JvQndCQ0KAg0JrQkNCi0JDQm9CY0J0KK9Cc0J7Qm9Cd0JDQoCDQm9CQ0KHQm9CeCivQnNCe0JvQndCQ0KAg0JvQkNCX0JDQoAor0JzQntCb0J3QkNCgINCc0JDQi9CQ0KgKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0KDQmNCI0JAg0JTQoAor0JzQntCb0J3QkNCgINCc0JDQoNCi0JAg0JTQoAor0JzQntCb0J3QkNCgINCc0JDQotCY0JvQlNCQCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiNCb0J4KK9Cc0J7Qm9Cd0JDQoCDQnNCY0KXQkNCJCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiQor0JzQntCb0J3QkNCgINCc0JjQpdCQ0IkKK9Cc0J7Qm9Cd0JDQoCDQnNCY0KXQkNCJCivQnNCe0JvQndCQ0KAg0JzQmNCb0JDQnQor0JzQntCb0J3QkNCgINCc0JjQoNCe0J0KK9Cc0J7Qm9Cd0JDQoCDQndCY0JrQntCb0JAKK9Cc0J7Qm9Cd0JDQoCDQodCf0J7QnNCV0J3QmtCQCivQnNCe0JvQndCQ0KAg0KHQktCV0KLQntCh0JvQkNCSCivQnNCe0JvQndCQ0KAg0KLQldCg0JXQl9CQCivQnNCe0JvQndCQ0KAg0JLQldCg0JAKK9Cc0J7Qm9Cd0JDQoCDQktCY0JvQnNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQnNCe0JvQndCQ0KAg0JLQiNCV0KDQkAor0JzQntCb0J3QkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cc0J7Qm9Cd0JDQoCDQl9CS0J7QndCa0J4KK9Cc0J7QnNCn0JjQm9Ce0JIg0JTQntCR0KDQmNCI0JAKK9Cc0J7QnNCn0JjQm9Ce0JIg0JPQkNCS0KDQmNCb0J4KK9Cc0J7QnNCn0JjQm9Ce0JIg0JPQkNCS0KDQmNCb0J4KK9Cc0J7QnNCn0JjQm9Ce0JIg0KHQotCV0JLQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JHQntCT0J7QnNCY0KAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQniDQlNCgCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQlNCQ0J3QlQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQm9CVCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0KDQkAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JzQmNCg0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCh0JzQmNCJ0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCS0JDQodCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQktCY0JTQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cc0J7QnNCQ0J3QmCDQkNCa0KDQkNCcCivQnNCe0JzQmNCLINCe0JHQoNCQ0JQKK9Cc0J7QnNCY0KDQntCSINCY0JvQmNCI0JAKK9Cc0J7QnNCY0KDQntCSINCJ0JjQidCQ0J3QkAor0JzQntCc0JjQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cc0J7QnNCY0KDQntCSINCc0JjQm9CV0KLQkAor0JzQntCc0JjQoNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JzQntCc0JjQoNCe0JIg0J3QkNCU0JAKK9Cc0J7QnNCY0KDQntCSINCf0JDQiNCQCivQnNCe0JzQmNCg0J7QkiDQodCQ0JLQkAor0JzQntCc0JjQoNCe0JIg0KHQktCV0KLQm9CQ0J3QkAor0JzQntCc0JjQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0JzQntCc0JjQoNCe0JIg0KLQntCo0JAKK9Cc0J7QnNCY0KDQntCSINCX0J7QoNCY0KbQkAor0JzQntCc0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQntCc0JjQoNCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQntCc0JjQoNCe0JLQmNCLINCI0J7QktCY0KbQkAor0JzQntCc0JjQoNCe0JLQmNCLINCb0JDQl9CQCivQnNCe0JzQmNCg0J7QktCY0Isg0J/QldCi0JDQoAor0JzQntCc0JjQoNCe0JLQmNCLINCh0KDQldCL0JrQngor0JzQntCc0JjQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQntCc0JjQoNCe0JLQodCa0Jgt0JzQmNCb0J7QqNCV0JLQmNCLINCm0JLQldCi0JDQndCQCivQnNCe0J3QkNCgINCI0JDQndCa0J4KK9Cc0J7QndCQ0KDQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0J3QkNCg0JXQkiDQiNCe0KHQmNCf0JAKK9Cc0J7QndCQ0KDQldCSLdCh0J7QmtCe0JvQmNCLINCd0JDQlNCQCivQnNCe0J3QkNCg0J7QkiDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0J7QndCQ0KDQntCSINCI0J7Ql9CV0KTQmNCd0JAKK9Cc0J7QndCU0J7QktCY0Isg0ILQo9Cb0JAKK9Cc0J7QndCU0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0J7QndCU0J7QktCY0Isg0KTQoNCQ0IrQkAor0JzQntCd0JTQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0J7QndCU0J7QktCY0Isg0JvQkNCU0JjQodCb0JDQkgor0JzQntCd0JPQldCI0JDQoCDQoNCQ0JTQntCh0JDQktCQCivQnNCe0J3QmCDQmNCh0JvQkNCcCivQnNCe0J3QntCa0Jgg0ILQo9Cb0JAKK9Cc0J7QndCe0JrQmCDQmNCo0KLQktCQ0J0KK9Cc0J7QoCDQgtCV0KDQggor0JzQntCgINCk0KDQkNCK0JAKK9Cc0J7QoCDQk9CQ0JHQntCgCivQnNCe0KAg0JPQkNCR0J7QoAor0JzQntCgINCb0JDQodCb0J4KK9Cc0J7QoCDQl9CU0JXQndCa0J4KK9Cc0J7QoNCQINCQ0J3QkAor0JzQntCg0JAg0JDQndCU0KDQkNCoCivQnNCe0KDQkCDQmtCe0KDQndCV0JvQmNCI0JAKK9Cc0J7QoNCQ0KfQkCDQgtCj0KDQkNCCCivQnNCe0KDQkNCn0JAg0JzQmNCe0JTQoNCQ0JMKK9Cc0J7QoNCQ0KfQkCDQndCY0JrQntCb0JAKK9Cc0J7QoNCQ0KfQkCDQoNCQ0JTQnNCY0JvQkAor0JzQntCg0JDQp9CQINCS0JDQodCeCivQnNCe0KDQkNCn0JAg0JLQkNCh0J4KK9Cc0J7QoNCQ0KfQkNCd0JjQnSDQnNCY0JvQntCg0JDQlAor0JzQntCg0JDQmNCLINCC0J7QoNCC0JUKK9Cc0J7QoNCQ0KDQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0J7QoNCQ0KDQldCS0JjQiyDQktCe0IjQmtCQ0J0KK9Cc0J7QoNCQ0JLQkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0J7QoNCQ0JLQldCaINCI0JDQndCa0J4KK9Cc0J7QoNCVINCc0JDQoNCY0IjQkAor0JzQntCg0JUg0KHQmNCb0JLQldCh0KLQldCgCivQnNCe0KDQk9CV0J3QotCQ0JvQldCgINCI0J7QktCQ0J0KK9Cc0J7QoNCY0Isg0KXQkNCc0J4KK9Cc0J7QoNCY0KYg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQntCg0JjQpiDQk9CQ0JHQntCgCivQnNCe0KDQmNCmINCI0JDQndCe0KgKK9Cc0J7QoNCY0KYg0IjQldCb0JXQndCQCivQnNCe0KDQmNCmINCI0KPQm9CY0IjQkAor0JzQntCg0JjQpiDQmtCQ0KDQm9CeCivQnNCe0KDQmNCmINCb0JDQiNCe0KgKK9Cc0J7QoNCY0KYg0JvQkNCh0JvQngor0JzQntCg0JjQpiDQm9CQ0KHQm9CeCivQnNCe0KDQmNCmINCb0JjQlNCY0IjQkAor0JzQntCg0JjQpiDQnNCY0JvQkNCd0JAKK9Cc0J7QoNCY0KYg0J/QkNCj0JvQkAor0JzQntCg0JjQpiDQodCY0JvQkNCg0JQKK9Cc0J7QoNCY0KYg0KHQm9CQ0JLQmNCm0JAKK9Cc0J7QoNCY0KYg0JfQntCb0KLQkNCdCivQnNCe0KDQntCo0JXQkiDQoNCQ0JTQntCh0JvQkNCSCivQnNCe0KDQntCa0JLQkNCo0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQnNCe0KDQntCa0JLQkNCo0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQntCg0J7QmtCS0JDQqNCY0Isg0J3QldCd0JDQlAor0JzQntCg0J7QmtCS0JDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCe0KDQntCc0JjQm9Ce0JIg0InQo9CR0JjQndCa0JAKK9Cc0J7QoNCe0KLQktCQ0J3QodCa0Jgg0JLQmNCU0J7QodCQ0JLQkAor0JzQntCg0J7QktCY0Isg0JzQkNCi0JjQm9CU0JAKK9Cc0J7QoNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQntCg0J7QktCY0Isg0J3QldCh0KLQntCgCivQnNCe0KDQntCS0JjQpiDQm9CQ0KHQm9CeCivQnNCe0KDQktCQ0Jgg0KjQkNCd0JTQntCgCivQnNCe0KDQktCQ0Jgg0ILQldCg0IIKK9Cc0J7QoNCS0JDQmCDQpNCV0KDQldCd0KYKK9Cc0J7QoNCS0JDQmCDQiNCQ0J3QntCoCivQnNCe0KDQktCQ0Jgg0JrQkNCg0JvQngor0JzQntCg0JLQkNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0J7QoNCS0JDQmCDQn9CV0KLQkNCgCivQnNCe0KHQmNCLINCc0JjQntCU0KDQkNCTCivQnNCe0KHQmtCQ0Ikg0InQo9CR0J7QnNCY0KAKK9Cc0J7QodCa0JDQiSDQndCY0JrQntCb0JAKK9Cc0J7QodCa0JDQiSDQndCY0JrQntCb0JAKK9Cc0J7QodCa0JDQiSDQoNCQ0JTQnNCY0JvQkAor0JzQntCh0JrQktCQ0Ikg0KHQkNCS0JrQkAor0JzQntCh0JvQntCS0JDQpiDQmtCQ0KLQkNCg0JjQndCQCivQnNCe0KHQndCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cc0J7QodCd0JDQmiDQn9CQ0JLQldCbCivQnNCe0KHQotCQ0KDQkNCmINCI0JXQm9CV0J3QkAor0JzQntCh0KLQkNCg0KHQmtCYINCh0JvQkNCS0JjQptCQCivQnNCe0KHQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0J7QodCj0KDQntCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQnNCe0KLQntCaINCC0J7QoNCC0JUKK9Cc0J7QotCe0Jog0JHQoNCQ0J3QmtCeCivQnNCe0KLQntCg0J7QltCV0KHQmtCjINCQ0KPQoNCe0KDQkAor0JzQntCS0KDQmNCdINCY0JLQkNCdCivQnNCe0JfQldCi0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0KDQp9CQ0KDQmNCm0JAg0JfQntCg0JDQnQor0JzQoNCo0JAg0JzQmNCb0JXQndCa0JAKK9Cc0KDQqNCY0Isg0ILQntCg0ILQlQor0JzQoNCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0KDQqNCY0Isg0JTQo9Co0JDQnQor0JzQoNCo0JjQiyDQnNCQ0KDQmtCeCivQnNCg0KjQmNCLINCc0JjQm9CVCivQnNCg0KjQniDQkNCd0KLQngor0JzQoNCo0KPQidCQINCd0JjQmtCe0JvQkAor0JzQoNCo0KPQidCQINCg0JDQlNCe0JzQmNCgCivQnNCg0ILQkCDQkdCe0KjQmtCeCivQnNCg0ILQkCDQkdCe0JPQlNCQ0J0KK9Cc0KDQgtCQINCc0JDQndCVCivQnNCg0ILQkCDQnNCY0JvQmtCQ0J0KK9Cc0KDQgtCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KDQgtCQINCh0KLQldCS0JDQnQor0JzQoNCC0JAg0JfQntCg0JDQnQor0JzQoNCC0JDQnSDQlNCj0KjQkNCdCivQnNCg0ILQkNCdINCc0JjQpdCQ0IjQm9CeCivQnNCg0ILQkNCdINCg0KPQltCY0KbQkAor0JzQoNCC0JDQnSDQodCQ0JLQkAor0JzQoNCC0JDQnSDQodCQ0JLQkAor0JzQoNCC0JDQnSDQodCi0JXQktCQ0J0KK9Cc0KDQgtCQ0J0g0KHQotCV0JLQkNCdCivQnNCg0ILQkNCd0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0KDQgtCQ0J3QntCSINCW0JDQoNCa0J4KK9Cc0KDQgtCQ0J3QntCSINCQ0J3QmNCm0JAKK9Cc0KDQgtCQ0J3QntCSINCa0KHQldCd0JjQiNCQCivQnNCg0ILQkNCd0J7QkiDQm9CQ0JfQkAor0JzQoNCC0JDQndCe0JIg0JzQkNCg0JjQndCa0J4KK9Cc0KDQgtCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0KDQgtCQ0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KDQgtCQ0J3QntCSINCc0J7QnNCn0JjQm9CeCivQnNCg0ILQkNCd0J7QkiDQndCV0JzQkNCK0JAKK9Cc0KDQgtCQ0J3QntCSINCd0J7QktCY0KbQkAor0JzQoNCC0JDQndCe0JIg0J/QoNCe0JrQkAor0JzQoNCC0JDQndCe0JIg0KHQnNCY0InQkAor0JzQoNCC0JDQndCe0JIg0JLQo9Ca0J7QodCQ0JLQkAor0JzQoNCC0JDQndCe0JIg0JfQlNCg0JDQktCa0J4KK9Cc0KDQgtCV0J0g0JjQm9CY0IjQkAor0JzQoNCC0JXQnSDQiNCV0JvQldCd0JAKK9Cc0KDQgtCV0J0g0JvQkNCX0JDQoAor0JzQoNCC0JXQnSDQnNCY0KDQmtCeCivQnNCg0ILQldCdINCS0JXQidCa0J4KK9Cc0KDQgtCV0J3QntCSINCa0JDQotCY0KbQkAor0JzQoNCC0JXQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQoNCC0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQoNCC0JXQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCg0ILQldCd0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0KDQgtCV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCg0ILQldCd0J7QktCY0Isg0JLQkNCh0J4KK9Cc0KDQkNCn0JDQiNCQ0KYg0KbQktCY0IjQngor0JzQoNCQ0KfQkNCI0JDQpiDQlNCV0IjQkNCdCivQnNCg0JDQi9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCg0JDQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCg0JDQmtCe0JLQmNCLINCJ0KPQkdCQ0J0KK9Cc0KDQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cc0KDQkNCe0JLQmNCLLdCR0JDQpdCj0J0g0JzQmNCb0JjQiNCQ0J3QkAor0JzQoNCQ0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCg0JDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCg0JDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0KDQkNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0KDQkNCe0JLQmNCLINCe0JvQk9CQINCU0KAg0J/QoNCQ0JLQndCY0JoKK9Cc0KDQkNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0KDQkNCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQoNCQ0KLQmNCd0JrQntCS0JjQiyDQkdCe0KDQmNChINCU0KAg0JvQldCa0JDQoAor0JzQoNCQ0KLQmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdINCU0KAKK9Cc0KDQkNCi0JjQndCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCg0JDQktCY0Jog0JbQmNCS0JrQkAor0JzQoNCQ0JLQmNCaINCC0KPQoNCQCivQnNCg0JDQktCY0Jog0J/QkNCS0JvQlQor0JzQoNCQ0Jcg0JDQndCU0KDQmNCI0JAKK9Cc0KDQkNCX0JXQmiDQkdCV0KDQndCQ0KDQlNCeCivQnNCg0JDQl9Ce0JLQmNCLINCI0J7QodCY0J8KK9Cc0KDQkNCX0J7QktCY0Isg0JzQmNCb0JDQndCQCivQnNCg0JDQl9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0KDQkNCX0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Cc0KDQlNCQ0Jog0ILQntCg0ILQlQor0JzQoNCU0JDQmiDQnNCY0KDQkNCoCivQnNCg0JTQkNCa0J7QktCY0Isg0JHQntCg0JjQodCQ0JIKK9Cc0KDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQoNCU0JDQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQoNCU0JDQmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQnNCg0JTQkNCJINCf0JXQotCQ0KAKK9Cc0KDQlNCY0Isg0JrQkNCg0J7Qm9CY0J3QkAor0JzQoNCU0JjQiyDQnNCQ0KDQmtCeCivQnNCg0JTQmNCLINCh0JDQitCQCivQnNCg0JPQkNCd0JjQiyDQiNCe0JfQngor0JzQoNCT0JDQndCY0Isg0KHQoNCV0IvQmtCeCivQnNCg0JPQmNCLINCc0JjQoNCI0JDQndCQCivQnNCg0JrQqNCY0Isg0ILQntCg0ILQlQor0JzQoNCa0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCg0JrQqNCY0Isg0JHQntCI0JDQndCQCivQnNCg0JrQqNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCg0JrQqNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCg0JrQqNCY0Isg0IjQldCb0JXQndCQCivQnNCg0JrQqNCY0Isg0IjQntCm0JAKK9Cc0KDQmtCo0JjQiyDQiNCe0KbQkAor0JzQoNCa0KjQmNCLINCa0J7QodCi0JAKK9Cc0KDQmtCo0JjQiyDQnNCY0JvQntCoCivQnNCg0JrQqNCY0Isg0J3QldCd0JDQlAor0JzQoNCa0KjQmNCLINCh0JvQkNCS0JjQptCQCivQnNCg0JrQqNCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cc0KDQmtCo0JjQiyDQl9Cb0JDQotCQCivQnNCg0JrQkNCY0Isg0JPQntCg0JDQnQor0JzQoNCa0JDQmNCLINCh0JjQnNCQCivQnNCg0JrQkNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQoNCa0JDQiSDQkdCe0JbQmNCU0JDQoAor0JzQoNCa0JXQm9CQINCc0JjQoNCQCivQnNCg0JrQldCb0JAg0JLQntCI0JjQnQor0JzQoNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KDQmtCY0Isg0JzQmNCb0JrQkCDQnNCgINCf0KUKK9Cc0KDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQnNCg0JrQmNCLINCh0JzQmNCJ0JAKK9Cc0KDQmtCe0IjQldCS0JjQiyDQmtCe0KHQotCQCivQnNCg0JrQntCI0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCg0JrQntCK0JXQkiDQlNCg0JDQk9CQ0J0KK9Cc0KDQmtCe0IrQmNCLINCW0JjQktCe0IjQmNCdCivQnNCg0JrQntCS0JDQp9Ca0Jgg0IjQldCb0JXQndCQCivQnNCg0JrQntCS0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0JzQoNCa0J7QktCQ0KfQmtCYINCc0JjQm9Ce0JLQkNCdCivQnNCg0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0KDQmtCj0KjQmNCLINCc0JjQm9CY0KbQkAor0JzQoNCa0KPQqNCY0Isg0JzQmNCb0JjQptCQCivQnNCg0JrQo9Co0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQoNCa0KPQqNCY0Isg0KHQotCV0JLQkNCdCivQnNCg0JzQntCoINCc0JjQm9CQ0J0KK9Cc0KDQndCj0KjQotCY0Jog0KHQotCV0JLQkNCdCivQnNCg0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCg0JLQmNCLINCh0JDQktCQCivQnNCg0JLQmNCLINCh0KLQldCS0JDQnQor0JzQoNCS0JjQiyDQktCj0JrQntCc0JjQoAor0JzQoNCS0JjQptCQINCg0KPQltCY0KbQkAor0JzQoNCS0J7QqCDQiNCe0JLQkNCdCivQnNCg0JLQntCoINCc0JjQpdCQ0JjQm9CeCivQnNCg0JLQntCoINCc0JjQm9CQ0J3QmtCQCivQnNCj0KfQkNCb0JjQptCQINCU0KDQkNCT0J7QidCj0JEKK9Cc0KPQp9CQ0JvQniDQodCb0JDQktCY0KbQkAor0JzQo9Cn0JDQm9Ce0JIg0KHQm9Ce0JHQntCU0JDQnQor0JzQo9Cn0JDQm9Ce0JLQmNCLINCU0KPQqNCa0J4KK9Cc0KPQp9CV0J3QodCa0Jgg0InQo9CR0J7QnNCY0KAKK9Cc0KPQp9CV0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCj0KfQldCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cc0KPQp9CYINCC0JXQoNCCINCU0JjQn9CbINCY0J3Qkwor0JzQo9Cn0Jgg0JDQndCU0KDQkNCoCivQnNCj0KfQmCDQpNCg0JDQitCQCivQnNCj0KfQmCDQmNCb0J7QndCQCivQnNCj0KfQmCDQmNCb0J7QndCa0JAKK9Cc0KPQp9CYINCI0J7QltCV0KQKK9Cc0KPQp9CYINCI0J7QltCV0KQKK9Cc0KPQp9CY0JHQkNCR0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQo9Cn0JjQkdCQ0JHQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0KPQp9CY0JHQkNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQo9Cn0JjQkdCQ0JHQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCj0KfQmNCR0JDQkdCY0Isg0KHQkNCS0J4KK9Cc0KPQp9CY0JHQkNCR0JjQiyDQktCV0KDQkAor0JzQo9Cn0KMg0IjQntCS0JDQnQor0JzQo9Cn0KMg0J3QmNCa0J7Qm9CQCivQnNCj0KjQkNCdINCc0JDQoNCY0IjQkAor0JzQo9Co0JjQiyDQpNCg0JDQitCQCivQnNCj0KjQmNCm0JrQmCDQi9CY0KDQkAor0JzQo9Co0JjQptCa0Jgg0JbQmNCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0JbQmNCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0JbQmNCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0ILQntCg0ILQlQor0JzQo9Co0JjQptCa0Jgg0ILQntCg0ILQlQor0JzQo9Co0JjQptCa0Jgg0JHQntCT0JTQkNCdCivQnNCj0KjQmNCm0JrQmCDQkdCe0IjQkNCd0JAKK9Cc0KPQqNCY0KbQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JzQo9Co0JjQptCa0Jgg0JHQoNCQ0J3QmtCQCivQnNCj0KjQmNCm0JrQmCDQlNCe0KDQntCi0JXQiNCQCivQnNCj0KjQmNCm0JrQmCDQlNCg0JDQk9CQ0J0KK9Cc0KPQqNCY0KbQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JzQo9Co0JjQptCa0Jgg0JTQo9Co0JDQnQor0JzQo9Co0JjQptCa0Jgg0JTQo9Co0JDQnQor0JzQo9Co0JjQptCa0Jgg0JTQo9Co0JDQnQor0JzQo9Co0JjQptCa0Jgg0JXQktCY0KbQkAor0JzQo9Co0JjQptCa0Jgg0IjQntCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0JvQkNCX0JDQoAor0JzQo9Co0JjQptCa0Jgg0JzQkNCg0JjQiNCQCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQkNCd0JAKK9Cc0KPQqNCY0KbQmtCYINCc0JjQm9CV0J3QmtCeCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cc0KPQqNCY0KbQmtCYINCc0JjQm9CY0KbQkAor0JzQo9Co0JjQptCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Cc0KPQqNCY0KbQmtCYINCd0JDQotCQ0KjQkAor0JzQo9Co0JjQptCa0Jgg0J3QntCS0JDQmgor0JzQo9Co0JjQptCa0Jgg0J/QoNCe0JrQkAor0JzQo9Co0JjQptCa0Jgg0KHQm9CQ0JLQmtCeCivQnNCj0KjQmNCm0JrQmCDQodCb0JDQktCa0J4KK9Cc0KPQqNCY0KbQmtCYINCh0J7QpNCY0IjQkAor0JzQo9Co0JjQptCa0Jgg0KHQotCV0JLQkNCdCivQnNCj0KjQmNCm0JrQmCDQktCV0InQmtCeCivQnNCj0KjQmNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQo9Co0JjQmtCY0Isg0InQo9CR0JjQptCQCivQnNCj0KjQmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQo9Co0JjQmtCY0Isg0KDQkNCi0JrQngor0JzQo9Co0JrQmNCK0JAg0JHQkNCg0JjQptCQCivQnNCj0KjQmtCY0IrQkCDQnNCY0KDQmtCeCivQnNCj0JbQldCaINCS0JjQlNCQCivQnNCj0JbQmNCI0JXQktCY0Isg0KDQmNCh0KLQngor0JzQo9CW0JjQmiDQkdCY0InQkNCd0JAKK9Cc0KPQltCY0Jog0JzQkNCi0JAKK9Cc0KPQltCY0JrQkC3QotCe0KIg0JfQntCb0KLQkNCdCivQnNCj0JbQm9CQ0Jgg0KjQkNCd0JTQntCgCivQnNCj0KYg0JfQm9CQ0KLQntCc0JjQoAor0JzQo9Cm0Jgg0IjQkNCd0J7QqAor0JzQo9CU0KDQldCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0KPQlNCg0JXQndCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JzQo9CU0KDQmCDQldCj0JPQldCdCivQnNCj0JTQoNCYINCI0J7QkNCa0JjQnAor0JzQo9CU0KDQmCDQidCj0JHQmNCm0JAKK9Cc0KPQlNCg0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQo9CU0KDQmCDQn9CV0KLQkNCgCivQnNCj0JTQoNCYINCf0JXQotCQ0KAKK9Cc0KPQlNCg0Jgg0JLQldCg0JAg0JTQoCDQktCV0KLQldCg0JjQndCVCivQnNCj0JTQoNCYINCS0JvQkNCU0JAKK9Cc0KPQlNCg0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9CU0KDQmCDQktCb0JDQlNCY0JzQmNCgCivQnNCj0JTQoNCY0Isg0ILQo9Cg0JAKK9Cc0KPQlNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0JTQoNCY0Isg0InQo9CR0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCj0JTQoNCY0Isg0J/QldCi0JDQoAor0JzQo9CU0KDQmNCLINCh0JvQkNCS0JrQkAor0JzQo9CU0KDQmNCd0JjQiyDQkdCe0KjQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCR0J7QqNCa0J4KK9Cc0KPQlNCg0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQnNCj0JTQoNCY0J3QmNCLINCT0J7QiNCa0J4KK9Cc0KPQlNCg0JjQndCY0Isg0JzQkNCI0JAKK9Cc0KPQlNCg0JjQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0KPQlNCg0JjQndCY0Isg0JzQmNCb0JDQnQor0JzQo9CU0KDQmNCd0JjQiyDQnNCY0JvQldCS0JAKK9Cc0KPQlNCg0JjQndCY0Isg0JzQm9CQ0JTQldCdCivQnNCj0JTQoNCY0J3QmNCLINCf0JXQotCQ0KAg0JTQoAor0JzQo9CU0KDQmNCd0JjQiyDQodCb0JDQktCa0J4KK9Cc0KPQlNCg0JjQndCY0Isg0KHQn9CQ0KHQldCd0JrQkAor0JzQo9CU0KDQmNCd0JjQiyDQodCi0JXQktCeCivQnNCj0JTQoNCY0J3QmNCLINCh0KLQntCI0JDQnQor0JzQo9CU0KDQmNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCj0JTQoNCY0J3QmNCLINCS0J7QiNCY0J0KK9Cc0KPQlNCg0JjQndCh0JrQmCDQgtCe0KDQgtCVCivQnNCj0JTQoNCY0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQo9CU0KDQmNCd0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0KPQlNCg0JjQndCh0JrQmCDQkdCe0KHQmNCJ0JrQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCY0JLQkNCd0JrQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCb0JDQl9CQ0KAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQnNCY0JvQkNCdCivQnNCj0JTQoNCY0J3QodCa0Jgg0JzQmNCb0JXQotCQCivQnNCj0JTQoNCY0J3QodCa0Jgg0JzQmNCb0J7QqAor0JzQo9CU0KDQmNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KPQlNCg0JjQndCh0JrQmCDQntCb0JPQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCf0JXQotCQ0KAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQodCQ0JLQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCh0J7QpNCY0IjQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JzQo9CU0KDQmNCd0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0KPQk9Ce0KjQkCDQnNCY0JvQngor0JzQo9Cl0JAg0JfQo9CX0JDQndCQCivQnNCj0KXQkNCg0JXQnNCYINCk0KPQkNCUCivQnNCj0KXQkNCg0JXQnNCh0JrQmC3QkdCV0IvQmNCg0J7QktCY0Isg0KDQldCc0JfQmNCI0JAKK9Cc0KPQpdCQ0KDQmCDQm9CQ0IjQntCoCivQnNCj0KXQmCDQkdCV0JvQkAor0JzQo9CI0JDQndCe0JLQmNCLINCh0JDQpNCV0KIKK9Cc0KPQiNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCj0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQo9CI0JXQl9CY0J3QntCS0JjQiyDQkNCb0JzQkNChCivQnNCj0IjQldCX0JjQndCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0KPQiNCV0JfQmNCd0J7QktCY0Isg0JfQm9CQ0KLQkNCdCivQnNCj0IjQmNCLINCc0JjQm9CQ0J0KK9Cc0KPQiNCa0JDQndCe0JLQmNCLINCh0JDQm9CY0KUKK9Cc0KPQiNCa0JjQiyDQqNCV0KTQmNCaCivQnNCj0IjQmtCY0Isg0KXQkNCI0KDQo9CU0JjQnQor0JzQo9CI0JrQmNCLINCY0JvQlNCj0JfQkAor0JzQo9CI0JrQmNCLINCY0JfQo9CU0JjQnQor0JzQo9CI0JrQmNCLINCI0JDQmtCj0JEKK9Cc0KPQiNCa0JjQiyDQnNCV0KXQnNCV0JQKK9Cc0KPQmi3QodCQ0JzQkNCg0I/QmNCLINCV0JzQkAor0JzQo9Cb0JDQmCDQnNCQ0KLQmNCI0JAKK9Cc0KPQm9CQ0Igg0JXQodCi0JjQmtCQCivQnNCj0JvQkNCIINCa0JDQotCY0KbQkAor0JzQo9Cb0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQnNCj0JvQmNCLINCc0JjQntCU0KDQkNCTCivQnNCj0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KPQm9CY0Isg0J/QldCi0JDQoAor0JzQo9Cb0JjQiyDQoNCQ0JTQnNCY0JvQngor0JzQo9Cb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0KPQm9CY0Isg0JLQldCJ0JrQngor0JzQo9Cb0JjQiyDQl9Ce0KDQkNCdCivQnNCj0JzQj9CY0Isg0KXQkNCX0JjQoAor0JzQo9Cc0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQo9Cc0JjQnSDQndCY0JrQntCb0JAKK9Cc0KPQnNCY0J3QkNCT0JjQiyDQkNCb0JjQlNCQCivQnNCj0JzQmNCd0J7QktCY0Isg0JDQm9CY0JwKK9Cc0KPQnNCY0J3QntCS0JjQiyDQpdCQ0JzQldCUCivQnNCj0JzQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JzQo9Cc0J7QktCY0Isg0IjQntCS0JAKK9Cc0KPQnNCe0JLQmNCLINCh0JDQktCQCivQnNCj0J3Qi9CQ0J0g0ILQntCg0ILQlQor0JzQo9Cd0IvQkNCdINCC0J7QoNCC0JUKK9Cc0KPQndCL0JDQnSDQgtCe0KDQgtCVCivQnNCj0J3Qi9CQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQndCL0JDQnSDQkNCd0JPQldCb0JjQndCQCivQnNCj0J3Qi9CQ0J0g0JHQntCo0JrQngor0JzQo9Cd0IvQkNCdINCR0J7QqNCa0J4KK9Cc0KPQndCL0JDQnSDQlNCg0JDQk9CQ0J0KK9Cc0KPQndCL0JDQnSDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0J3Qi9CQ0J0g0JTQo9Co0JDQnQor0JzQo9Cd0IvQkNCdINCI0J7QktCQ0J0g0JTQoAor0JzQo9Cd0IvQkNCdINCI0J7QktCQ0J0KK9Cc0KPQndCL0JDQnSDQm9CQ0JfQkNCgCivQnNCj0J3Qi9CQ0J0g0JvQkNCX0JAKK9Cc0KPQndCL0JDQnSDQnNCY0JvQldCd0JrQngor0JzQo9Cd0IvQkNCdINCg0JDQlNCe0JLQkNCdCivQnNCj0J3Qi9CQ0J0g0KHQm9CQ0JLQmtCeCivQnNCj0J3Qi9CQ0J0g0KHQntCk0JjQiNCQCivQnNCj0J3Qi9CQ0J0g0KLQntCU0J7QoAor0JzQo9Cd0IvQkNCdINCS0JDQodCQCivQnNCj0J3Qi9CQ0J0g0JLQldCh0JXQm9CY0J0KK9Cc0KPQndCL0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQnNCj0J3Qi9CQ0J0g0JfQntCg0JAKK9Cc0KPQndCP0JjQiyDQltCY0JLQntCI0JjQnQor0JzQo9Cd0I/QmNCLINCR0J7Qk9CU0JDQnQor0JzQo9Cd0I/QmNCLINCc0JjQoNCI0JDQndCQCivQnNCj0J3Qj9CY0Isg0J/QldCi0JDQoAor0JzQo9Cd0JTQmNCd0JMg0JXQotCV0JvQmtCQCivQnNCj0J3QmNCo0JjQiyDQiNCe0JLQkNCdCivQnNCj0J3QmNCW0JDQkdCQINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCj0J3QmNCW0JDQkdCQINCR0KDQkNCd0JjQodCb0JDQkgor0JzQo9Cd0JjQltCQ0JHQkCDQiNCe0JLQkNCdCivQnNCj0J3QmNCW0JDQkdCQINCa0JDQotCY0KbQkAor0JzQo9Cd0JjQltCQ0JHQkCDQm9CQ0JfQkNCgCivQnNCj0J3QmNCW0JDQkdCQINCc0JjQm9CV0J3QmtCeCivQnNCj0J3QmNCW0JDQkdCQINCS0JXQlNCg0JDQndCQCivQnNCj0J3QmNCi0JvQkNCaINCU0KDQkNCT0JDQnQor0JzQo9CK0JDQoSDQkdCe0JbQmNCU0JDQoAor0JzQo9CK0JDQoSDQlNCc0JjQotCQ0KAKK9Cc0KPQitCQ0KEg0JzQmNCb0JDQnQor0JzQo9CK0JDQoSDQodCY0JzQmtCQCivQnNCj0IrQkNChINCh0KLQkNCd0JAKK9Cc0KPQitCY0J0g0JbQmNCS0JrQngor0JzQo9CK0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQo9CK0JjQnS3QkdCQ0J3QmNCLINCe0JvQk9CQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCj0IrQmNCdINCa0JDQiNCY0KbQkAor0JzQo9CK0JjQnSDQm9CQ0JfQkNCgCivQnNCj0IrQmNCdINCf0JXQotCQ0KAKK9Cc0KPQitCY0J0g0KHQnNCY0InQkAor0JzQo9CK0JjQl9CQINCW0JXQidCa0J4KK9Cc0KPQitCY0JfQkCDQiNCe0JLQkNCd0JrQkAor0JzQo9Cd0Jog0ILQntCg0ILQlQor0JzQo9Cd0JrQkCDQlNCj0KjQkNCd0JrQkAor0JzQo9Cd0JrQkNCn0Jgg0JzQmNCl0JDQiNCb0J4KK9Cc0KPQndCi0JXQkNCdINCY0JvQmNCI0JAKK9Cc0KPQndCi0JXQkNCdINCi0J7QlNCe0KAKK9Cc0KPQndCX0JDQoCDQktCV0KDQkAor0JzQo9Cg0JDQotCYINCc0JjQidCQ0JfQmNCcCivQnNCj0KDQkNCi0Jgg0KHQotCQ0J3QkAor0JzQo9Cg0JDQotCe0JLQmNCLINCY0JHQoNCQ0KXQmNCcCivQnNCj0KDQkNCi0J7QktCY0Isg0IjQntCS0J4KK9Cc0KPQoNCQ0KLQntCS0JjQiyDQnNCY0JrQkAor0JzQo9Cg0JDQotCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQnNCj0KDQkNCi0J7QktCY0Isg0KHQkNCR0KDQmNCI0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JHQoNCQ0J3QmtCQCivQnNCj0KDQk9CQ0KjQmtCYINCU0JDQndCY0KbQkAor0JzQo9Cg0JPQkNCo0JrQmCDQlNCe0JHQoNCV0J0KK9Cc0KPQoNCT0JDQqNCa0Jgg0JTQo9Co0JDQnQor0JzQo9Cg0JPQkNCo0JrQmCDQiNCe0JLQkNCdCivQnNCj0KDQk9CQ0KjQmtCYINCJ0KPQkdCY0J3QmtCQCivQnNCj0KDQk9CQ0KjQmtCYINCc0JDQotCY0IjQkAor0JzQo9Cg0JPQkNCo0JrQmCDQnNCY0KXQkNCI0JvQngor0JzQo9Cg0JPQkNCo0JrQmCDQnNCY0JvQmNCm0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCb0J7QqAor0JzQo9Cg0JPQkNCo0JrQmCDQnNCY0JvQntCg0JDQlAor0JzQo9Cg0JPQkNCo0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCj0KDQk9CQ0KjQmtCYINCd0JXQndCQ0JQKK9Cc0KPQoNCT0JDQqNCa0Jgg0J3QntCS0JDQmgor0JzQo9Cg0JPQkNCo0JrQmCDQn9CV0KLQkNCgCivQnNCj0KDQk9CQ0KjQmtCYINCh0JDQktCQCivQnNCj0KDQk9CQ0KjQmtCYINCh0JXQktCV0KAKK9Cc0KPQoNCT0JDQqNCa0Jgg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQnNCj0KDQk9CQ0KjQmtCYINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JLQo9Ca0J7QodCQ0JLQkAor0JzQo9Cg0JPQo9CbINCJ0KPQkdCe0JzQmNCgCivQnNCj0KDQk9Cj0JvQntCS0JjQiyDQnNCe0JzQmNCgCivQnNCj0KDQmNCLINCh0JvQkNCS0JrQngor0JzQo9Cg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0KPQoNCY0Isg0JLQldCJ0JrQngor0JzQo9Cg0JjQitCYINCI0J7QodCY0J8KK9Cc0KPQoNCY0IrQmCDQmtCQ0KLQmNCm0JAKK9Cc0KPQoNCY0IrQmCDQnNCY0JvQldCS0JAKK9Cc0KPQoNCY0IrQmCDQodCi0J7QiNCQ0J3QmtCQCivQnNCj0KDQn9Cl0KMg0JzQmNCg0IjQkNCd0JAKK9Cc0KPQoNCh0JXQm9CYINCc0JjQoNCn0JUKK9Cc0KPQoNCh0JXQm9CYINCd0JXQl9CY0KAKK9Cc0KPQoNCh0JXQm9Ce0JLQmNCLINCd0JDQl9CY0KQKK9Cc0KPQoNCh0JXQm9Ce0JLQmNCLINCg0JDQmNCkCivQnNCj0KHQkCDQmNCS0JDQndCa0JAKK9Cc0KPQodCQINCI0JXQm9CY0KbQkAor0JzQo9Ch0JDQpNCY0IjQkCDQkdCb0JDQndCa0JAKK9Cc0KPQodCY0Isg0KjQkNCR0JDQndCY0IjQkAor0JzQo9Ch0JjQiyDQqNCV0JzQodCQCivQnNCj0KHQmNCLINCa0JDQotCY0KbQkAor0JzQo9Ch0JjQiyDQnNCY0KDQmtCeCivQnNCj0KHQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCj0KHQmNCLINCX0J7QoNCQ0J0KK9Cc0KPQodCY0J0g0JrQkNCb0JzQkNCdCivQnNCj0KHQntCS0KHQmtCYINCY0KHQkAor0JzQo9Ch0KLQkNCk0JjQiyDQkdCg0JDQndCa0JAKK9Cc0KPQodCi0JDQpNCY0Isg0KXQkNCg0JjQlwor0JzQo9Ch0KLQkNCk0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0KPQodCi0JDQpNCY0Isg0KHQldCU0JDQogor0JzQo9Ch0KLQkNCk0J7QodCa0Jgg0JHQldCU0KDQmNCI0JAKK9Cc0KPQodCi0JXQlNCQ0J3QkNCT0JjQiyDQldCh0JDQlAor0JzQo9Ch0KPQm9CY0J0g0JPQntCg0JrQmAor0JzQo9Ch0KPQm9CY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cc0KPQodCj0JvQmNCdINCh0JvQkNCS0JrQngor0JzQo9Ci0JDQkdCP0JjQiNCQINCc0JjQm9Ce0JLQkNCdCivQnNCj0KLQkNCS0KfQmNCV0JIg0JjQktCQ0J0KK9Cc0KPQotCQ0JLQj9CY0Ist0JPQmNCe0J0g0JzQkNCg0JjQiNCQCivQnNCj0KLQkNCS0I/QmNCLINCc0JjQm9CQ0J0KK9Cc0KPQotCQ0JLQj9CY0Isg0JzQmNCb0JDQnQor0JzQo9Ci0JDQktCP0JjQiyDQnNCY0JvQntCoCivQnNCj0KLQkNCS0I/QmNCLINCg0JDQotCa0J4KK9Cc0KPQotCQ0JLQj9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQo9Ci0JDQktCP0JjQiyDQktCV0InQmtCeCivQnNCj0KLQkNCS0I/QmNCLINCX0JvQkNCi0JAKK9Cc0KPQotCQ0JLQj9CY0IjQkCDQnNCY0KDQiNCQ0J3QkAor0JzQo9Ci0JjQiyDQltCY0JLQmtCeCivQnNCj0KLQmNCLINCR0KDQkNCd0JrQngor0JzQo9Ci0JjQiyDQlNCj0KjQkNCdCivQnNCj0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0KPQotCY0Isg0JTQo9Co0JDQnQor0JzQo9Ci0JjQiyDQlNCj0KjQmNCm0JAKK9Cc0KPQotCY0Isg0JrQkNCc0JXQndCa0J4KK9Cc0KPQotCY0Isg0InQmNCJ0JDQndCQCivQnNCj0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0KPQotCY0Isg0KHQnNCY0InQkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Cc0KPQotCY0JHQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0KPQotCY0JHQkNCg0JjQiyDQmNCg0JXQndCQCivQnNCj0KLQmNCR0JDQoNCY0Isg0JvQmNCR0KPQqNCQCivQnNCj0KLQmNCR0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQo9Ci0JjQkdCQ0KDQmNCLINCc0JjQm9CVCivQnNCj0KLQmNCR0JDQoNCY0Isg0J3QkNCi0JDQqNCQCivQnNCj0KLQmNCR0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCj0KLQmNCR0JDQoNCY0Isg0KLQntCU0J7QoAor0JzQo9Ci0JjQnSDQgtCe0KDQgtCVCivQnNCj0KLQmNCdINCV0JzQmNCbCivQnNCj0KLQmNCdINCX0JTQoNCQ0JLQmtCeCivQnNCj0JfQkNCb0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQo9CX0JXQmtCQINCc0JDQoNCY0IjQkNCd0JAKK9Cc0KPQl9CV0KAg0KTQoNCQ0IrQkAor0JzQo9CX0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQnNCj0JfQldCgINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0KPQl9CY0JrQoNCQ0JLQmNCLINCR0JvQkNCW0J4KK9Cc0KPQl9CY0JrQoNCQ0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Cd0JDQpyDQkNCd0JTQoNCY0IjQkAor0J3QkNCn0JAg0IjQkNCd0J7QqAor0J3QkNCn0JAg0IjQntCh0JjQnwor0J3QkNCn0JAg0J7QotCY0JvQmNCI0JAKK9Cd0JDQqNCY0JPQkNCL0JjQnSDQnNCY0JvQldCd0JrQngor0J3QkNCL0KPQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QkNCL0KPQmiDQmNCg0JjQndCQCivQndCQ0IIg0KfQntCd0JPQntCgCivQndCQ0IIg0KfQntCd0JPQntCgCivQndCQ0IIg0KjQkNCd0JTQntCgCivQndCQ0IIg0KjQkNCd0JTQntCgCivQndCQ0IIg0ILQldCg0IIKK9Cd0JDQgi3QkNCR0J7QitCYINCT0JDQkdCe0KAKK9Cd0JDQgiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QkNCCINCQ0J3QkAor0J3QkNCCINCQ0J3Qk9CV0JvQkAor0J3QkNCCINCR0JDQoNCR0JDQoNCQCivQndCQ0IIg0JHQldCb0JAKK9Cd0JDQgiDQkdCg0JDQndCa0JAKK9Cd0JDQgiDQlNCV0JbQlQor0J3QkNCCLdCU0J7QoNCe0KLQmNCLINCc0JDQoNCY0IjQkAor0J3QkNCCINCU0KDQkNCT0JjQodCb0JDQkgor0J3QkNCCINCU0KPQqNCQ0J3QmtCQCivQndCQ0IIg0JXQoNCW0JXQkdCV0KIKK9Cd0JDQgiDQldCi0JXQmwor0J3QkNCCINCV0KPQpNCV0JzQmNCI0JAKK9Cd0JDQgiDQpNCV0KDQldCd0KYKK9Cd0JDQgiDQpNCV0KDQldCd0KYKK9Cd0JDQgiDQpNCV0KDQldCd0KYKK9Cd0JDQgiDQpNCV0KDQldCd0KYKK9Cd0JDQgiDQpNCV0KDQldCd0KYKK9Cd0JDQgi3QpNCe0KDQmtCQ0Kgg0JrQkNCi0JjQptCQCivQndCQ0IIg0KTQoNCQ0IrQkAor0J3QkNCCINCk0KDQkNCK0JAKK9Cd0JDQgiDQpNCg0JDQitCQCivQndCQ0IIg0JPQldCe0KDQk9CY0J3QkAor0J3QkNCCINCT0JjQl9CV0JvQkAor0J3QkNCCLdCl0JXQktCV0KjQmCDQm9CQ0KHQm9CeCivQndCQ0IIg0JjQqNCi0JLQkNCdCivQndCQ0IIg0JjQqNCi0JLQkNCdCivQndCQ0IIg0JjQm9Ce0J3QkAor0J3QkNCCINCY0JzQoNCVCivQndCQ0IIg0JjQoNCY0J3QkAor0J3QkNCCINCY0JLQkNCdCivQndCQ0IIg0IjQkNCd0J7QqAor0J3QkNCCINCI0JDQndCe0KgKK9Cd0JDQgiDQiNCe0JbQldCkCivQndCQ0IIg0IjQntCW0JXQpAor0J3QkNCCINCI0J7QltCV0KQKK9Cd0JDQgiDQiNCe0JbQldCkCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCS0JDQndCa0JAKK9Cd0JDQgiDQiNCe0JLQkNCdCivQndCQ0IIg0JrQkNCg0JvQngor0J3QkNCCINCa0JDQoNCe0IkKK9Cd0JDQgiDQmtCQ0KDQntCJCivQndCQ0IIg0JrQkNCi0JDQoNCY0J3QkAor0J3QkNCCINCb0JDQlNCY0KHQm9CQ0JIKK9Cd0JDQgiDQm9CQ0IjQntCoCivQndCQ0IIg0JvQkNCI0J7QqAor0J3QkNCCINCb0JDQodCb0J4g0JTQmNCf0Jsg0JjQndCTCivQndCQ0IIg0JvQkNCh0JvQngor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CQ0KHQm9CeCivQndCQ0IIg0JvQkNCh0JvQngor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CV0J7QndCQCivQndCQ0IIg0JvQldCe0J3QkAor0J3QkNCCINCJ0KPQkdCY0KbQkAor0J3QkNCCINCc0JDQoNCT0JDQoNCV0KLQkAor0J3QkNCCINCc0JDQoNCY0IjQkAor0J3QkNCCINCc0JDQoNCY0IjQkAor0J3QkNCCINCc0JDQoNCi0J7QnQor0J3QkNCCLdCc0JXQidCa0KPQotCYINCV0JTQmNCiCivQndCQ0IIg0JzQmNCl0JDQiNCb0J4KK9Cd0JDQgiDQnNCY0KXQkNCJCivQndCQ0IIg0JzQmNCg0JAKK9Cd0JDQgiDQnNCY0KDQkAor0J3QkNCCINCc0JjQoNCQCivQndCQ0IIg0JzQmNCg0IjQkNCd0JAKK9Cd0JDQgiDQndCQ0J3QlNCe0KAKK9Cd0JDQgiDQndCQ0J3QlNCe0KAKK9Cd0JDQgiDQndCV0JLQldCd0JrQkAor0J3QkNCCINCd0JjQmtCe0JvQkAor0J3QkNCCINCd0J7QktCY0KbQkAor0J3QkNCCINCe0KLQngor0J3QkNCCINCe0KLQngor0J3QkNCCINCf0JDQktCb0JUKK9Cd0JDQgiDQn9CQ0JLQm9CVCivQndCQ0IIg0J/QldCi0JDQoAor0J3QkNCCINCf0JXQotCQ0KAKK9Cd0JDQgiDQn9CV0KLQkNCgCivQndCQ0IIg0J/QldCi0JXQoAor0J3QkNCCINCf0JjQoNCe0KjQmtCQCivQndCQ0IIg0J/QmNCg0J7QqNCa0JAKK9Cd0JDQgi3Qn9Ce0J/QntCSINCm0JXQptCY0JvQmNCI0JAKK9Cd0JDQgiDQoNCe0JfQkAor0J3QkNCCINCh0JvQkNCS0JrQngor0J3QkNCCINCh0KLQldCS0JDQnQor0J3QkNCCINCh0KLQldCS0JDQnQor0J3QkNCCINCh0JLQiNCQ0KLQntCh0JvQkNCSCivQndCQ0IIt0KLQkNCd0JDQodCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQCivQndCQ0IIg0KLQmNCR0J7QoAor0J3QkNCCINCS0JDQodCY0JvQmNCI0JUKK9Cd0JDQgiDQktCV0KDQntCd0JAKK9Cd0JDQgiDQktCY0JrQotCe0KDQmNCI0JAKK9Cd0JDQgiDQktCb0JDQlNCY0JzQmNCgCivQndCQ0IIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCCINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQgiDQktCb0JDQlNCY0JzQmNCgCivQndCQ0IIg0JfQm9CQ0KLQmNCc0JjQoAor0J3QkNCCINCX0J7Qm9Ci0JDQnQor0J3QkNCC0JDQm9CY0J0g0JHQoNCQ0J3QmtCeCivQndCQ0ILQkNCb0JjQnSDQmNCh0JAKK9Cd0JDQgtCR0JDQkdCYINCk0JXQoNCV0J3Qpgor0J3QkNCC0JHQkNCR0Jgg0KTQldCg0JXQndCmCivQndCQ0ILQkdCQ0JHQmCDQmNCT0J7QoAor0J3QkNCC0JHQkNCR0Jgg0JjQktCa0JAKK9Cd0JDQgtCR0JDQkdCYINCI0JDQndCY0JrQkAor0J3QkNCC0JXQoNCCINCY0JvQntCd0JrQkAor0J3QkNCC0JPQldCb0JXQoNCiINCI0JDQndCe0KgKK9Cd0JDQgtCl0JXQgtCV0KjQmCDQpNCg0JDQitCQCivQndCQ0ILQpdCV0ILQldCo0Jgg0IjQntCS0JDQnQor0J3QkNCC0KXQldCC0JXQqNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cd0JDQgtCY0JTQkNCYINCa0JDQoNCe0IkKK9Cd0JDQgtCc0JXQidCa0KPQotCYINCa0JvQkNCg0JAKK9Cd0JDQgtCc0JjQi9CeINCS0JXQodCV0JvQmNCd0JAKK9Cd0JDQgtCe0KDQgiDQodCQ0KjQkAor0J3QkNCC0J/QkNCbINCY0KDQldCd0JrQkAor0J3QkNCC0JLQmNCd0KHQmtCYINCa0KHQldCd0JjQiNCQCivQndCQ0ILQktCY0J3QodCa0Jgg0J/QldCi0JDQoAor0J3QkNCm0JXQkiDQk9Cg0KPQiNCeCivQndCQ0JTQkNCo0JrQmCDQm9CQ0JfQkNCgCivQndCQ0JTQkNCo0JrQmCDQnNCY0JvQmNCS0J7QiAor0J3QkNCU0JDQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0J3QkNCU0JDQqNCa0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JDQlNCQ0JbQlNCYINCg0KPQltCY0KbQkAor0J3QkNCU0JDQoNCV0JLQmNCLINCR0J7QoNCY0KEKK9Cd0JDQlNCR0JDQndCU0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQndCQ0JTQkdCQ0J3QotCY0Isg0J3QkNCU0JAKK9Cd0JDQlNCY0KUg0KTQoNCY0JTQoNCY0KUKK9Cd0JDQlNCY0KUg0JzQmNCg0JrQngor0J3QkNCU0JvQkNCn0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QkNCU0JvQkNCn0JrQmCDQnNCY0JvQntCI0JUKK9Cd0JDQlNCb0JDQp9Ca0Jgg0KDQkNCU0JjQktCe0IgKK9Cd0JDQlNCb0JDQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9Cd0JDQlNCb0JDQp9Ca0Jgg0KHQotCV0JLQmtCQCivQndCQ0JTQm9Cj0JrQkNCnINCc0JDQoNCY0IjQkAor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0JTQkNCd0JjQm9Ca0JAKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCJ0JjQidCQ0J3QkAor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0InQo9CR0JjQqNCQCivQndCQ0JTQoNCJ0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQndCQ0JXQoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0J3QkNCT0JvQmNCLINCh0JvQkNCS0JrQngor0J3QkNCT0KDQkNCU0JjQiyDQiNCV0JvQldCd0JAKK9Cd0JDQk9Cg0JDQlNCY0Isg0InQo9CR0JjQptCQCivQndCQ0KXQm9Ce0JLQodCa0Jgg0IjQntCW0JXQpAor0J3QkNCI0JHQkNCj0JXQoCDQmNCS0JDQnQor0J3QkNCI0JTQkNCd0J7QkiDQk9CV0J7QoNCT0JgKK9Cd0JDQiNCU0JDQndCe0JIg0JjQktCQ0J0KK9Cd0JDQiNCU0JXQmiDQktCY0J3QmtCeCivQndCQ0IjQlNCe0JLQodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0J3QkNCI0JTQntCS0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Cd0JDQiNCY0Isg0JDQndCa0JjQptCQCivQndCQ0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQndCQ0IjQmNCLINCX0J7QoNCY0KbQkAor0J3QkNCI0JLQmNCg0KIg0JPQntCi0KTQoNCY0JQKK9Cd0JDQiNCS0JjQoNCiINCI0J7QktCQ0J0KK9Cd0JDQmtCQ0KDQkNCU0JAg0JTQkNCg0JjQndCa0JAKK9Cd0JDQmtCQ0KDQkNCU0JjQiyDQidCj0JHQngor0J3QkNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JDQmtCY0Isg0JjQktCQ0J0KK9Cd0JDQmtCY0Isg0IjQkNCK0JAKK9Cd0JDQmtCY0Isg0InQo9CR0JjQndCa0JAKK9Cd0JDQmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQndCQ0JrQntCc0KfQmNCLINCX0J7QoNCa0JAKK9Cd0JDQmtCe0JIg0IjQntCg0JTQkNCdCivQndCQ0JvQmNCLINCU0KDQkNCT0JjQptCQCivQndCQ0JvQmNCLINCV0J3QmNCh0JAKK9Cd0JDQnNCV0KHQndCY0Jog0J7Qm9CT0JAKK9Cd0JDQnNCb0JjQgtCYINCk0JXQoNCY0JTQkAor0J3QkNCd0JDQqNCYINCW0J7Qm9CiCivQndCQ0J3QkNCo0Jgg0JDQk9CQ0KLQkAor0J3QkNCd0JDQqNCYINCI0KPQm9CY0IjQkNCd0JAKK9Cd0JDQndCY0Isg0ILQntCa0JAKK9Cd0JDQndCe0JLQodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCd0J7QktCh0JrQmNCIINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCQ0J7QlNCe0JLQmNCLINCf0JDQktCb0JUKK9Cd0JDQoNCQ0Jgg0KTQldCg0JXQndCmCivQndCQ0KDQkNCd0KfQmNCLINCY0JvQntCd0JrQkAor0J3QkNCg0JDQndCn0JjQiyDQnNCY0JvQlQor0J3QkNCg0JDQndCn0JjQiyDQnNCY0JvQlQor0J3QkNCg0JDQndCn0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QkNCg0JDQndCn0JjQiyDQndCQ0JTQkAor0J3QkNCg0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQndCQ0KDQkNCd0KfQmNCLINCf0JXQotCQ0KAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J/QldCi0JDQoAor0J3QkNCg0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQndCQ0KDQkNCd0KfQmNCLINCh0JDQktCQCivQndCQ0KDQkNCd0KfQmNCLINCh0KLQldCS0JDQnQor0J3QkNCg0JDQndCn0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JDQoNCQ0J3Qp9CY0Isg0KHQo9CX0JDQndCQCivQndCQ0KDQkNCd0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQoNCQ0J3Qj9CY0Isg0JTQkNCg0JrQngor0J3QkNCg0JDQndCP0JjQiyDQldCS0JAKK9Cd0JDQoNCQ0J3Qj9CY0Isg0JzQmNCb0JDQnQor0J3QkNCg0JDQndCP0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QkNCg0JDQndCP0JjQiyDQktCV0KDQkAor0J3QkNCg0JjQiyDQndCV0JTQldCJ0JrQngor0J3QkNChINCC0JXQoNCCCivQndCQ0KEg0KTQldCg0JXQndCmCivQndCQ0KEg0KTQoNCQ0IrQkAor0J3QkNChINCa0JDQoNCb0J4KK9Cd0JDQodCa0J7QktCY0Isg0JHQm9CQ0JbQkAor0J3QkNCh0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQndCQ0KHQntCSINCc0JjQm9CY0JLQntCICivQndCQ0KHQotCQ0KHQmNCLINCU0KDQkNCT0JDQnQor0J3QkNCh0KLQkNCh0JjQiyDQmNCS0JDQnQor0J3QkNCh0KLQkNCh0JjQiyDQiNCV0JvQldCd0JAKK9Cd0JDQodCi0JDQodCY0Isg0InQmNCJ0JDQndCQCivQndCQ0KHQotCQ0KHQmNCLINCf0JDQktCb0JUKK9Cd0JDQodCi0JDQodCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J3QkNCh0KLQkNCh0JjQiyDQodCi0JXQktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQndCQ0KHQotCQ0KHQmNCLINCi0JDQotCI0JDQndCQCivQndCQ0KHQotCQ0KHQmNCLINCi0JXQntCU0J7QoAor0J3QkNCh0KLQkNCh0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JDQodCi0JDQodCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J3QkNCh0KLQkNCh0J7QktCY0Isg0KLQntCd0KfQkAor0J3QkNCh0KLQldCS0JjQiyDQotCe0JTQntCgCivQndCQ0KHQotCY0Isg0JjQoNCV0J3QkAor0J3QkNCh0KLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cd0JDQodCi0JjQiyDQnNCY0KXQkNCY0JvQngor0J3QkNCh0KLQmNCLINCc0JjQm9CV0J3QkAor0J3QkNCh0KLQmNCLINCc0JjQm9CY0KbQkAor0J3QkNCh0KLQmNCLINCc0JjQoNCI0JDQndCQCivQndCQ0KHQotCY0Isg0J3QmNCa0J7Qm9CV0KLQkAor0J3QkNCh0KLQmNCLINCe0JvQk9CQCivQndCQ0KHQotCY0Isg0KDQkNCU0JUKK9Cd0JDQodCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QkNCh0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQndCQ0KHQotCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cd0JDQodCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCQ0KHQotCY0Isg0JLQm9CQ0JTQkAor0J3QkNCh0KLQmNCLINCX0J7QoNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQndCQ0KHQotCe0JIg0JrQmNCg0J4KK9Cd0JDQodCi0J7QktCh0JrQmCDQlNCg0JDQk9CeCivQndCQ0KLQntCo0JXQktCY0Isg0JTQldCI0JDQnQor0J3QkNCj0JzQntCSINCC0J7QoNCC0JUKK9Cd0JDQo9Cc0J7QkiDQkdCg0JDQndCa0JAKK9Cd0JDQo9Cc0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQndCQ0KPQnNCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0J3QkNCj0JzQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cd0JDQo9Cc0J7QkiDQnNCY0JvQldCd0JAKK9Cd0JDQo9Cc0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QkNCj0JzQntCSINCh0KLQldCS0JDQnQor0J3QkNCj0JzQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cd0JDQo9Cc0J7QktCY0Isg0JzQmNCb0JjQktCe0Igg0JTQoAor0J3QkNCj0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JDQo9Cc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QkNCj0JzQntCS0KHQmtCYINCc0JjQoNCa0J4KK9Cd0JDQo9Cc0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cd0JDQo9Cc0J7QktCh0JrQmCDQodCe0IrQkAor0J3QkNCj0JzQntCS0KHQmtCYINCh0KLQntCI0JDQnQor0J3QkNCj0JzQntCS0KHQmtCYINCi0JDQndCQ0KEKK9Cd0JDQo9Cd0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQndCQ0KPQndCa0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQndCQ0JLQkNCb0JAg0J3QmNCa0J7Qm9CQCivQndCQ0JLQkNCb0KPQqNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QkNCS0JDQm9Cj0KjQmNCLINCS0J7QiNCY0J0KK9Cd0JDQktCg0JDQotCY0Jsg0ILQo9Cg0JAKK9Cd0JDQktCg0JDQotCY0Jsg0IjQntCh0JjQnwor0J3QkNCS0KDQkNCi0JjQmyDQiNCe0KHQmNCfCivQndCQ0JLQoNCQ0KLQmNCbINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQktCg0JDQotCY0Jsg0JfQlNCV0J3QmtCeCivQndCQ0JLQoNCQ0KLQmNCbINCX0J7QoNCQ0J0KK9Cd0JDQl9CU0KDQkNCS0JXQptCa0Jgg0JDQndCU0KDQkNCoCivQndCV0KfQntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QldCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cd0JXQqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQndCV0KjQmNCLINCQ0KbQkAor0J3QldCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCo0JjQiyDQkdCe0JbQmNCU0JDQoAor0J3QldCo0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0J3QldCo0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JXQqNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQndCV0KjQmNCLINCU0KPQqNCQ0J0KK9Cd0JXQqNCY0Isg0IjQldCk0KLQkAor0J3QldCo0JjQiyDQiNCe0JLQkNCdCivQndCV0KjQmNCLINCI0J7QktCQ0J0KK9Cd0JXQqNCY0Isg0IjQntCS0JDQnQor0J3QldCo0JjQiyDQiNCe0JLQkNCdCivQndCV0KjQmNCLINCa0J7QodCQ0J3QkAor0J3QldCo0JjQiyDQm9CV0J3QmtCQCivQndCV0KjQmNCLINCb0JXQntCd0JjQlAor0J3QldCo0JjQiyDQidCY0InQkNCd0JAKK9Cd0JXQqNCY0Isg0JzQkNCg0IjQkNCdCivQndCV0KjQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQqNCY0Isg0JzQmNCb0JDQnQor0J3QldCo0JjQiyDQnNCY0JvQkNCdCivQndCV0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQndCV0KjQmNCLINCc0JjQm9CY0KbQkAor0J3QldCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0J3QldCo0JjQiyDQnNCY0JvQmtCQCivQndCV0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCV0KjQmNCLINCc0JjQoNCQCivQndCV0KjQmNCLINCc0JjQoNCa0J4KK9Cd0JXQqNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQndCV0KjQmNCLINCc0JvQkNCU0JXQnQor0J3QldCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JXQqNCY0Isg0J3QldCU0JXQidCa0J4KK9Cd0JXQqNCY0Isg0J/QldCi0JDQoAor0J3QldCo0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QldCo0JjQiyDQodCQ0JLQldCi0JAKK9Cd0JXQqNCY0Isg0KHQmNCc0JXQntCdCivQndCV0KjQmNCLINCh0JvQkNCS0JrQngor0J3QldCo0JjQiyDQodCb0JDQktCe0IjQmtCQCivQndCV0KjQmNCLINCi0J7QlNCe0KAKK9Cd0JXQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QldCo0JjQnSDQltCQ0KDQmtCeCivQndCV0KjQmNCdINCI0J7QktCQ0J3QkAor0J3QldCo0JjQnSDQiNCe0JLQkNCdCivQndCV0KjQmNCdINCc0JDQoNCa0J4KK9Cd0JXQqNCY0J0g0KHQotCV0JLQkNCdCivQndCV0KjQmtCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9Cd0JXQqNCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cd0JXQqNCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQndCV0KjQmtCe0JLQmNCLINCC0KPQoNCC0JAKK9Cd0JXQqNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0KjQmtCe0JLQmNCLINCY0KDQldCd0JAKK9Cd0JXQqNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCV0KjQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0J3QldCo0JrQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCV0KjQmtCe0JLQmNCLINCc0JjQm9CY0IjQkNCdCivQndCV0KjQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQndCV0KjQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QldCo0JrQntCS0JjQiyDQnNCY0KLQkAor0J3QldCo0JrQntCS0JjQiyDQndCV0KjQmtCeCivQndCV0KjQmtCe0JLQmNCLINCf0JXQoNCY0KbQkAor0J3QldCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCV0KjQmtCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQndCV0KjQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQndCV0KjQmtCe0JLQmNCLINCg0JDQlNCe0IrQkAor0J3QldCo0JrQntCS0JjQiyDQoNCV0IjQnNCe0J3QlAor0J3QldCo0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cd0JXQqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCV0KjQmtCe0JLQmNCLLdCX0JTQoNCQ0JLQmNCLINCS0JXQoNCY0KbQkAor0J3QldCo0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cd0JXQqNCe0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQqNCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQndCV0KjQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JXQqNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0J3QldCo0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0JXQqNCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQndCV0KjQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QldCo0J7QktCY0Isg0KDQo9CW0JjQptCQCivQndCV0KjQntCS0JjQiyDQotCg0JjQktCa0JAKK9Cd0JXQqNCi0JjQptCa0Jgg0IjQntCh0JjQnwor0J3QldCo0KLQmNCm0JrQmCDQiNCe0KHQmNCfCivQndCV0KjQotCY0KbQmtCYINCc0JjQm9CY0KbQkAor0J3QldCo0KLQmNCm0JrQmCDQodCi0JXQktCQ0J0KK9Cd0JXQi9CQ0Jog0ILQntCg0ILQlQor0J3QldCL0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCL0JDQmiDQkdCg0JDQndCa0J4KK9Cd0JXQi9CQ0Jot0JrQntCg0JDQiyDQkNCd0ILQldCb0JrQkAor0J3QldCL0JDQmiDQodCi0JXQktCQ0J0KK9Cd0JXQi9CQ0Jog0JLQldCg0JAKK9Cd0JXQi9CQ0Jog0JfQlNCg0JDQktCa0J4KK9Cd0JXQi9CQ0JrQntCSINCc0JDQoNCY0IjQkAor0J3QldCL0JDQmtCe0JIg0JzQmNCb0JDQnQor0J3QldCL0JDQmtCe0JIg0JzQmNCb0JrQkAor0J3QldCL0JDQmtCe0JIg0KHQmNCc0JAKK9Cd0JXQi9CQ0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JXQltCY0Isg0JTQkNCc0JjQoAor0J3QldCQ0KLQndCY0KbQkCDQlNCj0KjQkNCdCivQndCV0JDQotCd0JjQptCQINCg0JDQlNCY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0J3QldCR0JXQodCd0Jgg0JHQntCg0JjQoQor0J3QldCR0J7QiNCo0JAg0KHQntCk0JjQiNCQCivQndCV0JHQoNCY0JPQmNCLINCI0J7QktCY0KbQkAor0J3QldCR0KDQmNCT0JjQiyDQoNCQ0KLQmtCeCivQndCV0KbQldCSINCU0KDQkNCT0J7QidCj0JEKK9Cd0JXQptCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J3QldCm0JjQiyDQotCe0KjQkAor0J3QldCm0JjQnSDQltCY0JLQmNCm0JAKK9Cd0JXQptCY0J0g0KHQotCV0JLQkAor0J3QldCm0JjQnSDQktCe0IjQkAor0J3QldCm0JjQnSDQl9Cb0JDQotCe0JzQmNCgCivQndCV0KbQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9Cd0JXQptCa0J7QkiDQk9Ce0KDQkNCdCivQndCV0KbQmtCe0JIg0JrQkNCi0JjQptCQCivQndCV0KbQmtCe0JIg0JvQkNCX0JDQoAor0J3QldCm0JrQntCSINCb0J7Ql9CY0J3QmtCQCivQndCV0KbQmtCe0JIg0JzQkNCg0JjQiNCQCivQndCV0KbQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cd0JXQptCa0J7QkiDQnNCe0JzQp9CY0JvQngor0J3QldCm0JrQntCSINCd0JjQmtCe0JvQkAor0J3QldCU0JXQidCa0J7QkiDQltCY0JLQmtCeCivQndCV0JTQldCJ0JrQntCSINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JIg0ILQntCg0ILQlQor0J3QldCU0JXQidCa0J7QkiDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCSINCC0J7QoNCC0JUKK9Cd0JXQlNCV0InQmtCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JDQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JTQldCh0JDQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JTQoNCQ0JPQkNCdCivQndCV0JTQldCJ0JrQntCSINCU0KDQkNCT0JjQitCQCivQndCV0JTQldCJ0JrQntCSINCU0KPQqNCQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0JjQm9CY0IjQkAor0J3QldCU0JXQidCa0J7QkiDQmNCg0JXQndCQCivQndCV0JTQldCJ0JrQntCSINCY0JLQkNCdCivQndCV0JTQldCJ0JrQntCSINCI0JXQm9CV0J3QkAor0J3QldCU0JXQidCa0J7QkiDQiNCe0JLQkNCdCivQndCV0JTQldCJ0JrQntCSINCI0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QldCU0JXQidCa0J7QkiDQmtCQ0KLQmNCm0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JrQoNCh0KLQkAor0J3QldCU0JXQidCa0J7QkiDQm9CQ0JfQkNCgINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0JXQidCa0J7QkiDQm9CY0J3QkAor0J3QldCU0JXQidCa0J7QkiDQidCY0InQkNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0InQo9CR0JjQptCQCivQndCV0JTQldCJ0JrQntCSINCJ0KPQkdCY0KbQkAor0J3QldCU0JXQidCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JzQkNCg0JjQiNCQCivQndCV0JTQldCJ0JrQntCSINCc0JDQoNCa0J4KK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QkiDQnNCY0JvQkNCdCivQndCV0JTQldCJ0JrQntCSINCc0JjQm9CY0JLQntCICivQndCV0JTQldCJ0JrQntCSINCc0JjQm9Ce0KgKK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCg0JrQngor0J3QldCU0JXQidCa0J7QkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCi0JAKK9Cd0JXQlNCV0InQmtCe0JIg0J7Qm9CT0JAKK9Cd0JXQlNCV0InQmtCe0JIg0J7Qm9CT0JAKK9Cd0JXQlNCV0InQmtCe0JIg0KDQkNCU0JUKK9Cd0JXQlNCV0InQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Cd0JXQlNCV0InQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Cd0JXQlNCV0InQmtCe0JIg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQlNCV0InQmtCe0JIg0KHQmNCd0JjQqNCQCivQndCV0JTQldCJ0JrQntCSINCh0KLQldCS0JDQnQor0J3QldCU0JXQidCa0J7QkiDQotCV0J7QlNCe0KDQkAor0J3QldCU0JXQidCa0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCSINCS0JjQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0JbQmNCS0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JbQmNCS0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JbQmNCS0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0JXQidCa0J7QktCY0Isg0JHQntCg0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0J7QoNCU0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQo9CT0J7QodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0KPQodCi0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0J7QiNCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCf0JDQktCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JjQnNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCY0JzQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQoNCV0KLQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCS0JXQoNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkiDQlNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCj0KfQmtCeCivQndCV0JTQldCJ0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JfQm9CQ0KLQkAor0J3QldCU0JjQiyDQqNCf0JjQoNCeCivQndCV0JTQmNCLINCR0JjQidCQ0J3QkAor0J3QldCU0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQndCV0JTQmNCLINCR0J7QoNCI0JDQndCa0JAKK9Cd0JXQlNCY0Isg0JTQkNCg0JjQndCa0JAKK9Cd0JXQlNCY0Isg0JTQldCh0JDQndCa0JAg0J/QoNCe0KTQldCh0J7QoAor0J3QldCU0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cd0JXQlNCY0Isg0IjQldCb0JXQndCQCivQndCV0JTQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQndCV0JTQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCV0JTQmNCLINCI0J7QktCQ0J0KK9Cd0JXQlNCY0Isg0JrQkNCi0JjQptCQCivQndCV0JTQmNCLINCa0JDQotCY0KbQkAor0J3QldCU0JjQiyDQm9CQ0JfQkNCgCivQndCV0JTQmNCLINCb0JDQl9CQ0KAKK9Cd0JXQlNCY0Isg0JvQkNCX0JDQoAor0J3QldCU0JjQiyDQm9CQ0JfQkNCgCivQndCV0JTQmNCLINCJ0KPQkdCY0KbQkAor0J3QldCU0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQndCV0JTQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQlNCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQndCV0JTQmNCLINCc0JjQm9Ce0KgKK9Cd0JXQlNCY0Isg0JzQmNCb0J7QiNCVCivQndCV0JTQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCV0JTQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JXQlNCY0Isg0JzQm9CQ0JTQldCdCivQndCV0JTQmNCLINCd0JXQndCQ0JQKK9Cd0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQndCV0JTQmNCLINCf0JXQotCQ0KAKK9Cd0JXQlNCY0Isg0KDQkNCU0J7QqAor0J3QldCU0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QldCU0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQndCV0JTQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JXQlNCY0Isg0KHQkNCS0JAKK9Cd0JXQlNCY0Isg0KHQnNCY0InQkAor0J3QldCU0JjQiyDQodCd0JXQltCQ0J3QkAor0J3QldCU0JjQiy3QodCg0JXQnNCQ0KYg0J3QkNCU0JAKK9Cd0JXQlNCY0Isg0KHQotCV0JLQkNCdCivQndCV0JTQmNCLINCS0JXQoNCQCivQndCV0JTQmNCLINCS0JjQlNCQCivQndCV0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JXQlNCY0Isg0JfQm9CQ0KLQntCI0JUKK9Cd0JXQlNCY0Isg0JfQntCg0JDQnQor0J3QldCU0JjQnNCe0JLQmNCLINCR0J7QltCeCivQndCV0JTQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0JTQmNCc0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0JXQlNCY0J3QmNCLINCh0KDQldCi0JXQnQor0J3QldCU0JjQndCY0Isg0JfQntCg0JDQnQor0J3QldCU0J7QnNCQ0KfQmtCYINCc0JjQm9CQ0J0KK9Cd0JXQlNCe0JzQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Cd0JXQlNCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0J3QldCU0J7QktCY0Isg0JzQmNCg0J4KK9Cd0JXQlNCe0JLQmNCLINCc0JjQoNCeCivQndCV0JTQntCS0JjQiyDQktCb0JDQlNCeCivQndCV0JTQo9Cn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCV0JTQo9Cn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCU0KPQp9CY0J0g0JTQoNCQ0JPQmNCm0JAKK9Cd0JXQlNCj0KfQmNCdINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQndCV0JTQo9Cn0JjQnSDQnNCY0JvQldCd0JAKK9Cd0JXQlNCS0JjQlNCV0Jog0JHQntCg0JjQoSDQlNCgCivQndCV0JPQm9CY0Isg0ILQntCg0ILQlQor0J3QldCT0JvQmNCLINCa0JDQotCY0KbQkAor0J3QldCT0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQndCV0JPQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J3QldCT0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQndCV0JPQoNCjINCR0JjQodCV0KDQmtCQCivQndCV0JPQo9Co0JXQktCY0Isg0J/QkNCI0JAKK9Cd0JXQiNCT0JXQkdCQ0KPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0J/QoNCe0KQKK9Cd0JXQnNCn0JDQndCY0J0g0ILQo9Cg0ILQmNCm0JAKK9Cd0JXQnNCn0JDQndCY0J0g0JzQkNCg0JjQiNCQCivQndCV0JzQp9CQ0J3QmNCdINCc0JjQoNCI0JDQndCQCivQndCV0JzQp9CV0JIg0JHQntCg0JjQktCe0IgKK9Cd0JXQnNCn0JXQkiDQlNCj0KjQmtCeCivQndCV0JzQp9CV0JIg0IjQldCb0JXQndCQCivQndCV0JzQp9CV0JIg0J3QmNCa0J7Qm9CQCivQndCV0JzQp9CV0JIg0KHQoNCR0JjQndCa0J4KK9Cd0JXQnNCn0JXQktCY0Isg0JzQkNCg0JrQngor0J3QldCc0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQndCV0JzQkCDQktCQ0JvQldCg0JjQiNCQCivQndCV0JzQldCn0JXQmiDQoNCe0JbQkAor0J3QldCc0JXQqCDQiNCV0JvQkAor0J3QldCc0JXQqCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J3QldCc0JXQpiDQkNCd0KLQo9CdCivQndCV0JzQldCmINCQ0J3QotCj0J0KK9Cd0JXQnNCV0KYg0JXQnNCQ0J3Qo9CV0JsKK9Cd0JXQnNCV0KYg0InQo9CU0JzQmNCb0JAKK9Cd0JXQnNCV0KIg0KjQkNCd0JTQntCgCivQndCV0JzQldCiINCQ0J3QlNCg0JjQiNCQCivQndCV0JzQldCiINCQ0J3QotCQ0JsKK9Cd0JXQnNCV0KIg0JDQndCi0JDQmwor0J3QldCc0JXQoiDQkNCd0KLQkNCbCivQndCV0JzQldCiINCQ0KDQn9CQ0JQKK9Cd0JXQnNCV0KIg0JHQntCg0JjQodCb0JDQktCa0JAKK9Cd0JXQnNCV0KIg0JTQldCW0JUKK9Cd0JXQnNCV0KIg0JTQldCI0JDQnQor0J3QldCc0JXQoiDQldCg0J3QldCh0KIKK9Cd0JXQnNCV0KIg0JPQldCg0JPQldCJCivQndCV0JzQldCiINCT0JXQl9CQINCU0KAKK9Cd0JXQnNCV0KIg0JPQldCX0JAKK9Cd0JXQnNCV0KIg0JjQqNCi0JLQkNCdCivQndCV0JzQldCiINCY0KjQotCS0JDQnQor0J3QldCc0JXQoiDQmNCo0KLQktCQ0J0KK9Cd0JXQnNCV0KIg0JjQm9Ce0J3QkAor0J3QldCc0JXQoiDQmNCb0J7QndCQCivQndCV0JzQldCiINCY0JvQntCd0JrQkAor0J3QldCc0JXQoiDQiNCj0JvQmNCI0JDQndCQCivQndCV0JzQldCiINCa0JDQoNCb0J4KK9Cd0JXQnNCV0KIg0JrQkNCg0JvQngor0J3QldCc0JXQoiDQmtCQ0KLQmNCm0JAKK9Cd0JXQnNCV0KIg0JvQkNCI0J7QqAor0J3QldCc0JXQoiDQm9CQ0KHQm9CeCivQndCV0JzQldCiINCb0JDQodCb0J4KK9Cd0JXQnNCV0KIg0InQmNCJ0JDQndCQCivQndCV0JzQldCiINCc0JDQoNCY0IjQkNCd0JAKK9Cd0JXQnNCV0KIg0JzQkNCg0JjQiNCQCivQndCV0JzQldCiINCc0JDQoNCY0IjQkAor0J3QldCc0JXQoiDQnNCY0KXQkNCJCivQndCV0JzQldCiINCc0JjQm9Ca0JAKK9Cd0JXQnNCV0KIg0JzQmNCg0IjQkNCd0JAKK9Cd0JXQnNCV0KIt0JzQo9Cn0Jgg0JzQkNCg0JjQiNCQCivQndCV0JzQldCiINCe0JvQmNCS0JXQoNCQCivQndCV0JzQldCiINCe0KLQngor0J3QldCc0JXQoiDQn9CV0KLQkNCgCivQndCV0JzQldCiINCg0J7Ql9CQ0JvQmNCI0JAKK9Cd0JXQnNCV0KIg0KDQo9CU0J7Qm9CkCivQndCV0JzQldCiINCh0KLQldCS0JDQnQor0J3QldCc0JXQoiDQodCi0J7QiNCQ0J3QmtCQCivQndCV0JzQldCiINCi0JjQkdCe0KAKK9Cd0JXQnNCV0KIg0JLQmNCe0JvQldCi0JAKK9Cd0JXQnNCV0KIg0JfQntCb0KLQkNCdCivQndCV0JzQldCiINCX0J7Qm9Ci0JDQnQor0J3QldCc0JXQotClINCY0KDQldCd0JAKK9Cd0JXQndCQ0JQg0KHQmNCc0J4KK9Cd0JXQndCQ0JTQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQndCQ0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQndCV0J3QkNCU0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QldCd0JDQlNCY0Isg0KDQkNCi0JrQngor0J3QldCd0JDQlNCe0JIg0JbQmNCS0JrQngor0J3QldCd0JDQlNCe0JIg0JDQnNCQ0JvQmNCI0JAKK9Cd0JXQndCQ0JTQntCSINCQ0J3QmtCQCivQndCV0J3QkNCU0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JXQndCQ0JTQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cd0JXQndCQ0JTQntCSINCI0JXQktCg0J7QodCY0JzQkAor0J3QldCd0JDQlNCe0JIg0JrQkNCc0JXQndCa0J4KK9Cd0JXQndCQ0JTQntCSINCa0J7QodCi0JAg0JTQmNCf0Jsg0JjQndCTCivQndCV0J3QkNCU0J7QkiDQnNCY0JvQldCd0JrQngor0J3QldCd0JDQlNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cd0JXQndCQ0JTQntCSINCe0JvQk9CQCivQndCV0J3QkNCU0J7QkiDQn9CV0KLQkNCgCivQndCV0J3QkNCU0J7QkiDQoNCQ0IjQmtCeCivQndCV0J3QkNCU0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JXQndCQ0JTQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cd0JXQndCQ0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQndCV0J3QkNCU0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCV0J3QkNCU0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQndCV0J3QkNCU0J7QktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QldCd0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQnNCY0KLQkNCgCivQndCV0J3QkNCU0J7QktCY0Isg0J/QkNCd0KLQkAor0J3QldCd0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQodCb0JDQktCd0JAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCV0J3QkNCU0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J3QldCd0JXQl9CY0Isg0ILQntCg0ILQlQor0J3QldCd0JXQl9CY0Isg0JTQkNCg0JrQngor0J3QldCd0JXQl9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J3QldCd0JXQl9CY0Isg0KDQkNCU0JXQndCa0J4KK9Cd0JXQndCV0JfQmNCLINCg0JDQlNCY0KHQkNCSCivQndCV0J3QmNCLINCC0J7QoNCC0JUKK9Cd0JXQndCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J3QldCd0JjQiyDQodCQ0JLQkAor0J3QldCd0JjQiyDQktCV0KDQkAor0J3QldCd0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JXQndCY0J0g0JbQmNCS0JrQngor0J3QldCd0JjQnSDQlNCV0IjQkNCdCivQndCV0J3QmNCdINCU0KDQkNCT0JjQitCQCivQndCV0J3QmNCdINCU0KDQkNCT0J7QnNCY0KAKK9Cd0JXQndCY0J0g0IjQkNCh0JXQndCa0JAKK9Cd0JXQndCY0J0g0JvQldCd0JrQkAor0J3QldCd0JjQnSDQnNCQ0KDQkAor0J3QldCd0JjQnSDQnNCY0JvQkNCdCivQndCV0J3QmNCdINCc0JjQm9CY0KbQkAor0J3QldCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cd0JXQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cd0JXQndCY0J0g0JzQmNCg0JrQngor0J3QldCd0JjQnSDQoNCQ0IjQmtCeCivQndCV0J3QmNCdINCh0JDQktCQCivQndCV0J3QmNCdINCh0JvQkNCS0JrQngor0J3QldCd0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQndCV0J3QmNCdINCS0JDQodCQCivQndCV0J7QpNCY0KLQntCS0JjQiyDQlNCV0IjQkNCdCivQndCV0J/QmNCbINCQ0J3QotCj0J0KK9Cd0JXQn9Ce0JrQntCI0KfQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCg0JAg0J7QoNCb0JXQkNCd0JAKK9Cd0JXQoNCQ0KYg0JzQm9CQ0JTQmNCd0JrQngor0J3QldCg0JDQpiDQn9CV0KDQngor0J3QldCg0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQndCV0KDQkNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0J3QldCg0JDQndCP0JjQiyDQkdCe0KjQmtCeCivQndCV0KDQkNCd0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QldCg0JDQndCP0JjQiyDQiNCQ0KHQnNCY0J3QkAor0J3QldCg0JDQndCP0JjQiyDQnNCQ0JrQodCY0JwKK9Cd0JXQoNCQ0J3Qj9CY0Isg0J3QldCS0JXQndCa0JAKK9Cd0JXQoNCQ0J3Qj9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0J3QldCg0JXQoCDQgtCj0KDQkAor0J3QldCg0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCg0KLQmNCm0JAg0KHQotCV0JLQkNCdCivQndCV0KHQmtCQ0JvQmNCLINCV0JLQk9CV0J3QmNCI0JUKK9Cd0JXQodCa0JDQm9CY0Isg0JvQldCe0J3QkNCg0JTQngor0J3QldCh0KLQntCg0J7QkiDQltCV0InQmtCeCivQndCV0KHQotCe0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCV0KHQotCe0KDQntCSINCU0KDQkNCT0J7QidCj0JEKK9Cd0JXQodCi0J7QoNCe0JIg0JvQkNCX0JDQoAor0J3QldCh0KLQntCg0J7QkiDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QldCh0KLQntCg0J7QkiDQnNCY0KDQmtCeCivQndCV0KHQotCe0KDQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCW0JjQktCe0KLQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQntCI0JDQndCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQkdCe0KDQmNChCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQk9CQ0JLQoNCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQmNCh0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JzQmNCb0JUKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCd0JDQlNCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQodCQ0JLQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JXQktCQ0IjQlNCY0Isg0JLQldCb0JjQnNCY0KAKK9Cd0JXQktCY0JTQntCS0KfQmNCLINCJ0KPQkdCY0KbQkAor0J3QldCS0JjQlNCe0JLQp9CY0Isg0JzQmNCb0JrQkAor0J3QldCS0JjQlNCe0JLQp9CY0Isg0KHQkNCS0JAKK9Cd0JXQktCe0JvQmNCLINCQ0J3QmNCm0JAKK9Cd0JXQl9CY0KDQmCDQkNCg0JjQpAor0J3QldCX0JjQoNCe0JIg0JDQidCY0IkKK9Cd0JXQl9CY0KDQntCSINCS0JXQm9CY0KfQmtCeCivQndCY0KfQmNCLINCd0JDQlNCQCivQndCY0KfQmNCLINCf0KDQldCU0KDQkNCTCivQndCY0KjQkNCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQndCY0KjQkNCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J3QmNCo0JDQktCY0Isg0J/QkNCS0JvQlQor0J3QmNCo0JDQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J3QmNCo0JXQktCY0Isg0ILQntCg0ILQlQor0J3QmNCo0JXQktCY0Isg0ILQo9Cg0JAKK9Cd0JjQqNCV0JLQmNCLINCI0J7QktCY0KbQkAor0J3QmNCo0JXQktCY0Isg0JrQkNCi0JjQptCQCivQndCY0KjQldCS0JjQiyDQntCb0JPQkAor0J3QmNCo0JXQktCY0Isg0KHQkNCS0JAKK9Cd0JjQqNCY0Isg0JTQoNCQ0JPQkNCdCivQndCY0KjQmNCLINCc0JvQkNCC0JXQnQor0J3QmNCo0JrQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0J3QmNCo0JrQkNCd0J7QktCY0Isg0InQo9Cf0JrQngor0J3QmNCo0JrQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0J3QmNCL0JXQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Cd0JjQi9CV0KLQmNCLINCc0JjQoNCQCivQndCY0IvQmNCk0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0JjQi9CY0KTQntCg0J7QktCY0Isg0J/QldCg0JAKK9Cd0JjQi9CY0KTQntCg0J7QktCY0Isg0J/QldCi0JDQoAor0J3QmNCL0JjQpNCe0KDQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cd0JjQi9CY0J0g0ILQntCg0ILQlQor0J3QmNCL0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCL0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQi9CY0J0g0JTQntCd0JrQkAor0J3QmNCL0JjQnSDQlNCj0KjQmtCeCivQndCY0IvQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQi9CY0J0g0J3QldCS0JXQndCa0JAKK9Cd0JjQi9CY0J0g0J3QmNCL0JjQpNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQndCY0IvQmNCdINCh0J3QldCW0JDQndCQCivQndCY0IvQmNCdINCh0J7QpNCY0IjQkAor0J3QmNCL0JjQnSDQodCS0JXQotCe0JfQkNCgCivQndCY0IvQmNCdINCS0JDQodCY0JvQmNCI0JUKK9Cd0JjQi9CY0J0g0JLQldCg0JjQptCQCivQndCY0IvQmNCdINCX0J7QoNCQCivQndCY0KbQmNCLINCU0JDQoNCa0J4KK9Cd0JjQlNCV0KDQm9CV0J3QlNCV0KAg0ILQntCg0ILQlQor0J3QmNCU0JXQoNCb0JXQndCY0Isg0JfQntCg0JDQndCQCivQndCY0IjQldCc0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCn0JXQktCY0Isg0JHQntCo0JrQngor0J3QmNCa0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQp9CV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCY0JrQp9CV0JLQmNCLINCc0J7QnNCeCivQndCY0JrQp9CV0JLQmNCLINCg0JDQotCa0J4KK9Cd0JjQmtCn0JXQktCY0Isg0KHQotCQ0J3QkAor0J3QmNCa0KjQmNCLINCW0JjQktCa0J4KK9Cd0JjQmtCo0JjQiyDQgtCj0KDQkAor0J3QmNCa0KjQmNCLINCm0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCo0JjQiyDQlNCQ0KDQmtCeCivQndCY0JrQqNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cd0JjQmtCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQqNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cd0JjQmtCo0JjQiyDQpNCg0JDQitCQCivQndCY0JrQqNCY0Isg0JjQodCQCivQndCY0JrQqNCY0Isg0IjQo9Cb0JjQiNCQCivQndCY0JrQqNCY0Isg0JzQmNCb0JDQnQor0J3QmNCa0KjQmNCLINCc0JjQoNCa0J4KK9Cd0JjQmtCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JjQmtCo0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCo0JjQiyDQktCV0KHQndCQCivQndCY0JrQkNCn0JXQkiDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0JDQp9CV0JIg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCQ0KfQldCS0JjQiyDQnNCY0KXQntCS0JjQmwor0J3QmNCa0JDQp9CV0JLQmNCLINCg0JDQlNCe0JzQkNCdCivQndCY0JrQkNCo0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J3QmNCa0JDQqNCY0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCV0KLQmNCLINCT0J7QoNCU0JDQndCQCivQndCY0JrQldCi0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0J3QmNCa0JXQotCY0Isg0IjQldCk0KLQkAor0J3QmNCa0JXQotCY0Isg0JrQkNCi0JjQptCQCivQndCY0JrQldCi0JjQiyDQndCV0JHQntCI0KjQkCDQlNCgCivQndCY0JrQldCi0JjQiyDQn9CV0KLQkNCgCivQndCY0JrQldCi0JjQiyDQodCQ0KjQkAor0J3QmNCa0JXQotCY0Isg0KHQmNCc0JAKK9Cd0JjQmtCV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCV0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCV0JfQmNCLINCc0JjQm9CQCivQndCY0JrQldCX0JjQiyDQn9CV0KLQkNCgCivQndCY0JrQldCX0JjQiyDQoNCe0JrQodCQ0J3QlNCQCivQndCY0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQndCY0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0JjQiyDQkdCj0JTQmNCc0JjQoAor0J3QmNCa0JjQiyDQlNCQ0IjQkNCd0JAKK9Cd0JjQmtCY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQmNCLINCI0J7QktCQ0J3QmtCQCivQndCY0JrQmNCLINCI0J7QktCeCivQndCY0JrQmNCLINCI0J7QktCeCivQndCY0JrQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQmNCLINCc0JDQoNCY0J3QmtCeCivQndCY0JrQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCY0Isg0JzQmNCb0JUKK9Cd0JjQmtCY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCY0Isg0J3QkNCU0JAKK9Cd0JjQmtCY0Isg0J3QkNCi0JDQqNCQCivQndCY0JrQmNCLINCd0JXQktCV0J3QmtCQCivQndCY0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQndCY0JrQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQmNCLINCh0JDQitCQCivQndCY0JrQmNCLINCh0JDQktCQCivQndCY0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Cd0JjQmtCY0Isg0JfQm9CQ0KLQkAor0J3QmNCa0JjQiyDQl9Ce0KDQkAor0J3QmNCa0JjQiyDQl9Ce0KDQmtCQCivQndCY0JrQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cd0JjQmtCY0J0g0KDQkNCU0J7QnNCY0KAKK9Cd0JjQmtCY0J0g0JLQldCg0JAKK9Cd0JjQmtCY0KLQmNCo0JjQnSDQndCQ0JTQkAor0J3QmNCa0JjQotCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQndCY0JrQmNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCY0KLQntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQndCY0JrQmNCi0J7QktCY0Isg0JHQntCW0J4KK9Cd0JjQmtCY0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQmNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QmNCa0JjQotCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQndCY0JrQmNCi0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QmtCQCivQndCY0JrQmNCi0J7QktCY0Isg0KDQkNCU0JAKK9Cd0JjQmtCY0KLQntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQndCY0JrQmNCi0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qp9CV0JIg0JfQntCg0JjQptCQCivQndCY0JrQntCU0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JTQmNCI0JXQktCY0Isg0JXQndCV0KHQkAor0J3QmNCa0J7QlNCY0IjQldCS0JjQiyDQoNCQ0JTQntCI0JrQngor0J3QmNCa0J7QlNCY0IjQldCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0J3QmNCa0J7QlNCY0J3QntCS0KHQmtCYINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQp9CY0Isg0JHQm9CQ0JbQngor0J3QmNCa0J7Qm9Cn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQp9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J3QmNCa0J7Qm9Cn0JjQnSDQnNCY0JvQntCoCivQndCY0JrQntCb0KfQmNCdINCc0JjQoNCI0JDQndCQCivQndCY0JrQntCb0JDQqNCV0JIg0JHQntCg0JjQktCe0IgKK9Cd0JjQmtCe0JvQkNCo0JXQkiDQiNCe0JLQkAor0J3QmNCa0J7Qm9CQ0KjQldCSINCJ0KPQkdCe0JzQmNCgCivQndCY0JrQntCb0JDQqNCV0JIg0JzQkNCi0JjQm9CU0JAKK9Cd0JjQmtCe0JvQkNCo0JXQkiDQndCQ0JTQkAor0J3QmNCa0J7Qm9CQ0IjQldCSINCI0JXQm9CV0J3QkAor0J3QmNCa0J7Qm9CQ0IjQldCSINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQkNCI0JXQkiDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JjQoNCV0J3QkAor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiCDQkNCa0JDQlNCV0JzQodCa0Jgg0KHQm9CY0JrQkNCgCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQndCY0JrQntCb0JDQiNCV0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQldCi0JjQiyDQkdCe0KDQkAor0J3QmNCa0J7Qm9CV0KLQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCU0KPQqNCQ0J3QmtCQCivQndCY0JrQntCb0JXQotCY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCd0JrQkAor0J3QmNCa0J7Qm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CV0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0KHQmNCc0J4KK9Cd0JjQmtCe0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCY0JrQntCb0JXQotCY0Isg0JLQmNCUCivQndCY0JrQntCb0JXQotCY0Isg0JfQntCg0JDQnQor0J3QmNCa0J7Qm9CY0KfQmNCdINCR0KDQkNCd0JrQngor0J3QmNCa0J7Qm9CY0KfQmNCdINCU0JDQndCY0JvQngor0J3QmNCa0J7Qm9CY0KfQmNCdINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCoINCU0KDQkNCT0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCoINCV0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCoINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLLdCn0JDQitCYINCR0JDQoNCR0JDQoNCQCivQndCY0JrQntCb0JjQiy3QqNCY0JrQntCf0JDQoNCY0IjQkCDQndCV0JLQldCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0IvQmNCg0JjQm9CeCivQndCY0JrQntCb0JjQiyDQltCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQltCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQltCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQltCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQltCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQltCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQltCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQltCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQltCY0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCe0KDQkNCUCivQndCY0JrQntCb0JjQiyDQltCY0JLQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QotCQCivQndCY0JrQntCb0JjQiyDQltCY0JLQntCi0JAKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUg0J/QoNCe0KTQldCh0J7QoAor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQntCg0ILQlQor0J3QmNCa0J7Qm9CY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0ILQo9Cg0JAKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCQCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLLdCQ0JvQldCa0KHQntCS0KHQmtCYINCh0JvQkNCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCQ0J3QlNCg0JjQiNCQCivQndCY0JrQntCb0JjQiyDQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JDQndCa0JjQptCQCivQndCY0JrQntCb0JjQiy3QkdCQ0IjQqNCV0JIg0KHQotCQ0J3QmtCQCivQndCY0JrQntCb0JjQiyDQkdCY0InQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCR0JjQodCV0KDQmtCQCivQndCY0JrQntCb0JjQiyDQkdCe0KjQmtCeCivQndCY0JrQntCb0JjQiyDQkdCe0KjQmtCeCivQndCY0JrQntCb0JjQiyDQkdCe0KjQmtCeCivQndCY0JrQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0J4KK9Cd0JjQmtCe0JvQmNCLINCR0J7Qk9CU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JHQntCI0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QoNCQCivQndCY0JrQntCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQndCY0JrQntCb0JjQiyDQkdCe0KDQmNCS0J7QiAor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmtCeCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQo9CU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCm0JLQldCi0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCm0JLQmNCI0JXQotCQCivQndCY0JrQntCb0JjQiy3Qj9CQ0JLQldCgINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QmNCa0J7Qm9CY0Isg0JTQkNCc0IjQkNCdCivQndCY0JrQntCb0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCQCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCV0JsKK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCY0IjQldCbCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCY0JvQngor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JrQngor0J3QmNCa0J7Qm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JDQktCe0KDQmNCdCivQndCY0JrQntCb0JjQiyDQlNCV0IjQkNCdCivQndCY0JrQntCb0JjQiyDQlNCV0KHQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQndCY0JrQntCb0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQngor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQndCY0JrQntCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JrQngor0J3QmNCa0J7Qm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCV0JzQmNCbCivQndCY0JrQntCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCT0J7QoNCU0JDQndCQCivQndCY0JrQntCb0JjQiyDQpdCY0JvQlNCQCivQndCY0JrQntCb0JjQiyDQpdCg0JjQodCi0JjQndCQCivQndCY0JrQntCb0JjQiyDQmNCb0JjQiNCQCivQndCY0JrQntCb0JjQiyDQmNCh0JjQlNCe0KAKK9Cd0JjQmtCe0JvQmNCLINCY0JLQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JjQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCY0JLQngor0J3QmNCa0J7Qm9CY0Isg0IjQkNCS0J7QoNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQpNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQpNCi0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQpNCi0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQm9CV0J3QkAor0J3QmNCa0J7Qm9CY0Isg0IjQldCb0JXQndCQCivQndCY0JrQntCb0JjQiyDQiNCV0JvQmtCQCivQndCY0JrQntCb0JjQiyDQiNCV0JvQmtCQCivQndCY0JrQntCb0JjQiyDQiNCe0KbQkAor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0IjQntCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQndCY0JrQntCb0JjQiyDQiNCj0JvQmtCQCivQndCY0JrQntCb0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQndCY0JrQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JrQkNCi0JjQptCQCivQndCY0JrQntCb0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQndCY0JrQntCb0JjQiyDQmtCe0KHQotCQCivQndCY0JrQntCb0JjQiyDQmtCg0KHQotCQINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCa0KDQodCi0JAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCb0JDQl9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCJ0JjQidCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0InQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQidCY0InQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQndCY0JrQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JvQo9CI0JfQkAor0J3QmNCa0J7Qm9CY0Isg0JvQo9Ca0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQndCe0IjQm9CeCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQk9CY0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmtCeCivQndCY0JrQntCb0JjQiyDQnNCV0JvQkNCd0JjQiNCQINCh0KLQntCc0JDQotCe0JvQntCTCivQndCY0JrQntCb0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQndCY0JrQntCb0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCo0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JXQktCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQlQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JUKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CVCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JjQptCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmtCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmtCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCoCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCoCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCoCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCoCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCoCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCI0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Cj0KLQmNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCc0JjQotCQCivQndCY0JrQntCb0JjQiyDQnNCY0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JvQkNCU0JXQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JvQkNCU0JXQnQor0J3QmNCa0J7Qm9CY0Isg0JzQntCc0KfQmNCb0J4KK9Cd0JjQmtCe0JvQmNCLLdCc0KPQqNCY0KbQmtCYINCU0JDQoNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCV0JbQlNCQCivQndCY0JrQntCb0JjQiyDQndCV0JHQntCI0KjQkAor0J3QmNCa0J7Qm9CY0Isg0J3QldCU0JXQidCa0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JXQlNCV0InQmtCeCivQndCY0JrQntCb0JjQiyDQndCV0JTQldCJ0JrQngor0J3QmNCa0J7Qm9CY0Isg0J3QldCd0JDQlCDQlNCgCivQndCY0JrQntCb0JjQiyDQndCV0J3QkNCUCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QntCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQndCe0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCd0J7QktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0J7Qm9CT0JAKK9Cd0JjQmtCe0JvQmNCLINCe0KHQnNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCf0JDQo9CdCivQndCY0JrQntCb0JjQiyDQn9CQ0JLQm9CVCivQndCY0JrQntCb0JjQiyDQn9CV0KDQkAor0J3QmNCa0J7Qm9CY0Isg0J/QldCg0J4KK9Cd0JjQmtCe0JvQmNCLINCf0JXQoNCh0JjQlNCQCivQndCY0JrQntCb0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCe0JXQpgor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0JDQoAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0JDQoAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0JDQoAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0KDQkAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0KDQkAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0KDQntCd0JjQiNCVCivQndCY0JrQntCb0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0J/QoNCS0J7QodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0JXQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCY0KHQkNCSCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0IjQmtCeCivQndCY0JrQntCb0JjQiyDQoNCQ0IjQmtCeCivQndCY0JrQntCb0JjQiyDQoNCQ0J3QmtCQCivQndCY0JrQntCb0JjQiyDQoNCQ0KLQmtCeINCc0KAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQotCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQo9CW0JAKK9Cd0JjQmtCe0JvQmNCLINCg0KPQltCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0KDQo9CW0JjQptCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCV0KLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0J4KK9Cd0JjQmtCe0JvQmNCLINCh0JXQi9CV0KDQmtCQCivQndCY0JrQntCb0JjQiyDQodCY0JzQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCc0JXQntCdCivQndCY0JrQntCb0JjQiyDQodCY0JzQldCj0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCd0JjQqNCQCivQndCY0JrQntCb0JjQiyDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCC0JDQndCQCivQndCY0JrQntCb0JjQiyDQodCb0JDQktCY0KjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCS0JrQngor0J3QmNCa0J7Qm9CY0Isg0KHQm9CQ0JLQndCQCivQndCY0JrQntCb0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQnNCY0InQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCh0J3QldCW0JDQndCQCivQndCY0JrQntCb0JjQiyDQodCe0KTQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCh0J7QpNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQntCk0JjQiNCQCivQndCY0JrQntCb0JjQiyDQodCf0JDQodCV0J3QmtCQCivQndCY0JrQntCb0JjQiyDQodCf0JDQodCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cd0JjQmtCe0JvQmNCLINCh0J/QkNCh0J7QiNCVCivQndCY0JrQntCb0JjQiyDQodCg0JXQotCQCivQndCY0JrQntCb0JjQiyDQodCg0JXQotCV0J3QmtCQCivQndCY0JrQntCb0JjQiyDQodCi0JDQndCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQodCi0JDQndCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCh0KLQkNCd0JrQngor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0KTQkNCd0JjQiNCQCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQntCI0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQo9CX0JDQndCQCivQndCY0JrQntCb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CY0Isg0KLQkNCc0JDQoNCQCivQndCY0JrQntCb0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KLQldCe0JTQntCgCivQndCY0JrQntCb0JjQiyDQotCV0J7QlNCe0KAKK9Cd0JjQmtCe0JvQmNCLINCi0JjQpdCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQotCY0KXQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KLQntCU0J7QoAor0J3QmNCa0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkiDQnNCgCivQndCY0JrQntCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQotCg0JXQndCn0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cd0JjQmtCe0JvQmNCLINCS0JXQmtCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCS0JXQm9CY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQldCJ0JrQniDQlNCgINCY0J3Qkwor0J3QmNCa0J7Qm9CY0Isg0JLQldCJ0JrQngor0J3QmNCa0J7Qm9CY0Isg0JLQldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCQCivQndCY0JrQntCb0JjQiyDQktCV0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JLQldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JLQldCh0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JLQmNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JjQotCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQktCY0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQkAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQoCDQlNCe0KbQldCd0KIKK9Cd0JjQmtCe0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQndCY0JrQntCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQktCj0JrQkNCo0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCX0JDQk9Ce0KDQmtCQCivQndCY0JrQntCb0JjQiyDQl9CU0KDQkNCS0JrQngor0J3QmNCa0J7Qm9CY0Isg0JfQlNCg0JDQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JfQntCg0JAKK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCa0JAKK9Cd0JjQmtCe0JvQmNCdINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQndCY0JrQntCb0JjQnSDQkNCd0JAKK9Cd0JjQmtCe0JvQmNCdINCR0KDQkNCd0JrQngor0J3QmNCa0J7Qm9CY0J0g0JTQoNCQ0JPQntCh0JvQkNCS0JAg0JTQoAor0J3QmNCa0J7Qm9CY0J0g0JTQo9Co0JjQptCQCivQndCY0JrQntCb0JjQnSDQldCg0JbQldCR0JXQogor0J3QmNCa0J7Qm9CY0J0g0JjQktCY0KbQkAor0J3QmNCa0J7Qm9CY0J0g0JvQkNCX0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Cd0JjQmtCe0JvQmNCdINCJ0KPQkdCY0KjQkAor0J3QmNCa0J7Qm9CY0J0g0JzQkNCg0JPQmNCi0JAKK9Cd0JjQmtCe0JvQmNCdINCc0JjQm9CQ0J0KK9Cd0JjQmtCe0JvQmNCdINCc0JjQm9CY0KbQkAor0J3QmNCa0J7Qm9CY0J0g0JzQmNCb0JjQktCe0IgKK9Cd0JjQmtCe0JvQmNCdINCc0JjQm9CY0JLQntCICivQndCY0JrQntCb0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQnSDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCdINCg0KPQltCY0KbQkAor0J3QmNCa0J7Qm9CY0J0g0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCdINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0J0g0KHQmNCd0JjQqNCQCivQndCY0JrQntCb0JjQnSDQodCi0JjQn9CQ0J0KK9Cd0JjQmtCe0JvQmNCdINCS0JXQodCd0JAKK9Cd0JjQmtCe0JvQmNCdINCS0JjQotCe0JzQmNCgCivQndCY0JrQntCb0J7QodCa0Jgg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0J7QodCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9Cd0JjQmtCe0JvQntCSINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQntCSINCR0J7QqNCa0J4KK9Cd0JjQmtCe0JvQntCSINCI0J7QptCQCivQndCY0JrQntCb0J7QkiDQiNCe0KbQkAor0J3QmNCa0J7Qm9Ce0JIg0InQo9CR0JjQptCQCivQndCY0JrQntCb0J7QkiDQndCY0J3QkAor0J3QmNCa0J7Qm9Ce0JIg0KDQkNCo0JAKK9Cd0JjQmtCe0JvQntCSINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9Ce0JIg0KHQotCe0IjQkNCdCivQndCY0JrQntCb0J7QkiDQotCe0JTQntCgCivQndCY0JrQntCb0J7QktCh0JrQmCDQmNCb0JjQiNCQCivQndCY0JrQntCb0J7QktCh0JrQmCDQnNCY0JvQkNCdCivQndCY0JrQntCi0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QmNCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQnNCg0JjQpdCi0JXQoCDQlNCg0JDQk9Cj0KLQmNCdCivQndCY0JzQoNCY0KXQotCV0KAg0JzQmNCb0JDQnQor0J3QmNCc0KDQmNCl0KLQldCgINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQnNCg0JjQpdCi0JXQoCDQktCb0JDQlNCQCivQndCY0J3Qp9CY0Isg0JHQmNCh0JXQoNCa0JAKK9Cd0JjQndCn0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cd0JjQndCn0JjQiyDQnNCY0JvQldCd0JrQngor0J3QmNCd0KfQmNCLINCf0JXQoNCeCivQndCY0J3QmNCLINCQ0JvQldCa0KHQkAor0J3QmNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQndCY0Isg0JzQkNCg0JrQngor0J3QmNCd0JjQiyDQnNCY0KDQmtCeCivQndCY0J3QmNCLINCg0JDQlNCe0IjQlQor0J3QmNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCd0JrQntCSINCW0JjQktCa0J4KK9Cd0JjQndCa0J7QkiDQgtCe0KDQgtCVCivQndCY0J3QmtCe0JIg0ILQntCg0ILQlQor0J3QmNCd0JrQntCSINCC0J7QoNCC0JUKK9Cd0JjQndCa0J7QkiDQkdCe0JbQmNCm0JAKK9Cd0JjQndCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQndCY0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J3QmNCd0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCd0JrQntCSINCU0J7QkdCg0JjQktCe0IgKK9Cd0JjQndCa0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0J3QmtCe0JIg0JTQo9Co0JDQnQor0J3QmNCd0JrQntCSINCU0KPQqNCQ0J0KK9Cd0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQndCY0J3QmtCe0JIg0JXQnNCY0JvQmNCI0JAKK9Cd0JjQndCa0J7QkiDQldCg0JbQldCR0JXQogor0J3QmNCd0JrQntCSINCI0JXQm9CY0KbQkAor0J3QmNCd0JrQntCSINCI0J7QktCQ0J0KK9Cd0JjQndCa0J7QkiDQiNCj0JvQmNCI0JDQnSDQnNCgCivQndCY0J3QmtCe0JIt0JrQntCc0JvQldCd0J7QkiDQlNCQ0J3QmNCm0JAg0JTQoAor0J3QmNCd0JrQntCSINCb0JDQl9CQ0KAKK9Cd0JjQndCa0J7QkiDQm9CQ0JfQkNCgCivQndCY0J3QmtCe0JIt0JvQldCC0JXQndCQ0KYg0IjQntCS0JDQndCa0JAg0JTQoAor0J3QmNCd0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQndCY0J3QmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cd0JjQndCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cd0JjQndCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cd0JjQndCa0J7QkiDQnNCY0JvQkNCd0JAKK9Cd0JjQndCa0J7QkiDQnNCY0JvQkNCdCivQndCY0J3QmtCe0JIg0JzQmNCb0JjQptCQCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QqAor0J3QmNCd0JrQntCSINCc0JjQm9Ce0KgKK9Cd0JjQndCa0J7QkiDQnNCY0JvQntCoCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cd0JjQndCa0J7QkiDQnNCY0JvQntCS0JDQnQor0J3QmNCd0JrQntCSINCc0JjQm9Cj0KLQmNCdCivQndCY0J3QmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQndCa0J7QkiDQnNCY0KDQmtCeCivQndCY0J3QmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0J3QmNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQndCQ0JTQkAor0J3QmNCd0JrQntCSINCd0JXQkdCe0IjQqNCQCivQndCY0J3QmtCe0JIg0J3QldCR0J7QiNCo0JAKK9Cd0JjQndCa0J7QkiDQndCY0JrQntCb0JAKK9Cd0JjQndCa0J7QkiDQntCb0JPQmNCm0JAKK9Cd0JjQndCa0J7QkiDQoNCQ0JTQmNCm0JAKK9Cd0JjQndCa0J7QkiDQodCQ0JLQldCi0JAg0JTQmNCf0Jsg0JjQndCTCivQndCY0J3QmtCe0JIg0KHQkNCS0JXQotCQCivQndCY0J3QmtCe0JIg0KHQm9CQ0JLQmtCeCivQndCY0J3QmtCe0JIg0KHQnNCY0InQkAor0J3QmNCd0JrQntCSINCh0J7QpNCY0IjQkAor0J3QmNCd0JrQntCSINCh0J/QntCc0JXQndCa0JAKK9Cd0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JjQndCa0J7QkiDQktCV0JvQmNCc0JjQoAor0J3QmNCd0JrQntCSINCS0JXQidCa0J4KK9Cd0JjQndCa0J7QkiDQktCV0KDQmNCm0JAKK9Cd0JjQndCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQndCY0J3QmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0J3QmNCd0JrQntCS0JjQiyDQqNCf0JjQoNCeCivQndCY0J3QmtCe0JLQmNCLINCo0J/QmNCg0J4KK9Cd0JjQndCa0J7QktCY0Isg0ILQo9Cg0JDQggor0J3QmNCd0JrQntCS0JjQiyDQgtCj0KDQkAor0J3QmNCd0JrQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cd0JjQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQndCY0J3QmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0J3QmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQCivQndCY0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0JXQoNCY0JrQkAor0J3QmNCd0JrQntCS0JjQiyDQk9CQ0JLQoNCQCivQndCY0J3QmtCe0JLQmNCLINCI0JDQndCa0J4KK9Cd0JjQndCa0J7QktCY0Isg0IjQntCI0JAKK9Cd0JjQndCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cd0JjQndCa0J7QktCY0Isg0JzQkNCg0JjQptCQCivQndCY0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cd0JjQndCa0J7QktCY0Isg0JzQmNCL0J4KK9Cd0JjQndCa0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cd0JjQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QmNCd0JrQntCS0JjQiyDQnNCY0JvQntCoCivQndCY0J3QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0J3QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQndCa0J7QktCY0Isg0J/QldCg0JAKK9Cd0JjQndCa0J7QktCY0Isg0J/QldCg0J4KK9Cd0JjQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCd0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQndCY0J3QmtCe0JLQmNCLINCh0KDQgtCQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQndCY0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J3QmNCd0JrQntCS0JjQiyDQktCV0KDQkAor0J3QmNCh0JjQnCDQlNCV0KHQkAor0J3QmNCh0KLQldCgINCV0JLQkAor0J3QmNCh0KLQntCgINCU0KDQkNCT0JDQnQor0J3QmNCh0KLQntCg0JDQnSDQgtCe0KDQgtCVCivQndCY0KHQotCe0KDQkNCdINCc0JjQm9CQ0J0KK9CK0JDQk9Ce0IjQldCSINCc0JjQm9CQ0JTQmNCdCivQitCQ0JPQoNCY0J0g0KHQm9CQ0JLQmNCm0JAKK9CK0JDQk9Cj0Jst0JTQntCa0JjQiyDQodCg0JHQmNCh0JvQkNCS0JAKK9CK0JDQk9Cj0Jsg0JTQo9Co0JDQnQor0IrQkNCg0JDQlNCYINCV0JLQk9CV0J3QmNCI0JUKK9CK0JDQoNCQ0JTQmCDQiNCQ0J3QmtCeCivQitCQ0KDQkNCU0Jgg0IjQntCS0JPQldCdCivQitCQ0KDQkNCU0Jgg0JzQkNCg0JjQiNCQCivQitCQ0KDQkNCU0Jgg0KHQntCk0JjQiNCQCivQitCQ0KDQmCDQqNCQ0J3QlNCe0KAKK9CK0JDQoNCYINCU0JXQltCVCivQitCV0JbQmNCLINCe0JHQoNCQ0JQKK9CK0JXQltCY0Isg0JfQktCe0J3QmtCeCivQitCV0JPQntCc0JjQoCDQgtCj0KDQngor0IrQldCT0J7QnNCY0KAg0InQo9CR0JjQndCa0JAg0JTQoCDQm9CV0JrQkNCgCivQitCV0JPQntCc0JjQoCDQnNCY0JvQkNCdCivQitCV0JPQntCc0JjQoCDQndCY0JrQntCb0JAKK9CK0JXQk9Ce0JzQmNCgINCd0J7QktCQ0JoKK9CK0JXQk9Ce0JLQkNCdINCW0JDQoNCa0J4KK9CK0JXQk9Ce0JLQkNCdINCI0J7QktCQ0J3QmtCQCivQitCV0JPQntCS0JDQnSDQnNCQ0KDQkAor0IrQldCT0J7QktCQ0J0g0JzQkNCg0JjQiNCQCivQitCV0JPQntCS0JDQnSDQnNCY0KDQmtCeCivQitCV0JPQntCS0JDQnSDQnNCY0KDQmtCeCivQitCV0JPQntCS0JDQnSDQodCi0J7QiNCQ0J3QmtCQCivQitCV0JPQntCS0JDQndCe0JLQmNCLINCV0JvQldCd0JAKK9CK0JXQk9Cg0JjQiyDQnNCQ0KDQmNCI0JAKK9CK0JXQk9Cg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IrQldCc0KfQntCaINCI0J7QltCV0KQKK9CK0JXQnNCe0JPQkCDQiNCj0KDQkNCICivQitCV0IrQmNCLINCS0JvQkNCU0J4KK9CK0JXQoNCT0JXQqCDQiNCQ0J3QntCoCivQitCV0KDQk9CV0Kgg0JzQkNCg0JjQiNCQCivQitCY0KDQlSDQodCi0JXQktCQ0J0KK9CK0JjQoNCI0JDQmiDQgtCe0KDQgtCVCivQitCY0KDQiNCQ0Jog0JvQldCe0J3QkAor0IrQmNCi0KDQmCDQmtCQ0KDQntCJCivQitCj0IrQmNCLINCc0JjQm9CV0JLQkAor0J3QntCn0JXQktCh0JrQkCDQktCV0JvQmNCa0JAKK9Cd0J7Qp9CV0JLQodCa0Jgg0JHQmNCJ0JDQndCQCivQndCe0KfQldCS0KHQmtCYINCg0JDQlNCVCivQndCe0JbQmNCm0JAg0KbQktCY0IjQldCi0JAKK9Cd0J7QltCY0KbQkCDQnNCY0JvQmNCS0J7QiNCVCivQndCe0JbQmNCd0JjQiyDQlNCQ0KDQkAor0J3QntCW0JjQndCY0Isg0InQo9CR0JjQptCQCivQndCe0JbQmNCd0JjQiyDQnNCY0JvQkNCdCivQndCe0JbQmNCd0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7Qm9CQINCi0JjQnNCK0JAKK9Cd0J7Qm9CY0J0g0ILQo9Cg0ILQmNCd0JrQkAor0J3QntCd0JjQnSDQkNCd0ILQldCb0JrQkAor0J3QntCd0JjQnSDQlNCj0KjQkNCdCivQndCe0J3QmNCdINCc0JjQm9Ce0KDQkNCUCivQndCe0J3QmNCdINCd0JjQmtCe0JvQkAor0J3QntCd0JjQnSDQodCe0IrQkAor0J3QntCd0JjQnSDQktCY0KLQntCc0JjQoAor0J3QntCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCe0KHQkNCaINCC0J7QoNCC0JUKK9Cd0J7QodCQ0Jog0JzQmNCa0JvQntCoCivQndCe0KHQkNCJINCc0JjQqNCQCivQndCe0KHQldCaINCV0JLQmNCm0JAKK9Cd0J7QodCV0Jog0KTQoNCQ0IrQkAor0J3QntCh0JXQmiDQmtCQ0KDQm9CeCivQndCe0KHQldCaINCa0KHQldCd0JjQiNCQCivQndCe0KHQldCaINCX0J7QoNCQ0J0KK9Cd0J7QodCe0IrQmNCdINCb0JXQndCa0JAKK9Cd0J7QodCe0IrQmNCdINCc0JjQm9CQ0J0KK9Cd0J7QodCe0IrQmNCdINCh0JDQktCQCivQndCe0KHQntCS0JjQiyDQgtCe0KDQgtCVCivQndCe0KHQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0J7QodCe0JLQmNCLINCI0JDQndCa0J4KK9Cd0J7QodCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0J7QodCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0J7QodCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cd0J7QotCQINCI0JDQndCa0J4KK9Cd0J7QotCQ0KDQntCoINCU0JDQoNCY0J3QmtCQCivQndCe0KLQkNCg0J7QqCDQlNCV0IjQkNCdCivQndCe0KLQkNCg0J7QqCDQnNCY0JvQkNCdCivQndCe0KLQpdCe0KQg0JXQktCQCivQndCe0KLQpdCe0KQg0JfQntCb0KLQkNCdCivQndCe0JLQp9CY0Isg0JHQo9CU0JjQnNCY0KAKK9Cd0J7QktCn0JjQiyDQlNCQ0JzQitCQ0J0KK9Cd0J7QktCn0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQp9CY0Isg0KHQotCQ0J3QkAor0J3QntCS0KfQmNCLINCh0KLQkNCd0JAKK9Cd0J7QktCn0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J3QntCS0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0J7QktCQ0KfQmNCLINCC0KPQoNCQCivQndCe0JLQkNCn0JjQiyDQgtCj0KDQngor0J3QntCS0JDQp9CY0Isg0J/QldCg0KHQmNCU0JAKK9Cd0J7QktCQ0Jog0ILQntCg0ILQlQor0J3QntCS0JDQmiDQkNCd0JTQoNCY0IjQkAor0J3QntCS0JDQmiDQkNCd0KLQkNCbCivQndCe0JLQkNCaINCR0J7QqNCa0J4KK9Cd0J7QktCQ0Jog0JTQoNCQ0JPQmNCm0JAKK9Cd0J7QktCQ0Jog0JTQo9Co0JDQndCa0JAKK9Cd0J7QktCQ0Jog0KTQoNCQ0IrQkAor0J3QntCS0JDQmiDQmNCo0KLQktCQ0J0KK9Cd0J7QktCQ0Jog0JjQoNCV0J3QkAor0J3QntCS0JDQmiDQmNCS0JDQnQor0J3QntCS0JDQmiDQiNCQ0J3QkAor0J3QntCS0JDQmiDQiNCQ0J3QntCoCivQndCe0JLQkNCaINCI0J7QodCY0J8KK9Cd0J7QktCQ0Jog0IjQntCh0JjQnwor0J3QntCS0JDQmiDQiNCe0JLQkNCdCivQndCe0JLQkNCaINCb0JDQlNCY0KHQm9CQ0JIg0JzQoAor0J3QntCS0JDQmiDQm9CQ0KHQm9CeCivQndCe0JLQkNCaINCb0JDQl9CQ0KAKK9Cd0J7QktCQ0Jog0InQo9CR0J7QnNCY0KAKK9Cd0J7QktCQ0Jog0JzQkNCg0JPQmNCi0JAKK9Cd0J7QktCQ0Jog0JzQkNCg0JjQiNCQCivQndCe0JLQkNCaINCc0JDQotCY0JvQlNCQCivQndCe0JLQkNCaINCc0JjQpdCQ0IkKK9Cd0J7QktCQ0Jog0J3QkNCd0JTQntCgCivQndCe0JLQkNCaINCd0JjQmtCe0JvQkAor0J3QntCS0JDQmiDQodCb0JDQktCa0JAKK9Cd0J7QktCQ0Jog0KHQotCV0JLQkNCdCivQndCe0JLQkNCaINCh0KLQldCS0JDQnQor0J3QntCS0JDQmiDQodCi0IjQldCf0JDQnQor0J3QntCS0JDQmiDQotCY0JHQntCgCivQndCe0JLQkNCaLdCS0JDQiNCU0JAg0InQmNCJ0JDQndCQCivQndCe0JLQkNCaINCS0JDQodCY0JvQmNCI0JAKK9Cd0J7QktCQ0Jog0JLQldCg0JAKK9Cd0J7QktCQ0Jog0JLQldCg0J7QndCQCivQndCe0JLQkNCaINCS0JjQmtCi0J7QoAor0J3QntCS0JDQmtCe0JIg0KfQldCU0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCSINCQ0J3QgtCV0JvQmtCeCivQndCe0JLQkNCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRINCc0KAKK9Cd0J7QktCQ0JrQntCSINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCSINCT0J7QoNCU0JDQndCQCivQndCe0JLQkNCa0J7QkiDQk9Ce0KHQn9CQ0JLQkCDQlNCgCivQndCe0JLQkNCa0J7QkiDQiNCV0JvQmNCm0JAKK9Cd0J7QktCQ0JrQntCSINCb0JDQl9CQ0KAKK9Cd0J7QktCQ0JrQntCSINCJ0KPQkdCY0J3QmtCQCivQndCe0JLQkNCa0J7QkiDQidCj0JHQntCc0JjQoAor0J3QntCS0JDQmtCe0JIg0JzQkNCg0JjQndCQCivQndCe0JLQkNCa0J7QkiDQnNCY0JvQkNCdCivQndCe0JLQkNCa0J7QkiDQnNCY0JvQmNCm0JAKK9Cd0J7QktCQ0JrQntCSINCc0JjQm9CY0JLQntCICivQndCe0JLQkNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0J3QntCS0JDQmtCe0JIg0J3QkNCU0JAKK9Cd0J7QktCQ0JrQntCSINCf0KDQldCU0KDQkNCTCivQndCe0JLQkNCa0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J3QntCS0JDQmtCe0JIg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCe0JLQkNCa0J7QkiDQodCQ0JLQkAor0J3QntCS0JDQmtCe0JIg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCSINCh0KDQkdCY0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCSINCh0KDQldCi0JXQnQor0J3QntCS0JDQmtCe0JIg0KHQoNCV0KLQldCdCivQndCe0JLQkNCa0J7QkiDQodCi0JXQktCQ0J0g0JTQoAor0J3QntCS0JDQmtCe0JIg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QkiDQktCQ0JvQldCg0JjQiNCQCivQndCe0JLQkNCa0J7QkiDQktCV0KHQldCb0JjQnQor0J3QntCS0JDQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQltCY0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0J3QntCS0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cd0J7QktCQ0JrQntCS0JjQiyDQgtCj0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCC0KPQoNCeCivQndCe0JLQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCQ0J3QkAor0J3QntCS0JDQmtCe0JLQmNCLINCQ0J3QmtCQCivQndCe0JLQkNCa0J7QktCY0Isg0JHQntCo0JrQniDQlNCgINCf0KDQntCkCivQndCe0JLQkNCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQptCS0JXQotCa0J4g0JTQoAor0J3QntCS0JDQmtCe0JLQmNCLINCm0JLQmNCI0JXQotCQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQpNCg0JDQitCeCivQndCe0JLQkNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQk9Ce0KDQmNCm0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQk9Cg0J7Ql9CU0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQmNCd0ILQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JrQntCh0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0J3QntCS0JDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J3QntCS0JDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCo0J4KK9Cd0J7QktCQ0JrQntCS0JjQiy3QnNCY0JTQmCDQlNCY0JLQndCQINCU0JjQn9CbINCi0KPQoNCY0JfQnAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQiNCe0JTQoNCQ0JMKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCoCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QntCS0JDQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J3QntCS0JDQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQndCe0JLQkNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQntCb0JjQktCV0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiy3Qn9Cb0JDQktCo0JjQiyDQiNCV0JvQldCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQngor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCd0JrQngor0J3QntCS0JDQmtCe0JLQmNCLINCg0J7QodCQ0J3QmtCQCivQndCe0JLQkNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCQ0JLQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0J3QntCS0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0J/QkNCh0J7QiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0J3QntCS0JDQmtCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCeCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JLQldCb0JjQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCV0KHQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQndCe0JLQkNCa0J7QktCY0Isg0JLQmNCi0JrQngor0J3QntCS0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQndCe0JLQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JfQntCg0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cd0J7QktCY0KfQmNCLINCc0JjQm9Ce0KgKK9Cd0J7QktCY0Isg0KfQldCU0J4KK9Cd0J7QktCY0Ist0KfQo9CJ0JDQmiDQidCj0JHQmNCm0JAKK9Cd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCe0JLQmNCLINCc0JjQotCQ0KAKK9Cd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQmNCLINCf0JDQndCi0JXQm9CY0IjQkAor0J3QntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J3QntCS0JjQiyDQotCe0JzQkAor0J3QntCS0JjQiyDQktCb0JDQiNCa0J4KK9Cd0J7QktCY0KbQmtCYINCQ0JvQldCa0KHQkAor0J3QntCS0JjQmtCe0JIg0JLQldCg0JAKK9Cd0J7QktCY0J3QpiDQmNCS0JDQnQor0J3QntCS0JjQotCe0JLQmNCLINCc0JDQoNCa0J4KK9Cd0J7QktCa0J7QkiDQltCY0JLQntCI0JjQnQor0J3QntCS0JrQntCSINCU0J7QkdCg0JjQm9CQCivQndCe0JLQmtCe0JIg0JPQkNCS0KDQkAor0J3QntCS0JrQntCSINCI0J7QktCQ0J0KK9Cd0J7QktCa0J7QkiDQnNCY0JvQkNCdCivQndCe0JLQmtCe0JIg0J3QkNCU0JAKK9Cd0J7QktCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0J7QktCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0J7QktCa0J7QkiDQl9CQ0JPQntCg0JrQkAor0J3QntCS0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCe0JLQmtCe0JLQmNCLINCQ0J3QmtCQCivQndCe0JLQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J3QntCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QntCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0J3QntCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmtCe0JLQmNCLINCV0JvQpNCg0JjQlNCQCivQndCe0JLQmtCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0J3QntCS0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0JLQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQndCe0JLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0J7QktCa0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cd0J7QktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QntCS0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QntCS0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J3QntCS0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J3QntCS0JrQntCS0JjQiyDQndCQ0JTQkAor0J3QntCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkCDQlNCgCivQndCe0JLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J3QntCS0JrQntCS0JjQiyDQoNCe0KHQkAor0J3QntCS0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9Cd0J7QktCa0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQndCe0JLQmtCe0JLQmNCLINCS0JvQkNCU0JAKK9Cd0J7QktCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cd0J7QktCe0KHQldCbINCT0J7QoNCU0JDQndCQCivQndCe0JLQntCh0JXQmyDQnNCQ0KDQmNCI0JAKK9Cd0J7QktCe0KHQldCbINCd0JDQlNCQCivQndCe0JLQntCh0JXQmyDQoNCQ0IjQmtCeCivQndCe0JLQntCh0JXQm9CQ0KYg0JrQkNCi0JjQptCQCivQndCe0JLQntCh0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQndCe0JLQntCh0JXQm9CQ0KYg0JfQktCe0J3QmNCc0JjQoAor0J3QntCS0J7QodCV0InQkNCn0JrQmCDQnNCY0JvQmNCS0J7QiAor0J3QntCS0J7QodCV0JvQntCS0KHQmtCYINCQ0J3Qk9CV0JsKK9Cd0J7QktCe0KIg0JvQkNCU0JjQodCb0JDQkgor0J3QntCS0J7QoiDQn9CQ0JLQm9CVCivQndCe0JLQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0J3QntCS0J7QktCY0Isg0JHQkNCi0KDQmNCLCivQndCe0JLQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cd0J7QktCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QntCS0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0J7QktCe0JLQmNCLINCc0JjQndCQCivQndCe0JLQntCS0JjQiyDQndCQ0JTQkAor0J3QntCS0J7QktCY0Isg0JLQm9CQ0JTQngor0J3QntCS0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQndCe0JLQotCQINCd0JjQmtCe0JvQkCDQlNCgCivQndCe0JLQotCQINCS0JvQkNCU0JjQnNCY0KAKK9Cd0J7QktCi0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J3Qo9CW0JTQmNCLINCc0JjQm9CQ0J0KK9Cd0KPQltCU0JjQiyDQntCR0KDQkNCUCivQndCj0JHQldCgINCQ0J3QkAor0J3Qo9CU0JjQiyDQgtCe0KDQgtCVCivQndCj0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0KPQpdCYINCk0JXQktCX0JgKK9Cd0KPQpdCYINCl0JDQiNCU0JDQnQor0J3Qo9Cl0Jgg0JfQldCa0JjQiNCQCivQndCj0JrQkCDQpdCQ0KHQkNCdCivQndCj0JrQmNCLINCQ0InQngor0J3Qo9Ca0JjQiyDQj9CV0JLQkNCUCivQndCj0JrQmNCLINCa0JDQndCY0KLQkAor0J3Qo9Ca0JjQiyDQntCc0JXQoAor0J7Qp9CV0J3QkNCoINCJ0KPQlNCc0JjQm9CQCivQntCn0JrQkNCI0Jgg0JjQqNCi0JLQkNCdCivQntCn0JrQniDQktCY0JvQpdCV0JvQnAor0J7Qp9Ce0JLQkNCIINCR0J7QltCV0J3QmtCQCivQntCn0J7QktCQ0Igg0JfQo9CX0JDQndCQCivQntCo0JDQnyDQiNCV0JvQldCd0JAKK9Ce0KjQkNCfINCI0J7QktCQ0J0KK9Ce0KjQmtCV0KDQoiDQkNCd0JrQkAor0J7QqNCi0KDQmNCLINCc0JjQm9CVINCU0JjQn9CbINCY0J3Qkwor0J7QqNCi0KDQmNCa0JAg0JbQkNCg0JrQngor0J7QqNCi0KDQmNCa0JAg0JbQkNCg0JrQngor0J7QqNCi0KDQmNCa0JAg0JTQkNCg0JjQndCa0JAKK9Ce0JbQldCT0J7QktCY0Isg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ce0JbQldCT0J7QktCY0Isg0JHQntCo0JrQngor0J7QltCV0JPQntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQntCW0JXQk9Ce0JLQmNCLINCU0JDQndCVCivQntCW0JXQk9Ce0JLQmNCLINCU0KDQkNCT0JAKK9Ce0JbQldCT0J7QktCY0Isg0JvQkNCX0JDQoAor0J7QltCV0JPQntCS0JjQiyDQnNCY0KDQmtCeCivQntCW0JXQk9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQntCW0JXQk9Ce0JLQmNCLINCd0JXQktCV0J3QmtCQCivQntCW0JXQk9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J7QltCV0JPQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQntCW0JXQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9Ce0JbQktCQ0KIg0IjQkNCh0JzQmNCd0JAKK9Ce0JbQktCQ0KIg0IjQkNCh0JzQmNCd0JAKK9Ce0JbQktCQ0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0J7QltCS0JDQoiDQntCd0JTQoNCV0IgKK9Ce0ILQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQntCR0KjQo9Ch0KIg0IjQkNCd0JrQngor0J7QkdCQ0JTQntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQntCR0JDQlNCe0JIg0JzQmNCb0JUKK9Ce0JHQkNCU0J7QkiDQndCQ0KLQkNCb0JjQiNCQCivQntCR0JDQlNCe0JIg0KHQm9CQ0JLQmtCeCivQntCR0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQntCR0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0J7QkdCQ0JTQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Ce0JHQkNCU0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQntCR0JDQlNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCR0JDQlNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQntCR0JXQoNCc0JDQiNCV0KAg0KTQoNCQ0IrQkAor0J7QkdCV0KDQnNCQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCR0JXQoNCiINCk0KDQkNCd0KYKK9Ce0JHQiNCV0JTQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ce0JHQm9CV0KjQp9Cj0Jog0JDQndCa0JAKK9Ce0JHQm9CV0KjQp9Cj0Jog0JDQndCa0JAKK9Ce0JHQm9CV0KjQp9Cj0Jog0JTQoNCQ0JPQmNCo0JAKK9Ce0JHQm9CV0KjQp9Cj0Jog0JPQoNCV0JPQntCgCivQntCR0JvQldCo0KfQo9CaINCc0JDQoNCY0IjQkAor0J7QkdCe0KfQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ce0JHQoNCQ0JTQntCSINCT0J7QoNCU0JDQndCQCivQntCR0KDQkNCU0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J7QkdCg0JDQlNCe0JIg0InQo9CR0JjQqNCQCivQntCR0KDQkNCU0J7QkiDQidCj0JHQmNCo0JAKK9Ce0JHQoNCQ0JTQntCSINCc0JjQm9CQ0J0KK9Ce0JHQoNCQ0JTQntCSINCc0JjQm9Ce0KDQkNCUCivQntCR0KDQkNCU0J7QkiDQndCQ0JTQkAor0J7QkdCg0JDQlNCe0JIg0J3QntCS0JDQmgor0J7QkdCg0JDQlNCe0JIg0KDQkNCU0JjQktCe0IgKK9Ce0JHQoNCQ0JTQntCSINCg0JDQlNCc0JjQm9CQCivQntCR0KDQkNCU0J7QkiDQodCi0J7QiNCQ0J3QmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQltCY0JLQmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JbQmNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCC0J7QoNCC0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCe0KDQgtCVCivQntCR0KDQkNCU0J7QktCY0Isg0ILQntCg0ILQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCC0KPQoNCC0JjQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0ILQo9Cg0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCj0KDQngor0J7QkdCg0JDQlNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JDQndCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JHQntCT0JTQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JHQntCT0JTQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7QoNCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCR0KPQlNCeCivQntCR0KDQkNCU0J7QktCY0Isg0JTQkNCd0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQntCR0KDQkNCU0J7QktCY0Isg0JTQkNCd0JjQm9CeINCU0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCc0JjQotCQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQntCR0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQk9Cb0JjQqNCQCivQntCR0KDQkNCU0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCY0JvQmNCI0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCI0J7QktCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0IjQntCS0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQm9CQ0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JvQmNCU0JjQiNCQCivQntCR0KDQkNCU0J7QktCY0Isg0InQmNCJ0JDQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0InQmNCJ0JDQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0InQmNCJ0JDQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0InQo9CR0JjQqNCQCivQntCR0KDQkNCU0J7QktCY0Isg0InQo9CR0J7QlNCg0JDQkwor0J7QkdCg0JDQlNCe0JLQmNCLINCb0KPQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQkNCg0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JXQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CVCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JjQptCQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ca0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCoCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0KPQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0KDQkNCoCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQmNCf0Jsg0JjQndCTCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCg0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCQ0JTQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQntCR0KDQkNCU0J7QktCY0Isg0J3QldCU0JXQidCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JXQndCQ0JQg0JTQoCDQm9CV0JrQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQntCR0KDQkNCU0J7QktCY0Isg0J/QldCi0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J7QkdCg0JDQlNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQntCR0KDQkNCU0J7QktCY0Isg0KDQkNCi0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCg0J7QodCQCivQntCR0KDQkNCU0J7QktCY0Isg0KHQkNCS0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiy3QodCY0JrQmNCc0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQntCR0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCQ0J0g0JTQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQldCS0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQotCe0JTQntCgCivQntCR0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQktCV0KDQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQl9Cb0JDQotCY0KbQkAor0J7QkdCg0JXQpdCiINCf0JXQotCQ0KAKK9Ce0JHQoNCV0J3QmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ce0JHQoNCV0J3QmNCLINCU0KDQkNCT0J4KK9Ce0JHQoNCV0J3QmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQntCR0KDQldCd0JjQiyDQnNCQ0J3QntCI0JvQlQor0J7QkdCg0JXQndCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ce0JHQoNCV0J3QmNCLINCc0JjQm9CV0JLQkAor0J7QkdCg0JXQndCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ce0JHQoNCV0J3QmNCLINCf0KDQldCU0KDQkNCTCivQntCR0KDQldCd0JjQiyDQoNCQ0JTQntCc0JDQnQor0J7QkdCg0JXQndCY0Isg0KHQndCV0JbQkNCd0JAKK9Ce0JHQoNCV0J3QntCSINCW0JjQktCQ0J0KK9Ce0JHQoNCV0J3QntCSINCW0JjQktCQ0J0KK9Ce0JHQoNCV0J3QntCSINCI0JXQm9CV0J3QkAor0J7QkdCg0JXQndCe0JIg0IjQldCS0KDQldCcCivQntCR0KDQldCd0J7QkiDQiNCe0JvQkNCd0JTQkAor0J7QkdCg0JXQndCe0JIg0JrQoNCj0J3QkAor0J7QkdCg0JXQndCe0JIg0J/QldCi0JDQoAor0J7QkdCg0JXQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Ce0JHQoNCV0J3QntCSINCh0JDQitCQCivQntCR0KDQldCd0J7QkiDQodCQ0JLQkAor0J7QkdCg0JXQndCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ce0JHQoNCV0J3QntCSINCh0KLQkNCd0JrQkAor0J7QkdCg0JXQndCe0JIg0KHQotCV0JLQkNCdCivQntCR0KDQldCd0J7QkiDQktCQ0KHQkAor0J7QkdCg0JXQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J7QkdCg0JXQndCe0JIg0JfQntCg0JjQptCQCivQntCR0KDQldCd0J7QkiDQl9Ce0KDQmNCm0JAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J7QkdCg0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J7QkdCg0JXQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQntCR0KDQldCd0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQntCR0KDQldCd0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCgCivQntCR0KDQldCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0JjQndCTCivQntCR0KDQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J7QkdCg0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J7QkdCg0JXQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ce0JHQoNCV0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J7QkdCg0JXQndCe0JLQmNCLINCS0JDQodCeCivQntCR0KDQldCd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQntCR0KDQmNCLINCT0J7QiNCa0J4KK9Ce0JHQoNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J7QkdCg0JrQndCV0JbQldCSINCC0J7QoNCC0JUKK9Ce0JHQoNCa0J3QldCW0JXQkiDQnNCY0JvQldCd0JrQngor0J7QkdCg0JrQndCV0JbQldCSINCg0JDQlNCc0JjQm9CQCivQntCR0KDQmtCd0JXQltCV0JIg0KDQkNCU0J7QiNCa0JAKK9Ce0JHQoNCa0J3QldCW0JXQkiDQodCi0JXQktCQ0J0KK9Ce0JHQoNCe0JLQkNCn0JrQmCDQlNCj0KjQmNCm0JAKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0J7QkdCg0J7QktCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQoNCQ0JTQlQor0J7QkdCg0J7QktCQ0KfQmtCYINCh0JLQldCi0J7Ql9CQ0KAKK9Ce0JHQoNCe0JLQkNCmINCc0JjQiNCQ0KIKK9Ce0JHQoNCe0JLQodCa0Jgg0ILQntCg0ILQlQor0J7QkdCg0J7QktCh0JrQmCDQlNCg0JDQk9Cj0KLQmNCdCivQntCR0KDQntCS0KHQmtCYINCY0JLQkNCdCivQntCR0KDQntCS0KHQmtCYINCI0J7QktCQ0J0KK9Ce0JHQoNCe0JLQodCa0Jgg0JrQkNCi0JjQptCQCivQntCR0KDQntCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQntCR0KDQntCS0KHQmtCYINCS0JDQodCQCivQntCR0KPQi9CY0J3QkCDQoNCQ0KLQntCc0JjQoAor0J7QkdCj0IvQmNCd0JAg0KHQm9CQ0JLQmtCeCivQntCR0KPQi9CY0J3QkCDQodCb0JDQktCe0InQo9CRCivQntCm0J7QmtCe0InQmNCLINCJ0KPQkdCY0J3QmtCeCivQntCP0JjQiyDQndCe0JLQmtCQCivQntCP0JjQiyDQoNCQ0KLQntCc0JjQoAor0J7Qj9CY0Isg0JfQntCg0JrQkAor0J7Qj9Ce0JLQodCa0Jgg0JjQm9CY0IjQkAor0J7QlNCQ0I/QmNCLINCU0KPQqNCQ0J0KK9Ce0JTQkNCP0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J7QlNCQ0I/QmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQntCU0JDQj9CY0Isg0J3QkNCU0JAKK9Ce0JTQkNCP0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J7QlNCQ0I/QmNCLINCh0KLQldCS0JDQnQor0J7QlNCQ0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ce0JTQkNCS0JjQiy3QiNCe0KHQmNCLINCI0JXQm9CY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9Ce0JTQkNCS0JjQiyDQnNCY0JvQmtCQCivQntCU0JDQktCY0Isg0KHQm9CQ0JLQmtCeCivQntCU0J7QoCDQiNCe0KHQmNCfCivQntCU0J7QktCY0Isg0IjQntCS0J4KK9Ce0JTQoNCYINCR0JDQm9CY0J3Qogor0J7QlNCg0Jgg0JrQkNCg0JvQngor0J7QpNCV0J3QkdCV0KXQldCgINCT0JjQl9CV0JvQkAor0J7QpNCV0J3QkdCV0KXQldCgINCS0JDQm9CV0KDQmNCI0JAKK9Ce0KTQldCd0JHQldCl0JXQoCDQktCV0KDQmNCm0JAKK9Ce0JPQkNCgINCI0JXQm9CV0J3QkAor0J7Qk9CQ0KAg0JLQm9CQ0JTQlQor0J7Qk9Cd0JXQndCe0JLQodCa0JAg0JHQntCI0JDQndCQCivQntCT0J3QldCd0J7QktCh0JrQkCDQptCS0JXQotCQ0J3QmtCQCivQntCT0IrQkNCd0JDQpiDQlNCg0JDQk9CY0KbQkAor0J7Qk9CK0JDQndCe0JIg0JzQmNCb0JXQotCQCivQntCT0IrQkNCd0J7QktCQ0KYg0JHQntCg0JjQodCb0JDQkgor0J7Qk9CK0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ce0JPQitCQ0J3QntCS0JjQiyDQkNCm0JAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J7Qk9CK0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0J7Qk9CK0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQntCT0IrQkNCd0J7QktCY0Isg0JTQnNCY0KLQkNCgCivQntCT0IrQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0J7Qk9CK0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQntCT0IrQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ce0JPQitCQ0J3QntCS0JjQiyDQntCT0IrQldCd0JAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQoNCQ0JTQntCI0JrQkCDQlNCgINCb0JXQmtCQ0KAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQntCT0IrQkNCd0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ce0JPQitCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQntCT0IrQldCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0JPQitCV0J3QntCS0JjQiyDQlNCQ0KDQkAor0J7Qk9CK0JXQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ce0JPQitCV0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J7Qk9CK0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J7Qk9CK0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J7Qk9CK0JXQndCe0JLQmNCLINCd0J7QktCa0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQntCT0IrQldCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQntCT0IrQldCd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQntCT0IrQldCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQntCT0IrQldCd0J7QktCY0Isg0KHQotCV0JLQngor0J7Qk9CK0JXQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ce0JPQntCg0JXQm9CY0KbQkCDQkdCY0JvQiNCQ0J3QkAor0J7Qk9Ce0KDQldCb0JjQptCQINCR0J7Qk9CU0JDQnQor0J7Qk9Ce0KDQldCb0JjQptCQINCR0KDQkNCd0JrQngor0J7Qk9Ce0KDQldCb0JjQptCQINCc0JDQoNCY0IjQkAor0J7Qk9Cg0JjQl9CV0Jog0JTQoNCQ0JPQmNCm0JAKK9Ce0JPQoNCY0JfQldCaINCU0KDQkNCT0KPQotCY0J0KK9Ce0JPQoNCY0JfQldCaINCa0KDQmNCh0KLQmNCd0JAKK9Ce0JPQoNCY0JfQldCaINCg0J7QkdCV0KDQogor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQntCT0KDQmNCX0J7QktCY0Isg0JHQntCg0JAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQntCT0KDQmNCX0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQlNCj0KjQkNCdCivQntCT0KDQmNCX0J7QktCY0Isg0InQo9CR0JjQptCQCivQntCT0KDQmNCX0J7QktCY0Isg0InQo9CR0JjQptCQCivQntCT0KDQmNCX0J7QktCY0Isg0JzQmNCb0JDQnQor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCc0JjQm9CVCivQntCT0KDQmNCX0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ce0JPQoNCY0JfQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQntCT0KDQmNCX0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQodCg0JXQotCQCivQntCT0KDQmNCX0J7QktCY0Isg0JLQldCJ0JrQngor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQl9Ce0KDQkNCdCivQntCI0JTQkNCd0JjQiyDQodCQ0JLQkAor0J7QiNCa0JjQiyDQodCb0JDQktCa0J4KK9Ce0JrQkNCo0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0J7QmtCQ0Iog0KHQotCV0JLQkNCdCivQntCa0JDQitCYINCb0JDQiNCe0KgKK9Ce0JrQkNCK0Jgg0J7QodCa0JDQoAor0J7QmtCQ0IrQmCDQoNCQ0J3QmtCQCivQntCa0JDQitCYINCi0JjQkdCe0KAKK9Ce0JrQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQntCa0JXQl9CQ0J0g0IjQntCS0JDQnQor0J7QmtCY0Ikg0KHQm9CQ0JLQmtCeCivQntCa0JjQidCV0JLQmNCLINCh0J7QpNCY0IjQkAor0J7QmtCJ0JXQqNCQINCd0JXQndCQ0JQKK9Ce0JrQidCV0KjQkCDQndCV0J3QkNCUCivQntCa0JvQntCR0I/QmNCI0JAg0JzQkNCg0JrQngor0J7QmtCg0JDQiNCd0J7QkiDQodCi0JXQktCQ0J0KK9Ce0JrQoNCj0JbQndCY0Jog0JTQoNCQ0JPQkNCdCivQntCa0KHQldCd0KTQldCb0JQg0IjQntCS0JDQnQor0J7QmtCj0JrQkCDQidCY0InQkNCd0JAKK9Ce0JrQo9Cb0JjQiyDQkdCe0JPQlNCQ0J0KK9Ce0JrQo9Cb0JjQiyDQl9Ce0KDQkNCdCivQntCb0KjQntCS0Jgg0J3QmNCa0J7Qm9CQCivQntCb0JDQpSDQqNCQ0J3QlNCe0KAKK9Ce0JvQkNClINCo0JDQndCU0J7QoAor0J7Qm9CQ0KUg0KjQkNCd0JTQntCgCivQntCb0JDQpSDQgtCe0KDQgtCVCivQntCb0JDQpSDQkNCd0JTQoNCY0IjQkAor0J7Qm9CQ0KUg0JXQoNCd0JAKK9Ce0JvQkNClINCk0JXQoNCV0J3Qpgor0J7Qm9CQ0KUg0KTQldCg0JXQndCmCivQntCb0JDQpSDQmNCo0KLQktCQ0J0KK9Ce0JvQkNClINCY0KjQotCS0JDQnQor0J7Qm9CQ0KUg0IjQldCb0JXQndCQCivQntCb0JDQpSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J7Qm9CQ0KUg0IjQntCS0JDQnQor0J7Qm9CQ0KUg0IjQo9Cb0JjQiNCQ0J3QkAor0J7Qm9CQ0KUg0JvQkNCh0JvQngor0J7Qm9CQ0KUg0JzQmNCg0JrQngor0J7Qm9CQ0KUg0J3QkNCd0JTQntCgCivQntCb0JDQpSDQndCQ0J3QlNCe0KAKK9Ce0JvQkNClINCf0JDQktCb0JUKK9Ce0JvQkNClINCf0JDQktCb0JUKK9Ce0JvQkNClINCg0J7Ql9CQ0JvQmNCI0JAKK9Ce0JvQkNClINCS0JjQndCm0JUKK9Ce0JvQkNCI0J7QqCDQkdCV0JvQkAor0J7Qm9CQ0IjQntCoINCT0J7QoNCU0JDQndCQCivQntCb0JDQiNCe0Kgg0IjQkNCd0J7QqAor0J7Qm9CQ0IjQntCoINCc0JjQpdCQ0IkKK9Ce0JvQkNCI0J7QqCDQnNCY0KXQkNCJCivQntCb0JDQiNCe0Kgg0J7QotCeCivQntCb0JDQoCDQn9CQ0KMKK9Ce0JvQkdCY0J3QkCDQodCb0JDQktCa0J4KK9Ce0JvQldCQ0KAg0JzQmNCl0JDQiNCb0J4KK9Ce0JvQldCQ0KAg0JzQmNCl0JDQiNCb0J4KK9Ce0JvQldCQ0KAg0KHQkNCK0JAKK9Ce0JvQldCQ0KAg0KHQktCV0KLQmNCh0JvQkNCSCivQntCb0JXQkNCgINCS0JvQkNCU0JAKK9Ce0JvQldCI0JDQoCDQiNCe0JDQmtCY0JwKK9Ce0JvQmNCn0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J7Qm9CY0KfQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Ce0JvQmNCLINCh0KLQldCS0JDQnQor0J7Qm9CY0JLQldCg0JjQiyDQndCV0JHQntCI0KjQkAor0J7QidCo0JXQktCh0JrQkCDQndCQ0KLQkNCo0JAKK9Ce0InQkNCn0JAg0JjQm9CY0IjQkAor0J7QidCQ0KfQkCDQnNCQ0KDQmNCm0JAKK9Ce0InQkNCn0JAg0JzQmNCb0JXQndCa0J4KK9Ce0InQkNCn0JAg0JzQmNCb0J7QktCQ0J0KK9Ce0InQkNCn0JAg0J3QmNCa0J7Qm9CQCivQntCJ0JDQp9CQINCg0JDQlNCQCivQntCJ0JDQp9CQINCh0JvQkNCS0J7QidCj0JEKK9Ce0InQkNCn0JAg0KHQotCQ0J3QmNCh0JvQkNCSCivQntCJ0JDQp9CQINCh0KLQldCS0JDQnQor0J7Qm9Cc0JDQnSDQnNCQ0KDQmNCI0JAKK9Ce0JvQo9Co0JrQmCDQlNCe0JHQoNCY0JvQkAor0J7Qm9Cj0KjQmtCYINCU0KPQqNCQ0J0KK9Ce0JvQo9Co0JrQmCDQlNCj0KjQkNCdCivQntCb0KPQqNCa0Jgg0JvQkNCX0JDQoAor0J7Qm9Cj0KjQmtCYINCc0JjQm9Cj0KLQmNCdCivQntCb0KPQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0J7Qm9Cj0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JvQo9Co0JrQmCDQntCb0JjQktCV0KDQkAor0J7Qm9Cj0KjQmtCYINCh0KLQntCI0JDQnQor0J7Qm9Cj0KjQmtCYINCi0J7QlNCe0KAKK9Ce0JvQo9Co0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQntCb0KPQqNCa0Jgg0JLQkNCh0JAKK9Ce0JvQo9Co0JrQmCDQktCV0JvQmNCc0JjQoCDQlNCgCivQntCb0KPQqNCa0Jgg0JLQldCg0JjQptCQCivQntCb0KPQiNCY0Isg0JjQktCQ0J3QkAor0J7Qm9Cj0IjQmNCLINCY0JLQkNCdCivQntCb0KPQiNCY0Isg0IjQldCb0JXQndCQCivQntCb0KPQiNCY0Isg0JzQmNCb0JjQptCQCivQntCb0KPQiNCY0Isg0JzQmNCg0JrQngor0J7QnNCn0JjQmtCj0KEg0JHQntCo0JrQngor0J7QnNCn0JjQmtCj0KEg0IjQldCb0JXQndCQCivQntCc0KfQmNCa0KPQoSDQnNCQ0JPQlNCQCivQntCc0KfQmNCa0KPQoSDQndCY0JrQntCb0JAKK9Ce0JzQp9CY0JrQo9ChINCg0JDQiNCa0J4KK9Ce0JzQkNCJ0JXQkiDQmNCS0JDQnQor0J7QnNCQ0InQldCSINCY0JLQkNCdCivQntCc0JDQidCV0JIg0IjQo9Cb0JrQkAor0J7QnNCQ0InQldCSINCb0JXQn9Ce0KHQkNCS0JAKK9Ce0JzQkNCJ0JXQkiDQm9CV0J/QntCh0JDQktCQCivQntCc0JDQidCV0JIg0JzQmNCb0JXQndCQCivQntCc0JDQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9Ce0JzQkNCJ0JXQkiDQktCe0IjQmNCh0JvQkNCSCivQntCc0JDQl9CY0Isg0KHQntCk0JjQiNCQCivQntCc0JXQoNCQ0JPQmNCLINCa0JXQnNCQ0JsKK9Ce0JzQldCg0Jgg0KXQkNCI0KDQo9CU0JjQnQor0J7QnNCV0KDQmCDQpdCQ0JvQmNCcCivQntCc0JXQoNCYINCl0JDQodCeCivQntCc0JXQoNCYINCd0JXQj9CQ0JQKK9Ce0JzQldCg0Jgg0J3Qo9Cg0KPQlNCY0J0KK9Ce0JzQldCg0JfQoyDQkNCd0KLQntCdCivQntCc0JXQoNCX0KMg0JXQm9CY0JfQkNCR0JXQotCQCivQntCc0JjQiyDQmNCU0KDQmNCXCivQntCc0J7QoNCQ0KYg0JrQkNCi0JDQoNCY0J3QkAor0J7QnNCe0KDQkNCmINCb0JDQotCY0J3QmtCQCivQntCd0KfQldCS0KHQmtCYINCI0J7QktCQ0J0KK9Ce0J3Qp9CjINCf0JXQotCQ0KAKK9Ce0J3QlNCg0JjQmiDQlNCj0KjQkNCd0JrQkAor0J7QndCV0KjQp9Cj0Jog0JzQmNCl0JDQiNCb0J4KK9Ce0J3QldCo0IvQo9CaINCd0JXQndCQ0JQKK9Ce0J3QpdCQ0KPQlyDQnNCQ0KDQmNCI0JAKK9Ce0J3QntCU0Jgg0JjQqNCi0JLQkNCdCivQntCf0JDQp9CQ0Jog0JDQndCi0KPQnQor0J7Qn9CQ0KfQkNCaINCY0JLQkNCdCivQntCf0JDQp9CY0Isg0JDQndCC0JAKK9Ce0J/QkNCn0JjQiyDQkNCd0JPQldCb0JjQndCQCivQntCf0JDQp9CY0Isg0JHQntCh0JjQidCa0JAKK9Ce0J/QkNCn0JjQiyDQkdCg0JDQndCa0J4KK9Ce0J/QkNCn0JjQiyDQlNCj0KjQkNCdCivQntCf0JDQp9CY0Isg0JrQntCh0KLQkAor0J7Qn9CQ0KfQmNCLINCc0JjQm9CQ0J0KK9Ce0J/QkNCn0JjQiyDQnNCY0JvQkNCdCivQntCf0JDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ce0J/QkNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0J7Qn9CQ0KfQmNCLINCc0JjQoNCa0J4KK9Ce0J/QkNCn0JjQiyDQnNCY0KDQmtCeCivQntCf0JDQp9CY0Isg0J3QldCd0JDQlAor0J7Qn9CQ0KfQmNCLINCf0JDQktCb0JUKK9Ce0J/QkNCn0JjQiyDQodCY0JzQngor0J7Qn9CQ0KfQmNCLINCh0JvQkNCS0JrQngor0J7Qn9CQ0KfQmNCLINCh0KLQldCS0JDQnQor0J7Qn9CQ0KfQmNCLINCi0J7QlNCe0KAKK9Ce0J/QkNCb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J7Qn9CQ0JvQmNCLINCc0JDQoNCa0J4KK9Ce0J/QkNCb0JjQiyDQndCY0JrQntCb0JAKK9Ce0J/QkNCb0JjQiyDQndCY0JrQntCb0JAKK9Ce0J/QkNCb0JjQiyDQndCY0JrQntCb0JAKK9Ce0J/QkNCb0JjQiyDQodCe0KTQmNCI0JAKK9Ce0J/QkNCd0KfQkNCg0JXQkiDQlNCj0KjQkNCdCivQntCf0JDQndCn0JDQoNCV0JIg0JjQktCQ0J0KK9Ce0J/QkNCd0KfQkNCg0JXQkiDQnNCY0JvQmtCQCivQntCf0JDQoNCd0JjQptCQINCJ0KPQkdCeCivQntCf0JDQoNCd0JjQptCQINCb0KPQmtCQCivQntCf0JDQoNCd0JjQptCQINCc0JDQmtCh0JjQnAor0J7Qn9CQ0KDQndCY0KbQkCDQnNCQ0JrQodCY0JwKK9Ce0J/QkNCg0J3QmNCm0JAg0JzQkNCa0KHQmNCcCivQntCf0JDQoNCd0JjQptCQINCc0JDQoNCY0J3QmtCeCivQntCf0JDQoNCd0JjQptCQINCc0JjQm9CV0J3QmtCeCivQntCf0JDQoNCd0JjQptCQINCc0JjQoNCQCivQntCf0JDQoNCd0JjQptCQINCh0J7QpNCY0IjQkAor0J7Qn9CQ0KDQndCY0KbQkCDQktCY0JQKK9Ce0J/QldCb0KYg0JvQkNCU0JjQodCb0JDQkgor0J7Qn9Ce0IjQm9CV0JLQmNCLINCb0JDQl9CQ0KAKK9Ce0J/QoNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J7Qn9Cg0JDQndCe0JLQmNCLINCc0JjQptCQCivQntCf0KDQldCo0J3QmNCaINCQ0J3QmtCY0KbQkAor0J7Qn9Cg0JjQiNCQ0J0g0JDQndCC0JXQm9Ca0J4g0JTQmNCf0Jsg0JjQndCTCivQntCf0KDQmNCI0JDQnSDQlNCg0JDQk9CQ0J0KK9Ce0J/QoNCY0IjQkNCdINCc0JjQm9Ca0JAKK9Ce0J/QoNCj0KYg0JzQmNCb0J7QoNCQ0JQKK9Ce0J/QodCV0J3QmNCm0JAg0JzQmNCb0JDQnQor0J7Qn9Ch0JXQndCY0KbQkCDQodCe0JrQkAor0J7QoNCn0JjQiyDQqNCY0JzQlQor0J7QoNCn0JjQiyDQqNCY0JzQlQor0J7QoNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0J7QoNCn0JjQiyDQlNCg0JDQk9CeCivQntCg0KfQmNCLINCY0JLQkNCdCivQntCg0KfQmNCLINCh0KLQiNCV0J/QkNCdCivQntCg0KjQmNCLINCC0J7QoNCC0JUKK9Ce0KDQqNCY0Isg0IjQntCm0JAKK9Ce0KDQqNCY0Isg0JzQmNCb0JjQptCQCivQntCg0KjQntCoINCC0J7QoNCC0JUKK9Ce0KDQqNCe0Kgg0JHQoNCQ0J3QmtCeCivQntCg0KjQntCoINCU0KDQkNCT0JDQnQor0J7QoNCo0J7QqCDQpNCV0KDQldCd0KYKK9Ce0KDQqNCe0Kgg0IjQntCh0JjQnwor0J7QoNCo0J7QqCDQndCY0JrQntCb0JAKK9Ce0KDQqNCe0Kgg0KDQntCX0JDQm9CY0IjQkAor0J7QoNCo0J7QqCDQodCQ0JLQkAor0J7QoNCo0J7QqCDQotCV0KDQldCX0JAKK9Ce0KDQqNCe0Kgg0JfQntCg0JDQnQor0J7QoNCo0J7Qm9CY0Isg0KHQotCI0JXQn9CQ0J0KK9Ce0KDQkNCd0JjQptCQINCc0JDQmtCh0JjQnAor0J7QoNCQ0JLQldCmINCR0KDQkNCd0JjQodCb0JDQkgor0J7QoNCQ0JLQldCmINCR0KDQkNCd0JrQngor0J7QoNCQ0JLQldCmINCc0JDQoNCa0J4KK9Ce0KDQkNCS0JXQpiDQn9CQ0JLQm9CVCivQntCg0JHQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQntCg0JHQkNCdINCV0JzQmNCb0JjQiNCQCivQntCg0JHQkNCdINCT0JDQktCg0JAKK9Ce0KDQkdCQ0J0g0JLQldCh0J3QkAor0J7QoNCU0JDQndCe0KHQmtCYINCI0JXQm9CV0J3QkAor0J7QoNCU0JjQndCQ0KfQldCSINCC0J7QoNCC0JUKK9Ce0KDQlNCY0J3QkNCn0JXQkiDQnNCb0JDQlNCV0J0KK9Ce0KDQlNCY0J3QkNCn0JXQkiDQotCe0JTQntCgCivQntCg0JTQmNCd0JDQp9CV0JIg0KLQntCU0J7QoAor0J7QoNCU0JjQndCQ0KfQldCSINCi0J7QlNCe0KAKK9Ce0KDQldCo0KfQkNCd0JjQnSDQkdCe0JPQlNCQ0J0KK9Ce0KDQldCo0KfQkNCd0JjQnSDQkdCg0JDQndCa0J4KK9Ce0KDQldCo0KfQkNCd0JjQnSDQnNCY0JvQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0JzQmNCb0J7QktCQ0J0KK9Ce0KDQldCo0KfQkNCd0JjQnSDQndCQ0KLQkNCb0JjQiNCQINCU0KAKK9Ce0KDQldCo0KfQkNCd0JjQnSDQndCQ0KLQkNCb0JjQiNCQCivQntCg0JXQqNCn0JDQndCY0J0g0J3QmNCa0J7Qm9CQCivQntCg0JXQqNCn0JDQndCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ce0KDQldCo0KfQkNCd0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQntCg0JXQqNCn0JDQndCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J7QoNCV0KjQi9CQ0J3QmNCdINCU0KPQqNCQ0J0KK9Ce0KDQldCo0JrQntCS0JjQiyDQlNCe0J3QkAor0J7QoNCV0KjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J7QoNCV0KjQmtCe0JLQmNCLINCc0JjQm9CVCivQntCg0JXQqNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQntCg0JXQqNCa0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J7QoNCV0JEg0JHQntCg0JjQoQor0J7QoNCV0KXQntCS0JDQpiDQoNCj0JbQkAor0J7QoNCV0Ikg0ILQo9Cg0J4KK9Ce0KDQldCJINCR0KDQkNCd0JjQodCb0JDQkgor0J7QoNCV0Ikg0JTQkNCg0JjQndCa0JAKK9Ce0KDQldCJINCI0J7QktCQ0J0KK9Ce0KDQldCJINCJ0KPQkdCeCivQntCg0JXQiSDQnNCQ0KLQmNCb0JTQkAor0J7QoNCV0Ikg0JzQmNCb0JXQktCQCivQntCg0JXQiSDQndCQ0KLQkNCb0JjQiNCQCivQntCg0JXQiSDQoNCQ0JTQlQor0J7QoNCV0J3QlNCYINCI0KPQm9CY0IjQkNCd0JAKK9Ce0KDQldCd0JTQmCDQm9CQ0KHQm9CeCivQntCg0JXQndCU0Jgg0J7QotCeCivQntCg0JvQkNCd0JTQmNCLINCa0J7QoNCd0JXQm9CY0IjQkAor0J7QoNCb0JDQndCU0JjQiyDQl9Ce0JvQotCQ0J0KK9Ce0KDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCg0JvQmNCLINCJ0KPQkdCY0KbQkAor0J7QoNCb0JjQiyDQidCj0JHQmNCm0JAKK9Ce0KDQm9CY0Isg0JzQkNCg0JjQptCQCivQntCg0JvQmNCLINCc0JDQoNCY0IjQkAor0J7QoNCb0JjQiyDQnNCY0JvQkNCdCivQntCg0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCg0JvQmNCLINCd0JDQlNCQCivQntCg0JvQmNCLINCd0JDQlNCV0JbQlNCQCivQntCg0JvQmNCLINCd0JXQlNCV0InQmtCeCivQntCg0JvQmNCaINCQ0J3QkAor0J7QoNCb0JjQmiDQnNCQ0KDQmNCI0JAKK9Ce0KDQm9Ce0JLQkNCmINCV0KDQltCV0JHQldCiCivQntCg0JvQntCS0JjQiyDQkNCd0KLQlQor0J7QoNCb0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ce0KDQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCI0J7QktCeCivQntCg0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ce0KDQm9Ce0JLQmNCLINCc0JDQndCVCivQntCg0JvQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J7QoNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J7QoNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J7QoNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0J7QoNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ce0KDQm9Ce0JLQmNCLINCh0JDQqNCQCivQntCg0JvQntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0J7QoNCb0J7QktCY0Isg0KHQotCV0JLQmNCm0JAKK9Ce0KDQm9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0J7QoNCb0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J7QoNCc0JDQmCDQotCY0JHQntCgCivQntCg0IrQkNCa0J7QkiDQn9Cg0JjQl9Cg0JXQndCa0JAKK9Ce0KDQniDQp9CV0JTQntCc0JjQoAor0J7QoNCe0KEg0JbQkNCg0JrQngor0J7QoNCe0KEg0ILQo9Cg0JAKK9Ce0KDQntChINCC0KPQoNCQCivQntCg0J7QoSDQkNCb0JHQldCg0KIKK9Ce0KDQntChINCV0KPQk9CV0J0KK9Ce0KDQntChINCI0J7QkNCa0JjQnAor0J7QoNCe0KEg0JzQkNCg0JjQiNCQCivQntCg0J7QoSDQndCY0JrQntCb0JAKK9Ce0KDQntChINCS0JDQodCQCivQntCg0J7QoSDQl9CU0JXQndCa0JAKK9Ce0KDQntCS0KfQkNCd0JXQpiDQmtCY0KDQkCDQlNCgCivQntCg0J7QktCV0KYg0IjQntCh0JjQnwor0J7QoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQntCg0KHQkNCTINCQ0J3QotCQ0JsKK9Ce0KDQodCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ce0KDQotCQ0Jog0JrQkNCL0JAKK9Ce0KDQktCe0Kgg0JvQkNCI0J7QqAor0J7QoNCX0JAg0JzQmNCg0KbQkAor0J7QoNCX0JAg0KDQntCh0JDQndCQCivQntCh0JXQi9CQ0J3QodCa0Jgg0JzQm9CQ0JTQldCdCivQntCh0JXQotCg0J7QkiDQndCY0JrQntCb0JAKK9Ce0KHQm9Ce0JLQp9CQ0J0g0JHQntCh0JjQidCa0JAKK9Ce0KHQnNCQ0J3QkNCIINCY0JzQldCgCivQntCh0JzQkNCd0Jgg0JDQodCQ0J0KK9Ce0KHQnNCQ0J3QmCDQnNCV0KXQnNCV0JQKK9Ce0KHQnNCQ0J3QmCDQndCV0KjQkNCiCivQntCh0JzQkNCd0Jgg0KDQntCc0JDQndCa0JAKK9Ce0KHQnNCQ0J3QmCDQodCV0JvQmNCcCivQntCh0JzQkNCd0JrQkNCnINCh0JXQm9CY0JwKK9Ce0KHQnNCQ0J3QntCS0JjQiyDQmtCb0JDQo9CU0JjQiNCQCivQntCh0JzQkNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Ce0KHQnNCe0J3QntCIINCh0JDQlNCg0JjQiNCQCivQntCh0J3QntCS0JjQiyDQntCh0JrQkNCgCivQntCh0J7QodCb0JjQiNCQINCg0JDQlNCV0J3QmtCeCivQntCh0KDQldCU0JrQkNCgINCI0J7QodCY0J8KK9Ce0KHQotCV0KAg0JjQm9Ce0J3QkAor0J7QodCi0J7QmNCLINCC0J7QoNCC0JUKK9Ce0KHQotCe0JjQiyDQl9Ce0KDQkNCdCivQntCh0KLQntCI0JjQiyDQltCY0JLQmtCeCivQntCh0KLQntCI0JjQiyDQgtCe0KDQgtCVCivQntCh0KLQntCI0JjQiyDQkdCe0KjQmtCeCivQntCh0KLQntCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0J7QodCi0J7QiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0KHQotCe0IjQmNCLINCR0J7Qk9CU0JDQnQor0J7QodCi0J7QiNCY0Isg0JHQoNCQ0J3QkAor0J7QodCi0J7QiNCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J7QodCi0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JrQngor0J7QodCi0J7QiNCY0Isg0JTQkNCk0JjQndCQCivQntCh0KLQntCI0JjQiyDQlNCe0JHQoNCY0JLQntCICivQntCh0KLQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ce0KHQotCe0IjQmNCLINCU0KDQkNCT0JjQptCQCivQntCh0KLQntCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0J7QodCi0J7QiNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J7QodCi0J7QiNCY0Isg0JTQo9Co0JDQnQor0J7QodCi0J7QiNCY0Isg0JTQo9Co0JDQnQor0J7QodCi0J7QiNCY0Isg0JTQo9Co0JDQnQor0J7QodCi0J7QiNCY0Isg0JPQntCI0JrQngor0J7QodCi0J7QiNCY0Isg0JPQntCg0JjQndCa0JAKK9Ce0KHQotCe0IjQmNCLINCY0JLQkNCdCivQntCh0KLQntCI0JjQiyDQiNCe0JLQkNCd0JrQkAor0J7QodCi0J7QiNCY0Isg0JrQkNCi0JjQptCQCivQntCh0KLQntCI0JjQiyDQm9CQ0JfQkNCgCivQntCh0KLQntCI0JjQiyDQidCj0JHQkAor0J7QodCi0J7QiNCY0Isg0InQo9CR0JjQndCa0J4KK9Ce0KHQotCe0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQntCh0KLQntCI0JjQiyDQidCj0JHQntCc0JjQoAor0J7QodCi0J7QiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCc0JjQi9CQCivQntCh0KLQntCI0JjQiyDQnNCY0JvQkNCU0JjQnQor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JDQnQor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQntCh0KLQntCI0JjQiyDQnNCY0JvQldCS0JAKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CY0KbQkAor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JrQkAor0J7QodCi0J7QiNCY0Isg0JzQmNCb0J7QqAor0J7QodCi0J7QiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCh0KLQntCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J7QodCi0J7QiNCY0Isg0J3QkNCU0JAKK9Ce0KHQotCe0IjQmNCLINCd0JDQotCQ0KjQkAor0J7QodCi0J7QiNCY0Isg0J3QldCd0JDQlAor0J7QodCi0J7QiNCY0Isg0J7QkdCg0JDQlAor0J7QodCi0J7QiNCY0Isg0J7QkdCg0JDQlAor0J7QodCi0J7QiNCY0Isg0J7Qm9CT0JAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCLINCf0KDQldCU0KDQkNCTCivQntCh0KLQntCI0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQntCh0KLQntCI0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQntCh0KLQntCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0J7QodCi0J7QiNCY0Isg0KDQkNCi0JrQngor0J7QodCi0J7QiNCY0Isg0KDQmNCh0KLQngor0J7QodCi0J7QiNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ce0KHQotCe0IjQmNCLINCh0JvQkNCS0JrQngor0J7QodCi0J7QiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J7QodCi0J7QiNCY0Isg0KHQnNCY0InQmtCQCivQntCh0KLQntCI0JjQiyDQodCi0JDQndCQCivQntCh0KLQntCI0JjQiyDQodCi0JDQndCa0JAKK9Ce0KHQotCe0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ce0KHQotCe0IjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ce0KHQotCe0IjQmNCLINCS0JDQodCQCivQntCh0KLQntCI0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQntCh0KLQntCI0JjQiyDQktCV0KHQldCb0JjQnQor0J7QodCi0J7QiNCY0Isg0JLQldCh0JXQm9CY0J0KK9Ce0KHQotCe0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ce0KHQotCe0IjQmNCLINCX0JDQk9Ce0KDQmtCQCivQntCh0KLQntCI0JjQiyDQl9Ce0KDQkNCdCivQntCh0KLQntCI0JjQiyDQl9Ce0KDQkAor0J7QodCi0J7QiNCY0J0g0JbQkNCg0JrQngor0J7QodCi0J7QiNCY0J0g0IjQo9Cb0JrQkAor0J7QodCi0J7QiNCY0J0g0JvQkNCX0JDQoAor0J7QodCi0J7QiNCY0J0g0JzQkNCg0JjQiNCQCivQntCh0KLQntCI0JjQnSDQnNCY0JvQntCoCivQntCh0KLQntCI0JjQnSDQn9CV0KDQkAor0J7QodCi0J7QiNCY0J0g0J/QldCg0J4KK9Ce0KHQotCe0IjQmNCdINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCdINCf0JXQotCQ0KAKK9Ce0KHQotCe0IjQmNCdINCg0JDQlNCe0JLQkNCdCivQntCh0KLQntCI0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9Ce0KHQotCe0IjQmNCdINCi0J7QqNCQCivQntCh0KLQoNCe0JPQntCd0JDQpiDQmNCS0JDQnSDQndCe0JLQmNCd0JDQoAor0J7QodCi0KDQntCT0J7QndCQ0KYg0JjQktCQ0J0KK9Ce0KHQotCg0J7Qk9Ce0J3QkNCmINCi0JjQkdCe0KAKK9Ce0KHQktCQ0JvQlCDQkdCQ0KDQkdCQ0KDQkAor0J7QodCS0JDQm9CUINCY0JLQkNCdCivQntCh0JLQkNCb0JQg0JLQldCg0JAKK9Ce0KLQkNCo0JXQktCY0Isg0JbQmNCS0JrQngor0J7QotCQ0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQntCi0JDQqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQntCi0JDQqNCV0JLQmNCLINCS0JvQkNCh0KLQkAor0J7QotCY0Isg0JbQmNCS0JrQngor0J7QotCY0Isg0JHQntCg0JjQktCe0IgKK9Ce0KLQmNCLINCR0J7QoNCY0JLQntCICivQntCi0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J7QotCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0J7QotCY0Isg0IjQntCS0JDQndCa0JAKK9Ce0KLQmNCLINCa0JDQotCY0KbQkAor0J7QotCY0Isg0JzQmNCb0JDQnQor0J7QotCY0Isg0JzQmNCb0JjQktCe0IgKK9Ce0KLQmNCLINCd0JjQmtCe0JvQkAor0J7QotCY0Isg0J3QntCS0JDQmgor0J7QotCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQntCi0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ce0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ce0KLQmNCLINCh0JDQktCQCivQntCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCi0JjQiyDQktCV0JvQmNCX0JDQoAor0J7QotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQntCi0JjQiyDQktCj0JrQmNCm0JAKK9Ce0KLQm9Ce0JrQkNCdINCI0J7QktCQ0J0KK9Ce0KLQnNCQ0KfQmNCLINCU0KDQkNCT0J4KK9Ce0KLQntCoINCQ0J3QlNCg0JDQqAor0J7QotCe0KDQkNCd0J7QkiDQodCb0JDQktCa0J4KK9Ce0KLQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQntCi0KDQo9Cf0KfQkNCaINCI0J7QodCY0J8KK9Ce0KLQoNCj0J/Qp9CQ0Jog0JzQmNCb0J7QqAor0J7QotCg0KPQn9Cn0JDQmiDQodCQ0JzQo9CY0JvQngor0J7QktCm0JjQnSDQnNCY0JvQntCg0JDQlAor0J7QktCj0JrQkCDQgtCj0KDQngor0J7QktCj0JrQkCDQgtCj0KDQngor0J7QktCj0JrQkCDQnNCY0JvQkNCdCivQntCS0KPQmtCQINCd0JjQmtCe0JvQkAor0J7Ql9CV0KAg0ILQo9Cg0JAKK9Ce0JfQldCgINCC0KPQoNCQCivQntCX0JXQoCDQgtCj0KDQkAor0J7Ql9Cc0JXQpiDQktCV0KDQkAor0J/QqNCV0J3QmNCn0J3QmNCaINCX0JLQntCd0JjQnNCY0KAKK9Cf0JDQp9CQ0KDQmNCLINCW0JjQktCQ0J0KK9Cf0JDQp9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0J/QkNCn0JDQoNCY0Isg0JzQmNCg0JrQngor0J/QkNCn0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0KfQkNCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QkNCn0JDQoNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQp9CQ0KDQmNCLINCX0J7QoNCQ0J0KK9Cf0JDQqNCL0JDQnSDQqNCi0JXQpNCQ0J3QmNCI0JAKK9Cf0JDQqNCL0JDQnSDQgtCe0KDQgtCVCivQn9CQ0KjQi9CQ0J0g0ILQntCg0ILQlQor0J/QkNCo0IvQkNCdINCQ0J3QmtCQCivQn9CQ0KjQi9CQ0J0g0JTQkNCd0JjQptCQCivQn9CQ0KjQi9CQ0J0g0JTQoNCQ0JPQkNCdCivQn9CQ0KjQi9CQ0J0g0JTQo9Co0JDQndCa0JAKK9Cf0JDQqNCL0JDQnSDQlNCj0KjQkNCdCivQn9CQ0KjQi9CQ0J0g0JPQkNCS0KDQkAor0J/QkNCo0IvQkNCdINCI0J7QktCQ0J0KK9Cf0JDQqNCL0JDQnSDQiNCe0JLQkNCdCivQn9CQ0KjQi9CQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQqNCL0JDQnSDQndCQ0JTQldCW0JTQkAor0J/QkNCo0IvQkNCdINCd0JXQlNCV0InQmtCeCivQn9CQ0KjQi9CQ0J0g0J3QmNCa0J7Qm9CQCivQn9CQ0KjQi9CQ0J0g0J7Qm9CT0JAKK9Cf0JDQqNCL0JDQnSDQn9CV0KDQkAor0J/QkNCo0IvQkNCdINCf0JXQotCQ0KAKK9Cf0JDQqNCL0JDQnSDQoNCQ0JTQmNCS0J7QiAor0J/QkNCo0IvQkNCdINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QkNCo0IvQkNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQqNCL0JDQnSDQodCQ0JLQkAor0J/QkNCo0IvQkNCdINCh0JjQndCY0KjQkAor0J/QkNCo0IvQkNCdINCh0JzQmNCJ0JAKK9Cf0JDQqNCL0JDQnSDQodCi0JXQktCQ0J0KK9Cf0JDQqNCL0JDQnSDQotCe0JTQntCgCivQn9CQ0KjQi9CQ0J0g0JLQkNCh0JAKK9Cf0JDQqNCL0JDQnSDQl9CQ0JPQntCg0JrQkAor0J/QkNCo0IvQkNCd0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0J/QkNCo0IvQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QkNCo0IvQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9CQ0KjQi9CY0Jog0JrQm9CQ0KDQkAor0J/QkNCo0IvQmNCaINCb0JDQodCb0J4KK9Cf0JDQqNCQ0JPQmNCLINCg0JDQiNCa0J4KK9Cf0JDQqNCQ0IjQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0JDQqNCQ0IjQm9CY0Isg0JHQmNCJ0JDQndCQCivQn9CQ0KjQkNCI0JvQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0KjQkNCI0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQqNCQ0IjQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCo0JDQiNCb0JjQiyDQktCb0JDQlNCeCivQn9CQ0KjQkNCb0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0KjQkNCd0KHQmtCYINCc0JjQm9CQ0J0KK9Cf0JDQqNCQ0J3QodCa0Jgg0JLQo9Ca0JjQptCQCivQn9CQ0KjQmNCLINCR0J7QltCQ0J3QkAor0J/QkNCo0JjQiyDQkdCe0JbQngor0J/QkNCo0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QkNCo0JjQiyDQlNCj0KjQmtCeCivQn9CQ0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JDQqNCY0Isg0JrQkNCi0JjQptCQCivQn9CQ0KjQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQqNCY0Isg0JzQmNCb0JXQndCQCivQn9CQ0KjQmNCLINCf0JXQotCQ0KAKK9Cf0JDQqNCY0Isg0KDQntCh0JAKK9Cf0JDQqNCY0Isg0KHQkNCo0JAKK9Cf0JDQqNCY0Isg0KHQmNCd0JjQqNCQCivQn9CQ0KjQmNCLINCh0KLQntCI0JAKK9Cf0JDQqNCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QkNCo0JjQiyDQl9Ce0KDQkAor0J/QkNCo0JjQnSDQk9Cg0J7Ql9CU0JDQndCQCivQn9CQ0KjQmtCQINCo0JDQndCU0J7QoAor0J/QkNCo0JrQmNCd0J7QkiDQktCQ0KHQmtCeCivQn9CQ0KjQotCV0KDQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KjQotCYINCo0JDQndCU0J7QoAor0J/QkNCo0KLQmCDQnNCQ0KLQmNCI0JAKK9Cf0JDQqNCj0IjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQi9CYINCR0J7QoNCY0KEKK9Cf0JDQi9CYINCY0KjQotCS0JDQnQor0J/QkNCL0Jgg0JzQkNCg0JjQngor0J/QkNCL0KPQmiDQndCY0JrQntCb0JAKK9Cf0JDQi9Cj0Jog0KHQm9CQ0JLQmtCeCivQn9CQ0JbQgtCV0KDQodCa0Jgt0JzQkNCd0J7QiNCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JbQmNCdINCW0JXQidCa0J4KK9Cf0JDQltCY0J0g0JDQndCC0JXQm9Ca0J4KK9Cf0JDQltCY0J0g0JTQkNCd0JjQptCQCivQn9CQ0JbQmNCdINCJ0KPQkdCe0JzQmNCgCivQn9CQ0ILQkNCdINCJ0KPQkdCe0JzQmNCgCivQn9CQ0ILQkNCdINCc0JjQm9CY0KbQkAor0J/QkNCC0JXQnSDQlNCj0KjQkNCdCivQn9CQ0ILQldCdINCb0JXQn9CQCivQn9CQ0ILQldCdINCc0JDQoNCY0IjQkAor0J/QkNCC0JXQnSDQodCi0JXQktCQCivQn9CQ0ILQldCdINCX0JTQoNCQ0JLQmtCeCivQn9CQ0KYg0JjQktCQ0J3QmtCQCivQn9CQ0KbQldCaINCb0JDQodCb0J4KK9Cf0JDQptCY0Jog0JjQqNCi0JLQkNCdCivQn9CQ0JTQldCW0JDQndCY0J0g0InQo9CR0J4KK9Cf0JDQlNCV0JbQkNCd0JjQnSDQktCb0JDQlNCV0KLQkAor0J/QkNCU0JXQiNCh0JrQmCDQnNCY0JvQldCd0JAKK9Cf0JDQlNCV0IjQodCa0Jgg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQlNCV0IjQodCa0Jgg0KHQkNCS0JAKK9Cf0JDQlNCV0IjQodCa0Jgg0JLQldCb0JjQnNCY0KAKK9Cf0JDQlNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCU0Jgg0JvQkNCI0J7QqAor0J/QkNCU0KDQntCSINCT0J7QoNCQ0J0KK9Cf0JDQlNCg0J7QkiDQndCY0JrQntCb0JAKK9Cf0JDQlNCg0J7QkiDQoNCQ0JTQmNCS0J7QiAor0J/QkNCU0KDQntCSINCS0JXQodCd0JAKK9Cf0JDQk9CQ0Kcg0JHQmNCJ0JDQndCQCivQn9CQ0JPQkNCnINCd0JjQmtCe0JvQkAor0J/QkNCT0JDQp9CV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CQ0JPQkNCn0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QkNCT0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCT0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCT0JDQp9CV0JLQmNCLINCS0JDQodCQCivQn9CQ0JPQkNCd0JXQotCeINCi0JjQndCQCivQn9CQ0JPQntCd0JjQoSDQiNCj0JvQmtCQCivQn9CQ0JPQntCd0JjQoSDQktCb0JDQlNCY0JzQmNCg0J7QoQor0J/QkNCY0Isg0ILQo9Cg0JDQggor0J/QkNCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JjQiyDQpNCg0JDQndCVCivQn9CQ0JjQiyDQmNCS0JDQnQor0J/QkNCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0IjQp9CY0Isg0JDQm9CV0JrQodCQCivQn9CQ0IjQp9CY0Isg0JDQndCQCivQn9CQ0IjQp9CY0J0g0JjQm9CY0IjQkAor0J/QkNCI0KfQmNCdINCc0JjQm9Ce0IjQmtCeCivQn9CQ0IjQp9CY0J0g0J3QldCU0JXQidCa0JAKK9Cf0JDQiNCn0JjQnSDQktCe0IjQmNCh0JvQkNCSCivQn9CQ0IjQkNCd0KLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCI0JDQl9CY0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QkNCI0JTQkNCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0J/QkNCI0JTQmNCLINCI0KPQm9CY0IjQkAor0J/QkNCI0JTQmNCLINCc0JDQoNCY0IjQkNCdCivQn9CQ0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQn9CQ0IjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0IjQldCS0JjQiyDQk9Ce0KDQkNCdCivQn9CQ0IjQldCS0JjQiyDQmtCe0KHQotCQCivQn9CQ0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0IjQmNCLINCR0JvQkNCT0J7QiNCVCivQn9CQ0IjQmNCLINCR0JvQkNCT0J7QiNCVCivQn9CQ0IjQmNCLINCR0J7QltCY0JTQkNCgCivQn9CQ0IjQmNCLINCR0J7QltCeCivQn9CQ0IjQmNCLINCR0J7Qk9CY0IsKK9Cf0JDQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0IjQmNCLINCR0KPQlNCY0KHQm9CQ0JIKK9Cf0JDQiNCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JDQiNCY0Isg0JTQo9Co0JDQnSDQlNCgCivQn9CQ0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQiNCY0Isg0JTQo9Co0JDQnQor0J/QkNCI0JjQiyDQldCc0JjQndCQCivQn9CQ0IjQmNCLINCT0J7QoNCU0JDQndCQCivQn9CQ0IjQmNCLINCT0J7QoNCY0KbQkAor0J/QkNCI0JjQiyDQk9Cg0KPQiNCQCivQn9CQ0IjQmNCLINCa0J7QktCY0InQmtCQCivQn9CQ0IjQmNCLINCJ0KPQkdCY0J3QmtCQCivQn9CQ0IjQmNCLINCJ0KPQkdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0J/QkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0IjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QqAor0J/QkNCI0JjQiyDQnNCY0JvQntCoCivQn9CQ0IjQmNCLINCc0JjQm9Ce0IjQlQor0J/QkNCI0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCI0JjQiyDQnNCY0JvQntCh0JDQkgor0J/QkNCI0JjQiyDQnNCY0JvQo9CdCivQn9CQ0IjQmNCLINCc0JjQoNCa0J4KK9Cf0JDQiNCY0Isg0JzQmNCg0JrQngor0J/QkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JDQiNCY0Isg0J3QkNCU0JAKK9Cf0JDQiNCY0Isg0J3QkNCU0JAKK9Cf0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0IjQmNCLINCd0J7QktCQ0JoKK9Cf0JDQiNCY0Isg0J/QldCg0J4KK9Cf0JDQiNCY0Isg0J/QldCi0JDQoAor0J/QkNCI0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQn9CQ0IjQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QkNCI0JjQiyDQoNCQ0IjQmtCeCivQn9CQ0IjQmNCLINCh0JjQndCY0KjQkAor0J/QkNCI0JjQiyDQodCc0JjQidCQCivQn9CQ0IjQmNCLINCh0KDQldCU0J7QiNCVCivQn9CQ0IjQmNCLINCh0KLQldCS0JDQnQor0J/QkNCI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0IjQmNCLINCi0JjQpdCe0JzQmNCgCivQn9CQ0IjQmNCLINCS0JDQodCQCivQn9CQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQn9CQ0IjQmNCLINCS0JXQodCV0JvQmNCdCivQn9CQ0IjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQiNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9CQ0IjQmNCLINCS0KPQmtCY0KbQkAor0J/QkNCI0JjQmiDQlNCQ0J3QmNCm0JAKK9Cf0JDQiNCY0J0g0IjQntCS0JDQnQor0J/QkNCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0J/QkNCI0JrQldCg0KIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQiNCa0JXQoNCiINCk0KDQkNCK0JAKK9Cf0JDQiNCa0JXQoNCiINCc0JjQoNCe0KHQm9CQ0JLQkAor0J/QkNCI0JrQldCg0KIg0KDQkNCd0JrQkAor0J/QkNCI0JrQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCI0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cf0JDQiNCa0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQn9CQ0IjQntCgINCc0JDQotCY0IjQkAor0J/QkNCI0J7QktCY0Isg0KjQn9CY0KDQngor0J/QkNCI0J7QktCY0Isg0ILQntCg0ILQlQor0J/QkNCI0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QkNCI0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCI0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0IjQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QkNCI0J7QktCY0Isg0KDQkNCI0JrQngor0J/QkNCI0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCI0J7QktCY0Isg0JfQntCg0JrQkAor0J/QkNCI0KLQkNCo0JXQkiDQlNCe0JHQoNCY0JLQntCICivQn9CQ0IjQotCQ0Jog0KDQkNCU0JzQmNCb0JAKK9Cf0JDQiNCi0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0IjQktCQ0J3Qp9CY0Isg0KTQoNCQ0IrQkAor0J/QkNCI0JLQkNCd0KfQmNCLINCa0JDQotCQCivQn9CQ0IjQktCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0J/QkNCI0JLQntCUINCR0J7QodCY0InQmtCQCivQn9CQ0JrQkNCo0JrQmCDQgtCj0KDQkAor0J/QkNCa0JDQqNCa0Jgg0JzQmNCa0JAKK9Cf0JDQmtCQ0KjQmtCYINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JrQkNCo0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0JrQkNCo0JrQmCDQodCY0JzQkAor0J/QkNCa0JDQqNCa0Jgg0JLQkNCh0JAKK9Cf0JDQmtCQ0KjQmtCYINCS0JjQotCQ0JvQmNCIINCU0JjQn9CbINCY0J3Qkwor0J/QkNCa0JDQmCDQiNCe0JbQldCkCivQn9CQ0JrQkNCYINCb0JDQodCb0J4KK9Cf0JDQmtCb0JDQoCDQktCY0JTQkAor0J/QkNCa0JvQldCU0JjQndCQ0KYg0JLQmNCd0JrQngor0J/QkNCa0KPQqNCV0JLQodCa0Jgg0JrQkNCi0JDQoNCY0J3QkAor0J/QkNCa0KPQqNCV0JLQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCc0JjQotCQ0KAKK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCg0KPQltCY0KbQkAor0J/QkNCa0KPQqNCV0JLQodCa0JjQiCDQodCi0JXQpNCQ0J0KK9Cf0JDQmyDQmNCb0J7QndCQCivQn9CQ0Jsg0KDQntCX0JDQm9CY0IjQkAor0J/QkNCb0KfQldCaINCI0J7QodCY0J8KK9Cf0JDQm9CQ0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQm9CQ0KfQmtCe0JLQmNCLINCj0KDQntCoCivQn9CQ0JvQkNCo0KLQmCDQgtCe0KDQgtCVCivQn9CQ0JvQkNCo0KLQmCDQlNCV0KHQkNCd0JrQkAor0J/QkNCb0JDQqNCi0Jgg0JjQqNCi0JLQkNCdCivQn9CQ0JvQkNCo0KLQmCDQmNCo0KLQktCQ0J0KK9Cf0JDQm9CQ0KjQotCYINCI0J7QodCY0J8KK9Cf0JDQm9CQ0KjQotCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JDQm9CQ0JTQkCDQiNCe0JfQngor0J/QkNCb0JDQm9CY0Isg0ILQo9Cg0JAKK9Cf0JDQm9CQ0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCb0JDQm9CY0Isg0JTQo9Co0JDQnQor0J/QkNCb0JDQm9CY0Isg0JPQntCI0JrQngor0J/QkNCb0JDQm9CY0Isg0JPQntCI0JrQngor0J/QkNCb0JDQm9CY0Isg0JjQm9CY0IjQkAor0J/QkNCb0JDQm9CY0Isg0IjQntCS0JDQnQor0J/QkNCb0JDQm9CY0Isg0JzQmNCg0JrQngor0J/QkNCb0JDQm9CY0Isg0J3QldCS0JXQndCQCivQn9CQ0JvQkNCb0JjQiyDQndCY0JrQngor0J/QkNCb0JDQm9CY0Isg0J/QkNCS0JvQlQor0J/QkNCb0JDQm9CY0Isg0KDQkNCU0JUKK9Cf0JDQm9CQ0JvQmNCLINCh0J3QldCW0JDQndCQCivQn9CQ0JvQkNCb0JjQiyDQodCg0JXQotCeCivQn9CQ0JvQkNCb0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCi0J7QlNCVCivQn9CQ0JvQkNCb0JjQiyDQktCY0JQKK9Cf0JDQm9CQ0JvQmNCLINCS0J7QiNCY0J0KK9Cf0JDQm9CQ0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQn9CQ0JvQkNCc0JDQoNCn0KPQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCb0JDQnSDQiNCe0KHQmNCfCivQn9CQ0JvQkNCd0KfQkNCd0JjQnSDQldCb0JXQndCQCivQn9CQ0JvQkNCd0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQn9CQ0JvQkNCd0KfQkNCd0JjQnSDQoNCj0JbQkAor0J/QkNCb0JDQndCn0JDQndCY0J0g0JLQkNCh0JAKK9Cf0JDQm9CQ0J3Qp9CQ0J3QmNCdINCS0JDQodCQCivQn9CQ0JvQkNCd0JDQp9Ca0Jgg0ILQntCg0ILQlQor0J/QkNCb0JDQndCQ0KfQmtCYINCg0KPQltCY0KbQkAor0J/QkNCb0JDQndCQ0KfQmtCYINCh0JDQktCQCivQn9CQ0JvQkNCi0JjQndCj0Kgg0JDQndCU0KDQkNCoCivQn9CQ0JvQkNCi0JjQndCj0Kgg0JjQqNCi0JLQkNCdCivQn9CQ0JvQkNCi0JjQndCj0Kgg0IjQntCW0JXQpAor0J/QkNCb0JXQltCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQm9CV0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CQ0JvQpNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JvQpNCYINCR0J7QoNCa0JAKK9Cf0JDQm9Ck0Jgg0JjQqNCi0JLQkNCdCivQn9CQ0JvQpNCYINCY0KjQotCS0JDQnQor0J/QkNCb0KTQmCDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0JvQpNCYINCa0JDQotCY0KbQkAor0J/QkNCb0JjQp9Ca0J4g0ILQo9Cg0ILQmNCd0JrQkAor0J/QkNCb0JjQp9Ca0J4g0JDQndCU0KDQkNCoCivQn9CQ0JvQmNCn0JrQniDQmNCb0JXQqAor0J/QkNCb0JjQp9Ca0J4g0JjQoNCV0J3QkAor0J/QkNCb0JjQp9Ca0J4g0IjQldCb0JXQndCQCivQn9CQ0JvQmNCo0JDQqNCa0Jgg0J7Qm9CT0JAKK9Cf0JDQm9CY0Isg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQm9CY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JvQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQm9CY0Isg0InQo9CR0JjQptCQCivQn9CQ0JvQmNCLINCc0JDQoNCi0JAKK9Cf0JDQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0JvQmNCLINCe0JvQk9CQCivQn9CQ0JvQmNCLINCh0KLQldCS0JDQnQor0J/QkNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQm9CY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQn9CQ0JvQmNCd0JrQkNCoINCC0J7QoNCC0JUKK9Cf0JDQm9CY0J3QmtCQ0Kgg0ILQo9Cg0JAKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JHQm9CQ0J3QmtCQCivQn9CQ0JvQmNCd0JrQkNCoINCR0J7QoNCY0JLQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JvQmNCd0JrQkNCoINCk0KDQkNCK0JAKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JPQldCX0JAKK9Cf0JDQm9CY0J3QmtCQ0Kgg0IjQntCW0JXQpAor0J/QkNCb0JjQndCa0JDQqCDQnNCQ0KDQmNCI0JAKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JzQmNCl0JDQiQor0J/QkNCb0JjQndCa0JDQqCDQnNCY0KDQmtCeCivQn9CQ0JvQmNCd0JrQkNCoINCh0KLQldCS0JDQnQor0J/QkNCb0JjQndCa0JDQqCDQktCV0KDQkCDQlNCgCivQn9CQ0InQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CQ0InQo9Cg0JDQoSDQkNCf0J7QodCi0J7Qm9Ce0KEKK9Cf0JDQm9Ce0Kgg0JjQktCQ0J0KK9Cf0JDQm9Ce0KjQmCDQntCb0JPQkAor0J/QkNCb0J7QpiDQqNCQ0J3QlNCe0KAKK9Cf0JDQm9Ce0KYg0JvQkNCh0JvQngor0J/QkNCb0J7QpiDQotCY0JHQntCgCivQn9CQ0JvQntCi0JDQqCDQkNCd0JTQoNCY0IjQkAor0J/QkNCb0J7QkiDQnNCY0KXQkNCY0JvQniDQlNCgCivQn9CQ0JvQo9Cg0J7QktCY0Isg0KHQotCV0J/QkNCdCivQn9CQ0JzQo9Cn0JjQndCQINCI0J7QktCQ0J0KK9Cf0JDQndCn0JjQiyDQk9CQ0JLQoNCY0JvQngor0J/QkNCd0KfQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JDQndCn0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0J3Qp9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQndCn0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0J3Qp9Ce0JLQkNCdINCQ0JLQoNCQ0JwKK9Cf0JDQndCn0KPQm9CY0JTQl9CV0JIg0JDQm9CV0JrQodCY0IjQlQor0J/QkNCd0JDQiNCe0KLQmNCU0JjQoSDQm9CV0J7QndCY0JTQkNChCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQndCQ0J7QotCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cf0JDQndCQ0J7QotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0J3QptCV0KAg0JHQoNCQ0J3QmtCeCivQn9CQ0J3QptCV0KAg0JHQoNCQ0J3QmtCeCivQn9CQ0J3Qj9CQINCR0J7QltCY0KbQkAor0J/QkNCd0I/QkCDQl9CS0JXQl9CU0JDQndCQCivQn9CQ0J3Qj9CY0Isg0J3QkNCU0JAKK9Cf0JDQndCP0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QkNCd0I/QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQndCP0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0J3Qj9CY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQndCU0Jgg0J7QodCa0JDQoAor0J/QkNCd0JTQo9Cg0JXQktCY0Isg0JzQmNCb0JDQndCa0J4KK9Cf0JDQndCU0KPQoNCe0JIg0JbQmNCS0JrQkAor0J/QkNCd0JTQo9Cg0J7QkiDQkNCm0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCd0JTQo9Cg0J7QkiDQlNCj0KjQkNCd0JrQkAor0J/QkNCd0JTQo9Cg0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCU0KPQoNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCd0JTQo9Cg0J7QkiDQn9CV0KLQkNCgCivQn9CQ0J3QlNCj0KDQntCSINCh0JDQktCQCivQn9CQ0J3QlNCj0KDQntCSINCX0J7QoNCQ0J0KK9Cf0JDQndCU0KPQoNCe0JIg0JfQntCg0JDQnQor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCI0KPQm9Ca0JAKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQktCe0IjQmNCdCivQn9CQ0J3QlNCj0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCd0JPQldCg0KYg0JzQkNCg0JAKK9Cf0JDQndCT0JXQoNCmINCS0JXQm9CY0JHQntCgCivQn9CQ0J3QmNCLINCW0JDQoNCa0J4KK9Cf0JDQndCY0Isg0JbQmNCS0JDQnQor0J/QkNCd0JjQiyDQltCY0JLQntCI0JjQnQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0J7QoNCC0JUKK9Cf0JDQndCY0Isg0ILQntCg0ILQlQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0J7QoNCC0JUKK9Cf0JDQndCY0Isg0ILQo9Cg0JAKK9Cf0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQndCY0Isg0JDQndCQCivQn9CQ0J3QmNCLINCQ0J3QkAor0J/QkNCd0JjQiyDQkNCd0KLQo9CdCivQn9CQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmNCLINCR0KDQkNCd0JrQngor0J/QkNCd0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cf0JDQndCY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cf0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0J3QmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0J3QmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J/QkNCd0JjQiyDQlNCg0JXQndCQCivQn9CQ0J3QmNCLINCU0KPQqNCQ0J0KK9Cf0JDQndCY0Isg0JTQo9Co0JDQnQor0J/QkNCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QkNCd0JjQiyDQmNCb0JjQiNCQCivQn9CQ0J3QmNCLINCY0JvQntCd0JAKK9Cf0JDQndCY0Isg0IjQkNCo0JAKK9Cf0JDQndCY0Isg0IjQldCb0JXQndCQCivQn9CQ0J3QmNCLINCI0JXQm9CV0J3QkAor0J/QkNCd0JjQiyDQiNCe0JLQkNCd0JrQkCDQlNCgCivQn9CQ0J3QmNCLINCI0J7QktCQ0J3QmtCQCivQn9CQ0J3QmNCLINCI0J7QktCQ0J3QmtCQCivQn9CQ0J3QmNCLINCI0KPQm9Ca0JAKK9Cf0JDQndCY0Isg0JrQkNCY0KbQkAor0J/QkNCd0JjQiyDQmtCQ0KLQkAor0J/QkNCd0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0J/QkNCd0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQndCY0Isg0JzQkNCg0JrQngor0J/QkNCd0JjQiyDQnNCY0IvQngor0J/QkNCd0JjQiyDQnNCY0KbQkAor0J/QkNCd0JjQiyDQnNCY0JrQkAor0J/QkNCd0JjQiyDQnNCY0JvQkNCd0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JDQnQor0J/QkNCd0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQndCY0Isg0JzQmNCb0JUKK9Cf0JDQndCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0J3QmNCLINCc0JjQm9CY0IjQkAor0J/QkNCd0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCd0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCd0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCd0JjQiyDQnNCY0JvQntCoCivQn9CQ0J3QmNCLINCc0JjQm9Ce0KgKK9Cf0JDQndCY0Isg0JzQmNCb0J7QqAor0J/QkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCd0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QkNCd0JjQiyDQnNCY0KDQmtCeCivQn9CQ0J3QmNCLINCc0JjQoNCa0J4KK9Cf0JDQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCd0JjQiyDQndCQ0JTQkAor0J/QkNCd0JjQiyDQndCQ0JTQkAor0J/QkNCd0JjQiyDQndCQ0JTQkAor0J/QkNCd0JjQiyDQndCV0JzQkNCK0JAKK9Cf0JDQndCY0Isg0J3QldCd0JDQlAor0J/QkNCd0JjQiyDQntCR0KDQkNCU0JjQnQor0J/QkNCd0JjQiyDQntCT0IrQldCdCivQn9CQ0J3QmNCLINCe0JvQk9CQCivQn9CQ0J3QmNCLINCf0JXQotCQ0KAKK9Cf0JDQndCY0Isg0J/QldCi0JDQoAor0J/QkNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QkNCd0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9CQ0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0J3QmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0KDQkNCd0JrQngor0J/QkNCd0JjQiyDQoNCY0KHQotCeCivQn9CQ0J3QmNCLINCh0JDQqNCQCivQn9CQ0J3QmNCLINCh0JDQitCQCivQn9CQ0J3QmNCLINCh0JvQkNCC0JDQndCQCivQn9CQ0J3QmNCLINCh0JzQmNCJ0JDQndCa0JAKK9Cf0JDQndCY0Isg0KHQndCV0JbQkNCd0JAKK9Cf0JDQndCY0Isg0KHQoNCC0JDQnQor0J/QkNCd0JjQiyDQodCg0JHQntCJ0KPQkQor0J/QkNCd0JjQiyDQodCi0JDQndCQCivQn9CQ0J3QmNCLINCh0KLQkNCd0JrQkAor0J/QkNCd0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQndCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J3QmNCLINCh0KLQldCS0JDQnQor0J/QkNCd0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0KPQk9CJ0JXQqNCQCivQn9CQ0J3QmNCLINCS0JDQodCY0InQmtCQCivQn9CQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QkNCd0JjQiyDQl9CU0KDQkNCS0JrQngor0J/QkNCd0JjQiyDQl9Cb0JDQotCa0J4KK9Cf0JDQndCY0Isg0JfQntCg0JDQnQor0J/QkNCd0JjQiyDQl9Ce0KDQkAor0J/QkNCd0JjQkNCdINCQ0J3QmNCm0JAKK9Cf0JDQndCY0J0g0JHQntCg0JjQktCe0IjQlQor0J/QkNCd0JjQnSDQkdCg0JDQndCQCivQn9CQ0J3QmNCdINCc0JjQm9CY0KbQkAor0J/QkNCd0JjQnSDQnNCY0JvQntCoCivQn9CQ0J3QmNCdINCc0JjQotCQCivQn9CQ0J3QmNCdINCc0JvQkNCU0JXQnQor0J/QkNCd0JjQnSDQl9Ce0KDQkNCdCivQn9CQ0J3QmNCd0KfQmNCLINCh0J7QpNCY0IjQkAor0J/QkNCK0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cf0JDQitCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQn9CQ0IrQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCK0JrQntCS0JjQiyDQmNCb0JjQiNCQINCc0KAKK9Cf0JDQitCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0IrQmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0JDQitCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCK0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0IrQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQitCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0IrQmtCe0JLQmNCLINCd0JDQlNCQCivQn9CQ0IrQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCK0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CQ0IrQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQndCa0J7QkiDQkdCg0JDQndCa0J4KK9Cf0JDQndCa0J7QkiDQiNCV0JvQldCd0JAKK9Cf0JDQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9Cf0JDQndCa0J7QkiDQmtCQ0KLQmNCm0JAKK9Cf0JDQndCa0J7QkiDQnNCQ0KDQmtCeCivQn9CQ0J3QmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cf0JDQndCa0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QkNCd0JrQntCSINCf0KDQldCU0KDQkNCTCivQn9CQ0J3QmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCd0JrQntCSINCh0JDQktCQCivQn9CQ0J3QmtCe0JIg0KHQm9CQ0JLQmtCeCivQn9CQ0J3QmtCe0JIg0KHQktCV0KLQntCX0JDQoAor0J/QkNCd0JrQntCSINCS0JXQodCd0JAKK9Cf0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QkNCd0J7QkiDQlNCV0KHQkNCd0JrQkAor0J/QkNCd0J7QkiDQndCV0J3QkNCUCivQn9CQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQndCi0JXQm9CV0JzQntCd0J7QkiDQndCV0JTQldCJ0JrQngor0J/QkNCd0KLQldCb0JXQnNCe0J3QntCSINCd0J7QktCa0JAKK9Cf0JDQndCi0JXQm9CY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQndCi0JXQm9CY0Isg0JbQkNCg0JrQngor0J/QkNCd0KLQldCb0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QotCV0JvQmNCLINCC0J7QoNCC0JUKK9Cf0JDQndCi0JXQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0JDQndCi0JXQm9CY0Isg0JDQndCQCivQn9CQ0J3QotCV0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cf0JDQndCi0JXQm9CY0Isg0JHQntCg0JjQktCe0IgKK9Cf0JDQndCi0JXQm9CY0Isg0KbQktCV0KLQmNCdCivQn9CQ0J3QotCV0JvQmNCLINCU0JDQpNCY0J3QkAor0J/QkNCd0KLQldCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0J3QotCV0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCi0JXQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCd0KLQldCb0JjQiyDQmNCb0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0J/QkNCd0KLQldCb0JjQiyDQmNCb0JjQiNCQCivQn9CQ0J3QotCV0JvQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JrQkNCc0JXQndCa0J4KK9Cf0JDQndCi0JXQm9CY0Isg0JvQkNCX0JDQoAor0J/QkNCd0KLQldCb0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JDQndCi0JXQm9CY0Isg0InQo9CR0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J3QotCV0JvQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0J3QotCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCb0J7QqAor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCd0KLQldCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCd0KLQldCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0J3QotCV0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CQ0J3QotCV0JvQmNCLINCc0J7QnNCY0KAKK9Cf0JDQndCi0JXQm9CY0Isg0J3QldCd0JDQlAor0J/QkNCd0KLQldCb0JjQiyDQndCV0JLQldCd0JrQkAor0J/QkNCd0KLQldCb0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQndCi0JXQm9CY0Isg0J/QkNCI0J4KK9Cf0JDQndCi0JXQm9CY0Isg0J/QkNCS0JvQlQor0J/QkNCd0KLQldCb0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0J/QkNCd0KLQldCb0JjQiyDQn9CV0KLQkNCgCivQn9CQ0J3QotCV0JvQmNCLLdCf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0J3QotCV0JvQmNCLINCh0JvQkNCS0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLINCh0J7QpNCY0IjQkAor0J/QkNCd0KLQldCb0JjQiyDQktCQ0KHQkAor0J/QkNCd0KLQldCb0JjQiyDQktCV0KDQkAor0J/QkNCd0KLQldCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J3QotCV0JvQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J/QkNCd0KLQldCb0JjQiyDQktCj0IjQmNCm0JAKK9Cf0JDQndCi0JXQm9CY0Ist0JLQo9Ca0JDQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQo9Ca0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLINCS0KPQmtCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0J3QotCV0JvQmNCdINCT0JXQntCg0JPQmNCI0JUKK9Cf0JDQndCi0JXQm9CY0J3QkNCmINCd0JjQmtCe0JvQkAor0J/QkNCd0KLQldCb0JjQndCQ0KYg0J/QkNCS0JvQlQor0J/QkNCd0KLQldCb0JjQndCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCd0KLQmNCLINCW0JDQoNCa0J4KK9Cf0JDQndCi0JjQiyDQltCY0JLQkNCdCivQn9CQ0J3QotCY0Isg0JbQmNCS0JrQkAor0J/QkNCd0KLQmNCLINCW0JjQktCe0IjQmNCdCivQn9CQ0J3QotCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cf0JDQndCi0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QotCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0J/QkNCd0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0J3QotCY0Isg0JHQkNCi0JAKK9Cf0JDQndCi0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQndCi0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQn9CQ0J3QotCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0JDQndCi0JjQiyDQlNCe0JHQoNCY0JLQntCICivQn9CQ0J3QotCY0Isg0JTQntCR0KDQntCh0JDQkgor0J/QkNCd0KLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQndCi0JjQiyDQk9CY0JfQldCb0JAKK9Cf0JDQndCi0JjQiyDQk9CS0J7Ql9CU0JXQnQor0J/QkNCd0KLQmNCLINCI0JXQm9CY0KbQkAor0J/QkNCd0KLQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCd0KLQmNCLINCc0JDQoNCY0J3QkAor0J/QkNCd0KLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9CQ0J3QotCY0Isg0JzQmNCb0JDQnQor0J/QkNCd0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CQ0J3QotCY0Isg0JzQmNCb0JjQktCe0IjQlQor0J/QkNCd0KLQmNCLINCc0JjQm9CY0JLQntCICivQn9CQ0J3QotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCi0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCd0KLQmNCLINCc0JjQntCU0KDQkNCTINCU0KAg0JvQldCa0JDQoAor0J/QkNCd0KLQmNCLINCg0JDQlNCV0J3QmtCeCivQn9CQ0J3QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQndCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCd0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQndCi0JjQiyDQoNCe0JfQkAor0J/QkNCd0KLQmNCLINCh0JXQm9CY0JzQmNCgCivQn9CQ0J3QotCY0Isg0KHQldCb0JjQnNCY0KAKK9Cf0JDQndCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3QotCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QkNCd0KLQmNCLINCj0KDQntCoCivQn9CQ0J3QotCY0Isg0JLQldCh0J3QkAor0J/QkNCd0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQoAor0J/QkNCd0KLQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9CQ0J3QotCY0Isg0JfQlNCg0JDQktCa0J4KK9Cf0JDQndCi0J7QqCDQgtCj0KDQngor0J/QkNCd0KLQntCoINCa0J7QktCY0InQmtCQCivQn9CQ0J3QotCe0Kgg0J/QldCi0JDQoAor0J/QkNCd0KLQntCoINCf0JXQotCQ0KAKK9Cf0JDQndCi0J7QktCY0Isg0KjQi9CV0J/QkNCdCivQn9CQ0J3QotCe0JLQmNCLINCW0JXQidCa0J4KK9Cf0JDQndCi0J7QktCY0Isg0JDQptCQCivQn9CQ0J3QotCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J/QkNCd0KLQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQndCi0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cf0JDQndCi0J7QktCY0Isg0InQo9CR0J4KK9Cf0JDQndCi0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cf0JDQndCi0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCi0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CQ0J3QotCe0JLQmNCLINCh0JDQktCQCivQn9CQ0J3QotCe0JLQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Cf0JDQndCi0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCd0JfQkNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JDQntCb0J7QndCYINCC0KPQl9CV0J/QmNCd0JAKK9Cf0JDQnyDQqNCQ0J3QlNCe0KAKK9Cf0JDQnyDQqNCQ0J3QlNCe0KAKK9Cf0JDQnyDQqNCQ0J3QlNCe0KAKK9Cf0JDQnyDQqNCQ0J3QlNCe0KAKK9Cf0JDQnyDQgtCV0KDQggor0J/QkNCfINCC0KPQoNCeCivQn9CQ0J8g0JDQndCQCivQn9CQ0J8g0JTQldCI0JDQnQor0J/QkNCfINCU0KDQkNCT0JjQptCQCivQn9CQ0J8g0JXQlNCY0KIKK9Cf0JDQnyDQldCU0JjQogor0J/QkNCfINCV0J3QlNCg0JUg0JTQoAor0J/QkNCfINCV0J3QlNCg0JUKK9Cf0JDQnyDQldCg0JbQldCR0JXQogor0J/QkNCfINCV0KLQldCb0JrQkAor0J/QkNCfINCk0JXQoNCV0J3Qpgor0J/QkNCfINCk0KDQkNCK0JAKK9Cf0JDQnyDQpNCg0JDQitCQCivQn9CQ0J8g0JPQkNCR0J7QoAor0J/QkNCfINCY0KjQotCS0JDQnSDQlNCgCivQn9CQ0J8g0JjQqNCi0JLQkNCdCivQn9CQ0J8g0JjQm9CV0KgKK9Cf0JDQnyDQmNCc0KDQlQor0J/QkNCfINCY0JzQoNCVCivQn9CQ0J8g0JjQoNCV0J3QkAor0J/QkNCfINCY0KDQldCd0JAKK9Cf0JDQnyDQiNCQ0IrQkAor0J/QkNCfINCI0JDQndCa0J4KK9Cf0JDQnyDQiNCV0JvQldCd0JAKK9Cf0JDQnyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QkNCfINCI0J7QltCV0KQg0JTQoAor0J/QkNCfINCI0J7QodCY0J8KK9Cf0JDQnyDQiNCe0KHQmNCfCivQn9CQ0J8g0IjQntCS0JDQnQor0J/QkNCfINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQnyDQiNCj0JvQmNCI0JDQnQor0J/QkNCfINCI0KPQm9CY0IjQkAor0J/QkNCfINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JDQnyDQm9CQ0KHQm9CeCivQn9CQ0J8g0JzQkNCg0JPQmNCi0JAKK9Cf0JDQnyDQnNCY0KXQkNCI0JvQngor0J/QkNCfINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J8g0JzQmNCa0JvQntCoCivQn9CQ0J8g0JzQmNCg0J7QnQor0J/QkNCfINCe0JvQk9CQCivQn9CQ0J8g0J/QkNCS0JvQlQor0J/QkNCfINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JDQnyDQodCY0JvQktCV0KHQotCV0KAKK9Cf0JDQnyDQotCV0KDQldCX0JjQiNCQCivQn9CQ0J8g0KLQmNCR0J7QoAor0J/QkNCfINCS0JDQm9CV0KDQmNCI0JAKK9Cf0JDQnyDQktCV0KDQkAor0J/QkNCfINCS0JjQndCm0JUKK9Cf0JDQnyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JDQnyDQl9CU0JXQndCa0JAKK9Cf0JDQnyDQl9Ce0JvQotCQ0J0KK9Cf0JDQn9Co0J7Qoi3QmtCe0JfQmNCaINCf0JXQn9CYCivQn9CQ0J/QgtCj0KDQlNCV0KEg0IjQntCS0JPQldCdCivQn9CQ0J/QkNCU0J7Qn9Ce0JvQniDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JDQn9CQ0JTQntCf0J7Qm9CeINCS0IjQldCa0J7QodCb0JDQkgor0J/QkNCf0JDQlNCe0J/Qo9Cb0J7QoSDQiNCQ0J3QmNChCivQn9CQ0J/QkNCU0J7Qn9Cj0JvQntChINCa0J7QodCi0JDQoQor0J/QkNCf0JDQk9CV0J7QoNCT0JjQoiDQmtCe0KHQotCQCivQn9CQ0J/QkNCaINCU0KDQkNCT0JDQnQor0J/QkNCf0JDQotCQ0J3QkNCh0JjQoyDQndCY0KbQkAor0J/QkNCf0JXQqCDQiNCe0KHQmNCfCivQn9CQ0J/QldCoINCa0J7QodCQCivQn9CQ0J/QldCWINCY0JvQmNCd0JrQkAor0J/QkNCf0KXQkNCg0KXQkNCI0Jgg0ILQo9Cg0JAKK9Cf0JDQn9Cl0JDQoNCl0JDQiNCYINCi0JXQoNCV0JfQmNCI0JAKK9Cf0JDQn9Cl0JDQoNCl0JDQiNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQn9CY0KjQotCQINCk0KDQkNCK0JAKK9Cf0JDQn9CY0KjQotCQINCk0KDQkNCK0JAKK9Cf0JDQn9CY0KjQotCQINCY0JvQlNCY0JrQkAor0J/QkNCf0JjQqNCi0JAg0IjQntCS0JDQnQor0J/QkNCf0JjQqNCi0JAg0JzQkNCg0JjQiNCQCivQn9CQ0J/QmNCo0KLQkCDQnNCQ0KDQmtCeCivQn9CQ0J/QmNCo0KLQkCDQnNCY0KXQkNCI0JvQngor0J/QkNCf0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QkNCf0JjQiyDQltCY0JLQmtCeCivQn9CQ0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0J/QmNCLINCQ0J3QkAor0J/QkNCf0JjQiyDQkNCg0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JDQoNCQ0J3QmtCQCivQn9CQ0J/QmNCLINCQ0KDQkNCd0JrQkAor0J/QkNCf0JjQiyDQkNCg0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JHQntCo0JrQngor0J/QkNCf0JjQiyDQkdCe0JbQkAor0J/QkNCf0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCf0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQn9CY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0J/QmNCLINCR0KDQkNCd0JrQngor0J/QkNCf0JjQiyDQlNCV0KHQkNCd0JrQkAor0J/QkNCf0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cf0JDQn9CY0Isg0JTQo9Co0JDQnQor0J/QkNCf0JjQiyDQlNCj0KjQkNCdCivQn9CQ0J/QmNCLINCT0J7QiNCa0J4KK9Cf0JDQn9CY0Isg0JjQktCQ0J0KK9Cf0JDQn9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0JDQn9CY0Isg0JvQkNCX0JDQoAor0J/QkNCf0JjQiyDQm9CV0J/QntCh0JDQktCQCivQn9CQ0J/QmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCf0JjQiyDQm9Ce0JfQmNCd0JrQkAor0J/QkNCf0JjQiyDQm9Cj0JrQkAor0J/QkNCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JDQn9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQn9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JDQn9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JDQn9CY0Isg0JzQmNCb0JjQptCQCivQn9CQ0J/QmNCLINCc0JjQm9CY0JLQntCICivQn9CQ0J/QmNCLINCc0JjQm9Ca0JAKK9Cf0JDQn9CY0Isg0JzQmNCb0J7QqAor0J/QkNCf0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0J/QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQn9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0J/QmNCLINCf0JDQktCb0JUKK9Cf0JDQn9CY0Isg0KDQkNCU0JXQndCa0J4KK9Cf0JDQn9CY0Isg0KHQkNCS0JAKK9Cf0JDQn9CY0Isg0KHQnNCY0InQkAor0J/QkNCf0JjQiyDQodCg0ILQkNCdINCU0KAKK9Cf0JDQn9CY0Isg0KHQoNCC0JDQndCa0JAKK9Cf0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J/QmNCLINCh0KLQldCS0JDQnQor0J/QkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQn9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0J/QkNCf0JjQiyDQotCV0J7QlNCe0KAKK9Cf0JDQn9CY0Isg0KLQntCU0J7QoAor0J/QkNCf0JjQiyDQktCV0KDQkAor0J/QkNCf0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JDQn9CY0Isg0JfQntCg0JjQptCQCivQn9CQ0J/QmNCaINCS0JjQmtCi0J7QoAor0J/QkNCf0JjQm9CY0J7QnSDQkdCe0KDQmNCo0JrQkAor0J/QkNCf0JvQkNCm0JrQniDQktCV0JvQmNCc0JjQoAor0J/QkNCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQn9Ce0JLQmNCLINCR0JvQkNCW0J4KK9Cf0JDQn9Ce0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQn9CQ0J/QntCS0JjQiyDQmtCg0KHQotCeCivQn9CQ0J/QntCS0JjQiyDQnNCY0JvQlQor0J/QkNCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQn9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QkNCf0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0JDQn9Ce0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQn9CQ0J/QoNCY0Isg0JbQmNCS0JDQnQor0J/QkNCf0KDQmNCLINCC0J7QoNCC0JUKK9Cf0JDQn9Cg0JjQiyDQnNCQ0KDQmtCeCivQn9CQ0J/QoNCY0Isg0KDQkNCI0JrQngor0J/QkNCf0KPQk9CQINCC0KPQoNCQCivQn9CQ0J/Qo9CT0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0J/Qo9CT0JAg0JXQo9Ck0JXQnNCY0IjQkAor0J/QkNCf0KPQk9CQINCY0KDQmNCd0JAKK9Cf0JDQn9Cj0JPQkCDQiNCQ0KDQntCh0JvQkNCSCivQn9CQ0J/Qo9CT0JAg0JrQmNCg0JjQmwor0J/QkNCf0KPQk9CQINCJ0KPQkdCe0JzQmNCgCivQn9CQ0J/Qo9CT0JAg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQn9Cj0JPQkCDQotCQ0KLQiNCQ0J3QkAor0J/QkNCf0KPQk9CQINCS0JXQoNCQCivQn9CQ0J/Qo9CT0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCf0KPQm9CY0J0g0ILQldCg0ILQmNCa0JAKK9Cf0JDQn9Cj0JvQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQn9Cj0JvQmNCdINCU0J7QkdCg0JjQndCQCivQn9CQ0J/Qo9Cb0JjQnSDQoNCQ0JTQntCI0JrQkAor0J/QkNCg0KfQmNCLINCd0JDQgtCQINCU0KAKK9Cf0JDQoNCQ0JHQo9CL0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQn9CQ0KDQkNCR0KPQi9Ch0JrQmC3QodCY0JzQmNCLINCg0KPQltCY0KbQkAor0J/QkNCg0JDQkdCj0IvQodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSINCd0J7QktCY0J3QkNCgCivQn9CQ0KDQkNCR0KPQptCa0Jgg0JvQkNCX0JDQoAor0J/QkNCg0JDQkdCj0KbQmtCYINCJ0JjQidCQ0J3QkAor0J/QkNCg0JDQkyDQodCi0JXQktCQ0J0KK9Cf0JDQoNCQ0J3QlNCY0JvQntCS0JjQiyDQoNCe0KHQkAor0J/QkNCg0JDQn9CY0JQg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQoNCQ0JLQmNCbINCd0JjQmtCe0JvQkAor0J/QkNCg0JDQktCY0J3QkCDQiNCQ0KDQnNCY0JvQkAor0J/QkNCg0JDQktCY0J3QkCDQnNCY0JvQntCoCivQn9CQ0KDQlNCe0JLQmNCm0JrQmCDQpNCV0KDQldCd0KYKK9Cf0JDQoNCU0J7QktCY0KbQmtCYINCk0KDQkNCK0JAKK9Cf0JDQoNCU0J7QktCY0KbQmtCYINCc0JDQoNCY0IjQkAor0J/QkNCg0JXQltCQ0J3QmNCdINCg0JDQlNCY0JLQntCICivQn9CQ0KDQldCW0JDQndCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCg0JXQltCQ0J3QmNCdINCS0JvQkNCU0JjQodCb0JDQkgor0J/QkNCg0KXQkNCd0J7QkiDQktCY0JrQotCe0KDQmNCI0JAKK9Cf0JDQoNCY0KfQldCS0JjQiyDQldCS0JAKK9Cf0JDQoNCY0Isg0KHQotCY0J/QlQor0J/QkNCg0JjQn9Ce0JIg0IjQldCb0JAKK9Cf0JDQoNCY0J/QntCSINCc0JjQm9CQ0J0KK9Cf0JDQoNCY0J/QntCSINCc0JjQm9CV0J3QmtCeCivQn9CQ0KDQmNCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQoNCY0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0KDQmNCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCg0JjQn9Ce0JLQmNCLINCI0J7QktCeCivQn9CQ0KDQmNCf0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQoNCY0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QkNCg0JjQn9Ce0JLQmNCLINCc0JjQm9CVCivQn9CQ0KDQmNCf0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QkNCg0JjQn9Ce0JLQmNCLINCf0JDQiNCQCivQn9CQ0KDQmNCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCg0JjQn9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0KDQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JrQkAor0J/QkNCg0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JDQoNCa0JDQitCYINCh0JDQnNCj0JXQmwor0J/QkNCg0JvQkNCLINCJ0KPQkdCe0JzQmNCgCivQn9CQ0KDQm9CQ0Isg0JzQkNCg0JjQndCa0J4KK9Cf0JDQoNCb0JDQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCg0JvQmNCLINCQ0J3QkAor0J/QkNCg0JvQmNCLINCI0JXQktCi0JAKK9Cf0JDQoNCb0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQoNCc0JDQiyDQndCV0JTQldCJ0JrQngor0J/QkNCg0J3QmNCm0JrQmCDQmNCS0JDQnQor0J/QkNCg0J3QmNCm0JrQmCDQiNCe0JLQkNCdCivQn9CQ0KDQntCo0JrQkNCIINCC0KPQoNCQCivQn9CQ0KDQntCo0JrQkNCIINCU0JDQndCY0JvQngor0J/QkNCg0J7QqNCa0Jgg0ILQntCg0ILQlQor0J/QkNCg0J7QqNCa0Jgg0ILQntCg0ILQlQor0J/QkNCg0J7QqNCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQoNCe0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KDQntCo0JrQmCDQkNCd0JAKK9Cf0JDQoNCe0KjQmtCYINCQ0J3QmtCY0KbQkAor0J/QkNCg0J7QqNCa0Jgg0JHQntCg0JjQktCe0IgKK9Cf0JDQoNCe0KjQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0J/QkNCg0J7QqNCa0Jgg0JTQkNCc0IjQkNCdCivQn9CQ0KDQntCo0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JDQoNCe0KjQmtCYINCU0J7QkdCg0JjQm9CQCivQn9CQ0KDQntCo0JrQmCDQlNCg0JDQk9CQ0J0KK9Cf0JDQoNCe0KjQmtCYINCU0KPQqNCQ0J0KK9Cf0JDQoNCe0KjQmtCYINCT0JvQmNCo0JAKK9Cf0JDQoNCe0KjQmtCYINCT0J7QoNCU0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JjQktCQ0J0KK9Cf0JDQoNCe0KjQmtCYINCI0JXQm9CV0J3QkAor0J/QkNCg0J7QqNCa0Jgg0IjQldCb0JjQptCQCivQn9CQ0KDQntCo0JrQmCDQiNCe0JLQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCQ0KDQmNCI0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9CQ0J0KK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9CQ0J0KK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9CQ0J0KK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9CY0KbQkAor0J/QkNCg0J7QqNCa0Jgg0JzQmNCb0J7QqAor0J/QkNCg0J7QqNCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9Ce0JLQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0KDQkAor0J/QkNCg0J7QqNCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQoNCa0J4KK9Cf0JDQoNCe0KjQmtCYINCd0JXQodCi0J7QoAor0J/QkNCg0J7QqNCa0Jgg0J7QkdCg0JXQnQor0J/QkNCg0J7QqNCa0Jgg0J7Qm9CT0JAKK9Cf0JDQoNCe0KjQmtCYINCf0JXQotCQ0KAKK9Cf0JDQoNCe0KjQmtCYINCf0KPQndCY0KjQkAor0J/QkNCg0J7QqNCa0Jgg0KDQkNCU0JzQmNCb0JAKK9Cf0JDQoNCe0KjQmtCYINCg0JDQiNCa0J4KK9Cf0JDQoNCe0KjQmtCYINCg0J7QltCQCivQn9CQ0KDQntCo0JrQmCDQodCQ0JLQkAor0J/QkNCg0J7QqNCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9Cf0JDQoNCe0KjQmtCYINCh0J7QpNCY0IjQkAor0J/QkNCg0J7QqNCa0Jgg0KHQotCV0JLQkNCdCivQn9CQ0KDQntCo0JrQmCDQktCV0KDQntCJ0KPQkQor0J/QkNCg0J7QqNCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCg0J7QqNCa0Jgg0JfQkNCT0J7QoNCa0JAKK9Cf0JDQoNCe0KbQmCDQiNCe0KHQmNCfCivQn9CQ0KDQntCm0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCg0J7QptCYINCa0JDQoNCb0J4KK9Cf0JDQoNCe0KbQmCDQidCY0InQkNCd0JAKK9Cf0JDQoNCe0KbQmCDQotCY0JHQntCgCivQn9CQ0KDQntCm0Jgg0KLQmNCR0J7QoAor0J/QkNCg0J7QptCYINCi0JjQkdCe0KAKK9Cf0JDQoNCe0IjQp9CY0Isg0InQo9CR0JjQptCQCivQn9CQ0KDQntCI0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQoNCe0JrQkNCYINCc0JjQoNCa0J4KK9Cf0JDQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QkNCg0KPQltCY0Isg0J/QkNCd0KLQkAor0J/QkNCg0KPQptCa0Jgg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQodCQ0KDQmNCLINCg0KPQltCQCivQn9CQ0KHQmtCQ0Kgg0JzQmNCb0JDQnQor0J/QkNCh0JrQkNCoINCc0JjQm9Ca0JAKK9Cf0JDQodCa0JDQqCDQndCQ0KLQkNCo0JAKK9Cf0JDQodCa0JDQm9CYINCT0J7QoNCQ0J0KK9Cf0JDQodCa0JDQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KHQmtCjINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QkNCh0JrQo9Cb0J7QkiDQnNCY0KDQntCJ0KPQkQor0J/QkNCh0KIg0KDQntCR0JXQoNCiCivQn9CQ0KHQotCV0KDQmtCeINCh0KLQldCS0JDQnQor0J/QkNCh0KLQntCK0JjQptCa0Jgg0JXQm9CV0JzQmNCgCivQn9CQ0KHQotCe0KAg0JPQldCX0JAKK9Cf0JDQodCi0J7QoCDQiNCQ0J3QntCoCivQn9CQ0KHQotCe0KAg0IjQkNCd0J7QqAor0J/QkNCh0KLQntCgINCI0J7QodCY0J8KK9Cf0JDQodCi0J7QoCDQiNCe0KHQmNCfCivQn9CQ0KHQotCe0KAg0IjQntCX0JXQpAor0J/QkNCh0KLQntCgINCb0JDQodCb0J4KK9Cf0JDQodCi0J7QoCDQnNCQ0KDQmNCI0JAKK9Cf0JDQodCi0J7QoCDQnNCY0KXQkNCI0JvQngor0J/QkNCh0KLQntCgINCc0JjQm9CQ0J0KK9Cf0JDQodCi0J7QoCDQn9CV0KLQkNCgCivQn9CQ0KHQotCe0KAg0KHQotCI0JXQn9CQ0J0KK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0ILQo9Cg0ILQmNCd0JrQkAor0J/QkNCh0KLQntCg0J3QkNCn0JrQmCDQm9CQ0JfQkNCgCivQn9CQ0KHQotCe0KDQndCQ0KfQmtCYINCJ0KPQkdCY0KjQkAor0J/QkNCh0KLQntCg0J3QkNCn0JrQmCDQnNCQ0KDQmNCI0JAKK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCh0KLQntCg0IrQmNCm0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0J/QkNCi0JDQpNCi0JAg0IjQo9Cb0JjQiNCQCivQn9CQ0KLQkNCk0KLQkCDQodCi0JXQktCQ0J0KK9Cf0JDQotCQ0Igg0JDQoNCQ0J3QmtCQINCU0KAKK9Cf0JDQotCQ0Jog0J/QkNCS0JvQlQor0J/QkNCi0JDQmtCYINCQ0J3QkAor0J/QkNCi0JDQmtCYINCV0JLQkAor0J/QkNCi0JDQmtCYINCT0J7QoNCQ0J0KK9Cf0JDQotCQ0KDQmNCLINCh0KLQmNCf0JDQnQor0J/QkNCi0JDQoNCY0KbQkCDQldCb0JXQnNCV0KAKK9Cf0JDQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QkNCi0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QkNCi0JjQiyDQoNCQ0KLQmtCeCivQn9CQ0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQotCb0JXQiNClINCd0JDQlNCV0JbQlNCQCivQn9CQ0KLQoNCY0Jog0JvQkNCI0J7QqAor0J/QkNCi0KDQmNCaINCh0KLQldCS0JDQnQor0J/QkNCi0KDQndCe0JPQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQotCg0J3QntCT0JjQiyDQlNCj0KjQkNCdINCU0KAKK9Cf0JDQotCg0J3QntCT0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0JDQotCg0J3QntCT0JjQiyDQm9CY0JTQmNCI0JAKK9Cf0JDQo9Co0JjQiyDQmNCS0JDQnQor0J/QkNCj0KjQmNCLINCc0JDQoNCa0J4KK9Cf0JDQo9Ca0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQo9CbINCa0JDQotCY0KbQkAor0J/QkNCj0Jsg0JvQkNCI0J7QqAor0J/QkNCj0Jsg0JvQkNCI0J7QqAor0J/QkNCj0Jsg0J7QodCa0JDQoAor0J/QkNCj0JvQmNCLINCc0JjQm9CVCivQn9CQ0KPQm9CY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQo9Cb0JjQmiDQn9CV0KDQngor0J/QkNCj0JvQmNCaINCf0JXQotCQ0KAKK9Cf0JDQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J/QkNCj0J3QldCh0JrQoyDQktCQ0KHQkAor0J/QkNCj0J3QmNCLINCW0JjQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0KPQndCY0Isg0ILQo9Cg0JAKK9Cf0JDQo9Cd0JjQiyDQkNCb0JjQnNCf0JjQiNCVCivQn9CQ0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0KPQndCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0KPQndCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QkNCj0J3QmNCLINCY0JvQmNCI0JAKK9Cf0JDQo9Cd0JjQiyDQm9CQ0JfQkNCgCivQn9CQ0KPQndCY0Isg0JzQmNCb0JDQndCQCivQn9CQ0KPQndCY0Isg0JzQmNCb0JXQktCQCivQn9CQ0KPQndCY0Isg0JzQmNCb0JUKK9Cf0JDQo9Cd0JjQiyDQodCi0JDQndCY0JzQmNCgCivQn9CQ0KPQndCY0Isg0KLQntCc0JAKK9Cf0JDQo9Cd0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QkNCj0J3QmtCe0JLQmNCLINCI0J7QktCQ0J3QkAor0J/QkNCj0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QkNCj0J3QmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQn9CQ0KPQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCj0J3QmtCjINCQ0KPQoNCV0JvQmNCI0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0KfQkNCh0JvQkNCSCivQn9CQ0KPQndCe0JLQmNCLINCQ0J3QotCeCivQn9CQ0KPQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QkNCj0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQn9CQ0KPQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QkNCj0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JDQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCj0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQn9CQ0KPQndCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQn9CQ0KPQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCj0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0KPQndCe0JLQmNCLINCI0J7QktCY0KbQkAor0J/QkNCj0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CQ0KPQndCe0JLQmNCLINCJ0KPQkdCY0JLQntCI0JUKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQkNCg0JjQndCQCivQn9CQ0KPQndCe0JLQmNCLINCc0JXQm9CY0J3QlNCQCivQn9CQ0KPQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCj0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0J/QkNCj0J0KK9Cf0JDQo9Cd0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCj0J3QntCS0JjQiyDQoNCQ0JTQntCoCivQn9CQ0KPQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQo9Cd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCj0J3QntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0J/QkNCj0J3QntCS0JjQiyDQodCb0JDQktCQCivQn9CQ0KPQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CQ0KPQndCe0JLQmNCLINCh0KDQkdCY0KbQkAor0J/QkNCj0J3QntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQn9CQ0KPQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JDQo9Cd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0J/QkNCj0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0KPQndCe0JLQmNCLINCX0JLQntCd0JrQngor0J/QkNCj0KIg0JzQmNCb0JDQnQor0J/QkNCj0JfQldCd0JHQldCg0JPQldCgINCY0KDQldCd0JAKK9Cf0JDQo9CX0JXQndCR0JXQoNCT0JXQoCDQiNCe0JLQkNCdCivQn9CQ0JLQkNCYINCk0KDQkNCK0JAKK9Cf0JDQktCV0JvQmtCQINCU0JDQndCY0JXQm9CQCivQn9CQ0JLQldCb0JrQkCDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0JLQmNCnINCU0JDQndCY0KbQkAor0J/QkNCS0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQktCY0KfQldCS0JjQiyDQndCQ0JTQkAor0J/QkNCS0JjQp9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JDQktCY0KfQmNCLINCY0JLQkNCdCivQn9CQ0JLQmNCn0JjQiyDQnNCY0KDQmtCeCivQn9CQ0JLQmNCo0JjQiyDQgtCj0KDQkAor0J/QkNCS0JjQiyDQgtCj0KDQngor0J/QkNCS0JjQiyDQkNCd0JrQkAor0J/QkNCS0JjQiyDQkNCg0J7QnQor0J/QkNCS0JjQiyDQkdCY0InQkNCd0JAKK9Cf0JDQktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JjQiyDQk9CQ0KjQngor0J/QkNCS0JjQiyDQk9Ce0IjQmtCeCivQn9CQ0JLQmNCLINCI0J7QltCV0KQKK9Cf0JDQktCY0Isg0InQo9CR0JjQqNCQCivQn9CQ0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JDQktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQmNCLLdCh0KPQm9Ce0KbQmtCYINCV0KHQotCV0KAKK9Cf0JDQktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0J/QkNCS0JjQiyDQktCV0J3QmtCeCivQn9CQ0JLQmNCLINCS0JXQoNCa0JAKK9Cf0JDQktCY0IvQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JjQi9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQmNCL0JXQktCY0Isg0JDQndCQ0J3QmNCI0JUKK9Cf0JDQktCY0IvQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCV0KHQkAor0J/QkNCS0JjQi9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQmNCL0JXQktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JLQmNCL0JXQktCY0Isg0InQmNCJ0JDQndCQCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0JDQndCa0J4KK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0JvQntCoCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0KDQkAor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JDQktCY0IvQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQktCY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0JLQmNCdINCJ0KPQkdCY0KbQkAor0J/QkNCS0JrQntCSINCW0JjQktCa0J4KK9Cf0JDQktCa0J7QkiDQltCY0JLQntCI0JjQnQor0J/QkNCS0JrQntCSINCC0KPQoNCC0JXQktCa0JAKK9Cf0JDQktCa0J7QkiDQgtCj0KDQgtCY0J3QkAor0J/QkNCS0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQmtCe0JIg0JDQndCa0JAKK9Cf0JDQktCa0J7QkiDQkdCe0JbQmNCU0JDQoAor0J/QkNCS0JrQntCSINCR0J7QodCY0InQmtCQCivQn9CQ0JLQmtCe0JIg0JHQoNCQ0J3QmtCeCivQn9CQ0JLQmtCe0JIg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQmtCe0JIg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQmtCe0JIg0JTQo9Co0JDQnQor0J/QkNCS0JrQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCa0J7QkiDQk9Ce0IjQmtCeCivQn9CQ0JLQmtCe0JIg0JPQntCg0JTQkNCd0JAKK9Cf0JDQktCa0J7QkiDQmNCS0JDQndCa0JAKK9Cf0JDQktCa0J7QkiDQiNCe0JLQkNCdCivQn9CQ0JLQmtCe0JIg0IjQntCS0JDQnQor0J/QkNCS0JrQntCSINCI0J7QktCQ0J0KK9Cf0JDQktCa0J7QkiDQmtCQ0KLQmNCm0JAKK9Cf0JDQktCa0J7QkiDQm9CQ0JfQkNCgCivQn9CQ0JLQmtCe0JIg0JzQmNCb0JDQnQor0J/QkNCS0JrQntCSINCc0JjQm9CQ0J0KK9Cf0JDQktCa0J7QkiDQnNCY0JvQkNCdCivQn9CQ0JLQmtCe0JIg0JzQmNCb0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQmtCe0JIg0JzQmNCb0J7QqAor0J/QkNCS0JrQntCSINCc0JjQm9Ce0IjQlQor0J/QkNCS0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQn9CQ0JLQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J/QkNCS0JrQntCSINCc0JjQotCQ0KAKK9Cf0JDQktCa0J7QkiDQndCQ0JTQkAor0J/QkNCS0JrQntCSINCd0JDQlNCQCivQn9CQ0JLQmtCe0JIg0J/QkNCS0JvQlQor0J/QkNCS0JrQntCSINCf0JXQotCQ0KAKK9Cf0JDQktCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0J/QkNCS0JrQntCSINCg0JDQlNCe0JLQkNCdCivQn9CQ0JLQmtCe0JIg0KDQkNCi0J7QnNCY0KAKK9Cf0JDQktCa0J7QkiDQodCQ0JLQkAor0J/QkNCS0JrQntCSINCh0JDQktCQCivQn9CQ0JLQmtCe0JIg0KHQmNCd0JjQqNCQCivQn9CQ0JLQmtCe0JIg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQmtCe0JIg0KPQoNCe0KgKK9Cf0JDQktCa0J7QkiDQktCY0KLQntCc0JjQoAor0J/QkNCS0JrQntCSINCX0J7QoNCQ0J0KK9Cf0JDQktCa0J7QkiDQl9Ce0KDQmtCQCivQn9CQ0JLQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CQ0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQktCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cf0JDQktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JDQktCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JDQktCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CQ0JLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CQ0JLQmtCe0JLQmNCLINCg0JDQlNCe0IjQlQor0J/QkNCS0JvQldCa0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQktCb0JXQodCa0Jgg0JzQldCd0JrQkAor0J/QkNCS0JvQldCS0KHQmtCYINCU0JXQodCQCivQn9CQ0JLQm9CV0JLQodCa0Jgg0KLQoNCQ0IjQkNCdCivQn9CQ0JLQm9CY0Kcg0JzQmNCg0JrQngor0J/QkNCS0JvQmNCn0JjQiyDQmtCg0JXQqNCY0JzQmNCgCivQn9CQ0JLQm9CY0KfQmNCLINCJ0KPQkdCY0KjQkCDQlNCgCivQn9CQ0JLQm9CY0Isg0ILQntCg0ILQlQor0J/QkNCS0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQktCb0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9CY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQktCb0JjQiyDQktCb0JDQlNCQCivQn9CQ0JLQm9CY0IvQldCSINCC0J7QoNCC0JUKK9Cf0JDQktCb0JjQptCQINCR0KDQkNCd0JjQodCb0JDQkgor0J/QkNCS0JvQmNCm0JAg0IjQntCS0JDQnQor0J/QkNCS0JvQmNCm0JAg0JvQkNCX0JDQoAor0J/QkNCS0JvQmNCm0JAg0JzQkNCg0JjQptCQCivQn9CQ0JLQm9CY0KbQkCDQnNCY0KbQkAor0J/QkNCS0JvQmNCm0JAg0JzQmNCb0JDQnQor0J/QkNCS0JvQmNCm0JAg0JzQmNCb0JXQndCQCivQn9CQ0JLQm9CY0KbQkCDQnNCY0JvQldCS0JAKK9Cf0JDQktCb0JjQptCQINCd0JDQlNCQCivQn9CQ0JLQm9CY0KbQkCDQndCY0JrQntCb0JAKK9Cf0JDQktCb0JjQptCQINCd0JjQmtCe0JvQkAor0J/QkNCS0JvQmNCm0JAg0KHQkNCS0J4KK9Cf0JDQktCb0JjQptCQINCh0J7QpNCY0IjQkAor0J/QkNCS0JvQmNCm0JAg0KLQntCU0J7QoAor0J/QkNCS0JvQmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCS0JvQmNCaINCQ0J3QotCQ0JsKK9Cf0JDQktCb0JjQmiDQiNCe0KHQmNCfCivQn9CQ0JLQm9CY0Jog0JrQkNCi0JDQoNCY0J3QkAor0J/QkNCS0JvQmNCaINCc0JjQqNCQCivQn9CQ0JLQm9CY0Jog0JLQmNCd0JrQngor0J/QkNCS0JvQntCSINCW0JDQoNCa0J4KK9Cf0JDQktCb0J7QkiDQltCY0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0JbQmNCS0JrQkAor0J/QkNCS0JvQntCSINCC0J7QmtCQCivQn9CQ0JLQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JIg0JHQntCT0JTQkNCd0JrQkAor0J/QkNCS0JvQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQktCb0J7QkiDQlNCQ0J3QmNCm0JAKK9Cf0JDQktCb0J7QkiDQlNCQ0J3QmNCb0J4KK9Cf0JDQktCb0J7QkiDQlNCg0JDQk9CY0IrQkAor0J/QkNCS0JvQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQktCb0J7QkiDQlNCj0KjQkNCd0JrQkAor0J/QkNCS0JvQntCSINCU0KPQqNCQ0J3QmtCQCivQn9CQ0JLQm9Ce0JIg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QkiDQiNCe0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0JrQkNCi0JjQptCQCivQn9CQ0JLQm9Ce0JIt0JrQntCh0KLQmNCLINCQ0J3QkCDQlNCgCivQn9CQ0JLQm9Ce0JIg0JrQntCS0JjQidCa0JAKK9Cf0JDQktCb0J7QkiDQmtCg0JjQodCi0JjQndCQCivQn9CQ0JLQm9Ce0JIg0JrQo9CX0JzQkNCdCivQn9CQ0JLQm9Ce0JIg0JvQkNCX0JDQoAor0J/QkNCS0JvQntCSINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QkiDQidCj0JHQmNCm0JAKK9Cf0JDQktCb0J7QkiDQidCj0JHQmNCm0JAKK9Cf0JDQktCb0J7QkiDQnNCQ0KDQmNCI0JAKK9Cf0JDQktCb0J7QkiDQnNCY0JvQkNCdCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0JXQotCQCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cf0JDQktCb0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQktCb0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QkNCS0JvQntCSINCc0JjQm9Cj0KLQmNCdCivQn9CQ0JLQm9Ce0JIg0JzQmNCg0JAKK9Cf0JDQktCb0J7Qki3QnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkCDQlNCgCivQn9CQ0JLQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCS0JvQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QkiDQnNCY0KLQmtCeCivQn9CQ0JLQm9Ce0JIg0J3QkNCU0JAKK9Cf0JDQktCb0J7QkiDQndCQ0JTQkAor0J/QkNCS0JvQntCSINCd0JDQotCQ0JvQmNCI0JAKK9Cf0JDQktCb0J7QkiDQndCV0JLQldCd0JrQkAor0J/QkNCS0JvQntCSINCe0JvQk9CQCivQn9CQ0JLQm9Ce0JIg0J/QkNCI0JAKK9Cf0JDQktCb0J7QkiDQn9CQ0JLQldCbCivQn9CQ0JLQm9Ce0JIg0J/QkNCS0JXQmwor0J/QkNCS0JvQntCSINCf0JDQktCb0JUKK9Cf0JDQktCb0J7QkiDQn9CV0KLQkNCgCivQn9CQ0JLQm9Ce0JIg0J/QldCi0JDQoAor0J/QkNCS0JvQntCSINCg0JDQlNCQCivQn9CQ0JLQm9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQnNCY0JvQkAor0J/QkNCS0JvQntCSINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QkNCS0JvQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QkiDQodCQ0JLQkAor0J/QkNCS0JvQntCSINCh0JDQktCQCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQotCe0IjQkNCdCivQn9CQ0JLQm9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0J/QkNCS0JvQntCSINCS0JDQodCY0JvQmNCI0JUKK9Cf0JDQktCb0J7QkiDQktCV0KDQkAor0J/QkNCS0JvQntCSINCS0JXQoNCQCivQn9CQ0JLQm9Ce0JIg0JLQldCg0JjQptCQCivQn9CQ0JLQm9Ce0JIg0JLQmNCU0J7QodCQ0JLQkAor0J/QkNCS0JvQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQktCb0J7QkiDQktCb0JDQodCi0JjQnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0JbQkNCg0JrQngor0J/QkNCS0JvQntCS0JjQiy3QltCV0J3QldCgINCe0JvQk9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JDQktCb0J7QktCY0Isg0ILQntCg0ILQlQor0J/QkNCS0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0J4KK9Cf0JDQktCb0J7QktCY0Isg0ILQntCg0ILQngor0J/QkNCS0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0JvQldCa0KHQmNCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0J3QmtCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCS0JvQntCS0JjQiyDQkdCb0JDQk9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCR0J7QltCeCivQn9CQ0JLQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0J/QkNCS0JvQntCS0JjQiyDQkdCe0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQkdCe0KDQmNCh0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQptCS0JXQotCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQldCI0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCS0JvQntCS0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JrQngor0J/QkNCS0JvQntCS0JjQiyDQldCc0JjQmwor0J/QkNCS0JvQntCS0JjQiyDQldCg0JbQldCR0JXQogor0J/QkNCS0JvQntCS0JjQiyDQldCg0JbQldCR0JXQogor0J/QkNCS0JvQntCS0JjQiyDQk9Ce0IjQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCT0J7QoNCY0J3QmtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QkNCS0JvQntCS0JjQiyDQmNCb0J7QndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JvQntCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQoNCY0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQktCb0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0IjQkNCT0J4KK9Cf0JDQktCb0J7QktCY0Isg0IjQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQiNCQ0J3QmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JDQndCe0KgKK9Cf0JDQktCb0J7QktCY0Isg0IjQldCb0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQiNCe0JDQmtCY0JwKK9Cf0JDQktCb0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCI0J7QktCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCa0JDQotCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0J/QkNCS0JvQntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQkNCT0JTQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCQ0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQktCb0J7QktCY0Isg0JzQkNCg0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQkNCg0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQlQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQlQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQnNCY0InQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQmtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0IjQlQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCh0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQINCU0KAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0JrQniDQlNCY0J/QmyDQntCV0KYKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0JrQngor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JDQlNCQINCU0KAKK9Cf0JDQktCb0J7QktCY0Isg0J3QkNCU0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QkNCU0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QldCU0JXQidCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0J3QldCc0JDQitCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQnNCQ0IrQkAor0J/QkNCS0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JjQmtCe0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QmNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QntCS0JDQmgor0J/QkNCS0JvQntCS0JjQiyDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0JDQktCb0J7QktCY0Isg0J/QldCC0JAKK9Cf0JDQktCb0J7QktCY0Isg0J/QldCg0J4KK9Cf0JDQktCb0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0J/Qm9CV0JzQldCd0JrQkAor0J/QkNCS0JvQntCS0JjQiy3Qn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkCDQlNCgINCb0JXQmtCQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQktCb0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQktCb0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgINCU0JjQn9CbINCe0JXQpgor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQoCDQktCV0KLQldCg0JjQndCVCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0KLQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JDQktCeCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JjQnNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JjQnNCV0J7QnQor0J/QkNCS0JvQntCS0JjQiyDQodCY0JzQldCe0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQktCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JzQmNCJ0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCQ0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQodCi0JDQndCY0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCd0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0KLQntCo0JAKK9Cf0JDQktCb0J7QktCY0Isg0KLQntCc0JAKK9Cf0JDQktCb0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkiDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JXQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JXQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JXQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQlNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQktCY0JTQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQotCe0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQotCe0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCX0J7QoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQn9CQ0JLQm9Ce0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCb0J7QktCh0JrQmCDQnNCQ0KDQmNCI0JAKK9Cf0JDQktCb0J7QktCh0JrQmCDQodCV0KDQk9CV0IgKK9Cf0JDQktCe0KjQldCS0JjQiyDQkNCd0JrQkAor0J/QkNCS0J7QqNCV0JLQmNCLINCg0J7QlNCe0InQo9CRCivQn9CQ0JfQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0J/QkNCX0JzQkNCKINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JXQp9CQ0KDQmNCLINCa0JDQotCY0KbQkAor0J/QldCn0Jgg0JPQldCX0JAKK9Cf0JXQp9CYINCY0KjQotCS0JDQnQor0J/QldCn0Jgg0JzQkNCg0JjQiNCQCivQn9CV0KfQmtCQ0Jgt0JrQntCS0JDQpyDQkNCd0JAKK9Cf0JXQp9Ca0JDQmCDQnNCQ0KDQk9CY0KLQkAor0J/QldCn0JLQkNCg0JDQpiDQodCi0JDQndCe0IjQlQor0J/QldCo0JXQitCQ0J3QodCa0Jgg0JjQktCQ0J0KK9Cf0JXQqNCV0IrQkNCd0KHQmtCYINCY0JLQkNCdCivQn9CV0KjQldCK0JDQndCh0JrQmCDQmtCQ0KDQm9CeCivQn9CV0KjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JXQqNCV0JLQodCa0Jgg0ILQntCa0JAKK9Cf0JXQqNCV0JLQodCa0Jgg0KLQntCc0JUKK9Cf0JXQqNCV0JLQodCa0Jgg0JLQm9CQ0JTQngor0J/QldCo0JjQiyDQltCY0JLQkNCdCivQn9CV0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KjQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CV0KjQmNCLINCR0KPQlNCY0JzQmNCgCivQn9CV0KjQmNCLINCU0JXQodCY0JzQmNCgCivQn9CV0KjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCo0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQqNCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KjQmNCLINCU0KDQkNCT0JjQptCQCivQn9CV0KjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QldCo0JjQiyDQk9Ce0IjQmtCeCivQn9CV0KjQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JXQqNCY0Isg0JjQm9CY0IjQkAor0J/QldCo0JjQiyDQiNCe0KDQlNCQ0J0KK9Cf0JXQqNCY0Isg0IjQntCS0JDQnQor0J/QldCo0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQqNCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JXQqNCY0Isg0JzQmNCb0JDQnQor0J/QldCo0JjQiyDQnNCY0JvQmNCd0JrQngor0J/QldCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QldCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QldCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KjQmNCLINCf0JXQotCQ0KAKK9Cf0JXQqNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0JXQqNCY0Isg0KDQkNCI0JrQngor0J/QldCo0JjQiyDQoNCj0JbQkAor0J/QldCo0JjQiyDQodCQ0JLQkAor0J/QldCo0JjQiyDQodCi0JDQndCe0IjQlQor0J/QldCo0JjQiyDQodCi0JXQktCQ0J0g0JTQoAor0J/QldCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KjQmNCLINCS0KPQmtCQ0KjQmNCdCivQn9CV0KjQmNCa0JDQnSDQotCY0KXQntCc0JjQoAor0J/QldCo0JjQmtCQ0J0g0JLQo9CaCivQn9CV0KjQmtCQINCQ0J3QkAor0J/QldCo0JrQkNCdINCU0KDQkNCT0JDQnQor0J/QldCo0JrQkNCdINCS0JXQoNCQCivQn9CV0KjQmtCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQn9CV0KjQmtCQ0J3QntCSINCf0JXQoNCh0JjQlNCQCivQn9CV0KjQmtCQ0J3QntCSINCh0KLQldCS0JDQnQor0J/QldCo0JrQkNCd0J7QkiDQotCe0JTQntCgCivQn9CV0KjQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQn9CV0KjQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JXQqNCi0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQqNCi0JXQoNCQ0KYg0KfQldCU0J7QnNCY0KAKK9Cf0JXQqNCi0JXQoNCQ0KYg0JzQmNCb0J7QnNCY0KAKK9Cf0JXQqNCi0JXQoNCQ0KYg0JzQmNCb0KPQotCY0J0KK9Cf0JXQqNCi0Jgg0IjQntCW0JXQpAor0J/QldCo0KPQoiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0J/QldCo0KPQoiDQkdCe0KjQmtCeCivQn9CV0KjQo9CiINCR0KDQkNCd0JrQngor0J/QldCo0KPQoiDQlNCj0KjQkNCdCivQn9CV0KjQo9CiINCU0KPQqNCQ0J0KK9Cf0JXQqNCj0KIg0JjQm9CY0IjQkAor0J/QldCo0KPQoiDQnNCQ0KDQmNCI0JAKK9Cf0JXQqNCj0KIg0JzQmNCb0JDQnQor0J/QldCo0KPQoiDQnNCY0JvQmNCm0JAKK9Cf0JXQqNCj0KIg0KHQm9CQ0JLQmtCQCivQn9CV0KjQo9CiINCh0JzQmNCJ0JAKK9Cf0JXQqNCj0KIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCL0JDQndCQ0KYg0JHQntCh0JjQidCa0JAKK9Cf0JXQi9CQ0J3QkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCL0JDQndCQ0KYg0IjQntCS0JDQnQor0J/QldCL0JDQndCQ0KYg0J3QmNCa0J7Qm9CQCivQn9CV0IvQkNCd0JDQpiDQktCV0KHQndCQCivQn9CV0IvQkNCd0JjQnSDQlNCj0KjQkNCdCivQn9CV0IvQkNCd0JjQnSDQidCj0JHQmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0IvQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JXQi9CQ0J3QmNCdINCe0JzQmNCJ0JXQnQor0J/QldCL0JDQndCY0J0t0JLQldCg0JzQldCX0J7QktCY0Isg0J7QidCQCivQn9CV0IvQmtCeINCU0JDQndCY0JvQngor0J/QldCL0JrQniDQktCV0KDQkAor0J/QldCL0J4g0JvQkNCX0JDQoAor0J/QldCL0J4g0JvQo9Ca0JAKK9Cf0JXQi9CeINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQpiDQiNCj0JvQmNCI0JUKK9Cf0JXQptCQ0KDQodCa0Jgg0JvQldCa0KHQkAor0J/QldCm0JUg0ILQntCg0ILQlQor0J/QldCm0JUg0ILQntCg0ILQlQor0J/QldCm0JUg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQptCVINCQ0J3QotCe0J0KK9Cf0JXQptCVINCY0JvQldCoCivQn9CV0KbQlSDQl9Ce0JvQotCQ0J0KK9Cf0JXQptCV0Ikg0JHQntCW0J4KK9Cf0JXQptCV0Ikg0KHQotCV0JLQkNCdCivQn9CV0KbQmNCLINCQ0KbQkAor0J/QldCm0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KbQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KbQmNCLINCh0KLQldCS0JDQnQor0J/QldCm0IrQmNCaINCQ0J3QkAor0J/QldCm0J4g0JzQmNCg0KHQkNCUCivQn9CV0KbQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCU0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cf0JXQmNCLLdCi0KPQmtCj0InQkNCmINCS0IjQldCa0J7QodCb0JDQkgor0J/QldCI0KfQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0IjQp9CY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQn9CV0IjQp9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQn9CV0IjQp9CY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QldCI0KfQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cf0JXQiNCn0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9CV0IjQp9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JXQiNCn0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQn9CV0IjQp9CY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0J/QldCI0KfQmNCLINCY0JvQmNCI0JAKK9Cf0JXQiNCn0JjQiyDQmNCb0JjQiNCQCivQn9CV0IjQp9CY0Isg0IjQkNCh0JzQmNCd0JAKK9Cf0JXQiNCn0JjQiyDQiNCe0JLQkNCdCivQn9CV0IjQp9CY0Isg0IjQntCS0JDQnQor0J/QldCI0KfQmNCLINCJ0KPQkdCY0KbQkAor0J/QldCI0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0IjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JXQiNCn0JjQiyDQnNCY0JvQlQor0J/QldCI0KfQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0IjQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCI0KfQmNCLINCc0JjQotCQ0KAKK9Cf0JXQiNCn0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCI0KfQmNCLINCd0J7QktCQ0JoKK9Cf0JXQiNCn0JjQiyDQn9CV0KLQkNCgCivQn9CV0IjQp9CY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQn9CV0IjQp9CY0Isg0KDQo9CW0JAKK9Cf0JXQiNCn0JjQiyDQodCQ0JLQkAor0J/QldCI0KfQmNCLINCh0JDQktCQCivQn9CV0IjQp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CV0IjQp9CY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QldCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQl9Ce0KDQkNCdCivQn9CV0IjQkNCaINCC0J7QoNCC0JUKK9Cf0JXQiNCQ0Jog0ILQo9Cg0JAKK9Cf0JXQiNCQ0Jog0JHQoNCQ0J3QmtCeCivQn9CV0IjQkNCaINCU0KDQkNCT0J7QodCb0JDQktCQCivQn9CV0IjQkNCaINCI0JXQm9CV0J3QkAor0J/QldCI0JDQmiDQiNCe0JLQkNCdCivQn9CV0IjQkNCaINCI0J7QktCY0KbQkAor0J/QldCI0JDQmiDQm9CQ0JfQkNCgCivQn9CV0IjQkNCaINCJ0KPQkdCY0KbQkAor0J/QldCI0JDQmiDQnNCY0JvQkNCdCivQn9CV0IjQkNCaINCc0JjQm9CY0J3QmtCQCivQn9CV0IjQkNCaINCc0JjQntCU0KDQkNCTCivQn9CV0IjQkNCaINCc0JjQoNCI0JDQndCQCivQn9CV0IjQkNCaINCc0J7QiNCQCivQn9CV0IjQkNCaINCd0JXQktCV0J3QmtCQCivQn9CV0IjQkNCaINCg0JDQlNCe0JLQkNCdCivQn9CV0IjQkNCaINCg0JDQiNCa0J4KK9Cf0JXQiNCQ0Jog0KHQkNCS0JAKK9Cf0JXQiNCQ0Jog0KHQm9CQ0JLQmtCeCivQn9CV0IjQkNCaINCi0KDQmNCS0JAKK9Cf0JXQiNCQ0Jog0JLQldCg0JjQptCQCivQn9CV0IjQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQiNCQ0JrQmNCLINCc0JDQoNCa0J4KK9Cf0JXQiNCQ0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0IjQkNCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCI0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQiNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0IjQkNCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JXQiNCQ0JrQntCS0JjQiyDQndCQ0J3QlNCe0KAKK9Cf0JXQiNCQ0JrQntCS0JjQiyDQndCV0J3QkNCUCivQn9CV0IjQkNCa0J7QktCY0Isg0J/QldCg0JjQptCQCivQn9CV0IjQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCI0JDQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CV0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCI0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CV0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QldCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdINCU0KAKK9Cf0JXQiNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0IjQmNCn0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQmNCLINCW0JjQktCQ0J0KK9Cf0JXQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQiNCY0Isg0JDQndCY0KbQkAor0J/QldCI0JjQiyDQkNCd0KLQntCdCivQn9CV0IjQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Cf0JXQiNCY0Isg0JHQntCg0JjQktCe0IgKK9Cf0JXQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQiNCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0IjQmNCLINCU0KDQkNCT0JjQqNCQCivQn9CV0IjQmNCLINCU0KDQkNCT0JjQptCQCivQn9CV0IjQmNCLINCU0KDQkNCT0J4KK9Cf0JXQiNCY0Isg0JTQoNCQ0JPQngor0J/QldCI0JjQiyDQlNCj0KjQkNCdCivQn9CV0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQiNCY0Isg0JTQo9Co0JDQnQor0J/QldCI0JjQiyDQk9CQ0JLQoNCQCivQn9CV0IjQmNCLINCY0JLQkNCdCivQn9CV0IjQmNCLINCY0JLQkNCdCivQn9CV0IjQmNCLINCI0JDQitCQCivQn9CV0IjQmNCLINCI0J7QktCQ0J0KK9Cf0JXQiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQiNCY0Isg0JzQkNCg0JAKK9Cf0JXQiNCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JXQiNCY0Isg0JzQmNCb0JDQnQor0J/QldCI0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JXQiNCY0Isg0JzQmNCb0JjQptCQCivQn9CV0IjQmNCLINCc0JjQm9Ce0KgKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQiNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cf0JXQiNCY0Isg0J3QldCU0JXQidCa0J4KK9Cf0JXQiNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0IjQmNCLINCd0JjQmtCeCivQn9CV0IjQmNCLINCd0J7QktCQ0JoKK9Cf0JXQiNCY0Isg0J7QoNCI0JXQnQor0J/QldCI0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCI0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QldCI0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QldCI0JjQiyDQoNCQ0IjQmtCeCivQn9CV0IjQmNCLINCg0KPQltCY0KbQkAor0J/QldCI0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QldCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQiNCY0Isg0KHQntCk0JjQiNCQCivQn9CV0IjQmNCLINCh0KLQkNCd0JrQngor0J/QldCI0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQiNCY0Isg0KHQotCY0J/QkNCdCivQn9CV0IjQmNCLINCS0JXQoNCY0KbQkAor0J/QldCI0JjQiyDQktCb0JDQlNCeCivQn9CV0IjQmNCdINCC0J7QoNCC0JUKK9Cf0JXQiNCY0J0g0ILQo9Cg0ILQmNCd0JAKK9Cf0JXQiNCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cf0JXQiNCY0J0g0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCI0JjQnSDQkdCg0JDQndCY0JzQmNCgCivQn9CV0IjQmNCdINCR0KDQkNCd0JjQnNCY0KAKK9Cf0JXQiNCY0J0g0JTQldCI0JDQnQor0J/QldCI0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQiNCY0J0g0JTQo9Co0JDQnSDQlNCgCivQn9CV0IjQmNCdINCT0J7QiNCa0J4KK9Cf0JXQiNCY0J0g0IjQldCb0JXQndCQCivQn9CV0IjQmNCdINCI0J7QktCQ0J0KK9Cf0JXQiNCY0J0g0JvQkNCX0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cf0JXQiNCY0J0g0JzQkNCg0JjQiNCQCivQn9CV0IjQmNCdINCc0JDQoNCY0KLQkAor0J/QldCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0J/QldCI0JjQnSDQnNCY0JvQntCoCivQn9CV0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQiNCY0J0g0JzQm9CQ0JTQldCdCivQn9CV0IjQmNCdINCd0JXQndCQ0JQKK9Cf0JXQiNCY0J0g0J3QmNCa0J7Qm9CQCivQn9CV0IjQmNCdINCd0JjQmtCe0JvQkAor0J/QldCI0JjQnSDQndCY0JrQntCb0JAKK9Cf0JXQiNCY0J0g0J3QntCS0JDQmgor0J/QldCI0JjQnSDQn9CQ0JLQm9CVCivQn9CV0IjQmNCdINCf0JXQoNCh0JjQlNCQCivQn9CV0IjQmNCdINCf0JvQkNCS0KjQkAor0J/QldCI0JjQnSDQoNCQ0JTQkAor0J/QldCI0JjQnSDQoNCQ0JTQkAor0J/QldCI0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0IjQmNCdINCh0KLQldCS0JDQnQor0J/QldCI0JjQnSDQodCi0JXQktCQ0J0KK9Cf0JXQiNCY0J0g0JLQkNCh0JAKK9Cf0JXQiNCY0J0g0JLQldCg0JjQptCQCivQn9CV0IjQmNCdINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JXQiNCY0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQn9CV0IjQmNCd0J7QkiDQktCV0InQmtCeCivQn9CV0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0IjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQmtCe0JLQmNCLINCU0JDQndCY0JvQmtCQCivQn9CV0IjQmtCe0JLQmNCLINCY0JHQntCJ0JrQkAor0J/QldCI0JrQntCS0JjQiyDQmNCS0JDQnQor0J/QldCI0JrQntCS0JjQiyDQiNCQ0KHQndCQCivQn9CV0IjQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0IjQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQn9CV0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQiNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQiNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0IjQntCS0JjQiyDQgtCe0JrQkAor0J/QldCI0J7QktCY0Isg0ILQo9Ca0JDQnQor0J/QldCI0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QldCI0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QldCI0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0J/QldCI0J7QktCY0Isg0JHQntCg0JrQkAor0J/QldCI0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0JXQiNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QldCI0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0IjQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cf0JXQiNCe0JLQmNCLINCU0JDQktCY0JQKK9Cf0JXQiNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0JXQiNCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQn9CV0IjQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCI0J7QktCY0Isg0InQo9CR0J4KK9Cf0JXQiNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQiNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCI0J7QktCY0Isg0JzQmNCb0JXQndCQCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQmNCI0JAKK9Cf0JXQiNCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQn9CV0IjQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCI0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQiNCe0JLQmNCLINCc0J7QnNCY0KAKK9Cf0JXQiNCe0JLQmNCLINCd0JDQlNCQCivQn9CV0IjQntCS0JjQiyDQntCb0JPQkAor0J/QldCI0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QldCI0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCI0J7QktCY0Isg0KHQkNCS0JAKK9Cf0JXQiNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0J/QldCI0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQiNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JXQiNCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQn9CV0IjQntCS0KHQmtCYINCa0J7Qm9CVCivQn9CV0IjQntCS0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JXQmtCQ0KAg0JTQkNCg0JrQngor0J/QldCa0JDQoCDQiNCQ0J3QntCoCivQn9CV0JrQkNCgINCc0JjQm9Ca0JAKK9Cf0JXQmtCQ0KAg0KDQntCX0JDQm9CY0IjQkAor0J/QldCa0JDQoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CV0JrQkNChINCQ0J3QotCVCivQn9CV0JrQldCnINCc0JjQotCQCivQn9CV0JrQldCXINCR0KDQkNCd0JrQngor0J/QldCa0JXQlyDQiNCe0JLQkNCdCivQn9CV0JrQldCXINCI0J7QktCQ0J0KK9Cf0JXQmtCV0Jcg0JzQkNCg0JjQptCQCivQn9CV0JrQldCXINCc0JjQm9Ce0KDQkNCUCivQn9CV0JrQldCXINCh0KLQkNCd0JAKK9Cf0JXQmtCV0Jcg0JfQntCg0JAKK9Cf0JXQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9Cf0JXQmtCY0Isg0JPQntCg0JDQnQor0J/QldCa0JjQiyDQmtCg0KHQotCeCivQn9CV0JrQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0JrQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQmtCY0Isg0JzQmNCb0JDQnQor0J/QldCa0JjQiyDQnNCY0JvQntCoCivQn9CV0JrQmNCLINCc0JjQoNCa0J4KK9Cf0JXQmtCY0Isg0KHQotCV0JLQkNCdCivQn9CV0JrQntCS0JjQiyDQltCV0InQmtCeCivQn9CV0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0JrQntCS0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cf0JXQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0JXQmtCe0JLQmNCLINCc0JjQotCg0KPQqNCQCivQn9CV0JrQntCS0JjQiy3Qn9CQ0KDQm9CQ0Isg0KHQnNCY0InQkCDQlNCgCivQn9CV0JrQntCS0JjQiyDQn9CQ0JLQkAor0J/QldCa0J7QktCY0Isg0JLQldCg0JAKK9Cf0JXQmtCe0JLQmNCLINCS0JjQlNCQCivQn9CV0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QldCa0KPQoNCQ0KAg0JrQntCg0J3QldCbCivQn9CV0JrQo9Cg0JDQoCDQoNCe0JzQkNCdCivQn9CV0JvQkNCT0JjQiyDQndCQ0JTQkAor0J/QldCb0JDQk9CY0Isg0KHQoNCC0JDQnQor0J/QldCb0JUg0KTQldCg0JXQndCmCivQn9CV0JvQlSDQnNCQ0KDQmNCI0JAKK9Cf0JXQm9CVINCX0J7Qm9Ci0JDQnQor0J/QldCb0JXQk9Cg0JjQnSDQodCi0IjQldCf0JDQnQor0J/QldCb0JXQk9Cg0JjQnSDQktCb0JDQlNCeCivQn9CV0JvQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQm9Cl0JUg0KTQoNCQ0IrQkCDQlNCgCivQn9CV0InQpdCQINCC0KPQoNCQCivQn9CV0InQpdCQINCh0JDQitCQCivQn9CV0InQpdCQINCX0JLQntCd0JrQngor0J/QldCb0J7Ql9CQINCU0KPQqNCQ0J0KK9Cf0JXQm9Ce0JfQkCDQndCQ0JTQkAor0J/QldCb0JLQkCDQiNCe0KHQmNCfCivQn9CV0JvQktCQINCI0J7QktCQ0J0KK9Cf0JXQm9CS0JAg0JfQntCb0KLQkNCdCivQn9CV0JvQktCQ0Jgt0JfQntCg0JjQiyDQldCU0JjQogor0J/QldCc0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQnNCQ0KYg0JvQkNCX0JDQoAor0J/QldCd0JAg0JzQkNCg0JjQndCa0J4KK9Cf0JXQndCQINCc0JjQm9CQ0J0KK9Cf0JXQndCQINCc0JjQntCU0KDQkNCTCivQn9CV0J3QkCDQoNCQ0JTQmNCS0J7QiAor0J/QldCd0JAg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCd0JDQpiDQodCi0JDQmtCY0KbQkAor0J/QldCd0JDQktCY0J0g0JLQldCb0JjQnNCY0KAKK9Cf0JXQndCmINCU0J7QkdCg0JjQm9CQCivQn9CV0J3QpiDQmNCg0JXQndCQCivQn9CV0J3QptCQINCh0JvQkNCS0JrQngor0J/QldCd0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCd0I/QmNCLINCI0JXQoNCe0KHQmNCc0JAKK9Cf0JXQndCV0JfQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQndCV0JfQmNCLINCd0JXQndCQ0JQKK9Cf0JXQndCV0JfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQndCV0JfQmNCLINCX0J7QoNCY0KbQkAor0J/QldCd0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QldCd0JjQiyDQgtCj0KDQgtCY0KbQkAor0J/QldCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CV0J3QmNCLINCR0KDQkNCd0JrQngor0J/QldCd0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QldCd0JjQiyDQnNCY0JvQldCS0JAKK9Cf0JXQndCY0Isg0JzQmNCb0JjQptCQCivQn9CV0J3QmNCLINCf0JDQktCb0JUKK9Cf0JXQndCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0J3QmNCLINCh0KLQldCS0JDQnQor0J/QldCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0IrQkNCo0JrQntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQn9CV0IrQmNCdINCW0JjQktCQCivQn9CV0IrQmNCdINCh0JvQkNCS0JrQngor0J/QldCd0J7QkiDQldCc0JjQmwor0J/QldCd0J7QkiDQidCj0JHQmNCo0JAKK9Cf0JXQndCe0JIg0JzQkNCg0JrQngor0J/QldCd0JfQldCoINCC0J7QoNCC0JUKK9Cf0JXQndCX0JXQqCDQpNCV0KDQldCd0KYKK9Cf0JXQndCX0JXQqCDQpNCV0KDQldCd0KYKK9Cf0JXQndCX0JXQqCDQnNCY0KXQkNCJCivQn9CV0J3Ql9CV0Kgg0JzQmNCl0JDQiQor0J/QldCd0JfQldCoINCi0JjQkdCe0KAKK9Cf0JXQn9CY0Isg0JvQkNCX0J4KK9Cf0JXQn9CY0Isg0JzQmNCb0JDQnQor0J/QldCf0JjQiyDQnNCY0JvQlQor0J/QldCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QldCf0JjQiyDQnNCY0KDQmtCeCivQn9CV0J/Qm9CY0J3QkNCmINCi0J7QnNCQCivQn9CV0KDQp9CYINCQ0JPQndCV0JfQkAor0J/QldCg0KfQmNCLINCU0KDQkNCT0JDQnQor0J/QldCg0Kgg0JrQodCV0J3QmNCI0JAKK9Cf0JXQoNCo0JDQiCDQnNCY0KDQiNCQ0J3QkAor0J/QldCg0KjQmNCLINCU0JDQndCY0KbQkAor0J/QldCg0KjQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cf0JXQoNCC0JXQgtCQ0Igg0JHQkNCo0JrQmNCcCivQn9CV0KDQgtCj0J0g0JfQktCe0J3QmtCeCivQn9CV0KDQkNCLINCR0KDQkNCd0JrQngor0J/QldCg0JDQiyDQidCj0J/QmtCeCivQn9CV0KDQkNCX0JjQiyDQodCQ0JLQkAor0J/QldCg0JDQl9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCg0KYg0JHQoNCQ0J3QmtCQCivQn9CV0KDQpiDQldCb0JAKK9Cf0JXQoNCmINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQoNCm0JUg0JvQo9Ca0JAKK9Cf0JXQoNCU0JDQnSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cf0JXQoNCV0Kgg0KXQldCg0JzQmNCd0JAKK9Cf0JXQoNCV0JbQkCDQndCY0JrQntCb0JAKK9Cf0JXQoNCV0JPQmCDQk9CV0JfQkAor0J/QldCg0JXQk9CYINCe0KHQmtCQ0KAKK9Cf0JXQoNCV0KXQmNCd0JDQpiDQmNCS0JDQnQor0J/QldCg0JXQndCn0JXQktCY0Isg0JLQkNCh0J4KK9Cf0JXQoNCV0J/QkNCi0JjQiyDQn9CY0KDQntCoCivQn9CV0KDQldCf0JDQotCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KDQldCj0JvQkCDQkdCe0JPQlNCQ0J0KK9Cf0JXQoNCT0JDQmyDQnNCY0KDQntCh0JvQkNCSINCU0KAg0JjQndCTCivQn9CV0KDQk9CVINCV0KHQotCV0KAKK9Cf0JXQoNCT0JUg0JzQkNCg0JAKK9Cf0JXQoNCT0JUg0JLQmNCa0KLQntCg0JjQiNCQCivQn9CV0KDQmNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KDQmNCn0JXQktCY0Isg0KDQkNCI0JrQngor0J/QldCg0JjQp9CY0J0g0JbQmNCS0JDQnQor0J/QldCg0JjQp9CY0J0g0JzQmNCb0JDQndCa0JAKK9Cf0JXQoNCY0KfQmNCdINCc0JjQm9CV0J3QmtCeCivQn9CV0KDQmNCn0JjQnSDQoNCQ0KLQmtCeCivQn9CV0KDQmNCn0JjQnSDQktCb0JDQlNCQCivQn9CV0KDQmNCo0JAg0IjQkNCa0J7Qkgor0J/QldCg0JjQqNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQoNCY0KjQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CV0KDQmNCo0JjQiyDQltCY0JLQntCU0JDQoNCa0JAKK9Cf0JXQoNCY0KjQmNCLINCC0J7QoNCC0JUKK9Cf0JXQoNCY0KjQmNCLINCC0J7QoNCC0JUKK9Cf0JXQoNCY0KjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KDQmNCo0JjQiyDQkNCd0JjQptCQCivQn9CV0KDQmNCo0JjQiyDQkdCb0JDQltCeCivQn9CV0KDQmNCo0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QldCg0JjQqNCY0Isg0JHQntCR0JDQnQor0J/QldCg0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QldCg0JjQqNCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KDQmNCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQoNCY0KjQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JXQoNCY0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0KDQmNCo0JjQiyDQmNCg0JXQndCQCivQn9CV0KDQmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQoNCY0KjQmNCLINCa0JDQotCY0KbQkAor0J/QldCg0JjQqNCY0Isg0JvQkNCX0JDQoAor0J/QldCg0JjQqNCY0Isg0JvQkNCX0JDQoAor0J/QldCg0JjQqNCY0Isg0JvQkNCX0JDQoAor0J/QldCg0JjQqNCY0Isg0JvQkNCX0JAKK9Cf0JXQoNCY0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KDQmNCo0JjQiyDQnNCQ0J3QptCY0JrQkAor0J/QldCg0JjQqNCY0Isg0JzQkNCg0JAKK9Cf0JXQoNCY0KjQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0KDQmNCo0JjQiyDQnNCY0JvQkNCdCivQn9CV0KDQmNCo0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCg0JjQqNCY0Isg0JzQmNCb0JjQndCa0J4KK9Cf0JXQoNCY0KjQmNCLINCc0JjQidCQCivQn9CV0KDQmNCo0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QldCg0JjQqNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KDQmNCo0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCg0JjQqNCY0Isg0JzQmNCg0JAKK9Cf0JXQoNCY0KjQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0JjQqNCY0Isg0KDQkNCU0JUKK9Cf0JXQoNCY0KjQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QldCg0JjQqNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QldCg0JjQqNCY0Isg0KDQkNCd0JrQngor0J/QldCg0JjQqNCY0Isg0KHQotCQ0J3QmtCeCivQn9CV0KDQmNCo0JjQiyDQodCi0JXQktCeCivQn9CV0KDQmNCo0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCi0J7QlNCe0KAKK9Cf0JXQoNCY0KjQmNCLINCj0JPQidCV0KjQkAor0J/QldCg0JjQqNCY0Isg0JLQkNCh0J4KK9Cf0JXQoNCY0KjQmNCLINCS0JDQodCeCivQn9CV0KDQmNCLINCW0JDQoNCa0J4KK9Cf0JXQoNCY0Isg0JbQmNCS0JrQkAor0J/QldCg0JjQiyDQltCY0JLQntCI0JjQnQor0J/QldCg0JjQiyDQgtCe0KDQgtCVCivQn9CV0KDQmNCLINCC0KPQoNCY0KbQkAor0J/QldCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCg0JjQiyDQkNCd0JAKK9Cf0JXQoNCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cf0JXQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JXQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JXQoNCY0Isg0JHQntCg0JjQoQor0J/QldCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQn9CV0KDQmNCLINCU0J7QkdCg0JjQm9CQCivQn9CV0KDQmNCLINCU0KDQkNCT0JDQndCQCivQn9CV0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0KDQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQoNCY0Isg0JTQo9Co0JDQnQor0J/QldCg0JjQiyDQk9Ce0IjQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QldCg0JjQiyDQk9Ce0KDQkNCdCivQn9CV0KDQmNCLINCY0JLQkNCdCivQn9CV0KDQmNCLINCI0JDQndCa0J4KK9Cf0JXQoNCY0Isg0IjQldCb0JrQkAor0J/QldCg0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QldCg0JjQiyDQiNCe0JLQkNCdCivQn9CV0KDQmNCLINCa0KHQldCd0JjQiNCQCivQn9CV0KDQmNCLINCb0JDQl9CQCivQn9CV0KDQmNCLINCJ0KPQkdCY0KjQkAor0J/QldCg0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQoNCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0JXQoNCY0Isg0InQo9CR0JjQndCa0J4KK9Cf0JXQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQoNCY0Isg0JzQkNCg0JAKK9Cf0JXQoNCY0Isg0JzQkNCg0JjQiNCQCivQn9CV0KDQmNCLINCc0JDQoNCY0IjQkAor0J/QldCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JXQoNCY0Isg0JzQkNCg0JjQndCa0J4KK9Cf0JXQoNCY0Isg0JzQkNCg0JrQngor0J/QldCg0JjQiyDQnNCY0KXQkAor0J/QldCg0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/QldCg0JjQiyDQnNCY0JvQkNCdCivQn9CV0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0KDQmNCLINCc0JjQm9CY0KbQkAor0J/QldCg0JjQiyDQnNCY0JvQmtCY0KbQkAor0J/QldCg0JjQiyDQnNCY0JvQntCoCivQn9CV0KDQmNCLINCc0JjQm9Ce0KgKK9Cf0JXQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQoNCY0Isg0JzQmNCi0JDQoAor0J/QldCg0JjQiyDQndCQ0KLQkNCo0JAKK9Cf0JXQoNCY0Ist0J3QldCo0JjQiyDQptCe0JrQkAor0J/QldCg0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0Isg0J/QkNCS0JvQlQor0J/QldCg0JjQiyDQn9CV0KLQkNCgCivQn9CV0KDQmNCLINCg0JDQqNCQCivQn9CV0KDQmNCLINCg0JDQlNCVCivQn9CV0KDQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KDQmNCLINCg0JDQlNCeCivQn9CV0KDQmNCLINCg0JDQiNCa0J4KK9Cf0JXQoNCY0Isg0KDQntCU0J7QidCj0JEKK9Cf0JXQoNCY0Isg0KDQo9CW0JjQptCQCivQn9CV0KDQmNCLINCh0JDQktCQCivQn9CV0KDQmNCLINCh0JDQktCQCivQn9CV0KDQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KDQmNCLINCh0JvQkNCS0JrQngor0J/QldCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQoNCY0Isg0KHQnNCY0InQkAor0J/QldCg0JjQiyDQodCi0JDQndCa0JAKK9Cf0JXQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QldCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0KDQmNCLINCS0JDQodCQCivQn9CV0KDQmNCLINCS0JjQndCa0JAKK9Cf0JXQoNCY0Isg0JLQm9CQ0KLQmtCeCivQn9CV0KDQmNCLINCX0JTQldCd0JrQkAor0J/QldCg0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KDQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQoNCY0Isg0JfQntCg0JAKK9Cf0JXQoNCY0KbQkCDQkNCd0KLQlQor0J/QldCg0JjQptCQINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQoNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQmNCdINCU0KDQkNCT0JjQqNCQCivQn9CV0KDQmNCdINCc0JjQm9CY0J3QmtCeCivQn9CV0KDQmNCdINCc0JjQm9Ce0KDQkNCUCivQn9CV0KDQmNCdINCg0JDQlNCY0KjQkAor0J/QldCg0JjQnSDQodCV0JrQo9Cb0JAKK9Cf0JXQoNCY0J0g0JfQntCg0JAKK9Cf0JXQoNCY0J3QkNCmINCg0JDQlNCe0JLQkNCdCivQn9CV0KDQmNCd0JDQpiDQoNCQ0JTQntCS0JDQnQor0J/QldCg0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQndCe0JLQmNCLINCd0JDQlNCQCivQn9CV0KDQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cf0JXQoNCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQoNCY0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cf0JXQoNCY0Jcg0KHQotCV0JLQngor0J/QldCg0JrQntCSINCg0JDQlNCY0J3QmtCQCivQn9CV0KDQmtCe0JLQkNCmINCc0JDQoNCY0IjQkAor0J/QldCg0JrQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQn9CV0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCg0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KDQmtCe0JLQmNCLINCT0JLQntCX0JTQldCdCivQn9CV0KDQmtCe0JLQmNCLINCI0JXQm9Ca0JAKK9Cf0JXQoNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JXQoNCa0J7QktCY0Isg0KDQkNCU0J7QnNCQ0J0g0JzQoAor0J/QldCg0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQoNCa0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQn9CV0KDQmtCe0JLQmNCLINCi0J7QnNCeCivQn9CV0KDQmtCe0JLQodCa0Jgg0ILQntCg0ILQlQor0J/QldCg0JrQntCS0KHQmtCYINCQ0J3QgtCV0JvQmtCeCivQn9CV0KDQmtCj0KfQmNCdINCC0J7QoNCC0JUKK9Cf0JXQoNCa0KPQp9CY0J0g0ILQo9Cb0JjQndCa0JAKK9Cf0JXQoNCa0KPQp9CY0J0g0JTQo9Co0JDQnQor0J/QldCg0JrQo9Cn0JjQnSDQk9Ce0KDQlNCQ0J3QkAor0J/QldCg0JrQo9Cn0JjQnSDQmtCQ0KLQmNCm0JAKK9Cf0JXQoNCa0KPQp9CY0J0g0J3QmNCa0J7Qm9CQCivQn9CV0KDQmtCj0KfQmNCdINCg0JDQlNCY0JLQntCIINCU0KAKK9Cf0JXQoNCb0JDQmtCYINCb0JDQiNCe0KgKK9Cf0JXQoNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQoNCb0JjQndCQ0KYg0KHQmNCc0JXQo9CdCivQn9CV0KDQitCQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0J/QldCg0IrQkNCaINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQoNCK0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J/QldCg0J7QqNCV0JLQmNCLINCd0J7QktCY0KbQkAor0J/QldCg0J7QqNCV0JLQmNCLINCh0KLQkNCd0JrQkAor0J/QldCg0J7QodCQ0JLQidCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0J/QldCg0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCg0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KDQntCS0JDQndCe0JLQmNCLINCI0JDQk9Ce0JTQkAor0J/QldCg0J7QktCY0Isg0JbQkNCd0JrQkAor0J/QldCg0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cf0JXQoNCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0J/QldCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KDQntCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQn9CV0KDQntCS0JjQiyDQlNCg0JDQk9CeCivQn9CV0KDQntCS0JjQiyDQk9CQ0JHQoNCY0JXQm9CQCivQn9CV0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cf0JXQoNCe0JLQmNCLINCI0JXQm9CQCivQn9CV0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KDQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQn9CV0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCg0J7QktCY0Isg0JzQm9CQ0ILQldCdCivQn9CV0KDQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0J/QldCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQkNCo0JjQnQor0J/QldCg0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cf0JXQoNCe0JLQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Cf0JXQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cf0JXQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQoNCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cf0JXQoNCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CV0KDQntCS0JjQiyDQktCb0JDQiNCa0J4KK9Cf0JXQoNCi0JjQiyDQl9CQ0JrQkNCg0JjQkNCoCivQn9CV0KDQotCe0KIg0IjQldCb0JXQndCQCivQn9CV0KDQo9Cd0JjQp9CY0Isg0JTQntCR0KDQmNCb0JAKK9Cf0JXQoNCj0J3QmNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCg0KPQndCY0KfQmNCLINCg0JDQlNCQ0J0KK9Cf0JXQoNCj0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JXQoNCj0J3QntCS0JjQiyDQn9CQ0J3QotCeCivQn9CV0KDQo9Cd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cf0JXQoNCS0JDQlyDQltCY0JLQmtCQCivQn9CV0KDQktCQ0Jcg0JTQoNCQ0JPQmNCK0JAg0JTQoCDQn9Cg0J7QpAor0J/QldCh0JjQoNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0J/QldCh0JjQoNCQ0KYg0JrQkNCi0JDQoNCY0J3QkAor0J/QldCh0JjQoNCQ0KYg0J/QldCi0JDQoAor0J/QldCh0JjQoNCQ0KYg0KHQotCV0JLQkNCdCivQn9CV0KHQm9CQ0Isg0IjQntCS0JDQnQor0J/QldCh0KLQkNCb0JjQiyDQiNCe0KHQmNCfCivQn9CV0KHQotCV0JvQldCaINCJ0KPQkdCY0KjQkAor0J/QldCh0KLQldCb0JXQmiDQidCj0JHQmNCo0JAKK9Cf0JXQotCQ0JrQntCSINCW0JjQktCa0J4KK9Cf0JXQotCQ0JrQntCSINCI0KPQm9Ca0JAKK9Cf0JXQotCQ0JrQntCSINCc0JjQm9CV0J3QmtCeCivQn9CV0KLQkNCa0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0KLQkNCa0J7QkiDQoNCQ0J3QmtCQCivQn9CV0KLQkNCa0J7QkiDQodCQ0JLQkAor0J/QldCi0JDQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQn9CV0KLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0JDQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQkNCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQkNCa0J7QktCY0Isg0J3QldCc0JDQitCQCivQn9CV0KLQkNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JXQotCQ0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KLQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cf0JXQotCVINCC0KPQoNCQCivQn9CV0KLQlSDQgtCj0KDQkAor0J/QldCi0JUg0JTQo9Co0JDQndCa0JAKK9Cf0JXQotCVINCk0JXQoNCV0J3Qpgor0J/QldCi0JUg0KTQldCg0JXQndCmCivQn9CV0KLQlSDQpNCg0JDQitCQCivQn9CV0KLQlSDQmNCo0KLQktCQ0J0KK9Cf0JXQotCVINCY0KjQotCS0JDQnQor0J/QldCi0JUg0JjQqNCi0JLQkNCdCivQn9CV0KLQlSDQmtCQ0KDQntCJCivQn9CV0KLQlSDQn9CV0KLQkNCgCivQn9CV0KLQlSDQodCi0JXQn9CQ0J0KK9Cf0JXQotCVINCh0KLQldCS0JDQnQor0J/QldCi0JXQiCDQoNCQ0KLQmtCeCivQn9CV0KLQldCaINCU0JDQnNCY0KAKK9Cf0JXQotCV0JvQmNCdINCV0JvQmNCX0JDQkdCV0KLQkAor0J/QldCi0JXQitCYINCI0J7QodCY0J8g0JTQoAor0J/QldCi0JXQitCYINCh0KLQldCS0JDQnQor0J/QldCi0JXQoCDQpNCg0JDQndCm0JjQqNCa0JAKK9Cf0JXQotCV0KAg0IjQntCW0JXQpAor0J/QldCi0JXQoCDQiNCe0JvQkNCdCivQn9CV0KLQldCgINCI0J7QktCQ0J0KK9Cf0JXQotCV0KAg0JzQmNCl0JDQiQor0J/QldCi0JXQoCDQktCY0JvQnNCe0KgKK9Cf0JXQotCV0KDQmtCQINCC0J7QoNCC0JUKK9Cf0JXQotCV0KDQmtCQINCI0JXQm9CV0J3QkAor0J/QldCi0JXQoNCa0JAg0IjQntCh0JjQnwor0J/QldCi0JXQoNCa0JAg0JzQkNCg0JjQiNCQCivQn9CV0KLQldCg0JrQkCDQodCi0JXQktCQ0J0KK9Cf0JXQotCV0KDQmtCQINCS0JvQkNCU0JjQodCb0JDQkgor0J/QldCi0JXQoNCb0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQldCg0J3QldCbINCb0JjQlNCY0IjQkAor0J/QldCi0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmNCLINCX0J7QoNCa0JAKK9Cf0JXQotCY0IjQldCS0JjQiyDQiNCe0JLQkNCdINCc0KAKK9Cf0JXQotCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQmNCdINCd0JjQmtCe0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQn9CV0KLQmtCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0KLQmtCe0JIg0JbQkNCg0JUKK9Cf0JXQotCa0J7QkiDQgtCe0KDQgtCVCivQn9CV0KLQmtCe0JIg0ILQo9Cg0JAKK9Cf0JXQotCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JIg0JjQktCQ0J0KK9Cf0JXQotCa0J7QkiDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JIg0J3QkNCU0JXQltCU0JAKK9Cf0JXQotCa0J7QkiDQodCQ0JLQkAor0J/QldCi0JrQntCSINCh0KLQldCS0JDQnQor0J/QldCi0JrQntCSINCh0KLQldCS0JAKK9Cf0JXQotCa0J7QktCY0Isg0KfQldCU0JAKK9Cf0JXQotCa0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCi0JrQntCS0JjQiyDQltCV0InQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQn9CV0KLQmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQn9CV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUg0JTQoAor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQmtCe0JLQmNCLINCC0KPQm9CQCivQn9CV0KLQmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cf0JXQotCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0JDQndCQCivQn9CV0KLQmtCe0JLQmNCLINCQ0J3QotCj0J0KK9Cf0JXQotCa0J7QktCY0Isg0JHQntCI0JDQndCQCivQn9CV0KLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JXQotCa0J7QktCY0Isg0JHQntCg0JrQngor0J/QldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0KbQktCV0KLQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cf0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QldCi0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0J/QldCi0JrQntCS0JjQiyDQmNCo0KLQktCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQmtCe0JLQmNCLINCY0InQkAor0J/QldCi0JrQntCS0JjQiyDQmNCg0JXQndCQCivQn9CV0KLQmtCe0JLQmNCLINCI0JDQk9Ce0JTQkAor0J/QldCi0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQn9CV0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0IjQntCS0J4KK9Cf0JXQotCa0J7QktCY0Isg0JrQkNCb0JzQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JXQotCa0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnQor0J/QldCi0JrQntCS0JjQiyDQmtCg0KHQotCQCivQn9CV0KLQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCb0JDQl9CeCivQn9CV0KLQmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KLQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQndCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQndCa0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCe0KDQmNCa0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCg0JrQngor0J/QldCi0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QldCi0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQmtCe0JLQmNCLINCd0JDQlNCQCivQn9CV0KLQmtCe0JLQmNCLINCd0JjQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cf0JXQotCa0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QldCi0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CV0KLQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JXQotCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0J/QldCi0KDQkAor0J/QldCi0JrQntCS0JjQiyDQn9Cj0J3QmNCo0JAKK9Cf0JXQotCa0J7QktCY0Isg0KDQkNCU0JUKK9Cf0JXQotCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KDQkNCi0JrQkAor0J/QldCi0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0KDQgtCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0J/QldCi0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J/QldCi0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JXQotCa0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QldCi0JrQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cf0JXQotCa0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0J/QldCi0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQmtCe0JLQodCa0JAg0KHQm9CQ0JLQmNCm0JAKK9Cf0JXQotCa0J7QktCh0JrQmCDQkNCm0JAKK9Cf0JXQotCa0J7QktCh0JrQmCDQk9Ce0KDQkNCdCivQn9CV0KLQmtCe0JLQodCa0Jgg0JzQmNCb0JrQkAor0J/QldCi0JrQntCS0KHQmtCYINCh0KLQkNCd0JrQngor0J/QldCi0JvQldCaINCI0J7QktCQ0J0KK9Cf0JXQotCJ0JDQndCh0JrQmCDQkdCg0JDQndCa0J4KK9Cf0JXQotCJ0JDQndCh0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JXQotCJ0JDQndCh0JrQmCDQmNCg0JXQndCQCivQn9CV0KLQniDQiNCe0JbQldCkCivQn9CV0KLQntCo0JXQktCY0Isg0JzQmNCb0JUKK9Cf0JXQotCe0KjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQotCe0KjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCe0KjQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0JXQotCe0KXQm9CV0JEg0J/QkNCS0JjQptCQCivQn9CV0KLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0J/QldCi0J7QktCY0Isg0ILQo9Cg0J4KK9Cf0JXQotCe0JLQmNCLINCT0J7QiNCa0J4KK9Cf0JXQotCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCi0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQoNCQ0KjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCQ0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQkNCo0JrQntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0J/QldCi0KDQkNCa0J7QktCY0Ist0JPQoNCQ0J7QktCQ0KYg0JrQntCh0JDQndCQCivQn9CV0KLQoNCQ0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQn9CV0KLQoNCQ0J3QntCS0JjQiyDQnNCQ0JPQlNCQCivQn9CV0KLQoNCQ0J3QntCS0JjQiyDQl9CS0J7QndCa0J4KK9Cf0JXQotCg0JXQqCDQpNCg0JDQitCeCivQn9CV0KLQoNCV0Kgg0KDQkNCU0JUKK9Cf0JXQotCg0JXQiiDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0JXQktCh0JrQkCDQl9Ce0KDQkNCd0JrQkAor0J/QldCi0KDQldCS0KHQmtCYINCR0J7QoNCY0KEKK9Cf0JXQotCg0JXQktCh0JrQmCDQmNCb0J7QndCQCivQn9CV0KLQoNCV0JLQodCa0Jgg0JrQmNCg0J4KK9Cf0JXQotCg0Jgg0JzQmNCb0JXQndCQCivQn9CV0KLQoNCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0J/QldCi0KDQmNCn0JXQktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCY0KfQmNCLINCU0JDQndCVCivQn9CV0KLQoNCY0KfQmNCLINCI0J7QktCeCivQn9CV0KLQoNCY0KfQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0JjQp9CY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0JjQp9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cf0JXQotCg0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCg0JjQiyDQkNCd0JDQodCi0JDQl9CY0IjQkAor0J/QldCi0KDQmNCLINCR0J7QqNCa0J4KK9Cf0JXQotCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J/QldCi0KDQmNCLINCR0KDQkNCd0JrQniDQlNCgCivQn9CV0KLQoNCY0Isg0JTQkNCd0JjQm9CeCivQn9CV0KLQoNCY0Isg0JTQldCh0JDQndCa0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCY0Isg0JTQldCh0JjQnNCY0KAKK9Cf0JXQotCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KLQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JXQotCg0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCY0Isg0JjQm9CY0IjQkAor0J/QldCi0KDQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0JjQiyDQm9CQ0JfQkNCgINCc0KAKK9Cf0JXQotCg0JjQiyDQidCY0InQkNCd0JAKK9Cf0JXQotCg0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQotCg0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0KLQoNCY0Isg0JzQmNCb0JXQotCQCivQn9CV0KLQoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JXQotCg0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0KDQmNCLINCd0JDQlNCQCivQn9CV0KLQoNCY0Isg0J7Qm9CT0JAKK9Cf0JXQotCg0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQmNCLINCg0JDQlNCY0KHQkNCSCivQn9CV0KLQoNCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cf0JXQotCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QldCi0KDQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KLQoNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQotCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCY0Isg0KHQntCk0JjQiNCQCivQn9CV0KLQoNCY0Isg0KHQntCk0JjQiNCQCivQn9CV0KLQoNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QldCi0KDQmNCLINCS0KPQm9CV0KLQkAor0J/QldCi0KDQmNCaINCo0JDQndCU0J7QoAor0J/QldCi0KDQmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQmNCaINCV0JvQmNCX0JDQkdCV0KLQkAor0J/QldCi0KDQmNCaINCY0KjQotCS0JDQnQor0J/QldCi0KDQmNCaINCS0JjQndCm0JUKK9Cf0JXQotCg0JjQmiDQl9Ce0JvQotCQ0J0KK9Cf0JXQotCg0JjQmtCQINCJ0KPQkdCY0KjQkAor0J/QldCi0KDQmNCa0JAg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0JjQmtCe0IrQkCDQmtCh0JXQndCY0IjQkAor0J/QldCi0KDQmNCa0J7QitCQINCb0JDQl9CQ0KAKK9Cf0JXQotCg0JjQnSDQlNCj0KjQkNCdCivQn9CV0KLQoNCY0J0g0JrQkNCi0JjQptCQCivQn9CV0KLQoNCY0J0g0JzQkNCI0JAKK9Cf0JXQotCg0JjQnSDQnNCY0JvQkNCd0JrQkAor0J/QldCi0KDQmNCdINCc0JjQm9CQ0J3QmtCQCivQn9CV0KLQoNCY0J0g0KDQkNCU0JzQmNCb0JAKK9Cf0JXQotCg0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0KDQmNCd0JjQiyDQnNCY0KDQmtCeCivQn9CV0KLQoNCY0J3QntCS0JjQiyDQnNCY0JvQmNCd0JAKK9Cf0JXQotCg0JjQndCe0JLQmNCLINCh0KLQldCS0JAKK9Cf0JXQotCg0J4g0JDQndCi0JUKK9Cf0JXQotCg0J4g0JrQkNCi0JDQm9CY0J0KK9Cf0JXQotCg0J4g0J3QmNCa0J4KK9Cf0JXQotCg0J4g0KHQkNCK0JAKK9Cf0JXQotCg0J7QndCY0Isg0JbQmNCS0J7QotCQCivQn9CV0KLQoNCe0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0J3QmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JXQotCg0J7QndCY0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9CV0KLQoNCe0J3QmNCI0JXQktCY0Isg0JPQntCg0JDQnQor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CV0KLQoNCe0J3QmNCI0JXQktCY0Isg0KHQoNCV0KLQkAor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QldCi0KDQntCK0JUg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QitCVINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JIg0JbQmNCS0JDQndCQCivQn9CV0KLQoNCe0JIg0JbQmNCS0JDQnQor0J/QldCi0KDQntCSINCQ0J3QkNCi0J7Qm9CY0IgKK9Cf0JXQotCg0J7QkiDQkNCd0JAKK9Cf0JXQotCg0J7QkiDQkdCe0KDQmNChCivQn9CV0KLQoNCe0JIg0JTQkNCd0JjQptCQCivQn9CV0KLQoNCe0JIg0JTQo9Co0JDQndCa0JAKK9Cf0JXQotCg0J7QkiDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JIg0JXQktCY0KbQkAor0J/QldCi0KDQntCSINCk0KDQkNCd0JrQkAor0J/QldCi0KDQntCSINCY0KjQotCS0JDQnQor0J/QldCi0KDQntCSINCY0JLQkNCdCivQn9CV0KLQoNCe0JIg0IjQkNCh0JzQmNCd0JAKK9Cf0JXQotCg0J7QkiDQiNCV0JvQldCd0JAKK9Cf0JXQotCg0J7QkiDQiNCe0JbQldCkCivQn9CV0KLQoNCe0JIg0JvQkNCX0JDQoAor0J/QldCi0KDQntCSINCJ0KPQkdCe0JzQmNCgCivQn9CV0KLQoNCe0JIg0InQo9CR0J7QnNCY0KAKK9Cf0JXQotCg0J7QkiDQnNCQ0KDQmNCI0JAKK9Cf0JXQotCg0J7QkiDQnNCQ0KDQmNCI0JAKK9Cf0JXQotCg0J7QkiDQnNCQ0KDQmNCd0JrQngor0J/QldCi0KDQntCSINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QkiDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCSINCc0JjQm9CY0KbQkAor0J/QldCi0KDQntCSINCc0JjQm9Ce0KDQkNCUCivQn9CV0KLQoNCe0JIg0JzQmNCb0J7QodCQ0JLQkAor0J/QldCi0KDQntCSINCc0JjQm9Ce0JLQkNCdCivQn9CV0KLQoNCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QkiDQnNCY0J7QlNCg0JDQkwor0J/QldCi0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QkiDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCSINCd0JDQlNCQCivQn9CV0KLQoNCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0J/QldCi0KDQntCSINCd0JXQkdCe0IjQqNCQINCU0KAKK9Cf0JXQotCg0J7QkiDQntCb0JPQkAor0J/QldCi0KDQntCSINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JIg0KHQkNCo0JAKK9Cf0JXQotCg0J7QkiDQodCQ0JLQkAor0J/QldCi0KDQntCSINCh0JDQktCQCivQn9CV0KLQoNCe0JIg0KHQkNCS0JAKK9Cf0JXQotCg0J7QkiDQodCV0KDQk9CY0IjQlQor0J/QldCi0KDQntCSINCh0JvQkNCS0JrQkAor0J/QldCi0KDQntCSINCh0JvQkNCS0JrQngor0J/QldCi0KDQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCg0J7QkiDQodCg0JHQmNCS0J7QiAor0J/QldCi0KDQntCSINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JIg0JLQkNCh0J4KK9Cf0JXQotCg0J7QkiDQktCV0JvQmNCX0JDQoAor0J/QldCi0KDQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JIg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCSINCX0JvQkNCi0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCn0JDQnS3QqNCf0JDQndCe0JLQmNCLINCV0KPQpNCV0JzQmNCI0JAKK9Cf0JXQotCg0J7QktCQ0KfQmtCYINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCQ0KfQmtCYINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCQ0KfQmtCYINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JDQp9Ca0Jgg0JLQldCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0KfQldCU0JAKK9Cf0JXQotCg0J7QktCY0Isg0KjQotCV0KTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCV0InQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQntCi0JAKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCa0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQo9Cg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQm9CY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Ist0JHQkNCb0JjQliDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QqNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KbQktCY0JrQngor0J/QldCi0KDQntCS0JjQiyDQlNCQ0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQldCI0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQotCg0J7QktCY0Isg0JTQntCR0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CY0KjQkCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CY0IsKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCV0JLQkAor0J/QldCi0KDQntCS0JjQiyDQldCS0JPQldCd0JjQiNCVCivQn9CV0KLQoNCe0JLQmNCLINCV0JLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0KTQkNCR0JjQiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cf0JXQotCg0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQm9Ce0J3QkAor0J/QldCi0KDQntCS0JjQiyDQmNCh0JDQmgor0J/QldCi0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QldCi0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQldCS0KDQldCcCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QltCV0KQKK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JrQntCh0KLQkCDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCa0KDQodCi0J4KK9Cf0JXQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCb0JXQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JvQmNCU0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQkAor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JDQiNCb0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4g0JTQoCDQktCV0KLQldCg0JjQndCVCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQiNCe0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JXQndCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JXQktCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CVCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0IsKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QqCDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCoCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCI0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQo9CdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCe0InQo9CRCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0KDQp9CV0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCc0JvQkNCC0JXQnQor0J/QldCi0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCd0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCd0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCd0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCd0JDQlNCY0KDQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCd0JXQndCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0J3QldCS0JXQndCQCivQn9CV0KLQoNCe0JLQmNCLINCd0JXQktCV0J3QmtCQINCU0KAKK9Cf0JXQotCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KLQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QldCi0KDQntCS0JjQiyDQndCe0JLQkNCaCivQn9CV0KLQoNCe0JLQmNCLINCd0J7QktCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQntCR0KDQkNCUCivQn9CV0KLQoNCe0JLQmNCLINCe0JvQk9CQCivQn9CV0KLQoNCe0JLQmNCLINCe0JvQk9CY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQntCb0JjQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQn9CQ0IjQkAor0J/QldCi0KDQntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCg0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCf0JvQkNCc0JXQndCa0JAKK9Cf0JXQotCg0J7QktCY0Ist0J/QntCf0JDQlNCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCi0KDQntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCVCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0KjQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQotCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCi0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCY0KHQotCeCivQn9CV0KLQoNCe0JLQmNCLINCg0J7QlNCe0InQo9CRCivQn9CV0KLQoNCe0JLQmNCLINCg0J7QodCQCivQn9CV0KLQoNCe0JLQmNCLINCg0KPQltCQCivQn9CV0KLQoNCe0JLQmNCLINCg0KPQltCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQoNCj0JfQnNCQ0KDQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JjQnNCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JjQnNCV0KPQnQor0J/QldCi0KDQntCS0JjQiyDQodCY0JzQngor0J/QldCi0KDQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQnNCY0InQkAor0J/QldCi0KDQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQn9CQ0KHQlQor0J/QldCi0KDQntCS0JjQiyDQodCf0JDQodCe0IjQlQor0J/QldCi0KDQntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCh0KDQgtCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCQ0JzQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQntCI0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCe0IjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCh0KPQl9CQ0J3QkCDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0KPQl9CQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQotCY0JHQntCgCivQn9CV0KLQoNCe0JLQmNCLINCi0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KLQntCU0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQo9Cg0J7QqAor0J/QldCi0KDQntCS0JjQiyDQo9Cg0J7QqAor0J/QldCi0KDQntCS0JjQiyDQktCQ0KHQkAor0J/QldCi0KDQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQoNCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KHQldCb0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JLQldCh0J3QkAor0J/QldCi0KDQntCS0JjQiyDQktCY0KjQitCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JjQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQm9CQ0JTQlQor0J/QldCi0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JjQnQor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCS0KPQmtCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QldCi0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QldCi0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QldCi0KDQntCS0JjQiyDQl9CU0JXQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCX0JvQkNCi0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCh0JrQmCDQkdCe0KDQmNChCivQn9CV0KLQoNCe0JLQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KLQoNCe0JLQodCa0Jgg0JXQktCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0KTQmNCU0JDQndCn0J4KK9Cf0JXQotCg0J7QktCh0JrQmCDQpdCV0JvQldCd0JAKK9Cf0JXQotCg0J7QktCh0JrQmCDQnNCY0JvQkNCU0JjQnQor0J/QldCi0KDQntCS0KHQmtCYINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCh0JrQmCDQnNCY0JvQntCU0JDQoNCa0JAKK9Cf0JXQotCg0J7QktCh0JrQmCDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQodCa0Jgg0KHQm9CQ0JLQmtCQCivQn9CV0KLQoNCj0KjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQo9Co0JXQktCh0JrQmCDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQo9Co0JXQktCh0JrQmCDQndCQ0JTQkAor0J/QldCi0KDQo9Co0JjQiy3Qn9CQ0KDQmNCf0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JXQotCg0KPQqNCY0Isg0JLQkNCh0JjQiQor0J/QldCi0KDQo9CJ0JXQodCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0KPQidCV0KHQmtCe0JIg0JTQoNCQ0JPQkNCdCivQn9CV0KPQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQo9Cb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QldCj0InQkCDQktCe0IjQmNCdCivQn9CV0KPQoNCQ0KfQkCDQlNCg0JDQk9CQ0J0KK9Cf0JXQo9Cg0JDQp9CQINCc0JjQm9CVCivQn9CV0JLQkNCnINCh0KLQiNCV0J/QkNCdCivQn9CV0JLQmNCLINCV0KDQltCV0JHQldCiCivQn9CV0JfQlNCV0JLQqNCV0Jog0IjQkNCd0JXQlwor0J/QldCX0JTQldCS0KjQldCaINCa0JDQoNCbCivQn9CV0JfQldCg0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cf0KTQkNCI0KTQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ck0JDQiNCk0JXQoCDQkNCi0JjQm9CQCivQn9Ck0JDQiNCk0JXQoCDQn9CV0KLQkNCgCivQn9Ck0JDQiNCk0JXQoNCiINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ck0JDQoyDQiNCe0JLQkNCd0JrQkAor0J/QpNCj0J3QqNCi0JDQiNCdINCI0J7QodCY0J8KK9Cf0JjQqNCa0J7QoNCY0Isg0JjQktCQ0J0KK9Cf0JjQqNCf0JXQmiDQnNCQ0KDQotCQCivQn9CY0KjQotCQ0JvQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QmNCo0KLQkNCb0J7QktCY0Isg0JzQmNCg0JrQngor0J/QmNCL0KPQoNCY0Isg0JbQmNCS0JrQngor0J/QmNCL0KPQoNCY0Isg0JzQmNCa0J4KK9Cf0JjQltCj0KDQmNCm0JAg0JzQkNCi0J4KK9Cf0JjQk9CbINCQ0J3QkAor0J/QmNCT0Jsg0JjQnNCg0JUKK9Cf0JjQpdCQ0IjQm9CY0Isg0JHQm9CQ0JYKK9Cf0JjQpdCb0JXQoCDQiNCe0KHQmNCfCivQn9CY0KXQm9CV0KAg0KHQotCQ0J3QmtCeINCU0KAKK9Cf0JjQpdCb0JXQoCDQotCe0JTQntCgCivQn9CY0IjQkNCd0JjQiyDQlNCQ0J3QmNCI0JXQmwor0J/QmNCI0JXQotCb0J7QktCY0Isg0JHQoNCQ0J3Qngor0J/QmNCI0JXQotCb0J7QktCY0Isg0IjQntCS0JDQnQor0J/QmNCI0KPQmtCe0JLQmNCLINCV0JvQl9CQCivQn9CY0IjQo9Ca0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QmNCa0KHQmNCQ0JTQldChINCe0J3QlNCg0JXQiAor0J/QmNCa0KHQmNCI0JDQlNCV0KEg0JDQndCQCivQn9CY0JrQodCY0IjQkNCU0JXQoSDQn9CQ0JLQldCbCivQn9CY0JrQodCY0IjQkNCU0JXQoSDQn9CQ0JLQm9CVCivQn9CY0JrQo9Cb0JAg0ILQntCg0ILQlQor0J/QmNCa0KPQm9CQINCR0KDQkNCd0JrQngor0J/QmNCbINCQ0J3QlNCg0JjQiNCQCivQn9CY0Jsg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQmyDQodCi0JXQktCQ0J0KK9Cf0JjQmyDQotCV0KDQldCX0JAKK9Cf0JjQm9CQ0KAg0JzQkNCg0JjQptCQCivQn9CY0JvQpiDQndCQ0J3QlNCe0KAKK9Cf0JjQm9CmINCg0JXQltCVCivQn9CY0JvQpiDQl9Ce0JvQotCQ0J0KK9Cf0JjQm9CV0KAg0JrQkNCg0JvQngor0J/QmNCb0JjQqCDQkNCd0JAKK9Cf0JjQm9CY0Kgg0JDQndCU0KDQkNCoCivQn9CY0JvQmNCoINCI0J7QodCY0J8KK9Cf0JjQm9CY0KjQldCgINCC0J7QoNCC0JUKK9Cf0JjQm9CY0Isg0JbQkNCg0JrQngor0J/QmNCb0JjQiyDQkNCd0KLQntCdCivQn9CY0JvQmNCLINCR0J7QoNCY0JLQntCICivQn9CY0JvQmNCLINCR0J7QoNCeCivQn9CY0JvQmNCLINCT0JDQktCg0JAKK9Cf0JjQm9CY0Isg0IjQntCS0JDQnQor0J/QmNCb0JjQiy3QmtCQ0JvQldCd0JjQiyDQnNCY0JvQmNCd0JrQkAor0J/QmNCb0JjQiyDQidCY0InQkAor0J/QmNCb0JjQiyDQnNCY0JvQntCoCivQn9CY0JvQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CY0JvQmNCLINCg0JDQndCa0J4KK9Cf0JjQm9CY0Isg0KHQm9CQ0JLQmtCeCivQn9CY0JvQmNCLINCh0KDQkdCe0InQo9CRCivQn9CY0JvQmNCLINCh0KLQkNCd0JrQngor0J/QmNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JjQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QmNCb0JjQn9Ce0JIg0JXQktCQCivQn9CY0JvQmNCf0J7QktCY0Isg0KfQldCU0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQltCY0JLQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QmNCb0JjQn9Ce0JLQmNCLINCC0KPQoNCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JDQndCC0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQkdCe0KjQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCm0JLQmNCI0JXQotCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQkNCd0JUKK9Cf0JjQm9CY0J/QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CeCivQn9CY0JvQmNCf0J7QktCY0Isg0JPQntCg0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCI0J7Qm9CQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQiNCe0JLQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QmNCb0JjQn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCeCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JXQktCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCb0J7QqAor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0J/QmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCVCivQn9CY0JvQmNCf0J7QktCY0Isg0KDQkNCU0JUKK9Cf0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9CY0JvQmNCf0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0KHQotCQ0J3QkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCh0KLQldCS0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQktCe0IjQmNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JfQntCg0JjQptCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JfQktCe0J3QmtCeCivQn9CY0InQmNCLINCc0JDQoNCY0IjQkNCdCivQn9CY0JvQmtCeINCY0KDQldCd0JAKK9Cf0JjQm9Ca0J4g0J/QkNCS0JvQlQor0J/QmNCb0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cf0JjQm9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CY0J3Qi9CY0KAg0IjQkNCdCivQn9CY0J3Qi9CY0KAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QmNCd0IvQmNCgINCX0JTQldCd0JrQngor0J/QmNCd0IvQiNCV0KAg0J7QndCU0KDQldCICivQn9CY0J3Qi9CI0JXQoCDQodCQ0JzQo9CV0JsKK9Cf0JjQndCL0IjQldCgINCh0JDQnNCj0JjQm9CeCivQn9CY0IrQo9Co0JjQiyDQmNCb0JjQiNCQCivQn9CY0IrQo9ClINCc0JjQoNCI0JDQndCQCivQn9CY0IrQo9ClINCf0JXQotCQ0KAKK9Cf0JjQndCi0JDQpyDQpNCg0JDQitCeCivQn9CY0J3QotCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0J/QmNCd0KLQkNCnINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQntCV0KYKK9Cf0JjQndCi0JDQpyDQktCV0KHQndCQCivQn9CY0J3QotCQ0Isg0ILQntCg0ILQlQor0J/QmNCd0KLQkNCLINCc0JDQoNCY0IjQkAor0J/QmNCd0KLQkNCg0JjQiyDQiNCQ0KHQndCQCivQn9CY0J3QotCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cf0JjQndCi0JXQoCDQkNCU0KDQmNCV0J3QlQor0J/QmNCd0KLQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CY0J3QotCV0KAg0JDQndCU0KDQkNCoCivQn9CY0J3QotCV0KAg0JHQldCb0JAKK9Cf0JjQndCi0JXQoCDQkdCV0JvQkAor0J/QmNCd0KLQldCgINCk0KDQkNCK0JAKK9Cf0JjQndCi0JXQoCDQmNCc0KDQlQor0J/QmNCd0KLQldCgINCI0JDQndCe0KgKK9Cf0JjQndCi0JXQoCDQmtCQ0KDQntCJCivQn9CY0J3QotCV0KAg0JrQkNCi0JDQm9CY0J0KK9Cf0JjQndCi0JXQoCDQm9CV0J3QmtCQCivQn9CY0J3QotCV0KAg0JvQmNCS0JjQiNCQCivQn9CY0J3QotCV0KAg0JzQkNCg0JjQiNCQCivQn9CY0J3QotCV0KAg0JzQmNCl0JDQiQor0J/QmNCd0KLQldCgINCc0JjQpdCQ0IkKK9Cf0JjQndCi0JXQoCDQodCi0JXQktCQ0J0KK9Cf0JjQndCi0JXQoCDQotCY0JHQntCgCivQn9CY0J3QotCV0KAg0JLQldCg0JAKK9Cf0JjQndCi0JXQoCDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0JjQn9CV0KAg0JLQldCb0JjQkdCe0KAKK9Cf0JjQn9CV0KDQkNCmINCd0JDQlNCQCivQn9CY0J/QldCg0JrQntCSINCQ0J3QmtCQCivQn9CY0J/QldCg0KHQmtCYINCW0JjQktCQCivQn9CY0J/QldCg0KHQmtCYINCQ0J3QkAor0J/QmNCf0JXQoNCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQn9CY0J/QldCg0KHQmtCYINCa0J7QodCi0JAKK9Cf0JjQoNCmINCU0JDQndCY0KbQkAor0J/QmNCg0Jgg0IjQkNCd0J7QqAor0J/QmNCg0Jgg0IjQntCW0JXQpAor0J/QmNCg0Jgg0IjQntCh0JjQnwor0J/QmNCg0Jgg0IjQntCh0JjQnwor0J/QmNCg0JjQiyDQmNCR0KDQkNCl0JjQnAor0J/QmNCg0JjQiyDQntCh0JzQkNCdCivQn9CY0KDQmNCLINCX0J7QoNCQCivQn9CY0KDQmNCS0JDQotCg0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QmNCg0JzQkNCI0JXQoCDQiNCe0KHQmNCfCivQn9CY0KDQntCo0JrQmCDQlNCg0JDQk9CY0KbQkAor0J/QmNCg0J7QqNCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QmNCg0J7QqNCa0Jgg0JzQmNCe0JTQoNCQ0JMKK9Cf0JjQoNCe0KjQmtCYINCS0JDQodCQCivQn9CY0KDQotCY0Isg0JrQodCV0J3QmNCI0JAKK9Cf0JjQoNCi0JjQiyDQoNCQ0JTQmNCd0JrQkAor0J/QmNCg0KLQmNCLINCh0JDQktCV0KLQkAor0J/QmNChINCV0JTQmNCi0JAKK9Cf0JjQodCQ0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JjQodCQ0KAg0KjQkNCd0JTQntCgCivQn9CY0KHQkNCgINCU0KPQqNCQ0J0KK9Cf0JjQodCQ0KAg0IjQntCW0JXQpAor0J/QmNCh0JDQoCDQm9CQ0KHQm9CeCivQn9CY0KHQkNCg0JXQkiDQgtCe0KDQgtCVCivQn9CY0KHQkNCg0JXQkiDQldCc0JjQm9CY0IjQkAor0J/QmNCh0JDQoNCV0JIg0JrQkNCi0JjQptCQCivQn9CY0KHQkNCg0JXQkiDQnNCY0JvQkNCdCivQn9CY0KHQkNCg0JXQktCY0Isg0ILQntCg0ILQlQor0J/QmNCh0JDQoNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JjQodCQ0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQn9CY0KHQkNCg0JXQktCY0Isg0JzQmNCi0JDQoAor0J/QmNCh0JDQoNCV0JLQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0J/QmNCh0JDQoNCY0Isg0ILQo9Cg0JAKK9Cf0JjQodCQ0KDQmNCLINCC0KPQoNCeCivQn9CY0KHQkNCg0JjQiyDQkdCb0JDQltCeCivQn9CY0KHQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JjQodCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0J/QmNCh0JDQoNCY0Isg0JTQoNCQ0JPQngor0J/QmNCh0JDQoNCY0Isg0J3QldCC0J4KK9Cf0JjQodCQ0KDQmNCLINCe0KHQotCe0IjQkAor0J/QmNCh0JDQoNCY0Isg0J7QodCi0J7QiNCQCivQn9CY0KHQkNCg0JjQiyDQn9CQ0JLQm9CVCivQn9CY0KHQkNCg0JjQiyDQktCb0JDQlNCeCivQn9CY0KHQkNCg0J7QkiDQgtCe0KDQgtCVCivQn9CY0KHQkNCg0J7QkiDQmtCQ0KLQmNCm0JAKK9Cf0JjQodCQ0KDQntCSINCS0JDQodCQCivQn9CY0KLQkCDQnNCQ0KXQnNCj0KIKK9Cf0JjQotCQINCc0JDQpdCc0KPQogor0J/QmNCi0J7QnNCQ0KfQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cf0JjQotCe0JzQkNCn0JjQiyDQktCb0JDQlNCQCivQn9CY0KLQo9CaINCd0JDQlNCQCivQn9CY0KPQmtCe0JLQmNCLINCY0JLQkNCdCivQn9CY0KPQmtCe0JLQmNCLINCc0JDQk9CU0JAKK9Cf0JjQktCQ0Kcg0JHQntCh0JjQidCa0JAKK9Cf0JjQktCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0J/QmNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0J/QmNCS0JDQpiDQnNCY0JvQntCS0JDQnQor0J/QmNCS0JDQpiDQl9CS0J7QndCY0JzQmNCgCivQn9CY0JLQkNCg0KHQmtCYINCR0KDQkNCd0JrQkAor0J/QmNCS0JDQoNCh0JrQmCDQlNCj0KjQkNCdCivQn9CY0JLQkNCg0KHQmtCYINCc0JjQntCU0KDQkNCTCivQn9CY0JLQkNCg0KHQmtCYINCg0JDQotCe0JzQmNCgCivQn9CY0JLQkNCg0KHQmtCYINCh0JvQkNCS0JjQptCQCivQn9CY0JLQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0J/QmNCS0JDQoNCh0JrQmCDQktCV0KHQldCb0JjQnSDQnNCgINCf0KUKK9Cf0JjQktCd0JjQp9Ca0Jgg0JHQntCT0JTQkNCd0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JjQktCd0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CY0JLQndCY0KfQmtCYINCR0KDQkNCd0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9Cf0JjQktCd0JjQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JjQktCQ0J3QmtCQCivQn9CY0JLQndCY0KfQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQn9CY0JLQndCY0KfQmtCYINCc0JjQm9CQ0J0KK9Cf0JjQktCd0JjQp9Ca0Jgg0JzQmNCb0JXQotCQCivQn9CY0JLQndCY0KfQmtCYINCg0JDQlNCV0J3QmtCeCivQn9CY0JLQndCY0KfQmtCYINCg0JDQiNCa0J4KK9Cf0JjQktCd0JjQp9Ca0Jgg0KHQotCe0IjQmtCQCivQn9CY0JLQndCY0KfQmtCYINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0IjQkNCd0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QiNCQ0J3QmNCLINCg0JjQodCi0JAKK9Cf0IjQldCo0KfQmNCLINCR0J7Qk9Ce0InQo9CRCivQn9CI0JXQqNCn0JjQiyDQm9CV0J/QntCh0JDQktCQCivQn9CI0JXQqNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0IjQldCo0KfQmNCLINCc0JjQm9CV0JLQkAor0J/QiNCV0KjQp9CY0Isg0J3QntCS0JDQmgor0J/QiNCV0KjQmNCS0JDQpiDQl9CU0KDQkNCS0JrQngor0J/QiNCV0KLQm9Ce0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CI0JXQktCQ0Kcg0J3QmNCa0J7Qm9CQCivQn9CI0JXQktCQ0KYg0JHQoNCQ0J3QmtCeCivQn9CI0JXQktCQ0KYg0JTQo9Co0JDQnQor0J/QiNCV0JLQkNCmINCh0KLQldCS0JDQnQor0J/QiNCV0JLQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Cf0IjQldCS0JDQpiDQl9Ce0KDQkAor0J/QiNCV0JLQkNCb0JjQptCQINCj0KDQntCoCivQn9CI0JXQktCY0Isg0ILQo9Cg0JDQggor0J/QiNCV0JLQmNCLINCR0J7QltCeCivQn9CI0JXQktCY0Isg0JzQmNCg0JrQniDQlNCgCivQn9CI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQINCU0KAKK9Cf0JvQkNCn0JrQmNCLINCW0JDQoNCa0J4KK9Cf0JvQkNCn0JrQmNCLINCR0J7QltCY0JTQkNCgCivQn9Cb0JDQp9Ca0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JvQkNCn0JrQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0JvQkNCn0JrQmNCLINCh0JvQkNCS0JrQngor0J/Qm9CQ0KfQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/Qm9CQ0KfQmtCeINCh0KLQiNCV0J/QkNCdCivQn9Cb0JDQp9Ca0J7QkiDQltCY0JLQmtCQCivQn9Cb0JDQp9Ca0J7QkiDQgtCe0KDQgtCVCivQn9Cb0JDQp9Ca0J7QkiDQkdCe0KDQmNCS0J7QiAor0J/Qm9CQ0KfQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cb0JDQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JvQkNCn0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/Qm9CQ0KfQmtCe0JIg0JHQoNCQ0J3QmtCQCivQn9Cb0JDQp9Ca0J7QkiDQlNCj0KjQkNCdCivQn9Cb0JDQp9Ca0J7QkiDQmNCb0J7QndCa0JAKK9Cf0JvQkNCn0JrQntCSINCc0JjQm9CQ0J0KK9Cf0JvQkNCn0JrQntCSINCc0JjQoNCe0InQo9CRCivQn9Cb0JDQp9Ca0J7QkiDQn9CQ0IjQkAor0J/Qm9CQ0KfQmtCe0JIg0J/QldCg0JAKK9Cf0JvQkNCn0JrQntCSINCf0JXQotCQ0KAKK9Cf0JvQkNCn0JrQntCSINCg0KPQlNCe0JvQpAor0J/Qm9CQ0KfQmtCe0JIg0KHQkNCS0JAKK9Cf0JvQkNCn0JrQntCSINCh0JDQktCV0KLQkAor0J/Qm9CQ0KfQmtCe0JIg0KHQmNCc0JAKK9Cf0JvQkNCn0JrQntCSINCh0KLQkNCd0JjQnNCY0KAKK9Cf0JvQkNCn0JrQntCSINCh0KLQldCS0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0KHQotCV0JLQkAor0J/Qm9CQ0KfQmtCe0JIg0KHQotCe0IjQkNCdCivQn9Cb0JDQp9Ca0J7QkiDQodCS0JXQotCe0JfQkNCgCivQn9Cb0JDQp9Ca0J7QkiDQktCj0JrQntCh0JDQktCQCivQn9Cb0JDQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0J/Qm9CQ0KfQmtCe0JLQmNCLINCf0JDQiNCQCivQn9Cb0JDQpiDQldCU0J4KK9Cf0JvQkNCa0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9Cb0JDQndCn0JDQmiDQkNCc0JDQm9CY0IjQkAor0J/Qm9CQ0J3Qp9CQ0Jog0JXQo9Ck0JXQnNCY0IjQkAor0J/Qm9CQ0J3Qp9CQ0Jog0JXQo9CT0JXQnQor0J/Qm9CQ0J3Qp9CQ0Jog0IjQntCS0JDQnQor0J/Qm9CQ0J3Qp9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9Cf0JvQkNCd0KfQkNCaINCc0JjQoNCe0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0J/Qm9CQ0J3QmNCLINCg0JDQlNCe0JLQkNCdCivQn9Cb0JDQndCY0Isg0JfQlNCV0J3QmtCQCivQn9Cb0JDQndCY0J3Qp9CY0Isg0JzQmNCd0JAKK9Cf0JvQkNCd0JjQndCn0JjQiyDQktCV0KHQldCb0JjQnQor0J/Qm9CQ0IrQkNCd0JjQnSDQoNCQ0JTQntCc0JjQoAor0J/Qm9CQ0J3QntCI0JXQktCY0Isg0JzQmNCb0KPQotCY0J0g0JTQoAor0J/Qm9CQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQn9Cb0JDQotCY0KjQkCDQnNCY0JvQkNCdCivQn9Cb0JDQotCY0KjQkCDQnNCY0J7QlNCg0JDQkwor0J/Qm9CQ0JLQqNCY0Isg0JDQndCC0JAKK9Cf0JvQkNCS0KjQmNCLINCQ0J3QmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCQ0J3QmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCQ0J3QmtCQCivQn9Cb0JDQktCo0JjQiyDQkdCe0KjQmtCeCivQn9Cb0JDQktCo0JjQiyDQkdCe0JbQkAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCW0JAKK9Cf0JvQkNCS0KjQmNCLINCR0J7QltCY0JTQkNCgCivQn9Cb0JDQktCo0JjQiyDQkdCe0JPQntCc0JjQoAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/Qm9CQ0JLQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cb0JDQktCo0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCR0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JHQoNCQ0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQptCS0JjQiNCeCivQn9Cb0JDQktCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JvQkNCS0KjQmNCLINCU0KPQqNCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCU0KPQqNCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JvQkNCS0KjQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9Cb0JDQktCo0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0IjQntCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0IjQntCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0IjQntCS0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9Cb0JDQktCo0JjQiyDQmtCg0KHQotCQCivQn9Cb0JDQktCo0JjQiyDQm9CQ0JfQkNCgCivQn9Cb0JDQktCo0JjQiyDQidCY0InQkNCd0JAKK9Cf0JvQkNCS0KjQmNCLINCJ0KPQkdCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0InQo9CR0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQidCj0JHQmNCd0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCb0KPQmtCQCivQn9Cb0JDQktCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JvQkNCS0KjQmNCLINCc0JDQoNCY0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQnNCQ0KDQmNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCb0JjQndCa0JAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9Ce0KgKK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9Ce0JzQmNCgCivQn9Cb0JDQktCo0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCg0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCg0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQotCQ0KAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQotCQCivQn9Cb0JDQktCo0JjQiyDQnNCe0JzQp9CY0JvQngor0J/Qm9CQ0JLQqNCY0Isg0JzQntCc0JjQoAor0J/Qm9CQ0JLQqNCY0Isg0J3QldCg0JAKK9Cf0JvQkNCS0KjQmNCLINCd0JjQmtCe0JvQkAor0J/Qm9CQ0JLQqNCY0Isg0J3QntCS0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0J/QkNCS0JAKK9Cf0JvQkNCS0KjQmNCLINCf0JXQotCQ0KAKK9Cf0JvQkNCS0KjQmNCLINCf0JXQotCQ0KAKK9Cf0JvQkNCS0KjQmNCLINCg0JDQlNCVCivQn9Cb0JDQktCo0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCg0JDQlNCe0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQoNCQ0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQoNCQ0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQodCY0JzQkAor0J/Qm9CQ0JLQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCh0KLQldCS0J4KK9Cf0JvQkNCS0KjQmNCLINCi0J7QlNCVCivQn9Cb0JDQktCo0JjQiyDQotCe0JTQntCgCivQn9Cb0JDQktCo0JjQiyDQktCY0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQktCY0KLQntCc0JjQoAor0J/Qm9CQ0JLQqNCY0Isg0JLQm9CQ0JTQkAor0J/Qm9CQ0JLQqNCY0Isg0JLQntCI0JjQnQor0J/Qm9CQ0JLQqNCY0Isg0JLQntCI0JjQnQor0J/Qm9CQ0JLQqNCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0J/Qm9CQ0JLQqNCY0Isg0JfQntCg0JrQkAor0J/Qm9CQ0JLQqNCY0J0g0JTQo9Co0JDQnQor0J/Qm9CQ0JLQqNCY0J0g0JzQmNCb0JjQptCQCivQn9Cb0JDQktCo0JjQnSDQodCi0JXQktCQ0J0KK9Cf0JvQkNCS0JDQpiDQltCV0InQmtCeCivQn9Cb0JDQktCQ0KYg0JTQo9Co0JDQnQor0J/Qm9CQ0JLQkNCmINCI0JDQndCa0J4KK9Cf0JvQkNCS0KYg0JDQpdCc0JXQogor0J/Qm9CQ0JLQpiDQkdCQ0IjQoNCj0KgKK9Cf0JvQkNCS0InQkNCd0JjQnSDQltCY0JLQmtCeCivQn9Cb0JDQl9CQ0KfQmNCLINCS0JjQlNCe0IjQlQor0J/Qm9CQ0JfQmNCd0JAg0J/Qo9Cd0JjQqNCQCivQn9Cb0JXQqNCQINCI0J7QodCY0J8KK9Cf0JvQldCo0JUg0JPQntCg0JDQnQor0J/Qm9CV0KjQmtCeINCQ0J3QmNCm0JAKK9Cf0JvQldCo0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/Qm9CV0KjQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JvQldCL0JDQqCDQlNCQ0J3QmNCb0J4KK9Cf0JvQldCL0JDQqCDQmNCb0JjQiNCQCivQn9Cb0JXQi9CQ0Kgg0JrQkNCi0JjQptCQCivQn9Cb0JXQi9CQ0Kgg0JzQmNCb0JXQktCQCivQn9Cb0JXQi9CQ0Kgg0KDQkNCU0JUKK9Cf0JvQldCL0JDQqCDQoNCe0JfQkNCb0JjQiNCQCivQn9Cb0JXQnNCY0Isg0ILQo9Cg0J4KK9Cf0JvQldCc0JjQiyDQlNCQ0J3QlQor0J/Qm9CV0JzQmNCLINCc0JjQm9CQ0J0KK9Cf0JvQldCh0JrQntCK0JAg0JzQmNCb0J7QiNCY0KbQkAor0J/Qm9CV0KHQmtCe0IrQmNCLINCQ0JzQkNCb0JjQiNCQCivQn9Cb0JXQodCa0J7QktCY0Isg0JDQndCi0KPQnQor0J/Qm9CV0KHQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/Qm9CV0KHQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQn9Cb0JXQotCV0Jsg0JrQodCV0J3QmNCI0JAKK9Cf0JvQldCi0JXQmyDQnNCY0JvQkNCdCivQn9Cb0JXQotCY0JrQkNCf0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JvQldCi0JjQmtCe0KHQmNCLINCJ0JXQoNCa0JAKK9Cf0JvQldCi0JjQmtCe0KHQmNCLINCf0JXQotCQ0KAKK9Cf0JvQldCi0Jsg0J7QotCY0JvQmNCI0JAKK9Cf0JvQmNCh0J3QmNCLINCc0JjQm9CY0KbQkAor0J/Qm9CY0KHQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JvQmNCS0JDQoCDQiNCe0JLQkNCdCivQn9CJ0KPQptCeINCR0KDQkNCd0JrQngor0J/Qm9Ce0KUg0JTQoNCQ0JPQngor0J/Qm9Ce0KUg0KTQoNCQ0IrQkAor0J/Qm9Ce0Igg0JzQkNCg0JjQiNCQCivQn9Cb0J7QoSDQnNCY0J7QlNCg0JDQkwor0J/Qm9Cj0JbQkNCg0JXQkiDQm9CQ0JfQkNCgCivQn9Cb0KPQltCQ0KDQldCSINCe0JvQmNCS0JXQoNCQINCU0KAKK9Cf0JvQo9CW0JDQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cf0JvQo9Ca0JDQktCV0KYg0JjQktCQ0J0KK9Cf0JvQl9CQ0Jog0JTQoNCQ0JPQntCh0JvQkNCSCivQn9Ce0KfQkNCd0JjQiyDQotCg0JjQn9CeCivQn9Ce0KfQldCaINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCn0JXQmiDQkdCg0JDQndCa0J4KK9Cf0J7Qp9CV0Jog0InQmNCJ0JDQndCQCivQn9Ce0KfQldCaINCc0JjQm9Ce0JLQkNCdCivQn9Ce0KfQldCaINCS0JvQkNCU0JAKK9Cf0J7Qp9CV0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9Ce0KfQldCaINCS0JvQkNCU0JjQodCb0JDQkgor0J/QntCn0JXQotCQ0Jog0JzQmNCb0JXQndCa0J4KK9Cf0J7Qp9CV0KLQkNCaINCc0JjQm9CY0KbQkAor0J/QntCn0KPQp9CQINCU0JzQmNCi0JDQoAor0J/QntCn0KPQp9CQINCU0KPQqNCQ0J0KK9Cf0J7Qp9Cj0KfQkCDQiNCe0JLQkNCd0JrQkAor0J/QntCn0KPQp9CQINCf0JXQotCQ0KAKK9Cf0J7Qp9Cj0KfQkCDQoNCQ0JTQnNCY0JvQkAor0J/QntCo0KfQmNCLINCV0KDQmNCa0JAKK9Cf0J7QqNCQINCC0KPQoNCQCivQn9Ce0KjQkCDQkNCd0JTQoNCQ0KgKK9Cf0J7QqNCQINCU0KDQkNCT0JjQptCQCivQn9Ce0KjQkCDQmNCo0KLQktCQ0J0KK9Cf0J7QqNCQINCa0JDQoNCb0J4KK9Cf0J7QqNCQINCf0JXQotCQ0KAKK9Cf0J7QqNCQINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0J7QqNCQINCh0J3QldCW0JDQndCQCivQn9Ce0KjQkNCg0JDQpiDQlNCj0KjQmtCeCivQn9Ce0KjQkNCg0JDQpiDQl9Ce0KDQkNCdCivQn9Ce0KjQotCQINCd0JjQmtCe0JvQkAor0J/QntCo0KLQmNCLINCC0J7QoNCC0JUg0JTQoAor0J/QntCo0KLQmNCLINCU0KDQkNCT0JDQnQor0J/QntCo0KLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7QqNCi0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QntCo0KLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCo0KLQmNCLINCh0KDQgtCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Ce0KjQotCe0Kgg0JLQldCg0JAKK9Cf0J7QltCQ0KAg0JzQmNCb0JjQptCQCivQn9Ce0JbQkNCg0JXQkiDQgtCe0KDQgtCVCivQn9Ce0JbQkNCg0JXQkiDQgtCe0KDQgtCVCivQn9Ce0JbQkNCg0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCW0JDQoNCV0JIg0JDQndCC0JXQm9Ca0JAKK9Cf0J7QltCQ0KDQldCSINCU0J7QoNCQCivQn9Ce0JbQkNCg0JXQkiDQiNCV0JvQldCd0JAKK9Cf0J7QltCQ0KDQldCSINCg0JDQlNCVCivQn9Ce0JbQkNCg0JXQkiDQoNCQ0KLQntCc0JjQoNCa0JAKK9Cf0J7QltCQ0KDQldCSINCg0JDQotCe0JzQmNCgCivQn9Ce0JbQkNCg0JXQkiDQodCi0JXQktCQ0J0KK9Cf0J7QltCQ0KDQldCSINCS0JXQodCV0JvQmNCdCivQn9Ce0JbQldCT0JAg0JzQmNCb0JUKK9Cf0J7QltCV0JPQkCDQodCe0KTQmNCI0JAKK9Cf0J7QltCV0JPQkCDQodCi0JXQktCQ0J0KK9Cf0J7QltCT0JDQiCDQkNCd0KLQo9CdCivQn9Ce0JbQk9CQ0Igg0KLQntCc0JjQodCb0JDQkgor0J/QntCR0J7QoCDQiNCV0JvQldCd0JAKK9Cf0J7QkdCe0KAg0KHQoNCV0KLQngor0J/QntCR0KDQkNCdINCh0KLQldCS0JDQnQor0J/QntCR0KDQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cf0J7QkdCg0JjQiyDQmNCh0JDQmgor0J/QntCR0KPQi9CQ0J3QntCS0JjQiy3QmtCj0InQkNCd0JrQmNCLINCo0KPQpdCg0JXQotCQCivQn9Ce0JHQo9CC0JDQndCe0JLQmNCLINCY0JvQmNCd0JrQkAor0J/QntCR0KPQgtCQ0J3QntCS0JjQiyDQnNCj0KXQkNCg0JXQnAor0J/QntCR0KPQgtCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQn9Ce0KbQkNCI0KIg0JLQmNCa0KLQntCgCivQn9Ce0KbQnNCQ0J0g0JDQndCi0KPQnQor0J/QntCm0JzQkNCdINCS0JjQm9CY0JwKK9Cf0J7QptCg0J3QmNCLINCc0JjQm9CVCivQn9Ce0KbQoNCd0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7QlNCT0J7QoNCd0JjQmiDQnNCY0JvQkNCdCivQn9Ce0JTQk9Ce0KDQndCY0Jog0KDQkNCI0J3QkAor0J/QntCU0JvQmNCf0JXQpiDQnNCQ0KDQmNCI0JAKK9Cf0J7QlNCc0JDQiNCe0KDQodCa0Jgg0JzQkNCg0JAKK9Cf0J7QlNCe0JHQndCY0Jog0IjQkNCh0J3QkAor0J/QntCU0J7Qm9CQINCI0KPQodCi0JjQndCQCivQn9Ce0JTQoNCQ0KjQp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9Cf0J7QlNCg0JDQqNCn0JDQndCY0J0g0J3QkNCU0JAKK9Cf0J7QlNCg0JDQqNCn0JDQndCY0J0g0JLQntCI0JAKK9Cf0J7QlNCg0JDQktCQ0KYg0JHQoNCQ0J3QmtCeCivQn9Ce0JPQkNCd0KfQldCSINCT0J7QoNCQ0J0KK9Cf0J7Qk9CQ0J3Qp9CV0JIg0JPQntCg0JDQnQor0J/QntCT0JDQiiDQiNCj0JvQmNCI0JDQndCQCivQn9Ce0JPQo9CR0JXQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7QiNCR0JjQiyDQlNCj0KjQkNCdCivQn9Ce0IjQlSDQiNCe0KHQmNCfCivQn9Ce0IjQmNCLINCR0KDQkNCd0JrQngor0J/QntCa0JAg0IjQntCh0JjQnwor0J/QntCa0JDQoSDQiNCe0KHQmNCfCivQn9Ce0JrQoNCQ0IjQkNCmINCQ0J3Qk9CV0JvQmNCd0JAKK9Cf0J7QmtCg0JDQiNCQ0KYg0IjQntCS0JDQnQor0J/QntCa0KDQkNCI0JDQpiDQiNCe0JLQkNCdCivQn9Ce0JrQoNCQ0IjQkNCmINCc0JjQm9CQ0J0KK9Cf0J7QmtCg0JDQiNCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7QmtCg0JDQiNCQ0KYg0KDQkNCU0JUKK9Cf0J7QmtCg0JDQiNCQ0KYg0KHQm9CQ0JLQmtCeCivQn9Ce0JrQoNCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QntCa0KPQqNCV0JLQodCa0Jgg0JTQntCR0KDQmNCd0JrQkAor0J/QntCa0KPQn9CV0KYg0JzQmNCb0JDQnQor0J/QntCb0JDQmiDQiNCV0JvQldCd0JAKK9Cf0J7Qm9CQ0Jog0IjQntCW0JXQpAor0J/QntCb0JDQmiDQodCi0JXQktCQ0J0KK9Cf0J7Qm9CQ0JrQntCS0JjQiyDQldCg0JbQldCR0JXQogor0J/QntCb0JDQmtCe0JLQmNCLINCI0JDQndCe0KgKK9Cf0J7Qm9CQ0J3QldCmINCk0KDQkNCK0J4KK9Cf0J7Qm9CVINCd0JjQmtCe0JvQkAor0J/QntCb0JUg0J3QmNCa0J7Qm9CQCivQn9Ce0JvQldCU0JjQptCQINCU0KPQqNCQ0J3QmtCQCivQn9Ce0JvQldCd0JTQldCgINCh0J7QpNCY0IjQkAor0J/QntCb0JXQoNCc0JDQnSDQkdCV0JvQkAor0J/QntCb0JXQoNCc0JDQnSDQnNCY0JvQmNCm0JAKK9Cf0J7Qm9CV0KLQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Cf0J7Qm9CV0KLQniDQlNCe0JzQldCd0JjQmgor0J/QntCb0JXQotCeINCY0JLQkNCdCivQn9Ce0JvQk9CQ0KAg0JjQqNCi0JLQkNCdCivQn9Ce0JvQmNCLINCC0KPQoNCQCivQn9Ce0JvQmNCLINCR0J7QqNCa0J4KK9Cf0J7Qm9CY0Isg0JTQkNCd0JjQptCQCivQn9Ce0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cf0J7Qm9CY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cf0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCb0JjQnNCQ0KYg0JDQndCC0JXQm9CY0IjQkAor0J/QntCb0JjQnSDQgtCj0KDQkAor0J/QntCb0JjQnSDQm9CQ0KHQm9CeCivQn9Ce0JvQmNCd0KHQmtCYINCQ0KDQkNCd0JrQkAor0J/QntCJ0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7QidCQ0KfQmtCYINCc0JjQm9CY0KbQkAor0J/QntCJ0JDQp9Ca0Jgg0JzQmNCb0JjQptCQCivQn9Ce0InQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQn9Ce0InQkNCaINCC0JXQoNCCCivQn9Ce0InQkNCaINCV0JLQkAor0J/QntCJ0JDQmiDQpNCg0JDQitCeCivQn9Ce0InQkNCaINCb0JDQodCb0J4KK9Cf0J7QidCQ0Jog0JzQmNCo0JAKK9Cf0J7QidCQ0Jog0JzQmNCl0JDQiQor0J/QntCJ0JDQmiDQnNCY0JvQmtCQCivQn9Ce0InQkNCaINCc0JjQntCU0KDQkNCTCivQn9Ce0InQkNCaINCc0JjQntCU0KDQkNCTCivQn9Ce0InQkNCaINCd0JjQmtCe0JvQkAor0J/QntCJ0JDQmiDQndCY0JrQntCb0JAKK9Cf0J7QidCQ0Jog0J/QldCi0JDQoAor0J/QntCJ0JDQmiDQoNCQ0J3QmtCeCivQn9Ce0InQkNCa0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9Cf0J7QidCQ0J3QodCa0Jgg0IjQntCS0JjQptCQCivQn9Ce0InQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0J/QntCJ0JDQndCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cf0J7QidCY0KfQkNCaINCQ0J3QotCVCivQn9Ce0InQmNCn0JDQmiDQidCj0JHQkNCdCivQn9Ce0InQmNCLINCg0JXQpNCY0JoKK9Cf0J7QidCe0JLQmtCQINCI0JDQnQor0J/QntCJ0JLQkNCoINCI0J7QltCV0KQKK9Cf0J7Qm9Ce0IjQkNCmINCb0KPQmtCQCivQn9Ce0JvQntCS0JjQiyDQmtCe0KHQotCQCivQn9Ce0JvQntCS0JjQiyDQodCi0JXQktCeCivQn9Ce0JvQntCS0JjQndCQINCC0J7QoNCC0JUKK9Cf0J7Qm9Ce0JLQmNCd0JAg0JTQkNCd0JjQiNCV0JsKK9Cf0J7Qm9Ce0JLQmNCd0JAg0JjQodCQCivQn9Ce0JvQntCS0JjQndCQINCc0JjQm9CQ0J0KK9Cf0J7Qm9Ce0JLQmNCd0JAg0JzQmNCb0JjQptCQCivQn9Ce0JvQntCS0JjQndCQINCc0JjQm9Ce0KDQkNCUCivQn9Ce0JvQntCS0JjQndCQINCd0JDQlNCQCivQn9Ce0JvQntCS0JjQndCQINCd0JjQmtCe0JvQkAor0J/QntCb0J7QktCY0J3QkCDQn9Cb0JXQnNCV0J3QmtCQCivQn9Ce0JvQntCS0JjQndCQINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7Qm9Ce0JLQmNCd0JAg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCb0J7QktCY0J3QkCDQodCi0JXQktCeCivQn9Ce0JvQntCS0JjQndCQINCi0J7QlNCe0KAKK9Cf0J7Qm9Ce0JLQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCb0J7QktCY0J3QkCDQktCb0JDQlNCeCivQn9Ce0JvQntCS0JjQndCh0JrQmCDQodCQ0JLQkAor0J/QntCb0KLQo9Cg0JAg0JbQo9CW0JDQndCQCivQn9Ce0JvQotCj0KDQkCDQk9CQ0JHQntCgCivQn9Ce0JvQotCj0KDQkCDQmNCg0JXQndCQCivQn9Ce0JvQotCj0KDQkCDQnNCY0KDQmtCeCivQn9Ce0JvQo9CW0JDQndCh0JrQmCDQmNCS0JDQndCa0JAKK9Cf0J7Qm9Cj0JzQmNCg0JDQpiDQnNCY0JvQmNCm0JAKK9Cf0J7Qm9Cj0KLQkCDQm9CY0J3QkAor0J/QntCb0JLQldCg0JXQltCQ0J0t0J7QkdCo0KPQodCiINCL0JXQi9CY0JvQmNCI0JAKK9Cf0J7Qm9CX0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qm9CX0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCb0JfQntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Cf0J7Qm9CX0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCb0JfQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9Ce0JzQntCg0JjQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J3Qk9CeINCW0KPQltCQ0J3QkAor0J/QntCd0JPQniDQiNCQ0J3QntCoCivQn9Ce0J3Qk9CeINCb0JDQodCb0J4KK9Cf0J7QndCT0J4g0KHQotCV0JLQkNCdCivQn9Ce0IrQkNCg0JDQpiDQodCQ0JLQngor0J/QntCK0JDQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0J7QitCQ0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQn9Ce0IrQkNCS0JjQiyDQodCY0J3QmNCo0JAKK9Cf0J7QitCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9Ce0IrQldCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0IrQldCS0JjQiyDQodCf0JDQodCQ0J0KK9Cf0J7QitCV0JLQmNCLINCX0JLQldCX0JTQkNCdCivQn9Ce0IrQmNCn0JDQnSDQpdCe0KDQmNCh0JvQkNCSCivQn9Ce0IrQmNCn0JDQnSDQiNCQ0J0KK9Cf0J7QitCY0KfQkNCdINCI0J7QodCY0J8KK9Cf0J7QitCY0JPQldCgINCC0KPQoNCQCivQn9Ce0IrQmNCT0JXQoCDQmNCS0JDQnQor0J/QntCd0J7Qi9Ca0J4g0KfQldCU0J7QnNCY0KAKK9Cf0J7QndCe0KDQkNCmINCb0JDQl9CQ0KAKK9Cf0J7Qny3QiNCe0JLQkNCd0J7QkiDQktCV0KDQkAor0J/QntCfINCX0JTQldCd0JrQngor0J/QntCf0ILQo9Cg0ILQldCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9CQINCh0J/QkNCh0JXQndCY0IjQkAor0J/QntCf0JDQlNCY0Isg0JbQmNCS0JDQnQor0J/QntCf0JDQlNCY0Isg0JbQmNCS0JAKK9Cf0J7Qn9CQ0JTQmNCLINCW0JjQktCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCC0J7QmtCeCivQn9Ce0J/QkNCU0JjQiyDQgtCj0JrQkAor0J/QntCf0JDQlNCY0Isg0JHQoNCQ0J3QmtCQCivQn9Ce0J/QkNCU0JjQiyDQk9Ce0IjQmtCeCivQn9Ce0J/QkNCU0JjQiyDQmNCh0JjQlNCe0KAKK9Cf0J7Qn9CQ0JTQmNCLLdCI0JDQndCj0JfQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QntCf0JDQlNCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QkNCU0JjQiyDQidCj0JHQmNCm0JAKK9Cf0J7Qn9CQ0JTQmNCLINCJ0KPQkdCeCivQn9Ce0J/QkNCU0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QkNCU0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0JDQlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QkNCU0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0JDQlNCY0Isg0J3QldCU0JXQidCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCd0JXQk9Ce0JLQkNCdCivQn9Ce0J/QkNCU0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCd0J7QktCQ0JoKK9Cf0J7Qn9CQ0JTQmNCLINCf0JXQotCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCf0KDQldCU0KDQkNCTCivQn9Ce0J/QkNCU0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QntCf0JDQlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCg0JDQotCe0JzQmNCgCivQn9Ce0J/QkNCU0JjQiyDQodCY0JvQktCY0IjQkAor0J/QntCf0JDQlNCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QkNCU0JjQiyDQodCb0JDQktCe0InQo9CRCivQn9Ce0J/QkNCU0JjQiyDQodCi0JDQndCQCivQn9Ce0J/QkNCU0JjQiyDQodCi0J7QiNCY0KbQkAor0J/QntCf0JDQlNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J/QntCf0JDQlNCY0Isg0KLQmNCl0J7QnNCY0KAKK9Cf0J7Qn9CQ0JTQmNCLINCS0JXQoNCQCivQn9Ce0J/QkNCU0JjQiyDQktCe0IjQmNCh0JvQkNCSINCQ0JTQktCe0JrQkNCiCivQn9Ce0J/QkNCU0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9Ce0J/QkNCg0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qn9CQ0KDQkCDQmNCb0JjQiNCQCivQn9Ce0J/QkNCg0JAg0InQo9CR0JjQqNCQCivQn9Ce0J/QkNCg0JAg0KLQkNCU0JjQiNCQCivQn9Ce0J/QkNCg0JAg0JfQntCg0JDQnQor0J/QntCf0JDQoNCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0J7Qn9CQ0KDQmNCLINCY0KHQmNCU0J7QoAor0J/QntCf0JDQoNCY0Isg0JzQkNCg0JjQptCQCivQn9Ce0J/QkNCg0JjQiyDQndCV0J3QkNCUCivQn9Ce0J/QlNCQ0J3QmtCe0JIg0IjQo9CU0JjQotCQCivQn9Ce0J/QldCI0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0J7Qn9CV0IjQmtCe0JIg0InQmNCJ0JDQndCQCivQn9Ce0J/QldCI0JrQntCSINCc0JDQoNCQCivQn9Ce0J/QldCd0JPQntCSINCS0JDQodCQCivQn9Ce0J/QldCh0JrQoyDQoNCj0JbQkAor0J/QntCf0JPQm9CY0JPQntCg0JjQnSDQn9CQ0JLQm9CVCivQn9Ce0J/QmNCLINCW0JXQidCa0J4KK9Cf0J7Qn9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qn9CY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0J7Qn9CY0Isg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QmNCLINCR0KPQlNCY0JzQmNCgCivQn9Ce0J/QmNCLINCU0KDQkNCT0JDQnQor0J/QntCf0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QmNCLINCU0KPQqNCQ0J0KK9Cf0J7Qn9CY0Isg0JTQo9Co0JDQnQor0J/QntCf0JjQiyDQldCU0JjQotCQCivQn9Ce0J/QmNCLINCT0J7QoNCU0JDQndCQCivQn9Ce0J/QmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9Ce0J/QmNCLINCa0JDQotCY0KbQkAor0J/QntCf0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9CY0Isg0JvQo9Ca0JAKK9Cf0J7Qn9CY0Isg0JzQmNCb0JDQnQor0J/QntCf0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9CY0Isg0JzQmNCb0JjQptCQCivQn9Ce0J/QmNCLINCc0JjQm9CY0JLQntCICivQn9Ce0J/QmNCLINCc0JjQoNCQCivQn9Ce0J/QmNCLINCc0JjQoNCQCivQn9Ce0J/QmNCLINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QmNCLINCd0JDQlNCQCivQn9Ce0J/QmNCLLdCf0JDQidCY0Isg0KTQldCe0JTQntCg0JAKK9Cf0J7Qn9CY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9CY0Isg0KHQkNCS0JAKK9Cf0J7Qn9CY0Isg0KHQkNCS0J4KK9Cf0J7Qn9CY0Isg0KHQndCV0JbQkNCd0JAKK9Cf0J7Qn9CY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9Ce0J/QmNCLINCi0J7QnNCQCivQn9Ce0J/QmNCLINCS0KPQmtCY0KbQkAor0J/QntCf0JjQiyDQl9Ce0KDQkAor0J/QntCf0JjQnSDQmNCS0JDQnQor0J/QntCf0JjQnSDQoNCQ0JTQmNCS0J7QiAor0J/QntCf0JjQnSDQktCY0KLQntCc0JjQoAor0J/QntCf0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QmNCS0J7QlNCQINCR0J7QltCY0JTQkNCgCivQn9Ce0J/QmNCS0J7QlNCQINCc0JjQm9Ce0JLQkNCdCivQn9Ce0J/QmNCS0J7QlNCQINCc0JjQm9Cj0KLQmNCdCivQn9Ce0J/QmNCS0J7QlNCQINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QmNCS0J7QlNCQINCf0JXQotCQ0KAKK9Cf0J7Qn9CY0JLQntCU0JAg0KDQkNCU0JjQodCb0JDQkgor0J/QntCf0JzQmNCl0JDQiNCb0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0J7Qn9Cc0JjQpdCQ0IjQm9Ce0JIg0JTQo9Co0JDQnQor0J/QntCf0J3QntCS0JDQmtCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J3QntCS0JDQmtCe0JIg0JzQmNCb0JDQnQor0J/QntCf0J3QntCS0JDQmtCe0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCn0JXQlNCe0JzQmNCgCivQn9Ce0J/QntCSINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIg0JbQkNCg0JrQngor0J/QntCf0J7Qki3QltCY0JrQldCb0JjQiyDQl9Ce0KDQkAor0J/QntCf0J7QkiDQltCY0JLQmtCQCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCC0J7QmtCQCivQn9Ce0J/QntCSINCC0J7QmtCQCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0KPQoNCC0JjQndCQCivQn9Ce0J/QntCSINCC0KPQoNCQCivQn9Ce0J/QntCSINCC0KPQoNCQCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCSINCQ0J3QgtCQCivQn9Ce0J/QntCSINCQ0J3QlNCe0J0KK9Cf0J7Qn9Ce0JIg0JDQndCa0JjQptCQCivQn9Ce0J/QntCSLdCR0JDQqNCQINCS0JXQoNCQCivQn9Ce0J/QntCSINCR0J7QoNCY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J/QntCf0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QkiDQkdCg0JDQndCa0J4KK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCSINCU0JDQndCY0KbQkAor0J/QntCf0J7QkiDQlNCQ0J3QmNCm0JAKK9Cf0J7Qn9Ce0JIg0JTQkNCd0JjQm9CeCivQn9Ce0J/QntCSINCU0JDQndCY0JvQngor0J/QntCf0J7QkiDQlNCQ0KDQmNCd0JrQkAor0J/QntCf0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0J7Qn9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCSINCU0KDQkNCT0JDQndCQCivQn9Ce0J/QntCSINCU0KDQkNCT0JDQnQor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCSINCU0KDQkNCT0JDQnQor0J/QntCf0J7QkiDQlNCg0JDQk9CQCivQn9Ce0J/QntCSINCU0KDQkNCT0JjQqNCQCivQn9Ce0J/QntCSINCU0KDQkNCT0JjQptCQCivQn9Ce0J/QntCSLdCU0KDQkNCT0JjQnSDQntCb0JPQkAor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0J/QntCf0J7QkiDQlNCj0KjQkNCdINCU0KAKK9Cf0J7Qn9Ce0JIg0JTQo9Co0JDQnQor0J/QntCf0J7QkiDQlNCj0KjQkNCdCivQn9Ce0J/QntCSINCU0KPQqNCQ0J0KK9Cf0J7Qn9Ce0JIg0JTQo9Co0JrQkAor0J/QntCf0J7QkiDQk9CQ0JLQoNCQCivQn9Ce0J/QntCSINCT0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JIg0JPQntCg0JTQkNCd0JAg0JTQoAor0J/QntCf0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0J7QkiDQmNCb0J7QndCa0JAKK9Cf0J7Qn9Ce0JIg0JjQodCQCivQn9Ce0J/QntCSINCY0JLQkNCd0JrQkAor0J/QntCf0J7QkiDQmNCS0JDQnQor0J/QntCf0J7QkiDQmNCS0JrQkAor0J/QntCf0J7QkiDQiNCV0JvQkAor0J/QntCf0J7QkiDQiNCV0JvQkAor0J/QntCf0J7QkiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QntCf0J7QkiDQiNCV0JfQlNCY0JzQmNCgCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0KPQk9Ce0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0IjQo9CTCivQn9Ce0J/QntCSINCI0KPQm9Ca0JAKK9Cf0J7Qn9Ce0JIg0JrQkNCi0JjQptCQCivQn9Ce0J/QntCSINCa0JDQotCY0KbQkAor0J/QntCf0J7QkiDQmtCe0KHQkAor0J/QntCf0J7QkiDQmtCe0JLQmNCd0JrQkAor0J/QntCf0J7QkiDQm9CQ0JfQkNCgCivQn9Ce0J/QntCSINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JIg0JvQkNCX0JDQoAor0J/QntCf0J7QkiDQm9CQ0JfQkNCgCivQn9Ce0J/QntCSINCb0JXQndCa0JAKK9Cf0J7Qn9Ce0JIg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCSINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QkiDQidCj0JHQmNCo0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQptCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QkiDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQptCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0J3QmtCQCivQn9Ce0J/QntCSINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCSINCc0JDQoNCQCivQn9Ce0J/QntCSINCc0JDQoNCY0KbQkAor0J/QntCf0J7QkiDQnNCQ0KDQmNCI0JAKK9Cf0J7Qn9Ce0JIg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCSINCc0JDQoNCY0J3QmtCeCivQn9Ce0J/QntCSINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIg0JzQkNCg0JrQngor0J/QntCf0J7QkiDQnNCQ0KDQmtCeCivQn9Ce0J/QntCSINCc0JjQm9CQ0JTQmNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JXQndCQCivQn9Ce0J/QntCSINCc0JjQm9CV0J3QkAor0J/QntCf0J7QkiDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCc0JjQm9CY0KbQkAor0J/QntCf0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JrQkAor0J/QntCf0J7QkiDQnNCY0JvQntCoCivQn9Ce0J/QntCSINCc0JjQm9Ce0KgKK9Cf0J7Qn9Ce0JIg0JzQmNCb0J7QiNCVCivQn9Ce0J/QntCSINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCSINCc0JjQm9Ce0JLQkNCdCivQn9Ce0J/QntCSINCc0JjQm9Ce0JLQkNCdCivQn9Ce0J/QntCSINCc0JjQm9Cj0KLQmNCdCivQn9Ce0J/QntCSINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCSINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCSINCc0JjQoNCI0JDQnQor0J/QntCf0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQn9Ce0J/QntCSINCc0JjQotCQCivQn9Ce0J/QntCSINCc0J7QnNCn0JjQm9CeCivQn9Ce0J/QntCSINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QntCSINCd0JXQndCQ0KLQmtCQCivQn9Ce0J/QntCSINCd0JjQmtCe0JvQkAor0J/QntCf0J7QkiDQndCY0J3QkAor0J/QntCf0J7QkiDQndCY0J3QntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQndCe0JLQkNCaCivQn9Ce0J/QntCSINCe0JHQoNCQ0JQKK9Cf0J7Qn9Ce0JIt0J7QkdCg0J7QktCQ0KfQmtCYINCh0J7QpNCY0IjQkAor0J/QntCf0J7QkiDQntCb0JPQkAor0J/QntCf0J7QkiDQn9CQ0IjQkAor0J/QntCf0J7QkiDQn9CQ0JLQm9CVCivQn9Ce0J/QntCSINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JIg0J/QkNCS0JvQlQor0J/QntCf0J7QkiDQn9CV0KDQkAor0J/QntCf0J7QkiDQn9CV0KLQkNCgCivQn9Ce0J/QntCSINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JIg0J/Qm9CQ0KLQntCdCivQn9Ce0J/QntCSINCf0KDQldCU0KDQkNCTCivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JIg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9Ce0JIg0KDQkNCU0J7QiNCa0JAKK9Cf0J7Qn9Ce0JIg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCSINCg0JDQotCe0JzQmNCgCivQn9Ce0J/QntCSINCg0JXQidCQCivQn9Ce0J/QntCSINCg0J7QlNCe0InQo9CRCivQn9Ce0J/QntCSINCh0JDQktCQCivQn9Ce0J/QntCSINCh0JDQktCQCivQn9Ce0J/QntCSINCh0JDQktCQCivQn9Ce0J/QntCSINCh0JDQktCQCivQn9Ce0J/QntCSINCh0JDQktCV0KLQkAor0J/QntCf0J7QkiDQodCV0JrQo9Cb0JAKK9Cf0J7Qn9Ce0JIg0KHQmNCd0JjQqNCQCivQn9Ce0J/QntCSINCh0JvQkNCS0JjQptCQCivQn9Ce0J/QntCSINCh0JvQkNCS0JrQngor0J/QntCf0J7QkiDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JIg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QkiDQodCd0JXQltCQ0J3QkAor0J/QntCf0J7QkiDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JIg0KHQn9CQ0KHQntCI0JUKK9Cf0J7Qn9Ce0JIg0KHQoNCV0JTQntCI0JUKK9Cf0J7Qn9Ce0JIg0KHQotCQ0J3QkAor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkAor0J/QntCf0J7QkiDQodCi0JXQktCY0KbQkAor0J/QntCf0J7QkiDQodCi0J7QiNCQ0J3QmtCQCivQn9Ce0J/QntCSINCh0JLQldCi0JvQkNCd0JAKK9Cf0J7Qn9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0J/QntCf0J7QkiDQodCS0JXQotCe0JfQkNCgCivQn9Ce0J/QntCSINCi0JDQotCe0JzQmNCgCivQn9Ce0J/QntCSINCi0J7QlNCe0KAKK9Cf0J7Qn9Ce0JIg0KLQoNCY0JLQkAor0J/QntCf0J7QkiDQo9Cg0J7QqAor0J/QntCf0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQn9Ce0J/QntCSINCS0JDQodCY0JvQmNCI0JUKK9Cf0J7Qn9Ce0JIg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QkiDQktCV0KDQkAor0J/QntCf0J7QkiDQktCV0KDQkAor0J/QntCf0J7QkiDQktCV0KDQkAor0J/QntCf0J7QkiDQktCV0KDQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JLQldCh0JXQm9CY0J0KK9Cf0J7Qn9Ce0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QntCSINCS0J7QiNCY0J0KK9Cf0J7Qn9Ce0JIg0JLQntCI0JjQodCb0JDQkgor0J/QntCf0J7QkiDQktCj0JrQntCh0JDQktCQCivQn9Ce0J/QntCSINCX0JvQkNCi0JAKK9Cf0J7Qn9Ce0JIg0JfQm9CQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JfQntCg0JrQkAor0J/QntCf0J7QktCY0Isg0KfQkNCh0JvQkNCSINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQn9Ce0J/QntCS0JjQiyDQp9CV0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLLdCn0JXQiNCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCo0IvQldCf0JDQnQor0J/QntCf0J7QktCY0Isg0JbQkNCg0JrQngor0J/QntCf0J7QktCY0Isg0JbQkNCg0JrQngor0J/QntCf0J7QktCY0Isg0JbQkNCg0JrQngor0J/QntCf0J7QktCY0Isg0JbQldCJ0JrQngor0J/QntCf0J7QktCY0Isg0JbQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JbQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JbQmNCS0JrQngor0J/QntCf0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCW0KPQltCQ0J3QkAor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQlQor0J/QntCf0J7QktCY0Isg0ILQntCg0ILQmNCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCC0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0J/QntCf0J7QktCY0Isg0ILQo9Cg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCY0KbQkAor0J/QntCf0J7QktCY0Isg0ILQo9Cg0J4KK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCeCivQn9Ce0J/QntCS0JjQiyDQkNCa0KHQldCd0KLQmNCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0J/QoNCQ0JLQndCY0JoKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0J/QntCf0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QgtCV0JsKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QntCf0J7QktCY0Isg0JHQntCW0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9Ce0J/QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QntCf0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QiNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0J/QntCf0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQntCg0IjQkNCdCivQn9Ce0J/QntCS0JjQiyDQkdCe0KDQmtCQCivQn9Ce0J/QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0JLQntCICivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0JLQntCICivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCm0JLQldCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCn0JjQmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QlQor0J/QntCf0J7QktCY0Isg0JTQkNCd0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCY0KbQkAor0J/QntCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCa0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQldCI0JDQnQor0J/QntCf0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JXQodCQCivQn9Ce0J/QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QntCf0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCe0JHQoNCY0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQlNCe0JHQoNCY0JLQntCICivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQoAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JjQitCQCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CeINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCI0JvQngor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCa0J4g0JTQoAor0J/QntCf0J7QktCY0Isg0JXQnNCY0JsKK9Cf0J7Qn9Ce0JLQmNCLINCk0JXQntCU0J7QoNCQCivQn9Ce0J/QntCS0JjQiyDQpNCV0J7QlNCe0KAKK9Cf0J7Qn9Ce0JLQmNCLINCT0J7QiNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCT0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0KDQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCY0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCY0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0IjQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0IjQkNCh0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCk0KLQkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0IjQntCS0J4KK9Cf0J7Qn9Ce0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0JDQotCY0KbQkAor0J/QntCf0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCa0J7QodCi0JDQlNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCa0J7QodCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0J7QodCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0KDQodCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0KDQodCi0J4KK9Cf0J7Qn9Ce0JLQmNCLINCa0KHQldCd0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQm9CQ0JfQkNCgINCU0KAg0JvQldCa0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QntCf0J7QktCY0Isg0JvQldCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0J/QntCf0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQmtCh0JjQnAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCI0JAg0JTQoAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmtCeINCU0KAg0JvQldCa0JDQoAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JrQniDQnNCgINCY0J3Qkwor0J/QntCf0J7QktCY0Isg0JzQkNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQkNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQkNCg0KLQkAor0J/QntCf0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQotCQINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QktCY0Isg0JzQmNCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQmNCI0JDQnSDQlNCgCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0J/QntCf0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCi0JDQoAor0J/QntCf0J7QktCY0Isg0JzQmNCi0JDQoAor0J/QntCf0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9Ce0J/QntCS0JjQiyDQnNCb0JDQlNCY0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QntCf0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JXQgtCeCivQn9Ce0J/QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0J/QntCf0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QntCS0JjQiyDQndCV0J3QkNCUCivQn9Ce0J/QntCS0JjQiyDQndCV0J3QkNCUCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCe0JLQkNCaCivQn9Ce0J/QntCS0JjQiyDQndCe0JLQkNCaCivQn9Ce0J/QntCS0JjQiyDQntCR0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQntCR0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQntCb0JPQkAor0J/QntCf0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JLQmNCLINCe0JvQk9CQCivQn9Ce0J/QntCS0JjQiyDQn9CQ0IjQkAor0J/QntCf0J7QktCY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QntCf0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QntCf0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QntCf0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QntCf0J7QktCY0Isg0J/QldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQoNCY0KbQkAor0J/QntCf0J7QktCY0Isg0J/QldCg0J4KK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCU0JUKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCVCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQlQor0J/QntCf0J7QktCY0Isg0KDQkNCU0JjQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCY0KbQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQo9CbCivQn9Ce0J/QntCS0JjQiyDQoNCQ0IjQmtCeCivQn9Ce0J/QntCS0JjQiyDQoNCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQoNCQ0KLQmtCeCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JLQmNCI0J7QiNCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JXQidCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCg0J7QlNCe0InQo9CRCivQn9Ce0J/QntCS0JjQiyDQodCQ0IrQkAor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCeCivQn9Ce0J/QntCS0JjQiyDQodCV0JrQo9Cb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JjQndCY0KjQkCDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCa0J4g0JTQmNCf0Jsg0J7QldCmCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQn9Ce0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCc0JjQidCQ0J3QkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QitCQCivQn9Ce0J/QntCS0JjQiyDQodCf0JDQodCe0IjQlQor0J/QntCf0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QntCf0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JrQkAor0J/QntCf0J7QktCY0Isg0KHQotCV0JLQngor0J/QntCf0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCi0JXQntCU0J7QoAor0J/QntCf0J7QktCY0Isg0KLQldCg0JXQl9CQCivQn9Ce0J/QntCS0JjQiyDQotCe0JTQntCgCivQn9Ce0J/QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQotCe0JzQngor0J/QntCf0J7QktCY0Isg0KPQk9CJ0JXQqNCQCivQn9Ce0J/QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQidCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0J/QntCf0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQn9Ce0J/QntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQktCY0JrQotCe0KDQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JDQnQor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0J4KK9Cf0J7Qn9Ce0JLQmNCLINCS0J7QiNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0J7QiNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQp9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JLQo9Cn0JrQngor0J/QntCf0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQmtCQ0JTQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCj0JrQkNCU0JjQnQor0J/QntCf0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQl9CU0KDQkNCS0JrQkAor0J/QntCf0J7QktCY0Isg0JfQm9CQ0KLQntCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCX0J7QoNCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0KPQl9CQ0J3QkAor0J/QntCf0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J/QntCf0J7QktCY0KbQmtCYINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQptCa0Jgg0IjQntCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QktCY0KbQmtCYINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQptCa0Jgg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQptCa0Jgg0J/QldCi0JDQoAor0J/QntCf0J7QktCY0KbQmtCYINCg0JDQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQptCa0Jgg0KDQkNCU0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQodCQ0JvQntCc0JAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQotCQ0KLQiNCQ0J3QkAor0J/QntCf0J7QktCY0KbQmtCYINCi0JXQntCU0J7QoAor0J/QntCf0J7QktCY0KbQmtCYINCS0JvQkNCU0JjQodCb0JDQkgor0J/QntCf0J7QktCY0KbQmtCYINCX0J7QoNCQ0J0KK9Cf0J7Qn9Ce0JLQodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9Cf0J7Qn9Ce0JLQodCa0Jgg0JLQldCd0JrQngor0J/QntCf0KDQltCQ0J0g0JzQmNCb0JDQnQor0J/QntCf0KDQltCQ0J0g0J3QmNCa0J7Qm9CQCivQn9Ce0J/QoNCW0JDQnSDQktCQ0JvQldCd0KLQmNCd0JAKK9Cf0J7Qn9Cg0JbQldCdINCR0J7QoNCY0JLQntCICivQn9Ce0J/QodCQ0JLQmNCdINCU0KPQqNCQ0J0KK9Cf0J7Qn9Ch0JDQktCY0J0g0JLQldCb0JjQnNCY0KAKK9Cf0J7Qn9Ci0JXQqNCY0J0g0ILQntCg0ILQlQor0J/QntCf0KLQldCo0JjQnSDQm9CQ0JfQkNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQn9Ce0J/QotCV0KjQmNCdINCc0JjQm9CQ0JTQmNCd0JrQkAor0J/QntCf0KLQldCo0JjQnSDQodCi0JXQktCQ0J0KK9Cf0J7QoNCn0JAg0InQmNCJ0JDQndCQCivQn9Ce0KDQp9CQINCg0JDQnNCY0JcKK9Cf0J7QoNCe0KjQmNCdINCU0KDQkNCT0JjQitCQCivQn9Ce0KDQntCo0JjQnSDQk9CV0J7QoNCT0JjQiNCVINCU0KAg0JvQldCa0JDQoAor0J/QntCg0J7QkdCY0Isg0JzQmNCb0JDQnQor0J/QntCg0J7QkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCg0J7QkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QntCg0J7QkdCY0Isg0J3QmNCI0JDQlwor0J/QntCg0J7QkdCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0KDQntCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0KDQntCf0JDQoiDQkdCe0KjQmtCeCivQn9Ce0KDQntCf0JDQotCY0Isg0JfQntCg0JAKK9Cf0J7QodCQ0JLQkNCmINCS0IjQldCa0J7QodCb0JDQkgor0J/QntCh0JvQkNCdINCY0JLQkNCdCivQn9Ce0KHQotCe0JvQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQn9Ce0KIg0KTQoNCQ0IrQkAor0J/QntCiINCI0J7QodCY0J8KK9Cf0J7QoiDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QntCi0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQn9Ce0KLQpSDQidCj0JTQldCS0JjQogor0J/QntCi0JjQiyDQnNCQ0KDQmNCI0JXQm9CQCivQn9Ce0KLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0J7QotCa0J7QitCQ0Jog0IjQntCS0JDQnQor0J/QntCi0JrQntCK0JDQmiDQnNCQ0KDQkAor0J/QntCi0JrQntCK0JDQmiDQndCY0JrQntCb0JAKK9Cf0J7QotCa0J7QitCQ0Jog0J/QldCi0JDQoAor0J/QntCi0JrQntCK0JDQmiDQodCe0KTQmNCI0JAKK9Cf0J7QotCa0J7QitCQ0Jog0KHQotCQ0J3QmtCeCivQn9Ce0KLQmtCe0IrQkNCaINCh0KLQldCS0J4KK9Cf0J7QotCa0J7QitCQ0Jog0JLQm9CQ0JTQngor0J/QntCi0JrQntCX0JDQoNCQ0KYg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QntCi0J3QldCgINCi0JXQoNCV0JfQmNCI0JAKK9Cf0J7QotCe0JrQntCS0JjQiyDQkNCR0JTQo9Cb0JDQpQor0J/QntCi0J7QmtCe0JLQmNCLINCh0JzQkNCI0J4KK9Cf0J7QotCf0JDQoNCY0Isg0IjQldCb0JjQptCQCivQn9Ce0KLQoNCQ0J0g0JzQmNCo0JAKK9Cf0J7QotCg0JXQkdCY0Isg0ILQo9Cg0J4KK9Cf0J7QotCg0JXQkdCY0Isg0JTQntCR0KDQmNCb0JAKK9Cf0J7QotCg0JXQkdCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0J7QotCg0JXQkdCY0Isg0JzQmNCb0JUKK9Cf0J7QotCg0JXQkdCY0Isg0JzQmNCb0JUKK9Cf0J7QotCg0JXQkdCY0Isg0JzQmNCb0JjQptCQCivQn9Ce0KLQoNCV0JHQmNCLINCd0JjQmtCe0JvQkAor0J/QntCi0KDQldCR0JjQiyDQoNCQ0JTQlQor0J/QntCi0KDQldCR0JjQiyDQodCb0JDQktCa0J4KK9Cf0J7QotCg0JXQkdCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0KLQo9Cg0JjQiyDQodCi0JXQktCQCivQn9Ce0KPQp9Ca0Jgg0KDQkNCU0JjQodCb0JDQkgor0J/QntCS0JAg0JzQmNCg0J7QodCb0JDQktCQCivQn9Ce0JLQkNCW0JDQnSDQkNCd0JTQoNCY0IjQkAor0J/QntCS0JDQltCQ0J0g0JzQkNCg0JjQiNCQCivQn9Ce0JLQkNCX0JDQmCDQmNCo0KLQktCQ0J0KK9Cf0J7QktCQ0JfQkNCYINCi0JjQkdCe0KAKK9Cf0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QntCS0KDQltCQ0J0g0KHQmNCc0J4KK9Cf0J7Ql9CU0JDQnSDQgtCj0KDQngor0J/QntCX0JTQldCgINCS0JXQoNCe0J3QkAor0J/QntCX0JTQldCg0JXQpiDQpNCg0JDQndCmCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0J7Ql9Cd0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCX0J3QkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QntCX0J3QkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QntCX0J3QmNCLINCC0KPQoNCeCivQn9Ce0JfQndCY0Isg0IjQntCS0J4KK9Cf0J7Ql9Cd0JjQiyDQnNCY0KDQkAor0J/QntCX0J3QmNCLINCd0JjQmtCe0JvQkAor0J/QntCX0J7QiNCV0JLQmNCLINCa0JvQkNCg0JAKK9Cf0J7Ql9Ce0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQp9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0KDQp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9Cf0KDQp9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Cf0KDQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCo0JAg0JzQmNCg0J7QodCb0JDQkiDQnNCgCivQn9Cg0KjQkCDQktCV0KDQkAor0J/QoNCL0JjQiyDQmNCS0JDQnQor0J/QoNCW0JDQoCDQndCQ0JTQkAor0J/QoNCW0JXQktCQ0InQodCa0Jgg0J3QmNCa0J7Qm9CQCivQn9Cg0JbQndCY0KbQkCDQnNCY0JvQkNCd0JAKK9Cf0KDQltCd0JjQptCQINCX0JvQkNCi0JrQngor0J/QoNCQ0KjQp9CV0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9Cf0KDQkNCo0KfQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0KDQkNCo0KLQkNCb0J4g0JzQmNCb0KPQotCY0J0KK9Cf0KDQkNCo0KLQkNCb0J4g0J/QldCi0JDQoAor0J/QoNCQ0JbQmNCLINCR0JjQidCQ0J3QkAor0J/QoNCQ0JbQmNCLINCR0KDQkNCd0JrQngor0J/QoNCQ0KbQndCV0KAg0IjQntCh0JjQnwor0J/QoNCQ0KbQndCV0KAg0KDQo9CW0JjQptCQCivQn9Cg0JDQm9CY0KbQkCDQidCj0JHQntCc0JjQoAor0J/QoNCQ0JvQmNCm0JAg0J3QldCU0JXQidCa0J4KK9Cf0KDQkNCb0JjQptCQINCh0KLQldCS0JDQnQor0J/QoNCQ0JvQmNCm0JAg0KHQotCV0JLQkNCdCivQn9Cg0JDQnNCV0J3QmtCeINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KDQkNCc0JXQndCa0J4g0J3QldCU0JXQidCa0J4KK9Cf0KDQkNCc0JXQndCa0J4g0KDQmNCh0KLQngor0J/QoNCQ0JzQldCd0JrQniDQodCg0JXQotCeCivQn9Cg0JDQndCY0Isg0JrQkNCi0JjQptCQCivQn9Cg0JDQndCY0Isg0JzQmNCg0JrQngor0J/QoNCQ0J3QmNCLINCf0JXQotCQ0KAKK9Cf0KDQkNCd0JjQiyDQotCe0KTQmNCbCivQn9Cg0JDQitCY0Isg0JfQm9CQ0KLQmtCeCivQn9Cg0JDQitCa0JjQiyDQnNCQ0KDQmtCeCivQn9Cg0JDQndCa0JjQiyDQnNCY0JvQlQor0J/QoNCQ0JLQlNCQINCR0J7QoNCR0JDQm9CQCivQn9Cg0JDQktCU0JAg0JvQkNCU0JjQodCb0JDQkgor0J/QoNCQ0JLQlNCQINCb0JDQiNCe0KgKK9Cf0KDQkNCS0JjQptCQINCV0JLQmNCm0JAKK9Cf0KDQkNCS0JjQptCQINCJ0KPQkdCe0JzQmNCgCivQn9Cg0JTQmNCLINCd0JXQlNCV0InQmtCeCivQn9Cg0JXQp9CQ0J3QmNCm0JAg0JHQntCW0J4KK9Cf0KDQldCo0JXQoNCdINCI0KPQm9CY0IjQkNCd0JAKK9Cf0KDQldCo0J7QktCQINCc0JjQoNCI0JDQndCQCivQn9Cg0JXQkdCV0JMg0JTQoNCQ0JPQkNCdCivQn9Cg0JXQkdCY0KDQp9CV0JLQmNCLINCd0JXQktCV0J3QkAor0J/QoNCV0JHQmNCg0JDQp9CV0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Cf0KDQldCR0JjQoNCQ0KfQldCS0JjQiyDQm9CQ0JfQngor0J/QoNCV0JTQkCDQkNCj0KDQldCbCivQn9Cg0JXQlNCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0KDQldCU0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JbQldCJ0JrQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JDQndCa0JAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCR0J7QltCeCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQkdCe0JbQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QoNCV0JTQntCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCb0KPQmtCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQlQor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCd0JXQndCQ0JQKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCh0JjQnNCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQodCY0JzQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0KHQotCe0IjQkNCdCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQotCg0JjQktCeCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQl9Ce0KDQkAor0J/QoNCV0JTQntCb0JDQpiDQlNCg0JDQk9Ce0JzQmNCgCivQn9Cg0JXQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0KDQldCU0KDQkNCo0JrQmCDQlNCg0JDQk9Ce0InQo9CRCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCR0J7QoNCQCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCU0JXQodCY0JzQmNCgCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQndCe0JLQkNCaCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCS0JXQodCV0JvQmtCeCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCS0JXQodCd0JAKK9Cf0KDQldCU0KDQkNCT0J7QktCY0Isg0JfQktCV0JfQlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Cg0JXQk9Cj0J0g0ILQo9Cg0JAKK9Cf0KDQldCT0KPQnSDQndCY0JrQntCb0JAKK9Cf0KDQldCT0KPQnSDQn9CV0KLQkNCgCivQn9Cg0JXQk9Cj0J0g0KHQotCV0JLQkNCdCivQn9Cg0JXQk9Cj0J0g0JfQntCg0JAKK9Cf0KDQldCa0JDQiNCQ0KYg0JbQmNCS0J7QiNCY0J0KK9Cf0KDQldCa0JDQiNCQ0KYg0KHQm9CQ0JLQmtCeCivQn9Cg0JXQmtCQ0IjQodCa0Jgg0JHQoNCQ0J3QmtCeCivQn9Cg0JXQmtCQ0IjQodCa0Jgg0JzQmNCg0IjQkNCdCivQn9Cg0JXQmtCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cf0KDQldCa0J7QlNCg0JDQktCQ0KYg0J3QldCS0JXQndCa0JAKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCC0J7QoNCC0JUKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCU0JDQndCY0KbQkAor0J/QoNCV0JrQntCT0JDQp9CY0Isg0JjQm9CY0IjQkAor0J/QoNCV0JrQntCT0JDQp9CY0Isg0JLQldCg0JAKK9Cf0KDQldCa0J7QnyDQiNCe0JbQldCkCivQn9Cg0JXQmtCe0J8g0KDQkNCU0J7QiNCa0JAKK9Cf0KDQldCa0J/QkNCJ0JDQiCDQkdCY0JHQkAor0J/QoNCV0JrQn9CQ0InQkNCIINCa0J7QidCQCivQn9Cg0JXQmtCf0JDQidCQ0Igg0JzQkNCg0KLQmNCdCivQn9Cg0JXQmtCf0JDQidCQ0Igg0J/QiNCV0KLQldCgCivQn9Cg0JXQmyDQnNCQ0KDQmNCI0JAKK9Cf0KDQldCb0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QoNCV0JvQldCS0JjQiyDQnNCQ0KDQmtCeCivQn9Cg0JXQm9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQldCb0JXQktCY0Isg0JzQmNCb0J7QqAor0J/QoNCV0JvQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QoNCV0JvQldCS0JjQiyDQodCV0J3QmtCQCivQn9Cg0JXQm9CV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cf0KDQldCb0JjQiyDQnNCY0JvQntCI0JrQkAor0J/QoNCV0JvQmNCLINCS0JDQodCQCivQn9Cg0JXQm9CY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0KDQldCc0JjQiyDQn9CV0KLQkNCgCivQn9Cg0JXQnNCY0Isg0JLQkNCh0JAKK9Cf0KDQldCc0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9Cg0JXQnNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9Cg0JXQnNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0KDQldCc0KPQqCDQpNCg0JDQitCQCivQn9Cg0JXQnNCj0JbQmNCLINCU0JDQnNCY0KAKK9Cf0KDQldCc0KPQltCY0Isg0JzQkNCi0J4KK9Cf0KDQldCc0KPQltCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCV0J3QlNCe0JLQmNCLINCf0JDQidCj0KgKK9Cf0KDQldCd0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQldCd0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQldCd0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JXQndCi0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QoNCV0J3QotCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQldCd0KLQntCS0JjQiyDQoNCY0KHQotCeCivQn9Cg0JXQndCi0J7QktCY0Isg0JLQkNCh0J4KK9Cf0KDQldCg0JDQlCDQlNCe0JHQoNCY0JvQkAor0J/QoNCV0KDQkNCU0J7QkiDQlNCY0J3QmtCQCivQn9Cg0JXQoNCQ0JTQntCSINCU0KDQkNCT0JjQptCQCivQn9Cg0JXQoNCQ0JTQntCSINCU0KPQkdCg0JDQktCa0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JPQkNCS0KDQkAor0J/QoNCV0KDQkNCU0J7QkiDQm9CQ0JfQkNCgCivQn9Cg0JXQoNCQ0JTQntCSINCb0JXQn9Ce0KHQkNCS0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JzQkNCg0JjQiNCQCivQn9Cg0JXQoNCQ0JTQntCSINCc0JjQoNCI0JDQndCQCivQn9Cg0JXQoNCQ0JTQntCSINCc0JjQoNCI0JDQndCQCivQn9Cg0JXQoNCQ0JTQntCSINCd0JXQlNCV0InQmtCeCivQn9Cg0JXQoNCQ0JTQntCSINCf0JXQotCQ0KAKK9Cf0KDQldCg0JDQlNCe0JIg0KHQkNCS0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JLQldCb0JjQl9CQ0KAKK9Cf0KDQldCg0JDQlNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCV0KDQkNCU0J7QktCY0Isg0JDQndCQCivQn9Cg0JXQoNCQ0JTQntCS0JjQiyDQkdCe0IjQkAor0J/QoNCV0KDQkNCU0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QoNCV0KDQkNCU0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Cg0JXQodCV0KfQmtCe0JLQmNCLINCS0JXQodCd0JAKK9Cf0KDQldCi0JzQldCg0KHQmtCYINCI0J7QktCQ0J0KK9Cf0KDQldCi0JzQldCg0KHQmtCYINCh0KLQldCS0JDQnQor0J/QoNCV0JLQldCU0JXQnSDQm9CV0J4KK9Cf0KDQk9Ce0JzQldCJ0JAg0J3QmNCa0J7Qm9CQCivQn9Cg0JjQqNCY0Isg0JrQkNCi0JjQptCQCivQn9Cg0JjQqNCY0Isg0JvQkNCX0JDQoAor0J/QoNCY0KjQmNCLINCb0JjQlNCY0IjQkAor0J/QoNCY0KjQmNCLINCc0JjQm9Ce0KgKK9Cf0KDQmNCo0JjQiyDQnNCY0KLQkAor0J/QoNCY0KjQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cf0KDQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQmNCR0JDQmtCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQn9Cg0JjQkdCQ0JrQntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cf0KDQmNCR0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QoNCY0JHQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QoNCY0JHQmNCn0JXQktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0J/QoNCY0JHQmNCn0JXQktCY0Isg0KHQkNCS0JrQkAor0J/QoNCY0JHQmNCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoCDQlNCgINCY0J3Qkwor0J/QoNCY0JHQmNCoINCh0KLQldCS0JDQnQor0J/QoNCY0JHQmNCo0JXQkiDQnNCY0KDQiNCQ0J3QkAor0J/QoNCY0JHQmNCo0JjQiyDQidCj0JHQngor0J/QoNCY0JHQmNCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9Cg0JjQkdCY0KjQmNCLINCg0JjQodCi0JjQitCQCivQn9Cg0JjQkdCY0KjQmNCLINCh0JDQktCeCivQn9Cg0JjQkdCY0Isg0JDQoNCh0JXQndCY0IjQlQor0J/QoNCY0JHQmNCLINCU0JDQndCY0JvQngor0J/QoNCY0JHQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QoNCY0JHQmNCLINCc0JDQoNCY0IjQkAor0J/QoNCY0JHQmNCLINCc0JjQm9Ce0IjQlQor0J/QoNCY0JHQmNCLINCh0JDQktCQCivQn9Cg0JjQkdCY0IvQldCS0JjQiyDQiNCe0JLQngor0J/QoNCY0JHQmNCL0JXQktCY0Isg0J7Qm9CT0JAKK9Cf0KDQmNCR0JjQi9CV0JLQmNCLINCi0JDQotCI0JDQndCQCivQn9Cg0JjQkdCY0JvQntCS0JjQiyDQkdCg0JDQndCa0JjQptCQCivQn9Cg0JjQptCQINCW0JjQktCa0J4KK9Cf0KDQmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0KDQmNCm0JAg0JHQntCg0JjQktCe0IgKK9Cf0KDQmNCm0JAg0JHQntCh0JjQidCa0JAKK9Cf0KDQmNCm0JAg0JTQkNCd0JjQm9CeCivQn9Cg0JjQptCQINCU0KPQqNCQ0J0KK9Cf0KDQmNCm0JAg0JjQodCeCivQn9Cg0JjQptCQINCI0J7QktCQ0J3QmtCQCivQn9Cg0JjQptCQINCc0JDQoNCa0J4KK9Cf0KDQmNCm0JAg0JzQmNCb0JUKK9Cf0KDQmNCm0JAg0JzQm9CQ0JTQldCdCivQn9Cg0JjQptCQINCf0JXQotCQ0KAKK9Cf0KDQmNCm0JAg0KHQntCk0JjQiNCQCivQn9Cg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0J/QoNCY0IjQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQmNCI0JjQiyDQnNCY0KDQodCQ0JQKK9Cf0KDQmNCI0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9Cg0JjQiNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCY0IjQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0J/QoNCY0JrQldCbINCf0JXQotCQ0KAKK9Cf0KDQmNCa0JjQlNCQ0J3QntCS0JjQpyDQm9CQ0KHQm9CeCivQn9Cg0JjQmtCY0JTQkNCd0J7QktCY0Isg0JDQndCQCivQn9Cg0JjQidCV0JLQkCDQkdCe0KDQmNCh0JvQkNCSCivQn9Cg0JjQnNCe0KDQkNCmINCd0JjQmtCe0JvQkAor0J/QoNCY0JzQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QoNCY0JzQntCS0JjQiyDQlNCV0IjQkNCdCivQn9Cg0JjQnNCe0JLQmNCLINCU0J7QkdCg0JjQptCQCivQn9Cg0JjQnNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9Cg0JjQnNCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQn9Cg0JjQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQmNCc0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9Cg0JjQndCm0JjQnyDQiNCe0JfQngor0J/QoNCY0KHQldCb0JDQpiDQkdCe0KDQmNChCivQn9Cg0JjQodCV0JvQkNCmINCR0KDQkNCd0JrQngor0J/QoNCY0KHQldCb0JDQpiDQl9CU0KDQkNCS0JrQngor0J/QoNCY0KHQm9CQ0J0g0JfQktCe0J3QmNCc0JjQoAor0J/QoNCY0KHQotCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0J/QoNCY0JLQoNCe0JTQodCa0Jgg0JHQntCg0JjQoSDQlNCgCivQn9Cg0JjQktCg0J7QlNCh0JrQmCDQmtCe0J3QodCi0JDQndCi0JjQnQor0J/QoNCa0KPQqNCY0Isg0JDQndCY0KbQkAor0J/QoNCa0KPQqNCY0Isg0KHQm9CQ0JLQmtCeCivQn9Cg0JvQldCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0KDQm9CY0J3QkNCmINCS0JXQidCa0J4KK9Cf0KDQidCV0JLQmNCLINCd0JDQlNCQCivQn9Cg0J7Qp9CY0JrQldCS0JjQiyDQkNCd0JrQkAor0J/QoNCe0KjQmNCLINCR0J7Qk9CU0JDQnQor0J/QoNCe0KjQmNCLINCI0J7QktCQ0J0KK9Cf0KDQntCo0JjQiyDQndCV0ILQngor0J/QoNCe0KjQmNCLINCd0JXQgtCeCivQn9Cg0J7QqNCY0Isg0J3QldCR0J7QiNCo0JAKK9Cf0KDQntCo0JjQiyDQndCY0JrQntCb0JAKK9Cf0KDQntCo0JjQiyDQn9CV0KLQkNCgCivQn9Cg0J7QqNCY0Isg0KHQnNCY0InQkAor0J/QoNCe0JHQntCI0KfQldCS0JjQiyDQkNCd0KLQo9CdCivQn9Cg0J7QkdCe0IjQp9CV0JLQmNCLINCV0KDQndCV0KHQogor0J/QoNCe0JHQntCI0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQntCR0J7QiNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J/QoNCe0JTQkNCd0JAg0JrQoNCh0KLQkNCdCivQn9Cg0J7QlNCQ0J3QmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0KDQntCU0JDQndCY0Isg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QkiDQkNCd0ILQldCb0JrQkAor0J/QoNCe0JTQkNCd0J7QkiDQkdCb0JDQk9Ce0IjQkAor0J/QoNCe0JTQkNCd0J7QkiDQkdCe0KDQkAor0J/QoNCe0JTQkNCd0J7QkiDQlNCQ0J3QmNCb0J4KK9Cf0KDQntCU0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QoNCe0JTQkNCd0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQn9Cg0J7QlNCQ0J3QntCSINCU0KDQkNCT0J7QodCb0JDQkgor0J/QoNCe0JTQkNCd0J7QkiDQlNCj0KjQkNCdCivQn9Cg0J7QlNCQ0J3QntCSINCT0J7QoNCY0KbQkAor0J/QoNCe0JTQkNCd0J7QkiDQmNCb0JjQiNCQCivQn9Cg0J7QlNCQ0J3QntCSINCI0J7QktCQ0J0KK9Cf0KDQntCU0JDQndCe0JIg0IjQo9Ch0KLQmNCd0JAKK9Cf0KDQntCU0JDQndCe0JIg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9Cf0KDQntCU0JDQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Cf0KDQntCU0JDQndCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cf0KDQntCU0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQn9Cg0J7QlNCQ0J3QntCSINCd0JXQlNCV0InQmtCeCivQn9Cg0J7QlNCQ0J3QntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0KDQntCU0JDQndCe0JIg0KHQkNCS0JAKK9Cf0KDQntCU0JDQndCe0JIg0KHQm9CQ0JLQmtCQINCU0KAKK9Cf0KDQntCU0JDQndCe0JIg0JfQo9CX0JDQndCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQqNCf0JjQoNCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQltCV0InQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQltCY0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQltCY0JLQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQgtCe0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQo9Cg0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQkNCc0IjQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCT0JDQktCg0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQmtCe0KHQotCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQmtCe0KHQotCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgINCU0JjQn9CbINCY0J3Qkwor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0J7QiNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQkNCg0KLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0InQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QoNCe0JTQkNCd0J7QktCY0Ist0J/QkNCK0JrQntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQn9CQ0JLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCg0J7QlNCe0InQo9CRCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQotCQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KLQkNCd0JDQodCY0IjQlQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JDQodCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQktCV0JvQmNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQldCJ0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQldCg0JAg0JTQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Cg0J7QlNCY0Isg0JTQkNCd0JjQptCQCivQn9Cg0J7QlNCY0Isg0JLQmNCU0JAKK9Cf0KDQntCU0JjQiyDQktCY0KLQntCc0JjQoAor0J/QoNCe0JTQmNCLINCS0JjQotCe0JzQmNCgCivQn9Cg0J7QpNCe0J3QotCQ0KDQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQn9Cg0J7QpdCQ0KHQmtCQINCc0JjQm9CV0J3QmtCeCivQn9Cg0J7QpdCQ0KHQmtCQINCd0JjQmtCe0JvQkAor0J/QoNCe0KXQkNCh0JrQkCDQodCi0JXQktCQ0J0KK9Cf0KDQntCl0JDQodCa0JAg0JLQldCg0JAKK9Cf0KDQntCI0JrQntCS0KHQmtCYINCU0JXQodCf0JAKK9Cf0KDQntCa0JXQqCDQkdCV0JvQkAor0J/QoNCe0JrQldCoINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0KDQntCa0JjQiyDQgtCe0KDQgtCVCivQn9Cg0J7QmtCY0Isg0JPQntCg0JDQnQor0J/QoNCe0JrQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCa0JjQiyDQnNCY0KDQkAor0J/QoNCe0JrQmNCLINCg0KPQltCY0KbQkAor0J/QoNCe0JrQmNCLINCh0KLQldCS0JDQnQor0J/QoNCe0JrQmNCLINCh0KLQldCS0JDQnQor0J/QoNCe0JrQmNCLINCX0J7QoNCQ0J0KK9Cf0KDQntCa0JjQiyDQl9Ce0KDQkNCdCivQn9Cg0J7QmtCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cf0KDQntCa0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0KDQntCa0JjQnSDQmtCh0JXQndCY0IjQkAor0J/QoNCe0JrQmNCdINCb0JDQl9CQ0KAKK9Cf0KDQntCa0JjQnSDQnNCQ0KDQmtCeCivQn9Cg0J7QmtCY0J0g0JzQmNCg0JAKK9Cf0KDQntCa0JjQnSDQoNCQ0JTQmNCS0J7QiAor0J/QoNCe0JrQmNCdINCg0KPQltCY0KbQkAor0J/QoNCe0JrQmNCdINCh0KLQldCS0JDQnQor0J/QoNCe0JrQmNCdINCh0KLQldCS0JDQnQor0J/QoNCe0JrQmNCdINCX0JvQkNCi0JjQndCa0JAKK9Cf0KDQntCa0JjQnSDQl9Ce0KDQkAor0J/QoNCe0JrQntCf0JXQpiDQlNCj0KjQkNCdCivQn9Cg0J7QmtCe0J/QldCmINCl0JXQm9CV0J3QkAor0J/QoNCe0JrQntCf0JXQpiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QoNCe0JrQntCf0JXQpiDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0J7Qn9CY0Isg0KfQldCU0J4KK9Cf0KDQntCa0J7Qn9CY0Isg0JzQmNCl0JDQiNCY0JvQngor0J/QoNCe0JrQntCf0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0KDQntCb0JUg0KbQktCY0IjQngor0J/QoNCe0JvQlSDQiNCQ0JPQntCU0JAKK9Cf0KDQntCb0JUg0JzQldCb0JDQndCY0IjQkAor0J/QoNCe0JvQlSDQnNCY0JvQldCd0JrQngor0J/QoNCe0JvQlSDQnNCY0JvQmNCI0JDQndCQCivQn9Cg0J7Qm9CVINCc0JjQm9Ce0KgKK9Cf0KDQntCb0JUg0JzQmNCg0JrQngor0J/QoNCe0JvQlSDQnNCY0KDQntCh0JvQkNCSCivQn9Cg0J7Qm9CVINCc0JjQotCQ0KAKK9Cf0KDQntCb0JUg0JzQmNCi0JDQoAor0J/QoNCe0JvQlSDQnNCb0JDQlNCV0J0KK9Cf0KDQntCb0JUg0KDQkNCU0J7QktCQ0J0KK9Cf0KDQntCb0JUg0KDQmNCh0KLQkAor0J/QoNCe0JvQlSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cf0KDQntCb0JUg0KHQotCQ0J3QmtCeCivQn9Cg0J7Qm9CVINCj0JPQidCV0KjQkAor0J/QoNCe0JvQlSDQktCV0InQmtCeCivQn9Cg0J7Qm9CVINCS0JXQoNCe0J3QkAor0J/QoNCe0JvQmNCLINCU0KDQkNCT0JjQptCQCivQn9Cg0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0KDQntCb0JjQiyDQn9CV0KDQngor0J/QoNCe0JvQmNCLINCS0JjQlAor0J/QoNCe0KHQldCd0JjQptCQINCc0JDQoNCa0J4KK9Cf0KDQntCh0JXQndCY0KbQkCDQktCY0JTQntCh0JDQktCQCivQn9Cg0J7QodCV0J3QmNCaINCU0KPQkdCg0JDQktCa0J4KK9Cf0KDQntCh0JXQndCY0Jog0JfQktCe0J3QmNCc0JjQoAor0J/QoNCe0KHQotCg0JDQnSDQp9CV0JTQntCc0JjQoAor0J/QoNCe0KHQotCg0JDQnSDQn9CV0KLQkNCgCivQn9Cg0J7QotCY0Isg0JbQkNCg0JrQngor0J/QoNCe0KLQmNCLINCC0J7QmtCQCivQn9Cg0J7QotCY0Isg0ILQntCg0ILQlQor0J/QoNCe0KLQmNCLINCR0J7QodCY0InQmtCQCivQn9Cg0J7QotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cg0J7QotCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0J7QotCY0Isg0JTQo9Co0JDQnQor0J/QoNCe0KLQmNCLINCY0JvQmNCI0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Cg0J7QotCY0Isg0IjQntCh0JjQnAor0J/QoNCe0KLQmNCLINCc0JDQoNCY0IjQkAor0J/QoNCe0KLQmNCLINCc0JjQm9CV0J3QkCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQn9Cg0J7QotCY0Isg0JzQmNCb0JrQkAor0J/QoNCe0KLQmNCLLdCc0JjQm9Ce0KjQldCS0JjQiyDQodCY0JzQmtCQINCf0KDQntCkCivQn9Cg0J7QotCY0Isg0JzQmNCb0J7QqAor0J/QoNCe0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Cg0J7QotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0KDQntCi0JjQiyDQnNCY0KLQkNCgCivQn9Cg0J7QotCY0Isg0J3QkNCU0JAKK9Cf0KDQntCi0JjQiyDQntCR0KDQkNCUCivQn9Cg0J7QotCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0KDQntCi0JjQiyDQn9Cj0J3QmNCo0JAKK9Cf0KDQntCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QoNCe0KLQmNCLINCh0JDQnNCj0JjQm9CeCivQn9Cg0J7QotCY0Isg0KHQnNCY0InQkAor0J/QoNCe0KLQmNCLINCS0JjQlNCQCivQn9Cg0J7QotCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cf0KDQntCS0KfQmCDQkNCT0JDQpNCY0IjQkAor0J/QoNCe0JLQp9CYINCV0JLQk9CV0J3QmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQn9Cg0J7QktCn0Jgg0IjQntCS0JPQldCdCivQn9Cg0J7QktCn0Jgg0JLQldCg0JAKK9Cf0KDQn9CQINCQ0J3QgtCQCivQn9Cg0J/QkCDQk9Ce0KHQn9CQCivQn9Cg0J/QkCDQm9CQ0JfQkNCgCivQn9Cg0J/QkCDQnNCQ0KDQk9CY0KLQkAor0J/QoNCf0JAg0JzQmNCb0J7QktCQ0J0KK9Cf0KDQn9CQINCS0JXQidCa0J4KK9Cf0KDQn9CQINCX0JDQk9Ce0KDQmtCQCivQn9Cg0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0J/QmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cf0KDQn9CY0Isg0J3QmNCa0J7Qm9CQCivQn9Cg0J/QmNCLINCg0JDQlNCe0JLQkNCdCivQn9Cg0KHQmtCQ0JvQniDQkdCb0JDQk9CeCivQn9Cg0KHQotCe0IjQldCS0JjQiyDQk9Ce0KDQkNCdCivQn9Cg0KHQotCe0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9Cg0KLQmNCd0JAg0JHQoNCQ0J3QmtCeCivQn9Cg0KPQltCQ0KDQldCSINCi0JDQotCI0JDQndCQCivQn9Cg0KPQlNCQ0J0t0ILQo9Cg0JjQqNCY0Isg0KDQkNCU0J7QiNCa0JAg0JTQoAor0J/QoNCj0JPQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cg0KPQk9CY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QoNCj0JPQmNCd0JjQiyDQidCj0JHQmNCm0JAKK9Cf0KDQo9Cd0JjQiyDQiNCe0JLQkNCdCivQn9Cg0KPQodCY0J3QkCDQlNCg0JDQk9CeCivQn9Cg0KPQodCY0J3QkCDQmNCb0JjQiNCQCivQn9Cg0KPQodCY0J3QkCDQnNCQ0KDQk9CY0KLQkAor0J/QoNCj0KHQmNCd0JAg0JzQmNCb0JDQnQor0J/QoNCj0KHQmNCd0JAg0JLQm9CQ0KLQmtCeCivQn9Cg0JLQkNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0KDQktCQ0J3QntCSINCU0JDQoNCY0J3QmtCQCivQn9Cg0JLQkNCd0J7QkiDQlNCY0JLQndCQCivQn9Cg0JLQkNCd0J7QkiDQnNCY0JvQntCoCivQn9Cg0JLQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9Cg0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQn9Ch0J7QlNCQ0KDQntCSINCR0KDQkNCd0JrQngor0J/QodCe0JTQntCg0J7QkiDQnNCQ0IjQkAor0J/QodCe0JTQntCg0J7QkiDQodCf0JDQodCe0IjQlQor0J/QodCe0JTQntCg0J7QkiDQotCQ0JzQkNCg0JAKK9Cf0KLQmNCn0JDQoCDQgtCj0KDQkAor0J/QotCY0KfQkNCgINCc0JjQm9CQ0J0KK9Cf0KPQqNCQ0KYg0JHQoNCQ0J3QmtCeCivQn9Cj0KjQkNCmINCI0JXQm9CV0J3QmtCeCivQn9Cj0KjQkNCmINCc0JjQm9CV0J3QkAor0J/Qo9Co0JDQpiDQnNCY0JvQldCd0JAKK9Cf0KPQqNCQ0KDQkCDQgtCe0KDQgtCVCivQn9Cj0KjQkNCg0JAg0JHQntCW0JjQlNCQ0KAKK9Cf0KPQqNCQ0KDQkCDQlNCj0KjQkNCdCivQn9Cj0KjQkNCg0JAg0IjQldCb0JXQndCQCivQn9Cj0KjQkNCg0JAg0JzQmNCb0JjQktCe0IgKK9Cf0KPQqNCQ0KDQkCDQnNCY0KDQmtCeCivQn9Cj0KjQkNCg0JAg0JzQmNCg0J7QodCb0JDQkgor0J/Qo9Co0JDQoNCQINCg0JDQlNCc0JjQm9CQCivQn9Cj0KjQldCJ0JjQiyDQiNCV0JvQldCd0JAKK9Cf0KPQqNCV0IrQkNCaINCc0JDQoNCY0IjQkAor0J/Qo9Co0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9Cj0KjQmNCLINCU0KPQqNCQ0J0KK9Cf0KPQqNCY0Isg0JXQnNCY0JsKK9Cf0KPQqNCY0Isg0JPQntCg0JDQnQor0J/Qo9Co0JjQiyDQiNCe0JLQkNCdCivQn9Cj0KjQmNCLINCJ0KPQkdCY0J3QmtCeCivQn9Cj0KjQmNCLINCc0JjQm9CV0J3QkAor0J/Qo9Co0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0KPQqNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0KPQqNCY0Isg0JzQmNCb0J7QqAor0J/Qo9Co0JjQiyDQndCY0JrQntCb0JAKK9Cf0KPQqNCY0Isg0J7QkdCg0JDQlAor0J/Qo9Co0JjQiyDQn9CQ0JLQm9CVCivQn9Cj0KjQmNCLINCh0JDQktCQCivQn9Cj0KjQmNCLINCh0JDQktCQCivQn9Cj0KjQmNCLINCh0J7QpNCY0IjQkAor0J/Qo9Co0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KPQqNCY0Isg0JLQldCg0JjQptCQCivQn9Cj0KjQmNCLINCS0JXQoNCY0KbQkAor0J/Qo9Co0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/Qo9Co0JjQkdCg0Jog0KbQktCV0KLQmtCeCivQn9Cj0KjQmNCR0KDQmiDQktCQ0KHQkAor0J/Qo9Co0JjQnSDQnNCY0KDQiNCQ0J3QkAor0J/Qo9Co0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQn9Cj0KjQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQqNCY0J0g0JLQm9CQ0JTQkAor0J/Qo9Co0JrQkNCoINCC0KPQoNCQCivQn9Cj0KjQmtCQ0Kgg0ILQo9Cg0JAKK9Cf0KPQqNCa0JDQqCDQptCY0JvQkAor0J/Qo9Co0JrQkNCoINCI0J7QltCV0KQKK9Cf0KPQqNCa0JDQqCDQiNCe0JDQmtCY0JwKK9Cf0KPQqNCa0JDQqCDQiNCj0JvQmNCI0JDQnQor0J/Qo9Co0JrQkNCoINCc0JjQpdCQ0IjQm9CeCivQn9Cj0KjQmtCQ0Kgg0JzQmNCb0JXQndCQCivQn9Cj0KjQmtCQ0Kgg0JzQmNCg0J7QodCb0JDQkgor0J/Qo9Co0JrQkNCoINCe0JvQldCd0JAKK9Cf0KPQqNCa0JDQqCDQntCd0KPQpNCg0JjQiNCVCivQn9Cj0KjQmtCQ0Kgg0J/QldCi0JDQoAor0J/Qo9Co0JrQkNCoINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0KPQqNCa0JDQqCDQodCi0JXQktCQ0J0KK9Cf0KPQqNCa0JDQqCDQktCV0KDQkAor0J/Qo9Co0JrQkNCoINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KPQqNCa0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQn9Cj0KjQmtCQ0KAg0IjQntCS0JjQptCQCivQn9Cj0KjQmtCQ0KAg0KHQotCV0JLQkAor0J/Qo9Co0JrQkNCgINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0KPQqNCa0JDQoNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9Cj0KjQmtCQ0KDQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0KPQqNCa0JDQoNCY0Isg0JDQndCQCivQn9Cj0KjQmtCQ0KDQmNCLINCY0JLQkNCdCivQn9Cj0KjQmtCQ0KDQmNCLINCI0KPQoNCVCivQn9Cj0KjQmtCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0J/Qo9Co0JrQkNCg0J7QkiDQlNCQ0J3QmNCb0JrQkAor0J/Qo9Co0JrQkNCg0J7QkiDQlNCQ0J3QmNCb0JrQkAor0J/Qo9Co0JrQkNCg0J7QkiDQnNCY0JvQkNCdCivQn9Cj0KjQmtCQ0KDQntCSINCX0J7QoNCQCivQn9Cj0KjQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9Cj0KjQotCg0JjQiyDQnNCY0JvQkNCdCivQn9Cj0KjQotCg0JjQiyDQodCf0JDQodCe0IjQlQor0J/Qo9CWLdCV0JLQmNCLINCe0JvQk9CQCivQn9Cj0JbQmNCLINCS0JXQoNCQCivQn9Cj0ILQkCDQm9CV0J/QntCh0JDQktCQCivQn9Cj0JDQpyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0KPQkNCnINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0KPQkNCn0JAg0JLQldCJ0JrQniDQlNCgCivQn9Cj0KbQkNCgINCC0KPQoNCeCivQn9Cj0KbQkNCgINCU0KPQqNCQ0J0KK9Cf0KPQptCQ0KAg0JzQmNCb0JjQptCQCivQn9Cj0KbQkNCgINCh0KLQldCS0J4KK9Cf0KPQptCQ0KAg0JLQkNCh0JjQm9CY0IjQlQor0J/Qo9Cm0JDQoCDQktCQ0KHQngor0J/Qo9Cm0JDQoCDQl9CU0KDQkNCS0JrQngor0J/Qo9Cm0JDQoNCV0JLQmNCLINCW0JjQktCa0J4KK9Cf0KPQptCQ0KDQldCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/Qo9Cm0JDQoNCV0JLQmNCLINCT0J7QiNCa0J4KK9Cf0KPQptCQ0KDQldCS0JjQiyDQpdCY0JvQlNCQCivQn9Cj0KbQkNCg0JXQktCY0Isg0IjQldCb0JAKK9Cf0KPQptCQ0KDQldCS0JjQiyDQndCe0JLQkNCaCivQn9Cj0KbQkNCg0JXQktCY0Isg0KHQntCk0JjQiNCQCivQn9Cj0KbQntCS0KHQmtCYINCC0KPQoNCeCivQn9Cj0JTQkNCgINCU0JDQndCY0JvQngor0J/Qo9CU0JDQoCDQk9Ce0IjQmtCeCivQn9Cj0JTQkNCgINCg0JDQiNCa0J4KK9Cf0KPQlNCQ0KAg0KDQkNCd0JrQngor0J/Qo9CU0JDQoCDQoNCQ0J3QmtCeCivQn9Cj0JTQkNCgINCg0JDQndCa0J4KK9Cf0KPQlNCQ0KAg0KDQkNCi0JrQngor0J/Qo9CU0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQn9Cj0JTQkNCgINCh0KLQldCS0JDQnQor0J/Qo9CU0JDQoCDQl9CU0KDQkNCS0JrQngor0J/Qo9CU0JjQiyDQmNCb0JjQiNCQCivQn9Cj0JTQmNCLINCI0J7Ql9CQCivQn9Cj0JTQoNCJ0JAg0JHQoNCQ0J3QmtCeCivQn9Cj0JPQkNCgINCQ0J3QgtCV0JvQmtCQCivQn9Cj0KXQkNCn0JAg0KHQotCV0JLQngor0J/Qo9Cl0JDQm9CQ0Jog0JHQldCg0KLQkAor0J/Qo9Cl0JDQm9CQ0Jog0JvQkNCh0JvQniDQlNCgINCb0JXQmtCQ0KAKK9Cf0KPQpdCQ0JvQkNCaINCh0KLQldCS0JDQnQor0J/Qo9Cl0JDQnSDQntCh0JrQkNCgCivQn9Cj0KXQkNCd0JjQiyDQotCV0KDQldCX0JAKK9Cf0KPQpdCQ0KAg0JTQo9Co0JDQnQor0J/Qo9Cl0JDQoCDQpNCg0JDQndCmCivQn9Cj0JjQiyDQgtCe0KDQgtCVCivQn9Cj0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9Cj0IjQkCDQpNCb0J7QoNCY0J0KK9Cf0KPQiNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0KPQiNCY0Isg0JzQmNCb0J7QqAor0J/Qo9CI0JjQiyDQndCQ0JTQldCW0JTQkAor0J/Qo9CI0JjQiyDQn9CV0KDQodCY0JTQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0KPQiNCY0Isg0KHQkNCS0JAKK9Cf0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQn9Cj0IjQmNCdINCb0JDQl9CQCivQn9Cj0IjQmNCdINCg0JDQlNCVCivQn9Cj0IjQmNCdINCg0JDQlNCY0JLQntCI0JUKK9Cf0KPQiNCY0J0g0KHQotCV0JLQkNCdCivQn9Cj0IjQmNCdINCS0JvQkNCh0KLQkCDQlNCgCivQn9Cj0JvQkNCYINCb0JDQiNCe0KgKK9Cf0KPQm9CV0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQn9Cj0JvQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9Cf0KPQm9CY0Isg0J7Qm9CT0JAKK9Cf0KPQm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cf0KPQm9CY0KHQkNCaINCk0KDQkNCK0JAKK9Cf0KPQm9CY0KHQkNCaINCY0JvQntCd0JrQkAor0J/Qo9Cb0JjQodCQ0Jog0IjQntCS0JDQnQor0J/Qo9Cb0JjQodCQ0Jog0JzQmNCl0JDQiNCb0J4KK9Cf0KPQm9CY0KHQkNCaINCd0JDQlNCV0JbQlNCQCivQn9Cj0JvQmNCh0JDQmiDQndCY0JrQntCb0JAKK9Cf0KPQidCY0JfQldCS0JjQiyDQkNCd0KLQo9CdINCU0JjQn9CbINCY0J3Qkwor0J/Qo9Cd0JTQntCSINCQ0J3QlNCg0JXQiAor0J/Qo9Cd0JPQo9CbINCI0J7QktCY0KbQkAor0J/Qo9Cd0JPQo9CbINCc0JjQoNCQCivQn9Cj0J/QkNCS0JDQpiDQgtCe0KDQgtCVCivQn9Cj0J/QkNCS0JDQpiDQkdCg0JDQndCa0J4KK9Cf0KPQn9CQ0JLQkNCmINCR0KDQkNCd0JrQngor0J/Qo9Cf0JDQktCQ0KYg0KTQoNCQ0IrQkAor0J/Qo9Cf0JDQktCQ0KYg0JzQmNCb0JDQnQor0J/Qo9Cf0JDQktCQ0KYg0J/QldCi0JDQoAor0J/Qo9Cf0JDQktCQ0KYg0KHQotCQ0JrQkAor0J/Qo9Cf0JDQktCQ0KYg0KHQotCV0JLQkNCdCivQn9Cj0J/QkNCS0JDQpiDQodCi0J7QiNCQ0J0KK9Cf0KPQn9CQ0JLQkNCmINCi0J7QlNCe0KAKK9Cf0KPQn9CQ0JLQkNCmINCS0JXQodCd0JAKK9Cf0KPQn9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0KPQn9CY0J0g0JbQmNCS0JDQnQor0J/Qo9Cf0J7QktCQ0KYg0JTQnNCY0KLQkNCgCivQn9Cj0J/QntCS0JDQpiDQlNCj0KjQkNCdCivQn9Cj0J/QntCS0JDQpiDQm9Cj0JrQkAor0J/Qo9Cf0J7QktCQ0KYg0JzQmNCb0J7QqAor0J/Qo9Cf0J7QktCQ0KYg0JzQmNCb0J7QqAor0J/Qo9Cf0J7QktCQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0J/Qo9Cf0J7QktCQ0KYg0KLQntCU0J7QoAor0J/Qo9Cf0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0KPQoNCQ0Isg0JbQmNCS0JrQngor0J/Qo9Cg0JDQiyDQkdCg0JDQndCa0J4KK9Cf0KPQoNCQ0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0KPQoNCQ0Isg0IjQntCS0JDQnQor0J/Qo9Cg0JDQiyDQm9CQ0JfQkNCgCivQn9Cj0KDQkNCLINCc0JDQk9CU0JAKK9Cf0KPQoNCQ0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0KPQoNCQ0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0KPQoNCQ0Isg0JzQmNCb0JXQndCa0J4KK9Cf0KPQoNCQ0Isg0JzQmNCg0J7QodCb0JDQkgor0J/Qo9Cg0JDQiyDQndCQ0JTQkAor0J/Qo9Cg0JDQiyDQntCb0JPQkAor0J/Qo9Cg0JjQqNCY0Isg0KfQldCU0J4KK9Cf0KPQoNCY0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cf0KPQoNCY0Isg0JHQm9CQ0J3QmtCQCivQn9Cj0KDQmNCLINCR0J7QltCeCivQn9Cj0KDQmNCLINCU0JjQiNCQ0J3QkAor0J/Qo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KPQoNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0KPQoNCY0Isg0JzQmNCb0JDQnQor0J/Qo9Cg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9Cj0KDQmNCLINCX0J7QoNCQCivQn9Cj0KDQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9Cf0KPQoNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Cj0KDQotCY0Isg0J3QmNCa0J7Qm9CQCivQn9Cj0KHQotCQ0Jgg0JjQnNCg0JUKK9Cf0KPQodCi0JDQmCDQiNCV0J3QlQor0J/Qo9Ch0KLQkNCI0JjQiyDQkdCg0JDQndCa0JAKK9Cf0KPQodCi0JDQiNCY0Isg0KDQkNCU0JAKK9Cf0KPQodCi0JDQiNCY0Isg0JLQo9Ca0JjQptCQCivQn9Cj0KHQotCYINCI0J7QodCY0J8KK9Cf0KPQotCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cf0KPQotCY0Isg0JbQmNCS0JDQndCQCivQn9Cj0KLQmNCLINCa0JDQotCY0KbQkAor0J/Qo9Ci0JjQiyDQm9CY0JLQmNCI0JAKK9Cf0KPQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/Qo9Ci0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0KPQotCY0Isg0JfQntCg0JDQnQor0J/Qo9Ci0J3QmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cj0KLQndCY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0KPQotCd0JjQmiDQkdCe0KDQmNCh0JvQkNCSCivQn9Cj0KLQndCY0Jog0JHQoNCQ0J3QmtCeCivQn9Cj0KLQndCY0Jog0JTQkNCd0JjQm9Ca0JAKK9Cf0KPQotCd0JjQmiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0KPQotCd0JjQmiDQk9CV0KDQotCg0KPQlNCQCivQn9Cj0KLQndCY0Jog0JPQntCg0JDQnQor0J/Qo9Ci0J3QmNCaINCY0JLQkNCdCivQn9Cj0KLQndCY0Jog0IjQldCb0JXQndCQCivQn9Cj0KLQndCY0Jog0JrQkNCi0JjQptCQCivQn9Cj0KLQndCY0Jog0JrQodCV0J3QmNCI0JAKK9Cf0KPQotCd0JjQmiDQidCj0JHQmNCm0JAKK9Cf0KPQotCd0JjQmiDQnNCY0JvQkNCdCivQn9Cj0KLQndCY0Jog0JzQmNCb0JDQnQor0J/Qo9Ci0J3QmNCaINCc0JjQm9CV0J3QkAor0J/Qo9Ci0J3QmNCaINCc0JjQm9Ce0KDQkNCUCivQn9Cj0KLQndCY0Jog0J3QldCS0JXQndCa0JAKK9Cf0KPQotCd0JjQmiDQn9CQ0IjQngor0J/Qo9Ci0J3QmNCaINCf0JXQotCQ0KAKK9Cf0KPQotCd0JjQmiDQn9CV0KLQkNCgCivQn9Cj0KLQndCY0Jog0KDQkNCU0JUKK9Cf0KPQotCd0JjQmiDQoNCQ0JTQntCc0JjQoAor0J/Qo9Ci0J3QmNCaINCg0JDQlNCe0JLQkNCdCivQn9Cj0KLQndCY0Jog0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0KPQotCd0JjQmiDQodCd0JXQltCQ0J3QkAor0J/Qo9Ci0J3QmNCaINCh0KLQldCk0JDQndCY0IjQkAor0J/Qo9Ci0J3QmNCaINCh0KLQldCS0JDQnQor0J/Qo9Ci0J3QmNCaINCh0KLQldCS0JDQnQor0J/Qo9Ci0J3QmNCaLdCj0KDQkNCnINCg0JXQndCQ0KLQkAor0J/Qo9Ci0J3QmNCaINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0J/Qo9Ci0J3QmNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KPQotCd0JjQmiDQl9Ce0KDQkNCdCivQn9Cj0KLQndCY0JrQntCS0JjQiyDQmNCS0JDQnQor0J/Qo9Ci0J3QmNCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQn9Cj0KLQndCY0JrQntCS0JjQiyDQn9CY0KDQntCo0JrQkAor0J/Qo9CS0JDQp9CQINCJ0JjQidCQ0J3QkAor0J/Qo9CS0JDQm9CY0Isg0JrQkNCi0JjQptCQCivQn9Cj0JfQmNCLINCR0JjQidCQ0J3QkAor0J/Qo9CX0JjQiyDQkdCe0KjQmtCeCivQn9Cj0JfQmNCLINCR0J7QodCQCivQn9Cj0JfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0KPQl9CY0Isg0KHQkNCS0JAKK9Cf0KPQl9CY0Isg0JLQldCJ0JrQngor0J/Qo9CX0JjQk9CQ0IvQkCDQmtCg0JjQodCi0JjQndCQCivQoNCQ0KfQmNCLINCQ0KDQkNCd0ILQldCbCivQoNCQ0KfQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cg0JDQp9CY0Isg0JzQmNCb0J7QqAor0KDQkNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0KfQmNCLINCd0JDQlNCQCivQoNCQ0KfQmNCLINCg0JDQndCa0J4KK9Cg0JDQp9CY0Isg0KHQkNCo0JAKK9Cg0JDQp9CY0Ist0KHQkNCS0JjQnSDQl9Ce0KDQmNCm0JAKK9Cg0JDQp9CY0Isg0KHQotCe0IjQkNCdCivQoNCQ0KfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQp9CY0Isg0JLQldCg0JAKK9Cg0JDQp9CY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQqNCn0JDQndCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0KjQp9CQ0J3QmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCo0KfQmNCLINCd0JXQpdCg0KMKK9Cg0JDQqNCQINCU0J7QiNCd0JAKK9Cg0JDQqNCQ0IjQodCa0Jgg0JTQo9Co0JDQnQor0KDQkNCo0JDQiNCh0JrQmCDQktCV0KDQntCh0JvQkNCSCivQoNCQ0KjQldCi0JAg0JTQkNCd0JUKK9Cg0JDQqNCV0KLQkCDQnNCY0J7QlNCg0JDQkwor0KDQkNCo0JXQotCQINCc0JjQoNCI0JDQndCQCivQoNCQ0KjQldCi0JAg0J3QmNCa0J7Qm9CQCivQoNCQ0KjQldCi0JAg0J/QldCi0JDQoAor0KDQkNCo0JXQotCQINCh0KLQldCS0JAKK9Cg0JDQqNCV0KLQkCDQotCe0JzQkAor0KDQkNCo0JXQotCQINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KjQldCS0JjQiyDQltCQ0KDQmtCeCivQoNCQ0KjQldCS0JjQiyDQltCV0InQmtCeCivQoNCQ0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCo0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgCivQoNCQ0KjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQkNCo0JjQiyDQlNCj0KjQmNCm0JAKK9Cg0JDQqNCY0Isg0JjQkdCe0IjQmtCQCivQoNCQ0KjQmNCLINCY0JPQitCQ0KIKK9Cg0JDQqNCY0Isg0JjQm9CY0IjQkAor0KDQkNCo0JjQiy3QmtCe0J/Qp9Ce0Jog0J3QkNCU0JAKK9Cg0JDQqNCY0Isg0JvQkNCX0JDQoAor0KDQkNCo0JjQiyDQnNCQ0J3QlNCQCivQoNCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0KDQkNCo0JjQiyDQndCQ0JTQldCW0JTQkAor0KDQkNCo0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQqNCY0Isg0J/QkNCj0J0KK9Cg0JDQqNCY0Isg0J/QldCi0JDQoCDQnNCgINCY0J3Qkwor0KDQkNCo0JjQiyDQodCc0JjQidCQCivQoNCQ0KjQmNCLINCh0KLQntCI0JDQnQor0KDQkNCo0JjQiyDQo9Cg0J7QqAor0KDQkNCo0JjQiyDQktCV0KHQndCQCivQoNCQ0KjQmNCU0Jgg0JTQntCg0J7QotCV0IjQkAor0KDQkNCo0JjQlNCYINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQoNCQ0KjQmNCI0J7QktCQ0J0g0KDQkNCU0JzQmNCb0JAKK9Cg0JDQqNCY0KLQmCDQkdCQ0IjQoNCQ0JwKK9Cg0JDQqNCY0KLQmCDQpdCQ0JLQkAor0KDQkNCo0JjQotCYINCY0JzQldCgCivQoNCQ0KjQmtCe0JIg0JHQoNCQ0J3QmtCeCivQoNCQ0KjQmtCe0JIg0JHQoNCQ0J3QmtCeCivQoNCQ0KjQmtCe0JIg0JTQkNCd0JjQptCQCivQoNCQ0KjQmtCe0JIg0JzQkNCg0JjQiNCQCivQoNCQ0KjQmtCe0JIg0KHQnNCY0InQmtCQCivQoNCQ0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQqNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCo0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0KDQkNCo0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0KjQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCo0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCo0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCo0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCo0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQqNCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cg0JDQqNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCo0JrQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cg0JDQqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0KjQmtCe0JLQmNCLINCS0JXQoNCQCivQoNCQ0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQqNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0KjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JbQndCQ0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCC0JXQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQgtCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQgtCV0J3QntCS0JjQiyDQltCV0InQmtCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JbQldCJ0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCR0J7QltCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JHQntCg0JjQoQor0KDQkNCC0JXQndCe0JLQmNCLINCR0J7QodCQCivQoNCQ0ILQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JTQoNCQ0JPQkAor0KDQkNCC0JXQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQgtCV0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0ILQldCd0J7QktCY0Isg0JrQkNCg0JvQngor0KDQkNCC0JXQndCe0JLQmNCLINCc0JDQndCVCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Cg0JDQgtCV0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cg0JDQgtCV0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KDQkNCC0JXQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCQ0ILQldCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0ILQldCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0ILQldCd0J7QktCY0Isg0KPQoNCe0KgKK9Cg0JDQgtCV0J3QntCS0JjQiyDQktCV0InQmtCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQoNCQ0ILQldCS0JjQiyDQodCQ0JLQngor0KDQkNCR0JDQj9CY0IjQldCS0KHQmtCYINCf0JDQo9Cb0JAKK9Cg0JDQkdCQ0KLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQkdCYINCI0J7QltCV0KQKK9Cg0JDQkdCY0IjQkNCmINCh0KDQkdCQCivQoNCQ0JHQoNCV0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQkdCg0JXQndCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQoNCQ0JHQoNCV0J3QntCS0JjQiyDQl9Cb0JDQotCY0J3QmtCQCivQoNCQ0KYg0KjQkNCd0JTQntCgCivQoNCQ0KYg0JDQm9CR0JXQoNCiCivQoNCQ0KYg0JDQndCQCivQoNCQ0KYg0JHQoNCj0J3Qngor0KDQkNCmINCV0JTQnNCj0J3QlAor0KDQkNCmINCk0JXQoNCV0J3Qpgor0KDQkNCmINCk0JXQoNCV0J3Qpgor0KDQkNCmINCk0KDQkNCK0JAKK9Cg0JDQpiDQk9CQ0JHQoNCY0IjQldCbCivQoNCQ0KYg0IjQkNCd0J7QqAor0KDQkNCmINCI0JXQm9CY0KHQkNCS0JXQotCQCivQoNCQ0KYg0IjQntCS0JDQnQor0KDQkNCmINCJ0JjQidCQ0J3QkAor0KDQkNCmINCJ0KPQkdCe0JzQmNCgCivQoNCQ0KYg0JzQkNCg0JjQiNCQCivQoNCQ0KYg0JzQkNCg0JjQiNCQCivQoNCQ0KYg0JzQldCb0JDQndCY0IjQkAor0KDQkNCmINCf0JDQmwor0KDQkNCmINCg0KPQlNCe0JvQpAor0KDQkNCmLdCh0JDQkdCeINCb0JDQiNCe0KgKK9Cg0JDQpiDQodCi0JXQktCQ0J0KK9Cg0JDQpiDQotCV0J7QlNCe0KAKK9Cg0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KYg0JfQm9CQ0KLQkAor0KDQkNCm0JAg0ILQo9Cg0J4KK9Cg0JDQptCQINCU0KDQkNCT0JDQnQor0KDQkNCm0JAg0JTQoNCQ0JPQkNCdCivQoNCQ0KbQkCDQlNCg0JDQk9CQ0J0KK9Cg0JDQptCQINCU0KPQqNCQ0J0KK9Cg0JDQptCQINCT0J7QoNCU0JDQndCQINCU0KAKK9Cg0JDQptCQINCc0JjQoNCa0J4KK9Cg0JDQptCQINCf0JXQotCQ0KAKK9Cg0JDQptCQINCg0KPQltCY0KbQkAor0KDQkNCm0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQkNCm0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQptCY0Isg0JTQo9Co0JDQnQor0KDQkNCm0JjQiyDQnNCY0JvQkNCdCivQoNCQ0KbQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0KbQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCm0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQptCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQptCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQptCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQptCY0Isg0KDQkNCU0JXQndCa0J4KK9Cg0JDQptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCm0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0KbQmNCLINCS0JXQidCa0J4KK9Cg0JDQptCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQptCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQptCY0Isg0JfQntCg0JDQnQor0KDQkNCm0JrQntCSINCU0JDQoNCY0J3QmtCQCivQoNCQ0KbQmtCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQoNCQ0KbQmtCe0JIg0JrQkNCi0JjQptCQCivQoNCQ0KbQmtCe0JIg0JvQkNCX0JDQoAor0KDQkNCm0JrQntCSINCc0JjQm9CY0KbQkAor0KDQkNCm0JrQntCSINCc0JjQm9CY0JLQntCICivQoNCQ0KbQmtCe0JIg0JzQmNCb0J7QqAor0KDQkNCm0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQptCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0KbQmtCe0JIg0J3QkNCi0JDQqNCQCivQoNCQ0KbQmtCe0JIg0J7Qm9CT0JAKK9Cg0JDQptCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KDQkNCm0JrQntCSINCg0JDQlNCe0JzQmNCgCivQoNCQ0KbQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCm0JrQntCSINCh0JDQktCQCivQoNCQ0KbQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCm0JrQntCSINCh0KDQgtCQ0J0KK9Cg0JDQptCa0J7QkiDQodCg0ILQkNCdCivQoNCQ0KbQmtCe0JIg0KHQoNCC0JDQnQor0KDQkNCm0JrQntCSINCX0JvQkNCi0JjQptCQCivQoNCQ0KbQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQptCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCm0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0KbQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQptCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCm0JrQntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0KbQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0KbQm9CV0KAg0ILQldCg0IIKK9Cg0JDQptCb0JXQoCDQnNCQ0KDQk9CY0KIKK9Cg0JDQptCeINCc0JjQi9CeCivQoNCQ0KbQniDQoNCQ0KLQmtCeCivQoNCQ0JQg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQlNCQ0KjQmNCdINCV0JvQktCY0KDQkAor0KDQkNCU0JDQqNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JDQqNCY0J0g0JfQktCV0JfQlNCQ0J0KK9Cg0JDQlNCQ0Jog0ILQntCg0ILQlQor0KDQkNCU0JDQmiDQgtCj0KDQmNCm0JAKK9Cg0JDQlNCQ0Jog0JTQo9Co0JDQnQor0KDQkNCU0JDQmiDQlNCj0KjQkNCdCivQoNCQ0JTQkNCaINCT0JDQktCg0JAKK9Cg0JDQlNCQ0Jog0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cg0JDQlNCQ0Jog0IjQntCS0JDQndCa0JAKK9Cg0JDQlNCQ0Jog0IjQntCS0JDQnQor0KDQkNCU0JDQmiDQmtCe0JLQmNCd0JrQkAor0KDQkNCU0JDQmiDQm9CQ0JfQkNCgCivQoNCQ0JTQkNCaINCb0JDQl9CQ0KAKK9Cg0JDQlNCQ0Jog0InQo9CR0JjQptCQCivQoNCQ0JTQkNCaINCJ0KPQkdCY0KbQkAor0KDQkNCU0JDQmiDQm9Cj0JrQkAor0KDQkNCU0JDQmiDQnNCY0JvQkNCU0JjQndCa0JAKK9Cg0JDQlNCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JDQmiDQntCb0JPQkAor0KDQkNCU0JDQmiDQoNCQ0JTQnNCY0JvQkAor0KDQkNCU0JDQmiDQodCb0JDQktCa0J4KK9Cg0JDQlNCQ0Jog0JfQntCg0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQoNCQ0JTQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkNCd0JAg0JTQoAor0KDQkNCU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JDQmtCe0JLQmNCLINCU0JDQnNCI0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCU0JDQoNCa0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCb0JDQl9CeCivQoNCQ0JTQkNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQkNCd0JTQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JDQndCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQlQor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQkNCa0J7QktCY0Isg0J3QldCd0JDQlAor0KDQkNCU0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0KDQkNCU0JDQmtCe0JLQmNCLINCg0JDQlNCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0KDQkNCU0JDQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0JTQkNCdINCS0JXQm9CY0JzQmNCgCivQoNCQ0JTQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9Cg0JDQlNCQ0J3QntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCQ0J3QntCSINCU0KPQqNCQ0J0KK9Cg0JDQlNCQ0J3QntCSINCT0J7QodCf0JDQktCQCivQoNCQ0JTQkNCd0J7QkiDQidCj0JHQntCc0JjQoCDQkNCU0JLQntCa0JDQogor0KDQkNCU0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCQ0J3QntCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0KDQkNCU0JDQndCe0JIg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQkNCd0J7QkiDQntCb0JjQktCV0KDQkAor0KDQkNCU0JDQndCe0JIg0KDQkNCU0JjQndCa0JAKK9Cg0JDQlNCQ0J3QntCSINCg0JDQlNCY0JLQntCICivQoNCQ0JTQkNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQoNCQ0JTQkNCd0J7QkiDQktCV0KDQmNCm0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQltCV0InQmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQgtCj0JrQkAor0KDQkNCU0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQkNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0KDQkNCU0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCU0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCa0JDQotCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQidCj0JHQngor0KDQkNCU0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0KDQkNCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQndCa0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0KLQoNCY0KjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQoNCQ0JTQkNCiINCc0JDQoNCa0J4KK9Cg0JDQlNCQ0KLQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCV0Jog0JDQndCU0KDQkNCoCivQoNCQ0JTQldCaINCc0JDQoNCY0IjQkAor0KDQkNCU0JXQmtCQINCo0KLQldCk0JrQkAor0KDQkNCU0JXQmtCQINCU0KPQqNCa0J4KK9Cg0JDQlNCV0JrQkCDQiNCe0JLQkNCdCivQoNCQ0JTQldCa0JAg0JzQmNCb0JUKK9Cg0JDQlNCV0JrQkCDQnNCY0JvQmtCQCivQoNCQ0JTQldCa0JAg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQldCa0JAg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCV0JrQmNCdINCJ0KPQkdCY0KbQkAor0KDQkNCU0JXQm9CY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JXQndCn0JjQiyDQiNCe0KHQmNCfCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQkNCU0JXQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCR0JvQkNCW0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0JXQndCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KDQkNCU0JXQndCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KDQkNCU0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KDQkNCU0JXQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0KDQkNCU0JXQndCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQktCI0JXQoNCQCivQoNCQ0JTQldCd0J7QktCY0Isg0J7QkdCg0JXQnQor0KDQkNCU0JXQotCQINCh0JvQkNCS0JrQngor0KDQkNCU0JXQotCQINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCV0KLQmNCLINCR0J7QqNCa0J4KK9Cg0JDQlNCV0KLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JXQotCY0Isg0JPQntCg0JDQnQor0KDQkNCU0JXQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCV0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Cg0JDQlNCV0JLQmNCLINCY0JLQkNCdCivQoNCQ0JTQldCS0JjQiyDQnNCY0JvQldCS0JAKK9Cg0JDQlNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCV0JLQmNCLINCS0J7QiNCY0JzQmNCgCivQoNCQ0JTQmNCn0JXQkiDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCY0KfQldCSINCc0JDQoNCY0IjQkCDQlNCgCivQoNCQ0JTQmNCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCY0KfQldCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0JjQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCY0KfQmNCLINCh0JzQmNCJ0JDQndCQCivQoNCQ0JTQmNCo0JjQiyDQltCY0JLQmtCeCivQoNCQ0JTQmNCo0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQmNCo0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0JjQqNCY0Isg0JHQmNCJ0JDQndCQCivQoNCQ0JTQmNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0JTQmNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0JTQmNCo0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0KjQmNCLINCR0KDQkNCd0JrQkAor0KDQkNCU0JjQqNCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQmNCo0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0JjQqNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0JjQqNCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JjQqNCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQmNCo0JjQiyDQiNCV0KTQotCQCivQoNCQ0JTQmNCo0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQlNCY0KjQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCI0J7QktCeCivQoNCQ0JTQmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Cg0JDQlNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQlNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQlNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQlNCY0KjQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCU0JjQqNCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQnNCQ0KDQmtCeCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQlNCY0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCY0KjQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Cg0JDQlNCY0KjQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQmNCo0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cg0JDQlNCY0KjQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0JjQqNCY0Isg0J3QldCd0JAKK9Cg0JDQlNCY0KjQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JjQqNCY0Isg0J7QkdCg0JDQlNCY0J0KK9Cg0JDQlNCY0KjQmNCLINCe0JvQmNCS0JXQoNCQCivQoNCQ0JTQmNCo0JjQiyDQn9CV0KDQmNCm0JAKK9Cg0JDQlNCY0KjQmNCLINCf0JXQoNCeCivQoNCQ0JTQmNCo0JjQiyDQn9CV0KDQodCQCivQoNCQ0JTQmNCo0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCo0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0JjQqNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCY0KjQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JTQmNCo0JjQiyDQodCQ0JLQldCi0JAKK9Cg0JDQlNCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCh0KLQkNCd0J7QiNCVCivQoNCQ0JTQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQqNCY0Isg0KHQktCV0KLQntCX0JDQoAor0KDQkNCU0JjQqNCY0Isg0KLQntCU0J7QoAor0KDQkNCU0JjQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JjQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JjQqNCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQiyDQp9CV0JTQkAor0KDQkNCU0JjQiyDQltCV0InQmtCeCivQoNCQ0JTQmNCLINCW0JjQktCQ0J0KK9Cg0JDQlNCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQmNCLINCQ0J3QgtCQCivQoNCQ0JTQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0JTQmNCLINCQ0J3QlNCg0JjQiNCQINCU0KAKK9Cg0JDQlNCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KDQkNCU0JjQiyDQkNCd0JrQmNCm0JAKK9Cg0JDQlNCY0Isg0JDQndCi0JUKK9Cg0JDQlNCY0Isg0JHQntCo0JrQngor0KDQkNCU0JjQiyDQkdCg0JDQndCa0JAKK9Cg0JDQlNCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCQ0JTQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQmNCLINCk0KDQkNCK0JAKK9Cg0JDQlNCY0Isg0KTQoNCQ0IrQngor0KDQkNCU0JjQiyDQk9Ce0IjQmtCeCivQoNCQ0JTQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCY0Isg0JjQktCQ0J3QmtCQCivQoNCQ0JTQmNCLINCI0J7QodCY0J8KK9Cg0JDQlNCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCY0Isg0JzQmNCI0JAKK9Cg0JDQlNCY0Isg0JzQmNCb0JDQndCa0J4KK9Cg0JDQlNCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQmNCLINCc0JjQm9CVCivQoNCQ0JTQmNCLINCc0JjQm9CY0JLQntCICivQoNCQ0JTQmNCLINCc0JjQm9CY0JLQntCICivQoNCQ0JTQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQlNCY0Isg0JzQmNCb0KPQotCY0J0g0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQmNCLINCc0JjQoNCa0J4KK9Cg0JDQlNCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCY0Isg0J/QkNCS0JvQlQor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCY0Ist0J/QntCf0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQlNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQlNCY0Isg0KDQkNCU0JAKK9Cg0JDQlNCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCY0Isg0KDQntCR0JXQoNCiCivQoNCQ0JTQmNCLINCh0JDQktCQCivQoNCQ0JTQmNCLINCh0JvQkNCS0JjQqNCQCivQoNCQ0JTQmNCLINCh0JvQkNCS0JrQngor0KDQkNCU0JjQiyDQodCe0KTQmNCI0JAKK9Cg0JDQlNCY0Isg0KHQotCQ0J3QmtCeCivQoNCQ0JTQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0Isg0KHQotCe0IjQkNCdCivQoNCQ0JTQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0JTQmNCLINCi0KDQmNCS0JAKK9Cg0JDQlNCY0Isg0JLQldCb0JjQndCa0JAKK9Cg0JDQlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JjQiyDQl9CU0KDQkNCS0JrQngor0KDQkNCU0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQmNCLINCX0J7QoNCQCivQoNCQ0JTQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCU0JjQkdCg0JDQotCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCU0JjQkdCg0JDQotCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQmNCI0JXQidCQ0KYg0IjQldCb0JXQndCQCivQoNCQ0JTQmNCI0JXQidCQ0KYg0JzQntCc0KfQmNCb0J4KK9Cg0JDQlNCY0J0g0JbQmNCS0JDQnQor0KDQkNCU0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0JjQnSDQkNCd0KLQntCd0JjQiNCQCivQoNCQ0JTQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0JHQoNCQ0J3QmtCeCivQoNCQ0JTQmNCdINCU0KDQkNCT0J7QiNCb0JAKK9Cg0JDQlNCY0J0g0KXQoNCY0KHQotCY0J3QkAor0KDQkNCU0JjQnSDQmNCS0JDQndCa0JAKK9Cg0JDQlNCY0J0g0IjQntCS0JDQndCa0JAKK9Cg0JDQlNCY0J0g0JvQkNCX0JDQoAor0KDQkNCU0JjQnSDQidCj0JHQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9Cg0JDQlNCY0J0g0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0J0g0JzQkNCa0KHQmNCc0JjQm9CY0IjQkNCdCivQoNCQ0JTQmNCdINCc0JDQoNCQCivQoNCQ0JTQmNCdINCc0JjQm9CQ0JTQmNCd0JrQkAor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0J0g0JzQmNCb0JDQnQor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0J0g0JzQmNCb0JXQndCQCivQoNCQ0JTQmNCdINCc0JjQm9Ca0JAKK9Cg0JDQlNCY0J0g0JzQmNCg0JAKK9Cg0JDQlNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JjQnSDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCY0J0g0J3QkNCU0JAKK9Cg0JDQlNCY0J0g0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0JjQnSDQn9CV0KLQkNCgINCU0KAKK9Cg0JDQlNCY0J0g0KDQkNCU0JAKK9Cg0JDQlNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0JjQnSDQodCb0JDQktCY0J3QmtCQCivQoNCQ0JTQmNCdINCh0JvQkNCS0JrQngor0KDQkNCU0JjQnSDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0J0g0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQmNCdINCS0JXQodCV0JvQmNCdCivQoNCQ0JTQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0J0g0JfQm9CQ0KLQntCI0JUKK9Cg0JDQlNCY0J0g0JfQntCg0JDQndCa0JAKK9Cg0JDQlNCY0J0g0JfQntCg0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQmNCd0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQlNCY0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQoNCQ0JTQmNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JjQndCe0JLQmNCLINCb0JDQl9CeCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQkNCd0J7QiNCb0J4KK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KDQkNCU0JjQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0JjQndCe0JLQmNCLINCh0JjQm9CS0JDQndCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCd0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQmNCS0JDQnQor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCY0KjQkAor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCX0J7QoNCY0KbQkCDQlNCgCivQoNCQ0JTQmNCS0J7QiNCo0JAg0JzQmNCb0J7QqAor0KDQkNCU0JjQktCe0IjQqNCQINCh0JzQmNCJ0JAKK9Cg0JDQlNCY0JLQntCI0JDQpiDQlNCe0JHQoNCY0JvQkAor0KDQkNCU0JjQktCe0IjQkNCmINCU0KDQkNCT0JAKK9Cg0JDQlNCY0JLQntCI0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQmNCS0J7QiNCQ0KYg0IjQntCS0JDQnQor0KDQkNCU0JjQktCe0IjQkNCmINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JDQlNCY0JLQntCI0JXQkiDQoNCQ0JTQmNCd0JrQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCR0KDQkNCi0JjQnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQkNCdINCc0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQntCV0KYKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JjQlNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0JDQndCa0J4KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0IjQldCb0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0J7QlNCg0JDQkwor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQm9Cj0JrQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQm9Cj0JrQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9CQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCd0JXQgtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCd0JXQnNCQ0IrQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0J/QkNCS0JvQlQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCoCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCg0JDQotCa0J4KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQotCj0JPQntCc0JjQoAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQktCV0KDQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQktCY0JTQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQktCY0JTQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQktCj0JrQmNCm0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQgtCe0KDQgtCVCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCY0JLQntCI0JrQntCSINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQoNCQ0IjQmtCeCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQodCQ0JLQkAor0KDQkNCU0JjQktCe0IjQmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQm9Ce0JLQkNCn0JrQmCDQlNCe0JHQoNCY0J3QmtCQCivQoNCQ0JTQm9Ce0JLQkNCn0JrQmCDQodCY0J3QmNCo0JAKK9Cg0JDQlNCb0J7QktCY0Isg0JzQmNCb0JrQkAor0KDQkNCU0JzQkNCdINCo0JjQnNCj0J0KK9Cg0JDQlNCc0JDQnSDQqNCf0JjQoNCeCivQoNCQ0JTQnNCQ0J0g0JjQktCQ0J0KK9Cg0JDQlNCc0JDQnSDQm9CV0J/QntCh0JDQktCQCivQoNCQ0JTQnNCQ0J0g0JzQmNCb0JDQnQor0KDQkNCU0JzQkNCdINCc0JjQm9CVCivQoNCQ0JTQnNCQ0J0g0JzQmNCb0JjQptCQCivQoNCQ0JTQnNCQ0J0g0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCc0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQnNCQ0J3QmNCLINCV0JLQmNCm0JAKK9Cg0JDQlNCc0JDQndCe0JLQkNCmINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQkNCU0JzQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCc0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQnNCY0JvQniDQgtCj0KDQngor0KDQkNCU0JzQmNCb0J4g0JzQkNCg0JjQiNCQCivQoNCQ0JTQnNCY0JvQniDQnNCY0KDQmtCeCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KDQkNCU0JzQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JzQmNCb0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0JzQmNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JzQmNCb0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCg0JDQlNCVINCf0KDQntCk0JXQodCe0KAKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCh0KLQldCS0J4KK9Cg0JDQlNCd0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQoNCQ0JTQndCe0JIg0JDQm9CV0JrQodCQCivQoNCQ0JTQndCe0JIg0JvQldCd0JrQkAor0KDQkNCU0J3QntCSINCg0JDQlNCY0JLQntCICivQoNCQ0JTQndCe0JIg0KDQkNCI0JrQngor0KDQkNCU0J3QntCSINCX0J7QoNCa0JAKK9Cg0JDQlNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQndCe0JLQmNCLINCe0JvQk9CY0KbQkAor0KDQkNCU0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J3QntCS0JjQiyDQo9Cg0J7QqAor0KDQkNCU0J3QntCS0JjQiyDQo9Cg0J7QqAor0KDQkNCU0J7Qp9CQ0Igg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCe0KfQkNCIINCY0JvQmNCI0JAKK9Cg0JDQlNCe0KfQkNCIINCc0JDQoNCQCivQoNCQ0JTQntCn0JDQiCDQnNCY0JvQmtCQCivQoNCQ0JTQntCn0JDQiCDQndCV0JTQldCJ0JrQkAor0KDQkNCU0J7Qp9CQ0Igg0KHQkNCS0JrQkAor0KDQkNCU0J7QqCDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0JTQntCoINCU0JDQndCY0KbQkAor0KDQkNCU0J7QqCDQlNCg0JXQndCa0JAKK9Cg0JDQlNCe0Kgg0JzQkNCg0KLQkAor0KDQkNCU0J7QqCDQnNCY0JvQkNCdCivQoNCQ0JTQntCoINCg0KPQltCQCivQoNCQ0JTQntCoINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0Kgg0JfQntCg0JAKK9Cg0JDQlNCe0KjQldCS0JjQiy3QqNCi0JjQnNCQ0KYg0InQo9CR0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0J7QqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JDQndCY0KbQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCQ0J3QmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QqNCV0JLQmNCLINCR0J7QltCeCivQoNCQ0JTQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCo0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0KLQkNCgCivQoNCQ0JTQntCo0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCo0JXQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQlQor0KDQkNCU0J7QqNCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCo0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCo0JXQktCY0Isg0KDQntCU0J7QidCj0JEKK9Cg0JDQlNCe0KjQldCS0JjQiyDQodCi0JDQndCY0KbQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCi0JXQoNCV0JfQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KDQkNCU0J7QpiDQpNCg0JDQitCQCivQoNCQ0JTQntCmLdCh0JjQnNCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQntCY0KfQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCI0KfQldCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCI0KfQmNCLINCR0J7QltCQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QiNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QiNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QiNCn0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCU0J7QiNCn0JjQiyDQlNCg0JDQk9CeCivQoNCQ0JTQntCI0KfQmNCLINCU0KPQqNCa0J4KK9Cg0JDQlNCe0IjQp9CY0Isg0JPQntCI0JrQngor0KDQkNCU0J7QiNCn0JjQiyDQmNCg0JXQndCQCivQoNCQ0JTQntCI0KfQmNCLINCY0JLQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCY0JLQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCY0JLQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCJ0JjQiNCQ0J3QkAor0KDQkNCU0J7QiNCn0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JDQlNCY0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QiNCn0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCi0JDQoAor0KDQkNCU0J7QiNCn0JjQiyDQndCQ0JTQmNCm0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0J3QldCd0JDQlAor0KDQkNCU0J7QiNCn0JjQiy3QntCR0JXQoNCa0J3QldCW0JXQkiDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QiNCn0JjQiyDQn9CQ0JLQm9CVCivQoNCQ0JTQntCI0KfQmNCLINCh0JDQktCQCivQoNCQ0JTQntCI0KfQmNCLINCh0KDQldCi0JXQnQor0KDQkNCU0J7QiNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0JLQmNCi0J7QnNCY0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JLQm9CQ0JTQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQp9CY0J0g0ILQntCg0ILQlQor0KDQkNCU0J7QiNCn0JjQnSDQkNCd0JjQptCQCivQoNCQ0JTQntCI0KfQmNCdINCU0J7QkdCg0JjQm9CQCivQoNCQ0JTQntCI0KfQmNCdINCU0KPQqNCY0KbQkAor0KDQkNCU0J7QiNCn0JjQnSDQldCS0JjQptCQCivQoNCQ0JTQntCI0KfQmNCdINCI0KPQm9Ca0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQkNCg0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQkNCg0KLQkAor0KDQkNCU0J7QiNCn0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQntCI0KfQmNCdINCc0JjQm9Ca0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCb0J7QqAor0KDQkNCU0J7QiNCn0JjQnSDQnNCY0JvQntCS0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QiNCn0JjQnSDQoNCQ0JTQnNCY0JvQkAor0KDQkNCU0J7QiNCn0JjQnSDQoNCQ0JTQntCI0JrQkAor0KDQkNCU0J7QiNCn0JjQnSDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQntCI0KfQmNCdINCh0KDQldCU0J7QiNCVCivQoNCQ0JTQntCI0KfQmNCdINCi0J7QlNCe0KAKK9Cg0JDQlNCe0IjQp9CY0J0g0JLQldCb0JjQnNCY0KAKK9Cg0JDQlNCe0IjQp9CY0J0g0JLQldCg0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JLQldCg0JAKK9Cg0JDQlNCe0IjQkCDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0JTQntCI0JAg0JrQntCS0JjQidCa0JAKK9Cg0JDQlNCe0IjQldCSINCY0JLQkNCdCivQoNCQ0JTQntCI0JXQkiDQodCb0JDQktCa0J4KK9Cg0JDQlNCe0IjQldCS0JjQiyDQgtCe0JrQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQlNCV0IjQkNCdCivQoNCQ0JTQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQoNCQ0JTQntCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JTQntCI0JXQktCY0Isg0IjQldCb0JjQptCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JrQkNCi0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQmtCe0KHQotCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCe0IjQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQmNCg0J7QodCQ0J3QlNCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cg0JDQlNCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQn9CV0KLQoNCQCivQoNCQ0JTQntCI0JXQktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cg0JDQlNCe0IjQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JrQkCDQlNCgCivQoNCQ0JTQntCI0JXQktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCg0JHQntCJ0KPQkQor0KDQkNCU0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCi0JDQotCI0JDQndCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQntCI0JjQp9CY0Isg0ILQntCa0JAKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQgtCe0KDQgtCeCivQoNCQ0JTQntCI0JjQp9CY0Isg0JTQkNCd0JjQm9CeCivQoNCQ0JTQntCI0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQntCI0JjQp9CY0Isg0IjQldCb0JXQndCQCivQoNCQ0JTQntCI0JjQp9CY0Isg0IjQntCg0JTQkNCdCivQoNCQ0JTQntCI0JjQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQnNCY0JvQntCh0JDQkgor0KDQkNCU0J7QiNCY0KfQmNCLINCe0JHQoNCV0J0KK9Cg0JDQlNCe0IjQmNCn0JjQiyDQoNCQ0JTQlQor0KDQkNCU0J7QiNCY0KfQmNCLINCg0JDQlNCY0KjQkAor0KDQkNCU0J7QiNCY0KfQmNCLINCS0JvQkNCU0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCS0J7QiNCY0J0KK9Cg0JDQlNCe0IjQmtCeINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QiNCa0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KDQkNCU0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQntCI0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQkNCU0J7QiNCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0KDQkNCU0J7QiNCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0KDQkNCU0J7QiNCa0J7QktCY0Isg0KDQkNCI0JrQngor0KDQkNCU0J7QiNCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCi0KDQkNCI0JrQngor0KDQkNCU0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QnNCQ0J0g0IjQldCb0JXQndCQCivQoNCQ0JTQntCc0JDQnSDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0JzQkNCdINCc0JDQoNCi0JAKK9Cg0JDQlNCe0JzQkNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCe0JzQkNCdINCX0J7QoNCQ0J0KK9Cg0JDQlNCe0JzQmNCgINCh0KLQntCI0JDQnQor0KDQkNCU0J7QnNCY0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QnNCY0KDQntCS0JjQiyDQktCY0J3QmtCeCivQoNCQ0JTQntCc0JjQoNCe0JLQmNCLINCS0KPQmtCh0JDQnQor0KDQkNCU0J7QnNCY0KDQntCS0JjQiyDQl9Cb0JDQotCQCivQoNCQ0JTQntCd0KfQmNCLINCI0KPQodCj0KQKK9Cg0JDQlNCe0J3Qp9CY0Isg0KDQkNCc0JjQlwor0KDQkNCU0J7QndCY0Isg0JbQldCJ0JrQngor0KDQkNCU0J7QndCY0Isg0JbQmNCS0JDQnQor0KDQkNCU0J7QndCY0Isg0JbQmNCS0JrQngor0KDQkNCU0J7QndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0J3QmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JTQntCd0JjQiyDQkdCb0JDQk9Ce0IjQlQor0KDQkNCU0J7QndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCd0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCd0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCe0J3QmNCLINCU0JDQndCY0KbQkAor0KDQkNCU0J7QndCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0J7QndCY0Isg0JXQktCT0JXQndCY0IjQlQor0KDQkNCU0J7QndCY0Isg0KTQldCg0JXQndCmCivQoNCQ0JTQntCd0JjQiyDQpdCQ0J3QkAor0KDQkNCU0J7QndCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QndCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0J3QmNCLINCc0JDQmtCh0JjQnAor0KDQkNCU0J7QndCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KDQkNCU0J7QndCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0J7QndCY0Isg0J3QkNCU0JAKK9Cg0JDQlNCe0J3QmNCLINCd0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0J7QndCY0Isg0J3QldCd0JDQlAor0KDQkNCU0J7QndCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCd0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0J3QmNCLINCd0J7QktCY0KbQkAor0KDQkNCU0J7QndCY0Isg0J/QldCi0JDQoAor0KDQkNCU0J7QndCY0Isg0KDQkNCU0JAKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCVCivQoNCQ0JTQntCd0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QndCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQntCd0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQntCd0JjQiyDQodCe0KTQmNCI0JAKK9Cg0JDQlNCe0J3QmNCLINCS0JvQkNCU0JAKK9Cg0JDQlNCe0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0IrQkCDQkNCd0KLQlQor0KDQkNCU0J7QitCQ0J3QmNCdINCc0JDQoNCi0JAKK9Cg0JDQlNCe0IrQkNCd0JjQnSDQn9CV0KLQkNCgCivQoNCQ0JTQntCK0JDQndCY0J0g0JLQm9CQ0KHQotCY0JzQmNCgCivQoNCQ0JTQntCK0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCe0IrQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QitCY0Isg0JjQktCQ0J0KK9Cg0JDQlNCe0IrQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JDQlNCe0IrQmNCLINCb0KPQmtCQCivQoNCQ0JTQntCK0JjQiyDQnNCQ0J3QlNCQCivQoNCQ0JTQntCK0JjQiyDQnNCY0JvQkNCU0JjQnQor0KDQkNCU0J7QitCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCe0IrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCK0JjQiyDQnNCY0KLQkNCgCivQoNCQ0JTQntCK0JjQiyDQntCb0JPQkAor0KDQkNCU0J7QitCY0Isg0KHQldCd0JrQkAor0KDQkNCU0J7QitCY0Isg0KHQm9CQ0JLQntCc0JjQoAor0KDQkNCU0J7QitCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QitCY0Isg0KHQndCV0JbQkNCd0JAKK9Cg0JDQlNCe0IrQmNCLINCh0KLQkNCd0JAKK9Cg0JDQlNCe0IrQmNCLINCS0JXQoNCY0KbQkAor0KDQkNCU0J7QodCQ0JIg0JXQoNCW0JXQkdCV0KIKK9Cg0JDQlNCe0KHQkNCSINCa0KDQmNCh0KLQmNCd0JAKK9Cg0JDQlNCe0KHQkNCSINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCh0JDQktCn0JXQkiDQlNCj0KjQkNCdCivQoNCQ0JTQntCh0JDQktCn0JXQkiDQnNCY0JvQkAor0KDQkNCU0J7QodCQ0JLQkNCmINCU0JjQnNCY0KLQoNCY0IjQlSDQlNCgCivQoNCQ0JTQntCh0JDQktCQ0KYg0JTQo9Co0JjQptCQCivQoNCQ0JTQntCh0JDQktCQ0KYg0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCe0KHQkNCS0JDQpiDQktCV0JvQmNCX0JDQoAor0KDQkNCU0J7QodCQ0JLQkNCmINCS0JvQkNCU0J4KK9Cg0JDQlNCe0KHQkNCS0InQldCSINCW0JjQktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCSINCR0J7QltCY0JTQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQlNCg0JDQk9Cj0KLQmNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQk9Ce0IjQmtCeCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQmNCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0IjQldCS0KDQldCcCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQmtCQ0IvQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0J/QkNCS0JvQlQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0KHQm9CQ0JLQmtCQCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCSINCX0J7QoNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQl9Ce0KDQmNCm0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JHQntCT0JTQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JHQntCT0J7QktCY0JQKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QoNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QmNCV0JsKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCY0JDQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQiNCj0JvQmNCI0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQmNCJ0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQkNCg0JrQngor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQldCS0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmtCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQitCV0JPQntCh0JDQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0J/QkNCS0JvQlQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQnNCY0JfQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCg0J7QlNCe0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQotCe0IjQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JLQm9CQ0JTQldCi0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQl9CQ0JPQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQoNCQ0JTQntCS0JDQpiDQmNCS0JAKK9Cg0JDQlNCe0JLQkNCmINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QktCQ0KYg0J/QldCi0JDQoAor0KDQkNCU0J7QktCQ0KYg0KHQkNCS0JAKK9Cg0JDQlNCe0JLQkNCdINCQ0J3QotCVCivQoNCQ0JTQntCS0JDQnSDQktCY0JTQntCh0JDQktCQCivQoNCQ0JTQntCS0JDQndCn0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0KfQldCSINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QktCQ0J3Qp9CV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCQ0J3Qp9CV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCQ0J3QkNCmINCC0KPQoNCQCivQoNCQ0JTQntCS0JDQndCQ0KYg0J3QldCC0J4KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQltCY0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QktCQ0J3QntCSINCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQkdCe0JPQlNCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JTQkNCd0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQlNCj0KjQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0JXQktCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCT0J7QoNCU0JDQndCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JjQm9CY0IjQkAor0KDQkNCU0J7QktCQ0J3QntCSINCa0KPQl9Cc0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCc0JDQoNCY0IjQkAor0KDQkNCU0J7QktCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9Ca0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCd0JDQlNCQCivQoNCQ0JTQntCS0JDQndCe0JIg0J3QldCS0JXQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQn9CV0KLQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0J/QldCi0JDQoAor0KDQkNCU0J7QktCQ0J3QntCSINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0J7QktCQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0KDQo9CW0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0JzQmNCJ0JDQndCQCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQotCV0JLQkAor0KDQkNCU0J7QktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQotCQ0KLQiNCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCi0JjQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCW0JjQktCQ0JTQmNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCR0J7QoNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCR0J7QoNCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQmNCb0J7QndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCI0J7QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JDQoNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkCDQlNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0IvQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JvQkNCC0JXQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCY0J3QntCh0JvQkNCSINCU0KAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQiNCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JTQntCJ0KPQkQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQodCQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQktCY0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JfQktCV0JfQlNCQ0J3QkAor0KDQkNCU0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQlNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cg0JDQlNCe0JLQmNCLINCW0JjQktCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0KDQkNCU0J7QktCY0Isg0JHQm9CQ0JPQkAor0KDQkNCU0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cg0JDQlNCe0JLQmNCLINCR0J7QqNCa0J4KK9Cg0JDQlNCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQoNCQ0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCe0JLQmNCLINCU0JDQnNCI0JDQnQor0KDQkNCU0J7QktCY0Isg0JTQkNCg0JrQngor0KDQkNCU0J7QktCY0Isg0JTQldCI0JDQnQor0KDQkNCU0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCQ0JTQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCT0J7QiNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCS0JjQiyDQmNCg0JzQkAor0KDQkNCU0J7QktCY0Isg0JjQktCQCivQoNCQ0JTQntCS0JjQiyDQiNCV0JLQotCeCivQoNCQ0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QktCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQoNCQ0JTQntCS0JjQiyDQnNCQ0JPQlNCQCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0JLQmNCLINCc0JjQoNCn0JXQotCQCivQoNCQ0JTQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQntCS0JjQiyDQndCe0JLQkNCaCivQoNCQ0JTQntCS0JjQiyDQntCb0JPQkAor0KDQkNCU0J7QktCY0Isg0J/QkNCS0JvQlQor0KDQkNCU0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCU0J7QktCY0Isg0J/QldCi0JrQngor0KDQkNCU0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQntCS0JjQiyDQoNCQ0KLQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0JLQmNCLINCg0J7Ql9CY0JrQkAor0KDQkNCU0J7QktCY0Isg0KHQkNCS0J4KK9Cg0JDQlNCe0JLQmNCLINCh0JjQnNCQCivQoNCQ0JTQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cg0JDQlNCe0JLQmNCLINCh0KLQkNCd0JrQngor0KDQkNCU0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQodCi0KDQkNCl0JjQitCQCivQoNCQ0JTQntCS0JjQiyDQotCV0KDQldCX0JjQiNCQCivQoNCQ0JTQntCS0JjQiy3Qo9CS0JXQoNCY0Isg0JzQmNCb0JAg0JTQoAor0KDQkNCU0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQlNCe0JLQmNCLINCS0JXQidCQCivQoNCQ0JTQntCS0JjQiyDQktCV0InQmtCeCivQoNCQ0JTQntCS0JjQiyDQktCV0InQmtCeCivQoNCQ0JTQntCS0JjQiyDQktCV0KDQkAor0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCe0JLQmNCLINCS0JjQlNCQ0JoKK9Cg0JDQlNCe0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQoNCQ0JTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQktCb0JDQiNCa0J4KK9Cg0JDQlNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQmNCLINCS0KPQmtCh0JDQnQor0KDQkNCU0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQlNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCe0JLQndCY0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCjINCR0KDQkNCd0JrQngor0KDQkNCU0KPQiNCa0J4g0ILQo9Cg0JAKK9Cg0JDQlNCj0IjQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQo9CI0JrQniDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0IjQmtCeINCU0JXQodCQCivQoNCQ0JTQo9CI0JrQniDQlNCj0KjQkNCdCivQoNCQ0JTQo9CI0JrQniDQlNCj0KjQkNCdCivQoNCQ0JTQo9CI0JrQniDQk9Ce0KDQkNCdCivQoNCQ0JTQo9CI0JrQniDQiNCQ0KHQnNCY0J3QkAor0KDQkNCU0KPQiNCa0J4g0InQmNCJ0JDQndCQCivQoNCQ0JTQo9CI0JrQniDQnNCQ0KDQmtCeCivQoNCQ0JTQo9CI0JrQniDQnNCY0JvQkNCdCivQoNCQ0JTQo9CI0JrQniDQnNCY0KDQkAor0KDQkNCU0KPQiNCa0J4g0JzQmNCg0JrQngor0KDQkNCU0KPQiNCa0J4g0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCj0IjQmtCeINCh0KLQldCS0J4KK9Cg0JDQlNCj0IjQmtCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0IjQmtCe0JIg0JTQkNCd0JjQptCQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0KPQiNCa0J7QkiDQlNCQ0J3QmNCb0J4KK9Cg0JDQlNCj0IjQmtCe0JIg0JTQkNCd0JjQm9CeCivQoNCQ0JTQo9CI0JrQntCSINCU0JXQiNCQ0J0KK9Cg0JDQlNCj0IjQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0KPQiNCa0J7QkiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCj0IjQmtCe0JIg0InQo9CR0JjQptCQCivQoNCQ0JTQo9CI0JrQntCSINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0IjQmtCe0JIg0JzQmNCb0JjQktCe0IgKK9Cg0JDQlNCj0IjQmtCe0JIg0JzQmNCi0JDQoAor0KDQkNCU0KPQiNCa0J7QkiDQndCY0JrQntCb0JAKK9Cg0JDQlNCj0IjQmtCe0JIg0J/QldCi0JDQoAor0KDQkNCU0KPQiNCa0J7QkiDQoNCj0JbQmNCm0JAKK9Cg0JDQlNCj0IjQmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9CI0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCj0IjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCj0IjQmtCe0JLQmNCLINCI0JXQm9Ca0JAKK9Cg0JDQlNCj0IjQmtCe0JLQmNCLINCa0J7QodCi0JAKK9Cg0JDQlNCj0JrQkCDQm9CQ0IjQntCoCivQoNCQ0JTQo9Ca0JjQiyDQoNCQ0JTQntCh0JDQkgor0KDQkNCU0KPQmtCY0J0g0JDQm9CV0JrQodCQCivQoNCQ0JTQo9Ca0JjQnSDQkdCg0JDQndCa0JAKK9Cg0JDQlNCj0JrQmNCdINCU0JDQndCY0KbQkAor0KDQkNCU0KPQmtCY0J0g0JPQkNCS0KDQkAor0KDQkNCU0KPQmtCY0J0g0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCj0JrQmNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0JrQmNCdINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQo9Ca0JjQnSDQnNCY0KDQmtCeCivQoNCQ0JTQo9Ca0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQoNCQ0JTQo9Ca0JjQnSDQodCi0J7QiNCa0JAKK9Cg0JDQlNCj0JvQkNCo0JrQmCDQkdCe0KjQmtCeCivQoNCQ0JTQo9Cb0JDQqNCa0Jgg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9Cb0JXQkiDQiNCe0JLQkNCdCivQoNCQ0JTQo9CJINCI0JXQm9CV0J3QkAor0KDQkNCU0KPQm9Ce0JIg0KbQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QkiDQptCS0JXQotCY0KHQm9CQ0JIKK9Cg0JDQlNCj0JvQntCSINCI0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCSINCI0KPQm9Ca0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQltCY0JLQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0ILQntCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQo9Cb0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0KPQm9Ce0JLQmNCLINCC0KPQoNCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0J3QkAor0KDQkNCU0KPQm9Ce0JLQmNCLLdCR0JXQm9CY0Isg0JfQntCg0JrQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KDQkNCU0KPQm9Ce0JLQmNCLINCR0J7QodCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Cg0JDQlNCj0JvQntCS0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCj0JvQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCT0J7QoNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0IjQntCg0JTQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQmtCg0KPQndCY0KHQm9CQ0JIKK9Cg0JDQlNCj0JvQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQidCj0JHQmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCT0JTQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQlQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9Ce0IjQlQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCV0JTQldCJ0JrQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0J3QntCh0JvQkNCS0JAg0JTQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQlNCe0IjQlSDQlNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQo9CW0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCj0JTQntCb0KQKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCV0JvQmNCc0JjQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KDQldCL0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KDQldCi0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCi0JDQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCS0JXQotCa0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCi0J7QnNCQ0KgKK9Cg0JDQlNCj0JvQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCX0JvQkNCi0JjQndCa0JAg0JTQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0KDQkNCU0KPQnNCY0JvQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0KPQnNCY0JvQniDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCU0KPQnNCY0JvQniDQnNCY0IvQngor0KDQkNCU0KPQnNCY0JvQniDQnNCY0JvQntCg0JDQlAor0KDQkNCU0KPQnNCY0JvQniDQnNCY0KDQmtCeCivQoNCQ0JTQo9CdINCW0JXQidCa0J4KK9Cg0JDQlNCj0J0g0JbQldCJ0JrQngor0KDQkNCU0KPQnSDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCj0J0g0JPQntCg0JDQnQor0KDQkNCU0KPQnSDQmNCb0JjQiNCQCivQoNCQ0JTQo9CdINCI0J7QktCQ0J0KK9Cg0JDQlNCj0J0g0InQo9CR0JjQptCQCivQoNCQ0JTQo9CdINCc0JDQoNCa0J4KK9Cg0JDQlNCj0J0g0JzQmNCb0J7QqAor0KDQkNCU0KPQnSDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQo9CdINCh0JzQmNCJ0JAKK9Cg0JDQlNCj0J0g0JLQm9CQ0JTQngor0KDQkNCU0KPQitCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cg0JDQlNCj0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCj0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQo9Cd0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0KPQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0KPQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0KPQndCe0JLQmNCLINCI0JXQktCg0JXQnAor0KDQkNCU0KPQndCe0JLQmNCLINCg0JDQlNCj0J0KK9Cg0JDQlNCj0J3QntCS0JjQiyDQoNCe0KHQkNCd0JTQkAor0KDQkNCU0KPQodCY0J0g0JzQmNCb0JUKK9Cg0JDQlNCj0KHQmNCdINCi0J7QnNCQCivQoNCQ0JTQo9Ch0JjQnSDQktCV0KDQmNCm0JAKK9Cg0JDQlNCj0KHQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCj0KHQmNCd0J7QktCY0Isg0JHQmNCh0JXQoCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCj0KHQmNCd0J7QktCY0Isg0JHQntCg0JAKK9Cg0JDQlNCj0KHQmNCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0KHQmNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCj0KHQmNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0JLQkNCKINCh0JDQqNCQCivQoNCQ0JTQktCQ0IrQmCDQiNCe0JLQkNCdCivQoNCQ0JTQktCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQoNCQ0KTQkCDQkNCd0JTQoNCQ0KgKK9Cg0JDQpNCQ0Jgg0JPQkNCR0J7QoAor0KDQkNCk0JDQmCDQmNCo0KLQktCQ0J0KK9Cg0JDQpNCQ0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KDQkNCk0JDQmCDQodCi0JXQktCQ0J0KK9Cg0JDQpNCQ0Jgg0KLQmNCR0J7QoAor0KDQkNCk0JDQiNCb0J7QktCY0Isg0JfQo9CX0JDQndCQCivQoNCQ0KTQkNCbINCC0KPQoNCC0JjQndCa0JAKK9Cg0JDQpNCQ0Jsg0JvQkNCI0J7QqAor0KDQkNCk0JDQmyDQnNCQ0KDQmNCI0JAKK9Cg0JDQk9CQ0Kcg0JjQktCQ0J0KK9Cg0JDQk9CQ0Jgg0IjQntCS0JPQldCdCivQoNCQ0JPQkNCI0Jgg0ILQo9Cg0JAKK9Cg0JDQk9CQ0IjQmCDQmNCg0JjQndCQCivQoNCQ0JPQkNCI0Jgg0J3QmNCa0J7Qm9CQCivQoNCQ0JPQkNCI0Jgg0J3QmNCa0J7Qm9CQCivQoNCQ0JPQkNCI0Jgg0JLQm9CQ0JTQkAor0KDQkNCT0JDQiNCYINCS0JvQkNCU0JAKK9Cg0JDQk9CQ0IjQmCDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JPQniDQkNCU0JDQnAor0KDQkNCT0KPQliDQlNCg0JDQltCV0J0KK9Cg0JDQpdCV0JvQmNCLINCh0JLQldCi0J7QnNCY0KAg0JTQoAor0KDQkNCl0JzQkNCdINCc0JjQpdCQ0IjQm9CeCivQoNCQ0JjQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCY0Kcg0J3QmNCa0J7Qm9CQCivQoNCQ0JjQp9CV0JLQmNCLINCW0JjQktCa0J4KK9Cg0JDQmNCn0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cg0JDQmNCn0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cg0JDQmNCn0JXQktCY0Isg0JHQntCg0JrQkAor0KDQkNCY0KfQldCS0JjQiyDQlNCg0JDQk9CY0IsKK9Cg0JDQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCY0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JjQp9CV0JLQmNCLINCS0JXQodCd0JAKK9Cg0JDQmNCn0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCY0KfQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQp9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Cg0JDQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JjQm9CY0Isg0KDQkNCd0JrQngor0KDQkNCY0JvQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cg0JDQmNCc0J7QktCh0JrQmCDQlNCV0KHQkNCd0JrQkAor0KDQkNCY0J3QkNCmINCc0JDQoNCY0JrQkAor0KDQkNCY0J3QkNCmINCc0JjQotCQ0KAKK9Cg0JDQiNCn0JDQnSDQmNCo0KLQktCQ0J0KK9Cg0JDQiNCn0JXQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCI0KfQldCi0JjQiyDQldCc0JjQmwor0KDQkNCI0KfQldCi0JjQiyDQk9Ce0IjQmtCeCivQoNCQ0IjQp9CV0KLQmNCLINCY0JLQkNCd0JrQkAor0KDQkNCI0KfQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0IjQp9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCI0KfQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCI0KfQldCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0IjQp9CV0KLQmNCLINCg0KPQltCY0KbQkAor0KDQkNCI0KfQldCi0JjQiyDQodCY0J3QmNCo0JAKK9Cg0JDQiNCn0JXQotCY0Isg0KHQotCe0IjQkNCdCivQoNCQ0IjQp9CV0KLQmNCLINCS0JXQoNCQCivQoNCQ0IjQp9CV0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCI0KfQldCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQiNCn0JXQktCY0Isg0JLQm9CQ0JTQldCi0JAKK9Cg0JDQiNCn0JjQiyDQk9Cg0JPQkAor0KDQkNCI0KfQmNCLINCf0JDQktCb0JUKK9Cg0JDQiNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQiNCo0JjQiyDQkNCd0ILQkAor0KDQkNCI0KjQmNCLINCU0JDQndCY0KbQkAor0KDQkNCI0KjQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQiNCo0JjQiyDQmNCb0JjQiNCQCivQoNCQ0IjQqNCY0Isg0IjQldCb0JAKK9Cg0JDQiNCo0JjQiyDQndCQ0JTQkAor0KDQkNCI0KjQmNCLINCg0JDQlNCVCivQoNCQ0IjQqNCY0Isg0KHQotCQ0J3QkAor0KDQkNCI0KjQmNCLINCh0KLQkNCd0JrQngor0KDQkNCI0KjQm9CYINCY0JvQntCd0JAKK9Cg0JDQiNCo0JvQmCDQm9CQ0KHQm9CeCivQoNCQ0IjQkNCn0JjQiy3Qp9CQ0J/QkNCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQoNCQ0IjQkNCn0JjQiyDQgtCj0KDQngor0KDQkNCI0JDQp9CY0Isg0ILQo9Cg0J4KK9Cg0JDQiNCQ0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0IjQkNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0IjQkNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCQ0IjQkNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KDQkNCI0JDQp9CY0Isg0JTQnNCY0KLQkNCgCivQoNCQ0IjQkNCn0JjQiyDQlNCj0KjQkNCdCivQoNCQ0IjQkNCn0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCI0JDQp9CY0Isg0JjQm9CY0IjQkAor0KDQkNCI0JDQp9CY0Isg0IjQntCS0JDQnQor0KDQkNCI0JDQp9CY0Isg0JzQmNCb0JDQnQor0KDQkNCI0JDQp9CY0Isg0JzQmNCb0JDQnQor0KDQkNCI0JDQp9CY0Isg0JzQmNCb0JDQnQor0KDQkNCI0JDQp9CY0Isg0J/QldCi0JDQoAor0KDQkNCI0JDQp9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Cg0JDQiNCQ0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQiNCQ0KfQmNCLINCS0JvQkNCU0J4KK9Cg0JDQiNCQ0KfQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCI0JDQp9CY0Isg0JfQntCg0JrQkAor0KDQkNCI0JDQmiDQkdCg0JDQndCa0J4KK9Cg0JDQiNCQ0Jog0JzQmNCb0JXQndCQCivQoNCQ0IjQkNCaINCd0JXQk9Ce0JLQkNCdCivQoNCQ0IjQkNCa0J7QktCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQiNCQ0JrQntCS0JDQpiDQl9Ce0KDQkNCdCivQoNCQ0IjQkdCV0KAg0IjQntCW0JXQpAor0KDQkNCI0JTQkCDQn9CV0KLQkNCgCivQoNCQ0IjQlNCQINCf0JXQotCV0KAKK9Cg0JDQiNCU0JAg0KHQkNCd0JTQmAor0KDQkNCI0JXQktCY0Isg0JrQntCh0KLQkAor0KDQkNCI0JXQktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KDQkNCI0KUg0JTQldCW0JUKK9Cg0JDQiNClINCe0JvQk9CQCivQoNCQ0IjQpSDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0IjQmNCnINCc0JjQm9CQ0J0KK9Cg0JDQiNCY0KfQmNCLINCa0JDQotCQ0JvQmNCdCivQoNCQ0IjQmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCI0JjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQiNCY0Isg0JDQndCa0JjQptCQCivQoNCQ0IjQmNCLINCR0J7QoNCY0KHQkNCSCivQoNCQ0IjQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCQ0IjQmNCLINCU0JXQodCQ0J3QmtCQCivQoNCQ0IjQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cg0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0IjQmNCLINCU0KDQkNCT0JAKK9Cg0JDQiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQiNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCI0JjQiyDQmNCT0IrQkNCiCivQoNCQ0IjQmNCLINCY0KHQkAor0KDQkNCI0JjQiyDQiNCe0JLQkNCdCivQoNCQ0IjQmNCLINCI0J7QktCQ0J0KK9Cg0JDQiNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KDQkNCI0JjQiyDQmtCe0JLQmNCd0JrQkAor0KDQkNCI0JjQiyDQmtCg0JjQodCi0JjQndCQCivQoNCQ0IjQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCI0JjQiyDQm9Cj0JrQkAor0KDQkNCI0JjQiyDQnNCY0JvQkNCdCivQoNCQ0IjQmNCLINCc0JjQm9CV0J3QkAor0KDQkNCI0JjQiyDQnNCY0JvQmtCQCivQoNCQ0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0IjQmNCLINCc0JjQntCc0JjQoAor0KDQkNCI0JjQiyDQndCQ0JTQkAor0KDQkNCI0JjQiyDQndCQ0JTQkAor0KDQkNCI0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQiNCY0Isg0J/QldCg0JrQkAor0KDQkNCI0JjQiyDQn9CV0KLQkNCgCivQoNCQ0IjQmNCLINCg0JDQlNCVCivQoNCQ0IjQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQiNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQiNCY0Isg0KDQo9CW0JAKK9Cg0JDQiNCY0Isg0KHQm9CQ0JLQmtCQCivQoNCQ0IjQmNCLINCh0J3QldCW0JDQndCQCivQoNCQ0IjQmNCLINCh0J/QkNCh0J7QiNCVINCU0KAKK9Cg0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQiNCY0Isg0JLQldCb0JjQndCa0JAKK9Cg0JDQiNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0IjQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQiNCY0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCQ0IjQmNCd0JDQpi3QkdCj0JrQo9Cg0J7QkiDQlNCg0JDQk9CQ0J3QkAor0KDQkNCI0JjQndCQ0KYg0J3QldCd0JDQlAor0KDQkNCI0JjQndCQ0KYg0KHQktCV0KLQntCX0JDQoAor0KDQkNCI0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cg0JDQiNCa0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQiNCa0J7QkiDQkdCe0JPQlNCQ0J0g0JTQoAor0KDQkNCI0JrQntCSINCR0J7QoNCY0JLQntCICivQoNCQ0IjQmtCe0JIg0JTQldCh0JDQndCa0JAKK9Cg0JDQiNCa0J7QkiDQlNCg0JDQk9CY0IsKK9Cg0JDQiNCa0J7QkiDQlNCj0KjQkNCdCivQoNCQ0IjQmtCe0JIg0JjQodCY0JTQntCgCivQoNCQ0IjQmtCe0JIg0JjQktCQ0J0KK9Cg0JDQiNCa0J7QkiDQmNCS0JDQnQor0KDQkNCI0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQoNCQ0IjQmtCe0JIg0JzQkNCg0JrQngor0KDQkNCI0JrQntCSINCc0JjQm9CQ0J0KK9Cg0JDQiNCa0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCI0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQoNCQ0IjQmtCe0JIg0JzQm9CQ0JTQldCdINCU0JjQn9CbINCY0J3Qkwor0KDQkNCI0JrQntCSINCc0J7QnNCY0KAKK9Cg0JDQiNCa0J7QkiDQnNCe0JzQmNCgCivQoNCQ0IjQmtCe0JIg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQmtCe0JIg0J/QldCi0JDQoAor0KDQkNCI0JrQntCSINCg0JDQiNCa0J4KK9Cg0JDQiNCa0J7QkiDQoNCQ0KLQmNCc0JjQoAor0KDQkNCI0JrQntCSINCh0JDQktCQCivQoNCQ0IjQmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0IjQmtCe0JIg0JLQldCh0J3QkAor0KDQkNCI0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQiNCa0J7QkiDQktCj0JrQkNCo0JjQnQor0KDQkNCI0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQkNCI0JrQntCS0JjQiyDQltCY0JLQkNCdINCU0KAKK9Cg0JDQiNCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQoNCQ0IjQmtCe0JLQmNCLINCR0JvQkNCT0KPQotCY0J0KK9Cg0JDQiNCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cg0JDQiNCa0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KDQkNCI0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0JTQkNCc0IrQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQoNCQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0JjQktCeCivQoNCQ0IjQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQm9CY0IsKK9Cg0JDQiNCa0J7QktCY0Isg0JzQmNCJ0JrQngor0KDQkNCI0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQoNCQ0IjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCI0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0IjQmtCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0KDQkNCi0JrQngor0KDQkNCI0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0KDQkNCI0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cg0JDQiNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCh0KLQntCI0JAKK9Cg0JDQiNCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0IjQmtCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQoNCQ0IjQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQiNCa0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQiNCa0J7QktCY0Isg0JLQmNCU0J7QodCQ0JIKK9Cg0JDQiNCa0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQoNCQ0IjQm9CY0Isg0JzQmNCb0JrQkAor0KDQkNCI0JvQmNCLINCd0JXQktCV0J3QmtCQCivQoNCQ0IjQnNCe0JLQodCa0JAg0IjQldCb0JfQkAor0KDQkNCI0J3QmNCLINCU0KDQkNCT0JDQnQor0KDQkNCI0J3QmNCLINCd0J7QktCQ0JoKK9Cg0JDQiNCd0JjQndCT0JXQoCDQiNCe0JbQldCkCivQoNCQ0IjQndCe0JLQmNCLINCQ0JvQntCI0JcKK9Cg0JDQiNCd0J7QktCY0Isg0JHQm9CQ0JYKK9Cg0JDQiNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0IjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQiNCd0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KDQkNCI0J3QntCS0JjQiyDQndCQ0JTQkAor0KDQkNCI0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KDQkNCI0J3Qn9Cg0JXQpdCiINCS0JXQoNCQCivQoNCQ0IjQotCQINCY0KjQotCS0JDQnQor0KDQkNCI0KLQkCDQnNCQ0KDQmNCI0JAKK9Cg0JDQiNCi0JAg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQotCV0J3QkdCQ0KUg0JXQm9CV0JzQmNCgCivQoNCQ0IjQotCV0KAg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQiNCi0JXQoCDQl9Ce0JvQotCQ0J0KK9Cg0JDQmiDQkNCd0JjQptCQCivQoNCQ0Jog0JzQkNCg0JjQiNCQCivQoNCQ0Jog0J3QmNCa0J7Qm9CQCivQoNCQ0Jog0JLQldCb0JjQkdCe0KAKK9Cg0JDQmtCo0JDQitCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQmtCQ0KEg0ILQntCg0ILQlQor0KDQkNCa0JDQoSDQoNCQ0JTQntCI0JrQkAor0KDQkNCa0JDQl9Ce0JIg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQmtCV0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQmtCY0Isg0JbQkNCg0JrQngor0KDQkNCa0JjQiyDQltCY0JLQmtCQCivQoNCQ0JrQmNCLINCW0JjQktCa0J4KK9Cg0JDQmtCY0Isg0ILQntCg0ILQlQor0KDQkNCa0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JrQmNCLINCC0J7QoNCC0JUKK9Cg0JDQmtCY0Isg0ILQo9Cg0JAKK9Cg0JDQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQmtCY0Isg0JDQndCC0JXQm9CY0IjQkAor0KDQkNCa0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCa0JjQiyDQkNCd0JDQodCi0JDQodCY0IjQkAor0KDQkNCa0JjQiyDQkNCd0JAKK9Cg0JDQmtCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cg0JDQmtCY0Isg0JHQntCW0J4KK9Cg0JDQmtCY0Isg0JHQntCT0JTQkNCd0JrQkAor0KDQkNCa0JjQiyDQkdCe0KDQngor0KDQkNCa0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQoNCQ0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCa0JjQiyDQkdCg0JDQndCa0JAKK9Cg0JDQmtCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JrQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCQ0JrQmNCLINCU0J7QnNCY0J3QmtCQCivQoNCQ0JrQmNCLINCU0KDQkNCT0JDQndCQCivQoNCQ0JrQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCa0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCa0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JPQkNCS0KDQkAor0KDQkNCa0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Cg0JDQmtCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQmtCY0Isg0JPQoNCj0IjQkAor0KDQkNCa0JjQiyDQmNCS0JDQnQor0KDQkNCa0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCa0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JrQmNCLINCI0J7QktCQ0J0KK9Cg0JDQmtCY0Isg0IjQntCS0JDQnQor0KDQkNCa0JjQiyDQiNCe0JLQmNCm0JAKK9Cg0JDQmtCY0Isg0JrQkNCi0JjQptCQCivQoNCQ0JrQmNCLINCa0JvQldCc0JXQndCiCivQoNCQ0JrQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQmtCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JrQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCa0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQqNCQINCU0KAg0JvQldCa0JDQoAor0KDQkNCa0JjQiyDQidCj0JHQmNCo0JAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCa0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JrQmNCLINCJ0KPQkdCeCivQoNCQ0JrQmNCLINCc0JDQotCY0IjQkAor0KDQkNCa0JjQiyDQnNCY0JvQkNCd0JrQkAor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JrQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCa0JjQiyDQnNCY0JvQmNCd0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KDQkNCa0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCa0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCa0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCa0JjQiyDQnNCY0JvQmtCQCivQoNCQ0JrQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQmtCY0Isg0JzQmNCg0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQmtCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JrQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JDQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9Cg0JDQmtCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQmtCY0Isg0J3QldCd0JDQlAor0KDQkNCa0JjQiyDQndCV0J3QkNCUCivQoNCQ0JrQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCa0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQmtCY0Isg0J3QntCS0JDQmgor0KDQkNCa0JjQiyDQntCR0KDQkNCUCivQoNCQ0JrQmNCLINCf0JDQiNCQCivQoNCQ0JrQmNCLINCf0JDQndCVCivQoNCQ0JrQmNCLINCf0JDQktCb0JUKK9Cg0JDQmtCY0Isg0J/QldCi0JDQoAor0KDQkNCa0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JrQmNCLINCf0KDQldCU0KDQkNCTCivQoNCQ0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCLINCg0JDQiNCa0J4KK9Cg0JDQmtCY0Isg0KDQkNCI0JrQngor0KDQkNCa0JjQiyDQoNCj0JbQmNCm0JAKK9Cg0JDQmtCY0Isg0KHQkNCS0JAKK9Cg0JDQmtCY0Isg0KHQm9CQ0JLQmtCQCivQoNCQ0JrQmNCLINCh0JvQkNCS0JrQngor0KDQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCa0JjQiyDQodCc0JjQidCQ0J3QkAor0KDQkNCa0JjQiyDQodCe0KTQmNCI0JAKK9Cg0JDQmtCY0Isg0KHQotCQ0JzQldCd0JrQkAor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQoNCQ0JrQmNCLINCh0KLQldCS0JDQnQor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JrQmNCLINCh0KLQldCS0JDQnQor0KDQkNCa0JjQiyDQodCi0JXQktCY0KbQkAor0KDQkNCa0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQoNCQ0JrQmNCLINCh0KLQntCI0JDQnQor0KDQkNCa0JjQiyDQodCS0JXQotCe0JzQmNCgCivQoNCQ0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQmtCY0Isg0KLQmNCc0JAKK9Cg0JDQmtCY0Isg0KLQntCU0J7QoAor0KDQkNCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JrQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cg0JDQmtCY0Isg0JLQldCb0JXQnNCY0KAKK9Cg0JDQmtCY0Isg0JLQldCg0JAKK9Cg0JDQmtCY0Isg0JLQldCg0JAKK9Cg0JDQmtCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQmtCY0Isg0JfQkNCT0JAKK9Cg0JDQmtCY0Isg0JfQm9CQ0KLQkAor0KDQkNCa0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JrQmNCLINCX0J7QoNCa0JAKK9Cg0JDQmtCY0IvQldCS0JjQiyDQodCi0JDQnNCV0J3QkAor0KDQkNCa0JjQi9CV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0JrQmNCL0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCa0JjQnSDQgtCe0KDQgtCVCivQoNCQ0JrQmNCdINCQ0J3QotCj0J0KK9Cg0JDQmtCY0J0g0JHQntCg0JjQodCb0JDQkgor0KDQkNCa0JjQnSDQk9Ce0IjQmtCeCivQoNCQ0JrQmNCdINCI0JXQm9CY0KbQkAor0KDQkNCa0JjQnSDQiNCj0JvQmNCI0JDQndCQCivQoNCQ0JrQmNCdLdCc0JDQoNCi0JjQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JrQmNCdINCg0JDQlNCe0JLQkNCdCivQoNCQ0JrQmNCi0JAg0JDQndCa0JjQptCQCivQoNCQ0JrQmNCi0JAg0JHQntCW0J4KK9Cg0JDQmtCY0KLQkCDQptCS0JjQiNCQ0J0KK9Cg0JDQmtCY0KLQkCDQptCS0JjQiNCeCivQoNCQ0JrQmNCi0JAg0IjQntCS0J4KK9Cg0JDQmtCY0KLQkCDQidCY0InQkNCd0JAKK9Cg0JDQmtCY0KLQkCDQnNCY0JvQkNCdCivQoNCQ0JrQmNCi0JAg0JzQm9CQ0JTQmNCd0JrQngor0KDQkNCa0JjQotCQINCf0JXQotCQ0KAKK9Cg0JDQmtCY0KLQkCDQodCY0JzQmtCQCivQoNCQ0JrQntCn0JXQktCY0Isg0ILQntCg0ILQlQor0KDQkNCa0J7Qp9CV0JLQmNCLINCR0J7QoNCeCivQoNCQ0JrQntCn0JXQktCY0Isg0JPQoNCj0IjQmNCm0JAKK9Cg0JDQmtCe0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JDQnQor0KDQkNCa0J7Qp9CV0JLQmNCLINCc0JDQoNCa0J4KK9Cg0JDQmtCe0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQmNCb0JjQiNCQCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCa0J7Qp9CV0JLQmNCLINCg0JDQlNCVCivQoNCQ0JrQntCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQmtCe0Kgg0IjQkNCd0J7QqAor0KDQkNCa0J7QqCDQmtCQ0KLQmNCm0JAKK9Cg0JDQmtCe0Kgg0JfQktCe0J3QmNCc0JjQoAor0KDQkNCa0J7QqNCYINCd0JDQlNCQCivQoNCQ0JrQntCo0Jgg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0JrQntCK0JDQpiDQkdCe0JPQntCJ0KPQkQor0KDQkNCa0J7QitCQ0KYg0J/Qo9Cd0JjQqNCQCivQoNCQ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cg0JDQmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQoNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KDQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JrQntCS0JjQiyDQntCh0KLQntCI0JAKK9Cg0JDQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JrQntCS0JjQiyDQoNCQ0KLQmtCeCivQoNCQ0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KDQkNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KDQmtCQCivQoNCQ0JrQntCS0JjQiyDQktCb0JDQlNCeCivQoNCQ0JrQo9Co0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JvQldCi0JjQiyDQltCY0JLQmtCQCivQoNCQ0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JvQldCi0JjQiyDQgtCj0KDQkAor0KDQkNCb0JXQotCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQm9CV0KLQmNCLINCQ0J3QkAor0KDQkNCb0JXQotCY0Isg0JHQntCT0JTQkNCdCivQoNCQ0JvQldCi0JjQiyDQlNCe0JHQoNCY0KbQkAor0KDQkNCb0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JvQldCi0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JvQldCi0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQm9CV0KLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cg0JDQm9CV0KLQmNCLINCc0JDQiNCQCivQoNCQ0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JvQldCi0JjQiyDQnNCY0JvQntCoCivQoNCQ0JvQldCi0JjQiyDQnNCY0JvQntCoCivQoNCQ0JvQldCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCb0JXQotCY0Isg0JzQmNCg0JrQngor0KDQkNCb0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCb0JXQotCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JvQldCi0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JvQldCi0JjQiy3QodCQ0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCb0JXQotCY0Ist0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQm9CV0KLQmNCLINCS0JXQidCa0J4KK9Cg0JDQm9CV0KLQmNCLINCS0JXQoNCQCivQoNCQ0JvQldCi0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JvQldCi0JjQiyDQl9Ce0KDQmNCm0JAKK9Cg0JDQm9CV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCQ0JvQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JvQmNCLINCR0KDQkNCd0JrQngor0KDQkNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQkNCb0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JvQmNCLINCc0JDQoNCY0IjQkAor0KDQkNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQm9CY0Isg0JzQmNCb0JUKK9Cg0JDQm9CY0Isg0JzQntCc0JjQoNCa0JAKK9Cg0JDQm9CY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JvQmNCLINCh0KLQldCS0JAKK9Cg0JDQidCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQidCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cg0JDQidCY0Isg0JTQo9Co0JDQnQor0KDQkNCJ0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCc0JDQpyDQkNCd0JjQptCQCivQoNCQ0JzQkNCnINCY0JLQkNCdCivQoNCQ0JzQkNCnINCI0KPQm9CY0IjQkNCdCivQoNCQ0JzQkNCnINCb0JXQntCd0JAKK9Cg0JDQnNCQ0Kcg0InQo9CR0J7QnNCY0KAKK9Cg0JDQnNCQ0Kcg0InQo9CR0J7QnNCY0KAKK9Cg0JDQnNCQ0Kcg0InQo9CR0J7QnNCY0KAKK9Cg0JDQnNCQ0Kcg0JzQkNCg0JjQiNCQCivQoNCQ0JzQkNCnINCc0JjQpdCQ0IjQm9CeCivQoNCQ0JzQkNCnINCc0JjQpdCQ0IjQm9CeCivQoNCQ0JzQkNCnINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQnNCQ0Kcg0J3QkNCU0JAKK9Cg0JDQnNCQ0Kcg0J3QkNCi0JDQm9CY0IjQkAor0KDQkNCc0JDQpyDQn9CV0KLQkNCgCivQoNCQ0JzQkNCnINCh0JjQnNCV0J7QnQor0KDQkNCc0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JzQkNCnINCX0JTQldCd0JrQkAor0KDQkNCc0JDQiyDQnNCY0JvQldCS0JAKK9Cg0JDQnNCQ0JTQkNCd0Jgg0KDQntCX0JAKK9Cg0JDQnNCQ0JTQkNCd0J7QkiDQnNCj0JzQo9CU0JjQiNCQCivQoNCQ0JzQkNCU0JDQndCe0JLQmNCLINCC0JXQnNCQ0IkKK9Cg0JDQnNCQ0JTQkNCd0J7QktCY0Isg0IjQkNCa0J7Qkgor0KDQkNCc0JDQlNCQ0J3QntCS0KHQmtCYINCd0JDQlNCQCivQoNCQ0JzQkNCU0JDQndCe0JLQodCa0Jgg0J3QldCU0JXQidCa0J4KK9Cg0JDQnNCQ0JTQkNCd0KHQmtCYINCU0KDQkNCT0JjQiwor0KDQkNCc0JDQlNCQ0J3QodCa0Jgg0IjQldCb0JXQndCQCivQoNCQ0JzQkNCU0JDQndCh0JrQmCDQnNCY0JvQmNCd0JrQkAor0KDQkNCc0JDQl9CQ0J3QntCSINCS0JjQmtCi0J7QoAor0KDQkNCc0JjQiyDQgtCj0JrQkAor0KDQkNCc0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCc0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JzQmNCLINCb0KPQmtCQCivQoNCQ0JzQmNCLINCb0KPQmtCQCivQoNCQ0JzQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0J7QldCmCivQoNCQ0JzQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCc0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCc0JjQiyDQodCi0J7QiNCQ0J0KK9Cg0JDQnNCY0Isg0JLQldCb0JjQlNCQCivQoNCQ0JzQidCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCc0InQkNCaINCX0JvQkNCi0JrQngor0KDQkNCd0KfQmNCLINCo0JjQnNCVCivQoNCQ0J3Qp9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQndCn0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQndCn0JjQiyDQiNCe0KDQlNCQ0J0KK9Cg0JDQndCn0JjQiyDQnNCY0JvQntCoCivQoNCQ0J3Qp9CY0Isg0KDQkNCd0JrQngor0KDQkNCd0ILQldCb0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCd0ILQldCb0J7QktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCJ0KPQkdCY0KjQkAor0KDQkNCd0ILQldCb0J7QktCY0Isg0InQo9CR0J7QlNCg0JDQkwor0KDQkNCd0ILQldCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCd0ILQldCb0J7QktCY0Isg0J7QkdCg0JDQlAor0KDQkNCd0ILQldCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KDQkNCd0ILQldCb0J7QktCY0Isg0JfQntCg0JDQnQor0KDQkNCd0JTQldCJINCC0J7QoNCC0JUKK9Cg0JDQndCU0JXQiSDQgtCj0KDQgtCY0J3QmtCQCivQoNCQ0J3QlNCV0Ikg0JvQkNCX0JDQoAor0KDQkNCd0JTQldCJINCe0JvQmNCS0JXQoNCQCivQoNCQ0J3QlNCV0Ikg0J/QldCi0JDQoAor0KDQkNCd0JTQldCJINCh0KLQldCS0JDQnQor0KDQkNCd0JTQldCJINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQndCT0JXQm9Ce0JIg0JTQmNCc0JjQotCQ0KAKK9Cg0JDQndCT0JXQm9Ce0JIg0KHQotCV0JLQkNCdCivQoNCQ0J3Qk9CV0JvQntCSINCh0KLQldCS0JDQnQor0KDQkNCd0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQndCY0J0g0IjQntCS0JDQnQor0KDQkNCd0JjQnSDQm9CQ0JfQkNCgCivQoNCQ0J3QmNCh0JDQkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0JbQmNCS0JrQngor0KDQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCg0ILQlQor0KDQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCg0ILQlQor0KDQkNCd0JjQodCQ0JLQidCV0JIg0JPQntCg0JTQkNCd0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9CY0KbQkAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0JzQmNCb0J7QqAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0J/QkNCI0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCg0JDQlNCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQoNCQ0JTQnNCY0JvQkAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQndCY0KHQkNCS0InQldCSINCh0JvQkNCS0J7QidCj0JEKK9Cg0JDQndCY0KHQkNCS0InQldCSINCh0KLQldCS0JDQnQor0KDQkNCd0JjQodCQ0JLQidCV0JIg0KLQmNCI0JDQndCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JbQkNCg0JrQngor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCW0JXQidCa0J4KK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQkdCe0JPQo9Cc0JjQm9CQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQm9CQ0JLQmtCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JLQmNCe0JvQldCi0JAKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0J3QmNCh0JvQkNCSLdCb0JDQoNCiWSDQndCQ0JTQkCDQlNCgCivQoNCQ0J3QmNCi0J7QktCY0Isg0JHQntCo0JrQngor0KDQkNCd0JjQotCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQoNCQ0J3QmNCi0J7QktCY0Isg0JTQmNCS0J3QkAor0KDQkNCd0JjQotCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KDQkNCd0JjQotCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCd0JjQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0J3QmNCi0J7QktCY0Isg0JLQldCb0JjQodCb0JDQkgor0KDQkNCd0JrQmNCLINCh0KLQldCS0J4KK9Cg0JDQndCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0J3QmtCe0JIg0JDQndCa0JjQptCQCivQoNCQ0J3QmtCe0JIg0JTQoNCQ0JPQkNCdINCU0KAKK9Cg0JDQndCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0J3QmtCe0JIg0JPQoNCe0JfQlNCQCivQoNCQ0J3QmtCe0JIg0JjQoNCV0J3QkAor0KDQkNCd0JrQntCSINCY0JLQkNCd0JrQkAor0KDQkNCd0JrQntCSINCI0J7QktCQ0J0KK9Cg0JDQndCa0J7QkiDQmtCe0KHQotCQCivQoNCQ0J3QmtCe0JIg0InQmNCJ0JDQndCQCivQoNCQ0J3QmtCe0JIg0InQo9CR0JjQptCQCivQoNCQ0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQoNCQ0J3QmtCe0JIg0JzQmNCb0JDQnQor0KDQkNCd0JrQntCSINCc0JjQm9CY0JLQntCICivQoNCQ0J3QmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCd0JrQntCSINCd0JXQlNCV0InQmtCeCivQoNCQ0J3QmtCe0JIg0J3QldCU0JXQidCa0J4KK9Cg0JDQndCa0J7QkiDQntCb0JPQmNCm0JAKK9Cg0JDQndCa0J7QkiDQn9CV0KLQkNCgCivQoNCQ0J3QmtCe0JIg0KDQkNCU0JjQodCb0JDQkgor0KDQkNCd0JrQntCSINCg0JDQlNCc0JjQm9CQCivQoNCQ0J3QmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCa0J7QkiDQotCQ0J3QkNCh0JjQiNCVCivQoNCQ0J3QmtCe0JIg0JfQntCg0JAKK9Cg0JDQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0KDQkNCd0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkCDQlNCgCivQoNCQ0J3QmtCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQoNCQ0J3QmtCe0JLQmNCLINCQ0J3QmtCQCivQoNCQ0J3QmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Cg0JDQndCa0J7QktCY0Isg0JHQntCI0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KDQkNCd0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0J3QmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCQ0J3QmtCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQoNCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0J4KK9Cg0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cg0JDQndCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQmNCg0JXQndCQCivQoNCQ0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0J3QmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cg0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCd0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQkNCd0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCd0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0KDQkNCd0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQoNCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KDQkNCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0J3QmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cg0JDQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0KDQkNCd0J7Qk9CQ0IjQldCmINCY0JLQkNCdCivQoNCQ0J7QndCY0Isg0ILQntCg0ILQlQor0KDQkNCe0J3QmNCLINCY0JrQntCd0JjQiNCQCivQoNCQ0J7QndCY0Isg0IjQkNCd0JrQngor0KDQkNCe0J3QmNCLINCg0JDQlNCV0J3QmtCeCivQoNCQ0J7QndCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cg0JDQntCd0JjQiyDQktCj0JrQntCb0JAKK9Cg0JDQn9Cn0J4g0JrQkNCi0JDQm9CY0J0KK9Cg0JDQn9CQ0JjQiyDQlNCV0IjQkNCdCivQoNCQ0J/QkNCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0KDQkNCf0JDQmNCLINCg0JDQlNCV0J3QmtCQCivQoNCQ0J/QkNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0J/QkNCI0JjQiyDQkNCd0JDQnNCQ0KDQmNCI0JAKK9Cg0JDQn9CQ0IjQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cg0JDQn9CQ0IjQmNCLINCU0KPQqNCa0J4KK9Cg0JDQn9CQ0IjQmNCLINCc0JjQm9CQ0J0g0JDQlNCS0J7QmtCQ0KIKK9Cg0JDQn9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQn9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQn9CQ0IjQmNCLINCg0JDQlNCe0IjQkAor0KDQkNCf0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0J/QkNCI0JjQiyDQotCQ0JzQkNCg0JAKK9Cg0JDQn9CY0Isg0JHQntCg0JUKK9Cg0JDQn9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCf0JjQiyDQlNCj0KjQkNCd0JrQkAor0KDQkNCf0JjQiyDQiNCe0JLQkNCdCivQoNCQ0J/QmNCLINCI0J7QktCQ0J0KK9Cg0JDQn9CY0Isg0JzQmNCb0JDQnQor0KDQkNCf0JjQiyDQndCQ0JTQkAor0KDQkNCf0JjQiyDQndCV0J3QkNCUCivQoNCQ0J/QmNCLINCg0JDQlNCVCivQoNCQ0J/QmNCLINCg0KPQqNCa0J4KK9Cg0JDQn9CeINCh0KLQiNCV0J/QkNCdCivQoNCQ0J/QntCi0Jgg0JjQqNCi0JLQkNCdCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQkdCe0KjQmtCeCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0JDQodCf0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCh0KLQkNCS0JDQpiDQn9CV0KLQkNCgCivQoNCQ0KHQotCY0Jog0ILQntCg0ILQlQor0KDQkNCh0KLQntCS0JDQpiDQgtCj0KDQngor0KDQkNCh0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0KHQotCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCh0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0KHQotCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCh0KLQntCS0JjQiy3Qn9Cb0JjQktCV0JvQmNCLINCU0JXQodCQ0J3QmtCQCivQoNCQ0KHQotCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0KHQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQodCi0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0KHQotCe0JLQmNCLINCS0JXQoNCQCivQoNCQ0KIg0KTQldCg0JXQndCmCivQoNCQ0KIg0KTQoNCQ0IrQkAor0KDQkNCiINCI0JDQmtCe0JEKK9Cg0JDQoiDQiNCe0KHQmNCfCivQoNCQ0KLQkNCI0JDQpiDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9Cg0JDQotCT0JXQkdCV0KAg0IjQo9Cb0JjQiNCQCivQoNCQ0KLQk9CV0JHQldCgINCb0JDQodCb0J4KK9Cg0JDQotCY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cg0JDQotCY0Isg0JHQntCg0JAKK9Cg0JDQotCY0Isg0JTQo9Co0JDQnQor0KDQkNCi0JrQldCb0JjQiyDQnNCY0JvQkNCdCivQoNCQ0KLQmtCe0JIg0JbQmNCS0JrQngor0KDQkNCi0JrQntCSINCC0J7QoNCC0JUKK9Cg0JDQotCa0J7QkiDQkNCm0JAKK9Cg0JDQotCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0KDQkNCi0JrQntCSINCm0JXQptCY0JvQmNCI0JAKK9Cg0JDQotCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cg0JDQotCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0KDQkNCi0JrQntCSINCU0KDQkNCT0JjQitCQCivQoNCQ0KLQmtCe0JIg0JTQo9Co0JDQndCa0JAKK9Cg0JDQotCa0J7QkiDQlNCj0KjQkNCdCivQoNCQ0KLQmtCe0JIg0IjQldCb0JXQndCQCivQoNCQ0KLQmtCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0KDQkNCi0JrQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JDQotCa0J7QkiDQm9CV0J/QntCh0JDQktCQCivQoNCQ0KLQmtCe0JIg0JzQmNCL0J4KK9Cg0JDQotCa0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCi0JrQntCSINCc0JjQm9CV0J3QmtCeCivQoNCQ0KLQmtCe0JIg0JzQmNCb0JjQptCQCivQoNCQ0KLQmtCe0JIg0J3QldCd0JDQlAor0KDQkNCi0JrQntCSINCd0JXQndCQ0JQKK9Cg0JDQotCa0J7QkiDQn9CQ0JLQm9CVCivQoNCQ0KLQmtCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQotCa0J7QkiDQoNCQ0JTQlQor0KDQkNCi0JrQntCSINCg0JDQlNCY0JLQntCICivQoNCQ0KLQmtCe0JIg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQotCa0J7QkiDQoNCj0JbQmNCm0JAKK9Cg0JDQotCa0J7QkiDQodCQ0JLQmtCQCivQoNCQ0KLQmtCe0JIg0KHQnNCY0InQkNCd0JAKK9Cg0JDQotCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0KDQkNCi0JrQntCSINCh0KLQkNCd0JjQodCb0JDQkgor0KDQkNCi0JrQntCSINCS0JXQoNCQCivQoNCQ0KLQmtCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCi0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQotCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KLQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0KDQkNCi0JrQntCSINCS0KPQiNCY0KbQkAor0KDQkNCj0Kgg0JrQm9CQ0KPQlNCY0IjQkAor0KDQkNCj0Kgg0KDQmNCl0JDQoNCUCivQoNCQ0KPQqNCV0J3QkdCV0KDQk9CV0KAg0JzQkNCg0KLQmNCdCivQoNCQ0KPQqNCa0Jgg0ILQntCg0ILQlQor0KDQkNCj0KjQmtCYINCQ0J3Qk9CV0JvQmNCd0JAKK9Cg0JDQo9Co0JrQmCDQlNCQ0J3QmNCb0J4KK9Cg0JDQo9Co0JrQmCDQidCY0InQkNCd0JAKK9Cg0JDQo9Co0JrQmCDQnNCY0JvQkNCd0JAKK9Cg0JDQo9Co0JrQmCDQnNCY0JvQntCoCivQoNCQ0KPQodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQo9Ch0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQo9CX0JAg0J/QkNCb0JrQngor0KDQkNCS0JDQiNCY0Isg0ILQo9Cg0J4KK9Cg0JDQktCQ0KHQmCDQidCj0JHQmNCm0JAKK9Cg0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQoNCQ0JLQm9CY0Ist0JHQkNCK0JDQpiDQodCd0JXQltCQ0J3QkAor0KDQkNCS0JvQmNCLINCf0JXQiNCeCivQoNCQ0JLQm9CY0Isg0JLQmNCU0JAKK9Cg0JDQktCb0JjQiNCQINCU0KDQkNCT0JDQnQor0KDQkNCX0JTQldCS0KjQldCaINCh0KLQntCI0JDQndCa0JAKK9Cg0JDQl9CY0Isg0I/QldCc0JDQmwor0KDQkNCX0JzQntCS0KHQmtCYINCd0JjQmtCe0JvQkAor0KDQkNCX0KPQnNCV0J3QmNCLLdCa0J7QotCg0J7QqNCQ0J0g0JzQmNCb0JXQndCQCivQoNCV0KfQldCYINCY0JvQntCd0JrQkAor0KDQldCn0JrQniDQmNCb0JXQqAor0KDQldCo0IvQkNCd0KHQmtCYINCR0J7QqNCa0J4KK9Cg0JXQqNCL0JDQndCh0JrQmCDQkdCe0JPQlNCQ0J0KK9Cg0JXQqNCL0JDQndCh0JrQmCDQktCV0KDQkAor0KDQldCo0JXQotCQ0KAg0JDQndCi0JUKK9Cg0JXQqNCV0KLQkNCgINCh0KLQkNCd0JAKK9Cg0JXQqNCV0KLQkNCg0J7QktCY0Isg0IjQntCS0JDQnQor0KDQldCo0JjQotCYINCC0J7QoNCC0JUKK9Cg0JXQqNCK0JDQmiDQkNCd0JTQoNCY0IjQkAor0KDQldCo0IrQkNCaINCb0JDQodCb0J4KK9Cg0JXQqNCK0JDQmiDQodCi0JXQktCQ0J0KK9Cg0JXQqNCK0JDQmiDQl9Ce0KDQmNCm0JAKK9Cg0JXQltCK0JDQmiDQm9CQ0KHQm9CeCivQoNCV0JbQo9CaINCI0J7QodCY0J8KK9Cg0JXQgtCV0J8g0JTQoNCQ0KjQmtCeCivQoNCV0ILQldCf0Jgg0I/QldCJ0JDQnQor0KDQldCC0JXQn9CYINCc0JjQm9CQ0JjQnAor0KDQldCC0JXQn9Ce0JLQmNCLINCQ0JvQmNCI0JAKK9Cg0JXQkdCQINCR0JvQkNCT0J7QiNCVCivQoNCV0JHQkCDQmNCT0J7QoAor0KDQldCR0JAg0JjQk9Ce0KAKK9Cg0JXQkdCY0Isg0JHQntCT0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0KDQldCR0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JXQkdCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JXQkdCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JXQkdCY0Isg0KHQmNCc0JXQntCdCivQoNCV0JHQmNCLINCh0JjQnNCeCivQoNCV0JHQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0KDQldCR0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCV0JHQoNCY0J3QkCDQmtCQ0KLQkNCg0JjQndCQCivQoNCV0I/QkCDQmNCR0KDQkNCl0JjQnAor0KDQldCP0JXQmiDQiNCe0JLQkNCdCivQoNCV0I/QldCfINCI0KPQodCd0JjQiNCQCivQoNCV0I/QldCf0J7QkiDQqNCV0JLQmtCY0J0KK9Cg0JXQj9CV0J/QntCSINCa0JDQnNCR0JXQoAor0KDQldCU0JUg0KDQo9CU0J7Qm9CkCivQoNCV0JTQmNCTINCS0JjQm9CY0JwKK9Cg0JXQlNCb0Jgg0ILQntCg0ILQlQor0KDQldCU0JvQmCDQnNCQ0KDQmNCI0JAKK9Cg0JXQlNCb0Jgg0JLQldCg0JAKK9Cg0JXQk9CQ0IjQlyDQodCi0JXQktCQ0J0KK9Cg0JXQk9CV0KYg0JXQotCV0JvQmtCQCivQoNCV0JPQldCJ0JDQpiDQidCj0JHQmNCm0JAKK9Cg0JXQk9CV0InQkNCmINCc0JDQoNCQCivQoNCV0JPQldCgINCI0J7QktCQ0J0KK9Cg0JXQk9CbINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JXQk9Ce0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JXQk9Ce0IjQldCS0JjQiyDQnNCb0JDQgtCV0J3QmtCeCivQoNCV0KXQkNCaINCY0JzQoNCVCivQoNCV0KXQkNCaINCb0JDQodCb0J4KK9Cg0JXQpdCQ0Jog0J7Qm9CT0JAKK9Cg0JXQpdCd0JXQoCDQnNCQ0KDQmNCI0JAKK9Cg0JXQpdCd0JXQoCDQodCi0JDQnNCV0J3QmtCQCivQoNCV0JjQndCl0J7Qm9CmINCC0JXQl9CVCivQoNCV0JjQndCl0J7Qm9CmINCC0JXQl9CVCivQoNCV0JjQndCl0J7Qm9CXINCC0JXQl9CVCivQoNCV0JrQkCDQkNCg0JjQpAor0KDQldCa0JAt0JjQktCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cg0JXQmtCV0IvQlSDQqNCQ0J3QlNCe0KAKK9Cg0JXQmtCV0KbQmtCYINCV0JvQldCe0J3QntCg0JAKK9Cg0JXQmtCV0KbQmtCYINCI0J7QltCV0KQKK9Cg0JXQmtCY0Isg0KXQo9Ch0JXQmNCdCivQoNCV0JvQmNCLINCC0J7QoNCC0JUKK9Cg0JXQm9CY0Isg0ILQntCg0ILQlQor0KDQldCb0JjQiyDQlNCQ0KDQmtCeCivQoNCV0JvQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQldCb0JjQiyDQk9Ce0IjQmtCeCivQoNCV0JvQmNCLINCI0J7QktCQ0J0KK9Cg0JXQm9CY0Isg0IjQntCS0JjQptCQCivQoNCV0JvQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQoNCV0JvQmNCLINCJ0KPQkdCQ0J0KK9Cg0JXQm9CY0Isg0JzQmNCb0JDQnQor0KDQldCb0JjQiyDQnNCY0JvQldCd0JrQngor0KDQldCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQldCb0JjQiyDQnNCY0KDQkAor0KDQldCb0JjQiyDQn9CQ0JLQm9CVCivQoNCV0JvQmNCLINCf0JXQotCQ0KAKK9Cg0JXQm9CY0Isg0KDQkNCU0JjQndCa0JAKK9Cg0JXQm9CY0Isg0KHQkNCS0JAKK9Cg0JXQm9CY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KDQldCb0JjQiyDQodCe0KTQmNCI0JAKK9Cg0JXQm9CY0Isg0KHQntCk0JjQiNCQCivQoNCV0JvQmNCLINCh0J/QntCc0JXQndCa0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cg0JXQm9CY0Isg0KHQoNCV0KLQkAor0KDQldCJ0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KDQldCJ0JjQiyDQgtCj0KDQmNCm0JAKK9Cg0JXQidCY0Isg0ILQo9Cg0J4KK9Cg0JXQidCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JXQidCY0Isg0JTQkNCc0IjQkNCd0JrQkAor0KDQldCJ0JjQiyDQlNCQ0J3QmNCb0J4KK9Cg0JXQidCY0Isg0IjQntCS0JDQnQor0KDQldCJ0JjQiyDQidCj0JHQntCc0JjQoAor0KDQldCJ0JjQiyDQnNCQ0KDQkAor0KDQldCJ0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQldCJ0JjQiyDQoNCe0JzQkNCdCivQoNCV0InQmNCLINCh0JvQkNCS0JrQngor0KDQldCJ0JjQiyDQodCc0JjQidCQCivQoNCV0InQmNCLINCh0J3QldCW0JDQndCQCivQoNCV0InQmNCLINCh0KLQldCS0JDQnQor0KDQldCJ0JjQiyDQodCi0JXQktCQCivQoNCV0InQmNCLINCX0JvQkNCi0JrQngor0KDQldCJ0JjQiyDQl9Ce0KDQmtCQCivQoNCV0InQmNCdINCU0KPQqNCQ0J3QmtCQCivQoNCV0InQmNCdINCU0KPQqNCQ0J0KK9Cg0JXQidCY0J0g0JTQo9Co0JDQnQor0KDQldCJ0JjQnSDQmNCT0IrQkNCiINCU0KAKK9Cg0JXQidCY0J0g0JjQm9Ce0J3QkAor0KDQldCJ0JjQnSDQmNCS0JDQnQor0KDQldCJ0JjQnSDQm9CQ0JfQkNCgCivQoNCV0InQmNCdINCb0JXQn9Ce0KHQkNCS0JAKK9Cg0JXQidCY0J0g0JzQkNCg0JjQptCQCivQoNCV0InQmNCdINCc0JjQm9CQ0J0KK9Cg0JXQidCY0J0g0JzQmNCb0JDQnQor0KDQldCJ0JjQnSDQnNCY0JvQmNCm0JAKK9Cg0JXQidCY0J0g0JzQmNCb0JjQktCe0IgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QqAor0KDQldCJ0JjQnSDQnNCY0JvQntCoCivQoNCV0InQmNCdINCc0JjQm9Ce0KgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QqAor0KDQldCJ0JjQnSDQnNCY0JvQntCg0JDQlAor0KDQldCJ0JjQnSDQndCQ0JTQkAor0KDQldCJ0JjQnSDQn9Cg0J7QmtCe0J/QmNCI0JUKK9Cg0JXQidCY0J0g0KDQkNCU0J7QktCQ0J0KK9Cg0JXQidCY0J0g0KHQkNCS0JAKK9Cg0JXQidCY0J0g0KHQmNCc0JAKK9Cg0JXQidCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KDQldCJ0JjQnSDQodCi0JXQktCQ0J0KK9Cg0JXQm9Ce0KLQkCDQoNCj0JTQntCb0KQKK9Cg0JXQnNCV0KbQmtCYINCU0KDQkNCT0KPQotCY0J0KK9Cg0JXQnNCV0KbQmtCYINCf0JXQotCQ0KAKK9Cg0JXQnNCV0JvQmCDQkNCd0KLQntCdCivQoNCV0JzQldCb0Jgg0JvQkNCh0JvQngor0KDQldCc0JXQndCQ0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQldCc0JXQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JXQnNCb0JjQndCT0JXQoCDQoNCe0JHQldCg0KIKK9Cg0JXQndCn0JDQoCDQqNCQ0J3QlNCe0KAKK9Cg0JXQndCn0JDQoCDQotCY0JLQkNCU0JDQoAor0KDQldCd0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCV0J3QlNCj0JvQmNCLINCc0JDQoNCa0J4KK9Cg0JXQndCU0KPQm9CY0Isg0KHQotCe0IjQkNCdCivQoNCV0J/QqNCi0J7QmiDQiNCe0JbQldCkCivQoNCV0J/QkNCo0Jgg0IjQntCh0JjQnwor0KDQldCf0JDQqNCYINCh0KLQldCS0JDQnQor0KDQldCf0JDQpiDQltCj0JbQkNCd0JAKK9Cg0JXQn9CQ0KYg0ILQntCg0ILQlQor0KDQldCf0JDQpiDQkNCd0JAKK9Cg0JXQn9CQ0KYg0JjQodCQCivQoNCV0J/QkNCmINCI0J7QktCQ0J0KK9Cg0JXQn9CQ0KYg0JrQntCS0JjQidCa0JAKK9Cg0JXQn9CQ0KYg0JzQmNCg0J7QodCb0JDQkgor0KDQldCf0JDQpiDQn9CV0KDQmtCY0KbQkAor0KDQldCf0JDQpiDQn9CV0KLQkNCgCivQoNCV0J/QkNCmINCh0JvQkNCS0JrQngor0KDQldCf0JDQpiDQodCi0JDQndCY0KjQkAor0KDQldCf0JDQpiDQktCQ0KHQmNCb0JjQiNCQCivQoNCV0J/QmNCLINCW0JjQktCQ0J0KK9Cg0JXQn9CY0Isg0JTQkNCd0JjQptCQCivQoNCV0J/QmNCLINCV0JzQmNCbCivQoNCV0J/QmNCLINCT0JjQl9CV0JvQkAor0KDQldCf0JjQiyDQmNCS0JDQnQor0KDQldCf0JjQiyDQnNCQ0KDQmtCeCivQoNCV0J/QmNCLINCc0JjQm9CV0J3QkAor0KDQldCf0JjQiyDQnNCY0JvQmtCQCivQoNCV0J/QmNCLINCS0JXQoNCY0KbQkAor0KDQldCf0JjQiyDQl9Ce0KDQkNCdCivQoNCV0KHQkNCdINCQ0J3QkAor0KDQldCh0JDQndCe0JLQmNCLINCQ0J3QmtCQCivQoNCV0KHQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCV0KHQkNCd0J7QktCY0Isg0InQo9CR0J4KK9Cg0JXQodCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KDQldCh0JDQndCe0JLQmNCLINCf0JXQoNCeCivQoNCV0KHQnNCQ0J0g0JfQlNCg0JDQktCa0J4KK9Cg0JXQodCj0JvQntCS0KHQmtCYINCh0KLQntCI0JDQnQor0KDQldCjINCb0JDQktCY0J3QldCbCivQoNCV0JLQldChINCQ0J3QlNCg0JjQiNCQCivQoNCV0JLQmNCUINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JXQl9CQ0J3QptCe0JIg0JrQkNCi0JjQptCQCivQoNCV0JfQldCmINCQ0J3QotCe0J0KK9Cg0JXQl9Cd0JjQp9CV0Jog0JrQkNCg0JvQngor0KDQmNCW0JDQitCYINCY0KDQldCd0JAKK9Cg0JjQgtCY0KfQmtCYINCC0J7QmtCQCivQoNCY0ILQmNCn0JrQmCDQgtCe0KDQgtCVCivQoNCY0ILQmNCn0JrQmCDQnNCY0JvQkNCd0JrQkAor0KDQmNCC0JjQp9Ca0Jgg0JzQmNCb0JDQnQor0KDQmNCC0JjQp9Ca0Jgg0KHQn9Ce0JzQldCd0JrQkAor0KDQmNCC0JjQmi3Qk9Cg0KPQiNCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JjQgtCY0Jot0JPQoNCj0IjQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cg0JjQgtCY0Jot0JPQoNCj0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCY0JHQkNCgINCo0JDQndCU0J7QoAor0KDQmNCR0JDQoCDQkdCV0JvQkCDQlNCgCivQoNCY0JHQkNCgINCY0JzQoNCVCivQoNCY0JHQkNCgINCa0JDQotCY0KbQkAor0KDQmNCR0JDQoNCV0JLQmNCLINCS0JXQoNCQCivQoNCY0JHQkNCg0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQoNCY0JHQkNCg0J7QkiDQodCb0JDQktCY0KbQkAor0KDQmNCR0JjQpyDQoNCj0JbQkAor0KDQmNCR0JjQiyDQp9CV0JTQngor0KDQmNCR0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JjQkdCY0Isg0KTQoNCQ0J3Qpgor0KDQmNCR0JjQiyDQiNCe0JLQkNCdCivQoNCY0JHQmNCLINCc0JjQpdCQ0IjQm9CeCivQoNCY0JHQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQkdCY0Isg0J/QkNCS0J4KK9Cg0JjQkdCY0Isg0J/QldCi0JDQoAor0KDQmNCR0JjQiyDQodCi0JDQndCa0J4KK9Cg0JjQkdCY0Isg0JfQntCg0JjQptCQCivQoNCY0JHQntCS0JjQiyDQkNCc0JDQm9CY0IjQkAor0KDQmNCmINCc0JjQpdCQ0Ikg0JTQmNCf0Jsg0J7QldCmCivQoNCY0KYg0KDQo9CU0J7Qm9CkCivQoNCY0KYg0JLQldCh0JXQm9CY0J0KK9Cg0JjQptCQINCQ0J3QmNCm0JAKK9Cg0JjQptCVINCc0JDQoNCT0JjQotCQCivQoNCY0JPQniDQgtCj0JvQkAor0KDQmNCT0J4g0JvQkNCh0JvQngor0KDQmNCl0JDQmiDQndCQ0J3QlNCe0KAKK9Cg0JjQpdCi0JDQoNCV0KYg0JrQkNCi0JDQoNCY0J3QkAor0KDQmNCI0JDQktCV0KYg0JjQktCQ0J0KK9Cg0JjQmtCV0KAg0JfQktCe0J3QmNCc0JjQoAor0KDQmNCa0JjQiyDQltCV0InQmtCeCivQoNCY0JrQmNCLINCU0KDQkNCT0JjQptCQCivQoNCY0JrQmNCLINCc0JjQm9CQ0JTQmNCdCivQoNCY0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCY0Jsg0J/QkNCbCivQoNCY0JvQkNCaINCc0JjQm9Ce0JzQmNCgCivQoNCY0JvQmtCVINCg0J7QkdCV0KDQogor0KDQmNCc0KjQndCQ0IjQlNCV0KAg0KDQntCR0JXQoNCiCivQoNCY0JzQkNCmINCI0J7QodCY0J8KK9Cg0JjQnNCQ0J0g0JXQk9Ce0J0g0JTQoAor0KDQmNCc0JDQoCDQm9CV0J7QndCQCivQoNCY0JzQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JjQnNCh0JrQmCDQltCQ0KDQmtCeCivQoNCY0JzQodCa0Jgg0JbQkNCg0JrQngor0KDQmNCc0KHQmtCYINCW0JDQoNCa0J4KK9Cg0JjQnNCh0JrQmCDQltCQ0KDQmtCeCivQoNCY0JzQodCa0Jgg0ILQntCa0JAKK9Cg0JjQnNCh0JrQmCDQkdCY0KHQldCg0JrQkAor0KDQmNCc0KHQmtCYINCR0JjQodCV0KDQmtCQCivQoNCY0JzQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCY0JzQodCa0Jgg0JHQoNCQ0J3QmtCQCivQoNCY0JzQodCa0Jgg0JHQoNCQ0J3QmtCeCivQoNCY0JzQodCa0Jgg0IjQkNCh0JzQmNCd0JAKK9Cg0JjQnNCh0JrQmCDQiNCV0JvQldCd0JAKK9Cg0JjQnNCh0JrQmCDQnNCY0JvQkNCdCivQoNCY0JzQodCa0Jgg0JzQmNCb0JjQptCQCivQoNCY0JzQodCa0Jgg0J3QkNCi0JDQm9CY0IjQkAor0KDQmNCc0KHQmtCYINCd0J7QktCQ0JoKK9Cg0JjQnNCh0JrQmCDQodCQ0JLQkAor0KDQmNCc0KHQmtCYINCh0JDQktCQCivQoNCY0JzQodCa0Jgg0KHQnNCY0InQkAor0KDQmNCc0KHQmtCYINCh0JzQmNCJ0JAKK9Cg0JjQnNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cg0JjQoSDQqNCQ0J3QlNCe0KAKK9Cg0JjQoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNChINCU0KDQkNCT0JjQitCQCivQoNCY0KEg0JTQo9Co0JrQngor0KDQmNChINCT0JXQl9CQCivQoNCY0KEg0J3QldCU0JXQidCa0J4KK9Cg0JjQoSDQodCi0JXQktCQ0J0KK9Cg0JjQoSDQotCQ0IrQkAor0KDQmNChINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCY0KHQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KDQmNCh0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JjQodCi0JAg0JbQldCJ0JrQkAor0KDQmNCh0KLQkNCd0J7QktCY0Isg0KbQktCV0KLQmNCdCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KDQmNCh0KLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KDQmNCh0KLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQktCe0IjQmNCc0JjQoAor0KDQmNCh0KLQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JjQodCi0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JjQodCi0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JjQodCi0JjQiyDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0KDQmNCh0KLQmNCLINCC0J7QoNCC0JUKK9Cg0JjQodCi0JjQiyDQgtCe0KDQgtCVCivQoNCY0KHQotCY0Isg0ILQntCg0ILQlQor0KDQmNCh0KLQmNCLINCC0KPQiNCQCivQoNCY0KHQotCY0Isg0ILQo9Cg0ILQkAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCY0Isg0JDQm9CV0JrQodCQCivQoNCY0KHQotCY0Isg0JDQndCU0KDQmNCI0JAKK9Cg0JjQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQmNCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQoNCY0KHQotCY0Isg0JHQntCg0JAKK9Cg0JjQodCi0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JHQoNCQ0J3QmtCeCivQoNCY0KHQotCY0Isg0KbQktCI0JXQotCQ0J3QmtCQCivQoNCY0KHQotCY0Isg0JTQkNCd0JjQm9CeCivQoNCY0KHQotCY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JjQodCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JjQodCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JjQodCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JjQodCi0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQmNCh0KLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQntCI0JvQkAor0KDQmNCh0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCY0KHQotCY0Isg0JTQo9Co0JDQnSDQlNCgCivQoNCY0KHQotCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JjQodCi0JjQiyDQlNCj0KjQkNCdCivQoNCY0KHQotCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0KLQmNCLINCT0JDQktCg0JjQm9CeCivQoNCY0KHQotCY0Isg0JjQodCY0JTQntCgCivQoNCY0KHQotCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cg0JjQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JjQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JjQodCi0JjQiyDQiNCV0KDQldCc0JjQiNCQCivQoNCY0KHQotCY0Isg0IjQntCS0JDQnSDQlNCgCivQoNCY0KHQotCY0Isg0IjQntCS0JDQnSDQlNCgCivQoNCY0KHQotCY0Isg0IjQntCS0JDQnQor0KDQmNCh0KLQmNCLINCa0KHQldCd0JjQiNCQCivQoNCY0KHQotCY0Isg0JvQkNCR0KPQlCDQlNCgINCb0JXQmtCQ0KAKK9Cg0JjQodCi0JjQiyDQm9CQ0JfQkNCgCivQoNCY0KHQotCY0Isg0InQmNCJ0JDQndCQCivQoNCY0KHQotCY0Isg0InQmNCJ0JDQndCQCivQoNCY0KHQotCY0Isg0InQo9CR0JjQptCQCivQoNCY0KHQotCY0Isg0InQo9CR0JjQptCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JjQiNCV0J3QmtCQCivQoNCY0KHQotCY0Isg0JzQkNCg0JrQngor0KDQmNCh0KLQmNCLINCc0JjQpdCQ0IjQm9CeCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQndCa0JAKK9Cg0JjQodCi0JjQiyDQnNCY0JvQkNCdCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQkNCdCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CV0KLQkAor0KDQmNCh0KLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JjQodCi0JjQiyDQnNCY0JvQmtCQCivQoNCY0KHQotCY0Isg0JzQmNCb0J7QqAor0KDQmNCh0KLQmNCLINCc0JjQm9Ce0KgKK9Cg0JjQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQmNCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCY0KHQotCY0Isg0JzQmNCb0KPQnQor0KDQmNCh0KLQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCY0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQmNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQm9CQ0JTQldCdCivQoNCY0KHQotCY0Isg0J3QkNCU0JAKK9Cg0JjQodCi0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQoNCY0KHQotCY0Isg0J3QldCT0J7QktCQ0J0KK9Cg0JjQodCi0JjQiyDQndCV0KHQotCe0KAKK9Cg0JjQodCi0JjQiyDQndCY0JrQntCb0JAKK9Cg0JjQodCi0JjQiyDQndCY0JrQntCb0JAKK9Cg0JjQodCi0JjQiyDQndCe0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQntCb0JPQkAor0KDQmNCh0KLQmNCLINCf0JDQktCb0JUKK9Cg0JjQodCi0JjQiyDQn9CV0KDQkAor0KDQmNCh0KLQmNCLINCf0JXQotCQ0KAKK9Cg0JjQodCi0JjQiy3Qn9Ce0J/QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JjQodCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KDQmNCh0KLQmNCLINCg0JDQmNCh0JAKK9Cg0JjQodCi0JjQiyDQoNCe0JTQntCJ0KPQkSDQlNCgCivQoNCY0KHQotCY0Isg0KHQkNCS0JAKK9Cg0JjQodCi0JjQiyDQodCQ0JLQkAor0KDQmNCh0KLQmNCLINCh0JDQktCeCivQoNCY0KHQotCY0Isg0KHQm9CQ0ILQkNCdCivQoNCY0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQodCb0JDQktCY0KbQkAor0KDQmNCh0KLQmNCLINCh0JvQkNCS0JrQngor0KDQmNCh0KLQmNCLINCh0J/QntCc0JXQndCa0JAKK9Cg0JjQodCi0JjQiyDQodCi0JDQndCY0KjQkAor0KDQmNCh0KLQmNCLINCh0KLQkNCd0J7QiNCVINCU0KAKK9Cg0JjQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JjQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JjQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JjQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JjQodCi0JjQiyDQodCi0JXQktCY0KbQkAor0KDQmNCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCi0JXQnNCV0InQmtCeCivQoNCY0KHQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCS0JXQoNCY0KbQkAor0KDQmNCh0KLQmNCLINCS0JjQotCe0JzQmNCgCivQoNCY0KHQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQmNCh0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JjQodCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCY0KHQotCY0Isg0JLQntCI0JjQnQor0KDQmNCh0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQl9CQ0JPQntCg0JrQkAor0KDQmNCh0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQotCY0Isg0JfQntCg0JDQnQor0KDQmNCh0KLQmNCLINCX0J7QoNCQ0J0KK9Cg0JjQodCi0JjQnSDQiNCe0JLQkNCdCivQoNCY0KHQotCY0J0g0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQnSDQnNCY0J7QlNCg0JDQkwor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0JDQndCY0KbQkAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0JjQk9CK0JDQogor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JjQodCi0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JjQodCi0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cg0JjQodCi0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KDQmNCh0KLQntCS0JjQiyDQoNCQ0KLQmtCeCivQoNCY0KHQotCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQodCi0J7QktCh0JrQmCDQmtCe0KHQotCQCivQoNCY0KHQotCe0JLQodCa0Jgg0InQmNCJ0JDQndCQCivQoNCY0KHQotCe0JLQodCa0Jgg0InQmNCJ0JDQndCQCivQoNCY0KHQotCe0JLQodCa0Jgg0InQo9CR0J4KK9Cg0JjQodCi0J7QktCh0JrQmCDQodCY0JzQldCe0J0KK9Cg0JjQotCV0KAg0JDQndCa0JjQptCQCivQoNCY0KLQldCgINCQ0J3QotCe0J0KK9Cg0JjQotCV0KAg0KTQoNCQ0IrQkAor0KDQmNCi0JXQoCDQiNCe0JbQldCkCivQoNCY0KLQldCgINCb0KPQlNCS0JjQkwor0KDQmNCi0JXQoCDQndCQ0JTQkAor0KDQmNCi0J7QpiDQk9CV0JfQkAor0KDQmNCi0KLQldCgINCo0JDQndCU0J7QoAor0KDQmNCS0JjQiyDQmNCS0J4KK9Cg0JjQl9Cd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KDQmNCX0J3QmNCLINCS0JXQidCa0J4KK9Cg0JjQl9Cd0JjQiyDQktCV0InQmtCeCivQoNCY0JfQntCS0KHQmtCYINCU0KDQkNCT0J4KK9Cg0JjQl9CS0JDQnSDQqNCj0JrQoNCYCivQoNCY0JfQktCQ0J3QntCS0JjQiyDQodCQ0JTQmNCaCivQoNCc0KPQqCDQl9Ce0KDQmNCm0JAKK9Cg0J3QmNCLINCc0JjQpdCQ0JjQm9CeCivQoNCK0JDQmiDQlNCQ0J3QmNCm0JAKK9Cg0IrQkNCaINCh0KLQkNCd0JrQngor0KDQntCo0JjQnSDQmtCh0JXQndCY0IjQkAor0KDQntCo0JjQnSDQl9Ce0KDQmtCeCivQoNCe0KjQoyDQmtCe0KHQotCQCivQoNCe0KjQo9CJINCW0JjQktCQ0J0KK9Cg0J7QqNCj0Ikg0JbQmNCS0JAKK9Cg0J7QqNCj0Ikg0JDQndCC0JXQm9Ca0JAKK9Cg0J7QqNCj0Ikg0JXQnNCY0JsKK9Cg0J7QqNCj0Ikg0JvQkNCX0JDQoAor0KDQntCo0KPQiSDQnNCY0JvQkNCd0JAKK9Cg0J7QqNCj0Ikg0JzQmNCb0J7QoNCQ0JQKK9Cg0J7QqNCj0Ikg0KDQkNCU0J7QktCQ0J0KK9Cg0J7QqNCj0Ikg0KHQktCV0KLQntCX0JDQoAor0KDQntCo0KPQiSDQl9Ce0KDQkNCdCivQoNCe0KjQo9CJ0JAg0JLQkNCh0JAKK9Cg0J7QqNCj0JvQntCSINCh0KLQkNCU0J7QiNCVCivQoNCe0JbQkCDQkdCV0JvQkAor0KDQntCW0JAg0KTQldCg0JXQndCmCivQoNCe0JbQkCDQiNCQ0J3QntCoCivQoNCe0JbQkCDQiNCe0JLQkNCdCivQoNCe0JbQkCDQnNCY0KDQmtCeCivQoNCe0JbQkNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0KDQntCC0JDQmiDQpNCg0JDQitCQCivQoNCe0ILQldCd0JrQntCSINCW0JjQktCe0IjQmNCdCivQoNCe0ILQldCd0JrQntCSINCC0KPQoNCQCivQoNCe0ILQldCd0JrQntCSINCc0JjQm9Ce0KgKK9Cg0J7QkdCe0KLQmNCLINCQ0J3QkAor0KDQntCR0J7QotCY0Isg0KLQldCg0JXQl9CQCivQoNCe0JQg0JTQkNCd0JjQptCQCivQoNCe0JTQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCe0JTQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCe0JTQmNCLINCo0J/QmNCg0J4KK9Cg0J7QlNCY0Isg0ILQntCg0ILQlQor0KDQntCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQntCU0JjQiyDQkNCd0JTQoNCY0IjQkAor0KDQntCU0JjQiyDQkdCe0JbQngor0KDQntCU0JjQiyDQkdCe0JbQngor0KDQntCU0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQntCU0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQoNCe0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQntCU0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0J7QlNCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0JTQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0J7QlNCY0Isg0JTQo9Co0JDQnQor0KDQntCU0JjQiyDQlNCj0KjQkNCdCivQoNCe0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QlNCY0Isg0JTQo9Co0JDQnQor0KDQntCU0JjQiyDQk9Ce0IjQmtCeCivQoNCe0JTQmNCLINCT0J7QiNCa0J4KK9Cg0J7QlNCY0Isg0JPQntCI0JrQngor0KDQntCU0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KDQntCU0JjQiyDQiNCe0JLQngor0KDQntCU0JjQiyDQm9CV0J/QkAor0KDQntCU0JjQiyDQidCY0InQkNCd0JAKK9Cg0J7QlNCY0Isg0JzQkNCd0J7QiNCb0J4KK9Cg0J7QlNCY0Isg0JzQmNCL0JAKK9Cg0J7QlNCY0Isg0JzQmNCL0J4KK9Cg0J7QlNCY0Isg0JzQmNCb0JDQnQor0KDQntCU0JjQiyDQnNCY0JvQldCd0JAKK9Cg0J7QlNCY0Isg0JzQmNCb0JjQptCQCivQoNCe0JTQmNCLINCc0JjQm9CY0KbQkAor0KDQntCU0JjQiyDQnNCY0JvQmtCQCivQoNCe0JTQmNCLINCc0JjQm9Ce0KgKK9Cg0J7QlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0J7QlNCY0Isg0JzQmNCg0JrQngor0KDQntCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCe0JTQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cg0J7QlNCY0Isg0J3QldCC0J4KK9Cg0J7QlNCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0J7QlNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCe0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQntCU0JjQiyDQndCY0JrQntCb0JAKK9Cg0J7QlNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCe0JTQmNCLINCe0JvQk9CQCivQoNCe0JTQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCe0JTQmNCLINCf0JXQotCQ0KAKK9Cg0J7QlNCY0Isg0J/QldCi0KDQkAor0KDQntCU0JjQiyDQoNCQ0JTQlQor0KDQntCU0JjQiyDQoNCQ0J3QmtCeCivQoNCe0JTQmNCLINCh0JvQkNCS0JrQngor0KDQntCU0JjQiyDQodCc0JjQidCQCivQoNCe0JTQmNCLINCh0KDQldCi0JXQnQor0KDQntCU0JjQiyDQodCi0JDQndCa0J4KK9Cg0J7QlNCY0Isg0KHQotCV0JLQkNCdCivQoNCe0JTQmNCLINCh0KPQl9CQ0J3QkAor0KDQntCU0JjQiyDQodCj0JfQkNCd0JAKK9Cg0J7QlNCY0Isg0KHQktCV0KLQmtCeCivQoNCe0JTQmNCLLdCi0J7QnNCJ0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCe0JTQmNCLINCS0JXQoNCY0KbQkAor0KDQntCU0JjQiyDQl9Ce0KDQkNCdCivQoNCe0JPQkNCnINCh0JLQldCi0JvQkNCd0JAKK9Cg0J7Qk9CQ0Kcg0KHQktCV0KLQntCX0JDQoAor0KDQntCT0JDQp9CV0JLQmNCLINCe0JHQoNCQ0JQKK9Cg0J7Qk9CQ0InQodCa0Jgg0IjQldCb0JXQndCQCivQoNCe0JPQkNCb0J4g0JDQndCi0J7QnQor0KDQntCT0JDQnSDQodCS0JXQotCe0JfQkNCgCivQoNCe0JPQkNCd0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KDQntCT0JDQndCe0JLQmNCLINCb0KPQmtCQCivQoNCe0JPQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KDQntCT0JDQndCe0JLQmNCLINCd0J7QktCQ0JoKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCe0JPQkNCd0J7QktCY0Isg0KHQotCV0JLQngor0KDQntCT0JDQndCe0JLQmNCLINCi0JDQitCQCivQoNCe0JPQkNCd0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9Cg0J7Qk9CQ0JLQkNCmINCc0JjQm9CQ0J0KK9Cg0J7Qk9CY0Isg0JDQm9CV0JrQodCQCivQoNCe0JPQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0JPQmNCLINCh0JDQktCQCivQoNCe0JPQmNCLINCS0JXQidCa0J4KK9Cg0J7Qk9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cg0J7Qk9CY0Isg0JLQldCh0J3QkAor0KDQntCT0JjQiyDQl9Ce0KDQkNCdCivQoNCe0JPQm9CY0Isg0JjQktCQ0J0KK9Cg0J7Qk9Cb0JjQiyDQidCj0JHQntCc0JjQoAor0KDQntCT0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0J7Qk9Cb0JjQiyDQktCV0KHQndCQCivQoNCe0JPQm9CY0Isg0JLQldCh0J3QkAor0KDQntCT0J7QltCQ0KDQodCa0Jgg0KHQotCV0JLQkNCd0JrQkAor0KDQntCT0KPQm9CY0Isg0IjQldCb0JXQndCQCivQoNCe0JPQo9CJ0JAg0ILQntCg0ILQlQor0KDQntCT0KPQidCQINCY0JvQmNCI0JAKK9Cg0J7Qk9Cj0InQkCDQiNCe0JLQkNCdCivQoNCe0JPQo9CJ0JAg0J3QmNCa0J7Qm9CQCivQoNCe0JPQo9CJ0JAg0J/QkNCS0JvQlSDQlNCgCivQoNCe0JPQo9CJ0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQntCT0KPQidCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0J7Qk9Cj0InQmNCLINCf0KDQldCU0KDQkNCTCivQoNCe0JPQo9CJ0JjQiyDQl9CU0KDQkNCS0JrQngor0KDQntCI0JrQkCDQkNCd0JTQoNCV0IgKK9Cg0J7QiNCa0JAg0JDQndCU0KDQldCICivQoNCe0IjQndCY0Jog0InQo9CR0J7QnNCY0KAKK9Cg0J7QmtCQINCW0KPQltCQ0J3QkAor0KDQntCa0JAg0IjQkNCd0J7QqAor0KDQntCa0JAg0JLQkNCb0JXQoNCY0IjQkAor0KDQntCa0JDQmCDQn9CV0KLQkNCgCivQoNCe0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QmtCY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0J7QmtCb0JjQptCV0KAg0KTQoNCQ0IrQkAor0KDQntCa0JvQmNCm0JXQoCDQiNCe0KHQmNCfCivQoNCe0JrQndCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cg0J7QmtCd0JjQiyDQnNCY0JvQldCd0JrQngor0KDQntCa0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQoNCe0JrQodCQ0J3QlNCY0Isg0JDQlNCQ0JwKK9Cg0J7QmtCh0JDQndCU0JjQiyDQnNCY0JvQkNCdCivQoNCe0JrQodCQ0J3QlNCY0Isg0KHQmNCc0JAKK9Cg0J7QmtCh0JDQndCU0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCe0JrQodCQ0J3QlNCY0Isg0JLQm9CQ0JTQngor0KDQntCa0KHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0J7QmtCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QmtCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0J7QmtCS0JjQiyDQlNCj0KjQkNCdCivQoNCe0JrQktCY0Isg0JPQntCI0JrQngor0KDQntCa0JLQmNCLINCb0JDQl9CQ0KAKK9Cg0J7QmtCS0JjQiyDQnNCQ0KDQmtCeCivQoNCe0JrQktCY0Isg0JzQmNCb0JDQnQor0KDQntCa0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQntCa0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0JrQktCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCf0J7Qm9CY0KLQmNCa0J7Qm9Ce0JMKK9Cg0J7QmtCS0JjQiyDQntCc0JjQidCa0J4KK9Cg0J7QmtCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQntCa0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCe0JrQktCY0Isg0KDQkNCd0JrQngor0KDQntCa0JLQmNCLINCh0JjQndCY0KjQkAor0KDQntCa0JLQmNCLINCS0JXQodCV0JvQmtCeCivQoNCe0JrQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0J7Qm9CQ0J3QlCDQotCe0JzQmNCh0JvQkNCSCivQoNCe0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KDQntCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cg0J7QnCDQkdCg0JDQndCa0JAKK9Cg0J7QnNCn0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQoNCe0JzQkNCdINCI0JXQm9CV0J3QkAor0KDQntCc0JDQnSDQidCj0JHQmNCm0JAKK9Cg0J7QnNCQ0J0g0JzQmNCd0JXQkAor0KDQntCc0JDQnSDQnNCY0KDQntCdCivQoNCe0JzQkNCdINCg0J7QnNCa0J4KK9Cg0J7QnNCQ0J3QlNCY0Isg0JDQndCa0JjQptCQCivQoNCe0JzQkNCd0JTQmNCLINCI0JXQm9CV0J3QkAor0KDQntCc0JDQndCU0JjQiyDQodCi0JDQndCY0JzQmNCgCivQoNCe0JzQkNCd0JXQm9CYINCT0JjQndCeCivQoNCe0JzQkNCd0JjQiyDQlNCj0KjQkNCdCivQoNCe0JzQkNCd0JjQiyDQldCg0JbQldCR0JXQogor0KDQntCc0JDQndCY0Isg0IjQntCmMAor0KDQntCc0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQoNCe0JzQkNCd0JrQmNCSINCc0JjQpdCQ0IjQm9CeCivQoNCe0JzQkNCd0J7QkiDQiNCe0KHQmNCfCivQoNCe0JzQkNCd0J7QkiDQodCd0JXQltCQ0J3QkAor0KDQntCc0JDQndCe0JLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cg0J7QnNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQoNCe0JzQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0J7QnNCQ0J3QntCS0JjQiyDQmNCb0JjQndCa0JAKK9Cg0J7QnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCe0JzQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0J7QnNCQ0KEg0IjQntCh0JjQnwor0KDQntCc0JjQiyDQldCi0JAKK9Cg0J7QnNCY0Isg0IjQkNCd0JrQngor0KDQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KDQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KDQntCc0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0J7QnNCY0Isg0J3QldCd0JDQlAor0KDQntCc0JjQiyDQn9CQ0JLQm9CVCivQoNCe0JzQmNCLINCf0KDQldCU0KDQkNCTCivQoNCe0JzQntCU0JAg0JjQqNCi0JLQkNCdCivQoNCe0JzQntCU0JAg0JrQkNCg0JvQngor0KDQntCc0J7QlNCQINCc0JDQoNCY0IjQkAor0KDQntCd0KfQldCb0Jgg0JrQkNCi0JjQptCQCivQoNCe0J3Qp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KDQntCd0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0JjQmtCe0J3QmNCI0JAKK9Cg0J7QndCn0JXQktCY0Isg0JrQntCh0KLQkAor0KDQntCd0KfQldCS0JjQiyDQnNCY0JvQlQor0KDQntCd0KfQldCS0JjQiyDQndCQ0JTQkAor0KDQntCd0KfQldCS0JjQiyDQntCR0KDQkNCUCivQoNCe0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cg0J7QndCn0JXQktCY0Isg0J/QldCi0JDQoAor0KDQntCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQoNCe0J3Qp9CV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cg0J7QndCn0JXQktCY0Isg0KHQkNCS0JXQotCQCivQoNCe0J3Qp9CV0JLQmNCLINCh0JDQktCeCivQoNCe0J3Qp9CV0JLQmNCLINCh0KLQkNCd0JAKK9Cg0J7QndCn0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KDQntCd0KfQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQoNCe0J3Qp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQntCd0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0JLQldCg0JAKK9Cg0J7QndCQ0Jgg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cg0J7QndCi0J4g0KTQoNCQ0J3QptCY0KjQmtCQCivQoNCe0J3QotCeINCY0JvQntCd0JrQkAor0KDQntCd0KLQniDQiNCQ0JrQntCRCivQoNCe0J3QotCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0J7QoCDQlNCV0KHQkAor0KDQntCg0JHQkNCl0JXQoCDQnNCQ0JPQlNCe0JvQndCQCivQoNCe0KHQmNCLINCC0KPQoNCeCivQoNCe0KHQmNCLINCR0J7Qk9CU0JDQnQor0KDQntCh0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KDQntCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0KHQmNCLINCU0KDQkNCT0JDQnQor0KDQntCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0J7QodCY0Isg0JTQo9Co0JDQnQor0KDQntCh0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQoNCe0KHQmNCLINCY0JvQmNCI0JAKK9Cg0J7QodCY0Isg0InQmNCJ0JDQndCQCivQoNCe0KHQmNCLINCc0JjQm9CV0J3QkAor0KDQntCh0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0J7QodCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0J7QodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0J7QodCY0Isg0J3QmNCa0J7Qm9CQCivQoNCe0KHQmNCLINCe0KHQotCe0IjQkAor0KDQntCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCe0KHQmNCLINCX0J7QoNCQ0J0KK9Cg0J7QodCb0JDQktCJ0JXQkiDQktCe0IjQmNCh0JvQkNCSCivQoNCe0KHQniDQmNCS0JDQnQor0KDQntCh0J4g0JzQkNCg0KLQkAor0KDQntCiINCU0JXQl9CY0JTQldCgCivQoNCe0KIg0KTQoNCQ0IrQkAor0KDQntCi0JDQoNCY0KMg0KLQmNCR0JXQoNCY0IjQlQor0KDQntCi0JHQkNCg0KIg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCe0KLQmNCcINCY0JLQkNCdCivQoNCe0JLQp9CQ0J3QmNCdINCV0KPQgtCV0J3QmNCI0JAKK9Cg0J7QktCn0JDQndCY0J0g0KPQl9CV0JjQoAor0KDQntCS0KfQkNCd0JjQnSDQktCV0KHQldCb0JjQnQor0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCe0JLQniDQnNCY0KXQkNCJCivQoNCe0JfQldCd0KLQkNCbINCU0KDQkNCT0JjQptCQCivQoNCe0JfQldCd0KLQkNCbINCa0JDQoNCb0J4KK9Cg0J7Ql9CV0J3QotCQ0Jsg0JzQkNCg0KLQntCdCivQoNCe0JfQmNCLINCQ0J3QotCVCivQoNCe0JfQnNCQ0KDQmNCd0JMg0JjQqNCi0JLQkNCdCivQoNCe0JfQnNCY0KDQntCSINCU0KDQkNCT0JDQnQor0KDQntCX0JzQmNCg0J7QkiDQnNCY0JvQldCd0JrQngor0KDQo9Co0JjQotCYINCQ0JvQmNCI0JAKK9Cg0KPQqNCa0J4g0JXQoNCW0JXQkdCV0KIKK9Cg0KPQqNCa0KPQpiDQgtCe0KDQgtCVCivQoNCj0KjQmtCj0KYg0JDQotCQ0J3QkNCh0JjQiNCVCivQoNCj0KjQmtCj0KYg0JzQkNCg0JPQkNCg0JjQotCQCivQoNCj0KjQmtCj0KYg0JzQkNCg0KLQkAor0KDQo9Co0JrQo9CmINCf0JDQktCb0JUKK9Cg0KPQqNCa0KPQpiDQodCi0JXQktCQ0J0KK9Cg0KPQqNCa0KPQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0KPQqNCa0KPQpiDQktCV0KHQldCb0JjQnQor0KDQo9Co0JrQo9CmINCS0JvQkNCU0JjQnNCY0KAKK9Cg0KPQltCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCj0JbQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCj0JbQmNCn0JjQiyDQgtCe0KDQgtCVCivQoNCj0JbQmNCn0JjQiyDQkdCe0KjQmtCeCivQoNCj0JbQmNCn0JjQiyDQnNCY0JvQkNCdCivQoNCj0JbQmNCn0JjQnSDQlNCQ0J3QmNCm0JAKK9Cg0KPQltCY0KfQmNCdINCg0JDQlNCY0JLQntCICivQoNCj0JbQmNCn0JrQkCDQgtCj0KDQkAor0KDQo9CW0JjQp9Ca0JAg0KDQo9CW0JAKK9Cg0KPQltCY0Isg0JbQkNCg0JrQngor0KDQo9CW0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQo9CW0JjQiyDQlNCg0JDQltCQ0J3QkAor0KDQo9CW0JjQiyDQlNCj0KjQkNCdCivQoNCj0JbQmNCLINCU0KPQqNCQ0J0KK9Cg0KPQltCY0Isg0JTQo9Co0JDQnQor0KDQo9CW0JjQiyDQldCc0JAKK9Cg0KPQltCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0KPQltCY0Isg0JjQktCY0KbQkAor0KDQo9CW0JjQiyDQiNCe0JLQkNCdCivQoNCj0JbQmNCLINCI0J7QktCeCivQoNCj0JbQmNCLINCI0KPQm9Ca0JAKK9Cg0KPQltCY0Isg0JrQoNCh0KLQngor0KDQo9CW0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0KPQltCY0Isg0JzQkNCg0JjQiNCQCivQoNCj0JbQmNCLINCc0JjQm9CQ0J0KK9Cg0KPQltCY0Isg0JzQmNCb0JDQnQor0KDQo9CW0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQo9CW0JjQiyDQnNCY0KDQkAor0KDQo9CW0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQo9CW0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQo9CW0JjQiyDQnNCY0KDQmtCeCivQoNCj0JbQmNCLINCd0JjQmtCe0JvQkAor0KDQo9CW0JjQiyDQndCY0JrQntCb0JAKK9Cg0KPQltCY0Isg0J/QkNCS0JAKK9Cg0KPQltCY0Isg0J/QldCi0JDQoAor0KDQo9CW0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQo9CW0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQo9CW0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCj0JbQmNCLINCh0JzQmNCJ0JDQndCQCivQoNCj0JbQmNCLINCh0KLQkNCd0JrQngor0KDQo9CW0JjQiy3QodCi0JDQoNCYINCS0JXQodCd0JAKK9Cg0KPQltCY0Isg0KHQotCI0JXQn9CQ0J0KK9Cg0KPQltCY0Isg0KHQktCV0KLQntCb0JjQmgor0KDQo9CW0JjQiyDQktCV0InQmtCeCivQoNCj0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCj0JbQmNCLINCX0J7QoNCQ0J0KK9Cg0KPQltCY0Isg0JfQntCg0JDQnQor0KDQo9CW0JjQnSDQp9CV0JTQntCc0JjQoAor0KDQo9CW0JjQnSDQnNCY0JvQntCg0JDQlAor0KDQo9CW0J3QmNCm0JrQmCDQmNCS0JDQnQor0KDQo9CC0JAg0J3QldCc0JDQitCQCivQoNCj0ILQkCDQl9Ce0KDQkNCdCivQoNCj0ILQkCDQl9Ce0KDQkNCdCivQoNCj0JHQldCW0JjQiyDQnNCY0JvQntCS0JDQnQor0KDQo9CR0JXQltCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9CR0JjQnSDQnNCY0JvQkNCdCivQoNCj0JHQo9CoINCQ0JPQndCV0JfQkAor0KDQo9CR0KPQqCDQiNCe0JbQldCkCivQoNCj0JTQkNCdINCc0JDQoNCa0J4KK9Cg0KPQlNCQ0J0g0KDQkNCU0JjQktCe0IjQlQor0KDQo9CU0JXQliDQmNCb0JjQiNCQCivQoNCj0JTQldCWINCc0JjQi9CeCivQoNCj0JTQldCWINCf0JXQoNCQCivQoNCj0JTQldCaINCI0JDQoNCe0KHQm9CQ0JIKK9Cg0KPQlNCV0Jog0J3QmNCa0J7Qm9CQCivQoNCj0JTQldCaINCd0JjQmtCe0JvQkAor0KDQo9CU0JjQiyDQlNCQ0KDQmtCeCivQoNCj0JTQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQo9CU0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0KPQlNCY0Isg0JTQo9Co0JDQnQor0KDQo9CU0JjQiyDQmNCc0KDQlQor0KDQo9CU0JjQiyDQmNCS0JDQnQor0KDQo9CU0JjQiyDQmNCS0JDQnQor0KDQo9CU0JjQiyDQiNCe0KHQmNCfCivQoNCj0JTQmNCLINCb0JDQl9CQ0KAKK9Cg0KPQlNCY0Isg0JzQkNCg0JrQngor0KDQo9CU0JjQiyDQnNCQ0KDQmtCeCivQoNCj0JTQmNCLINCc0JjQm9Ca0JAKK9Cg0KPQlNCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0KPQlNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCj0JTQmNCLINCf0JXQoNCQCivQoNCj0JTQmNCLINCh0KLQldCS0JDQnQor0KDQo9CU0JjQiyDQodCi0JXQktCY0KbQkAor0KDQo9CU0JjQiy3QktCg0JDQndCY0Isg0J3QldCU0JXQidCa0JAKK9Cg0KPQlNCe0JvQpCDQmtCb0JDQiNCdCivQoNCj0JTQntCb0KQg0J7Qm9CT0JAKK9Cg0KPQlNCe0JvQpCDQodCf0JDQodCe0IjQlQor0KDQo9CU0J7Qm9CkINCX0J7QoNCQ0J0KK9Cg0KPQlNCe0JLQmNCLINCU0JDQndCY0JvQngor0KDQo9CU0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQo9CU0J7QktCY0Isg0IjQo9CT0J7QodCb0JDQkgor0KDQo9CU0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0KPQlNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0KPQpNCn0JXQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9CI0JXQktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0KDQo9CI0JXQktCY0Isg0JzQmNCb0JXQktCQCivQoNCj0JrQkNCS0JjQndCQLdCo0JvQmNCR0JDQoCDQpdCV0KDQnNCY0J3QkAor0KDQo9Ca0JDQktCY0J3QkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQo9Ca0JDQktCY0J3QkCDQkdCQ0KDQmNCm0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JTQldCh0J/QmNCd0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JTQntCR0KDQmNCb0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JTQo9Co0JDQnQor0KDQo9Ca0JDQktCY0J3QkCDQiNCj0KDQlQor0KDQo9Ca0JDQktCY0J3QkCDQmtCg0JXQqNCY0JzQmNCgCivQoNCj0JrQkNCS0JjQndCQINCJ0KPQkdCY0KbQkAor0KDQo9Ca0JDQktCY0J3QkCDQnNCQ0KDQmNCI0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JzQmNCb0JrQkAor0KDQo9Ca0JDQktCY0J3QkCDQoNCj0JTQntCb0KQKK9Cg0KPQmtCQ0JLQmNCd0JAg0KDQo9CU0J7Qm9CkCivQoNCj0JrQkNCS0JjQndCQINCh0KLQldCS0JDQnQor0KDQo9Ca0JDQktCY0J3QkCDQl9CS0J7QndCY0JzQmNCgCivQoNCj0JzQkNCdINCc0JjQpdCQ0IjQm9CeCivQoNCj0J3QmNCLINCc0JDQoNCY0IjQkAor0KDQo9Cd0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0KDQo9CK0JDQiNCY0Isg0JjQm9CY0IjQkAor0KDQo9CK0JDQndCY0J0g0ILQntCg0ILQlQor0KDQo9CK0JDQndCY0J0g0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCj0IrQkNCd0JjQnSDQktCe0IjQngor0KDQo9CK0JjQiyDQkNCc0JDQm9CY0IjQkAor0KDQo9CK0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0KPQitCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0KPQitCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cg0KPQitCY0Isg0JPQntCg0JDQnQor0KDQo9CK0J4g0IjQntCS0JDQnQor0KDQo9Cd0KLQmNCLINCR0J7QqNCa0J4KK9Cg0KPQn9Cn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCj0J/QkCDQkNCi0JjQm9CQCivQoNCj0J/QkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0KDQo9Cf0JDQoCDQldCg0JbQldCR0JXQogor0KDQo9Cf0JjQiyDQltCY0JLQmtCeCivQoNCj0J/QitCQ0Jog0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCj0KEg0ILQo9Cg0ILQmNCd0JrQkAor0KDQo9ChINCU0KDQkNCT0JDQnQor0KDQo9ChINCY0JLQkNCd0JrQkAor0KDQo9ChINCI0J7QodCY0J8KK9Cg0KPQoSDQnNCQ0KDQk9CY0KLQkAor0KDQo9ChINCc0JDQoNCY0IjQkAor0KDQo9ChINCc0JjQm9Ce0KHQkNCS0JAKK9Cg0KPQoSDQoNCQ0JTQkAor0KDQo9ChINCh0JvQkNCS0JjQptCQCivQoNCj0KEg0KHQnNCY0InQkAor0KDQo9ChINCh0JLQldCi0JvQkNCd0JAKK9Cg0KPQoSDQktCV0KDQkAor0KDQo9ChINCS0KPQmtCe0KHQkNCS0JAKK9Cg0KPQodCY0Isg0JDQndCU0KDQmNCI0JAKK9Cg0KPQodCa0JDQiNCYINCh0JvQkNCS0J7QnNCY0KAKK9Cg0KPQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCj0KHQmtCYINCb0JDQl9CQ0KAKK9Cg0KPQodCa0J7QktCh0JrQmCDQgtCe0KDQgtCVCivQoNCj0KHQmtCe0JLQodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cg0KPQodCa0J7QktCh0JrQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cg0KPQodCc0JjQoCDQoNCQ0JTQnNCY0JvQkAor0KDQo9Ch0JzQmNCg0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQoNCj0KHQnNCY0KDQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cg0KPQodCe0JIg0JbQkNCg0JrQngor0KDQo9Ch0J7QkiDQltCY0JLQmtCQCivQoNCj0KHQntCSINCR0KDQkNCd0JrQkAor0KDQo9Ch0J7QkiDQkdCg0JDQndCa0J4KK9Cg0KPQodCe0JIg0JTQoNCV0J3QmtCQCivQoNCj0KHQntCSINCa0JDQotCY0KbQkAor0KDQo9Ch0J7QkiDQmtCe0KHQotCQCivQoNCj0KHQntCSINCa0KDQmNCh0KLQmNCd0JAKK9Cg0KPQodCe0JIg0JzQkNCg0JjQiNCQCivQoNCj0KHQntCSINCc0JjQm9CQ0J0KK9Cg0KPQodCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cg0KPQodCe0JIg0J3QkNCU0JAKK9Cg0KPQodCe0JIg0J/QkNCS0JvQlQor0KDQo9Ch0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQoNCj0KHQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0KPQodCe0JLQkNCdINCW0JjQktCY0KbQkAor0KDQo9Ch0J7QktCQ0J0g0JTQoNCQ0JPQntCJ0KPQkQor0KDQo9Ch0J7QktCQ0J0g0JzQmNCb0JDQnQor0KDQo9Ch0J7QktCQ0J0g0JzQmNCb0JDQnQor0KDQo9Ch0KLQldCc0JDQk9CY0Isg0JXQoNCS0JjQnQor0KDQo9Ch0KLQldCc0Jgg0KjQkNCR0JDQnQor0KDQo9Ci0JXQqNCY0Isg0IjQntCS0JjQptCQCivQoNCj0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCj0KLQntCd0JjQiyDQiNCj0JvQmtCY0KbQkAor0KDQo9Ci0J7QndCY0Ist0JrQntCb0JXQndCU0JAg0JLQmNCU0J7QodCQ0JLQkAor0KDQo9Ci0J7QndCY0Isg0JvQkNCX0JDQoAor0KDQo9Ci0J7QndCY0Isg0JvQkNCX0JDQoAor0KDQo9Ci0J7QitCh0JrQmCDQlNCj0KjQkNCdCivQoNCj0KLQntCK0KHQmtCYINCI0JXQm9CY0KbQkAor0KDQo9Ci0J7QitCh0JrQmCDQiNCe0JLQkNCd0JrQkAor0KDQo9Ci0J7QitCh0JrQmCDQndCQ0JTQkAor0KDQo9Ci0J7QitCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQoNCj0KLQntCK0KHQmtCYINCS0JDQodCQCivQoNCj0KLQntCd0KHQmtCYINCC0J7QoNCC0JUKK9Cg0KPQotCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0JDQp9CV0Jog0JzQmNCg0J7QodCb0JDQkgor0KHQkNCn0JXQoCDQoNCe0JrQmAor0KHQkNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JDQkdCQ0JTQmCDQm9CQ0KHQm9CeCivQodCQ0JHQkNCU0Jgg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQkdCQ0JTQmtCQINCo0JDQndCU0J7QoAor0KHQkNCR0JDQlNCa0JAg0JjQm9Ce0J3QmtCQCivQodCQ0JHQkNCU0JrQkCDQktCQ0JvQldCg0JjQiNCQCivQodCQ0JHQkNCU0J7QqCDQqNCQ0J3QlNCe0KAKK9Ch0JDQkdCQ0JTQntCoINCC0KPQoNCQCivQodCQ0JHQkNCU0J7QqCDQmNCS0JDQnQor0KHQkNCR0JDQlNCe0Kgg0IjQkNCd0JrQngor0KHQkNCR0JDQlNCe0Kgg0IjQkNCd0JrQngor0KHQkNCR0JDQlNCe0Kgg0IjQkNCd0JrQngor0KHQkNCR0JDQlNCe0Kgg0IjQntCQ0JrQmNCcCivQodCQ0JHQkNCU0J7QqCDQidCj0JHQntCc0JjQoAor0KHQkNCR0JDQlNCe0Kgg0JzQmNCo0JAKK9Ch0JDQkdCQ0JTQntCoINCc0JjQpdCQ0IjQm9CeCivQodCQ0JHQkNCU0J7QqCDQnNCY0KXQkNCI0JvQngor0KHQkNCR0JDQlNCe0Kgg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCR0JDQlNCe0Kgg0J/QkNCS0JvQmNCd0JAKK9Ch0JDQkdCQ0JTQntCoINCg0KPQltCY0KbQkAor0KHQkNCR0JDQlNCe0Kgg0KHQm9CQ0JLQndCQCivQodCQ0JHQkNCU0J7QqCDQodCb0JDQktCe0JzQmNCgCivQodCQ0JHQkNCU0J7QqCDQodCg0JHQmNCh0JvQkNCSCivQodCQ0JHQkNCU0J7QqCDQodCi0JXQktCQ0J0KK9Ch0JDQkdCQ0JTQntCoINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQkdCQ0JTQntCoINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQkdCQ0JTQntCoINCX0JTQldCd0JrQkAor0KHQkNCR0JDQlNCj0Kgg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQkdCQ0JTQo9CoINCh0KLQldCS0JDQnQor0KHQkNCR0JDQotCa0JAg0KHQotCV0JLQkNCdCivQodCQ0JHQkNCi0KPQqCDQkdCe0KDQmNCh0JvQkNCSCivQodCQ0JHQkNCi0KPQqCDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JHQkNCi0KPQqCDQotCe0JzQmNCh0JvQkNCSCivQodCQ0JHQm9CY0Isg0JHQoNCQ0J3QmtCeCivQodCQ0JHQidCQ0Jog0JTQoNCQ0JPQkNCdCivQodCQ0JHQidCQ0Jog0KTQoNCQ0IrQngor0KHQkNCR0InQkNCaINCc0JDQoNCY0IjQkNCdCivQodCQ0JHQidCQ0JrQntCS0JjQiyDQldCh0JDQlAor0KHQkNCR0InQkNCgINCC0J7QoNCC0JUKK9Ch0JDQkdCJ0JDQoCDQnNCQ0J3QntCI0JvQngor0KHQkNCR0InQkNCgINCc0JjQm9CQ0J0KK9Ch0JDQkdCJ0JDQoCDQotCV0J7QlNCe0KAKK9Ch0JDQkdCJ0JDQoNCV0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQkNCR0InQmNCLINCU0JDQndCY0JvQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQkNCR0InQmNCLINCU0JDQoNCQCivQodCQ0JHQidCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0JDQkdCJ0J7QkiDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCJ0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0JDQkdCeINCo0JDQndCU0J7QoAor0KHQkNCR0J4g0KjQkNCK0JjQmtCQCivQodCQ0JHQniDQgtCV0JfQlQor0KHQkNCR0J4g0ILQntCg0ILQlQor0KHQkNCR0J4g0ILQntCg0ILQlQor0KHQkNCR0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JDQkdCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCQ0JHQniDQkNCd0JAg0JTQoAor0KHQkNCR0J4g0JDQndCQCivQodCQ0JHQniDQkNCd0JAKK9Ch0JDQkdCeINCQ0J3QlNCg0JDQqAor0KHQkNCR0J4g0JDQndCU0KDQkNCoCivQodCQ0JHQniDQkNCd0JjQptCQCivQodCQ0JHQniDQkNCd0JjQptCQCivQodCQ0JHQniDQkdCV0KDQotCQ0JvQkNCdCivQodCQ0JHQniDQlNCg0JDQk9CQ0J0KK9Ch0JDQkdCeINCV0JvQmNCX0JDQkdCV0KLQkAor0KHQkNCR0J4g0JXQnNCY0JsKK9Ch0JDQkdCeINCV0KDQltCV0JHQldCiCivQodCQ0JHQniDQldCg0JbQldCR0JXQogor0KHQkNCR0J4g0JXQoNCd0JUKK9Ch0JDQkdCeINCV0KDQndCVCivQodCQ0JHQniDQldCh0KLQldCgCivQodCQ0JHQniDQpNCV0KDQldCd0KYKK9Ch0JDQkdCeINCk0JXQoNCV0J3Qpgor0KHQkNCR0J4g0KTQoNCQ0IrQkAor0KHQkNCR0J4g0KTQoNCQ0IrQkAor0KHQkNCR0J4g0KTQoNCQ0IrQngor0KHQkNCR0J4g0JPQkNCo0J/QkNCgCivQodCQ0JHQniDQk9CQ0JHQntCgCivQodCQ0JHQniDQk9CV0KDQk9CV0IkKK9Ch0JDQkdCeINCT0JjQl9CV0JvQkAor0KHQkNCR0J4g0JPQntCg0JTQkNCd0JAKK9Ch0JDQkdCeINCl0JjQm9CU0JAKK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0JHQntCJ0JrQkAor0KHQkNCR0J4g0JjQlNCQCivQodCQ0JHQniDQmNCb0J7QndCQCivQodCQ0JHQniDQmNCc0KDQlQor0KHQkNCR0J4g0JjQnNCg0JUKK9Ch0JDQkdCeINCY0JLQkNCdCivQodCQ0JHQniDQiNCQ0J3QmNCa0JAKK9Ch0JDQkdCeINCI0JDQndCe0KgKK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0J7QodCY0J8KK9Ch0JDQkdCeINCI0KPQm9CY0JAKK9Ch0JDQkdCeINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JDQkdCeINCa0JDQoNCe0JvQmNCd0JAKK9Ch0JDQkdCeINCa0JDQotCY0KbQkAor0KHQkNCR0J4g0JrQkNCi0JjQptCQCivQodCQ0JHQniDQm9CQ0JTQmNCh0JvQkNCSCivQodCQ0JHQniDQm9CQ0JTQmNCh0JvQkNCSCivQodCQ0JHQniDQm9CQ0JTQmNCh0JvQkNCSCivQodCQ0JHQniDQidCj0JHQntCc0JjQoAor0KHQkNCR0J4g0JzQkNCg0JjQiNCQCivQodCQ0JHQniDQnNCQ0KDQotCQCivQodCQ0JHQniDQnNCY0KXQkNCI0JvQngor0KHQkNCR0J4g0JzQmNCb0JjQptCQCivQodCQ0JHQniDQndCY0JrQntCb0JAKK9Ch0JDQkdCeINCe0JvQmNCS0JXQoNCQCivQodCQ0JHQniDQn9CQ0JLQm9CVCivQodCQ0JHQniDQn9CV0KLQkNCgCivQodCQ0JHQniDQn9CV0KLQkNCgCivQodCQ0JHQniDQn9CV0KLQkNCgCivQodCQ0JHQniDQn9CY0KjQotCQCivQodCQ0JHQniDQoNCe0JfQkNCb0JjQiNCQCivQodCQ0JHQniDQodCd0JjQiNCV0JbQkNCd0JAKK9Ch0JDQkdCeINCh0KLQldCS0JDQnQor0KHQkNCR0J4g0KLQldCg0JXQl9CY0IjQkAor0KHQkNCR0J4g0KLQmNCR0J7QoAor0KHQkNCR0J4g0JLQkNCb0JXQoNCY0IjQkAor0KHQkNCR0J4g0JfQntCb0KLQkNCdCivQodCQ0JHQniDQl9Ce0JvQotCQ0J0KK9Ch0JDQkdCe0KjQntCi0Jgg0KTQkNCR0JjQiNCQ0J0KK9Ch0JDQkdCe0Jsg0IjQkNCg0J7QodCb0JDQkgor0KHQkNCR0J7QmyDQiNCV0JvQldCd0JAKK9Ch0JDQkdCe0JvQp9Ca0Jgg0JDQndCU0KDQmNCI0JAKK9Ch0JDQkdCe0JvQp9Ca0Jgg0JDQndCU0KDQmNCI0JAKK9Ch0JDQkdCe0JvQp9Ca0Jgg0JDQndCU0KDQmNCI0JAKK9Ch0JDQkdCe0JvQp9Ca0Jgg0JfQntCb0KLQkNCdCivQodCQ0JHQntCb0J7QktCY0Isg0JHQntCg0JjQoQor0KHQkNCR0J7QkiDQkdCe0KDQmNCS0J7QiNCVCivQodCQ0JHQntCS0InQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQkNCP0JDQmiDQidCj0JHQmNCm0JAKK9Ch0JDQj9CQ0JrQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Ch0JDQj9CQ0JrQntCSINCU0KPQqNCQ0J3QmtCQCivQodCQ0I/QkNCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQodCQ0I/QkNCa0J7QkiDQntCb0JPQkAor0KHQkNCP0JDQmtCe0JIg0J/QldCi0JDQoAor0KHQkNCP0JDQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQj9CQ0JrQntCSINCg0JDQlNCe0JLQkNCdCivQodCQ0I/QkNCa0J7QkiDQktCY0JTQntCh0JDQktCQCivQodCQ0I/QkNCa0J7QkiDQl9Ce0KDQkNCdCivQodCQ0JTQmNCLINCg0JDQlNCY0JLQntCICivQodCQ0JTQmNCa0KMg0KHQkNCU0JjQmgor0KHQkNCY0KLQntCSINCo0JDQpdCY0JwKK9Ch0JDQiNCk0JXQoNCiINCC0KPQm9CQCivQodCQ0IjQpNCV0KDQoiDQiNCe0KXQkNCdCivQodCQ0IjQpNCV0KDQoiDQidCj0JHQmNCo0JAKK9Ch0JDQiNCk0JXQoNCiINCJ0KPQkdCY0KjQkAor0KHQkNCI0KTQldCg0KIg0JzQkNCg0JPQmNCiCivQodCQ0IjQpNCV0KDQoiDQnNCQ0KDQmNCI0JAKK9Ch0JDQiNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCI0JrQniDQkdCg0JDQndCa0JAKK9Ch0JDQiNCa0J4g0JjQqNCi0JLQkNCdCivQodCQ0IjQmtCeINCc0JDQoNCT0JjQotCQCivQodCQ0IjQmtCeINCg0KPQltCY0KbQkAor0KHQkNCI0JrQniDQl9Ce0JvQotCQ0J0KK9Ch0JDQiNCb0JXQoCDQpNCV0KDQldCd0KYKK9Ch0JDQiNCi0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ch0JDQmtCQ0Kcg0JHQntCg0JjQodCb0JDQkiDQm9CV0JrQkNCgCivQodCQ0JrQkNCnINCk0JXQoNCV0J3Qpgor0KHQkNCa0JDQpyDQmNCo0KLQktCQ0J0KK9Ch0JDQmtCQ0Kcg0IjQkNCd0JrQngor0KHQkNCa0JDQpyDQiNCQ0J3QmtCeCivQodCQ0JrQkNCnINCI0J7QktCQ0J0KK9Ch0JDQmtCQ0Kcg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQkNCa0JDQpyDQiNCj0JvQmNCI0JDQnQor0KHQkNCa0JDQpyDQidCj0JTQldCS0JjQogor0KHQkNCa0JDQpyDQnNCQ0JPQlNCQCivQodCQ0JrQkNCnINCc0JDQoNCY0IjQkAor0KHQkNCa0JDQpyDQnNCY0KXQkNCY0JvQngor0KHQkNCa0JDQpyDQodCY0JzQkAor0KHQkNCa0JDQpyDQodCS0JXQotCb0JDQndCQCivQodCQ0JrQkNCnINCS0JDQodCY0JvQmNCI0JUKK9Ch0JDQmtCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoCDQkNCU0JLQntCa0JDQogor0KHQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JrQkNCnINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQmtCQ0Jsg0JDQlNCV0JvQkAor0KHQkNCa0JDQmyDQkNCj0JPQo9Ch0KLQmNCd0JAKK9Ch0JDQmtCQ0Jsg0JPQkNCR0J7QoAor0KHQkNCa0JDQmyDQiNCe0JbQldCkCivQodCQ0JrQkNCbINCc0JDQoNCY0IjQkAor0KHQkNCa0JDQmyDQnNCQ0KDQmNCI0JAKK9Ch0JDQmtCQ0JvQkNCoINCe0KLQngor0KHQkNCa0JDQnSDQlNCQ0JvQmNCR0J7QoAor0KHQkNCa0J7QktCY0Isg0JDQm9CY0IjQkAor0KHQkNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCQ0JrQo9Cb0KHQmtCYINCc0JjQm9CQ0J0KK9Ch0JDQm9CQ0Kcg0ILQo9Cg0J4KK9Ch0JDQm9CQ0JMg0JXQktCT0JXQndCY0IjQlQor0KHQkNCb0JDQkyDQiNCQ0J3QmtCeCivQodCQ0JvQkNCTINCJ0KPQkdCQCivQodCQ0JvQkNCYINCV0KDQltCV0JHQldCiCivQodCQ0JvQkNCYINCV0KHQotCV0KAKK9Ch0JDQm9CQ0Jgt0JPQntCc0JHQkNCgINCg0KPQltCQCivQodCQ0JvQkNCYINCY0KjQotCS0JDQnSDQndCe0JLQmNCd0JDQoAor0KHQkNCb0JDQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQkNCb0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQodCQ0JvQkNCYINCb0JDQodCb0J4KK9Ch0JDQm9CQ0Igg0KTQoNCQ0IrQngor0KHQkNCb0JDQiCDQiNCQ0J3QmtCeCivQodCQ0JvQkNCIINCI0J7QltCV0KQKK9Ch0JDQm9CQ0Igg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQm9CQ0Igg0KDQo9CU0J7Qm9CkCivQodCQ0JvQkNCaINCI0JDQndCa0J4KK9Ch0JDQm9CQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCb0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JvQkNCc0KPQnSDQkNCd0JAKK9Ch0JDQm9CQ0JzQo9CdINCR0J7QodCY0InQmtCQCivQodCQ0JvQkNCc0KPQnSDQmNCb0JjQiNCQCivQodCQ0JvQkNCc0KPQnSDQiNCQ0J3QmtCeCivQodCQ0JvQkNCc0KPQnSDQiNCe0JDQmtCY0JwKK9Ch0JDQm9CQ0JzQo9CdINCI0J7QkNCa0JjQnAor0KHQkNCb0JDQnNCj0J0g0J3QkNCi0JDQm9CY0IjQkAor0KHQkNCb0JDQnNCj0J0g0KHQmNCb0JLQldCh0KLQldCgCivQodCQ0JvQkNCc0KPQnSDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JvQkNCf0KPQoNCQINCc0JjQm9CVCivQodCQ0JvQkNCf0KPQoNCQINCd0JXQlNCV0InQmtCeCivQodCQ0JvQkNCf0KPQoNCQINCf0JXQotCQ0KAKK9Ch0JDQm9CQ0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCQ0JvQkNCi0JjQiyDQn9CV0KLQkNCgINCc0KAg0J7QldCmCivQodCQ0JvQkNCi0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQkNCb0JTQo9CcINCS0JjQlNCQCivQodCQ0JvQldCi0JAg0JDQndCi0KPQnQor0KHQkNCb0JjQiyDQnNCY0JvQkNCdCivQodCQ0JvQmNCR0JXQk9Ce0JLQmNCLINCc0KPQodCi0JDQpNCQCivQodCQ0JvQmNCl0J7QktCY0Isg0JjQodCc0JXQogor0KHQkNCb0JjQiNCQINCh0JXQpNCV0KAKK9Ch0JDQm9CY0IjQldCS0JjQiyDQqNCV0IvQldCg0JjQiNCQCivQodCQ0JvQmtCQ0Jgg0JjQm9Ce0J3QkAor0KHQkNCb0JrQkNCYINCb0JDQodCb0J4KK9Ch0JDQm9Cc0JAg0KjQkNCd0JTQntCgCivQodCQ0JvQnNCQINCT0JXQl9CQCivQodCQ0JvQnNCQINCI0J7QltCV0KQg0J/QoNCe0KQg0JTQoAor0KHQkNCb0JzQkCDQiNCe0KHQmNCfCivQodCQ0JvQnNCQINCf0JXQotCQ0KAKK9Ch0JDQm9Cc0JAg0KLQmNCR0J7QoAor0KHQkNCb0JzQkCDQotCY0JHQntCgCivQodCQ0JvQntCm0JrQmCDQodCi0JXQktCQ0J0KK9Ch0JDQm9Ce0J3QodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9Ch0JDQm9Ce0J3QodCa0Jgg0IjQldCb0JXQndCQCivQodCQ0JvQntCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQodCQ0JvQntCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQodCQ0JvQntCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQm9Ce0J3QodCa0Jgg0KDQo9CW0JAKK9Ch0JDQm9Ce0J3QotCQ0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQkNCb0J7Qn9CV0Jog0JHQoNCQ0J3QmtCeCivQodCQ0JvQntCSINCI0J7QktCQ0J0KK9Ch0JDQnNCQ0KYg0JjQktCQ0J3QmtCQCivQodCQ0JzQkNCmINCc0JjQoNCa0J4KK9Ch0JDQnNCQ0KDQgtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JbQkNCg0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQkNCU0JDQnAor0KHQkNCc0JDQoNCP0JjQiyDQkdCe0KjQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCR0J7QqNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JHQntCg0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JHQntCg0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0JzQkNCg0I/QmNCLINCR0KDQkNCd0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQlNCQ0J3QmNCb0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JTQkNCd0JjQm9CeCivQodCQ0JzQkNCg0I/QmNCLINCU0JXQodCQCivQodCQ0JzQkNCg0I/QmNCLINCU0KDQkNCT0JDQnQor0KHQkNCc0JDQoNCP0JjQiyDQlNCj0KjQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCT0J7QiNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JjQm9CY0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQmNCS0JDQnQor0KHQkNCc0JDQoNCP0JjQiyDQmtCg0KHQotCQCivQodCQ0JzQkNCg0I/QmNCLINCJ0KPQkdCeCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9CQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0JjQiNCQCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9Ce0KgKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QqAor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQntCI0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQntCh0JDQkgor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0KDQkAor0KHQkNCc0JDQoNCP0JjQiyDQndCV0ILQkAor0KHQkNCc0JDQoNCP0JjQiyDQndCe0JLQmNCm0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J7Qm9CT0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J7QodCi0J7QiNCQCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQlNCe0IjQmtCQCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JDQnNCQ0KDQj9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0KDQkNCI0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQoNCQ0KLQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCg0J7Ql9CY0J3QkAor0KHQkNCc0JDQoNCP0JjQiyDQodCQ0JLQmtCQCivQodCQ0JzQkNCg0I/QmNCLINCh0JDQktCeCivQodCQ0JzQkNCg0I/QmNCLINCh0J/QntCc0JXQndCa0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0KHQoNCV0KLQldCdCivQodCQ0JzQkNCg0I/QmNCLINCh0KDQldCi0JXQnQor0KHQkNCc0JDQoNCP0JjQiy3QodCi0JDQndCY0KjQmNCLINCc0JjQm9CQ0J3QmtCQCivQodCQ0JzQkNCg0I/QmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQkNCh0JjQm9CY0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQktCQ0KHQngor0KHQkNCc0JDQoNCP0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQkNCc0JDQoNCP0JjQiyDQktCb0JDQlNCeCivQodCQ0JzQkNCg0I/QmNCLINCS0KPQmtCQ0KjQmNCdCivQodCQ0JzQkNCg0I/QmNCLINCX0JTQoNCQ0JLQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCX0J7QoNCQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JfQo9CX0JDQndCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0ILQo9Cg0ILQmNCd0JrQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCC0KPQoNCQ0IIKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQgtCj0KDQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCR0J7QqNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQlNCV0KHQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCU0KPQqNCQ0J0KK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQk9Ce0KDQmNCm0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQiNCV0JvQldCd0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQidCj0JHQmNCm0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQidCj0JHQmNCm0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCQ0KDQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCQ0KDQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCY0JvQkNCd0JrQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCc0JjQm9CQ0J0KK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCY0JvQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCb0JUKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCY0KDQmtCeCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCc0JDQoNCP0JjQiNCQINCd0JXQkdCe0IjQqNCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0J3QntCS0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0J/QldCi0JDQoAor0KHQkNCc0JDQoNCP0JjQiNCQINCg0JDQlNCVCivQodCQ0JzQkNCg0I/QmNCI0JAg0KDQkNCU0JUKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQoNCQ0J3QmtCeCivQodCQ0JzQkNCg0I/QmNCI0JAg0KHQotCe0IjQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCc0JHQoNCQ0JjQm9CeINCR0KDQo9Cd0J4KK9Ch0JDQnNCV0KYg0JHQntCW0JXQndCa0JAKK9Ch0JDQnNCY0Jgg0JDQkdCR0JDQoQor0KHQkNCc0J7Qp9CV0KLQkCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQkNCc0J7Qp9CV0KLQkCDQnNCY0JvQlQor0KHQkNCc0J7Qp9CV0KLQkCDQndCV0JLQldCd0JrQkAor0KHQkNCc0J7Qp9CV0KLQkCDQoNCQ0JTQntCc0JjQoAor0KHQkNCc0J7QiNCb0JjQmiDQndCY0JrQntCb0JAKK9Ch0JDQnNCe0JrQntCS0JvQmNCI0JAg0JzQkNCg0JrQngor0KHQkNCc0J7Qm9Ce0JIg0JLQldCJ0JrQngor0KHQkNCc0J7Qm9Ce0JLQp9CV0JIg0JjQktCQ0J3QmtCQCivQodCQ0JzQodCe0J3QntCSINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQndCn0JDQndCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JDQndCQ0JTQldCgINCW0JjQktCa0J4KK9Ch0JDQndCQ0JTQldCgINCW0JjQktCa0J4KK9Ch0JDQndCQ0JTQldCgINCI0JXQm9CV0J3QkAor0KHQkNCd0JDQlNCV0KAg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQndCQ0JTQldCgINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JDQndCQ0JTQldCgINCS0JXQoNCQCivQodCQ0J3QlNCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KHQkNCd0JTQmNCLINCY0JLQkNCdCivQodCQ0J3QlNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQkNCd0JTQmNCa0Jgg0JDQn9Ce0KHQotCe0JsKK9Ch0JDQndCU0JjQmtCYINCa0J7QodCi0JAKK9Ch0JDQndCU0JjQmtCYINCa0J7QodCi0JAKK9Ch0JDQndCa0J7QktCY0Isg0JHQntCg0JrQngor0KHQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KHQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQkNCd0JrQntCS0JjQiyDQnNCY0KDQkAor0KHQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCQ0J3QmtCe0JLQmNCLINCh0JDQkdCY0J3QkAor0KHQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCQ0J3QotCQ0Jgg0JjQm9Ce0J3QkAor0KHQkNCd0KLQniDQpNCg0JDQitCQCivQodCQ0J3QotCeINCa0JDQoNCe0IkKK9Ch0JDQndCi0J4g0JvQkNCU0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQndCi0J4g0JfQntCb0KLQkNCdCivQodCQ0J3QotCeINCX0J7Qm9Ci0JDQnQor0KHQkNCd0KLQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9Ch0JDQndCi0J7QktCQ0KYg0InQo9CR0JjQndCa0JAKK9Ch0JDQndCi0J7QktCQ0KYg0JzQmNCb0J7QqAor0KHQkNCd0KLQntCS0JDQpiDQn9CV0KLQkNCgCivQodCQ0J3QotCe0JLQkNCmINCh0KLQldCS0JDQnQor0KHQkNCd0KLQoNCQ0Kcg0ILQo9Cg0ILQmNCd0JrQkAor0KHQkNCd0KLQoNCQ0Kcg0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCd0KLQoNCQ0Kcg0JPQntCg0JTQkNCd0JAKK9Ch0JDQndCi0KDQkNCnINCc0JjQm9CQ0J0KK9Ch0JDQndCi0KDQkNCnINCc0JjQm9Ce0KDQkNCUCivQodCQ0J3QotCg0JDQpyDQnNCe0JzQp9CY0JvQngor0KHQkNCd0KLQoNCQ0Kcg0J3QmNCa0J7Qm9CQCivQodCQ0J3QotCg0JDQpyDQoNCQ0KLQmtCeCivQodCQ0J3QotCg0JDQpyDQodCQ0JLQngor0KHQkNCd0KLQoNCQ0Kcg0KHQm9CQ0JLQmtCeCivQodCQ0J/Qo9Cd0I/QmNCLLdCc0JDQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQn9Cj0J3Qj9CY0Isg0JzQmNCb0JDQnQor0KHQkNCf0KPQndCP0JjQiyDQnNCY0KDQkAor0KHQkNCf0KPQndCP0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQkNCf0KPQndCP0JjQiNCQINCV0KDQltCV0JHQldCiCivQodCQ0J/Qo9Cd0I/QmNCI0JAg0JzQkNCg0JjQiNCQCivQodCQ0KDQp9CV0JIg0J3QkNCU0JjQptCQCivQodCQ0KDQp9CV0JIg0KDQkNCU0JjQktCe0IgKK9Ch0JDQoNCQ0KfQldCS0JjQiyDQodCg0JHQntCJ0KPQkQor0KHQkNCg0JDQpNCY0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0KDQkNCI0JvQmNCI0JAg0JTQoNCQ0JPQntCc0JjQoAor0KHQkNCg0JDQnNCQ0J3QlNCY0Isg0JzQntCc0JjQoAor0KHQkNCg0JDQnNCQ0J3QlNCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JDQoNCQ0J3QlNCQINCS0JDQodCY0InQmtCQCivQodCQ0KDQkNCf0JrQkCDQmtCQ0KLQmNCm0JAKK9Ch0JDQoNCQ0KLQm9CY0Isg0JzQmNCb0JDQnQor0KHQkNCg0JDQotCb0JjQiyDQodCg0JHQntCJ0KPQkQor0KHQkNCg0JDQktCe0JvQkNCmINCb0JDQl9CQ0KAg0JLQldCi0JXQoNCY0J3QkNCgCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0JzQkNCT0JTQkNCb0JXQndCQCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQoNCQ0JLQntCb0JDQpiDQnNCY0KDQiNCQ0J3QkAor0KHQkNCg0JDQktCe0JvQkNCmINCh0JjQndCY0KjQkCDQlNCgCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0KHQm9CQ0JLQmtCeCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0KHQkNCg0JjQiyDQgtCj0KDQkAor0KHQkNCg0JjQiyDQlNCQ0J3QmNCb0J4KK9Ch0JDQoNCY0Isg0JjQktCQ0J0KK9Ch0JDQoNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQkNCg0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQkNCg0JjQiyDQnNCY0JvQntCoCivQodCQ0KDQmNCLINCc0JjQm9Ce0IjQlSDQlNCgCivQodCQ0KDQmNCLINCg0JDQlNCe0KgKK9Ch0JDQoNCY0Isg0KDQkNCi0JrQngor0KHQkNCg0JjQiyDQotCY0JHQntCgCivQodCQ0KDQmNCLINCS0J7QiNCY0J0KK9Ch0JDQoNCY0JrQkNChINCh0J3QldCW0JDQndCQCivQodCQ0KDQmNCa0JDQoSDQktCQ0KHQmNCb0JjQiNCVCivQodCQ0KDQmtCQINCQ0KDQn9CQ0JQKK9Ch0JDQoNCa0JAg0JzQmNCl0JDQiQor0KHQkNCg0JrQntCi0JjQiyDQpNCg0JDQitCQCivQodCQ0KDQnNCV0Kgg0JzQkNCg0JjQiNCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCQ0KDQntCSINCb0JDQl9CQ0KAKK9Ch0JDQoNCS0JDQqCDQqNCQ0J3QlNCe0KAKK9Ch0JDQoNCS0JDQqCDQiNCQ0J3QntCoCivQodCQ0KDQktCQ0Jog0JDQm9CV0JrQodCQCivQodCQ0KDQktCQ0J0g0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCg0JLQkNCdINCS0IjQldCg0JAKK9Ch0JDQoSDQiNCV0J3QlQor0KHQkNCh0JjQmiDQkdCe0KDQmNCh0JvQkNCSCivQodCQ0KLQkNCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JDQotCQ0KDQmNCLINCc0JjQidCa0J4g0JTQoAor0KHQkNCi0JrQkNCd0J7QktCY0Isg0KXQkNCR0JjQkQor0KHQkNCj0JXQoCDQiNCV0JvQmNCm0JAKK9Ch0JDQo9CV0KAg0JzQkNCg0JPQmNCi0JAKK9Ch0JDQo9CV0KAg0J/QkNCS0JvQlQor0KHQkNCj0JXQoCDQoNCe0KHQkAor0KHQkNCj0JXQoCDQodCc0JjQidCQ0J3QkAor0KHQkNCj0KHQnNCQ0J0g0JvQkNCh0JvQngor0KHQkNCj0JfQldCgINCk0KDQkNCK0J4KK9Ch0JDQktCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCn0JjQiyDQnNCY0JvQkNCd0JAKK9Ch0JDQktCn0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCQ0JLQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0JDQktCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JLQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQkNCS0JAg0KTQoNCQ0IrQkAor0KHQkNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQkNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JDQndCe0JLQmNCLINCI0J7QktCeCivQodCQ0JLQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQkNCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQkNCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0JDQktCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQkNCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCS0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQodCQ0JLQkNCi0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCQ0JLQkNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JLQkNCi0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Ch0JDQktCQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQkNCi0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQktCV0InQmNCLINCn0JXQlNCe0JzQmNCgCivQodCQ0JLQldCJ0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQldCJ0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JDQktCV0InQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQktCV0InQmNCLINCS0JXQidCa0J4KK9Ch0JDQktCV0KHQmtCYINCc0JjQm9Cn0J4KK9Ch0JDQktCV0KHQmtCYINCX0J7QoNCQ0J0KK9Ch0JDQktCY0KfQldCS0JjQiyDQk9Ce0IjQmtCeCivQodCQ0JLQmNCn0JjQiyDQk9Ce0IjQmtCeCivQodCQ0JLQmNCn0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0KHQkNCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQkNCS0JjQiyDQp9CV0JTQngor0KHQkNCS0JjQiyDQi9CV0KLQmtCeCivQodCQ0JLQmNCLINCW0JjQktCa0JAKK9Ch0JDQktCY0Isg0JbQmNCS0JrQkAor0KHQkNCS0JjQiyDQgtCe0JrQkAor0KHQkNCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KHQkNCS0JjQiyDQgtCe0KDQgtCVCivQodCQ0JLQmNCLINCC0KPQoNCC0JjQiNCQCivQodCQ0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCQ0JLQmNCLINCQ0JvQldCa0KHQkAor0KHQkNCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQkNCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQkNCS0JjQiyDQkNCd0JAKK9Ch0JDQktCY0Isg0JDQndCU0KDQmNCI0JAKK9Ch0JDQktCY0Isg0JDQndCU0KDQmNCI0JAKK9Ch0JDQktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KHQkNCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0KHQkNCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0KHQkNCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQkNCS0JjQiyDQkdCe0JbQmNCc0JjQoCDQlNCgCivQodCQ0JLQmNCLINCR0J7Qk9CU0JDQnQor0KHQkNCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCQ0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0JLQmNCLINCR0KDQkNCd0JrQngor0KHQkNCS0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQodCQ0JLQmNCLINCm0JLQldCi0JrQngor0KHQkNCS0JjQiyDQlNCQ0JzQiNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQodCQ0JLQmNCLINCU0JDQndCY0KbQkAor0KHQkNCS0JjQiyDQlNCQ0KDQkAor0KHQkNCS0JjQiyDQlNCV0IjQkNCdCivQodCQ0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQodCQ0JLQmNCLINCU0JXQodCY0JzQmNCgCivQodCQ0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCQ0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQkNCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JTQoNCQ0JPQngor0KHQkNCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCQ0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQodCQ0JLQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KHQkNCS0JjQiyDQk9Ce0IjQmtCeCivQodCQ0JLQmNCLINCT0J7QoNCQ0J0KK9Ch0JDQktCY0Isg0JPQntCh0KLQmNCc0JjQoAor0KHQkNCS0JjQiyDQk9Cg0J7Ql9CU0JDQndCQCivQodCQ0JLQmNCLINCY0JvQmNCI0JAKK9Ch0JDQktCY0Isg0JjQm9CY0IjQkAor0KHQkNCS0JjQiyDQmNCS0JDQnQor0KHQkNCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQodCQ0JLQmNCLINCI0JXQm9CQCivQodCQ0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0JDQktCY0Isg0IjQldCb0JjQptCQCivQodCQ0JLQmNCLINCI0JXQktCi0J4KK9Ch0JDQktCY0Isg0IjQntCS0JDQndCa0JAKK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0JrQkNCi0JjQptCQCivQodCQ0JLQmNCLINCa0JDQotCY0KbQkAor0KHQkNCS0JjQiyDQmtCe0KHQotCQCivQodCQ0JLQmNCLINCa0KHQldCd0JjQiNCQCivQodCQ0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0JDQktCY0Isg0JvQkNCX0JDQoAor0KHQkNCS0JjQiyDQm9CV0J3QmtCQINCU0KAKK9Ch0JDQktCY0Isg0InQmNCJ0JDQndCQCivQodCQ0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQkNCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0JDQktCY0Isg0InQo9CR0JjQptCQCivQodCQ0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCQ0JLQmNCLINCJ0KPQkdCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JvQo9Ca0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQmNCLINCc0JDQoNCY0J3QkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JrQngor0KHQkNCS0JjQiyDQnNCV0I/Qngor0KHQkNCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQkNCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KHQkNCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQktCY0Isg0JzQmNCb0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQmNCLINCc0JjQm9CV0J3QkAor0KHQkNCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQkNCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQkNCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQkNCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQodCQ0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQodCQ0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JDQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCQ0JLQmNCLINCc0JjQm9CY0JLQntCICivQodCQ0JLQmNCLINCc0JjQm9CY0JLQntCICivQodCQ0JLQmNCLINCc0JjQm9Ca0J4KK9Ch0JDQktCY0Isg0JzQmNCb0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JjQiyDQnNCY0JvQntCoCivQodCQ0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JDQktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQkNCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQkNCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQkNCS0JjQiyDQnNCY0JvQntCh0JDQktCQCivQodCQ0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQodCQ0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCQ0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCQ0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCQ0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCQ0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCQ0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCY0Isg0JzQmNCg0JrQngor0KHQkNCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JLQmNCLINCc0JvQkNCU0JXQnQor0KHQkNCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KHQkNCS0JjQiyDQndCQ0JTQkAor0KHQkNCS0JjQiyDQndCQ0JTQldCW0JTQkAor0KHQkNCS0JjQiyDQndCQ0KLQkNCo0JAKK9Ch0JDQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JDQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JDQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JDQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JDQktCY0Isg0J3QldCd0JDQlAor0KHQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0JDQktCY0Isg0J3QmNCd0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQndCe0JLQngor0KHQkNCS0JjQiyDQntCb0JPQkAor0KHQkNCS0JjQiyDQntCb0JjQktCV0KDQkAor0KHQkNCS0JjQiyDQntCb0JjQktCV0KDQkAor0KHQkNCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ch0JDQktCY0Isg0J/QkNCS0JvQlQor0KHQkNCS0JjQiyDQn9CV0KDQkAor0KHQkNCS0JjQiyDQn9CV0KLQkNCgCivQodCQ0JLQmNCLINCf0JXQotCQ0KAKK9Ch0JDQktCY0Isg0J/QldCi0JDQoAor0KHQkNCS0JjQiyDQn9CV0KLQkNCgCivQodCQ0JLQmNCLINCf0JvQkNCd0JjQndCa0JAKK9Ch0JDQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0JDQktCY0Isg0J/QoNCe0JrQntCf0JjQiNCVCivQodCQ0JLQmNCLINCg0JDQlNCY0KjQkAor0KHQkNCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0KHQkNCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQkNCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQkNCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQkNCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQodCQ0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCQ0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCQ0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JLQmNCLINCg0JDQmtCY0IsKK9Ch0JDQktCY0Isg0KDQkNCi0JrQngor0KHQkNCS0JjQiyDQoNCQ0KLQmtCeCivQodCQ0JLQmNCLINCg0JXQidCQINCU0KAKK9Ch0JDQktCY0Isg0KDQldCd0JDQotCQCivQodCQ0JLQmNCLINCg0J7QmtCh0JDQndCU0JAKK9Ch0JDQktCY0Isg0KDQo9CW0JjQptCQCivQodCQ0JLQmNCLINCh0JDQqNCQCivQodCQ0JLQmNCLINCh0JDQktCQINCQ0JTQktCe0JrQkNCiCivQodCQ0JLQmNCLINCh0JDQktCQCivQodCQ0JLQmNCLINCh0JDQktCQCivQodCQ0JLQmNCLINCh0JDQktCQCivQodCQ0JLQmNCLINCh0JjQnNCV0KPQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0KHQmNCd0JjQqNCQCivQodCQ0JLQmNCLINCh0JvQkNCS0JrQngor0KHQkNCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQodCQ0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Ch0JDQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQkNCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCQ0JLQmNCLINCh0JzQmNCJ0JAKK9Ch0JDQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ch0JDQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ch0JDQktCY0Isg0KHQoNCC0JDQnQor0KHQkNCS0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQodCQ0JLQmNCLINCh0KDQldCi0JAKK9Ch0JDQktCY0Isg0KHQotCV0JLQkNCdCivQodCQ0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Ch0JDQktCY0Isg0KHQotCe0IjQkNCdCivQodCQ0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCY0Isg0KHQktCV0J3QmtCQCivQodCQ0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JDQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQkNCS0JjQiyDQotCQ0KLQntCc0JjQoAor0KHQkNCS0JjQiyDQotCV0J7QlNCe0KAKK9Ch0JDQktCY0Isg0KLQmNCd0JrQkAor0KHQkNCS0JjQiyDQotCe0JTQntCgCivQodCQ0JLQmNCLINCi0J7QlNCe0KAKK9Ch0JDQktCY0Isg0KLQntCU0J7QoAor0KHQkNCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCQ0JLQmNCLINCj0KDQntCoCivQodCQ0JLQmNCLINCS0JXQidCa0J4KK9Ch0JDQktCY0Isg0JLQldCg0JjQptCQCivQodCQ0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQkNCS0JjQiyDQktCV0KHQndCQCivQodCQ0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQodCQ0JLQmNCLINCS0JjQotCe0JzQmNCgCivQodCQ0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCS0JjQiyDQktCe0IjQkAor0KHQkNCS0JjQiyDQktCj0JrQkNCdCivQodCQ0JLQmNCLINCS0KPQmtCe0KLQkAor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JDQktCY0Isg0JfQntCg0JDQnQor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JDQktCY0Isg0JfQntCg0JAKK9Ch0JDQktCY0J0g0JbQmNCS0JrQkAor0KHQkNCS0JjQnSDQltCY0JLQmtCeCivQodCQ0JLQmNCdINCC0J7QoNCC0JUKK9Ch0JDQktCY0J0g0ILQo9Cg0ILQmNCd0JrQkAor0KHQkNCS0JjQnSDQkdCV0KDQmNCh0JvQkNCSCivQodCQ0JLQmNCdINCR0JjQidCQ0J3QkCDQlNCgCivQodCQ0JLQmNCdINCR0J7QoNCQCivQodCQ0JLQmNCdINCU0JDQndCY0KbQkAor0KHQkNCS0JjQnSDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JLQmNCdINCU0KDQkNCT0J7QnNCY0KAKK9Ch0JDQktCY0J0g0JTQoNCV0J3QmtCQCivQodCQ0JLQmNCdINCU0KPQqNCQ0J0KK9Ch0JDQktCY0J0g0JTQo9Co0JDQnQor0KHQkNCS0JjQnSDQiNCe0JLQkNCdCivQodCQ0JLQmNCdINCI0J7QktCQ0J0KK9Ch0JDQktCY0J0g0IjQo9Cb0JrQkAor0KHQkNCS0JjQnSDQm9CQ0KHQm9CeCivQodCQ0JLQmNCdINCb0JDQl9CQ0KAKK9Ch0JDQktCY0J0g0InQo9CR0JjQndCa0JAKK9Ch0JDQktCY0J0g0JzQkNCT0JTQkAor0KHQkNCS0JjQnSDQnNCY0JvQldCS0JAKK9Ch0JDQktCY0J0g0JzQmNCb0JjQptCQCivQodCQ0JLQmNCdINCc0JjQm9Ca0JAKK9Ch0JDQktCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0J0g0JzQmNCb0J7QktCQ0J0KK9Ch0JDQktCY0J0g0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0J7QldCmCivQodCQ0JLQmNCdINCc0JjQoNCI0JDQndCQCivQodCQ0JLQmNCdINCc0JjQoNCI0JDQndCQCivQodCQ0JLQmNCdINCd0JjQmtCe0JvQkAor0KHQkNCS0JjQnSDQn9CQ0JLQm9CVCivQodCQ0JLQmNCdINCf0KDQldCU0KDQkNCTCivQodCQ0JLQmNCdINCg0JDQlNCY0JLQntCICivQodCQ0JLQmNCdINCh0JDQktCQCivQodCQ0JLQmNCdINCh0J3QldCW0JDQndCQCivQodCQ0JLQmNCdINCh0J/QmNCg0JjQlNCe0J0KK9Ch0JDQktCY0J0g0KHQotCQ0J3QkAor0KHQkNCS0JjQnSDQotCe0JTQntCgCivQodCQ0JLQmNCdINCi0J7QlNCe0KAKK9Ch0JDQktCY0J0g0JLQldCg0JjQptCQCivQodCQ0JLQmNCdINCS0KPQmtCe0KHQkNCS0JAKK9Ch0JDQktCY0J0g0JfQntCg0JAKK9Ch0JDQktCa0JXQidCY0J0g0KHQotCV0JLQkNCdCivQodCQ0JLQmtCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JrQntCSINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQktCa0J7QkiDQmNCb0JjQiNCQCivQodCQ0JLQmtCe0JIg0JzQmNCb0JDQnQor0KHQkNCS0JrQntCSINCi0J7QlNCe0KAKK9Ch0JDQktCa0J7QkiDQktCV0KDQkAor0KHQkNCS0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0JDQktCa0J7QkiDQl9Ce0KDQkNCdCivQodCQ0JLQmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQodCQ0JLQmtCe0JLQmNCLINCI0JDQitCQCivQodCQ0JLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCQ0JLQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCa0J7QktCY0Isg0J3QldCc0JDQitCQCivQodCQ0JLQmtCe0JLQmNCLINCh0JDQktCQCivQodCQ0JLQmtCe0JLQmNCLINCh0JDQktCeCivQodCQ0JLQmtCe0JLQmNCLINCh0KLQkNCo0JAKK9Ch0JDQktCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0JDQktCa0J7QktCY0Isg0JLQo9Ca0JAKK9Ch0JDQktCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0JDQktCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQodCQ0JLQntCS0JjQiyDQpNCQ0KLQmNCc0JAKK9Ch0JDQktCe0JLQmNCLINCJ0KPQkdCeCivQodCQ0JLQntCS0JjQiyDQm9Cj0JrQkAor0KHQkNCS0J7QktCY0Isg0J3QldCd0JDQlAor0KHQkNCS0J7QktCY0Isg0KDQkNCU0JUKK9Ch0JDQktCjLdCc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQkNCS0KMg0KLQmNCR0JgKK9Ch0JDQktCj0InQmNCLINCg0JDQlNCe0JzQmNCgCivQodCQ0JfQlNCQ0J3QmNCLINCC0J7QmtCQCivQodCQ0JfQlNCQ0J3QmNCLINCf0JDQktCb0JUKK9Ch0JDQl9CU0JDQndCY0Isg0KHQotCV0JLQkNCdCivQodCV0KfQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Ch0JXQp9CV0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JXQp9CV0J0g0KHQktCV0KLQntCX0JDQoCDQlNCgCivQodCV0KfQldCK0Jgg0JjQkdCe0InQkAor0KHQldCn0Jgg0JjQqNCi0JLQkNCdCivQodCV0KfQmNCS0JDQndCe0JLQmNCLINCb0JXQn9Co0JAKK9Ch0JXQp9CY0JLQkNCd0J7QktCY0Isg0JvQldCf0KjQkAor0KHQldCn0JjQktCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQodCV0KfQo9CI0KHQmtCYINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0KHQldCn0KPQiNCh0JrQmCDQlNCQ0J3QmNCb0J4KK9Ch0JXQp9Cj0IjQodCa0Jgg0JzQm9CQ0JTQldCdCivQodCV0KfQo9CI0KHQmtCYINCg0JDQlNCY0JLQntCICivQodCV0JHQkNCh0KLQmNCQ0J0g0JXQoNCd0JUKK9Ch0JXQkdCQ0KHQotCY0JDQnSDQiNCe0KXQkNCd0JAKK9Ch0JXQkdCQ0KHQotCY0IjQkNCdINCX0JvQkNCi0JrQngor0KHQldCR0JXQm9CV0JTQmCDQn9CQ0JLQm9CVCivQodCV0JHQldCK0Jgg0KTQldCg0JXQndCmCivQodCV0JHQldCK0Jgg0KTQoNCQ0IrQkAor0KHQldCR0JjQqNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQodCV0JHQmNCo0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0JXQlNCV0Igg0IjQkNCd0JXQlwor0KHQldCU0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCU0JXQoCDQmNCS0JjQptCQCivQodCV0JTQldCgINCh0JvQkNCS0JrQngor0KHQldCU0JXQoCDQktCb0JDQlNCY0JzQmNCgCivQodCV0JTQldCg0JvQkNCd0JQg0ILQntCg0ILQlQor0KHQldCU0JvQkNCn0JXQmiDQodCQ0KDQkAor0KHQldCU0JvQkNCaINCQ0J3QlNCg0JDQqAor0KHQldCU0JvQkNCdINCY0JvQmNCI0JAKK9Ch0JXQlNCb0JDQnSDQnNCQ0J3QntCI0JvQngor0KHQldCU0JvQkNCdINCc0JjQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCV0JTQm9CQ0J0g0KDQkNCU0J7QodCb0JDQkgor0KHQldCU0JvQkNCdINCh0JDQktCQCivQodCV0JTQm9CQ0KAg0JjQm9CY0IjQkAor0KHQldCU0JvQkNCgINCc0JDQndCVCivQodCV0JTQm9CQ0KAg0JzQmNCb0JjQptCQCivQodCV0JTQm9CQ0KAg0JzQmNCb0JjQptCQCivQodCV0JTQm9CQ0KAg0J3QkNCU0JAKK9Ch0JXQlNCc0JDQmiDQlNCg0JDQk9CQ0J0KK9Ch0JXQlNCc0JDQmiDQktCb0JDQlNCeCivQodCV0KTQp9CY0Jog0JbQo9CW0JDQndCQCivQodCV0KTQldCgINCc0JDQoNCY0IjQkAor0KHQldCk0JXQoCDQodCQ0JrQmNCRCivQodCV0KTQldCgINCh0JXQndCQ0JQKK9Ch0JXQpNCV0KDQntCS0JjQiyDQodCj0JDQlAor0KHQldCTINCW0KPQltCQ0J3QkAor0KHQldCTINCY0JzQoNCVCivQodCV0JPQldCU0Jgg0JHQoNCQ0J3QmtCQCivQodCV0JPQldCU0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQodCV0JPQldCU0Jgg0JXQktCT0JXQndCY0IjQlQor0KHQldCT0JXQlNCYINCY0JLQmNCm0JAKK9Ch0JXQk9CV0JTQmCDQiNCe0KHQmNCfCivQodCV0JPQldCU0Jgg0IjQntCS0JDQnQor0KHQldCT0JXQlNCYINCI0KPQm9CY0IjQkNCdCivQodCV0JPQldCU0Jgg0JrQkNCg0J7QiQor0KHQldCT0JXQlNCYLdCa0J7QktCQ0KfQldCSINCR0KDQkNCd0JrQkCDQlNCgCivQodCV0JPQldCU0Jgg0JrQodCV0J3QmNCI0JAKK9Ch0JXQk9CV0JTQmCDQm9CV0J7QndCQCivQodCV0JPQldCU0Jgg0JzQkNCg0JjQiNCQCivQodCV0JPQldCU0Jgg0JzQldCb0JjQotCQCivQodCV0JPQldCU0Jgg0JzQmNCb0JXQndCQCivQodCV0JPQldCU0Jgg0KHQm9CQ0JLQmNCm0JAKK9Ch0JXQk9CV0JTQmCDQodCi0JXQktCQ0J0KK9Ch0JXQk9CV0JTQmCDQktCb0JDQlNCY0JzQmNCgCivQodCV0JPQldCU0JjQndCQ0KYg0JTQo9Co0JrQngor0KHQldCT0JXQlNCY0J3QkNCmINCd0JDQotCQ0JvQmNCI0JAKK9Ch0JXQk9CV0JTQmNCd0JDQpiDQl9CU0KDQkNCS0JrQngor0KHQldCT0JXQlNCY0J3QodCa0Jgg0JDQoNCa0JDQlNCY0IjQlQor0KHQldCT0JXQlNCY0J3QodCa0Jgg0JHQntCI0JrQngor0KHQldCT0JXQlNCY0J3QodCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQldCT0JXQlNCY0J3QodCa0Jgg0J3QldCh0KLQntCgCivQodCV0JPQldCU0JjQndCh0JrQmCDQodCQ0JLQkAor0KHQldCT0JXQlNCY0J3QodCa0Jgg0KLQntCc0JAKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCS0JjQotCe0JzQmNCgCivQodCV0JPQmCDQm9CQ0KHQm9CeCivQodCV0JPQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JXQk9CY0Isg0KDQkNCd0JrQngor0KHQldCY0JfQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQldCa0JDQpyDQn9CV0KLQkNCgCivQodCV0JrQlSDQkNCg0J/QkNCUCivQodCV0JrQlSDQldCS0JAKK9Ch0JXQmtCVINCY0JvQmNCI0JAKK9Ch0JXQmtCVINCI0J7QodCY0J8KK9Ch0JXQmtCVINCa0JDQotCQ0KDQmNCd0JAKK9Ch0JXQmtCVINCh0KLQldCS0JDQnQor0KHQldCa0JUg0KHQotCV0JLQkNCdCivQodCV0JrQldCJINCI0JDQndCYCivQodCV0JrQldCJINCI0J7QodCY0J8KK9Ch0JXQmtCV0Ikg0JzQkNCg0JjQiNCQCivQodCV0JrQldCJINCg0KPQltCY0KbQkAor0KHQldCa0JXQoNCV0Kgg0KjQkNCd0JTQntCgCivQodCV0JrQldCg0JXQqCDQgtCj0JvQkAor0KHQldCa0JXQoNCV0Kgg0JTQldCd0JXQqAor0KHQldCa0JXQoNCV0Kgg0JXQotCV0JsKK9Ch0JXQmtCV0KDQldCoINCk0JXQoNCV0J3QpiDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQmtCV0KDQldCoINCk0JXQoNCV0J3Qpgor0KHQldCa0JXQoNCV0Kgg0JjQqNCi0JLQkNCdCivQodCV0JrQldCg0JXQqCDQmNCo0KLQktCQ0J0KK9Ch0JXQmtCV0KDQldCoINCY0KDQldCd0JAKK9Ch0JXQmtCV0KDQldCoINCI0J7QltCV0KQKK9Ch0JXQmtCV0KDQldCoINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JXQmtCV0KDQldCoINCI0KPQm9CY0IjQkAor0KHQldCa0JXQoNCV0Kgg0JrQkNCg0J7QiQor0KHQldCa0JXQoNCV0Kgg0JrQkNCi0JjQptCQCivQodCV0JrQldCg0JXQqCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0KHQldCa0JXQoNCV0Kgg0J3QkNCd0JTQntCgCivQodCV0JrQldCg0JXQqCDQodCi0JXQktCQ0J0KK9Ch0JXQmtCV0KDQldCoINCi0JjQkdCe0KAKK9Ch0JXQmtCV0KDQldCoINCS0JXQoNCQCivQodCV0JrQldCg0JXQl9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JXQmtCV0KDQmNCLINCh0KLQldCS0JDQnQor0KHQldCa0JXQoNCj0Kgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JXQmtCV0KDQo9CoINCJ0KPQkdCY0KbQkAor0KHQldCa0JXQoNCj0Kgg0JzQmNCb0JrQmNCm0JAKK9Ch0JXQmtCV0KDQo9CoINCc0JjQoNCI0JDQndCQCivQodCV0JrQldCg0KPQqCDQn9CQ0JLQm9CVCivQodCV0JrQldCg0KPQqCDQn9CV0KLQkNCgCivQodCV0JrQldCg0KPQqCDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0JXQmtCV0KDQo9CoINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JXQmtCY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCV0JrQmNCm0JrQmCDQldCc0JjQm9CY0IjQkAor0KHQldCa0JjQptCa0Jgg0JjQodCY0JTQntCgCivQodCV0JrQmNCm0JrQmCDQm9CQ0JfQkNCgCivQodCV0JrQmNCm0JrQmCDQnNCQ0KDQmNCm0JAKK9Ch0JXQmtCY0KbQmtCYINCc0JjQm9Ce0KDQkNCUCivQodCV0JrQmNCm0JrQmCDQn9CV0KLQkNCgCivQodCV0JrQmNCm0JrQmCDQktCV0InQkAor0KHQldCa0JjQlyDQltCY0JLQmtCeCivQodCV0JrQmNCXINCY0JvQmNCI0JAKK9Ch0JXQmtCY0Jcg0IjQntCS0JDQnQor0KHQldCa0JjQlyDQnNCV0JvQkNCd0JjQiNCQCivQodCV0JrQmNCXINCf0JXQotCQ0KAKK9Ch0JXQmtCY0Jcg0J/QldCi0JDQoAor0KHQldCa0JjQlyDQoNCQ0JTQmNCS0J7QiAor0KHQldCa0JjQlyDQodCe0IrQkAor0KHQldCa0J7QqNCQ0J0g0InQo9CR0JjQptCQCivQodCV0JrQntCo0JDQnSDQnNCQ0KDQmNCd0JAKK9Ch0JXQmtCe0Jsg0JzQmNCb0JrQkAor0KHQldCa0J7QodCa0Jgg0IjQntCc0KfQlQor0KHQldCa0J7QktCh0JrQmCDQoNCQ0JTQlQor0KHQldCa0KDQldCKINCI0J7QltCV0KQKK9Ch0JXQmtCj0JvQmNCLINCn0JXQlNCY0KbQkAor0KHQldCa0KPQm9CY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0JXQmtCj0JvQmNCLINCW0JDQoNCa0J4KK9Ch0JXQmtCj0JvQmNCLINCW0JjQktCa0J4KK9Ch0JXQmtCj0JvQmNCLINCW0JjQktCa0J4KK9Ch0JXQmtCj0JvQmNCLINCW0JjQktCe0IjQmNCdINCU0JjQn9CbINCY0J3Qkwor0KHQldCa0KPQm9CY0Isg0ILQntCg0ILQlQor0KHQldCa0KPQm9CY0Isg0ILQntCg0ILQlQor0KHQldCa0KPQm9CY0Isg0ILQo9Cg0ILQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCC0KPQoNCQ0IIKK9Ch0JXQmtCj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCV0JrQo9Cb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCa0KPQm9CY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JXQmtCj0JvQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Ch0JXQmtCj0JvQmNCLINCR0J7QltCY0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0KHQldCa0KPQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JXQmtCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0JTQkNCd0JUKK9Ch0JXQmtCj0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQodCV0JrQo9Cb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JTQldCh0JDQndCa0JAKK9Ch0JXQmtCj0JvQmNCLINCU0JXQodCQ0J3QmtCQCivQodCV0JrQo9Cb0JjQiyDQlNCe0KHQotCQCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JXQmtCj0JvQmNCLINCU0KDQkNCT0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQlNCj0KjQkNCdCivQodCV0JrQo9Cb0JjQiyDQlNCj0KjQkNCdCivQodCV0JrQo9Cb0JjQiyDQlNCj0KjQkNCdCivQodCV0JrQo9Cb0JjQiyDQlNCj0KjQkNCdCivQodCV0JrQo9Cb0JjQiyDQmNCb0JjQiNCQCivQodCV0JrQo9Cb0JjQiyDQmNCb0JjQiNCQCivQodCV0JrQo9Cb0JjQiyDQmNCS0JDQnQor0KHQldCa0KPQm9CY0Isg0JjQktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCa0JDQotCY0KbQkAor0KHQldCa0KPQm9CY0Isg0JvQkNCX0JDQoAor0KHQldCa0KPQm9CY0Isg0InQmNCJ0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQidCY0InQkNCd0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCY0KjQkAor0KHQldCa0KPQm9CY0Isg0InQo9CR0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCY0KbQkAor0KHQldCa0KPQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0JXQmtCj0JvQmNCLINCc0JDQoNCY0IjQkAor0KHQldCa0KPQm9CY0Isg0JzQkNCg0JjQiNCQCivQodCV0JrQo9Cb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQi9CeCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9CV0J3QkAor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQldCa0KPQm9CY0Isg0JzQmNCJ0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCa0KPQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0JXQmtCj0JvQmNCLINCc0JjQntCU0KDQkNCTCivQodCV0JrQo9Cb0JjQiyDQnNCY0KDQkAor0KHQldCa0KPQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0KDQmtCeCivQodCV0JrQo9Cb0JjQiyDQndCV0JPQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCd0JXQnNCQ0IrQkAor0KHQldCa0KPQm9CY0Isg0J7Qm9CT0JAKK9Ch0JXQmtCj0JvQmNCLINCe0JvQmNCS0JXQoNCQCivQodCV0JrQo9Cb0JjQiyDQn9CQ0JLQm9CVCivQodCV0JrQo9Cb0JjQiyDQn9CQ0JLQm9CVCivQodCV0JrQo9Cb0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Ch0JXQmtCj0JvQmNCLINCf0JXQotCQ0KAKK9Ch0JXQmtCj0JvQmNCLINCf0JXQotCa0J4KK9Ch0JXQmtCj0JvQmNCLINCg0JDQlNCVCivQodCV0JrQo9Cb0JjQiyDQoNCQ0JTQmNCS0J7QiCDQnNCgCivQodCV0JrQo9Cb0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQldCa0KPQm9CY0Isg0KDQkNCU0J7QodCQ0JIKK9Ch0JXQmtCj0JvQmNCLINCg0KPQltCY0KbQkAor0KHQldCa0KPQm9CY0Isg0KHQmNCc0J4KK9Ch0JXQmtCj0JvQmNCLINCh0JvQkNCS0JrQngor0KHQldCa0KPQm9CY0Isg0KHQnNCY0InQkAor0KHQldCa0KPQm9CY0Isg0KHQn9CQ0KHQkAor0KHQldCa0KPQm9CY0Isg0KHQn9CQ0KHQngor0KHQldCa0KPQm9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQodCi0JDQndCe0IjQlQor0KHQldCa0KPQm9CY0Isg0KHQotCV0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCj0JvQmNCLINCh0KLQntCI0JDQnQor0KHQldCa0KPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQldCa0KPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQldCa0KPQm9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Ch0JXQmtCj0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JXQmtCj0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JXQmtCj0JvQmNCLINCj0KHQotCY0IjQkNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JLQkNCb0JXQndCi0JjQndCQCivQodCV0JrQo9Cb0JjQiyDQktCV0J3Qngor0KHQldCa0KPQm9CY0Isg0JLQmNCU0J7QiNCVCivQodCV0JrQo9Cb0JjQiyDQktCY0J3QmtCeCivQodCV0JrQo9Cb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQktCb0JDQlNCeCivQodCV0JrQo9Cb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQl9Ce0KDQkNCdCivQodCV0JrQo9Cb0JjQiyDQl9Ce0KDQkNCdCivQodCV0JrQo9Cb0JjQiyDQl9Ce0KDQkAor0KHQldCa0KPQm9CY0Isg0JfQntCg0JjQptCQCivQodCV0JrQo9Cb0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Ch0JXQmtCj0JvQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KHQldCa0KPQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCV0JrQo9Cb0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQldCa0KPQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0KHQldCbINCQ0J3QkAor0KHQldCbINCI0J7QltCV0KQKK9Ch0JXQmyDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0JvQkNCaINCI0J7QktCQ0J0KK9Ch0JXQm9CQ0Jog0IjQntCS0J4KK9Ch0JXQm9CQ0Jog0JzQmNCg0IjQkNCd0JAKK9Ch0JXQm9CQ0Jog0KHQotCV0JLQkNCdCivQodCV0JvQkNCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkCDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0KHQldCb0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQldCb0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0JXQm9CQ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCV0JvQkNCa0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQodCV0JvQkNCa0J7QktCY0Isg0JLQntCI0JAKK9Ch0JXQm9CV0Kgg0JrQkNCg0J7QiQor0KHQldCb0JXQqCDQmtCQ0KDQntCJCivQodCV0JvQldCoINCc0JjQpdCQ0IjQm9CeCivQodCV0JvQldCo0Jgg0JXQm9CX0JAKK9Ch0JXQm9CV0KjQmCDQldCi0JXQm9Ca0JAKK9Ch0JXQm9CV0KjQmCDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0JvQldCo0Jgg0JvQkNCh0JvQngor0KHQldCb0JXQqNCYINCc0JDQk9CU0JDQm9CV0J3QkAor0KHQldCb0JXQqNCYINCc0JDQoNCY0IjQkAor0KHQldCb0JXQqNCYINCf0JDQmwor0KHQldCb0JXQqNCYINCh0KLQldCS0JDQnQor0KHQldCb0JXQqNCYINCS0JjQndCm0JUKK9Ch0JXQm9CV0KjQmCDQl9Ce0JvQotCQ0J0KK9Ch0JXQm9CV0J3QkCDQiNCV0JvQldCd0JAKK9Ch0JXQm9CV0J3QkCDQndCY0JrQntCb0JAKK9Ch0JXQm9CV0J3QmNCLINCQ0J3QmtCY0KbQkAor0KHQldCb0Jgg0JXQotCV0JvQmtCQCivQodCV0JvQmCDQmNCo0KLQktCQ0J0g0JTQoAor0KHQldCb0Jgg0JzQmNCa0JvQntCoCivQodCV0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0JXQm9CY0Isg0JzQmNCL0J4KK9Ch0JXQm9CY0Isg0JzQmNCb0J7QqAor0KHQldCb0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCb0JjQpSDQlNCQ0J3QmNCb0J4KK9Ch0JXQm9CY0KUg0JTQoNCQ0JPQngor0KHQldCb0JjQmiDQiNCe0KHQmNCfCivQodCV0JvQmNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Ch0JXQm9CY0JzQntCS0JjQiyDQnNCj0KHQotCQ0KTQkAor0KHQldCb0JjQndCT0JXQoCDQk9CQ0JHQoNCY0IjQldCb0JAKK9Ch0JXQidCQ0JrQntCSINCd0JDQlNCQCivQodCV0JvQnNCQ0J0g0KXQkNCa0JjQiNCQCivQodCV0JvQodCa0Jgg0JDQndCQCivQodCV0JvQodCa0Jgg0JzQkNCg0JjQiNCQCivQodCV0JvQktCV0KAg0JDQm9CY0J3QkNCC0JgKK9Ch0JXQnNCQ0J0g0IjQntCQ0JrQmNCcCivQodCV0JzQldCU0JXQoCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0JXQnNCV0JTQldCgINCh0KPQl9CQ0J3QkAor0KHQldCc0JXQlNCV0KAg0KHQo9CX0JDQndCQCivQodCV0JzQldCaINCn0JDQkdCQCivQodCV0JzQldCaINCn0JjQm9CQCivQodCV0JzQldCd0KHQmtCYINCa0J7QoNCd0JXQm9CY0IjQkAor0KHQldCc0JXQoNCV0JTQmCDQiNCe0JbQldCkCivQodCV0JzQldCg0JXQlNCYINCS0JXQoNCQCivQodCV0JzQmNCXINCa0JDQotCY0KbQkAor0KHQldCc0JjQl9Ce0JLQmNCLINCh0JDQlNCY0JoKK9Ch0JXQnNCd0JjQpiDQoNCj0JTQntCb0KQg0JTQoAor0KHQldCdINCc0JDQoNCi0JjQnQor0KHQldCd0KfQo9CaINCh0JvQkNCS0JjQptCQCivQodCV0J3Qp9Cj0Jog0KHQotCV0JLQngor0KHQldCd0IvQkNCd0KHQmtCYINCI0KPQm9CY0IjQkAor0KHQldCd0IvQkNCd0KHQmtCYINCa0JDQotCY0KbQkAor0KHQldCd0IvQkNCd0KHQmtCYINCd0JDQlNCQCivQodCV0J3Qi9CQ0J3QodCa0Jgg0J/QldCi0JDQoAor0KHQldCd0IvQkNCd0KHQmtCYINCX0J7QoNCQCivQodCV0J3QkNCo0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQldCd0KbQmCDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0J3QlNCV0KDQkNCaINCC0KPQoNCQCivQodCV0J3QlNCV0KDQkNCaINCV0KPQk9CV0J0KK9Ch0JXQndCU0JXQoNCQ0Jog0JvQmNCU0JjQiNCQCivQodCV0J3QlNCV0KDQkNCaINCc0JXQm9CQ0J3QmNCI0JAKK9Ch0JXQndCU0JXQoNCQ0Jog0JzQmNCg0JrQngor0KHQldCd0JTQldCg0JDQmiDQndCY0JrQntCb0JAKK9Ch0JXQndCU0JXQoNCQ0Jog0J/QldCi0JDQoAor0KHQldCd0JTQldCg0JDQmiDQodCY0JvQktCV0KHQotCV0KAKK9Ch0JXQndCV0KjQmCDQiNCV0JvQldCd0JAKK9Ch0JXQndCY0Isg0JDQndCY0KbQkAor0KHQldCd0JjQiyDQmNCS0JDQndCa0JAKK9Ch0JXQndCY0Isg0JvQkNCX0JDQoAor0KHQldCd0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCd0JjQiyDQoNCY0KHQotCeCivQodCV0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JXQitCV0Kgg0KjQkNCd0JTQntCgCivQodCV0IrQmCDQkNCT0J7QqNCi0J7QnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQitCYINCY0JvQntCd0JAKK9Ch0JXQitCYINCY0KDQldCd0JAKK9Ch0JXQndCi0JUg0InQo9CR0JjQptCQCivQodCV0J3QotCVINCf0JXQotCQ0KAKK9Ch0JXQndCi0JjQnSDQp9CV0JTQntCc0JjQoAor0KHQldCd0KLQmNCS0JDQndCQ0KYg0ILQntCg0ILQlQor0KHQldCd0KLQmNCS0JDQndCQ0KYg0JzQkNCg0JrQngor0KHQldCd0KLQmNCS0JDQndCQ0KYg0JzQmNCb0JDQnQor0KHQldCd0KLQmNCS0JDQndCQ0KYg0JzQmNCb0J7QqAor0KHQldCd0KLQmNCS0JDQndCQ0KYg0JzQntCc0JjQoAor0KHQldCd0KLQmNCS0JDQndCQ0KYg0KHQkNCS0JAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCh0JLQldCi0JvQkNCd0JAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCi0J7QlNCe0KAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCS0JXQodCd0JAKK9Ch0JXQndCi0JzQkNCg0KLQntCd0Jgg0KTQldCg0JXQndCmCivQodCV0J8g0JDQndCi0JDQmwor0KHQldCfINCU0JXQltCVINCU0KAg0JvQldCa0JDQoAor0KHQldCfINCk0JXQoNCV0J3Qpgor0KHQldCfLdCS0JDQoNCT0JAg0JXQnNCY0JvQmNCI0JAKK9Ch0JXQoNCQ0KTQmNCc0J7QkiDQmtCY0KDQmNCbCivQodCV0KDQkNCi0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQodCV0KDQkNCi0JvQmNCLINCU0JDQoNCa0JAKK9Ch0JXQoNCQ0KLQm9CY0Isg0JPQntCb0KPQkQor0KHQldCg0JDQotCb0JjQiyDQnNCY0KDQkNCoCivQodCV0KDQkNCi0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCV0KDQkNCi0JvQmNCLINCS0JXQm9CY0JzQmNCgINCU0KAKK9Ch0JXQoNCQ0KLQm9CY0Isg0JfQntCg0JDQnQor0KHQldCg0JTQkCDQqNCQ0J3QlNCe0KAKK9Ch0JXQoNCU0JDQoCDQlNCQ0J3QmNCm0JAKK9Ch0JXQoNCU0JDQoCDQmNCb0JjQiNCQCivQodCV0KDQlNCQ0KAg0JzQkNCg0JAKK9Ch0JXQoNCU0JDQoCDQnNCb0JDQlNCV0J0KK9Ch0JXQoNCU0JDQoCDQndCV0JTQldCJ0JrQngor0KHQldCg0JTQkNCgINCf0JXQotCQ0KAKK9Ch0JXQoNCU0JDQoCDQn9CV0KLQkNCgCivQodCV0KDQlNCQ0KDQldCS0JjQiyDQi9CQ0JfQmNCcCivQodCV0KDQlNCQ0KDQldCS0JjQiyDQk9CY0JfQldCb0JAKK9Ch0JXQoNCV0KjQmCDQpNCV0KDQldCd0KYKK9Ch0JXQoNCV0KjQmCDQmNCo0KLQktCQ0J0KK9Ch0JXQoNCV0KjQmCDQm9CQ0KHQm9CeCivQodCV0KDQldCo0Jgg0KDQntCX0JDQm9CY0IjQkAor0KHQldCg0JXQqNCYINCh0KLQldCS0JDQnQor0KHQldCg0JXQqNCYINCi0JjQkdCe0KAKK9Ch0JXQoNCV0J3Qp9CVINCb0JDQlNCY0KHQm9CQ0JIKK9Ch0JXQoNCV0J3Qp9CV0Kgg0IjQntCW0JXQpCDQndCe0JLQmNCd0JDQoAor0KHQldCg0J3QldCmINCh0KLQldCS0JDQnQor0KHQldCg0KLQmNCLINCU0KDQkNCT0JDQnQor0KHQldCg0KLQmNCLINCc0JDQoNCY0IjQkAor0KHQldCg0KLQmNCLINCc0JDQotCY0IjQkAor0KHQldCg0KLQmNCLINCc0JjQm9CQ0J0KK9Ch0JXQoNCi0JjQiyDQktCb0JDQlNCQCivQodCV0KLQldCd0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCV0JLQldCgINCo0JjQnNCVCivQodCV0JLQldCg0JjQndCYINCI0JDQnQor0KHQldCS0JjQiyDQgtCe0KDQgtCVCivQodCV0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQodCV0JLQmtCY0Isg0JHQoNCQ0J3QmtCeCivQodCV0JLQmtCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQodCY0Kcg0JDQndCU0KDQmNCI0JAKK9Ch0JjQpyDQlNCg0JDQk9CQ0J0KK9Ch0JjQpyDQpNCV0KDQldCd0KYKK9Ch0JjQpyDQmNCc0KDQlQor0KHQmNCnINCI0J7QltCV0KQKK9Ch0JjQpyDQiNCe0KHQmNCfCivQodCY0Kcg0IjQntCh0JjQnwor0KHQmNCnINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JjQpyDQmtCQ0JvQnNCQ0J0KK9Ch0JjQpyDQmtCQ0JvQnNCQ0J0KK9Ch0JjQpyDQnNCQ0KDQk9CY0KLQkAor0KHQmNCnINCc0JDQoNCY0IjQkAor0KHQmNCnINCc0JDQoNCY0IjQkAor0KHQmNCnINCc0JjQpdCQ0IkKK9Ch0JjQpyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0JjQpyDQn9CV0KLQkNCgINCU0KAg0JvQldCa0JDQoAor0KHQmNCnINCf0JjQoNCe0KjQmtCQCivQodCY0Kcg0KHQotCV0JLQkNCdCivQodCY0Kcg0KHQotCV0JLQkNCdCivQodCY0Kcg0KHQotCV0JLQkNCdCivQodCY0Kcg0KLQldCg0JXQl9CQCivQodCY0Kcg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCY0Kcg0JfQm9CQ0KLQmtCeCivQodCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQmNCLINCh0JvQkNCC0JDQndCQCivQodCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCY0Isg0KHQotCQ0J3QmtCeCivQodCY0ILQmCDQnNCY0KDQmtCeCivQodCY0JHQldCgINCY0KjQotCS0JDQnQor0KHQmNCR0JXQoCDQmNCo0KLQktCQ0J0KK9Ch0JjQkdCY0J3QkNCmINCS0KPQmtCY0KbQkAor0KHQmNCR0JjQndCa0JjQiyDQn9CV0KLQkNCgCivQodCY0JHQmNCd0JrQmNCLINCg0JDQotCa0J4KK9Ch0JjQkdCY0J3QmtCY0Isg0KDQkNCi0JrQngor0KHQmNCR0JjQndCa0JjQiyDQktCQ0KHQkAor0KHQmNCR0JjQndCe0JIg0J3QmNCa0J7Qm9CQCivQodCY0JHQmNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0JjQkdCY0J3QodCa0Jgg0JLQmNCU0JAKK9Ch0JjQj9CY0JzQntCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0JjQlNCe0KAg0IvQmNCg0JjQmyDQlNCgCivQodCY0JPQldCi0Jgt0JHQmNCn0JrQldCYINCQ0JPQntCi0JAKK9Ch0JjQk9CV0KLQmCDQiNCQ0KjQkAor0KHQmNCT0JXQotCYINCI0JDQndCe0KgKK9Ch0JjQk9CV0KLQmCDQodCi0JXQktCQ0J0KK9Ch0JjQmtCQINCk0KDQkNCK0JAKK9Ch0JjQmtCQINCY0KDQldCd0JAKK9Ch0JjQmtCY0JzQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCY0JrQmNCc0JjQiyDQndCe0JLQkNCaCivQodCY0JrQmNCc0JjQiyDQodCg0ILQkNCdCivQodCY0JrQmNCc0JjQiyDQodCg0ILQkNCdCivQodCY0JrQmNCg0JjQptCQINCc0JjQoNCI0JDQndCQCivQodCY0JrQntCg0JAg0JrQkNCg0J7QiQor0KHQmNCa0J7QoNCQINCb0JDQlNCY0KHQm9CQ0JIKK9Ch0JjQmtCe0KDQkCDQn9CV0KLQkNCgCivQodCY0JvQkNCo0JrQmCDQmNCb0JjQiNCQCivQodCY0JvQkNCo0JrQmCDQoNCQ0JTQntCS0JDQnQor0KHQmNCb0JDQqNCa0Jgg0KHQm9CQ0JLQmtCeCivQodCY0JvQkNCo0JrQmCDQodCd0JXQltCQ0J3QkAor0KHQmNCb0JDQqNCa0Jgg0JLQldCg0JAKK9Ch0JjQm9CQ0KjQmtCYINCS0JvQkNCU0JjQodCb0JDQktCQCivQodCY0JvQkNCC0JXQkiDQoNCj0JbQmNCm0JAKK9Ch0JjQm9CQ0ILQmCDQqNCQ0J3QlNCe0KAKK9Ch0JjQm9CQ0ILQmCDQkNCd0JTQoNCQ0KgKK9Ch0JjQm9CQ0ILQmCDQpNCg0JDQitCQCivQodCY0JvQkNCC0Jgg0JPQmNCX0JXQm9CQCivQodCY0JvQkNCC0Jgg0JjQqNCi0JLQkNCdCivQodCY0JvQkNCC0Jgg0JjQnNCg0JUKK9Ch0JjQm9CQ0ILQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQmNCb0JDQgtCYINCa0JDQoNCe0IkKK9Ch0JjQm9CQ0ILQmCDQm9CQ0JTQmNCh0JvQkNCSCivQodCY0JvQkNCC0Jgg0JvQkNCh0JvQniDQktCQ0IjQkNCgCivQodCY0JvQkNCC0Jgg0JvQkNCh0JvQngor0KHQmNCb0JDQgtCYINCb0JDQodCb0J4KK9Ch0JjQm9CQ0ILQmCDQm9CQ0KHQm9CeCivQodCY0JvQkNCC0Jgg0InQo9CU0JXQktCY0KIKK9Ch0JjQm9CQ0ILQmCDQidCj0JTQldCS0JjQogor0KHQmNCb0JDQgtCYINCc0JDQoNCY0IjQkAor0KHQmNCb0JDQgtCYINCc0JjQmtCb0J7QqAor0KHQmNCb0JDQgtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Ch0JjQm9CQ0ILQmCDQotCV0KDQldCX0JAKK9Ch0JjQm9CQ0ILQmCDQktCY0JrQotCe0KDQmNCI0JAKK9Ch0JjQm9CQ0Jog0JDQndCU0KDQkNCoCivQodCY0JvQkNCaINCT0JjQl9CV0JvQkAor0KHQmNCb0JDQmiDQmNCo0KLQktCQ0J0KK9Ch0JjQm9CQ0Jog0JfQntCb0KLQkNCdCivQodCY0JvQkdCQ0KjQmtCYINCU0J7QqNCa0J4KK9Ch0JjQm9CR0JDQqNCa0Jgg0InQo9CR0JjQptCQCivQodCY0JvQkdCQ0KjQmtCYINCc0JDQoNCI0JDQnQor0KHQmNCb0JHQkNCo0JrQmCDQl9Ce0KDQkNCdCivQodCY0JvQkdCV0KDQpdCe0JvQpiDQodCi0JXQktCQ0J0KK9Ch0JjQm9CV0KAg0ILQo9Cb0JAKK9Ch0JjQm9CV0KAg0JTQo9Co0JjQptCQCivQodCY0JvQldCgINCT0KPQodCi0JDQkgor0KHQmNCb0JXQoCDQmtCQ0KDQmwor0KHQmNCJ0JDQndCe0JLQodCa0Jgg0JTQkNCg0JrQngor0KHQmNCJ0JDQndCe0JLQodCa0Jgg0IjQntCW0JUKK9Ch0JjQm9Cd0Jgg0KHQm9CQ0JLQndCQCivQodCY0JvQktCQ0KjQmCDQqNCQ0J3QlNCe0KAKK9Ch0JjQm9CS0JDQqNCYINCI0JDQndCe0KgKK9Ch0JjQm9CS0JDQqNCYINCa0JDQoNCe0IkKK9Ch0JjQm9CS0JXQodCi0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0JjQm9CS0JXQodCi0KDQntCS0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQodCY0JzQp9CY0J0g0JzQmNCl0JDQiNCb0J4KK9Ch0JjQnNCQ0J3QmNCLINCY0JvQmNCI0JAKK9Ch0JjQnNCQ0J3QmNCLINCI0JXQl9CU0JjQnNCY0KAKK9Ch0JjQnNCQ0J3QmNCLINCf0JXQotCa0J4KK9Ch0JjQnNCQ0J3QmNCLINCg0JDQiNCa0JAKK9Ch0JjQnNCQ0J3QmNCLINCh0JDQktCQCivQodCY0JzQldCd0JTQmNCLINCR0J7QltCQCivQodCY0JzQldCd0JTQmNCLINCT0J7QoNCQ0J0KK9Ch0JjQnNCV0J3QlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQmNCc0JXQndCU0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCY0JzQldCd0KLQmNCLINCI0J7QktCQ0J0KK9Ch0JjQnNCV0J3QotCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQmNCc0JXQntCd0J7QkiDQn9CQ0JLQm9CVCivQodCY0JzQldCe0J3QntCSINCg0JDQlNCY0JLQntCICivQodCY0JzQldCe0J3QntCSINCX0JTQoNCQ0JLQp9CeCivQodCY0JzQldCe0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQodCY0JzQldCe0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQmNCc0JXQntCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQmNCc0JXQntCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0JjQnNCV0KLQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQldCi0JjQiyDQntCh0KLQntCI0JAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCY0JzQldCj0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCY0JzQldCj0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQodCY0JzQldCj0J3QntCS0JjQiyDQiNCQ0J3QmtCeCivQodCY0JzQldCj0J3QntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCY0JzQldCj0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQldCj0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQodCY0JzQldCj0J3QntCS0JjQiyDQodCQ0JLQkAor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0KHQmNCc0J4KK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCh0JjQnNCeCivQodCY0JzQldCj0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCS0JvQkNCU0JAKK9Ch0JjQnNCY0KfQmNCLINCU0KDQkNCT0JDQndCQCivQodCY0JzQmNCo0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQodCY0JzQmNCLINCn0JXQlNCQCivQodCY0JzQmNCLINCW0JjQktCe0IjQmNCdCivQodCY0JzQmNCLINCW0JjQktCe0IjQmNCdCivQodCY0JzQmNCLINCC0KPQoNCC0JXQktCa0JAKK9Ch0JjQnNCY0Isg0ILQo9Cg0JAKK9Ch0JjQnNCY0Isg0ILQo9Cg0J4KK9Ch0JjQnNCY0Isg0JDQptCQCivQodCY0JzQmNCLINCQ0JTQkNCcCivQodCY0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCY0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCY0JzQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCY0JzQmNCLINCR0J7QqNCa0J4KK9Ch0JjQnNCY0Isg0JHQntCI0JDQndCQCivQodCY0JzQmNCLINCR0J7QoNCQCivQodCY0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQkdCe0KDQmtCQCivQodCY0JzQmNCLINCR0J7QodCY0InQmtCQCivQodCY0JzQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCY0JzQmNCLINCR0KDQkNCd0JrQngor0KHQmNCc0JjQiyDQkdCj0JTQmNCc0JjQoAor0KHQmNCc0JjQiy3QptCl0JDQm9CQ0JHQmCDQlNCg0JDQk9CQ0J3QkAor0KHQmNCc0JjQiyDQptCS0JXQotCY0J0KK9Ch0JjQnNCY0Isg0JTQldCI0JDQnQor0KHQmNCc0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0JjQnNCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQodCY0JzQmNCLINCU0J7QiNCn0JjQnQor0KHQmNCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCY0JzQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0JjQnNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JjQnNCY0Isg0JTQo9Co0JDQnQor0KHQmNCc0JjQiyDQlNCj0KjQkNCdCivQodCY0JzQmNCLINCU0KPQqNCY0KbQkAor0KHQmNCc0JjQiyDQk9Ce0IjQmtCeCivQodCY0JzQmNCLINCT0J7QoNCU0JDQndCQCivQodCY0JzQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ch0JjQnNCY0Isg0KXQldCg0JzQmNCd0JAg0JTQoAor0KHQmNCc0JjQiyDQmNCb0JjQiNCQCivQodCY0JzQmNCLINCY0JvQntCd0JrQkAor0KHQmNCc0JjQiyDQmNCS0JDQnQor0KHQmNCc0JjQiyDQiNCV0JvQldCd0JAKK9Ch0JjQnNCY0Isg0IjQntCS0JDQnQor0KHQmNCc0JjQiyDQiNCe0JLQkNCdCivQodCY0JzQmNCLINCI0J7QktCY0KbQkAor0KHQmNCc0JjQiyDQiNCe0JLQngor0KHQmNCc0JjQiyDQiNCe0JLQngor0KHQmNCc0JjQiyDQiNCj0JTQmNCiCivQodCY0JzQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Ch0JjQnNCY0Isg0InQmNCJ0JDQndCQCivQodCY0JzQmNCLINCc0JDQoNCY0IjQkAor0KHQmNCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JjQnNCY0Isg0JzQkNCg0JjQiNCQCivQodCY0JzQmNCLINCc0JjQptCQCivQodCY0JzQmNCLINCc0JjQpdCQ0JjQm9CeCivQodCY0JzQmNCLINCc0JjQm9CQ0J0KK9Ch0JjQnNCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQmNCLINCc0JjQm9CV0J3QkAor0KHQmNCc0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0JjQnNCY0Isg0JzQmNCb0JjQiNCQCivQodCY0JzQmNCLINCc0JjQm9CY0JLQntCICivQodCY0JzQmNCLINCc0JjQm9Ce0KgKK9Ch0JjQnNCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0JjQiyDQnNCY0JvQntCoCivQodCY0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCY0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCY0JzQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCY0JzQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCY0JzQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCY0JzQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCY0JzQmNCLINCc0JjQoNCa0J4KK9Ch0JjQnNCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JjQnNCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JjQnNCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JjQnNCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JjQnNCY0Isg0J3QkNCU0JAKK9Ch0JjQnNCY0Isg0J3QkNCU0JAKK9Ch0JjQnNCY0Isg0J3QkNCg0JDQndCn0JAKK9Ch0JjQnNCY0Isg0J3QldCC0J4KK9Ch0JjQnNCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0JjQnNCY0Isg0J3QldCc0JDQitCQCivQodCY0JzQmNCLINCd0JXQktCV0J3QmtCQCivQodCY0JzQmNCLINCd0JjQmtCe0JvQkAor0KHQmNCc0JjQiyDQndCY0JrQntCb0JAKK9Ch0JjQnNCY0Isg0J3QntCS0JDQmgor0KHQmNCc0JjQiyDQndCe0JLQkNCaCivQodCY0JzQmNCLINCd0J7QktCQ0JoKK9Ch0JjQnNCY0Isg0J7Qm9CT0JAKK9Ch0JjQnNCY0Isg0J7QodCi0J7QiNCQCivQodCY0JzQmNCLINCf0JDQndCi0JXQm9CY0IjQkAor0KHQmNCc0JjQiyDQn9CQ0JLQm9CVCivQodCY0JzQmNCLINCf0JXQotCQ0KAKK9Ch0JjQnNCY0Isg0KDQkNCU0JAKK9Ch0JjQnNCY0Isg0KDQkNCU0JXQndCa0J4KK9Ch0JjQnNCY0Isg0KDQkNCU0JXQndCa0J4KK9Ch0JjQnNCY0Isg0KDQkNCU0JjQodCQ0JIKK9Ch0JjQnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQodCY0JzQmNCLINCg0JDQlNCY0JLQntCICivQodCY0JzQmNCLINCg0JDQlNCe0IjQlQor0KHQmNCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQmNCc0JjQiyDQoNCQ0IjQmtCeCivQodCY0JzQmNCLINCg0KPQltCY0KbQkAor0KHQmNCc0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JjQnNCY0Isg0KHQkNCS0JAKK9Ch0JjQnNCY0Isg0KHQmNCc0JAKK9Ch0JjQnNCY0Isg0KHQmNCd0JjQqNCQCivQodCY0JzQmNCLINCh0JvQkNCU0JAKK9Ch0JjQnNCY0Isg0KHQm9CQ0JLQmtCeCivQodCY0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JjQnNCY0Isg0KHQoNCC0JDQnQor0KHQmNCc0JjQiyDQodCg0JXQotCV0J0KK9Ch0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQodCY0JzQmNCLINCh0KLQldCS0JDQnQor0KHQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JjQnNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KHQmNCc0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCY0JzQmNCLINCi0JjQpdCe0JzQmNCgCivQodCY0JzQmNCLINCi0JjQpdCe0JzQmNCgCivQodCY0JzQmNCLINCi0J7QlNCVCivQodCY0JzQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQktCQ0IjQmtCQCivQodCY0JzQmNCLINCS0JDQodCQCivQodCY0JzQmNCLINCS0JXQoNCe0J3QmtCQCivQodCY0JzQmNCLINCS0JXQodCV0JvQmtCeCivQodCY0JzQmNCLINCS0JjQndCa0JAKK9Ch0JjQnNCY0Isg0JLQm9CQ0JTQlQor0KHQmNCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCY0JzQmNCLINCS0JvQkNCU0J4KK9Ch0JjQnNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQl9Cb0JDQotCY0JzQmNCgCivQodCY0JzQmNCLINCX0J7QoNCQ0J0KK9Ch0JjQnNCY0Isg0JfQntCg0JDQnQor0KHQmNCc0JjQiyDQl9Ce0KDQkNCdCivQodCY0JzQmNCLINCX0J7QoNCQCivQodCY0JzQmNCLINCX0J7QoNCQCivQodCY0JzQmNCLINCX0J7QoNCY0KbQkAor0KHQmNCc0JjQiyDQl9Ce0KDQmtCQCivQodCY0JzQmNCL0JXQktCY0Isg0KDQkNCU0J7QnNCQ0J0KK9Ch0JjQnNCY0IjQntCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQmNCc0JjQmtCY0Isg0IjQntCS0JDQnQor0KHQmNCc0JjQm9CV0IrQmCDQlNCj0KjQmNCm0JAKK9Ch0JjQnNCY0J0g0JbQmNCS0JrQkAor0KHQmNCc0JjQnSDQltCY0JLQntCI0JjQnQor0KHQmNCc0JjQnSDQkNCd0ILQldCb0JrQkAor0KHQmNCc0JjQnSDQkNCg0JDQndCa0JAKK9Ch0JjQnNCY0J0g0KbQktCV0KLQmtCeCivQodCY0JzQmNCdINCU0JDQndCY0KbQkAor0KHQmNCc0JjQnSDQlNCQ0J3QmNCb0J4KK9Ch0JjQnNCY0J0g0JTQmNCd0JAKK9Ch0JjQnNCY0J0g0JTQoNCQ0JPQkNCdCivQodCY0JzQmNCdINCl0JjQm9CU0JAKK9Ch0JjQnNCY0J0g0JjQktCQ0J3QmtCQCivQodCY0JzQmNCdINCY0JLQkNCdCivQodCY0JzQmNCdINCI0JDQqNCQCivQodCY0JzQmNCdINCI0JXQm9CV0J3QkAor0KHQmNCc0JjQnSDQmtCe0KHQotCQCivQodCY0JzQmNCdINCb0JDQl9CQ0KAKK9Ch0JjQnNCY0J0g0JvQldCf0J7QodCQ0JLQkAor0KHQmNCc0JjQnSDQidCj0JHQmNCm0JAKK9Ch0JjQnNCY0J0g0JzQkNCT0JTQkAor0KHQmNCc0JjQnSDQnNCY0JvQldCd0JAKK9Ch0JjQnNCY0J0g0JzQmNCb0JjQptCQCivQodCY0JzQmNCdINCc0JjQm9CY0KbQkAor0KHQmNCc0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQmNCc0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQmNCc0JjQnSDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQodCY0JzQmNCdINCd0JDQlNCQCivQodCY0JzQmNCdINCd0JDQlNCQCivQodCY0JzQmNCdINCd0JXQkdCe0IjQqNCQCivQodCY0JzQmNCdINCf0JDQktCb0JUKK9Ch0JjQnNCY0J0g0J/QldCi0JDQoAor0KHQmNCc0JjQnSDQoNCQ0JTQmNCm0JAKK9Ch0JjQnNCY0J0g0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0JjQnSDQoNCQ0JTQntCI0JjQptCQCivQodCY0JzQmNCdINCg0JDQlNCe0JLQkNCdCivQodCY0JzQmNCdINCh0JjQndCY0KjQkAor0KHQmNCc0JjQnSDQodCe0KTQmNCI0JAKK9Ch0JjQnNCY0J0g0KHQotCV0JLQkNCdCivQodCY0JzQntCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Ch0JjQnNCe0J3QntCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQodCY0JzQntCd0J7QktCY0Isg0JjQoNCV0J3QkCDQlNCgCivQodCY0JzQntCd0J7QktCY0Isg0JzQmNCb0JUKK9Ch0JjQnNCe0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0J7QndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCY0JzQntCd0J7QktCY0Isg0J3QkNCU0JAKK9Ch0JjQnNCe0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0JjQnNCe0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQntCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQmNCc0J7QndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JjQnNCe0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCY0JzQntCd0J7QktCh0JrQmCDQpNCY0J3QmtCQCivQodCY0JzQntCd0J7QktCh0JrQmCDQnNCY0KLQkAor0KHQmNCc0J7QotCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ch0JjQnNCe0JLQmNCLINCW0JXQidCa0J4KK9Ch0JjQnNCe0JLQmNCLINCW0JjQktCe0KLQkAor0KHQmNCc0J7QktCY0Isg0JDQndCa0JAKK9Ch0JjQnNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQodCY0JzQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCY0JzQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCY0JzQntCS0JjQiyDQlNCg0JDQk9CeCivQodCY0JzQntCS0JjQiyDQiNCe0JLQkAor0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQqNCQCivQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQntCS0JjQiyDQnNCY0JvQntCoCivQodCY0JzQntCS0JjQiyDQnNCY0JvQntCoCivQodCY0JzQntCS0JjQiyDQnNCY0KDQmtCeCivQodCY0JzQntCS0JjQiyDQnNCY0KLQkNCgCivQodCY0JzQntCS0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQodCY0JzQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQmNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQodCY0JzQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCY0JzQntCS0JjQiyDQotCe0JTQntCgCivQodCY0JzQntCS0JjQiyDQktCY0JTQkNCaCivQodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCY0JzQntCS0InQldCS0JjQiyDQiNCe0KbQkAor0KHQmNCc0KPQndCY0Isg0JbQldCb0JjQnNCY0KAKK9Ch0JjQnNCj0J3QmNCLINCQ0J3QlNCg0JjQiNCQCivQodCY0JzQo9Cd0JjQiyDQnNCQ0JPQlNCQCivQodCY0JzQo9Cd0JjQiyDQodCi0JDQndCY0JzQmNCgCivQodCY0JzQo9Cd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCY0JzQo9Cd0J7QktCY0Isg0JzQmNCb0KPQnQor0KHQmNCc0KPQoNCU0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQo9Cg0JTQmNCLINCf0JXQotCQ0KAKK9Ch0JjQnNCj0KDQlNCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0JjQndCn0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQodCY0J3QgtCV0JvQmNCLINCJ0KPQkdCY0KHQkNCSCivQodCY0J3QgtCV0JvQmNCLINCc0JjQm9Ce0KgKK9Ch0JjQndCC0JjQiyDQnNCY0JvQldCd0JrQngor0KHQmNCd0JDQlNCY0J3QntCS0JjQiyDQktCe0IjQngor0KHQmNCd0JDQndCYINCQ0JHQlNCj0JvQkAor0KHQmNCd0JDQndCYINCc0JjQm9CY0KbQkAor0KHQmNCd0JDQndCe0JLQmNCLINCh0JDQpNCV0KIKK9Ch0JjQndCT0JXQoCDQlNCg0JDQk9CY0KbQkAor0KHQmNCd0JPQldCgINCg0KPQltCY0KbQkAor0KHQmNCg0JDQp9Ca0Jgg0JrQkNCg0J7Qm9CY0J3QkAor0KHQmNCg0JDQptCa0Jgg0IjQntCS0JDQnQor0KHQmNCg0JDQptCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCg0JDQmiDQm9CQ0KHQm9CeINCU0KAKK9Ch0JjQoNCY0KjQmtCYINCW0JDQoNCa0J4KK9Ch0JjQoNCY0KjQmtCYINCC0KPQoNCC0JjQndCQCivQodCY0KDQmNCo0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JjQoNCY0KjQmtCYINCY0JLQkNCdCivQodCY0KDQmNCo0JrQmCDQiNCQ0KHQnNCY0J3QmtCQCivQodCY0KDQmNCo0JrQmCDQiNCV0JvQldCd0JAKK9Ch0JjQoNCY0KjQmtCYINCI0J7QktCQ0J0KK9Ch0JjQoNCY0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQmNCg0JjQqNCa0Jgg0KHQm9CQ0JLQmtCeINCh0KPQlNCY0IjQkAor0KHQmNCg0JjQqNCa0Jgg0KHQm9CQ0JLQmtCeCivQodCY0KDQntCn0JjQiyDQmNCS0JDQnQor0KHQmNCg0J7QltCV0J3QmtCeINCh0J3QldCW0JDQndCQCivQodCY0KDQntCW0JXQndCa0J4g0JLQldCg0JAKK9Ch0JjQoNCe0KLQmNCdINCh0JvQkNCS0JjQptCQCivQodCY0KDQntCS0JjQptCQINCI0JDQndCe0KgKK9Ch0JjQoNCj0KfQldCaINCS0JjQm9CY0Jwg0JTQmNCf0Jsg0JjQndCTCivQodCY0KLQkNCoINCY0JvQntCd0JAKK9Ch0JjQotCQ0Kgg0JvQkNCI0J7QqAor0KHQmNCi0JDQoNCV0JLQmNCLINCQ0JzQmNCgCivQodCY0KLQkNCg0JjQiyDQn9CQ0IjQkAor0KHQmNCS0Kcg0JDQnNCQ0JvQmNCI0JAKK9Ch0JjQktCnINCQ0J3QgtCV0JvQmtCQCivQodCY0JLQpyDQlNCQ0J3QmNCb0J4KK9Ch0JjQktCnINCl0JXQm9CV0J3QkAor0KHQmNCS0Kcg0JjQoNCY0J3QkAor0KHQmNCS0Kcg0IjQkNCd0JrQngor0KHQmNCS0Kcg0InQo9CR0J7QnNCY0KAKK9Ch0JjQktCnINCJ0KPQkdCe0JzQmNCgCivQodCY0JLQpyDQndCV0KHQotCe0KAKK9Ch0JjQktCnINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JjQktCn0JXQkiDQgtCe0JrQkAor0KHQmNCS0KfQldCSINCR0J7QltCY0JTQkNCgCivQodCY0JLQp9CV0JIg0IjQntCS0JDQnSDQlNCgCivQodCY0JLQp9CV0JIg0IjQo9Cb0JrQkAor0KHQmNCS0KfQldCSINCJ0KPQkdCY0KbQkAor0KHQmNCS0KfQldCSINCc0JjQm9CQ0J0KK9Ch0JjQktCn0JXQkiDQl9Ce0KDQkNCdCivQodCY0JLQkNCn0JrQmCDQgtCj0KDQkAor0KHQmNCS0JDQp9Ca0Jgg0IjQntCS0JDQnQor0KHQmNCS0JDQp9Ca0Jgg0JzQmNCb0JDQnQor0KHQmNCS0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Ch0JjQktCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JjQktCQ0KfQmtCYINCh0JDQktCQCivQodCY0JLQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQmNCS0JDQp9Ca0Jgg0JLQldCg0JAKK9Ch0JjQktCQ0KfQmtCYINCS0JXQoNCQCivQodCY0JLQkNCmINCI0J7QktCQ0J3QmtCQCivQodCY0JLQkNCaINCY0JHQntCJ0JAKK9Ch0JjQktCQ0Jog0IjQo9CU0JjQotCQCivQodCY0JLQkNCaINCJ0KPQkdCY0J3QmtCQCivQodCY0JLQkNCaINCg0J7Ql9CY0J3QkAor0KHQmNCS0JjQiyDQk9Ce0IjQmtCeCivQodCY0JLQmNCLINCg0JDQlNCVCivQodCY0JfQntCSINCc0JDQoNCT0JjQotCQCivQodCI0JXQndCY0KfQmNCLINCd0JXQlNCV0InQmtCeCivQodCI0JXQn9CQ0J3QntCS0JjQiyDQodCg0ILQkNCdCivQodCa0JDQmtCQ0JLQkNCmINCd0JjQmtCe0JvQkAor0KHQmtCQ0JrQkNCS0JDQpiDQndCe0JLQkAor0KHQmtCQ0JrQkNCS0JDQpiDQndCe0JLQkAor0KHQmtCQ0JrQkNCS0JDQpiDQodCe0KTQmNCI0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0JLQldCb0JjQnNCY0KAKK9Ch0JrQkNCa0JDQktCQ0KYg0JLQo9CI0JjQptCQCivQodCa0JDQmtCQ0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQodCa0JDQmtCY0Isg0JHQntCo0JrQngor0KHQmtCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0JrQkNCa0JjQiyDQndCY0JrQntCb0JAKK9Ch0JrQkNCa0KPQnSDQltCY0JLQmtCeCivQodCa0JDQm9CQINCQ0J3QotCQ0JsKK9Ch0JrQkNCb0JAg0JzQmNCb0JXQndCQCivQodCa0JDQm9CQINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JrQkNCb0JjQptCa0Jgg0JfQkNCT0J7QoNCa0JAKK9Ch0JrQkNCd0JTQkNCg0KHQmtCYINCQ0J3QmtCQCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCY0JvQkNCdCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCY0JvQntCoCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCY0KDQmtCeCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ch0JrQkNCd0JTQkNCg0KHQmtCYINCc0J7QnNCn0JjQm9CeCivQodCa0JDQndCU0JDQoNCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0KHQmtCQ0KDQkNCc0KPQptCQINCc0JjQiNCeCivQodCa0JDQoNCQ0JzQo9Cm0JAg0JfQlNCg0JDQktCa0J4KK9Ch0JrQldCb0JXQj9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JrQldCb0JXQj9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JrQldCb0JXQj9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCa0JXQm9CV0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmtCV0JvQldCP0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQmtCV0JvQldCP0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0JrQldCb0JXQj9CY0Isg0InQo9CR0JjQndCa0J4KK9Ch0JrQldCb0JXQj9CY0Isg0JzQkNCg0JjQiNCQCivQodCa0JXQm9CV0I/QmNCLINCc0JjQm9CQ0J0KK9Ch0JrQldCb0JXQj9CY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQodCa0JXQm9CV0I/QmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JrQldCb0JXQj9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQmtCV0JvQldCP0JjQiNCQINCa0JDQotCQCivQodCa0JXQm9CV0I/QmNCI0JAg0KDQkNCU0J7QiNCY0KbQkAor0KHQmtCV0JvQldCP0JjQiNCQINCh0J/QkNCh0JjQnNCY0KAKK9Ch0JrQldCd0I/QmNCLINCW0JDQoNCa0J4KK9Ch0JrQldCd0I/QmNCLINCR0J7Qk9CU0JDQnQor0KHQmtCV0J3Qj9CY0Isg0JHQoNCQ0J3QmtCQCivQodCa0JXQndCP0JjQiyDQlNCQ0J3QlQor0KHQmtCV0J3Qj9CY0Isg0JTQkNCd0JjQm9CeCivQodCa0JXQndCP0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCa0JXQndCP0JjQiyDQlNCj0KjQkNCdCivQodCa0JXQndCP0JjQiyDQmNCb0JjQiNCQCivQodCa0JXQndCP0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQodCa0JXQndCP0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQmtCV0J3Qj9CY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQodCa0JXQndCP0JjQiyDQnNCY0JvQkNCdCivQodCa0JXQndCP0JjQiyDQnNCY0JvQldCd0JrQngor0KHQmtCV0J3Qj9CY0Isg0JzQmNCb0JjQptCQCivQodCa0JXQndCP0JjQiyDQoNCQ0JTQlQor0KHQmtCV0J3Qj9CY0Isg0KHQkNCg0JAKK9Ch0JrQldCd0I/QmNCLINCh0J7QpNCY0IjQkAor0KHQmtCV0J3Qj9CY0Isg0KHQotCV0JLQkNCdCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCR0JXQoNCY0KHQm9CQ0JIKK9Ch0JrQldCd0JTQldCg0J7QktCY0Isg0JPQkNCR0J7QoAor0KHQmtCV0J3QlNCV0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JrQldCd0JTQldCg0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQodCa0JXQoNCb0JXQotCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JrQldCg0JvQldCi0J7QktCY0Isg0JfQntCg0JDQnQor0KHQmtCV0KDQoiDQkdCe0JbQmNCU0JDQoAor0KHQmtCY0KfQkNCaINCb0JDQodCb0J4KK9Ch0JrQmNCS0IjQkNCd0Jgg0KjQkNCd0JTQntCgCivQodCa0JjQktCI0JDQndCYINCc0JjQpdCQ0IkKK9Ch0JrQm9CQ0JHQmNCd0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQodCa0JvQkNCR0JjQndCh0JrQmCDQodCQ0JzQngor0KHQmtCb0JXQndCQINCI0J7QpdCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCa0JvQldCd0JAg0J7Qm9CY0JLQldCg0JAKK9Ch0JrQm9CV0J3QkCDQktCY0JrQotCe0KDQmNCI0JAKK9Ch0JrQm9CV0J3QkNCgINCf0JXQotCQ0KAKK9Ch0JrQidCQ0KAg0ILQo9Cg0J4KK9Ch0JrQntCn0JDQiNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ch0JrQntCn0J7QktCh0JrQmCDQnNCQ0KDQmNCI0JAKK9Ch0JrQntCR0JUg0JjQktCQ0J0KK9Ch0JrQntCaINCc0JjQoNCI0JDQndCQCivQodCa0J7QmtCQ0J3QlNCY0Isg0J/QldCi0JDQoAor0KHQmtCe0JrQmNCLINCd0JXQndCQ0JQKK9Ch0JrQntCa0JjQiyDQktCV0KHQndCQCivQodCa0J7QmtCd0JjQiyDQlNCj0KjQkNCdCivQodCa0J7QmtCd0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JrQntCa0J4g0JzQmNCb0J7QqAor0KHQmtCe0JzQmNCd0JAg0JLQldCg0JjQptCQCivQodCa0J7Qn9CQ0Jsg0JHQldCb0JAKK9Ch0JrQntCf0JDQmyDQiNCe0JLQkNCdCivQodCa0J7QoNCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0KHQmtCe0KDQmNCLINCJ0KPQkdCeCivQodCa0J7QoNCY0Isg0KLQntCd0JrQkAor0KHQmtCe0KDQmNCLINCS0KPQiNCeCivQodCa0J7QoNCj0J/QkNCdINCC0KPQoNCQCivQodCa0J7QoNCj0J/QkNCdINCU0JDQndCY0KbQkAor0KHQmtCe0KDQo9Cf0JDQnSDQmtCQ0KLQkAor0KHQmtCe0KDQo9Cf0JDQnSDQoNCQ0JTQldCd0JrQngor0KHQmtCe0KDQo9Cf0JDQnSDQodCb0JDQktCa0J4KK9Ch0JrQntCi0J7QktCY0Isg0KTQldCg0JXQndCmCivQodCa0KDQkNCc0J7Qi9CY0J0g0KHQoNCV0IvQmtCeCivQodCa0KDQntCR0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JrQoNCe0JHQmNCLINCf0JXQotCQ0KAKK9Ch0JrQoNCe0JHQntCK0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JrQoNCe0JHQntCK0JAg0JrQkNCi0JjQptCQCivQodCa0KDQntCR0J7QitCQINCd0JjQmtCe0JvQkAor0KHQmtCg0J7QkdCe0IrQkCDQktCb0JDQlNCY0JzQmNCgCivQodCa0KPQkdCQ0J0g0KXQldCb0JXQndCQCivQodCa0KPQkdCQ0J0g0IjQkNCd0JrQngor0KHQmtCj0JHQkNCdINCI0JXQpNCg0JXQnAor0KHQmtCj0JHQkNCdINCI0KPQm9CY0IjQkNCdCivQodCa0KPQkdCQ0J0g0JvQldCe0J3QkAor0KHQmtCj0JHQkNCdINCJ0KPQkdCe0JzQmNCgCivQodCa0KPQkdCQ0J0g0JzQmNCl0JDQiNCb0J4KK9Ch0JrQo9CR0JDQnSDQndCQ0KLQkNCb0JjQiNCQCivQodCa0KPQkdCQ0J0g0J3QmNCa0J7Qm9CQCivQodCa0KPQkdCQ0J0g0JfQntCg0JrQkAor0KHQmtCj0JvQkNCgINCg0JDQlNCe0IjQmtCQCivQodCa0KPQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0JrQo9Cb0JjQiyDQodCY0JzQmtCQCivQodCa0KPQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmtCj0JzQn9CY0IjQkCDQiNCe0JbQldCkCivQodCa0KPQoNCj0J/QkNCi0JjQoSDQnNCY0KDQiNCQ0J3QkAor0KHQm9CQ0IvQkNCd0JjQnSDQmNCS0JDQnQor0KHQm9CQ0JTQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCb0JDQlNCV0Jog0JDQndCU0KDQmNCI0JAKK9Ch0JvQkNCU0JjQiyDQptCS0JXQotCQCivQodCb0JDQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQm9CQ0JTQmNCLINCh0KLQldCS0JDQnQor0KHQm9CQ0JTQmNCLINCX0J7QoNCY0KbQkAor0KHQm9CQ0JTQntCI0JAg0JzQmNCb0J7QktCQ0J0KK9Ch0JvQkNCU0J7QiNCVINCY0JvQmNCI0JAKK9Ch0JvQkNCU0J7QiNCVINCg0JDQlNCe0JzQmNCgCivQodCb0JDQlNCe0IjQldCSINCc0JjQm9CQ0J0KK9Ch0JvQkNCU0J7QiNCV0JIg0J/QoNCV0JTQoNCQ0JMKK9Ch0JvQkNCU0J7QiNCV0JLQmNCLINCW0JjQktCa0J4KK9Ch0JvQkNCU0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JvQkNCU0J7QiNCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCb0JDQnNCQINCC0J7QoNCC0JUKK9Ch0JvQkNCc0JAg0JzQkNCg0JjQiNCQCivQodCb0JDQnNCQ0KAg0KTQldCg0JXQndCmCivQodCb0JDQndCmINCI0JXQm9CV0J3QkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQltCY0JLQmtCeCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCW0JjQktCa0J4KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0ILQntCg0ILQlQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQkNCd0JrQmNCm0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCU0KPQqNCQ0J3QmtCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCY0JTQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQiNCV0JvQldCd0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0IjQntCS0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCQ0KDQmNCI0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQkNCg0JjQiNCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9CQ0J0KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQkNCdCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9Ce0KgKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0J7QqAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQntCI0JUKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCg0IjQkNCd0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQntCc0KfQmNCb0J4KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0J3QkNCU0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0J/QldCi0JDQoCDQlNCgCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCf0JXQotCQ0KAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0J/QldCi0JDQoAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQn9Cg0J7QmtCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0KHQotCV0JLQkNCdCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCS0JXQodCV0JvQmNCdCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCX0J7QoNCQ0J0KK9Ch0JvQkNCi0JLQmNCd0KHQmtCYINCT0JXQntCg0JPQmNCI0JUKK9Ch0JvQkNCS0JjQiyDQgtCe0KDQgtCVCivQodCb0JDQktCY0Isg0KHQntCk0JjQiNCQCivQodCb0JDQktCY0KbQkCDQodCi0JjQn9CVCivQodCb0JDQktCa0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQm9CQ0JLQmtCe0JLQmNCLINCQ0JvQntCI0JcKK9Ch0JvQkNCS0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCb0JDQktCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0JvQkNCS0JrQntCS0JjQiyDQodCY0JHQmNCdCivQodCb0JDQktCa0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0JvQkNCS0JrQntCS0JjQiyDQotCg0JjQpNCj0J0KK9Ch0JvQkNCS0JrQntCS0JjQiyDQl9CU0JXQndCa0J4KK9Ch0JvQkNCS0J3QmNCLINCU0JDQndCY0JvQngor0KHQm9CQ0JLQndCY0Isg0IjQkNCh0JzQmNCd0JAKK9Ch0JvQkNCS0J3QmNCLINCJ0KPQkdCY0KbQkAor0KHQm9CQ0JLQndCY0Isg0J3QntCS0JrQkAor0KHQm9CQ0JLQndCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0JvQkNCS0J3QntCS0JjQiyDQmNCS0JDQnQor0KHQm9CQ0JLQo9CIINCR0J7QltCeCivQodCb0JDQktCj0Igg0JTQoNCQ0JPQkNCdCivQodCb0JDQktCj0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQodCb0JDQktCj0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQodCb0JDQktCj0IjQldCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0KHQotCV0JLQngor0KHQm9CQ0JLQo9CJINCc0JjQm9CVCivQodCb0JXQn9Cn0JXQkiDQltCY0JLQkNCdCivQodCb0JXQn9Cn0JXQkiDQlNCQ0J3QmNCm0JAKK9Ch0JvQldCf0KfQldCSINCI0J7QktCQ0J0KK9Ch0JvQldCf0KfQldCSINCd0JjQmtCe0JvQkAor0KHQm9CV0J/Qp9CV0JIg0JfQlNCV0J3QmtCQCivQodCb0JXQn9Cn0JXQkiDQl9Ce0KDQmNCm0JAKK9Ch0JvQldCf0KfQldCS0JjQiyDQmtCg0KHQotCQ0J0KK9Ch0JvQldCf0KfQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0JvQldCf0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQodCb0JXQn9Cn0JXQktCY0Isg0J7Qm9CT0JAKK9Ch0JvQldCf0KfQldCS0JjQiyDQoNCj0JbQkAor0KHQm9CV0J/Qp9CV0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQodCb0JXQn9Ca0J4g0JjQoNCV0J3QkAor0KHQm9CV0J/QmtCeINCI0J7QktCQ0J0KK9Ch0JvQldCf0JrQniDQnNCY0KXQkNCI0JvQngor0KHQm9CV0J/QmtCeINCc0JjQm9CY0KbQkAor0KHQm9CV0KHQkNCgINCU0JDQndCY0JvQngor0KHQm9CV0KHQkNCgINCI0JXQm9CV0J3QkAor0KHQm9CV0KHQkNCgINCc0J7QnNCn0JjQm9CeCivQodCb0JXQodCQ0KAg0JLQkNCh0JAKK9Ch0JvQmNCo0JrQniDQkNCd0JTQoNCY0IjQkAor0KHQm9CY0KjQmtCeINCc0JDQoNCa0J4KK9Ch0JvQmNCo0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQkNCd0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCI0JDQndCa0J4KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0IjQkNCd0JrQngor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCa0J7QktCY0InQmtCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCJ0KPQkdCQ0J0KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCd0J7QktCY0KbQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0KHQkNCS0J4KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JLQldCg0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JLQiNCV0JrQntCh0JvQkNCS0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JfQktCe0J3QmtCeCivQodCb0JjQiNCV0J/QkNCmINCc0JjQm9Ce0KgKK9Ch0JvQmNCI0JXQn9CQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KHQm9CY0JzQkNCaINCQ0JTQkNCcCivQodCb0JjQktCQINCV0JvQmNCX0JDQkdCV0KLQkAor0KHQm9CY0JLQmtCQINCC0KPQoNCQCivQodCb0JjQktCa0JAg0JDQndCQCivQodCb0JjQktCa0JAg0JHQntCW0JDQndCQCivQodCb0JjQktCa0JAg0JHQntCh0JjQidCa0JAKK9Ch0JvQmNCS0JrQkCDQiNCQ0KDQntCh0JvQkNCSCivQodCb0JjQktCa0JAg0IjQntCS0JDQnQor0KHQm9CY0JLQmtCQINCc0JjQqNCQCivQodCb0JjQktCa0JAg0JzQmNCo0JAKK9Ch0JvQmNCS0JrQkCDQodCi0JXQktCQ0J0KK9Ch0JvQmNCS0JrQkCDQl9CU0JXQndCa0JAKK9Ch0JvQmNCS0JrQkCDQl9Cb0JDQotCQCivQodCJ0KPQmtCQINCR0J7QpdCj0KHQm9CQ0JIKK9Ch0InQo9Ca0JAg0IjQo9Cg0JDQiAor0KHQm9Ce0JHQntCU0JAg0JDQndCi0JDQmwor0KHQm9Ce0JHQntCU0JAg0JjQqNCi0JLQkNCdCivQodCb0J7QkdCe0JTQkCDQiNCQ0J3QntCoCivQodCb0J7QkdCe0JTQkCDQiNCe0JbQldCkCivQodCb0J7QkdCe0JTQkCDQiNCj0JvQmtCQCivQodCb0J7QkdCe0JTQkCDQnNCY0KXQkNCI0JvQngor0KHQm9Ce0JHQntCU0JAg0JzQmNCl0JDQiQor0KHQm9Ce0JHQntCU0JAg0J/QldCi0JDQoAor0KHQm9Ce0JHQntCU0JAg0KHQm9CQ0JLQmtCQCivQodCb0J7QkdCe0JTQkCDQodCi0JXQktCQ0J0KK9Ch0JvQntCa0JDQoCDQmNCS0JDQnQor0KHQm9Ce0JrQkNCgINCc0JDQotCY0IjQkAor0KHQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0KHQm9Cj0IrQodCa0Jgg0KTQoNCQ0IrQkAor0KHQnNCQ0JPQmNCdINCY0JLQkNCdCivQodCc0JDQiNCY0Isg0JzQkNCa0KHQmNCcCivQodCc0JDQiNCY0Isg0JzQmNCb0J7QqAor0KHQnNCQ0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JzQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCc0JXQlNCV0KDQldCS0JDQpiDQlNCj0KjQkNCdCivQodCc0JXQlNCV0KDQldCS0JDQpiDQiNCe0JLQkNCdCivQodCc0JXQlNCV0KDQldCS0JDQpiDQnNCY0JvQmNCm0JAKK9Ch0JzQldCU0JXQoNCV0JLQkNCmINCf0JXQotCQ0KAKK9Ch0JzQldCU0JXQoNCV0JLQkNCmINCh0KLQldCS0JjQptCQCivQodCc0JjQi9CV0JLQmNCLINCj0KDQntCoCivQodCc0JjQldCo0JrQniDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQnNCY0JvQmNCLINCc0JDQoNCY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQgtCe0KDQgtCVCivQodCc0JjQidCQ0J3QmNCLINCC0J7QoNCC0JUKK9Ch0JzQmNCJ0JDQndCY0Isg0ILQntCg0ILQlQor0KHQnNCY0InQkNCd0JjQiyDQkdCe0IjQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JHQntCg0JrQkAor0KHQnNCY0InQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JTQntCR0KDQmNCS0J7QiAor0KHQnNCY0InQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQnNCY0InQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCc0JjQidCQ0J3QmNCLINCI0J7QktCQ0J3QkAor0KHQnNCY0InQkNCd0JjQiyDQiNCe0JLQkNCdCivQodCc0JjQidCQ0J3QmNCLINCI0J7QktCeCivQodCc0JjQidCQ0J3QmNCLINCJ0JjQidCQ0J3QkAor0KHQnNCY0InQkNCd0JjQiyDQidCY0InQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JzQkNCg0JjQiNCQCivQodCc0JjQidCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JDQndCY0Isg0JzQmNCb0JDQnQor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQmtCQCivQodCc0JjQidCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQodCc0JjQidCQ0J3QmNCLINCc0JjQm9Cj0KLQmNCdCivQodCc0JjQidCQ0J3QmNCLINCc0JjQntCU0KDQkNCTCivQodCc0JjQidCQ0J3QmNCLINCc0JvQkNCU0JXQnQor0KHQnNCY0InQkNCd0JjQiyDQndCV0JLQldCd0JrQkAor0KHQnNCY0InQkNCd0JjQiyDQndCV0JLQldCd0JrQkAor0KHQnNCY0InQkNCd0JjQiyDQntCb0JjQktCV0KDQkAor0KHQnNCY0InQkNCd0JjQiyDQn9CV0KLQkNCgCivQodCc0JjQidCQ0J3QmNCLINCf0KDQldCU0KDQkNCTCivQodCc0JjQidCQ0J3QmNCLINCg0JDQlNCQCivQodCc0JjQidCQ0J3QmNCLINCg0JDQlNCVCivQodCc0JjQidCQ0J3QmNCLINCh0JDQktCQCivQodCc0JjQidCQ0J3QmNCLINCh0J7QpNCY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0KHQotCQ0J3QkAor0KHQnNCY0InQkNCd0JjQiyDQodCi0JXQktCeCivQodCc0JjQidCQ0J3QmNCLINCi0KDQmNCS0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JLQldCh0JXQm9Ca0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JLQmNCU0J7QodCQ0JIKK9Ch0JzQmNCJ0JDQndCY0Isg0JLQmNCd0JrQngor0KHQnNCY0InQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCc0JjQidCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JzQmNCJ0JDQndCY0Isg0JfQm9CQ0KLQmtCeCivQodCc0JjQidCQ0J3QmNCLINCX0J7QoNCa0JAKK9Ch0JzQmNCJ0JDQndCe0JIg0JzQmNCb0JDQnQor0KHQnNCY0InQkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0KHQnNCY0InQkNCd0KHQmtCYINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JjQiyDQltCY0JLQmtCeCivQodCc0JjQidCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0JzQmNCJ0JrQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQodCc0JjQoNCd0J7QkiDQiNCj0JTQmNCi0JAKK9Ch0JzQmNCg0J3QntCSINCI0KPQlNCY0KIKK9Ch0JzQmNCg0J3QntCSINCg0JDQodCi0JjQodCb0JDQkgor0KHQnNCY0KDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KHQnNCe0Jog0J3QmNCa0J7Qm9CQCivQodCc0J7Qm9Cn0JjQiyDQoNCj0JbQkAor0KHQnNCe0JvQldCd0JjQptCa0Jgg0JzQldCb0JjQotCQCivQodCc0J7Qm9CV0J3QodCa0Jgg0JrQkNCg0JvQngor0KHQnNCe0JvQldCd0KHQmtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Ch0JzQntCJ0JDQndCY0JrQntCSINCc0JjQpdCQ0IjQm9CeINCU0JjQn9CbINCY0J3Qkwor0KHQnNCe0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCc0J7Qm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCc0J7Qm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCc0J7Qm9Ce0JLQmNCLINCg0JDQotCa0J4KK9Ch0JzQntCb0J7QktCY0Isg0KHQkNCS0JAKK9Ch0JzQoNCV0JrQkCDQlNCg0JDQk9CY0KbQkAor0KHQnNCj0ILQkCDQk9Cg0JDQlNCY0JzQmNCgCivQodCc0KPQgtCQINCI0J7QktCQ0J0KK9Ch0JzQo9CC0JAg0JzQmNCb0JXQndCa0J4KK9Ch0JzQo9CC0JAg0J3QmNCa0J7Qm9CQCivQodCc0KPQgtCQINCh0JDQktCQCivQodCc0KPQmiDQltCY0JLQkNCd0JAKK9Ch0JzQo9CaINCR0J7QoNCY0JLQntCICivQodCc0KPQotCV0Jog0IjQntCh0JjQnwor0KHQnNCj0KLQndCYINCY0JLQkNCdCivQodCK0JjQlNCQINCQ0J3QkAor0KHQitCY0JTQkCDQodCQ0KjQkAor0KHQntCR0KfQkNCaINCk0KDQkNCK0JAKK9Ch0J7QkdCe0KfQkNCdINCc0JjQqNCQCivQodCe0JHQntCL0JDQnSDQmNCS0JDQnQor0KHQntCm0JXQmiDQmNCc0KDQlQor0KHQntCm0JXQmiDQiNCe0KHQmNCfCivQodCe0KbQldCaINCc0JjQoNCI0JDQndCQCivQodCe0KTQmNCJINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCe0KTQmNCJINCU0KDQkNCT0JjQptCQCivQodCe0KTQmNCJINCI0J7QktCQ0J3QmtCQCivQodCe0KTQmNCJINCg0JDQndCa0J4KK9Ch0J7QpNCY0Ikg0KHQm9CQ0JLQmNCm0JAKK9Ch0J7QpNCY0J3QmtCY0Isg0JHQoNCQ0J3QmtCQCivQodCe0KTQoNCQ0I/QmNCI0JAg0JzQo9Cl0JDQnNCV0JQKK9Ch0J7QpNCg0JDQndCY0J0g0JHQntCg0JjQktCe0IgKK9Ch0J7QpNCg0JDQndCY0J0g0JrQo9CX0JzQkNCdCivQodCe0KTQoNCQ0J3QmNCdINCc0JjQm9CY0JLQntCICivQodCe0KTQoNCV0J3QmNCLINCS0JXQoNCY0KbQkAor0KHQntCk0KDQntCd0JjQiNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQntCk0KLQmNCLINCc0JDQoNCY0IjQkAor0KHQntCT0JjQiyDQodCQ0JLQkAor0KHQntCT0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ch0J7QiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0KHQntCI0JjQiyDQoNCQ0JTQntCI0JrQkAor0KHQntCa0JXQm9CVINCR0KDQkNCd0JjQodCb0JDQkgor0KHQntCa0JjQiyDQltCY0JLQmtCeCivQodCe0JrQmNCLINCC0KPQoNCC0JjQptCQCivQodCe0JrQmNCLINCY0JvQmNCI0JAKK9Ch0J7QmtCY0Isg0JvQmNCU0JjQiNCQCivQodCe0JrQmNCLINCX0J7QoNCa0JAKK9Ch0J7QmtCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCe0JrQntCb0JAg0JDQndCi0KPQnQor0KHQntCa0J7Qm9CQINCk0JXQoNCV0J3Qpgor0KHQntCa0J7Qm9CQINCY0KjQotCS0JDQnQor0KHQntCa0J7Qm9CQINCY0KjQotCS0JDQnQor0KHQntCa0J7Qm9CQINCa0JDQotCQ0KDQmNCd0JAKK9Ch0J7QmtCe0JvQkCDQnNCQ0KDQotCQCivQodCe0JrQntCb0JDQmCDQiNCe0JbQldCkCivQodCe0JrQntCb0JDQmCDQm9CQ0IjQntCoCivQodCe0JrQntCb0JjQiyDQltCV0InQmtCeCivQodCe0JrQntCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQntCa0J7Qm9Ce0JIg0InQo9CR0J7QnNCY0KAKK9Ch0J7QmtCe0JvQntCSINCc0JjQm9CQ0J0KK9Ch0J7QmtCe0JvQntCSINCd0JDQlNCa0JAKK9Ch0J7QmtCe0JvQntCSINCh0JvQkNCS0JrQkAor0KHQntCa0J7Qm9Ce0JIg0KHQotCV0JLQkNCdCivQodCe0JrQntCb0J7QkiDQl9CY0J3QkNCY0JTQngor0KHQntCa0J7Qm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J7QmtCe0JvQntCS0JjQiyDQkNCd0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQodCe0JrQntCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KHQntCa0J7Qm9Ce0JLQmNCLINCc0JjQm9CVCivQodCe0JrQntCb0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KHQntCa0J7Qm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0KHQntCa0J7Qm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0J7QmtCe0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCe0JrQntCb0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQntCa0J7Qm9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0KHQntCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQodCe0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCe0JvQkNCgINCJ0KPQkdCY0KbQkAor0KHQntCb0JDQoCDQodCi0IjQldCf0JDQnQor0KHQntCb0JDQoNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQodCe0JvQkNCg0JXQktCY0Isg0JzQmNCb0JDQndCa0JAKK9Ch0J7Qm9CQ0KDQmNCLINCh0J7QpNCY0IjQkAor0KHQntCb0JDQoNCe0JIg0JHQntCg0JjQodCb0JDQkgor0KHQntCb0JDQoNCe0JIg0JHQntCg0J4KK9Ch0J7Qm9CQ0KDQntCSINCc0JjQm9CQ0J0KK9Ch0J7Qm9CQ0KDQntCSINCc0JjQm9CY0KbQkAor0KHQntCb0JDQoNCe0JIg0JzQmNCb0JjQptCQCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQntCoCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQntCS0JDQnQor0KHQntCb0JDQoNCe0JIg0J3QmNCa0J7Qm9CQCivQodCe0JvQkNCg0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQntCb0JTQkNCiINCR0J7QqNCa0J4KK9Ch0J7Qm9CU0JDQoiDQkdCg0JDQndCa0JAKK9Ch0J7Qm9CU0JDQoiDQlNCg0JDQk9CeCivQodCe0JvQlNCQ0KIg0JzQmNCb0J7QqAor0KHQntCb0JTQkNCiINCc0JjQotCQ0KAKK9Ch0J7Qm9CU0JDQoiDQn9CV0KLQkNCgCivQodCe0JvQlNCQ0KIg0JLQldCh0J3QkAor0KHQntCb0JTQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0KHQntCb0JTQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0KHQntCb0JTQkNCi0J7QktCY0Isg0JPQntCg0JDQnQor0KHQntCb0JTQkNCi0J7QktCY0Isg0IjQntCS0JDQnQor0KHQntCb0JTQkNCi0J7QktCY0Isg0JzQmNCb0JAKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCh0JDQktCQINCd0J7QktCY0J3QkNCgCivQodCe0JvQlNCQ0KLQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQntCb0JTQkNCi0J7QktCY0Isg0JLQldCh0J3QkAor0KHQntCb0JTQkNCi0J7QktCY0Isg0JLQntCI0J4KK9Ch0J7Qm9CU0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J7Qm9CU0J4g0JjQktCQ0J0KK9Ch0J7Qm9CU0J4g0J3QntCS0JjQptCQCivQodCe0JvQlNCeINCS0JvQkNCU0JjQnNCY0KAKK9Ch0J7Qm9CV0KjQkCDQnNCY0KjQngor0KHQntCb0J7QnNCj0J0g0JHQoNCQ0J3QmtCeCivQodCe0JvQntCc0KPQnSDQlNCg0JDQk9CeCivQodCe0JvQntCc0KPQnSDQmNCb0JjQiNCQCivQodCe0JvQntCc0KPQnSDQnNCY0JvQlQor0KHQntCb0J7QnNCj0J0g0JLQldCh0JAKK9Ch0J7Qm9Ce0IrQkCDQodCi0JXQktCQ0J0KK9Ch0J7QnNCR0J7QoNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J7QnNCR0J7QoNCQ0KYg0IjQntCS0JDQnQor0KHQntCc0JHQntCg0JDQpiDQnNCQ0KDQmNCI0JAKK9Ch0J7QnNCR0J7QoNCQ0KYg0KHQoNCV0IvQmtCeCivQodCe0JzQkdCe0KDQkNCmINCi0JXQoNCV0JfQkAor0KHQntCc0JHQntCg0JDQpiDQotCe0JTQntCgCivQodCe0JzQkdCe0KDQodCa0Jgg0JvQkNCX0JDQoAor0KHQntCc0JHQntCg0KHQmtCYINCc0JjQm9CY0KbQkAor0KHQntCc0JXQoCDQmNCc0KDQlQor0KHQntCc0JXQoCDQiNCV0JvQldCd0JAKK9Ch0J7QnNCV0KAg0KLQmNCR0J7QoAor0KHQntCf0JrQkCDQkNCd0JjQptCQCivQodCe0J/QmtCQINCI0JDQndCa0J4KK9Ch0J7Qn9Ca0JAg0InQo9CR0J7QnNCY0KAKK9Ch0J7Qn9Ca0JAg0InQo9CR0J7QnNCY0KAKK9Ch0J7Qn9Ca0JAg0JzQkNCg0JjQiNCQCivQodCe0J/QmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0J7QoNCo0JDQmiDQnNCY0JvQkNCdCivQodCe0KDQqNCQ0Jog0JLQkNCb0JXQndCi0JjQnQor0KHQntCg0JDQlNCYINCQ0J3QotCj0J0KK9Ch0J7QoNCQ0JTQmCDQmNCS0JDQnQor0KHQntCg0JDQlNCYINCh0KLQiNCV0J/QkNCdCivQodCe0KDQkNCI0JjQiyDQnNCY0JvQkNCdCivQodCe0KDQkNCI0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQntCg0JDQmiDQlNCV0JvQmNCS0J7QiNCVCivQodCe0KDQkyDQkNCd0JPQldCb0JjQndCQCivQodCe0KDQkyDQiNCV0JvQldCd0JAKK9Ch0J7QoNCTINCd0JjQmtCe0JvQkAor0KHQntCg0JPQldCgINCc0JjQoNCQCivQodCe0KDQniDQnNCY0JvQkNCdCivQodCe0KDQniDQnNCY0J7QlNCg0JDQkwor0KHQntCg0J4g0JzQmNCg0IjQkNCd0JAKK9Ch0J7QoNCeINCd0JjQmtCe0JvQkAor0KHQntCg0J4g0KHQmNCc0J4KK9Ch0J7QotCV0KAg0IjQkNCd0J7QqAor0KHQntCi0JjQoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQodCe0KLQntCd0JjQptCQINCg0JDQiNCa0J4KK9Ch0J7QktCQINCf0JXQotCQ0KAKK9Ch0J7QktCQINCg0KPQlNCYCivQodCe0JLQmNCoINCC0J7QoNCC0JUKK9Ch0J7QktCY0Kgg0JzQmNCo0JAKK9Ch0J7QktCY0Kgg0J7Qm9CT0JAKK9Ch0J7QktCY0Kgg0J/QkNCS0JvQlQor0KHQntCS0JjQiSDQgtCe0KDQgtCVCivQodCe0JLQmNCJINCC0KPQoNCeCivQodCe0JLQmNCJINCQ0J3QgtCV0JvQmtCeCivQodCe0JLQmNCJINCQ0J3QmtCQCivQodCe0JLQmNCJINCR0J7QltCeCivQodCe0JLQmNCJINCR0J7Qk9CU0JDQnQor0KHQntCS0JjQiSDQlNCj0KjQkNCdCivQodCe0JLQmNCJINCY0JvQmNCI0JAKK9Ch0J7QktCY0Ikg0JjQm9CY0IjQkAor0KHQntCS0JjQiSDQmNCb0JjQiNCQCivQodCe0JLQmNCJINCY0JLQmNCm0JAKK9Ch0J7QktCY0Ikg0IjQntCS0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0J7QktCY0Ikg0InQo9CR0JjQptCQCivQodCe0JLQmNCJINCc0JjQm9CQ0J0g0JzQoAor0KHQntCS0JjQiSDQnNCY0JvQkNCdCivQodCe0JLQmNCJINCf0JXQoNCa0JAKK9Ch0J7QktCY0Ikg0J/QldCi0JDQoAor0KHQntCS0JjQiSDQn9CV0KLQkNCgCivQodCe0JLQmNCJINCS0JvQkNCU0J4KK9Ch0J/QkNCl0JjQiyDQmtCV0JzQkNCbCivQodCf0JDQmNCLINCW0JXQidCa0J4KK9Ch0J/QkNCY0Isg0JzQmNCb0JDQnQor0KHQn9CQ0JjQiyDQnNCY0JvQkNCdCivQodCf0JDQiNCY0Isg0JHQntCW0JAKK9Ch0J/QkNCI0JjQiyDQlNCY0JrQngor0KHQn9CQ0IjQmNCLINCI0J7QktCQ0J0KK9Ch0J/QkNCI0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQodCf0JDQiNCY0Isg0JzQmNCb0J7QiNCVCivQodCf0JDQiNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0J/QkNCI0JjQiyDQodCe0KTQmNCI0JAKK9Ch0J/QkNCI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCf0JDQiNCY0Isg0JfQntCg0JDQnQor0KHQn9CQ0IjQmNCLINCX0J7QoNCQ0J0KK9Ch0J/QkNCb0JXQktCY0Isg0JzQmNCe0JzQmNCgCivQodCf0JDQm9CV0JLQmNCLINCS0JXQoNCQCivQodCf0JDQoNCY0J7QodCYINCQ0J3QgtCV0JvQmtCQCivQodCf0JDQodCV0J3QntCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0J/QkNCh0JXQndCe0JIg0JzQmNCb0JUKK9Ch0J/QkNCh0JXQndCe0JIg0KHQn9CQ0KHQmtCeCivQodCf0JDQodCV0J3QntCSINCh0KLQkNCd0JAKK9Ch0J/QkNCh0JXQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0J/QkNCh0JXQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQn9CQ0KHQldCd0J7QktCh0JrQmCDQoNCe0JzQkNCdCivQodCf0JDQodCV0J3QntCS0KHQmtCYINCS0JDQodCQCivQodCf0JDQodCY0Isg0JbQmNCS0J7QnNCY0KAKK9Ch0J/QkNCh0JjQiyDQgtCe0KDQgtCVCivQodCf0JDQodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J/QkNCh0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQn9CQ0KHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQn9CQ0KHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQn9CQ0KHQmNCLINCU0KDQkNCT0JjQqNCQCivQodCf0JDQodCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0J/QkNCh0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQn9CQ0KHQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCf0JDQodCY0Isg0IjQntCS0JDQnQor0KHQn9CQ0KHQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQidCY0InQkNCd0JAKK9Ch0J/QkNCh0JjQiyDQidCj0JHQmNCm0JAKK9Ch0J/QkNCh0JjQiyDQnNCY0JvQkNCdCivQodCf0JDQodCY0Isg0JzQmNCb0JXQktCQCivQodCf0JDQodCY0Isg0JzQmNCb0J7QqAor0KHQn9CQ0KHQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCf0JDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0J/QkNCh0JjQiyDQnNCY0KDQmtCeCivQodCf0JDQodCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0J/QkNCh0JjQiyDQn9CV0KLQkNCgCivQodCf0JDQodCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0J/QkNCh0JjQiyDQodCi0JDQndCY0KjQkAor0KHQn9CQ0KHQmNCLINCh0KLQkNCd0JrQngor0KHQn9CQ0KHQmNCLINCh0KLQntCI0JDQnQor0KHQn9CQ0KHQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQn9CQ0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCf0JDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQn9CQ0KHQmNCLINCi0KDQkNCI0JDQndCa0JAKK9Ch0J/QkNCh0JjQiyDQktCV0JvQmNCn0JrQngor0KHQn9CQ0KHQmNCLINCS0KPQiNCY0KbQkAor0KHQn9CQ0KHQntCI0JXQkiDQidCj0JHQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JIg0KHQotCe0IjQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQltCY0JLQntCi0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCC0KPQoNCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQkdCe0KDQmNCo0JAg0JzQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KbQktCV0KLQmtCeCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JPQntCh0J/QkNCS0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCT0J7QodCi0JjQnNCY0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCI0KPQm9Ca0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCa0JDQotCY0KbQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JrQoNCh0KLQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JvQkNCX0JDQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCL0J4KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQi9CeCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQndCe0JLQkNCaCivQodCf0JDQodCe0IjQldCS0JjQiyDQn9CQ0JLQm9CVCivQodCf0JDQodCe0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQkNCm0J4KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCQ0JTQntCI0JvQlQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQkNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0J7QlNCe0InQo9CRCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCb0JDQktCeCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCe0IrQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQo9CX0JDQndCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQktCY0KLQntCc0JjQoCDQlNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCf0JDQodCe0JvQmCDQpNCV0KDQkNCiCivQodCf0JDQodCe0JLQkCDQidCj0JHQmNCm0JAKK9Ch0J/QldCg0JDQndCh0JrQmCDQidCj0JTQnNCY0JvQkCDQnNCgCivQodCf0JXQoNCK0JDQmiDQgtCe0KDQgtCVCivQodCf0JXQoNCK0JDQmiDQkdCe0JPQlNCQ0J0KK9Ch0J/QldCg0IrQkNCaINCJ0KPQkdCY0J3QmtCQCivQodCf0JXQoNCK0JDQmiDQnNCY0JvQldCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0J/QldCS0JDQmiDQlNCQ0J3QmNCV0JvQkAor0KHQn9CV0JLQkNCaINCI0KPQoNCQ0IgKK9Ch0J/QldCS0JDQmiDQl9Ce0KDQntCh0JvQkNCSCivQodCf0JjQp9CQ0J3QntCS0JjQiyDQldCS0JjQptCQCivQodCf0JjQp9CQ0J3QntCS0JjQiyDQnNCQ0IjQkAor0KHQn9CY0KfQkNCd0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Ch0J/QmNCb0JrQo9Cm0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQodCf0JjQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J/QmNCg0JjQlNCe0J3QntCSINCQ0J3QkNCh0KLQkNChCivQodCf0JjQoNCY0JTQntCd0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KHQn9CY0KDQmNCU0J7QndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCf0JjQoNCY0JTQntCd0J7QktCY0Isg0KHQmNCb0JLQmNCI0JAKK9Ch0J/QmNCg0J7QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J/QmNCg0J7QktCh0JrQmCDQptCQ0J3QlQor0KHQn9Ce0IjQkCDQltCV0InQmtCeCivQodCf0KDQldCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0J/QoNCV0JzQmNCLINCf0JXQotCQ0KAKK9Ch0J/QoNCV0JzQmNCLINCh0KDQldCi0JXQnQor0KHQn9Cg0JXQnNCeINCC0KPQoNCeCivQodCf0KDQldCc0J4g0JzQmNCe0JTQoNCQ0JMKK9Ch0J/QoNCV0JzQniDQnNCY0KDQmtCeCivQodCf0KDQldCc0J4g0JzQmNCg0J7QodCb0JDQkgor0KHQn9Cg0JXQnNCeINCg0JDQlNCe0JLQkNCdCivQodCf0KDQldCc0J4g0KHQm9CQ0JLQmtCeCivQodCf0KDQldCc0J4g0JLQntCI0JjQodCb0JDQkgor0KHQn9Cj0KHQldCd0JjQmiDQm9CQ0IjQntCoCivQodCg0ILQkNCd0J7QkiDQltCQ0KDQmtCeCivQodCg0ILQkNCd0J7QkiDQltCY0JLQmtCeCivQodCg0ILQkNCd0J7QkiDQmtCe0J3QodCi0JDQndCi0JjQnQor0KHQoNCC0JDQndCe0JIg0JzQmNCl0JDQiNCb0J4KK9Ch0KDQgtCQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCg0ILQkNCd0J7QkiDQnNCY0JvQntCoINCU0JjQn9CbINCY0J3Qkwor0KHQoNCC0JDQndCe0JIg0JzQmNCb0J7QqAor0KHQoNCC0JDQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQoNCC0JDQndCe0JIg0J3QkNCU0JAKK9Ch0KDQgtCQ0J3QntCSINCd0JDQlNCQCivQodCg0ILQkNCd0J7QkiDQodCb0JDQktCa0J4KK9Ch0KDQgtCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQodCg0ILQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQoNCC0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KHQoNCC0JDQndCe0JIg0JLQldCg0JAKK9Ch0KDQgtCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCg0ILQldCd0J7QktCY0Isg0KPQoNCe0KgKK9Ch0KDQgtCV0JLQmNCLINCR0J7QiNCQ0J0KK9Ch0KDQkdCY0J0g0JDQndCa0JAKK9Ch0KDQkdCY0J0g0JHQntCT0JTQkNCdCivQodCg0JHQmNCdINCI0J7QktCQ0J0g0JTQoAor0KHQoNCR0JjQnSDQmtCe0KHQotCQCivQodCg0JHQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCR0J7QoNCY0KEKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCU0KDQkNCT0JDQndCQCivQodCg0JHQmNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J3QkAor0KHQoNCR0JjQndCe0JLQodCa0Jgg0JzQkNCo0JAKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCf0JDQndCi0JAKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCf0JXQotCQ0KAKK9Ch0KDQkdCJ0JDQnSDQm9CQ0JfQkNCgCivQodCg0JHQidCQ0J3QmNCdINCU0KDQkNCT0JDQnQor0KHQoNCR0InQkNCd0JjQnSDQn9Cg0JXQlNCg0JDQkwor0KHQoNCR0J7QktCQ0J0g0IjQntCdCivQodCg0JHQo9Cb0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KDQkdCj0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCg0JHQo9Cb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQoNCU0JDQndCe0JIg0JbQmNCS0JDQnQor0KHQoNCU0JDQndCe0JIg0JbQmNCS0J7QiNCY0J0KK9Ch0KDQlNCQ0J3QntCSINCC0J7QoNCC0JUKK9Ch0KDQlNCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQodCg0JTQkNCd0J7QkiDQiNCV0JvQmtCQCivQodCg0JTQkNCd0J7QkiDQiNCe0JLQkNCdCivQodCg0JTQkNCd0J7QkiDQm9CQ0JfQkNCgCivQodCg0JTQkNCd0J7QkiDQm9CQ0JfQkNCgCivQodCg0JTQkNCd0J7QkiDQidCY0InQkNCd0JAKK9Ch0KDQlNCQ0J3QntCSINCc0JjQqNCQCivQodCg0JTQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0KDQlNCQ0J3QntCSINCc0JjQm9Ce0KgKK9Ch0KDQlNCQ0J3QntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Ch0KDQlNCQ0J3QntCSINCf0JXQotCQ0KAKK9Ch0KDQlNCQ0J3QntCSINCh0JjQnNCQCivQodCg0JTQkNCd0J7QkiDQodCb0JDQktCa0JAKK9Ch0KDQlNCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KDQlNCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KDQlNCQ0J3QntCSINCi0J7QlNCe0KAKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQodCg0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCI0JUKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQpNCY0JvQmNCfCivQodCg0JTQkNCd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQoNCU0JDQndCe0JLQmNCLINCe0JfQoNCV0J0g0JTQmNCf0Jsg0JjQndCTCivQodCg0JTQkNCd0J7QktCY0Isg0KDQntCh0JDQndCU0JAKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQodCQ0IrQkAor0KHQoNCU0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQoNCU0JjQiyDQltCY0JLQmtCeCivQodCg0JTQmNCLINCW0JjQktCa0J4KK9Ch0KDQlNCY0Isg0JbQmNCS0JrQngor0KHQoNCU0JjQiyDQgtCe0KDQgtCVINCc0KAKK9Ch0KDQlNCY0Isg0ILQo9Cg0J4KK9Ch0KDQlNCY0Isg0JDQndCC0JAKK9Ch0KDQlNCY0Isg0JDQndCQCivQodCg0JTQmNCLINCR0J7QqNCa0J4KK9Ch0KDQlNCY0Isg0JHQntCT0JTQkNCdCivQodCg0JTQmNCLINCR0J7QodCQCivQodCg0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQoNCU0JjQiyDQlNCQ0J3QlQor0KHQoNCU0JjQiyDQlNCY0IjQkNCd0JAKK9Ch0KDQlNCY0Isg0JTQo9Co0JDQnQor0KHQoNCU0JjQiyDQldCc0JXQoNCY0JrQkAor0KHQoNCU0JjQiyDQldCc0JXQoNCY0JrQkAor0KHQoNCU0JjQiyDQk9Ce0KDQkNCdCivQodCg0JTQmNCLINCY0JLQkNCdCivQodCg0JTQmNCLINCI0JXQm9CV0J3QkAor0KHQoNCU0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KDQlNCY0Isg0JzQmNCb0JDQnQor0KHQoNCU0JjQiyDQnNCY0JvQkNCdCivQodCg0JTQmNCLINCc0JjQm9CY0KbQkAor0KHQoNCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQoNCU0JjQiyDQnNCY0KDQmtCeCivQodCg0JTQmNCLINCc0JjQoNCa0J4KK9Ch0KDQlNCY0Isg0J3QkNCU0JAKK9Ch0KDQlNCY0Isg0J3QkNCU0JAKK9Ch0KDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQodCg0JTQmNCLINCd0JjQmtCe0JvQkAor0KHQoNCU0JjQiyDQndCY0JrQntCb0JAKK9Ch0KDQlNCY0Isg0J/QldCi0JDQoAor0KHQoNCU0JjQiyDQoNCQ0JTQlQor0KHQoNCU0JjQiyDQoNCQ0JTQlQor0KHQoNCU0JjQiyDQodCY0JzQkAor0KHQoNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCg0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KDQlNCY0Isg0JLQkNCh0J4KK9Ch0KDQlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQoNCU0JjQiyDQktCe0IjQkAor0KHQoNCU0JjQiyDQl9Ce0KDQkAor0KHQoNCV0IvQmtCe0JIg0JbQmNCS0JrQngor0KHQoNCV0IvQmtCe0JIg0JHQm9CQ0JPQmNCm0JAKK9Ch0KDQldCL0JrQntCSINCR0KDQkNCd0JrQngor0KHQoNCV0IvQmtCe0JIg0JTQoNCQ0JPQkNCdCivQodCg0JXQi9Ca0J7QkiDQlNCg0JDQk9CY0KbQkAor0KHQoNCV0IvQmtCe0JIg0JTQo9Co0JDQnQor0KHQoNCV0IvQmtCe0JIg0JTQo9Co0JDQnQor0KHQoNCV0IvQmtCe0JIg0JXQoNCW0JXQkdCV0KIKK9Ch0KDQldCL0JrQntCSINCI0J7QktCQ0J0KK9Ch0KDQldCL0JrQntCSINCa0JDQotCY0KbQkAor0KHQoNCV0IvQmtCe0JIg0JzQmNCb0JXQndCQCivQodCg0JXQi9Ca0J7QkiDQnNCY0JvQldCd0JAKK9Ch0KDQldCL0JrQntCSINCc0JjQm9CY0JLQntCICivQodCg0JXQi9Ca0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQodCg0JXQi9Ca0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQoNCV0IvQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Ch0KDQldCL0JrQntCSINCh0KLQkNCd0JrQngor0KHQoNCV0IvQmtCe0JIg0KHQotCV0JLQkNCdCivQodCg0JXQi9Ca0J7QkiDQotCV0J7QlNCe0KDQkAor0KHQoNCV0IvQmtCe0JIg0JLQkNCh0JAKK9Ch0KDQldCL0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQodCg0JXQi9Ca0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0KHQoNCV0IvQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCg0JXQi9Ca0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCg0JXQi9Ca0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ch0KDQldCL0JrQntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Ch0KDQldCL0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QkAor0KHQoNCV0IvQniDQlNCQ0J3QmNCm0JAKK9Ch0KDQldCL0J4g0JzQmNCL0J4KK9Ch0KDQldCR0J7QotCK0JDQmiDQodCi0JDQndCa0J4KK9Ch0KDQldCR0KDQniDQmNCb0JjQiNCQINCU0KAKK9Ch0KDQldCU0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0JjQn9CbINCY0J3Qkwor0KHQoNCV0JTQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQodCg0JXQlNCe0IjQldCS0JjQiyDQlNCe0JHQoNCeCivQodCg0JXQlNCe0IjQldCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JvQkNCX0JDQoAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQodCg0JXQlNCe0IjQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KDQldCU0J7QktCY0Isg0KDQkNCI0JrQngor0KHQoNCV0IjQmNCLINCR0J7QoNCa0JAKK9Ch0KDQldCc0KfQldCSINCC0J7QoNCC0JUKK9Ch0KDQldCc0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0JvQldCa0JDQoAor0KHQoNCV0JzQp9CV0JIg0JvQkNCX0JDQoAor0KHQoNCV0JzQp9CV0JIg0JzQkNCg0JjQiNCQCivQodCg0JXQnNCn0JXQkiDQndCV0KHQotCe0KAKK9Ch0KDQldCc0KfQldCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KDQldCc0KfQldCSINCh0J7QpNCY0IjQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KDQldCc0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQodCg0JXQnNCn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQoNCV0JzQp9CV0JLQmNCLINCa0JDQotCQCivQodCg0JXQnNCn0JXQktCY0Isg0JrQkNCi0JjQptCQCivQodCg0JXQnNCn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQodCg0JXQnNCn0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KDQldCc0KfQldCS0JjQiyDQoNCQ0KHQotCa0J4KK9Ch0KDQldCc0KfQldCS0JjQiyDQodCb0JDQktCd0JAKK9Ch0KDQldCc0KfQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KDQldCc0KfQldCS0JjQiyDQktCV0InQmtCeCivQodCg0JXQnNCQ0KfQmtCYINCC0J7QoNCC0JUKK9Ch0KDQldCc0JDQp9Ca0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0KHQoNCV0JzQkNCn0JrQmCDQlNCj0KjQkNCd0JrQkAor0KHQoNCV0JzQkNCn0JrQmC3Qk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCQ0IjQkAor0KHQoNCV0JzQkNCn0JrQmCDQmNCS0JDQndCa0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0IjQntCS0JDQndCa0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0KHQoNCV0JzQkNCn0JrQmC3QnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCg0JXQnNCQ0KfQmtCYINCf0JXQotCQ0KAKK9Ch0KDQldCc0JDQp9Ca0Jgg0KHQmNCc0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0KHQntCa0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0KHQn9CQ0KHQntCI0JUKK9Ch0KDQldCc0JDQp9Ca0Jgg0KHQotCQ0J3QntCI0JUKK9Ch0KDQldCc0JDQp9Ca0Jgg0JLQm9CQ0JTQkAor0KHQoNCV0JzQkNCn0JrQmCDQl9Ce0KDQmNCm0JAKK9Ch0KDQldCc0JDQpiDQgtCe0KDQgtCVCivQodCg0JXQnNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KDQldCc0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQodCg0JXQnNCQ0KYg0JjQodCQ0JoKK9Ch0KDQldCc0JDQpiDQiNCQ0J3QmtCeCivQodCg0JXQnNCQ0KYg0IjQntCS0JDQnQor0KHQoNCV0JzQkNCmINCJ0KPQkdCY0KbQkAor0KHQoNCV0JzQkNCmINCJ0KPQkdCY0KbQkAor0KHQoNCV0JzQkNCmINCc0JjQm9CV0J3QkAor0KHQoNCV0JzQkNCmINCc0JjQm9CV0J3QmtCeCivQodCg0JXQnNCQ0KYg0JzQmNCb0JjQktCe0IgKK9Ch0KDQldCc0JDQpiDQnNCY0KDQkAor0KHQoNCV0JzQkNCmINCd0JjQmtCe0JvQkAor0KHQoNCV0JzQkNCmINCf0JDQo9Cb0JjQndCQCivQodCg0JXQnNCQ0KYg0J/QkNCS0JvQlQor0KHQoNCV0JzQkNCmINCf0JXQoNCh0JjQlNCQCivQodCg0JXQnNCQ0KYg0KDQkNCU0J7QiNCa0J4KK9Ch0KDQldCc0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JXQnNCQ0KYg0KHQoNCC0JDQnQor0KHQoNCV0JzQkNCmINCh0KLQntCI0JDQndCa0JAKK9Ch0KDQldCc0JDQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KDQldCc0JDQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KDQldCc0JDQpiDQotCQ0J3QkNCh0JjQiNCVCivQodCg0JXQnNCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KHQoNCV0JzQkNCmINCS0JvQkNCI0JrQngor0KHQoNCV0JzQkNCmINCX0J7QoNCQ0J3QkAor0KHQoNCV0JzQkNCmINCX0J7QoNCQ0J0KK9Ch0KDQldCi0JXQndCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Ch0KDQldCi0JXQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQodCg0JXQotCV0J3QntCS0JjQiy3QnNCQ0J3QntCI0JvQntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQodCg0JXQotCV0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KHQoNCV0KLQldCd0J7QktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQoNCV0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCg0JXQotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KDQldCi0JjQiyDQoNCQ0KLQntCc0JjQoAor0KHQoNCV0KLQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQoNCd0JTQntCS0JjQiyDQl9Ce0KDQmtCQCivQodCg0J3QldCmINCW0JXQidCa0J4KK9Ch0KDQndCY0Isg0JHQntCT0JTQkNCdCivQodCg0J3QmNCLINCV0JLQmNCm0JAKK9Ch0KDQndCa0JAg0IjQkNCd0JrQngor0KHQoNCd0JrQkCDQiNCe0JLQkNCdCivQodCi0JDQqNCj0Jog0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCl0JDQndCY0Isg0JDQndCa0JAKK9Ch0KLQkNCY0J0g0KHQotCV0JLQkNCdCivQodCi0JDQiNCn0JjQiyDQmNCS0JDQnQor0KHQotCQ0IjQp9CY0Isg0J/QldCi0JDQoAor0KHQotCQ0IjQqNCY0Isg0ILQo9Cg0JAKK9Ch0KLQkNCI0JjQiyDQgtCe0KDQgtCVCivQodCi0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ch0KLQkNCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQkNCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0JHQntCg0JjQktCe0IgKK9Ch0KLQkNCI0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQodCi0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCQ0IjQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCI0JjQiyDQlNCj0KjQmNCm0JAKK9Ch0KLQkNCI0JjQiyDQpNCV0JzQkAor0KHQotCQ0IjQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KHQotCQ0IjQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KHQotCQ0IjQmNCLINCT0KDQmNCT0J7QoNCY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCI0JjQiyDQiNCj0KHQotCY0J3QkAor0KHQotCQ0IjQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0KLQkNCI0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0IjQmNCLINCc0JDQoNCQCivQodCi0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQiNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCI0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQiNCY0Isg0JzQmNCb0JXQodCQCivQodCi0JDQiNCY0Isg0JzQmNCb0JXQktCQCivQodCi0JDQiNCY0Isg0JzQmNCb0JrQkAor0KHQotCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCI0JjQiyDQndCV0KHQotCe0KAKK9Ch0KLQkNCI0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQiNCY0Isg0J/QldCi0JDQoAor0KHQotCQ0IjQmNCLLdCf0J7Qn9Ce0JIg0JHQntCg0JjQodCb0JDQktCQINCU0KAKK9Ch0KLQkNCI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQotCQ0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQkNCI0JjQiyDQodCY0JrQkAor0KHQotCQ0IjQmNCLINCh0KDQldCi0JAKK9Ch0KLQkNCI0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCI0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQodCi0JDQiNCY0Isg0KLQntCU0J7QoAor0KHQotCQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQodCi0JDQiNCY0Isg0JLQo9Ca0J7QodCQ0JIKK9Ch0KLQkNCI0JjQiyDQl9Cb0JDQotCQCivQodCi0JDQiNCa0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQodCi0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCQ0JrQmNCLINCW0JjQktCQ0J0KK9Ch0KLQkNCa0JjQiyDQltCY0JLQmtCQCivQodCi0JDQmtCY0Isg0ILQo9Cg0J4KK9Ch0KLQkNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0JrQmNCLINCR0J7QqNCa0J4KK9Ch0KLQkNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQkNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCa0JjQiyDQlNCV0IjQkNCdCivQodCi0JDQmtCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCa0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQkNCa0JjQiyDQiNCe0JLQkNCdINCh0KPQlNCY0IjQkAor0KHQotCQ0JrQmNCLINCc0JXQm9CY0J3QlNCQCivQodCi0JDQmtCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCa0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQmtCY0Isg0JzQntCc0JjQoAor0KHQotCQ0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JDQmtCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0KLQkNCa0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCa0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQmtCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0KHQotCQ0JrQmNCLINCh0KLQntCI0JDQnQor0KHQotCQ0JrQmNCLINCS0JXQoNCQCivQodCi0JDQmtCY0Isg0JfQkNCl0JDQoNCY0IjQlQor0KHQotCQ0JrQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCa0J7QoNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0KLQkNCc0JDQotCe0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAKK9Ch0KLQkNCc0JDQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQnNCV0J3QmNCLINCU0JDQnNCK0JDQnQor0KHQotCQ0JzQldCd0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQnNCV0J3QmNCLINCg0JDQlNCe0KHQkNCSCivQodCi0JDQnNCV0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JzQkNCg0IjQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0J/QldCi0KDQntCd0JjQiNCVCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0KDQldCi0JXQnSDQlNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQl9Ce0KDQkAor0KHQotCQ0JzQldCd0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KLQkNCc0JXQndCe0JIg0J3QmNCa0J7Qm9CQCivQodCi0JDQnNCV0J3QntCSINCh0JvQkNCS0JrQkAor0KHQotCQ0JzQldCd0J7QktCY0Isg0JrQoNCh0KLQmNCS0J7QiAor0KHQotCQ0JzQldCd0J7QktCY0Isg0KDQkNCI0JrQngor0KHQotCQ0JzQldCS0KHQmtCYINCi0J7QndCn0JUKK9Ch0KLQkNCc0J7QoNCQ0J0g0JrQkNCi0JjQptCQCivQodCi0JDQnNCf0KTQldCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Ch0KLQkNCd0KfQldCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCQ0J3Qp9CV0KLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0KfQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCi0JDQndCn0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCgCivQodCi0JDQndCn0JjQiyDQkdCb0JDQk9Ce0IjQlSDQnNCgCivQodCi0JDQndCn0JjQiyDQkdCe0JbQkNCd0JAKK9Ch0KLQkNCd0KfQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JDQndCn0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQkNCd0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCd0KfQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQkNCd0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQndCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0KfQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0KfQmNCLINCc0JjQi9CQCivQodCi0JDQndCn0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCQ0J3Qp9CY0Isg0JzQmNCa0JAKK9Ch0KLQkNCd0KfQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0KfQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0KfQmNCLINCi0JDQndCa0J7QodCQ0JLQkAor0KHQotCQ0J3Qp9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Ch0KLQkNCd0KfQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0KfQmNCaINCc0JDQoNCT0JjQotCQCivQodCi0JDQndCn0KMg0JzQkNCg0JjQiNCQCivQodCi0JDQndCn0KPQmyDQltCY0JLQkNCdCivQodCi0JDQndCn0KPQmyDQkNCd0JrQkAor0KHQotCQ0J3Qp9Cj0Jsg0InQmNCJ0JDQndCQCivQodCi0JDQndCn0KPQmyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3Qp9Cj0Jsg0KDQkNCU0JjQodCb0JDQkgor0KHQotCQ0J3Qp9Cj0Jsg0KDQkNCU0J7QktCQ0J0KK9Ch0KLQkNCd0KfQo9CbINCh0JDQktCQCivQodCi0JDQndCn0KPQm9Ce0JIg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCd0KfQo9Cb0J7QkiDQnNCY0JvQkNCdCivQodCi0JDQndCQ0IvQldCSINCW0JjQktCQCivQodCi0JDQndCQ0IvQldCSINCc0JjQm9CV0J3QkAor0KHQotCQ0J3QkNCL0JXQkiDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QkNCL0JXQkiDQodCg0JXQlNCe0IjQlSDQlNCgCivQodCi0JDQndCQ0KAg0ILQo9Cg0JAKK9Ch0KLQkNCd0JDQoCDQgtCj0KDQkAor0KHQotCQ0J3QkNCgINCC0KPQoNCQCivQodCi0JDQndCQ0KAg0JDQndCa0JAKK9Ch0KLQkNCd0JDQoCDQlNCV0KHQkAor0KHQotCQ0J3QkNCgINCU0KPQqNCQ0J3QmtCQCivQodCi0JDQndCQ0KAg0JTQo9Co0JDQnQor0KHQotCQ0J3QkNCgLdCT0J7Qk9CY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCQ0KAg0JjQm9CY0IjQkAor0KHQotCQ0J3QkNCgINCc0JjQm9CVCivQodCi0JDQndCQ0KAg0KDQkNCU0JUKK9Ch0KLQkNCd0JDQoCDQoNCQ0KLQmtCeCivQodCi0JDQndCQ0KDQldCS0JjQiyDQltCV0InQmtCeCivQodCi0JDQndCQ0KDQldCS0JjQiyDQkdCe0JbQkAor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JzQkNCg0JrQngor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCd0JXQlNCV0InQmtCQCivQodCi0JDQndCQ0KDQldCS0JjQiyDQodCQ0JLQkAor0KHQotCQ0J3QkdCe0JvQmNCI0JAg0JzQmNCg0JrQngor0KHQotCQ0J3QldCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QldCa0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0JDQndCV0JrQntCS0JjQiyDQktCe0IjQkAor0KHQotCQ0J3QmNCn0JrQntCSINCn0JXQlNCe0JzQmNCgCivQodCi0JDQndCY0KfQmtCe0JIg0JHQntCg0JAKK9Ch0KLQkNCd0JjQp9Ca0J7QkiDQiNCe0JLQkNCdCivQodCi0JDQndCY0KfQmtCe0JIg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0KfQmtCe0JIg0JzQkNCg0KLQkAor0KHQotCQ0J3QmNCo0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCQ0J3QmNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQndCY0KjQmNCLINCR0KPQlNCY0J3QmtCQCivQodCi0JDQndCY0KjQmNCLINCU0JDQnNCI0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCY0KjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCd0JjQqNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCQ0J3QmNCo0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCY0KjQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0JPQntCI0JrQngor0KHQotCQ0J3QmNCo0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0IjQntCS0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQiNCe0JLQkNCdCivQodCi0JDQndCY0KjQmNCLINCa0JDQotCY0KbQkAor0KHQotCQ0J3QmNCo0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCi0JDQndCY0KjQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQodCi0JDQndCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmNCo0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCY0KjQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0KjQmNCLINCc0JjQm9CY0Isg0JTQoCDQm9CV0JrQkNCgCivQodCi0JDQndCY0KjQmNCLINCc0JjQm9CY0JLQntCICivQodCi0JDQndCY0KjQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0JjQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCd0JjQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCd0JjQqNCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCY0KjQmNCLINCc0J7QnNCY0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0J3QldCR0J7QiNCo0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0J3QldCU0JXQidCa0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCY0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QmNCo0JjQiyDQntCb0JPQmNCm0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QmNCo0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQndCY0KjQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0J/QoNCe0JrQkAor0KHQotCQ0J3QmNCo0JjQiyDQoNCQ0JTQkAor0KHQotCQ0J3QmNCo0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQoNCQ0KLQmtCeCivQodCi0JDQndCY0KjQmNCLINCg0JXQidCQCivQodCi0JDQndCY0KjQmNCLINCh0JjQnNCeCivQodCi0JDQndCY0KjQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JjQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQodCi0JDQndCY0KjQkAor0KHQotCQ0J3QmNCo0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCV0JLQngor0KHQotCQ0J3QmNCo0JjQiyDQodCi0J7QiNCQ0J3Qp9CQCivQodCi0JDQndCY0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KHQktCV0KLQntCX0JDQoCDQlNCgCivQodCi0JDQndCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0KLQmNCl0J7QnNCY0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0KLQntCU0J7QoAor0KHQotCQ0J3QmNCo0JjQiyDQotCe0JzQkNCoCivQodCi0JDQndCY0KjQmNCLINCS0JDQodCY0InQmtCQCivQodCi0JDQndCY0KjQmNCLINCS0JXQidCa0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0JLQm9CQ0JTQkAor0KHQotCQ0J3QmNCo0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0KjQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0J0g0JHQoNCQ0J3QmtCeCivQodCi0JDQndCY0KjQmNCdINCY0KHQkAor0KHQotCQ0J3QmNCo0JjQnSDQktCe0IjQmNCdCivQodCi0JDQndCY0KjQidCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0JbQmNCS0JDQlNCY0J0KK9Ch0KLQkNCd0JjQiyDQltCY0JLQkNCdCivQodCi0JDQndCY0Isg0ILQo9Cg0JAKK9Ch0KLQkNCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmNCLINCR0J7QqNCa0J4KK9Ch0KLQkNCd0JjQiyDQkdCe0JPQlNCQ0J0KK9Ch0KLQkNCd0JjQiyDQkdCg0JDQndCa0JAKK9Ch0KLQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQkNCd0JjQiyDQlNCQ0J3QlQor0KHQotCQ0J3QmNCLINCU0JDQndCY0KbQkAor0KHQotCQ0J3QmNCLINCU0JDQndCa0JAKK9Ch0KLQkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQoAor0KHQotCQ0J3QmNCLINCU0KDQkNCT0J4KK9Ch0KLQkNCd0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCY0Isg0JPQntCI0JrQngor0KHQotCQ0J3QmNCLINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QmNCLINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JjQiyDQmNCS0JDQnQor0KHQotCQ0J3QmNCLINCI0JDQlNCg0JDQndCa0JAKK9Ch0KLQkNCd0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0Isg0IjQo9Cb0JrQkAor0KHQotCQ0J3QmNCLINCa0KDQmNCh0KLQmNCS0J7QiNCVCivQodCi0JDQndCY0Isg0JvQmNCd0JrQkAor0KHQotCQ0J3QmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Ch0KLQkNCd0JjQiyDQnNCQ0J3QlQor0KHQotCQ0J3QmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCi0JDQndCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCd0JrQngor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQlQor0KHQotCQ0J3QmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0J3QmNCLINCc0JjQm9CY0J3QmtCeCivQodCi0JDQndCY0Isg0JzQmNCb0JjQodCQ0JIKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQntCI0JUKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQntCh0JDQktCQCivQodCi0JDQndCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0KLQkNCd0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QmNCLINCe0KHQotCe0IjQkAor0KHQotCQ0J3QmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QmNCLINCg0JDQlNCVCivQodCi0JDQndCY0Isg0KDQkNCU0JUKK9Ch0KLQkNCd0JjQiyDQoNCQ0JTQmNCo0JAKK9Ch0KLQkNCd0JjQiyDQoNCQ0JTQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JjQiyDQoNCQ0IjQmtCeCivQodCi0JDQndCY0Isg0KHQkNCS0J4KK9Ch0KLQkNCd0JjQiyDQodCY0JzQngor0KHQotCQ0J3QmNCLINCh0JjQndCY0KjQkAor0KHQotCQ0J3QmNCLINCh0J/QkNCh0J7QiNCVCivQodCi0JDQndCY0Isg0KHQoNCC0JDQnQor0KHQotCQ0J3QmNCLINCh0KLQkNCc0JXQndCQCivQodCi0JDQndCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCY0Isg0KPQoNCe0KgKK9Ch0KLQkNCd0JjQiyDQktCV0JvQmNCR0J7QoAor0KHQotCQ0J3QmNCLINCS0JjQmtCi0J7QoAor0KHQotCQ0J3QmNCLINCS0JjQotCe0JzQmNCgCivQodCi0JDQndCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0KLQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JDQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCQ0J3QmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0JbQkNCdINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQndCY0Jog0J7Qm9CT0JAKK9Ch0KLQkNCd0JjQmtCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCa0JjQiyDQnNCY0JvQldCS0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQndCY0JzQmNCg0J7QkiDQkNCd0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCR0J7QoNCY0JLQntCICivQodCi0JDQndCY0JzQmNCg0J7QkiDQkdCg0JDQndCa0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCT0JDQktCg0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCI0JXQm9Ca0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCa0JDQotCY0KbQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0J3QldCU0JXQidCa0J4KK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCg0JDQlNCY0JLQntCICivQodCi0JDQndCY0JzQmNCg0J7QkiDQoNCQ0J3QmtCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQodCb0JDQktCa0J4KK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCX0J7QoNCY0KbQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCa0KDQodCi0J4KK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQnNCe0JzQkCDQlNCgCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0KLQoNCY0KTQo9CdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JLQldCg0J7QndCY0JrQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQgtCe0JrQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQgtCe0KDQgtCVCivQodCi0JDQndCY0KHQkNCS0InQldCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JDQndCY0KHQkNCS0InQldCSINCQ0J3QkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQlNCe0JHQoNCY0JLQntCICivQodCi0JDQndCY0KHQkNCS0InQldCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0InQo9CR0JjQptCQCivQodCi0JDQndCY0KHQkNCS0InQldCSINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0JzQmNCb0JjQptCQCivQodCi0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9Ce0IjQmtCeCivQodCi0JDQndCY0KHQkNCS0InQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQkdCY0InQkNCd0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCR0J7QltCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQptCS0JXQotCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQk9CY0JfQldCb0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQmNCT0IrQkNCi0JjQiNCVCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JUKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCg0KPQltCY0KbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQodCi0JDQktCg0JAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQktCV0InQmtCeCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0KLQkNCd0JjQktCj0Jog0JbQkNCg0JrQngor0KHQotCQ0J3QmNCS0KPQmiDQlNCV0IjQkNCdCivQodCi0JDQndCY0JLQo9CaINCc0JjQoNCa0J4KK9Ch0KLQkNCd0JjQktCj0Jog0JzQm9CQ0JTQldCdCivQodCi0JDQndCY0JLQo9CaINCd0JDQlNCQCivQodCi0JDQndCY0JLQo9CaINCd0JXQlNCV0InQmtCeCivQodCi0JDQndCY0JLQo9CaINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QmNCS0KPQmiDQl9CU0KDQkNCS0JrQngor0KHQotCQ0J3QmNCS0KPQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0g0JzQoAor0KHQotCQ0J3QmNCS0KPQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiCDQlNCgINCS0JXQotCV0KDQmNCd0JUKK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQo9Cg0J7QqAor0KHQotCQ0J3QmtCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCa0JjQiyDQm9CQ0JfQkNCgCivQodCi0JDQndCa0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCa0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0JrQmNCLINCS0JjQm9Ce0JPQntCg0JrQkAor0KHQotCQ0J3QmtCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0JjQnSDQgtCe0KDQgtCVCivQodCi0JDQndCa0JjQnSDQkdCg0JDQndCa0JAKK9Ch0KLQkNCd0JrQmNCdINCI0JDQodCc0JjQndCQCivQodCi0JDQndCa0JjQnSDQnNCY0JvQlQor0KHQotCQ0J3QmtCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0KLQkNCd0JrQmNCdINCc0JjQm9CY0JLQntCICivQodCi0JDQndCa0JjQnSDQotCe0JTQntCgCivQodCi0JDQndCa0J4g0JjQnNCg0JUKK9Ch0KLQkNCd0JrQniDQmNCS0JDQnQor0KHQotCQ0J3QmtCeINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCa0J4g0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J4g0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J4g0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J4g0JLQldCg0JjQptCQCivQodCi0JDQndCa0J7QkiDQltCQ0KDQmtCeCivQodCi0JDQndCa0J7QkiDQltCY0JLQmtCQCivQodCi0JDQndCa0J7QkiDQltCY0JLQmtCeCivQodCi0JDQndCa0J7QkiDQltCY0JLQmtCeCivQodCi0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQodCi0JDQndCa0J7QkiDQkdCe0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCSINCU0JDQoNCY0J3QmtCQCivQodCi0JDQndCa0J7QkiDQlNCQ0KDQmtCeCivQodCi0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QkiDQldCW0JXQkdCV0KIKK9Ch0KLQkNCd0JrQntCSINCY0JLQkNCd0JrQkAor0KHQotCQ0J3QmtCe0JIg0JjQktCQ0J0KK9Ch0KLQkNCd0JrQntCSINCI0JXQm9CV0J3QkAor0KHQotCQ0J3QmtCe0JIg0JrQkNCi0JjQptCQCivQodCi0JDQndCa0J7QkiDQmtCe0JLQmNCd0JAKK9Ch0KLQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQodCi0JDQndCa0J7QkiDQnNCQ0KDQmNCd0JrQngor0KHQotCQ0J3QmtCe0JIg0JzQkNCg0JrQngor0KHQotCQ0J3QmtCe0JIg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCSINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCa0J7QkiDQnNCY0JvQntCoCivQodCi0JDQndCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KHQotCQ0J3QmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQotCQ0J3QmtCe0JIg0J3QldCS0JXQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QmtCe0JIg0J/QkNCI0JAg0JTQoAor0KHQotCQ0J3QmtCe0JIg0J/QkNCS0JvQlQor0KHQotCQ0J3QmtCe0JIg0J/QldCi0JDQoAor0KHQotCQ0J3QmtCe0JIg0J/QldCi0JDQoAor0KHQotCQ0J3QmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ch0KLQkNCd0JrQntCSINCg0JDQodCi0JrQngor0KHQotCQ0J3QmtCe0JIg0KDQo9CW0JjQptCQCivQodCi0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQotCQ0J3QmtCe0JIg0KHQntCk0JjQiNCQCivQodCi0JDQndCa0J7QkiDQodCi0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J7QkiDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCd0JrQntCSINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JIg0KHQktCV0KLQntCX0JDQoAor0KHQotCQ0J3QmtCe0JIg0JLQldCJ0JrQngor0KHQotCQ0J3QmtCe0JIg0JLQldCJ0JrQngor0KHQotCQ0J3QmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JIg0JfQntCg0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQodCi0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQgtCe0KDQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCC0KPQoNCeCivQodCi0JDQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0J3QmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCg0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCS0KDQkNCcCivQodCi0JDQndCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRINCU0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KDQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QoNCQCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQodCi0JDQndCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCY0JLQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0J7QodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JXQktCV0JvQmNCdINCU0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQldCS0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0KTQoNCV0JTQldCg0JjQmgor0KHQotCQ0J3QmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCI0JDQk9Ce0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCI0JXQodCV0J3QmtCQINCU0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCQ0KLQkNCb0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCe0KHQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQndCa0J7QktCY0Isg0InQo9CR0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0IjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCV0JLQldCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCe0JvQk9CQCivQodCi0JDQndCa0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQodCi0JDQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCQ0KjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JDQktCa0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCQ0JLQngor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQodCi0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0KHQoNCC0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KDQkdCe0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQkNCc0JXQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQodCi0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0KHQotCV0JLQngor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0KLQldCg0JXQl9CQCivQodCi0JDQndCa0J7QktCY0Isg0KLQmNCe0KHQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0KLQntCo0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JXQndCV0KDQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JDQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiy3QktCg0JDQndCY0Isg0JzQmNCb0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JfQm9CQ0KLQmNCS0J7QiNCVCivQodCi0JDQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkAor0KHQotCQ0J3QmtCe0JLQodCa0Jgg0JrQntCh0KLQkAor0KHQotCQ0J3QmtCe0JLQodCa0Jgg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0J7QktCh0JrQmCDQktCV0InQkNCdCivQodCi0JDQndCe0IjQp9CY0Isg0ILQntCg0ILQlQor0KHQotCQ0J3QntCI0KfQmNCLINCQ0J3QgtCV0JvQmtCeCivQodCi0JDQndCe0IjQp9CY0Isg0JDQndCa0JjQptCQCivQodCi0JDQndCe0IjQp9CY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QntCI0KfQmNCLINCe0JvQk9CQCivQodCi0JDQndCe0IjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0J3QntCI0KfQmNCLINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QntCI0KfQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QntCI0KfQmNCLINCS0JXQoNCQCivQodCi0JDQndCe0IjQp9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQkiDQltCY0JLQkNCdCivQodCi0JDQndCe0IjQldCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JDQndCe0IjQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQkiDQlNCV0IjQkNCdCivQodCi0JDQndCe0IjQldCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCe0IjQldCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0JPQntCg0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQiNCe0KbQkAor0KHQotCQ0J3QntCI0JXQkiDQm9CQ0JfQkNCgCivQodCi0JDQndCe0IjQldCSINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QntCI0JXQkiDQnNCY0JvQkNCdCivQodCi0JDQndCe0IjQldCSLdCc0J7QodCa0JDQiSDQntCb0JPQkAor0KHQotCQ0J3QntCI0JXQkiDQndCV0JHQntCI0KjQkAor0KHQotCQ0J3QntCI0JXQkiDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0J7QiNCV0JIt0J/QldCi0KDQldCKINCc0JjQoNCI0JDQndCQCivQodCi0JDQndCe0IjQldCSINCh0JDQktCQCivQodCi0JDQndCe0IjQldCSINCh0KLQkNCd0JrQkAor0KHQotCQ0J3QntCI0JXQkiDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0KLQmNCl0J7QnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JIg0JLQldCg0JjQptCQCivQodCi0JDQndCe0IjQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCW0JDQoNCa0J4KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCW0JjQktCQ0J3QmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0ILQo9Cg0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JDQndCe0IjQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JDQndCe0IjQldCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQmtCQ0IvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JrQntCh0KLQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0InQo9CR0JjQndCa0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLLdCc0JDQndCU0JjQiyDQnNCY0JvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JXQotCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JDQotCQ0KjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JXQnNCQ0IrQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J3QldCh0KLQntCgCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QntCI0JXQktCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0JDQndCe0IjQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0KDQkNCU0J4KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCi0JDQndCe0IjQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Ist0JLQkNCg0JPQkCDQkNCd0JAg0JTQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQldCJ0JrQngor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCi0JDQndCe0IjQldCS0JjQiyDQktCj0JoKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Cb0JDQotCa0J4KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QntCI0JrQntCS0JjQiyDQoNCQ0JTQlQor0KHQotCQ0J3QntCI0JrQntCS0JjQiyDQktCb0JDQlNCQCivQodCi0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQotCQ0KAKK9Ch0KLQkNCd0J7QiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCe0IjQntCh0JrQmCDQlNCQ0J3QmNCm0JAKK9Ch0KLQkNCd0J7QiNCe0KHQmtCYINCX0JvQkNCi0JAKK9Ch0KLQkNCd0J7QiNCh0JrQmCDQkdCb0JDQk9Ce0IjQlQor0KHQotCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Ch0KLQkNCd0KLQlSDQiNCe0KHQmNCfCivQodCi0JDQndCi0JjQiyDQkdCQ0KDQotCj0JsKK9Ch0KLQkNCd0KLQmNCLINCR0JXQoNCi0JDQm9CQ0J0KK9Ch0KLQkNCd0KLQmNCLINCa0JDQotCQ0JvQmNCdCivQodCi0JDQndCi0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQodCi0JDQndCi0JjQiyDQktCV0KDQntCd0JAKK9Ch0KLQkNCd0KPQqNCY0Isg0JzQmNCI0JDQogor0KHQotCQ0J3Qo9CbINCf0JXQotCQ0KAKK9Ch0KLQkNCd0KPQm9Ce0JIg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCQ0J3Qo9Cb0J7QkiDQotCe0JTQntCgCivQodCi0JDQndCj0JvQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQoAor0KHQotCQ0J3Qo9Cb0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCgCivQodCi0JDQn9CQ0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCf0JDQoNCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQn9CQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0KHQotCQ0J/QkNCg0KHQmtCYINCf0JXQotCQ0KAKK9Ch0KLQkNCf0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Ch0KLQkNCg0KfQldCSINCQ0J3QgtCV0JvQmtCQCivQodCi0JDQoNCn0JXQkiDQkdCg0JDQndCa0JAKK9Ch0KLQkNCg0KfQldCSINCU0JXQodCQ0J3QmtCQCivQodCi0JDQoNCn0JXQkiDQiNCV0JvQkAor0KHQotCQ0KDQp9CV0JIg0JrQkNCi0JjQptCQCivQodCi0JDQoNCn0JXQkiDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0KDQp9CV0JIg0JzQmNCb0JXQndCa0J4KK9Ch0KLQkNCg0KfQldCSINCc0JjQm9Ce0KgKK9Ch0KLQkNCg0KfQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCg0KfQldCSINCh0KLQntCI0JDQndCa0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkNCd0JjQptCQCivQodCi0JDQoNCn0JXQktCY0Isg0JDQndCa0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkdCe0KjQmtCeCivQodCi0JDQoNCn0JXQktCY0Isg0JHQntCT0JTQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0KDQp9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0KDQp9CV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQodCi0JDQoNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQpNCg0JDQitCQCivQodCi0JDQoNCn0JXQktCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQidCj0JHQmNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQkNCg0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQntCb0JPQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCg0KfQldCS0JjQiyDQoNCj0JTQntCb0KQKK9Ch0KLQkNCg0KfQldCS0JjQiyDQodCi0JDQnNCV0J3QmtCQCivQodCi0JDQoNCn0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQodCi0JDQoNCn0JXQktCY0Isg0KHQotCY0J/Qngor0KHQotCQ0KDQp9CV0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KHQotCQ0KDQkNCn0JXQmiDQltCV0InQmtCeCivQodCi0JDQoNCQ0KfQldCaINCI0J7QltCV0KQKK9Ch0KLQkNCg0JDQp9CV0Jog0IjQntCS0JDQnQor0KHQotCQ0KDQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCg0Jgg0JTQkNCd0JjQldCbCivQodCi0JDQoNCYINCb0JjQktCY0IjQkAor0KHQotCQ0KDQmNCLINCY0JLQkNCdCivQodCi0JDQoNCe0JLQmNCLINCR0J7QoNCY0JLQntCIINCU0KAKK9Ch0KLQkNCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQoNCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQodCi0JDQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0JDQoNCe0JLQmNCLINCg0JDQodCi0JjQodCb0JDQkgor0KHQotCQ0KDQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KHQotCQ0KDQntCS0JvQkNClINCc0JvQkNCU0JXQnQor0KHQotCQ0JLQldCd0J7QkiDQgtCe0KDQgtCVCivQodCi0JDQktCI0JXQmyDQnNCb0JDQlNCV0J0KK9Ch0KLQkNCS0KDQldCS0KHQmtCYINCR0J7Qk9CU0JDQnQor0KHQotCQ0JLQoNCY0Isg0JjQm9Ce0J3QmtCQCivQodCi0JDQktCg0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCQ0JLQoNCe0JIg0JTQkNCd0JjQptCQCivQodCi0JXQiyDQnNCY0KLQkNCgCivQodCi0JXQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JXQpNCQ0J0g0JjQktCQ0J0KK9Ch0KLQldCk0JDQnSDQidCj0JHQntCc0JjQoNCQCivQodCi0JXQpNCQ0J3QmNCU0JXQoSDQiNCj0JvQmNCI0JUKK9Ch0KLQldCk0JDQndCY0JTQldChINCJ0KPQlNCV0JLQmNCiCivQodCi0JXQpNCQ0J3QmNCU0JjQoSDQmtCY0KDQmNCQ0JrQmAor0KHQotCV0KTQkNCK0KPQmiDQndCY0JrQntCb0JAKK9Ch0KLQldCk0JDQndCe0JIg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQldCk0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9Ch0KLQldCk0JDQndCe0JIg0J3QkNCU0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JjQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JbQmNCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCC0KPQoNCY0KbQkCDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkNCd0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JXQltCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JXQoNCW0JjQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiy3Qk9CV0KDQmNCLINCX0J7QoNCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQiNCe0KHQmNCkCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCX0JXQpNCY0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JrQkNCg0JDQndCk0JjQm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCb0JXQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQm9Cj0KbQmNCI0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9CV0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCf0JDQndCi0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCf0JDQo9Cb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCQ0IrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAg0JTQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCc0JjQidCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCc0JjQidCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCi0JDQndCY0KjQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCi0IjQldCf0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KPQl9CQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Ist0KLQmNCb0JjQiyDQlNCY0JLQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQotCe0JTQntCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JXQoNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCI0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JXQpNCQ0J3QntCS0KHQmtCQINCX0J7QoNCa0JAKK9Ch0KLQldCk0JDQndCe0JLQodCa0Jgg0JvQldCS0JrQngor0KHQotCV0KTQkNCd0J7QktCh0JrQmCDQnNCV0KLQntCU0JjQiNCVCivQodCi0JXQpNCQ0J3QntCS0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQpNCQ0J3QntCS0KHQmtCYINCh0KLQkNCc0JXQnQor0KHQotCV0JPQmNCLINCU0JXQiNCQ0J0KK9Ch0KLQldCT0JjQiyDQmNCS0JDQnQor0KHQotCV0JPQmNCLINCd0JjQmtCe0JvQkAor0KHQotCV0JPQitCQ0JjQiyDQntCb0JPQkAor0KHQotCV0JPQitCQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQldCI0JjQiyDQkNCg0JDQndCa0JAKK9Ch0KLQldCI0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQldCI0JjQiyDQmtCe0KHQotCQCivQodCi0JXQiNCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0KLQldCI0JjQiyDQoNCj0JbQkAor0KHQotCV0IjQmNCdINCC0J7QoNCC0JUKK9Ch0KLQldCI0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JXQiNCY0J0g0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQldCI0JjQnSDQiNCV0JvQldCd0JAKK9Ch0KLQldCI0JjQnSDQiNCe0JLQkNCd0JrQkAor0KHQotCV0IjQmNCdINCJ0KPQkdCY0KbQkAor0KHQotCV0IjQmNCdINCg0KPQltCY0KbQkAor0KHQotCV0IjQmNCdINCh0JDQqNCQCivQodCi0JXQiNCY0J0g0KHQoNCC0JDQnQor0KHQotCV0JvQkCDQktCb0JDQlNCY0JzQmNCg0JAKK9Ch0KLQldCJ0JAg0J3QntCS0JDQmgor0KHQotCV0InQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0KLQldCJ0JjQiyDQnNCY0JvQo9CdCivQodCi0JXQm9Ca0JjQiyDQgtCj0KDQmNCm0JAKK9Ch0KLQldCb0JrQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQm9Ca0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQotCV0JvQmtCY0Isg0KDQkNCU0JjQptCQCivQodCi0JXQm9Ca0JjQiyDQoNCV0InQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQldCb0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQldCb0JrQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9Ch0KLQldCf0JDQndCn0JXQkiDQkNCd0JjQptCQCivQodCi0JXQn9CQ0J3Qp9CV0JIg0KHQotCV0JLQkNCdCivQodCi0JXQn9CQ0J3Qp9CV0JIg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCi0JXQn9CQ0J3Qp9CV0JIg0JfQntCg0JDQnQor0KHQotCV0J/QkNCd0KfQldCSINCX0J7QoNCQCivQodCi0JXQn9CQ0J3Qp9CV0JIg0JfQntCg0JjQptCQCivQodCi0JXQn9CQ0J3Qp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCV0J/QkNCd0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCV0J/QkNCd0KfQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQldCf0JDQndCn0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ch0KLQldCf0JDQndCY0Isg0JzQmNCb0JjQodCQ0JIKK9Ch0KLQldCf0JDQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0KLQldCf0JDQndCe0JIg0ILQntCg0ILQlQor0KHQotCV0J/QkNCd0J7QkiDQgtCe0KDQgtCVCivQodCi0JXQn9CQ0J3QntCSINCC0J7QoNCC0JUKK9Ch0KLQldCf0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQldCf0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ch0KLQldCf0JDQndCe0JIg0JDQndCC0JXQm9Ca0JAKK9Ch0KLQldCf0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JXQn9CQ0J3QntCSINCR0KDQkNCd0JrQngor0KHQotCV0J/QkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KLQldCf0JDQndCe0JIg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQldCf0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCf0JDQndCe0JIg0JTQo9Co0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQlNCj0KjQkNCdCivQodCi0JXQn9CQ0J3QntCSINCV0JzQmNCbCivQodCi0JXQn9CQ0J3QntCSINCI0J7Qm9CVCivQodCi0JXQn9CQ0J3QntCSINCa0JDQotCY0KbQkAor0KHQotCV0J/QkNCd0J7QkiDQidCY0InQkNCd0JAKK9Ch0KLQldCf0JDQndCe0JIg0InQo9CR0J7QnNCY0KAg0JTQoAor0KHQotCV0J/QkNCd0J7QkiDQidCj0JHQntCc0JjQoAor0KHQotCV0J/QkNCd0J7QkiDQnNCQ0JrQodCQCivQodCi0JXQn9CQ0J3QntCSINCc0JDQoNCQCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CQ0J3QmtCQCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CQ0J3QmtCQCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQldCS0JAKK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0J3QmNCa0J7Qm9CQCivQodCi0JXQn9CQ0J3QntCSINCf0JDQiNCQCivQodCi0JXQn9CQ0J3QntCSINCf0JDQiNCQCivQodCi0JXQn9CQ0J3QntCSINCf0JXQotCQ0KAg0JTQoAor0KHQotCV0J/QkNCd0J7QkiDQn9CV0KLQkNCgCivQodCi0JXQn9CQ0J3QntCSINCf0JjQoNCe0KjQmtCQCivQodCi0JXQn9CQ0J3QntCSINCg0JDQlNCY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQodCi0JXQn9CQ0J3QntCSINCh0JDQktCQCivQodCi0JXQn9CQ0J3QntCSINCh0JDQktCQCivQodCi0JXQn9CQ0J3QntCSINCh0JXQoNCT0JjQiNCVCivQodCi0JXQn9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQodCi0JXQn9CQ0J3QntCSINCS0JDQodCY0JvQmNCI0JUKK9Ch0KLQldCf0JDQndCe0JIg0JLQldCb0JjQnNCY0KAKK9Ch0KLQldCf0JDQndCe0JIg0JLQldCh0J3QkAor0KHQotCV0J/QkNCd0J7QkiDQktCY0JTQkAor0KHQotCV0J/QkNCd0J7QkiDQktCY0JTQntCh0JDQktCQCivQodCi0JXQn9CQ0J3QntCSINCS0J7QiNCd0JAKK9Ch0KLQldCf0JDQndCe0JIg0JfQlNCg0JDQktCa0J4KK9Ch0KLQldCf0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCi0JXQn9CY0Isg0IjQntCh0JjQnwor0KHQotCV0J/QmNCLINCc0JDQoNCY0IjQkAor0KHQotCV0KDQmNCeINCC0J7QoNCC0JUKK9Ch0KLQldCg0JjQniDQkdCg0JDQndCa0J4g0JTQoAor0KHQotCV0KDQn9CY0J0g0JfQktCe0J3QmNCc0JjQoAor0KHQotCV0JLQp9CY0Isg0KHQkNCS0JDQotCY0IjQlQor0KHQotCV0JLQkNCd0KfQldCSINCQ0J3QmtCY0KbQkAor0KHQotCV0JLQkNCd0KfQldCSINCc0JjQm9CY0KbQkAor0KHQotCV0JLQkNCd0KfQldCSINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQktCQ0J3Qp9CV0JIg0J7Qm9CT0JAKK9Ch0KLQldCS0JDQndCn0JXQktCY0Isg0InQmNCJ0JDQndCQCivQodCi0JXQktCQ0J3QlNCY0Isg0ILQo9Cg0J4KK9Ch0KLQldCS0JDQndCU0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQldCS0JDQndCU0JjQiyDQoNCQ0JTQlQor0KHQotCV0JLQkNCd0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQodCi0JXQktCQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KHQotCV0JLQkNCd0JjQiyDQmNCS0JDQnQor0KHQotCV0JLQkNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCV0JLQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQktCQ0J3QmNCLINCS0KPQmtCe0JzQkNCdCivQodCi0JXQktCQ0J3QntCSINCW0JjQktCQ0J0KK9Ch0KLQldCS0JDQndCe0JIg0JTQoNCQ0JPQkNCd0JAKK9Ch0KLQldCS0JDQndCe0JIg0JXQnNCY0JvQmtCQCivQodCi0JXQktCQ0J3QntCSINCT0JDQktCg0JAKK9Ch0KLQldCS0JDQndCe0JIg0IjQldCb0JXQndCQCivQodCi0JXQktCQ0J3QntCSINCJ0JjQidCQ0J3QkAor0KHQotCV0JLQkNCd0J7QkiDQnNCQ0JTQm9CV0J0KK9Ch0KLQldCS0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQldCS0JDQndCe0JIg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQldCS0JDQndCe0JIg0JzQmNCb0KPQotCY0J0KK9Ch0KLQldCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQodCi0JXQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0KHQotCV0JLQkNCd0J7QkiDQndCQ0KLQkNCb0JjQiNCQCivQodCi0JXQktCQ0J3QntCSINCh0KLQkNCd0JAKK9Ch0KLQldCS0JDQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0KHQotCV0JLQkNCd0J7QkiDQktCV0KHQldCb0JjQnQor0KHQotCV0JLQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQktCQ0J3QntCSINCX0JvQkNCi0J7QiNCVCivQodCi0JXQktCQ0J3QntCS0JjQiyDQltCY0JLQkNCU0JjQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCQ0JTQkNCcCivQodCi0JXQktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0KHQotCV0JLQkNCd0J7QktCY0Isg0JHQntCg0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQiNCQ0KDQntCh0JvQkNCSCivQodCi0JXQktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0InQo9CRCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J3QmtCQCivQodCi0JXQktCQ0J3QntCS0JjQiy3QndCV0IvQkNCaINCh0JvQntCR0J7QlNCQ0J3QmtCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCV0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7QodCQ0JLQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0KHQotCV0JLQkNCd0J7QktCY0Isg0KDQkNCd0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQotCa0J4KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0KPQltCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0JLQmNCI0JXQotCb0JDQndCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JXQktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JXQktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQl9Cb0JDQotCa0J4g0JTQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQodCi0JXQktCQ0J3QntCS0KHQmtCYINCT0J7QqNCVCivQodCi0JXQktCQ0J3QntCS0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0KLQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0KLQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCi0JXQktCY0Isg0KHQoNCR0JAKK9Ch0KLQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQldCS0JjQnSDQkdCe0JPQlNCQ0J0KK9Ch0KLQldCS0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JXQktCY0J0g0J3QkNCU0JAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JXQktCY0J0g0KDQkNCU0J7QiNCb0JAKK9Ch0KLQldCS0J7QktCY0Isg0JDQndCa0JAKK9Ch0KLQldCS0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQldCS0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JXQktCe0JLQmNCLINCY0JLQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCi0JXQktCe0JLQmNCLLdCb0KPQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQldCS0J7QktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KHQotCV0JLQntCS0JjQiyDQktCe0IjQmNCdCivQodCi0JjQiNCQ0KfQmNCLINCR0KDQkNCd0JrQngor0KHQotCY0IjQkNCn0JjQiyDQn9CQ0JLQm9CVCivQodCi0JjQiNCQ0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQmNCI0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCY0IjQldCf0J7QktCY0Isg0JDQm9CV0JrQodCQCivQodCi0JjQiNCV0J/QntCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQodCi0JjQiNCe0JLQmNCLINCY0JvQmNCI0JAKK9Ch0KLQmNCI0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0KLQmNCI0J7QktCY0Isg0JzQkNCg0JAKK9Ch0KLQmNCI0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCY0JrQmNCLINCR0JjQidCQ0J3QkAor0KHQotCY0JrQmNCLINCI0J7QktCQ0J0KK9Ch0KLQmNCa0JjQiyDQnNCe0JzQmNCg0JrQkAor0KHQotCY0JrQntCS0JjQiyDQoNCe0KHQkAor0KHQotCY0JvQmNCd0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9Ch0KLQmNCb0JjQndCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JjQn9CQ0J3Qp9CY0Isg0KHQotCY0J/QkNCdCivQodCi0JjQn9CQ0J3QntCS0JjQiyDQkdCI0JXQm9CY0KbQkAor0KHQotCY0J/QkNCd0J7QktCY0Isg0JPQntCI0JrQngor0KHQotCY0J/QldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQmNCf0JjQiyDQkNCd0JTQoNCY0IjQkAor0KHQotCY0J/QmNCLINCQ0J3QotCVCivQodCi0JjQn9CY0Isg0JHQo9CU0JUKK9Ch0KLQmNCf0JjQiyDQk9CY0JfQldCb0JAKK9Ch0KLQmNCf0JjQiyDQiNCQ0KjQkAor0KHQotCY0J/QmNCLINCd0JDQlNCQCivQodCi0JjQn9CY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0KLQmNCf0JjQiyDQodCe0IrQkAor0KHQotCY0J/QmNCLINCS0JXQidCa0J4KK9Ch0KLQmNCh0JrQkNCb0J4g0KLQmNCl0J7QnNCY0KAKK9Ch0KLQiNCV0InQkCDQlNCQ0J3QmNCm0JAKK9Ch0KLQiNCV0J/Qp9CV0JLQmNCLINCQ0J3QmNCm0JAKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0JHQntCW0J4KK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQptCS0JXQiNCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCI0JDQodCd0JAKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCI0J7QktCY0KbQkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQodCi0JDQndCa0JAKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCI0JXQn9CY0Isg0IjQntCh0JjQnwor0KHQotCI0JXQn9CY0Isg0JzQmNCI0J4KK9Ch0KLQntCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QqNCY0Isg0JTQo9Co0JDQnQor0KHQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCo0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQntCo0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCo0JjQiyDQndCV0JTQldCJ0JrQngor0KHQotCe0KjQmNCLINCg0JDQlNCY0JLQntCICivQodCi0J7QqNCY0Isg0KHQm9CQ0JLQmNCo0JAKK9Ch0KLQntCo0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQodCi0J7QqNCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QqNCY0Isg0KLQkNCK0JAKK9Ch0KLQntCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0KjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQntCo0JjQiyDQl9Ce0KDQkNCdCivQodCi0J7QltCY0J3QmNCLINCU0KDQkNCT0JjQitCQCivQodCi0J7QldCh0JrQmCDQiNCV0JLQotCY0JwKK9Ch0KLQntCT0J7QkiDQkNCd0JDQotCe0JvQmNCIINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0JjQidCa0J7QktCY0Isg0JbQmNCa0JAKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KHQotCe0JjQidCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQodCi0J7QmNCJ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QmNCJ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCe0JjQidCa0J7QktCY0Isg0J3QldCd0JDQlAor0KHQotCe0JjQidCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QmNCb0JrQntCS0KHQmtCYINCR0J7QoNCY0KEKK9Ch0KLQntCY0KHQkNCS0InQldCS0JjQiyDQgtCj0IjQkAor0KHQotCe0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQi9CeCivQodCi0J7QiNCn0JXQkiDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQodCi0J7QiNCn0JXQktCY0Isg0KHQotCQ0J3QntCI0JrQngor0KHQotCe0IjQp9CV0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JAKK9Ch0KLQntCI0KfQldCS0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQntCI0KfQldCS0KHQmtCYINCi0J7QndCVCivQodCi0J7QiNCn0JjQiyDQgtCe0KDQgtCVCivQodCi0J7QiNCn0JjQiyDQgtCj0KDQngor0KHQotCe0IjQp9CY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0KLQntCI0KfQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0KfQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQp9CY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQp9CY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQntCI0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0KfQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQp9CY0Isg0KHQoNCV0IvQmtCeCivQodCi0J7QiNCn0JjQiyDQodCg0JXQotCa0J4KK9Ch0KLQntCI0KfQmNCd0J7QktCY0Isg0JzQkNCg0JrQngor0KHQotCe0IjQp9CY0J3QntCS0JjQiyDQodCY0JzQngor0KHQotCe0IjQqNCY0Isg0JbQmNCS0JDQnQor0KHQotCe0IjQqNCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQqNCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQqNCY0Isg0JHQntCI0JrQkAor0KHQotCe0IjQqNCY0Isg0JTQkNCd0KfQmNCa0JAKK9Ch0KLQntCI0KjQmNCLINCU0KDQkNCT0JgKK9Ch0KLQntCI0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCi0J7QiNCo0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQntCI0KjQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0KjQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQqNCY0Isg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0KjQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0J7QiNCo0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JrQkAor0KHQotCe0IjQqNCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQqNCY0Isg0JzQmNCg0JAKK9Ch0KLQntCI0KjQmNCLINCd0JDQlNCQCivQodCi0J7QiNCo0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQqNCY0Isg0J3QldCT0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCLINCd0JXQndCQ0JQKK9Ch0KLQntCI0KjQmNCLINCd0JXQktCV0J3QmtCQCivQodCi0J7QiNCo0JjQiyDQndCV0JLQldCd0JrQkAor0KHQotCe0IjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCo0JjQiyDQntCb0JPQkAor0KHQotCe0IjQqNCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQqNCY0Isg0J/QoNCe0JrQntCf0JjQiNCVCivQodCi0J7QiNCo0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQodCi0J7QiNCo0JjQiyDQodCQ0JLQkAor0KHQotCe0IjQqNCY0Isg0KHQkNCS0JAKK9Ch0KLQntCI0KjQmNCLINCh0JDQktCQCivQodCi0J7QiNCo0JjQiyDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQqNCY0Isg0KHQnNCY0InQkAor0KHQotCe0IjQqNCY0Isg0KHQntCk0JjQiNCQCivQodCi0J7QiNCo0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQodCi0J7QiNCo0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCe0IjQqNCY0Isg0KHQotCV0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCe0IjQqNCY0Isg0JLQldCg0JAKK9Ch0KLQntCI0KjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ch0KLQntCI0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0KjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQntCI0KjQmNCLINCS0KPQiNCQ0JTQmNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0IjQqNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0KLQntCI0KjQmNCdINCW0JDQoNCa0J4KK9Ch0KLQntCI0KjQmNCdINCC0J7QoNCC0JUKK9Ch0KLQntCI0KjQmNCdINCC0KPQoNCC0JAKK9Ch0KLQntCI0KjQmNCdINCC0KPQoNCC0JjQndCa0JAKK9Ch0KLQntCI0KjQmNCdINCR0J7Qk9Ce0KHQm9Ce0JIKK9Ch0KLQntCI0KjQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCe0IjQqNCY0J0g0JTQntCR0KDQmNCS0J7QiAor0KHQotCe0IjQqNCY0J0g0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCo0JjQnSDQlNCj0KjQkNCdCivQodCi0J7QiNCo0JjQnSDQldCc0JjQmwor0KHQotCe0IjQqNCY0J0g0JXQodCi0JXQoAor0KHQotCe0IjQqNCY0J0g0JPQkNCS0KDQkAor0KHQotCe0IjQqNCY0J0g0JPQoNCe0JfQlNCQ0J3QkAor0KHQotCe0IjQqNCY0J0g0IjQntCS0JDQnQor0KHQotCe0IjQqNCY0J0g0IjQntCS0JDQnQor0KHQotCe0IjQqNCY0J0g0JvQkNCX0JDQoAor0KHQotCe0IjQqNCY0J0g0JzQmNCb0JDQndCa0JAKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KjQmNCdINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KjQmNCdINCc0JjQm9CY0KbQkAor0KHQotCe0IjQqNCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCo0JjQnSDQndCY0JrQntCb0JAKK9Ch0KLQntCI0KjQmNCdINCe0JvQk9CQCivQodCi0J7QiNCo0JjQnSDQoNCQ0JTQkAor0KHQotCe0IjQqNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KHQotCe0IjQqNCY0J0g0KHQkNCS0JAKK9Ch0KLQntCI0KjQmNCdINCh0JDQktCQCivQodCi0J7QiNCo0JjQnSDQodCY0J3QmNCo0JAKK9Ch0KLQntCI0KjQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0KjQmNCdINCi0J7QlNCe0KAKK9Ch0KLQntCI0KjQmNCdINCS0JDQodCQCivQodCi0J7QiNCo0JjQnSDQktCV0KDQkAor0KHQotCe0IjQqNCY0J0g0JfQm9CQ0KLQkAor0KHQotCe0IjQkCDQidCY0InQkNCd0JAKK9Ch0KLQntCI0JAg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCQINCc0JjQm9CQ0J3QkAor0KHQotCe0IjQkCDQodCb0JDQgtCQ0J3QkAor0KHQotCe0IjQkCDQodCb0J7QkdCe0JTQkNCdINCU0KAg0JvQldCa0JDQoAor0KHQotCe0IjQkCDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCQ0KfQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCe0IjQkNCn0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0KfQmNCLINCd0JXQndCQ0JQKK9Ch0KLQntCI0JDQp9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCi0J7QiNCQ0JTQmNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAg0JvQldCa0JDQoAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQn9Cj0J3QmNCo0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JLQm9CQ0JTQldCi0JAKK9Ch0KLQntCI0JDQmiDQl9Ce0KDQmNCm0JAKK9Ch0KLQntCI0JDQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQntCI0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCI0JDQmtCe0JIg0KHQoNCR0J7QodCb0JDQkgor0KHQotCe0IjQkNCa0J7QkiDQodCg0JHQntCh0JvQkNCSCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQgtCj0JrQkNCdCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQgtCj0KDQngor0KHQotCe0IjQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCU0JjQktCd0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0IjQldCb0JrQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JrQntCh0KLQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQkNCg0JPQmNCi0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JjQm9CQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQlQor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCQ0JLQkNCdCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0JzQmNCJ0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQotCV0JLQngor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0JfQntCg0JAKK9Ch0KLQntCI0JDQndCn0JXQkiDQk9Ce0KDQlNCQ0J3QkAor0KHQotCe0IjQkNCd0KfQldCSINCY0JLQkNCdCivQodCi0J7QiNCQ0J3Qp9CV0JIg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCn0JXQkiDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQkNCd0KfQldCSINCS0JDQodCQCivQodCi0J7QiNCQ0J3Qp9CY0Isg0JLQm9CQ0JTQkAor0KHQotCe0IjQkNCd0JDQpiDQkdCg0JDQndCa0J4KK9Ch0KLQntCI0JDQndCQ0KYg0JzQmNCb0JUKK9Ch0KLQntCI0JDQndCQ0KYg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCQ0J3QmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Ch0KLQntCI0JDQndCe0KHQmtCYINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JDQndCe0KHQmtCYINCT0JDQktCg0JjQmwor0KHQotCe0IjQkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KLQntCI0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCSINCY0JLQkNCdCivQodCi0J7QiNCQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCQ0J3QntCSINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCQ0J3QntCSINCc0JvQkNCU0JXQnSDQlNCgCivQodCi0J7QiNCQ0J3QntCSINCd0JDQlNCQCivQodCi0J7QiNCQ0J3QntCSINCd0JDQlNCQCivQodCi0J7QiNCQ0J3QntCSINCe0JvQk9CQCivQodCi0J7QiNCQ0J3QntCSINCg0JDQlNCY0JLQntCI0JUKK9Ch0KLQntCI0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JIg0KHQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JIg0KHQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JIg0KHQldCd0JrQkAor0KHQotCe0IjQkNCd0J7QkiDQodCi0JDQndCa0J4KK9Ch0KLQntCI0JDQndCe0JIg0KHQotCV0JLQkNCdCivQodCi0J7QiNCQ0J3QntCSINCS0JXQoNCQCivQodCi0J7QiNCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JIg0JLQo9Ca0JjQptCQCivQodCi0J7QiNCQ0J3QntCSINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0KPQoNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCQ0InQntCo0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Ist0JHQkNCb0JjQndCiINCR0J7QltCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCR0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCm0JLQmNCI0JXQotCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmtCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkCDQlNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KPQqNCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCT0JDQktCg0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQiNCQ0JrQntCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Ist0IjQldCk0KLQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQo9Cb0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JrQoNCh0KLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JvQldCe0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQkNCg0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0JoKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CV0KLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JDQlNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCQ0KHQotCQ0KEKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCY0JrQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J/QoNCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JDQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KHQotCe0IjQkNCd0J7QktCY0Ist0KHQmNCc0JjQiyDQktCV0KHQndCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0IjQmtCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCg0ILQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQntCb0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAg0JTQoCDQmNCd0JMKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSINCc0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JDQodCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQoNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0g0JTQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JfQntCg0JrQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCR0JjQidCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQkdCg0JDQndCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCU0KDQkNCT0JDQnSDQlNCY0J/QmyDQntCV0KYKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0IjQntCg0JTQkNCdCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCJ0KPQkdCY0KjQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0J/QkNCS0JvQlQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQn9CQ0JLQm9CVCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCh0JDQndCVCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCh0JvQkNCS0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCi0J7QnNCeCivQodCi0J7QiNCV0JIg0KHQotCe0JjQp9Ca0J4KK9Ch0KLQntCI0JjQp9CY0Isg0JTQldCh0JDQndCa0JAKK9Ch0KLQntCI0JjQp9CY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQodCi0J7QiNCY0KfQmNCLINCI0JDQodCc0JjQndCQCivQodCi0J7QiNCY0KfQmNCLINCI0JDQodCc0JjQndCQCivQodCi0J7QiNCY0KfQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQmNCn0JjQiyDQoNCe0KHQkAor0KHQotCe0IjQmNCn0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JjQp9CY0Isg0KLQntCU0J7QoNCQCivQodCi0J7QiNCY0KjQmNCLINCC0KPQoNCY0KbQkCDQlNCgCivQodCi0J7QiNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KHQotCe0IjQmNCLLdCQ0J/QmNCLINCh0JvQkNCS0JrQkAor0KHQotCe0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQodCi0J7QiNCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQntCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCe0IjQmNCLINCR0KDQkNCd0JrQkAor0KHQotCe0IjQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ch0KLQntCI0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQntCI0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCY0Isg0JPQkNCS0KDQkAor0KHQotCe0IjQmNCLINCT0J7QiNCa0J4KK9Ch0KLQntCI0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCi0J7QiNCY0Isg0JjQqNCi0JLQkNCdCivQodCi0J7QiNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQotCe0IjQmNCLINCa0JDQotCY0KbQkAor0KHQotCe0IjQmNCLINCJ0KPQkdCY0J3QmtCQCivQodCi0J7QiNCY0Isg0JzQkNCg0JAKK9Ch0KLQntCI0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQotCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JjQiyDQnNCY0JvQldCd0JAKK9Ch0KLQntCI0JjQiyDQnNCY0JvQlQor0KHQotCe0IjQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Ch0KLQntCI0JjQiyDQnNCY0J7QnNCY0KAKK9Ch0KLQntCI0JjQiyDQnNCY0KDQmtCeCivQodCi0J7QiNCY0Isg0JzQm9CQ0JTQldCdINCU0KAg0JvQldCa0JDQoAor0KHQotCe0IjQmNCLINCd0JXQlNCV0InQmtCeCivQodCi0J7QiNCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCY0Isg0KHQmNCd0JjQqNCQINCU0KAKK9Ch0KLQntCI0JjQiyDQodCb0JDQktCa0JAKK9Ch0KLQntCI0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCi0J7QiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCe0IjQmNCLINCi0J7QlNCe0KAKK9Ch0KLQntCI0JjQiyDQktCQ0KHQkAor0KHQotCe0IjQmNCLINCS0KPQp9Ca0J4KK9Ch0KLQntCI0JjQiyDQktCj0JrQkNCo0JjQnQor0KHQotCe0IjQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JjQpiDQiNCe0J3QldCbCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAg0JTQmNCf0Jsg0J7QldCmCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCU0JDQnNCY0KAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0JTQkNCg0JrQkAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQk9Ce0KDQkNCdINCU0KAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0JLQmNCa0KLQntCgCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCc0JjQm9CV0KLQmNCI0JUKK9Ch0KLQntCI0JjQm9Ca0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JjQm9Ca0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Ch0KLQntCI0JjQm9Ce0JIg0KDQkNCU0J7QodCb0JDQkgor0KHQotCe0IjQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmNCdINCn0JXQlNCe0JzQmNCgCivQodCi0J7QiNCY0J0g0JzQmNCb0JjQktCe0Igg0JTQoCDQn9Cg0J7QpAor0KHQotCe0IjQmNCdINCc0JjQm9CY0JLQntCICivQodCi0J7QiNCY0J3QntCSINCW0JjQktCa0J4KK9Ch0KLQntCI0JjQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCY0J3QntCSINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JjQndCe0JIg0IjQntCS0JDQnQor0KHQotCe0IjQmNCd0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQodCi0J7QiNCY0J3QntCSINCa0JDQotCY0KbQkAor0KHQotCe0IjQmNCd0J7QkiDQidCj0JHQmNCm0JAKK9Ch0KLQntCI0JjQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Ch0KLQntCI0JjQndCe0JIg0JfQntCg0JjQptCQCivQodCi0J7QiNCY0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0J7QiNCY0J3QntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQlQor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JLQldCJ0JrQngor0KHQotCe0IjQmtCe0JIg0JbQkNCg0JrQngor0KHQotCe0IjQmtCe0JIg0JbQmNCS0J7QoNCQ0JQKK9Ch0KLQntCI0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCa0J7QkiDQkdCe0JPQlNCQ0J0KK9Ch0KLQntCI0JrQntCSINCR0J7QoNCY0JLQntCICivQodCi0J7QiNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCe0IjQmtCe0JIg0JTQoNCQ0JPQmNCd0JAKK9Ch0KLQntCI0JrQntCSINCY0JLQkNCdCivQodCi0J7QiNCa0J7QkiDQiNCV0JvQmNCm0JAKK9Ch0KLQntCI0JrQntCSINCI0JXQm9Ca0JAKK9Ch0KLQntCI0JrQntCSINCI0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCSINCI0KPQm9Ca0JAKK9Ch0KLQntCI0JrQntCSINCa0JDQotCY0KbQkAor0KHQotCe0IjQmtCe0JIg0InQo9CR0JjQptCQCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQldCd0JAKK9Ch0KLQntCI0JrQntCSINCc0JjQm9CV0JLQmtCQCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQlQor0KHQotCe0IjQmtCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JrQntCSINCc0JjQntCc0JjQoAor0KHQotCe0IjQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQotCe0IjQmtCe0JIg0JzQm9CQ0JTQldCdCivQodCi0J7QiNCa0J7QkiDQndCV0JPQntCS0JDQnQor0KHQotCe0IjQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0KLQntCI0JrQntCSINCg0JDQlNCY0JLQntCICivQodCi0J7QiNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCa0J7QkiDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JrQntCSINCh0KLQntCI0JDQnQor0KHQotCe0IjQmtCe0JIg0KHQotCe0IjQkNCdCivQodCi0J7QiNCa0J7QkiDQotCe0JTQntCgCivQodCi0J7QiNCa0J7QkiDQktCV0KDQmNCm0JAKK9Ch0KLQntCI0JrQntCSINCS0KPQmtCe0KHQkNCS0JAKK9Ch0KLQntCI0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQodCi0J7QiNCa0J7QktCY0Ist0KjQkNCb0JHQntCiINCR0J7QiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCW0JjQktCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQltCY0JLQntCi0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0J7QiNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JDQndCQ0J3QmNCI0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCe0IjQmtCe0JLQmNCLINCR0J7QoNCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KHQotCe0IjQmtCe0JLQmNCLINCY0JLQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCa0J7QktCY0Ist0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQodCi0J7QiNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQmtCj0JfQnNCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQm9CV0J3QmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CV0J3QotCY0IjQlQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9Ci0JXQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCe0IjQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0KHQotCe0IjQmtCe0JLQmNCLINCd0JDQlNCQCivQodCi0J7QiNCa0J7QktCY0Isg0J/QkNCS0JvQlQor0KHQotCe0IjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkyDQlNCgCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0J7QiNCa0J7QktCY0Isg0KHQkNCK0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQodCi0J7QiNCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQotCe0IjQmtCe0JLQmNCLINCi0JXQntCU0J7QoAor0KHQotCe0IjQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JLQldCJ0JrQngor0KHQotCe0IjQmtCe0JLQmNCLINCS0JXQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JfQm9CQ0KLQmNCR0J7QoAor0KHQotCe0IjQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JrQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0KHQotCe0IjQmtCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCb0J7QktCY0Isg0ILQo9Cb0JAKK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0JbQmNCS0JrQngor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQmNCS0JDQnQor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCc0JXQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQodCi0J7QiNCc0JXQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQntCI0J3QmNCLINCR0J7QqNCa0J4KK9Ch0KLQntCI0J3QmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQndCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQntCI0J3QmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0J3QmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQndCY0Isg0JzQmNCg0JrQngor0KHQotCe0IjQndCY0Isg0J/QkNCS0JvQlQor0KHQotCe0IjQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0J3QntCSINCU0JDQnNCI0JDQnQor0KHQotCe0IjQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCe0IjQntCS0JjQiyDQotCe0JzQkNCoCivQodCi0J7QiNCh0JDQktCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCh0JDQktCJ0JXQktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0J7QmtCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0J7QmtCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCe0JrQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCa0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QmtCY0Isg0JTQo9Co0JDQnQor0KHQotCe0JrQmNCLINCI0J7QktCY0KbQkAor0KHQotCe0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCa0JjQiyDQotCe0JTQntCgCivQodCi0J7QmtCY0J0g0JDQm9CV0KHQkNCd0JTQkNCgCivQodCi0J7QmtCY0J0g0JHQoNCQ0J3QmtCeCivQodCi0J7QmtCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0KLQntCa0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QmtCY0J0g0KHQotCe0IjQkNCdCivQodCi0J7QmtCj0IvQkCDQlNCQ0J3QlQor0KHQotCe0JrQo9CL0JAg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQntCa0KPQi9CQINCc0JjQm9CQ0J0KK9Ch0KLQntCa0KPQi9CQINCc0JjQm9CQ0J0KK9Ch0KLQntCa0KPQi9CQINCc0JjQm9CQ0J0KK9Ch0KLQntCa0KPQi9CQINCc0JjQoNCI0JDQndCQCivQodCi0J7QmtCj0IvQkCDQndCY0JrQntCb0JAKK9Ch0KLQntCa0KPQi9CQINCf0JXQotCQ0KAKK9Ch0KLQntCb0JXQodCa0Jgg0JzQmNCi0JjQiNCQCivQodCi0J7Qm9CY0Isg0ILQo9Cg0J4KK9Ch0KLQntCb0JjQiyDQkdCY0KHQldCg0JrQkAor0KHQotCe0JvQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCb0JjQiyDQlNCj0KjQkNCdCivQodCi0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KHQotCe0JvQmNCLINCa0JDQotCY0KbQkAor0KHQotCe0JvQmNCLINCJ0KPQkdCY0KbQkAor0KHQotCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7Qm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCb0JjQiyDQndCV0J3QkNCUCivQodCi0J7Qm9CY0Isg0J/QldCi0JDQoCDQlNCgCivQodCi0J7Qm9CY0Isg0KHQoNCV0KLQkAor0KHQotCe0JvQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0J/QmNCd0KjQldCaINCh0KLQkNCd0JjQodCb0JDQkgor0KHQotCg0JDQltCc0JXQqNCi0JXQoCDQkdCe0JbQmNCU0JDQoAor0KHQotCg0JDQltCc0JXQqNCi0JXQoCDQlNCj0KjQkNCdCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KDQntCSINCc0JjQm9CY0KbQkAor0KHQotCg0JDQltCc0JXQqNCi0JXQoNCe0JIg0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KDQntCSINCh0JDQktCQCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQodCe0KTQmNCI0JAKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KDQntCSINCh0KLQldCS0JDQnQor0KHQotCg0JDQptCV0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KHQotCg0JDQptCV0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQodCi0KDQkNCT0JAg0KHQotCI0JXQn9CQ0J0KK9Ch0KLQoNCQ0KXQmNCd0JjQiyDQmtCg0KHQotCe0JzQmNCgCivQodCi0KDQkNCI0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KHQotCg0JDQiNCY0J0g0IjQldCb0JXQndCQCivQodCi0KDQkNCI0JjQnSDQndCQ0JTQkAor0KHQotCg0JDQiNCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ch0KLQoNCQ0IjQmNCdINCh0KLQntCI0JDQnQor0KHQotCg0JDQiNCY0J0g0JLQldCb0JjQl9CQ0KAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCg0JDQiNCY0J3QmNCLINCY0KDQldCd0JAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQiNCe0JLQkNCdCivQodCi0KDQkNCI0JjQndCY0Isg0JvQkNCX0JDQoAor0KHQotCg0JDQiNCY0J3QmNCLINCc0JjQm9Cj0KLQmNCdCivQodCi0KDQkNCI0J3QmNCLINCR0KDQkNCd0JrQngor0KHQotCg0JDQiNCd0JjQiyDQlNCj0KjQkNCdCivQodCi0KDQkNCI0J3QmNCLINCT0KDQo9CI0JAKK9Ch0KLQoNCQ0IjQndCY0Isg0JzQkNCg0JjQiNCQCivQodCi0KDQkNCI0J3QmNCLINCc0JjQm9CQ0J3QmtCeCivQodCi0KDQkNCI0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0KLQoNCQ0IjQndCY0Isg0JzQm9CQ0JTQldCdCivQodCi0KDQkNCI0J3QmNCLINCf0JDQmwor0KHQotCg0JDQiNCd0JjQiyDQotCe0KjQkAor0KHQotCg0JDQndCY0Isg0IjQntCS0JjQptCQCivQodCi0KDQkNCK0JDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0KDQkNCK0JDQndCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQoNCQ0IrQkNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQodCi0KDQkdCQ0KfQmtCYINCk0KDQmNCU0J7Qm9CY0J3QkAor0KHQotCg0JHQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ch0KLQoNCR0JDQlCDQodCi0JXQktCQ0J0KK9Ch0KLQoNCR0JDQoiDQotCe0JzQmNCh0JvQkNCSCivQodCi0KDQldCl0J7QktCh0JrQmCDQl9Cj0JfQkNCd0JAKK9Ch0KLQoNCV0JvQlSDQoNCQ0KjQkAor0KHQotCg0JXQl9Ce0KHQmtCYINCI0J7QktCQ0J0KK9Ch0KLQoNCV0JfQntCh0JrQmCDQnNCY0JvQldCh0JAKK9Ch0KLQoNCV0JfQntCh0JrQmCDQndCY0JrQntCU0JjQndCa0JAKK9Ch0KLQoNCV0JfQntCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQodCi0KDQk9CQ0KAg0J/QldCi0JDQoAor0KHQotCg0JjQp9CV0JLQmNCLINCU0JDQoNCQCivQodCi0KDQmNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCg0JjQp9CV0JLQmNCLINCI0J7QodCY0J8KK9Ch0KLQoNCY0KfQldCS0JjQiyDQiNCj0JvQmtCQCivQodCi0KDQmNCn0JXQktCY0Isg0JrQodCV0J3QmNCI0JAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCg0JjQp9CV0JLQmNCLINCc0JvQkNCU0JXQnQor0KHQotCg0JjQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCi0KDQmNCn0JXQktCY0Isg0KHQkNCS0JrQkAor0KHQotCg0JjQp9CV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCi0KDQmNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ch0KLQoNCY0KfQmtCeINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQoNCY0JHQldCgINCV0JzQmNCbCivQodCi0KDQmNCR0JXQoCDQpNCg0JDQitCQCivQodCi0KDQmNCR0JXQoCDQpNCg0JDQitCQCivQodCi0KDQmNCR0JXQoCDQnNCY0KXQkNCI0JvQngor0KHQotCg0JjQkdCV0KAg0KHQotCV0JLQkNCdCivQodCi0KDQmNCR0JXQoCDQodCi0JXQktCQ0J0KK9Ch0KLQoNCY0KbQmtCYINCY0JLQkNCdCivQodCi0KDQmNCa0JAg0ILQntCg0ILQlQor0KHQotCg0JjQmtCQINCR0KDQkNCd0JrQngor0KHQotCg0JjQmtCe0JLQmNCLINCL0JDQnNCY0JsKK9Ch0KLQoNCY0JrQntCS0JjQiyDQkdCV0JvQmAor0KHQotCg0JjQmtCe0JLQmNCLINCI0JDQndCe0KgKK9Ch0KLQoNCY0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0KHQotCg0JjQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQoNCY0JrQntCS0JjQiyDQktCV0KDQkAor0KHQotCg0JjQndCV0JrQkCDQmtCQ0KLQmNCm0JAKK9Ch0KLQoNCY0JfQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQoNCY0JfQntCS0JjQiyDQnNCQ0JrQodCY0JwKK9Ch0KLQoNCj0JPQkNCgINCW0JDQoNCa0J4KK9Ch0KLQoNCj0JPQkNCgINCW0JjQktCe0KDQkNCUCivQodCi0KDQo9CT0JDQoCDQk9Ce0KDQkNCdCivQodCi0KDQo9CT0JDQoCDQiNCe0KHQmNCfCivQodCi0KDQo9CT0JDQoCDQnNCY0JvQo9Ci0JjQnQor0KHQotCg0KPQk9CQ0KAg0J/QkNCS0JvQlQor0KHQotCg0KPQk9CQ0KAg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQoNCj0JPQkNCgINCh0J7QitCQCivQodCi0KDQo9CT0JDQoCDQktCe0IjQmNCh0JvQkNCSCivQodCi0KDQo9CT0JDQoCDQl9CQ0KDQmNCI0JAKK9Ch0KLQoNCj0KXQkNCgINCQ0J3QkAor0KHQotCg0KPQpdCQ0KAg0IjQkNCg0JzQmNCb0JAKK9Ch0KLQoNCj0KXQkNCgINCI0J7QodCY0J8KK9Ch0KLQoNCj0KXQkNCgINCc0JDQk9CU0JAKK9Ch0KLQoNCj0KXQkNCg0JjQmiDQiNCe0KHQmNCfCivQodCi0KDQo9Cl0JDQoNCY0Jog0IjQntCh0JjQnwor0KHQotCg0KPQpdCQ0KDQmNCaLdCI0KPQoCDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Ch0KLQoNCj0KXQkNCg0JjQmiDQiNCj0KDQkNCIINCU0KAKK9Ch0KLQoNCj0KXQkNCg0JjQmiDQnNCQ0KDQiNCV0J3QkAor0KHQotCg0KPQpdCQ0KDQmNCaINCc0JDQotCeCivQodCi0KDQo9Cl0JDQoNCY0Jog0J/QkNCS0JvQlQor0KHQotCg0KPQmtCQ0J0g0JTQntCc0JDQk9Ce0Igg0JTQoAor0KHQotCg0KPQitCQ0Kgg0JPQntCg0JTQkNCd0JAKK9Ch0KLQo9CR0JvQmNCd0JDQpiDQnNCY0JvQntCoCivQodCi0KPQlNCV0J0g0JbQmNCS0J7QoNCQ0JQKK9Ch0KLQo9Cb0JDQoCDQlNCj0KjQkNCdCivQodCi0KPQn9CQ0KAg0KfQldCU0JAKK9Ch0KLQo9Cf0JDQoCDQltCV0InQmtCeCivQodCi0KPQn9CQ0KAg0JbQmNCS0JrQngor0KHQotCj0J/QkNCgINCC0J7QoNCC0JUKK9Ch0KLQo9Cf0JDQoCDQkdCe0JPQntCJ0KPQkQor0KHQotCj0J/QkNCgINCR0J7QoNCeCivQodCi0KPQn9CQ0KAg0JHQntCh0JjQidCa0JAKK9Ch0KLQo9Cf0JDQoCDQkdCg0JDQndCa0J4KK9Ch0KLQo9Cf0JDQoCDQkdCg0JDQndCa0J4KK9Ch0KLQo9Cf0JDQoCDQkdCg0JDQndCa0J4KK9Ch0KLQo9Cf0JDQoCDQptCS0JXQotCQCivQodCi0KPQn9CQ0KAg0JTQldCh0JDQndCa0JAKK9Ch0KLQo9Cf0JDQoCDQlNCg0JDQk9CQ0J0KK9Ch0KLQo9Cf0JDQoCDQlNCg0JDQk9CeCivQodCi0KPQn9CQ0KAg0JTQo9Co0JDQndCa0JAKK9Ch0KLQo9Cf0JDQoCDQlNCj0KjQkNCdCivQodCi0KPQn9CQ0KAg0JTQo9Co0JDQnQor0KHQotCj0J/QkNCgINCU0KPQqNCQ0J0KK9Ch0KLQo9Cf0JDQoCDQmNCb0JjQiNCQCivQodCi0KPQn9CQ0KAg0IjQkNCK0JAKK9Ch0KLQo9Cf0JDQoCDQiNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0IjQntCS0J4KK9Ch0KLQo9Cf0JDQoCDQidCj0JHQmNCd0JrQkAor0KHQotCj0J/QkNCgINCc0JDQoNCa0J4KK9Ch0KLQo9Cf0JDQoCDQnNCQ0KDQmtCeCivQodCi0KPQn9CQ0KAg0JzQmNCJ0JAKK9Ch0KLQo9Cf0JDQoCDQnNCY0JvQmtCQCivQodCi0KPQn9CQ0KAg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQo9Cf0JDQoCDQnNCY0JvQntCg0JDQlAor0KHQotCj0J/QkNCgINCc0JjQoNCI0JDQndCQCivQodCi0KPQn9CQ0KAg0JzQmNCg0JrQngor0KHQotCj0J/QkNCgINCd0JjQmtCe0JvQkAor0KHQotCj0J/QkNCgINCf0JXQoNCeCivQodCi0KPQn9CQ0KAg0J/QldCi0JDQoAor0KHQotCj0J/QkNCgINCf0JXQotCQ0KAKK9Ch0KLQo9Cf0JDQoCDQoNCQ0JTQkAor0KHQotCj0J/QkNCgINCg0JDQlNCVCivQodCi0KPQn9CQ0KAg0KDQkNCI0JrQngor0KHQotCj0J/QkNCgINCg0JDQiNCa0J4KK9Ch0KLQo9Cf0JDQoCDQoNCQ0IjQmtCeCivQodCi0KPQn9CQ0KAg0KHQm9CQ0ILQkNCd0JAKK9Ch0KLQo9Cf0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQodCi0KPQn9CQ0KAg0JfQlNCg0JDQktCa0J4KK9Ch0KLQo9Cf0JDQoCDQl9Ce0KDQkNCdCivQodCi0KPQn9CQ0JLQodCa0Jgg0JDQndCU0KDQldCICivQodCi0KPQn9CQ0JLQodCa0Jgg0IjQkNCd0JrQngor0KHQotCj0J/QmNCLINCh0JvQkNCS0JXQndCa0J4KK9Ch0KLQo9Cf0JjQnSDQmNCS0JDQnQor0KHQotCj0J/QmNCdINCX0JLQntCd0JjQnNCY0KAKK9Ch0KLQo9Cg0JDQoCDQl9CU0KDQkNCS0JrQngor0KHQotCS0J7QoNCY0Isg0J/QkNCS0JvQlQor0KHQo9Cn0JXQktCY0Isg0JTQkNCd0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ch0KPQp9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQo9Cn0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQo9Cn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQodCj0KfQldCS0JjQiyDQnNCQ0KDQotCQCivQodCj0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCj0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQo9Cn0JXQktCY0Isg0KDQo9CW0JjQptCQCivQodCj0KjQkCDQlNCQ0J3QmNCb0J4KK9Ch0KPQqNCQINCc0JDQoNCa0J4KK9Ch0KPQqNCQINCc0JjQm9CY0IjQkNCd0JAKK9Ch0KPQqNCQ0KYg0JLQmNCd0JrQngor0KHQo9Co0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQo9Co0JjQiyDQpdCY0JvQlNCQCivQodCj0KjQmNCLINCg0JDQlNCQCivQodCj0KjQmNCLINCS0KPQiNCQ0J3QkAor0KHQo9CC0Jgg0IjQntCS0JDQnQor0KHQo9CC0Jgg0JzQkNCg0JjQiNCQCivQodCj0ILQmCDQodCi0JDQndCa0J4KK9Ch0KPQkdCQ0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KPQkdCQ0KjQmNCLINCI0KPQm9Ca0JAKK9Ch0KPQkdCQ0KjQmNCLINCb0JDQl9CQ0KAKK9Ch0KPQkdCQ0KjQmNCLINCc0JDQoNCa0J4KK9Ch0KPQkdCQ0KjQmNCLINCc0JjQm9CQ0J0KK9Ch0KPQkdCQ0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQo9CR0JDQqNCY0Isg0J/QldCg0J4KK9Ch0KPQkdCQ0KjQmNCLINCf0JXQotCQ0KAg0JzQoAor0KHQo9CR0JDQqNCY0Isg0KDQkNCI0JrQngor0KHQo9CR0JDQqNCY0Isg0KHQmNCc0JAKK9Ch0KPQkdCQ0KjQmNCLINCh0KLQntCI0JDQnQor0KHQo9CR0JDQiNCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KHQo9CR0JDQmtCe0JIg0JrQntCS0JjQidCa0JAKK9Ch0KPQkdCQ0JrQntCSINCh0JzQmNCJ0JrQkAor0KHQo9CR0JDQmtCe0JIg0KHQntCk0JjQiNCQCivQodCj0JHQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQo9CR0JjQiyDQltCQ0KDQmtCeCivQodCj0JHQmNCLINCC0J7QoNCC0JUKK9Ch0KPQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KPQkdCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0KPQkdCY0Isg0JHQntCW0JXQndCQCivQodCj0JHQmNCLINCR0J7QltCY0JTQkNCgCivQodCj0JHQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQo9CR0JjQiyDQlNCQ0JzQmNCgCivQodCj0JHQmNCLINCU0JDQoNCQCivQodCj0JHQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9CR0JjQiyDQlNCj0KjQkNCdCivQodCj0JHQmNCLINCT0J7QoNCU0JDQndCQCivQodCj0JHQmNCLINCI0J7QktCQ0J0KK9Ch0KPQkdCY0Isg0JrQntCh0KLQkAor0KHQo9CR0JjQiyDQm9CQ0JfQkNCgCivQodCj0JHQmNCLINCb0JDQl9CQ0KAKK9Ch0KPQkdCY0Isg0JvQkNCX0JDQoAor0KHQo9CR0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KPQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KPQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KPQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KPQkdCY0Isg0JzQkNCg0JjQiNCQCivQodCj0JHQmNCLINCc0JDQoNCa0J4KK9Ch0KPQkdCY0Isg0JzQkNCg0JrQngor0KHQo9CR0JjQiyDQnNCY0JvQkNCdCivQodCj0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQo9CR0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KPQkdCY0Isg0J3QkNCU0JAKK9Ch0KPQkdCY0Isg0J3QldCU0JXQidCa0JAKK9Ch0KPQkdCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0KPQkdCY0Isg0J3QntCS0JDQmgor0KHQo9CR0JjQiyDQntCb0JPQkAor0KHQo9CR0JjQiyDQn9CQ0IjQkAor0KHQo9CR0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQo9CR0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCj0JHQmNCLINCh0JzQmNCJ0JAKK9Ch0KPQkdCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0KPQkdCY0Isg0KHQotCV0JLQkNCdCivQodCj0JHQmNCLINCX0J7QoNCQ0J0KK9Ch0KPQkdCe0KLQmNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQk9Ce0KDQmNCm0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQmtCQ0KLQmNCm0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQm9Cj0JrQkAor0KHQo9CR0J7QotCY0KfQmtCYINCc0JjQoNCI0JDQndCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JzQmNCg0JrQngor0KHQo9CR0J7QotCY0KfQmtCYINCd0JDQlNCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0J3QldCh0KLQntCgINCU0JjQn9CbINCY0J3Qkwor0KHQo9CR0J7QotCY0KfQmtCYINCg0JDQlNCe0JLQkNCdCivQodCj0JHQntCi0JjQp9Ca0Jgg0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQodCj0JHQntCi0JjQp9Ca0Jgg0KHQntCk0JjQiNCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQodCj0JHQntCi0JjQp9Ca0Jgg0JLQkNCh0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQktCV0KDQkAor0KHQo9CR0J7QotCY0KfQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQl9Ce0KDQkNCdCivQodCj0JHQntCi0JjQiyDQltCQ0KDQmtCeCivQodCj0JHQntCi0JjQiyDQgtCe0KDQgtCVCivQodCj0JHQntCi0JjQiyDQgtCj0KDQngor0KHQo9CR0J7QotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KPQkdCe0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQodCj0JHQntCi0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCj0JHQntCi0JjQiyDQlNCj0KjQkNCdCivQodCj0JHQntCi0JjQiyDQlNCj0KjQkNCdCivQodCj0JHQntCi0JjQiyDQidCY0InQkNCd0JAKK9Ch0KPQkdCe0KLQmNCLINCJ0KPQkdCY0KbQkAor0KHQo9CR0J7QotCY0Isg0JzQkNCm0JAKK9Ch0KPQkdCe0KLQmNCLINCc0JDQoNCa0J4KK9Ch0KPQkdCe0KLQmNCLINCc0JjQm9CY0JLQntCICivQodCj0JHQntCi0JjQiyDQnNCY0JvQntCoCivQodCj0JHQntCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQo9CR0J7QotCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0JjQndCTCivQodCj0JHQntCi0JjQiyDQndCV0J3QkNCUCivQodCj0JHQntCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQo9CR0J7QotCY0Isg0KDQkNCU0J7QqAor0KHQo9CR0J7QotCY0Isg0KDQkNCI0JrQngor0KHQo9CR0J7QotCY0Isg0KDQkNCI0JrQngor0KHQo9CR0J7QotCY0Isg0KDQo9CW0JAKK9Ch0KPQkdCe0KLQmNCLINCg0KPQltCQCivQodCj0JHQntCi0JjQiyDQodCQ0JLQkAor0KHQo9CR0J7QotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQo9CR0J7QotCY0Isg0KHQotCQ0J3QkAor0KHQo9CR0J7QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQo9CR0J7QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQo9CR0J7QotCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQo9CR0J7QotCY0Isg0JLQldCg0JAKK9Ch0KPQkdCe0KLQmNCLINCS0JvQkNCU0JDQndCQCivQodCj0JHQntCi0JjQnSDQltCY0JLQmtCeCivQodCj0JHQntCi0JjQnSDQltCY0JLQmtCeCivQodCj0JHQntCi0JjQnSDQgtCe0KDQgtCVCivQodCj0JHQntCi0JjQnSDQgtCe0KDQgtCVCivQodCj0JHQntCi0JjQnSDQgtCj0KDQkAor0KHQo9CR0J7QotCY0J0g0JHQntCT0JTQkNCdCivQodCj0JHQntCi0JjQnSDQkdCe0JPQlNCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCU0JDQndCY0KbQkAor0KHQo9CR0J7QotCY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQodCj0JHQntCi0JjQnSDQlNCg0JDQk9CQ0J0KK9Ch0KPQkdCe0KLQmNCdINCU0KDQkNCT0JjQitCQCivQodCj0JHQntCi0JjQnSDQlNCj0KjQkNCd0JrQkAor0KHQo9CR0J7QotCY0J0g0JjQoNCY0J3QkAor0KHQo9CR0J7QotCY0J0g0JjQktCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCI0JXQm9CV0J3QkAor0KHQo9CR0J7QotCY0J0g0IjQldCb0JjQptCQCivQodCj0JHQntCi0JjQnSDQidCY0InQkNCd0JAKK9Ch0KPQkdCe0KLQmNCdINCJ0KPQkdCY0J3QmtCQCivQodCj0JHQntCi0JjQnSDQnNCQ0KDQmtCeCivQodCj0JHQntCi0JjQnSDQnNCQ0KDQmtCeCivQodCj0JHQntCi0JjQnSDQnNCQ0KDQmtCeCivQodCj0JHQntCi0JjQnSDQnNCY0JvQkNCdCivQodCj0JHQntCi0JjQnSDQnNCY0JvQkNCdCivQodCj0JHQntCi0JjQnSDQnNCY0JvQkNCdCivQodCj0JHQntCi0JjQnSDQnNCY0JvQntCg0JDQlAor0KHQo9CR0J7QotCY0J0g0J3QldCS0JXQndCa0JAKK9Ch0KPQkdCe0KLQmNCdINCf0JDQktCb0JUKK9Ch0KPQkdCe0KLQmNCdINCf0JXQotCQ0KAKK9Ch0KPQkdCe0KLQmNCdINCf0KDQldCU0KDQkNCTCivQodCj0JHQntCi0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQodCj0JHQntCi0JjQnSDQoNCQ0JTQntCS0JDQnQor0KHQo9CR0J7QotCY0J0g0KHQkNCo0JAKK9Ch0KPQkdCe0KLQmNCdINCh0JDQktCQCivQodCj0JHQntCi0JjQnSDQodCQ0JLQkAor0KHQo9CR0J7QotCY0J0g0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCh0JzQmNCJ0JAKK9Ch0KPQkdCe0KLQmNCdINCh0KLQkNCd0JrQkAor0KHQo9CR0J7QotCY0J0g0KHQotCV0JLQkNCdCivQodCj0JHQntCi0JjQnSDQodCi0JXQktCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCdINCX0J7QoNCQCivQodCj0JHQoyDQgtCe0KDQgtCVCivQodCj0I/Qo9Ca0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCj0I/Qo9CcINCR0J7QqNCa0J4KK9Ch0KPQj9Cj0Jwg0JHQntCT0JTQkNCdCivQodCj0I/Qo9CcINCY0JvQmNCI0JAKK9Ch0KPQlNCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KHQo9CU0JDQoCDQlNCj0KjQkNCdCivQodCj0JTQkNCgINCU0KPQqNCQ0J0KK9Ch0KPQlNCQ0KAg0JPQkNCI0JAKK9Ch0KPQlNCQ0KAg0JLQntCI0JjQnQor0KHQo9CU0JDQoNCV0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KPQlNCQ0KDQntCSINCR0KDQkNCi0JjQodCb0JDQkgor0KHQo9CU0JDQoNCh0JrQmCDQlNCj0KjQkNCdCivQodCj0JTQmNCc0JDQpiDQlNCg0JDQk9CeCivQodCj0JTQmNCc0JDQpiDQnNCY0JvQkNCdCivQodCj0KXQkNCd0JXQmiDQkNCU0JDQnAor0KHQo9Cl0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ch0KPQpdCe0JLQodCa0Jgg0IjQkNCd0J4KK9Ch0KPQmNCLINCR0KDQkNCd0JrQngor0KHQo9CY0Isg0J3QldCd0JDQlAor0KHQo9CI0JXQoCDQnNCY0KXQkNCI0JvQngor0KHQo9CI0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KPQiNCY0Isg0JzQmNCb0JDQnQor0KHQo9CI0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KPQiNCY0Isg0JLQntCI0JjQnQor0KHQo9CI0JjQiyDQl9CU0JXQndCa0JAKK9Ch0KPQmtCQ0Kcg0JzQmNCl0JDQiNCb0J4KK9Ch0KPQmtCK0JDQiNCQINCU0JDQndCY0JvQngor0KHQo9Ca0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQodCj0JrQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ch0KPQmtCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCj0JrQntCb0JAg0JDQndCi0JDQmwor0KHQo9Ca0J7Qm9CQINCh0KPQl9CQ0J3QkAor0KHQo9Ca0KPQnyDQnNCQ0KDQk9CY0KLQkAor0KHQo9Cb0JXQiNCc0JDQndCe0JIg0J3QkNCk0JjQiNCQCivQodCj0JvQmNCLINCc0JDQoNCY0KbQkAor0KHQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCj0InQkCDQoNCQ0JzQkNCU0JDQnQor0KHQo9CJ0JDQk9CY0Isg0KDQldCk0JjQmgor0KHQo9Cb0J7QptCa0Jgg0IjQntCo0JrQkAor0KHQo9Cb0J7QnNCQ0KAg0JDQk9Cd0JXQl9CQCivQodCj0JvQntCc0JDQoCDQldCg0JbQldCR0JXQogor0KHQo9Cb0J7QnNCQ0KAg0JjQm9Ce0J3QkAor0KHQo9Cb0J7QnNCQ0KAg0IjQkNCd0J7QqAor0KHQo9Cb0J7QnNCQ0KAg0JzQkNCT0JTQkAor0KHQo9Cc0JDQnSDQnNCY0JvQlQor0KHQo9Cc0JDQoNCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0KPQnNCY0J3QkCDQlNCQ0J3QmNCm0JAKK9Ch0KPQnNCY0IrQkCDQnNCY0KjQkAor0KHQo9Cd0JDQiNCa0J4g0ILQo9Cg0J4KK9Ch0KPQndCQ0IjQmtCeINCU0KPQqNCQ0J0KK9Ch0KPQndCU0JDQiyDQgtCj0KDQkAor0KHQo9Cd0JTQkNCLINCi0J7QlNCe0KAKK9Ch0KPQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KPQndCa0JAg0InQo9CR0JjQptCQCivQodCj0J3QotCe0Jog0JDQndCY0KbQkAor0KHQo9Cd0JfQldCgINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQn9CY0Isg0JHQntCg0JjQqNCQCivQodCj0J/QmNCLINCU0JDQoNCY0J3QmtCQCivQodCj0J/QmNCLINCc0JjQm9CQ0J0KK9Ch0KPQn9CY0Isg0J7Qm9CT0JAKK9Ch0KPQoNCL0JAg0IjQntCh0JjQnwor0KHQo9Cg0IvQkCDQotCg0JDQiNCQ0J0KK9Ch0KPQoNCQINCc0JDQoNCT0JjQotCQCivQodCj0KDQlNCj0KfQkNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9Cg0JTQo9Cn0JrQmCDQltCY0JLQmtCeCivQodCj0KDQlNCj0KfQmtCYINCU0KDQkNCT0JDQnQor0KHQo9Cg0JTQo9Cn0JrQmCDQmNCb0JjQiNCQCivQodCj0KDQlNCj0KfQmtCYINCY0JvQmNCI0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0JjQodCY0JTQntCgCivQodCj0KDQlNCj0KfQmtCYINCc0JDQoNCQCivQodCj0KDQlNCj0KfQmtCYINCc0JjQm9CQ0J0KK9Ch0KPQoNCU0KPQp9Ca0Jgg0JzQmNCb0J7QqAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCY0JvQntCoCivQodCj0KDQlNCj0KfQmtCYINCc0JjQoNCI0JDQndCQCivQodCj0KDQlNCj0KfQmtCYINCd0JXQkdCe0IjQqNCQCivQodCj0KDQlNCj0KfQmtCYINCf0JDQndCi0JXQm9CY0IjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQn9CV0KDQodCQCivQodCj0KDQlNCj0KfQmtCYINCh0JjQndCY0KjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQodCi0JDQndCa0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0KHQotCV0JLQkNCdCivQodCj0KDQm9CQINCR0J7QltCeCivQodCj0KDQm9CQINCU0KPQqNCQ0J0KK9Ch0KPQoNCb0JAg0JvQo9Ca0JAKK9Ch0KPQoNCb0JAg0J/QldCi0JDQoAor0KHQo9Cg0JvQkCDQn9CV0KLQkNCgCivQodCj0KDQm9CQINCh0JDQktCQCivQodCj0KDQm9CQINCX0J7QoNCQ0J0KK9Ch0KPQoNCb0JjQiyDQnNCY0JvQldCd0JrQngor0KHQo9Cg0J7QktCYINCQ0J3QotCe0J0KK9Ch0KPQoNCe0JLQmCDQiNCe0JvQkNCd0JrQkAor0KHQo9Cg0J7QktCYINCc0JjQpdCQ0JsKK9Ch0KPQoNCe0JLQmCDQnNCY0KDQntCh0JvQkNCSCivQodCj0KDQntCS0Jgg0KHQotCV0JLQkNCdCivQodCj0KDQntCS0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQo9Ch0JXQlNCh0JrQmCDQntCh0JrQkNCgCivQodCj0KLQkNCg0JjQiyDQktCV0KDQkAor0KHQo9Ci0KDQmNCdINCR0J7QoNCY0KEKK9Ch0KPQotCj0KDQntCS0JjQiyDQiNCQ0JPQkAor0KHQo9Ci0KPQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQo9Ci0KPQoNCe0JLQmNCLINCd0JXQodCi0J4KK9Ch0KPQotCj0KDQntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQodCj0JLQkNCn0JDQoCDQmNCb0JjQndCa0JAKK9Ch0KPQktCQ0KfQkNCgINCi0J7QlNCe0KAKK9Ch0KPQktCQ0KfQkNCgINCS0JXQoNCQCivQodCj0JLQkNCn0JDQoNCV0JIg0JHQntCg0JjQodCb0JDQktCQCivQodCj0JLQkNCn0JDQoNCV0JIg0IjQntCS0JDQnQor0KHQo9CS0JDQp9CQ0KDQldCSINCc0JDQoNCY0IjQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCc0JjQm9CV0J3QmtCeCivQodCj0JLQkNCn0JDQoNCV0JIg0JzQntCc0JjQoAor0KHQo9CS0JDQp9CQ0KDQldCSINCe0JHQoNCQ0JQKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQn9CQ0IjQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCg0JDQlNCV0J3QmtCeCivQodCj0JLQkNCI0KfQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KPQktCQ0IjQkNCmINCW0JXQidCa0J4KK9Ch0KPQktCQ0IjQkNCmINCS0JDQodCY0JvQmNCI0JUKK9Ch0KPQktCQ0IjQj9CY0Isg0JbQmNCS0JrQngor0KHQo9CS0JDQiNCP0JjQiyDQgtCe0KDQgtCVCivQodCj0JLQkNCI0I/QmNCLINCC0J7QoNCC0JUKK9Ch0KPQktCQ0IjQj9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQodCj0JLQkNCI0I/QmNCLINCT0J7QiNCa0J4KK9Ch0KPQktCQ0IjQj9CY0Isg0JjQm9CY0IjQkAor0KHQo9CS0JDQiNCP0JjQiyDQmNCh0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0IjQntCS0JDQnQor0KHQo9CS0JDQiNCP0JjQiyDQidCY0InQkNCd0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0JzQkNCg0JjQiNCQCivQodCj0JLQkNCI0I/QmNCLINCc0JDQoNCY0J3QmtCeCivQodCj0JLQkNCI0I/QmNCLINCc0JjQm9Ca0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0J3QldCd0JDQlAor0KHQo9CS0JDQiNCP0JjQiyDQndCV0J3QkNCUCivQodCj0JLQkNCI0I/QmNCLINCe0JHQoNCQ0JQKK9Ch0KPQktCQ0IjQj9CY0Isg0J7Qm9CT0JjQptCQCivQodCj0JLQkNCI0I/QmNCLINCf0JXQotCQ0KAKK9Ch0KPQktCQ0IjQj9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0JLQkNCh0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0JLQkNCh0JAKK9Ch0KPQktCQ0IjQj9CY0J0g0IjQntCS0JDQnQor0KHQo9CS0JDQiNCP0JjQnSDQiNCe0JLQkNCdCivQodCj0JLQkNCI0I/QmNCdINCc0JvQkNCU0JXQnQor0KHQo9CS0JDQiNCP0JjQnSDQndCY0JrQntCb0JAKK9Ch0KPQl9CY0Isg0JzQkNCg0JAKK9Ch0KPQl9CY0Isg0JzQmNCg0JrQngor0KHQo9CX0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQl9CY0Isg0KHQntCk0JjQiNCQCivQodCS0JDQm9CY0J3QkCDQmtCQ0KLQkAor0KHQktCV0IvQitCQ0Jog0JHQoNCQ0J3QmtCeCivQodCS0JXQotCY0Isg0JjQktCQ0J0g0JTQoAor0KHQktCV0KLQmNCLINCY0JLQkNCdCivQodCS0JXQotCY0Isg0InQldCg0JrQkAor0KHQktCV0KLQm9CY0Jog0JDQlNCQ0JwKK9Ch0JLQmNCb0JDQmtCe0KEg0JzQkNCg0JjQiNCQCivQodCS0JjQm9CQ0KAg0JDQndCC0JXQm9Ca0JAKK9Ch0JLQmNCb0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JLQmNCb0JDQoCDQk9Ce0IjQmtCeCivQodCS0JjQm9CQ0KAg0InQo9CR0J7QnNCY0KAKK9Ch0JLQmNCb0JDQoCDQnNCY0KXQkNCI0JvQngor0KHQktCY0JvQkNCgINCc0JjQpdCQ0IjQm9CeCivQodCS0JjQm9CQ0KAg0J3QmNCa0J7Qm9CQCivQodCS0JjQm9CQ0KAg0J/QldCi0JDQoAor0KHQktCY0JvQkNCgINCg0JDQlNCe0JzQmNCgCivQodCS0JjQm9CQ0KAg0KDQkNCi0JrQngor0KHQktCY0JvQkNCgINCh0JvQkNCS0JjQptCQCivQodCS0JjQm9CQ0KAg0KHQntCk0JjQiNCQCivQodCS0JjQm9CQ0KAg0JLQldCg0JjQptCQCivQodCS0JjQm9CQ0KAg0JLQmNCd0JrQkAor0KHQktCY0JvQkNCg0JXQktCY0Isg0KHQotCV0JLQngor0KHQktCY0JvQkNCg0JrQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KHQktCY0JvQkNCg0J7QkiDQnNCY0JvQkNCdCivQodCS0JjQm9Ce0JrQntChINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JLQmNCb0J7QmtCe0KEg0JPQkNCS0KDQkAor0KHQktCY0JvQntCa0J7QoSDQmtCQ0KLQmNCm0JAKK9Ch0JLQmNCb0J7QmtCe0KEg0JzQmNCb0JDQnQor0KHQktCY0JvQntCa0J7QoSDQodCi0JXQktCQ0J0KK9Ch0JLQmNCK0JDQoNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KHQktCY0KDQp9CV0JIg0JbQmNCS0JrQngor0KHQktCY0KDQp9CV0JIg0IjQntCS0JDQnQor0KHQktCY0KDQp9CV0JIg0JzQmNCb0JjQktCe0IgKK9Ch0JLQmNCg0KfQldCSINCc0JjQm9Ce0KgKK9Ch0JLQmNCg0KfQldCSINCg0JDQlNCQCivQodCS0JjQoNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoCDQlNCe0KbQldCd0KIKK9Ch0JLQmNCg0KfQldCS0JjQiyDQkNCd0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCS0JjQoNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0JTQoNCQ0JPQkAor0KHQktCY0KDQp9CV0JLQmNCLINCU0KDQldCd0JrQkAor0KHQktCY0KDQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JLQmNCg0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQktCY0KDQp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCS0JjQoNCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQodCS0JjQoNCn0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JLQmNCg0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JLQmNCg0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JLQmNCg0KfQldCS0JjQiyDQotCV0J7QlNCe0KDQkAor0KHQktCY0KDQp9CV0JLQmNCLLdCi0KDQkNCI0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQktCQ0KHQkAor0KHQktCY0KDQp9CV0JLQmNCLINCS0KPQmtCQ0J0KK9Ch0JLQmNCg0JDQpiDQoNCj0JbQmNCm0JAKK9Ch0JLQmNCi0JjQiyDQkdCe0JbQngor0KHQktCY0KLQm9CY0KbQkCDQlNCg0JDQk9CQ0J0KK9Ch0JLQmNCi0JvQmNCm0JAg0JTQo9Co0JDQnQor0KHQktCY0KLQm9CY0KbQkCDQk9Ce0IjQmtCeINCU0JjQn9CbINCe0JXQpgor0KHQktCY0KLQm9CY0KbQkCDQiNCV0JvQmNCm0JAKK9Ch0JLQmNCi0JvQmNCm0JAg0JzQmNCb0JDQnQor0KHQktCY0KLQm9CY0KbQkCDQoNCj0JbQmNCm0JAKK9Ch0JLQmNCi0JvQmNCm0JAg0KHQmNCc0J4KK9Ch0JLQmNCi0JvQmNCm0JAg0KHQotCQ0J3QmtCeCivQodCS0JjQotCb0JjQptCQINCi0JDQndCQ0KHQmNCI0JUg0JTQmNCf0Jsg0J7QldCmCivQodCS0JjQotCb0JjQptCQINCS0JXQoNCQCivQodCS0J7QkdCe0JTQkCDQodCi0JXQktCQ0J0KK9Ch0JLQntCg0KbQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KHQktCe0KDQptCQ0J0g0InQo9CR0J7QnNCY0KAKK9Ch0JLQntCg0KbQkNCdINCc0JjQm9Ce0KgKK9Ch0JLQntCg0KbQkNCdINCc0JjQm9Ce0KDQkNCUCivQodCS0J7QoNCm0JDQnSDQnNCY0JvQntCg0JDQlAor0KHQktCe0KDQptCQ0J0g0KDQkNCU0JjQodCb0JDQkgor0KHQktCe0KDQptCQ0J0g0KDQkNCU0J7QnNCY0KAKK9Ch0JLQntCg0KbQkNCdINCh0KLQldCS0JDQnQor0KHQktCe0KDQptCQ0J0g0KHQotCe0IjQkNCdCivQodCS0J7QoNCm0JDQnSDQl9Ce0KDQmNCm0JAKK9Ch0JLQoNCU0JvQkNCdINCc0JvQkNCC0JDQnQor0KHQktCg0JrQntCi0JAg0JbQmNCS0JrQngor0KHQktCg0JrQntCi0JAg0JLQo9Ca0J7QnNCQ0J0KK9Ch0JLQoNCX0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KLQkNCn0Jgg0JjQodCc0JDQmNCJCivQotCQ0KfQmCDQotCV0J7QpNCY0JsKK9Ci0JDQqCDQmtCQ0KDQntCJCivQotCQ0KjQldCS0KHQmtCYINCc0JjQm9Ca0JAKK9Ci0JDQqNCV0JLQodCa0Jgg0KHQntCk0JjQiNCQCivQotCQ0KjQmCDQidCj0JHQmNCm0JAKK9Ci0JDQqNCYINCf0JXQotCQ0KAKK9Ci0JDQqNCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Ci0JDQqNCYINCh0KLQldCS0JDQnQor0KLQkNCo0Jgg0JfQntCb0KLQkNCdCivQotCQ0KjQmNCLINCc0JjQm9CY0JLQntCICivQotCQ0KjQmNCLINCS0JXQoNCQCivQotCQ0KjQndCQ0JTQmCDQnNCY0KXQkNCJCivQotCQ0JHQqCDQndCQ0JTQkAor0KLQkNCR0Kgg0J3QntCl0JDQlNCV0JTQmNCdCivQotCQ0JHQkNCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JHQkNCn0JrQmCDQl9Ce0KDQmNCm0JAKK9Ci0JDQkdCQ0Jog0JTQoNCQ0JPQkNCdCivQotCQ0JHQkNCaINCY0JLQkNCdCivQotCQ0JHQkNCaINCS0JDQodCQCivQotCQ0JHQkNCaINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0JDQkdCQ0JrQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Ci0JDQkdCQ0JrQntCSINCc0JjQm9CV0J3QmtCeCivQotCQ0JHQkNCa0J7QkiDQnNCb0JDQlNCV0J0KK9Ci0JDQkdCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KLQkNCR0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQkdCQ0JrQntCS0JjQiyDQmNCh0JzQldCiCivQotCQ0JHQkNCa0J7QktCY0Isg0JzQmNCg0JrQngor0KLQkNCR0J7QoNCYINCC0J7QoNCC0JUg0JTQoCDQm9CV0JrQkNCgCivQotCQ0KbQntCS0JjQiyDQktCV0KDQkAor0KLQkNCU0JjQiyDQltCY0JLQkNCdCivQotCQ0JTQmNCLINCC0J7QoNCC0JUKK9Ci0JDQlNCY0Isg0ILQntCg0ILQlQor0KLQkNCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCU0JjQiyDQkNCd0JAKK9Ci0JDQlNCY0Isg0JDQoNCh0JXQndCY0IjQlQor0KLQkNCU0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KLQkNCU0JjQiyDQlNCQ0J3QmNCb0J4KK9Ci0JDQlNCY0Isg0JTQoNCQ0JPQkNCdCivQotCQ0JTQmNCLINCU0KDQkNCT0JAKK9Ci0JDQlNCY0Isg0JTQo9Co0JDQnQor0KLQkNCU0JjQiyDQlNCj0KjQkNCdCivQotCQ0JTQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQlNCY0Isg0JXQlNCY0KLQkAor0KLQkNCU0JjQiyDQk9Ce0KDQkNCdCivQotCQ0JTQmNCLINCY0JvQmNCI0JAKK9Ci0JDQlNCY0Isg0JjQm9CY0IjQkAor0KLQkNCU0JjQiyDQmNCS0JDQnQor0KLQkNCU0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0JDQlNCY0Isg0JrQoNCQ0KHQmNCc0JjQoAor0KLQkNCU0JjQiyDQm9CQ0JfQkNCgCivQotCQ0JTQmNCLINCb0JDQl9CQ0KAKK9Ci0JDQlNCY0Isg0JzQkNCg0JjQiNCQCivQotCQ0JTQmNCLINCc0JDQoNCY0J3QmtCeCivQotCQ0JTQmNCLINCc0JDQoNCY0J3QmtCeCivQotCQ0JTQmNCLINCc0JjQiNCeCivQotCQ0JTQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQotCQ0JTQmNCLINCc0JjQm9Ce0KgKK9Ci0JDQlNCY0Isg0JzQmNCb0J7QiNCVCivQotCQ0JTQmNCLINCc0JjQm9Ce0KHQkNCSCivQotCQ0JTQmNCLINCc0JjQoNCa0J4KK9Ci0JDQlNCY0Isg0JzQmNCg0JrQngor0KLQkNCU0JjQiyDQnNCY0KDQmtCeCivQotCQ0JTQmNCLINCd0JDQlNCQCivQotCQ0JTQmNCLINCd0JXQktCV0J3QmtCQCivQotCQ0JTQmNCLINCe0JHQoNCV0J0KK9Ci0JDQlNCY0Isg0J/QldCi0JDQoAor0KLQkNCU0JjQiyDQoNCQ0JTQntCI0JUKK9Ci0JDQlNCY0Isg0KDQkNCi0JrQngor0KLQkNCU0JjQiyDQodCQ0KjQkAor0KLQkNCU0JjQiyDQodCQ0JLQkAor0KLQkNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCQ0JTQmNCLINCh0J7QpNCY0IjQkAor0KLQkNCU0JjQiyDQodCf0JDQodCe0IjQlQor0KLQkNCU0JjQiyDQodCi0J7QiNCQ0J0KK9Ci0JDQlNCY0Isg0KLQkNCd0JrQntCh0JDQktCQCivQotCQ0JTQmNCLINCj0KDQntCoCivQotCQ0JTQmNCLINCS0JXQodCV0JvQmNCdCivQotCQ0JTQmNCLINCX0J7QoNCQ0J0KK9Ci0JDQlNCY0Isg0JfQntCg0JAKK9Ci0JDQlNCY0Isg0JfQntCg0JrQkAor0KLQkNCU0JjQiNCQ0J3QntCS0JjQiyDQodCY0JvQktCV0KHQotCV0KAKK9Ci0JDQlNCY0IjQmNCdINCT0JvQmNCo0JAKK9Ci0JDQlNCY0IjQmNCdINCc0JjQm9CY0KbQkAor0KLQkNCU0JjQiNCY0J0g0JzQmNCb0J7QqAor0KLQkNCU0JjQiNCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ci0JDQlNCY0J0g0JTQo9Co0JDQndCa0JAKK9Ci0JDQlNCY0J0g0JTQo9Co0JDQnQor0KLQkNCU0JjQnSDQmNCS0JDQndCa0JAKK9Ci0JDQlNCY0J0g0JzQmNCb0J7QktCQ0J0KK9Ci0JDQlNCY0J0g0JfQm9CQ0KLQntCI0JUKK9Ci0JDQpdCY0KDQntCS0JjQiyDQldCS0JjQptCQCivQotCQ0KXQmNCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCQ0KXQmNCg0J7QktCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQotCQ0JjQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0IjQpdCc0JDQnSDQkdCV0JvQkAor0KLQkNCI0KXQnNCQ0J0g0JTQldCh0JDQndCa0JAKK9Ci0JDQiNCl0JzQkNCdINCI0J7QodCY0J8KK9Ci0JDQiNCa0J7QkiDQkNCd0ILQldCb0JrQkAor0KLQkNCI0JrQntCSINCI0J7QktCQ0J0KK9Ci0JDQiNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KLQkNCI0JrQntCSINCg0JDQlNCe0IjQmtCQCivQotCQ0IjQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQkNCI0KLQmCDQktCV0KDQntCd0JjQmtCQCivQotCQ0JrQkNCnINCo0JDQndCU0J7QoAor0KLQkNCa0JDQpyDQgtCV0KDQgtCYCivQotCQ0JrQkNCnINCC0J7QoNCC0JUKK9Ci0JDQmtCQ0Kcg0ILQo9Cb0JAKK9Ci0JDQmtCQ0Kcg0ILQo9Cg0JAKK9Ci0JDQmtCQ0Kcg0ILQo9Cg0JAKK9Ci0JDQmtCQ0Kcg0JDQndCC0JXQm9Ca0JAKK9Ci0JDQmtCQ0Kcg0JDQndCU0KDQmNCI0JAKK9Ci0JDQmtCQ0Kcg0JDQndCi0JDQmwor0KLQkNCa0JDQpyDQkNCd0KLQkNCbCivQotCQ0JrQkNCnINCQ0J3QotCj0J0KK9Ci0JDQmtCQ0Kcg0JDQndCi0KPQnQor0KLQkNCa0JDQpyDQkNCg0J/QkNCUCivQotCQ0JrQkNCnINCV0KDQndCVCivQotCQ0JrQkNCnINCV0JLQk9CV0J0KK9Ci0JDQmtCQ0Kcg0KTQldCg0JXQndCmCivQotCQ0JrQkNCnINCk0KDQkNCK0JAKK9Ci0JDQmtCQ0Kcg0JjQqNCi0JLQkNCdCivQotCQ0JrQkNCnINCY0KjQotCS0JDQnQor0KLQkNCa0JDQpyDQiNCQ0JrQmNCcCivQotCQ0JrQkNCnINCI0JDQndCe0KgKK9Ci0JDQmtCQ0Kcg0IjQkNCd0J7QqAor0KLQkNCa0JDQpyDQiNCQ0J3QntCoCivQotCQ0JrQkNCnINCI0J7QltCV0KQg0JTQmNCf0Jsg0JjQndCTCivQotCQ0JrQkNCnINCI0J7QltCV0KQKK9Ci0JDQmtCQ0Kcg0IjQntCW0JXQpAor0KLQkNCa0JDQpyDQiNCe0KHQmNCfCivQotCQ0JrQkNCnINCa0JDQoNCe0IkKK9Ci0JDQmtCQ0Kcg0JrQkNCi0JjQptCQCivQotCQ0JrQkNCnINCa0JDQotCY0KbQkAor0KLQkNCa0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQotCQ0JrQkNCnINCb0JDQiNCe0KgKK9Ci0JDQmtCQ0Kcg0JvQkNCh0JvQngor0KLQkNCa0JDQpyDQnNCQ0JPQlNCQCivQotCQ0JrQkNCnINCc0JDQotCQCivQotCQ0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQotCQ0JrQkNCnINCc0JjQm9CQ0J0KK9Ci0JDQmtCQ0Kcg0JzQmNCg0JrQngor0KLQkNCa0JDQpyDQoNCe0JbQkAor0KLQkNCa0JDQpyDQodCV0J3QkAor0KLQkNCa0JDQpyDQodCe0KTQmNCI0JAKK9Ci0JDQmtCQ0Kcg0KHQntCk0JjQiNCQCivQotCQ0JrQkNCnINCh0KLQldCS0JDQnQor0KLQkNCa0JDQpyDQotCY0JHQntCgCivQotCQ0JrQkNCnINCi0JjQkdCe0KAKK9Ci0JDQmtCQ0Kcg0JLQmNCd0JrQngor0KLQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JrQkNCnINCS0JvQkNCU0JjQnNCY0KAKK9Ci0JDQmtCQ0Kcg0JfQntCb0KLQkNCdCivQotCQ0JrQkNCn0Jgg0JDQoNCf0JDQlCDQlNCY0J/QmyDQntCV0KYKK9Ci0JDQmtCQ0KfQmCDQkNCg0J/QkNCUINCU0KAKK9Ci0JDQmtCQ0KfQmCDQk9CQ0JHQntCgCivQotCQ0JrQniDQl9CS0J7QndCY0JzQmNCgCivQotCQ0JrQntCS0JDQpiDQoNCQ0JTQmNCh0JDQkgor0KLQkNCa0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IjQlQor0KLQkNCa0J7QktCh0JrQmCDQiNCe0JLQkNCd0JrQkAor0KLQkNCb0JXQodCa0Jgg0InQo9CR0JjQptCQCivQotCQ0JvQldCh0JrQmCDQoNCY0KHQotCQCivQotCQ0JvQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCb0JjQiyDQnNCY0KLQkNCgCivQotCQ0JvQmNCI0JDQnSDQoNCe0JbQkAor0KLQkNCb0J4g0KjQkNCd0JTQntCgCivQotCQ0JvQniDQltCY0JLQmtCQCivQotCQ0JvQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCb0J4g0JHQoNCY0JPQmNCi0JAKK9Ci0JDQm9CeINCk0KDQkNCK0JAKK9Ci0JDQm9CeINCI0JXQm9CV0J3QkAor0KLQkNCb0J4g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ci0JDQm9CeINCI0J7QltCV0KQKK9Ci0JDQm9CeINCI0J7QodCY0J8KK9Ci0JDQm9CeINCI0J7QktCQ0J0KK9Ci0JDQm9CeINCi0JXQoNCV0JfQkAor0KLQkNCb0J7QqNCYINCC0J7QoNCC0JUKK9Ci0JDQm9Ce0KjQmCDQmNCg0JXQndCQCivQotCQ0JvQntCo0Jgg0JrQkNCg0J7QiQor0KLQkNCb0J7QktCY0Isg0JHQldCl0KPQlNCY0J0KK9Ci0JDQm9Ce0JLQmNCLINCl0JDQiNCg0JjQiNCQCivQotCQ0JvQntCS0JjQiyDQodCQ0JTQmNCaCivQotCQ0JzQkNCoINCC0JXQoNCCCivQotCQ0JzQkNCoINCC0KPQoNCQCivQotCQ0JzQkNCoINCY0KDQmNCd0JXQiAor0KLQkNCc0JDQqC3QiNCe0KjQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KLQkNCc0JDQqCDQidCj0JHQntCc0JjQoAor0KLQkNCc0JDQqCDQnNCQ0KDQmNCI0JAKK9Ci0JDQnNCQ0Kgg0JzQmNCl0JDQiNCb0J4KK9Ci0JDQnNCQ0Kgg0J/QkNCS0JvQlQor0KLQkNCc0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JzQkNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ci0JDQnNCQ0KjQmCDQkNCT0J7QqNCi0J7QnQor0KLQkNCc0JDQqNCYINCQ0JvQkNCU0JDQoAor0KLQkNCc0JDQqNCYINCi0JjQkdCe0KAKK9Ci0JDQnNCQ0KjQmtCe0JLQmNCLINCX0J7Qm9Ci0JDQnQor0KLQkNCc0JHQo9Cg0JDQqNCV0JIg0JLQo9Ca0JDQqNCY0J0KK9Ci0JDQnNCR0KPQoNCa0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Ci0JDQnNCY0J3Qj9CY0Isg0KfQldCU0J7QnNCY0KAKK9Ci0JDQnNCY0J3Qj9CY0Isg0JDQndCC0JXQm9Ca0J4KK9Ci0JDQnNCY0J3Qj9CY0Isg0JrQntCS0JjQndCa0JAKK9Ci0JDQnNCY0J3Qj9CY0Isg0KDQmNCh0KLQkAor0KLQkNCc0JjQndCP0JjQiNCQINCU0JDQndCY0JvQngor0KLQkNCc0JjQndCP0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQotCQ0JzQmNCd0I/QmNCI0JAg0JzQmNCg0JrQngor0KLQkNCc0JjQndCP0JjQiNCQINCS0JvQkNCU0J4KK9Ci0JDQndCn0JjQmiDQqNCQ0J3QlNCe0KAKK9Ci0JDQndCn0JjQmiDQkNCb0JHQldCg0KIKK9Ci0JDQndCn0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCd0KfQmNCaINCV0JzQmNCbCivQotCQ0J3Qp9CY0Jog0JjQkdCe0InQkAor0KLQkNCd0KfQmNCaINCg0J7Ql9CQCivQotCQ0J3QkNCm0JrQntCSINCd0J7QktCQ0JoKK9Ci0JDQndCQ0KbQmtCe0JLQmNCLINCQ0KbQngor0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0JDQndCQ0KHQmNCLINCI0J7QktCQ0J0KK9Ci0JDQndCQ0KHQmNCLINCe0JvQmNCS0JXQoNCQCivQotCQ0J3QkNCh0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KLQkNCd0JDQodCY0Isg0KDQo9CW0JAKK9Ci0JDQndCQ0KHQmNCLINCh0J/QkNCh0J7QiNCVCivQotCQ0J3QkNCh0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQotCQ0J3QkNCh0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCW0JDQoNCa0J4KK9Ci0JDQndCQ0KHQmNCI0JXQktCY0Ist0KTQmNCb0JjQn9Ce0JIg0JjQktCQ0J3QmtCQCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0JDQndCQ0KHQmNCI0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQotCQ0J3QkNCh0JjQiNCY0J0g0JvQo9Ca0JAKK9Ci0JDQndCQ0KHQmNCI0JjQnSDQn9CV0KLQkNCgCivQotCQ0J3QkNCh0JjQiNCY0J0g0JLQldCg0JAKK9Ci0JDQndCQ0KHQmNCdINCU0JDQndCY0KHQm9CQ0JLQkAor0KLQkNCd0JDQodCY0J0g0IjQntCS0JDQnQor0KLQkNCd0JDQodCY0J0g0InQo9CR0JjQptCQCivQotCQ0J3QkNCh0JjQnSDQndCV0KHQotCe0KAKK9Ci0JDQndCQ0KHQmNCdINCh0KLQldCS0JDQnQor0KLQkNCd0JDQodCY0J0g0KHQotCV0JLQkNCdCivQotCQ0J3QkNCh0JjQnSDQodCi0JXQktCQ0J0KK9Ci0JDQndCQ0KHQmNCdINCh0KLQldCS0JDQnQor0KLQkNCd0JDQodCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQk9CY0J3QkAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQnNCY0JvQlQor0KLQkNCd0JDQodCa0J7QktCY0Isg0J3QntCS0JDQmgor0KLQkNCd0JDQodCa0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQktCY0KLQmtCeCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JLQo9Ca0JDQnQor0KLQkNCd0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQotCQ0J3QldCSINCi0KDQkNCI0JrQngor0KLQkNCd0JPQmyDQmNCS0JDQnQor0KLQkNCd0JPQmyDQntCb0JPQkAor0KLQkNCK0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KLQkNCK0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ci0JDQitCT0JAg0JPQntCg0JDQnQor0KLQkNCK0JPQkCDQidCj0JHQntCc0JjQoAor0KLQkNCK0JPQkCDQnNCQ0KDQmNCI0JAKK9Ci0JDQitCT0JAg0KDQkNCI0JrQngor0KLQkNCK0JPQkCDQotCQ0J3QlQor0KLQkNCd0JrQkCDQmNCo0KLQktCQ0J0KK9Ci0JDQndCa0J7QodCY0Isg0JHQntCT0JTQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCR0J7QiNCQ0J3QkAor0KLQkNCd0JrQntCh0JjQiyDQkdCg0JDQndCa0J4KK9Ci0JDQndCa0J7QodCY0Isg0IjQntCS0JDQnQor0KLQkNCd0JrQntCh0JjQiyDQmtCj0JfQnNCQ0J0KK9Ci0JDQndCa0J7QodCY0Isg0JzQkNCg0JrQngor0KLQkNCd0JrQntCh0JjQiyDQnNCY0KXQkNCI0JvQngor0KLQkNCd0JrQntCh0JjQiyDQnNCY0JvQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCc0JjQm9CV0J3QkAor0KLQkNCd0JrQntCh0JjQiyDQnNCY0JvQmNCm0JAKK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCb0JjQptCQCivQotCQ0J3QmtCe0KHQmNCLINCd0JjQmtCe0JvQkAor0KLQkNCd0JrQntCh0JjQiyDQoNCQ0JfQmNCI0JAKK9Ci0JDQndCa0J7QodCY0Isg0KHQotCV0JLQkNCdCivQotCQ0J3QmtCe0JLQmNCLINCh0JDQm9Ca0J4KK9Ci0JDQndCe0JLQmNCLINCT0JDQktCg0JjQm9CeINCc0KAKK9Ci0JDQndCe0JLQmNCLINCI0J7QktCeCivQotCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCQ0J3QotCY0Isg0KHQm9CQ0JLQmtCeCivQotCQ0J3Qo9Cg0I/QmNCLINCW0JjQktCe0IjQmNCdCivQotCQ0J3Qo9Cg0I/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0J3Qo9Cg0I/QmNCLINCU0JDQoNCY0J3QmtCQCivQotCQ0J3Qo9Cg0I/QmNCLINCT0J7QiNCa0J4KK9Ci0JDQndCj0KDQj9CY0Isg0IjQntCS0JDQnQor0KLQkNCd0KPQoNCP0JjQiyDQnNCY0JvQmNCm0JAKK9Ci0JDQndCj0KDQj9CY0Isg0JzQmNCg0JrQngor0KLQkNCd0KPQoNCP0JjQiyDQodCg0JHQntCc0JjQoAor0KLQkNCd0KPQoNCP0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0KLQkNCd0KPQoNCP0JjQiyDQodCS0JXQotCe0JfQkNCgCivQotCQ0J3Qo9Cg0I/QmNCLINCX0J7QoNCQCivQotCQ0J/QkNCYINCg0KPQlNCe0JvQpAor0KLQkNCf0JDQiCDQk9CQ0JHQoNCY0IjQldCbCivQotCQ0J/QkNCIINCh0KLQkNCc0JXQndCa0JAKK9Ci0JDQn9CQ0JvQkNCT0JAg0IjQntCdCivQotCQ0J/QkNCb0JDQk9CQINCi0J7QlNCe0KAKK9Ci0JDQn9CQ0JLQmNCn0JrQmCDQp9CV0JTQntCc0JjQoAor0KLQkNCf0JDQktCY0KfQmtCYINCR0J7QoNCY0JLQntCICivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KTQldCe0JTQntCgCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0JzQm9CQ0JTQldCdCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9Ci0JDQn9CQ0JLQmNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ci0JDQn9CQ0JLQmNCm0JAg0KfQldCU0J7QnNCY0KAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JHQntCg0JrQkAor0KLQkNCf0JDQktCY0KbQkCDQkdCg0JDQndCa0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JTQntCR0KDQmNCb0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0IjQldCb0JjQptCQCivQotCQ0J/QkNCS0JjQptCQINCJ0KPQkdCe0JzQmNCgCivQotCQ0J/QkNCS0JjQptCQINCc0JjQm9Ce0KDQkNCUCivQotCQ0J/QkNCS0JjQptCQINCc0JjQotCQCivQotCQ0J/QkNCS0JjQptCQINCg0JDQlNCe0KHQm9CQ0JLQkAor0KLQkNCf0JDQktCY0KbQkCDQoNCQ0IjQmtCeCivQotCQ0J/QkNCS0JjQptCQINCh0JjQnNCQCivQotCQ0J/QkNCS0JjQptCQINCh0KLQldCS0JDQnQor0KLQkNCf0JDQktCY0KbQkCDQotCY0KXQntCc0JjQoAor0KLQkNCf0JDQktCY0KbQkCDQktCV0KDQmNCm0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JLQldCg0JjQptCQCivQotCQ0KDQkNCa0KfQmNCI0JAg0ILQntCg0ILQlQor0KLQkNCg0JDQmtCn0JjQiNCQLdCc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCi0JrQkAor0KLQkNCg0JDQndCP0JAg0JjQktCQ0J0KK9Ci0JDQoNCQ0J3Qj9CQINCY0JLQkNCdCivQotCQ0KDQkNCh0JXQndCa0J4g0JHQoNCQ0KLQmNCh0JvQkNCSINCU0KAKK9Ci0JDQoNCR0KPQmiDQnNCY0KDQmtCeCivQotCQ0KDQkdCj0Jog0J3QmNCa0J7Qm9CQCivQotCQ0KDQldCS0KHQmtCYINCL0JDQnNCY0JsKK9Ci0JDQoNCT0KPQqCDQnNCQ0KLQmNCI0JAKK9Ci0JDQoNCYINCY0JvQntCd0JAKK9Ci0JDQoNCI0JDQnSDQlNCV0JbQlQor0KLQkNCg0IjQkNCdINCT0JDQkdCe0KAKK9Ci0JDQoNCI0JDQnSDQmNCc0KDQlQor0KLQkNCg0IjQkNCdINCa0JDQoNCb0J4KK9Ci0JDQoNCI0JDQnSDQotCY0JHQntCgCivQotCQ0KDQmtCeINCI0JDQndCe0KgKK9Ci0JDQoNCb0JDQiyDQn9CV0KDQmNCm0JAKK9Ci0JDQoNCb0JUg0JjQm9CY0IjQkAor0KLQkNCg0JvQlSDQmNCS0JDQnQor0KLQkNCg0J3QntCm0JrQmCDQkNCc0JDQm9CY0IjQkCDQlNCgCivQotCQ0KDQndCe0KbQmtCYINCf0JDQmwor0KLQkNCh0JXQkiDQkdCb0JDQltCeCivQotCQ0KHQldCS0KHQmtCYINCY0JvQngor0KLQkNCh0JXQktCh0JrQmCDQiNCe0KDQlNCQ0J0KK9Ci0JDQodCY0Isg0JbQkNCa0JvQmNCd0JAKK9Ci0JDQodCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ci0JDQodCY0Isg0ILQntCg0ILQlQor0KLQkNCh0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQotCQ0KHQmNCLINCQ0J3QkAor0KLQkNCh0JjQiyDQkdCb0JDQk9Ce0IjQlSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KLQkNCh0JjQiyDQkdCb0JDQk9Ce0IjQlQor0KLQkNCh0JjQiyDQkdCe0JbQmNCU0JDQoCDQnNCgINCf0KUKK9Ci0JDQodCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQkNCh0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQotCQ0KHQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ci0JDQodCY0Isg0JTQldCh0JDQndCa0JAKK9Ci0JDQodCY0Isg0JTQntCR0KDQmNCS0J7QiAor0KLQkNCh0JjQiyDQmNCS0JDQnQor0KLQkNCh0JjQiyDQidCj0JHQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0KLQkNCh0JjQiyDQnNCY0JvQntCoINCU0KAg0JvQldCa0JDQoAor0KLQkNCh0JjQiyDQnNCY0JvQntCoINCU0KAKK9Ci0JDQodCY0Isg0JzQmNCb0J7QqCDQlNCgCivQotCQ0KHQmNCLINCc0JjQm9Ce0KgKK9Ci0JDQodCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQkNCh0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCQ0KHQmNCLINCd0JXQktCV0J3QmtCQCivQotCQ0KHQmNCLINCg0JDQlNCVCivQotCQ0KHQmNCLINCh0JjQndCY0KjQkAor0KLQkNCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCQ0KHQmNCLINCi0KDQmNCk0KPQnQor0KLQkNCh0JjQiyDQo9Cg0J7QqAor0KLQkNCh0JjQiyDQktCV0KDQkAor0KLQkNCh0JjQiyDQktCb0JDQlNCQ0J3QmtCQCivQotCQ0KHQmNCLINCX0J7QoNCQ0J0KK9Ci0JDQodCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQkNCh0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCQ0KHQmtCe0JLQmNCLINCf0JXQoNCQCivQotCQ0KHQntCS0JDQpiDQlNCe0JHQoNCY0JvQkAor0KLQkNCh0J7QktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Ci0JDQotCQ0Jgg0JXQnNCY0JvQmNCI0JAKK9Ci0JDQotCQ0Jgg0JjQktCQ0J0KK9Ci0JDQotCQ0Jgg0JrQkNCg0J7QiQor0KLQkNCi0JDQmCDQnNCQ0KDQk9CY0KIKK9Ci0JDQotCQ0Jgg0KLQmNCR0J7QoAor0KLQkNCi0JDQm9Ce0JLQmNCLINCW0JjQktCa0J4KK9Ci0JDQotCQ0JvQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQotCQ0KLQkNCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCQ0KLQkNCb0J7QktCY0Isg0JjQm9CY0IjQkAor0KLQkNCi0JDQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQm9CQ0JfQngor0KLQkNCi0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0JDQotCQ0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQkNCb0J7QktCY0Isg0J/QldCi0JDQoAor0KLQkNCi0JDQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQotCQ0KLQkNCgINCU0KPQqNCQ0J0KK9Ci0JDQotCQ0KAg0JTQo9Co0JDQnQor0KLQkNCi0JDQoNCV0JLQmNCLINCR0JvQkNCW0JAKK9Ci0JDQotCQ0KDQmNCdINCg0KPQltCY0KbQkAor0KLQkNCi0JDQoNCh0JrQmCDQlNCj0KjQkNCdCivQotCQ0KLQkNCg0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQotCQ0KLQkNCg0KHQmtCYINCd0JDQlNCQCivQotCQ0KLQkNCg0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KLQkNCi0JDQoNCh0JrQmCDQktCb0JDQlNCV0KLQkAor0KLQkNCi0JjQiyDQltCQ0KDQmtCeCivQotCQ0KLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Ci0JDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQotCY0Isg0JDQndCa0JjQptCQCivQotCQ0KLQmNCLINCR0KDQkNCd0JrQngor0KLQkNCi0JjQiyDQlNCQ0J3QkAor0KLQkNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JDQotCY0Isg0JTQoNCQ0JPQntCoCivQotCQ0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0JDQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KLQkNCi0JjQiyDQlNCj0KjQkNCdCivQotCQ0KLQmNCLINCV0JzQmNCbINCU0KAKK9Ci0JDQotCY0Isg0JXQktCY0KbQkAor0KLQkNCi0JjQiyDQmNCb0JjQiNCQCivQotCQ0KLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQotCY0Isg0JjQm9Ce0J3QmtCQCivQotCQ0KLQmNCLINCI0JXQm9CV0J3QkAor0KLQkNCi0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KLQkNCi0JjQiyDQiNCe0JLQkNCdCivQotCQ0KLQmNCLINCb0JDQl9CQ0KAKK9Ci0JDQotCY0Isg0JzQkNCg0JAKK9Ci0JDQotCY0Isg0JzQkNCg0JjQiNCQCivQotCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCi0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQmNCLINCc0JjQm9CQ0J0KK9Ci0JDQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Ci0JDQotCY0Isg0JzQmNCb0JrQkAor0KLQkNCi0JjQiyDQnNCY0JvQntCoCivQotCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCQ0KLQmNCLINCc0JjQm9Ce0KHQkNCSCivQotCQ0KLQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0KLQkNCi0JjQiyDQndCV0JTQldCJ0JrQngor0KLQkNCi0JjQiyDQn9CQ0IjQkAor0KLQkNCi0JjQiyDQn9CV0KDQodCY0JTQkAor0KLQkNCi0JjQiyDQn9CV0KLQkNCgCivQotCQ0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQotCQ0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0JDQotCY0Isg0KHQm9CQ0JLQmtCeCivQotCQ0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JDQotCY0Isg0KHQoNCR0JjQodCb0JDQkgor0KLQkNCi0JjQiyDQodCi0JXQktCQ0J0KK9Ci0JDQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQkNCi0JjQiyDQl9Cb0JDQotCY0KbQkAor0KLQkNCi0J7QnNCY0KAg0JzQkNCg0JrQngor0KLQkNCi0J7QnNCY0KDQntCSINCI0J7QktCQ0J0KK9Ci0JDQotCe0JzQmNCg0J7QkiDQnNCQ0KDQmNCI0JAKK9Ci0JDQotCe0JzQmNCg0J7QkiDQnNCQ0KDQmNCI0JAKK9Ci0JDQotCe0JzQmNCg0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KLQkNCi0J7QnNCY0KDQntCSINCX0J7QoNCQ0J0KK9Ci0JDQotCe0JzQmNCg0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQotCQ0KPQqNCQ0J0g0JzQkNCg0JrQngor0KLQkNCj0KjQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0KLQkNCj0KjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Ci0JDQo9CR0J3QldCgINCa0JDQotCY0KbQkAor0KLQldCo0JDQndCe0JIg0JzQmNCb0JDQnQor0KLQldCo0JDQndCe0JLQmNCLINCn0JXQlNCeCivQotCV0KjQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0KLQldCo0JDQndCe0JLQmNCLINCC0J7QmtCeCivQotCV0KjQkNCd0J7QktCY0Isg0KbQktCY0IjQldCi0JAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQotCV0KjQkNCd0J7QktCY0Isg0IjQldCb0JAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQotCV0KjQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0KLQldCo0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQotCV0KjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KLQldCo0JDQndCe0JLQmNCLINCg0JDQqNCa0J4KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQotCV0KjQkNCd0J7QktCY0Isg0KLQntCc0JAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQktCe0IjQkAor0KLQldCo0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0JXQqNCV0IrQmCDQldCU0KPQkNCg0JQKK9Ci0JXQqNCY0Isg0ILQntCg0ILQlQor0KLQldCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCo0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KLQldCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JXQqNCY0Isg0JTQo9Co0JDQnQor0KLQldCo0JjQiyDQldCg0JbQldCR0JXQogor0KLQldCo0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQotCV0KjQmNCLINCY0JvQmNCI0JAKK9Ci0JXQqNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQldCo0JjQiyDQidCj0JHQntCc0JjQoAor0KLQldCo0JjQiyDQm9Cj0JrQkAor0KLQldCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0JXQqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0JXQqNCY0Isg0JzQmNCb0JUKK9Ci0JXQqNCY0Isg0JzQmNCb0JUKK9Ci0JXQqNCY0Isg0JzQmNCb0JjQptCQCivQotCV0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCV0KjQmNCLINCc0JjQoNCa0J4KK9Ci0JXQqNCY0Isg0J/QldCg0KHQkAor0KLQldCo0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQotCV0KjQmNCLINCh0JvQkNCS0JrQkAor0KLQldCo0JjQiyDQodCb0JDQktCe0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0KLQldCo0JjQiyDQodCe0KTQmNCI0JAKK9Ci0JXQqNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Ci0JXQqNCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Ci0JXQqNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KLQldCo0JjQiyDQl9CU0KDQkNCS0JrQngor0KLQldCo0JjQnSDQiNCQ0KHQnNCY0J3QmtCQCivQotCV0KjQmNCdINCJ0KPQkdCY0J3QmtCQCivQotCV0KjQmNCdINCc0JjQm9Ce0KgKK9Ci0JXQqNCY0J0g0KHQotCV0JLQmtCQCivQotCV0KjQmNCdINCS0JXQodCd0JAKK9Ci0JXQqNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCV0KjQntCS0JjQiyDQidCj0JHQngor0KLQldCo0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0JXQqNCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQotCV0KjQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQldCo0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0KLQldCW0JvQkCDQkNCd0JTQoNCY0IjQkAor0KLQldCU0JjQiyDQltCY0JLQmtCeCivQotCV0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQldCU0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQldCU0JjQiyDQndCV0JLQldCd0JrQkAor0KLQldCT0JXQm9Ci0JjQiNCQINCR0J7Qk9CU0JDQnQor0KLQldCT0JXQm9Ci0JjQiNCQINCU0KPQqNCQ0J0KK9Ci0JXQk9CV0JvQotCY0IjQkCDQlNCj0KjQkNCdCivQotCV0JPQldCb0KLQmNCI0JAg0JjQm9Ce0J3QmtCQCivQotCV0JPQldCb0KLQmNCI0JAg0JzQkNCT0JTQkNCb0JXQndCQCivQotCV0JPQldCb0KLQmNCI0JAg0JzQmNCb0JDQnQor0KLQldCT0JXQm9Ci0JjQiNCQINCc0JjQotCg0JAKK9Ci0JXQk9CV0JvQotCY0IjQkCDQodCi0JDQndCa0J4KK9Ci0JXQk9CV0JvQotCY0IjQkCDQktCb0JDQiNCa0J4KK9Ci0JXQk9Cb0JDQqCDQkNCd0JAKK9Ci0JXQk9Cb0JDQqCDQm9CY0JTQmNCI0JAKK9Ci0JXQk9Cb0JDQqCDQndCQ0JTQkAor0KLQldCT0JvQkNCo0Jgg0JjQqNCi0JLQkNCdCivQotCV0JPQm9CQ0KjQmCDQiNCe0JbQldCkCivQotCV0IjQmNCLINCR0KDQkNCd0JrQngor0KLQldCI0JjQiy3QmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0KLQldCI0JjQiyDQm9CQ0JfQkNCgCivQotCV0IjQmNCLINCc0JjQm9CY0IjQkAor0KLQldCa0JjQiyDQkdCe0KDQngor0KLQldCa0JjQiyDQnNCY0JvQkNCdCivQotCV0JrQmNCLINCc0JjQm9Ca0JAKK9Ci0JXQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQmtCY0Isg0JzQmNCg0JrQngor0KLQldCa0JjQiyDQodCb0JDQktCY0KbQkAor0KLQldCa0JjQiyDQodCb0JDQktCa0J4KK9Ci0JXQmyDQpNCV0KDQldCd0KYKK9Ci0JXQmyDQiNCQ0J3QntCoCivQotCV0Jsg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ci0JXQmyDQiNCV0J3QlQor0KLQldCbINCf0JXQotCQ0KAKK9Ci0JXQmyDQktCY0JvQnNCe0KgKK9Ci0JXQm9CQ0KDQntCSINCQ0J3QmtCQCivQotCV0JvQkNCg0J7QkiDQiNCe0JLQkNCdCivQotCV0JvQkNCg0J7QkiDQnNCY0JvQntCoCivQotCV0JvQkNCg0J7QkiDQndCQ0JTQkAor0KLQldCb0JDQoNCe0JIg0J/QldCg0JAKK9Ci0JXQm9CQ0KDQntCSINCh0JjQnNCQCivQotCV0JvQkNCg0J7QkiDQodCY0J3QmNCo0JAKK9Ci0JXQm9CQ0KDQntCSINCh0JjQndCY0KjQkAor0KLQldCb0JDQoNCe0JIg0KHQnNCY0InQkNCd0JAKK9Ci0JXQm9CQ0KDQntCSINCS0J7QiNCY0J0KK9Ci0JXQm9CQ0KDQntCSINCX0J7QoNCQCivQotCV0JvQkNCg0J7QktCY0Isg0JHQntCg0JjQoQor0KLQldCb0JDQoNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQldCb0JDQoNCe0JLQmNCLINCY0JLQkNCd0JAKK9Ci0JXQm9CQ0KDQntCS0JjQiyDQmNCS0JDQnQor0KLQldCb0JDQoNCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQotCV0JvQkNCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQldCb0JDQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KLQldCb0JDQoNCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQotCV0JvQldCa0Jgg0KjQkNCd0JTQntCgCivQotCV0JvQldCa0Jgg0JXQoNCY0JrQkAor0KLQldCb0JXQmtCYINCh0KLQldCS0JDQnQor0KLQldCb0JXQmtCYINCS0JXQoNCQCivQotCV0JzQldCg0JjQndCQ0KYg0JTQkNCg0JAKK9Ci0JXQnNCV0KDQmNCd0JDQpiDQnNCY0JvQldCS0JAKK9Ci0JXQnNCV0KDQmNCd0JDQpiDQnNCY0J7QlNCg0JDQkwor0KLQldCc0JXQoNCY0J3QodCa0Jgg0IjQldCb0JjQptCQCivQotCV0JzQldCg0JjQndCh0JrQmCDQiNCe0JLQkNCdCivQotCV0JzQldCg0JjQndCh0JrQmCDQndCQ0JTQkAor0KLQldCc0KPQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQldCd0KbQlSDQkNCb0JHQmNCdCivQotCV0IrQmCDQgtCe0KDQgtCVCivQotCV0IrQmCDQiNCe0KHQmNCfCivQotCV0IrQmCDQiNCe0KHQmNCfCivQotCV0IrQmCDQiNCe0KHQmNCfCivQotCV0IrQmCDQmtCh0JXQndCY0IjQkAor0KLQldCK0Jgg0JzQkNCg0JjQiNCQCivQotCV0IrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ci0JXQitCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0JXQitCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCQ0J3QlNCg0JXQiNCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0IjQntCS0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0IjQntCS0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0InQo9CR0J4KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCV0J7QlNCe0KDQntCS0JjQiyDQndCQ0JTQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0J/QkNCI0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCf0JXQoNCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQn9CV0KDQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0KDQkNCi0JjQnNCY0KAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCh0JDQktCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQodCY0JzQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQotCV0J7QlNCe0KHQmNCLINCc0JjQoNCI0JDQndCQCivQotCV0J7QlNCe0KHQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCV0J7QlNCe0KHQmNCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQotCV0J7QlNCe0KHQmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0KLQldCe0KTQkNCd0J7QkiDQgtCj0KDQgtCY0KbQkAor0KLQldCe0KTQkNCd0J7QkiDQkdCe0KjQmtCeCivQotCV0J7QpNCQ0J3QntCSINCU0J7QkdCg0JjQndCa0JAKK9Ci0JXQntCk0JDQndCe0JIg0JTQo9Co0JDQnQor0KLQldCe0KTQkNCd0J7QkiDQlNCj0KjQmtCeCivQotCV0J7QpNCQ0J3QntCSINCc0JDQoNCY0J3QmtCeCivQotCV0J7QpNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ci0JXQntCk0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9Ci0JXQntCk0JDQndCe0JIg0JzQmNCb0J7QqAor0KLQldCe0KTQkNCd0J7QkiDQnNCY0JvQntCoCivQotCV0J7QpNCQ0J3QntCSINCe0JvQmNCS0JXQoNCQCivQotCV0J7QpNCQ0J3QntCSINCX0J7QoNCQCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQqNCi0JXQpNCQ0J3QmNCI0JAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JDQndCQCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQkNCg0JDQndCC0JXQmwor0KLQldCe0KTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0JXQntCk0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KLQldCe0KTQkNCd0J7QktCY0Isg0JTQntCd0JrQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQldCe0KTQkNCd0J7QktCY0Isg0JzQkNCg0JrQniDQlNCgINCS0JXQotCV0KDQmNCd0JUKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQotCQ0JTQmNCI0JAKK9Ci0JXQntCk0JjQm9Ce0JLQmNCLINCC0KPQoNCC0JjQptCQCivQotCV0J7QpNCY0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCe0KTQmNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQotCV0J7QpNCY0JvQntCS0JjQiyDQk9Ce0KDQkNCdCivQotCV0J7QpNCY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQldCe0KTQmNCb0J7QktCY0Isg0KHQkNCS0J4KK9Ci0JXQntCS0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQotCV0J/QqNCQINCd0JXQkdCe0IjQqNCQCivQotCV0J/QqNCQINCh0JjQndCY0KjQkAor0KLQldCf0KjQmNCLINCI0J7QktCY0KbQkAor0KLQldCf0KjQmNCLINCc0JjQntCU0KDQkNCTCivQotCV0J/QqNCY0Isg0KDQkNCU0JUKK9Ci0JXQn9CQ0KfQldCS0JjQiyDQkNCd0JTQoNCV0IjQkAor0KLQldCf0JDQktCn0JXQktCY0Isg0JbQkNCd0JrQkAor0KLQldCf0JDQktCn0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCT0J7QiNCa0J4KK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQotCV0J/QkNCS0KfQldCS0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCg0JDQotCa0J4KK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9Ci0JXQn9CY0Isg0KTQoNCQ0J3QptCY0JrQkAor0KLQldCf0JjQiyDQk9Ce0KDQkNCdCivQotCV0J/QmNCLINCI0J7QktCQ0J0KK9Ci0JXQn9CY0Isg0JzQmNCb0JDQnQor0KLQldCf0JjQiyDQnNCY0JvQntCoCivQotCV0J/QmNCLINCc0JjQm9Ce0JLQkNCdCivQotCV0J/QmNCLINCd0JXQlNCV0InQmtCeCivQotCV0J/QmNCLINCe0JHQoNCV0J3QmtCeCivQotCV0J/QmNCLINCg0JDQlNCe0JLQkNCdCivQotCV0J/QmNCLINCg0JDQiNCa0J4KK9Ci0JXQn9CY0Isg0KHQndCV0JbQkNCd0JAKK9Ci0JXQn9CY0Isg0JLQmNCU0JAKK9Ci0JXQn9CY0Isg0JfQntCg0JDQnQor0KLQldCg0JXQp9CV0Jog0JDQndCC0JXQm9Ca0JAKK9Ci0JXQoNCV0KfQmNCLINCb0JDQiNCe0KgKK9Ci0JXQoNCV0KfQmNCaINCf0JDQmwor0KLQldCg0JXQptCa0Jgg0JjQqNCi0JLQkNCdCivQotCV0KDQldCaINCC0KPQm9CQCivQotCV0KDQldCaINCQ0J3QlNCg0JjQiNCQCivQotCV0KDQldCaINCk0JXQoNCV0J3Qpgor0KLQldCg0JXQmiDQmNCo0KLQktCQ0J0KK9Ci0JXQoNCV0Jog0JjQnNCg0JUg0JTQmNCf0Jsg0JjQndCTCivQotCV0KDQldCaINCY0KDQldCd0JAKK9Ci0JXQoNCV0Jog0IjQkNCd0J7QqAor0KLQldCg0JXQmiDQmtCQ0KLQkNCb0JjQnQor0KLQldCg0JXQmiDQm9CQ0KHQm9CeCivQotCV0KDQldCaINCJ0KPQlNCV0JLQmNCiINCU0KAg0JjQndCTCivQotCV0KDQldCaINCe0JvQk9CQCivQotCV0KDQldCaINCi0JjQkdCe0KAKK9Ci0JXQoNCV0JfQmNCI0JAg0JHQntCh0JjQidCa0JAKK9Ci0JXQoNCl0JXQqCDQqNCQ0J3QlNCe0KAKK9Ci0JXQoNCI0JXQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCg0IjQldCaLdCa0J7QktCQ0Kcg0JrQkNCg0JvQngor0KLQldCg0IjQldCaINCc0JjQpdCQ0IjQm9CeCivQotCV0KDQiNCV0Jog0JLQmNCa0KLQntCg0JjQiNCQCivQotCV0KDQmtCV0Ikg0JDQndCQCivQotCV0KDQidCj0Jog0JjQktCQ0J0KK9Ci0JXQoNCd0J7QktCQ0KYg0JjQqNCi0JLQkNCdCivQotCV0KDQl9CY0Isg0JbQmNCS0JrQngor0KLQldCg0JfQmNCLINCC0J7QoNCC0JUKK9Ci0JXQoNCX0JjQiyDQgtCj0KDQngor0KLQldCg0JfQmNCLINCR0JXQm9CQCivQotCV0KDQl9CY0Isg0JHQmNCh0JXQoNCa0JAKK9Ci0JXQoNCX0JjQiyDQkdCe0JPQntCJ0KPQkQor0KLQldCg0JfQmNCLINCR0KDQkNCd0JrQkAor0KLQldCg0JfQmNCLINCU0KDQkNCT0JDQnQor0KLQldCg0JfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ci0JXQoNCX0JjQiyDQlNCj0KjQkNCdCivQotCV0KDQl9CY0Isg0JTQo9Co0JDQnQor0KLQldCg0JfQmNCLINCk0KDQkNCd0KbQkAor0KLQldCg0JfQmNCLINCI0JXQktCg0JXQnAor0KLQldCg0JfQmNCLINCI0J7QktCQ0J0KK9Ci0JXQoNCX0JjQiyDQnNCY0JvQkNCdCivQotCV0KDQl9CY0Isg0JzQmNCb0JDQnQor0KLQldCg0JfQmNCLINCc0JjQm9CV0J3QkAor0KLQldCg0JfQmNCLINCc0JjQm9CV0J3QmtCeCivQotCV0KDQl9CY0Isg0JzQmNCb0JjQptCQCivQotCV0KDQl9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQoNCX0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQldCg0JfQmNCLINCd0JjQmtCe0JvQkAor0KLQldCg0JfQmNCLINCK0JXQk9Ce0KHQkNCS0JAKK9Ci0JXQoNCX0JjQiyDQn9CQ0JLQm9CVCivQotCV0KDQl9CY0Isg0J/QldCg0JrQkAor0KLQldCg0JfQmNCLINCf0JXQotCQ0KAg0JTQoAor0KLQldCg0JfQmNCLINCf0JXQotCQ0KAKK9Ci0JXQoNCX0JjQiyDQn9CV0KLQkNCgCivQotCV0KDQl9CY0Isg0KDQldCJ0JAKK9Ci0JXQoNCX0JjQiyDQodCQ0JLQkAor0KLQldCg0JfQmNCLINCh0JvQkNCS0JrQngor0KLQldCg0JfQmNCLINCh0JvQkNCS0JrQngor0KLQldCg0JfQmNCLINCh0JvQkNCS0J3QkAor0KLQldCg0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JXQoNCX0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQotCV0KDQl9CY0Isg0KHQotCQ0J3QmtCQCivQotCV0KDQl9CY0Isg0KLQldCe0JTQntCgCivQotCV0KDQl9CY0Isg0KLQldCg0JXQl9CQCivQotCV0KDQl9CY0Isg0KLQoNCY0KTQo9CdCivQotCV0KDQl9CY0Isg0JLQldCg0JAKK9Ci0JXQoNCX0JjQiyDQktCb0JDQlNCQ0J0KK9Ci0JXQoNCX0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQotCV0KDQl9CY0IjQkCDQnNCY0KLQkNCgCivQotCV0KDQl9CY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCV0KDQl9CY0J0g0JHQoNCQ0J3QmtCeCivQotCV0KDQl9CY0J0g0JTQoNCQ0JPQntCh0JvQkNCSCivQotCV0KDQl9CY0J0g0JTQo9Co0JDQnQor0KLQldCg0JfQmNCdINCI0J7QktCQ0J3QmtCQCivQotCV0KDQl9CY0J0g0IjQntCS0JDQndCa0JAKK9Ci0JXQoNCX0JjQnSDQidCj0JHQmNCm0JAKK9Ci0JXQoNCX0JjQnSDQnNCY0JvQkNCdCivQotCV0KDQl9CY0J0g0JzQmNCb0JjQndCQCivQotCV0KDQl9CY0J0g0JzQmNCg0IjQkNCd0JAKK9Ci0JXQoNCX0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0JXQoNCX0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0JXQoNCX0JjQnSDQnNCY0KLQkAor0KLQldCg0JfQmNCdINCd0JXQktCV0J3QmtCQCivQotCV0KDQl9CY0J0g0KDQkNCU0JjQktCe0IgKK9Ci0JXQoNCX0JjQnSDQoNCQ0JTQnNCY0JvQkAor0KLQldCg0JfQmNCdINCg0JjQodCi0JAKK9Ci0JXQoNCX0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQotCV0KDQl9CY0J0g0KHQotCQ0J3QmtCeCivQotCV0KDQl9CY0J0g0KLQntCo0JAKK9Ci0JXQoNCX0JjQnSDQktCQ0KHQkAor0KLQldCg0JfQmNCdINCS0JXQm9CY0JzQmNCgCivQotCV0KDQl9CY0J0g0JLQldCJ0JrQngor0KLQldCg0JfQmNCdINCS0JXQoNCY0KbQkAor0KLQldCg0JfQmNCdINCS0JXQodCV0JvQmNCdCivQotCV0KDQl9CY0J0g0JLQntCI0JjQodCb0JDQkgor0KLQldCh0JvQkCDQqNCf0JjQoNCeCivQotCV0KHQm9CQINCR0KDQkNCd0JrQngor0KLQldCh0JvQkCDQlNCg0JDQk9CQ0J0KK9Ci0JXQodCb0JAg0JzQmNCg0JAKK9Ci0JXQodCb0JjQiyDQgtCe0KDQgtCVCivQotCV0KHQm9CY0Isg0JzQkNCa0KHQmNCcCivQotCV0KHQm9CY0Isg0JzQkNCg0JrQngor0KLQldCh0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0JXQodCi0JjQnSDQnNCQ0KDQmNCI0JAKK9Ci0JjQqNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQmNCo0JjQiyDQnNCY0JvQldCd0JAKK9Ci0JjQqNCc0JAg0KfQldCU0J7QnNCY0KAKK9Ci0JjQqNCc0JAg0JbQldCJ0JrQngor0KLQmNCo0JzQkCDQgtCj0KDQmNCm0JAKK9Ci0JjQqNCc0JAg0JDQndCU0KDQldCICivQotCY0KjQnNCQINCR0KDQkNCd0JrQngor0KLQmNCo0JzQkCDQlNCj0KjQkNCdCivQotCY0KjQnNCQINCU0KPQqNCQ0J0KK9Ci0JjQqNCc0JAg0JjQm9CY0IjQkAor0KLQmNCo0JzQkCDQiNCe0JLQkNCdCivQotCY0KjQnNCQINCb0JDQl9CQ0KAKK9Ci0JjQqNCc0JAg0InQmNCJ0JDQndCQCivQotCY0KjQnNCQINCc0JDQoNCY0IjQkAor0KLQmNCo0JzQkCDQnNCQ0KDQotCQCivQotCY0KjQnNCQLdCc0JjQm9Ce0KjQldCS0KHQmtCYINCd0JDQotCQ0KjQkAor0KLQmNCo0JzQkCDQnNCY0JvQntCoCivQotCY0KjQnNCQINCc0JjQoNCa0J4KK9Ci0JjQqNCc0JAg0JzQntCc0JjQoAor0KLQmNCo0JzQkCDQndCY0JrQntCb0JAKK9Ci0JjQqNCc0JAg0KHQmNCd0JjQqNCQCivQotCY0KjQnNCQINCh0JzQmNCJ0JAKK9Ci0JjQqNCc0JAg0KHQotCV0JLQkNCdCivQotCY0KjQnNCQINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0JjQqNCc0JAg0JLQntCI0JjQndCa0JAKK9Ci0JjQqNCc0JAg0JLQntCI0JjQnQor0KLQmNCo0JzQkCDQl9Ce0KDQkNCdCivQotCY0JHQkNCYINCY0KjQotCS0JDQnQor0KLQmNCmINCQ0J3QkNCc0JDQoNCY0IjQkAor0KLQmNCm0JAg0JHQntCW0J4KK9Ci0JjQptCQINCm0JLQldCi0JAKK9Ci0JjQptCQINCU0JzQmNCi0JDQoAor0KLQmNCm0JAg0JTQoNCQ0JPQkNCdCivQotCY0KbQkCDQiNCe0JLQkNCdCivQotCY0KbQkCDQnNCY0JvQntCoCivQotCY0KbQkCDQndCV0JTQldCJ0JrQngor0KLQmNCT0JDQiiDQkNCd0KLQlQor0KLQmNCl0Jgg0IjQntCh0JjQnwor0KLQmNCl0J7QnNCY0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCY0KXQntCc0JjQoNCe0JLQmNCLINCS0JXQidCa0J4KK9Ci0JjQpdCS0JjQndCh0JrQmCDQktCb0JDQlNCQ0J0KK9Ci0JjQpdCS0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KLQmNCI0JDQndCY0Isg0JzQmNCb0J7QqAor0KLQmNCI0JDQndCY0Isg0KHQnNCY0InQkAor0KLQmNCI0JDQndCY0Isg0JfQntCg0JDQnQor0KLQmNCa0JLQldCo0JAg0J3QkNCY0JvQkAor0KLQmNCa0JLQmNCLINCR0J7QqNCa0J4KK9Ci0JjQmtCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCY0JrQktCY0KbQmtCYINCl0KDQktCe0IjQlQor0KLQmNCa0JLQmNCm0JrQmCDQnNCQ0KDQmNCI0JDQndCQCivQotCY0Jsg0JXQlNCS0JjQnSDQlNCgCivQotCY0JzQkNCg0JDQpiDQkdCg0JDQndCa0J4KK9Ci0JjQnNCQ0KDQkNCmINCh0KLQntCI0JDQnQor0KLQmNCc0JDQoNCe0JIg0ILQntCg0ILQlQor0KLQmNCc0JDQoNCe0JIg0KHQotCV0JLQkNCdCivQotCY0JzQkNCg0J7QkiDQktCQ0KHQkAor0KLQmNCc0JDQoNCe0JIg0JLQldCg0JAKK9Ci0JjQnNCY0JvQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQmNCc0JrQniDQmNCg0JjQndCV0IgKK9Ci0JjQnNCa0J4g0InQo9CR0J7Qkgor0KLQmNCc0JrQniDQnNCV0JvQkNCd0JjQiNCQCivQotCY0JzQmtCeINCd0JXQodCi0J7QoAor0KLQmNCc0JrQniDQktCV0KDQkAor0KLQmNCc0JrQniDQktCb0JDQlNCY0JzQmNCgCivQotCY0JzQntCi0JjQiyDQgtCe0KDQgtCVCivQotCY0JzQntCi0JjQiyDQodCi0JDQndCQCivQotCY0JzQntCi0JjQiyDQo9Cg0J7QqAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQkNCd0JjQptCQCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQiNCV0JLQoNCV0JwKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Ist0JrQntCf0KDQmNCS0JjQptCQINCc0JDQiNCQCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0J7Qm9CT0JAKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0J/Qm9CV0JzQldCd0JrQkAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCY0J3QmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0JjQndCi0JXQoCDQpdCV0JTQktCY0JPQkAor0KLQmNCd0KLQntCgINCC0KPQoNCQCivQotCY0J3QotCe0KAg0JTQo9Co0JDQnQor0KLQmNCd0KLQntCgINCc0JDQoNCa0J4KK9Ci0JjQndCi0J7QoCDQnNCY0JvQmtCQCivQotCY0J3QotCe0KAg0JzQmNCe0JTQoNCQ0JMKK9Ci0JjQndCi0J7QoCDQnNCY0KDQkAor0KLQmNCd0KLQntCgLdCg0JDQlNCe0JzQmNCgINCh0KLQntCI0JAKK9Ci0JjQndCi0J7QoCDQodCi0JXQktCQ0J0KK9Ci0JjQndCj0KEg0JHQldCg0J3QkNCU0JXQotCQCivQotCY0J3Qo9ChINCc0JDQoNCi0JAKK9Ci0JjQntCU0J7QoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KLQmNCe0JTQntCg0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ci0JjQn9Co0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQotCY0J/Qo9Cg0JAg0IjQntCh0JjQnwor0KLQmNCf0KPQoNCQINCI0J7QodCY0J8KK9Ci0JjQn9Cj0KDQkCDQm9CQ0JTQmNCh0JvQkNCSCivQotCY0J/Qo9Cg0JAg0JvQkNCh0JvQngor0KLQmNCgINCY0KjQotCS0JDQnQor0KLQmNCgINCc0JjQm9Ca0JAKK9Ci0JjQoCDQn9CV0KLQkNCgCivQotCY0KDQmCDQkNCd0KLQkNCbCivQotCY0KDQmNCd0JTQkCDQgtCj0KDQkAor0KLQmNCg0JjQndCT0JXQoCDQldCb0JfQkAor0KLQmNCg0JrQkNCI0JvQkCDQkNCd0JAKK9Ci0JjQoNCa0JDQiNCb0JAg0KHQm9CQ0JLQntCc0JjQoAor0KLQmNCg0J3QkNCd0JjQiyDQkdCY0KHQldCg0JrQkAor0KLQmNCh0JjQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCY0KHQotCQINCV0KDQltCV0JHQldCiCivQotCY0KHQotCQINCI0JDQndCe0KgKK9Ci0JjQotCV0JvQkNCmINCC0J7QoNCC0JUKK9Ci0JjQotCV0JvQkNCmINCC0J7QoNCC0JUKK9Ci0JjQotCV0JvQkNCmINCI0JXQm9CV0J3QkAor0KLQmNCi0JXQm9CQ0KYg0IjQntCS0JDQnQor0KLQmNCi0JXQm9CQ0KYg0JzQmNCb0JjQndCa0JAKK9Ci0JjQotCV0JvQkNCmINCd0JDQlNCQCivQotCY0KLQldCb0JDQpiDQodCi0JXQktCQ0J0KK9Ci0JjQotCV0JvQkNCmINCX0J7QoNCY0KbQkAor0KLQmNCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQmNCi0J7QkiDQkNCd0JAKK9Ci0JjQotCe0JIg0JDQndCY0KbQkAor0KLQmNCi0J7QkiDQldCS0JPQldCd0JjQiNCVCivQotCY0KLQntCSINCf0JDQktCb0JUKK9Ci0JjQotCe0JIg0KLQntCc0JjQodCb0JDQkgor0KLQmtCQ0JvQp9CV0KYg0IjQntCS0JDQnQor0KLQmtCQ0JvQldCmINCf0JDQktCQ0J4KK9Ci0J7QqNCY0Isg0JbQkNCg0JrQngor0KLQntCo0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Ci0J7QqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCo0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Ci0J7QqNCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQotCe0KjQmNCLINCU0JDQndCY0KbQkAor0KLQntCo0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QqNCY0Isg0JTQo9Co0JDQnQor0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQotCe0KjQmNCLINCV0KDQltCV0JHQldCiCivQotCe0KjQmNCLINCV0JLQmNCm0JAKK9Ci0J7QqNCY0Isg0JPQntCI0JrQngor0KLQntCo0JjQiyDQiNCV0JvQkAor0KLQntCo0JjQiyDQiNCe0JLQkNCdCivQotCe0KjQmNCLINCI0J7QktCY0KbQkAor0KLQntCo0JjQiyDQmtCg0KHQotCQ0J0KK9Ci0J7QqNCY0Isg0JrQoNCh0KLQntCc0JjQoAor0KLQntCo0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QqNCY0Isg0InQo9CR0JjQndCa0J4KK9Ci0J7QqNCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QqNCY0Isg0JzQmNCb0JDQnQor0KLQntCo0JjQiyDQnNCY0JvQkNCdCivQotCe0KjQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QqNCY0Isg0JzQmNCb0JXQktCQCivQotCe0KjQmNCLINCc0JjQm9CVCivQotCe0KjQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7QqNCY0Isg0JzQmNCb0KPQotCY0J0KK9Ci0J7QqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QqNCY0Isg0JzQmNCg0JrQngor0KLQntCo0JjQiyDQnNCY0KLQkNCgCivQotCe0KjQmNCLINCd0JXQlNCV0InQmtCeCivQotCe0KjQmNCLINCd0JXQktCV0J3QmtCQCivQotCe0KjQmNCLINCd0JjQmtCe0JvQkAor0KLQntCo0JjQiyDQndCY0JrQngor0KLQntCo0JjQiyDQndCe0JLQkNCaCivQotCe0KjQmNCLINCe0JHQoNCQ0JQKK9Ci0J7QqNCY0Isg0J7QodCi0J7QiNCQCivQotCe0KjQmNCLINCf0JXQoNCeCivQotCe0KjQmNCLINCf0JXQotCQ0KAKK9Ci0J7QqNCY0Isg0KDQkNCU0JUKK9Ci0J7QqNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ci0J7QqNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ci0J7QqNCY0Isg0KDQkNCi0JrQngor0KLQntCo0JjQiyDQodCQ0JLQkAor0KLQntCo0JjQiyDQodCb0JDQktCa0JAKK9Ci0J7QqNCY0Isg0KHQntCk0JjQiNCQCivQotCe0KjQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ci0J7QqNCY0Isg0KHQotCV0JLQkNCdCivQotCe0KjQmNCLINCh0KLQldCS0JDQnQor0KLQntCo0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ci0J7QqNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KLQntCo0JjQiyDQktCV0JvQmNCR0J7QoAor0KLQntCo0JjQiyDQktCV0KDQkAor0KLQntCo0JjQiyDQktCY0JQKK9Ci0J7QqNCY0Isg0JLQm9CQ0JTQngor0KLQntCo0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ci0J7QqNCY0Isg0JLQntCI0JjQnQor0KLQntCo0JjQndCe0JLQmNCLINCb0KPQmtCQCivQotCe0KjQmtCe0JIg0KXQoNCQ0J3QmNCh0JvQkNCSCivQotCe0KjQmtCe0JIg0J/QldCg0JAKK9Ci0J7QqNCa0J7QktCY0Isg0JLQo9Cn0JXQotCQCivQotCe0KjQmtCe0JLQmNCLINCS0KPQp9CY0IsKK9Ci0J7QqNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0J7QqNCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQotCe0KjQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Ci0J7QgtCV0KAg0JrQntCh0KLQkAor0KLQntCR0I/QmNCLLdCR0KDQkNCo0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQktCQCivQotCe0JHQj9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KLQntCR0I/QmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JHQj9CY0Isg0KHQotCV0JLQkNCdCivQotCe0JHQmCDQnNCQ0KDQmNCI0JAKK9Ci0J7QkdCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QkdCY0JDQqCDQktCY0JvQnNCe0KgKK9Ci0J7QkdCe0JvQmtCQINCQ0J3QkAor0KLQntCR0J7Qm9Ca0JAg0JTQkNCd0JjQldCbCivQotCe0JHQntCb0JrQkCDQldCg0JjQmtCQCivQotCe0JHQntCb0JrQkCDQmNCo0KLQktCQ0J0KK9Ci0J7QkdCe0JvQmtCQINCY0JvQntCd0JAKK9Ci0J7QlNCY0Isg0JHQntCT0JTQkNCdCivQotCe0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QlNCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0KLQntCU0JjQiyDQk9Ce0IjQmtCeINCU0JjQn9CbINCY0J3Qkwor0KLQntCU0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQotCe0JTQmNCLINCc0JjQm9CQ0J3QmtCeCivQotCe0JTQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCY0Isg0JzQmNCb0JUKK9Ci0J7QlNCY0Isg0JzQmNCb0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QlNCY0Isg0JzQmNCb0J7QqAor0KLQntCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JTQmNCLINCd0JXQgtCeCivQotCe0JTQmNCLINCg0JDQlNCY0JLQntCICivQotCe0JTQmNCLINCg0JDQiNCa0J4KK9Ci0J7QlNCY0Isg0KDQkNCi0J7QnNCY0KAKK9Ci0J7QlNCY0Isg0KHQotCQ0J3QmNCh0JDQktCQCivQotCe0JTQmNCLINCh0KLQkNCd0JrQngor0KLQntCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCe0JTQmNCLINCS0JXQm9CY0JzQmNCgCivQotCe0JTQmNCLINCS0JvQkNCU0J4KK9Ci0J7QlNCe0KjQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KLQntCU0J7QqNCa0J7QktCY0Isg0J3QkNCU0JAKK9Ci0J7QlNCe0KjQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0KLQntCU0J7QoNCn0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KLQntCU0J7QoNCn0JXQktCY0Isg0J7QodCi0J7QiNCQCivQotCe0JTQntCg0KfQldCS0JjQiyDQn9CV0KDQngor0KLQntCU0J7QoNCn0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KLQntCU0J7QoNCn0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0KLQntCU0J7QoNCn0JXQktCY0Isg0JLQkNCh0J4KK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCS0J7QiNCY0J0KK9Ci0J7QlNCe0KDQkNCdINCi0KDQkNCI0JDQnQor0KLQntCU0J7QoNCY0Isg0KfQldCU0J7QnNCY0KAKK9Ci0J7QlNCe0KDQmNCLINCR0KDQkNCd0JrQngor0KLQntCU0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JTQntCg0JjQiyDQk9Ce0IjQmtCeCivQotCe0JTQntCg0JjQiyDQmNCb0JjQiNCQCivQotCe0JTQntCg0JjQiyDQiNCV0JvQldCd0JAKK9Ci0J7QlNCe0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0JTQntCg0JjQiyDQiNCe0JLQkNCdCivQotCe0JTQntCg0JjQiyDQidCj0JHQkAor0KLQntCU0J7QoNCY0Isg0InQo9CR0JjQktCe0IjQlQor0KLQntCU0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JTQntCg0JjQiyDQnNCY0JvQntCoCivQotCe0JTQntCg0JjQiyDQnNCY0JvQntCoCivQotCe0JTQntCg0JjQiyDQndCV0JTQldCJ0JrQngor0KLQntCU0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JTQntCg0JjQiyDQndCY0JrQngor0KLQntCU0J7QoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ci0J7QlNCe0KDQmNCLINCh0JXQm9CY0JzQmNCgCivQotCe0JTQntCg0JjQiyDQotCg0JjQktCj0J3QkAor0KLQntCU0J7QoNCe0JIg0ILQo9Cg0JAKK9Ci0J7QlNCe0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JTQntCg0J7QkiDQkdCY0KHQldCg0JrQkAor0KLQntCU0J7QoNCe0JIg0JTQldCh0JDQndCa0JAKK9Ci0J7QlNCe0KDQntCSINCT0JvQmNCo0JAKK9Ci0J7QlNCe0KDQntCSINCY0JLQkNCdCivQotCe0JTQntCg0J7Qki3QiNCQ0KjQkNCg0JXQktCY0Isg0JTQkNCd0JjQptCQCivQotCe0JTQntCg0J7QkiDQnNCY0JvQmNCS0J7QiAor0KLQntCU0J7QoNCe0JIg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCe0JIg0J3QldCU0JXQidCa0J4KK9Ci0J7QlNCe0KDQntCSINCe0JHQoNCV0J3QmtCQCivQotCe0JTQntCg0J7QkiDQoNCQ0JTQntCS0JDQnQor0KLQntCU0J7QoNCe0JIg0KDQntCR0JXQoNCiCivQotCe0JTQntCg0J7QkiDQodCQ0JLQkAor0KLQntCU0J7QoNCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KLQntCU0J7QoNCe0JIg0KHQn9CY0KDQniDQlNCgCivQotCe0JTQntCg0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0KfQldCU0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JbQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQotCe0JTQntCg0J7QktCY0Isg0JbQmNCS0J7QotCQCivQotCe0JTQntCg0J7QktCY0Isg0JbQmNCS0J7QotCQCivQotCe0JTQntCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0J3QotCj0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0KjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCo0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCh0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQptCS0JXQotCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQotCe0JTQntCg0J7QktCY0Isg0KbQktCY0IjQngor0KLQntCU0J7QoNCe0JLQmNCLINCU0JDQndCY0KbQkAor0KLQntCU0J7QoNCe0JLQmNCLINCU0JDQndCY0JvQngor0KLQntCU0J7QoNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JPQntCI0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCT0J7QiNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JjQm9CVCivQotCe0JTQntCg0J7QktCY0Isg0IjQkNCh0J3QkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0J7QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQotCe0JTQntCg0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQm9CQ0JfQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0JvQldCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KLQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KLQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCT0JjQotCQCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCo0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0IvQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQi9CeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQmtCQCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4g0JTQoCDQm9CV0JrQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0g0JTQoAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JvQkNCU0J7QnNCY0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQotCe0JTQntCg0J7QktCY0Isg0JzQntCc0JjQoNCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQndCQ0JTQkAor0KLQntCU0J7QoNCe0JLQmNCLINCd0JDQlNCQCivQotCe0JTQntCg0J7QktCY0Isg0J3QmNCL0JjQpNCe0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQntCb0JPQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQntCh0KLQntCI0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0J/QldCi0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQqNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQkAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCY0JLQntCIINCQ0JTQktCe0JrQkNCiCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0IjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCd0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQotCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCe0KHQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQqNCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQkNCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCQ0JLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQktCeCivQotCe0JTQntCg0J7QktCY0Isg0KHQkNCS0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCV0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQmNCc0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCb0JDQktCVCivQotCe0JTQntCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCc0JjQidCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0KDQldCU0J7QiNCVCivQotCe0JTQntCg0J7QktCY0Isg0KHQoNCV0KLQldCdCivQotCe0JTQntCg0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQkNCd0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQldCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQotCe0JTQlQor0KLQntCU0J7QoNCe0JLQmNCLINCi0J7QlNCVCivQotCe0JTQntCg0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCV0KDQkAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JXQoNCQCivQotCe0JTQntCg0J7QktCY0Isg0JLQldCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCV0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQkAor0KLQntCU0J7QoNCe0JLQmNCLINCX0J7QoNCa0JAKK9Ci0J7QlNCe0KDQntCS0KHQmtCYINCc0JDQndCQ0KHQmNCI0JUKK9Ci0J7QlNCe0KDQntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0KHQmtCYINCd0JDQlNCQCivQotCe0JTQntCh0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Ci0J7QlNCe0KHQmNCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KLQntCU0J7QodCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCh0JjQiNCV0JLQmNCLINCX0JvQkNCi0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KLQntCk0JjQmyDQodCe0KTQmNCI0JAKK9Ci0J7QpdCe0Ikg0IjQntCS0J4KK9Ci0J7QpdCe0InQldCS0JjQiyDQkdCe0KjQmtCeCivQotCe0KXQntCJ0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0J7QiNCQ0JPQkCDQnNCY0JvQkNCdCivQotCe0IjQkNCT0JAg0JzQmNCb0J7QqAor0KLQntCI0JDQk9CQINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QiNCQ0JPQmNCLINCC0J7QoNCC0JUKK9Ci0J7QiNCQ0JPQmNCLINCR0J7QltCY0JTQkNCgCivQotCe0IjQkNCT0JjQiyDQlNCQ0J3QlQor0KLQntCI0JDQk9CY0Isg0JTQkNCd0JjQm9CeCivQotCe0IjQkNCT0JjQiyDQlNCj0KjQkNCdCivQotCe0IjQkNCT0JjQiyDQiNCV0JvQkAor0KLQntCI0JDQk9CY0Isg0JvQo9CU0JzQmNCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0IjQkNCT0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCd0JjQmtCe0JvQkAor0KLQntCI0JDQk9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Ci0J7QiNCQ0JPQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QiNCX0JDQnSDQmNCb0J7QndCQCivQotCe0JrQkNCgINCI0KPQm9CY0IjQkAor0KLQntCa0JjQiyDQmtCe0KHQkNCg0JAKK9Ci0J7QmtCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QmtCY0Isg0JzQmNCb0JDQnQor0KLQntCa0JjQiyDQodCQ0JLQkAor0KLQntCa0JjQiyDQodCQ0JLQkAor0KLQntCa0JjQiyDQodCQ0JLQkAor0KLQntCa0JjQnS3QgtCV0KDQmNCLINCX0JDQk9Ce0KDQmtCQCivQotCe0JrQmNCdINCC0J7QoNCC0JUKK9Ci0J7QmtCY0J0g0JDQm9CY0KHQkAor0KLQntCa0JjQnSDQkdCe0KDQkAor0KLQntCa0JjQnSDQlNCQ0J3QmNCm0JAKK9Ci0J7QmtCY0J0g0J/QoNCe0JrQntCfINCU0KAg0JvQldCa0JDQoAor0KLQntCa0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQotCe0JrQmNCdINCS0JXQoNCQCivQotCe0JrQmNCdINCS0JvQkNCU0JAKK9Ci0J7QmtCe0JTQmCDQiNCQ0J3QntCoCivQotCe0JrQntCU0Jgg0IjQntCb0JDQndCa0JAKK9Ci0J7QmtCe0JTQmCDQnNCQ0KDQk9CY0KLQkAor0KLQntCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQotCe0Jsg0JDQndCU0KDQkNCoCivQotCe0Jsg0IjQntCW0JXQpAor0KLQntCb0JTQmCDQldCS0JAKK9Ci0J7Qm9CU0Jgg0JLQmNCb0JzQntCoCivQotCe0JvQmNCLINCc0JjQm9Ce0KgKK9Ci0J7Qm9CY0Isg0JLQldCh0J3QkAor0KLQntCb0JjQptCa0Jgg0JfQntCg0JAKK9Ci0J7Qm9CY0JzQmNCgINCj0KDQntCoCivQotCe0InQkNCT0JAg0JLQo9Ca0J7QodCQ0JLQkAor0KLQntCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0InQldCS0JjQiyDQlNCe0JHQoNCY0KHQm9CQ0JIKK9Ci0J7QidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCe0InQmNCLINCg0JDQiNCa0J4KK9Ci0J7Qm9Cc0JDQpyDQl9Ce0KDQkNCdCivQotCe0JvQnNCQ0KfQldCSINCW0JjQktCQCivQotCe0JvQnNCQ0KfQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7Qm9Cd0JDQmCDQntCi0J4KK9Ci0J7Qm9Cd0JDQmCDQoNCj0JbQkAor0KLQntCb0KIg0IjQntCW0JXQpAor0KLQntCb0KIg0IjQntCh0JjQnwor0KLQntCb0JLQkNCIINCQ0JPQndCV0KgKK9Ci0J7Qm9CS0JDQiCDQldCb0JXQntCd0J7QoNCQCivQotCe0JvQktCV0KIg0J7QodCa0JDQoAor0KLQntCc0KfQkNCK0Jgg0JjQktCQ0J0KK9Ci0J7QnNCn0JDQitCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQntCc0KfQkNCK0Jgg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Ci0J7QnNCn0JXQktCQINCd0JXQktCV0J3QmtCQINCU0KAKK9Ci0J7QnNCn0JXQktCh0JrQmCDQptCS0JXQotCQ0J0KK9Ci0J7QnNCn0JjQiyDQp9CV0JTQntCc0JjQoAor0KLQntCc0KfQntCSINCi0J7QnNCn0J4KK9Ci0J7QnNCn0J7QktCQINCQ0J3QldCi0JAg0JTQoAor0KLQntCc0KfQntCS0JAg0JDQndCY0KLQkCDQlNCgCivQotCe0JzQqNCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KLQntCc0JAg0KjQkNCd0JTQntCgCivQotCe0JzQkCDQkNCd0JTQoNCY0IjQkAor0KLQntCc0JAg0IjQkNCd0J7QqAor0KLQntCc0JAg0IjQkNCd0J7QqAor0KLQntCc0JAg0IjQkNCd0J7QqAor0KLQntCc0JAg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQntCc0JAg0JvQkNCU0JjQodCb0JDQkgor0KLQntCc0JAg0JzQkNCg0JjQiNCQCivQotCe0JzQkCDQnNCY0KXQkNCI0JvQngor0KLQntCc0JAg0J7Qm9CT0JAKK9Ci0J7QnNCQINCf0JDQmwor0KLQntCc0JAg0KDQntCX0JDQm9CY0IjQkAor0KLQntCc0JAg0KHQotCV0JLQkNCdCivQotCe0JzQkNCoINCC0KPQoNCQCivQotCe0JzQkNCoINCI0JDQndCa0J4KK9Ci0J7QnNCQ0Kgg0IjQntCS0JDQnQor0KLQntCc0JDQqCDQnNCY0JvQntCg0JDQlAor0KLQntCc0JDQqCDQnNCY0JvQntCS0JDQnQor0KLQntCc0JDQqCDQodCi0J7QiNCQ0J3QmtCQCivQotCe0JzQkNCo0JXQkiDQkdCe0JbQmNCU0JDQoAor0KLQntCc0JDQqNCV0JIg0JrQntCS0JjQndCa0JAKK9Ci0J7QnNCQ0KjQldCSINCc0JDQotCY0IjQkAor0KLQntCc0JDQqNCV0JIg0JzQkNCi0JjQiNCQCivQotCe0JzQkNCo0JXQkiDQn9CV0KLQkNCgCivQotCe0JzQkNCo0JXQkiDQktCV0KDQkAor0KLQntCc0JDQqNCV0JLQmNCLINCR0JvQkNCT0J7QotCQCivQotCe0JzQkNCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQotCe0JzQkNCo0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQldCS0JjQptCQCivQotCe0JzQkNCo0JXQktCY0Isg0JjQktCQ0J0KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQotCe0JzQkNCo0JXQktCY0Isg0JrQntCh0KLQkAor0KLQntCc0JDQqNCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0KLQntCc0JDQqNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0KLQntCc0JDQqNCV0JLQmNCLINCb0KPQmtCQCivQotCe0JzQkNCo0JXQktCY0Isg0JzQkNCd0J7QiNCb0JUKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQm9CY0JLQntCICivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCb0JrQkAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQntCc0JDQqNCV0JLQmNCLINCd0JDQlNCQCivQotCe0JzQkNCo0JXQktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQntCc0JDQqNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQotCe0JzQkNCo0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQodCQ0JLQngor0KLQntCc0JDQqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQotCe0JzQkNCo0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCc0JDQqNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0J7QnNCQ0KjQmNCLINCC0KPQoNCQCivQotCe0JzQkNCo0JjQiyDQkdCV0KDQotCQCivQotCe0JzQkNCo0JjQiyDQnNCQ0KDQotCY0J0KK9Ci0J7QnNCQ0KjQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0JzQkNCo0JjQiyDQotCY0JHQntCgCivQotCe0JzQkNCmINCY0JLQkNCdCivQotCe0JzQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QnNCQ0KYg0KDQo9CW0JjQptCQCivQotCe0JzQkNCdINCU0JjQnQor0KLQntCc0JDQnSDQpNCg0JDQitCQCivQotCe0JzQkNCdINCI0J7QltCV0KQKK9Ci0J7QnNCQ0J0g0JvQkNCh0JvQngor0KLQntCc0JDQnSDQnNCQ0JPQlNCe0JvQndCQCivQotCe0JzQkNCd0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQkNCd0JjQiy3Qm9CQ0KbQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KLQntCc0JDQndCY0Isg0JzQmNCb0JXQndCQCivQotCe0JzQkNCd0JjQiyDQl9CU0JXQndCa0JAKK9Ci0J7QnNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QnNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQntCc0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ci0J7QnNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCe0JzQkNChINCQ0J3QlNCg0JjQiNCQCivQotCe0JzQkNChINCI0J7QodCY0J8KK9Ci0J7QnNCQ0KEg0KDQo9CU0J7Qm9CkCivQotCe0JzQkNChINCX0JTQoNCQ0JLQmtCQCivQotCe0JzQldCmINCS0JvQkNCU0JjQodCb0JDQkgor0KLQntCc0JjQp9CY0Isg0JDQndCi0JUKK9Ci0J7QnNCY0KfQmNCLINCm0JLQmNCI0J4KK9Ci0J7QnNCY0KfQmNCLINCI0J7QktCeCivQotCe0JzQmNCn0JjQiyDQn9CV0KLQkNCgCivQotCe0JzQmNCn0JjQiyDQodCi0J7QiNCQCivQotCe0JzQmNCn0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCe0JzQmNCn0JjQnSDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQotCe0JzQmNCLINCn0JXQlNCe0JzQmNCgCivQotCe0JzQmNCLINCW0JXQidCa0J4KK9Ci0J7QnNCY0Isg0JbQmNCS0JrQngor0KLQntCc0JjQiyDQltCY0JLQntCI0JjQnQor0KLQntCc0JjQiyDQgtCe0KDQgtCVCivQotCe0JzQmNCLINCC0KPQoNCC0JjQptCQCivQotCe0JzQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Ci0J7QnNCY0Isg0ILQo9Cg0JjQptCQCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JzQmNCLINCQ0JvQldCa0KHQkAor0KLQntCc0JjQiyDQkNCd0JAKK9Ci0J7QnNCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KLQntCc0JjQiyDQkNCd0JrQkAor0KLQntCc0JjQiyDQkNCd0JrQmNCm0JAKK9Ci0J7QnNCY0Isg0JDQndCa0JjQptCQCivQotCe0JzQmNCLINCQ0KDQmNCI0JDQlNCd0JAKK9Ci0J7QnNCY0Isg0JHQmNCJ0JDQndCQCivQotCe0JzQmNCLINCR0J7QqNCa0J4KK9Ci0J7QnNCY0Isg0JHQntCo0JrQngor0KLQntCc0JjQiyDQkdCe0JbQmNCU0JDQoNCa0JAKK9Ci0J7QnNCY0Isg0JHQntCT0JTQkNCd0JrQkAor0KLQntCc0JjQiyDQkdCe0IjQmtCQCivQotCe0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIg0JTQoCDQmNCd0JMKK9Ci0J7QnNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCc0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KLQntCc0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QnNCY0Isg0JTQkNCd0JjQptCQCivQotCe0JzQmNCLINCU0JDQndCY0JvQniDQnNCgCivQotCe0JzQmNCLINCU0JDQoNCY0J3QmtCQCivQotCe0JzQmNCLINCU0JXQiNCQ0J0KK9Ci0J7QnNCY0Isg0JTQldCS0JAKK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCLINCU0KDQkNCT0JDQnQor0KLQntCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkAor0KLQntCc0JjQiyDQlNCg0JDQk9CQCivQotCe0JzQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KLQntCc0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QnNCY0Isg0JTQo9Co0JjQptCQCivQotCe0JzQmNCLINCV0JLQkAor0KLQntCc0JjQiyDQldCS0JAKK9Ci0J7QnNCY0Isg0JPQntCg0JTQkNCd0JAKK9Ci0J7QnNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KLQntCc0JjQiyDQmNCb0JUKK9Ci0J7QnNCY0Isg0JjQm9CVCivQotCe0JzQmNCLINCY0JvQmNCI0JAKK9Ci0J7QnNCY0Isg0JjQm9CY0IjQkAor0KLQntCc0JjQiyDQmNCb0JjQiNCQCivQotCe0JzQmNCLINCY0JLQkNCdCivQotCe0JzQmNCLLdCY0JLQmNCn0JjQiyDQkdCY0InQkNCd0JAKK9Ci0J7QnNCY0Isg0IjQldCb0JXQndCQCivQotCe0JzQmNCLINCI0JXQm9CY0KbQkAor0KLQntCc0JjQiyDQiNCe0KHQmNCkCivQotCe0JzQmNCLINCI0J7QodCY0J8KK9Ci0J7QnNCY0Isg0IjQntCS0JDQndCa0JAKK9Ci0J7QnNCY0Isg0IjQntCS0JDQnQor0KLQntCc0JjQiyDQiNCe0JLQkNCdCivQotCe0JzQmNCLINCI0J7QktCQ0J0KK9Ci0J7QnNCY0Isg0IjQo9Cb0JjQkNCd0JAKK9Ci0J7QnNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KLQntCc0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0KLQntCc0JjQiyDQmtCe0KDQndCV0JvQmNCQCivQotCe0JzQmNCLINCa0J7QodCQCivQotCe0JzQmNCLINCa0KDQodCi0JAKK9Ci0J7QnNCY0Isg0JvQkNCX0JDQoAor0KLQntCc0JjQiyDQm9CQ0JfQkNCgCivQotCe0JzQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ci0J7QnNCY0Isg0InQmNCJ0JDQndCQCivQotCe0JzQmNCLINCJ0JjQidCQCivQotCe0JzQmNCLINCJ0KPQkdCQCivQotCe0JzQmNCLINCJ0KPQkdCY0KjQkAor0KLQntCc0JjQiyDQidCj0JHQmNCo0JAKK9Ci0J7QnNCY0Isg0InQo9CR0JjQqNCQCivQotCe0JzQmNCLINCJ0KPQkdCY0J3QmtCQCivQotCe0JzQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCe0JzQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCe0JzQmNCLINCc0JDQoNCT0JjQogor0KLQntCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCc0JDQoNCY0IjQkAor0KLQntCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0JzQkNCg0JrQngor0KLQntCc0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQotCe0JzQmNCLINCc0JjQm9CQ0JTQmNCdCivQotCe0JzQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0Isg0JzQmNCb0JDQnQor0KLQntCc0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCb0JUKK9Ci0J7QnNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ci0J7QnNCY0Isg0JzQmNCb0JrQkAor0KLQntCc0JjQiyDQnNCY0JvQntCoCivQotCe0JzQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Ci0J7QnNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ci0J7QnNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ci0J7QnNCY0Isg0JzQmNCg0IjQkNCdCivQotCe0JzQmNCLINCc0JjQoNCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCg0JrQngor0KLQntCc0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQmNCLINCc0JjQotCQ0KAKK9Ci0J7QnNCY0Isg0JzQm9CQ0JTQldCdCivQotCe0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQotCe0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQotCe0JzQmNCLINCd0JDQotCQ0KjQkAor0KLQntCc0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQotCe0JzQmNCLINCd0JXQkdCe0IjQqNCQCivQotCe0JzQmNCLINCd0JXQlNCV0InQmtCQCivQotCe0JzQmNCLLdCd0JXQlNCV0InQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQotCe0JzQmNCLINCd0JXQlNCV0InQmtCeCivQotCe0JzQmNCLINCd0JXQndCQ0JQKK9Ci0J7QnNCY0Isg0J3QldCd0JDQlAor0KLQntCc0JjQiyDQndCV0J3QkNCUCivQotCe0JzQmNCLINCd0JjQmtCe0JvQkAor0KLQntCc0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QnNCY0Isg0J3QntCS0JjQptCQCivQotCe0JzQmNCLINCe0JvQk9CY0KbQkCDQnNCgCivQotCe0JzQmNCLINCe0JvQmNCS0JXQoNCQCivQotCe0JzQmNCLINCf0JDQktCb0JUg0JTQoAor0KLQntCc0JjQiyDQn9CV0JvQmtCQCivQotCe0JzQmNCLINCf0JXQotCQ0KAKK9Ci0J7QnNCY0Isg0J/QldCi0JrQngor0KLQntCc0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQotCe0JzQmNCLINCg0JDQlNCe0JLQkNCdCivQotCe0JzQmNCLINCg0JDQlNCe0JLQkNCdCivQotCe0JzQmNCLINCg0JDQotCe0JzQmNCgCivQotCe0JzQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Ci0J7QnNCY0Isg0KHQkNCo0JAKK9Ci0J7QnNCY0Isg0KHQkNCS0JAKK9Ci0J7QnNCY0Isg0KHQkNCS0JAKK9Ci0J7QnNCY0Isg0KHQldCb0JjQnNCY0KAKK9Ci0J7QnNCY0Ist0KHQmNCc0JjQnSDQnNCY0JvQmtCQCivQotCe0JzQmNCLINCh0JjQndCY0KjQkAor0KLQntCc0JjQiyDQodCb0JDQktCY0KbQkAor0KLQntCc0JjQiyDQodCb0JDQktCY0KbQkAor0KLQntCc0JjQiyDQodCb0JDQktCa0J4KK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmtCeCivQotCe0JzQmNCLINCh0JvQkNCS0JrQngor0KLQntCc0JjQiyDQodCb0JDQktCe0InQo9CRCivQotCe0JzQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQotCe0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QnNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQntCc0JjQiyDQodCd0JXQltCQ0J3QkAor0KLQntCc0JjQiyDQodCe0KTQmNCI0JAKK9Ci0J7QnNCY0Isg0KHQotCQ0J3QmtCeCivQotCe0JzQmNCLINCh0KLQldCS0JDQnQor0KLQntCc0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0Isg0KHQotCV0JLQkNCdCivQotCe0JzQmNCLINCh0KLQldCS0JDQnQor0KLQntCc0JjQiyDQodCi0JjQn9CQCivQotCe0JzQmNCLINCh0KLQiNCV0J/QkNCdCivQotCe0JzQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QnNCY0Isg0KHQktCV0KLQntCX0JDQoAor0KLQntCc0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KLQntCc0JjQiyDQotCe0JTQlQor0KLQntCc0JjQiyDQotCe0JTQntCgCivQotCe0JzQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0JLQldCJ0JrQngor0KLQntCc0JjQiyDQktCV0InQmtCeCivQotCe0JzQmNCLINCS0JXQoNCQCivQotCe0JzQmNCLINCS0JXQoNCY0KbQkAor0KLQntCc0JjQiyDQktCV0KHQndCQCivQotCe0JzQmNCLINCS0JXQodCd0JAKK9Ci0J7QnNCY0Isg0JLQldCh0J3QkAor0KLQntCc0JjQiyDQktCY0JQKK9Ci0J7QnNCY0Isg0JLQmNCd0JrQngor0KLQntCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JzQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QnNCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQotCe0JzQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KLQntCc0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9Ci0J7QnNCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0KLQntCc0JjQiyDQl9Ce0KDQkNCdCivQotCe0JzQmNCLINCX0J7QoNCY0KbQkAor0KLQntCc0JjQiyDQl9Ce0KDQmtCQCivQotCe0JzQmNCLINCX0J7QoNCa0JAKK9Ci0J7QnNCY0Isg0JfQntCg0JrQkAor0KLQntCc0JjQmiDQiNCe0JLQkNCdCivQotCe0JzQmNCaINCh0J7QpNCY0IjQkAor0KLQntCc0JjQmiDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0J0g0JbQmNCS0JDQnQor0KLQntCc0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QnNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JzQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQntCc0JjQnSDQlNCg0JDQk9CQ0J0KK9Ci0J7QnNCY0J0g0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCdINCU0KDQkNCT0JjQitCQCivQotCe0JzQmNCdINCU0KPQqNCQ0J0KK9Ci0J7QnNCY0J0g0JPQntCg0JTQkNCd0JAKK9Ci0J7QnNCY0J0g0InQo9CR0JjQptCQCivQotCe0JzQmNCdINCJ0KPQkdCY0KbQkAor0KLQntCc0JjQnSDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0J0g0JzQmNCb0JDQnQor0KLQntCc0JjQnSDQnNCY0JvQo9Ci0JjQnQor0KLQntCc0JjQnSDQnNCY0JvQo9Ci0JjQnQor0KLQntCc0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQmNCdINCc0JjQotCQ0KAKK9Ci0J7QnNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KLQntCc0JjQnSDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCh0KLQldCS0JDQnQor0KLQntCc0JjQnSDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QnNCY0J0g0JLQkNCh0JAKK9Ci0J7QnNCY0J0g0JLQmNCU0J7QodCQ0JLQkAor0KLQntCc0JjQndCn0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQntCc0JjQndCQ0KYg0JLQmNCd0JrQngor0KLQntCc0JrQkCDQkNCb0J/QkNCgCivQotCe0JzQmtCQINCa0JDQoNCb0J4KK9Ci0J7QnNCJ0JDQndCe0JLQmNCLINCR0J7Qk9Ce0KHQm9CQ0JIKK9Ci0J7QnNCJ0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KLQntCc0InQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQidCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQniDQiNCe0KHQmNCfCivQotCe0JzQntCSINCR0J7Qk9CU0JDQnQor0KLQntCc0J7QkiDQnNCY0KDQp9CVCivQotCe0JzQntCSINCh0JDQktCQCivQotCe0JzQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QnNCe0JIg0KLQntCo0JAKK9Ci0J7QnNCe0JIg0KLQntCU0J7QoAor0KLQntCc0J7QkiDQktCV0JvQmNCdCivQotCe0JzQntCSINCS0JXQm9CY0J0KK9Ci0J7QnNCe0JLQmNCLINCQ0J3QgtCQCivQotCe0JzQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQntCc0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCc0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ci0J7QnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QnNCe0JLQmNCLINCc0JjQotCQ0KAKK9Ci0J7QnNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQotCe0JzQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCe0JzQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQotCe0JzQntCS0JjQiyDQotCe0JzQngor0KLQntCc0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0KLQntCc0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCc0J7QktCY0Isg0JfQntCg0JjQptCQCivQotCe0J3Qp9CV0JIg0JjQktCQ0J0KK9Ci0J7QndCU0J7Qm9CeINCh0JzQmNCJ0JAKK9Ci0J7QndCY0Isg0JbQmNCa0JjQptCQCivQotCe0J3QmNCLINCg0KPQltCY0KbQkAor0KLQntCd0JjQiyDQodCi0J7QiNCY0JzQldCdCivQotCe0J3QmtCe0JLQmNCLINCI0J7QptCQCivQotCe0J3QmtCe0JLQmNCLINCI0J7QodCY0J8KK9Ci0J7QndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0J3QotCVINCk0KDQmNCC0JXQqAor0KLQntCd0KLQmNCLINCC0J7QoNCC0JUKK9Ci0J7QndCi0JjQiyDQlNCj0KjQkNCdCivQotCe0J/QkNCb0J7QkiDQlNCj0KjQkNCdCivQotCe0J/QkNCb0J7QkiDQk9CQ0JLQoNCQINCU0JjQn9CbINCY0J3Qkwor0KLQntCf0JDQm9Ce0JIg0IjQldCb0JjQptCQCivQotCe0J/QkNCb0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQotCe0J/QkNCb0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQotCe0J/QkNCb0J7QkiDQnNCY0KXQkNCI0JvQngor0KLQntCf0JDQm9Ce0JIg0JzQmNCb0JXQndCQCivQotCe0J/QkNCb0J7QkiDQnNCY0JvQntCoCivQotCe0J/QkNCb0J7QkiDQnNCY0JvQntCg0JDQlAor0KLQntCf0JDQm9Ce0JIg0J3QkNCU0JAKK9Ci0J7Qn9CQ0JvQntCSINCf0JXQotCQ0KAKK9Ci0J7Qn9CQ0JvQntCSINCh0J7QpNCY0IjQkAor0KLQntCf0JDQm9Ce0JIg0KHQn9CQ0KHQntCI0JUKK9Ci0J7Qn9CQ0JvQntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQotCe0J/QkNCb0J7QkiDQodCi0JXQktCQ0J0KK9Ci0J7Qn9CQ0JvQntCSINCh0KLQldCS0JDQnQor0KLQntCf0JDQm9Ce0JIg0KHQotCV0JLQkNCdCivQotCe0J/QkNCb0J7QkiDQodCS0JXQotCe0JfQkNCgCivQotCe0J/QkNCb0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQotCe0J/QkNCb0J7QkiDQktCV0KDQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCR0J7QltCeCivQotCe0J/QkNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQntCf0JDQm9Ce0JLQmNCLINCU0KPQmtCQ0KLQmNCd0JrQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQotCe0J/QkNCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQotCe0J/QkNCb0J7QktCY0Isg0IjQo9Cb0JjQiNCVCivQotCe0J/QkNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0J/QkNCb0J7QktCY0Isg0JzQmNCg0JrQngor0KLQntCf0JDQm9Ce0JLQmNCLINCd0JXQktCV0J3QmtCQCivQotCe0J/QkNCb0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCh0KLQkNCd0JjQiNCQCivQotCe0J/QkNCb0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQotCe0J/QkNCb0KHQmtCYINCU0JDQndCY0JvQngor0KLQntCf0JDQm9Ch0JrQmCDQlNCj0KjQkNCd0JrQkAor0KLQntCf0JDQm9Ch0JrQmC3QpNCY0KjQotCV0Kgg0J3QkNCU0JAKK9Ci0J7Qn9CQ0JvQodCa0Jgg0JzQmNCb0JXQndCQCivQotCe0J/QkNCb0KHQmtCYINCX0J7QoNCQ0J0KK9Ci0J7Qn9CQ0KAg0JzQkNCg0JjQiNCQCivQotCe0J/QmNCLINCn0JXQlNCeCivQotCe0J/QmNCLINCC0KPQoNCeCivQotCe0J/QmNCLINCQ0J3QotCeCivQotCe0J/QmNCLINCm0JLQmNCI0JAKK9Ci0J7Qn9CY0Isg0JTQkNCd0JjQptCQCivQotCe0J/QmNCLINCU0JDQndCY0KbQkAor0KLQntCf0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0J7Qn9CY0Isg0JTQoNCQ0JPQkNCdCivQotCe0J/QmNCLINCY0JvQmNCI0JAKK9Ci0J7Qn9CY0Isg0IjQntCS0JDQnQor0KLQntCf0JjQiyDQiNCe0JLQkNCdCivQotCe0J/QmNCLINCb0JXQntCdCivQotCe0J/QmNCLINCJ0KPQkdCeCivQotCe0J/QmNCLINCc0JDQoNCY0IjQkAor0KLQntCf0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ci0J7Qn9CY0Isg0JzQmNCb0JDQnQor0KLQntCf0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQotCe0J/QmNCLINCc0JjQm9CY0JLQntCICivQotCe0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0J/QmNCLINCc0JjQm9Ce0JLQkNCdCivQotCe0J/QmNCLINCc0JjQoNCa0J4KK9Ci0J7Qn9CY0Isg0JzQmNCi0JDQoAor0KLQntCf0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQotCe0J/QmNCLINCd0JXQgtCeCivQotCe0J/QmNCLINCd0JjQmtCeCivQotCe0J/QmNCLINCf0JXQotCQ0KAKK9Ci0J7Qn9CY0Isg0KDQkNCi0JrQngor0KLQntCf0JjQiyDQodCg0JXQotCV0J0KK9Ci0J7Qn9CY0Isg0KHQotCV0JLQkNCdCivQotCe0J/QmNCLINCi0JDQotCI0JDQndCQCivQotCe0J/QmNCLINCS0J7QiNCY0J0KK9Ci0J7Qn9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KLQntCf0JrQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCf0JrQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCf0JvQkNCaINCY0JzQoNCVCivQotCe0J/Qm9CY0KbQkCDQkNCR0JXQlNCY0J0KK9Ci0J7Qn9Cb0JjQptCQINCT0JDQndCYCivQotCe0J/Qm9CY0KbQkCDQndCV0ILQnNCV0JTQmNCdCivQotCe0J/Qm9CY0KbQkCDQoNCQ0JzQkNCU0JDQnQor0KLQntCf0JvQmNCm0JAg0JfQldCL0JjQoAor0KLQntCf0JvQmNCm0JAg0JfQldCd0JjQiNCQCivQotCe0J/QniDQkNCd0KLQntCd0JjQiNCQCivQotCe0J/QniDQidCj0JHQntCc0JjQoAor0KLQntCf0J4g0J3QldCd0JDQlAor0KLQntCf0J7Qm9Cn0JXQktCY0Isg0IjQntCS0JDQnQor0KLQntCf0J7Qm9CQ0KYg0KDQkNCU0JjQktCe0Igg0JTQoCDQm9CV0JrQkNCgCivQotCe0J/QntCb0JjQiyDQgtCj0KDQkAor0KLQntCf0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KLQntCf0J7Qm9CY0Isg0J/QldCI0JAKK9Ci0J7Qn9Ce0InQkNCd0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KLQntCf0J7Qm9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCf0J7Qm9Ce0JLQkNCn0JrQmCDQoNCQ0JTQntCS0JDQnQor0KLQntCf0J7Qm9Ce0JLQkNCn0JrQmCDQktCj0JrQntCh0JDQktCQCivQotCe0J/QoNCV0Jog0KHQmNCc0J4KK9Ci0J7QoNCC0JDQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCg0JHQkNCg0J7QkiDQlNCj0KjQkNCdCivQotCe0KDQkdCY0KbQkCDQkNCb0JXQmtCh0JAKK9Ci0J7QoNCR0JjQptCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QoNCR0JjQptCQINCU0KPQqNCQ0J0KK9Ci0J7QoNCR0JjQptCQINCU0KPQqNCQ0J0KK9Ci0J7QoNCR0JjQptCQINCY0JvQmNCI0JAKK9Ci0J7QoNCR0JjQptCQINCI0JXQm9Ca0JAKK9Ci0J7QoNCR0JjQptCQINCI0KPQm9Ca0JAKK9Ci0J7QoNCR0JjQptCQINCc0JDQoNCY0IjQkAor0KLQntCg0JHQmNCm0JAg0JzQmNCb0J7QqAor0KLQntCg0JHQmNCm0JAg0JzQmNCg0J7QodCb0JDQkgor0KLQntCg0JHQmNCm0JAg0J3QkNCU0JAKK9Ci0J7QoNCR0JjQptCQINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0J7QoNCR0JjQptCQINCS0JXQoNCY0KbQkAor0KLQntCg0JTQkCDQiNCQ0J3QmtCeCivQotCe0KDQlNCQ0Jgg0JjQm9Ce0J3QkAor0KLQntCg0JTQkNCYINCc0JDQoNCY0IjQkAor0KLQntCg0JTQkNCYINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QoNCU0JDQiCDQnNCY0KjQmtCeCivQotCe0KDQlNCQ0IjQmCDQiNCQ0J3QmtCeCivQotCe0KDQldCgINCC0KPQoNCQCivQotCe0KDQnNCQINCT0JXQl9CQCivQotCe0KDQnNCQINCI0J7QodCY0J8KK9Ci0J7QoNCc0JAg0IjQntCS0JDQnQor0KLQntCg0JzQkCDQnNCQ0KDQk9CY0KLQkAor0KLQntCg0JzQkCDQodCi0JXQktCQ0J0KK9Ci0J7QoNCc0JAg0JLQmNCb0JjQnAor0KLQntCg0JzQkNCo0Jgg0ILQldCg0IIKK9Ci0J7QoNCc0JDQqNCYINCI0JDQndCe0KgKK9Ci0J7QoNCc0JDQqNCYINCh0JzQmNCJ0JrQkAor0KLQntCg0JzQkNCo0Jgg0KHQotCV0JLQkNCdCivQotCe0KDQnNCe0KjQmCDQiNCe0JbQldCkCivQotCe0KDQitCQ0J3QodCa0Jgg0JbQkNCg0JrQngor0KLQntCg0IrQkNCd0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QoNCK0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QoNCK0JDQndCh0JrQmCDQiNCV0JvQmtCQCivQotCe0KDQitCQ0J3QodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQotCe0KDQntCaINCn0JDQkdCQCivQotCe0KDQntCc0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0J7QoNCe0JzQkNCdINCd0JXQgtCV0InQmtCeCivQotCe0KDQntCc0JDQnSDQoNCQ0JTQmNCh0JDQkgor0KLQntCg0J7QnNCQ0J0g0KDQkNCU0JzQmNCb0JAKK9Ci0J7QoNCe0JzQkNCdINCg0JDQlNCe0IjQmNCm0JAKK9Ci0J7QoNCe0JLQmNCLINCi0KDQmNCf0J4KK9Ci0J7QoNCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0KLQntCg0KLQmNCLINCI0J7QodCY0J8KK9Ci0J7QoNCi0JjQiyDQnNCY0KXQkNCI0JvQngor0KLQntCg0KLQmNCLINCh0KLQldCS0JDQnQor0KLQntCg0KLQmNCLINCS0JXQoNCQCivQotCe0KHQnNCQ0J0g0IjQntCh0JjQnwor0KLQntCh0KPQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCe0KHQo9Cd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCe0KHQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCiINCo0JDQndCU0J7QoAor0KLQntCiINCo0JDQndCU0J7QoAor0KLQntCiINCo0JDQndCU0J7QoAor0KLQntCiINCQ0JzQkNCb0JjQiNCQCivQotCe0KIg0JDQndCQCivQotCe0KIg0JDQndCQCivQotCe0KIg0JDQndCU0KDQkNCoCivQotCe0KIg0JDQndCU0KDQmNCI0JAKK9Ci0J7QoiDQkNCd0JTQoNCY0IjQkAor0KLQntCiINCQ0J3QmNCm0JAKK9Ci0J7QoiDQkNCd0KLQkNCbINCU0JjQn9CbINCY0J3Qkwor0KLQntCiINCQ0J3QotCe0J3QmNCI0JAKK9Ci0J7QoiDQkNCg0J/QkNCUCivQotCe0KIt0JDQoNCS0JDQmCDQkNCd0KLQkNCbCivQotCe0KIt0JDQoNCS0JDQmCDQiNCQ0J3QntCoCivQotCe0KIt0JDQoNCS0JDQmCDQiNCQ0J3QntCoCivQotCe0KIt0JHQkNCT0Jgg0JjQnNCg0JUKK9Ci0J7Qoi3QkdCQ0JPQmCDQiNCQ0J3QntCoCivQotCe0KIt0JHQkNCT0Jgg0JzQkNCg0JjQiNCQCivQotCe0KIg0JHQkNCb0JjQndCiCivQotCe0KIg0JHQldCg0KLQkAor0KLQntCiLdCR0J7QiNCd0JjQmiDQlNCV0JfQmNCU0JXQoCDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QoiDQkdCe0KDQkAor0KLQntCiINCU0JXQltCVCivQotCe0KIg0JTQo9Co0JDQndCa0JAKK9Ci0J7QoiDQpNCV0KDQldCd0KYKK9Ci0J7QoiDQpNCV0KDQldCd0KYKK9Ci0J7QoiDQpNCV0KDQldCd0KYKK9Ci0J7QoiDQpNCV0KDQldCd0KYKK9Ci0J7QoiDQpNCV0KDQldCd0KYKK9Ci0J7QoiDQpNCg0JDQitCQCivQotCe0KIg0KTQoNCQ0IrQkAor0KLQntCiINCk0KDQkNCK0JAKK9Ci0J7QoiDQk9CQ0JHQntCgCivQotCe0KIg0JPQldCX0JAKK9Ci0J7Qoi3QpdCe0KDQotCYINCo0JDQndCU0J7QoAor0KLQntCiINCY0KjQotCS0JDQnQor0KLQntCiINCY0KjQotCS0JDQnQor0KLQntCiINCY0KjQotCS0JDQnQor0KLQntCiINCY0JHQntCJ0JAg0JTQoAor0KLQntCiINCY0JvQntCd0JAKK9Ci0J7QoiDQmNCb0J7QndCQCivQotCe0KIg0JjQm9Ce0J3QkAor0KLQntCiINCY0JzQoNCVCivQotCe0KIg0JjQoNCV0J3QkAor0KLQntCiINCY0KDQldCd0JAKK9Ci0J7QoiDQmNCS0JDQnQor0KLQntCiINCI0JDQndCe0KgKK9Ci0J7QoiDQiNCQ0J3QntCoCivQotCe0KIg0IjQkNCd0J7QqAor0KLQntCiINCI0JXQm9CV0J3QkAor0KLQntCiINCI0J7QltCV0KQKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCW0JXQpAor0KLQntCiINCI0J7QltCV0KQKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCh0JjQnwor0KLQntCiINCI0J7QktCQ0J3QmtCQCivQotCe0KIg0IjQntCS0JDQnQor0KLQntCiINCI0KPQm9CY0IjQkNCd0JAKK9Ci0J7QoiDQiNCj0JvQmNCI0JDQndCQCivQotCe0KIg0IjQo9Cb0JjQiNCQCivQotCe0KIt0JrQkNCo0JAg0JHQm9CQ0JYKK9Ci0J7QoiDQmtCQ0KDQntCJCivQotCe0KIg0JrQkNCg0J7QiQor0KLQntCiINCa0JDQotCQ0KDQmNCd0JAKK9Ci0J7QoiDQmtCQ0KLQmNCm0JAKK9Ci0J7QoiDQmtCe0JLQmNCJ0JrQkAor0KLQntCiINCb0JDQiNCe0KgKK9Ci0J7QoiDQm9CQ0IjQntCoCivQotCe0KIg0JvQkNCh0JvQniDQlNCgCivQotCe0KIg0JvQkNCh0JvQngor0KLQntCiINCb0JDQodCb0J4KK9Ci0J7QoiDQm9CQ0KHQm9CeCivQotCe0KIg0JvQmNCS0JjQiNCQCivQotCe0KIg0JzQkNCT0JTQntCb0J3QkAor0KLQntCiINCc0JDQoNCT0JjQotCQCivQotCe0KIg0JzQkNCg0JPQmNCi0JAKK9Ci0J7QoiDQnNCQ0KDQmNCI0JAKK9Ci0J7QoiDQnNCQ0KDQmNCI0JAKK9Ci0J7QoiDQnNCQ0KDQmNCI0JAKK9Ci0J7QoiDQnNCQ0KDQmNCI0JAKK9Ci0J7QoiDQnNCY0KXQkNCJCivQotCe0KIg0JzQmNCl0JDQiQor0KLQntCiINCc0JjQmtCb0J7QqAor0KLQntCiINCc0JjQm9CQ0J3QmtCQCivQotCe0KIg0JzQmNCb0JrQkAor0KLQntCiINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QoiDQndCV0JHQntCI0KjQkAor0KLQntCiINCe0JvQk9CQCivQotCe0KIg0J/QkNCb0JjQmtCQCivQotCe0KIg0J/QkNCbCivQotCe0KIg0J/QkNCbCivQotCe0KIg0J/QkNCbCivQotCe0KIg0J/QkNCS0JvQlQor0KLQntCiINCg0J7Ql9CQ0JvQmNCI0JAKK9Ci0J7QoiDQoNCe0JfQkNCb0JjQiNCQCivQotCe0KIg0KHQmNCb0JLQldCh0KLQldCgCivQotCe0KIg0KHQotCV0JLQkNCdCivQotCe0KIg0KHQotCV0JLQkNCdCivQotCe0KIg0KHQotCV0JLQkNCdCivQotCe0KIg0KHQotCI0JXQn9CQ0J0KK9Ci0J7QoiDQotCV0KDQldCX0JAKK9Ci0J7QoiDQotCV0KDQldCX0JAKK9Ci0J7QoiDQotCY0JHQntCgCivQotCe0KIg0KLQntCc0JjQodCb0JDQkgor0KLQntCiINCS0JDQm9CV0KDQmNCI0JAKK9Ci0J7QoiDQktCb0JDQlNCY0JzQmNCgCivQotCe0KIg0JLQm9CQ0JTQmNCh0JvQkNCSCivQotCe0KIg0JfQmNCi0JAKK9Ci0J7QoiDQl9Cb0JDQotCQCivQotCe0KIg0JfQntCb0KLQkNCdCivQotCe0KIg0JfQntCg0JAKK9Ci0J7QotCQ0KDQktCQ0Jgg0JzQkNCg0JjQiNCQCivQotCe0KLQpSDQodCY0JvQktCV0KHQotCV0KAKK9Ci0J7QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0KLQntCi0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ci0J7QotCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QktCQ0KDQm9Ce0JbQkCDQlNCj0KjQkNCd0JrQkAor0KLQntCS0JXQoNCd0JjQiyDQl9Ce0KDQkAor0KLQntCS0JjQm9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QktCY0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQotCe0JLQmNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JLQmNCi0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQntCS0IjQkNCd0JjQnSDQkdCY0InQkNCd0JAKK9Ci0J7QktCJ0JDQndCY0Isg0JTQo9Co0JDQnQor0KLQntCS0InQkNCd0JjQiyDQodCQ0JLQkAor0KLQoNCQ0JbQmCDQn9CQ0JsKK9Ci0KDQkNCR0JDQmiDQmtCQ0KLQkNCg0JjQndCQCivQotCg0JDQmNCb0J7QktCY0Isg0J3QkNCU0JAKK9Ci0KDQkNCY0JvQntCS0JjQiyDQodCV0JvQmNCc0JjQoAor0KLQoNCQ0JjQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0KDQkNCI0KfQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQotCg0JDQiNCn0JXQktCh0JrQkCDQkNCd0JjQotCQCivQotCg0JDQiNCQ0J3QntCS0KHQmtCYINCJ0KPQkdCY0KbQkAor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQngor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQnNCe0IjQodCeCivQotCg0JDQiNCQ0J3QntCS0KHQmtCYINCi0KDQkNCI0JDQnQor0KLQoNCQ0IjQkdCQ0KAg0JDQlNCe0JvQpAor0KLQoNCQ0IjQkdCQ0KAg0JfQktCe0J3QmNCc0JjQoAor0KLQoNCQ0IjQldCgINCb0JDQlNCY0KHQm9CQ0JIg0JTQoAor0KLQoNCQ0IjQldCgINCg0J7QkdCV0KDQogor0KLQoNCQ0IjQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCg0JDQiNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KLQoNCQ0IjQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQoNCQ0IjQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KLQoNCQ0IjQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQoNCQ0IjQmtCe0JLQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KLQoNCQ0IjQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQoNCQ0IjQmtCe0JLQmNCLINCd0JDQlNCQCivQotCg0JDQiNCa0J7QktCY0Isg0J3QkNCI0JTQkNCdCivQotCg0JDQiNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQotCg0JDQiNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQoNCQ0IjQmtCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ci0KDQkNCI0JrQntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KLQoNCQ0IjQmtCe0JLQodCa0Jgg0JzQldCi0J7QlNCY0IjQlQor0KLQoNCQ0IjQmtCe0JLQodCa0Jgg0J/QkNCd0KLQkAor0KLQoNCQ0JrQmNCb0J7QktCY0Isg0JLQm9CQ0JTQkAor0KLQoNCQ0InQmNCLINCY0JLQkNCdCivQotCg0JDQndCU0JDQpNCY0KAg0JLQkNCh0JjQm9CY0IjQlQor0KLQoNCQ0J3QmtCe0JvQntCS0JjQiyDQptCS0JXQotCQCivQotCg0JDQndCa0KPQm9Ce0JIg0IjQntCW0JXQpAor0KLQoNCQ0KPQnCDQkNCg0JDQndCa0JAKK9Ci0KDQkNCS0JDQiiDQiNCe0JLQkNCd0JrQkAor0KLQoNCQ0JLQkNCgINCC0KPQoNCeCivQotCg0JDQktCQ0KAg0InQo9CR0JjQqNCQCivQotCg0JDQktCQ0KAg0JzQmNCb0J7QodCQ0JIKK9Ci0KDQkNCS0JjQptCQINCc0JjQm9CQ0J0KK9Ci0KDQkNCS0JjQptCQINCc0JjQm9CVCivQotCg0JDQktCY0KbQkCDQndCY0JrQntCb0JAKK9Ci0KDQkNCS0JjQptCQINCg0JDQlNCVCivQotCg0JHQkNCd0J7QoSDQltCY0JLQkAor0KLQoNCR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KDQkdCY0Isg0InQo9CR0JjQqNCQCivQotCg0JHQmNCLINCc0JjQm9CQ0JTQmNCdCivQotCg0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KDQkdCY0Isg0KLQkNCc0JDQoNCQCivQotCg0JHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQotCg0JHQntCI0JXQktCY0Isg0ILQo9Cg0JDQggor0KLQoNCR0J7QiNCV0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQotCg0JHQntCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQotCg0JHQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQk9CQ0JLQoNCQCivQotCg0JHQntCI0JXQktCY0Isg0JjQlNCQCivQotCg0JHQntCI0JXQktCY0Isg0JjQm9CY0IjQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Ci0KDQkdCe0IjQldCS0JjQiyDQm9CQ0JfQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCc0JDQoNCY0KbQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCc0JjQm9CVCivQotCg0JHQntCI0JXQktCY0Isg0JzQmNCb0JjQptCQCivQotCg0JHQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQotCg0JHQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQotCg0JHQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQotCg0JHQntCJ0JXQktCQ0KYg0JTQoNCQ0JPQntCh0JvQkNCSCivQotCg0JHQntCS0JjQiyDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KLQoNCR0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQoNCR0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQoNCR0J7QktCY0Isg0JLQldCh0J3QkAor0KLQoNCV0KjQitCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ci0KDQldCo0IrQmNCLINCI0J7QktCQ0J0KK9Ci0KDQldCo0IrQmNCLINCh0KLQldCS0JDQnQor0KLQoNCV0IvQkNCa0J7QkiDQodCi0J7QiNCQ0J0KK9Ci0KDQldCR0JDQotCY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCg0JXQkdCQ0KLQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQoNCV0JHQkNCi0JjQptCa0Jgg0IjQo9Ch0KLQmNCd0JAKK9Ci0KDQldCR0JDQotCY0KbQmtCYINCc0JDQoNCY0IjQkAor0KLQoNCV0JHQmNCn0J3QmNCaLdCS0KPQp9CY0Isg0J7Qm9CT0JAKK9Ci0KDQldCR0J7QktCQ0KYg0JzQmNCb0JUKK9Ci0KDQldCd0KfQldCS0KHQmtCYINCd0JDQlNCV0JbQlNCQCivQotCg0JXQn9CQ0J3QmNCLINCc0JDQpdCc0KPQogor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0JzQmNCb0JDQnQor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQodCb0JDQktCa0J4KK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0KHQotCV0JLQkNCdCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCS0JDQodCQCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCS0JDQodCQCivQotCg0JXQodCa0JjQiyDQl9CU0KDQkNCS0JrQngor0KLQoNCT0JDQm9CQINCC0KPQoNCQCivQotCg0JPQniDQndCV0JLQldCd0JrQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCQ0J3QmtCQCivQotCg0JjQp9Ca0J7QktCY0Isg0IjQo9Cb0JrQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQotCg0JjQp9Ca0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQotCg0JjQp9Ca0J7QktCY0Isg0JLQldCg0JjQptCQCivQotCg0JjQqNCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQotCg0JjQqNCY0Ist0JjQm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KLQoNCY0KjQmNCLINCc0JvQkNCU0JXQnQor0KLQoNCY0KTQmtCe0JLQmNCLINCI0J7QktCY0KbQkAor0KLQoNCY0KTQmtCe0JLQmNCLINCa0KPQl9Cc0JDQnQor0KLQoNCY0KTQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KLQoNCY0KTQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KLQoNCY0KTQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KLQoNCY0KTQmtCe0JLQmNCLINCh0KDQgtCQINCU0KAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCg0JjQpNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KLQoNCY0KTQoyDQlNCe0KDQowor0KLQoNCY0KTQo9Cd0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0KDQmNCk0KPQndCn0JXQktCY0Isg0JzQmNCb0J7QqAor0KLQoNCY0KTQo9CK0JDQk9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Ci0KDQmNCk0KPQitCQ0JPQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KLQoNCY0KTQo9Cd0J7QkiDQlNCQ0J3QmNCb0J4KK9Ci0KDQmNCk0KPQndCe0JIg0IjQntCh0JjQpAor0KLQoNCY0KTQo9Cd0J7QkiDQnNCY0J7QlNCg0JDQkwor0KLQoNCY0KTQo9Cd0J7QkiDQoNCQ0JTQnNCY0JvQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JbQmNCa0JjQptCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQltCY0JLQmtCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQotCg0JjQpNCj0J3QntCS0JjQiyDQlNCQ0J3QmtCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCY0JvQmNCd0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0IjQldCb0JXQndCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQotCg0JjQpNCj0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCQ0JrQodCY0JwKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQotCg0JjQpNCj0J3QntCS0JjQiyDQndCQ0JTQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCd0JXQk9Ce0JLQkNCd0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0J7Qm9CT0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCf0JDQktCb0JUKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQotCg0JjQpNCj0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQodCi0JDQndCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0JTQoAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KLQoNCY0KTQo9CdCivQotCg0JjQpNCj0J3QntCS0JjQiyDQktCQ0KHQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQldCg0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JvQkNCU0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JIKK9Ci0KDQmNCa0JjQiyDQlNCg0JDQk9CY0KbQkAor0KLQoNCY0JrQmNCLINCc0JjQoNCa0J4KK9Ci0KDQmNCa0JjQiyDQoNCe0KHQkAor0KLQoNCY0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0KDQmNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCg0JjQn9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQoNCY0J/QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0KDQmNCf0J7Qm9Ch0JrQmCDQnNCQ0KDQmNCI0JAKK9Ci0KDQmNCf0KPQndCe0JLQmNCLINCC0J7QoNCC0JjQiNCQCivQotCg0JjQn9Cj0J3QntCS0JjQiyDQkdCb0JDQltCeCivQotCg0JjQn9Cj0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCg0JjQoSDQiNCQ0JrQntCRCivQotCg0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0KDQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCVCivQotCg0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0KDQmNCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQotCg0JjQktCY0Isg0JHQntCg0JjQoQor0KLQoNCY0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQoNCY0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KLQoNCY0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0KDQmNCS0JjQiyDQiNCe0JLQkNCdCivQotCg0JjQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KLQoNCY0JLQo9Cd0KfQmNCLINCc0JjQoNCQCivQotCg0JjQktCj0J3Qj9CQINCc0JjQm9Ce0KgKK9Ci0KDQmNCS0KPQndCP0JAg0J3QldCd0JDQlAor0KLQoNCY0JLQo9Cd0JjQiyDQkdCe0JPQntCJ0KPQkQor0KLQoNCY0JLQo9Cd0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCg0JjQktCj0J3QmNCLINCg0JDQndCa0J4KK9Ci0KDQmNCS0KPQndCe0JLQmNCLINCc0JvQkNCU0JXQndCa0J4KK9Ci0KDQmNCS0KPQndCe0JLQmNCLINCh0JjQnNCeCivQotCg0JjQktCj0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0KLQoNCY0JfQm9CY0Isg0KHQm9CQ0JLQmtCeCivQotCg0JrQidCQINCT0J7QiNCa0J4KK9Ci0KDQmtCJ0JAg0JzQmNCg0JrQngor0KLQoNCa0KPQidCQINCW0JjQktCe0KDQkNCUCivQotCg0JrQo9CJ0JAg0JDQndCQCivQotCg0JrQo9CJ0JAg0JHQntCo0JrQngor0KLQoNCa0KPQidCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0KDQmtCj0InQkCDQkdCg0JDQndCa0J4KK9Ci0KDQmtCj0InQkCDQlNCg0JDQk9CQ0J0KK9Ci0KDQmtCj0InQkCDQlNCg0JDQk9CQ0J0KK9Ci0KDQmtCj0InQkCDQldCh0KLQldCgCivQotCg0JrQo9CJ0JAg0JPQntCI0JrQngor0KLQoNCa0KPQidCQINCT0KDQntCX0JTQkAor0KLQoNCa0KPQidCQINCI0J7QktCQ0J0KK9Ci0KDQmtCj0InQkCDQiNCj0JvQmtCQCivQotCg0JrQo9CJ0JAg0JzQkNCg0JjQndCa0J4KK9Ci0KDQmtCj0InQkCDQnNCY0JvQkNCdCivQotCg0JrQo9CJ0JAg0JzQmNCb0J7QoNCQ0JQKK9Ci0KDQmtCj0InQkCDQnNCY0J7QlNCg0JDQkwor0KLQoNCa0KPQidCQINCc0JjQntCU0KDQkNCTCivQotCg0JrQo9CJ0JAg0J3QldCU0JXQidCa0J4KK9Ci0KDQmtCj0InQkCDQndCY0JrQntCb0JAKK9Ci0KDQmtCj0InQkCDQndCe0JLQkNCaCivQotCg0JrQo9CJ0JAg0J3QntCS0JDQmgor0KLQoNCa0KPQidCQINCf0JXQotCQ0KAKK9Ci0KDQmtCj0InQkCDQoNCQ0J3QmtCeCivQotCg0JrQo9CJ0JAg0KHQm9CQ0JLQmtCeCivQotCg0JrQo9CJ0JAg0KHQntCk0JjQiNCQCivQotCg0JrQo9CJ0JAg0KHQntCK0JAKK9Ci0KDQmtCj0InQkCDQodCi0JXQktCQ0J0KK9Ci0KDQmtCj0InQkCDQodCi0J7QiNCQ0J3QmtCQCivQotCg0JrQo9CJ0JAg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ci0KDQnNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCg0J3Qp9CY0Isg0JvQkNCX0J4KK9Ci0KDQndCQ0JLQkNCmINCc0JjQm9CQ0J0KK9Ci0KDQndCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ci0KDQndCY0Isg0JLQldCg0JAKK9Ci0KDQndCY0J3QmNCLINCW0JjQktCQ0J0KK9Ci0KDQndCY0J3QmNCLINCW0JjQktCe0IjQmNCdCivQotCg0J3QmNCd0JjQiyDQgtCe0KDQgtCVCivQotCg0J3QmNCd0JjQiyDQgtCj0KDQkAor0KLQoNCd0JjQndCY0Isg0JHQntCT0JTQkNCdCivQotCg0J3QmNCd0JjQiyDQkdCe0IjQkAor0KLQoNCd0JjQndCY0Isg0JHQntCg0JjQktCe0IgKK9Ci0KDQndCY0J3QmNCLINCR0J7QodCY0InQmtCQCivQotCg0J3QmNCd0JjQiyDQlNCe0JHQoNCY0JLQntCICivQotCg0J3QmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0KDQndCY0J3QmNCLINCU0KDQkNCT0JDQnQor0KLQoNCd0JjQndCY0Isg0JTQo9Co0JDQnQor0KLQoNCd0JjQndCY0Isg0JzQkNCg0JAKK9Ci0KDQndCY0J3QmNCLINCc0JDQoNCY0IjQkAor0KLQoNCd0JjQndCY0Isg0JzQmNCg0JrQngor0KLQoNCd0JjQndCY0Isg0JzQmNCg0JrQngor0KLQoNCd0JjQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQoNCd0JjQndCY0Isg0JzQntCc0KfQmNCb0J4KK9Ci0KDQndCY0J3QmNCLINCe0JvQmNCS0JXQoNCQCivQotCg0J3QmNCd0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQoNCd0JjQndCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ci0KDQndCY0J3QmNCLINCg0JDQlNCe0JLQkNCdCivQotCg0J3QmNCd0JjQiyDQodCi0JXQktCQCivQotCg0J3QmNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCg0IrQkNCa0J7QkiDQlNCj0KjQkNCdCivQotCg0J3QntCS0JDQpiDQndCQ0JTQkAor0KLQoNCe0KfQkCDQmtCe0KDQndCV0JsKK9Ci0KDQntCo0JXQidCQ0KYg0JzQkNCi0J4KK9Ci0KDQntCo0JrQmNCdINCh0JDQktCV0KLQkAor0KLQoNCe0KjQmtCY0J0g0KLQkNCc0JDQoNCQCivQotCg0J7QiNCQ0J3QntCSINCV0JTQktCQ0KDQlAor0KLQoNCe0IjQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Ci0KDQntCI0JDQndCe0JIg0KDQntCc0JDQnQor0KLQoNCe0IjQmtCe0JLQmNCLINCY0JvQntCd0JAKK9Ci0KDQntCc0JvQldCgINCb0JDQodCb0J4KK9Ci0KDQn9Cn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQoNCf0KfQldCS0KHQmtCYINCi0J7QnNCn0JUKK9Ci0KDQn9CY0J3QkNCmINCI0JXQm9CV0J3QkAor0KLQoNCf0JrQkCDQn9CQ0JLQm9CVCivQotCg0J/QmtCQINCf0JDQktCb0JUKK9Ci0KDQn9Ce0JLQodCa0Jgg0JLQkNCh0JjQiQor0KLQoNCh0KLQldCK0JDQmiDQpNCg0JDQitCQCivQotCg0KLQmNCLINCh0JvQkNCS0JrQngor0KLQoNCj0KjQndCe0JLQldCmINCY0JLQkNCdCivQotCg0KPQkdCQ0KDQkNCmINCT0JDQkdCg0JjQiNCV0JvQkAor0KLQoNCj0JTQkCDQkNCb0JjQiNCQCivQotCg0KPQlNCY0Isg0JjQktCQ0J0KK9Ci0KDQo9CI0JjQiyDQlNCj0KjQmNCm0JAKK9Ci0KDQo9CI0JjQiyDQnNCY0JvQntCoINCS0JXQotCV0KDQmNCd0JDQoAor0KLQoNCj0JzQkdCY0Isg0JLQldCU0KDQkNCdCivQotCg0KPQnNCY0Isg0KHQntCk0JjQiNCQCivQotCg0KPQnNCY0Isg0JLQldCg0JAKK9Ci0KPQp9CV0JIg0JbQmNCS0JDQndCa0JAKK9Ci0KPQqNCV0JIg0JbQmNCS0JrQngor0KLQo9Co0IjQkNCaINCI0JDQnQor0KLQo9Co0IjQkNCaINCI0KPQoNCQ0IgKK9Ci0KPQqNCI0JDQmiDQnNCY0JvQntCoCivQotCj0KjQndCV0Jog0J7QotCY0JvQmNCI0JAKK9Ci0KPQqNCK0JDQmiDQkNCd0JAKK9Ci0KPQkdCY0Isg0JbQmNCS0JDQnQor0KLQo9CR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQo9CR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KPQkdCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KLQo9CR0JjQiyDQlNCj0KjQkNCdCivQotCj0JHQmNCLINCU0KPQqNCQ0J0KK9Ci0KPQkdCY0Isg0IjQo9CT0J7QodCb0JDQkgor0KLQo9CR0JjQiyDQm9CV0J/QntCh0JDQktCQCivQotCj0JHQmNCLINCc0JjQm9CQ0J0KK9Ci0KPQkdCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0KPQkdCY0Isg0JzQmNCb0JjQktCe0IgKK9Ci0KPQkdCY0Isg0JzQmNCb0J7QqAor0KLQo9CR0JjQiyDQnNCY0JvQntCI0JrQngor0KLQo9CR0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQo9CR0JjQiyDQndCY0JrQntCb0JAKK9Ci0KPQkdCY0Isg0J3QntCS0JDQmgor0KLQo9CR0JjQiyDQntCb0JPQkAor0KLQo9CR0JjQiyDQn9CV0KLQkNCgCivQotCj0JHQmNCLINCg0JDQlNCQCivQotCj0JHQmNCLINCg0JDQlNCc0JjQm9CQCivQotCj0JHQmNCLINCg0JDQlNCe0JLQkNCdCivQotCj0JHQmNCLINCh0JDQktCQCivQotCj0JHQmNCLINCh0KLQkNCd0JrQngor0KLQo9CR0JjQiyDQodCS0JXQotCe0JfQkNCgINCU0KAKK9Ci0KPQkdCY0Isg0JLQldCg0JAKK9Ci0KPQkdCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQo9CR0JjQiyDQl9Ce0KDQkNCdCivQotCj0JHQmNCdINCa0JDQotCQ0KDQmNCd0JAKK9Ci0KPQkdCY0J0g0KHQotCe0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KLQo9CR0JjQnSDQodCi0J7QiNCQCivQotCj0JHQmNCdINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0KPQkdCY0J0g0JfQntCg0JrQkAor0KLQo9Cm0JDQmtCe0JIg0ILQntCg0ILQlQor0KLQo9Cm0JDQmtCe0JIg0ILQntCg0ILQlQor0KLQo9Cm0JDQmtCe0JIg0JHQntCo0JrQngor0KLQo9Cm0JDQmtCe0JIg0JHQntCT0JTQkNCd0JrQkAor0KLQo9Cm0JDQmtCe0JIg0JHQntCg0JAKK9Ci0KPQptCQ0JrQntCSINCR0KDQkNCd0JrQngor0KLQo9Cm0JDQmtCe0JIg0JTQkNCg0JjQndCa0JAKK9Ci0KPQptCQ0JrQntCSINCU0KDQkNCT0JDQnQor0KLQo9Cm0JDQmtCe0JIg0JrQkNCc0JXQndCa0J4KK9Ci0KPQptCQ0JrQntCSINCb0JDQotCY0J3QmtCQCivQotCj0KbQkNCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Ci0KPQptCQ0JrQntCSINCc0JDQoNCa0J4KK9Ci0KPQptCQ0JrQntCSINCc0JjQm9CQ0J0KK9Ci0KPQptCQ0JrQntCSINCc0JjQm9CQ0J0KK9Ci0KPQptCQ0JrQntCSINCc0JjQm9CY0KbQkAor0KLQo9Cm0JDQmtCe0JIg0J3QntCS0JDQmgor0KLQo9Cm0JDQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Ci0KPQptCQ0JrQntCSINCg0JDQlNCe0IjQmtCQCivQotCj0KbQkNCa0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQotCj0KbQkNCa0J7QkiDQoNCQ0IjQmtCeCivQotCj0KbQkNCa0J7QkiDQodCY0J3QmNCo0JAKK9Ci0KPQptCQ0JrQntCSINCi0JDQndCQ0KHQmNCI0JUKK9Ci0KPQptCQ0JrQntCSINCS0JXQoNCQCivQotCj0KbQkNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQotCj0KbQkNCa0J7QkiDQl9Ce0KDQkNCd0JAKK9Ci0KPQptCQ0JrQntCSINCX0J7QoNCQCivQotCj0KbQkNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KLQo9Cm0JDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0KLQo9Cm0JDQmtCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQotCj0KbQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KLQo9Cm0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0KPQptCQ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCj0KbQmNCLINCC0J7QoNCC0JUKK9Ci0KPQptCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCj0KbQmNCLINCb0JDQl9CQ0KAKK9Ci0KPQptCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0KPQptCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQotCj0KbQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KPQptCY0Isg0JLQo9CI0JjQptCQCivQotCj0KbQntCS0JjQiyDQl9Ce0KDQkAor0KLQo9Ck0JXQk9CP0JjQiyDQnNCY0JvQldCdCivQotCj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQotCj0JrQkNCd0JjQiyDQldCd0JTQoNCVCivQotCj0JrQkNCd0JjQiyDQmNCg0JXQndCQCivQotCj0JrQkNCgINCk0JDQlNCY0JsKK9Ci0KPQmtCQ0KAg0JzQmNCg0IjQkNCd0JAKK9Ci0KPQmtCY0Isg0J/QldCi0JDQoAor0KLQo9Ca0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQotCj0JvQkNCLINCI0J7QktCY0KbQkAor0KLQo9Cb0JXQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Ci0KPQm9CV0J3Qp9CY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQotCj0JvQldCd0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0KPQm9CY0Isg0JHQntCg0JrQngor0KLQo9Cb0JjQiyDQndCV0JLQldCd0JrQngor0KLQo9Cb0KPQkdCV0KYg0ILQntCg0ILQlQor0KLQo9Cb0KPQkdCV0KYg0JzQmNCb0JrQkAor0KLQo9Cb0KPQkdCV0KYg0JLQkNCh0JjQm9CY0IjQlQor0KLQo9Cc0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCj0JzQkNCg0JjQiyDQptCS0JXQotCY0J0KK9Ci0KPQnNCQ0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCj0JzQkdCQ0KEg0JDQk9Cd0JXQl9CQCivQotCj0JzQkdCQ0KEg0JjQktCQ0J0KK9Ci0KPQnNCR0JDQoSDQidCj0JTQldCS0JjQogor0KLQo9Cc0JjQnSDQlNCj0KjQkNCd0JrQkAor0KLQo9Cd0JPQo9CXINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCj0J3QmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Ci0KPQndCY0Isg0KDQkNCI0JrQngor0KLQo9Cd0JjQiyDQodCf0JDQodCe0IjQlQor0KLQo9Cd0JjQiyDQodCi0JXQktCQ0J0KK9Ci0KPQndCi0JXQkiDQnNCQ0KDQmNCI0JAKK9Ci0KPQn9CQ0J3Qp9CV0JLQodCa0Jgg0J3QmNCa0J7Qm9CQCivQotCj0J/QldCmINCX0JLQntCd0JjQnNCY0KAKK9Ci0KPQn9CY0Isg0J3QldCS0JXQndCa0JAKK9Ci0KPQoCDQnNCY0KXQkNCI0JvQngor0KLQo9CgINCh0KPQl9CQ0J3QkAor0KLQo9Cg0KfQkNCdINCI0JDQnQor0KLQo9Cg0KfQkNCdINCI0JDQnQor0KLQo9Cg0KfQkNCdINCI0KPQoNCQ0IgKK9Ci0KPQoNCn0JDQnSDQktCb0JDQlNCY0JzQmNCgINCh0KPQlNCY0IjQkAor0KLQo9Cg0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQo9Cg0KjQmNCLINCI0JXQm9CV0J3QkAor0KLQo9Cg0KjQmNCI0JDQnSDQktCQ0KHQkAor0KLQo9Cg0JDQmCDQkdCV0JvQkAor0KLQo9Cg0JDQmCDQnNCY0KXQkNCI0JvQngor0KLQo9Cg0JDQmCDQotCV0KDQldCX0JAKK9Ci0KPQoNCQ0IjQm9CY0Isg0JzQmNCb0JUKK9Ci0KPQoNCQ0IjQm9CY0IjQkCDQkdCe0JbQmNCm0JAKK9Ci0KPQoNCQ0IjQm9CY0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQotCj0KDQkNCdINCC0KPQoNCQCivQotCj0KDQkNCdINCJ0KPQkdCY0KbQkAor0KLQo9Cg0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQotCj0KDQkNCd0KHQmtCYINCk0JXQoNCV0J3Qpgor0KLQo9Cg0JDQndCh0JrQmCDQk9CV0JfQkAor0KLQo9Cg0JDQndCh0JrQmCDQiNCQ0J3QntCoCivQotCj0KDQkNCd0KHQmtCYINCI0J7QodCY0J8KK9Ci0KPQoNCQ0J3QodCa0Jgg0JvQkNCh0JvQngor0KLQo9Cg0JDQndCh0JrQmCDQnNCQ0KDQmNCm0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQotCj0KDQkNCd0KHQmtCYINCc0JDQotCY0IjQkAor0KLQo9Cg0JDQndCh0JrQmCDQn9CV0KLQkNCgCivQotCj0KDQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0KLQo9Cg0Jgg0JDQoNCf0JDQlAor0KLQo9Cg0Jgg0KLQmNCR0J7QoAor0KLQo9Cg0JjQiyDQm9Cj0JrQkAor0KLQo9Cg0JjQiyDQnNCQ0KDQmNCd0JrQngor0KLQo9Cg0JjQmtCQINCI0J7QodCY0JwKK9Ci0KPQoNCY0J3QodCa0Jgg0JTQo9Co0JDQnQor0KLQo9Cg0JjQndCh0JrQmCDQldCU0JjQotCQCivQotCj0KDQmNCd0KHQmtCYINCc0JjQm9CV0KLQkAor0KLQo9Cg0JjQndCh0JrQmCDQnNCY0J7QnNCY0KAKK9Ci0KPQoNCaINCc0JjQoNCa0J4KK9Ci0KPQoNCaINCd0JDQlNCQCivQotCj0KDQmtCQ0Ikg0JrQkNCi0JAKK9Ci0KPQoNCa0J7QktCY0Isg0KXQkNCa0JjQiNCQCivQotCj0KDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0KPQoNCa0J7QktCY0Isg0JzQmNCi0JDQoAor0KLQo9Cg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQotCj0KDQmtCe0JLQmNCLINCg0JDQpNCY0KIKK9Ci0KPQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQo9Cg0JrQntCS0JjQiyDQl9CY0J3QmtCQCivQotCj0KDQmtCj0JvQntCSINCW0JDQmtCb0JjQndCQCivQotCj0KDQmtCj0JvQntCSINCU0KPQqNCQ0J0KK9Ci0KPQoNCa0KPQm9Ce0JIg0IjQntCS0JDQnQor0KLQo9Cg0JvQkNCa0J7QkiDQptCS0JXQotCQ0J0KK9Ci0KPQoNCd0JDQiCDQodCb0JDQktCe0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0KLQo9Cg0J4g0JzQmNCl0JDQiQor0KLQo9Cg0J7QnNCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Ci0KPQoNCe0J/QntCJ0JDQpiDQnNCY0IvQngor0KLQo9Cg0KPQlNCY0Isg0JzQmNCb0JDQnQor0KLQo9Cg0KPQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0KPQoNCj0JTQmNCI0JAg0JzQmNCb0J7QoNCQ0JQKK9Ci0KPQoNCj0JrQkNCb0J4g0JzQmNCe0JTQoNCQ0JMKK9Ci0KPQoNCj0JrQkNCb0J4g0KDQkNCU0JzQmNCb0JAKK9Ci0KPQoNCj0JrQkNCb0J4g0JfQntCg0JAKK9Ci0KPQoNCX0J4g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ci0KPQoNCX0J4g0JrQkNCg0JvQngor0KLQo9Ci0JjQiyDQmNCb0JjQiNCQCivQotCj0KLQndCY0JvQntCS0JjQiyDQndCQ0JTQkAor0KLQo9Ci0IrQldCS0JjQiyDQkdCe0JbQldCd0JrQkAor0KLQo9Ci0IrQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0KPQotCK0JXQktCY0Isg0IjQntCS0JDQnQor0KLQo9Ci0IrQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCj0KLQitCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQotCj0KLQntCg0J7QkiDQlNCV0KHQkNCd0KfQmNCLCivQotCj0KLQntCg0J7QkiDQiNCj0JvQmtCY0KbQkAor0KLQo9Ci0J7QoNCe0JIg0KHQotCQ0J3QkAor0KLQo9Ci0J7QoNCe0JIg0KHQotCV0JLQkNCdCivQotCj0KLQo9Cb0KPQk9CP0JjQiNCQINCc0JDQoNCQCivQotCj0JLQldCP0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KLQo9CS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCS0KDQotCa0J7QktCY0Isg0JzQkNCg0JjQnSDQlNCgINCb0JXQmtCQ0KAKK9Cj0KjQi9CV0JHQoNCa0JAg0JvQkNCX0JDQoAor0KPQqNCL0JXQkdCg0JrQkCDQnNCY0JvQldCd0JrQngor0KPQqNCL0JXQkdCg0JrQkCDQl9Cb0JDQotCeCivQo9Co0IvQo9Cc0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQo9Co0IvQo9Cc0JvQmNCLINCd0JXQqNCa0J4KK9Cj0KjQi9Cj0JzQm9CY0Isg0JLQo9Ca0JjQptCQCivQo9Co0JDQnSDQiNCQ0J3QldCXCivQo9Co0IjQkNCaINCI0JDQndCa0J4KK9Cj0KjQiNCQ0Jog0IjQkNCg0JzQmNCb0JAKK9Cj0KjQiNCQ0Jog0JLQm9CQ0KHQotCQCivQo9Co0InQldCR0KDQmtCQINCc0JjQm9Ce0KDQkNCUCivQo9Co0KLQmNCf0JDQmiDQiNCV0JvQkAor0KPQi9Cj0JrQkNCb0J4g0KHQmNCc0J4KK9Cj0JbQkNCgINCU0JXQodCQ0J3QmtCQCivQo9CW0JDQoCDQmtCQ0KLQmNCm0JAKK9Cj0JbQmNCn0JDQndCY0J0g0ILQntCg0ILQlQor0KPQkdCQ0JLQp9CY0Isg0KHQkNCS0JAKK9Cj0JHQkNCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KPQkdCQ0JLQmNCLINCJ0KPQkdCY0KbQkAor0KPQkdCQ0JLQmNCLINCc0J7QnNCn0JjQm9CeINCU0KAKK9Cj0JHQmNCf0JDQoNCY0J8g0KfQldCU0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JbQmNCS0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQk9Ce0IjQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCY0JvQlQor0KPQkdCY0J/QkNCg0JjQnyDQiNCQ0IrQkAor0KPQkdCY0J/QkNCg0JjQnyDQiNCe0JLQngor0KPQkdCY0J/QkNCg0JjQnyDQnNCQ0KDQmNCd0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQnNCQ0KDQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCc0JjQm9CQ0J0KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQmNCg0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQnNCe0JzQmNCgCivQo9CR0JjQn9CQ0KDQmNCfINCf0JDQktCb0JUKK9Cj0JHQmNCf0JDQoNCY0J8g0KHQm9CQ0JLQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCi0J7QlNCVCivQo9CR0JjQn9CQ0KDQmNCfINCS0J7QiNCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JfQlNCg0JDQktCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JfQntCg0JDQnQor0KPQkdCe0KDQmtCQINCo0JDQndCU0J7QoAor0KPQkdCe0KDQmtCQINCc0JDQoNCi0J7QnQor0KPQkdCe0KDQmtCQINCh0KLQldCS0JrQkAor0KPQkdCe0KDQitCYINCo0JDQndCU0J7QoAor0KPQkdCe0KDQitCYINCQ0J3QlNCg0JDQqAor0KPQkdCe0JLQmNCLINCV0JLQkAor0KPQkdCe0JLQmNCLINCI0JXQpNCi0JAKK9Cj0JHQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cj0JHQntCS0JjQiyDQnNCQ0KDQmtCeCivQo9CR0J7QktCY0Isg0JzQmNCb0J7QqAor0KPQkdCe0JLQmNCLINCf0JXQotCg0JAKK9Cj0JHQntCS0JjQiyDQoNCQ0IjQmtCeCivQo9Cm0JDQiCDQktCb0JDQlNCY0JzQmNCgCivQo9CU0JjQptCa0Jgg0J/QkNCI0JAKK9Cj0JTQmNCm0JrQmCDQodCb0JDQktCY0KbQkAor0KPQlNCY0KbQmtCYINCh0KDQldCU0J7QiNCVCivQo9CU0J7QktCY0KfQmNCLINCR0J7QkdCQ0J0KK9Cj0JTQntCS0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQo9CU0J7QktCY0KfQmNCLINCY0JLQkNCdCivQo9CU0J7QktCY0KfQmNCLINCc0J7QnNCY0KAKK9Cj0JTQntCS0JjQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KPQlNCe0JLQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cj0JTQntCS0JjQp9Ca0Jgg0JHQoNCQ0J3QmtCeINCb0JXQmtCQ0KAKK9Cj0JTQntCS0JjQp9Ca0Jgg0IjQo9Cb0JrQkAor0KPQlNCe0JLQmNCn0JrQmCDQntCb0JPQmNCm0JAg0JTQoAor0KPQlNCe0JLQmNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQo9CU0J7QktCY0KfQmtCYINCh0JLQldCi0J7Ql9CQ0KAKK9Cj0JTQoNCY0IjQkCDQn9CV0KLQkNCgCivQo9CU0JLQkNCg0JTQmCDQmtCQ0KDQm9CeCivQo9CT0JDQoNCn0JjQndCQINCR0J7QoNCY0KHQm9CQ0JIKK9Cj0JPQkNCg0KfQmNCd0JAg0JTQoNCQ0JPQkNCdCivQo9CT0JDQoNCn0JjQndCQINCY0JvQmNCI0JAKK9Cj0JPQkNCg0JDQmiDQgtCe0KDQgtCVCivQo9CT0JDQoNCQ0Jog0JHQntCW0J4KK9Cj0JPQkNCg0JDQmiDQlNCg0JDQk9CQ0J0KK9Cj0JPQkNCg0JDQmiDQlNCj0KjQkNCdCivQo9CT0JDQoNCQ0Jog0J/QldCi0JDQoAor0KPQk9CQ0KDQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQo9CT0JDQoNCa0J7QktCY0Isg0IjQldCb0JAKK9Cj0JPQkNCg0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cj0JPQkNCg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cj0JPQidCV0KjQmNCLINCR0J7QqNCa0J4KK9Cj0JPQidCV0KjQmNCLINCl0JjQm9CU0JAKK9Cj0JPQoNCn0JjQiyDQktCj0JrQmNCm0JAKK9Cj0JPQoNCV0KjQmNCLINCf0JXQotCQ0KAKK9Cj0JPQoNCV0Jwg0JzQkNCg0JjQiNCQCivQo9CT0KDQldCcINCg0JDQlNCe0JLQkNCdCivQo9CT0KDQldCdINCc0JjQm9Ce0KDQkNCUCivQo9CT0KDQldCdINCf0JXQotCQ0KAKK9Cj0JPQoNCV0J3QmNCLINCb0JDQodCb0J4KK9Cj0JPQoNCV0J3QmNCLINCc0JjQpdCQ0IkKK9Cj0JPQoNCV0J3QntCS0JjQiyDQktCj0KfQmNCLCivQo9CT0KDQldCd0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9Cj0JPQoNCY0KbQkCDQlNCg0JDQk9CQ0J0KK9Cj0JPQoNCY0KbQkCDQodCg0JXQi9Ca0J4KK9Cj0JPQoNCY0J0g0JjQm9CY0IjQkAor0KPQk9Cg0JjQnSDQnNCY0JvQntCS0JDQnQor0KPQk9Cg0JjQndCn0JjQiyDQlNCQ0J3QmNCb0JrQkAor0KPQk9Cg0JjQndCn0JjQiyDQlNCe0JHQoNCY0JvQkAor0KPQk9Cg0JjQndCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0KPQk9Cg0JjQndCn0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCgCivQo9CT0KDQmNCd0KfQmNCLINCh0KLQldCS0JDQnQor0KPQk9Cg0JjQndCn0JjQiyDQktCb0JDQlNCQINCU0JjQn9CbINCY0J3Qkwor0KPQk9Cg0JjQndCe0JIg0ILQo9Cg0JjQptCQCivQo9CT0KDQmNCd0J7QkiDQlNCe0JHQoNCY0JvQkAor0KPQk9Cg0JjQndCe0JIg0JzQmNCb0JjQptCQCivQo9CT0KDQmNCd0J7QkiDQndCQ0JTQkAor0KPQk9Cg0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cj0JPQoNCd0J7QkiDQl9Ce0KDQmNCm0JAKK9Cj0KXQldCgINCS0JXQoNCQCivQo9Cl0JvQkNCg0JjQmiDQldCb0JjQl9CQ0JHQldCi0JAKK9Cj0KXQm9CQ0KDQmNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Cj0KXQm9CQ0KDQmNCaINCh0KLQldCS0JDQnQor0KPQpdCe0KAg0J/QldCi0JDQoAor0KPQiCDQnNCQ0KDQotCe0J0KK9Cj0IjQp9CY0Isg0JHQm9CQ0JYKK9Cj0IjQp9CY0Isg0KLQntCc0JAKK9Cj0IjQlNCY0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KPQiNCk0JDQm9Cj0Kgg0JLQldCb0JjQnNCY0KAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0ILQo9Cg0JAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0IjQkNCd0JrQngor0KPQiNCk0JDQm9Cj0KjQmCDQiNCj0JvQmNCI0JDQnQor0KPQiNCk0JDQm9Cj0KjQmCDQidCj0JHQntCc0JjQoAor0KPQiNCk0JDQm9Cj0KjQmCDQnNCY0KDQntCh0JvQkNCSCivQo9CI0KTQkNCb0KPQqNCYINCd0JjQmtCe0JvQkAor0KPQiNCk0JDQm9Cj0KjQmCDQodCY0JvQktCV0KHQotCV0KAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KPQiNCk0JXQidCQ0J0g0JzQmNCb0JDQnQor0KPQiNCl0JDQl9CYINCR0J7QoNCY0KjQmtCQCivQo9CI0KXQkNCX0Jgg0JjQktCQ0J0KK9Cj0IjQpdCQ0JfQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KPQiNCl0JDQl9CYINCb0JDQlNCY0KHQm9CQ0JIKK9Cj0IjQpdCQ0JfQmCDQnNCY0KDQmtCeCivQo9CI0KXQldCJ0Jgg0IjQntCS0JDQndCa0JAKK9Cj0IjQpdCV0InQmCDQnNCY0KXQkNCJCivQo9CI0JvQkNCa0J7QqCDQmtCQ0KDQm9CeCivQo9CI0JLQkNCg0Jgg0JPQkNCR0J7QoAor0KPQiNCS0JDQoNCYINCa0JDQotCQ0JvQmNCdCivQo9Ca0JDQp9CV0Jog0JLQldCg0JrQkAor0KPQmtCg0J7Qn9CY0J3QkCDQp9CV0JTQkAor0KPQmtCg0J7Qn9CY0J3QkCDQlNCV0KHQkNCd0JrQkAor0KPQmtCg0J7Qn9CY0J3QkCDQiNCV0JvQldCd0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0IjQntCS0JDQndCa0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0IjQntCS0JDQnQor0KPQmtCg0J7Qn9CY0J3QkCDQnNCY0JvQntCS0JDQnQor0KPQmtCg0J7Qn9CY0J3QkCDQndCV0JHQntCI0KjQkAor0KPQmtCg0J7Qn9CY0J3QkCDQn9CQ0J3QotCeCivQo9Ca0KDQntCf0JjQndCQINCi0J7QnNCY0KHQm9CQ0JIKK9Cj0JvQldCc0JXQmiDQgtCj0KDQngor0KPQm9CY0Isg0JbQldCJ0JrQkAor0KPQm9CY0Isg0ILQntCg0ILQlQor0KPQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cj0JvQmNCLINCU0J7QkdCg0J7QodCb0JDQkgor0KPQm9CY0Isg0JzQmNCb0JDQnQor0KPQidCQ0KDQldCS0JjQiyDQn9CV0KDQngor0KPQnNCV0Jog0JzQkNCg0JPQmNCi0JAKK9Cj0JzQldCaINCc0JjQmtCb0J7QqAor0KPQnNCY0KfQldCS0JjQiyDQn9CV0KDQkAor0KPQnNCY0IvQldCS0JjQiyDQltCV0InQmtCeCivQo9Cc0JjQi9CV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQo9Cc0JjQi9CV0JLQmNCLINCc0JjQoNCa0J4KK9Cj0JzQmNCL0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQo9Cd0KfQkNCd0JjQnSDQkdCe0IjQkNCdCivQo9Cd0KfQkNCd0JjQnSDQlNCj0KjQkNCdCivQo9Cd0JPQkNCgINCi0JjQpdCe0JzQmNCgCivQo9Cd0JPQo9Cg0J7QktCY0Isg0IjQldCb0JXQndCQCivQo9Cd0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0KPQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQo9Cg0JDQpyDQqNCQ0J3QlNCe0KAKK9Cj0KDQkNCnINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cg0JDQpyDQlNCQ0J3QmNCm0JAKK9Cj0KDQkNCnINCT0JjQl9CV0JvQkAor0KPQoNCQ0Kcg0JjQqNCi0JLQkNCdCivQo9Cg0JDQpyDQoNCe0JfQkNCb0JjQiNCQCivQo9Cg0JHQkNCdINCC0JXQoNCCCivQo9Cg0JHQkNCdINCC0J7QoNCC0JUKK9Cj0KDQkdCQ0J0g0JDQndCQCivQo9Cg0JHQkNCdINCl0J7QoNCS0JDQogor0KPQoNCR0JDQnSDQmNCo0KLQktCQ0J0KK9Cj0KDQkdCQ0J0g0IjQkNCd0J7QqAor0KPQoNCR0JDQnSDQiNCQ0KHQndCQCivQo9Cg0JHQkNCdINCc0JjQpdCQ0IkKK9Cj0KDQkdCQ0J0g0JzQmNCl0JDQiQor0KPQoNCR0JDQnSDQn9CQ0JLQldCbCivQo9Cg0JHQkNCdINCh0KLQkNCd0JjQodCb0JDQkgor0KPQoNCR0JDQnSDQodCi0JXQktCQ0J0KK9Cj0KDQkdCQ0J0g0JLQmNCa0KLQntCg0JjQiNCQCivQo9Cg0JHQkNCdINCS0JvQkNCU0JjQodCb0JDQkgor0KPQoNCR0JDQndCn0JjQmiDQn9CY0KDQntCo0JrQkAor0KPQoNCR0JDQndCn0JjQmiDQodCY0JvQktCY0JAKK9Cj0KDQkdCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cj0KDQlNCQ0KDQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQo9Cg0JXQmtCVINCC0J7QoNCC0JUKK9Cj0KDQmCDQp9CQ0JHQkAor0KPQoNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cg0Jgg0JXQktCQCivQo9Cg0Jgg0JPQkNCR0J7QoAor0KPQoNCYINCa0JDQoNCb0J4KK9Cj0KDQmCDQm9CQ0KHQm9CeCivQo9Cg0Jgg0J/QkNCI0JAKK9Cj0KDQmCDQodCi0JXQktCQ0J0KK9Cj0KDQmCDQodCi0JXQktCQ0J0KK9Cj0KDQmtCY0J0g0InQo9CR0JjQptCQCivQo9Cg0JvQmNClINCc0JDQoNCY0IjQkAor0KPQoNCe0KjQldCSINCW0JjQktCQ0J0KK9Cj0KDQntCo0JXQkiDQkdCe0IjQmtCQCivQo9Cg0J7QqNCV0JIg0JjQm9CY0IjQkAor0KPQoNCe0KjQldCSINCI0JXQoNCY0KbQkAor0KPQoNCe0KjQldCSINCc0JjQm9CV0J3QmtCeCivQo9Cg0J7QqNCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cj0KDQntCo0JXQkiDQn9CQ0IjQkAor0KPQoNCe0KjQldCSINCh0J7QpNCY0IjQkAor0KPQoNCe0KjQldCSINCh0KLQntCI0JDQnQor0KPQoNCe0KjQldCSINCS0JXQm9CY0J3QmtCQCivQo9Cg0J7QqNCV0JLQmNCLINCW0JjQktCQ0J0KK9Cj0KDQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cj0KDQntCo0JXQktCY0Isg0JHQntCT0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0KPQoNCe0KjQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KPQoNCe0KjQldCS0JjQiyDQkdCg0JDQndCa0JAKK9Cj0KDQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQo9Cg0J7QqNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQo9Cg0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cj0KDQntCo0JXQktCY0Isg0JjQktCQ0J0KK9Cj0KDQntCo0JXQktCY0Isg0JvQldCe0J3QkAor0KPQoNCe0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cj0KDQntCo0JXQktCY0Isg0InQo9CR0JjQptCQCivQo9Cg0J7QqNCV0JLQmNCLINCc0JDQoNCa0JAKK9Cj0KDQntCo0JXQktCY0Isg0JzQmNCb0J7QqAor0KPQoNCe0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KPQoNCe0KjQldCS0JjQiyDQndCQ0JTQkAor0KPQoNCe0KjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cj0KDQntCo0JXQktCY0Isg0KHQoNCC0JAKK9Cj0KDQntCo0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Cj0KDQntCo0JXQktCY0Isg0JLQmNCU0J7QiNCa0J4KK9Cj0KDQntCo0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KPQoNCe0KjQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cj0KDQodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KPQoNCh0KPQm9CV0KHQmtCjINCk0JvQntCg0JjQnQor0KPQoNCh0KPQm9CV0KHQmtCjINCI0KPQm9CY0IjQkNCdCivQo9Ch0JrQntCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9Ch0JrQntCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cj0KHQmtCe0JrQntCS0JjQiyDQnNCY0JvQntCoCivQo9Ch0KLQmNCLINCC0KPQoNCQCivQo9Ch0KLQmNCLINCd0JjQmtCe0JvQkAor0KPQodCi0JjQiyDQodCY0JzQkAor0KPQodCi0JjQiyDQktCe0IjQmtCeCivQo9Ci0JDQqNCYINCn0JDQkdCQCivQo9Ci0IjQldCo0JDQndCe0JLQmNCLINCh0JjQnNCeCivQo9Ci0IjQldCo0JjQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQo9Ci0IjQldCo0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQo9Ci0IjQldCo0JjQndCe0JLQmNCLINCS0JXQoNCQCivQo9Ci0J7QoNCd0JjQmiDQmNCS0JDQnQor0KPQotCe0KDQndCY0Jog0IjQntCS0JDQnQor0KPQotCe0KDQndCY0Jog0JrQkNCi0JjQptCQCivQo9Ci0J7QoNCd0JjQmiDQidCj0JHQmNCm0JAKK9Cj0KLQntCg0J3QmNCaINCc0JjQm9Ce0KgKK9Cj0KLQntCg0J3QmNCaLdCg0JDQlNCj0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cj0KLQntCg0J3QmNCaINCh0KLQldCS0JDQnQor0KPQotCe0KDQndCY0Jog0KHQktCV0KLQntCX0JDQoAor0KPQotCg0JbQkNCdINCR0KDQkNCd0JrQngor0KPQotCS0JjQiyDQmtCe0KHQotCQCivQo9Ci0JLQmNCLINCf0JDQktCb0JUKK9Cj0KLQktCY0Isg0JLQkNCh0JAKK9Cj0KLQktCY0Ist0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQlNCQ0KDQkAor0KPQktCQ0JvQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cj0JLQkNCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0KPQktCQ0JvQmNCLINCU0KPQqNCQ0J0KK9Cj0JLQkNCb0JjQiyDQlNCj0KjQmtCeCivQo9CS0JDQm9CY0Isg0JvQkNCX0JDQoAor0KPQktCQ0JvQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cj0JLQkNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQo9CS0JDQm9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQo9CS0JDQm9CY0Isg0JLQkNCh0JAKK9Cj0JLQldCg0JjQiyDQgtCj0KDQkAor0KPQktCV0KDQmNCLINCR0KDQkNCd0JrQkAor0KPQktCV0KDQmNCLINCc0JjQm9CQ0J0KK9Cj0JLQldCg0JjQiyDQnNCY0JvQntCoCivQo9CS0JXQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cj0JLQldCg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KPQktCV0KDQmNCLINCd0JjQmtCe0JvQkAor0KPQl9CQ0JjQoCDQkNCb0JjQiNCQCivQo9CX0JXQmNCg0Jgg0JzQo9CQ0KDQldCcCivQo9CX0JXQm9CQ0KYg0ILQntCg0ILQlQor0KPQl9CV0JvQkNCmINCC0J7QoNCC0JUKK9Cj0JfQldCb0JDQpiDQgtCe0KDQgtCVCivQo9CX0JXQm9CQ0KYg0ILQntCg0ILQlQor0KPQl9CV0JvQkNCmINCC0KPQoNCY0KbQkAor0KPQl9CV0JvQkNCmINCC0KPQoNCeCivQo9CX0JXQm9CQ0KYg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cj0JfQldCb0JDQpiDQkNCb0JXQmtCh0JAKK9Cj0JfQldCb0JDQpiDQkdCY0KHQldCg0JrQkAor0KPQl9CV0JvQkNCmINCR0J7QqNCa0J4KK9Cj0JfQldCb0JDQpiDQkdCe0JPQlNCQ0J0KK9Cj0JfQldCb0JDQpiDQkdCe0JPQlNCQ0J0KK9Cj0JfQldCb0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cj0JfQldCb0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cj0JfQldCb0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cj0JfQldCb0JDQpiDQkdCg0JDQndCa0J4KK9Cj0JfQldCb0JDQpiDQptCS0JXQotCQCivQo9CX0JXQm9CQ0KYg0JTQkNCg0JjQndCa0JAKK9Cj0JfQldCb0JDQpiDQlNCV0KHQkNCd0JrQkAor0KPQl9CV0JvQkNCmINCU0KDQkNCT0JDQnQor0KPQl9CV0JvQkNCmINCU0KDQkNCT0JDQnQor0KPQl9CV0JvQkNCmINCU0KDQkNCT0JDQnQor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J3QmtCQCivQo9CX0JXQm9CQ0KYg0JTQo9Co0JDQnQor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J0KK9Cj0JfQldCb0JDQpiDQlNCj0KjQkNCdCivQo9CX0JXQm9CQ0KYg0JTQo9Co0JDQnQor0KPQl9CV0JvQkNCmINCV0JLQkAor0KPQl9CV0JvQkNCmINCT0JDQm9CY0J3QkAor0KPQl9CV0JvQkNCmINCT0J7QoNCU0JDQndCQCivQo9CX0JXQm9CQ0KYg0JjQm9CY0IjQkAor0KPQl9CV0JvQkNCmINCY0JLQkNCdCivQo9CX0JXQm9CQ0KYg0IjQldCb0JXQndCQCivQo9CX0JXQm9CQ0KYg0JrQntCh0KLQkAor0KPQl9CV0JvQkNCmINCb0JDQl9CQ0KAKK9Cj0JfQldCb0JDQpiDQnNCQ0KDQmNCI0JAKK9Cj0JfQldCb0JDQpiDQnNCQ0KDQmNCI0JAKK9Cj0JfQldCb0JDQpiDQnNCQ0KDQmNCI0JAKK9Cj0JfQldCb0JDQpiDQnNCQ0KDQmNCI0JAKK9Cj0JfQldCb0JDQpiDQnNCY0KXQkNCI0JvQngor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQlQor0KPQl9CV0JvQkNCmINCc0JjQm9CY0KbQkAor0KPQl9CV0JvQkNCmINCc0JjQm9Ce0KgKK9Cj0JfQldCb0JDQpiDQnNCe0JzQp9CY0JvQngor0KPQl9CV0JvQkNCmINCd0JjQmtCe0JvQkAor0KPQl9CV0JvQkNCmINCd0JjQmtCe0JvQkAor0KPQl9CV0JvQkNCmINCe0JvQmNCS0JXQoNCQCivQo9CX0JXQm9CQ0KYg0KDQkNCU0JzQmNCb0JAKK9Cj0JfQldCb0JDQpiDQoNCQ0JTQntCI0JrQkAor0KPQl9CV0JvQkNCmINCg0JXQndCQ0KLQkAor0KPQl9CV0JvQkNCmINCh0JvQkNCS0JrQngor0KPQl9CV0JvQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cj0JfQldCb0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQo9CX0JXQm9CQ0KYg0KHQntCk0JjQiNCQCivQo9CX0JXQm9CQ0KYg0KHQoNCC0JDQnQor0KPQl9CV0JvQkNCmINCh0KDQgtCQ0J0KK9Cj0JfQldCb0JDQpiDQodCi0JXQktCQ0J0KK9Cj0JfQldCb0JDQpiDQodCi0JXQktCQ0J0KK9Cj0JfQldCb0JDQpiDQodCi0JXQktCQ0J0KK9Cj0JfQldCb0JDQpiDQodCi0JXQktCQ0J0KK9Cj0JfQldCb0JDQpiDQodCi0J7QiNCQ0J0KK9Cj0JfQldCb0JDQpiDQktCV0KDQkAor0KPQl9CV0JvQkNCmINCS0KPQiNCeCivQo9CX0JXQm9CQ0KYg0JfQm9CQ0KLQmtCeCivQo9CX0JXQm9CQ0KYg0JfQm9CQ0KLQmtCeCivQo9CX0JXQm9CQ0KYg0JfQm9CQ0KLQmtCeCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0J7QoNCe0KbQmtCYINCY0KjQotCS0JDQnQor0KPQl9Cj0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cj0JfQo9Cd0J7QktCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KPQl9Cj0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KPQl9Cj0J3QntCS0JjQiyDQnNCY0KLQngor0KPQl9Cj0J3QntCS0JjQiyDQndCQ0KHQo9CkCivQo9CX0KPQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cj0JfQo9Cg0J7QkiDQntCR0KDQldCd0JjQiNCQCivQo9CX0KPQoNCe0JIg0KDQkNCU0JzQmNCb0JAKK9CS0JDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JDQp9CY0Isg0JfQntCg0JDQnQor0JLQkNCn0JjQmiDQiNCe0JbQldCkCivQktCQ0Kgg0JDQotCY0JvQkAor0JLQkNCoINCI0J7QodCY0J8KK9CS0JDQqCDQn9CQ0JLQm9CVCivQktCQ0Kgg0JLQldCg0JAKK9CS0JDQqNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQkNCo0JDQqCDQnNCY0JrQm9Ce0KgKK9CS0JDQqNCQ0Kgg0J7Qm9CT0JAKK9CS0JDQqNCQ0JTQmCDQpNCV0KDQldCd0KYKK9CS0JDQqNCQ0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQktCQ0KjQkNCU0Jgg0JLQkNCb0JXQoNCY0IjQkAor0JLQkNCo0JDQm9CY0Isg0JDQndCa0JAKK9CS0JDQqNCQ0JvQmNCLINCc0JjQm9Ce0KgKK9CS0JDQqNCQ0JvQmNCLINCe0JHQoNCQ0JQKK9CS0JDQqNCQ0JvQmNCLINCj0KDQntCoCivQktCQ0KjQotCQ0JMg0ILQntCg0ILQlQor0JLQkNCo0KLQkNCTINCQ0J3QlNCg0JDQqAor0JLQkNCo0KLQkNCTINCY0KjQotCS0JDQnQor0JLQkNCo0KLQkNCTINCY0KjQotCS0JDQnQor0JLQkNCo0KLQkNCTINCI0JDQodCc0JjQndCa0JAKK9CS0JDQqNCi0JDQkyDQnNCQ0KDQk9CY0KLQkAor0JLQkNCo0KLQkNCTINCc0JDQoNCY0IjQkAor0JLQkNCo0KLQkNCTINCc0JjQpdCQ0IkKK9CS0JDQqNCi0JDQkyDQntCb0JPQkAor0JLQkNCo0KLQkNCTINCg0KPQltCQCivQktCQ0KjQotCQ0JMg0KHQotCe0IjQkNCdCivQktCQ0JbQmNCLINCU0JDQndCY0KbQkAor0JLQkNCW0JjQiyDQiNCe0JLQkNCdCivQktCQ0JbQmNCLINCI0KPQm9CY0IjQkAor0JLQkNCW0JjQiyDQnNCY0KDQkAor0JLQkNCW0JjQiyDQodCb0JDQktCY0KbQkAor0JLQkNCW0JjQiyDQktCV0KDQmNCm0JAKK9CS0JDQltCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0JDQltCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQkNCW0J7QitCYINCQ0J3QotCQ0JsKK9CS0JDQltCe0IrQmCDQoNCe0JfQkNCb0JjQiNCQCivQktCQ0KbQmCDQqNCY0JzQntCdCivQktCQ0KbQmNCLINCR0JvQkNCT0J7QiNCVCivQktCQ0KbQmNCLINCS0JjQlNCV0J0KK9CS0JDQptCb0JDQktCY0Jog0JzQkNCg0JjQiNCQCivQktCQ0JTQkNCh0JrQmCDQptCV0KbQmNCb0JjQiNCQCivQktCQ0JTQkNCh0JrQmCDQidCj0JHQntCc0JjQoAor0JLQkNCU0J7QpiDQpNCg0JDQitCQCivQktCQ0JTQntCmINCY0JLQmNCm0JAKK9CS0JDQlNCe0KYg0IjQntCh0JjQnwor0JLQkNCT0JjQiyDQgtCj0KDQngor0JLQkNCT0J3QldCgINCC0KPQoNCQCivQktCQ0JPQndCV0KAg0JDQndCU0KDQmNCI0JAKK9CS0JDQk9Cd0JXQoCDQiNCe0KHQmNCfCivQktCQ0JPQndCV0KAg0JrQkNCg0JvQngor0JLQkNCT0J3QldCgINCb0JDQodCb0J4KK9CS0JDQk9Cd0JXQoCDQnNCQ0KDQmNCI0JAKK9CS0JDQk9Cd0JXQoCDQntCi0JjQm9CY0IjQkAor0JLQkNCT0J4g0JjQqNCi0JLQkNCdCivQktCQ0JPQniDQodCi0JXQktCQ0J0KK9CS0JDQk9Cj0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQktCQ0IjQkNCT0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQkNCI0JDQk9CY0Isg0JHQntCo0JrQngor0JLQkNCI0JDQk9CY0Isg0JPQntCg0JTQkNCd0JAKK9CS0JDQiNCQ0JPQmNCLINCc0JjQm9CQ0J0KK9CS0JDQiNCQ0JPQmNCLINCd0JjQmtCe0JvQkCDQlNCgCivQktCQ0IjQkNCT0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQiNCQ0JPQmNCLINCh0JDQktCeCivQktCQ0IjQkNCT0JjQiyDQodCY0JzQkAor0JLQkNCI0JDQk9CY0Isg0KHQotCe0IjQkNCdCivQktCQ0IjQkNCT0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0JDQiNCU0JAg0KjQkNCd0JTQntCgCivQktCQ0IjQlNCQINCo0JDQndCU0J7QoAor0JLQkNCI0JTQkCDQmNCg0JzQkAor0JLQkNCI0JTQkCDQm9CQ0IjQntCoCivQktCQ0IjQlNCQINCb0JDQiNCe0KgKK9CS0JDQiNCU0JAg0KLQmNCR0J7QoAor0JLQkNCI0JTQkCDQotCe0JzQmNCh0JvQkNCSCivQktCQ0IjQlNCY0Isg0JbQmNCS0JrQngor0JLQkNCI0JTQmNCLINCY0JLQkNCdCivQktCQ0IjQlNCY0Isg0IjQntCS0JDQnSDQlNCgCivQktCQ0IjQlNCY0Isg0IjQntCS0JDQnSDQlNCgCivQktCQ0IjQlNCY0Isg0JzQmNCb0JjQptCQCivQktCQ0IjQlNCY0Isg0JzQmNCb0JjQptCQCivQktCQ0IjQlNCY0Isg0J3QkNCU0JAKK9CS0JDQiNCU0JjQiyDQn9CV0KLQkNCgCivQktCQ0IjQlNCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JDQiNCU0Jsg0IjQntCS0JDQnQor0JLQkNCI0JTQmyDQnNCY0KDQntCh0JvQkNCSCivQktCQ0IjQlNCb0JUg0IjQntCb0JDQnQor0JLQkNCI0JvQldCgINCQ0J3QlNCg0JjQiNCQCivQktCQ0IjQndCo0KLQkNCI0J0g0J/QldCi0JDQoAor0JLQkNCI0J3QkdCV0KDQk9CV0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JLQkNCI0J3QkdCV0KDQk9CV0KAg0JfQm9CQ0KLQmtCeCivQktCQ0IjQndCR0JXQoNCT0JXQoCDQl9CS0J7QndCY0JzQmNCgCivQktCQ0IjQndCT0JXQoNCi0J3QldCgINCg0JDQlNCe0IjQmtCQINCU0JjQn9CbINCV0KbQpgor0JLQkNCI0J3QpdCV0J/QmyDQnNCQ0KDQmNCQCivQktCQ0IjQndCl0JXQn9CbINCe0KLQnNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCQ0IjQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQktCQ0IjQoSDQqNCQ0J3QlNCe0KAKK9CS0JDQiNChINCR0KDQkNCd0JrQngor0JLQkNCI0KEg0JrQkNCg0JvQngor0JLQkNCI0KEg0JrQkNCg0JvQngor0JLQkNCI0KEg0JzQkNCT0JTQkAor0JLQkNCI0KEg0JLQldCg0JjQptCQCivQktCQ0IjQodCV0J3QkdCV0KDQkyDQiNCe0KHQmNCfCivQktCQ0IjQo9Ca0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9CS0JDQmtCQ0IrQkNCmINCc0JjQm9CY0KbQkAor0JLQkNCbINCC0J7QoNCC0JUKK9CS0JDQmyDQkNCd0JTQoNCY0IjQkAor0JLQkNCbINCV0JLQkAor0JLQkNCbINCX0J7Qm9Ci0JDQnQor0JLQkNCb0JDQpSDQiNCQ0J3QmtCeCivQktCQ0JvQkNCdINCe0KHQotCe0IjQkAor0JLQkNCb0JDQnSDQl9Ce0KDQkNCdCivQktCQ0JvQlNCc0JAg0JDQoNCR0J4KK9CS0JDQm9CV0Jog0JXQnNCY0JvQmNCI0JAKK9CS0JDQm9CV0Jog0KTQoNCQ0IrQkAor0JLQkNCb0JXQndCn0JjQmiDQn9CQ0JLQldCbCivQktCQ0JvQldCd0KfQmNCaINCh0KLQldCS0JDQnQor0JLQkNCb0JXQndCL0JjQmiDQkNCd0JTQoNCY0IjQkAor0JLQkNCb0JXQndCL0JjQmiDQiNCQ0J0KK9CS0JDQm9CV0J3Qi9CY0Jog0J/QkNCS0JvQlQor0JLQkNCb0JXQndCL0JjQmiDQktCb0JDQlNCY0JzQmNCgCivQktCQ0JvQldCd0KIg0JbQo9CW0JDQndCQCivQktCQ0JvQldCd0KIg0IjQkNCd0JrQngor0JLQkNCb0JXQndCiINCI0JDQndCa0J4KK9CS0JDQm9CV0J3QoiDQm9CQ0KHQm9CeCivQktCQ0JvQldCd0KLQkCDQiNCQ0KHQnNCY0J3QmtCQCivQktCQ0JvQldCd0KLQldCK0Jgg0IjQntCh0JjQnwor0JLQkNCb0JXQndCi0JXQitCYINCI0KPQm9CY0IjQkNCd0JAKK9CS0JDQm9CV0J3QotCY0Isg0JjQktCQ0J0KK9CS0JDQm9CV0J3QotCY0Isg0JLQmNCa0KLQntCgCivQktCQ0JvQldCd0KLQmNCLINCS0JjQmtCi0J7QoAor0JLQkNCb0JXQndCi0JjQmiDQndCY0JrQntCb0JAKK9CS0JDQm9CV0J3QotCY0J0g0JjQnNCg0JUKK9CS0JDQm9CV0J3QotCY0J0g0IjQo9Cm0JjQmtCQCivQktCQ0JvQldCd0KLQmNCdINCh0KLQldCS0JDQnQor0JLQkNCb0JXQndCi0JjQoNCe0JIg0KHQotCV0JLQkNCdCivQktCQ0JvQldCd0KLQmNCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JDQm9CV0J3QotCe0JLQmNCLINCI0J7QodCY0J8KK9CS0JDQm9CV0J3QotCe0JLQmNCLINCa0JDQoNCb0J4KK9CS0JDQm9CV0J3QotCe0JLQmNCLINCa0JDQoNCb0J4KK9CS0JDQm9CV0J3QotCe0JLQmNCLINCa0JDQoNCb0J4KK9CS0JDQm9CV0J3QotCe0JLQmNCLINCi0JjQkdCe0KAKK9CS0JDQm9CY0Isg0JPQntCg0JDQnQor0JLQkNCb0JjQiyDQodCb0JDQktCa0J4KK9CS0JDQm9CY0I/QmNCI0JAg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0JLQkNCb0JjQpdCe0KDQkCDQiNCe0JfQldCkCivQktCQ0JvQmNCl0J7QoNCQINCa0JDQotCY0KbQkAor0JLQkNCb0JrQkNCYINCI0J7QltCV0KQKK9CS0JDQm9Ca0J4g0JPQkNCS0KDQkAor0JLQkNCb0J4g0JPQntCg0JTQkNCd0JAKK9CS0JDQm9CeINCI0J7QodCY0J8KK9CS0JDQm9CeINCI0J7QodCY0J8KK9CS0JDQm9CeINCc0JjQoNCa0J4KK9CS0JDQm9CeINCh0KLQldCS0JDQnQor0JLQkNCb0J7QmiDQgtCe0KDQgtCVCivQktCQ0JvQntCaINCC0KPQoNCQCivQktCQ0JvQntCaINCg0JDQotCe0JzQmNCgCivQktCQ0JvQotCV0KAg0JTQoNCQ0JPQmNCK0JAKK9CS0JDQm9Ci0JXQoCDQidCY0InQkNCd0JAKK9CS0JDQm9Ci0JXQoCDQndCe0KDQkdCV0KDQogor0JLQkNCb0KLQndCV0KAg0J/QldCi0JDQoAor0JLQkNCb0KPQqNCV0Jog0IjQntCS0JDQnQor0JLQkNCb0KPQqNCV0Jog0JrQkNCi0JjQptCQCivQktCQ0JvQo9Co0JXQmiDQn9CQ0JLQm9CVCivQktCQ0JvQo9ClINCR0KDQkNCd0JjQodCb0JDQkgor0JLQkNCb0KPQpSDQiNCQ0J3QmtCeCivQktCQ0JvQo9ClINCI0JDQndCa0J4KK9CS0JDQm9Cj0KUg0JrQkNCg0JvQngor0JLQkNCb0KPQpSDQnNCY0KXQkNCI0JvQngor0JLQkNCc0JHQkNClINCS0JjQmtCi0J7QoNCY0IjQkAor0JLQkNCc0J7QqNCV0KAg0JzQmNCg0IjQkNCd0JAKK9CS0JDQnNCe0KjQldCgINCf0JDQktCb0JUKK9CS0JDQnNCf0J7QktCQ0KYg0IjQntCh0JjQnwor0JLQkNCd0ILQldCbINCc0JjQm9CQ0J0KK9CS0JDQndCU0JXQoNCV0KAg0J/QkNCbCivQktCQ0J3QlNCe0KDQmCDQnNCQ0KDQmNCI0JAKK9CS0JDQndCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQkNCd0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0JDQndCY0Isg0InQo9CR0JjQptCQCivQktCQ0IrQo9CgINCk0KDQkNCK0JAKK9CS0JDQitCj0KAg0KTQoNCQ0IrQkAor0JLQkNCK0KPQoCDQmNCo0KLQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQktCQ0IrQo9CgINCI0J7QltCV0KQKK9CS0JDQitCj0KAg0IjQntCh0JjQnwor0JLQkNCK0KPQoCDQmtCQ0KDQm9CeCivQktCQ0IrQo9CgINCa0JDQoNCb0J4KK9CS0JDQitCj0KAg0JzQkNCg0JjQiNCQCivQktCQ0J3QmtCeINCI0JDQoNCe0KHQm9CQ0JIKK9CS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQktCQ0J/QkCDQiNCe0JLQkNCd0JrQkAor0JLQkNCf0JAg0JzQmNCb0JDQnSDQlNCgCivQktCQ0J/QkCDQktCV0KDQkAor0JLQkNCf0JAg0JfQntCg0JDQnQor0JLQkNCf0JXQndCh0JrQmCDQmNCS0JDQnQor0JLQkNCf0JXQndCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCo0JDQitCYINCY0KDQldCd0JAKK9CS0JDQoNCQ0ILQkNCd0JjQnSDQnNCY0JvQkNCdCivQktCQ0KDQkNCU0Jgg0KLQmNCR0J7QoCDQlNCgINCf0KDQntCkCivQktCQ0KDQkNCT0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0JDQoNCQ0JPQmNCLINCJ0KPQkdCY0KbQkAor0JLQkNCg0JDQk9CY0Isg0JzQkNCg0JjQiNCQCivQktCQ0KDQkNCT0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQktCQ0KDQkNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JDQoNCQ0JPQmNCLINCS0JjQi9CV0J3QotCY0IjQlQor0JLQkNCg0JDQiNCY0Isg0JPQntCg0JDQnQor0JLQkNCg0JDQiNCY0Isg0JPQntCg0JDQnQor0JLQkNCg0JDQktCQINCV0JzQmNCb0JjQiNCQ0J0KK9CS0JDQoNCR0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQktCQ0KDQptCQ0KAg0JTQldCh0JDQndCa0JAKK9CS0JDQoNCU0JjQiyDQk9CQ0JLQoNCY0JvQngor0JLQkNCg0JXQndCY0JrQkCDQgtCe0JrQkAor0JLQkNCg0JXQndCY0JrQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQoNCV0J3QmNCa0JAg0KDQkNCU0J7QiNCa0JAKK9CS0JDQoNCV0JLQkNCmINCU0KDQkNCT0JDQnQor0JLQkNCg0JPQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQINCo0JDQndCU0J7QoAor0JLQkNCg0JPQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQLdCo0J7QnNCe0ILQmCDQiNCQ0J3QntCoCivQktCQ0KDQk9CQINCW0JDQoNCa0J4KK9CS0JDQoNCT0JAg0ILQldCg0IIKK9CS0JDQoNCT0JAg0ILQntCg0ILQlQor0JLQkNCg0JPQkCDQgtCe0KDQgtCVCivQktCQ0KDQk9CQINCC0KPQm9CQCivQktCQ0KDQk9CQINCC0KPQoNCQCivQktCQ0KDQk9CQINCC0KPQoNCQCivQktCQ0KDQk9CQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCQ0KDQk9CQINCQ0J3QkAor0JLQkNCg0JPQkCDQkNCd0JTQoNCQ0KgKK9CS0JDQoNCT0JAg0JDQndCU0KDQmNCI0JAKK9CS0JDQoNCT0JAg0JDQndCU0KDQmNCI0JAKK9CS0JDQoNCT0JAg0JDQndCi0J7QnQor0JLQkNCg0JPQkCDQkNCg0JDQndCa0JAKK9CS0JDQoNCT0JAg0JHQldCb0JAKK9CS0JDQoNCT0JAg0JHQldCb0JAKK9CS0JDQoNCT0JAg0JHQmNCJ0JDQndCQCivQktCQ0KDQk9CQLdCR0KPQoNCQ0Jgg0JXQoNCW0JXQkdCV0KIKK9CS0JDQoNCT0JAg0JTQoNCQ0JPQmNCm0JAKK9CS0JDQoNCT0JAg0JTQo9Co0JDQndCa0JAKK9CS0JDQoNCT0JAg0JXQoNCW0JjQmtCQCivQktCQ0KDQk9CQINCk0JXQoNCV0J3Qpgor0JLQkNCg0JPQkCDQpNCV0KDQldCd0KYKK9CS0JDQoNCT0JAg0KTQldCg0JXQndCmCivQktCQ0KDQk9CQINCk0KDQkNCK0JAKK9CS0JDQoNCT0JAg0KTQoNCQ0IrQkAor0JLQkNCg0JPQkCDQpNCg0JDQitCeCivQktCQ0KDQk9CQINCk0KDQkNCK0J4KK9CS0JDQoNCT0JAg0JPQkNCR0J7QoAor0JLQkNCg0JPQkCDQk9CY0JfQldCb0JAKK9CS0JDQoNCT0JAg0KXQldCb0JXQndCQCivQktCQ0KDQk9CQINCY0KjQotCS0JDQnQor0JLQkNCg0JPQkCDQmNCo0KLQktCQ0J0KK9CS0JDQoNCT0JAg0JjQqNCi0JLQkNCdCivQktCQ0KDQk9CQINCY0KjQotCS0JDQnQor0JLQkNCg0JPQkCDQmNCb0JXQqAor0JLQkNCg0JPQkCDQmNCc0KDQlQor0JLQkNCg0JPQkC3QmNCS0JDQnSDQkNCd0JPQldCb0JjQndCQCivQktCQ0KDQk9CQINCI0JDQmtCY0JwKK9CS0JDQoNCT0JAg0IjQkNCdINCU0KAKK9CS0JDQoNCT0JAg0IjQkNCd0J7QqAor0JLQkNCg0JPQkCDQiNCQ0J3QntCoCivQktCQ0KDQk9CQINCI0JDQoNCe0KHQm9CQ0JIKK9CS0JDQoNCT0JAg0IjQldCb0JXQndCQCivQktCQ0KDQk9CQINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCQ0KDQk9CQINCI0J7QltCV0KQKK9CS0JDQoNCT0JAg0IjQntCW0JXQpAor0JLQkNCg0JPQkCDQiNCe0JbQldCkCivQktCQ0KDQk9CQINCI0J7QodCY0J/QkAor0JLQkNCg0JPQkCDQiNCe0KHQmNCfCivQktCQ0KDQk9CQINCI0J7QodCY0J8KK9CS0JDQoNCT0JAg0IjQntCS0JDQnQor0JLQkNCg0JPQkCDQiNCj0JvQmNCI0JAKK9CS0JDQoNCT0JAg0JrQkNCg0JvQngor0JLQkNCg0JPQkCDQmtCQ0KLQkNCg0JjQndCQCivQktCQ0KDQk9CQINCa0JDQotCQCivQktCQ0KDQk9CQLdCa0JvQmNCo0JDQndCY0Isg0InQo9CR0JjQptCQCivQktCQ0KDQk9CQINCa0J7QoNCd0JXQm9CY0IjQkAor0JLQkNCg0JPQkCDQmtCe0KDQndCV0JsKK9CS0JDQoNCT0JAg0JrQntCh0JDQndCQCivQktCQ0KDQk9CQINCb0JDQlNCY0KHQm9CQ0JIKK9CS0JDQoNCT0JAg0JvQkNCI0J7QqAor0JLQkNCg0JPQkCDQm9CQ0IjQntCoCivQktCQ0KDQk9CQINCb0JDQodCb0J4KK9CS0JDQoNCT0JAg0JvQkNCh0JvQngor0JLQkNCg0JPQkCDQm9CQ0KHQm9CeCivQktCQ0KDQk9CQINCb0JDQodCb0J4KK9CS0JDQoNCT0JAg0InQo9Cf0JrQkAor0JLQkNCg0JPQkCDQnNCQ0KDQk9CY0KLQkAor0JLQkNCg0JPQkCDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCT0JAg0JzQkNCg0JjQiNCQCivQktCQ0KDQk9CQINCc0JDQoNCY0IjQkAor0JLQkNCg0JPQkCDQnNCY0KXQkNCI0JvQngor0JLQkNCg0JPQkCDQnNCY0KXQkNCI0JvQngor0JLQkNCg0JPQkCDQnNCY0KXQkNCJCivQktCQ0KDQk9CQINCc0JjQoNCa0J4KK9CS0JDQoNCT0JAg0JzQmNCg0J7QnQor0JLQkNCg0JPQkCDQnNCY0KDQntCh0JvQkNCSCivQktCQ0KDQk9CQINCd0JjQmtCe0JvQkAor0JLQkNCg0JPQkCDQntCb0JPQkAor0JLQkNCg0JPQkCDQn9CQ0JsKK9CS0JDQoNCT0JAg0J/QkNCbCivQktCQ0KDQk9CQINCf0JXQotCQ0KAKK9CS0JDQoNCT0JAg0J/QldCi0JDQoAor0JLQkNCg0JPQkCDQn9CV0KLQldCgINCU0JjQn9CbINCY0J3Qkwor0JLQkNCg0JPQkCDQoNCQ0KHQotCY0KHQm9CQ0JIKK9CS0JDQoNCT0JAg0KDQntCX0JDQm9CY0IjQkAor0JLQkNCg0JPQkCDQoNCe0JfQkNCb0JjQiNCQCivQktCQ0KDQk9CQINCh0JvQkNCS0JjQptCQCivQktCQ0KDQk9CQINCh0KLQldCS0JDQnQor0JLQkNCg0JPQkCDQodCi0JXQktCQ0J0KK9CS0JDQoNCT0JAg0KHQotCI0JXQn9CQ0J0KK9CS0JDQoNCT0JAg0KLQmNCR0J7QoAor0JLQkNCg0JPQkCDQotCY0JHQntCgCivQktCQ0KDQk9CQINCS0JXQoNCQCivQktCQ0KDQk9CQINCS0JXQoNCQCivQktCQ0KDQk9CQINCS0JXQoNCe0J3QmNCa0JAKK9CS0JDQoNCT0JAg0JLQm9CQ0JTQmNCh0JvQkNCSCivQktCQ0KDQk9CQINCS0JvQkNCh0KLQkAor0JLQkNCg0JPQkCDQl9Ce0JvQotCQ0J0KK9CS0JDQoNCT0JAg0JfQntCb0KLQkNCdCivQktCQ0KDQk9CV0KYg0JjQktCQ0J0KK9CS0JDQoNCl0J7Qm9CY0Jog0JDQlNCQ0JwKK9CS0JDQoNCY0IvQkNCaINCR0J7QltCeCivQktCQ0KDQmNCL0JDQmiDQlNCQ0KDQmNCd0JrQkAor0JLQkNCg0IjQoyDQm9CQ0KHQm9CeCivQktCQ0KDQiNCjINCc0JDQoNCY0IjQkAor0JLQkNCg0IjQoyDQotCV0KDQldCX0JAKK9CS0JDQoNCa0JDQqCDQmNCS0JDQnQor0JLQkNCg0JzQkNCXINCY0KHQnNCV0KIKK9CS0JDQoNCc0JXQgtCQINCC0J7QoNCC0JUKK9CS0JDQoNCc0KPQltCQINCc0JDQi9CQ0KgKK9CS0JDQoNCd0JjQptCQINCY0JLQkNCdCivQktCQ0KDQndCY0KbQkCDQn9CV0KLQkNCgCivQktCQ0KDQitCjINCQ0J3Qo9Co0JrQkAor0JLQkNCg0IrQoyDQk9CY0JfQldCb0JAKK9CS0JDQoNCK0KMg0JjQm9Ce0J3QkAor0JLQkNCg0J3QntChINCc0JDQoNCi0J7QnQor0JLQkNCg0J3Qo9ChINCI0J7QltCV0KQKK9CS0JDQoNCe0KjQp9CY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQktCQ0KDQntCo0Jgg0JPQkNCR0KDQmNCV0JvQkAor0JLQkNCg0J7QqNCYINCI0J7QktCQ0J0KK9CS0JDQoNCe0KjQmCDQodCY0JvQkNCg0JQKK9CS0JDQodCV0JvQldCaINCo0KLQldCk0JDQnQor0JLQkNCh0JXQm9CV0Jog0KHQotCV0JLQkNCdCivQktCQ0KHQldCb0JXQmiDQodCi0JXQktCQ0J0KK9CS0JDQodCV0JvQldCaINCS0JDQodCY0IkKK9CS0JDQodCY0Isg0JbQldCJ0JrQngor0JLQkNCh0JjQiyDQltCY0JLQmtCQCivQktCQ0KHQmNCLINCW0JjQktCa0J4KK9CS0JDQodCY0Isg0JbQmNCS0JrQngor0JLQkNCh0JjQiyDQltCY0JLQmtCeCivQktCQ0KHQmNCLINCC0J7QmtCQCivQktCQ0KHQmNCLINCC0J7QoNCC0JUKK9CS0JDQodCY0Isg0ILQntCg0ILQlQor0JLQkNCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQkNCh0JjQiyDQkNCd0JjQptCQCivQktCQ0KHQmNCLINCQ0J3QmtCY0KbQkAor0JLQkNCh0JjQiyDQkdCe0IjQkNCd0JAKK9CS0JDQodCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQkNCh0JjQiyDQkdCe0KDQmNCS0J7QiAor0JLQkNCh0JjQiyDQkdCg0JDQndCa0J4KK9CS0JDQodCY0Isg0KbQktCV0KLQmtCeCivQktCQ0KHQmNCLINCU0JDQoNCY0J3QmtCQCivQktCQ0KHQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CS0JDQodCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CS0JDQodCY0Isg0JTQoNCQ0JPQkNCdCivQktCQ0KHQmNCLINCU0KDQkNCT0JjQptCQCivQktCQ0KHQmNCLINCU0KDQkNCT0JjQptCQCivQktCQ0KHQmNCLINCU0KDQkNCT0JjQptCQCivQktCQ0KHQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0JDQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQkNCh0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCQ0KHQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JjQptCQCivQktCQ0KHQmNCLINCU0KPQqNCa0J4g0J3QntCS0JjQndCQ0KAKK9CS0JDQodCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JLQkNCh0JjQiyDQldCb0JXQndCQCivQktCQ0KHQmNCLINCT0J7QoNCQ0J0KK9CS0JDQodCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0JDQodCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0JDQodCY0Isg0JPQntCg0JTQmNCm0JAKK9CS0JDQodCY0Isg0IjQkNCa0J7Qkgor0JLQkNCh0JjQiyDQiNCQ0J3QkAor0JLQkNCh0JjQiyDQiNCQ0J3QmtCeCivQktCQ0KHQmNCLINCI0JXQm9CY0KbQkAor0JLQkNCh0JjQiyDQiNCe0JLQngor0JLQkNCh0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0JDQodCY0Isg0JrQntCh0KLQkAor0JLQkNCh0JjQiyDQmtCg0JjQodCi0JjQndCQCivQktCQ0KHQmNCLINCb0JDQl9CQ0KAKK9CS0JDQodCY0Isg0InQmNCJ0JDQndCQINCU0KAKK9CS0JDQodCY0Isg0InQmNCJ0JDQndCQCivQktCQ0KHQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCQ0KHQmNCLINCb0KPQmtCQCivQktCQ0KHQmNCLINCc0JDQmtCh0JjQnAor0JLQkNCh0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JDQoNCa0J4KK9CS0JDQodCY0Isg0JzQmNCL0J4KK9CS0JDQodCY0Isg0JzQmNCl0JDQmNCb0J4KK9CS0JDQodCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0JDQodCY0Isg0JzQmNCa0JAKK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQkNCdCivQktCQ0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQkNCdCivQktCQ0KHQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAg0J/QoNCY0JzQkNCg0JjQo9ChCivQktCQ0KHQmNCLINCc0JjQm9CV0J3QmtCeCivQktCQ0KHQmNCLINCc0JjQm9CV0J3QmtCeCivQktCQ0KHQmNCLINCc0JjQm9CY0KbQkAor0JLQkNCh0JjQiyDQnNCY0JvQmNCd0JrQngor0JLQkNCh0JjQiyDQnNCY0JvQntCoCivQktCQ0KHQmNCLINCc0JjQm9Ce0KgKK9CS0JDQodCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0JDQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JDQodCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQktCQ0KHQmNCLINCd0JDQlNCQCivQktCQ0KHQmNCLINCd0JDQlNCQCivQktCQ0KHQmNCLINCd0JXQlNCV0InQmtCeCivQktCQ0KHQmNCLINCd0JXQlNCV0InQmtCeCivQktCQ0KHQmNCLINCd0JXQlNCV0InQmtCeCivQktCQ0KHQmNCLINCd0JjQmtCe0JvQkAor0JLQkNCh0JjQiyDQndCe0JLQkNCaCivQktCQ0KHQmNCLINCd0J7QktCQ0JoKK9CS0JDQodCY0Isg0J3QntCS0JDQmgor0JLQkNCh0JjQiyDQntCb0JPQkAor0JLQkNCh0JjQiyDQntCb0JPQmNCm0JAKK9CS0JDQodCY0Isg0J7QodCi0J7QiNCQCivQktCQ0KHQmNCLINCe0KHQotCe0IjQkAor0JLQkNCh0JjQiyDQn9CQ0IjQkAor0JLQkNCh0JjQiyDQn9CV0KDQngor0JLQkNCh0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCLINCf0JXQotCQ0KAKK9CS0JDQodCY0Ist0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQktCQ0KHQmNCLINCf0KDQktCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQktCQ0KHQmNCLINCg0JDQlNCY0KbQkAor0JLQkNCh0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JLQkNCh0JjQiyDQoNCQ0JTQntCI0JUKK9CS0JDQodCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQkNCh0JjQiyDQoNCQ0JTQntCS0JDQnQor0JLQkNCh0JjQiyDQoNCQ0KLQmtCeCivQktCQ0KHQmNCLINCg0JDQktCY0KbQkAor0JLQkNCh0JjQiyDQodCQ0JLQkAor0JLQkNCh0JjQiyDQodCQ0JLQkAor0JLQkNCh0JjQiyDQodCQ0JLQkAor0JLQkNCh0JjQiyDQodCV0JrQo9Cb0JAKK9CS0JDQodCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JDQodCY0Isg0KHQm9CQ0JLQmtCeCivQktCQ0KHQmNCLINCh0JvQkNCS0JrQngor0JLQkNCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCQ0KHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JDQodCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQkNCh0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQkNCh0JjQiyDQodCe0KTQmNCI0JAKK9CS0JDQodCY0Isg0KHQoNCV0KLQmtCeCivQktCQ0KHQmNCLINCh0KLQkNCd0JjQqNCQCivQktCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQiyDQodCi0JXQktCQ0J0KK9CS0JDQodCY0Isg0KHQotCV0JLQkNCdCivQktCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQiyDQodCS0JXQotCb0JDQndCQCivQktCQ0KHQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JDQodCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JDQodCY0Isg0KLQmNCd0JrQkAor0JLQkNCh0JjQiyDQotCe0KjQkAor0JLQkNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQktCQ0KHQmNCLINCS0JXQm9CY0JzQmNCgCivQktCQ0KHQmNCLINCS0JXQm9CY0JzQmNCgCivQktCQ0KHQmNCLINCS0JXQodCV0JvQmNCdCivQktCQ0KHQmNCLINCS0JjQlNCQCivQktCQ0KHQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQktCQ0KHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JDQodCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQkNCh0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQkNCh0JjQiyDQl9Ce0KDQkNCdCivQktCQ0KHQmNCLINCX0J7QoNCY0KbQkAor0JLQkNCh0JjQm9Cn0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQktCQ0KHQmNCb0JXQodCa0Jgg0JHQoNCQ0J3QmtCeCivQktCQ0KHQmNCb0JjQqNCY0J0g0JDQndCi0J7QnQor0JLQkNCh0JjQm9CY0KjQmNCdINCc0JjQm9CQ0J0KK9CS0JDQodCY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQkNCh0JjQm9CY0Isg0JTQkNCd0JjQptCQCivQktCQ0KHQmNCb0JjQiyDQlNCg0JDQk9CQCivQktCQ0KHQmNCb0JjQiyDQnNCY0JvQkNCdCivQktCQ0KHQmNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQm9CY0Isg0JzQmNCg0JAKK9CS0JDQodCY0JvQmNCLINCd0JjQmtCe0JvQkAor0JLQkNCh0JjQm9CY0Isg0KDQkNCI0JrQngor0JLQkNCh0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQktCQ0KHQmNCb0JjQiyDQotCe0JTQlQor0JLQkNCh0JjQm9CY0Isg0JLQldCh0J3QkAor0JLQkNCh0JjQm9CY0Isg0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQodCY0InQp9CY0J0g0JbQmNCS0JrQngor0JLQkNCh0JjQidCV0JIg0JDQndCQCivQktCQ0KHQmNCJ0JXQkiDQlNCV0IjQkNCdCivQktCQ0KHQmNCJ0JXQkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0JDQodCY0InQldCSINCI0JXQm9CY0KbQkAor0JLQkNCh0JjQidCV0JIg0IjQntCS0JDQnQor0JLQkNCh0JjQidCV0JIg0IjQntCS0JDQnQor0JLQkNCh0JjQidCV0JIg0InQo9CR0JjQptCQCivQktCQ0KHQmNCJ0JXQkiDQnNCQ0KDQkAor0JLQkNCh0JjQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9CS0JDQodCY0InQldCSINCc0JjQoNCe0InQo9CRCivQktCQ0KHQmNCJ0JXQkiDQnNCY0KLQkAor0JLQkNCh0JjQidCV0JIg0KDQkNCU0J7QktCQ0J0KK9CS0JDQodCY0InQldCSINCh0J/QkNCh0J7QiNCVCivQktCQ0KHQmNCJ0JXQkiDQodCi0JDQndCe0IjQlQor0JLQkNCh0JjQidCV0JIg0KLQkNCc0JDQoNCQCivQktCQ0KHQmNCJ0JXQkiDQl9CU0KDQkNCS0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCo0JDQoNCb0J7QotCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JbQmNCS0J7QotCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0ILQntCg0ILQlQor0JLQkNCh0JjQidCV0JLQmNCLINCC0KPQoNCQCivQktCQ0KHQmNCJ0JXQktCY0Ist0JDQi9CQ0J3QodCa0Jgg0JjQktCQ0J3QkAor0JLQkNCh0JjQidCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JDQndCU0KDQldCI0JAKK9CS0JDQodCY0InQldCS0JjQiyDQptCS0JXQotCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0JDQodCY0InQldCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JLQkNCh0JjQm9CI0JXQktCY0Isg0JTQo9Co0JjQptCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JPQm9CY0JPQntCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0JPQntCI0JDQnQor0JLQkNCh0JjQidCV0JLQmNCLINCT0J7QiNCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQk9Cg0J7Ql9CU0JAKK9CS0JDQodCY0InQldCS0JjQiyDQiNCQ0JLQntCg0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCI0KPQm9Ca0JAKK9CS0JDQodCY0InQldCS0JjQiyDQm9CV0J/QkAor0JLQkNCh0JjQidCV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQkNCg0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCc0JDQoNCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCJ0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQm9Ce0KgKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQoNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCc0J7QnNCn0JjQm9CeINCU0KAKK9CS0JDQodCY0InQldCS0JjQiyDQndCQ0JTQkAor0JLQkNCh0JjQidCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CS0JDQodCY0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0InQldCS0JjQiyDQntCb0JPQkAor0JLQkNCh0JjQidCV0JLQmNCLINCe0KHQotCe0IjQkAor0JLQkNCh0JjQidCV0JLQmNCLINCf0JXQotCQ0KAKK9CS0JDQodCY0InQldCS0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCU0JAKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0JTQldCd0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCI0JAg0J3QntCS0JjQndCQ0KAKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0IjQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KHQmNCc0J4KK9CS0JDQodCY0InQldCS0JjQiyDQodCb0JDQktCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JDQodCY0InQldCS0JjQiyDQotCe0KjQkAor0JLQkNCh0JjQidCV0JLQmNCLINCj0JzQmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JLQldCg0JjQptCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JLQo9Ca0JjQptCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQl9Cb0JDQotCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQl9Cb0JDQotCe0IjQlQor0JLQkNCh0JjQidCV0JLQmNCLINCX0J7QoNCQ0J0KK9CS0JDQodCY0InQldCS0KHQmtCYINCS0JDQodCY0JvQmNCI0JUKK9CS0JDQodCY0J0g0ILQntCg0ILQlQor0JLQkNCh0JjQnSDQgtCe0KDQgtCVCivQktCQ0KHQmNCdINCQ0J3QgtCV0JvQmtCQCivQktCQ0KHQmNCdINCQ0KDQkNCd0JrQkAor0JLQkNCh0JjQnSDQkdCe0KDQmNCS0J7QiNCVCivQktCQ0KHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JLQkNCh0JjQnSDQlNCg0JDQk9CQ0J3QkAor0JLQkNCh0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQktCQ0KHQmNCdINCI0JDQodCc0JjQndCQCivQktCQ0KHQmNCdINCI0JXQm9CV0J3QkAor0JLQkNCh0JjQnSDQiNCV0JLQoNCe0KHQmNCc0JAKK9CS0JDQodCY0J0g0IjQo9Cb0JrQkAor0JLQkNCh0JjQnSDQm9CQ0JfQkNCgCivQktCQ0KHQmNCdINCJ0KPQkdCY0J3QmtCQCivQktCQ0KHQmNCdINCc0JDQoNCY0KbQkAor0JLQkNCh0JjQnSDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQnSDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQnSDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQnSDQntCb0JPQmNCm0JAKK9CS0JDQodCY0J0g0J/QkNCS0JvQlQor0JLQkNCh0JjQnSDQn9CV0KLQkNCgCivQktCQ0KHQmNCdINCg0JDQlNCY0JLQntCICivQktCQ0KHQmNCdINCh0KLQldCS0JDQnQor0JLQkNCh0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0JDQodCY0J0g0KHQktCV0KLQntCX0JDQoAor0JLQkNCh0JjQnSDQotCe0JTQntCgCivQktCQ0KHQmNCdINCX0J7QoNCQCivQktCQ0KHQmtCeINCS0JXQoNCQCivQktCQ0KHQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCQ0KHQmtCg0KHQmNCLINCh0JDQktCV0KLQkAor0JLQkNCh0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JDQodCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JLQkNCh0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0JDQodCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCQ0KHQntCS0JjQiyDQodCb0JDQktCY0JzQmNCg0JrQkAor0JLQkNCi0JDQiNCYINCC0KPQm9CQCivQktCQ0KLQmNCLINCc0JDQoNCI0JDQnQor0JLQkNCi0JjQiyDQnNCQ0KDQmtCeCivQktCQ0KLQmNCLINCc0JjQoNCQ0KgKK9CS0JDQotCY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0KLQntCS0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQotCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQkNCj0KDQmNCn0JDQmiDQmtCQ0KLQkNCb0JjQnQor0JLQkNCS0JDQnSDQnNCY0JvQntCg0JDQlAor0JLQkNCS0JDQnSDQnNCY0JvQntCg0JDQlAor0JLQkNCS0JDQnSDQnNCb0JDQlNCV0J3QmtCeCivQktCQ0JLQkNCdINCf0JDQktCb0JUKK9CS0JDQktCQ0J0g0KHQm9CQ0JLQmtCeCivQktCQ0JLQmNCLINCI0J7QktCQ0J0KK9CS0JDQktCg0JAg0J/QoNCV0JTQoNCQ0JMKK9CS0JDQktCg0JjQnSDQiNCe0KHQmNCfCivQktCQ0JLQoNCY0J0g0J/QldCi0JDQoAor0JLQlNCe0JLQmNCQ0Jog0JHQldCg0J3QkNCg0JQKK9CS0JXQp9CV0Jgg0IjQntCW0JXQpAor0JLQldCn0JXQmCDQiNCe0KHQmNCfCivQktCV0KfQldCYINCJ0JjQidCQ0J3QkAor0JLQldCn0JXQiNCYINCI0J7QktCQ0J0KK9CS0JXQp9CV0KDQkCDQnNCY0KXQkNCI0JvQngor0JLQldCn0JXQoNCYINCI0KPQm9CY0KPQoQor0JLQldCn0Jgg0JjQqNCi0JLQkNCdCivQktCV0KfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0JXQqNCb0JjQk9CQ0Igg0KHQotCV0JLQkNCdCivQktCV0KjQm9CY0JPQkNCIINCS0JXQoNCQCivQktCV0KjQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CS0JXQqNCe0JLQmNCLINCb0JXQntCf0J7Qm9CUCivQktCV0KjQntCS0JjQiyDQntCb0JPQkAor0JLQldCo0J7QktCY0Isg0KHQnNCY0InQkNCd0JAKK9CS0JXQqNCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JLQldCo0J7QktCY0Isg0JLQo9Ca0KHQkNCdCivQktCV0KjQntCS0JjQiyDQl9Ce0KDQmtCQINCc0KAKK9CS0JXQi9Ca0JDQm9Ce0JIg0ILQntCg0ILQlQor0JLQldCL0JrQkNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCL0JrQkNCb0J7QkiDQodCe0KTQmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQktCV0JHQldCbINCS0JDQm9CV0KDQmNCI0JAKK9CS0JXQkdCV0KAg0JHQntCW0JDQndCQCivQktCV0JHQldCgINCT0JDQkdCg0JjQldCb0JAKK9CS0JXQkdCV0KAg0JPQkNCR0KDQmNCV0JvQkAor0JLQldCR0JXQoCDQnNCY0JvQmNCm0JAKK9CS0JXQkdCV0KAg0J7Qm9CT0JAKK9CS0JXQkdCV0KAg0KLQldCg0JXQl9CY0IjQkAor0JLQldCTINCo0JDQndCU0J7QoAor0JLQldCTINCV0J3QmNCa0JUKK9CS0JXQk9Co0JUg0J/QkNCS0JvQlQor0JLQldCT0JXQmyDQm9CQ0KHQm9CeCivQktCV0JPQktCQ0KDQmCDQlNCV0JbQlQor0JLQldCT0JLQkNCg0Jgg0IjQo9Cb0JjQkNCd0JAKK9CS0JXQk9CS0JDQoNCYINCc0JjQmtCb0J7QqAor0JLQldCl0KLQldCgINCa0JDQoNCe0IkKK9CS0JXQpdCi0JXQoCDQmtCQ0KDQntCJCivQktCV0KXQotCV0KAg0JfQntCb0KLQkNCdCivQktCV0JjQnSDQiNCV0JrQkAor0JLQldCY0J0g0JfQntCg0JrQkAor0JLQldCY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQiNCY0J0g0ILQntCg0ILQlQor0JLQldCI0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQldCI0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQiNCY0J0g0JTQo9Co0JDQndCa0JAKK9CS0JXQiNCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JLQldCI0J3QntCS0JjQiyDQlNCQ0J3QlQor0JLQldCI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JXQiNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQktCV0IjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JXQiNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdINCU0JjQn9CbINCY0J3Qkwor0JLQldCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQiNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JLQldCI0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQktCV0IjQndCe0JLQmNCLINCh0JjQnNCV0J7QnQor0JLQldCI0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JLQldCI0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JLQldCI0J3QntCS0JjQiyDQktCQ0IjQmtCeCivQktCV0IjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JXQiNCX0J7QktCh0JrQmCDQktCV0IjQlwor0JLQldCa0JDQqCDQltCj0JbQkNCd0JAKK9CS0JXQmtCQ0Kgg0JDQotCY0JvQkAor0JLQldCa0JDQqCDQldCS0JAKK9CS0JXQmtCQ0Kgg0JXQktCQCivQktCV0JrQkNCoINCI0JDQndCe0KgKK9CS0JXQmtCQ0Kgg0IjQo9CU0JjQotCQCivQktCV0JrQkNCoINCb0JDQodCb0J4KK9CS0JXQmtCY0Isg0JDQndCQCivQktCV0JrQmNCLINCU0KDQkNCT0JDQnQor0JLQldCa0JjQiyDQldCb0JXQndCQCivQktCV0JrQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CS0JXQmtCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0JrQmNCLINCf0JXQotCQ0KAKK9CS0JXQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0JXQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0JXQmtCY0Isg0KLQldCg0JXQl9CQCivQktCV0JrQmNCLINCi0JXQoNCV0JfQkAor0JLQldCa0JjQiyDQl9CS0J7QndCa0J4KK9CS0JXQmtCe0Iog0KjQkNCd0JTQntCgCivQktCV0JrQntCKINCb0JDQlNCY0KHQm9CQ0JIKK9CS0JXQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCV0JvQp9CV0Jog0JjQqNCi0JLQkNCdCivQktCV0JvQp9CV0Jog0IjQntCh0JjQnwor0JLQldCb0KfQldCaINCS0JvQkNCU0JjQnNCY0KAKK9CS0JXQm9CC0Jgg0JDQndCQCivQktCV0JvQgtCYINCI0J7QltCV0KQKK9CS0JXQm9CC0Jgg0JvQkNCU0JjQodCb0JDQkgor0JLQldCb0ILQmCDQnNCQ0KDQmNCI0JAKK9CS0JXQm9CQ0JPQmNCLINCh0JDQitCQCivQktCV0JvQkNCI0JAg0IjQntCS0J4KK9CS0JXQm9CR0JDQkdCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCV0JvQkdCQ0JHQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQldCb0JHQkNCR0J7QktCY0Isg0KDQkNCU0JjQndCa0JAKK9CS0JXQm9CV0KfQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQldCb0JXQp9Ca0J7QktCY0Isg0JXQktCQCivQktCV0JvQldCc0JjQoCDQkNCd0JjQptCQCivQktCV0JvQldCc0JjQoCDQlNCg0JDQk9Ce0InQo9CRCivQktCV0JvQldCc0JjQoCDQmNCb0JjQiNCQCivQktCV0JvQldCc0JjQoCDQnNCY0JvQntCc0JjQoAor0JLQldCb0JXQnNCY0KAg0KDQmNCh0KLQngor0JLQldCb0JXQnNCY0KAg0KDQmNCh0KLQngor0JLQldCb0JXQnNCY0KAg0KHQkNCS0JrQkAor0JLQldCb0JXQnNCY0KAg0KHQm9CQ0JLQmtCeCivQktCV0JvQldCc0JjQoCDQodCS0JXQotCe0JzQmNCgCivQktCV0JvQldCc0JjQoCDQotCe0JTQntCgCivQktCV0JvQldCc0JjQoCDQktCe0IjQkAor0JLQldCb0JXQnNCY0KAg0JLQntCI0JrQngor0JLQldCb0JXQnNCY0KDQntCSINCh0JjQnNCQCivQktCV0JvQldCd0JTQldCn0JjQiyDQkdCe0JbQngor0JLQldCb0JXQndCU0JXQp9CY0Isg0JzQmNCb0JDQnQor0JLQldCb0JXQlyDQmNCo0KLQktCQ0J0KK9CS0JXQm9CV0Jcg0JjQqNCi0JLQkNCdCivQktCV0JvQpdCV0KEg0JzQmNCg0J7QodCb0JDQkgor0JLQldCb0KXQndCV0KAg0IjQntCh0JjQnyDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQm9CY0KfQmtCe0JIg0JbQmNCS0JDQnQor0JLQldCb0JjQp9Ca0J7QkiDQlNCQ0J3QmNCm0JAKK9CS0JXQm9CY0KfQmtCe0JIg0JPQoNCe0JfQlNCQCivQktCV0JvQmNCn0JrQntCSINCa0JDQotCY0KbQkAor0JLQldCb0JjQp9Ca0J7QkiDQidCY0InQkAor0JLQldCb0JjQp9Ca0J7QkiDQndCQ0KLQkNCo0JAKK9CS0JXQm9CY0KfQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQktCV0JvQmNCn0JrQntCS0JjQiyDQltCY0JLQntCi0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQldCb0JjQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCV0JvQmNCn0JrQntCS0JjQiyDQodCb0JDQktCY0KjQkAor0JLQldCb0JjQp9Ca0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQldCb0JjQp9Ca0J7QktCY0Isg0KHQntCK0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JfQntCg0JDQnQor0JLQldCb0JjQp9Ca0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCb0JjQqNCV0Jog0JPQkNCR0KDQmNCV0JvQkAor0JLQldCb0JjQqNCV0Jog0JPQldCX0JAKK9CS0JXQm9CY0KjQldCaINCa0JDQoNCb0J4KK9CS0JXQm9CY0Isg0JjQm9CY0IjQkAor0JLQldCb0JjQiyDQl9Ce0KDQkNCdCivQktCV0JvQmNCm0JrQmCDQgtCe0KDQgtCVCivQktCV0JvQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCb0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQm9CY0KbQmtCYINCI0JXQm9CY0KbQkAor0JLQldCb0JjQptCa0Jgg0IjQntCS0JjQptCQCivQktCV0JvQmNCm0JrQmCDQidCj0JHQntCc0JjQoAor0JLQldCb0JjQptCa0Jgg0JzQmNCb0JDQnQor0JLQldCb0JjQptCa0Jgg0JzQmNCb0JDQnQor0JLQldCb0JjQptCa0Jgg0JzQmNCb0JjQktCe0IgKK9CS0JXQm9CY0KbQmtCYINCc0JjQntCU0KDQkNCTCivQktCV0JvQmNCm0JrQmCDQndCe0JLQkNCaCivQktCV0JvQmNCm0JrQmCDQodCS0JXQotCe0JfQkNCgCivQktCV0JvQmNCm0JrQmCDQo9Cg0J7QqAor0JLQldCb0JjQptCa0Jgg0JfQntCg0JDQnQor0JLQldCb0JjQptCa0Jgg0JfQntCg0JAKK9CS0JXQm9CY0IjQkCDQidCY0InQkNCd0JAKK9CS0JXQm9CY0IjQkCDQoNCV0ILQldCfCivQktCV0JvQmNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQm9CY0JrQmNCLINCQ0J3QkAor0JLQldCb0JjQmtCY0Isg0JTQkNCd0JjQptCQCivQktCV0JvQmNCa0JjQiyDQidCj0JHQntCc0JjQoAor0JLQldCb0JjQmtCY0Isg0KHQmNCc0JAKK9CS0JXQm9CY0JrQmNCLINCX0J7QoNCQ0J0KK9CS0JXQm9CY0JzQmNCg0J7QkiDQiNCV0JvQldCd0JAKK9CS0JXQm9CY0JzQmNCg0J7QkiDQnNCY0JvQntCoCivQktCV0JvQmNCc0JjQoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQkNCd0JPQldCb0JAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JHQntCo0JrQngor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0KjQmtCeCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQndCe0JLQkNCaCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCh0JjQnNCV0J7QnQor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCh0JzQmNCJ0JDQndCQCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCS0J7QiNCY0J0KK9CS0JXQm9CY0J7QodCa0Jgg0KHQkNCU0JXQnAor0JLQldCb0JjQntCSINCP0JXQnNCQ0IjQm9CeCivQktCV0JvQmNCh0JDQktCJ0JXQkiDQk9Ce0KDQlNCQ0J3QkCDQlNCgCivQktCV0JvQmNCh0JDQktCJ0JXQkiDQnNCY0JvQntCg0JDQlCDQlNCgCivQktCV0JvQmNCh0JDQktCJ0JXQkiDQodCg0JXQlNCe0IjQlQor0JLQldCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQktCV0InQkCDQltCY0JLQkCDQlNCY0J8g0J7QldCmCivQktCV0InQkCDQn9CV0KLQkNCgCivQktCV0InQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCV0InQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0JXQidCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCS0JAKK9CS0JXQidCQ0J3QntCS0KHQmtCYINCY0JLQkNCdCivQktCV0InQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCV0InQmtCeINCQ0J3QgtCV0JvQmtCeCivQktCV0InQmtCe0JIg0JTQkNCg0JjQndCa0JAKK9CS0JXQidCa0J7QkiDQk9CV0J7QoNCT0JjQiNCVCivQktCV0InQmtCe0JIg0JjQlNCQCivQktCV0InQmtCe0JIg0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQldCJ0JrQntCSINCf0JDQktCb0JUKK9CS0JXQidCa0J7Qki3Qn9Ck0JDQiNCk0JXQoCDQodCe0KTQmNCI0JAKK9CS0JXQidCa0J7QkiDQodCi0JXQktCQ0J0KK9CS0JXQidCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQktCV0InQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0JXQidCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCV0InQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0InQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQktCV0InQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCV0InQmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9CS0JXQidCa0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JXQidCa0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CS0JXQidCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JXQidCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JXQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JXQidCa0J7QktCY0Isg0JzQmNCg0JrQngor0JLQldCJ0JrQntCS0JjQiyDQndCQ0JTQkAor0JLQldCJ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCV0InQmtCe0JLQmNCLINCg0JDQlNCQCivQktCV0InQmtCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQktCV0InQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQktCV0InQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JXQidCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQktCV0InQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JLQldCJ0JrQntCS0JjQiyDQodCS0JXQotCQCivQktCV0InQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JLQldCJ0JrQntCS0JjQiyDQktCY0JTQntCI0JUKK9CS0JXQidCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JLQldCJ0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQldCJ0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JLQldCJ0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQldCJ0J7QktCY0Isg0JzQmNCi0JDQoAor0JLQldCJ0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0JXQidCe0JLQmNCLINCf0JDQktCb0JUKK9CS0JXQidCe0JLQmNCLINCg0KPQltCQCivQktCV0InQntCS0JjQiyDQodCY0JzQngor0JLQldCJ0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JXQm9Ca0J7QktCh0JrQmCDQmNCg0JXQndCQCivQktCV0JvQmtCe0JLQodCa0Jgg0KLQldCe0KTQmNCbCivQktCV0JzQldCd0JDQpiDQntCR0KDQkNCUCivQktCV0JzQmNCLINCR0J7QoNCQCivQktCV0JzQmNCLINCU0KDQkNCT0JjQitCQCivQktCV0JzQmNCLINCY0JvQmNCI0JAKK9CS0JXQnNCY0Isg0JvQkNCX0JDQoAor0JLQldCc0JjQiyDQnNCY0JvQkNCdCivQktCV0JzQmNCLINCg0JDQlNCY0JLQntCI0JUg0JTQoAor0JLQldCc0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQktCV0J3Qp9CV0JvQntCS0KHQmtCYINCJ0KPQkdCY0KbQkAor0JLQldCd0KfQldCb0J7QktCh0JrQmCDQktCb0JDQlNCQCivQktCV0J3Qp9CV0JvQntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CS0JXQndCn0JXQm9Ce0JLQodCa0Jgg0JLQm9CQ0KHQotCQCivQktCV0J3QptCV0Jsg0JPQldCX0JAKK9CS0JXQndCm0JXQmyDQk9CV0JfQkAor0JLQldCd0KbQmyDQiNCe0KHQmNCfCivQktCV0J3QptCbINCX0JLQntCd0JjQnNCY0KAKK9CS0JXQndCU0JvQldCd0JXQoCDQkNCd0JTQoNCY0IjQkNCd0JAKK9CS0JXQndCU0JvQldCd0JXQoCDQiNCV0JvQldCd0JAKK9CS0JXQndCU0JvQldCd0JXQoCDQl9Ce0KDQkNCdCivQktCV0J3QlSDQk9Ce0KDQlNCQ0J3QkAor0JLQldCd0JPQoNCY0J0g0JDQk9Cd0JXQqAor0JLQldCd0JPQoNCY0J3QkyDQpNCV0KDQldCd0KYKK9CS0JXQndCT0KDQmNCd0JMg0KHQotCV0JLQkNCdCivQktCV0KDQkNCmINCc0JjQntCU0KDQkNCTCivQktCV0KDQkdCQINCI0J7QltCV0KQKK9CS0JXQoNCR0JDQndCV0KYg0JjQqNCi0JLQkNCdCivQktCV0KDQkdCQ0J3QldCmINCY0KjQotCS0JDQnQor0JLQldCg0JHQkNCh0Jgg0KTQoNCQ0IrQkAor0JLQldCg0JHQkNCh0Jgg0IjQntCS0JDQndCa0JAKK9CS0JXQoNCV0Kgg0ILQo9Cb0JAKK9CS0JXQoNCV0Kgg0JDQndCU0KDQmNCI0JAKK9CS0JXQoNCV0Kgg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQldCg0JXQqCDQpdCQ0IjQndCQ0JvQmtCQCivQktCV0KDQldCoINCY0JLQkNCdCivQktCV0KDQldCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCV0KDQldCoINCI0J7QltCV0KQKK9CS0JXQoNCV0Kgg0IjQntCh0JjQnwor0JLQldCg0JXQqCDQiNCe0KHQmNCfCivQktCV0KDQldCoINCb0JDQlNCY0KHQm9CQ0JIKK9CS0JXQoNCV0Kgg0JzQkNCg0JjQiNCQCivQktCV0KDQldCo0JHQkNCg0JDQitCYINCY0KjQotCS0JDQnQor0JLQldCg0JXQqNCR0JDQoNCQ0IrQmCDQnNCQ0KDQmNCI0JAKK9CS0JXQoNCV0KjQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0JLQldCg0JXQltCQ0J0g0ILQo9Cg0JjQptCQCivQktCV0KDQldCW0JDQnSDQl9Ce0KDQmtCQCivQktCV0KDQldCRINCW0KPQltCQ0J3QkAor0JLQldCg0JXQkdCV0Kgg0JHQntCg0JjQodCb0JDQktCQCivQktCV0KDQldCR0JXQqCDQldCg0JLQmNCdCivQktCV0KDQldCm0JrQldCYINCU0KPQqNCY0KbQkAor0JLQldCg0JXQptCa0JXQmCDQk9CV0JfQkAor0JLQldCg0JXQptCa0JXQmCDQnNCQ0KDQk9CY0KLQkAor0JLQldCg0JPQkNCoINCR0KDQkNCd0JrQngor0JLQldCg0JjQiyDQoNCQ0KLQmtCeCivQktCV0KDQmtCY0Isg0KLQntCU0J7QoAor0JLQldCg0JrQmNCLINCS0JjQotCe0JzQmNCgCivQktCV0KDQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQldCg0JvQmNCLINCc0JjQm9CQ0J0KK9CS0JXQoNCc0JXQqCDQm9CY0JvQmAor0JLQldCg0JzQldCX0J7QktCY0Isg0ILQntCg0ILQlQor0JLQldCg0J3QkNCn0JrQmCDQkNCd0JjQotCQCivQktCV0KDQndCQ0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JLQldCg0J3QkNCn0JrQmCDQk9CQ0JLQoNCQCivQktCV0KDQndCQ0KfQmtCYINCT0JDQktCg0JjQm9CeCivQktCV0KDQndCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JXQoNCd0JXQoCDQkNCd0JAKK9CS0JXQoNCd0JXQoCDQnNCY0KXQkNCI0JvQngor0JLQldCg0J3QldCgINCh0KLQldCS0JDQnQor0JLQldCg0J3QntCiINCQ0J3QkAor0JLQldCg0J3QntCiINCU0KPQitCQCivQktCV0KDQndCe0KIg0IjQntCh0JjQnwor0JLQldCg0J3QntCiINCS0IjQldCa0J7QodCb0JDQktCQCivQktCV0KDQndCe0KIg0JfQlNCV0J3QmtCeCivQktCV0KDQndCe0KIg0JfQlNCV0J3QmtCeCivQktCV0KDQl9Ce0KLQmCDQlNCg0JDQk9CY0KbQkAor0JLQldCg0JfQntCi0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQldCg0JfQntCi0Jgg0J/QldCi0JDQoAor0JLQldCg0JfQntCi0Jgg0KHQotCQ0J3QmtCQCivQktCV0KHQldCb0JjQiyDQkdCe0KDQmNCS0J7QiAor0JLQldCh0JXQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQldCh0JXQm9CY0Isg0JPQntCh0J/QkNCS0JAKK9CS0JXQodCV0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQktCV0KHQldCb0JjQiyDQodCb0JDQktCa0J4KK9CS0JXQodCV0JvQmNCm0JAg0JzQkNCd0JUKK9CS0JXQodCV0JvQmNCm0JAg0JzQmNCb0JDQnQor0JLQldCh0JXQm9CY0KbQkCDQodCS0JXQotCe0JfQkNCgCivQktCV0KHQldCb0JjQnSDQn9CV0KLQkNCgCivQktCV0KHQldCb0JjQndCe0JIg0ILQntCg0ILQlQor0JLQldCh0JXQm9CY0J3QntCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0JLQldCh0JXQm9CY0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCSINCb0JjQkdCj0KjQkAor0JLQldCh0JXQm9CY0J3QntCSINCc0JjQm9CY0KbQkAor0JLQldCh0JXQm9CY0J3QntCSINCg0JjQodCi0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQodCi0JXQktCQ0J0g0JTQoAor0JLQldCh0JXQm9CY0J3QntCSINCh0KLQldCS0JDQnQor0JLQldCh0JXQm9CY0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JXQodCV0JvQmNCd0J7QkiDQktCV0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCj0IjQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCj0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCj0KDQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkdCe0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkdCg0JDQndCVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQkNCg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQkNCg0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0J7QoNCU0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQiNCe0KHQmNCf0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JvQkNCd0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JvQldCd0JrQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JUKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0KLQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQntCb0JPQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Ist0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCg0JDQlNCc0JjQmwor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCg0JDQndCa0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQkNCS0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQldCS0JXQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCi0J7QlNCe0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KLQntCU0J7QoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQo9Cg0J7QqAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0InQmtCeCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JXQoNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JXQoNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JjQndCa0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JfQktCV0JfQlNCQ0J0KK9CS0JXQodCY0Isg0JTQntCR0KDQntCh0JDQkgor0JLQldCh0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0JXQodCY0Isg0JrQkNCi0JjQptCQCivQktCV0KHQmNCLINCa0KDQodCi0JAKK9CS0JXQodCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQmNCLINCc0JjQm9CY0KbQkAor0JLQldCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQldCh0JjQiyDQnNCY0KLQkNCgCivQktCV0KHQmNCLINCc0JvQkNCU0JXQnQor0JLQldCh0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JXQodCY0Ist0JLQkNCg0JPQkCDQlNCg0JDQk9CY0KbQkAor0JLQldCh0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CS0JXQodCY0J0g0JHQoNCQ0J3QmtCeCivQktCV0KHQmNCdINCc0JjQm9CQ0J0KK9CS0JXQodCY0J0g0J3QkNCU0JAKK9CS0JXQodCY0J0g0J/QldCi0JDQoAor0JLQldCh0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0KHQmtCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCa0J7QkiDQmNCS0JDQnQor0JLQldCh0JrQntCSINCI0JXQm9CV0J3QkAor0JLQldCh0JrQntCSINCc0JjQm9Ce0KgKK9CS0JXQodCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQktCV0KHQmtCe0JLQmNCLINCU0KDQkNCo0JrQngor0JLQldCh0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQktCV0KHQmtCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JLQldCh0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCV0KHQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeINCU0JjQn9CbINCY0J3Qkwor0JLQldCh0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCV0KHQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JLQldCh0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0JLQldCh0JrQntCS0JjQiyDQl9Ce0KDQkAor0JLQldCh0JvQkNCS0KHQmtCYINCi0JjQndCa0JAKK9CS0JXQodCd0JjQiyDQnNCY0JvQldCd0JAKK9CS0JXQodCd0JjQiy3QktCQ0KHQmNCJ0JXQktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JLQldCh0J7QktCY0Isg0JDQptCeCivQktCV0KHQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQldCi0KDQkNCRINCk0KDQkNCK0JAKK9CS0JXQotCg0JDQkSDQmtCQ0KLQkNCb0JjQnQor0JLQldCi0KDQkNCRINCc0JjQpdCQ0IkKK9CS0JXQotCg0J4g0J/QldCi0JDQoAor0JLQldCS0JXQoNCY0KfQldCaINCc0JDQoNCY0IjQkAor0JLQldCX0JXQotCYINCc0JjQpdCQ0JXQmwor0JLQldCX0JXQotCYINCf0JXQotCQ0KAKK9CS0JXQl9CY0JvQmNCLINCC0J7QoNCC0JUKK9CS0JXQl9CY0JvQmNCLINCm0KDQndCe0JPQntCg0JrQkAor0JLQldCX0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JXQl9CY0JvQmNCLINCU0KPQqNCY0KbQkAor0JLQldCX0JjQm9CY0Isg0IjQldCb0JjQptCQCivQktCV0JfQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCV0JfQnNCQ0KAg0JHQoNCQ0J3QmtCeCivQktCV0JfQnNCQ0KAg0JjQm9CY0IjQkAor0JLQldCX0JzQkNCgINCc0JDQoNCT0JDQoNCY0KLQkAor0JLQldCX0JzQkNCgINCc0JjQm9CQ0J0KK9CS0JXQl9Cc0JDQoCDQnNCY0JvQntCoCivQktCV0JfQnNCQ0KAg0JzQmNCb0J7QoNCQ0JQKK9CS0JXQl9Cc0JDQoCDQnNCe0JzQp9CY0JvQngor0JLQldCX0JzQkNCgINCd0JjQmtCe0JvQkAor0JLQldCX0JzQkNCgINCf0JXQotCQ0KAKK9CS0JXQl9Cj0JvQmNCLINCC0J7QoNCC0JUKK9CS0JjQp9CV0Jog0KjQkNCd0JTQntCgCivQktCY0KfQldCaINCa0JDQoNCe0IkKK9CS0JjQp9CV0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CS0JjQp9CY0Jog0JjQk9CK0JDQogor0JLQmNCo0JXQmtCg0KPQndCQINCR0J7QoNCY0JLQntCICivQktCY0KjQldCa0KDQo9Cd0JAg0JTQkNCd0JrQngor0JLQmNCo0JXQmtCg0KPQndCQINCU0KPQqNCQ0J0KK9CS0JjQqNCV0JrQoNCj0J3QkCDQlNCj0KjQmtCeCivQktCY0KjQldCa0KDQo9Cd0JAg0IjQntCS0JDQnQor0JLQmNCo0JXQmtCg0KPQndCQINCc0JjQm9CQ0J0KK9CS0JjQqNCV0JrQoNCj0J3QkCDQodCb0JDQktCa0J4KK9CS0JjQqNCV0JrQoNCj0J3QkCDQktCe0IjQmNCdCivQktCY0KjQmNCLINCc0JjQm9CVCivQktCY0KjQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQmNCo0JrQntCS0JjQiyDQnNCY0JvQntCoCivQktCY0KjQmtCe0JLQmNCLINCf0JvQkNCd0JjQndCa0JAKK9CS0JjQqNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0JjQqNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQktCY0KjQndCY0Isg0JTQkNCd0JjQptCQCivQktCY0KjQndCY0Isg0JTQo9Co0JDQnQor0JLQmNCo0J3QmNCLINCX0J7QoNCa0JAKK9CS0JjQqNCK0JXQktCn0JDQndCY0J0g0IjQntCS0JDQnQor0JLQmNCo0IrQldCS0KfQkNCd0JjQnSDQm9CV0J/QkAor0JLQmNCo0IrQldCS0JDQpiDQkdCe0KDQngor0JLQmNCo0IrQldCS0JDQpiDQntCb0JjQktCV0KDQkAor0JLQmNCo0IrQldCS0KHQmtCYINCa0JDQotCY0KbQkAor0JLQmNCo0IrQmNCn0JDQnSDQlNCj0KjQkNCdCivQktCY0KjQitCY0KfQkNCdINCT0JDQktCg0JjQm9CeCivQktCY0KjQitCY0KfQkNCdINCI0J7QktCQ0J3QmtCQCivQktCY0KjQitCY0KfQkNCdINCc0JjQm9CY0KbQkAor0JLQmNCo0IrQmNCn0JDQndCY0J0g0IjQntCS0JDQndCa0JAKK9CS0JjQqNCK0JjQp9CQ0KAg0JbQkNCg0JrQngor0JLQmNCo0IrQmNCn0JDQoCDQgtCe0KDQgtCVCivQktCY0KjQitCY0KfQkNCgINCC0J7QoNCC0JUKK9CS0JjQqNCK0JjQp9CQ0KAg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCY0KjQitCY0KfQkNCgINCc0JDQoNCY0IjQkAor0JLQmNCo0IrQmNCn0JDQoCDQnNCY0JrQkAor0JLQmNCo0IrQmNCn0JDQoCDQndCV0JTQldCJ0JrQngor0JLQmNCo0IrQmNCn0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JLQmNCo0IrQmNCn0JrQmCDQnNCY0JvQntCoCivQktCY0KjQitCY0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQqNCK0JjQp9Ca0Jgg0KHQoNCV0KLQldCdCivQktCY0KjQitCY0Isg0KfQldCU0J7QnNCY0JvQkAor0JLQmNCo0IrQmNCLINCR0KDQkNCd0JrQngor0JLQmNCo0IrQmNCLINCR0KDQkNCd0KHQmNCb0JDQktCQCivQktCY0KjQitCY0Isg0JTQkNCb0JjQkdCe0KAKK9CS0JjQqNCK0JjQiyDQlNCj0KjQkNCdCivQktCY0KjQitCY0Isg0JjQm9CY0IjQkAor0JLQmNCo0IrQmNCLINCI0J7QodCY0J8KK9CS0JjQqNCK0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JjQqNCK0JjQiyDQnNCY0JvQkNCdCivQktCY0KjQitCY0Isg0JzQmNCb0JjQptCQCivQktCY0KjQitCY0Isg0J7Qm9CY0JLQldCg0JAKK9CS0JjQqNCK0JjQiyDQntCb0JjQktCV0KAKK9CS0JjQqNCK0JjQiyDQodCf0JDQodCe0IjQlQor0JLQmNCo0IrQmNCLINCi0JjQpdCe0JzQmNCgCivQktCY0KjQitCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQmNCo0IrQmNCLINCS0JXQoNCQCivQktCY0KjQitCY0Isg0JLQldCh0J3QkAor0JLQmNCo0IrQntCS0KHQmtCYINCC0KPQoNCQCivQktCY0KjQitCe0JLQodCa0Jgg0JDQoNCQ0J3QmtCQCivQktCY0KjQitCe0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQktCY0KjQitCe0JLQodCa0Jgg0JzQkNCg0IjQkNCdCivQktCY0KjQntCo0JXQktCY0Isg0KDQo9CW0JXQndCQCivQktCY0KjQntCd0KLQkNCYINCI0J7QltCV0KQKK9CS0JjQqNCe0J3QotCQ0Jgg0IjQntCW0JXQpAor0JLQmNCL0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQktCY0JbQkNCYINCo0JDQndCU0J7QoAor0JLQmNCQ0KLQntCg0JjQoSDQiNCQ0J3QntCoCivQktCY0JDQotCe0KDQmNChINCI0KPQm9CY0KjQmtCQCivQktCY0JDQotCe0KDQmNChINCJ0KPQkdCY0KbQkAor0JLQmNCR0J7QmiDQiNCe0JbQldCkCivQktCY0KbQldCYINCI0J7QltCV0KQKK9CS0JjQptCV0Jgg0J3QmNCa0J7Qm9CQCivQktCY0KbQmNCQ0J0g0JrQm9CQ0KDQkAor0JLQmNCm0JrQniDQkNCg0J/QkNCUCivQktCY0KbQmtCeINCk0KDQkNCK0JAKK9CS0JjQptCa0J4g0IjQntCh0JjQnwor0JLQmNCm0JrQntCoINCI0J7QltCV0KQKK9CS0JjQptCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0KbQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCm0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQmNCm0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQktCY0KbQmtCe0JLQmNCLINCS0JXQodCd0JAKK9CS0JjQptCeINCR0J7Qk9CU0JDQnQor0JLQmNCm0J4g0KDQkNCU0JjQktCe0IjQlQor0JLQmNCm0J4g0KDQkNCU0J7QnNCY0KAKK9CS0JjQlCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQmNCU0JAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CS0JjQlNCQINCI0J7QltCV0KQKK9CS0JjQlNCQINCI0KPQm9CY0IjQkAor0JLQmNCU0JAg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CS0JjQlNCQINCS0JjQm9CYCivQktCY0JTQkNCnINCI0JDQitCQINCb0J7QmtCQ0JsKK9CS0JjQlNCQ0Kcg0JvQkNCh0JvQngor0JLQmNCU0JDQpyDQodCb0JDQktCY0KbQkAor0JLQmNCU0JDQiNCY0Isg0JbQmNCS0JrQngor0JLQmNCU0JDQiNCY0Isg0IjQkNCh0JzQmNCd0JAKK9CS0JjQlNCQ0IjQmNCLINCI0J7QodCY0J8KK9CS0JjQlNCQ0IjQmNCLINCb0KPQp9CY0IjQkNCd0J4KK9CS0JjQlNCQ0IjQmNCLINCc0JDQoNCY0IjQkAor0JLQmNCU0JDQiNCY0Isg0JLQldCJ0JAKK9CS0JjQlNCQ0IjQmNCLINCS0JvQkNCU0JAKK9CS0JjQlNCQ0JrQntCSINCQ0J3QmtCY0KbQkAor0JLQmNCU0JDQmtCe0JIg0IjQntCS0JDQnQor0JLQmNCU0JDQmtCe0JIg0JfQntCg0JjQptCQCivQktCY0JTQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkCDQlNCgCivQktCY0JTQkNCa0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JLQmNCU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQldCc0JjQmwor0JLQmNCU0JDQmtCe0JLQmNCLINCY0JLQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JjQktCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQmNCS0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCI0JDQk9Ce0JTQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCI0J7QodCY0J8KK9CS0JjQlNCQ0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQktCY0JTQkNCa0J7QktCY0Isg0JrQntCh0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCJ0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQktCY0JTQkNCa0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQntCb0JPQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQktCY0JTQkNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCQ0JLQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQotCV0KDQldCX0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCY0JTQkNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQmNCU0JDQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQktCY0JTQkNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0JjQlNCQ0J3QntCS0JjQiy3QodCa0J7QmtCeINCI0JXQm9CV0J3QkAor0JLQmNCU0JDQoNCY0Isg0IjQntCS0J4KK9CS0JjQlNCQ0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCY0JTQkNCg0JjQiyDQoNCQ0KLQmtCeCivQktCY0JTQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9CS0JjQlNCQ0KEg0KLQldCg0JXQl9CQCivQktCY0JTQldCmINCI0J7QodCY0J8KK9CS0JjQlNCV0KYg0IjQntCh0JjQnwor0JLQmNCU0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCU0JXQndCe0JLQmNCLINCa0J7QodCe0JLQmtCQCivQktCY0JTQldCd0J7QktCY0Isg0InQmNCJ0JDQndCQINCU0KAKK9CS0JjQlNCV0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQktCY0JTQldCgINCc0JjQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQktCY0JTQmNCLINCW0JXQidCa0J4KK9CS0JjQlNCY0Isg0ILQntCg0ILQlQor0JLQmNCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQlNCY0Isg0JHQoNCQ0J3QmtCQCivQktCY0JTQmNCLINCR0KDQkNCd0JrQkAor0JLQmNCU0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQlNCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CS0JjQlNCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JjQlNCY0Isg0JXQnNCY0JvQmNCI0JAKK9CS0JjQlNCY0Isg0IjQldCb0JjQptCQCivQktCY0JTQmNCLINCI0J7QptCQCivQktCY0JTQmNCLINCJ0JjQidCQ0J3QkAor0JLQmNCU0JjQiyDQidCj0JHQntCc0JjQoAor0JLQmNCU0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JjQlNCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQmNCLINCc0JjQm9Ce0KgKK9CS0JjQlNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQktCY0JTQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQlNCY0Isg0J3QkNCU0JAKK9CS0JjQlNCY0Isg0J/QldCg0J4KK9CS0JjQlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0JjQlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0JjQlNCY0Isg0KDQkNCI0JrQngor0JLQmNCU0JjQiyDQodCe0KTQmNCI0JAKK9CS0JjQlNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CS0JjQlNCY0Isg0KHQotCV0JLQkNCdCivQktCY0JTQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQmNCU0JjQiyDQktCV0InQmtCeCivQktCY0JTQmNCLINCS0JXQoNCQCivQktCY0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQktCY0JTQmNCm0JrQmCDQkdCg0JDQndCa0J4KK9CS0JjQlNCY0KbQmtCYINCY0JLQkNCdCivQktCY0JTQmNCm0JrQmCDQmtCe0KHQotCQCivQktCY0JTQmNCm0JrQmCDQidCj0JHQntCc0JjQoAor0JLQmNCU0JjQptCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JLQmNCU0JjQndCV0KAg0JHQntCW0JjQlNCQ0KAKK9CS0JjQlNCc0JDQndCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQktCY0JTQntCI0JXQktCY0Isg0JbQmNCS0JrQkAor0JLQmNCU0J7QiNCV0JLQmNCLINCR0JvQkNCW0J4KK9CS0JjQlNCe0IjQldCS0JjQiyDQkdCe0JbQkAor0JLQmNCU0J7QiNCV0JLQmNCLINCI0J7QodCY0KQKK9CS0JjQlNCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQktCY0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JLQmNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JjQlNCe0KHQkNCS0InQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0JjQlNCe0KHQkNCS0InQldCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQktCY0JTQntCS0JjQiyDQltCY0JLQmtCeCivQktCY0JTQntCS0JjQiyDQkNCc0JjQoNCQCivQktCY0JTQntCS0JjQiyDQkNCd0JjQptCQCivQktCY0JTQntCS0JjQiyDQkdCV0JDQotCg0JjQoQor0JLQmNCU0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQktCY0JTQntCS0JjQiyDQkdCY0KHQldCg0JrQkAor0JLQmNCU0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0JjQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JjQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JjQlNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQmNCU0J7QktCY0Isg0JTQoNCQ0JPQngor0JLQmNCU0J7QktCY0Isg0JzQkNCg0IjQkNCdCivQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQntCS0JjQiyDQnNCY0JvQlQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCY0JTQntCS0JjQiyDQnNCY0JvQntCoCivQktCY0JTQntCS0JjQiyDQnNCY0KDQmtCeCivQktCY0JTQntCS0JjQiyDQndCQ0JTQkAor0JLQmNCU0J7QktCY0Isg0J/QldCi0JDQoAor0JLQmNCU0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CS0JjQlNCe0JLQmNCLINCg0JDQiNCa0J4KK9CS0JjQlNCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQmNCU0J7QktCY0Isg0KHQkNCS0JAKK9CS0JjQlNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JjQlNCe0JLQmNCLINCS0JjQlAor0JLQmNCT0Jgg0IjQntCh0JjQnwor0JLQmNCT0IrQldCS0JjQiyDQgtCe0KDQgtCVCivQktCY0JPQitCV0JLQmNCLINCQ0J3QkAor0JLQmNCT0IrQldCS0JjQiyDQkdCg0JDQndCa0JAKK9CS0JjQk9CK0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0JPQitCV0JLQmNCLINCU0JDQmtCeCivQktCY0JPQitCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQmNCT0IrQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JjQk9CK0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JjQk9CK0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JjQk9CK0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CS0JjQk9CK0JXQktCY0Isg0KDQkNCU0JUKK9CS0JjQk9CK0JXQktCY0Isg0KHQotCV0JLQkNCd0JjQiNCQCivQktCY0JPQitCV0JLQmNCLINCS0JXQodCd0JAKK9CS0JjQk9CK0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQmNCT0IrQldCS0JjQiyDQl9Ce0KDQkNCdCivQktCY0IjQkNCi0J7QkiDQodCc0JjQidCQCivQktCY0IjQldCo0KLQmNCm0JAg0IrQldCT0J7QnNCY0KAKK9CS0JjQiNCj0Jog0InQo9CR0JDQnQor0JLQmNCI0KPQmiDQodCQ0JLQkAor0JLQmNCa0J7QoCDQn9CV0KLQkNCgCivQktCY0JrQntCgINCg0KPQltCQCivQktCY0JvQp9CV0Jog0IjQkNCK0JAKK9CS0JjQm9Cn0JXQmiDQndCY0JrQntCb0JAKK9CS0JjQm9CQINCc0JjQm9Ce0JLQkNCdCivQktCY0JvQkNCT0J7QqCDQgtCV0KDQgtCYCivQktCY0JvQldCi0Jgg0JfQntCg0JAKK9CS0JjQm9CY0Kgg0ILQo9Cg0JAKK9CS0JjQm9CY0Kgg0KTQoNCQ0IrQkAor0JLQmNCb0JjQiyDQnNCQ0KDQmtCeCivQktCY0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQktCY0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JLQmNCb0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQktCY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JjQm9CY0JPQntCg0KHQmtCYINCf0JDQo9Cb0JAKK9CS0JjQm9Ce0KLQmNCLINCW0JjQktCa0J4KK9CS0JjQm9Ce0KLQmNCLINCc0JjQm9CY0KHQkNCSCivQktCY0JvQntCi0JjQiNCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CS0JjQm9Ce0KLQmNCI0JXQktCY0Isg0JrQmNCL0KPQnQor0JLQmNCb0J7QotCY0IjQldCS0JjQiyDQnNCY0KDQntCI0JUKK9CS0JjQm9Ce0JLQkNCn0JrQmCDQmtCQ0KLQmNCm0JAKK9CS0JjQm9Ce0JLQkNCn0JrQmCDQodCb0JDQktCa0J4KK9CS0JjQm9Ce0JLQkNCmINCI0J7QktCQ0J0KK9CS0JjQm9Ce0JLQkNCmINCI0J7QktCQ0J0KK9CS0JjQm9Ce0JLQkNCmINCc0JjQm9CQ0J0KK9CS0JjQm9Ce0JLQodCa0Jgg0ILQntCg0ILQlQor0JLQmNCb0J7QktCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQm9Ce0JLQodCa0Jgg0JHQoNCQ0J3QmtCeCivQktCY0JvQntCS0KHQmtCYINCh0JDQktCQCivQktCY0JvQntCS0KHQmtCYINCh0JvQkNCS0J7QnNCY0KAKK9CS0JjQm9Ce0JLQodCa0Jgg0KHQnNCY0InQkNCd0JAKK9CS0JjQm9Ce0JLQodCa0Jgg0JLQldCJ0JrQngor0JLQmNCb0J7QktCh0JrQmCDQl9Ce0KDQkAor0JLQmNCb0KPQoSDQlNCQ0J3QmNCm0JAKK9CS0JjQnNCV0KAg0JLQldCg0JAKK9CS0JjQnSDQmNCS0JDQnQor0JLQmNCdINCI0J7QodCY0J8KK9CS0JjQnSDQm9CQ0IjQntCoCivQktCY0J0g0J/QkNCS0JvQlQor0JLQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CS0JjQndCoINCU0KDQkNCT0KPQotCY0J0KK9CS0JjQndCQ0Igg0ILQntCg0ILQlQor0JLQmNCd0JDQiCDQgtCe0KDQgtCVCivQktCY0J3QkNCIINCI0JDQndCa0J4KK9CS0JjQndCQ0Igg0InQo9CR0JjQptCQCivQktCY0J3QkNCIINCc0JXQm9CQ0J3QmNCI0JAKK9CS0JjQndCQ0IjQmCDQgtCj0KDQkAor0JLQmNCd0JDQiNCYINCc0JjQotCQ0KAKK9CS0JjQndCQ0IjQmCDQktCV0KDQmNCm0JAKK9CS0JjQndCQ0KDQliDQktCb0JDQlNCY0JzQmNCgCivQktCY0J3QptCVINCQ0J3QlNCg0JjQiNCQCivQktCY0J3QptCVINCV0KDQltCV0JHQldCiCivQktCY0J3QptCVINCY0KjQotCS0JDQnQor0JLQmNCd0KbQlSDQmtCQ0KDQm9CeCivQktCY0J3QptCVINCb0JDQptCY0JrQkAor0JLQmNCd0KbQlSDQnNCQ0KDQldCb0JAKK9CS0JjQndCm0JUg0JzQkNCg0JPQmNCi0JAKK9CS0JjQndCm0JUg0J/QkNCS0JvQlQor0JLQmNCd0KbQldCi0JjQnSDQkNCd0JAKK9CS0JjQndCP0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0JjQndCP0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CS0JjQndCU0JjQqCDQlNCg0JDQk9Cj0KLQmNCdCivQktCY0J3QlNCY0Kgg0KHQotCV0JLQkNCdCivQktCY0J3QldCgINCR0KDQkNCd0JjQodCb0JDQkgor0JLQmNCd0JXQoCDQmNCS0JDQnQor0JLQmNCd0JXQoCDQiNCV0KDQntCd0JjQnAor0JLQmNCd0JXQoCDQnNCQ0KDQmNCI0JAKK9CS0JjQndCV0KAg0JfQktCe0J3QmNCc0JjQoAor0JLQmNCd0JrQkCDQldCc0JDQndCj0JXQm9CQCivQktCY0J3QmtCY0Isg0JjQm9CY0IjQkAor0JLQmNCd0JrQm9CV0KAg0IjQntCW0JXQpAor0JLQmNCd0JrQm9CV0KDQntCS0JjQiyDQktCV0KDQmNCm0JAKK9CS0JjQndCa0J7QktCY0Isg0JDQndCQCivQktCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQmNCd0JrQntCS0JjQiyDQidCj0JTQldCS0JjQogor0JLQmNCd0J7QmtCY0Isg0JHQntCT0JTQkNCdCivQktCY0J3QntCa0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JLQmNCg0JDQkyDQkNCb0JHQldCg0KIKK9CS0JjQoNCQ0JMg0JDQndCU0KDQmNCI0JAKK9CS0JjQoNCQ0JMg0JXQoNCY0JrQkAor0JLQmNCg0JDQkyDQiNCj0JvQmNCI0JDQndCQCivQktCY0KDQkNCTINCJ0KPQlNCV0JLQmNCiCivQktCY0KDQkNCTINCc0JDQoNCi0J7QnQor0JLQmNCg0JDQkyDQnNCY0KXQkNCI0JvQngor0JLQmNCg0JDQkyDQoNCe0JHQldCg0KIKK9CS0JjQoNCQ0JMg0KDQntCR0JXQoNCiCivQktCY0KDQpiDQpNCV0KDQldCd0KYKK9CS0JjQoNCmINCI0J7QltCV0KQKK9CS0JjQoNCmINCI0J7QktCQ0J0KK9CS0JjQoNCmINCc0JDQoNCi0JjQnQor0JLQmNCg0KYg0J3QkNCU0JAKK9CS0JjQoNCmINCg0KPQltCY0KbQkAor0JLQmNCg0KYg0KHQotCV0JLQkNCdCivQktCY0KDQmNCLINCY0JLQkNCdCivQktCY0KDQmNCLINCY0JLQkNCdCivQktCY0KDQmNCI0JXQktCY0Isg0ILQntCg0ILQlQor0JLQmNCg0JjQiNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCY0KDQmNCI0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CS0JjQoNCY0IjQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JLQmNCg0JjQiNCV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQktCY0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JLQmNCg0JjQiNCV0JLQmNCLINCS0J7QiNCY0J0KK9CS0JjQodCb0JDQktCh0JrQmCDQgtCj0KDQkAor0JLQmNCh0JvQkNCS0KHQmtCYINCR0J7Qk9CU0JDQnQor0JLQmNCh0JvQkNCS0KHQmtCYINCI0JDQmtCY0JwKK9CS0JjQodCb0JDQktCh0JrQmCDQiNCQ0JrQmNCcCivQktCY0KHQm9CQ0JLQodCa0Jgg0IjQkNCd0J7QqAor0JLQmNCh0JvQkNCS0KHQmtCYINCI0JDQndCe0KgKK9CS0JjQodCb0JDQktCh0JrQmCDQm9CV0J7QnQor0JLQmNCh0JvQkNCS0KHQmtCYINCJ0KPQkdCe0JzQmNCgCivQktCY0KHQm9CQ0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQktCY0KHQm9CQ0JLQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CS0JjQodCb0JDQktCh0JrQmCDQnNCY0KDQntCdCivQktCY0KHQm9CQ0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQodCb0JDQktCh0JrQmCDQndCQ0KLQkNCo0JAKK9CS0JjQodCb0JDQktCh0JrQmCDQl9Cb0JDQotCa0J4KK9CS0JjQodCiINCl0JXQm9CT0JDQkNCd0JAKK9CS0JjQotCQ0KEg0KHQotCV0JLQkNCdCivQktCY0KLQkNChINCh0KLQldCS0JDQnQor0JLQmNCi0JDQodCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0KLQkNCh0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JjQotCQ0KHQntCS0JjQiyDQlNCj0KjQkNCdCivQktCY0KLQkNCh0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CS0JjQotCQ0Jcg0J/QldCi0JDQoAor0JLQmNCi0JXQlyDQiNCQ0J0KK9CS0JjQotCV0Jcg0KLQo9CT0J7QnNCY0KAKK9CS0JjQotCV0Jcg0JfQktCe0J3QmtCeCivQktCY0KLQmNCLINCC0J7QoNCC0JUKK9CS0JjQotCY0Isg0ILQntCg0ILQlQor0JLQmNCi0JjQiyDQkdCe0KjQmtCeINCU0KAg0JvQldCa0JDQoAor0JLQmNCi0IjQo9CaINCc0JjQoNCI0JDQndCQINCU0JjQn9CbINCY0J3Qkwor0JLQmNCi0IjQo9CaINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCY0KLQmtCQ0Jgg0JjQm9Ce0J3QkAor0JLQmNCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQotCa0J7QktCY0Isg0JTQoNCQ0JPQngor0JLQmNCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQktCY0KLQntCc0JjQoNCe0JIg0JbQmNCS0JDQnQor0JLQmNCi0J7QnNCY0KDQntCS0JjQiyDQkdCe0KDQmNChCivQktCY0KLQntCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0JjQotCe0KDQkNCmINCC0KPQoNCQCivQktCY0KLQntCg0JDQpiDQgtCj0KDQngor0JLQmNCi0J7QoNCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JLQmNCi0J7QoNCQ0KYg0JjQm9CY0IjQkAor0JLQmNCi0J7QoNCQ0KYg0J3QkNCU0JAKK9CS0JjQotCe0KDQkNCmINCg0KPQltCV0J3QmtCQCivQktCY0KLQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCi0J7QoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0JjQotCe0KDQntCS0JjQiyDQntCb0JPQkAor0JLQmNCi0J7QoNCe0JLQmNCLINCg0JDQndCa0JAKK9CS0JjQotCe0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CS0JjQotCj0KjQmtCQINCh0KLQldCS0JDQnQor0JLQmNCS0J7QlCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQmNCS0J7QlCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CS0JjQl9CYINCo0JDQndCU0J7QoAor0JLQmNCX0Jgg0IjQntCh0JjQnwor0JLQmNCX0Jgg0IjQntCS0JDQnQor0JLQmNCX0Jgg0JrQkNCi0JjQptCQCivQktCY0JfQmCDQnNCQ0KDQmNCI0JAKK9CS0JjQl9CYINCc0JDQoNCY0IjQkAor0JLQmNCX0Jgg0KDQkNCU0J7QiNCa0JAKK9CS0JjQl9CYINCh0J7QitCQCivQktCY0JfQmCDQodCi0JXQktCQ0J0KK9CS0IjQldCo0KLQmNCm0JAg0ILQo9Cg0J4KK9CS0IjQldCo0KLQmNCm0JAg0JTQo9Co0JDQndCa0JAKK9CS0IjQldCo0KLQmNCm0JAg0IjQntCS0J4KK9CS0IjQldCo0KLQmNCm0JAg0JzQmNCb0JDQnQor0JLQiNCV0KjQotCY0KbQkCDQnNCY0KDQmtCeCivQktCI0JXQqNCi0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9CS0IjQldCo0KLQmNCm0JAg0J3QkNCU0JAKK9CS0IjQldCo0KLQmNCm0JAg0J3QldCR0J7QiNCo0JAKK9CS0IjQldCo0KLQmNCm0JAg0KHQm9CQ0JLQmtCeCivQktCI0JXQoNCTINCR0KDQkNCd0JjQodCb0JDQkgor0JLQiNCV0KLQoNCe0JIg0InQo9CR0JjQptCQCivQktCb0JAg0JTQo9Co0JDQnQor0JLQm9CQINCU0KPQqNCQ0J0KK9CS0JvQkCDQiNCe0JLQkNCdCivQktCb0JAg0JzQmNCb0J7QktCQ0J0KK9CS0JvQkCDQn9CV0KLQkNCgCivQktCb0JAg0KDQkNCU0J7QodCb0JDQkgor0JLQm9CQINCh0JvQkNCS0JrQngor0JLQm9CQINCh0KDQldCi0JAKK9CS0JvQkNCn0J4g0JTQo9Co0JDQndCa0JAKK9CS0JvQkNCo0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCb0JDQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JvQkNCo0JjQiyDQktCQ0KHQngor0JLQm9CQ0KjQmtCQ0JvQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCQ0J3QlNCg0JjQiNCQCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQntCW0JDQndCQCivQktCb0JDQqNCa0JDQm9CY0Ist0JHQntCI0JDQndCe0JLQmNCLINCg0JDQiNCa0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JvQkNCo0JrQkNCb0JjQiyDQlNCe0J3QmtCQCivQktCb0JDQqNCa0JDQm9CY0Isg0KTQkNCU0JjQm9CQCivQktCb0JDQqNCa0JDQm9CY0Isg0JjQm9CY0IjQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCb0JDQl9CQ0KAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQm9CQ0JfQkNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JvQkNCo0JrQkNCb0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQntCb0JPQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCf0JDQktCb0JUKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CQ0JLQm9CVCivQktCb0JDQqNCa0JDQm9CY0Isg0J/QkNCS0JvQlQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCf0JXQotCQ0KAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CV0KLQkNCgCivQktCb0JDQqNCa0JDQm9CY0Ist0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0KHQkNCS0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQqNCa0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0KLQldCS0JDQnQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0KLQntCI0JDQnQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQl9Ce0KDQkAor0JLQm9CQ0KjQmtCQ0JvQmNCI0JAg0IjQldCb0JXQndCQCivQktCb0JDQqNCa0JDQm9CY0IjQkCDQktCb0JDQlNCQCivQktCb0JDQqNCa0JDQm9CY0J0g0JHQoNCQ0J3QmtCeCivQktCb0JDQqNCa0Jgg0JHQntCT0JTQkNCd0JrQkAor0JLQm9CQ0KjQmtCYINCb0JDQl9CQ0KAKK9CS0JvQkNCo0JrQmCDQn9Cg0JXQlNCg0JDQkwor0JLQm9CQ0JTQkNCg0KHQmtCYINCe0JvQk9CQCivQktCb0JDQlNCQ0KDQodCa0Jgg0J7Qm9CT0JAKK9CS0JvQkNCU0JXQotCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0JTQldCi0JjQiyDQnNCY0KDQmtCeCivQktCb0JDQlNCY0Isg0JTQoNCQ0JPQngor0JLQm9CQ0JTQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0JjQiyDQn9CV0KLQkNCgCivQktCb0JDQlNCY0JzQmNCgINCh0JXQm9CV0J3QkAor0JLQm9CQ0JTQmNCc0JjQoCDQl9CU0KDQkNCS0JrQngor0JLQm9CQ0JTQmNCc0JjQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCb0JDQlNCY0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0JTQmNCc0JjQoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0JbQmNCS0JDQnQor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQkiDQnNCY0JvQntCg0JDQlAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQkiDQn9CV0KDQkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQkiDQotCe0JzQkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0ILQo9Cg0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JXQoNCW0JXQkdCV0KIKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0J7QkdCg0JDQlAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Ist0J/QldCo0JrQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JvQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0JLQm9CQ0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQktCb0JDQlNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQktCb0JDQlNCj0KjQkCDQndCY0JrQntCb0JAKK9CS0JvQkNCU0KPQqNCY0Isg0JjQktCQ0J0KK9CS0JvQkNCU0KPQqNCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0JTQo9Cb0J7QkiDQltCY0JLQntCI0JjQnQor0JLQm9CQ0JTQo9Cb0J7QktCY0Ist0J/QntCf0J7QkiDQnNCQ0KDQmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQktCb0JDQlNCj0JvQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JLQm9CQ0KUg0JTQkNCd0JjQptCQCivQktCb0JDQpSDQmNCS0JDQnQor0JLQm9CQ0KUg0J/QkNCS0JvQlQor0JLQm9CQ0KUg0KDQkNCU0J7QktCQ0J0KK9CS0JvQkNCl0JXQmiDQodCi0JDQndCa0J4KK9CS0JvQkNCl0JjQndCY0Isg0JzQmNCb0J7QqAor0JLQm9CQ0KXQniDQmtCg0KPQndCe0KHQm9CQ0JIKK9CS0JvQkNCl0J7QktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0KXQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9CS0JvQkNCl0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQpdCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JLQm9CQ0KXQntCS0JjQiyDQkdCg0JDQndCa0JAKK9CS0JvQkNCl0J7QktCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0JLQm9CQ0KXQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCb0JDQpdCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0JvQkNCl0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQm9CQ0KXQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0JvQkNCl0J7QktCY0Isg0InQo9CR0JjQptCQCivQktCb0JDQpdCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQktCb0JDQpdCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQm9CQ0KXQntCS0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQm9CQ0KXQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQm9CQ0KXQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCg0JrQniDQlNCgINCY0J3Qkwor0JLQm9CQ0KXQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CS0JvQkNCl0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0JvQkNCl0J7QktCY0Isg0J/QkNCS0JvQlQor0JLQm9CQ0KXQntCS0JjQiyDQoNCQ0JTQntCoCivQktCb0JDQpdCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQktCb0JDQpdCe0JLQmNCLINCg0JDQlNCe0IrQkAor0JLQm9CQ0KXQntCS0JjQiyDQodCQ0JLQkCDQlNCgCivQktCb0JDQpdCe0JLQmNCLINCh0JXQndCa0JAKK9CS0JvQkNCl0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0KXQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCl0J7QktCY0Isg0KHQotCg0JDQpdCY0IrQkAor0JLQm9CQ0KXQntCS0JjQiyDQotCV0J7QlNCe0KDQkAor0JLQm9CQ0KXQntCS0JjQiyDQktCY0KLQntCc0JjQoNCa0JAKK9CS0JvQkNCl0J7QktCY0Isg0JLQm9CQ0JTQkAor0JLQm9CQ0KXQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCb0JDQpdCj0KjQmNCLINCc0JjQoNCa0J4KK9CS0JvQkNCl0KPQqNCY0Isg0J7Qm9CT0JjQptCQCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCC0KPQiNCeCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0JDQndCY0JvQngor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0JDQoNCQCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JTQnNCY0KLQkNCgCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCc0JDQmtCh0JjQnAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KgKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0KHQkNCS0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0KHQntCk0JjQiNCQCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCe0IjQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCi0KDQmNCS0KPQndCQCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JLQkNCh0J4KK9CS0JvQkNCI0JDQndCa0J7QkiDQm9CQ0JfQkNCgCivQktCb0JDQiNCQ0J3QmtCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0JLQm9CQ0IjQkNCd0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCI0JDQndCa0J7Qki3QktCj0JvQmNCLINCS0JXQoNCQCivQktCb0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQktCb0JDQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CS0JvQkNCI0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQm9CQ0IjQmNCLINCU0KPQqNCY0KbQkAor0JLQm9CQ0IjQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JvQkNCI0JjQiyDQnNCY0JvQntCoCivQktCb0JDQiNCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JLQm9CQ0IjQmtCe0JIg0JHQntCh0JjQidCa0JAKK9CS0JvQkNCI0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQm9CQ0IjQmtCe0JIg0JHQoNCQ0J3QmtCeCivQktCb0JDQiNCa0J7Qki3QmNCS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQktCb0JDQiNCa0J7QkiDQm9CQ0JfQkNCgCivQktCb0JDQiNCa0J7QkiDQm9CQ0JfQkAor0JLQm9CQ0IjQmtCe0JIg0JzQkNCm0JAKK9CS0JvQkNCI0JrQntCSINCc0JjQntCU0KDQkNCTCivQktCb0JDQiNCa0J7QkiDQnNCY0KDQmtCeCivQktCb0JDQiNCa0J7QkiDQnNCb0JDQlNCV0J0KK9CS0JvQkNCI0JrQntCSINCd0JjQmtCe0JvQkAor0JLQm9CQ0IjQmtCe0JIg0J/QkNCS0JvQlQor0JLQm9CQ0IjQmtCe0JIg0J/QldCi0JDQoAor0JLQm9CQ0IjQmtCe0JIg0JfQntCg0JjQptCQCivQktCb0JDQiNCa0J7QktCY0Isg0JDQndCi0J7QndCY0IjQkAor0JLQm9CQ0IjQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JLQm9CQ0IjQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQktCb0JDQiNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JvQkNCI0JrQntCS0JjQiyDQndCV0JzQkNCK0JAKK9CS0JvQkNCI0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQktCb0JDQiNCd0JjQiyDQk9Ce0KDQkNCdCivQktCb0JDQiNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQm9CQ0IjQndCY0Isg0JfQntCg0JAKK9CS0JvQkNCI0J7QktCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCb0KPQmtCY0J0g0JTQoNCQ0JPQntCh0JvQkNCSCivQktCb0JDQm9Cj0JrQmNCdINCY0JvQntCd0JAKK9CS0JvQkNCb0KPQmtCY0J0g0JjQm9Ce0J3QmtCQCivQktCb0JDQm9Cj0JrQmNCdINCc0JjQm9Ce0KDQkNCUINCU0JjQn9CbINCY0J3Qkwor0JLQm9CQ0JvQo9Ca0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JLQm9CQ0JvQo9Ca0JjQnSDQndCQ0JTQkAor0JLQm9CQ0JvQo9Ca0JjQnSDQodCQ0JLQkAor0JLQm9CQ0JvQo9Ca0JjQnSDQodCb0JDQktCa0J4KK9CS0JvQkNCb0KPQmtCY0J0g0JfQntCg0JAKK9CS0JvQkNCe0JIt0JbQkNCg0JrQntCSINCe0JvQk9CQCivQktCb0JDQntCSINCT0J7QoNCU0JDQndCQCivQktCb0JDQntCSINCI0JDQktCe0KDQmtCQCivQktCb0JDQntCSINCc0JjQm9Ce0KgKK9CS0JvQkNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JLQm9CQ0J7QkiDQktCV0JvQmNCc0JjQoAor0JLQm9CQ0J7QktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0J7QktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0J7QktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0J7QktCY0Isg0ILQntCg0ILQlQor0JLQm9CQ0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JvQkNCe0JLQmNCLINCQ0J3QmNCm0JAKK9CS0JvQkNCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0JvQkNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQktCb0JDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0JvQkNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQm9CQ0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCb0JDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCb0JDQntCS0JjQiyDQlNCj0KjQkNCdCivQktCb0JDQntCS0JjQiyDQlNCj0KjQmtCeCivQktCb0JDQntCS0JjQiyDQk9CQ0JLQoNCQCivQktCb0JDQntCS0JjQiyDQpdCQ0KDQmAor0JLQm9CQ0J7QktCY0Isg0JjQk9CK0JDQogor0JLQm9CQ0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQktCb0JDQntCS0JjQiyDQiNCV0JvQkAor0JLQm9CQ0J7QktCY0Isg0IjQntCS0JDQnQor0JLQm9CQ0J7QktCY0Isg0IjQntCS0JDQnQor0JLQm9CQ0J7QktCY0Isg0JrQkNCi0JjQptCQCivQktCb0JDQntCS0JjQiyDQm9CQ0JfQkNCgCivQktCb0JDQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CS0JvQkNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JLQm9CQ0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JvQkNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCb0JDQntCS0JjQiyDQm9Cj0JrQkAor0JLQm9CQ0J7QktCY0Isg0JzQkNCg0JAKK9CS0JvQkNCe0JLQmNCLINCc0JDQoNCa0J4KK9CS0JvQkNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0JvQkNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0JvQkNCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQktCb0JDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCb0JDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JvQkNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCb0JDQntCS0JjQiyDQntCb0JjQktCV0KDQkAor0JLQm9CQ0J7QktCY0Isg0J/Qm9CV0JzQldCd0JrQkAor0JLQm9CQ0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0JvQkNCe0JLQmNCLINCg0JDQiNCa0J4KK9CS0JvQkNCe0JLQmNCLINCh0JDQktCQCivQktCb0JDQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0JvQkNCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQktCb0JDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQm9CQ0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQm9CQ0J7QktCY0Isg0KLQntCo0JAKK9CS0JvQkNCe0JLQmNCLINCi0J7QlNCe0KAKK9CS0JvQkNCe0JLQmNCLINCi0J7QnNCQCivQktCb0JDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQktCb0JDQntCS0JjQiyDQktCV0KHQndCQCivQktCb0JDQntCS0JjQiyDQktCb0JDQodCi0JjQodCb0JDQktCQCivQktCb0JDQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCb0JDQodCQ0KfQldCS0JjQiyDQodCi0J7QiNCa0J4KK9CS0JvQkNCh0JDQmiDQoNCV0J3QkNCi0JAKK9CS0JvQkNCh0J7QkiDQnNCY0KXQkNCI0JvQngor0JLQm9CQ0KHQotCV0JvQmNCLINCg0J7QmtCh0JDQndCU0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQltCV0InQmtCeCivQktCb0JDQotCa0J7QktCY0Isg0JDQndCT0JXQm9CeCivQktCb0JDQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQm9CQ0KLQmtCe0JLQmNCLINCa0KDQldCo0JjQnNCY0KAKK9CS0JvQkNCi0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQotCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCb0JDQotCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQm9CQ0KLQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQm9CQ0KLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0KLQmtCe0JLQmNCLINCh0JDQktCa0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCe0KjQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0J7QqNCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQntCU0JAg0JfQlNCV0J3QmtCeCivQktCe0JTQkNCb0J7QkiDQlNCV0IjQkNCdCivQktCe0JTQkNCb0J7QkiDQnNCb0JDQlNCV0J0KK9CS0J7QlNCV0J3QmNCn0JDQoCDQndCY0JrQntCb0JAKK9CS0J7QlNCe0JPQkNCXINCU0KDQkNCT0JDQnQor0JLQntCU0J7Qk9CQ0Jcg0JvQldCf0J7QodCQ0JLQkAor0JLQntCU0J7Qn9CY0JLQldCmINCW0JXQidCa0J4KK9CS0J7QlNCe0J/QmNCS0JXQpiDQlNCg0JDQk9CY0KbQkAor0JLQntCU0J7Qn9CY0JLQldCmINCc0JjQpdCQ0JXQmwor0JLQntCT0JDQitCQ0KYg0JzQmNCb0JXQndCa0J4KK9CS0J7Qk9Cb0JXQqCDQm9CY0JTQmNCI0JAKK9CS0J7QmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0JvQldCa0JDQoAor0JLQntCI0KfQldCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0IjQp9CY0Isg0IjQntCS0JDQnQor0JLQntCI0JDQqNCL0KPQmiDQnNCQ0KDQkAor0JLQntCI0JjQp9CY0Isg0IjQldCb0JXQndCQCivQktCe0IjQmNCn0JjQiyDQoNCQ0IjQmtCeCivQktCe0IjQmNCn0JjQiyDQodCQ0JLQkAor0JLQntCI0JjQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0JjQnNCY0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0J7QiNCY0J0g0JzQmNCb0JrQkAor0JLQntCI0JjQndCe0JIg0ILQntCg0ILQlQor0JLQntCI0JjQndCe0JIg0JzQmNCg0JAKK9CS0J7QiNCY0J3QntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CS0J7QiNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQntCI0JjQndCe0JLQmNCLINCR0J7Qk9CY0IsKK9CS0J7QiNCY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0J7QiNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCe0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQktCe0IjQmNCd0J7QktCY0Isg0IjQntCS0JDQnSDQlNCgCivQktCe0IjQmNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQktCe0IjQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0J7QiNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0J7QiNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCgCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQntCI0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0J7QiNCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQntCI0JjQndCe0JLQmNCLINCS0KPQiNCY0KbQkAor0JLQntCI0JjQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQktCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JfQm9CQ0KLQmNCI0JAKK9CS0J7QiNCa0JjQiyDQkdCe0KjQmtCeCivQktCe0IjQmtCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JLQntCI0J3QmNCLINCk0KDQkNCK0JAKK9CS0J7QiNCd0JjQiy3QpdCQ0IjQlNCj0Jog0JPQmNCX0JAKK9CS0J7QiNCd0JjQiy3QpdCQ0IjQlNCj0Jog0InQmNCJ0JDQndCQCivQktCe0IjQndCY0Ist0KXQkNCI0JTQo9CaINCc0JjQoNCI0JDQndCQCivQktCe0IjQndCY0Isg0IjQntCS0JDQnQor0JLQntCI0J3QmNCLLdCa0J7QoNCi0KPQmNCoINCh0KLQkNCd0JAKK9CS0J7QiNCd0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QiNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7Qki3QmNCb0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQktCe0IjQndCe0JIg0KHQotCe0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0JLQntCI0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JLQntCI0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCe0IjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0J7QiNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CS0J7QiNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CS0J7QiNCd0J7QktCY0Isg0JDQptCQCivQktCe0IjQndCe0JLQmNCLINCQ0J3QkNCh0KLQkNCX0JjQiNCQCivQktCe0IjQndCe0JLQmNCLINCR0KDQkNCm0JAKK9CS0J7QiNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQntCI0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQktCe0IjQndCe0JLQmNCLINCU0JDQktCe0KAKK9CS0J7QiNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0J7QiNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0J7QiNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCe0IjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQntCI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0J7QiNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0J7QiNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQntCI0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQntCI0J3QntCS0JjQiyDQk9CY0JfQldCb0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQktCe0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQmNCS0JDQndCa0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CS0J7QiNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQktCe0IjQndCe0JLQmNCLINCa0JvQkNCg0JAKK9CS0J7QiNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQktCe0IjQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCc0JDQoNCQCivQktCe0IjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CY0J3QkAor0JLQntCI0J3QntCS0JjQiyDQnNCY0InQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQntCI0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQntCI0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdINCU0JjQn9CbINCe0JXQpgor0JLQntCI0J3QntCS0JjQiyDQndCQ0JTQkAor0JLQntCI0J3QntCS0JjQiyDQndCQ0JTQkAor0JLQntCI0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JLQntCI0J3QntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQktCe0IjQndCe0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCgCivQktCe0IjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQntCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0J7QiNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JLQntCI0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCe0IjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCU0JUKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCU0JUKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCU0JUKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0J7QiNCd0J7QktCY0Ist0KDQkNCU0KPQiNCa0J7QkiDQndCQ0JTQkAor0JLQntCI0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQktCe0IjQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCe0IjQndCe0JLQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0JDQnNCV0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCQCivQktCe0IjQndCe0JLQmNCLINCh0KLQldCS0J4KK9CS0J7QiNCd0J7QktCY0Isg0KHQotCe0IjQmtCQCivQktCe0IjQndCe0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9CS0J7QiNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQntCI0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQntCI0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQntCI0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCe0IjQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7QiNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCe0IjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQntCI0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQntCI0KIg0InQo9CR0JjQptCQCivQktCe0IjQoiDQnNCY0JvQkNCd0JAKK9CS0J7QiNCi0JDQoSDQodCi0JDQndCY0KHQm9CQ0JIKK9CS0J7QiNCi0JXQpdCe0JLQodCa0Jgg0IjQkNCg0J7QodCb0JDQkgor0JLQntCI0KLQldCl0J7QktCh0JrQmCDQntCi0J4KK9CS0J7QiNCi0JXQpdCe0JLQodCa0Jgg0J7QotCeCivQktCe0IjQotCV0KXQntCS0KHQmtCYINCX0JDQk9Ce0KDQmtCQCivQktCe0IjQktCe0JTQmNCLINCC0KPQoNCQCivQktCe0IjQktCe0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0IjQktCe0JTQmNCLINCQ0J3QkAor0JLQntCI0JLQntCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0J7QiNCS0J7QlNCY0Isg0JTQkNCd0JjQptCQCivQktCe0IjQktCe0JTQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0J7QiNCS0J7QlNCY0Isg0JTQo9Co0JDQnQor0JLQntCI0JLQntCU0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQktCe0IjQktCe0JTQmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0JzQkNCd0JjQqNCQCivQktCe0IjQktCe0JTQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCb0JUKK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCb0J7QqAor0JLQntCI0JLQntCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQntCI0JLQntCU0JjQiyDQnNCY0KDQmtCeCivQktCe0IjQktCe0JTQmNCLINCd0JDQlNCQCivQktCe0IjQktCe0JTQmNCLINCd0JjQmtCe0JvQkAor0JLQntCI0JLQntCU0JjQiyDQoNCQ0JTQntCS0JDQnQor0JLQntCI0JLQntCU0JjQiyDQoNCQ0KLQmtCQCivQktCe0IjQktCe0JTQmNCLINCh0JvQkNCS0JrQngor0JLQntCI0JLQntCU0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQktCe0JTQmNCLLdCi0JDQodCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQntCI0JLQntCU0JjQiyDQktCQ0KHQngor0JLQntCI0JLQntCU0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCe0IjQktCe0JTQmNCLINCX0J7QoNCQCivQktCe0JrQqNCYINCC0JXQktCQ0JQKK9CS0J7QmtCQ0JvQmNCLINCl0JjQm9CU0JXQk9CQ0KDQlAor0JLQntCa0JDQm9CY0Isg0KLQldCe0JHQkNCb0JQKK9CS0J7QmtCY0Isg0JTQoNCQ0JPQkNCdCivQktCe0JrQmNCLINCU0KPQqNCa0J4KK9CS0J7QmtCY0Isg0IjQntCS0JDQnQor0JLQntCa0JjQiyDQndCQ0JTQkAor0JLQntCb0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCe0JvQp9CV0JLQmNCLINCV0JLQkAor0JLQntCb0KfQldCS0JjQiyDQotCe0JTQntCgCivQktCe0JvQp9CV0JLQodCa0Jgg0JXQktCQ0J3QotCY0IjQlQor0JLQntCb0KfQldCS0KHQmtCYINCd0JjQmtCe0JvQkAor0JLQntCb0JDQqCDQmNCh0JjQlNCe0KAKK9CS0J7Qm9CQ0Kgg0JzQmNCb0JDQndCa0J4KK9CS0J7Qm9CQ0Kgg0JzQmNCb0JDQnQor0JLQntCb0JDQoCDQkNCd0JTQoNCQ0KgKK9CS0J7Qm9CQ0KAg0JrQkNCg0JvQngor0JLQntCb0JDQoCDQn9CV0KLQkNCgCivQktCe0JvQkNCgINCh0KLQiNCV0J/QkNCdCivQktCe0JvQkNCg0JXQkiDQidCj0JHQntCc0JjQoAor0JLQntCb0JDQoNCV0JIg0J3QkNCU0JAKK9CS0J7Qm9CQ0KDQldCSINCh0KLQldCS0JDQnQor0JLQntCb0JDQoNCV0JLQmNCLINCc0JDQoNCa0J4KK9CS0J7Qm9CQ0KDQldCS0JjQiyDQl9Ce0KDQkNCdCivQktCe0JvQkNCg0J7QkiDQnNCY0JvQkNCdCivQktCe0JvQkNCg0J7QkiDQoNCQ0JTQntCS0JDQnQor0JLQntCb0JXQndCmINCc0JDQoNCY0IjQkAor0JLQntCb0KQg0JHQntCg0JjQoQor0JLQntCb0KQg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQntCb0KQg0JjQqNCi0JLQkNCdCivQktCe0JvQpCDQidCj0JHQmNCm0JAKK9CS0J7Qm9CkINCJ0KPQlNCV0JLQmNCiCivQktCe0JvQpCDQnNCY0KDQkAor0JLQntCb0KQg0JzQmNCg0JAKK9CS0J7Qm9CkINCS0JXQoNCQCivQktCe0JvQmNCnINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0J7Qm9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCe0JvQmNCLINCT0KDQo9CI0JAKK9CS0J7Qm9CY0Isg0InQmNCJ0JDQndCQCivQktCe0JvQmNCLINCc0JDQoNCY0J3QmtCQCivQktCe0JvQmNCLINCf0JXQotCQ0KAKK9CS0J7Qm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQntCb0JjQiyDQodCb0JDQktCa0J4KK9CS0J7Qm9CY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0J7Qm9CY0Isg0JLQmNCd0JrQkAor0JLQntCb0JrQkNCgINCV0JzQmNCbCivQktCe0JvQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0JLQntCb0J7QqNCa0JjQnSDQkdCg0JDQotCY0KHQm9CQ0JIKK9CS0J7Qm9Ce0KjQmtCY0J0g0JTQoNCQ0JPQmNCm0JAKK9CS0J7QndCY0Isg0JLQm9CQ0KLQmtCeCivQktCe0KDQkNCn0JXQmiDQltCV0InQmtCeCivQktCe0KDQkNCn0JXQmiDQm9CQ0JTQmNCh0JvQkNCSCivQktCe0KDQkNCi0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0J7QoNCT0JjQiyDQgtCe0KDQgtCVCivQktCe0KDQk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0J7QoNCT0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQntCg0JPQmNCLINCR0J7QoNCY0JLQntCICivQktCe0KDQk9CY0Isg0JTQoNCQ0JPQkNCdCivQktCe0KDQk9CY0Isg0JXQnNCY0JsKK9CS0J7QoNCT0JjQiyDQk9CQ0JLQoNCQCivQktCe0KDQk9CY0Isg0IjQntCh0JjQnwor0JLQntCg0JPQmNCLINCb0JDQl9CQ0KAKK9CS0J7QoNCT0JjQiyDQnNCQ0KDQkAor0JLQntCg0JPQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0JLQntCg0JPQmNCLINCd0JjQmtCe0JvQkCDQlNCgCivQktCe0KDQk9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQntCg0JPQmNCLINCh0KLQldCS0JDQnQor0JLQntCg0JPQmNCLINCh0KLQldCS0JDQnQor0JLQntCg0JPQmNCLINCS0KPQiNCY0KbQkAor0JLQntCg0JPQmNCLINCX0JTQoNCQ0JLQmtCeCivQktCe0KDQk9CY0Isg0JfQntCg0JAKK9CS0J7QoNCT0JjQndCmINCm0JLQldCi0JAKK9CS0J7QoNCT0KPQp9CY0Isg0JzQmNCb0J7QqAor0JLQntCg0JPQo9Cn0JjQiyDQodCQ0KjQkAor0JLQntCg0JPQo9Cn0JjQnSDQmNCS0JDQnQor0JLQntCg0JrQkNCf0JAg0J3QmNCa0J7Qm9CQCivQktCe0KDQmtCQ0J/QmNCLINCU0KPQqNCQ0J0KK9CS0J7QoNCa0JDQn9CY0Isg0InQo9CR0JjQptCQCivQktCe0KDQmtCQ0J/QmNCLINCc0JjQm9CQ0J0KK9CS0J7QoNCa0JDQn9CY0Isg0J3QmNCa0J7Qm9CQCivQktCe0KDQm9CY0KfQldCaINCI0JDQndCe0KgKK9CS0J7QoNCb0JjQp9CV0Jog0IjQkNCd0J7QqAor0JLQntCg0JvQmNCn0JXQmiDQnNCQ0KDQmNCm0JAKK9CS0J7QoNCe0JHQiNCV0JIg0J/QldCi0JDQoAor0JLQntCg0J7QkdCI0JXQkiDQodCQ0JLQkAor0JLQntCg0J7QotCe0JLQmNCLINCh0KLQkNCd0JAKK9CS0J7QoNCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JLQntCX0JDQoCDQkNCd0JAKK9CS0J7Ql9CQ0KAg0JTQkNCd0JjQptCQCivQktCe0JfQkNCgINCU0KDQkNCT0JDQnQor0JLQntCX0JDQoCDQnNCY0JvQntCoCivQktCe0JfQkNCgINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQktCe0JfQkNCg0JXQktCY0Isg0ILQntCg0ILQlQor0JLQntCX0JDQoNCV0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JLQntCX0JDQoNCV0JLQmNCLINCI0JXQm9CY0KbQkAor0JLQntCX0JDQoNCV0JLQmNCLINCc0JjQoNCa0J4KK9CS0J7Ql9CQ0KDQntCS0JjQiyDQktCY0JTQkAor0JLQoNCn0JjQndCQ0KYg0J/QldCi0JDQoAor0JLQoNCo0JrQkCDQgtCe0KDQgtCVCivQktCg0KjQmtCQINCU0JDQndCY0IjQldCbCivQktCg0KjQmtCQINCa0JDQotCQ0KDQmNCd0JAKK9CS0KDQkNCn0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KDQkNCn0JDQoCDQlNCQ0KDQmNCd0JrQkAor0JLQoNCQ0KfQkNCgINCI0J7QktCQ0J0KK9CS0KDQkNCn0JDQoCDQidCj0JHQntCc0JjQoAor0JLQoNCQ0KfQkNCgINCJ0KPQkdCeCivQktCg0JDQp9CQ0KAg0JzQmNCb0JDQnQor0JLQoNCQ0KfQkNCgINCc0JjQntCJ0JrQkAor0JLQoNCQ0KfQkNCgINCd0JXQlNCV0InQmtCeCivQktCg0JDQp9CQ0KAg0KHQm9CQ0JLQmtCQCivQktCg0JDQp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JLQoNCQ0KfQkNCgINCS0JXQoNCQCivQktCg0JDQp9CQ0KAg0JLQo9CaCivQktCg0JDQp9CQ0KAg0JfQlNCV0J3QmtCQCivQktCg0JDQp9CQ0KDQmNCn0JjQiyDQoNCQ0JTQlQor0JLQoNCQ0KfQkNCg0JjQiyDQgtCe0KDQgtCVCivQktCg0JDQp9CQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCg0JDQp9CQ0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JLQoNCQ0KfQkNCg0JjQiyDQiNCV0JvQmNCm0JAKK9CS0KDQkNCn0JDQoNCY0Isg0InQmNCJ0JDQndCQCivQktCg0JDQp9CQ0KDQmNCLINCJ0KPQkdCY0KjQkAor0JLQoNCQ0KfQkNCg0JjQiyDQidCj0JHQntCc0JjQoAor0JLQoNCQ0KfQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KDQkNCn0JDQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KDQkNCn0JDQoNCY0Isg0JzQmNCb0JjQodCQ0JIKK9CS0KDQkNCn0JDQoNCY0Isg0JzQmNCb0J7QnNCY0KAKK9CS0KDQkNCn0JDQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQoNCQ0KfQldCS0JjQiyDQodCQ0JLQmtCQCivQktCg0JDQqNCi0JDQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQktCg0JDQkdCb0JjQmiDQiNCj0JvQmNCI0JDQndCQCivQktCg0JDQk9Ce0JLQmNCLINCI0J7QptCQCivQktCg0JDQndCQINCd0JDQlNCQCivQktCg0JDQndCQ0KYg0JrQodCV0J3QmNCI0JAKK9CS0KDQkNCd0JDQpiDQodCV0JDQlAor0JLQoNCQ0J3QkNCmINCS0JDQpdCY0JTQkAor0JLQoNCQ0J3QkNCmINCX0JjQiNCQ0JQKK9CS0KDQkNCd0JXQqCDQp9CV0JTQntCc0JjQoAor0JLQoNCQ0J3QldCoINCR0J7QltCY0JTQkNCgCivQktCg0JDQndCV0Kgg0JTQkNCS0J7QoNCY0J0KK9CS0KDQkNCd0JXQqCDQldCc0JjQm9CY0IjQkAor0JLQoNCQ0J3QldCoINCI0J7QktCQ0J3QmtCQCivQktCg0JDQndCV0Kgg0JzQkNCg0JjQiNCQCivQktCg0JDQndCV0Kgg0JzQmNCb0JDQnQor0JLQoNCQ0J3QldCoINCc0JjQm9Ca0JAKK9CS0KDQkNCd0JXQqCDQnNCY0JvQo9Ci0JjQnQor0JLQoNCQ0J3QldCoINCd0JDQlNCQCivQktCg0JDQndCV0Kgg0J3QmNCa0J7Qm9CQCivQktCg0JDQndCV0Kgg0J/QldCi0JDQoAor0JLQoNCQ0J3QldCoINCh0JzQmNCJ0JAKK9CS0KDQkNCd0JXQqCDQktCV0KDQmNCm0JAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCQ0JTQkNCcCivQktCg0JDQndCV0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0JLQoNCQ0J3QldCo0JXQktCY0Isg0JTQkNCc0IjQkNCdCivQktCg0JDQndCV0KjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQoNCQ0J3QldCo0JXQktCY0Isg0J3QkNCU0JAg0JTQoAor0JLQoNCQ0J3QldCo0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCg0JDQiNCa0J4KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JLQoNCQ0J3QldCo0JXQktCY0Isg0KHQotCe0IjQkNCdCivQktCg0JDQndCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KDQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9CS0KDQkNCd0JjQiyDQlNCe0JHQoNCY0J3QkAor0JLQoNCQ0J3QmNCLINCU0KDQkNCT0JjQitCQCivQktCg0JDQndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCg0JDQndCY0Isg0JjQm9CY0IjQkAor0JLQoNCQ0J3QmNCLINCI0JDQlNCg0JDQndCa0JAKK9CS0KDQkNCd0JjQiyDQnNCQ0KDQmtCeCivQktCg0JDQndCY0Isg0JzQmNCb0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQktCg0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KDQkNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQoNCQ0J3QmNCLINCc0JjQoNCn0JXQotCQCivQktCg0JDQndCY0Isg0JzQmNCg0JrQngor0JLQoNCQ0J3QmNCLINCc0JjQotCg0JAKK9CS0KDQkNCd0JjQiyDQndCV0J3QkNCUCivQktCg0JDQndCY0Isg0J3QmNCa0J7Qm9CQCivQktCg0JDQndCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JLQoNCQ0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQktCg0JDQndCY0Isg0KHQm9CQ0JLQmtCeCivQktCg0JDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQoNCQ0IrQldCoINCT0J7QiNCa0J4KK9CS0KDQkNCK0JXQqCDQiNCe0JLQkNCd0JrQkAor0JLQoNCQ0IrQldCoINCc0JjQm9CV0J3QmtCeCivQktCg0JDQitCV0Kgg0JzQmNCb0JXQndCa0J4KK9CS0KDQkNCK0JXQqCDQnNCY0JvQlQor0JLQoNCQ0IrQldCoINCc0JjQm9Ca0JAKK9CS0KDQkNCK0JXQqCDQndCV0J3QkNCUCivQktCg0JDQitCV0Kgg0KDQkNCU0J7QnNCY0KAKK9CS0KDQkNCK0JXQqCDQodCe0KTQmNCI0JAKK9CS0KDQkNCK0JXQqCDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0KDQkNCK0JXQqCDQodCS0JXQotCb0JDQndCQCivQktCg0JDQitCV0KjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCU0JjQndCa0JAKK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQoNCQ0IrQldCo0JXQktCY0Isg0IjQntCS0JjQptCQCivQktCg0JDQitCV0KjQldCS0JjQiyDQnNCe0JzQmNCgCivQktCg0JDQitCV0KjQldCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0JLQldCJ0JrQngor0JLQoNCQ0IrQldCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0KDQkNCK0JXQktCQ0KYg0JzQmNCb0JjQktCe0IjQlQor0JLQoNCQ0IrQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KDQkNCK0JrQntCS0JjQiyDQnNCY0JvQlQor0JLQoNCQ0IrQmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0JLQoNCQ0IrQmtCe0JLQmNCLINCh0KDQldCi0J4KK9CS0KDQkNCK0J4g0KTQoNCQ0IrQkAor0JLQoNCQ0IrQniDQl9Ce0JvQotCQ0J0KK9CS0KDQkNCd0JrQntCS0JjQiyDQiNCj0KDQkNCICivQktCg0JDQndCa0J7QktCY0Isg0JvQo9Ca0JAKK9CS0KDQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQn9Cn0JXQkiDQltCY0JLQmtCeCivQktCg0JDQn9Cn0JXQkiDQlNCj0KjQmtCeCivQktCg0JDQn9Cn0JXQkiDQnNCV0JvQkNCd0JjQiNCQCivQktCg0JDQotCK0JDQnSDQkdCg0JDQndCY0JzQmNCgCivQktCg0JDQotCe0IrQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CS0KDQkdCQ0KjQmtCYINCW0JDQoNCa0J4KK9CS0KDQkdCQ0KjQmtCYINCW0JDQoNCa0J4KK9CS0KDQkdCQ0KjQmtCYINCC0J7QoNCC0JUKK9CS0KDQkdCQ0KjQmtCYINCC0J7QoNCC0JUKK9CS0KDQkdCQ0KjQmtCYINCC0KPQoNCQCivQktCg0JHQkNCo0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQoNCR0JDQqNCa0Jgg0JDQndCY0KbQkAor0JLQoNCR0JDQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KDQkdCQ0KjQmtCYINCU0JDQoNCY0J3QmtCQCivQktCg0JHQkNCo0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQktCg0JHQkNCo0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0KDQkdCQ0KjQmtCYINCU0KPQqNCQ0J0KK9CS0KDQkdCQ0KjQmtCYINCU0KPQqNCQ0J0KK9CS0KDQkdCQ0KjQmtCYINCU0KPQqNCQ0J0KK9CS0KDQkdCQ0KjQmtCYINCU0KPQqNCY0KbQkAor0JLQoNCR0JDQqNCa0Jgg0JPQntCg0JTQkNCd0JAKK9CS0KDQkdCQ0KjQmtCYINCI0JXQm9CV0J3QkAor0JLQoNCR0JDQqNCa0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CS0KDQkdCQ0KjQmtCYINCI0J7QktCQ0J0KK9CS0KDQkdCQ0KjQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9CS0KDQkdCQ0KjQmtCYINCa0J7QodCi0JAKK9CS0KDQkdCQ0KjQmtCYINCb0JDQl9CQ0KAKK9CS0KDQkdCQ0KjQmtCYINCJ0JjQidCQ0J3QkAor0JLQoNCR0JDQqNCa0Jgg0InQo9CR0JjQptCQINCc0KAKK9CS0KDQkdCQ0KjQmtCYINCJ0KPQkdCe0JzQmNCgCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQkNCdCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQkNCdCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQldCd0JAKK9CS0KDQkdCQ0KjQmtCYINCc0JjQm9CV0J3QmtCeCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQmNCm0JAKK9CS0KDQkdCQ0KjQmtCYINCc0JjQm9Ce0KDQkNCUCivQktCg0JHQkNCo0JrQmCDQnNCY0J7QlNCg0JDQkwor0JLQoNCR0JDQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JLQoNCR0JDQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JLQoNCR0JDQqNCa0Jgg0J/QkNCS0JvQlQor0JLQoNCR0JDQqNCa0Jgg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CS0KDQkdCQ0KjQmtCYINCf0JXQotCQ0KAKK9CS0KDQkdCQ0KjQmtCYINCf0JXQotCQ0KAKK9CS0KDQkdCQ0KjQmtCYINCg0JDQlNCQCivQktCg0JHQkNCo0JrQmCDQoNCQ0JTQldCd0JrQngor0JLQoNCR0JDQqNCa0Jgg0KHQkNCS0JAKK9CS0KDQkdCQ0KjQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9CS0KDQkdCQ0KjQmtCYINCh0KLQldCS0JDQnSDQlNCgCivQktCg0JHQkNCo0JrQmCDQodCS0JXQotCb0JDQndCQCivQktCg0JHQkNCo0JrQmCDQotCQ0IrQkAor0JLQoNCR0JDQqNCa0Jgg0KLQmNCc0JAKK9CS0KDQkdCQ0KjQmtCYINCi0J7QlNCe0KAKK9CS0KDQkdCQ0KjQmtCYINCS0JvQkNCU0JjQodCb0JDQkgor0JLQoNCR0JDQiNCQ0KYg0ILQntCg0ILQlQor0JLQoNCR0JDQiNCQ0KYg0KbQktCV0IvQlQor0JLQoNCR0JDQiNCQ0KYg0IjQntCS0JDQnQor0JLQoNCR0JDQiNCQ0KYg0JLQkNCb0JXQoNCY0IjQkAor0JLQoNCR0JDQndCQ0KYg0JvQkNCI0J7QqAor0JLQoNCR0JjQptCQINCU0KDQkNCT0J7QidCj0JEKK9CS0KDQkdCY0KbQkCDQmtCh0JXQndCY0IjQkAor0JLQoNCR0JjQptCQINCf0JXQotCQ0KAKK9CS0KDQkdCJ0JDQndCQ0KYg0JDQm9CV0J0KK9CS0KDQptCQ0J0g0JLQkNCb0JXQoNCY0IjQkAor0JLQoNCm0JXQiSDQltCY0JLQmtCeCivQktCg0KbQldCJINCR0J7QltCY0JTQkNCgCivQktCg0KbQldCJINCJ0JjQidCQ0J3QkAor0JLQoNCm0JXQiSDQnNCY0KXQkNCI0JvQngor0JLQoNCm0JXQiSDQl9Ce0KDQkNCdCivQktCg0JTQntCJ0JDQmiDQkdCg0JDQndCY0JzQmNCgCivQktCg0JTQntCJ0JDQmiDQoNCQ0JTQntCS0JDQndCa0JAKK9CS0KDQldCo0IvQkNCaINCY0KjQotCS0JDQnQor0JLQoNCV0IvQkCDQkdCg0JDQndCa0J4KK9CS0KDQldCL0J4g0JLQldCb0JjQnNCY0KAKK9CS0KDQldCR0JDQpiDQl9CS0J7QndCY0JzQmNCgCivQktCg0JXQkdCQ0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQktCg0JXQkdCQ0JvQntCSINCh0KLQldCS0JDQnQor0JLQoNCV0JHQkNCb0J7QkiDQotCY0KXQntCc0JjQoAor0JLQoNCV0JLQldCX0J7QodCa0Jgg0KDQmNCh0KLQngor0JLQoNCV0JLQmNCn0JjQiyDQgtCe0KDQgtCVCivQktCg0JXQktCY0KfQmNCLINCh0JjQnNCQCivQktCg0JXQktCY0KfQmNCLINCi0KDQmNCS0KPQnQor0JLQoNCT0J7QkiDQmtCe0KHQotCQCivQktCg0JPQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KDQk9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JLQoNCT0J7QktCY0Isg0JLQldCg0JAKK9CS0KDQk9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KDQpdCe0JLQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JLQoNCl0J7QktCQ0KYg0JTQkNCd0JUKK9CS0KDQpdCe0JLQkNCmINCI0JDQodCc0JjQndCQCivQktCg0KXQntCS0JDQpiDQndCV0JTQldCJ0JrQngor0JLQoNCl0J7QktCQ0KYg0KHQm9CQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JLQoNCl0J7QktCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JLQoNCa0JXQqCDQk9Ce0KDQkNCdCivQktCg0JzQmNCLINCc0JvQkNCU0JXQnQor0JLQoNCd0KfQmNCLINCC0J7QoNCC0JUKK9CS0KDQodCQ0IjQmtCe0JIg0JjQm9CY0IjQkAor0JLQoNCh0JDQiNCa0J7QkiDQmNCh0JjQlNCe0KAKK9CS0KDQodCQ0IjQmtCe0JIg0IjQo9Cb0JrQkAor0JLQoNCh0JDQiNCa0J7QkiDQidCj0JHQmNCm0JAKK9CS0KDQodCQ0IjQmtCe0JIg0JzQmNCb0J7QqAor0JLQoNCh0JDQiNCa0J7QkiDQndCV0JLQldCd0JrQkAor0JLQoNCh0JXQidCQINCS0JjQndCa0J4KK9CS0KDQotCY0JrQkNCf0JAg0IjQntCS0JDQndCa0JAKK9CS0KDQotCY0J/QoNCQ0KjQmtCYINCf0JXQotCQ0KAKK9CS0KDQotCY0J/QoNCQ0KjQmtCYINCg0JDQlNCe0JLQkNCdINCU0KAKK9CS0KDQotCY0J/QoNCQ0KjQmtCYINCg0JDQlNCe0JLQkNCdCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQktCQ0KHQkAor0JLQoNCi0J7QktCo0J3QmNCaINCc0JjQpdCQ0IjQm9CeCivQktCg0KLQo9Cb0JXQmiDQodCc0JjQidCQCivQktCg0KLQo9Cd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCg0KLQo9Cd0JjQiyDQnNCQ0KDQmtCeCivQktCg0KLQo9Cd0JjQiyDQndCY0JrQntCb0JAKK9CS0KDQotCj0J3QodCa0Jgg0JTQkNCd0JjQptCQCivQktCg0KLQo9Cd0KHQmtCYINCl0JXQlNCS0JjQk9CQCivQktCg0KLQo9Cd0KHQmtCYINCI0KPQm9Ca0JAKK9CS0KDQotCj0J3QodCa0Jgg0JrQkNCi0JDQoNCY0J3QkAor0JLQoNCi0KPQndCh0JrQmCDQnNCY0JvQkNCdCivQktCg0KLQo9Cd0KHQmtCYINCc0JjQm9CY0KbQkAor0JLQoNCi0KPQndCh0JrQmCDQnNCY0J7QlNCg0JDQkwor0JLQoNCi0KPQndCh0JrQmCDQnNCb0JDQlNCV0J0KK9CS0KDQotCj0J3QodCa0Jgg0KHQoNCC0JDQnQor0JLQoNCi0KPQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQktCg0KPQi9CY0J3QmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CS0KDQo9CL0JjQndCY0Isg0KDQkNCI0JrQngor0JLQoNCX0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCg0JfQmNCLINCU0KDQkNCT0JjQptCQCivQktCg0JfQmNCLINCU0KDQkNCT0JjQptCQCivQktCg0JfQmNCLINCd0JDQlNCV0JbQlNCQCivQktCg0JfQmNCLINCh0KLQldCS0J4KK9CS0KPQp9CQ0Igg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQp9CQ0Igg0KTQoNCQ0J0KK9CS0KPQp9CQ0Igg0JzQmNCe0JzQmNCg0JAKK9CS0KPQp9CQ0Igg0KDQntCR0JXQoNCiCivQktCj0KfQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KPQp9CV0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQktCj0KfQldCb0JjQiyDQodCb0JDQktCa0J4KK9CS0KPQp9CV0JvQmNCLINCS0JXQoNCQCivQktCj0KfQldCb0JjQiyDQktCb0JDQiNCa0J4KK9CS0KPQp9CV0J0g0JzQmNCb0JDQndCQCivQktCj0KfQldCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cn0JXQndCe0JIg0ILQo9Cg0JjQptCQCivQktCj0KfQldCd0J7QkiDQmtCQ0KLQkNCb0JjQnQor0JLQo9Cn0JXQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9CS0KPQp9CV0J3QntCSINCh0KLQldCS0JDQnQor0JLQo9Cn0JXQndCe0JLQmNCLINCW0JjQktCQ0J0KK9CS0KPQp9CV0J3QntCS0JjQiyDQltCY0JLQkNCdCivQktCj0KfQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQktCj0KfQldCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQp9CV0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0KfQldCd0J7QktCY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JXQndCe0JLQmNCLINCb0KPQmtCQCivQktCj0KfQldCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9Cn0JXQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9CV0J3QntCS0JjQiyDQodCg0JXQotCeCivQktCj0KfQldCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Cn0JXQoNCY0Isg0J/QoNCS0J7QodCb0JDQkgor0JLQo9Cn0JXQotCY0Isg0JbQmNCa0JAKK9CS0KPQp9CV0KLQmNCLINCW0JjQktCa0J4KK9CS0KPQp9CV0KLQmNCLINCQ0J3QgtCV0JvQmtCQCivQktCj0KfQldCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Cn0JXQotCY0Isg0JHQntCI0JDQndCQCivQktCj0KfQldCi0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Cn0JXQotCY0Isg0JTQldCh0JjQnNCY0KAKK9CS0KPQp9CV0KLQmNCLINCU0JXQktCQCivQktCj0KfQldCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KPQp9CV0KLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Cn0JXQotCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JXQotCY0Isg0JvQkNCX0JDQoAor0JLQo9Cn0JXQotCY0Isg0InQmNCJ0JDQndCQCivQktCj0KfQldCi0JjQiyDQnNCY0IvQkAor0JLQo9Cn0JXQotCY0Isg0JzQmNCb0JXQndCQCivQktCj0KfQldCi0JjQiyDQnNCY0JvQldCd0JAKK9CS0KPQp9CV0KLQmNCLINCc0JjQm9CV0J0KK9CS0KPQp9CV0KLQmNCLINCc0JjQm9Ce0KHQkNCSCivQktCj0KfQldCi0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cn0JXQotCY0Isg0J3QmNCd0JrQngor0JLQo9Cn0JXQotCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JXQotCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JXQotCY0Isg0KDQkNCU0JUKK9CS0KPQp9CV0KLQmNCLINCg0JDQlNCe0IjQmtCQCivQktCj0KfQldCi0JjQiyDQoNCQ0JTQntCI0JrQngor0JLQo9Cn0JXQotCY0Isg0KDQkNCI0JrQngor0JLQo9Cn0JXQotCY0Isg0KHQkNCK0JAKK9CS0KPQp9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQp9CV0KLQmNCLINCh0JzQmNCJ0JrQkAor0JLQo9Cn0JXQotCY0Isg0KHQntCk0JjQiNCQCivQktCj0KfQldCi0JjQiyDQodCi0JDQndCa0J4KK9CS0KPQp9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JLQo9Cn0JXQotCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Cn0JXQotCY0Isg0JLQkNCK0JAKK9CS0KPQp9CV0KLQmNCLINCS0JXQidCa0J4g0JTQoAor0JLQo9Cn0JXQotCY0Isg0JLQldCg0JAKK9CS0KPQp9CV0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JLQo9Cn0JXQotCY0Isg0JfQntCg0JDQnQor0JLQo9Cn0JXQotCY0Isg0JfQntCg0JDQnQor0JLQo9Cn0JXQotCY0J0g0JbQmNCS0JDQnQor0JLQo9Cn0JXQotCY0J0g0JzQmNCb0J7QoNCQ0JQKK9CS0KPQp9CV0KLQmNCdINCf0JXQotCQ0KAKK9CS0KPQp9CV0KLQmNCdINCh0J7QpNCY0IjQkAor0JLQo9Cn0JXQotCY0J0g0KLQntCU0J7QoAor0JLQo9Cn0JXQktCQ0KYg0JbQldCb0JjQnNCY0KAKK9CS0KPQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0KfQldCS0JjQiyDQkdCe0JbQkNCd0JAKK9CS0KPQp9CV0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CS0KPQp9CY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0KfQmNCLINCW0JDQoNCa0J4KK9CS0KPQp9CY0Isg0ILQntCg0ILQlQor0JLQo9Cn0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQktCj0KfQmNCLINCR0J7Qk9CU0JDQnQor0JLQo9Cn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQo9Cn0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQp9CY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JLQo9Cn0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQmNCLINCa0JDQotCY0KbQkAor0JLQo9Cn0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JLQo9Cn0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Cn0JjQiyDQndCV0JLQldCd0JrQkAor0JLQo9Cn0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Cn0JjQiyDQotCe0JTQntCgCivQktCj0KfQmNCLINCS0JXQodCV0JvQmNCdCivQktCj0KfQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JLQo9Cn0JjQi9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0KfQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JjQi9CV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0KfQmNCL0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Cn0JjQi9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQo9Cn0JjQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0KfQmNCL0JXQktCY0Isg0J3QkNCU0JXQltCU0JAKK9CS0KPQp9CY0IvQldCS0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQmNCL0JXQktCY0Isg0KHQldCb0JjQnNCY0KAKK9CS0KPQp9CY0IvQldCS0JjQiyDQktCj0JrQntCh0JDQkgor0JLQo9Cn0JjQndCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JLQo9Cn0JjQndCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0KPQp9CY0J3QmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CY0J3QmNCLINCT0JDQktCg0JjQm9CeCivQktCj0KfQmNCd0JjQiyDQiNCQ0IrQkAor0JLQo9Cn0JjQndCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JLQo9Cn0JjQndCY0Isg0InQmNCJ0JDQndCQINCU0KAKK9CS0KPQp9CY0J3QmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0KfQmNCd0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQp9CY0J3QmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0J3QmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQo9Cn0JjQndCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQp9CY0J3QmNCLINCc0JvQkNCU0JXQnQor0JLQo9Cn0JjQndCY0Isg0JzQm9CQ0JTQldCdCivQktCj0KfQmNCd0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQmNCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQo9Cn0JjQndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9CY0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0KfQmNCd0JjQiyDQoNCQ0IjQmtCeCivQktCj0KfQmNCd0JjQiyDQktCV0KHQndCQCivQktCj0KfQmNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0KfQmNCd0JjQiyDQktCj0JrQnNCQ0J0KK9CS0KPQp9CY0J3QmNCLINCX0JvQkNCi0JjQkdCe0KAKK9CS0KPQp9CY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQo9Cn0JrQntCSINCR0J7QiNCQ0J3QkAor0JLQo9Cn0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cn0JrQntCSINCc0JDQoNCV0JvQkAor0JLQo9Cn0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQktCj0KfQmtCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JLQo9Cn0JrQntCS0JDQpiDQoNCQ0JTQlQor0JLQo9Cn0JrQntCS0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCn0JDQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQktCj0KfQmtCe0JLQmNCLINCW0JjQktCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Cn0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0KfQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQktCj0KfQmtCe0JLQmNCLINCQ0J3QkAor0JLQo9Cn0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCj0KfQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQktCj0KfQmtCe0JLQmNCLINCV0JzQmNCdCivQktCj0KfQmtCe0JLQmNCLINCV0JLQmNCm0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0JLQo9Cn0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQktCj0KfQmtCe0JLQmNCLINCI0JDQndCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JvQo9Ca0JAg0JTQmNCf0Jsg0J7QldCmCivQktCj0KfQmtCe0JLQmNCLINCc0JDQoNCQCivQktCj0KfQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQktCj0KfQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQntCoCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0KPQp9Ca0J7QktCY0Isg0J3QkNCU0JAg0JTQoAor0JLQo9Cn0JrQntCS0JjQiyDQndCQ0JTQkAor0JLQo9Cn0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQndCY0JrQntCb0JAg0JLQldCi0JXQoNCY0J3QkNCgCivQktCj0KfQmtCe0JLQmNCLINCd0J7QktCY0KbQkAor0JLQo9Cn0JrQntCS0JjQiyDQn9CQ0KPQm9CY0J3QkAor0JLQo9Cn0JrQntCS0JjQiy3Qn9CV0KPQoNCQ0KfQkCDQidCY0InQkNCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0KPQp9Ca0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0KHQkNCS0JXQotCQCivQktCj0KfQmtCe0JLQmNCLLdCh0JjQnNCY0Isg0JLQldCh0J3QkAor0JLQo9Cn0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCh0KLQntCI0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CS0KPQp9Ca0J7QktCY0Isg0KHQotCe0IjQkNCdINCU0KAKK9CS0KPQp9Ca0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Cn0JrQntCS0JjQiyDQotCQ0IjQodCY0IjQkAor0JLQo9Cn0JrQntCS0JjQiyDQotCe0JzQngor0JLQo9Cn0JrQntCS0JjQiyDQktCQ0KHQkAor0JLQo9Cn0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCn0JXQlNCeCivQktCj0KfQo9Cg0JXQktCY0Isg0ILQntCg0ILQlQor0JLQo9Cn0KPQoNCV0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQkdCb0JDQltCeCivQktCj0KfQo9Cg0JXQktCY0Isg0JHQntCo0JrQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cn0KPQoNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQo9Cn0KPQoNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Cj0KDQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCc0JDQqNCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JzQmNCb0J7QqAor0JLQo9Cn0KPQoNCV0JLQmNCLINCc0JjQoNCa0J4KK9CS0KPQp9Cj0KDQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQp9Cj0KDQldCS0JjQiyDQndCQ0JTQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQotCV0KDQldCX0JjQiNCQCivQktCj0KfQo9Cg0JXQktCY0Isg0KPQoNCe0KgKK9CS0KPQp9Cj0KDQldCS0JjQiyDQktCV0KHQndCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQktCb0JDQlNCeCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Cn0KPQoNCV0JLQmNCLINCS0J7QiNCeCivQktCj0KfQo9Cg0J7QktCY0Isg0IjQkNCh0J3QkAor0JLQo9Cn0KPQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Cj0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0KfQo9Cg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Cn0KPQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQo9Cn0KPQoNCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCj0KfQo9Cg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQktCj0KjQotCQ0KAg0JHQntCT0JTQkNCdCivQktCj0KbQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQo9Cm0JXQidCQINCU0KDQkNCT0JDQnQor0JLQo9Cm0JXQidCQINCc0JjQm9Ce0KgKK9CS0KPQptCV0InQkC3Qn9CV0KLQoNCe0J3QmNCI0JXQktCY0Isg0JLQldCg0JAKK9CS0KPQptCV0InQkCDQotCg0JjQktCj0J0KK9CS0KPQptCV0InQkCDQktCe0IjQmNCdCivQktCj0JTQoNCQ0JMg0KHQkNCS0J4KK9CS0KPQlNCg0JDQkyDQl9Ce0KDQkNCdCivQktCj0JTQoNCQ0JMg0JfQntCg0JDQnQor0JLQo9CU0KDQkNCa0J7QktCY0Isg0KDQkNCi0JrQngor0JLQo9CT0JTQldCb0JjQiyDQlNCe0JHQoNCY0JLQntCICivQktCj0JPQlNCV0JvQmNCLINCS0KPQmgor0JLQo9CT0JvQldCmINCV0JTQmNCi0JAKK9CS0KPQk9Cg0JXQndCY0KfQldCaINCC0KPQoNCQCivQktCj0JPQoNCV0J3QmNCn0JXQmiDQnNCQ0JPQlNCQCivQktCj0JPQoNCY0J0g0KHQotCV0JLQkNCdCivQktCj0JPQoNCY0J3Qp9CY0Isg0JDQndCa0JAKK9CS0KPQk9Cg0JjQndCn0JjQiyDQpNCg0JDQitCeCivQktCj0JPQoNCY0J3Qp9CY0Isg0IjQkNCg0J7QodCb0JDQkgor0JLQo9CT0KDQmNCd0JXQpiDQoNCj0JTQntCb0KQKK9CS0KPQmNCLINCI0J7QodCY0J8KK9CS0KPQiNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCn0JjQiyDQnNCY0JvQlQor0JLQo9CI0KfQmNCLINCf0JXQotCQ0KAKK9CS0KPQiNCn0JjQiyDQn9CV0KLQoNCY0IjQkAor0JLQo9CI0KfQmNCdINCI0J7QktCQ0J0KK9CS0KPQiNCn0JjQnSDQnNCY0JvQkNCdCivQktCj0IjQp9CY0J0g0JzQmNCi0JAKK9CS0KPQiNCQ0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CS0KPQiNCQ0KfQmNCLINCU0KPQkdCg0JDQktCa0JAKK9CS0KPQiNCQ0KfQmNCLINCc0JjQm9CY0KHQkNCSCivQktCj0IjQkNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9CI0JDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCQ0KfQmNCLINCd0JjQmtCe0JvQkAor0JLQo9CI0JDQp9CY0Isg0KDQkNCU0J7QodCQ0JIKK9CS0KPQiNCQ0KfQmNCLINCg0JDQiNCa0J4KK9CS0KPQiNCQ0KjQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JLQo9CI0JDQqNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JDQqNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQktCj0IjQkNCo0JrQntCS0JjQiyDQl9Ce0KDQkAor0JLQo9CI0JDQptCa0J7QkiDQgtCe0KDQgtCVCivQktCj0IjQkNCm0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQkNCm0JrQntCSINCI0J7QktCQ0J0KK9CS0KPQiNCQ0JTQmNCd0J7QkiDQlNCe0JHQoNCY0JLQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QqAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCY0KjQitCQCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCS0JjQotCeCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQiNCQ0JrQm9CY0IjQkCDQlNCV0KHQkAor0JLQo9CI0JDQmtCb0JjQiNCQINCh0KLQkNCd0JrQngor0JLQo9CI0JDQmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9CS0KPQiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQktCj0IjQkNCa0J7QktCY0Isg0JrQoNCh0KLQkNCdCivQktCj0IjQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JDQmtCe0JLQmNCLINCS0JDQodCeCivQktCj0IjQkNCa0J7QktCY0Isg0JLQo9CI0J4KK9CS0KPQiNCQ0J3QmNCLINCW0JjQktCe0KHQkNCSCivQktCj0IjQkNCd0JjQiyDQltCY0JLQntCh0JvQkNCSCivQktCj0IjQkNCd0JjQiyDQkdCe0KDQmNCS0J7QiAor0JLQo9CI0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0IjQkNCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9CI0JDQndCY0Isg0IjQntCg0JTQkNCdCivQktCj0IjQkNCd0JjQiyDQmtCe0KDQndCV0JvQmNCI0JAKK9CS0KPQiNCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CS0KPQiNCQ0J3QmNCLINCc0JjQm9CVCivQktCj0IjQkNCd0JjQiyDQnNCY0JvQntCS0JDQnQor0JLQo9CI0JDQndCY0Isg0J3QldCU0JXQidCa0JAKK9CS0KPQiNCQ0J3QmNCLINCf0JXQotCQ0KAKK9CS0KPQiNCQ0J3QmNCLLdCS0JDQoNCT0JAg0JTQmNCd0JrQkCDQlNCgCivQktCj0IjQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0JDQndCe0JIg0JzQmNCb0JDQndCa0JAKK9CS0KPQiNCQ0J3QntCSINCd0JjQmtCe0JvQkAor0JLQo9CI0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgCivQktCj0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KPQiNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KPQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQo9CI0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQktCj0IjQkNCd0J7QktCY0Isg0IjQntCS0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0IjQngor0JLQo9CI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JLQo9CI0JDQndCe0JLQmNCLINCc0JjQm9CY0J3QmtCQCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQktCj0IjQkNCd0J7QktCY0Isg0KHQmNCc0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQktCj0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JLQo9CI0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9CI0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQktCj0IjQkNCh0JjQnSDQodCi0KDQkNCY0JvQngor0JLQo9CI0JDQodCY0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQo9CI0JDQodCY0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0JzQkNCg0JrQngor0JLQo9CI0JDQodCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQiNCQ0KLQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9CI0JDQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCj0IjQkNCi0J7QktCY0Isg0KLQldCe0JTQntCgCivQktCj0IjQldCS0JjQiyDQoNCj0JbQkAor0JLQo9CI0JjQp9CY0Isg0ILQntCg0ILQlQor0JLQo9CI0JjQp9CY0Isg0JHQmNCh0JXQoNCa0JAKK9CS0KPQiNCY0KfQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0IjQmNCn0JjQiyDQptCS0JXQotCQCivQktCj0IjQmNCn0JjQiyDQlNCQ0J3QmNCb0J4g0JTQoAor0JLQo9CI0JjQp9CY0Isg0JTQntCR0KDQmNCb0JAKK9CS0KPQiNCY0KfQmNCLINCU0KDQkNCT0JDQnQor0JLQo9CI0JjQp9CY0Isg0JTQo9Co0JDQnQor0JLQo9CI0JjQp9CY0Isg0JPQntCI0JrQngor0JLQo9CI0JjQp9CY0Isg0JjQk9CK0JDQogor0JLQo9CI0JjQp9CY0Isg0JjQm9CY0IjQkAor0JLQo9CI0JjQp9CY0Isg0JjQktCY0KbQkCDQlNCgINCf0KDQntCkCivQktCj0IjQmNCn0JjQiyDQnNCQ0KDQmtCeCivQktCj0IjQmNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0JLQo9CI0JjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQiNCY0KfQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0KfQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0KfQmNCLINCf0JXQotCQ0KAKK9CS0KPQiNCY0KfQmNCLINCf0JXQotCg0JAKK9CS0KPQiNCY0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0KPQiNCY0KfQmNCLINCg0JDQndCa0J4KK9CS0KPQiNCY0KfQmNCLINCg0JDQotCa0J4KK9CS0KPQiNCY0KfQmNCLINCg0JDQotCa0J4KK9CS0KPQiNCY0KfQmNCLINCh0JjQnNCeCivQktCj0IjQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQmNCn0JjQiyDQodCg0ILQkNCdCivQktCj0IjQmNCn0JjQiyDQodCi0JDQndCa0J4KK9CS0KPQiNCY0KfQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0JjQp9CY0Isg0KHQotCe0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JjQp9CY0Isg0KHQktCV0KLQmtCeCivQktCj0IjQmNCn0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQktCj0IjQmNCn0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQktCj0IjQmNCn0JjQiyDQktCV0KDQkAor0JLQo9CI0JjQp9CY0Isg0JLQldCg0JjQptCQCivQktCj0IjQmNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0IjQmNCn0JjQiyDQktCe0IjQmNCdCivQktCj0IjQmNCn0JjQnSDQltCQ0KDQmtCeCivQktCj0IjQmNCn0JjQnSDQgtCe0KDQgtCVCivQktCj0IjQmNCn0JjQnSDQgtCj0KDQgtCY0KbQkAor0JLQo9CI0JjQp9CY0J0g0InQo9CR0JjQptCQCivQktCj0IjQmNCn0JjQnSDQn9CV0KLQkNCgCivQktCj0IjQmNCLINCW0JDQoNCa0J4KK9CS0KPQiNCY0Isg0JbQmNCS0JrQngor0JLQo9CI0JjQiyDQgtCe0KDQgtCVCivQktCj0IjQmNCLINCC0J7QoNCC0JUKK9CS0KPQiNCY0Isg0ILQo9Cg0ILQmNCI0JAKK9CS0KPQiNCY0Isg0ILQo9Cg0JAKK9CS0KPQiNCY0Isg0ILQo9Cg0JAKK9CS0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JLQo9CI0JjQiyDQkNCd0KLQlQor0JLQo9CI0JjQiyDQkNCd0KLQlQor0JLQo9CI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQiNCY0Isg0JHQoNCQ0J3QmtCQCivQktCj0IjQmNCLINCU0KDQkNCT0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQkAor0JLQo9CI0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQo9CI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JLQo9CI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0KPQiNCY0Isg0JTQo9Co0JDQnQor0JLQo9CI0JjQiyDQmNCS0JDQnSDQlNCgCivQktCj0IjQmNCLINCY0JLQkNCdINCU0KAKK9CS0KPQiNCY0Isg0JjQktCQ0J3QmtCQCivQktCj0IjQmNCLINCI0JDQmtCe0JEg0JTQoCDQm9CV0JrQkNCgCivQktCj0IjQmNCLINCI0J7QktCQ0J0KK9CS0KPQiNCY0Isg0IjQntCS0JDQnQor0JLQo9CI0JjQiyDQiNCe0JLQngor0JLQo9CI0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQktCj0IjQmNCLLdCa0J7QodCeINCS0JXQodCd0JAKK9CS0KPQiNCY0Isg0JvQkNCX0JDQoAor0JLQo9CI0JjQiyDQidCj0JHQkNCdCivQktCj0IjQmNCLINCJ0KPQkdCY0KbQkAor0JLQo9CI0JjQiyDQnNCQ0KDQmNCI0JAg0J/QoNCe0KTQldCh0J7QoAor0JLQo9CI0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQmNCLINCc0JjQm9CV0JLQkAor0JLQo9CI0JjQiyDQnNCY0JvQldCS0JAKK9CS0KPQiNCY0Isg0JzQmNCb0JXQktCa0JAKK9CS0KPQiNCY0Isg0JzQmNCb0JjQptCQCivQktCj0IjQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0JLQo9CI0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0Isg0JzQmNCb0J7QqAor0JLQo9CI0JjQiyDQnNCY0KDQkAor0JLQo9CI0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JjQiyDQnNCe0JzQmNCgCivQktCj0IjQmNCLINCd0JDQlNCQCivQktCj0IjQmNCLINCd0JDQlNCQCivQktCj0IjQmNCLINCf0JDQktCb0JUg0JTQoAor0JLQo9CI0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQo9CI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCj0IjQmNCLINCg0JDQotCa0JAKK9CS0KPQiNCY0Isg0KHQkNCS0J4KK9CS0KPQiNCY0Isg0KHQkNCS0J4KK9CS0KPQiNCY0Isg0KHQm9CQ0JLQmtCQCivQktCj0IjQmNCLINCh0J7QpNCY0IjQkAor0JLQo9CI0JjQiyDQodCi0JDQndCa0J4KK9CS0KPQiNCY0Isg0KHQotCQ0J3QmtCeCivQktCj0IjQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQktCj0IjQmNCLINCS0JXQoNCQCivQktCj0IjQmNCLINCS0JXQodCd0JAKK9CS0KPQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0IjQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0JLQo9CI0JjQiyDQl9Ce0KDQkNCdCivQktCj0IjQmNCdINCC0J7QmtCQCivQktCj0IjQmNCdINCC0KPQoNCY0KbQkAor0JLQo9CI0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0JjQnSDQlNCQ0J3QmNCm0JAKK9CS0KPQiNCY0J0g0JTQkNCS0JjQlAor0JLQo9CI0JjQnSDQiNCV0JLQoNCV0JwKK9CS0KPQiNCY0J0g0IjQntCS0JDQndCa0JAKK9CS0KPQiNCY0J0g0JvQkNCX0JDQoAor0JLQo9CI0JjQnSDQnNCQ0KDQkAor0JLQo9CI0JjQnSDQnNCV0JvQkNCd0JjQiNCQCivQktCj0IjQmNCdINCc0JjQoNCI0JDQndCQCivQktCj0IjQmNCdINCg0JDQlNCY0JLQntCICivQktCj0IjQmNCdINCg0JDQlNCe0JLQkNCdCivQktCj0IjQmNCdINCh0JvQkNCS0JrQngor0JLQo9CI0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQiNCY0J0g0JLQo9CI0JDQlNCY0J0KK9CS0KPQiNCY0J3QntCS0JjQiyDQltCY0JLQmtCQCivQktCj0IjQmNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CS0KPQiNCY0J3QntCS0JjQiyDQgtCj0KDQngor0JLQo9CI0JjQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQiNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQktCj0IjQmNCd0J7QktCY0Isg0JPQitCQ0KLQmNCI0JAKK9CS0KPQiNCY0J3QntCS0JjQiyDQiNCe0JLQngor0JLQo9CI0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0IjQmNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQo9CI0JjQndCe0JLQmNCLINCc0JvQkNCU0JjQndCa0J4KK9CS0KPQiNCY0J3QntCS0JjQiyDQndCQ0JTQkAor0JLQo9CI0JjQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0JLQo9CI0JjQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9CI0JjQndCe0JLQmNCLINCi0JXQntCU0J7QodCY0IjQlQor0JLQo9CI0JjQndCe0JLQmNCLINCS0JXQoNCQCivQktCj0IjQmNCd0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQktCj0IjQmtCeINCh0JDQktCQCivQktCj0IjQmtCe0JIg0KfQldCU0J7QnNCY0KAKK9CS0KPQiNCa0J7QkiDQgtCe0KDQgtCVCivQktCj0IjQmtCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCa0J7QkiDQkNCd0KLQmNCd0JjQiNCQCivQktCj0IjQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9CS0KPQiNCa0J7QkiDQkdCe0JbQmNCU0JDQoAor0JLQo9CI0JrQntCSINCU0KDQkNCT0JjQptCQCivQktCj0IjQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9CS0KPQiNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQktCj0IjQmtCe0JIg0JTQo9Co0JDQnQor0JLQo9CI0JrQntCSINCU0KPQqNCQ0J0KK9CS0KPQiNCa0J7Qki3QmNCh0JDQmtCe0JIg0IjQkNCT0JjQptCQCivQktCj0IjQmtCe0JIg0IjQldCb0JXQndCQCivQktCj0IjQmtCe0JIg0JvQkNCX0JDQoAor0JLQo9CI0JrQntCSINCb0JDQl9CQ0KAKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JrQntCSINCc0JjQm9CQ0J3QkAor0JLQo9CI0JrQntCSINCc0JjQm9CQ0J3QkAor0JLQo9CI0JrQntCSINCc0JjQm9CQ0J0KK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCdCivQktCj0IjQmtCe0JIg0JzQmNCb0JXQndCQCivQktCj0IjQmtCe0JIg0JzQmNCb0JjQptCQCivQktCj0IjQmtCe0JIg0JzQmNCb0JjQptCQCivQktCj0IjQmtCe0JIg0JzQmNCb0JjQktCe0IgKK9CS0KPQiNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQktCj0IjQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JLQo9CI0JrQntCSINCd0JDQlNCQCivQktCj0IjQmtCe0JIg0J3QldCd0JDQlAor0JLQo9CI0JrQntCSINCe0JvQk9CQCivQktCj0IjQmtCe0JIg0J/QkNCS0JvQlQor0JLQo9CI0JrQntCSINCf0JXQoNCQCivQktCj0IjQmtCe0JIg0J/QldCi0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQo9CI0JrQntCSINCg0JDQlNCY0JLQntCICivQktCj0IjQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0JLQo9CI0JrQntCSINCh0JDQktCQCivQktCj0IjQmtCe0JIg0KHQkNCS0JAKK9CS0KPQiNCa0J7QkiDQodCV0J3QmtCQCivQktCj0IjQmtCe0JIg0KHQmNCc0JAKK9CS0KPQiNCa0J7QkiDQodCb0JDQktCa0J4KK9CS0KPQiNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQmtCe0JIg0KHQndCV0JbQkNCd0JAKK9CS0KPQiNCa0J7QkiDQodCd0JXQltCQ0J3QkAor0JLQo9CI0JrQntCSINCh0KLQldCS0JDQnQor0JLQo9CI0JrQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQiNCa0J7QkiDQotCQ0JzQkNCg0JAKK9CS0KPQiNCa0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQktCj0IjQmtCe0JIg0JLQkNCh0JAg0JTQoAor0JLQo9CI0JrQntCSINCS0JXQodCV0JvQmNCdINCU0KAg0J/QoNCe0KQKK9CS0KPQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQktCj0IjQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9CS0KPQiNCa0J7QkiDQl9CU0KDQkNCS0JrQngor0JLQo9CI0JrQntCS0JjQiyDQgtCj0KDQkAor0JLQo9CI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQiNCa0J7QktCY0Isg0JPQntCh0J/QkNCS0JAKK9CS0KPQiNCa0J7QktCY0Isg0JzQmNCg0JAKK9CS0KPQiNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0IjQmtCe0JLQmNCLINCg0KPQltCQCivQktCj0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQiNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCj0IjQndCe0JLQmNCLINCQ0J3QmtCQCivQktCj0IjQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQktCj0IjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9CI0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQktCj0IjQndCe0JLQmNCLINCT0J7QiNCa0J4KK9CS0KPQiNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9CI0J3QntCS0JjQiy3QnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JLQo9CI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQiNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JLQo9CI0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9CI0J3QntCS0JjQiyDQl9Ce0KDQkAor0JLQo9CI0J7QqNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQiNCe0KjQldCS0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0J7QldCmCivQktCj0IjQntCo0JXQktCY0Isg0JTQntCR0KDQmNCh0JvQkNCSCivQktCj0IjQntCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JLQo9CI0J7QqNCV0JLQmNCLINCa0JvQkNCg0JAKK9CS0KPQiNCe0KjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9CI0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQiNCe0KjQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQiNCe0KjQldCS0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQntCo0JXQktCY0Isg0JfQntCg0JAKK9CS0KPQiNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQntCS0JjQiyDQkdCb0JDQltCeCivQktCj0IjQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JLQo9CI0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0KPQiNCe0JLQmNCLINCU0JDQndCY0KbQkAor0JLQo9CI0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQiNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0KPQiNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCe0JLQmNCLINCc0JDQoNCi0JAKK9CS0KPQiNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQktCj0IjQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0KPQiNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0IjQntCS0JjQiyDQnNCY0J7QnNCY0KAKK9CS0KPQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCj0IjQntCS0JjQiyDQndCV0ILQldCJ0JrQngor0JLQo9CI0J7QktCY0Isg0J3QldCC0J4KK9CS0KPQiNCe0JLQmNCLINCd0J7QktCY0KbQkAor0JLQo9CI0J7QktCY0Isg0J7Qm9CT0JAKK9CS0KPQiNCe0JLQmNCLINCf0JDQktCb0JUKK9CS0KPQiNCe0JLQmNCLINCf0JDQktCb0JUKK9CS0KPQiNCe0JLQmNCLINCf0JXQotCa0J4KK9CS0KPQiNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CS0KPQiNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCj0IjQntCS0JjQiyDQoNCQ0JTQntCI0JUKK9CS0KPQiNCe0JLQmNCLINCg0JDQotCa0J4KK9CS0KPQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQiNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQktCj0IjQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQktCj0IjQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQktCj0IjQntCS0JjQiyDQktCV0InQmtCeCivQktCj0IjQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQo9CI0J7QktCY0Isg0JLQm9CQ0JTQngor0JLQo9CI0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQktCj0IjQntCS0JjQiyDQktCb0JDQotCa0J4KK9CS0KPQiNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQiNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQiNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQiNCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQo9CI0J7QktCY0Isg0JfQntCg0JDQnQor0JLQo9Ca0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQktCj0JrQp9CV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0JrQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCn0JXQktCY0Isg0JrQoNCh0KLQngor0JLQo9Ca0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0KfQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0KfQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQp9CV0JLQmNCLINCh0JDQktCeCivQktCj0JrQp9CV0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Ca0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCn0JXQktCY0Isg0JfQntCg0JDQnQor0JLQo9Ca0KjQkCDQp9CV0JTQngor0JLQo9Ca0KjQkCDQltCV0InQmtCeCivQktCj0JrQqNCQINCR0J7QoNCY0JLQntCI0JUKK9CS0KPQmtCo0JAg0JvQkNCX0JDQoAor0JLQo9Ca0KjQkCDQnNCY0JvQldCd0JrQngor0JLQo9Ca0KjQkCDQnNCY0JvQo9Ci0JjQnQor0JLQo9Ca0KjQkCDQn9CV0KLQkNCgCivQktCj0JrQqNCQINCS0IjQldCg0JAKK9CS0KPQmtCQ0KjQldCS0JjQiyDQnNCY0JvQngor0JLQo9Ca0JDQqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCQ0KjQmNCdINCI0J7QktCQ0J0KK9CS0KPQmtCQ0KjQmNCd0J7QkiDQkdCg0JDQndCY0JzQmNCgCivQktCj0JrQkNCo0JjQndCe0JIg0KbQktCV0KLQmtCeCivQktCj0JrQkNCo0JjQndCe0JIg0KHQotCV0JLQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCR0J7QiNCQ0J0KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JjQoNCV0J3QkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQmNCg0JXQndCQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCc0JjQm9CVCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCc0J7QnNCY0KAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCf0JDQktCb0JUKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCS0JXQoNCQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCY0JTQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQo9Ca0JDQlNCY0J0g0JTQntCR0KDQmNCS0J7QiNCVCivQktCj0JrQkNCU0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQktCj0JrQkNCU0JjQndCe0JIg0ILQntCg0ILQlQor0JLQo9Ca0JDQlNCY0J3QntCSINCC0KPQoNCQCivQktCj0JrQkNCU0JjQndCe0JIg0JHQntCI0JrQkAor0JLQo9Ca0JDQlNCY0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCSINCY0KHQmNCU0J7QoAor0JLQo9Ca0JDQlNCY0J3QntCSINCY0JLQkNCd0JrQkAor0JLQo9Ca0JDQlNCY0J3QntCSINCY0JLQkNCd0JrQkAor0JLQo9Ca0JDQlNCY0J3QntCSINCI0J7QktCQ0J0KK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JLQo9Ca0JDQlNCY0J3QntCSINCc0JjQntCU0KDQkNCTCivQktCj0JrQkNCU0JjQndCe0JIg0J3QldCd0JDQlAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCJ0KPQkdCeCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JzQmNCJ0J7QiNCa0J4KK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQntCI0JUKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCf0JDQktCb0JUg0JTQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQntCk0JjQiNCQINCb0J7QmtCQ0JsKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0KLQkNCd0JAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCS0JvQkNCU0JjQodCQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JfQntCb0JjQmtCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCX0J7Qm9CY0JrQkAor0JLQo9Ca0JDQiNCb0J7QkiDQkdCj0JTQmNCc0JjQoAor0JLQo9Ca0JDQiNCb0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQktCj0JrQkNCI0JvQntCS0JjQiyDQltCY0JLQkNCdINCf0KDQntCk0JXQodCe0KAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCQ0J3QmtCY0KbQkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQktCj0JrQkNCI0JvQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQktCj0JrQkNCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQktCj0JrQkNCI0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCj0JrQkNCI0JvQntCS0JjQiyDQodCg0JXQotCeCivQktCj0JrQkNCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCQ0JvQmNCLINCc0KPQnNCY0J0KK9CS0KPQmtCQ0InQldCS0JjQiyDQmNCb0JjQiNCQCivQktCj0JrQkNCJ0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQktCj0JrQkNCb0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Ca0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQmtCQ0J3QmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCQ0J3QmNCLINCh0KDQldCi0JXQnQor0JLQo9Ca0JDQndCY0Isg0JfQntCg0JDQnQor0JLQo9Ca0JDQndCY0Isg0JfQntCg0JDQnQor0JLQo9Ca0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9CS0KPQmtCQ0J3QntCS0JjQiyDQkNCd0JjQptCQCivQktCj0JrQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCQCivQktCj0JrQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JDQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQktCj0JrQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0KPQmtCQ0J3QntCS0JjQiyDQodCb0JDQktCY0JzQmNCgCivQktCj0JrQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCQ0KEg0ILQntCg0ILQlQor0JLQo9Ca0JDQoSDQgtCj0KDQngor0JLQo9Ca0JDQoSDQkNCd0JrQmNCm0JAKK9CS0KPQmtCQ0KEg0JHQoNCQ0J3QmtCeCivQktCj0JrQkNChINCe0JzQldCg0JrQkAor0JLQo9Ca0JDQodCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0JDQodCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQo9Ca0JDQodCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCQ0KHQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JLQo9Ca0JDQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CS0KPQmtCV0JvQmNCLINCQ0J3QgtCV0JvQmtCQCivQktCj0JrQldCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JrQldCb0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCV0JvQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JXQm9CY0Isg0JTQkNCg0JAKK9CS0KPQmtCV0JvQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0JXQm9CY0Isg0IjQntCS0JDQnQor0JLQo9Ca0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQmtCV0JvQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCV0JvQmNCLINCc0JjQm9CVCivQktCj0JrQldCb0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCV0JvQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQldCb0JjQiyDQnNCe0JzQmNCgCivQktCj0JrQldCb0JjQiyDQn9CQ0JLQm9CVCivQktCj0JrQldCb0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQldCb0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQldCb0JjQiyDQoNCQ0JTQkAor0JLQo9Ca0JXQm9CY0Isg0KDQkNCU0JUKK9CS0KPQmtCV0JvQmNCLINCh0JjQm9CS0JjQiNCVCivQktCj0JrQldCb0JjQiyDQodCY0JzQngor0JLQo9Ca0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCj0JrQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCV0JvQmNCLINCh0KLQldCS0JDQnQor0JLQo9Ca0JXQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9Ca0JXQm9CY0Isg0JLQldCJ0JrQngor0JLQo9Ca0JXQm9CY0Isg0JLQldCg0JjQptCQCivQktCj0JrQldCb0JjQiyDQktCV0KHQndCQCivQktCj0JrQldCb0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQmtCV0JvQmNCLINCX0JTQoNCQ0JLQmtCeINCU0KAKK9CS0KPQmtCV0JvQmNCLINCX0J7QoNCY0KbQkAor0JLQo9Ca0JXQm9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0JLQo9Ca0JXQidCQINCR0KDQkNCd0JrQkAor0JLQo9Ca0JjQp9CV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0KPQmtCY0KfQldCS0JjQiyDQidCY0InQkNCd0JAKK9CS0KPQmtCY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCY0KfQldCS0JjQiyDQnNCY0KLQkNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQktCj0JrQmNCn0JXQktCY0Isg0KDQkNCd0JrQngor0JLQo9Ca0JjQp9CV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQktCj0JrQmNCn0JXQktCY0Isg0JLQldCh0J3QkAor0JLQo9Ca0JjQiy3Qi9Cj0JvQkNCk0JjQiyDQkdCg0JDQndCa0JAKK9CS0KPQmtCY0Isg0JbQmNCS0JrQngor0JLQo9Ca0JjQiyDQkNCd0JTQoNCV0IgKK9CS0KPQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0KPQmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9Ca0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQmNCLINCR0KPQlNCY0JzQmNCgCivQktCj0JrQmNCLINCU0JXQiNCQ0J0KK9CS0KPQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0JrQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCY0Isg0JjQktCQ0J3QmtCQCivQktCj0JrQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCY0Isg0InQo9CR0JjQptCQCivQktCj0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQmNCLINCc0JDQoNCY0IjQkAor0JLQo9Ca0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQmNCLINCc0JjQm9CY0KbQkAor0JLQo9Ca0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0JjQiyDQnNCY0KDQmtCeCivQktCj0JrQmNCLINCc0J7QnNCn0JjQm9CeCivQktCj0JrQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCY0Isg0J3QntCS0JDQmgor0JLQo9Ca0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQmNCLINCh0KLQkNCd0JrQngor0JLQo9Ca0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0KPQmtCY0Isg0JLQm9CQ0JTQngor0JLQo9Ca0JjQiyDQktCj0JrQkNCo0JjQnQor0JLQo9Ca0JjQi9CV0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQmtCY0IvQldCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQmNCL0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQmtCY0IvQldCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CS0KPQmtCY0IvQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQo9Ca0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCj0JrQmNCL0JXQktCY0Isg0JjQodCY0JTQntCgCivQktCj0JrQmNCL0JXQktCY0Isg0JjQodCY0JTQntCgCivQktCj0JrQmNCL0JXQktCY0Isg0JzQmNCe0JzQmNCgCivQktCj0JrQmNCL0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JjQi9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCY0IvQldCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQktCj0JrQmNCL0JXQktCY0Isg0KHQotCQ0J3QmNCo0JAKK9CS0KPQmtCY0IvQldCS0JjQiyDQotCe0JzQkAor0JLQo9Ca0JjQi9CV0JLQmNCLINCS0JXQidCa0J4KK9CS0KPQmtCb0JjQqCDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCb0JjQqCDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CS0KPQmtCc0JDQndCe0JLQmNCLINCJ0KPQkdCQCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JAKK9CS0KPQmtCc0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCc0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CS0KPQmtCc0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCc0JDQndCe0JLQmNCLINCh0JjQnNCeCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0JrQnNCY0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JTQkNCd0JUKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JPQntCI0JrQngor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0IjQkNCK0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCc0JjQm9CeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCg0JDQndCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCg0JDQndCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCg0J7QlNCe0InQo9CRCivQktCj0JrQnNCY0KDQntCS0JjQiyDQodCc0JjQidCa0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCh0KDQldCL0JrQngor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JLQldCb0JjQndCa0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JfQlNCg0JDQktCa0JAKK9CS0KPQmtCd0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JLQo9Ca0J7QkdCg0JDQlCDQlNCg0JDQk9CeCivQktCj0JrQntCR0KDQkNCUINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQntCR0KDQkNCUINCc0JDQoNCa0J4KK9CS0KPQmtCe0JHQoNCQ0JQg0JzQmNCb0J7QqAor0JLQo9Ca0J7QkdCg0JDQoiDQlNCQ0J3QmNCm0JAKK9CS0KPQmtCe0JHQoNCQ0KIg0JTQoNCQ0JPQkNCdCivQktCj0JrQntCR0KDQkNCiINCI0J7QqNCeCivQktCj0JrQntCR0KDQkNCiINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQntCR0KDQkNCiINCc0JjQm9CQ0J0KK9CS0KPQmtCe0JHQoNCQ0KIg0J3QmNCa0J7Qm9CQCivQktCj0JrQntCR0KDQkNCiINCf0JXQotCQ0KAKK9CS0KPQmtCe0JHQoNCQ0KIg0KLQkNCi0IjQkNCd0JAKK9CS0KPQmtCe0JHQoNCQ0KIg0JfQlNCg0JDQktCa0J4KK9CS0KPQmtCe0JHQoNCQ0KLQntCSINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQo9Ca0J7QkdCg0JDQotCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCU0JDQndCY0KbQkAor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCd0JDQlNCQCivQktCj0JrQntCR0KDQkNCi0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0KPQmtCe0IjQp9CY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCQINCQ0J3QotCj0J0KK9CS0KPQmtCe0IjQlSDQlNCj0KjQkNCdCivQktCj0JrQntCI0JUg0JPQkNCo0J4KK9CS0KPQmtCe0IjQlSDQmNCb0JjQiNCQCivQktCj0JrQntCI0JUg0IjQntCS0JDQnQor0JLQo9Ca0J7QiNCVINCc0JjQm9CQ0J3QkAor0JLQo9Ca0J7QiNCVINCg0JDQlNCY0JLQntCI0JUKK9CS0KPQmtCe0IjQlSDQoNCQ0JTQnNCY0JvQkAor0JLQo9Ca0J7QiNCVINCg0JDQlNCe0JLQkNCdCivQktCj0JrQntCI0JUg0JLQkNCK0JAKK9CS0KPQmtCe0IjQlSDQktCe0IjQngor0JLQo9Ca0J7QiNCV0JIg0JHQntCT0JTQkNCdCivQktCj0JrQntCI0JXQkiDQlNCj0KjQkNCdCivQktCj0JrQntCI0JXQkiDQlNCj0KjQkNCdCivQktCj0JrQntCI0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQntCI0JXQktCY0Isg0ILQo9Cg0J4KK9CS0KPQmtCe0IjQldCS0JjQiyDQnNCQ0KDQkAor0JLQo9Ca0J7QiNCV0JLQmNCLINCc0JjQi9CeCivQktCj0JrQntCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCe0IjQldCS0JjQiyDQndCY0JrQngor0JLQo9Ca0J7QiNCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JLQo9Ca0J7QiNCV0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQktCj0JrQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0JLQo9Ca0J7QiNCY0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQmtCe0IjQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0IjQmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0J7QiNCY0KfQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCI0JjQp9CY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQo9Ca0J7QnNCQ0J0g0JXQnNCY0JvQmNCI0JAKK9CS0KPQmtCe0JzQkNCdINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQntCc0JDQnSDQoNCQ0JTQkAor0JLQo9Ca0J7QnNCQ0J0g0JfQntCg0JDQnQor0JLQo9Ca0J7QnNCQ0J0g0JfQntCg0JrQkAor0JLQo9Ca0J7QnNCQ0J3QntCSINCI0J7QktCQ0J0KK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQktCj0JrQntCc0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0J7QnNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQo9Ca0J7QnNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0KPQmtCe0KHQkNCSINCR0J7QoNCY0JLQntCI0JUKK9CS0KPQmtCe0KHQkNCSINCR0J7QoNCa0J4g0JTQoAor0JLQo9Ca0J7QodCQ0JIg0JTQntCR0KDQmNCb0JAKK9CS0KPQmtCe0KHQkNCSINCI0J7QktCeCivQktCj0JrQntCh0JDQkiDQnNCY0JvQntCS0JDQnQor0JLQo9Ca0J7QodCQ0JIg0KDQkNCU0JUKK9CS0KPQmtCe0KHQkNCSINCh0JXQndCa0JAKK9CS0KPQmtCe0KHQkNCSINCS0JvQkNCI0JrQngor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JHQntCT0JTQkNCd0JrQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JTQkNCd0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQkiDQlNCg0JDQk9CY0KbQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0IjQldCb0JXQndCQCivQktCj0JrQntCh0JDQktCJ0JXQkiDQm9CQ0JfQkNCgCivQktCj0JrQntCh0JDQktCJ0JXQkiDQnNCQ0JrQodCQCivQktCj0JrQntCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQktCj0JrQntCh0JDQktCJ0JXQkiDQn9CV0KLQkNCgCivQktCj0JrQntCh0JDQktCJ0JXQkiDQodCQ0JLQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0KHQm9CQ0JLQmNCm0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCh0KLQldCS0JDQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCR0JDQoNCR0JDQoNCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0KbQktCY0IjQldCi0JjQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JjQktCQ0J0KK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQm9Cj0JrQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQoNCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCf0JDQktCb0JUKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0KHQotCe0IjQkNCdCivQktCj0JrQntCh0JvQkNCS0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCe0KHQm9CQ0JLQp9CV0JLQmNCLINCX0JDQoNCY0IjQlQor0JLQo9Ca0J7QodCb0JDQktCe0JLQmNCLINCg0JDQlNCe0IrQkAor0JLQo9Ca0J7QotCQINCc0JDQoNCa0J4KK9CS0KPQmtCe0KLQkCDQnNCY0JvQkNCdCivQktCj0JrQntCi0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCe0KLQmNCLINCY0JLQkAor0JLQo9Ca0J7QotCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQo9Ca0J7QotCY0Ist0JrQntCS0JDQp9CV0JLQmNCLINCR0JjQidCQ0J3QkAor0JLQo9Ca0J7QotCY0Isg0JvQo9Ca0JAKK9CS0KPQmtCe0KLQmNCLINCc0JDQoNCQCivQktCj0JrQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCe0KLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCe0KLQmNCLINCc0JjQm9CY0KbQkAor0JLQo9Ca0J7QotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCe0KLQmNCLINCd0JXQndCQ0JQKK9CS0KPQmtCe0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0J7QotCY0Isg0J7Qm9CT0JAKK9CS0KPQmtCe0KLQmNCLINCf0JXQoNCY0KjQkAor0JLQo9Ca0J7QotCY0Isg0KDQkNCU0J7QiNCVCivQktCj0JrQntCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JLQo9Ca0J7QotCY0Isg0KHQntCk0JjQiNCQCivQktCj0JrQntCi0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0KPQmtCe0JIg0JbQmNCS0JrQngor0JLQo9Ca0J7QkiDQgtCe0KDQgtCVCivQktCj0JrQntCSINCC0J7QoNCC0JUKK9CS0KPQmtCe0JIg0JHQntCo0JrQngor0JLQo9Ca0J7QkiDQkdCe0KjQmtCeCivQktCj0JrQntCSINCR0J7QltCQ0J3QkAor0JLQo9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQntCSINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JrQntCSINCI0J7QktCQ0J0KK9CS0KPQmtCe0JIg0IjQntCS0JDQnQor0JLQo9Ca0J7QkiDQm9CQ0JfQkNCgCivQktCj0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQntCSINCc0JDQoNCY0IjQkAor0JLQo9Ca0J7QkiDQnNCQ0KDQmtCeCivQktCj0JrQntCSINCd0JjQmtCe0JvQmNCI0JAKK9CS0KPQmtCe0JIg0J7Qm9CT0JAKK9CS0KPQmtCe0JIg0KHQotCV0JLQmNCm0JAKK9CS0KPQmtCe0JIg0JLQo9Ca0JDQqNCY0J0KK9CS0KPQmtCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QktCQ0KYg0J/QkNCd0KLQkAor0JLQo9Ca0J7QktCY0Isg0KjQotCV0KTQmNCm0JAKK9CS0KPQmtCe0JLQmNCLINCW0JjQktCa0J4KK9CS0KPQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQktCj0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQntCS0JjQiyDQgtCj0JrQkAor0JLQo9Ca0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQktCj0JrQntCS0JjQiyDQkNCb0JXQmtCh0JjQiNCQCivQktCj0JrQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JDQndCi0J4KK9CS0KPQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JHQm9CQ0JbQngor0JLQo9Ca0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0KPQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0KPQmtCe0JLQmNCLINCR0J7Qk9CY0IsKK9CS0KPQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JHQntCI0JDQndCQCivQktCj0JrQntCS0JjQiyDQkdCe0KDQmNCo0JAKK9CS0KPQmtCe0JLQmNCLINCR0J7QoNCY0KjQkAor0JLQo9Ca0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CS0KPQmtCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQktCj0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQktCj0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9CS0KPQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQktCj0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQktCj0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0J7QktCY0Isg0JPQldCX0JAg0J3QntCS0JjQndCQ0KAKK9CS0KPQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CS0KPQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQktCj0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQktCj0JrQntCS0JjQiyDQmNCS0JDQnQor0JLQo9Ca0J7QktCY0Isg0JjQktCQ0J0KK9CS0KPQmtCe0JLQmNCLINCY0JLQmNCm0JAKK9CS0KPQmtCe0JLQmNCLINCI0JDQodCc0JjQndCQCivQktCj0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0KPQmtCe0JLQmNCLINCI0J7QodCY0J8KK9CS0KPQmtCe0JLQmNCLINCI0J7QktCQCivQktCj0JrQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQktCj0JrQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQktCj0JrQntCS0JjQiyDQidCj0JHQkNCdCivQktCj0JrQntCS0JjQiyDQnNCQ0KDQk9CQ0KDQldCi0JAKK9CS0KPQmtCe0JLQmNCLINCc0JDQoNCI0JXQndCa0JAKK9CS0KPQmtCe0JLQmNCLINCc0JDQotCeCivQktCj0JrQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCj0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JLQo9Ca0J7QktCY0Isg0JzQmNCJ0JDQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JrQkAor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JrQkAor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQktCj0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0JzQmNCi0JDQoAor0JLQo9Ca0J7QktCY0Isg0JzQmNCi0JDQoAor0JLQo9Ca0J7QktCY0Isg0JzQmNCi0JAKK9CS0KPQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQo9Ca0J7QktCY0Isg0J3QkNCU0JAKK9CS0KPQmtCe0JLQmNCLINCd0JDQlNCQCivQktCj0JrQntCS0JjQiyDQndCV0JTQkAor0JLQo9Ca0J7QktCY0Isg0J7QkdCg0JDQlAor0JLQo9Ca0J7QktCY0Isg0J7QkdCg0JDQlAor0JLQo9Ca0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQktCj0JrQntCS0JjQiyDQntCb0JPQmNCm0JAKK9CS0KPQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQktCj0JrQntCS0JjQiyDQoNCQ0JTQlQor0JLQo9Ca0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CS0KPQmtCe0JLQmNCLINCh0JDQktCQCivQktCj0JrQntCS0JjQiyDQodCV0J3QmtCQCivQktCj0JrQntCS0JjQiyDQodCY0JzQkAor0JLQo9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQktCj0JrQntCS0JjQiyDQodCg0JXQlNCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQktCj0JrQntCS0JjQiyDQodCi0JDQndCa0JAKK9CS0KPQmtCe0JLQmNCLINCh0KLQmNCf0JAKK9CS0KPQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQo9Ca0J7QktCY0Ist0KLQkNCS0KfQmNCe0KHQmtCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQktCj0JrQntCS0JjQiyDQotCe0JTQntCgCivQktCj0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQktCj0JrQntCS0JjQiyDQktCV0KHQndCQCivQktCj0JrQntCS0JjQiyDQktCY0JTQkNCaCivQktCj0JrQntCS0JjQiyDQktCY0J3QmtCQCivQktCj0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0KLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JLQo9Ca0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0JLQntCI0JrQngor0JLQo9Ca0J7QktCY0Isg0JLQo9Cn0JjQiwor0JLQo9Ca0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CS0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JLQidCQ0Jog0JHQntCh0JjQidCa0JAKK9CS0KPQmtCe0JLQidCQ0Jog0JXQktCY0KbQkAor0JLQo9Ca0J7QktCJ0JDQmiDQnNCY0KDQmtCeCivQktCj0JrQntCS0InQkNCaINCS0J7QiNCY0J0KK9CS0KPQmtCe0JLQntCI0JDQpiDQntCb0JPQkAor0JLQo9Ca0J7QktCe0IjQkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQmtCh0JDQnSDQnNCY0JvQkNCdCivQktCj0JrQodCQ0J0g0JzQmNCb0JjQktCe0IgKK9CS0KPQmtCh0JDQnSDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0KHQkNCdINCd0JjQmtCe0JvQkAor0JLQo9Ca0KHQkNCdINCg0JDQlNCe0KHQm9CQ0JIg0J/QoNCe0KTQldCh0J7QoAor0JLQo9Ca0KHQkNCdINCg0KPQltCY0KbQkAor0JLQo9Ca0KHQkNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQmtCh0JDQnSDQktCj0JrQntCh0JDQktCQCivQktCj0JrQodCQ0J3QntCSINCJ0KPQkdCY0KbQkAor0JLQo9Ca0KHQkNCd0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQktCj0JrQodCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQodCQ0J3QntCS0JjQiyDQlNCQ0KDQmtCeCivQktCj0JrQodCQ0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCc0JjQm9CVCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0KDQngor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0KHQkNCS0J4KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCh0KLQldCS0JDQndCa0JAKK9CS0KPQmtCh0JjQiyDQodCi0JXQktCeCivQktCj0JrQodCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0KPQmtCj0KjQmNCLINCQ0J3QotCVCivQktCj0JvQkNCd0J7QktCY0Isg0KDQldCJ0JAKK9CS0KPQm9CQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0JvQldCi0JAg0JHQntCI0JDQnQor0JLQo9Cb0JXQotCQINCf0KDQldCU0KDQkNCTCivQktCj0JvQldCi0JAg0KDQmNCh0KLQngor0JLQo9Cb0JXQotCY0Isg0JbQldCJ0JrQngor0JLQo9Cb0JXQotCY0Isg0ILQntCg0ILQmNCI0JUKK9CS0KPQm9CV0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQktCj0JvQldCi0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQo9Cb0JXQotCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JvQldCi0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQm9CV0KLQmNCLINCU0JDQndCY0KbQkCDQlNCgCivQktCj0JvQldCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KPQm9CV0KLQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cb0JXQotCY0Isg0IjQldCb0JjQptCQINCf0KDQntCk0JXQodCe0KAKK9CS0KPQm9CV0KLQmNCLINCc0JjQm9CQ0JTQmNCdCivQktCj0JvQldCi0JjQiyDQnNCY0JvQkNCdINCS0JXQotCV0KDQmNCd0JDQoAor0JLQo9Cb0JXQotCY0Isg0JzQmNCb0JUKK9CS0KPQm9CV0KLQmNCLINCc0JjQm9CY0JLQntCICivQktCj0JvQldCi0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQm9CV0KLQmNCLINCd0JDQlNCV0JbQlNCQCivQktCj0JvQldCi0JjQiyDQndCV0JTQldCJ0JrQngor0JLQo9Cb0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JvQldCi0JjQiyDQntCR0KDQkNCUCivQktCj0JvQldCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JLQo9Cb0JXQotCY0Isg0KHQoNCC0JDQnQor0JLQo9Cb0JXQotCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9Cb0JXQotCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JLQo9Cb0JXQotCY0Isg0JLQmNCi0J7QnNCY0KAKK9CS0KPQm9CV0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQm9CV0KLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JLQo9Cb0JXQotCY0Isg0JfQntCg0JjQptCQCivQktCj0JvQldCi0JjQnSDQl9Ce0KDQkAor0JLQo9Cb0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KPQm9CV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQktCj0JvQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQo9Cb0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9CS0KPQm9CY0Isg0JbQmNCa0JAKK9CS0KPQm9CY0Isg0ILQntCg0ILQlQor0JLQo9Cb0JjQiyDQgtCe0KDQgtCVCivQktCj0JvQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Cb0JjQiyDQlNCV0KHQkNCd0JrQkAor0JLQo9Cb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JvQmNCLINCY0JvQmNCI0JAKK9CS0KPQm9CY0Isg0IjQkNCS0J7QoNCa0JAKK9CS0KPQm9CY0Isg0IjQldCb0JXQndCQCivQktCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cb0JjQiyDQiNCe0JLQkNCdCivQktCj0JvQmNCLINCI0J7QktCQ0J0KK9CS0KPQm9CY0Isg0IjQntCS0JDQnQor0JLQo9Cb0JjQiyDQm9Cj0JrQkAor0JLQo9Cb0JjQiyDQm9Cj0JrQkAor0JLQo9Cb0JjQiyDQnNCY0JvQkNCd0JrQkAor0JLQo9Cb0JjQiyDQnNCY0JvQkNCdCivQktCj0JvQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CS0KPQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Cb0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CS0KPQm9CY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JvQmNCLINCf0JXQotCa0J4KK9CS0KPQm9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0KPQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCj0JvQmNCLINCh0KLQldCS0JDQnQor0JLQo9Cb0JjQiyDQl9Cb0JDQotCQCivQktCj0JvQmNCLINCX0JvQkNCi0JjQiNCQCivQktCj0JvQmNCa0JjQiyDQm9Cj0JrQkAor0JLQo9Cb0JjQmtCY0Isg0KDQo9CW0JjQptCQCivQktCj0JvQmNCa0JjQiyDQktCV0KHQldCb0JjQnQor0JLQo9Cb0JjQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Cb0JjQnSDQkNCd0JPQldCb0JjQndCQCivQktCj0JvQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cb0JjQnSDQk9Ce0IjQmtCeCivQktCj0JvQmNCdINCI0KPQm9Ca0JAKK9CS0KPQm9CY0J0g0JzQm9CQ0JTQldCdCivQktCj0JvQmNCdINCd0JXQndCQ0JQKK9CS0KPQm9CY0J0g0J3QldCd0JDQlAor0JLQo9Cb0JjQnSDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cb0JjQnSDQoNCQ0JTQntCc0JjQoAor0JLQo9Cb0JjQnSDQodCi0JXQktCQ0J0KK9CS0KPQm9CY0J0g0JLQo9Ca0JDQqNCY0J0KK9CS0KPQidCQ0Igg0JLQkNCh0JXQiQor0JLQo9CJ0JXQktCY0Isg0ILQntCa0JAKK9CS0KPQm9Ca0JDQndCYINCT0J7QoNCU0JDQndCQCivQktCj0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCoCivQktCj0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JvQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCj0JvQntCS0JjQiyDQk9Ce0KDQkNCdCivQktCj0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JvQntCS0JjQiyDQoNCQ0IjQmtCeCivQktCj0JvQntCS0JjQiyDQodCQ0JLQngor0JLQo9Cb0J7QktCY0Isg0KHQm9CQ0JLQmNCo0JAKK9CS0KPQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQm9Ce0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQo9Cb0KHQkNCd0J7QktCY0Isg0JjQm9Ca0JAKK9CS0KPQndCU0JXQoNCb0JjQpSDQiNCe0KHQmNCfCivQktCj0J3QlNCj0Jog0JzQmNCg0J7QodCb0JDQktCQCivQktCj0J3QmNCLINCc0JjQidCV0J3QmtCeCivQktCj0J3QmNCLINCf0JXQotCQ0KAKK9CS0KPQndCY0Isg0KDQkNCU0J7QiNCa0JAKK9CS0KPQitCQ0Jog0ILQntCg0ILQlQor0JLQo9CK0JDQmiDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQo9CK0JDQmiDQlNCj0KjQkNCdCivQktCj0KDQlNCV0InQkCDQndCV0JzQkNCK0JAg0JTQoCDQn9Cg0J7QpAor0JLQo9Cg0JTQldCJ0JAg0KHQntCk0JjQiNCQCivQktCj0KDQlNCV0InQkCDQktCQ0KHQkAor0JLQo9Cg0KHQoiDQiNCe0JLQkNCd0JrQkAor0JLQo9Cg0KPQndCQINCR0KDQkNCd0JrQngor0JLQo9Cg0KPQndCQINCc0JDQoNCY0IjQkAor0JLQo9Cg0KPQndCY0Isg0JfQlNCg0JDQktCa0J4KK9CX0JDQkdCb0JXQi9CQ0J3QodCa0Jgg0JLQm9CQ0JTQkAor0JfQkNCR0KDQlNCQ0KYg0JzQmNCb0JDQnQor0JfQkNCR0KPQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JfQkNCU0J7QoCDQkNCd0JTQoNCY0IjQkCDQlNCgINCY0KPQoNCVCivQl9CQ0JTQoNCQ0JLQldCmINCI0J7QodCY0J8KK9CX0JDQlNCg0J4g0J3QmNCa0J7Qm9CQCivQl9CQ0KTQmNCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQl9CQ0JPQkCDQnNCY0JvQkNCdCivQl9CQ0JPQkNCI0KfQkNCdINCa0J7QodCi0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JbQkNCg0JrQngor0JfQkNCT0J7QoNCn0JjQiyDQltCY0JLQmtCeCivQl9CQ0JPQntCg0KfQmNCLINCW0JjQktCa0J4KK9CX0JDQk9Ce0KDQp9CY0Isg0ILQntCg0ILQlQor0JfQkNCT0J7QoNCn0JjQiyDQgtCe0KDQgtCVCivQl9CQ0JPQntCg0KfQmNCLINCC0J7QoNCC0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JDQk9Ce0KDQp9CY0Isg0JDQndCT0JXQm9CY0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CQ0JPQntCg0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CX0JDQk9Ce0KDQp9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JfQkNCT0J7QoNCn0JjQiyDQk9CQ0JLQoNCQCivQl9CQ0JPQntCg0KfQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0JfQkNCT0J7QoNCn0JjQiyDQk9Ce0KDQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCY0JvQmNCI0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JjQm9CY0IjQkAor0JfQkNCT0J7QoNCn0JjQiyDQmNCg0JXQndCQCivQl9CQ0JPQntCg0KfQmNCLINCI0JDQodCc0JjQndCQCivQl9CQ0JPQntCg0KfQmNCLINCI0JXQm9CV0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQiNCe0JLQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCI0J7QktCQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0JrQoNCY0KHQotCY0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQm9CQ0JfQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCb0JDQl9CQ0KAKK9CX0JDQk9Ce0KDQp9CY0Isg0JvQkNCX0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9CQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQntCoCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9Ce0KHQkNCSCivQl9CQ0JPQntCg0KfQmNCLLdCe0KDQqNCe0Kgg0JTQoNCQ0JPQkNCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0J/QkNCd0KLQkAor0JfQkNCT0J7QoNCn0JjQiyDQn9CV0KLQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCf0JXQotCQ0KAKK9CX0JDQk9Ce0KDQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CX0JDQk9Ce0KDQp9CY0Isg0KDQkNCU0JjQktCe0IgKK9CX0JDQk9Ce0KDQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQkNCT0J7QoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCh0KLQldCS0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CX0JDQk9Ce0KDQp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JfQkNCT0J7QoNCn0JjQiyDQo9Cg0J7QqAor0JfQkNCT0J7QoNCn0JjQiyDQktCQ0KHQkAor0JfQkNCT0J7QoNCn0JjQiyDQktCQ0KHQkAor0JfQkNCT0J7QoNCn0JjQiyDQktCQ0KHQkAor0JfQkNCT0J7QoNCn0JjQiyDQktCj0JrQntCh0JDQktCQCivQl9CQ0JPQntCg0KfQmNCLINCX0JjQiNCQ0KUKK9CX0JDQk9Ce0KDQkNCmINCR0J7QltCY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0JTQmNCc0JjQotCg0JjQiNCVCivQl9CQ0JPQntCg0JDQpiDQlNCj0KjQkNCdCivQl9CQ0JPQntCg0JDQpiDQmNCS0JDQnQor0JfQkNCT0J7QoNCQ0KYg0JzQkNCg0JjQiNCQCivQl9CQ0JPQntCg0JDQpiDQnNCY0JvQldCd0JAKK9CX0JDQk9Ce0KDQkNCmINCc0JjQm9CY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0JzQmNCb0JjQptCQCivQl9CQ0JPQntCg0JDQpiDQndCV0JTQldCJ0JrQngor0JfQkNCT0J7QoNCQ0KYg0J3QmNCa0J7Qm9CQCivQl9CQ0JPQntCg0JDQpiDQndCY0JrQntCb0JAKK9CX0JDQk9Ce0KDQkNCmINCe0KHQotCe0IjQkAor0JfQkNCT0J7QoNCQ0KYg0J/QldCi0JDQoAor0JfQkNCT0J7QoNCQ0KYg0KDQkNCI0JrQngor0JfQkNCT0J7QoNCQ0KYg0KDQo9CW0JjQptCQCivQl9CQ0JPQntCg0JDQpiDQodCY0JzQngor0JfQkNCT0J7QoNCQ0KYg0JLQkNCb0JrQngor0JfQkNCT0J7QoNCV0KYg0IjQntCh0JjQnwor0JfQkNCT0J7QoNCY0KbQkCDQntCX0KDQldCdCivQl9CQ0JPQoNCQ0ILQkCDQkdCQ0IjQmNCg0JDQnAor0JfQkNCl0JDQoNCY0IjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CX0JDQpdCe0KDQkNCYINCI0J7QktCQ0J0KK9CX0JDQpdCe0KDQldCmINCX0KPQl9CQ0J3QkAor0JfQkNCl0J7QoNCe0JTQndCYINCQ0J3QotCe0J0KK9CX0JDQpdCe0KDQntCU0J3QmCDQmNCS0JDQnQor0JfQkNCY0JzQntCS0JjQiyDQnNCj0KXQkNCg0JXQnAor0JfQkNCI0JfQntCSINCI0JXQm9CV0J3QkAor0JfQkNCa0JDQiiDQkNCg0J/QkNCUCivQl9CQ0JrQkNCKINCb0JDQiNCe0KgKK9CX0JDQmtCQ0Iog0JzQmNCg0JrQngor0JfQkNCa0JDQii3QotCe0JHQntCb0JrQkCDQldCS0JAKK9CX0JDQmtCY0Isg0ILQntCg0ILQlQor0JfQkNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JfQkNCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CX0JDQmtCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JfQkNCa0JjQiyDQlNCe0JHQoNCY0JLQntCICivQl9CQ0JrQmNCLINCY0JLQkNCdCivQl9CQ0JrQmNCLINCc0JjQm9CQ0J0KK9CX0JDQmtCY0Isg0KHQkNCS0JAKK9CX0JDQmtCb0JDQnSDQgtCj0KDQkAor0JfQkNCa0JvQkNCdINCc0JjQm9CQ0J0KK9CX0JDQmtCb0JDQnSDQndCV0JPQmNCm0JAKK9CX0JDQmtCb0JDQnSDQoNCQ0J3QmtCeCivQl9CQ0JrQm9CQ0J0g0KHQm9Ce0JHQntCU0JDQnQor0JfQkNCa0JvQkNCdINCh0KLQkNCd0JjQqNCQCivQl9CQ0JrQm9CQ0J0g0KLQmNCl0J7QnNCY0KAKK9CX0JDQmtCb0JDQnSDQotCe0JzQmNCh0JvQkNCSCivQl9CQ0JvQmNChINCT0JXQntCg0JPQmNCI0JUKK9CX0JDQm9CY0KEg0IjQkNCd0JjQoQor0JfQkNCc0JDQmtCb0JDQoCDQl9Ce0KDQkNCdCivQl9CQ0JzQntCb0J4g0JXQlNCj0JDQoNCUCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JDQnNCj0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9CX0JDQnNCj0KDQntCS0JjQiyDQmtCe0KHQotCQCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JzQmNCb0JXQndCQCivQl9CQ0JzQo9Cg0J7QktCY0Isg0J7Qm9CT0JAg0JTQoAor0JfQkNCc0KPQoNCe0JLQmNCLINCh0KLQntCI0JDQnQor0JfQkNCd0J7QktCI0JDQmiDQn9CV0KLQldCgCivQl9CQ0J/Qo9Cd0JjQlNCY0KEg0JvQldCe0J3QmNCU0JDQoQor0JfQkNCg0JXQptCa0Jgg0KDQntCX0JDQm9CY0IjQkAor0JfQkNCg0JjQp9Cd0Jgg0JLQldCg0JjQptCQCivQl9CQ0KDQmNCn0J3QmCDQktCV0KDQntCd0JjQmtCQCivQl9CQ0KDQmNCLINCC0J7QoNCC0JUKK9CX0JDQoNCY0Isg0ILQntCg0ILQlQor0JfQkNCg0JjQiyDQgtCe0KDQgtCVCivQl9CQ0KDQmNCLINCR0J7QqNCa0J4KK9CX0JDQoNCY0Isg0JHQntCT0JTQkNCdCivQl9CQ0KDQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQl9CQ0KDQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JfQkNCg0JjQiyDQlNCg0JDQk9CQCivQl9CQ0KDQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JfQkNCg0JjQiyDQlNCj0KjQkNCdCivQl9CQ0KDQmNCLINCY0JLQkNCd0JrQkAor0JfQkNCg0JjQiyDQmNCS0JDQnQor0JfQkNCg0JjQiyDQiNCV0JvQldCd0JAKK9CX0JDQoNCY0Isg0IjQntCS0JDQnQor0JfQkNCg0JjQiyDQiNCe0JLQngor0JfQkNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9CX0JDQoNCY0Isg0JrQkNCi0JjQptCQCivQl9CQ0KDQmNCLINCb0JDQl9CQ0KAKK9CX0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQl9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JfQkNCg0JjQiyDQnNCY0JrQkAor0JfQkNCg0JjQiyDQnNCY0JvQkNCU0JjQnQor0JfQkNCg0JjQiyDQnNCY0JvQkNCdCivQl9CQ0KDQmNCLINCc0JjQm9CQ0J0KK9CX0JDQoNCY0Isg0JzQmNCb0JXQndCQCivQl9CQ0KDQmNCLINCc0JjQm9CY0KbQkAor0JfQkNCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0JDQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CX0JDQoNCY0Isg0JzQm9CQ0JTQldCdCivQl9CQ0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQl9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0JfQkNCg0JjQiyDQndCY0JrQntCb0JAKK9CX0JDQoNCY0Isg0J3QntCS0JDQmgor0JfQkNCg0JjQiyDQn9CV0KLQkNCgCivQl9CQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQl9CQ0KDQmNCLINCg0JDQiNCeCivQl9CQ0KDQmNCLINCh0JDQktCQCivQl9CQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0JDQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQkNCg0JjQiyDQodCi0JDQndCY0JzQmNCgCivQl9CQ0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JfQkNCg0JjQiyDQodCi0JDQndCa0JAKK9CX0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQl9CQ0KDQmNCLINCS0JXQodCd0JAKK9CX0JDQoNCY0Isg0JfQkNCg0JjQiNCQCivQl9CQ0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQl9CQ0KDQmNCLINCX0J7QoNCa0JAKK9CX0JDQoNCY0J0g0KHQotCV0JLQkAor0JfQkNCg0JjQndCT0JXQoC3Qn9CY0J3QotCV0KAg0J3QmNCa0J7Qm9CQCivQl9CQ0KDQmtCe0JIg0JrQntCm0JAKK9CX0JDQoNCb0Jgg0JrQkNCi0JDQoNCY0J3QkAor0JfQkNCg0J3QntCm0JrQmCDQn9CQ0JLQm9CVCivQl9CQ0KDQntCbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CQ0KDQo9CR0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQkNCg0KPQkdCQ0KYg0JHQntCg0JrQkAor0JfQkNCg0KPQkdCQ0KYg0KDQntCc0JjQptCQCivQl9CQ0KDQo9CR0JjQptCQINCR0J7QltCQ0J3QkAor0JfQkNCg0KPQkdCY0KbQkCDQoNCQ0JTQo9CdCivQl9CQ0KDQo9Cf0KHQmtCYINCC0J7QoNCC0JUKK9CX0JDQoNCj0J/QodCa0Jgg0JHQoNCQ0J3QmtCeCivQl9CQ0KDQo9Cf0KHQmtCYINCc0JjQm9Ce0JLQkNCdCivQl9CQ0KLQldCaINCc0JDQoNCY0IjQkAor0JfQkNCi0JXQl9CQ0JvQniDQlNCj0KjQkNCdINCf0KDQntCkCivQl9CQ0KLQldCX0JDQm9CeINCc0JjQntCU0KDQkNCTCivQl9CQ0KLQldCX0JDQm9CeINCf0JXQotCQ0KAKK9CX0JDQotCV0JfQkNCb0J4g0J/QoNCV0JTQoNCQ0JMKK9CX0JDQktCQ0KDQk9CeINCX0J7Qm9Ci0JDQnQor0JfQkNCS0JDQoNCa0J4g0KjQkNCd0JTQntCgCivQl9CQ0JLQkNCg0JrQniDQqNCQ0J3QlNCe0KAKK9CX0JDQktCQ0KDQmtCeINCo0JDQndCU0J7QoAor0JfQkNCS0JDQoNCa0J4g0JDQndCi0JDQmwor0JfQkNCS0JDQoNCa0J4g0JXQodCi0JXQoNCQCivQl9CQ0JLQkNCg0JrQniDQmNCo0KLQktCQ0J0KK9CX0JDQktCQ0KDQmtCeINCI0JDQndCe0KgKK9CX0JDQktCQ0KDQmtCeINCa0JDQoNCb0J4KK9CX0JDQktCQ0KDQmtCeINCc0JDQoNCY0IjQkAor0JfQkNCS0JDQoNCa0J4g0JLQldCg0JAKK9CX0JDQktCQ0KDQntCoINCQ0J3QlNCg0JjQiNCQCivQl9CQ0JLQmNCo0JAg0J/QldCi0JDQoAor0JfQkNCS0JjQqNCQINCg0JDQndCa0J4KK9CX0JDQktCY0KjQmNCLINCm0JLQmNCI0JXQotCQCivQl9CQ0JLQmNCo0JjQiyDQnNCY0JvQkNCdCivQl9CQ0JLQmNCo0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JfQkNCS0JjQqNCY0Isg0JLQmNCU0JAKK9CX0JDQktCY0KjQmNCdINCc0JDQoNCY0KbQkAor0JfQkNCS0JjQqNCY0J0g0JzQntCc0JjQoAor0JfQkNCS0JjQqNCY0J0g0KHQkNCS0JAKK9CX0JDQktCg0KLQkNCd0JjQmiDQmNCS0JDQnQor0JfQkNCS0KDQotCQ0J3QmNCaINCY0JLQkNCdCivQl9CQ0JLQoNCi0JDQndCY0Jog0JzQkNCg0IjQkNCdCivQl9CQ0JfQo9CJ0JDQmiDQodCb0JDQktCa0J4KK9CX0JHQkNCn0J3QmNCaINCX0J7QpNCY0IjQkAor0JfQkdCY0InQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0JHQo9CL0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JfQkdCj0IvQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JHQo9CL0J3QntCS0JjQiyDQnNCY0JvQntCoCivQl9CR0KPQi9Cd0J7QktCY0Isg0JzQmNCi0JAKK9CX0JHQo9CL0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQl9CR0KPQi9Cd0J7QktCY0Isg0KHQkNCS0JAKK9CX0JTQldCb0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQl9CU0JXQitCQ0Jog0IjQntCh0JjQnwor0JfQlNCY0KXQkNCdINCc0JDQoNCa0J4KK9CX0JTQiNCV0JvQkNCgINCU0KDQkNCT0JDQnQor0JfQlNCI0JXQm9CQ0KAg0JzQmNCg0J7QodCb0JDQkgor0JfQlNCI0JXQm9CQ0KAg0J7Qm9CT0JAKK9CX0JTQiNCV0JvQkNCgINCS0JjQqNCK0JAKK9CX0JTQiNCV0JvQkNCgINCX0JTQoNCQ0JLQmtCeCivQl9CU0IjQldCb0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQl9CU0IjQldCb0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQl9CU0KDQkNCS0JXQodCa0Jgg0JTQo9Co0JDQndCa0JAKK9CX0JTQoNCQ0JLQldCS0KHQmtCYINCY0JvQmNCI0JAKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQlNCV0IjQkNCdCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JfQlNCg0JDQktCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQoNCQ0JTQlQor0JfQlNCg0JDQktCa0J7QktCY0Isg0KDQkNCU0JUKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQktCV0KDQntCJ0KPQkQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQl9CU0KPQn9Ch0JrQmCDQkdCe0JbQmNCU0JDQoAor0JfQldCn0JDQmiDQktCe0IjQkAor0JfQldCn0JXQktCY0Isg0ILQntCg0ILQngor0JfQldCn0JXQktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JfQldCn0JXQktCY0Isg0KbQktCY0IjQkNCdCivQl9CV0KfQldCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUg0JTQoAor0JfQldCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdINCU0KAKK9CX0JXQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CX0JXQp9CV0JLQmNCLINCT0J7Qm9Cj0JEKK9CX0JXQp9CV0JLQmNCLINCT0JLQntCX0JTQldCdCivQl9CV0KfQldCS0JjQiyDQpdCY0JzQl9CeCivQl9CV0KfQldCS0JjQiyDQmtCg0KHQotCeCivQl9CV0KfQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CX0JXQp9CV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQl9CV0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0JXQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JXQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JXQp9CV0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQngor0JfQldCn0JXQktCY0Isg0JzQmNCe0JzQmNCgCivQl9CV0KfQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JfQldCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQl9CV0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9CX0JXQp9CV0JLQmNCLINCd0J7QktCQ0JoKK9CX0JXQp9CV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQl9CV0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQl9CV0KfQldCS0JjQiyDQoNCY0KHQotCY0JLQntCI0JUKK9CX0JXQp9CV0JLQmNCLINCh0JDQktCeCivQl9CV0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9CX0JXQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0JXQp9CV0JLQmNCLINCh0JzQmNCJ0JAKK9CX0JXQp9CV0JLQmNCLINCh0JzQmNCJ0JAKK9CX0JXQp9CV0JLQmNCLINCh0J7QpNCY0IjQkAor0JfQldCn0JXQktCY0Isg0JLQldCh0J3QkAor0JfQldCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQldCn0JXQktCY0Isg0JfQntCg0JDQnQor0JfQldCn0JjQoNCe0JLQmNCLINCY0JvQnNCYCivQl9CV0IvQmNCg0Jgg0JjQodCc0JDQmNCbCivQl9CV0IvQmNCg0Jgg0JfQmNCI0JAKK9CX0JXQpiDQltCV0InQmtCeCivQl9CV0KYg0ILQo9Cg0J4KK9CX0JXQpiDQkdCe0KjQmtCeCivQl9CV0KYg0JHQntCW0JjQlNCQ0KAKK9CX0JXQpiDQlNCQ0J3QmNCI0JXQmwor0JfQldCmINCU0KDQkNCT0JDQnQor0JfQldCmINCU0KDQkNCT0KPQotCY0J0KK9CX0JXQpiDQlNCj0KjQkNCdCivQl9CV0KYg0JTQo9Co0JDQnQor0JfQldCmINCI0J7QktCQ0J0KK9CX0JXQpiDQnNCQ0KDQmNCI0JAKK9CX0JXQpiDQnNCQ0KDQmNCI0JAKK9CX0JXQpiDQnNCQ0KDQmNCd0JrQngor0JfQldCmINCc0JDQotCQCivQl9CV0KYg0JzQmNCb0JDQnQor0JfQldCmINCc0JjQm9CQ0J0KK9CX0JXQpiDQnNCY0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9CX0JXQpiDQnNCY0JvQntCoCivQl9CV0KYg0JzQmNCb0J7QqAor0JfQldCmINCc0JjQm9Ce0KDQkNCUCivQl9CV0KYg0JzQmNCb0J7QktCQ0J0KK9CX0JXQpiDQndCY0JrQntCb0JAKK9CX0JXQpiDQndCY0JrQntCb0JAKK9CX0JXQpiDQoNCQ0JTQntCS0JDQnQor0JfQldCmINCg0JDQiNCa0J4KK9CX0JXQpiDQoNCQ0IjQmtCeCivQl9CV0KYg0KHQotCV0JLQkNCd0JjQiNCQCivQl9CV0KYg0JfQntCg0JjQptCQCivQl9CV0JTQmCDQnNCY0KXQkNCJCivQl9CV0JPQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQldCT0J3QkNCbINCg0KPQlNCe0JvQpAor0JfQldCI0JDQmiDQmNCS0JDQnQor0JfQldCI0JDQmiDQnNCY0JvQldCi0JAKK9CX0JXQiNCQ0Jog0KDQkNCU0J7QqAor0JfQldCa0JAg0JPQl9CY0JwKK9CX0JXQmtCQINCl0JjQoNCX0JXQnQor0JfQldCa0JAg0JjQoNCc0JAKK9CX0JXQmtCQ0JLQmNCm0JAg0IjQldCb0JXQndCQCivQl9CV0JrQkNCS0JjQptCQINCc0JjQoNCI0JDQndCQCivQl9CV0JrQkNCS0JjQptCQINCh0JvQkNCS0JjQptCQCivQl9CV0JrQkNCS0JjQptCQINCh0KDQgtCQ0J0KK9CX0JXQmtCY0Isg0JzQmNCg0JAKK9CX0JXQmtCe0IrQkCDQl9CU0KDQkNCS0JrQngor0JfQldCa0J7QktCY0Isg0JHQntCo0JrQngor0JfQldCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JfQldCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CX0JXQmtCe0JLQmNCLINCl0JDQndCa0JjQiNCQCivQl9CV0JrQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQl9CV0JrQntCS0JjQiyDQm9CY0JvQkAor0JfQldCa0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CX0JXQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CX0JXQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JTQmNCb0J8g0J7QldCmCivQl9CV0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQl9CV0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JfQldCa0J7QktCY0Isg0KDQmNCX0JAKK9CX0JXQmtCe0JLQmNCLINCS0JDQodCeCivQl9CV0JrQntCS0KHQmtCYINCX0J7QoNCY0KbQkAor0JfQldCb0JXQndCR0JDQkdCQINCg0JDQotCa0J4KK9CX0JXQm9CV0J3QkdCQ0JHQkCDQodCi0JXQktCQ0J0KK9CX0JXQm9CV0J3QpdCQ0KHQmNCLINCV0JzQmNCgCivQl9CV0JvQldCK0JDQmiDQkNCd0JTQoNCY0IjQkAor0JfQldCb0JXQitCQ0Jog0KHQotCI0JXQn9CQ0J0KK9CX0JXQm9CV0J3QmtCQINCk0KDQkNCK0JAKK9CX0JXQm9CV0J3QmtCQINCc0JDQoNCY0IjQkAor0JfQldCb0JXQndCa0J4g0JXQnNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JHQntCg0JjQqNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQl9CV0JvQldCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQl9CV0JvQldCd0J7QktCY0Isg0IjQntCS0JDQnQor0JfQldCb0JXQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JfQldCb0JXQndCe0JLQmNCLINCJ0KPQkdCeCivQl9CV0JvQldCd0J7QktCY0Isg0JzQkNCg0JAKK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JfQldCb0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JfQldCb0JXQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQl9CV0JvQldCd0J7QktCY0Isg0JLQldCg0JAKK9CX0JXQm9CV0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQl9CV0JvQldCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CV0JvQldCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CV0JvQldCd0KHQmtCYINCI0JXQm9CV0J3QkAor0JfQldCb0JXQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9CX0JXQm9CY0Isg0ILQntCg0ILQlQor0JfQldCb0JjQiyDQmNCS0JDQnQor0JfQldCb0JjQiyDQiNCQ0J3QntCoCivQl9CV0JvQmNCLINCI0J7QktCQ0J0KK9CX0JXQm9CY0Isg0JvQkNCX0JDQoAor0JfQldCb0JjQiyDQidCj0JHQkAor0JfQldCb0JjQiyDQidCj0JHQmNCm0JAKK9CX0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CX0JXQm9CY0Isg0JzQkNCg0KLQkAor0JfQldCb0JjQiyDQn9CQ0JLQm9CVCivQl9CV0JvQmNCLINCf0JXQoNCh0JjQlNCQCivQl9CV0JvQmNCLINCf0JXQotCQ0KAKK9CX0JXQm9CY0Isg0KDQo9CW0JjQptCQCivQl9CV0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CX0JXQm9CY0Isg0JfQntCb0KLQkNCdCivQl9CV0InQkNCI0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JfQldCJ0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CV0InQmtCeINCc0JDQoNCY0KbQkAor0JfQldCJ0JrQntCS0JjQiyDQltCV0InQmtCeCivQl9CV0InQmtCe0JLQmNCLINCW0JXQidCa0J4KK9CX0JXQidCa0J7QktCY0Isg0ILQo9Cg0J4KK9CX0JXQidCa0J7QktCY0Isg0JHQntCh0JAKK9CX0JXQidCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQl9CV0InQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JfQldCJ0JrQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0JfQldCJ0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQl9CV0InQmtCe0JLQmNCLINCU0KPQqNCa0J4KK9CX0JXQidCa0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQl9CV0InQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CX0JXQidCa0J7QktCY0Isg0IjQntCS0J4KK9CX0JXQidCa0J7QktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JfQldCJ0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CX0JXQidCa0J7QktCY0Isg0JzQkNCg0JrQngor0JfQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0InQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JXQidCa0J7QktCY0Isg0JzQmNCb0JjQiwor0JfQldCJ0JrQntCS0JjQiyDQnNCY0InQkAor0JfQldCJ0JrQntCS0JjQiyDQnNCY0JvQntCoCivQl9CV0InQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CX0JXQidCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQl9CV0InQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQl9CV0InQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CX0JXQidCa0J7QktCY0Isg0KDQkNCi0JrQngor0JfQldCJ0JrQntCS0JjQiyDQodCY0JzQkAor0JfQldCJ0JrQntCS0JjQiyDQodCi0JXQktCeCivQl9CV0InQmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CX0JXQidCa0J7QktCY0Isg0KLQntCU0JUKK9CX0JXQidCa0J7QktCY0Isg0KLQntCc0JAKK9CX0JXQidCa0J7QktCY0Isg0JLQldCg0JAKK9CX0JXQidCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQl9CV0InQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQl9CV0InQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CX0JXQidCa0J7QktCY0Isg0JfQntCg0JDQnQor0JfQldCJ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQl9CV0JzQkdCV0KDQmCDQpNCV0KDQldCd0KYKK9CX0JXQnNCR0JXQoNCYINCI0J7QodCY0J8KK9CX0JXQnNCR0JXQoNCYINCg0J7QkdCV0KDQogor0JfQldCc0JrQniDQqNCQ0J3QlNCe0KAKK9CX0JXQnNCJ0JDQmiDQmNCS0JDQnQor0JfQldCc0InQkNCd0JDQpiDQnNCY0JvQkNCd0JrQkAor0JfQldCd0KLQkNCYINCg0J7QkdCV0KDQoiDQlNCY0J/QmyDQmNCd0JMKK9CX0JXQndCj0J0g0JDQktCU0J4KK9CX0JXQndCX0JXQoNCe0JLQmNCLINCf0JDQktCb0JUKK9CX0JXQoNCU0J4g0JHQntCW0JjQlNCQ0KAKK9CX0JXQoNCU0J4g0JzQmNCb0J7QoNCQ0JQKK9CX0JXQoNCU0J4g0KDQkNCU0J7QodCb0JDQkgor0JfQldCg0JTQniDQl9Cb0JDQotCQCivQl9CV0KDQldCc0KHQmtCYINCU0JDQndCY0JvQngor0JfQldCg0JXQnNCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0JTQo9Co0JDQnQor0JfQldCg0JXQnNCh0JrQmCDQmtCQ0JzQldCd0JrQngor0JfQldCg0JXQnNCh0JrQmCDQndCQ0JTQkAor0JfQldCg0JXQnNCh0JrQmCDQndCe0JLQkNCaCivQl9CV0KDQldCc0KHQmtCYINCf0JXQotCQ0KAKK9CX0JXQoNCV0JzQodCa0Jgg0J/QldCi0JDQoAor0JfQldCg0JXQnNCh0JrQmCDQn9CY0KDQntCo0JrQkAor0JfQldCg0JXQnNCh0JrQmCDQoNCQ0JTQntCI0JrQkAor0JfQldCg0JXQnNCh0JrQmCDQoNCQ0J3QmtCeCivQl9CV0KDQldCc0KHQmtCYINCg0JDQotCe0JzQmNCgCivQl9CV0KDQldCc0KHQmtCYINCg0KPQltCY0KbQkAor0JfQldCg0JXQnNCh0JrQmCDQodCb0JDQktCY0KbQkAor0JfQldCg0JXQnNCh0JrQmCDQodCi0JXQktCQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0KHQotCV0JLQkNCdCivQl9CV0KDQldCc0KHQmtCYINCi0JXQntCk0JDQnQor0JfQldCg0JXQnNCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQl9CV0KDQldCc0KHQmtCYINCS0JXQoNCQCivQl9CV0KDQldCc0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9CX0JXQoNCV0JzQodCa0Jgg0JLQo9CI0JDQlNCY0J0KK9CX0JXQl9CU0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQl9CT0J7QnNCR0JAg0JvQkNCX0JDQoAor0JfQk9Ce0JzQkdCQINCS0JvQkNCU0JjQnNCY0KAKK9CX0JPQntCK0JDQndCY0J0g0JzQmNCb0JDQnQor0JfQk9Ce0IrQkNCd0JjQnSDQoNCQ0JTQlQor0JfQk9Ce0IrQkNCd0JjQnSDQoNCj0JbQkAor0JfQmNCU0JDQoCDQnNCQ0KDQmNCI0JDQnQor0JfQmNCa0J7QkiDQkNCd0JTQoNCY0IjQkAor0JfQmNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQl9CY0JzQkCDQp9CQ0JHQkAor0JfQmNCc0JAg0KDQo9CU0J7Qm9CkCivQl9CY0JzQkNCK0Jgg0IjQntCS0JDQnQor0JfQmNCc0J7QitCQINCJ0KPQkdCe0JzQmNCgCivQl9CY0JzQntCK0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQl9CY0J3QkNCY0Isg0KbQktCY0IjQldCi0JAKK9CX0JjQndCQ0JjQiyDQo9Cg0J7QqAor0JfQmNCg0JDQnNCe0JIg0JbQkNCg0JrQngor0JfQmNCg0JDQnNCe0JIg0IjQldCS0KDQntCh0JjQnNCQCivQl9CY0KDQkNCc0J7QkiDQiNCV0JLQoNCe0KHQmNCc0JAKK9CX0JjQoNCQ0JzQntCSINCh0JDQktCQCivQl9CY0KDQkNCc0J7QkiDQodCi0JXQktCQ0J0KK9CX0JjQoNCU0KPQpSDQnNCQ0KDQmNCI0JDQnQor0JfQmNCg0J7QiNCVINCU0KDQkNCT0JDQnQor0JfQmNCg0J7QiNCV0JLQmNCLINCQ0J3QgtCQCivQl9CY0KDQntCI0JXQktCY0Isg0JPQntCI0JrQngor0JfQmNCg0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQl9CY0KDQntCI0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQl9CY0KDQntCI0JXQktCY0Isg0J7QkdCg0JDQlAor0JfQmNCg0J7QiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CX0JjQodCY0IjQkNCU0JXQoSDQnNCY0KDQiNCQ0J3QkAor0JfQmNCS0JvQkNCaINCR0KDQkNCd0JrQngor0JfQmNCS0JvQkNCaINCI0JXQm9Ca0JAKK9CX0JjQktCb0JDQmiDQiNCe0JLQkNCdCivQl9CY0JLQm9CQ0Jog0J/QldCg0J4KK9CX0JjQktCb0JDQmiDQn9CV0KDQngor0JfQmNCS0JvQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9CX0JjQktCb0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0IjQkNCn0JjQiyDQgtCe0KDQgtCVCivQl9CI0JDQp9CY0Isg0ILQntCg0ILQlQor0JfQiNCQ0KfQmNCLINCR0KDQkNCd0JrQngor0JfQiNCQ0IjQmNCLINCa0KDQodCi0JDQnQor0JfQiNCQ0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAg0JDQlNCS0J7QmtCQ0KIKK9CX0IjQkNCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQl9CI0JDQm9CY0Isg0JzQkNCg0JPQmNCi0JAKK9CX0IjQldCS0JDQm9CeINCQ0J3QmtCY0KbQkAor0JfQm9CQ0KLQkNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CX0JvQkNCi0JDQndCe0JLQmNCLINCm0JLQldCi0JrQngor0JfQm9CQ0KLQkNCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CX0JvQkNCi0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQl9Cb0JDQotCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQl9Cb0JDQotCQ0J3QntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0JfQm9CQ0KLQkNCd0J7QktCh0JrQmCDQoNCj0KHQlQor0JfQm9CQ0KLQkNCgINCc0JjQm9CV0J3QmtCeCivQl9Cb0JDQotCQ0KDQldCSINCU0KPQqNCQ0J0KK9CX0JvQkNCi0JDQoNCV0JIg0JTQo9Co0JDQnQor0JfQm9CQ0KLQkNCg0JXQkiDQktCV0KDQmNCm0JAKK9CX0JvQkNCi0JDQoNCY0Isg0JzQntCc0KfQmNCb0J4KK9CX0JvQkNCi0JDQoNCY0Isg0JLQntCI0JjQodCb0JDQkgor0JfQm9CQ0KLQkNCg0J7QkiDQnNCY0JvQntCS0JDQnQor0JfQm9CQ0KLQldCaINCb0JDQl9CQ0KAKK9CX0JvQkNCi0JjQp9CQ0J3QmNCdINCi0J7QqNCeCivQl9Cb0JDQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0JvQkNCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQl9Cb0JDQotCY0Isg0JLQldCh0JXQm9CY0J0KK9CX0JvQkNCi0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQl9Cb0JDQotCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JfQm9CQ0KLQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JfQm9CQ0KLQmtCe0JLQmNCLLdCI0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQl9Cb0JDQotCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JfQm9CQ0KLQmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CX0JvQkNCi0JrQntCS0JjQiyDQoNCj0KHQntCc0JjQoAor0JfQm9CQ0KLQmtCe0JLQmNCLINCh0JvQkNCC0JDQndCQCivQl9Cb0JDQotCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQl9Cb0JDQotCe0J3QmNCLINCh0JvQkNCS0JrQngor0JfQm9CQ0KLQntCS0JXQoNCl0J7QktCd0JjQmtCe0JIg0ILQntCg0ILQlQor0JfQm9CQ0KLQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JfQm9CQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CX0JvQmNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JfQm9CY0KfQmNCLINCU0JDQoNCY0J3QmtCQCivQl9Cb0JjQp9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQl9Cb0JjQp9CY0Isg0JTQo9Co0JDQndCa0JAg0JTQmNCf0Jsg0JjQndCTCivQl9Cb0JjQp9CY0Isg0JTQo9Co0JDQnQor0JfQm9CY0KfQmNCLINCY0JLQkNCdCivQl9Cb0JjQp9CY0Isg0JrQkNCi0JjQptCQCivQl9Cb0JjQp9CY0Isg0InQo9CR0JjQptCQCivQl9Cb0JjQp9CY0Isg0JzQmNCb0JDQnQor0JfQm9CY0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Cb0JjQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CX0JvQmNCn0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JfQm9Ce0IjQo9Ci0KDQniDQnNCY0IvQngor0JfQm9Ce0IjQo9Ci0KDQniDQnNCY0KXQkNCI0JvQngor0JfQm9Ce0IjQo9Ci0KDQniDQodCi0JXQktCeCivQl9Cb0J7QiNCj0KLQoNCeINCS0JDQodCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JbQmNCS0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCC0J7QoNCC0JUKK9CX0JvQntCa0J7Qm9CY0KbQkCDQkdCe0KjQmtCeCivQl9Cb0J7QmtCe0JvQmNCm0JAg0IjQntCg0JPQntCS0JDQndCa0JAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQiNCe0JLQkNCdCivQl9Cb0J7QmtCe0JvQmNCm0JAg0IjQntCS0JDQnQor0JfQm9Ce0JrQntCb0JjQptCQINCb0JDQl9CQ0KAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQidCj0JHQmNCm0JAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQnNCQ0KDQmtCeCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JzQmNCb0J7QqAor0JfQm9Ce0JrQntCb0JjQptCQINCc0JjQntCU0KDQkNCTCivQl9Cb0J7QmtCe0JvQmNCm0JAg0J3QmNCa0J7Qm9CQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0J3QntCS0JDQmgor0JfQm9Ce0JrQntCb0JjQptCQINCh0JvQkNCS0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCh0JvQkNCS0J3QkAor0JfQm9Ce0JrQntCb0JjQptCQINCh0KLQldCS0JDQnQor0JfQm9Ce0JrQntCb0JjQptCQINCh0KLQldCS0JDQnQor0JfQm9Ce0JrQntCb0JjQptCQINCi0J7QlNCe0KAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQktCb0JDQlNCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JfQm9CQ0KLQkAor0JfQnNCY0IjQkNCK0JDQpiDQnNCY0JvQkNCdCivQl9Cc0KDQl9Cb0JjQmtCQ0KAg0JzQmNCg0IjQkNCd0JAKK9CX0J7Qi9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JfQntCL0JXQktCY0Isg0JLQmNCi0J7QoAor0JfQntCR0JXQndCY0KbQkCDQkdCY0InQkNCd0JAKK9CX0J7QkdCV0J3QmNCm0JAg0JTQkNCd0JjQptCQCivQl9Ce0JHQldCd0JjQptCQINCc0JjQoNCI0JDQndCQCivQl9Ce0JPQntCS0JjQiyDQktCj0JoKK9CX0J7QmtCYINCh0KLQldCS0JDQnQor0JfQntCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0JfQntCb0J3QkNCYINCi0J7QnNCQ0KgKK9CX0J7Qm9CK0JDQnSDQn9CQ0JLQldCbCivQl9Ce0JvQntCi0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQl9Ce0JvQntCi0JjQiyDQktCV0JvQmNCd0JrQkAor0JfQntCb0J7QotCY0Isg0JLQo9Ca0J7QodCQ0JIKK9CX0J7QnNCR0J7QoNCQ0KYg0JfQktCe0J3QmtCeCivQl9Ce0J3QkCDQlNCY0JLQndCQCivQl9Ce0J3QkNCYINCf0JDQmwor0JfQntCd0JjQiyDQidCj0JHQkNCdCivQl9Ce0J3QmNCLINCg0JjQl9CQ0KUKK9CX0J7QoNCQ0JQg0JzQmNCl0JDQiQor0JfQntCg0JDQlCDQodCi0JXQktCQ0J0KK9CX0J7QoNCQ0IjQkCDQgtCj0KDQkAor0JfQntCg0JDQiNCQINCU0KDQkNCT0JDQnQor0JfQntCg0JDQiNCQINCY0JPQitCQ0KIKK9CX0J7QoNCQ0IjQkCDQn9CV0KLQkNCgCivQl9Ce0KDQkNCI0JAg0KHQotCV0JLQkNCdCivQl9Ce0KDQkNCd0JjQiyDQodCb0JDQktCY0KbQkAor0JfQntCg0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQl9Ce0KDQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JfQntCg0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQl9Ce0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQl9Ce0KDQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQl9Ce0KDQkNCd0J7QktCY0Isg0KHQn9CQ0KHQkAor0JfQntCg0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JfQntCg0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CX0J7QoNCY0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0J7QoNCY0Isg0KfQldCU0J4KK9CX0J7QoNCY0Isg0ILQntCg0ILQlQor0JfQntCg0JjQiyDQgtCe0KDQgtCVCivQl9Ce0KDQmNCLINCC0KPQoNCC0JjQptCQCivQl9Ce0KDQmNCLINCC0KPQoNCY0KbQkAor0JfQntCg0JjQiyDQgtCj0KDQngor0JfQntCg0JjQiyDQgtCj0KDQngor0JfQntCg0JjQiyDQgtCj0KDQngor0JfQntCg0JjQiyDQkNCd0ILQldCb0JrQkAor0JfQntCg0JjQiyDQkdCe0KjQmtCeCivQl9Ce0KDQmNCLINCR0J7QltCY0JTQkNCgCivQl9Ce0KDQmNCLINCR0J7Qk9CU0JDQnQor0JfQntCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JfQntCg0JjQiyDQkdCe0KDQmNCS0J7QiAor0JfQntCg0JjQiyDQkdCe0KDQngor0JfQntCg0JjQiyDQkdCe0KDQngor0JfQntCg0JjQiyDQkdCg0JDQndCa0JAKK9CX0J7QoNCY0Isg0JHQoNCQ0J3QmtCeCivQl9Ce0KDQmNCLINCU0JDQoNCY0J3QmtCQCivQl9Ce0KDQmNCLINCU0JDQoNCa0J4KK9CX0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQl9Ce0KDQmNCLINCU0KDQkNCT0JDQnQor0JfQntCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CX0J7QoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JfQntCg0JjQiyDQlNCj0KjQkNCd0JrQkAor0JfQntCg0JjQiyDQlNCj0KjQkNCdCivQl9Ce0KDQmNCLINCU0KPQqNCQ0J0KK9CX0J7QoNCY0Ist0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCc0JDQoNCY0IjQkNCd0JAKK9CX0J7QoNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CX0J7QoNCY0Isg0JPQntCg0JTQkNCd0JAKK9CX0J7QoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CX0J7QoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CX0J7QoNCY0Isg0IjQntCS0JDQnQor0JfQntCg0JjQiyDQmtCQ0KLQkAor0JfQntCg0JjQiyDQmtCb0JDQoNCQCivQl9Ce0KDQmNCLINCa0J7QodCi0JDQlNCY0J0KK9CX0J7QoNCY0Isg0JrQntCS0JjQidCa0JAKK9CX0J7QoNCY0Isg0JvQkNCX0JDQoAor0JfQntCg0JjQiyDQm9Cj0JrQkAor0JfQntCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0J7QoNCY0Isg0JzQkNCg0JrQngor0JfQntCg0JjQiyDQnNCY0JrQkAor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCY0Isg0JzQmNCb0JXQktCQCivQl9Ce0KDQmNCLINCc0JjQm9CY0KbQkAor0JfQntCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CX0J7QoNCY0Isg0JzQmNCg0JrQniDQmNCd0JMKK9CX0J7QoNCY0Isg0JzQmNCg0JrQngor0JfQntCg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQl9Ce0KDQmNCLINCd0JjQmtCe0JvQkAor0JfQntCg0JjQiyDQndCY0JrQntCb0JAKK9CX0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQl9Ce0KDQmNCLINCf0JDQktCb0JUKK9CX0J7QoNCY0Isg0J/QldCg0JAKK9CX0J7QoNCY0Isg0J/QldCi0JDQoAor0JfQntCg0JjQiyDQn9CV0KLQmtCeCivQl9Ce0KDQmNCLINCg0JDQlNCVCivQl9Ce0KDQmNCLINCg0JDQlNCVCivQl9Ce0KDQmNCLINCh0JDQktCQCivQl9Ce0KDQmNCLINCh0JjQnNCQCivQl9Ce0KDQmNCLINCh0JjQnNCV0J7QnQor0JfQntCg0JjQiyDQodCb0JDQktCY0KbQkAor0JfQntCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9Ce0KDQmNCLINCh0J3QldCW0JDQndCQCivQl9Ce0KDQmNCLINCh0J7QmtCQCivQl9Ce0KDQmNCLINCh0J/QkNCh0J7QiNCVCivQl9Ce0KDQmNCLINCh0KLQkNCd0JrQngor0JfQntCg0JjQiyDQodCi0J7QiNCQ0J0KK9CX0J7QoNCY0Isg0KHQktCV0KLQmtCeCivQl9Ce0KDQmNCLINCh0JLQldCi0JrQngor0JfQntCg0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQl9Ce0KDQmNCLINCS0JXQm9CY0JzQmNCgCivQl9Ce0KDQmNCLINCS0JXQidCa0J4g0JTQmNCf0Jsg0JjQndCTCivQl9Ce0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JfQntCg0JjQiyDQktCb0JDQlNCeCivQl9Ce0KDQmNCLINCS0J7QiNCY0J0KK9CX0J7QoNCY0Isg0JLQntCI0JrQkAor0JfQntCg0JjQiyDQl9CU0KDQkNCS0JrQkAor0JfQntCg0JjQiyDQl9Ce0KDQmNCm0JAKK9CX0J7QoNCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JfQntCg0JjQptCQINCQ0KbQngor0JfQntCg0JjQptCQINCU0KPQqNCQ0J0KK9CX0J7QoNCY0KbQkCDQnNCQ0KDQmtCeCivQl9Ce0KDQmNCI0JDQnSDQldCc0JjQmwor0JfQntCg0IjQkNCdINCR0KDQkNCd0JrQngor0JfQntCg0IjQkNCdINCI0JDQndCa0J4KK9CX0J7QoNCa0JjQiyDQltCY0JLQmtCeCivQl9Ce0KDQndCY0IjQkCDQkdCg0JDQndCa0J4KK9CX0J7QoNCd0JjQiNCQINCS0JvQkNCU0JjQodCb0JDQkgor0JfQntCg0J3QmNCaINCQ0JvQlNCQCivQl9Ce0KDQl9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CX0J7QotCY0J0g0ILQntCg0ILQlQor0JfQntCi0JjQnSDQodCQ0JLQkAor0JfQntCi0JjQnSDQodCb0JDQktCe0InQo9CRCivQl9Ce0KLQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQntCi0J7QktCY0Isg0J7QkdCg0JDQlAor0JfQntCS0JjQiyDQkNCd0JAKK9CX0J7QktCY0Isg0JTQo9Co0JDQnQor0JfQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JfQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQl9Ce0JLQmtCeINCo0JjQnNCj0J0KK9CX0J7QktCa0J4g0JjQm9CY0IjQkAor0JfQntCS0JrQniDQiNCe0KHQmNCfCivQl9Ce0JLQmtCeINCc0JDQndCU0JAKK9CX0J7QktCa0J4g0JzQkNCg0IjQkNCdCivQl9Ce0JfQo9CaINCJ0KPQkdCe0JzQmNCgCivQl9Cg0JjQm9CY0Isg0J3QkNCU0JAKK9CX0KDQmNCb0JjQiyDQktCV0KDQkAor0JfQoNCY0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQl9Cg0J3QmNCLINCo0J/QmNCg0J4KK9CX0KDQndCY0Isg0ILQntCg0ILQlQor0JfQoNCd0JjQiyDQgtCj0KDQngor0JfQoNCd0JjQiyDQgtCj0KDQngor0JfQoNCd0JjQiyDQkdCg0JDQndCa0J4KK9CX0KDQndCY0Isg0JTQo9Co0JDQnQor0JfQoNCd0JjQiyDQk9Ce0IjQmtCeCivQl9Cg0J3QmNCLINCT0J7QiNCa0J4KK9CX0KDQndCY0Isg0IjQntCS0JDQnQor0JfQoNCd0JjQiyDQm9CQ0JfQkNCgCivQl9Cg0J3QmNCLINCc0JDQiNCQCivQl9Cg0J3QmNCLINCc0JDQm9CY0J3QkAor0JfQoNCd0JjQiyDQnNCQ0J3QlSDQlNCY0J/QmyDQmNCd0JMKK9CX0KDQndCY0Isg0JzQkNCd0JUKK9CX0KDQndCY0Isg0JzQkNCg0JjQndCa0J4KK9CX0KDQndCY0Isg0JzQmNCb0JDQnQor0JfQoNCd0JjQiyDQnNCY0JvQkNCdCivQl9Cg0J3QmNCLINCc0JjQm9Ce0KgKK9CX0KDQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0KDQndCY0Isg0JzQmNCg0J7QidCj0JEKK9CX0KDQndCY0Isg0J3QldCd0JDQlAor0JfQoNCd0JjQiyDQndCY0JrQntCb0JAKK9CX0KDQndCY0Isg0J/QldCi0JDQoAor0JfQoNCd0JjQiyDQodCY0J3QmNCo0JAKK9CX0KDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQoNCd0JjQiyDQodCg0ILQkNCdCivQl9Cg0J3QmNCLINCS0JvQkNCU0J4KK9CX0KDQndCY0Isg0JfQntCg0JDQnQor0JfQoNCd0JjQiyDQl9Ce0KDQkNCdCivQl9Cj0JHQkNCmINCn0JXQlNCe0JzQmNCgCivQl9Cj0JHQkNCmINCU0JjQktCd0JAKK9CX0KPQkdCQ0KYg0JzQmNCb0JDQnQor0JfQo9CR0JDQpiDQn9CV0KDQngor0JfQo9CR0JDQmiDQodCi0JXQktCQ0J0KK9CX0KPQkdCQ0J0g0J/QldCi0JDQoAor0JfQo9CR0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQl9Cj0JHQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQl9Cj0JHQldCgINCU0KPQqNCQ0J0KK9CX0KPQkdCV0KAg0JzQkNCg0JrQngor0JfQo9CR0JXQoNCV0KYg0IjQntCS0JDQnQor0JfQo9CR0JjQiyDQltCQ0KDQmtCeCivQl9Cj0JHQmNCLINCC0KPQoNCC0JAKK9CX0KPQkdCY0Isg0JHQmNCJ0JDQndCQCivQl9Cj0JHQmNCLINCR0J7QltCeCivQl9Cj0JHQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQl9Cj0JHQmNCLINCU0KDQkNCT0J4KK9CX0KPQkdCY0Isg0IjQntCS0J4KK9CX0KPQkdCY0Isg0JvQkNCX0J4KK9CX0KPQkdCY0Isg0J/QldCi0JDQoAor0JfQo9CR0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQl9Cj0JHQmNCLINCg0JDQotCa0J4KK9CX0KPQkdCY0Isg0JLQldCg0JAKK9CX0KPQkdCY0Isg0JLQldCg0JrQkAor0JfQo9CR0J7QkiDQkNCU0JXQm9CQCivQl9Cj0JHQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JfQo9CR0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0KPQkdCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0KPQkdCe0JLQmNCLINCh0KLQldCS0JDQnQor0JfQo9Cm0JDQiNCY0Isg0IjQldCb0JXQndCQCivQl9Cj0JrQmNCLINCT0J7QiNCa0J4KK9CX0KPQmtCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQl9Cj0JvQmNCLINCQ0JPQndCV0KgKK9CX0KPQnNCR0KPQm9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTCivQl9Cj0J/QkNCd0KfQmNCLINCk0KDQkNCd0KYKK9CX0KPQn9CQ0J3Qp9CY0Isg0JjQktCQ0J0KK9CX0KPQn9CQ0J3QpiDQlNCQ0KDQmtCeCivQl9Cj0J/QkNCd0KYg0KDQkNCI0JrQngor0JfQo9Cf0JrQntCSINCC0KPQoNCQCivQl9Cj0J/QmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JfQo9Cg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQl9Cj0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9Cj0KDQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQl9Cj0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CX0KPQoNCa0J7QktCY0Isg0JPQkNCS0KDQkAor0JfQo9Cg0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JfQo9Cg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CX0KPQoNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQo9Cg0JrQntCS0JjQiyDQoNCj0JbQkAor0JfQo9Cg0JrQntCS0JjQiyDQktCV0KDQkAor0JfQo9Cg0J7QktCQ0KYg0IjQntCS0J4KK9CX0KPQoNCe0JLQkNCmINCS0JXQidCa0J4KK9CX0KPQktCY0Isg0J7QkdCg0JDQlAor0JfQo9CX0JDQmtCjINCg0JXQj9CV0J8KK9CX0JLQkNCg0JAg0IjQo9Cb0JjQiNCQCivQl9CS0JXQmtCQ0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQl9CS0JXQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CX0JLQldCa0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQl9CS0JXQmtCY0Isg0JzQkNCg0JjQiNCQCivQl9CS0JXQmtCY0Isg0JzQmNCb0JDQnQor0JfQktCV0JrQmNCLINCd0JDQlNCQCivQl9CS0JXQmtCY0Isg0J/QldCi0JDQoAor0JfQktCV0JrQmNCLINCh0JjQndCY0KjQkAor0JfQktCV0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQl9CS0JXQoNCW0JjQndCQINCI0J7QodCY0J8KK9CX0JLQldCX0JTQkNCd0J7QktCY0Isg0JHQntCg0JAKK9CX0JLQldCX0JTQkNCd0J7QktCY0Isg0KLQntCc0JAKK9CX0JLQldCX0JTQmNCdINCI0J7QktCQ0J3QmtCQCivQl9CS0JjQiNCV0KAg0JzQmNCb0J7QoNCQ0JQKK9CX0JLQmNCX0JTQmNCLINCc0JXQpdCc0JXQlAor0JfQktCe0KjQldCmINCa0JvQkNCg0JAKK9CX0JLQntCd0JDQoNCV0JLQmNCLINCa0JDQotCQCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2ltcGxpZmllZF9DaGluZXNlLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TaW1wbGlmaWVkX0NoaW5lc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0M2RlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2ltcGxpZmllZF9DaGluZXNlLnR4dApAQCAtMCwwICsxLDEwOTAyIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+iZueWmgg0KK+S4geS4gOi0pA0KK+S4geW3neS8nw0KK+S4geW/g+Wymg0KK+S4geW8mOWFiQ0KK+S4geS7u+azlQ0KK+S4geW/l+Wujw0KK+S4geW5uOWnrA0KK+S4geS/iuWkqw0KK+S4geW7uuaWhw0KK+S4geaYoOe6rw0KK+S4gee+v+aWhw0KK+S4geWTsg0KK+S4geS8n+awkQ0KK+S4geWbveaihQ0KK+S4gea3keeOsg0KK+S4geiLj+WNlw0KK+S4geavk+W9pg0KK+S4gembjeWTsg0KK+S4gee7ruaFpw0KK+S4geaFp+Wymg0KK+S4geeSn+aeqw0KK+S4geiqieeQsw0KK+S4gemLkOmVkg0KK+WNnOato+S8pg0KK+S6juW8i+e/lA0KK+S6juengOe+jg0KK+S6juenieW8mA0KK+S6jua4heWNjg0KK+S6juauv+Wcow0KK+WxseadsA0KK+WwueWvuOasow0KK+WwueWxheaJjQ0KK+WwueaMr+WogQ0KK+WwueeRnuS4sA0KK+WwueaZk+aBqQ0KK+S7h+WutueQqg0KK+WtlOWuiOS4rQ0KK+WtlOaZuuadsA0KK+WtlOe5gemclg0KK+WwpOW/g+eRnA0KK+WwpOWQn+aWhw0KK+WwpOiJrw0KK+WwpOaYjuS7sg0KK+WwpOS/iuWTjQ0KK+WwpOaYn+etlg0KK+WwpOS8n+S7lQ0KK+WwpOWHgOe8qA0KK+WwpOmSpuS5kA0KK+WwpOebn+i0tQ0KK+WwpOWuveWujw0KK+WwpOmfteeQhw0KK+WwpOiOs+iQsQ0KK+aWh+W/l+W/oA0KK+aWh+ecn+iKsQ0KK+aWh+S7quWSjw0KK+aWueWjq+mTrQ0KK+aWueWkqeS4rQ0KK+aWueaWh+mUiw0KK+aWueawuOa4hQ0KK+aWueaxneiCsg0KK+aWueWtneWQmw0KK+aWueW/l+aYjg0KK+aWueengOaVjw0KK+aWueS9s+S/ig0KK+aWueW5uOWunA0KK+aWueaAoea0gQ0KK+aWuemVv+aJrA0KK+aWueS/iumbhA0KK+aWueWlleaWjA0KK+aWueW7uuaZug0KK+aWueW9pueoiw0KK+aWueaYoOiKrA0KK+aWueafj+mSpg0KK+aWueeni+mUpg0KK+aWueiLpeePig0KK+aWuemHjeWHrw0KK+aWueaZi+W+tw0KK+aWueWBpeWImg0KK+aWueW9qeWunA0KK+aWuea3keiKrA0KK+aWuea3keWEkg0KK+aWueWHr+eOsg0KK+aWueaZr+W8mA0KK+aWueetluawkQ0KK+aWuembheeQqg0KK+aWueeIseePjQ0KK+aWueeRnui/nA0KK+aWueijlemSpg0KK+aWueWYieWFtA0KK+aWuee/oOm4vw0KK+aWueaFp+eQtA0KK+aWuemdmeWunA0KK+aWueeQvOS7qg0KK+aWueS4vembhQ0KK+aWuemSn+mUiw0KK+aWueiPgOiQjQ0KK+avm+aWh+WLhw0KK+avm+S9qeWonw0KK+avm+W9puS5lA0KK+avm+a3keiKrA0KK+avm+axieaihQ0KK+awtOelpeiLkw0KK+eJm+i0tei0pA0KK+eOi+S4gOePjQ0KK+eOi+S5g+S/kA0KK+eOi+WKm+W5sw0KK+eOi+S4iue7tA0KK+eOi+Wjq+W/oA0KK+eOi+Wjq+iNow0KK+eOi+Wjq+ixqg0KK+eOi+Wkp+aYjA0KK+eOi+WtkOaIkA0KK+eOi+WtkOiLsQ0KK+eOi+WtkOeGmQ0KK+eOi+Wwj+iKrA0KK+eOi+S4reW5sw0KK+eOi+S4reaGkw0KK+eOi+WwueWcow0KK+eOi+S7geWQmw0KK+eOi+S7geWulw0KK+eOi+S7geiInA0KK+eOi+WFg+WKqQ0KK+eOi+WFg+WFtA0KK+eOi+WPi+W/lw0KK+eOi+WkqeaWhw0KK+eOi+WwkeaWhw0KK+eOi+W/g+W/oA0KK+eOi+W/g+aAoQ0KK+eOi+W/g+aZug0KK+eOi+aWh+W5sw0KK+eOi+aWh+WQmw0KK+eOi+aWh+W/lw0KK+eOi+aWh+adsA0KK+eOi+aWh+mDgQ0KK+eOi+aWh+eQqg0KK+eOi+aWh+eRtg0KK+eOi+aWh+m4vw0KK+eOi+aWueaAoQ0KK+eOi+aciOWptw0KK+eOi+S4luWuhw0KK+eOi+S4luaYjg0KK+eOi+S4luadsA0KK+eOi+S4luW5vw0KK+eOi+S4lemTqA0KK+eOi+WPr+asow0KK+eOi+W3p+iOuQ0KK+eOi+W8mOavhQ0KK+eOi+ato+WogQ0KK+eOi+ato+i+vg0KK+eOi+awuOS7gQ0KK+eOi+awuOWNhw0KK+eOi+awuOivmg0KK+eOi+eOieaWhw0KK+eOi+eOieePoA0KK+eOi+eOieS6kQ0KK+eOi+eUn+WLiw0KK+eOi+eri+aihQ0KK+eOi+eri+eOrg0KK+eOi+S7sueQpg0KK+eOi+WFiem6gw0KK+eOi+WQieS9sw0KK+eOi+WmgueOiQ0KK+eOi+Wuh+a4hQ0KK+eOi+WuieWHrw0KK+eOi+aXreWFqA0KK+eOi+acieadgw0KK+eOi+iHquW8ug0KK+eOi+S9kOi+hQ0KK+eOi+S8r+mAuA0KK+eOi+WIqeeUnw0KK+eOi+WQm+eRng0KK+eOi+Wmmee6og0KK+eOi+WtneWQmw0KK+eOi+Wuj+S7gQ0KK+eOi+Wuj+WTsg0KK+eOi+Wuj+WYiQ0KK+eOi+W6j+e6tg0KK+eOi+W/l+S7gQ0KK+eOi+W/l+aWhw0KK+eOi+W/l+W8mA0KK+eOi+W/l+WRiA0KK+eOi+W/l+W/oA0KK+eOi+W/l+WzsA0KK+eOi+W/l+S8nw0KK+eOi+W/l+a4hQ0KK+eOi+W/l+mSpg0KK+eOi+W/l+ivmg0KK+eOi+W/l+ixqg0KK+eOi+W/l+mTrQ0KK+eOi+adj+Wmgg0KK+eOi+engOS6kQ0KK+eOi+engOiKrA0KK+eOi+engOePoA0KK+eOi+engOmbrw0KK+eOi+engOakvw0KK+eOi+iCsuW+tw0KK+eOi+iwt+elng0KK+eOi+S6muW/lw0KK+eOi+S+nemftQ0KK+eOi+S9s+ePjQ0KK+eOi+S9s+eQqg0KK+eOi+S9qQ0KK+eOi+S9qemfsw0KK+eOi+S9qeivlw0KK+eOi+WdpOi0pA0KK+eOi+Wtn+iwpg0KK+eOi+Wul+ajiw0KK+eOi+WunOW9pg0KK+eOi+WGiOmZtQ0KK+eOi+W/teaFiA0KK+eOi+aAoeS7gQ0KK+eOi+aAoeaWhw0KK+eOi+aAoeaWuQ0KK+eOi+aAoeePjQ0KK+eOi+aAoea4hQ0KK+eOi+aAoeWptw0KK+eOi+aAoeaZtA0KK+eOi+aAoembhQ0KK+eOi+aAoeiLuQ0KK+eOi+aJv+iInA0KK+eOi+aYjuS7gQ0KK+eOi+aYjuePig0KK+eOi+aYjuWvjA0KK+eOi+aYgOePqQ0KK+eOi+aso+S5iw0KK+eOi+aso+aFpw0KK+eOi+azk+e/lA0KK+eOi+ayu+mCpg0KK+eOi+eOq+ahpg0KK+eOi+iKs+aFpw0KK+eOi+mCtemDgQ0KK+eOi+mHkeWNjg0KK+eOi+mbqOa5mA0KK+eOi+S6remSpw0KK+eOi+S/oeS7gQ0KK+eOi+S/oeazsA0KK+eOi+S/oeWvjA0KK+eOi+S/oeijlQ0KK+eOi+S/iuS7gQ0KK+eOi+S/iueriw0KK+eOi+S/iuW9pg0KK+eOi+S/iua4hQ0KK+eOi+S/iuadsA0KK+eOi+S/iuWHrw0KK+eOi+S/iuWHrw0KK+eOi+S/iuWvjA0KK+eOi+S/iumSpg0KK+eOi+S/iui2hQ0KK+eOi+S/iumBkw0KK+eOi+S/ium+mQ0KK+eOi+S/nuaWhw0KK+eOi+WGoOS8pg0KK+eOi+WGoOeEtg0KK+eOi+WImeiDnA0KK+eOi+WKsuWHjA0KK+eOi+WTgea3hw0KK+eOi+WlleWQmw0KK+eOi+WllemSpw0KK+eOi+Wnv+S7ig0KK+eOi+Wnv+iQjQ0KK+eOi+WogeiDvQ0KK+eOi+Wuo+WNvw0KK+eOi+W7uuWxsQ0KK+eOi+W7uuaWhw0KK+eOi+W7uuaUvw0KK+eOi+W7uuWHrw0KK+eOi+W7uumSpg0KK+eOi+W7uumbhA0KK+eOi+W7uuaWjA0KK+eOi+W9puiDvQ0KK+eOi+W9puaZug0KK+eOi+W+i+S5iw0KK+eOi+aAneaNtw0KK+eOi+aAnea0gQ0KK+eOi+aUv+ayuw0KK+eOi+aUv+adgw0KK+eOi+aYreS6ug0KK+eOi+aYrea3kQ0KK+eOi+aYreaHvw0KK+eOi+aYn+eakw0KK+eOi+aYseWHrw0KK+eOi+aYseiLuQ0KK+eOi+afj+asow0KK+eOi+afj+Wwpw0KK+eOi+afj+mSpw0KK+eOi+a0vui9qQ0KK+eOi+S4uuiSqA0KK+eOi+eOsuiLsQ0KK+eOi+ebiOW/gw0KK+eOi+ebiOadsA0KK+eOi+ebiOmbhQ0KK+eOi+eliOmSpw0KK+eOi+eni+aDoA0KK+eOi+e6qg0KK+eOi+e+jueOiQ0KK+eOi+e+jueOsg0KK+eOi+e+jua3kQ0KK+eOi+e+juaDoA0KK+eOi+e+jumbrw0KK+eOi+e+juaHvw0KK+eOi+iHtOajoA0KK+eOi+iLpeetkQ0KK+eOi+iLseaWhw0KK+eOi+iLseiTiQ0KK+eOi+ihjeaYkw0KK+eOi+i0nuaHvw0KK+eOi+mDgeasow0KK+eOi+mDgeWptw0KK+eOi+mDgeiPgQ0KK+eOi+mDgeePug0KK+eOi+mfpue/lA0KK+eOi+S/ruWFsA0KK+eOi+WTsuiBqg0KK+eOi+WutuS8nw0KK+eOi+WutueRnA0KK+eOi+WxleeOrg0KK+eOi+aCpuWmgg0KK+eOi+aMr+Wuhw0KK+eOi+aMr+a1qQ0KK+eOi+aXtuiUmg0KK+eOi+ahguWykQ0KK+eOi+a1t+WkqQ0KK+eOi+a1qeS8pg0KK+eOi+S9qeS8pg0KK+eOi+S9qeeShw0KK+eOi+e0oOWNvw0KK+eOi+e6r+e+jg0KK+eOi+iMuemmqA0KK+eOi+S8n+awkQ0KK+eOi+S8n+W3ng0KK+eOi+S8n+WGmw0KK+eOi+S8n+W+tw0KK+eOi+WBpeawkQ0KK+eOi+WBpeWLiw0KK+eOi+WbvQ0KK+eOi+WbveW9pg0KK+eOi+Wbvemahg0KK+eOi+Wbvem+mQ0KK+eOi+aJp+S/oQ0KK+eOi+Wfueahpg0KK+eOi+WpieeRnA0KK+eOi+W0h+aYjg0KK+eOi+aYhum+mQ0KK+eOi+W9qemcng0KK+eOi+aDh+aFpw0KK+eOi+WQr+Wulw0KK+eOi+WQr+aotQ0KK+eOi+aVj+i0ng0KK+eOi+aVj+mTqA0KK+eOi+aZqOaZlA0KK+eOi+aiheWFsA0KK+eOi+a3s+aFpw0KK+eOi+a4hem4vw0KK+eOi+a3keaAoQ0KK+eOi+a3keWGoA0KK+eOi+a3keeciQ0KK+eOi+a3keWonw0KK+eOi+a3keWqmw0KK+eOi+a3kembrw0KK+eOi+a3keaFpw0KK+eOi+a3kemftQ0KK+eOi+WHgOiOuQ0KK+eOi+elpeWuhw0KK+eOi+elpemclg0KK+eOi+e7jeecnw0KK+eOi+iOieaxtg0KK+eOi+iOiembrw0KK+eOi+mbquWmgg0KK+eOi+adsOeriw0KK+eOi+WHr+W8mA0KK+eOi+WHr+aAoQ0KK+eOi+WHr+iSgg0KK+eOi+iDnOW8mA0KK+eOi+iDnOmbhA0KK+eOi+WNmuaWhw0KK+eOi+WNmuS/rg0KK+eOi+Wwp+W8mA0KK+eOi+Wpt+S7qg0KK+eOi+WvjOaYjA0KK+eOi+Wkjei+iQ0KK+eOi+aDoOWQmw0KK+eOi+aDoOeOsg0KK+eOi+aDoOaVjw0KK+eOi+aDoOaFpw0KK+eOi+aVpuatow0KK+eOi+aZtOWnvw0KK+eOi+aZr+WFgw0KK+eOi+aZr+aziQ0KK+eOi+aZuuW8mA0KK+eOi+aZuueriw0KK+eOi+aZuuebig0KK+eOi+aZuum4ow0KK+eOi+aZuum+mQ0KK+eOi+acneawuA0KK+eOi+acnemUrg0KK+eOi+mSpuW4nQ0KK+eOi+a5mOS6kQ0KK+eOi+eQqg0KK+eOi+eQpuaemg0KK+eOi+eak+atow0KK+eOi+e0q+mbrw0KK+eOi+e/lOWugQ0KK+eOi+iIkueRnA0KK+eOi+iInOeUnw0KK+eOi+iPgeWFsA0KK+eOi+WSj+aFpw0KK+eOi+i0tem+mQ0KK+eOi+mAuOS/rg0KK+eOi+i/m+m4vw0KK+eOi+mXtemfpg0KK+eOi+mbheS8tg0KK+eOi+mbheWnvw0KK+eOi+mbhei0ng0KK+eOi+mbheaDoA0KK+eOi+mbhembrw0KK+eOi+mbheS7qg0KK+eOi+mbheaFpw0KK+eOi+mbrw0KK+eOi+S6keeUnw0KK+eOi+mhuum4vw0KK+eOi+WLpOWWhA0KK+eOi+aEj+aDoA0KK+eOi+aFiOW6hg0KK+eOi+eIseWYiQ0KK+eOi+aVrOe/lA0KK+eOi+aWsOaFpw0KK+eOi+amhuWvjA0KK+eOi+avk+iPgQ0KK+eOi+avk+eFhw0KK+eOi+eFp+WFtA0KK+eOi+eRnuWQnw0KK+eOi+eRnueDvQ0KK+eOi+eRnuS6kQ0KK+eOi+eRnumikA0KK+eOi+eRnuiKlw0KK+eOi+ebn+S7gQ0KK+eOi+ajsemSpw0KK+eOi+Wcow0KK+eOi+Wco+WwpA0KK+eOi+Wco+a3sw0KK+eOi+Wco+ajiw0KK+eOi+Wco+e7tA0KK+eOi+Wco+eOrg0KK+eOi+ijleatow0KK+eOi+ijleaZug0KK+eOi+ivl+mDgQ0KK+eOi+ivl+Wptw0KK+eOi+ivl+mbhQ0KK+eOi+ivl+mmqA0KK+eOi+mBk+S7gQ0KK+eOi+mSnOe/lA0KK+eOi+mdlumbrw0KK+eOi+m8juWFgQ0KK+eOi+WYieWQmw0KK+eOi+WYiemDgQ0KK+eOi+WYieeQqg0KK+eOi+WYieWGnA0KK+eOi+WYieaFpw0KK+eOi+WYieWFtA0KK+eOi+WYiem+hA0KK+eOi+W9sOaHiw0KK+eOi+iNo+WPkQ0KK+eOi+axieelpQ0KK+eOi+edv+WQmw0KK+eOi+ehleW6hg0KK+eOi+emj+elpQ0KK+eOi+e7tOWmgg0KK+eOi+e7tOmbrw0KK+eOi+e7tOeBvw0KK+eOi+e/oOWNjg0KK+eOi+iLjem+mQ0KK+eOi+ixquadsA0KK+eOi+mTreaihQ0KK+eOi+mTrem4vw0KK+eOi+WHpOWunA0KK+eOi+S7qumilg0KK+eOi+W+t+eakw0KK+eOi+W6huWggg0KK+eOi+aFp+WQmw0KK+eOi+aFp+iLsQ0KK+eOi+aFp+WHrw0KK+eOi+aFp+mbrw0KK+eOi+aFp+mdmQ0KK+eOi+agh+mSpg0KK+eOi+eRvueRnA0KK+eOi+i+iemTrQ0KK+eOi+WEkumahg0KK+eOi+Wuquebnw0KK+eOi+aZk+mfsw0KK+eOi+aZk+mbrw0KK+eOi+aZk+eOrg0KK+eOi+eHleW8ug0KK+eOi+WFtOmCpg0KK+eOi+iVmeWuuQ0KK+eOi+mUoeemhA0KK+eOi+mUpuaFpw0KK+eOi+mdmeaAoQ0KK+eOi+mdmeeQqg0KK+eOi+mdmeaFpw0KK+eOi+eIteaakA0KK+eOi+iHhumTgw0KK+eOi+iWh+Wqmw0KK+eOi+iwpue7tA0KK+eOi+m4v+W/lw0KK+eOi+m4v+mSpw0KK+eOi+ekvOiwpg0KK+eOi+WuoOaDoA0KK+eOi+eAmuWfug0KK+eOi+eQvOS9qQ0KK+eOi+eQvOeRtg0KK+eOi+e7mOWymg0KK+eOi+ivgembhA0KK+eOi+mftea3kQ0KK+eOi+m5jw0KK+eOi+m6kumSpw0KK+eOi+S4veiKrA0KK+eOi+S4vea3kQ0KK+eOi+S4veeQpg0KK+eOi+S4vembrw0KK+eOi+m6k+aWrw0KK+eOi+Wunem+mQ0KK+eOi+e7p+Wwpw0KK+eOi+iAgOaZlg0KK+eOi+iAgOW6hg0KK+eOi+iAgOmTjg0KK+eOi+mSn+mTrQ0KK+eOi+mmqOaVjw0KK+eOi+mmqOiLuQ0KK+eOi+m+hOaikw0KK+eOi+S/qumilg0KK+eOi+aoseWonw0KK+eOi+i3g+mclg0KK+eOi+aYvuWNiQ0KK+eOi+iKiumbrw0KK+eOi+Wntembrw0KK+eOi+a1n+e+jg0KK+eOi+eQh+Wnvw0KK+eOi+e/iuiQpA0KK+eOi+ajqOW+tw0KK+eOi+eQrueOrg0KK+eOi+eQoembrw0KK+eOi+Wrhuajuw0KK+eOi+eOrumTgw0KK+eOi+etseWptw0KK+eOi+etseiQsQ0KK+eOi+mSsOasow0KK+eOi+mSsOakjQ0KK+eOi+iTgeS7qg0KK+eOi+iWj+mbrw0KK+eOi+Wsv+a3kQ0KK+S4lua9k+mdmQ0KK+S4mOecn+e7rg0KK+WGieWFhuePjQ0KK+WMheW/l+aWhw0KK+WMheWuq+e7tA0KK+WPpOS4gOecnw0KK+WPpOaciOWopQ0KK+WPpOeOieWHpA0KK+WPpOengOmTgw0KK+WPpOS9qeeOiQ0KK+WPpOaJv+W8mA0KK+WPpOaYjuaZnw0KK+WPpOS/iue6sg0KK+WPpOiLseWxsQ0KK+WPpOahguiPig0KK+WPpOaDn+mTrQ0KK+WPpOiOiemcnA0KK+WPpOaZuuS8nw0KK+WPpOS6keS7gQ0KK+WPpOivl+S7qg0KK+WPpOWtpua2tQ0KK+WPpOS/tue7rg0KK+WPuOmhuuWuiQ0KK+WPsuWFiOm4vw0KK+WPsuaYjuWOnw0KK+WPsuWbveemjw0KK+WPsuWco+m4vw0KK+WPsuabnOW9sA0KK+W3puWul+WFgw0KK+W3puiTjA0KK+eUmOawuOijlQ0KK+eUmOWtn+m+mQ0KK+eUmOaUv+W8mA0KK+eUmOaDoOWNjg0KK+eUmOmciOmclg0KK+eUsOS4lui0pA0KK+eUsOWFhueQqg0KK+eUsOaykOaBqQ0KK+eUsOS9qeeBjw0KK+eUsOaAoQ0KK+eUsOiKs+iMuQ0KK+eUsOiLseW/lw0KK+eUsOS9qeS/gw0KK+eUsOa3keWQmw0KK+eUsOmSpuaWhw0KK+eUsOWYieeOsg0KK+eUsOaZk+mSpw0KK+eUsOeSp+iPgA0KK+eUs+W/l+aWjA0KK+eUs+WvjOmRqw0KK+eZveWkp+WwuQ0KK+eZveWFqOaIkA0KK+eZveWykeaAoQ0KK+eZveS9s+a4nQ0KK+eZveWunOmTrg0KK+eZveaso+advg0KK+eZveeOsuaFiA0KK+eZveaMr+a6kA0KK+eZveiAv+ihjA0KK+eZvea3keeRnA0KK+eZveWWnOaWhw0KK+eZveiInOWFgw0KK+eZveeFjOm6kg0KK+eZveiNo+S/rg0KK+eZvemdmeWmgg0KK+eZveS4veWonA0KK+efs+S5g+Wmgg0KK+efs+S4luWQjQ0KK+efs+eOieWHpA0KK+efs+aXreeUnw0KK+efs+iCsueOnw0KK+efs+S9s+iTiQ0KK+efs+Wul+S7gQ0KK+efs+aYjuWRqA0KK+efs+iKs+ePig0KK+efs+e+jueOsg0KK+efs+Wzu+W5sw0KK+efs+e6r+e7rg0KK+efs+W9qeaFpw0KK+efs+adsOWuhw0KK+efs+acneWuiQ0KK+efs+mbheaDoA0KK+efs+W6huWSjA0KK+efs+mUpuiIqg0KK+efs+mmpeeRhA0KK+efs+eOrumdmQ0KK+S8jeS4luaJrA0KK+S8jeengOiTiQ0KK+S8jeW7uuaWhw0KK+S8jeWutuiwig0KK+S8jeWBpem5jw0KK+S8jeeip+eOsg0KK+S7u+aJjeS/ig0KK+S7u+WQm+aVjw0KK+S7u+S/iuWEkg0KK+S7u+e6r+aFpw0KK+S7u+aWsOWFsA0KK+S7u+etsea4hQ0KK+WNseaYjuW6tw0KK+WQkeilv+mYsw0KK+WQkeW+t+WuuQ0KK+WuieW/l+S8nw0KK+aIkOS4ueeOsg0KK+absuaYjOmahg0KK+acseS5meecnw0KK+acseW/g+aAoQ0KK+acseaWh+eipw0KK+acseS4lumSpw0KK+acseato+aWhw0KK+acseeOieaxtg0KK+acseS6puS4uQ0KK+acseeZvuaZnw0KK+acseWmjeWmgg0KK+acseW4jOaMrw0KK+acseW/l+a0iw0KK+acseaym+aAoQ0KK+acseiCsuS9kQ0KK+acseiCsuiOuQ0KK+acseS9s+eQqg0KK+acseWul+iUmg0KK+acseW/teiLsQ0KK+acseaAoeiHuw0KK+acseS4nOW6lA0KK+acseenieaFpw0KK+acsemCseaYjg0KK+acseS/iuelpQ0KK+acseS/ium+mQ0KK+acseWljuW3ng0KK+acseW7uuazsA0KK+acseW9puWEkg0KK+acseaUv+WTsg0KK+acseafj+iLjQ0KK+acseePjeaFpw0KK+acseeni+aFpw0KK+acseiLpeaihQ0KK+acsemDgeW6rQ0KK+acseWOn+Wujw0KK+acseWutuatow0KK+acseWutuasow0KK+acseWutuaFpw0KK+acseWuuee7gw0KK+acseWzsOiwig0KK+acseaXtuW9pg0KK+acseS5pui0pA0KK+acseaut+W7tw0KK+acseS9qeS7qg0KK+acseelkOWRiA0KK+acsee6r+iOuQ0KK+acseS8n+adsA0KK+acseWBpeivmg0KK+acseWfueiQsQ0KK+acseW6t+mTrQ0KK+acseaVj+mBkw0KK+acsea3keaDoA0KK+acsemZiOWQr+a6kA0KK+acseWvk+eQhg0KK+acseacnem6nw0KK+acseWSj+iBlA0KK+acsembhemTgw0KK+acseWXo+iKrA0KK+acseeRnuWLhw0KK+acsei+vuaYjg0KK+acseiNo+Wujw0KK+acseemj+WxsQ0KK+acseWHpOiWhw0KK+acseaFp+ecnw0KK+acsei+ieiAgA0KK+acseaZk+aZtA0KK+acsemdmeaWhw0KK+acseeSh+WwuQ0KK+acseS4veWptw0KK+acseiKruWunA0KK+acseeQrOiTgQ0KK+asoeWFsOiLsQ0KK+axn+S4reWBpQ0KK+axn+WkqeaOiA0KK+axn+aWh+advg0KK+axn+aWh+eQvA0KK+axn+S4luWNjg0KK+axn+ato+adsA0KK+axn+eOieWNiQ0KK+axn+eri+WzsA0KK+axn+WQieelpQ0KK+axn+aIkOaWjA0KK+axn+WRiOmYsw0KK+axn+W/l+Wujw0KK+axn+W/l+mahg0KK+axn+engOeOsg0KK+axn+iCsumchg0KK+axn+S9s+iKsw0KK+axn+S9s+e6rw0KK+axn+S9s+mclg0KK+axn+S9qeeOsg0KK+axn+S9qeiQpg0KK+axn+WNj+WLhw0KK+axn+Wtn+iKnQ0KK+axn+Wtn+azvQ0KK+axn+Wul+WTsg0KK+axn+WunOiKsw0KK+axn+WunOahpg0KK+axn+Wyqei+vg0KK+axn+W/oOi/nA0KK+axn+aAoeiQsQ0KK+axn+aAoeemmw0KK+axn+aYjOm4vw0KK+axn+aYjuadvg0KK+axn+aYjuS5pg0KK+axn+aYjueSiw0KK+axn+aYjuiJug0KK+axn+S4nOaHiw0KK+axn+aso+WuuQ0KK+axn+eOqeiQqQ0KK+axn+iKneaVjw0KK+axn+mVv+Wvvw0KK+axn+S/oeS4nA0KK+axn+S/iuaYjg0KK+axn+S/iuS6vw0KK+axn+S/iuWFtA0KK+axn+WTgeS7qg0KK+axn+WogeW+tw0KK+axn+W7uumTrQ0KK+axn+W9pui+iQ0KK+axn+aBrA0KK+axn+aUv+WEkg0KK+axn+aYrei0pA0KK+axn+afj+iLhw0KK+axn+eOsuaFpw0KK+axn+e6quaYjg0KK+axn+e+juaFpw0KK+axn+iLseS/oQ0KK+axn+ihjem+mQ0KK+axn+mjjui/nA0KK+axn+WutumTrQ0KK+axn+aMr+Wuhw0KK+axn+S5puiOuQ0KK+axn+S9qeWumQ0KK+axn+e6r+eOqw0KK+axn+WBpeaIkA0KK+axn+WbveW6hg0KK+axn+WvheeUqw0KK+axn+WQr+S7sg0KK+axn+adoeWdhw0KK+axn+a3kei0ng0KK+axn+ebm+m+mQ0KK+axn+WHr+a0gQ0KK+axn+aDoOWNjg0KK+axn+aZuue7tA0KK+axn+mAuOWuiQ0KK+axn+mbheaWhw0KK+axn+mbheaDoA0KK+axn+S8oOaxnw0KK+axn+eRnuelpQ0KK+axn+ijleWbvQ0KK+axn+WYieS8pg0KK+axn+amleaosQ0KK+axn+e/oOiKsw0KK+axn+WuveaFiA0KK+axn+aFp+iKsw0KK+axn+aFleWxjw0KK+axn+W/humbrw0KK+axn+miluaYjg0KK+axn+mUpui+iQ0KK+axn+iVvg0KK+axn+S4sOiJrw0KK+axn+S4veWonw0KK+axn+WKreS8pg0KK+axn+Wqng0KK+axn+afveeahw0KK+axoOazsOWujw0KK+eJn+aYlQ0KK+iJvumdkuiTiQ0KK+S9leWkp+aWsA0KK+S9leS7geeUsA0KK+S9leWkqeaBqQ0KK+S9leaWh+aWhw0KK+S9leaWh+iQsQ0KK+S9leS4lumbhA0KK+S9leawuOeQsw0KK+S9leeOiea0gQ0KK+S9leS6mOW9rA0KK+S9leWFieajgg0KK+S9leaXreW5sw0KK+S9leWQm+iQjQ0KK+S9leW/l+a1qQ0KK+S9leaym+eGmQ0KK+S9leiCsuadsA0KK+S9leS6q+iTiQ0KK+S9leS9s+WNlw0KK+S9leS9s+ecnw0KK+S9leS9s+iejQ0KK+S9leS9qeiKnQ0KK+S9leS9qee6rw0KK+S9leWFtuazvQ0KK+S9leWnl+iTiQ0KK+S9leWtn+i0pA0KK+S9leWto+enpg0KK+S9leWul+W9rA0KK+S9leWul+eGuQ0KK+S9leWul+empw0KK+S9leWunOWAqQ0KK+S9leWunOeShw0KK+S9leWys+ePiA0KK+S9leaAoeWQmw0KK+S9leaJv+S7sg0KK+S9leaYk+WxlQ0KK+S9leaYjuWulw0KK+S9leaYjuS5pg0KK+S9leaYjumilg0KK+S9leWNh+WEkg0KK+S9leadvueRtg0KK+S9leaso+i9qQ0KK+S9leenieasow0KK+S9leiKt+eRhA0KK+S9lembqOmbrw0KK+S9leS/oeWulw0KK+S9leS/iuW7tw0KK+S9leS/iui+vg0KK+S9leS/iui0pA0KK+S9leWGoOmclg0KK+S9leWogeW+tw0KK+S9leW7uuS5kA0KK+S9leW9pumpuQ0KK+S9leaAnemilg0KK+S9leaUv+e/sA0KK+S9leaYrei0pA0KK+S9leeCs+i0pA0KK+S9leeni+iQsQ0KK+S9lee+jueOsg0KK+S9leiLpeeRnA0KK+S9lemmmeWPtg0KK+S9leWutuiPgQ0KK+S9leWzu+adsA0KK+S9leaMr+e7tA0KK+S9lea1mumTrQ0KK+S9lee0oOWQmw0KK+S9leWBpee7tA0KK+S9leWbveaZnw0KK+S9leW0h+e7tA0KK+S9leaVj+iPgQ0KK+S9lea4hem+mQ0KK+S9lea3keWptw0KK+S9lea2tQ0KK+S9leiDnOWQiA0KK+S9leaDoOWQmw0KK+S9leaDoOmSsA0KK+S9leiIkuWymg0KK+S9lemAuOeEtg0KK+S9lembheeQqg0KK+S9leaEj+iOuQ0KK+S9leeRnue+jg0KK+S9leiQseeShw0KK+S9leWYieWxlQ0KK+S9leiNo+aWhw0KK+S9lee7tOiAlQ0KK+S9lemTreWujw0KK+S9leW6huWFtA0KK+S9leaFp+S7qg0KK+S9leWtpuWOmg0KK+S9leaZk+ebiA0KK+S9leeHleWxjw0KK+S9lemUpumimA0KK+S9lemdmeS7qg0KK+S9lee7hw0KK+S9leS4veWQmw0KK+S9leaXu+mcnA0KK+S9lee/iue7rg0KK+S9meWtkOmTrQ0KK+S9meW/g+WGnA0KK+S9meaWh+ijlQ0KK+S9meW8mOS8nw0KK+S9meWQieelpQ0KK+S9meS8tg0KK+S9meW/l+m+mQ0KK+S9mei/hQ0KK+S9meS9s+mfsw0KK+S9meS9s+WFtA0KK+S9meS9qeWonw0KK+S9meWdquiKsw0KK+S9meWtn+mcjw0KK+S9meWul+WEkg0KK+S9meWum+WEkg0KK+S9meW/oOeBrw0KK+S9meaYjOe/sA0KK+S9meaYjuWonw0KK+S9meaYjuazvQ0KK+S9meS4nOaZkw0KK+S9meazleaYjA0KK+S9memHkeWFuA0KK+S9meS/oeS8nw0KK+S9meS/iua4ig0KK+S9meS/iuWEkg0KK+S9meWKsuavhQ0KK+S9meW4neW6hg0KK+S9meW9pumclg0KK+S9meaUv+mahg0KK+S9meaYn+aflA0KK+S9meebiOmUiw0KK+S9meiLpeW4hg0KK+S9meWHjOaYjA0KK+S9meWutuiOuQ0KK+S9meazsOeUtw0KK+S9mee0oOWFsA0KK+S9meWbveWuiQ0KK+S9meWpieiQjQ0KK+S9meaZqOWNjg0KK+S9meebm+mSpg0KK+S9meaDoOaWhw0KK+S9meaZuuadsA0KK+S9membhea3kQ0KK+S9meaFiOWutA0KK+S9meeRnuiQjQ0KK+S9meWYieWzsA0KK+S9meemj+a1qQ0KK+S9mem9kOWogQ0KK+S9meWuquWulw0KK+S9meiwkA0KK+S9meiwoui+iQ0KK+S9meS4veeQtA0KK+S9meeQrOeRnA0KK+WIqeengOWFsA0KK+WIqeW+t+W8pg0KK+WQtOS5g+WFgw0KK+WQtOWNg+aFpw0KK+WQtOWkp+e7tA0KK+WQtOWtkOixqg0KK+WQtOS4reWujw0KK+WQtOS7geS9kQ0KK+WQtOS7gei0tQ0KK+WQtOWFg+W5sw0KK+WQtOWFg+WriA0KK+WQtOWwkemSpw0KK+WQtOW/g+aDoA0KK+WQtOaWh+eOiQ0KK+WQtOaWh+aAoQ0KK+WQtOaWh+ebig0KK+WQtOaWh+adsA0KK+WQtOaWh+WPkQ0KK+WQtOaWh+mTgw0KK+WQtOaWh+avhQ0KK+WQtOaWh+aWjA0KK+WQtOeBq+WxsQ0KK+WQtOS4luS8nw0KK+WQtOS4lui+vg0KK+WQtOS7leW8ug0KK+WQtOS7nuS4gA0KK+WQtOW5s+WSjA0KK+WQtOW/heiDnA0KK+WQtOato+Wlhw0KK+WQtOato+WNjg0KK+WQtOawuOaYjA0KK+WQtOawuOijlQ0KK+WQtOeOieWQnw0KK+WQtOeOieiMuQ0KK+WQtOeOieaZrw0KK+WQtOeOieiTiQ0KK+WQtOeri+awkQ0KK+WQtOeri+WLpA0KK+WQtOS8iuiLuQ0KK+WQtOS7suazgg0KK+WQtOWFhuaWhw0KK+WQtOWQiem+mQ0KK+WQtOWmgualpg0KK+WQtOWuiemCpg0KK+WQtOaXreazsA0KK+WQtOiHs+S7gQ0KK+WQtOihjOS4rQ0KK+WQtOS8tuS4vQ0KK+WQtOWQm+iCsg0KK+WQtOWmmeS8pg0KK+WQtOWuj+S7gQ0KK+WQtOWuj+Wfug0KK+WQtOW4jOellg0KK+WQtOW/l+Wujw0KK+WQtOW/l+aBkg0KK+WQtOW/l+S8nw0KK+WQtOW/l+axiQ0KK+WQtOW/l+m+mQ0KK+WQtOadj+aXiw0KK+WQtOaym+aZgw0KK+WQtOaxtuaxtg0KK+WQtOengOeOsg0KK+WQtOengOe6uQ0KK+WQtOengOm5gw0KK+WQtOiCsuWulw0KK+WQtOiCsuehlQ0KK+WQtOiCsumclg0KK+WQtOS6muasow0KK+WQtOS+neWmrg0KK+WQtOS+neiTkw0KK+WQtOS9s+WSjA0KK+WQtOS9s+iKsw0KK+WQtOS9s+WNlw0KK+WQtOS9s+eOsg0KK+WQtOS9s+eOsg0KK+WQtOS9s+WAqQ0KK+WQtOS9s+WuuQ0KK+WQtOS9s+ecnw0KK+WQtOS9s+aDoA0KK+WQtOS9s+iTiQ0KK+WQtOS9s+aGrA0KK+WQtOS9s+ahpg0KK+WQtOS9s+milg0KK+WQtOS9s+iVmQ0KK+WQtOS9s+mdmQ0KK+WQtOS9s+m4vw0KK+WQtOS9qeWQmw0KK+WQtOS9qeiKsw0KK+WQtOS9qeWfjg0KK+WQtOS9qeePig0KK+WQtOS9qeeOsg0KK+WQtOS9qeWopQ0KK+WQtOS9qee6rw0KK+WQtOS9qeiTiQ0KK+WQtOS9qeWEkg0KK+WQtOS9qeiwlQ0KK+WQtOS9qeiTgQ0KK+WQtOS+keW6rQ0KK+WQtOWFtumclg0KK+WQtOWHveiTgQ0KK+WQtOWPlOmVhw0KK+WQtOWdpOelkA0KK+WQtOWdpOm4vw0KK+WQtOWlh+WTsg0KK+WQtOWlh+m+mQ0KK+WQtOWtn+Wulw0KK+WQtOWtn+iKrA0KK+WQtOWtn+i0ng0KK+WQtOWtn+Wonw0KK+WQtOWtn+iMuQ0KK+WQtOWtn+iTiQ0KK+WQtOWtn+Wuqg0KK+WQtOWtn+mUoQ0KK+WQtOWtn+iNng0KK+WQtOWto+eRvg0KK+WQtOWul+WysQ0KK+WQtOWul+eliA0KK+WQtOWul+ahkw0KK+WQtOWul+mahg0KK+WQtOWul+WEkg0KK+WQtOWul+Wuqg0KK+WQtOWul+e/sA0KK+WQtOWul+WFtA0KK+WQtOWul+m+mQ0KK+WQtOWumueWhg0KK+WQtOWunOiKsw0KK+WQtOWunOi0ng0KK+WQtOWunOelkA0KK+WQtOWunOephg0KK+WQtOWunOWrlA0KK+WQtOWum+aAoQ0KK+WQtOWum+iQpg0KK+WQtOWwmuWAjQ0KK+WQtOWwmuWEkg0KK+WQtOWGiOWEkg0KK+WQtOWysemclg0KK+WQtOWys+ahkA0KK+WQtOW5uOaenQ0KK+WQtOW5uOecnw0KK+WQtOW7tuaZgw0KK+WQtOW/oOaUvw0KK+WQtOW/oOmclg0KK+WQtOaAoeWQmw0KK+WQtOaAoeePig0KK+WQtOaAoeiQjQ0KK+WQtOaAoeW6hg0KK+WQtOaAoeiOuQ0KK+WQtOaAoeWuqg0KK+WQtOaAoemdmQ0KK+WQtOaAoQ0KK+WQtOaJv+WTsg0KK+WQtOaJv+eSiw0KK+WQtOaLmw0KK+WQtOaYk+mAig0KK+WQtOaYjOW6rQ0KK+WQtOaYhg0KK+WQtOaYhueSiw0KK+WQtOaYjg0KK+WQtOaYjuW/oA0KK+WQtOaYjuiKsw0KK+WQtOaYjuePjQ0KK+WQtOaYjuWTsg0KK+WQtOaYjuaBrQ0KK+WQtOaYjui9qQ0KK+WQtOaYjui+vg0KK+WQtOaYjueSiw0KK+WQtOaYjuWLiw0KK+WQtOaYjuaZlA0KK+WQtOaYjum+mQ0KK+WQtOaYjuminA0KK+WQtOaYleWnvw0KK+WQtOWNh+ahpQ0KK+WQtOS4nOWSjA0KK+WQtOS4nOiAvw0KK+WQtOS4nOmclg0KK+WQtOadvuaymw0KK+WQtOaso+S9qQ0KK+WQtOaso+aAoQ0KK+WQtOaso+S8pg0KK+WQtOaso+ehlQ0KK+WQtOaso+WEkg0KK+WQtOaso+m4vw0KK+WQtOazk+eOsw0KK+WQtOayu+iLsQ0KK+WQtOeOq+Wnlw0KK+WQtOebtOiAlQ0KK+WQtOenieS8pg0KK+WQtOenieWLiw0KK+WQtOeniemqjw0KK+WQtOiKs+mdkg0KK+WQtOiKs+eRnA0KK+WQtOiKnee6rA0KK+WQtOmHh+iKsw0KK+WQtOmHkeeOiQ0KK+WQtOmHkeWOhg0KK+WQtOmVv+afjw0KK+WQtOmbqOWTsg0KK+WQtOmdkuiCsg0KK+WQtOmdkuWzsA0KK+WQtOmdkueOrw0KK+WQtOS6reiwig0KK+WQtOS/oeW5uA0KK+WQtOS/oeWuvQ0KK+WQtOS/oei+iQ0KK+WQtOS+r+eSiw0KK+WQtOS/iuWujw0KK+WQtOS/iuWlhw0KK+WQtOS/iuadsA0KK+WQtOS/iuadsA0KK+WQtOS/iui+vg0KK+WQtOS/iuS7qg0KK+WQtOS/iuW+tw0KK+WQtOS/iuavhQ0KK+WQtOS/iue6rA0KK+WQtOS/iui0pA0KK+WQtOS/iumUiw0KK+WQtOS/iuiwmg0KK+WQtOS/iuedvw0KK+WQtOS/nuiOuQ0KK+WQtOWGoOe+pA0KK+WQtOWGoOi0pA0KK+WQtOWGoOe/mg0KK+WQtOWKsum+mQ0KK+WQtOWTgeiTiQ0KK+WQtOWlleaIkA0KK+WQtOWllee+sg0KK+WQtOWnv+S7qg0KK+WQtOWnv+ahpg0KK+WQtOWogeiKsw0KK+WQtOWuo+mUiw0KK+WQtOW7uueUnw0KK+WQtOW7uueUtw0KK+WQtOW7uuiKnQ0KK+WQtOW7uui+vg0KK+WQtOW7uuW+tw0KK+WQtOW7uui0pA0KK+WQtOW7uuWLiw0KK+WQtOW7uuaXuw0KK+WQtOW9puW6hg0KK+WQtOW+i+mTrQ0KK+WQtOaAneiQsQ0KK+WQtOaAneiOuQ0KK+WQtOaAnemilg0KK+WQtOaUvw0KK+WQtOaUv+aXug0KK+WQtOaUv+WOnw0KK+WQtOaUv+W9rA0KK+WQtOaUv+W+tw0KK+WQtOaUv+WLiw0KK+WQtOaUv+milg0KK+WQtOaUv+mclg0KK+WQtOaYpeeUnw0KK+WQtOaYpee8kw0KK+WQtOaYreiTiQ0KK+WQtOaYreavhQ0KK+WQtOaYrem+mQ0KK+WQtOaYseWujw0KK+WQtOafhOW+tw0KK+WQtOafj+mdkg0KK+WQtOafj+S7qg0KK+WQtOafj+avhQ0KK+WQtOafj+milg0KK+WQtOeCq+Wulw0KK+WQtOeCs+Wzow0KK+WQtOeOsuWqmw0KK+WQtOeah+asow0KK+WQtOebiOa0gQ0KK+WQtOeliem+mQ0KK+WQtOeni+e+jg0KK+WQtOeni+aFpw0KK+WQtOe6quWQmw0KK+WQtOe+juWmrg0KK+WQtOe+jueOsg0KK+WQtOe+juaDoA0KK+WQtOe+juelrw0KK+WQtOe+juaFpw0KK+WQtOe+juiQpA0KK+WQtOe+v+WWpw0KK+WQtOiHtOmTrQ0KK+WQtOiLpeWNjg0KK+WQtOiLseWujw0KK+WQtOiLsem4vw0KK+WQtOi0nuWunA0KK+WQtOi0nuiOuQ0KK+WQtOmDgeiKsw0KK+WQtOmHjeavhQ0KK+WQtOmjnum+mQ0KK+WQtOWAqQ0KK+WQtOWOn+Wuhw0KK+WQtOWTsumbrw0KK+WQtOWTsuadgw0KK+WQtOWutuaYjg0KK+WQtOWutueQqg0KK+WQtOWutuiNow0KK+WQtOWutuixqg0KK+WQtOWutuaFpw0KK+WQtOWuueiOuQ0KK+WQtOW6reeLsQ0KK+WQtOaMr+aIkA0KK+WQtOaMr+ixqg0KK+WQtOaMuumUiw0KK+WQtOaZj+W5sw0KK+WQtOS5puiNow0KK+WQtOahgueukA0KK+WQtOazsOaYjA0KK+WQtOa1t+iKrA0KK+WQtOS9qeWQmw0KK+WQtOS9qeaFiA0KK+WQtOS9qeelrw0KK+WQtOebiuiKsw0KK+WQtOe0oOiKrA0KK+WQtOe6r+asow0KK+WQtOi9qei9qQ0KK+WQtOS8n+S8pg0KK+WQtOS8n+ivmg0KK+WQtOWBpeawkQ0KK+WQtOWBpemRqw0KK+WQtOWbveS8nw0KK+WQtOWbveeLrg0KK+WQtOWbveeGmQ0KK+WQtOWbvemTrQ0KK+WQtOWdmueOrg0KK+WQtOWfuei0pA0KK+WQtOWpieWptw0KK+WQtOWpieathg0KK+WQtOW0h+mTrQ0KK+WQtOW9qemCkQ0KK+WQtOaCoA0KK+WQtOWQr+aJrA0KK+WQtOWQr+aWjA0KK+WQtOaVj+ecnw0KK+WQtOaVj+mSnA0KK+WQtOaik+mAog0KK+WQtOa3u+mUiw0KK+WQtOa3keWmgg0KK+WQtOa3keiKrA0KK+WQtOa3keWNvw0KK+WQtOa3keaVjw0KK+WQtOa3keWNjg0KK+WQtOa3keWHpA0KK+WQtOa2teWunA0KK+WQtOelpee7tA0KK+WQtOe7jeWNjg0KK+WQtOiOieWptw0KK+WQtOmbquWmrg0KK+WQtOern+iKsw0KK+WQtOWHr+mbrw0KK+WQtOiDnOelug0KK+WQtOS5lOajrg0KK+WQtOWkjeWFtA0KK+WQtOaDoOWQmw0KK+WQtOaDoOW9qQ0KK+WQtOaDoOmbrw0KK+WQtOaWr+eGjw0KK+WQtOaZuuS4nA0KK+WQtOaZuuixqg0KK+WQtOagi+mahg0KK+WQtOeKgOeBtQ0KK+WQtOWWhOmTrQ0KK+WQtOiPgeiPgQ0KK+WQtOWSj+WuuA0KK+WQtOmAuOawkQ0KK+WQtOmAuOe+pA0KK+WQtOmSp+Wptw0KK+WQtOmbheWdpA0KK+WQtOmbhemDgQ0KK+WQtOmbheWymg0KK+WQtOmbheiQjQ0KK+WQtOmbhembrw0KK+WQtOmbhee7rg0KK+WQtOS6kemqpQ0KK+WQtOWchuaclw0KK+WQtOaVrOeQqg0KK+WQtOavk+ecnw0KK+WQtOa6kOeroA0KK+WQtOeRng0KK+WQtOeRnuWTsg0KK+WQtOeRnumSpg0KK+WQtOeRnuW6hg0KK+WQtOeomumchg0KK+WQtOWco+WogQ0KK+WQtOivl+Wptw0KK+WQtOivmuaYjA0KK+WQtOm8juS8nw0KK+WQtOWYieS/oQ0KK+WQtOWYieWonw0KK+WQtOWYieiDnA0KK+WQtOWYieiNow0KK+WQtOWYieiVmQ0KK+WQtOWugeeRhA0KK+WQtOiNo+azsA0KK+WQtOaxiemTrQ0KK+WQtOeip+S/kA0KK+WQtOemj+mHjw0KK+WQtOe7tOWAqQ0KK+WQtOe7tOijlQ0KK+WQtOiCh+iFvg0KK+WQtOi/nOivmg0KK+WQtOmTreaMrw0KK+WQtOmTqOWPiw0KK+WQtOWHpOWFsA0KK+WQtOW+t+WFgw0KK+WQtOW6huaWhw0KK+WQtOaFp+WQmw0KK+WQtOaFp+eOsg0KK+WQtOaFp+i0ng0KK+WQtOaFp+aVjw0KK+WQtOaFp+mbrw0KK+WQtOa0geePig0KK+WQtOi1kOW/oA0KK+WQtOWuquS4rQ0KK+WQtOW/huWxjw0KK+WQtOaZk+mdkg0KK+WQtOaZk+e6rw0KK+WQtOaZk+iPgQ0KK+WQtOaZk+iWhw0KK+WQtOeHleiKrA0KK+WQtOmilui9qQ0KK+WQtOiVmeWmgg0KK+WQtOiVmee6uQ0KK+WQtOmBteWFiA0KK+WQtOmUpuS9sw0KK+WQtOmUpumVkg0KK+WQtOmdmeWunA0KK+WQtOmdmeaAoQ0KK+WQtOmdmeiKsw0KK+WQtOmdmeiMuQ0KK+WQtOmdmembrw0KK+WQtOm+meWunQ0KK+WQtOaAu+aIkA0KK+WQtOWjsOa6kA0KK+WQtOi/iA0KK+WQtOm4v+aYjA0KK+WQtOm4v+ajrg0KK+WQtOabnOiHow0KK+WQtOS4sOWQiQ0KK+WQtOmVh+WIqQ0KK+WQtOeQvOeOiQ0KK+WQtOmfteWNiQ0KK+WQtOS4veaYpQ0KK+WQtOS4veWptw0KK+WQtOeMruiJrw0KK+WQtOmmqOaAoQ0KK+WQtOaHv+Wptw0KK+WQtOaYvuWulw0KK+WQtOS9vOS9vA0KK+WQtOaXu+WEkg0KK+WQtOeOoOiTiQ0KK+WQtOaYtuiRsw0KK+WQtOa3qeWuiQ0KK+WQtOeQruadsA0KK+WQtOeOrueQsw0KK+WQtOetseePiA0KK+WQtOeSgQ0KK+WQtOmfq+W+tw0KK+WQleWtkOixqg0KK+WQleS7geWbog0KK+WQleWPi+Wptw0KK+WQleaWh+S4kw0KK+WQleaWh+mTgw0KK+WQleS4luixqg0KK+WQleato+WuiQ0KK+WQleeOieeniw0KK+WQleeri+S8nw0KK+WQleWmguiLsQ0KK+WQleiHqui+vg0KK+WQleW/l+Wujw0KK+WQleW/l+mUiw0KK+WQleiCsuiKsw0KK+WQleiCsueOrg0KK+WQleS9s+WunA0KK+WQleS9s+WuuQ0KK+WQleS9s+ahpg0KK+WQleS9qeWnlw0KK+WQleS9qee6rw0KK+WQleWFtumclg0KK+WQleWnl+Wnlw0KK+WQleWto+iKsw0KK+WQleWul+mTrQ0KK+WQleWunOiKsw0KK+WQleWunOaZjw0KK+WQleWunOmclg0KK+WQleWxheWLiw0KK+WQleW/oOiCsg0KK+WQleaAoeaFpw0KK+WQleaXuumqkA0KK+WQleaYjg0KK+WQleaYjuazsA0KK+WQleaYjum+mQ0KK+WQleadsOe6rA0KK+WQleaso+milg0KK+WQleiKs+S/ig0KK+WQlemHkeW9pg0KK+WQlemVv+mmqA0KK+WQleS/neWyuA0KK+WQleS/iuS7qg0KK+WQleS/kA0KK+WQleWNl+eVvw0KK+WQleWogeW+tw0KK+WQleW7uuW9pg0KK+WQleW7uumUiw0KK+WQleW9puiejQ0KK+WQleaUv+W9pg0KK+WQleaUv+iwlQ0KK+WQleaYreS7qg0KK+WQleafj+Wujw0KK+WQleeah+WFtg0KK+WQleeni+S6kQ0KK+WQlee+juaDoA0KK+WQlee+jum+hA0KK+WQleiLseeOrg0KK+WQlemfpueutA0KK+WQleWTsuaYjg0KK+WQleW6ree7tA0KK+WQleagvOixqg0KK+WQleelkOWQiQ0KK+WQleS8n+mSpg0KK+WQleWbveWfuQ0KK+WQleWpieiMuQ0KK+WQleaihemfsw0KK+WQlea3keWNvw0KK+WQlea3keelrw0KK+WQleeQhumclg0KK+WQlee7jeiNow0KK+WQlembqueRnA0KK+WQleaDoOiPgQ0KK+WQleaZuuadsA0KK+WQleWSj+ecnw0KK+WQlembheeOsg0KK+WQlembheeQqg0KK+WQlembr+athg0KK+WQleayp+Wwpw0KK+WQleWco+eroA0KK+WQleWYieWFgw0KK+WQleWYieS4sA0KK+WQlee7tOeOsg0KK+WQlemTreaZug0KK+WQleaFp+aDoA0KK+WQleWtpuWQmw0KK+WQleWtpuaZug0KK+WQleWtpuedvw0KK+WQleeHleaelw0KK+WQlemUpumhug0KK+WQlemdmeiTiQ0KK+WQlem4v+m6nw0KK+WQleS4veWonw0KK+WQleWOheS4pQ0KK+WQlee/iuawkQ0KK+Wui+Wkp+i+sA0KK+Wui+S5i+aPhg0KK+Wui+W/g+aFpw0KK+Wui+S4luaWhw0KK+Wui+eOieWptw0KK+Wui+S8r+eRnA0KK+Wui+aym+WLhw0KK+Wui+iCsueOrg0KK+Wui+S9qeePig0KK+Wui+Wtn+eRmw0KK+Wui+W5uOecnw0KK+Wui+aYjOmclg0KK+Wui+S4nOWogQ0KK+Wui+enieiQsQ0KK+Wui+S/iua0iw0KK+Wui+WlleWEkg0KK+Wui+W7uuasow0KK+Wui+aUv+mahg0KK+Wui+emueiOuQ0KK+Wui+iHtOi/nA0KK+Wui+Wutumclg0KK+Wui+iIq+iHow0KK+Wui+WfueWFgw0KK+Wui+aVj+WNjg0KK+Wui+S5lOeOiQ0KK+Wui+acneaWjA0KK+Wui+S6keaYjg0KK+Wui+WYieS7gQ0KK+Wui+eip+eQsw0KK+Wui+aFp+a0gQ0KK+Wui+eHleS/qg0KK+Wui+eqnA0KK+Wui+aXu+ecnw0KK+W3q+WtkOaHvw0KK+W3q+aIjuaAoQ0KK+W3q+S9qeeShw0KK+W3q+WunOWtpg0KK+W3q+aYjue/sA0KK+W3q+iKt+eOrg0KK+W3q+WGoOiwig0KK+W3q+afj+avhQ0KK+W3q+aMr+WYiQ0KK+W3q+a4heaWhw0KK+W3q+WWhOemjw0KK+W3q+WYieWFtA0KK+W3q+aZk+iKrA0KK+W3q+aZn+mAuA0KK+adjuS5g+aWhw0KK+adjuWjq+S6qw0KK+adjuWtkOWFgQ0KK+adjuWwj+iKrA0KK+adjuS4reS7uw0KK+adjuS4reaFpw0KK+adjuS7geS/rg0KK+adjuS7geWHrw0KK+adjuS7ium7mw0KK+adjuWFg+Wcgw0KK+adjuWFg+ijlQ0KK+adjuWPi+a3sw0KK+adjuWkqeahpg0KK+adjuW/g+S7gQ0KK+adjuW/g+Wymg0KK+adjuaWhw0KK+adjuaWh+WQiQ0KK+adjuaWh+W/lw0KK+adjuaWh+aUvw0KK+adjuaWh+iOiQ0KK+adjuaWh+aDoA0KK+adjuaWh+eQpg0KK+adjuaWh+aEjw0KK+adjuaWh+i+vg0KK+adjuaWh+i0pA0KK+adjuaWh+aWjA0KK+adjuaciOaYnw0KK+adjuS4luWuiQ0KK+adjuS4luS8nw0KK+adjuS4luWJgA0KK+adjuS4luWuvQ0KK+adjuS7peaWsA0KK+adjuWPr+eriw0KK+adjuW3p+eQsw0KK+adjuW8mOaYig0KK+adjuato+WFgw0KK+adjuato+W9pg0KK+adjuato+iDnA0KK+adjuato+ixqg0KK+adjuawuOaYjA0KK+adjuawuOmSpg0KK+adjuawuOm4vw0KK+adjueOieS9qQ0KK+adjueOieWNvw0KK+adjueOieeQsw0KK+adjueOiemTgw0KK+adjueri+S7gQ0KK+adjueri+W8ug0KK+adjuS6puaZtA0KK+adjuS7sueOhA0KK+adjuWFiQ0KK+adjuWFieelpQ0KK+adjuWFieWAog0KK+adjuWFhuaWjA0KK+adjuWQieaVjw0KK+adjuWQjeS8pg0KK+adjuWmguePjQ0KK+adjuWuh+W8mA0KK+adjuWuiOe7tA0KK+adjuWuieeQsw0KK+adjuaIkOaxiQ0KK+adjuaciemSpg0KK+adjue+vQ0KK+adjuiHs+eroA0KK+adjuS9kOWugQ0KK+adjuS8r+avhQ0KK+adjuWQm+W9pg0KK+adjuWQq+S7gQ0KK+adjuWmjeiOuQ0KK+adjuWuj+aWhw0KK+adjuWuj+a0sg0KK+adjuW7t+S8nw0KK+adjuW/l+aIkA0KK+adjuW/l+aYjg0KK+adjuW/l+WzsA0KK+adjuW/l+S8nw0KK+adjuW/l+eroA0KK+adjuW/l+mTrQ0KK+adjuW/l+m5jw0KK+adjuaym+adsA0KK+adjuaxquebmw0KK+adjuengOW5tA0KK+adjuengOeOsg0KK+adjuengOWNvw0KK+adjuengOWNjg0KK+adjuengOiYhQ0KK+adjuiCsuaenQ0KK+adjuiCsuW6rQ0KK+adjuiCsue+pA0KK+adjuiCsuiOuQ0KK+adjuiCsuiejQ0KK+adjuingeaxtg0KK+adjuS6muS8pg0KK+adjuS6rOahpg0KK+adjuS+nee6rw0KK+adjuS+neaBgg0KK+adjuS9s+axtg0KK+adjuS9s+aYjg0KK+adjuS9s+iKsw0KK+adjuS9s+iKrA0KK+adjuS9s+eOsg0KK+adjuS9s+eOsg0KK+adjuS9s+ePjQ0KK+adjuS9s+WAqQ0KK+adjuS9s+Wutg0KK+adjuS9s+aZgw0KK+adjuS9s+ecnw0KK+adjuS9s+iurQ0KK+adjuS9s+mbrw0KK+adjuS9s+iTiQ0KK+adjuS9s+W6hg0KK+adjuS9s+WEkg0KK+adjuS9s+ahpg0KK+adjuS9s+milg0KK+adjuS9s+iHuw0KK+adjuS9s+mclg0KK+adjuS9s+mcjw0KK+adjuS9s+mUrg0KK+adjuS9s+iTgQ0KK+adjuS+g+a0iw0KK+adjuS9qeS9qQ0KK+adjuS9qeiKnQ0KK+adjuS9qeWnvw0KK+adjuS9qeePig0KK+adjuS9qeeOsg0KK+adjuS9qeWAqQ0KK+adjuS9qeecnw0KK+adjuS9qemZtQ0KK+adjuS9qeS7qg0KK+adjuS9qeaZlA0KK+adjuS9qeiwlQ0KK+adjuS9qeWsrA0KK+adjuS+keWurA0KK+adjuWFtua+pw0KK+adjuWHveiKrA0KK+adjuWNk+mBkw0KK+adjuWSjOaYjA0KK+adjuWdpOaYjg0KK+adjuWdpOa6kA0KK+adjuWdpOmclg0KK+adjuWlh+WxlQ0KK+adjuWlh+e/sA0KK+adjuWtn+WdpA0KK+adjuWtn+ePig0KK+adjuWtn+WTsg0KK+adjuWtn+i9qQ0KK+adjuWtn+WEkg0KK+adjuWtn+milg0KK+adjuWtn+eBvw0KK+adjuWtn+eSgQ0KK+adjuWto+WNjg0KK+adjuWul+WdpA0KK+adjuWul+S8pg0KK+adjuWul+aBqQ0KK+adjuWul+S5iQ0KK+adjuWul+i0pA0KK+adjuWul+Wuqg0KK+adjuWul+milg0KK+adjuWul+e/sA0KK+adjuWul+mclg0KK+adjuWul+m4vw0KK+adjuWumui/nA0KK+adjuWunOaYjg0KK+adjuWunOiKsw0KK+adjuWunOa0sg0KK+adjuWunOeOsg0KK+adjuWunOWTsg0KK+adjuWunOWzuw0KK+adjuWunOe6rw0KK+adjuWunOa0gQ0KK+adjuWunOahpg0KK+adjuWunOmclg0KK+adjuWunOmfqQ0KK+adjuWunOWcnA0KK+adjuWum+eOsg0KK+adjuWum+iQjQ0KK+adjuWum+mdmQ0KK+adjuWwmui0pA0KK+adjuWyqeaZlg0KK+adjuWyseiTgQ0KK+adjuWys+WzsA0KK+adjuWys+ahpg0KK+adjuWys+m4vw0KK+adjuW5uOWonw0KK+adjuW5uOmUrQ0KK+adjuW/oOWSjA0KK+adjuW/oOS5iQ0KK+adjuW/oOmilg0KK+adjuW/teiSqA0KK+adjuaAoeaYjA0KK+adjuaAoeeOsg0KK+adjuaAoeiQsQ0KK+adjuaAoeWuvQ0KK+adjuaAoeaFpw0KK+adjuaAoeeRvg0KK+adjuaAoemilg0KK+adjuaAoeaXuw0KK+adjuaJv+Wulw0KK+adjuaJv+eSiw0KK+adjuaJv+m+mQ0KK+adjuaYk+S/rg0KK+adjuaYk+iwmg0KK+adjuaYjOi+vg0KK+adjuaYhuWujw0KK+adjuaYhui+vg0KK+adjuaYhum+mQ0KK+adjuaYjuWIqQ0KK+adjuaYjuaAoQ0KK+adjuaYjuadsA0KK+adjuaYjuW9pg0KK+adjuaYjuS/rg0KK+adjuaYjuWTsg0KK+adjuaYjuS5pg0KK+adjuaYjumSig0KK+adjuaYjui+vg0KK+adjuaYjua0gQ0KK+adjuaYjuWLiw0KK+adjuaYjuahpg0KK+adjuaYjuiwlQ0KK+adjuaYjumcng0KK+adjuaYjuWiiQ0KK+adjuaYgOiHuw0KK+adjuaYig0KK+adjuWNh+e/sA0KK+adjuS4nOW9pg0KK+adjuS4nOmahg0KK+adjuS4nOm+mQ0KK+adjuadsOWmgg0KK+adjuadvuWutg0KK+adjuaso+aAoQ0KK+adjuaso+aAoQ0KK+adjuaso+WTsg0KK+adjuaso+i+vg0KK+adjuaso+WEkg0KK+adjuaso+milg0KK+adjuaso+mcng0KK+adjuazleaxiQ0KK+adjuayu+WuiQ0KK+adjueOn+eOnw0KK+adjueOpeiOuQ0KK+adjuenieaclA0KK+adjueniee/sA0KK+adjuiKs+Wcuw0KK+adjuiKs+Wptw0KK+adjuiKs+S7qg0KK+adjuiKnee7qw0KK+adjuiKuOW9pg0KK+adjuiZjuWzsA0KK+adjumHkeazkw0KK+adjumHkemTgw0KK+adjumHkeahpg0KK+adjumVv+aWhw0KK+adjumVv+iNow0KK+adjumVv+e6rg0KK+adjumdkuadvg0KK+adjumdkumYsw0KK+adjumdnumcjw0KK+adjuS/oeaIkA0KK+adjuS/oeadsA0KK+adjuS/oeW+tw0KK+adjuS/oemilg0KK+adjuS/neiTgQ0KK+adjuS/iuWujw0KK+adjuS/iuWlhw0KK+adjuS/iuaYgA0KK+adjuS/iuW9pg0KK+adjuS/iuelug0KK+adjuS/iuS6vw0KK+adjuS/iuW+tw0KK+adjuS/iuavhQ0KK+adjuS/iui0pA0KK+adjuS/iui0pA0KK+adjuS/iui0pA0KK+adjuS/iuWLiw0KK+adjuS/iumUnA0KK+adjuS/nuaFpw0KK+adjuWGoOaciw0KK+adjuWGoOS7qg0KK+adjuWGoOiOuQ0KK+adjuWGoOiHuw0KK+adjuWLh+WugQ0KK+adjuWNl+Wohw0KK+adjuWTgeaFpw0KK+adjuWlleaemg0KK+adjuWlj+mUkA0KK+adjuWnv+S7qg0KK+adjuWnv+iOuQ0KK+adjuWogeWujw0KK+adjuWogeW+tw0KK+adjuWogemclg0KK+adjuWuo+iOuQ0KK+adjuW7uuawkQ0KK+adjuW7uuWujw0KK+adjuW7uumCpg0KK+adjuW7uuaYjg0KK+adjuW7uuWogQ0KK+adjuW7uuiLhw0KK+adjuW7uuWuvQ0KK+adjuW7uui0pA0KK+adjuW7uumUiw0KK+adjuW7uuahpg0KK+adjuW7uuWFtA0KK+adjuW7uuemsg0KK+adjuW9puWujw0KK+adjuW9puWunA0KK+adjuW9puS7qg0KK+adjuW9puiOuQ0KK+adjuW9puWEkg0KK+adjuW9pumclg0KK+adjuW+i+eOrg0KK+adjuaAneaAoQ0KK+adjuaAneiQsQ0KK+adjuaAneS7qg0KK+adjuaAneiOuQ0KK+adjuaAneiwlQ0KK+adjuaUvw0KK+adjuaUv+W/oA0KK+adjuaUv+WTsg0KK+adjuaUv+i+vg0KK+adjuaUv+i+iQ0KK+adjuaUv+aZlA0KK+adjuaUv+m+mQ0KK+adjuaYpeaenQ0KK+adjuaYpeeHlQ0KK+adjuaYree+jg0KK+adjuaYree6rA0KK+adjuaYoOiQsQ0KK+adjuaYseaYpQ0KK+adjuaYseejtw0KK+adjuafj+adiQ0KK+adjuafj+iTiQ0KK+adjuafj+i0pA0KK+adjuafj+eSgQ0KK+adjueCs+WdpA0KK+adjuePiuePig0KK+adjueVjOmUiw0KK+adjuebiOebiA0KK+adjuebiOa0gQ0KK+adjuebiOmilg0KK+adjuenkeazrw0KK+adjueni+aihQ0KK+adjueni+S7qg0KK+adjueni+m6nw0KK+adjue+jueOiQ0KK+adjue+juiKsw0KK+adjue+juS8pg0KK+adjue+jueRnA0KK+adjue+juS7qg0KK+adjue+juiOuQ0KK+adjue+jumUnA0KK+adjuiDpOeRtg0KK+adjuiHtOaFpw0KK+adjuiMguWFqA0KK+adjuiLseW/lw0KK+adjuiLseeRng0KK+adjuiLseeOrg0KK+adjuiZueS7qg0KK+adjui0nuWunA0KK+adjui0nuaFpw0KK+adjui/sOeUsw0KK+adjumDgeS8nw0KK+adjumHjei0pA0KK+adjumfs+aFpw0KK+adjuWAqQ0KK+adjuS/rum9kA0KK+adjuWTsuWuiQ0KK+adjuWTsue6rA0KK+adjuWutuWujw0KK+adjuWutuePjQ0KK+adjuWutuiQsQ0KK+adjuWutuixqg0KK+adjuWutuS+rA0KK+adjuWutuWFtA0KK+adjuWuueWptw0KK+adjuW4iOWqug0KK+adjuaCpuWYiQ0KK+adjuaMr+aYjA0KK+adjuaMr+ivmg0KK+adjuaMr+S7qg0KK+adjuaZi+ixqg0KK+adjuS5pua2tQ0KK+adjuagueWYiQ0KK+adjuahg+ajrg0KK+adjuazsOmclg0KK+adjua1qeW6rQ0KK+adjuS9qeWmgg0KK+adjuS9qeeQsw0KK+adjuS9qeWYiQ0KK+adjuebiuiNow0KK+adjuelluePjQ0KK+adjue0oOaihQ0KK+adjue6r+aFpw0KK+adjuiDvei/nA0KK+adjuiureS6vw0KK+adjuW5suaZlg0KK+adjuS8n+WQiQ0KK+adjuS8n+aBug0KK+adjuS8n+WYiQ0KK+adjuS8n+mimQ0KK+adjuWBpea6kA0KK+adjuWBpemTrQ0KK+adjuWbveWFqA0KK+adjuWbveW8ug0KK+adjuWbveWNjg0KK+adjuWbveeRng0KK+adjuWbveiNow0KK+adjuWbvee7tA0KK+adjuWbvemTtg0KK+adjuWbveWFtA0KK+adjuWfuuW8mA0KK+adjuWfueWNjg0KK+adjuWpieecnw0KK+adjuWpieeRng0KK+adjuW0h+S7gQ0KK+adjuW0h+ixqg0KK+adjuW6t+atow0KK+adjuW9qeiOuQ0KK+adjuWQr+W8mA0KK+adjuWQr+aypw0KK+adjuaVj+WQiQ0KK+adjuaVj+WYiQ0KK+adjuaVj+m+mQ0KK+adjua4heWQnw0KK+adjua3keWQmw0KK+adjua3keiKrA0KK+adjua3kei0ng0KK+adjua3keiMuQ0KK+adjua3keaDoA0KK+adjua3keWNjg0KK+adjua3keiTiQ0KK+adjua3kemdmQ0KK+adjua2teWvjA0KK+adjuelpeeRng0KK+adjue7jee7rg0KK+adjue/juavkw0KK+adjui/nuWzsA0KK+adjumbquiQjQ0KK+adjuadsOWmgg0KK+adjuWHr+ahog0KK+adjuiDnOmbhA0KK+adjuS5lOmTrg0KK+adjuWymueQpg0KK+adjuaDoOiKrA0KK+adjuaDoOePoA0KK+adjuaDoOeQsw0KK+adjuaDoOmbrw0KK+adjuaZtOmbrw0KK+adjuaZuuaAoQ0KK+adjuaZuuW8ug0KK+adjuaZuue7tA0KK+adjuajrg0KK+adjua5mOahpg0KK+adjuealueOsg0KK+adjuWWhOWQjA0KK+adjuiInOWNjg0KK+adjuWSj+eniw0KK+adjumAuOaJjQ0KK+adjumAuOe+pA0KK+adjui/m+emjw0KK+adjumahuWNjg0KK+adjumbheeOqw0KK+adjumbheeOsg0KK+adjumbheaihQ0KK+adjumbheWptw0KK+adjumbheaDoA0KK+adjumbheaDoA0KK+adjumbheiQjQ0KK+adjumbhembrw0KK+adjumbheeHlQ0KK+adjumbr+eHlQ0KK+adjuS8oOWQmw0KK+adjuaEj+mbrw0KK+adjuaDsw0KK+adjuaWsOazvQ0KK+adjuavk+ecnw0KK+adjua6kA0KK+adjueRnuaWhw0KK+adjueRnui0ng0KK+adjueRnuWNjg0KK+adjueRnumqkA0KK+adjuS5iembhA0KK+adjuWco+eQsA0KK+adjuivl+S8nw0KK+adjuivl+altw0KK+adjumBk+aelw0KK+adjuWYiQ0KK+adjuWYieaelw0KK+adjuWYieWHjA0KK+adjuWYiei9qQ0KK+adjuWYieWNjg0KK+adjuWYiemTrQ0KK+adjuWYiem4vw0KK+adjuWugeiKsw0KK+adjuiNo+iMgg0KK+adjuiNo+mpsA0KK+adjuaxieelug0KK+adjueip+Wptw0KK+adjuemj+iTiQ0KK+adjue7tOS7gQ0KK+adjue7tOS8pg0KK+adjue7tOahog0KK+adjuiCh+asow0KK+adjuW/l+aYjg0KK+adjumTreWRqA0KK+adjumTreavkw0KK+adjum4o+Wuhw0KK+adjum9kOiKsw0KK+adjuW5v+elgQ0KK+adjuW+t+a1tw0KK+adjuW6huWujw0KK+adjuW6huWNjg0KK+adjuaFp+iKrA0KK+adjuaFp+e+jg0KK+adjuaFp+ePoA0KK+adjuaFp+S7qg0KK+adjuavheS/oQ0KK+adjuiOuea0gQ0KK+adjui0pOa3pg0KK+adjuWtpuaYjg0KK+adjuWuquaWjA0KK+adjuaZk+Wmrg0KK+adjuaZk+eOsg0KK+adjuaZk+Wymg0KK+adjuaZk+iPgQ0KK+adjuaZk+amlQ0KK+adjuazveiCsg0KK+adjueHleeOsg0KK+adjueSn+mDgQ0KK+adjue/sOmdkg0KK+adjuWFtOiInA0KK+adjuiVmeWmgg0KK+adjuiVmeiKuA0KK+adjuixq+WHoQ0KK+adjumUpuWNhw0KK+adjumUpuiOsg0KK+adjumdmeWunA0KK+adjumdmeaAoQ0KK+adjumdmeaAoQ0KK+adjumdmee+jg0KK+adjumdmeiTiQ0KK+adjum+meeUnw0KK+adjum+mem6nw0KK+adjueIteiHow0KK+adjuiBquWysw0KK+adjuiIhumRqw0KK+adjum4v+W/lw0KK+adjum4v+i+vg0KK+adjuabnOWtmA0KK+adjuiwqOW4hg0KK+adjueGlOmYoQ0KK+adjummpeWmgg0KK+adjueQvOiLsQ0KK+adjuS4veaenQ0KK+adjuS4veePoA0KK+adjuWuneeOiQ0KK+adjuiAgOawkQ0KK+adjummqOaAoQ0KK+adjuaHv+Wmgg0KK+adjuadg+Wutg0KK+adjuWKreWGmw0KK+adjuaXu+WNhw0KK+adjuaXu+eOrg0KK+adjuaYtuasow0KK+adjuiLueaFiA0KK+adjua2tOaxnQ0KK+adjuWgqA0KK+adjue1nA0KK+adjueOrueQqg0KK+adjuetseS6kQ0KK+adjumSsOmbrw0KK+adjumdk+WuuA0KK+adjumToOS7uw0KK+adjuWQmw0KK+adnOaWh+adsA0KK+adnOawkeadsA0KK+adnOWFqOaelw0KK+adnOW/l+i0pA0KK+adnOS9s+ixqg0KK+adnOWtn+aUvw0KK+adnOWum+iwlQ0KK+adnOaJv+mRqw0KK+adnOWNh+e/sA0KK+adnOiKs+aUvw0KK+adnOS/iuavhQ0KK+adnOWogeW7tw0KK+adnOW9pumclg0KK+adnOeCs+m+mQ0KK+adnOe+juaFpw0KK+adnOWutuaYjA0KK+adnOS9qeivlw0KK+adnOWpiembrw0KK+adnOa3kemTrg0KK+adnOmYs+Wchg0KK+adnOWYieeOsg0KK+adnOe7tOS/rg0KK+adnOeHleWNjg0KK+adnOiAgOS7gQ0KK+aymeato+aCpg0KK+ayiOWjq+adsA0KK+ayiOS7geadsA0KK+ayiOaWh+elpQ0KK+ayiOS4lumXtQ0KK+ayiOato+W+tw0KK+ayiOeri+S7gQ0KK+ayiOWmguWzsA0KK+ayiOS9kee/sA0KK+ayiOWQm+eSkA0KK+ayiOW/l+W3nQ0KK+ayiOW/l+m+mQ0KK+ayiOaxtuiQjQ0KK+ayiOiCsuaYnw0KK+ayiOS+nemilg0KK+ayiOS9s+aFpw0KK+ayiOS9qembrw0KK+ayiOWdpOWNhw0KK+ayiOWul+W6hg0KK+ayiOWunOiTgQ0KK+ayiOaAoeS8tg0KK+ayiOaYjOaYjg0KK+ayiOaYjuiQsQ0KK+ayiOaso+Wtpg0KK+ayiOenieiwig0KK+ayiOiKuOiQqQ0KK+ayiOS/oeWing0KK+ayiOS/iue/lA0KK+ayiOWGoOWujw0KK+ayiOWnv+aFpw0KK+ayiOW7uuaIkA0KK+ayiOW7uuW+tw0KK+ayiOaBkuWFiQ0KK+ayiOaYrei0pA0KK+ayiOafj+WuvQ0KK+ayiOebiOiPgQ0KK+ayiOe+juWonw0KK+ayiOmDgeW6tw0KK+ayiOWTsuaghw0KK+ayiOWutuiNow0KK+ayiOaMr+WFtA0KK+ayiOebiuaJvw0KK+ayiOe6r+Wmgg0KK+ayiOWbvemTqA0KK+ayiOaZqOmSnw0KK+ayiOa3keWNjg0KK+ayiOaDoOiPgQ0KK+ayiOiIkueQsw0KK+ayiOmbheaDoA0KK+ayiOaZluW6rQ0KK+ayiOeRnumSpg0KK+ayiOWco+aYhg0KK+ayiOmBk+iuug0KK+ayiOWYieiVmQ0KK+ayiOe7tOavkw0KK+ayiOW+t+WOmg0KK+ayiOWtpuaIkA0KK+ayiOiVmeWQmw0KK+ayiOm4v+a0sg0KK+ayiOWmj+ecnw0KK+ayiOetseS6kQ0KK+axquWkp+S8pg0KK+axquW3p+eOsg0KK+axqueZvui9qQ0KK+axquengOeHlQ0KK+axquWtn+a2tQ0KK+axquaAoeWNjg0KK+axqumdkuiTiQ0KK+axquWGoOWujw0KK+axque+jueOiQ0KK+axquWutuiOuQ0KK+axquWQr+aWhw0KK+axqumbheiQjQ0KK+axqumdluWbvQ0KK+axquW6huePjQ0KK+axquS4veWonw0KK+eLhOWutua6pw0KK+iwt+azk+mBkw0KK+i9puebiuWNjg0KK+i+m+Wul+a9rQ0KK+i+m+WlleaIkA0KK+i+m+iPgeWopQ0KK+i+m+aXu+S/rg0KK+mCouiDveaWhw0KK+mYruaWh+elpQ0KK+mYruWQleecnw0KK+mYruS/oeWuqg0KK+mYruaYseWujw0KK+mYrumjnumTrQ0KK+mYrua3keiMuQ0KK+mYruaWkOeRnA0KK+mYrumbheS8pg0KK+mYruedv+elpQ0KK+mYrum5j+ehlQ0KK+WNk+Wjq+WLiw0KK+WNk+awuOWggg0KK+WNk+W/l+W/oA0KK+WNk+S9s+W6hg0KK+WNk+Wum+WQmw0KK+WNk+aYjuS7qg0KK+WNk+iKs+Wmgg0KK+WNk+S/iuWujw0KK+WNk+W7uumahg0KK+WNk+iLseWTsg0KK+WNk+WutualoA0KK+WNk+iureiJrw0KK+WNk+a3keWqmw0KK+WNk+acnemXtQ0KK+WNk+eRnuW0hw0KK+WNk+W/l+mahg0KK+WNk+mdmeWmgg0KK+WNk+eUnw0KK+WRqOS4iumSpg0KK+WRqOWjq+adsA0KK+WRqOWkp+mSpw0KK+WRqOWtkOaVrA0KK+WRqOS4reWFtA0KK+WRqOW/g+aAoQ0KK+WRqOaWh+aUvw0KK+WRqOaWh+mbhQ0KK+WRqOaciOmcnA0KK+WRqOS4luS4sA0KK+WRqOS7o+WwiQ0KK+WRqOW8mOaVjw0KK+WRqOato+WbvQ0KK+WRqOawuOmbhA0KK+WRqOeOieiOsg0KK+WRqOeri+S8nw0KK+WRqOS7suWHrw0KK+WRqOWQiem+mQ0KK+WRqOW5tOebmw0KK+WRqOiHs+iKrA0KK+WRqOS9keelrw0KK+WRqOS8r+mRqw0KK+WRqOWQm+m4vw0KK+WRqOWtneiKsw0KK+WRqOWuj+eRnA0KK+WRqOW7t+mahg0KK+WRqOW/l+W/oA0KK+WRqOW/l+a4hQ0KK+WRqOW/l+WLiw0KK+WRqOaxtuePig0KK+WRqOengOaZjw0KK+WRqOiCsuS8tg0KK+WRqOiCsua2pg0KK+WRqOS6muasow0KK+WRqOS9s+aAoQ0KK+WRqOS9s+iTiQ0KK+WRqOS9s+mchw0KK+WRqOS9qeWunA0KK+WRqOS9qeS7qg0KK+WRqOWNj+WIqQ0KK+WRqOWlh+iTiQ0KK+WRqOWtn+iwig0KK+WRqOWul+W7ug0KK+WRqOWunOiKsw0KK+WRqOWum+iQsQ0KK+WRqOW5uOiTiQ0KK+WRqOaAoeS8tg0KK+WRqOaAoeWQmw0KK+WRqOaAoemCpg0KK+WRqOaAoeS/qg0KK+WRqOaYjuW8mA0KK+WRqOaYjuW9uw0KK+WRqOaYjui+iQ0KK+WRqOadsA0KK+WRqOaso+iKuA0KK+WRqOaso+iOuQ0KK+WRqOeOn+iQsQ0KK+WRqOiKs+Wmgg0KK+WRqOiKnea2tQ0KK+WRqOmHkeeHlQ0KK+WRqOmdkuiTiQ0KK+WRqOS/oei+iQ0KK+WRqOS/iuWujw0KK+WRqOS/iuixqg0KK+WRqOWGoOS8tg0KK+WRqOWTgeWmjQ0KK+WRqOWogeWRiA0KK+WRqOW7uuWRiA0KK+WRqOW7uumTrQ0KK+WRqOW9puWykQ0KK+WRqOaAneW+rg0KK+WRqOaUv+e/sA0KK+WRqOaYn+WQjA0KK+WRqOafj+eUqw0KK+WRqOeOsg0KK+WRqOebiOadiQ0KK+WRqOeni+iQjQ0KK+WRqOe+juaYpQ0KK+WRqOiHtOS4ng0KK+WRqOmDgeaWhw0KK+WRqOmfpue/sA0KK+WRqOWHjOaCjA0KK+WRqOWon+Wmgg0KK+WRqOWutua1qQ0KK+WRqOWutuW6hg0KK+WRqOWzsOatow0KK+WRqOaMr+WHrw0KK+WRqOS5puWptw0KK+WRqOazsOWuiQ0KK+WRqOS9qeWmgg0KK+WRqOelkOaFpw0KK+WRqOiAv+ihjA0KK+WRqOS8n+iMuQ0KK+WRqOWbvemdlg0KK+WRqOWpieeQsw0KK+WRqOaVj+mSsA0KK+WRqOa3keWonw0KK+WRqOa3keeHlQ0KK+WRqOWHr+aFpw0KK+WRqOaDoOiOsg0KK+WRqOaZuuaVjw0KK+WRqOa4neePig0KK+WRqOWSj+iurQ0KK+WRqOmAuOWFsA0KK+WRqOmbheWptw0KK+WRqOS6keajoA0KK+WRqOaVrOaZjw0KK+WRqOS4mumSpg0KK+WRqOeFjOiAvw0KK+WRqOeRnualoA0KK+WRqOS5ieWzsA0KK+WRqOWco+aFpw0KK+WRqOijleS4sA0KK+WRqOmBk+azkw0KK+WRqOWYieadvg0KK+WRqOWYieW6hg0KK+WRqOaxiea6kA0KK+WRqOemj+WHpA0KK+WRqOe/oOiKrA0KK+WRqOS6v+S/oQ0KK+WRqOaFp+Wnvw0KK+WRqOS5kOWkqQ0KK+WRqOi0pOW+tw0KK+WRqOWuqumCpg0KK+WRqOaZk+iQjQ0KK+WRqOeHleebiA0KK+WRqOiejemqjw0KK+WRqOmdmembrw0KK+WRqOiBquWuhw0KK+WRqOmVh+mCpg0KK+WRqOS4veeOsg0KK+WRqOWFsOiKsw0KK+WRqOaXu+mdmQ0KK+WRqOaXhueRnA0KK+WRqOeOrg0KK+WRqOmSsOe/lA0KK+Wtn+WkqeelpQ0KK+Wtn+W6huWuiQ0KK+Wto+iCsuazvQ0KK+WumOWkp+W8mA0KK+WumOiCsuiQsQ0KK+WumOiKs+Wmgg0KK+WumOiLkeadsA0KK+WumOWGnOWTsg0KK+WwmuS5pg0KK+WxiOmBk+WImg0KK+Wys+e7tOmTpA0KK+aIv+WFhumahg0KK+S6juWutuePjQ0KK+aYk+i2s+ecnw0KK+aYk+aZuuWBpQ0KK+aYjOWtn+e/sA0KK+S4nOaFjueQsw0KK+ael+S4gOeCnA0KK+ael+S4iuW/lw0KK+ael+S5heWMgA0KK+ael+S6juatow0KK+ael+S6juWptw0KK+ael+S6juelrw0KK+ael+WNg+Wqmg0KK+ael+WNg+avkw0KK+ael+Wjq+WKmw0KK+ael+Wjq+mDgQ0KK+ael+Wjq+a4ig0KK+ael+Wjq+adsA0KK+ael+Wjq+aJrA0KK+ael+Wjq+i2ig0KK+ael+Wjq+WGnA0KK+ael+Wkp+WFgw0KK+ael+Wkp+elpQ0KK+ael+Wkp+mSpw0KK+ael+Wls+a7oQ0KK+ael+WtkOeOhA0KK+ael+WtkOS8nw0KK+ael+WtkOadsA0KK+ael+WtkOaDoA0KK+ael+WtkOWSjw0KK+ael+WtkOWLpA0KK+ael+WtkOe7rg0KK+ael+WtkOeRhA0KK+ael+Wwj+eQqg0KK+ael+WxseS6kQ0KK+ael+aJjeWFgw0KK+ael+S4reW8ug0KK+ael+S5i+iPgQ0KK+ael+S7geW9pg0KK+ael+S7geadsA0KK+ael+S7i+S4gA0KK+ael+WFg+aBug0KK+ael+WNh+adgw0KK+ael+WkqeawkQ0KK+ael+W/g+Wmgg0KK+ael+W/g+Wymg0KK+ael+aWh+S4rQ0KK+ael+aWh+WFqA0KK+ael+aWh+azsw0KK+ael+aWh+enkQ0KK+ael+aWh+Wwhg0KK+ael+aWh+elpQ0KK+ael+aWh+iDnA0KK+ael+aWh+aWrw0KK+ael+aWh+eQpg0KK+ael+aWh+mbrw0KK+ael+aWh+W+tw0KK+ael+aWh+iBqg0KK+ael+aWh+WqhA0KK+ael+aciOiLsQ0KK+ael+acqOWFtA0KK+ael+S4luW5sw0KK+ael+S4luaYjA0KK+ael+S4luiKsw0KK+ael+S4luWzsA0KK+ael+S4luS8nw0KK+ael+S4lua3hw0KK+ael+S4lue/lA0KK+ael+S4luWvsA0KK+ael+S4u+aBqQ0KK+ael+S7peaZqA0KK+ael+S7leS8nw0KK+ael+WKoOWGoA0KK+ael+WPr+mSpw0KK+ael+W3qOa3mQ0KK+ael+W3p+aihQ0KK+ael+W5s+iLkQ0KK+ael+W8mOWNhw0KK+ael+W8mOelpQ0KK+ael+ato+S4gA0KK+ael+ato+Wulw0KK+ael+ato+WGmw0KK+ael+ato+S8nw0KK+ael+ato+WHrw0KK+ael+ato+emjw0KK+ael+awkeWfug0KK+ael+awuOaYjA0KK+ael+awuOS/oQ0KK+ael+awuOa4hQ0KK+ael+awuOelpQ0KK+ael+awuOajrg0KK+ael+awuOW6hg0KK+ael+awuOaZnw0KK+ael+eOieWmgg0KK+ael+eOieiKsw0KK+ael+eOieeOsg0KK+ael+eOieS9qQ0KK+ael+eOieaVjw0KK+ael+eOieWptw0KK+ael+eOieiPgQ0KK+ael+eOieS6kQ0KK+ael+eOiem+mQ0KK+ael+efs+mahg0KK+ael+eri+S7uw0KK+ael+eri+S8pg0KK+ael+eri+S8nw0KK+ael+eri+e+pA0KK+ael+eri+mRqw0KK+ael+S7suWogQ0KK+ael+S7sOacmw0KK+ael+WFhuebiA0KK+ael+WQieS8rw0KK+ael+WQjuWUrw0KK+ael+WmguaVjw0KK+ael+Wuh+aYnw0KK+ael+WuiOW+tw0KK+ael+Wuiee8hw0KK+ael+acieS/ig0KK+ael+eZvuaJrA0KK+ael+iHs+aJvw0KK+ael+ihjOiwpg0KK+ael+S9keWuiQ0KK+ael+S9keePig0KK+ael+S9keWEkg0KK+ael+S9kemUug0KK+ael+S8r+Wysw0KK+ael+S8r+Wzuw0KK+ael+S8r+WLiw0KK+ael+S8tui0ng0KK+ael+WFi+WogQ0KK+ael+WFi+WvsA0KK+ael+WRiOS7uw0KK+ael+WQm+WunA0KK+ael+WQm+eOsg0KK+ael+WQm+eRnA0KK+ael+WQm+e/sA0KK+ael+WQn+Wnvw0KK+ael+Wdh+mDgQ0KK+ael+WmmeWQmw0KK+ael+WmmeWopQ0KK+ael+WmjeWmpA0KK+ael+WtneWFqA0KK+ael+WtneWuqg0KK+ael+Wuj+WdpA0KK+ael+Wuj+S6rg0KK+ael+Wuj+mfpg0KK+ael+Wuj+W5sg0KK+ael+Wuj+i+vg0KK+ael+Wuj+WEkg0KK+ael+Wuj+mUnA0KK+ael+WykOebig0KK+ael+W7t+WQiQ0KK+ael+W7t+i+iQ0KK+ael+W/l+awkQ0KK+ael+W/l+aIkA0KK+ael+W/l+iJrw0KK+ael+W/l+W/oA0KK+ael+W/l+aYjg0KK+ael+W/l+adsA0KK+ael+W/l+iKrA0KK+ael+W/l+WLhw0KK+ael+W/l+eahw0KK+ael+W/l+WzsA0KK+ael+W/l+S8nw0KK+ael+W/l+Wdmg0KK+ael+W/l+aJrA0KK+ael+W/l+aFjg0KK+ael+W/l+ixqg0KK+ael+W/l+ixqg0KK+ael+W/l+mTrQ0KK+ael+W/l+WEkg0KK+ael+W/l+milg0KK+ael+W/l+iwiw0KK+ael+W/l+m+mQ0KK+ael+W/l+m4vw0KK+ael+W/l+m4vw0KK+ael+adjumTrQ0KK+ael+adkOS/ig0KK+ael+aym+WQmw0KK+ael+aym+iTgQ0KK+ael+eBvOm+mQ0KK+ael+engOWdqg0KK+ael+engOiKsQ0KK+ael+engOS/kA0KK+ael+engOeOsg0KK+ael+engOe+jg0KK+ael+engOWNvw0KK+ael+engOecnw0KK+ael+engOmbrw0KK+ael+engOWHpA0KK+ael+engOmilg0KK+ael+engOmmqA0KK+ael+iCsuS7lQ0KK+ael+iCsuatow0KK+ael+iCsuawkQ0KK+ael+iCsueUnw0KK+ael+iCsueriw0KK+ael+iCsuWQjQ0KK+ael+iCsuWmgg0KK+ael+iCsuaIkA0KK+ael+iCsuWujw0KK+ael+iCsuaYgA0KK+ael+iCsuePig0KK+ael+iCsui/mw0KK+ael+iCsue+pA0KK+ael+iCsuiQsQ0KK+ael+iCsuiTkw0KK+ael+iCsuaFpw0KK+ael+iCsui0pA0KK+ael+iCsumUiw0KK+ael+iCsum6nw0KK+ael+iJr+S/ig0KK+ael+ingeaYjg0KK+ael+iwt+WzsA0KK+ael+i0neePig0KK+ael+mHjOeHlQ0KK+ael+S6q+eDqA0KK+ael+S+neebiA0KK+ael+S+nea0gQ0KK+ael+S+neeShw0KK+ael+S9s+eUnw0KK+ael+S9s+Wujw0KK+ael+S9s+iJrw0KK+ael+S9s+aAoQ0KK+ael+S9s+asow0KK+ael+S9s+S6rQ0KK+ael+S9s+ebiA0KK+ael+S9s+i0ng0KK+ael+S9s+mZtQ0KK+ael+S9s+mYsw0KK+ael+S9s+e7rg0KK+ael+S9s+iTiQ0KK+ael+S9s+S6vw0KK+ael+S9s+W6hg0KK+ael+S9s+aFpw0KK+ael+S9s+aFpw0KK+ael+S9s+a0gQ0KK+ael+S9s+iOuQ0KK+ael+S9s+i0pA0KK+ael+S9s+ahpg0KK+ael+S9s+eHlQ0KK+ael+S9s+iHuw0KK+ael+S9s+mdmQ0KK+ael+S9s+m4vw0KK+ael+S9s+a9kw0KK+ael+S9qeWQmw0KK+ael+S9qeaAoQ0KK+ael+S9qeiKrA0KK+ael+S9qei0ng0KK+ael+S9qembrw0KK+ael+S9qeiTiQ0KK+ael+S9qeiTiQ0KK+ael+S9qeaFpw0KK+ael+S9qeahpg0KK+ael+S9qemUpg0KK+ael+S9qeeShw0KK+ael+S+kemdkg0KK+ael+WFtuS+rw0KK+ael+WFtumUiw0KK+ael+WNj+adkQ0KK+ael+WSjOengA0KK+ael+WdpOeUnw0KK+ael+WdpOmfpg0KK+ael+WdpOaigQ0KK+ael+WdpOmcgg0KK+ael+Wlh+aooQ0KK+ael+Wtn+S7lQ0KK+ael+Wtn+WQmw0KK+ael+Wtn+S6rQ0KK+ael+Wtn+iQsQ0KK+ael+Wtn+W+tw0KK+ael+Wtn+i0pA0KK+ael+Wtn+milg0KK+ael+Wtn+iRsw0KK+ael+Wto+iLlw0KK+ael+Wto+eDqA0KK+ael+Wul+W7tw0KK+ael+Wul+mhug0KK+ael+Wul+S6vw0KK+ael+Wul+W6hg0KK+ael+Wul+i0pA0KK+ael+Wul+i+iQ0KK+ael+Wul+azvQ0KK+ael+Wul+iwnw0KK+ael+WumOmAuA0KK+ael+WunOWQmw0KK+ael+WunOeOqw0KK+ael+WunOePjQ0KK+ael+WunOWcow0KK+ael+WunOiTiQ0KK+ael+WunOaFpw0KK+ael+WunOi0pA0KK+ael+WunOahpg0KK+ael+WunOmTrg0KK+ael+WunOmdmQ0KK+ael+WunOiTgQ0KK+ael+WunA0KK+ael+Wum+eRnA0KK+ael+Wum+ahpg0KK+ael+WwmuiJrw0KK+ael+Wwmumilg0KK+ael+WyseiTiQ0KK+ael+WyseiejQ0KK+ael+Wys+S7qg0KK+ael+Wys+W2mQ0KK+ael+W5uOiTiQ0KK+ael+W6mueriw0KK+ael+W+geWNqw0KK+ael+W/oOWysw0KK+ael+W/oOW6hg0KK+ael+aAoQ0KK+ael+aAoeaxnQ0KK+ael+aAoeS8tg0KK+ael+aAoeWIqQ0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWQmw0KK+ael+aAoeWdhw0KK+ael+aAoeengA0KK+ael+aAoei+sA0KK+ael+aAoeiKsw0KK+ael+aAoemdkg0KK+ael+aAoeiOiQ0KK+ael+aAoeiPgQ0KK+ael+aAoeiQsQ0KK+ael+aAoeWuvQ0KK+ael+aAoeWEkg0KK+ael+aAoeekvQ0KK+ael+aJv+Wysw0KK+ael+aJv+avhQ0KK+ael+S6juWmrg0KK+ael+aYk+ePig0KK+ael+aYjOW8mA0KK+ael+aYjOi0pA0KK+ael+aYhueUsA0KK+ael+aYhuaooQ0KK+ael+aYhueFhw0KK+ael+aYjueUnw0KK+ael+aYjuW/lw0KK+ael+aYjuWulw0KK+ael+aYjuadsA0KK+ael+aYjuW9pg0KK+ael+aYjuiOiQ0KK+ael+aYjuaeqw0KK+ael+aYjuW/lw0KK+ael+aYjuW+tw0KK+ael+aYjuavhQ0KK+ael+aYjue6rA0KK+ael+aYjui+iQ0KK+ael+aYjuWLiw0KK+ael+aYjueOrw0KK+ael+aYgOm+mQ0KK+ael+WNh+awuA0KK+ael+WNh+m+mQ0KK+ael+S4nOiMgg0KK+ael+S4nOavhQ0KK+ael+adsOasow0KK+ael+advuWwpw0KK+ael+aso+eriw0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aAoQ0KK+ael+aso+aUvw0KK+ael+aso+aFiA0KK+ael+aso+S7qg0KK+ael+aso+S7qg0KK+ael+aso+avhQ0KK+ael+aso+iwig0KK+ael+aso+milg0KK+ael+aso+S4vQ0KK+ael+atpuiwmg0KK+ael+azk+WQmw0KK+ael+azseengA0KK+ael+eJp+WPsA0KK+ael+eOn+WQmw0KK+ael+eOn+Wmjw0KK+ael+eOq+WQmw0KK+ael+eOq+iTiQ0KK+ael+enieazkw0KK+ael+enieiOuQ0KK+ael+iKs+S4gA0KK+ael+iKs+Wmgg0KK+ael+iKs+Wmgg0KK+ael+iKs+W3ng0KK+ael+iKs+iKsw0KK+ael+iKs+aWsA0KK+ael+iKs+S7qg0KK+ael+iKneWNiQ0KK+ael+iKneWugQ0KK+ael+iKrOiKsw0KK+ael+iKuOaZlg0KK+ael+iKt+etoA0KK+ael+mHkeS7lQ0KK+ael+mHkeaYjg0KK+ael+mHkeiOsg0KK+ael+mHkem+mQ0KK+ael+mVv+W/lw0KK+ael+mVv+W6hg0KK+ael+mbqOWGnA0KK+ael+mdkuW/lw0KK+ael+mdkuaFpw0KK+ael+mdkumcng0KK+ael+S6ruS7gQ0KK+ael+S/oeWFqA0KK+ael+S/oeS9kQ0KK+ael+S/oeWujw0KK+ael+S/oeW7tw0KK+ael+S/oeW7tg0KK+ael+S/oeS5iQ0KK+ael+S/neaIkA0KK+ael+S/iuS7sg0KK+ael+S/iuWuhw0KK+ael+S/iuS9kQ0KK+ael+S/iuS8rw0KK+ael+S/iuWujw0KK+ael+S/iuWujw0KK+ael+S/iuW7tw0KK+ael+S/iueUqw0KK+ael+S/iueUtw0KK+ael+S/iuiogA0KK+ael+S/iuadsA0KK+ael+S/iuadsA0KK+ael+S/iumAuA0KK+ael+S/iui+vg0KK+ael+S/iuixqg0KK+ael+S/iumtgQ0KK+ael+S/iui0pA0KK+ael+S/ium6nw0KK+ael+S/kOS6rQ0KK+ael+S/nuWing0KK+ael+WGoOWuhw0KK+ael+WGoOWQnw0KK+ael+WGoOWujw0KK+ael+WGoOengA0KK+ael+WGoOeRmw0KK+ael+WGoOWEkg0KK+ael+WLh+aIkA0KK+ael+WNl+Wujw0KK+ael+WTgeWunA0KK+ael+WlleaIkA0KK+ael+WlleS8tg0KK+ael+WlleengA0KK+ael+WlleWymg0KK+ael+WljuWQmw0KK+ael+Wnv+S8tg0KK+ael+Wnv+WQvg0KK+ael+Wnv+WmmQ0KK+ael+Wnv+Wptw0KK+ael+WogeWQjQ0KK+ael+WogeWIqQ0KK+ael+WogeW7tw0KK+ael+WogeiJrw0KK+ael+Wuo+S7uw0KK+ael+Wuo+mzjA0KK+ael+W7uuS4gA0KK+ael+W7uuS7sg0KK+ael+W7uuWuhw0KK+ael+W7uuaIkA0KK+ael+W7uuWQvg0KK+ael+W7uuWujw0KK+ael+W7uuWujw0KK+ael+W7uuW7tw0KK+ael+W7uuW/lw0KK+ael+W7uueUtw0KK+ael+W7uuiJrw0KK+ael+W7uumCpg0KK+ael+W7uuWNhw0KK+ael+W7uuWNjg0KK+ael+W7uuW9sA0KK+ael+W7uuiOuQ0KK+ael+W7uuWLiw0KK+ael+W9puaWhw0KK+ael+W9puWQjQ0KK+ael+W9puS6qA0KK+ael+W9puS8tg0KK+ael+W9puWtnQ0KK+ael+W9puWujw0KK+ael+W9pueUqw0KK+ael+W9puS6qw0KK+ael+W9puWYiQ0KK+ael+W9puWFtA0KK+ael+aAneWQnw0KK+ael+aAneWNjg0KK+ael+aAneS6sg0KK+ael+aBkuehlQ0KK+ael+aBque+pA0KK+ael+aUv+S9jQ0KK+ael+aUv+iJrw0KK+ael+aUv+a1qQ0KK+ael+aUv+ijlQ0KK+ael+aUv+S7qg0KK+ael+aUv+e6rA0KK+ael+aUv+mUiw0KK+ael+aUv+e/sA0KK+ael+aYpeW5tA0KK+ael+aYpee+jg0KK+ael+aYreWuhw0KK+ael+aYreW/lw0KK+ael+aYremTrQ0KK+ael+aYoOaxnQ0KK+ael+aYn+aZqA0KK+ael+aYseWQmw0KK+ael+aYseS8nw0KK+ael+afkeadjw0KK+ael+afj+W3ng0KK+ael+afj+S8uA0KK+ael+afj+Wujw0KK+ael+afj+adkQ0KK+ael+afj+Wfjg0KK+ael+afj+iNow0KK+ael+afj+e/sA0KK+ael+aziea0iw0KK+ael+a0qumchA0KK+ael+S4uuaWhw0KK+ael+eCs+eFjA0KK+ael+ePiuWmgg0KK+ael+eOsuiHsw0KK+ael+ePjeWmgg0KK+ael+eah+WIqQ0KK+ael+ebiOaIkA0KK+ael+ebiOWQmw0KK+ael+ebiOW/lw0KK+ael+ebiOiQsQ0KK+ael+eliOWdhw0KK+ael+enkeWujw0KK+ael+eni+iJrw0KK+ael+eni+aDoA0KK+ael+eni+iPig0KK+ael+eni+iOsg0KK+ael+e6quWFgw0KK+ael+e+juWmgg0KK+ael+e+juS8tg0KK+ael+e+juWQmw0KK+ael+e+juWQnw0KK+ael+e+juengA0KK+ael+e+juaAoQ0KK+ael+e+jueOsg0KK+ael+e+juePoA0KK+ael+e+juaZug0KK+ael+e+juWNjg0KK+ael+e+juaFpw0KK+ael+e+jum+hA0KK+ael+e+v+Wmjw0KK+ael+iHtOWQmw0KK+ael+iHtOmilg0KK+ael+iMguebmw0KK+ael+iLseeUtw0KK+ael+iLseadsA0KK+ael+iLsemTrQ0KK+ael+iZueWmgg0KK+ael+iZueWujw0KK+ael+i0ng0KK+ael+i0nuW7tg0KK+ael+mDgeaWhw0KK+ael+mDgeasow0KK+ael+mDgeiKrA0KK+ael+mDgeaVjw0KK+ael+mDgeajrg0KK+ael+mDgembhA0KK+ael+mDgeWFsA0KK+ael+mfpuS4ng0KK+ael+mfpuW7tw0KK+ael+mfpuWYiQ0KK+ael+mmmeWQmw0KK+ael+WAjeS8ig0KK+ael+WAqeWmgg0KK+ael+WAqeaFpw0KK+ael+S/ruawkQ0KK+ael+S8puaXrQ0KK+ael+WOn+WQiA0KK+ael+WTsuawkQ0KK+ael+WTsuS7uw0KK+ael+WTsuWujw0KK+ael+WTsuijlQ0KK+ael+WTsui+iQ0KK+ael+Won+Wmgg0KK+ael+WoieWtnA0KK+ael+WutuW8mA0KK+ael+WutuW8mA0KK+ael+WutueUnw0KK+ael+WutuWmgg0KK+ael+WutuS6qA0KK+ael+WutuWLhw0KK+ael+WutuaDoA0KK+ael+WutuaZlg0KK+ael+WutuWcow0KK+ael+Wutuelrw0KK+ael+WutumTrQ0KK+ael+WutuW6hg0KK+ael+Wutui0pA0KK+ael+WutuiVmQ0KK+ael+WutuaWjA0KK+ael+WuueS7ng0KK+ael+WuueWcow0KK+ael+WxleWcow0KK+ael+Wzu+aZlg0KK+ael+WzsOW5tA0KK+ael+W4iOe+pA0KK+ael+W6reeOrg0KK+ael+aBqeWFiQ0KK+ael+aBqemciA0KK+ael+aMr+a1qQ0KK+ael+aMr+aXuA0KK+ael+aMr+a7qA0KK+ael+aXtuaWsA0KK+ael+aZi+WFqA0KK+ael+aZi+eVvw0KK+ael+aZj+Wmgg0KK+ael+aZj+eomg0KK+ael+S5puW8mA0KK+ael+S5puiBvw0KK+ael+S5pualtw0KK+ael+S5puavhQ0KK+ael+S5puazvQ0KK+ael+ahk+i1iw0KK+ael+ahguePoA0KK+ael+agvOWmgw0KK+ael+azsOWuiQ0KK+ael+azsOe7tA0KK+ael+a1muadsA0KK+ael+a1qee+pA0KK+ael+S9qeWmgg0KK+ael+S9qeiPgQ0KK+ael+S9qeWEkg0KK+ael+ebiuW8mA0KK+ael+ebiuWmgg0KK+ael+ebiui/kA0KK+ael+ecn+e7rg0KK+ael+elkOemvg0KK+ael+elkOamhg0KK+ael+elkOeRhA0KK+ael+eqiOaEjw0KK+ael+e0oOWmgg0KK+ael+e0oOi0ng0KK+ael+e0oOWNjg0KK+ael+e6r+Wmgg0KK+ael+e6r+a5mA0KK+ael+iAmOW+tw0KK+ael+iAv+W8mA0KK+ael+iAv+ecnw0KK+ael+iMtQ0KK+ael+i1t+e/jg0KK+ael+i9qemiiQ0KK+ael+mrmOa6kA0KK+ael+S8n+awkQ0KK+ael+S8n+W9rA0KK+ael+S8n+ahog0KK+ael+S8n+W+tw0KK+ael+WBpemdkg0KK+ael+WUr+WHrw0KK+ael+Wbveasow0KK+ael+WbveelpQ0KK+ael+Wbvemahg0KK+ael+WbveWLiw0KK+ael+WfueWwpw0KK+ael+WpieWQmw0KK+ael+WpieWptw0KK+ael+WpieeRnA0KK+ael+W0h+Wuhw0KK+ael+W0h+avhQ0KK+ael+W6t+WugQ0KK+ael+WQr+S6ug0KK+ael+WQr+iIqg0KK+ael+WQr+S4sA0KK+ael+aVj+ijlQ0KK+ael+aihemZhw0KK+ael+a4heWQiQ0KK+ael+a4heS6kQ0KK+ael+a3keWQmw0KK+ael+a3keiKrA0KK+ael+a3keeOsg0KK+ael+a3kei0ng0KK+ael+a3keWonw0KK+ael+a3keWopQ0KK+ael+a3keaihQ0KK+ael+a3keWqmw0KK+ael+a3keaDoA0KK+ael+a3keiQjQ0KK+ael+a3keWNjg0KK+ael+a3kembrw0KK+ael+a3keS7qg0KK+ael+a3kemTrg0KK+ael+a2teeRnA0KK+ael+ebm+adsA0KK+ael+iOmOaAoQ0KK+ael+iNt+iKsw0KK+ael+mbquiQjQ0KK+ael+adsOWcow0KK+ael+WImw0KK+ael+iDnOadsA0KK+ael+WNmumahg0KK+ael+Wptw0KK+ael+WvjOe+jg0KK+ael+aDoOaWhw0KK+ael+aDoOaAoQ0KK+ael+aDoOe+jg0KK+ael+aDoOaVjw0KK+ael+aDoOiQjQ0KK+ael+aDoOmbrw0KK+ael+aDoOeQhw0KK+ael+aVpueFjA0KK+ael+aZr+awkQ0KK+ael+aZr+awmw0KK+ael+aZuuiDvQ0KK+ael+aZuua4hQ0KK+ael+aZuuS4mg0KK+ael+acnw0KK+ael+ajrueUsA0KK+ael+a4r+i0tQ0KK+ael+a5mOaDoA0KK+ael+a5suiIkg0KK+ael+eQpuWbvQ0KK+ael+eZu+WxsQ0KK+ael+e0q+iPgQ0KK+ael+iIkuaFpw0KK+ael+WNjuS4gA0KK+ael+inhuWwig0KK+ael+WSj+e/lA0KK+ael+i2hQ0KK+ael+mAuOaYgA0KK+ael+mAuOWzsA0KK+ael+mAuOiPgQ0KK+ael+mAuOWEkg0KK+ael+i/m+ebig0KK+ael+mSp+mZtg0KK+ael+mbgeaVjw0KK+ael+mbheWQmw0KK+ael+mbheiKrA0KK+ael+mbheeOsg0KK+ael+mbheS8pg0KK+ael+mbhea3sw0KK+ael+mbheWNmg0KK+ael+mbheaDoA0KK+ael+mbheeQqg0KK+ael+mbheiQjQ0KK+ael+mbheWNjg0KK+ael+mbhembrw0KK+ael+mbheaFpw0KK+ael+mbheaFpw0KK+ael+mbheiwpg0KK+ael+mbr+Wuow0KK+ael+S6keatow0KK+ael+mhuuWuiQ0KK+ael+mhuuWFtA0KK+ael+WLpOa3mQ0KK+ael+W1qeWxsQ0KK+ael+aEj+S8pg0KK+ael+aEj+iFvg0KK+ael+eIseaDoA0KK+ael+aVrOaWhw0KK+ael+aVrOa4ig0KK+ael+aVrOe/lA0KK+ael+aWsOWHoQ0KK+ael+aWsOWPkQ0KK+ael+aZlueakw0KK+ael+aloOajiw0KK+ael+auv+S4gA0KK+ael+avk+ePig0KK+ael+avk+i2hQ0KK+ael+a6kOaysw0KK+ael+eFp+eUtw0KK+ael+eFnOW6rQ0KK+ael+eFjOi9qQ0KK+ael+eElemSpg0KK+ael+eRnuaYjg0KK+ael+eRnuWutg0KK+ael+eRnumbqg0KK+ael+eRnuW+tw0KK+ael+eRnuWFsA0KK+ael+eRnOiOiQ0KK+ael+ebn+adsA0KK+ael+eluuWLiw0KK+ael+eomuaJrA0KK+ael+e7j+e7tA0KK+ael+S5ieWzsA0KK+ael+S5ieadsA0KK+ael+S5ieaZug0KK+ael+S5iembhA0KK+ael+e+pOWzsA0KK+ael+e+pOiAgA0KK+ael+Wco+aAoQ0KK+ael+Wco+aBqQ0KK+ael+Wco+adsA0KK+ael+Wco+aZug0KK+ael+Wco+mSpw0KK+ael+Wco+iAgA0KK+ael+iLh+iQjQ0KK+ael+ijleaYlQ0KK+ael+ijleWdmg0KK+ael+ijleiDnA0KK+ael+ijleiInA0KK+ael+ivl+WHoQ0KK+ael+ivl+WAqQ0KK+ael+ivl+a4ig0KK+ael+ivl+mbrw0KK+ael+ivl+iLuQ0KK+ael+i/kOa1qQ0KK+ael+mTieaZug0KK+ael+mbjee/lA0KK+ael+mdluS/rg0KK+ael+miguWNmg0KK+ael+m8juakjQ0KK+ael+WYieemvg0KK+ael+WYieS/oQ0KK+ael+WYieePjQ0KK+ael+WYieS8nw0KK+ael+WYieeQqg0KK+ael+WYiee+pA0KK+ael+WYieaFpw0KK+ael+WYiem4vw0KK+ael+aOtOW9pg0KK+ael+iNo+mSpg0KK+ael+axiQ0KK+ael+axieaWjA0KK+ael+edv+aXuA0KK+ael+eip+aDoA0KK+ael+ehleWEkg0KK+ael+eyvua5mw0KK+ael+e7tOePig0KK+ael+e7tOiOiQ0KK+ael+e/oOiQjQ0KK+ael+iTk+e+mg0KK+ael+ixquW9pg0KK+ael+mTrea0sg0KK+ael+mTreeFjA0KK+ael+mTreeGmw0KK+ael+WHpOePjQ0KK+ael+m9kOiUmg0KK+ael+S7quiZuQ0KK+ael+WinuWogQ0KK+ael+W5v+S5iQ0KK+ael+W+t+aZiw0KK+ael+W6huWNhw0KK+ael+W6huiTiQ0KK+ael+aFp+WQmw0KK+ael+aFp+aAoQ0KK+ael+aFp+ePig0KK+ael+aFp+e+jg0KK+ael+aFp+ePoA0KK+ael+aFp+a3sw0KK+ael+aFp+iQjQ0KK+ael+aFp+WNjg0KK+ael+aFp+mbrw0KK+ael+aFp+S4vQ0KK+ael+aGrOiJrw0KK+ael+a+hOazvQ0KK+ael+iOueiKsw0KK+ael+eRvuWFsA0KK+ael+iUmueOsg0KK+ael+WNq+Wcow0KK+ael+i0pOW+lw0KK+ael+mAguS5iw0KK+ael+WEkuawkQ0KK+ael+Wtpumahg0KK+ael+WuquaUvw0KK+ael+W/hua3sw0KK+ael+aZk+WQmw0KK+ael+aZk+iKsw0KK+ael+aZk+eOsg0KK+ael+aZk+Wptw0KK+ael+aZk+WNjg0KK+ael+aZk+WYiQ0KK+ael+aZk+WouA0KK+ael+azveS5iQ0KK+ael+eHleaihQ0KK+ael+eSnw0KK+ael+milg0KK+ael+miluiOiQ0KK+ael+miluiBqg0KK+ael+WFtOmSig0KK+ael+iVmea3hw0KK+ael+ixq+S6rQ0KK+ael+mUpuS8tg0KK+ael+mUpumahg0KK+ael+mUpum4vw0KK+ael+mdmeWQnw0KK+ael+mdmeWunA0KK+ael+mdmeaAoQ0KK+ael+mdmeaAoQ0KK+ael+mdmeiKrA0KK+ael+mdmembrw0KK+ael+mdmeS7qg0KK+ael+m+meeUnw0KK+ael+aHi+W3ng0KK+ael+iBquS7gQ0KK+ael+iwpuWmmQ0KK+ael+mqj+mAuA0KK+ael+m4v+WQmw0KK+ael+m4v+W9rA0KK+ael+m4v+i+vg0KK+ael+m4v+mUnA0KK+ael+ekvOW8ug0KK+ael+S4sOiInA0KK+ael+eAm+aWhw0KK+ael+eQvOiKsw0KK+ael+mfteWonw0KK+ael+S4veWQmw0KK+ael+S4vee+jg0KK+ael+S4veePoA0KK+ael+S4veWNjg0KK+ael+S4veiTiQ0KK+ael+WuneengA0KK+ael+e7p+W5sw0KK+ael+iAgOWNlw0KK+ael+iUvOaWhw0KK+ael+W3jem+mQ0KK+ael+aHv+WQmw0KK+ael+m6nw0KK+ael+WkhuWuvg0KK+ael+iKiuS6qA0KK+ael+aXu+mAuA0KK+ael+eCheW1mg0KK+ael+WnneWdhw0KK+ael+aYtuWuiQ0KK+ael+ePiOWmpA0KK+ael+WArOS4lg0KK+ael+e6vueOrg0KK+ael+eQh+mbrw0KK+ael+ajqOS7uw0KK+ael+eQrumXtQ0KK+ael+eQrOeRnA0KK+ael+aakOW6rQ0KK+ael+eCnOm4vw0KK+ael+eOruerow0KK+ael+etseeOsg0KK+ael+etseiPgQ0KK+ael+iQqeeHlQ0KK+ael+mSsOW6rQ0KK+ael+mSsOWHrw0KK+ael+mSsOaFpw0KK+ael+eSh+aAoQ0KK+ael+mcmeecnw0KK+ael+mppw0KK+atpuiJr+aWhw0KK+atpuaVrOWSjA0KK+elgeS5ieWbvQ0KK+iKsee+veiWhw0KK+iKsembheaWkA0KK+WIneiLpeWHoQ0KK+mCteaWh+azsA0KK+mCteW/l+S4sA0KK+mCteWllemSpw0KK+mCtemDgeaDoA0KK+mCteiDnOa3uw0KK+mCteeIseeOnw0KK+mCteaAgOW+tw0KK+mCseS4gOecnw0KK+mCseS6juWAqQ0KK+mCseWNg+e7rg0KK+mCseWjq+aBrQ0KK+mCseWkp+WImg0KK+mCseWtkOaeqw0KK+mCseWwj+Wrmg0KK+mCseS7geadsA0KK+mCseWkqeWujw0KK+mCseaWh+eOiQ0KK+mCseaWh+afjw0KK+mCseaWh+mSpg0KK+mCseaWh+m4vw0KK+mCseS4luawkQ0KK+mCseS7leadsA0KK+mCseW5vOWqmg0KK+mCseato+elpQ0KK+mCseawuOWYiQ0KK+mCseeOieeOsg0KK+mCseeri+WbvQ0KK+mCseS7sumftQ0KK+mCseWQjeS7lQ0KK+mCseWuieWPsA0KK+mCseacieiwhQ0KK+mCseWQm+a4hQ0KK+mCseW/l+WFiQ0KK+mCseW/l+W8ug0KK+mCseW/l+aWjA0KK+mCseengOiLsQ0KK+mCseengOmdmQ0KK+mCseiJr+avhQ0KK+mCseS9s+advg0KK+mCseS9s+mijQ0KK+mCseWtn+aciA0KK+mCseWumumCpg0KK+mCseW7tum+hA0KK+mCseaAoeS5lA0KK+mCseaAoeelrw0KK+mCseaYjOijlQ0KK+mCseaYjueQqg0KK+mCseaso+aAoQ0KK+mCseazk+W9sA0KK+mCseiKs+WunA0KK+mCsemHkeeUnw0KK+mCseS/oeebig0KK+mCseS/oei+iQ0KK+mCseS/iuaYjA0KK+mCseS/iuaZug0KK+mCseS/iuiNow0KK+mCseS/iumclg0KK+mCseWGoOeRnA0KK+mCseWTgeWNjg0KK+mCseWegueroA0KK+mCseWlleaYjg0KK+mCseWlleedvw0KK+mCseWnv+aDoA0KK+mCseW7uuS4rQ0KK+mCseW7uuivmg0KK+mCseW7uumLkA0KK+mCseW9pueRmw0KK+mCseaAneWYiQ0KK+mCseaUv+a2jA0KK+mCseaYremSpg0KK+mCseaYseiHuw0KK+mCseafj+eRnA0KK+mCseafj+mclg0KK+mCseePgOelpQ0KK+mCseebiOajoA0KK+mCsee6quWNjg0KK+mCsee+juaDoA0KK+mCsee+juaFpw0KK+mCseiHtOmilg0KK+mCseWGm+a1qQ0KK+mCsemDgea3kQ0KK+mCsemHjeWuqg0KK+mCseWTsueQsw0KK+mCseWutui0pA0KK+mCseaMr+WzsA0KK+mCseahgumTgw0KK+mCsea1qeW9sA0KK+mCseS9qee7rg0KK+mCsee6r+eOrg0KK+mCseS8n+S8pg0KK+mCseWBpembhA0KK+mCseWbveaBrQ0KK+mCseWbvea0gQ0KK+mCseWfueeRnA0KK+mCseWpieWshQ0KK+mCseWQr+e/lA0KK+mCseaVj+iVmQ0KK+mCsea4hem+mQ0KK+mCsea3keWonw0KK+mCsea3keeQtA0KK+mCsea3keaFpw0KK+mCsee7jea6og0KK+mCseiOieWptw0KK+mCseWHrw0KK+mCseWIm+S/rQ0KK+mCseWvjOa6kA0KK+mCseaDoOWopQ0KK+mCseaDoOivlw0KK+mCseaZr+iQjQ0KK+mCseaZuuadsA0KK+mCsea5mOS6kQ0KK+mCsee7kw0KK+mCseWSj+a3sw0KK+mCsemAuOe+pA0KK+mCsembheiKrA0KK+mCsembheiOiQ0KK+mCsembhembrw0KK+mCsembheiMnA0KK+mCseWchuaDoA0KK+mCseaVrOmbrw0KK+mCseavk+eOsg0KK+mCseeEleaWhw0KK+mCseeRnuaihQ0KK+mCseebn+eQhw0KK+mCseWco+aWhw0KK+mCseWco+aWjA0KK+mCseivl+a4ig0KK+mCseivl+eQgQ0KK+mCsemdlumbrw0KK+mCseWYieadsA0KK+mCseWYieaFpw0KK+mCseeip+aWvQ0KK+mCsee7tOWpiQ0KK+mCsemftuiOuQ0KK+mCseW+t+WHrw0KK+mCseaFp+Wmgg0KK+mCseaFp+Wptw0KK+mCsee6rOW5sw0KK+mCseaZk+eOsg0KK+mCseagkeWbvQ0KK+mCsemdmeWunA0KK+mCsemdmembrw0KK+mCsemUuuS7gQ0KK+mCseS4sOelpQ0KK+mCseeQvOaDoA0KK+mCseeQvOaFpw0KK+mCsemfteWugQ0KK+mCseS4veiLsQ0KK+mCseWuneiQsQ0KK+mCsee7p+iOuQ0KK+mCseiVtOmdmQ0KK+mCsemmqOS7qg0KK+mCsem+hOmikA0KK+mCseaYvuahkw0KK+mCseaYvumclg0KK+mCseWntee7qw0KK+mCseeQrOa3kQ0KK+mCseakv+WHrw0KK+mCseetsembrw0KK+mCsemSsOaWkA0KK+mCseeejQ0KK+mHkeWjq+S4ug0KK+mHkeS6rOiNow0KK+mHkeaYjui+iQ0KK+mHkeaUv+iwmg0KK+mHkeePnueQsw0KK+mHkeWLpA0KK+mHkeejig0KK+S+r+WKm+e7tA0KK+S+r+aWh+WTsg0KK+S+r+ato+m4vw0KK+S+r+WmguiKrA0KK+S+r+Wuj+aYjA0KK+S+r+engOWmgg0KK+S+r+S9s+WFuA0KK+S+r+WHveengA0KK+S+r+Wys+Wujw0KK+S+r+aYhuWKqQ0KK+S+r+aso+e/sA0KK+S+r+S/oeWuhw0KK+S+r+WSuOS7sA0KK+S+r+W9puS8uA0KK+S+r+afj+mdkg0KK+S+r+iHtOS4rQ0KK+S+r+e0oOS6kQ0KK+S+r+a4iumTrQ0KK+S+r+WNmuWFgw0KK+S+r+aZr+WLiw0KK+S+r+i0tem+hA0KK+S+r+mbhembrw0KK+S+r+WYieePjQ0KK+S+r+W6hui+sA0KK+S+r+mdmeaxnQ0KK+S+r+S4veaFpw0KK+S+r+mciOmdkg0KK+S/nuS9s+WHoQ0KK+S/nuaziumclg0KK+S/nuiDveaWuQ0KK+S/numbheWptw0KK+S/nuiKiuiNnw0KK+WnnOWFg+mSpw0KK+WnnOWQjuaAoQ0KK+WnnOWuj+iNow0KK+WnnOS9qeS8tg0KK+WnnOaYjuWujw0KK+WnnOiKneaAoQ0KK+WnnOW7uumTrQ0KK+WnnOWgiemijQ0KK+WnnOWHr+adsA0KK+WnnOaZuumSpw0KK+WnnOmbheWptw0KK+WnnOS5ieaBug0KK+WnnOWinueCqw0KK+WnnOagkemUpg0KK+WnnOekvOixqg0KK+WnnOaXu+Wnlw0KK+WnmuWPiOaWhw0KK+WnmuaWuea0gQ0KK+Wnmueri+S4iQ0KK+WnmuWFi+mSpw0KK+WnmuW/l+Wuqg0KK+WnmuS9s+aFpw0KK+WnmuWul+actA0KK+WnmuaAoeWFsA0KK+WnmumHkea6kA0KK+WnmuWogeWuhw0KK+WnmuebiOS7uw0KK+Wnmue0oOWFsA0KK+WnmuWHr+aWhw0KK+WnmueQm+WvjA0KK+WnmueRnui0pA0KK+WnmuW+t+m6nw0KK+WnmuS4veS6ug0KK+Wuo+W/l+WHjA0KK+W+i+aMr+aJrA0KK+aWveWkp+e7tA0KK+aWveaWhw0KK+aWveaWh+ixqg0KK+aWveWPr+mahg0KK+aWveeOieWTgQ0KK+aWveWQjeeOpQ0KK+aWveWuh+mqjw0KK+aWveeZvuahpg0KK+aWveS8r+WunA0KK+aWveWtneW+tw0KK+aWveWuj+azvQ0KK+aWveW/l+ixqg0KK+aWveengOWumw0KK+aWveiCsueRnA0KK+aWveS9s+WQmw0KK+aWveS9qeWQmw0KK+aWveS9qeWNjg0KK+aWveWtn+Wujw0KK+aWveWunOWRiA0KK+aWveWum+ebtA0KK+aWveaAoeWmgg0KK+aWveaAoemTgw0KK+aWveaYjuWmjQ0KK+aWveadsOadvg0KK+aWveeOq+WQmw0KK+aWvembqOS9kA0KK+aWveS/iuWQjQ0KK+aWveS/iui0pA0KK+aWveWllea2tQ0KK+aWveW7uuWuhw0KK+aWveW9pueUqw0KK+aWveaUv+ixqg0KK+aWveafj+Wmgg0KK+aWveeah+aXrQ0KK+aWvee+jueRmw0KK+aWvemDgeiVmQ0KK+aWveaMr+WdpA0KK+aWvee0oOWNvw0KK+aWveWBpem4vw0KK+aWveaVj+eUtw0KK+aWvea3keaDoA0KK+aWvembquWnvw0KK+aWveWNmuWFgw0KK+aWveWvjOa1qQ0KK+aWveaDoOeQqg0KK+aWveaZuuWLhw0KK+aWveeoi+WHrw0KK+aWveWSj+eEtg0KK+aWvemSp+S8pg0KK+aWvembheWonw0KK+aWvembr+eQqg0KK+aWveS5ieaypw0KK+aWveWYieeQqg0KK+aWveaxieW1mA0KK+aWveW/l+ixqg0KK+aWveaFp+WQmw0KK+aWveeRvuS8pg0KK+aWveaZk+mbrw0KK+aWvemdmeaAoQ0KK+aWveeQvOWmgg0KK+aWvemmqOi0tQ0KK+aWveaXu+WunA0KK+aWveeOrueRnA0KK+afr+WKm+ixqg0KK+afr+WFg+WHrw0KK+afr+aWh+elpQ0KK+afr+S4lui0pA0KK+afr+awuOW/oA0KK+afr+WFqOebig0KK+afr+S8r+W9pg0KK+afr+Wuj+WogQ0KK+afr+W/l+aYjg0KK+afr+aym+W/lw0KK+afr+iJr+iVmQ0KK+afr+S9s+engA0KK+afr+S9qeWQmw0KK+afr+WdpOaYjg0KK+afr+Wul+S8rw0KK+afr+Wum+WQmw0KK+afr+aAoeeOnw0KK+afr+aYjue/sA0KK+afr+aso+S7qg0KK+afr+mHkeadjw0KK+afr+S/iuWQiQ0KK+afr+S/iumahg0KK+afr+Wuo+Wuhw0KK+afr+W9puaXrQ0KK+afr+aYreeUnw0KK+afr+ebiOWmgg0KK+afr+iZueWmgg0KK+afr+azsOWQjQ0KK+afr+aVj+ebmw0KK+afr+a3keaDoA0KK+afr+i/nueUsA0KK+afr+WNmuWFgw0KK+afr+WvjOiurg0KK+afr+aDoOiPsQ0KK+afr+aZuuS7gQ0KK+afr+aji+ajow0KK+afr+mXteaWhw0KK+afr+mbheWNjg0KK+afr+avk+iQjQ0KK+afr+WYieaxtg0KK+afr+eip+aYrQ0KK+afr+WHpOS7qg0KK+afr+WuquiLjQ0KK+afr+mUpueUtw0KK+afr+eQvOiTpQ0KK+afr+aXu+iJrw0KK+afpeaFp+eQsw0KK+afs+WmguW6rQ0KK+afs+S9qeWQmw0KK+afs+W7uuiJrw0KK+afs+iMueiQjQ0KK+afs+aji+WFgw0KK+afs+WYiei9qQ0KK+afs+m5pOadvg0KK+auteaYjuWujw0KK+autemAuOi9qQ0KK+a0quS4gOS4rQ0KK+a0quWKm+WjuQ0KK+a0quS6jumXtQ0KK+a0quWNg+aDoA0KK+a0quWNg+eQpg0KK+a0quWjq+iCsg0KK+a0quWjq+adsA0KK+a0quWkp+S4ug0KK+a0quWtkOWptw0KK+a0quWwj+aDoA0KK+a0quWFg+aWjA0KK+a0quaWh+aYjg0KK+a0quaWh+WHrw0KK+a0quaWh+i0pA0KK+a0quS4luWNhw0KK+a0quS4luWYiQ0KK+a0quWKoOi+vg0KK+a0quato+WFiQ0KK+a0quawuOaYjA0KK+a0queOieiKsw0KK+a0queOieWptw0KK+a0queOieiSqA0KK+a0quS6pua0gQ0KK+a0quWFieS6vw0KK+a0quWQjeihoQ0KK+a0quWuieS/kA0KK+a0queZvui0pA0KK+a0quS9keWNhw0KK+a0quWQm+elpQ0KK+a0quWuj+aUvw0KK+a0quW/l+eUnw0KK+a0quW/l+aYjg0KK+a0quW/l+mbhA0KK+a0quW/l+mTrQ0KK+a0quadkemTrQ0KK+a0quengOiKsw0KK+a0quengOiOuQ0KK+a0quiJr+asow0KK+a0quS+neeQqg0KK+a0quS9s+eQsw0KK+a0quS9qeS8tg0KK+a0quWdpOmUnA0KK+a0quWtn+eRtg0KK+a0quWul+axiQ0KK+a0quWunOiJrw0KK+a0quWwmumTrQ0KK+a0quW/oOWcow0KK+a0quaAoeecnw0KK+a0quaYjuWMlg0KK+a0quaYjuS8nw0KK+a0quaYjum+mQ0KK+a0quaso+WNhw0KK+a0quiKt+a8qg0KK+a0quS/oeWYiQ0KK+a0quS/iumbhA0KK+a0quWuo+eruQ0KK+a0quaAneeQqg0KK+a0quaUv+mciA0KK+a0quafj+WugQ0KK+a0queni+WNjg0KK+a0que+juiQjQ0KK+a0quiMgumbhA0KK+a0quiLseadsA0KK+a0qumDgeW6rQ0KK+a0qumHjeWNvw0KK+a0quWutueQqg0KK+a0quaCpueOsg0KK+a0quaMr+ebig0KK+a0quaMr+mTrQ0KK+a0quagueWNjg0KK+a0quS9qeiKsw0KK+a0quS9qee7rg0KK+a0quiAv+aZug0KK+a0quS8n+WTsg0KK+a0quS8n+adsA0KK+a0quS8n+iwlQ0KK+a0quWBpeWzsA0KK+a0quabvOePig0KK+a0quWbveWTsg0KK+a0quWbveaDnw0KK+a0quWbvee/lA0KK+a0quWbveiAgA0KK+a0quWfueS8pg0KK+a0quWpiee6uQ0KK+a0quW0h+aBqQ0KK+a0quaYhuWBpQ0KK+a0quW+oeW9lw0KK+a0quWQr+S8nw0KK+a0quaVj+iKsw0KK+a0quaVj+mbhA0KK+a0qua4heWBpQ0KK+a0qua3kei0ng0KK+a0qua3keaDoA0KK+a0qua3kea3qQ0KK+a0que7jeaWhw0KK+a0que/juWuvg0KK+a0qumbquiKsw0KK+a0quiDnOWHrw0KK+a0quaDoOaWhw0KK+a0quaDoOajiw0KK+a0quaZtOaZtA0KK+a0quaZuui0pA0KK+a0queQpuaDoA0KK+a0quiPgemahg0KK+a0quiPsee0qw0KK+a0qumahuaZug0KK+a0qumbheiLkw0KK+a0qumbhembrw0KK+a0qumhuueUtw0KK+a0quaFiOS8tg0KK+a0quaBuuW7tw0KK+a0quahoumCpg0KK+a0quavk+WrlA0KK+a0queFjOWHrw0KK+a0queRnuWggg0KK+a0queRnuiTiQ0KK+a0queRnum4vw0KK+a0quS4h+W+lw0KK+a0quWco+aBqQ0KK+a0quiQsemUiw0KK+a0quijleeEnA0KK+a0quivl+mbhQ0KK+a0qumdluWHrw0KK+a0quWYieWcuw0KK+a0quWYieePig0KK+a0quWYieeQsw0KK+a0quWYieiOsg0KK+a0quWYiemqjw0KK+a0quWugQ0KK+a0quiNo+i+iQ0KK+a0queUhOiLoQ0KK+a0quehleS8nw0KK+a0que7rg0KK+a0que7tOiJrw0KK+a0que7tOazvQ0KK+a0quiCh+W9pg0KK+a0quW/l+W8ug0KK+a0qumTreS9kA0KK+a0qumTremYsw0KK+a0qumTremUug0KK+a0qumtgeempw0KK+a0quWuveazsA0KK+a0quW6humTrQ0KK+a0quaFp+eOsg0KK+a0quaFp+iQjQ0KK+a0quiOueePjQ0KK+a0quWEkuaYjg0KK+a0quaZk+Wymg0KK+a0quiVmeW/gw0KK+a0qumdmeaAoQ0KK+a0quWjsOmTqA0KK+a0quekvOWQmw0KK+a0quiJuuiPgQ0KK+a0quS4veWnvw0KK+a0quS4vemSpw0KK+a0que7p+i0pA0KK+a0quS/quWHpA0KK+a0quWKreWFgw0KK+a0quaZouaDhw0KK+a0quaWjOWHrw0KK+a0quathuaAoQ0KK+a0quetseS9qQ0KK+a0qumSsOaosQ0KK+ebuOWtn+ixqg0KK+e6quS6uueOrg0KK+e6quaWh+mSpg0KK+e6quWQieWmgg0KK+e6quS8r+eSgQ0KK+e6quW/l+mclg0KK+e6quS9s+WunA0KK+e6quWul+mclg0KK+e6quaAoeWptw0KK+e6quazk+Wwpw0KK+e6qumVv+WFtA0KK+e6quWogee+vQ0KK+e6quebiOW3ng0KK+e6quelluixqg0KK+e6qua3keiKsw0KK+e6quWNmuaVjw0KK+e6quaZuuS7gQ0KK+e6qumSp+mXsw0KK+e6qumhuuWFtA0KK+e6qumTreWdpA0KK+e6quaZk+aBqQ0KK+e6quWFsOa0gQ0KK+iDoeS4geWFgw0KK+iDoeWwj+iQjQ0KK+iDoeW/g+aFpw0KK+iDoeaWh+eRnA0KK+iDoeS4luiejQ0KK+iDoeato+e/sA0KK+iDoeeOieaFpw0KK+iDoeWQjOS6rg0KK+iDoeaIkOeroA0KK+iDoeW7t+WogQ0KK+iDoeW/l+mTrQ0KK+iDoeiCsue7tA0KK+iDoeS9s+elrw0KK+iDoeWumuWuhw0KK+iDoeaAoeiKsw0KK+iDoeS4nOWNhw0KK+iDoeiKs+aFiA0KK+iDoemHkeeBjw0KK+iDoeW4nQ0KK+iDoeeOsuWpiQ0KK+iDoeiLpeeUtw0KK+iDoeS/rueRgA0KK+iDoeWutuiNow0KK+iDoeWxlemTrQ0KK+iDoeaMr+S4rQ0KK+iDoeS5pue7tQ0KK+iDoee6r+iPgQ0KK+iDoeW5sumUiw0KK+iDoeaOiOa3sw0KK+iDoea3keWQmw0KK+iDoea3kembhQ0KK+iDoeWHr+aZug0KK+iDoeWNmuegmg0KK+iDoeaDoOWptw0KK+iDoeaZr+mbrw0KK+iDoeaZuumTrQ0KK+iDoeero+egmg0KK+iDoei0teaciA0KK+iDoembheWmjQ0KK+iDoembheaZug0KK+iDoemhuumahg0KK+iDoeavk+WPkQ0KK+iDoeeRnua0mQ0KK+iDoeivl+iPgQ0KK+iDoeWYieecnw0KK+iDoeeip+WqnA0KK+iDoei1q+W7tw0KK+iDoeaFp+Wmgg0KK+iDoeWuqumclg0KK+iDoemdmeiLkQ0KK+iDoeeQvOaWhw0KK+iDoeiAgOS7gQ0KK+iDoeaHv+W/gw0KK+iDoeeCnOePjQ0KK+iMg+S4reWogQ0KK+iMg+aWh+aUvw0KK+iMg+S4lueSiw0KK+iMg+eOieiQsQ0KK+iMg+WQieW6hg0KK+iMg+Wdh+aymw0KK+iMg+eUq+Wulw0KK+iMg+S9s+mbrw0KK+iMg+aYjuS4rQ0KK+iMg+WGoOS8nw0KK+iMg+WnnOW9puWmgg0KK+iMg+WnnOaFp+aAoQ0KK+iMg+eni+mcng0KK+iMg+mDgeWmgg0KK+iMg+Wutuivmg0KK+iMg+aMr+aWhw0KK+iMg+aMr+m6nw0KK+iMg+iAlemtgQ0KK+iMg+WbveWfug0KK+iMg+a3keeOsg0KK+iMg+iOieiLkw0KK+iMg+WNmuW9sA0KK+iMg+aJrOWunA0KK+iMg+aJrOiFvg0KK+iMg+aZuumSpg0KK+iMg+mSp+adsA0KK+iMg+avk+i0ng0KK+iMg+eRnuelpQ0KK+iMg+ivl+a8qg0KK+iMg+axieWQmw0KK+iMg+e6sui0pA0KK+iMg+aFp+Wmgg0KK+iMg+aZk+aAoQ0KK+iMg+eAmuaWhw0KK+iMg+iAgOiBqg0KK+iMg+eQh+eShw0KK+iLl+WQjuadsA0KK+iuoeerueWuhw0KK+mfpuS6uueRnA0KK+mfpuW/l+m4vw0KK+mfpuahguS7gQ0KK+WAmeaYuui+sA0KK+WAqueOiem+mQ0KK+WAquW/l+m4vw0KK+WAquWogei/nA0KK+WAquS8n+aZug0KK+WAqua3keWptw0KK+WAqueRnuacnw0KK+WAquaFp+ePig0KK+WHjOS4luiKsw0KK+WHjOaYjuW+tw0KK+WHjOmbquaDoA0KK+WHjOaFp+iQjQ0KK+WUkOWNg+aDoA0KK+WUkOaWh+i0pA0KK+WUkOawuOWFtA0KK+WUkOS9nOixqg0KK+WUkOmCpuazsA0KK+WUkOaYjuW/lw0KK+WUkOaAnee7tA0KK+WUkOiLseWonA0KK+WUkOS9qeePig0KK+WUkOWbveW/oA0KK+WUkOa3keiKrA0KK+WUkOacnee6rA0KK+WUkOmbheeHlQ0KK+WUkOS5ieWwpw0KK+WUkOWYiee+mg0KK+WUkOmftumcmQ0KK+WUkOaZk+W+rg0KK+WUkOiqieeOqw0KK+Wkj+ato+mCpg0KK+Wkj+iJr+eOiQ0KK+Wkj+aYpemmmQ0KK+Wkj+a3keiTiQ0KK+Wkj+i+vuS8nw0KK+Wkj+aFp+m+hA0KK+Wkj+e/iuS8pg0KK+WtmeS4iumbrw0KK+WtmeWjq+eDmA0KK+WtmeWFg+S/ig0KK+WtmeaWueS7qg0KK+WtmeWPr+S4ug0KK+WtmeawuOS/oQ0KK+Wtmeeri+awkQ0KK+WtmeWmguW9rA0KK+WtmeS8r+S4rQ0KK+WtmeW/l+WLhw0KK+WtmeiCsuiKnQ0KK+WtmeWNj+ijlQ0KK+WtmeW/oOWHrw0KK+WtmeaYjumqjw0KK+WtmemHh+iWhw0KK+WtmeW7uuW0tA0KK+Wtmee+juiLsQ0KK+WtmemDgeWptw0KK+WtmeaMr+WHiQ0KK+WtmeS9qeiKsw0KK+WtmeS8n+S8pg0KK+WtmeWbveS5pg0KK+WtmeW0h+WTsg0KK+WtmeaDn+atow0KK+Wtmea3keiKrA0KK+WtmeadsA0KK+WtmeeQpg0KK+WtmemAuOeHlQ0KK+WtmeS8oOWHrw0KK+Wtmea6ouWggg0KK+WtmeedpuadsA0KK+WtmemBk+mahg0KK+WtmeWYieiNqw0KK+Wtmee6sg0KK+WtmeixquW/lw0KK+WtmemTrem4vw0KK+WtmeaFp+a0pQ0KK+WtmeWtpuS7qg0KK+Wtmem+mee/lA0KK+WtmeS4veWonw0KK+WtmeeCmOWunA0KK+WtmeeRgA0KK+Wuq+Wnl+Wnlw0KK+W4iOWunOmdkg0KK+W+kOS5meWPrw0KK+W+kOWNg+elkA0KK+W+kOWNg+mbhQ0KK+W+kOWjq+WLiw0KK+W+kOWtkOW5sw0KK+W+kOWtkOW8ug0KK+W+kOWwj+iQjQ0KK+W+kOS7geW5sg0KK+W+kOW/g+WunA0KK+W+kOaWh+WQmw0KK+W+kOaWh+ebig0KK+W+kOaciOWopQ0KK+W+kOS4luWfug0KK+W+kOS7leazkw0KK+W+kOW3p+WHjA0KK+W+kOato+aAoQ0KK+W+kOawuOWFiQ0KK+W+kOawuOm4ow0KK+W+kOeOieiKrA0KK+W+kOeOieaFiA0KK+W+kOeri+i+vg0KK+W+kOWFieW5sw0KK+W+kOWMoeW5sw0KK+W+kOWmguWNhw0KK+W+kOacieW6hg0KK+W+kOiJvuS8tg0KK+W+kOWFi+mSpw0KK+W+kOWuj+Wuhw0KK+W+kOW/l+Wuhw0KK+W+kOW/l+S8nw0KK+W+kOW/l+ixqg0KK+W+kOadjuWFqA0KK+W+kOengOeOsg0KK+W+kOiCsuaFiA0KK+W+kOS9s+Wmgg0KK+W+kOS9qeWmgg0KK+W+kOS9qemUpg0KK+W+kOWul+a6kA0KK+W+kOW/oOS5iQ0KK+W+kOaYhue+vw0KK+W+kOaYjuWNjg0KK+W+kOaYjum4vw0KK+W+kOadvum4vw0KK+W+kOaso+Wmjw0KK+W+kOefpeacrA0KK+W+kOmHh+iWhw0KK+W+kOS/oeS4rQ0KK+W+kOS/iuadsA0KK+W+kOWlleaZlg0KK+W+kOaAnee7tA0KK+W+kOafj+mfrA0KK+W+kOe+jueOiQ0KK+W+kOe+juWNjg0KK+W+kOiLpemmqA0KK+W+kOiLseehlQ0KK+W+kOmDgeahpg0KK+W+kOWutualtw0KK+W+kOaMr+a0sg0KK+W+kOS5puaUvw0KK+W+kOa1muadsA0KK+W+kOS9qeelrw0KK+W+kOS8n+WHoQ0KK+W+kOS8n+Wzuw0KK+W+kOS8n+mhug0KK+W+kOWBpemhug0KK+W+kOWbveS8pg0KK+W+kOWbveaZug0KK+W+kOWbveiAgA0KK+W+kOWfuea6tg0KK+W+kOWpieS7qg0KK+W+kOaYhuS7kQ0KK+W+kOS7juivsA0KK+W+kOaVj+iKsw0KK+W+kOaVj+WNjg0KK+W+kOaiheWHjA0KK+W+kOa3keWonw0KK+W+kOa3keWrlA0KK+W+kOelpeeEtg0KK+W+kOiOieecnw0KK+W+kOmbqueQvA0KK+W+kOWvjOW6tw0KK+W+kOaDoOePjQ0KK+W+kOaOjOeRmw0KK+W+kOacneW6tw0KK+W+kOiIkuS6mg0KK+W+kOWSj+Wqmw0KK+W+kOi/m+WunQ0KK+W+kOmbheajiw0KK+W+kOmhuuWujw0KK+W+kOeIseWptw0KK+W+kOavk+iJrw0KK+W+kOeRmumVgQ0KK+W+kOeRnuaBrQ0KK+W+kOeRnuiBqg0KK+W+kOeRnOaVjw0KK+W+kOijleW9rA0KK+W+kOi1hOivgQ0KK+W+kOmdluaDoA0KK+W+kOWYieWujw0KK+W+kOWYieeQsw0KK+W+kOWYiempuQ0KK+W+kOaipum6nw0KK+W+kOiNo+i+sA0KK+W+kOeUhOm4vw0KK+W+kOemj+elpQ0KK+W+kOe7tOaJrA0KK+W+kOe/oOmBpQ0KK+W+kOmTreS9mw0KK+W+kOmTreiwpg0KK+W+kOWHpOW/hg0KK+W+kOW+t+i0pA0KK+W+kOaFp+W/gw0KK+W+kOaFp+Wptw0KK+W+kOavheWujw0KK+W+kOmch+S4nA0KK+W+kOaZk+etoA0KK+W+kOWFtOa3pg0KK+W+kOmdmeS7qg0KK+W+kOm4v+S7gQ0KK+W+kOi1nueZuw0KK+W+kOS4veePjQ0KK+W+kOe7p+aUvw0KK+W+kOaoseiKsw0KK+W+kOa3rw0KK+W+kOiPoeempw0KK+W+kOeOruiKrA0KK+W+kOetseiKuA0KK+W+kOmSsOe7qw0KK+W+kOmRq+ixqg0KK+S5pueZvuW3nQ0KK+ahkeaAoeeniw0KK+aftOWtpuiInA0KK+aut+iKt+iLpQ0KK+aut+e7jemXtQ0KK+aut+iCh+mYsw0KK+a1puaZk+WHpA0KK+eVmeW5sueEnA0KK+elluaZk+WHpA0KK+enpuS4gOW5sw0KK+enpuWuieeriw0KK+enpuW7uueOrg0KK+enpuaik+mTrQ0KK+enpuWco+adsA0KK+enpuS4vembhQ0KK+e/geS6jueQqg0KK+e/geWjq+i9qQ0KK+e/geWtkOWptw0KK+e/geaWh+iMuQ0KK+e/geS7peWTsg0KK+e/geeOieWonw0KK+e/geS7sui0pA0KK+e/geWuh+mqjw0KK+e/geWuj+mclg0KK+e/geW/l+ixqg0KK+e/geiCsueolA0KK+e/geS9s+mftQ0KK+e/geWul+ijlQ0KK+e/geaYjuWuiQ0KK+e/geael+mTpA0KK+e/geS/oeWPsA0KK+e/geafj+Wcow0KK+e/geiLseaWjA0KK+e/geaMr+iKsw0KK+e/geS9qeaAoQ0KK+e/geS8n+S8pg0KK+e/geWBpee6rA0KK+e/geWfuua4hQ0KK+e/geW0h+W6rQ0KK+e/geWQr+S/oQ0KK+e/geaZqOiAgA0KK+e/gea3keWNjg0KK+e/geWjueWnvw0KK+e/gea7i+S9qQ0KK+e/gemAuOi9qQ0KK+e/gembheaDoA0KK+e/geavk+e/jg0KK+e/geeRnue+mg0KK+e/geS5ieWulw0KK+e/gem8juaYjA0KK+e/geWYiee/jg0KK+e/geaipuWQmw0KK+e/geeip+WjlQ0KK+e/gee7tOiJrw0KK+e/gemTremAig0KK+e/geW+t+WNvw0KK+e/geaZk+iKrA0KK+e/gemdmeeRnA0KK+e/gem6kuaYjA0KK+e/geS/quWAqQ0KK+e/geeOruWonw0KK+e/gemdk+aZjw0KK+iNhuS8n+aUvw0KK+iigeWkqeiLsQ0KK+iigeWmguWGiA0KK+iigeaAoeiMuQ0KK+iigeafj+S8nw0KK+iigeS8n+S8pg0KK+iigeWQr+mRqw0KK+iigembheaDoA0KK+iigeiNo+eBvw0KK+iigemdmeWNjg0KK+iusOS9s+mbrw0KK+mDneaUv+m4vw0KK+mprOS4gOaWhw0KK+mprOS4remqhQ0KK+mprOWNoOWzsA0KK+mprOeOieWonw0KK+mprOWuieWmrg0KK+mprOW/l+aYjg0KK+mprOS9s+S8tg0KK+mprOWys+Wujw0KK+mprOWNl+asow0KK+mprOiLseadsA0KK+mprOS9qeWptw0KK+mprOWbveiVvg0KK+mprOa3keWNvw0KK+mprOaZuuWQmw0KK+mprOeFjOWdpA0KK+mprOWYiemahg0KK+mprOe7quW3nQ0KK+mprOW/huWptw0KK+mprOaoseiPgQ0KK+mrmOS4gOmTrQ0KK+mrmOWNg+aDoA0KK+mrmOWjq+aYjg0KK+mrmOWtkOa3hw0KK+mrmOWwj+aWhw0KK+mrmOWPi+aFpw0KK+mrmOaWh+W9rA0KK+mrmOS4luaYjA0KK+mrmOS4u+W8ug0KK+mrmOW8mOW3ng0KK+mrmOato+WbvQ0KK+mrmOeOieWmgg0KK+mrmOeOiemmqA0KK+mrmOS8iuS/ig0KK+mrmOWQiOWKqQ0KK+mrmOaXreW6hg0KK+mrmOiHs+WuvQ0KK+mrmOWuj+mTrQ0KK+mrmOW/l+S8nw0KK+mrmOW/l+mtgQ0KK+mrmOengOmTgw0KK+mrmOS6muWFsA0KK+mrmOS9qeWQnw0KK+mrmOWmrueOrg0KK+mrmOWul+eCnA0KK+mrmOW5uOeRnA0KK+mrmOaYjg0KK+mrmOaYjueOrg0KK+mrmOaso+a0gQ0KK+mrmOmHkeW/lw0KK+mrmOWSuOWung0KK+mrmOW9puWLiw0KK+mrmOafj+ixqg0KK+mrmOe+juiKsw0KK+mrmOiLseWHrw0KK+mrmOmDgeWHrw0KK+mrmOWzsA0KK+mrmOagqQ0KK+mrmOS9qee7rg0KK+mrmOS8n+S8pg0KK+mrmOWBpQ0KK+mrmOWbveWTsg0KK+mrmOWbveWugQ0KK+mrmOWfueecnw0KK+mrmOW9rOWOnw0KK+mrmOWQr+elkA0KK+mrmOaVj+WoiQ0KK+mrmOa3keiKsw0KK+mrmOa3keaDoA0KK+mrmOesmei+hQ0KK+mrmOmbquWNvw0KK+mrmOWptw0KK+mrmOaZr+aAoQ0KK+mrmOeQquiIkg0KK+mrmOWSj+W9pg0KK+mrmOmbheiKsw0KK+mrmOmbheiFuQ0KK+mrmOaEj+elrw0KK+mrmOavk+i+sA0KK+mrmOeFp+mXtQ0KK+mrmOeRnueRtg0KK+mrmOS5ieW/oA0KK+mrmOivl+WoiQ0KK+mrmOmigua4hQ0KK+mrmOWYieiJrw0KK+mrmOWYieWxvw0KK+mrmOW9sOmahg0KK+mrmOedv+WFsA0KK+mrmOerr+eOqw0KK+mrmOe/oOe/jg0KK+mrmOmTtueplw0KK+mrmOmTreadsA0KK+mrmOmTreeQhw0KK+mrmOS7qumTrQ0KK+mrmOW6huaWjA0KK+mrmOaFp+iQjQ0KK+mrmOW/huWmgg0KK+mrmOmdmeawkQ0KK+mrmOiWh+iWhw0KK+mrmOiwseS8pg0KK+mrmOS4veiVmQ0KK+mrmOmiouWTsg0KK+mrmOaWjOmRqw0KK+mrmOetseaFpw0KK+mrmOiWj+a2tQ0KK+WVhuW8mOaYkw0KK+WVhuWHpOiLsQ0KK+Wvh+S4vembrw0KK+W0lOS9kee7tA0KK+W0lOWAqeiLkw0KK+W0lOeQpuawkQ0KK+W4uOaso+eOiQ0KK+W6t+S5g+aciA0KK+W6t+S7leWulw0KK+W6t+Wuh+WugQ0KK+W6t+aUuOWNjg0KK+W6t+Wtn+aEjw0KK+W6t+mHkemUiw0KK+W6t+e+jueOsg0KK+W6t+WutuW9sA0KK+W6t+W6reeRng0KK+W6t+mFjeWuuQ0KK+W6t+adsOawkQ0KK+W6t+aZuuWNhw0KK+W6t+eZu+adsA0KK+W6t+mbheWptw0KK+W6t+eomuaXuA0KK+W6t+WYieWFsA0KK+W6t+aZk+iVmQ0KK+W6t+S4vei0ng0KK+W8oA0KK+W8oOS4gOm4vw0KK+W8oOS5g+aWhw0KK+W8oOS5g+S8nw0KK+W8oOWKm+S7gQ0KK+W8oOWKm+Wkqw0KK+W8oOWPiOWNgw0KK+W8oOWPiOeJmQ0KK+W8oOWNg+mHjA0KK+W8oOWjq+i0pA0KK+W8oOWtkOaYjA0KK+W8oOWwj+iQjQ0KK+W8oOS4reiWhw0KK+W8oOWwuemmqA0KK+W8oOS7geadsA0KK+W8oOS7geadsA0KK+W8oOS7geiBqg0KK+W8oOWFgw0KK+W8oOWFg+mahg0KK+W8oOWFg+m4vw0KK+W8oOWPiw0KK+W8oOWkqeWHpA0KK+W8oOWwpOWtkA0KK+W8oOW/g+aAoQ0KK+W8oOW/g+eRnA0KK+W8oOW/g+mmqA0KK+W8oOaWh+iCsg0KK+W8oOaWh+aYjg0KK+W8oOaWh+W9pg0KK+W8oOaWh+eOsg0KK+W8oOaWh+i9qQ0KK+W8oOaWh+mSpg0KK+W8oOaWh+mbrw0KK+W8oOaWh+iNow0KK+W8oOaWh+ixqg0KK+W8oOaWh+aotQ0KK+W8oOaWh+eCiQ0KK+W8oOaWh+iFvg0KK+W8oOaciOWuuQ0KK+W8oOS4luS4rQ0KK+W8oOS4luWysw0KK+W8oOS4luaYjg0KK+W8oOS4luiKrA0KK+W8oOS4lumbrw0KK+W8oOS4luWEkg0KK+W8oOS4luWjjg0KK+W8oOS7peWFqA0KK+W8oOS7leiCsg0KK+W8oOS7leaXuw0KK+W8oOWKoOWNhw0KK+W8oOWPr+asow0KK+W8oOWkruaYjA0KK+W8oOW3p+eOsg0KK+W8oOW5vOeOrg0KK+W8oOW8mOazsA0KK+W8oOW/heaYjg0KK+W8oOato+S9mQ0KK+W8oOato+W/oA0KK+W8oOato+adsA0KK+W8oOato+mahg0KK+W8oOato+WNqw0KK+W8oOato+eOlw0KK+W8oOawuOadkA0KK+W8oOawuOaYhg0KK+W8oOawuOS/ig0KK+W8oOawuOajiw0KK+W8oOawuOWLiw0KK+W8oOeOhOm4vw0KK+W8oOeOieasow0KK+W8oOeOieeOsg0KK+W8oOeOieeQqg0KK+W8oOeOieiTiQ0KK+W8oOeOieaXuw0KK+W8oOeri+aWhw0KK+W8oOeri+asow0KK+W8oOeri+mSpw0KK+W8oOeri+e6rA0KK+W8oOS6puWugQ0KK+W8oOS7suW5sw0KK+W8oOS7sumTqA0KK+W8oOWFieS7gQ0KK+W8oOWFieS8nw0KK+W8oOWFhuWfnw0KK+W8oOWMoeadsA0KK+W8oOWQieS4sA0KK+W8oOWlveekvA0KK+W8oOWmguiOuQ0KK+W8oOWuh+erow0KK+W8oOWuieWmrg0KK+W8oOW8j+iJrw0KK+W8oOaXreWulw0KK+W8oOazm+mqkA0KK+W8oOe+vea0gQ0KK+W8oOiHs+edvw0KK+W8oOiJvumTgw0KK+W8oOS9keawkQ0KK+W8oOS9kee+pA0KK+W8oOS9nOaIkA0KK+W8oOS8r+mqjw0KK+W8oOWFi+S8nw0KK+W8oOWQm+Wmgg0KK+W8oOWQm+eRnA0KK+W8oOWQn+aFiA0KK+W8oOWmmeaFpw0KK+W8oOWui+iQjQ0KK+W8oOWuj+aYpQ0KK+W8oOWuj+eRng0KK+W8oOWuj+mTrQ0KK+W8oOW4jOWcow0KK+W8oOW/lw0KK+W8oOW/l+S7sA0KK+W8oOW/l+Wuhw0KK+W8oOW/l+iInw0KK+W8oOW/l+aYjg0KK+W8oOW/l+S8nw0KK+W8oOW/l+Wdmg0KK+W8oOW/l+elpQ0KK+W8oOW/l+eQsw0KK+W8oOW/l+a6kA0KK+W8oOW/l+i+vg0KK+W8oOW/l+ixqg0KK+W8oOW/l+ixqg0KK+W8oOW/l+ixqg0KK+W8oOW/l+mTrQ0KK+W8oOW/l+m4vw0KK+W8oOW/l+eRhA0KK+W8oOayheeOug0KK+W8oOengOeOiQ0KK+W8oOengOePjQ0KK+W8oOengOeQqg0KK+W8oOengOiTiQ0KK+W8oOiCsuW5sw0KK+W8oOiCsuW0pw0KK+W8oOiCsuiPgQ0KK+W8oOiCsuaFjg0KK+W8oOiCsuivmg0KK+W8oOiCsuW9sA0KK+W8oOiCsue6tg0KK+W8oOiCsumTqA0KK+W8oOiCsueOrg0KK+W8oOiJr+a6kA0KK+W8oOmCkeWmgg0KK+W8oOS6muihlA0KK+W8oOS9s+aWhw0KK+W8oOS9s+mfsw0KK+W8oOS9s+aDoA0KK+W8oOS9s+mbrw0KK+W8oOS9s+iTiQ0KK+W8oOS9qeW4hg0KK+W8oOS9qeeRmw0KK+W8oOWPlOe+jg0KK+W8oOWtn+eOiQ0KK+W8oOWtn+Wptw0KK+W8oOWul+S7gQ0KK+W8oOWul+i0pA0KK+W8oOWunOaWsA0KK+W8oOWwmumSpw0KK+W8oOW7tuS7uw0KK+W8oOW/teaFiA0KK+W8oOaAoeasow0KK+W8oOaAoeiOiQ0KK+W8oOaAoeaFpw0KK+W8oOaYhueFjA0KK+W8oOaYjuWIqQ0KK+W8oOaYjuelpQ0KK+W8oOaYjueFpw0KK+W8oOaYjueSiw0KK+W8oOWNh+mSpg0KK+W8oOael+iKrA0KK+W8oOaso+aAoQ0KK+W8oOaso+iVmQ0KK+W8oOayu+WbvQ0KK+W8oOenieelug0KK+W8oOiKs+iPgQ0KK+W8oOiKs+e7qw0KK+W8oOiKneWPiw0KK+W8oOiKuOaFpw0KK+W8oOmHkeWxsQ0KK+W8oOmHkeWHpA0KK+W8oOmbqOetkQ0KK+W8oOS/oeWPkQ0KK+W8oOS/iuS8nw0KK+W8oOS/iuWwpw0KK+W8oOS/iui0pA0KK+W8oOWGoOWNjg0KK+W8oOWnv+Wqmg0KK+W8oOW7uumCpg0KK+W8oOW7uuelpQ0KK+W8oOW7uuixqg0KK+W8oOW9puiPgQ0KK+W8oOaAneS7qg0KK+W8oOaBkueOrg0KK+W8oOaUv+adsA0KK+W8oOaYreWFgw0KK+W8oOaflOaYjg0KK+W8oOa0suacnw0KK+W8oOS4uuagiw0KK+W8oOeOsuWpiQ0KK+W8oOeVjOiBqg0KK+W8oOebiOm4vw0KK+W8oOeni+Wptw0KK+W8oOe6quWQmw0KK+W8oOe+jueOsg0KK+W8oOe+jue+mg0KK+W8oOe+jumbrw0KK+W8oOe+jumcng0KK+W8oOiHtOiSqA0KK+W8oOiMgumGkg0KK+W8oOiLseeQpg0KK+W8oOmDgeiKrA0KK+W8oOmDgeWptw0KK+W8oOmmmeeOug0KK+W8oOW5uOeipw0KK+W8oOS/ruixqg0KK+W8oOS8pueOrg0KK+W8oOWImue7tA0KK+W8oOWOn+iwiw0KK+W8oOWTsuWBpQ0KK+W8oOWTsueRng0KK+W8oOWTsuamlQ0KK+W8oOWTsue7tA0KK+W8oOWTsumTrQ0KK+W8oOWon+WNjg0KK+W8oOWutuaYjg0KK+W8oOWutuaMrw0KK+W8oOWutua3pg0KK+W8oOWutuagiw0KK+W8oOWutuiPsQ0KK+W8oOWutua6kA0KK+W8oOWutueRnA0KK+W8oOWutue+pA0KK+W8oOWutuamlQ0KK+W8oOWutuiNow0KK+W8oOWutuehlQ0KK+W8oOWutue7rg0KK+W8oOWutuixqg0KK+W8oOWutuixqg0KK+W8oOWutuixqg0KK+W8oOWutui1qw0KK+W8oOWutumTrQ0KK+W8oOWutumTrQ0KK+W8oOWutua2pg0KK+W8oOWutuaAgA0KK+W8oOWutueOrg0KK+W8oOWuueiPsQ0KK+W8oOWuuOWulw0KK+W8oOWzu+adsA0KK+W8oOWzu+WYiQ0KK+W8oOWzu+S4pQ0KK+W8oOWzsOiNow0KK+W8oOW6rea6kA0KK+W8oOW6reeOrg0KK+W8oOaBqeeQvA0KK+W8oOaMr+a6kA0KK+W8oOaMr+mVkg0KK+W8oOaZi+mAmg0KK+W8oOaZi+ixqg0KK+W8oOaZj+ivmg0KK+W8oOaZj+m+hA0KK+W8oOS5puiIqg0KK+W8oOS5pue7tA0KK+W8oOS5puixqg0KK+W8oOS5pumTrQ0KK+W8oOS5pummqA0KK+W8oOaguea6kA0KK+W8oOahguWNjg0KK+W8oOahguWHpA0KK+W8oOazsOmdkg0KK+W8oOa1qeWggg0KK+W8oOS9qeaAoQ0KK+W8oOS9qeeQqg0KK+W8oOebiuW3ng0KK+W8oOebiuWNjg0KK+W8oOebiue7tA0KK+W8oOelkOaFiA0KK+W8oOelkOe7tA0KK+W8oOenpuiKuA0KK+W8oOe0oOeniw0KK+W8oOe0oOWNjg0KK+W8oOe6r+ebig0KK+W8oOe6r+eOrg0KK+W8oOiAvw0KK+W8oOiAv+e7tA0KK+W8oOiAv+W0mg0KK+W8oOiureS5iQ0KK+W8oOi9qeixqg0KK+W8oOmrmOeRng0KK+W8oOS8n+S8pg0KK+W8oOS8n+mSpw0KK+W8oOWBpeiJrw0KK+W8oOWbveW/lw0KK+W8oOWbvea1qQ0KK+W8oOWbveWqmw0KK+W8oOWbveeOug0KK+W8oOWgguWHoQ0KK+W8oOWpieWQmw0KK+W8oOWpieaahA0KK+W8oOW0h+S8nw0KK+W8oOW6t+iZlA0KK+W8oOaDn+aNtw0KK+W8oOWQr+aYjg0KK+W8oOaVj+iKnQ0KK+W8oOaiheWQmw0KK+W8oOa3s+aDoA0KK+W8oOa4heaWhw0KK+W8oOa4heWHrw0KK+W8oOa3keWQmw0KK+W8oOa3keiKsw0KK+W8oOa3keiKrA0KK+W8oOa3keePjQ0KK+W8oOa3kei0ng0KK+W8oOa3keWonw0KK+W8oOa3keiMuQ0KK+W8oOa3keWptw0KK+W8oOa3keeQpg0KK+W8oOa3kembhQ0KK+W8oOa3keWotA0KK+W8oOa3keiwqA0KK+W8oOa4iuWvjA0KK+W8oOa2tei9qQ0KK+W8oOebm+e6sg0KK+W8oOe7jeaZlg0KK+W8oOiOieiMuQ0KK+W8oOmAouaXtg0KK+W8oOmbquS6kQ0KK+W8oOWHr+Wuhw0KK+W8oOWHr+a3sw0KK+W8oOWHr+Wymg0KK+W8oOWHr+eQsw0KK+W8oOWHr+i2hQ0KK+W8oOWHr+e7tA0KK+W8oOiDnOS7gQ0KK+W8oOiDnOadsA0KK+W8oOiDnOmbhA0KK+W8oOWNmuWSjA0KK+W8oOWNmuWLiw0KK+W8oOWNmumSpw0KK+W8oOWWuw0KK+W8oOS5lOe/lA0KK+W8oOWjueiDvQ0KK+W8oOWpt+mftQ0KK+W8oOWvjOa3sw0KK+W8oOWvjOelrw0KK+W8oOaDoOWmgg0KK+W8oOaDoOePig0KK+W8oOaDoOWonw0KK+W8oOaDoOWptw0KK+W8oOaDoOeQqg0KK+W8oOaDoOiPgQ0KK+W8oOaDoOmbrw0KK+W8oOaDoOWFsA0KK+W8oOaVpuS5iQ0KK+W8oOaZtOaZtA0KK+W8oOaZr+S8pg0KK+W8oOaZr+a1kQ0KK+W8oOaZr+mXsw0KK+W8oOaZuuWuiQ0KK+W8oOaZuuWImg0KK+W8oOaZuua4hQ0KK+W8oOaZuuadsA0KK+W8oOaZuuW0tA0KK+W8oOaZuue/lA0KK+W8oOaZuumSpw0KK+W8oOaZuuixqg0KK+W8oOaZuuiwpg0KK+W8oOacneWHrw0KK+W8oOacnem+mQ0KK+W8oOaji+mbrw0KK+W8oOa5mOaAoQ0KK+W8oOeQquWNjg0KK+W8oOeQpue7jQ0KK+W8oOeZu+e/lA0KK+W8oOeak+W0tA0KK+W8oOeoi+mhug0KK+W8oOe0q+mTgw0KK+W8oOe/lOaZug0KK+W8oOiIkueQpg0KK+W8oOiInOWNjg0KK+W8oOiPgeiMuQ0KK+W8oOWNjuWAqQ0KK+W8oOWSj+iMtQ0KK+W8oOivgeiNgw0KK+W8oOi0teeQsw0KK+W8oOmAuOWHoQ0KK+W8oOmAuOe+pA0KK+W8oOmHj+eEtg0KK+W8oOmSp+WvjA0KK+W8oOmSp+i0uw0KK+W8oOmXteWvjA0KK+W8oOmbgeWptw0KK+W8oOmbheWnlw0KK+W8oOmbheiKrA0KK+W8oOmbheeOsg0KK+W8oOmbheWNvw0KK+W8oOmbheaVjw0KK+W8oOmbheWptw0KK+W8oOmbheWptw0KK+W8oOmbheWptw0KK+W8oOmbheWptw0KK+W8oOmbheWymg0KK+W8oOmbheaDoA0KK+W8oOmbheaDoA0KK+W8oOmbheeQqg0KK+W8oOmbheeQtA0KK+W8oOmbheiQjQ0KK+W8oOmbhembrw0KK+W8oOmbhembrw0KK+W8oOmbhemTgw0KK+W8oOmbheiOuQ0KK+W8oOmbr+iMtQ0KK+W8oOmbr+S7qg0KK+W8oOmhuuWQiQ0KK+W8oOmhuuemjw0KK+W8oOWXo+aWhw0KK+W8oOaEj+ivmg0KK+W8oOaFiOa0kg0KK+W8oOaBuuaZjw0KK+W8oOaWsOWujw0KK+W8oOavkw0KK+W8oOavk+iKrA0KK+W8oOavk+S8pg0KK+W8oOavk+a0gQ0KK+W8oOa6kOmRqw0KK+W8oOeRmuePig0KK+W8oOeRnuWQmw0KK+W8oOeRnuadsA0KK+W8oOeRnuiKuA0KK+W8oOeRnuWonw0KK+W8oOeRnuaZrw0KK+W8oOeRnuahpg0KK+W8oOeRnuawtg0KK+W8oOeRnOWQmw0KK+W8oOeRnOWonw0KK+W8oOeluuWNhw0KK+W8oOS5ieW/oA0KK+W8oOe+pOaciw0KK+W8oOWco+iOiQ0KK+W8oOijleaYjA0KK+W8oOijlembrw0KK+W8oOivl+aAoQ0KK+W8oOivl+mbrw0KK+W8oOi1hOaYig0KK+W8oOmBk+aZug0KK+W8oOmdluaAoQ0KK+W8oOm8jumTiQ0KK+W8oOWYieWFgw0KK+W8oOWYieatow0KK+W8oOWYieWujw0KK+W8oOWYieasow0KK+W8oOWYieiKrA0KK+W8oOWYieeOsg0KK+W8oOWYieeOsg0KK+W8oOWYieWTsg0KK+W8oOWYieaZiw0KK+W8oOWYieecnw0KK+W8oOWYieiurQ0KK+W8oOWYieaDoA0KK+W8oOWYiembhA0KK+W8oOWYiee7tA0KK+W8oOWYieWjsA0KK+W8oOWYieePow0KK+W8oOWugemmqA0KK+W8oOamleWuuQ0KK+W8oOiNo+ebiA0KK+W8oOiNo+Wuqg0KK+W8oOiNp+ePig0KK+W8oOedv+milg0KK+W8oOeip+Wonw0KK+W8oOehleWFgw0KK+W8oOehleahkw0KK+W8oOemj+aUvw0KK+W8oOe6sumCkQ0KK+W8oOW9qeiKsw0KK+W8oOe7tOWFqA0KK+W8oOe7tOePig0KK+W8oOe7tOWTsg0KK+W8oOe7tOecnw0KK+W8oOe7tOa3sw0KK+W8oOe7tOa0gQ0KK+W8oOe/oOaWhw0KK+W8oOe/oOeQqg0KK+W8oOiCh+aigQ0KK+W8oOiTk+iQsQ0KK+W8oOixquaWhw0KK+W8oOmTtuiKsw0KK+W8oOmTreWulw0KK+W8oOmTreWzsA0KK+W8oOmTree/sA0KK+W8oOWHpOW5sw0KK+W8oOWHpOS7qg0KK+W8oOW5v+a1qQ0KK+W8oOW+t+amhg0KK+W8oOW6huaAoQ0KK+W8oOW6huS4sA0KK+W8oOaFp+aAoQ0KK+W8oOaFp+Wonw0KK+W8oOaFp+iQjQ0KK+W8oOaFp+eutA0KK+W8oOiOueePig0KK+W8oOWNq+W4hg0KK+W8oOmAguaBkg0KK+W8oOWtpuS8pg0KK+W8oOW/huWQmw0KK+W8oOaZk+aYgA0KK+W8oOaZk+Wptw0KK+W8oOaZk+iPgQ0KK+W8oOaZk+WHpA0KK+W8oOeHleWmrg0KK+W8oOe/sOaWhw0KK+W8oOmGkuS4lg0KK+W8oOmUpuWptw0KK+W8oOmdmeWmgg0KK+W8oOmdmeaAoQ0KK+W8oOmdmeiMuQ0KK+W8oOm+meS7gQ0KK+W8oOeOr+S8ig0KK+W8oOiwpui+vg0KK+W8oOm4v+Wmgg0KK+W8oOm4v+aZug0KK+W8oOabnOmTqA0KK+W8oOeugOato+S8nw0KK+W8oOeugOaso+WNjg0KK+W8oOeugOWYieS6ug0KK+W8oOiTneWwuQ0KK+W8oOS4sOeSuA0KK+W8oOaAgOaBqQ0KK+W8oOeQvOS5iw0KK+W8oOeQvOaWhw0KK+W8oOeQvOaWhw0KK+W8oOeQvOaWuQ0KK+W8oOeQvOaDoA0KK+W8oOiJuummqA0KK+W8oOS4veWQmw0KK+W8oOS4vea3kQ0KK+W8oOWuneS6kQ0KK+W8oOeMruWjrA0KK+W8oOe8pOaWhw0KK+W8oOe7p+aYjA0KK+W8oOiAgOS6kQ0KK+W8oOiAgOWFgQ0KK+W8oOiAgOatow0KK+W8oOiAgOWjsA0KK+W8oOmHiuaWhw0KK+W8oOmmqOaWhw0KK+W8oOmmqOaWhw0KK+W8oOiFvuWFgw0KK+W8oOS/quiWsA0KK+W8oOW3jeiAgA0KK+W8oOiqiemmqA0KK+W8oOm5pOiAgA0KK+W8oOmcgeaciA0KK+W8oOiKgw0KK+W8oOWAmw0KK+W8oOiMnOiMuQ0KK+W8oOeQh+mXtQ0KK+W8oOWqnOWqnA0KK+W8oOeQrOWunA0KK+W8oOeQrOiPgQ0KK+W8oOiPgOWAqQ0KK+W8oOeCnOWugQ0KK+W8oOeOruiKuA0KK+W8oOeOruS8pg0KK+W8oOeOruWptw0KK+W8oOetseWQmw0KK+W8oOetsembrw0KK+W8oOmEkOaGmw0KK+W8oOmSsOW9qQ0KK+W8oOemleS8pg0KK+W8oOeSgeaWhw0KK+W8oOmVq+WwuQ0KK+W8oOaBkuS4rQ0KK+aImuS5heaZug0KK+aVluawuOm+mQ0KK+abueWjq+aVjw0KK+abueaWh+W9pg0KK+abueS4lua1qQ0KK+abueeri+ihjA0KK+abueiBv+eUtw0KK+abueW/l+W8ug0KK+abueS9s+WuiQ0KK+abueaYjOeUtw0KK+abueaso+iJrw0KK+abueaYpeaWhw0KK+abueWTsuWYiQ0KK+abueWzu+aYjA0KK+abueS9qeaAoQ0KK+abueS8n+iMuQ0KK+abuea3keWqmw0KK+abueiDnOS4sA0KK+abueaZuuasow0KK+abueeak+S6kQ0KK+abuembheaDoA0KK+abueaWsOW9pg0KK+abueWYieaWhw0KK+abuee7tOS8pg0KK+abueavheWLhw0KK+abueeOuuepoA0KK+abueiOqOi0pA0KK+aigeS5g+WBpQ0KK+aigeS7geWNjg0KK+aigeaWh+WuiQ0KK+aigeaWh+Wuvg0KK+aigeS4luixqg0KK+aigeato+W/oA0KK+aigeeOieeOsg0KK+aigeS7u+S4rQ0KK+aigeaxneiInA0KK+aigeWQm+mcmQ0KK+aigeW/l+W9rA0KK+aigeW/l+mTrQ0KK+aigeiCsuWNjg0KK+aigeS9s+i/mw0KK+aigeaAoeiKrA0KK+aigeS4nOaelw0KK+aigeS/oeWFgw0KK+aigeS/kOeQpg0KK+aigeW9puixqg0KK+aigeeCs+mTuA0KK+aigemDgeiTgQ0KK+aigeWutuaYjg0KK+aigeWutuixqg0KK+aigeWzu+mTrQ0KK+aigeaZi+mtgQ0KK+aigeS9qeS9qQ0KK+aigeenpuWunA0KK+aigeWBpeW/oA0KK+aigeWQr+eOhA0KK+aigea3keWonw0KK+aigeiOieWonw0KK+aigeiDnOmTrQ0KK+aigeaDoOWptw0KK+aigeaZr+Wwpw0KK+aigeacneWHrw0KK+aigeiIkuaAoQ0KK+aigemAuOiKrA0KK+aigembheiIkg0KK+aigeaBuuiKuA0KK+aigeeRnui9qQ0KK+aigeWco+aYjA0KK+aigeWYieePjQ0KK+aigeeip+aFpw0KK+aigee/oOePig0KK+aigeaFp+WNjg0KK+aigeaZk+e7tA0KK+aigemdmeWunA0KK+aigeeQvOS4uQ0KK+aigee7p+S7gQ0KK+aigeaHv+W+tw0KK+aigeeOruecnw0KK+aiheWFieWuhw0KK+aihembheWptw0KK+avleW/l+WNjg0KK+ebm+W/gw0KK+ebm+elpQ0KK+espuiCh+S4rQ0KK+iOq+aYn+Wuhw0KK+W6hOS4gOWHoQ0KK+W6hOS6juiOuQ0KK+W6hOWjq+WbvQ0KK+W6hOWtkOWHrw0KK+W6hOS7geWujw0KK+W6hOW/g+iQjQ0KK+W6hOaWh+aYrQ0KK+W6hOaWh+ixqg0KK+W6hOS4luadsA0KK+W6hOW8mOS7uw0KK+W6hOato+aJrA0KK+W6hOawuOemjw0KK+W6hOeOiem6nw0KK+W6hOWmgui9qQ0KK+W6hOWFi+S8nw0KK+W6hOW/l+aYjg0KK+W6hOW/l+iNow0KK+W6hOengOmTgw0KK+W6hOiCsuamlQ0KK+W6hOS+neWptw0KK+W6hOS9s+iNow0KK+W6hOS9qembrw0KK+W6hOWdpOWTsg0KK+W6hOWtn+eOsg0KK+W6hOWtn+e6vg0KK+W6hOWul+WLiw0KK+W6hOWumOeShw0KK+W6hOWunOeShw0KK+W6hOW/oOebig0KK+W6hOaAoei9qQ0KK+W6hOaYjOaZlA0KK+W6hOaYjui+vg0KK+W6hOS4nOaYjg0KK+W6hOaso+WTsg0KK+W6hOeOpeWsmw0KK+W6hOmHkemdmQ0KK+W6hOS/iuadsA0KK+W6hOW7ug0KK+W6hOaUv+Wuqg0KK+W6hOeni+WtkA0KK+W6hOe+jummqA0KK+W6hOiLseeQtA0KK+W6hOS7k+adsA0KK+W6hOWutuWNhw0KK+W6hOWutumTrQ0KK+W6hOWzu+amlQ0KK+W6hOahk+WYiQ0KK+W6hOS9qemTgw0KK+W6hOe6r+e6rw0KK+W6hOS8n+S7gQ0KK+W6hOWbvei+sA0KK+W6hOWfuemRqw0KK+W6hOWQr+aWhw0KK+W6hOaiqOmdkg0KK+W6hOa4heWvjA0KK+W6hOa3keiKrA0KK+W6hOa3keWptw0KK+W6hOa3kemXtQ0KK+W6hOa3keePug0KK+W6hOiOieiOiQ0KK+W6hOWHr+iMtQ0KK+W6hOiDnOWIqQ0KK+W6hOWNmua4hQ0KK+W6hOWwp+S7uw0KK+W6hOWvjOadsA0KK+W6hOWkjei0tQ0KK+W6hOaDoOiMuQ0KK+W6hOaDoOiQjQ0KK+W6hOaDoOiTiQ0KK+W6hOaZtOS6kQ0KK+W6hOaZr+eQhw0KK+W6hOaZuua2tQ0KK+W6hOaZuumSpw0KK+W6hOacnemSpw0KK+W6hOeZu+WPkQ0KK+W6hOWWhOiKsw0KK+W6hOi0uuS5lA0KK+W6hOmXteaXrQ0KK+W6hOmbheW/gw0KK+W6hOmbheeOsg0KK+W6hOmbheWptw0KK+W6hOmbheaDoA0KK+W6hOmbheiQjQ0KK+W6hOmbheS6kQ0KK+W6hOmbr+mbrw0KK+W6hOW1qee6rA0KK+W6hOeRnuWNlw0KK+W6hOijleaWhw0KK+W6hOWYieeOsg0KK+W6hOaxiea4hQ0KK+W6hOe7tOmTrQ0KK+W6hOmTreaZrw0KK+W6hOaFp+W/gw0KK+W6hOiOueWnvw0KK+W6hOagkeWujw0KK+W6hOiVmeiQjQ0KK+W6hOmUpuW5sw0KK+W6hOmdmeaAoQ0KK+W6hOa7qOe7rg0KK+W6hOabnOaXrQ0KK+W6hOidieWmgw0KK+W6hOeGlOeSng0KK+W6hOmmpee6sg0KK+W6hOS4vei2sw0KK+W6hOaHv+W8ug0KK+W6hOaNg+WoiQ0KK+W6hOaWjOaZug0KK+W6hOetseWptw0KK+iuuOS4gOS5iw0KK+iuuOS5g+enrw0KK+iuuOWPiOS7gQ0KK+iuuOWkp+WuuQ0KK+iuuOS7geWFqA0KK+iuuOWFg+mTrQ0KK+iuuOWjrOiAgA0KK+iuuOW/g+ebiA0KK+iuuOaWh+W/oA0KK+iuuOaWh+WOmg0KK+iuuOaWh+ahkA0KK+iuuOaWh+WNjg0KK+iuuOaWh+ixqg0KK+iuuOaWh+iTnQ0KK+iuuOaXpeaYpQ0KK+iuuOS4luawkQ0KK+iuuOS4luaYjA0KK+iuuOS4luaBrA0KK+iuuOS4lui0pA0KK+iuuOWKoOWujw0KK+iuuOW5sw0KK+iuuOW8mOavhQ0KK+iuuOato+W/oA0KK+iuuOato+iwig0KK+iuuOawuOaYjg0KK+iuuOawuOavhQ0KK+iuuOeOieiKsw0KK+iuuOeOieWonw0KK+iuuOeOieWptQ0KK+iuuOeUsg0KK+iuuOeri+e+pA0KK+iuuOS7sui0pA0KK+iuuOWQjeS4lg0KK+iuuOWuh+adsA0KK+iuuOaIjuWykQ0KK+iuuOazm+milg0KK+iuuOiHs+WFqA0KK+iuuOS9kemTqA0KK+iuuOWFi+S7sg0KK+iuuOWQm+ixqg0KK+iuuOWmjeW4jA0KK+iuuOWuj+S8nw0KK+iuuOWuj+W+tw0KK+iuuOW/l+WQjA0KK+iuuOW/l+Wujw0KK+iuuOW/l+W0hw0KK+iuuOW/l+mbhA0KK+iuuOW/l+e7tA0KK+iuuOW/l+i/nA0KK+iuuOW/l+m5jw0KK+iuuOaxtuW3ng0KK+iuuOengOePig0KK+iuuOengOiTiQ0KK+iuuOiCsuiPgQ0KK+iuuOiCsuivmg0KK+iuuOiJrw0KK+iuuOi0neWmgg0KK+iuuOS9s+aUvw0KK+iuuOS9s+mbrw0KK+iuuOS9qeiMuQ0KK+iuuOWNk+WwmA0KK+iuuOWtn+e/lA0KK+iuuOWul+iNow0KK+iuuOW5uOmbrw0KK+iuuOaAoeS9qQ0KK+iuuOaJv+iurQ0KK+iuuOaYjuadsA0KK+iuuOaYjuW+tw0KK+iuuOadvuetiQ0KK+iuuOazk+eQrg0KK+iuuOiKs+aFiA0KK+iuuOiKs+mTrQ0KK+iuuOiKmeeOsQ0KK+iuuOmHkeWPkQ0KK+iuuOS/oeiNow0KK+iuuOS/iumbhA0KK+iuuOWnv+aAoQ0KK+iuuOW9pueEtg0KK+iuuOaBrOe7qw0KK+iuuOaYreWFgw0KK+iuuOafj+ahpg0KK+iuuOePiueRnA0KK+iuuOeni+eOsg0KK+iuuOe+juiKsw0KK+iuuOe+juWNjg0KK+iuuOiHtOe7tA0KK+iuuOiLseadsA0KK+iuuOmDgeaVjw0KK+iuuOS/uOaYjA0KK+iuuOS/rumTrQ0KK+iuuOWOn+mTrQ0KK+iuuOWTsueRng0KK+iuuOWTsuW9sA0KK+iuuOWTsuixqg0KK+iuuOWTsueOrg0KK+iuuOWutuWuow0KK+iuuOWutuadsA0KK+iuuOWutuaXuA0KK+iuuOWutuW9sA0KK+iuuOWutuiNow0KK+iuuOWutuixqg0KK+iuuOWutuixqg0KK+iuuOWutuW6hg0KK+iuuOWuuOixqg0KK+iuuOWzu+WTsg0KK+iuuOWzu+eOrg0KK+iuuOWzsOmTrQ0KK+iuuOW6reeOrg0KK+iuuOaMr+a5lg0KK+iuuOaXtuWYiQ0KK+iuuOaZi+iNpw0KK+iuuOS5pg0KK+iuuOS5puiNow0KK+iuuOS5pumTqA0KK+iuuOagueWunA0KK+iuuOagk+ixqg0KK+iuuOa1qeeOrg0KK+iuuOS9qeWYiQ0KK+iuuOebiui9qQ0KK+iuuOelkOiOsQ0KK+iuuOe0oOiPgQ0KK+iuuOe6r+eRnA0KK+iuuOiAv+ixqg0KK+iuuOi0ouW+lw0KK+iuuOS8n+W/oA0KK+iuuOWbveWuiQ0KK+iuuOWbvei0pA0KK+iuuOWpieiMuQ0KK+iuuOW9qeecnw0KK+iuuOWQr+aJrA0KK+iuuOaiheiPgQ0KK+iuuOa3s+eQhw0KK+iuuOa4heaeqw0KK+iuuOa3keiKrA0KK+iuuOa3kei0ng0KK+iuuOa3keiMuQ0KK+iuuOa3keaDoA0KK+iuuOa3keWNjg0KK+iuuOa3keiOsg0KK+iuuOebm+aYjA0KK+iuuOiOieiOiQ0KK+iuuOWHr+aDhw0KK+iuuOWHr+WYiQ0KK+iuuOiDnOWLiw0KK+iuuOWNmuS4ug0KK+iuuOWNmuajrg0KK+iuuOWgoeWmgg0KK+iuuOWvjOW/oA0KK+iuuOWvjOmbhA0KK+iuuOaDoOWmgg0KK+iuuOaDoOePjQ0KK+iuuOaDoOiMuQ0KK+iuuOaDoOeQsw0KK+iuuOaDoOmbrw0KK+iuuOaDoOa7og0KK+iuuOaZtOaWkA0KK+iuuOaZr+mSpw0KK+iuuOaZuueOsg0KK+iuuOaZuuaDnw0KK+iuuOaZuuWHrw0KK+iuuOaZuue/lA0KK+iuuOaZuumbhA0KK+iuuOaZuuW+tw0KK+iuuOacneWvjA0KK+iuuOmSpuixqg0KK+iuuOeZu+a4ig0KK+iuuOero+iDvQ0KK+iuuOWWhOWHrw0KK+iuuOiIkuiMnA0KK+iuuOWNjuWAmg0KK+iuuOWSj+iDnA0KK+iuuOi0teW9sA0KK+iuuOmAuOeroA0KK+iuuOi/m+WFtA0KK+iuuOmXtembhA0KK+iuuOmbheasow0KK+iuuOmbheeOsg0KK+iuuOmbhea3kQ0KK+iuuOmbheWptw0KK+iuuOmbheaDoA0KK+iuuOmbheaDoA0KK+iuuOmbheiQjQ0KK+iuuOmbhembgQ0KK+iuuOmbhembrw0KK+iuuOmbheaFpw0KK+iuuOmbr+eQsw0KK+iuuOmhuua4hQ0KK+iuuOaEj+iLuQ0KK+iuuOaBuue/lA0KK+iuuOahouelpQ0KK+iuuOavk+Wonw0KK+iuuOa6kOaziQ0KK+iuuOeRng0KK+iuuOeRnuiKuA0KK+iuuOeRnuaBqQ0KK+iuuOeRnuS7qg0KK+iuuOeRnOiKsw0KK+iuuOemgOabvA0KK+iuuOWco+adsA0KK+iuuOijleS6vw0KK+iuuOivl+etoA0KK+iuuOmTg+iLsQ0KK+iuuOWYieWFgw0KK+iuuOWYieiKsw0KK+iuuOWYieWAqQ0KK+iuuOWYieS9qQ0KK+iuuOWYieaDoA0KK+iuuOWYiemilg0KK+iuuOamlQ0KK+iuuOiNo+mahg0KK+iuuOeRtummqA0KK+iuuOeip+ePoA0KK+iuuOehleS/rg0KK+iuuOeulOa2tQ0KK+iuuOe7tOiCsg0KK+iuuOe7tOecnw0KK+iuuOe/oOerrw0KK+iuuOivsQ0KK+iuuOmTreS7gQ0KK+iuuOmTreWTsg0KK+iuuOmTrei0og0KK+iuuOmYgeaWhw0KK+iuuOWHpOmbhQ0KK+iuuOW6huaWhw0KK+iuuOaFp+WQmw0KK+iuuOaFp+i0ng0KK+iuuOaFlei0ng0KK+iuuOmAguaeqw0KK+iuuOW/huiKsw0KK+iuuOaZk+iPgQ0KK+iuuOeHleiQjQ0KK+iuuOmUpuaWhw0KK+iuuOmdmeWunA0KK+iuuOmdmembqg0KK+iuuOW1mOS7gQ0KK+iuuOm4v+aWhw0KK+iuuOiWsOaWhw0KK+iuuOaAgOaWhw0KK+iuuOeQvOaWhw0KK+iuuOeQvOaciA0KK+iuuOmZh+elug0KK+iuuOS4veWNjg0KK+iuuOe8pOWmgg0KK+iuuOiAgOaWhw0KK+iuuOmmqOS7gQ0KK+iuuOiFvuWFgw0KK+iuuOi3g+iurg0KK+iuuOaYtuWNjg0KK+iuuOeQh+Wptw0KK+iuuOeQrumCpg0KK+iuuOWriOeOiQ0KK+iuuOetseiQjQ0KK+iuuOmSsOiMuQ0KK+iuuOmLkem4vw0KK+iuuOaBkui+vg0KK+i/nuS7geWcow0KK+i/nuS4luWSjA0KK+i/nuS9keS7gQ0KK+i/nuengOS7gQ0KK+i/nuS9qeazoA0KK+i/nuiKuOWHsA0KK+i/nuW7uuaZug0KK+i/nueni+aXug0KK+i/nuWuueeQqg0KK+i/nuahguWujw0KK+i/nuS8n+adsA0KK+i/nuWpieS7qg0KK+i/nuWQr+aZug0KK+i/nuiDnOelpQ0KK+i/numbhei0ng0KK+i/nuWYiee6rw0KK+i/nuW6huS4sA0KK+i/numdmeiMuQ0KK+mDreS4gOahpg0KK+mDreS5g+iNow0KK+mDreS6uuixqg0KK+mDreWKm+eOrg0KK+mDreS6juelrw0KK+mDreWjq+WNjg0KK+mDreWjq+WHpA0KK+mDreWtkOeriw0KK+mDreWtkOiNpw0KK+mDreWtkOemlQ0KK+mDreS7geWTsg0KK+mDreWkqeeriw0KK+mDreaWh+WQjA0KK+mDreaWh+W9pg0KK+mDreaWh+aDoA0KK+mDreaWh+mTqA0KK+mDreawtOWxsQ0KK+mDreS4luWFsA0KK+mDreWNiembrw0KK+mDreato+Wulw0KK+mDreawuOaYjg0KK+mDreeOieePjQ0KK+mDreeriw0KK+mDreeri+i+vg0KK+mDreS7sua4ig0KK+mDreWFhumbrw0KK+mDreWkmeWQnw0KK+mDreW5tOecnw0KK+mDreaciemVhw0KK+mDreiHs+WTsg0KK+mDreWQm+aAoQ0KK+mDreWuj+aWhw0KK+mDreWuj+mqjw0KK+mDreW/l+Wujw0KK+mDreW/l+elpQ0KK+mDreadjw0KK+mDreayguadkQ0KK+mDreiCsuWFiA0KK+mDreiCsuaYjA0KK+mDreiCsue7tA0KK+mDremCpuW9pg0KK+mDreS9s+asow0KK+mDreS9s+mbrw0KK+mDreS9s+mRqw0KK+mDreS9qeeQpg0KK+mDreWlh+aWhw0KK+mDreWtn+iTiQ0KK+mDreWul+W6hg0KK+mDreWwmuWLiw0KK+mDreW/oOWSjA0KK+mDreaAoeS8tg0KK+mDreaAoeWQmw0KK+mDreaAoeWQmw0KK+mDreaAoeengA0KK+mDreaAoemTgw0KK+mDreaJv+S7qg0KK+mDreaYjuWulw0KK+mDreaYjuWzsA0KK+mDreaYjumBkw0KK+mDreaYjueOrg0KK+mDreadvumilg0KK+mDreatpuWuiQ0KK+mDreeOn+eOnw0KK+mDreeOpeWmpg0KK+mDreiKs+WQmw0KK+mDreiKs+mbrw0KK+mDreiKneedvw0KK+mDremVv+agkQ0KK+mDreS/oeWujw0KK+mDreS/neWQmw0KK+mDreS/iuWujw0KK+mDreS/iueUtw0KK+mDreS/iuS/oQ0KK+mDreS/iuS6vw0KK+mDreS/kOS6qA0KK+mDreWGoOW7tw0KK+mDreWTgeengA0KK+mDreWnv+S8tg0KK+mDreWnv+asow0KK+mDreWogeW/lw0KK+mDreW7uuWujw0KK+mDreW7uuW7tw0KK+mDreW7uuiJrw0KK+mDreW7uua6kA0KK+mDreW9puWQmw0KK+mDreW9pueUqw0KK+mDreaAneWunA0KK+mDreaUv+W/oA0KK+mDreaUv+eSiw0KK+mDreaYreWuiQ0KK+mDreaYreaYvg0KK+mDreaYseaXuw0KK+mDreafj+engA0KK+mDreeCs+aIkA0KK+mDreeOsuaFiA0KK+mDreebiOWQmw0KK+mDreecgeiQsQ0KK+mDree+juWQmw0KK+mDree+juWnlw0KK+mDree+juWWhA0KK+mDree+juWFsA0KK+mDreiMguiZlA0KK+mDrei0nuWtjQ0KK+mDreWAjeWuiQ0KK+mDreW5uOmTqA0KK+mDreWHjOW/lw0KK+mDreWTsuaIkA0KK+mDreWTsueOrg0KK+mDreWutuWujw0KK+mDreWutuelpQ0KK+mDreWutuixqg0KK+mDreWutuaFpw0KK+mDreWuuOaYgA0KK+mDreWzsOWNhw0KK+mDreW6reiTiQ0KK+mDreaMr+axiQ0KK+mDreaZj+S9kQ0KK+mDreS5puixqg0KK+mDreahguWHpA0KK+mDrea1qeW/lw0KK+mDreebiuWFgw0KK+mDreelluS9kQ0KK+mDree0oOe7qw0KK+mDreiAv+S7uw0KK+mDrei9qQ0KK+mDreWbveatow0KK+mDreWpieeOsg0KK+mDreWQr+aykA0KK+mDrea3u+aWsA0KK+mDrea3keiKrw0KK+mDrea3keaVjw0KK+mDrea3keaFpw0KK+mDremAouelpQ0KK+mDreiDnA0KK+mDreS5lOW5tA0KK+mDreaDoOmdkg0KK+mDreaDoOaXuw0KK+mDreaZuuaYjg0KK+mDreaZuueOrg0KK+mDreeQquWosg0KK+mDreWSj+S9qQ0KK+mDrei/m+aYjA0KK+mDrembheaxnQ0KK+mDrembheWptw0KK+mDrembheiPsQ0KK+mDrembheiWhw0KK+mDreaFiOebiA0KK+mDreeFnOW0hw0KK+mDreeRnumSpg0KK+mDreS5ieajoA0KK+mDreivl+Wxjw0KK+mDreWYieS8nw0KK+mDreaipueruQ0KK+mDreiNo+W6hg0KK+mDreeip+Wonw0KK+mDree6tuebig0KK+mDreiCh+W8ug0KK+mDremTreadsA0KK+mDreW6hueUnw0KK+mDreaFp+ePjQ0KK+mDreaFp+iWhA0KK+mDreWEkuiwpg0KK+mDreaZk+WNiQ0KK+mDreaZk+mbrw0KK+mDreeHleeOsg0KK+mDreiVmeiQjQ0KK+mDremUn+mclg0KK+mDremdmee+jg0KK+mDrea1jue7tA0KK+mDremqjw0KK+mDreabnOW9sA0KK+mDremVh+WFgw0KK+mDreeQvOWqmw0KK+mDreS4veeniw0KK+mDreeMruaWhw0KK+mDreiVtOW/sQ0KK+mDremmqOmVgQ0KK+mDreesvOW6hg0KK+mDreaXu+eRnA0KK+mDreaZn+Wuhw0KK+mDreaakA0KK+mDremSsOiKsw0KK+mDreaBkuWmmQ0KK+mZiOS4gOaIkA0KK+mZiOS4gOWNjg0KK+mZiOS4gOeOrg0KK+mZiOS5g+mSjw0KK+mZiOS5g+iNow0KK+mZiOS6uueUhA0KK+mZiOWKm+WHoQ0KK+mZiOWPiOaYlQ0KK+mZiOWPiOWcow0KK+mZiOS4iuS8pg0KK+mZiOWNg+mUpg0KK+mZiOWjq+adsA0KK+mZiOWkp+WQjA0KK+mZiOWtkOS7gQ0KK+mZiOWtkOW9pg0KK+mZiOWtkOmSpw0KK+mZiOWwj+iQjQ0KK+mZiOW3seWNhw0KK+mZiOS4remTrQ0KK+mZiOS5i+iwlQ0KK+mZiOS7geWulw0KK+mZiOS7geadsA0KK+mZiOS7iuWHoQ0KK+mZiOWFg+WtnQ0KK+mZiOWFg+mdlg0KK+mZiOWFrg0KK+mZiOWkqeS7gQ0KK+mZiOWkqei1jw0KK+mZiOW/g+aAoQ0KK+mZiOW/g+aAoQ0KK+mZiOW/g+a0gQ0KK+mZiOaWh+W3nQ0KK+mZiOaWh+aIkA0KK+mZiOaWh+W/oA0KK+mZiOaWh+S6rg0KK+mZiOaWh+aYrQ0KK+mZiOaWh+mDjg0KK+mZiOaWh+a2kw0KK+mZiOaWh+W9rA0KK+mZiOaWh+eroA0KK+mZiOaWh+mSpg0KK+mZiOaWh+WNjg0KK+mZiOaWh+iTiQ0KK+mZiOaWh+W+tw0KK+mZiOaWh+Wtpg0KK+mZiOaWh+m4vw0KK+mZiOaWh+mSsA0KK+mZiOaciOWmrg0KK+mZiOawtOaziQ0KK+mZiOS4luWuhw0KK+mZiOS4luWulw0KK+mZiOS4luaYjg0KK+mZiOS4luadsA0KK+mZiOS4luaUvw0KK+mZiOS4luW6rQ0KK+mZiOS4luS8nw0KK+mZiOS4lueroA0KK+mZiOS4luajuw0KK+mZiOS4luebnw0KK+mZiOS4luixqg0KK+mZiOS4luazvQ0KK+mZiOS4lum4vw0KK+mZiOS4u+asow0KK+mZiOS7pemdmQ0KK+mZiOS7leiKsw0KK+mZiOS7lea6kA0KK+mZiOS7leedvw0KK+mZiOWKoOaYjg0KK+mZiOWKn+mclg0KK+mZiOWPr+asow0KK+mZiOWPs+awkQ0KK+mZiOWPs+iwlQ0KK+mZiOW3qOm2oA0KK+mZiOW3p+ePig0KK+mZiOW3p+aDoA0KK+mZiOW3p+mikA0KK+mZiOW5vOasow0KK+mZiOW8mOaWhw0KK+mZiOW8mOasow0KK+mZiOW8mOiurQ0KK+mZiOW8mOavhQ0KK+mZiOW8mOmToA0KK+mZiOacreWfuQ0KK+mZiOato+Wujw0KK+mZiOato+aYjA0KK+mZiOato+iKsw0KK+mZiOato+WzsA0KK+mZiOato+adsA0KK+mZiOato+mbhA0KK+mZiOato+ixqg0KK+mZiOato+WFtA0KK+mZiOawkQ0KK+mZiOawuA0KK+mZiOawuOWulw0KK+mZiOawuOaYjA0KK+mZiOawuOmdkg0KK+mZiOawuOWHjA0KK+mZiOawuOW6tw0KK+mZiOawuOWvjA0KK+mZiOawuOW/lw0KK+mZiOawuOephg0KK+mZiOawuOePqQ0KK+mZiOeOieaWhw0KK+mZiOeOieWlhw0KK+mZiOeOieiKsw0KK+mZiOeOieiKrA0KK+mZiOeOieePig0KK+mZiOeOieePjQ0KK+mZiOeOieWonw0KK+mZiOeOieePoA0KK+mZiOeOieaihQ0KK+mZiOeOieeQsw0KK+mZiOeOieiPgQ0KK+mZiOeOieS6kQ0KK+mZiOeOieWohw0KK+mZiOeOieeSmA0KK+mZiOeOiemmqA0KK+mZiOeUn+advg0KK+mZiOefs+iCsg0KK+mZiOeri+WHoQ0KK+mZiOeri+iogA0KK+mZiOeri+asow0KK+mZiOeri+S8pg0KK+mZiOeri+S8nw0KK+mZiOeri+e/jg0KK+mZiOeri+e7tA0KK+mZiOeri+e/sA0KK+mZiOS6puWHoQ0KK+mZiOS8iuS8pg0KK+mZiOS7suW/lw0KK+mZiOS7sui0pA0KK+mZiOWFieeUqw0KK+mZiOWFieWNjg0KK+mZiOWFhuWllQ0KK+mZiOWQieWIqQ0KK+mZiOWQkeiNow0KK+mZiOWcqOaYjg0KK+mZiOWmguiKrA0KK+mZiOWmguiLuQ0KK+mZiOWuh+adsA0KK+mZiOWuh+i2hQ0KK+mZiOWuieS9kQ0KK+mZiOWuieactA0KK+mZiOaXrA0KK+mZiOacieW/lw0KK+mZiOaxn+eriw0KK+mZiOeZvuadsA0KK+mZiOe+veePig0KK+mZiOiHs+WHrw0KK+mZiOS6qOaIkA0KK+mZiOS9keS7uw0KK+mZiOS9keW6rQ0KK+mZiOS8uOeUsA0KK+mZiOS8r+adsA0KK+mZiOS8r+iLjQ0KK+mZiOWFi+Wuhw0KK+mZiOWFi+mTrQ0KK+mZiOWQm+Wmgw0KK+mZiOWQm+iIqg0KK+mZiOWQm+iNow0KK+mZiOWQm+WEkg0KK+mZiOWdh+ehlQ0KK+mZiOWmmeahog0KK+mZiOWmjeS8tg0KK+mZiOWmjeengA0KK+mZiOWmpOiVmQ0KK+mZiOWtnemTqA0KK+mZiOWuj+S7gQ0KK+mZiOWuj+WuiQ0KK+mZiOWuj+aYjA0KK+mZiOWuj+azog0KK+mZiOWuj+e+jg0KK+mZiOWuj+W9rA0KK+mZiOWuj+mahg0KK+mZiOWuj+i+vg0KK+mZiOWuj+mTrQ0KK+mZiOWuj+i0pA0KK+mZiOWuj+eCnA0KK+mZiOW7t+S/ig0KK+mZiOW/l+WxsQ0KK+mZiOW/l+W5sw0KK+mZiOW/l+S7sg0KK+mZiOW/l+WuiQ0KK+mZiOW/l+Wujw0KK+mZiOW/l+aymw0KK+mZiOW/l+Wysw0KK+mZiOW/l+aAoQ0KK+mZiOW/l+aYjg0KK+mZiOW/l+WNhw0KK+mZiOW/l+asow0KK+mZiOW/l+W9pg0KK+mZiOW/l+a1qQ0KK+mZiOW/l+S8nw0KK+mZiOW/l+W8ug0KK+mZiOW/l+elpQ0KK+mZiOW/l+e/lA0KK+mZiOW/l+mbhA0KK+mZiOW/l+a6kA0KK+mZiOW/l+i+vg0KK+mZiOW/l+iNow0KK+mZiOW/l+e7tA0KK+mZiOW/l+ixqg0KK+mZiOW/l+ixqg0KK+mZiOW/l+ixqg0KK+mZiOW/l+i/nA0KK+mZiOW/l+mTrQ0KK+mZiOW/l+WuvQ0KK+mZiOW/l+milg0KK+mZiOW/l+m4vw0KK+mZiOW/l+aWjA0KK+mZiOaUuOWptw0KK+mZiOadkem+mQ0KK+mZiOaym+WQnw0KK+mZiOaxtua0pQ0KK+mZiOeUuA0KK+mZiOengOWQmw0KK+mZiOengOiKnQ0KK+mZiOengOeOsg0KK+mZiOengOWonw0KK+mZiOengOaVjw0KK+mZiOengOaDoA0KK+mZiOengOmbhQ0KK+mZiOengOmTgw0KK+mZiOengOaFpw0KK+mZiOengOWFsA0KK+mZiOiCsuatow0KK+mZiOiCsuS9kA0KK+mZiOiCsuWlhw0KK+mZiOiCsueroA0KK+mZiOiCsuW7iQ0KK+mZiOiCsuivlw0KK+mZiOiCsuiOuQ0KK+mZiOiCsuaWjA0KK+mZiOiJr+aUvw0KK+mZiOingeeniw0KK+mZiOi+sOaJrA0KK+mZiOmFieiMuQ0KK+mZiOS6mumTgw0KK+mZiOS+nei+sA0KK+mZiOS+nee/lA0KK+mZiOS9sw0KK+mZiOS9s+axnQ0KK+mZiOS9s+S8tg0KK+mZiOS9s+WQnw0KK+mZiOS9s+Wujw0KK+mZiOS9s+Wmrg0KK+mZiOS9s+eOpQ0KK+mZiOS9s+ebiA0KK+mZiOS9s+ecnw0KK+mZiOS9s+aDoA0KK+mZiOS9s+eQqg0KK+mZiOS9s+eQpg0KK+mZiOS9s+mbrw0KK+mZiOS9s+e+pA0KK+mZiOS9s+WHpA0KK+mZiOS9s+aFpw0KK+mZiOS9s+eSmA0KK+mZiOS9s+mqjw0KK+mZiOS9s+aAnA0KK+mZiOS+g+Wptw0KK+mZiOS9qeWQmw0KK+mZiOS9qeWQmw0KK+mZiOS9qeS9qQ0KK+mZiOS9qeiKuA0KK+mZiOS9qeecnw0KK+mZiOS9qeeQsw0KK+mZiOS9qeeRnA0KK+mZiOS9qeiOuQ0KK+mZiOS+keWopQ0KK+mZiOWFtumSpw0KK+mZiOWNj+aYjA0KK+mZiOWSjOaIkA0KK+mZiOWdpOS9kA0KK+mZiOWdpOadsA0KK+mZiOWdpOmUug0KK+mZiOWnlOaJvw0KK+mZiOWtn+S8tg0KK+mZiOWtn+iJrw0KK+mZiOWtn+WogQ0KK+mZiOWtn+S8nw0KK+mZiOWtn+eQqg0KK+mZiOWtn+mTgw0KK+mZiOWtn+i+iQ0KK+mZiOWto+S9kQ0KK+mZiOWul+S7gQ0KK+mZiOWul+W/lw0KK+mZiOWul+ebiA0KK+mZiOWul+mbhA0KK+mZiOWul+aXlw0KK+mZiOWul+e6rA0KK+mZiOWul+m+mQ0KK+mZiOWumuiHsw0KK+mZiOWunOW5sw0KK+mZiOWunOWQmw0KK+mZiOWunOengA0KK+mZiOWunOWnvw0KK+mZiOWunOWfuQ0KK+mZiOWunOe+pA0KK+mZiOWunOeSiw0KK+mZiOWunOaXuw0KK+mZiOWum+Wnlw0KK+mZiOWwmuaWhw0KK+mZiOWwmueRnA0KK+mZiOWxheS7gQ0KK+mZiOWys+WQmw0KK+mZiOW5uOi2sw0KK+mZiOW5uOa7oQ0KK+mZiOW7tumBkw0KK+mZiOW/oOiJrw0KK+mZiOW/oOS5iQ0KK+mZiOaAoQ0KK+mZiOaAoeaWhw0KK+mZiOaAoeWNiQ0KK+mZiOaAoeWGsA0KK+mZiOaAoeWmgg0KK+mZiOaAoeWmgg0KK+mZiOaAoeWmgg0KK+mZiOaAoeWmgg0KK+mZiOaAoeWmgg0KK+mZiOaAoeWmgg0KK+mZiOaAoeWuiQ0KK+mZiOaAoeeruQ0KK+mZiOaAoeS8tg0KK+mZiOaAoeS8tg0KK+mZiOaAoeS8tg0KK+mZiOaAoeWIqQ0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeWQmw0KK+mZiOaAoeW7tw0KK+mZiOaAoeengA0KK+mZiOaAoeaYjA0KK+mZiOaAoeiKsw0KK+mZiOaAoeePig0KK+mZiOaAoemmmQ0KK+mZiOaAoeecnw0KK+mZiOaAoeWptw0KK+mZiOaAoeWptw0KK+mZiOaAoeeQtA0KK+mZiOaAoeiPgQ0KK+mZiOaAoembrw0KK+mZiOaAoeivmg0KK+mZiOaAoeehlQ0KK+mZiOaAoeiTiQ0KK+mZiOaAoea0gQ0KK+mZiOaAoeWEkg0KK+mZiOaAoemilg0KK+mZiOaAoemdmQ0KK+mZiOaAoemdmQ0KK+mZiOaAoeiLuQ0KK+mZiOaAoeiTgQ0KK+mZiOaAoeedvw0KK+mZiOaLm+ivmg0KK+mZiOaYk+adkQ0KK+mZiOaYjOaWhw0KK+mZiOaYjOa4rw0KK+mZiOaYhuadsA0KK+mZiOaYguS9kQ0KK+mZiOaYjuatow0KK+mZiOaYjuS8uA0KK+mZiOaYjuWujw0KK+mZiOaYjuadkA0KK+mZiOaYjuaYjA0KK+mZiOaYjuaUvw0KK+mZiOaYjuePoA0KK+mZiOaYjuiOiQ0KK+mZiOaYjuWptw0KK+mZiOaYjualtw0KK+mZiOaYjuijlQ0KK+mZiOaYjuW+tw0KK+mZiOaYjui0pA0KK+mZiOaYjuS4sA0KK+mZiOaYleaWuQ0KK+mZiOWNh+avhQ0KK+mZiOS4nOWNjg0KK+mZiOadsOebmw0KK+mZiOadvuiQjQ0KK+mZiOaso+Wmgg0KK+mZiOaso+Wujw0KK+mZiOaso+WunA0KK+mZiOaso+aAoQ0KK+mZiOaso+aAoQ0KK+mZiOaso+azsA0KK+mZiOaso+eRnA0KK+mZiOaso+WFsA0KK+mZiOazs+S7uw0KK+mZiOazleWFiQ0KK+mZiOazk+e/lA0KK+mZiOazk+mclg0KK+mZiOayu+Wuhw0KK+mZiOaziui+sA0KK+mZiOeOn+WFiQ0KK+mZiOeOn+S8tg0KK+mZiOeOn+eRmw0KK+mZiOeOq+Wmgg0KK+mZiOeOq+WQmw0KK+mZiOeOq+iKsw0KK+mZiOeOq+iHuw0KK+mZiOeOpeeHlQ0KK+mZiOeniea3sw0KK+mZiOenieaWjA0KK+mZiOiKs+ePjQ0KK+mZiOiKs+iQsQ0KK+mZiOiKneWAqQ0KK+mZiOiKneiMgw0KK+mZiOiKr+aAoQ0KK+mZiOmCtemRqw0KK+mZiOmHkeiJrw0KK+mZiOmHkeWgpA0KK+mZiOmHkeWjsA0KK+mZiOmVv+W6hg0KK+mZiOmbqOaWsA0KK+mZiOmdkueRnA0KK+mZiOS6reWQmw0KK+mZiOS6ruS4ng0KK+mZiOS6ruWQmw0KK+mZiOS6rumilg0KK+mZiOS/oeS8ig0KK+mZiOS/oeWuhw0KK+mZiOS/oeaXrQ0KK+mZiOS/oeWQnw0KK+mZiOS/oeWujw0KK+mZiOS/oeWujw0KK+mZiOS/oeeUqw0KK+mZiOS/oeW/oA0KK+mZiOS/oeaZug0KK+mZiOS/oeijlQ0KK+mZiOS/oeixqg0KK+mZiOS/oeWtpg0KK+mZiOS/neWFgw0KK+mZiOS/neW9sA0KK+mZiOS/iuS7gQ0KK+mZiOS/iuaWhw0KK+mZiOS/iuS7sA0KK+mZiOS/iuWQiQ0KK+mZiOS/iuWmgg0KK+mZiOS/iuWuhw0KK+mZiOS/iuWuiQ0KK+mZiOS/iuaIkA0KK+mZiOS/iuaXrQ0KK+mZiOS/iuS9kQ0KK+mZiOS/iuWRiA0KK+mZiOS/iuWujw0KK+mZiOS/iuWujw0KK+mZiOS/iuWujw0KK+mZiOS/iuWujw0KK+mZiOS/iuW7tw0KK+mZiOS/iueUtw0KK+mZiOS/iueUtw0KK+mZiOS/iuiJrw0KK+mZiOS/iuWSjA0KK+mZiOS/iuadsA0KK+mZiOS/iumDjg0KK+mZiOS/iuW9rA0KK+mZiOS/iuadsA0KK+mZiOS/iuWHrw0KK+mZiOS/iuWNjg0KK+mZiOS/iua6kA0KK+mZiOS/iui+vg0KK+mZiOS/iuamlQ0KK+mZiOS/iue7tA0KK+mZiOS/iuixqg0KK+mZiOS/iumTrQ0KK+mZiOS/iumTrQ0KK+mZiOS/iueSiw0KK+mZiOS/iuahpg0KK+mZiOS/iuiwmg0KK+mZiOS/ium+mQ0KK+mZiOS/iueOrg0KK+mZiOS/kOWuiQ0KK+mZiOS/kOengA0KK+mZiOS/kOa0gQ0KK+mZiOS/nuS7sg0KK+mZiOS/nuWmmQ0KK+mZiOS/numdmQ0KK+mZiOWGoOWkqw0KK+mZiOWGoOS7sA0KK+mZiOWGoOWmgg0KK+mZiOWGoOWuhw0KK+mZiOWGoOW3ng0KK+mZiOWGoOiInw0KK+mZiOWGoOWQqw0KK+mZiOWGoOWujw0KK+mZiOWGoOW7tw0KK+mZiOWGoOeUtw0KK+mZiOWGoOadsA0KK+mZiOWGoOWRnA0KK+mZiOWGoOe7tA0KK+mZiOWGoOmTrQ0KK+mZiOWGoOahpg0KK+mZiOWGoOWmjw0KK+mZiOWImemSpg0KK+mZiOWLh+WcqA0KK+mZiOWLh+W/lw0KK+mZiOWLh+i+vg0KK+mZiOWKsuWQvg0KK+mZiOWNl+WxhQ0KK+mZiOWOmumTrQ0KK+mZiOWTgeWFiA0KK+mZiOWTgeengA0KK+mZiOWTgei+iQ0KK+mZiOWlleS4rQ0KK+mZiOWlleS7uw0KK+mZiOWlleW4hg0KK+mZiOWlleWIqQ0KK+mZiOWlleW7tw0KK+mZiOWlleebiA0KK+mZiOWllei+vg0KK+mZiOWllemilg0KK+mZiOWlleiTgQ0KK+mZiOWljuavjw0KK+mZiOWnv+aWhw0KK+mZiOWnv+eZvg0KK+mZiOWnv+WIqQ0KK+mZiOWnv+WQnw0KK+mZiOWnv+WykA0KK+mZiOWnv+ePig0KK+mZiOWnv+iTiQ0KK+mZiOWnv+milg0KK+mZiOWnv+eShw0KK+mZiOWogeS4ng0KK+mZiOWogeWFqA0KK+mZiOWogeWuhw0KK+mZiOWogeaIkA0KK+mZiOWogeWKqQ0KK+mZiOWogeW7tw0KK+mZiOWogeW/lw0KK+mZiOWogeW/lw0KK+mZiOWogemCkQ0KK+mZiOWogee/lA0KK+mZiOWogeixqg0KK+mZiOWogeWEkg0KK+mZiOWogemclg0KK+mZiOWuo+S7uw0KK+mZiOWuo+avjw0KK+mZiOWupeS7uw0KK+mZiOWupeiwlQ0KK+mZiOW4heWQjQ0KK+mZiOW7uuS4rQ0KK+mZiOW7uuWFgw0KK+mZiOW7uuaWhw0KK+mZiOW7uuS7uw0KK+mZiOW7uuWQjA0KK+mZiOW7uuWuhw0KK+mZiOW7uuWuiQ0KK+mZiOW7uuW3ng0KK+mZiOW7uuaIkA0KK+mZiOW7uuaXrQ0KK+mZiOW7uuihjA0KK+mZiOW7uuWRiA0KK+mZiOW7uuWujw0KK+mZiOW7uuWujw0KK+mZiOW7uuWujw0KK+mZiOW7uuWujw0KK+mZiOW7uuW7tw0KK+mZiOW7uuW/lw0KK+mZiOW7uuW/lw0KK+mZiOW7uueUqw0KK+mZiOW7uueUtw0KK+mZiOW7uuiJrw0KK+mZiOW7uumCpg0KK+mZiOW7uuaYjg0KK+mZiOW7uuWbvQ0KK+mZiOW7uuaJrA0KK+mZiOW7uuWNjg0KK+mZiOW7uuivhA0KK+mZiOW7uua6kA0KK+mZiOW7uui+vg0KK+mZiOW7uuiNow0KK+mZiOW7uuiTiQ0KK+mZiOW7uui+hQ0KK+mZiOW7uumTrQ0KK+mZiOW7uumTrQ0KK+mZiOW7uueSiw0KK+mZiOW7uuWLiw0KK+mZiOW7uuahpg0KK+mZiOW7uum+mQ0KK+mZiOW7uueDnA0KK+mZiOW9puWkqw0KK+mZiOW9puaWhw0KK+mZiOW9puS7uw0KK+mZiOW9puWQiA0KK+mZiOW9puWuhw0KK+mZiOW9puW4hg0KK+mZiOW9pueruQ0KK+mZiOW9puS8uA0KK+mZiOW9puWQmw0KK+mZiOW9puWjrg0KK+mZiOW9puWujw0KK+mZiOW9puWujw0KK+mZiOW9puW7tw0KK+mZiOW9pueUqw0KK+mZiOW9puiJrw0KK+mZiOW9puaYjA0KK+mZiOW9puWHrw0KK+mZiOW9puaBug0KK+mZiOW9pue6tg0KK+mZiOW9puixqg0KK+mZiOW9puaFsA0KK+mZiOW9puWLiw0KK+mZiOW9pumclg0KK+mZiOW+i+WFgw0KK+mZiOaAneWFiA0KK+mZiOaAneW5tA0KK+mZiOaAneWmpA0KK+mZiOaAneS6rg0KK+mZiOaAnea6kA0KK+mZiOaAneiTiQ0KK+mZiOaAneactA0KK+mZiOaAnemilg0KK+mZiOaAnee/sA0KK+mZiOaAneeShw0KK+mZiOaUv+aWhw0KK+mZiOaUv+Wujw0KK+mZiOaUv+aYlQ0KK+mZiOaUv+Wwpw0KK+mZiOaUv+ijlQ0KK+mZiOaUv+avhQ0KK+mZiOaUv+iwpg0KK+mZiOaYpeWmgw0KK+mZiOaYpeaYjg0KK+mZiOaYpeeHlQ0KK+mZiOaYreaWhw0KK+mZiOaYreWuhw0KK+mZiOaYreS8tg0KK+mZiOaYreW/lw0KK+mZiOaYreS8nw0KK+mZiOaYreiNow0KK+mZiOaYremTrQ0KK+mZiOaYreeOrg0KK+mZiOaYoOaXrQ0KK+mZiOaYoOW/lw0KK+mZiOaYoOWEkg0KK+mZiOaYn+Wuhw0KK+mZiOaYn+eGuQ0KK+mZiOaYseS4ng0KK+mZiOaYseWFqA0KK+mZiOaYseaxnQ0KK+mZiOaYseWujw0KK+mZiOaYseeUqw0KK+mZiOaYsei+vg0KK+mZiOaYseahpg0KK+mZiOaflOWuiQ0KK+mZiOafhOaWuQ0KK+mZiOafj+WFgw0KK+mZiOafj+S7vQ0KK+mZiOafj+Wuhw0KK+mZiOafj+W3ng0KK+mZiOafj+W5tA0KK+mZiOafj+iInw0KK+mZiOafj+WQqw0KK+mZiOafj+Wujw0KK+mZiOafj+W/lw0KK+mZiOafj+ayhQ0KK+mZiOafj+Wysw0KK+mZiOafj+WzsA0KK+mZiOafj+WHrw0KK+mZiOafj+eRng0KK+mZiOafj+WugQ0KK+mZiOafj+iTiQ0KK+mZiOafj+eSiw0KK+mZiOafj+e/sA0KK+mZiOafj+i+kQ0KK+mZiOafj+eOrg0KK+mZiOa0suaYnw0KK+mZiOeCq+WQmw0KK+mZiOeCs+S7sg0KK+mZiOeCs+i+sA0KK+mZiOeCs+mUnw0KK+mZiOeCr+mUpg0KK+mZiOePiuePig0KK+mZiOePjeiOuQ0KK+mZiOeahuWFtA0KK+mZiOeah+aXrQ0KK+mZiOeah+m+mQ0KK+mZiOebiOWFqA0KK+mZiOebiOWmgg0KK+mZiOebiOWmgg0KK+mZiOebiOWuiQ0KK+mZiOebiOeruQ0KK+mZiOebiOWQmw0KK+mZiOebiOWtnA0KK+mZiOebiOadiQ0KK+mZiOebiOi0nQ0KK+mZiOebiOWptw0KK+mZiOebiOe7rg0KK+mZiOebiOeSiw0KK+mZiOebiOiwlQ0KK+mZiOebiOeShw0KK+mZiOebuOi+vg0KK+mZiOeliOWuvg0KK+mZiOemuem9kA0KK+mZiOenkemhug0KK+mZiOeni+aWuQ0KK+mZiOeni+W4hg0KK+mZiOeni+engA0KK+mZiOeni+e6rw0KK+mZiOeni+iQjQ0KK+mZiOeni+mbrw0KK+mZiOeni+eHlQ0KK+mZiOe6oueOiQ0KK+mZiOe6qui2sw0KK+mZiOe+juS6kQ0KK+mZiOe+jueOiQ0KK+mZiOe+juWmgg0KK+mZiOe+juW5tA0KK+mZiOe+juS8tg0KK+mZiOe+juWQmw0KK+mZiOe+juWQnw0KK+mZiOe+juW7tw0KK+mZiOe+juengA0KK+mZiOe+juiKnQ0KK+mZiOe+jueOsg0KK+mZiOe+juWonw0KK+mZiOe+jue6rw0KK+mZiOe+juS5lA0KK+mZiOe+juaDoA0KK+mZiOe+jueQtA0KK+mZiOe+juiPsQ0KK+mZiOe+jumTgw0KK+mZiOe+juaFpw0KK+mZiOe+juWEkg0KK+mZiOe+jumdmQ0KK+mZiOe+jumSsA0KK+mZiOe+v+iwtw0KK+mZiOiHtOS7sA0KK+mZiOiHtOWujw0KK+mZiOiHtOemjw0KK+mZiOiHtOedvw0KK+mZiOiLpeabpg0KK+mZiOiMgumbhA0KK+mZiOiLseadsA0KK+mZiOiLseaMrw0KK+mZiOiLseadsA0KK+mZiOiLseiTkw0KK+mZiOiLsem4vw0KK+mZiOiLk+Wonw0KK+mZiOiZueabsg0KK+mZiOiZueWQnw0KK+mZiOiZuea0gQ0KK+mZiOihjeiHsw0KK+mZiOihjemclg0KK+mZiOi0nuaXrQ0KK+mZiOi0nuWmpA0KK+mZiOi0nuiTiQ0KK+mZiOi0nueOrg0KK+mZiOmDgeS7gQ0KK+mZiOmDgeaWhw0KK+mZiOmDgeiKrA0KK+mZiOmDgeadsA0KK+mZiOmDgeiPgQ0KK+mZiOmDgeaeqw0KK+mZiOmHjeWFiQ0KK+mZiOmHjeW7tw0KK+mZiOmHjeWEkg0KK+mZiOmfpuWcqA0KK+mZiOmfpuS8tg0KK+mZiOmfpuW7tw0KK+mZiOmfpuaJvw0KK+mZiOmfpuixqg0KK+mZiOmfsw0KK+mZiOmjnuiJrw0KK+mZiOmmmeWmgg0KK+mZiOmmmeWQnw0KK+mZiOmmmeWptw0KK+mZiOWAjeeUhA0KK+mZiOW5uOe/oA0KK+mZiOWHjOegmg0KK+mZiOWTsuawkQ0KK+mZiOWTsuW8ug0KK+mZiOWTsui0pA0KK+mZiOWutuatow0KK+mZiOWutuWlhw0KK+mZiOWutuePjQ0KK+mZiOWutuelpQ0KK+mZiOWutua5lg0KK+mZiOWutumbrw0KK+mZiOWutuaxiQ0KK+mZiOWutuS7qg0KK+mZiOWutuaFpw0KK+mZiOWutuWFtA0KK+mZiOWutueQrg0KK+mZiOWuueiQsQ0KK+mZiOWzsOW3ng0KK+mZiOaBlQ0KK+mZiOaBqeiNow0KK+mZiOaMr+S4nA0KK+mZiOaMr+a2jA0KK+mZiOaMr+mTrQ0KK+mZiOaXtuebnw0KK+mZiOS5puWFiQ0KK+mZiOS5puavkw0KK+mZiOahgueOiQ0KK+mZiOahguaFpw0KK+mZiOazsOWFqA0KK+mZiOazsOS8tg0KK+mZiOazsOWzsA0KK+mZiOazsOmTrQ0KK+mZiOa1mumSpg0KK+mZiOa1qeiMuQ0KK+mZiOS9qeS6kQ0KK+mZiOS9qeaAoQ0KK+mZiOS9qeS9qQ0KK+mZiOS9qeeRnA0KK+mZiOS9qeeOrg0KK+mZiOebiuijlQ0KK+mZiOelkOaCjA0KK+mZiOe6ug0KK+mZiOe0oOePjQ0KK+mZiOe0oOWopQ0KK+mZiOe0oOeRnA0KK+mZiOe6r+aAoQ0KK+mZiOiAmOWuvQ0KK+mZiOiNg+ixqg0KK+mZiOmDoeaAoQ0KK+mZiOW5sua3pg0KK+mZiOS8n+awkQ0KK+mZiOS8n+S/oQ0KK+mZiOS8n+iOiQ0KK+mZiOS8n+ijlQ0KK+mZiOWBpeS4ig0KK+mZiOWBpeWwgQ0KK+mZiOWBpemclg0KK+mZiOWbveWFgw0KK+mZiOWbveaYjg0KK+mZiOWbveWzsA0KK+mZiOWbveaigQ0KK+mZiOWbveajiw0KK+mZiOWbveiNow0KK+mZiOWbvemUiw0KK+mZiOWdmuawkQ0KK+mZiOWfueiCsg0KK+mZiOWfueerrw0KK+mZiOWpieiCsg0KK+mZiOWpieWNvw0KK+mZiOWpieiPgQ0KK+mZiOWpiea0gQ0KK+mZiOW0h+WOnw0KK+mZiOaYhumTrQ0KK+mZiOW9qee6rw0KK+mZiOaNtw0KK+mZiOWQr+WtmA0KK+mZiOWQr+a4hQ0KK+mZiOWQr+mTrQ0KK+mZiOaVj+aYnw0KK+mZiOaVj+aWsA0KK+mZiOaik+eOrg0KK+mZiOaihemmqA0KK+mZiOa4heWlhw0KK+mZiOa4hea6kA0KK+mZiOa3kQ0KK+mZiOa3keWQmw0KK+mZiOa3keaAoQ0KK+mZiOa3keiKrA0KK+mZiOa3keiKrA0KK+mZiOa3keeOsg0KK+mZiOa3keeniw0KK+mZiOa3kei0ng0KK+mZiOa3keWonw0KK+mZiOa3keWonw0KK+mZiOa3keecnw0KK+mZiOa3kee+mg0KK+mZiOa3keaDoA0KK+mZiOa3keiQjQ0KK+mZiOa3kembhQ0KK+mZiOa3kemTgw0KK+mZiOa3keaFpw0KK+mZiOa3kemdmQ0KK+mZiOa4iueniw0KK+mZiOeMm+Wulw0KK+mZiOelpemSpw0KK+mZiOe7jeW6rQ0KK+mZiOW6hOS8nw0KK+mZiOiOieWptw0KK+mZiOiuuOawkQ0KK+mZiOmbquiKrA0KK+mZiOmbquWNjg0KK+mZiOadsOijlQ0KK+mZiOWHr+eOsg0KK+mZiOWHr+mSvw0KK+mZiOiDnOWmgg0KK+mZiOiDnOWYiQ0KK+mZiOWNmuW6tw0KK+mZiOS5lOWuhw0KK+mZiOWpt+eOnw0KK+mZiOWvjOawkQ0KK+mZiOWvjOiNow0KK+mZiOaDoOaWhw0KK+mZiOaDoOWQmw0KK+mZiOaDoOiKrA0KK+mZiOaDoOeOsg0KK+mZiOaDoOe+jg0KK+mZiOaDoOWonw0KK+mZiOaDoOWptw0KK+mZiOaDoOiQjQ0KK+mZiOaDoOmbrw0KK+mZiOaDoOmbrw0KK+mZiOaDoOm+hA0KK+mZiOaJrOWTsg0KK+mZiOaZtuaZtg0KK+mZiOaZr+azsA0KK+mZiOaZr+mRqw0KK+mZiOaZuuS6rg0KK+mZiOaZuuS8nw0KK+mZiOaZuumYsw0KK+mZiOaZuuWuvQ0KK+mZiOacneaWhw0KK+mZiOacneeGmQ0KK+mZiOaji+ePjQ0KK+mZiOa5mOS6jg0KK+mZiOa5mOeQtA0KK+mZiOa4neaWhw0KK+mZiOeQqumbrw0KK+mZiOeQpueQsw0KK+mZiOeZu+mahg0KK+mZiOetkeetoA0KK+mZiOiCg+adgw0KK+mZiOiIkuaGmw0KK+mZiOiPgQ0KK+mZiOWNjuS8nw0KK+mZiOWSj+S6rg0KK+mZiOi0uumSsA0KK+mZiOi+nOS6rg0KK+mZiOmAuOW5sw0KK+mZiOmAuOaYjg0KK+mZiOmAuOebiA0KK+mZiOmAuOiPgQ0KK+mZiOmAuOe7tA0KK+mZiOmAuOm4vw0KK+mZiOi/m+W/lw0KK+mZiOi/m+mahg0KK+mZiOmSp+Wxjw0KK+mZiOmXtemahg0KK+mZiOmahuaWjA0KK+mZiOmbheWQmw0KK+mZiOmbheeOqw0KK+mZiOmbheiKrA0KK+mZiOmbheeOsg0KK+mZiOmbheeOsg0KK+mZiOmbheiLkw0KK+mZiOmbheS9qQ0KK+mZiOmbhembqg0KK+mZiOmbheWptw0KK+mZiOmbheaDoA0KK+mZiOmbheaDoA0KK+mZiOmbheeQqg0KK+mZiOmbheeQtA0KK+mZiOmbheiPgQ0KK+mZiOmbhembrw0KK+mZiOmbhembrw0KK+mZiOmbhemTgw0KK+mZiOmbheaFpw0KK+mZiOmbhemftQ0KK+mZiOmbrw0KK+mZiOmbr+aDoA0KK+mZiOS6keactA0KK+mZiOmhuuWPkQ0KK+mZiOS8oOWFtA0KK+mZiOaEj+aWhw0KK+mZiOaEj+mbrw0KK+mZiOaFiOmbhQ0KK+mZiOeIseeUhA0KK+mZiOaVrOaWhw0KK+mZiOaVrOadsA0KK+mZiOaWsOeDiA0KK+mZiOS4mue7nw0KK+mZiOamhua2tQ0KK+mZiOavk+iJrw0KK+mZiOavk+iMuQ0KK+mZiOavk+mSpw0KK+mZiOa6kOatow0KK+mZiOa4qeiQjQ0KK+mZiOeFp+aFiA0KK+mZiOeFpua3kQ0KK+mZiOeEleajrg0KK+mZiOeRnuWIqQ0KK+mZiOeRnuaYjA0KK+mZiOeRnuiKrA0KK+mZiOeRnumSjw0KK+mZiOeRnueRnA0KK+mZiOeRnumclg0KK+mZiOeRnum6nw0KK+mZiOeRnOivlw0KK+mZiOeluuWvjA0KK+mZiOe7j+WbvQ0KK+mZiOS5ieW/oA0KK+mZiOS5iee6rA0KK+mZiOWco+WwuQ0KK+mZiOWco+WunA0KK+mZiOWco+adsA0KK+mZiOWco+Wuqg0KK+mZiOiQseiUkw0KK+mZiOicgueBjw0KK+mZiOijleWNhw0KK+mZiOijleW7tw0KK+mZiOijleaZug0KK+mZiOivl+W5sw0KK+mZiOivl+aziQ0KK+mZiOivl+Wptw0KK+mZiOivl+ivlw0KK+mZiOivl+iLuQ0KK+mZiOi/kOW+gQ0KK+mZiOi+vuijlQ0KK+mZiOmbjQ0KK+mZiOmdluaAoQ0KK+mZiOm8juS7gQ0KK+mZiOWYieS7gQ0KK+mZiOWYieS6qA0KK+mZiOWYieWujw0KK+mZiOWYieaAoQ0KK+mZiOWYieeOsg0KK+mZiOWYieWzsA0KK+mZiOWYieiMtQ0KK+mZiOWYiea3pg0KK+mZiOWYieaDoA0KK+mZiOWYiembgQ0KK+mZiOWYieWLpA0KK+mZiOWYieW+tw0KK+mZiOWYieiOuQ0KK+mZiOWYieiQpQ0KK+mZiOWYieeQrg0KK+mZiOaXl+aYjA0KK+mZiOiNo+adsA0KK+mZiOiNo+i/mw0KK+mZiOiNo+iAgA0KK+mZiOaxieePjQ0KK+mZiOaxieiUmg0KK+mZiOeRtuecnw0KK+mZiOeip+e6og0KK+mZiOeip+S6kQ0KK+mZiOehleS8nw0KK+mZiOemj+aelw0KK+mZiOe7ruWNjg0KK+mZiOe7tOmCpg0KK+mZiOe7tOWTsg0KK+mZiOe7tOS7qg0KK+mZiOe/oOWptw0KK+mZiOiCh+m4vw0KK+mZiOiTk+eOsg0KK+mZiOW/l+edvw0KK+mZiOmTrQ0KK+mZiOmTreaziQ0KK+mZiOmTreW8ug0KK+mZiOmTrembhA0KK+mZiOmTreiAgA0KK+mZiOWHpOeOsg0KK+mZiOWHpOm4ow0KK+mZiOS7qg0KK+mZiOS7quePig0KK+mZiOS7qua0gQ0KK+mZiOWuveWmgg0KK+mZiOW5v+m6nw0KK+mZiOW+t+WSjA0KK+mZiOW+t+Wggg0KK+mZiOW+t+i/nA0KK+mZiOW+geWulw0KK+mZiOW6huaYnw0KK+mZiOW6huWNjg0KK+mZiOW6hue7tA0KK+mZiOW6hue/sA0KK+mZiOW6hum4vw0KK+mZiOaFp+eOiQ0KK+mZiOaFp+Wmgg0KK+mZiOaFp+WQmw0KK+mZiOaFp+iKnQ0KK+mZiOaFp+ePig0KK+mZiOaFp+eOsg0KK+mZiOaFp+e+jg0KK+mZiOaFp+WNvw0KK+mZiOaFp+ecnw0KK+mZiOaFp+e6rw0KK+mZiOaFp+aVjw0KK+mZiOaFp+iQjQ0KK+mZiOaFp+mbrw0KK+mZiOaFp+iTiQ0KK+mZiOaFp+aotQ0KK+mZiOaFp+WFsA0KK+mZiOaFleWEkg0KK+mZiOavheatow0KK+mZiOavhem4vw0KK+mZiOa0gemfsw0KK+mZiOiOueiKsw0KK+mZiOiOueiTiQ0KK+mZiOiOueeRhA0KK+mZiOe6rOaBqQ0KK+mZiOiUmumdkg0KK+mZiOiwiuiKsw0KK+mZiOi0pOWFuA0KK+mZiOi+ieWQiQ0KK+mZiOmch+Wuhw0KK+mZiOm7juahgg0KK+mZiOWtpuaYjg0KK+mZiOWuquS7gQ0KK+mZiOWuquS7qg0KK+mZiOW/humbrw0KK+mZiOaZk+Wnlw0KK+mZiOaZk+mdkg0KK+mZiOaZk+mjjg0KK+mZiOaZk+Wymg0KK+mZiOaZk+iPgQ0KK+mZiOaZk+etoA0KK+mZiOaZk+aFpw0KK+mZiOaZk+S4vQ0KK+mZiOagkeW5tA0KK+mZiOazveePig0KK+mZiOeHleS8tg0KK+mZiOeHleiPgQ0KK+mZiOeHleaAnA0KK+mZiOmiluWQmw0KK+mZiOmiluelpQ0KK+mZiOmiluaFpw0KK+mZiOephuiTiQ0KK+mZiOe/sOeSiw0KK+mZiOiVmeiKsw0KK+mZiOiVmeiLuQ0KK+mZiOmUoeWNjg0KK+mZiOmUpuengA0KK+mZiOmUpuWggg0KK+mZiOmUpuaFpw0KK+mZiOmUpum4vw0KK+mZiOmdmeWmgg0KK+mZiOmdmeWunA0KK+mZiOmdmeaAoQ0KK+mZiOmdmeaAoQ0KK+mZiOmdmeaAoQ0KK+mZiOmdmeiKsw0KK+mZiOmdmea3kQ0KK+mZiOmdmeWugQ0KK+mZiOmdmeS7qg0KK+mZiOmdmeaFpw0KK+mZiOmdmei0pA0KK+mZiOm+meeUnw0KK+mZiOm+meWuvQ0KK+mZiOabmeS4nA0KK+mZiOiBquS7gQ0KK+mZiOiHhuS7gQ0KK+mZiOiWhw0KK+mZiOiWh+Wmgg0KK+mZiOiwpuavhQ0KK+mZiOmqj+aJrA0KK+mZiOm4v+aWhw0KK+mZiOm4v+W/lw0KK+mZiOm4v+a4hQ0KK+mZiOm4v+ijlQ0KK+mZiOm4v+mclg0KK+mZiOeSh+Wmgg0KK+mZiOS4sOaMrw0KK+mZiOaAgOWTsg0KK+mZiOeOuuS6iQ0KK+mZiOeQvOa3hw0KK+mZiOeQvOahpg0KK+mZiOiJuuW/gw0KK+mZiOi1nuS4rQ0KK+mZiOmTv+S7uw0KK+mZiOmfteWkmQ0KK+mZiOmfteWmgg0KK+mZiOmfteWmgg0KK+mZiOmfteWmgg0KK+mZiOmfteeruQ0KK+mZiOmfteWptw0KK+mZiOmftemdmQ0KK+mZiOm5j+emvg0KK+mZiOm6kuWFgw0KK+mZiOm6kuWFqA0KK+mZiOS4veaWhw0KK+mZiOS4veWmgg0KK+mZiOS4veWuhw0KK+mZiOS4veiAjA0KK+mZiOS4veiKrA0KK+mZiOS4veWNvw0KK+mZiOS4veePoA0KK+mZiOS4veWptw0KK+mZiOS4veiQjQ0KK+mZiOS4vembrw0KK+mZiOS4veiOsg0KK+mZiOWuneeOiQ0KK+mZiOWuneiOsg0KK+mZiOiAgOS7gQ0KK+mZiOiAgOesmQ0KK+mZiOmmqOaAoQ0KK+mZiOS/quaWhw0KK+mZiOaoseWuuQ0KK+mZiOiqiem+hA0KK+mZiOm5pOS4rQ0KK+mZiOaHv+aYoA0KK+mZiOiJs+mTgw0KK+mZiOiKiuengA0KK+mZiOaAnOWQmw0KK+mZiOaXu+aUvw0KK+mZiOeOoOa6kA0KK+mZiOWnrumcjw0KK+mZiOWnteWmgg0KK+mZiOWnteWQnw0KK+mZiOWnteeRsQ0KK+mZiOaYtuaYsQ0KK+mZiOePiOeQpg0KK+mZiOW9p+mmqA0KK+mZiOeQh+Wmgg0KK+mZiOWgnA0KK+mZiOeQrumXtQ0KK+mZiOeQrOWptw0KK+mZiOeQrOiPgQ0KK+mZiOakuOa2kw0KK+mZiOeOrg0KK+mZiOeOruWFuA0KK+mZiOeOruiAmA0KK+mZiOeOruaYtg0KK+mZiOetseiKsw0KK+mZiOetseWptw0KK+mZiOetseetoA0KK+mZiOiQqeiKuA0KK+mZiOmSsOeOqw0KK+mZiOmSsOWptw0KK+mZiOmSsOeOug0KK+mZiOmTq+iMuQ0KK+mZiOmciOWuhw0KK+mZiOiWj+mbrw0KK+mZiOa7ouWmgg0KK+mZiOa7oua3kQ0KK+mZiOWsv+WboA0KK+mZiOWsv+S8tg0KK+mZiOmhl+aWhw0KK+mZiOmRq+m6nw0KK+mZhuWwj+eHlQ0KK+mZhuato+S5iQ0KK+mZhuWto+Wujw0KK+mZhuS/oem+mQ0KK+mZhua0peWNjg0KK+mZhuaiheWptw0KK+mZhuS6keazsA0KK+mZhuWHpOeOsg0KK+mZhua3r+mTgw0KK+mZtuiCsuWdhw0KK+mZtuaDn+iQsQ0KK+eroOaWh+iKnQ0KK+eroOS9s+S6kQ0KK+eroOaguea6kA0KK+eroOe/lA0KK+eroOeQvOaWuQ0KK+m6puS9qembrw0KK+m6puWNouWuneWFqA0KK+WCheS4gOmbhA0KK+WCheWtkA0KK+WCheaWh+i/mw0KK+WCheato+W4jA0KK+WCheWFieaZug0KK+WCheWuj+aWjA0KK+WCheS6muWHoQ0KK+WCheaAoeiKsw0KK+WChemHkeWujw0KK+WCheW7uuWbvQ0KK+WCheaYoOWFiA0KK+WChee+juiTiQ0KK+WCheS9qea3hw0KK+WCheWbveagiw0KK+WCheWQr+eahw0KK+WChea3kembrw0KK+WCheaWr+W5sw0KK+WChembheWNvw0KK+WCheeFjOmUpg0KK+WChemTheaWhw0KK+WCheW+t+aUvw0KK+WChemUuea3vA0KK+WCheeQrg0KK+WNleS6puS+oA0KK+WWu+iHs+WWhA0KK+S5lOWul+Wwpw0KK+WvjOW6t+e/lA0KK+W9reS4iuWQiQ0KK+W9reWjqw0KK+W9reS7geW/lw0KK+W9reWPiui+sA0KK+W9reaWh+Wujw0KK+W9reaWh+aFpw0KK+W9reS7peS/oQ0KK+W9reato+iJrw0KK+W9reeOieWNjg0KK+W9reS8iuiKrA0KK+W9reWmguaVjw0KK+W9reaIkOadsA0KK+W9reaXreWInQ0KK+W9reWuj+WQmw0KK+W9reW/l+ixqg0KK+W9reS9s+S8nw0KK+W9reWul+aEjw0KK+W9reaAoeiVmQ0KK+W9reaci+mbjQ0KK+W9reenieatow0KK+W9reS/neasow0KK+W9reS/iuemjw0KK+W9reWGoOeRmw0KK+W9reWogee/lA0KK+W9reW7uuiNow0KK+W9reW+i+WHoQ0KK+W9reafj+WogQ0KK+W9reeni+iQjQ0KK+W9reiLpeaFiA0KK+W9remDgeS7gQ0KK+W9reWTsuS7gQ0KK+W9rea1qeS8pg0KK+W9reS8n+WQmw0KK+W9reWbveWzsA0KK+W9reW0h+S/oQ0KK+W9reWQr+mSpw0KK+W9rea3keePjQ0KK+W9reebmw0KK+W9rembqueQpg0KK+W9reWWnOa1qQ0KK+W9reaZtuWjsA0KK+W9rea7i+iQjQ0KK+W9reiIkuW9pg0KK+W9reW8gOaYjg0KK+W9rembhee7og0KK+W9reeIseiLuQ0KK+W9reeRnuiLkw0KK+W9reWco+iQjQ0KK+W9reWYieWQmw0KK+W9reiNo+ahgg0KK+W9remTrea3hw0KK+W9reaFp+Wmgg0KK+W9rei0pOS4gA0KK+W9reaZk+eQqg0KK+W9remUpueCqw0KK+W9remqj+a0gQ0KK+W9reS4veaFpw0KK+W9remmqOaFpw0KK+W9reeOruW9pg0KK+W9remigOiLuQ0KK+aZr+mbqOeniw0KK+abvuWHoeWTsg0KK+abvuS6juaFiA0KK+abvuWNg+ixqg0KK+abvuWjq+i9qQ0KK+abvuWjqw0KK+abvuWtkOW6rQ0KK+abvuWwj+eOsg0KK+abvuS7geS9kQ0KK+abvuWFg+W/lw0KK+abvuWtlOmSsA0KK+abvuaWhw0KK+abvuaWh+W/oA0KK+abvuaWh+W9rA0KK+abvuaWh+aFpw0KK+abvuaWh+mhlw0KK+abvuS4lueFjA0KK+abvuS7pOeRnA0KK+abvuW5s+ivsA0KK+abvuato+iAgA0KK+abvueOieWmgg0KK+abvueOieiPgQ0KK+abvueri+W+tw0KK+abvuS7suebnw0KK+abvuWQieWujw0KK+abvuWmguWQmw0KK+abvuWuieeQqg0KK+abvue+veWyrQ0KK+abvuWQm+ixqg0KK+abvuW/l+eOhA0KK+abvuW/l+adsA0KK+abvuW/l+m6nw0KK+abvuengOaihQ0KK+abvuiCsuiPgQ0KK+abvuS9s+eOsg0KK+abvuS9s+eRsQ0KK+abvuWto+athg0KK+abvuWwmuW/lw0KK+abvuaAoeWonw0KK+abvuaAoeWYiQ0KK+abvuaJv+W/lw0KK+abvuaYjuW+tw0KK+abvuazk+mclg0KK+abvuiKneWFsA0KK+abvuS/oeadsA0KK+abvuS/iuW9pg0KK+abvuS/iuaZug0KK+abvuS/iuixqg0KK+abvuS/iueOrg0KK+abvuWGoOahpg0KK+abvuWTgeW9sA0KK+abvuWnv+e7rg0KK+abvuWogeiwlQ0KK+abvuW7uuWSjA0KK+abvuW7uuWNmg0KK+abvuW7uuiNow0KK+abvuW7uumclg0KK+abvuW9pumXtQ0KK+abvuW9pue/sA0KK+abvuaAnee7tA0KK+abvuaUv+ixqg0KK+abvuaYree/lA0KK+abvuaYoOm+hA0KK+abvuafj+a2tQ0KK+abvuafj+WFtA0KK+abvueah+m+mQ0KK+abvueni+aVjw0KK+abvue+juaAoQ0KK+abvue+juWNjg0KK+abvue+jum+hA0KK+abvuiLseWzsA0KK+abvumDgeaWhw0KK+abvumDgemilg0KK+abvuWutuaMrw0KK+abvuWxleWFtg0KK+abvuS5puaFpw0KK+abvuS9qeeQsw0KK+abvue0oOmTgw0KK+abvui9qeW9rA0KK+abvuS8n+e/lA0KK+abvuWBpemAog0KK+abvuWbveW/lw0KK+abvuWbveS5pg0KK+abvuWbveijlQ0KK+abvuWbvemLhg0KK+abvuWpieaDoA0KK+abvuW6uOWTsg0KK+abvuWQr+W8ug0KK+abvuaiheeOiQ0KK+abvua3keiKsw0KK+abvua3keaVjw0KK+abvua3keiQjQ0KK+abvua2teWJrw0KK+abvuelpei+vg0KK+abvui0r+aZug0KK+abvuWHr+aCjA0KK+abvuWNmuW9pg0KK+abvuWvjOmSsA0KK+abvuaDoOeOsg0KK+abvuaDoOmbrw0KK+abvuaWkOe6og0KK+abvuaZuuW8mA0KK+abvuaZuuelug0KK+abvua5mOS6kQ0KK+abvuiIkuW5sw0KK+abvuWNjum+hA0KK+abvui0teelrw0KK+abvumSp+m8jg0KK+abvumbhemdkg0KK+abvumbheaDoA0KK+abvumbhemTiQ0KK+abvuS6keaykA0KK+abvuaEj+aWhw0KK+abvuaFiOaDoA0KK+abvuaZlua0uA0KK+abvua6peWFgw0KK+abvueEleadsA0KK+abvueRnuaZgw0KK+abvueRm+eQsw0KK+abvuetoOWHig0KK+abvuWco+eEtg0KK+abvuijleWHrw0KK+abvuivl+e/sA0KK+abvumdluWonw0KK+abvum8juWFgw0KK+abvuWYieiLsQ0KK+abvuiNow0KK+abvueip+iOsg0KK+abvue7tOe+pA0KK+abvumTreihlA0KK+abvuW+t+m+mQ0KK+abvuW6hueRhA0KK+abvuaFp+ecnw0KK+abvua+hOWgiQ0KK+abvuWuquW/oA0KK+abvuaZk+eQqg0KK+abvuiVmeiPgQ0KK+abvumdmeaAoQ0KK+abvue5gemdkg0KK+abvum4v+Wutg0KK+abvuaAgOi0pA0KK+abvueQvOaFpw0KK+abvumfteecnw0KK+abvuS4veWonw0KK+abvuWuneejgQ0KK+abvue7p+Wing0KK+abvuiAgOi0pA0KK+abvummqOS7qg0KK+abvum+hOaFpw0KK+abvumDhee1nA0KK+abvueQruW9pg0KK+abvuaakOa4hQ0KK+abvuetseWptw0KK+abvumSsOiKrA0KK+abvueejQ0KK+a4uOWKm+ihjA0KK+a4uOWjq+axiQ0KK+a4uOWkp+e6rA0KK+a4uOS5i+WotA0KK+a4uOaWh+W/lw0KK+a4uOaWh+iBqg0KK+a4uOS4luaWjA0KK+a4uOacrOWogQ0KK+a4uOeOieWnvw0KK+a4uOWFhuWQmw0KK+a4uOWQm+iLuQ0KK+a4uOW/l+S8nw0KK+a4uOadjumbhA0KK+a4uOS6muS/kA0KK+a4uOS9s+aVjw0KK+a4uOS9qeWLiw0KK+a4uOWul+Wuqg0KK+a4uOWunOe+pA0KK+a4uOaAoeelpQ0KK+a4uOaYjOe/sA0KK+a4uOaYjuS7qg0KK+a4uOasow0KK+a4uOmdkumcjw0KK+a4uOWllemclg0KK+a4uOaUv+eSiw0KK+a4uOeni+aAoQ0KK+a4uOiLseWmgg0KK+a4uOWon+Wonw0KK+a4uOWutuixqg0KK+a4uOaBqeaUvw0KK+a4uOS9qeetoA0KK+a4uOmrmOadsA0KK+a4uOWpiemdkg0KK+a4uOWQr+i+iQ0KK+a4uOa3keWmgg0KK+a4uOa3keaDoA0KK+a4uOelpeadsA0KK+a4uOWHr+WqnA0KK+a4uOS5lOaZug0KK+a4uOaDoOeOsg0KK+a4uOaZr+e/lA0KK+a4uOaZuui2hQ0KK+a4uOacneiInA0KK+a4uOero+ebmw0KK+a4uOiInOadsA0KK+a4uOi/m+WvjA0KK+a4uOmbheiKsw0KK+a4uOmbheWptw0KK+a4uOmbheetoA0KK+a4uOeRnuiOsg0KK+a4uOijleW+tw0KK+a4uOiNo+WNjg0KK+a4uOW6huiKsw0KK+a4uOi+ieelpQ0KK+a4uOaZk+iKuA0KK+a4uOmUoeWulw0KK+a4uOmqj+S8nw0KK+a4uOmVh+mCpg0KK+a4uOeMrue+pA0KK+a4uOaXu+Wuqg0KK+a4uOefnueahw0KK+axpOS4gOePig0KK+axpOS7iuWFsA0KK+axpOeOieeQtA0KK+axpOW/l+W/oA0KK+axpOS9s+e/sA0KK+axpOWys+ixig0KK+axpOayu+mCpg0KK+axpOWutuixqg0KK+axpOWBpeaWhw0KK+axpOa4iuWvjA0KK+axpOWvjOajiw0KK+axpOWSj+eRnA0KK+axpOmbheaeqw0KK+axpOW6humTrg0KK+axpOm4v+i0pA0KK+eEpuS/oeelpQ0KK+eoi+S5i+WugQ0KK+eoi+aWh+mUug0KK+eoi+eri+i+iQ0KK+eoi+W/l+aWhw0KK+eoi+WwmuWImQ0KK+eoi+eniemRqw0KK+eoi+Wlleasow0KK+eoi+W7uue/sA0KK+eoi+afj+eroA0KK+eoi+eni+WFsA0KK+eoi+S8n+aUvw0KK+eoi+Wpieasow0KK+eoi+a3keeOsg0KK+eoi+aWkOaWhw0KK+eoi+mbheaDoA0KK+eoi+ivl+Wptw0KK+eoi+a0geiPoQ0KK+eoi+eQvOiQsQ0KK+eoi+iVtOmcng0KK+erpeWjq+iKrA0KK+erpeW8mA0KK+erpeWuieS6qA0KK+erpeS/oeWSjA0KK+erpee+jua7oQ0KK+erpeaDn+aWsA0KK+erpea5mOiKuA0KK+erpeWco+adsA0KK+erpemfteWmgg0KK+erpea7ouiTiQ0KK+iIkuWpt+Wptw0KK+WNjuWbvemUiw0KK+img+aAnem9kA0KK+i0uemqkOiRsw0KK+i0uuWOmuW5sw0KK+i0uueRnuS4vQ0KK+S5sOiPgeWNjg0KK+i+nOS/oeemjw0KK+i+nOmDgeS7gQ0KK+i+nOaDoOe+pA0KK+i+nOmdmeaAoQ0KK+mXteS7u+i/nA0KK+mYs+ato+WFiQ0KK+S6keaZuuWLhw0KK+mhu+S4iuiLkQ0KK+WGr+WFgeS4rQ0KK+WGr+aWh+aUvw0KK+WGr+awuOa7og0KK+WGr+S9kembhA0KK+WGr+S9s+eQpg0KK+WGr+mVv+m+mQ0KK+WGr+W7uuetjA0KK+WGr+e+juePig0KK+WGr+aZi+WYiQ0KK+WGr+W9qeWonw0KK+WGr+WNmuS8nw0KK+WGr+e/lOeRnA0KK+WGr+eRnumYsw0KK+WGr+W/l+mBtQ0KK+WGr+eCveeCnA0KK+WGr+iAgOaWhw0KK+m7hOS4gA0KK+m7hOS4gOS8pg0KK+m7hOS5meS4ig0KK+m7hOWKm+iogA0KK+m7hOS4iuiKsw0KK+m7hOWHoee7tA0KK+m7hOS6juiKrA0KK+m7hOS6juePig0KK+m7hOS6juWTsg0KK+m7hOS6juecnw0KK+m7hOS6juelrw0KK+m7hOWNg+iKsw0KK+m7hOWNg+WHjA0KK+m7hOWNg+WNjg0KK+m7hOWjqw0KK+m7hOWjq+asow0KK+m7hOWjq+WOnw0KK+m7hOWjq+WzsA0KK+m7hOWjq+mSig0KK+m7hOWjq+WYiQ0KK+m7hOWjq+ixqg0KK+m7hOWjq+i0pA0KK+m7hOWkp+S8pg0KK+m7hOWtkOaJjQ0KK+m7hOWtkOW7ug0KK+m7hOWtkOWNvw0KK+m7hOWtkOi9qQ0KK+m7hOWtkOephg0KK+m7hOWwj+S9qQ0KK+m7hOWwj+Wonw0KK+m7hOWxseWzsA0KK+m7hOaJjeaXug0KK+m7hOS4reS8nw0KK+m7hOS5i+S6rQ0KK+m7hOS7geW8mA0KK+m7hOS7geiJrw0KK+m7hOS7geafjw0KK+m7hOS7geeSiw0KK+m7hOWFg+WxsQ0KK+m7hOWFg+mahg0KK+m7hOWFg+mqjw0KK+m7hOWPi+iwpg0KK+m7hOWkqeWBpQ0KK+m7hOWwkembqA0KK+m7hOW/g+aAoQ0KK+m7hOW/g+aAoQ0KK+m7hOW/g+aAoQ0KK+m7hOW/g+S7qg0KK+m7hOW/g+Wnrg0KK+m7hOaWh+atow0KK+m7hOaWh+WtnQ0KK+m7hOaWh+adkQ0KK+m7hOaWh+aAoQ0KK+m7hOaWh+S/oQ0KK+m7hOaWh+W9pg0KK+m7hOaWh+eOsg0KK+m7hOaWh+ebig0KK+m7hOaWh+iDnA0KK+m7hOaWh+mahg0KK+m7hOaWh+elug0KK+m7hOaWh+iNow0KK+m7hOaWh+eSiw0KK+m7hOaWh+m+mQ0KK+m7hOaWh+m6kg0KK+m7hOaXpemdkg0KK+m7hOaciOeRvg0KK+m7hOS4luWuiQ0KK+m7hOS4luWunA0KK+m7hOS4luaciw0KK+m7hOS4luWdmg0KK+m7hOS4lua2jA0KK+m7hOS4luWYiQ0KK+m7hOS4luWing0KK+m7hOS4lumilg0KK+m7hOS7peS5lA0KK+m7hOS7lei+vg0KK+m7hOWKoOasow0KK+m7hOWPr+eUhA0KK+m7hOW3p+Wptw0KK+m7hOW5s+Wuhw0KK+m7hOW8mOWQiQ0KK+m7hOW8mOavhQ0KK+m7hOato+S4gA0KK+m7hOato+WuiQ0KK+m7hOato+S9qQ0KK+m7hOato+S8nw0KK+m7hOato+mhug0KK+m7hOato+mUnw0KK+m7hOawuOS7gQ0KK+m7hOawuOWNhw0KK+m7hOawuOaZug0KK+m7hOawuOaxiQ0KK+m7hOaxgOa7oQ0KK+m7hOeOieWQmw0KK+m7hOeOiembqA0KK+m7hOeOieWonw0KK+m7hOeOieWptw0KK+m7hOeOieiPgQ0KK+m7hOeOieiOuQ0KK+m7hOeOieWFsA0KK+m7hOeri+aWhw0KK+m7hOeri+iKrA0KK+m7hOeri+i+vg0KK+m7hOeri+e6rA0KK+m7hOS6puiQsQ0KK+m7hOS7suatow0KK+m7hOS7sueFpg0KK+m7hOS7u+W7tg0KK+m7hOWFieeOiQ0KK+m7hOWFiea7oQ0KK+m7hOWFhuaVjw0KK+m7hOWFqOWvjA0KK+m7hOWQieW7tw0KK+m7hOWQjeaxoA0KK+m7hOWkmeaFpw0KK+m7hOWmguecnw0KK+m7hOWmgue/sA0KK+m7hOWuh+W7tw0KK+m7hOWuiOeUsA0KK+m7hOWuieW+tw0KK+m7hOaXreW8mA0KK+m7hOaXrei+iQ0KK+m7hOaxn+eRnA0KK+m7hOeZvueBvw0KK+m7hOiBv+WQmw0KK+m7hOiHs+aesA0KK+m7hOiHs+m5jw0KK+m7hOS8r+W5tA0KK+m7hOWFi+S7uw0KK+m7hOWQm+aAoQ0KK+m7hOWmmeiKrA0KK+m7hOWtneW9sA0KK+m7hOWuj+S6rg0KK+m7hOWuj+i/mw0KK+m7hOWuj+mqjw0KK+m7hOW/l+S7gQ0KK+m7hOW/l+W5sw0KK+m7hOW/l+aIkA0KK+m7hOW/l+aYjg0KK+m7hOW/l+S8nw0KK+m7hOW/l+W8ug0KK+m7hOW/l+aJrA0KK+m7hOW/l+mbhA0KK+m7hOW/l+WYiQ0KK+m7hOW/l+ixqg0KK+m7hOW/l+mTrQ0KK+m7hOW/l+m+mQ0KK+m7hOadj+Wmgg0KK+m7hOaym+WjsA0KK+m7hOengOeOsg0KK+m7hOengOWuuQ0KK+m7hOengOWNjg0KK+m7hOengOiTiQ0KK+m7hOiCsuS/oQ0KK+m7hOiJrw0KK+m7hOmCpuW9pg0KK+m7hOS+neaWhw0KK+m7hOS9s+WFgw0KK+m7hOS9s+aYpQ0KK+m7hOS9s+Wqmw0KK+m7hOS9s+WNjg0KK+m7hOS9s+WotA0KK+m7hOS9s+iVmQ0KK+m7hOS9qeS/kA0KK+m7hOS9qeiQsQ0KK+m7hOWNk+WQmw0KK+m7hOWdpOW+tw0KK+m7hOWtn+S4kw0KK+m7hOWtn+aotQ0KK+m7hOWul+Wfug0KK+m7hOWul+i0pA0KK+m7hOWunOeOsg0KK+m7hOWum+i0ng0KK+m7hOW5uOS7qg0KK+m7hOW/teiKuQ0KK+m7hOaAoeWQmw0KK+m7hOaAoeePig0KK+m7hOaAoeiMuQ0KK+m7hOaAoeiQjQ0KK+m7hOaAoeiPgQ0KK+m7hOaAoembrw0KK+m7hOaAoeWYiQ0KK+m7hOaAoee7tA0KK+m7hOaAoem+hA0KK+m7hOaJv+W+tw0KK+m7hOaYjOm8jg0KK+m7hOaYjuW/lw0KK+m7hOaYjuW9pg0KK+m7hOaYjueQhg0KK+m7hOaYjueRng0KK+m7hOaYjuaFpw0KK+m7hOaYleWymg0KK+m7hOS4nOa1tw0KK+m7hOadvuetoA0KK+m7hOaso+aAoQ0KK+m7hOaso+aEiQ0KK+m7hOaso+iVmQ0KK+m7hOays+mhug0KK+m7hOayu+W5sw0KK+m7hOeOn+eRvg0KK+m7hOeniemSpw0KK+m7hOiKneWNjg0KK+m7hOiKt+S6kQ0KK+m7hOmHkeaxpA0KK+m7hOmHkeagkQ0KK+m7hOmVv+azvQ0KK+m7hOS6reiQjQ0KK+m7hOS6ruWHrw0KK+m7hOS/oeaWhw0KK+m7hOS/oeaNtw0KK+m7hOS/oeajoA0KK+m7hOS/oeaBug0KK+m7hOS/oeW9sA0KK+m7hOS/oemTrQ0KK+m7hOS/oemilg0KK+m7hOS/oeaWjA0KK+m7hOS/neeSgQ0KK+m7hOS/iueUnw0KK+m7hOS/iuWTsg0KK+m7hOS/iua3hw0KK+m7hOS/iuadsA0KK+m7hOS/iuadsA0KK+m7hOS/iuadsA0KK+m7hOS/iuWHrw0KK+m7hOS/iuajiw0KK+m7hOS/iuiInA0KK+m7hOS/iumahg0KK+m7hOS/iuelug0KK+m7hOS/iuWYiQ0KK+m7hOS/iue7tA0KK+m7hOS/iuixqg0KK+m7hOS/iui0pA0KK+m7hOS/iumilg0KK+m7hOS/ium+mQ0KK+m7hOS/iueDqA0KK+m7hOS/nuaWkA0KK+m7hOWGoOaAoQ0KK+m7hOWGoOeoiw0KK+m7hOWGoOmbhQ0KK+m7hOWGoOWuvg0KK+m7hOWGoOm+mQ0KK+m7hOWLh+aFpw0KK+m7hOWOmuebmw0KK+m7hOWTgeadsA0KK+m7hOWTgeavhQ0KK+m7hOWlleaPhg0KK+m7hOWllemclg0KK+m7hOWnv+Wptw0KK+m7hOWnv+e7qw0KK+m7hOWogeWHrw0KK+m7hOWogemTrQ0KK+m7hOWuo+WHrw0KK+m7hOWuo+ephg0KK+m7hOW7uuS4rQ0KK+m7hOW7uuaWhw0KK+m7hOW7uumdkg0KK+m7hOW7uuWHrw0KK+m7hOW7uuaZug0KK+m7hOW7uueoiw0KK+m7hOW7uumSpw0KK+m7hOW7uua6kA0KK+m7hOW7uuW9sA0KK+m7hOW7uuixqg0KK+m7hOW7uumTrQ0KK+m7hOW7uuWLiw0KK+m7hOW7uumilg0KK+m7hOW7uum+mQ0KK+m7hOW9puWkqg0KK+m7hOW9puW8ug0KK+m7hOW9puWNmg0KK+m7hOW9pueakw0KK+m7hOW9pueRnA0KK+m7hOW9puWuvg0KK+m7hOW9puaotQ0KK+m7hOW9puaWjA0KK+m7hOaAneWHrw0KK+m7hOaAneWYiQ0KK+m7hOaAnei0pA0KK+m7hOaAneeOrg0KK+m7hOaUv+WOnw0KK+m7hOaUv+aJrA0KK+m7hOaUv+m+mQ0KK+m7hOaYpeWgpA0KK+m7hOaYreS7gQ0KK+m7hOaYreaZug0KK+m7hOaYree7tA0KK+m7hOaYoOeRhA0KK+m7hOaYseS4rQ0KK+m7hOaYseaBug0KK+m7hOaYsem+mQ0KK+m7hOafj+WFgw0KK+m7hOafj+W8ug0KK+m7hOafj+S5lA0KK+m7hOafj+e/lA0KK+m7hOafj+eRng0KK+m7hOafj+e7rg0KK+m7hOafj+eSiw0KK+m7hOafj+e/sA0KK+m7hOafj+emsg0KK+m7hOS4uuagiw0KK+m7hOeCs+Wuqg0KK+m7hOePiuiQjQ0KK+m7hOePgOmSnw0KK+m7hOebiOaDoA0KK+m7hOebiOW9sA0KK+m7hOebuOW/lw0KK+m7hOeni+iKsw0KK+m7hOeni+iQjQ0KK+m7hOeni+eRmw0KK+m7hOeni+mcng0KK+m7hOe+jueOiQ0KK+m7hOe+jueOsg0KK+m7hOe+juWonw0KK+m7hOe+jue+mg0KK+m7hOe+juetkQ0KK+m7hOe+jumbrw0KK+m7hOe+juiTiQ0KK+m7hOe+jueHlQ0KK+m7hOiHtOaBkg0KK+m7hOiHtOi/nA0KK+m7hOiLpeiWhw0KK+m7hOiMgua6kA0KK+m7hOiLseW9pg0KK+m7hOiLseadsA0KK+m7hOiLsemTrQ0KK+m7hOihjemSpg0KK+m7hOi0numilg0KK+m7hOmDgeS7gQ0KK+m7hOmDgeeOqw0KK+m7hOmDgeePig0KK+m7hOmDgeiMlw0KK+m7hOmDgeWptw0KK+m7hOmDgeajoA0KK+m7hOmDgembrw0KK+m7hOmDgemdmQ0KK+m7hOmHjeWHrw0KK+m7hOmfpueQqg0KK+m7hOmfpuWLiw0KK+m7hOmmmeamlQ0KK+m7hOS7k+W9pg0KK+m7hOWTsuaeqw0KK+m7hOWtmeWuhw0KK+m7hOWutuePjQ0KK+m7hOWutumahg0KK+m7hOWutue6rA0KK+m7hOWzu+WzpQ0KK+m7hOW6remSsA0KK+m7hOaMr+eUqw0KK+m7hOaMr+W6rQ0KK+m7hOaMr+ivmg0KK+m7hOaMr+eOsQ0KK+m7hOS5puWvhQ0KK+m7hOS5pumSsA0KK+m7hOazsOaYhg0KK+m7hOazsOmclg0KK+m7hOa1qeWkqQ0KK+m7hOa1qemSpw0KK+m7hOS9qeiKuA0KK+m7hOS9qeWonw0KK+m7hOS9qeiIkg0KK+m7hOS9qeeRnA0KK+m7hOebiuW7ug0KK+m7hOellui0pA0KK+m7hOe0oOecnw0KK+m7hOe6r+e+jg0KK+m7hOiDveS4sA0KK+m7hOmSiuS/ig0KK+m7hOS8n+WumQ0KK+m7hOS8n+S/rg0KK+m7hOS8n+WzsA0KK+m7hOS8n+adsA0KK+m7hOS8n+ivmg0KK+m7hOS8n+mTrQ0KK+m7hOWBpeWlhw0KK+m7hOWBpeaZjw0KK+m7hOWBpea6og0KK+m7hOWHsOaFiA0KK+m7hOWbveWFqA0KK+m7hOWbveiKsw0KK+m7hOWbveS8pg0KK+m7hOWbveWxlQ0KK+m7hOWbveaZiw0KK+m7hOWbvei9qQ0KK+m7hOWbveagiw0KK+m7hOWbvemSpw0KK+m7hOWbveijlQ0KK+m7hOWbveiNow0KK+m7hOWbveixqg0KK+m7hOWbvemSnw0KK+m7hOWggui9qQ0KK+m7hOWfueWzuw0KK+m7hOWfuemTrQ0KK+m7hOWpiei0ng0KK+m7hOWpieiPgQ0KK+m7hOWwiee/lA0KK+m7hOW0h+iurQ0KK+m7hOW0h+mTrQ0KK+m7hOW4uOagkQ0KK+m7hOW9qemTrQ0KK+m7hOaDn+Wcow0KK+m7hOWQr+Wujw0KK+m7hOWQr+S/rg0KK+m7hOWQr+S5pg0KK+m7hOWQr+W9sA0KK+m7hOaVjw0KK+m7hOaVj+S/rg0KK+m7hOaVj+WNjg0KK+m7hOaVj+aFpw0KK+m7hOaiheeOsg0KK+m7hOa3u+iZjg0KK+m7hOa4heazsA0KK+m7hOa4hem6nw0KK+m7hOa3keWykQ0KK+m7hOa3keiKrA0KK+m7hOa3keeOsg0KK+m7hOa3kei0ng0KK+m7hOa3keWNvw0KK+m7hOa3keahgw0KK+m7hOa3keaihQ0KK+m7hOa3keWqmw0KK+m7hOa3keeQqg0KK+m7hOa3keWNjg0KK+m7hOa3kembrw0KK+m7hOa3keeUhA0KK+m7hOa3kemdmQ0KK+m7hOa4iui0pA0KK+m7hOeajg0KK+m7hOelpeaBqQ0KK+m7hOelpeaWjA0KK+m7hOe7jeiQsQ0KK+m7hOiOiQ0KK+m7hOiOieWonw0KK+m7hOiOieeQqg0KK+m7hOiOieWYiQ0KK+m7hOmAlOWyqQ0KK+m7hOmbquWHpA0KK+m7hOadsOaWhw0KK+m7hOWHr+WogQ0KK+m7hOWHr+eQqg0KK+m7hOWHr+m6nw0KK+m7hOiDnOW/lw0KK+m7hOiDnOijlQ0KK+m7hOWNmuazsA0KK+m7hOWWnOm6nw0KK+m7hOWwp+S8nw0KK+m7hOWpt+Wptw0KK+m7hOWvjA0KK+m7hOWvjOivpg0KK+m7hOWkjeiBqg0KK+m7hOaDoOWQmw0KK+m7hOaDoOiKrA0KK+m7hOaDoOePjQ0KK+m7hOaDoOWopQ0KK+m7hOaDoOaVjw0KK+m7hOaDoOeQtA0KK+m7hOaDoOWLpA0KK+m7hOaDoOivlw0KK+m7hOaDoOmcng0KK+m7hOaJrOWQjQ0KK+m7hOaWr+mqjw0KK+m7hOaZr+ijlQ0KK+m7hOaZuuWLhw0KK+m7hOaZuuS8nw0KK+m7hOaZuuW6tw0KK+m7hOaZuumahg0KK+m7hOaZuumTrQ0KK+m7hOaZuueOrg0KK+m7hOacneeQtA0KK+m7hOacneaigQ0KK+m7hOakjeaHiw0KK+m7hOa5mOW3pw0KK+m7hOa5mOWptw0KK+m7hOa4neiKsw0KK+m7hOeQquWptw0KK+m7hOeQs+mSpw0KK+m7hOeQpuajuw0KK+m7hOeZu+mUrg0KK+m7hOero+WNlw0KK+m7hOetkemSsA0KK+m7hOWWhOaZlg0KK+m7hOiIkuW9pg0KK+m7hOiInOW/oA0KK+m7hOiPgeiWhw0KK+m7hOiPiuiLsQ0KK+m7hOWSj+eRng0KK+m7hOi0teWggg0KK+m7hOmAuA0KK+m7hOmAuOe6rw0KK+m7hOmAuOeOrg0KK+m7hOmSp+aygQ0KK+m7hOmXteWGnA0KK+m7hOmbheWQmw0KK+m7hOmbheiKsw0KK+m7hOmbhea0pQ0KK+m7hOmbheeOsg0KK+m7hOmbheWNvw0KK+m7hOmbhea3kQ0KK+m7hOmbhembqg0KK+m7hOmbheaDoA0KK+m7hOmbheeQqg0KK+m7hOmbheeQtA0KK+m7hOmbheiQjQ0KK+m7hOmbhembrw0KK+m7hOmbheiQsQ0KK+m7hOmbhemTgw0KK+m7hOmbheaFpw0KK+m7hOmbhem+hA0KK+m7hOmbr+eOiQ0KK+m7hOmbr+etoA0KK+m7hOmhuuWQiQ0KK+m7hOS8oOWbtA0KK+m7hOW7ieaZug0KK+m7hOaEj+iMuQ0KK+m7hOaEj+i2hQ0KK+m7hOaFiA0KK+m7hOaVrOWFgw0KK+m7hOaVrOaWjA0KK+m7hOaZluaWhw0KK+m7hOalt+elug0KK+m7hOamhuWptw0KK+m7hOavk+e/jg0KK+m7hOavk+WNjg0KK+m7hOa6kOeSiw0KK+m7hOeFp+WHrw0KK+m7hOeFpuawmw0KK+m7hOeRn+iKuA0KK+m7hOeRnuS8tg0KK+m7hOeRnuWxjw0KK+m7hOeRnuelpQ0KK+m7hOeRnumYsw0KK+m7hOeRnuWFtA0KK+m7hOeRnOa3kQ0KK+m7hOebn+WHrw0KK+m7hOeluuiKrA0KK+m7hOetoOecnw0KK+m7hOS5ieWQmw0KK+m7hOS5iemTrQ0KK+m7hOe+pOmbhA0KK+m7hOWco+Wcsw0KK+m7hOWco+WTsg0KK+m7hOWco+adsA0KK+m7hOWco+ajuw0KK+m7hOWco+m4vw0KK+m7hOijleS4rQ0KK+m7hOijleWunA0KK+m7hOijleebmw0KK+m7hOijlee/lA0KK+m7hOijleaYtg0KK+m7hOivl+iKuA0KK+m7hOivl+iMuQ0KK+m7hOivl+a2tQ0KK+m7hOivl+aDoA0KK+m7hOivl+mbrw0KK+m7hOivl+iLuQ0KK+m7hOmBk+WFqA0KK+m7hOmTg+eQqg0KK+m7hOmaveeQpg0KK+m7hOmdluiKuA0KK+m7hOmdluaDoA0KK+m7hOmdlumbrw0KK+m7hOm8juiDvQ0KK+m7hOWYieawkQ0KK+m7hOWYieWLhw0KK+m7hOWYieS8pg0KK+m7hOWYiembqg0KK+m7hOWYieiQsQ0KK+m7hOWYiei0pA0KK+m7hOiNo+WxsQ0KK+m7hOiNo+mhug0KK+m7hOaxieWFiQ0KK+m7hOaxiei+iQ0KK+m7hOedv+S8uA0KK+m7hOeip+S6kQ0KK+m7hOelr+W6hg0KK+m7hOe7tA0KK+m7hOe7tOaZug0KK+m7hOiCh+Wujw0KK+m7hOi/nOWujw0KK+m7hOmTreS8nw0KK+m7hOmTrei+iQ0KK+m7hOmtgeW9rA0KK+m7hOS7quWQmw0KK+m7hOW+t+engA0KK+m7hOW+t+eCnA0KK+m7hOW6huWNjg0KK+m7hOaFp+eOiQ0KK+m7hOaFp+iKrA0KK+m7hOaFp+Wonw0KK+m7hOaFp+iMuQ0KK+m7hOaFp+iPgQ0KK+m7hOaFp+elrw0KK+m7hOa+hOS8nw0KK+m7hOiUmuS7gQ0KK+m7hOi0pOeroA0KK+m7hOmch+Wuhw0KK+m7hOWuquW+lw0KK+m7hOW/huiPgQ0KK+m7hOaZk+S9qQ0KK+m7hOaZk+mfsw0KK+m7hOaZk+iPsQ0KK+m7hOaZk+iWhw0KK+m7hOeHleWopQ0KK+m7hOWFtOWFgw0KK+m7hOiVmeiQjQ0KK+m7hOmTruaZlg0KK+m7hOmUpueroA0KK+m7hOmdmeWtkA0KK+m7hOmdmeWunA0KK+m7hOmdmeaAoQ0KK+m7hOmdmeiOiQ0KK+m7hOm+meS4gA0KK+m7hOW6lOeShw0KK+m7hOiBqueQqg0KK+m7hOiWh+eQvA0KK+m7hOmqj+i+vg0KK+m7hOm4v+aZug0KK+m7hOekvOS8uA0KK+m7hOiWsOiOuQ0KK+m7hOWPjOeOiQ0KK+m7hOaAgOW6hg0KK+m7hOeAmuW+tw0KK+m7hOeQvOWmgw0KK+m7hOeQvOWNjg0KK+m7hOeQvOS7qg0KK+m7hOeQvOS7qg0KK+m7hOeQvOaFpw0KK+m7hOeQvOaFpw0KK+m7hOeQvOiwig0KK+m7hOeQvA0KK+m7hOmVnOeUnw0KK+m7hOmfteWmgg0KK+m7hOmftemftQ0KK+m7hOm5j+Wbvg0KK+m7hOS4veWmgw0KK+m7hOS4veiKrA0KK+m7hOS4vemmmQ0KK+m7hOS4veWuuQ0KK+m7hOS4veiTiQ0KK+m7hOS4vemTrg0KK+m7hOWuneeOiQ0KK+m7hOWuneS7qg0KK+m7hOWuneeouQ0KK+m7hOeMruiwhg0KK+m7hOe7p+Wing0KK+m7hOiAgOaWhw0KK+m7hOiAgOS/ig0KK+m7hOiAgOW+tw0KK+m7hOiAgOiOuQ0KK+m7hOiAgOi+iQ0KK+m7hOiuruW+tw0KK+m7hOmSn+iLhw0KK+m7hOmmqOaAoQ0KK+m7hOmmqOS7qg0KK+m7hOmmqOaFpw0KK+m7hOmmqOavhQ0KK+m7hOmmqOmciA0KK+m7hOm+hOiQsQ0KK+m7hOWFsOeOiQ0KK+m7hOmTgeixqg0KK+m7hOaYvuWptw0KK+m7hOiJs+eOiQ0KK+m7hOeOoOaZnw0KK+m7hOWnteeRhA0KK+m7hOaYtuaWjA0KK+m7hOWLlui9qQ0KK+m7hOeQh+iLkw0KK+m7hOe/iuWuuA0KK+m7hOaeqOWQiQ0KK+m7hOeQruWvjA0KK+m7hOeQrOWQmw0KK+m7hOeQrOWptw0KK+m7hOeQrOmbrw0KK+m7hOeQrOeRgg0KK+m7hOiPgOmTgw0KK+m7hOaakOedvw0KK+m7hOeOruasow0KK+m7hOeOruWugQ0KK+m7hOetseiKuA0KK+m7hOetseS5lA0KK+m7hOetsembgQ0KK+m7hOetseiLuQ0KK+m7hOmSsOWonw0KK+m7hOmSsOWptw0KK+m7hOmSsOWptw0KK+m7hOmSsOaWkA0KK+m7hOmSsOmbrw0KK+m7hOmSsumXtQ0KK+m7hOeejQ0KK+m7hOiWj+a+hA0KK+m7hOisteivtA0KK+m7hOm+hg0KK+a2guW3p+W/hg0KK+a2guaXtumbqA0KK+a2guWqhOS6kQ0KK+adqA0KK+adqOS6uumilg0KK+adqOS4iei0pA0KK+adqOWNg+mHjA0KK+adqOWNg+aFpw0KK+adqOWjq+W8mA0KK+adqOWjq+aciw0KK+adqOWjq+avhQ0KK+adqOWjq+i0pA0KK+adqOWkp+avhQ0KK+adqOWtkOaBkg0KK+adqOWtkOavhQ0KK+adqOWtkOeRog0KK+adqOWwj+aFpw0KK+adqOS4reWtmg0KK+adqOS5i+aFpw0KK+adqOS7geWNjg0KK+adqOS7i+aWhw0KK+adqOWFgeS4rQ0KK+adqOW/g+aAoQ0KK+adqOW/g+W+tw0KK+adqOaWh+Wujw0KK+adqOaWh+adsA0KK+adqOaWh+Wqmw0KK+adqOaWh+eRng0KK+adqOaWh+S7qg0KK+adqOaWh+eOrg0KK+adqOS4luW5sw0KK+adqOS4luWHrw0KK+adqOS4lum5jw0KK+adqOS7lemmqA0KK+adqOWPr+athg0KK+adqOW8mOWFiA0KK+adqOacrOWcow0KK+adqOato+W9rA0KK+adqOawuOatow0KK+adqOawuOeQpg0KK+adqOeOieWQmw0KK+adqOeOiem8jg0KK+adqOeZvemyuA0KK+adqOeri+e+pA0KK+adqOS7suawkQ0KK+adqOWFhumSpg0KK+adqOWmg+Wptw0KK+adqOWuiOWfjg0KK+adqOaXqOelpQ0KK+adqOiHqumbhA0KK+adqOS8tuaFpw0KK+adqOWmmeaBqQ0KK+adqOWuj+elpQ0KK+adqOW/l+W5sw0KK+adqOW/l+iDvQ0KK+adqOW/l+S8nw0KK+adqOW/l+elpQ0KK+adqOW/l+mbjQ0KK+adqOW/l+Wtpg0KK+adqOaym+iOsw0KK+adqOengOePoA0KK+adqOengOaFpw0KK+adqOiCsuecnw0KK+adqOiCsuWEkg0KK+adqOS6mueQpg0KK+adqOS9s+asow0KK+adqOS9s+WxlQ0KK+adqOS9s+iPgQ0KK+adqOS9s+aSsA0KK+adqOS9s+iQpA0KK+adqOS9qeePig0KK+adqOS9qeWEkg0KK+adqOWFtueAmg0KK+adqOWdpOiLsQ0KK+adqOWlh+aDoA0KK+adqOWtn+S/rg0KK+adqOWtn+iTiQ0KK+adqOWtn+e/sA0KK+adqOWulw0KK+adqOWul+WAjQ0KK+adqOWul+Wwpw0KK+adqOWul+WEkg0KK+adqOWul+milg0KK+adqOWul+e/sA0KK+adqOWul+eDnA0KK+adqOWunOaWhw0KK+adqOWunOeSiw0KK+adqOWunOiTgQ0KK+adqOWwmuiurQ0KK+adqOWwmuiejQ0KK+adqOWyseWEkg0KK+adqOW/oOS7gQ0KK+adqOW/oOWuqg0KK+adqOaAoeiKsw0KK+adqOaAoeiQjQ0KK+adqOaJvw0KK+adqOaJv+eGuQ0KK+adqOaYk+S8pg0KK+adqOaYjOWuvg0KK+adqOaYhumclg0KK+adqOaYjuadsA0KK+adqOaYjue6rw0KK+adqOaYjuivmg0KK+adqOaYjuWvsA0KK+adqOaYjuempw0KK+adqOWNh+ahpg0KK+adqOS4nOaVjw0KK+adqOadvumTrQ0KK+adqOaso+aAoQ0KK+adqOaso+S9qQ0KK+adqOaso+eHlQ0KK+adqOazk+ikmA0KK+adqOeniemhug0KK+adqOiKs+mbhA0KK+adqOiKuA0KK+adqOmHkeeSiw0KK+adqOmVv+a0gQ0KK+adqOmdkuWzsA0KK+adqOS/iuWujw0KK+adqOS/iui+iQ0KK+adqOWlleaYtg0KK+adqOW7uuW9pg0KK+adqOaAnemavQ0KK+adqOaUv+W9rA0KK+adqOaUv+WLiw0KK+adqOaUv+mclg0KK+adqOaYrei+iQ0KK+adqOS4uuiInA0KK+adqOeni+eUtw0KK+adqOe6quiKuA0KK+adqOe+jueOsg0KK+adqOe+juaDoA0KK+adqOe+juiJug0KK+adqOiLkeWIqQ0KK+adqOWAqQ0KK+adqOWTsuWuiQ0KK+adqOWTsumTrQ0KK+adqOWutuaYjg0KK+adqOWutuelug0KK+adqOWutumTrQ0KK+adqOWutueOrg0KK+adqOaBreaymw0KK+adqOaMr+Wulw0KK+adqOaMr+axiQ0KK+adqOaZj+iPgQ0KK+adqOS5puixqg0KK+adqOa2k+aosQ0KK+adqOS9qeWQmw0KK+adqOS9qeeQpg0KK+adqOecn+ePoA0KK+adqOe0oOWNvw0KK+adqOiNkOe/lA0KK+adqOiZlOmbhQ0KK+adqOS8n+aWhw0KK+adqOS8n+eQqg0KK+adqOWBpeWbvQ0KK+adqOWbveadvg0KK+adqOWbvem8jg0KK+adqOWfueaBqQ0KK+adqOWpieiOiQ0KK+adqOW0h+mRqw0KK+adqOaDn+eZvQ0KK+adqOWQr+Wujw0KK+adqOaVj+iKsw0KK+adqOaiteWtmw0KK+adqOa3s+egmg0KK+adqOa4heahgw0KK+adqOa3keWFgw0KK+adqOa3keS9sw0KK+adqOa3keiKrA0KK+adqOa3kee+jg0KK+adqOa3keaVjw0KK+adqOa3keaDoA0KK+adqOa3keiQjQ0KK+adqOa3kembhQ0KK+adqOa3keaFpw0KK+adqOa4iuiDnA0KK+adqOWHgOiKnQ0KK+adqOebm+aWjA0KK+adqOiOieiKsw0KK+adqOmbqumbhQ0KK+adqOWHr+S7sg0KK+adqOWHr+adsA0KK+adqOWHr+mSpw0KK+adqOiDnOWuhw0KK+adqOiDnOaWkA0KK+adqOWLi+WHrw0KK+adqOWNmuWuhw0KK+adqOWNmumSpg0KK+adqOWWu+mXtQ0KK+adqOWjueiIkg0KK+adqOWpt+mSpw0KK+adqOWvjOWuiQ0KK+adqOWvjOeQmw0KK+adqOW+quWptw0KK+adqOaDoOWuhw0KK+adqOaDoOecnw0KK+adqOaDoOWptw0KK+adqOaDoOeQsw0KK+adqOaDoOmbrw0KK+adqOaVpuadsA0KK+adqOaWr+WHrw0KK+adqOaZr+WFgw0KK+adqOaZr+Wwpw0KK+adqOaZr+mbrw0KK+adqOaZuuWFgw0KK+adqOaZuuWujw0KK+adqOaZuuadsA0KK+adqOaZuuWwpw0KK+adqOaZuuWWhA0KK+adqOaZuumSpw0KK+adqOaZuum+mQ0KK+adqOacneaVjw0KK+adqOacneiInA0KK+adqOajruWPkQ0KK+adqOa2jOivhA0KK+adqOeZu+WuiQ0KK+adqOeak+eOrg0KK+adqOetluiIqg0KK+adqOWWhOaDoA0KK+adqOiIkuW4hg0KK+adqOiIkuWqmw0KK+adqOiIkumbrw0KK+adqOiInOmSpg0KK+adqOiPgeiKrA0KK+adqOiPsembhQ0KK+adqOWSj+iPmA0KK+adqOi0teWqmw0KK+adqOmAuOiOiQ0KK+adqOmSp+eZvg0KK+adqOmXtee/lA0KK+adqOmbheeOiQ0KK+adqOmbheiKsw0KK+adqOmbheS8pg0KK+adqOmbhea3kQ0KK+adqOmbheWptw0KK+adqOmbheWptw0KK+adqOmbheWymg0KK+adqOmbheaDoA0KK+adqOmbheaZtg0KK+adqOmbhee/lA0KK+adqOmbhei2hQ0KK+adqOmbhembrw0KK+adqOmbheS6kQ0KK+adqOmbheiMnA0KK+adqOmbr+aDoA0KK+adqOS6kee/lA0KK+adqOmhuuajiw0KK+adqOaFiOS7qg0KK+adqOavk+eOsg0KK+adqOeEleeroA0KK+adqOeRnuadsA0KK+adqOS4h+W4hg0KK+adqOijlQ0KK+adqOivl+i9qQ0KK+adqOmBk+W/oA0KK+adqOWYieeOsg0KK+adqOWYieeRnA0KK+adqOWYieS4sA0KK+adqOiNo+WQiQ0KK+adqOankOmpuQ0KK+adqOeip+mbrw0KK+adqOe7tOWNjg0KK+adqOi1temTrQ0KK+adqOmTremhvg0KK+adqOW+t+W/lw0KK+adqOW6humahg0KK+adqOaFp+eOsg0KK+adqOaFp+eQvA0KK+adqOeSiw0KK+adqOmch+S8nw0KK+adqOWuquWNhw0KK+adqOaZk+mdkg0KK+adqOaZk+iPgQ0KK+adqOahpemclg0KK+adqOeHleS6kQ0KK+adqOiVmeiKsw0KK+adqOiVmeWYiQ0KK+adqOmUoeWuqg0KK+adqOmdmeWmgg0KK+adqOmdmeaAoQ0KK+adqOmdmembrw0KK+adqOaItOW3ng0KK+adqOeItemqjw0KK+adqOmqj+awkQ0KK+adqOabnOWHhg0KK+adqOehgOi/nA0KK+adqOe7o+e7qw0KK+adqOS4sOWFqA0KK+adqOS4sOmTrQ0KK+adqOmVh+i/nA0KK+adqOmmpeivmg0KK+adqOeQvOWNjg0KK+adqOS4veWGoA0KK+adqOS4veeQtA0KK+adqOabpueQsw0KK+adqOmSn+mTiQ0KK+adqOeBteiLkw0KK+adqOiMnOWNiQ0KK+adqOeQh+Wmgg0KK+adqOeQh+Wqmw0KK+adqOe/iuS9qQ0KK+adqOeQrOWptw0KK+adqOeOrueQpg0KK+adqOiTgeiTgQ0KK+adqOmToOS8ig0KK+a4qeS4iOe6rA0KK+a4qeW/g+Wymg0KK+a4qeato+m+mQ0KK+a4qeiHs+S7uw0KK+a4qeengOaAoQ0KK+a4qeWulw0KK+a4qeaJv+e/sA0KK+a4qemHkeeRng0KK+a4qeW7uuWjsA0KK+a4qeiLpeWptw0KK+a4qeWxleWNjg0KK+a4qee0oOaihQ0KK+a4qeWfuemdkg0KK+a4qea3keaAoQ0KK+a4qeWHrw0KK+a4qeaZuui/ng0KK+a4qembhea4hQ0KK+a4qeWco+W7tg0KK+a4qemTreWTsg0KK+a4qeaZk+WNjg0KK+a4qemmpei/nA0KK+a4qeiPmOa4nQ0KK+S4h+S9s+aYlQ0KK+S4h+W7uuaYjg0KK+S4h+aVj+WpiQ0KK+S4h+aZk+aYjg0KK+WPtuS4gea6kA0KK+WPtuS5g+elrw0KK+WPtuS6uuWuvg0KK+WPtuWPiOWYiQ0KK+WPtuWNg+iPig0KK+WPtuWjq+aWsA0KK+WPtuWkp+iLhw0KK+WPtuWtkOixqg0KK+WPtuWxseWNjg0KK+WPtuWkqeWwhg0KK+WPtuaWh+S8nw0KK+WPtuaWh+m+mQ0KK+WPtuS4luawkQ0KK+WPtuS7o+adgw0KK+WPtuato+Wcow0KK+WPtueOieeOsg0KK+WPtuS6puebmw0KK+WPtuWFieaEiQ0KK+WPtuWQkemYsw0KK+WPtuWmgumbrw0KK+WPtuerueiCsg0KK+WPtuS9kOmqjw0KK+WPtuWuj+adsA0KK+WPtuW/l+W9pg0KK+WPtuW/l+WNmg0KK+WPtuatpeaXuw0KK+WPtuengOaihQ0KK+WPtuiCsuWzsA0KK+WPtuS+nemdkg0KK+WPtuS9s+asow0KK+WPtuS9s+iPgQ0KK+WPtuS9s+WLiw0KK+WPtuS9qeecnw0KK+WPtuWlieadsA0KK+WPtuWtn+Wwpw0KK+WPtuWul+aZug0KK+WPtuWul+mRqw0KK+WPtuWum+i9qQ0KK+WPtuW/oOasow0KK+WPtuaAoeWQmw0KK+WPtuaAoeiKsw0KK+WPtuaJv+azkw0KK+WPtuaYjOS8pg0KK+WPtuaYjuWNhw0KK+WPtuaYjuaXiw0KK+WPtuaYjumRqw0KK+WPtuadvueCqw0KK+WPtuaso+avkw0KK+WPtueOn+WQmw0KK+WPtuiKs+S8tg0KK+WPtuiKs+iQjQ0KK+WPtuiKt+WmmA0KK+WPtumVv+mdkg0KK+WPtuS6reW/lw0KK+WPtuS/oeW7tw0KK+WPtuS/iuWujw0KK+WPtuS/iueUqw0KK+WPtuS/iuW6hg0KK+WPtuS/nuadiQ0KK+WPtuWGoOaFpw0KK+WPtuWllee7tA0KK+WPtuWnv+Wmjw0KK+WPtuW7uuWQmw0KK+WPtuW7uuWNhw0KK+WPtuW9puW/lw0KK+WPtuaAneS7qg0KK+WPtuaUv+i+iQ0KK+WPtuaYreS8tg0KK+WPtuaYseW/lw0KK+WPtuafj+e6sg0KK+WPtueOsuWykQ0KK+WPtueni+aciA0KK+WPtue+juWonw0KK+WPtuiHtOW/oA0KK+WPtuihjeWtnA0KK+WPtumDgeiPgQ0KK+WPtuWAqQ0KK+WPtuWTsuWFqA0KK+WPtuWutuWuhw0KK+WPtuWutumTgw0KK+WPtuWutuWEkg0KK+WPtuWzu+Wuvg0KK+WPtuaMr+emjw0KK+WPtuaZi+WYiQ0KK+WPtuS5pueOrg0KK+WPtua2k+a2kw0KK+WPtuebiuWNhw0KK+WPtue0oOe7qw0KK+WPtuiAv+m9kA0KK+WPtuWBpeS8nw0KK+WPtuWbvei0pA0KK+WPtuW8oOW7ug0KK+WPtuassg0KK+WPtua3keePjQ0KK+WPtua3kemTgw0KK+WPtue7jeS7uw0KK+WPtuiDnOeOhA0KK+WPtuaDoOaWhw0KK+WPtuaDoOelrw0KK+WPtuaZuuS7gQ0KK+WPtuajrua4nQ0KK+WPtuWSj+aZtA0KK+WPtumbgeeUhA0KK+WPtumbheWptw0KK+WPtumbhembrw0KK+WPtuS6kem5jw0KK+WPtuavk+WzsA0KK+WPtuS5ieadvg0KK+WPtumTg+ePig0KK+WPtuWYieWNjg0KK+WPtuedv+WTsg0KK+WPtumTreaYjA0KK+WPtuS7quiKsw0KK+WPtuaFp+asow0KK+WPtua0geaBqQ0KK+WPtuaZk+iKrA0KK+WPtuagkeW8gA0KK+WPtuiVmeiKsw0KK+WPtumUpuWHpA0KK+WPtuabmeW6hg0KK+WPtumqj+mAuA0KK+WPtuekvOe7tA0KK+WPtueQvOaWhw0KK+WPtuWuneWjrA0KK+WPtuiFvui/nA0KK+WPtumqpQ0KK+WPtueOtOixqg0KK+WPtueQpOaAoQ0KK+WPtuaAv+mmqA0KK+iRm+S4luiQsQ0KK+iRm+WAqeWmgg0KK+iRo+S6uuWujw0KK+iRo+WtkOmdkg0KK+iRo+W3p+eOsg0KK+iRo+WQiOaBqQ0KK+iRo+W/l+S7gQ0KK+iRo+S9s+ixqg0KK+iRo+aAoeWQmw0KK+iRo+iKs+mTrQ0KK+iRo+Wnv+WIqQ0KK+iRo+W9puWujw0KK+iRo+eni+eRvg0KK+iRo+S/rumTrQ0KK+iRo+aMr+mbhA0KK+iRo+iDveeRng0KK+iRo+aDoOiKsw0KK+iRo+Wco+e8mA0KK+iRo+aFp+e+jg0KK+iRo+m4v+aloA0KK+iRo+Wzo+azkw0KK+ijmOWFg+aBug0KK+ino+e+jumTgw0KK+ipueS6juiKsw0KK+ipueWtkOawkQ0KK+ipueS7geWYiQ0KK+ipueaWh+elpQ0KK+ipueS4luadsA0KK+ipueawuOelpQ0KK+ipueeri+aIkA0KK+ipueWmgumSpA0KK+ipueWuj+W9rA0KK+ipueW/l+m4vw0KK+ipueiCsumbrw0KK+ipueS9s+aMrw0KK+ipueS9s+WFtA0KK+ipueS9qemilg0KK+ipueWtn+aZgw0KK+ipueWul+Wuqg0KK+ipueWunOe6uQ0KK+ipueW/oOiNow0KK+ipueaYjOWQiQ0KK+ipueaYjua0gQ0KK+ipueaso+WunA0KK+ipuemdkuiJsw0KK+ipueWJjeazsA0KK+ipueaUv+WzsA0KK+ipuee+juePjQ0KK+ipueWNv+iLuQ0KK+ipueWutumTqA0KK+ipuea1muWNhw0KK+ipueebiuS8nw0KK+ipueebiumTrQ0KK+ipueiMl+iKuA0KK+ipueWpieWQmw0KK+ipueWQr+e6rA0KK+ipuea3keWmgw0KK+ipuea3keiQjQ0KK+ipuea3keiKqQ0KK+ipueWHr+aNtw0KK+ipueiDnOmSpg0KK+ipueWvjOaZug0KK+ipueaDoOWqmw0KK+ipueaZr+Wwpw0KK+ipueaZuuadsA0KK+ipueajrg0KK+ipuee/lOS7uw0KK+ipueivgeWvjA0KK+ipuemSp+e7tA0KK+ipuembheWptw0KK+ipuembhemXtQ0KK+ipuembr+iOuQ0KK+ipuee+pOavhQ0KK+ipueWYieeShw0KK+ipueW+t+mmqA0KK+ipueWLi+aYjg0KK+ipuemiluiQjQ0KK+ipueeSqOW1mA0KK+ipueS4sOWuhw0KK+ipuem5g+W5tA0KK+ipueeOk+eOrg0KK+ipueeQrOa4nQ0KK+i1hOWQm+S7qg0KK+i0vuayu+WbvQ0KK+i0vueIseeOqw0KK+i0vumrkOaGmw0KK+mCueS4gOS7sg0KK+mCueaWh+mahg0KK+mCueeri+W9pg0KK+mCueadjuaYjA0KK+mCueS9s+WNjg0KK+mCueWul+WNjg0KK+mCueaYjuWOnw0KK+mCuemHkeW+tw0KK+mCueWbvem+mQ0KK+mCueaZuuS7gQ0KK+mCueaWsOWFqA0KK+mCuee7tOWImg0KK+mCuemdmeS9qQ0KK+mbjeaVpuWFgw0KK+mbt+WunOW6rQ0KK+mbt+ihjeWFtA0KK+mbt+aDoOeQpg0KK+mbt+mbheiPgQ0KK+mbt+m5j+eoiw0KK+W7luS4gemAuA0KK+W7luS6juaWhw0KK+W7luWNg+aFpw0KK+W7luWjq+Wwpw0KK+W7luWkp+aonw0KK+W7luWwj+WNjg0KK+W7luS7geemvg0KK+W7luWFg+WIqQ0KK+W7luWFgemdlg0KK+W7luaWh+W5sw0KK+W7luaWh+iMuQ0KK+W7luaWh+ivhA0KK+W7luaWh+eUhA0KK+W7luaWh+a0gQ0KK+W7luaciOingg0KK+W7luS7lee7rg0KK+W7luacrOWFgw0KK+W7luato+S8nw0KK+W7lueOiQ0KK+W7lueOieiQjQ0KK+W7luS4nuaZng0KK+W7luWFiei+iQ0KK+W7luWuiOatow0KK+W7luS8r+eSiw0KK+W7luWQq+a0gQ0KK+W7luWuj+aFiA0KK+W7luW/l+awkQ0KK+W7luW/l+S8nw0KK+W7luW/l+i/nA0KK+W7luengOWNvw0KK+W7luiCsuiJrw0KK+W7luiJr+a3rg0KK+W7luS9s+eOpQ0KK+W7luS9qeWmgg0KK+W7luS9qeWHpA0KK+W7luWul+WxsQ0KK+W7luWunOe+pA0KK+W7luaAoeeOsg0KK+W7luaAoeaZrw0KK+W7luaJv+W6hg0KK+W7luaYjuS7qg0KK+W7luaso+S7qg0KK+W7luiKs+eOsg0KK+W7luiKneWdmg0KK+W7lumdkuadvg0KK+W7luS/oeWuvQ0KK+W7luS/iuadsA0KK+W7luS/iumSpg0KK+W7luWGoOe+jg0KK+W7luWlleS7uw0KK+W7luWnv+avkw0KK+W7luW7uuWfjg0KK+W7luW7uumSpw0KK+W7luW9puWHrw0KK+W7luaBkuavhQ0KK+W7luaYpeiPig0KK+W7luaYseagkQ0KK+W7lueCs+eEnA0KK+W7luebiOWlhw0KK+W7lueni+aAoQ0KK+W7lue+jueOsg0KK+W7lue+jueQsw0KK+W7luiMguiJrw0KK+W7luiLseeUtw0KK+W7luiLseadsA0KK+W7luiLkeWQmw0KK+W7lui/sOiMgg0KK+W7lumDgeWptw0KK+W7luWAqeWunA0KK+W7luWNv+aDoA0KK+W7luWTsuiuug0KK+W7luWutueOsg0KK+W7luWutuWugQ0KK+W7luWutuiOuQ0KK+W7luWutuWppw0KK+W7luWzu+avhQ0KK+W7luaBqeaFiA0KK+W7luaMr+iJrw0KK+W7luaMuuW0tA0KK+W7luS5puS9qQ0KK+W7luahguWQmw0KK+W7lua1muWujw0KK+W7luS9qeWQmw0KK+W7luS9qeeOqw0KK+W7luS9qeeIsQ0KK+W7luebiue+pA0KK+W7lue0oOWNvw0KK+W7luiAlei+iQ0KK+W7luW5suaIkA0KK+W7luS8n+aIkA0KK+W7luS8n+i+sA0KK+W7luS8n+aWrw0KK+W7luS8n+m4vw0KK+W7luWBpeaYjg0KK+W7luWBpemTrQ0KK+W7luWbveWujw0KK+W7luWbveWLiw0KK+W7luWbveWNjg0KK+W7luWfuuWujw0KK+W7luWfueeRnA0KK+W7luWpieWIqQ0KK+W7luWpieasow0KK+W7luWvhOiQjQ0KK+W7luW0h+ehlQ0KK+W7luW6t+mclg0KK+W7luaDh+ayuw0KK+W7luWQr+iJrw0KK+W7luaVj+axnQ0KK+W7luaVj+eOsg0KK+W7luaik+iMnA0KK+W7lua3keWQmw0KK+W7lua3kei0ng0KK+W7lua3keaDoA0KK+W7lua3keS4vQ0KK+W7luelpei+vg0KK+W7lui0r+S9qQ0KK+W7lueroOajiw0KK+W7luWvjOeUsA0KK+W7luaDoOWonw0KK+W7luaZuui+iQ0KK+W7lueQque+jg0KK+W7luiIkuS7qg0KK+W7lui/m+W5sw0KK+W7lumbheWAqQ0KK+W7lumhuuW4hg0KK+W7lualt+aWhw0KK+W7luetoOaAoQ0KK+W7luiQseiKuQ0KK+W7luWXvg0KK+W7luWYiemYsw0KK+W7luaxiem8jg0KK+W7lue7tOePjQ0KK+W7lumTreS7gQ0KK+W7luW6hui0ug0KK+W7luaFp+mbrw0KK+W7luiOueeShw0KK+W7luWuquWggg0KK+W7luaZk+aFpw0KK+W7lumUpueRnA0KK+W7luaTjuW4hg0KK+W7luabnOiOuQ0KK+W7lum6kumXtQ0KK+W7luiAgOS4nA0KK+W7luaYvuW6hg0KK+W7luWBsuWmpA0KK+W7luaWjOadsA0KK+W7lumSsOmTrQ0KK+axiei/sOS7gQ0KK+eGiueri+aWsA0KK+eGiuS4nOWing0KK+eGiuWHjOmchg0KK+eGiuW0h+e6rA0KK+eGiuWLpOS6kQ0KK+eUhOaFp+aYjg0KK+euoeW5vOS7sg0KK+euoemHkeeOsg0KK+euoeeQquiKuA0KK+e/n+aVpuaVjw0KK+WPsOaWh+eFpw0KK+iSsuS/oeWFqA0KK+iSsumqj+avhQ0KK+ijtOS8n+eoiw0KK+ikmuW/g+aAoQ0KK+ikmuS/iuS8nw0KK+ikmuWutuW+tw0KK+WuvuaVrOaWhw0KK+i1teWjq+m9kA0KK+i1teWtkOe7tA0KK+i1teS7geS9kQ0KK+i1teWFg+Wujw0KK+i1teWPi+W0pw0KK+i1teaWh+W/oA0KK+i1teaWueaBug0KK+i1teS4luijlQ0KK+i1teW/heaYjA0KK+i1teeOieiOsg0KK+i1teWuieeQqg0KK+i1teWQm+adsA0KK+i1teWuj+mSpw0KK+i1teW/l+ixqg0KK+i1teiCsueQsw0KK+i1teS9qeiKrA0KK+i1teWunOWQmw0KK+i1teaAoeWptw0KK+i1teaYjui+iQ0KK+i1teiKt+iPgQ0KK+i1teS/iuWHrw0KK+i1teWTgeW9pg0KK+i1teW7uuiDnA0KK+i1teaBrOS7qg0KK+i1teeCq+WLiw0KK+i1teeni+WHpA0KK+i1teiLsem+mQ0KK+i1teS/rumclg0KK+i1teWutuiJrw0KK+i1teWutui0pA0KK+i1teaMr+Wujw0KK+i1teahgumdkg0KK+i1teS9qeaxmw0KK+i1teelkOeUhA0KK+i1teS8n+W7tw0KK+i1teS8n+e/lA0KK+i1teWbveW/lw0KK+i1teWfuemclg0KK+i1teW0h+mXtQ0KK+i1teaVj+Wmgg0KK+i1tea3keiKsw0KK+i1teeajuWQmw0KK+i1teWpt+WujA0KK+i1tea5mOWQmw0KK+i1temSp+W/lw0KK+i1teeRnuaYjA0KK+i1teWYieaVrA0KK+i1teW5v+WFgw0KK+i1teaFlee+pA0KK+i1teagkeS7qg0KK+i1tem+meWfug0KK+i1teWPjOmqjw0KK+i1teeOuee+sg0KK+i/nOiXpOawuOW6tw0KK+mEnuixqui+iQ0KK+m9kOmbquaxnQ0KK+WImOS5meiQsQ0KK+WImOS5g+iQsQ0KK+WImOS6uuixqg0KK+WImOWHoOiQjQ0KK+WImOWKm+ixqg0KK+WImOWPiOaFiA0KK+WImOS4iuaXlw0KK+WImOS6juiPgQ0KK+WImOWNg+eRnA0KK+WImOWjq+WNjg0KK+WImOWjq+ixqg0KK+WImOWkp+iNow0KK+WImOWtkOeUsQ0KK+WImOWtkOWYiQ0KK+WImOWtkOmigA0KK+WImOWxseixqg0KK+WImOS4reeQqg0KK+WImOS7geatow0KK+WImOS7geijlQ0KK+WImOWFg+WHpA0KK+WImOWwkee7tA0KK+WImOW/g+S7qg0KK+WImOaWh+eOiQ0KK+WImOaWh+eOsg0KK+WImOaWh+iDnA0KK+WImOaWh+i2hQ0KK+WImOaWh+emjw0KK+WImOaXpemhug0KK+WImOS4luaWhw0KK+WImOS4lua4hQ0KK+WImOS4luW6hg0KK+WImOS7peetoA0KK+WImOWPsA0KK+WImOW8mOS8nw0KK+WImOato+aysw0KK+WImOato+mbhA0KK+WImOawuOWBpQ0KK+WImOeOieaWhw0KK+WImOeOieWutg0KK+WImOeOieiQjQ0KK+WImOeOieeQhw0KK+WImOeri+S8nw0KK+WImOS6puWNhw0KK+WImOS8iuS/rg0KK+WImOS7sua2tQ0KK+WImOWFieadsA0KK+WImOWFhuWuuQ0KK+WImOWFqOW9rA0KK+WImOWQjeWonw0KK+WImOWmguiKsw0KK+WImOWmguiWsA0KK+WImOWuh+iWhw0KK+WImOWuieelpQ0KK+WImOaXreiKrA0KK+WImOaxneWonw0KK+WImOiHs+WuiQ0KK+WImOS8r+W9pg0KK+WImOWQm+elug0KK+WImOWtneS8pg0KK+WImOWuj+S8nw0KK+WImOW7t+altw0KK+WImOW/l+WLhw0KK+WImOW/l+a1qQ0KK+WImOW/l+a6kA0KK+WImOW/l+eOrg0KK+WImOayguaYgA0KK+WImOengOmDgQ0KK+WImOengOmbrw0KK+WImOiCsuaIkA0KK+WImOiCsuW/lw0KK+WImOiCsuWulw0KK+WImOiCsua0uA0KK+WImOiCsuivmg0KK+WImOiCsumilg0KK+WImOmCpuW5sw0KK+WImOmCpuebuA0KK+WImOS6muiKuA0KK+WImOS+neaWhw0KK+WImOS9s+aykA0KK+WImOS9s+aAoQ0KK+WImOS9s+iKsw0KK+WImOS9s+a0pw0KK+WImOS9s+eQqg0KK+WImOS9s+i+vg0KK+WImOS9s+milg0KK+WImOS+g+Wmgg0KK+WImOS9qemdkg0KK+WImOS9qee7qw0KK+WImOWSjOW+tw0KK+WImOWdpOmilg0KK+WImOWtn+S9sw0KK+WImOWtn+WGoA0KK+WImOWtn+e/sA0KK+WImOWul+aAoQ0KK+WImOWul+iRhg0KK+WImOWumuWuhw0KK+WImOWunOaYhg0KK+WImOWunOWptw0KK+WImOWum+Wmgg0KK+WImOWGiOmZtQ0KK+WImOW5uOmbqg0KK+WImOW/oOWLiw0KK+WImOaAoeS8tg0KK+WImOaAoeWQmw0KK+WImOaAoeWQmw0KK+WImOaAoeWQmw0KK+WImOaAoeWSjA0KK+WImOaAoeiKrA0KK+WImOaAoeaDoA0KK+WImOaAoemdmQ0KK+WImOaJv+ahpg0KK+WImOaYjA0KK+WImOaYjOivmg0KK+WImOaYjuWQiA0KK+WImOaYjuadsA0KK+WImOaYjuWTsg0KK+WImOaYjui+vg0KK+WImOaYjuS4vQ0KK+WImOWNh+mRqw0KK+WImOaenOePjQ0KK+WImOaso+WdpA0KK+WImOaso+aAoQ0KK+WImOaso+iMuQ0KK+WImOatpua1mg0KK+WImOeOn+aIkA0KK+WImOeOq+WugQ0KK+WImOepueaelw0KK+WImOiKs+WQnw0KK+WImOiKs+eOsg0KK+WImOiKs+WFsA0KK+WImOiKrOiKsw0KK+WImOmHh+ecnw0KK+WImOmHkeWHpA0KK+WImOmdkuiLuQ0KK+WImOS/oeWujw0KK+WImOS/oeiJrw0KK+WImOS/oem4vw0KK+WImOS/iuWujw0KK+WImOS/iuW7tw0KK+WImOS/iuiJrw0KK+WImOS/iuadsA0KK+WImOS/iuavhQ0KK+WImOS/iuWyqQ0KK+WImOS/kOaihQ0KK+WImOWGoOWmjQ0KK+WImOWGoOiJrw0KK+WImOWGoOaYvg0KK+WImOWLg+W9pg0KK+WImOWTgeWunA0KK+WImOWlleW/lw0KK+WImOWnvw0KK+WImOWnv+WQnw0KK+WImOWogeaxlw0KK+WImOWogeaYjA0KK+WImOW7uuawkQ0KK+WImOW7uuWujw0KK+WImOW7uuWujw0KK+WImOW7uuadkQ0KK+WImOW7uuiJrw0KK+WImOW7uuaYjg0KK+WImOW7uuW+tw0KK+WImOW7uueUug0KK+WImOW9puWQmw0KK+WImOW9puW7tw0KK+WImOW9puiJrw0KK+WImOW9puWNmg0KK+WImOW+i+aYjg0KK+WImOaAnea0gQ0KK+WImOaBquS6ug0KK+WImOaUv+WLiw0KK+WImOaYreWmgg0KK+WImOaYoOengA0KK+WImOaYsei+sA0KK+WImOafj+Wujw0KK+WImOafj+m6nw0KK+WImOS4uuaYjg0KK+WImOePiuWmrg0KK+WImOePjeS9kQ0KK+WImOebiOWmgg0KK+WImOebiOengA0KK+WImOebiOWFsA0KK+WImOeni+aIkA0KK+WImOeni+eHlQ0KK+WImOe+juWQmw0KK+WImOe+juS7kQ0KK+WImOe+jueOsg0KK+WImOe+juWNjg0KK+WImOe+v+axnQ0KK+WImOiLpeiwqA0KK+WImOiLsem+mQ0KK+WImOi0nuS8tg0KK+WImOWGm+avhQ0KK+WImOmfpuaIkA0KK+WImOWAjeWmgg0KK+WImOS/ruaYjg0KK+WImOWTsuWuhw0KK+WImOWTsumDjg0KK+WImOWTsueOrg0KK+WImOWutuaIkA0KK+WImOWutuWujw0KK+WImOWutuWNhw0KK+WImOWutueQsw0KK+WImOWutuWDlg0KK+WImOWutuixqg0KK+WImOWutuWHpA0KK+WImOWutummqA0KK+WImOWuueaHvw0KK+WImOWzu+S8tg0KK+WImOWzsOmDoQ0KK+WImOaBqeWQiQ0KK+WImOaMr+S4rQ0KK+WImOaMr+ixqg0KK+WImOaZi+iCsg0KK+WImOaZj+ivmg0KK+WImOS5puWujw0KK+WImOagueixqg0KK+WImOahkOebmw0KK+WImOa1mumTrQ0KK+WImOS9qeaAoQ0KK+WImOebiuS8uA0KK+WImOebiuelrw0KK+WImOelluWugQ0KK+WImOe0oOeOsg0KK+WImOe6r+adjw0KK+WImOiAlee7tA0KK+WImOi9qeWuhw0KK+WImOS8n+eriw0KK+WImOS8n+ivmg0KK+WImOWbveW5sw0KK+WImOWbveagiw0KK+WImOWbvem+mQ0KK+WImOWpieeOsg0KK+WImOW0h+eQhg0KK+WImOW6t+alnQ0KK+WImOW+l+WFiQ0KK+WImOWQr+W5sw0KK+WImOaVj+eQqg0KK+WImOa3s+mbhQ0KK+WImOa3keiKrA0KK+WImOa3kei0ng0KK+WImOa3keiOiQ0KK+WImOa3keWNjg0KK+WImOa3keaFpw0KK+WImOelpeawkQ0KK+WImOiOieeHlQ0KK+WImOWHr+iMuQ0KK+WImOWNmuaWhw0KK+WImOWvjOaYjg0KK+WImOaDoOaAoQ0KK+WImOaDoOe6uQ0KK+WImOaJrOmTrQ0KK+WImOaZuuS7gQ0KK+WImOaZuumSpw0KK+WImOacneiOsg0KK+WImOa5mOeQqg0KK+WImOeak+WugQ0KK+WImOiIkuaFiA0KK+WImOWSj+iWhw0KK+WImOmAuOeruQ0KK+WImOmXtee7kw0KK+WImOmbheWQmw0KK+WImOmbheeOsg0KK+WImOmbheaDoA0KK+WImOmbheiQjQ0KK+WImOmbheaFpw0KK+WImOS6kemcng0KK+WImOWLpOe7jw0KK+WImOaVrOawkQ0KK+WImOavk+azog0KK+WImOa6kOS8pg0KK+WImOeRnuiKsw0KK+WImOeRnuixqg0KK+WImOe7j+e6tg0KK+WImOijleWujw0KK+WImOivl+mftQ0KK+WImOmdlg0KK+WImOWYieiCsg0KK+WImOWYiea3sw0KK+WImOWYiembrw0KK+WImOWYieahpg0KK+WImOW9sA0KK+WImOiNo+W+tw0KK+WImOeGmeaFpw0KK+WImOehleeosw0KK+WImOe7tOazsA0KK+WImOiCh+m5jw0KK+WImOmTreadkQ0KK+WImOmTrei+iQ0KK+WImOWHpOWFtA0KK+WImOW+t+atow0KK+WImOW+t+ivmg0KK+WImOW6humVhw0KK+WImOaFp+eOsg0KK+WImOaFp+Wptw0KK+WImOaFp+ePkQ0KK+WImOiOueWonw0KK+WImOi0pOiNpw0KK+WImOmch+m4vw0KK+WImOW/hg0KK+WImOaZk+iKrA0KK+WImOaZk+eQqg0KK+WImOaZk+ahpg0KK+WImOagkeiVmQ0KK+WImOeHleiQjQ0KK+WImOeSn+mUiw0KK+WImOmiluiSqA0KK+WImOWFtOWutg0KK+WImOiVmeeRhA0KK+WImOmUpuWggg0KK+WImOmUpum4vw0KK+WImOmdmeiKsw0KK+WImOmdmeWNjg0KK+WImOm+meWxsQ0KK+WImOeItee7tA0KK+WImOmUuumclg0KK+WImOm4v+mclg0KK+WImOeSp+iOuQ0KK+WImOmVh+WYiQ0KK+WImOeAmumYsw0KK+WImOmfteeQpg0KK+WImOS4veaDoA0KK+WImOWuneWptw0KK+WImOiAgOWNhw0KK+WImOivkeiBqg0KK+WImOeBjOi+iQ0KK+WImOaHv+aFpw0KK+WImOi1nuWYuw0KK+WImOaXu+ePig0KK+WImOWnteWYiQ0KK+WImOaMkA0KK+WImOe/iumCoQ0KK+WImOeOrueOsg0KK+WImOetseaFpw0KK+WImOa7oumovw0KK+WOieaWjOS4rQ0KK+aoiuS5g+WYiQ0KK+aoiuS/rum+mQ0KK+S5kOWtkOmqjw0KK+asp+Wjq+a6kA0KK+asp+S4lua0iw0KK+asp+Wmgueoiw0KK+asp+W/l+ebiA0KK+asp+mCpuWNjg0KK+asp+Wul+WOnw0KK+asp+aAoeengA0KK+asp+aYgOS/rg0KK+asp+mVv+aZjw0KK+asp+S/iuW9pg0KK+asp+W7uuawkQ0KK+asp+aUv+iJsw0KK+asp+e+juiOuQ0KK+asp+WoieWmpg0KK+asp+S5puixqg0KK+asp+a3keWnvw0KK+asp+mAuOmdkg0KK+asp+mYs+acieaFpw0KK+asp+mYs+eOqw0KK+asp+mYs+aDoOWmgg0KK+asp+mYs+mTreaWhw0KK+asp+mYs+W/u+W/hg0KK+asp+iNo+adsA0KK+asp+miluWQmw0KK+asp+e8ruWYiQ0KK+a9mA0KK+a9mOWFgeS7gQ0KK+a9mOaWh+WNjg0KK+a9mOato+WFgw0KK+a9mOeOieaDoA0KK+a9mOS6puiVvg0KK+a9mOaIkOWvjA0KK+a9mOWuj+Wulw0KK+a9mOW/l+S8nw0KK+a9mOengOebiA0KK+a9mOS9s+WmpA0KK+a9mOS9qeWQmw0KK+a9mOWul+ijlQ0KK+a9mOW7tui+iQ0KK+a9mOaAoeWQmw0KK+a9mOaAoeeRvg0KK+a9mOaYjualtw0KK+a9mOeOn+ahpg0KK+a9mOS6ruWmgg0KK+a9mOS/oee/sA0KK+a9mOS/iuiJrw0KK+a9mOWGoOWujw0KK+a9mOWTgea0gQ0KK+a9mOWogeWOhg0KK+a9mOW7uuaIkA0KK+a9mOW7uuW9sA0KK+a9mOW9puiTiQ0KK+a9mOaUv+e6rA0KK+a9mOaflOiAgw0KK+a9mOePjeeQqg0KK+a9mOe+jueOsg0KK+a9mOi/sOS4nA0KK+a9mOWutumTrQ0KK+a9mOazsOWFqA0KK+a9mOiDveWTsg0KK+a9mOWpieiQjQ0KK+a9mOa3kembrw0KK+a9mOaDoOWonw0KK+a9mOi/m+ebig0KK+a9mOmbhemmqA0KK+a9mOeRnummmQ0KK+a9mOijleaZug0KK+a9mOedv+WTsg0KK+a9mOS7quaBrA0KK+a9mOaFp+aVjw0KK+a9mOWEkuiOuQ0KK+a9mOmUpuaYjA0KK+a9mOm4v+mTrQ0KK+a9mOS4veiQjQ0KK+a9mOWnteWmgg0KK+a9mOmSsOaflA0KK+a7leW/humbrw0KK+e7g+W7uuS8uA0KK+iSi+S4reihjQ0KK+iSi+ato+emjw0KK+iSi+axneWuiQ0KK+iSi+ayhuelpQ0KK+iSi+S9s+ePig0KK+iSi+S9qeS9mQ0KK+iSi+Wtn+WEkg0KK+iSi+WunOmdmQ0KK+iSi+aAoeaFpw0KK+iSi+aYjuWEkg0KK+iSi+mVv+aXuw0KK+iSi+aUv+milg0KK+iSi+S9qeazoA0KK+iSi+a3keaFpw0KK+iSi+iQjQ0KK+iSi+iLh+eriw0KK+iSi+W+t+aJjQ0KK+iSi+a7qOW3ng0KK+iSi+iAgOavhQ0KK+iUoeS4gee7j+WTsg0KK+iUoeWjq+aXug0KK+iUoeWtkOaAoQ0KK+iUoeS4remSpw0KK+iUoeS7geS8nw0KK+iUoeWFg+atow0KK+iUoeWFg+mbhA0KK+iUoeWkqeelug0KK+iUoeaWh+S7gQ0KK+iUoeaWh+W9pg0KK+iUoeaWh+S8nw0KK+iUoeaWh+WNmg0KK+iUoeaWh+mSpg0KK+iUoeaWh+WYiQ0KK+iUoeaWh+m4vw0KK+iUoeaciOePoA0KK+iUoeS4luadsA0KK+iUoeS4lum4vw0KK+iUoeW3p+Wmgg0KK+iUoeW8mOWOnw0KK+iUoeato+Wulw0KK+iUoeato+aZlg0KK+iUoeawuOW9rA0KK+iUoeawuOiOuQ0KK+iUoeeOieeniw0KK+iUoeeOieiPgQ0KK+iUoeeri+iKrA0KK+iUoeS6pumbrw0KK+iUoeS7suWugQ0KK+iUoeWFhumqhQ0KK+iUoeWQjeS5pg0KK+iUoeWmguWptw0KK+iUoeWuh+S8pg0KK+iUoeWuieS5lA0KK+iUoeaXreabnA0KK+iUoee+veWuuQ0KK+iUoeihjOecnw0KK+iUoeS8r+m4vw0KK+iUoeWQm+avhQ0KK+iUoeWuj+aWhw0KK+iUoeWuj+WfuQ0KK+iUoeW7t+milg0KK+iUoeW/l+Wujw0KK+iUoeW/l+aYjg0KK+iUoeW/l+aZgw0KK+iUoeW/l+aJrA0KK+iUoeW/l+e7tA0KK+iUoeW/l+m4vw0KK+iUoeaygeeOsg0KK+iUoeaym+Wptw0KK+iUoeaxtum4vw0KK+iUoeengOeOsg0KK+iUoeengOaDoA0KK+iUoeiCsuatow0KK+iUoeiCsuW9pg0KK+iUoeiCsuecnw0KK+iUoeiCsuWLiw0KK+iUoei0neePig0KK+iUoeS6q+e/sA0KK+iUoeS+neePig0KK+iUoeS+neWuuQ0KK+iUoeS+nem+hA0KK+iUoeS9s+S8tg0KK+iUoeS9s+Wujw0KK+iUoeS9s+iJrw0KK+iUoeS9s+asow0KK+iUoeS9s+iKrA0KK+iUoeS9s+eOsg0KK+iUoeS9s+ePjQ0KK+iUoeS9s+WuuQ0KK+iUoeS9s+ecnw0KK+iUoeS9s+iIqg0KK+iUoeS9s+eQsw0KK+iUoeS9s+iTiQ0KK+iUoeS9s+ahpg0KK+iUoeS9s+milg0KK+iUoeS9s+mclg0KK+iUoeS9s+ekvQ0KK+iUoeS9qeWmgg0KK+iUoeS9qeWQmw0KK+iUoeS9qeWmpA0KK+iUoeS9qeiKsw0KK+iUoeS9qeiKrA0KK+iUoeS9qeePig0KK+iUoeS9qeePig0KK+iUoeS9qeeOsg0KK+iUoeS9qeWopQ0KK+iUoeS9qee6uQ0KK+iUoeS9qeiTiQ0KK+iUoeS9qemilg0KK+iUoeS9qemdmQ0KK+iUoeS+keW7tw0KK+iUoeWFtuS9qQ0KK+iUoeWNj+eUqw0KK+iUoeWPl+WLiw0KK+iUoeWdpOS9kQ0KK+iUoeWdpOmbhA0KK+iUoeWdpOmUpg0KK+iUoeWlh+Wdhw0KK+iUoeWlh+mclg0KK+iUoeWtn+WQmw0KK+iUoeWtn+iCsg0KK+iUoeWtn+iKsw0KK+iUoeWtn+eniw0KK+iUoeWtn+WTsg0KK+iUoeWtn+ecnw0KK+iUoeWtn+mbhA0KK+iUoeWtn+WEkg0KK+iUoeWtn+ahpg0KK+iUoeWtn+iwlQ0KK+iUoeWto+eOsg0KK+iUoeWul+S9kQ0KK+iUoeWul+W/lw0KK+iUoeWul+eOqw0KK+iUoeWul+ebig0KK+iUoeWul+i+vg0KK+iUoeWul+WEkg0KK+iUoeWul+Wuqg0KK+iUoeWul+milg0KK+iUoeWul+e/sA0KK+iUoeWul+mclg0KK+iUoeWunOWQmw0KK+iUoeWunOW7tw0KK+iUoeWunOiKsw0KK+iUoeWunOePig0KK+iUoeWunOWAqQ0KK+iUoeWunOecnw0KK+iUoeWunOiTiQ0KK+iUoeWunOmclg0KK+iUoeWunOiTgQ0KK+iUoeWum+eOsg0KK+iUoeWum+iwlQ0KK+iUoeWwmuWysw0KK+iUoeWwmumilg0KK+iUoeWyseWLiw0KK+iUoeWys+S5pg0KK+iUoeW5uOWmgg0KK+iUoeW5uOaBkg0KK+iUoeW5uOa3sw0KK+iUoeW8puixqg0KK+iUoeW/oOS/oQ0KK+iUoeW/oOmilg0KK+iUoeaAoeWQmw0KK+iUoeaAoeiQjQ0KK+iUoeaJv+aYig0KK+iUoeaJv+eSiw0KK+iUoeaJv+e/sA0KK+iUoeaYk+S6qA0KK+iUoeaYk+WNhw0KK+iUoeaYk+Wuqg0KK+iUoeaYjOWuhw0KK+iUoeaYjOWEkg0KK+iUoeaYhuS9kQ0KK+iUoeaYjg0KK+iUoeaYjuazmw0KK+iUoeaYjuWujw0KK+iUoeaYjuadiQ0KK+iUoeaYjuWulw0KK+iUoeaYjuiKsw0KK+iUoeaYjuS8pg0KK+iUoeaYjuWTsg0KK+iUoeaYjuWzsA0KK+iUoeaYjuiMtQ0KK+iUoeaYjumSpg0KK+iUoeaYjuiSsg0KK+iUoeaYjui1kA0KK+iUoeaYjuWuqg0KK+iUoeaYjumilg0KK+iUoeaYjum+mQ0KK+iUoeaYgOeUqw0KK+iUoeWNh+S8rw0KK+iUoeWNh+milg0KK+iUoeS4nOaYjg0KK+iUoeS4nOmilg0KK+iUoeadsOW/lw0KK+iUoeadvuafjw0KK+iUoeadvumclg0KK+iUoeaso+aAoQ0KK+iUoeaso+S8pg0KK+iUoeaso+i+vg0KK+iUoeaso+milg0KK+iUoeatpuiwmg0KK+iUoeeJp+WLiw0KK+iUoeebtOWLiw0KK+iUoeenieaYhg0KK+iUoeenieeSiw0KK+iUoeenieiwlQ0KK+iUoeiKs+a0tQ0KK+iUoemHh+iKsw0KK+iUoemHkeWzsA0KK+iUoemHkem+mQ0KK+iUoemVv+iNow0KK+iUoembqOa0gQ0KK+iUoemdkuWzsA0KK+iUoeS/oeiJrw0KK+iUoeS/iuaZjw0KK+iUoeS/iui0pA0KK+iUoeWTgeS7qg0KK+iUoeWupeWumg0KK+iUoeW7uuijlQ0KK+iUoeaAneaNtw0KK+iUoeaUv+Wujw0KK+iUoeaUv+iogA0KK+iUoeaUv+WTsg0KK+iUoeaUv+e+pA0KK+iUoeaUv+WLiw0KK+iUoeaUv+e/sA0KK+iUoeaUv+m+mQ0KK+iUoeaYrem+mQ0KK+iUoeafj+avhQ0KK+iUoeeOsua0pQ0KK+iUoeemueathg0KK+iUoee6qua6kA0KK+iUoee+juiKnQ0KK+iUoee+juiOiQ0KK+iUoee+juaFpw0KK+iUoeiLseWulw0KK+iUoemDgeWQmw0KK+iUoemfpuW/lw0KK+iUoeWHjOWHpA0KK+iUoeWon+Wonw0KK+iUoeWutuWNjg0KK+iUoeWuueeRmw0KK+iUoeaCpueOnw0KK+iUoeaMr+iurg0KK+iUoeagqee7tA0KK+iUoeS9qeaAoQ0KK+iUoeecn+emlQ0KK+iUoee0oOeipw0KK+iUoeiMueiMtQ0KK+iUoeS8n+adsA0KK+iUoeWbveaJiw0KK+iUoeWbveWcow0KK+iUoeWfueivkQ0KK+iUoeW0h+awkQ0KK+iUoeWQr+Wggg0KK+iUoea3u+aWhw0KK+iUoea3keWmgw0KK+iUoea3keaAoQ0KK+iUoea3keeOsg0KK+iUoea3keecnw0KK+iUoea3keaDoA0KK+iUoea3keeRnA0KK+iUoea3keiWhw0KK+iUoeebm+WLiw0KK+iUoembquWNvw0KK+iUoeiDnOmbhA0KK+iUoeWNmuWFqA0KK+iUoeS5lOWuiQ0KK+iUoeWvjOi0tQ0KK+iUoeaDoOWmgg0KK+iUoeaDoOe+jg0KK+iUoeaDoOeQqg0KK+iUoeaDoOeHlQ0KK+iUoeaZr+a3kQ0KK+iUoeaZuuWujw0KK+iUoeaZuuaakA0KK+iUoea5mOaAoQ0KK+iUoeeak+aYjg0KK+iUoeiIkuWuhw0KK+iUoeiPgeiPgQ0KK+iUoeWSj+e/lA0KK+iUoemAuOePig0KK+iUoei/m+aYjA0KK+iUoemahuazsA0KK+iUoembheWQmw0KK+iUoembheiKrA0KK+iUoembheiMuQ0KK+iUoembheaDoA0KK+iUoembheiPgQ0KK+iUoembheaFpw0KK+iUoembr+a3hw0KK+iUoeS8oOW+tw0KK+iUoeahoueRnA0KK+iUoeavk+mclg0KK+iUoeeRnuaWhw0KK+iUoeeRnuWzsA0KK+iUoeeRnum6kg0KK+iUoeS5ieebig0KK+iUoeijleWBpQ0KK+iUoeivl+iWjw0KK+iUoeWYieS7gQ0KK+iUoeWYieaBkg0KK+iUoeWYieeroA0KK+iUoeWYieW6hg0KK+iUoeiNo+aYjA0KK+iUoeiNo+i0pA0KK+iUoeaxieS5iQ0KK+iUoeeip+WuuQ0KK+iUoeemj+aZjw0KK+iUoee7tOeOsg0KK+iUoee7tOiTgQ0KK+iUoeijtOS8tg0KK+iUoemTrQ0KK+iUoemTreWzsA0KK+iUoemTrei0pA0KK+iUoeWHpOS7qg0KK+iUoeW+gemclg0KK+iUoeaFp+awkQ0KK+iUoeaFp+i0ng0KK+iUoeaFp+iQsQ0KK+iUoeavhei9qQ0KK+iUoei0pOeahw0KK+iUoeWtpuaWhw0KK+iUoeW/humTgw0KK+iUoeaZk+eEtg0KK+iUoeazvemTrQ0KK+iUoemilueutA0KK+iUoee/sOeGig0KK+iUoeiVmeWptw0KK+iUoemUpuWdoQ0KK+iUoemdmeWunA0KK+iUoemdmeaDoA0KK+iUoem+meS7qg0KK+iUoee/vOWmgg0KK+iUoem4v+awkQ0KK+iUoem4v+aWjA0KK+iUoeeSp+WFiQ0KK+iUoeS4sOaWhw0KK+iUoeS4sOadsA0KK+iUoemVh+Wysw0KK+iUoem5g+W8pQ0KK+iUoeeQvOS7qg0KK+iUoeS4veiKsw0KK+iUoeS4veaDoA0KK+iUoeeMruavhQ0KK+iUoeiAgOe+pA0KK+iUoeiAgOmpuQ0KK+iUoemmqOS7qg0KK+iUoeS9tuWFtA0KK+iUoeaXu+iKsw0KK+iUoeaXu+Wuqg0KK+iUoeeQhOeruQ0KK+iUoeathuaAoQ0KK+iUoeeOruerkQ0KK+iUoee8jw0KK+iUoemRq+W7tw0KK+iwiOaYreWFsA0KK+mDkeS4gOWHoQ0KK+mDkeS5g+S9sw0KK+mDkeS6uuWFgw0KK+mDkeWKm+S7gQ0KK+mDkeWPiOS7gQ0KK+mDkeWjq+mfpg0KK+mDkeWtkOingQ0KK+mDkeWwj+Wymg0KK+mDkeWwueaWrw0KK+mDkeS7geWvjA0KK+mDkeWFg+WtnQ0KK+mDkeWFg+eRnA0KK+mDkeWPi+ivmg0KK+mDkeW/g+Wmgg0KK+mDkeaWh+atow0KK+mDkeaWh+W9rA0KK+mDkeaWh+WvjA0KK+mDkeaWh+WYiQ0KK+mDkeaciOaenQ0KK+mDkeS4luaYjA0KK+mDkeS4lua5mA0KK+mDkeS7lemRqw0KK+mDkeW3p+mdkg0KK+mDkeW8mOS8nw0KK+mDkeato+ivmg0KK+mDkeawuOa0pQ0KK+mDkeeOieS8tg0KK+mDkeeOieiLsQ0KK+mDkeeOieiPgQ0KK+mDkeeri+S6qw0KK+mDkeS6mOWQnw0KK+mDkeS8iuecnw0KK+mDkeS7suWujw0KK+mDkeS7sui0pA0KK+mDkeWFieS9kQ0KK+mDkeWFiea3sw0KK+mDkeWFhuWdhw0KK+mDkeWFiOiQjA0KK+mDkeWQieS9kQ0KK+mDkeWQj+WtnA0KK+mDkeWQiOS/rg0KK+mDkeWkmea2tQ0KK+mDkeWmguasow0KK+mDkeWmgue6rw0KK+mDkeWuh+Wujw0KK+mDkeWuh+WHgA0KK+mDkeWuiOS4nA0KK+mDkeWuieiKuA0KK+mDkeWuiee/lA0KK+mDkeaIkOajoA0KK+mDkeaXreebmw0KK+mDkeaciei0og0KK+mDkeeZvuWptw0KK+mDkee+veaZtA0KK+mDkeiHs+WImg0KK+mDkeS8r+WNlw0KK+mDkeWQm+i+vg0KK+mDkeWuj+aYjg0KK+mDkeW/l+WKnw0KK+mDkeW/l+S8nw0KK+mDkeW/l+m+mQ0KK+mDkeengOaAoQ0KK+mDkeengOWonw0KK+mDkeengOaFpw0KK+mDkeiCsuWNhw0KK+mDkei0neWmgg0KK+mDkeS9s+WunA0KK+mDkeS9s+elpQ0KK+mDkeS9s+S7qg0KK+mDkeS9qeePig0KK+mDkeWFtumbrw0KK+mDkeWtn+eOsg0KK+mDkeWul+adsA0KK+mDkeWunOiKsw0KK+mDkeW5uOWunA0KK+mDkeaAoeWQmw0KK+mDkeaAoeWptw0KK+mDkeaYjOWysw0KK+mDkeaYjuW/oA0KK+mDkeaYjumTqA0KK+mDkeaso+Wmgg0KK+mDkeaso+iNow0KK+mDkeenieazkw0KK+mDkeiKuOiKuA0KK+mDkemVv+W/lw0KK+mDkeS/iuWujw0KK+mDkeWLh+eMmw0KK+mDkeW7uuS9sw0KK+mDkeW9pui+vg0KK+mDkeaYpeiPig0KK+mDkeecgeadkQ0KK+mDkee+jueOiQ0KK+mDkee+jueQtA0KK+mDkeiLpeeQpA0KK+mDkei/quWFgQ0KK+mDkeWAqeWmgg0KK+mDkeWutuWFuA0KK+mDkeWutumTrQ0KK+mDkeaMr+WunA0KK+mDkeS5pumSsA0KK+mDkeS9qeWQmw0KK+mDkeelkOmYoQ0KK+mDkee0oOW9rA0KK+mDkeiMl+iBqg0KK+mDkeS8n+ePig0KK+mDkeWbveatow0KK+mDkeWbveelpQ0KK+mDkeWfueiBqg0KK+mDkeW0h+S9kQ0KK+mDkeaDn+W/gw0KK+mDkeWQr+iNow0KK+mDkeaiheWQmw0KK+mDkea4heS/ig0KK+mDkea3keS6kQ0KK+mDkea3keexsw0KK+mDkea3keeOsg0KK+mDkea3keWptw0KK+mDkea3keeHlQ0KK+mDkea4iuiXpA0KK+mDkeelpeWmgg0KK+mDkeiOiembrw0KK+mDkeadsOWFgw0KK+mDkeWHr+S7gQ0KK+mDkeWHr+WFgw0KK+mDkeWHr+aWhw0KK+mDkeWHr+iCsg0KK+mDkeWHr+m4vw0KK+mDkeiDnOaXrQ0KK+mDkeWNmuS7gQ0KK+mDkeWNmuaWhw0KK+mDkeS5lOmTrQ0KK+mDkeWpt+aWhw0KK+mDkeWvjOS7gQ0KK+mDkeWwiuWtnQ0KK+mDkeaDoOaWhw0KK+mDkeaDoOWQmw0KK+mDkeaDoOe6uQ0KK+mDkeaDoOmcnA0KK+mDkeaWr+WwuQ0KK+mDkeaZr+S7gQ0KK+mDkeaZr+aWhw0KK+mDkeaZr+mahg0KK+mDkeaZuuS7gQ0KK+mDkeaZuuWFgw0KK+mDkeaZuuaYjA0KK+mDkeaZuuixqg0KK+mDkeacneWFgw0KK+mDkeacneiQpQ0KK+mDkeakjeWvsA0KK+mDkea5mOaYgA0KK+mDkeeak+S6kQ0KK+mDkeeoi+iurg0KK+mDkeS4nembrw0KK+mDkee/lOm+mQ0KK+mDkeiIkuiVig0KK+mDkeWSj+S7gQ0KK+mDkeivj+iwpg0KK+mDkemAuOWotA0KK+mDkemXtem4vw0KK+mDkembheS6kQ0KK+mDkembheWPiw0KK+mDkembheaWhw0KK+mDkembheWmgw0KK+mDkembheiKrA0KK+mDkembheWonw0KK+mDkembheeQqg0KK+mDkembheeUhA0KK+mDkembhem7mw0KK+mDkeS6kem5jw0KK+mDkeaEj+S4rQ0KK+mDkeaVrOahpg0KK+mDkeavk+m+hA0KK+mDkeeRnue+jg0KK+mDkeeRnOeQsw0KK+mDkeS5ieWuqg0KK+mDkeWco+i0pA0KK+mDkeijleW5tA0KK+mDkeivl+aFpw0KK+mDkeWYieS7gQ0KK+mDkeWYieaJrA0KK+mDkeWYieaXuw0KK+mDkeiNo+Wonw0KK+mDkeemj+WSjA0KK+mDkeiCh+W/gw0KK+mDkemTreazsA0KK+mDkeWHpOm+hA0KK+mDkeW6huWTsg0KK+mDkeaFp+iKsw0KK+mDkeaFp+mVgQ0KK+mDkeiUmuidiQ0KK+mDkeWuquWtmA0KK+mDkeaZk+aAoQ0KK+mDkeaZk+iWhw0KK+mDkemilumTqA0KK+mDkeiVmeeQpg0KK+mDkemclumqjw0KK+mDkemdmeiKsw0KK+mDkeaHi+adsA0KK+mDkeiwouWGoA0KK+mDkem4v+a6kA0KK+mDkeS4sOWYiQ0KK+mDkeS4veWQmw0KK+mDkeeMruaWhw0KK+mDkeaXu+i9qQ0KK+mDkeeQh+S7gQ0KK+mDkeWftQ0KK+mDkee1nOW/gw0KK+mDkeeOrumahg0KK+mDkemSsOmSnw0KK+mDkemdiw0KK+mCk+WNh+aVpg0KK+mCk+aWh+S7qg0KK+mCk+awuOW/oA0KK+mCk+S8iuWuuQ0KK+mCk+WQjueQmw0KK+mCk+aXreaVpg0KK+mCk+W/l+eFjA0KK+mCk+S9s+eOsg0KK+mCk+WunOasow0KK+mCk+aYjuiKsw0KK+mCk+mHkem4vw0KK+mCk+eni+aDoA0KK+mCk+aMr+iLsQ0KK+mCk+S8n+i0pA0KK+mCk+a3keeOsg0KK+mCk+WNmuS7gQ0KK+mCk+aDoOaWhw0KK+mCk+aZr+m+mQ0KK+mCk+e/lOS7gQ0KK+mCk+mbheW/gw0KK+mCk+mhuuWxlQ0KK+mCk+ijlemmqA0KK+mCk+emj+mahg0KK+mCk+mch+Wuhw0KK+mCk+milumqjw0KK+mCk+WKpuWRiA0KK+mygeW/oOixqg0KK+mygeWuquS6kQ0KK+m7juS4luW7iQ0KK+m7juWuh+WuuQ0KK+m7juaYjuS8pg0KK+m7juS/kOWdhw0KK+m7juWutuS8tg0KK+m7juWpieS7qg0KK+m7jueEleWFgw0KK+m7jumTreS7gQ0KK+m7juekvOaZug0KK+WNouS4ieS7gQ0KK+WNouS7geadsA0KK+WNouaWh+W/oA0KK+WNouaWh+aZnw0KK+WNouW8mOa1tw0KK+WNouawuOWNhw0KK+WNoueUs+azsA0KK+WNouWQieWLhw0KK+WNouWRiOiKsw0KK+WNouW/l+W/oA0KK+WNouW/l+iejQ0KK+WNouiCsuWcow0KK+WNouS9s+aDoA0KK+WNouWPlOasow0KK+WNouWumuWdhw0KK+WNouW7tuWNjg0KK+WNouaAoeS8tg0KK+WNouaAoea2tQ0KK+WNouaJv+S4mg0KK+WNouaso+WunA0KK+WNoueOq+Wmjw0KK+WNoumbqOa2tQ0KK+WNouS/neWFqA0KK+WNouS/iuiogA0KK+WNouS/iuWEkg0KK+WNouWGoOaZlA0KK+WNouWljuS8rw0KK+WNouWogemclg0KK+WNouW7uuWujw0KK+WNouW7uumTrQ0KK+WNouaAnea6kA0KK+WNouaYn+WFqA0KK+WNouafj+iJrw0KK+WNouebiOWujw0KK+WNoue+juWmgg0KK+WNouiLseS7gQ0KK+WNoumfpuS7gQ0KK+WNouWutumSsA0KK+WNouellue/lA0KK+WNouWpieeRnA0KK+WNoua3keS4vQ0KK+WNouaDoOadsA0KK+WNoui2hee+pA0KK+WNouaBuuiOiQ0KK+WNoue+pOiCsg0KK+WNouWYieaMrw0KK+WNouW+t+iKsw0KK+WNouaFp+WunA0KK+WNoui+ieWxlQ0KK+WNoumiluW/lw0KK+WNoum+meeUnw0KK+WNoumfteWykQ0KK+WNouiqieWFgQ0KK+WNouetseiOuQ0KK+ephue+juiVmQ0KK+iQp+S6uuixqg0KK+iQp+Wjq+azsA0KK+iQp+Wwuei0ng0KK+iQp+WFgeazsA0KK+iQp+aWh+asow0KK+iQp+aWh+eslA0KK+iQp+aWh+mtgQ0KK+iQp+S4luawkQ0KK+iQp+S7peS6rg0KK+iQp+ato+W5sw0KK+iQp+awuOazkw0KK+iQp+eOiei0ng0KK+iQp+eri+mfpg0KK+iQp+S6pue7tA0KK+iQp+S7suW/lw0KK+iQp+WFhueQsw0KK+iQp+WQjeaygg0KK+iQp+WcreWmmQ0KK+iQp+WmguePig0KK+iQp+Wuh+S8rw0KK+iQp+WuieW7tw0KK+iQp+acieWujw0KK+iQp+iBv+Wujw0KK+iQp+WQm+aAoQ0KK+iQp+Wuj+ijlQ0KK+iQp+W/l+e+vQ0KK+iQp+W/l+ixqg0KK+iQp+engOaDoA0KK+iQp+iCsumahg0KK+iQp+S9s+aCjA0KK+iQp+S9qeePig0KK+iQp+Wto+iWhw0KK+iQp+WwmuaWhw0KK+iQp+aAoeiKsw0KK+iQp+aYhuW7tw0KK+iQp+aso+aAoQ0KK+iQp+iKs+ebiA0KK+iQp+mdkuiQjQ0KK+iQp+S/iui0pA0KK+iQp+W9puW9sA0KK+iQp+afj+i9qQ0KK+iQp+e+juWonw0KK+iQp+i/sOS7gQ0KK+iQp+Wkj+aVjw0KK+iQp+aMr+WuiQ0KK+iQp+S9qeWmgg0KK+iQp+iureWbvQ0KK+iQp+Wbveatow0KK+iQp+WbveWunQ0KK+iQp+W0h+iuug0KK+iQp+aVj+W9pg0KK+iQp+a4heeHlQ0KK+iQp+a3keePjQ0KK+iQp+a3kemilg0KK+iQp+mbquWQnw0KK+iQp+WHr+aHiw0KK+iQp+WNmuS7gQ0KK+iQp+WNmuS7sA0KK+iQp+WvjOWFgw0KK+iQp+aDoOWFgw0KK+iQp+aDoOiKsw0KK+iQp+aDoOS5oQ0KK+iQp+aWkOWmgg0KK+iQp+aZr+iBqg0KK+iQp+aZuuaihQ0KK+iQp+aji+WFgw0KK+iQp+ero+m4vw0KK+iQp+WSj+aWuQ0KK+iQp+mAuOW5sw0KK+iQp+mbheS4uQ0KK+iQp+mbheaWhw0KK+iQp+mbheiOiQ0KK+iQp+mbr+W/gw0KK+iQp+eIseeOsg0KK+iQp+eElee6rA0KK+iQp+eRm+aXlw0KK+iQp+Wco+ahpg0KK+iQp+ivl+eShw0KK+iQp+WYieeQqg0KK+iQp+WugeWQmw0KK+iQp+e7tOWAqQ0KK+iQp+i+heW9pg0KK+iQp+mTreadgw0KK+iQp+aFp+aAoQ0KK+iQp+iOueecnw0KK+iQp+W/huWFsA0KK+iQp+e/sOiLsQ0KK+iQp+mdmeWunA0KK+iQp+S4sOaZug0KK+iQp+S4veWonw0KK+iQp+m5pOi9qQ0KK+iQp+eQrue/sA0KK+iQp+afveWTlw0KK+i1luS5g+migg0KK+i1luWjq+i2hQ0KK+i1luS7geelkA0KK+i1luWkqem4vw0KK+i1luaWh+iLsQ0KK+i1luaWh+WNjg0KK+i1luS4luaYjA0KK+i1luS4lue7tA0KK+i1luWPr+aBqQ0KK+i1luW8mOeSmA0KK+i1luato+mHjg0KK+i1luawuOmTgw0KK+i1lueOieWUkA0KK+i1lueOiemcnA0KK+i1luS6pui0ng0KK+i1luWmg+WQmw0KK+i1luaXreW9pg0KK+i1luS8r+WogQ0KK+i1luWmmeWuow0KK+i1luWuj+aYjA0KK+i1luW7t+emuQ0KK+i1luW/l+aYjA0KK+i1luW/l+S8nw0KK+i1luW/l+e6sg0KK+i1luadj+WEkg0KK+i1luengOaYpQ0KK+i1luiCsuW7tw0KK+i1luiCsum6nw0KK+i1luS9s+S8tg0KK+i1luS9s+asow0KK+i1luS9s+aFpw0KK+i1luS9qeWQmw0KK+i1luWFtuS6rg0KK+i1luWtn+WNjg0KK+i1luWul+ivmg0KK+i1luWunOS9sw0KK+i1luWxheatow0KK+i1luaAoeaWhw0KK+i1luaAoeS8tg0KK+i1luaAoeWQmw0KK+i1luaAoeasow0KK+i1luaAoeahpg0KK+i1luaYjOW9pg0KK+i1luaYjuWujw0KK+i1luaYjuW+tw0KK+i1luS4nOW7tg0KK+i1luaso+WunA0KK+i1luatpua6qg0KK+i1lueOq+Wmgg0KK+i1luiKs+W7tg0KK+i1lumVv+S9kQ0KK+i1luS/oeWFiQ0KK+i1luS/oeivmg0KK+i1luS/iuWFhg0KK+i1luS/iuWujw0KK+i1luS/iuadsA0KK+i1luS/iui+vg0KK+i1luS/kOWNiQ0KK+i1luWGoOWujw0KK+i1luWLh+W/lw0KK+i1luWlleW4hg0KK+i1luWnv+Wdhw0KK+i1luWogeWdhw0KK+i1luWuo+WmpA0KK+i1luW7uuWQiA0KK+i1luW7uuS9kQ0KK+i1luW7uuW/lw0KK+i1luW7uumbhA0KK+i1luW7uuiejQ0KK+i1luW9puS9kA0KK+i1luW9puiJrw0KK+i1luW9puahpg0KK+i1luaAnemclg0KK+i1luaUv+WuvQ0KK+i1luaYreWFiQ0KK+i1luaYrem+mQ0KK+i1luaYseWLiw0KK+i1luafj+S8uA0KK+i1luafj+m+mQ0KK+i1luePgOi0pA0KK+i1luebiOmdkg0KK+i1luenkeWNsA0KK+i1lue6oumcng0KK+i1lue+juWGoA0KK+i1lue+jumMtQ0KK+i1luiMguW7tw0KK+i1luiZueS8tg0KK+i1luWGm+S4vg0KK+i1lumDgembrw0KK+i1lumfpui+vg0KK+i1luWutuW8mA0KK+i1luaMr+eUnw0KK+i1lua1qeS4sA0KK+i1luenqeWFiQ0KK+i1lumrmOW/lw0KK+i1luWbveaBqQ0KK+i1luWfuua4jA0KK+i1luWQr+a6kA0KK+i1lua3keaAoQ0KK+i1lua3kei0ng0KK+i1lua3keiQjQ0KK+i1luiOiembrw0KK+i1luaDoOWQmw0KK+i1luaEieiKsw0KK+i1lumSpuivoA0KK+i1lui0teS5iQ0KK+i1lumahuW5sw0KK+i1lumbheeQtA0KK+i1lumhuuaMrw0KK+i1lua6kOa3sw0KK+i1luS5ieS4rQ0KK+i1luiLh+W4hg0KK+i1lumdluWunA0KK+i1luWYieaFpw0KK+i1luiNo+eQjw0KK+i1lue7tOW7tw0KK+i1lumTreebuA0KK+i1luWinuiBqg0KK+i1luW6humTrQ0KK+i1luaFp+Wonw0KK+i1lua0geiKsw0KK+i1lumUiw0KK+i1luaZk+aeqw0KK+i1lumilui+iQ0KK+i1lumUpuS6vw0KK+i1lumdmeeShw0KK+i1lum4v+mTrQ0KK+i1lumfteWmgg0KK+i1luS4vQ0KK+i1luS4vembrw0KK+i1luiKg+WQmw0KK+i1luafiuajiw0KK+i1lueOruaYgA0KK+i1lumciOWEkg0KK+i/n+Wwmuadgw0KK+mSseS7peaBrA0KK+mSseiJr+iVmQ0KK+mSseaso+WunA0KK+mSseWogeiejQ0KK+mSsemDgeiLuQ0KK+mSsemAuOmclg0KK+mSseW+t+S/ig0KK+mUnOaDoOmbrw0KK+mYjuaDoOeOsg0KK+mcjeiOmOeRnA0KK+mqhuawuOW7ug0KK+mqhuWto+W5sw0KK+mqhuiKs+aipw0KK+mqhuW7uuWRiA0KK+mqhuihjem+mQ0KK+mqhuWYieW6hg0KK+myjeihjOS7gQ0KK+myjeWbveWzsA0KK+m+meengOi0ng0KK+m+meaYn+WFhg0KK+WCqOS6jui2hQ0KK+W6lOW/l+Wujw0KK+aItOS5meiPgQ0KK+aItOWkp+mSpw0KK+aItOWFg+WIqQ0KK+aItOaWh+mbhA0KK+aItOato+W5sw0KK+aItOeri+S6ug0KK+aItOWFqOWIqQ0KK+aItOWuiOatow0KK+aItOS9kea0sg0KK+aItOWRiOWuiQ0KK+aItOWuj+S4ng0KK+aItOW/l+WNhw0KK+aItOadj+iKsw0KK+aItOS9s+W5sw0KK+aItOWto+WFqA0KK+aItOaAoei0ng0KK+aItOaYjuePoA0KK+aItOS/iue6rA0KK+aItOeni+mmmQ0KK+aItOmDgeiKsw0KK+aItOaMr+i/nA0KK+aItOWbveiJrw0KK+aItOaDn+aciQ0KK+aItOiOiQ0KK+aItOajruWcsA0KK+aItOmbheWmgg0KK+aItOS8oOWutg0KK+aItOeRnuWQmw0KK+aItOe+pOWzsA0KK+aItOWYieWujw0KK+aItOWYieWuqg0KK+aItOe7tOS8uA0KK+aItOWinueRnA0KK+aItOi0pOelpQ0KK+aItOmdmeS7qg0KK+aItOW/nuiHuw0KK+aItOiWj+ePig0KK+e8quS/oeWuhw0KK+iWm+S5g+WFgQ0KK+iWm+S4ueahgg0KK+iWm+S4lueFjA0KK+iWm+eOiemUiw0KK+iWm+WFieeoiw0KK+iWm+WmguWQmw0KK+iWm+eZvuaDoA0KK+iWm+W/l+Wujw0KK+iWm+S+neiSqA0KK+iWm+W5uOWYiQ0KK+iWm+WNh+aXrQ0KK+iWm+Wllem+mQ0KK+iWm+e+juiKsw0KK+iWm+Wxleeriw0KK+iWm+S8n+S8rw0KK+iWm+a3kemdlg0KK+iWm+WHr+aWhw0KK+iWm+WbtOS4rQ0KK+iWm+aZr+aWhw0KK+iWm+ero+e6tg0KK+iWm+mbheiQjQ0KK+iWm+eRnuePjQ0KK+iWm+WYiembhA0KK+iWm+iTk+iKsw0KK+iWm+WEkumcmQ0KK+iWm+mfteWptw0KK+iWm+mSsOecnw0KK+iwouS6juaosQ0KK+iwouWwj+aihQ0KK+iwouS7geWTsg0KK+iwouWFg+i0tQ0KK+iwouW/g+mbhQ0KK+iwouaWh+Wonw0KK+iwouaWh+Wwpw0KK+iwouaWh+eRnA0KK+iwouaWh+aWjA0KK+iwouS7peasow0KK+iwouW8mOS6rg0KK+iwouato+ebig0KK+iwouawuOS/oQ0KK+iwoueOieePoA0KK+iwoueri+e+pA0KK+iwouWFieS4rQ0KK+iwouWQieS4sA0KK+iwouWmgum4vw0KK+iwouaIjOWYiQ0KK+iwouiBvw0KK+iwouS9kOWunA0KK+iwouWFi+W8ug0KK+iwouWdh+avhQ0KK+iwouWuj+W/oA0KK+iwouWuj+e6rA0KK+iwouW/l+Wujw0KK+iwouW/l+aYjg0KK+iwouW/l+S8nw0KK+iwouW/l+mAuA0KK+iwouW/l+W+tw0KK+iwouaJtumUpg0KK+iwouengOmdkg0KK+iwouengOiOsg0KK+iwouiCsuWonw0KK+iwouiCsumclg0KK+iwouS6muWymg0KK+iwouS+neS8pg0KK+iwouS9s+aWhw0KK+iwouS9s+Wujw0KK+iwouS9s+iKsw0KK+iwouS9s+WAqQ0KK+iwouS9s+e6rw0KK+iwouS9s+mbrw0KK+iwouS9s+milg0KK+iwouS9s+aosQ0KK+iwouS9qeWQmw0KK+iwouS9qeiKsw0KK+iwouS9qeePig0KK+iwouS9qeePjQ0KK+iwouS9qeecnw0KK+iwouS9qeiTiQ0KK+iwouS+keS5pg0KK+iwouWFtuaWjA0KK+iwouWRqOeCvQ0KK+iwouWdpOWuqg0KK+iwouWtn+WQmw0KK+iwouWtn+iKuA0KK+iwouWtn+ecnw0KK+iwouWtn+ahpg0KK+iwouWtn+iKqQ0KK+iwouWul+S9kQ0KK+iwouWul+WuuQ0KK+iwouWul+i0pA0KK+iwouWul+Wuqg0KK+iwouWul+e/sA0KK+iwouWunA0KK+iwouWunOiKsw0KK+iwouWunOS8pg0KK+iwouWunOWptw0KK+iwouWunOiHuw0KK+iwouWum+eOsg0KK+iwouWum+iwmA0KK+iwouWwmuWEkg0KK+iwouW5uOWunA0KK+iwouW6mue/sA0KK+iwouW/oOWLpA0KK+iwouaAoeWptw0KK+iwouaJv+i+vg0KK+iwouS6juedvw0KK+iwouaYk+mclg0KK+iwouaYjOeRvg0KK+iwouaYjg0KK+iwouaYjuWujw0KK+iwouaYjuadkQ0KK+iwouaYjuiKsw0KK+iwouaYjuS8pg0KK+iwouaYjuS5pg0KK+iwouaYjuaDoA0KK+iwouaYjuaGrA0KK+iwouaYjuWuqg0KK+iwouaYjue/sA0KK+iwouaYjuirtA0KK+iwouWNh+WTsg0KK+iwouS4nOWNhw0KK+iwouS4nOaZkw0KK+iwouadvuWuqg0KK+iwouaso+Wujw0KK+iwouaso+aAoQ0KK+iwouaso+mSig0KK+iwouaso+mclg0KK+iwoueJp+mYrg0KK+iwouenieWuuQ0KK+iwouenieiwmg0KK+iwouiKnemdkg0KK+iwoumHkei0ng0KK+iwoumVv+WOnw0KK+iwoumbqOmdkg0KK+iwoumdkuahpg0KK+iwouS/iuWujw0KK+iwouS/nuaesA0KK+iwouWlleWnnQ0KK+iwouW9puWQjw0KK+iwouaUv+eUtw0KK+iwouaUv+i+vg0KK+iwouaUv+e/sA0KK+iwouafj+iInw0KK+iwoueah+e/lA0KK+iwoueni+eHlQ0KK+iwoue+jueOsg0KK+iwouiHtOe+pA0KK+iwoumDgeeRhA0KK+iwouWutuiPsQ0KK+iwouW6reaBqQ0KK+iwouaZi+i0pA0KK+iwoua1qeeEtg0KK+iwoue0oOiPsQ0KK+iwouW5sumqjw0KK+iwouabvOebiA0KK+iwouWbveW9rA0KK+iwouWpieeOsg0KK+iwouWQr+aWhw0KK+iwouaik+m6nw0KK+iwoua4hea0sg0KK+iwoua3keiKrA0KK+iwoua3keWonw0KK+iwoua3kemSpw0KK+iwoueajuebiA0KK+iwouesoOWFgw0KK+iwouWHr+S8nw0KK+iwouWNmueakw0KK+iwouWqm+eQqg0KK+iwouWymuWxjw0KK+iwouaDoOiKrA0KK+iwouaDoOiQjQ0KK+iwouaZr+S7gQ0KK+iwouaZuua1qQ0KK+iwouakjeWGiA0KK+iwoueak+aZug0KK+iwouiPiuiVmQ0KK+iwoui/m+W/oA0KK+iwoumbheWmgg0KK+iwoumbhembqg0KK+iwoumbheiQjQ0KK+iwoumbr+WHrw0KK+iwoumhuumahg0KK+iwouavk+eOsg0KK+iwoueRnuaihQ0KK+iwouS4h+m+mQ0KK+iwouivl+aFpw0KK+iwouWYieePig0KK+iwouWYiemTrQ0KK+iwouiNo+WTsg0KK+iwoueip+iPgQ0KK+iwoue7tOS7gQ0KK+iwoue/oOeOrw0KK+iwoumTreW/oA0KK+iwoumTreaZug0KK+iwouWHpOeOsg0KK+iwouW+t+mSpw0KK+iwouaFp+ePjQ0KK+iwouaFp+eQvA0KK+iwouiUmuWEkg0KK+iwouWtpue6sg0KK+iwouaZk+Wymg0KK+iwoueHleeOsg0KK+iwouiVmQ0KK+iwouiejem9kA0KK+iwoumdmeWunA0KK+iwoumdmeS7qg0KK+iwoueRt+Wmgg0KK+iwoum4v+mqjw0KK+iwouekvOaIkA0KK+iwoumVh+Wuhw0KK+iwoueQvOaWhw0KK+iwoumfteWEkg0KK+iwouWuneeRog0KK+iwouiAgOWFuw0KK+iwouaYvumTrQ0KK+iwouaXu+iOiQ0KK+iwouaZn+mTrQ0KK+iwoueCnOmikQ0KK+iwouiAgOiBqg0KK+mUuuS5meawkQ0KK+mUuuWFg+aMrw0KK+mUuuaWh+Wuhw0KK+mUuuaWh+mSpg0KK+mUuuaciOWchg0KK+mUuuW5vOWHjA0KK+mUuuawuOmbhA0KK+mUuueOieaDoA0KK+mUuuWFhuawkQ0KK+mUuuaIkOWlhw0KK+mUuuS8r+WQmw0KK+mUuuWtneWFtg0KK+mUuuW/l+Wujw0KK+mUuuW/l+ixqg0KK+mUuuengOiKsw0KK+mUuuiCsuiwmg0KK+mUuuS+nemdmQ0KK+mUuuS9s+ecnw0KK+mUuuS9s+milg0KK+mUuuS9qeiKuA0KK+mUuuS9qeWptw0KK+mUuuWNk+WEkg0KK+mUuuWtn+aGrA0KK+mUuuWunOWFqA0KK+mUuuWunOWFtA0KK+mUuuWwmuWEkg0KK+mUuuW7tuWNjg0KK+mUuuaJv+eSiw0KK+mUuuaYk+i+vg0KK+mUuuaYjuengA0KK+mUuuaYjuaZjw0KK+mUuuaYjuWuqg0KK+mUuuWNh+milg0KK+mUuuaso+e/sA0KK+mUuuenieiwmg0KK+mUuumHkeeSiw0KK+mUuuS/iueUqw0KK+mUuuaUv+awkQ0KK+mUuuaUv+mUpg0KK+mUuuebiOaFpw0KK+mUuue+jueQsw0KK+mUuumDgee/jg0KK+mUuuaMr+azkw0KK+mUuue6ueaYkw0KK+mUuuWVhumqjw0KK+mUuuW0h+aihQ0KK+mUuua3keiKrA0KK+mUuua3keiQjQ0KK+mUuuWHr+S+nQ0KK+mUuuaDoOWmgg0KK+mUuuaZuuadsA0KK+mUuue7muWmgg0KK+mUuumAuOefsw0KK+mUuuS6keWFiQ0KK+mUuua6kOW+tw0KK+mUuuijleaWhw0KK+mUuuWYieWHpA0KK+mUuuelr+WFgw0KK+mUuumTreaZug0KK+mUuuW+t+mclg0KK+mUuuS5kOWQnw0KK+mUuuaZk+Wymg0KK+mUuumUpueQsw0KK+mUuuiWsA0KK+mUuum5j+mjng0KK+mUuuaHv+WNjg0KK+mUuuaXu+WcnA0KK+meoOWyseeQpg0KK+mfqeaWh+S4sA0KK+mfqeWFi+S/rQ0KK+mfqeS9qeWKrQ0KK+mfqeWunOa0gQ0KK+mfqeaYjuS8pg0KK+mfqeebuOWunA0KK+mfqeaihQ0KK+mfqembheiAjA0KK+mfqeWYiemqjw0KK+mfqeWuneiOuQ0KK+S4m+a3keWNjg0KK+eugOS4iuWTsg0KK+eugOWjq+ebig0KK+eugOWjq+a/oA0KK+eugOWwj+iVmQ0KK+eugOaWh+S6qA0KK+eugOaWh+i0tQ0KK+eugOS4luijlQ0KK+eugOW3p+Wptw0KK+eugOawkem+mQ0KK+eugOeOieePjQ0KK+eugOeri+S6ug0KK+eugOS8iuWplQ0KK+eugOS7sOWjrg0KK+eugOWQieiBqg0KK+eugOWuh+Wxjw0KK+eugOeZvuW6lA0KK+eugOiHs+mchg0KK+eugOS8tuWonw0KK+eugOWQm+eOsg0KK+eugOWmpOeOsg0KK+eugOWuj+S8pg0KK+eugOW7t+WuiQ0KK+eugOW/l+WuiQ0KK+eugOW/l+WzsA0KK+eugOW/l+mbhA0KK+eugOW/l+milg0KK+eugOengOadjw0KK+eugOengOe6rw0KK+eugOi0neePig0KK+eugOS9s+eQqg0KK+eugOS9qeeQqg0KK+eugOWul+W+tw0KK+eugOaAoeWptw0KK+eugOaYjumbgQ0KK+eugOeOq+eOiQ0KK+eugOmbqOiNqw0KK+eugOW7uuS4gA0KK+eugOaYreiQuA0KK+eugOe+juWonw0KK+eugOiZueeQqg0KK+eugOWutuaWsA0KK+eugOS9qembhQ0KK+eugOWBpeS/ig0KK+eugOWbveaWjA0KK+eugOWQr+aBkg0KK+eugOa3keiKrA0KK+eugOa3keWptw0KK+eugOiOiemdmQ0KK+eugOWNmuW9rA0KK+eugOaDoOa5mA0KK+eugOajruS5mQ0KK+eugOWNjuecnw0KK+eugOmbheWmgg0KK+eugOmhuueriw0KK+eugOaVrOW6rQ0KK+eugOa6ouWdhw0KK+eugOeRnuajuw0KK+eugOWco+ixqg0KK+eugOivl+WzsA0KK+eugOWYieWujw0KK+eugOWYieW9rA0KK+eugOWYiem+hA0KK+eugOaxieeSiw0KK+eugOelr+S9kQ0KK+eugOe7tOiQsQ0KK+eugOi/nOecnw0KK+eugOmTrei+sA0KK+eugOWHpOS7qg0KK+eugOaFp+Wonw0KK+eugOW/huWmgg0KK+eugOmUoea4ig0KK+eugOmqj+i0uA0KK+eugOiJuuWzsA0KK+eugOmqiua0gQ0KK+eugOeOruS8pg0KK+eugOWcow0KK+iBguS4nOWNlw0KK+iBguaakOWzuw0KK+iTneWtkOahkw0KK+iTneWFg+eakw0KK+iTneaWh+WtnQ0KK+iTneW8mOS8nw0KK+iTneS7suS8nw0KK+iTneW/l+WPkQ0KK+iTneaAoeW5sw0KK+iTneaYlee6rA0KK+iTneaYpeWPkQ0KK+iTneWzu+W9rA0KK+iTneS8n+S7gQ0KK+iTneWbveWNjg0KK+iTneaik+S7kQ0KK+iTneaDoOiQjQ0KK+iTnembhem+hA0KK+iTneWYieWTsg0KK+iTneaFp+ePig0KK+iTnem7m+iOuQ0KK+mYmeWwkeiKsw0KK+mYmeWQn+WkmQ0KK+mYmeaYjuaFpw0KK+mYmemAouavhQ0KK+mYmea7ouiKrA0KK+minOWjq+W9rA0KK+minOWkp+emjw0KK+minOWwj+WHoQ0KK+minOaciA0KK+minOW8mOelpQ0KK+minOawuOiKsw0KK+minOeOieeOrg0KK+minOWFieeOlw0KK+minOWmgueOiQ0KK+minOacieeUtw0KK+minOS8r+Wlhw0KK+minOWRiOaXrQ0KK+minOWmmeiKsw0KK+minOWuj+WTsg0KK+minOWuj+edvw0KK+minOW/l+aIkA0KK+minOW/l+aJrA0KK+minOW/l+m6nw0KK+minOengOecnw0KK+minOiJr+azvQ0KK+minOS9s+aFpw0KK+minOWul+W5sw0KK+minOaJv+S8nw0KK+minOenieW+tw0KK+minOWlleS7gQ0KK+minOeni+eQtA0KK+minOiLpeW6rQ0KK+minOWutuelug0KK+minOS9qeWymg0KK+minOWbveS5pg0KK+minOWwieWHrw0KK+minOaZqOaakA0KK+minOa3keS6kQ0KK+minOWpt+eOsg0KK+minOWNjuaIkA0KK+minOmbheWNiQ0KK+minOmbr+mftQ0KK+minOeRnuaWhw0KK+minOeRnOaFpw0KK+minOWco+m4vw0KK+minOWYieaIkA0KK+minOWYieeQsw0KK+minOWugeS9kQ0KK+minOemj+mhug0KK+minOmTtuahkA0KK+minOm4o+W6hg0KK+minOiOuem5jw0KK+minOazveWuhw0KK+minOm4v+mSpg0KK+minOeMruS9kQ0KK+minOmSsOiKuA0KK+mtj+Wjq+adsA0KK+mtj+WtkOaZtA0KK+mtj+S7geWogQ0KK+mtj+aWh+e7rg0KK+mtj+W3p+aZtA0KK+mtj+eOiembrw0KK+mtj+S7u+W7tw0KK+mtj+WQjeazmw0KK+mtj+Wuh+i+vg0KK+mtj+eZvuebmw0KK+mtj+S8tuWonw0KK+mtj+WQm+a0gQ0KK+mtj+WtneWuvQ0KK+mtj+WykeiKrA0KK+mtj+W/l+S8pg0KK+mtj+engOaBrA0KK+mtj+iJr+S9kQ0KK+mtj+S9s+WNvw0KK+mtj+WunOWuvQ0KK+mtj+aYjueroA0KK+mtj+S/iuaXug0KK+mtj+aYpeeUnw0KK+mtj+iLsemVhw0KK+mtj+aZi+S4gA0KK+mtj+S8nw0KK+mtj+W0h+ahkw0KK+mtj+a3keeOqw0KK+mtj+mAouavhQ0KK+mtj+acneS/oQ0KK+mtj+mAuOeOsg0KK+mtj+eIsea0pQ0KK+mtj+a7h+S9kQ0KK+mtj+etoOaWhw0KK+mtj+mTg+iKnQ0KK+mtj+WYieiJrw0KK+mtj+WrpuWmhg0KK+mtj+ehlemilg0KK+mtj+mTreaxiQ0KK+mtj+aFleW4hg0KK+mtj+i2i+WQiQ0KK+mtj+m6kuWuuQ0KK+mtj+eRhOiwig0KK+W6nuawuOWfuQ0KK+aXt+WpieWQmw0KK+e9l+WNg+mbrw0KK+e9l+WtkOi9qQ0KK+e9l+WwueS8tg0KK+e9l+S7geWLhw0KK+e9l+WFg+eUqw0KK+e9l+WFgeS4rQ0KK+e9l+WPi+WjsA0KK+e9l+W/g+Wxjw0KK+e9l+aWh+WunA0KK+e9l+aWh+W9rA0KK+e9l+aWh+m9kA0KK+e9l+aciOWHsA0KK+e9l+S4lumTrQ0KK+e9l+S7leajiw0KK+e9l+W3p+iOiQ0KK+e9l+ato+mCpg0KK+e9l+awuOaZug0KK+e9l+eOieiQjQ0KK+e9l+S6puaXiw0KK+e9l+S7sOecnw0KK+e9l+WFhue7tA0KK+e9l+Wuh+S7uw0KK+e9l+aXreWQmw0KK+e9l+iHs+WWhA0KK+e9l+Wuj+S4gA0KK+e9l+W/l+mbhA0KK+e9l+engOeOsg0KK+e9l+S6muWugQ0KK+e9l+S9s+eQpg0KK+e9l+WunOWQmw0KK+e9l+aAoeaDoA0KK+e9l+aYjueroA0KK+e9l+aso+aFiA0KK+e9l+iKt+mdkg0KK+e9l+S/iuW9pg0KK+e9l+W9pg0KK+e9l+eOsueOsg0KK+e9l+e+juiOsg0KK+e9l+iLkeamlQ0KK+e9l+Wutuasow0KK+e9l+aMr+W7tw0KK+e9l+azsOS8pg0KK+e9l+S9qeWonw0KK+e9l+e0oOiKsQ0KK+e9l+S8n+WTsg0KK+e9l+WBpeW/lw0KK+e9l+WUr+eRhA0KK+e9l+WbveWNjg0KK+e9l+WbveaakA0KK+e9l+WpieWopQ0KK+e9l+W8ug0KK+e9l+aVj+aWhw0KK+e9l+aVj+S7qg0KK+e9l+a3h+aWhw0KK+e9l+a3keiTiQ0KK+e9l+e7jeaWhw0KK+e9l+adsA0KK+e9l+WHr+mikA0KK+e9l+WNmuS/ig0KK+e9l+aDoOaWuQ0KK+e9l+aDoOWFsA0KK+e9l+aZuuiDvQ0KK+e9l+e0q+iPgQ0KK+e9l+WNjua1kw0KK+e9l+mSp+iAgA0KK+e9l+mbheaVjw0KK+e9l+mbr+eQtA0KK+e9l+avk+adsA0KK+e9l+eRnuiNow0KK+e9l+Wco+eQsw0KK+e9l+i+vg0KK+e9l+WYieeOsg0KK+e9l+iNo+i+iQ0KK+e9l+mZheW3nQ0KK+e9l+W6huadsA0KK+e9l+iOueajuw0KK+e9l+aZk+WogQ0KK+e9l+WFtOWuiQ0KK+e9l+m4v+Wfug0KK+e9l+mmqOWunA0KK+e9l+eCnOeoiw0KK+iwreWPiOawkQ0KK+iwreWFieWNjg0KK+iwreS9qeWymg0KK+iwreaCpummqA0KK+iwreaZuuS7gQ0KK+iwreiwmw0KK+WFs+S4gOW/gw0KK+WFs+W/l+Wuhw0KK+WFs+a3keS6kQ0KK+S4peWtkOetkQ0KK+S4peW/g+WFgw0KK+S4peWPr+WQmw0KK+S4peW/l+WTsg0KK+S4peaYpeWHpA0KK+S4peaMr+WFtA0KK+S4peWpieeOsg0KK+S4pea3keiPgQ0KK+S4peWSj+Wcow0KK+S4pee7tOW+tw0KK+S4pemmpQ0KK+eqpueRnumcng0KK+iUuuW/g+aAoQ0KK+iLj+WNg+S7ow0KK+iLj+Wjq+ixqg0KK+iLj+WtkOe/lA0KK+iLj+S4reaAoQ0KK+iLj+WFg+S5mQ0KK+iLj+aWhw0KK+iLj+aWh+Wonw0KK+iLj+aWh+i+iQ0KK+iLj+S4luW6rQ0KK+iLj+W3p+WugQ0KK+iLj+ato+Wutg0KK+iLj+awuOadsA0KK+iLj+eOieS/rg0KK+iLj+eri+WHrw0KK+iLj+WmguiVmQ0KK+iLj+erueWuiQ0KK+iLj+WQm+mcjw0KK+iLj+Wuj+azsA0KK+iLj+W/l+Wtnw0KK+iLj+W/l+Wdmg0KK+iLj+W/l+m4vw0KK+iLj+engOeOsg0KK+iLj+iCsuW8mA0KK+iLj+iCsuS/ng0KK+iLj+iCsueRsQ0KK+iLj+S9s+i2sw0KK+iLj+S9qeeRnA0KK+iLj+Wul+S4gA0KK+iLj+WwmueRvg0KK+iLj+aAoeWmgg0KK+iLj+aAoeWQmw0KK+iLj+aAoeiPgQ0KK+iLj+aAoemmqA0KK+iLj+aYjuS/ig0KK+iLj+aYjum4vw0KK+iLj+atpum+mQ0KK+iLj+iKs+atow0KK+iLj+iKs+iOuQ0KK+iLj+mdkuWmmQ0KK+iLj+S/oea6kA0KK+iLj+S/iuWkqw0KK+iLj+S/iuelpQ0KK+iLj+S/iumTrQ0KK+iLj+S/nuWmgg0KK+iLj+WLh+ivmg0KK+iLj+WlleadsA0KK+iLj+Wogei+vg0KK+iLj+W7uuS4rQ0KK+iLj+W7uuW/lw0KK+iLj+W7uuixqg0KK+iLj+W9puiNpw0KK+iLj+aBkuiHsw0KK+iLj+aUv+iwpg0KK+iLj+aYreWQmw0KK+iLj+aYseS7uw0KK+iLj+afj+W3ng0KK+iLj+afj+ahpg0KK+iLj+ePiuiOuQ0KK+iLj+eah+WOnw0KK+iLj+ebiOeplw0KK+iLj+e6quaVjw0KK+iLj+e+jueOsg0KK+iLj+iHtOS7gQ0KK+iLj+iLseeakw0KK+iLj+i0nueHlQ0KK+iLj+mDgeS8pg0KK+iLj+mDgembhQ0KK+iLj+mmmeeQqg0KK+iLj+S7k+awuA0KK+iLj+WTsuS6vw0KK+iLj+Wutg0KK+iLj+WutuS/oQ0KK+iLj+WutuiOuQ0KK+iLj+Wzu+awkQ0KK+iLj+W6reeRtg0KK+iLj+aMr+mTrQ0KK+iLj+ahk+W6hg0KK+iLj+a1qeS4ug0KK+iLj+ebiuemhA0KK+iLj+eqiOeRsQ0KK+iLj+e6r+aFpw0KK+iLj+i9qeawkQ0KK+iLj+S8n+ivmg0KK+iLj+WbveWFuA0KK+iLj+Wgguixqg0KK+iLj+WpieaDoA0KK+iLj+aVjw0KK+iLj+a4heWuiQ0KK+iLj+a3keWptw0KK+iLj+eajuaFpw0KK+iLj+iOieaDoA0KK+iLj+WNmueOhA0KK+iLj+aDoOi0ng0KK+iLj+aZtuaWsA0KK+iLj+a5mOaAoQ0KK+iLj+iInOWNvw0KK+iLj+mAuOecnw0KK+iLj+mbheWQmw0KK+iLj+mbheaDoA0KK+iLj+mbheaFpw0KK+iLj+mhuuivmg0KK+iLj+aEj+Wymg0KK+iLj+aVrOiPsQ0KK+iLj+avk+W9rA0KK+iLj+eMt+e/lA0KK+iLj+edpuS7gQ0KK+iLj+e+pOadsA0KK+iLj+Wco+a2tQ0KK+iLj+ijleaWhw0KK+iLj+ivl+Wptw0KK+iLj+mdluWymg0KK+iLj+WYieWujw0KK+iLj+WYiem4vw0KK+iLj+eip+aYrQ0KK+iLj+mXu+iwqA0KK+iLj+S6v+ePjQ0KK+iLj+aFp+aWhw0KK+iLj+aFp+Wonw0KK+iLj+avhQ0KK+iLj+aZk+Wmgg0KK+iLj+aZk+iKgw0KK+iLj+mUpuWNhw0KK+iLj+mdmeiKsw0KK+iLj+WjsOaMrw0KK+iLj+m4v+S7qg0KK+iLj+m5j+e/sA0KK+iLj+S4veWNjg0KK+iLj+aXu+WQmw0KK+iLj+eDnOavhQ0KK+iLj+eQoeivhA0KK+iLj+eOrueQsw0KK+iLj+ixiuajiw0KK+iLj+mSsOiPgQ0KK+mSn+Wjq+mSpg0KK+mSn+aWh+engA0KK+mSn+eOieWmgg0KK+mSn+S9s+e7og0KK+mSn+ebiOWHrw0KK+mSn+aMuuixqg0KK+mSn+WbvemTrQ0KK+mSn+aVj+aEqw0KK+mSn+aDoOWuhw0KK+mSn+mhuuemuQ0KK+mSn+eip+WFsA0KK+mSn+mmqOiwig0KK+mltuW/l+ixqg0KK+mltuS6rg0KK+mltuS9qem+hA0KK+mltuaVrOWbvQ0KK+WFmuS4gOS4ug0KK+mhvuaWh+e7mg0KK+mhvueri+iLuQ0KK+mhvuWul+aymw0KK+mhvuWAqeWmgg0KK+mhvuW0h+W+tw0KK+mhvue/oOWNjg0KK+m+muS6juePig0KK+m+muaWh+milg0KK+m+muWFhuelug0KK+m+muS9qeWQmw0KK+m+mumdkuS6kQ0KK+m+muW9puWQjQ0KK+m+mui0nuWmgg0KK+m+muS5puWcow0KK+m+mua3keiLlw0KK+m+mumbheasow0KK+m+mumdluivkg0KK+m+muixq+aFpw0KK+S6k+mahuelpQ0KK+S9mOWwmum4vw0KK+S9mOiBlOaWjA0KK+mCvuS6puWNlw0KK+a2guS4luWSjA0KK+a2guWQm+iTiQ0KK+a2guiCsuiNow0KK+a2guaso+Wujw0KK+a2guaUv+eUtw0KK+a2guaMr+awkQ0KK+a2guWQr+WOnw0KK+a2guWvjOaYnw0KK+a2gumbheeHlQ0KK+a2guWYieWOnw0KK+a2guaFp+ePjQ0KK+a2guiAgOWNhw0KK+eymOW8mOWQiQ0KK+eymOiCsueOrg0KK+eymOe6r+Wmgg0KK+eymOWco+mRqw0KK+eymOiAgOS7gQ0KK+mCrOW/g+aAoQ0KK+mds+eri+S8nw0KK+mCneWFieWugQ0KK+agvuWto+W8ug0KK+6AgOiKs+eQpg0KK+6AgOWpieWptw0KK+6AgOmTrea6kA0KK+6JvuaWh+WLiw0KK+6JvuWHpOeQqg0KK+6Lp+S/oeS5iQ0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19UaGFpLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19UaGFpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjI0M2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1RoYWkudHh0CkBAIC0wLDAgKzEsMTA4NDMgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor4LiB4LmK4LiB4LmA4Liu4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4geC4iuC4geC4oyDguKjguKPguLLguJfguJjguJfguLHguJUNCivguIHguJXguLTguIHguLIg4Lit4Lix4LiH4LiE4Liq4Li44Lig4LiTDQor4LiB4LiZ4LiBIOC4mOC4o+C4o+C4oeC4m+C4o+C4sOC4l+C4teC4mw0KK+C4geC4meC4gSDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUNCivguIHguJnguIHguIHguKMg4LiK4LmJ4Liy4LiH4LmA4Lii4LmH4LiZ4LiJ4LmI4LizDQor4LiB4LiZ4LiB4LiJ4Lix4LiV4Lij4LmMIOC4luC4suC4p+C4o+C4meC4seC4meC4l+C5jA0KK+C4geC4meC4geC4meC4p+C4pSDguYLguJvguKnguKLguLDguJnguLHguJnguJfguJnguYwNCivguIHguJnguIHguJ7guKMg4LiE4Lih4LiE4Liy4LiiDQor4LiB4LiZ4LiB4Lie4LijIOC4leC4teC4o+C5gOC4peC4tOC4qOC4nuC4suC4meC4tOC4ig0KK+C4geC4meC4geC4nuC4oyDguJ7guLHguJnguJfguKMNCivguIHguJnguIHguJ7guKMg4Lio4Lij4Li14Lia4Lix4LiT4LiR4Li04LiVDQor4LiB4LiZ4LiB4Lie4LijIOC4reC4leC4tOC4p+C4o+C4o+C4k+C4suC4nuC4seC4kuC4meC5jA0KK+C4geC4meC4geC4nuC4o+C4o+C4kyDguKjguKPguLXguKfguJnguLLguKDguLTguKPguKHguKLguYwNCivguIHguJnguIHguKPguLHguJXguJnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4Li04LmI4LiH4Lit4Lix4LiH4Lio4Li44Lil4Li1DQor4LiB4LiZ4LiB4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4mOC4o+C4o+C4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguITguIfguITguLLguJvguKPguLDguYDguKrguKPguLTguJANCivguIHguJnguIHguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguKPguLHguJ7guKLguYwNCivguIHguJnguIHguKfguKPguKPguJMg4Liq4Lix4LiI4LiI4Lie4LiH4Lip4LmMDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4reC4uOC5ieC4ouC4p+C4h+C4qOC5jOC5hOC4nuC4qOC4suC4pQ0KK+C4geC4meC4geC4qOC4seC4geC4lOC4tOC5jCDguKLguLTguYjguIfguKLguIcNCivguIHguJnguIHguYHguIHguYnguKcg4LiB4Lij4Liq4Lih4Li04LiVDQor4LiB4LiZ4Li04Lip4LiQ4LiyIOC4l+C4meC4uOC4luC4meC4reC4oeC4o+C4suC4qeC4juC4o+C5jA0KK+C4geC4meC4tOC4qeC4kOC4siDguKvguKfguLHguIfguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgNCivguIHguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Lih4LilIOC4hOC4seC4oeC4oOC4teC4o+C5jA0KK+C4geC4oeC4pSDguYDguIjguJXguJnguYzguKHguIfguITguKXguKPguLHguJXguJnguYwNCivguIHguKHguKUg4LiK4Li54LiV4Lij4Liw4LiB4Li54Lil4LiY4Lij4Lij4LihDQor4LiB4Lih4LilIOC4leC4o+C4sOC4geC4suC4o+C4nuC4tOC4meC4tOC4iA0KK+C4geC4oeC4pSDguJfguLHguJ7guJ7guLDguKPguLHguIfguKrguLUNCivguIHguKHguKUg4Lia4Lix4LiU4LiV4Li04Lii4LiyDQor4LiB4Lih4LilIOC4nuC4h+C4qeC5jOC4reC4meC4seC4meC4leC5guC4ouC4mOC4tOC4mQ0KK+C4geC4oeC4pSDguYLguJ7guYLguKrguKDguLINCivguIHguKHguKUg4Lij4Lih4LmA4Lii4LioDQor4LiB4Lih4LilIOC5guC4peC4q+C4sOC5hOC4nuC4qOC4suC4pQ0KK+C4geC4oeC4pSDguKfguLTguKrguLjguJfguJjguLTguYzguYDguKrguKPguLXguKfguIfguKjguYwNCivguIHguKHguKUg4Liq4Lih4Lie4LiH4Lip4LmMDQor4LiB4Lih4LilIOC4quC4uOC4o+C4nuC4h+C4qeC5jOC4m+C4o+C4sOC4iuC4sg0KK+C4geC4oeC4pSDguYHguKvguKfguJnguJfguLHguJrguJfguLTguKENCivguIHguKHguKUg4LmA4Lit4Li14LmI4Lii4Lih4Lio4Li04Lij4Li0DQor4LiB4Lih4Lil4LiK4Lix4LiiIOC4qOC4o+C4teC4quC4tOC4o+C4tOC4o+C4seC4leC4meC4suC4geC4ow0KK+C4geC4oeC4peC4l+C4tOC4nuC4ouC5jCDguJrguLHguKfguKvguLTguKPguLHguI0NCivguIHguKHguKXguJfguLTguJ7guKLguYwg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4Liq4Li04Lij4Li0DQor4LiB4Lih4Lil4Lie4LijIOC4quC4suC5guC4o+C4p+C4suC4lw0KK+C4geC4oeC4peC4oeC4suC4qCDguIjguLTguKfguLDguJjguJnguLDguJ7guKMNCivguIHguKHguKXguKPguLHguJXguJnguYwg4LmA4LiU4LiK4Liw4Lib4Li04Lii4Lin4LiH4Lio4LmMDQor4LiB4Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC5gOC4peC4tOC4qOC5gOC4peC4suC4q+C5jOC4geC4uOC4pQ0KK+C4geC4oeC4peC4p+C4o+C4o+C4kyDguIfguLLguKHguKXguLDguKHguYnguLLguKINCivguIHguKHguKXguKfguKPguKPguJMg4Lia4Li44LiN4LmA4Liq4Lij4Li04LihDQor4LiB4Lih4Lil4Lin4Lij4Lij4LiTIOC4quC4o+C4suC4meC4uOC4geC4ueC4pQ0KK+C4geC4oeC4peC4qOC4seC4geC4lOC4tOC5jCDguIfguLLguKHguJrguKPguLTguKPguLHguIHguKnguYwNCivguIHguKHguKXguLIg4Lih4LmC4LiZ4Lie4Lix4LiS4LiZ4LiwDQor4LiB4LijIOC4geC4o+C4tOC4meC4o+C4seC4geC4qeC5jA0KK+C4geC4o+C4geC4jiDguIjguIfguYDguIjguKPguLTguI0NCivguIHguKPguIHguJnguIEg4Lin4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4Li44LmA4Lio4Lij4Lip4LiQ4LmMDQor4LiB4Lij4LiB4Lij4Li04LiKIOC4geC4uOC4quC4uOC4oeC4suC4oeC4suC4peC4ouC5jA0KK+C4geC4o+C4iuC4uOC4peC4tSDguIHguLTguJXguJXguLTguYDguKrguKPguLXguIrguLHguKINCivguIHguKPguJfguK3guIcg4Lio4Lij4Li14Liq4Li44LmC4LiCDQor4LiB4Lij4Lih4LmD4LiaIOC4quC4uOC4o+C4tOC5guC4og0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguIHguJnguIHguKfguLHguJLguJnguLLguKfguKPguKPguJMNCivguIHguKPguKPguJPguLTguIHguLIg4LiI4Li44Lil4Lit4Lii4Li54LmIDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC5geC4leC5ieC5gOC4iOC4o+C4tOC4jQ0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguJzguLLguJPguLTguJXguJ7guIfguKjguYwNCivguIHguKPguKPguJPguLTguIHguLIg4Lil4Li04LmJ4Lih4Liq4LiB4Li44LilDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC4quC4suC4o+C4nuC4suC4meC4tOC4ig0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguIHguJnguIHguKfguKPguKPguJPguIjguLPguKPguLHguKoNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LiI4Liy4Lij4Li04Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguJnguITguKPguKjguKPguLUNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LmE4Lic4LiX4LiJ4Lix4LiZ4LiX4LmMDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4oeC4teC4quC4uOC4gg0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguKfguLHguIrguKPguLDguITguLjguYnguKHguITguKPguK3guIcNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4Liq4Liy4LiX4Lij4LiB4Li04LiIDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4reC4seC4h+C4quC4luC4tOC4leC4ouC5jOC4reC4meC4seC4meC4leC5jA0KK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jCDguYDguJfguJ7guKrguLjguJfguJjguLTguYwNCivguIHguKPguKfguLTguIHguLIg4Liq4Li34Lia4Lin4LiH4Lio4LmM4LiE4Lil4LmJ4Liy4LiiDQor4LiB4Lij4Lir4LiX4Lix4LiiIOC4iOC4tOC4leC4pOC4l+C4seC4og0KK+C4geC4o+C4reC4h+C4geC4suC4jeC4iOC4meC5jCDguK3guLHguIjguInguKPguLTguKLguKfguIfguKjguYwNCivguIHguKPguK3guIfguJfguK3guIcg4LiZ4Liy4LiW4Lie4Li04Lij4Li04Lii4Lij4Lix4LiV4LiZ4LmMDQor4LiB4Lij4Lit4LiH4LiX4Li04Lie4Lii4LmMIOC4m+C4o+C4sOC4iOC4seC4meC4leC4sOC5gOC4quC4mQ0KK+C4geC4o+C4reC4h+C5geC4geC5ieC4pyDguYHguIvguYjguYHguJXguYkNCivguIHguKPguK3guIfguYHguIHguYnguKcg4Lir4Li04Lij4Lix4LiNDQor4LiB4Lij4Liw4LiI4LmI4Liy4LiHIOC5gOC4peC4tOC4qOC5gOC4geC4teC4ouC4o+C4leC4tOC4lOC4s+C4o+C4h+C4hOC5jA0KK+C4geC4o+C4sOC4quC4seC4mSDguYDguKrguKPguLTguKHguJfguKPguLHguJ7guKLguYwNCivguIHguKPguLDguYHguKrguKPguYwg4LiX4LmJ4Lin4Lih4LiI4Lix4LmI4LiZDQor4LiB4Lij4Liy4LiZ4LiV4LmM4Lib4Lij4Liw4Lig4LiyIOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jOC4p+C4o+C4suC4geC4uOC4pQ0KK+C4geC4o+C4tOC4iuC4iOC4uOC4keC4siDguKjguKPguLXguKrguIHguLjguKUNCivguIHguKPguLTguKrguJnguYwg4LiZ4Lin4Lih4LiX4Lit4LiHDQor4LiB4Lij4Li14LiR4Liy4Lie4LijIOC4p+C4h+C4qOC5jOC4o+C4reC4lA0KK+C4geC4o+C4uOC4k+C4siDguILguLHguJnguJfguK3guIcNCivguIHguKPguLjguJPguLIg4Lie4Li04LmA4LiK4LiQ4Liq4Lix4LiX4LiY4LiyDQor4LiB4Lij4Li54LiU4Li14LibIOC4i+C4tOC4h+C4q+C5jA0KK+C4geC4pOC4iiDguJvguLjguJPguJPguIHguLHguJnguJXguYwNCivguIHguKTguIrguJvguJPguJUg4LiZ4Li04LiY4Li04LiZ4LmC4Lij4LiU4LihDQor4LiB4Lik4LiU4LiyIOC4geC4tOC4leC4tOC4p+C4tOC4oOC4suC4lQ0KK+C4geC4pOC4leC4nuC4oyDguIHguLLguI3guIjguJnguIHguLLguKPguLjguJPguKfguIfguKjguYwNCivguIHguKTguJXguKLguLIg4Lie4Li44LiS4Li04LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiB4Lik4LiV4Lin4Li04LiX4Lii4LmMIOC4quC4tOC4h+C4q+C5jOC4quC4uOC4gg0KK+C4geC4pOC4leC4tOC4geC4siDguKjguLjguIHguKPguIHguLPguYDguKvguJnguLTguJQNCivguIHguKTguJXguLTguKLguLIg4LiY4LiZ4Liy4LmA4Lio4Lij4Lip4LiQ4LmM4LiB4Li44LilDQor4LiB4Lik4LipIOC4quC4uOC4meC4l+C4o+C4suC4o+C4iuC4uOC4mQ0KK+C4geC4pOC4qeC4juC4siDguIjguLTguKPguLDguKfguLTguIrguIrguYDguKXguLTguKgNCivguIHguKTguKnguI7guLIg4Lia4Li44LiN4Lij4Liy4LiKDQor4LiB4Lik4Lip4LiO4LiyIOC4p+C4o+C4o+C4k+C4quC4suC4o+C5gOC4oeC4mOC4sg0KK+C4geC4pOC4qeC4juC4suC4h+C4hOC5jCDguJbguJnguK3guKHguKfguIfguKnguYwNCivguIHguKTguKnguI/guYwg4LmE4LiV4Lij4LiB4Lik4Lip4LiU4Liy4Lie4LijDQor4LiB4Lik4Lip4LiT4LiwIOC4hOC4uOC4k+C4suC4geC4ow0KK+C4geC4pOC4qeC4k+C4sCDguJ7guIfguKnguYzguJjguJnguLANCivguIHguKTguKnguJPguLAg4Lit4Lii4Li54LmI4Liq4Li44LiCDQor4LiB4Lik4Lip4LiT4LiyIOC4hOC4peC4suC5gOC4p+C4ig0KK+C4geC4pOC4qeC4k+C4siDguYDguIvguJnguJXguYzguKfguLTguJrguLnguKXguKLguYwNCivguIHguKTguKnguJPguLIg4LiY4Lij4Lij4Lih4Lin4Li44LiS4Li0DQor4LiB4Lik4Lip4LiT4LiyIOC4m+C4tOC4ouC4sOC4leC4o+C4sOC4geC4ueC4peC4o+C4seC4leC4meC5jA0KK+C4geC4pOC4qeC4k+C4siDguKHguJPguYDguJHguLXguKLguKMNCivguIHguKTguKnguJPguLIg4Lio4Lij4Li14LiE4LizDQor4LiB4Lik4Lip4LiT4LiyIOC4quC4uOC4guC4p+C4seC4kuC4geC5jA0KK+C4geC4pOC4qeC4k+C4siDguK3guLnguYjguKvguLTguKPguLHguI0NCivguIHguKTguKnguJPguYDguJTguKcg4LiX4Lij4Li14Lib4Liy4LiV4Li1DQor4LiB4Lik4Lip4LiT4LmMIOC4l+C4reC4h+C5hOC4l+C4ouC4quC4tOC4mQ0KK+C4geC4pOC4qeC4k+C5jCDguKfguIfguKnguYzguKrguKHguJrguLnguKPguJPguYwNCivguIHguKTguKnguJTguLIg4LiB4Lik4Lip4LiT4Liy4LiK4Li54Lin4LiH4Lio4LmMDQor4LiB4Lik4Lip4LiU4LiyIOC4l+C4reC4meC4quC4ueC4h+C5gOC4meC4tOC4mQ0KK+C4geC4pOC4qeC4lOC4siDguYDguKXguLTguKjguYTguJ7guKjguLLguKXguIHguLTguIgNCivguIHguKTguKnguJTguLIg4LmA4Lit4Li34LmJ4Lit4Lib4Li04Lii4Liw4LiK4Liy4LiV4Li0DQor4LiB4Lik4Lip4Lin4Lij4Lij4LiTIOC4reC4tOC4meC4l+C4nuC4suC4meC4tOC4ig0KK+C4geC4peC4ouC4uOC4l+C4mOC5jCDguKfguLjguYjguJnguJrguLPguKPguLjguIcNCivguIHguKXguK3guKLguYPguIgg4Lie4Li44LmI4Lih4Lie4Lin4LiHDQor4LiB4Lil4LmJ4Liy4LiT4Lij4LiH4LiE4LmMIOC5gOC4nOC4t+C4reC4geC4hOC4uOC5ieC4oeC4geC4pOC4qQ0KK+C4geC4peC4tOC5iOC4meC4guC4iOC4oyDguKPguLHguIHguKfguIfguKnguYwNCivguIHguKfguIfguJrguLnguYkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiB4Lin4LiyIOC5geC4i+C5iOC5gOC4leC5i+C4hw0KK+C4geC4p+C4tOC4meC4meC4suC4liDguYDguKXguLTguKjguKrguLjguJTguJvguKPguLDguYDguKrguKPguLTguJANCivguIHguKfguLUg4LiX4Lix4LiH4Liq4Li44Lia4Li44LiV4LijDQor4LiB4Lin4Li1IOC5gOC4peC4suC4sOC4n+C4rQ0KK+C4geC4p+C4teC4iuC4seC4oiDguKvguKfguLHguIfguKjguLTguKXguJvguITguLjguJMNCivguIHguYnguKfguIfguYDguIvguLXguKIg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4LiB4Lip4Lih4LiyIOC4p+C4h+C4qOC5jOC5hOC4nuC4keC4ueC4o+C4ouC5jOC4m+C4tOC4ouC4sA0KK+C4geC4quC4oeC4siDguYLguKPguIjguJnguYzguYDguKHguJjguLINCivguIHguK3guIcg4Lin4LmI4Lit4LiH4Lie4LiH4Lio4Liy4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiB4Lit4LiH4LmA4Lir4Lin4LmI4LiHIOC5geC4i+C5iOC5gOC4iOC4teC4ouC4hw0KK+C4geC4reC4muC4geC4suC4jeC4iOC4meC5jCDguJjguKPguKPguKHguKfguLLguJfguLTguJkNCivguIHguK3guJrguIHguLjguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4LiB4Lit4Lia4LiB4Li44LilIOC4meC4uOC4iuC5geC4lOC4hw0KK+C4geC4reC4muC4geC4uOC4pSDguKfguLTguKfguLHguJLguJnguLDguJvguKPguLDguYDguKrguKPguLTguJANCivguIHguK3guJrguIHguLnguKUg4Liq4Li04LiH4LiE4Liw4LiV4Li14Lij4LiwDQor4LiB4Lit4Lia4LiK4Lix4LiiIOC5geC4q+C4peC4sOC5gOC4q+C4peC5iOC4suC4m+C4o+C4suC4iuC4jeC5jA0KK+C4geC4reC4muC4qOC4seC4geC4lOC4tOC5jCDguJXguJvguJnguLXguKLguJfguKPguLHguJ7guKLguYwNCivguIHguK3guJrguYDguIHguLfguYnguK0g4Lie4Li44LiB4LiB4Lil4Li04LmI4LiZDQor4LiB4Lit4Lia4LmB4LiB4LmJ4LinIOC4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kw0KK+C4geC4reC5gOC4i+C5h+C4oSDguYDguKHguYjguJnguJfguK3guIcNCivguIHguYjguK3guYDguIHguLXguKLguKPguJXguLQg4LiC4Li44LiZ4LiX4Lit4LiHDQor4LiB4LmI4Lit4LmC4LiK4LiEIOC4iOC4seC4meC4l+C4p+C4o+C4suC4h+C4geC4ueC4ow0KK+C4geC5ieC4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguYDguJ/guLfguYjguK3guIfguKfguLjguJLguLTguKPguLLguI0NCivguIHguYnguK3guJnguYHguIHguYnguKcg4Lio4Lij4Li14LiZ4LiE4LijDQor4LiB4Lix4LiH4Lin4Liy4LilIOC5gOC4geC4teC4ouC4o+C4leC4tOC5jOC4qOC4seC4geC4lOC4suC4p+C4h+C4qOC5jA0KK+C4geC4seC4h+C4quC4lOC4suC4pSDguKvguK3guKHguIHguKXguLTguYjguJnguKPguLLguJXguKPguLUNCivguIHguLHguI3guIjguJnguLUg4LiH4Liy4Lih4Lie4Liq4Li44LiY4Liy4LiU4LilDQor4LiB4Lix4LiN4LiN4LiY4LijIOC4nuC4h+C4qOC5jOC4nuC4h+C4seC4mQ0KK+C4geC4seC4jeC4jeC4siDguYDguIHguKnguKrguLHguIfguILguYwNCivguIHguLHguI3guI3guLIg4LmD4LiI4Lih4Lix4LmI4LiZDQor4LiB4Lix4LiN4LiN4LiyIOC4lOC4teC4l+C4teC5iOC4quC4uOC4lA0KK+C4geC4seC4jeC4jeC4siDguJnguKfguKXguYHguIINCivguIHguLHguI3guI3guLIg4Lic4Li54LmJ4LiB4Lik4LiV4Lii4Liy4LiE4Liy4Lih4Li1DQor4LiB4Lix4LiN4LiN4LiyIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4geC4seC4jeC4jeC4siDguKjguKPguLXguKfguLHguJLguJnguLANCivguIHguLHguI3guI3guLIg4Lir4LiH4Liq4LiB4Li44LilDQor4LiB4Lix4LiN4LiN4Liy4Lig4Lij4LiT4LmMIOC4peC4tOC4peC4tOC4leC4iuC4suC4jQ0KK+C4geC4seC4jeC4jeC4suC4o+C4seC4leC4meC5jCDguYDguKHguLfguK3guIfguYHguIHguYnguKcNCivguIHguLHguI3guJfguLTguKHguLIg4LiY4Li14Lij4Lig4Liy4Lie4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Lix4LiT4LiQ4Li04LiB4LiyIOC4kyDguKrguIfguILguKXguLINCivguIHguLHguJPguJfguLTguKHguLIg4LmA4LiI4Lij4Li04LiN4Lij4Lix4LiV4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4LiB4Lix4LiT4Lir4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4geC4suC5guC4ow0KK+C4geC4seC4meC4leC4ouC4siDguYDguJ7guLTguYjguKHguJzguKUNCivguIHguLHguJnguJfguLTguKHguLIg4Lij4Lit4LiU4Liq4Liz4Lit4Liy4LiH4LiE4LmMDQor4LiB4Lix4LiZ4Lii4LiyIOC4iOC4teC4meC4n+C4uOC5ieC4hw0KK+C4geC4seC4meC4ouC4siDguYLguKDguITguLLguKrguJbguLTguJXguKLguYwNCivguIHguLHguJnguKLguLIg4LmA4Lit4Li14LmI4Lii4Lih4Lit4LiZ4Lix4LiZ4LiV4LmM4Lin4Lix4LiS4LiZ4LiwDQor4LiB4Lix4LiZ4Lii4Liy4Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4leC4iuC4sOC4nuC4h+C4qOC5jOC4p+C4o+C4iuC4seC4og0KK+C4geC4seC4oeC4m+C4meC4suC4lyDguKLguK3guYHguKrguIfguJfguK3guIcNCivguIHguLHguKHguJ7guKUg4LiV4Lix4LmJ4LiH4LiI4Li04LiV4Lij4Lio4Lij4Lix4LiX4LiY4LiyDQor4LiB4Lix4Lih4Lie4LilIOC4quC4tOC4guC4o+C4teC4ouC4sA0KK+C4geC4seC4peC4meC4tOC4geC4siDguYDguKLguLLguKfguKPguLHguIHguKnguYwNCivguIHguLHguKXguKLguLIg4LiB4Liy4Lij4Lix4LiB4Lip4LmM4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC4hOC4uOC4k+C4m+C4quC4uOC4lQ0KK+C4geC4seC4peC4ouC4siDguInguLLguKLguIrguLnguJ7guIfguKjguYwNCivguIHguLHguKXguKLguLIg4LmB4LiL4LmI4Lit4Li24LmK4LiHDQor4LiB4Lix4Lil4Lii4LiyIOC5gOC4luC4o+C4sOC4m+C4seC4jeC4jeC4sg0KK+C4geC4seC4peC4ouC4siDguJnguLjguIrguJnguLLguI7guJnguJnguJfguYwNCivguIHguLHguKXguKLguLIg4LmA4Lic4LmI4Liy4LmE4LiX4LiiDQor4LiB4Lix4Lil4Lii4LiyIOC5hOC4nuC4o+C4p+C4seC4kuC4meC4suC4meC4uOC4nuC4seC4meC4mOC5jA0KK+C4geC4seC4peC4ouC4siDguKLguLTguYjguIfguJjguYDguJnguKgNCivguIHguLHguKXguKLguLIg4Lil4Li04LmJ4Lih4LmC4Lii4LiY4Li04LiZDQor4LiB4Lix4Lil4Lii4LiyIOC4p+C4tOC4o+C4tOC4ouC4sOC5guC4o+C4iOC4meC4suC4p+C4uOC4kuC4tA0KK+C4geC4seC4peC4ouC4siDguKrguKPguKPguJ7guIHguLTguIjguJzguKUNCivguIHguLHguKXguKLguLIg4Liq4Li44Lij4Lie4Lik4LiB4Lip4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC4reC4tOC4meC4l+C4o+C4l+C4seC4lQ0KK+C4geC4seC4peC4ouC4suC4k+C4tSDguITguLnguJvguKPguLDguJ7guLHguJfguJjguYzguJ7guIfguKjguYwNCivguIHguLHguKXguKLguLLguJPguLUg4LiW4Li04Lij4Liw4Lij4LiT4Lij4LiH4LiE4LmMDQor4LiB4Lix4Lil4Lii4Liy4LiT4Li1IOC4o+C4uOC5iOC4h+C5gOC4peC4tOC4qA0KK+C4geC4seC4peC4ouC4suC4k+C4tSDguKvguLTguKPguLHguI3guYDguIrguKPguKnguJDguYwNCivguIHguLHguKXguKLguLLguKPguLHguJXguJnguYwg4Lia4Lix4LiT4LiR4Li04LiV4Lig4Li04Lij4Lih4Lii4LmMDQor4LiB4Liy4LiB4Lit4LiHIOC5geC4i+C5iOC4q+C4ouC4teC5iA0KK+C4geC4suC4jeC4iOC4meC4sCDguYTguKHguYnguYHguIHguYnguKcNCivguIHguLLguI3guIjguJnguLIg4LiB4Liy4LiN4LiI4LiZ4LiyDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5geC4geC5iOC4meC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4geC4suC4jeC4iOC4meC4siDguITguKPguLjguJHguYTguIrguKLguLHguJnguJXguYwNCivguIHguLLguI3guIjguJnguLIg4LiI4Lix4LiZ4LiX4LiZ4Liw4LmC4Liq4LiV4LiW4Li04LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4iOC4teC4o+C4sOC5geC4nuC4l+C4ouC5jA0KK+C4geC4suC4jeC4iOC4meC4siDguYDguInguKXguLTguKHguJ7guLHguJnguJjguLjguYwNCivguIHguLLguI3guIjguJnguLIg4LmA4LiK4Li04LiH4LiK4Liy4LiN4LiB4Li04LiIDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5geC4i+C5iOC4reC4seC5iuC4hw0KK+C4geC4suC4jeC4iOC4meC4siDguYHguJTguIfguJvguKPguLDguYTguJ4NCivguIHguLLguI3guIjguJnguLIg4LmC4LiV4LmK4Liw4Lie4Li04LiB4Li44LilDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5gOC4l+C4nuC4o+C4qg0KK+C4geC4suC4jeC4iOC4meC4siDguJnguLLguITguKfguLTguKrguLHguKINCivguIHguLLguI3guIjguJnguLIg4Lia4Li44LiN4LiK4LmI4Lin4LiiDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4m+C4reC4h+C5gOC4quC4h+C4teC5iOC4ouC4oQ0KK+C4geC4suC4jeC4iOC4meC4siDguJ7guJnguKHguKfguKPguKPguJPguYDguKfguIoNCivguIHguLLguI3guIjguJnguLIg4Lie4Li04Lie4Lix4LiS4LiZ4Liy4LiZ4Li04LiV4Lii4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4oOC4suC4hOC4hOC4uQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguKHguIbguIHguLjguKXguKfguLTguYLguKPguIjguJnguYwNCivguIHguLLguI3guIjguJnguLIg4Lij4Liy4LiV4Lij4Li1DQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5gOC4peC4tOC4qOC4qOC4seC4geC4lOC4tOC5jOC4p+C4tOC4oeC4suC4mQ0KK+C4geC4suC4jeC4iOC4meC4siDguKfguLHguJLguJnguLDguIjguLHguJnguJfguKPguYwNCivguIHguLLguI3guIjguJnguLIg4Lio4Lij4Li14Lib4Lij4Liw4LiX4Li14Lib4Lia4Lix4LiT4LiR4Li04LiVDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5gOC4qOC4p+C4leC4suC4oeC4o+C5jA0KK+C4geC4suC4jeC4iOC4meC4siDguKrguLLguKHguLLguKPguJbguIHguLTguIgNCivguIHguLLguI3guIjguJnguLIg4Liq4Li44LiX4LiY4Li04LiZ4Li44LmI4LiZDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5geC4quC4h+C4quC4ueC4hw0KK+C4geC4suC4jeC4iOC4meC4siDguK3guKDguLTguJnguLHguJnguJfguYzguJnguLLguJYNCivguIHguLLguI3guIjguJnguLIg4Lit4Li04LiZ4LiX4Lij4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiB4Liy4LiN4LiI4LiZ4Liy4Lig4Lij4LiT4LmMIOC4guC4oeC4tOC5ieC4meC5gOC4hOC4o+C4t+C4rQ0KK+C4geC4suC4jeC4iOC4meC4tSDguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguIHguLLguI3guIjguJnguYwg4Lii4Li54LmI4LmC4Lir4LiH4LinDQor4LiB4Liy4LiZ4LiU4LiyIOC4hOC4k+C4sOC4quC4uOC4gg0KK+C4geC4suC4meC4lOC4siDguYDguJTguYjguJnguYTguJfguKINCivguIHguLLguJnguJTguLIg4Lib4Liy4LiZ4LiK4Li1DQor4LiB4Liy4LiZ4LiU4LiyIOC4o+C4uOC5iOC4h+C4m+C4o+C4sOC4geC4suC4ouC4o+C4seC4leC4meC5jA0KK+C4geC4suC4meC4lOC4siDguKjguLHguIHguJTguLTguYzguKrguLTguJfguJjguLTguYwNCivguIHguLLguJnguJTguLIg4Lit4Lix4Lih4Lie4Lij4Lin4Li04LmC4Lij4LiI4LiZ4LmM4LiB4Li04LiIDQor4LiB4Liy4LiZ4LiV4LmMIOC5guC4geC4quC4tOC4meC4l+C4o+C4geC4uOC4pQ0KK+C4geC4suC4muC4meC4oOC4siDguJnguLLguKHguYHguJTguIcNCivguIHguLLguKPguLDguYDguIHguJQg4LiB4Li44Lir4Lil4Liy4Lia4LmB4LiB4LmJ4LinDQor4LiB4Liy4Lij4Li14LihIOC4muC4uOC4jeC4oeC4suC5gOC4peC4tOC4qA0KK+C4geC4suC4o+C4uOC4kyDguIrguLHguKLguKfguIfguKjguYzguYLguKPguIjguJnguYwNCivguIHguLLguKPguLjguJMg4Lio4Lij4Li14Liq4LiU4LmD4LiqDQor4LiB4Liy4Lij4Li44LiT4Lii4LmMIOC5gOC4quC4o+C4tOC4oeC4quC4geC4uOC4pQ0KK+C4geC4suC4q+C4peC4hyDguJTguYjguLLguJnguJ7guLLguJPguLTguIrguKLguYzguIHguLjguKUNCivguIHguYnguLLguJkg4LiZ4LmI4Lin4Lih4Liq4Liz4Lil4Li1DQor4LiB4Liz4LiI4LijIOC4iuC4ueC4mOC4meC4suC4geC4o+C4k+C5jOC4geC4uOC4pQ0KK+C4geC4s+C4iOC4oyDguK3guJnguLHguI3guI3guLLguYDguILguJUNCivguIHguLPguIjguLHguJQg4Lik4LiX4LiY4Li04LmM4LiU4Li1DQor4LiB4Liz4LiK4Lix4LiiIOC4peC4suC4p+C4seC4k+C4ouC4p+C4uOC4kuC4tA0KK+C4geC4s+C4mOC4oyDguIjguLLguKPguLjguKrguLjguKfguKPguKPguJPguKDguLnguKHguLQNCivguIHguLPguJjguKMg4LiV4Lix4LiZ4LiY4Li14Lij4Liw4LiY4Lij4Lij4LihDQor4LiB4Liz4LiY4LijIOC4nuC4o+C4l+C4p+C4teC5guC4oOC4hOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4geC4s+C4mOC4oyDguYTguKfguJfguKLguLDguJ7guLLguJnguLTguIoNCivguIHguLPguJjguKMg4Lit4Li04LiZ4LiX4Lij4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Liz4Lie4LilIOC5gOC4guC5h+C4oeC4l+C4reC4hw0KK+C4geC4s+C4nuC4pSDguYLguIrguITguKrguLjguJnguJfguKrguLjguJfguJjguLTguYwNCivguIHguLPguJ7guKUg4Lia4Li54Lij4Lie4Liy4LiK4Li14LieDQor4LiB4Liz4Lie4LilIOC4o+C4seC4leC4meC4p+C4tOC4o+C4tOC4ouC4sA0KK+C4geC4s+C4nuC4pSDguKjguLHguIHguJTguLTguYzguJ7guLTguIrguLHguKLguKrguIHguLjguKUNCivguIHguLPguJ7guKUg4Lit4LiU4Li44Lil4Lin4Li04LiX4Lii4LmMDQor4LiB4Liz4LmA4LiZ4Li04LiUIOC5gOC4l+C4teC4ouC4meC5gOC4meC4teC4ouC4oQ0KK+C4geC4s+C5hOC4oyDguInguLTguKHguJTguK3guJnguJfguK3guIcNCivguIHguLTguYjguIcg4LiB4Liq4Li04Lig4Liy4Lij4LmMDQor4LiB4Li04LmI4LiH4LiB4Liy4LiN4LiI4LiZ4LmMIOC4mOC4meC4hOC4uOC5ieC4oeC4iuC4teC4ng0KK+C4geC4tOC5iOC4h+C4geC4suC4jeC4iOC5jCDguKfguIfguKjguYzguIHguLTguIjguIjguLLguYDguKXguLTguKgNCivguIHguLTguYjguIfguJ7guKMg4LiE4LiH4LmA4Lit4Li14LmI4Lii4Lih4Lie4Li04LiY4Li1DQor4LiB4Li04LmI4LiH4LmB4LiB4LmJ4LinIOC5g+C4iOC4leC5iuC4sOC4oeC4sg0KK+C4geC4tOC5iOC4h+C5geC4geC5ieC4pyDguKLguLHguIfguYDguIjguKPguLTguI0NCivguIHguLTguIgg4LiZ4Liy4Lin4Liy4Lie4LiZ4LihDQor4LiB4Li04LiI4LiI4LiyIOC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C4geC4tOC4iOC4iOC4siDguJ7guLnguKXguJzguKUNCivguIHguLTguIjguIjguLIg4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Li04LiI4LiV4Li04Lie4LiH4Lip4LmMIOC4iuC4ueC5hOC4l+C4og0KK+C4geC4tOC4leC4lOC4meC4seC4oiDguJjguKPguKHguJjguLHguIoNCivguIHguLTguJXguJXguLQg4LiB4Li04LiV4LiV4Li04Lin4Lij4Lie4Lix4LiZ4LiY4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4hOC4h+C4iuC4t+C5iOC4meC4quC4tOC4mQ0KK+C4geC4tOC4leC4leC4tCDguIjguYjguLLguIfguIjguKPguLnguI3guYLguKPguIjguJnguYwNCivguIHguLTguJXguJXguLQg4LiK4Lix4Lii4Lio4Li04Lij4Li04Lie4LiH4Lio4LmMDQor4LiB4Li04LiV4LiV4Li0IOC5geC4i+C5iOC4q+C4peC4tOC5ieC4oQ0KK+C4geC4tOC4leC4leC4tCDguJXguYLguKHguKvguKPguJPguKfguIfguKjguYwNCivguIHguLTguJXguJXguLQg4LiY4LiZ4Liy4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4LiK4Lix4LiiDQor4LiB4Li04LiV4LiV4Li0IOC4muC4uOC4jeC4p+C4seC4meC4leC5jA0KK+C4geC4tOC4leC4leC4tCDguJ7guIfguKjguYzguJ7guKXguLLguI3guIrguLHguKINCivguIHguLTguJXguJXguLQg4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lii4Li04LmI4LiHDQor4LiB4Li04LiV4LiV4Li0IOC4o+C4reC4h+C4o+C4seC4leC4meC5jA0KK+C4geC4tOC4leC4leC4tCDguKXguLTguYnguKHguIrguLHguKLguIHguLTguIgNCivguIHguLTguJXguJXguLQg4Lin4Lix4LiK4Lij4Liw4LiE4Li44Lib4LiV4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4qOC4o+C4teC4quC4uOC4l+C4mOC4tOC4o+C4seC4geC4qeC5jA0KK+C4geC4tOC4leC4leC4tCDguKrguLHguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguIHguLTguJXguJXguLQg4LmA4Liq4Lij4Li14Lia4Li44LiV4LijDQor4LiB4Li04LiV4LiV4Li0IOC4reC4ouC4ueC5iOC5guC4nuC4mOC4tOC5jA0KK+C4geC4tOC4leC4leC4tCDguYDguK3guLfguYnguK3guIrguLLguI3guYDguKfguIoNCivguIHguLTguJXguJXguLTguITguLjguJMg4LmA4LiI4Li34Lit4LiB4Li04LiI4LiB4Liz4LiI4LijDQor4LiB4Li04LiV4LiV4Li04LiK4Lix4LiiIOC4iuC5iOC4reC4l+C4reC4h+C4lOC4tQ0KK+C4geC4tOC4leC4leC4tOC4iuC4seC4oiDguJ7guLTguKPguLTguKLguLDguIHguLjguKXguJjguKMNCivguIHguLTguJXguJXguLTguIrguLHguKIg4Lit4Lij4LiK4LijDQor4LiB4Li04LiV4LiV4Li04LiZ4Lix4LiZ4LiX4LmMIOC4q+C4oeC4suC4ouC4oeC4seC5iOC4meC4qOC4ow0KK+C4geC4tOC4leC4leC4tOC4nuC4h+C4qOC5jCDguJfguK3guIfguKrguLjguILguLINCivguIHguLTguJXguJXguLTguJ7guIfguKnguYwg4LiB4Li04LiV4LiV4Li04Lig4Lix4Liq4Liq4LijDQor4LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4uOC4gg0KK+C4geC4tOC4leC4leC4tOC4nuC4h+C4qeC5jCDguYDguKHguKnguLDguKHguLHguJUNCivguIHguLTguJXguJXguLTguJ7guIfguKnguYwg4Lir4Liy4LiN4LmE4LiX4Lii4Lic4Lil4LiU4Li1DQor4LiB4Li04LiV4LiV4Li04Lie4LilIOC4iOC4seC4meC4l+C4o+C5jOC4ouC4tOC5ieC4oQ0KK+C4geC4tOC4leC4leC4tOC4nuC4seC4meC4mOC4uOC5jCDguYDguKXguYfguIHguJvguKPguLDguKrguKHguKfguIfguITguYwNCivguIHguLTguJXguJXguLTguKHguLIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Lih4Lil4Lih4Liy4Lil4Lii4LmMDQor4LiB4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4nuC4tOC5iOC4oeC4quC4uOC4gg0KK+C4geC4tOC4leC4leC4tOC4oeC4siDguYDguK3guLfguYnguK3guIHguLTguIjguJjguLTguYLguKPguJvguIHguKPguJPguYwNCivguIHguLTguJXguJXguLTguKLguLIg4Lij4Lix4LiV4LiZ4Lio4Lij4Li14Lit4Liz4LmE4Lie4Lie4LiH4Lio4LmMDQor4LiB4Li04LiV4LiV4Li04Lin4Lij4Lij4LiTIOC4geC4s+C4mOC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C4geC4tOC4leC4leC4tOC4p+C4uOC4kuC4tCDguKjguKjguLTguJ7guIfguKjguYzguK3guJnguLHguJnguJXguYwNCivguIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4sOC4reC4tOC4meC4l+C4o+C5jA0KK+C4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguKfguKPguIHguLTguIjguJvguKPguLDguJfguLXguJsNCivguIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwg4Lir4Lit4Lih4LiI4Liz4Lib4LiyDQor4LiB4Li04LiV4LiV4Li04LmA4LiU4LiKIOC4mOC4meC4o+C4o+C4huC4suC4geC4ow0KK+C4geC4tOC4leC4tCDguIrguKfguJnguLDguKXguLTguILguLTguIHguKMNCivguIHguLTguJXguLTguIHguKMg4Lie4LiZ4Li04LiK4Lii4LmM4Liq4LiB4Li44LilDQor4LiB4Li04LiV4Li04LiK4Lix4LiiIOC4quC4tOC4l+C4mOC4tOC5jOC4mOC4o+C4o+C4oeC4p+C4tOC5hOC4pQ0KK+C4geC4tOC4leC4tOC4nuC4h+C4qeC5jCDguJXguLHguJnguJXguLTguKfguJPguLTguIrguKLguYwNCivguIHguLTguJXguLTguJ7guLHguJLguJnguYwg4Lib4Lin4Li14LiT4Lin4Li04LiX4Lii4LmC4LiK4LiV4Li0DQor4LiB4Li04LiV4Li04Lih4LiyIOC4nuC4uOC4kuC4iOC4seC4meC4l+C4o+C5jA0KK+C4geC4tOC4leC4tOC4ouC4siDguJnguIHguJfguK3guIcNCivguIHguLTguJXguLTguKjguLHguIHguJTguLTguYwg4LmB4LiB4Lil4LmJ4Lin4LiB4Liq4Li04Lin4Li04LiX4Lii4LmMDQor4LiB4Li04LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jOC4p+C4teC4o+C4iuC4seC4og0KK+C4geC4tOC4meC4o+C4tSDguJTguLPguJfguK3guIfguKrguLjguIINCivguIHguLTguKHguIHguLUg4LmB4LiL4LmI4Lir4Lij4Li34LitDQor4LiB4Li04Lih4LiI4Lix4LmK4LinIOC5geC4i+C5iOC5guC4m+C5iOC4pw0KK+C4geC4tOC4oeC4i+C5ieC4hyDguYHguIvguYjguKXguLXguYkNCivguIHguLTguKHguJvguYrguK0g4LmA4Lil4Li04Lio4LiB4Lin4Li14Lin4LiH4Lio4LmMDQor4LiB4Li04Lih4Lil4Lix4LmJ4LiHIOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4og0KK+C4geC4tOC4oeC4peC4uOC5ieC4oiDguYHguIvguYjguKXguLTguYnguKENCivguIHguLTguKHguKvguKLguLjguJkg4LmB4LiL4LmI4LiI4LiHDQor4LiB4Li04Lih4Liu4Lin4LiUIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4h+C4quC4o+C4o+C4hOC5jA0KK+C4geC4tOC4oeC4ruC4seC5ieC4pyDguYHguIvguYjguKXguLXguYkNCivguIHguLTguKHguYDguIrguYfguIcg4LmB4LiL4LmI4LmE4Lir4LilDQor4LiB4Li04Lih4LmA4LiV4Li14Lii4LiHIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4geC4tOC4oeC5gOC4peC4teC5ieC4ouC4hyDguJrguLjguI3guKLguIfguITguYwNCivguIHguLTguKHguYDguK3guYfguIcg4LmB4LiL4LmI4Lir4Lil4Li04LihDQor4LiB4Li04Lih4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC5hOC4q+C4pQ0KK+C4geC4tOC4oeC5hOC4iOC5iiDguYHguIvguYjguK3guLbguYrguIcNCivguIHguLTguYnguKHguIHguLjguYnguIcg4LmB4LiL4LmI4Lib4Li24LmJ4LiHDQor4LiB4Li04Lij4LiTIOC4iOC4suC4o+C4uOC4iOC4tOC4meC4lOC4sg0KK+C4geC4tSDguIjguLXguYnguYDguIvguYnguIcNCivguIHguLXguKPguJPguLIg4LiX4Lix4LiZ4LiV4Liw4LmA4Lin4LiKDQor4LiB4Li14Lij4Lia4Li44LiV4LijIOC4geC4tOC4leC4tOC4ouC4suC4lOC4tOC4qOC4seC4og0KK+C4geC4uOC4hyDguYHguIvguYjguYDguKXguYnguLINCivguIHguLjguJPguJHguKUg4Lie4Li44LiB4LiB4Lij4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiB4Li44LiZ4LiX4Li1IOC5hOC4nuC4iOC4tOC4leC4o+C4m+C4o+C4sOC4oOC4suC4oOC4o+C4k+C5jA0KK+C4geC4uOC4ouC5gOC4geC4teC4ouC4hyDguYHguIvguYjguYDguK3guLXguYnguKINCivguIHguLjguYjguKLguYDguK7guLXguKLguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiB4Li44Lij4LmM4LiI4Lij4Lix4LiZ4LiK4Li04LiH4Lir4LmMIOC5guC4hOC4o+C4suC4meC4sg0KK+C4geC4uOC4peC4iuC4oyDguYHguKLguYnguKHguJzguK3guJoNCivguIHguLjguKXguI3guLIg4Lih4Lix4LiN4LiK4Li44Lin4Liy4LiX4Li04LiZ4Li1DQor4LiB4Li44Lil4LiY4LijIOC4meC4suC4o+C4ueC4peC4sg0KK+C4geC4uOC4peC4mOC4tOC4lOC4siDguK3guLjguJXguJXguYLguJkNCivguIHguLjguKXguJvguKPguLLguJPguLUg4LiE4LiH4Lie4Lil4Lix4LiHDQor4LiB4Li44Lil4Lih4Li04LiV4LiB4Lit4Lij4LmMIOC4iOC4suC4p+C4suC4peC4sg0KK+C4geC4uOC4peC4o+C4seC4leC4meC5jCDguKrguLTguYjguIfguKLguLHguIcNCivguIHguLjguKXguKfguJTguLUg4LiY4Li14Lij4Liq4Li44LiZ4LiX4Lij4Lin4Lix4LiS4LiZ4LmMDQor4LiB4Li44Lil4Lin4Lil4Li1IOC4leC4o+C4sOC4geC4ueC4peC4quC4seC4meC4leC4tOC4iuC4seC4og0KK+C4geC4uOC4peC5gOC4l+C4niDguJnguLLguITguLDguK3guKDguLQNCivguIHguLjguKjguKUg4Lia4Li44LiN4LmA4Liq4Lih4LitDQor4LiB4Li44Lio4Lil4Lio4Lij4Li1IOC4qOC4seC4geC4lOC4tOC5jOC5gOC4oeC4t+C4reC4hw0KK+C4geC4uOC4quC4uOC4oeC4siDguYDguJfguLXguKLguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguIHguLjguKrguLjguKHguLIg4LmA4Liq4Li34Lit4LmA4LiZ4Li14Lii4LihDQor4LiB4Li44Lir4Lil4Liy4LiaIOC4hOC4uOC4k+C4quC4suC4oeC4suC4o+C4lg0KK+C4geC4uOC4q+C4peC4suC4miDguJfguKPguLHguJ7guKLguYzguYDguIHguKnguJXguKMNCivguIHguLjguKvguKXguLLguJog4Lie4Li44LiB4LiB4Liw4LiT4Liw4Liq4Li44LiVDQor4LiB4Li44Lir4Lil4Liy4LiaIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4reC4uOC4l+C4seC4ouC4geC4uOC4pQ0KK+C4geC4uOC4q+C4peC4suC4miDguK3guLLguKPguLXguKPguLHguJXguJnguYwNCivguIHguLnguYnguYDguIHguLXguKLguKPguJXguLQg4LiK4Lix4Lii4LiB4Lij4LmC4LiB4Lio4LilDQor4LmA4LiB4LiK4LiyIOC5guC4leC5iuC4sOC4quC4oeC4seC4mQ0KK+C5gOC4geC4leC4uCDguKTguJfguJjguLTguYzguJTguLUNCivguYDguIHguJnguIvguLTguIfguKvguYwg4LmA4LiB4LiZ4LiL4Li04LiH4Lir4LmMDQor4LmA4LiB4Lij4Li04LiBIOC5gOC4oeC4meC4seC4ig0KK+C5gOC4geC4o+C4tOC4geC4reC4tOC4l+C4mOC4tOC5jCDguYDguIHguKnguKHguKrguLHguJnguJXguYwNCivguYDguIHguKPguLXguKLguIcg4LmA4Lii4Liy4Lin4LiZ4Lin4Li04Lih4LilDQor4LmA4LiB4Lij4Li14Lii4LiH4LiK4Lix4LiiIOC4o+C4seC4leC4meC5hOC4nuC4p+C4h+C4qOC5jA0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguIHguYnguK3guIfguYTguJXguKPguKDguJ4NCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LmC4LiG4Lip4Li04LiV4LiB4Li44Lil4Lie4LijDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4iuC4p+C4peC4tOC4guC4tOC4lQ0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguJXguKPguLXguJfguLTguJ7guKLguKPguLHguIHguKnguYwNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LiZ4Lij4LiU4Li1DQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4h+C4qOC5jOC5gOC4nuC5h+C4iuC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguYDguJ/guLfguYjguK3guIfguJ/guLnguJ7guIfguKjguYwNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4Lik4LiB4Lip4LmM4Lit4Liz4LiZ4Lin4Lii4LmC4LiK4LiEDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4tOC4iuC4iuC4uOC4p+C4seC4kuC4meC4suC4geC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguKrguKHguIHguLTguIjguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LmB4Liq4LiZ4LmD4Lir4Lih4LmIDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4uOC4lOC4oeC4oeC4tOC4leC4o+C4o+C4seC4gQ0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguIHguLTguJXguJXguLTguIrguLHguKLguYDguJTguIoNCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4LiI4Li04Lij4Liq4Li04Lij4Li04LmC4Lij4LiI4LiZ4Liy4LiB4LijDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4lOC5iOC4suC4meC4mOC4meC4sOC4iuC4seC4og0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguJnguLLguITguJfguK3guIcNCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4Lie4Li04LiT4LiX4Lit4LiHDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4peC4suC4oOC4quC4tOC4o+C4tOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguKjguLTguKPguLLguKHguJ7guLjguJgNCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4Lir4LiH4Liq4LmE4LiB4LijDQor4LmA4LiB4Lil4Li14Lii4Lin4LiU4Li1IOC4leC4seC4meC4quC4uOC4p+C4o+C4o+C4k+C4lOC4tQ0KK+C5gOC4geC4p+C4peC4tSDguJ7guKXguIrguLHguKINCivguYDguIHguKjguJfguLTguJ7guKLguYwg4Lie4Li44LiX4LiY4Lie4LiH4Lip4LmMDQor4LmA4LiB4Lio4Lij4LiyIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C5gOC4geC4qOC4o+C4suC4oOC4o+C4k+C5jCDguJ7guKXguLXguYDguIHguJXguLgNCivguYDguIHguKjguKPguLTguJnguJfguKPguYwg4Lir4Lil4Li14LiX4Lix4LiaDQor4LmA4LiB4Lio4Liq4Li44LiZ4Li14Lii4LmMIOC4p+C4tOC4p+C4seC4kuC4meC4suC4oOC4tOC4o+C4seC4geC4qeC5jA0KK+C5gOC4geC4qOC4tOC4meC4tSDguIrguKfguKXguLUNCivguYDguIHguKjguLTguJnguLUg4Lih4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiDQor4LmA4LiB4Lio4Li14LiT4Li1IOC4peC4t+C4reC4geC4uOC4peC4p+C4seC4kuC4meC4iuC4seC4og0KK+C5gOC4geC4qeC4k+C4tSDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIHguKnguJXguKMg4Liq4Li44Lin4Lij4Lij4LiT4LiY4Lij4Lij4Lih4LiyDQor4LmA4LiB4Lip4LihIOC4geC4tOC4leC4leC4tOC5guC4quC4oOC4k+C4geC4tOC4iA0KK+C5gOC4geC4qeC4oSDguITguLPguJ7guKLguLHguITguIbguYwNCivguYDguIHguKnguKEg4LiI4Liz4LiZ4LiH4LiE4LmM4LmE4LinDQor4LmA4LiB4Lip4LihIOC4iuC5iOC4p+C4h+C5guC4iuC4leC4tA0KK+C5gOC4geC4qeC4oSDguYHguIvguYjguIvguLfguYnguK0NCivguYDguIHguKnguKEg4LiV4Li44LmJ4Lih4LiX4Lit4LiHDQor4LmA4LiB4Lip4LihIOC4mOC4teC4o+C4l+C4teC4huC4suC4meC4uOC4p+C4h+C4qOC5jA0KK+C5gOC4geC4qeC4oSDguJrguLjguI3guKHguLLguKLguLDguJ7guLHguJnguJjguLjguYwNCivguYDguIHguKnguKEg4Lib4Li24LiH4LiK4Lin4Lil4Li04LiV4LmC4Liq4Lig4Li1DQor4LmA4LiB4Lip4LihIOC4nuC4tOC4nuC4seC4kuC4meC5jOC4m+C4o+C4sOC4l+C4suC4meC4nuC4ow0KK+C5gOC4geC4qeC4oSDguKHguLHguYjguJnguJbguLLguKfguKMNCivguYDguIHguKnguKEg4Lij4Lix4LiV4LiZ4Liy4LiY4Lij4Lij4Lih4Lin4Lix4LiS4LiZ4LmMDQor4LmA4LiB4Lip4LihIOC5gOC4peC4teC5iOC4ouC4h+C4p+C4tOC4iuC4iuC4uOC4nuC4seC4meC4mOC5jA0KK+C5gOC4geC4qeC4oSDguYDguKfguIrguKPguLHguJXguJnguYzguJ7guLTguKHguKUNCivguYDguIHguKnguKEg4Liq4Lih4Li04LiX4LiY4Li04LmA4LiZ4LiV4Lii4LmMDQor4LmA4LiB4Lip4LihIOC4quC4uOC4lOC4p+C4tOC4quC4seC4og0KK+C5gOC4geC4qeC4oSDguKvguKfguLHguIfguIjguLTguJXguJXguYzguYDguIrguLXguKLguKMNCivguYDguIHguKnguKEg4Lit4Li04LiZ4LiX4Lij4Liq4LiB4Li44LilDQor4LmA4LiB4Lip4Lih4Lio4Lij4Li1IOC4iuC4teC4p+C4sOC5gOC4geC4leC4uA0KK+C5gOC4geC4qeC4oeC4qOC4seC4geC4lOC4tOC5jCDguJvguLHguI3guI3guLLguKTguJfguJjguLTguYwNCivguYDguIHguKnguKHguKrguLHguJnguJXguYwg4Liq4LiZ4LiY4Li04Liq4LiW4Liy4Lie4LijDQor4LmA4LiB4Lip4LijIOC4geC4uOC4peC5gOC4peC4tOC4qOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4geC4qeC4oyDguIrguLXguKfguJvguKPguLXguIrguLINCivguYDguIHguKnguKMg4LiZ4Liz4Lie4Lix4LiBDQor4LmA4LiB4Lip4LijIOC5gOC4nuC4tOC5iOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C5gOC4geC4qeC4oyDguKfguLHguJLguJnguLLguKXguLHguKINCivguYDguIHguKnguKMg4LmC4Liq4Lij4Lix4LiV4LiZ4LmMDQor4LmA4LiB4Lip4Lij4LiyIOC4nuC4p+C4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C5gOC4geC4qeC4o+C4tOC4meC4l+C4o+C5jCDguKrguKHguKfguIfguKjguYwNCivguYDguIHguKnguKrguLjguJnguLXguKLguYwg4Lih4Liy4Lih4Li14LiK4Lix4LiiDQor4LmA4LiB4Lip4LmB4LiB4LmJ4LinIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C5gOC4geC4quC4o+C4tSDguYDguIHguLXguKLguKPguJXguLTguIHguLPguIjguKMNCivguYDguIHguLLguKPguLHguIHguKnguYwg4Liq4Li44LiE4LiZ4LiY4LmM4LmA4Lil4Li04Lio4Liq4Lih4LijDQor4LmA4LiB4Li14Lii4LiHIOC5gOC4peC4tOC4qOC4nuC4peC4suC4iuC4seC4og0KK+C5gOC4geC4teC4ouC4o+C4leC4tCDguIHguLHguIfguKfguLLguJnguYDguKfguIrguIHguLjguKUNCivguYDguIHguLXguKLguKPguJXguLQg4LiU4Li14LiC4LiI4LijDQor4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4oeC4q+C5gOC4geC4teC4ouC4o+C4leC4tOC5hOC4nuC4qOC4suC4pQ0KK+C5gOC4geC4teC4ouC4o+C4leC4tCDguKvguIfguKnguYzguKfguLTguKjguLTguKnguJDguIHguLjguKUNCivguYDguIHguLXguKLguKPguJXguLTguITguLjguJMg4LiX4Lix4LiB4Lip4Li04LiT4LiZ4Li44LiB4Li44Lil4Lin4LiH4Lio4LmMDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiK4Lix4LiiIOC5guC4leC4reC4o+C4uOC4p+C4h+C4qOC5jA0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4iuC4seC4oiDguYDguKfguKjguJnguYzguKHguLHguIbguKfguLLguJkNCivguYDguIHguLXguKLguKPguJXguLTguJPguKPguIfguITguYwg4Lij4Lix4LiV4LiZ4Lib4Lij4Li14LiK4Liy4LmA4Lin4LiKDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lie4LijIOC4iOC4suC4o+C4uOC4mOC4o+C4o+C4oQ0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguIHguLTguIjguIHguYnguK3guIfguILguIjguKPguIrguLHguKINCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LiJ4Lix4LiV4Lij4Lin4Li04LiX4Lii4Liy4LiX4Lij4Lix4Lie4Lii4LmMDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguYDguKPguLfguK3guJnguJnguLLguIQNCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LmA4Liq4Liy4Liq4Liy4LiiDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMIOC4geC4seC4k+C4p+C5gOC4qOC4o+C4qeC4kA0KK+C5gOC4geC4teC4ouC4pyDguJ7guLHguKfguKrguKfguLHguKrguJTguLTguYwNCivguYDguIHguLXguYnguKLguIfguIvguKfguIcg4LmB4LiL4LmI4LiH4Li44LmI4LiiDQor4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilIOC4geC4reC4h+C4p+C4tOC5gOC4qOC4qQ0KK+C5gOC4geC4t+C5ieC4reC4geC4ueC4pSDguKfguIfguKjguYzguJfguKjguJ7guKMNCivguYDguIHguYfguIEg4LmB4LiL4LmI4Lit4Li04LihDQor4LmA4LiB4LmI4LiH4LiB4Liy4LiIIOC4m+C4seC4geC4geC4suC5gOC4lQ0KK+C5gOC4geC5iyDguKrguLjguKfguKPguKPguJPguKfguLHguJLguJnguYwNCivguYHguIHguYjguJkg4LiX4Lix4LmI4LiH4Liq4LiW4Li04LiV4Lii4LmMDQor4LmB4LiB4LmJ4LinIOC4iOC4tOC4o+C4muC4p+C4o+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C5geC4geC5ieC4pyDguJbguLLguKfguKPguJnguLHguJnguJfguYwNCivguYHguIHguYnguKcg4Lii4Liy4LiZ4LmJ4Lit4LiiDQor4LmB4LiB4LmJ4LinIOC5hOC4quC4ouC4iOC4tOC4leC4o+C5jA0KK+C5geC4geC5ieC4p+C4iOC4tOC4meC4lOC4siDguJfguK3guIfguYHguIHguYnguKcNCivguYHguIHguYnguKfguJXguLIg4Lio4Lik4LiH4LiE4Liy4Lij4LmA4LiI4Lip4LiO4LiyDQor4LmB4LiB4LmJ4Lin4Lih4LiT4Li1IOC4qOC4o+C4teC4p+C4sOC4o+C4oeC4ouC5jA0KK+C5geC4geC5ieC4p+C5g+C4iCDguYTguKfguKjguKLguLLguIfguIHguLnguKMNCivguYLguIHguKHguKUg4LmC4LiB4Lih4Li44LiX4LiY4LiZ4LiK4Liy4LiV4Li0DQor4LmC4LiB4Lih4LilIOC4m+C4seC4leC4leC4suC4meC4uOC4quC4o+C4k+C5jA0KK+C5guC4geC4oeC4pSDguKjguLTguKPguLTguJ7guKMNCivguYLguIHguKHguLTguJnguJfguKPguYwg4LiR4Li14LiG4LiY4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LmC4LiB4Lil4Li04LiV4LiyIOC4oeC4teC4peC4suC4oA0KK+C5guC4geC4p+C4tOC4lyDguYHguIvguYjguYDguKXguYnguLINCivguYLguIHguKfguLTguJcg4Lie4Lix4LiZ4LiY4Li44LmM4LmB4Lii4LmJ4Lih4Lih4Liy4Lil4Li1DQor4LmC4LiB4Lin4Li04LiXIOC4p+C4suC4leC4sA0KK+C5guC4geC4p+C4tOC4lyDguK3guLjguJfguLHguKLguInguLLguKINCivguYLguIHguKfguLTguJfguKLguYwg4LiX4Lij4Lix4Lie4Lii4LmM4LmA4LiI4Lij4Li04LiN4Lio4Lij4Li1DQor4LmC4LiB4Lin4Li04LiX4Lii4LmMIOC4p+C4h+C4qOC5jOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C5guC4geC4qOC4pSDguIHguKTguKnguJPguJvguKPguLDguJ7guLHguJnguJjguYwNCivguYLguIHguKjguKUg4LmD4LiI4Lin4Li04LiI4Li04LiV4LijDQor4LmC4LiB4Lio4LilIOC4mOC4teC4o+C4nuC4tOC4l+C4ouC4suC4mOC4ow0KK+C5guC4geC4qOC4pSDguYDguJ7guYfguIrguKPguKrguLjguKfguKPguKPguJPguYwNCivguYLguIHguKjguKUg4Lin4Lix4LiS4LiZ4Liy4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LmC4LiB4Lio4LilIOC5gOC4q+C4peC5iOC4suC4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C5guC4geC4quC4tOC4l+C4mOC4tOC5jCDguInguLHguJnguJfguLLguIjguLLguKPguLjguKfguIfguKjguYwNCivguYLguIHguKrguLTguJnguJfguKPguYwg4Lin4Lix4Lil4Lil4Li04LmC4Lig4LiU4LihDQor4LmC4LiB4Liq4Li44LihIOC5geC4oeC4meC4nOC4lOC4uOC4hw0KK+C5guC4geC4quC4uOC4oeC4oOC5jCDguK3guKDguLTguKfguLHguJnguJfguJnguLHguJnguJfguYwNCivguYLguIHguYDguKHguKgg4LmC4LiB4Lih4Li44LiX4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilDQor4LmD4LiB4Lil4LmJ4Lij4Li44LmI4LiHIOC5geC4nuC4l+C4ouC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5hOC4geC4o+C4lOC4siDguJTguKfguIfguJvguKPguLDguIrguLINCivguYTguIHguKPguKTguIHguKnguYwg4LiTIOC4peC4s+C4m+C4suC4hw0KK+C5hOC4geC4o+C4p+C4seC4peC4ouC5jCDguKfguLTguKPguLTguKLguLDguKfguLTguJfguKLguYwNCivguYTguIHguKPguKjguKMg4Lib4Lij4Liy4Lij4LiW4LiZ4Liy4LiU4Li1DQor4LmE4LiB4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4uOC5iOC4meC4p+C4tOC4iOC4tOC4leC4ow0KK+C5hOC4geC4o+C4quC4oyDguKfguIfguKjguYzguJnguKDguLLguIHguLLguI3guIjguJnguYwNCivguYTguIHguKPguKrguLXguKvguYwg4LiE4Lil4LmJ4Liy4Lii4Lih4LiT4Li1DQor4LmE4LiB4Lin4Lix4LilIOC4iOC4suC4leC4meC4tOC4peC4nuC4seC4meC4mOC4uOC5jA0KK+C4guC4iOC4oyDguIrguYnguK3guJnguJvguKPguLDguYDguKrguKPguLTguJANCivguILguIjguKMg4Lie4Li04Lih4Lie4Li04LiK4Lix4LiiDQor4LiC4LiI4LijIOC4quC4uOC4meC4l+C5guC4o+C4lOC4oQ0KK+C4guC4iOC4o+C4nuC4pSDguYHguKrguJnguKrguLjguJTguKrguKfguLLguJcNCivguILguIjguKPguKjguLHguIHguJTguLTguYwg4LmA4LiI4LmJ4Liy4LiB4Lij4Lih4LiX4Lit4LiHDQor4LiC4LiI4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4nuC4mOC4tOC4meC4suC4oeC4l+C4reC4hw0KK+C4guC4iOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguYjguLLguJ7guIfguKnguYzguKjguKMNCivguILguIjguKPguYDguJTguIog4Lie4LiH4Lip4LmM4Liq4LiZ4Liy4LihDQor4LiC4LiI4Li04LiV4Lie4Lij4Lij4LiTIOC4hOC4iuC4nuC4seC4meC4mOC4uOC5jA0KK+C4guC4iuC4pSDguKfguKPguJfguLXguJvguLLguJnguJnguJfguYwNCivguILguJnguLTguKnguJDguLIg4LiB4Liy4Lij4Liq4Lih4Lie4Li04LipDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4iOC4s+C5gOC4meC4teC4ouC4o+C4geC4suC4pQ0KK+C4guC4meC4tOC4qeC4kOC4siDguJTguKfguIfguYHguIHguYnguKcNCivguILguJnguLTguKnguJDguLIg4LiZ4Liy4LiB4Liy4Lit4Li0DQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4nOC4peC4h+C4suC4oQ0KK+C4guC4meC4tOC4qeC4kOC4siDguKLguIfguKfguLLguJnguLTguIrguIjguLTguJUNCivguILguJnguLTguKnguJDguLIg4Lin4LiH4Lio4LmM4LmA4Lir4Lil4Li34Lit4LiHDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4quC4seC4h+C4guC5jOC4qOC4tOC4o+C4tA0KK+C4guC4meC4tOC4qeC4kOC4siDguK3guJnguLjguKrguJbguLTguJXguKLguYwNCivguILguKLguLHguJkg4Lio4Liy4Liq4LiV4Lij4Liw4Lij4Li44LiI4Li0DQor4LiC4Lin4Lix4LiNIOC4guC4p+C4seC4jeC5gOC4l+C4teC4ouC4meC4l+C4reC4hw0KK+C4guC4p+C4seC4jeC4iOC4tOC4lSDguKLguK3guJTguKrguK3guJkNCivguILguKfguLHguI3guIrguLHguKIg4LiB4LiH4Lia4Li44Lij4Liy4LiTDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC5gOC4iuC4t+C5ieC4reC4quC4uOC4p+C4o+C4o+C4kw0KK+C4guC4p+C4seC4jeC4iuC4seC4oiDguJ7guIfguKnguYzguYDguKXguLLguKvguJ7guLHguJnguJjguLjguYwNCivguILguKfguLHguI3guIrguLHguKIg4Lin4LiH4Lip4LmM4LiT4Lij4Lix4LiV4LiZ4LmMDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC4reC4oeC4o+C5gOC4oeC4mA0KK+C4guC4p+C4seC4jeC4leC4siDguIjguLHguJnguJfguKPguYzguInguLLguKINCivguILguKfguLHguI3guJXguLIg4Lio4Li44Lig4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4LiC4Lin4Lix4LiN4Lii4Li34LiZIOC4muC4uOC4jeC4nuC4o+C4oQ0KK+C4guC4p+C4seC4jeC4qOC4tOC4o+C4tCDguKfguJPguLTguIrguIHguLjguKXguJrguJTguLUNCivguILguKfguLHguI3guYDguKHguLfguK3guIcg4LiE4LiH4LiW4Liy4Lin4LijDQor4LiC4Lin4Lix4LiN4LmA4Lij4Li34Lit4LiZIOC4h+C4suC4oeC5gOC4nOC4t+C4reC4gQ0KK+C4guC4p+C4seC4jeC5gOC4o+C4t+C4reC4mSDguKrguLXguKLguKfguJkNCivguILguKfguLHguI3guYPguIgg4LmA4LiI4LiV4LiZ4LmM4LiI4Liz4LiZ4LiH4LiE4LmM4Liq4LiB4Li44LilDQor4LiC4Lin4Lix4LiN4LmD4LiIIOC4meC4o+C4oeC4seC4leC4luC5jA0KK+C4guC4p+C4seC4jeC5g+C4iCDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguILguKfguLHguI3guYPguIgg4Liq4Li44LiC4Lit4Liy4Lia4LmD4LiIDQor4LiC4Lix4LiT4LiR4LmM4LmE4LiK4LiiIOC4p+C4h+C4qOC5jOC4h+C4suC4oQ0KK+C4guC4seC4meC4leC4tCDguYDguJTguIrguLDguITguLjguJvguJXguYwNCivguILguLHguJnguJfguK3guIcg4Lio4Lij4Li14LiE4LizDQor4LiC4Liy4LiH4Li04LmJ4LihIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4guC4suC4pyDguKrguLjguJrguKPguKPguJPguKPguLHguJXguJnguYwNCivguILguLPguYDguKrguKHguK0g4LiE4LiH4Lio4Li04Lij4Li0DQor4LiC4Li44LiZ4LmB4Lic4LiZIOC5geC4geC5ieC4p+C4meC5ieC4reC4og0KK+C5gOC4guC4oeC4iuC4suC4leC4tCDguK3guLTguKPguLHguIrguJXguLLguJnguJnguJfguYwNCivguYDguILguKHguLIg4Lin4Li04Liq4Li44LiX4LiY4Li04Lin4Lix4LiS4LiZ4Liy4LiB4LijDQor4LmA4LiC4Li14Lii4LiZIOC4oOC4seC4l+C4o+C4tQ0KK+C5gOC4guC5h+C4oSDguITguKXguYnguK3guKLguYHguKrguIcNCivguYDguILguYfguKHguJfguK3guIcg4Lio4Li04Lij4Li04LmB4Liq4LiH4LmA4Lil4Li04LioDQor4LmB4LiC4LiZ4Lig4LiyIOC4lOC4uOC4qeC4juC4teC4lOC4s+C5gOC4geC4tOC4hw0KK+C5hOC4guC4qOC4o+C4tSDguKPguLHguIfguKrguLTguKLguLLguJnguJnguJfguYwNCivguYTguILguYjguKHguLjguIHguILguYwg4LiE4LiH4LiE4LiyDQor4LiE4LiH4LiB4Lik4LiV4Lii4LmMIOC4m+C4suC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4hOC4h+C4pOC4l+C4mOC4tOC5jCDguYDguJvguLXguYjguKLguKHguYDguIjguKPguLTguI3guIrguLHguKINCivguITguIfguKjguLHguIHguJTguLTguYwg4LmA4LiV4Li04Lih4Lie4Li04LiX4Lii4Liy4LmA4Lin4LiKDQor4LiE4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4suC4k+C4tOC4iuC4geC4o+C4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4hOC4h+C5gOC4lOC4iiDguYHguIvguYjguYLguKvguIfguYnguKcNCivguITguJHguLLguJfguK3guIcg4LiX4Lit4LiH4LmD4Lir4LiN4LmIDQor4LiE4LiT4Liy4Lij4Lix4LiK4LiV4LmMIOC4l+C4teC5gOC4q+C4peC5h+C4gQ0KK+C4hOC4k+C4tOC4lSDguIvguLTguYnguKHguYDguIjguKPguLTguI0NCivguITguJPguLTguJUg4Lio4Liy4Lio4Lin4Lix4LiV4Lio4Liy4LiZ4LiV4Li0DQor4LiE4LiT4Li04LiZIOC4iOC4uOC4keC4suC4oeC4suC4qA0KK+C4hOC4leC4tCDguJ7guLHguJnguJjguLjguYzguKrguKfguYjguLLguIcNCivguITguJnguK3guIcg4LiZ4Li04Lil4Lie4Lix4LiZ4LiY4LmMDQor4LiE4LiZ4Li24LiHIOC4iuC4ueC4m+C4o+C4sOC4iOC4hw0KK+C4hOC4meC4tuC4hyDguYLguKrguKHguLDguYDguIHguKnguJXguKPguLTguJkNCivguITguJnguLbguIfguJnguLTguIgg4LiX4Lin4Li14LmB4LiB4LmJ4LinDQor4LiE4LiZ4Li24LiH4LiZ4Li04LiIIOC4quC4seC4h+C4guC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4hOC4meC4tuC4h+C4meC4tOC4leC4ouC5jCDguKrguLjguILguKrguIHguLjguKUNCivguITguKHguIHguKPguLTguIog4LmA4LiJ4Lil4Li04Lih4Lin4Lix4LiS4LiZ4LmMDQor4LiE4Lih4LiB4Lik4LiKIOC4m+C4o+C4sOC4hOC4uOC4k+C4hOC4lOC4tQ0KK+C4hOC4oeC4guC4syDguIrguKfguKXguLTguJUNCivguITguKHguITguLLguKIg4LiV4Lix4LmJ4LiH4LiV4Lij4LiH4LiE4Li04LiUDQor4LiE4Lih4LiI4Lix4LiB4LijIOC5gOC4iOC4meC4iOC4mg0KK+C4hOC4oeC4qOC4seC4geC4lOC4tOC5jCDguIHguK3guKrguLTguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguITguKHguKrguLHguJkg4LiE4Li44LiT4LmA4LiI4Lij4Li04LiNDQor4LiE4Lih4Liq4Lix4LiZIOC4muC4seC4k+C4keC4tOC4leC4p+C4h+C4qeC5jA0KK+C4hOC4oeC4quC4seC4mSDguKjguKPguLXguJfguK3guIfguKrguLjguIINCivguITguKHguKrguLHguJnguJXguYwg4LiB4Lil4Li04LmI4LiZ4LiU4Li1DQor4LiE4Lih4Liq4Lix4LiZ4LiV4LmMIOC4quC4uOC4nuC4o+C4o+C4k+C5guC4o+C4iOC4meC5jA0KK+C4hOC4o+C4o+C4iuC4tOC4lSDguITguKXguYjguK3guIfguJrguLjguI3guIjguLTguJUNCivguITguKPguKPguIrguLTguJUg4Lic4Lil4Liy4Lia4Li54Lij4LiT4LiwDQor4LiE4Lij4Lij4LiK4Li04LiVIOC4quC4uOC4p+C4o+C4o+C4k+C4iuC4t+C5iOC4mQ0KK+C4hOC4o+C4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguYDguJfguKjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguITguKXguK3guYPguIgg4Lib4Lix4LiN4LiN4Liy4Lio4LijDQor4LiE4Lil4Li24LiHIOC4l+C4p+C4teC4p+C4o+C4o+C4k+C5jA0KK+C4hOC4reC4leC4teC5gOC4ouC4suC4sCDguKrguLLguKHguLHguI0NCivguITguLDguYDguJnguYfguJUg4Lic4LiU4Li44LiH4LiK4Li14Lin4Li04LiVDQor4LiE4Lix4LiX4Lij4Li14Lii4LiyIOC4ouC4meC4leC4o+C5jOC5gOC4m+C4teC5iOC4ouC4oQ0KK+C4hOC4seC4oeC4oOC4teC4o+C4m+C4seC4jeC4jeC4suC4geC4oyDguJ7guKPguLDguITguKPguLkNCivguITguLLguJXguLXguYsg4LmB4LiL4LmI4LiE4LiHDQor4LiE4Liy4LmA4LiB4Li14Lii4LinIOC5geC4i+C5iOC5guC4reC5ieC4pw0KK+C4hOC4syDguKfguKPguKPguJPguKrguLTguJfguJjguLQNCivguITguLPguJXguLIg4Lia4Li44LiN4LiK4Li5DQor4LiE4Liz4LiZ4Lin4LiZIOC4muC4uOC4k+C4ouC4nOC4pQ0KK+C4hOC4s+C4meC4tuC4hyDguYTguIrguKLguKLguJnguJXguYwNCivguITguLPguJnguLbguIcg4Lio4Li04Lij4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiE4Liz4Lib4Lix4LiZIOC5geC4quC4meC4quC4uOC4gg0KK+C4hOC4s+C4nuC4pSDguITguIfguILguKfguLHguI3guYDguKHguLfguK3guIcNCivguITguLPguJ7guLHguJnguJjguYwg4Lio4Li44Lig4Liq4LijDQor4LiE4Liz4Lih4LiyIOC4qOC4tOC4o+C4tOC4reC4suC4iA0KK+C4hOC4s+C4o+C4kyDguYHguIvguYjguIHguLHguIcNCivguITguLPguKPguJMg4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmM4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4LiE4Liz4Lij4LiZIOC4iOC4leC4uOC4l+C4reC4hw0KK+C4hOC4s+C4q+C4oeC5iOC4reC4mSDguJvguKPguLDguKrguKHguJzguKUNCivguITguLPguYHguJzguJkg4Lio4Lij4Li14LiC4Liy4LinDQor4LiE4Li04LiT4Lir4LmMIOC4p+C4seC4kuC4meC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4hOC4tOC4oeC5guC4reC5ieC4pyDguKvguKfguLHguIfguKrguLjguILguJnguLTguKPguLHguJnguJTguKPguYwNCivguITguLXguKEg4LmA4Lil4LmI4Liy4Lin4LiI4Li14Lio4Liy4Liq4LiV4Lij4LmMDQor4LiE4Li24LiB4Lik4LiX4LiY4Li04LmMIOC4reC4suC4o+C4teC4m+C4geC4o+C4k+C5jA0KK+C4hOC4uOC4k+C4meC5ieC4reC4hyDguJ7guLHguJLguJnguLLguJnguLLguKPguLHguIHguKnguYwNCivguITguLjguJPguLLguIHguKPguJPguYwg4Lin4Li04LmA4Lio4Lip4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMDQor4LiE4Li44LihIOC4muC4uOC4jeC5geC4iOC4gQ0KK+C4hOC4ueC4kyDguYLguKrguKDguJPguLLguJnguLjguIHguLnguKUNCivguITguYDguJPguKgg4LiC4Liy4Lin4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LmA4LiE4LiZIOC4quC4uOC4p+C4o+C4o+C4k+C4qOC4o+C4tQ0KK+C5gOC4hOC4o+C4t+C4reC4muC4uOC4jSDguYLguKvguJXguLTguJjguLDguJnguLHguIcNCivguYDguITguKPguLfguK3guKfguKPguKPguJMg4Lio4Li04Lij4Lii4Liy4LiZ4LiZ4LiX4LmM4Lie4Li04LiZ4Li04LiIDQor4LmA4LiE4Lij4Li34Lit4Lin4Lix4Lil4Lii4LmMIOC4lOC4s+C4o+C4h+C4hOC5jOC4o+C4seC4geC4qeC5jA0KK+C5gOC4hOC4o+C4t+C4reC4p+C4seC4peC4ouC5jCDguJ7guLjguYjguKHguIrguLINCivguYDguITguKPguLfguK3guKfguLHguKXguKLguYwg4Liq4Li14LmA4Lil4Li04LioDQor4LmA4LiE4Lil4Li04LmJ4LihIOC4oOC4ueC5iOC4l+C4reC4hw0KK+C5gOC4hOC4teC4ouC4h+C4guC4p+C4seC4jSDguIjguLHguYjguJnguYDguK3guLXguYjguKLguKENCivguYDguITguYfguIEg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmB4LiE4Lil4LmJ4LinIOC5geC4lOC4h+C4lOC4tQ0KK+C5hOC4hOC4reC4ueC5iyDguYHguIvguYjguK3guLbguYnguIcNCivguYLguIbguKnguLTguJUg4Lie4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4LiH4LmI4Lin4LiH4LmA4LiL4Li14LmJ4Lii4LihIOC5geC4i+C5iOC5geC4qw0KK+C4h+C5ieC4p+C4mSDguYHguIvguYjguKXguLTguYnguKENCivguIfguYnguK0g4Liq4Li04LiZ4LiY4Li14Lij4Lig4Liy4LieDQor4LiH4Liy4Lih4LiC4LizIOC4ruC4uOC5iOC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C4h+C4suC4oeC4ieC4tOC4meC4meC5jCDguKLguLTguYnguKHguJvguKPguLDguYDguKrguKPguLTguJANCivguIfguLLguKHguJXguLIg4Liq4Liy4Lij4Liw4LmA4LiX4Li14Lii4LiZDQor4LiH4Liy4Lih4Lie4Lij4Lij4LiTIOC5geC4ouC5ieC4oeC4quC4geC4uOC4pQ0KK+C4h+C4suC4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguKLguYnguKHguIrguLfguYjguJkNCivguIfguLTguYrguKEg4LmB4LiL4LmI4LmA4Liu4LiHDQor4LmA4LiH4Li04LiZIOC5geC4geC5ieC4p+C4iuC4meC4sOC4iuC4seC4og0KK+C5gOC4h+C4tOC4meC4ouC4p+C4hyDguJnguLjguJnguJ7guJnguLHguKrguKjguLHguIHguJTguLTguYwNCivguYDguIfguYfguIEg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LmA4LiH4LmH4LiB4LiL4Li04LihIOC4leC4meC4seC4meC4l+C5jOC4ouC4uOC4l+C4mOC4p+C4h+C4qOC5jA0KK+C5gOC4h+C5h+C4geC4ruC4p+C4oiDguYHguIvguYjguIjguLbguIcNCivguYDguIfguYfguIHguYDguKXguYnguIcg4LmB4LiL4LmI4LmA4LiI4Li14Lii4LihDQor4LmC4LiH4LmJ4Lin4LmA4LiE4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC4q+C4peC4rQ0KK+C4iOC4h+C4geC4o+C4k+C5jCDguK3guLTguYjguKHguKrguIHguLjguKUNCivguIjguIfguIHguKUg4LiX4Lit4LiH4LmC4Lit4Lis4Liy4LijDQor4LiI4LiH4LiB4LilIOC4peC4suC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4h+C4geC4pSDguYHguKvguJvguKPguLDguKrguJ7guYLguIrguIQNCivguIjguIfguIHguKXguJPguLUg4LmB4Lih4LmJ4LiZ4Lir4Lih4Liy4LiiDQor4LiI4LiH4LiB4Lil4LiZ4Li1IOC4m+C4tOC5iOC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4h+C4iOC4tOC4lSDguYHguIvguYjguK3guLbguYvguIcNCivguIjguIfguIjguLTguJXguJXguYwg4Lia4Li44LiN4LiK4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4LiH4LiI4Li04LiV4LijIOC4iOC4seC4meC4l+C4p+C4tQ0KK+C4iOC4h+C4iOC4tOC4meC4leC5jCDguYDguKrguKPguLXguKPguLHguIHguKnguYwNCivguIjguIfguJTguLUg4Lia4Lix4Lin4Lia4Li54LiK4LiyDQor4LiI4LiH4LiU4Li1IOC5geC4quC4h+C5gOC4nuC4iuC4ow0KK+C4iOC4h+C4o+C4seC4gSDguYDguJXguYfguIfguK3guLPguJnguKfguKINCivguIjguIfguKPguLHguIHguKnguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiE4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4LiI4LiH4Lij4Lix4LiB4Lip4LmMIOC4nuC4seC4meC4mOC4oeC4tOC4leC4ow0KK+C4iOC4h+C4o+C4seC4geC4qeC5jCDguKvguLLguI3guKfguLjguIrguLLguJnguLjguKPguLHguIHguKnguYwNCivguIjguIfguKjguLTguKPguLQg4Lil4LmJ4Lit4LiB4Liy4LiN4LiI4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4LiI4LiH4LmA4Liu4LiHIOC5geC4i+C5iOC4meC4tOC5ieC4oQ0KK+C4iOC4leC4uOC4nuC4oyDguIHguLLguI3guIjguJnguITguKXguK3guJQNCivguIjguJXguLjguJ7guKMg4LiY4Lih4Lij4Lix4LiV4LiZ4LmMDQor4LiI4LiV4Li44Lie4LijIOC4p+C4seC4iuC4o+C4suC4meC4suC4hA0KK+C4iOC4leC4uOC4nuC4pSDguK3guLTguYjguKHguYDguIfguLTguJkNCivguIjguJXguLjguKPguIfguITguYwg4Lie4Lil4LiZ4Li04LilDQor4LiI4LiV4Li44Lij4Lie4LijIOC4quC4uOC4o+C4tOC4ouC4suC4oeC4suC4qA0KK+C4iOC4o+C4h+C4hOC5jCDguIHguKXguLTguYjguJnguKPguLfguYjguJkNCivguIjguKPguKPguKLguKPguLHguIHguKnguYwg4LiE4Li44LiT4Li44Lib4LiB4Liy4LijDQor4LiI4Lij4Lij4Lii4LiyIOC5gOC4h+C4tOC4meC4lOC4tQ0KK+C4iOC4o+C4o+C4ouC4siDguIrguLnguILguKfguLHguI0NCivguIjguKPguKPguKLguLIg4LiX4Li14Lib4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Lij4Lij4Lii4LiyIOC4m+C4seC5ieC4meC5gOC4q+C4meC5iOC4h+C5gOC4nuC4iuC4ow0KK+C4iOC4o+C4o+C4ouC4siDguKHguJPguLXguYLguIrguJXguLQNCivguIjguKPguKPguKLguLIg4LmA4Lil4Liy4Lir4LmA4Lil4Li04Lio4LiK4Lix4LiiDQor4LiI4Lij4Lij4Lii4LiyIOC5gOC4qOC4o+C4qeC4kOC4muC4uOC4leC4ow0KK+C4iOC4o+C4o+C4ouC4siDguKvguYjguKfguIfguKjguKPguLUNCivguIjguKPguKPguKLguLLguKPguLHguIHguKnguYwg4LiX4Lij4Lix4Lie4Lii4LmM4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijDQor4LiI4Lij4Lin4LiiIOC4l+C4reC4h+C4oeC4teC4m+C4seC5iOC4mQ0KK+C4iOC4o+C4p+C4ouC4nuC4oyDguIHguK3guIfguYDguJ7guYfguIcNCivguIjguKPguK3guJkg4LmC4Lib4Lij4Lii4LmA4LiI4Lij4Li04LiNDQor4LiI4Lij4Lix4LiNIOC4iOC4seC4meC4l+C4o+C5jOC4l+C4tOC4oQ0KK+C4iOC4o+C4seC4jSDguJTguLjguKXguKLguLLguKDguLTguJnguLHguJnguJfguYwNCivguIjguKPguLHguI0g4LmA4LiZ4Li14Lii4Lih4Lir4Lit4LihDQor4LiI4Lij4Lix4LiNIOC4nuC4tOC4o+C4tOC4ouC4sOC4m+C4seC4jeC4jeC4sg0KK+C4iOC4o+C4seC4jSDguKPguYnguK3guIfguILguLHguJnguYHguIHguYnguKcNCivguIjguKPguLHguI0g4Lio4Lix4LiB4LiU4Li04LmM4Liq4Lii4Liy4Lih4LiB4Li44LilDQor4LiI4Lij4Lix4LiNIOC4q+C4h+C4p+C4meC5gOC4quC4h+C4teC5iOC4ouC4oQ0KK+C4iOC4o+C4seC4jeC4jeC4siDguIjguLHguJnguJfguKPguLLguKrguLjguKfguKPguKPguJMNCivguIjguKPguLHguI3guYDguJTguIog4LiI4Liz4Lib4Liy4Lin4Lix4Lil4Lii4LmMDQor4LiI4Lij4Lix4LilIOC4iOC4tOC4o+C4qOC4suC4meC4leC5jOC4iuC4seC4og0KK+C4iOC4o+C4seC4pSDguJrguLjguJnguJnguLLguIQNCivguIjguKPguLHguKUg4Lin4Li04LmC4Lij4LiI4LiZ4LmM4Lii4Li04LmI4LiH4Lii4LiHDQor4LiI4Lij4Lix4Lil4Lij4Lix4LiV4LiZ4LmMIOC5gOC4o+C4t+C4reC4h+C4iuC4suC4leC4tA0KK+C4iOC4o+C4seC4qiDguIrguLHguKLguKHguKvguLLguKfguLHguJkNCivguIjguKPguLHguKog4Lib4Li04LmI4LiZ4LmC4Liq4Lig4LiyDQor4LiI4Lij4Lix4LiqIOC4p+C4o+C4geC4uOC4peC4lOC4s+C4o+C4hw0KK+C4iOC4o+C4seC4qiDguK3guLHguJrguJTguLjguKXguKXguLINCivguIjguKPguLHguKrguJ7guKMg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LiI4Lij4Lix4Liq4Lio4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4iuC4uOC5iOC4oQ0KK+C4iOC4o+C4seC4quC4qOC4o+C4tSDguJ7guLbguYjguIfguIHguLHguJkNCivguIjguKPguLHguKrguKjguKPguLUg4Liq4Li44LiB4Lix4LiZ4LiN4LiyDQor4LiI4Lij4Li04LiHIOC4nuC4uOC5iOC4oeC5geC4nuC4ow0KK+C4iOC4o+C4tOC4mSDguKDguLnguYjguJnguYnguK3guKINCivguIjguKPguLTguJnguJfguKPguYwg4LiB4Lil4Li04LmI4LiZ4Lih4Liw4Lil4Li0DQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4iuC5ieC4suC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguJnguLLguITguKjguKPguLXguK3guLLguKDguKPguJPguYwNCivguIjguKPguLTguJnguJfguKPguYwg4Lie4Li44LiX4LiY4Li04Liq4Liy4Lin4LiH4Lio4LmMDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC5gOC4o+C4t+C4reC4meC5geC4geC5ieC4pw0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguKrguKHguLjguKvguYzguKrguJnguJjguYwNCivguIjguKPguLTguJnguJfguKPguYwg4Lit4Li04LmI4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiI4Lij4Li04Lii4LiyIOC5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4o+C4p+C4k+C4tOC4ig0KK+C4iOC4o+C4tOC4ouC4siDguYDguIjguKPguLTguI3guKrguLTguJkNCivguIjguKPguLTguKLguLIg4LiU4Li04Lil4LiB4LmC4LiB4Lih4LilDQor4LiI4Lij4Li04Lii4LiyIOC4muC4uOC4jeC4iOC4reC4hw0KK+C4iOC4o+C4tOC4ouC4siDguYLguJ7guJjguLTguKfguLTguIrguKLguLLguJnguJnguJfguYwNCivguIjguKPguLTguKLguLIg4Lin4LiH4Lio4LmM4LiB4Li04LiI4LmA4LiI4Lij4Li04LiNDQor4LiI4Lij4Li04Lii4LiyIOC4quC4seC4h+C4p+C4suC4peC4ouC5jA0KK+C4iOC4o+C4tOC4ouC4siDguK3guIfguITguYzguKfguLLguKrguLTguI7guJDguYwNCivguIjguKPguLUg4LiV4Lij4Li14Liq4Lit4Liy4LiUDQor4LiI4Lij4Li14Lig4Lij4LiT4LmMIOC4reC4tOC4meC4l+C5geC4nuC4l+C4ouC5jA0KK+C4iOC4o+C4teC4o+C4seC4leC4meC5jCDguJ7guLTguIHguLjguKXguYHguKLguYnguKENCivguIjguKPguLjguIcg4Lie4Lij4Lir4Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Lij4Li44LiH4Lio4Lij4Li1IOC4iOC4o+C4uOC4h+C4geC4peC4tOC5iOC4mQ0KK+C4iOC4o+C4ueC4jSDguIHguLHguJnguIvguLHguJkNCivguIjguKPguLnguI0g4LiE4LiH4Lih4LiyDQor4LiI4Lij4Li54LiNIOC4iOC4teC4o+C4sOC4p+C4seC4kuC4meC4sg0KK+C4iOC4o+C4ueC4jSDguYLguIrguITguIjguLLguKPguLjguYDguJnguJXguKMNCivguIjguKPguLnguI0g4LiX4Lij4Lix4Lie4Lii4LmM4LmA4LiZ4Li34Lit4LiH4LiZ4Lit4LiHDQor4LiI4Lij4Li54LiNIOC5geC4meC4oeC5g+C4qg0KK+C4iOC4o+C4ueC4jSDguYHguJvguYnguJnguYDguKXguYfguIENCivguIjguKPguLnguI0g4LmA4Lie4LmH4LiK4Lij4LmM4LiB4Lil4Lix4LiaDQor4LiI4Lij4Li54LiNIOC4o+C4seC4geC4qeC4suC4o+C4suC4ig0KK+C4iOC4o+C4ueC4jSDguKfguKPguKPguJjguJnguLDguKrguLTguJkNCivguIjguKPguLnguI0g4Liq4Lij4LmJ4Lit4Lii4Liq4Lin4LmI4Liy4LiHDQor4LiI4Lij4Li54LiNIOC5geC4quC4meC4o+C4suC4ig0KK+C4iOC4o+C4ueC4jSDguYDguK3guLfguYnguK3guYDguJ7guLTguYjguKHguYDguIHguLXguKLguKPguJXguLQNCivguIjguKPguLnguI3guKXguLHguIHguKnguJPguYwg4Lit4Lix4LiH4LiE4LmM4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4LiI4Lij4Li54LiN4Lio4Lij4Li1IOC4qOC4uOC4guC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4iOC4o+C4ueC4jeC5guC4o+C4iOC4meC5jCDguInguLTguKHguKrguLPguKPguLLguI0NCivguIjguKfguIfguIjguLHguJnguJfguKPguYwg4LmB4LiB4LmJ4Lin4Lie4Li24LmI4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiI4Lin4LiZIOC4lOC5ieC4p+C4h+C5gOC4h+C4tOC4mQ0KK+C4iOC4p+C4meC4n+C4suC4hyDguJXguLHguYnguIfguKrguKHguJrguLnguKPguJPguYwNCivguIjguK3guJkg4Lin4Li04Lij4Li04Lii4Liw4Lit4Lij4Lij4LiW4Lin4Li44LiS4Li0DQor4LiI4Lit4Lih4Lid4Liy4LiHIOC4quC4seC4oeC4l+C4o+C4suC4og0KK+C4iOC4reC4q+C5jOC4mSDguYHguK3guKXguYHguKXguJnguYHguKMNCivguIjguYrguLAg4LmB4LiL4LmI4LiX4LmJ4Liy4LinDQor4LiI4Lix4LiB4Lij4LiB4Lij4Li04LiKIOC4o+C4uOC4iOC4reC4uOC4rOC4suC4ow0KK+C4iOC4seC4geC4o+C4geC4pOC4qSDguIrguLjguJnguIHguK3guIfguK7guK0NCivguIjguLHguIHguKPguIHguKTguKnguJPguYwg4LiZ4Li44Liq4Liq4LiV4Li0DQor4LiI4Lix4LiB4Lij4LiB4Lik4Lip4LiT4LmMIOC4quC4tOC4l+C4mOC4suC4iOC4suC4o+C4p+C4seC4kuC4meC5jA0KK+C4iOC4seC4geC4o+C4iuC4seC4oiDguYDguJ7guYfguIrguKPguYDguKHguYfguJTguYPguKvguI3guYgNCivguIjguLHguIHguKPguJ7guIfguKjguYwg4LmA4Lil4Li04Lio4Lih4LiT4Li14Lie4Lix4LiZ4LiY4LmMDQor4LiI4Lix4LiB4Lij4Lie4LiH4Lip4LmMIOC4quC4uOC4oOC4suC4ng0KK+C4iOC4seC4geC4o+C4nuC4seC4meC4mOC5jCDguIHguYnguK3guJnguJzguLnguIENCivguIjguLHguIHguKPguJ7guLHguJnguJjguYwg4LmA4Lil4Li04Lio4LiW4Lin4Li04Lil4Lig4Lix4LiB4LiU4Li1DQor4LiI4Lix4LiB4Lij4Lin4Liy4LilIOC4geC4s+C4peC4seC4h+C4qOC4ow0KK+C4iOC4seC4geC4o+C4suC4p+C4uOC4mCDguYHguIjguYnguIfguYDguKfguIrguInguLLguKINCivguIjguLHguIHguKPguLUg4LmA4LiC4Li34LmI4Lit4LiZ4LiY4Lij4Lij4LihDQor4LiI4Lix4LiB4Lik4Lip4LiT4LmMIOC4pOC4l+C4mOC4tOC5jOC5gOC4peC4tOC4qA0KK+C4iOC4seC5ieC4hyDguKHguJTguJfguK3guIcNCivguIjguLHguJnguIjguJnguLIg4Liq4Lih4Liq4Li34LiaDQor4LiI4Lix4LiZ4LiU4Li1IOC4reC4tOC4h+C4quC4sg0KK+C4iOC4seC4meC4l+C4meC4siDguIHguKHguKXguJfguLTguJ7guKLguYzguJXguKPguLDguIHguLnguKUNCivguIjguLHguJnguJfguJnguLIg4LiH4Liy4Lih4LmA4Lil4Li04Lio4Lin4LiH4Lio4LmMDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4iuC4tOC4lOC4iuC4reC4mg0KK+C4iOC4seC4meC4l+C4meC4siDguJXguLHguJnguJXguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguIjguLHguJnguJfguJnguLIg4LiZ4Li44LmJ4Lii4LmA4Lic4Li34Lit4LiBDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4nuC4seC4kuC4meC4iOC4tOC4leC4p+C4tOC5hOC4pQ0KK+C4iOC4seC4meC4l+C4meC4siDguKPguK3guJTguKfguLTguIjguLTguJXguKMNCivguIjguLHguJnguJfguJnguLIg4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmM4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4quC4suC4ouC4geC4o+C4sOC4quC4uOC4mQ0KK+C4iOC4seC4meC4l+C4meC4siDguYLguKvguKHguKfguLLguJnguLTguIoNCivguIjguLHguJnguJfguJnguLUg4LiI4Lix4LiZ4LiX4Lij4Liy4Lij4Lih4Lii4LmMDQor4LiI4Lix4LiZ4LiX4LiZ4Li1IOC4quC4tOC4h+C4q+C5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4seC4meC4l+C4ouC4siDguJXguKPguK3guIfguJXguKPguLDguIHguLLguKMNCivguIjguLHguJnguJfguKPguYzguIHguLPguYDguKvguJnguLTguJQg4LmA4LiI4Lij4Li04LiN4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiI4Li04Lij4LiyIOC5gOC4iuC4t+C5ieC4reC4iOC4uOC5ieC4og0KK+C4iOC4seC4meC4l+C4o+C5jOC4ieC4suC4oiDguIHguLjguKXguK3guJnguLHguJnguJXguYwNCivguIjguLHguJnguJfguKPguYzguInguLLguKIg4Lie4LiH4Lip4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiU4Li1IOC4geC4uOC4jeC4iOC4ow0KK+C4iOC4seC4meC4l+C4o+C5jOC4l+C4o+C4siDguJrguLnguYjguKrguLLguKXguLUNCivguIjguLHguJnguJfguKPguYzguJfguLTguJ7guKLguYwg4Lin4Li44LiS4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiZ4Li04Lig4LiyIOC5gOC4geC4o+C5geC4ruC4oQ0KK+C4iOC4seC4meC4l+C4o+C5jOC4nuC4tOC4oSDguITguKXguYnguLLguKLguJnguLLguIQNCivguIjguLHguJnguJfguKPguYzguKPguLHguJXguJnguYwg4LiW4LiZ4Lit4Lih4Lie4Lil4LiE4Lil4Lix4LiHDQor4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Lij4Li1IOC4quC4p+C4ouC4o+C4ueC4mw0KK+C4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4lOC4siDguKXguLLguKDguKfguLjguJLguLTguKPguLHguJXguJnguYwNCivguIjguLHguJnguJfguKPguLIg4LiB4Li04LiI4LiB4Lix4LiN4LiI4LiZ4Liy4Liq4LiZ4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC5geC4i+C5iOC4geC4teC5iQ0KK+C4iOC4seC4meC4l+C4o+C4siDguJrguLjguI3guJfguLUNCivguIjguLHguJnguJfguKPguLIg4LmC4Lij4LiI4LiZ4LmM4Lie4Lil4Liy4LmA4Liq4LiW4Li14Lii4LijDQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC4quC4uOC4guC4quC4tOC4h+C4q+C5jA0KK+C4iOC4seC4meC4l+C4o+C4suC4oOC4siDguJ7guLHguJnguJjguLjguYzguKrguKHguJrguLjguI0NCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4LiB4Lil4Li14Lia4Lia4Lix4LinDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4iOC4seC4meC4quC4s+C5guC4o+C4hw0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguYHguIvguYjguKLguLTguJQNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4LiY4LiZ4Lie4LiH4Lio4LmM4LiZ4Li44LmC4Lij4LiI4LiZ4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4m+C4suC4meC5gOC4l+C4qA0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguKHguLLguJXguKPguKrguLTguIfguKvguYwNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4Lin4LiH4Lio4LmM4LiK4Liz4LiZ4Liy4LiNDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4quC4seC4jeC4jeC4sOC4p+C4tQ0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguK3guKHguKPguKrguKHguJrguLnguKPguJPguYzguKjguLHguIHguJTguLTguYwNCivguIjguLHguJnguJfguKPguYzguYHguJTguIcg4Lic4Lil4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmC4Lij4LiI4LiZ4LmMIOC4quC4luC4tOC4leC4p+C4tOC4o+C4tOC4ouC4p+C4h+C4qOC5jA0KK+C4iOC4seC4meC4l+C4o+C5jCDguYLguIrguITguKrguLjguKPguLTguKLguLDguKrguIHguLjguKUNCivguIjguLHguJnguJfguKPguYwg4Lie4Li04Lil4LiyDQor4LiI4Lix4LiZ4LiX4Lij4LmMIOC4quC4geC4uOC4k+C4sg0KK+C4iOC4seC4meC4l+C4siDguYDguIHguKXguLXguYnguKLguIfguJ7guKPguYnguK3guKENCivguIjguLHguJnguJfguLTguKHguLIg4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4LmC4Lil4LihDQor4LiI4Lix4LiZ4LiX4Li04Lih4LiyIOC4k+C4sOC4o+C4tOC4meC4l+C4o+C5jOC4n+C4uQ0KK+C4iOC4seC4meC4l+C4tOC4oeC4siDguJ7guLTguJnguJfguLjguKfguLHguJLguJnguLANCivguIjguLHguJnguJfguLTguKHguLIg4Lio4Lij4Li14LmE4LiB4Lij4Lin4Lix4LiK4LijDQor4LiI4Lix4LiZ4LiX4Li04Lij4LiyIOC4geC4o+C4sOC4muC4p+C4meC4ouC4uOC4l+C4mA0KK+C4iOC4seC4meC4l+C4tOC4o+C4siDguKrguLjguILguKrguIHguLjguKXguJnguLUNCivguIjguLHguJnguKfguLTguYTguKUg4LiK4Li04LiV4LiZ4Li44LiK4LiV4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Lix4LmI4Lin4LiE4Li44LiTIOC5geC4i+C5iOC5gOC4i+C4teC4ouC4pw0KK+C4iOC4suC4leC4uOC4o+C4h+C4hOC5jCDguKrguLjguKPguLTguKLguLLguKjguKjguLTguJkNCivguIjguLLguKHguIjguLjguKPguLUg4Lio4Lij4Li14Lir4Li04Lij4Lix4LiN4Lij4Lix4Lio4Lih4Li1DQor4LiI4Liy4Lih4Lij4Li1IOC5gOC4q+C4o+C4teC4ouC4jeC4reC4seC4oeC4nuC4ow0KK+C4iOC4suC4o+C4tOC4k+C4tSDguKrguLjguITguJnguJjguIrguLLguJXguLQNCivguIjguLLguKPguLXguKLguYzguJ7guKMg4Lie4Li44LmI4Lih4LiZ4LmJ4Liz4LmA4Lii4LmH4LiZDQor4LiI4Liy4Lij4Li24LiBIOC4iuC4ueC4meC4uOC4ig0KK+C4iOC4suC4o+C4tuC4gSDguYDguKfguJfguKfguLHguJLguJnguLLguJ7guLTguJrguLnguKUNCivguIjguLLguKPguLgg4Lin4Li04LiK4Liy4LmE4LiX4LiiDQor4LiI4Liy4Lij4Li44LiT4Li1IOC4iOC4sOC5guC4o+C4hOC4o+C4seC4oeC4ouC5jA0KK+C4iOC4suC4o+C4uOC4k+C4tSDguJnguLLguITguJnguLLguKENCivguIjguLLguKPguLjguJPguLUg4Lii4Li44LiB4LiV4Li04Lij4Lix4LiV4LiZ4LmMDQor4LiI4Liy4Lij4Li44LiT4Li1IOC5gOC4quC4p+C4leC5hOC4reC4ouC4suC4o+C4suC4oQ0KK+C4iOC4suC4o+C4uOC4meC4seC4meC4l+C5jCDguJrguLjguI3guIjguLHguJnguJfguKPguYwNCivguIjguLLguKPguLjguJ7guKMg4Lio4Li04Lij4Li04LiX4Lix4LiV4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiI4Liy4Lij4Li44Lig4LiyIOC5geC4quC4oeC4guC4suC4pw0KK+C4iOC4suC4o+C4uOC4peC4seC4geC4qeC4k+C5jCDguJjguKPguKPguKHguJjguLLguKMNCivguIjguLLguKPguLjguKfguKPguKPguJMg4LiI4LiH4LmA4Lil4Li04Lio4Lin4LiT4Li04LiK4LiB4Li44LilDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5guC4reC5iuC4pw0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguJnguLTguKPguLHguJnguJTguKPguJ7guKTguIHguKnguYwNCivguIjguLLguKPguLjguKfguKPguKPguJMg4Lig4Li04Lij4Lih4Lii4LmM4LmA4LiI4Li14Lii4LinDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC4p+C4seC4kuC4meC4quC4tOC4h+C4q+C4sA0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguYDguKrguKPguLXguYDguIjguKPguLTguI3guKrguJbguLTguJXguKLguYwNCivguIjguLLguKPguLjguKfguLHguJLguJnguYwg4LiI4Liy4Lij4Li44Lin4Lix4LiS4LiZ4LiwDQor4LiI4Liy4Lij4Li44LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4hOC4suC4lOC4quC4meC4tOC4lw0KK+C4iOC4s+C4meC4hyDguYLguIHguKfguLTguJfguK3guLTguKrguKPguLTguKLguLANCivguIjguLPguJnguIcg4Lij4Lix4LiH4Liq4Li04LiB4Li44LilDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4geC4tOC4leC4leC4tOC4o+C4seC4leC4meC4reC4uOC4lOC4oQ0KK+C4iOC4s+C4meC4h+C4hOC5jCDguIjguKPguKPguKLguLLguKfguKPguKfguIfguKjguYwNCivguIjguLPguJnguIfguITguYwg4LiK4Li04LiV4LiI4LmJ4Lit4LiiDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4l+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iOC4s+C4meC4h+C4hOC5jCDguJrguLHguKfguJvguKPguLDguJTguLTguKnguJDguYwNCivguIjguLPguJnguIfguITguYwg4Lie4Lin4LiH4Lil4Liw4Lit4Lit4LiHDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4oeC4seC4h+C4geC4o+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4iOC4s+C4meC4h+C4hOC5jCDguYDguKXguYfguIHguJTguLLguKPguLINCivguIjguLPguJnguIfguITguYwg4Liq4Lij4Liw4LiX4Lit4LiHDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4q+C4meC4ueC4oOC4seC4geC4lOC4tQ0KK+C4iOC4s+C4meC4h+C4meC4suC4jyDguIjguLTguJXguJXguIHguLTguIgNCivguIjguLPguJnguK3guIcg4Lie4Lin4LiH4Lie4Li44LiSDQor4LiI4Liz4Lib4LiyIOC5guC4geC4qeC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4iOC4s+C4m+C4siDguJ7guLjguKHguKHguLINCivguIjguLPguJvguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4LiE4LizDQor4LiI4Liz4Lib4Li1IOC5gOC4m+C5i+C4suC4l+C4reC4hw0KK+C4iOC4s+C4m+C4tSDguKrguLTguIfguKvguJ7guLHguJnguJjguLjguYwNCivguIjguLPguKPguLHguI0g4Lit4Lij4Lij4LiW4Liq4Li44LiZ4LiX4LijDQor4LiI4Liz4Lij4Lix4LiqIOC5gOC4h+C4tOC4meC4qOC4tOC4o+C4tA0KK+C4iOC4s+C4o+C4seC4qiDguYTguIrguKLguKjguLTguKPguLTguJnguJfguKPguYwNCivguIjguLPguKPguLHguKog4LiX4Lix4Lia4LmA4LiI4Lij4Li04LiNDQor4LiI4Liz4Lij4Lix4LiqIOC4muC4uOC4jeC4m+C4o+C4sOC4quC4ng0KK+C4iOC4s+C4o+C4seC4qiDguJ7guLHguJnguJjguLjguYzguYHguIHguYnguKcNCivguIjguLPguKPguLHguKog4Lih4Li14LiE4Lix4Lil4LmB4Lil4Liw4Lir4LmMDQor4LiI4Liz4Lij4Lix4LiqIOC5gOC4peC5ieC4suC4iuC4seC4ouC4p+C4seC4kuC4meC5jA0KK+C4iOC4s+C4o+C4seC4qiDguKrguIfguKfguJnguJ7guIfguKnguYwNCivguIjguLPguKPguLHguKog4LmB4Liq4LiH4Lij4Li54LiI4Li1DQor4LiI4Liz4Lij4Lix4LiqIOC4reC4tOC4meC4qOC4o+C4tQ0KK+C4iOC4s+C4o+C4ueC4jSDguITguLjguYnguKHguIrguLjguYjguKENCivguIjguLPguKPguLnguI0g4Lib4Li04LiV4Liw4LmC4Lir4LiV4Lij4LiwDQor4LiI4Liz4Lij4Li54LiNIOC4quC4h+C4p+C4meC4qOC4seC4geC4lOC4tOC5jOC5guC4ouC4mOC4tOC4mQ0KK+C4iOC4s+C4peC4reC4hyDguIHguK3guIfguYHguKrguIfguKjguKPguLUNCivguIjguLPguKXguK3guIcg4LmB4LiC4LmA4LiC4Li14Lii4LinDQor4LiI4Liz4Lil4Lit4LiHIOC4iOC4suC4o+C4uOC4iuC4seC4ouC4meC4tOC4p+C4seC4kuC4meC5jA0KK+C4iOC4s+C4peC4reC4hyDguIrguLfguYjguJnguJrguLPguKPguLjguIcNCivguIjguLPguKXguK3guIcg4LiX4LmJ4Lin4Lih4LmA4LiI4Lij4Li04LiNDQor4LiI4Liz4Lil4Lit4LiHIOC4meC5ieC4reC4ouC4reC4tOC4meC4l+C4o+C5jA0KK+C4iOC4s+C4peC4reC4hyDguJvguKXguLfguYnguKHguYDguJvguKPguKENCivguIjguLPguKXguK3guIcg4Lie4Li44LiS4Lir4Lii4Lin4LiBDQor4LiI4Liz4Lil4Lit4LiHIOC5gOC4oeC4mOC4suC4p+C4tOC4o+C4tOC4ouC4sOC4qOC4tOC4peC4m+C5jA0KK+C4iOC4s+C4peC4reC4hyDguYTguKXguYnguKPguLHguIHguKnguLINCivguIjguLPguKXguK3guIcg4Lio4Li04Lil4Liy4Lie4Lix4LiZ4LiY4LmMDQor4LiI4Liz4Lil4Lit4LiHIOC4quC4uOC4guC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4iOC4s+C4peC4reC4hyDguK3guJnguLHguJnguJXguJzguKUNCivguIjguLPguKXguK3guIfguKXguLHguIHguKnguJPguYwg4Liq4Lix4LiN4LiN4Liw4LmA4LiU4LiK4Liy4LiB4Li44LilDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC4geC4reC4h+C4muC4uOC4muC4nOC4sg0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguIjguIfguYTguJ7guIjguLTguJXguKMNCivguIjguLPguYDguJnguLXguKLguKMg4LmB4LiK4LmI4Lih4LiK4LmJ4Lit4LiiDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC5gOC4l+C4qOC5gOC4nuC5h+C4jQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguJvguKPguLDguKDguLLguKPguLHguJXguJnguYwNCivguIjguLPguYDguJnguLXguKLguKMg4LmA4Lie4LmH4LiH4LmA4LiI4Lij4Li04LiNDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC4o+C4seC4kOC4p+C4tOC5gOC4qOC4qQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguKjguKPguLXguKfguIfguKnguYwNCivguIjguLPguYDguJnguLXguKLguKMg4Liq4Li44LiU4Lio4Li04Lij4Li0DQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC4reC4teC4lOC4tQ0KK+C4iOC4s+C5gOC4o+C4tOC4jSDguITguLPguKrguK3guJkNCivguIjguLPguYDguKPguLTguI0g4Lia4Li44LiN4LiX4Lit4LiH4Liq4Li44LiCDQor4LiI4Liz4LmA4Lij4Li04LiNIOC5gOC4peC4tOC4qOC5gOC4iOC4o+C4tOC4jeC4ouC4h+C4hOC5jA0KK+C4iOC4s+C5gOC4o+C4tOC4jSDguK3guLHguJnguJjguLTguKPguKoNCivguIjguLPguYDguKPguLXguKLguIcg4LiU4Li04Lip4LiQ4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Liz4LmA4Lij4Li14Lii4LiHIOC4quC4uOC4p+C4o+C4o+C4k+C5guC4kw0KK+C4iOC4tOC4h+C4peC5ieC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIjguLTguJPguKvguJjguLLguJnguYwg4Lia4Li44LiN4LmE4LiB4Lij4Liq4Li04LiX4LiY4Li04LmMDQor4LiI4Li04LiV4LiB4Lij4Lit4LiHIOC4reC4tOC4meC4l+C4o+C4reC4uOC4lOC4oQ0KK+C4iOC4tOC4leC4leC5jOC4muC4o+C4o+C4ouC4hyDguIjguLTguJXguJXguYzguJrguKPguKPguKLguIcNCivguIjguLTguJXguJXguKPguLIg4Lie4Li44LiB4LiB4Liw4Lih4Liy4LiZDQor4LiI4Li04LiV4LiV4LmM4Liq4Lih4LijIOC4reC4leC4tOC5gOC4o+C4geC4suC4meC4meC4l+C5jA0KK+C4iOC4tOC4leC4leC4tCDguYLguIrguJXguLTguKPguLHguJXguJnguLDguKjguLTguKPguLQNCivguIjguLTguJXguJXguLQg4Lin4Li04LiI4Li04LiV4Lij4LiK4Lil4LiB4Liy4LiZ4LiV4LmMDQor4LiI4Li04LiV4LiV4Li04LiZ4Lix4LiZ4LiX4LmMIOC4iOC4tOC4meC4lOC4suC4q+C4o+C4sg0KK+C4iOC4tOC4leC4leC4tOC4oeC4siDguYDguIHguKnguKHguYLguIHguYDguKHguKgNCivguIjguLTguJXguJXguLTguKHguLIg4LmA4LiX4Lin4Li14Lil4Liy4Lig4Lij4LiT4LmMDQor4LiI4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4peC4tOC4qOC4muC4uOC4jeC4ouC4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4leC4leC4tOC4oeC4siDguK3guLTguKrguKPguLDguIHguLnguKUNCivguIjguLTguJXguJXguYwg4LiK4Li34LmI4LiZ4Lig4Lix4LiB4LiU4Li1DQor4LiI4Li04LiV4LiV4LmMIOC4q+C4oeC4p+C4lOC4quC4hw0KK+C4iOC4tOC4leC4m+C4o+C4sOC5hOC4niDguIHguJnguLTguKnguJDguLLguKLguJkNCivguIjguLTguJXguKMg4LiV4Lix4LiZ4LiV4Li04LiZ4Li04LiB4LijDQor4LiI4Li04LiV4Lij4LiB4LijIOC4qOC4o+C4teC4q+C4tOC4o+C4seC4jQ0KK+C4iOC4tOC4leC4o+C4oOC4kyDguKPguLHguJXguJnguKHguIfguITguKXguIHguLjguKUNCivguIjguLTguJXguKPguKXguJTguLIg4LmA4Lir4Lij4Lix4LiN4LiT4Li44LiB4Lij4LiT4LmMDQor4LiI4Li04LiV4Lij4LiyIOC4geC4o+C4sOC5geC4quC4geC4uOC4qOC4pQ0KK+C4iOC4tOC4leC4o+C4siDguIjguLTguJXguJXguYzguKvguLLguI0NCivguIjguLTguJXguKPguLIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiI4Li04LiV4Lij4LiyIOC4mOC4meC4suC4geC4ueC4o+C5gOC4oeC4mOC4sg0KK+C4iOC4tOC4leC4o+C4siDguJ7guKTguJLguLTguKfguJfguLHguI3guI3guLkNCivguIjguLTguJXguKPguLIg4LmA4Lii4Li14LmI4Lii4Lih4LiJ4Lin4Li1DQor4LiI4Li04LiV4Lij4LiyIOC4p+C4seC4kuC4meC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4iOC4tOC4leC4o+C4siDguKrguLHguJnguJfguJnguLXguK3guJnguLjguIHguLnguKUNCivguIjguLTguJXguKPguLIg4Lit4Lix4LiE4Lij4Lie4Lix4LiZ4LiY4LmMDQor4LiI4Li04LiV4Lij4Liy4Lig4Lij4LiT4LmMIOC4meC4suC4oeC4iOC4seC4geC4ow0KK+C4iOC4tOC4leC4o+C4tSDguKfguIfguKjguYzguKPguLHguJXguJnguLLguKfguLTguJkNCivguIjguLTguJXguKfguJTguLUg4Lin4Li04Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMDQor4LiI4Li04LiV4Lit4Liy4Lij4Li14Lii4LmMIOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC5iOC4reC4quC4uOC4gg0KK+C4iOC4tOC4mSDguK3guKLguLnguYjguKrguJrguLLguKINCivguIjguLTguJnguJTguLIg4LmB4LiB4LmJ4Lin4Liq4LiB4Lil4LiT4Li1DQor4LiI4Li04LiZ4LiU4LiyIOC4iOC4seC4meC4l+C4o+C5jOC4oOC4ueC4oeC4tA0KK+C4iOC4tOC4meC4lOC4siDguInguYjguLPguIjguLTguJXguKPguIrguLfguYjguJkNCivguIjguLTguJnguJTguLIg4LmB4LiL4LmI4Lir4Lil4Li1DQor4LiI4Li04LiZ4LiU4LiyIOC4l+C4o+C4seC4nuC4ouC5jOC4iOC4tOC4meC4lOC4suC4p+C4h+C4qOC5jA0KK+C4iOC4tOC4meC4lOC4siDguJnguLLguKHguJfguK3guIcNCivguIjguLTguJnguJTguLIg4Lib4Lix4LiN4LiN4Liy4Lin4LiK4Li04Lij4LiK4Lix4LiiDQor4LiI4Li04LiZ4LiU4LiyIOC4nuC4seC4meC4meC4seC4l+C4mOC4tQ0KK+C4iOC4tOC4meC4lOC4siDguKHguLLguIHguJ7guLjguYjguKENCivguIjguLTguJnguJTguLIg4Lik4LiB4Lip4LmM4Lib4Li04Lii4Liw4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiI4Li04LiZ4LiU4LiyIOC4p+C4tOC4p+C4seC4kuC4meC5jOC4nuC4meC4iuC4suC4leC4tA0KK+C4iOC4tOC4meC4lOC4siDguKrguKfguJnguJfguKfguLUNCivguIjguLTguJnguJTguLIg4LmA4Liq4Liy4Lij4LmM4LmA4LiB4Li04LiUDQor4LiI4Li04LiZ4LiU4LiyIOC4reC4seC4qOC4p+C5gOC4oeC4mOC4suC4nuC4ow0KK+C4iOC4tOC4meC4lOC4suC4nuC4oyDguKjguKPguLXguKrguLjguILguKrguLHguJnguJXguYwNCivguIjguLTguJnguJTguLLguKPguLHguJXguJnguYwg4LmA4LiU4LiK4Liw4Lij4Lix4LiB4Lip4LmM4Lie4LiH4Lip4LmMDQor4LiI4Li04LiZ4LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4reC4oeC4o+C4leC4suC4meC4meC4l+C5jA0KK+C4iOC4tOC4meC4leC4meC4siDguIHguKXguLTguYjguJnguKvguK3guKENCivguIjguLTguJnguJXguJnguLIg4LmA4LiB4LiV4Li44Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4guC5h+C4oeC4meC4suC4hA0KK+C4iOC4tOC4meC4leC4meC4siDguIjguKPguKPguKLguLLguJ7guLLguJPguLTguIrguKLguYwNCivguIjguLTguJnguJXguJnguLIg4LiI4Li14Lij4Liw4Lie4Lix4LiS4LiZ4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4iuC4oeC4oeC4suC4peC4tQ0KK+C4iOC4tOC4meC4leC4meC4siDguYDguIrguLTguI3guKjguLTguKPguLQNCivguIjguLTguJnguJXguJnguLIg4LmB4LiL4LmI4Lit4LmL4Lit4LiHDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4lOC5guC4iuC4nuC4pQ0KK+C4iOC4tOC4meC4leC4meC4siDguJbguLLguKfguKPguKfguLTguKfguLHguJLguJnguJrguLjguJXguKMNCivguIjguLTguJnguJXguJnguLIg4LmA4LiX4Li04LiU4LiX4Li54Lil4LiB4Li44LilDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4meC4suC4hOC4m+C4meC4hOC4sw0KK+C4iOC4tOC4meC4leC4meC4siDguJrguLjguI3guJvguKPguLDguKrguIfguITguYwNCivguIjguLTguJnguJXguJnguLIg4Lib4Liy4LiZ4LiB4Lil4Liy4LiHDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4nuC4o+C4q+C4oeC4nuC4tOC4iuC4tOC4lQ0KK+C4iOC4tOC4meC4leC4meC4siDguJ7guLjguYjguKHguKjguLTguKPguLQNCivguIjguLTguJnguJXguJnguLIg4Lih4Lik4LiE4Liq4LiZ4LiY4Li0DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5guC4ouC4mOC4suC4quC4oeC4uOC4l+C4ow0KK+C4iOC4tOC4meC4leC4meC4siDguKXguJTguLLguKfguLHguKXguKLguYwNCivguIjguLTguJnguJXguJnguLIg4Lin4LiH4Lio4LmM4LiK4Li04LiZ4Lio4Lij4Li1DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4p+C4tOC4iOC4tOC4leC4o+C4qOC4o+C4teC4p+C4seC4kuC4meC5jA0KK+C4iOC4tOC4meC4leC4meC4siDguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguIjguLTguJnguJXguJnguLIg4Liq4LiW4Li04LiV4Lij4Liy4Lii4Li44LiYDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4quC4uOC4guC4l+C4p+C4tQ0KK+C4iOC4tOC4meC4leC4meC4siDguYDguKrguJnguLLguJ7guKPguKvguKENCivguIjguLTguJnguJXguJnguLIg4Lir4Liy4LmA4Lij4Li34Lit4LiZ4LiK4Li14LieDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4reC4suC4oOC4suC4meC4seC4meC4l+C5jA0KK+C4iOC4tOC4meC4leC4meC4suC4jyDguJnguLTguJXguLTguKrguLLguKPguKjguLTguKXguJvguYwNCivguIjguLTguJnguJXguYwg4LiE4LiH4LiX4Lit4LiHDQor4LiI4Li04LiZ4Liy4Lin4Lij4Lij4LiTIOC5gOC4ruC4reC4o+C5jOC5geC4oeC4mQ0KK+C4iOC4tOC4oeC4ruC4hyDguYHguIvguYjguYDguK7guYjguIcNCivguIjguLTguKPguIrguLHguKIg4Lir4Lin4Lix4LiH4Liq4Liw4LiU4Lin4LiBDQor4LiI4Li04Lij4LiZ4Lix4LiZ4LiX4LmMIOC4oeC4teC4p+C4suC4quC4meC4sg0KK+C4iOC4tOC4o+C4nuC4h+C4qeC5jCDguJ7guLHguJnguJjguYLguITguJXguKPguYwNCivguIjguLTguKPguJ7guKMg4LmA4Lic4Li34LmI4Lit4LiZ4LiZ4LmJ4Lit4LiiDQor4LiI4Li04Lij4Lie4Lij4Lij4LiTIOC4meC4tOC4o+C4seC4leC4tOC4qOC4seC4og0KK+C4iOC4tOC4o+C4nuC4seC4kuC4meC5jCDguKPguLHguJXguJnguJvguLTguJPguJHguLANCivguIjguLTguKPguKDguLHguJfguKMg4LmA4LiX4Lin4Li04LiZ4LiX4Lij4Lig4Lix4LiB4LiV4Li0DQor4LiI4Li04Lij4Lig4LiyIOC4oeC4q+C4suC4nuC4pQ0KK+C4iOC4tOC4o+C4ouC4uOC4l+C4mCDguK3guJTguLTguYDguJfguJ7guJnguKPguLLguIfguIHguLnguKMNCivguIjguLTguKPguKfguKPguKPguJMg4LiZ4Li04Lih4Li04LiV4Lio4Li04Lij4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li04Lij4Lin4Lix4LiI4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4qOC4seC4geC4lOC4tOC5jA0KK+C4iOC4tOC4o+C4p+C4seC4kuC4meC5jCDguJfguLjguKHguKHguLLguJnguJnguJfguYwNCivguIjguLTguKPguKfguLHguJLguJnguYwg4Liq4Li44LiZ4LiX4Lin4Lix4LiS4LmC4Lij4LiU4LihDQor4LiI4Li04Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4meC4geC4geC4seC4k+C4keC4nuC4h+C4qeC5jA0KK+C4iOC4tOC4o+C4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLDguYTguJ7guIHguKPguYDguIHguLXguKLguKPguJXguLQNCivguIjguLTguKPguKjguLHguIHguJTguLTguYwg4Liq4Lix4LiH4LiC4LiY4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Li04Lij4LiwIOC4iOC4teC4o+C4oOC4seC4l+C4o+C5jA0KK+C4iOC4tOC4o+C4sCDguKjguLTguKXguJvguIrguLPguJnguLLguI0NCivguIjguLTguKPguLDguJnguLHguJnguJXguYwg4LmB4LiU4LiH4Lie4Lix4LiZ4LiY4LmMDQor4LiI4Li04Lij4Liw4Lie4LijIOC4geC4uOC4peC5gOC4nuC4iuC4o+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4iOC4tOC4o+C4sOC4nuC4seC4meC4mOC5jCDguIjguLTguJnguKPguLHguJXguJnguYwNCivguIjguLTguKPguLDguKDguLIg4Lij4Lix4LiV4LiZ4Liy4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiI4Li04Lij4Liw4Lin4Lix4LiS4LiZ4LmMIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iOC4tOC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguYDguJTguYjguJnguJTguKfguIcNCivguIjguLTguKPguLDguKjguLHguIHguJTguLTguYwg4Lio4Li44Lig4Lia4Lix4LiT4LiR4Li04LiV4LiV4LiyDQor4LiI4Li04Lij4Lix4LiK4Lii4LiyIOC5geC4ouC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4tOC4o+C4siDguIHguKHguKXguKfguLLguJfguLTguJkNCivguIjguLTguKPguLLguJnguJnguJfguYwg4Lio4Lij4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4LiI4Li04Lij4Liy4Lie4LijIOC4iuC4ueC4quC4geC4uOC4pQ0KK+C4iOC4tOC4o+C4suC4nuC4oyDguJvguLLguJnguYDguK3guIENCivguIjguLTguKPguLLguJ7guKMg4LmA4Lij4LmI4LiH4Lij4Lix4LiUDQor4LiI4Li04Lij4Liy4Lie4LijIOC4quC4uOC4p+C4tOC4meC4l+C4p+C4h+C4qOC5jA0KK+C4iOC4tOC4o+C4suC4nuC4seC4meC4mOC4uOC5jCDguKfguLHguJLguJnguLINCivguIjguLTguKPguLLguKDguKPguJPguYwg4LiI4Lix4LiZ4LiX4Lij4Lij4Lix4Lio4Lih4Li1DQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4kyDguYTguIrguYLguKINCivguIjguLTguKPguLLguKDguKPguJPguYwg4Lia4Li54Lij4LiT4Liq4Li04LiH4LiE4LmMDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4ouC4sOC4reC4meC4seC4meC4leC5jA0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguKfguLTguYLguKPguIjguJnguKfguLHguJLguJnguYwNCivguIjguLTguKPguLLguKDguKPguJPguYwg4Liq4Li44LiU4Lii4Lit4LiUDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4reC4uOC4muC4peC4iuC4suC4leC4tA0KK+C4iOC4tOC4o+C4suC4oOC4siDguJ7guYjguKfguIfguKrguLPguYDguJnguLXguKLguIcNCivguIjguLTguKPguLLguKLguLgg4LiE4Li44LmJ4Lih4Lib4Li04LiV4Li0DQor4LiI4Li04Lij4Liy4Lij4Lix4LiKIOC4hOC4iuC4oOC4ueC4mOC4ow0KK+C4iOC4tOC4o+C4suC4p+C4o+C4o+C4kyDguIHguLHguJnguJfguLLguIvguLLguKcNCivguIjguLTguKPguLLguKfguKPguKPguJMg4Liq4Lih4Lie4LiH4Lip4LmMDQor4LiI4Li04Lij4Liy4Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4seC4meC4l+C4o+C4suC4meC4meC4l+C5jA0KK+C4iOC4tOC4peC4suC4p+C4seC4peC4ouC5jCDguYDguKvguLXguKLguIfguYHguIHguYnguKcNCivguIjguLTguYLguKPguIjguJnguYwg4LmE4Lie4LiR4Li54Lij4Lii4LmMDQor4LiI4Li14Lij4LiK4Lix4LiiIOC4leC4seC4h+C4hOC4o+C4seC4ig0KK+C4iOC4teC4o+C4nuC4oyDguITguLjguYnguKHguITguKPguK3guIfguJjguKPguKPguKENCivguIjguLXguKPguJ7guLHguJnguJjguYwg4Lit4Li04LiZ4LiX4LmA4LiqDQor4LiI4Li14Lij4Lin4Lij4Lij4LiTIOC5geC4iOC5iOC4oeC4guC4sw0KK+C4iOC4teC4o+C4p+C4seC4kuC4meC5jCDguYTguIrguKLguKfguLTguJfguKLguYzguKfguLTguKfguLHguJLguJnguYwNCivguIjguLXguKPguKjguLHguIHguJTguLTguYwg4LmA4LiJ4Lil4Li04Lih4LmA4Lil4Li04Lio4Lib4Lix4LiN4LiN4LiyDQor4LiI4Li14Lij4LiwIOC4kyDguJ7guLHguJfguKXguLjguIcNCivguIjguLXguKPguLDguJ7guKMg4Lil4Liy4Lig4Liy4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li14Lij4Liw4Lin4Lij4Lij4LiTIOC4nuC4o+C4oeC5gOC4nuC5h+C4hw0KK+C4iOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguKHguLLguKXguLHguKLguKfguIfguKjguYwNCivguIjguLXguKPguLLguJ7guKMg4Lil4Li04LmJ4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4LiI4Li14Lij4Liy4Lin4Li44LiS4Li0IOC4l+C4o+C4p+C4h+C5geC4quC4p+C4hw0KK+C4iOC4teC5iSDguKvguIcg4LmA4LiI4Li04LmJ4LiHDQor4LiI4Li34Lit4LmA4LiX4LmJ4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4iOC4uOC5iOC4h+C4q+C4ouC4hyDguYHguIvguYjguKXguLXguYkNCivguIjguLjguJHguLIg4LmA4LiK4Li04LiH4LiK4Liy4LiNDQor4LiI4Li44LiR4Liy4LiX4Li04LieIOC4p+C4uOC4kuC4tOC4mOC4o+C4o+C4oeC4quC4uOC4gg0KK+C4iOC4uOC4keC4suC4l+C4tOC4nuC4ouC5jCDguJ7guLjguJfguJjguKPguLHguIHguKnguLINCivguIjguLjguJHguLLguJjguLTguJsg4LiJ4Li04Lih4LiB4Li44LilDQor4LiI4Li44LiR4Liy4Lig4Lij4LiT4LmMIOC4mOC4meC4qOC4seC4geC4lOC4tOC5jOC5guC4quC4oOC4kw0KK+C4iOC4uOC4keC4suC4oeC4suC4qCDguYHguIHguYnguKfguKHguIfguITguKUNCivguIjguLjguJHguLLguKHguLLguKgg4LiV4LiZ4Lix4LiZ4LiX4LmM4Lii4Li44LiX4LiY4Lin4LiH4Lio4LmMDQor4LiI4Li44LiR4Liy4Lih4Liy4LioIOC4nuC4h+C4qeC5jOC4qOC4tOC4o+C4tA0KK+C4iOC4uOC4keC4suC4oeC4suC4qCDguKfguLHguIrguKPguYDguKHguIbguLTguJnguJfguKPguYwNCivguIjguLjguJHguLLguKHguLLguKgg4LmA4Lir4Lil4Li34Lit4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4geC4uOC4peC4ouC4uOC4l+C4mOC5jA0KK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jCDguJDguLTguJXguLTguJvguLjguI3guI3guLINCivguIjguLjguJHguLLguKPguLHguJXguJnguYwg4Lie4Lil4Liy4Lik4LiX4LiY4Li04LmMDQor4LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMIOC4p+C4tOC4peC4seC4ouC4geC4o+C4p+C4lA0KK+C4iOC4uOC4keC4suC4peC4seC4geC4qeC4k+C5jCDguJbguLLguKfguKPguIjguLTguJXguKMNCivguIjguLjguJXguLTguJ7guKUg4LmA4Liq4LiV4Liw4Lin4Li14Lij4LiwDQor4LiI4Li44LiZ4Lix4LiZ4LiX4LmMIOC4p+C4h+C4qOC5jOC4reC4suC4o+C4tQ0KK+C4iOC4uOC4oeC4nuC4jyDguIHguLLguI3guIjguJnguIHguLPguJjguJkNCivguIjguLjguKHguJ7guKUg4LiI4Lix4LiZ4LiX4Lij4Lio4Lij4Li14LmA4LiB4Lip4LijDQor4LiI4Li44Lih4Lie4LilIOC5geC4meC4p+C4quC4geC4pQ0KK+C4iOC4uOC4oeC4nuC4pSDguKXguLHguKHguJ7guLLguKDguLTguKfguLHguJLguJnguYwNCivguIjguLjguKHguJ7guKUg4Lir4Lil4LmI4Lih4LiX4Lit4LiHDQor4LiI4Li44LmJ4Lii4Lij4LmJ4Liy4LiHIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4iOC4uOC4o+C4tOC4meC4l+C4tOC4nuC4ouC5jCDguKrguKHguJ7guLHguJnguJjguYzguKrguLLguJfguLTguJXguKLguYwNCivguIjguLjguKPguLUg4Lih4LiH4LiE4Lil4Lil4LiwDQor4LiI4Li44Lij4Li14Lie4LijIOC4iuC4seC5ieC4p+C4iuC4seC5ieC4mQ0KK+C4iOC4uOC4o+C4teC4ouC5jCDguIjguLHguYjguJnguIjguLjguYnguKINCivguIjguLjguKPguLXguKPguLHguJXguJnguYwg4LmA4LiE4Lij4Li34Lit4Liq4Li44Lin4Lij4Lij4LiTDQor4LiI4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4p+C4h+C4qOC5jOC4iOC4seC4meC4l+C4o+C4sg0KK+C4iOC4uOC4pSDguJfguLTguJ7guKfguKPguJnguLTguIENCivguIjguLjguKXguJ7guIfguKnguYwg4LiTIOC4meC5iOC4suC4mQ0KK+C4iOC4uOC4peC4qOC4tOC4o+C4tCDguKrguLjguKfguKPguKPguJPguKjguLTguKPguLQNCivguIjguLjguKrguLTguJkg4Liq4Li44LiY4Liy4LiK4Lix4Lii4Lie4LijDQor4LiI4Li44Lis4Liy4Lie4LijIOC4guC4ouC4seC4meC4geC4suC4o+C4meC4suC4p+C4tQ0KK+C4iOC4uOC4rOC4suC4o+C4seC4leC4meC5jCDguYHguIvguYjguYDguJrguYkNCivguIjguLjguKzguLLguKXguLHguIHguKnguJPguYwg4LiZ4Liy4LiH4Liq4Lin4LiiDQor4LiI4Li44LmE4LijIOC4iOC4h+C4m+C4o+C4sOC4iuC4suC4p+C4seC4kuC4meC5jA0KK+C4iOC4uOC5hOC4oyDguJ7guLTguYDguKjguKnguIHguLjguKUNCivguIjguLjguYTguKPguJ7guKMg4Lio4Li04Lil4Lib4Lie4LiH4Lip4LmMDQor4LiI4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4uOC5hOC4o+C4o+C4seC4leC4meC5jCDguKHguKvguLLguK3guLTguJfguJjguLTguJTguKUNCivguIjguLjguYTguKPguKPguLHguJXguJnguYwg4Lir4Liy4LiN4LmE4LiK4LmC4Lii4Lig4Li54Lih4Li0DQor4LiI4Li44LmE4Lij4Lio4Lij4Li1IOC4oeC4teC4geC4seC4h+C4p+C4suC4pQ0KK+C4iOC4uSDguYHguIvguYjguYPguIrguYkNCivguIjguLnguYDguITguLXguYnguKLguIcg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4LiI4LmA4LijIOC4jeC4suC4k+C4sOC4iuC4seC4og0KK+C4iOC5gOC4oyDguKrguLTguKPguLTguKrguLjguJfguJjguLQNCivguYDguIjguJTguYfguIgg4Lit4Lij4Lij4LiW4Lir4Li04Lij4Lix4LiNDQor4LmA4LiI4LiV4LiZ4LiyIOC4o+C4seC4geC4qeC5jOC4geC4s+C5gOC4meC4tOC4lA0KK+C5gOC4iOC4leC4meC5jCDguJ7guKPguKvguKHguYDguIjguKPguLTguI0NCivguYDguIjguJkg4LiB4Liy4Lia4LmB4LiB4LmJ4LinDQor4LmA4LiI4LiZIOC4reC4tOC4l+C4mOC4tOC4oOC4tOC4jeC5guC4jQ0KK+C5gOC4iOC4meC4iOC4tOC4o+C4siDguJjguKPguKPguKHguKfguKPguKPguJjguJnguLANCivguYDguIjguJnguJnguLXguYgg4LiW4Liy4Lin4Lij4LiB4Li44LilDQor4LmA4LiI4Lih4Liq4LmM4Lit4Liy4LmA4LiY4Lit4Lij4LmMIOC4ouC4reC4o+C5jOC4ig0KK+C5gOC4iOC4o+C4tOC4jSDguYDguIHguKnguJXguKPguKrguLjguKfguKPguKPguJMNCivguYDguIjguKPguLTguI0g4LiE4Li44Lin4Li04LiZ4LiX4Lij4LmM4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4LiI4Lij4Li04LiNIOC4iOC4tOC4o+C4sOC4quC4luC4tOC4leC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jSDguIrguLHguKLguIHguLTguJXguJXguLQNCivguYDguIjguKPguLTguI0g4LmB4LiL4LmI4LiB4Lin4LiUDQor4LmA4LiI4Lij4Li04LiNIOC4leC4seC5ieC4h+C4muC4uOC4jeC4pOC4l+C4mOC4tOC5jOC4pOC4l+C4seC4og0KK+C5gOC4iOC4o+C4tOC4jSDguJfguK3guIfguKHguLINCivguYDguIjguKPguLTguI0g4LiZ4Lin4Lin4Lix4LiS4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4LmA4LiI4Lij4Li04LiNIOC4muC4uOC4qeC4muC4o+C4o+C4kw0KK+C5gOC4iOC4o+C4tOC4jSDguJzguLLguJnguLTguKUNCivguYDguIjguKPguLTguI0g4LmA4Lie4Li14Lii4Lij4LmA4LiI4Lij4Li04LiNDQor4LmA4LiI4Lij4Li04LiNIOC5hOC4oeC4lOC4tOC4meC4i+C4sg0KK+C5gOC4iOC4o+C4tOC4jSDguYDguKPguLfguK3guIfguKjguLHguIHguJTguLTguYwNCivguYDguIjguKPguLTguI0g4Lin4Liq4Lix4LiZ4LiV4Lii4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LmA4LiI4Lij4Li04LiNIOC4qOC4o+C4teC4p+C4h+C4qOC5jOC4qeC4sg0KK+C5gOC4iOC4o+C4tOC4jSDguKrguKHguJ7guKMNCivguYDguIjguKPguLTguI0g4Liq4Li44LiC4Lit4Liy4LiB4Liy4LioDQor4LmA4LiI4Lij4Li04LiNIOC5guC4quC4quC4uOC4lA0KK+C5gOC4iOC4o+C4tOC4jSDguK3guLTguJnguJfguKPguYDguIHguKnguJXguKMNCivguYDguIjguKPguLTguI3guIrguLHguKIg4LiB4Liy4LiN4LiI4LiZ4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiIOC4nuC4tOC4o+C4tOC4ouC4sOC4m+C4o+C4suC4geC4suC4ow0KK+C5gOC4iOC4o+C4tOC4jeC4nuC4h+C4qOC5jCDguKrguLjguILguILguLUNCivguYDguIjguKPguLTguI3guKPguLHguIHguKnguYwg4Lib4Lil4Li34LmJ4Lih4LiI4Li04LiV4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LmA4LiI4Lij4Li04LiN4Lio4Lij4Li1IOC5guC4geC4oeC4peC4pOC4l+C4mOC4tOC5jA0KK+C5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tSDguKDguLnguYjguJvguKPguLDguJTguLTguKnguJDguYwNCivguYDguIjguKPguLTguI3guKjguLHguIHguJTguLTguYwg4LiB4Lix4LiZ4LiV4LiK4Li54LmA4Lin4Liq4Lio4Li04Lij4Li0DQor4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCIOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4iOC4o+C4teC4ouC4hyDguJ7guLjguIHguIHguLDguKHguLLguJkNCivguYDguIjguKnguI7guLIg4LiK4LiZ4Li04LiZ4LiX4Lij4Lil4Li14Lil4LiyDQor4LmA4LiI4Lip4LiO4LiyIOC4muC4uOC4jeC4p+C4tOC4iOC4tOC4leC4ow0KK+C5gOC4iOC4qeC4juC4siDguYDguKPguLfguK3guIfguKvguLTguKPguLHguI0NCivguYDguIjguKnguI7guLIg4LmB4Liq4LiH4Liq4Li44Lie4Lij4Lij4LiTDQor4LmA4LiI4Lip4LiO4LmMIOC4reC4meC4o+C4o+C4huC4oeC4h+C4hOC4pQ0KK+C5gOC4iOC4reC4o+C4teC5iOC5gOC4ouC4mSDguKLguLnguYDguIrguJkNCivguYDguIjguLTguKEg4LmA4LiU4LiK4LiU4Liz4Lij4LiH4LiE4LmMDQor4LmA4LiI4Li04LmJ4LiHIOC5gOC4iOC4tOC5ieC4h+C4reC4tOC4hw0KK+C5gOC4iOC4teC4ouC4mSDguITguIrguLLguIrguLHguKINCivguYDguIjguLXguKLguKEg4LmE4LiK4Lii4Lij4Liy4LiKDQor4LmA4LiI4Li14Lii4Lih4LiI4Li04LiVIOC5geC4geC5ieC4p+C4meC5ieC4reC4og0KK+C5gOC4iOC4teC4ouC4oeC4iOC4tOC4leC4oyDguYDguIrguKLguIrguLfguYjguJnguIjguLTguJXguKMNCivguYDguIjguLXguKLguKHguYPguIgg4LiX4Liw4Lil4Li34LitDQor4LmA4LiI4Li14Lii4Lij4LiZ4Lix4LiiIOC4p+C4h+C4qeC4suC4geC4suC4qA0KK+C5gOC4iOC4teC4ouC5gOC4hOC4teC4ouC4geC5gOC4peC5ieC4hyDguYHguIvguYjguIHguLHguIcNCivguYDguIjguLfguK0g4LiX4Lix4Lia4Lio4Lij4Li1DQor4LmA4LiI4Li34LitIOC4quC4uOC4p+C4o+C4o+C4k+C5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4iOC4t+C4reC5gOC4iOC4o+C4tOC4jSDguKrguJbguLLguJvguJnguLLguJnguJnguJfguYwNCivguYDguIjguYfguIfguYDguIHguLXguYrguKLguIEg4LmB4LiL4LmI4Lil4Li14LmJDQor4LmB4LiI4LmI4LihIOC5gOC4geC4leC4uOC4quC4tOC4h+C4q+C5jOC4meC5ieC4reC4og0KK+C5geC4iOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jCDguJvguKPguLLguIrguI3guLLguKfguLTguKPguLTguKLguLANCivguYHguIjguYjguKHguKjguKPguLUg4Lit4Li04LiX4LiY4Li04LiB4Li44LilDQor4LmB4LiI4LmL4LinIOC4geC4teC4o+C4leC4tOC5hOC4geC4o+C4meC4meC4l+C5jA0KK+C5g+C4iCDguIjguLLguJXguLjguKfguLTguJfguKLguYwNCivguYPguIjguJfguLTguJ7guKLguYwg4LiL4Lix4LiHDQor4LmD4LiI4Lit4Liy4Lij4Li1IOC4p+C4tOC4o+C4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4ieC4geC4suC4iCDguK3guLLguKPguLXguYDguKrguKfguJUNCivguInguKXguKfguKIg4LiB4Lix4Lil4Lii4Liy4LiT4Lih4Li04LiV4LijDQor4LiJ4Lil4Lin4LiiIOC4iOC4ueC4keC4sOC4nuC4pQ0KK+C4ieC4peC4p+C4oiDguJXguKPguLXguYDguJ7guYfguIrguKPguYwNCivguInguKXguKfguKIg4Lia4Li44LiN4Lih4LiyDQor4LiJ4Lil4Lin4LiiIOC4nuC4seC4meC4mOC5jOC4guC4sOC4p+C4h+C4qeC5jA0KK+C4ieC4peC4p+C4oiDguYHguKLguYnguKHguIHguKXguLXguJoNCivguInguKXguKfguKIg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LiyDQor4LiJ4Lil4Lin4LiiIOC5geC4quC4h+C4reC4uOC4l+C4seC4ouC4iOC4suC4oeC4ow0KK+C4ieC4peC4p+C4ouC4peC4seC4geC4qeC4k+C5jCDguYDguKPguLfguK3guIfguIjguLjguJXguLTguYLguJ7guJjguLTguYzguJ7guLLguJkNCivguInguKXguK3guIcg4LiI4Liy4Lij4Li44Lie4Lix4LiS4LiZ4LiB4Li44LilDQor4LiJ4Lil4Lit4LiHIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4mQ0KK+C4ieC4peC4reC4hyDguYPguJrguYDguIfguLTguJkNCivguInguKXguK3guIcg4Lih4Li54Lil4LmA4LiI4Lij4Li04LiNDQor4LiJ4Lil4Lit4LiHIOC4qOC4suC4quC4leC4o+C4quC4uOC4gg0KK+C4ieC4peC4reC4hyDguK3guIjguKXguJ7guIfguKjguYwNCivguInguKXguK3guIfguJ7guKMg4Lio4Lix4LiB4LiU4Li04LmM4LmA4LiI4Lij4Li04LiNDQor4LiJ4Lil4Lit4LihIOC5geC4quC4h+C4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4ieC4peC4suC4lCDguJvguLLguJnguYDguIjguKPguLTguI0NCivguInguKXguLLguJQg4Lit4LiZ4Lix4LiZ4LiV4LiyDQor4LiJ4Lin4Li1IOC4iOC4seC4meC4l+C4o+C4guC4sw0KK+C4ieC4p+C4tSDguYDguJnguLfguYnguK3guJnguLTguYjguKHguJbguLLguKfguKMNCivguInguKfguLUg4Lin4Lix4LiS4LiZ4Lin4Li04LiB4Lii4LmM4LiB4Li04LiIDQor4LiJ4Lin4Li1IOC4reC4suC4o+C4ouC4suC4h+C4geC4ueC4ow0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguILguIjguKPguJvguKPguLDguKjguLLguKrguJnguYwNCivguInguKfguLXguKfguKPguKPguJMg4LmB4LiI4LmJ4LiH4Lih4LiT4Li1DQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4leC4seC4meC4leC4tOC4nuC4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguJnguKPguLLguJ7guLTguJfguLHguIHguKnguYwNCivguInguKfguLXguKfguKPguKPguJMg4Lib4Liy4LiZ4LiU4LizDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4oOC4tOC4jeC4jeC4suC4mOC4tOC4meC4seC4meC4l+C5jA0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguKXguLLguKDguYDguIjguLXguKLguKENCivguInguKfguLXguKfguKPguKPguJMg4Lio4Lij4Liq4Lix4LiH4LiC4LmM4LiX4Lit4LiHDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4quC4tOC4l+C4mOC4tOC4nuC4o+C4mOC4meC4geC4uOC4pQ0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguYDguKvguKXguYjguLLguJ7guLTguJfguKLguLINCivguInguKfguLXguYTguKUg4Lij4Lit4LiU4Lie4Lil4Lit4LiiDQor4LiJ4Lit4LmJ4Lit4LiZIOC4meC4reC4geC4geC4o+C4sOC5guC4l+C4gQ0KK+C4ieC4reC5ieC4suC4mSDguKfguLjguJHguJLguLTguIHguKPguKPguKHguKPguLHguIHguKnguLINCivguInguLHguJDguJ7guKUg4LiI4Lij4Lix4Liq4Lih4LiH4LiE4Lil4LmA4LiI4Lij4Li04LiNDQor4LiJ4Lix4LiV4LijIOC4oOC4suC4hOC4suC4geC4tOC4iA0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguYHguIHguYnguKfguYDguIHguJXguLgNCivguInguLHguJXguKPguIrguLHguKIg4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC5gOC4lOC4iuC4suC4qOC4seC4geC4lOC4tOC5jOC4nuC4o+C4o+C4kw0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguJjguKPguKPguKHguKrguKfguKLguJTguLUNCivguInguLHguJXguKPguIrguLHguKIg4Lie4LiI4LiZ4Liy4LiB4Liz4LiY4LijDQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC5geC4ouC5ieC4oeC5geC4quC4h+C4l+C4reC4hw0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguKfguLHguKXguKXguLTguKrguLjguJUNCivguInguLHguJXguKPguIrguLHguKIg4Liq4Li04Lij4Li04Lib4Li54LiK4LiB4LiwDQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC4reC4seC4qOC4p+C4m+C4leC4tOC4meC4suC4hOC4tOC4meC4l+C4o+C5jA0KK+C4ieC4seC4leC4o+C4l+C4tOC4nuC4ouC5jCDguKrguKfguLHguKrguJTguLTguYTguIrguKINCivguInguLHguJXguKPguKHguJnguLIg4Lih4LiH4LiE4Lil4LiB4Li04LiI4Lig4Lix4LiB4LiU4Li1DQor4LiJ4Lix4LiV4Lij4LiyIOC4iuC4uOC4oeC4oOC4ueC4l+C4reC4hw0KK+C4ieC4seC4leC4o+C5hOC4iuC4oiDguK3guLLguJPguLLguKfguKPguKPguJMNCivguInguLHguJnguJfguJnguLIg4LiI4Lix4LiH4Lio4Lij4Li14Lii4Lin4LiH4Lio4LmMDQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4l+C4reC4h+C4mOC4ueC4mw0KK+C4ieC4seC4meC4l+C4meC4siDguJ7guLTguKHguKXguKrguKHguJrguLHguJXguLQNCivguInguLHguJnguJfguJnguLIg4Lin4Lix4LiK4Lij4LmA4Liq4Lin4Li1DQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4q+C4h+C4qeC5jOC5gOC4ieC4tOC4lOC4ieC4seC4meC4l+C5jA0KK+C4ieC4seC4meC4l+C5jOC4quC4tOC4meC4tSDguJfguLTguJ7guKjguKMNCivguInguLHguYjguJnguIHguLTguYrguKEg4LmB4LiL4LmI4LiJ4Lix4LmI4LiZDQor4LiJ4Liy4LiiIOC4quC4tOC4h+C4q+C5jOC5g+C4q+C4jeC5iA0KK+C4ieC4tOC4meC4geC4teC5ieC4n+C4reC4hyDguYHguIvguYjguInguLTguJkNCivguYDguInguJnguLXguKLguJkg4LmA4Liq4LiZ4Lin4LiH4Lip4LmMDQor4LmA4LiJ4Lil4LiiIOC4quC4oeC4tOC4leC4sOC4oeC4suC4mQ0KK+C5gOC4ieC4peC4siDguIjguLTguKPguLDguIrguLXguKfguLDguJnguLHguJnguJfguYwNCivguYDguInguKXguLIg4LmA4Lib4Li14LmK4Lii4Liw4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LmA4LiJ4Lil4LiyIOC4p+C4teC4o+C4sOC4geC4uOC4pQ0KK+C5gOC4ieC4peC4suC4qOC4o+C4tSDguJfguKPguKPguJ7guKfguLLguJfguLTguJkNCivguYDguInguKXguLTguKEg4LiC4Liz4Lib4Lix4LiN4LiN4LiyDQor4LmA4LiJ4Lil4Li04LihIOC5geC4iOC5iOC4oeC4iOC4s+C4o+C4seC4qg0KK+C5gOC4ieC4peC4tOC4oSDguJTguLXguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguInguKXguLTguKEg4LiY4Liy4LiU4Liy4Lib4Lij4Liw4LiU4Lix4Lia4Liq4LiB4Li44LilDQor4LmA4LiJ4Lil4Li04LihIOC4m+C4seC4jeC4jeC4sg0KK+C5gOC4ieC4peC4tOC4oSDguJ7guLTguKrguLTguKnguJDguYzguKrguLHguIfguIbguIHguLLguKMNCivguYDguInguKXguLTguKEg4Lii4LiH4LiE4LmM4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiDQor4LmA4LiJ4Lil4Li04LihIOC4peC4t+C4reC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C5gOC4ieC4peC4tOC4oSDguKjguLTguKPguLTguKfguIfguKjguYwNCivguYDguInguKXguLTguKEg4Liq4Li44LiC4Li44Lih4Lie4Liy4LiZ4Li04LiKDQor4LmA4LiJ4Lil4Li04LihIOC4reC4h+C4hOC5jOC4qOC4uOC4peC4tQ0KK+C5gOC4ieC4peC4tOC4oeC4guC4p+C4seC4jSDguIrguLnguITguLMNCivguYDguInguKXguLTguKHguIrguLHguKIg4LiI4Lix4LiZ4LiX4Lij4Lin4Li04Lij4Li44LiIDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4reC4mQ0KK+C5gOC4ieC4peC4tOC4oeC4iuC4seC4oiDguYLguJ7guJjguLTguYzguJfguK3guIcNCivguYDguInguKXguLTguKHguIrguLHguKIg4Lio4Lij4Li14Lit4Li04LiZ4LiX4LiZ4LiZ4LiX4LmMDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4reC4uOC4lOC4oeC4o+C4seC4leC4meC5jA0KK+C5gOC4ieC4peC4tOC4oeC4nuC4h+C4qeC5jCDguKHguKvguLLguKfguLLguJPguLTguIrguKLguYzguKfguIfguKjguYwNCivguYDguInguKXguLTguKHguJ7guKMg4LmA4Lin4LiK4LmA4LiJ4Lil4Li04Lih4LiI4Li04LiV4LijDQor4LmA4LiJ4Lil4Li04Lih4Lie4LilIOC4kOC4tOC4leC4tOC4meC4seC4meC4l+C5jOC4luC4suC4p+C4ow0KK+C5gOC4ieC4peC4tOC4oeC4nuC4pSDguJ7guLLguJnguLTguIrguKLguLLguJnguLjguKfguLHguJLguJnguYwNCivguYDguInguKXguLTguKHguJ7guKUg4Liq4Lij4LmJ4Liy4LiH4Liq4Lih4Liq4Li44LiC4Liq4LiB4Li44LilDQor4LmA4LiJ4Lil4Li04Lih4Lih4Liy4LiVIOC4peC4tOC4oeC4m+C4tOC4iuC4seC4ouC4nuC4suC4meC4tOC4ig0KK+C5gOC4ieC4peC4tOC4oeC4p+C4uOC4mCDguIvguLfguYjguK3guJXguKPguIcNCivguYDguInguKXguLTguKHguKjguKPguLUg4LmA4LiX4Li14Lii4Lih4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lio4Lij4Li1IOC4p+C4tOC4p+C4seC4kuC4meC5jOC4p+C4suC4meC4tOC4iuC4geC4uOC4pQ0KK+C5gOC4ieC4peC4tOC4oeC4qOC4seC4geC4lOC4tOC5jCDguITguIfguYDguKPguLfguK3guIfguKjguKPguLUNCivguYDguInguKXguLTguKHguKjguLHguIHguJTguLTguYwg4Lij4Liw4Lia4Li04Lil4Lin4LiH4Lio4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lit4Lix4LiR4LiS4LmMIOC4geC5ieC4reC4meC4l+C4reC4hw0KK+C5gOC4ieC4peC4tOC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKrguLHguJnguJXguLTguJ7guLHguJnguJjguLjguYwNCivguYDguInguKXguLXguKLguKcg4LiB4Lil4Li04LmI4LiZ4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4iOC4h+C4m+C4o+C4sOC4quC4oeC4quC4tOC4mQ0KK+C5gOC4ieC4peC4teC4ouC4pyDguYHguIvguYjguYDguJXguLXguKINCivguYDguInguKXguLXguKLguKcg4LmE4LiX4Lii4LmA4LiI4Li34LitDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4m+C4o+C4tuC4geC4qeC4sg0KK+C5gOC4ieC4peC4teC4ouC4pyDguYDguJ7guIrguKPguILguLMNCivguYDguInguKXguLXguKLguKcg4Lij4Lit4LiU4LmA4LiU4LiKDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4qOC4o+C4teC4q+C4suC4p+C4h+C4qOC5jA0KK+C5gOC4ieC4peC4teC4ouC4pyDguYHguKrguIfguIHguLTguJXguJXguLTguYTguJ7guJrguLnguKXguKLguYwNCivguYDguInguKXguLXguKLguKcg4LmA4Lit4Li14LmI4Lii4Lih4Lii4Lit4LiU4Liq4Li04LiZDQor4LmA4LiJ4Lin4Li14Lii4LiZIOC4hOC4s+C5gOC4meC4leC4ow0KK+C5gOC4ieC4tOC4lOC5guC4ieC4oSDguKrguLjguIHguIHguKrguLHguIfguITguYwNCivguYHguInguKXguYnguKEg4LiB4Lij4Liw4LiW4Li04LiZ4LiX4Lit4LiHDQor4LmB4LiJ4Lil4LmJ4LihIOC5guC4iuC4leC4tOC4iuC5iOC4p+C4hw0KK+C5geC4ieC4peC5ieC4oSDguJzguLnguIHguJ7guLHguJnguJjguYwNCivguYHguInguKXguYnguKEg4Lin4Li04LiK4Li44Lib4Lij4Liw4Lig4LiyDQor4LmB4LiJ4Lil4LmJ4LihIOC4reC4uOC4qOC4uOC4oOC4o+C4seC4leC4meC5jA0KK+C5guC4ieC4oeC4ouC4h+C4hOC5jCDguJnguLLguITguJnguLbguIENCivguYLguInguKXguIcg4LiB4Lil4Lix4LmI4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4LmE4LiJ4LiZIOC4nuC4peC4teC4guC4seC4meC4mOC5jA0KK+C5hOC4ieC5hOC4pSDguIHguLjguKXguKDguLHguJfguKPguYzguYHguKrguIfguJfguK3guIcNCivguIog4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiK4LiN4Liy4LiZ4Li1IOC4leC4o+C4teC4l+C4tOC4nuC4ouC4suC4h+C4geC4ueC4ow0KK+C4iuC4juC4suC4nuC4oyDguKHguLHguJnguKLguLLguIHguLjguKUNCivguIrguI7guLLguKfguLHguKXguKLguYwg4Lij4Li34LmI4LiZ4Lin4LiH4Lip4LiyDQor4LiK4LiT4Li04LiV4LiyIOC4hOC4h+C4quC4suC4ouC4l+C4reC4h+C4hOC4sw0KK+C4iuC4lOC4iuC5ieC4reC4oiDguJ7guKfguIfguKPguK3guJQNCivguIrguJnguIHguJ7guKMg4LmA4Lij4Li34Lit4LiH4LiB4Li04LiI4Lib4LiB4Lij4LiT4LmMDQor4LiK4LiZ4Lih4LmM4LiZ4Li04Lig4LiyIOC4meC4suC4hOC4ouC5ieC4reC4og0KK+C4iuC4meC4sCDguIjguLHguJnguJfguKPguYzguIHguKPguLDguIjguYjguLLguIcNCivguIrguJnguLAg4LmA4LiX4Lie4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4LiK4LiZ4LiwIOC5gOC4ouC4teC5iOC4ouC4h+C4geC4oeC4peC4quC4tOC4h+C4q+C5jA0KK+C4iuC4meC4sCDguKvguJnguLjguJnguKDguLHguIHguJTguLUNCivguIrguJnguLDguIrguLHguKIg4Lig4Li54LmI4Lih4Li14LmA4LiI4Lij4Li04LiNDQor4LiK4LiZ4Lix4LiK4LiT4LmMIOC4iOC4seC4meC4l+C4o+C5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4meC4seC4leC4luC5jCDguIHguLTguJXguJXguLTguKfguLTguYLguKPguIjguJnguYwNCivguIrguJnguLLguI3guKfguLHguJUg4LiI4Li04LiV4Lij4LmM4Lig4Li04Lij4Lih4Lii4LmM4Lio4Lij4Li1DQor4LiK4LiZ4Liy4Lie4LijIOC4iuC4ueC4l+C4tOC4oQ0KK+C4iuC4meC4tOC4geC4suC4meC4leC5jCDguJfguLLguITguLPguKHguLINCivguIrguJnguLTguJTguLIg4LiE4Lij4Li44LiR4LiX4Lit4LiHDQor4LiK4LiZ4Li04LiU4LiyIOC4leC4suC4k+C4sOC4quC4uOC4lQ0KK+C4iuC4meC4tOC4lOC4siDguYLguKDguYTguITguKjguKfguKPguKPguKLguYwNCivguIrguJnguLTguJTguLIg4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4LiK4LiZ4Li04LiVIOC4p+C4tOC4l+C4ouC4suC4geC4o+C5guC4geC4oeC4pQ0KK+C4iuC4meC4tOC4meC4l+C4oyDguKjguKPguLXguKPguLHguJXguJnguYzguKDguLTguI3guYLguI0NCivguIrguJnguLTguJnguJfguKPguYwg4LiK4Li14Lin4LmC4LiK4LiE4LiK4Lix4LiiDQor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMIOC4m+C4tOC4ouC4sOC4p+C4suC4k+C4tOC4iuC5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4meC4tOC4meC4l+C4o+C5jCDguKfguLTguYDguKjguKnguJTguLHguYnguJkNCivguIrguJnguLTguJnguJfguKPguYwg4Lit4Lix4Lio4Lin4LiY4LmA4Lij4LioDQor4LiK4LiZ4Li44Lin4Lij4Lij4LiTIOC4leC4o+C4teC5gOC4geC4qeC4oQ0KK+C4iuC4oSDguYHguIvguYjguJXguLHguJkNCivguIrguKEg4Liq4Li14LmB4LiI4LmI4LihDQor4LiK4Lih4LiZ4Liy4LiEIOC5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4iuC4oeC4nuC4pSDguKrguLTguKPguLTguKrguLHguKHguJ7guLHguJnguJjguYzguYDguIjguKPguLTguI0NCivguIrguKHguJ7guLnguJnguLjguJcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiK4Lih4Lig4Li5IOC4iuC4oeC4oOC4ueC4meC4uOC4ig0KK+C4iuC4oeC4oOC4ueC5iCDguJ7guKPguKHguJ7guLnguJnguJ7guLDguYDguJnguLINCivguIrguKHguLHguKLguJ7guKMg4LiE4Liz4Lir4Lit4Lih4LiB4Li44LilDQor4LiK4Lii4LiX4Lix4LiVIOC4o+C4leC4tOC4o+C4oeC4ouC5jOC4nuC4seC4meC4mOC5jA0KK+C4iuC4ouC4seC4meC4leC5jCDguYLguJ7guJjguLTguYzguJfguK3guIcNCivguIrguKLguLLguKfguLjguJgg4LiX4Li04Lin4LmA4Liq4LiW4Li14Lii4LijDQor4LiK4Lij4Lix4LiV4LiZ4LmMIOC4leC5iOC4reC4reC5iOC4reC4mQ0KK+C4iuC4o+C4tOC4meC4l+C4o+C5jCDguIHguJnguIHguJ7guLTguJ7guLHguJLguJnguYzguKfguIfguKjguYwNCivguIrguKPguLTguJnguJfguKPguYwg4Lia4Lix4Lin4Lit4LmI4Lit4LiZDQor4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4p+C4meC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4pOC4l+C4mOC4tOC5jCDguKHguLXguKrguLTguJfguJjguLTguYwNCivguIrguKXguJTguLIg4Lib4Li04Lii4LiT4Lij4LiH4LiE4LmM4LmC4Lij4LiI4LiZ4LmMDQor4LiK4Lil4LiY4LiZ4Lix4LiZ4LiX4LmMIOC5gOC4reC4t+C5ieC4reC4m+C4o+C4sOC4geC4tOC4iOC4quC4tOC4o+C4tA0KK+C4iuC4peC4mOC4tOC4iuC4siDguYLguIrguJXguLTguIrguYjguKfguIcNCivguIrguKXguJjguLTguIrguLIg4Lih4Lir4Liy4LiB4Li04LiI4Lio4Li04Lij4Li0DQor4LiK4Lil4LiY4Li04LiU4LiyIOC4mOC4o+C4o+C4oeC4p+C4seC4kuC4meC5jOC4p+C4tOC4oeC4pQ0KK+C4iuC4peC4meC4tOC4iuC4siDguYDguIjguKPguLTguI3guKrguKHguJrguLHguJXguLQNCivguIrguKXguKXguJTguLIg4LiI4LiH4Lib4LiV4Li04Lii4Lix4LiV4LiV4LmMDQor4LiK4Lil4Lil4LiU4LiyIOC4qOC4tOC4o+C4tOC4nuC4h+C4qOC5jOC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4iuC4peC4rSDguIHguKPguLXguIrguKfguJQNCivguIrguKXguK0g4LiH4Liy4Lih4Lik4LiX4LiY4Li04LmMDQor4LiK4Lil4LitIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4iuC4peC4rSDguJnguLTguYjguKHguJfguK3guIcNCivguIrguKXguK0g4Lie4LiH4Lip4LmM4Lig4Lih4LijDQor4LiK4Lil4LitIOC4oeC4q+C4suC4reC4oeC4o+C5gOC4peC4tOC4qA0KK+C4iuC4peC4rSDguKfguLTguKHguLnguKXguIrguLLguJXguLQNCivguIrguKXguK0g4Liq4Li44LiI4Li04LiV4LiY4Lij4Lij4Lih4Lin4LiH4Lio4LmMDQor4LiK4Lil4LitIOC4reC4uOC4m+C4sOC5gOC4lOC4teC4og0KK+C4iuC4peC4seC4iiDguYDguJfguJ7guKHguYLguJnguJfguLHguKLguKrguIHguLjguKUNCivguIrguKXguLHguKHguJ7guKMg4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4LiI4Lix4LiUDQor4LiK4Lil4Liy4Lig4Lij4LiT4LmMIOC4quC4luC4suC4nuC4o+C4mOC4meC4suC4quC4tOC4mQ0KK+C4iuC4peC4tOC4lOC4siDguITguIfguKPguLHguJXguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguIrguKXguLTguJUg4LiC4Li14LiV4LiV4Liw4Liq4Lix4LiH4LiE4LiwDQor4LiK4Lil4Li04LiVIOC4l+C4reC4h+C4oeC4k+C4tQ0KK+C4iuC4peC4tOC4lSDguKXguLTguYnguKHguKPguKrguKrguLjguITguJnguJjguYwNCivguIrguKXguLTguJUg4Lit4Liy4LiK4Liy4LmE4LiZ4Lii4LiB4Li44LilDQor4LiK4Lil4Li04LiZ4LiX4LijIOC4reC4meC4uOC4leC4o+C4nuC4ow0KK+C4iuC4peC4teC4nuC4oyDguKPguLHguIHguJ7guLfguIoNCivguIrguKfguIrguLLguJXguLQg4LmD4LiI4LmA4Lie4LmH4LiK4LijDQor4LiK4Lin4LiZIOC5guC4iuC4leC4tOC4iOC4suC4o+C4uOC5hOC4iuC4ouC4sg0KK+C4iuC4p+C4mSDguJ7guJfguJjguYLguIHguKrguLHguKINCivguIrguKfguJkg4Lio4Li04Lij4Li04LiB4Li04LiIDQor4LiK4Lin4LiZ4LiK4LihIOC4iOC4seC4meC4l+C4o+C4sOC5gOC4m+C4suC4o+C4ouC4sA0KK+C4iuC4p+C4meC4iuC4t+C5iOC4mSDguIHguKPguLLguJ7guIfguKnguYwNCivguIrguKfguJnguJ7guLTguKgg4LiH4Liy4Lih4LiC4LizDQor4LiK4Lin4LiZ4Lie4Li04LioIOC5gOC4meC4oeC4tQ0KK+C4iuC4p+C4meC4nuC4tOC4qCDguKfguLTguKPguKLguKjguLTguKPguLQNCivguIrguKfguJnguLHguIrguKLguYwg4LiI4Lij4Lij4Lii4Liy4Lio4Lix4LiB4LiU4Li04LmMDQor4LiK4Lin4Lij4Lix4LiV4LiZ4LmMIOC4muC4p+C4muC4l+C4reC4hw0KK+C4iuC4p+C4peC4tOC4lSDguYDguIHguJXguLjguJ7guKUNCivguIrguKfguKXguLTguJUg4LiI4Lix4LiZ4LiX4Lij4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiK4Lin4Lil4Li04LiVIOC4iuC4p+C4peC4tOC4leC4quC4uOC4meC4l+C4ow0KK+C4iuC4p+C4peC4tOC4lSDguYHguIvguYjguKXguLTguYnguKENCivguIrguKfguKXguLTguJUg4LiX4Lij4LiH4Lio4Lij4LiK4Lix4LiiDQor4LiK4Lin4Lil4Li04LiVIOC4meC4tOC4mOC4suC4geC4ow0KK+C4iuC4p+C4peC4tOC4lSDguJvguLHguI3guI3guLLguKrguIfguITguYwNCivguIrguKfguKXguLTguJUg4Lie4Li44LiZ4LiX4Li04LiB4Liy4Lie4Lix4LiX4LiY4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4oeC4teC5geC4geC5ieC4p+C4meC5ieC4reC4og0KK+C4iuC4p+C4peC4tOC4lSDguKXguLTguKHguJvguLTguJzguKXguYTguJ7guJrguLnguKXguKLguYwNCivguIrguKfguKXguLTguJUg4Lin4Li04Lij4Li04Lii4Liw4Lit4Liy4Lig4Lij4LiT4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4quC5iOC4p+C4meC5gOC4qOC4o+C4qeC4kOC4sg0KK+C4iuC4p+C4peC4tOC4lSDguYDguKrguJnguLLguILguLHguJnguJjguYwNCivguIrguKfguKXguLTguJUg4Lit4LmI4Lit4LiZ4LmA4Lih4Li34Lit4LiHDQor4LiK4Lin4Lil4Li1IOC4m+C4seC4jeC4iOC4suC4h+C4hOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4p+C4suC4pSDguYDguILguKHguLDguKXguLTguKXguLTguJUNCivguIrguKfguLLguKXguLIg4Liq4Li44Lin4Lij4Lij4LiT4LiK4Li14LieDQor4LiK4LmI4Lin4LiHIOC4geC4uOC4peC4p+C4o+C4o+C4k+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4iuC5iOC4p+C4h+C5guC4iuC4hCDguJfguK3guIfguK3guKLguLnguYgNCivguIrguYnguKfguJkg4Lia4Lix4Lin4LiX4Lit4LiHDQor4LiK4Lit4LiaIOC4hOC4uOC5ieC4oeC4quC4leC4tA0KK+C4iuC4reC4miDguJ7guKPguKvguKHguYDguJTguIoNCivguIrguK3guJrguKjguLHguIHguJTguLTguYwg4LmA4Liq4LmH4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Lit4Li44LmI4LihIOC5hOC4p+C4l+C4ouC4suC4hOC4oQ0KK+C4iuC5iOC4rSDguK3guKLguLnguYjguJrguLHguKcNCivguIrguYjguK3guJfguLTguJ7guKLguYwg4LmA4LiX4Lio4Lib4Lij4Liw4Liq4LiH4LiE4LmMDQor4LiK4LmI4Lit4LiX4Li04Lie4Lii4LmMIOC4q+C4tOC4o+C4seC4jeC4p+C4h+C4qeC5jA0KK+C4iuC5iOC4reC4peC4seC4lOC4lOC4siDguJnguJnguJfguKfguLHguJLguJnguYwNCivguIrguYnguK3guIfguK7guKfguKIg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4LiK4LmJ4Lit4Liu4Lix4LmJ4LinIOC4quC4oeC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC4sg0KK+C4iuC4sOC4peC4rSDguKjguKPguLXguYDguIfguLTguJnguKLguKfguIcNCivguIrguLDguYDguKXguIfguKjguLHguIHguJTguLTguYwg4LmA4LiK4Li34LmJ4Lit4Lit4Lij4Lin4Lij4Lij4LiTDQor4LiK4Liw4LmC4Lit4LiUIOC4l+C4o+C4seC4nuC4ouC5jOC4geC4peC5ieC4sg0KK+C4iuC4seC5ieC4h+C4geC4tOC4oSDguYHguIvguYjguYLguIENCivguIrguLHguIrguIrguJnguIEg4Lio4Li44Lig4Lic4Lil4LiW4Liy4Lin4LijDQor4LiK4Lix4LiK4LiK4Lix4LiiIOC4muC4uOC4jeC4ouC4t+C4meC4ouC4h+C4quC4geC4uOC4pQ0KK+C4iuC4seC4iuC4iuC4suC4oiDguKfguIfguKjguYzguKrguIfguKfguJkNCivguIrguLHguIrguJ7guIfguKnguYwg4LmC4Lir4LiV4Liw4Lij4Liw4Lig4Lin4Liy4LiZ4LiZ4LiX4LmMDQor4LiK4Lix4LiK4Lin4Lij4Lij4LiTIOC4qOC4tOC4o+C4tOC4muC4o+C4o+C4iOC4h+C4qOC4seC4geC4lOC4tOC5jA0KK+C4iuC4seC4iuC4p+C4suC4pSDguIrguLnguIrguLHguKLguJ7guLTguYDguIrguJANCivguIrguLHguIrguKfguLLguKUg4Lib4Li04Lii4Liw4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmM4Lie4LiH4Lip4LmMDQor4LiK4Lix4LiK4Lin4Liy4LilIOC4p+C4tOC4o+C4tOC4ouC4sOC5gOC4iOC4o+C4tOC4jeC4oeC4h+C4hOC4pQ0KK+C4iuC4seC4iuC4p+C4suC4pSDguYDguK3guLXguYjguKLguKHguJ7guLTguKDguLHguIHguJTguLTguYwNCivguIrguLHguIrguKfguLLguKXguKLguYwg4LmA4LiI4Lij4Li04LiN4Liq4Lin4Lij4Lij4Lii4LiyDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC5gOC4leC5h+C4oeC4pOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguJvguLLguKLguLDguJnguLHguJnguJfguKLguYwNCivguIrguLHguIrguKfguLLguKXguKLguYwg4LmA4Lih4LiG4LiJ4Liy4LiiDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC4p+C4uOC4kuC4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguKrguLjguKfguLTguKPguLTguKLguLDguYTguJ7guKjguLLguKUNCivguIrguLHguIrguKrguKHguKMg4LiK4Li44LiZ4Lir4LiK4Lix4LiiDQor4LiK4Lix4LiU4LiK4Lix4LiiIOC4m+C4suC4meC4meC4suC4hA0KK+C4iuC4seC5ieC4mSDguIjguLnguJnguYnguK3guKINCivguIrguLHguYnguJkg4Lik4LiX4LiY4Li04LmM4Lir4Li04Lij4Lix4LiNDQor4LiK4Lix4LiiIOC4guC4oeC4tOC5ieC4meC4nOC4hw0KK+C4iuC4seC4oiDguYHguIvguYjguYDguK7guYnguIcNCivguIrguLHguKIg4Lih4LiZ4Lix4Liq4Lio4Li04Lij4Li04LmA4Lie4LmH4LiNDQor4LiK4Lix4LiiIOC4quC4uOC4o+C4quC4tOC4l+C4mOC4tOC5jA0KK+C4iuC4seC4ouC4geC4tOC4iCDguK3guLjguJfguLHguKLguKfguLHguJPguJnguYwNCivguIrguLHguKLguIrguJnguLAg4Lie4Lix4LiZ4LiY4Li44LmM4Lig4Lix4LiB4LiU4Li14LiU4Li04Liq4LiB4Li44LilDQor4LiK4Lix4Lii4LiK4Liy4LiNIOC4iOC4ueC4h+C5gOC4iOC4o+C4tOC4jeC4iOC4tOC4leC4leC5jA0KK+C4iuC4seC4ouC4iuC4suC4jSDguKrguLTguKPguLTguKHguIfguITguKXguJ7guLLguJPguLTguIrguKLguYwNCivguIrguLHguKLguJPguKPguIfguITguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Lin4LmI4Liy4LiHDQor4LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMIOC4mOC4meC4suC4quC4oeC4muC4ueC4o+C4k+C5jOC4nOC4pQ0KK+C4iuC4seC4ouC4k+C4o+C4h+C4hOC5jCDguYDguKHguJjguLXguKPguLDguKfguLHguJLguJnguYwNCivguIrguLHguKLguJPguKPguIfguITguYwg4Liq4LiZ4LiY4Li04Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4LiK4Lix4Lii4LiU4Li04Lip4LiQ4LmMIOC4ouC4h+C4muC4o+C4o+C5gOC4iOC4tOC4lA0KK+C4iuC4seC4ouC4mOC4p+C4seC4iiDguJnguLLguITguLDguJnguITguKMNCivguIrguLHguKLguJnguLHguJnguJfguYwg4Lin4Li04Liq4Li54LiV4Lij4LmA4Lij4Li34Lit4LiH4LmA4LiU4LiKDQor4LiK4Lix4Lii4Lib4Li04LiV4Li0IOC4oeC5iOC4p+C4h+C4geC4ueC4pQ0KK+C4iuC4seC4ouC4nuC4iOC4meC5jCDguInguLHguJXguKPguKjguKPguLXguJnguJ7guITguLjguJMNCivguIrguLHguKLguJ7guKMg4LmE4LiK4Lii4Lin4Li44LiS4Li04LmA4Liq4Lij4Li1DQor4LiK4Lix4Lii4Lie4LijIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4seC4meC4ouC5jA0KK+C4iuC4seC4ouC4nuC4oyDguKPguLHguJXguJnguYDguKHguJjguLLguJnguJnguJfguYwNCivguIrguLHguKLguJ7guKMg4Liq4Lih4LmD4LiI4LiZ4Li24LiBDQor4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMIOC5geC4geC5ieC4p+C4geC4oeC4pQ0KK+C4iuC4seC4ouC4nuC4seC4meC4mOC4uOC5jCDguJvguKPguLDguKLguLnguKPguKfguKPguKPguJMNCivguIrguLHguKLguKHguIfguITguKUg4Lii4Li04LmI4LiH4Lii4Lih4Liq4Liy4LijDQor4LiK4Lix4Lii4Lii4LiH4LiE4LmMIOC4geC4suC4jeC4iOC4meC4huC4suC4ow0KK+C4iuC4seC4ouC4ouC4h+C4hOC5jCDguKjguKPguLXguK3guKPguLHguI3guI3guLLguIHguLjguKUNCivguIrguLHguKLguKLguKgg4LiK4Li04LiZ4LmC4LiK4LiV4Li04LiB4LijDQor4LiK4Lix4Lii4Lii4LioIOC4nuC4h+C4qOC5jOC4nuC4ueC4peC4l+C4reC4hw0KK+C4iuC4seC4ouC4ouC4qCDguKrguLTguJnguJjguLjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguIrguLHguKLguKLguLAg4Lih4Li14Liq4LiB4Li44LilDQor4LiK4Lix4Lii4Lii4Lix4LiZ4LiV4LmMIOC4muC4seC4p+C4reC4uOC5hOC4ow0KK+C4iuC4seC4ouC4ouC4siDguKDguLTguI3guYLguKINCivguIrguLHguKLguKLguLjguJfguJgg4LiK4Lix4Lii4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMDQor4LiK4Lix4Lii4Lii4Li44LiX4LiYIOC4m+C4tOC4leC4tOC4m+C4suC4peC4sA0KK+C4iuC4seC4ouC4ouC4uOC4l+C4mCDguKfguLHguJnguKrguK3guIcNCivguIrguLHguKLguKLguLjguJfguJgg4LmA4Lit4Li14Lii4LiU4LmB4LiB4LmJ4LinDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4geC4oeC4peC4meC4o+C5gOC4l+C4ng0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguIjguLnguJvguKPguLDguIjguLHguIHguKnguYwNCivguIrguLHguKLguKPguLHguJXguJnguYwg4LmA4LiU4LiK4Liy4LiZ4Liz4Lin4LiH4Lio4LmMDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4muC4uOC4jeC4meC5ieC4reC4og0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguKHguLLguJvguKPguLDguJPguLXguJUNCivguIrguLHguKLguKPguLHguJXguJnguYwg4Lin4Lij4Lin4LiH4Lio4LmM4LmA4LiY4LitDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4o+C4iuC4seC4ouC4mOC4meC4p+C4seC4kuC4meC5jA0KK+C4iuC4seC4ouC4pOC4geC4qeC5jCDguYDguJ7guLTguYjguKHguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwNCivguIrguLHguKLguKTguJfguJjguLTguYwg4Liq4Li14Lir4Li04Liq4Lij4Liy4Lig4Li04Liq4Li04LiX4LiY4Li04LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4nuC4o+C4meC4seC4meC4l+C5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguIjguKPguLTguKLguLLguKDguKPguJPguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LiX4Lij4LiH4Lie4LijDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4leC4seC4meC4geC4s+C5geC4q+C4h+C5gOC4lOC4iuC4sg0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguJjguLXguKPguKrguLjguILguJvguKPguLDguYDguKrguKPguLTguJANCivguIrguLHguKLguKfguLHguJLguJnguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiK4Lix4Lii4LiB4Li04LiIDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4nuC4suC4meC4tOC4iuC4ouC4suC4oOC4o+C4k+C5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguYDguKLguLLguKfguKDguLLguJ7guIfguKjguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4Lin4LiH4Lio4LmM4Lin4Lix4LiS4LiZ4Lio4Liy4LiZ4LiV4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jeC4mOC4o+C4o+C4oQ0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguKrguLjguILguKfguJPguLTguIrguJnguLHguJnguJfguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4Lit4Lij4Li04Lii4Lih4LiH4LiE4Lil4Liq4LiB4Li44LilDQor4LiK4Lix4Lii4Lin4Lix4LiV4Lij4LmMIOC5gOC4leC4iuC4sOC4pOC4lOC4teC4p+C4o+C4o+C4kw0KK+C4iuC4seC4ouC4p+C4tOC4p+C4seC4kuC4meC5jCDguYDguILguLXguKLguKfguYLguKrguKDguJMNCivguIrguLHguKLguKfguLjguJLguLQg4Lio4Li44Lig4Lin4LiH4Lio4LmM4Lin4Li04Lio4Liy4LilDQor4LiK4Lix4Lii4Lio4Lix4LiB4LiU4Li04LmMIOC4iuC4seC5iOC4h+C5g+C4iA0KK+C4iuC4seC4ouC4qOC4tOC4o+C4tCDguJ7guLHguJnguJjguLjguYzguYLguK3guKDguLLguKoNCivguIrguLHguKLguKrguLTguJfguJjguLTguYwg4LiB4LmI4Lit4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4LiI4Lij4Li04LiNDQor4LiK4Lix4Lii4Liq4Li04LiX4LiY4Li04LmMIOC5geC4leC5ieC4o+C4seC4leC4meC4iuC4seC4og0KK+C4iuC4seC4ouC4quC4tOC4l+C4mOC4tOC5jCDguKXguLnguIHguKPguLHguIHguKnguYwNCivguIrguLHguKLguKrguLTguJfguJjguLTguYwg4Lit4Lix4LiN4LiK4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiK4Lix4Lii4LmA4LiI4Lij4Li04LiNIOC5gOC4iOC4o+C4tOC4jeC4quC4tOC4l+C4mOC4tOC5jA0KK+C4iuC4seC4ouC5gOC4peC4tOC4qCDguYLguIHguKLguKrguKHguJrguLnguKPguJPguYwNCivguIrguLHguKLguYLguKPguIjguJnguYwg4LmA4LiB4Lip4Lij4Liy4LiH4LiB4Li54LijDQor4LiK4Lix4Lii4LmC4Lij4LiI4LiZ4LmMIOC4p+C4seC4kuC4meC4qOC4tOC4o+C4tOC4quC4uOC4gg0KK+C4iuC4suC4hOC4oyDguJvguKPguLLguIHguLLguKPguJnguJ7guITguLjguJMNCivguIrguLLguITguKPguLTguJUg4Liq4Li44LiC4Lie4Lij4Lin4Li04LiX4Lin4Lix4LiqDQor4LiK4Liy4LiNIOC5gOC4geC4teC4ouC4o+C4leC4tOC4quC4seC4h+C4p+C4o+C4k+C5jA0KK+C4iuC4suC4jSDguYDguIjguKPguLTguI3guKrguLTguJfguJjguLTguJ7guLHguJnguJjguYwNCivguIrguLLguI0g4LmA4LiK4Li14LmI4Lii4Lin4LiY4Li14Lij4LiB4Li44LilDQor4LiK4Liy4LiNIOC5gOC4leC4o+C4teC4ouC4oeC4qOC4tOC4o+C4tOC4p+C4o+C4geC4uOC4pQ0KK+C4iuC4suC4jSDguJrguLHguKfguJfguK3guIcNCivguIrguLLguI0g4Lie4Lix4LiZ4LiY4LmM4LmB4LiK4LmI4LihDQor4LiK4Liy4LiNIOC5gOC4oeC4mOC4suC4h+C4geC4ueC4ow0KK+C4iuC4suC4jSDguKfguIfguKjguYzguKrguLjguKPguKjguLTguKXguJvguYwNCivguIrguLLguI0g4Liq4LiH4LmI4Liy4LiH4Liy4LihDQor4LiK4Liy4LiNIOC5gOC4quC4o+C4teC4o+C4seC4kOC5guC4nuC4mOC4tOC5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4iuC4suC4jSDguYDguK3guLXguYjguKLguKHguK3guLjguYjguJkNCivguIrguLLguI3guIrguLHguKIg4LiB4Li04LiV4LiV4Li04Lin4LiH4Lio4LmM4LmE4LiB4LijDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4hOC4h+C5guC4lQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguIjguLLguKPguLjguYTguJ7guJrguLnguKXguKLguYwNCivguIrguLLguI3guIrguLHguKIg4LiK4Lin4Lil4Li04LiV4LiB4Li04LiI4LmA4LiI4Lij4Li04LiNDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC5hOC4iuC4ouC4meC4suC4oeC4quC4luC4tOC4leC4ouC5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguJMg4LiW4Lil4Liy4LiHDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC5guC4leC4muC4lOC4tQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguJnguJfguLXguKfguIfguKjguYzguIHguLTguIgNCivguIrguLLguI3guIrguLHguKIg4Lib4Lij4Liw4LiU4Lix4Lia4LiK4LiZ4Liy4LiZ4Li44Lij4Lix4LiV4LiZ4LmMDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4nuC4o+C5ieC4reC4oeC4p+C4uOC4kuC4tA0KK+C4iuC4suC4jeC4iuC4seC4oiDguKDguLHguJfguKPguKrguLTguJfguJjguLTguYDguKrguKPguLUNCivguIrguLLguI3guIrguLHguKIg4Lij4Lix4LiV4LiZ4Liy4LiK4Lix4Lii4Lie4LiH4Lip4LmMDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC5gOC4peC4tOC4qOC4m+C4o+C4sOC4quC4nuC5guC4iuC4hA0KK+C4iuC4suC4jeC4iuC4seC4oiDguKfguLTguJfguLnguKPguJvguLHguI3guI3guLLguIHguLTguIgNCivguIrguLLguI3guIrguLHguKIg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmM4Lin4Lij4Liy4Lig4Lij4LiT4LmMDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4quC4tOC4l+C4mOC4tOC4iuC4seC4ouC4p+C4tOC4o+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguYHguKrguIfguIjguLHguJnguJfguKPguYzguKjguLTguKfguJTguKUNCivguIrguLLguI3guIrguLHguKIg4Lit4Lig4Li04Lij4Lih4Lii4LmM4LmA4Liq4Lih4LitDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC5gOC4reC4oeC4sOC4o+C4uOC4iOC4tA0KK+C4iuC4suC4jeC4k+C4o+C4h+C4hOC5jCDguILguKfguLHguI3guYDguIjguKPguLTguI0NCivguIrguLLguI3guJPguKPguIfguITguYwg4LiX4Lit4LiH4LiZ4Lin4LilDQor4LiK4Liy4LiN4LiT4Lij4LiH4LiE4LmMIOC4oOC4ueC4nOC4sg0KK+C4iuC4suC4jeC4k+C4o+C4h+C4hOC5jCDguKrguLTguJfguJjguLTguKrguKHguJrguLnguKPguJPguYwNCivguIrguLLguI3guJrguLnguKPguJPguYwg4LmA4Lie4LmH4LiN4LiV4Lij4Liw4LiB4Li54LilDQor4LiK4Liy4LiN4Lii4Li44LiX4LiYIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5guC4quC4oOC4sg0KK+C4iuC4suC4jeC4ouC4uOC4l+C4mOC5jCDguJXguKPguLXguKrguLjguITguJnguJjguYwNCivguIrguLLguI3guKfguLTguJfguKLguYwg4LiK4LmI4Lin4LiH4LiK4Lix4LiiDQor4LiK4Liy4LiN4Lin4Li04LiX4Lii4LmMIOC4m+C4tOC4ouC4sOC4p+C4suC4k+C4tOC4iuC5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4suC4jeC4p+C4tOC4l+C4ouC5jCDguKrguLjguILguK3guKPguYjguLLguKENCivguIrguLLguI3guKfguLjguJLguLQg4Lie4Lij4LiB4Li04LiV4LiV4Li04Lin4Lix4LiS4LiZ4Liy4LiB4Li44LilDQor4LiK4Liy4LiN4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4suC4meC4mOC4meC4sOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4suC4jeC4qOC4seC4geC4lOC4tOC5jCDguK3guLjguJTguKHguJbguLTguKPguJ7guLHguJnguJjguLjguYwNCivguIrguLLguI3guYDguKfguIog4Lio4Lij4Lix4LiX4LiY4Liy4Lie4Li44LiX4LiYDQor4LiK4Liy4LiV4Lij4Li1IOC5gOC4geC4o+C4teC4ouC4h+C4ouC4sOC4geC4uOC4pQ0KK+C4iuC4suC4leC4o+C4tSDguYDguIjguKPguLTguI3guIjguKPguLHguKrguIHguLjguKUNCivguIrguLLguJXguKPguLUg4LiU4Li04LmA4Lij4LiB4Lin4Lix4LiS4LiZ4LiK4Lix4LiiDQor4LiK4Liy4LiV4Lij4Li1IOC4meC4geC4quC4geC4uOC4pQ0KK+C4iuC4suC4leC4o+C4tSDguJ7guLHguJjguJnguJ7guLHguJnguJjguLjguYwNCivguIrguLLguJXguKPguLUg4Lil4Li04Lih4Lib4Li04LiK4Lix4Lii4LmC4Liq4Lig4LiTDQor4LiK4Liy4LiV4Lij4Li1IOC4qOC4o+C4teC4quC4uOC4hOC4meC4mOC5jA0KK+C4iuC4suC4leC4o+C4tSDguKrguLjguKvguLHguKrguYTguJ7guKjguLLguKUNCivguIrguLLguJXguKPguLUg4Lit4Li04LiZ4LiE4Li44LmJ4LihDQor4LiK4Liy4LiV4Li0IOC4l+C4suC4h+C4l+C4reC4hw0KK+C4iuC4suC4leC4tOC4iuC4seC4oiDguIjguLLguJXguLjguKjguKPguLXguJ7guLTguJfguLHguIHguKnguYwNCivguIrguLLguJXguLTguIrguLLguKIg4LiI4LiH4LiB4LilDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguJvguKPguLDguKrguLTguJfguJjguLTguKrguLINCivguIrguLLguJXguLTguIrguLLguKIg4Lii4Li44Lin4LiZ4Liw4LmA4LiV4Lih4Li14Lii4LmMDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC4qOC4o+C4teC4quC4suC4o+C4tOC4quC4luC5jA0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguK3guLHguITguKPguKfguLTguJrguLnguKXguKLguYwNCivguIrguLLguJXguLTguYDguInguKXguLTguKEg4LmA4Lil4LiC4Lin4LiT4Li04LiK4LiY4Lij4Lij4Lih4Lin4Li04LiX4Lix4LiB4Lip4LmMDQor4LiK4Liy4LiZ4LiZ4LiX4LmMIOC4quC4suC4ouC4iuC4uOC4oQ0KK+C4iuC4suC4oiDguJfguYnguKfguKHguIHguKXguLTguYjguJkNCivguIrguLLguKIg4Lit4Li44Lih4Liw4Lin4Li04LiK4LiZ4Li1DQor4LiK4Liy4Lii4LmD4Lir4LiN4LmIIOC4muC4uOC4jeC5gOC4guC5h+C4oeC4l+C4reC4hw0KK+C4iuC4suC4peC4tOC4meC4tSDguIjguLHguJnguJfguKfguLLguKPguLINCivguIrguLLguKXguLUg4LiE4Liz4Lil4Liy4LiiDQor4LiK4Liy4Lil4Li1IOC4l+C4tOC4nuC4ouC4p+C4suC4mQ0KK+C4iuC4suC4peC4tSDguYDguJ7guLXguKLguKPguKHguLLguJnguLANCivguIrguLLguKXguLUg4Lin4Lix4LiK4Lij4LmA4Liq4LiW4Li14Lii4LijDQor4LiK4Liy4Lil4Li1IOC4reC4meC4seC4meC4leC5jOC4p+C4tOC4o+C4tOC4ouC4sOC4iuC4seC4og0KK+C4iuC4s+C4meC4sCDguJfguLHguJXguJXguLTguKLguJ7guIfguKjguYwNCivguIrguLPguJnguLLguI0g4LiJ4Lin4Li14Lin4LiH4Lip4LmMDQor4LiK4Liz4LiZ4Liy4LiNIOC5geC4leC5ieC4quC4uOC4iOC4tA0KK+C4iuC4s+C4meC4suC4jSDguJrguLjguI3guKfguLTguJfguKLguLLguIHguLjguKUNCivguIrguLPguJnguLLguI0g4LmC4Lie4LiY4Li04LmM4Liq4Li44LiCDQor4LiK4Liz4LiZ4Liy4LiNIOC5gOC4peC4suC4q+C4muC4uOC4leC4ow0KK+C4iuC4s+C4meC4suC4jSDguKrguLLguKPguLDguJzguKUNCivguIrguLPguJnguLLguI0g4Lit4Li04LiZ4LiX4Liw4LiZ4LiwDQor4LiK4Liz4LmA4LiK4Li14LmJ4Lii4LiwIOC4guC4seC4meC4l+C4reC4hw0KK+C4iuC4tOC4h+C4iuC4seC4oiDguJ7guLTguJ7guLHguJLguJnguYzguIjguKPguLHguKrguKrguIHguLjguKUNCivguIrguLTguJQg4LiI4Lij4Li04Lii4Liy4Lin4Li04Lil4Liy4LioDQor4LiK4Li04LiU4LiK4LiZ4LiBIOC4qOC4o+C4teC4quC4oeC4p+C4h+C4qeC5jA0KK+C4iuC4tOC4lOC4nuC4h+C4qeC5jCDguKrguKLguLLguKHguYDguJnguJXguKMNCivguIrguLTguJUg4LiV4Lix4LiZ4Lio4Li04Lij4Li04Lil4LmJ4LizDQor4LiK4Li04LiVIOC4ouC4sOC5guC4qg0KK+C4iuC4tOC4leC4iuC4oSDguIjguLHguJXguJXguLjguJ7guKPguJ7guIfguKnguYwNCivguIrguLTguJXguKrguIHguJnguJjguYwg4Liq4Lix4LiZ4LiX4Lix4LiUDQor4LiK4Li04LiZIOC4leC4seC5ieC4h+C4geC4uOC4qOC4peC4peC4peC4tOC4lQ0KK+C4iuC4tOC4mSDguYLguKPguIjguJnguYHguKrguIcNCivguIrguLTguJnguJPguYDguKPguKgg4LiU4Li04Lip4LiQ4Lic4LilDQor4LiK4Li04LiZ4Lik4LiX4LiY4Li04LmMIOC4m+C4o+C4sOC4ouC4ueC4o+C4l+C4reC4hw0KK+C4iuC4tOC4meC4p+C4seC4leC4oyDguYPguIjguYDguJfguLXguYjguKLguIcNCivguIrguLTguJnguYDguKvguKPguLXguKLguI0g4LmA4Liq4LiB4LiY4Li14Lij4LiwDQor4LiK4Li04Lil4Lix4LiiIOC4quC4uOC4p+C4o+C4o+C4k+C4quC4suC4ow0KK+C4iuC4tSDguYDguIQg4LmB4Lil4LihDQor4LiK4Li14Lin4LiyIOC4geC4peC4tOC5iOC4meC4lOC4tQ0KK+C4iuC4t+C5iOC4mSDguYDguIHguJXguLjguJvguKHguLINCivguIrguLfguYjguJkg4LmA4Lin4LiX4Lih4Liy4Lir4LiwDQor4LiK4Li34LmI4LiZ4LiI4Li04LiVIOC5geC4q+C4peC4oeC4iOC4o+C4tOC4hw0KK+C4iuC4t+C5iOC4meC4iOC4tOC4leC4oyDguYHguIvguYjguJXguLHguYnguIcNCivguIrguLfguYjguJnguKrguLjguIIg4LiB4Lih4Lil4LiX4LiB4Liy4Lig4Lix4LiiDQor4LiK4Li34LmJ4LiZIOC4l+C4reC4h+C4jeC4p+C4mQ0KK+C4iuC4uOC4h+C5gOC4reC4hyDguYHguIvguYjguYDguIjguLXguKINCivguIrguLjguJTguLLguJ7guKMg4LmB4Liq4LiZ4Lij4Liy4LiK4LiyDQor4LiK4Li44LiV4Li04LiZ4Lix4LiZ4LiX4LmMIOC5gOC4leC4iuC4sOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4iuC4uOC4leC4tOC4oeC4k+C4keC4meC5jCDguJrguLjguI3guIrguLHguIrguKfguLLguKUNCivguIrguLjguJXguLTguKHguLIg4LiC4Lix4LiZ4LiU4Li1DQor4LiK4Li44LiV4Li04Lih4LiyIOC4iuC4tOC4meC5guC4mQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguJfguKPguLHguJ7guKLguYzguKrguLTguKPguLTguJnguJfguKPguYwNCivguIrguLjguJXguLTguKHguLIg4Lib4Lix4Lin4Lin4Lij4Liy4Lig4Lij4LiT4LmMDQor4LiK4Li44LiV4Li04Lih4LiyIOC4oeC4q+C4seC4hOC4hOC4geC4uOC4pQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguKfguIrguLTguKPguYDguKrguKPguLXguIrguLHguKINCivguIrguLjguJXguLTguKHguLIg4Liq4Li04LiZ4Liq4Liy4LiY4Li04LiVDQor4LiK4Li44LiV4Li04Lih4LiyIOC4reC4seC4jeC4jeC4k+C4o+C4h+C4hOC5jOC4geC4uOC4pQ0KK+C4iuC4uOC4mSDguYHguIvguYjguYLguIfguYnguKcNCivguIrguLjguJnguYDguIvguYnguIcg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiK4Li44LiaIOC4iOC4seC4meC4l+C4o+C5jOC5geC4geC5ieC4pw0KK+C4iuC4uOC4miDguKXguLLguYTguKHguYkNCivguIrguLjguKHguJnguLjguKEg4Lio4Lix4LiV4Lij4Li54Lil4Li14LmJDQor4LiK4Li44Lih4Lie4LijIOC4nOC4lOC4uOC4h+C4geC4tOC4iA0KK+C4iuC4uOC4oeC4nuC4pSDguIHguLLguI3guIjguJnguYLguIHguKjguKUNCivguIrguLjguKHguJ7guKUg4LiK4Lih4Lie4Li54LiX4Lin4Li14LibDQor4LiK4Li44Lih4Lie4LilIOC4leC4teC4o+C4k+C4quC4suC4ow0KK+C4iuC4uOC4oeC4nuC4pSDguJrguLjguI3guKrguLLguYPguIgNCivguIrguLjguKHguJ7guKUg4Lih4Lij4Lij4LiE4Lic4LilDQor4LiK4Li44Lih4Lie4LilIOC5gOC4p+C4quC4quC4muC4uOC4leC4ow0KK+C4iuC4uOC4oeC4nuC4pSDguYDguKrguKPguLTguKHguIrguLHguYnguJkNCivguIrguLjguKHguKPguLHguJXguJnguYwg4LiI4Lix4LiB4Lij4LiI4Li04LiV4Lij4Lig4LiyDQor4LiK4Li44Lih4Liq4Liy4LiiIOC4oeC4k+C4teC4meC5ieC4reC4og0KK+C4iuC4uOC5iOC4oSDguJnguYnguK3guKLguJvguKPguLDguIrguLINCivguIrguLjguKPguLXguKfguKPguKPguJMg4LiI4Li04LiZ4LiV4LiB4Lin4Li14Lin4Lix4LiS4LiZ4LmMDQor4LiK4Li44Lil4Li1IOC5gOC4o+C4t+C4reC4h+C4pOC4l+C4mOC4tOC5jA0KK+C4iuC4uOC4peC4teC4geC4oyDguKPguLHguJXguJnguYzguKfguLTguIjguLTguJXguJXguYzguYDguKfguIoNCivguIrguLjguKXguLXguJ7guKMg4Lia4Li44LiN4Lit4Lii4Li54LmIDQor4LiK4Li44Lil4Li14Lie4LijIOC4reC4tuC5ieC4h+C4p+C4tOC4qOC4tOC4qeC4juC5jOC4p+C4h+C4qOC5jA0KK+C4iuC4uSDguYLguIjguYHguK3guJnguJnguLINCivguIrguLnguIjguLHguJnguJfguKPguYzguInguLLguKIg4Lil4Liy4LmA4LiE4LiZDQor4LiK4Li54LiI4Li04LiV4LiV4LmMIOC4mOC4o+C4o+C4oeC4kOC4tOC4leC4tA0KK+C4iuC4ueC4iOC4tOC4leC4oyDguKHguLHguIHguJ7guLHguJnguJjguYzguYDguIjguKPguLTguI3guIHguLTguIgNCivguIrguLnguIrguLHguKIg4LmA4LiB4Li04LiU4Lic4LilDQor4LiK4Li54LiK4Lix4LiiIOC5gOC4leC4iuC4sOC4mOC4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4iuC4ueC4iuC4seC4oiDguYDguKPguLXguKLguJrguYDguKXguLTguKjguKvguLTguKPguLHguI0NCivguIrguLnguIrguLHguKIg4Lit4Li44LiU4Lih4LmC4Lig4LiK4LiZ4LmMDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4hOC4s+C5guC4lQ0KK+C4iuC4ueC4iuC4suC4leC4tCDguIvguLbguYjguIfguJTguLPguKPguIcNCivguIrguLnguIrguLLguJXguLQg4LiZ4Lie4Lin4LiH4Lip4LmMDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4nuC4h+C4qeC5jOC4o+C4seC4leC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguKPguLHguIHguKnguLLguKrguLHguJXguKLguYwNCivguIrguLnguIrguLLguJXguLQg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmMDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4quC4uOC4p+C4seC4iuC4o+C4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguYDguK3guLXguYjguKLguKHguKrguLjguJfguJjguLINCivguIrguLnguIrguLXguJ4g4Lib4Lix4LiN4LiI4Liq4Lix4LiH4LiC4LmMDQor4LiK4Li54LiK4Li14LieIOC4quC4seC4h+C4guC5jOC4meC4tOC4peC5geC4geC5ieC4pw0KK+C4iuC4ueC4lOC4p+C4hyDguYHguKrguIfguIrguLnguYLguJUNCivguIrguLnguJ7guIfguKjguYwg4Lir4Lin4Lix4LiH4Lin4Lix4LiS4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LiK4Li54Lie4Lix4LiZ4LiY4LmMIOC5guC4geC4oeC4peC4quC4uOC4lQ0KK+C4iuC4ueC4o+C4seC4leC4meC5jCDguJrguLjguI3guYDguJnguLLguKfguYwNCivguIrguLnguKfguIfguKjguYwg4LiZ4Li04LiV4Li04Lib4Lix4LiN4LiN4Liy4Lin4LiH4Lio4LmMDQor4LiK4Li54Lio4Lij4Li1IOC4geC4reC4h+C5geC4geC5ieC4pw0KK+C4iuC4ueC4qOC4o+C4tSDguYDguIjguLXguKLguKPguIHguLjguKXguJvguKPguLDguYDguKrguKPguLTguJANCivguIrguLnguKjguKPguLUg4LiX4Lit4LiH4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0DQor4LiK4Li54Lio4Lij4Li1IOC4m+C4suC4peC4sOC4geC4ueC4pQ0KK+C4iuC4ueC4qOC4o+C4tSDguKHguLDguKXguLTguK3guYjguK3guIcNCivguIrguLnguKjguKPguLUg4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Lin4LiH4Lio4LmM4LiY4LijDQor4LiK4Li54Lio4Lij4Li1IOC4quC4uOC4o+C4tOC4p+C4h+C4qeC5jA0KK+C4iuC4ueC4qOC4o+C4tSDguYDguK3guLXguYjguKLguKHguKrguK3guLLguJQNCivguIrguLnguKjguLHguIHguJTguLTguYwg4LiI4Lix4LiZ4LiX4Lij4Lih4Liy4LiZ4LiwDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC5guC4iuC4hOC4muC4p+C4ow0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguIHguKXguYjguLMNCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LiX4Li14Lib4LmA4LiX4Li14Lii4LiZ4LiX4Lit4LiHDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4oeC5iOC4p+C4h+C4ouC4sg0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguKXguLfguK3guIrguLLguK3guLjguJTguKHguYDguIHguLXguKLguKPguJXguLQNCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14LmA4LiI4Lij4Li04LiN4Lil4LmI4Liz4LiL4LizDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4muC4ueC4peC4ouC5jA0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguK3guLjguYjguJnguJvguKPguLDguYDguKrguKPguLTguJDguKjguLTguKXguJvguYwNCivguIrguLnguKrguLLguKMg4Lin4LiH4Lio4LmM4Lin4Lix4LiK4Lij4LiyDQor4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4geC4seC4k+C4keC4qOC4tOC4peC4m+C5jA0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguIrguLfguYjguJnguKDguLLguIHguKPguJPguYwNCivguIrguLnguYDguIHguLXguKLguKPguJXguLQg4LiZ4Liy4LiE4Lij4LiZ4Lij4Liy4LiY4LijDQor4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4oeC4mOC4teC4m+C4o+C4sOC4oOC4sg0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguKrguKfguYjguLLguIfguYDguJnguJXguKMNCivguIrguLnguYDguITguKfguYnguIcg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiK4Li54LmA4Lit4LmH4LiHIOC4nuC4o+C4l+C4p+C4teC4l+C4seC4qOC4meC5jA0KK+C4iuC4ueC5g+C4iCDguK7guLnguYDguIvguYfguJkNCivguIrguYLguKXguJfguKMg4Liq4Li44Lin4Lij4Lij4LiT4Liq4Lix4LiN4LiN4LiyDQor4LiK4LmE4Lih4Lie4LijIOC4iuC4uOC4oeC5gOC4quC4p+C4tQ0KK+C4iuC5hOC4oeC4nuC4oyDguKfguLTguJfguLTguJXguKfguLHguJLguJkNCivguYDguIrguIfguITguLTguYnguIcg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LmA4LiK4LiZIOC4m+C4tOC5iOC4meC5gOC4nuC4iuC4ow0KK+C5gOC4iuC4pSDguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwNCivguYDguIrguKfguIcg4LmA4Lie4LiK4Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4LiK4Lin4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4oeC4huC4sg0KK+C5gOC4iuC4qeC4kOC4iuC4seC4oiDguKPguLHguJXguJnguLLguJnguLjguKfguIfguKjguYzguIrguLHguKINCivguYDguIrguKnguJDguLIg4Liq4Li44LiZ4LiX4Lij4LiB4Li04LiV4Li0DQor4LmA4LiK4Lit4Lij4Li14LmI4Lin4Lij4Lij4LiTIOC4iOC4tOC4k+C4k+C4mOC4o+C4o+C4oeC4nuC4h+C4qeC5jA0KK+C5gOC4iuC4suC4p+C4meC4tSDguKrguKHguLTguJXguLLguJnguJnguJfguYwNCivguYDguIrguLLguKfguJnguYwg4Lii4Liw4Liq4Li44Lie4Lix4LiS4LiZ4Liy4LiB4Li44LilDQor4LmA4LiK4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC5gOC4meC4leC4o+C4oeC4k+C4teC4l+C4tOC4nuC4ouC5jOC4quC4tOC4o+C4tA0KK+C5gOC4iuC4suC4p+C4peC4tOC4lSDguILguLPguKjguLTguKPguLQNCivguYDguIrguLLguKfguKXguLTguJUg4LmC4Lib4Lij4LmI4LiH4LiB4Lih4LilDQor4LmA4LiK4Liy4Lin4Lil4Li04LiVIOC4quC4uOC4guC4quC4muC4suC4og0KK+C5gOC4iuC4suC4p+C5jCDguYHguIHguYnguKfguJvguKPguLDguJTguLTguKnguJANCivguYDguIrguLLguKfguYwg4LiX4Lit4LiH4Lih4LiyDQor4LmA4LiK4Liy4Lin4LmMIOC4oeC4tOC5iOC4h+C5geC4geC5ieC4pw0KK+C5gOC4iuC4suC4p+C5jCDguKvguKXguLHguIHguYDguJ7guYfguIrguKMNCivguYDguIrguLTguIfguIrguLHguKIg4LiY4Liz4Lij4LiH4Lin4Li04LiZ4Li04LiI4LiJ4Lix4LiiDQor4LmA4LiK4Li04LiNIOC4m+C4o+C4sOC4l+C4uOC4oeC4meC4meC4l+C5jA0KK+C5gOC4iuC4tOC4lCDguJrguLHguKfguYDguJvguKPguKENCivguYDguIrguLTguJQg4Lit4Li04LiZ4LiX4Lij4LmM4Lih4LiH4LiE4LilDQor4LmA4LiK4Li04LiU4LiK4Lix4LiiIOC4meC4seC4meC4l+C4tOC4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4iuC4tOC4lOC4iuC4seC4oiDguKjguKPguLXguITguLPguKPguLjguJMNCivguYDguIrguLTguJTguIrguLLguKIg4Lih4Liy4LiB4Lia4Liz4Lij4Li44LiHDQor4LmA4LiK4Li04LiU4Lie4Lix4LiZ4LiY4Li44LmMIOC5gOC4iOC4o+C4tOC4jeC5gOC4p+C4ig0KK+C5gOC4iuC4tOC4lOC4qOC4seC4geC4lOC4tOC5jCDguJnguLPguYDguIjguKPguLTguI3guIHguLTguIjguIHguLjguKUNCivguYDguIrguLTguJTguKjguLHguIHguJTguLTguYwg4Liq4Li44LiE4LiZ4LiY4Liq4Li04LiH4Lir4LmMDQor4LmA4LiK4Li14Lii4LiHIOC4quC4s+C5gOC4o+C5h+C4iOC4nOC4pQ0KK+C5gOC4iuC4teC4ouC4sOC4leC4hyDguYDguK3guIHguK3guKPguLjguJPguKPguLjguYjguIfguKTguJfguJjguLTguYwNCivguYDguIrguLXguYnguKLguJkg4Lih4Lit4LiN4LiB4Lij4Liw4LmC4LiX4LiBDQor4LmA4LiK4Li34LmJ4LitIOC5gOC4geC4leC4uOC4meC4p+C4oQ0KK+C5gOC4iuC4t+C5ieC4rSDguYDguKPguLfguK3guIfguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYDguIrguLfguYnguK3guYDguJXguYfguIEg4LmB4LiL4LmI4LiJ4Li04LmI4LiZDQor4LmA4LiK4LmH4LiH4Liq4Li44LiZIOC5geC4i+C5iOC5gOC4peC4teC5iOC4ouC4pw0KK+C5gOC4iuC5ieC4siDguJjguKPguKPguKHguYLguIrguJXguLQNCivguYHguIrguYjguKEg4LmA4Lic4Li34Lit4LiB4LiX4Lit4LiHDQor4LmC4LiK4LiEIOC4nuC4h+C4qOC4suC4m+C4suC4mQ0KK+C5guC4iuC4hOC4iuC4seC4oiDguIjguLHguJnguJfguKPguYzguJzguLLguKrguLjguIINCivguYLguIrguITguIrguLHguKIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC4muC4uOC4jeC4jeC4suC4o+C4seC4leC4meC5jOC4quC4luC4suC4nuC4ow0KK+C5guC4iuC4hOC4iuC4seC4oiDguKDguLLguKfguKrguLjguJfguJjguLTguIHguLLguKMNCivguYLguIrguITguIrguLHguKIg4Lin4Lix4LiH4Lih4Liw4LiZ4Liy4LinDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4nuC4ow0KK+C5guC4iuC4hOC4lOC4tSDguIHguLPguJ7guKXguYDguIrguJXguLgNCivguYLguIrguITguK3guJnguLHguJnguJXguYwg4Lie4LiH4Lip4LmM4LiV4Li04LmB4LiUDQor4LmC4LiK4LiV4Li0IOC4iOC4tOC4k+C4k+C4p+C4suC5guC4qg0KK+C5guC4iuC4leC4tCDguJvguKPguLDguKLguIfguITguYzguJfguKPguLHguJ7guKLguYwNCivguYLguIrguJXguLQg4Liq4LiZ4LiY4Li04LiX4Lij4Lix4Lie4Lii4LmMDQor4LmC4LiK4LiV4Li04LiB4LiyIOC4quC4p+C4seC4quC4lOC4tOC5jOC4quC4suC4o+C4sA0KK+C5guC4iuC4leC4tOC4oeC4siDguIHguKHguKXguKfguLTguJrguLnguKXguKLguYwNCivguYLguIrguJXguLTguKPguKog4LiE4Li54Lic4Liy4Liq4Li44LiCDQor4LmC4LiK4LiV4Li04Lin4Li44LiS4Li0IOC4nOC4lOC4suC4iOC4tOC4leC4ow0KK+C5g+C4iuC5iOC5gOC4reC5h+C4hyDguYHguIvguYjguKvguKXguLTguYjguKcNCivguYTguIrguKIg4LmB4LiL4LmI4LmC4LiL4LinDQor4LmE4LiK4Lii4LiT4Lij4LiH4LiE4LmMIOC4quC4uOC4meC4l+C5guC4o+C4l+C4ouC4suC4mQ0KK+C5hOC4iuC4ouC4nuC4oyDguKrguLjguITguJnguYLguJjguKvguIENCivguYTguIrguKLguKLguIfguITguYwg4Lij4Li04LiZ4Liq4LiW4Li04LiV4LiZ4LiZ4LiX4LmMDQor4LmE4LiK4Lii4Lii4LioIOC4nuC4ueC4meC4lOC4tQ0KK+C5hOC4iuC4ouC4ouC4seC4meC4leC5jCDguIjguLTguKPguLINCivguYTguIrguKLguKLguLIg4Lir4Liy4LiN4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Lin4LiH4Lio4LmMDQor4LmE4LiK4Lii4Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4leC4meC5geC4geC5ieC4p+C4geC4suC4jeC4iOC4meC5jA0KK+C5hOC4iuC4ouC4p+C4seC4kuC4meC5jCDguInguKXguK3guIfguJ7guLHguJnguJjguKPguLHguJXguJnguYwNCivguYTguIrguKLguKfguLHguJLguJnguYwg4Liq4Liy4Lin4LiW4Lii4Liy4LiH4LiB4Li54LijDQor4LmE4LiK4Lii4Liq4LiZ4LiY4Li04LmMIOC4luC4meC4seC4lOC5g+C4iuC5ieC4m+C4t+C4mQ0KK+C5hOC4iuC4ouC4seC4meC4leC5jCDguKTguJXguKfguLTguKPguLjguKzguKvguYwNCivguYTguIrguKLguLIg4Lih4LiT4Li1DQor4LmE4LiK4Lii4LmA4LiX4LieIOC4nuC4tOC4oeC4peC4mOC4meC4o+C4seC4geC4qeC5jA0KK+C5hOC4iuC5guC4oiDguKrguLTguJfguJjguLTguIHguKPguYLguKrguKHguJnguLHguKoNCivguIvguIHguK7guLjguKIg4Lie4Lix4LiZ4LiX4LijDQor4LiL4LiH4LiE4LmMIOC4o+C4nuC4tOC4l+C4ouC4nuC4o+C4o+C4kw0KK+C4i+C5iOC4h+C5gOC4oeC5ieC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguYnguIfguYDguKrguYfguIcg4Liq4Li44Lij4Li04Lii4Liw4LiI4Lix4LiZ4LiX4Lij4LmM4Lir4Lit4LihDQor4LiL4Lit4Lii4Lih4LmI4Lin4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4l+C4s+C5gOC4q+C4oeC4t+C4reC4mQ0KK+C4i+C5iOC4reC4q+C4ouC4tOC4mSDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLHguIfguYDguK3guYfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Lix4LmJ4Lin4Lib4Lin4Lii4LmA4Lih4LmJ4LiHIOC5geC4i+C5iOC4i+C4seC4pw0KK+C4i+C4suC4oeC4p+C4pSDguJ/guLTguKXguKXguLTguJ7guKrguYzguKHguLTguKfguKrguYwNCivguIvguLLguKfguLLguKPguLHguJkg4LiL4Li04LiH4Lir4LmMDQor4LiL4Li04LiB4LiL4Lin4LiHIOC5geC4i+C5iOC4reC4seC5ieC4hw0KK+C4i+C4tOC4oeC4hOC5ieC4p+C4hyDguYHguIvguYjguYDguJXguIcNCivguIvguLTguKfguIfguYnguK0g4LmB4LiL4LmI4LiB4Lix4LinDQor4LiL4Li04Lin4Lih4LmI4Lin4LiiIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4i+C4tOC4p+C5gOC4iOC5h+C4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLTguKfguYTguJnguYkg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiL4Li04LmJ4Lin4LiI4Li5IOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4i+C4tOC5ieC4p+C5gOC4leC4teC4ouC4hyDguJvguKPguLDguJTguLTguKnguJDguYwNCivguIvguLXguKPguK3guKLguLjguJTguJTguLTguJkg4Lih4Li04LiZ4Liq4Liy4LiE4LijDQor4LiL4Li34LmI4Lit4LmA4Lir4Lil4Li14Lii4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4i+C4uOC4meC4leC4tOC5iuC4gSDguYHguIvguYjguK7guLbguYnguIcNCivguIvguLjguKLguIfguYnguK0g4LmB4LiL4LmI4LmA4Lit4Li14LmJ4Lii4LinDQor4LiL4Li44LmI4Lii4Lil4LmJ4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4i+C4uOC5ieC4ouC4peC4tOC5ieC4oSDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLnguJrguYrguKfguKIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiL4Li54LmI4LmA4LiB4Li14LmI4Lii4LinIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4i+C4mSDguYLguKvguKHguJTguYDguKrguKENCivguYDguIvguLLguLDguK7guKfguIcg4LmB4LiL4LmI4Lir4Lil4Liy4LiiDQor4LmA4LiL4Li14Lii4LiH4LiB4Lin4LiHIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C5gOC4i+C4teC4ouC4oeC4iOC4uSDguYDguJjguLXguKLguKPguJvguKPguLXguIrguLINCivguYDguIvguLXguKLguKHguYDguIfguYfguIEg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4LmA4LiL4Li14Lii4Lin4LiV4Lin4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C5gOC4i+C4teC4ouC4sOC4iOC4seC5ieC4pyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguLXguKLguLDguYDguIHguLXguKLguKcg4LmB4LiL4LmI4LiB4Li14LmJDQor4LmA4LiL4Li14LmI4Lii4LiH4LiB4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4i+C4teC5iOC4ouC4oeC4iOC4p+C4mSDguYHguIvguYjguYDguK7guYnguIcNCivguYDguIvguLXguYjguKLguKHguKXguLHguYnguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LmA4LiL4Li14LmI4Lii4Lih4LmA4LiB4Li14Lii4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4i+C4teC5iOC4ouC4oeC5gOC4oeC5ieC4hyDguYHguIvguYjguYDguKXguYnguLINCivguYDguIvguLXguYjguKLguKfguIjguLTguKcg4LmB4LiL4LmI4LmA4Lit4LmH4LiHDQor4LmA4LiL4Li14LmJ4Lii4LihIOC5geC4i+C5iOC5gOC4reC5h+C4hw0KK+C5gOC4i+C4teC5ieC4ouC4sOC4ouC5ieC4hyDguYHguIvguYjguITguLkNCivguYDguIvguYfguIfguYDguK7guLXguKLguIcg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LmA4LiL4LmI4LiH4LmA4LiV4Li14Lii4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4i+C5ieC4ouC5gOC4iOC4teC5iOC4oiDguYHguIvguYjguYDguJrguYoNCivguYLguIvguYDguJ/guLXguKIg4LiU4Liz4Liq4Liz4Lij4Liy4LiNDQor4LmE4LiL4LiI4Li5IOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C5hOC4i+C5guC4geC4reC4seC4hyDguYHguIvguYjguKXguLTguYnguKENCivguYTguIvguYnguYDguK3guYfguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiN4Liy4LiT4Li04LiZ4Li1IOC4mOC4iuC4suC4peC4uOC4oOC4seC4jw0KK+C4jeC4suC4k+C4teC4ouC5jCDguK3guLjguYnguKLguKrguIHguLjguKUNCivguI3guLLguJnguLUg4LiV4Lix4LiZ4LiV4Li04LiV4Lij4Liw4LiB4Li54LilDQor4LiQ4LiZ4Li04LiU4LiyIOC4quC4geC4uOC4peC4iuC4seC4ouC4p+C4suC4meC4tOC4ig0KK+C4kOC4suC4geC4ueC4oyDguJfguKPguIfguJvguKPguLDguIjguLHguIHguKnguYzguIHguLjguKUNCivguJDguLLguJnguLHguJnguJTguKPguYwg4Lit4Lix4Lio4Lin4LmA4Lil4Li04Lio4Liq4Lij4LijDQor4LiQ4Liy4LiZ4Li04Lio4Lin4Lij4LmMIOC5gOC4iOC4o+C4tOC4jeC4nuC4h+C4qOC5jA0KK+C4kOC4suC4m+C4meC4tSDguKjguKPguLXguJnguLLguIQNCivguJDguLTguJXguKPguLLguJ7guKMg4Liq4Liz4Lij4Liy4LiN4LiI4Li04LiV4LiV4LmMDQor4LiQ4Li04LiV4Li0IOC5guC4iuC4hOC5gOC4iOC4o+C4tOC4jeC4nuC4seC4kuC4meC4geC4tOC4iA0KK+C4kOC4tOC4leC4tOC4geC4siDguKHguLXguJjguKPguJPguLUNCivguJDguLTguJXguLTguJnguLHguJnguJfguYwg4LiI4Lij4Li04Lii4Lin4Lix4LiS4LiZ4Liq4LiB4Li44LilDQor4LiQ4Li04LiV4Li04Lie4LiH4Lio4LmMIOC4qOC4uOC4oOC4nOC4pQ0KK+C4kOC4tOC4leC4tOC4nuC4oyDguYDguJXguIrguLDguYLguKrguKDguJPguKHguJPguLUNCivguJDguLTguJXguLTguJ7guKMg4Liq4Li34Lia4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiQ4Li04LiV4Li04Lih4LiyIOC4hOC4h+C4quC4p+C5iOC4suC4hw0KK+C4kOC4tOC4leC4tOC4oeC4siDguYDguJ7guLXguKLguKPguIrguK3guJoNCivguJDguLTguJXguLTguKHguLIg4Lit4LiZ4Li44Liq4LiZ4LiY4Li04LmMDQor4LiQ4Li04LiV4Li04Lij4Lix4LiV4LiZ4LmMIOC4m+C4o+C4sOC4oOC4suC4ouC4quC4suC4mOC4gQ0KK+C4kOC4tOC4leC4tOC4p+C4seC4kuC4meC5jCDguKXguYnguKfguJnguKfguLHguJLguJnguLLguJnguLjguIHguLnguKUNCivguJDguLTguKPguLLguK3guKMg4Lih4Li04LiZ4Lij4Liy4LiK4Lix4LiZDQor4LmA4LiR4Li14Lii4LijIOC4geC4o+C4o+C4k+C4quC4ueC4lQ0KK+C4k+C4kOC4p+C4o+C4o+C4kyDguJvguKPguLDguKLguLjguIHguJXguYzguKrguIHguLjguKUNCivguJPguJ7guKUg4Lie4Lil4Li04LiZ4Liq4Li44LiVDQor4LiT4Lij4LiH4LiE4LmM4LiK4Lix4LiiIOC4geC4tOC4leC4leC4tOC5guC4iuC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4k+C4o+C4h+C4hOC5jOC4iuC4seC4oiDguJjguJnguLDguJvguLHguIHguKnguLTguJMNCivguJPguKPguIfguITguYzguIrguLHguKIg4Lio4Li04Lij4Li04Lia4Li44LiN4Lil4Liw4Lih4LmI4Lit4LihDQor4LiT4Lij4LiH4LiE4LmM4Lii4LioIOC4quC4s+C4o+C4suC4jQ0KK+C4k+C4o+C4h+C4hOC5jOC4pOC4l+C4mOC4tOC5jCDguJ7guJnguLLguKrguKfguLHguKrguJTguLTguYwNCivguJPguKPguIfguITguYzguKfguLTguJfguKLguYwg4Lin4Li04LiX4Liq4Lix4LiX4LiY4Liy4Lin4Lij4LiB4Li44LilDQor4LiT4Lij4LiH4LiE4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4lOC4teC4reC4s+C4nuC4seC4mQ0KK+C4k+C4o+C4h+C4hOC5jOC4qOC4seC4geC4lOC4tOC5jCDguJ7guKPguKvguKHguKrguLLguILguLIg4LiTIOC4quC4geC4peC4meC4hOC4ow0KK+C4k+C4o+C4h+C4hOC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguKXguLTguKjguK3guJnguLHguJnguJXguYwNCivguJPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4LmB4Liq4LiH4Lin4Lix4LiK4LijDQor4LiT4Lij4LiH4LiE4LmM4LmA4LiU4LiKIOC4muC4uOC4jeC4hOC4o+C4reC4hw0KK+C4k+C4o+C4h+C4hOC5jCDguIHguK3guIfguJfguKPguLHguJ7guKLguYzguYLguJUNCivguJPguKPguIfguITguYwg4LiB4Li44Liq4Liq4Lil4Liy4LiZ4Li44Lig4Liy4LieDQor4LiT4Lij4LiH4LiE4LmMIOC4guC4seC4meC4iOC4reC4gQ0KK+C4k+C4o+C4h+C4hOC5jCDguITguLPguJ7guLLguJnguLTguIoNCivguJPguKPguIfguITguYwg4LiI4Lin4Lia4Lik4LiB4Lip4LmM4LmA4Lii4LmH4LiZDQor4LiT4Lij4LiH4LiE4LmMIOC4iOC4s+C4o+C4ueC4jeC4p+C4seC4kuC4meC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguYDguIjguKPguLTguI3guYDguIHguLXguKLguKPguJXguLTguKfguIfguKjguYwNCivguJPguKPguIfguITguYwg4LiK4Lix4Lii4LiY4Li14Lij4LiB4Li04LiIDQor4LiT4Lij4LiH4LiE4LmMIOC5guC4iuC4hOC4iOC4suC4o+C4uOC4o+C4seC4leC4meC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguJTguYjguLLguJnguK3guJnguLHguJnguJXguYzguKrguLjguIINCivguJPguKPguIfguITguYwg4LiV4Lix4LmJ4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4Lin4Li04LiX4Lii4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC5guC4leC5iuC4sOC5gOC4h+C4tOC4mQ0KK+C4k+C4o+C4h+C4hOC5jCDguJfguK3guIfguYDguKPguLfguK3guIcNCivguJPguKPguIfguITguYwg4LmE4LiX4Lii4Liq4Li44Lij4Li04Lii4LiwDQor4LiT4Lij4LiH4LiE4LmMIOC4meC5ieC4reC4ouC4p+C4h+C4qOC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguJnguLjguJXguIjguKPguLHguKoNCivguJPguKPguIfguITguYwg4Lia4Li44LiN4Liq4Li04LiX4LiY4Li04LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4m+C4o+C4teC4jeC4suC4meC4meC4l+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguJzguKXguLLguKHguLTguJXguKMNCivguJPguKPguIfguITguYwg4Lie4Lij4Liy4Lii4LiX4Lit4LiHDQor4LiT4Lij4LiH4LiE4LmMIOC4nuC4tOC4o+C4tOC4ouC4nuC4pOC4meC4l+C5jOC4quC4geC4uOC4pQ0KK+C4k+C4o+C4h+C4hOC5jCDguYLguJ7guJjguLTguJ7guLjguIHguIHguLDguJnguLANCivguJPguKPguIfguITguYwg4Lih4LiT4Li14Lin4LiH4Lip4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC5gOC4oeC4mOC4teC4p+C4tOC4o+C4tOC4ouC4suC4oOC4o+C4k+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKPguK3guJTguKrguLLguKINCivguJPguKPguIfguITguYwg4Lij4Li44LmI4LiH4Lin4Li04LiK4Liy4LiZ4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4peC4tOC4oeC4m+C4tOC4qOC4tOC4peC4m+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKfguIfguKnguYzguKrguKfguYjguLLguIcNCivguJPguKPguIfguITguYwg4Lin4Li04Lia4Li54Lil4Lii4LmM4LmA4LiI4Lij4Li04LiN4LiB4Li04LiIDQor4LiT4Lij4LiH4LiE4LmMIOC4qOC4o+C4teC4meC4suC4p+C4suC4p+C4h+C4qOC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKjguLTguKXguJvguIrguLPguJnguLLguI0NCivguJPguKPguIfguITguYwg4Liq4Lij4Lij4Liq4Li44LiZ4LiX4LijDQor4LiT4Lij4LiH4LiE4LmMIOC4quC4tOC4l+C4mOC4tOC4oeC4h+C4hOC4pQ0KK+C4k+C4o+C4h+C4hOC5jCDguKrguLjguJfguJjguLTguKfguLHguKUNCivguJPguKPguIfguITguYwg4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4q+C4oeC4t+C5iOC4meC4p+C4h+C4qeC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguK3guJTguLjguKXguKLguYzguKfguLTguIjguLTguJXguKMNCivguJPguKPguIfguITguYwg4Lit4Lix4LiH4LiE4Liw4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4reC4uOC5iOC4meC4reC5iOC4reC4mQ0KK+C4k+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguJXguLHguYnguIfguYDguIjguKPguLTguI3guKrguLjguILguIjguLXguKPguLANCivguJPguKPguLTguKrguLLguKvguYwg4LmA4Lir4Lil4Li34Lit4LiH4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiT4Lix4LiK4LiK4LiyIOC4geC4quC4tOC4nuC4o+C5ieC4reC4hw0KK+C4k+C4seC4juC4kOC4nuC4oyDguJ7guKPguKvguKHguIjguLTguJnguJTguLINCivguJPguLHguI7guJDguLTguJnguLUg4LiU4Lin4LiH4Lig4Li04Lij4Lih4Lii4LmMDQor4LiT4Lix4LiP4LiQ4Lie4LiH4Lio4LmMIOC4guC4iOC4o+C5guC4geC4p+C4tOC4l+C4ouC5jA0KK+C4k+C4seC4j+C4kOC4siDguJnguYnguK3guKLguJnguLTguKfguKPguJPguYwNCivguJPguLHguI/guJDguYTguIrguKIg4Liq4Liy4Lii4Lia4Lix4LinDQor4LiT4Lix4LiQIOC4luC4meC4reC4oeC4nuC4tOC4iuC4seC4og0KK+C4k+C4seC4kCDguK3guLTguJnguJjguIHguLLguKMNCivguJPguLHguJDguIHguLLguJnguJXguYwg4LiI4LiH4LiU4Li1DQor4LiT4Lix4LiQ4LiB4Liy4LijIOC4reC4uOC4lOC4oeC4q+C4o+C4o+C4qeC4suC4geC4uOC4pQ0KK+C4k+C4seC4kOC4iuC4meC4gSDguYHguIHguYjguIfguKvguLTguJnguYHguIHguYnguKcNCivguJPguLHguJDguIrguLHguKIg4Lib4Li04Lii4Liw4Lin4LiH4Lio4LmM4Lin4Lix4LiS4LiZ4LiyDQor4LiT4Lix4LiQ4LiN4LiyIOC4peC4teC5ieC4nuC5ieC4meC4nuC4suC4pQ0KK+C4k+C4seC4kOC4k+C4tOC4iuC4siDguJjguYDguJnguKjguJ7guIfguKjguYzguJjguKPguKPguKENCivguJPguLHguJDguJjguKMg4LiE4Li54LiU4Liz4Lij4LiH4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiT4Lix4LiQ4LiZ4Lix4LiZ4LiX4LiZ4LmMIOC4l+C4reC4h+C4p+C4tOC5gOC4qOC4qQ0KK+C4k+C4seC4kOC4m+C4geC4o+C4k+C5jCDguYDguKXguLLguYHguIHguYnguKfguKvguJnguLkNCivguJPguLHguJDguJ7guIfguKjguYwg4Liq4Li04Lij4Li04Lie4Lil4Lix4LiH4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4LiT4Lix4LiQ4Lie4LiH4Lip4LmMIOC4quC4seC4meC4leC4tOC4qOC4suC4meC4leC5jA0KK+C4k+C4seC4kOC4nuC4oyDguJnguLLguKHguJrguLjguKPguLUNCivguJPguLHguJDguJ7guKMg4Lir4Lin4Lix4LiH4Lio4Lij4Li14LiV4Lij4Lix4LiiDQor4LiT4Lix4LiQ4Lie4LilIOC4iuC5ieC4suC4h+C4quC4s+C4peC4tQ0KK+C4k+C4seC4kOC4nuC4pSDguKDguLHguJfguKPguYDguKPguLfguK3guIfguKrguIHguLjguKUNCivguJPguLHguJDguJ7guKUg4Lir4Lin4Lix4LiH4Lik4LiX4LiY4Li04LmM4LmE4LiB4Lij4LiB4Li44LilDQor4LiT4Lix4LiQ4Lig4Lij4LiT4LmMIOC4nuC4o+C4geC4tOC4leC4leC4tOC5guC4iuC4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4k+C4seC4kOC4ouC4siDguKjguLTguKPguLTguJnguLHguJnguJfguYwNCivguJPguLHguJDguKfguKMg4Liq4Li04LiH4Lir4LiX4Lix4LiVDQor4LiT4Lix4LiQ4Lin4Lij4Lij4LiTIOC4o+C4seC4qOC4oeC4teC4nuC4o+C4q+C4oQ0KK+C4k+C4seC4kOC4p+C4seC4kuC4meC5jCDguJrguLjguJnguJnguLLguIQNCivguJPguLHguJDguKfguLjguJLguLQg4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiT4Liy4LiB4Li54LijDQor4LiT4Lix4LiQ4Lin4Li44LiS4Li0IOC4m+C4seC4jeC4leC4sOC5guC4jQ0KK+C4k+C4seC4kOC4p+C4uOC4kuC4tCDguKrguLTguKHguLDguKrguLjguKfguKPguKPguJPguKPguIfguITguYwNCivguJPguLHguJDguKrguKHguJ7guKUg4LiI4Liz4Lib4Liy4LiX4Li04Lie4Lii4LmMDQor4LiT4Lix4LiQ4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4q+C4peC4tOC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4k+C4seC4kOC4tOC4ouC4siDguKrguLHguJnguJXguLTguYLguKLguJjguLTguJkNCivguJPguLHguKjguKDguKMg4LmA4Lit4Li14LmI4Lii4Lih4LmC4Lit4Lig4Liy4LiqDQor4LiT4Li04LiK4Liy4Lig4Lix4LiX4LijIOC4iuC4oeC4p+C4tOC4iuC4sg0KK+C4k+C4uOC4leC4tOC4qOC4tOC4qeC4j+C5jCDguKfguLTguJrguLnguKXguKLguLLguJnguJnguJfguYwNCivguJTguJnguLHguKIg4LiB4Lil4LmI4Lit4Lih4LmA4Lit4Li14LmJ4Lii4LiHDQor4LiU4LiZ4Lix4LiiIOC4ieC4seC4nuC4nuC4o+C4o+C4k+C4o+C4seC4h+C4qeC4tQ0KK+C4lOC4meC4seC4oiDguJfguLTguKfguLLguYDguKfguIoNCivguJTguJnguLHguKIg4Lie4Li04LiT4Lij4Lix4LiV4LiZ4LmMDQor4LiU4LiZ4Lix4LiiIOC4p+C4seC4kuC4meC4o+C4seC4iuC4geC4tOC4iA0KK+C4lOC4meC4seC4oiDguKvguLDguKrguLTguJXguLDguJ7guIfguKnguYwNCivguJTguJnguLjguIjguKMg4LmA4LiI4Li04Lih4LmA4LiI4Li04LiU4Lie4LilDQor4LiU4Lij4Lij4LiK4LiZ4Li1IOC5gOC4l+C4p+C4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4lOC4o+C4uOC4k+C4nuC4oyDguIHguKHguKXguKDguLjguKoNCivguJTguKPguLjguJPguLUg4LiI4Lix4LiZ4LiU4Liy4LmA4Lin4Li14Lii4LiHDQor4LiU4Lij4Li44LiT4Li1IOC4leC4o+C4teC4qOC4tOC4o+C4tOC4nuC4tOC4qOC4suC4pQ0KK+C4lOC4o+C4uOC4k+C4tSDguJrguLjguKnguKLguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguJTguKPguLjguJPguLUg4Lij4Lix4LiB4Liq4Lix4LiV4Lii4LmMDQor4LiU4Lij4Li44LiT4Li1IOC4qOC4o+C4teC4iuC4seC4ouC4geC4uOC4pQ0KK+C4lOC4o+C4uOC4k+C4tSDguKvguLLguI3guKrguKHguJrguLnguKPguJPguYwNCivguJTguKXguJPguLHguI/guJDguLIg4Lio4Lij4Li14LmA4Lij4Li34Lit4LiH4LiK4Li14LieDQor4LiU4Lil4Lik4LiU4Li1IOC4p+C4tOC4l+C4ouC4suC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4lOC4p+C4hyDguYDguKrguKHguLLguIHguLnguKMNCivguJTguKfguIfguIHguKHguKUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiU4Lin4LiH4LiB4Lih4LilIOC4nuC4ueC4nuC4seC4kuC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4lOC4p+C4h+C4geC4oeC4pSDguKrguLTguJnguJjguLjguJrguLnguKPguJPguYwNCivguJTguKfguIfguIjguLHguJnguJfguKPguYwg4LiE4Lil4Lix4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4LiU4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5guC4ouC4mOC4suC4quC4tOC4h+C4q+C5jA0KK+C4lOC4p+C4h+C4iOC4tOC4leC4leC5jCDguIHguLLguKPguLjguJPguKrguJbguLTguJXguKLguYzguIrguLHguKINCivguJTguKfguIfguJTguLLguKcg4LmB4LiL4LmI4LiB4LmK4Lin4LiiDQor4LiU4Lin4LiH4LiU4Liy4LinIOC5gOC4q+C4peC4t+C4reC4h+C4reC4suC4quC4meC4sOC4l+C4tOC4nuC4ouC5jA0KK+C4lOC4p+C4h+C4leC4siDguYHguJXguIfguK3guYjguK3guJkNCivguJTguKfguIfguJXguLIg4Liq4Lih4LiI4Li04LiV4Lij4LmMDQor4LiU4Lin4LiH4LiX4Li04Lie4Lii4LmMIOC4p+C4meC4sOC4oOC4ueC4leC4tA0KK+C4lOC4p+C4h+C4meC4oOC4siDguKrguKfguJnguJjguJnguLLguKjguLTguKPguLQNCivguJTguKfguIfguJ7guKMg4LiE4Liz4LiC4Lix4LiZ4LiY4LmMDQor4LiU4Lin4LiH4Lie4LijIOC4iuC4uOC4oeC4nuC4h+C4qeC5jOC4l+C4reC4hw0KK+C4lOC4p+C4h+C4nuC4oyDguYTguJXguKPguKrguLjguJjguKPguKPguKHguJ7guKMNCivguJTguKfguIfguJ7guKMg4Lib4Li04Lii4Liw4LiK4Liy4LiV4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LiU4Lin4LiH4Lie4LijIOC4ouC4h+C4hOC5jOC4pOC4m+C4o+C4sOC4nuC4seC4meC4mOC5jA0KK+C4lOC4p+C4h+C4nuC4oyDguKfguLTguYTguKXguJ7guKPguYDguIjguKPguLTguI0NCivguJTguKfguIfguJ7guKMg4Liq4Li44LiE4LiZ4LiY4LmMDQor4LiU4Lin4LiH4Lie4LijIOC4reC4tuC5ieC4h+C4reC4seC4oeC4nuC4o+C4p+C4tOC5hOC4pQ0KK+C4lOC4p+C4h+C4oeC4mSDguKfguIfguKnguYzguIjguLHguJnguJfguKPguYzguYHguJTguIcNCivguJTguKfguIfguKPguLHguJXguJnguYwg4LiU4LmI4Liy4LiZ4Lin4Lix4LiS4LiZ4Lio4Li04Lij4Li0DQor4LiU4Lin4LiH4Lij4Lix4LiV4LiZ4LmMIOC4qOC4o+C4teC4l+C4reC4hw0KK+C4lOC4p+C4h+C4pOC4lOC4tSDguJfguKfguLXguJ7guIjguJnguYwNCivguJTguKfguIfguKTguKHguKUg4Lij4Lix4LiB4Lip4Liy4LiE4Li44LiTDQor4LiU4Lin4LiH4Liq4Lih4LijIOC4oeC4k+C4teC4nOC5iOC4reC4hw0KK+C4lOC4p+C4h+C4quC4uOC4oeC4mSDguKrguKHguKfguLTguIrguLHguKINCivguJTguKfguIfguYDguJTguLfguK3guJkg4LiE4Lil4LmJ4Liy4Lii4Lie4LiH4Lip4LmM4Lie4Lix4LiZ4LiY4LmMDQor4LiU4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4muC4uOC4jeC4iuC4seC4ouC4pOC4l+C4mOC4tOC5jA0KK+C4lOC4p+C4h+C5gOC4lOC4t+C4reC4mSDguKrguLHguKLguYDguIHguJXguLgNCivguJTguKfguIfguYDguJ7guIrguKMg4Lit4Lij4Lix4LiN4LiK4Lij4Liy4LiY4LijDQor4LiU4Lin4LiH4LmB4LiCIOC5guC4geC4oeC4uOC4l+C4nuC4h+C4qOC5jA0KK+C4lOC4p+C4h+C5g+C4iCDguIHguLXguKPguLDguKfguLTguKjguLLguKrguIHguLTguIgNCivguJTguKfguIfguYPguIgg4LiK4Liy4Lin4Lib4Lij4Liw4Liq4LiyDQor4LiU4Lin4LiH4LmD4LiIIOC4l+C4seC4nuC4nuC4sOC4o+C4seC4h+C4quC4tQ0KK+C4lOC4p+C4h+C5g+C4iCDguJzguLjguJTguJvguKPguLDguKDguLLguIHguLjguKUNCivguJTguKfguIfguYPguIgg4Lij4Lix4LiB4LmA4LiZ4LiV4Lij4Liq4Liy4LiE4LijDQor4LiU4Lin4LiH4LmD4LiIIOC4quC4h+C4p+C4meC5geC4geC5ieC4pw0KK+C4lOC4p+C4h+C5g+C4iCDguK3guLjguJvguYDguKrguJnguKrguIHguLjguKXguKfguIfguKnguYwNCivguJTguK3guIHguYTguKHguYkg4LiI4LmJ4Lit4Lii4LiW4LiZ4Lit4LihDQor4LiU4Liw4Lir4LmMIOC4lOC4teC5gOC4iOC4o+C4tOC4jQ0KK+C4lOC4seC4quC4i+C4seC4meC4i+C4tOC4h+C4q+C5jCDguIHguLjguKXguLLguJXguLUNCivguJTguLLguKPguYzguIrguLHguYjguJkg4LiL4Li04LiH4Lir4LmMDQor4LiU4Liy4Lij4LiT4Li1IOC4iOC4s+C4m+C4sg0KK+C4lOC4suC4o+C4k+C4tSDguJbguLTguKPguJjguJnguIHguLjguKUNCivguJTguLLguKPguJPguLUg4LmA4Lib4Lij4Li34LmI4Lit4LiH4Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4LiU4Liy4Lij4LiT4Li1IOC5gOC4oeC4huC4geC4p+C4tQ0KK+C4lOC4suC4o+C4k+C4tSDguKfguLTguIrguI3guITguLjguJvguJXguYwNCivguJTguLLguKPguJPguLUg4LmA4Liq4Lij4Li04Lih4Liq4Li44LiZ4LiX4Lij4Lio4Li04Lil4Lib4LmMDQor4LiU4Liy4Lij4Liw4LiB4LiyIOC4qOC4tOC4o+C4tOC4quC4seC4meC4leC4tOC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4lOC4suC4o+C4siDguIjguLHguJnguJfguKPguYzguYHguKrguIfguKrguLjguIENCivguJTguLLguKPguLIg4LmA4Lil4Li14LmJ4Lii4LiH4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMDQor4LiU4Liy4Lij4Liy4LiT4Li1IOC5gOC4quC4suC4p+C4oeC4pQ0KK+C4lOC4suC4o+C4suC4o+C4seC4leC4meC5jCDguIjguLTguIfguYDguKrguJbguLXguKLguKPguJfguKPguLHguJ7guKLguYwNCivguJTguLLguKPguLLguKPguLHguJXguJnguYwg4Liq4LiW4Li04LiV4LiY4Lij4Lij4Lih4LiZ4Li54LiNDQor4LiU4Liy4Lij4Liy4Lin4Lij4Lij4LiTIOC4o+C4seC4leC4meC4quC4uOC4oOC4sg0KK+C4lOC4suC4o+C4tOC4k+C4tSDguYDguIHguKnguKHguKrguLHguJnguJXguYwNCivguJTguLLguKPguLTguJnguJfguKPguYwg4Liq4Lit4LiZ4LmA4LiI4LiV4LiZ4LmMDQor4LiU4Liy4Lij4Li44LiT4Li1IOC4oeC4seC5iOC4meC4hOC4hw0KK+C4lOC4suC4peC4seC4lCDguKfguLTguKHguLjguIHguJXguLTguJrguLjguJXguKMNCivguJTguLLguKfguJPguLUg4Liq4Li44LiC4Lih4LiyDQor4LiU4Liy4Lin4Lij4Li44LmI4LiHIOC4nuC4o+C4q+C4oeC4qOC4o+C4teC4l+C4reC4hw0KK+C4lOC4suC4p+C4uOC4kiDguK3guLHguIrguIzguLLguKrguLHguKINCivguJTguLLguKfguYDguKPguLfguK3guIcg4Lij4Lit4LiU4Lig4Lix4LiiDQor4LiU4Liy4LmA4Lij4LioIOC4nuC4o+C4o+C4k+C4guC4suC4oQ0KK+C4lOC4s+C4o+C4hyDguYDguIHguKnguLDguJvguKPguLDguJTguLTguKnguJDguYwNCivguJTguLPguKPguIcg4LiX4Lit4LiH4Lih4Liy4LiBDQor4LiU4Liz4Lij4LiHIOC4o+C4seC4iuC4leC4qOC4o+C4teC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4lOC4s+C4o+C4hyDguKrguLjguILguJzguKXguLLguJnguLHguJnguJfguYwNCivguJTguLPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4Lii4Li34LiZDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4hOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguIrguLnguJXguLTguIHguLLguI3guIjguJnguYwNCivguJTguLPguKPguIfguITguYwg4LiX4Lit4LiH4Lie4Lil4Liy4LiiDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4m+C4o+C4teC4lOC4suC4oOC4seC4l+C4o+C4nuC4h+C4qeC5jA0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguKDguLnguJfguLHguJXguYLguJUNCivguJTguLPguKPguIfguITguYwg4Lin4LiH4Lip4LmM4LiX4Lit4LiHDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4quC4tOC4oeC4nuC4peC4tOC4nuC4seC4meC4mOC4uOC5jA0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguK3guLLguKLguLjguYDguIjguKPguLTguI3guIHguLnguKUNCivguJTguLPguKPguIfguKTguJfguJjguLTguYwg4Liq4Lix4LiZ4LiV4Li04Lib4Liy4LiV4Li1DQor4LiU4Liz4Lij4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4sOC4peC4tOC4l+C4reC4hw0KK+C4lOC4s+C4o+C4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguKHguLTguJXguKPguKDguLHguIHguJTguLUNCivguJTguLPguKPguLQg4Lic4Liy4LiH4Lii4Lit4Lii4LiL4LmJ4Liy4LiiDQor4LiU4Liz4Lij4Li04Lir4LmMIOC4m+C4o+C4uOC4h+C5geC4leC5iOC4h+C4geC4tOC4iA0KK+C4lOC4s+C5gOC4geC4tOC4hyDguIjguLHguJnguJfguKPguLLguJvguKPguLDguKDguLLguYDguKfguIoNCivguJTguLPguYDguJnguLTguJkg4LmA4Lic4LmI4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiU4Li04LiZIOC4o+C4t+C5iOC4meC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4lOC4tOC4peC4gSDguJvguKPguLLguIfguITguYzguJnguKfguKPguLHguJXguJnguYwNCivguJTguLTguKXguIEg4Liq4Liy4Lih4Lil4LmA4Lin4LiKDQor4LiU4Li04Lip4Lie4LiH4LiE4LmMIOC4nuC4pOC4kuC4tOC4mOC4suC4lOC4sg0KK+C4lOC4tOC5gOC4o+C4gSDguYDguIHguJXguLjguKfguLHguKrguKvguYwNCivguJTguLTguYDguKPguIEg4LmC4LiK4LiV4Li04Lin4Li04LiI4Li04LiV4LijDQor4LiU4Li04LmA4Lij4LiBIOC4muC4suC4h+C5gOC4guC4teC4ouC4pw0KK+C4lOC4tOC5gOC4o+C4gSDguKHguLXguK3guJnguLHguJnguJXguYwNCivguJTguLTguYDguKPguIEg4Lio4Lix4LiB4LiU4Li1DQor4LiU4Li04LmA4Lij4LiBIOC5guC4ruC4o+C4sg0KK+C4lOC4teC4oeC4seC5iOC4mSDguIHguK3guJrguJ7guLTguKHguLLguKINCivguJTguLjguIjguJTguLLguKcg4Liq4Li44LiX4LiY4Li04Lib4Lij4Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4LiU4Li44Lil4Lii4LiZ4Li04LiV4Lii4LmMIOC4reC4uOC4lOC4oeC4p+C4h+C4qOC5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4lOC4uOC4qeC4juC4tSDguYDguIjguKPguLTguI3guIjguLTguJXguIHguKMNCivguJTguLjguKnguI7guLUg4Lie4Lix4LiB4LiV4Lij4Lie4Lix4LiZ4LiY4Liy4LiZ4LiZ4LiX4LmMDQor4LiU4Li44Lip4LiO4Li1IOC4quC4tOC4l+C4mOC4tOC4l+C4reC4hw0KK+C4lOC4uOC4qeC4j+C4tSDguKPguLHguJXguJnguLLguKrguLHguIfguIHguLLguKMNCivguJTguLjguKnguJPguLUg4LmA4Lil4Lij4Liy4Lih4Lix4LiNDQor4LiU4Li44Lip4LiU4Li1IOC4reC4meC4seC4meC4leC5jOC4peC4seC4geC4qeC4k+C5jOC4geC4suC4ow0KK+C4lOC4uOC4quC4tOC4lSDguYHguIjguYjguKHguKjguKPguLUNCivguJTguLjguKrguLTguJUg4Lia4Li44Lip4Lia4LiyDQor4LiU4Li44Liq4Li04LiVIOC4p+C4tOC4o+C4ouC4qOC4tOC4o+C4tA0KK+C4lOC4uOC4quC4tOC4leC4mOC4o+C4o+C4oeC4hOC4uOC4kyDguJ7guKPguLDguITguKPguLkNCivguYDguJTguIog4LiW4Li04LiV4Lii4LmM4Liq4LiH4Lin4LiZDQor4LmA4LiU4LiKIOC4q+C4meC4ueC4meC5ieC4sw0KK+C5gOC4lOC4iuC4nuC4pSDguYDguKvguKPguLXguKLguI3guKfguLTguYLguKPguIjguJnguYwNCivguYDguJTguIrguLIg4LiB4LmJ4Lit4LiH4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMDQor4LmA4LiU4LiK4LiyIOC4iOC4suC4o+C4uOC4oeC4k+C4teC5guC4o+C4iOC4meC5jA0KK+C5gOC4lOC4iuC4siDguYHguIvguYjguYHguJXguYkNCivguYDguJTguIrguLIg4LmA4LiX4Lio4Liw4Lio4Li04Lij4Li0DQor4LmA4LiU4LiK4LiyIOC5gOC4m+C4teC5iOC4ouC4oeC4o+C4suC4qOC4o+C4tQ0KK+C5gOC4lOC4iuC4siDguKHguLXguKPguLDguYDguKrguJkNCivguYDguJTguIrguLIg4LmE4Lin4Lin4LmI4Lit4LiHDQor4LmA4LiU4LiK4LiyIOC4quC4uOC4kuC4meC4geC4tOC4iOC4geC4uOC4pQ0KK+C5gOC4lOC4iuC4siDguK3guLTguJnguJfguJnguLTguKUNCivguYDguJTguKfguLTguJQg4LmA4LiU4LiZ4LiZ4Li14LmIDQor4LmA4LiU4Li34Lit4LiZIOC4m+C4tOC4ouC4sOC4oeC4suC4peC4ouC5jOC4oeC4suC4qA0KK+C5gOC4lOC4t+C4reC4meC4l+C4tOC4nuC4ouC5jCDguIrguLHguKLguJ7guLHguJnguJjguYwNCivguYDguJTguLfguK3guJnguYDguJ7guYfguI0g4LiQ4Liy4Lib4LiZ4Liy4LiK4Lix4LiiDQor4LmA4LiU4Li34Lit4LiZ4LmA4Lie4LmH4LiNIOC4p+C4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4lOC5guC4iiDguKfguLjguJLguLTguIHguLLguI3guIjguJnguLLguKfguIfguKjguYwNCivguYDguJTguYjguJkg4Lio4Li04Lij4Li04Lia4Li44LiNDQor4LmA4LiU4LmI4LiZ4LiZ4Lig4LiyIOC4qOC4suC4peC4tOC4hOC4uOC4m+C4lQ0KK+C5geC4lOC4hyDguIjguKPguIjguLHguJnguJfguKPguYwNCivguYHguJTguIcg4LiU4LmI4Liy4LiZ4LmB4LiI4LmJ4LiHDQor4LmB4LiU4LiHIOC4oeC5iOC4p+C4h+C4h+C4suC4oQ0KK+C5geC4lOC4hyDguKvguJnguLnguJ7guLHguJnguJjguYwNCivguYHguJTguJnguIrguLHguKIg4LiC4Liy4Lin4LiJ4Lit4LmJ4Lit4LiZDQor4LmE4LiU4LmJ4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4nOC4ueC5iA0KK+C4leC4leC4tOC4ouC4siDguIjguLTguJnguLLguKfguIfguKjguYwNCivguJXguKPguKPguIHguJ7guIfguKnguYwg4Lir4Liy4LiN4Lie4Li04LiX4Lix4LiB4Lip4LmM4LiN4Liy4LiV4Li0DQor4LiV4Lij4Liw4LiB4Li54LilIOC4iOC4seC4meC5geC4leC4hw0KK+C4leC4o+C4seC4ouC4nuC4iOC4meC5jCDguJXguLTguKrguKPguLDguJ7guIfguKjguYwNCivguJXguKPguLXguIrguLHguKIg4Liq4Li44LiX4LiY4Li04LmA4LiK4Li34LmJ4Lit4LiZ4Liy4LiEDQor4LiV4Lij4Li14Lij4Liw4LiZ4Lix4LiZ4LiX4LmMIOC4oeC4sOC4peC4sOC4hOC4sw0KK+C4leC4o+C4teC5gOC4l+C4niDguYDguJ7guLXguKLguKPguKDguLHguIHguJTguLUNCivguJXguKXguLHguJog4Lih4Li14Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMDQor4LiV4Lin4LiH4Lie4LijIOC4mOC4meC4seC4h+C4hOC5gOC4p+C4iuC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4leC4p+C4h+C4quC4tOC4l+C4mOC4tOC5jCDguKHguJnguLHguKrguJTguLPguKPguIcNCivguJXguK3guIcg4LiB4LmJ4Liy4LiZ4LiX4Lit4LiHDQor4LiV4LmI4Lit4Lia4Li44LiNIOC4quC4uOC4p+C4o+C4o+C4k+C5gOC4oOC4quC4seC4ig0KK+C4leC5iOC4reC4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguKrguLLguKINCivguJXguYjguK3guKjguLHguIHguJTguLTguYwg4Lit4Lii4Li54LmI4Lin4Lix4LiS4LiZ4LiyDQor4LiV4LmJ4Lit4LiiIOC4meC4tOC5iOC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4leC4sOC4p+C4seC4mSDguJbguLLguKfguKPguK3guJnguLjguKHguLLguKgNCivguJXguLHguIfguInguYjguLLguKIg4LmB4LiB4LmJ4Lin4LmE4Lie4Lij4Lix4LiKDQor4LiV4Lix4LmJ4LiH4Liu4Lix4LmI4LiH4LmA4LiE4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4leC4seC5ieC4mSDguIrguKXguJjguLLguKMNCivguJXguLLguJog4LiB4Lij4Liy4LiZ4LiI4Lij4Li54LiNDQor4LiV4LmJ4Liy4LmA4LiB4Li14Lii4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4leC4tOC5ieC4h+C4iuC4uOC4mSDguYHguIvguYjguYDguJXguLXguKLguKcNCivguJXguLTguYvguKEg4Lia4Li44LiN4Liq4LiZ4LiY4Li04LmMDQor4LiV4Li04LmL4LinIOC4quC4suC4ouC4reC4uOC4muC4pQ0KK+C4leC4teC5ieC5gOC4ruC4teC4ouC4hyDguYHguIvguYjguK3guLbguYnguIcNCivguJXguLXguYsg4LmB4LiL4LmI4LmA4Lia4LmKDQor4LiV4Li44LmK4LiB4LiV4LiyIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4leC4uOC5iOC4oSDguYHguIvguYjguYDguJbguLXguKLguJkNCivguJXguLjguKXguKLguLIg4Liq4Li14Lir4Lih4Liy4LiB4Liq4Li44LiBDQor4LiV4Li44LmKIOC5gOC4quC4o+C4tOC4oeC4pOC4l+C4mOC4tOC4o+C4h+C4hOC5jA0KK+C5gOC4leC4suC4sOC5gOC4hOC4teC5ieC4ouC4hyDguYHguIvguYjguYDguK7guYnguIcNCivguYDguJXguLTguKEg4Liq4Liy4Lih4LiZ4Lib4Liy4LilDQor4LmA4LiV4Li04Lih4Lio4Lij4Li1IOC4quC4uOC4o+C4nuC4seC4meC4mOC4uOC5jA0KK+C5gOC4leC4tOC4oeC4qOC4seC4geC4lOC4tOC5jCDguK3guLTguJ7guKDguLnguJTguKENCivguYDguJXguLXguKLguIcg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmA4LiV4Li14Lii4LiH4LiX4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4leC4teC4ouC4p+C5gOC4i+C4teC4ouC4sCDguYHguIvguYjguInguLHguYjguKcNCivguYDguJXguLXguYnguKLguYLguK3guKcg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmA4LiV4Li34Lit4LiZ4LiI4Li04LiV4LiV4LmMIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C5gOC4leC4t+C4reC4meC4leC4siDguKvguLLguI3guKfguLTguKPguLTguKLguLDguKTguJfguJjguLINCivguYDguJXguLfguK3guJnguYPguIgg4LiH4Liy4Lih4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC5geC4i+C5iOC5gOC4ruC5h+C4hw0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguYDguJnguJXguKPguYzguJfguK3guIcNCivguYDguJXguLfguK3guJnguYPguIgg4Lie4Li54LiZ4Lil4LmJ4Liz4LmA4Lil4Li04LioDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4peC4tOC5ieC4oeC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguKrguLHguIfguILguKPguLHguJXguJnguYwNCivguYDguJXguLfguK3guJnguYPguIgg4Lit4Lir4Li04LiH4Liq4LmC4LiBDQor4LmA4LiV4LmH4LiB4Lii4LmJ4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C5gOC4leC5h+C4h+C4h+C5ieC4p+C4mSDguYHguIvguYjguK3guLbguYnguIcNCivguYDguJXguYfguKHguJTguKfguIcg4LmA4LiB4LmH4Lip4LiV4Lij4Liw4LiX4Lix4LiVDQor4LmA4LiV4LmH4Lih4LmA4LiU4Li34Lit4LiZIOC4q+C4tOC4o+C4seC4k+C4ouC4seC4qeC4kOC4teC4leC4tA0KK+C5geC4leC4h+C4nOC4tuC5iOC4h+C4nOC4suC4oiDguJ7guLTguKjguKHguLHguKINCivguYHguJXguYnguKrguLUg4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4LmC4LiV4Liw4Lit4Li54LmKIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C5hOC4leC4o+C4nuC4oyDguKXguKfguKrguLjguJUNCivguYTguJXguKPguKPguIfguITguYwg4Lih4Lir4Liy4Lin4Liy4LiT4Li04LiK4Lii4LmM4Lin4LiH4Lio4LmMDQor4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4LmMIOC4qOC4tOC4o+C4tOC4mOC4o+C4o+C4oQ0KK+C5hOC4leC5ieC4iOC4uOC5ieC4oiDguYHguIvguYjguJvguLbguIcNCivguJbguJnguK3guKEg4LmA4LiB4Lil4Liy4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4LiW4LiZ4Lit4LihIOC4iuC4peC4reC4reC4ouC4ueC5iA0KK+C4luC4meC4reC4oSDguJjguLXguKPguLLguJnguLjguJXguKPguYwNCivguJbguJnguK3guKEg4Lib4Li24LiH4Lib4Lij4Liw4Lii4Li54LijDQor4LiW4LiZ4Lit4LihIOC4oeC4suC4peC4suC4geC4o+C4k+C5jA0KK+C4luC4meC4reC4oSDguKjguKPguLXguKXguLLguJvguLHguIcNCivguJbguJnguK3guKEg4Lir4Lij4Li04LiZ4LiX4Lij4Lix4LiV4LiZ4LmMDQor4LiW4LiZ4Lit4Lih4LiI4Li04LiVIOC4nuC4o+C4q+C4oeC4nuC4seC4kuC4meC5jA0KK+C4luC4meC4reC4oeC4nuC4h+C4qOC5jCDguKrguLjguKfguLHguJLguJnguJjguKPguKPguKENCivguJbguJnguK3guKHguKjguKPguLUg4LmB4LiL4LmI4LmA4LiI4Li14LmI4LiiDQor4LiW4LiZ4Lit4Lih4Lio4Lij4Li1IOC4p+C4seC4h+C5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4luC4meC4reC4oeC4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguYPguJrguYPguKvguI3guYgNCivguJbguJnguLHguJQg4LiZ4Liy4LiE4LmB4LiB4Lih4LiX4Lit4LiHDQor4LiW4LiZ4Li04LihIOC4oeC4suC4meC4sOC4geC4p+C4tOC4mQ0KK+C4luC4oeC4ouC4siDguKfguIfguKnguYzguKrguIfguIbguYwNCivguJbguKfguLHguKXguKLguYwg4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LiW4Lin4Lix4Lil4Lii4LmMIOC4l+C4tOC4oeC4peC4reC4ouC5geC4geC5ieC4pw0KK+C4luC4p+C4seC4peC4ouC5jCDguKDguKPguLTguJnguJfguJnguLHguJnguJfguYwNCivguJbguKfguLHguKXguKLguYwg4Liq4Li04LiH4Lir4LmM4LiH4Liy4LihDQor4LiW4Lin4Li04LilIOC4geC4tOC4iOC4quC4oeC5g+C4iA0KK+C4luC4p+C4tOC4pSDguYDguIjguKPguLTguI3guKjguLTguKPguLTguKrguLjguJfguJjguLTguIHguLjguKUNCivguJbguKfguLTguKUg4LmA4LiW4Liy4Lin4LmM4LiI4Li5DQor4LiW4Lin4Li04LilIOC4muC4uOC4jeC4geC4peC5iOC4reC4oQ0KK+C4luC4p+C4tOC4pSDguJ7guLbguIfguKLguLINCivguJbguKfguLTguKUg4Lij4Li34LmI4LiZ4Lii4LioDQor4LiW4Lin4Li04LilIOC4qOC4o+C4teC5gOC4iOC4teC4ouC4oQ0KK+C4luC4p+C4tOC4pSDguKrguLjguYDguKHguIbguJvguKPguLDguJTguLTguKnguJDguYwNCivguJbguKfguLTguKXguKfguIfguKjguYwg4LiK4LmI4Lin4LiH4LiK4Li04LiHDQor4LiW4Liy4Lin4LijIOC4geC4tOC4iOC4l+C4reC4h+C4luC4suC4p+C4ow0KK+C4luC4suC4p+C4oyDguYDguIfguLTguJnguYDguJ7guIrguKPguJfguK3guIfguITguLMNCivguJbguLLguKfguKMg4LiK4Lil4Liw4LmA4Lit4LihDQor4LiW4Liy4Lin4LijIOC4leC4seC5ieC4h+C4quC4q+C5hOC4oeC4leC4o+C4tQ0KK+C4luC4suC4p+C4oyDguJnguYjguKfguKHguYHguIHguYnguKcNCivguJbguLLguKfguKMg4Lib4Liy4LiZ4Lij4Li44LmI4LiHDQor4LiW4Liy4Lin4LijIOC4oOC4ueC4o+C4teC5guC4o+C4iOC4meC5jA0KK+C4luC4suC4p+C4oyDguKXguYnguKfguJnguKPguLHguJXguJnguYwNCivguJbguLLguKfguKMg4Lin4Li14Lij4Liw4Lie4LiH4Lip4LmMDQor4LiW4Liy4Lin4LijIOC4quC4uOC4guC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4luC4suC4p+C4oyDguK3guKPguLHguI3guKDguLnguKHguLQNCivguJbguYnguLMg4LmA4LiU4LiK4Lik4LiU4Li1DQor4LiW4Li04Lij4Lin4Lix4LiS4LiZ4LmMIOC5gOC4peC4tOC4qOC4oeC4q+C4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C4luC4uOC4h+C5gOC4h+C4tOC4mSDguJ7guLHguJnguJjguLjguYzguITguLnguJMNCivguYDguJbguKXguLTguIfguKjguLHguIHguJTguLTguYwg4Lia4Lix4LiT4LiR4Li04LiV4Lie4Li04Liq4Li44LiX4LiY4Li04LmMDQor4LmB4LiW4LihIOC4iOC4seC4meC4l+C4o+C4l+C4qA0KK+C5geC4luC4pyDguYTguJXguKPguJrguKPguKPguJPguYwNCivguJfguJnguIcg4LiI4Lij4Li54LiN4LiK4Liy4LiV4Li04Lij4Lix4LiB4Lip4LmMDQor4LiX4LiZ4LiHIOC5geC4nuC4hOC4h+C4hOC4sg0KK+C4l+C4meC4h+C4hOC5jCDguIHguLXguKPguKfguLTguJfguKLguYwNCivguJfguJnguIfguKjguLHguIHguJTguLTguYwg4LiE4Li44LiT4Liy4Liq4LiW4Li04LiV4Lii4LmM4LiK4Lix4LiiDQor4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4seC4qOC4meC4oOC4seC4geC4lOC4tQ0KK+C4l+C4meC4h+C4qOC4seC4geC4lOC4tOC5jCDguKDguLHguJfguKPguYTguIrguKLguJnguLHguJnguJfguYwNCivguJfguJnguIfguKjguLHguIHguJTguLTguYwg4Liq4Lij4Liy4LiN4LiK4Li34LmI4LiZDQor4LiX4LiZ4Lix4LiZ4LiX4LmM4LiK4Lix4LiiIOC4nuC4h+C4qOC5jOC4nuC4tOC4nuC4seC4kuC4meC5jOC5gOC4p+C4ig0KK+C4l+C4oSDguYDguJnguLXguKLguKHguJrguLjguJrguJzguLINCivguJfguKPguIcg4Lic4LiU4Li44LiH4LiB4Li04LiI4LmA4LiI4Lij4Li04LiNDQor4LiX4Lij4LiH4LiE4Li44LiTIOC5gOC4peC4tOC4qOC4pOC4l+C4mOC4tOC5jOC5gOC4lOC4iuC4sg0KK+C4l+C4o+C4h+C4iuC4seC4oiDguJfguK3guIfguYDguKXguYfguIENCivguJfguKPguIfguIrguLHguKIg4Lio4Li04Lij4Li04Liq4Lij4LmJ4Lit4LiiDQor4LiX4Lij4LiH4LiY4Lij4Lij4LihIOC4m+C5iOC4suC4nuC4geC4uOC4pQ0KK+C4l+C4o+C4h+C4nuC4oyDguKjguKPguLXguKfguLTguJrguLnguKXguKLguYwNCivguJfguKPguIfguJ7guKUg4LiK4Li54LmA4LiK4Li04LiUDQor4LiX4Lij4LiH4Lie4LilIOC5geC4nuC4l+C4ouC5jOC4o+C4seC4geC4qeC5jA0KK+C4l+C4o+C4h+C4nuC4pSDguKrguLjguJfguJjguLTguYDguKrguKPguLTguKENCivguJfguKPguIfguKLguKgg4LmA4LiE4Lij4Li34Lit4Lih4Lix4LiH4LiB4LijDQor4LiX4Lij4LiH4Lii4LioIOC4q+C4o+C4tOC4o+C4seC4geC4qeC5jOC4quC4geC4uOC4pQ0KK+C4l+C4o+C4h+C4p+C4suC4lCDguILguJnguLHguJnguYTguJfguKINCivguJfguKPguIfguKfguLjguJLguLQg4LmE4LiK4Lii4Liq4Li44Lij4Li04Lin4Li04Lij4Lix4LiV4LiZ4LmMDQor4LiX4Lij4LiH4Lin4Li44LiS4Li0IOC4ouC4suC4l+C5ieC4p+C4oQ0KK+C4l+C4o+C4h+C4qOC4o+C4tSDguYDguInguKXguLTguKHguI3guLLguJXguLQNCivguJfguKPguIfguKjguKPguLUg4Lit4Li04LiZ4LmE4LiK4Lii4LiwDQor4LiX4Lij4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4ieC4seC4leC4o+C4lOC4s+C4o+C4h+C4mOC4o+C4o+C4oQ0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguJfguJnguLjguJrguLPguKPguLjguIfguKrguLLguKrguJnguYwNCivguJfguKPguIfguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4Li44Lih4Liy4LioDQor4LiX4Lij4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qeC5jOC4i+C4tOC5ieC4oQ0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguKrguLjguILguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguJfguKPguIfguKjguLTguKXguJvguYwg4LmA4LiI4Lij4Li04LiN4Lii4Lix4LiHDQor4LiX4Lij4LiH4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iOC4suC4o+C4uOC5gOC4geC4teC4ouC4o+C4leC4tOC4guC4iOC4ow0KK+C4l+C4o+C4h+C5gOC4geC4teC4ouC4o+C4leC4tOC5jCDguJjguKPguKPguKHguLLguKDguLTguKfguLHguJnguJfguYwNCivguJfguKPguKPguKjguJnguLHguJnguJfguYwg4LmB4Lii4LmJ4Lih4LiB4Lil4Li14Lia4Lia4Lix4LinDQor4LiX4Lij4Lij4Lio4Lin4Lij4Lij4LiTIOC4meC4seC4meC4iuC4meC4gQ0KK+C4l+C4o+C4seC4nuC4ouC5jCDguJfguLTguJnguKfguIfguITguYwNCivguJfguKTguKnguI7guLUg4Lit4Liy4Lip4Liy4Lij4Lix4LiQDQor4LiX4Lin4LiZ4LiX4Lit4LiHIOC5gOC4m+C4peC4teC5iOC4ouC4meC4oOC4seC4geC4lOC4tQ0KK+C4l+C4p+C4tOC4geC4siDguYDguK3guIHguILguIjguKPguKfguIfguKnguYwNCivguJfguKfguLTguIog4Lin4Li44LiS4Li04Lij4Lix4LiB4Lip4LmM4LiK4Lix4LiiDQor4LiX4Lin4Li04Lie4LijIOC4kOC4tOC4leC4tOC4mOC4o+C4o+C4oeC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4l+C4p+C4tSDguYDguIHguJXguLjguJfguLHguJrguJfguLTguKENCivguJfguKfguLUg4LiE4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiX4Lin4Li1IOC4iOC4seC4meC4l+C4o+C4tQ0KK+C4l+C4p+C4tSDguYDguInguKLguJfguLjguKENCivguJfguKfguLUg4LmB4LiL4LmI4LiI4Li04LinDQor4LiX4Lin4Li1IOC4leC4suC4leC4sOC4ouC4suC4meC4meC4l+C5jA0KK+C4l+C4p+C4tSDguJfguK3guIfguYPguJrguYPguKvguI3guYgNCivguJfguKfguLUg4LiZ4Lin4Lil4LmA4LiI4Lij4Li04LiNDQor4LiX4Lin4Li1IOC4muC4uOC4jeC4luC4meC4reC4oeC4p+C4h+C4qOC5jA0KK+C4l+C4p+C4tSDguYDguJvguLXguYjguKLguKHguJ7guIfguKjguYzguKrguLjguIINCivguJfguKfguLUg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiX4Lin4Li1IOC4oOC4ueC5iOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4l+C4p+C4tSDguKPguK3guJTguIjguKPguLnguI0NCivguJfguKfguLUg4Lil4Li14Lil4Liy4Lie4Lix4LiZ4LiY4Li04Liq4Li04LiX4LiY4Li0DQor4LiX4Lin4Li1IOC4p+C4suC4qOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4l+C4p+C4tSDguKjguLTguKPguLQNCivguJfguKfguLUg4Liq4Liz4Lij4Liy4LiN4Lin4LiH4Lip4LmMDQor4LiX4Lin4Li1IOC4quC4uOC5guC4geC4qOC4pQ0KK+C4l+C4p+C4tSDguYLguKvguYnguYTguJfguKINCivguJfguKfguLUg4Lit4Li44LiV4Liq4Liy4Lir4LiV4Lix4LiZDQor4LiX4Lin4Li14LiK4Lix4LiiIOC4iOC4tOC4o+C5geC4quC4h+C4l+C4reC4hw0KK+C4l+C4p+C4teC4iuC4seC4oiDguYDguJrguI3guIjguLLguIfguITguJvguKPguLDguYDguKrguKPguLTguJANCivguJfguKfguLXguIrguLHguKIg4Lin4Li04Lij4Li04Lii4Liw4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4LiX4Lin4Li14LiX4Lij4Lix4Lie4Lii4LmMIOC4iuC5ieC4suC4h+C5geC4geC5ieC4pw0KK+C4l+C4p+C4teC4myDguYDguILguLXguKLguKfguKrguJnguLHguYjguJkNCivguJfguKfguLXguJsg4LmA4LiZ4LiV4Lij4LiZ4Li04Lii4LihDQor4LiX4Lin4Li14LibIOC5hOC4p+C4ouC4lOC4tQ0KK+C4l+C4p+C4teC4nOC4pSDguKfguIfguKjguYzguYDguKXguLfguYjguK3guKLguKTguJfguJjguLTguYwNCivguJfguKfguLXguJ7guKMg4LiZ4Li04Lih4Li04LiV4Lij4Lin4Lij4Lie4LiI4LiZ4LmMDQor4LiX4Lin4Li14Lie4Lix4LiS4LiZ4LmMIOC4hOC4peC5iOC4reC4h+C4geC4tOC4iOC5guC4o+C4iOC4meC5jA0KK+C4l+C4p+C4teC4peC4seC4geC4qeC4k+C5jCDguYDguJfguJ7guKvguLHguKrguJTguLTguJkg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4l+C4p+C4teC4p+C4o+C4o+C4kyDguJ7guKPguKvguKHguKHguLLguJnguJnguJfguYwNCivguJfguKfguLXguKfguLHguJLguJnguYwg4Lig4Li54Lih4Li1DQor4LiX4Lin4Li14Lio4Lij4Li1IOC4reC4seC4leC4leC4sOC4meC4seC4meC4l+C4meC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguYDguILguYfguKHguYDguJ7guYfguIrguKPguYwNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LiI4Li04Lij4Lia4Li44LiN4Lin4LiT4Li04LiK4Lii4LmMDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4i+C4reC5gOC4i+C4p+C4tQ0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguJXguLHguJnguYHguKrguJnguJfguK3guIcNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LiY4Lij4Lij4Lih4LiZ4Li04Lig4LiyDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4muC4uOC4jeC5guC4nuC4mOC4tOC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguJ7guKPguLDguKrguKfguYjguLLguIcNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lih4Lir4LiK4Lin4LmC4Lij4LiI4LiZ4LmMDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4peC4tOC4guC4tOC4leC4iuC4seC4iuC4p+C4suC4peC4geC4uOC4pQ0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguKfguLTguKfguLHguJLguJnguILguIjguKPguKrguLjguIINCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Liq4LiB4Li44Lil4Lie4Lik4LiB4Lip4LmMDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4oOC4quC4tOC4l+C4mOC4tOC5jOC4oeC4h+C4hOC4pQ0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguK3guJnguLjguKrguJnguJjguLTguYwNCivguJfguKfguLXguKjguLTguKXguJsg4LiX4Li04Lie4LmC4LiB4Lih4Li44LiXDQor4LiX4Lin4Li14Liq4Li04LiZIOC4iuC4tOC4meC4sOC4nuC4seC4kuC4meC4p+C4h+C4qOC5jA0KK+C4l+C4p+C4teC4quC4uOC4giDguK3guKHguKPguKrguLTguJnguKfguKPguIrguLHguKINCivguJfguKfguLXguYHguKrguIcg4LmE4Lir4Lil4Lin4Lix4LiS4LiZ4LiK4Lix4LiiDQor4LiX4Lio4LiZ4Liy4Lij4LiWIOC4oOC4p+C4oOC4ueC4leC4suC4meC4meC4l+C5jA0KK+C4l+C4qOC4nuC4oyDguJXguLjguKXguLLguJjguKPguKPguKHguIHguLTguIgNCivguJfguKjguJ7guKMg4Lih4Lir4Liy4LiU4LmE4LiX4LiiDQor4LiX4Lio4Lie4LijIOC5gOC4q+C4peC5iOC4suC4reC4tOC4meC4l+C4o+C5jA0KK+C4l+C4qOC4nuC4pSDguJfguJnguJfguLLguJkNCivguJfguKjguJ7guKUg4Liq4Li04LiZ4LmB4LiZ4LmI4LiZ4LiU4Liz4Lij4LiHDQor4LiX4Lir4Liy4LijIOC4guC4s+C4q+C4tOC4o+C4seC4jQ0KK+C4l+C4reC4hyDguJnguLLguITguJnguLLguKfguLINCivguJfguK3guIcg4LmA4Lir4Lih4Li34Lit4LiZ4LmA4LiU4LiKDQor4LiX4Lit4LiH4LiC4Liy4LinIOC4iOC4tOC4leC4o+C5jOC4oOC4seC4geC4lOC4tQ0KK+C4l+C4reC4h+C4hOC4syDguYHguIHguYnguKfguJrguLHguKfguJTguLUNCivguJfguK3guIfguITguLMg4LmC4LiK4LiE4Lin4Li04Lia4Li54Lil4Lii4LmM4LmA4LiI4Lij4Li04LiNDQor4LiX4Lit4LiH4LiE4LizIOC4mOC4o+C4o+C4oeC4m+C4seC4jeC4jeC4sg0KK+C4l+C4reC4h+C4hOC4syDguJzguYjguK3guIfguYPguKoNCivguJfguK3guIfguITguLMg4Lii4Lit4LiU4LmA4LiH4Li04LiZDQor4LiX4Lit4LiH4LiE4LizIOC4qOC4tOC4o+C4tOC5guC4qg0KK+C4l+C4reC4h+C4hOC4syDguK3guKPguLjguJPguKjguLTguKPguLQNCivguJfguK3guIfguIjguLHguJnguJfguKPguYwg4LiX4Liy4Lin4LiH4Lip4LmMDQor4LiX4Lit4LiH4LiK4Li44LiaIOC4meC4tOC4peC4nuC4peC4seC4mg0KK+C4l+C4reC4h+C4lOC4tSDguITguIrguLLguYTguJ7guKMNCivguJfguK3guIfguJTguLUg4LiU4LiZ4LiV4Lij4Li14LmA4Liq4LiZ4Liy4LiwDQor4LiX4Lit4LiH4LiU4Li1IOC4muC4s+C4o+C4uOC4h+C4quC4tOC4mQ0KK+C4l+C4reC4h+C4lOC4tSDguYLguJ7guJjguLTguYzguYDguJzguLfguK3guIENCivguJfguK3guIfguJTguLUg4Lin4Li04LmA4Lio4Lip4Lik4LiX4LiY4Li04LmMDQor4LiX4Lit4LiH4LiU4Li1IOC4q+C4o+C4o+C4qeC4hOC4uOC4k+C4suC4o+C4oeC4k+C5jA0KK+C4l+C4reC4h+C4l+C4p+C4tSDguJ7guLTguKHguYDguKrguJkNCivguJfguK3guIfguJjguLHguIog4LiX4Lit4LiH4Lib4Lij4Liw4Liq4Liy4LiZ4LiE4Li44LiTDQor4LiX4Lit4LiH4Lib4Lil4Li04LinIOC4geC4tOC4iOC5geC4iOC5iOC4oeC5gOC4peC4tOC4qA0KK+C4l+C4reC4h+C4m+C4reC4mSDguYHguKrguJnguJvguLDguJfguLANCivguJfguK3guIfguJ7guLHguJnguJjguYwg4LmD4LiI4LmB4LiB4LmJ4LinDQor4LiX4Lit4LiH4Lie4Li54LiZIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4h+C4p+C4mQ0KK+C4l+C4reC4h+C4nuC4ueC4mSDguKrguLjguJfguLHguKjguJnguYwNCivguJfguK3guIfguKHguYnguKfguJkg4LiB4Lij4Liw4Lia4Li04Lil4Liq4Li04LiH4Lir4LmMDQor4LiX4Lit4LiH4Lih4LiyIOC4iOC4reC4oeC4hOC4s+C4quC4tOC4h+C4q+C5jA0KK+C4l+C4reC4h+C4ouC4p+C4mSDguYHguIjguYjguKHguKfguIfguKnguYwNCivguJfguK3guIfguKLguYnguK3guKIg4Lib4Liy4LiZ4Lii4LmJ4Lit4LiiDQor4LiX4Lit4LiH4Lii4Li44LmJ4LiZIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4qOC4seC4geC4lOC4tOC5jA0KK+C4l+C4reC4h+C4peC5ieC4reC4oSDguYDguKrguYfguIfguKrguKHguLLguJkNCivguJfguK3guIfguKjguLnguJnguKLguYwg4Lic4Liy4LiB4LiyDQor4LiX4Lit4LiH4Liq4Li1IOC4quC4seC4h+C4hOC4teC4o+C4tQ0KK+C4l+C4reC4h+C4quC4uOC4gSDguKjguKPguLXguJnguLLguIQNCivguJfguK3guIfguKrguLjguIIg4LiI4Lix4LiZ4LiX4Liw4Liq4Lit4LiZDQor4LiX4Lit4LiH4Liq4Li44LiCIOC5geC4lOC4h+C4iuC4suC4leC4tA0KK+C4l+C4reC4h+C4quC4uOC4giDguJrguLjguI3guI3guLLguYDguKrguJnguLXguKLguYzguIHguLjguKUNCivguJfguK3guIfguKrguLjguIIg4Lie4Li04Lio4LmA4Lie4Li14Lii4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4o+C4seC4leC4meC5guC4oOC4hOC4sg0KK+C4l+C4reC4h+C4quC4uOC4giDguKrguLHguIfguILguYzguKrguKfguJkNCivguJfguK3guIfguKrguLjguIIg4Lit4Lii4Li54LmI4LmD4LiI4LmA4Lii4LmH4LiZDQor4LiX4Lit4LiH4Lir4Lii4Lit4LiUIOC4nOC4tuC5iOC4h+C4nOC4lOC4uOC4hw0KK+C4l+C4reC4h+C4q+C4peC5iOC4rSDguYTguIHguKPguJfguK3guIcNCivguJfguK3guIfguKvguKXguYjguK0g4LmA4LiV4LiK4Liw4Lin4Li04LmA4Lio4LipDQor4LiX4Lit4LiH4Lir4Lil4LmI4LitIOC4nuC4peC4seC4muC4reC4tOC4meC4l+C4o+C5jA0KK+C4l+C4reC4h+C4q+C4peC5iOC4rSDguKXguLfguK3guKvguKHguLnguYgNCivguJfguK3guIfguKvguKXguYjguK0g4Lit4LiU4LiX4LiZDQor4LiX4Lit4LiH4Lit4Lii4Li54LmIIOC5geC4geC5ieC4p+C4nuC4seC4meC4mOC5jOC4nuC4h+C4qeC5jA0KK+C4l+C4reC4h+C4reC4ouC4ueC5iCDguJjguJnguLHguIfguYDguKXguLTguKjguKHguLLguKXguLHguKINCivguJfguK3guIfguK3guKLguLnguYgg4Lin4Li14Lij4Liw4Lin4Lix4LiS4LiZ4LmC4Lii4LiY4Li04LiZDQor4LiX4Lit4LiH4Lit4Lin4LiaIOC4reC4uOC4leC4o+C4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4l+C4reC4h+C4reC4tOC4meC4l+C4o+C5jCDguJbguLLguKfguKPguYDguIjguKPguLTguI0NCivguJfguK3guIfguK7guKfguKIg4LiY4Lij4Lij4Lih4Liq4LmC4LijDQor4LiX4Lit4LiH4LmA4LiI4Li34LitIOC5gOC4l+C4teC4ouC4oeC4reC4uOC4l+C4seC4ouC4quC4geC4uOC4pQ0KK+C4l+C4reC4h+C5gOC4iOC4t+C4rSDguYHguKrguKfguIfguYDguIfguLTguJkNCivguJfguK3guIfguYDguJXguLTguKEg4Lir4Liy4LiN4Lih4LiT4Li1DQor4LiX4Lit4LiH4LmA4Lib4Lil4LinIOC5hOC4nuC4keC4ueC4o+C4ouC5jOC4o+C4seC4leC4meC5jA0KK+C4l+C4reC4h+C5gOC4nuC4teC4ouC4oyDguJXguLHguJnguIrguLANCivguJfguK3guIfguYDguKXguYfguIEg4LmE4Lih4LmJ4LiV4Lij4Liy4Lin4Lix4LiS4LiZ4LiyDQor4LiX4Lit4LiH4LmA4Lit4Li04LiaIOC5gOC4nuC5h+C4h+C5geC4iOC5iOC4oeC4qOC4o+C4tQ0KK+C4l+C4reC4h+C5geC4luC4oSDguJ7guKPguKHguJ7guIfguKnguYwNCivguJfguK3guIfguYPguJog4LiB4Lil4Li04LmI4LiZ4Liq4Li44LiE4LiZ4LiY4LmMDQor4LiX4Lit4LiH4LmD4LiaIOC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4reC4h+C5g+C4miDguJjguKPguKPguKHguKrguLLguKMNCivguJfguK3guIfguYPguJog4Lie4Lij4Lir4Lih4Lib4Lix4LmJ4LiZDQor4LiX4Lit4LiH4LmD4LiaIOC4o+C4reC4lOC4muC4uOC4jeC4iuC4seC4hw0KK+C4l+C4reC4h+C5g+C4miDguKrguLLguKvguKPguYjguLLguKLguJfguK3guIfguITguLMNCivguJfguK3guIfguYPguKog4Lia4Lix4Lin4Lih4Lin4LiHDQor4LiX4Lit4Liq4Lij4Lin4LiHIOC4quC4oOC4suC4meC4uOC4iuC4suC4lQ0KK+C4l+C4seC4geC4qeC4k+C4tSDguIrguLfguYjguJnguKrguLPguKPguLLguI0NCivguJfguLHguIHguKnguLTguJPguLIg4Liq4LiW4Li04LiV4Lii4LmM4LiB4Li44LilDQor4LiX4Lix4LiU4LiX4LijIOC4muC4uOC4jeC5gOC4l+C4sg0KK+C4l+C4seC4meC5g+C4iCDguJXguLLguKXguLLguKfguJnguLTguIoNCivguJfguLHguJrguJfguLTguKEg4Lia4Lix4Lil4Lil4Lix4LiH4LiE4LmM4LmC4Lie4LiY4Li04LmMDQor4LiX4Lix4Lia4LiX4Li04LihIOC4reC4h+C4hOC5jOC4geC4suC4ow0KK+C4l+C4seC4qOC4meC4iuC4seC4oiDguKjguLTguKPguLTguYTguJ7guJ7guKPguKPguJMNCivguJfguLHguKjguJnguLHguKIg4LmA4LiC4Lih4LmA4LiB4Lip4LihDQor4LiX4Lix4Lio4LiZ4Lix4LiiIOC4p+C4seC4iuC4o+C5gOC4geC4t+C5ieC4rQ0KK+C4l+C4seC4qOC4meC4siDguYHguIvguYjguYDguKXguYnguLINCivguJfguLHguKjguJnguLIg4Liq4Li04LiH4LiE4Liw4LmA4LiZ4LiV4Li0DQor4LiX4Lix4Lio4LiZ4Li1IOC4ieC4suC4ouC4o+C4seC4h+C4qeC4tQ0KK+C4l+C4seC4qOC4meC4teC4ouC4siDguJfguKPguKPguKjguJnguIHguLjguKXguJ7guLHguJnguJjguYwNCivguJfguLHguKjguJnguLXguKLguYwg4LiB4Li04LiV4LiV4Li04Lio4Li04Lil4Liy4LiB4LijDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4hOC4uOC4k+C4suC4nuC4tOC4qg0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguIjguLTguJXguKPguLLguIjguLjguKXguJnguLHguJnguJfguYwNCivguJfguLHguKjguJnguLXguKLguYwg4LiK4Lix4Lii4LiB4Li44LilDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguJXguLHguJnguJXguLTguJnguLXguKPguJnguLLguJcNCivguJfguLHguKjguJnguLXguKLguYwg4LiX4Lix4LiB4LiY4Li04LiB4Liy4LijDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4meC4suC4hOC4p+C4tOC4peC4seC4og0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguJvguKPguLDguKHguLnguKUNCivguJfguLHguKjguJnguLXguKLguYwg4Lie4Lij4Lir4Lih4LiK4Li5DQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC5gOC4nuC4iuC4o+C5geC4geC5ieC4p+C4geC4uOC4pQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguKHguLLguKrguJPguLUNCivguJfguLHguKjguJnguLXguKLguYwg4Lij4Lix4LiV4LiZ4Lit4Li44LiU4LihDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC5gOC4peC5h+C4geC4hOC4hw0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguKfguLTguKPguLTguKLguLDguYDguKfguKrguKHguYzguIHguLjguKUNCivguJfguLHguKjguJnguLXguKLguYwg4Lio4Li04Lij4Li04LmC4Liq4Lig4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4quC4tOC4o+C4tOC4p+C4tOC5gOC4qOC4qeC4p+C4o+C4geC4uOC4pQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguKrguKPguLXguJ7guIHguIHguLDguJPguLANCivguJfguLHguKjguJnguLXguKLguYwg4Lit4LiZ4Li44LiV4Lij4Li04LiZ4LiX4Lij4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4quC4geC4uOC4pQ0KK+C4l+C4seC4qOC4nuC4oyDguJ7guKPguKrguLjguJjguLLguKPguLHguIHguKnguYwNCivguJfguLHguKjguYTguJnguKIg4Lia4Lix4LiN4LiN4Lix4LiV4Li04LiX4Lix4Lio4LmE4LiZ4LiiDQor4LiX4Liy4LiaIOC4nOC4peC5guC4nuC4mOC4tOC5jA0KK+C4l+C4s+C4meC4tCDguKfguLTguYTguKXguKPguLHguJXguJnguYwNCivguJfguLTguIbguLHguKHguJ7guKMg4LiK4Li04LmJ4LiZ4Lio4Li04Lij4Li04LiB4Li44LilDQor4LiX4Li04LiK4Liy4LiB4LijIOC4iuC4oeC5gOC4lOC4ig0KK+C4l+C4tOC4mSDguJ7guLHguJTguIrguLINCivguJfguLTguJnguIHguKMg4LiX4Li14LmA4LiB4LmI4LiHDQor4LiX4Li04LiZ4LiB4LijIOC4peC4tOC4oeC4m+C4meC4quC4uOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4l+C4tOC4meC4geC4o+C4k+C5jCDguIjguLHguJnguJfguKPguYzguJ7guKXguLHguJoNCivguJfguLTguJ7guJ7guKfguLHguKUg4LmA4Lie4LmH4LiH4Liq4Lit4Liy4LiUDQor4LiX4Li04Lie4Lii4LiN4Liy4LiTIOC4p+C4tOC4iuC4ouC4suC4meC4meC4l+C5jA0KK+C4l+C4tOC4nuC4ouC5jOC4oOC4suC4nuC4oyDguJrguLjguI3guYDguIjguKPguLTguI3guKLguKgNCivguJfguLTguJ7guKLguYzguKPguLHguJXguJnguYwg4Lie4LiH4Lio4LmM4LiE4LizDQor4LiX4Li04Lie4Lii4Lin4Lij4Lij4LiTIOC4n+C4uOC5ieC4h+C4peC4seC4lOC4lOC4sg0KK+C4l+C4tOC4nuC4ouC5jOC4p+C4o+C4o+C4kyDguIjguLTguKPguIrguJnguLLguJnguJnguJfguYwNCivguJfguLTguJ7guKLguYzguKfguKPguKPguJMg4Lie4Lij4Lir4Lih4Lin4Lij4Liy4LiX4LijDQor4LiX4Li04Lie4Lii4LmM4Lin4Lij4Lij4LiTIOC4quC4uOC4p+C4o+C4o+C4k+C4nuC4tOC4oeC4pQ0KK+C4l+C4tOC4nuC4ouC5jOC4p+C4seC4peC4ouC5jCDguJjguLXguKPguJjguKfguLHguIrguIHguLjguKUNCivguJfguLTguJ7guKLguYzguKfguLLguKPguLUg4Lih4Li04LmI4LiH4LiC4Lin4Lix4LiN4Lib4Li04Lii4Liw4LiB4Li44LilDQor4LiX4Li04Lie4Lii4LmM4Liq4Li44LiU4LiyIOC5g+C4muC4oeC4o+C4geC4lQ0KK+C4l+C4tOC4nuC4ouC4siDguJnguKfguITguLjguJPguKfguLTguIjguLTguJXguKPguYwNCivguJfguLTguJ7guKLguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lir4Li04Lij4Lix4LiNDQor4LiX4Li04Lie4Lii4LmMIOC5geC4quC4p+C4h+C4peC4suC4oA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguIHguKPguIHguKPguK3guIcNCivguJfguLTguJ7guKfguKPguKPguJMg4LiI4Li14Lij4Lie4Lix4LiZ4LiY4LmMDQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4l+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguJ7guLHguJLguJnguLDguJrguJTguLUNCivguJfguLTguJ7guKfguKPguKPguJMg4Lil4Li04Lih4Lib4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4qOC4tOC4o+C4tOC4p+C4tOC5hOC4peC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguK3guJnguLTguKfguKPguKPguJXguJ7guIfguKnguYwNCivguJfguLTguJ7guKfguLHguKXguKLguYwg4LiE4Li14Lij4Li14Lin4LiH4Lio4LmMDQor4LiX4Li04Lie4Lin4Lix4Lil4Lii4LmMIOC4oeC4suC4peC4seC4ouC4oeC4suC4peC4ouC5jA0KK+C4l+C4tOC4nuC4p+C4tOC4oeC4pSDguYHguIvguYjguK3guLbguYnguIcNCivguJfguLTguJ7guLLguIHguKMg4Lio4Lij4Li14LiK4Li14Lii4LiY4Liz4Lij4LiHDQor4LiX4Li04Lie4Liy4Lie4LijIOC4qOC4o+C4teC4reC4suC4iA0KK+C4l+C4tOC4nuC4suC4o+C4seC4leC4meC5jCDguJnguLTguKXguKrguJnguJjguLQNCivguJfguLTguKEg4Lih4Li14Lia4Li44LiV4Lij4Liq4LihDQor4LiX4Li04Lin4LiyIOC4iOC4p+C4meC4iOC4p+C4muC4l+C4o+C4hw0KK+C4l+C4tOC4p+C4siDguKfguIfguYDguJTguLfguK3guJkNCivguJfguLTguKfguLLguJ7guKMg4LiJ4Lix4LiV4Lij4Lij4Lix4LiV4LiZ4Liy4Lin4Liy4LiT4Li04LiKDQor4LiX4Li04Lin4Liy4Lin4Lij4Lij4LiTIOC4quC4tOC4h+C4q+C4nuC4seC4qA0KK+C4l+C4teC5gOC4meC4leC4oyDguK3guKLguLnguYjguKrguLjguJjguLINCivguJfguLjguYDguKPguLXguKLguJkg4LiI4Li04LiV4LiV4LiB4Liy4LiZ4LiV4LmM4Lie4Li04LiK4Lix4LiiDQor4LiX4Li44LmA4Lij4Li14Lii4LiZIOC4quC4tOC4l+C4mOC4tOC4oOC4sg0KK+C5gOC4l+C4niDguIfguLLguKHguIrguLHguKLguJ7guLTguKrguLTguJANCivguYDguJfguJ4g4Lil4Li14LiZ4Liw4LiB4LiZ4Li04Lip4LiQ4LmMDQor4LmA4LiX4Lie4LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C5gOC4l+C4nuC4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguYDguJfguJ7guKPguLHguJXguJnguYwg4Liq4Liy4Lij4LiE4Liy4LihDQor4LmA4LiX4Lie4Liq4Li44Lij4Li04Lii4LiyIOC4reC4o+C4o+C4luC4p+C4tOC5gOC4qOC4qQ0KK+C5gOC4l+C4nuC5hOC4l+C4oiDguYDguKrguJnguJ7guIfguKjguYwNCivguYDguJfguKfguLHguJkg4Lit4Li44LiU4Lih4LmA4Lin4Lio4Lii4LmMDQor4LmA4LiX4Lin4Li04LiZ4LiX4Lij4LmMIOC4oeC4uOC5iOC4h+C4mOC4seC4jeC4jeC4sg0KK+C5gOC4l+C4p+C4teC4o+C4seC4leC4meC5jCDguJvguLLguKXguIHguLDguKfguIfguKjguYwg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C5gOC4l+C4reC4lOC4nuC4h+C4qeC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguYDguJfguK3guJTguKjguLHguIHguJTguLTguYwg4LiZ4Li04LiX4Lix4Lio4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LmA4LiX4Lit4LiU4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4seC4oeC4pOC4l+C4mOC4tOC4geC4suC4o+C4uOC4kw0KK+C5gOC4l+C4tOC4lOC4iuC4seC4oiDguYDguJXguIrguLDguJjguLTguIHguLLguKMNCivguYDguJfguLTguJTguYTguJfguKIg4Liq4Li44LiC4Lit4Liy4Lij4Lih4Lii4LmMDQor4LmA4LiX4Li14Lii4LiZIOC4nuC4uOC5iOC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4l+C4teC4ouC4meC4iuC4seC4oiDguYDguIjguKPguLTguI3guIHguLTguIjguYTguJ7guJrguLnguKXguKLguYwNCivguYDguJfguLXguKLguJnguIrguLHguKIg4Lib4Liy4LiZ4Lij4Lix4LiB4Lip4LiyDQor4LmA4LiX4Li14Lii4LiZ4LiK4Lix4LiiIOC4p+C4seC4kuC4meC5guC4o+C4iOC4meC4geC4tOC4iA0KK+C5gOC4l+C4teC4ouC4meC4l+C4tOC4nuC4ouC5jCDguIjguIfguYDguIjguJXguJnguYzguJTguLUNCivguYDguJfguLXguKLguJog4Liq4Lix4Lih4LiI4Liy4Lij4Li04LiZ4LiX4Lij4LmMDQor4LmA4LiX4Li14Lii4LihIOC5gOC4l+C4teC4ouC4oeC4reC4suC4o+C4seC4geC4qeC5jA0KK+C5gOC4l+C4teC4ouC4oeC4iOC4seC4meC4l+C4o+C5jCDguIjguLLguKPguLjguKfguLHguJLguJnguJ7guLHguJnguJjguYwNCivguYDguJfguLXguKLguKHguInguLHguJXguKMg4Lij4Li04LmJ4Lin4LiB4LiH4LmB4LiIDQor4LmA4LiX4Li14Lii4Lih4LmD4LiIIOC4muC4uOC4jeC4luC4suC4p+C4o+C4p+C4seC4kuC4mQ0KK+C5gOC4l+C4teC5iOC4ouC4hyDguJvguKPguLDguYDguKrguKPguLTguJDguKrguLTguKPguLTguYDguIjguKPguLTguI0NCivguYDguJfguYDguKfguKgg4LmB4LiL4LmI4LiL4Li34LmJ4LitDQor4LmB4LiX4LiZIOC5gOC4l+C4qOC4p+C4tOC4peC4seC4og0KK+C5hOC4l+C4oiDguYDguIjguKPguLTguI3guKfguKPguKPguLHguIHguKnguYwNCivguYTguJfguKPguIfguLLguKEg4LiI4Liz4LiZ4LiH4LiE4LmM4Liq4Li54LiNDQor4LiY4LiH4LiK4Lix4LiiIOC4geC4meC4geC4nuC4meC4suC4l+C4seC4lQ0KK+C4mOC4h+C4iuC4seC4oiDguYDguIHguLXguKLguKPguJXguLTguYDguKPguLfguK3guIfguIHguKHguKXguLINCivguJjguIfguIrguLHguKIg4LiH4Liy4Lih4LiY4LiZ4LmC4LiB4Lio4LilDQor4LiY4LiH4LiK4Lix4LiiIOC4iOC4tOC4o+C4seC4kOC4tOC4leC4tOC4nuC4seC4meC4mOC5jA0KK+C4mOC4h+C4iuC4seC4oiDguIrguLHguKLguJ7guKPguJ7guIfguKjguYwNCivguJjguIfguIrguLHguKIg4LmB4LiL4LmI4LiL4Li04LmJ4LihDQor4LiY4LiH4LiK4Lix4LiiIOC4leC4meC4quC4geC4uOC4peC5gOC4lOC4ig0KK+C4mOC4h+C4iuC4seC4oiDguJbguLjguIfguYHguIHguYnguKfguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJjguIfguIrguLHguKIg4LiY4Lij4Lij4Lih4Lin4Li04LmE4Lil4Lin4Lix4LiS4LiZ4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC4muC4uOC4jeC4k+C4o+C4h+C4hOC5jA0KK+C4mOC4h+C4iuC4seC4oiDguJvguLTguYjguJnguYHguIHguYnguKfguJvguKPguLDguYDguKrguKPguLTguJANCivguJjguIfguIrguLHguKIg4Lie4Liy4LiZ4LiX4Lit4LiHDQor4LiY4LiH4LiK4Lix4LiiIOC4oOC4ueC4qeC4k+C4sOC4nuC4h+C4qeC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKPguK3guJTguYHguIHguYnguKcNCivguJjguIfguIrguLHguKIg4Lil4Li04LiC4Li04LiV4Lin4Lix4LiS4LiZ4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC4p+C4seC4iuC4o+C4sOC4reC4ouC4ueC5iA0KK+C4mOC4h+C4iuC4seC4oiDguKjguKPguLXguYTguJfguKLguKPguLHguIHguKnguYwNCivguJjguIfguIrguLHguKIg4Liq4Liy4LiE4Lij4Liq4Li44LiC4Lio4Lij4Li14Lik4LiB4Lip4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC4quC4uOC4nuC4peC4mOC4p+C4k+C4tOC4iuC4ouC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKvguLLguI3guKHguIfguITguKUNCivguJjguIfguIrguLHguKIg4Lit4Liy4LiB4Liy4Lio4Lin4Li04Lig4Liy4LiVDQor4LiY4LiH4LiK4Liy4LiV4Li0IOC4nuC4p+C4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4mOC4h+C5hOC4iuC4oiDguJ7guKXguKfguLTguJfguKLguYwNCivguJjguJkg4Lij4Lih4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4LiZ4LiB4LijIOC4qOC4uOC4oOC4geC4o+C4reC4suC4oOC4o+C4k+C5jA0KK+C4mOC4meC4h+C4hOC5jCDguKfguLTguIjguLTguJXguKPguYLguJcNCivguJjguJnguIrguLHguKIg4LmA4Lir4Lil4Li34Lit4LiH4LiV4Lij4Liw4LiB4Li54Lil4Liq4Li04Lij4Li0DQor4LiY4LiZ4LiZIOC4qOC4o+C4teC4mOC4meC4suC5guC4quC4rOC4qg0KK+C4mOC4meC4nuC4h+C4qOC5jCDguKfguKrguLjguYDguKrguJbguLXguKLguKMNCivguJjguJnguJ7guKMg4LmA4LiK4Liy4Lin4LiZ4Lib4Lij4Li14LiK4LiyDQor4LiY4LiZ4Lie4LijIOC4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jA0KK+C4mOC4meC4nuC4pSDguITguLjguYnguKHguKfguKPguIrguLHguKINCivguJjguJnguJ7guKUg4Lin4LiT4Li04LiK4LiK4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4LiZ4Lie4Lix4LiZ4LiY4LmMIOC4n+C4ueC4nuC4seC4meC4mOC4uOC5jOC4reC4meC4seC4meC4leC5jA0KK+C4mOC4meC4ouC4siDguKfguIfguKjguYzguKrguIfguKfguJkNCivguJjguJnguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LiY4LiZ4Lin4Lij4Lij4Lip4LmMIOC5gOC4quC4o+C4tOC4oeC4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4mOC4meC4p+C4seC4kuC4meC5jCDguJvguKPguLDguKrguLLguJnguJjguKPguKPguKHguITguLjguJMNCivguJjguJnguKfguLHguJLguJnguYwg4Liq4Liy4Lih4LiB4Lip4Lix4LiV4Lij4Li04Lii4LmMDQor4LiY4LiZ4Lin4Li04Lio4LiT4LmMIOC4oOC4ueC4oeC4tOC5hOC4iuC4og0KK+C4mOC4meC4quC4o+C4k+C5jCDguYTguIrguKLguIrguJnguLANCivguJjguJnguLAg4Lie4LiH4Lip4LmM4LiX4LiZ4Liy4LiZ4LiZ4LiX4LmM4LiB4Li44LilDQor4LiY4LiZ4Liw4LiK4Lix4LiiIOC4p+C4h+C4qOC5jOC4l+C4reC4h+C4qOC4o+C4tQ0KK+C4mOC4meC4sOC4p+C4o+C4o+C4kyDguKvguKHguLfguYjguJnguKrguLINCivguJjguJnguLDguYDguKrguKPguLTguJAg4Lii4Lil4Lib4Lij4Liw4Liq4Liy4LiZDQor4LiY4LiZ4Lix4LiN4LiK4Lix4LiiIOC4o+C4suC4iuC4p+C4seC4peC4oOC4suC4meC4uOC4quC4tOC4qeC4kA0KK+C4mOC4meC4seC4leC4tCDguJrguLjguKPguLTguJnguJfguKPguYzguIHguLjguKUNCivguJjguJnguLHguJnguJfguYwg4Lij4Lix4LiH4Liq4Li14Lie4Lij4Lir4LihDQor4LiY4LiZ4LiyIOC4iuC4teC4o+C4p+C4tOC4meC4tOC4iA0KK+C4mOC4meC4siDguYLguJvguKnguKLguLLguJnguJnguJfguYwNCivguJjguJnguLIg4Liq4Lin4LmI4Liy4LiH4LiB4Li04LiIDQor4LiY4LiZ4Liy4LiB4LijIOC5gOC4leC4iuC4sOC4quC4oeC4muC4ueC4o+C4k+C5jOC4nOC4pQ0KK+C4mOC4meC4suC4geC4oyDguKrguLHguIjguIjguJ7guIjguJnguYzguYLguKrguKDguJMNCivguJjguJnguLLguIjguLHguIHguKPguYwg4LiZ4LmI4Lin4Lih4Lit4Lii4Li54LmIDQor4LiY4LiZ4Liy4LiY4Li04LibIOC4o+C4seC4leC4meC4seC4og0KK+C4mOC4meC4suC4nuC4oyDguJ7guLTguIrguLHguKLguKfguLHguJLguJnguYzguYLguIHguKHguKUNCivguJjguJnguLLguKDguKPguJPguYwg4Lij4Lix4LiV4LiZ4LmA4Liq4LiZDQor4LiY4LiZ4Liy4Lij4Lix4LiKIOC4quC4tOC4o+C4tOC4oOC4ueC4oeC4tOC4o+C4seC4leC4meC4suC4meC4meC4l+C5jA0KK+C4mOC4meC4suC4p+C4seC4kuC4meC5jCDguJ7guLTguJjguLjguKfguKPguKPguJMNCivguJjguJnguLLguKjguLHguIHguJTguLTguYwg4Lin4Lix4LiV4Lij4Liy4LmA4Lio4Lij4Lip4LiQ4LmMDQor4LiY4LiZ4Li04LiU4LiyIOC4iOC4tOC4meC4leC4meC4p+C4tOC4qOC4tOC4qeC4kOC5jA0KK+C4mOC4meC4tOC4lSDguYDguILguLXguKLguKfguYDguIfguLTguJkNCivguJjguJnguLTguJUg4LmA4LiX4Lie4LiI4Li04LiV4LijDQor4LiY4LiZ4Li04LiVIOC4oeC4suC4qOC4o+C4teC4meC4p+C4pQ0KK+C4mOC4meC4tOC4lSDguKrguLjguIHguLHguJnguKLguLINCivguJjguJnguLTguJXguKMg4LmA4LiZ4Liy4Lin4Lio4Lix4LiB4LiU4Li04LmMDQor4LiY4LiZ4Li04LiZ4LiX4Lij4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4suC4jeC4iOC4meC5jA0KK+C4mOC4meC4tOC4qOC4o+C5jCDguK3guLTguKjguKPguLLguJjguLTguIHguLnguKUNCivguJjguJnguLXguKLguLIg4Lir4Lij4Lii4Liy4LiH4LiB4Li54LijDQor4LiY4LiZ4Li5IOC4ieC4uOC4ouC4ieC4suC4og0KK+C4mOC4meC4uSDguJ/guK3guIfguIHguLjguJnguJHguKUNCivguJjguJnguLkg4Lir4LiH4Lip4LmM4LiU4Liz4LmA4LiZ4Li04LiZDQor4LiY4LiZ4LmA4LiU4LiKIOC4quC4uOC4guC4p+C4seC4kuC4meC4suC4nuC4ow0KK+C4mOC4o+C4k+C4tOC4meC4l+C4o+C5jCDguIHguK3guIfguKPguLHguIHguKnguYDguKfguIoNCivguJjguKPguKPguKHguJPguJ4g4LmA4LiB4LiV4Li44LiX4Lit4LiHDQor4LiY4Lij4Lij4Lih4LiZ4Li54LiNIOC4hOC4peC5ieC4suC4ouC4geC4o+C4ueC4jw0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguJfguLHguKjguJnguYzguKjguKPguLUNCivguJjguKPguKPguKHguJnguLnguI0g4Lie4Li04LiK4Lix4Lii4Lio4Lij4LmB4Lic4Lil4LiHDQor4LiY4Lij4Lij4Lih4LiZ4Li54LiNIOC4qOC4o+C4teC4iuC4sOC4juC4sg0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguK3guLHguIfguKjguLjguKrguLTguIfguKvguYwNCivguJjguKPguKPguKHguKPguLHguIHguKnguYwg4LiX4Li04LiZ4LiB4LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguJjguKPguKPguKHguKPguLHguJXguJnguYwg4Liq4Lix4LiH4LiC4LmM4Lio4Lij4Li14LmB4LiB4LmJ4LinDQor4LiY4Lij4Lij4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4oeC5ieC4meC4oeC4tOC4meC4l+C4o+C5jA0KK+C4mOC4o+C4p+C4tOC4quC4tOC4l+C4mOC4tOC5jCDguYLguIrguITguKrguLHguKHguKTguJfguJjguLTguYzguJzguKUNCivguJjguKPguLLguJ7guIfguKnguYwg4LmA4LiE4Lil4Li34Lit4LiH4Liy4LihDQor4LiY4Lin4Lix4LiKIOC4geC4seC4meC4leC5jOC4oeC4tOC4leC4o+C4tQ0KK+C4mOC4p+C4seC4iiDguIjguK3guKHguKrguIfguYjguLINCivguJjguKfguLHguIog4LiK4Lix4LmJ4LiZ4LmA4Liq4Lin4Li04LiB4Li44LilDQor4LiY4Lin4Lix4LiKIOC4leC4seC4meC4leC4tOC4m+C4tOC4j+C4gQ0KK+C4mOC4p+C4seC4iiDguJjguLXguKPguKDguLLguJnguLjguKHguLLguKjguIHguLjguKUNCivguJjguKfguLHguIog4Lia4Li44LiV4Lij4Lii4Li14LmIDQor4LiY4Lin4Lix4LiKIOC5geC4nuC5g+C4q+C4oeC5iA0KK+C4mOC4p+C4seC4iiDguKPguLHguJDguJvguKPguLDguJTguLTguKnguJDguYwNCivguJjguKfguLHguIog4Lin4Lix4LiK4Lij4LmA4LiU4LiK4Liq4Li44Lin4Lij4Lij4LiTDQor4LiY4Lin4Lix4LiKIOC4quC4seC4jeC4jeC4sOC4p+C4tOC4o+C4tQ0KK+C4mOC4p+C4seC4iiDguYHguKrguJnguKHguJnguJXguKPguLXguIHguLjguKUNCivguJjguKfguLHguIog4Lit4Li04LiZ4LmB4LiV4LiHDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4geC4tOC4oeC4ouC4h+C4hOC5jA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguITguLLguKHguIjguLTguJnguJTguLINCivguJjguKfguLHguIrguIrguLHguKIg4LiI4Li04LiV4Lib4Lij4Liw4Lig4Liy4LiI4Li04LiTDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4iuC4seC5iOC4h+C4l+C4reC4hw0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguIvguLjguYnguJnguIvguLTguYjguKENCivguJjguKfguLHguIrguIrguLHguKIg4LiU4Li14Lij4Liw4Lie4Lix4LiZ4LiY4LmM4LiB4Li44LilDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC5guC4leC4quC4tOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguYTguJfguKLguKfguLHguJLguJnguLINCivguJjguKfguLHguIrguIrguLHguKIg4LiZ4Liy4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4m+C4seC4jeC4iOC4o+C4seC4geC4qeC5jOC4quC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguJ7guKfguIfguIjguLHguJnguJfguKPguJfguLTguJ7guKLguYwNCivguJjguKfguLHguIrguIrguLHguKIg4Lif4Li44LmJ4LiH4LmA4LiI4Lij4Li04LiN4LiB4Li44LilDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4o+C4leC4tOC4quC4o+C4suC4jeC4iOC4tOC4lQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKXguLXguYnguKDguLnguKHguLTguKfguJnguLTguIrguKLguYwNCivguJjguKfguLHguIrguIrguLHguKIg4Lin4Lix4LiS4LiZ4LiwDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4qOC4o+C4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKrguKPguLLguI3guJPguLTguKLguJjguKPguKPguKENCivguJjguKfguLHguIrguIrguLHguKIg4Liq4Li44LiZ4LiX4Lij4LiB4Li04LiV4Li0DQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4quC4oeC4reC4uOC5hOC4ow0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguK3guLTguKrguKPguLDguJnguLTguKHguLTguJXguKMNCivguJjguKfguLHguJLguIrguLHguKIg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lio4Li04Lij4Li04LiC4LiI4LijDQor4LiY4Lix4LiKIOC4o+C4seC4leC4meC4l+C4uOC4oeC4oeC4sg0KK+C4mOC4seC4iuC4nuC4pSDguJ7guKfguIfguIHguJnguIENCivguJjguLHguI3guI3guKPguLHguIHguKnguYwg4LiB4Li44LiQ4Li04LiZ4Lie4Lix4LiS4LiZ4LmMDQor4LiY4Lix4LiN4LiN4LiwIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4mOC4seC4jeC4jeC4siDguJnguLLguITguKrguLTguYDguJnguKvguJzguKUNCivguJjguLHguI3guI3guLIg4Lit4LmI4Lin4Lih4LmA4LiI4Lij4Li04LiNDQor4LiY4Lix4LiN4LiX4Li04Lie4Lii4LmMIOC5gOC4peC5ieC4suC4p+C4seC4kuC4meC4sg0KK+C4mOC4seC4jeC4ouC4mOC4o+C4k+C5jCDguKXguLHguIHguILguLjguJnguJfguJQNCivguJjguLHguI3guKXguLHguIHguKnguJPguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lib4Lix4LiX4LihDQor4LiY4Lix4LiZ4Lii4LiY4LijIOC4geC5ieC4reC4h+C4p+C4tOC4o+C4tOC4ouC4sOC5hOC4nuC4qOC4suC4pQ0KK+C4mOC4seC4meC4p+C4lOC4tSDguYDguITguKPguLfguK3guKfguLHguKXguKLguYwNCivguJjguLLguJTguLIg4LmA4LiB4Lip4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4LiY4Liy4LiU4LiyIOC5gOC4peC4tOC4qOC4quC4tOC4meC4quC5iOC4h+C5gOC4quC4o+C4tOC4oQ0KK+C4mOC4suC4leC4o+C4tSDguJTguLLguKPguLLguYDguKLguYfguJkNCivguJjguLLguJnguLHguJnguJfguYwg4Lih4LiH4LiE4Lil4Lin4Lij4Liy4Lig4Lij4LiT4LmMDQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4mOC4suC4meC4tOC4meC4l+C4o+C5jCDguJ7guKPguLTguYnguIfguKHguIfguITguKUNCivguJjguLLguJnguLTguJnguJfguKPguYwg4Lio4Lij4Li14Liq4Li44LiCDQor4LiY4Liy4LiZ4Li1IOC4geC4peC4tOC5iOC4meC5gOC4geC4qeC4ow0KK+C4mOC4suC4meC4tSDguYLguJXguK3guJTguLTguYDguJfguJ7guKLguYwNCivguJjguLLguJnguLUg4LmA4Lie4Li04LmI4Lih4Lie4Li24LmI4LiH4Lij4Lix4LiV4LiZ4LmMDQor4LiY4Liy4LiZ4Li1IOC4p+C4suC4iOC4suC4h+C4suC4oQ0KK+C4mOC4suC4meC4tSDguYDguKvguKXguYfguIfguILguKLguLHguJkNCivguJjguLLguKPguJfguLTguJ7guKLguYwg4LiTIOC4quC4h+C4guC4peC4sg0KK+C4mOC4suC4o+C4peC4seC4geC4qeC4k+C5jCDguKvguKfguLHguIfguJjguLXguKPguJ7guIfguKjguYwNCivguJjguLLguKPguLIg4LmC4Lij4LiI4LiZ4LmM4Lil4Li34Lit4LiK4Lix4LiiDQor4LiY4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4h+C4qeC5jOC5guC4quC4oOC4sg0KK+C4mOC4suC4o+C4tOC4k+C4tSDguYDguKrguLfguK3guKjguKPguLXguYDguKrguKPguLTguKENCivguJjguLLguKPguLUg4Liq4Lix4LiH4LmA4LiZ4LiV4Lij4LmMDQor4LiY4Liz4Lij4LiHIOC5gOC4iOC4teC4ouC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4muC4uOC4jQ0KK+C4mOC4s+C4o+C4hyDguKDguLnguKfguJvguKPguLDguYDguKrguKPguLTguJANCivguJjguLPguKPguIfguITguYwg4LiB4Liy4LiN4LiI4LiZ4Lib4Lij4Liw4Lig4Liy4LiqDQor4LiY4Liz4Lij4LiH4LiE4LmMIOC4oeC4ueC4peC5gOC4h+C4tOC4mQ0KK+C4mOC4s+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguJjguLPguKPguIfguYDguKXguLTguKjguKTguJfguJjguLTguYwNCivguJjguLTguJTguLIg4LiE4Li44LmJ4Lih4LmA4LiC4Lin4LmJ4LiyDQor4LiY4Li04LiU4LiyIOC4nOC4peC4hOC4tOC4oeC4q+C4seC4meC4leC5jA0KK+C4mOC4tOC4lOC4siDguKrguLjguIrguLLguJXguLQNCivguJjguLTguJTguLLguKPguLHguJXguJnguYwg4LiB4Li44Lio4Lil4LiI4Li04LiV4Lig4Lij4LiT4LmMDQor4LiY4Li04LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4quC4oeC4nuC4seC4meC4mOC5jA0KK+C4mOC4tOC4leC4tCDguJfguLLguIfguK3guJnguLHguJnguJXguYwNCivguJjguLTguJXguLTguJ7guIfguKjguYwg4LmA4Lio4Lij4Lip4LiQ4Li14Liq4Lih4Lia4Lix4LiV4Li0DQor4LiY4Li04LiV4Li04Lih4LiyIOC4peC4suC4oOC4qOC4o+C4teC4oeC4h+C4hOC4pQ0KK+C4mOC4tOC4oOC4suC4nuC4oyDguIrguLjguJPguKvguIjguLTguKPguLHguJDguJXguLTguIHguLLguKUNCivguJjguLXguKMg4Lio4Lij4LmB4LiB4LmJ4LinDQor4LiY4Li14Lij4LiK4Lix4LiiIOC5gOC4lOC5guC4iuC4nuC4pQ0KK+C4mOC4teC4o+C4iuC4seC4oiDguYDguKjguKPguKnguJDguIrguLLguJXguJnguLHguJnguJfguYwNCivguJjguLXguKPguJTguLIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiY4Li14Lij4LiZ4Liy4Lij4LiWIOC4m+C4suC4peC4geC4sOC4p+C4h+C4qOC5jCDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LiY4Li14Lij4Lie4LiH4Lio4LmMIOC4lOC4p+C4h+C5gOC4meC4leC4ow0KK+C4mOC4teC4o+C4nuC4h+C4qeC5jCDguYLguITguIjguKPguLLguJnguJnguJfguYwNCivguJjguLXguKPguJ7guIfguKnguYwg4Lij4Lix4LiV4LiZ4LmA4Liq4LiW4Li14Lii4LijDQor4LiY4Li14Lij4Lie4LijIOC4hOC4uOC4k+C4suC4l+C4o+C4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4mOC4teC4o+C4nuC4pSDguYDguJXguLXguYvguKLguJ7guLHguJLguJnguIHguLTguIgNCivguJjguLXguKPguJ7guKUg4Liq4Lix4LiZ4LiV4Li04Lin4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4Li14Lij4Lie4Lix4LiZ4LiY4LmMIOC4nuC4seC4iuC4o+C4m+C4o+C4sOC4oOC4suC4geC4ow0KK+C4mOC4teC4o+C4ouC4qCDguIrguLHguKLguYDguKrguJnguLDguJrguLHguJPguJHguLTguJUNCivguJjguLXguKPguKLguLjguJfguJgg4Lib4Lij4Lix4LiK4LiN4Liy4Lia4Liz4Lij4Li4DQor4LiY4Li14Lij4Lii4Li44LiX4LiYIOC4reC4seC4iOC4iOC4tOC4oeC4suC4o+C4seC4h+C4qeC4tQ0KK+C4mOC4teC4o+C4p+C4o+C4o+C4kyDguKfguLHguIrguKPguKrguLTguJnguJjguLjguYwNCivguJjguLXguKPguKfguLHguJLguJnguYwg4LmA4LiV4LiK4Liw4Liq4Li44Lij4Li04Lii4Liw4Lih4LiT4Li1DQor4LiY4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC4qOC4o+C4teC4quC4uOC4gg0KK+C4mOC4teC4o+C4p+C4tOC4l+C4ouC5jCDguJrguKfguKPguJrguLjguI3guKrguLjguIINCivguJjguLXguKPguKfguLjguJLguLQg4Lie4LiH4Lio4LmM4LmA4Lio4Lij4Lip4LiQ4LmE4Lie4Lio4Liy4LilDQor4LiY4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4tOC4o+C4p+C4tOC4o+C4tOC4ouC4p+C4h+C4qOC5jA0KK+C4mOC4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguKDguLTguKrguLHguIrguYDguJ7guYfguI0NCivguJjguLXguKPguKjguLHguIHguJTguLTguYwg4Lit4Liy4Lig4Liy4Liq4LiB4Li44Lil4LmA4LiU4LiKDQor4LiY4Li14Lij4LiwIOC4hOC4s+C4quC4sg0KK+C4mOC4teC4o+C4sCDguYTguIrguKLguKPguLHguJXguJnguYwNCivguJjguLXguKPguLAg4LiX4Lij4Lix4Lie4Lii4Lij4Li44LmI4LiH4LiX4Lin4Li14Lic4LilDQor4LiY4Li14Lij4LiwIOC4meC4tOC4peC5geC4iOC5ieC4hw0KK+C4mOC4teC4o+C4sCDguJ7guLTguIHguLjguKXguJnguYnguK3guKINCivguJjguLXguKPguLAg4Lij4Li04Lih4Lie4LiZ4Lix4LiqDQor4LiY4Li14Lij4LiwIOC4p+C4tOC4oOC4ueC4iuC4meC4tOC4mQ0KK+C4mOC4teC4o+C4sCDguKrguLTguIfguKvguJ7guLHguJnguJjguLjguYwNCivguJjguLXguKPguLAg4Lit4LiZ4Lix4LiZ4LiV4LmM4Lih4Liy4LiZ4LiwDQor4LiY4Li14Lij4Liw4LiK4Lix4LiiIOC5gOC4geC4leC4uOC4leC4o+C4teC4geC4o+C4k+C5jA0KK+C4mOC4teC4o+C4sOC4iuC4seC4oiDguJ7guLHguJnguJjguLjguKXguLLguKANCivguJjguLXguKPguLDguIrguLLguJXguLQg4LmA4Lil4Li04Lio4Lia4Lin4Lij4Lin4LiH4Lio4LmMDQor4LiY4Li14Lij4Liw4Lie4LiH4Lio4LmMIOC4p+C4seC4kuC4meC4nuC4tOC4l+C4ouC4geC4uOC4pQ0KK+C4mOC4teC4o+C4sOC4nuC4h+C4qeC5jCDguJ7guKXguKHguLHguYjguJkNCivguJjguLXguKPguLDguJ7guKMg4Lin4Li14Lij4Liw4LiW4Liy4Lin4LijDQor4LiY4Li14Lij4Liw4Lie4LilIOC4o+C4reC4muC4s+C4o+C4uOC4hw0KK+C4mOC4teC4o+C4sOC4nuC4seC4meC4mOC4uOC5jCDguKfguLHguJLguJnguJ7guLHguJnguJjguLjguYwNCivguJjguLXguKPguLDguKLguLjguJfguJgg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LiY4Li14Lij4Liw4Lin4LiH4Lio4LmMIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4mOC4teC4o+C4sOC4p+C4seC4kuC4meC5jCDguKjguKjguLTguJjguKMNCivguJjguLXguKPguLDguKjguLHguIHguJTguLTguYwg4LiB4Liy4Liq4Liy4Lin4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4LiY4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4uOC4jeC5gOC4ieC4peC4teC4ouC4pw0KK+C4mOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguKrguLTguIfguKvguYLguKPguIjguJnguLLguIHguLjguKUNCivguJjguLXguKPguLDguYDguJTguIog4LiV4Lij4Li14LiX4Lio4Liy4Lii4Li44LiYDQor4LiY4Li14Lij4LiyIOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4mOC4teC4o+C4suC4peC4seC4geC4qeC4k+C5jCDguKLguKHguLDguKrguKHguLTguJUNCivguJjguLXguKPguYDguJTguIog4LmA4Lil4Li04Lio4Lin4Li04LmE4Lil4LiB4Li44Lil4LiZ4LiX4Li1DQor4LiY4LmA4LiZ4LiVIOC5gOC4m+C4peC4teC5iOC4ouC4meC4meC4uOC4ig0KK+C4mOC5gOC4meC4qCDguInguLLguKLguKPguLHguIfguKnguLUNCivguJjguYDguJnguKgg4LiY4Liy4LiT4Liy4LiY4Liw4Lij4Liw4LiZ4Li04LiVDQor4LiY4LmA4LiZ4LioIOC4oeC4teC5gOC4lOC4ig0KK+C4mOC5gOC4meC4qCDguKjguLHguIHguJTguLTguYzguIrguLHguKLguKrguKHguJrguLnguKPguJPguYwNCivguJjguYDguJnguKjguJ7guKUg4Lio4Li44LiB4Lil4LiB4Liy4LiZ4LiV4LmMDQor4LmA4LiY4LiZ4LiV4LijIOC4nuC4tOC4oeC4nuC5jOC4iOC4seC4meC4l+C4o+C5jA0KK+C5gOC4mOC4teC4ouC4o+C4iuC4seC4oiDguJ3guLLguIHguKXguLLguKANCivguYDguJjguLXguKLguKPguYTguIrguKIg4Lio4Lix4LiZ4Liq4LiZ4Liw4LiB4Li44LilDQor4LiZ4LiB4LmA4Lil4LmH4LiBIOC4l+C4seC4muC4meC4suC5guC4hOC4gQ0KK+C4meC4geC5geC4geC5ieC4pyDguKfguIfguKjguYzguKrguYjguLLguKLguJbguJnguK3guKENCivguJnguITguKMg4LiK4Lix4Lii4Liq4Lih4Lia4Li54Lij4LiT4LmM4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4LiE4LijIOC4muC4uOC4leC4o+C5guC4nuC4mOC4tOC5jA0KK+C4meC4hOC4oyDguKLguLTguYnguKHguKjguLTguKPguLTguKfguLHguJLguJnguLANCivguJnguITguKMg4Liq4LiH4LiE4Lij4Liy4LihDQor4LiZ4LiE4LijIOC4reC4tOC4meC4l+C4o+C5jOC4quC4uOC4gg0KK+C4meC4hOC5gOC4o+C4qCDguJfguJnguIfguKjguLHguIHguJTguLTguYzguKHguJnguJXguKPguLUNCivguJnguIfguITguKPguLLguI0g4LmA4LiC4Li34LmI4Lit4LiZ4LmB4LiB4LmJ4LinDQor4LiZ4LiH4LiE4Lij4Liy4LiNIOC4p+C4teC4o+C4sOC4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4meC4h+C4hOC5jOC5gOC4ouC4suC4p+C5jCDguJjguKPguKPguKHguJnguLTguJjguLINCivguJnguIfguJnguLLguI8g4LiZ4Li04Lie4LiZ4LiY4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4LiZ4LiH4LiZ4Li44LiKIOC4geC4reC4quC4geC4uOC4pQ0KK+C4meC4h+C4meC4uOC4iiDguIjguLHguJnguJfguKPguYzguKvguK3guKENCivguJnguIfguJnguLjguIog4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiZ4LiH4LiZ4Li44LiKIOC4l+C4seC4muC4qOC4o+C4tQ0KK+C4meC4h+C4meC4uOC4iiDguJvguKPguLDguIHguK3guJrguYDguJ7guYfguIrguKMNCivguJnguIfguJnguLjguIog4LmE4Lie4LiR4Li54Lij4Lii4LmM4Lih4LiH4LiE4LilDQor4LiZ4LiH4LiZ4Li44LiKIOC4peC4suC4oOC4qOC4o+C4teC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4meC4h+C4meC4uOC4iiDguKjguLHguKXguKLguYzguKfguLTguYDguKjguKkNCivguJnguIfguJnguLjguIog4Liq4Li44Lin4Lij4Lij4LiT4LiB4LiZ4Li04Lip4LiQDQor4LiZ4LiH4LiZ4Li44LiKIOC4reC4uOC4k+C4q+C5jOC5hOC4p+C4l+C4ouC4sA0KK+C4meC4h+C4nuC4uOC4mCDguIrguLfguYjguJnguIrguKENCivguJnguIfguKXguLHguIHguKnguJPguYwg4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmM4LmE4Lie4Lij4Lix4LiKDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4iOC4o+C4tOC4ouC4nuC4pOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguIrguYjguKfguKLguKfguIfguKnguYzguI3guLLguJXguLQNCivguJnguIfguKXguLHguIHguKnguJPguYwg4LiQ4Li04LiV4Li04Lin4LijDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4l+C4reC4h+C4reC4seC4qOC4p+C4tOC4mQ0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguJrguLjguI3guI3guKfguLHguJLguJnguYwNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Lie4Lij4Liq4Li34Lia4Lin4LiH4Lio4LmMDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4oOC4ueC5iOC4quC4uOC4muC4tOC4mQ0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguYLguKPguIjguJnguYzguIHguLjguKXguILguIjguKMNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Lin4Li04LiX4Lii4Liy4Lin4Li04Lio4Lin4Liq4LiB4Li44LilDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4oeC5geC4geC5ieC4pw0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguKrguLjguKXguLLguKfguKPguKPguJMNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Lit4Lij4LiK4LijDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LiU4Li1IOC5hOC4nuC4l+C4teC4geC4uOC4pQ0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguIjguLHguJnguJfguKHguLLguKgNCivguJnguIfguYDguKLguLLguKfguYwg4LmB4LiL4LmI4LmC4LiL4LinDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC4mOC4tOC4leC4tOC5hOC4nuC4qOC4suC4pQ0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguJ7guKPguKvguKHguYTguIHguKPguKfguKMNCivguJnguIfguYDguKLguLLguKfguYwg4LmA4Lih4LiZ4Liw4LmA4Lio4Lin4LiVDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC4p+C4suC4meC4sOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguKrguLjguIHguYPguKoNCivguJnguIfguYDguKLguLLguKfguYwg4Lit4Li44LiX4Lix4LiiDQor4LiZ4LiX4Li1IOC4iOC4tuC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jOC4nuC4ow0KK+C4meC4l+C4tSDguYDguKHguIbguIHguLHguKXguIjguLLguKINCivguJnguJfguLXguJfguLTguJ7guKLguYwg4Lij4Lix4LiV4LiV4Li04LiY4Lij4Lij4LihDQor4LiZ4LiZ4LiX4Lie4LijIOC4reC4uOC4lOC4oeC4oeC4suC4gQ0KK+C4meC4meC4l+C4tOC4ouC4siDguJTguLTguJbguLXguYDguJ7guYfguIcNCivguJnguJ4g4LmC4LiK4LiV4Li04LiB4LmA4Liq4LiW4Li14Lii4LijDQor4LiZ4Lie4LiB4LijIOC4iOC4tOC4leC5guC4leC4oOC4suC4qQ0KK+C4meC4nuC4hOC4uOC4kyDguKfguIfguKnguYzguKrguKfguKPguKPguITguYwNCivguJnguJ7guJPguKPguIfguITguYwg4LmB4LiB4LmJ4Lin4LiI4Liz4Lil4Lit4LiHDQor4LiZ4Lie4LiU4LilIOC5hOC4geC4o+C5geC4quC4hw0KK+C4meC4nuC4lOC4pSDguIjguLjguJHguLLguJjguLTguJvguLHguJXguKLguYwNCivguJnguJ7guJTguKUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiZ4Lie4LiU4LilIOC5guC4leC5gOC4iOC4o+C4tOC4jeC4mOC4meC4suC4nOC4pQ0KK+C4meC4nuC4lOC4pSDguJnguLTguKXguIHguLLguYDguJTguYfguJQNCivguJnguJ7guJTguKUg4Lib4Lix4LiX4Lih4LiwDQor4LiZ4Lie4LiU4LilIOC4nuC4tOC5gOC4lOC4ig0KK+C4meC4nuC4lOC4pSDguKHguLTguYjguIfguKXguJTguLLguJ7guKMNCivguJnguJ7guJTguKUg4Lik4LiX4LiY4Li04LmM4LmA4LiX4LieDQor4LiZ4Lie4LiU4LilIOC5gOC4p+C4iuC4p+C4tOC4kOC4suC4mQ0KK+C4meC4nuC4lOC4pSDguKrguLHguIfguILguYzguKjguLTguKPguLTguJnguJfguKPguYwNCivguJnguJ7guJTguKUg4Lir4Lil4Liy4Lin4LiX4Lit4LiHDQor4LiZ4Lie4LiU4LilIOC4reC4uOC4iuC4iuC4tOC4mQ0KK+C4meC4nuC4m+C4juC4pSDguIjguIfguKrguIHguLjguKXguJnguLTguKPguLHguJnguJTguKPguYwNCivguJnguJ7guJ7guKMg4LmA4LiE4Lij4Li34Lit4LmB4LiB4LmJ4LinDQor4LiZ4Lie4Lie4LijIOC4leC4uOC4h+C4hOC4sOC4o+C4seC4geC4qeC5jA0KK+C4meC4nuC4nuC4oyDguJvguKPguLDguYLguKHguIjguJnguLXguKLguYwNCivguJnguJ7guJ7guKMg4Lij4Lix4LiV4LiZ4Lin4Li04Lio4Li04Lip4LiO4LmM4LiB4Li44LilDQor4LiZ4Lie4Lie4LijIOC4qOC4suC4quC4leC4o+C5jOC4guC4sw0KK+C4meC4nuC4nuC4oyDguK3guLTguJnguJfguKPguKrguKfguLHguKrguJTguLTguYwNCivguJnguJ7guJ7guKUg4Lir4Lih4Lin4LiU4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiZ4Lie4Lih4LiT4Li1IOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4meC4nuC4oeC4suC4qCDguYTguKfguKLguKPguLHguIrguJ7guLLguJnguLTguIoNCivguJnguJ7guKPguLHguJXguJnguYwg4LmA4LiC4Li34LmI4Lit4LiZ4LiK4Lix4LiiDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC5hOC4iuC4ouC4o+C4seC4leC4meC5jA0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguJrguLjguI3guJ7guKPguJ7guLTguKHguKUNCivguJnguJ7guKPguLHguJXguJnguYwg4Lii4Li14LmI4Lit4Liz4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC4quC4oeC4muC4seC4leC4tOC4m+C4o+C4sOC4iuC4suC4geC4ow0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguK3guLLguKPguKLguLDguJnguKPguLLguIHguLnguKUNCivguJnguJ7guKfguKPguKPguJMg4LiE4LiH4Lih4Liw4LiB4Lil4LmI4LizDQor4LiZ4Lie4Lin4Lij4Lij4LiTIOC4luC4suC4p+C4o+C4p+C4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4meC4nuC4p+C4o+C4o+C4kyDguKDguLHguIHguJTguLXguJTguLPguKPguIfguKTguJfguJjguLTguYwNCivguJnguJ7guKfguKPguKPguJMg4Liq4Li04LiZ4LiV4Lix4LmJ4LiH4Lin4LiH4Lip4LmMDQor4LiZ4Lie4Lin4Lix4Lil4Lii4LmMIOC4quC4seC4oeC4nuC4seC4meC4mOC5jOC4quC4uOC4guC4qOC4o+C4tQ0KK+C4meC4nuC5gOC4geC5ieC4siDguKrguLjguILguKrguLTguJkNCivguJnguKDguJTguKUg4LmE4LiX4Lii4LiY4Lix4LiN4LiN4Lie4Liy4LiZ4Li04LiKDQor4LiZ4Lig4LiU4LilIOC4quC4uOC4p+C4o+C4o+C4k+C4oeC4k+C4tQ0KK+C4meC4oOC4seC4qiDguKPguLHguJXguJnguYTguJ7guJHguLnguKPguKLguYwNCivguJnguKDguLIg4LiI4Liy4Lih4Li14LiB4Lij4LiB4Li44LilDQor4LiZ4Lig4LiyIOC5guC4leC5iuC4sOC4quC4oeC4seC4mQ0KK+C4meC4oOC4siDguKDguLLguITguLLguKfguLHguKXguKLguYwNCivguJnguKDguLIg4Lio4Lij4Li14LiB4Lix4LiT4LiR4Li04Lih4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiZ4Lig4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4peC4sOC4reC4rQ0KK+C4meC4oOC4suC4nuC4oyDguYDguIHguLXguKLguKPguJXguLTguIrguLHguKLguJfguKPguLHguJ7guKLguYwNCivguJnguKDguLLguJ7guKMg4LiK4Lil4Lia4Li44Lip4Lib4LiB4Li44LilDQor4LiZ4Lig4Liy4Lie4LijIOC4lOC4p+C4h+C4quC4o+C5ieC4reC4ouC4l+C4reC4hw0KK+C4meC4oOC4suC4nuC4oyDguJnguK3guJrguJnguYnguK3guKHguJjguKPguKPguKENCivguJnguKDguLLguJ7guKMg4Lie4LiI4LiZ4Liw4Lio4Li04Lil4LibDQor4LiZ4Lig4Liy4Lie4LijIOC5gOC4oeC4leC4leC4nuC4seC4meC4mOC4uOC5jA0KK+C4meC4oOC4suC4nuC4oyDguKfguIfguKjguYzguIHguLjguJTguLHguYjguJkNCivguJnguKDguLLguJ7guKMg4Liq4LiW4Li04Lij4Liy4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4LiZ4Lig4Liy4Lie4LijIOC4q+C4reC4oeC4guC4iOC4ow0KK+C4meC4oOC4suC4nuC4o+C4o+C4kyDguYDguJXguIrguLDguJ7guLTguKPguLTguKLguLDguIHguLjguKUNCivguJnguKDguLLguKDguKPguJPguYwg4LiX4Li04Lie4Lij4Lix4LiV4LiZ4LmMDQor4LiZ4Lig4Liy4Lig4Lij4LiT4LmMIOC4q+C4sOC4quC4tOC4leC4sOC5gOC4p+C4ig0KK+C4meC4oOC4suC4peC4seC4oiDguKrguLjguKfguKPguKPguJPguJjguLLguJTguLINCivguJnguKDguLLguKjguLTguKPguLQg4LiU4Liy4LiU4Liy4LipDQor4LiZ4Lij4LiK4Lix4LiiIOC4oeC4suC4meC4tOC4leC4geC4uOC4pQ0KK+C4meC4o+C4o+C4seC4leC4meC5jCDguK3guJnguLjguKjguLTguKPguLQNCivguJnguKPguLIg4LmA4LiX4Lie4LmA4Liq4LiZ4LiyDQor4LiZ4Lij4Liy4LiX4Li04Lie4Lii4LmMIOC4p+C4h+C4qOC5jOC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4meC4o+C4suC4oOC4o+C4k+C5jCDguIjguLXguKPguLDguJvguKPguLDguKDguLLguIHguLLguI3guIjguJnguYwNCivguJnguKPguLLguKfguLHguKXguKLguYwg4LiI4Li44Lil4LmC4Lih4LiB4LiC4LmMDQor4LiZ4Lij4Li04LiZ4LiX4Lij4Lix4LiV4LiZ4LmMIOC4quC4p+C4seC4quC4lOC4tOC4p+C4h+C4qOC5jA0KK+C4meC4o+C4tOC4meC4l+C4o+C5jCDguInguLHguJXguKPguYDguInguKXguLTguKHguIrguLHguKINCivguJnguKPguLTguJnguJfguKPguYwg4LiZ4Lij4Li04LiZ4LiX4Lij4LmMDQor4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4nuC4quC4uOC4meC4mOC4o+C4suC4mOC4o+C4o+C4oQ0KK+C4meC4o+C4tOC4meC4l+C4o+C5jCDguKXguLTguYnguKHguKrguKPguYnguK3guKLguYDguJ7guYfguIrguKMNCivguJnguKPguLTguJnguJfguKPguYwg4Liq4Li44LiI4Li04LiV4LmC4LiVDQor4LiZ4Lij4Li04LiZ4LiX4Li04Lie4Lii4LmMIOC5guC4geC4oeC4uOC4l+C4geC4uOC4pQ0KK+C4meC4o+C4tOC4qCDguJjguLXguKPguJ7guKPguJ7guIfguKjguYwNCivguJnguKPguLTguKgg4Liq4LiZ4LmD4LiIDQor4LiZ4Lij4Li04Lio4Lij4LiyIOC4leC4o+C4teC4p+C4o+C4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4meC4o+C4tOC4qOC4o+C4siDguK3guLjguKnguLLguYTguJ7guKPguJ7guKPguKPguJMNCivguJnguKPguLTguKog4Lit4Liy4Lij4Li14Lii4LmMDQor4LiZ4Lij4Li14LiX4Li04Lie4Lii4LmMIOC4l+C4uOC5iOC4h+C4geC4suC4p+C4tQ0KK+C4meC4o+C5gOC4qOC4o+C4qeC4kOC5jCDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4meC4pOC4lOC4tSDguKvguLTguKPguLHguI3guJrguLnguKPguJPguLANCivguJnguKTguJnguLLguJcg4Lil4Li14LmA4Lil4Li04Lio4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4Lik4Lie4LijIOC4reC4seC4hOC4o+C4nuC4h+C4qOC5jOC5hOC4nuC4qOC4suC4pQ0KK+C4meC4pOC4oeC4pSDguIHguLLguI3guIjguJnguJbguKHguKLguLINCivguJnguKTguKHguKUg4LiC4Lix4LiZ4LmB4LiB4LmJ4LinDQor4LiZ4Lik4Lih4LilIOC4iOC4seC4meC4l+C4o+C4p+C4o+C5gOC4oeC4lw0KK+C4meC4pOC4oeC4pSDguIrguLHguKLguITguLnguJPguJzguKUNCivguJnguKTguKHguKUg4LmB4LiL4LmI4Lit4Li24LmI4LiHDQor4LiZ4Lik4Lih4LilIOC4leC4tOC4meC4sg0KK+C4meC4pOC4oeC4pSDguJjguJnguLDguJbguYnguK3guKINCivguJnguKTguKHguKUg4Lia4Li44LiN4LiB4LiZ4LiBDQor4LiZ4Lik4Lih4LilIOC5gOC4m+C4o+C4oeC4p+C4uOC4kuC4tA0KK+C4meC4pOC4oeC4pSDguJ7guLjguJfguJjguJnguKfguKPguLHguJXguJnguYwNCivguJnguKTguKHguKUg4Lih4Liy4LiZ4Liw4Liq4LiB4Li44Lil4LiB4Li04LiIDQor4LiZ4Lik4Lih4LilIOC4o+C4uOC4iOC4tOC4q+C4suC4jQ0KK+C4meC4pOC4oeC4pSDguKfguKPguKPguJPguLLguYTguJfguKMNCivguJnguKTguKHguKUg4Lio4Li04Lij4Li04Lie4LiH4Lio4LmM4LiV4Lij4Liw4LiB4Li54LilDQor4LiZ4Lik4Lih4LilIOC4quC4tOC4o+C4tOC4m+C4o+C4teC4lOC4suC4meC4meC4l+C5jA0KK+C4meC4pOC4oeC4pSDguYHguKrguJnguKrguKfguKINCivguJnguKTguKHguKUg4Lit4Lij4Li44LiT4LmA4LiI4Lij4Li04LiN4LiB4Li44LilDQor4LiZ4Lik4Lih4Li04LiVIOC4nOC4peC4suC4geC4o+C4geC4uOC4pQ0KK+C4meC4peC4nuC4oyDguKDguLTguI3guYLguI3guJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguJnguKXguLTguJnguJfguLTguJ7guKLguYwg4LmB4Liq4LiZ4LiX4Lin4Li14Liq4Li44LiCDQor4LiZ4Lil4Li04LiZ4Li1IOC4mOC4h+C4meC4s+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4meC4peC4tOC4meC4tSDguK3guKPguYjguLLguKHguYDguKPguLfguK3guIfguKrguIHguLjguKUNCivguJnguKfguJ7guKMg4LiB4Li44Lil4Lin4LiK4Li04Lij4Liy4Lin4Lij4Lij4LiT4LmMDQor4LiZ4Lin4Lie4LijIOC4p+C4h+C4qOC5jOC4reC4uOC5hOC4ow0KK+C4meC4p+C4oSDguJ7guKXguLHguJrguIjguLjguYnguKINCivguJnguKfguKPguLHguJXguJnguYwg4LmA4LiI4Lij4Li04LiN4LiY4LiZ4Liy4Lin4Lix4LiS4LiZ4LmMDQor4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMIOC4m+C4uOC4geC4q+C4uOC4lQ0KK+C4meC4p+C4o+C4seC4leC4meC5jCDguKrguIfguKfguJnguYDguKrguKPguLXguJ7guLLguJnguLTguIoNCivguJnguKfguKUg4Lin4Lix4Lii4Lih4Li44LiCDQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC4iOC4reC4oeC5geC4quC4hw0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguJXguLHguIfguITguJrguJTguLUNCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4Lia4Li44LiN4Lie4LiI4LiZ4Liq4Li44LiZ4LiX4LijDQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC5guC4oOC4hOC4sg0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguKjguKPguLXguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4Lit4Liy4Lij4Li14Lio4Lij4Li14Lin4Lix4LiS4LiZ4Liy4Lin4LiH4Lip4LmMDQor4LiZ4Lin4Lil4LiJ4Lin4Li1IOC4muC4seC4p+C4hOC4o+C4t+C5ieC4mQ0KK+C4meC4p+C4peC4leC4siDguJ7guLHguJLguJnguKrguLTguIfguKvguYwNCivguJnguKfguKXguJnguYnguK3guKIg4LiB4LiZ4Li04Lip4LiQ4Liq4Li44LiVDQor4LiZ4Lin4Lil4LiZ4LmJ4Lit4LiiIOC4quC4uOC4guC4p+C4suC4meC4tOC4iuC4ouC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4meC4p+C4peC4m+C4o+C4suC4hyDguIrguLHguKLguJfguJkNCivguJnguKfguKXguJ7guKMg4Lig4Liy4LiT4Li44Lih4Liy4Lig4Lij4LiT4LmMDQor4LiZ4Lin4Lil4Lie4Lij4Lij4LiTIOC4quC4s+C4o+C4reC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4meC4p+C4peC4pOC4lOC4tSDguYDguJXguYfguKHguKTguJfguJjguLTguKfguIfguKjguYwNCivguJnguKfguKXguKXguLDguK3guK0g4LmA4Lil4LiEDQor4LiZ4Lin4Lil4Lio4Lij4Li1IOC4ieC4p+C4teC4nuC4tOC4qOC4suC4pQ0KK+C4meC4p+C4peC4qOC4o+C4tSDguKPguLTguIjguLTguKPguKfguJnguLTguIoNCivguJnguKfguKXguKjguLTguKPguLQg4LiI4LiH4LmA4LiI4Lij4Li04LiN4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Lin4Lil4Lit4LiZ4LiH4LiE4LmMIOC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C4meC4p+C4peC4reC4meC4h+C4qOC5jCDguJjguKPguKPguKHguKrguLjguIjguKPguLTguJUNCivguJnguKfguKfguKPguKPguJMg4LiB4Li04LiI4LmA4LiI4Lij4Li04LiN4Lin4LiH4Lio4LmMDQor4LiZ4Lit4Lil4LmA4LiU4Lin4LiL4Li04LiH4Lir4LmMIOC4iOC4suC4p+C4peC4sg0KK+C4meC5ieC4reC4oSDguJfguKPguLHguJ7guKLguLHguKINCivguJnguYnguK3guKHguIjguLTguJXguJXguYwg4Lie4Li24LmI4LiH4Lie4LijDQor4LiZ4LmJ4Lit4LiiIOC4hOC4h+C4qOC4tOC4peC4sg0KK+C4meC5ieC4reC4oiDguIrguLnguJTguKfguIcNCivguJnguYnguK3guKIg4LiV4Lij4Li14Lie4Lij4LmE4Lie4Lij4Lix4LiKDQor4LiZ4LmJ4Lit4LiiIOC4meC4uOC4iuC4iuC4seC4og0KK+C4meC5ieC4reC4oiDguJ7guLHguJLguJ7guLTguJrguLnguKXguKLguYwNCivguJnguYnguK3guKIg4Lii4Lij4Lij4Lii4LiH4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4LiZ4LmJ4Lit4LiiIOC5guC4p+C4q+C4suC4ow0KK+C4meC5ieC4reC4oiDguKrguLjguJTguKvguKXguYnguLINCivguJnguYnguK3guKIg4Liu4Liy4Lih4Li04LiEDQor4LiZ4Lix4LiB4Lij4LiaIOC4q+C4peC4tOC5iOC4oeC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4meC4seC4juC4lOC4siDguKjguKPguLXguKXguYnguK3guKHguKXguLLguKANCivguJnguLHguJDguIHguLTguJXguJXguLQg4LmB4LiL4LmI4LmA4LiI4Li14Lii4LihDQor4LiZ4Lix4LiQ4Lii4LiyIOC4reC4meC4uOC4lOC4tOC4qeC4kOC5jA0KK+C4meC4seC4lOC4lOC4siDguYLguJ7guJjguLINCivguJnguLHguJfguJjguKHguJkg4LmB4LiV4LiH4Lie4Li44LiBDQor4LiZ4Lix4LiZIOC4nuC4seC4meC5gOC4lOC4ig0KK+C4meC4seC4meC4l+C4geC4siDguJ7guLLguKrguLjguJnguLHguJnguJfguYwNCivguJnguLHguJnguJfguYzguIrguJnguIEg4LiK4Liy4Lin4LmA4Lij4Li34LitDQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4hOC4o+C4reC4h+C4muC4uOC4jeC4qOC4o+C4tQ0KK+C4meC4seC4meC4l+C4meC4siDguIvguLLguK3guLDguJTguLUNCivguJnguLHguJnguJfguJnguLIg4LiY4Lij4Lij4Lih4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4nuC4o+C4l+C4o+C4suC4meC4meC4l+C5jA0KK+C4meC4seC4meC4l+C4meC4siDguKPguLLguJXguKPguLXguYLguIrguJXguLQNCivguJnguLHguJnguJfguJnguLIg4Lio4Li04Lil4Liy4Liq4Lix4LiiDQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4reC4meC4seC4meC4leC5jOC4mOC5guC4meC4lOC4oQ0KK+C4meC4seC4meC4l+C4meC4tSDguYDguJXguIrguLDguKHguYLguJnguKPguKHguKLguYwNCivguJnguLHguJnguJfguJ7guKMg4LiK4Lix4Lii4Lin4Lij4LiX4LijDQor4LiZ4Lix4LiZ4LiX4Lie4LijIOC4o+C4t+C5iOC4meC5hOC4p+C4og0KK+C4meC4seC4meC4l+C4nuC4pSDguJfguK3guIfguITguLMNCivguJnguLHguJnguJfguKLguLIg4LmC4Lib4Lij4LmI4LiH4LmB4Liq4LiH4LiY4Lij4Lij4LihDQor4LiZ4Lix4LiZ4LiX4Lij4LiyIOC4pOC4lOC4teC4guC4iOC4ow0KK+C4meC4seC4meC4l+C4p+C4o+C4o+C4kyDguJrguLnguKPguJPguJvguKPguLDguJ7guKTguIHguKnguYwNCivguJnguLHguJnguJfguKfguLHguJLguJnguYwg4LiE4LiZ4Li04Lii4Lih4LmA4Lin4LiE4Li04LiZDQor4LiZ4Lix4LiZ4LiX4Lin4Lix4LiZIOC5gOC4iOC4teC4ouC4o+C4reC4uOC4lOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4meC4seC4meC4l+C4p+C4seC4mSDguKDguLnguKPguLTguKjguKPguLUNCivguJnguLHguJnguJfguKfguLHguJkg4Lit4Li04Liq4Lij4Liw4Lih4Liy4Lil4Lix4LiiDQor4LiZ4Lix4LiZ4LiX4Liq4Liy4LijIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jQ0KK+C4meC4seC4meC4l+C4siDguIrguLTguJnguJjguKPguKPguKHguKHguLTguJXguKPguYwNCivguJnguLHguJnguJfguLIg4Lia4Li44LiN4LiX4Lin4Li14Liq4LiB4Li44LilDQor4LiZ4Lix4LiZ4LiX4LiyIOC4o+C4seC4leC4meC5hOC4iuC4og0KK+C4meC4seC4meC4l+C4siDguKrguLjguILguYDguIjguKPguLTguI0NCivguJnguLHguJnguJfguLTguIHguLIg4Lin4Li04Lij4Li04Lii4Liw4Liq4Liy4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Lix4LiZ4LiX4Li04Lig4LiyIOC4o+C4seC4leC4meC5gOC4nuC4teC4ouC4o+C4iuC4seC4og0KK+C4meC4seC4meC4l+C4tOC4ouC4siDguJnguLPguYDguIHguLXguKLguKPguJXguLTguKfguIfguKnguLINCivguJnguLHguJnguJfguLTguKLguLIg4Lio4Lix4LiB4LiU4Li04LmM4LiJ4Lix4LiZ4LiX4Lit4Liz4Lie4LiZDQor4LiZ4Lix4LiZ4LiX4LmMIOC5gOC4o+C4t+C4reC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4meC4seC4ouC4meC5jOC4o+C4seC4leC4meC5jCDguYDguJfguLXguKLguKHguJfguLHguKjguJnguYwNCivguJnguLHguKLguJnguLIg4LmB4LiL4LmI4LiE4Li5DQor4LiZ4Lix4Lii4LiZ4LiyIOC4m+C4reC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4meC4seC4ouC4meC4siDguKXguLXguJnguLDguJjguKPguKPguKENCivguJnguLHguKLguJnguLIg4Liq4Li44Lin4Lij4Lij4LiT4LiX4Lit4LiHDQor4LiZ4Lix4Liq4LiV4Li04Lii4LiyIOC4muC4uOC4jeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4meC4suC4hOC4tOC4mSDguYDguJ7guIrguKPguKPguLHguIHguKnguYwNCivguJnguLLguI7guKLguLIg4Lit4LiU4Li04LmA4Lij4LiB4Lik4LiX4LiY4Li04Lij4LiTDQor4LiZ4Liy4LiP4Lii4LiyIOC4pOC4l+C4mOC4tOC5jOC5gOC4guC4teC4ouC4pw0KK+C4meC4suC4leC4ouC4siDguITguIfguYDguILguLLguKHguYjguKfguIcNCivguJnguLLguJXguKLguLIg4LiZ4Li04Lii4LihDQor4LiZ4Liy4LiV4Lii4LiyIOC4qOC4o+C4teC4quC4uOC4muC4tOC4mQ0KK+C4meC4suC4leC4reC4meC4h+C4hOC5jCDguIrguLfguYjguJnguJrguLLguJkNCivguJnguLLguJbguKTguJTguLUg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lie4Lij4LmJ4Lit4LihDQor4LiZ4Liy4LiZ4LiyIOC5geC4i+C5iOC4luC4seC4pw0KK+C4meC4suC4o+C4liDguJjguLLguKPguLDguJ7guLjguJfguJgNCivguJnguLLguKPguLIg4LmC4Liq4Lih4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4LiZ4Liy4Lij4Li1IOC4hOC4o+C4reC4h+C4quC4seC4leC4ouC5jA0KK+C4meC4suC4o+C4tSDguYDguJXguIrguLDguKrguLjguKDguLLguIHguLnguKMNCivguJnguLLguKPguLUg4Lie4Lix4LiZ4LiY4LmM4LiU4Li1DQor4LiZ4Liy4Lij4Li1IOC4qOC4seC4geC4lOC4tOC5jOC5gOC4quC4o+C4teC4iuC4seC4ouC4geC4uOC4pQ0KK+C4meC4suC4o+C4teC4meC4suC4o+C4liDguInguLTguKHguKDguLnguYjguJnguLjguYjguKENCivguJnguLLguKPguLXguKPguLHguJXguJnguYwg4LiY4LiZ4Liy4Liq4Li44Lin4Lij4Lij4LiT4LiU4Li04LiW4Li1DQor4LiZ4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4quC4teC5gOC4q+C4peC5h+C4gQ0KK+C4meC4suC4p+C4tOC4mSDguIHguKPguLDguJXguYjguLLguKLguIjguLXguJkNCivguJnguLLguKfguLTguJkg4Lir4Lil4LmI4Lit4Lil4Lix4LiB4Lip4LiT4LmMDQor4LiZ4Liy4LmA4Lin4LiqIOC4ouC4seC4h+C4meC5ieC4reC4og0KK+C4meC4s+C4iuC4seC4oiDguJfguLTguJ7guIrguLLguJXguLTguYLguKLguJjguLTguJkNCivguJnguLPguIrguLHguKIg4Lit4Li34LmJ4Lit4LmA4Lio4Lij4Lip4LiQ4Lio4Lix4LiB4LiU4Li04LmMDQor4LiZ4Liz4Lil4Liy4LigIOC5gOC4muC5ieC4suC4quC4uOC4p+C4o+C4o+C4kw0KK+C4meC5ieC4syDguIrguKXguKrguLLguKLguJ7guLHguJnguJjguYwNCivguJnguYnguLPguJfguLTguJ7guKLguYwg4LiI4Lix4LiZ4LiX4LiB4LiZ4LiBDQor4LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMIOC4oOC4suC4o+C4sOC5gOC4p+C4ig0KK+C4meC5ieC4s+C4nOC4mSDguKPguLDguYDguJrguLXguKLguJoNCivguJnguYnguLPguJ3guJkg4Lin4Li04Lia4Li54Lil4LiK4Liy4LiV4Li0DQor4LiZ4LmJ4Liz4LmA4LiK4Li14LmI4Lii4LinIOC4iOC4tOC4meC4lOC4suC4nuC4seC4meC4mOC5jA0KK+C4meC4tOC4geC4oyDguIHguLHguIfguKfguLLguKPguLLguKfguLjguJLguLQNCivguJnguLTguIHguKMg4LiZ4Lin4Lib4Lij4Li14LiK4Liy4LiB4Li44LilDQor4LiZ4Li04LiB4LijIOC5gOC4peC4tOC4qOC4iuC4suC4oeC4nuC4ueC4meC4lw0KK+C4meC4tOC4geC4o+C4oSDguJ7guLbguYjguIfguILguLMNCivguJnguLTguITguKEg4LiE4Liz4LmA4Lic4Li34LmI4Lit4LiZDQor4LiZ4Li04LiE4LihIOC5gOC4leC4p+C4seC4kuC4leC4suC4meC4meC4l+C5jA0KK+C4meC4tOC4hOC4oSDguJ7guIfguKjguYzguYTguJfguKINCivguJnguLTguITguKEg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LiZ4Li04LiE4LihIOC4quC4uOC4guC4quC4uOC4oeC4tOC4leC4ow0KK+C4meC4tOC4iCDguKLguLjguIrguKHguKDguLkNCivguJnguLTguIrguI3guLIg4LmC4LiB4Lin4Li04LiX4LiE4LiT4Li04LiVDQor4LiZ4Li04LiUIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4meC4tOC4lOC4lOC4siDguKfguKrguLDguKDguLTguI3guYLguI3guIHguLjguKUNCivguJnguLTguJTguLIg4Lic4LmI4Lit4LiH4Lit4Liy4Lij4Lih4LiT4LmMDQor4LiZ4Li04LiU4Liy4Lin4Lij4Lij4LiTIOC4kOC4tOC4leC4o+C4seC4leC4meC4nuC4pQ0KK+C4meC4tOC4leC4ouC5jOC4m+C4o+C4sOC4oOC4siDguK3guJTguLjguKXguYDguJTguIrguIjguKPguLHguKUNCivguJnguLTguJXguKLguLIg4LiB4Liy4Lij4Liq4Liy4Lih4Liy4Lij4LiWDQor4LiZ4Li04LiV4Lii4LiyIOC4guC4p+C4seC4jeC4pOC4geC4qeC5jA0KK+C4meC4tOC4leC4ouC4siDguIfguLHguYjguJnguJrguLjguI3guKjguKPguLUNCivguJnguLTguJXguKLguLIg4LiI4Li04Lij4Lib4Lij4Liw4Lig4Liy4Lie4LijDQor4LiZ4Li04LiV4Lii4LiyIOC4iuC4o+C4tOC4meC4l+C4o+C4suC4p+C4uOC4kuC4tA0KK+C4meC4tOC4leC4ouC4siDguYTguIrguKLguKHguIfguITguKUNCivguJnguLTguJXguKLguLIg4LmB4LiL4LmI4LmA4Lib4LmKDQor4LiZ4Li04LiV4Lii4LiyIOC4leC4seC5ieC4h+C4iOC4tOC4leC4meC4mg0KK+C4meC4tOC4leC4ouC4siDguJfguKfguLXguYLguJUNCivguJnguLTguJXguKLguLIg4LiY4Liz4Lij4LiH4Lin4Li04LiX4Lin4Lix4Liq4Lie4LiH4Lio4LmMDQor4LiZ4Li04LiV4Lii4LiyIOC5gOC4meC4teC4ouC4oeC4hOC4hw0KK+C4meC4tOC4leC4ouC4siDguJvguKPguLDguITguK3guIcNCivguJnguLTguJXguKLguLIg4LmB4Lic4LmI4LiZ4LiX4Lit4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC4nuC4tOC4peC4suC5geC4lOC4hw0KK+C4meC4tOC4leC4ouC4siDguKDguLnguYjguKLguK3guJTguKLguLTguYjguIcNCivguJnguLTguJXguKLguLIg4LmC4Lih4Liu4Liz4Lih4Lix4Liq4Lit4Li14Liq4Lih4Liy4Lit4Li14LilDQor4LiZ4Li04LiV4Lii4LiyIOC5gOC4o+C4t+C4reC4h+C4lOC4suC4o+C4geC4suC4meC4meC4l+C5jA0KK+C4meC4tOC4leC4ouC4siDguKfguIfguKjguYzguJvguKPguLXguJTguLUNCivguJnguLTguJXguKLguLIg4Lin4Li04Lig4Liy4LiV4Liw4LmC4Lii4LiY4Li04LiZDQor4LiZ4Li04LiV4Lii4LiyIOC4qOC4suC4peC4ouC4suC4iuC4teC4p+C4tOC4mQ0KK+C4meC4tOC4leC4ouC4siDguKrguLHguIfguILguYzguJfguK3guIcNCivguJnguLTguJXguKLguLIg4Liq4Li44LiX4LiY4Li04Lio4Li04Lij4Li0DQor4LiZ4Li04LiV4Lii4LiyIOC5geC4quC4h+C5geC4lOC4hw0KK+C4meC4tOC4leC4ouC4siDguK3guKLguLnguYjguJnguLTguYjguKENCivguJnguLTguJXguKLguLIg4Lit4Li44LiU4Lih4Lij4Lix4LiV4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiZ4Li04LiV4Lii4LmMIOC5geC4geC5ieC4p+C4ieC4suC4og0KK+C4meC4tOC4leC4ouC5jCDguJbguLXguYjguJbguYnguKfguJkNCivguJnguLTguJXguKLguYwg4Lig4Li54LmI4LmD4LiI4LmA4LiX4Li14LmI4Lii4LiHDQor4LiZ4Li04LiV4Lii4LmMIOC4quC4uOC4meC4l+C4o+C4reC4meC4seC4meC4leC4geC4uOC4pQ0KK+C4meC4tOC4leC4tCDguInguYjguLPguJzguLbguYnguIcNCivguJnguLTguJXguLTguIHguKMg4Liq4LiW4Li04LiV4Lik4LiX4LiY4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LiZ4Li04LiV4Li04Lie4LijIOC4l+C4reC4h+C4meC4uOC5iOC4oQ0KK+C4meC4tOC4l+C4mOC4tOC4o+C4siDguJ/guLHguIHguYHguKLguYnguKENCivguJnguLTguJfguLHguKjguJnguYwg4LiB4Lix4LiH4LmB4LiC4LiBDQor4LiZ4Li04LiX4Lix4Lio4LiZ4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4meC4leC4tOC4geC4uOC4pQ0KK+C4meC4tOC4l+C4seC4qOC4meC5jCDguK3guKDguLTguIrguLLguJXguLTguJrguLjguJXguKPguYwNCivguJnguLTguJjguLTguIrguLHguKIg4LmE4LiK4Lii4LiY4Lin4Lix4LiKDQor4LiZ4Li04LiY4Li04Lih4LiyIOC4iuC4suC4hOC4o+C4tOC4leC4kOC4suC4geC4ueC4ow0KK+C4meC4tOC4mOC4tSDguYDguKHguIbguKrguLjguJfguLHguKjguJnguYwNCivguJnguLTguJ7guJnguJjguYwg4LiB4Lij4LmA4LiB4Lip4LihDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC5hOC4geC4o+C4peC4seC4geC4qeC4k+C5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguIjguLHguJnguJfguKMNCivguJnguLTguJ7guJnguJjguYwg4LiK4Liy4LiN4Lit4Lix4LiB4Lip4LijDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4lOC4suC4o+C4suC4p+C4o+C4o+C4k+C5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguJfguKjguKPguIfguITguYwNCivguJnguLTguJ7guJnguJjguYwg4LiZ4Li04LmI4Lih4LmD4Lir4Lih4LmIDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4m+C4o+C4sOC4quC4h+C4hOC5jOC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguJ7guKTguJLguLTguITguLLguKHguKDguLXguKPguYwNCivguJnguLTguJ7guJnguJjguYwg4Lig4Lin4Liq4Lix4LiZ4LiV4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC5guC4ouC4oeC4sg0KK+C4meC4tOC4nuC4meC4mOC5jCDguKXguLXguKXguLLguKfguLTguKXguLLguKoNCivguJnguLTguJ7guJnguJjguYwg4Lin4Li04Lil4Liy4Lil4Lix4LiiDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4quC4h+C4p+C4meC4meC4suC4oQ0KK+C4meC4tOC4nuC4meC4mOC5jCDguKrguLjguILguKrguKHguLLguJkNCivguJnguLTguJ7guJnguJjguYwg4Lir4LiH4Liq4LmM4Lin4Li04LiI4Lix4LiB4Lip4LiT4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4reC4seC4qOC4p+C4quC4h+C4hOC4o+C4suC4oQ0KK+C4meC4tOC4nuC4oyDguKfguKPguInguLHguJXguKMNCivguJnguLTguJ7guLHguJLguJnguYwg4LiC4LiZ4Lit4LiZ4LmA4Lin4LiKDQor4LiZ4Li04Lie4Lix4LiX4LiY4LmMIOC4l+C4reC4h+C5gOC4peC5h+C4gQ0KK+C4meC4tOC4nuC4seC4meC4mOC5jCDguYDguJnguLXguKLguKHguKfguIfguKjguYwNCivguJnguLTguJ7guLTguJAg4Lit4Lij4Li44LiT4Lin4LiH4Lip4LmMIOC4kyDguK3guKLguLjguJjguKLguLINCivguJnguLTguKDguLIg4LmB4LiB4LmJ4Lin4Lir4Lit4LihDQor4LiZ4Li04Lig4LiyIOC4iOC4seC4meC4l+C4tOC4oeC4sg0KK+C4meC4tOC4oOC4siDguIrguYjguLLguIfguJnguLLguIQNCivguJnguLTguKDguLIg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LiZ4Li04Lig4LiyIOC4luC4geC4peC4p+C4tOC5guC4o+C4iOC4meC5jA0KK+C4meC4tOC4oOC4siDguJnguJnguJfguIrguLXguKfguLINCivguJnguLTguKDguLIg4Lib4Lij4Li14LiK4Liy4LiV4Lix4LmJ4LiH4LiB4Li04LiIDQor4LiZ4Li04Lig4LiyIOC4nuC4seC4meC4mOC4oeC4tOC4leC4ow0KK+C4meC4tOC4oOC4siDguYLguKDguITguLLguKPguLHguIHguKnguYwNCivguJnguLTguKDguLIg4Lij4Li44LiI4Li04Lij4Liw4LiB4Li04LiV4Li04Lin4LiB4Li54LilDQor4LiZ4Li04Lig4LiyIOC4p+C4o+C5hOC4geC4p+C4seC4pQ0KK+C4meC4tOC4oOC4siDguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguJnguLTguKDguLIg4Liq4Li04Lij4Li04Lih4Lir4Liy4Liq4Li44Lin4Lix4LiS4LiZ4LmMDQor4LiZ4Li04Lig4LiyIOC4q+C4suC4jeC5gOC4geC4tOC4lOC4quC4tOC4o+C4tA0KK+C4meC4tOC4oOC4siDguK3guLTguJnguJ7guLHguJXguKPguLINCivguJnguLTguKDguLLguJ7guKMg4LiI4LiH4LiI4Lij4Lin4Lii4Liq4LiB4Li44LilDQor4LiZ4Li04Lig4Liy4Lie4LijIOC4muC4seC4p+C4l+C4reC4hw0KK+C4meC4tOC4oOC4suC4nuC4oyDguKjguLHguIHguJTguLTguYzguYHguKrguJkNCivguJnguLTguKDguLLguJ7guKPguKPguJMg4Lie4LiH4Lio4LmM4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Li04Lig4Liy4Lig4Lij4LiT4LmMIOC5gOC4iuC4tOC4jeC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4meC4tOC4oOC4suC4oOC4o+C4k+C5jCDguKrguLjguILguKrguKfguLHguKrguJTguLTguYwNCivguJnguLTguKDguLLguKfguKPguKPguJMg4LiX4Lij4LiH4Lio4Li04Lil4Lib4LmMDQor4LiZ4Li04Lih4LiZIOC4leC4uOC5iOC4oeC4qOC4tOC4o+C4tA0KK+C4meC4tOC4oeC4tOC4lSDguKrguLjguKPguLTguKvguLLguKMNCivguJnguLTguKHguLTguJXguKMg4LiZ4LmJ4Lit4Lii4LmA4LiI4Lij4Li04LiNDQor4LiZ4Li04Lih4Li04LiV4LijIOC5geC4quC4h+C4reC4s+C5hOC4ng0KK+C4meC4tOC5iOC4oeC4meC4p+C4pSDguYDguIHguKjguKfguKPguLLguIfguIHguLnguKMNCivguJnguLTguYjguKHguJnguKfguKUg4Lio4Li44Lig4Lip4LijDQor4LiZ4Li04Lii4LiU4LiyIOC4oOC4ueC5iOC4reC4meC4uOC4quC4suC4quC4meC5jA0KK+C4meC4tOC4ouC4oSDguIjguJnguLTguKnguJDguYwNCivguJnguLTguKLguKEg4LmB4LiU4LiH4LmA4Lit4Li14LmI4Lii4Lih4LmA4Lit4LiBDQor4LiZ4Li04Lii4LihIOC4meC4tOC4peC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4meC4tOC4ouC4oSDguJ7guLTguJ7guLHguJLguJnguYzguKjguLLguJnguJXguYwNCivguJnguLTguKLguKEg4LmA4Lil4Li04Lio4Liq4Liz4Lij4Liy4LiN4LmA4Lij4Li04LiH4Lij4Lih4Lii4LmMDQor4LiZ4Li04Lii4LihIOC4quC4uOC4oOC4suC4ng0KK+C4meC4tOC4ouC4oeC4qOC4o+C4tSDguKrguLLguKPguKrguLjguIINCivguJnguLTguKPguIrguLIg4LmC4Lii4LiY4Li04LiZ4Lit4Li44Lib4LmE4Lih4LiiDQor4LiZ4Li04Lij4Lih4LilIOC4iOC4h+C4iuC4suC4jeC4quC4tOC4l+C5guC4mA0KK+C4meC4tOC4o+C4oeC4pSDguJXguLHguJnguJXguLTguJ7guLHguJnguJjguYzguKfguJTguLUNCivguJnguLTguKPguKHguKUg4Lie4Lix4LiS4LiZ4Liq4Li44Lin4Lij4Lij4LiTDQor4LiZ4Li04Lij4Lih4LilIOC4p+C4ouC4suC4geC4o+C4k+C5jOC4p+C4tOC4iOC4tOC4leC4ow0KK+C4meC4tOC4o+C4oeC4pSDguKvguKXguYjguK3guKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJnguLTguKPguLHguIHguKnguYwg4Lil4Li04LmJ4Lih4LmB4Lir4Lil4Lih4LiX4Lit4LiHDQor4LiZ4Li04Lij4Lix4LiV4LiZ4LmMIOC4nuC4o+C4q+C4o+C4o+C4qeC4suC4p+C4tOC4iOC4tOC4lQ0KK+C4meC4tOC4o+C4seC4meC4lOC4oyDguJ7guKfguIfguJ7guLjguJQNCivguJnguLTguKPguLHguJnguJTguKPguYwg4LiI4Lit4LiZ4LmB4LiI4LmJ4LiHDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC4l+C4reC4h+C4meC5ieC4reC4og0KK+C4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguJ7guLHguJnguJfguKPguIHguLTguIgNCivguJnguLTguKPguLHguJnguJTguKPguYwg4LmC4Lil4LmJ4Liq4LiB4Li44LilDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC4quC4uOC4guC4qOC4o+C4teC4iOC4seC4geC4o+C4p+C4suC4rA0KK+C4meC4tOC4o+C4seC4meC4leC5jCDguYDguInguKLguKPguK3guJQNCivguJnguLTguKPguLjguJLguJnguYwg4LiV4Lix4LiZ4Lit4LiZ4Li44LiK4Li04LiV4LiV4Li04LiB4Li44LilDQor4LiZ4Li04Lij4Li44LiYIOC5geC4ouC5ieC4oeC5guC4iuC4leC4tA0KK+C4meC4tOC4peC4muC4pSDguJfguLnguKPguLLguJnguLjguKDguLLguJ4NCivguJnguLTguKXguKfguKPguKPguJMg4Lie4LiH4Lip4LmM4LmA4Lic4Li34Lit4LiBDQor4LiZ4Li04Lil4Li44Lia4LilIOC5guC4geC5hOC4qOC4ouC4geC4suC4meC4meC4l+C5jA0KK+C4meC4tOC4pyDguYHguIvguYjguYDguIjguLXguKLguIcNCivguJnguLTguKfguLHguJLguJnguYwg4LiE4LiH4LiK4Li34LmI4LiZDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4leC4seC4meC4iOC4tOC4o+C4p+C4seC4kuC4meC4sg0KK+C4meC4tOC4p+C4seC4kuC4meC5jCDguJ7guLHguJnguJjguYzguJ7guLjguYjguKENCivguJnguLTguKfguLHguJLguJnguYwg4Lin4Lix4LiS4LiZ4Liy4LmA4LiI4Lij4Li04LiN4Lio4Li04Lil4Lib4LmMDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4reC4o+C4tOC4ouC4nuC4pOC4geC4qeC5jA0KK+C4meC4tOC4p+C4seC4leC4meC5jCDguKDguLnguJXguLTguIHguJnguLTguKnguJDguYwNCivguJnguLTguKfguLHguJXguKPguYwg4LiZ4Li04Lii4Lih4LmE4LiX4LiiDQor4LiZ4Li04Lin4Lix4LiV4Li0IOC4nOC4peC4mOC4seC4jeC4jeC4sg0KK+C4meC4tOC4p+C4seC4leC4tCDguKvguYjguLLguJnguJXguKPguLDguIHguLnguKUNCivguJnguLTguKjguLIg4LmA4LiI4Li14Lii4Lih4Lij4Li44LiI4Li14LiB4Li44LilDQor4LiZ4Li04Lio4Liy4LiB4LijIOC4m+C4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4meC4tOC4qOC4suC4meC4suC4lyDguJjguKPguKPguKHguJTguLPguYDguIHguLTguIcNCivguJnguLTguKnguJDguIHguLLguJnguJXguYwg4LmA4Lii4LmH4LiZ4Lie4Lij4Liw4Lie4Liy4LiiDQor4LiZ4Li04Liq4Lix4LiiIOC4reC4o+C4o+C4luC5hOC4geC4p+C4seC4peC4p+C4l+C4tQ0KK+C4meC4tOC4quC4siDguJvguLTguKLguLDguJ7guLHguJnguJjguYwNCivguJnguLTguKrguLLguIHguKMg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4LmJ4Lit4LiH4LiC4LiI4LijDQor4LiZ4Li04Liq4Liy4Lij4Lix4LiV4LiZ4LmMIOC5gOC4leC4iuC4suC4p+C4seC4kuC4meC4p+C4tOC4qOC4suC4pQ0KK+C4meC4tOC4quC4tOC4leC4siDguJ7guKPguKHguJ7guLTguKXguLINCivguJnguLTguYDguKfguKgg4LmA4LiI4Li04LmI4LiH4Lih4LmC4LiZ4LiY4Lij4Lij4LihDQor4LiZ4Li04LmA4Lin4Lio4LiZ4LmMIOC4meC4suC4hOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4meC4tOC5guC4mSDguK3guLTguJnguYDguJXguK3guKPguLHguJnguYDguJUNCivguJnguLTguYTguIHguKUg4LmC4Lii4Lib4Lix4LiHDQor4LiZ4Li14Lij4Lih4LilIOC4quC4uOC4meC4l+C4o+C4meC4meC4l+C5jA0KK+C4meC4uOC4geC4oyDguKfguKPguLLguIHguLnguKXguKjguLTguKPguLTguKfguKPguKPguJMNCivguJnguLjguIHguLnguKUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiZ4Li44LiB4Li54LilIOC4nuC4pOC4geC4qeC4p+C4seC4mQ0KK+C4meC4uOC4geC4ueC4pSDguKrguLjguILguKrguKENCivguJnguLjguIjguKPguLTguJnguJfguKPguYwg4Liq4Li04LiZ4Lin4LiZ4Liy4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiZ4Li44LiKIOC4hOC4peC4reC4h+C4meC5ieC4reC4og0KK+C4meC4uOC4iuC4iOC4o+C4tOC4meC4l+C4o+C5jCDguYDguIjguKfguLTguJnguJnguLjguIHguLjguKUNCivguJnguLjguIrguIjguKPguLUg4LiX4Lit4LiH4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0DQor4LiZ4Li44LiK4LiI4Liy4Lij4Li1IOC4hOC4peC5ieC4suC4ouC4quC4uOC4p+C4o+C4o+C4kw0KK+C4meC4uOC4iuC4meC4suC4iCDguJ7guKXguJfguKHguLTguKwNCivguJnguLjguIrguJnguLLguI4g4LmC4Liq4Lig4LiyDQor4LiZ4Li44LiK4LiZ4Liy4LiWIOC5gOC4geC4tOC4lOC5gOC4nuC4tOC5iOC4oQ0KK+C4meC4uOC4iuC4meC4suC4liDguKjguLXguKrguLHguIfguILguYwNCivguJnguLjguIrguJnguLLguKPguJYg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li44LiX4LiY4Li0DQor4LiZ4Li44LiK4LiZ4Liy4Lij4LiWIOC5g+C4quC4quC4uOC4l+C4mOC4tOC5jA0KK+C4meC4uOC4iuC4o+C4tOC4meC4l+C4o+C5jCDguYHguKfguYjguJnguJvguKPguLDguJfguLjguKENCivguJnguLjguIrguKPguLXguKLguYwg4Liq4Li44LiC4LmA4LiB4Li14Lii4Lij4LiV4Li04Lig4Lix4LiiDQor4LiZ4Li44LiK4Li04LiVIOC5gOC4iOC4o+C4tOC4jeC4nuC4suC4meC4tOC4ig0KK+C4meC4uOC4oeC4suC4mSDguKLguLTguYjguIfguJnguLTguKLguKENCivguJnguLjguKjguKPguLIg4Lie4Lij4LiB4Lik4Lip4LiO4Liy4LiB4Li44LilDQor4LiZ4Li44Liq4Lij4LiyIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4iOC4tOC4lOC4quC4uOC4o+C4tOC4ouC4sA0KK+C4meC4uOC4quC4o+C4siDguYDguJ7guYfguIrguKPguJvguKPguLDguJ7guLHguJnguJjguLjguYzguIHguLjguKUNCivguJnguLjguKrguKPguLIg4Lit4Lix4Lio4Lin4LiZ4Lix4Lii4LiB4Li04LiIDQor4LiZ4LmA4Lij4LiZ4LiX4Lij4LmMIOC4lOC4tOC4quC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4meC5gOC4o+C4qCDguJfguK3guIfguYHguIHguYnguKcNCivguJnguYDguKPguKgg4Lio4Lij4Lie4Lij4Lir4LihDQor4LiZ4LmA4Lij4Lio4Lij4LmMIOC4mOC4o+C4o+C4oeC4quC4suC4peC4tQ0KK+C5gOC4meC4leC4oyDguKjguKPguLXguKrguLjguKfguKPguKPguJMNCivguYDguJnguJXguKPguJfguLTguJ7guKLguYwg4LiK4Li04LiZ4Lil4Liy4Lig4Liy4LiB4Li44LilDQor4LmA4LiZ4LiV4Lij4LiZ4Lig4LiyIOC4q+C4p+C4seC4h+C4quC4tOC4meC4quC4uOC4iOC4o+C4tOC4lQ0KK+C5gOC4meC4leC4o+C4tOC4geC4siDguYDguIHguJXguLjguJvguKPguLDguJTguLTguKnguJDguYwNCivguYDguJnguKPguKHguLTguJUg4Lio4Lij4Li14LiI4Liz4LiZ4LiHDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4geC4s+C4peC4seC4hw0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguYDguIvguYfguJnguKrguLLguKrguYzguJkNCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4LiZ4Lie4LmA4Liq4LiW4Li14Lii4LijDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4nuC4tOC4mOC4p+C4o+C4o+C4kw0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguKfguLHguJLguJnguLLguKDguLINCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4LmB4Liq4Lin4LiH4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiZ4Liy4Lin4LmMIOC4quC4uOC4lOC5g+C4iOC4mOC4o+C4o+C4oQ0KK+C5gOC4meC4teC4ouC4oSDguJrguLPguKPguLjguIfguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguJnguLXguYnguKLguKcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LmA4LiZ4Li34LmJ4Lit4LiX4Li04Lie4Lii4LmMIOC4iOC4seC4meC4l+C4o+C5jOC5guC4m+C4o+C5jA0KK+C5geC4meC4miDguYLguKrguJXguJbguLTguJ7guLHguJnguJjguLjguYwNCivguYHguJnguYjguIfguJnguYnguK3guKIg4LmA4LiL4Li14LmI4Lii4LiH4Lic4Li44LiHDQor4LmB4LiZ4LmI4LiH4LiZ4LmJ4Lit4LiiIOC4m+C4uOC5iOC4meC4reC4uOC4lOC4oQ0KK+C5geC4meC5iOC4h+C4meC5ieC4reC4oiDguYDguKfguJfguKLguJ7guIfguKnguYwNCivguYHguJnguYjguIfguJnguYnguK3guKIg4Lit4Li04LiZ4LiX4Lij4Lij4Lix4LiB4LiC4LiyDQor4LmC4LiZ4Lij4Li1IOC5geC4quC4h+C4qOC4o+C4tQ0KK+C5hOC4meC5iSDguKPguK3guJTguJfguK3guIcNCivguJrguIfguIHguIog4Lia4Li44LiN4LiK4LmI4Lin4LiiDQor4Lia4LiH4LiB4LiKIOC5gOC4q+C4peC5iOC4suC4p+C4o+C4p+C4tOC4l+C4ouC5jA0KK+C4muC4lOC4tOC4meC4l+C4o+C5jCDguJTguLTguKXguIHguKfguKPguYLguIrguJXguLQNCivguJrguJ7guLTguJXguKMg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4Lia4Lij4Lij4LiI4LiHIOC4geC4uOC4q+C4peC4suC4muC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4muC4o+C4o+C4iOC4hyDguIjguLHguJnguJfguKPguYzguJfguK3guIcNCivguJrguKPguKPguIjguIcg4LiK4Lix4Lii4Lin4Li04Lij4Li04Lii4Liw4Lin4LiH4Lio4LmMDQor4Lia4Lij4Lij4LiI4LiHIOC4leC4uOC5iOC4meC4l+C4sg0KK+C4muC4o+C4o+C4iOC4hyDguJnguLLguKHguKHguLXguYTguIrguKINCivguJrguKPguKPguIjguIcg4Lib4LmJ4Lit4LiH4Lig4Lix4LiiDQor4Lia4Lij4Lij4LiI4LiHIOC5gOC4nuC4tOC5iOC4oeC4nOC4pQ0KK+C4muC4o+C4o+C4iOC4hyDguKPguYjguKHguYLguJ7guJjguLTguKvguKLguIENCivguJrguKPguKPguIjguIcg4Lin4Li04Lil4Liy4Liq4Lij4Lix4LiV4LiZ4LmMDQor4Lia4Lij4Lij4LiI4LiHIOC4quC4suC4quC4sOC4geC4uOC4pQ0KK+C4muC4o+C4o+C4iOC4hyDguKvguKPguLHguYjguIfguYDguK3guKENCivguJrguKPguKPguIjguIfguIHguLTguIgg4Lib4Li04Lii4Liw4Liq4Lix4LiZ4LiV4Li04Liq4Li44LiCDQor4Lia4Lij4Lij4LiI4LiaIOC4iuC4t+C5iOC4meC4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4o+C4o+C4iOC4miDguKDguLnguKfguKfguLXguKPguLLguJnguJnguJfguYwNCivguJrguKPguKPguIjguLAg4LmA4Lij4Li34Lit4LiZ4LmB4LiB4LmJ4Lin4Lin4LiH4Lio4LmMDQor4Lia4Lij4Lij4LiT4LiyIOC4meC4meC4l+C4p+C4h+C4qeC5jA0KK+C4muC4o+C4o+C4l+C4tuC4gSDguKXguYnguK3guKfguIrguLTguKPguLDguKfguLHguI7guI7guYwNCivguJrguKPguKPguJ7guJUg4LiU4Li14Lij4Lix4LiB4Lip4LiyDQor4Lia4Lij4Lij4Lie4LiVIOC4oeC4q+C4seC4l+C4mOC4meC4suC4geC4uOC4pQ0KK+C4muC4o+C4o+C4nuC4lSDguYHguKrguIfguYHguIHguYjguJnguYDguJ7guYfguIrguKPguYwNCivguJrguKPguKPguKLguIcg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4LmA4Lij4Li34Lit4LiH4LmE4LijDQor4Lia4Lij4Lij4Lii4LiH4LiE4LmMIOC4ouC4oeC5geC4nuC4l+C4ouC5jA0KK+C4muC4o+C4o+C4peC4t+C4rSDguYDguKPguLfguK3guIfguJXguKPguLDguIHguLnguKUNCivguJrguKPguKPguKXguLgg4Lig4Li54Lih4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4Lia4Lij4Lij4Lir4Liy4LijIOC4qOC4tOC4peC4m+C4reC4suC4iuC4sg0KK+C4muC4o+C4o+C5gOC4iOC4tOC4lCDguIrguLfguYjguJnguIHguLjguKUNCivguJrguKPguKPguYDguIjguLTguJQg4Lig4Li54LmI4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lia4Lij4Lij4LmA4LiI4Li04LiUIOC5geC4quC4h+C4l+C4reC4hw0KK+C4muC4o+C4o+C5gOC4l+C4tOC4hyDguILguLLguKfguJzguYjguK3guIcNCivguJrguKPguKPguYDguJfguLTguIcg4Lin4LiH4Lip4LmM4Lie4Li54LilDQor4Lia4Lij4Lij4LmA4Lil4Li04LioIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4muC4o+C4tOC4muC4ueC4o+C4k+C5jCDguKfguLLguKPguLLguIrguJnguJnguJfguYwNCivguJrguKPguLTguKvguLLguKPguKfguKPguIHguLTguIgg4Lie4Lij4Liw4LiE4Lij4Li5DQor4Lia4Lin4LijIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4pOC4qeC4lOC4tOC5jA0KK+C4muC4p+C4oyDguYDguKrguJbguLXguKLguKPguYLguKrguKDguJMNCivguJrguKfguKPguKjguLHguIHguJTguLTguYwg4LiZ4Li04LmI4Lih4Lio4Li04Lij4Li04LmA4Lij4Li34Lit4LiH4Lic4LilDQor4Lia4LmK4Lin4LiiIOC4mOC4o+C4o+C4oeC4oeC4h+C4hOC4pQ0KK+C4muC4seC4geC4iOC4uOC5ieC4oiDguYHguIvguYjguYDguK7guYnguIcNCivguJrguLHguIHguYDguIHguLXguKLguKcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lia4Lix4LiB4LmC4LiE4LiiIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4muC4seC4h+C4reC4oyDguIHguKPguLDguJbguLTguJnguJfguK3guIcNCivguJrguLHguIfguK3guKMg4LiE4LiH4LiW4Liy4Lin4LijDQor4Lia4Lix4LiH4Lit4LijIOC4iOC4tOC4leC4iOC4o+C4seC4quC5geC4quC4hw0KK+C4muC4seC4h+C4reC4oyDguIrguLfguYjguJnguYLguIrguJXguLQNCivguJrguLHguIfguK3guKMg4LmA4LiU4LiK4Lic4LilDQor4Lia4Lix4LiH4Lit4LijIOC4l+C4tOC4oeC5guC4m+C5iOC4h+C5geC4geC5ieC4pw0KK+C4muC4seC4h+C4reC4oyDguJrguLHguKfguKrguKPguYnguK3guKINCivguJrguLHguIfguK3guKMg4Lib4Li04Lii4Liq4Li44LiX4LiY4Li04LiB4Li44LilDQor4Lia4Lix4LiH4Lit4LijIOC4nuC4uOC4l+C4mOC4tOC4meC4seC4meC4l+C4meC5jA0KK+C4muC4seC4h+C4reC4oyDguKHguLLguKrguKjguKPguLUNCivguJrguLHguIfguK3guKMg4Lil4Lin4LmA4Lio4Lij4Lip4LiQ4Li1DQor4Lia4Lix4LiH4Lit4LijIOC4p+C4uOC5ieC4meC5gOC4q+C4peC4teC5iOC4ouC4oQ0KK+C4muC4seC4h+C4reC4oyDguKrguLDguKrguLTguKrguKHguLTguJUNCivguJrguLHguIfguK3guKMg4Liq4Li44Lin4Lij4Lij4LiT4Liy4LiZ4LiZ4LiX4LmMDQor4Lia4Lix4LiH4Lit4LijIOC4reC4leC4tOC4iuC4suC4leC4tA0KK+C4muC4seC4h+C4reC4oyDguYDguK7guIfguKDguLnguYjguYDguIjguKPguLTguI0NCivguJrguLHguIfguYDguK3guLTguI0g4LmA4Lie4LmH4LiH4Liq4Li44LiCDQor4Lia4Lix4LiN4LiK4LijIOC4quC4uOC4guC4reC4meC4seC4meC4leC5jOC4iuC4seC4og0KK+C4muC4seC4jeC4iuC4siDguITguKPguLjguJjguYDguKfguYLguIoNCivguJrguLHguI3guIrguLIg4LiK4Lix4Lii4Lib4Lij4Liw4Liq4LieDQor4Lia4Lix4LiN4LiK4LiyIOC5geC4leC5ieC4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4seC4jeC4iuC4siDguJrguLjguJnguJnguLLguITguJvguKPguLDguYDguKrguKPguLTguJANCivguJrguLHguI3guIrguLIg4LmA4Lie4Li14Lii4Lij4Lib4Lij4Liw4Liq4Liy4LiY4LiZ4LmM4Lio4Li04Lij4Li0DQor4Lia4Lix4LiN4LiK4LiyIOC4p+C4h+C4qOC5jOC4qOC4o+C4teC4geC4uOC4pQ0KK+C4muC4seC4jeC4iuC4siDguKrguLDguJTguKfguIHguJTguLUNCivguJrguLHguI3guIrguLIg4Lit4Lix4LiI4LiJ4Lij4Liy4Lih4LiH4LiE4LilDQor4Lia4Lix4LiN4LiN4Lix4LiV4Li0IOC4iOC4tOC4meC4leC4meC4suC4m+C4o+C4suC5guC4oeC4l+C4ouC5jA0KK+C4muC4seC4jeC4jeC4seC4leC4tCDguJrguLjguI3guJjguKPguKPguKENCivguJrguLHguI3guI3guLHguJXguLQg4Lin4LiH4Lip4LmM4Lib4Lij4Liw4Lii4Li54LijDQor4Lia4Lix4LiN4LiR4Li04LiVIOC4qOC4o+C4geC4peC5ieC4sg0KK+C4muC4seC4k+C4keC4tOC4lSDguITguLnguYjguJfguKfguLXguJjguKPguKPguKENCivguJrguLHguJPguJHguLTguJUg4LiV4Lij4Liw4LiB4Liy4Lij4Lin4Li14Lij4Liw4LmA4LiU4LiKDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4muC4uOC4jeC4jeC4suC4p+C4seC4kuC4meC5jA0KK+C4muC4seC4k+C4keC4tOC4lSDguYLguJ7guJjguLTguYzguJnguYnguK3guKINCivguJrguLHguJPguJHguLTguJUg4Lin4Lij4Liy4LiZ4Li44Lio4Lig4Liy4LiB4Li44LilDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4quC4uOC4l+C4mOC4tOC4p+C4uOC4kuC4tOC4meC4pOC5gOC4muC4qOC4o+C5jA0KK+C4muC4seC4k+C4keC4tOC4lSDguK3guLjguKXguLTguKgNCivguJrguLHguJPguJHguLTguJXguKLguYwg4Liq4LiZ4Li04LiX4Lij4Lix4LiB4Lip4LiyDQor4Lia4Lix4LiT4LiR4Li54Lij4Lii4LmMIOC4nuC4seC4meC4mOC4uOC4quC4uOC4gg0KK+C4muC4seC4meC4peC4t+C4rSDguYLguKLguJjguLUNCivguJrguLHguKXguKXguLHguIfguIHguYwg4LiZ4Liy4LiE4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lia4Lix4LinIOC4nuC4uOC4geC5gOC4iOC4o+C4tOC4jQ0KK+C4muC4seC4p+C4guC4suC4pyDguKrguLjguILguITguLMNCivguJrguLHguKfguIvguYjguK3guJkg4LiX4Li04Lie4Lii4LmM4LiI4Lix4LiB4LijDQor4Lia4Lix4Lin4LiZ4LmJ4Lit4LiiIOC4h+C4seC4lOC4quC4seC4meC5gOC4l+C4teC4ouC4sA0KK+C4muC4seC4p+C4nOC4tOC4mSDguYDguJvguKPguKHguIHguKHguKUNCivguJrguLHguKfguKXguK3guKIg4LiB4Lih4LiC4Li44LiZ4LiX4LiUDQor4Lia4Lix4Lin4Lin4Lij4Lij4LiTIOC4reC4meC4teC4iOC4sOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4muC4seC4p+C4q+C4peC4p+C4hyDguJ7guKPguKvguKHguKPguLHguIHguKnguLINCivguJrguLHguKfguYDguKPguLXguKLguKcg4LmA4LiB4Liy4LiP4Li14Lij4LiwDQor4Lia4Lix4Lin4LmE4LiCIOC5geC4iOC5iOC4oeC4reC4uOC4peC4tOC4leC4o+C4seC4leC4meC5jA0KK+C4muC4suC4i+C4seC4oeC4ouC4suC4mSDguKHguLnguKXguLLguITguLLguJkNCivguJrguLLguJnguYDguKLguYfguJkg4Liq4LiW4Liy4Lin4Lij4Liq4Lih4Li04LiVDQor4Lia4LmJ4Liy4LiZ4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4muC5ieC4suC4meC4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jA0KK+C4muC5ieC4suC4meC4iuC4tOC4lOC4leC4p+C4seC4mSDguJrguYnguLLguJnguIrguLTguJTguJXguKfguLHguJkNCivguJrguYnguLLguJnguJnguLLguIfguYDguKXguLTguYnguIcgMg0KK+C4muC5ieC4suC4meC4m+C4tOC4ouC4sOC4k+C4tOC4lOC4siDguJrguYnguLLguJnguJvguLTguKLguLDguJPguLTguJTguLINCivguJrguYnguLLguJnguKHguKvguLTguYLguITguJUg4Lia4LmJ4Liy4LiZ4Lih4Lir4Li04LmC4LiE4LiVDQor4Lia4LmJ4Liy4LiZ4Lin4Li04LiI4Li04LiV4Lij4Lio4Lij4Li14LiB4Lih4LilIOC4muC5ieC4suC4meC4p+C4tOC4iOC4tOC4leC4o+C4qOC4o+C4teC4geC4oeC4pQ0KK+C4muC5ieC4suC4meC4quC4tOC4meC4suC4peC4seC4geC4qeC4k+C5jCDguJrguYnguLLguJnguKrguLTguJnguLLguKXguLHguIHguKnguJPguYwNCivguJrguYnguLLguJnguYDguIHguLLguLDguIHguKXguLLguIcg4Lia4LmJ4Liy4LiZ4LmA4LiB4Liy4Liw4LiB4Lil4Liy4LiHDQor4Lia4LmJ4Liy4LiZ4LmB4LiB4LmJ4LinIOC4muC5ieC4suC4meC5geC4geC5ieC4pw0KK+C4muC4s+C4o+C4uOC4hyDguITguIfguILguKfguLHguI3guKLguIfguITguYwNCivguJrguLPguKPguLjguIcg4LmB4LiL4LmI4LiB4LmK4Lin4LiiDQor4Lia4Liz4Lij4Li44LiHIOC4m+C4o+C4sOC4oOC4suC4o+C4seC4geC4qeC5jA0KK+C4muC4s+C4o+C4uOC4hyDguYHguKLguYnguKHguJrguLHguI3guIrguKMNCivguJrguLPguKPguLjguIcg4Liq4Li44LiC4Liq4LiW4Liy4LiZDQor4Lia4Liz4LmA4Lie4LmH4LiNIOC4geC4uOC4peC4lOC4tOC4peC4geC4iuC4seC4og0KK+C4muC4s+C5gOC4nuC5h+C4jSDguKrguLDguKXguK3guKLguKPguLHguKHguKLguYwNCivguJrguLXguYkg4LmB4LiL4LmI4Lil4LmJ4LitDQor4Lia4Li44LiNIOC5gOC4ieC4peC4tOC4oeC4l+C4o+C4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4muC4uOC4jSDguKjguKPguLXguIrguYjguKfguKINCivguJrguLjguI3guIHguYjguK0g4LmA4Lih4LiY4Li14LiB4Li44LilDQor4Lia4Li44LiN4LiE4Lin4LijIOC5gOC4q+C4oeC4muC4uOC4leC4ow0KK+C4muC4uOC4jeC4iOC4o+C4tOC4hyDguJXguIfguIjguLTguJXguKPguLHguJXguJnguYwNCivguJrguLjguI3guIjguLHguJnguJfguKPguYwg4Lij4Liz4LiI4Lin4LiZDQor4Lia4Li44LiN4LiI4Li04Lij4LiyIOC4lOC4s+C4o+C4tOC4q+C5jOC4geC4peC5ieC4sg0KK+C4muC4uOC4jeC4iuC4oSDguITguLPguK3guLTguYjguJkNCivguJrguLjguI3guIrguYjguKfguKIg4LiB4Lix4LiZ4Lie4Li54LilDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4hOC4suC4p+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguInguLTguKHguInguKfguLUNCivguJrguLjguI3guIrguYjguKfguKIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4l+C4reC4h+C4quC4uOC4gg0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguYDguJnguLLguKfguYzguYPguKvguKHguYgNCivguJrguLjguI3guIrguYjguKfguKIg4LmB4Lib4LmJ4LiZ4LmA4Lir4Lih4Li34Lit4LiZDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC5gOC4nuC4teC4ouC4o+C4lOC4tQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguKLguLnguJnguIrguLjguYjguKENCivguJrguLjguI3guIrguYjguKfguKIg4Lin4Lix4LiS4LiZ4Liy4Lin4LiH4Lio4LmMDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4quC4seC4h+C4guC5jOC5geC4m+C5ieC4mQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguYHguKrguIfguJfguK3guIfguJvguKPguLDguJTguLTguKnguJDguYwNCivguJrguLjguI3guIrguYjguKfguKIg4Lit4Li44LiU4Lih4LiV4Lij4Liw4LiB4Li54Lil4Lin4LiH4Lio4LmMDQor4Lia4Li44LiN4LiK4Lit4LiaIOC4l+C4reC4h+C5geC4geC5ieC4pw0KK+C4muC4uOC4jeC4iuC4reC4miDguK3guLjguJTguKHguJvguKPguLDguKHguKfguKUNCivguJrguLjguI3guIrguLHguKIg4LiC4Lix4LiZ4LiV4Li04LiN4Liy4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4iOC4teC4o+C4sOC5hOC4nuC5guC4o+C4iOC4meC5jOC4geC4uOC4pQ0KK+C4muC4uOC4jeC4iuC4seC4oiDguIrguLjguJXguLTguK3guJnguLjguKrguKPguJPguYzguIrguLHguKINCivguJrguLjguI3guIrguLHguKIg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5gOC4leC4tOC4oeC4l+C4o+C4seC4nuC4ouC5jOC4luC4suC4p+C4ow0KK+C4muC4uOC4jeC4iuC4seC4oiDguJnguLTguKXguKPguJ7guLXguYDguIHguLXguKLguKPguJXguLQNCivguJrguLjguI3guIrguLHguKIg4Lib4Lij4Li14LiK4Liy4Lie4Lix4LiZ4LiY4LmMDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5gOC4nuC4iuC4o+C4nuC4peC4reC4ouC4h+C4suC4oQ0KK+C4muC4uOC4jeC4iuC4seC4oiDguYDguKPguLXguKLguIfguKfguLTguYTguKXguIHguLjguKUNCivguJrguLjguI3guIrguLHguKIg4Lin4Lij4LiB4Li04LiI4Lie4Lij4Liq4Li04LiZDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4qOC4o+C4teC4quC4uOC4oOC4ow0KK+C4muC4uOC4jeC4iuC4seC4oiDguKrguLjguILguKDguLTguKPguKHguKLguYzguYDguIHguKnguKENCivguJrguLjguI3guIrguLHguKIg4LmA4Lir4Lil4LmI4Liy4Lie4Liy4LiB4LmA4Lie4Li14Lii4LijDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4reC4uOC4m+C4luC4seC4oeC4iuC4suC4leC4tA0KK+C4muC4uOC4jeC4iuC4tOC4lCDguJrguLjguI3guYDguKXguLTguKgNCivguJrguLjguI3guIrguLfguYjguJkg4Lib4Li04Lii4Liw4Lib4LiB4Lij4LiT4LmM4LiK4Lix4LiiDQor4Lia4Li44LiN4LiK4Li5IOC4geC4o+C4sOC4luC4tOC4meC4l+C4reC4hw0KK+C4muC4uOC4jeC4iuC4uSDguIfguLTguYnguKfguIrguJkNCivguJrguLjguI3guIrguLkg4LiK4Lix4Lii4Lia4Li44LiN4LiN4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lia4Li44LiN4LiK4Li5IOC4leC4o+C4sOC4geC4ueC4peC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4muC4uOC4jeC4iuC4uSDguJjguLTguKPguLLguKjguLHguIHguJTguLTguYwNCivguJrguLjguI3guIrguLkg4Lib4Lix4LmJ4LiZ4LmA4LiC4Li14Lii4LinDQor4Lia4Li44LiN4LiK4Li5IOC5guC4nuC4mOC4tOC4quC4suC4ow0KK+C4muC4uOC4jeC4iuC4uSDguKPguK3guJTguYDguJ7guYfguIfguKrguLHguIfguITguYwNCivguJrguLjguI3guIrguLkg4Lin4Lix4LiH4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lia4Li44LiN4LiK4Li5IOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4muC4uOC4jeC4iuC4uSDguKrguLjguKfguKPguKPguJPguIrguLLguJXguLQNCivguJrguLjguI3guIrguLkg4Lit4Li24LmJ4LiH4LiB4Li44LilDQor4Lia4Li44LiN4LiN4Lik4LiX4LiY4Li04LmMIOC4peC4tOC4guC4tOC4leC5gOC4iOC4o+C4tOC4jeC4p+C4seC4kuC4meC4sA0KK+C4muC4uOC4jeC4keC4o+C4tOC4gSDguIjguLHguJnguJfguKPguJjguLLguKPguLLguKPguLHguJXguJnguYwNCivguJrguLjguI3guJTguLUg4Liq4LiH4Lin4LiZ4LiE4Lin4Liy4Lih4LiU4Li1DQor4Lia4Li44LiN4LiV4LiyIOC5geC4i+C5iOC5gOC4p+C4teC4ouC4mQ0KK+C4muC4uOC4jeC4leC4siDguKjguLHguIHguJTguLTguYzguKHguLHguIfguIHguKMNCivguJrguLjguI3guJbguLTguYjguJkg4Lie4LiH4Lip4LmM4LiC4Liy4LinDQor4Lia4Li44LiN4LiX4Lij4LiHIOC5gOC4meC4teC4ouC4oeC5guC4oOC4hOC4sA0KK+C4muC4uOC4jeC4l+C4o+C4seC4nuC4ouC5jCDguKrguKvguYDguJfguKfguKrguLjguITguJnguJjguYwNCivguJrguLjguI3guJfguKfguLUg4LmE4Lin4Lii4Liq4Li44LiV4Lij4LiyDQor4Lia4Li44LiN4LiX4Lit4LihIOC5guC4luC4m+C4seC5ieC4mQ0KK+C4muC4uOC4jeC4l+C4seC4qOC4meC5jCDguIjguKPguJPguLDguKvguLjguJUNCivguJrguLjguI3guJfguLTguJ7guKLguYwg4Lin4Lix4LiS4LiZ4Liw4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC4geC4peC4seC4lOC4reC4ouC4ueC5iA0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguIjguKPguLnguI3guKjguKPguLUNCivguJrguLjguI3guJjguKPguKPguKEg4LmB4LiL4LmI4LmE4Lir4LilDQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC4meC4nuC4hOC4uOC4kw0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguJzguLTguKfguYDguIHguKXguLXguYnguKLguIcNCivguJrguLjguI3guJjguKPguKPguKEg4Lih4LmI4Lin4LiH4Lio4Lij4Li1DQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC4p+C4seC4h+C5gOC4quC4meC4sg0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguKrguLjguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguJrguLjguI3guJjguLLguKPguLUg4LiI4Lix4LiZ4LiX4Lij4LiX4Li14Lib4Lij4LiwDQor4Lia4Li44LiN4LiZ4LiwIOC4qOC4o+C4teC4iOC4tOC4meC4lOC4sg0KK+C4muC4uOC4jeC4meC4suC4hCDguI3guLLguJPguYLguIHguKHguLjguJcNCivguJrguLjguI3guJnguLLguIQg4Lie4LmI4Lin4LiH4Lie4Lij4LmJ4Lit4LihDQor4Lia4Li44LiN4LiZ4Liy4LiEIOC4quC4s+C5geC4lOC4h+C5gOC4lOC4ig0KK+C4muC4uOC4jeC4meC4syDguIrguYnguLLguIfguKHguJPguLUNCivguJrguLjguI3guJnguLMg4Lit4Lii4Li54LmI4LiU4Li1DQor4Lia4Li44LiN4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4geC4meC4geC4quC4tOC4h+C4q+C5jA0KK+C4muC4uOC4jeC4m+C4peC4ueC4gSDguILguLjguKHguJfguKPguLHguJ7guKLguYwNCivguJrguLjguI3guJvguKXguLnguIEg4Lij4Li44LiI4Li04LiZ4Liy4LihDQor4Lia4Li44LiN4Lic4LmI4Lit4LiHIOC4o+C4uOC4mOC4seC4meC4p+C5jA0KK+C4muC4uOC4jeC4nuC4seC4meC4mOC5jCDguJfguLHguKjguJnguK3guLHguKHguJ7guKMNCivguJrguLjguI3guJ7guLIg4Liq4Liy4Lij4Li04LiB4LiyDQor4Lia4Li44LiN4Lih4Lix4LmI4LiZIOC4guC4p+C4seC4jeC4ouC4t+C4mQ0KK+C4muC4uOC4jeC4oeC4siDguYDguILguLXguKLguKfguIrguK3guLjguYjguKENCivguJrguLjguI3guKHguLIg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4Lia4Li44LiN4Lih4LiyIOC4meC4p+C4peC4quC4p+C4suC4lw0KK+C4muC4uOC4jeC4oeC4siDguJ7guLjguYjguKHguYDguKPguLfguK3guIcNCivguJrguLjguI3guKHguLIg4Lin4Lij4Lij4LiT4Liq4Li44LiX4LiY4Li04Lie4LiH4Lio4LmMDQor4Lia4Li44LiN4Lih4LiyIOC5gOC4quC4t+C4reC5geC4i+C4oeC5gOC4quC4o+C4tOC4oQ0KK+C4muC4uOC4jeC4oeC4suC4gSDguIrguLnguKjguKPguLUNCivguJrguLjguI3guKHguLUg4LiB4Lij4Lij4LiT4Liq4Li54LiVDQor4Lia4Li44LiN4Lih4Li1IOC4h+C4suC4oeC4iOC4tOC4leC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4muC4uOC4jeC4oeC4tSDguIrguLXguKfguKrguLLguJjguJnguYwNCivguJrguLjguI3guKHguLUg4LiX4Lin4Li14LiV4Lij4Liw4LiB4Li54LilDQor4Lia4Li44LiN4Lih4Li1IOC4muC4uOC4jeC4peC5ieC4p+C4mQ0KK+C4muC4uOC4jeC4oeC4tSDguJ7guLTguKnguJPguLjguKfguIfguKjguYwNCivguJrguLjguI3guKHguLUg4LmC4Lii4LiY4Liy4LiU4Li24LiBDQor4Lia4Li44LiN4Lih4Li1IOC4qOC4o+C4oeC4ouC4uOC4o+C4sg0KK+C4muC4uOC4jeC4oeC4tSDguKrguLjguIjguLTguJXguKPguKfguLHguJLguJnguLDguKrguLjguIINCivguJrguLjguI3guKHguLUg4LmA4Lit4Li14LmI4Lii4Lih4Lir4Li44LmI4LiZDQor4Lia4Li44LiN4Lii4LiHIOC4o+C4seC4leC4meC4suC4meC4seC4meC4l+C5jA0KK+C4muC4uOC4jeC4ouC4h+C4hOC5jCDguJnguLLguKHguJTguLUNCivguJrguLjguI3guKLguIfguITguYwg4LmB4Liq4LiH4Lih4LiT4Li1DQor4Lia4Li44LiN4Lii4Liw4Lij4Lix4LiV4LiZ4LmMIOC4hOC4peC5ieC4suC4meC4quC4tOC4meC4mOC4uOC5jA0KK+C4muC4uOC4jeC4ouC4seC4hyDguYDguJvguLXguKLguJfguK3guIcNCivguJrguLjguI3guKLguLTguYjguIcg4LiB4Lik4Lip4LiT4Liw4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lia4Li44LiN4Lii4Li04LmI4LiHIOC4oOC4suC4k+C4uOC4qOC4suC4meC4leC5jA0KK+C4muC4uOC4jeC4ouC4tOC4mSDguKrguLjguILguKHguJPguLUNCivguJrguLjguI3guKLguLfguJkg4LiX4Lit4LiH4LmB4LiI4LmJ4LiHDQor4Lia4Li44LiN4Lii4Li34LiZIOC4o+C4seC4geC4qeC5jOC4quC4uOC4o+C4p+C4h+C4qOC4sg0KK+C4muC4uOC4jeC4ouC4ueC4oyDguK3guYjguK3guJnguK3guLPguYTguJ4NCivguJrguLjguI3guKPguYjguKfguKEg4Liq4Li44Lin4Lij4Lij4LiT4LiK4Liy4LiV4Li04LiB4Li44LilDQor4Lia4Li44LiN4Lij4Lit4LiUIOC5hOC4iuC4ouC4iuC4meC4sA0KK+C4muC4uOC4jeC4o+C4reC4lCDguYDguJnguJXguKPguJfguLTguJ7guKLguYwNCivguJrguLjguI3guKPguK3guJQg4Lih4Li14LmA4LiU4LiK4LiyDQor4Lia4Li44LiN4Lij4Lit4LiUIOC4quC4uOC4guC4quC4suC4o+C4seC4jQ0KK+C4muC4uOC4jeC4o+C4seC4geC4qeC5jCDguYDguIHguLXguKLguKPguJXguLTguJvguKPguLDguKDguLLguJ7guIHguLjguKUNCivguJrguLjguI3guKPguLHguJXguJnguYwg4LmA4LiI4Lij4Li04LiN4Lie4Liy4LiZ4Li04LiKDQor4Lia4Li44LiN4Lij4Lix4LiV4LiZ4LmMIOC4p+C4o+C4o+C4k+C4geC4tOC4iA0KK+C4muC4uOC4jeC4o+C4uOC5iOC4hyDguJ7guLLguJnguLTguIrguKfguLHguJLguJnguYwNCivguJrguLjguI3guKTguJfguJjguLTguYwg4LiZ4Li44LmJ4Lii4LiC4Liy4LinDQor4Lia4Li44LiN4Lik4LiX4LiY4Li04LmMIOC5gOC4reC4geC4quC4oeC4quC4uOC4gg0KK+C4muC4uOC4jeC4peC5ieC4reC4oSDguIrguLLguKfguIHguIfguIjguLHguIHguKMNCivguJrguLjguI3guKXguYnguK3guKEg4Lin4Liy4LiT4Li04LiK4Lii4LmM4LiB4Li54LilDQor4Lia4Li44LiN4Lil4Liy4LigIOC4guC4suC4p+C4quC4reC4suC4lA0KK+C4muC4uOC4jeC4peC4t+C4rSDguYHguILguYjguIfguILguLHguJnguJTguLUNCivguJrguLjguI3guKXguLfguK0g4LmE4LiX4Lij4LmA4Lih4Li34Lit4LiHDQor4Lia4Li44LiN4Lil4Li34LitIOC4oeC4teC4oeC4suC4gQ0KK+C4muC4uOC4jeC4peC4t+C4rSDguYHguKrguIfguK3guLTguJnguJfguKPguYwNCivguJrguLjguI3guKjguKPguLUg4LiB4Lit4Lia4Lia4Li44LiNDQor4Lia4Li44LiN4Lio4Lij4Li1IOC5hOC4iuC4ouC4ruC4p+C4lOC4q+C4peC5ieC4sw0KK+C4muC4uOC4jeC4qOC4o+C4tSDguJrguLHguJPguJHguLjguKjguLTguKXguLLguK3guLLguKrguJnguYwNCivguJrguLjguI3guKjguKPguLUg4Lih4Liy4LiB4Lij4Lit4LiUDQor4Lia4Li44LiN4Lio4Lij4Li1IOC4qOC4uOC4guC4geC4suC4o+C4hOC5ieC4sg0KK+C4muC4uOC4jeC4qOC4o+C4tSDguKvguKXguLXguIHguKDguLHguKINCivguJrguLjguI3guKjguLHguIHguJTguLTguYwg4LmA4Lil4Li04Lio4Lin4Lix4LiS4LiZ4LiK4Lix4LiiDQor4Lia4Li44LiN4Lio4Li04Lij4Li0IOC4ouC4seC4h+C5gOC4n+C4t+C5iOC4reC4h+C4oeC4meC4leC5jA0KK+C4muC4uOC4jeC4quC5iOC4hyDguIHguKfguKLguKPguLHguIHguKnguLINCivguJrguLjguI3guKrguYjguIcg4LiC4Li44LiZ4Lir4LiZ4Lix4LiH4Liq4Li34LitDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4iOC4seC4meC4l+C4o+C5jOC4ieC4suC4ouC4l+C4reC4hw0KK+C4muC4uOC4jeC4quC5iOC4hyDguInguLHguJnguJfguYHguJ7guJfguKLguYwNCivguJrguLjguI3guKrguYjguIcg4LmE4LiK4Lii4Liq4Liy4LihDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4leC4seC5ieC4h+C4iuC4seC4ouC4pOC4geC4qeC5jA0KK+C4muC4uOC4jeC4quC5iOC4hyDguJfguK3guIfguIjguLHguJnguJfguKPguYzguKHguLnguKUNCivguJrguLjguI3guKrguYjguIcg4LiZ4Lix4Lii4Lij4Li04Lii4Liq4Lix4LiIDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4muC4uOC4jeC4reC4ouC4ueC5iOC4hOC4hw0KK+C4muC4uOC4jeC4quC5iOC4hyDguYDguJvguLXguYjguKLguKHguJ7guKXguLLguKINCivguJrguLjguI3guKrguYjguIcg4Lie4Liy4LiZ4Li04LiK4LiB4Liy4LijDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4oOC4ueC5iOC4nuC4h+C4qOC5jOC5gOC4nuC5h+C4iuC4ow0KK+C4muC4uOC4jeC4quC5iOC4hyDguYPguKLguJ7guLnguKUNCivguJrguLjguI3guKrguYjguIcg4Lil4Li44LiI4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4p+C4tOC4p+C4seC4kuC4meC4sOC4iuC4seC4ouC5geC4quC4hw0KK+C4muC4uOC4jeC4quC5iOC4hyDguKjguLjguKDguKfguLHguIrguKPguYDguKrguKPguLXguIHguLjguKUNCivguJrguLjguI3guKrguYjguIcg4Liq4Liy4Lij4Liw4Lig4LiyDQor4Lia4Li44LiN4Liq4LmI4LiHIOC5gOC4quC4oeC4l+C4seC4nuC4nuC4o+C4sA0KK+C4muC4uOC4jeC4quC5iOC4hyDguYDguKvguKXguYjguLLguJnguJ7guYDguIHguYnguLLguKrguIHguLjguKUNCivguJrguLjguI3guKrguYjguIcg4Lit4Li04LiZ4LiX4Lij4LmM4LmA4Lir4Lii4Li14LmI4Lii4LinDQor4Lia4Li44LiN4Liq4LiZ4Li04LiXIOC4ouC4suC4oeC5hOC4quC4og0KK+C4muC4uOC4jeC4quC4oSDguITguLPguJnguKfguJnguKfguLjguJLguLQNCivguJrguLjguI3guKrguKEg4LiK4Lix4Lii4Liq4Li44Lig4LiyDQor4Lia4Li44LiN4Liq4LihIOC4l+C4reC4h+C4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4uOC4jeC4quC4oSDguJrguLjguI3guK3guLTguJnguJfguKPguYwNCivguJrguLjguI3guKrguKEg4LmC4Lie4LiY4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Lia4Li44LiN4Liq4LihIOC4peC4suC4ouC4q+C4ouC4gQ0KK+C4muC4uOC4jeC4quC4oSDguKrguKfguJnguIHguLjguKvguKXguLLguJoNCivguJrguLjguI3guKrguKEg4LmB4Liq4LiH4LmA4Lij4Li34Lit4LiHDQor4Lia4Li44LiN4Liq4LihIOC4ruC4tOC4oeC4quC4uOC5iOC4mQ0KK+C4muC4uOC4jeC4quC4seC4meC4leC4tOC5jCDguInguLHguJnguJfguIHguLTguIjguYLguIHguKjguKUNCivguJrguLjguI3guKrguLTguJkg4Liq4Lia4Liy4Lii4LiV4Lix4LinDQor4Lia4Li44LiN4Liq4Li34LiaIOC4l+C4reC4h+C4meC4suC4gQ0KK+C4muC4uOC4jeC4quC4t+C4miDguKjguLLguJXguKfguKPguKPguJMNCivguJrguLjguI3guKrguLjguKDguLIg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4Lix4LiiDQor4Lia4Li44LiN4Lir4Lil4LmI4LitIOC4ouC4tOC5ieC4oeC4peC4sOC4oeC4seC4og0KK+C4muC4uOC4jeC4reC4s+C5hOC4niDguIHguLjguKXguKrguLTguKPguLTguKrguKfguLHguKrguJTguLTguYwNCivguJrguLjguI3guYDguIHguLTguJQg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lia4Li44LiN4LmA4LiB4Li04LiUIOC4o+C4seC4leC4meC4m+C4o+C4sOC4oOC4suC4oOC4suC4qA0KK+C4muC4uOC4jeC5gOC4geC4tOC4lCDguK3guLfguK3guJnguK3guIENCivguJrguLjguI3guYDguIHguLXguKLguKPguJXguLQg4Lin4Lij4LiH4LiE4LmM4LmC4Lit4Lis4Liy4LijDQor4Lia4Li44LiN4LmA4LiB4Li34LmJ4LitIOC4l+C5iOC4suC4meC4seC4l+C4mOC4tQ0KK+C4muC4uOC4jeC5gOC4iOC4o+C4tOC4jSDguYTguIHguKPguIHguKHguKUNCivguJrguLjguI3guYDguIjguLfguK0g4Lij4Lix4LiV4LiZ4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lia4Li44LiN4LmA4LiK4Li04LiUIOC4hOC4seC4meC4mOC4o+C4seC4geC4qeC5jA0KK+C4muC4uOC4jeC5gOC4iuC4tOC4lCDguYDguKXguLTguKjguJnguLTguKHguLTguJXguKMNCivguJrguLjguI3guYDguJXguYfguKEg4LiI4Lix4LiZ4LiX4Lij4LmA4LiB4LiV4Li4DQor4Lia4Li44LiN4LmA4LiV4Li34Lit4LiZIOC4nOC5iOC4reC4h+C4reC4s+C5hOC4ng0KK+C4muC4uOC4jeC5gOC4l+C4teC4ouC4mSDguYHguJ7guKPguJnguJnguJfguYwNCivguJrguLjguI3guYDguJfguLXguKLguKEg4Lit4Liy4LmA4Lie4LilDQor4Lia4Li44LiN4LmA4LiZ4Li34LmI4Lit4LiHIOC5guC4peC4iOC4sOC4ouC4sA0KK+C4muC4uOC4jeC5gOC4nuC5h+C4jSDguJ7guLjguJfguJjguJvguKPguLDguYDguKrguKPguLTguJANCivguJrguLjguI3guYDguKLguYfguJkg4Lia4Li44LiN4LmA4Lij4Li34Lit4LiH4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lia4Li44LiN4LmA4Lii4Li14LmI4Lii4LihIOC4reC4tOC4meC4l+C4o+C5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4muC4uOC4jeC5gOC4o+C4teC4ouC4oSDguIHguYnguLLguJnguILguLLguKcNCivguJrguLjguI3guYDguKPguLfguK3guIcg4LiU4Lin4LiZ4LiU4LmI4Lin4LiZDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiHIOC4oeC4tOC4i+C4suC4geC4sA0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4hyDguYDguKvguKXguLfguK3guIfguK3guKPguLjguJMNCivguJrguLjguI3guYDguKPguLfguK3guJkg4LiI4Lix4LiZ4LiX4Lij4LmM4Lia4Liz4Lij4Li44LiHDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC4l+C4p+C4teC4geC4suC4jeC4iOC4meC5jA0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4mSDguJ7guKXguK3guKLguIrguLkNCivguJrguLjguI3guYDguKPguLfguK3guJkg4Lin4LiH4Lip4LiyDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC5gOC4q+C4oeC4sOC4m+C4seC4l+C4oeC4sA0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguIHguLTguYjguIfguITguLMNCivguJrguLjguI3guYDguKXguLTguKgg4LiE4Liy4Lij4Lin4Liw4LiB4Li44LilDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguJPguKPguYHguIHguYnguKcNCivguJrguLjguI3guYDguKXguLTguKgg4LiX4Liw4Lib4Liw4Liq4LieDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4muC4seC4k+C4keC4tOC4leC4p+C4h+C4qOC5jOC4o+C4seC4leC4meC5jA0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguJvguLXguYjguKLguKHguJvguLTguYjguJnguYDguKjguKkNCivguJrguLjguI3guYDguKXguLTguKgg4LmC4Lie4LiY4Li04LmM4Lit4LmI4Lit4LiHDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5guC4ouC4l+C4sg0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguKXguLTguKjguKrguIHguLjguKXguKrguKHguJrguLnguKPguJPguYwNCivguJrguLjguI3guYDguKXguLTguKgg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4quC4uOC4guC4l+C4reC4hw0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguKvguKHguYfguIfguJXguKPguLDguIHguLnguKUNCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lit4LiB4Liw4Lin4LiH4Lip4LmMDQor4Lia4Li44LiN4LmA4Lil4Li14LmJ4Lii4LiHIOC5geC4m+C5ieC4meC4reC4tOC4mQ0KK+C4muC4uOC4jeC5gOC4peC4t+C5iOC4reC4mSDguKjguKPguLXguJfguKPguLHguJ7guKLguYwNCivguJrguLjguI3guYDguKrguKPguLTguKEg4LmC4LiG4Lip4Liw4LiY4Lij4Lij4Lih4LiB4Li54LilDQor4Lia4Li44LiN4LmA4Liq4Lij4Li04LihIOC5gOC4meC4leC4o+C5gOC4geC5iOC4hw0KK+C4muC4uOC4jeC5gOC4quC4o+C4tOC4oSDguKXguJTguLLguKrguLjguJnguJfguKMNCivguJrguLjguI3guYDguKrguKPguLTguKEg4LmB4Liq4LiH4LmB4LiB4LmJ4LinDQor4Lia4Li44LiN4LmA4Lir4Lil4Li34LitIOC4lOC5ieC4p+C4h+C4l+C4reC4hw0KK+C4muC4uOC4jeC5gOC4q+C4peC4t+C4rSDguKrguLTguJnguYDguJXguYfguKENCivguJrguLjguI3guYDguK3guLfguYnguK0g4LiV4Lix4LiZ4Lii4Liw4LiB4Li44LilDQor4Lia4Li44LiN4LmB4Lii4LmJ4LihIOC5gOC4geC4tOC4lOC4meC5ieC4reC4og0KK+C4muC4uOC4jeC5guC4iuC4leC4tCDguJfguLTguJ7guKLguYzguJvguKPguLDguYDguKrguKPguLTguJDguKrguLTguJkNCivguJrguLjguI3guYLguK7guKEg4LiJ4Liy4Lii4Lib4Lij4Liw4LiU4Lix4LiaDQor4Lia4Li44LiN4LmE4LiX4LiiIOC5geC4geC4oeC4p+C4k+C4tOC4iuC4geC4uOC4pQ0KK+C4muC4uOC4k+C4mOC4o+C4o+C4oSDguJ7guLLguJnguKPguLHguIHguKnguYwNCivguJrguLjguJPguKPguK3guJQg4Lio4Lij4Li14LmB4Lie4LmI4LiHDQor4Lia4Li44LiZ4LiZ4Liy4LiEIOC4nuC4uOC4l+C4nuC4h+C4qeC5jA0KK+C4muC4uOC5ieC4meC4q+C4h+C4tSDguYHguIvguYjguJTguYjguLLguJkNCivguJrguLjguJrguJzguLIg4LiB4Li44Lil4LmA4Liq4Lin4LiVDQor4Lia4Li44Lia4Lic4LiyIOC5gOC4i+C4teC5ieC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4muC4uOC4muC4nOC4siDguJrguLjguI3guJnguLTguJjguLTguKfguLHguJLguJnguLINCivguJrguLjguJrguJzguLIg4LmA4Lie4LmH4LiK4Lij4Lib4Lij4Liw4LmE4LieDQor4Lia4Li44Lia4Lic4LiyIOC4p+C4h+C4qOC5jOC5geC4quC4meC4quC4uOC4gg0KK+C4muC4uOC4muC4nOC4siDguYHguKrguIfguJ7guLjguYjguKENCivguJrguLjguJvguJzguLIg4LiB4LmJ4Liy4LiZ4LiC4Liy4LinDQor4Lia4Li44Lib4Lic4LiyIOC4leC4suC4rOC4p+C4seC4kuC4meC5jA0KK+C4muC4uOC4m+C4nOC4siDguJ7guLLguJnguLTguIrguIHguLnguKUNCivguJrguLjguJvguJzguLIg4Lio4Lij4Li14Lir4Liw4Lij4Lix4LiNDQor4Lia4Li44Lic4LiyIOC4nuC4seC4meC4mOC5jOC4qOC4o+C4tQ0KK+C4muC4uOC4o+C4tOC4meC4l+C4o+C5jCDguJnguK3guILguLjguJnguJfguJQNCivguJrguLjguKPguLUg4LiK4Lix4Lii4LiB4Li04LiI4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lia4Li44Lil4LmA4LiU4LiKIOC4p+C4tOC4muC4ueC4peC4nOC4pQ0KK+C4muC4uOC4qOC4o+C4siDguJjguLLguKPguLLguIrguLXguKfguLTguJkNCivguJrguLjguKjguKPguLIg4Lit4Lij4Li44LiT4LiE4Li44LiT4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lia4Li44Lio4Lij4Li04LiZ4LiX4Lij4LmMIOC5hOC4leC4o+C4p+C4o+C5gOC4lOC4iuC4sg0KK+C4muC4uOC4qeC4geC4oyDguIHguKPguKPguKHguLLguKPguLLguIfguIHguLnguKMNCivguJrguLjguKnguIHguKMg4Lib4Lij4Liw4LiB4Liy4Lio4LmA4LiB4LiV4Li44LiB4Liy4LijDQor4Lia4Li44Lip4LiB4LijIOC4quC4seC4meC4leC4tOC4p+C4h+C4hOC5jA0KK+C4muC4uOC4qeC4muC4hyDguIjguLHguJnguJfguKPguIHguLnguKUNCivguJrguLjguKnguJrguIfguIHguYwg4LiU4Li04Lip4LiQ4LiI4Liz4LmA4LiZ4Li14Lii4LijDQor4Lia4Li44Lip4Lia4LiyIOC4iuC4seC4ouC4iOC4tOC4meC4lOC4sg0KK+C4muC4uOC4qeC4muC4siDguYDguJnguLfguK3guIfguJnguLjguIoNCivguJrguLjguKnguJrguLIg4LmA4Lih4LiK4Li04Lij4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4Lia4Li44Lip4Lia4LiyIOC4quC4h+C4p+C4meC4ouC4qA0KK+C4muC4uOC4qeC4muC4suC4nuC4o+C4o+C4kyDguK3guLjguJTguKHguKfguLHguJLguJnguYzguJfguKfguLUNCivguJrguLjguKnguKLguLIg4Lib4Lij4Liw4Lig4Liy4Lii4LiZ4LiV4LmMDQor4Lia4Li44Lip4Lij4LiyIOC4iuC4ueC5geC4geC5ieC4pw0KK+C4muC4uOC4qeC4o+C4suC4oOC4o+C4k+C5jCDguIHguLTguIjguKrguKHguLjguJfguKMNCivguJrguLjguKvguIfguLHguJkg4LmA4LiI4Li14Lii4LmA4Lie4Li04LmI4Lih4Lie4Li54LilDQor4Lia4Li44Lir4LiH4LiyIOC4peC4suC4ouC4m+C4o+C4sOC4lOC4tOC4qeC4kA0KK+C4muC4uOC4q+C4peC4seC4mSDguKfguKPguKPguLHguJXguJnguKfguIfguKjguYwNCivguJrguLnguKPguJPguLDguKjguLTguKXguJvguYwg4Lia4Li44LiN4Liq4Li44Lin4Lij4Lij4LiTDQor4Lia4Li54LmIIOC4reC4uOC4lOC4oeC4qOC4o+C4teC4quC4s+C4o+C4suC4jQ0KK+C5gOC4muC4jeC4iOC4nuC4oyDguJTguLLguKfguK3guLjguJTguKENCivguYDguJrguI3guIjguJ7guKMg4Liq4Li44LiC4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMDQor4LmA4Lia4LiN4LiI4Lih4LiyIOC4geC5ieC4reC4meC4l+C4reC4hw0KK+C5gOC4muC4jeC4iOC4oeC4suC4qCDguITguLjguJPguLLguIrguLXguKfguLANCivguYDguJrguI3guIjguKHguLLguKgg4LiX4Lit4LiH4LiX4Li04Lie4Lii4LmMDQor4LmA4Lia4LiN4LiI4Lih4Liy4LioIOC5gOC4nuC4peC4tOC4meC4m+C4o+C4sOC4oOC4suC4nuC4ow0KK+C5gOC4muC4jeC4iOC4oeC4suC4qCDguKjguKPguLXguJrguLjguI3guYDguKPguLfguK3guIcNCivguYDguJrguI3guIjguKHguLLguKgg4LmA4Lit4Li34LmJ4Lit4LiB4Liy4LiN4LiI4LiZ4Lin4Li04LmE4LilDQor4LmA4Lia4LiN4LiI4Lij4Lix4LiV4LiZ4LmMIOC4quC4tOC4h+C4q+C5jOC4quC4oeC4muC4uOC4jQ0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguITguLjguJPguJPguLDguKPguLHguIHguKnguYzguYTguJfguKINCivguYDguJrguI3guIjguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4Liu4LiHDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC4p+C4seC4kuC4meC5jA0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguYnguKfguKENCivguYDguJrguI3guIjguKfguKPguKPguJMg4LmA4Lio4Lij4Lip4LiQ4Lia4Li44LiV4LijDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC4reC4suC4o+C4tQ0KK+C5gOC4muC4jeC4iOC4siDguYHguIHguYnguKfguKXguYnguKfguJkNCivguYDguJrguI3guIjguLIg4Lin4LiH4Lio4LmM4LiK4Li04LiZ4LiK4Lix4LiiDQor4LmA4Lia4LiN4LiI4Liy4Lij4Lix4LiV4LiZ4LmMIOC4reC4tOC4h+C4hOC5gOC4p+C4l+C4ouC5jA0KK+C5gOC4muC4tOC4geC4n+C5ieC4siDguYDguIHguJXguLjguJnguLjguJXguLQNCivguYDguJrguYfguI3guIjguJ7guKMg4Liq4LiZ4LiY4Li04Liq4Lih4Lia4Lix4LiV4Li0DQor4LmA4Lia4LmH4LiN4LiI4Lih4Liy4LioIOC5gOC4q+C4oeC4q+C4h+C4qeC5jOC4l+C4reC4hw0KK+C5gOC4muC5h+C4jeC4iOC4p+C4o+C4o+C4kyDguJrguLHguKfguJfguK3guIcNCivguYDguJrguYfguI3guIjguLAg4Lia4Li44LiN4Lio4Li04Lij4Li04Lii4Liy4LiZ4LiZ4LiX4LmM4LiK4Lix4LiiDQor4LmA4Lia4LmH4LiN4LiI4LiyIOC4quC4tOC4h+C4q+C5gOC4meC4leC4ow0KK+C5geC4muC4o+C4meC4lOC5jOC4peC4tSDguYDguK3guIoNCivguYPguJog4LiE4LiH4LiC4Li44LiZ4LiX4LiUDQor4Lib4LiB4LiI4Li04LiV4LiV4LmMIOC4m+C4o+C4sOC4oeC4suC4jQ0KK+C4m+C4geC4o+C4k+C5jCDguYDguIjguLXguKLguKPguKrguLjguJUNCivguJvguIHguKPguJPguYwg4Lia4Li44LiN4Liq4Li04LiZ4Liq4Li44LiCDQor4Lib4LiB4Lij4LiT4LmMIOC4p+C4h+C4qOC5jOC4p+C4tOC4l+C4ouC4suC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4m+C4geC4o+C4k+C5jCDguK3guLTguJnguJfguKPguLLguKfguLjguJgNCivguJvguIrguLIg4LiV4Li14Lij4Liw4Lij4Lix4LiV4LiZ4LmMDQor4Lib4LiP4Li04LiZ4Li44LiKIOC4p+C4h+C4qOC5jOC4l+C4reC4h+C4qOC4o+C4tQ0KK+C4m+C4j+C4tOC4oeC4siDguIHguLLguI3guIjguJnguKHguLHguKINCivguJvguJDguKEg4LiE4Lil4LmJ4Liy4Lii4Liq4Li44LiX4LiY4Li0DQor4Lib4LiQ4LihIOC4reC4seC4geC4qeC4o+C4qOC4o+C4tQ0KK+C4m+C4kOC4oeC4o+C4seC4leC4meC5jCDguK3guJnguLjguKPguLHguIHguKnguYzguYDguKXguILguLINCivguJvguJPguLHguKnguJDguYwg4LiU4Lin4LiH4Lit4Li44LiU4LihDQor4Lib4LiT4Li04LiY4Liy4LiZIOC4o+C4p+C4oeC4p+C4tOC4jeC4jeC4ueC4iuC4seC4og0KK+C4m+C4l+C4teC4myDguYTguKHguYnguIfguLLguKENCivguJvguJfguLjguKEg4LmA4Lib4Li14LmJ4Lii4Lin4LiZ4Li04LmI4LihDQor4Lib4LiX4Li44LihIOC4q+C4suC4jeC4geC4tOC4leC4leC4tOC4quC4geC4uOC4pQ0KK+C4m+C4l+C4uOC4oeC4nuC4oyDguK3guKHguKPguIjguLTguKPguJ7guKMNCivguJvguJfguLjguKHguKPguLHguJXguJnguYwg4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lib4LiZ4Lix4LiU4LiU4LiyIOC5geC4geC5ieC4p+C4qOC4o+C4tQ0KK+C4m+C4meC4seC4lOC4lOC4siDguJnguLLguKHguJPguLUNCivguJvguJnguLHguJTguJTguLIg4Lin4Liy4Lij4Li04LiY4LijDQor4Lib4LiZ4Lix4Liq4Lii4LiyIOC4nuC4reC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4oOC4seC4quC4quC4oyDguYLguITguJrguLLguKLguLLguIrguLQNCivguJvguKPguIcg4LmA4Lij4Li34Lit4LiH4LiI4Li44LmJ4LiiDQor4Lib4Lij4Lin4Li04LiK4Lii4LmMIOC5guC4reC4oOC4suC4qg0KK+C4m+C4o+C4sOC4geC4reC4miDguIHguKTguKnguKrguLjguKfguKPguKPguJMNCivguJvguKPguLDguIHguK3guJog4LiI4Lix4LiZ4LiX4Lij4LmM4LiV4Lij4Li1DQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4lOC4reC4geC5geC4geC5ieC4pw0KK+C4m+C4o+C4sOC4geC4reC4miDguJnguLLguKHguKfguIfguKjguYwNCivguJvguKPguLDguIHguK3guJog4Lie4Lin4LiH4LiX4Lit4LiH4LiX4Li04Lie4Lii4LmMDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4o+C4seC4leC4meC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4m+C4o+C4sOC4geC4reC4miDguKjguLTguKPguLTguYLguIrguJXguLANCivguJvguKPguLDguIHguK3guJog4Lit4LiZ4Lix4LiZ4LiV4LiB4Li44LilDQor4Lib4Lij4Liw4LiB4Liy4LiiIOC4iOC4uOC4rOC4p+C4meC4tOC4ig0KK+C4m+C4o+C4sOC4geC4suC4ouC4o+C4seC4leC4meC5jCDguJXguLHguJnguJjguLXguKPguKfguIfguKjguYwNCivguJvguKPguLDguIHguLLguKMg4LiZ4Li44LiK4Lia4Li44Lip4Lia4LiyDQor4Lib4Lij4Liw4LiB4Liy4LiqIOC4geC4seC4k+C4kOC4seC4qOC5geC4geC5ieC4pw0KK+C4m+C4o+C4sOC4geC4tOC4iCDguJXguKPguLXguIHguLTguJXguJXguLTguJnguLjguKPguLHguIHguKnguYwNCivguJvguKPguLDguIHguLTguIgg4Lii4Lit4LiU4Lii4Lij4Lij4Lii4LiHDQor4Lib4Lij4Liw4LiB4Li04LiIIOC4reC4tOC4h+C4oOC4suC4meC4uOC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4geC4tOC4lSDguJjguJnguLLguYDguIjguKPguLTguI3guKDguLTguKPguKHguKLguYwNCivguJvguKPguLDguIHguLTguJUg4Lin4Li04Lio4Lin4LiB4Lij4Lin4Li04Lio4Li04Lip4LiP4LmMDQor4Lib4Lij4Liw4LiE4Lij4Lit4LiHIOC5guC4iuC4hOC5guC4quC4lA0KK+C4m+C4o+C4sOC4hOC4reC4hyDguYDguIjguYfguIfguJnguYnguK3guKINCivguJvguKPguLDguITguK3guIcg4LiZ4Li04Lil4LiJ4Liy4LiiDQor4Lib4Lij4Liw4LiE4Lit4LiHIOC4nuC4seC4p+C4nuC4h+C4qeC5jOC4l+C4reC4hw0KK+C4m+C4o+C4sOC4hOC4reC4hyDguYLguKPguIjguJnguYzguKPguLHguIHguKnguYwNCivguJvguKPguLDguITguK3guIcg4Liq4Li44LiC4Lie4Li44LmI4LihDQor4Lib4Lij4Liw4LiE4Lit4LiH4Lio4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4peC4suC4oA0KK+C4m+C4o+C4sOC4iOC4hyDguKrguLTguJfguJjguLTguKfguJPguLTguIoNCivguJvguKPguLDguIjguJog4Lin4LiH4Lip4LmM4LiZ4Li04LmI4LihDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC5geC4geC5iOC4meC4iOC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC4iOC4p+C4miDguIjguLHguJnguJfguKPguLINCivguJvguKPguLDguIjguKfguJog4LmB4LiL4LmI4Lil4Li14LmJDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC5gOC4l+C4teC5iOC4ouC4h+C4muC4uOC4jQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguJrguLjguI3guYDguK3guLXguYjguKLguKENCivguJvguKPguLDguIjguKfguJog4Lie4Lix4LiK4LiZ4Li14Lij4Lix4LiV4LiZ4LiB4Lij4LiT4LmMDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC4oeC4teC4p+C4seC4meC4lOC4tQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYDguKXguLXguYnguKLguIfguYDguIHguLTguJQNCivguJvguKPguLDguIjguKfguJog4Liq4Lih4LiI4Li04LiV4Lij4LmMDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC5geC4quC4h+C5gOC4quC4p+C4lQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguK3guLjguKPguLjguJnguLLguJnguJnguJfguYwNCivguJvguKPguLDguIjguLHguIHguKPguYwg4Lit4LmI4Liz4Liq4Li44LiCDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMIOC5gOC4iOC4o+C4tOC4jeC4nuC4seC4kuC4meC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguJjguLLguKPguLLguInguLHguJXguKMNCivguJvguKPguLDguIjguLHguIHguKnguYwg4Lie4Lix4LiH4Lie4Liy4LiZ4LiZ4Liy4LiEDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMIOC4p+C4seC4kuC4meC5gOC4lOC4iuC4suC4iuC4suC4jQ0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguYLguKrguJjguKPguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguIjguLMg4Lin4Li04LmA4Lio4Lip4Liq4Lih4Li04LiVDQor4Lib4Lij4Liw4LiI4Li04LiV4LijIOC4q+C4suC4oeC4meC4leC4o+C4tQ0KK+C4m+C4o+C4sOC4iuC4jSDguKHguLXguIrguLnguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguIrguLIg4LiB4Li04LiI4Lij4Lix4LiV4LiZ4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Lib4Lij4Liw4LiK4LiyIOC4iuC4t+C5iOC4meC5geC4guC4gQ0KK+C4m+C4o+C4sOC4iuC4siDguYDguJfguKjguJfguLPguJnguLgNCivguJvguKPguLDguIrguLIg4Lib4LmI4Liy4LiH4Lio4Lij4Li1DQor4Lib4Lij4Liw4LiK4LiyIOC4ouC4tOC5ieC4oeC4nuC4o+C4nuC4tOC4nuC4seC4kuC4meC5jOC4nOC4pQ0KK+C4m+C4o+C4sOC4iuC4siDguKjguKPguLXguKjguKjguLTguKfguLTguKHguKUNCivguJvguKPguLDguIrguLIg4Lit4LiH4Lio4LmM4LmA4LiI4Lij4Li04LiN4Lin4Li44LiS4Li0DQor4Lib4Lij4Liw4LiK4Liy4Lin4Li44LiS4Li0IOC5guC4quC4p+C4o+C4p+C4uOC4kuC4tOC4meC4seC4meC4l+C5jA0KK+C4m+C4o+C4sOC4iuC4tOC4lSDguJjguLXguKPguKjguLLguKrguJXguKPguYwNCivguJvguKPguLDguIrguLXguJ4g4LiK4Li54Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4LiK4Li44LihIOC4iuC4p+C4peC4tOC4lQ0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguJrguLHguKfguYDguILguLXguKLguKcNCivguJvguKPguLDguIrguLjguKEg4Lih4Li44LiB4LiU4Liy4LiB4Lij4Lij4LiT4LmMDQor4Lib4Lij4Liw4LiK4Li44LihIOC4quC4p+C4seC4quC4lOC4tOC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguYDguK3guLXguYjguKLguKHguKXguLDguK3guK0NCivguJvguKPguLDguJPguJUg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4Lib4Lij4Liw4LiT4Li14LiVIOC4iOC4tOC4leC4leC4tOC4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC4lOC4seC4miDguIjguLTguJXguJXguLTguKHguLLguJ7guKMNCivguJvguKPguLDguJTguLHguJog4Lie4Li44LmI4Lih4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Lib4Lij4Liw4LiU4Lix4LiaIOC5guC4quC4oOC4k+C4geC4tOC4leC4ouC4suC4oOC4o+C4k+C5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kCDguIjguLHguJnguJfguKPguLINCivguJvguKPguLDguJTguLTguKnguJAg4LmA4Lil4Li04Lio4Lin4Li04LiK4LiyDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4geC4peC4tOC5iOC4meC4q+C4reC4oeC4o+C4t+C5iOC4mQ0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguIjguIfguKrguLfguJrguJ7guLHguJnguJjguYwNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LiK4Li54Lie4Li24LmI4LiH4Lit4Liy4LiV4Lih4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4l+C4reC4h+C4nuC4quC4tOC4kOC4quC4oeC4muC4seC4leC4tA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguJrguLjguI3guKHguLLguIENCivguJvguKPguLDguJTguLTguKnguJDguYwg4Lie4Lij4Lij4LiT4Liy4LmC4LiqDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4oeC4q+C4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguKXguLTguKHguJvguLTguKPguLLguKnguI7guKPguYwNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LmA4Lin4Liq4Liy4Lij4Lix4LiK4LiK4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4quC4seC4h+C4guC5jOC4quC4p+C5iOC4suC4hw0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguYHguKrguKfguIfguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LmA4Lit4LiB4Lit4Li44LmI4LiZDQor4Lib4Lij4Liw4LiW4LihIOC4reC4tOC5iOC4oeC4quC4p+C5iOC4suC4hw0KK+C4m+C4o+C4sOC4l+C4p+C4mSDguJnguLLguITguJ7guKXguLHguIcNCivguJvguKPguLDguJfguKfguJkg4Lit4Lij4Lij4LiW4LmC4LiB4Lin4Li04LiXDQor4Lib4Lij4Liw4LiX4Liy4LiZIOC4meC4seC4meC4l+C4m+C4o+C4sOC5hOC4ng0KK+C4m+C4o+C4sOC4l+C4tOC4mSDguIjguLPguJvguLLguYDguIfguLTguJkNCivguJvguKPguLDguJfguLTguJkg4LmA4Lia4LiN4LiI4Lie4LilDQor4Lib4Lij4Liw4LiX4Li04LiZIOC4qOC4h+C4quC4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC4l+C4tOC4meC4l+C4tOC4nuC4ouC5jCDguJrguLHguKfguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLDguJfguLXguJsg4LmA4LiB4Li04LiU4Lic4LilDQor4Lib4Lij4Liw4LiX4Li14LibIOC4iOC4h+C4oeC4teC5gOC4quC4o+C5h+C4iA0KK+C4m+C4o+C4sOC4l+C4teC4myDguIrguLHguKLguYDguInguKXguLTguKHguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguJfguLXguJsg4LmA4LiV4LiK4Liw4Lib4Lij4Liw4Lig4Liy4Lin4LiB4Li44LilDQor4Lib4Lij4Liw4LiX4Li14LibIOC4meC4o+C4oeC4seC5iOC4hw0KK+C4m+C4o+C4sOC4l+C4teC4myDguJvguKPguLDguYTguJ7guKXguLHguIHguKnguJPguYwNCivguJvguKPguLDguJfguLXguJsg4Lie4Li44LiS4Li04Liq4LiB4Li44Lil4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC4ouC4tOC5ieC4oeC4quC4suC4o+C4sA0KK+C4m+C4o+C4sOC4l+C4teC4myDguKfguIfguKjguYzguYDguKXguLTguKgNCivguJvguKPguLDguJfguLXguJsg4Liq4LiZ4LmD4LiI4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC5gOC4quC4teC4ouC4h+C4q+C4p+C4suC4mQ0KK+C4m+C4o+C4sOC4l+C4teC4myDguK3guLjguJTguKHguJzguKUNCivguJvguKPguLDguJfguLjguKEg4LiC4Lin4Lix4LiN4Lih4LiyDQor4Lib4Lij4Liw4LiX4Li44LihIOC5gOC4iOC4o+C4tOC4jeC4iuC4reC4mg0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguJTguLXguYLguKPguIjguJnguYzguKfguIfguITguYwNCivguJvguKPguLDguJfguLjguKEg4LiZ4Li44LiK4LiZ4Lin4LilDQor4Lib4Lij4Liw4LiX4Li44LihIOC4nuC4o+C4q+C4oeC4quC4meC4mOC4tOC5jA0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguKLguLjguKfguLLguJnguJnguJfguYwNCivguJvguKPguLDguJfguLjguKEg4LmA4Lin4LiT4Li44LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lib4Lij4Liw4LiX4Li44LihIOC4quC4uOC4guC4oeC4sg0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguK3guKfguKLguKjguLTguKPguLQNCivguJvguKPguLDguJfguLjguKHguJ7guLTguJkg4Lih4Li44LiV4LmA4LiH4Li04LiZDQor4Lib4Lij4Liw4LiY4Liy4LiZIOC4iuC4uOC4k+C4q+C4sOC4quC4seC4meC4leC5jA0KK+C4m+C4o+C4sOC4mOC4suC4mSDguYDguKfguIrguIrguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguJvguKPguLDguJnguK3guKEg4LiB4LmJ4Lit4LiH4Liq4Lih4Li44LiX4LijDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC5guC4hOC4qOC4tOC4peC4sg0KK+C4m+C4o+C4sOC4meC4reC4oSDguIrguJnguLDguKDguLHguKINCivguJvguKPguLDguJnguK3guKEg4LiV4Lij4Li14Lin4Li04LiI4Li04LiV4Lij4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4mOC4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4m+C4o+C4sOC4meC4reC4oSDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguJvguKPguLDguJnguK3guKEg4Lie4LiH4Lip4LmM4Lio4Lij4Li1DQor4Lib4Lij4Liw4LiZ4Lit4LihIOC5guC4nuC4mOC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4meC4reC4oSDguKLguLTguYnguKHguIfguLLguKENCivguJvguKPguLDguJnguK3guKEg4Lin4LiH4Lio4Liy4LiY4Li04LiK4Lix4Lii4Liq4LiB4Li44LilDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4quC4luC4tOC4o+C4quC4oeC4muC4seC4leC4tA0KK+C4m+C4o+C4sOC4meC4reC4oSDguKrguLjguKfguKPguKPguJPguYDguITguKPguLfguK0NCivguJvguKPguLDguJnguK3guKEg4Lit4Lix4LiH4LiE4LmA4Liq4LiW4Li14Lii4LijDQor4Lib4Lij4Liw4Lie4LiH4Lio4LmMIOC4p+C4seC4kuC4meC4quC4uOC4gg0KK+C4m+C4o+C4sOC4nuC4iOC4meC5jCDguKHguLXguJfguKPguLHguJ7guKLguYwNCivguJvguKPguLDguJ7guJnguJjguYwg4LmA4LiB4Lip4Lij4Liy4LiH4LiB4Li54LilDQor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMIOC4meC4nuC4quC4tOC4l+C4mOC4tOC4qOC4uOC4oOC4nuC4h+C4qeC5jA0KK+C4m+C4o+C4sOC4nuC4meC4mOC5jCDguKfguLHguJTguKHguJPguLUNCivguJvguKPguLDguJ7guKMg4Lii4Lix4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4Lib4Lij4Liw4Lie4Lik4LiX4LiY4Li04LmMIOC4qOC4uOC4oOC4nuC4seC4kuC4meC4p+C4o+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC4nuC4seC4kuC4meC5jOC4nuC4h+C4qeC5jCDguJrguLPguYDguJ7guYfguI3guKrguLTguJfguJjguLTguYwNCivguJvguKPguLDguJ7guLHguJLguJnguYwg4LiY4LiZ4Liw4LiY4LiZ4Li04LiVDQor4Lib4Lij4Liw4Lie4Lix4LiS4LiZ4LmMIOC4peC4tOC4oeC4m+C5jOC4mOC4teC4o+C4sOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4nuC4seC4kuC4meC5jCDguK3guLjguJTguKHguYLguKDguIrguJnguYwNCivguJvguKPguLDguJ7guLHguJnguJjguLjguYwg4LiC4Lix4LiZ4LiY4LmC4Liq4Lig4LiyDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4hOC4peC5ieC4suC4ouC4quC4uOC4muC4o+C4o+C4kw0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguInguLHguJXguKPguJjguJnguLLguK3guJnguLHguJnguJXguYwNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4LmA4LiU4LmC4LiK4LiY4Lij4Lij4Lih4Liq4LiW4Li04LiVDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4mOC4suC4meC4teC4hOC4sw0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguJvguKPguLDguKDguLLguJ7guLTguJfguKLguLLguIHguKMNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4ouC4uOC4iuC4seC4og0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguKfguIfguKjguYzguYHguKrguIfguKfguLTguJrguLnguKXguKLguYwNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lio4Li04Lij4Li04LmC4LiK4LiV4Li04Lij4Li44LmI4LiH4LiC4LiI4LijDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguK3guLHguI3guI3guKHguJPguLUNCivguJvguKPguLDguJ7guLLguKgg4Lio4LiB4Li44LiZ4LiV4LiZ4Liy4LiEDQor4Lib4Lij4Liw4Lie4Liy4LisIOC5geC4quC4meC4quC4uOC4gg0KK+C4m+C4o+C4sOC4nuC4tOC4l+C4ouC5jCDguYTguIrguKLguK3guLjguJfguLTguJXguKLguYzguIHguLjguKUNCivguJvguKPguLDguJ7guLTguKHguJ7guYwg4Lie4Li44LiX4LiY4Li04Lij4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4Lib4Lij4Liw4Lie4Li04LioIOC4muC4uOC4jeC4o+C4uOC5iOC4hw0KK+C4m+C4o+C4sOC4nuC4tOC4qCDguYHguKrguIfguK3guLLguJfguLTguJXguKLguYwNCivguJvguKPguLDguJ7guLXguKPguYwg4Lit4Li04LiP4LiQ4LiB4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4Lig4Lix4Lio4LijIOC5hOC4iuC4ouC5gOC4qOC4o+C4qeC4kA0KK+C4m+C4o+C4sOC4oOC4seC4quC4o+C5jCDguJ7guLTguKjguLTguKnguJDguIHguLLguKMNCivguJvguKPguLDguKDguLHguKrguKrguKMg4LiX4Lit4LiH4LiE4Liz4LiE4Li54LiTDQor4Lib4Lij4Liw4Lig4Lix4Liq4Liq4LijIOC4peC4uOC4m+C4o+C4sOC4quC4h+C4hOC5jA0KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4oyDguYDguK3guLXguYjguKLguKHguYLguK3guKDguLLguKoNCivguJvguKPguLDguKDguLIg4LiE4Liz4LmA4Lie4Lij4Liy4LiwDQor4Lib4Lij4Liw4Lig4LiyIOC4iuC4suC4o+C4teC4reC4seC4mQ0KK+C4m+C4o+C4sOC4oOC4siDguJXguLHguYvguJnguYDguIjguKPguLTguI0NCivguJvguKPguLDguKDguLIg4LiZ4Liy4LiE4LiZ4Li04LilDQor4Lib4Lij4Liw4Lig4LiyIOC4nuC4h+C4qeC5jOC4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4m+C4o+C4sOC4oOC4siDguKHguLXguYHguKrguIcNCivguJvguKPguLDguKDguLIg4Lin4Li04LmA4LiK4Li14Lii4Lij4Liq4Li04LiH4Lir4LmMDQor4Lib4Lij4Liw4Lig4LiyIOC4quC4uOC4guC4nuC4seC4meC4mOC4tQ0KK+C4m+C4o+C4sOC4oOC4siDguK3guLTguIfguITguJnguLHguJnguJfguYwNCivguJvguKPguLDguKDguLLguJfguLTguJ7guKLguYwg4LiJIOC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C4m+C4o+C4sOC4oOC4suC4nuC4oyDguYHguIvguYjguKXguLTguYnguKENCivguJvguKPguLDguKDguLLguJ7guKMg4LmB4Lii4LmJ4Lih4Lit4LmI4Lin4LihDQor4Lib4Lij4Liw4Lig4Liy4Lie4LijIOC4reC4uOC4muC4peC4p+C4tOC4o+C4seC4leC4meC4sg0KK+C4m+C4o+C4sOC4oOC4suC4nuC4o+C4o+C4kyDguJrguLjguJPguKLguLDguKjguKPguLUNCivguJvguKPguLDguKDguLLguJ7guKPguKPguJMg4Lit4Li04LmI4Lih4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Liw4Lig4Liy4Lig4Lij4LiT4LmMIOC4nOC4tOC4meC5geC4lQ0KK+C4m+C4o+C4sOC4oOC4suC4o+C4seC4leC4meC5jCDguJrguLLguIfguKDguLTguKDguJ4NCivguJvguKPguLDguKDguLLguKfguJTguLUg4Lit4Liz4Lih4Lik4LiV4LmC4LiK4LiV4Li0DQor4Lib4Lij4Liw4Lig4Liy4Lio4Lij4Li1IOC4hOC4suC4o+C4p+C4sOC4leC4o+C4teC5gOC4lOC4ig0KK+C4m+C4o+C4sOC4oOC4suC4qOC4o+C4tSDguYDguJfguLXguYjguKLguIfguILguLMNCivguJvguKPguLDguKDguLLguKjguKPguLUg4LmA4Lih4Li34Lit4LiH4Lie4Lij4Lir4LihDQor4Lib4Lij4Liw4Lig4Liy4Lio4Lij4Li1IOC4quC4uOC4meC4l+C5gOC4o+C4geC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4oOC4suC4qiDguYDguIHguJXguIHguLDguYLguIHguKHguKUNCivguJvguKPguLDguKDguLLguKog4LiX4Lix4Lia4LiX4Li04Lih4LiX4Lit4LiHDQor4Lib4Lij4Liw4Lig4Liy4LiqIOC4nuC4uOC4l+C4mOC4tOC4lOC4tOC4peC4gQ0KK+C4m+C4o+C4sOC4oOC4suC4qiDguKjguLTguKPguLTguK3guLHguIfguITguJPguLINCivguJvguKPguLDguKDguLLguKog4LmC4Lit4Lig4Liy4Liq4Lie4Lix4LiZ4LiY4LmM4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4Lih4Lin4LiNIOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5guC4quC4oOC4kw0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguITguLPguYDguKfguLXguKLguIfguIjguLHguJnguJfguKPguYwNCivguJvguKPguLDguKHguKfguKUg4LmA4LiV4Li04Lih4LiB4Li44Lio4Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Liw4Lih4Lin4LilIOC4muC4uOC4jeC4quC4tOC4h+C4q+C5jOC4qOC4ow0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguKDguLnguKHguLTguIrguLHguKINCivguJvguKPguLDguKHguKfguKUg4Lin4Li04Lih4Lil4LmC4LiZ4LiYDQor4Lib4Lij4Liw4Lih4Lin4LilIOC4quC4uOC4p+C4o+C4o+C4k+C4iOC4tOC4meC4lOC4sg0KK+C4m+C4o+C4sOC4oeC4p+C4peC4qOC4o+C4tSDguKrguLTguJnguK3guLLguKnguLINCivguJvguKPguLDguKHguLLguJkg4Liq4Li44LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Liw4Lih4Li44LiCIOC4nuC4o+C4q+C4oeC4o+C4seC4leC4meC5jOC4nuC4h+C4qOC5jA0KK+C4m+C4o+C4sOC4oeC4ueC4pSDguIrguLnguYHguIHguYnguKcNCivguJvguKPguLDguKLguIfguITguYwg4LiB4Li04LiV4LiV4Li04LiB4Liy4Lij4Li44LiT4LiI4Li04LiVDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC5g+C4iOC4lOC4tQ0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguJXguLHguJPguJHguYzguKrguLjguJfguJjguLTguKfguIfguITguYwNCivguJvguKPguLDguKLguIfguITguYwg4Lia4Lix4Lin4LiC4LiI4LijDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4nuC5iOC4p+C4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguKPguK3guJTguJnguLPguJ7guLINCivguJvguKPguLDguKLguIfguITguYwg4Liq4LiH4LmI4Liy4Lin4LiH4LiE4LmMDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4q+C4h+C4qeC5jOC4reC5iOC4reC4mQ0KK+C4m+C4o+C4sOC4ouC4p+C4iiDguJnguLTguKXguJ7guLHguJnguJjguYwNCivguJvguKPguLDguKLguLjguJfguJgg4LiC4LiI4Lij4LiB4Lin4Li04LiZ4LiB4Li44LilDQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC5hOC4iuC4ouC4oeC4suC4leC4ow0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguJnguLTguKHguLTguJXguKvguKXguLTguKfguJ7guLLguJnguLTguIrguKLguYwNCivguJvguKPguLDguKLguLjguJfguJgg4Lie4Li44LmI4Lih4LiK4Li54Lio4Lij4Li1DQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC4p+C4h+C4qOC5jOC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguKrguLjguJfguJjguLTguKrguLLguJnguJnguJfguYwNCivguJvguKPguLDguKLguLjguJfguJjguYwg4LmC4LiB4Lin4Li04LiX4Lin4LiT4Li04LiK4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4Lii4Li44LiYIOC4ouC4tOC4meC4lOC4teC4nuC4tOC4mA0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguYHguIHguYnguKfguJrguLHguJPguJHguLTguJUNCivguJvguKPguLDguKLguLnguKMg4LiI4LiH4Lih4Li14Lie4Lij4LiK4Lix4LiiDQor4Lib4Lij4Liw4Lii4Li54LijIOC5geC4iOC5ieC4h+C4iOC4tOC4leC4ow0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguYTguIrguYLguKINCivguJvguKPguLDguKLguLnguKMg4LiX4Lit4LiH4Lib4Lij4Liw4LiX4Li44LihDQor4Lib4Lij4Liw4Lii4Li54LijIOC4meC4tOC5iOC4oeC4guC4suC4pw0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguJrguLnguKPguJPguKjguLTguKPguLQNCivguJvguKPguLDguKLguLnguKMg4Lie4Lij4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmM4Liq4Li44LiCDQor4Lib4Lij4Liw4Lii4Li54LijIOC4oOC4ueC4oeC4tOC5guC4quC4oQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKPguK3guKLguJXguKPguLDguIHguLnguKUNCivguJvguKPguLDguKLguLnguKMg4LmA4Lil4Li04Lio4LmE4LiK4Lii4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lib4Lij4Liw4Lii4Li54LijIOC4qOC4o+C4teC4p+C4tOC5hOC4pQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKrguLPguYDguJnguLXguKLguIfguIfguLLguKENCivguJvguKPguLDguKLguLnguKMg4Lir4LiH4Lip4LmM4LmC4LiVDQor4Lib4Lij4Liw4Lii4Li54LijIOC4reC4uOC4k+C4o+C4uOC4lw0KK+C4m+C4o+C4sOC4peC4reC4hyDguKrguLjguJfguJjguLTguJnguLHguJnguJfguKrguLjguIINCivguJvguKPguLDguKfguLHguJXguLQg4LiI4Li04Lij4Liw4Liq4LiW4Li04LiV4Lii4LmMDQor4Lib4Lij4Liw4Lin4Lix4LiV4Li0IOC4meC4nuC4o+C4seC4leC4meC4o+C4suC4oOC4o+C4k+C5jA0KK+C4m+C4o+C4sOC4p+C4seC4leC4tCDguKPguLHguJXguJnguKfguLTguKDguLLguJ7guIfguKnguYwNCivguJvguKPguLDguKfguLHguJXguLQg4Liq4Li44LiX4LiY4Li04Liq4Liy4Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lib4Lij4Liw4Lin4Li04LiHIOC4meC4p+C4peC4geC4sOC4quC4tOC4mQ0KK+C4m+C4o+C4sOC4p+C4tOC4iiDguK3guLHguIrguIzguLLguKrguLjguJfguJjguLTguITguLjguJMNCivguJvguKPguLDguKfguLTguJXguKMg4Lin4LiH4Lio4LmM4LiI4Li04LiV4LiV4Liy4LmC4Lig4LiEDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4geC4seC4h+C4geC4pQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguIjguIfguIjguLTguJXguKrguLPguKPguLLguI0NCivguJvguKPguLDguKfguLTguJfguKLguYwg4LmA4LiI4Liy4Liq4Li44Lij4Li04Lii4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC5geC4i+C5iOC4m+C4tuC4hw0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYDguJXguIrguLDguJrguLnguKPguJPguYDguJfguJ7guLLguKDguKPguJPguYwNCivguJvguKPguLDguKfguLTguJfguKLguYwg4LiZ4Liy4LiZ4Liy4LiK4Li04LiZDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4m+C4suC4peC4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguJ7guLnguKXguYDguIHguKnguKMNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lij4LiV4Li04Liq4Li04LiZDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC5gOC4peC4tOC4qOC5gOC4mOC4teC4ouC4o+C4lOC4s+C4o+C4hw0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguKfguLjguJLguLTguJnguKDguLLguKPguLHguJXguJnguYwNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Liq4Liy4Lii4LiI4Lix4LiZ4LiX4Lij4LmM4Lir4Lit4LihDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC5geC4quC4h+C5hOC4iuC4og0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguK3guLLguKPguLXguKrguIfguYDguITguKPguLLguLDguKvguYzguIHguLjguKUNCivguJvguKPguLDguKfguLXguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Liw4Lin4Li44LiS4Li0IOC4qOC4o+C4teC4oeC4seC4meC4leC4sA0KK+C4m+C4o+C4sOC4qOC4suC4quC4meC5jCDguJrguLjguKPguLTguJnguJfguKPguYzguKfguLHguJLguJnguLINCivguJvguKPguLDguKrguIfguITguYwg4LiB4Liz4LmB4Lir4LiH4Lik4LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC5geC4hOC4peC5ieC4p+C5guC4ouC4mOC4sg0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguYDguIjguLTguJTguKrguIHguLjguKXguJrguLjguI0NCivguJvguKPguLDguKrguIfguITguYwg4LmB4LiL4LmI4Lii4Li04LmJ4LihDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4leC4ueC5ieC4iOC4tOC4meC4lOC4sg0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguJjguLPguKPguIfguKfguLHguJLguJnguYDguKXguLTguKgNCivguJvguKPguLDguKrguIfguITguYwg4Lib4LiX4Li44Lih4LmA4LiU4LiK4LiwDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4nuC4o+C4iuC4seC4ouC4p+C4o+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguYHguJ7guJvguKPguLDguYDguKrguKPguLTguJANCivguJvguKPguLDguKrguIfguITguYwg4Lij4Lit4LiU4LmA4LiK4Li34LmJ4LitDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4p+C4h+C4qOC5jOC4iuC4meC4sOC4oOC4seC4og0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguKjguKPguLXguIrguLHguKLguKjguLTguKPguLTguYDguKfguIoNCivguJvguKPguLDguKrguIfguITguYwg4Liq4Lin4LiZ4Liq4Lih4LiI4Li04LiV4LijDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4o+C4sOC5gOC4l+C4qA0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguK3guKLguYjguLLguIfguJjguLLguKPguLINCivguJvguKPguLDguKrguJog4LmC4LiV4LmK4Liw4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Liq4LieIOC4meC4p+C4peC5gOC4luC4peC4tOC4h+C4qOC4seC4geC4lOC4tOC5jA0KK+C4m+C4o+C4sOC4quC4niDguKvguLHguKrguILguLHguJnguJjguLTguYzguYDguJvguLXguYjguKLguKHguKrguLjguIINCivguJvguKPguLDguKrguJ7guKrguLTguJkg4Lio4Li44LiC4LmA4Lit4Li14LmI4Lii4LihDQor4Lib4Lij4Liw4Liq4Lie4LmC4LiK4LiEIOC4p+C4uOC4kuC4tOC4quC4suC4ow0KK+C4m+C4o+C4sOC4quC4oSDguKrguLXguJnguYnguLPguYDguIfguLTguJkNCivguJvguKPguLDguKrguLLguJcg4LmA4LiB4Lip4LiV4Lij4Liw4LiK4LiZ4Lih4LmMDQor4Lib4Lij4Liw4Liq4Liy4LiXIOC4leC4seC5ieC4meC5gOC4quC5h+C4hw0KK+C4m+C4o+C4sOC4quC4suC4lyDguJ7guLTguJfguLHguIHguKnguYzguJ7guIfguKjguYzguKjguLTguKPguLQNCivguJvguKPguLDguKrguLLguJcg4Lio4Lij4Li14LiZ4Liy4LiEDQor4Lib4Lij4Liw4Liq4Liy4LiXIOC4reC4o+C5iOC4suC4oeC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4suC4mOC4meC5jOC4nuC4pSDguITguKXguYjguK3guIfguIHguLLguKPguYDguILguLXguKLguJkNCivguJvguKPguLDguKrguLLguJkg4LmA4LiB4Lip4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Li04LmMDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC5gOC4ieC4peC4ouC4oOC4suC4ng0KK+C4m+C4o+C4sOC4quC4suC4mSDguYDguJXguIrguLDguJvguKPguLDguKDguLLguKfguIHguLjguKUNCivguJvguKPguLDguKrguLLguJkg4Lia4Li44LiN4Lij4Li44LiV4LiZ4LmMDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4nuC4tuC5iOC4h+C4muC4uOC4jeC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4m+C4o+C4sOC4quC4suC4mSDguYDguKPguLfguK3guIfguYHguIjguYjguKENCivguJvguKPguLDguKrguLLguJkg4Lio4Li04Lij4Li04Lia4Li44LiNDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4quC4uOC4o+C4sOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4m+C4o+C4sOC4quC4suC4mSDguK3guLTguJnguJfguKjguLHguIHguJTguLTguYzguK3guLjguJrguKUNCivguJvguKPguLDguKrguLLguKMg4LiC4LiI4Lij4LiB4Lil4Li04LmI4LiZDQor4Lib4Lij4Liw4Liq4Liy4LijIOC4mOC4o+C4o+C4oeC4iOC4s+C4o+C4seC4qg0KK+C4m+C4o+C4sOC4quC4suC4oyDguKHguLXguKrguKHguKHguJnguJXguYwNCivguJvguKPguLDguKrguLLguKMg4LmB4Liq4LiH4Lio4Lij4Li1DQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li0IOC4quC4tOC4h+C4q+C5jOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jOC4nuC4oyDguKfguLTguKPguLTguKLguLDguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiB4Lin4Li04LiZ4Lib4LiT4Li04LiY4Liy4LiZDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4geC4tOC4leC4tOC4qOC4seC4geC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYHguIHguYnguKfguKrguKHguJnguLbguIENCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiE4LiZ4LiL4Li34LmI4LitDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4iOC4h+C4reC4seC4qOC4jeC4suC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIjguLHguJnguYTguIHguKPguJzguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiI4Li44LmJ4Lii4LiZ4Li04LmI4LihDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4ieC4peC4reC4h+C4mOC4meC4suC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIrguLLguIfguJvguKPguLDguKLguLnguKMNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmA4LiK4Li34LmJ4Lit4LiK4Liy4Lin4LiZ4LiyDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5geC4i+C5iOC4q+C4uOC5iOC4mQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJTguIrguKfguJnguLTguIrguKLguJnguLjguKHguLHguJXguLQNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiV4Lix4LiZ4Liq4LiH4Lin4LiZ4Lin4LiH4Lip4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4l+C4o+C4h+C4hOC4sOC4oeC4suC4peC4tQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJfguJ7guYDguK3guLfguYnguK3guJXguKPguLDguIHguLnguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiZ4Lin4Lil4Lit4LiZ4LiH4LiE4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4muC4o+C4o+C4l+C4seC4lOC5gOC4l+C4teC5iOC4ouC4hw0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJrguLjguI3guYHguIHguYnguKcNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4uOC4o+C4sOC4oeC4suC4m+C4seC4lA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJ7guKPguJ7guLTguJ7guLHguJLguJnguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lie4Lix4LiZ4LmB4Liq4LiH4LiU4Liy4LinDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4nuC4iuC4o+C4quC4uOC4guC4quC4seC4meC4leC4tOC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKDguLnguYjguIfguLLguKHguIrguLfguYjguJkNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lih4Liy4LiZ4Liw4Lic4LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4ouC4t+C4meC4ouC4hw0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKPguLjguYjguIfguJjguLXguKPguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lil4Li04Lih4Lib4LmM4Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4p+C4h+C4hOC5jOC4oOC4ueC5iA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKfguLHguIrguKPguLDguYTguJ7guYLguKPguIjguJnguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lin4Li14Lij4Liw4Lie4Liy4LiZ4Li04LiK4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4qOC4o+C4teC4reC4uOC4l+C4suC4o+C4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKrguIHguLjguKXguJnguLLguKHguK3guYDguJnguIENCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Liq4Lix4LiZ4LiV4LmC4Lii4LiU4LihDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4quC4teC4oeC4suC4mOC4o+C4o+C4oeC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKrguLjguJfguJjguLTguKjguLTguKPguLTguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmB4Liq4LiH4Lig4Lix4LiB4LiU4Li1DQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4q+C4suC4jeC4geC4peC5ieC4sg0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguK3guYnguJnguJvguLHguJnguKrguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lit4Liy4Lih4Li04LiZ4LmA4LiL4LmH4LiZDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4reC4teC4ouC4lOC5geC4geC5ieC4pw0KK+C4m+C4o+C4sOC4quC4ueC4lSDguIrguLLguI3guIjguLPguKXguK3guIcNCivguJvguKPguLDguKvguKLguLHguJQg4LiE4Lil4LmJ4Lit4Lii4Lie4Li24LmI4LiH4Lit4Liy4LiIDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC5geC4lOC4h+C4reC4tOC4meC4l+C4p+C4seC4kuC4meC5jA0KK+C4m+C4o+C4sOC4q+C4ouC4seC4lCDguJrguLjguI3guKrguYjguIcNCivguJvguKPguLDguKvguKLguLHguJQg4Lih4LmI4Lin4LiH4LmA4Lil4Li14LmJ4Lii4LiHDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC5gOC4qOC4o+C4qeC4kOC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4q+C4peC4suC4lyDguJnguKfguKPguLLguIoNCivguJvguKPguLDguYDguIjguKnguI7guYwg4LiC4LiI4Lij4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lib4Lij4Liw4LmA4LiK4Li04LiNIOC4m+C4seC5ieC4meC4l+C4reC4hw0KK+C4m+C4o+C4sOC5gOC4lOC4tOC4oSDguKLguLjguKfguYDguJfguJ7guLLguIHguKMNCivguJvguKPguLDguYDguJfguLfguK3guIcg4LiB4LiH4LiX4Lit4LiHDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4hOC4h+C4oeC4meC4leC5jA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguYDguIjguLXguKLguYTguJ7guYHguIHguYnguKcNCivguJvguKPguLDguYDguJfguLfguK3guIcg4LiV4Li04LiT4Liw4Lih4Liy4LioDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4meC4tOC4leC4ouC4sA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguYDguJvguLLguIrguKENCivguJvguKPguLDguYDguJfguLfguK3guIcg4Lih4Lir4Liy4Lij4Lix4LiB4LiC4LiB4LiwDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC5gOC4peC5h+C4geC5g+C4iOC4geC4peC5ieC4sg0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguKrguLHguIfguILguKrguLnguJXguKMNCivguJvguKPguLDguYDguJfguLfguK3guIcg4Lir4Liy4Lie4LiI4LiZ4LmMDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiH4LiX4Li04Lie4Lii4LmMIOC4quC4uOC4guC4lOC4tQ0KK+C4m+C4o+C4sOC5gOC4oeC4tOC4mSDguILguLHguJnguJjguLLguKPguLHguIHguKnguYwNCivguJvguKPguLDguYDguKfguIog4Lig4Lix4LiB4LiU4Li14Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4LmA4Lin4LioIOC4geC4uOC4peC4p+C4tOC4iOC4tOC4leC4o+C4o+C4seC4h+C4quC4tQ0KK+C4m+C4o+C4sOC5gOC4p+C4qCDguKDguLLguKrguKfguKPguYDguKfguIoNCivguJvguKPguLDguYDguKfguKjguJnguYwg4Lia4Li44LiN4Lin4Li04Lig4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4geC4peC4seC5iOC4meC4m+C4o+C4sOC4quC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIHguLTguIjguYDguIjguKPguLTguI3guKfguLTguKjguLLguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4LiB4Li04LiU4Lig4Li54LmIDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4guC4p+C4seC4jeC4l+C4sOC5gOC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguITguKPguK3guIfguKjguLHguIHguJTguLTguYzguKjguKPguLUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmC4LiE4LiV4Lij4Lib4Lij4Liw4LiX4Li44LihDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4iOC4seC4h+C4quC4luC4tOC4leC4ouC5jOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIjguLTguJXguJXguYzguIjguLLguKPguLbguIENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4LiI4LiV4LiZ4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4ieC4suC4geC4h+C4suC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIrguLLguI3guJDguLTguJXguLTguYDguKfguIoNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4LiK4Li04LiU4LiK4Li54LiE4Lin4Liy4Lih4LiU4Li1DQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJTguLLguKPguLLguKPguLHguJXguJnguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiV4Lix4LmJ4LiH4LiI4Lij4Lij4Lii4Liy4LiY4Lij4Lij4LihDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4leC4tOC4oeC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJfguKfguLXguYLguIrguJXguLTguIrguYjguKfguIcNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiX4Lix4Lio4LiZ4Lio4LijDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4mOC4o+C4o+C4oeC4o+C4seC4leC5guC4meC4l+C4seC4og0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJnguLHguJnguJfguKrguLHguJnguJXguLQNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4LiZ4Li14Lii4Lih4LiB4Li44Lil4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4muC4uOC4jeC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJvguKPguLDguKHguIfguIHguLTguIgNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lib4Liy4LiZ4Liq4Li44LiCDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4nOC4suC4quC4uOC4luC4suC4mQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJ7guKTguIHguKnguLLguIfguIHguLnguKMNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lie4Li14Lij4Liw4LmB4Lie4LiX4Lii4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5guC4nuC4mOC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKDguLnguKHguLTguIjguLHguJnguJfguKPguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lih4Lix4LiB4Lie4Li04Lih4LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4oeC4ueC4ruC4s+C4oeC4seC4lOC4reC4suC4o+C4tQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKPguKHguKLguKjguLTguKPguLTguYTguJfguKINCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lij4Li44LiI4Li04LiY4Liy4Lij4LiT4Lij4LiH4LiE4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4peC4suC4oOC4lOC4suC4o+C4sg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYDguKXguLLguKvguYDguKXguLTguKjguIrguLHguKINCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lin4LiH4Lio4LmM4Lit4Lix4LiE4Lij4LiB4Li44LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4p+C4seC4kuC4meC4sOC4iuC4seC4ouC4qOC4o+C4teC4quC4geC4uOC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKfguLjguJLguKLguJvguKPguLDguJTguLTguKnguJDguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lio4Lij4Li14Liq4Li44Lig4Liy4LiH4LiE4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4qOC4tuC4geC4p+C4seC4kuC4meC4sg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKrguKfguJnguJvguKPguLLguIfguITguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Liy4Lii4Lin4Lix4LiS4LiZ4Liy4Liq4Li44LiCDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4quC4uOC4guC4muC4suC4hw0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKrguLjguJrguLTguJnguKHguLTguJXguKMNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4Liq4LmH4LiH4Liq4Li44LiCDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4q+C4o+C4ueC4peC4seC4geC4qeC4k+C4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYDguKvguKXguLfguK3guIfguKjguLjguKDguIrguLHguKLguIHguLjguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lit4Lii4Li54LmI4Lie4Li44LmI4Lih4Lie4Lik4LiB4Lip4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4reC4suC4iOC5gOC4meC4teC4ouC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguK3guLjguJTguKHguKjguLTguKPguLTguYLguKDguITguKjguLHguKINCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmC4Lit4Lin4Liw4LiB4Li44Lil4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lio4Lij4Li1IOC4p+C4h+C4qeC5jOC4quC4uOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4tOC5jCDguILguLLguKfguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguJvguKPguLDguYLguKHguJfguKLguYwg4LmE4LiK4Lii4LiB4Li04LiIDQor4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMIOC5hOC4l+C4ouC4reC4uOC4lOC4oQ0KK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jCDguKrguJnguLTguJfguKfguIfguKjguYwNCivguJvguKPguLDguYTguJfguKIg4Lib4Lij4Liw4LiB4Lit4Lia4LiB4Lil4Li04LmI4LiZDQor4Lib4Lij4Liw4LmE4LieIOC4guC4suC4p+C4quC4uOC4l+C4mOC4tA0KK+C4m+C4o+C4sOC5hOC4niDguIjguLPguYDguKPguLXguKLguIcNCivguJvguKPguLDguYTguJ4g4LiK4Li54Lib4Lij4Liw4Lii4Li54LijDQor4Lib4Lij4Liw4LmE4LieIOC4leC4o+C4teC4meC4tOC4leC4ouC5jA0KK+C4m+C4o+C4sOC5hOC4niDguYDguJfguLXguKLguJnguYTguJfguKINCivguJvguKPguLDguYTguJ4g4Lia4Li44LiN4Lii4Liw4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4LmE4LieIOC4nuC4o+C4oeC4k+C4sA0KK+C4m+C4o+C4sOC5hOC4niDguYLguJ7guJjguLTguYzguYHguKvguJoNCivguJvguKPguLDguYTguJ4g4Lij4Lix4LiV4LiZ4Liw4LiK4Li14Lin4Liw4LiB4Li44LilDQor4Lib4Lij4Liw4LmE4LieIOC4p+C4tOC4quC4suC4peC4quC4geC4pQ0KK+C4m+C4o+C4sOC5hOC4niDguKrguKPguYnguK3guKLguKrguJnguJjguLTguYwNCivguJvguKPguLDguYTguJ4g4LmB4Liq4LiH4LmA4LiU4LiKDQor4Lib4Lij4Liw4LmE4LieIOC4reC4tOC4meC5gOC4reC4teC5iOC4ouC4oQ0KK+C4m+C4o+C4sOC5hOC4nuC4nuC4o+C4o+C4kyDguYDguIHguYfguIjguKfguKXguLXguKfguKPguKMNCivguJvguKPguLDguYTguJ7guJ7guKPguKPguJPguYwg4LiK4Liw4LmA4Lit4LihDQor4Lib4Lij4Liw4LmE4Lie4Lij4Lix4LiV4LiZ4LmMIOC4geC4suC4jeC4iOC4meC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4m+C4o+C4sOC5hOC4nuC4qOC4o+C4tSDguJTguKfguIfguYHguIHguYnguKcNCivguJvguKPguLDguYTguJ7guKjguKPguLUg4Lio4Lij4Li14Lig4Li04Lij4Lih4Lii4LmMDQor4Lib4Lij4Lix4LiK4LiN4LiyIOC4iOC4o+C4ueC4jeC5guC4o+C4iOC4meC5jA0KK+C4m+C4o+C4seC4iuC4jeC4siDguKfguLTguJfguKLguLLguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLHguI3guI3guLIg4LiI4Lix4LiZ4LiX4Lij4Liy4Lig4Lij4LiT4LmMDQor4Lib4Lij4Liy4LiB4Liy4LijIOC4muC5ieC4suC4meC5gOC4geC4suC4sA0KK+C4m+C4o+C4suC4h+C4hOC5jCDguYHguIHguYnguKfguIfguLLguKENCivguJvguKPguLLguIjguLTguJMg4Lin4Li44LiS4Liy4LiZ4Li44Liq4LijDQor4Lib4Lij4Liy4LiT4Li1IOC4geC4pOC4qeC4k+C4geC4o+C4tQ0KK+C4m+C4o+C4suC4k+C4tSDguIHguLTguJXguJXguLTguITguLjguJMNCivguJvguKPguLLguJPguLUg4LmB4LiB4LmJ4Lin4LiE4LizDQor4Lib4Lij4Liy4LiT4Li1IOC4hOC4h+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jA0KK+C4m+C4o+C4suC4k+C4tSDguITguLjguYnguKHguIjguLHguYjguJkNCivguJvguKPguLLguJPguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Lin4Li14Lil4Liy4LigDQor4Lib4Lij4Liy4LiT4Li1IOC4iOC4tOC4p+C4sOC4nuC4h+C4qeC5jA0KK+C4m+C4o+C4suC4k+C4tSDguInguLHguJXguKPguYTguJ7guKjguLLguKXguKrguLjguIINCivguJvguKPguLLguJPguLUg4LiK4Liy4LiN4LiK4LmI4Liy4LiH4LiX4Lir4Liy4LijDQor4Lib4Lij4Liy4LiT4Li1IOC5guC4iuC4hOC4iuC4seC4ouC5gOC4ieC4peC4tOC4oeC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4suC4k+C4tSDguYHguIvguYjguJXguLHguYnguIcNCivguJvguKPguLLguJPguLUg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lib4Lij4Liy4LiT4Li1IOC4leC4o+C4h+C5gOC4p+C5guC4o+C4iOC4meC5jA0KK+C4m+C4o+C4suC4k+C4tSDguYDguJXguLXguKLguYDguJXguLTguKHguKjguLjguKDguJzguKUNCivguJvguKPguLLguJPguLUg4LiX4Lit4LiH4LiU4Lit4LiZ4Lie4Li44LmI4LihDQor4Lib4Lij4Liy4LiT4Li1IOC4l+C4ueC5ieC5hOC4nuC5gOC4o+C4suC4sA0KK+C4m+C4o+C4suC4k+C4tSDguJjguLjguKPguIHguLTguIjguKfguIfguITguYwNCivguJvguKPguLLguJPguLUg4LiZ4Li04Lii4Lih4LmA4Liq4LiZDQor4Lib4Lij4Liy4LiT4Li1IOC4muC4uOC4jeC4geC4peC5iOC4sw0KK+C4m+C4o+C4suC4k+C4tSDguJvguKPguLDguJTguLTguKnguJDguYzguKrguLjguJTguKrguKfguLLguJcNCivguJvguKPguLLguJPguLUg4Lib4Liy4Lie4LiI4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC5gOC4nOC4t+C4reC4geC5gOC4geC4qeC4oQ0KK+C4m+C4o+C4suC4k+C4tSDguJ7guKTguJXguLTguKjguKPguLHguJPguKLguJnguJnguJfguYwNCivguJvguKPguLLguJPguLUg4Lie4Li04LmA4LiZ4LiV4Lij4LmA4Liq4LiW4Li14Lii4LijDQor4Lib4Lij4Liy4LiT4Li1IOC5guC4nuC4mOC4tOC5jOC4oeC4tQ0KK+C4m+C4o+C4suC4k+C4tSDguKHguKvguLHguJXguYDguJTguIrguIHguLjguKUNCivguJvguKPguLLguJPguLUg4LmE4Lih4LmJ4Liq4Lix4LiBDQor4Lib4Lij4Liy4LiT4Li1IOC4o+C4seC4h+C4quC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4suC4k+C4tSDguYLguKPguIjguJnguYzguJ7guIjguJnguLLguKPguLHguIoNCivguJvguKPguLLguJPguLUg4LmA4Lil4Liy4Lir4Liw4LiB4Li44Lil4LiY4Lij4Lij4LihDQor4Lib4Lij4Liy4LiT4Li1IOC4p+C4o+C4ieC4seC4leC4o+C4suC4p+C4k+C4tOC4ig0KK+C4m+C4o+C4suC4k+C4tSDguKfguLTguJfguLjguKPguKfguIfguKjguYwNCivguJvguKPguLLguJPguLUg4Lio4Lij4Li14LiX4Lix4LiiDQor4Lib4Lij4Liy4LiT4Li1IOC4qOC4tOC4o+C4tOC4l+C4seC4qOC4meC4geC4uOC4pQ0KK+C4m+C4o+C4suC4k+C4tSDguKrguKHguJrguLnguKPguJPguYzguKjguLHguIHguJTguLTguYwNCivguJvguKPguLLguJPguLUg4Liq4Liy4Lii4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Liy4LiT4Li1IOC4quC4uOC4guC4mOC4teC4p+C4uOC4kuC4tA0KK+C4m+C4o+C4suC4k+C4tSDguKrguLjguKPguLTguKLguLDguInguLLguKINCivguJvguKPguLLguJPguLUg4LmB4Liq4LiZ4Liq4Li44LiCDQor4Lib4Lij4Liy4LiT4Li1IOC4q+C4tOC4leC4sOC4q+C4uOC5iOC4hw0KK+C4m+C4o+C4suC4k+C4tSDguK3guKLguLnguYjguYDguKrguJnguLLguKrguJnguYwNCivguJvguKPguLLguJPguLUg4Lit4Liz4LmE4Lie4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Liy4LiT4Li1IOC5gOC4reC4geC4quC4tOC4o+C4tOC4peC4seC4jeC4iOC4geC4ow0KK+C4m+C4o+C4suC4k+C4teC4lSDguIrguKfguLLguKXguIHguLjguKUNCivguJvguKPguLLguJPguLXguJUg4Lie4Li24LmI4LiH4Lie4LiH4Lio4LmMDQor4Lib4Lij4Liy4LiT4Li14LiVIOC5gOC4q+C4oeC4t+C4reC4meC5g+C4iA0KK+C4m+C4o+C4suC4meC4reC4oSDguIjguLTguJXguKPguJrguLPguKPguLjguIcNCivguJvguKPguLLguJnguK3guKEg4Lih4Li04LiV4Lij4LiY4Lij4Lij4Lih4Lio4Li04Lij4Li0DQor4Lib4Lij4Liy4LiZ4Li1IOC5gOC4lOC4iuC4oeC4k+C4tQ0KK+C4m+C4o+C4suC4o+C4luC4meC4siDguIjguLHguJnguJfguKPguYzguYHguIHguKHguYHguIHguYnguKcNCivguJvguKPguLLguKPguJbguJnguLIg4Lih4Li04Lil4Li04LiZ4LiX4LiI4Li04LiZ4LiU4LiyDQor4Lib4Lij4Liy4Lij4LigIOC4o+C4seC4leC4nuC4seC4meC4mOC4uOC5jA0KK+C4m+C4o+C4suC4qOC4o+C4seC4oiDguK3guLHguIjguInguKPguLLguKPguLHguIHguKnguYwNCivguJvguKPguLLguYLguKHguJcg4Lii4Li04LiZ4LiU4Li1DQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4hOC4h+C4mOC4meC4sA0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguIjguLPguJvguLLguJfguK3guIcNCivguJvguKPguLLguYLguKHguJfguKLguYwg4LiK4Li44LiV4Li04Lih4LiyDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4leC4s+C4o+C4suC5gOC4o+C4teC4ouC4hw0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguJnguKDguLLguYHguIjguYnguIcNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Lia4Li44LiT4Lii4Lij4Lix4LiH4Liq4Lik4Lip4LiO4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4nuC4h+C4qOC5jOC4geC4peC5iOC4sw0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguKHguIHguKPguJ7guKTguIHguKnguYwNCivguJvguKPguLLguYLguKHguJfguKLguYwg4LmC4Lij4LiI4LiZ4Lin4Li04Lig4Liy4LiVDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4p+C5guC4o+C4lOC4oeC4p+C4meC4tOC4iuC4geC4uOC4pQ0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguKrguKPguKPguYDguJ7guIrguKPguKjguLTguKPguLQNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Liq4Li44Lia4Lij4Lij4LiT4Lie4LiH4Lip4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC5guC4q+C5ieC5g+C4og0KK+C4m+C4o+C4tOC4geC4geC4teC4m+C4suC4pSDguIvguLTguIfguKvguYwNCivguJvguKPguLTguI3guI3guLIg4LiE4Liz4LiX4Liw4LmA4LiZ4LiV4LijDQor4Lib4Lij4Li04LiN4LiN4LiyIOC4leC4tOC4o+C4k+C4sOC4m+C4o+C4sOC4geC4tOC4iA0KK+C4m+C4o+C4tOC4jeC4jeC4siDguYDguJvguKPguKHguJjguLXguKPguKrguKHguJrguLnguKPguJPguYwNCivguJvguKPguLTguI3guI3guLIg4LmB4Lii4LmJ4Lih4LiK4Lih4Liq4Lin4LiZDQor4Lib4Lij4Li04LiN4LiN4LiyIOC4qOC4o+C4teC4quC4uOC4o+C4tOC5guC4og0KK+C4m+C4o+C4tOC4jeC4jeC4siDguYDguKvguKHguKHguLLguIrguLnguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguJvguKPguLTguI3guJTguLIg4LiZ4Li04Lil4LiI4Lij4Lix4Liq4Lin4LiT4Li04LiKDQor4Lib4Lij4Li04LiX4Lib4Liy4Lil4LiL4Li04LiH4Lir4LmMIOC4i+C4suC4muC4suC4lOC4sg0KK+C4m+C4o+C4tOC4oSDguITguLjguJPguLDguYDguIHguKnguKENCivguJvguKPguLTguKLguLIg4Lib4Lix4LiN4LiN4Liy4Lie4LilDQor4Lib4Lij4Li04Lio4LiZ4LiyIOC5geC4geC5ieC4p+C4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4m+C4o+C4tOC4qOC4meC4siDguJvguKPguLDguKvguLLguKPguILguYnguLLguKjguLbguIENCivguJvguKPguLTguKjguJnguLIg4Lit4Lix4Lio4Lin4LmA4Lij4Li34Lit4LiH4LiK4Lix4LiiDQor4Lib4Lij4Li14LiK4LiyIOC4geC4peC4suC4h+C4muC4uOC4o+C4seC4oeC4ouC5jA0KK+C4m+C4o+C4teC4iuC4siDguIHguLXguKPguYDguKjguKPguKnguJDguKPguLjguYjguIfguJfguKfguLUNCivguJvguKPguLXguIrguLIg4LmB4LiB4LmJ4Lin4LmC4LiB4LiW4LihDQor4Lib4Lij4Li14LiK4LiyIOC4hOC4peC5iOC4reC4h+C4quC4ueC5ieC4qOC4tuC4gQ0KK+C4m+C4o+C4teC4iuC4siDguYDguIfguLTguJnguJbguLLguKfguKPguKfguLHguJLguJnguLINCivguJvguKPguLXguIrguLIg4LiI4Liy4Lij4Li44Lio4Li04Lij4Li04LiZ4Li44LiB4Li44LilDQor4Lib4Lij4Li14LiK4LiyIOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4ouC5gOC4nuC4iuC4ow0KK+C4m+C4o+C4teC4iuC4siDguYDguInguKXguLTguKHguJ7guKUNCivguJvguKPguLXguIrguLIg4LiK4Li04LiZ4Liw4LiZ4Liy4Lin4Li04LiZDQor4Lib4Lij4Li14LiK4LiyIOC5hOC4iuC4ouC4p+C4quC4uA0KK+C4m+C4o+C4teC4iuC4siDguYHguIvguYjguYLguIfguYnguKcNCivguJvguKPguLXguIrguLIg4LiV4Lij4Lix4Lii4Lio4Li04Lil4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lib4Lij4Li14LiK4LiyIOC5gOC4leC4iuC4l+C4tOC4nuC4suC4geC4ow0KK+C4m+C4o+C4teC4iuC4siDguJfguKPguLHguJ7guKLguYzguKrguJbguLTguJXguKLguYwNCivguJvguKPguLXguIrguLIg4LiX4Li04Lio4Liy4Lig4Liy4LiE4Lii4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4mOC4suC4o+C4suC4quC4meC4mOC4tOC5jA0KK+C4m+C4o+C4teC4iuC4siDguJnguLLguKrguJQNCivguJvguKPguLXguIrguLIg4Lia4Li44LiN4LiB4Lil4Lix4LmI4LiZDQor4Lib4Lij4Li14LiK4LiyIOC5gOC4muC4jeC4iOC4meC4suC4geC4suC4qOC4geC4uOC4pQ0KK+C4m+C4o+C4teC4iuC4siDguJvguKPguLXguIrguLLguKfguLTguKDguLLguKkNCivguJvguKPguLXguIrguLIg4Lic4Lil4Lih4Liy4LiBDQor4Lib4Lij4Li14LiK4LiyIOC4nuC4o+C4q+C4oeC5gOC4geC4tOC4lA0KK+C4m+C4o+C4teC4iuC4siDguJ7guLTguIrguKLguJ7guLTguJ7guLHguJLguJnguYwNCivguJvguKPguLXguIrguLIg4LmA4Lie4LmH4LiK4Lij4LiZ4LmI4Lin4LihDQor4Lib4Lij4Li14LiK4LiyIOC4oOC4ueC5iOC4quC4uOC4lOC5geC4quC4p+C4hw0KK+C4m+C4o+C4teC4iuC4siDguKHguLXguJrguLjguI3guJ7guLnguKXguJfguKPguLHguJ7guKLguYwNCivguJvguKPguLXguIrguLIg4Lij4Lin4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lib4Lij4Li14LiK4LiyIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4m+C4o+C4teC4iuC4siDguKXguLTguJvguLTguJ7guLHguJLguJnguIHguLjguKUNCivguJvguKPguLXguIrguLIg4Lin4LiH4Lio4LmM4LiI4Li04LiV4LiV4Liy4LmC4Lig4LiEDQor4Lib4Lij4Li14LiK4LiyIOC4p+C4seC4kuC4meC4lOC4tOC5gOC4o+C4gQ0KK+C4m+C4o+C4teC4iuC4siDguKfguLTguYTguKXguKPguLHguJXguJnguYwNCivguJvguKPguLXguIrguLIg4Lio4Lij4Li14LmA4Lij4Li34Lit4LiHDQor4Lib4Lij4Li14LiK4LiyIOC4quC4h+C4p+C4meC4m+C4tQ0KK+C4m+C4o+C4teC4iuC4siDguKrguKfguYjguLLguIfguIjguLTguJXguJXguYwNCivguJvguKPguLXguIrguLIg4Liq4Li04LiX4LiY4Li04LiB4Li04LiIDQor4Lib4Lij4Li14LiK4LiyIOC4quC4uOC4l+C4mOC4tOC4meC4tOC4oOC4suC4iuC4seC4og0KK+C4m+C4o+C4teC4iuC4siDguYDguKrguKPguLXguKfguIfguKjguYwNCivguJvguKPguLXguIrguLIg4Lir4Lit4Lih4Lie4Lin4LiH4Lig4Li54LmIDQor4Lib4Lij4Li14LiK4LiyIOC4reC4meC4uOC4oOC4suC4nuC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4m+C4o+C4teC4iuC4siDguK3guLHguKLguKrguLLguJnguJnguJfguYwNCivguJvguKPguLXguIrguLIg4Lit4Li44LiU4Lih4Lii4Li04LmI4LiH4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Li14LiK4Liy4Lie4LilIOC4nOC4uOC4quC4quC4o+C4suC4h+C4hOC5jOC4oeC4suC4peC4seC4og0KK+C4m+C4o+C4teC4lOC4siDguITguIfguKrguLjguKfguKPguKPguJMNCivguJvguKPguLXguJTguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lib4Lij4Li14LiU4LiyIOC4muC4o+C4o+C4l+C4seC4lOC4nuC4seC4meC4mOC4uOC5jA0KK+C4m+C4o+C4teC4lOC4siDguJ7guLTguJrguLnguKXguKjguLHguIHguJTguLTguYwNCivguJvguKPguLXguJTguLIg4LmC4Lij4LiI4LiZ4LmM4Lia4Lix4Lin4LiX4Lit4LiHDQor4Lib4Lij4Li14LiU4LiyIOC4quC4q+C4meC4seC4meC4l+C4o+C4suC4ouC4uOC4l+C4mA0KK+C4m+C4o+C4teC4lOC4siDguYDguK3guIHguKjguLTguKPguKrguLjguKfguKPguKPguJMNCivguJvguKPguLXguJTguLUg4LiC4Li44Lih4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Lib4Lij4Li14LiU4Li1IOC4quC4uOC4l+C4mOC4tOC5geC4ouC5ieC4oQ0KK+C4m+C4o+C4teC4ouC4nuC4o+C4o+C4kyDguYTguJfguKLguKrguKfguLHguKrguJTguLTguYwNCivguJvguKPguLXguKLguLIg4LiI4Li04Lij4Lij4Lix4LiB4Lip4LmM4LmC4Liq4Lig4Liy4LiB4Li44LilDQor4Lib4Lij4Li14Lii4LiyIOC4nuC4h+C4qOC4suC4meC4o+C4suC4geC4uOC4pQ0KK+C4m+C4o+C4teC4ouC4siDguKrguKHguLjguJfguKPguYPguKvguI3guYgNCivguJvguKPguLXguKLguLLguJnguLTguIgg4Lio4Lij4Li14LmB4LiB4LmI4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lib4Lij4Li14Lii4Liy4Lie4LijIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4m+C4o+C4teC4ouC4suC4oOC4siDguK3guKDguLTguKrguLjguIINCivguJvguKPguLjguIcg4LmA4LiU4LiK4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Li44LiH4Lio4Lij4Li1IOC5gOC4nuC4iuC4o+C4muC4ueC4o+C4k+C5jA0KK+C4m+C4o+C5gOC4oeC4qeC4kOC5jCDguJ7guKPguYDguKXguLTguKgNCivguJvguKXguK3guJTguKDguLHguKIg4Lie4Li14Lij4LiU4Lix4LihDQor4Lib4Lil4Li04LinIOC4lOC4tOC4qeC4kOC4m+C4seC4jeC4jeC4sg0KK+C4m+C4peC4t+C5ieC4oeC4iOC4tOC4leC4leC5jCDguIjguLjguJHguKPguKPguJ4NCivguJvguKfguKPguLTguJnguJfguKMg4Lia4Li44LiN4Lii4Li44Lia4LilDQor4Lib4Lin4Li04LiV4Lij4LmMIOC4quC4uOC4mOC4suC4p+C4tOC4ouC4suC4h+C4geC4ueC4ow0KK+C4m+C4p+C4teC4k+C4siDguJXguLHguJnguKrguLTguJkNCivguJvguKfguLXguJPguLIg4Liq4LiZ4LiY4Li04Lig4Lix4LiB4LiU4Li1DQor4Lib4LmI4Lin4Lii4Lil4LmJ4Lin4LiHIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4m+C4reC4hyDguK3guLLguKDguLLguKjguLTguKXguJvguYwNCivguJvguK3guIjguLkg4LiV4Lix4LiZ4LiV4Li04Lit4LiZ4Li44LiB4Li44Lil4Lia4Li44LiV4LijDQor4Lib4LmJ4Lit4LihIOC4m+C4o+C4sOC4iOC4s+C4oeC4ueC4pQ0KK+C4m+C4sOC4p+C4tOC4hyDguKjguLTguKPguLTguIHguLTguIgNCivguJvguLHguI3guIjguJ7guIfguKnguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lib4Lix4LiN4LiI4Lij4Lix4LiV4LiZ4LmMIOC4ouC4uOC4l+C4mOC4p+C4h+C4qOC5jA0KK+C4m+C4seC4jeC4iOC4suC4oOC4o+C4k+C5jCDguJ7guKPguKvguKHguLLguKLguJkNCivguJvguLHguI3guI3guLIg4LiB4Liy4Lir4Lil4LiHDQor4Lib4Lix4LiN4LiN4LiyIOC4hOC4uOC4k+C4p+C4uOC4kuC4tOC4lOC4teC5gOC4peC4tOC4qOC4ouC4tOC5iOC4hw0KK+C4m+C4seC4jeC4jeC4siDguYHguIjguYnguIfguIHguLLguKPguJTguLUNCivguJvguLHguI3guI3guLIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lib4Lix4LiN4LiN4LiyIOC4l+C4reC4h+C4qOC4o+C4tQ0KK+C4m+C4seC4jeC4jeC4siDguJnguLTguKXguKrguLTguJnguJjguJ4NCivguJvguLHguI3guI3guLIg4Lib4Li04LmI4LiZ4Lib4Liy4LiZDQor4Lib4Lix4LiN4LiN4LiyIOC4nuC4uOC5iOC4oeC4peC4s+C5gOC4iOC4teC4ouC4gQ0KK+C4m+C4seC4jeC4jeC4siDguKPguK3guJTguYDguITguKPguLfguK3guKHguLTguJXguKMNCivguJvguLHguI3guI3guLIg4Lin4Lij4Lij4LiT4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4Lib4Lix4LiN4LiN4LiyIOC4qOC4o+C4teC5g+C4qg0KK+C4m+C4seC4jeC4jeC4siDguKrguLjguILguKfguLHguJLguJnguJfguKPguLHguJ7guKLguYwNCivguJvguLHguI3guI3guLIg4Lir4LmI4Liy4LiZ4Liq4Li04LiH4Lir4LmMDQor4Lib4Lix4LiN4LiN4LiyIOC5gOC4reC5iOC4h+C4ieC5ieC4p+C4mQ0KK+C4m+C4seC4k+C4iuC4suC4o+C4teC4ouC5jCDguYDguKXguLXguYnguKLguIfguJrguLPguKPguLjguIcNCivguJvguLHguJfguKHguLIg4LiB4Li44Lil4Lib4Lix4LiN4LiN4Liy4LmA4Lil4Li04LioDQor4Lib4Lix4LiX4Lih4LiyIOC4iuC4suC4jeC4iuC4seC4ouC4qOC4o+C4tQ0KK+C4m+C4seC4l+C4oeC4siDguJXguLjguKXguLLguKPguLHguIHguKnguLINCivguJvguLHguJfguKHguLIg4LmA4Lib4Li14LmI4Lii4Lih4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMDQor4Lib4Lix4LiX4Lih4LiyIOC5gOC4oeC4t+C4reC4h+C4l+C4reC4h+C5geC4geC5ieC4pw0KK+C4m+C4seC4l+C4oeC4siDguKfguLTguJvguLHguKrguKrguJnguLLguJjguKPguKPguKENCivguJvguLHguJfguKHguLIg4Liq4Li44LiC4LiB4LmJ4Lit4LiZDQor4Lib4Lix4LiX4Lih4LiyIOC4reC4suC4o+C4sOC4ouC4suC4meC4tOC4oeC4tOC4leC4quC4geC4uOC4pQ0KK+C4m+C4seC4l+C4oeC4suC4p+C4lOC4tSDguJrguLjguKvguKXguLHguJkNCivguJvguLHguYnguJkg4LmC4LiK4LiV4Li04LiB4Liw4Lie4Li44LiB4LiB4Liw4LiT4LiwDQor4Lib4Liy4LiZIOC5geC4geC5ieC4p+C4iuC4meC4sA0KK+C4m+C4suC4meC4hOC4syDguKXguLHguKfguLDguJXguLfguYnguJkNCivguJvguLLguJnguIrguLHguKIg4LmB4LiB4LmJ4Lin4Lit4Lix4Lih4Lie4LijDQor4Lib4Liy4LiZ4LiX4Li04Lie4Lii4LmMIOC4meC4suC4oeC5hOC4iuC4og0KK+C4m+C4suC4meC4pOC4l+C4seC4oiDguJXguLHguYnguIfguYPguIgNCivguJvguLLguJnguYDguKrguIEg4Lit4Liy4LiX4Lij4LiY4Li44Lij4Liw4Liq4Li44LiCDQor4Lib4Liy4Lij4Lin4Li14Lij4LmMIOC4muC4uOC4jeC5guC4lQ0KK+C4m+C4suC4o+C4tOC4iuC4suC4lSDguIHguYnguK3guJnguJnguLLguIQNCivguJvguLLguKPguLTguIrguLLguJXguLQg4LiB4Lij4Liy4LmA4LiL4Li14Lii4LiZ4Li14LmIDQor4Lib4Liy4Lij4Li04LiK4Liy4LiV4Li0IOC4l+C4seC4nuC4oOC4sOC4quC4uOC4lQ0KK+C4m+C4suC4o+C4tOC4iuC4suC4leC4tCDguKPguLDguKfguLHguIfguKrguLPguYLguKPguIcNCivguJvguLLguKPguLTguIrguLLguJXguLQg4LmA4Liq4Lin4LiB4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Liy4Lil4Li04LiU4LiyIOC4hOC4k+C4suC4o+C4oeC4ouC5jA0KK+C4m+C4tOC4hyDguJ7guLLguJnguLTguIrguKLguLLguJnguJnguJfguYwNCivguJvguLTguJXguLQg4Lib4Li04LmI4LiZ4Liq4Li44LiB4Liy4LiN4LiI4LiZ4LiwDQor4Lib4Li04LiV4Li04Lie4LiH4Lio4LmMIOC4hOC4uOC4k+C4nuC4h+C4qOC5jOC5hOC4nuC4qOC4suC4pQ0KK+C4m+C4tOC5iOC4mSDguIHguLTguIjguYDguKHguJjguLUNCivguJvguLTguYjguJkg4Lih4LiT4Li14Lia4Li44LiV4LijDQor4Lib4Li04LmI4LiZ4LiX4Lit4LiHIOC4qOC4suC4peC4ouC4suC4iuC4teC4p+C4tOC4mQ0KK+C4m+C4tOC5iOC4meC4reC4meC4h+C4hOC5jCDguJ7guKPguKvguKHguJTguKfguIcNCivguJvguLTguKLguInguLHguJXguKMg4Lit4Li04Lio4Lij4LmA4Liq4LiZ4LiyIOC4kyDguK3guKLguLjguJjguKLguLINCivguJvguLTguKLguJnguLHguJnguJfguYwg4LiX4Lij4LiH4Liq4LiB4Li44LilDQor4Lib4Li04Lii4LiZ4Li44LiKIOC4hOC4suC4o+C4p+C4sOC4nuC4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4m+C4tOC4ouC4nuC4h+C4qOC5jCDguJXguLTguJPguKrguLnguKXguLLguJnguJnguJfguYwNCivguJvguLTguKLguJ7guKPguKPguJMg4LmB4Lii4LmJ4Lih4LiZ4LmJ4Lit4LiiDQor4Lib4Li04Lii4Lij4Lix4LiV4LiZ4LmMIOC4iOC4suC4leC4uOC4o+C4seC4meC4leC4muC4uOC4leC4ow0KK+C4m+C4tOC4ouC4p+C4o+C4o+C4kyDguITguLPguJ7guKLguLINCivguJvguLTguKLguKfguKPguKPguJMg4Lio4Lij4Li14LiE4LiVDQor4Lib4Li04Lii4Lin4Li44LiS4Li0IOC4h+C4suC4oeC4nuC4pQ0KK+C4m+C4tOC4ouC4sCDguIjguLLguKPguLjguKjguLjguIHguKMNCivguJvguLTguKLguLAg4LmA4LiW4Li34LmI4Lit4LiZ4LmA4Lih4Li34Lit4LiHDQor4Lib4Li04Lii4LiwIOC5gOC4m+C4quC4leC4seC4meC4ouC4tQ0KK+C4m+C4tOC4ouC4sCDguKfguIfguKjguYzguKrguKfguLHguKrguJTguLTguYwNCivguJvguLTguKLguLAg4Lit4Lix4LiK4LiK4LmA4Liq4Lin4Li04LiZDQor4Lib4Li04Lii4Liw4LiK4Liy4LiV4Li0IOC4iOC4seC4meC4l+C4o+C4seC4leC4meC5jA0KK+C4m+C4tOC4ouC4sOC4lOC4siDguKXguYnguK3guKjguLTguKPguLTguJnguLHguJnguJfguYwNCivguJvguLTguKLguLDguJnguLLguJYg4LiK4Li44LmI4Lih4Lit4Lij4LiwDQor4Lib4Li04Lii4Liw4LiZ4Li44LiKIOC4muC4uOC4jeC4o+C4seC4leC4meC5jA0KK+C4m+C4tOC4ouC4sOC4nuC4h+C4qOC5jCDguJvguLTguKLguLLguIfguKrguLgNCivguJvguLTguKLguLDguJ7guKMg4LiZ4Li04Lil4LiJ4Liy4LiiDQor4Lib4Li04Lii4Liw4Lie4Lix4LiZ4LiY4LmMIOC4quC4teC4lOC4reC4geC4muC4p+C4mg0KK+C4m+C4tOC4ouC4sOC4o+C4seC4leC4meC5jCDguJTguLPguKPguIfguITguYzguIHguLjguKUNCivguJvguLTguKLguLDguKfguJTguLUg4Lin4Li04Lij4Li04Lii4Liw4LiK4Liy4LiV4Li0DQor4Lib4Li04Lii4Liw4Lin4Lij4Lij4LiTIOC4quC4uOC4hOC4meC4mOC4quC4tOC4h+C4q+C5jA0KK+C4m+C4tOC4ouC4sOC4qOC4tOC4o+C4tCDguIfguLLguKHguJbguLTguYjguJkNCivguJvguLTguKLguLLguKDguKPguJPguYwg4LiK4Li04LiZ4Li54Lib4LiB4Liy4Lij4Lie4LiH4Lio4LmMDQor4Lib4Li04Lii4LmA4Lio4Lij4Lip4LiQ4LmMIOC4p+C4o+C4reC4suC4leC4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4m+C4teC4ouC4suC4oOC4o+C4k+C5jCDguKHguYjguKfguIfguIHguLjguKUNCivguJvguLjguJPguJPguKPguLHguJXguJnguYwg4LmC4Lie4LiY4Li04LiB4Liz4LiI4LijDQor4Lib4Li44LmI4LihIOC4oeC4suC4peC4suC4geC4uOC4pQ0KK+C5gOC4myDguJrguLjguI3guIHguK3guIcNCivguYDguJvguKPguKEg4LiI4Lix4LiZ4LiX4Lij4LiyDQor4LmA4Lib4Lij4Lih4LiB4Lih4LilIOC5gOC4geC4tOC4lOC5gOC4lOC4ig0KK+C5gOC4m+C4o+C4oeC4iOC4tOC4leC4lSDguYHguJ7guYjguIfguKrguJbguLINCivguYDguJvguKPguKHguIjguLTguJXguJXguYwg4Liq4Liy4Lij4LiY4Li04Lij4Liy4LiKDQor4LmA4Lib4Lij4Lih4LiK4Lix4LiiIOC5gOC4leC4iuC4sOC4oeC4h+C4hOC4peC4suC4oOC4tOC4p+C4seC4kuC4meC5jA0KK+C5gOC4m+C4o+C4oeC4nuC4seC4meC4mOC5jCDguIrguKHguKDguLnguKPguLHguJXguJnguYwNCivguYDguJvguKPguKHguKTguJTguLUg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4LiE4LizDQor4LmA4Lib4Lij4Lih4Lin4LiU4Li1IOC4o+C4seC4leC4meC4qOC4tOC4o+C4tOC4meC4l+C4o+C4p+C4uOC4mA0KK+C5gOC4m+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jCDguYDguJXguLTguKHguIjguKPguLHguKoNCivguYDguJvguKPguLXguKLguJog4Lia4Li44LiN4Lil4Li34LitDQor4LmA4Lib4Lil4LinIOC4reC4ouC4ueC5iOC4quC4reC4suC4lA0KK+C5gOC4m+C4peC5iOC4hyDguJnguLTguYjguKHguITguLMNCivguYDguJvguLLguKXguLTguJkg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4Lio4LiZ4Li44Liq4Lij4LiT4LmMDQor4LmA4Lib4Li14LmI4Lii4Lih4Lio4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C5gOC4m+C4teC5iuC4ouC4gSDguKXguYnguKfguJnguYDguIjguKPguLTguI0NCivguYDguJvguYnguIcg4LmB4LiL4LmI4Lit4Li34LmJ4LitDQor4LmA4Lib4LmJ4LiyIOC5guC4nuC4mOC4tOC5jOC5gOC4meC4t+C4reC4h+C4nOC4pQ0KK+C5gOC4m+C5i+C4h+C5hOC4gSDguYHguIvguYjguYDguIjguLXguYjguKINCivguYHguJvguYnguJkg4Lij4Liw4LiU4Lih4LiH4Liy4LihDQor4LmC4Lib4Lij4Lii4Lih4Liy4Lio4Lii4LmMIOC4qOC4o+C4teC4l+C4reC4h+C4geC4uOC4pQ0KK+C5guC4m+C5iuC4sOC4iuC4seC4oiDguYHguIvguYjguIjguLHguIcNCivguJzguIHguLIg4LiZ4Lij4LiZ4Li04LiV4LiK4Lix4Lii4LiB4Li44LilDQor4Lic4LiB4Liy4LiB4Lij4Lit4LiHIOC4nuC4uOC5iOC4oeC4p+C4h+C4qOC5jOC4quC4s+C5gOC4meC4teC4ouC4hw0KK+C4nOC4geC4suC4nuC4o+C4o+C4kyDguJvguLDguJXguLTguYDguKoNCivguJzguIHguLLguKHguLLguKgg4LiV4Li14Lij4LiT4LiY4Liy4LiU4LiyDQor4Lic4LiB4Liy4Lih4Liy4LioIOC4quC4tOC4l+C4mOC4tOC4nuC4pQ0KK+C4nOC4geC4suC4p+C4o+C4o+C4kyDguYDguJfguLXguKLguKHguJfguK3guIfguITguLMNCivguJzguIHguLLguYHguIHguYnguKcg4Lil4Li14LiZ4Liw4Lia4Lij4Lij4LiI4LiHDQor4Lic4LiI4LiH4Liq4Li44LiCIOC4reC4seC4h+C4m+C4o+C4sOC4l+C4teC4mw0KK+C4nOC4iOC4jSDguKvguLXguJrguYHguIHguYnguKcNCivguJzguJTguLjguIcg4LiX4Lit4LiH4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lic4LiU4Li44LiHIOC4quC4tOC4h+C4q+C5gOC4quC4meC4tQ0KK+C4nOC4lOC4uOC4h+C4qOC4seC4geC4lOC4tOC5jCDguJjguJnguLLguIHguLTguIjguYDguIjguKPguLTguI3guKrguLjguIINCivguJzguJTguLjguIfguYDguIHguLXguKLguKPguJXguLQg4LmA4Lit4Li34LmJ4Lit4Lit4Liy4Lij4Lii4Liw4Lih4LiZ4LiV4Lij4Li1DQor4Lic4LilIOC4m+C4reC4h+C4quC4uOC4gg0KK+C4nOC4peC4seC4lCDguYDguK3guLLguKzguLLguKMNCivguJzguKrguLLguKMg4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4kyDguK3guKLguLjguJjguKLguLINCivguJzguYjguK3guIcg4Lii4Li44LiX4LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lic4LmI4Lit4LiH4Lie4Lij4Lij4LiTIOC4iOC4h+C5hOC4iuC5guC4og0KK+C4nOC5iOC4reC4h+C4nuC4o+C4o+C4kyDguKDguLTguKLguYLguKLguJTguLTguKXguIHguIrguLHguKINCivguJzguYjguK3guIfguJ7guLTguKgg4Lio4Li04Lij4Li04Lie4Liy4LiZ4Li04LiKDQor4Lic4LmI4Lit4LiH4Lio4Lij4Li1IOC5gOC4iOC4ouC5gOC4quC4meC4suC4meC4meC4l+C5jA0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguJnguIHguYHguIHguYnguKcNCivguJzguYjguK3guIfguKjguKPguLUg4LmA4Lie4Lio4Lii4LiZ4Liy4Lin4Li04LiZDQor4Lic4LmI4Lit4LiH4Lio4Lij4Li1IOC4p+C4tOC5gOC4qOC4qeC4quC4uOC4gg0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguK3guLTguJnguJfguKPguKXguLLguKfguLHguJPguKLguYwNCivguJzguYjguK3guIfguYPguKog4Lie4Liy4Lir4Li44Lij4Lix4LiV4LiZ4LmMDQor4Lic4LmI4Lit4LiZIOC4reC5iOC4p+C4oeC4p+C4h+C4qeC5jA0KK+C4nOC4seC4mSDguJrguLjguI3guIrguLTguJUNCivguJzguLLguJPguLTguJUg4LiI4Lix4LiZ4LiX4Lij4LmA4LiX4LioDQor4Lic4Liy4LiUIOC4geC4s+C5gOC4q+C4meC4tOC4lOC5geC4geC5ieC4pw0KK+C4nOC4suC4meC4tOC4lSDguYDguIjguKPguLTguI3guJ7guIfguKjguYzguJ7guLHguJLguJnguLANCivguJzguLLguKrguLTguJUg4Lir4Li04Lij4Lix4LiN4LiN4LiK4Liy4LiV4Li04LiY4Liy4LiU4LiyDQor4Lic4Liy4Liq4Li44LiCIOC4nuC4o+C5ieC4reC4oeC5gOC4nuC4o+C4teC4ouC4hw0KK+C4nOC4tOC4mSDguIHguYnguK3guJnguJfguK3guIfguJTguLUNCivguJzguLTguJkg4Lio4Lij4Li14Lit4Li44LmA4LiX4LiZ4LiK4Lix4LiiDQor4Lic4Li04Lin4Lie4Lij4Lij4LiTIOC5gOC4m+C4teC4ouC5geC4geC5ieC4pw0KK+C4nOC4uOC4quC4lOC4tSDguYDguILguLXguKLguKfguJ7guLHguJnguJjguLjguYwNCivguJzguLjguKrguJTguLUg4LmA4Lia4LmH4LiN4LiI4Lih4Li04LiZ4LiX4Lij4LmMDQor4Lic4Li44Liq4LiU4Li1IOC4qOC4o+C4teC4quC4s+C4o+C4suC4jQ0KK+C4nOC4ueC4geC4iOC4tOC4lSDguK3guLTguJnguJfguKfguIfguKjguYwNCivguYDguJzguIrguLTguI0g4Lii4Lit4LiU4Lii4Li04LmI4LiHDQor4LmA4Lic4LiU4Li14Lii4LiHIOC4iuC4seC4ouC4reC4seC4qOC4p+C4o+C4seC4geC4qeC5jA0KK+C5gOC4nOC4lOC5h+C4iCDguJzguLnguYnguJ7guLHguJLguJnguYwNCivguYDguJzguJTguYfguIjguIrguLHguKIg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4Lic4Li34Lit4LiUIOC4l+C4reC4h+C4l+C4tOC4nuC4ouC5jA0KK+C5gOC4nOC5iOC4suC4nuC4h+C4qeC5jCDguYPguIjguYDguIjguJXguJnguIHguLjguKjguKUNCivguYHguJzguYjguKcg4LmA4Lie4LmH4LiH4LiK4Liw4Lit4Li44LmI4LihDQor4LmE4Lic4LmI4LmA4LiX4LieIOC4geC4tOC4oeC5gOC4ruC4teC4ouC4sA0KK+C4neC5ieC4suC4oiDguKjguLTguKPguLTguJ7guLHguJnguJjguYwNCivguJ7guIfguJ7guIjguJnguYwg4LmA4Lil4Li04Lio4LmA4LiI4Li14Lii4Lih4Lij4Lix4LiV4LiZ4LmMDQor4Lie4LiH4Lio4LiB4LijIOC5gOC4quC5h+C4h+C4quC4s+C4o+C4suC4jQ0KK+C4nuC4h+C4qOC5jOC4iuC4suC4oiDguYDguIHguLXguKLguKPguJXguLTguIHguLTguJXguJXguLTguJ7guIfguKnguYwNCivguJ7guIfguKjguJjguKMg4LmA4Lil4Li04Lio4Lig4Li54LiV4Lij4Liy4LiKDQor4Lie4LiH4Lio4LmM4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4nuC4h+C4qeC5jOC4quC4tOC4mQ0KK+C4nuC4h+C4qOC5jOC4nuC4seC4meC4mOC4uOC5jCDguYHguJ7guJfguKLguYzguJ7guIfguKjguYwNCivguJ7guIfguKjguYzguKPguLHguJXguJnguYwg4Lij4Lix4LiV4LiZ4Lig4Liy4LiB4LijDQor4Lie4LiH4Lio4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4nuC4h+C4qOC5jOC4qOC4seC4geC4lOC4tOC5jCDguKfguLHguJLguJnguLLguKjguKPguKHguKjguLTguKPguLQNCivguJ7guIfguKjguYzguKrguKfguLHguKrguJTguLTguYwg4Lir4Lih4Li54LmI4Lie4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4LiH4Lio4LiyIOC5geC4quC4meC5g+C4iOC4h+C4suC4oQ0KK+C4nuC4h+C4qOC5jOC5gOC4l+C4niDguK3guLHguJnguJXguLDguKPguLTguIHguLLguJnguJnguJfguYwNCivguJ7guIfguKnguIHguKMg4Lie4Lix4LiK4Lij4LmE4Lie4Lio4Liy4LilDQor4Lie4LiH4Lip4LmM4LiK4Lix4LiiIOC5gOC4ieC4peC4tOC4oeC4geC4peC4tOC5iOC4mQ0KK+C4nuC4h+C4qeC5jOC4iuC4suC4leC4tCDguIHguK3guKvguLLguI0NCivguJ7guIfguKnguYzguJjguKMg4Liq4Li44LiU4Lii4Lit4LiU4Lia4Lij4Lij4Lie4LiVDQor4Lie4LiH4Lip4LmM4Lie4Lix4LiS4LiZ4LmMIOC4mOC4teC4o+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4h+C4geC4uOC4pQ0KK+C4nuC4h+C4qeC5jOC4nuC4seC4meC4mOC5jCDguJ7guLHguJnguJjguLjguYzguYDguKrguLfguK0NCivguJ7guIfguKnguYzguKLguLjguJfguJgg4LiTIOC4nuC4seC4l+C4peC4uOC4hw0KK+C4nuC4h+C4qeC5jOC4qOC4o+C4tSDguYHguIvguYjguKXguLTguYnguKENCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LiE4Liy4Lij4Lin4Liq4Li04Lij4Li04LiY4Lij4Lij4LihDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4iuC4oeC4oOC4ueC4reC4tOC4meC4leC4sg0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguJTguLPguKPguIfguIrguLHguKLguJnguLTguKHguLTguJXguKMNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LiY4Li14Lij4Lig4Liy4Lie4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4seC4jeC4jeC4iOC5gOC4ow0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguJ7guLTguYjguKHguJfguKfguLXguJzguKUNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4Lij4Lit4Lia4Lij4Li54LmJDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qOC5jOC4quC4uOC4o+C4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguKjguKPguLXguKrguKHguKjguLHguIHguJTguLTguYwNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4Liq4Li04LiZ4Lit4Lin4LiiDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4q+C4peC5iOC4suC5gOC4peC4tOC4qOC4iuC4seC4og0KK+C4nuC4h+C4qeC5jOC4qOC4suC4meC4leC5jCDguITguYnguLPguIrguLkNCivguJ7guIfguKnguYzguKrguKfguLHguKrguJTguLTguYwg4LiY4LiH4Lio4Lij4Li1DQor4Lie4LiH4Lip4LmM4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4p+C4iuC4quC4tOC4l+C4mOC4tOC5jA0KK+C4nuC4h+C4qeC5jOC5gOC4geC4teC4ouC4o+C4leC4tCDguIrguKXguKfguLTguYTguKUNCivguJ7guIfguKnguYzguYDguJfguJ4g4LiX4Lix4Lie4Lig4Lih4Liy4LiZDQor4Lie4LiH4Lip4LmM4LmA4LiX4LieIOC4quC4tOC4leC4p+C4suC4l+C4tOC4mQ0KK+C4nuC4h+C4qeC5jCDguIHguLTguJXguJXguLTguKHguYLguJnguKPguKENCivguJ7guIfguKnguYwg4Lit4Lix4LiE4Lij4LiW4LiZ4Lit4LihDQor4Lie4LiI4LiZ4LmM4LiT4Lij4LiH4LiE4LmMIOC4qOC4o+C4teC4l+C4seC4qOC4meC4teC4ouC5jA0KK+C4nuC4iOC4meC4siDguYTguIHguKPguJvguKPguLDguYDguKrguKPguLTguJDguYLguIrguIQNCivguJ7guIjguJnguLIg4Lib4Li04Lii4Liw4Lin4Li04Liq4Li44LiX4LiY4Li04LiB4Li44LilDQor4Lie4LiI4LiZ4LiyIOC4qOC4tOC4peC4sg0KK+C4nuC4iOC4meC4suC4liDguKjguLjguKDguYDguKjguKPguKnguJDguYwNCivguJ7guIjguJnguLLguKPguJYg4LmA4Lit4LiB4LiN4Liy4LiV4Li0DQor4Lie4LiI4LiZ4Li14Lii4LmMIOC4hOC4uOC4k+C4m+C4geC4o+C4k+C5jOC4iuC4seC4og0KK+C4nuC4iOC4meC4teC4ouC5jCDguJvguLLguJnguKDguLHguIHguJTguLUNCivguJ7guIjguJnguLXguKLguYwg4Lio4Li04Lij4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lie4LiI4LiZ4LmMIOC5gOC4geC4tOC4lOC4nOC4pQ0KK+C4nuC4iOC4meC5jCDguJjguLXguKPguITguLjguJvguJXguYwNCivguJ7guIjguJnguYwg4Lih4Lix4LmI4LiZ4LiB4Lix4LiZ4LiZ4Liy4LiZDQor4Lie4LiI4LiZ4LmMIOC5geC4quC4h+C4meC4tOC4pQ0KK+C4nuC4iOC4oeC4suC4mSDguKDguLnguYjguJvguKPguLDguJTguLTguKnguJDguYwNCivguJ7guIjguLXguKPguLHguJXguJnguYwg4Lij4Lit4LiU4Lij4Lix4LiV4LiZ4Liy4LiX4Li54LilDQor4Lie4LiU4LiyIOC5gOC4iOC4o+C4tOC4jeC4p+C4seC4kuC4meC4suC4meC4meC4l+C5jA0KK+C4nuC4meC4oSDguIrguYnguLLguIfguKHguJPguLUNCivguJ7guJnguKEg4Lib4Liy4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Lie4LiZ4LihIOC5gOC4o+C4t+C4reC4h+C4qOC4tOC4peC4m+C5jA0KK+C4nuC4meC4oSDguKvguKfguLHguIfguJTguLUNCivguJ7guJnguKHguJ7guKMg4LiZ4Li04LmI4Lih4Lit4LiH4LiE4LizDQor4Lie4LiZ4Lih4Lin4Lix4Lil4Lii4LmMIOC4geC4suC4jeC4iOC4meC4meC4seC4oeC4nuC4sA0KK+C4nuC4meC4rSDguJXguLHguJnguJjguLTguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJ7guJnguK3guIjguLHguJnguJfguKPguYwg4Lih4Liy4Lil4Liy4LiB4Li44LilIOC4kyDguK3guKLguLjguJjguKLguLINCivguJ7guJnguLHguKog4LiJ4Liy4Lii4Liq4Li14Lio4Li04Lij4Li0DQor4Lie4LiZ4Lix4LiqIOC4quC4teC4oeC4seC4meC4leC4ow0KK+C4nuC4meC4suC4meC4uOC4o+C4seC4geC4qeC4siDguJ7guJnguLLguJnguLjguKPguLHguIHguKnguLINCivguJ7guJnguLLguKfguLHguKXguKLguYwg4LmB4LiE4Lil4LmJ4Lin4LmA4LiE4Lij4Li34LitDQor4Lie4LiZ4Li04LiU4LiyIOC4hOC4suC4luC4sg0KK+C4nuC4meC4tOC4lOC4siDguYHguIvguYjguKXguLXguYkNCivguJ7guJnguLTguJTguLIg4LiZ4Liy4LiE4Lit4LmI4Lit4LiZDQor4Lie4LiZ4Li04LiU4LiyIOC5gOC4nuC4hOC4ouC4suC4h+C4geC4ueC4ow0KK+C4nuC4meC4tOC4lOC4siDguKfguIfguKjguYzguJ7guKPguYnguK3guKHguYDguIjguKPguLTguI0NCivguJ7guJnguLTguJTguLIg4Liq4Li44LiC4LmC4Lie4LiY4Li04LmM4LmA4Lie4LmH4LiK4LijDQor4Lie4LiZ4Li04LiVIOC4l+C4reC4h+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4nuC4meC4tOC4meC4mOC4siDguIjguYnguK3guKLguIrguLkNCivguJ7guKLguIfguITguYwg4LiI4Lix4LiZ4LiX4Lij4Lix4LiH4Lip4Li1DQor4Lie4Lii4LiH4LiE4LmMIOC4muC4uOC4jeC4peC4t+C4rQ0KK+C4nuC4ouC4h+C4hOC5jCDguKrguLLguKPguIjguLHguJnguJfguKPguYwNCivguJ7guKLguJnguJXguYwg4LiE4Li44LmJ4Lih4Lij4Liz4LmE4LieDQor4Lie4Lii4LiZ4LiV4LmMIOC4nuC4uOC4leC4ouC4muC4uOC4leC4ow0KK+C4nuC4ouC4meC4leC5jCDguK3guLjguJfguKLguLLguJnguLDguIHguLANCivguJ7guKLguK3guKEg4LiI4Lix4LmI4LiZ4Lit4Li44LmE4LijDQor4Lie4Lii4Lit4LihIOC4l+C4p+C4teC4hOC4ueC4kw0KK+C4nuC4ouC4reC4oSDguJvguLnguYjguKvguLTguJkNCivguJ7guKLguK3guKEg4Lij4Lin4Lih4Lio4Li04Lil4Lib4LmMDQor4Lie4Lii4Lit4LihIOC4quC4meC4mOC4tOC4mOC4o+C4o+C4oQ0KK+C4nuC4ouC4reC4oSDguK3guLTguJnguJfguKPguYzguIHguLTguYjguIcNCivguJ7guKLguLHguJ4g4LiZ4Liy4LiE4LiX4Lix4LmI4LiHDQor4Lie4Lii4Li44LiHIOC4iOC4h+C4m+C4tOC4ouC4sOC5guC4iuC4leC4tA0KK+C4nuC4ouC4uOC4hyDguJfguLHguJrguJfguK3guIcNCivguJ7guKLguLjguIcg4Lif4Lix4LiB4LmA4Lie4LiK4LijDQor4Lie4Lii4Li44LiHIOC4quC4suC4ouC4seC4k+C4q+C4p+C4tOC4geC4quC4tOC4lQ0KK+C4nuC4ouC4uOC4h+C4qOC4o+C4tSDguIjguLHguJnguJfguKPguYzguKjguKPguLUNCivguJ7guKLguLjguIfguKjguLHguIHguJTguLTguYwg4Liq4Li44LiC4Liq4LiW4Liy4LiZDQor4Lie4Lii4Li54LijIOC4o+C4seC4geC4guC4suC4pw0KK+C4nuC4oyDguYTguJXguKPguKPguLHguJXguJnguKfguIfguKjguYwNCivguJ7guKMg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lie4LijIOC4reC4seC4qOC4p+C4nuC4tOC4l+C4ouC4sg0KK+C4nuC4o+C4iOC4seC4meC4l+C4o+C5jCDguIrguLHguKLguYDguJjguLXguKLguKPguKrguLjguJfguJjguLLguJnguLHguJkNCivguJ7guKPguIjguLTguJXguJXguYwg4Lie4Lij4Lir4Lih4Lia4Lij4Lij4LiU4Liy4LmC4LiK4LiEDQor4Lie4Lij4LiK4LiZ4LiBIOC4p+C4o+C4tOC4meC4l+C4o+C5gOC4p+C4ig0KK+C4nuC4o+C4iuC4seC4oiDguIHguLTguIjguKfguKPguKXguLHguIHguKnguJPguYwNCivguJ7guKPguIrguLHguKIg4LmA4LiC4Lih4LmC4LiK4LiE4LiZ4LiX4Li1DQor4Lie4Lij4LiK4Lix4LiiIOC4iOC4seC4meC4l+C4muC4suC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguYDguIjguLXguYjguKLguKrguK3guLLguJQNCivguJ7guKPguIrguLHguKIg4LmA4LiK4Li34LmI4Lit4LiH4Lir4Lil4Li04LinDQor4Lie4Lij4LiK4Lix4LiiIOC5geC4i+C5iOC5gOC4iOC4teC5iOC4og0KK+C4nuC4o+C4iuC4seC4oiDguYDguJTguIrguLLguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJ7guKPguIrguLHguKIg4LmA4LiV4LiK4Liw4LiB4LiZ4LiB4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Lij4LiK4Lix4LiiIOC4l+C4uOC4leC4tOC4ouC4suC4oOC4o+C4k+C5jA0KK+C4nuC4o+C4iuC4seC4oiDguJnguLHguJnguJfguKfguLTguKHguKUNCivguJ7guKPguIrguLHguKIg4Lib4Lij4Liw4Lig4Liy4LiB4Lij4Lin4Lij4LiB4Li44LilDQor4Lie4Lij4LiK4Lix4LiiIOC4nuC4o+C4nuC4seC4kuC4meC4suC4iOC4tOC4o+C4nuC4seC4meC4mOC4tA0KK+C4nuC4o+C4iuC4seC4oiDguJ7guLTguKPguLTguKLguKfguLTguJfguYLguKLguKDguLLguKoNCivguJ7guKPguIrguLHguKIg4Lih4LiH4LiE4Lil4LiV4Lij4Li14Lih4Liy4LioDQor4Lie4Lij4LiK4Lix4LiiIOC4o+C4seC4leC4meC5guC4iuC4leC4tOC4nuC4h+C4qOC5jA0KK+C4nuC4o+C4iuC4seC4oiDguKXguLXguYnguJbguLLguKfguKMNCivguJ7guKPguIrguLHguKIg4Lin4LiZ4Liy4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC4p+C4teC4o+C4sOC4geC4tOC4leC4leC4tA0KK+C4nuC4o+C4iuC4seC4oiDguKjguLTguKXguLLguYLguKDguIrguJnguYwNCivguJ7guKPguIrguLHguKIg4Liq4Li04LiH4Lir4LmM4LiB4Li44LilDQor4Lie4Lij4LiK4Lix4LiiIOC4quC4uOC4o+C4teC4ouC5jOC4geC4oeC4peC4iuC4seC4og0KK+C4nuC4o+C4iuC4seC4oiDguYDguKvguKXguLfguK3guIfguIjguLTguJXguKfguLHguJLguJnguLINCivguJ7guKPguIrguLHguKIg4Lit4Lix4LiH4Liq4Li44Lij4Lix4LiV4LiZ4LmM4LmC4LiB4Lih4LilDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4reC4teC5iOC4ouC4oeC4quC4uOC4guC4oeC4h+C4hOC4pQ0KK+C4nuC4o+C4k+C4o+C4h+C4hOC5jCDguKPguLDguJTguKHguJfguK3guIcNCivguJ7guKPguJfguKfguLUg4Lit4LiY4Li04Lio4Li04Lin4LiB4Li44LilDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4geC4suC4jeC4iOC4meC4quC4uOC4meC4l+C4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguILguLHguJnguJfguK3guIcNCivguJ7guKPguJfguLTguJ7guKLguYwg4LiI4Lit4LiZ4LmB4LiI4LmJ4LiHDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iOC4iuC4seC4ouC4iuC4meC4sA0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguIrguLTguJnguKPguLHguJXguJnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC5gOC4lOC4iuC4sOC4l+C4seC4qOC4meC5jA0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYDguJXguKHguLXguKPguLHguIHguKnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LiX4Li04Lie4Lii4LmA4Liq4LihDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4meC4suC4hOC4muC4uOC4leC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguJrguLjguJPguYLguKLguJfguKLguLLguJkNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lic4Lil4Lif4Lix4LiB4LmB4Lif4LiHDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4nuC4tOC4k+C4nuC4tOC4nuC4seC4k+C4meC5jA0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYTguJ7guJrguLnguKXguKLguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmM4Liq4LiW4Liy4Lie4LijDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4o+C4seC4leC4meC4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKXguLTguILguLTguJXguIrguLXguKfguLANCivguJ7guKPguJfguLTguJ7guKLguYwg4Lin4LiK4Li04Lij4Liy4LiZ4Li44LiB4Li54LilDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4p+C4tOC5gOC4qOC4qeC4nuC4h+C4qeC5jOC4nuC4seC4meC4mOC5jA0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKjguLTguKPguLTguYDguK3guLXguYjguKLguKENCivguJ7guKPguJfguLTguJ7guKLguYwg4Liq4Liy4Lij4LiB4Liy4LijDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4quC4uOC4o+C4iuC4seC4ouC4quC4leC4tOC4geC4uOC4pQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKvguK3guKHguKXguK3guJQNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lit4Lix4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lie4LijDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4ruC4p+C4muC4lOC4tQ0KK+C4nuC4o+C4l+C4tOC4nuC4siDguJ7guJPguLTguIrguKLguLLguIfguIHguLnguKMNCivguJ7guKPguJfguLTguKDguLIg4LiX4Lit4LiH4LmA4LiC4Li14Lii4LinDQor4Lie4Lij4LiY4Li04LiU4LiyIOC4hOC4h+C4qOC4tOC4peC4m+C5jA0KK+C4nuC4o+C4meC4oOC4siDguJvguLTguYjguJnguKPguLHguJXguJnguYwNCivguJ7guKPguJnguLTguJTguLIg4Liq4Li04LiX4LiY4Li04Lie4Lij4Lij4Lix4LiV4LiZ4Lih4LiT4Li1DQor4Lie4Lij4LiZ4Li44LiKIOC4hOC4t+C4meC4hOC4h+C4lOC4tQ0KK+C4nuC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKrguLjguKfguKPguKPguJjguJnguLDguJ7guLLguJPguLTguIrguKLguYwNCivguJ7guKPguJ7guIjguJnguYwg4Lib4LmI4Liy4LiZ4LmB4LiB4LmJ4LinDQor4Lie4Lij4Lie4Lii4LiHIOC4hOC4ueC4q+C5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguIjguLTguIrguIrguLjguIHguKPguIjguLTguKPguKDguLHguIQNCivguJ7guKPguJ7guKPguKPguJMg4LiQ4Liy4LiZ4Liw4LmA4LiI4Lij4Li04LiN4LiB4Li04LiIDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC4mOC4teC4o+C4sOC4iuC4suC4leC4tA0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguJ7guLHguIrguKPguKfguLHguJLguJnguJ7guIfguKjguYwNCivguJ7guKPguJ7guKPguKPguJMg4LmA4Lii4LmH4LiZ4Lil4Liz4Lii4Lit4LiHDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC4p+C4tOC4iuC4jeC4suC5gOC4lOC4iuC4sA0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguKrguLjguJnguLLguJ7guLHguJnguJjguYwNCivguJ7guKPguJ7guKPguKPguJPguYwg4LmE4LiX4Lii4LmA4LiI4Lij4Li04LiNDQor4Lie4Lij4Lie4Lix4LiZ4LiY4Li44LmMIOC4m+C4tOC5iOC4meC5guC4oeC4o+C4sg0KK+C4nuC4o+C4nuC4tOC4nuC4seC4kuC4meC5jCDguKrguKfguLHguKrguJTguLTguYzguYDguKfguJfguLTguJkNCivguJ7guKPguJ7guLTguKHguKUg4LiI4Liy4LiU4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lie4Lij4Lie4Li04Lih4LilIOC5geC4i+C5iOC5gOC4muC5iQ0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguJjguLjguKPguJ7guLHguJnguJjguYwNCivguJ7guKPguJ7guLTguKHguKUg4Lie4Lix4LiS4LiZ4Liy4Lii4Li4DQor4Lie4Lij4Lie4Li04Lih4LilIOC4peC4reC4reC4h+C4quC4uOC4l+C4mOC4tOC5jA0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguKjguLTguKXguJvguKrguLfguJrguYDguIrguLfguYnguK0NCivguJ7guKPguJ7guLTguKHguKUg4LmD4Lir4Lih4LmI4LiZ4Lin4LilDQor4Lie4Lij4Lie4Li04Lil4Liy4LioIOC4qOC4uOC4oOC4meC4suC4meC4meC4l+C4iuC4seC4og0KK+C4nuC4o+C4nuC4tOC4qCDguK3guLLguKDguKPguJPguYzguKjguLTguKPguLTguJ7guIfguKnguYwNCivguJ7guKPguJ7guLnguKUg4Lir4Lil4Li44Lii4LmA4LiI4Lij4Li04LiNDQor4Lie4Lij4Lih4LiT4Li1IOC5hOC4iuC4ouC4muC4uOC4leC4ow0KK+C4nuC4o+C4o+C4k+C4h+C4suC4oSDguIHguLLguJ7guKLguYzguYHguIHguYnguKcNCivguJ7guKPguKPguJPguJfguLTguJ7guKLguYwg4LiH4Liy4Lih4Lil4Liw4LmA4Lih4Li14Lii4LiUDQor4Lie4Lij4Lij4LiT4LiX4Li04Lie4Lii4LmMIOC5hOC4p+C4l+C4ouC4suC4meC4meC4l+C5jA0KK+C4nuC4o+C4o+C4k+C4l+C4tOC4nuC4siDguKHguKPguIHguJXguKrguLTguJnguJjguLjguYwNCivguJ7guKPguKPguJPguJnguKPguLIg4Lib4Liy4LiZ4LiT4Lij4LiH4LiE4LmMDQor4Lie4Lij4Lij4LiT4LiZ4Li04Lig4LiyIOC4reC4uOC4lOC4oeC4iOC4o+C4o+C4ouC4sg0KK+C4nuC4o+C4o+C4k+C4nuC4tOC4oeC4pSDguYHguIvguYjguK7guLHguYjguJkNCivguJ7guKPguKPguJPguKLguLjguJ7guLIg4Liu4LmI4Lit4Liq4LiB4Li44LilDQor4Lie4Lij4Lij4LiT4Lij4Liz4LmE4LieIOC4lOC4p+C4h+C4lOC4tQ0KK+C4nuC4o+C4o+C4k+C4p+C4lOC4tSDguK3guLHguKHguJ7guLjguIoNCivguJ7guKPguKPguJPguK3guKMg4LiJ4Lix4LiZ4LiX4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Lij4Lij4LiT4Li04LiB4LiyIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4m+C5ieC4sg0KK+C4nuC4o+C4o+C4k+C4tOC4oOC4siDguKrguLTguIfguKvguYzguYLguJXguYDguJ7guYfguIrguKMNCivguJ7guKPguKPguJPguLUg4LmA4LiB4Li04LiU4LmA4Lib4Li14LmI4Lii4LihDQor4Lie4Lij4Lij4LiT4Li1IOC5guC4hOC4leC4o+C4seC4geC4qeC4sg0KK+C4nuC4o+C4o+C4k+C4tSDguIjguLTguKPguKfguKjguLTguJkNCivguJ7guKPguKPguJPguLUg4LiK4Li34LmI4LiZ4Lit4Li44LmE4LiX4LiiDQor4Lie4Lij4Lij4LiT4Li1IOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4nuC4o+C4o+C4k+C4tSDguJXguLLguJnguLDguJvguKPguLDguJfguLXguJvguIHguLjguKUNCivguJ7guKPguKPguJPguLUg4LiY4LiZ4Lig4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lij4Lij4LiT4Li1IOC4muC4seC4p+C4iuC4uOC5iOC4oQ0KK+C4nuC4o+C4o+C4k+C4tSDguJvguLnguKPguJPguLLguKHguKPguLANCivguJ7guKPguKPguJPguLUg4Lie4Li04Lih4Lil4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lie4Lij4Lij4LiT4Li1IOC4oeC4k+C4teC4iuC4suC4leC4tA0KK+C4nuC4o+C4o+C4k+C4tSDguKPguK3guIfguYLguKrguKDguLINCivguJ7guKPguKPguJPguLUg4Lil4Li04LmJ4Lih4Liq4Li44LiY4Liy4LmC4Lig4LiK4LiZ4LmMDQor4Lie4Lij4Lij4LiT4Li1IOC4p+C4seC4kuC4meC4suC4ouC4suC4geC4ow0KK+C4nuC4o+C4o+C4k+C4tSDguKjguKPguLXguK3guJnguLjguIrguLLguJUNCivguJ7guKPguKPguJPguLUg4Liq4Lix4LiZ4Lib4LmI4Liy4LmB4LiB4LmJ4LinDQor4Lie4Lij4Lij4LiT4Li1IOC5gOC4quC4oeC4suC4l+C4reC4hw0KK+C4nuC4o+C4o+C4k+C4tSDguK3guKDguLTguIrguLHguKLguJfguKfguLXguKrguLTguJkNCivguJ7guKPguKPguJPguLUg4LmA4Lit4LiB4Liq4Li04LiZ4LmA4Liq4Lij4Li04LihDQor4Lie4Lij4Lij4LiT4LmD4LiIIOC4iOC4seC4meC4l+C4o+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4nuC4o+C4o+C4qeC4nuC4pSDguJXguLHguYnguIfguKLguLDguKTguJfguJjguLTguYwNCivguJ7guKPguKPguLHguIrguJnguLUg4LiI4LmJ4Lit4Lii4Lie4Li44LiX4LiYDQor4Lie4Lij4Lik4LiU4Li1IOC4p+C4h+C4qOC5jOC4o+C4sOC4peC4tuC4gQ0KK+C4nuC4o+C4p+C4suC4o+C4seC4leC4meC5jCDguKrguIHguLjguKXguYLguIrguJXguLTguJ7guLLguJPguLTguIrguKLguYwNCivguJ7guKPguKfguLTguYTguKUg4LmA4LiI4Lij4Li04LiN4LiK4Lix4Lii4LmA4Lie4LiK4LijDQor4Lie4Lij4Lio4Lij4Li1IOC4iuC4peC4suC4ouC4meC4meC4suC4p+C4tOC4mQ0KK+C4nuC4o+C4qOC4o+C4tSDguJ7guLTguKHguJ7guIHguKPguJPguYwNCivguJ7guKPguKjguKPguLUg4LmB4Liq4LiH4LiJ4Lin4Li1DQor4Lie4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4s+C4m+C4suC4l+C4reC4hw0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguJfguLHguJ7guKrguLTguJfguJjguLTguYwNCivguJ7guKPguKjguLHguIHguJTguLTguYwg4Lie4Li04LiX4Lix4LiB4Lip4LmM4LiZ4Lij4Liy4LiY4Lij4Lij4LihDQor4Lie4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4tOC4iOC4tOC4leC4o+C5guC4quC4oOC4kw0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguYjguLLguJXguKPguIfguIjguKPguLTguIcNCivguJ7guKPguKjguLTguKPguLQg4Lic4Liy4Liq4Li44LiC4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lij4Lio4Li44Lil4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4qOC4tOC4o+C4tOC4qOC4o+C4tQ0KK+C4nuC4o+C4quC4p+C4o+C4o+C4hOC5jCDguYHguIvguYjguYDguK7guYnguIcNCivguJ7guKPguKrguKfguKPguKPguITguYwg4Lio4Lix4LiB4LiU4Li04LmM4LiY4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4Lie4Lij4Liq4Li04LiX4LiY4Li04LmMIOC4reC4suC4qOC4tOC4o+C4nuC4h+C4qOC5jOC4nuC4tOC4qOC4tOC4qeC4kOC5jA0KK+C4nuC4o+C4quC4uOC4giDguKjguLTguKPguLTguKfguIfguKjguYwNCivguJ7guKPguKrguLjguKPguLXguKLguYwg4LmA4Lie4Li04LiB4LiI4LijDQor4Lie4Lij4Lir4Lih4Lie4Li04LioIOC4leC4seC5ieC4h+C5gOC4peC4tOC4qOC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4nuC4o+C4reC4s+C4nuC4seC4mSDguIrguKfguKXguLTguJXguJnguLTguJjguLTguIHguLjguKUNCivguJ7guKPguYnguK3guKEg4Lit4Li04LiZ4LiX4Lij4LmM4LmC4LiVDQor4Lie4Lij4LmJ4Lit4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4kyDguKrguIfguILguKXguLINCivguJ7guKPguLTguYnguIcg4LmA4LiW4Liy4Lin4LmM4LmA4Lie4LmH4LiHDQor4Lie4Lij4Li04LmJ4Lih4LmA4Lie4Lij4LiyIOC5guC4meC5ieC4leC4qOC4tOC4o+C4tA0KK+C4nuC4o+C5gOC4l+C4niDguIHguYjguK3guYDguKXguLTguKjguKPguLHguKjguKHguLUNCivguJ7guKPguYDguJfguJ4g4LiJ4Lix4LiV4Lij4Lio4Li04Lil4Lib4LmM4LiK4Lix4LiiDQor4Lie4Lij4LmA4LiX4LieIOC4leC4tOC4h+C4nuC4tOC4l+C4seC4geC4qeC5jOC4quC4geC4uOC4pQ0KK+C4nuC4o+C5gOC4l+C4niDguJvguKPguLLguIfguITguYzguJnguKfguKPguLHguJXguJnguYwNCivguJ7guKPguYDguJfguJ4g4Lih4Lir4Lix4LiY4LiZ4Liq4LiB4Li44LilDQor4Lie4Lij4LmA4LiX4LieIOC4p+C4o+C4geC4uOC4peC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4nuC4o+C5gOC4l+C4niDguKrguLjguJfguJjguLTguJ7guLTguJ7guLHguJLguJnguYzguJ7guIfguKjguYwNCivguJ7guKPguYDguJnguJXguKMg4LmB4Lii4LmJ4Lih4LiH4Liy4Lih4LmA4Lir4Lil4Li34LitDQor4Lie4Lij4LmA4Lie4LmH4LiNIOC4iuC4s+C4meC4suC4jeC4geC4tOC4iOC4p+C4meC4tOC4ig0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguJfguLHguJrguJnguYnguK3guKINCivguJ7guKPguYDguJ7guYfguI0g4Lih4Lir4Liy4LiE4Li44LiT4LmC4LiK4LiV4Li0DQor4Lie4Lij4LmA4Lie4LmH4LiNIOC4qOC4teC4leC4sOC4iOC4tOC4leC4leC5jA0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguK3guLTguIfguK3guJnguLjguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguJ7guKPguYDguKXguLTguKgg4Lij4Lix4LiB4Liq4Li04LiQDQor4Lie4Lij4LmD4LiIIOC4reC4h+C4qOC5jOC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4nuC4pOC4kuC4tOC4p+C4o+C4o+C4kyDguKrguKHguJrguLjguI0NCivguJ7guKUg4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LmC4Lie4LiY4Li04LmMDQor4Lie4LilIOC4nuC4peC4o+C4seC4leC4meC5jA0KK+C4nuC4pSDguK3guLLguIrguLXguKfguLANCivguJ7guKXguIrguLHguKIg4Liq4LmJ4Lih4LmA4LiC4Li14Lii4Lin4Lir4Lin4Liy4LiZDQor4Lie4Lil4Lih4Li04LiV4LijIOC4nuC4ueC4peC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4nuC4peC4qOC4o+C4tSDguJnguLTguKPguLHguJnguJTguKMNCivguJ7guKXguKrguLTguJnguJjguLjguYwg4LiC4Lil4Li04Lia4LmE4Lir4Lih4LiX4Lit4LiHDQor4Lie4Lil4Lit4Lii4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4iuC4suC4leC4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4nuC4peC4suC4geC4oyDguKvguYjguKfguIfguIHguKXguIjguLHguIHguKPguYwNCivguJ7guKXguYDguJTguIog4Lin4Lij4LiJ4Lix4LiV4LijDQor4Lie4Lin4LiHIOC4m+C4sOC4geC4peC4suC4hw0KK+C4nuC4p+C4h+C4iuC4oeC4meC4suC4liDguIjguKPguLTguKLguLDguIjguLTguJnguJTguLINCivguJ7guKfguIfguJfguK3guIcg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmA4LiI4Lij4Li04LiNDQor4Lie4Lin4LiH4LiX4Lit4LiHIOC4quC4o+C4sOC4quC4oQ0KK+C4nuC4p+C4h+C4l+C4tOC4nuC4ouC5jCDguKHguLXguKrguLjguIINCivguJ7guKfguIfguJzguIHguLIg4LiE4LiH4Lit4Li44LiX4Lix4Lii4LiB4Li44LilDQor4Lie4Lin4LiH4Lie4Lii4Lit4LihIOC4h+C4suC4oeC4peC4seC4geC4qeC4k+C5jA0KK+C4nuC4p+C4h+C4nuC4seC4meC4mOC5jCDguIHguKTguKnguJPguJjguKPguJPguLTguKgNCivguJ7guKfguIfguKPguLHguJXguJnguYwg4LiW4Liy4Lin4Lij4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lin4LiH4Lin4Li04LmE4LilIOC4iOC4seC4meC4l+C4p+C4h+C4qOC5jA0KK+C4nuC4p+C4h+C5gOC4nuC4iuC4oyDguIrguLHguKLguIHguLjguKUNCivguJ7guKfguIfguYDguJ7guIrguKMg4Lit4Li04LiZ4LiV4LmK4Liw4Lin4LiH4LiE4LmMDQor4Lie4Lin4LiH4LmA4Lie4LmH4LiNIOC4iOC4seC5iOC4meC5gOC4nuC5h+C4iuC4ow0KK+C4nuC4p+C4h+C5gOC4nuC5h+C4jSDguKfguLTguJrguLnguKXguKLguYzguKrguKfguLHguKrguJTguLTguYwNCivguJ7guKfguIfguYHguIHguYnguKcg4Lie4Li04Lih4Lie4Liq4Li44LiVDQor4Lie4Liq4Li04Lip4LiQ4LmMIOC4leC4uOC4o+C4h+C4hOC5jOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4nuC4reC4lOC4tSDguIrguLHguKLguYDguKfguKzguLgNCivguJ7guK3guKUg4Lij4Li54LiU4Lit4Lil4LmM4LifDQor4Lie4Liw4LiI4Li44LiT4LiT4LmMIOC4leC4suC4oeC4m+C4o+C4sOC4l+C4teC4mw0KK+C4nuC4sOC5gOC4ouC4suC4p+C5jCDguYLguInguKHguIfguLLguKENCivguJ7guLDguYDguKLguLLguKfguYwg4Lih4Liy4Lil4Liy4LmA4Lin4LiKDQor4Lie4Liw4LmA4Lii4Li14LiiIOC5geC4iOC5iOC4oeC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4nuC4seC4geC4leC4o+C5jOC4qOC4tOC4o+C4tCDguIrguLnguKfguLLguJnguJnguJfguYwNCivguJ7guLHguIrguJPguLUg4LiK4Lix4LmJ4LiZ4Lie4Lij4Lig4Lix4LiB4LiU4Li1DQor4Lie4Lix4LiK4LiZ4Li1IOC4hOC4uOC4k+C5geC4ng0KK+C4nuC4seC4iuC4meC4tSDguJnguLLguJbguJvguKPguLDguIrguLINCivguJ7guLHguIrguJnguLUg4Lin4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Lie4Lix4LiK4LiZ4Li14Lii4LmMIOC4muC4uOC4jeC4geC4o+C4k+C5jA0KK+C4nuC4seC4iuC4o+C4iuC4seC4oiDguIHguLjguKXguKvguK3guKHguYDguJnguLXguKLguKENCivguJ7guLHguIrguKPguLHguJXguJnguYwg4LmB4LiL4LmI4LmC4Lir4Lil4LmIDQor4Lie4Lix4LiK4Lij4LiyIOC4iOC4tOC4leC4leC4oOC4seC4l+C4o+C5guC4o+C4iOC4meC5jA0KK+C4nuC4seC4iuC4o+C4siDguYHguJXguIfguJnguLLguIQNCivguJ7guLHguIrguKPguLIg4Lib4Liy4LiZ4LmA4Liq4Lih4Lio4Lij4Li1DQor4Lie4Lix4LiK4Lij4LiyIOC4oeC4teC4l+C4o+C4seC4nuC4ouC5jA0KK+C4nuC4seC4iuC4o+C4siDguKjguLTguKfguLTguKXguLHguKINCivguJ7guLHguIrguKPguLIg4Lit4Li04LiH4Lit4Lij4Lin4Li04LiI4Li04LiV4LijDQor4Lie4Lix4LiK4Lij4Liy4Lig4Lij4LiT4LmMIOC4iuC5iOC4suC4h+C4iuC4uOC4mg0KK+C4nuC4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguKfguIfguKjguYzguKHguLHguYjguJnguIHguJXguLHguI3guI3guLkNCivguJ7guLHguIrguKPguLLguKfguJTguLUg4LmB4Lie4Lij4Lix4LiV4LiB4Li44LilDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4geC4suC4o+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguIjguLHguJnguJfguKPguLTguIENCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4LmB4LiL4LmI4LiI4Li04LinDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5guC4leC5iuC4sOC4p+C4meC4tOC4iuC4o+C4seC4geC4qeC4sg0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguJvguKPguLXguJTguLXguKLguLLguJnguJnguJfguYwNCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4LmC4Lie4LiY4Li04LmM4Lit4LmI4Lit4LiZDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4o+C4suC4q+C4uOC4peC4m+C4suC4mQ0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguKjguKPguLXguIrguLDguJrguLINCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4Liq4Li44LiU4LmD4LiIDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4reC4seC4qOC4p+C4meC4tOC4gQ0KK+C4nuC4seC4iuC4o+C4tSDguYDguIHguJXguLjguKvguK3guKENCivguJ7guLHguIrguKPguLUg4LiI4Lix4LiZ4LiX4Lij4LiU4Liy4Lin4Lix4Lil4Lii4LmMDQor4Lie4Lix4LiK4Lij4Li1IOC4iuC4ueC4iOC4tOC4o+C4p+C4h+C4qOC5jA0KK+C4nuC4seC4iuC4o+C4tSDguJXguLHguYnguIfguJXguKPguLDguIHguLnguKUNCivguJ7guLHguIrguKPguLUg4LiZ4Lij4Liq4Li04LiH4Lir4LmMDQor4Lie4Lix4LiK4Lij4Li1IOC4m+C4o+C4tOC4m+C4uOC4o+C4k+C4sA0KK+C4nuC4seC4iuC4o+C4tSDguJ7guLHguJnguJjguLjguKHguIjguLTguJnguJTguLINCivguJ7guLHguIrguKPguLUg4Lih4Liy4LiB4LiB4Lij4Lix4LiUDQor4Lie4Lix4LiK4Lij4Li1IOC4peC4tOC4oeC4m+C4oOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4nuC4seC4iuC4o+C4tSDguKjguKPguLXguIHguKPguLDguIjguLLguKINCivguJ7guLHguIrguKPguLUg4Liq4Lin4LmI4Liy4LiH4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lie4Lix4LiK4Lij4Li1IOC4quC4uOC4p+C4nuC4o+C4qOC4tOC4peC4m+C5jA0KK+C4nuC4seC4iuC4o+C4tSDguK3guKPguLHguI3guJfguKPguKfguLLguJnguLTguIoNCivguJ7guLHguIrguKPguLXguJ7guKMg4Liq4Li44LiC4LmC4Liq4Lih4LiZ4Lix4LiqDQor4Lie4Lix4LiK4Lij4Li14Lii4LmMIOC4quC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4seC4kuC4k+C4tSDguYHguIvguYjguKXguLTguYnguKENCivguJ7guLHguJLguJnguJ7guIfguKjguYwg4Liq4Li44LiC4LmC4LiB4Lip4LiyDQor4Lie4Lix4LiS4LiZ4Lin4LiH4Lip4LmMIOC4p+C4suC4meC4tOC4ig0KK+C4nuC4seC4kuC4meC4sOC4iuC4seC4oiDguYPguKrguKrguKfguYjguLLguIfguJ7guLHguJnguJjguYwNCivguJ7guLHguJLguJnguLIg4LiX4Li04Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Lix4LiS4LiZ4LiyIOC4oeC4teC4qOC4uOC4gg0KK+C4nuC4seC4kuC4meC4siDguKrguLjguKHguLLguKXguLUNCivguJ7guLHguJLguJnguLUg4Lia4Li44LiN4LiX4Lin4Li1DQor4Lie4Lix4LiS4LiZ4LmMIOC4nuC4peC4oOC4seC4l+C4o+C4nuC4tOC4iOC4suC4o+C4k+C5jA0KK+C4nuC4seC4lCDguYLguJ7guJjguLTguYzguKrguKPguLDguITguLkNCivguJ7guLHguJfguJjguKLguLIg4LiZ4Li04Lij4Liw4Lih4LilDQor4Lie4Lix4LiX4Lii4LiyIOC4nuC4tOC4oeC4nuC5jOC4quC4sOC4reC4suC4lA0KK+C4nuC4seC4mSDguJzguKXguYDguIjguKPguLTguI0NCivguJ7guLHguJnguJfguLTguJ7guLIg4LiI4Lix4LiZ4LiX4Lij4Lin4Lij4Lij4LiT4LiwDQor4Lie4Lix4LiZ4LiX4Li04Lie4LiyIOC4quC4uOC4guC4m+C4o+C4sOC5hOC4nuC4nuC4seC4kuC4meC5jA0KK+C4nuC4seC4meC4mOC5jOC4l+C4tOC4nuC4ouC5jCDguYDguJnguJXguKPguKPguLHguIfguKnguLUNCivguJ7guLHguJnguJjguKfguLTguJfguJjguLTguYwg4LmD4LiI4LiL4Li34LmI4Lit4LiB4Li44LilDQor4Lie4Lix4LiZ4LiY4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4ouC5h+C4meC4quC4geC4uOC4peC4quC4uOC4gg0KK+C4nuC4seC4meC4mOC4tOC4oOC4siDguJzguKXguKDguLLguKnguLUNCivguJ7guLHguJnguJjguLjguYzguJfguLTguJ7guKLguYwg4Liq4Liy4Lii4Liq4Li44LiZ4LiX4LijDQor4Lie4Lix4LiZ4LiY4Li44LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4o+C5ieC4reC4ouC4hOC4sw0KK+C4nuC4seC4meC4mOC5jOC5gOC4l+C4niDguKHguLLguJnguLDguYDguIHguLXguKLguKPguJXguLTguJXguKPguLDguIHguLnguKUNCivguJ7guLHguJnguJvguLUg4Lij4Lix4LiV4LiZ4Lib4Lij4Liw4Lig4LiyDQor4Lie4Lix4LiZ4LmA4Lig4LiyIOC4oeC4tOC4meC5guC4lA0KK+C4nuC4seC4peC4peC4oCDguJjguJnguLDguKrguKHguJrguLnguKPguJPguYwNCivguJ7guLHguKXguKXguKAg4Liq4Lin4LiZ4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMDQor4Lie4Lix4LinIOC4lOC4teC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4nuC4siDguIjguLHguJnguJfguKPguYzguYDguJfguLXguYjguKLguIcNCivguJ7guLLguJPguLTguIog4Lig4Lix4LiB4LiV4Lij4LmM4LmA4LiI4Lij4Li04LiNDQor4Lie4Liy4LiT4Li1IOC4muC4s+C5gOC4nuC5h+C4jeC4muC4uOC4k+C4ouC5jA0KK+C4nuC4suC4k+C4tSDguKrguLjguILguKrguKfguLHguKrguJTguLTguYwNCivguJ7guLLguJnguLTguIog4LiI4Li04LiV4Lij4LmB4LiI4LmJ4LiHDQor4Lie4Liy4LiZ4Li04LiVIOC4qOC4o+C4teC4quC4uOC4geC5g+C4qg0KK+C4nuC4suC4ouC4seC4niDguYDguIrguLfguYnguK3guKrguLjguKfguKPguKPguJMNCivguJ7guLLguKPguLIg4LmA4Lit4Li14LmI4Lii4Lih4Lih4Liw4LmC4LiZ4LiK4LiN4LmMDQor4Lie4Liy4Liq4Li44LiCIOC4leC4seC5ieC4h+C4leC4o+C4seC4quC4mOC4o+C4o+C4oQ0KK+C4nuC4tOC4geC4uOC4pSDguYDguIjguKPguLTguI3guKfguLHguKINCivguJ7guLTguIHguLjguKUg4LiZ4LmJ4Lit4Lii4Lic4Liy4LiHDQor4Lie4Li04LiB4Li44LilIOC4oeC5guC4meC4oOC4tOC4jeC5guC4jeC4oOC4tOC4jeC4jeC4sA0KK+C4nuC4tOC4geC4uOC4pSDguKrguLLguKPguLANCivguJ7guLTguIfguITguYzguKjguLTguKPguLQg4Liq4Li44LiZ4LiX4Lij4LiK4Liy4LiV4Li0DQor4Lie4Li04LiI4Li04LiV4LijIOC5gOC4iOC4o+C4tOC4jeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4nuC4tOC4iOC4tOC4leC4o+C4siDguIrguIfguLHguJQNCivguJ7guLTguIrguI3guYzguJnguKPguLUg4Liq4Lix4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lie4Li04LiK4LiN4Liy4LiT4Li1IOC5gOC4peC4reC5gOC4peC4tOC4qOC4geC4uOC4pQ0KK+C4nuC4tOC4iuC4seC4oiDguIHguKTguKnguI7guLLguJ7guLTguJ7guLHguJLguJnguYwNCivguJ7guLTguIrguLHguKIg4LmA4LiC4Lih4LiX4LmC4Lij4LiZ4LiZ4LiX4LmMDQor4Lie4Li04LiK4Lix4LiiIOC4iOC4s+C4m+C4suC4h+C4suC4oQ0KK+C4nuC4tOC4iuC4seC4oiDguIrguKLguKrguJTguKHguKDguYwNCivguJ7guLTguIrguLHguKIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lie4Li04LiK4Lix4LiiIOC4leC4seC4meC4leC4tOC4meC4p+C4sOC4iuC4seC4og0KK+C4nuC4tOC4iuC4seC4oiDguYHguJfguJnguJvguKPguLDguKLguLnguKMNCivguJ7guLTguIrguLHguKIg4Lia4Lix4Lin4Lih4Liy4LioDQor4Lie4Li04LiK4Lix4LiiIOC5gOC4m+C4o+C4oeC4l+C4reC4hw0KK+C4nuC4tOC4iuC4seC4oiDguJ7guLTguKPguLTguKLguLDguYDguKrguJbguLXguKLguKPguIHguLjguKUNCivguJ7guLTguIrguLHguKIg4Lih4Li04LmI4LiZ4Liq4Li44LiCDQor4Lie4Li04LiK4Lix4LiiIOC4o+C4uOC5ieC4h+C4l+C4suC4muC4meC4oOC4sg0KK+C4nuC4tOC4iuC4seC4oiDguKfguIfguKjguYzguIHguLjguKjguKXguKrguLTguKPguLQNCivguJ7guLTguIrguLHguKIg4Lin4Li44LiS4Li04LiI4Liz4LiZ4LiH4LiE4LmMDQor4Lie4Li04LiK4Lix4LiiIOC4quC4luC4suC4p+C4o+C4oeC4k+C4tQ0KK+C4nuC4tOC4iuC4seC4oiDguKrguLjguJnguJfguKPguK3guLPguJ7guKUNCivguJ7guLTguIrguLHguKIg4Lir4Liy4LiN4LiT4Lij4LiH4LiE4LmM4Lik4LiX4LiY4Li04LmMDQor4Lie4Li04LiK4Lix4LiiIOC4reC4tOC4meC4l+C4o+C4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4nuC4tOC4iuC4siDguKfguLHguJLguJnguLDguJjguLLguKPguLUNCivguJ7guLTguIrguLTguJUg4LiB4Lij4Liy4LiZ4LmA4Lil4Li04LioDQor4Lie4Li04LiK4Li04LiVIOC4iOC4uOC4peC4pOC4geC4qeC5jA0KK+C4nuC4tOC4iuC4tOC4lSDguJXguLHguYnguIfguKrguKvguYTguKHguJXguKPguLUNCivguJ7guLTguIrguLTguJUg4Lia4Li44LiT4Lii4LmA4Liq4LiZ4LiyDQor4Lie4Li04LiK4Li04LiVIOC4oOC4seC4geC4lOC4tOC5jOC5geC4iOC5iOC4oeC5g+C4qg0KK+C4nuC4tOC4iuC4tOC4lSDguKfguLHguIrguKPguLLguJTguLTguKXguIHguIHguLjguKUNCivguJ7guLTguIrguLTguJUg4Liq4Li04Lij4Li04Lin4Li44LiS4Li04LiI4Lij4Li44LiH4LiI4Li04LiV4LiV4Li04LmMDQor4Lie4Li04LiK4Li04LiVIOC5gOC4reC4teC5iOC4ouC4oeC4peC4sOC4reC4rQ0KK+C4nuC4tOC4keC4ueC4o+C4ouC5jCDguJXguLHguJnguJXguLTguK3guKHguKPguJ7guIfguKnguYwNCivguJ7guLTguJPguJfguLTguJ7guKLguYwg4Lia4Lij4Li04Lia4Li54Lij4LiT4LmM4Liq4Li44LiCDQor4Lie4Li04LiT4Liq4Lij4Lin4LiHIOC4p+C4h+C4qOC5jOC4p+C4tOC4peC4seC4og0KK+C4nuC4tOC4l+C4ouC4siDguITguLjguJPguLLguKfguLTguKPguLTguKLguLDguKrguLTguKPguLQNCivguJ7guLTguJfguKLguLIg4LiZ4Li44LiK4LmA4LiI4Lij4Li04LiNDQor4Lie4Li04LiX4Lii4LiyIOC5geC4ouC5ieC4oeC4qOC4o+C4p+C4pQ0KK+C4nuC4tOC4l+C4ouC4siDguKrguLjguILguYPguIjguYDguIjguKPguLTguI3guYDguKfguIoNCivguJ7guLTguJfguKLguYwg4LmA4Lio4Lij4Lip4LiQ4Lie4Li04LiX4Lii4Liy4LiB4Li44LilDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguJXguLHguYnguIfguIrguLnguJfguKfguLXguJfguKPguLHguJ7guKLguYwNCivguJ7guLTguJfguLHguIHguKnguYwg4Lib4Lij4Liy4LiU4LmA4Lib4Lij4Li34LmI4Lit4LiH4LmA4Lin4LiX4Lii4LmMDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC5gOC4oeC4huC4quC4geC4uOC4peC4o+C4seC4leC4meC5jA0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguKjguKPguLXguJXguLDguKfguLHguJkNCivguJ7guLTguJfguLHguIHguKnguYwg4Lir4Lin4Lix4LiH4Lio4Li04Lij4Li04Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lie4Li04LiY4Liy4LiZIOC4hOC4uOC4k+C4nuC4o+C4qOC4o+C4teC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4nuC4tOC4mSDguKrguKHguLLguJjguLQNCivguJ7guLTguJnguLHguKIg4LiI4LiH4Lio4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lie4Li04LiZ4Li04LiIIOC4geC4suC4meC4leC4tOC4geC4uOC4pQ0KK+C4nuC4tOC4meC4tOC4iCDguYDguIjguKPguLTguI3guKfguLTguKfguLHguJLguJnguIHguLjguKUNCivguJ7guLTguJnguLTguIgg4LiV4Lij4Li04LiB4Liy4Lij4LiK4Lit4LiaDQor4Lie4Li04LiZ4Li04LiIIOC4muC4uOC4jeC4p+C4tOC5gOC4qOC4qQ0KK+C4nuC4tOC4meC4tOC4iCDguKDguITguKrguIHguLjguKUNCivguJ7guLTguJnguLTguIgg4Lin4LmI4Lit4LiH4LmA4Lih4LiX4Li04LiZ4Li1DQor4Lie4Li04LiZ4Li04LiIIOC4quC4uOC4meC4suC4geC4ow0KK+C4nuC4tOC4meC4tOC4iOC5gOC4quC4meC4suC4geC4suC4oyDguJ7guK0g4Lie4Lij4LiwDQor4Lie4Li04LiZ4Li04LiV4Lio4Lix4LiB4LiU4Li04LmMIOC4reC5iOC4reC4h+C4iOC4o+C4ueC4jQ0KK+C4nuC4tOC4muC4ueC4pSDguK3guLTguJnguJfguKPguKrguKfguLHguKrguJTguLTguYwNCivguJ7guLTguJrguLnguKXguKLguYwg4LmE4LiX4Lii4LmA4LiI4Lij4Li04LiNDQor4Lie4Li04Lia4Li54Lil4Lii4LmMIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4p+C4o+C4o+C4kw0KK+C4nuC4tOC4nuC4seC4kuC4meC4nuC4h+C4qeC5jCDguKPguLHguIHguKLguLjguJXguLTguJjguKPguKPguKENCivguJ7guLTguJ7guLHguJLguJnguYwg4LiI4LiH4LmA4LiI4Lij4Li04LiN4LiB4Lih4LilDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC5gOC4iuC4teC5iOC4ouC4p+C4q+C4seC4leC4luC5jOC4nuC4h+C4qeC5jA0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguJfguK3guIfguKjguKPguLXguJnguLLguIQNCivguJ7guLTguJ7guLHguJLguJnguYwg4Lib4Lil4Li34LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4nuC4tOC4iuC4tOC4leC4meC4oOC4suC4geC4uOC4pQ0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguKPguKfguKLguYHguJfguYkNCivguJ7guLTguJ7guLHguJLguJnguYwg4Lin4LiH4Lio4Liy4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4qOC4uOC4oOC4quC4tOC4h+C4q+C5jOC4qOC4tOC4o+C4tOC4m+C4o+C4teC4iuC4sg0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguKvguJfguLHguKLguKfguKrguLXguKfguIfguKjguYwNCivguJ7guLTguJ7guLHguJLguJnguYwg4LmC4Lit4Lih4Lie4Lij4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4Lie4Li04Lig4LieIOC4iOC4seC4meC4l+C4o+C5guC4quC4oOC4suC4hOC4ouC5jA0KK+C4nuC4tOC4oOC4niDguYDguKXguLLguITguLMNCivguJ7guLTguKDguLLguJTguLIg4LmA4LiI4Lij4Li04LiN4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lie4Li04Lih4Lie4LmM4LiB4Liy4LiN4LiI4LiZ4LmMIOC4q+C4peC5iOC4reC4qOC4tOC4o+C4tOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4nuC4tOC4oeC4nuC5jOC4m+C4o+C4sOC5hOC4niDguJrguLjguJPguKLguLDguJvguKPguLDguKDguLnguJXguLQNCivguJ7guLTguKHguJ7guYzguJ7guKMg4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMDQor4Lie4Li04Lih4Lie4LmM4Lie4LiyIOC4l+C4tOC4nuC4p+C4seC4peC4ouC5jA0KK+C4nuC4tOC4oeC4nuC4oyDguJ7guLTguKHguYDguKDguLLguKfguYwNCivguJ7guLTguKHguJ7guKPguKPguJMg4LmA4Lib4Lij4Lih4LiY4Liy4LiU4LiyDQor4Lie4Li04Lih4Lie4LmM4Lin4Lix4Lil4Lii4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4o+C4sOC4geC4ow0KK+C4nuC4tOC4oeC4nuC4siDguIfguLLguKHguYDguIfguLTguJkNCivguJ7guLTguKHguJ7guLIg4Lie4LiH4Lio4LiB4Lij4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Li04Lih4Lie4LiyIOC4q+C4meC4ueC5geC4geC5ieC4pw0KK+C4nuC4tOC4oeC4nuC4tOC4qCDguKfguLjguJLguLTguJjguKPguKPguKHguLLguKDguKPguJPguYwNCivguJ7guLTguKHguJ7guYzguYPguIgg4LiZ4Liz4Liq4Li44Lin4Li04Lih4Lil4LiB4Li54LilDQor4Lie4Li04Lih4Lie4LmM4LmD4LiIIOC4q+C4reC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4nuC4tOC4oeC4nuC5jCDguKfguIfguKnguYzguIjguLHguJnguJfguKPguYwNCivguJ7guLTguKHguKUg4LmA4LiI4Lij4Li04LiN4Lii4Li04LmI4LiHDQor4Lie4Li04Lih4LilIOC4m+C4teC4leC4tOC4ouC4sg0KK+C4nuC4tOC4oeC4pSDguKfguLXguKPguKfguLHguJLguJnguYzguJ7guIfguKjguYwNCivguJ7guLTguKHguKXguJ7guKMg4Lih4Lir4Lix4LiY4LiZ4Liy4LiB4LijDQor4Lie4Li04Lih4Lil4Lie4Lij4Lij4LiTIOC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4uOC4geC4lOC4sg0KK+C4nuC4tOC4oeC4peC4o+C4seC4leC4meC5jCDguK3guLHguIfguIHguLnguKPguKrguLTguJfguJjguLTguYwNCivguJ7guLTguKHguLLguJnguKHguLLguKgg4Liq4LiW4Li04LiV4Lii4LmM4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lie4Li04Lij4Lii4Li44LiX4LiYIOC5guC4l+C4quC4ueC4h+C5gOC4meC4tOC4mQ0KK+C4nuC4tOC4o+C4tOC4ouC4sCDguIHguLTguYjguIfguILguIjguLUNCivguJ7guLTguKPguLjguJMg4LmA4LiI4Lij4Li04LiN4LiB4Li44LilDQor4Lie4Li04Lij4Li44LiT4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4tOC4p+C4seC4kuC4meC5jCDguKfguLTguKDguLLguKfguLXguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guLTguKjguJPguLgg4LmA4LiI4Lij4Li04LiN4LiZ4Li44LiB4Li54LilDQor4Lie4Li04Lio4Lih4LijIOC4luC4tOC4o+C4iOC4tOC4leC4leC5jOC4quC4tOC4o+C4tA0KK+C4nuC4tOC4qOC4oeC4seC4oiDguYDguITguLXguKLguIfguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJ7guLTguKjguKHguLHguKIg4LmE4LiK4Lii4Lin4Lix4LiS4LiZ4LmMDQor4Lie4Li04Lio4Lih4Lix4LiiIOC4meC4nuC4o+C4seC4leC4meC5jOC4muC4seC4jeC4keC4tOC4lQ0KK+C4nuC4tOC4qOC4oeC4seC4oiDguJ7guLHguJLguJnguLINCivguJ7guLTguKjguKHguLHguKIg4LmA4Lil4Liy4Lir4LmM4Lir4Li04Lij4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lie4Li04Lio4Lih4Lix4LiiIOC4quC4tOC4o+C4tOC4iuC4ueC4leC4tOC4p+C4h+C4qOC5jA0KK+C4nuC4tOC4qOC4oeC4seC4oiDguK3guLTguJnguJfguKPguYzguKPguIjguJnguLINCivguJ7guLTguKjguKfguIcg4Lih4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Li04Lio4Liq4Lih4Lix4LiiIOC5gOC4reC4geC4reC4uOC5iOC4mQ0KK+C4nuC4tOC4qOC4suC4pSDguInguLLguKLguLLguIHguKUNCivguJ7guLTguKjguLLguKUg4Lih4LmC4LiZ4Lil4Li14Lir4LiB4Li44LilDQor4Lie4Li04Lio4Liy4LilIOC5guC4ruC4leC4o+C4sOC4geC4ueC4pQ0KK+C4nuC4tOC4qOC4tOC4qeC4kCDguK3guLHguIHguKnguKPguJ7guLHguJnguJjguYwNCivguJ7guLTguKjguLTguKnguJDguYwg4LiX4Lit4LiH4Lih4Lix4LmI4LiZ4LiE4LiHDQor4Lie4Li04Lio4Li04Lip4LiQ4LmMIOC4o+C4h+C4hOC4p+C4tOC4peC4tOC4lQ0KK+C4nuC4tOC4qOC4tOC4qeC4kOC5jCDguYDguK3guIHguJvguLHguI3guI3guLLguIHguLjguKUNCivguJ7guLTguKjguYDguKrguJnguYjguKvguYwg4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4Lie4Li04Lip4LiT4Li4IOC5hOC4leC4o+C4m+C4tOC5iOC4meC5gOC4nuC5h+C4iuC4ow0KK+C4nuC4tOC4qeC4k+C4uCDguKHguLLguKXguKLguLLguJnguJnguJfguYwNCivguJ7guLTguKnguJPguLgg4LmB4Liq4LiH4Liq4Liy4LiE4LijDQor4Lie4Li04Liq4LiZ4LiY4Li04LmMIOC4qOC4o+C4teC4oOC4seC4l+C4o+C5guC4iuC4leC4tA0KK+C4nuC4tOC4quC4oeC4seC4oiDguJnguLjguJjguLTguKPguIfguITguYwNCivguJ7guLTguKrguKHguLHguKIg4Lir4Lil4LmJ4Liy4Lil4LmJ4LizDQor4Lie4Li04Liq4Lix4LiZ4LiV4LmMIOC5guC4reC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4tOC4quC4tOC4j+C4kCDguK3guLHguKjguKfguYDguJ7guIrguKPguKTguIHguKnguYwNCivguJ7guLTguKrguLTguJAg4LiI4Lix4LiZ4LiX4Lij4LmM4LiI4Li04Lij4Li14Lii4LmMDQor4Lie4Li04Liq4Li04LiQIOC4nuC4o+C4p+C4seC4kuC4meC4oeC4h+C4hOC4pQ0KK+C4nuC4tOC4quC4tOC4kCDguKrguKPguYnguLLguIfguJTguLUNCivguJ7guLTguKrguLTguJfguJjguLTguYwg4LiK4Lix4Lii4Lih4LiH4LiE4LilDQor4Lie4Li04Liq4Li04LiX4LiY4Li04LmMIOC4p+C4uOC4kuC4tOC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC4sg0KK+C4nuC4tOC4quC4tOC4qeC4kOC5jCDguIHguKHguKXguKfguLLguKPguLTguJnguJfguKPguYwNCivguJ7guLTguKrguLTguKnguJDguYwg4Lie4Li04Lij4Li04Lii4Liw4LmA4Lia4LiN4LiI4Lin4Lix4LiS4LiZ4LmMDQor4Lie4Li04Liq4Li44LiX4LiY4Li04LmMIOC5geC4geC5ieC4p+C4reC4s+C5hOC4ng0KK+C4nuC4tOC4quC4uOC4l+C4mOC4tOC5jCDguKjguLjguKDguJ7guKMNCivguJ7guLTguYDguIrguI7guKPguYwg4Lia4Li44LiN4Lih4LiyDQor4Lie4Li04LmA4LiK4LiQIOC4leC4tOC4ouC4sOC4nuC4h+C4qeC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4nuC4tOC5gOC4iuC4kCDguKfguLHguJLguJnguLLguYDguK3guLXguYrguKLguJrguJ7guLHguJnguJjguYwNCivguJ7guLTguYDguIrguJUg4LmA4Lij4Li34Lit4LiZ4LiX4Li04Lie4Lii4LmMDQor4Lie4Li04LmA4LiK4Lip4LiQIOC5gOC4leC4iuC4sOC4lOC4tQ0KK+C4nuC4tOC5gOC4iuC4qeC4kCDguKPguLHguJXguJnguLLguKPguKHguKLguYwNCivguJ7guLTguYDguIrguKnguJAg4Lit4Li44Lii4Lii4Liy4LiZ4Li44LiB4Li54LilDQor4Lie4Li04LmA4LiK4Lip4LiQ4LmMIOC5gOC4iOC4o+C4tOC4jeC4p+C4o+C4geC4tOC4iOC4geC4suC4ow0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguJfguLTguJ7guKLguYzguYLguIHguKnguLHguKINCivguJ7guLTguYDguIrguKnguJDguYwg4LmA4Lie4LmH4LiN4Lio4Lij4Li1DQor4Lie4Li04LmA4LiK4Lip4LiQ4LmMIOC4p+C4tOC4oeC4peC4mOC4o+C4o+C4oeC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguK3guLHguITguKPguJ7guLTguJnguJfguYwNCivguJ7guLTguYDguKjguIEg4Lih4Liy4Liq4Lix4LiH4LiC4LmMDQor4Lie4Li04LmE4LilIOC4hOC4o+C4uOC4keC4p+C4k+C4tOC4iuC4meC4meC4l+C5jA0KK+C4nuC4tOC5hOC4peC4peC4seC4geC4qeC4k+C5jCDguYLguIHguKrguLjguKHguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guLUg4Lib4Li04LmC4LiV4Lij4LmA4Lil4Li14Lii4LihDQor4Lie4Li14Lij4LiZ4Li44LiKIOC5gOC4nuC5iOC4h+C4nuC4suC4meC4tOC4ig0KK+C4nuC4teC4o+C4nuC4h+C4qeC5jCDguKXguLTguKHguJvguYzguKrguLjguJfguJjguLTguKPguLHguIrguJXguYwNCivguJ7guLXguKPguJ7guKUg4Lig4Li54Lih4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lie4Li14Lij4Lie4Lix4LiZ4LiY4LmMIOC4qOC4o+C4teC4quC4uOC4p+C4o+C4o+C4k+C4nOC5hOC4lw0KK+C4nuC4teC4o+C4p+C4seC4kuC4meC5jCDguIrguLjguJPguKvguLDguJnguLHguJnguJfguJnguYwNCivguJ7guLXguKPguLAg4LiB4Lit4Liq4Li44Lin4Lij4Lij4LiT4Liq4LiB4Li44LilDQor4Lie4Li14Lij4LiwIOC4l+C4seC4geC4qeC4sOC4p+C4k+C4tOC4iuC4iuC4sg0KK+C4nuC4teC4o+C4sCDguKHguLXguYHguKrguIfguJnguLTguKUNCivguJ7guLXguKPguLAg4Lir4Lin4Lix4LiH4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Liq4Li04LiZDQor4Lie4Li14Lij4Liw4Lie4LiH4Lio4LmMIOC4hOC4peC4reC4h+C4geC4tOC4iOC5guC4o+C4iOC4meC5jA0KK+C4nuC4teC4o+C4sOC4nuC4h+C4qeC5jCDguJ7guKPguLDguITguLjguJPguK3guLPguJnguKfguKINCivguJ7guLXguKPguLDguJ7guKUg4LiK4Liy4LiV4Lie4Li44LiX4LiY4Li04LiY4Lij4LiB4Li44LilDQor4Lie4Li14Lij4Liw4Lie4LilIOC5geC4quC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4nuC4teC4o+C4sOC4ouC4uOC4l+C4mCDguYTguJfguKLguKXguLTguYjguKHguJfguK3guIcNCivguJ7guLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lib4Li04Lii4Lig4Liy4LiT4Li14LiB4Li44LilDQor4Lie4Li14Lij4Lix4LiV4LiZ4LmMIOC4ruC4suC4oeC4teC4lOC4tQ0KK+C4nuC4tuC4h+C5g+C4iCDguYDguIHguLXguKLguKPguJXguLTguKrguLLguYLguKPguIjguJnguYwNCivguJ7guLjguJIg4LiU4Lit4LiB4LmE4Lih4LmJ4LiI4Li14LiZDQor4Lie4Li44LiS4LiY4Li04Lie4LiH4Lip4LmMIOC5gOC4quC4meC5iOC4q+C4sg0KK+C4nuC4uOC4lOC4iOC4teC4miDguYDguJ/guLfguYjguK3guIfguIrguLfguYjguJkNCivguJ7guLjguJfguJjguIrguLLguJXguLQg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Li44LiX4LiY4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4reC4kOC4ouC4tOC5ieC4oeC4nuC4o+C4suC4og0KK+C4nuC4uOC4mCDguYLguITguJXguKPguYPguJXguYkNCivguJ7guLkg4LiX4Lin4Li14LiI4Li04LiV4LijDQor4Lie4Li54LiZ4LiK4Lix4LiiIOC5gOC4reC4t+C5ieC4reC4h+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jA0KK+C4nuC4ueC4meC4l+C4o+C4seC4nuC4ouC5jCDguKrguLTguJfguJjguLTguJ7guKPguKvguKENCivguJ7guLnguJnguKLguKgg4Lia4Li44LiT4Lii4Lij4Lix4LiB4Lip4LmMDQor4Lie4Li54LiZ4Lio4Lij4Li1IOC4mOC4teC4o+C4sOC4m+C4geC4o+C4k+C5jOC4geC4uOC4pQ0KK+C4nuC4ueC4meC4qOC4o+C4tSDguKrguLjguJrguIfguIHguIoNCivguJ7guLnguJnguKjguLHguIHguJTguLTguYwg4Lie4Liq4Li44LiZ4LiZ4LiX4LmMDQor4Lie4Li54LiZ4Liq4Lih4Lia4Lix4LiV4Li0IOC5geC4i+C5iOC4reC4t+C5ieC4rQ0KK+C4nuC4ueC4meC4quC4uOC4giDguITguKvguLDguYHguIHguYnguKcNCivguJ7guLnguJnguKrguLjguIIg4Liq4Lix4LiZ4LiV4Li04Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Li54Lil4LiK4Lix4LiiIOC4geC4suC4jeC4iOC4meC5guC4o+C4iOC4meC5jA0KK+C4nuC4ueC4peC4l+C4o+C4seC4nuC4ouC5jCDguJ7guKPguLLguKvguKHguJPguLXguKLguYwNCivguJ7guLnguKXguJ7guLTguJ7guLHguJLguJnguYwg4Liq4LiH4Lin4LiZ4Liq4Lix4LiV4Lii4LmMDQor4Lie4Li54Lil4Lio4Lij4Li1IOC5geC4i+C5iOC4q+C4seC5iOC4mQ0KK+C4nuC4ueC4peC4qOC4o+C4tSDguKrguLjguILguLjguKHguKfguLLguJcNCivguJ7guLnguKXguKjguLHguIHguJTguLTguYwg4Lie4Li24LmI4LiH4Lib4Lij4Liw4Lig4LiyDQor4Lie4Li54Lil4Lio4Li04Lij4Li0IOC4reC4tOC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4nuC4ueC4peC4quC4tOC4mSDguYDguKrguJnguLXguKLguYwNCivguJ7guLnguKXguKrguLjguIIg4LmA4Lih4LmI4LiZ4LmB4Lih4LiZDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC4geC4o+C4sOC4lOC4suC4qQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguIjguLHguJnguJfguKPguYzguIfguLLguKENCivguJ7guYDguKLguLLguKfguYwg4LmB4LiV4LiH4Lit4LmI4Lit4LiZDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC4m+C4seC5ieC4meC4muC4uOC4jeC4iuC4uQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguKDguLnguKnguLINCivguJ7guYDguKLguLLguKfguYwg4Lin4LiH4Lip4LmM4Liq4Liy4Lil4Li1DQor4Lie4LmA4Lii4Liy4Lin4LmMIOC4quC4tOC4meC4iuC5ieC4suC4hw0KK+C4nuC5gOC4ouC4suC4p+C5jCDguYDguK3guLXguYjguKLguKHguKfguIfguKjguYwNCivguYDguJ7guIrguKMg4Lij4Lit4Liq4Li54LiH4LmA4LiZ4Li04LiZDQor4LmA4Lie4LiK4Lij4LiZ4LmJ4Lit4LiiIOC5gOC4p+C4l+C4ouC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C5gOC4nuC4iuC4o+C4o+C4seC4leC4meC5jCDguJvguKXguLfguYnguKHguK3guLLguKPguKHguKLguYwNCivguYDguJ7guIrguKPguKPguLHguJXguJnguYwg4Lit4Li44LiV4Liw4Lib4Liw4Lil4LiwDQor4LmA4Lie4LiK4Lij4Lix4LiV4LiZ4LmMIOC4nuC4o+C4muC4p+C4o+C5gOC4geC4teC4ouC4o+C4leC4tA0KK+C5gOC4nuC4iuC4o+C4siDguKfguLTguIjguLTguJXguKPguYDguKXguILguIHguLLguKMNCivguYDguJ7guIrguKPguLUg4Lig4Li54LmI4Liq4Li44LiCDQor4LmA4Lie4LiX4Liy4LiiIOC4l+C4reC4h+C4qOC4o+C4tQ0KK+C5gOC4nuC4l+C4suC4oiDguKvguLLguYDguKPguLfguK3guJnguIrguLXguJ4NCivguYDguJ7guKPguLXguKLguJog4Lir4Li44LiV4Liy4LiH4LiB4Li54LijDQor4LmA4Lie4Lil4Li04LiZIOC4nOC4tOC4p+C5gOC4k+C4ow0KK+C5gOC4nuC4peC4tOC4meC4iOC4tOC4lSDguKfguLHguIrguKPguYLguIrguJXguLQNCivguYDguJ7guKXguLTguJnguJXguLIg4Lit4Li04LmI4Lih4Lit4LiB4LmD4LiIDQor4LmA4Lie4Lil4Li04LiZ4Lie4Li04LioIOC5geC4lOC4h+C5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C5gOC4nuC4peC4tOC4meC4nuC4tOC4qCDguKHguKvguLLguKfguJnguLTguIoNCivguYDguJ7guKXguLTguJnguJ7guLTguKgg4LmE4Lir4Lil4Lih4LiyDQor4LmA4Lie4Liy4Lie4Liw4LiH4LiyIOC4reC4seC4quC4oeC4tOC4oeC4suC4meC4sA0KK+C5gOC4nuC4tOC5iOC4oSDguKjguKPguLXguJvguKPguLDguJ7guLHguJnguJjguYwNCivguYDguJ7guLTguYjguKHguJ7guKMg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4LiK4Lix4LiiDQor4LmA4Lie4Li04LmI4Lih4Lio4Lij4Li1IOC4p+C4seC4lOC5geC4geC5ieC4pw0KK+C5gOC4nuC4tOC5iOC4oeC4qOC4seC4geC4lOC4tOC5jCDguJvguLTguJXguLTguJjguJnguKrguLLguKPguKrguKHguJrguLHguJXguLQNCivguYDguJ7guLTguYjguKHguKjguLHguIHguJTguLTguYwg4Lit4Lii4Li54LmI4LmA4Lib4LmH4LiZ4Liq4Li44LiCDQor4LmA4Lie4Li14Lii4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4nuC4seC4meC4mOC4uOC4o+C4seC4leC4meC5jA0KK+C5gOC4nuC4teC4ouC4h+C4nuC4oyDguK3guKHguKPguYTguIrguKINCivguYDguJ7guLXguKLguIfguYDguJ7guYfguI0g4LiI4Li24LiH4Liq4Liz4Lij4Liy4LiNDQor4LmA4Lie4Li14Lii4LiH4LmD4LiIIOC4iOC5iOC4suC4nuC4seC4meC4mOC5jOC4reC4tOC4meC4l+C4o+C5jA0KK+C5gOC4nuC4teC4ouC4h+C5g+C4iCDguKHguKvguLLguJnguJnguJfguYwNCivguYDguJ7guLXguKLguJkg4Lia4Lix4LiH4LiE4Lij4Lix4LiZDQor4LmA4Lie4Li14Lii4LijIOC4qOC4tOC4o+C4tOC5guC4iuC4leC4tOC4o+C4seC4leC4meC5jA0KK+C5gOC4nuC4teC4ouC4o+C4nuC4oyDguKjguKPguLXguYDguJ7guLXguKLguKPguJzguKUNCivguYDguJ7guLXguKLguKcg4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmM4Lig4Li04LiN4LmC4LiNDQor4LmA4Lie4LmH4LiB4LiI4Li5IOC5geC4i+C5iOC5gOC4reC4teC5ieC4og0KK+C5gOC4nuC5h+C4geC5gOC4ruC4teC5ieC4oiDguYHguIvguYjguYDguJXguLXguKINCivguYDguJ7guYfguIrguKMg4Lio4Lij4Li14Lin4Li04LiK4Lix4LiiDQor4LmA4Lie4LmH4LiK4Lij4Lij4Lix4LiV4LiZ4LmMIOC4reC4suC4o+C4teC4o+C4seC4geC4qeC5jA0KK+C5gOC4nuC5h+C4iuC4o+C4suC4oOC4o+C4k+C5jCDguKfguKrguLjguJnguJjguKPguLLguKHguLLguKgNCivguYDguJ7guYfguI0g4LmA4LiK4Li34LmJ4Lit4Lia4Li44LiNDQor4LmA4Lie4LmH4LiNIOC5geC4quC4h+C5guC4iuC4leC4tA0KK+C5gOC4nuC5h+C4jeC4iOC4seC4meC4l+C4o+C5jCDguIjguLTguKPguLDguKrguLTguJnguK3guJnguLHguJnguJXguYwNCivguYDguJ7guYfguI3guIjguLHguJnguJfguKPguYwg4Lib4Lix4LmJ4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4LmA4Lie4LmH4LiN4LiI4Lix4LiZ4LiX4Lij4LmMIOC4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jOC4lOC4tQ0KK+C5gOC4nuC5h+C4jeC4iOC4tOC4lSDguKXguLTguYjguKfguKjguKPguLXguKrguIHguLjguKUNCivguYDguJ7guYfguI3guJPguLXguKLguYwg4Lib4Li04LiH4Lii4Lit4LiHDQor4LmA4Lie4LmH4LiN4LiX4Li04Lie4LiyIOC4muC4uOC4jeC4iuC4ueC4geC4uOC4qOC4pQ0KK+C5gOC4nuC5h+C4jeC4meC4oOC4siDguJrguLPguYDguJ7guYfguI3guYDguIHguLXguKLguKPguJXguLQNCivguYDguJ7guYfguI3guJnguLTguJTguLIg4LiV4Li44Lil4Lin4Lij4Lij4LiY4LiZ4LiwDQor4LmA4Lie4LmH4LiN4Lib4Lij4Liw4Lig4LiyIOC4leC4o+C4teC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4geC4uOC4pQ0KK+C5gOC4nuC5h+C4jeC4m+C4o+C4sOC4oOC4siDguYHguKrguJnguYDguKHguLfguK3guIfguKHguLINCivguYDguJ7guYfguI3guJ7guKMg4LmA4LiV4LiK4Liw4Lie4Li04LiX4Lix4LiB4Lip4LmM4LmA4Lic4LmI4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4Lie4LmH4LiN4Lie4Lij4Lij4LiTIOC4iOC5ieC4reC4ouC4o+C4uOC5iOC4hw0KK+C5gOC4nuC5h+C4jeC4nuC4o+C4o+C4kyDguYDguKPguLXguYjguKLguKfguJ7guLLguJnguLTguIrguIHguLjguKUNCivguYDguJ7guYfguI3guJ7guLHguIHguJXguKPguYwg4LiZ4Lix4LiZ4LiY4Li04Lij4Liy4Lig4Liy4LiB4LijDQor4LmA4Lie4LmH4LiN4Lie4Li04LioIOC4hOC4o+C4uOC4mOC4p+C4teC4o+C5jA0KK+C5gOC4nuC5h+C4jeC4o+C4seC4leC4meC5jCDguJrguLjguJPguKLguKjguLTguKPguLTguIHguLjguKUNCivguYDguJ7guYfguI3guKTguJTguLUg4Lie4Li44LiX4LiY4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4geC4peC4tOC5iOC4meC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguYTguILguYjguYHguIHguYnguKcNCivguYDguJ7guYfguI3guKjguKPguLUg4LiI4Li04LiV4LiV4LmM4LiI4LiHDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4iuC4tOC4lOC4m+C4o+C4sOC4quC4h+C4hOC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguJMg4Lij4Liw4LiZ4Lit4LiHDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC5guC4leC4reC4meC4seC4meC4leC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguJnguKDguLLguKjguKPguLUNCivguYDguJ7guYfguI3guKjguKPguLUg4Lia4Li54Lij4LiN4Liw4Lia4Li44LiN4Lin4LiH4Lio4LmMDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4nuC4o+C4sOC4geC4s+C4geC4seC4mg0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguKDguLHguIfguITguLLguJnguJnguJfguYwNCivguYDguJ7guYfguI3guKjguKPguLUg4Lij4Lix4LiV4LiZ4Lij4Li44LmI4LiH4LiK4Lix4LiiDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4p+C4h+C4qeC5jOC4m+C4suC4mQ0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguKjguKPguLXguKrguLPguKPguLLguI3guKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguYDguJ7guYfguI3guKjguKPguLUg4Liq4Liy4Lij4Liw4LiB4Li44LilDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC5geC4quC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguK3guLPguJnguKfguKLguJzguKUNCivguYDguJ7guYfguI3guKjguLTguKPguLQg4LiE4Lix4Lih4Lig4Li04Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lie4LmH4LiN4Lio4Li04Lij4Li0IOC4o+C4seC4geC4qeC4suC4p+C4h+C4qeC5jOC4o+C4seC4leC4meC5jA0KK+C5gOC4nuC5h+C4jeC4quC4tOC4meC4tSDguJXguYnguK3guIfguKrguIHguLjguKXguYLguKPguIjguJnguYwNCivguYDguJ7guYfguI3guYHguIIg4LiE4LiH4Lie4Li04LiX4Lix4LiB4Lip4LmM4Lio4Li04Lil4Lib4LmMDQor4LmA4Lie4LmH4LiN4LmB4LiCIOC4oOC4seC4l+C4o+C4lOC4tOC4peC4gQ0KK+C5gOC4nuC5h+C4jeC5geC4o+C4oSDguKHguJnguLnguI3guIrguLHguKINCivguYDguJ7guYnguIcg4Lil4LmJ4Lit4Lih4LmA4Lie4LiK4Lij4Lie4Lil4Lit4LiiDQor4LmB4Lie4Lij4LinIOC5guC4leC5guC4hOC4geC4guC4suC4oQ0KK+C5geC4nuC4o+C4p+C4nuC4o+C4o+C4kyDguKPguLHguIfguKnguLXguIHguLTguIjguYLguJ7guJjguLTguYwNCivguYLguJ7guIrguJnguLAg4Lih4Liy4Lio4LmA4LiC4Li34LmI4Lit4LiZ4LiC4Lix4LiZ4LiY4LmMDQor4LmC4Lie4LiY4Li04LmM4Lie4Lix4LiZ4LiY4Li44LmMIOC5g+C4iOC4oeC4teC4mOC4o+C4o+C4oeC4lOC4tQ0KK+C5hOC4nuC4iOC4tOC4lSDguKfguKjguLTguJnguJvguKPguLTguI3guI3guLINCivguYTguJ7guIjguLTguJXguKMg4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMDQor4LmE4Lie4LiI4Li04LiV4LijIOC4oeC4suC4lOC4tQ0KK+C5hOC4nuC4iOC4tOC4leC4o+C4siDguKjguLjguILguKrguKHguLLguJkNCivguYTguJ7guJHguLnguKPguKLguYwg4LiB4Lix4LiZ4Lig4Lix4LiiDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4hOC4h+C4hOC4suC4quC4uOC4o+C4tOC4ouC4ieC4suC4og0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguYDguIjguJnguIjguLLguITguLANCivguYTguJ7guJHguLnguKPguKLguYwg4LmB4LiL4LmI4LmA4LiV4Li14LmJ4Lii4LinDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4l+C4reC4h+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguJrguLHguKfguITguKXguLXguYgNCivguYTguJ7guJHguLnguKPguKLguYwg4Lic4Lil4Lig4Liy4Lip4Li1DQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4nuC4ueC4peC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguKPguLHguIfguKnguLTguKLguLLguKDguLINCivguYTguJ7guJHguLnguKPguKLguYwg4Lin4Lij4Liq4Lix4Lih4Lib4Li44Lij4LiT4LiwDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4qOC4tOC4p+C4sOC4nuC4o+C4iuC4seC4og0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguKrguLjguJnguJfguKPguKfguLHguJLguJnguYwNCivguYTguJ7guJHguLnguKPguKLguYwg4Lit4LmI4Lit4LiZ4Lio4Li04Lij4Li0DQor4LmE4Lie4LiR4Li54Lil4Lii4LmMIOC4iOC4o+C4ueC4jeC5gOC4o+C4t+C4reC4hw0KK+C5hOC4nuC4muC4ueC4o+C4k+C5jCDguITguLPguJrguLjguKPguLUNCivguYTguJ7guJrguLnguKXguKLguYwg4LiB4Li04LiI4LiX4Lin4Li14Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4guC4suC4p+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguIjguLHguJnguJfguKPguYzguJXguKPguLUNCivguYTguJ7guJrguLnguKXguKLguYwg4LmD4LiI4LiV4Liy4LiaDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJXguYjguLLguKLguKrguIHguLjguKXguJfguLTguJ7guKLguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4LmA4LiX4Lie4LiI4Li04LiZ4LiU4LiyDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4meC4tOC4peC4suC4quC4meC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJvguKPguLDguYTguJ7guJfguK3guIcNCivguYTguJ7guJrguLnguKXguKLguYwg4Lie4Lik4LiX4LiY4Li04Lie4Lix4LiS4LiB4Li44LilDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4nuC4uOC5iOC4oeC4reC4suC4qOC4seC4og0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKHguJPguLXguYLguKPguIjguJnguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4Lij4Lix4LiH4Liq4Li14LiB4Li44Lil4Lie4LiH4Lio4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4peC4teC4peC4suC4oOC4suC4k+C4uOC4oeC4suC4qA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKfguYjguK3guIfguYTguKfguKLguLTguYjguIfguYDguIjguKPguLTguI0NCivguYTguJ7guJrguLnguKXguKLguYwg4Lio4Lij4Li14Liq4Lix4LiZ4LiV4Li04Lij4Lix4LiV4LiZ4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4quC4oeC4seC4hOC4o+C4geC4suC4ow0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKrguLjguILguKrguLHguJnguJXguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4LmB4Liq4LiH4LmB4LiB4LmJ4LinDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4reC4oeC4o+C4reC4meC4uOC4geC4ueC4pQ0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguYDguK3guKHguJ7guLHguJnguJjguLjguYwNCivguYTguJ7guKHguJnguLIg4LmA4Lir4Lil4LmI4Liy4LiC4Lix4LiV4Li04Lii4LiwDQor4LmE4Lie4Lij4Lij4Li04LiZ4LiX4Lij4LmMIOC4mOC4ueC4m+C4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C5hOC4nuC4o+C4p+C4seC4peC4ouC5jCDguYDguJ7guLXguKLguKPguKXguLjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguYTguJ7guKPguLHguIEg4Lig4Li54LmI4LmC4Liq4Lig4LiyDQor4LmE4Lie4Lij4Lix4LiKIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4m+C4peC5iOC4hw0KK+C5hOC4nuC4o+C4seC4iiDguYHguIvguYjguYDguK7guYnguIcNCivguYTguJ7guKPguLHguIog4LiY4Lij4Lij4Lih4LmB4Lie4LiX4Lii4LmMDQor4LmE4Lie4Lij4Lix4LiKIOC4m+C4suC4meC4l+C4tOC4nuC4ouC5jOC4reC4s+C4nuC4ow0KK+C5hOC4nuC4o+C4seC4iiDguYTguJ7guJrguLnguKXguKLguYzguKHguLHguYjguJnguITguIcNCivguYTguJ7guKPguLHguIog4Lil4Li14LmJ4LmA4LiI4Lij4Li04LiNDQor4LmE4Lie4Lij4Lix4LiKIOC4qOC4tOC4o+C4tOC4iuC4suC4leC4tA0KK+C5hOC4nuC4o+C4seC4iiDguYDguKrguKfguIHguJ7guLTguJrguLnguKXguKLguYwNCivguYTguJ7guKPguLHguIog4LmC4Lit4Liq4LiW4LmA4LiI4Lij4Li04LiN4Lic4LilDQor4LmE4Lie4Lij4Lix4LiV4LiZ4LmMIOC4iOC4o+C4o+C4ouC4q+C4suC4jQ0KK+C5hOC4nuC4o+C4seC4leC4meC5jCDguJjguKPguKPguKHguIrguLLguJXguLQNCivguYTguJ7guKPguLHguJXguJnguYwg4Lij4Lix4LiV4LiZ4LmM4Lie4LiH4Lip4LmM4LmC4Liq4Lig4Li04LiVDQor4LmE4Lie4Lij4Lix4LiV4LiZ4LmMIOC5geC4quC4p+C4h+C4geC4tOC4iA0KK+C5hOC4nuC4o+C4tOC4mSDguJzguKXguKvguKfguYnguLINCivguYTguJ7guKPguLTguJnguJfguKPguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lih4LiT4Li1DQor4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMIOC4nuC5iOC4p+C4h+C4quC4uOC4meC4l+C4ow0KK+C5hOC4nuC4o+C4tOC4meC4l+C4o+C5jCDguYDguKrguLfguK3guJnguYnguK3guKINCivguYTguJ7guKXguLTguJkg4LiI4Li04LiV4Lij4LmA4LiI4Lij4Li04LiNDQor4LmE4Lie4Lil4Li04LiZIOC4m+C4suC4o+C4sOC4nuC4h+C4qOC5jA0KK+C5hOC4nuC4peC4tOC4mSDguKfguYjguK3guIfguJvguKPguLDguIrguLLguJnguLjguIHguLnguKUNCivguYTguJ7guKXguLTguJkg4Lit4Li04LiZ4LiX4Lij4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4LmE4Lie4Lio4Lij4Li1IOC4mOC4ueC4m+C5gOC4l+C4teC4ouC4meC4l+C4reC4hw0KK+C5hOC4nuC4qOC4suC4pSDguYDguIHguLXguKLguKPguJXguLTguYDguIHguKnguKHguKjguLLguJnguJXguYwNCivguYTguJ7guKjguLLguKUg4LiI4LmL4Lin4LiH4Lie4Liy4LiZ4Li04LiKDQor4LmE4Lie4Lio4Liy4LilIOC5gOC4iOC4tOC4lOC4iOC4s+C4meC4h+C4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C5hOC4nuC4qOC4suC4pSDguYDguIrguLXguKLguIfguKHguLINCivguYTguJ7guKjguLLguKUg4LiV4Lix4LmJ4LiH4LiI4Lij4Li04Lii4LiY4Lij4Lij4LihDQor4LmE4Lie4Lio4Liy4LilIOC4l+C4seC5ieC4p+C4quC4uOC4oOC4suC4ng0KK+C5hOC4nuC4qOC4suC4pSDguJnguLTguKXguJnguJfguLUNCivguYTguJ7guKjguLLguKUg4Lib4Lij4Liw4Lig4Liy4Lit4Lig4Li04Lij4Lix4LiV4LiZ4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4nuC4o+C4q+C4oeC4oeC4k+C4tQ0KK+C5hOC4nuC4qOC4suC4pSDguYLguJ7guJjguLTguYzguJnguLTguYjguKHguYHguJTguIcNCivguYTguJ7guKjguLLguKUg4Lii4Li44LmJ4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4peC4suC4p+C4seC4k+C4ouC4suC4geC4uOC4pQ0KK+C5hOC4nuC4qOC4suC4pSDguKfguKPguYLguJ7guJjguLTguYwNCivguYTguJ7guKjguLLguKUg4Lio4Lij4Li14LmA4LiB4LiV4Li4DQor4LmE4Lie4Lio4Liy4LilIOC4quC4s+C4o+C4suC4jeC4geC4tOC4iOC4lOC4s+C4o+C4h+C4hOC5jA0KK+C5hOC4nuC4qOC4suC4pSDguYDguKrguKPguLXguKPguLHguIHguKnguYwNCivguYTguJ7guKjguLLguKUg4Lit4Lii4Li54LmI4LmA4Lii4LmH4LiZDQor4LmE4Lie4Lio4Liy4LilIOC5guC4reC4meC5gOC4h+C4tOC4mQ0KK+C5hOC4nuC4quC4tOC4kCDguIjguKPguLTguKLguLDguYDguKjguKPguKnguJDguYwNCivguYTguJ7guYDguKPguLLguLAg4LmA4LiB4Li04LiU4Lin4Li04LiK4Lix4LiiDQor4LmE4Lie4LmA4Lij4Liy4LiwIOC4l+C4reC4h+C5g+C4mg0KK+C5hOC4nuC5gOC4o+C4suC4sCDguKPguLXguKPguLHguJXguJnguIrguLLguJXguLQNCivguYTguJ7guYDguKPguLLguLAg4Lit4Li44LmI4LiZ4LiZ4Li04LmI4LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4geC4suC4jeC4iOC4meC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguILguIjguKPguKfguLHguIrguKPguLINCivguYTguJ7guYLguKPguIjguJnguYwg4LiI4Lij4Li44LiH4Lig4Lix4Liq4Liq4Lij4LmM4LiC4LiI4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4iOC4teC4meC4guC4iOC4ow0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguIrguLHguKLguJ7guKMNCivguYTguJ7guYLguKPguIjguJnguYwg4LiL4Li24LmJ4LiH4LmA4LiB4Lip4LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4leC4peC4reC4lOC4geC4suC4pQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJfguKPguLHguJ7guKLguYzguKrguKHguJrguLnguKPguJPguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4LiY4Li14Lij4LmA4LiB4Lip4LiV4Lij4LiK4Lix4LiiDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4muC4o+C4tOC4muC4ueC4o+C4k+C5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMNCivguYTguJ7guYLguKPguIjguJnguYwg4Lie4LiH4Lip4LmM4LiI4Li04LiZ4LiU4Liy4Lin4Liy4LiZ4Li04LiKDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4nuC4tOC4oOC4seC4geC4geC4tOC4iA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKDguLHguJfguKPguKrguLjguILguYDguKrguKPguLTguKENCivguYTguJ7guYLguKPguIjguJnguYwg4LmA4Lih4LiG4Lin4Li04Lig4Liy4LiVDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4o+C4uOC5iOC4h+C4muC4o+C4o+C4peC4t+C4reC4qOC4seC4geC4lOC4tOC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKXguLTguYjguKHguIHguLLguI3guIjguJnguYLguIrguJXguLQNCivguYTguJ7guYLguKPguIjguJnguYwg4Lin4Lij4Lij4LiT4Liq4LiW4Li04LiV4Lii4LmMDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4qOC4o+C4iOC4tOC4leC4leC4tA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguYLguKjguIjguLTguKjguLjguKDguKMNCivguYTguJ7guYLguKPguIjguJnguYwg4Liq4Li04LiH4Lir4LmM4Lit4Li44Liq4Liy4Lir4LiwDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4quC4uOC4l+C4mOC4tA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKvguLLguI3guJ7guIfguKnguYzguJjguKPguKPguKENCivguYTguJ7guYLguKPguIjguJnguYwg4Lit4Lix4LiV4LiV4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC5guC4reC4p+C4suC4l+C4iOC4o+C4ueC4jeC4iOC4tOC4leC4leC5jA0KK+C4n+C4reC4h+C4hOC4syDguKPguLjguIjguLTguYHguKrguIfguK3guJnguLHguJnguJXguYwNCivguJ/guK3guIfguYHguIHguYnguKcg4Lie4Lil4LiZ4Liw4LmA4LiU4LiKDQor4Lif4Liy4LiV4Li04Lih4LiwIOC5gOC4geC4leC4uOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4n+C4suC4o+C4teC4lOC4siDguYDguIvguYfguKHguKrguKHguJ7guKMNCivguJ/guLTguKXguLTguJsg4Lib4Li04LmI4LiZ4Liq4Li44LiB4Liy4LiN4LiI4LiZ4LiwDQor4Lif4Li34LmJ4LiZIOC4q+C4tOC4o+C4seC4jeC4quC4uOC4guC4quC4seC4meC4leC5jA0KK+C4n+C4uSDguJrguLjguI3guYDguJ7guYfguIcNCivguJ/guLnguYDguIrguLXguKLguIcg4LmB4LiL4LmI4LiI4LmL4Liy4LinDQor4LmA4Lif4Li34LmI4Lit4LiH4LiJ4Lix4LiV4LijIOC4quC4uOC4hOC4meC4mOC5jOC4guC4iOC4ow0KK+C5gOC4n+C4t+C5iOC4reC4h+C4peC4seC4lOC4lOC4siDguIHguLTguIjguKrguJnguLLguYLguKLguJjguLTguJkNCivguKDguITguJ7guKMg4Lig4Lix4LiB4Lio4Lij4Li14Lin4LiH4Lip4LmMDQor4Lig4LiE4Li04LiZ4Li1IOC4quC4o+C4nuC4h+C4qOC5jOC5hOC4nuC4o+C4seC4ig0KK+C4oOC4oeC4oyDguIkg4LiV4Lij4Liw4LiB4Li54LilDQor4Lig4Lij4LiT4LmM4Lie4Lij4Lij4LiTIOC4o+C4seC4leC4quC4tOC4o+C4ouC4suC4geC4ow0KK+C4oOC4o+C4k+C4tSDguJ7guIfguKjguYzguYDguKXguLTguKjguJnguKDguLLguIHguKMNCivguKDguKPguJPguYzguYDguJ7guYfguI0g4LmB4LiB4LmJ4Lin4LiK4LmI4Lin4LiiDQor4Lig4Lij4Liy4LiU4LijIOC4o+C4reC4lOC5gOC4peC4teC5iOC4ouC4oQ0KK+C4oOC4p+C4seC4jeC4jeC4siDguKXguYnguKfguJnguYPguIjguKrguJnguJjguLTguYwNCivguKDguLHguIHguJTguLUg4LiI4Lix4LiZ4LiX4Lie4Lix4LiZ4LiY4LmMDQor4Lig4Lix4LiB4LiU4Li1IOC4nuC5iOC4p+C4h+C4oOC4seC4geC4lOC4tQ0KK+C4oOC4seC4geC4lOC4tSDguKrguLjguJ7guKPguJ7guLHguJLguJnguLINCivguKDguLHguITguJ7guIfguKnguYwg4LiB4Li44Lil4LiK4LilDQor4Lig4Lix4LiK4Lij4Li1IOC4m+C4tOC5iOC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4oOC4seC4l+C4l+C5guC4gSDguYLguIrguJXguLTguIHguYTguIHguKMNCivguKDguLHguJfguKPguYzguIHguKHguKUg4LmA4LiV4LmH4Lih4Liq4Li44LiCDQor4Lig4Lix4LiX4Lij4Lie4LijIOC4iOC4suC4o+C4uOC4nuC4seC4kuC4meC5jA0KK+C4oOC4seC4l+C4o+C4oOC4oyDguJjguJnguLLguYDguIHguKnguKHguJ7guKUNCivguKDguLHguJfguKPguYzguKfguKPguKPguJMg4LiE4LiH4Lit4Lij4Lij4LiW4LiB4Liy4LijDQor4Lig4Lix4LiX4Lij4LiyIOC5gOC4iuC4teC5iOC4ouC4p+C4p+C4uOC4kuC4tOC4oOC4suC4hA0KK+C4oOC4seC4l+C4o+C4siDguJ7guKPguJ7guIfguKjguYzguJfguKfguLXguKfguLHguJLguJnguYwNCivguKDguLHguJfguKPguLIg4Lin4Lix4LiZ4LiU4Li1DQor4Lig4Lix4LiX4Lij4Liy4Lie4LijIOC4i+C4t+C5iOC4reC4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jA0KK+C4oOC4seC4l+C4o+C4suC4oOC4o+C4k+C5jCDguYDguK3guLXguKLguKrguIHguLjguKUNCivguKDguLHguJfguKPguLLguKfguLjguJgg4Lie4Lix4LiZ4LiY4Li44LmA4Lih4LiY4Liy4Lin4LiH4Lio4LmMDQor4Lig4Lix4LiX4Lij4Li14Lii4LiyIOC4muC4uOC4jeC4ouC4oeC5guC4meC4meC4uOC4geC4uOC4pQ0KK+C4oOC4seC4quC4o+C4siDguJ7guIfguKnguYzguK3guLjguJTguJfguLINCivguKDguLHguKrguKrguKPguLIg4LmA4LiU4LiK4Liw4Lio4Li04Lij4Li0DQor4Lig4Liy4LiE4Lig4Li54Lih4Li0IOC4iuC4suC4jeC4nuC4tOC4iuC4seC4og0KK+C4oOC4suC4hOC4ouC5jCDguIHguKPguJTguJnguLTguKLguKHguIrguLHguKINCivguKDguLLguJPguLUg4LmA4LiK4Li04LiU4LiK4Li34LmI4LiZDQor4Lig4Liy4LiT4Li1IOC4quC4tOC4o+C4tOC5gOC4p+C4iuC4geC4uOC4pQ0KK+C4oOC4suC4k+C4uCDguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKDguLLguJPguLjguJjguLHguIog4Lie4Lij4Lir4Lih4Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lig4Liy4LiT4Li44Lih4Liy4LioIOC4geC4uOC4qOC4peC4peC4suC4meC4uOC4geC4ueC4pQ0KK+C4oOC4suC4k+C4uOC4p+C4seC4kuC4meC5jCDguIjguLPguIjguJQNCivguKDguLLguJPguLjguKjguLHguIHguJTguLTguYwg4Lit4Li04LiZ4LiX4Lij4Lij4Lix4LiB4Lip4LiyDQor4Lig4Liy4LiZ4Li4IOC4muC4uOC4leC4o+C4qOC4o+C4tQ0KK+C4oOC4suC4meC4uOC4oeC4suC4qCDguJ7guLnguJnguKrguLjguILguYLguIINCivguKDguLLguJnguLjguKfguLjguJgg4LiZ4Lin4Lil4Liq4LiyDQor4Lig4Liy4Lij4LiT4Li1IOC4reC4seC4muC4lOC4uOC4peC4peC4sg0KK+C4oOC4suC4o+C4lOC4tSDguYLguKPguIjguJnguKfguLHguJLguJnguKfguLjguJLguLQNCivguKDguLLguKfguJPguLUg4Liq4Lih4Lix4LiZ4LiV4LmA4Lin4LiE4Li04LiZDQor4Lig4Liy4Lin4LiU4Li1IOC4reC4oeC4o+C4nuC4seC4iuC4o+C4sA0KK+C4oOC4suC4p+C4meC4siDguJnguKPguLLguIjguLHguJnguJfguKPguYwNCivguKDguLLguKfguJnguLIg4Lio4Lij4Li14Lit4Lij4Li44LiTDQor4Lig4Liy4Lin4Li04LiT4Li1IOC4geC4peC4tOC5iOC4meC4guC4iOC4ow0KK+C4oOC4suC4p+C4tOC4k+C4tSDguJfguK3guIfguKHguLLguIENCivguKDguLLguKfguLTguJPguLUg4Lin4LiK4Li04Lij4Lib4Lix4LiN4LiN4Liy4LiZ4Li44LiB4Li54LilDQor4Lig4Liy4Lin4Li04LiVIOC5guC4leC4lOC4tOC4peC4gQ0KK+C4oOC4suC4p+C4tSDguKHguLXguKfguLHguJXguJbguLINCivguKDguLLguKrguIHguKMg4LiI4Li04LiV4LiV4Lij4Lit4LiHDQor4Lig4Liy4Liq4LiB4LijIOC5gOC4q+C4oeC4geC4o+C4k+C5jA0KK+C4oOC4tOC4iuC4jeC4o+C4seC4leC4meC5jCDguKfguIfguKjguYzguKfguKrguLjguKrguLTguJkNCivguKDguLTguI3guYLguI0g4LiC4Lix4LiZ4LiX4Lit4LiHDQor4Lig4Li04LiN4LmC4LiNIOC4mOC4seC4meC4p+C4suC4o+C4iuC4ow0KK+C4oOC4tOC4jeC5guC4jSDguKPguJ7guLXguJ7guLTguKjguLLguKUNCivguKDguLTguI3guYLguI0g4Lir4Li04LmC4LiV4Lib4LiB4Lij4LiT4LmMDQor4Lig4Li04Lij4Lih4LiT4LmMIOC4hOC4h+C4reC4ouC4ueC5iA0KK+C4oOC4tOC4o+C4oeC4ouC5jCDguInguLLguKLguLLguKPguLHguIHguKnguYwNCivguKDguLTguKPguKHguKLguYwg4Lie4Lik4LiB4Lip4LiK4Liy4LiV4Li04LmA4LiI4Lij4Li04LiNDQor4Lig4Li04Lij4Lih4Lii4LmMIOC4quC4h+C4p+C4meC4meC4suC4oQ0KK+C4oOC4tOC5gOC4qOC4gSDguYPguIjguK3guYjguK3guJnguJnguYnguK3guKENCivguKDguLjguIrguIfguITguYwg4LiV4Lix4LiT4LiR4LmM4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4Lig4Li44LiK4LiK4LiH4LiE4LmMIOC4iuC4suC4jeC4mOC4meC4suC4geC4tOC4iA0KK+C4oOC4uSDguYPguIjguIrguLLguKINCivguKDguLnguKHguLQg4LmC4Liq4Lig4Liy4LiI4Liy4Lij4Li14Lii4LmMDQor4Lig4Li54Lih4Li04Lie4Li04LiK4LiN4LmMIOC4iOC4o+C4o+C4ouC4suC4p+C4tOC4iOC4seC4geC4qeC4k+C5jA0KK+C4oOC4ueC4o+C4tOC4lOC4siDguYLguJfguJjguIHguLLguJnguLHguJnguJfguYwNCivguKDguLnguKfguJTguKUg4LmA4Lij4Li34Lit4LiH4LmC4LiB4Liq4Li04LiZ4LiX4Lij4LmMDQor4Lig4Li54Lin4LiZ4Liy4Lij4LiWIOC4reC4uOC5gOC4l+C4qOC4meC4seC4meC4l+C4meC5jA0KK+C4oOC4ueC4qeC4tOC4lSDguJvguKPguLDguJjguLLguJnguJ7guLTguJ7guLHguJLguJnguYwNCivguKDguLnguYDguIHguYfguIgg4LmB4Liq4LiU4LiH4LiY4Lij4Lij4LihDQor4LmA4Lig4Liy4Lin4LiZ4LiyIOC4reC4tOC4meC4l+C4sOC5geC4quC4hw0KK+C4oeC4h+C4hOC4pSDguIHguKnguLTguJXguLTguJvguKPguLDguJTguLTguKnguJANCivguKHguIfguITguKUg4LmA4LiC4Li14Lii4Lin4Lic4Li24LmJ4LiHDQor4Lih4LiH4LiE4LilIOC4iOC4seC4meC4l+C4o+C5jOC5geC4quC4h+C4o+C4seC4leC4meC5jA0KK+C4oeC4h+C4hOC4pSDguInguLTguKHguYDguKXguYfguIENCivguKHguIfguITguKUg4LmB4LiL4LmI4LiB4Li44LmI4LiiDQor4Lih4LiH4LiE4LilIOC4leC4seC5ieC4h+C4iOC4tOC4leC4leC5jOC4p+C4seC4kuC4meC4sg0KK+C4oeC4h+C4hOC4pSDguJfguLHguJrguJfguLTguKHguIrguLnguKrguLjguKfguKPguKPguJMNCivguKHguIfguITguKUg4LiZ4Liy4LiE4Liw4Lih4LiyDQor4Lih4LiH4LiE4LilIOC4m+C4suC4k+C4sOC4muC4o+C4o+C4iOC4hw0KK+C4oeC4h+C4hOC4pSDguJ7guYjguKfguIfguJ7guIfguKjguYwNCivguKHguIfguITguKUg4Lig4Liy4Liq4LiB4Lij4LiI4Lij4Lix4LiqDQor4Lih4LiH4LiE4LilIOC4ouC4t+C4meC4ouC4h+C4q+C4seC4leC4luC4oOC4o+C4k+C5jA0KK+C4oeC4h+C4hOC4pSDguKXguLTguYjguKfguKHguYLguJnguKHguJnguJXguYwNCivguKHguIfguITguKUg4Lin4Li04LiZ4Li04LiI4LmA4LiI4Lij4Li04LiN4Lio4Lij4Li1DQor4Lih4LiH4LiE4LilIOC4qOC4tOC4o+C4tOC5geC4quC4h+C4iuC4seC4ouC4geC4uOC4pQ0KK+C4oeC4h+C4hOC4pSDguKrguLXguJTguLINCivguKHguIfguITguKUg4LmB4Liq4LiH4Lin4LiH4Lio4LmM4Lin4Liy4LiT4Li04LiK4Lii4LmMDQor4Lih4LiH4LiE4LilIOC4reC4ouC4ueC5iOC4meC4uOC4ig0KK+C4oeC4h+C4hOC4pSDguYDguK7guIfguJrguLjguI3guKrguLjguILguIHguLjguKUNCivguKHguYjguIfguYDguIvguLXguYnguKIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lih4LiT4LiR4Lij4Li04LiBIOC5gOC4lOC4iuC4q+C4meC4uQ0KK+C4oeC4k+C4keC4pSDguYPguJrguJrguLHguKcNCivguKHguJPguJHguKUg4Lit4Lix4Lio4Lin4Lig4Lix4LiX4Lij4Liy4LiB4LijDQor4Lih4LiT4LiR4LiyIOC4iOC4o+C4uOC4h+C4geC4peC4tOC5iOC4mQ0KK+C4oeC4k+C4keC4siDguYHguIvguYjguYDguK7guYnguIcNCivguKHguJPguJHguLIg4LmA4LiZ4Li14Lii4Lih4Lio4Li04Lij4Li0DQor4Lih4LiT4LiR4LiyIOC4nuC4uOC4kuC4leC4suC4pQ0KK+C4oeC4k+C4keC4siDguYDguKXguLTguKjguJfguJnguLjguJ7guIfguKjguYwNCivguKHguJPguJHguLIg4Liq4Lix4LiZ4LiV4Li04LiY4Lix4LiN4LiN4Liy4LmC4LiK4LiEDQor4Lih4LiT4LiR4LiyIOC5gOC4q+C4peC4t+C4reC4h+C4peC4seC4jeC4iOC4geC4ow0KK+C4oeC4k+C4keC4suC4l+C4tOC4nuC4ouC5jCDguYLguJXguYHguKLguYnguKENCivguKHguJPguJHguLTguJXguLIg4Lit4Li54LmI4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lih4LiT4LiR4LmMIOC4quC4oeC4nuC4seC4meC4mOC5jA0KK+C4oeC4k+C4nuC4tOC4o+C4siDguK3guLLguIfguJnguLLguJnguJnguJfguYwNCivguKHguJPguLUg4LmC4LiB4Lio4Lil4LmA4Lih4LiY4Liy4LiB4Li44LilDQor4Lih4LiT4Li1IOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4oeC4k+C4tSDguYHguIvguYjguYLguITguYnguKcNCivguKHguJPguLUg4LiX4Lit4LiH4LmA4LiB4Lip4LijDQor4Lih4LiT4Li1IOC4muC4uOC4jeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4oeC4k+C4tSDguJ7guLHguJLguJnguLDguYDguK3guJnguIENCivguKHguJPguLUg4Lih4Li54Liu4Liz4Lih4Lix4LiU4LmC4LiZDQor4Lih4LiT4Li1IOC4p+C4h+C4qOC5jOC4geC4o+C4uOC4lA0KK+C4oeC4k+C4tSDguKjguLTguKPguLTguKfguLHguJLguJjguJnguLDguJXguKPguLDguIHguLnguKUNCivguKHguJPguLUg4Liq4Li44LiZ4LiX4Lij4Lil4Li04Lib4Li04LiB4LijDQor4Lih4LiT4Li1IOC4reC4seC4qOC4p+C4iOC4tOC4meC4lOC4suC4p+C4seC4kuC4meC5jA0KK+C4oeC4k+C4teC4meC4suC4jyDguJ7guIfguKjguYzguKDguITguKfguLHguJXguKMNCivguKHguJPguLXguKPguLHguIHguKnguYwg4LiI4Li04LiZ4LiV4LiZ4Liy4Lia4Lij4Lij4LmA4LiI4Li04LiUDQor4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMIOC5geC4iOC5ieC4h+C5geC4iOC5iOC4oeC4iOC4tOC4leC4leC5jA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguJbguLTguJnguJvguKfguLHguJXguLQNCivguKHguJPguLXguKPguLHguJXguJnguYwg4Lie4Lij4LiB4Li44Lil4Lin4Lix4LiS4LiZ4LmMDQor4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMIOC5gOC4peC4tOC4qOC4quC4uOC4hOC4meC4mOC5jA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguKrguLjguKfguKPguKPguJPguKDguLLguKDguKPguJPguYwNCivguKHguJPguLXguKfguKPguKPguJMg4LiTIOC4meC4hOC4ow0KK+C4oeC4k+C4teC4p+C4seC4peC4ouC5jCDguK3guKHguKPguJjguLXguKPguLDguIHguLjguKUNCivguKHguJPguYDguJHguLXguKLguKMg4LiK4Lix4Lii4Lih4Li04LiV4Lij4LmA4LiI4Lij4Li04LiNDQor4Lih4LiT4LmA4LiR4Li14Lii4LijIOC4nuC4ueC4peC4qOC4tOC4o+C4tA0KK+C4oeC4k+C5gOC4keC4teC4ouC4oyDguK3guLLguIjguJrguKPguKPguIjguIcNCivguKHguJjguLjguKPguKog4Lia4Li44LiV4Lij4LiU4Li1DQor4Lih4LiZ4LiK4Lii4LiyIOC5hOC4geC4o+C4pOC4geC4qeC5jA0KK+C4oeC4meC4k+C4seC4iuC4iuC4siDguIrguLnguIrguLLguJXguLTguYTguJfguKINCivguKHguJnguJXguYzguIrguLHguKIg4LmC4LiK4LiV4Li04Lir4Li04Lij4Lix4LiT4Lij4Lix4LiV4LiZ4LmMDQor4Lih4LiZ4LiV4LmM4LiK4Lix4LiiIOC5hOC4nOC4l+C4o+C4seC4geC4qeC4suC4mOC4o+C4o+C4oQ0KK+C4oeC4meC4leC5jOC4iuC4seC4oiDguKfguLTguKrguLjguJfguJjguLTguKrguKfguLHguKrguJTguLTguYwNCivguKHguJnguJXguYzguIrguLHguKIg4LmA4Lit4Li14LmI4Lii4Lih4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Lih4LiZ4LiV4Lij4LmM4Lin4LiH4Lio4LmMIOC4oOC4seC4l+C4o+C4p+C4tOC4l+C4ouC5jA0KK+C4oeC4meC4leC4o+C4tSDguYHguIHguYnguKfguYDguKXguYfguIENCivguKHguJnguJXguKPguLUg4LiI4Lij4Li04Lii4Liy4LiB4Li54LilDQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC5jA0KK+C4oeC4meC4leC4o+C4tSDguIrguLnguJnguLLguKHguIrguLHguKINCivguKHguJnguJXguKPguLUg4LiU4Liy4Lin4LmA4Lij4Li34Lit4LiHDQor4Lih4LiZ4LiV4Lij4Li1IOC5geC4leC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4oeC4meC4leC4o+C4tSDguJjguKPguKPguKHguKPguLHguIfguKnguLUNCivguKHguJnguJXguKPguLUg4LmA4LiZ4Li14Lii4Lih4LiI4Li14LiZDQor4Lih4LiZ4LiV4Lij4Li1IOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4p+C4tOC4l+C4ouC4suC4geC4suC4ow0KK+C4oeC4meC4leC4o+C4tSDguJ7guKPguJ7guIjguJnguYzguJjguJnguKHguLLguKgNCivguKHguJnguJXguKPguLUg4LmA4Lie4Li04LmI4Lih4Lic4Lil4LiK4Lix4Lii4LiB4Li44LilDQor4Lih4LiZ4LiV4Lij4Li1IOC4oeC4suC4meC4sOC4l+C4seC4lQ0KK+C4oeC4meC4leC4o+C4tSDguKPguK3guJTguKrguKfguLHguKrguJTguLTguYwNCivguKHguJnguJXguKPguLUg4Lil4Li14Lil4Liy4LmC4Liq4Lig4Li04LiTDQor4Lih4LiZ4LiV4Lij4Li1IOC4p+C4tOC4nuC4seC4meC4mOC5jOC4p+C4o+C4nuC4h+C4qeC5jA0KK+C4oeC4meC4leC4o+C4tSDguKjguLTguKPguLTguJXguLHguJnguJXguLTguJjguKPguKPguKENCivguKHguJnguJXguKPguLUg4Liq4Lix4LiH4LiC4Lin4Li44LiS4Li04LiK4Lix4Lii4LiB4Li44LilDQor4Lih4LiZ4LiV4Lij4Li1IOC4quC4uOC4muC4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4oeC4meC4leC4o+C4tSDguKvguKTguYTguIrguKLguLDguKjguLHguIHguJTguLTguYwNCivguKHguJnguJXguKPguLUg4Lit4Lix4LiH4Lio4Li44LiY4LiZ4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4reC4t+C5ieC4reC4reC4oeC4ow0KK+C4oeC4meC4leC5jCDguYDguIrguJXguKHguLUNCivguKHguJnguJfguLTguJ7guKLguYwg4Lin4Li04LiK4Lix4Lii4LiY4LiZ4Lie4Lix4LiS4LiZ4LmMDQor4Lih4LiZ4LiY4Li04Lij4LiyIOC5gOC4reC4geC4muC4uOC4jeC4ouC4t+C4mQ0KK+C4oeC4meC4p+C4tOC4oOC4siDguJvguKPguLDguIrguLHguI3guITguJTguLUNCivguKHguJnguLHguJnguKLguYwg4Lia4Li44LiN4Lii4Liw4LiK4Lix4LiiDQor4Lih4LiZ4Lix4LiqIOC4guC4seC4meC4mOC4tOC5guC4iuC4leC4tA0KK+C4oeC4meC4seC4qiDguIjguLHguJnguJfguKfguLTguIoNCivguKHguJnguLHguKog4LiK4Lix4Lii4Liq4Li44Lig4LiyDQor4Lih4LiZ4Lix4LiqIOC4lOC4teC4iuC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4oeC4meC4seC4qiDguJfguK3guIfguKrguLDguK3guLLguJQNCivguKHguJnguLHguKog4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4Lih4LiZ4Lix4LiqIOC4m+C4o+C4sOC4iOC4seC4geC4qeC5jOC4iOC4tOC4leC4o+C5jA0KK+C4oeC4meC4seC4qiDguJ7guKXguLHguJrguJrguLjguKPguLUNCivguKHguJnguLHguKog4Lig4Liy4LiE4Li14LiY4Lij4Lij4LihDQor4Lih4LiZ4Lix4LiqIOC4ouC4reC5geC4quC4hw0KK+C4oeC4meC4seC4qiDguYDguKXguLTguKjguKfguLHguJLguJnguLLguYDguKrguKPguLUNCivguKHguJnguLHguKog4Lio4Lij4Li14LiY4LiZ4Liq4Liy4LijDQor4Lih4LiZ4Lix4LiqIOC4quC4reC4tOC5ieC4h+C4l+C4reC4hw0KK+C4oeC4meC4seC4qiDguKrguLjguKDguLLguKfguLTguJXguLINCivguKHguJnguLHguKog4Lit4LiH4LiE4LmM4Liq4Lij4LiT4Liw4LiE4LihDQor4Lih4LiZ4Lix4LiqIOC5guC4reC4quC4luC4iOC4seC4meC4l+C4o+C5jA0KK+C4oeC4meC4seC4quC4p+C4tSDguJ7guKLguLHguITguIbguJnguLHguJnguJfguJnguYwNCivguKHguJnguLjguIrguI3guYwg4Lin4Lix4LiS4LiZ4LmC4LiB4LmA4Lih4LijDQor4Lih4LiZ4Li5IOC5guC4iuC4leC4tOC4o+C4seC4lQ0KK+C4oeC4meC4uSDguJvguLTguYjguJnguKDguLnguYgNCivguKHguJnguLkg4Lin4Liy4Lin4Li1DQor4Lih4LiZ4Li5IOC4reC4seC4qOC4p+C5gOC4geC4qOC4oeC4k+C4tQ0KK+C4oeC4meC4ueC4jSDguIrguLnguKjguLTguKPguLTguK3guLjguJfguLHguKINCivguKHguJnguLnguI0g4LiZ4Li44LiV4Lin4LiH4Lip4LmMDQor4Lih4LiZ4Li54LiNIOC4nuC4ueC4peC4l+C4p+C4tQ0KK+C4oeC4meC4ueC4jSDguKfguLTguIHguIHguKHguLLguJnguLHguJnguJfguYwNCivguKHguJnguLnguI0g4Lir4Li04LiZ4Lil4Lit4LiiDQor4Lih4LiZ4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4muC4uOC4jeC4oeC4suC5gOC4peC4tOC4qA0KK+C4oeC4ouC4uOC4o+C4siDguIjguLXguKPguIjguKPguLTguKLguLLguYDguKfguIoNCivguKHguKLguLjguKPguLUg4LiB4Lil4Li04LmI4LiZ4LiC4LiI4LijDQor4Lih4Lii4Li44Lij4Li1IOC4iOC4h+C4reC4uOC4lOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4ouC4uOC4o+C4tSDguYDguInguKXguLTguKHguYDguILguJXguJXguYwNCivguKHguKLguLjguKPguLUg4LmA4LiU4LiK4Liq4Lih4Lik4LiX4LiY4Li04LmM4Lik4LiX4Lix4LiiDQor4Lih4Lii4Li44Lij4Li1IOC4mOC4meC4suC5gOC4geC4teC4ouC4o+C4leC4tOC4oOC4tOC4jeC5guC4jQ0KK+C4oeC4ouC4uOC4o+C4tSDguJvguLTguYjguJnguYHguIHguYnguKcNCivguKHguKLguLjguKPguLUg4LmA4Lie4LmH4LiK4Lij4LmM4Lie4LiZ4Lih4Lie4LijDQor4Lih4Lii4Li44Lij4Li1IOC5geC4ouC5ieC4oeC5gOC4geC4qeC4ow0KK+C4oeC4ouC4uOC4o+C4tSDguKfguIfguKnguYzguKrguKHguJrguLnguKPguJPguYwNCivguKHguKLguLjguKPguLUg4Liq4LiW4Liy4Lie4Lij4Lin4Li44LiS4Li04LiE4Li44LiTDQor4Lih4Lii4Li44Lij4Li1IOC5hOC4quC4ouC4quC4oeC4muC4seC4leC4tA0KK+C4oeC4ouC4uOC4o+C4tSDguYDguK3guLXguYjguKLguKHguYDguIjguKPguLTguI0NCivguKHguKPguIHguJUg4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Lit4LiHDQor4Lih4Lij4LiB4LiVIOC4qOC4ouC4suC4oeC4pQ0KK+C4oeC4o+C4tOC4meC4siDguJTguYjguLLguJnguKfguJnguLTguIoNCivguKHguKXguJHguLIg4Lie4Li04Lih4Lie4LmM4LmA4Lir4Lil4Li14LmI4Lii4LihDQor4Lih4Lil4Lic4LiB4LiyIOC4quC4o+C4o+C5gOC4nuC4iuC4lOC4suC4jeC4suC4mQ0KK+C4oeC4peC4pOC4lOC4tSDguJvguKPguLDguKrguIfguITguYzguJzguKUNCivguKHguKXguKfguLTguKDguLIg4LmD4LiI4Lir4Lil4Lix4LiBDQor4Lih4Lil4Li0IOC4q+C4peC4teC4quC4uOC4guC5gOC4quC4o+C4tOC4kA0KK+C4oeC4peC4tOC4p+C4seC4peC4ouC5jCDguYHguIHguYnguKfguKrguJ7guLLguJkNCivguKHguKXguLTguKfguLHguKXguKLguYwg4Lie4LiI4LiZ4Liq4Lix4LiIDQor4Lih4Lil4Li04Lin4Lix4Lil4Lii4LmMIOC4quC4uOC4guC4m+C4o+C4sOC4quC4suC4lw0KK+C4oeC5iOC4p+C4oiDguYHguIvguYjguITguLkNCivguKHguYjguKfguKIg4Liq4LiW4Li04Lij4LiK4Lin4Liy4LilDQor4Lih4LmI4Lin4Lii4LmA4LiB4Li14LmJ4LiiIOC4peC4suC4iOC4seC4h+C4q+C4o+C4teC4lA0KK+C4oeC5ieC4p+C4oiDguYDguKvguKXguYjguLLguKrguLTguKPguLTguKDguLnguKHguLQNCivguKHguK3guIvguYwg4LiB4Liy4Lih4Lij4Li54LiU4Li04LiZDQor4Lih4Liw4LiZ4Li04LiV4Lii4LmMIOC5gOC4iuC4t+C5ieC4reC4meC4uOC4ig0KK+C4oeC4sOC4peC4tCDguIHguKXguLTguYjguJnguKHguLLguKXguLINCivguKHguLDguKXguLQg4LiI4Li04Lin4Liw4Liq4Lih4Lir4Lin4Lix4LiHDQor4Lih4Liw4Lil4Li0IOC4lOC5ieC4p+C4h+C5gOC4h+C4tOC4mQ0KK+C4oeC4sOC4peC4tCDguJnguLLguKHguKHguJnguJXguKPguLUNCivguKHguLDguKXguLQg4Lie4Li04Lij4Li04Lii4Liw4Lit4LiZ4LiZ4LiX4LmMDQor4Lih4Liw4Lil4Li0IOC4o+C4ueC4m+C4nuC4o+C4q+C4oQ0KK+C4oeC4sOC4peC4tCDguKrguLLguJjguLgNCivguKHguLDguKXguLQg4Lit4Lih4Lij4Li04LiZ4LiX4Lij4LmM4LmA4LiX4Lin4LiyDQor4Lih4Liw4Lil4Li04Lin4Lij4Lij4LiTIOC4o+C4suC4ouC4k+C4sOC4quC4uOC4gg0KK+C4oeC4sOC4peC4tOC4p+C4seC4peC4ouC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguKHguLDguKXguLTguKfguLHguKXguKLguYwg4Lin4Lix4LiS4LiZ4LiB4Li04LiV4LiV4Li04Lie4LijDQor4Lih4Liw4Lir4Liw4Lir4Lih4Liy4LiU4Lij4Liy4Lir4Lin4Li1IOC4meC4suC4m+C4suC5gOC4peC4mQ0KK+C4oeC4seC4h+C4geC4oyDguIjguLXguKPguKDguLHguJfguKPguYwNCivguKHguLHguIfguIHguKMg4Lii4Liy4LiZ4LmJ4Lit4LiiDQor4Lih4Lix4LiI4LiJ4Lij4Li1IOC5geC4i+C5iOC5gOC4leC4teC5i+C4ouC4pw0KK+C4oeC4seC4k+C4keC4meC4siDguIHguLnguYnguKrguLjguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguKHguLHguJPguJHguJnguLIg4LiY4Liy4LiU4Liy4Liq4Li14Lir4LmMDQor4Lih4Lix4LiT4LiR4LiZ4LiyIOC4o+C4seC4leC4iuC4sOC4luC4suC4p+C4ow0KK+C4oeC4seC4k+C4keC4meC4siDguK3guKLguLnguYjguKLguIfguITguYwNCivguKHguLHguJQg4LmA4LiU4LiK4Liw4LiK4Li14LieDQor4Lih4Lix4LiX4LiZ4LiyIOC5guC4iuC4hOC4p+C4o+C4p+C4seC4kuC4meC4geC4ow0KK+C4oeC4seC4l+C4meC4siDguYLguK3guKrguJbguKvguIfguKnguYwNCivguKHguLHguJjguKLguLIg4Lij4Lin4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lih4Lix4LiZ4LiX4LiZ4LiyIOC4qOC4o+C4quC4tOC4h+C4q+C5jA0KK+C4oeC4seC4meC5guC4oeC4ruC4seC4meC4i+C4tOC4h+C4q+C5jCDguIjguLLguKfguKXguLLguKvguYwNCivguKHguLHguYnguJnguJ/guLIg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4Lih4Lix4Lil4Lil4Li04LiB4LiyIOC4iuC4seC4ouC4quC4tOC4o+C4tOC5guC4o+C4iOC4meC5jA0KK+C4oeC4seC4peC4peC4tOC4geC4siDguJ7guIfguKjguYzguYDguJXguYfguKHguKrguLjguIINCivguKHguLHguKXguKXguLTguIHguLIg4Lio4Lij4Li14Lin4Li14Lij4Liw4Lin4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Lih4Lix4Lil4Lil4Li1IOC4iOC4h+C5gOC4geC4qeC4oQ0KK+C4oeC4suC4gSDguYDguKvguKHguLfguK3guJnguIjguLHguJnguJfguKPguYwNCivguKHguLLguJPguJ4g4Lij4Li44LiI4LiZ4Li04Liq4Lij4LiB4Li44LilDQor4Lih4Liy4LiT4Li1IOC4muC4uOC4jeC4q+C4peC4hw0KK+C4oeC4suC4lOC4tSDguYHguIvguYjguYLguITguYnguKcNCivguKHguLLguJnguJnguJfguYwg4LmC4LiV4Lin4LiH4Lio4LmM4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lih4Liy4LiZ4LieIOC4guC4s+C4iuC4t+C5iOC4mQ0KK+C4oeC4suC4meC4niDguIjguLTguJXguJXguYDguIHguKnguKENCivguKHguLLguJnguJ4g4LiL4Lix4Lia4LiL4LmJ4Lit4LiZDQor4Lih4Liy4LiZ4LieIOC4l+C4o+C4h+C5gOC4quC4teC5iOC4ouC4h+C4iuC4seC4og0KK+C4oeC4suC4meC4niDguJnguLTguYjguKHguJnguKfguKXguK3guJnguLHguJnguJXguYwNCivguKHguLLguJnguJ4g4Lib4Li04Lii4Liw4Liq4Lit4LiZDQor4Lih4Liy4LiZ4LieIOC4nuC4tuC5iOC4h+C4reC4s+C4meC4p+C4og0KK+C4oeC4suC4meC4niDguKHguLnguK7guLPguKvguKHguLHguJQNCivguKHguLLguJnguJ4g4Lil4Li14Lil4Liy4Lir4Li04Lij4Lix4LiNDQor4Lih4Liy4LiZ4LieIOC4qOC4o+C4teC4quC4h+C4p+C4mQ0KK+C4oeC4suC4meC4niDguKrguLjguILguKfguIfguKnguYzguKjguLTguKXguJvguYwNCivguKHguLLguJnguJ4g4LmA4Lir4Lil4LmI4Liy4LiC4Lin4Lix4LiN4Liq4LiW4Li04LiV4Lii4LmMDQor4Lih4Liy4LiZ4Lin4Li04Lig4LiyIOC4oeC4suC4qOC4nuC4h+C4qOC5jA0KK+C4oeC4suC4meC4sCDguIfguLLguKHguKfguLHguIrguKPguKrguIHguLjguKUNCivguKHguLLguJnguLAg4LmA4LiK4Li14LmI4Lii4Lin4Liq4LiH4Lin4LiZDQor4Lih4Liy4LiZ4LiwIOC4l+C4o+C4seC4nuC4ouC5jOC4h+C4suC4oeC4qOC4tOC4o+C4tA0KK+C4oeC4suC4meC4sCDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJANCivguKHguLLguJnguLAg4Lie4Li04Lih4Lie4LmM4Liq4Lih4Li44LiX4LijDQor4Lih4Liy4LiZ4LiwIOC4o+C4seC4leC4meC4h+C4suC4oeC4geC4uOC4pQ0KK+C4oeC4suC4meC4sCDguKfguLTguKrguLjguJfguJjguLTguYzguKrguKHguLjguJfguKMNCivguKHguLLguJnguLAg4Liq4Li14Lic4LmI4Lit4LiHDQor4Lih4Liy4LiZ4LiwIOC4reC4tOC4meC4l+C4o+C4nuC4tOC4meC4l+C4uOC4p+C4seC4kuC4meC5jA0KK+C4oeC4suC4meC4seC4lSDguKLguK3guJTguKHguJnguJXguYwNCivguKHguLLguJnguLHguKog4Lij4Li44LmI4LiH4LmA4LiX4Li14Lii4LihDQor4Lih4Liy4LiZ4Li04LiIIOC4l+C4tOC4oeC4nuC4seC4kuC4meC4nuC4h+C4qOC5jA0KK+C4oeC4suC4meC4tOC4lOC4siDguKPguLHguIrguJTguLLguJfguLTguJXguKLguYwNCivguKHguLLguJnguLTguJUg4LmA4LiI4Li14Lii4Lij4LiU4Li04LiQDQor4Lih4Liy4LiZ4Li04LiVIOC4meC4tOC4peC5gOC4guC4leC4o+C5jA0KK+C4oeC4suC4meC4tOC4lSDguKLguKjguK3guJnguLHguJnguJXguIHguLjguKUNCivguKHguLLguJnguLTguJUg4Liq4Li44LiI4Lij4Li04LiV4Lin4Lix4LiS4LiZ4Lio4Lix4LiB4LiU4Li04LmMDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4geC4suC4q+C4peC4hw0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguIjguLjguJnguJfguIHguLLguKMNCivguKHguLLguJnguLTguJXguKLguYwg4LiU4Li04Lip4LiQ4Lin4Li04Lio4Liy4LilDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4meC4suC4hOC5hOC4l+C4og0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguYDguJzguLfguK3guIHguKfguLHguJLguJnguLANCivguKHguLLguJnguLTguJXguKLguYwg4Lih4Li14LiK4LiZ4LiwDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4p+C4h+C4qOC5jOC4geC4tOC4leC4leC4tOC4nuC4seC4kuC4meC4sg0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguKrguLHguIjguIjguYDguJTguIrguLANCivguKHguLLguJnguLTguJXguKLguYwg4Lit4LiZ4Li44Lij4Lix4LiV4LiZ4LmM4Lie4Liy4LiZ4Li04LiKDQor4Lih4Liy4LiZ4Li04Liq4LiyIOC5gOC4oeC4huC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4oeC4suC4meC4teC4o+C4seC4leC4meC5jCDguKHguLHguJfguJjguKfguKPguLHguJXguJnguYwNCivguKHguLLguKPguKLguLLguJcg4LiI4Lix4LiV4Li44Lij4LiH4LiE4LmMDQor4Lih4Liy4Lij4Lio4Lij4Li1IOC4iOC4seC4meC4l+C4o+C5jOC5gOC4oeC4t+C4reC4hw0KK+C4oeC4suC4o+C4qOC4o+C4tSDguKLguLDguK3guLjguYLguKHguIfguITguYwNCivguKHguLLguKPguKjguKPguLUg4Lit4Lix4Liq4Lin4Liw4Lin4Li04Liq4Li04LiX4LiY4Li04LmM4LiK4Lix4LiiDQor4Lih4Liy4Lij4Li04LipIOC4l+C5iOC4suC4o+C4suC4mg0KK+C4oeC4suC4o+C4tOC4quC4siDguIHguLLguI3guIjguYLguJnguKDguLLguKoNCivguKHguLLguKPguLTguKrguLIg4Liq4Li44LiX4LiY4Li04Lin4Lij4Lij4LiT4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lih4Liy4Lij4Li44LiI4LiyIOC4quC4uOC4o+C4nuC4seC4meC4mOC4uOC5jA0KK+C4oeC4suC4o+C4uOC4lSDguKrguLjguJnguJfguKPguKjguLTguKPguLTguJrguLjguI3guI3guLINCivguKHguLLguKXguLHguKIg4LiC4Liz4LmA4LiI4Lij4Li04LiN4Lie4LijDQor4Lih4Liy4Lil4Lix4LiiIOC4iuC4oeC4nuC4ueC4muC4uOC4leC4ow0KK+C4oeC4suC4peC4seC4oiDguJTguK3guIHguJrguLHguKfguKvguKXguKfguIcNCivguKHguLLguKXguLHguKIg4LiZ4Liy4LmD4Lir4LmJ4Lic4LilDQor4Lih4Liy4Lil4Lix4LiiIOC4nuC4o+C4q+C4oeC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4oeC4suC4peC4seC4oiDguKLguLHguIfguKrguKfguYjguLLguIcNCivguKHguLLguKXguLHguKIg4Lio4Lij4Li14LiK4LmJ4Liy4LiH4Lit4Li04LmI4LihDQor4Lih4Liy4Lil4Lix4LiiIOC5geC4quC4h+C4h+C4tOC5ieC4pw0KK+C4oeC4suC4peC4seC4ouC4geC4o+C4reC4hyDguKHguLnguKXguKjguLLguKrguJXguKPguYwNCivguKHguLLguKXguLIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lih4Liy4Lil4LiyIOC4q+C4tOC4o+C4seC4jeC4pOC4l+C4mOC4tOC5jA0KK+C4oeC4suC4peC4tOC4mSDguIrguKXguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKHguLLguKXguLTguJnguLUg4LiB4Liz4LmA4LiZ4Li04LiU4LiU4Li04Lip4LiQ4LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4iuC4reC4uOC5iOC4oeC4nuC4pOC4geC4qeC5jA0KK+C4oeC4suC4peC4tOC4meC4tSDguJfguKPguLHguJ7guKLguKfguJPguLTguIoNCivguKHguLLguKXguLTguJnguLUg4LmB4Lib4LmJ4LiH4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4ouC4reC4lOC5guC4nuC4mOC4tOC5jOC4l+C4reC4hw0KK+C4oeC4suC4peC4tOC4meC4tSDguKjguKPguLXguKrguLjguKfguLHguIjguKPguLXguKLguYwNCivguKHguLLguKXguLTguJnguLUg4Lir4Lik4LiX4Lix4Lii4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lih4Liy4Lil4Li1IOC4geC4peC4seC5iOC4meC4iOC4seC4h+C4q+C4o+C4teC4lA0KK+C4oeC4suC4peC4tSDguIHguLjguJnguLDguKfguIfguKnguYwNCivguKHguLLguKXguLUg4LiC4Lix4LiZ4LiV4Li04Lin4LiH4Lin4Liy4LijDQor4Lih4Liy4Lil4Li1IOC5gOC4hOC4o+C4t+C4reC5gOC4ieC4peC4tOC4oeC4nuC4seC4meC4mOC5jA0KK+C4oeC4suC4peC4tSDguIjguLHguJnguYPguIjguYDguJTguYfguJQNCivguKHguLLguKXguLUg4LmA4LiI4Lij4Li04LiN4LmA4LiB4Lip4LiB4Li04LiIDQor4Lih4Liy4Lil4Li1IOC4iuC4seC4ouC4p+C4meC4tOC4iuC4ouC4sg0KK+C4oeC4suC4peC4tSDguYDguIrguLfguYnguK3guKjguLTguKPguLQNCivguKHguLLguKXguLUg4LmB4LiL4LmI4LiV4Lix4LiZDQor4Lih4Liy4Lil4Li1IOC5geC4i+C5iOC5gOC4leC5h+C4hw0KK+C4oeC4suC4peC4tSDguJTguLPguKPguIfguIHguLTguIjguIHguLjguKXguIrguLHguKINCivguKHguLLguKXguLUg4LiV4Lix4LiZ4LiV4Li04Lib4Li04LiP4LiBDQor4Lih4Liy4Lil4Li1IOC4l+C4p+C4teC4qOC4o+C4tQ0KK+C4oeC4suC4peC4tSDguJjguKPguKHguJjguLHguIoNCivguKHguLLguKXguLUg4LiZ4Li04Lig4Liy4LiB4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lih4Liy4Lil4Li1IOC4muC4uOC4jeC4o+C4reC4lA0KK+C4oeC4suC4peC4tSDguJvguLLguJnguIjguLHguJnguJfguKPguYwNCivguKHguLLguKXguLUg4Lie4LiH4Lio4LmM4Liq4Liz4Lij4Liy4LiNDQor4Lih4Liy4Lil4Li1IOC4nuC4seC4meC4nOC4tuC5ieC4hw0KK+C4oeC4suC4peC4tSDguYHguJ7guKPguYjguKjguKPguLXguJXguKPguLDguIHguLnguKUNCivguKHguLLguKXguLUg4Lih4LiZ4LiV4LmM4Lin4Li04LmA4Lio4LipDQor4Lih4Liy4Lil4Li1IOC4ouC4p+C4h+C5gOC4h+C4tOC4mQ0KK+C4oeC4suC4peC4tSDguKPguLHguJXguJnguLLguJnguJnguJfguYwNCivguKHguLLguKXguLUg4Lil4Li04Lih4Lib4Li04Lii4Liy4LiB4LijDQor4Lih4Liy4Lil4Li1IOC4p+C4h+C4qOC5jOC5geC4q+C4peC4oeC4l+C4reC4hw0KK+C4oeC4suC4peC4tSDguKfguLTguKXguLHguKLguKrguLHguKHguJ7guLHguJnguJjguYwNCivguKHguLLguKXguLUg4Lio4Li04Lij4Li04LiE4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Lih4Liy4Lil4Li1IOC4quC4o+C5ieC4suC4h+C4hOC4p+C4suC4oeC4hOC4tOC4lA0KK+C4oeC4suC4peC4tSDguKrguLTguJnguJ7guLLguJnguLTguIoNCivguKHguLLguKXguLUg4Liq4Li44Lij4Lix4LiV4LiZ4LiK4Lix4Lii4LiB4Liy4LijDQor4Lih4Liy4Lil4Li1IOC4q+C4meC4tuC5iOC4h+C4lOC4p+C4h+C4geC4oeC4pQ0KK+C4oeC4suC4peC4tSDguK3guJXguLTguYHguJ7guJfguKLguYwNCivguKHguLLguKXguLUg4Lit4Liy4LiX4LijDQor4Lih4Liy4Lil4Li1IOC4reC4uOC5ieC4ouC4reC4tOC5iOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4suC4peC4teC4nuC4seC4meC4mOC5jCDguKPguLHguJDguKrguKHguJrguLnguKPguJPguYwNCivguKHguLLguKXguLXguKPguLHguJXguJnguYwg4Lio4Li44Lig4LiX4LiZ4LiV4LmMDQor4Lih4Liy4Lin4Li04LiZIOC4qOC4o+C4teC4oeC4k+C4teC4nuC4seC4meC4mOC5jA0KK+C4oeC4suC5gOC4o+C4teC4oiDguKfguKPguKPguJPguLLguJ7guIfguKjguYwNCivguKHguLLguYDguKPguLXguKLguKEg4Lia4Li54Lij4LiT4Liw4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4LiB4Li04LiIDQor4Lih4Liy4LmA4Lij4Li14Lii4LihIOC4quC4uOC4l+C4mOC4tOC4qOC4teC4peC4mOC4o+C4o+C4oQ0KK+C4oeC4suC5guC4meC4iiDguIHguLPguIjguLHguJTguKDguLHguKINCivguKHguLLguYLguJnguIog4LiK4Lix4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lih4Liy4LmC4LiZ4LiKIOC4mOC4o+C4o+C4oeC4o+C4seC4iuC4quC4uOC4meC4l+C4ow0KK+C4oeC4suC5guC4meC4iiDguYDguJvguKPguKHguYHguIHguYnguKcNCivguKHguLLguYLguJnguIog4Lih4Li14Lio4Lij4Li1DQor4Lih4Liy4LmC4LiZ4LiKIOC4p+C4tOC4iuC4tOC4leC4p+C4suC4quC4uOC5gOC4l+C4ng0KK+C4oeC4suC5guC4meC4iiDguYHguKrguIfguKrguLjguIINCivguKHguLLguYLguJnguIrguI3guYwg4LiK4LiZ4Liw4Lig4Lix4LiiDQor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMIOC4reC4o+C4uOC4k+C4o+C4seC4qOC4oeC4tQ0KK+C4oeC5ieC4suC5gOC4quC4teC5iOC4ouC4hyDguYHguIvguYjguKHguYnguLINCivguKHguLTguYjguIfguILguKfguLHguI0g4LmA4Lih4LiV4LiV4Liy4LiB4Lij4Li44LiT4Liy4LiB4Li44LilDQor4Lih4Li04LiV4LijIOC4meC4suC4hOC5gOC4quC4mQ0KK+C4oeC4tOC4leC4o+C4oOC4suC4niDguJrguLjguI3guIrguLnguIrguYjguKfguKINCivguKHguLTguYjguJkg4LmA4Lir4Lil4LmI4Liy4LiK4Liy4LiN4LiB4Li04LiI4Lin4LiZ4Li04LiKDQor4Lih4Li1IOC4l+C4reC4h+C5gOC4o+C4t+C4reC4hw0KK+C4oeC4teC4iuC4seC4oiDguJnguLDguKPguLINCivguKHguLXguIrguLHguKIg4Lir4LiH4Lip4LmM4Lie4Liy4LiZ4Li04LiKDQor4Lih4Li14LiZ4LiyIOC5guC4o+C4iOC4meC5jOC4p+C4tOC4iuC4iuC4sg0KK+C4oeC4teC4qOC4tOC4o+C4tCDguIHguLTguIjguYTguJ7guKjguLLguKXguJTguLPguKPguIcNCivguKHguLjguIEg4Lia4Li44LiN4Lii4Li34LiZDQor4Lih4Li44LiB4LiU4LiyIOC4ieC4seC4leC4o+C5geC4geC5ieC4pw0KK+C4oeC4uOC4geC4lOC4siDguYDguJfguKjguJrguKPguKPguYDguJfguLTguIcNCivguKHguLjguIHguJTguLIg4Lih4Lix4LmI4LiZ4Lio4Li04Lij4Li0DQor4Lih4Li44LiB4LiU4LiyIOC4qOC4tOC4peC4suC5guC4o+C4iOC4meC5jA0KK+C4oeC4uOC4geC4lOC4siDguK3guLTguJfguJjguLTguJjguLLguJnguLHguJnguJfguYwNCivguKHguLjguYjguIfguKHguLjguYnguKIg4LmB4LiL4LmI4Lir4Lii4Li04LiZDQor4Lih4Li44LiX4Li04LiV4LiyIOC4luC4meC4reC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4uOC4ouC5gOC4leC4teC4ouC4hyDguKjguLTguKPguLTguK3guLHguITguKPguIHguKPguIHguLjguKUNCivguKHguLjguYjguKLguYDguITguYfguIcg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lih4Li44LmJ4Lii4LiH4LmJ4LitIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4oeC4uOC4quC4leC4suC4n+C4siDguKHguLDguKvguLDguKvguKHguLHguJQNCivguKHguLnguKvguLDguKvguKHguLHguJQg4LmA4Liq4Li34Lit4Liq4Lih4Li04LiHDQor4Lih4LmC4LiZIOC4iOC4h+C4mOC4meC4ueC4mOC4o+C4o+C4oQ0KK+C4oeC5guC4meC4o+C4qiDguKLguK3guJTguKLguLTguYjguIcNCivguYDguKHguJXguJXguLIg4LmA4LiB4Li04LiU4LiZ4Liy4LiEDQor4LmA4Lih4LiV4LiV4LiyIOC4m+C4tOC4leC4ouC4suC4meC4meC4l+C5jA0KK+C5gOC4oeC4leC4leC4siDguKrguLTguJfguJjguLTguKrguLjguKfguKPguKPguJMNCivguYDguKHguJfguLTguJnguLUg4LiU4Liy4Lij4Liy4Lie4Lix4LiV4LijDQor4LmA4Lih4LiY4LiyIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C5gOC4oeC4mOC4siDguKfguIfguKjguYzguKfguLLguJnguLTguIoNCivguYDguKHguJjguLLguJPguLUg4LiH4Liy4Lih4LiX4Lin4Li14Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LmA4Lih4LiY4Li04LiZ4Li1IOC4l+C4o+C4seC4nuC4ouC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4oeC4mOC4tSDguIjguKPguLnguI3guJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMNCivguYDguKHguJjguLUg4Lia4Lix4Lin4Lio4Lij4Li1DQor4LmA4Lih4LiY4Li1IOC4o+C4seC4leC4meC4leC4seC5ieC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C5gOC4oeC4mOC4tSDguKvguIfguKnguYzguJfguK3guIcNCivguYDguKHguKnguJDguKPguLHguJXguJnguYwg4Lih4LiZ4LmA4LiX4Li14Lii4Lij4LiX4Lit4LiHDQor4LmA4Lih4Li14LmI4Lii4Lin4LiI4Li04LiHIOC5geC4i+C5iOC4reC4t+C5ieC4rQ0KK+C5gOC4oeC4teC5ieC4ouC4p+C4q+C4ouC4tOC5ieC4mSDguYHguIvguYjguIHguK0NCivguYDguKHguYjguIfguIvguIEg4LmB4LiL4LmI4LiI4Li04LinDQor4LmA4Lih4LmJ4LiHIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C5geC4oeC4mSDguInguLLguKLguLLguJnguJnguJfguYwNCivguYHguKHguKPguLXguYgg4LmB4Lin4LiZ4LiU4LiyDQor4LmB4Lih4LmJ4LiZ4Lih4Liy4LiV4LijIOC5geC4reC5ieC4meC4iuC4seC4ouC4oOC4ueC4oeC4tA0KK+C5guC4oeC4rOC4tSDguITguIfguIHguKXguLLguIcNCivguYTguKEg4LiZ4Lin4Lil4LmA4LiZ4LiV4LijDQor4LmE4Lih4LiV4Lij4Li1IOC4iuC4ueC4oeC4k+C4tQ0KK+C5hOC4oeC4leC4o+C4tSDguJrguLHguKfguYDguJnguJXguKMNCivguYTguKHguJXguKPguLUg4LmA4Lil4Li04Lio4LmA4Lie4Li14Lii4Lij4Lie4Li04LiX4Lii4LiB4Li44LilDQor4LmE4Lih4LiV4Lij4Li1IOC4q+C4suC4jeC4mOC4meC4p+C4uOC4kuC4tOC4iuC4seC4og0KK+C5hOC4oeC5iSDguKjguKPguLXguKrguIfguYjguLINCivguKLguIcg4LmA4LiV4LiK4Liw4Lie4LiH4Lio4LiY4LijDQor4Lii4LiH4LiE4LmM4LiK4Lix4LiiIOC4l+C4qOC4nuC4peC4reC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4ouC4h+C4iuC4seC4oiDguITguLjguJPguJjguKPguKPguKHguJTguLUNCivguKLguIfguKLguKgg4Lib4Lij4Li04Lie4Lik4LiV4Li04Lie4LiH4Lio4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4geC4tOC4iOC4nuC4h+C4qeC5jOC4meC4tOC4geC4ow0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguIbguLHguIfguJnguLTguKHguLTguJXguKMNCivguKLguIfguKLguLjguJfguJgg4LmD4LiI4LmA4LiI4Lij4Li04LiN4LiY4Lij4Lij4Lih4LiB4Li44LilDQor4Lii4LiH4Lii4Li44LiX4LiYIOC5geC4i+C5iOC5gOC4leC4t+C5ieC4reC4hw0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguJbguLXguKPguLDguKfguIfguKjguYwNCivguKLguIfguKLguLjguJfguJgg4LiZ4Liy4LiE4Liw4Lie4LiH4Lio4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4m+C4seC4jeC4jeC4suC4quC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguJ7guLjguJfguJjguKrguLjguKfguKPguKPguJMNCivguKLguIfguKLguLjguJfguJgg4LmA4Lih4LiV4Liw4Lio4Li04Lij4Li0DQor4Lii4LiH4Lii4Li44LiX4LiYIOC4peC4reC4ouC5gOC4oeC4hg0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguKfguLTguYDguIrguLXguKLguKPguKrguKPguKPguITguYwNCivguKLguIfguKLguLjguJfguJgg4Liq4Lih4Li04LiX4LiY4Li04LmA4LiU4LiK4LiB4Li44LilDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4quC4uOC4p+C4o+C4o+C4k+C5gOC4nuC5h+C4iuC4ow0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguK3guYjguK3guIfguJrguLLguIfguJnguYnguK3guKINCivguKLguIfguKLguLjguJfguJjguLTguYwg4Lin4Lij4Lin4Li44LiS4Li0DQor4Lii4LiH4Lin4Lix4LiS4LiZ4LmMIOC4muC4ueC4o+C4k+C4sOC4m+C4j+C4tOC4oeC4suC4geC4ow0KK+C4ouC4h+C4quC4tOC4mSDguYDguJXguIrguLLguKHguKvguIrguLHguKINCivguKLguYjguIfguK7guKfguJQg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lii4LmJ4LiHIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4ouC4meC4leC5jCDguJrguLjguI3guYDguKvguKXguLfguK3guKvguKXguYjguK0NCivguKLguKHguYLguJTguKIg4LiK4Lil4Liy4Lii4LiZ4LiZ4Liy4Lin4Li04LiZDQor4Lii4Lij4Lij4Lii4LiHIOC4muC4uOC4jeC4quC4oeC4nuC4h+C4qeC5jA0KK+C4ouC4o+C4o+C4ouC4hyDguKjguLjguKDguKfguLTguJHguLnguKPguKLguYwNCivguKLguKPguKPguKLguIfguITguYwg4Lie4Lil4Lio4Li04Lij4Li0DQor4Lii4Lin4LiHIOC4peC4reC4ouC4quC4sg0KK+C4ouC5ieC4p+C4mSDguJ7guLHguJnguJnguIENCivguKLguKgg4Liq4Lih4Lia4Li54Lij4LiT4LmM4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lii4Lio4Lij4Liy4Lin4LiU4Li1IOC5gOC4m+C4teC5iOC4ouC4oeC4reC4o+C4uOC4kw0KK+C4ouC4reC4lCDguIHguKXguLTguYjguJnguIHguKXguLHguYjguJkNCivguKLguK3guJQg4Liq4Lix4LiZ4LiV4Li04LiZ4Li04LmA4Lin4Lio4LiZ4LmMDQor4Lii4Lit4LiU4LiY4LiHIOC5gOC4iOC4o+C4tOC4jeC4iOC4h+C4p+C4tOC4l+C4ouC4sg0KK+C4ouC4reC4lOC4qOC4seC4geC4lOC4tOC5jCDguKvguKXguYjguK3guIjguLTguJXguJXguYzguYDguKrguLXguKLguIcNCivguKLguLAg4LmA4LiB4Li04LiU4Lit4Lii4Li54LmIDQor4Lii4Lix4LiB4LmC4Lih4Liu4Lix4LiZ4LiL4Li04LiH4Lir4LmMIOC4ouC4seC4geC5guC4oeC4ruC4seC4meC4i+C4tOC4h+C4q+C5jA0KK+C4ouC4seC4quC4muC4teC4o+C4i+C4tOC4h+C4q+C5jCDguKLguLHguKrguJrguLXguKPguIvguLTguIfguKvguYwNCivguKLguLLguJTguLIg4LmA4Lio4Lin4LiV4LiV4Liy4LiZ4Li44Liq4Lij4LiT4LmMDQor4Lii4Liy4LmD4LiIIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4ouC5ieC4siDguYDguK3guIHguJvguKPguLDguYDguKrguKPguLTguJANCivguKLguLTguYjguIfguKLguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lii4Li04LmI4LiH4Lii4LioIOC4muC4uOC4meC4meC4suC4hA0KK+C4ouC4tOC5iOC4h+C4qOC4seC4geC4lOC4tOC5jCDguJvguLHguIjguIrguLLguKHguLLguJXguKLguYwNCivguKLguLTguJkg4LmA4Liq4Lih4Lit4LmA4LiK4Li34LmJ4LitDQor4Lii4Li04LiZ4LiU4Li1IOC4nuC4o+C4oeC5gOC4geC4leC4uA0KK+C4ouC4tOC4meC4lOC4tSDguK3guLTguJnguJfguKPguKHguIfguITguKUNCivguKLguLTguYnguKEg4LiZ4Liy4Liq4Lih4LiZ4Li24LiBDQor4Lii4Li04LmJ4LinIOC4q+C4peC4tOC4p+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4ouC4teC5iOC4quC4uOC5iOC4mSDguKjguLjguIHguKPguLDguKfguJPguLTguIoNCivguKLguLfguJnguKLguIcg4LiZ4Li44Lig4Liy4LieDQor4Lii4Li44LiB4Lii4Li04LmJ4LiZIOC5gOC4iuC4teC4ouC4h+C4ieC4tOC4mQ0KK+C4ouC4uOC4hOC4peC4mOC4oyDguYLguK3guK3guJTguLTguKjguLHguKINCivguKLguLjguJfguJgg4LmA4LiI4Lij4Li04LiN4LiE4LiV4Li04LiY4Lij4Lij4LihDQor4Lii4Li44LiX4LiYIOC4q+C4meC4uOC4meC4oOC4seC4geC4lOC4tQ0KK+C4ouC4uOC4l+C4mOC4iuC4seC4oiDguJnguYnguLPguJfguLTguJ7guKLguYwNCivguKLguLjguJfguJjguJnguLHguJnguJfguYwg4LmA4LiB4Lip4Li14Lii4Lij4LiY4Liy4LiU4Liy4LiZ4LiZ4LiX4LmMDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC4iOC4o+C4tOC4h+C5g+C4iOC4geC4uOC4pQ0KK+C4ouC4uOC4l+C4mOC4meC4siDguJTguLjguIjguJXguLTguJvguLTguKLguLANCivguKLguLjguJfguJjguJnguLIg4Lia4Li44LiT4Lii4Liw4Lin4Li44LiS4LiB4Li44LilDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC5guC4oOC4hOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4ouC4uOC4l+C4mOC4meC4siDguKfguLLguJnguLTguIrguK3guLHguIfguIHguLnguKMNCivguKLguLjguJfguJjguJnguLIg4Liq4Li44LiI4Li04LiZ4LiV4Lin4LiH4Lip4LmMDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4quC4tOC4meC4mOC4uOC5jA0KK+C4ouC4uOC4l+C4mOC4nuC4h+C4qeC5jCDguIkg4LmC4Lij4LiI4LiZ4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lii4Li44LiX4LiY4Lie4LilIOC5hOC4geC4o+C4reC4suC4mg0KK+C4ouC4uOC4l+C4mOC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYLguIfguYnguKcNCivguKLguLjguJfguJjguKjguLTguKXguJvguYwg4LmA4LiB4Lip4Lij4Lio4Li44LiB4Lij4LmMDQor4Lii4Li44LiY4Li04LiV4LiyIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4ouC4uOC4nuC4lOC4tSDguIHguLLguI3guIjguJnguLINCivguKLguLjguJ7guJTguLUg4LiK4Li14Lie4Lit4Liy4Lij4LiZ4Lix4LiiDQor4Lii4Li44Lie4LiU4Li1IOC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4ouC4uOC4nuC4lOC4tSDguKPguLHguIHguIHguLLguKPguJTguLUNCivguKLguLjguJ7guJTguLUg4Liq4LiZ4LmD4LiI4Lii4Li44LiX4LiYDQor4Lii4Li44Lie4LiU4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4qOC4uOC4oOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4ouC4uOC4nuC4ouC4h+C4hOC5jCDguJ7guLTguKPguLTguKLguLDguIHguLTguIgNCivguKLguLjguJ7guLIg4LiB4LmL4LiH4LiZ4LmJ4Lit4LiiDQor4Lii4Li44Lie4LiyIOC4guC4seC4meC4l+C4reC4hw0KK+C4ouC4uOC4nuC4siDguIjguLTguJXguKPguYLguKrguKDguLLguKDguKPguJPguYwNCivguKLguLjguJ7guLIg4LiK4Li44LmI4Lih4LiK4Liy4LiV4Li0DQor4Lii4Li44Lie4LiyIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4ouC4uOC4nuC4siDguJfguLTguJ7guKLguJ7guKPguYDguIHguKnguKENCivguKLguLjguJ7guLIg4Lia4Lix4Lin4LiY4Lij4LiyDQor4Lii4Li44Lie4LiyIOC5gOC4m+C4teC5iuC4ouC4sOC4guC4suC4ouC4hOC4peC5iOC4reC4hw0KK+C4ouC4uOC4nuC4siDguYDguJ7guYfguI3guKrguLLguKLguYPguIgNCivguKLguLjguJ7guLIg4Lii4Li04LmI4LiH4LiU4Liz4LiZ4Li44LmI4LiZDQor4Lii4Li44Lie4LiyIOC5gOC4peC4reC4ouC4qOC5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4ow0KK+C4ouC4uOC4nuC4siDguYTguKfguJfguKLguLDguKfguLTguI3guI3guLkNCivguKLguLjguJ7guLIg4Liq4Liy4Lih4Li44LiV4Li04Lit4Li44LiU4Lih4Lij4Lix4LiV4LiZ4LmMDQor4Lii4Li44Lie4LiyIOC5geC4quC4h+C5gOC4quC4o+C4tOC4oQ0KK+C4ouC4uOC4nuC4siDguK3guLLguJnguLjguKDguLLguJ7guKHguIfguITguKUNCivguKLguLjguJ7guLLguJ7guKMg4Lie4Lij4Lir4Lih4LmC4LiK4LiV4Li0DQor4Lii4Li44Lie4Liy4Lig4Lij4LiT4LmMIOC4geC4peC4seC5iOC4meC4geC4peC4teC4mg0KK+C4ouC4uOC4nuC4suC4p+C4lOC4tSDguKLguLTguJnguJTguLXguKLguLHguYjguIfguKLguLfguJkNCivguKLguLjguJ7guLTguJkg4LiB4Liz4LmA4Lir4LiZ4Li04LiU4Lin4Lix4LiZDQor4Lii4Li44Lie4Li04LiZIOC4hOC4peC5ieC4suC4ouC4quC4uOC4muC4o+C4o+C4kw0KK+C4ouC4uOC4nuC4tOC4mSDguIjguLTguJnguJTguLLguKrguLHguJnguJXguYwNCivguKLguLjguJ7guLTguJkg4LiK4Li34LmI4LiZ4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lii4Li44Lie4Li04LiZIOC4lOC4reC4meC4reC4uOC5hOC4nuC4ow0KK+C4ouC4uOC4nuC4tOC4mSDguJfguKPguIfguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguKLguLjguJ7guLTguJkg4LmA4LiY4Li14Lii4Lij4Lie4Liy4LiT4Li04LiKDQor4Lii4Li44Lie4Li04LiZIOC4muC4uOC4leC4o+C5gOC4meC4teC4ouC4oQ0KK+C4ouC4uOC4nuC4tOC4mSDguJ7guJnguLLguIrguLfguYjguJnguKfguIfguKjguYzguKrguIHguLjguKUNCivguKLguLjguJ7guLTguJkg4LmE4Lie4Lij4Li04LiZ4LiX4Lij4Liy4Lig4LiyDQor4Lii4Li44Lie4Li04LiZIOC5gOC4oeC4t+C4reC4h+C4p+C4tOC4peC4seC4og0KK+C4ouC4uOC4nuC4tOC4mSDguKXguLXguKrguLjguKfguLTguIrguLLguIHguKMNCivguKLguLjguJ7guLTguJkg4Lio4Lij4Li14LiK4Lix4LiiDQor4Lii4Li44Lie4Li04LiZIOC4quC4pOC4qeC4lOC4tOC4p+C4uOC4kuC4tA0KK+C4ouC4uOC4nuC4tOC4mSDguKrguLjguJfguJjguLTguKrguLjguJnguJfguKMNCivguKLguLjguJ7guLTguJkg4Lir4Liy4LiN4Lin4LiH4Lio4LmMDQor4Lii4Li44Lie4Li04LiZIOC4reC4tuC5iuC4h+C4lOC4s+C4o+C4hw0KK+C4ouC4uOC4nuC5gOC4ouC4suC4p+C5jCDguKjguLTguKPguLTguYDguK3guLXguYnguKLguKfguJ7guLTguIHguLnguKUNCivguKLguLjguKDguLIg4LmA4LiI4LmK4Liw4LmA4Lil4Liy4LiwDQor4Lii4Li44Lig4LiyIOC5geC4quC4h+C5gOC4lOC4ig0KK+C4ouC4uOC4oOC4tSDguYDguITguKvguLDguKPguK3guJQNCivguKLguLjguKPguLUg4LmB4LiL4LmI4LmC4Lit4LmJ4LinDQor4Lii4Li44Lin4LiU4Li1IOC4geC4o+C4sOC4iOC5iOC4suC4h+C5g+C4iA0KK+C4ouC4uOC4p+C4lOC4tSDguYDguIjguJnguKPguLHguIHguKHguLLguJXguLjguKDguLnguKHguLQNCivguKLguLjguKfguJTguLUg4LmA4LiV4LiK4Liw4LmA4LiK4Lin4LiH4LiB4Li44LilDQor4Lii4Li44Lin4LiU4Li1IOC4m+C4o+C4oeC4suC4h+C4geC4ueC4ow0KK+C4ouC4uOC4p+C4lOC4tSDguKHguLTguJXguKPguKDguLHguIHguJTguLUNCivguKLguLjguKfguJTguLUg4Lin4Lix4LiS4LiZ4Lie4Li04LiX4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4Lii4Li44Lin4LiU4Li1IOC5geC4quC4h+C4lOC5ieC4p+C4hw0KK+C4ouC4uOC4p+C4meC4siDguKXguKfguYDguKfguIrguIHguLjguKUNCivguKLguLjguKfguKDguLIg4Lia4Li44LiN4LmA4Lil4Li04LioDQor4Lii4Li44Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4geC4teC4ouC4o+C4leC4tOC4m+C4seC4jeC4jeC4sg0KK+C4ouC4uOC5gOC4nuC5h+C4jSDguIrguLnguKjguLHguIHguJTguLTguYzguYHguKrguIfguJfguK3guIcNCivguKLguLnguIvguJog4Lit4Lix4Lia4LiU4Li44Liq4Lil4Liy4LihDQor4Lii4Li54Liq4LiaIOC4q+C4peC4h+C4iOC4tA0KK+C4ouC4ueC5iOC5gOC4leC4teC4ouC4hyDguYHguIvguYjguYDguIvguLXguKINCivguYDguKLguLIg4LmE4Lil4LmE4LinDQor4LmA4Lii4Liy4Lin4LiU4Li1IOC5geC4ouC5ieC4oeC4iOC4uOC5hOC4ow0KK+C5gOC4ouC4suC4p+C4meC4tOC4iCDguJnguLTguJXguLTguJjguKPguKPguKENCivguYDguKLguLLguKfguJnguLjguIog4Lie4Li44LiX4LiY4Li04Lie4Li04Lij4LiB4Li44LilDQor4LmA4Lii4Liy4Lin4Lig4Lij4LiT4LmMIOC4quC4tOC4o+C4tOC4p+C5guC4o+C4mOC4suC4geC4uOC4pQ0KK+C5gOC4ouC4suC4p+C4oOC4siDguJfguLHguJ7guKPguLHguJXguJnguYwNCivguYDguKLguLLguKfguKDguLIg4Lin4Li04Lil4Lix4Lii4Lib4Liy4LiZDQor4LmA4Lii4Liy4Lin4Lih4Liy4Lil4Lii4LmMIOC4l+C4reC4h+C4nuC4o+C4q+C4oQ0KK+C5gOC4ouC4suC4p+C4o+C4seC4leC4meC5jCDguITguKfguLLguKHguIrguK3guJoNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4LiB4Lij4Lix4LiZ4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC5hOC4iuC4ouC4pOC4l+C4mOC4tOC5jA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguJrguLjguI3guI3guLLguKfguLTguKfguLHguJLguJnguYwNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4Lih4LiT4Li14LmC4LiK4LiV4Li0DQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4p+C4h+C4qOC4suC5guC4o+C4iOC4meC5jA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKrguLjguKfguKPguKPguJPguKXguKDguLLguJ7guKMNCivguYDguKLguLLguKfguYDguKPguKgg4LiB4Liw4LiV4Liy4LiB4Li54LilDQor4LmA4Lii4Liy4Lin4LmA4Lij4LioIOC4p+C4o+C4o+C4k+C4quC4uOC4gg0KK+C5gOC4ouC4teC4ouC4oSDguJ7guLjguYjguKHguJ7guKTguIHguKnguYwNCivguYDguKLguLXguYjguKLguKEg4Lit4Li04LiZ4LiX4Lij4LiB4Liz4LmB4Lir4LiHDQor4LmA4Lii4Li34LmJ4Lit4LiZIOC5gOC4geC4leC4uOC4peC4reC4og0KK+C5gOC4ouC5h+C4mSDguIHguK3guIfguYLguK7guKENCivguYDguKLguYfguJnguIjguLTguJUg4LiI4Li04Lij4Liy4Lie4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4LmA4Lii4LmH4LiZ4LiI4Li04LiV4Lij4LmMIOC4m+C4o+C4sOC4l+C4teC4m+C5geC4quC4h+C4o+C4seC4leC4meC5jA0KK+C5geC4ouC5ieC4oSDguYLguIHguKHguLTguJnguLINCivguYLguKLguJjguLTguJkg4LiE4LiH4LmA4LiI4Lij4Li04LiNDQor4LmC4Lii4LiY4Li04LiZIOC4nuC4h+C4qOC5jOC4nuC4seC4iuC4o+C4suC4nuC4seC4meC4mOC4uOC5jA0KK+C5guC4ouC4mOC4tOC4mSDguKjguLTguKPguLTguYLguKrguKDguJMNCivguYPguKIg4Lib4Lix4LiW4Lin4Li1DQor4Lij4LiI4LiZ4LiyIOC4iOC4seC4geC4o+C4pOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4o+C4iOC4meC4siDguJ7guLLguJTguLUNCivguKPguIjguJnguLIg4LmB4Liq4LiH4LmC4Liq4Lig4LiTDQor4Lij4LiI4Li04LiVIOC4o+C4seC4geC4ouC4reC4lA0KK+C4o+C4kyDguKrguLLguKrguJnguKrguLTguJfguJjguLTguYwNCivguKPguJPguIrguLHguKIg4LiZ4Li04LiV4Li04LiK4Liy4LiE4LijDQor4Lij4LiT4LiK4Lix4LiiIOC5gOC4reC4meC4geC4reC4oeC4o+C4iuC4seC4og0KK+C4o+C4k+C4o+C4h+C4hOC5jCDguYLguInguKHguKjguLjguKDguLLguIfguITguYwNCivguKPguJPguKrguLTguJfguJjguLTguYwg4Lij4Lix4LiV4LiZ4LmA4LiB4Lip4LiV4LijDQor4Lij4LiV4Li04Lie4Lij4Lij4LiTIOC4o+C4seC4leC4meC4tOC4lQ0KK+C4o+C4nuC4tOC4meC4l+C4o+C5jCDguKfguLTguIrguIrguLjguYTguJXguKPguKDguJ4NCivguKPguJ7guLXguJ7guKPguKPguJMg4LmA4LiJ4Lil4Li04Lih4LiK4Lix4Lii4LmC4LiB4Lio4LilDQor4Lij4Lie4Li14Lin4Lij4Lij4LiTIOC4quC4seC4oeC4m+C4iuC4seC4jeC4jeC4sA0KK+C4o+C4oeC4ouC5jOC4iuC4peC4tSDguJrguLjguJXguKPguYTguIrguKINCivguKPguKfguIfguJfguK3guIcg4Liq4LmJ4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4Lij4Lin4Lih4Lie4LijIOC4oOC4suC4meC4seC4meC4l+C4meC5jA0KK+C4o+C4p+C4ouC4o+C4tOC4mSDguKfguIjguLDguYLguJnguKDguLLguKoNCivguKPguKfguLTguKfguKPguKPguJMg4LmE4LiK4Lii4Lin4Liq4Li4DQor4Lij4Lin4Li14LiZ4Li44LiKIOC4hOC4uOC4k+C4mOC4o+C4o+C4oeC4quC4luC4tOC4lQ0KK+C4o+C4p+C4teC4p+C4o+C4o+C4kyDguJ7guIfguKnguYzguJTguJnguJXguKPguLUNCivguKPguKfguLXguKfguKPguKPguJMg4Lit4Liy4Lij4Li14LiY4Lij4Lij4Lih4Lio4Li04Lij4Li04LiB4Li44LilDQor4Lij4Liq4LiZ4LiyIOC4p+C4seC4kuC4meC4suC4quC4uOC4meC4l+C4o+C4nuC4h+C4qOC5jA0KK+C4o+C4quC4o+C4tOC4meC4l+C4o+C5jCDguIHguJnguIHguK3guLjguJTguKENCivguKPguKrguKrguLjguITguJnguJjguYwg4LiV4Liy4Lih4Lio4Lij4Li1DQor4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMIOC4qOC4o+C4teC4leC4tOC4oeC4h+C4hOC4pQ0KK+C4o+C4reC4hyDguKHguLnguKXguKHguJPguLUNCivguKPguK3guJ/guLDguKvguYwg4LmA4LiL4LmH4LiZ4Lir4Lil4Lin4LiHDQor4Lij4Lit4LmA4Lia4Li14LmK4Lii4LiwIOC4ouC4tOC5iOC4h+C4meC4tOC4ouC4oQ0KK+C4o+C4sOC4leC4siDguK3guLTguJnguJfguKPguYzguYHguIHguYnguKcNCivguKPguLDguJrguLTguKUg4LmC4Liq4Lig4LiT4Lie4LiZ4Li04LiKDQor4Lij4Liw4Lie4Li1IOC4m+C4o+C4sOC4quC4nuC4iuC4seC4og0KK+C4o+C4sOC4nuC4teC4nuC4o+C4o+C4kyDguILguK3guJrguIrguLTguJUNCivguKPguLDguJ7guLXguJ7guKPguKPguJMg4Lil4Liz4LiI4Lin4LiZ4LiI4Li04LiV4LiV4LmMDQor4Lij4Liw4Lie4Li14Lie4Lix4LiZ4LiY4LmMIOC4reC4suC4o+C4teC4ouC5jA0KK+C4o+C4sOC4ouC5ieC4suC4l+C4tOC4nuC4ouC5jCDguK3guLTguJnguJfguKPguJfguLnguJUNCivguKPguLDguKfguLQg4Lia4Li44LiN4Lic4LiU4Li44LiHDQor4Lij4Liw4Lin4Li04Lin4Lij4Lij4LiTIOC4m+C4o+C4sOC4l+C4uOC4oeC4nuC4p+C4hw0KK+C4o+C4sOC4p+C4tSDguJnguLHguJnguJfguKrguLPguYDguKPguLTguIcNCivguKPguLDguKfguLXguKfguKPguKPguJMg4LmA4LiI4LiZ4LiB4Liy4LijDQor4Lij4Liw4Lin4Li14Lin4Lij4Lij4LiTIOC4oOC4seC4l+C4o+C4m+C4o+C4sOC4oOC4sg0KK+C4o+C4sOC4p+C4teC4p+C4o+C4o+C4k+C5jCDguJXguLLguIrguLnguIrguLLguJXguLQNCivguKPguLDguYDguJrguLXguKLguJog4LiB4Li04LiI4LiB4Lil4LmJ4LiyDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4iOC4tOC4leC4o+C4muC4s+C4o+C4uOC4hw0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguJfguLHguJrguIjguLHguJnguJfguKPguYwNCivguKPguLDguYDguJrguLXguKLguJog4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4oeC4suC4meC4tOC4geC4nuC4seC4meC4mOC4uOC5jA0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguKfguKPguKrguLjguILguKrguLHguIfguILguYwNCivguKPguLDguYDguJrguLXguKLguJog4LmA4Liq4Li34Lit4Liq4Lih4Li04LiHDQor4Lij4Liw4LmA4Lin4LiHIOC4peC4seC4ouC4qOC4o+C4tQ0KK+C4o+C4seC4geC4iuC4meC4gSDguYHguIvguYjguYDguIjguLXguKINCivguKPguLHguIHguJ7guIfguKnguYwg4Lin4LiH4Lip4LmM4LiI4Liz4LiZ4LiH4LiE4LmMDQor4Lij4Lix4LiB4Lip4LmMIOC4geC4sOC4o+C4teC4o+C4seC4lQ0KK+C4o+C4seC4geC4qeC5jCDguK3guYjguK3guJnguJnguLLguIcNCivguKPguLHguIfguJfguK3guIcg4Lin4Li14Lij4Liw4Lie4Lix4LiS4LiZ4LmMDQor4Lij4Lix4LiH4Lip4Li1IOC5gOC4l+C4qOC4nuC4seC4meC4mOC5jA0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguIHguLHguKHguKrguLjguKfguKPguKPguJMNCivguKPguLHguIfguKrguKPguKPguITguYwg4LiI4Li44Lis4Liy4LiY4Lij4Lij4Lih4LiB4Li44LilDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4leC4seC4meC4leC4tOC5gOC4p+C4iuC4geC4uOC4pQ0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguJvguLHguI3guI3guLLguKDguLINCivguKPguLHguIfguKrguKPguKPguITguYwg4Lih4Li04LiV4Lij4Lie4Lix4LiZ4LiY4LmM4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4p+C4tOC4muC4ueC4peC4nuC4seC4kuC4meC4sOC4p+C4h+C4qOC5jA0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguKrguLjguJnguJfguKPguJnguLHguJnguJfguYwNCivguKPguLHguIfguKrguKPguKPguITguYwg4LmA4Lit4Li14LmI4Lii4Lih4LiI4Liz4Lij4Lix4LiqDQor4Lij4Lix4LiH4Liq4Li04LiVIOC5gOC4lOC4iuC4sOC4geC4uOC4pQ0KK+C4o+C4seC4h+C4quC4tOC4oeC4seC4meC4leC5jCDguKTguIHguKnguYzguK3guLTguJnguJfguKPguK3guLLguKPguLXguKLguYwNCivguKPguLHguIfguKrguLTguKHguLIg4LmB4Liq4LiH4Lir4Li04Lij4Lix4LiN4Lin4Lix4LiS4LiZ4LiyDQor4Lij4Lix4LiKIOC4p+C4o+C4o+C4k+C4p+C4seC4kuC4meC4sA0KK+C4o+C4seC4iuC4juC4siDguIjguLTguJXguJXguLTguKfguKPguKPguJMNCivguKPguLHguIrguI7guLIg4Liq4Li04Lij4Li04Lin4Lix4LiS4LiZ4Lin4LiH4Lio4LmMDQor4Lij4Lix4LiK4LiO4Liy4Lin4Lij4Lij4LiTIOC4ouC4sOC4leC4tOC4meC4seC4meC4l+C5jA0KK+C4o+C4seC4iuC4lOC4siDguYDguITguKLguKHguLXguJfguKPguLHguJ7guKLguYwNCivguKPguLHguIrguJTguLIg4Lij4Li44LmI4LiH4LmA4Lio4Lin4LiV4LiB4Li44LilDQor4Lij4Lix4LiK4LiU4Liy4Lie4LijIOC4quC4uOC4guC5gOC4geC4qeC4oeC4o+C4seC4leC4meC5jA0KK+C4o+C4seC4iuC4leC4pOC4lOC4tSDguKPguLjguIjguLTguJPguKPguIfguITguYwNCivguKPguLHguIrguJnguLTguIHguKMg4LmB4Liq4LiH4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4Lij4Lix4LiK4LiZ4Li1IOC4geC4tOC4leC4leC4tOC4o+C4seC4h+C4quC4tQ0KK+C4o+C4seC4iuC4meC4tSDguITguLLguIjguLTguIjguLQNCivguKPguLHguIrguJnguLUg4LiI4Li04Lij4LiX4Lin4Li14Lin4LiH4Lio4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC4iuC4p+C4leC4suC4meC4meC4l+C5jA0KK+C4o+C4seC4iuC4meC4tSDguYHguIvguYjguKXguLTguYnguKENCivguKPguLHguIrguJnguLUg4LiV4Lij4Li14Lia4Lix4LiN4LiK4Liy4Lin4LiH4Lio4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC4l+C4seC4muC4peC4sOC4hOC4ow0KK+C4o+C4seC4iuC4meC4tSDguJnguLLguITguKrguLjguIINCivguKPguLHguIrguJnguLUg4Lia4Li44LiV4Lij4Liq4Li1DQor4Lij4Lix4LiK4LiZ4Li1IOC5geC4nOC5iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4o+C4seC4iuC4meC4tSDguJ7guLnguKXguJfguKPguLHguJ7guKLguYwNCivguKPguLHguIrguJnguLUg4Lih4Liy4Lis4Lih4LiH4LiE4LilDQor4Lij4Lix4LiK4LiZ4Li1IOC4o+C4seC4leC4meC5guC4geC4p+C4tOC4lw0KK+C4o+C4seC4iuC4meC4tSDguKXguLfguK3guKfguLTguKHguKXguIHguKTguKnguJANCivguKPguLHguIrguJnguLUg4Lin4Li04Lij4Lix4LiK4LiZ4Li14Lii4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC4quC4geC4uOC4peC4quC4uOC4o+C4o+C4seC4leC4meC5jA0KK+C4o+C4seC4iuC4meC4tSDguKrguLjguIHguKnguKHguKPguLHguJXguJnguYwNCivguKPguLHguIrguJnguLUg4LmB4Liq4LiH4Liq4Li14LiX4Lit4LiHDQor4Lij4Lix4LiK4LiZ4Li1IOC4reC4oOC4tOC4iuC4seC4ouC4geC4uOC4pQ0KK+C4o+C4seC4iuC4meC4tSDguYDguK3guIHguJnguKfguLLguKPguLDguIrguLLguJXguLQNCivguKPguLHguIrguJnguLXguIHguKMg4Lih4Lix4LmI4LiH4Lih4Li14Lic4LilDQor4Lij4Lix4LiK4LiZ4Li14Lia4Li54Lil4Lii4LmMIOC4oeC4suC5hOC4nuC4qOC4suC4peC4ouC5jA0KK+C4o+C4seC4iuC4meC4teC4oOC4o+C4k+C5jCDguYHguIvguYjguKXguLTguYnguKENCivguKPguLHguIrguJnguLXguKfguKPguKPguJMg4LiB4LmL4Lit4Lii4Liq4Li44Lin4Lij4Lij4LiTDQor4Lij4Lix4LiK4LiZ4Li14Lin4Lij4Lij4LiTIOC4peC4sOC4reC4reC5gOC4reC4teC5iOC4ouC4oQ0KK+C4o+C4seC4iuC4nuC4h+C4qeC5jCDguKjguLTguKPguLTguKHguLUNCivguKPguLHguIrguKPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lij4Lix4LiN4LiI4Lin4LiZIOC4p+C4h+C4qeC5jOC4geC4peC5ieC4suC4q+C4suC4jQ0KK+C4o+C4seC4kOC4geC4suC4oyDguYDguIHguLTguJTguJTguLUNCivguKPguLHguJDguJ7guKUg4LiH4Liy4Lih4Liq4Lih4Li44LiX4LijDQor4Lij4Lix4LiQ4Liy4Lig4Li04Lij4Lix4LiB4Lip4LmMIOC4leC4seC4k+C4keC4m+C4o+C4sOC4qOC4suC4quC4meC5jA0KK+C4o+C4seC4leC4leC4tOC4geC4oyDguJXguLHguYnguIfguJ7guLLguJnguJfguK3guIcNCivguKPguLHguJXguJXguLTguJ7guKMg4LiB4Lij4Liq4Li44LiX4LiY4Li04LmC4Liq4Lig4LiTDQor4Lij4Lix4LiV4LiV4Li04Lii4LiyIOC4nuC4ueC4peC4reC4o+C5iOC4suC4oQ0KK+C4o+C4seC4leC4meC5jOC4geC4uOC4pSDguJMg4Lin4Li04LiX4Lii4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lij4Lix4LiV4LiZ4LmM4LiK4LiO4LiyIOC4nuC4seC4meC4mOC5jOC4meC4tOC4geC4uOC4pQ0KK+C4o+C4seC4leC4meC4oeC4k+C4tSDguYHguJ7guJfguKLguYzguJ7guLHguJnguJjguYzguKjguKPguLUNCivguKPguLHguJXguJnguLAg4LiE4Li44LiT4Liy4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMDQor4Lij4Lix4LiV4LiZ4LiyIOC4geC4peC4seC5iOC4meC5geC4geC5ieC4pw0KK+C4o+C4seC4leC4meC4siDguIHguLjguKjguKUNCivguKPguLHguJXguJnguLIg4LmA4LiC4Li14Lii4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Lij4Lix4LiV4LiZ4LiyIOC4h+C4suC4oeC4guC4sw0KK+C4o+C4seC4leC4meC4siDguIjguLTguJXguJXguYzguIjguLLguKPguLbguIENCivguKPguLHguJXguJnguLIg4LmD4LiI4Lib4Liy4LiZDQor4Lij4Lix4LiV4LiZ4LiyIOC4iuC4tOC4meC4p+C4seC4kuC4meC4sg0KK+C4o+C4seC4leC4meC4siDguYHguIvguYjguJXguLHguYnguIcNCivguKPguLHguJXguJnguLIg4LiTIOC4leC4sOC4geC4seC5iOC4p+C4l+C4uOC5iOC4hw0KK+C4o+C4seC4leC4meC4siDguJXguLLguKPguJ7guKUNCivguKPguLHguJXguJnguLIg4LiX4Lit4LiH4LiE4Lil4LmJ4Liy4LiiDQor4Lij4Lix4LiV4LiZ4LiyIOC4mOC4teC4o+C4sOC4oeC4h+C4hOC4peC4geC4uOC4pQ0KK+C4o+C4seC4leC4meC4siDguYDguJnguLXguKLguKHguJnguLPguJzguKUNCivguKPguLHguJXguJnguLIg4LmA4Lia4LmH4LiN4LiI4LmC4Lig4LiE4Li1DQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4m+C4peC4teC5iOC4ouC4meC4quC4tQ0KK+C4o+C4seC4leC4meC4siDguJ7guKXguK3guKLguJvguKPguLDguYDguKrguKPguLTguJANCivguKPguLHguJXguJnguLIg4Lie4Li44LiB4Lia4Liy4LiH4LiI4Liy4LiBDQor4Lij4Lix4LiV4LiZ4LiyIOC4oOC4suC4quC4p+C4o+C4p+C4tOC4l+C4ouC5jA0KK+C4o+C4seC4leC4meC4siDguKHguLXguKXguLHguIHguKnguJPguLANCivguKPguLHguJXguJnguLIg4Lij4Lix4LiB4Lip4LmM4LiK4LiZDQor4Lij4Lix4LiV4LiZ4LiyIOC5guC4o+C4iOC4meC5jOC4oeC4q+C4suC4oeC4h+C4hOC4pQ0KK+C4o+C4seC4leC4meC4siDguYDguKXguLXguYjguKLguKfguJvguKPguLXguIrguLINCivguKPguLHguJXguJnguLIg4Lin4Liq4Li44Lin4Liy4LiZ4Li04LiKDQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4p+C4teC4ouC4h+C4mOC4teC4o+C4p+C4seC4kuC4meC5jA0KK+C4o+C4seC4leC4meC4siDguKjguLTguKPguLTguJnguKPguLLguIHguKPguJPguYwNCivguKPguLHguJXguJnguLIg4Liq4Lih4Lia4Li54Lij4LiT4LmM4LiZ4Li04LiY4Li04Lic4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC4quC4teC4p+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4o+C4seC4leC4meC4siDguKrguLjguKfguLHguIrguKPguLXguKPguLHguIHguKnguYwNCivguKPguLHguJXguJnguLIg4Lir4Liy4LiN4Lie4Lil4Liy4LiK4Lix4LiiDQor4Lij4Lix4LiV4LiZ4LiyIOC4reC5iOC4reC4h+C5gOC4nuC5h+C4iuC4o+C5jA0KK+C4o+C4seC4leC4meC4siDguK3guLjguIrguLjguKDguLLguJ4NCivguKPguLHguJXguJnguLLguJ7guKMg4LiE4Li44LmJ4Lih4Lie4LiH4Lio4LmM4LmA4LiI4Lij4Li04LiNDQor4Lij4Lix4LiV4LiZ4Liy4Lig4Lij4LiT4LmMIOC4iOC4tuC4h+C4quC4h+C4p+C4meC4quC4tOC4l+C4mOC4tOC5jA0KK+C4o+C4seC4leC4meC4suC4oOC4o+C4k+C5jCDguJvguKPguLDguKLguLnguKPguYLguKDguITguKPguLLguIoNCivguKPguLHguJXguJnguLLguKDguKPguJPguYwg4Lio4Lij4Li14LiZ4Liy4Lij4Liy4LiHDQor4Lij4Lix4LiV4LiZ4Liy4Lin4LiU4Li1IOC4leC4seC4meC4leC4sOC4m+C4suC4pQ0KK+C4o+C4seC4leC4meC5jCDguYHguIHguYnguKfguIHguLnguKMNCivguKPguLHguJXguJnguYwg4Lie4Liy4LiZ4Li04LiK4Lie4Lix4LiZ4LiY4LmMDQor4Lij4Lix4LiV4LiZ4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4qOC4uOC4oOC5guC4iuC4hA0KK+C4o+C4seC4meC4lOC4oyDguYDguKvguKXguYfguIHguKLguLHguIcNCivguKPguLHguKHguKDguLIg4Lie4Lij4Liw4Lij4Lix4LiB4Lip4LiyDQor4Lij4Lix4Lio4Lih4Li1IOC4hOC4uOC4k+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4uOC4pQ0KK+C4o+C4seC4qOC4oeC4tSDguYDguJfguJ7guJTguKXguYTguIrguKINCivguKPguLHguKjguKHguLUg4Lii4Li04LmI4LiH4LmA4LiI4Lij4Li04LiN4LiB4Lit4Lia4LiB4Li04LiIDQor4Lij4Lix4Lio4Lih4Li1IOC4quC4uOC4p+C4o+C4o+C4k+C4nOC5iOC4reC4h+C5g+C4qg0KK+C4o+C4seC4quC4oeC4tSDguITguLPguYHguKvguIfguJ7guKUNCivguKPguLLguIrguJvguLLguKXguIvguLTguIfguKvguYwg4LiZ4Liy4Lij4Lix4LiHDQor4Lij4Liy4LiK4Lix4LiZ4Lii4LmMIOC5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jA0KK+C4o+C4suC4iuC4tOC4meC4tSDguJnguKfguYDguIjguKPguLTguI3guKfguIfguKjguYwNCivguKPguLLguJPguLUg4Lib4Li54Lij4LiT4LmC4LiK4LiV4Li0DQor4Lij4Liy4LiV4Lij4Li1IOC4geC4peC4tOC5iOC4meC4q+C4p+C4pQ0KK+C4o+C4suC4leC4o+C4tSDguIjguJXguLjguYLguIrguJXguLTguIrguKfguLLguKXguLjguKUNCivguKPguLLguJXguKPguLUg4LmB4LiL4LmI4LmA4Lil4Li14LmJ4Lii4LiHDQor4Lij4Liy4LiV4Lij4Li1IOC4meC4seC4meC4oOC4seC4geC4lOC4tQ0KK+C4o+C4suC4leC4o+C4tSDguJ7guIfguKjguYzguJ7guLHguJnguJjguYzguKjguLHguIHguJTguLINCivguKPguLLguJXguKPguLUg4Lih4Lix4LmI4LiZ4LiI4Li04LiV4LiV4LmMDQor4Lij4Liy4LiV4Lij4Li1IOC5hOC4p+C4l+C4ouC4tOC4meC4l+C4o+C5jA0KK+C4o+C4suC4leC4o+C4tSDguKrguLjguYjguKHguKHguLLguJXguKLguYwNCivguKPguLLguJnguLUg4LmA4LiH4Li04LiZ4LiW4Liy4Lin4LijDQor4Lij4Liy4Lih4Lik4LiX4LiY4Li04LmMIOC5gOC4l+C4p+C4geC4uOC4pQ0KK+C4o+C4suC4p+C4tOC4mSDguK3guJnguLHguJnguJXguYzguJfguKPguIfguKfguLTguJfguKLguYwNCivguKPguLLguKjguKPguLUg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LiB4Li54LilDQor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4LmMIOC4iuC4suC4jeC4meC4tOC4leC4tA0KK+C4o+C4suC5gOC4oeC4qCDguJrguLTguJnguYHguK0NCivguKPguLPguJ7guKfguJkg4Lib4Lij4Liy4LiB4LiP4Lin4LiH4Lip4LmMDQor4Lij4Liz4Lie4Li24LiHIOC4meC4tOC4peC4quC4uOC4p+C4o+C4o+C4kw0KK+C4o+C4s+C4nuC4tuC4hyDguKrguLjguILguYDguIjguKPguLTguI0NCivguKPguLPguYDguJ7guKIg4Lig4Liy4Liq4Lie4Lix4LiZ4LiY4LmMDQor4Lij4Liz4LmE4LieIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4o+C4s+C5hOC4niDguYDguKPguLfguK3guJnguJfguLTguJ7guKLguYwNCivguKPguLPguYTguJ4g4Lit4Li44Lis4Liy4Lij4Liy4LiH4LiB4Li54LijDQor4Lij4Li04LiZ4LiK4Lix4LiiIOC4iuC4seC4ouC4p+C4o+C4nuC4ow0KK+C4o+C4tOC4p+C5guC4geC5iuC4sOC5gOC4hOC4teC4ouC4pyDguJbguLTguJXguLDguIrguLHguKINCivguKPguLfguYjguJkg4Liq4Liw4LmA4LiZ4Liy4Lin4LmMDQor4Lij4Li44LmI4LiHIOC4iuC4oeC4iuC4t+C5iOC4mQ0KK+C4o+C4uOC5iOC4h+C4geC4suC4meC4leC5jCDguJ7guLfguIrguKrguLTguIfguKvguYwNCivguKPguLjguYjguIfguJXguKfguLHguJkg4LiV4Lix4LiZ4Lij4Lix4LiV4LiZ4Lin4LiH4Lio4LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lie4Lii4LmMIOC4leC4seC4meC4leC4o+C4sOC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4nuC4ouC5jCDguKHguJPguLXguKrguLHguIfguILguYwNCivguKPguLjguYjguIfguJfguLTguJ7guKLguYwg4Liq4Li44LmA4Lij4LiZ4LiX4Lij4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lin4LiyIOC4iuC4suC4jeC4nuC4tOC4l+C4ouC4suC4meC4uOC4geC4ueC4peC4geC4tOC4iA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4p+C4siDguJ7guLTguKDguJ7guYTguIrguKLguLLguKrguLTguJfguJjguLTguYwNCivguKPguLjguYjguIfguJfguLTguKfguLIg4Liq4Li44LiZ4LiyDQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC4hOC4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguYHguIvguYjguYDguK3guLXguYnguKINCivguKPguLjguYjguIfguJnguKDguLIg4Lia4Li44LiN4LiK4Li34LmI4LiZDQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC4oeC4k+C4keC4suC4l+C4reC4hw0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguKfguLLguKrguJnguLLguJTguLPguKPguIfguJTguLUNCivguKPguLjguYjguIfguJnguKDguLIg4LmB4Liq4Lin4LiH4Lic4LilDQor4Lij4Li44LmI4LiH4Lie4Li04LiX4Lii4LiyIOC4p+C4seC4peC4ouC5jOC4qOC4o+C4tQ0KK+C4o+C4uOC5iOC4h+C4o+C4p+C4tSDguKjguKPguLXguKfguLTguKXguLHguKINCivguKPguLjguYjguIfguKPguLHguJAg4LiB4Li04LiV4LiV4Li04LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMDQor4Lij4Li44LmI4LiH4Lij4Lix4LiV4LiZ4LmMIOC4nuC4iOC4meC5jOC4mOC4meC4oeC4suC4qA0KK+C4o+C4uOC5iOC4h+C4o+C4seC4leC4meC5jCDguKrguLjguJnguJfguKPguKfguKPguYDguIrguKnguJDguYwNCivguKPguLjguYjguIfguKTguJTguLUg4Lia4Li44LiN4LmA4LiI4Lij4Li04LiN4LiX4Lin4Li14Liq4Li44LiCDQor4Lij4Li44LmI4LiH4Lik4LiX4Lix4LiiIOC4o+C4reC4lOC5guC4nuC4mOC4tOC5jOC4l+C4reC4hw0KK+C4o+C4uOC5iOC4h+C4qOC4seC4geC4lOC4tOC5jCDguYHguJvguYnguJnguYPguKvguI3guYgNCivguKPguLjguYjguIfguK3guKPguLjguJMg4LiB4Lij4Lit4LiH4LiB4Liy4Lij4Li44LiT4Lii4LmMDQor4Lij4Li44LmI4LiH4Lit4Lij4Li44LiTIOC5guC4nuC4mOC4tOC5jOC4meC4tOC4oeC4tOC4leC4ow0KK+C4o+C4uOC5iOC4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguJvguLTguKLguKjguLjguKDguIHguLTguIgNCivguKPguLjguYjguIfguYDguKPguLfguK3guIcg4Lii4Li34LiZ4Lii4LiH4LiE4LmMDQor4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMIOC4geC4o+C4o+C4k+C4quC4ueC4lQ0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguYLguIrguJXguLTguJvguKPguLDguIHguLLguKLguYDguIHguLXguKLguKPguJXguLQNCivguKPguLjguYjguIfguYLguKPguIjguJnguYwg4Lia4Li44LiN4LiL4Li34LmI4LitDQor4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMIOC5gOC4o+C4t+C4reC4h+C4pOC4l+C4mOC4tOC5jA0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguKrguLjguJ7guLjguJfguJjguLTguYTguIHguKMNCivguKPguLjguYnguIfguJfguK3guIcg4LiE4Li44LiT4Lib4Lij4Liw4Lig4Liy4LiB4LijDQor4Lij4Li44LmJ4LiH4Lil4LiU4LiyIOC4q+C4uOC5iOC4meC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4o+C4uOC4iOC4iOC4o+C4tOC4meC4l+C4o+C5jCDguKPguLTguJnguJfguKPguLANCivguKPguLjguIjguLIg4Liq4Li44LiC4Lih4Liy4Lil4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lij4Li44LiI4Li04Lij4Lix4LiV4LiZ4LmMIOC4meC4tOC4leC4tOC4quC4uOC4nuC4o+C4o+C4seC4leC4meC5jA0KK+C4o+C4uOC4iOC4tOC4o+C4siDguYDguJfguLXguYjguKLguIfguK3guKPguLjguJMNCivguKPguLjguIjguLTguKPguLIg4Lio4Lij4LiI4Li04LiV4LiV4LmMDQor4Lij4Li44LiI4Li04LmA4Lij4LiBIOC4mOC4seC4meC4p+C4suC4meC4meC4l+C5jA0KK+C4o+C4uOC4iOC4tSDguYDguJ7guYfguIrguKPguJnguLTguKUNCivguKPguLjguJkg4Lit4LiH4Lit4Liy4LiIDQor4LmA4Lij4LiT4Li44Lih4Liy4LioIOC4n+C4reC4h+C5gOC4nuC5h+C4iuC4ow0KK+C5gOC4o+C4k+C4uSDguIfguLLguKHguILguLMNCivguYDguKPguJPguLkg4LiL4Li34LmI4Lit4LiV4Lij4LiHDQor4LmA4Lij4LiT4Li5IOC4mOC4meC4quC4tOC4mQ0KK+C5gOC4o+C4k+C4uSDguJvguLTguJXguLTguJnguLHguJnguJfguYwNCivguYDguKPguJPguLkg4Lih4Lir4Liy4LiK4Liy4LiZ4Li04LiB4LiwDQor4LmA4Lij4LiT4Li5IOC4peC4teC5ieC4mOC4teC4o+C4sOC4geC4uOC4pQ0KK+C5gOC4o+C4k+C4uSDguYDguKjguKfguJXguYDguKXguIINCivguYDguKPguJPguLkg4Liq4Li44LmE4Lil4Lih4Liy4LiZDQor4LmA4Lij4LiT4Li5IOC5gOC4reC4t+C5ieC4reC5gOC4n+C4t+C5ieC4rQ0KK+C5gOC4o+C4p+C4lOC4tSDguYTguIrguKLguLLguITguLMNCivguYDguKPguKfguJTguLUg4Lia4Li44LiN4LmA4Lil4Li04LioDQor4LmA4Lij4Lin4LiU4Li1IOC5gOC4peC4tOC4qOC4iuC4seC4ouC4p+C4o+C4geC4uOC4pQ0KK+C5gOC4o+C4p+C4lOC4tSDguYDguKvguKXguLXguYjguKLguKHguYTguJfguKINCivguYDguKPguKfguLHguJUg4LiH4LmJ4Liy4Lin4Lin4Li04LmA4Lio4LipDQor4LmA4Lij4Lin4Lix4LiVIOC5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jA0KK+C5gOC4o+C4p+C4seC4leC4leC5jCDguKfguKPguKPguJPguKrguLTguJnguJjguYwNCivguYDguKPguKfguLHguJXguKMg4Liq4Li04LiZ4LiY4Li44Liq4Lit4Liy4LiUDQor4LmA4Lij4Li04LiHIOC4guC4s+C4quC4uOC4gg0KK+C5gOC4o+C4tOC4h+C4iuC4seC4oiDguKfguIfguKnguYzguJTguLUNCivguYDguKPguLTguIfguKTguJfguJjguLTguYwg4LiZ4Lix4LiZ4LiX4LiZ4Liy4LiI4Liy4Lij4Lii4LmM4LiB4Li44LilDQor4LmA4Lij4Li04LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C5gOC4o+C4tOC5iOC4oeC4o+C4iOC4tOC4lSDguJTguYnguKfguIfguKrguLPguKPguLLguI0NCivguYDguKPguLXguKLguKEg4LmA4LiB4Lip4Liq4Liy4LiE4LijDQor4LmA4Lij4Li14Lii4LihIOC4oOC4ueC4muC4suC4pQ0KK+C5gOC4o+C4teC4ouC4oeC4o+C4seC4leC4meC5jCDguYDguIHguJXguLjguIHguLLguI3guIjguJnguYwNCivguYDguKPguLfguK3guIfguIHguLTguIgg4LmA4Lir4Lij4Li14Lii4LiN4LiB4Lih4LilDQor4LmA4Lij4Li34Lit4LiH4LiK4Lix4LiiIOC4o+C4reC4lOC4o+C4seC4leC4meC5jA0KK+C5gOC4o+C4t+C4reC4h+C4ouC4qCDguILguLLguKfguKrguK3guLLguJQNCivguYDguKPguLfguK3guIfguKPguLHguJXguJnguLIg4Lit4Li44LiZ4Liw4Lie4Liz4LiZ4Lix4LiBDQor4LmA4Lij4Li34Lit4LiH4Lin4Li04LiX4Lii4LmMIOC4iOC4uOC4peC4geC4reC4h+C4ruC5ieC4rQ0KK+C5gOC4o+C4t+C4reC4h+C4qOC4seC4geC4lOC4tOC5jCDguIjguLLguKPguLjguIHguLTguIjguYLguKrguKDguJMNCivguYDguKPguLfguK3guIfguKjguLHguIHguJTguLTguYwg4Liq4LmI4LiH4LmE4Lie4Lio4Liy4LilDQor4LmA4Lij4Li34Lit4LiH4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4iuC4suC4p+C4o+C4seC4leC4meC5jA0KK+C5gOC4o+C4t+C4reC4h+C5hOC4oyDguJ7guLnguJnguJ7guLLguJnguLTguIoNCivguYDguKPguYTguKMg4LiI4Li04Lij4Lio4Lix4LiB4LiU4Li04LmM4LiX4Lin4Li1DQor4LmB4Lij4LiH4Lij4Lix4LiQIOC4geC4p+C4teC4ouC4sA0KK+C5guC4o+C4iOC4meC4tSDguYDguKHguIbguJvguKPguLDguYDguKrguKPguLTguJDguKfguLTguJfguKLguYwNCivguYLguKPguKEg4LiE4LiH4LmA4LiI4Liy4LiwDQor4LmE4Lij4Lin4Lij4Lij4LiTIOC4quC4suC4ouC4quC4geC4uOC4pQ0KK+C4pOC4lOC4tSDguIHguKHguKXguKHguLLguKgNCivguKTguJTguLUg4Lil4Li04LmI4Lih4LiX4Lit4LiH4LiZ4LmJ4Lit4LiiDQor4Lik4LiU4Li14Lij4Lix4LiV4LiZ4LmMIOC4iuC4teC4nuC4quC4uOC4l+C4mOC4sg0KK+C4pOC4l+C4mOC4tOC4iuC4seC4oiDguJnguLTguKLguKHguYLguIrguIQNCivguKTguJfguJjguLTguKPguIfguITguYwg4LiX4Lin4Li14LiY4LiZ4Lin4Liy4LiT4Li04LiK4Lii4LmMDQor4Lik4LiX4LiY4Li04LmMIOC5gOC4iuC4t+C5ieC4reC4iuC4seC4og0KK+C4pOC4l+C4seC4oiDguJ7guLHguJnguJjguLjguYDguJTguIoNCivguKTguLLguIrguLjguJXguLIg4Lit4Lix4Lih4Lie4Li44LiKDQor4Lil4LiU4Liy4Lie4Lij4Lij4LiTIOC4nuC4tOC4qOC4peC4nuC4ueC4pQ0KK+C4peC4lOC4suC4p+C4seC4peC4ouC5jCDguIjguLTguJnguJTguLLguKfguIfguKnguYwNCivguKXguJTguLLguKfguLHguKXguKLguYwg4LmA4Lic4Li34LmI4Lit4LiZ4LiZ4LmJ4Lit4LiiDQor4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4o+C4teC4geC4suC4jeC4iOC4meC4sg0KK+C4peC4miDguJnguLLguJTguK3guJkNCivguKXguKHguLHguKIg4LmB4LiB4LmJ4Lin4Lie4Lix4LiZ4LiV4LiyDQor4Lil4Lih4Lix4LiiIOC4oeC4meC4suC4m+C4tQ0KK+C4peC4oeC4suC4lCDguJ7guKXguYDguKPguLfguK3guIcNCivguKXguKHguLnguKUg4LiX4Lit4LiH4LiK4Li34LmI4LiZDQor4Lil4Lil4LiZ4LiyIOC4lOC4teC4quC4oeC4quC4uOC4gg0KK+C4peC4peC4tOC4leC4leC4siDguKrguLLguJjguLjguIHguLLguKMNCivguKXguKXguLTguKrguLIg4LiZ4Liy4Lih4Liq4Li44LiU4LmD4LiIDQor4Lil4LmJ4Lin4LiZIOC4muC4uOC4qeC4muC4sg0KK+C4peC5ieC4p+C4mSDguKvguKHguKfguJTguKrguLHguJnguYDguJfguLXguKLguLANCivguKXguK3guKIg4Lir4Liy4LiN4LiT4Lij4LiH4LiE4LmMDQor4Lil4Lit4LitIOC4muC4ueC4o+C4k+C4qOC4tOC4o+C4tA0KK+C4peC4reC4rSDguKvguK3guKLguKjguKPguLXguIjguLHguJnguJfguKPguYwNCivguKXguK3guK3guKjguKPguLUg4Lia4Lij4Lij4LiI4LiH4Lio4Li04Lil4LibDQor4Lil4Liw4LiU4LiyIOC4quC4meC4peC4reC4og0KK+C4peC4sOC4oeC5iOC4reC4oSDguYDguJnguJXguJXguLDguKrguLnguJUNCivguKXguLDguKHguYjguK3guKEg4LmB4Liq4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Lil4Liw4Lih4Lix4LiiIOC4l+C4reC4h+C4ouC4seC5iOC4h+C4ouC4t+C4mQ0KK+C4peC4sOC4oeC4seC4oiDguKPguLHguIHguIHguLLguKMNCivguKXguLDguKHguLHguKIg4Lit4Liy4Lij4Lih4Lii4LmM4LiU4Li1DQor4Lil4Liw4Lih4LmJ4Liy4LiiIOC4nuC4pOC4geC4qeC5jOC4quC4uOC4meC4seC4meC4l+C5jA0KK+C4peC4sOC4oeC4uOC4mSDguYDguJvguKXguYjguIfguKfguLHguJkNCivguKXguLDguKHguLnguKUg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lil4Liw4Lit4LitIOC4hOC4ueC4k+C4quC4tOC4meC4l+C4p+C4teC4geC4uOC4pQ0KK+C4peC4sOC4reC4rSDguJjguYDguJnguKjguJjguLLguJTguLINCivguKXguLDguK3guK0g4LmA4Lie4LmH4LiN4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lil4Liw4Lit4LitIOC4p+C4tOC4iOC4tOC4leC4ow0KK+C4peC4sOC4reC4rSDguK3guKLguLnguYjguKLguLfguJnguKLguIcNCivguKXguLDguK3guK3guIcg4LiK4Liw4LmA4LiZ4LiV4Li04Lii4Lix4LiHDQor4Lil4Liw4Lit4Lit4LiHIOC4m+C4suC4meC5gOC4oeC5iOC4mQ0KK+C4peC4sOC4reC4reC4hyDguKfguIfguKnguLINCivguKXguLDguK3guK3guIfguJTguLLguKcg4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilDQor4Lil4Liw4Lit4Lit4Lio4Lij4Li1IOC4quC4suC5gOC4reC4teC5iOC4ouC4oQ0KK+C4peC4sOC5gOC4oeC4teC4ouC4lCDguJfguLHguJrguJfguLTguKHguJfguK3guIcNCivguKXguLDguYDguKHguLXguKLguJQg4LmA4Lil4Liy4Lir4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC4geC4peC4tOC5iOC4meC4peC4s+C4lOC4p+C4mQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguIjguLHguJnguJfguLDguKfguIfguKjguYwNCivguKXguLDguYDguK3guLXguKLguJQg4LiU4LmJ4Lin4LiH4LmC4LiVDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC4meC4uOC5ieC4ouC5gOC4peC5h+C4gQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguJ7guLTguKXguLbguIENCivguKXguLDguYDguK3guLXguKLguJQg4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC4quC4suC4o+C4iOC4seC4meC4l+C4o+C5jA0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguYDguK3guLXguYjguKLguKHguKfguLTguIjguLLguKPguJPguYwNCivguKXguLHguIHguILguJPguLIg4LiB4Lij4Lij4LmC4Lih4Lib4LiB4Lij4LiT4LmMDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC4iuC5ieC4suC4h+C5geC4iOC5ieC4hw0KK+C4peC4seC4geC4guC4k+C4siDguJnguYnguK3guKLguJvguKPguLXguIrguLINCivguKXguLHguIHguILguJPguLIg4LmC4Lie4LiY4Li04LiB4Li44LilDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC5gOC4p+C4rOC4uOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4peC4seC4geC4guC4k+C4siDguK3guKDguLTguKfguLHguJLguJnguJ7guIfguKjguYwNCivguKXguLHguIHguKnguYzguITguJPguLIg4LiY4LiZ4Liw4Lib4Lix4LiB4Lip4LmMDQor4Lil4Lix4LiB4Lip4LiT4LiyIOC4iOC4suC4o+C4uOC5geC4quC4h+C5hOC4nuC5hOC4o+C4iOC4meC5jA0KK+C4peC4seC4geC4qeC4k+C4siDguJvguLTguYjguJnguJvguKXguLfguYnguKHguIjguLTguJXguJXguYwNCivguKXguLHguIHguKnguJPguLIg4Lio4Lij4Li14LmA4LiK4Liy4Lin4Lij4Lix4LiV4LiZ4LmMDQor4Lil4Lix4LiB4Lip4LiT4Li1IOC4qOC4o+C4teC4quC4luC4suC4nuC4ow0KK+C4peC4seC4geC4qeC4k+C5jCDguK3guKDguLTguIrguLLguJXguLTguJjguKPguKPguKENCivguKXguLHguIHguKnguKHguLUg4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lil4Lix4LiE4LiZ4LiyIOC4geC4seC4meC4leC4o+C4sOC4p+C4h+C4qOC5jA0KK+C4peC4seC5ieC4hyDguYHguIvguYjguITguLkNCivguKXguLHguYnguIfguYDguK7guLXguKLguIcg4LmB4LiL4LmI4LmC4LiBDQor4Lil4Lix4LiU4LiU4LiyIOC4geC4suC4jeC4iOC4meC4geC4seC4meC4l+C4o+C5jA0KK+C4peC4seC4lOC4lOC4siDguYHguIHguYnguKfguKPguLHguKjguKHguLXguKfguIfguKjguYwNCivguKXguLHguJTguJTguLIg4LiE4Li44LmJ4Lih4LmA4LiB4Lij4LiHDQor4Lil4Lix4LiU4LiU4LiyIOC4iOC4tOC4leC4leC5jOC4reC5iOC4reC4mQ0KK+C4peC4seC4lOC4lOC4siDguIrguKXguYTguJ7guKPguJ7guLTguKHguKXguKPguLHguJXguJnguYwNCivguKXguLHguJTguJTguLIg4LiL4Lit4Liq4Li44LiC4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4peC4seC4lOC4lOC4siDguJTguLXguKrguLHguYnguJkNCivguKXguLHguJTguJTguLIg4LmC4LiV4LmK4Liw4LiX4Lit4LiHDQor4Lil4Lix4LiU4LiU4LiyIOC4mOC4o+C4o+C4oeC4suC4oOC4tOC4o+C4suC4meC4meC4l+C5jA0KK+C4peC4seC4lOC4lOC4siDguJnguLjguIrguYDguJvguKXguLXguYjguKLguJkNCivguKXguLHguJTguJTguLIg4Lib4LiP4Li04Lia4Lix4LiV4Li0DQor4Lil4Lix4LiU4LiU4LiyIOC5gOC4nOC5iOC4suC4muC4uOC4jeC4oeC4tQ0KK+C4peC4seC4lOC4lOC4siDguJ7guLbguYjguIfguJ7guLHguJLguJnguYwNCivguKXguLHguJTguJTguLIg4Lih4LiH4LiE4Lil4LiZ4Lix4LiODQor4Lil4Lix4LiU4LiU4LiyIOC4ouC4h+C5hOC4quC4pw0KK+C4peC4seC4lOC4lOC4siDguKPguLjguYjguIfguKfguLTguJXguKPguLUNCivguKXguLHguJTguJTguLIg4Lin4LiH4Lio4LmM4Lil4Liw4LiE4LijDQor4Lil4Lix4LiU4LiU4LiyIOC4p+C4tOC4oeC4uOC4geC4leC4suC4ouC4mQ0KK+C4peC4seC4lOC4lOC4siDguKjguLTguKPguLTguIfguLANCivguKXguLHguJTguJTguLIg4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmA4Lin4LiKDQor4Lil4Lix4LiU4LiU4LiyIOC4quC4uOC4meC4l+C4o+C4suC4p+C4h+C4qOC5jA0KK+C4peC4seC4lOC4lOC4siDguKvguKfguLHguIfguKHguLUNCivguKXguLHguJTguJTguLIg4Lit4Lix4Lia4LiU4Li44Lil4Lil4Liy4LmD4LiaDQor4Lil4Lix4LiU4LiU4LiyIOC5gOC4reC4tOC4muC4reC4tOC5iOC4oQ0KK+C4peC4seC4lOC4lOC4suC4p+C4o+C4o+C4kyDguIjguLTguJXguKPguJTguLINCivguKXguLHguJTguJTguLLguKfguKPguKPguJPguYwg4Lie4Li44LmI4Lih4Lin4Li04LmA4Lio4LipDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4h+C4suC4oeC4m+C4o+C4sOC4oeC4p+C4jQ0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguYHguIvguYjguJnguLTguYnguKENCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4LiZ4LiZ4LiX4Liw4LiZ4Liy4LiE4LijDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4nuC4peC4reC4ouC5gOC4nuC5h+C4iuC4ow0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguKLguLjguJfguJjguJnguLLguKrguLTguKPguLTguIHguLjguKUNCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4quC4uOC5gOC4oeC4mOC4suC4qOC4ow0KK+C4peC4seC4lOC4nuC4peC4tSDguKrguLTguJnguJjguLjguYLguKrguKDguJMNCivguKXguLHguYjguJnguJfguKEg4Lil4Li14Lie4Lix4LiZ4LmB4Liq4LiHDQor4Lil4Liy4LiZIOC4p+C4h+C4qOC5jOC4h+C4suC4oeC4geC4meC4gQ0KK+C4peC4suC4peC4teC4p+C4seC4k+C4ouC5jCDguJrguLjguJnguJnguLLguIQNCivguKXguLLguKfguLHguJPguKLguYwg4LmE4LiK4Lii4Lia4Li54Lij4LiT4Liw4Lie4Lix4LiZ4LiY4LmM4LiB4Li44LilDQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMIOC4pOC4l+C4mOC4tOC4meC4meC4l+C5jA0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguIHguLHguJnguIrguLLguJXguLQNCivguKXguLLguKfguLHguKXguKLguYwg4LmC4LiK4LiV4Li04Lie4Lix4LiZ4LiY4LmMDQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4muC4tOC4meC4quC4uOC4oeC4seC4mQ0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguYHguKLguYnguKHguJvguKPguLDguKDguLINCivguKXguLLguKfguLHguKXguKLguYwg4Lio4Li44LiC4LmA4LiX4Lin4LiyDQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4reC4tOC4meC4l+C4o+C4lOC4tOC4qeC4kOC5jA0KK+C4peC4s+C4iOC4p+C4mSDguJrguLjguI3guYDguILguYfguKENCivguKXguLPguJTguKfguJkg4LiB4Lij4Li44LiU4Lie4Lix4LiZ4LiY4LmMDQor4Lil4Liz4LiU4Lin4LiZIOC5gOC4leC4iuC4sOC5gOC4quC4mQ0KK+C4peC4s+C4lOC4p+C4mSDguYDguJ7guYfguIrguKPguIHguKXguLHguJoNCivguKXguLPguJTguKfguJkg4Liq4Li04Lih4Liw4LiC4LiI4Lij4Lia4Li44LiNDQor4Lil4Liz4Lie4LijIOC4hOC4s+C4oeC4sg0KK+C4peC4s+C4nuC4seC4hyDguK3guLjguJTguKENCivguKXguLPguJ7guLkg4Liq4Li34Lia4Liq4Lin4LmI4Liy4LiH4LiB4Li44LilDQor4Lil4Liz4Lig4Li5IOC4qOC4o+C4teC4oOC4hOC4suC4geC4ow0KK+C4peC4s+C4ouC4reC4hyDguJnguKDguJnguJfguLUNCivguKXguLPguKPguLAg4LiX4Lix4Lia4LmA4Lib4Lil4Li14LmI4Lii4LiZDQor4Lil4Liz4LmA4LiI4Li14Lii4LiBIOC4o+C4seC4leC4o+C4quC4suC4ow0KK+C4peC4s+C5gOC4nuC4oiDguYDguKHguIbguJvguKPguLDguKrguLLguJcNCivguKXguLPguYPguKIg4LiI4Lij4Li04LiV4LiK4Li14Lin4LiwDQor4Lil4Liz4LmD4LiiIOC4m+C4suC4meC5gOC4o+C4t+C4reC4hw0KK+C4peC4s+C5g+C4oiDguKrguLjguKfguKPguKPguJPguYLguIrguJXguLQNCivguKXguYnguLMg4LmD4LiI4LmA4LiB4LmI4LiH4LiB4Li04LiIDQor4Lil4Li04LiC4Li04LiVIOC4iuC4p+C4qOC4tOC4o+C4tA0KK+C4peC4tOC4guC4tOC4lSDguKPguLHguJXguJnguJ7guIfguKjguYwNCivguKXguLTguJTguLIg4LiV4Lix4LiZ4LiV4Li04LiI4Lij4Lij4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lil4Li04LiZ4LiU4LiyIOC4iOC4tOC4o+C4m+C4o+C4sOC4oOC4suC4geC4ow0KK+C4peC4tOC4meC4lOC4siDguKfguLXguKPguJ7guLHguJnguJjguLjguYwNCivguKXguLTguYnguJnguIjguLXguYgg4LiC4Lix4LiZ4LiX4Lit4LiH4LiU4Li1DQor4Lil4Li04LmJ4LiZ4LiI4Li14LmIIOC4quC4oeC4tOC4leC4tOC4meC4seC4meC4l+C4meC5jA0KK+C4peC4tOC5iOC4oeC4iuC4tOC4pyDguYHguIvguYjguKXguLTguYnguKENCivguKXguLTguYnguKEg4Liq4Li44LiC4Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4Lil4Li04Lil4Li14LmIIOC4q+C4h+C4quC5jOC4quC4uOC4guC4nuC4seC4meC4mOC4uOC5jA0KK+C4peC4tSDguKrguLjguILguYHguKrguIfguYPguKoNCivguKXguLXguJXguYnguLIg4LiB4Li04LiI4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lil4Li14Lil4LiyIOC4peC4tOC4mQ0KK+C4peC4teC4ruC4seC5ieC4pyDguKjguLTguKPguLTguIrguLLguJXguIrguLHguKINCivguKXguLXguYjguYDguITguYfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lil4Li14LmIIOC4reC4ouC4ueC5iOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4peC4t+C4reC4iuC4seC4oiDguYTguJ7guYLguKPguIjguJnguYzguJ7guLjguJfguJjguLTguITguLjguJMNCivguKXguLfguK3guJ7guIfguKnguYwg4LmC4Lie4LiY4Li04LmM4LmA4LiI4Lij4Li04LiNDQor4Lil4Li44LmJ4LiiIOC5guC4leC4leC4o+C4tuC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4peC4ueC4geC4iuC4tOC5ieC4mSDguKvguIfguKnguYzguJfguK3guIcNCivguYDguKXguILguLIg4LmA4Lie4LiK4Lij4LmA4Liq4LiZ4LiyDQor4LmA4Lil4Lit4Lie4LiH4Lip4LmMIOC5gOC4o+C4t+C4reC4h+C4p+C4suC4meC4tOC4ig0KK+C5gOC4peC4reC4qOC4seC4geC4lOC4tOC5jCDguKrguJbguLTguJXguKLguYzguKfguLTguKHguKUNCivguYDguKXguLLguKvguJnguLjguKfguLHguJXguLQg4LmA4Lil4Liy4Lir4LiZ4Li44Lin4Lix4LiV4Li0DQor4LmA4Lil4Li04LioIOC4iuC4t+C5iOC4meC5hOC4oeC5iOC4p+C4suC4og0KK+C5gOC4peC4tOC4qCDguKPguLDguKvguLINCivguYDguKXguLTguKjguIrguLHguKIg4LiE4Lil4LmI4Lit4LiH4LiY4LiZ4LiB4Li04LiIDQor4LmA4Lil4Li04Lio4LiK4Liy4LiiIOC4hOC5ieC4suC4nOC4peC4lOC4tQ0KK+C5gOC4peC4tOC4qOC4pOC4l+C4mOC4tOC5jCDguJXguLHguYnguIfguIHguYjguK3guKrguIHguLjguKUNCivguYDguKXguLTguKjguKfguLTguJfguKLguYwg4LmC4Lij4LiI4LiZ4LmM4LiC4LiI4Lij4LiZ4Lig4Liy4Lil4Lix4LiiDQor4LmA4Lil4Li04Lio4Lio4Li04Lil4Lib4LmMIOC4hOC4teC4o+C4tQ0KK+C5gOC4peC4teC4ouC4h+C4iuC4seC4oiDguK3guKPguLjguJPguIHguLTguIjguYDguIjguKPguLTguI0NCivguYDguKXguLXguYjguKLguIfguITguLTguKEg4LmB4LiL4LmI4Lit4Lix4LmK4LiHDQor4LmA4Lil4Li14LmI4Lii4LiH4LmA4Liu4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4peC4teC5ieC4ouC4hyDguYHguIvguYjguYDguJXguLXguKLguKcNCivguYDguKXguLfguYjguK3guJkg4LiB4Lik4Lip4LiT4LiB4Lij4Li1DQor4LmA4Lil4Li34LmI4Lit4LiZIOC4quC4oeC4lOC4tQ0KK+C5gOC4peC5h+C4gSDguIHguLjguKXguIHguLTguIjguIHguLPguIjguKMNCivguYDguKXguYfguIEg4LiI4LiV4Li44Lie4Lij4Lir4Lih4Lin4LiH4Lio4LmMDQor4LmA4Lil4LmH4LiBIOC4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQ0KK+C5gOC4peC5h+C4gSDguYHguIvguYjguKXguLXguYkNCivguYDguKXguYfguIEg4LiU4Lit4LiB4Liq4Liy4Lii4Lir4Lii4Li44LiUDQor4LmA4Lil4LmH4LiBIOC4l+C4o+C4seC4nuC4ouC5jOC5geC4quC4meC4lOC4tQ0KK+C5gOC4peC5h+C4gSDguJnguLLguKrguLjguKfguKPguKPguJMNCivguYDguKXguYfguIEg4Lib4LmJ4Lit4Lih4LiK4Li54LmB4LiB4LmJ4LinDQor4LmA4Lil4LmH4LiBIOC4nuC4teC4o+C4nuC4peC4suC4meC4seC4meC4l+C5jA0KK+C5gOC4peC5h+C4gSDguYDguKHguJjguLXguIHguLjguKUNCivguYDguKXguYfguIEg4Lil4Li04LmJ4Lih4Lib4Li04LiB4Lij4LiT4LmMDQor4LmA4Lil4LmH4LiBIOC4qOC4o+C4teC4geC4peC4tOC5iOC4meC4quC4uOC4p+C4o+C4o+C4kw0KK+C5gOC4peC5h+C4gSDguKrguLLguJXguKPguJnguJnguJfguKPguLXguKLguYwNCivguYDguKXguYfguIEg4LmB4Liq4LiH4LmD4Liq4LmB4LiB4LmJ4LinDQor4LmA4Lil4LmH4LiBIOC4reC4seC4geC4qeC4o+C4suC4meC4uOC4p+C4seC4leC4ow0KK+C5gOC4peC5h+C4miDguKfguIfguKnguYzguYDguIjguKPguLTguI0NCivguYDguKXguYnguIcg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LmB4Lil4LmJ4LihIOC4oOC4tOC4o+C4oeC4ouC5jOC4oeC5iOC4p+C4hw0KK+C5hOC4peC5iOC4ruC4gSDguYHguIvguYjguYDguJrguYoNCivguKfguIfguIjguLHguJnguJfguKPguYwg4LmE4LiX4Lij4LiH4Liy4LihDQor4Lin4LiH4Lio4LmM4LiI4Lix4LiZ4LiX4Lij4LmMIOC4p+C4tOC5gOC4qOC4qeC4qOC4ow0KK+C4p+C4h+C4qOC5jOC4qOC4tOC4o+C4tCDguJ7guKPguKvguKHguIrguJnguLANCivguKfguIfguKjguYwg4LiI4Liz4LiZ4LiH4Lin4Li04LiX4Lii4LmMDQor4Lin4LiH4Lip4LmM4LmA4LiU4Li34Lit4LiZIOC4iuC4meC4m+C4o+C4sOC4iuC4sg0KK+C4p+C4h+C5gOC4lOC4t+C4reC4mSDguIfguLLguKHguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKfguIfguYDguJTguLfguK3guJkg4Lib4Li04LmI4LiZ4LiB4Li44Lih4Lig4Li14Lij4LmMDQor4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4quC4uOC4guC5gOC4meC4leC4ow0KK+C4p+C4iuC4tOC4oyDguJnguLTguKLguKHguKjguLTguKXguJsNCivguKfguIrguLTguKPguLAg4LiY4Lij4Lij4Lih4Lir4LiX4Lix4LiiDQor4Lin4LiK4Li04Lij4LiyIOC4geC4tOC5iOC4h+C5geC4geC5ieC4pw0KK+C4p+C4iuC4tOC4o+C4siDguKvguKXguLXguKXguLDguYDguKHguLXguKLguKMNCivguKfguIrguLTguKPguLLguKfguLHguKXguKLguYwg4Lin4Li04LiX4Lii4Lie4Liy4LiZ4Li04LiKDQor4Lin4LiT4Li04LiK4LiyIOC5guC4reC4l+C4geC4suC4meC4meC4l+C5jA0KK+C4p+C4k+C4tSDguKfguLTguIjguLTguJXguKMNCivguKfguJTguLXguIHguKPguJPguYwg4Liq4Li44LiC4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTDQor4Lin4LiZ4Lij4Lix4LiK4LiV4LmMIOC4leC4seC5ieC4h+C4hOC4suC4o+C4p+C4sOC4hOC4uOC4kw0KK+C4p+C4meC4suC4peC4tSDguIjguLTguJXguJXguLLguJnguJnguJfguYwNCivguKfguJnguLTguIrguLIg4Lij4Lix4LiV4LiZ4Liw4Lin4Li04LioDQor4Lin4LiZ4Li04LiU4LiyIOC4geC4suC4q+C4peC4tOC4mg0KK+C4p+C4meC4tOC4lOC4siDguILguLHguJnguJjguKrguLTguJfguJjguLTguYwNCivguKfguJnguLTguJTguLIg4LiI4LiH4Lib4Li04Lii4Liw4LmA4Lil4Li04LioDQor4Lin4LiZ4Li04LiU4LiyIOC4iOC4uOC4peC4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4meC4tOC4lOC4siDguIrguLHguKLguIrguLHguIrguKfguLLguKUNCivguKfguJnguLTguJTguLIg4LiL4Li24LiH4LiX4Lit4LiHDQor4Lin4LiZ4Li04LiU4LiyIOC4kOC4suC4meC4sOC4quC4luC4tOC4o+C4geC4uOC4pQ0KK+C4p+C4meC4tOC4lOC4siDguJXguLTguKXguIHguLLguJnguLHguJnguJfguYwNCivguKfguJnguLTguJTguLIg4LmA4LiX4Lie4Lie4Li04LiX4Lix4LiB4Lip4LmM4Lie4LiH4Lip4LmMDQor4Lin4LiZ4Li04LiU4LiyIOC4meC4tOC4oeC4oeC4suC4meC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4p+C4meC4tOC4lOC4siDguJrguLnguKPguJPguKrguLHguIjguIjguLANCivguKfguJnguLTguJTguLIg4Lic4Lil4Liy4Lic4LilDQor4Lin4LiZ4Li04LiU4LiyIOC4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4meC4tOC4lOC4siDguKDguLnguJfguLTguJ7guKLguKfguIfguKnguLINCivguKfguJnguLTguJTguLIg4LmE4Lih4LmJ4LiU4Li14LmA4Lil4Li04LioDQor4Lin4LiZ4Li04LiU4LiyIOC5gOC4o+C4t+C4reC4h+C4mOC4teC4o+C4reC4s+C4meC4p+C4og0KK+C4p+C4meC4tOC4lOC4siDguYDguKXguLXguYnguKLguIfguJbguJnguK3guKENCivguKfguJnguLTguJTguLIg4Lin4Li04LiN4LiN4Li54Lin4Li04Liq4Li04LiX4LiY4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4LiZ4Li04LiU4LiyIOC4qOC4suC4meC4leC5jOC4nuC4tOC4o+C4tOC4ouC4sA0KK+C4p+C4meC4tOC4lOC4siDguKrguKPguLLguKfguLjguJjguKfguLTguJnguLHguKINCivguKfguJnguLTguJTguLIg4Liq4Li44LiC4Liq4Lih4Lig4Lix4LiB4LiU4Li04LmMDQor4Lin4LiZ4Li04LiU4LiyIOC5geC4quC4h+C4nuC4h+C4qOC5jOC4iuC4p+C4suC4pQ0KK+C4p+C4meC4tOC4lOC4siDguK3guKHguLLguJXguKLguIHguLjguKUNCivguKfguJnguLTguJTguLIg4Lit4Li44LiX4Lii4Liy4LiH4LiB4Li54LijDQor4Lin4LiZ4Li04Lig4LiyIOC4p+C5iOC4reC4h+C4p+C4seC4iOC4meC4sA0KK+C4p+C4o+C4geC4suC4meC4leC5jCDguKDguITguKfguLHguJXguKrguLjguJnguJfguKMNCivguKfguKPguIHguLTguIgg4Liq4Li44Lij4LiT4Lij4LiH4LiE4LmM4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lij4LiI4Li04LiV4Lij4LiyIOC4p+C4qOC4tOC4meC4nuC4h+C4qOC5jOC4p+C4k+C4tOC4ig0KK+C4p+C4o+C4iuC4seC4oiDguJfguLHguKjguYTguJnguKLguYDguJjguLXguKLguKPguIHguLjguKUNCivguKfguKPguIrguLHguKIg4Liq4Li04LiZ4LiY4LiZ4LiZ4Lie4LiE4Li44LiTDQor4Lin4Lij4LiK4Liy4LiV4Li0IOC4nuC4seC4meC4mOC4uOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4o+C4k+C4tSDguKHguJjguLjguKPguKrguJXguKPguLDguIHguLnguKUNCivguKfguKPguJjguKPguKPguKEg4LmB4LiI4LmI4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lin4Lij4LiZ4Liy4LiWIOC4m+C4tOC4ouC4quC4uOC4p+C4o+C4o+C4k+C4suC4oOC4o+C4k+C5jA0KK+C4p+C4o+C4meC4uOC4iiDguIHguLTguIjguK3guLjguJTguKHguKrguLTguJkNCivguKfguKPguJnguLjguIog4LiV4Lix4LmJ4LiH4LmA4LiI4Lij4Li04LiN4LmA4Liq4LiW4Li14Lii4LijDQor4Lin4Lij4LiZ4Li44LiKIOC4nuC4tOC4qeC4k+C4uOC4p+C4h+C4qeC5jA0KK+C4p+C4o+C4meC4uOC4iiDguKjguKPguLXguJfguLHguKjguJnguLXguKLguYwNCivguKfguKPguJnguLjguIog4LmC4Lit4Lig4Liy4Liq4LmA4LiI4Lij4Li04LiN4Lie4LijDQor4Lin4Lij4Lie4LiH4Lio4LmMIOC4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jOC4p+C4tOC4o+C4seC4ig0KK+C4p+C4o+C4nuC4h+C4qeC5jCDguYLguJ7guJjguLTguYzguKrguKfguYjguLLguIcNCivguKfguKPguJ7guIjguJnguYwg4LiB4Li04LiV4LiV4Li04Lie4Lix4LiS4LiZ4Liy4Lie4LiH4Lio4LmMDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4leC4o+C4o+C4geC4nuC4h+C4qOC5jA0KK+C4p+C4o+C4nuC4iOC4meC5jCDguYDguJvguKPguKHguKrguLLguKINCivguKfguKPguJ7guIjguJnguYwg4Lin4LiH4Lio4LmM4Liq4LiH4LmI4LiyDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4quC4uOC4p+C4seC4kuC4meC5jOC4mOC4meC4suC4geC4ow0KK+C4p+C4o+C4nuC4oyDguJfguKPguLHguJ7guKLguYzguJfguKfguLXguJ7guKMNCivguKfguKPguJ7guKPguKPguJMg4Lih4Li14LiX4Lit4LiH4LiE4LizDQor4Lin4Lij4Lie4LilIOC5gOC4muC4jeC4geC4suC4meC4tQ0KK+C4p+C4o+C4nuC4seC4kuC4meC5jCDguKrguLjguKHguLDguYLguJkNCivguKfguKPguJ7guLTguIrguI3guLIg4Lia4Li44LiN4Lio4Lij4Li14LmC4Lij4LiI4LiZ4LmMDQor4Lin4Lij4Lih4LiZIOC4hOC4h+C4reC5iOC4reC4mQ0KK+C4p+C4o+C4ouC4uOC4l+C4mOC5jCDguJvguKPguLDguJjguLLguJnguJfguLTguJ7guKLguYwNCivguKfguKPguKPguJPguIHguLLguJnguJXguYwg4LiC4Liy4Lin4Lil4Liy4LigDQor4Lin4Lij4Lij4LiT4LiK4Lix4LiiIOC4muC4uOC4jeC4muC4s+C4o+C4uOC4hw0KK+C4p+C4o+C4o+C4k+C4lOC4tSDguIjguLHguJnguJfguKPguYzguJvguKXguLHguYjguIcNCivguKfguKPguKPguJPguJTguLUg4Lie4Lij4LiZ4Lix4LiZ4LiX4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lij4Lij4LiT4LiU4Li1IOC4q+C4h+C4quC5jOC4meC4tOC4oeC4tOC4leC4iuC4seC4og0KK+C4p+C4o+C4o+C4k+C4l+C4tOC4nuC4ouC5jCDguYHguIvguYjguYLguJvguYjguKcNCivguKfguKPguKPguJPguJnguKDguLIg4LmB4LiL4LmI4LmA4LiV4Li14LmL4Lii4LinDQor4Lin4Lij4Lij4LiT4LiZ4Li04Lig4LiyIOC4nuC4uOC5iOC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4o+C4o+C4k+C4nuC4oyDguIHguLTguJXguJXguLTguYLguKrguKDguJMNCivguKfguKPguKPguJPguJ7guKMg4LmA4Lie4Li14Lii4Lij4Liq4Liy4Lij4LiwDQor4Lin4Lij4Lij4LiT4Lie4Li04Lia4Li54Lil4Lii4LmMIOC4meC4uOC4iuC5g+C4og0KK+C4p+C4o+C4o+C4k+C4oOC4siDguIrguKHguJfguKPguLHguJ7guKLguYwNCivguKfguKPguKPguJPguKDguLIg4Lib4Li04Lii4Liw4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Lij4Lij4LiT4Lig4LiyIOC4qOC4o+C5hOC4nuC4qOC4suC4pQ0KK+C4p+C4o+C4o+C4k+C4o+C4seC4geC4qeC5jCDguKfguLHguJLguJnguKfguLjguJLguLTguJ7guIfguKjguYwNCivguKfguKPguKPguJPguKPguLUg4LiK4Li44LiT4Lir4Lig4Li04LiN4LmC4LiN4LiB4Li44LilDQor4Lin4Lij4Lij4LiT4Lin4LiU4Li1IOC5guC4leC4qeC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4o+C4o+C4k+C4p+C4tOC4oOC4siDguJjguYDguJnguKjguKrguLjguJjguKPguKPguKENCivguKfguKPguKPguJPguKfguLTguKHguKUg4LiQ4Liy4LiZ4Liy4LiZ4Li44Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Lij4Lij4LiT4Lin4Li04Lih4LilIOC4quC4uOC4guC4m+C4suC4mQ0KK+C4p+C4o+C4o+C4k+C4p+C4tOC5hOC4pSDguKjguLTguKPguLTguIrguLHguKLguYDguJfguKfguLTguJnguJfguKPguYwNCivguKfguKPguKPguJPguKjguLTguKPguLQg4LiV4Lix4LiZ4LmA4LiI4Lij4Li04LiNDQor4Lin4Lij4Lij4LiT4LiwIOC4hOC4k+C4suC4jeC4suC4leC4tA0KK+C4p+C4o+C4o+C4k+C4sCDguYTguKrguKLguYDguIHguLfguYnguK0NCivguKfguKPguKPguJPguLIg4LiB4Li44Lil4Lie4LiZ4Liy4LmA4Lin4LioDQor4Lin4Lij4Lij4LiT4LiyIOC4hOC4h+C5gOC4iOC4o+C4tOC4jeC4iOC4tOC4leC4leC4tOC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4siDguIjguLHguJnguJfguKPguITguIcNCivguKfguKPguKPguJPguLIg4LmA4LiI4Li14Lii4LiH4Lin4LiH4Lio4LmM4LiW4Liy4Lin4LijDQor4Lin4Lij4Lij4LiT4LiyIOC4iuC4tOC4meC4qOC4o+C4teC4quC4uOC4gg0KK+C4p+C4o+C4o+C4k+C4siDguYHguIvguYjguKXguLTguYjguKcNCivguKfguKPguKPguJPguLIg4LmB4LiL4LmI4LmC4Lil4LmIDQor4Lin4Lij4Lij4LiT4LiyIOC4leC4seC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4o+C4o+C4k+C4siDguJfguK3guIfguKrguLjguIINCivguKfguKPguKPguJPguLIg4LiY4Li14Lij4Liw4Lie4LiH4Lip4LmMDQor4Lin4Lij4Lij4LiT4LiyIOC4muC4p+C4o+C4p+C4seC4kuC4meC4p+C4suC4meC4tOC4ig0KK+C4p+C4o+C4o+C4k+C4siDguJvguKPguLLguIfguJfguK3guIcNCivguKfguKPguKPguJPguLIg4Lie4LiI4LiZ4LmM4Lio4Li04Lij4Li04Lio4Li04Lil4LibDQor4Lin4Lij4Lij4LiT4LiyIOC4nuC4suC4meC4tOC4iuC4ouC5jOC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4p+C4o+C4o+C4k+C4siDguKDguLHguJfguKPguJrguLHguJPguJHguLTguJUNCivguKfguKPguKPguJPguLIg4LmB4Lih4LmJ4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lin4Lij4Lij4LiT4LiyIOC5gOC4o+C4t+C4reC4h+C4m+C4o+C4sOC5gOC4oOC4lw0KK+C4p+C4o+C4o+C4k+C4siDguKfguIfguKjguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguKfguKPguKPguJPguLIg4Lin4Li04Liq4Li44LiX4LiY4Lin4Li04LmA4Lio4LipDQor4Lin4Lij4Lij4LiT4LiyIOC4qOC4tOC4leC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4p+C4o+C4o+C4k+C4siDguKrguKvguJjguKPguKPguKHguLTguIENCivguKfguKPguKPguJPguLIg4Liq4Li44LiI4Lij4Li04LiVDQor4Lin4Lij4Lij4LiT4LiyIOC5guC4quC4oOC4k+C4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4k+C4siDguK3guJnguLjguKrguKPguJPguIrguLHguKINCivguKfguKPguKPguJPguLIg4Lit4Li04LiZ4LiX4Lij4LmM4Lie4Lij4Liw4Lii4LiyDQor4Lin4Lij4Lij4LiT4Liy4Lig4LiyIOC5geC4i+C5iOC4i+C4tuC4hw0KK+C4p+C4o+C4o+C4k+C4tOC4oOC4siDguKrguLjguILguJ7guKXguK3guKINCivguKfguKPguKPguJPguLUg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Lix4LiH4Lin4Liy4LiZ4LiB4Li44LilDQor4Lin4Lij4Lij4LiT4Li1IOC4hOC4uOC5ieC4oeC4reC4meC4uOC4p+C4h+C4qOC5jA0KK+C4p+C4o+C4o+C4k+C4tSDguYDguIjguKPguLTguI3guYDguJXguLXguKLguKfguIfguKjguYwNCivguKfguKPguKPguJPguLUg4LmC4LiK4LiE4LiK4Li54LiK4Lix4LiiDQor4Lin4Lij4Lij4LiT4Li1IOC5geC4i+C5iOC5gOC4reC4teC4ouC4sA0KK+C4p+C4o+C4o+C4k+C4tSDguJXguLHguYnguIfguYDguKrguLLguKfguKDguLLguITguKLguYwNCivguKfguKPguKPguJPguLUg4LmE4LiX4LmA4Lih4Li34Lit4LiH4Lie4LilDQor4Lin4Lij4Lij4LiT4Li1IOC4muC4uOC4jeC4jeC4sOC4pOC4l+C4mOC4tOC5jA0KK+C4p+C4o+C4o+C4k+C4tSDguJzguLjguKrguJTguLTguJkNCivguKfguKPguKPguJPguLUg4Lie4Li44LmI4Lih4Lio4Li04Lij4Li0DQor4Lin4Lij4Lij4LiT4Li1IOC4oeC4suC4meC4sOC4oOC4seC4geC4lOC4tOC5jOC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguYDguKPguLfguK3guIfguKrguKHguKvguKHguLLguKINCivguKfguKPguKPguJPguLUg4Lin4LiH4Lip4LmM4LmA4LiX4Li14Lii4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC4qOC4o+C4teC4p+C4tOC4oeC4peC4l+C4seC4qOC4meC5jA0KK+C4p+C4o+C4o+C4k+C4tSDguKrguLHguIjguIjguLDguYDguKfguJfguLANCivguKfguKPguKPguJPguLUg4Liq4Li44Lin4Lij4Lij4LiT4Lik4LiB4Lip4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC4reC4oOC4tOC4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguYDguK3guLXguYjguKLguKHguKrguK3guLLguJQNCivguKfguKPguKPguJPguYDguJ7guYfguI0g4Lie4Lij4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lin4Lij4Lij4LiYIOC4geC4seC4meC4leC5jOC5hOC4nuC5gOC4o+C4suC4sA0KK+C4p+C4o+C4o+C4peC4oOC4o+C4k+C5jCDguYDguKXguK3guKfguLHguJLguJnguIHguLTguIjguJbguLLguKfguKMNCivguKfguKPguKPguLHguJXguJnguYwg4LiZ4Li04Lij4Liw4LiJ4Lix4LiV4Lij4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Lin4Lij4Lil4Lix4LiB4Lip4LiT4LmMIOC4iOC4seC4meC4l+C4o+C4lOC4tQ0KK+C4p+C4o+C4peC4seC4geC4qeC4k+C5jCDguKrguLTguJnguYTguIrguKINCivguKfguKPguKfguKPguKPguJMg4LiN4Liy4LiT4Li04Liq4Liq4LijDQor4Lin4Lij4Lin4Lij4Lij4LiTIOC5gOC4peC4tOC4qOC4hOC4h+C4hOC4suC4l+C4tOC4nuC4ouC5jA0KK+C4p+C4o+C4p+C4o+C4o+C4kyDguYDguK3guLXguYjguKLguKHguKrguLHguJnguJXguLTguYTguJ7guKjguLLguKUNCivguKfguKPguKfguLHguJLguJnguYwg4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Lii4Li44Lio4Lix4LiZ4LiV4LmMDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4geC4uOC4peC4p+C4h+C4qeC5jOC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguIrguLLguJXguLTguYDguKfguLXguKLguIcNCivguKfguKPguKfguLTguJfguKLguYwg4LiX4Lix4Lio4LiY4LiZ4Liw4Liq4Li04Lij4Li04LiB4Li44LilDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4nuC4suC4k+C4tOC4iuC4nuC4seC4kuC4meC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguKfguKPguIHguLTguJXguJXguLTguJ7guLHguJnguJjguYwNCivguKfguKPguKfguLTguJfguKLguYwg4Liq4Li04LiZ4LiK4Lin4Liy4Lil4Lin4Lix4LiS4LiZ4LmMDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4reC4tOC4qOC4o+C4suC4h+C4geC4ueC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lin4Lij4Lin4Li44LiS4Li0IOC4iOC4s+C5gOC4o+C4tOC4jeC4o+C4seC4leC4meC4suC4geC4ow0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguJXguLHguYnguIfguKrguKHguKDguLLguITguKfguKPguIHguLjguKUNCivguKfguKPguKfguLjguJLguLQg4Lie4Lij4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Lij4Lin4Li44LiS4Li0IOC5gOC4peC4tOC4qOC4m+C4o+C4teC4iuC4suC4nuC4h+C4qeC5jA0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguKrguLTguJfguJjguLTguKjguLLguKrguJXguKPguYzguKrguIHguLjguKUNCivguKfguKPguKfguLjguJgg4LmA4LiZ4LiV4Lij4LiX4Lix4Lio4LiZ4LmMDQor4Lin4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4lOC5iOC4meC5gOC4geC4qOC4tOC4meC4teC4peC5ieC4sw0KK+C4p+C4o+C4qOC4seC4geC4lOC4tOC5jCDguKrguLTguIfguKvguJjguLTguJXguLTguIHguLjguKUNCivguKfguKPguKrguLTguJfguJjguLTguYwg4Lib4Lil4Li34LmJ4Lih4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lij4Lix4LiKIOC4reC4o+C4uOC4k+C4geC4oeC4pQ0KK+C4p+C4o+C4seC4jeC4jeC4siDguKjguLTguKXguJvguKrguKHguKjguLHguIHguJTguLTguYwNCivguKfguKPguLHguKHguJ7guKMg4Liq4Li44LiC4LmE4LiU4LmJ4Lie4Li24LmI4LiHDQor4Lin4Lij4Liy4LiB4LijIOC4nOC4iOC4h+C4iOC4tOC4leC4leC4tOC4geC4uOC4pQ0KK+C4p+C4o+C4suC4h+C4hOC4k+C4siDguJTguLXguKHguLLguIENCivguKfguKPguLLguIfguITguJPguLIg4Lit4Li04LiZ4LiK4Li54LmC4LiVDQor4Lin4Lij4Liy4LiX4Li04Lie4Lii4LmMIOC5hOC4reC4ouC4o+C4suC4geC4suC4jeC4iOC4meC4geC4uOC4pQ0KK+C4p+C4o+C4suC4nuC4oyDguIfguLLguKHguKrguKHguJXguKPguLDguIHguLnguKXguIrguLLguJXguLQNCivguKfguKPguLLguJ7guKMg4Lie4Lix4LiZ4LiY4LmM4LiT4Lij4LiH4LiE4LmMDQor4Lin4Lij4Liy4Lie4LijIOC4quC4uOC4l+C4seC4meC4leC4tOC4geC4ow0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguIHguKPguLDguJXguYjguLLguKLguYHguIHguYnguKcNCivguKfguKPguLLguKDguKPguJPguYwg4LmC4LiB4Lio4Lil4Lin4Lix4LiS4LiZ4LiwDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4iOC4h+C4m+C4seC5ieC4mQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguYDguIjguLXguKLguKPguKrguKHguIjguLTguJXguKMNCivguKfguKPguLLguKDguKPguJPguYwg4LmE4LiK4Lii4Lin4LiH4Lio4LmMDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4lOC4suC4p+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguYLguJXguYHguIjguYnguIcNCivguKfguKPguLLguKDguKPguJPguYwg4LiY4LiZ4Liy4Lig4Lij4LiT4LmM4Lie4Li04Lia4Li54LilDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4muC4seC4p+C4hOC4peC4teC5iA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguJvguLTguYjguJnguJfguK3guIcNCivguKfguKPguLLguKDguKPguJPguYwg4Lie4Li04LiT4LmA4Lih4Li34Lit4LiH4LiH4Liy4LihDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4oeC4pOC4qOC5guC4iuC4leC4tA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKPguLHguJXguJnguLANCivguKfguKPguLLguKDguKPguJPguYwg4LmA4Lil4LmI4LiH4Lin4Li04Lij4Li04Lii4Liw4LiB4Li44LilDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4p+C4tOC4nuC4seC4kuC4meC5jOC4geC4tOC4iOC4p+C4tOC5hOC4pQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKjguLjguJnguLLguKXguLHguKINCivguKfguKPguLLguKDguKPguJPguYwg4Liq4Li44LiC4Lia4Li44LiN4Liq4LmI4LiHDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4q+C4oeC4tuC4geC4q+C4reC4oQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguK3guLHguKjguKfguIHguLLguKLguKHguJPguLUNCivguKfguKPguLLguKHguLLguKgg4LiL4Li24LmI4LiH4LiI4Li04LiV4LmA4Liq4LiW4Li14Lii4LijDQor4Lin4Lij4Liy4Lij4Lix4LiV4LiZ4LmMIOC4iOC4tOC4o+C4sOC4guC4iOC4o+C4p+C4h+C4qOC5jA0KK+C4p+C4o+C4suC4o+C4seC4leC4meC5jCDguK3guK3guKPguLHguJXguJnguIrguLHguKINCivguKfguKPguLLguKXguLHguIHguKnguJPguYwg4Lit4Li04LiX4LiY4Li04LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4Lin4Lij4Liy4Lin4Li44LiS4Li0IOC4mOC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4p+C4o+C4suC4p+C4uOC4mCDguYDguJ7guLXguKLguKPguIHguLTguIgNCivguKfguKPguLLguKvguYwg4LmA4Lic4LmI4Liy4LiV4Liz4Lij4Lin4LiIDQor4Lin4Lij4Li04LiZ4LiX4Lij4Li14Lii4LmMIOC4iuC4tOC4meC4quC4suC4og0KK+C4p+C4o+C4tOC4meC4l+C4o+C5jCDguK3guLTguJnguJfguKPguYzguJjguLTguKPguLLguIoNCivguKfguKPguLTguKjguKPguLIg4LmA4Lit4Li34LmJ4Lit4Lit4Liy4Lij4Li14Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lin4Lij4Li14Lig4Lij4LiT4LmMIOC4quC4seC4iOC4iOC4o+C4tOC4leC4suC4meC4seC4meC4l+C5jA0KK+C4p+C4o+C4uOC4kyDguKXguLTguYnguKHguK3guLjguJTguKHguKrguLjguIINCivguKfguKPguLjguJPguLUg4LiV4Lix4LmJ4LiH4Liq4Li34Lia4LiB4Li44LilDQor4Lin4Lij4LmA4LiK4LiVIOC4qOC4o+C4teC4m+C4o+C4sOC4oOC4suC4quC4uOC4guC4quC4seC4meC4leC4tA0KK+C4p+C4o+C5gOC4lOC4iiDguKXguLTguYnguKHguJjguKPguYDguJrguI3guIjguJ7guKUNCivguKfguKPguYDguJfguJ4g4LmB4LiX4LiZ4Lin4Lix4LiZ4LiK4Lix4LiiDQor4Lin4Lij4LmA4LiX4LieIOC4quC4p+C4seC4quC4lOC4tOC4ouC4meC4suC4p+C4tOC4mQ0KK+C4p+C4o+C5guC4iuC4leC4tCDguYDguIrguLXguKLguIfguJfguK3guIcNCivguKfguKXguLHguKIg4LmB4Lib4LmJ4LiZ4LiX4Lit4LiHDQor4Lin4Lil4Lix4Lii4Lie4LijIOC5gOC4geC4teC4ouC4o+C4leC4tOC4l+C4seC4muC4l+C4tOC4pw0KK+C4p+C4peC4seC4ouC4nuC4oyDguKDguLHguJfguKPguLLguJ7guIfguKjguYwNCivguKfguKXguLHguKLguJ7guKPguKPguJMg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4Lin4Lil4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC5geC4geC5ieC4p+C4quC4p+C5iOC4suC4hw0KK+C4p+C4peC4seC4ouC4peC4seC4geC4qeC4k+C5jCDguKTguJfguJjguLTguKPguIfguITguYzguKfguLHguJLguJnguLINCivguKfguKXguLTguKLguLIg4Lin4Lix4LiS4LiZ4Liy4Lie4LijDQor4Lin4Lil4Li1IOC4nuC4peC4sOC4muC4uOC4jeC4oeC4tQ0KK+C4p+C4peC4teC4nuC4oyDguKrguLjguJfguJjguLTguJnguLHguKLguKfguKPguLLguKDguKPguJPguYwNCivguKfguKXguLXguKPguLHguJXguJnguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lit4Lix4LiB4Lip4LijDQor4Lin4Lio4Li04LiZIOC4p+C4k+C4tOC4iuC4ouC5jOC4p+C4o+C4meC4seC4meC4leC5jA0KK+C4p+C4quC4seC4meC4leC4tCDguYLguK3guKDguLLguKrguKfguLLguJnguLTguIoNCivguKfguKrguLHguJnguJXguYwg4LiI4LiH4Lio4Li44Lig4LiZ4Li04Lih4Li04LiVDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC5gOC4iuC4t+C5iOC4reC4oeC4l+C4reC4hw0KK+C4p+C4quC4seC4meC4leC5jCDguJfguK3guIfguITguIcNCivguKfguKrguLHguJnguJXguYwg4Lib4LiP4Li04LmC4Lig4LiE4Liq4Li44LiX4LiY4Li04LmMDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC5guC4nuC4mOC4tOC5jOC5hOC4nuC4o+C4l+C4reC4hw0KK+C4p+C4quC4seC4meC4leC5jCDguKfguIfguKjguYzguIHguLHguJfguKXguLXguITguLLguKENCivguKfguKrguLHguJnguJXguYwg4Liq4LiB4Li44Lil4Lif4Lit4LiHDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4q+C4l+C4seC4ouC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4uOC4pQ0KK+C4p+C4quC4uCDguJrguLnguKPguJPguLDguYDguKvguJXguLgNCivguKfguK3guJkg4LiJ4LmI4Liz4LiZ4Li04LiV4Lii4LmMDQor4Lin4Lix4LiHIOC4quC4uOC4guC4quC4oeC4muC4uOC4jQ0KK+C4p+C4seC4iOC4p+C4tOC4lyDguJfguLHguIHguKnguJPguLTguKfguKPguKPguJXguIHguLjguKUNCivguKfguLHguIrguKMg4Lie4Lil4Lin4Lij4Lij4LiT4Liy4Lig4LiyDQor4Lin4Lix4LiK4Lij4Lie4LiH4Lip4LmMIOC4geC4tOC4iOC5guC4geC4qOC4pQ0KK+C4p+C4seC4iuC4o+C4nuC4seC4meC4mOC5jCDguJvguKPguLDguJTguLTguKnguJDguJ7guIfguKnguYwNCivguKfguLHguIrguKPguLAg4LmB4LiI4LmI4Lih4LiI4Liz4Lij4Lix4LiqDQor4Lin4Lix4LiK4Lij4LiwIOC4muC4uOC4jeC5gOC4reC4meC4geC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4seC4iuC4o+C4sCDguYDguKLguYfguJnguKfguLTguIjguLTguJXguKPguYLguKrguKDguLINCivguKfguLHguIrguKPguLAg4Liq4Li44Lij4Liw4LmB4Liq4LiHDQor4Lin4Lix4LiK4Lij4LiyIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC4nuC4ow0KK+C4p+C4seC4iuC4o+C4siDguKXguLTguKHguLLguJnguJnguJfguYzguJTguLPguKPguIfguITguYwNCivguKfguLHguIrguKPguLLguJ7guKMg4LmA4Liq4Lih4LiE4LizDQor4Lin4Lix4LiK4Lij4Liy4Lig4Lij4LiT4LmMIOC4ouC4tOC5iOC4h+C4ouC4h+C4ouC4qA0KK+C4p+C4seC4iuC4o+C4tOC4mSDguJXguKPguLXguKfguLTguKXguLLguKjguKPguLHguJXguJnguYwNCivguKfguLHguIrguKPguLTguJnguJfguKPguYwg4LmA4LiI4Lij4Li04LiN4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4l+C4reC4h+C4o+C4seC4geC4qeC5jA0KK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguJ7guKXguLHguJrguYHguIHguYnguKcNCivguKfguLHguIrguKPguLTguJnguJfguKPguYwg4Lin4LiK4Li04Lij4Lie4Liy4Lir4Li4DQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4muC4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4p+C4seC4iuC4o+C4tSDguIHguLLguI3guIjguYLguJnguKDguLLguKoNCivguKfguLHguIrguKPguLUg4LmA4LiI4Lij4Li04LiN4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lix4LiK4Lij4Li1IOC4leC4o+C4teC4nuC4suC4meC4tOC4ig0KK+C4p+C4seC4iuC4o+C4tSDguJrguLnguKPguJPguYzguKfguKPguLjguJXguKHguYwNCivguKfguLHguIrguKPguLUg4Lif4Li44LiB4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Lix4LiK4Lij4Li1IOC4p+C4h+C4qOC5jOC4geC4peC4mOC4ueC4lQ0KK+C4p+C4seC4iuC4o+C4tSDguKrguIfguYjguLLguYDguKHguLfguK3guIcNCivguKfguLHguIrguKPguLUg4Lir4Li04Lij4Lix4LiT4Lii4Liy4LiV4Liy4Lie4LiH4Lio4LmMDQor4Lin4Lix4LiK4Lij4Li14Lii4LiyIOC4mOC4meC4sOC4quC4uOC4meC4l+C4ow0KK+C4p+C4seC4iuC4o+C5jOC5geC4quC4hyDguYDguKvguKXguYjguLLguKvguIfguKnguYzguYDguIfguLTguJkNCivguKfguLHguJLguJnguIrguLHguKIg4LiI4Li04LiZ4LiU4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4Lin4Lix4LiS4LiZ4LiK4Lix4LiiIOC4quC4suC4leC4o+C4nuC4seC4meC4mOC4uOC5jA0KK+C4p+C4seC4kuC4meC4qOC4seC4geC4lOC4tOC5jCDguJ7guLHguJnguJjguLjguYzguIHguLPguYHguKvguIcNCivguKfguLHguJLguJnguLAg4Lib4Lij4Li04Lio4LiZ4Liy4Lin4Liy4LiT4Li04LiK4Lii4LmMDQor4Lin4Lix4LiS4LiZ4LiyIOC4geC4o+C4reC4muC5gOC4nuC5h+C4iuC4o+C5jA0KK+C4p+C4seC4kuC4meC4siDguYDguILguLXguKLguKHguJfguKPguLHguJ7guKLguYwNCivguKfguLHguJLguJnguLIg4LiI4Li04LiV4LiB4Liy4Lij4Li44LiTDQor4Lin4Lix4LiS4LiZ4LiyIOC4iuC4suC4jeC5hOC4iuC4og0KK+C4p+C4seC4kuC4meC4siDguJXguKPguLXguKfguLTguJfguKLguLLguIHguLjguKUNCivguKfguLHguJLguJnguLIg4LmA4LiX4Li14Lii4LiZ4LmA4Lie4LmH4LiHDQor4Lin4Lix4LiS4LiZ4LiyIOC4muC4s+C4o+C4uOC4h+C4nuC4pOC4geC4qeC5jA0KK+C4p+C4seC4kuC4meC4siDguJvguLTguYjguJnguYDguKrguKENCivguKfguLHguJLguJnguLIg4Lie4Li04Lih4Lie4LmM4Lib4Lij4Liw4LiU4Lix4LiaDQor4Lin4Lix4LiS4LiZ4LiyIOC4oeC4suC4o+C4sOC4oeC4tOC5iOC4hw0KK+C4p+C4seC4kuC4meC4siDguKPguLHguJXguJnguLDguKHguIfguITguKXguIHguLjguKUNCivguKfguLHguJLguJnguLIg4Lin4Lix4LiK4Lij4Liw4Lie4Li04Lih4Lil4Lih4Liy4LioDQor4Lin4Lix4LiS4LiZ4LiyIOC4qOC4o+C4teC5gOC4reC4meC4geC4o+C4suC4mOC4sg0KK+C4p+C4seC4kuC4meC4siDguKrguLjguILguIHguJnguLTguKnguJDguYwNCivguKfguLHguJLguJnguLIg4LmB4Liq4LiU4Lih4LiT4Li1DQor4Lin4Lix4LiS4LiZ4LiyIOC4reC4tOC4meC4l+C4o+C4seC4geC4qeC5jA0KK+C4p+C4seC4kuC4meC4suC4oOC4o+C4k+C5jCDguKXguLXguYnguIrguLLguI3guIHguLjguKUNCivguKfguLHguJLguJnguYwg4LmA4LiI4Lij4Li04LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lin4Lix4LiU4LiB4Lij4Liw4LiI4Lix4LiHIOC4p+C4seC4lOC4geC4o+C4sOC4iOC4seC4hw0KK+C4p+C4seC4lOC4iuC5iOC4reC4h+C4meC4meC4l+C4o+C4tSDguKfguLHguJTguIrguYjguK3guIfguJnguJnguJfguKPguLUNCivguKfguLHguJTguJjguLLguJXguLjguJfguK3guIcg4Lin4Lix4LiU4LiY4Liy4LiV4Li44LiX4Lit4LiHDQor4Lin4Lix4LiU4Lia4Liy4LiH4Lie4Lil4Li14LiZ4LmJ4Lit4LiiIOC4p+C4seC4lOC4muC4suC4h+C4nuC4peC4teC4meC5ieC4reC4og0KK+C4p+C4seC4lOC4m+C5iOC4suC5gOC4o+C5hOC4oyDguKfguLHguJTguJvguYjguLLguYDguKPguYTguKMNCivguKfguLHguJTguKPguLLguIrguITguKTguKvguYwg4Lin4Lix4LiU4Lij4Liy4LiK4LiE4Lik4Lir4LmMDQor4Lin4Lix4LiU4Liq4Lin4LiZ4LmB4LiB4LmJ4LinIOC4p+C4seC4lOC4quC4p+C4meC5geC4geC5ieC4pw0KK+C4p+C4seC4lOC4reC4ouC4ueC5iOC4lOC4teC4muC4s+C4o+C4uOC4h+C4mOC4o+C4o+C4oSDguKfguLHguJTguK3guKLguLnguYjguJTguLXguJrguLPguKPguLjguIfguJjguKPguKPguKENCivguKfguLHguJTguYDguKrguJTguYfguIgg4Lin4Lix4LiU4LmA4Liq4LiU4LmH4LiIDQor4Lin4Lix4LiU4LmD4Lir4Lih4LmI4Lil4Liz4LiZ4LiB4LmB4LiC4Lin4LiBIOC4p+C4seC4lOC5g+C4q+C4oeC5iOC4peC4s+C4meC4geC5geC4guC4p+C4gQ0KK+C4p+C4seC4mOC4meC4siDguJ7guLHguIrguKPguLLguKfguKXguLHguKINCivguKfguLHguJnguIjguJnguLXguKLguYwg4LiU4Liz4Lij4Lix4Liq4LiB4Liy4LijDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4geC4tOC4leC4leC4tOC4iOC4suC4o+C4uOC4geC4s+C4iOC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguILguJnguJrguJTguLUNCivguKfguLHguJnguIrguLHguKIg4LmC4LiE4LiV4Lij4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4iOC4s+C4meC4h+C4hOC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguYDguIjguLXguKLguKPguLDguYTguJnguJ7guLHguJnguJjguYwNCivguKfguLHguJnguIrguLHguKIg4LiK4Liy4LiN4Liq4LiH4LmI4Liy4LmA4Lin4LiKDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4i+C4t+C5iOC4reC5gOC4mOC4teC4ouC4o+C4quC4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4seC4oiDguYHguIvguYjguYDguKLguLXguYnguKINCivguKfguLHguJnguIrguLHguKIg4LiV4Lij4Li14Liq4Li04LiZ4LiY4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5guC4leC4hOC4p+C4suC4oeC4o+C4ueC5iQ0KK+C4p+C4seC4meC4iuC4seC4oiDguYDguJfguLTguJTguJrguLHguI3guIrguKPguKrguLjguIINCivguKfguLHguJnguIrguLHguKIg4LiZ4Lix4LiZ4LiX4LiE4Li44LiT4Liy4LiB4LijDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4muC4uOC4jeC4iuC5ieC4suC4hw0KK+C4p+C4seC4meC4iuC4seC4oiDguJvguLHguYnguJnguJ7guLTguJnguLTguIgNCivguKfguLHguJnguIrguLHguKIg4Lie4Lij4Lih4Lin4LiH4Lip4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4nuC4ueC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguKHguIfguITguKXguKfguIfguKjguYzguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4Lii4Lix4LiH4Lib4Lij4Liw4Lii4Li54LijDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4o+C4uOC5iOC4h+C4o+C4seC4leC4meC5jOC4oeC4k+C4teC4oeC4suC4qA0KK+C4p+C4seC4meC4iuC4seC4oiDguKXguLXguKXguLLguIrguLnguJ7guIfguKjguYwNCivguKfguLHguJnguIrguLHguKIg4Lin4LiH4Lip4LmM4LiC4Liy4LinDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4p+C4tOC4meC4seC4ouC4p+C4o+C4quC4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4seC4oiDguKjguKPguLXguKrguLjguKfguKPguKPguJMNCivguKfguLHguJnguIrguLHguKIg4Liq4LiB4Li44Lil4Lio4Lix4LiB4LiU4Li04LmM4LiZ4Li04Lih4Li04LiV4LijDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4quC4suC4ouC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguKrguLjguJfguJjguLTguK3guLLguKPguLXguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4LmC4Liq4LiV4LiW4Li14Lin4Lij4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4reC4oOC4tOC4geC4p+C4tOC4meC4p+C4h+C4qOC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguK3guLLguJnguLHguJnguJfguJnguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4LmA4Lit4Li14LmI4Lii4Lih4Lin4Li04Lin4Lix4LiS4LiZ4Liw4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Liy4LiV4Li0IOC4m+C4uOC4jeC4p+C4seC4kuC5guC4lw0KK+C4p+C4seC4meC4k+C4tSDguJTguLLguKfguYHguKrguIcNCivguKfguLHguJnguJTguLUg4LmE4LiB4Lij4Lij4Lih4LiT4LmMDQor4Lin4Lix4LiZ4LiU4Li1IOC4iOC4uOC4peC4quC4s+C4peC4tQ0KK+C4p+C4seC4meC4lOC4tSDguYHguIvguYjguJXguLHguYnguIcNCivguKfguLHguJnguJTguLUg4LmB4LiU4LiH4Lir4LiZ4Li5DQor4Lin4Lix4LiZ4LiU4Li1IOC5hOC4l+C4ouC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4p+C4seC4meC4lOC4tSDguJrguLjguJPguKLguLDguIHguLLguI3guIjguJkNCivguKfguLHguJnguJTguLUg4Lie4Lil4Lit4Lii4Lih4Liw4LiB4Lil4LmJ4LizDQor4Lin4Lix4LiZ4LiU4Li1IOC4oeC4ruC4s+C4q+C4oeC4seC4lA0KK+C4p+C4seC4meC4lOC4tSDguKXguLDguKHguLHguYjguIcNCivguKfguLHguJnguJTguLUg4LmE4Lin4Lit4LmI4Lit4LiZDQor4Lin4Lix4LiZ4LiU4Li1IOC4quC4tOC4h+C4q+C4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4p+C4seC4meC4lOC4tSDguKvguLjguYLguKXguJvguKPguLDguIHguLLguKPguIHguLjguKUNCivguKfguLHguJnguJfguJPguLUg4LmC4LiK4LiV4Li04LmA4Lin4LiX4Li1DQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC4iOC4h+C5geC4iOC5iOC4oQ0KK+C4p+C4seC4meC4l+C4meC4siDguYDguJTguIrguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKfguLHguJnguJfguJnguLIg4Lia4Li44LiN4LiB4Lij4LmI4Liy4LiHDQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC5gOC4nuC4teC4ouC4o+C4p+C4meC4tOC4ig0KK+C4p+C4seC4meC4l+C4meC4siDguKfguIfguKjguYzguKDguLHguIHguJTguLUNCivguKfguLHguJnguJfguJnguLIg4Liq4Li44Lin4Lij4Lij4LiT4Lie4LiH4Lip4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Liy4Lie4LijIOC4qOC4tOC4o+C4tOC4meC4seC4meC4l+C4p+C4tOC4l+C4ouC4sg0KK+C4p+C4seC4meC4l+C4meC4tSDguKTguJfguJjguLTguKrguLTguIfguKvguYwNCivguKfguLHguJnguJfguJnguLXguKLguYwg4LiK4Lil4Li04LiV4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMIOC5gOC4meC4teC4ouC4oeC5gOC4l+C4qA0KK+C4p+C4seC4meC4l+C4meC4teC4ouC5jCDguKXguLHguJfguJjguLDguJ7guLLguJnguLTguIrguKLguYwNCivguKfguLHguJnguJfguJnguLXguKLguYwg4Lir4Lin4Lix4LiHDQor4Lin4Lix4LiZ4LiY4LiT4Li1IOC5geC4lOC4h+C4m+C4o+C4sOC4lOC4seC4mg0KK+C4p+C4seC4meC4meC4siDguKjguKPguLXguKrguKfguLLguJcNCivguKfguLHguJnguKHguLnguKvguLDguKHguLHguJTguJnguK3guKPguYwg4Lih4Liw4LiX4LiyDQor4Lin4Lix4LiZ4Lin4Li04Liq4LiyIOC4quC4tOC4o+C4tOC4qOC4o+C4seC4k+C4ouC5jA0KK+C4p+C4seC4meC5gOC4iOC4tOC4lCDguJXguLLguKHguYDguJ7guLTguYjguKENCivguKfguLHguJnguYDguJ7guYfguI0g4LiB4Li04LmI4LiH4LmD4Lia4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC5gOC4guC4suC5geC4geC5ieC4pw0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguIjguLHguJnguJfguKPguKfguLTguYLguKPguIjguJnguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4LiK4LiZ4Liy4LiB4LijDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguJXguKPguLDguIHguLnguKXguKrguLjguILguJfguKPguLHguJ7guKLguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4LiX4Lij4Lix4Lie4Lii4LmM4Lih4LiT4Li1DQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4meC4suC4hOC5geC4ouC5ieC4oQ0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguJvguKPguLDguJTguLTguKnguJDguYzguKrguLjguKfguKPguKPguJMNCivguKfguLHguJnguYDguJ7guYfguI0g4Lie4Lij4LiY4LiZ4Liy4Lin4Li44LiS4Li0DQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC5gOC4nuC4iuC4o+C4geC4suC4jeC4iOC4meC4suC4nuC4h+C4qOC5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKHguLLguYLguJnguIoNCivguKfguLHguJnguYDguJ7guYfguI0g4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4p+C4o+C4nuC4seC4kuC4meC4suC4meC4seC4meC4leC5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKjguKPguLXguYLguKLguKLguK3guJQNCivguKfguLHguJnguYDguJ7guYfguI0g4Liq4Li04LiH4Lir4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4quC4ueC4jeC4quC4tOC5ieC4meC4oOC4seC4og0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguK3guJnguLjguJXguLTguKPguKLguLANCivguKfguLHguJnguYDguJ7guYfguI0g4LmA4Lit4Lin4Liy4Liq4LiB4Li44LilDQor4Lin4Lix4Lii4Lin4Lix4LiI4LiZ4LmMIOC4l+C4suC4ouC4suC4l+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4seC4peC4meC4oOC4siDguKPguLLguKjguKPguLXguJvguKXguLHguYjguIcNCivguKfguLHguKXguKDguLIg4LiU4Li44Lil4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Lix4Lil4Lig4LiyIOC4ouC4o+C4o+C4ouC4h+C4nuC4seC4kuC4meC4sA0KK+C4p+C4seC4peC4oOC4siDguKvguKPguLHguYjguIfguKrguLTguYLguKINCivguKfguLHguKXguKLguYzguKXguLHguJTguJTguLIg4LiY4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmM4LiB4Li44LilDQor4Lin4Lix4Lil4Lii4LiyIOC4meC4p+C4peC4peC4sOC4reC4reC4hw0KK+C4p+C4seC4peC4ouC4suC4oOC4o+C4k+C5jCDguKPguLHguIrguKfguLTguIrguLHguKINCivguKfguLHguKXguKXguKAg4LmB4LiB4LmJ4Lin4LmA4Lib4Li14LiiDQor4Lin4Lix4Lil4Lil4LigIOC5geC4iOC5iOC4oeC4p+C4uOC4kuC4tOC4m+C4o+C4teC4iuC4sg0KK+C4p+C4seC4peC4peC4oCDguJfguK3guIfguIHguYnguLLguKINCivguKfguLHguKXguKXguKAg4Lia4Li54Lij4LiT4Lio4Li04Lij4Li0DQor4Lin4Lix4Lil4Lil4LigIOC4oeC4sOC4iuC4o+C4sg0KK+C4p+C4seC4peC4peC4oCDguKfguIrguLTguKPguJ7guKPguJ7guIfguKjguLINCivguKfguLHguKXguKXguKAg4Liq4Lix4LiH4LiC4LmM4Liq4Lit4LiZDQor4Lin4Lix4Lil4Lil4LigIOC4reC4o+C4seC4jeC4jeC5gOC4geC4qeC4oQ0KK+C4p+C4seC4peC4peC4oOC4siDguYDguInguKXguLTguKHguJnguLHguKINCivguKfguLHguKXguKXguKDguLIg4Lie4Lij4Lih4LmC4LiK4LiV4Li0DQor4Lin4Lix4Lil4Lil4Lig4LiyIOC4p+C4teC4o+C4sOC4m+C4uOC4peC4peC4tQ0KK+C4p+C4seC4peC4peC4siDguYDguIHguLLguKrguLjguKPguLHguJXguJnguYwNCivguKfguLHguKXguKXguLUg4LiZ4Lix4LiZ4LiV4Liy4Lil4Li04LiBDQor4Lin4Lix4Lil4Lil4Li14Lii4LmMIOC4m+C4o+C4sOC4l+C4uOC4oeC4iuC4suC4leC4tA0KK+C4p+C4seC4peC4peC4teC4ouC5jCDguK7guLHguYnguKfguKvguYnguKfguKLguJ7guKPguLANCivguKfguLLguJPguLTguIrguKLguYwg4Lin4LiU4Li14Lio4Li04Lij4Li04Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Liy4LiT4Li1IOC4nuC4seC4meC4mOC4uOC4oeC4iOC4tOC4meC4lOC4sg0KK+C4p+C4suC4k+C4tSDguYDguKvguKXguLfguK3guIfguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKfguLLguJfguLTguJUg4Lie4Li04LiK4Lii4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Liy4LiX4Li04LiZ4Li1IOC4p+C4h+C4qOC5jOC4muC4uOC4qeC4ouC4geC4uOC4pQ0KK+C4p+C4suC4meC4tOC4iiDguYDguKHguJjguLLguJjguLPguKPguIfguITguYzguKjguLTguKPguLQNCivguKfguLLguKPguJPguLUg4LmB4LiU4LiH4Liq4Li1DQor4Lin4Liy4Lij4Li04LiXIOC4q+C4peC4suC4p+C4l+C4reC4hw0KK+C4p+C4suC4o+C4tOC4meC4l+C4o+C5jCDguIHguLTguJXguJXguLTguYLguIrguJXguLTguIHguLjguKUNCivguKfguLLguKPguLTguJnguJfguKPguYwg4Lia4Li44LiN4LiK4Lii4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4Lin4Liy4Lij4Li04LiZ4LiX4Lij4LmMIOC4p+C4suC4o+C4oeC4sg0KK+C4p+C4suC4o+C4tOC4meC4tSDguYLguK3guKnguJDguLTguYDguKfguIoNCivguKfguLLguKPguLUg4LiI4Li14LiZ4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Lin4Liy4Lij4Li1IOC5hOC4leC4o+C4nuC4uOC4l+C4mOC4suC4h+C4geC4ueC4ow0KK+C4p+C4suC4o+C4tSDguJ7guKXguKrguKPguLDguJnguYnguK3guKINCivguKfguLLguKPguLUg4Lin4LiH4Lio4LmM4Lit4Li44LmE4LijDQor4Lin4Liy4Lij4Li1IOC4quC4uOC4m+C4o+C4teC4ouC4suC4p+C4o+C4o+C4k+C4iuC4seC4og0KK+C4p+C4suC4o+C4teC4l+C4tOC4nuC4ouC5jCDguYDguJfguJ7guJnguLPguYLguKrguKHguJnguLHguKrguKrguYwNCivguKfguLLguKPguLjguJPguKDguLHguIQg4Liu4Lix4LmI4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4iOC4tOC4leC4leC5jOC4mOC4o+C4o+C4oQ0KK+C4p+C4suC4o+C4uOC4k+C4tSDguJTguLLguJrguYDguIjguKPguLTguI3guIrguLHguKINCivguKfguLLguKPguLjguJPguLUg4LiZ4Li04Lil4LmA4Lie4LiK4Lij4LmM4Lie4Lil4Lit4LiiDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4nuC4seC4meC4mOC4uOC5gOC4nuC5h+C4hw0KK+C4p+C4suC4o+C4uOC4k+C4tSDguYLguKPguIjguJnguYzguJ7guKXguLLguIHguKMNCivguKfguLLguKPguLjguJPguLUg4Lio4Lij4Li14Liq4LiB4Li44Lil4LiU4Li1DQor4Lin4Liy4Lij4Li44LiT4Li1IOC4quC4uOC4p+C4o+C4o+C4k+C4qOC4o+C4tQ0KK+C4p+C4suC4o+C4uOC4k+C4teC4ouC5jCDguIjguLPguJvguLLguJnguLTguKUNCivguKfguLLguKrguJnguLIg4LiB4Lij4Liw4Lie4Lix4LiZ4Lie4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lin4Liy4Liq4LiZ4LiyIOC5geC4geC5ieC4p+C4iuC4ueC4qOC4tOC4peC4m+C5jA0KK+C4p+C4suC4quC4meC4siDguITguLPguKjguLTguKPguLTguKPguLHguIHguKnguYwNCivguKfguLLguKrguJnguLIg4LiI4Li04LiZ4LiU4Liy4Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4iuC4suC4meC4gQ0KK+C4p+C4suC4quC4meC4siDguYHguIvguYjguYDguKXguYnguLINCivguKfguLLguKrguJnguLIg4LmE4LiV4Lij4LmA4Lin4LiX4Lii4LmM4Lin4Lij4LiB4Li44LilDQor4Lin4Liy4Liq4LiZ4LiyIOC5gOC4l+C4teC4ouC4oeC5geC4quC4h+C4reC4o+C4uOC4kw0KK+C4p+C4suC4quC4meC4siDguJnguLTguKLguKHguKTguJfguJjguLTguYwNCivguKfguLLguKrguJnguLIg4Lia4Li54Lij4Lio4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC5gOC4nOC5iOC4suC4luC4meC4reC4oQ0KK+C4p+C4suC4quC4meC4siDguJ7guLnguKXguJnguLTguIHguKMNCivguKfguLLguKrguJnguLIg4Lih4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Liy4Liq4LiZ4LiyIOC4o+C4sOC4o+C4t+C5iOC4meC4iOC4tOC4leC4leC5jA0KK+C4p+C4suC4quC4meC4siDguYHguKXguLDguYDguKLguYrguLLguLDguKvguYwNCivguKfguLLguKrguJnguLIg4Lin4Li14Lij4Liw4Lij4Lix4Lio4Lih4Li1DQor4Lin4Liy4Liq4LiZ4LiyIOC4qOC4uOC4oOC4p+C4tOC4l+C4ouC4suC5guC4oOC4hOC4tQ0KK+C4p+C4suC4quC4meC4siDguKrguLPguYDguKDguLLguJfguK3guIcNCivguKfguLLguKrguJnguLIg4LmA4Liq4LiW4Li14Lii4Lij4LiY4Lij4Lij4Lih4Lin4Li04LiX4Lii4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC5gOC4q+C4peC4t+C4reC4h+C4quC4sOC4reC4suC4lA0KK+C4p+C4suC4quC4meC4siDguK3guLTguJnguJfguKrguLjguKfguLLguJcNCivguKfguLLguKrguLTguJkg4Liq4Li44Lig4Lib4Lij4Liw4LiB4LijDQor4Lin4LmJ4LiyIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4p+C4tOC4geC4o+C4oSDguKfguLTguIHguKPguKHguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKfguLTguIHguLTguIgg4Liq4Li44LiC4Liq4Liz4Lij4Liy4LiNDQor4Lin4Li04LiI4Lix4LiZ4LiX4Lij4LiyIOC4muC4uOC4meC4meC4suC4hA0KK+C4p+C4tOC4iOC4suC4o+C4k+C5jCDguJnguLLguITguKfguLTguYDguIrguLXguKLguKMNCivguKfguLTguIjguLTguJUg4LmE4LiX4Lii4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04LiI4Li04LiV4LijIOC5gOC4geC4leC4uOC4mOC4o+C4o+C4oeC4p+C4h+C4qOC5jA0KK+C4p+C4tOC4iOC4tOC4leC4oyDguIjguLjguKXguKPguLHguKnguYDguJDguLXguKLguKMNCivguKfguLTguIjguLTguJXguKMg4LiV4Lij4Liy4LiK4Li5DQor4Lin4Li04LiI4Li04LiV4LijIOC4muC4s+C4o+C4uOC4h+C4geC4tOC4iA0KK+C4p+C4tOC4iOC4tOC4leC4oyDguJ7guLLguJnguLTguIrguKLguYwNCivguKfguLTguIjguLTguJXguKMg4Lij4Lix4LiH4Liq4Li04Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04LiI4Li04LiV4LijIOC4p+C4uOC4kuC4tOC4reC4s+C4nuC4pQ0KK+C4p+C4tOC4iOC4tOC4leC4oyDguKrguLjguILguKfguLTguJfguKLguLLguKfguIfguKnguYwNCivguKfguLTguIjguLTguJXguKMg4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lit4Lix4LiH4LiB4Li54LijDQor4Lin4Li04LiI4Li04LiV4Lij4LiyIOC5geC4geC5ieC4p+C4quC4tOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4p+C4tOC4iOC4tOC4leC4o+C4siDguJbguLTguKPguKrguLjguJnguJfguKPguLLguIHguLjguKUNCivguKfguLTguIjguLTguJXguKPguLIg4Lih4LmI4Lin4LiH4Lii4Li04LmI4LiH4Liq4Li44LiCDQor4Lin4Li04LiI4Li04LiV4Lij4LiyIOC4quC4tOC4l+C4mOC4tOC5guC4iuC4hOC4reC4uOC4lOC4oQ0KK+C4p+C4tOC4iOC4tOC4leC4o+C5jCDguKXguYnguK3guKHguIHguLjguKXguYTguJ7guKjguLLguKUNCivguKfguLTguIrguIrguLIg4Lit4Lix4Lio4Lin4Lin4Lij4Lik4LiX4LiY4Li04LmMDQor4Lin4Li04LiK4LiK4Li44LiU4LiyIOC4peC4teC4peC4suC4quC4uOC4guC4quC4seC4meC4leC4tOC4geC4uOC4pQ0KK+C4p+C4tOC4iuC4jeC4siDguKrguLjguJfguJjguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguKfguLTguIrguKfguJkg4Lio4Li04Lij4Li04LiB4Liy4LiN4LiI4LiZ4Lin4Liy4LiZ4Li04LiKDQor4Lin4Li04LiK4Lix4LiiIOC4geC4seC4meC4leC4seC4h+C4geC4uOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguIHguLXguKPguJXguLTguJ7guLLguJnguLTguIoNCivguKfguLTguIrguLHguKIg4LmA4LiB4Li14LmL4Lii4Lin4Lie4Liw4Lih4Li04LiV4LijDQor4Lin4Li04LiK4Lix4LiiIOC5gOC4guC4oeC4sOC4p+C4o+C4o+C4k+C4sg0KK+C4p+C4tOC4iuC4seC4oiDguITguLjguJPguLLguIHguKPguKrguLTguKPguLTguKPguLHguIHguKnguYwNCivguKfguLTguIrguLHguKIg4LiI4LiV4Li44Lij4Lie4Lix4LiB4LiV4Lij4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4iOC4seC5iOC4p+C5geC4iOC5iOC4oeC5g+C4qg0KK+C4p+C4tOC4iuC4seC4oiDguIjguLTguKPguLDguYTguIrguKLguYDguILguLfguYjguK3guJnguILguLHguJnguJjguYwNCivguKfguLTguIrguLHguKIg4LmA4LiI4Lij4Li04LiN4Lin4Li44LiS4Li04Lin4LiH4Lip4LiyDQor4Lin4Li04LiK4Lix4LiiIOC4ieC4suC4ouC4p+C4tOC4iuC4tOC4lQ0KK+C4p+C4tOC4iuC4seC4oiDguIrguLHguKLguK3guLPguJnguKfguKINCivguKfguLTguIrguLHguKIg4LiK4Li54LiK4Lix4Lii4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04LiK4Lix4LiiIOC4i+C4t+C5ieC4reC4nuC4seC4kuC4meC4suC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4p+C4tOC4iuC4seC4oiDguYHguIvguYjguKXguLTguYnguKENCivguKfguLTguIrguLHguKIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Lin4Li04LiK4Lix4LiiIOC4lOC4teC4quC4uOC4hOC4meC4mOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguJXguLHguYnguIfguIjguLLguKPguLgNCivguKfguLTguIrguLHguKIg4LiV4Liy4Lih4LmA4LiX4Li14LmI4Lii4LiH4LiV4Lij4LiHDQor4Lin4Li04LiK4Lix4LiiIOC5hOC4leC4o+C4l+C4tOC4nuC4ouC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4p+C4tOC4iuC4seC4oiDguJfguK3guIfguYHguJfguYkNCivguKfguLTguIrguLHguKIg4LiY4LiZ4Liw4Lij4Lix4LiK4LiV4Li04LiB4Liy4Lij4LiZ4LiZ4LiX4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4meC4geC5geC4ouC5ieC4oQ0KK+C4p+C4tOC4iuC4seC4oiDguJnguLTguKHguLTguJXguYTguJXguKPguJfguLTguJ7guKLguYwNCivguKfguLTguIrguLHguKIg4Lia4Li44LiN4LiN4LiY4LiZ4Lix4LiHDQor4Lin4Li04LiK4Lix4LiiIOC4muC4uOC4qeC4ouC4sOC4iOC4suC4o+C4uA0KK+C4p+C4tOC4iuC4seC4oiDguJvguKPguLXguIrguLLguKfguLjguJLguLQNCivguKfguLTguIrguLHguKIg4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4LieDQor4Lin4Li04LiK4Lix4LiiIOC4nuC4o+C4mOC4o+C4o+C4oeC4quC4tOC4o+C4tA0KK+C4p+C4tOC4iuC4seC4oiDguJ7guLHguJnguJjguYzguITguLMNCivguKfguLTguIrguLHguKIg4Lie4Li24LmI4LiH4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Li04LiK4Lix4LiiIOC5hOC4nuC4muC4ueC4peC4ouC5jOC4peC4teC4quC4geC4uOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguKHguJPguLXguInguLLguKINCivguKfguLTguIrguLHguKIg4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lin4Li04LiK4Lix4LiiIOC4ouC4tOC5ieC4oeC4meC5ieC4reC4og0KK+C4p+C4tOC4iuC4seC4oiDguKPguLHguJXguJnguYDguIjguKPguLTguI3guKrguIHguLjguKUNCivguKfguLTguIrguLHguKIg4LmC4Lij4LiI4LiZ4LmM4Lin4Li04LiK4Liy4Lin4LiH4Lio4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4peC4tOC5ieC4oeC4nuC4o+C4geC4uOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguYDguKXguLTguKjguJ7guKXguLLguIHguKMNCivguKfguLTguIrguLHguKIg4Lin4LiH4Lio4LmM4Liq4Lij4Liw4LiX4Lit4LiHDQor4Lin4Li04LiK4Lix4LiiIOC4p+C5iOC4reC4h+C4geC4tOC4leC4leC4tOC4quC4tOC4mQ0KK+C4p+C4tOC4iuC4seC4oiDguKfguLTguIrguLHguKLguJjguJnguJ7guLHguJLguJnguYwNCivguKfguLTguIrguLHguKIg4Lin4Li04LmA4LiK4Li14Lii4Lij4LiX4Lit4LiH4LiE4LizDQor4Lin4Li04LiK4Lix4LiiIOC4qOC4o+C4teC4m+C4seC4jeC4iOC4nuC4h+C4qeC5jA0KK+C4p+C4tOC4iuC4seC4oiDguKjguLTguKPguLTguITguLjguKENCivguKfguLTguIrguLHguKIg4Liq4LiB4Lil4Lie4LiH4Lip4LmM4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4quC4sOC4reC4tOC5iuC4meC4sA0KK+C4p+C4tOC4iuC4seC4oiDguKrguLTguJnguJfguLHguJXguJXguYLguKrguKDguJMNCivguKfguLTguIrguLHguKIg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04LiK4Lix4LiiIOC4quC4uOC4o+C4tOC4ouC4sOC4oeC4h+C4hOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguYHguKrguIfguKrguKHguKHguLLguJXguKPguYwNCivguKfguLTguIrguLHguKIg4Lir4Lix4Liq4LiU4Liy4LiU4LilDQor4Lin4Li04LiK4Lix4LiiIOC5hOC4q+C4peC5gOC4iOC4o+C4tOC4jeC4p+C4h+C4qOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguK3guKPguLjguJPguKfguLHguJLguJnguYwNCivguKfguLTguIrguLHguKIg4Lit4Liy4Lig4Liy4Lie4LiH4Lio4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Li04LiK4Lix4LiiIOC4reC4uOC4l+C4tOC4qA0KK+C4p+C4tOC4iuC4seC4oiDguK7guLHguYnguKfguJvguKPguLDguYDguKrguKPguLTguJANCivguKfguLTguIrguLIg4LiK4LmI4Lin4LiH4LmC4LiK4LiV4Li0DQor4Lin4Li04LiK4LiyIOC4m+C4tOC4leC4tOC4nuC4seC4kuC4meC4nuC4seC4meC4mOC5jA0KK+C4p+C4tOC4iuC4siDguKfguLTguIrguLLguIrguLLguI0NCivguKfguLTguIrguLLguI0g4LiB4Lij4Liw4LmB4Liq4Lij4LmM4LiB4Li44LilDQor4Lin4Li04LiK4Liy4LiNIOC4iOC4tOC4meC4leC5jOC4quC4uOC4oOC4seC4hA0KK+C4p+C4tOC4iuC4suC4jSDguJTguLXguJvguKPguLDguKvguKXguLLguJQNCivguKfguLTguIrguLLguI0g4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lii4Li04LmI4LiHDQor4Lin4Li04LiK4Liy4LiNIOC5gOC4nuC5h+C4h+C4quC4reC4suC4lA0KK+C4p+C4tOC4iuC4suC4jSDguKXguLTguYnguKHguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguIrguLLguI0g4Lio4Li04Lij4Li04LmA4Lin4LiK4Lin4Lij4Liy4Lin4Li44LiYDQor4Lin4Li04LiK4Liy4LiNIOC5gOC4q+C4meC4teC5iOC4ouC4p+C4reC4h+C4reC4suC4iA0KK+C4p+C4tOC4iuC4suC4leC4tCDguKLguLjguJfguJjguJnguLLguKfguKPguLLguIHguLjguKUNCivguKfguLTguIrguLTguJUg4LmA4LiB4Li04LiU4LmB4LiB4LiHDQor4Lin4Li04LiK4Li04LiVIOC4iOC4tOC4leC4o+C4teC5gOC4iuC4t+C5ieC4rQ0KK+C4p+C4tOC4iuC4tOC4lSDguYLguIrguJXguLTguIrguLHguIrguKfguLLguKUNCivguKfguLTguIrguLTguJUg4LmA4LiV4LiK4Liw4LiK4Li44LiT4Lir4LiB4Li04LiIDQor4Lin4Li04LiK4Li04LiVIOC4muC4uOC4jeC4luC4meC4reC4oQ0KK+C4p+C4tOC4iuC4tOC4lSDguJ7guLHguJnguJjguLjguYzguJ7guLLguJnguLTguIoNCivguKfguLTguIrguLTguJUg4Lij4LmI4Lin4Lih4Liq4Li44LiCDQor4Lin4Li04LiK4Li04LiVIOC4p+C4h+C4qeC5jOC5g+C4q+C4jeC5iA0KK+C4p+C4tOC4iuC4tOC4lSDguKjguKPguLXguJ7guIfguKnguYzguJ7guLHguJnguJjguLjguYzguIHguLjguKUNCivguKfguLTguIrguLTguJUg4Liq4Li44LiC4Liq4Li04LiZ4LiY4Liy4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04LiK4Li04LiVIOC4reC4meC4uOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4tOC4iuC4tOC4lSDguYDguK3guLXguYjguKLguKHguYDguKrguKHguLLguKPguLjguYjguIcNCivguKfguLTguIrguLjguJTguLIg4LmB4LiL4LmI4Lil4Li04LmI4LihDQor4Lin4Li04LiK4Li44Lie4LijIOC4reC4tOC4l+C4mOC4tOC4o+C4seC4h+C4quC4tOC4oeC4sg0KK+C4p+C4tOC4jeC4jeC4uSDguJfguK3guIfguJ7guKPguKPguJMNCivguKfguLTguJHguLTguJUg4LiZ4Li14Lij4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lin4Li04LiR4Li54LijIOC4peC4teC4p+C4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguILguKfguLHguI3guYDguKHguLfguK3guIcNCivguKfguLTguJHguLnguKPguKLguYwg4LiK4Li44LmI4Lih4LmA4Lil4LmH4LiBDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC4meC4tOC4p+C4suC4quC4quC4p+C4seC4quC4lOC4tOC4geC4uOC4pQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguYLguJ7guJjguLTguYzguIjguIfguKPguLHguIHguKnguYwNCivguKfguLTguJHguLnguKPguKLguYwg4Lin4Lij4Lij4LiT4LiI4Li04LiV4LiI4Lij4Li54LiNDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC5gOC4quC5h+C4h+C4nuC4suC4meC4tOC4ig0KK+C4p+C4tOC4k+C4seC4kOC4keC4tOC4leC4siDguYLguKrguKDguLTguJXguIHguLLguJnguJXguYwNCivguKfguLTguJfguKLguKPguLHguJXguJnguYwg4LiX4Lit4LiH4LiZ4Li04LmI4LihDQor4Lin4Li04LiX4Lii4LiyIOC5geC4geC5ieC4p+C4p+C4seC4kuC4meC4sA0KK+C4p+C4tOC4l+C4ouC4siDguIjguLHguJnguJfguKPguYzguJTguLLguYDguKPguLfguK3guIcNCivguKfguLTguJfguKLguLIg4LiJ4Lix4LiV4Lij4Lin4Li04LiX4Lii4Liy4Lii4Li44LiX4LiYDQor4Lin4Li04LiX4Lii4LiyIOC5geC4i+C5iOC4leC4uQ0KK+C4p+C4tOC4l+C4ouC4siDguJXguLHguJPguJHguKrguLjguJfguJjguLTguYwNCivguKfguLTguJfguKLguLIg4LiY4LiZ4Liw4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lin4Li04LiX4Lii4LiyIOC4muC4uOC4jeC4jeC4mOC4meC4suC4oOC4tOC4p+C4seC4kuC4meC5jA0KK+C4p+C4tOC4l+C4ouC4siDguJ7guIfguKnguYzguKrguLHguKHguKTguJfguJjguLTguYwNCivguKfguLTguJfguKLguLIg4Lie4Li54Lil4Lie4Lij4Lij4LiTDQor4Lin4Li04LiX4Lii4LiyIOC5gOC4oeC4leC4leC4suC4quC4seC4leC4ouC5jA0KK+C4p+C4tOC4l+C4ouC4siDguKTguJfguJjguLTguYzguYDguJTguIoNCivguKfguLTguJfguKLguLIg4Lin4Lij4LiK4Liy4LiV4Li0DQor4Lin4Li04LiX4Lii4LiyIOC4qOC4o+C4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4p+C4tOC4l+C4ouC4siDguKrguLHguJnguJXguYLguKLguKDguLLguKoNCivguKfguLTguJfguKLguLIg4LmA4Liq4Lij4Li04Lih4LiK4Li14LieDQor4Lin4Li04LiX4Lii4LiyIOC4reC4o+C5iOC4suC4oeC4qOC4o+C4tQ0KK+C4p+C4tOC4l+C4ouC4suC4geC4oyDguYDguIrguLXguKLguIfguIHguLnguKUNCivguKfguLTguJfguKLguYwg4LmA4Lie4LiK4Lij4Lij4Lix4Lio4Lih4Li14Lie4Lij4Liy4LinDQor4Lin4Li04LiX4Lin4Lix4LiqIOC4geC4tOC4leC4leC4tOC4hOC4uOC4k+C4suC4meC4seC4meC4l+C5jA0KK+C4p+C4tOC4l+C4p+C4seC4qiDguKvguIfguKrguYTguIHguKMNCivguKfguLTguJfguLTguJUg4Lio4Li04Lij4Li04LmC4Lig4LiE4Liy4LiB4Li04LiIDQor4Lin4Li04LiX4Li54LijIOC5gOC4l+C4nuC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4p+C4tOC4l+C4ueC4oyDguYHguKrguIfguKrguLTguIfguYHguIHguYnguKcNCivguKfguLTguJfguLnguKUg4Liq4Lih4Lia4Lix4LiV4Li04LiX4Lin4Li1DQor4Lin4Li04LiZIOC4geC4peC5iOC4s+C5geC4quC4hw0KK+C4p+C4tOC4meC4lOC4siDguIrguLfguYjguJnguYDguIrguLfguYjguK3guKENCivguKfguLTguJnguLHguKIg4LiB4Lil4Li04LmI4LiZ4Lie4Li44LiSDQor4Lin4Li04LiZ4Lix4LiiIOC5geC4geC5ieC4p+C5gOC4geC4qeC4geC4suC4o+C4k+C5jA0KK+C4p+C4tOC4meC4seC4oiDguITguLjguYnguKHguITguK3guJkNCivguKfguLTguJnguLHguKIg4LiI4Li04LiV4LiV4LmM4LmB4LiI4LmI4LihDQor4Lin4Li04LiZ4Lix4LiiIOC4iuC4meC4sOC4hOC4ig0KK+C4p+C4tOC4meC4seC4oiDguYHguIrguYjguKHguJvguKPguLXguJTguLINCivguKfguLTguJnguLHguKIg4LmA4LiU4LiK4LiZ4LiX4Li1DQor4Lin4Li04LiZ4Lix4LiiIOC4luC4suC4p+C4ow0KK+C4p+C4tOC4meC4seC4oiDguYDguJfguLXguKLguKHguJnguYnguK3guKINCivguKfguLTguJnguLHguKIg4LiZ4Li04LiY4Li04LiK4Lix4LiiDQor4Lin4Li04LiZ4Lix4LiiIOC4muC4uOC4jeC4p+C4seC4kuC4meC5guC4quC4oOC4kw0KK+C4p+C4tOC4meC4seC4oiDguJvguLLguIfguIHguLTguJXguJXguLTguJ7guIfguKjguYwNCivguKfguLTguJnguLHguKIg4Lie4Lij4LmJ4Lit4Lih4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4nuC4uOC5iOC4oeC5gOC4iOC4o+C4tOC4jeC4p+C4seC4kuC4meC4sg0KK+C4p+C4tOC4meC4seC4oiDguKHguKPguKPguITguJnguLHguJnguJfguYwNCivguKfguLTguJnguLHguKIg4Lii4Li44LiU4LiU4LijDQor4Lin4Li04LiZ4Lix4LiiIOC5guC4o+C4iOC4meC5jOC5gOC4iOC4teC4ouC4hw0KK+C4p+C4tOC4meC4seC4oiDguKfguIfguKjguYzguK3guLPguJnguKfguKLguIHguLjguKUNCivguKfguLTguJnguLHguKIg4Lin4Li04Lil4Lix4Lii4LiB4Lij4Lin4LiUDQor4Lin4Li04LiZ4Lix4LiiIOC4qOC4suC4quC4leC4o+C5jOC4quC4suC4o+C4sA0KK+C4p+C4tOC4meC4seC4oiDguKrguLLguIHguKUNCivguKfguLTguJnguLHguKIg4Liq4Li44LiX4LiY4Li04Lin4Lij4Lij4LiT4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4q+C4oeC4ueC5iOC4oeC4tOC5iOC4hw0KK+C4p+C4tOC4meC4seC4oiDguK3guKPguLjguJPguKfguLHguJLguJnguIHguLnguKUNCivguKfguLTguJnguLHguKIg4LmA4Liu4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lin4Li04LiZ4Li04LiIIOC5gOC4iOC4o+C4tOC4jeC4qOC4tOC4o+C4tA0KK+C4p+C4tOC4meC4tOC4iCDguJvguKPguLXguIrguLLguKPguLHguJXguJnguYwNCivguKfguLTguJnguLTguIgg4Lin4Li04Lij4Li04Lii4LiB4Lij4Lit4Lia4LiK4Lix4LiiDQor4Lin4Li04LiZ4Li04LiKIOC4iuC4tOC4o+C4p+C4suC4meC4tOC4ig0KK+C4p+C4tOC4meC4tOC4leC4ouC5jCDguKrguLHguIfguILguYzguKrguLXguYDguKvguKXguLfguK3guJoNCivguKfguLTguJrguLnguKPguJPguYwg4Lib4Li54LmI4LiE4LiH4Lie4Lij4LiwDQor4Lin4Li04Lia4Li54Lil4Lii4LmM4Lii4LioIOC4reC4oeC4suC4leC4ouC4geC4uOC4pQ0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguIHguLTguJXguJXguLTguK3guLHguKHguJ7guLLguJnguJnguJfguYwNCivguKfguLTguJrguLnguKXguKLguYwg4LmA4LiI4Li14Lii4Lij4Lin4LiH4Lio4LmMDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC5geC4lOC4h+C4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguYHguJfguJnguJrguLjguI3guYTguJ7guKPguLHguIoNCivguKfguLTguJrguLnguKXguKLguYwg4Lib4Lit4LmB4LiB4LmJ4LinDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4oOC4suC4hOC4p+C4k+C4tOC4ig0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKTguJfguLHguKLguKjguKPguLXguKHguJPguLXguJ7guLHguJnguJjguYwNCivguKfguLTguJrguLnguKXguKLguYwg4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiI4Lin4Lij4LiB4Li44LilDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4quC4luC4tOC4o+C4qOC4tOC4peC4m+C4tOC4mQ0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKvguKfguLHguIfguKPguKfguKLguJnguLLguKENCivguKfguLTguJrguLnguKXguKXguLHguIHguKnguJPguYwg4LiU4Li04Lip4LiQ4Lit4LmI4Lin4LihDQor4Lin4Li04Lie4LilIOC4m+C4tOC4leC4suC4meC4uOC5gOC4hOC4o+C4suC4sOC4q+C5jA0KK+C4p+C4tOC4nuC4suC4geC4ouC5jCDguYLguKPguIjguJnguYHguJ7guJfguKLguYwNCivguKfguLTguKDguLIg4LiB4Liy4LiZ4LiV4LmM4LmA4Lir4Lih4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04Lig4LiyIOC4hOC4ueC4k+C4guC4uOC4meC4l+C4lA0KK+C4p+C4tOC4oOC4siDguYDguIjguLXguKLguKHguJfguKfguLXguKfguLTguJrguLnguKXguKLguYwNCivguKfguLTguKDguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lin4Li04Lig4LiyIOC4leC4seC4meC4leC4o+C4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4oOC4siDguJjguKPguKPguKHguLLguIjguLHguIHguKPguYzguIHguLjguKUNCivguKfguLTguKDguLIg4Lib4Liy4LmB4LiB4LmJ4LinDQor4Lin4Li04Lig4LiyIOC4nuC4tOC4l+C4seC4geC4qeC5jOC4quC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4tOC4oOC4siDguKLguLHguIfguKfguLTguYDguKjguKkNCivguKfguLTguKDguLIg4LmA4Lil4Li14LmJ4Lii4LiH4Lio4Li04Lij4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04Lig4LiyIOC5gOC4p+C4qOC4suC4guC4p+C4o+C4tOC4meC4mOC5jA0KK+C4p+C4tOC4oOC4siDguKrguLLguKHguKrguLUNCivguKfguLTguKDguLIg4LmB4Liq4LiH4Liq4Lin4LmI4Liy4LiHDQor4Lin4Li04Lig4LiyIOC4reC4tOC4kOC4h+C4suC4oQ0KK+C4p+C4tOC4oOC4suC4iOC4o+C4tSDguJXguLHguYnguIfguKrguLPguYDguKPguLTguIfguKfguIfguKjguYwNCivguKfguLTguKDguLLguJTguLIg4LiZ4Li04LiY4Li04Lib4Lij4Li14LiK4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04Lig4Liy4LiU4LiyIOC4q+C4tOC4o+C4seC4jeC4meC5ieC4reC4og0KK+C4p+C4tOC4oOC4suC4nuC4oyDguYHguIvguYjguYLguKXguYnguKcNCivguKfguLTguKDguLLguJ7guKMg4Lik4LiU4Li14LiK4Li54Lie4Li04Lih4LilDQor4Lin4Li04Lig4Liy4Lie4Lij4Lij4LiTIOC4nuC4uOC5iOC4oeC4quC4h+C4p+C4mQ0KK+C4p+C4tOC4oOC4suC4oOC4o+C4k+C5jCDguYHguIvguYjguYTguKvguKUNCivguKfguLTguKDguLLguKDguKPguJPguYwg4Lit4Liy4LiI4Lit4Liy4Liq4LiyDQor4Lin4Li04Lig4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4o+C4q+C4oeC4qOC4o+C4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC4oOC4suC4p+C4lOC4tSDguYTguILguYjguKHguLjguIENCivguKfguLTguKDguLLguKfguKPguKPguJMg4LiE4Li44LiT4LiV4Li04Liq4Li44LiCDQor4Lin4Li04Lig4Liy4Lin4Lij4Lij4LiTIOC4oOC4ueC5iOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4tOC4oOC4suC4p+C4peC4seC4oiDguYHguIjguKfguIrguLPguJnguLLguI3guYDguIrguLLguKfguYwNCivguKfguLTguKDguLLguKfguLUg4Liq4Lih4Li04LiX4LiY4Li04LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lin4Li04Lig4Liy4LiqIOC5gOC4reC4geC4mOC4o+C4o+C4oeC4quC4geC4uOC4pQ0KK+C4p+C4tOC4oeC4pSDguIHguKXguLTguYjguJnguYDguIHguKnguKMNCivguKfguLTguKHguKUg4LiE4Liz4LmA4LiE4Lij4Li34LmI4Lit4LiHDQor4Lin4Li04Lih4LilIOC4ieC4suC4ouC4m+C4seC4jeC4jeC4suC5gOC4peC4tOC4qA0KK+C4p+C4tOC4oeC4pSDguYHguIvguYjguYDguK7guLXguYnguKINCivguKfguLTguKHguKUg4LiX4Lit4LiH4LiU4Lit4LiZ4LiZ4LmJ4Lit4LiiDQor4Lin4Li04Lih4LilIOC4muC4uOC4jeC4ouC4seC4hw0KK+C4p+C4tOC4oeC4pSDguJ7guLHguJLguJnguLLguJTguLTguKrguLHguKINCivguKfguLTguKHguKUg4Lih4Liy4Lil4Lix4Lii4LiX4Lit4LiHDQor4Lin4Li04Lih4LilIOC4peC4tOC4oeC4m+C4tOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC4oeC4pSDguKfguLnguKfguJnguLTguIoNCivguKfguLTguKHguKUg4Liq4Li44LiC4Liq4Lih4LmD4LiIDQor4Lin4Li04Lih4LilIOC5geC4q+C4ouC4oeC4h+C4suC4oQ0KK+C4p+C4tOC4oeC4peC4l+C4tOC4nuC4ouC5jCDguYDguIHguKnguYLguIHguKHguKUNCivguKfguLTguKHguKXguKHguLLguKXguKLguYwg4Liq4Lih4LiE4Liw4LmA4LiZDQor4Lin4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC4h+C4suC4oeC4nuC4pOC4geC4qeC5jOC4p+C4suC4meC4tOC4iuC4ouC5jA0KK+C4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jCDguJnguLTguKPguLHguJXguLTguIHguLjguKXguIrguLHguKINCivguKfguLTguKHguKXguKPguLHguJXguJnguYwg4Lil4Li14Lil4Liy4Lib4Lij4Liw4LiK4Liy4LiB4Li44LilDQor4Lin4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC4reC4o+C4uOC4k+C4meC4tOC4mOC4tA0KK+C4p+C4tOC4oeC4peC4p+C4o+C4o+C4kyDguYDguJzguYjguLLguKjguKPguLXguYDguIjguKPguLTguI0NCivguKfguLTguKHguKXguKjguKPguLUg4Lib4Lij4Liw4LiU4Lix4Lia4LmB4LiB4LmJ4LinDQor4Lin4Li04Lih4Liy4LiZIOC4mOC4tOC5guC4quC4oOC4sg0KK+C4p+C4tOC4ouC4lOC4siDguKfguLTguKjguLTguKnguJDguYzguKPguLHguKjguKHguLXguKfguIfguKjguYwNCivguKfguLTguKLguLDguJTguLIg4LiX4Liy4Lib4Lij4Liw4LiX4Li44LihDQor4Lin4Li04Lii4Liw4LiU4LiyIOC4qOC4tOC4o+C4tOC4l+C4reC4h+C4hOC4sw0KK+C4p+C4tOC4o+C4h+C4o+C4reC4hyDguK3guYnguJnguK3guLLguKPguLUNCivguKfguLTguKPguLAg4Lia4Liz4Lij4Li44LiH4Lio4Lij4Li1DQor4Lin4Li04Lij4Lix4LiKIOC4geC4peC4tOC5iOC4meC4guC4iOC4ow0KK+C4p+C4tOC4o+C4seC4iiDguILguLjguKHguJfguKPguLHguJ7guKLguYwNCivguKfguLTguKPguLHguIog4LiI4Li04LiV4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Li04Lij4Lix4LiKIOC4iuC4t+C5iOC4meC4oeC4teC4qOC4o+C4tQ0KK+C4p+C4tOC4o+C4seC4iiDguJTguLTguKnguJDguJrguKPguKPguIjguIcNCivguKfguLTguKPguLHguIog4LmA4LiX4Lie4Lib4Lij4Liw4LiX4Li44LihDQor4Lin4Li04Lij4Lix4LiKIOC4muC4o+C4o+C5gOC4l+C4tOC4hw0KK+C4p+C4tOC4o+C4seC4iiDguYDguJvguKPguKHguKjguKPguLUNCivguKfguLTguKPguLHguIog4Lie4Li54LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Li04Lij4Lix4LiKIOC4oeC4suC4lOC4p+C4hw0KK+C4p+C4tOC4o+C4seC4iiDguYDguKPguLfguK3guJnguYDguIfguLTguJkNCivguKfguLTguKPguLHguIog4Lin4Lij4Lij4LiT4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04Lij4Lix4LiKIOC4qOC4o+C4teC4muC4uOC4jeC4p+C4h+C4qeC5jA0KK+C4p+C4tOC4o+C4seC4iiDguKrguKvguKrguKHguYLguIrguIQNCivguKfguLTguKPguLHguIog4LmB4Liq4LiH4LmA4LiH4Li04LiZDQor4Lin4Li04Lij4Lix4LiKIOC4reC4oeC4qOC4tOC4o+C4tA0KK+C4p+C4tOC4o+C4seC4iuC4iiDguKrguLjguKDguLLguJnguLjguKrguKMNCivguKfguLTguKPguLHguJUg4Lii4Li04LmJ4Lih4Lij4Liw4Lir4LiH4Lip4LmMDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4geC5ieC4p+C4o+C4seC4leC4meC4reC4seC4oeC4nuC4ow0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguIjguLLguKPguLjguYDguKfguKwNCivguKfguLTguKPguLHguJXguJnguYwg4LiK4Li54LiJ4Lix4LiV4Lij4LmMDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4leC4seC4meC4leC4tOC4reC4mOC4tOC4oeC4h+C4hOC4pQ0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguJjguLnguJvguJfguK3guIcNCivguKfguLTguKPguLHguJXguJnguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4peC4seC4og0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguKLguLHguJnguJXguYDguKfguIoNCivguKfguLTguKPguLHguJXguJnguYwg4Lil4Li14Lil4Liy4Liq4Lih4Liy4LiZ4LiK4Lix4LiiDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4p+C4p+C4meC4geC4ouC4ueC4hw0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguKrguLTguIfguKvguYzguIfguLLguKENCivguKfguLTguKPguLHguJXguJnguYwg4LmA4Lir4Lih4LiZ4Lij4Liy4LiB4LijDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4reC4teC4ouC4lOC5gOC4quC4mQ0KK+C4p+C4tOC4o+C4suC4k+C4tSDguKfguKPguIrguLLguITguKPguLXguKLguJnguLHguJnguJfguYwNCivguKfguLTguKPguLTguJnguJfguKPguYwg4LiV4Lix4LiZ4LiV4Li04Lie4Lil4Liy4Lin4LiZ4Li04LiK4Lii4LmMDQor4Lin4Li04Lij4Li04Lii4LiwIOC4meC4tOC4peC4o+C4seC4h+C4qeC4tQ0KK+C4p+C4tOC4o+C4tOC4ouC4siDguIHguLTguJXguJXguLTguJnguLHguJnguJfguYwNCivguKfguLTguKPguLXguKLguLIg4LiZ4Liy4LiE4LiyDQor4Lin4Li04Lij4Li44LiVIOC4leC4o+C4teC4ouC4p+C4hw0KK+C4p+C4tOC4o+C4uOC4rOC4q+C5jCDguITguKPguK3guIfguJrguLjguI3guKjguKPguLUNCivguKfguLTguKPguLjguKzguKvguYwg4Liq4Li44LiZ4LiX4Lij4Liy4Lig4Lix4LiiDQor4Lin4Li04Lil4Lix4LiiIOC5g+C4iOC4lOC4tQ0KK+C4p+C4tOC4peC4seC4oiDguKfguLTguKrguLjguJfguJjguLTguIrguLLguJXguLQNCivguKfguLTguKXguLHguKLguKjguLHguIHguJTguLTguYwg4Liq4Li44LiB4Li04LiI4LiN4Liy4LiTDQor4Lin4Li04Lil4Liy4Lin4Lij4Lij4LiTIOC4mOC4suC4o+C4mOC4meC4suC4oOC4o+C4k+C5jA0KK+C4p+C4tOC4peC4suC4p+C4seC4k+C4ouC5jCDguYHguIHguYnguKfguIHguJnguIHguKfguLTguIjguLTguJXguKMNCivguKfguLTguKXguLLguKfguLHguJPguKLguYwg4Lig4Lix4LiX4Lij4Lin4LiZ4Liy4LiB4Li44LilDQor4Lin4Li04Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4geC4o+C4sOC4iOC5iOC4suC4h+C4l+C4tOC4qA0KK+C4p+C4tOC4peC4suC4p+C4seC4peC4ouC5jCDguJnguKPguKrguLTguIfguKvguYwNCivguKfguLTguKXguLLguKfguLHguKXguKLguYwg4Lio4Lij4Li14Lih4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04Lil4Liy4LioIOC4iOC4teC4meC4suC4o+C4seC4geC4qeC5jA0KK+C4p+C4tOC4peC4suC4qCDguYDguKfguIrguKDguLnguJXguLQNCivguKfguLTguKXguLLguKrguLTguJnguLUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Lin4Li04Lin4Lij4Lij4LiTIOC4geC4oeC4peC4qOC4o+C4teC4iOC4seC4geC4ow0KK+C4p+C4tOC4p+C4o+C4o+C4mOC4meC5jCDguKDguLTguKPguKHguKLguYzguJvguKPguLDguYDguKHguKgNCivguKfguLTguKfguLHguJLguJnguYwg4LiB4Lix4LiZ4LiR4LiY4LiZ4LiB4Li04LiIDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4hOC4uOC4k+C4leC4tOC4quC4uOC4gg0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguInguLLguKLguLLguKrguIHguLjguKXguKfguLTguKfguLHguJLguJnguYwNCivguKfguLTguKfguLHguJLguJnguYwg4LmB4LiL4LmI4LmC4LiB4LiiDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC5guC4leC5gOC4iOC4o+C4tOC4jeC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguJnguLTguJXguLTguKDguLnguKHguLTguYDguKfguIrguKrguIHguLjguKUNCivguKfguLTguKfguLHguJLguJnguYwg4Lib4Li04LmI4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4nuC4teC4o+C4qOC4seC4geC4lOC4tOC5jOC5guC4quC4oOC4kw0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguKLguLTguYjguIfguIrguJnguLDguYDguIHguLXguKLguKPguJXguLQNCivguKfguLTguKfguLHguJLguJnguYwg4LmA4Lil4Liy4Lin4LmA4Lil4Li04LioDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4p+C4tOC4geC4o+C4suC4meC4leC5guC4meC4o+C4qg0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguKjguLTguKXguIHguKPguLjguIfguJjguLXguKPguLDguKDguLLguJ4NCivguKfguLTguKfguLHguJLguJnguYwg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4reC4oOC4tOC4p+C4seC4kuC4meC4peC4seC4h+C4geC4suC4ow0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguYDguK3guLfguYnguK3guKPguLHguJXguJnguYzguKjguKPguLXguJfguK3guIcNCivguKfguLTguKjguJPguLUg4Lio4Lij4LiX4Lix4LiV4LiV4LmMDQor4Lin4Li04Lio4Lil4Lii4LmMIOC4quC4tOC4o+C4tOC4l+C4seC4qOC4meC4hOC4uOC4kw0KK+C4p+C4tOC4qOC4suC4pSDguYDguInguKXguLTguKHguIHguLTguIgNCivguKfguLTguKjguLLguKUg4Lil4Li34Lit4LiB4Lij4Liw4LiI4LmI4Liy4LiH4LiY4Lij4Lij4LihDQor4Lin4Li04Lio4Li04Lip4LiO4LmMIOC5geC4geC5ieC4p+C4peC5ieC4reC4oQ0KK+C4p+C4tOC4qOC4tOC4qeC4juC5jCDguJ7guLHguJLguJnguYDguKHguIbguLTguJkNCivguKfguLTguKjguLTguKnguI7guYwg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04Lio4Li04Lip4LiP4LmMIOC4oOC4ueC4o+C4tOC4p+C4seC4kuC4meC5jA0KK+C4p+C4tOC4qOC4tOC4qeC4j+C5jCDguK3guLTguKrguJPguJ7guIfguKjguYwNCivguKfguLTguKjguLTguKnguJDguYwg4LiB4Li04LiV4LiV4Li04LiZ4Lix4LiZ4LiX4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lin4Li04Lio4Li04Lip4LiQ4LmMIOC4leC4suC4o+C4seC4iuC4geC4uOC4pQ0KK+C4p+C4tOC4qOC4tOC4qeC4kOC5jCDguKHguLHguYjguIfguITguLHguYjguIcNCivguKfguLTguKjguLTguKnguJDguYwg4Lio4Li04Lin4Liw4Lia4Lin4LijDQor4Lin4Li04Lio4Li04Lip4Lii4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qOC5jOC4quC4luC4tOC4leC4ouC5jOC4nuC4ow0KK+C4p+C4tOC4qeC4k+C4uCDguJfguKfguLXguKfguLTguYLguKPguIjguJnguYzguKrguIHguLjguKUNCivguKfguLTguKnguJPguLgg4Lin4LiH4Lip4LmM4LmA4LiH4Li04LiZDQor4Lin4Li04Lip4LiT4Li44Lin4Lix4LiVIOC4p+C4seC4iOC4meC4sOC4nuC4uOC4geC4geC4sA0KK+C4p+C4tOC4quC4seC4meC4leC5jCDguIjguLHguJnguJfguKPguYzguKjguKPguLXguYDguIjguKPguLTguI0NCivguKfguLTguKrguLHguKIg4Liq4Lih4Lia4Li54Lij4LiT4LmM4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Li04Liq4Liy4LijIOC5gOC4leC4iuC4sOC4mOC4teC4o+C4suC4p+C4seC4kuC4meC5jA0KK+C4p+C4tOC4quC4tOC4kCDguKXguLjguJzguKXguYHguJfguYkNCivguKfguLTguKrguLTguJfguJjguLTguYwg4LiI4Li04LiV4Lij4Lie4Liy4LiZ4Li04LiK4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Liq4Li04LiX4LiY4Li04LmMIOC4nuC4h+C5guC4qOC4mOC4ow0KK+C4p+C4tOC4quC4tOC4l+C4mOC4tOC5jCDguYDguKjguKPguKnguJDguLXguJ7guYjguK3guITguYnguLINCivguKfguLTguKrguLTguKnguJAg4Lik4LiX4LiY4Li04LmM4Liq4Liz4LmA4Lij4LmH4LiIDQor4Lin4Li04Liq4Li44LiX4LiY4Li0IOC4muC4uOC4jeC4geC4s+C4nuC4o+C5ieC4sg0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguITguLjguYnguKHguKDguLLguITguKrguIHguLjguKUNCivguKfguLTguKrguLjguJfguJjguLTguYwg4LiU4LmI4Liy4LiZ4LiY4LiZ4Liq4Liy4LiE4LijDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4muC4uOC4jeC4lOC4teC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguKDguLHguJfguKPguYDguIHguLXguKLguKPguJXguLTguYDguIjguKPguLTguI0NCivguKfguLTguKrguLjguJfguJjguLTguYwg4Lin4Li04Liq4Li44LiX4LiY4Li04Lie4Li04LmA4LiZ4LiV4LijDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4quC4uOC4l+C4mOC4tOC4p+C4tOC4o+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4p+C4tOC4quC4uOC4l+C4mOC5jCDguYDguITguKvguYzguJfguLjguYjguKENCivguKfguLTguKrguLnguJXguKMg4LiJ4LiB4Liy4LiI4Lik4LiX4LiY4Li04Lie4LiH4Lio4LmMDQor4Lin4Li04Liq4Li54LiV4LijIOC4m+C4o+C4sOC4hOC4reC4h+C4quC4seC4meC4leC4tOC4geC4uOC4pQ0KK+C4p+C4tOC4quC4ueC4leC4oyDguKfguIfguKjguYzguYTguIrguKLguKjguKPguLUNCivguKfguLTguKrguLnguJXguKMg4Liq4Li54LmI4Lie4Liy4LiZ4Li04LiKDQor4Lin4Li04LmA4LiB4Li34LmJ4LitIOC4quC4geC4uOC4peC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4tOC5gOC4iuC4qeC4kCDguJvguKPguLLguIrguYDguJvguKPguLfguYjguK3guIcNCivguKfguLTguYDguIrguKnguJDguYwg4Lij4Lit4LiU4LiZ4Li44Liq4LiZ4LiY4Li04LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4geC4seC4h+C4p+C4suC4peC4ouC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYDguIHguLTguJTguKDguLnguYgNCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiC4LmH4Lih4LmA4LiH4Li04LiZDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4hOC4suC4o+C4nuC4nuC4suC4nuC4h+C4hOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguIjguLHguJnguJfguYLguIrguJXguLTguJrguLjguJXguKMNCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiI4Lij4Li04LiN4Lie4LiH4Lip4LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4iuC4seC4ouC4iuC4s+C4meC4sOC4oOC4seC4og0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYLguIrguJXguLTguJXguLHguJnguJXguLTguKHguLLguIHguKMNCivguKfguLTguYDguIrguLXguKLguKMg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4leC4o+C4teC4nuC4uOC4kg0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYDguJXguLTguKHguKfguLjguJLguLQNCivguKfguLTguYDguIrguLXguKLguKMg4LiX4Lix4LiV4LiV4Lih4LiZ4Lix4LiqDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4mOC4suC4o+C4oeC4meC4ueC4peC4suC4oA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYDguJnguJXguKPguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguKfguLTguYDguIrguLXguKLguKMg4Lia4Li44Lij4Li04Lih4LiI4Li04LiV4LiV4LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4m+C4suC4meC4reC4uOC4l+C4seC4og0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJ7guKPguLLguKLguKHguLUNCivguKfguLTguYDguIrguLXguKLguKMg4Lie4Li04Lij4Li04Lii4Liw4Lie4LiH4Lio4LiY4LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4n+C4uOC5ieC4h+C4quC4uOC4gg0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKHguLLguKHguLXguYDguIHguJXguLgNCivguKfguLTguYDguIrguLXguKLguKMg4LmD4Lii4Lib4Lij4Liw4Lii4Li54LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC4suC4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKXguLTguYnguKHguK3guLLguKPguLXguJjguKPguKPguKENCivguKfguLTguYDguIrguLXguKLguKMg4Lin4LiH4Lio4LmM4Lit4LiZ4Li44Liq4Lij4LiT4LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4p+C4seC4meC4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYTguKfguJ7guIjguJnguLLguJcNCivguKfguLTguYDguIrguLXguKLguKMg4Lio4Li04Lij4Li04Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4quC4oeC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKrguLPguYDguKDguLINCivguKfguLTguYDguIrguLXguKLguKMg4Liq4Li44LiE4LiZ4LiY4Liy4Lig4Li04Lij4Lih4Lii4LmMIOC4kyDguJ7guLHguJfguKXguLjguIcNCivguKfguLTguYDguIrguLXguKLguKMg4LmA4Liq4Lij4LmH4LiI4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4q+C4reC4oeC4hOC4hw0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguK3guKLguLnguYjguYDguKPguLfguK3guIcNCivguKfguLTguYDguIrguLXguKLguKMg4Lit4Li04LiZ4LiX4Lij4LmM4Liq4Liz4Lit4Liy4LiH4LiE4LmMDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4ruC4p+C4lOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4p+C4tOC5gOC4peC4tOC4qCDguK3guKPguYjguLLguKHguYDguKXguLTguKjguJXguKPguLDguIHguLnguKUNCivguKfguLTguYDguKjguKkg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04LmC4LiK4LiEIOC4p+C4tOC5gOC4qOC4qeC4nuC4seC4meC4mOC4uOC5jOC4iuC4seC4og0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguIHguLHguJvguJvguLTguKLguIjguKPguKPguKLguLINCivguKfguLTguYLguKPguIjguJnguYwg4LmC4LiB4Lii4Lit4LiZ4Lij4Lij4LiG4LiB4Li44LilDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4h+C4suC4oeC5gOC4reC4geC4reC4uOC4lOC4oeC4nuC4h+C4qOC5jA0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguIjguLTguKfguLLguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKfguLTguYLguKPguIjguJnguYwg4LiK4Lil4Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5guC4iuC4leC4tOC4p+C4o+C4o+C4k+C4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJTguK3guJnguKLguLLguIfguYTguJ7guKMNCivguKfguLTguYLguKPguIjguJnguYwg4LmA4LiV4LiK4Liw4LiK4LiZ4Liy4Lil4Lix4LiiDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4l+C4seC4qOC4meC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJnguLLguITguJnguYnguK3guKINCivguKfguLTguYLguKPguIjguJnguYwg4LmA4Lia4LiN4LiI4Lie4Liq4LiB4Li44LilDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4nOC4peC4leC4ueC4oQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJ7guLTguJfguKLguLLguJnguJnguJfguYwNCivguKfguLTguYLguKPguIjguJnguYwg4Lig4Liy4LmD4LiI4LiY4Lij4Lij4LihDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4ouC4seC5iOC4h+C4ouC4t+C4meC4oOC4o+C4suC4lOC4ow0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKPguLjguYLguIjguJvguIHguLLguKMNCivguKfguLTguYLguKPguIjguJnguYwg4Lil4Li04LmI4Lin4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4p+C4h+C4qeC5jOC4qOC4tOC4o+C4tA0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKfguLTguKPguLTguKLguLDguJjguJnguLLguIHguKMNCivguKfguLTguYLguKPguIjguJnguYwg4Lio4Lik4LiH4LiE4Liy4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4quC4seC4h+C4p+C4o+C5guC4ouC4mOC4tOC4mQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKrguLjguJfguJjguLTguKPguLHguIHguKnguYwNCivguKfguLTguYLguKPguIjguJnguYwg4Lir4Lil4Li04Lih4LmE4LiK4Lii4LiB4Li44LilDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4reC4o+C4uOC4k+C4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguYDguK3guLXguYjguKLguKHguKrguIHguLjguKXguKPguLHguJXguJnguYwNCivguKfguLTguYTguKUg4LiB4Li04Lij4Liw4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lin4Li04LmE4LilIOC4hOC4seC4hOC4meC4seC4oeC4nuC4o+C5gOC4peC4tOC4qA0KK+C4p+C4tOC5hOC4pSDguIjguLLguKPguLjguJ7guIfguKjguYwNCivguKfguLTguYTguKUg4LiK4LiU4LiK4LmJ4Lit4LiiDQor4Lin4Li04LmE4LilIOC5geC4i+C5iOC4geC4tOC4oQ0KK+C4p+C4tOC5hOC4pSDguJTguLLguKfguKrguLjguIINCivguKfguLTguYTguKUg4LmC4LiV4Liq4Li44Lin4Lij4Lij4LiTDQor4Lin4Li04LmE4LilIOC4mOC4suC4o+C4teC5hOC4l+C4og0KK+C4p+C4tOC5hOC4pSDguJrguLjguI3guKHguLUNCivguKfguLTguYTguKUg4Lib4Liy4LiU4Lio4Lij4Li1DQor4Lin4Li04LmE4LilIOC4nuC4tOC4l+C4seC4geC4qeC5jOC4iuC4seC4ouC4p+C4seC4kuC4meC4sg0KK+C4p+C4tOC5hOC4pSDguKHguJPguLXguYHguKrguIcNCivguKfguLTguYTguKUg4Lij4Lix4LiV4LiV4LiB4Li44LilDQor4Lin4Li04LmE4LilIOC4peC4tOC5ieC4oeC5gOC4m+C4o+C4oeC4p+C4seC4kuC4meC4sg0KK+C4p+C4tOC5hOC4pSDguKfguLTguIjguLTguJXguKPguJnguLTguKPguLHguJnguJTguKMNCivguKfguLTguYTguKUg4Lio4Lij4Li14Lit4Lij4Li44LiT4LiB4Li04LiI4LiI4LiyDQor4Lin4Li04LmE4LilIOC4quC4q+C4reC4suC4o+C4seC4geC4guC4sg0KK+C4p+C4tOC5hOC4pSDguKrguLjguJfguLHguJTguJPguYzguKfguLLguJnguLTguIoNCivguKfguLTguYTguKUg4Lir4Lin4Lix4LiH4LmA4LiI4Lij4Li04LiNDQor4Lin4Li04LmE4LilIOC4reC4seC4iuC4k+C4suC4geC4o+C4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4tOC5hOC4peC4nuC4oyDguIHguLjguKXguJrguLjguJXguKMNCivguKfguLTguYTguKXguJ7guKMg4LiX4LmI4Liy4LmE4LiE4Lij4LmJ4LiB4Lil4Liy4LiHDQor4Lin4Li04LmE4Lil4Lie4LijIOC4p+C4tOC4l+C4ouC4suC4guC4iOC4o+C5gOC4lOC4ig0KK+C4p+C4tOC5hOC4peC4nuC4o+C4o+C4kyDguKrguKHguJrguLnguKPguJPguKrguLTguJkNCivguKfguLTguYTguKXguKPguLHguJXguJnguYwg4LmC4LiB4Lio4Lil4LiI4Lix4LiZ4LiX4Lij4Lii4LiZ4LiV4LmMDQor4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMIOC4m+C4ueC4meC4p+C4tOC4oOC4suC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4peC4o+C4seC4leC4meC5jCDguKvguKfguLHguIfguKjguKPguLXguJXguKPguLHguKINCivguKfguLTguYTguKXguKXguLHguIHguKnguJPguYwg4LmA4LiI4LiZ4Liq4Lih4Liy4LiZ4LiK4Lix4Lii4LiB4Li44LilDQor4Lin4Li04LmE4Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4p+C4tOC5hOC4peC4peC4seC4geC4qeC4k+C5jCDguKPguLHguJXguJnguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguYTguKXguKXguLHguIHguKnguJPguYwg4LmB4Liq4LiH4LiX4Lix4LiB4Lip4Li04LiTDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC4hOC4h+C4hOC4tOC4lA0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguIrguLnguYHguJTguIcNCivguKfguLTguYTguKXguKfguKPguKPguJMg4LmA4LiX4Li14Lii4LiZ4LiW4Liy4Lin4LijDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC5geC4m+C5ieC4meC4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguKLguLTguJnguJTguLXguKTguIHguKnguYwNCivguKfguLTguYTguKXguKfguKPguKPguJMg4Lin4Liy4Lio4Lin4Li04LiXDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC4quC4uOC5gOC4nuC4teC4ouC4ow0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4k+C5jCDguYDguKvguKXguLfguK3guIfguKrguKfguLHguKrguJTguLTguYwNCivguKfguLXguJPguLIg4LiB4Lix4Liq4LiV4Lix4LiZDQor4Lin4Li14LiT4LiyIOC5gOC4iOC4meC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4og0KK+C4p+C4teC4k+C4siDguJXguLHguJnguYDguIHguKnguKENCivguKfguLXguJPguLIg4Lia4Li44LiN4LiC4Lin4Lix4LiNDQor4Lin4Li14LiT4LiyIOC4oOC4seC4geC4lOC4teC4p+C4seC4kuC4meC4sOC4geC4uOC4pQ0KK+C4p+C4teC4k+C4siDguKfguIfguKnguYzguIHguKHguKXguIrguLjguJPguKvguYwNCivguKfguLXguJPguLIg4Liq4Liy4Lii4Lir4Lii4Li44LiUDQor4Lin4Li14LiT4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4m+C4o+C4sOC4iOC4hw0KK+C4p+C4teC4meC4seC4qiDguJvguLTguYjguJnguKHguLHguIfguIHguKMNCivguKfguLXguJnguLHguKog4LmA4Lit4Li14LmI4Lii4Lih4Lin4Lix4LiS4LiZ4LiwDQor4Lin4Li14Lij4LiB4Li04LiV4LiV4LmMIOC5hOC4nuC4muC4ueC4peC4ouC5jOC4geC4tOC4iOC5guC4geC4qOC4pQ0KK+C4p+C4teC4o+C4iuC4seC4oiDguYHguIvguYjguYDguIvguLXguKLguKcNCivguKfguLXguKPguIrguLHguKIg4Lil4Liy4Lig4LmA4LiI4Lij4Li04LiN4Lie4LijDQor4Lin4Li14Lij4LiK4Lix4LiiIOC4reC4suC4meC4seC4meC4l+C4qOC4tOC4o+C4tOC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4p+C4teC4o+C4meC4suC4liDguYHguJTguIfguJrguLjguI0NCivguKfguLXguKPguJ7guIfguKjguYwg4LmA4Lil4Li04Lio4Lin4LiH4Lio4LmM4Lig4Lix4LiB4LiU4Li1DQor4Lin4Li14Lij4Lie4LiI4LiZ4LmMIOC5gOC4iuC4tOC4lOC5hOC4iuC4ouC4p+C4h+C4qeC5jA0KK+C4p+C4teC4o+C4nuC4pSDguJjguJnguLLguKDguKPguJPguYzguYTguJ7guJrguLnguKXguKLguYwNCivguKfguLXguKPguJ7guLHguJLguJnguYwg4LiB4Li04LiV4LiV4Li04Lig4Liy4LiT4Li44LiB4Li44LilDQor4Lin4Li14Lij4Lii4LioIOC4pOC4l+C4mOC4tOC5jOC5hOC4l+C4og0KK+C4p+C4teC4o+C4ouC4uOC4l+C4mCDguJrguLHguJPguJHguLTguJXguKDguLnguKfguJnguJnguJfguYwNCivguKfguLXguKPguKLguLjguJfguJjguYwg4Lib4Li14LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4Lin4Lij4Lij4LiTIOC5geC4leC4h+C5geC4geC5ieC4pw0KK+C4p+C4teC4o+C4p+C4o+C4o+C4kyDguYDguKfguKrguLLguKPguLHguIrguYDguKjguKPguKnguJDguYwNCivguKfguLXguKPguKfguLHguJLguJnguYwg4LiE4Li44LiT4Lie4Li04LiX4Lix4LiB4Lip4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lin4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC4nuC4tuC5iOC4h+C5guC4nuC4mOC4tOC5jOC4quC4oA0KK+C4p+C4teC4o+C4p+C4seC4lSDguITguLjguJPguLLguJnguLjguIHguLnguKUNCivguKfguLXguKPguKjguLHguIHguJTguLTguYwg4LiC4LiI4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lin4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4o+C4o+C4iOC4h+C4oeC4k+C4tQ0KK+C4p+C4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguLTguIrguIrguLLguIrguLkNCivguKfguLXguKPguKrguLTguJfguJjguLTguYwg4LiJ4Lix4LiV4Lij4Liq4Li44Lig4Liy4LiH4LiE4LmMDQor4Lin4Li14Lij4LiwIOC5geC4geC5ieC4p+C4meC4uOC5iOC4oQ0KK+C4p+C4teC4o+C4sCDguIjguLDguJrguLHguIcNCivguKfguLXguKPguLAg4LiJ4Li04LiZ4LiX4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4LiwIOC5guC4iuC4hOC4ouC4suC4meC4uOC4p+C4seC4kuC4meC5jOC4qOC4tOC4o+C4tA0KK+C4p+C4teC4o+C4sCDguYLguJTguYHguKfguJnguYDguKcNCivguKfguLXguKPguLAg4LiX4Lit4LiH4Lil4Li04LmJ4LiZ4LiI4Li14LmIDQor4Lin4Li14Lij4LiwIOC4meC4s+C4iuC4suC4jeC4iuC4seC4ouC4p+C4uOC4kuC4tA0KK+C4p+C4teC4o+C4sCDguJvguKPguLDguJTguLTguKnguJDguJzguKXguJ7guLLguJnguLTguIoNCivguKfguLXguKPguLAg4Lie4Lil4Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Li14Lij4LiwIOC4oeC4meC4leC5gOC4quC4o+C4teC4p+C4h+C4qOC5jA0KK+C4p+C4teC4o+C4sCDguKPguLHguIrguJXguLLguKHguLjguILguKLguJnguLHguJnguJXguYwNCivguKfguLXguKPguLAg4Lil4Li34Lit4Lin4Li04LiK4LiZ4LiwDQor4Lin4Li14Lij4LiwIOC4p+C4seC4kuC4meC4suC4ouC4tOC5iOC4h+C4quC4geC4uOC4pQ0KK+C4p+C4teC4o+C4sCDguKjguKPguLXguKHguLLguKXguLINCivguKfguLXguKPguLAg4Liq4Lin4Lij4Lij4Lii4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li14Lij4LiwIOC4quC4uOC4o+C4tOC4ouC4m+C4o+C4sOC4oOC4suC4lOC4tOC4peC4gQ0KK+C4p+C4teC4o+C4sCDguYDguKvguKXguLfguK3guIfguJrguKPguLTguJrguLnguKPguJPguLANCivguKfguLXguKPguLAg4Lit4Li44LiZ4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4geC4ueC4lOC5guC4nuC4meC4h+C4suC4oQ0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguIrguLTguYnguJnguKjguLTguKPguLQNCivguKfguLXguKPguLDguIrguLHguKIg4LiX4Lit4LiH4Lin4LiH4Lip4LmMDQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4nuC4o+C4q+C4oeC4oeC4suC4qA0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguYLguKXguYnguJ7guLTguKPguLjguJMNCivguKfguLXguKPguLDguIrguLHguKIg4Liq4Li44LiZ4LiX4Lij4LmA4LiI4Lij4Li04LiN4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4Liw4LiK4Liy4LiVIOC4nuC4h+C4qOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4teC4o+C4sOC4iuC4suC4leC4tCDguK3guLTguIfguKrguLHguJnguYDguJfguLXguKLguLANCivguKfguLXguKPguLDguJ7guIfguKjguYwg4Lia4Li44LiN4LiB4Li04LiV4LiV4Li04LmA4LiI4Lij4Li04LiNDQor4Lin4Li14Lij4Liw4Lie4LiH4Lip4LmMIOC5gOC4l+C4teC4ouC4meC5gOC4quC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4teC4o+C4sOC4nuC4h+C4qeC5jCDguKrguLTguKPguLTguKfguLHguJLguJnguYDguKrguJbguLXguKLguKMNCivguKfguLXguKPguLDguJ7guKUg4LiI4Li04Lij4Lix4LiH4LiZ4Li04Lih4Li04LiV4Liq4LiB4Li44LilDQor4Lin4Li14Lij4Liw4Lie4LilIOC4oeC4teC4peC4suC4oA0KK+C4p+C4teC4o+C4sOC4nuC4pSDguYLguK3guKrguKDguLLguKPguKLguIHguLjguKUNCivguKfguLXguKPguLDguJ7guLHguJnguJjguYwg4LmA4Lie4LiK4Lij4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li14Lij4Liw4Lii4Li44LiX4LiYIOC5guC4geC4o+C4seC4leC4meC4sA0KK+C4p+C4teC4o+C4sOC4ouC4uOC4l+C4mCDguKjguLjguKDguJnguLLguKPguLINCivguKfguLXguKPguLDguKfguKPguKPguJMg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lin4Li14Lij4Liw4Lin4Lix4LiS4LiZ4LmMIOC4leC4uOC4h+C4hOC4p+C4tOC4iOC4tOC4leC4o+C4p+C4seC4kuC4meC5jA0KK+C4p+C4teC4o+C4sOC4p+C4seC4kuC4meC5jCDguKrguLjguKfguKPguKPguJPguYDguJrguI3guIjguIHguLjguKUNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4LiB4Lit4LiH4LmB4LiB4LmJ4LinDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4iuC4suC4jeC4p+C4tOC4o+C4p+C4h+C4qOC5jA0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguYTguJ7guJrguLnguKXguKLguYwNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4LmC4Lib4LiY4Li04Lih4LiyDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4pOC4geC4qeC5jOC4quC4oeC4muC4ueC4o+C4k+C5jOC4qOC4tOC4o+C4tA0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguKjguKPguLXguKrguLTguJnguJfguKMNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lir4Lit4Lih4LiK4Li34LmI4LiZDQor4Lin4Li14Lij4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4leC4seC5ieC4h+C4reC4oeC4o+C4o+C4seC4leC4meC5jA0KK+C4p+C4teC4o+C4sOC5gOC4l+C4niDguYDguJXguYfguKHguKrguLTguJnguJzguJTguLjguIcNCivguKfguLXguKPguLLguKLguLIg4Lit4LmI4Lin4Lih4Liq4Liw4Lit4Liy4LiUDQor4Lin4Li14Lij4LmA4LiU4LiKIOC4peC4tOC4oeC4m+C5jOC4o+C4seC4iuC4leC4suC4oeC4ow0KK+C4p+C4uOC4kuC4keC4tOC4meC4seC4meC4l+C5jCDguKjguKPguLXguYLguInguKHguIfguLLguKENCivguKfguLjguJLguLQg4LmC4LiK4Liq4Li04Lin4Liq4LiB4Li44LilDQor4Lin4Li44LiS4Li0IOC4oeC4teC4quC4uOC4gg0KK+C4p+C4uOC4kuC4tCDguYDguKvguKXguYjguLLguKrguLjguJnguJfguKMNCivguKfguLjguJLguLTguIrguLHguKIg4LmA4LiB4Lio4Lib4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguJvguKPguLDguKfguLTguIfguKPguLHguJXguJnguYwNCivguKfguLjguJLguLTguIrguLHguKIg4Lij4Lit4LiU4LmA4LiI4Lij4Li04LiNDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC4qOC4pOC4h+C4hOC4suC4o+C4oOC4suC4qeC4tOC4lQ0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguYHguKrguJnguKHguLLguYLguJnguIoNCivguKfguLjguJLguLTguJnguLHguJnguJfguYwg4LiV4Li44Lil4Lii4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lin4Li44LiS4Li04Lie4LiH4Lio4LmMIOC4q+C4p+C4seC4h+C4mOC4meC4geC4tOC4iA0KK+C4p+C4uOC4kuC4tOC4nuC4h+C4qeC5jCDguKjguKPguLXguJ7guLLguJPguLTguIrguKLguYwNCivguKfguLjguJLguLTguKfguLHguJLguJnguYwg4Lit4Lij4Li44LiT4LiX4Lit4LiHDQor4Lin4Li44LiS4Li04Liq4LiyIOC4muC4uOC4qeC4oeC4h+C4hOC4pQ0KK+C4p+C4uOC4kuC4tOC5hOC4geC4oyDguK3guLjguJfguLHguKLguKfguLHguJLguJnguJvguKPguLXguIrguLINCivguKfguYLguKPguIrguLIg4LiV4Li44LiH4LiE4Liw4LmA4Lio4Lij4LiT4Li1DQor4Lin4LmE4Lil4Lie4LijIOC4lOC4teC4luC4suC4p+C4ow0KK+C4p+C5hOC4peC4peC4seC4geC4qeC4k+C5jCDguYDguIjguKPguLTguI3guK3guLHguITguKfguKrguLjguIINCivguYDguKfguIog4LiX4Lit4LiH4LmA4Lij4Li34Lit4LiHDQor4LmA4Lin4LiT4Li04LiBIOC4iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4p+C4quC4l+C5jOC5geC4peC4meC4lOC5jCDguJTguLUNCivguYDguKfguLXguKLguIfguJ/guYnguLIg4LiE4Li44LmJ4Lih4LmE4Lie4LiX4Li54Lil4Lii4LmMDQor4LmA4Lin4LmJ4LiH4Liu4LiHIOC5geC4i+C5iOC4geC4seC4hw0KK+C5geC4p+C4pyDguK3guYjguK3guJnguKXguLDguKHguLnguKUNCivguYHguKfguKfguJXguLIg4Lij4Lit4LiU4LiE4Lil4Lit4LiH4LiV4Lix4LiZDQor4LmB4Lin4Lin4LmD4LiIIOC5geC4i+C5iOC4muC5ieC4suC4hw0KK+C5hOC4p+C4keC4ueC4o+C4ouC5jCDguJvguKPguLHguIrguI3guLLguJ7guIfguKjguYzguJ7guLHguJnguJjguYwNCivguYTguKfguKIg4LmA4Lib4LmJ4Liy4LiX4Lit4LiHDQor4LmE4Lin4Lin4Li04LiX4Lii4LmMIOC5gOC4q+C4peC5iOC4suC4p+C4o+C4p+C4tOC4l+C4ouC5jA0KK+C4qOC4geC4uOC4meC4leC4peC4siDguKPguLHguIHguKnguLLguKrguLHguJXguKLguYwNCivguKjguIjguLXguJ7guKMg4Lit4Li04Liq4Lij4Li04Lii4Liw4LmA4Liq4Lij4Li14LiB4Li44LilDQor4Lio4LiZ4Li04Lip4LiyIOC4meC4seC4ouC4mOC4meC4tOC4ig0KK+C4qOC4o+C4iuC4seC4oiDguYDguIHguLXguKLguKPguJXguLTguIrguLHguKLguKfguLjguJLguLQNCivguKjguKPguIrguLHguKIg4Lij4Lix4Lio4Lih4Li04LiX4Lix4LiVDQor4Lio4Lij4LijIOC4mOC4o+C4o+C4oeC4luC4uOC4leC4tA0KK+C4qOC4o+C4qOC4tOC4peC4m+C5jCDguJ7guKXguYDguJXguIrguLINCivguKjguKPguLHguI3guI3guLIg4LmC4Lie4LiY4Li04LmM4LmB4LiB4LmJ4LinDQor4Lio4Lij4Lix4LiT4LiN4LiyIOC4iOC4h+C4meC4o+C4seC4h+C4quC4tOC4mQ0KK+C4qOC4o+C4seC4k+C4ouC4siDguKfguIfguKjguYzguJrguLINCivguKjguKPguLHguJPguKLguYwg4LmA4LiY4Li14Lii4Lij4Lio4Li04Lil4Liy4LiB4Li44LilDQor4Lio4Lij4Lix4LiX4LiY4LiyIOC4l+C4reC4h+C4p+C4uOC4kuC4tOC4nuC4seC4meC4mOC5jA0KK+C4qOC4o+C4suC4oOC4o+C4k+C5jCDguJvguKPguLXguIrguLINCivguKjguKPguLLguKLguLjguJfguJgg4Liq4Liy4Liq4LiZ4Li04LiXDQor4Lio4Lij4Liy4Lin4Li44LiS4Li0IOC4iOC4tOC4meC4suC4leC4uOC4mQ0KK+C4qOC4o+C4suC4p+C4uOC4mCDguJTguYjguLLguJnguYDguJ7guYfguIrguKPguJTguLPguKPguIcNCivguKjguKPguLLguKfguLjguJgg4Liq4Lih4Lix4Lii4LmA4LiX4Lit4LiU4Lio4Lix4LiB4LiU4Li04LmMDQor4Lio4Lij4Li04LiZ4LiU4LiyIOC4m+C4seC4quC4meC4sOC4iOC4sOC5guC4mQ0KK+C4qOC4o+C4tOC4meC4l+C4tOC4nuC4ouC5jCDguJbguYnguLPguJfguLTguKHguJfguK3guIcNCivguKjguKPguLTguJnguKLguLIg4Liq4Lir4Liq4Li04LiX4LiY4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lio4Lij4Li1IOC5gOC4nOC5iOC4suC4l+C4reC4h+C4iOC4teC4mQ0KK+C4qOC4o+C4teC4geC4seC4meC4ouC4siDguYLguJrguKfguYzguKrguLjguKfguKPguKPguJMNCivguKjguKPguLXguIjguLHguJnguJfguJnguYwg4Lin4LmI4Lit4LiH4LmA4LiI4Lij4Li04LiNDQor4Lio4Lij4Li14LiI4Lix4LiZ4LiX4Lij4LmMIOC4ouC4tOC4meC4lOC4teC4reC4seC4mQ0KK+C4qOC4o+C4teC4iOC4tOC4leC4leC5jCDguKrguLjguIrguLLguJXguLTguKrguLjguJjguLLguJjguKPguKPguKENCivguKjguKPguLXguIrguLLguJXguLQg4Liq4Li44Lig4Liy4Lip4Li04LiVDQor4Lio4Lij4Li14LiX4Lit4LiHIOC4nuC4ueC4peC4l+C4o+C4seC4nuC4ouC5jA0KK+C4qOC4o+C4teC4mOC4tOC4iuC4siDguJfguK3guIfguK3guLTguJnguJfguKPguYwNCivguKjguKPguLXguJnguKfguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li44LiCDQor4Lio4Lij4Li14LiZ4Lin4LilIOC4l+C4uOC4oeC5gOC4l+C4teC5iOC4ouC4hw0KK+C4qOC4o+C4teC4meC4p+C4pSDguYDguKHguIbguKvguYjguKfguIcNCivguKjguKPguLXguJnguKfguKUg4Liq4Li44LiC4Liq4Lit4Liy4LiUDQor4Lio4Lij4Li14LiZ4Liy4Lij4Li1IOC5geC4i+C5iOC5gOC4ruC4hw0KK+C4qOC4o+C4teC4m+C4o+C4sOC4oOC4siDguIHguKXguLTguYjguJnguKrguLHguIfguILguYwNCivguKjguKPguLXguJvguKPguLDguKDguLIg4LmB4Liq4LiH4LmA4LiZ4LiV4LijDQor4Lio4Lij4Li14Lib4Lij4Liy4LiK4LiN4LmMIOC4quC4uOC4l+C4seC4qOC4meC4qOC4tuC4geC4qeC4sg0KK+C4qOC4o+C4teC4nuC4oyDguKHguLLguKXguLDguKfguLTguIrguLHguKINCivguKjguKPguLXguJ7guLHguIrguKPguLIg4Lio4Li44Lig4Lij4Lin4Lij4Lij4LiTDQor4Lio4Lij4Li14Lih4Liy4Lil4LiyIOC4geC4peC4teC4muC4geC4oeC4pQ0KK+C4qOC4o+C4teC4o+C4seC4leC4meC4siDguKPguK3guJTguJTguLUNCivguKjguKPguLXguKPguLHguJXguJnguYwg4Lia4Lij4Lij4Lii4LiH4LiB4Liw4LmA4Liq4LiZ4LiyIOC4kyDguK3guKLguLjguJjguKLguLINCivguKjguKPguLXguKPguLHguJXguJnguYwg4Liq4Lix4LiH4LiC4LmM4Lie4Lix4LiZ4LiY4LmMDQor4Lio4Lij4Li14Lil4Lix4LiU4LiU4LiyIOC5guC4m+C5iuC4sOC4muC4uOC4jeC4iuC4t+C5iOC4mQ0KK+C4qOC4o+C4teC4p+C4o+C4o+C4kyDguIrguLnguJPguKPguIfguITguYwNCivguKjguKPguLXguKfguKPguKPguJMg4Lij4Lix4LiV4LiZ4LmA4Lio4Lij4Lip4LiQDQor4Lio4Lij4Li14Lin4Lij4Lij4LiTIOC4reC4tOC4meC4l+C4o+C4seC4leC4meC5jA0KK+C4qOC4o+C4teC4p+C4peC4tSDguKXguLTguYjguKHguKHguKPguIHguJUNCivguKjguKPguLXguKfguLTguIrguLHguKIg4LiZ4LiB4Lii4Li04LmJ4LihDQor4Lio4Lij4Li14Lin4Li04Lil4Lix4LiiIOC4quC4h+C4p+C4meC4quC4seC4leC4ouC5jA0KK+C4qOC4o+C4teC4p+C4tOC5hOC4pSDguKrguLjguILguLjguKHguIHguLLguI3guIjguJnguLANCivguKjguKPguLXguKjguLHguIHguJTguLTguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lio4Lix4LiB4LiU4Li04LmM4Lio4Lij4Li1DQor4Lio4Lij4Li14Liq4LiB4Li44LilIOC4qOC4o+C4teC4leC4sOC4m+C4seC4meC4ouC5jA0KK+C4qOC4o+C4teC4quC4oeC4muC4ueC4o+C4k+C5jCDguYDguJ7guIrguKPguKHguYjguKfguIcNCivguKjguKPguLXguKrguKHguKMg4Lie4LiH4Lio4Liy4Lin4Lil4Li14Lij4Lix4LiV4LiZ4LmMDQor4Lio4Lij4Li14Liq4Lih4Lix4LiiIOC4p+C4tOC4muC4ueC4peC4ouC4suC4meC4meC4l+C5jA0KK+C4qOC4o+C4teC4quC4p+C4seC4quC4lOC4tOC5jCDguJjguJnguLLguJnguLHguJnguJfguYwNCivguKjguKPguLXguKrguKfguLLguKrguJTguLTguYwg4LiZ4LmJ4Lit4Lii4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lio4Lij4Li14Liq4Lit4Liy4LiUIOC5geC4i+C5iOC4ruC4seC5ieC4hw0KK+C4qOC4o+C4teC4quC4uOC4giDguIHguKXguLTguYjguJnguJrguLHguKcNCivguKjguKPguLXguKrguLjguIrguLLguJXguLQg4LiX4Lit4LiH4LmE4Lil4LmJDQor4Lio4Lij4Li14Liq4Li44LiU4LiyIOC5geC4lOC4h+C4lOC4teC5gOC4peC4tOC4qA0KK+C4qOC4o+C4teC4quC4uOC4lOC4siDguKHguLHguYjguJnguITguIfguKrguIHguLjguKUNCivguKjguKPguLXguKrguLjguJTguLIg4Liq4Li44Lin4Lij4Lij4LiT4LiB4Li04LiI4Lin4Lix4LiS4LiZ4LmMDQor4Lio4Lij4Li14Liq4Li44LiZ4Li1IOC4reC4seC4qOC4p+C4nuC4tOC4oOC4ng0KK+C4qOC4o+C4teC4quC4uOC4oeC4suC4peC4ouC5jCDguIfguLLguKHguJvguKPguLDguYDguKrguKPguLTguJDguIHguLTguIgNCivguKjguKPguLXguKrguLjguKfguKPguKPguJMg4Lij4Li44LiT4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lio4Lij4Li14Lit4Lit4LiZIOC4l+C4reC4h+C4hOC4sw0KK+C4qOC4o+C4teC4reC4uOC4lOC4oSDguYDguJTguIrguLDguKjguLTguKPguLQNCivguKjguKPguLXguYDguIjguKPguLTguI0g4Lij4Lit4Lia4LiE4Lit4LiaDQor4Lio4Lij4Li14LmA4Lie4LmH4LiNIOC4l+C4o+C4seC4nuC4ouC5jOC4oeC4meC4iuC4seC4og0KK+C4qOC4o+C4teC5gOC4o+C4t+C4reC4mSDguJvguKPguLDguKLguLnguKPguJ7guKPguKvguKENCivguKjguKPguLXguYHguIQg4LiX4Lij4Lix4Lie4Lii4LmM4LiU4Li1DQor4Lio4Lij4Li14LmE4LiX4LiiIOC4qOC4o+C4teC5gOC4p+C4l+C4ouC5jOC4muC4lOC4tQ0KK+C4qOC4o+C4uOC4lSDguITguKPguJrguJjguLXguKPguKfguIfguKjguYwNCivguKjguKXguLTguKnguLIg4Lin4Lij4Lij4LiT4LiB4Li04LiIDQor4Lio4Lio4Lin4Lij4Lij4LiTIOC4pOC4geC4qeC5jOC4quC4uOC4o+C4tOC4ouC4nuC4seC4meC4mOC5jA0KK+C4qOC4qOC4tOC4iuC4pSDguIjguKPguLnguI3guYDguKXguLTguKjguKrguLTguJfguJjguLTguJzguKUNCivguKjguKjguLTguJjguKMg4LiE4Liz4Liq4Lix4LiT4Lir4LmMDQor4Lio4Lio4Li04LiY4LijIOC5hOC4iuC4ouC4o+C4tOC4m+C4uQ0KK+C4qOC4qOC4tOC4mOC4oyDguJjguKPguKPguKHguJ7guLHguIHguJXguKPguIHguLjguKUNCivguKjguKjguLTguJjguKMg4Lie4Lij4Liy4Lir4Lih4LiT4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lio4Lio4Li04LiY4LijIOC4o+C4uOC4iOC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4qOC4qOC4tOC4mOC4oyDguKjguKPguLXguK3guJnguLjguJ7guLHguJnguJjguLjguYwNCivguKjguKjguLTguJjguKMg4Liq4Li44Lij4Li04Lii4Liy4Lie4LijDQor4Lio4Lio4Li04LiY4LijIOC5geC4reC4meC4reC4tuC5ieC4hw0KK+C4qOC4qOC4tOC4nuC4oyDguJjguJnguYLguIHguKfguLTguJcNCivguKjguKjguLTguKDguLLguKrguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li44LiCDQor4Lio4Lio4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4iuC4suC4p+C5jOC4nuC4suC4meC4meC4l+C5jA0KK+C4qOC4qOC4tOC4p+C4tOC4oeC4pSDguYLguIHguKrguLTguKLguIHguLjguKUNCivguKjguKjguLTguYDguJ7guYfguI0g4Lin4Lij4Lij4LiT4Lin4Li04LiI4Li04LiV4LijDQor4Lio4Lix4LiB4LiU4LiyIOC4hOC4peC5ieC4suC4ouC4quC4suC4hOC4ow0KK+C4qOC4seC4geC4lOC4siDguYHguIvguYjguJXguLHguYnguIcNCivguKjguLHguIHguJTguLIg4LiY4Lij4Lij4Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lio4Lix4LiB4LiU4LiyIOC4nuC4h+C4qeC5jOC4nOC4pQ0KK+C4qOC4seC4geC4lOC4siDguYHguKHguYnguJnguKrguLjguKfguKPguKPguJMNCivguKjguLHguIHguJTguLIg4Lin4Li04Liq4Li44LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4Lio4Lix4LiB4LiU4LiyIOC4quC4uOC4o+C4tOC4ouC4sOC4nuC4o+C4iuC4seC4ouC4geC4uOC4pQ0KK+C4qOC4seC4geC4lOC4siDguYDguK3guLXguYjguKLguKHguK3guKPguYjguLLguKHguKjguKPguLUNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LiE4Lih4LiB4Lik4LiqDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4iuC5iOC4reC4iuC4seC4ouC4nuC4pOC4geC4qeC5jA0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguJTguLPguKPguLTguKvguYzguIfguLLguKENCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LiX4Lix4LiB4LiC4Li04LiN4LmA4Liq4LiW4Li14Lii4LijDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4m+C4seC4jeC4jeC4suC4oeC4teC5gOC4quC4oeC4rQ0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguYLguJ7guJjguLTguYzguJvguKPguLTguKrguLjguJfguJjguLTguYwNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4Lik4LiB4Lip4LmM4LmA4LiB4Lip4LihDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4p+C4tOC4o+C4tOC4ouC4sOC4quC4uOC4guC4quC4tOC4meC4mOC4uOC5jA0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguKrguLTguKPguLTguJvguKPguLDguKDguLLguJ7guKPguKPguJMNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LmA4Lir4Lil4Li14Lii4LiH4LiB4Lit4Lia4LiB4Li04LiIDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC5gOC4reC4t+C5ieC4reC4quC4uOC4meC4l+C4o+C4nuC4suC4meC4tOC4ig0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4suC4oiDguKXguLTguILguLTguJXguJXguKPguLDguIHguLjguKUNCivguKjguLHguIHguJTguLTguYzguJTguLIg4LmE4LiK4Lii4Liy4LiZ4Li44Lin4LiH4Lio4LmMDQor4Lio4Lix4LiB4LiU4Li04LmM4LiU4LiyIOC4reC4tOC4h+C4hOC4p+C4sOC4o+C4sA0KK+C4qOC4seC4geC4lOC4tOC5jOC4ouC4seC4meC4leC5jCDguIrguLnguYPguIgNCivguKjguLHguIHguJTguLTguYzguKjguLTguKPguLTguKHguLIg4LiC4Liz4LmA4Lit4Li14LmI4Lii4LihDQor4Lio4Lix4LiB4LiU4Li04LmM4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4luC4suC4l+C4reC4hw0KK+C4qOC4seC4geC4lOC4tOC5jOC4quC4tOC4l+C4mOC4tOC5jCDguYDguKvguKHguIHguLTguJXguJXguLTguYDguIHguLXguKLguKPguJXguLTguYwNCivguKjguLHguIHguJTguLTguYzguYTguKrguKcg4LiX4Lit4LiH4Lij4Lix4LiV4LiZ4LmMDQor4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tuC5iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4seC4geC4lOC4tSDguYDguInguLXguKLguJrguYHguKvguKXguKENCivguKjguLHguIfguIHguKMg4Lig4Li54Lin4LmA4LiI4Lij4Li04LiNDQor4Lio4Lix4LiZ4Liq4LiZ4Li14Lii4LmMIOC4leC4sOC5guC4nuC4meC4l+C4reC4hw0KK+C4qOC4seC4meC4quC4meC4teC4ouC5jCDguKfguLTguIrguLHguKLguJTguLTguKnguJANCivguKjguLHguKXguKLguKfguLTguJfguKLguYwg4Lio4Li04Lij4Li04Lih4LiT4LiR4LilDQor4Lio4Liy4LiZ4LiV4Li0IOC4reC4seC4iOC4iOC4tOC4oeC4suC4geC4ow0KK+C4qOC4suC4p+C4tOC4leC4o+C4tSDguKDguKfguLLguJXguLTguYDguKjguKPguKnguJDguYwNCivguKjguLTguJnguLTguJXguKLguYwg4Lit4LiT4Li04Liq4Lix4LiZ4LiR4LmMDQor4Lio4Li04Lij4Lie4LijIOC4qOC4tOC4o+C4tOC4muC4uOC4jeC4o+C4seC4geC4qeC4sg0KK+C4qOC4tOC4o+C4sCDguKrguYLguJXguJkNCivguKjguLTguKPguLLguJnguLjguIog4Liq4Li44Lin4Lij4Lij4LiT4LmC4LiK4LiV4Li0DQor4Lio4Li04Lij4Li0IOC5hOC4geC4o+C4quC4oeC4iOC4tOC4leC4ow0KK+C4qOC4tOC4o+C4tCDguIrguLHguKLguKrguLHguJnguJjguJnguLANCivguKjguLTguKPguLQg4LiY4Lij4Lij4Lih4Liq4Li44Lij4Li04LmA4LiK4Lip4LiQ4LmMDQor4Lio4Li04Lij4Li0IOC4nOC4peC4tOC4meC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tCDguKHguLHguJjguKLguKHguIjguLHguJnguJfguKPguYwNCivguKjguLTguKPguLQg4Lin4LiH4Lio4LmM4LiJ4Li04LmI4LiH4Lii4Li34LiZ4Lii4LiHDQor4Lio4Li04Lij4Li0IOC5gOC4qOC4p+C4leC4o+C4seC4geC4lQ0KK+C4qOC4tOC4o+C4tCDguKvguKfguLLguJnguKrguJnguLTguJcNCivguKjguLTguKPguLTguIHguLHguI3guI3guLIg4LmB4Lij4Lih4Lin4Lix4Lil4Lii4LmMDQor4Lio4Li04Lij4Li04LiB4Li44LilIOC4iOC4tOC4meC4leC4meC4suC4h+C4geC4ueC4ow0KK+C4qOC4tOC4o+C4tOC4geC4uOC4pSDguKPguLHguIHguYDguIHguLXguKLguKPguJXguLTguKLguKgNCivguKjguLTguKPguLTguILguKfguLHguI0g4LmB4LiL4LmI4LmA4Liu4LiyDQor4Lio4Li04Lij4Li04LiJ4Liy4LiiIOC4nuC4h+C4qOC5jOC4quC4uOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguITguLnguK3guJnguLHguJnguJXguYzguIHguLjguKUNCivguKjguLTguKPguLTguIrguLHguKIg4LmB4LiL4LmI4LmA4LiI4Li14Lii4LiHDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC4meC4oOC4suC4muC4o+C4tOC4o+C4seC4geC4qeC5jA0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguJ7guLTguJnguLTguIjguKfguKPguIHguLjguKUNCivguKjguLTguKPguLTguIrguLHguKIg4Lil4Li04LmJ4Lih4LmA4Lil4Li04Lio4LiV4Lij4Liw4LiB4Li54LilDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC4qOC4uOC4oOC4o+C4seC4iuC4leC4geC4suC4ow0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguKvguIfguKnguYzguKfguLTguJfguKLguLLguIHguKMNCivguKjguLTguKPguLTguJPguLHguJAg4LmD4LiI4Lit4Liy4Lij4Li1DQor4Lio4Li04Lij4Li04LiX4Li04Lie4Lii4LmMIOC4nuC4o+C4q+C4oeC4quC4geC4uOC4peC4iuC4seC4og0KK+C4qOC4tOC4o+C4tOC4meC4l+C4oyDguIjguIfguYDguKrguJbguLXguKLguKMNCivguKjguLTguKPguLTguJnguJfguKPguYwg4LiZ4Li04Lih4Lih4Liy4LiZ4LmA4Lir4Lih4Li04LiZ4LiX4Lij4LmMDQor4Lio4Li04Lij4Li04LiZ4LiY4LijIOC4l+C4reC4h+C4quC4uOC4gg0KK+C4qOC4tOC4o+C4tOC4meC4seC4meC4l+C5jCDguYHguIvguYjguK3guLbguYjguIcNCivguKjguLTguKPguLTguJnguLHguJnguJfguYwg4LmA4Lit4Liq4Li44LiI4Li04LiZ4LiV4LmMDQor4Lio4Li04Lij4Li04LiZ4Liy4Lij4LiWIOC4leC4tOC4qeC4ouC4suC4h+C4geC4ueC4ow0KK+C4qOC4tOC4o+C4tOC4muC4ueC4o+C4k+C5jCDguYDguKXguYfguIHguJzguKXguLTguJzguKUNCivguKjguLTguKPguLTguJ7guIfguKjguYwg4Lit4Li04LiZ4LiX4Lij4LmM4Lia4Liz4Lij4Li44LiHDQor4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMIOC4l+C4seC4muC4l+C4tOC4oQ0KK+C4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jCDguKfguIfguKjguYzguJ7guLTguKHguJ7guYwNCivguKjguLTguKPguLTguJ7guIfguKnguYwg4Lit4Li44LiX4Lix4Lii4LiY4LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lio4Li04Lij4Li04Lie4LijIOC4geC4suC4qOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguILguLjguJnguYLguK3guKnguJANCivguKjguLTguKPguLTguJ7guKMg4LiI4Lix4LiZ4LiB4Lil4Lix4LiUDQor4Lio4Li04Lij4Li04Lie4LijIOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iOC4nuC4tOC4oeC4pQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguIrguLLguJXguLTguJ7guLLguJPguLTguIrguKLguYwNCivguKjguLTguKPguLTguJ7guKMg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lio4Li04Lij4Li04Lie4LijIOC4lOC4s+C4o+C4h+C4p+C4h+C4qOC5jOC4qOC4tOC4o+C4tA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguJXguYfguKHguKrguLjguJnguJfguKMNCivguKjguLTguKPguLTguJ7guKMg4LmA4LiX4Li14Lii4LiZ4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0DQor4Lio4Li04Lij4Li04Lie4LijIOC4meC4tOC4peC4nuC4o+C4suC4pw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJvguKPguLDguKLguLjguIHguJXguYzguKfguIfguKjguYwNCivguKjguLTguKPguLTguJ7guKMg4Lie4LiH4Lip4LmM4LiK4Lix4Lii4Lib4Lij4Liw4LiX4Li14LibDQor4Lio4Li04Lij4Li04Lie4LijIOC4nuC4suC4meC4tOC4iuC4peC5ieC4reC5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguKDguLnguKHguLTguK3guKHguKMNCivguKjguLTguKPguLTguJ7guKMg4Lii4Lix4LiZ4LiV4LmM4LiV4Lij4Liw4LiB4Li54LilDQor4Lio4Li04Lij4Li04Lie4LijIOC5gOC4o+C4t+C4reC4h+C4mOC4p+C4seC4iuC4qOC4tOC4peC4mw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguKXguLTguKjguJjguJnguLLguJzguKUNCivguKjguLTguKPguLTguJ7guKMg4Lin4Lix4Lil4Lil4Lig4Lio4Li04Lij4Li0DQor4Lio4Li04Lij4Li04Lie4LijIOC4qOC4o+C4teC4quC4tOC4h+C4q+C5jOC4iuC4seC4og0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguKrguKXguLHguJoNCivguKjguLTguKPguLTguJ7guKMg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiN4LiZ4Li44LiB4Li54LilDQor4Lio4Li04Lij4Li04Lie4LijIOC5geC4quC4h+C5gOC4nuC5h+C4iuC4o+C5jA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYPguKvguYnguK3guLjguJTguKHguIHguLLguI3guIjguJnguKXguLLguKANCivguKjguLTguKPguLTguJ7guKMg4Lit4Liy4Lij4Lih4Lii4LmM4Liq4Li44LiCDQor4Lio4Li04Lij4Li04Lie4Lij4Lij4LiTIOC4geC4peC4tOC5iOC4meC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4qOC4tOC4o+C4tOC4nuC4o+C4o+C4kyDguJjguKPguKPguKHguITguLjguKzguKvguYwNCivguKjguLTguKPguLTguJ7guKPguKPguJMg4Liq4Li44LiC4Lir4Li04Lij4Lix4LiN4LiB4Li04LiIDQor4Lio4Li04Lij4Li04Lie4Lix4LiS4LiZ4LiyIOC4p+C4tOC5gOC4qOC4qeC5geC4nuC4l+C4ouC4sg0KK+C4qOC4tOC4o+C4tOC4nuC4seC4meC4mOC5jCDguKXguLHguIHguILguJPguLLguJnguLjguIHguLjguKUNCivguKjguLTguKPguLTguKDguKPguJPguYwg4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lio4Li04Lij4Li04Lin4Lix4LiS4LiZ4LiyDQor4Lio4Li04Lij4Li04Lih4LiyIOC4hOC4uOC5ieC4oeC5guC4lQ0KK+C4qOC4tOC4o+C4tOC4oeC4siDguYDguJ/guLfguYjguK3guIfguILguIjguKMNCivguKjguLTguKPguLTguKHguLIg4Lit4Li04LiZ4LiY4Liz4Lij4LiH4LiE4LmMDQor4Lio4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMIOC4muC4uOC4jeC4iuC5iOC4p+C4ouC5gOC4oeC4leC4leC4sg0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYDguILguYfguKHguJnguLLguIQNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmB4LiL4LmI4LiB4Li04LihDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4l+C4nuC4meC4tOC4oeC4tOC4leC4ow0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguJ7guKPguJ7guIfguKjguYzguK3guJjguLTguITguKENCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4Lij4Lix4LiB4LiY4Lij4Lij4LihDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC4qOC4o+C4teC4meC4suC4hOC4hOC4sw0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYHguKrguIfguIjguLHguJnguJfguKPguYwNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmA4Lit4Li14LmI4Lii4Lih4LmA4Lin4LiKDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4iOC4leC4uOC5gOC4quC4mQ0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguJXguLHguYnguIfguYDguInguKXguLTguKHguIHguLjguKUNCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4Lib4Lix4LmJ4LiZ4Lia4Liz4Lij4Li44LiH4LiB4Li04LiIDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4o+C4uOC4iOC4tOC5guC4geC5hOC4qOC4og0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguKrguLLguITguKPguKPguLHguJXguJnguIHguLjguKUNCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4LmA4Lit4LiB4Lin4LiH4LiE4LmMDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC5gOC4geC4tOC4lOC4p+C4seC4kuC4meC4sg0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguIjguLLguKPguLjguIjguKPguJMNCivguKjguLTguKPguLTguKfguKPguKPguJMg4LiK4Li44LiV4Li04LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmMDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4lOC4suC4p+C4reC4uOC4lOC4oQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguJfguK3guIfguJ7guLnguKUNCivguKjguLTguKPguLTguKfguKPguKPguJMg4Lia4Lix4Lin4Lio4Lij4Li1DQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4nuC4o+C4sOC5gOC4l+C4ng0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKHguKvguLLguKjguLHguIHguJTguLTguYzguKjguLTguKPguLQNCivguKjguLTguKPguLTguKfguKPguKPguJMg4LmA4Lil4Li04Lio4Liq4Li04LiZ4Lit4Li44LiU4LihDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4qOC4o+C4teC4muC4seC4p+C5gOC4nOC4t+C5iOC4reC4mQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKrguLHguJnguJXguLTguYDguKfguIrguIrguIHguLjguKUNCivguKjguLTguKPguLTguKfguKPguKPguJMg4LmB4Liq4LiH4Liq4Li44Lij4Li14Lii4LmMDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4reC4tOC4meC4l+C4mOC4tOC5jOC4quC4seC4k+C4q+C5jA0KK+C4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5jCDguYHguIvguYjguYLguKXguYnguKcNCivguKjguLTguKPguLTguKfguLHguKXguKDguYwg4LiU4Liy4Lij4Liy4LiB4LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKjguLTguKPguLTguKjguLHguIHguJTguLTguYwg4LiI4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lio4Li04Lij4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5guC4o+C4iOC4meC5jOC4pOC4l+C4mOC4suC4geC4ow0KK+C4qOC4tOC4o+C4tOC4quC4uOC4giDguYDguKPguLXguYjguKLguKfguYDguKPguLfguK3guIfguKrguLjguIINCivguKjguLTguKPguLTguK3guKMg4LmA4Lit4Li14Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lio4Li04Lij4Li04LmA4Lie4LmH4LiNIOC5guC4geC5gOC4oeC4meC5gOC4reC4gQ0KK+C4qOC4tOC4o+C4tOC5gOC4nuC5h+C4jSDguJrguLjguI3guIHguLHguIfguKfguLLguJkNCivguKjguLTguKPguLTguYDguJ7guYfguI0g4Liq4Li04LiZ4LiY4Li44LiY4Liy4LiZDQor4Lio4Li04Lij4Li04LmC4Lij4LiI4LiZ4LmMIOC4quC5guC4peC4oOC4suC4ng0KK+C4qOC4tOC4peC4m+C4iuC4seC4oiDguYTguJfguKLguJvguKPguLDguYDguKrguKPguLTguJANCivguKjguLTguKXguJvguYzguIrguLHguKIg4LmA4LiI4Lij4Li04LiN4LmD4LiIDQor4Lio4Li04Lil4Lib4Lin4Lix4LiY4LiZ4LmMIOC4iuC4seC4ouC4nuC4seC4kuC4meC4suC4p+C4o+C4o+C4kw0KK+C4qOC4tOC4peC4siDguKPguLLguIrguK3guKDguLHguKINCivguKjguLTguKfguJ7guKMg4LmA4LiB4Lil4Li14Lii4Lin4Lit4Lij4Lij4LiE4LmA4LiU4LiKDQor4Lio4Li04Lin4Lie4LijIOC4ouC4tOC4meC4lOC4tQ0KK+C4qOC4tOC4p+C4peC4tSDguIjguLHguJnguJfguKHguLLguKgNCivguKjguLTguKfguLDguJ7guKUg4LiH4Liy4Lih4LiY4LiZ4Lin4LmC4Lij4LiX4Lix4LiiDQor4Lio4Li04Lin4Liy4Lie4LijIOC5geC4ouC4h+C4hOC4sw0KK+C4qOC4tOC4p+C4tOC4geC4suC4meC4leC4tOC5jCDguYTguKfguIjguKPguKPguKLguLINCivguKjguLTguKnguI7guYwg4LiJ4Lix4LiZ4LiX4Liy4Lij4Li04Lii4LiwDQor4Lio4Li14Lil4Lin4Lix4LiVIOC4reC4meC4sOC4mOC4o+C4o+C4oeC4quC4oeC4muC4seC4leC4tA0KK+C4qOC4uOC4guC4mOC4suC4nuC4seC4kuC4meC5jCDguIHguLHguJPguJHguYzguIrguLnguKrguLTguJkNCivguKjguLjguJ7guLTguKPguLHguJXguJnguYwg4Liq4Liz4Lij4Liy4LiN4Liq4Li44LiC4Lij4Lix4LiV4LiZ4LmMDQor4Lio4Li44Lig4LiB4Liy4LiN4LiI4LiZ4LmMIOC5geC4quC4p+C4h+C4qOC4seC4geC4lOC4tOC5jA0KK+C4qOC4uOC4oOC4geC4tOC4iCDguJ7guLHguJnguJjguYzguJrguLjguI3guYDguIHguLTguJQNCivguKjguLjguKDguIHguLTguIgg4Lit4Li04LiH4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4Liq4LiB4Li44LilDQor4Lio4Li44Lig4LiK4Lix4LiiIOC5geC4geC5ieC4p+C4oeC4teC4iuC4seC4og0KK+C4qOC4uOC4oOC4iuC4seC4oiDguIjguLTguJXguKfguLTguKrguLjguJfguJjguLTguYzguJ7guIfguKjguYwNCivguKjguLjguKDguIrguLHguKIg4LmB4LiL4LmI4LiI4Li24LiHDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4leC4uOC4peC4p+C4o+C4o+C4mOC4meC4sA0KK+C4qOC4uOC4oOC4iuC4seC4oiDguJnguLTguYjguKHguJnguKfguKUNCivguKjguLjguKDguIrguLHguKIg4Lie4LiH4Lio4LmM4LiK4Lix4Lii4Liq4Li04Lij4Li04LiB4Li44LilDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4oeC4seC5iOC4h+C5gOC4geC4teC4ouC4o+C4leC4tOC4quC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguKTguJfguJjguLTguYzguKXguLLguKLguLINCivguKjguLjguKDguIrguLHguKIg4Lin4Li04Lin4Lix4LiS4LiZ4Lih4LiH4LiE4Lil4LiB4Li44LilDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4quC4meC4reC4h+C4hOC4uOC4kw0KK+C4qOC4uOC4oOC4iuC4seC4oiDguYHguKrguIfguJ/guYnguLLguKrguIHguLjguKXguYTguJcNCivguKjguLjguKDguIrguLHguKIg4Lit4Li24LmJ4LiH4Liq4LiB4Li44LilDQor4Lio4Li44Lig4LiT4Lix4LiQIOC4nuC4o+C4q+C4oeC4nuC4tOC4o+C4tOC4ouC4suC4oOC4o+C4k+C5jA0KK+C4qOC4uOC4oOC4meC4tOC4leC4ouC5jCDguYLguIrguITguKPguLHguJXguJnguIrguLHguKINCivguKjguLjguKDguJ7guKMg4Lih4Lix4LiH4LiB4Lij4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Lio4Li44Lig4Lih4Liy4LiqIOC4lOC5iOC4suC4meC4nuC4suC4meC4tOC4ig0KK+C4qOC4uOC4oOC4oeC4tOC4leC4oyDguKrguLjguILguKjguKPguLUNCivguKjguLjguKDguKPguIfguITguYwg4Lil4Liw4LmC4Lin4LmJ4LiK4Lix4LiiDQor4Lio4Li44Lig4Lij4Lix4LiV4LiZ4LmMIOC4ouC4tOC5iOC4h+C4geC4p+C4teC4oeC4suC4meC4ng0KK+C4qOC4uOC4oOC4o+C4suC4oOC4o+C4k+C5jCDguJ7guLjguJfguJjguKPguLHguJXguJnguYwNCivguKjguLjguKDguKTguIHguKnguYwg4Lir4Lil4LmI4Lit4Lie4Li04Lij4Li04Lii4Liw4Lin4LiH4Lio4LmMDQor4Lio4Li44Lig4Lil4Lix4LiB4Lip4LiT4LmMIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4qOC4uOC4oOC4peC4seC4geC4qeC4k+C5jCDguYDguKXguLTguKjguKPguLHguJXguJnguYzguYDguJTguIrguLLguIHguLjguKUNCivguKjguLjguKDguKXguLHguITguJPguYwg4Lih4Li14Lih4Liy4LiBDQor4Lio4Li44Lig4Lin4Lij4Lij4LiTIOC5gOC4meC4leC4tOC4mOC4suC4lOC4sg0KK+C4qOC4uOC4oOC4p+C4o+C4o+C4kyDguKrguLjguKfguKPguKPguJPguYDguKXguLTguKgNCivguKjguLjguKDguKfguLHguJLguJnguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lin4LiH4Lio4LmMDQor4Lio4Li44Lig4Lin4Li04LioIOC4quC4tOC4o+C4tOC5gOC4geC4qeC4oeC4quC4uOC4gg0KK+C4qOC4uOC4oOC4qeC4oyDguJ7guKPguIjguLTguJXguYLguIHguKfguLTguJcNCivguKjguLjguKDguK3guKPguKPguJYg4LiZ4Lix4LiI4LiI4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lio4Li44Lig4Liy4Liq4Li04LiZ4Li1IOC4geC4seC4h+C4p+C4suC4peC5gOC4meC4suC4p+C4o+C4seC4leC4meC5jA0KK+C4qOC4uOC4oOC5guC4iuC4hCDguJjguJnguJvguLHguI3guIjguLLguKDguKPguJPguYwNCivguKjguLjguKPguJ7guIfguKnguYwg4LiE4LiK4Liy4LiK4Li14Lin4LiwDQor4Lio4Li44Lil4Li14Lie4LijIOC4quC4seC4meC4meC4sOC4geC4tOC4iA0KK+C5gOC4qOC4geC4quC4o+C4oyDguJfguK3guIfguKjguKPguLXguITguLMNCivguYDguKjguKPguKnguJDguIrguLHguKIg4Lio4Lix4LiB4LiU4Li04LmM4LmC4LiG4Lip4Li04LiVDQor4LmA4Lio4Lij4Lip4LiQ4LiyIOC4iOC4h+C4nuC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4qOC4p+C4lSDguKjguKPguLXguJvguLHguI3guI3guLINCivguYLguKjguKDguLTguJTguLIg4LmA4LiV4LiK4Liw4Lio4Lij4Li04LiZ4LiX4Lij4LmMDQor4LmC4Lio4Lij4Lii4LiyIOC4qOC4uOC4oOC4geC4o+C5geC4quC4h+C4l+C4reC4hw0KK+C4quC4geC4mSDguKHguLXguIHguLHguIfguKfguLLguKUNCivguKrguIHguJnguJjguYwg4Lit4Lij4Li04Lii4Lih4LiH4LiE4Lil4Liq4LiB4Li44LilDQor4Liq4LiB4LilIOC4iuC4ueC5gOC4geC4qQ0KK+C4quC4geC4pSDguYDguJvguLXguYjguKLguKHguKfguLTguKHguKUNCivguKrguIHguKUg4Lil4Li14Lil4Liy4LiC4LiI4Lij4LiI4Li04LiVDQor4Liq4LiB4LilIOC4quC4uOC4o+C4hOC4uOC4m+C4leC5jA0KK+C4quC4geC4peC4p+C4o+C4o+C4kyDguKfguLLguKrguLTguJnguJnguJfguYwNCivguKrguIHguLLguKfguKPguLHguJXguJnguYwg4Lit4Lix4LiE4LiE4Li14LmA4LiU4LiKDQor4Liq4LiB4Li44LiT4LiyIOC4o+C4uOC4iOC4tOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4s+C4iOC4ow0KK+C4quC4geC4uOC4pSDguJnguITguKPguIrguLHguKINCivguKrguIHguLjguKUg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4LmI4Liy4LihDQor4Liq4LiB4Li44Lil4Lij4Lix4LiV4LiZ4LmMIOC4peC4seC4l+C4mOC5jOC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4quC4h+C4geC4o+C4suC4meC4leC5jCDguIjguLjguJPguJPguJfguLHguKjguJnguYwNCivguKrguIfguIHguKPguLLguJnguJXguYwg4Lio4Li04Lij4Li04Lie4Liy4LiZ4Li04LiKDQor4Liq4LiH4LiE4Lij4Liy4LihIOC4ieC4tOC4oeC4nuC4quC4uOC4l+C4mA0KK+C4quC4h+C4hOC4o+C4suC4oSDguKjguKPguLXguKrguLjguIINCivguKrguIfguJog4LiH4Liy4Lih4Lic4LmI4Lit4LiHDQor4Liq4LiH4LiaIOC4meC4seC4meC4l+C4guC4p+C5ieC4suC4hw0KK+C4quC4h+C4miDguYDguKLguYfguJnguKTguJTguLUNCivguKrguIfguJog4Lit4LmJ4LiZ4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4LiH4Lin4LiZIOC5geC4geC4peC5ieC4p+C4geC4peC5ieC4sg0KK+C4quC4h+C4p+C4mSDguIjguLHguJnguJfguKPguK3guLHguIHguKnguKMNCivguKrguIfguKfguJkg4LiK4Li54LiV4Lij4Liw4LiB4Li54LilDQor4Liq4LiH4Lin4LiZIOC4leC4seC4meC4quC4uOC4guC4suC4meC4seC4meC4l+C5jA0KK+C4quC4h+C4p+C4mSDguJnguLjguIrguKPguLXguKfguKPguKPguJMNCivguKrguIfguKfguJkg4Lie4LiH4Lip4LmM4Lir4LiH4Lip4LmMDQor4Liq4LiH4Lin4LiZIOC4oOC4suC4o+C4sOC5guC4gg0KK+C4quC4h+C4p+C4mSDguKPguLjguJPguKDguLHguKINCivguKrguIfguKfguJkg4Lin4Li04Lih4Lil4Liq4Li44LiX4LiY4Li04LiB4Li44LilDQor4Liq4LiH4Lin4LiZIOC4quC4h+C4p+C4meC5gOC4leC4iuC4sOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4h+C4p+C4mSDguKrguLjguKfguLTguJfguKLguLLguKDguKPguJPguYwNCivguKrguIfguKfguJkg4Lit4Lix4LiH4LiB4Li44Lin4Lij4LiB4Li44LilDQor4Liq4LiH4Lin4LiZ4Lij4Lix4LiB4Lip4LmMIOC5hOC4leC4o+C4meC4suC4iOC4sg0KK+C4quC4h+C4p+C4meC4qOC4o+C4tSDguKDguLnguYjguIfguLLguKENCivguKrguIfguKfguJnguKjguLHguIHguJTguLTguYwg4Lil4Li04LiC4LiZ4Liy4LiZ4LiZ4LiX4Lin4LiH4Lio4LmMDQor4Liq4LiH4Lix4LiUIOC4iOC4seC4meC4l+C4o+C5jOC5geC4leC5iQ0KK+C4quC4h+C4seC4lCDguJvguKPguLTguIHguYDguJ7guIrguKPguYwNCivguKrguIfguLHguJQg4Lin4Lix4LiZ4LiT4Li44Lib4LiW4Lix4Lih4Lig4LmMDQor4Liq4LiH4Lix4LiUIOC5gOC4reC4teC5iOC4ouC4oeC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4quC4h+C5iOC4siDguITguIfguKrguLPguKPguLLguI0NCivguKrguIfguYjguLIg4LiJ4Lin4Li14Lib4Lil4Lix4LmI4LiHDQor4Liq4LiH4LmI4LiyIOC5geC4lOC4h+C4lOC4teC5gOC4peC4tOC4qA0KK+C4quC4h+C5iOC4siDguJjguKPguKPguKHguKLguLTguYjguIfguKLguIcNCivguKrguIfguYjguLIg4Lib4Liy4LiZ4Liw4LiZ4Li04LilDQor4Liq4LiH4LmI4LiyIOC4oOC4suC4qeC4tOC4lQ0KK+C4quC4h+C5iOC4siDguKPguLfguYjguJnguYTguJfguKINCivguKrguIfguYjguLIg4Lin4Li44LiS4Li04Lih4LiH4LiE4Lil4LiK4Lix4LiiDQor4Liq4LiH4LmI4LiyIOC4quC4suC4q+C4o+C5iOC4suC4og0KK+C4quC4h+C5iOC4siDguKvguK3guKHguKrguKHguJrguLHguJXguLQNCivguKrguIfguLjguYjguJkg4LiL4Li34LmI4Lit4Lih4Liy4LiBDQor4Liq4LmI4LiH4Lio4Lij4Li1IOC5geC4geC5ieC4p+C4iOC4seC4meC4l+C4o+C5jA0KK+C4quC5iOC4h+C4qOC4seC4geC4lOC4tOC5jCDguIHguKPguJPguJvguIHguKPguJPguYwNCivguKrguIjguYrguKfguJUg4LiK4Liy4Lij4LmM4LilDQor4Liq4LiUIOC4nuC4uOC5iOC4oeC4meC4tOC4hOC4oQ0KK+C4quC4lOC4qOC4o+C4tSDguJ7guLjguYjguKHguYDguIjguKPguLTguI0NCivguKrguJTguLLguKfguKPguKPguJMg4Lia4Li44LiN4LmA4LiI4Lij4Li04LiNDQor4Liq4LiU4LmD4LiqIOC4ouC4uOC4l+C4mOC4meC4suC4quC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4quC4leC4teC5gOC4n+C4mSDguK7guLLguKcNCivguKrguJbguLLguJ7guKMg4LiE4Lix4Lih4Lig4Li04Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4LiW4Liy4Lie4LijIOC4iuC4ueC4p+C4h+C4qOC5jOC5gOC4leC4tOC4oQ0KK+C4quC4luC4suC4nuC4oyDguJnguLXguKPguJnguLLguJbguKfguIfguKjguYwNCivguKrguJbguLLguJ7guKMg4Lie4Li24LmI4LiH4Lie4Lij4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Liq4LiW4Liy4Lie4LijIOC5gOC4peC5ieC4suC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4qOC4o+C4tQ0KK+C4quC4luC4suC4nuC4oyDguKrguLTguJnguJjguLjguJnguLLguKfguLINCivguKrguJbguLLguJ7guKMg4Lit4Li44LiB4LiB4Li44LiP4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4LiW4Li04LiV4Lie4LiH4Lio4LmMIOC4oeC4meC4suC4m+C4o+C4suC4k+C4tQ0KK+C4quC4luC4tOC4leC4ouC5jCDguYPguIjguKrguLjguJfguJjguLTguYwNCivguKrguJbguLTguJXguKLguYwg4LiZ4Liy4Lin4Li44LiS4Li0DQor4Liq4LiW4Li04LiV4Lii4LmMIOC5hOC4oeC5ieC4h+C4tOC5ieC4pw0KK+C4quC4luC4tOC4leC4ouC5jCDguKrguLTguIfguKvguYzguYLguJUNCivguKrguJbguLTguKPguJ7guLHguJnguJjguLjguYwg4LmA4LiB4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4LiZ4LiK4Lix4LiiIOC4nuC4tOC4o+C4uOC4k+C4quC4suC4ow0KK+C4quC4meC4l+C4tOC4qCDguKrguIHguLjguKXguIHguJnguIENCivguKrguJnguJjguKLguLIg4LmA4LiU4LmI4LiZ4Lin4Lij4LiB4Li44LilDQor4Liq4LiZ4LiY4Lii4LiyIOC5guC4nuC4mOC4tOC5jOC4meC5ieC4reC4og0KK+C4quC4meC4mOC4ouC4siDguYDguKrguLXguKLguIfguKfguKPguLLguJnguJnguJfguYwNCivguKrguJnguJjguLQg4LmA4Lil4Li34LmI4Lit4LiZ4LiJ4Lin4Li1DQor4Liq4LiZ4LiY4Li04Lii4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC4p+C4o+C4suC4h+C4geC4ueC4ow0KK+C4quC4meC4oSDguYLguJXguKPguLHguIHguKnguLLguKrguIHguLjguKUNCivguKrguJnguKfguJkg4LiJ4Li04Lih4LiZ4Liy4LiE4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4LiZ4Lit4LiHIOC4iOC4seC4meC4l+C4o+C4qOC4seC4nuC4l+C5jA0KK+C4quC4meC4reC4hyDguJXguLHguKHguJ7guLHguJnguJjguLjguKrguIHguLjguKUNCivguKrguJnguK3guIcg4Lia4Li44LiN4Lih4Li14Lik4LiX4LiY4Li04LmMDQor4Liq4LiZ4Lit4LiHIOC5guC4nuC4mOC4tA0KK+C4quC4meC4reC4hyDguKXguLXguJnguLDguKfguLHguJUNCivguKrguJnguK3guIcg4Liq4Li04LiZ4LmA4Lia4LiN4LiI4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4LiZ4Lit4LiHIOC4reC4uOC5iOC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4meC4seC5iOC4mSDguIHguKTguKnguJTguLLguJjguLTguIHguLLguKMNCivguKrguJnguLHguYjguJkg4LmC4LiE4LiB4LiC4LizDQor4Liq4LiZ4Lix4LmI4LiZIOC4iuC4t+C5iOC4meC5gOC4nOC4t+C4reC4gQ0KK+C4quC4meC4seC5iOC4mSDguJfguK3guIfguKrguKHguJrguLHguJXguLQNCivguKrguJnguLHguYjguJkg4Lia4Li44LiN4Lih4Liy4LiBDQor4Liq4LiZ4Lix4LmI4LiZIOC4nuC4tOC4geC4uOC4peC5geC4ouC5ieC4oQ0KK+C4quC4meC4seC5iOC4mSDguKPguLHguIHguKrguKHguKLguLINCivguKrguJnguLHguYjguJkg4Lio4Lij4Li14Lil4Liw4Lih4LmJ4Liy4LiiDQor4Liq4LiZ4Lix4LmI4LiZIOC4quC4uOC4guC4iuC5iOC4p+C4og0KK+C4quC4meC4seC5iOC4mSDguK3guJrguYDguIrguKINCivguKrguJnguLLguJkg4LiI4Lix4LiZ4LiX4Lij4LmA4Lil4Li04LioDQor4Liq4LiZ4Liy4LihIOC4nuC4peC4reC4ouC4qOC4tOC4o+C4tA0KK+C4quC4meC4tOC4lyDguYHguIHguYnguKfguJ7guKUNCivguKrguJnguLTguJcg4LiI4Lix4LmI4LiZ4Lib4Lij4Liw4LiU4Lix4LiaDQor4Liq4LiZ4Li04LiXIOC4lOC4uOC4qeC4j+C4teC5guC4q+C4meC4lA0KK+C4quC4meC4tOC4lyDguYHguJfguYjguIfguJfguK3guIcNCivguKrguJnguLTguJcg4Lia4Li44LiN4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4LiZ4Li04LiXIOC4nuC5iOC4p+C4h+C4nuC4h+C4qeC5jA0KK+C4quC4meC4tOC4lyDguKHguLLguJvguKPguLDguIjguKfguJoNCivguKrguJnguLTguJcg4Lil4Li54LiB4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4LiZ4Li04LiXIOC4quC4leC4oeC4q+C4suC4iuC4peC4suC4quC4tOC4meC4mOC4uOC5jA0KK+C4quC4meC4tOC4lyDguYHguKrguIfguJfguK3guIcNCivguKrguJnguLTguJcg4Lit4Li44LiU4Lih4LiY4Li14Lij4LiB4Li44LilDQor4Liq4LiZ4Li44LmI4LiZIOC5gOC4iuC4t+C5ieC4reC4meC4uOC5iOC4mQ0KK+C4quC4m+C4seC4mSDguJ7guLHguIrguKPguLLguKPguLHguJXguJnguYwNCivguKrguKDguLLguK3guIfguITguYzguIHguLLguKPguKXguLnguIHguIjguYnguLLguIfguYHguKPguIfguIfguLLguJnguYHguKvguYjguIfguJvguKMg4Liq4Lig4Liy4Lit4LiH4LiE4LmM4LiB4Liy4Lij4Lil4Li54LiB4LiI4LmJ4Liy4LiH4LmB4Lij4LiH4LiH4Liy4LiZ4LmB4Lir4LmI4LiH4Lib4LijDQor4Liq4LihIOC4meC5ieC4reC4ouC4m+C4o+C4teC4iuC4sg0KK+C4quC4oSDguKfguKPguKPguJPguJvguKPguLDguKDguLINCivguKrguKHguIHguKHguKUg4Lih4Liw4LmC4LiZ4LiB4Li04LiIDQor4Liq4Lih4LiE4LilIOC5gOC4iuC4t+C5ieC4reC5gOC4oeC4t+C4reC4h+C4l+C4suC4mQ0KK+C4quC4oeC4hOC4p+C4oyDguIjguLHguJnguJfguKPguYzguJnguLjguYnguKINCivguKrguKHguITguKfguKMg4LmB4LiL4LmI4LmB4LiV4LmJDQor4Liq4Lih4LiE4Lin4LijIOC4meC4seC4ouC4qOC4tOC4o+C4tA0KK+C4quC4oeC4hOC4p+C4oyDguJ7guLHguJLguJnguJ7guIfguKnguYzguYTguJ7guJrguLnguKXguKLguYwNCivguKrguKHguITguKfguKMg4Lij4Lix4LiB4LiB4Lil4Lix4LiUDQor4Liq4Lih4LiE4Lin4LijIOC4qOC4o+C4teC4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4oeC4hOC4p+C4oyDguYTguKrguKLguKrguKHguJrguLHguJXguLQNCivguKrguKHguITguLTguIQg4Lin4Lix4LiS4LiZ4LmA4Liq4Lij4Li14Lin4LiH4Lio4LmMDQor4Liq4Lih4LiE4Li04LiUIOC5geC4geC5ieC4p+C4iuC4tOC4h+C4lOC4p+C4hw0KK+C4quC4oeC4hOC4tOC4lCDguIjguK3guJnguKrguKHguIjguLTguJXguJXguYwNCivguKrguKHguITguLTguJQg4LmD4LiI4Lit4Li04LmI4LihDQor4Liq4Lih4LiE4Li04LiUIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4quC4oeC4hOC4tOC4lCDguJXguLHguYnguIfguKjguLTguKPguLTguJfguKPguLHguJ7guKLguYwNCivguKrguKHguITguLTguJQg4LiX4Liw4Lij4Lix4LiH4Lio4Lij4Li1DQor4Liq4Lih4LiE4Li04LiUIOC4meC4tOC4hOC4oeC5gOC4guC4leC4leC5jA0KK+C4quC4oeC4hOC4tOC4lCDguYPguJrguKHguIfguITguKUNCivguKrguKHguITguLTguJQg4Lie4Lij4LmJ4Lit4Lih4Lih4Li54LilDQor4Liq4Lih4LiE4Li04LiUIOC5gOC4nuC5h+C4h+C4nuC4suC4lA0KK+C4quC4oeC4hOC4tOC4lCDguKHguLnguKXguJfguK3guIfguIrguLjguJkNCivguKrguKHguITguLTguJQg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4Liq4Lih4LiE4Li04LiUIOC4p+C4seC4meC4p+C4sOC4meC4sg0KK+C4quC4oeC4hOC4tOC4lCDguKjguLTguKPguLTguKPguLHguJXguJnguKfguLjguJLguLQNCivguKrguKHguITguLTguJQg4Liq4Li04LiH4Lir4LmM4Liq4Liz4Lij4Liy4LiNDQor4Liq4Lih4LiE4Li04LiUIOC5geC4quC4h+C4meC4meC4l+C5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4oeC4hOC4tOC4lCDguK3guYnguJnguYDguJvguKPguKENCivguKrguKHguITguLTguJQg4Lit4Li44LiZ4LiX4Lij4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Lih4LiI4Lix4LiZ4LiX4Lij4LmMIOC5gOC4q+C4o+C4teC4ouC4jeC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4quC4oeC4iOC4tOC4lSDguIjguLHguJnguJfguLjguKHguLLguIHguKMNCivguKrguKHguIjguLTguJUg4LiV4Lix4LiT4LiR4Liq4Li44LiX4LiY4Li04LmMDQor4Liq4Lih4LiI4Li04LiVIOC4muC4uOC4jeC4l+C4p+C4tQ0KK+C4quC4oeC4iOC4tOC4lSDguYDguJ7guYfguIfguKrguKfguJkNCivguKrguKHguIjguLTguJUg4Lin4Lij4Lij4LiT4Lij4Lix4LiB4Lip4LmMDQor4Liq4Lih4LiI4Li04LiVIOC4quC4uOC4l+C4mOC4tOC4oeC4suC4peC4ouC5jA0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguIHguJnguIHguIrguLHguKLguJvguKPguLLguYLguKHguJfguKLguYwNCivguKrguKHguIjguLTguJXguJXguYwg4LmB4LiB4LmJ4Lin4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4iOC4tOC4leC4leC5jOC4quC4uOC4l+C4seC4qOC4meC5jA0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguIrguLTguJnguKPguLLguIoNCivguKrguKHguIjguLTguJXguJXguYwg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4luC4tOC5iOC4meC4luC4meC4reC4oQ0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguJjguLHguKHguKHguKPguLHguITguITguLTguJUNCivguKrguKHguIjguLTguJXguJXguYwg4LmA4Lia4LiZ4LiB4Li44LmC4Lij4LmC4LihDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4nuC4peC4suC4oeC4tOC4leC4ow0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKDguLnguKHguLTguIjguLTguJXguK3guKHguKMNCivguKrguKHguIjguLTguJXguJXguYwg4Lij4Liy4Lih4Lio4LijDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4p+C4iuC4tOC4o+C4p+C4k+C4tOC4iuC4geC4tOC4iA0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKjguLLguKrguJXguKPguYzguKrguLjguIINCivguKrguKHguIjguLTguJXguJXguYwg4Liq4Li04LiH4Lir4LiyDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4q+C4oeC4ueC5iOC4nOC4tuC5ieC4hw0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguK3guLTguIfguITguLDguKfguLHguJUNCivguKrguKHguIjguLTguJXguKMg4LmA4LiB4LiV4Li44LiV4Li04Lih4LiwDQor4Liq4Lih4LiI4Li04LiV4LijIOC4iOC4o+C4o+C4ouC4sg0KK+C4quC4oeC4iOC4tOC4leC4oyDguYPguIjguKfguLHguIfguYLguKXguIENCivguKrguKHguIjguLTguJXguKMg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Liq4Lih4LiI4Li04LiV4LijIOC4l+C4reC4h+C4quC4uOC4oOC4ow0KK+C4quC4oeC4iOC4tOC4leC4oyDguYDguJnguLXguKLguKHguKjguLTguKPguLQNCivguKrguKHguIjguLTguJXguKMg4Lib4Li04LmI4LiZ4Lih4LiT4Li1DQor4Liq4Lih4LiI4Li04LiV4LijIOC4nuC4uOC5iOC4oeC4m+C4o+C4sOC4lOC4seC4mg0KK+C4quC4oeC4iOC4tOC4leC4oyDguYDguKHguLXguYjguKLguIfguJrguLHguKcNCivguKrguKHguIjguLTguJXguKMg4LmA4Lil4Li04Lio4LiW4Lin4Li04Lil4LiI4Li04LijDQor4Liq4Lih4LiI4Li04LiV4LijIOC4qOC4o+C4teC4quC4uOC4p+C4k+C4tOC4iuC4geC4uOC4pQ0KK+C4quC4oeC4iOC4tOC4leC4oyDguKrguLTguJnguYDguJ7guYfguIcNCivguKrguKHguIjguLTguJXguKMg4Lir4Lih4Lix4LiU4LmC4LiZ4LmK4LiVDQor4Liq4Lih4LiI4Li04LiV4Lij4LiyIOC4iOC4seC4meC5guC4oOC4hOC4sg0KK+C4quC4oeC4iOC4tOC4leC4o+C5jCDguInguLHguJXguKPguYzguJfguK3guIcNCivguKrguKHguIjguLTguJXguKPguYwg4LiX4Li04Lie4Lii4LmM4Lib4Lij4Liw4Lig4Liy4LmB4Lii4LmJ4LihDQor4Liq4Lih4LiI4Li04LiV4Lij4LmMIOC4nuC4tuC5iOC4h+C4ouC4meC4leC5jA0KK+C4quC4oeC4iOC4tOC4leC4o+C5jCDguKfguLHguJLguJnguYDguIjguKPguLTguI3guJ7guKMNCivguKrguKHguIjguLTguJXguKPguYwg4Lir4Lin4Lix4LiH4LiU4Li04Lil4LiBDQor4Liq4Lih4LiI4Li04LiZ4LiV4LiZ4LiyIOC4p+C4seC4h+C4l+C4reC4hw0KK+C4quC4oeC4ieC4p+C4tSDguYDguKvguKHguLDguKfguLTguKPguLTguKLguLLguJ7guKPguKfguLHguJLguJnguLINCivguKrguKHguIrguLHguKIg4LiB4Li04LiI4LmA4Lil4Li04Lio4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Lih4LiK4Lix4LiiIOC4hOC4peC5iOC4reC4h+C4mOC4meC4geC4tOC4iA0KK+C4quC4oeC4iuC4seC4oiDguIjguLTguKPguIrguKLguLLguIfguIHguLnguKMNCivguKrguKHguIrguLHguKIg4LiK4Lix4Lii4LiI4Lij4Li54LiN4Lie4LijDQor4Liq4Lih4LiK4Lix4LiiIOC5hOC4iuC4ouC4qOC4o+C4teC4mOC4o+C4o+C4oeC4hOC4uOC4kw0KK+C4quC4oeC4iuC4seC4oiDguYHguIvguYjguYDguKXguLXguYjguKLguIcNCivguKrguKHguIrguLHguKIg4LiV4Lix4LmJ4LiH4LiZ4Li04Lij4Lix4LiZ4LiU4LijDQor4Liq4Lih4LiK4Lix4LiiIOC4l+C4o+C4h+C4ruC4hw0KK+C4quC4oeC4iuC4seC4oiDguJnguKPguYDguKjguKPguKnguJDguYzguYLguKjguKDguJMNCivguKrguKHguIrguLHguKIg4LmC4Lia4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Liq4Lih4LiK4Lix4LiiIOC4nuC4o+C4oeC4h+C4hOC4peC4quC4uOC4gg0KK+C4quC4oeC4iuC4seC4oiDguJ/guLjguYnguIfguKrguLTguKPguLTguKPguLHguJXguJnguYwNCivguKrguKHguIrguLHguKIg4Lii4Li44LiX4LiY4LiZ4Liy4Lig4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Lih4LiK4Lix4LiiIOC4peC5ieC4p+C4meC5g+C4iOC4quC4meC4mOC4tOC5jA0KK+C4quC4oeC4iuC4seC4oiDguKfguIfguKjguYzguJ7guLHguJnguJjguYzguIfguLLguKENCivguKrguKHguIrguLHguKIg4Lin4Li04Lio4Lin4Liq4Lih4Lig4LieDQor4Liq4Lih4LiK4Lix4LiiIOC4qOC4tOC4peC4m+C4quC4suC4mOC4tOC4lQ0KK+C4quC4oeC4iuC4seC4oiDguKrguLLguKLguJTguYnguKfguIcNCivguKrguKHguIrguLHguKIg4Liq4Li44LmC4LiK4LiV4Li04LiB4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4LiK4Lix4LiiIOC5guC4q+C4leC4o+C4iOC4tOC4leC4ow0KK+C4quC4oeC4iuC4seC4oiDguK3guLLguKDguLLguKfguLHguIrguJnguYwNCivguKrguKHguIrguLLguI0g4Lil4Li14Lih4Liy4Liq4Lin4Lix4Liq4LiU4Li04LmM4LiB4Li44LilDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4iOC4tOC4leC4leC4p+C4tOC4quC4uOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4iuC4suC4leC4tCDguJTguKXguKLguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKrguKHguIrguLLguJXguLQg4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmM4Lin4LiH4Lio4LmM4Lin4Liy4LiZDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC5gOC4nuC5h+C4jeC5gOC4quC4h+C4teC5iOC4ouC4oQ0KK+C4quC4oeC4iuC4suC4leC4tCDguYDguKXguLTguKjguJjguKPguKPguKHguJnguLLguJYNCivguKrguKHguIrguLLguJXguLQg4Liq4Lix4LiZ4LiV4Li04LiZ4Lij4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4reC5iOC4p+C4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4iuC4suC4oiDguIHguKXguJ7guLTguKrguLjguJfguJjguLTguYwNCivguKrguKHguIrguLLguKIg4LiB4Liy4LiN4LiI4LiZ4LiB4Lix4LiZ4LiV4Li04LiB4Liy4LijDQor4Liq4Lih4LiK4Liy4LiiIOC4geC4tOC4leC4leC4tOC5gOC4peC4tOC4qOC5hOC4nuC4qOC4suC4pQ0KK+C4quC4oeC4iuC4suC4oiDguYDguIHguLTguJTguYDguKPguLfguK3guIcNCivguKrguKHguIrguLLguKIg4LmB4LiB4LmJ4Lin4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4guC4uOC4meC4p+C4tOC5gOC4qOC4qg0KK+C4quC4oeC4iuC4suC4oiDguITguYnguLLguJfguLHguJnguYDguIjguKPguLTguI0NCivguKrguKHguIrguLLguKIg4LmC4LiG4Lip4Li04LiV4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4iOC4h+C5gOC4l+C4tOC4lOC4l+C4ueC4meC4quC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguIjguLHguJnguJfguKPguJvguKPguLDguJfguLTguJkNCivguKrguKHguIrguLLguKIg4LiI4Li04LiV4LiV4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4iOC4uOC4meC5gOC4iOC4t+C4reC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguIjguKnguI7guLLguJnguKDguLLguKfguIfguKjguYwNCivguKrguKHguIrguLLguKIg4LiJ4Lix4LiV4Lij4Lih4LiH4LiE4Lil4LmA4LiB4Lip4LihDQor4Liq4Lih4LiK4Liy4LiiIOC4iuC4peC4nuC4tOC5hOC4peC4nuC4h+C4qOC5jA0KK+C4quC4oeC4iuC4suC4oiDguIrguLLguI3guKrguKHguK3guJkNCivguKrguKHguIrguLLguKIg4LiK4Li44LmI4Lih4LmE4LiK4Lii4Lie4Lik4LiB4Lip4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC5guC4iuC4hOC4quC4tOC4o+C4tOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguITguLkNCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguK7guYnguK0NCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4LmA4Liu4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC5guC4peC5ieC4pw0KK+C4quC4oeC4iuC4suC4oiDguJTguLXguKHguIfguITguKXguKrguLjguIINCivguKrguKHguIrguLLguKIg4LiV4Lij4Liw4LiB4Li54Lil4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4Liq4Lih4LiK4Liy4LiiIOC4leC4seC5ieC4h+C4m+C4meC4tOC4mOC4suC4meC4lOC4tQ0KK+C4quC4oeC4iuC4suC4oiDguJXguLHguJnguYDguIjguKPguLTguI0NCivguKrguKHguIrguLLguKIg4LmA4LiV4Li14LmJ4Lii4Lia4Lix4Lin4LmB4LiB4LmJ4LinDQor4Liq4Lih4LiK4Liy4LiiIOC4luC4tOC4o+C5guC4quC4leC4luC4tOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4oeC4iuC4suC4oiDguJfguK3guIfguKvguKXguYjguK0NCivguKrguKHguIrguLLguKIg4LmA4LiX4Lit4LiU4Lin4LiH4Lio4LmM4Lin4Lij4LiB4Li44LilDQor4Liq4Lih4LiK4Liy4LiiIOC4mOC4o+C4o+C4oeC4geC4tOC4iOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4iuC4suC4oiDguJjguYDguJnguKjguJnguLTguJXguKLguYwNCivguKrguKHguIrguLLguKIg4LiZ4Liy4LiE4Lie4Lil4Lix4LmJ4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC4meC4tOC4peC4p+C4k+C4tOC4iuC4ouC5jA0KK+C4quC4oeC4iuC4suC4oiDguJrguLPguKPguLjguIfguKfguIfguKjguYwNCivguKrguKHguIrguLLguKIg4Lia4Li44LiN4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4m+C4o+C4sOC4geC4suC4ouC5guC4geC4p+C4tOC4lw0KK+C4quC4oeC4iuC4suC4oiDguJvguKXguLfguYnguKHguIjguLTguJUNCivguKrguKHguIrguLLguKIg4Lib4Li44LiT4LiT4Lij4Li44LiI4Liy4Lin4LiH4Lip4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4nOC4t+C5iOC4reC4meC4iOC4suC4hw0KK+C4quC4oeC4iuC4suC4oiDguJ7guKPguJbguLTguKPguLDguKHguIfguITguKUNCivguKrguKHguIrguLLguKIg4Lie4Lin4LiH4LiX4Lit4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4tOC4iOC4luC4suC4p+C4ow0KK+C4quC4oeC4iuC4suC4oiDguJ7guLjguYjguKHguKrguLjguIINCivguKrguKHguIrguLLguKIg4LmC4Lie4LiY4Li04LmM4LiH4Liy4LihDQor4Liq4Lih4LiK4Liy4LiiIOC4oOC4seC4l+C4o+C4suC4h+C4geC4ueC4ow0KK+C4quC4oeC4iuC4suC4oiDguKHguJPguLXguYDguILguLXguKLguKcNCivguKrguKHguIrguLLguKIg4Lih4Liy4Lij4Li14LiB4Lix4LiZDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4oeC4huC5gOC4meC4og0KK+C4quC4oeC4iuC4suC4oiDguYDguKLguYfguJnguYPguIjguYDguInguLfguYjguK3guKINCivguKrguKHguIrguLLguKIg4Lij4Lix4LiV4LiZ4LiK4Liy4LiV4Li04LiB4Li44LilDQor4Liq4Lih4LiK4Liy4LiiIOC4o+C4uOC5iOC4h+C4qOC4o+C4teC4qOC4qOC4tOC4mOC4ow0KK+C4quC4oeC4iuC4suC4oiDguYLguKPguIjguJnguKfguKPguYLguKrguKDguJMNCivguKrguKHguIrguLLguKIg4Lil4Liy4Lig4Lit4Li44LiU4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4peC4teC5ieC4peC4seC4l+C4mOC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4oeC4iuC4suC4oiDguYDguKXguLTguKjguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgNCivguKrguKHguIrguLLguKIg4Lin4LiH4Lio4LmM4LiV4Lij4Liw4LiB4Li54Lil4LiI4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4h+C4qeC5jOC4q+C4tOC4o+C4seC4jeC4p+C4suC4meC4tOC4ig0KK+C4quC4oeC4iuC4suC4oiDguKfguYjguK3guIfguKfguIfguKjguYzguKjguKPguLUNCivguKrguKHguIrguLLguKIg4Lin4Liy4LiZ4Li04LiK4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4tOC4qeC4k+C4uOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4iuC4suC4oiDguKjguKPguJrguKPguKPguIjguIcNCivguKrguKHguIrguLLguKIg4Lio4Lij4Li14Lin4Li04LmE4LilDQor4Liq4Lih4LiK4Liy4LiiIOC4qOC4tOC4o+C4tOC4mOC4teC4o+C4suC5gOC4iOC4qeC4juC5jA0KK+C4quC4oeC4iuC4suC4oiDguKjguLjguKDguKXguLHguIHguKnguJPguYzguKfguLHguIjguJnguLANCivguKrguKHguIrguLLguKIg4Liq4LiZ4Liq4LiH4LmI4LiyDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4p+C5iOC4suC4h+C4meC5ieC4reC4oeC4iOC4tOC4leC4leC5jA0KK+C4quC4oeC4iuC4suC4oiDguKrguLHguKLguKXguLDguKHguLHguKINCivguKrguKHguIrguLLguKIg4Liq4Li04LiZ4LiY4Li44Lib4Lij4Liw4Lig4LiyDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4uOC4guC4meC4seC4meC4l+C4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4iuC4suC4oiDguKrguLjguJfguJjguLTguILguLLguKcNCivguKrguKHguIrguLLguKIg4Liq4Li44Lij4LmA4LiU4LiK4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4quC4suC4q+C4hw0KK+C4quC4oeC4iuC4suC4oiDguKvguIfguKnguYzguKPguLHguJXguJnguKfguLTguIjguLTguJXguKMNCivguKrguKHguIrguLLguKIg4Lir4Lit4Lih4LiB4Lij4Liw4Lir4Lil4LiaDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4qOC4tOC4o+C4tOC4o+C4seC4h+C4qeC4tQ0KK+C4quC4oeC4iuC4suC4oiDguK3guJnguLHguJnguJXguYzguKrguLjguILguJrguKPguKPguJMNCivguKrguKHguIrguLLguKIg4Lit4Lii4Li54LmI4LmA4LiB4Li04LiUDQor4Liq4Lih4LiK4Liy4LiiIOC4reC4seC4h+C4geC4ueC4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4iuC4suC4oiDguK3guLLguIjguKvguLLguI0NCivguKrguKHguIrguLLguKIg4Lit4Li04LmI4Lih4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4reC4geC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguYDguK3guLfguYnguK3guYDguIHguKnguKHguKrguLTguJkNCivguKrguKHguI3guLIg4LiK4Liy4LiN4LiB4Lij4Liw4Lia4Li14LmIDQor4Liq4Lih4LiU4Li1IOC4p+C5iOC4reC4h+C5hOC4p+C4p+C4k+C4tOC4iuC4geC4uOC4pQ0KK+C4quC4oeC4luC4p+C4tOC4pSDguIjguLHguJnguJfguKPguYzguKrguLTguKPguLTguJ7guIjguJnguYwNCivguKrguKHguJbguKfguLTguKUg4LiX4Lit4LiH4LmA4Lir4LiH4LmJ4LiyDQor4Liq4Lih4LiW4Lin4Li04LilIOC4nuC4o+C4q+C4oeC4nuC4h+C4qeC5jA0KK+C4quC4oeC4luC4p+C4tOC4pSDguYDguKXguLXguYnguKLguKfguJ7guKPguJvguKPguLDguKrguLLguJcNCivguKrguKHguJbguKfguLTguKUg4LmB4Liq4LiH4LiZ4Li04Lil4Lio4Li04Lij4Li0DQor4Liq4Lih4LiX4LiaIOC4oOC4ueC5iOC4oeC4h+C4geC4uOC4juC4iuC4seC4og0KK+C4quC4oeC4l+C4o+C4hyDguILguK3guJ7guJrguKrguLjguIINCivguKrguKHguJfguKPguIcg4LmA4LiI4Lij4Li04LiN4Lii4Li04LmI4LiHDQor4Liq4Lih4LiX4Lij4LiHIOC4leC4seC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4l+C4o+C4hyDguYDguJnguLfguYjguK3guIfguIjguLLguIHguJnguLLguIQNCivguKrguKHguJfguKPguIcg4Lie4Liy4LiZ4Li04LiK4Lii4Liw4Lih4LiZ4LiV4Lij4Li1DQor4Liq4Lih4LiX4Lij4LiHIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4qOC4tOC4peC4m+C5jA0KK+C4quC4oeC4l+C4o+C4hyDguYDguKjguKfguJXguYDguKfguIoNCivguKrguKHguJfguKPguIcg4LmB4Liq4LiH4Liq4Lin4LmI4Liy4LiHDQor4Liq4Lih4LiX4Lij4Lix4Lie4Lii4LmMIOC4nuC4o+C4qOC4tOC4o+C4tOC4peC4seC4hOC4k+C4sg0KK+C4quC4oeC4meC4seC4qiDguILguKPguKPguITguYzguIrguLHguKINCivguKrguKHguJnguLbguIEg4LiB4Lik4Lip4LiT4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lih4LiZ4Li24LiBIOC5gOC4geC4tOC4lOC5gOC4m+C4teC5iOC4ouC4oQ0KK+C4quC4oeC4meC4tuC4gSDguITguIfguKLguLTguYjguIcNCivguKrguKHguJnguLbguIEg4LiI4Lij4Li54LiN4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4iOC4tuC4h+C4iOC4leC4uOC4o+C4nuC4tOC4mA0KK+C4quC4oeC4meC4tuC4gSDguYDguInguKXguLTguKHguKjguKPguLUNCivguKrguKHguJnguLbguIEg4LiK4Li54LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC5geC4i+C5iOC4reC4t+C5ieC4rQ0KK+C4quC4oeC4meC4tuC4gSDguJXguLHguYnguIfguKfguLHguIrguKPguJ7guIfguKjguYwNCivguKrguKHguJnguLbguIEg4LiX4LmJ4Lin4Lih4LmB4Liq4LiHDQor4Liq4Lih4LiZ4Li24LiBIOC4mOC4seC4oeC4nuC4tOC4nuC4tOC4mA0KK+C4quC4oeC4meC4tuC4gSDguYDguJnguLXguKLguKHguJfguLHguJrguJfguLTguKENCivguKrguKHguJnguLbguIEg4Lia4Li54Lij4LiT4Liw4Liq4Lih4Lip4Lix4LiV4Li0DQor4Liq4Lih4LiZ4Li24LiBIOC5gOC4m+C4o+C4oeC4o+C4seC4leC4meC4sg0KK+C4quC4oeC4meC4tuC4gSDguJ7guKXguLLguKLguIfguLLguKENCivguKrguKHguJnguLbguIEg4Lie4Li54Lil4LmC4Lit4Lip4LiQ4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4oeC4h+C4hOC4peC4iOC4o+C4seC4quC5geC4quC4hw0KK+C4quC4oeC4meC4tuC4gSDguKLguK3guJTguJrguKPguLTguJrguLnguKPguJPguYwNCivguKrguKHguJnguLbguIEg4Lij4Li44LmJ4LiH4LiB4Lih4Lil4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC5gOC4peC4tOC4qOC4quC4tOC4o+C4tOC4quC4uOC4gg0KK+C4quC4oeC4meC4tuC4gSDguKfguLHguIrguKPguJrguLnguKPguJPguJ7guIfguKnguYwNCivguKrguKHguJnguLbguIEg4Lio4Lij4Li14Lib4Lij4Liw4LiU4Lix4Lia4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4quC4meC4mOC4tOC5guC4q+C4oeC4lA0KK+C4quC4oeC4meC4tuC4gSDguKrguLTguIfguKvguLLguITguLjguJMNCivguKrguKHguJnguLbguIEg4Liq4Li44LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4q+C4h+C4uOC5iOC4ouC4geC4o+C4sOC5guC4l+C4gQ0KK+C4quC4oeC4meC4tuC4gSDguK3guKHguKPguKrguLTguKPguLTguJ7guLLguJPguLTguIrguKLguYwNCivguKrguKHguJnguLbguIEg4Lit4Li04Liq4Lij4Lix4LmI4LiZDQor4Liq4Lih4Lia4Lix4LiV4Lij4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC5geC4ouC5ieC4oQ0KK+C4quC4oeC4muC4seC4leC4tCDguIHguLjguKXguKfguLjguJLguLQNCivguKrguKHguJrguLHguJXguLQg4LmA4LiC4Li14Lii4Lin4LmC4Liq4Lig4LiyDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4hOC4o+C4t+C4reC4reC4suC4qeC4sg0KK+C4quC4oeC4muC4seC4leC4tCDguIjguLLguKPguLjguJrguKPguKPguKLguIfguITguYwNCivguKrguKHguJrguLHguJXguLQg4LiJ4Lix4LiV4Lij4Lin4Lij4Li44LiT4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5hOC4iuC4ouC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4muC4seC4leC4tCDguJTguYnguKfguIfguKfguIfguKjguYzguKjguKPguLUNCivguKrguKHguJrguLHguJXguLQg4LmA4LiV4LiK4Lit4Lix4LiE4Lij4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4l+C4reC4h+C4ouC5ieC4reC4og0KK+C4quC4oeC4muC4seC4leC4tCDguYDguJjguLXguKLguKPguJ7guIjguJnguYwNCivguKrguKHguJrguLHguJXguLQg4Lia4Lix4Lin4Lij4Li44LmI4LiHDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4meC4nuC4hOC4uOC4kw0KK+C4quC4oeC4muC4seC4leC4tCDguJzguLnguIHguYDguIHguKnguKMNCivguKrguKHguJrguLHguJXguLQg4Lie4Liy4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5guC4nuC4mOC4tOC4muC4uOC4jQ0KK+C4quC4oeC4muC4seC4leC4tCDguKHguLDguKvguLDguKvguKHguLHguJQNCivguKrguKHguJrguLHguJXguLQg4Lii4Li04LmI4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4o+C4t+C5ieC4reC4gQ0KK+C4quC4oeC4muC4seC4leC4tCDguKfguIfguKjguYzguIHguLPguIrguLHguKINCivguKrguKHguJrguLHguJXguLQg4Lin4Li04Lig4Li54Lio4Li04Lij4Li0DQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4qOC4o+C5gOC4peC4tOC4qA0KK+C4quC4oeC4muC4seC4leC4tCDguKrguKHguKjguKPguLXguK3guLHguIHguKnguKPguYHguKrguIcNCivguKrguKHguJrguLHguJXguLQg4Liq4Li04LiH4Lir4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4quC4uOC4meC4l+C4o+C5gOC4quC4k+C4tQ0KK+C4quC4oeC4muC4seC4leC4tCDguKvguKHguYjguK3guKHguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguKHguJrguLHguJXguLQg4Lit4Lii4Li54LmI4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4reC4uOC4leC4oeC4sOC4p+C4tOC4o+C4tOC4ouC4suC4h+C4geC4ueC4ow0KK+C4quC4oeC4muC4uOC4jSDguYDguIHguJXguKHguJPguLUNCivguKrguKHguJrguLjguI0g4LiI4Liy4Lij4Li44Lij4Lix4LiV4LiZ4LmA4LiB4Li34LmJ4LitDQor4Liq4Lih4Lia4Li44LiNIOC5geC4i+C5iOC4q+C4ouC4tOC4mg0KK+C4quC4oeC4muC4uOC4jSDguJfguK3guIfguJ7guIfguKnguYzguYDguJnguLXguKLguKENCivguKrguKHguJrguLjguI0g4Lia4Li44LiN4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Lih4Lia4Li44LiNIOC4nuC4ueC4meC4quC4tOC4o+C4quC4tOC4mQ0KK+C4quC4oeC4muC4uOC4jSDguKPguLHguIHguKnguYzguKrguLjguKPguKfguIfguKjguLINCivguKrguKHguJrguLjguI0g4Lin4Liy4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4Lia4Li44LiNIOC4quC4teC4meC5ieC4s+C5gOC4h+C4tOC4mQ0KK+C4quC4oeC4muC4uOC4jSDguK3guKDguLTguKfguKPguKPguJPguKjguKPguLUNCivguKrguKHguJrguLnguKPguJPguYwg4LiB4LiZ4LiB4LiZ4Lig4Liy4LiB4Li44LilDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4geC4tOC4iOC4o+C4seC4h+C4qeC4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguYHguIHguYnguKfguIHguLLguKMNCivguKrguKHguJrguLnguKPguJPguYwg4LiE4LiH4Lih4Lix4LmI4LiZDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4h+C4suC4oeC4mOC4o+C4o+C4oeC4qOC4tOC4o+C4tA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIjguLHguJnguYLguJfguKfguLLguJcNCivguKrguKHguJrguLnguKPguJPguYwg4LiI4Li44Lil4Lie4LilDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4ieC4suC4ouC4sOC5guC4reC4oOC4suC4qg0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIrguLjguJPguKvguLDguKfguLHguJMNCivguKrguKHguJrguLnguKPguJPguYwg4LmB4LiL4LmI4Lif4Li44LmJ4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4k+C4seC4juC4kOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJXguLHguYnguIfguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguKHguJrguLnguKPguJPguYwg4LmA4LiV4LmI4Liy4LiX4Lit4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4l+C4reC4h+C4reC4o+C5iOC4suC4oQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJjguJnguLLguKrguLjguKfguKPguKPguJPguJTguLTguJbguLUNCivguKrguKHguJrguLnguKPguJPguYwg4LiZ4Li04Lih4LiwDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4muC4uOC4jeC4peC5ieC4meC5gOC4q+C4peC4t+C4rQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJvguKPguLDguYDguKrguKPguLTguJDguKrguLjguILguYHguKrguJkNCivguKrguKHguJrguLnguKPguJPguYwg4Lic4LmI4Lit4LiH4LmE4Liq4LinDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4nuC4o+C5gOC4lOC4iuC5gOC4lOC4iuC4sA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJ7guLTguYDguKjguKnguJ7guLHguJLguJnguIHguLjguKUNCivguKrguKHguJrguLnguKPguJPguYwg4Lif4Li54LmA4Lif4Li34LmI4Lit4LiH4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4oeC4seC5iOC4h+C4oeC4tQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKLguLHguJnguJnguLLguJTguLUNCivguKrguKHguJrguLnguKPguJPguYwg4Lij4Li34LmI4LiZ4Lij4Liy4LiV4Lij4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4peC4teC5iOC4l+C4reC4h+C4reC4tOC4mQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKfguIfguKjguYzguKrguLjguKfguKPguKPguJPguJnguLTguJjguLQNCivguKrguKHguJrguLnguKPguJPguYwg4Lin4Lix4Lii4Lin4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4qOC4o+C4tOC4oeC5guC4meC4meC4uOC4geC4uOC4pQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKjguLTguKPguLTguJrguKPguKPguIjguIcNCivguKrguKHguJrguLnguKPguJPguYwg4Liq4Lih4Lit4Li44LiU4LijDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4quC4suC4quC4sOC5gOC4lOC4suC4sOC4q+C5jA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKrguLjguJfguJjguLTguIrguLHguIcNCivguKrguKHguJrguLnguKPguJPguYwg4LmB4Liq4LiH4LiU4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4q+C4suC4jeC4nuC4seC4kuC4meC4iuC4seC4ouC4geC4ueC4ow0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguK3guKPguKPguITguKjguLTguKPguLTguJnguJnguJfguYwNCivguKrguKHguJrguLnguKPguJPguYwg4Lit4Li04LiZ4LiI4Liz4Lib4LiyDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5guC4reC4oOC4suC4quC5gOC4iOC4o+C4tOC4jeC4p+C4tOC4l+C4ouC5jA0KK+C4quC4oeC4m+C4o+C4sOC4quC4h+C4hOC5jCDguJrguLjguI3guKLguLDguIrguLHguKINCivguKrguKHguJvguKPguLDguKrguIfguITguYwg4Lit4Li44LmI4LiZ4Lil4Liw4Lih4LmJ4Liy4LiiDQor4Liq4Lih4Lib4Lit4LiHIOC5gOC4geC4qeC4o+C5jOC4oeC4k+C4tQ0KK+C4quC4oeC4m+C4reC4hyDguIjguLTguKfguYTguJ7guYLguKPguIjguJnguYzguIHguLTguIgNCivguKrguKHguJvguK3guIcg4LiU4Lin4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lib4Lit4LiHIOC5gOC4l+C4nuC5gOC4l+C4nuC4sg0KK+C4quC4oeC4m+C4reC4hyDguJrguLnguKPguJPguLDguKfguLjguJLguLQNCivguKrguKHguJvguK3guIcg4Lie4Li44LiU4LiV4Liy4LilDQor4Liq4Lih4Lib4Lit4LiHIOC4ouC4h+C4p+C4k+C4tOC4iuC4ouC5jA0KK+C4quC4oeC4m+C4reC4hyDguYHguKfguKfguKfguLHguIrguKPguLANCivguKrguKHguJvguK3guIcg4Liq4Li04LiH4Lir4LmA4Liq4LiZ4Li1DQor4Liq4Lih4Lib4Lit4LiHIOC5gOC4q+C4peC5iOC4suC5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jA0KK+C4quC4oeC4nuC4hCDguKjguLXguKXguJ7guLTguJ7guLHguJLguJnguYwNCivguKrguKHguJ7guIfguKjguYwg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Liq4Lih4Lie4LiH4Lio4LmMIOC4o+C4seC4leC4meC4muC4uOC4o+C4tQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguIHguKPguKPguJPguKrguLnguJUNCivguKrguKHguJ7guIfguKnguYwg4LiB4Li04LiV4LiV4Li04Lij4Lix4LiV4LiZ4Liy4Lig4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5guC4geC4qOC4peC4o+C4reC4lA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguITguKXguYnguLLguKLguKHguLUNCivguKrguKHguJ7guIfguKnguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiI4Liz4Lij4Lix4LiqDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4iOC4teC4meC5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguInguLLguKLguYHguIHguYnguKcNCivguKrguKHguJ7guIfguKnguYwg4LiK4Li14Lin4Liw4LmA4LiI4Lij4Li04LiN4LmE4LiX4LiiDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJPguKPguIfguITguYzguYDguJvguKXguLXguYjguKLguJkNCivguKrguKHguJ7guIfguKnguYwg4LiV4Lix4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4l+C4o+C4h+C4l+C4o+C4seC4nuC4ouC5jOC4geC4uOC4pQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguYDguJfguJ7guYTguIHguKPguKXguLLguKgNCivguKrguKHguJ7guIfguKnguYwg4LiZ4Lix4LiZ4LiX4Lie4Lij4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4muC4uOC4jeC4hOC4uOC4kw0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJvguKPguLDguKDguLLguKjguLTguKPguLQNCivguKrguKHguJ7guIfguKnguYwg4Lib4Li44Lii4Lii4Liw4Lij4Li44LiZDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4nuC4h+C4qeC5jOC5gOC4oOC4leC4o+C4sg0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJ7guLTguJnguLTguIjguIHguLLguKPguJPguYwNCivguKrguKHguJ7guIfguKnguYwg4LmE4Lie4LiI4Li04LiV4LijDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4oeC4seC4h+C4geC4o+C4nuC4suC4meC4tOC4ig0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKLguLnguK7guLHguJnguYDguIfguLLguLANCivguKrguKHguJ7guIfguKnguYwg4Lij4Li44LiI4Li04LiC4LiI4LijDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4peC4t+C4reC4iuC4suC4leC4tOC5gOC4oeC4mOC4tOC4geC4uOC4pQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKfguIfguKrguK3guLLguJQNCivguKrguKHguJ7guIfguKnguYwg4Lin4Li04Lij4Li04Lii4Liw4Lih4LiZ4LiV4Lij4Li1DQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4qOC4o+C4teC4quC4suC4geC4pQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKrguIHguLjguKXguKrguLjguKDguLLguKLguJnguLINCivguKrguKHguJ7guIfguKnguYwg4Liq4Liw4Liq4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4quC4tOC4meC4quC4lOC4p+C4gQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKrguLjguJnguJfguKPguJjguKPguKPguKENCivguKrguKHguJ7guIfguKnguYwg4LmB4Liq4LiH4Liq4Li04LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4q+C4suC4jeC4nuC4suC4k+C4tOC4iuC4ouC5jOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguK3guKHguKPguJjguLHguI3guKrguLTguKPguLTguIHguLjguKUNCivguKrguKHguJ7guIfguKnguYwg4Lit4Liy4Lir4Lih4Lix4LiUDQor4Liq4Lih4Lie4LiI4LiZ4LmMIOC4geC4ouC4suC4p+C4seC4kuC4meC4geC4tOC4iA0KK+C4quC4oeC4nuC4iOC4meC5jCDguKvguK3guKHguJnguLTguKLguKENCivguKrguKHguJ7guKMg4LiB4Li04LiI4LiB4Lix4LiH4Lin4Liy4LilDQor4Liq4Lih4Lie4LijIOC5geC4geC5ieC4p+C4meC4tOC4pQ0KK+C4quC4oeC4nuC4oyDguITguIfguKrguLTguJfguJjguLTguYwNCivguKrguKHguJ7guKMg4LiH4Lit4LiZ4Lir4Lit4LihDQor4Liq4Lih4Lie4LijIOC4iOC4seC4meC4l+C4sOC4o+C4seC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4nuC4oyDguYHguIjguKfguYDguIjguKPguLTguI0NCivguKrguKHguJ7guKMg4LiK4Lix4Lii4LiZ4Li04LiE4LihDQor4Liq4Lih4Lie4LijIOC5gOC4iuC4t+C5ieC4reC5gOC4geC4leC4uA0KK+C4quC4oeC4nuC4oyDguYHguIvguYjguK3guLbguYnguIcNCivguKrguKHguJ7guKMg4LiU4Li14LmE4Lie4Lio4Liy4LilDQor4Liq4Lih4Lie4LijIOC4leC4uOC5iOC4oeC4oeC4sA0KK+C4quC4oeC4nuC4oyDguJfguK3guIfguJvguKPguLDguJTguLTguKnguJANCivguKrguKHguJ7guKMg4LmA4LiX4Li14Lii4LiZ4LiX4Lix4LiUDQor4Liq4Lih4Lie4LijIOC4meC5ieC4reC4ouC5gOC4guC5h+C4oeC5gOC4h+C4tOC4mQ0KK+C4quC4oeC4nuC4oyDguJrguLHguKfguK3guLjguYTguKMNCivguKrguKHguJ7guKMg4Lia4Li44LiV4Lij4LiC4Lix4LiZ4LiX4Lit4LiHDQor4Liq4Lih4Lie4LijIOC4m+C4suC4meC5g+C4ouC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4nuC4oyDguJ7guIfguKnguYzguKrguLjguKfguKPguKPguJMNCivguKrguKHguJ7guKMg4Lie4Liy4LiK4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lie4LijIOC5gOC4nuC4iuC4o+C4lOC4tQ0KK+C4quC4oeC4nuC4oyDguKDguLnguYjguJ7guKfguIcNCivguKrguKHguJ7guKMg4Lih4Li04Lij4Lit4LiL4LiyDQor4Liq4Lih4Lie4LijIOC4o+C4reC4lOC4o+C4seC4qOC4oeC4tQ0KK+C4quC4oeC4nuC4oyDguYDguKPguLfguK3guIfguKTguJfguJjguLTguYwNCivguKrguKHguJ7guKMg4LmA4Lil4Liy4Lir4Lij4Lix4LiV4LiZ4Liy4Lir4Li04Lij4Lix4LiNDQor4Liq4Lih4Lie4LijIOC4p+C4o+C4o+C4k+C4iuC4meC4sA0KK+C4quC4oeC4nuC4oyDguKfguLTguKXguLHguKLguKPguLHguJXguJnguYwNCivguKrguKHguJ7guKMg4Lio4Lij4Li14LmA4Lie4LiK4LijDQor4Liq4Lih4Lie4LijIOC4quC4meC4l+C4reC4hw0KK+C4quC4oeC4nuC4oyDguKrguLLguJjguLTguJXguJ7guLTguJDguIHguLjguKUNCivguKrguKHguJ7guKMg4Liq4Li44LiC4LmB4LiB4LmJ4LinDQor4Liq4Lih4Lie4LijIOC5geC4quC4h+C4meC4meC4l+C5jA0KK+C4quC4oeC4nuC4oyDguKvguLLguI3guJ7guIfguKnguYzguJ7guLHguJnguJjguLjguYwNCivguKrguKHguJ7guKMg4Lit4LmI4Lit4LiH4Lil4Liw4Lit4LitDQor4Liq4Lih4Lie4LijIOC4reC4tOC4qOC4o+C4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4nuC4pOC4qeC5jCDguJ7guKPguKvguKHguKHguLQNCivguKrguKHguJ7guKUg4LiJ4Liy4Lii4Liy4Lii4LiZDQor4Liq4Lih4Lie4LilIOC4mOC4suC4lOC4suC4geC4ow0KK+C4quC4oeC4nuC4pSDguJ7guLbguIfguKHguIfguITguKXguIrguLHguKLguIHguLTguIgNCivguKrguKHguJ7guKUg4Lin4LiH4Lio4LmM4LiY4Li04Lia4LiU4Li14LmA4LiU4LiKDQor4Liq4Lih4Lie4LilIOC4quC4uOC4nuC5guC4pQ0KK+C4quC4oeC4nuC4seC4geC4leC4o+C5jCDguKHguKvguLLguJ7guLLguJPguLTguIrguKLguYwNCivguKrguKHguJ7guLHguJnguJjguYwg4Lia4Li44LiN4LiB4Lix4LiH4Lin4Liy4LilDQor4Liq4Lih4Lie4Li04LioIOC4geC4o+C4sOC5geC4quC4o+C5jOC4hOC4uOC4m+C4leC5jA0KK+C4quC4oeC4nuC4tOC4qCDguITguKfguKPguYHguJbguKXguIcNCivguKrguKHguJ7guLTguKgg4LiK4Li44LmI4Lih4LiK4Lin4LiiDQor4Liq4Lih4Lie4Li04LioIOC5guC4leC4oeC4sOC5guC4mQ0KK+C4quC4oeC4nuC4tOC4qCDguYDguJnguLTguJnguIHguKPguYjguLLguIcNCivguKrguKHguJ7guLTguKgg4Lie4Lix4LiS4LiZ4Liy4Lik4LiU4Li1DQor4Liq4Lih4Lie4Li04LioIOC4ouC4reC4lOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4nuC4tOC4qCDguKfguLTguIrguLHguKLguIHguLjguKUNCivguKrguKHguJ7guLTguKgg4Liq4Li04Lil4Li44LiI4LiI4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4Lie4Li04LioIOC4reC5iOC4p+C4oeC4mOC4o+C4o+C4oQ0KK+C4quC4oeC4oOC4niDguIHguLTguIjguYTguIrguKLguLINCivguKrguKHguKDguJ4g4LiI4Li04Lij4LiI4Lij4Lix4LilDQor4Liq4Lih4Lig4LieIOC4leC4tOC4o+C4iuC4uOC4peC4tQ0KK+C4quC4oeC4oOC4niDguJvguKPguLDguIHguK3guJrguJnguJ7guYDguIHguYnguLINCivguKrguKHguKDguJ4g4Lie4Li54LiZ4Lic4Lil4LmA4LiI4Lij4Li04LiN4Lio4Lij4Li1DQor4Liq4Lih4Lig4LieIOC4peC4oeC4peC4reC4og0KK+C4quC4oeC4oOC4niDguKjguKPguLjguJXguKfguKPguKrguIHguLjguKUNCivguKrguKHguKDguJ4g4Liq4Li44Lij4Lix4LiB4LiC4LiB4LiwDQor4Liq4Lih4Lig4LieIOC4reC4seC4oeC4nuC4uOC4m+C4o+C4sOC4oOC4sg0KK+C4quC4oeC4oOC4suC4niDguKPguLHguJXguJnguJTguLLguIHguLjguKUNCivguKrguKHguKHguLLguJUg4Liq4Lix4LiH4LiC4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Lih4Lih4Liy4LiV4LijIOC4nuC4o+C4q+C4oeC4suC4meC4uOC4geC4ueC4pQ0KK+C4quC4oeC4oeC4suC4leC4o+C5jCDguIrguYnguLLguIfguYDguJzguLfguK3guIENCivguKrguKHguKHguLLguKgg4LiB4Lin4Lii4Lih4LiH4LiE4LilDQor4Liq4Lih4Lih4Li04LiV4LijIOC4iOC4seC4meC4l+C4o+C5jOC4oOC4seC4geC4lOC4tQ0KK+C4quC4oeC4oeC4uOC4leC4tCDguKPguLHguIrguJXguLDguKfguKPguKPguJMNCivguKrguKHguKLguKgg4LmA4LiB4Li04LiU4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Lih4Lii4LioIOC4iOC4seC5iOC4meC5gOC4nuC5h+C4iuC4ow0KK+C4quC4oeC4ouC4qCDguYDguIrguLXguYjguKLguKfguIrguLLguI3guYHguJXguYjguIcNCivguKrguKHguKLguKgg4LmE4LiV4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lie4LiH4Lio4LmMDQor4Liq4Lih4Lii4LioIOC4muC4uOC4jeC4iuC4seC4ouC4qOC4o+C4tQ0KK+C4quC4oeC4ouC4qCDguJ7guKPguYDguIjguKPguLTguI3guKfguLHguJLguJnguLINCivguKrguKHguKLguKgg4Lih4Lir4Lix4LiX4LiY4LiZ4Liw4Lih4LiH4LiE4LilDQor4Liq4Lih4Lii4LioIOC4o+C4uOC4iOC4tOC5guC4oeC4o+C4sA0KK+C4quC4oeC4ouC4qCDguKfguLTguJrguLnguKXguKLguYzguJvguLTguYjguJkNCivguKrguKHguKLguKgg4Liq4Lix4LiH4LiC4LmM4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Lih4Lii4LioIOC4q+C4peC4teC4guC4suC4pw0KK+C4quC4oeC4ouC4siDguKPguK3guJTguKvguKPguYjguLLguKINCivguKrguKHguKMg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lil4Li04LioDQor4Liq4Lih4LijIOC5hOC4leC4o+C4p+C4tOC4iuC4sg0KK+C4quC4oeC4oyDguJvguLLguJnguKLguYnguK3guKINCivguKrguKHguKMg4Lih4Li14LmB4LiB4LmJ4LinDQor4Liq4Lih4LijIOC4qOC4tOC4mOC4o+C4geC4uOC4pQ0KK+C4quC4oeC4oyDguK3guKPguKPguJbguJ7guLTguJfguKLguYwNCivguKrguKHguKPguKPguLHguJXguJnguYwg4LiU4Li04Lip4LiQ4Lit4Li44LiU4Lih4LmC4Lie4LiY4Li04LmMDQor4Liq4Lih4Lij4LiqIOC4oeC4h+C4hOC4pQ0KK+C4quC4oeC4o+C4seC4gSDguYTguJ7guJrguLnguKXguKLguYzguKfguLXguKPguLDguKrguIHguLjguKUNCivguKrguKHguKPguLHguIHguKnguYwg4LiV4LmI4Lit4Lin4LiH4Lio4LmM4LmE4Lie4LiK4Lii4LiZ4LiV4LmMDQor4Liq4Lih4Lij4Lix4LiV4LiZ4LmMIOC4m+C4o+C4teC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4pOC4geC4qeC5jCDguKvguLTguKPguLHguI3guKjguLjguKDguYLguIrguJXguLQNCivguKrguKHguKTguJTguLUg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lik4LiU4Li1IOC5gOC4quC4meC4sOC4p+C4teC4k+C4tOC4mQ0KK+C4quC4oeC4pOC4l+C4seC4oiDguIHguKXguYjguK3guKHguJnguYnguK3guKINCivguKrguKHguKXguLHguIHguKnguJPguYwg4LiB4Li04LiV4Li04Lie4LiH4Lip4LmMDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4i+C5iOC4reC4oeC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4oeC4peC4seC4geC4qeC4k+C5jCDguJvguKPguLDguKrguLTguJfguJjguLTguYDguKHguIHguLjguKUNCivguKrguKHguKXguLHguIHguKnguJPguYwg4Lil4Li04LiZ4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C5geC4quC4hw0KK+C4quC4oeC4p+C4h+C4qOC5jCDguITguKPguYnguLLguKHguIHguLPguIjguKMNCivguKrguKHguKfguIfguKnguYwg4LiK4Liz4LiZ4Liy4LiN4LiB4Li04LiI4LiI4LiyDQor4Liq4Lih4Lin4Li04LiX4Lii4LmMIOC4nuC4h+C4qOC5jOC4muC4o+C4tOC4nuC4seC4leC4ow0KK+C4quC4oeC4qOC4o+C4tSDguIHguLTguIjguKPguLHguIHguKnguLINCivguKrguKHguKjguKPguLUg4LiC4Liy4Lin4LiX4Lit4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC4h+C5iOC4p+C4meC4iOC4ow0KK+C4quC4oeC4qOC4o+C4tSDguIjguLTguJXguIjguKPguLHguKrguYHguKrguIcNCivguKrguKHguKjguKPguLUg4LiJ4Li04Lih4LiE4Lil4LmJ4Liy4LiiDQor4Liq4Lih4Lio4Lij4Li1IOC4iuC4ueC4qOC4o+C4teC4meC4p+C4pQ0KK+C4quC4oeC4qOC4o+C4tSDguYHguIvguYjguJXguLHguYnguIcNCivguKrguKHguKjguKPguLUg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Liq4Lih4Lio4Lij4Li1IOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4qOC4o+C4tSDguYDguJbguYjguIcNCivguKrguKHguKjguKPguLUg4LmA4LiX4Lio4LiY4Lij4Lij4LihDQor4Liq4Lih4Lio4Lij4Li1IOC4meC4suC4quC4oeC4neC4seC4mQ0KK+C4quC4oeC4qOC4o+C4tSDguJrguLjguI3guKjguLHguIHguJTguLTguYwNCivguKrguKHguKjguKPguLUg4Lib4Lix4LiX4Lih4Lie4LiH4Lio4LmM4Lib4Lij4Liw4Lii4Li54LijDQor4Liq4Lih4Lio4Lij4Li1IOC4nuC4o+C4m+C4o+C4seC4iuC4jeC4suC4nuC4h+C4qOC5jA0KK+C4quC4oeC4qOC4o+C4tSDguJ7guLnguKXguJfguKPguLHguJ7guKLguYwNCivguKrguKHguKjguKPguLUg4Lig4Li54Lir4Liy4LiZ4Liy4LihDQor4Liq4Lih4Lio4Lij4Li1IOC4ouC4qOC4iuC4uQ0KK+C4quC4oeC4qOC4o+C4tSDguKPguLHguJXguJnguJvguKPguLDguKDguLLguJUNCivguKrguKHguKjguKPguLUg4Lil4Li04LiC4Li04LiV4Liq4LiB4Li44Lil4LiK4Lix4LiiDQor4Liq4Lih4Lio4Lij4Li1IOC4p+C4h+C4qeC5jOC4q+C4p+C4seC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4oeC4qOC4o+C4tSDguKfguLTguKPguLTguKLguLDguJrguLjguKjguKLguYwNCivguKrguKHguKjguKPguLUg4Lio4Lix4LiB4LiU4Li04LmM4LmA4Liq4Lih4Lit4Lie4Lij4Lir4LihDQor4Liq4Lih4Lio4Lij4Li1IOC4quC4peC4seC4lOC4ouC4sOC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4qOC4o+C4tSDguKrguLXguKfguLHguJnguJnguLINCivguKrguKHguKjguKPguLUg4LmA4Liq4LmH4LiH4LiU4Lit4LiZ4LmE4Lie4LijDQor4Liq4Lih4Lio4Lij4Li1IOC4q+C4suC4oeC4meC4leC4o+C4tQ0KK+C4quC4oeC4qOC4o+C4tSDguK3guLHguIfguITguJnguLLguKfguKPguLLguJ7guLHguJnguJjguLjguYwNCivguKrguKHguKjguKPguLUg4Lit4Li44LmI4LiZ4Lin4Lix4LiS4LiZ4LiZ4Li44LiB4Li54LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4o+C4uOC4h+C4l+C4reC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIHguLLguI3guIjguJnguJvguKPguLDguJ7guLTguJMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiB4Li04LiV4LiV4Li04Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4geC4o+C4teC4ouC4h+C5hOC4iuC4ouC4geC4tOC4iOC4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguIHguYnguKfguJrguKfguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiC4Lix4LiV4LiV4Li44Lie4LiH4Lio4LmM4Lin4LiT4Li04LiKDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4h+C5hOC4nuC4qOC4suC4peC4luC4suC4p+C4ow0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguITguLjguYnguKHguKDguLHguKLguJ7guLLguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiI4LiH4Lin4LiZ4Li04LiK4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4seC4meC4l+C4o+C4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIjguLLguKPguLjguIjguLjguJHguLLguKPguLHguJXguJnguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiI4Li04LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iOC4meC4iOC4o+C4seC4quC4quC4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguIjguLfguK3guIjguLHguJnguJfguKPguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4LiJ4Lil4Lii4Liq4Lix4LiH4LiC4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iuC4suC4jeC4quC4oeC4ow0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIrguLnguKfguIfguKjguYzguKfguLLguKXguKLguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmD4LiK4LmI4LmB4LiZ4LmIDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguK3guLbguYnguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4LmC4LiV4LinDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4lOC4teC4meC4gQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJXguKPguLDguIHguLnguKXguYLguK3guKrguJYNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiV4Lix4LmJ4LiH4LmA4LiI4Lij4Li04LiN4LiY4Lij4Lij4LihDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4leC4tOC4peC4geC5gOC4peC4tOC4qA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYLguJXguKPguLHguIHguKnguLINCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiX4Lij4Lix4Lie4Lii4LmM4Lin4Li04LmE4LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4seC5iOC4h+C4l+C4reC4hw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguJfguLXguYjguKLguIfguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiY4Lij4Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4p+C4peC4reC4uOC5hOC4ow0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJnguLTguJnguJnguLLguJcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lia4Lin4Lij4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4uOC4jeC4oeC4suC5gOC4peC4tOC4qA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJrguLnguKPguJPguLDguKjguLTguKXguJvguIHguLTguIgNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4suC4peC4qOC4o+C4tQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJzguIjguIfguJ7guKTguJfguJjguLTguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lie4LiU4LiU4LmJ4Lin4LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4pOC4geC4qeC4sOC4p+C4seC4mQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJ7guLHguJnguJjguLjguYzguKrguJkNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lie4Li34LiK4Liq4Liw4LiB4LiwDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4nuC4teC4ouC4o+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKDguITguKrguLTguKPguLTguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lih4LiH4LiE4Lil4Lih4Lir4Liy4LiK4Lix4LiiDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4suC4lOC4tQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKHguYLguJnguJfguKPguLHguJ7guKLguYzguJrguLPguKPguLjguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4o+C4sOC4p+C4tOC5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKPguLLguIrguYHguJ7guJfguKLguLLguITguKENCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4Lij4Li34Lit4LiH4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4tOC4guC4tOC4leC4p+C4tOC4l+C4ouC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKXguLfguK3guJ7guLHguJLguJnguKrguLjguIINCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmC4Lil4LmI4Lir4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qeC5jOC4nuC4tOC4nuC4seC4kuC4meC5jOC4nuC4h+C4qeC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguYjguK3guIfguK3guJnguLHguJnguJXguYzguKfguLTguJfguKLguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lin4Liy4LiZ4Li04LiK4Lii4Liy4LiH4LiB4Li54LijDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4tOC4p+C4seC4kuC4meC4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKjguKPguKjguKPguLXguJfguK3guIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14Liq4LiB4Liy4Lin4LiB4Li44LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4seC4geC4lOC4tOC5jOC5guC4qOC4oOC4k+C4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKjguLTguKPguLTguYTguJ7guKPguKfguLHguJkNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4LiU4LmD4LiqDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4o+C5hOC4iuC4ouC5gOC4oeC4mOC4sg0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguLHguJnguJfguLHguJXguYDguKfguIoNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Li04LiZ4LiK4Lix4Lii4LiU4Li1DQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4guC4nOC4lOC4uOC4hw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguJfguJjguLTguJzguKXguYTguJ7guJrguLnguKXguKLguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4quC4t+C4reC5guC4leC4h+C4suC4oQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYLguKrguJXguJbguLTguYDguKrguLLguKfguKDguLLguITguKLguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lir4Lin4Lix4LiH4LmC4LiL4LmK4LiwDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4q+C4peC4t+C4reC4h+C5gOC4iOC4o+C4tOC4jeC4p+C4seC4kuC4meC4sg0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguK3guKDguLTguIjguLLguKPguLUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Lij4Li44LiT4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4seC4qOC4p+C4ouC4uOC4l+C4mOC4nuC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguK3guLTguIfguITguJnguLHguJnguJfguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Li44LiV4Lih4LiwDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4reC4t+C5ieC4reC4o+C4suC4qOC4teC4geC4uOC4pQ0KK+C4quC4oeC4qOC4tOC4o+C4tCDguJ7guLHguJLguJnguJvguKPguLDguKDguLLguJ7guLHguJnguJjguLjguYwNCivguKrguKHguKnguKMg4LiX4Lit4LiH4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Liq4Lih4Liq4LiZ4Li04LiXIOC4leC4suC4oeC4nuC4ow0KK+C4quC4oeC4quC4oeC4seC4oiDguJjguLDguYDguKjguKPguKnguJANCivguKrguKHguKrguKPguLUg4Lie4LiH4Lio4LmM4LmB4Lie4LiX4Lii4LmM4Lie4Li04LiZ4Li04LiIDQor4Liq4Lih4Liq4LmI4Lin4LiZIOC4ieC4suC4ouC4suC4peC4seC4geC4qeC4k+C5jA0KK+C4quC4oeC4quC4tOC4l+C4mOC4tOC5jCDguKfguLTguYDguIrguKnguJnguKXguLTguJnguKfguIfguKnguYwNCivguKrguKHguKrguLjguIIg4LiC4Lix4LiZ4LiV4Li04Lit4Li44LiU4LihDQor4Liq4Lih4Liq4Li44LiCIOC4nuC4o+C4suC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4quC4uOC4giDguKrguLTguIHguILguJvguLHguI3guI3guLINCivguKrguKHguKvguI3guLTguIcg4LiX4Li14Lib4Liw4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4geC4peC4tOC5iOC4meC5geC4iOC5iOC4oQ0KK+C4quC4oeC4q+C4oeC4suC4oiDguYDguILguJXguKPguITguIcNCivguKrguKHguKvguKHguLLguKIg4LiI4Li04LiV4LiV4Li04Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4iuC4tOC4meC4p+C4tOC4iuC4sg0KK+C4quC4oeC4q+C4oeC4suC4oiDguJTguLLguJrguJfguK3guIfguJTguLUNCivguKrguKHguKvguKHguLLguKIg4LiX4Lin4Li14Liq4Li44LiX4LiY4Li04LmMDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4meC4suC4hOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4q+C4oeC4suC4oiDguJvguKPguLDguKDguLLguIHguKMNCivguKrguKHguKvguKHguLLguKIg4Lie4Lil4Liy4Lii4LmA4Lih4Li34Lit4LiHDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4oOC4o+C4suC4o+C4seC4leC4meC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4q+C4oeC4suC4oiDguYTguKHguYnguYDguIHguJXguLgNCivguKrguKHguKvguKHguLLguKIg4Lil4Liw4Lit4Lit4LiH4Lio4Lij4Li1DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4p+C5guC4o+C4lOC4oeC4p+C4tOC4l+C4ouC4sg0KK+C4quC4oeC4q+C4oeC4suC4oiDguKrguK3guJnguKfguLTguJfguKLguYwNCivguKrguKHguKvguKHguLLguKIg4Liq4Li44LiU4LiC4Liy4LinDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4q+C4p+C4seC4h+C4l+C4reC4hw0KK+C4quC4oeC4q+C4oeC4suC4oiDguK3guLTguJfguJjguLTguKHguJPguLXguKPguLHguJXguJnguYwNCivguKrguKHguKvguKfguLHguIcg4LmA4LiB4Lip4Lih4LmC4LiB4Liq4Li04LiZ4LiX4Lij4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC4iuC4uOC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4q+C4p+C4seC4hyDguJnguLHguJnguJXguYzguIjguLLguKPguLjguKfguIfguKjguYwNCivguKrguKHguKvguKfguLHguIcg4LmA4Lie4LiK4Lij4Lie4Li04LiZ4Li04LiI4Lin4LiH4Lio4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC4peC4reC4oeC4suC5gOC4peC4sA0KK+C4quC4oeC4q+C4p+C4seC4hyDguKrguLLguJjguLTguJXguK3guYDguJnguIHguIrguLHguKINCivguKrguKHguKvguKfguLHguIcg4Lit4Lij4Li44LiT4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Lih4Lit4Liy4LiIIOC4reC4ouC4ueC5iOC4geC4tOC4iOC4leC4tOC4iuC4seC4og0KK+C4quC4oeC4seC4hOC4oyDguJXguLHguYnguIfguJvguKPguLDguYDguKrguKPguLTguJDguKrguKENCivguKrguKHguLHguITguKMg4Lih4Li44LmI4LiH4Lir4Lih4Liy4LiiDQor4Liq4Lih4Lix4LiE4LijIOC4reC4tOC4meC4l+C4o+C4qOC4tOC4peC4m+C5jA0KK+C4quC4oeC4seC4oiDguYDguILguLXguKLguKfguKrguLDguK3guLLguJQNCivguKrguKHguLHguKIg4LmB4LiL4LmI4LiI4Lix4LiHDQor4Liq4Lih4Lix4LiiIOC4meC4tOC4peC5guC4lQ0KK+C4quC4oeC4seC4oiDguYDguJ7guLTguYjguKHguJ7guLnguKXguKfguLTguJfguKLguLINCivguKrguKHguLHguKIg4LmA4Lil4Li04Lio4LiB4Lil4Liy4LiHDQor4Liq4Lih4Lix4LiiIOC4quC4teC4l+C4tQ0KK+C4quC4oeC4seC4oiDguK3guLjguJPguKvguJ7guLHguJnguJgNCivguKrguKHguLLguJkg4LiB4Li04LmI4LiH4Lie4Lij4LmE4Lie4LiZ4Li04Lie4Lix4LiS4LiZ4LmMDQor4Liq4Lih4Liy4LiZIOC4hOC5ieC4suC4hOC4peC5iOC4reC4hw0KK+C4quC4oeC4suC4mSDguYDguIjguJnguJnguKDguLINCivguKrguKHguLLguJkg4LmA4LiL4LmH4LiZ4LmA4LiK4Liy4Lin4LiZ4Li04LiKDQor4Liq4Lih4Liy4LiZIOC5guC4leC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4quC4oeC4suC4mSDguJjguLnguJvguYDguJfguLXguKLguJkNCivguKrguKHguLLguJkg4Lia4Li44Lip4Lii4LiX4Lij4Li04LiB4Liy4LiB4Lij4LiT4LmMDQor4Liq4Lih4Liy4LiZIOC4nuC4peC4teC4muC4seC4leC4ow0KK+C4quC4oeC4suC4mSDguKHguYjguKfguIfguKrguLXguJXguK3guIcNCivguKrguKHguLLguJkg4LmB4Lii4LmJ4Lih4LmA4LiB4Lip4LijDQor4Liq4Lih4Liy4LiZIOC5gOC4peC4teC5ieC4ouC4h+C4m+C4o+C4sOC4ouC4ueC4ow0KK+C4quC4oeC4suC4mSDguKjguLTguKPguLTguYTguJ7guJ7guKPguKPguJMNCivguKrguKHguLLguJkg4Liq4Li14LiX4LiyDQor4Liq4Lih4Liy4LiZIOC5guC4quC4lOC5ieC4p+C4hw0KK+C4quC4oeC4suC4mSDguK3guLHguJrguJTguLjguKXguYDguKXguLLguLDguKvguYwNCivguKrguKHguLLguJnguJ7guKUg4Lit4Lii4Li54LmI4Lit4LmI4Lit4LiZDQor4Liq4Lih4Liy4Lij4Li44LiVIOC4oeC4sOC4o+C4uOC4peC4tQ0KK+C4quC4oeC4tOC4lSDguKfguKPguKHguIfguITguKUNCivguKrguKHguLTguJfguJjguLTguYwg4Liq4Lir4LiZ4Liy4Lin4Li04LiZDQor4Liq4Lih4Li44LiX4LijIOC5geC4nuC4o+C4oeC4k+C4tQ0KK+C4quC4oeC5gOC4geC4peC4teC4ouC4pyDguJrguLjguI3guITguIcNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LiB4Li04LiV4LiV4Li04Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4guC4p+C4seC4jeC4lOC4tQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguIfguLLguKHguYDguKrguIfguLXguYjguKLguKENCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LiI4Li04Lij4Lij4Lix4LiV4LiZ4LiK4Liy4LiNDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iuC4p+C4peC4tOC4leC4iOC4tOC4o+C4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguYTguIrguKLguKrguLTguIfguKvguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4leC4seC5ieC4h+C4leC4o+C4h+C4iOC4tOC4leC4o+C5jA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguYTguJXguKPguKPguLHguJXguJnguYzguJfguKfguLXguKrguLjguIINCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmB4LiX4LmI4LiZ4LiX4Lit4LiHDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4meC4tOC4o+C4seC4meC4lOC4o+C5jOC4p+C4h+C4qOC5jOC4p+C4suC4mQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJvguKPguLDguIHguK3guJrguKrguLjguJ7guKPguKPguJMNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lic4Lil4Lin4Li04LmA4Lio4Lip4LiK4Lix4Lii4LiB4Li44LilDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4nuC4seC4meC4mOC4uOC5jOC4qOC4tOC4o+C4tA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJ/guLnguIHguKPguLDguYDguJTguLfguYjguK3guIcNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmA4Lih4Li34Lit4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4o+C4uOC4iOC4tOC4o+C4p+C4seC4kuC4meC5jA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguYDguKXguLTguKjguKXguJrguJjguLLguJXguKPguLUNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lin4Lix4LiS4LiZ4LiY4Lij4Lij4LihDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4qOC4o+C4l+C4o+C4hw0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKjguLjguKDguYLguIHguKfguLTguJcNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Liq4Li04LiH4Lir4LmM4LmB4LiB4LmJ4LinDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4quC4uOC4o+C5gOC4iuC4qeC4kOC5jOC4geC4tOC4iA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKvguLLguI3guKDguLHguJfguKPguLLguJnguJnguJfguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lit4Lij4Li44LmC4LiT4LiX4Lix4Lii4LiI4Li04LiV4LijDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4reC4meC4l+C4sOC4oeC4tOC4mQ0KK+C4quC4oeC5gOC4iOC4lSDguYDguIHguJXguLjguYHguIHguYnguKcNCivguKrguKHguYDguIjguJXguJnguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4Liq4Lih4LmA4LiI4LiV4LiZ4LmMIOC4mOC4s+C4o+C4h+C4o+C4suC4iuC4meC4tOC4leC4tA0KK+C4quC4oeC5gOC4iOC4leC4meC5jCDguYDguKXguLTguKjguJ7guKXguLLguJ7guIfguKjguYwNCivguKrguKHguYDguIjguJXguJnguYwg4LmA4Lit4Li14LmI4Lii4Lih4Lit4LiY4Li04Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4LmA4LiU4LmH4LiIIOC4quC4t+C4muC5gOC4q+C4peC5iOC4suC4o+C4mg0KK+C4quC4oeC5gOC4lOC4iiDguJTguLjguKXguKLguK3guJnguLjguIHguLTguIgNCivguKrguKHguYDguJTguIog4Lih4LiT4Li14LmE4Lih4LiV4Lij4Li14LiI4Li04LiVDQor4Liq4Lih4LmA4LiU4LiKIOC4quC4uOC4p+C4o+C4o+C4k+C4meC4suC4hA0KK+C4quC4oeC5gOC4nuC5h+C4iuC4oyDguJjguKPguKPguKHguJbguLLguKfguKPguKfguJPguLTguIoNCivguKrguKHguYDguKvguKHguLfguK3guJkg4Lib4Lij4Liw4LmE4Lie4Lii4LmMDQor4Liq4Lih4LmC4LiK4LiEIOC4peC4tOC5ieC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC5guC4nuC4mOC4tCDguKrguKPguLHguITguITguLLguJnguJnguJfguYwNCivguKrguKHguYLguKDguIog4LmA4Lib4Lil4Li14LmI4Lii4LiZ4Lia4Liy4LiH4Lii4Liy4LiHDQor4Liq4Lih4LmC4Lig4LiK4LiZ4LmMIOC5geC4geC5iOC4meC4l+C4reC4h+C5geC4lOC4hw0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguYHguJXguIfguJrguLjguJXguKMNCivguKrguKHguYLguKDguIrguJnguYwg4Lie4Li44LiS4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lih4LmC4Lig4LiK4LiZ4LmMIOC4qOC4o+C4teC4mOC4meC4quC4uOC4geC4suC4jeC4iOC4meC5jA0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguK3guLHguKjguKfguKjguLTguKPguLTguYLguKPguIjguJnguYwNCivguKrguKHguYPguIgg4LiB4Liy4LiN4LiI4LiZ4Liw4Lin4Liy4LioDQor4Liq4Lih4LmD4LiIIOC4guC4s+C4q+C4suC4jQ0KK+C4quC4oeC5g+C4iCDguIjguLHguJnguJfguKPguYzguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKrguKHguYPguIgg4LmA4LiI4Li14Lii4Lih4Lio4Li44Lig4LiB4Li04LiV4LiV4LmMDQor4Liq4Lih4LmD4LiIIOC4iuC4t+C5iOC4meC4reC4suC4o+C4oeC4ouC5jA0KK+C4quC4oeC5g+C4iCDguYHguIvguYjguKLguYjguK3guIcNCivguKrguKHguYPguIgg4LiQ4Li04Lin4Lij4Li04LiZ4LiX4Lij4LmMDQor4Liq4Lih4LmD4LiIIOC4leC4seC4meC4iuC4suC4peC4tQ0KK+C4quC4oeC5g+C4iCDguJfguK3guIfguKPguK3guJQNCivguKrguKHguYPguIgg4LiZ4Lix4LiZ4LiX4Lio4Li04Lil4Lib4LiK4Lix4LiiDQor4Liq4Lih4LmD4LiIIOC4muC4uOC4jeC4o+C4seC4leC4meC5gOC4meC4leC4ow0KK+C4quC4oeC5g+C4iCDguJvguLTguKLguLDguKPguLHguIfguKnguLUNCivguKrguKHguYPguIgg4Lie4Lin4LiH4LiX4Lit4LiHDQor4Liq4Lih4LmD4LiIIOC4n+C4reC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4oeC5g+C4iCDguKHguLXguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguKHguYPguIgg4Lij4Li34LmI4LiZ4LmA4Lij4Li04LiHDQor4Liq4Lih4LmD4LiIIOC5gOC4peC4teC4ouC4h+C4p+C4seC4kuC4meC4hOC4pQ0KK+C4quC4oeC5g+C4iCDguKfguLTguKfguLHguJLguJnguYzguKfguLLguJnguLTguIoNCivguKrguKHguYPguIgg4Lio4Li04Lij4Li04LiB4Lih4Lil4Lih4Liy4LioDQor4Liq4Lih4LmD4LiIIOC4quC4p+C5iOC4suC4h+C5geC4quC4meC4quC4uOC4gg0KK+C4quC4oeC5g+C4iCDguKrguLjguILguYDguKrguKPguLTguKHguKrguIHguLjguKUNCivguKrguKHguYPguIgg4Lir4LiH4Lip4Liy4LiE4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4LmD4LiIIOC4reC4oeC4suC4leC4ouC4geC4uOC4pQ0KK+C4quC4oeC5g+C4iCDguYDguK3guLXguKLguIHguLLguKPguJnguLINCivguKrguYnguKHguIjguLXguJkg4LiZ4Li04LmI4Lih4Lin4Li04Lia4Li54Lil4Lii4LmM4Liq4LihDQor4Liq4LmJ4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHIOC4quC4o+C5ieC4suC4h+C4quC4uOC4guC4lOC4tQ0KK+C4quC4ouC4suC4oSDguILguLPguYHguJvguYnguIcNCivguKrguKLguLLguKEg4Liq4Liy4LiE4LijDQor4Liq4Lii4Li44Lih4Lie4LijIOC4o+C4seC4qOC4oeC4teC4mOC4suC4o+C4sg0KK+C4quC4o+C4iuC4seC4oiDguYLguJ7guJjguLTguYzguIrguLHguKINCivguKrguKPguJnguJ4g4LiK4Lin4LiZ4Lia4Li44LiNDQor4Liq4Lij4Lig4Lix4LiiIOC5geC4i+C5iOC5gOC4q+C4peC4teC5iOC4ouC4pw0KK+C4quC4o+C4o+C4hOC5jOC4iuC4seC4oiDguYDguITguYnguLLguInguLTguKENCivguKrguKPguKPguIrguLHguKIg4LiX4Lit4LiH4LmD4LiIDQor4Liq4Lij4Lij4Lie4LiK4Lix4LiiIOC4nuC4tOC4l+C4seC4geC4qeC4suC4geC4ow0KK+C4quC4o+C4o+C4seC4geC4qeC5jCDguJzguYjguK3guIfguYPguKoNCivguKrguKPguKPguYDguKrguKPguLTguI0g4LiK4Lin4LiZ4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Lij4Lij4LmA4Liq4Lij4Li04LiNIOC5geC4quC4h+C4lOC4suC4pw0KK+C4quC4o+C4p+C4h+C4quC4uOC4lOC4siDguITguYnguLPguIjguLjguJkNCivguKrguKPguKfguLjguJLguLQg4LiY4LiZ4LmA4LiC4Lih4Lig4Lix4LiX4LijDQor4Liq4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4quC4o+C4qOC4seC4geC4lOC4tOC5jCDguKXguLLguKDguKPguLHguJXguJnguYTguJXguKMNCivguKrguKPguKjguLHguIHguJTguLTguYwg4LmA4Lit4Li14LmI4Lii4Lih4LmC4Liq4Lig4LiT4LiyDQor4Liq4Lij4LmJ4Lit4LiiIOC4leC4seC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4o+C5ieC4reC4ouC4l+C4tOC4nuC4ouC5jCDguITguIfguJbguLLguKfguKPguKrguIHguLjguKUNCivguKrguKPguYnguK3guKLguKrguK0g4Liq4Li44Lin4Lij4Lij4LiT4LiZ4LmJ4Lit4LiiDQor4Liq4Lij4Lix4LiN4LiN4Liw4Lin4LiH4Lip4LmMIOC5gOC4geC4leC4uOC4ieC4seC4leC4o+C4suC4o+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4quC4o+C4seC4jeC4mOC4oyDguKrguKHguJvguKPguLDguIHguK3guJoNCivguKrguKPguLLguI3guJfguLTguJ7guKLguYwg4LiI4Liy4Lij4Li44Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LiE4Li44LiTDQor4Liq4Lij4Liy4Lii4Li44LiX4LiYIOC4quC4seC4h+C4guC5jOC4p+C4tOC5gOC4qOC4qQ0KK+C4quC4o+C4suC4p+C4uOC4kuC4tCDguYDguIHguKnguJPguLXguKLguJrguLjguJXguKMNCivguKrguKPguLLguKfguLjguJgg4LmE4LiK4Lii4Liq4Lin4LmI4Liy4LiH4Lio4Li04Lil4Lib4LmMDQor4Liq4Lij4Liy4Lin4Li44LiYIOC4oeC4k+C4teC5gOC4quC4suC4p+C4meC4ng0KK+C4quC4o+C4suC4p+C4uOC4mCDguYDguK3guLXguYjguKLguKHguKrguIfguITguKPguLLguKENCivguKrguKPguLTguJnguJfguLTguJ7guKLguYwg4Lir4Li44LmI4LiZ4Lio4Liy4Liq4LiV4Lij4LmMDQor4Liq4Lij4Li14Lii4LiyIOC4l+C4reC4h+C4geC4o+C4sOC4iOC5iOC4suC4h+C5gOC4meC4leC4ow0KK+C4quC4pOC4qeC4j+C4nuC4oyDguJnguLTguITguKHguJvguKPguLDguKjguLLguKrguJnguYwNCivguKrguKXguKfguKIg4LiE4LiK4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lil4LiwIOC4lOC4sOC5gOC4h+C4suC4sA0KK+C4quC4peC4sCDguKPguK3guJTguJvguKPguLLguJPguLUNCivguKrguKXguLHguIHguIjguLTguJUg4LiY4Lij4Lij4Lih4LmA4LiB4Lip4LijDQor4Liq4Lil4Liy4LihIOC5gOC4iOC5iuC4sOC5gOC4i+C5h+C4mQ0KK+C4quC4peC4tOC4peC5guC4o+C4iOC4meC5jCDguKPguLjguYjguIfguKrguKHguJrguLnguKPguJPguYwNCivguKrguKfguIcg4LmC4LiK4LiE4Lih4Lix4LmI4LiH4Lih4Li1DQor4Liq4Lin4LiHIOC4nuC4p+C4h+C4nuC4tOC4oeC4suC4og0KK+C4quC4p+C4hyDguKrguLHguI3guIHguKPguJPguYwNCivguKrguKfguIfguITguYwg4Lib4Lij4Liy4Lia4Lie4Li44LiX4LiY4LiI4LiyDQor4Liq4Lin4LiU4Li1IOC4oeC4suC4meC4sOC4meC4tOC4leC4ouC5jA0KK+C4quC4p+C4meC4teC4ouC5jCDguKfguIfguKnguYzguYDguKfguJfguKLguYwNCivguKrguKfguKPguKPguITguYwg4LiE4Lih4Liq4Lix4LiZDQor4Liq4Lin4Lij4Lij4Lii4LiyIOC4meC4seC4meC4l+C5hOC4leC4o+C5gOC4lOC4ig0KK+C4quC4p+C4peC4tSDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4quC4p+C4seC4quC4lOC4tOC5jOC5gOC4geC4teC4ouC4o+C4leC4tCDguKrguKfguYjguLLguIfguKjguKPguLUNCivguKrguKfguLHguKrguJTguLTguYwg4LiC4LiV4Li04Lii4Liw4Liq4Li44LiZ4LiX4LijDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4iOC5iOC4suC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguIrguYjguLLguIfguKvguKXguYjguK0NCivguKrguKfguLHguKrguJTguLTguYwg4LiV4LmJ4LiZ4Lij4Lix4Lio4Lih4Li1DQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4mOC4meC4suC4qOC4o+C4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguJrguLjguI3guKLguKPguLHguJXguJvguKPguLDguKDguLINCivguKrguKfguLHguKrguJTguLTguYwg4Lic4Li44LiH4LmA4Lie4Li04LmI4Lih4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC5gOC4nuC4iuC4o+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKHguLLguKXguLXguKfguLTguKXguLLguKgNCivguKrguKfguLHguKrguJTguLTguYwg4Lik4LiX4LiY4Li04LmM4LiX4Lit4LiH4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4p+C4tOC5hOC4peC4o+C4suC4h+C4geC4ueC4ow0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKrguKHguJrguLnguKPguJPguYzguIrguLHguKLguKfguIfguKjguYwNCivguKrguKfguLHguKrguJTguLTguYwg4Liq4Li44LiC4LiX4Lix4LmI4Lin4LiN4Liy4LiV4Li0DQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4q+C4meC4ueC5hOC4iuC4ouC4sg0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguK3guLTguJnguJfguJvguLjguKPguLANCivguKrguKfguLLguJcg4LmA4LiB4LiV4Li44Lib4Liy4Lij4LiwDQor4Liq4Lin4Liy4LiXIOC4l+C4o+C4seC4nuC4ouC5jOC4oeC4suC4gQ0KK+C4quC4p+C4suC4lyDguKHguIfguITguKXguKrguKfguLHguKrguJTguLTguYwNCivguKrguKfguLLguJcg4Lir4LiH4Lip4LmM4LmA4LiB4Li14Lii4Lij4LmMDQor4Liq4Lin4Liy4Liq4LiU4Li04LmMIOC4o+C4oeC4k+C4teC4ouC4mOC4o+C4o+C4oQ0KK+C4quC4p+C5iOC4suC4hyDguIjguLHguJnguJfguKPguLINCivguKrguKfguYjguLLguIcg4LiV4LmI4Lit4Liq4Lir4Liw4LiB4Li44LilDQor4Liq4Lin4LmI4Liy4LiHIOC4m+C4tuC4geC4guC4suC4pw0KK+C4quC4p+C5iOC4suC4hyDguKPguLHguKjguKHguLXguInguLLguKINCivguKrguKfguYjguLLguIcg4Liq4Liy4Lih4LmC4LiB4LmA4Lio4LioDQor4Liq4Lin4LmI4Liy4LiH4LiB4Li04LiIIOC4reC4oeC4o+C4suC4iuC4teC4p+C4sA0KK+C4quC4p+C5iOC4suC4h+C4iOC4tOC4leC4oyDguKrguKfguJnguIjguLHguJnguJfguKPguYwNCivguKrguKfguLTguIcg4LmA4LiB4LiV4Li44LmC4LiB4Lih4Li44LiXDQor4Liq4Lin4Li04LiHIOC5gOC4peC4teC5ieC4ouC4h+C4muC4s+C4o+C4uOC4hw0KK+C4quC4p+C4tOC4mSDguJfguLTguKHguKHguJPguLXguInguLLguKINCivguKrguKrguLTguJjguKMg4LiZ4Liy4LiB4Liq4Li44LiBDQor4Liq4Lir4Lij4Lix4LiQIOC5hOC4iuC4ouC5gOC4nOC4t+C4reC4gQ0KK+C4quC4q+C4seC4qiDguYDguIrguLfguYnguK3guKrguLjguKfguKPguKPguJMNCivguKrguKvguLHguKrguIrguLHguKIg4Lij4Lix4LiK4LiV4LmC4Lie4LiY4Li04LmMDQor4Liq4Lit4LiU4Lio4Lij4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4quC4reC4mSDguKjguKPguLXguYDguJnguJXguKMNCivguKrguK3guLLguIfguITguYwg4LiE4LiK4LmA4Liq4LiZ4Li1DQor4Liq4Lit4Liy4LiUIOC4geC4suC4jeC4iOC4meC4reC4uOC4lOC4oQ0KK+C4quC4reC4suC4lCDguIjguLXguJnguLDguKfguLLguJnguLTguIoNCivguKrguK3guLLguJQg4LmA4LiX4Lio4Lit4Li04LiZ4LiX4Lij4LmMDQor4Liq4Lit4Liy4LiUIOC4nuC4o+C4nuC4h+C4qeC5jA0KK+C4quC4reC4suC4lCDguKLguLHguYjguIfguKLguLfguJkNCivguKrguK3guLLguJQg4Liq4LiB4Li44Lih4LiyDQor4Liq4Lit4Liy4LiUIOC5gOC4q+C4peC4teC4ouC4p+C4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4reC4tOC5ieC4hyDguIHguK3guIfguKvguLTguKPguLHguI0NCivguKrguK3guLTguYnguIcg4Lia4Li44LiN4LiY4Lij4Lij4LihDQor4Liq4Lit4Li04LmJ4LiHIOC4qOC4o+C4teC4nuC4meC4oQ0KK+C4quC5iOC4reC4h+C4qOC4o+C4tSDguIfguLLguKHguYTguJ7guJrguLnguKXguKLguYwNCivguKrguLDguJXguLLguKXguLXguKPguLLguKvguYwg4Lia4Li54LiL4Lix4LilDQor4Liq4Liw4Lir4Lih4Lix4LiUIOC5gOC4peC4suC4sOC4qOC4tOC4o+C4tA0KK+C4quC4sOC4reC4suC4lCDguJbguJnguK3guKHguKfguIfguKjguYwNCivguKrguLDguK3guLLguJQg4Lin4LiH4LmA4Lin4Li14Lii4LiZDQor4Liq4Liw4Lit4Liy4Lij4Li1IOC5geC4p+C4oeC4ueC4lOC4rQ0KK+C4quC4sOC5g+C4miDguKHguLDguKXguLTguYPguIgNCivguKrguLHguITguITguYwg4Lij4Lix4LiV4LiZ4LiY4Lij4Liy4LiY4LijDQor4Liq4Lix4LiH4LiC4LmMIOC5gOC4nOC5iOC4suC4nuC4tOC4oeC4nuC4sg0KK+C4quC4seC4h+C4hOC4oSDguKPguLLguKjguKPguLUNCivguKrguLHguIfguKfguKMg4LmA4Lie4LiK4Lij4Lib4Lij4Liw4Liq4LihDQor4Liq4Lix4LiH4Lin4Lij4LiT4LmMIOC4p+C4sOC5gOC4geC4tOC4lOC5gOC4m+C5ieC4hw0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguIHguKXguLTguYjguJnguKHguLLguKXguLHguKINCivguKrguLHguIfguKfguLLguKXguKLguYwg4LiI4Li14LmI4LmA4Lie4LiK4LijDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4meC4seC4ouC4qOC4tOC4o+C4tA0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguYDguJ7guYfguIrguKPguJnguLjguIoNCivguKrguLHguIfguKfguLLguKXguKLguYwg4Lio4Lij4Li14Lia4Li44LiV4LijDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4reC4oOC4seC4ouC4oOC4seC4geC4lOC4tOC5jA0KK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mSDguIHguYnguK3guIfguYDguKfguKvguLLguKrguLTguIfguKvguKUNCivguKrguLHguIfguYDguKfguLXguKLguJkg4LmA4LiK4Liy4Lin4Lil4Li04LiVDQor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZIOC4muC4uOC4jeC5gOC4quC4h+C4teC5iOC4ouC4oQ0KK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mSDguKXguLLguKDguJ7guLTguYDguKjguKkNCivguKrguLHguIfguYDguKfguLXguKLguJkg4LmB4Lir4Lil4LmI4LiH4Lir4Lil4LmJ4LiyDQor4Liq4Lix4LiI4LiI4LiwIOC4pOC4l+C4mOC4tOC4geC4uOC4peC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4seC4iOC4iOC4siDguKrguJbguLTguKPguLLguKfguLjguJgNCivguKrguLHguI3guIrguLHguKIg4LiE4Lil4LmJ4Liy4Lii4LiK4Li44Lih4LmB4Liq4LiHDQor4Liq4Lix4LiN4LiK4Lix4LiiIOC5gOC4mOC4teC4ouC4o+C4quC4p+C4seC4quC4lOC4tOC5jOC4geC4tOC4iA0KK+C4quC4seC4jeC4iuC4seC4oiDguKXguLTguILguLTguJXguKXguLHguI3guInguIHguKMNCivguKrguLHguI3guIrguLHguKIg4LmA4Lir4Lih4Lib4Lij4Liw4LiK4Li04LiV4LiK4Lix4LiiDQor4Liq4Lix4LiN4LiN4LiyIOC4hOC4peC5ieC4suC4ouC4iOC4tOC4meC4lOC4sg0KK+C4quC4seC4jeC4jeC4siDguJnguLjguYjguKHguYHguKrguIcNCivguKrguLHguI3guI3guLIg4Lij4Lix4Lio4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lix4LiN4LiN4LiyIOC4quC4uOC4guC4nuC4k+C4tOC4iuC4meC4seC4meC4l+C5jA0KK+C4quC4seC4k+C4iuC4suC4oiDguKfguLTguKrguLjguJfguJjguLLguJnguJnguJfguYwNCivguKrguLHguJPguKvguYwg4LiZ4Li04Lin4Liy4Liq4Liw4Lin4Lix4LiVDQor4Liq4Lix4LiV4Lii4LiyIOC4qOC4o+C4teC4reC5iOC4reC4mQ0KK+C4quC4seC4meC4kOC4seC4l+C4kuC5jCDguJfguK3guIfguKHguLINCivguKrguLHguJnguJXguLQg4LiB4Lix4LiT4LiZ4LiB4Li04LiIDQor4Liq4Lix4LiZ4LiV4Li0IOC4hOC4uOC4leC4leC4sOC4quC4tOC4h+C4hOC4tQ0KK+C4quC4seC4meC4leC4tCDguIjguLTguJnguJTguLLguITguKHguJnguYwNCivguKrguLHguJnguJXguLQg4LiK4Li44LmI4Lih4Lin4Lij4Lij4LiT4LmMDQor4Liq4Lix4LiZ4LiV4Li0IOC4leC4leC4tOC4ouC4leC4pOC4qeC4k+C4sg0KK+C4quC4seC4meC4leC4tCDguJfguKPguIfguKjguLTguKPguLQNCivguKrguLHguJnguJXguLQg4LiZ4Li04Lih4Lih4Liy4LiZ4LiZ4Li04LiV4Lii4LmMDQor4Liq4Lix4LiZ4LiV4Li0IOC4nOC4peC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4seC4meC4leC4tCDguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKrguLHguJnguJXguLQg4LmA4Lii4LmH4LiZ4Liq4LiW4Li04LiV4Lii4LmMDQor4Liq4Lix4LiZ4LiV4Li0IOC5gOC4peC4tOC4qOC4quC4geC4uOC4peC4nuC4seC4meC4mOC5jA0KK+C4quC4seC4meC4leC4tCDguKfguLTguYTguKXguJnguLPguYLguIrguITguIrguLHguKINCivguKrguLHguJnguJXguLQg4Liq4LiV4Liy4LmA4LiC4LiVDQor4Liq4Lix4LiZ4LiV4Li0IOC4quC4uOC4guC4oeC4suC4gQ0KK+C4quC4seC4meC4leC4tCDguKvguKfguLHguIfguKrguLjguJnguJfguKMNCivguKrguLHguJnguJXguLQg4Lit4Liy4Lig4Liy4Liq4LiB4Li44Lil4LmA4LiU4LiKDQor4Liq4Lix4LiZ4LiV4Li04LiK4Lix4LiiIOC4l+C4reC4h+C4guC4suC4pw0KK+C4quC4seC4meC4leC4tOC4nuC4h+C4qeC5jCDguJnguLTguKHguLTguJXguKPguJTguLUNCivguKrguLHguJnguJXguLTguKXguLHguIHguKnguJPguYwg4LiY4Lix4LiN4LiN4Liy4Lir4Liy4LijDQor4Liq4Lix4LiZ4LiV4Li04LmMIOC4reC4tOC4meC4l+C4o+C5gOC4geC4qeC4oQ0KK+C4quC4seC4meC4leC5jCDguJjguJnguKPguLHguJXguJnguYzguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLHguJnguJXguYwg4LmA4Lil4Li04Lio4Lib4Li04Lii4Liw4Lia4Li44LiNDQor4Liq4Lix4LiZ4LiV4LmMIOC4reC4seC4iOC4iOC4tOC4oeC4suC4mOC4ow0KK+C4quC4seC4meC4l+C4meC4siDguKfguLjguYjguJnguIjguLnguYrguJQNCivguKrguLHguJnguJfguLHguJQg4LiI4Li04LiV4LiV4Li44Lij4LiH4LiE4LmM4Lit4Liy4Lig4Lij4LiT4LmMDQor4Liq4Lix4LiZ4LiX4Lix4LiUIOC4quC4s+C4meC4seC4geC4nuC4h+C4qeC5jA0KK+C4quC4seC4meC4mOC4suC4mSDguITguLPguKHguLTguYjguIcNCivguKrguLHguKHguJzguLHguKog4LiE4LiK4Lin4LiH4Lio4LmMDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4hOC4s+C4k+C4nuC4seC4kuC4meC5jA0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguIvguLjguYjguKHguYDguKrguJnguLINCivguKrguLHguKHguJ7guLHguJnguJjguYwg4LiZ4LiZ4LiX4Lio4Li44LiCDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4nuC4seC4meC4mOC4uOC5jOC4oeC4k+C4tQ0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguKPguLnguYnguJvguKPguLDguKHguLLguJMNCivguKrguLHguKHguJ7guLHguJnguJjguYwg4Liq4Lin4LmI4Liy4LiH4LmB4Lic4LmJ4LinDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4q+C4tOC4o+C4seC4jeC4o+C4seC4geC4qeC4sg0KK+C4quC4seC4oeC4oeC4suC4o+C4tOC4meC4l+C4o+C5jCDguJXguLHguJnguKjguKPguLUNCivguKrguLHguKHguKTguJfguJjguLTguYwg4LiE4Li44LiT4LmA4LiI4LiV4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4lOC4p+C4h+C4quC4sOC4reC4suC4lA0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguJnguLTguYjguKHguK3guJnguIfguITguYwNCivguKrguLHguKHguKTguJfguJjguLTguYwg4Lie4Li44LiB4Lie4Lix4LiBDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC5gOC4peC4teC5iOC4ouC4oeC5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jA0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguKrguLjguILguYPguKoNCivguKrguLHguKHguKTguJfguJjguLTguYwg4Lit4Li44Lij4Li44LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Liy4LiB4LilIOC4quC4o+C4quC4uOC4meC4l+C4ow0KK+C4quC4suC4hOC4oyDguITguIfguKrguKHguJrguLnguKPguJPguYwNCivguKrguLLguITguKMg4LmB4LiU4LiH4Liq4Li1DQor4Liq4Liy4LiE4LijIOC4muC4seC4p+C5gOC4nuC4iuC4ow0KK+C4quC4suC4hOC4oyDguJ7guLnguJnguJ7guIjguJnguYzguKHguLLguKgNCivguKrguLLguITguKMg4Lil4Liy4Lig4LmA4LiI4Lij4Li04LiNDQor4Liq4Liy4LiE4LijIOC4quC4suC4o+C4iuC4suC4leC4tA0KK+C4quC4suC4hOC4oyDguK3guLjguYjguJnguIjguLTguJXguKMNCivguKrguLLguJfguLTguJUg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Liy4LiY4LijIOC4m+C4suC4peC4sOC4geC4sOC4p+C4h+C4qeC5jA0KK+C4quC4suC4mOC4tOC4lSDguIjguLHguJnguJfguKPguIjguLTguYLguKPguIjguJnguYzguIHguLjguKUNCivguKrguLLguJjguLTguJUg4LmA4LiV4LmH4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4Liy4LiY4Li04LiVIOC4nuC4h+C4qOC5jOC4p+C4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4suC4mOC4tOC4lSDguKXguLXguKXguLLguIjguLLguKPguLjguKfguKPguKPguJMNCivguKrguLLguJjguLTguJUg4Liq4Li44LiX4LiY4Li04Lin4Li44LiS4Li04LiZ4Lik4LmA4Lia4Lio4Lij4LmMDQor4Liq4Liy4LiY4Li04LiZ4Li1IOC4p+C4tOC4peC4suC4p+C4o+C4o+C4kw0KK+C4quC4suC4meC4tOC4lSDguJnguYjguKfguKHguJfguLHguJUNCivguKrguLLguJnguLTguJXguKLguYwg4Lib4Lix4LmJ4LiZ4LiX4Lit4LiHDQor4Liq4Liy4Lih4LiK4Lix4LiiIOC4nuC4p+C4h+C4quC4s+C4peC4tQ0KK+C4quC4suC4oeC4suC4o+C4liDguITguIfguITguLPguKrguLUNCivguKrguLLguKHguLLguKPguJYg4LiK4Li34LmI4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4meC4p+C4peC4peC4sOC4reC4reC4hw0KK+C4quC4suC4oeC4suC4o+C4liDguJ7guKXguLLguKLguYDguJbguLfguYjguK3guJkNCivguKrguLLguKHguLLguKPguJYg4Lij4Lix4Lio4Lih4Li14LmC4Lij4LiI4LiZ4LmM4Lin4LiH4Lio4LmMDQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4quC4p+C5iOC4suC4h+C5geC4quC4hw0KK+C4quC4suC4oeC4suC4o+C4liDguK3guLTguJnguJfguKPguYDguJfguJ4NCivguKrguLLguKIg4Lie4Lij4Liy4Lir4Lih4LiT4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Liq4Liy4Lii4LiI4Li04LiVIOC4iuC4seC4ouC4oeC4h+C4hOC4pQ0KK+C4quC4suC4ouC4iuC4pSDguInguLHguJXguKPguYHguIHguYnguKfguJrguKPguLTguJrguLnguKPguJPguYwNCivguKrguLLguKLguIrguKUg4Lie4Li44LiB4LmA4LiI4Lij4Li04LiNDQor4Liq4Liy4Lii4LiK4LilIOC4quC4uOC4guC4qOC4suC4meC4leC4tOC4quC4geC4uOC4pQ0KK+C4quC4suC4ouC4l+C4reC4hyDguIrguLHguKLguIrguJnguLANCivguKrguLLguKLguJfguK3guIcg4Lih4Li04Lit4Lij4Lix4LiNDQor4Liq4Liy4Lii4LiX4Li04Lie4Lii4LmMIOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4ouC4qOC4o+C4tQ0KK+C4quC4suC4ouC4mOC4suC4oyDguKjguLjguILguKPguLHguJXguJnguYwNCivguKrguLLguKLguJrguLHguKcg4Lie4Lil4Lit4Lii4LiH4Liy4LihDQor4Liq4Liy4Lii4Lid4LiZIOC4leC4suC4peC4uOC4hOC5gOC4lOC4reC4o+C5jA0KK+C4quC4suC4ouC4neC4mSDguKfguLTguYDguKjguKnguKjguLTguKPguLQNCivguKrguLLguKLguJ7guLTguJMg4LiE4Lij4Li44Liq4Liy4LiV4LiwDQor4Liq4Liy4Lii4Lie4Li04LiTIOC5gOC4luC4suC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4suC4ouC4nuC4tOC4kyDguJ7guLjguYjguKHguYDguIHguKXguLXguYnguKLguIcNCivguKrguLLguKLguJ7guLTguJMg4Lio4Lij4Li14LmC4Lij4LiI4LiZ4LmMDQor4Liq4Liy4Lii4Lie4Li04LiZIOC4iuC4p+C4suC4peC4quC4seC4meC4leC4leC4tA0KK+C4quC4suC4ouC4nuC4tOC4mSDguK3guLTguJnguJfguKPguKvguLANCivguKrguLLguKLguKPguLjguYjguIcg4Lij4Liy4Lih4Lin4Li04LiZ4Li04LiIDQor4Liq4Liy4Lii4Lil4LihIOC4l+C4o+C4seC4nuC4ouC5jOC4meC4suC4hA0KK+C4quC4suC4ouC4quC4meC4oSDguKfguLLguIjguJnguLDguKfguLTguJnguLTguIgNCivguKrguLLguKLguKrguKHguKMg4LmC4LiV4LmK4Liw4Lit4Liy4LiIDQor4Liq4Liy4Lii4Liq4Lih4LijIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4ouC4tOC5iOC4h+C4quC4uOC4gg0KK+C4quC4suC4ouC4quC4p+C4suC4lyDguJrguLHguKfguIHguKXguYjguLMNCivguKrguLLguKLguKrguLjguJPguLUg4LiC4Li44LiZ4LiX4Lit4LiHDQor4Liq4Liy4Lii4Liq4Li44LiU4LmD4LiIIOC4m+C4tOC5iOC4meC4geC4peC5iOC4reC4oQ0KK+C4quC4suC4ouC4quC4uOC4meC4teC4ouC5jCDguIjguLjguJXguLTguJ7guLTguJfguLHguIHguKnguYzguKfguIfguKjguYwNCivguKrguLLguKLguKrguLjguJnguLXguKLguYwg4Lig4Lix4LiB4LiU4Li04LmM4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Liq4Liy4Lii4Liq4Li44LiZ4Li14Lii4LmMIOC4reC4seC4qOC4p+C5jOC5hOC4iuC4ouC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4suC4ouC4q+C4ouC4uOC4lCDguIjguLHguJnguJfguKMNCivguKrguLLguKLguKvguKLguLjguJQg4LiY4Li04LiZ4LiZ4LiX4LmMDQor4Liq4Liy4Lii4Lir4Lii4Li44LiUIOC5gOC4nuC4tOC5iOC4oeC4quC4oeC4muC4seC4leC4tA0KK+C4quC4suC4ouC4q+C4ouC4uOC4lCDguKrguIfguKrguLjguKfguKPguKPguJMNCivguKrguLLguKLguKvguKLguLjguJQg4LmC4Lit4Lis4Liy4Lij4Liq4Li44LiC4Liq4LiB4Li44LilDQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMIOC4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4ow0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguJXguKPguIfguKjguLTguKPguLTguKfguLTguJrguLnguKXguKLguYwNCivguKrguLLguKLguLHguJPguKvguYwg4Lie4Lix4LiZ4LiY4Li44LmM4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMIOC4p+C4iuC4tOC4o+C5gOC4lOC4iuC5gOC4quC4luC4teC4ouC4ow0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguKvguJnguLnguKPguLLguIoNCivguKrguLLguKLguLHguJnguJXguYwg4LiE4LiH4LiE4Li44LiTDQor4Liq4Liy4Lii4Lix4LiZ4LiV4LmMIOC4nuC4uOC4l+C4mOC4oeC4sg0KK+C4quC4suC4ouC4seC4meC4q+C5jCDguKXguLXguKXguLLguIHguLjguKjguKXguKfguIfguKjguYwNCivguKrguLLguKLguYPguIgg4LiE4LmJ4Liz4LiI4Li44LiZDQor4Liq4Liy4Lii4LmD4LiIIOC4l+C4reC4h+C4meC4suC4hA0KK+C4quC4suC4ouC5g+C4iCDguYDguJ7guLXguKLguKPguYDguKrguKPguLTguKHguIHguLTguIgNCivguKrguLLguKLguYPguIgg4Lin4Li44LiS4Li04Lie4LiH4Lio4LmMDQor4Liq4Liy4Lii4LmD4LiIIOC4reC4o+C4uOC4k+C4iuC4seC4og0KK+C4quC4suC4o+C4oOC4tSDguITguIfguJfguKPguLHguJ7guKLguYwNCivguKrguLLguKPguKDguLUg4LmE4Lin4LiX4Lii4LmM4LiB4Li44LilDQor4Liq4Liy4Lij4Lix4LiK4LiV4LmMIOC5gOC4nOC4t+C5iOC4reC4meC4m+C4kOC4oQ0KK+C4quC4suC4o+C4tOC4k+C4tSDguK3guLHguKjguKfguLTguJnguJnguLTguKHguLTguJXguKMNCivguKrguLLguKXguLTguIHguLIg4LiY4LiZ4Liw4Lin4Li04Lia4Li54Lil4Lii4LmM4LiK4Lix4LiiDQor4Liq4Liy4Lil4Li04LiZ4Li1IOC4quC4tOC4leC4sOC4ouC4seC4hw0KK+C4quC4suC4peC4tSDguKrguLLguYLguKPguKfguLLguJcNCivguKrguLLguKXguLXguYgg4LmB4LiL4LmI4Liu4Lix4LmJ4LiZDQor4Liq4Liy4Lil4Li14LmIIOC5guC4nuC4mOC4tOC5gOC4p+C4iuC4geC4uOC4pQ0KK+C4quC4suC4peC4teC5iCDguYHguKrguIfguInguLLguKINCivguKrguLLguKfguLTguJXguKPguLUg4LiB4Lil4LmI4Lit4Lih4LmA4Lit4Li14LmJ4Lii4LiHDQor4Liq4Liy4Lin4Li04LiV4Lij4Li1IOC4nOC4tOC4p+C4nOC5iOC4reC4hw0KK+C4quC4suC4p+C4tOC4leC4o+C4tSDguKrguLTguIfguKvguKPguLIg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4quC4suC4q+C4o+C5iOC4suC4oiDguYTguIrguKLguKHguLLguJXguKMNCivguKrguLLguYLguKPguIjguJnguYwg4LmC4LiB4Lih4Lil4Lir4LiX4Lix4LiiDQor4Liq4Liy4LmC4Lij4LiI4LiZ4LmMIOC4l+C4reC4h+C4quC4p+C4o+C4o+C4hOC5jA0KK+C4quC4suC5guC4o+C4iOC4meC5jCDguJ7guLbguYjguIfguKrguLjguIINCivguKrguLLguYLguKPguIjguJnguYwg4Lio4Li04Lij4Li04LmA4Lit4Li14LmJ4Lii4Lin4Lie4Li04LiB4Li54LilDQor4Liq4Liy4LmC4Lij4LiKIOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4quC4suC5guC4o+C4iiDguYDguKXguLLguKfguIHguLjguKUNCivguKrguLPguJnguKfguJkg4Lic4LiB4Liy4LmB4LiB4LmJ4LinDQor4Liq4Liz4Lij4Lin4LiIIOC4meC4tOC4ouC4oeC5gOC4lOC4ig0KK+C4quC4s+C4o+C4p+C4oSDguJrguLjguKPguLjguKnguKPguLHguJXguJnguJ7guLHguJnguJjguLjguYwNCivguKrguLPguKPguKfguKEg4Lit4LmI4Lit4LiZ4Lih4Li04LmI4LiHDQor4Liq4Liz4Lij4Lin4LiiIOC4guC4s+C4oOC4seC4geC4lOC4tQ0KK+C4quC4s+C4o+C4p+C4oiDguIjguLHguJnguJfguKPguYzguKrguKHguJrguLjguI0NCivguKrguLPguKPguKfguKIg4LiK4Li44LmI4Lih4Lin4Li04LmA4LiK4Li14Lii4LijDQor4Liq4Liz4Lij4Lin4LiiIOC4luC4tuC4h+C5g+C4iA0KK+C4quC4s+C4o+C4p+C4oiDguJnguLLguJnguYnguK3guKINCivguKrguLPguKPguKfguKIg4Lib4Lij4Liw4LiX4Lix4LiH4LiE4LizDQor4Liq4Liz4Lij4Lin4LiiIOC4nuC5iOC4p+C4h+C5gOC4oOC4leC4o+C4sg0KK+C4quC4s+C4o+C4p+C4oiDguKDguLnguYjguJfguK3guIcNCivguKrguLPguKPguKfguKIg4Lij4Lit4LiU4LiB4Liz4LmA4Lir4LiZ4Li04LiUDQor4Liq4Liz4Lij4Lin4LiiIOC4p+C4o+C4meC4uOC4ig0KK+C4quC4s+C4o+C4p+C4oiDguKrguKHguLTguJfguJjguLTguJjguKPguKPguKHguJjguLLguJTguLINCivguKrguLPguKPguKfguKIg4Liq4Li44Lij4Li14Lii4LmM4Lio4Lij4Li14Liq4LiB4Liy4LinDQor4Liq4Liz4Lij4Lin4LiiIOC4reC5iOC4reC4meC4meC4tOC5iOC4oQ0KK+C4quC4s+C4o+C4p+C4pSDguJ7guLjguIHguIHguLDguJPguLLguJnguJnguJfguYwNCivguKrguLPguKPguK3guIcg4Lik4LiB4Lip4LmM4Liq4Li44LiX4LiY4Li04Lio4Li04Lij4Li04LmA4LiU4LiKDQor4Liq4Liz4Lij4Liy4LiNIOC4geC4seC4peC4ouC4suC4k+C4qOC4tOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4s+C4o+C4suC4jSDguYDguILguLXguKLguKfguIrguLDguK3guLjguYjguKENCivguKrguLPguKPguLLguI0g4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lit4Li14LmI4Lii4LihDQor4Liq4Liz4Lij4Liy4LiNIOC4iuC5ieC4suC4h+C5gOC4ouC4suC4p+C5jA0KK+C4quC4s+C4o+C4suC4jSDguJTguLXguKrguLjguJQNCivguKrguLPguKPguLLguI0g4LiX4Li04Lie4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Liz4Lij4Liy4LiNIOC4meC4uOC4iuC5geC4l+C4mQ0KK+C4quC4s+C4o+C4suC4jSDguJvguIHguKrguKfguYjguLLguIfguYDguIjguKPguLTguI0NCivguKrguLPguKPguLLguI0g4Lie4Lii4Li44LiH4LmB4LiB4LmJ4LinDQor4Liq4Liz4Lij4Liy4LiNIOC5gOC4nuC5h+C4iuC4o+C4reC4uOC5hOC4ow0KK+C4quC4s+C4o+C4suC4jSDguKHguLLguKXguLXguYDguJfguKgNCivguKrguLPguKPguLLguI0g4Lij4Lix4LiV4LiV4Liy4LiB4LijDQor4Liq4Liz4Lij4Liy4LiNIOC4p+C4o+C4o+C4k+C4leC4o+C4hw0KK+C4quC4s+C4o+C4suC4jSDguKjguLHguKXguKLguYzguKfguLTguYDguKjguKkNCivguKrguLPguKPguLLguI0g4Liq4Liy4LiE4LijDQor4Liq4Liz4Lij4Liy4LiNIOC5gOC4quC4h+C4teC5iOC4ouC4oeC5gOC4ieC4og0KK+C4quC4s+C4o+C4suC4jSDguK3guKPguKPguJbguK3guLTguJnguJfguKPguLXguKLguYwNCivguKrguLPguKPguLLguI0g4Liu4Liy4LmA4LiL4LmK4LiwDQor4Liq4Liz4Lik4LiX4LiY4Li04LmMIOC4quC4reC4meC4geC4o+C4sOC4leC5iOC4suC4og0KK+C4quC4s+C4peC4tSDguYHguIvguYjguKDguLnguYgNCivguKrguLPguKXguLUg4Lie4Li04LiG4LmA4LiZ4Lio4Lin4LijDQor4Liq4Liz4Lil4Li1IOC4quC4suC4ouC4guC4uOC4meC4l+C4lA0KK+C4quC4s+C4reC4reC4oiDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLPguK3guLLguIcg4Lit4Li04LmI4Lih4LiI4Li04LiV4LijDQor4Liq4Liz4Lit4Liy4LiH4LiE4LmMIOC4iuC4meC4sOC4quC4uOC4o+C4tOC4ouC4sOC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguJnguLHguJnguJfguKPguLHguJXguJnguIrguLHguKINCivguKrguLPguK3guLLguIfguITguYwg4LmA4Lie4Lil4Li04LiZ4Lir4Lix4LiUDQor4Liq4Liz4Lit4Liy4LiH4LiE4LmMIOC4p+C4h+C4qeC5jOC4quC4suC4ouC4quC4tOC4mQ0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguYTguKvguKfguKrguKfguYjguLLguIcNCivguKrguLPguYDguJnguLIg4LiY4Li04LiE4Li44LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Liz4LmA4LiZ4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4reC5iOC4reC4mQ0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguIHguKPguIHguKHguKUNCivguKrguLPguYDguJnguLXguKLguIcg4LiI4Li14LiU4Lil4Liz4LiU4Lin4LiZDQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4l+C4qOC4p+C4h+C4qeC5jA0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguJvguLDguKXguLDguIrguLLguJXguLQNCivguKrguLPguYDguJnguLXguKLguIcg4Lig4Li54LmI4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4qOC4o+C4teC4p+C4o+C4o+C4k+C5jA0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguKvguK3guKHguIrguLfguYjguJkNCivguKrguLPguYDguKDguLIg4LmA4LiI4Li14Lii4Lij4Liq4Li44Lih4Lix4LiiDQor4Liq4Liz4LmA4Lig4LiyIOC4muC4uOC4jeC4reC5iOC4reC4mQ0KK+C4quC4s+C5gOC4oOC4siDguKfguIfguKjguYzguKrguLXguJTguLINCivguKrguLPguYDguKPguYfguIgg4LiI4Lij4Lix4LiN4LiN4Liy4Lit4LmI4Lit4LiZDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4geC4reC4h+C5geC4quC4h+C4qOC4o+C4tQ0KK+C4quC4s+C5gOC4o+C4tOC4hyDguIjguLHguJnguJfguKPguKHguJPguLUNCivguKrguLPguYDguKPguLTguIcg4LiU4Lin4LiH4Lig4Li44Lih4LmA4Lih4LioDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4meC4tOC4peC4nuC4pOC4geC4qeC5jA0KK+C4quC4s+C5gOC4o+C4tOC4hyDguJ7guKXguK3guKLguIfguLLguKENCivguKrguLPguYDguKPguLTguIcg4Lih4Li04LmI4LiH4LiC4Lin4Lix4LiNDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4p+C4seC4kuC4meC4sOC5guC4iuC4leC4tA0KK+C4quC4s+C5gOC4o+C4tOC4hyDguKrguLXguKrguLjguIENCivguKrguLPguYDguKPguLTguIcg4Lit4Lix4Lih4Lil4Li14Lii4LmMDQor4Liq4Li04LiH4LiC4LijIOC4mOC4teC4o+C4suC4l+C4o+C4hw0KK+C4quC4tOC4h+C4q+C5jOC4l+C4p+C4mSDguYDguJXguIjguYrguLANCivguKrguLTguIfguKvguLAg4Liq4Liy4Lii4LiX4Lit4LiHDQor4Liq4Li04LiH4Lir4LmMIOC4hOC4iuC5gOC4quC4meC4tQ0KK+C4quC4tOC4h+C4q+C5jCDguYDguKXguLTguKjguJnguLLguKHguKfguIfguKjguYzguKfguLLguJkNCivguKrguLTguJXguJjguLTguYwg4LiI4Lix4LiH4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li04LiX4LiY4Li0IOC4leC4seC4k+C4keC5guC4reC4oOC4suC4qg0KK+C4quC4tOC4l+C4mOC4tOC4geC4oyDguKjguLTguKPguLTguYDguKHguLfguK3guIfguKHguLnguKUNCivguKrguLTguJfguJjguLTguIrguLHguKIg4LmA4LiC4LmI4LiH4LiX4Lit4LiHDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5g+C4iOC4iuC4t+C5ieC4mQ0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguJTguKPguLjguJPguKfguLHguJXguLQNCivguKrguLTguJfguJjguLTguIrguLHguKIg4LmA4LiX4Lin4Lir4Liq4LiB4Li44Lil4LiX4Lit4LiHDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4m+C4peC4teC4geC4reC4s+C5hOC4ng0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguYDguJ7guLXguKLguKPguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguKrguLTguJfguJjguLTguIrguLHguKIg4Lik4LiB4Lip4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmM4LiB4Li44LilDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC5jOC4reC4s+C4nuC4seC4mQ0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguKrguLTguJfguJjguLTguKfguLTguJrguLnguKXguKLguYzguKfguLHguJLguJnguYwNCivguKrguLTguJfguJjguLTguIrguLHguKIg4LmA4Lir4Lil4Li34Lit4LiH4Liq4Li44LiC4Liq4Liy4LiE4LijDQor4Liq4Li04LiX4LiY4Li04LiZ4Lix4LiZIOC4iuC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4tOC4l+C4mOC4tOC4nuC4h+C4qeC5jCDguIHguYjguK3guYDguKjguKPguKnguJDguKPguLHguIrguJXguYwNCivguKrguLTguJfguJjguLTguJ7guKLguLLguIHguKPguJPguYwgKOC4p+C4teC4o+C4suC4meC4uOC4p+C4seC4leC4leC5jCkNCivguKrguLTguJfguJjguLTguJ7guKMg4Lia4Liz4LmA4Lir4LiZ4LmH4LiI4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li04LiX4LiY4Li04Lie4LijIOC4quC4oeC4muC4uOC4jQ0KK+C4quC4tOC4l+C4mOC4tOC4nuC4pSDguKfguLHguJLguJnguITguJTguLUNCivguKrguLTguJfguJjguLTguKPguLHguJXguJnguYwg4Lie4Li04LiK4LiN4LmM4Lie4Li04LiX4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li04LiX4LiY4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5geC4iOC5ieC4hw0KK+C4quC4tOC4l+C4mOC4tOC4qOC4seC4geC4lOC4tOC5jCDguKXguLTguYnguKHguKPguKrguJjguKPguKPguKENCivguKrguLTguJfguJjguLTguKjguLHguIHguJTguLTguYwg4Lit4Li44Lia4Lil4Lij4Lix4LiV4LiZ4LiwDQor4Liq4Li04LiX4LiY4Li04LmA4LiX4LioIOC4geC4tOC4leC4leC4tOC4geC4uOC4peC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4tOC4l+C4mOC4tOC5guC4iuC4hCDguKjguKPguLXguKrguLjguITguJnguJjguYwNCivguKrguLTguJfguJjguLTguYwg4Lib4Lij4Li44Lio4LiU4Liz4LmA4LiB4Li04LiHDQor4Liq4Li04LiZIOC4iOC4tOC4meC4lOC4suC4o+C4seC4leC4meC4p+C4o+C4geC4uOC4pQ0KK+C4quC4tOC4mSDguKfguIfguKjguYzguITguLjguYnguKHguJ7guIfguKjguYwNCivguKrguLTguJnguIrguLHguKIg4LiI4Lit4Lih4LmB4Liq4LiHDQor4Liq4Li04LiZ4LiK4Lix4LiiIOC4nuC4o+C4q+C4oeC5gOC4quC4meC4teC4ouC5jA0KK+C4quC4tOC4meC4iuC4seC4oiDguKrguLjguJfguJjguLTguKfguIfguKnguYwNCivguKrguLTguJnguJjguLLguKMg4Lin4LmI4Lit4LiH4LiV4Liy4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Li04LiZ4LiY4Li44LmMIOC4peC4tOC5ieC4oeC4m+C4tOC4leC4tA0KK+C4quC4tOC4meC4q+C4peC4seC5iOC4hyDguYDguK3guLfguYnguK3guKrguKHguKrguIHguLjguKUNCivguKrguLTguJnguLUg4Lih4LiT4Li14LiB4Li44LilDQor4Liq4Li04LiZ4Li14LiZ4Liy4LiPIOC4l+C4reC4h+C5guC4muC4o+C4suC4kw0KK+C4quC4tOC4meC4teC4nuC4o+C4o+C4kyDguJrguLjguI3guYDguKXguLXguYnguKLguIcNCivguKrguLTguKPguIHguLjguKUg4LiV4Liw4LmA4LiE4Li14Lii4LiZ4LiZ4Li44LiKDQor4Liq4Li04Lij4Li0IOC4m+C4o+C4sOC4p+C4suC4q+C4sOC4meC4suC4p+C4tOC4mQ0KK+C4quC4tOC4o+C4tOC4geC4suC4jeC4iOC4meC5jCDguJTguKfguIfguIfguLLguKENCivguKrguLTguKPguLTguIHguLjguKUg4LmA4Lin4Li14Lii4LiH4LiK4LiZ4LiBDQor4Liq4Li04Lij4Li04LiK4Lix4LiiIOC4leC4seC4meC4leC4tOC5gOC4peC4tOC4qOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4tOC4o+C4tOC4jeC4jeC4siDguYLguKrguKDguJPguKrguIHguLjguKXguKjguLHguIHguJTguLTguYwNCivguKrguLTguKPguLTguJnguJfguKPguYzguJfguLTguJ7guKLguYwg4LiC4Liz4LiX4Li04Lie4Lii4LmMDQor4Liq4Li04Lij4Li04LiZ4Lij4Liy4Lig4Lij4LiT4LmMIOC4meC4tOC4peC4muC4uOC4leC4ow0KK+C4quC4tOC4o+C4tOC4meC4suC4lyDguYDguKvguKXguLfguK3guIfguK3guKPguYjguLLguKHguKfguLTguYTguKUNCivguKrguLTguKPguLTguJ7guIfguKnguYwg4Lie4Li44LiX4LiY4LiY4LiZ4Liq4Li44LiZ4LiX4LijDQor4Liq4Li04Lij4Li04Lie4LijIOC5gOC4iOC4meC4geC4iuC4geC4ow0KK+C4quC4tOC4o+C4tOC4nuC4oyDguYDguJXguIrguJnguLDguKjguLHguIHguJTguLTguYwNCivguKrguLTguKPguLTguJ7guKMg4Lie4Li04Lie4Lix4LiS4Lie4Lil4LiB4Liy4LiiDQor4Liq4Li04Lij4Li04Lie4LijIOC4qOC4o+C4teC5gOC4nuC4teC4ouC4ow0KK+C4quC4tOC4o+C4tOC4nuC4oyDguK3guLHguKjguKfguKPguLHguJnguJXguYwNCivguKrguLTguKPguLTguJ7guLHguJLguJnguYwg4LiB4Lih4Lil4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li04Lij4Li04Lih4LiZ4LiV4LmMIOC4muC4uOC4jeC4q+C4peC5ieC4sg0KK+C4quC4tOC4o+C4tOC4oeC4siDguYTguJzguYjguJ7guKXguLkNCivguKrguLTguKPguLTguKHguLLguJXguLIg4LmA4Lij4LmI4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmM4Liq4Li44LiCDQor4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4iOC5iOC4oeC4lOC4p+C4hw0KK+C4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguJ7guKPguKfguLTguKXguLLguKjguKrguLTguKPguLQNCivguKrguLTguKPguLTguKPguLHguJXguJnguYwg4LmB4Liq4LiH4Lie4Lii4Lix4LieDQor4Liq4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4muC4uOC4jeC5g+C4q+C4jeC5iA0KK+C4quC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguK3guYvguK3guIfguKrguIHguLjguKUNCivguKrguLTguKPguLTguKfguKPguKPguJMg4LiZ4Liy4LiE4Lit4LmI4Lit4LiZDQor4Liq4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4quC4tOC4l+C4mOC4suC4h+C4geC4ueC4ow0KK+C4quC4tOC4o+C4tOC4p+C4tOC4oOC4siDguK3guJnguLHguJnguJXguIrguLLguJXguLQNCivguKrguLTguKPguLTguK3guKPguKPguJPguJ4g4LiY4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li04Lij4Li1IOC4guC4seC4meC4l+C4reC4hw0KK+C4quC4tOC4p+C4reC5iOC4reC4mSDguYHguIvguYjguJXguLHguYnguIcNCivguKrguLTguYLguKPguJXguKHguYwg4Lin4Lix4LiY4LiZ4LiY4Liy4LiU4LiyDQor4Liq4Li14LiU4LiyIOC4p+C4seC4iuC4o+C4nuC4tOC4oeC4peC4nuC4o+C4o+C4kw0KK+C4quC4teC4meC4p+C4pSDguIjguLHguJnguJfguKPguYzguKPguLTguYnguKcNCivguKrguLXguJnguLXguJ7guKPguKPguJMg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lie4LiH4Lip4LmM4Liq4Liy4LijDQor4Liq4Li14Lir4LiZ4Liy4LiXIOC4m+C4o+C4sOC4ouC4ueC4o+C4o+C4seC4leC4meC5jA0KK+C4quC4t+C4miDguITguLPguJnguLTguKUNCivguKrguLfguJrguJ7guIfguKnguYwg4LiQ4Li04LiV4Li04LmC4LiK4LiV4Li04Lij4Lix4LiV4LiZ4LiyDQor4Liq4Li34Lia4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4tOC4jeC4jeC4suC4geC4uOC4pQ0KK+C4quC4t+C4muC4quC4p+C4seC4quC4lOC4tOC5jCDguKfguLHguJLguJnguJDguLLguJnguLANCivguKrguLjguIHguKMg4LiK4Lil4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li44LiCDQor4Liq4Li44LiB4Lij4Li1IOC4p+C4seC4iuC4o+C4nuC4o+C4o+C4kw0KK+C4quC4uOC4geC4pSDguKLguLfguJnguJXguKPguLDguIHguLnguKXguIrguLHguKINCivguKrguLjguIHguLHguI3guI3guLIg4LiB4Li44Lil4LmA4Lij4Li34Lit4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4hOC4s+C4oeC5iOC4p+C4hw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguIjguLTguJXguKPguYDguIjguKPguLTguI0NCivguKrguLjguIHguLHguI3guI3guLIg4LiK4Lix4Lii4Lio4Lij4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguJXguLHguYnguIfguYDguJXguLTguKHguJfguK3guIcNCivguKrguLjguIHguLHguI3guI3guLIg4LiX4Liy4Lia4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4meC4tOC4ouC4oeC5g+C4meC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguJvguKPguLDguKrguIfguITguYwNCivguKrguLjguIHguLHguI3guI3guLIg4Lie4Lij4Lin4Liq4Lix4LiZ4LiV4LmMDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC5geC4nuC4oOC4tOC4o+C4oeC4ouC5jOC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguYDguKHguIbguK3guKPguLTguKLguLANCivguKrguLjguIHguLHguI3guI3guLIg4Lik4LiX4Lix4Lii4LiY4Lij4Lij4LihDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4p+C4seC4kuC4keC4geC5guC4geC4qOC4pQ0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguKjguLTguKPguLTguJvguKPguLDguKDguLLguIHguLTguIgNCivguKrguLjguIHguLHguI3guI3guLIg4Liq4Li04LiH4Lir4LmM4LiX4Lit4LiHDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4quC4uOC5guC4o+C4iOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguK3guJnguLjguKHguLLguJnguKjguLTguKPguLTguIHguLjguKUNCivguKrguLjguIHguLHguI3guI3guLIg4LmA4Lit4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiB4Lix4LiZ4Lii4LiyIOC4oOC4ueC5geC4gg0KK+C4quC4uOC4geC4seC4peC4ouC4siDguJvguKPguLDguYDguKrguKPguLTguJDguKrguLHguIfguILguYwNCivguKrguLjguIHguLLguI3guIjguJnguYwg4Lik4LiB4Lip4LmM4Liq4Li04LiZ4Liq4Liy4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44LiB4Liy4LiZ4LiU4LiyIOC4mOC4suC4leC4uOC4lOC4tQ0KK+C4quC4uOC4geC4suC4meC4lOC4siDguKrguLjguIHguLTguJXguYTguJ7guJrguLnguKXguKLguYwNCivguKrguLjguIHguLTguIgg4LiB4Li54Lil4Lih4LiZ4Li54LiNDQor4Liq4Li44LiB4Li04LiIIOC5gOC4iuC4t+C5ieC4reC4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4geC4tOC4iCDguJnguLTguYjguKHguJ7guKPguYnguLLguKcNCivguKrguLjguIHguLTguIgg4Lig4Li44Lih4Lih4Li1DQor4Liq4Li44LiB4Li04LiIIOC4p+C4tOC4iuC4seC4ouC5guC4iuC4leC4tA0KK+C4quC4uOC4geC4tOC4iCDguYHguKrguIfguJ7guKXguKrguLjguIINCivguKrguLjguIHguLTguJUg4Lin4Li04Lin4Lix4LiS4LiZ4LiX4Li14Lib4LiwDQor4Liq4Li44LiCIOC5geC4iOC5ieC4h+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4quC4uOC4giDguKrguLjguKPguLDguJ7guLTguJnguLTguIgNCivguKrguLjguILguIjguLTguJXguJUg4LiH4Liy4Lih4Lia4Lij4Lij4LiI4LiHDQor4Liq4Li44LiC4LiK4Lix4LiiIOC4reC4uOC4m+C4quC4seC4meC4leC5jA0KK+C4quC4uOC4guC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKPguYjguKHguYLguJ7guJjguLTguYwNCivguKrguLjguILguKfguKrguLIg4LmB4Liq4LiH4LiU4Li1DQor4Liq4Li44LiC4Lio4Lij4Li1IOC4p+C4h+C4qeC5jOC4luC4oQ0KK+C4quC4uOC4guC4quC4oeC4muC4seC4leC4tCDguYDguJfguKjguLDguJnguLHguJnguJfguJnguYwNCivguKrguLjguILguKrguK3guLLguJQg4LiI4Lij4Li14Lio4Lij4Li1DQor4Liq4Li44LiC4Liq4Lix4LiZ4LiV4LmMIOC4nuC4o+C4quC4p+C4o+C4o+C4hOC5jOC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4guC4q+C4o+C4o+C4qeC4siDguIfguLLguKHguKfguLHguJLguJnguLLguYDguIjguKPguLTguI0NCivguKrguLjguILguLjguKEg4LmA4LiI4Li14Lii4Lih4Liq4LiB4Li44LilDQor4Liq4Li44LiC4Li44LihIOC4nuC4q+C4ueC4quC4ueC4leC4ow0KK+C4quC4uOC4guC4uOC4oSDguKjguKPguLXguKfguLTguYTguKXguKTguJfguJjguLTguYwNCivguKrguLjguILguLjguKEg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4Liq4Li44LiC4Li44Lih4Liy4Lil4Lii4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4qOC4o+C4tQ0KK+C4quC4uOC4guC5gOC4geC4qeC4oSDguYDguKXguLfguYjguK3guKHguK3guKPguLjguJMNCivguKrguLjguILguYLguIIg4Liq4Li44Lih4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiC4LmD4LiIIOC4p+C4h+C4qOC5jOC4quC4uOC4o+C4nuC4tOC5gOC4iuC4qeC4kOC5jA0KK+C4quC4uOC4hOC4meC4mOC5jOC4l+C4tOC4nuC4ouC5jCDguJfguLPguYDguKXguJfguK3guIcNCivguKrguLjguITguJnguJjguLIg4Liq4Li44Lij4Liw4Lih4Liy4LiZ4LiwDQor4Liq4Li44LiE4LiZ4LiY4LmMIOC5gOC4ieC4peC4tOC4oeC4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4uOC4hOC4meC4mOC5jCDguYDguJnguLfguYjguK3guIfguIHguLHguJnguJfguLINCivguKrguLjguITguJnguJjguYwg4Lij4Lix4LiV4LiZ4Liq4Liw4Lit4Liy4LiUDQor4Liq4Li44LiE4LiZ4LiY4LmMIOC4quC4uOC4iOC4o+C4tOC4lQ0KK+C4quC4uOC4hOC4tOC4mSDguYDguJTguYjguJnguYDguKHguIbguLINCivguKrguLjguIjguKPguLTguJUg4Lih4LiT4Li14Lin4LiH4LiE4LmMDQor4Liq4Li44LiI4Liy4Lij4Li14LiVIOC4geC4o+C4o+C4k+C4peC5ieC4p+C4mQ0KK+C4quC4uOC4iOC4tOC4lSDguKrguJbguLTguJXguKLguYzguKHguLLguKXguLHguKLguKfguIfguKjguYwNCivguKrguLjguIjguLTguJXguJXguYwg4LiV4Lix4LmJ4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Li44LiI4Li04LiV4LijIOC4iuC4seC4ouC4hOC4ueC4k+C4nOC4pQ0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguIHguKXguYjguLPguYHguKrguIcNCivguKrguLjguIjguLTguJXguKPguLIg4LiI4Lix4LiZ4LiX4Lij4LiU4Li04Lil4LiB4LiB4Li44LilDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguJfguKfguLXguKPguLHguJXguJnguYwNCivguKrguLjguIjguLTguJXguKPguLIg4Lia4Li44LiN4Liq4Li54LiHDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4nuC4seC4meC4mOC4uOC5jOC4oOC4seC4l+C4o+C5jA0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguKLguLTguYnguKHguYHguKLguYnguKENCivguKrguLjguIjguLTguJXguKPguLIg4Lin4Lij4Lii4Lio4LmC4LiB4Lin4Li04LiXDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4quC4luC4suC4nuC4o+C4iuC4seC4ouC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguKrguLjguKPguKPguLHguJXguJnguYzguYDguJTguIrguLINCivguKrguLjguIjguLTguJXguKPguLIg4Lit4Li44LiV4LiV4Lih4Liw4Lio4Li04LilDQor4Liq4Li44LiI4Li04LiZIOC4oeC4uOC4geC4meC5ieC4reC4og0KK+C4quC4uOC4iOC4tOC4meC4lOC4siDguYHguIvguYjguYDguKXguYnguLINCivguKrguLjguIjguLTguJnguJTguLIg4Lig4Lix4LiE4Lig4Li04LiN4LmC4LiNDQor4Liq4Li44LiI4Li04LiZ4LiU4LiyIOC4quC4tOC4l+C4mOC4tOC4qOC4o+C4seC4k+C4ouC5jOC4geC4uOC4pQ0KK+C4quC4uOC4iOC4tOC4meC4leC4meC4siDguYDguKrguLfguK3guYHguIHguYnguKcNCivguKrguLjguIjguLTguJnguJXguYwg4LiI4Li04Lij4Liw4LiK4Lix4LiiDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4leC4seC4k+C4keC5jOC4p+C4o+C4geC4uOC4pQ0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguYDguJrguYnguLLguIHguLjguKUNCivguKrguLjguIjguLTguJnguJXguYwg4Lif4Li44LmJ4LiH4LiY4Lij4Lij4Lih4Liq4Liy4LijDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4p+C4h+C4qOC5jOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguKrguLHguIHguIHguLDguKfguJnguLTguIoNCivguKrguLjguIjguLTguJnguJXguYwg4Lit4Li44LiU4Lih4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44LiI4Li04Lij4LiyIOC4oOC4ueC5iOC4guC4sw0KK+C4quC4uOC4iuC4j+C4tOC4pSDguKfguLHguJLguKLguLLguIHguKMNCivguKrguLjguIrguKUg4Lib4Liy4LiZ4LiB4Lil4Liy4LiHDQor4Liq4Li44LiK4Lix4LiiIOC4iOC4s+C4o+C4seC4quC4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4iuC4seC4oiDguJnguKPguYDguKjguKPguKnguJDguJ7guIfguKjguYwNCivguKrguLjguIrguLHguKIg4LmA4Lil4Li04Lio4LiY4Li14Lij4Liw4LiK4Liy4LiN4LiK4Lix4LiiDQor4Liq4Li44LiK4Lix4LiiIOC4q+C4p+C4seC4h+C4geC4tOC4iOC4iOC4tOC4meC4lOC4sg0KK+C4quC4uOC4iuC4suC4jSDguJjguJnguLDguYTguJ7guKPguKPguLHguIHguKnguYwNCivguKrguLjguIrguLLguJTguLIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4Lij4Li34Lit4LiH4Liq4Li44LiCDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4iOC4reC4meC4uOC4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4quC4uOC4iuC4suC4lOC4siDguInguLLguKLguLDguYDguIHguKnguJXguKPguLTguJkNCivguKrguLjguIrguLLguJTguLIg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5gOC4leC4teC5iuC4ouC4geC4hOC4sw0KK+C4quC4uOC4iuC4suC4lOC4siDguJnguJfguLXguJXguLLguJnguJnguJfguYwNCivguKrguLjguIrguLLguJTguLIg4Lib4Lij4Liw4LiW4Lih4Lib4Lix4LiX4Lih4LiwDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4nuC4seC4meC4mOC4uOC5jOC4oeC4k+C4tQ0KK+C4quC4uOC4iuC4suC4lOC4siDguKHguLLguKPguKLguLLguJcNCivguKrguLjguIrguLLguJTguLIg4LmC4Lij4LiI4LiZ4Lik4LiX4LiY4Li04LmM4Lie4Li04LmA4LiK4Lip4LiQ4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4p+C4tOC4l+C4ouC4suC4oOC4o+C4k+C5jA0KK+C4quC4uOC4iuC4suC4lOC4siDguKrguJXguLHguIfguJTguLUNCivguKrguLjguIrguLLguJTguLIg4Liq4Li44LiX4LiY4Li04Lio4Lix4LiZ4Liq4LiZ4Li14Lii4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4q+C4tOC4o+C4seC4jeC4nuC4seC4kuC4meC4geC4uOC4pQ0KK+C4quC4uOC4iuC4suC4lOC4siDguK3guLbguYrguIfguKrguKHguLjguJfguKMNCivguKrguLjguIrguLLguJXguLQg4LiB4Lil4Li04LmI4LiZ4Lit4Li44LiU4Lih4Liq4Li44LiCDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4geC4o+C4teC4ouC4h+C5guC4geC4oeC4pQ0KK+C4quC4uOC4iuC4suC4leC4tCDguYHguILguKPguLHguJXguJnguLANCivguKrguLjguIrguLLguJXguLQg4LiH4Liy4Lih4LmB4Liq4LiHDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4iOC4tOC4leC4nuC4seC4kuC4meC4geC4uOC4pQ0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguIjguKnguKTguLLguYDguIjguLTguKENCivguKrguLjguIrguLLguJXguLQg4LiK4Lix4Lii4LiZ4Liw4LmA4Lil4Li04Lio4Lin4LiH4Lio4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4iuC4suC4p+C5jOC5hOC4pw0KK+C4quC4uOC4iuC4suC4leC4tCDguYHguIvguYjguKvguKXguLTguKcNCivguKrguLjguIrguLLguJXguLQg4LiU4Liz4Lij4LiH4LiE4LmM4Lit4LiZ4Li44LiB4Li54LilDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4leC4seC5ieC4h+C4nuC4ueC4peC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguJbguLLguKfguKPguKfguIfguKnguYwNCivguKrguLjguIrguLLguJXguLQg4LmA4LiX4Li14Lii4Lih4Liq4Lih4Lix4LiiDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4meC4o+C4suC4geC4uOC4peC4o+C4seC4qOC4oeC4tQ0KK+C4quC4uOC4iuC4suC4leC4tCDguJrguLPguKPguLjguIfguJ7guLLguJnguLTguIoNCivguKrguLjguIrguLLguJXguLQg4Lib4Lij4Liw4Liq4Liy4LiZ4LiY4Lij4Lij4Lih4LiE4Li44LiTDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4nOC4peC4oOC4tOC4o+C4oQ0KK+C4quC4uOC4iuC4suC4leC4tCDguJ7guLDguJnguK3guIjguLHguJnguJfguKPguYwNCivguKrguLjguIrguLLguJXguLQg4LmA4Lie4Li14Lii4Lij4LiY4Li44Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4oeC4peC4l+C4reC4h+C4lOC4tQ0KK+C4quC4uOC4iuC4suC4leC4tCDguKLguLTguYnguKHguYDguIjguKPguLTguI0NCivguKrguLjguIrguLLguJXguLQg4Lij4Li44LiI4Li04LmC4Lih4Lij4LiwDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4peC4teC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4quC4uOC4iuC4suC4leC4tCDguKfguIfguKjguYzguKrguKHguJrguLjguI0NCivguKrguLjguIrguLLguJXguLQg4Lin4Liy4LiZ4Li04LiK4Lii4LmM4Lir4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4qOC4o+C4teC4n+C5ieC4suC4peC4suC4p+C4seC4k+C4ouC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKjguLjguIHguKPguKfguKPguKPguJMNCivguKrguLjguIrguLLguJXguLQg4Liq4Lin4LmI4Liy4LiH4LiB4Liy4LijDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4quC4tOC4meC4m+C4o+C4sOC4quC4h+C4hOC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKrguLjguJfguJjguLTguJ7guKPguKrguIHguLjguKUNCivguKrguLjguIrguLLguJXguLQg4LmA4Liq4Lij4Li14Liq4Li44Lin4Lij4Lij4LiT4LiB4Li04LiIDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4q+C4h+C4teC5iOC4ouC4oeC4h+C4suC4oeC4qOC4o+C4tQ0KK+C4quC4uOC4iuC4suC4leC4tCDguK3guYjguK3guJnguKrguLjguIINCivguKrguLjguIrguLLguJXguLQg4Lit4Li44LiU4Lih4Lig4Lix4LiB4LiU4Li14Lin4LiH4Lio4LmMDQor4Liq4Li44LiK4Liy4LiiIOC4iuC4p+C4suC4peC4lOC4tOC4kA0KK+C4quC4uOC4iuC4suC4oiDguKrguLjguJnguLHguJnguJfguLLguKPguK3guJQNCivguKrguLjguIrguLTguJUg4Lil4LmI4Liz4LiL4LizDQor4Liq4Li44LiK4Li04LiZIOC4iOC4s+C4m+C4suC4meC5ieC4reC4og0KK+C4quC4uOC4iuC4tOC4mSDguJXguYjguLLguIfguYPguIgNCivguKrguLjguIrguLTguJkg4Lib4Lij4Liw4LmE4Lie4Lio4Li04Lil4Lib4LmMDQor4Liq4Li44LiK4Li04LiZIOC5gOC4oeC4huC4sOC4quC4uOC4p+C4o+C4o+C4k+C5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4iuC4tOC4mSDguKjguKPguLXguJ7guLHguJLguJnguKfguKPguLLguIfguIHguLnguKUNCivguKrguLjguIrguLTguJkg4LmB4Liq4LiH4Lit4Li04LiZ4LiX4Lij4LmMDQor4Liq4Li44LiK4Li14LieIOC4geC4uOC4peC4geC4suC4jeC4iOC4meC4suC4iuC4teC4p+C4tOC4mQ0KK+C4quC4uOC4iuC4teC4niDguKrguLTguIfguKvguYzguJjguLXguKPguYwNCivguKrguLjguIrguLXguKXguLIg4LmB4LiL4LmI4Lir4LmI4Liy4LiZDQor4Liq4Li44LiR4Liy4LiX4Li04Lie4Lii4LmMIOC4n+C4seC4geC5gOC4ouC5h+C4mQ0KK+C4quC4uOC4k+C4tOC4quC4siDguYDguKLguYfguJnguInguYjguLMNCivguKrguLjguJPguLUg4LiI4Li04Lij4Lix4LiZ4LiU4LijDQor4Liq4Li44LiT4Li1IOC5gOC4lOC4iuC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4uOC4k+C4tSDguJvguLLguJnguJTguLUNCivguKrguLjguJPguLUg4Lil4Li04Lih4Lib4LmM4Lie4LiZ4Liy4Lin4LiH4Lio4LmMDQor4Liq4Li44LiT4Li1IOC4quC4tOC4l+C4mOC4tOC5gOC4p+C4iuC4p+C4tOC4iOC4tOC4leC4ow0KK+C4quC4uOC4k+C4teC4meC4uOC4iiDguYLguJXguYrguLDguKvguKfguLHguIcNCivguKrguLjguJPguLXguKLguYwg4LmA4LiX4Lie4Liq4Liy4LiiDQor4Liq4Li44LiT4Li14Lii4LmMIOC4p+C4tOC4l+C4ouC4suC4l+C4o+C4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4lCDguIHguKPguLDguYHguKrguYDguJfguJ4NCivguKrguLjguJTguIjguLTguJUg4LmA4LiI4Lij4Li04LiN4LiZ4Li04Lie4LiZ4LiY4LmM4Lin4Liy4LiZ4Li04LiKDQor4Liq4Li44LiU4LiI4Li04LiV4LiV4LmMIOC4qOC4o+C4teC4leC4o+C4teC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4lOC4iuC4suC4oiDguJrguLjguI3guYLguJUNCivguKrguLjguJTguJjguLTguJTguLIg4Lih4Lir4Li04LmC4LiE4LiVDQor4Liq4Li44LiU4Liq4LiH4Lin4LiZIOC4iOC4seC4meC4l+C4o+C5jOC4qOC4o+C4tQ0KK+C4quC4uOC4lOC4quC4p+C4suC4lyDguYDguInguLXguKLguJrguYHguKvguKXguKENCivguKrguLjguJTguKrguLLguKLguYPguIgg4Lir4Liy4LmA4Lij4Li34Lit4LiZ4LmC4Lig4LiEDQor4Liq4Li44LiU4LiyIOC4iOC4h+C4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4lOC4siDguYDguIrguLXguKLguIfguYDguIrguLLguKfguYzguYTguKcNCivguKrguLjguJTguLIg4LiV4Li44Lil4Liy4Lin4LiT4Li04LiKDQor4Liq4Li44LiU4LiyIOC4muC4s+C4o+C4uOC4h+C4q+C4oeC4ueC5iA0KK+C4quC4uOC4lOC4siDguJ7guLbguYjguIfguYLguJ7guJjguLTguJvguLHguIHguILguLTguKLguLANCivguKrguLjguJTguLIg4Lij4Li44LmI4LiH4LmB4Liq4LiHDQor4Liq4Li44LiU4LiyIOC4qOC4o+C4teC4geC4o+C4geC4suC4ow0KK+C4quC4uOC4lOC4siDguKrguLjguILguKfguLTguJrguLnguKXguKLguYwNCivguKrguLjguJTguLIg4Lit4Lix4Lio4Lin4LmC4Lig4LiE4Li04LiZDQor4Liq4Li44LiU4Liy4LiX4Li04Lie4Lii4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4reC4tOC4l+C4mOC4tOC4pOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4lOC4suC4nuC4oyDguKHguJPguLXguKPguLHguJXguJnguYwNCivguKrguLjguJTguLLguJ7guLHguJnguJjguYwg4Lit4Li04Lio4Lij4Liy4LiH4LiB4Li54LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4LmB4LiB4LmJ4Lin4LiK4Li04LiH4LiU4Lin4LiHDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4iuC4tOC4meC4sOC4m+C4o+C4sOC4oOC4sg0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguJjguLHguI3guKrguLTguKPguLTguYLguKPguIjguJnguYwNCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4Lie4Li04Lih4Lie4Li04Lih4LilDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC5gOC4peC4tOC4qOC4p+C4tOC4l+C4ouC4suC4nuC4meC4mOC5jA0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguKrguLLguKPguJXguLLguKLguJkNCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4Lit4Li04LiZ4LmC4LiX4Lit4LiY4Li04Lie4LijDQor4Liq4Li44LiU4Liy4Lin4LiU4Li1IOC5geC4quC4h+C4iuC4oeC4oOC4uQ0KK+C4quC4uOC4lOC4suC4p+C4o+C4o+C4kyDguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguKrguLjguJTguLLguK3guKMg4Liq4Lix4LiI4LiI4Liy4LiY4Lij4Lij4LihDQor4Liq4Li44LiU4LmB4Liq4Lin4LiHIOC5geC4quC4h+C4meC4nuC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4lOC5g+C4iCDguIjguIfguKHguYLguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguJTguYPguIgg4LiK4Lix4Lii4LmA4Lib4Lij4LihDQor4Liq4Li44LiU4LmD4LiIIOC5geC4leC4h+C4reC5iOC4reC4mQ0KK+C4quC4uOC4lOC5g+C4iCDguJrguLjguI3guKHguLLguIENCivguKrguLjguJTguYPguIgg4Lie4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Liq4Li44LiU4LmD4LiIIOC5geC4ouC5ieC4oeC5gOC4q+C4oeC4t+C4reC4mQ0KK+C4quC4uOC4lOC5g+C4iCDguKjguKPguLXguKHguYjguKfguIcNCivguKrguLjguJTguYPguIgg4Liq4Li04LiZ4Liq4Lih4Li44LiX4Lij4LmMDQor4Liq4Li44LiU4LmD4LiIIOC4reC5iOC4reC4meC4qOC4o+C4tQ0KK+C4quC4uOC4luC4suC4p+C4o+C4k+C5jCDguYDguIHguLXguKLguKPguJXguLTguKjguLTguKXguJvguJnguLHguJnguJXguYwNCivguKrguLjguJfguJjguLLguJfguLTguJ7guKLguYwg4Lib4Lij4Liw4Liq4Lie4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiX4LiY4Li0IOC4iuC4suC4leC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4l+C4mOC4tCDguYDguJ7guYfguIfguYDguIjguKPguLTguI0NCivguKrguLjguJfguJjguLQg4Liq4Li44LiX4LiY4Li04LiY4Lij4Lij4Lih4LiB4Li44LilDQor4Liq4Li44LiX4LiY4Li04LiK4Lix4LiiIOC5hOC4geC4o+C4hOC4uOC4k+C4suC4qOC4seC4og0KK+C4quC4uOC4l+C4mOC4tOC4iuC4seC4oiDguJXguLHguJnguJjguJnguLLguKjguLTguKPguLTguIHguLjguKUNCivguKrguLjguJfguJjguLTguIrguLHguKIg4Lih4Lir4Lin4Lil4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiX4LiY4Li04LiK4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4l+C4mOC4tOC4k+C4tSDguIjguLTguJXguJXguLLguJnguJnguJfguYwNCivguKrguLjguJfguJjguLTguJnguLHguJnguJfguYwg4LmC4Lie4LiY4Li04LiZ4Liy4LiEDQor4Liq4Li44LiX4LiY4Li04LiZ4Li1IOC4quC4suC4o+C4sOC4ouC4sg0KK+C4quC4uOC4l+C4mOC4tOC4nuC4h+C4qOC5jCDguKfguIjguLXguJvguLTguKLguJnguLHguJnguJfguLLguJnguJnguJfguYwNCivguKrguLjguJfguJjguLTguJ7guIfguKnguYwg4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4LiX4Lij4LiH4Lie4LilDQor4Liq4Li44LiX4LiY4Li04Lie4LiH4Lip4LmMIOC4qOC4o+C4teC5gOC4meC4teC4ouC4oQ0KK+C4quC4uOC4l+C4mOC4tOC4nuC4oyDguJXguLHguJnguKHguIfguITguKUNCivguKrguLjguJfguJjguLTguJ7guKUg4LmB4Liq4LiH4Lij4Li44LmJ4LiH4LiQ4Li04LiV4Li04Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44LiX4LiY4Li04Lih4LiyIOC4iOC4tOC4leC4leC4o+C4hw0KK+C4quC4uOC4l+C4mOC4tOC4o+C4seC4leC4meC5jCDguIfguLLguKHguJfguKPguLHguJ7guKLguYwNCivguKrguLjguJfguJjguLTguKXguLHguIHguKnguJPguYwg4Lic4LmI4Lit4LiH4Lio4Li04Lij4Li0DQor4Liq4Li44LiX4LiY4Li04Lin4Li04LiX4Lii4LmMIOC4guC4s+C4peC4s+C4oOC4uQ0KK+C4quC4uOC4l+C4mOC4tOC4qOC4seC4geC4lOC4tOC5jCDguKPguLDguIjguLTguJXguJTguLPguKPguIfguITguYwNCivguKrguLjguJfguJjguLTguKrguLHguJnguJXguYwg4LiV4Lix4LmJ4LiH4Lio4Lij4Li14Lin4LiH4Lip4LmMDQor4Liq4Li44LiX4LiY4Li1IOC4geC4tOC4iOC4quC4uOC4oOC4tQ0KK+C4quC4uOC4l+C4o+C4o+C4qCDguKfguLHguJHguJLguIHguLLguJnguJnguJfguYwNCivguKrguLjguJfguLHguJkg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lif4Lix4LiBDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4geC4peC4tOC5iOC4meC5guC4i+C4lOC4sg0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguIjguLPguKPguLHguKrguIjguLjguKzguLLguYDguJnguJXguKMNCivguKrguLjguJfguLHguKjguJnguYwg4LiU4LmI4Liy4LiZ4Lit4Li44LiU4Lih4LiK4Liy4LiNDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4mOC4teC4o+C4mOC4meC4suC4geC4ow0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguJ7guJnguLHguKrguYDguKXguLTguKgNCivguKrguLjguJfguLHguKjguJnguYwg4Lij4Lit4Lii4LiB4Li44Lil4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4p+C4uOC4kuC4tOC4geC4o+C4p+C4k+C4tOC4iuC4ouC5jA0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguKrguLTguJfguJjguLTguKfguIfguKjguYwNCivguKrguLjguJfguLHguKjguJnguYwg4Lit4LmI4Lit4LiZ4LiK4Li44Lil4Li1DQor4Liq4Li44LiX4Li04LiVIOC4geC4meC4geC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jA0KK+C4quC4uOC4l+C4tOC4mSDguITguLnguJnguYnguLPguJfguLTguJ7guKLguYwNCivguKrguLjguJfguLTguJkg4LmC4LiK4LiV4Li04LiI4Li44Lis4Liy4LiH4LiB4Li54LijDQor4Liq4Li44LiX4Li04LiZIOC4l+C4seC4leC4leC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4l+C4tOC4mSDguJrguLnguKPguJPguKrguLTguJkNCivguKrguLjguJfguLTguJkg4Lig4Liy4LiE4Lii4Liw4Lin4Lix4LiY4LiZ4LmMDQor4Liq4Li44LiX4Li04LiZIOC4pOC4l+C4o+C4suC4hOC4ow0KK+C4quC4uOC4l+C4tOC4mSDguKrguJnguJfguK3guIcNCivguKrguLjguJfguLTguJkg4LmB4Liq4Lin4LiH4LiY4Li14Lij4LiwDQor4Liq4Li44LiX4Li04LiZ4Li1IOC5guC4geC4oeC4peC4quC4tOC4h+C4q+C5jA0KK+C4quC4uOC4l+C4tOC4qOC4siDguK3guLjguJTguKHguIjguLLguKPguLjguKHguJPguLUNCivguKrguLjguJjguJkg4LiK4Li54LiK4Lix4LiiDQor4Liq4Li44LiY4LiZIOC4peC4tOC4oeC4m+C4oeC4meC4leC5jA0KK+C4quC4uOC4mOC4oyDguIjguLTguJXguIHguKPguLXguKrguKMNCivguKrguLjguJjguKPguKPguKEg4LiK4Lix4Lii4Lio4Lij4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiY4Lij4Lij4LihIOC4muC4uOC4jeC5gOC4reC4geC4muC4uOC4qOC4ouC5jA0KK+C4quC4uOC4mOC4o+C4o+C4oSDguYDguKXguLTguKjguJ7guIfguKnguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguJjguKPguKPguKEg4Lir4Liw4Liq4Li04LiV4Liw4LmA4Lin4LiKDQor4Liq4Li44LiY4Lix4LiN4LiN4LiyIOC5guC4nuC4mOC4tOC4o+C4seC4iuC4leC4suC4h+C4geC4ueC4ow0KK+C4quC4uOC4mOC4siDguKvguIfguKnguYzguKPguLHguJXguJnguK3guLjguJfguLHguKINCivguKrguLjguJjguLLguJfguLTguJ7guKLguYwg4LiK4Lii4Liy4LiH4Lio4Li4DQor4Liq4Li44LiY4Liy4LiX4Li04Lie4Lii4LmMIOC4qOC4o+C4teC4oeC4uOC4geC4guC5jA0KK+C4quC4uOC4mOC4suC4oOC4o+C4k+C5jCDguKrguLjguJfguJjguLTguJnguLINCivguKrguLjguJjguLLguKPguLHguJXguJnguYwg4Liq4Li44LiC4Liq4Liz4Lit4Liy4LiH4LiE4LmMDQor4Liq4Li44LiY4Liy4Liq4Li04LiZ4Li1IOC4p+C4tOC4iOC4tOC4leC4o+C4suC4meC4meC4l+C5jA0KK+C4quC4uOC4mOC4tOC4lOC4siDguIrguLfguYjguJnguYHguKrguIfguIjguLHguJnguJfguKPguYwNCivguKrguLjguJjguLTguJTguLIg4Lio4Li04Lij4Liw4Lin4Lix4LiS4LiZ4LiK4Lix4LiiDQor4Liq4Li44LiY4Li04Lie4LijIOC4quC4reC4meC4oeC4seC4hw0KK+C4quC4uOC4mOC4tSDguIHguKPguK3guLjguYTguKMNCivguKrguLjguJjguLUg4LiJ4Lix4LiV4Lij4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LmMDQor4Liq4Li44LiY4Li1IOC5gOC4leC5iOC4suC4l+C4reC4hw0KK+C4quC4uOC4mOC4tSDguJrguLjguJPguKLguYDguIHguLXguKLguKPguJXguLQNCivguKrguLjguJjguLUg4Lih4Liy4Lil4Li14Lio4Lij4Li1DQor4Liq4Li44LiY4Li1IOC4p+C4tOC5gOC4qOC4qeC4quC4uOC4meC4l+C4o+C4quC4geC4uOC4pQ0KK+C4quC4uOC4mOC4tSDguKrguLjguJjguKPguKPguKHguJDguLTguJXguLQNCivguKrguLjguJjguLXguJTguLIg4LiB4Lih4Lil4Lij4Lix4LiV4LiZ4LiyDQor4Liq4Li44LiY4Li14Lij4LiyIOC4hOC4uOC4k+C4meC4tOC4o+C4seC4meC4lOC4ow0KK+C4quC4uOC4mOC4teC4o+C4siDguJ7guKXguKrguJnguLANCivguKrguLjguJjguLXguKPguLIg4Lit4Lih4Lij4LiZ4Lik4LiZ4Liy4LiWDQor4Liq4Li44LiY4Li14Lij4LmMIOC4m+C4o+C4teC4iuC4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4mOC4teC4peC4siDguJjguJnguLDguKTguJfguJjguLTguYzguYLguKPguIjguJnguYwNCivguKrguLjguJnguJfguKMg4LiB4Li04LiI4LiI4Li44Lil4Lil4LiI4Liy4Lij4Li04LiVDQor4Liq4Li44LiZ4LiX4LijIOC4guC4seC4meC4l+C4sOC4o+C4suC4oQ0KK+C4quC4uOC4meC4l+C4oyDguYLguITguYnguKfguJnguKTguKHguLTguJXguKMNCivguKrguLjguJnguJfguKMg4LiI4Li04Lij4Liy4Lii4Li44Lin4Lix4LiS4LiZ4LiyDQor4Liq4Li44LiZ4LiX4LijIOC4iuC4suC4jQ0KK+C4quC4uOC4meC4l+C4oyDguYHguIvguYjguJ/guK3guIcNCivguKrguLjguJnguJfguKMg4LiV4Lij4Liw4LiB4Li54Lil4Lik4LiX4LiY4Li04LmA4LiU4LiKDQor4Liq4Li44LiZ4LiX4LijIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4meC4l+C4oyDguJjguLTguIrguLLguIHguKPguJPguYwNCivguKrguLjguJnguJfguKMg4Lia4Lix4Lin4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Li44LiZ4LiX4LijIOC4m+C4o+C4sOC4oOC4suC5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4meC4l+C4oyDguJ7guIjguJnguYzguJjguJnguKHguLLguKgNCivguKrguLjguJnguJfguKMg4Lie4Li44LiS4Li04LiB4Lij4LiB4Li44LilDQor4Liq4Li44LiZ4LiX4LijIOC4oOC4ueC4oeC4tOC4reC5iOC4reC4mQ0KK+C4quC4uOC4meC4l+C4oyDguKLguKjguYHguIHguYnguKcNCivguKrguLjguJnguJfguKMg4Lij4Li44LmI4LiH4LmB4LiI4LmJ4LiHDQor4Liq4Li44LiZ4LiX4LijIOC5gOC4peC5ieC4suC4p+C4tOC4iuC4seC4og0KK+C4quC4uOC4meC4l+C4oyDguKfguLTguIrguLLguIrguLLguI0NCivguKrguLjguJnguJfguKMg4Lio4Lij4Li14LmB4Liq4LiH4Lif4LmJ4LiyDQor4Liq4Li44LiZ4LiX4LijIOC4quC4reC4meC4quC4tQ0KK+C4quC4uOC4meC4l+C4oyDguKrguLjguILguKHguLHguKINCivguKrguLjguJnguJfguKMg4LmA4Liq4Li34Lit4LmD4Lir4LiN4LmIDQor4Liq4Li44LiZ4LiX4LijIOC4reC4meC4uOC5gOC4lOC4ig0KK+C4quC4uOC4meC4l+C4oyDguK3guLTguYjguKHguYDguK3guLTguJrguKrguLjguIINCivguKrguLjguJnguJfguKPguLIg4LiZ4Lin4Lil4Lin4Li04LiI4Li04LiV4LijDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC4geC4reC4quC4tOC4h+C4q+C4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4meC4l+C4o+C4tSDguIjguLHguJnguJfguKfguLjguJLguLQNCivguKrguLjguJnguJfguKPguLUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC4l+C4suC4o+C4oeC4ouC5jA0KK+C4quC4uOC4meC4l+C4o+C4tSDguJvguLHguI3guI3guLLguJjguLHguI3guI3guLANCivguKrguLjguJnguJfguKPguLUg4LmE4Lie4Lio4Liy4Lil4Lin4Li04LiI4Li04LiV4Lij4LiZ4Li44LiKDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC4peC4s+C5hOC4ouC4l+C4reC4hw0KK+C4quC4uOC4meC4l+C4o+C4tSDguKjguLTguKXguJvguKrguLLguITguKMNCivguKrguLjguJnguJfguKPguLUg4LmB4Liq4LiH4LmA4LiH4Li04LiZDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4pOC4geC4qeC5jOC4qOC4tOC4o+C4tA0KK+C4quC4uOC4meC4meC4l+C5jCDguKrguLjguKfguIfguKjguYwNCivguKrguLjguJnguLHguJkg4Lib4Lij4Liw4LiB4Liy4Lii4Lio4Li04Lil4Lib4LmMDQor4Liq4Li44LiZ4Lix4LiZ4LiX4Lij4LiyIOC4hOC4s+C4muC4o+C4o+C4peC4t+C4rQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguITguIrguJnguLLguIQNCivguKrguLjguJnguLHguJnguJfguLIg4LiJ4Lix4LiZ4LiX4Lio4Liy4Liq4LiV4Lij4LmM4Lij4Lix4Lio4Lih4Li1DQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYLguJXguKHguLLguJnguLANCivguKrguLjguJnguLHguJnguJfguLIg4LiZ4Li04Lil4Lio4Lij4Li1DQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC5guC4m+C4qeC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKrguLjguJnguLHguJnguJfguLIg4Lij4Lix4LiH4Lip4Li14LiY4Lij4Lij4LihDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4p+C4o+C4geC4tOC4iOC4reC4suC4l+C4ow0KK+C4quC4uOC4meC4seC4meC4l+C4siDguKjguLjguKDguKHguLLguJXguKPguLINCivguKrguLjguJnguLHguJnguJfguLIg4Liq4Li44Lij4Lig4Lix4LiB4LiU4Li1DQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4reC4seC4qOC4p+C4meC4seC4ouC4geC4tOC4iA0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguIHguLTguKLguLDguYHguJ7guJfguKLguYwNCivguKrguLjguJnguLHguJnguJfguYwg4LiH4Liy4Lih4Lit4Lix4LiE4Lij4LiB4Li44LilDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4ieC4seC4leC4o+C5geC4geC5ieC4pw0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguYHguIvguYjguKvguKfguYjguK3guIcNCivguKrguLjguJnguLHguJnguJfguYwg4LiV4Liy4Lib4Liq4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4mOC4o+C4o+C4oeC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguJrguLnguKPguJPguYzguKXguK3guKENCivguKrguLjguJnguLHguJnguJfguYwg4Lie4Lin4LiH4LiZ4Li04LilDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKPguLHguIfguKrguLTguJXguYDguKrguJbguLXguKLguKMNCivguKrguLjguJnguLHguJnguJfguYwg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4qOC4tOC4o+C4tOC4geC4suC4o+C4k+C5jA0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKrguLTguJnguJjguLjguYzguJvguKPguLDguKrguJ7guIrguLHguKINCivguKrguLjguJnguLHguJnguJfguYwg4Lir4Lit4Lih4Lie4Li44LiSDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC5gOC4reC4geC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4meC4seC4oiDguKHguKLguLjguKPguJnguLLguITguLTguJkNCivguKrguLjguJnguLLguIQg4Lir4Lit4Lih4Lir4Lin4LilDQor4Liq4Li44LiZ4Liy4Lij4Li1IOC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jA0KK+C4quC4uOC4meC4tOC4lOC4siDguJXguLHguJnguIHguLHguJnguKDguLHguKINCivguKrguLjguJnguLTguJXguKLguLIg4LmB4LiB4LmJ4Lin4LmA4Lit4Li14LmI4Lii4LihDQor4Liq4Li44LiZ4Li04LiV4Lii4LmMIOC4quC4uOC4meC4l+C4ow0KK+C4quC4uOC4meC4tOC4oOC4siDguKPguLjguYjguIfguYDguKHguIbguLLguKPguLHguJXguJnguYwNCivguKrguLjguJnguLTguKnguLIg4LiI4Lix4LiZ4LmA4LiB4Li04LiUDQor4Liq4Li44LiZ4Li04Liq4LiyIOC4iOC4seC4meC4l+C4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4meC4tOC4quC4siDguJXguLHguJnguJXguLTguIHguLjguKXguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguJnguLTguKrguLIg4Lie4Li04LiX4Lii4Liy4LiY4LiZ4Liy4Liq4LiB4Li44LilDQor4Liq4Li44LiZ4Li04Liq4LiyIOC4p+C4seC4iuC4o+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4meC4tOC4quC4siDguYDguKvguKXguLfguK3guIfguKPguLDguIbguLHguIcNCivguKrguLjguJnguLUg4LiE4LiH4Liq4Li04LiZ4LiX4Lin4Li14Liq4Li44LiCDQor4Liq4Li44LiZ4Li1IOC5geC4i+C5iOC5gOC4iOC4teC4og0KK+C4quC4uOC4meC4tSDguJnguLTguYjguKHguJnguYnguK3guKINCivguKrguLjguJnguLUg4Lih4Li04LmI4LiH4Lih4LiT4Li14LiZ4Liy4LiE4Li04LiZDQor4Liq4Li44LiZ4Li1IOC4qOC4o+C4teC4quC4uOC4o+C4teC4ouC5jOC5hOC4nuC4qOC4suC4pQ0KK+C4quC4uOC4meC4tSDguK3guLHguKjguKfguYDguIjguKPguLTguI3guKXguLLguKANCivguKrguLjguJnguLXguKLguYzguKPguLHguJXguJnguYwg4Lio4Li04Lij4Li04LmA4Lil4Li04Lio4LmA4Lij4Li34Lit4LiH4LiK4Lix4LiiDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4geC4uOC4peC4pOC4iuC4suC4geC4ow0KK+C4quC4uOC4meC4teC4ouC5jCDguITguJnguKHguLHguYjguJkNCivguKrguLjguJnguLXguKLguYwg4LiI4Liy4LiV4Li44Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4ieC4seC4meC4l+C4quC4oeC4muC4seC4leC4tA0KK+C4quC4uOC4meC4teC4ouC5jCDguYLguIrguJXguLTguKHguLINCivguKrguLjguJnguLXguKLguYwg4LmB4LiL4LmI4Lil4LmJ4LitDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4lOC4suC4o+C4tOC4geC4suC4o+C5jOC4meC4meC4l+C5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguYHguJXguYnguKHguYDguJXguLTguKENCivguKrguLjguJnguLXguKLguYwg4LiY4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4meC4tOC4o+C4uOC4leC4leC4tOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguJvguKPguLXguIrguLLguJfguKPguLHguJ7guKLguYwNCivguKrguLjguJnguLXguKLguYwg4Lie4Lij4Lir4Lih4Liq4Li44Lin4Li04LiK4Lix4LiiDQor4Liq4Li44LiZ4Li14Lii4LmMIOC5geC4nuC4o+C4quC4uOC4p+C4seC4kuC4meC5jOC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguKHguLLguJfguK3guIcNCivguKrguLjguJnguLXguKLguYwg4Lij4Lix4LiV4LiZ4Lig4Li54Lih4Li04Lig4Li04LiN4LmC4LiNDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4peC4tOC5ieC4oeC4nuC4o+C4o+C4seC4leC4meC5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguKfguKPguKfguLjguJLguLQNCivguKrguLjguJnguLXguKLguYwg4Lio4Lij4Li14Lie4Lix4LiK4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4quC4o+C5ieC4reC4ouC4l+C4reC4hw0KK+C4quC4uOC4meC4teC4ouC5jCDguKrguLjguILguLjguKHguKfguKPguJ7guIjguJnguYwNCivguKrguLjguJnguLXguKLguYwg4LmB4Liq4LiH4LmD4Lii4Lih4LiT4Li1DQor4Liq4Li44LiZ4Li14Lii4LmMIOC4reC4meC4uOC4nuC4h+C4qOC5jOC4reC4oOC4seC4og0KK+C4quC4uOC4meC4teC4ouC5jCDguK3guLTguIfguKrguIHguLjguKXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLjguJnguLXguKPguLHguJXguJnguYwg4LiI4LiH4Lib4Lij4Li14LiK4LiyDQor4Liq4Li44LmI4LiZIOC5gOC4geC4tOC4lOC4peC4suC4oA0KK+C4quC4uOC4muC4o+C4o+C4k+C5jCDguYHguIHguYjguJnguKrguLLguKMNCivguKrguLjguJrguLTguJkg4LiV4Lij4Li14Lib4Lix4LiI4Lii4Liy4LiB4LijDQor4Liq4Li44Lia4Li04LiZIOC5guC4nuC4mOC4tOC5jOC4reC4seC4oeC4nuC4ow0KK+C4quC4uOC4muC4tOC4mSDguK3guLLguILguLjguKPguLHguJXguJnguYwNCivguKrguLjguJvguKPguLLguJPguLUg4LiB4LiZ4LiB4Lin4Li44LiS4Li0DQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4quC4tOC4mQ0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguYHguIvguYjguKXguLTguYnguKENCivguKrguLjguJvguKPguLLguJPguLUg4LiY4Li14Lij4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4nuC4seC4iuC4o+C4nuC4iOC4meC4suC4geC4o+C4k+C5jA0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguKPguLHguJXguJnguITguLLguKENCivguKrguLjguJvguKPguLLguJPguLUg4Lio4Lij4Li14LiX4Liy4LmC4Liu4LihDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC5hOC4quC4ouC4quC4oeC4muC4seC4leC4tA0KK+C4quC4uOC4m+C4o+C4suC4meC4tSDguJXguLHguJnguKrguLTguJfguJjguLQNCivguKrguLjguJvguKPguLXguJTguLIg4LmA4Lih4LiG4Lit4LiZ4Lix4LiZ4LiV4LmC4LiB4Lio4LilDQor4Liq4Li44Lib4Lij4Li14Lii4LiyIOC4qOC4tOC4peC4suC5gOC4geC4qQ0KK+C4quC4uOC4m+C4seC4mSDguJ7guKXguYDguKrguJnguLINCivguKrguLjguJ7guIfguKjguYwg4LiZ4Liw4Lih4Liy4LiV4Lij4LmMDQor4Liq4Li44Lie4LiH4Lip4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4pOC4geC4qeC5jOC4iuC4seC4og0KK+C4quC4uOC4nuC4iOC4meC5jCDguIHguLTguJXguJXguLTguYLguKDguITguLTguKPguLHguJXguJnguYwNCivguKrguLjguJ7guIjguJnguYwg4LiE4LiH4Lie4LmI4Lin4LiHDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4p+C4tOC5gOC4oeC4peC4t+C4reC4hw0KK+C4quC4uOC4nuC4iOC4meC5jCDguYDguIjguKPguLTguI3guJ7guKPguKvguKHguKHguLLguJXguKPguYwNCivguKrguLjguJ7guIjguJnguYwg4LiK4LmJ4Liy4LiH4Lin4LiH4Lio4LmM4LiX4Lit4LiHDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4quC4uOC4nuC4iOC4meC5jCDguJXguLHguJnguJXguKPguLDguIHguLnguKUNCivguKrguLjguJ7guIjguJnguYwg4LmA4LiX4Li14Lii4Lih4LiX4Lix4LiaDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4meC4tOC4o+C4seC4meC4leC4quC4uOC4guC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguJvguKPguLDguKDguLLguK3guKDguLTguKPguLHguJXguJnguYwNCivguKrguLjguJ7guIjguJnguYwg4Lie4LiI4LiZ4Liy4Lin4Lij4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4nuC4tuC5iOC4h+C4nuC4seC4kuC4meC4sg0KK+C4quC4uOC4nuC4iOC4meC5jCDguKHguIfguITguKXguIHguLTguIjguIrguLHguKLguIHguLLguKMNCivguKrguLjguJ7guIjguJnguYwg4LmA4Lii4Li14LmI4Lii4Lih4Lin4Li04LiN4LiN4LiwDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4pOC4geC4qeC5jOC5guC4qOC4oOC4tOC4qeC4kOC5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKfguIfguKjguYzguKfguKPguYDguKjguKPguKnguJDguYwNCivguKrguLjguJ7guIjguJnguYwg4Lin4Li04Liq4Liy4Lij4LiX4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4qOC4tOC4o+C4tOC4p+C4o+C4o+C4k+C4iuC4seC4og0KK+C4quC4uOC4nuC4iOC4meC5jCDguKrguLHguKHguJ7guLHguJnguJjguLLguKPguLHguIHguKnguYwNCivguKrguLjguJ7guIjguJnguYwg4Liq4Li44LiZ4LiX4Lij4Lin4Li04LmA4LiZ4LiV4Lij4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4q+C4meC4ueC5geC4ouC5ieC4oQ0KK+C4quC4uOC4nuC4iOC4meC5jCDguK3guKLguLnguYjguKLguLHguYjguIfguKLguLfguJkNCivguKrguLjguJ7guIjguJnguYwg4Lit4Li44LiX4Lix4Lii4LmC4LiK4LiV4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4Lie4LiV4LiyIOC4nuC4o+C4p+C4iuC4tOC4o+C4suC4oOC4sg0KK+C4quC4uOC4nuC4oyDguIjguKPguKPguKLguLLguIfguLLguKENCivguKrguLjguJ7guKMg4LmB4LiL4LmI4Lih4LiyDQor4Liq4Li44Lie4LijIOC4mOC4o+C4o+C4oeC4suC4nuC4tOC4l+C4seC4geC4qeC5jOC4nuC4ow0KK+C4quC4uOC4nuC4oyDguJ7guKXguLDguJ7guKXguLXguKfguLHguKXguKLguYwNCivguKrguLjguJ7guKMg4Lij4Li44LiI4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lie4LijIOC4qOC4uOC4oOC4peC4seC4geC4qeC4k+C5jOC4meC4suC4o+C4tQ0KK+C4quC4uOC4nuC4oyDguYDguKvguKXguLXguYjguKLguKHguKHguIHguKPguLLguYDguIjguKPguLTguI0NCivguKrguLjguJ7guKPguIrguLHguKIg4Lin4Lij4Lij4LiT4LiX4Li04LihDQor4Liq4Li44Lie4Lij4Lij4LiTIOC4iOC4seC4meC4nuC4tOC4qOC4suC4pQ0KK+C4quC4uOC4nuC4o+C4o+C4kyDguJ7guIfguKjguYzguIjguLXguKPguIHguLPguIjguKMNCivguKrguLjguJ7guKPguKPguJMg4Liq4Li44LiC4Lit4Lij4Li44LiTDQor4Liq4Li44Lie4Lij4Lij4LiT4LiyIOC5gOC4guC4teC4ouC4p+C4iuC4reC4uOC5ieC4oQ0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguITguKPguLnguIvguK0NCivguKrguLjguJ7guKPguKPguJPguLUg4LmB4LiL4LmI4LiB4Li14LmJDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC4mOC4o+C4o+C4oeC4hOC4teC4o+C4tQ0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguJ7guKPguJ7guLHguJLguJnguJnguLLguIfguIHguLnguKMNCivguKrguLjguJ7guKPguKPguJPguLUg4Lij4Li44LiI4Li04Lig4Lix4LiB4LiU4Li04LmMDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC4quC4oeC4muC4uOC4jeC4jeC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguK3guLHguJrguJTguLjguKXguKXguLLguKrguYwNCivguKrguLjguJ7guKPguKPguLHguJXguJnguYwg4LmA4Lir4Lil4Li34Lit4LiH4LiK4Lin4Lie4LiH4Lio4LmMDQor4Liq4Li44Lie4LilIOC5gOC4ieC4peC4tOC4oeC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4uOC4pQ0KK+C4quC4uOC4nuC4pSDguJnguYnguLPguYDguJ7guIrguKMNCivguKrguLjguJ7guKUg4Lih4LiH4LiE4LilDQor4Liq4Li44Lie4LilIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C4quC4uOC4nuC4pSDguYDguK3guLfguYnguK3guK3guJnguLHguJnguJXguYwNCivguKrguLjguJ7guLHguJLguIzguLIg4LmB4LiI4LiH4Liy4LihDQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4geC4tOC4iOC4muC4suC4o+C4oeC4tQ0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguJXguLHguYnguIfguKjguKPguLXguJvguKPguLDguIrguLTguJUNCivguKrguLjguJ7guLHguJLguJnguYwg4Lib4Liy4Lin4Liw4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4o+C4seC4leC4meC4nuC4meC4seC4hw0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguKjguLLguKrguJXguKPguYzguKrguLTguKPguLTguKrguKHguJrguLHguJXguLQNCivguKrguLjguJ7guLHguJLguJnguYwg4Lit4Li04LiX4LiY4Li04LmA4LiU4LiK4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4geC4seC4meC4reC4o+C4tA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguIfguLLguKHguKXguLTguILguLTguJXguKfguLHguJLguJnguIHguLjguKUNCivguKrguLjguJ7guLHguJXguKPguLIg4LiK4Li04LiZ4Lin4Li14Lij4Liw4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4leC4seC4h+C4geC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguJnguLHguJnguJfguKPguLHguJXguJnguLLguIHguLnguKUNCivguKrguLjguJ7guLHguJXguKPguLIg4LmE4Lic4LmI4LmB4LiB4LmJ4LinDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4oeC4seC5iOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguYDguKXguLTguKjguK3guKDguLTguKrguLTguJfguJjguLTguYwNCivguKrguLjguJ7guLHguJXguKPguLIg4Lio4Li44LiC4Liw4Lin4Liy4LiX4Li1DQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4quC4uOC4leC4o+C4teC5gOC4iuC4suC4p+C4meC4geC4uOC4pQ0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguYLguKvguKPguLLguJnguLTguITguKENCivguKrguLjguJ7guLHguJXguKjguKMg4Lij4Lix4LiB4Lip4LmM4LiK4LiZDQor4Liq4Li44Lie4LiyIOC4iOC4seC4meC4l+C4o+C5jOC4l+C4tOC4nuC4ouC5jA0KK+C4quC4uOC4nuC4tOC4iuC4jeC4siDguJ7guLTguJrguLnguKXguKDguLLguJnguLjguKfguLHguJjguJkNCivguKrguLjguJ7guLTguJXguKMg4Lir4Liy4LiN4LiT4Lij4LiH4LiE4LmMDQor4Liq4Li44Lie4Li04LiZIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4nuC4tOC4mSDguKfguKPguLLguJ7guKTguIHguKnguYwNCivguKrguLjguJ7guLTguJnguJTguLIg4Lin4Li44LiS4Li04LiK4Lix4LiiDQor4Liq4Li44Lie4Li04LioIOC4iOC4seC4meC5geC4iOC5iOC4oeC4iOC4tOC4leC4leC5jA0KK+C4quC4uOC4nuC4tOC4qCDguKfguIfguKjguYzguKDguLnguKHguLTguJnguJfguKPguYwNCivguKrguLjguJ7guLXguKPguYzguJ7guLHguJLguJnguYwg4LiI4Lit4LiH4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44Lig4LiI4Li04Lij4LiyIOC4lOC5ieC4p+C4h+C4lOC4tQ0KK+C4quC4uOC4oOC4k+C4seC4kCDguJnguLTguKXguKPguLHguJXguJnguYwNCivguKrguLjguKDguKMg4LmC4LiC4Lin4Li04LiR4Li54Lij4LiB4Li04LiIDQor4Liq4Li44Lig4Lij4LiT4LmMIOC4h+C4suC4oeC5gOC4h+C4tOC4meC4p+C4o+C4o+C4k+C5jA0KK+C4quC4uOC4oOC4o+C4k+C5jCDguJ7guKPguIfguLLguKENCivguKrguLjguKDguKPguJPguYwg4LmA4Liq4Li34Lit4LiI4Li44LmJ4LiiDQor4Liq4Li44Lig4Lil4Lix4LiE4LiT4LmMIOC4meC4suC4hOC4sOC4quC4seC4meC4leC5jA0KK+C4quC4uOC4oOC4seC4giDguKrguKDguLLguITguIHguLjguKUNCivguKrguLjguKDguLHguIQg4Lir4LiH4Lip4LmM4LiJ4Lil4Liy4LiUDQor4Liq4Li44Lig4Lix4LiXIOC4meC4geC4qOC4tOC4o+C4tA0KK+C4quC4uOC4oOC4seC4l+C4oyDguJ7guLTguJnguLTguIjguYDguKfguIrguIHguLLguKMNCivguKrguLjguKDguLHguJfguKPguLIg4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lig4Lix4LiX4Lij4LiyIOC4muC4uOC4jeC4iuC4seC4ouC4ouC4uOC4l+C4mOC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4oOC4seC4l+C4o+C4siDguKfguLHguJLguJnguYDguIHguLXguKLguKPguJXguLTguKrguKPguKMNCivguKrguLjguKDguLHguJfguKPguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li44LiCDQor4Liq4Li44Lig4LiyIOC5gOC4geC4qeC4o+C4quC4oeC4muC4seC4leC4tA0KK+C4quC4uOC4oOC4siDguInguKXguLLguJTguKrguLjguJnguJfguKPguKfguLLguJfguLUNCivguKrguLjguKDguLIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Liq4Li44Lig4LiyIOC4l+C4o+C4seC4nuC4ouC5jOC4reC4p+C4ouC4quC4uOC4gg0KK+C4quC4uOC4oOC4siDguYDguJvguLXguKLguKPguK3guJQNCivguKrguLjguKDguLIg4Lih4Li44LiZ4Li04LiZ4LiX4Lij4LmM4LiZ4Li04Lih4Li04LiV4LiV4LmMDQor4Liq4Li44Lig4LiyIOC5gOC4peC4tOC4qOC5geC4quC4p+C4h+C4geC4tOC4iA0KK+C4quC4uOC4oOC4siDguKjguLTguKPguLTguKrguLTguJfguJjguLTguYwNCivguKrguLjguKDguLIg4Liq4Li44LiZ4LiX4Lij4LmA4LiB4LioDQor4Liq4Li44Lig4LiyIOC4reC4seC4h+C4hOC4k+C4suC4p+C4tOC4qOC4seC4peC4ouC5jA0KK+C4quC4uOC4oOC4suC4h+C4hOC5jCDguYDguJfguK3guJTguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguKrguLjguKDguLLguJPguLUg4LiI4LmJ4Lit4Lii4Lin4Li04Lil4Lix4LiiDQor4Liq4Li44Lig4Liy4LiT4Li1IOC4meC4suC4ruC4tOC4oQ0KK+C4quC4uOC4oOC4suC4k+C4tSDguKfguIfguKjguYzguKfguLTguJfguLnguYTguJcNCivguKrguLjguKDguLLguJPguLUg4LmA4Lit4Li14LmJ4Lii4Lin4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Li44Lig4Liy4LieIOC4geC4leC4seC4jeC4jeC4uQ0KK+C4quC4uOC4oOC4suC4niDguITguLPguYHguJzguIcNCivguKrguLjguKDguLLguJ4g4LiK4Li44LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lig4Liy4LieIOC5guC4leC4qeC4iOC4o+C4sA0KK+C4quC4uOC4oOC4suC4niDguJrguLjguI3guJfguKPguLTguIHguIrguLLguJXguLQNCivguKrguLjguKDguLLguJ4g4Lie4Lin4LiH4Lir4Li04Lih4Lin4Lix4LiZ4LiV4LmMDQor4Liq4Li44Lig4Liy4LieIOC4ouC4qOC4sOC4quC4tOC4meC4mOC4uOC5jA0KK+C4quC4uOC4oOC4suC4niDguKfguLHguJnguKfguLTguYDguKfguIENCivguKrguLjguKDguLLguJ4g4Liq4Liy4Lii4LiB4Lih4LilDQor4Liq4Li44Lig4Liy4LieIOC4reC4oOC4tOC5guC4ig0KK+C4quC4uOC4oOC4suC4nuC4oyDguIHguLPguKvguJnguJTguYHguJnguYgNCivguKrguLjguKDguLLguJ7guKMg4LiI4LiH4Liq4Li44LiC4LiB4Li04LiI4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44Lig4Liy4Lie4LijIOC5geC4iOC5ieC4h+C4quC4meC4tOC4lw0KK+C4quC4uOC4oOC4suC4nuC4oyDguYHguIvguYjguJnguLMNCivguKrguLjguKDguLLguJ7guKMg4LiV4Lix4LmJ4LiH4Lia4Lij4Lij4LmA4LiI4Li04LiU4Lin4LiZ4Li04LiKDQor4Liq4Li44Lig4Liy4Lie4LijIOC5gOC4l+C4teC4ouC4meC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4quC4uOC4oOC4suC4nuC4oyDguJrguLjguI3guYDguIrguLTguJTguIrguLHguKLguKLguLHguJnguJXguYwNCivguKrguLjguKDguLLguJ7guKMg4Lie4Lix4LiS4LiZ4Lib4Lij4Liw4LiX4Li14LibDQor4Liq4Li44Lig4Liy4Lie4LijIOC4oOC4ueC5iOC5guC4quC4oOC4sg0KK+C4quC4uOC4oOC4suC4nuC4oyDguYDguKPguLfguK3guIfguKjguKPguLUNCivguKrguLjguKDguLLguJ7guKMg4Lin4Lij4Lij4LiT4LiB4LmJ4Lit4LiZDQor4Liq4Li44Lig4Liy4Lie4LijIOC4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C4oeC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4oOC4suC4nuC4oyDguKrguLjguJfguKfguLXguJfguKPguLHguJ7guKLguYwNCivguKrguLjguKDguLLguJ7guKMg4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4LiH4LiE4LilDQor4Liq4Li44Lig4Liy4Lie4LijIOC4reC4tOC4meC4l+C4meC4suC4meC4uOC4ig0KK+C4quC4uOC4oOC4suC4nuC4o+C4o+C4kyDguIrguLjguYjguKHguKrguLjguKfguKPguKPguJMNCivguKrguLjguKDguLLguJ7guKPguKPguJMg4Liq4Lix4LiZ4LiV4Li04Liq4Li44LiCDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4geC4peC5ieC4suC4q+C4suC4jQ0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguYLguITguJXguLDguJ7guLHguJnguJjguYwNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LiJ4Liy4Lii4Lin4Li04LmA4LiK4Li14Lii4LijDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC5geC4i+C5iOC4reC4seC5ieC4hw0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguYTguJXguKPguIHguLjguKUNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LiZ4Li04Lio4Liy4Lig4Liy4LiB4LijDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4nuC4seC4kuC4meC4suC4p+C4k+C4tOC4iuC4ouC5jA0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguYDguKLguYfguJnguInguYjguLMNCivguKrguLjguKDguLLguKDguKPguJPguYwg4Lin4LiK4Li04LmC4Lij4Lig4Liy4Liq4LiB4Lij4LiT4LmMDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4qOC4tOC4o+C4tOC5guC4quC4oOC4k+C4sg0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguKrguLjguJjguLXguKPguLLguJjguLTguIHguLjguKUNCivguKrguLjguKDguLLguKDguKPguJPguYwg4Lit4Liy4Lig4Liy4LiK4LiZ4Liy4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lig4Liy4Lij4Lix4LiV4LiZ4LmMIOC4iOC4seC4geC4o+C4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4oOC4suC4o+C4seC4leC4meC5jCDguKjguKPguLXguKfguLjguJLguLTguIrguLLguI0NCivguKrguLjguKDguLLguKfguJTguLUg4LiC4Liz4LiZ4LmJ4Lit4LiiDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC5geC4i+C5iOC5gOC4ruC5ieC4sg0KK+C4quC4uOC4oOC4suC4p+C4lOC4tSDguJvguLjguKPguLLguJjguJnguLLguJnguJnguJfguYwNCivguKrguLjguKDguLLguKfguJTguLUg4Lij4Lix4LiH4Liq4Li04LmA4Liq4LiZ4LiyIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLjguKDguLLguKfguJTguLUg4Liq4Li04LiH4Lir4Liw4LmA4LiZ4LiV4Li0DQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4reC4uOC4m+C4iuC4teC4p+C4sA0KK+C4quC4uOC4oOC4suC4p+C4tOC4k+C4tSDguJ7guLTguKHguYLguKrguKENCivguKrguLjguKDguLLguYDguJ7guYfguI0g4Lir4Lil4Lix4LiB4Lir4Liy4LiNDQor4Liq4Li44Lig4Li04LiU4LiyIOC5guC4reC4quC4luC4suC4meC4uOC5gOC4hOC4o+C4suC4sOC4q+C5jA0KK+C4quC4uOC4oOC4teC4nuC4o+C4o+C4kyDguJTguLLguKPguLLguIHguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4quC4uOC4oeC4k+C4keC4siDguIjguLPguJvguLINCivguKrguLjguKHguJPguJHguLIg4LmC4Lij4LiI4LiZ4Liy4LmA4Lib4Lij4Lih4Liq4Li44LiCDQor4Liq4Li44Lih4LiZIOC4geC4s+C4m+C4h+C4i+C4seC4mQ0KK+C4quC4uOC4oeC4mSDguKHguJjguLjguKfguLLguJnguJnguJfguYwNCivguKrguLjguKHguJkg4Lit4Lix4LiE4Lij4Lin4Lij4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44Lih4LiZ4LiX4LiyIOC4nuC4h+C4qeC5jOC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4oeC4meC4siDguYTguIHguKPguIHguLLguI3guIjguJnguYwNCivguKrguLjguKHguJnguLIg4Lib4LiX4Li14Lib4Liw4Lib4Liy4LiT4Li1DQor4Liq4Li44Lih4LiZ4LiyIOC4quC4geC4uOC4peC4oeC4h+C4hOC4peC4meC4suC4oQ0KK+C4quC4uOC4oeC4pSDguYLguITguKfguLLguJnguLTguKrguLHguKLguKrguLjguILguIHguLjguKUNCivguKrguLjguKHguKUg4LiX4Lit4LiH4Lie4Lix4LiZ4LiK4Lix4LmI4LiHDQor4Liq4Li44Lih4LilIOC4o+C4uOC5iOC4h+C4reC4uOC4lOC4oeC4geC4tOC4iA0KK+C4quC4uOC4oeC4pSDguK3guKLguLnguYjguJfguK3guIcNCivguKrguLjguKHguKXguKPguLHguJXguJnguYwg4LmB4LiV4LmJ4Lij4Lix4LiV4LiZ4Lih4LiH4LiE4LilDQor4Liq4Li44Lih4Liy4LiT4Li1IOC4geC4tOC4iOC4muC4uOC4jeC4iuC4seC4og0KK+C4quC4uOC4oeC4suC4oOC4o+C4k+C5jCDguK3guLjguJTguKHguYLguIrguIQNCivguKrguLjguKHguLLguKXguKLguYwg4Lii4Li04LmJ4Lih4LmA4Lib4LmH4LiZ4Liq4Li44LiCDQor4Liq4Li44Lih4Liy4Lil4LiyIOC4mOC4ueC4m+C5gOC4l+C4teC4ouC4meC4q+C4reC4oQ0KK+C4quC4uOC4oeC4suC4peC4tSDguIHguLTguKHguIrguLnguKfguLLguJPguLTguIoNCivguKrguLjguKHguLLguKXguLUg4LiE4LiH4Lit4Liy4Lip4LiyDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4p+C4tOC4l+C4ouC4suC4meC4uOC4iuC4tOC4lQ0KK+C4quC4uOC4oeC4suC4peC4tSDguYHguIjguYjguKHguKHguLUNCivguKrguLjguKHguLLguKXguLUg4LiK4Li54Liq4Lix4LiH4LiC4LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5geC4i+C5iOC5geC4q+C5iOC4pw0KK+C4quC4uOC4oeC4suC4peC4tSDguJXguLjguKXguLLguJTguLTguKXguIENCivguKrguLjguKHguLLguKXguLUg4LmA4LiX4Lio4LiZ4Liw4LmC4Lii4LiY4Li04LiZDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4meC4suC4hOC5gOC4qOC4o+C4k+C4tQ0KK+C4quC4uOC4oeC4suC4peC4tSDguJrguLjguI3guKfguKPguYDguKjguKPguKnguJDguYwNCivguKrguLjguKHguLLguKXguLUg4LmC4Lib4Liq4Liy4Lig4Li04Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4nuC4tOC4l+C4seC4geC4qeC5jOC4nuC4tOC4meC4tOC4iOC4meC4seC4meC4l+C5jA0KK+C4quC4uOC4oeC4suC4peC4tSDguKDguLnguKHguLTguJvguKPguLXguIrguLINCivguKrguLjguKHguLLguKXguLUg4LmE4Lih4LmJ4Lir4Lit4LihDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5gOC4o+C4t+C4reC4h+C4qOC4o+C4tQ0KK+C4quC4uOC4oeC4suC4peC4tSDguKfguIfguKjguYzguILguYnguLLguKvguKXguKfguIcNCivguKrguLjguKHguLLguKXguLUg4Lin4Li04LmE4Lil4LmB4LiB4LmJ4LinDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4qOC4tOC4o+C4tOC4muC4suC4pQ0KK+C4quC4uOC4oeC4suC4peC4tSDguKrguLTguIfguKvguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKHguLLguKXguLUg4Liq4Li54LmJ4LiK4Li04LiH4LiK4Lix4LiiDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5gOC4q+C4peC4t+C4reC4h+C4m+C4kOC4oeC4iuC4seC4og0KK+C4quC4uOC4oeC4suC4peC4tSDguK3guLLguKPguLXguKfguIfguITguYwNCivguKrguLjguKHguLLguKgg4LmA4LiB4Li04LiU4LmB4LiB4LmI4LiZ4LmB4LiB4LmJ4LinDQor4Liq4Li44Lih4Li04LiV4LijIOC4ieC4seC4leC4o+C4iuC4seC4ouC4p+C4tOC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4oeC4tOC4leC4oyDguJvguLjguI3guI3guLLguKrguKfguLHguKrguJTguLTguYwNCivguKrguLjguKHguLTguJXguKMg4Lio4Li04Lij4Li04LiL4Li44LmJ4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44Lih4Li04LiV4Lij4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC5gOC4reC4teC5iOC4ouC4oQ0KK+C4quC4uOC4oeC4tOC4leC4o+C4siDguJXguLXguKPguJ7guLHguJLguJnguJ7guLHguJnguJjguYwNCivguKrguLjguKHguLTguJXguKPguLIg4Lig4Li54Lin4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Liq4Li44Lih4Li04LiV4Lij4LiyIOC4quC4tOC4h+C4q+C4l+C4seC4lQ0KK+C4quC4uOC4oeC4tOC4meC4l+C4o+C5jCDguKrguLjguJnguJfguKPguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguKPguIHguLLguJnguJXguYwg4Lib4Lix4LiN4LiN4Liy4LiH4Liy4LihDQor4Liq4Li44Lij4LiB4Li04LiIIOC5guC4peC4q+C4mOC4tOC4leC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4iOC4tOC4lSDguYDguJXguIrguLDguJrguLnguKPguJPguYDguJfguJ7guLLguIHguKPguJPguYwNCivguKrguLjguKPguIjguLTguJXguKMg4LiZ4LiZ4LiX4LmM4LiY4LiZ4Lib4Lij4Liw4LiB4Li04LiIDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4geC4seC4h+C5gOC4quC4luC4teC4ouC4ow0KK+C4quC4uOC4o+C4iuC4seC4oiDguILguIjguKPguYDguIHguLXguKLguKPguJXguLTguKrguLjguIINCivguKrguLjguKPguIrguLHguKIg4LiI4Lij4Li04Lii4Liy4LiZ4Lix4LiZ4LiX4LmA4LiZ4LiV4LijDQor4Liq4Li44Lij4LiK4Lix4LiiIOC5gOC4iOC4meC4m+C4tOC4ouC4nuC4h+C4qOC5jA0KK+C4quC4uOC4o+C4iuC4seC4oiDguIrguLHguKLguYDguKrguJbguLXguKLguKPguIHguLTguIgNCivguKrguLjguKPguIrguLHguKIg4LmB4LiL4LmI4LiE4Li5DQor4Liq4Li44Lij4LiK4Lix4LiiIOC4kyDguYDguIrguLXguKLguIfguYPguKvguKHguYgNCivguKrguLjguKPguIrguLHguKIg4LiV4Lix4LmJ4LiH4LmA4LiI4Lij4Li04LiN4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4l+C4p+C4teC4peC4suC4oA0KK+C4quC4uOC4o+C4iuC4seC4oiDguJjguLXguKPguLLguYDguKfguJfguKLguYzguJnguLjguJ7guIfguKjguYwNCivguKrguLjguKPguIrguLHguKIg4Lia4Li44LiN4Lie4Lil4Lix4LiaDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4m+C4tOC4ouC4sOC4o+C4seC4leC4meC5guC4ouC4mOC4tOC4mQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguJ7guLTguJ7guLHguJLguJ7guIfguKjguLINCivguKrguLjguKPguIrguLHguKIg4Lih4LiH4LiE4Lil4Lia4Li54Lij4LiT4Liw4Lio4Li04Lij4Li0DQor4Liq4Li44Lij4LiK4Lix4LiiIOC5guC4ouC4mOC4suC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKTguJfguLHguKLguKPguLjguYnguIcNCivguKrguLjguKPguIrguLHguKIg4Lin4LiH4Lio4LmM4LiI4Liy4Lij4Li14LiB4Li04LiV4LiV4Li0DQor4Liq4Li44Lij4LiK4Lix4LiiIOC4p+C4tOC4iOC4suC4o+C4k+C5jOC4geC4seC4ouC4geC4tOC4iA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKjguKPguLXguYDguIjguKPguLTguI3guKrguLjguILguKLguLTguYjguIcNCivguKrguLjguKPguIrguLHguKIg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Liq4Lij4Lij4Lie4LmMDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4quC4uOC4iOC4tOC4meC4lOC4suC4oeC4k+C4tQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguYHguKrguIfguK3guKPguLjguJPguKjguLTguKPguLQNCivguKrguLjguKPguIrguLHguKIg4Lit4LiU4Li44Lil4Lii4LiY4Lij4Lij4LihDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4reC4suC4iOC4q+C4suC4jeC4qOC4tOC4o+C4tA0KK+C4quC4uOC4o+C4iuC4siDguJfguK3guIfguJ7guLTguKXguLINCivguKrguLjguKPguIrguLLguJXguLQg4LiV4Liz4Lij4Liy4LmA4Lij4Li14Lii4LiHDQor4Liq4Li44Lij4LiK4Liy4LiV4Li0IOC4qOC4qOC4tOC4mOC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4k+C4tSDguJXguLHguJnguJXguLTguKfguJPguLTguIrguIrguLLguJnguJnguJfguYwNCivguKrguLjguKPguJfguLTguJkg4Lit4Li04LmJ4LiH4LiI4Liw4LiZ4Li04LilDQor4Liq4Li44Lij4Lib4Lij4Li14LiK4LmMIOC5guC4hOC4leC4o+C5guC4quC4oOC4sg0KK+C4quC4uOC4o+C4nuC4h+C4qOC5jCDguJ7guLHguJnguJjguYzguKfguLTguKjguKfguLLguKoNCivguKrguLjguKPguJ7guIfguKjguYwg4LmA4Lit4Li34LmJ4Lit4Lin4Lix4LiS4LiZ4Liy4Lih4LiH4LiE4LilDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4iOC4uOC4peC4oeC4meC4leC5jA0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguJXguLHguYnguIfguYPguIjguIHguLLguKPguLjguJPguKLguYwNCivguKrguLjguKPguJ7guIfguKnguYwg4Lib4LiB4Liy4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4oOC4ueC4m+C4o+C4sOC5hOC4ng0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguKfguLHguIfguYDguK3guIENCivguKrguLjguKPguJ7guIfguKnguYwg4Liq4Li44Lie4Lix4LiS4LiZ4LmM4Lio4Li04Lil4Lib4LmMDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4reC4tuC5ieC4h+C4reC4seC4oeC4nuC4o+C4p+C4tOC5hOC4pQ0KK+C4quC4uOC4o+C4nuC4oyDguKHguJPguLXguKrguLTguJnguJjguLjguYwNCivguKrguLjguKPguJ7guKUg4LiB4Li04LiV4LiV4Li04LiU4Liz4Lij4LiHDQor4Liq4Li44Lij4Lie4LilIOC4hOC4h+C4quC4geC4uOC4pQ0KK+C4quC4uOC4o+C4nuC4pSDguIjguLHguJnguYDguJ7guYfguIcNCivguKrguLjguKPguJ7guKUg4LmA4LiJ4Lil4Li04Lih4LiK4Lix4Lii4LiZ4Li44LiB4Li44LilDQor4Liq4Li44Lij4Lie4LilIOC5geC4i+C5iOC4nOC4seC5iOC4hw0KK+C4quC4uOC4o+C4nuC4pSDguJXguLLguJvguJnguLLguJnguJnguJfguYwNCivguKrguLjguKPguJ7guKUg4LmA4LiX4Lio4LiC4LiI4LijDQor4Liq4Li44Lij4Lie4LilIOC4meC4tOC5guC4hOC4o+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4nuC4pSDguJvguKPguLHguKjguKfguYzguYDguKHguJjguLXguIHguLjguKUNCivguKrguLjguKPguJ7guKUg4Lie4Lij4Lir4Lih4LiZ4Li04Lih4Li04LiV4LijDQor4Liq4Li44Lij4Lie4LilIOC4nuC4ueC4peC4l+C4p+C4tQ0KK+C4quC4uOC4o+C4nuC4pSDguKHguLLguJ7guLnguJnguKrguKfguLHguKrguJTguLTguYzguKfguLHguJLguJnguLINCivguKrguLjguKPguJ7guKUg4Lij4Lix4LiV4LiZ4LmM4Lie4LiH4Lip4LmM4Lie4LijDQor4Liq4Li44Lij4Lie4LilIOC5gOC4peC5h+C4geC4m+C4o+C4sOC4quC4suC4ow0KK+C4quC4uOC4o+C4nuC4pSDguKfguLTguKLguLDguJTguLLguKHguIfguITguKUNCivguKrguLjguKPguJ7guKUg4Lio4Li04Lij4Li04LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Li44Lij4Lie4LilIOC4quC4seC4h+C4guC5jOC4quC4tOC4h+C4q+C5jA0KK+C4quC4uOC4o+C4nuC4pSDguKrguLjguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguLjguKPguJ7guKUg4Lir4Lix4Liq4LiU4Li04LiZDQor4Liq4Li44Lij4Lie4LilIOC4reC4tOC4meC4l+C4o+C4peC4seC4geC4qeC4k+C5jA0KK+C4quC4uOC4o+C4nuC4seC4leC4oyDguKrguLjguJfguJjguLTguJjguJnguLLguIHguKMNCivguKrguLjguKPguJ7guLHguJnguJjguYwg4LmA4LiV4LiK4LiZ4Liw4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44Lij4Lie4Lix4LiZ4LiY4LmMIOC4p+C4o+C4geC4tOC4leC4leC4tOC4p+C4k+C4tOC4ig0KK+C4quC4uOC4o+C4nuC4tSDguYHguIvguYjguK3guLbguYnguIcNCivguKrguLjguKPguKDguLUg4LiX4Li04Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Li44Lij4Lih4Lii4LmMIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C4quC4uOC4o+C4p+C4h+C4qOC5jCDguJfguKfguLXguKrguLHguJXguKLguYwNCivguKrguLjguKPguKfguLTguJfguKLguYwg4Lio4Liy4Lil4Liy4Liq4Li44LiCDQor4Liq4Li44Lij4Lin4Li44LiS4Li0IOC5gOC4qOC4o+C4qeC4kOC4muC4uOC4leC4ow0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguIHguLTguYjguIfguYTguJfguKMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiE4LiH4LiB4Li04LiV4LiV4Li04LiB4LijDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4seC4meC4l+C4o+C4suC4l+C4tOC4nuC4ouC5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYHguIjguKfguYDguIjguKPguLTguI0NCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LmA4LiK4Liy4Lin4LmM4Lin4Li04Lio4Li04Lip4LiQ4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguJXguLHguYnguIfguKjguKPguLXguKPguLHguJXguJnguIHguLjguKUNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4seC4meC4l+C4p+C4tOC5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLDguJfguLLguJnguKfguKPguJvguLHguI3guI3guLINCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lie4Lil4Lix4Lia4Lie4Lil4Li1DQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4oOC4ueC5iOC4p+C4uOC4kuC4tOC4geC4uOC4pQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKPguLHguIrguJXguLDguKfguKPguKPguJMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lil4Li34Lit4Lin4Li04Lio4Lin4LiB4Li44LilDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4o+C4quC4uOC4p+C4o+C4o+C4k+C4suC4l+C4ow0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguLXguKPguIrguLLguKLguKXguLHguIHguKnguJPguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lio4Li04Lij4Li04LmC4LiK4LiV4Li0DQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4seC4h+C4guC5jOC4l+C4reC4hw0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKrguLjguJ7guLHguJLguJnguLLguKDguKPguJPguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lir4Liw4Lij4Lix4LiH4Lip4Li1DQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4seC4h+C4geC4suC4muC4qOC4o+C4tQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYLguK3guKzguLLguKPguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLjguKPguKrguLTguJfguJjguLTguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LmC4Liq4Lig4LiT4Lie4LiH4Lio4LmMDQor4Liq4Li44Lij4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4o+C4suC4muC4k+C4o+C4h+C4hOC5jA0KK+C4quC4uOC4o+C4quC4tOC4l+C4mOC4tOC5jCDguKjguKPguLXguK3guKPguJfguLHguKLguIHguLjguKUNCivguKrguLjguKPguKrguLTguJfguJjguLTguYwg4LmA4Lit4Li14LmI4Lii4Lih4LiY4LiZ4Liy4LiB4Li44LilDQor4Liq4Li44Lij4LiwIOC4nuC5iOC4p+C4h+C4peC4suC4oOC4q+C4peC4suC4og0KK+C4quC4uOC4o+C4sOC4iuC4seC4oiDguKHguLLguKXguLXguYHguKLguYnguKENCivguKrguLjguKPguLDguJ7guKUg4Lit4LmI4Lit4LiZ4Lik4LiX4LiY4Li04LmMDQor4Liq4Li44Lij4Lix4LiKIOC4geC4reC4h+C4meC4tOC4oeC4tOC4leC4ow0KK+C4quC4uOC4o+C4seC4iuC4lOC4siDguKDguLnguKfguJTguKXguJ7guLTguJfguLHguIHguKnguYwNCivguKrguLjguKPguLHguIrguKfguJTguLUg4Lir4Lit4Lih4Lii4LiBDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmM4Lie4LijIOC5gOC4l+C4teC4ouC4oeC5gOC4oeC4hg0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguIHguLHguJnguJXguLDguKjguKPguLUNCivguKrguLjguKPguLHguJXguJnguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LmC4LiK4LiE4Lie4LiH4Lip4LmMDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC5gOC4iuC4tOC4lOC4iuC4ueC4oeC4suC4peC4seC4ouC4geC4tOC4iA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguJfguK3guIfguYDguKrguKHguYfguJQNCivguKrguLjguKPguLHguJXguJnguYwg4Lia4Li44LiN4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4nuC4uOC5iOC4oeC4nOC4pQ0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguKPguLjguYjguIfguYHguKrguIcNCivguKrguLjguKPguLHguJXguJnguYwg4Lio4Lij4Li14Lil4Liy4LigDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4guC4nuC4tOC4qOC4suC4pQ0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguK3guLHguITguKPguKDguLLguJnguLjguKHguLLguKgNCivguKrguLjguKPguLHguJXguLQg4LmA4Lio4Lij4Lip4LiQ4Lit4Lig4Li04LiY4Liy4LiZDQor4Liq4Li44Lij4Lix4Liq4Lin4LiU4Li1IOC4quC4teC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C4quC4uOC4o+C4suC4h+C4hOC5jOC4o+C4seC4leC4meC5jCDguKHguLjguKrguLTguIHguYTguIrguKINCivguKrguLjguKPguLLguIfguITguYwg4LiI4Lij4Lij4Lii4Liy4Lit4Lix4LiH4LiB4Li54LijDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4lOC4uOC4peC4ouC5jOC4nuC4iOC4meC5jOC5gOC4l+C4p+C4sg0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguYLguJvguKnguKLguLLguJnguJnguJfguYwNCivguKrguLjguKPguLLguIfguITguYwg4Lij4Lix4LiB4Lip4Liy4Lij4Liy4LiK4Lin4Li04LiV4LijDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4quC4h+C4p+C4meC4p+C4h+C4qOC5jA0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguYLguKvguKHguLLguJnguLHguJnguJfguYwNCivguKrguLjguKPguLLguKnguI7guKPguYwg4LmA4LiB4Lip4LiV4Lij4Liw4LiK4LiZ4Lih4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmM4LiX4Li04Lie4Lii4LmMIOC4reC4tOC4quC4quC4o+C4sOC4iuC4seC4og0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYDguIHguLTguJTguKrguLjguKfguKPguKPguJPguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiE4Liz4LmC4LiW4Lih4Lik4LiX4LiY4Li04LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4iOC4tOC4meC4seC4meC4l+C4ouC4sg0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguIrguLHguKLguIrguLDguJnguLDguKHguIfguITguKUNCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiN4Liy4LiT4LmA4LiB4Li14Lii4Lij4LiV4Li04Lie4LiH4Lio4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC5gOC4leC4tOC4oeC4quC4suC4ouC4l+C4reC4hw0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguJjguJnguIHguLTguIjguIjguLPguKPguLnguI0NCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lia4Li44LiN4Lil4LieDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC5guC4m+C4o+C5gOC4l+C4teC4ouC4o+C4k+C5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguJ7guLTguIrguLHguKLguKjguKPguJfguLHguJUNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lig4Li54LmI4Lib4Lij4Liw4Lig4Liy4LiU4Li04Lil4LiBDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4ouC4tOC5ieC4oeC5gOC4nuC5h+C4hw0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKXguLHguIHguKnguKHguLXguKfguKPguLLguJnguJnguJfguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lin4Lij4Lie4Lix4LiZ4LiY4LmM4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4qOC4o+C4teC4p+C4suC4o+C4teC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKrguKHguLHguITguKPguIrguYjguKfguKINCivguKrguLjguKPguLTguJnguJfguKPguYwg4Liq4Li44LiC4Lih4Liy4LiBDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC5geC4quC4h+C4o+C4seC4leC4meC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguK3guJnguLHguIfguKPguLHguKrguJTguLUNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lit4Li04LmI4Lih4Liq4Li44LiCDQor4Liq4Li44Lij4Li04Lih4Liy4LioIOC5geC4nuC4l+C4ouC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4o+C4tOC4ouC4meC4leC5jCDguYDguIHguKnguKPguJ7guKPguKvguKENCivguKrguLjguKPguLTguKLguLAg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4Liq4Li44Lij4Li04Lii4LiwIOC5guC4peC4q+C4sOC5gOC4p+C4ig0KK+C4quC4uOC4o+C4tOC4ouC4seC4jSDguJnguLTguKXguJfguIjguLHguJnguJfguKPguYwNCivguKrguLjguKPguLTguKLguLHguJnguJXguYwg4LiK4Li54LiV4Liw4Lin4LiH4Lip4LmMDQor4Liq4Li44Lij4Li04Lii4LiyIOC5gOC4hOC4peC5ieC4suC4iOC4seC4meC4l+C4o+C5jOC4nuC4h+C4qeC5jA0KK+C4quC4uOC4o+C4tOC4ouC4siDguJfguK3guIfguYDguJXguYfguKENCivguKrguLjguKPguLTguKLguLIg4LmA4Lie4LmH4LiK4Lij4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinDQor4Liq4Li44Lij4Li04Lii4LiyIOC4quC4peC4sOC4geC4uOC4pQ0KK+C4quC4uOC4o+C4tOC4ouC5jCDguITguLnguJPguJzguKUNCivguKrguLjguKPguLUg4LiV4Lix4LiZ4LiY4LiZ4LmM4Lio4Li44Lig4LiB4Liy4LiN4LiI4LiZDQor4Liq4Li44Lij4Li14Lie4LijIOC4hOC4meC5gOC4iOC4mQ0KK+C4quC4uOC4o+C4teC4nuC4oyDguYLguJ7guJjguLTguYzguKjguLTguKPguLTguJnguLHguJnguJfguIrguLHguKINCivguKrguLjguKPguLXguJ7guKMg4LmA4Lit4Li14LmJ4Lii4Lin4LiW4Liy4Lin4LijDQor4Liq4Li44Lij4Li14Lii4LmM4Lie4LijIOC5gOC4h+C4tOC4meC4h+C4suC4oeC5gOC4peC4tOC4qA0KK+C4quC4uOC4o+C4teC4ouC5jOC4nuC4oyDguJvguKPguLXguKLguLDguJ7guLLguJnguLTguIoNCivguKrguLjguKPguLXguKLguYzguJ7guKMg4Lio4Lij4Li14Liq4Li34LiaDQor4Liq4Li44Lij4Li14Lii4LmM4Lij4Lix4LiV4LiZ4LmMIOC4hOC4h+C4nuC4tOC4l+C4ouC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4o+C4teC4ouC5jOC4o+C4seC4leC4meC5jCDguK3guJnguLHguJnguJXguIHguLLguKXguJXguYwNCivguKrguLjguKPguLXguKLguYwg4LiB4Li04LiV4LiV4Li04Lin4Lij4Lin4LiH4Lio4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC4o+C4teC4ouC5jCDguIrguLfguYjguJnguKrguKHguJbguYnguKfguKINCivguKrguLjguKPguLXguKLguYwg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Liq4Li44Lij4Li14Lii4LmMIOC4l+C4o+C4h+C5gOC4iuC4t+C5ieC4rQ0KK+C4quC4uOC4o+C4teC4ouC5jCDguJnguLTguKHguLTguJXguKPguIHguLjguKUNCivguKrguLjguKPguLXguKLguYwg4LmA4Lib4Lij4Lih4Lib4Lij4Liy4LmC4Lih4LiK4Lii4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4nuC4uOC5iOC4oeC4qOC4tOC4o+C4tA0KK+C4quC4uOC4o+C4teC4ouC5jCDguYTguKHguYnguKrguJbguLTguJXguKLguYwNCivguKrguLjguKPguLXguKLguYwg4Lil4Li04LmJ4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44Lij4Li14Lii4LmMIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4geC4uOC4pQ0KK+C4quC4uOC4o+C4teC4ouC5jCDguKrguKPguKrguLjguITguJnguJjguYwNCivguKrguLjguKPguLXguKLguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lib4Lij4Liw4LiX4Li14LibDQor4Liq4Li44Lij4Li14Lii4LmMIOC4reC4oeC4o+C4mOC4teC4o+C4sOC4geC4uOC4pQ0KK+C4quC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguITguJPguLDguYDguIjguKPguLTguI0NCivguKrguLjguKPguLXguKPguLHguJXguJnguYwg4LiV4Lix4LiZ4LiY4Li44Lin4LiZ4Li04LiV4Lii4LmMDQor4Liq4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4ouC4seC4h+C4quC4p+C5iOC4suC4hw0KK+C4quC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguKvguLLguI3guIjguIfguIHguKUNCivguKrguLjguKPguYDguIHguLXguKLguKPguJXguLQg4Lin4Li04LmA4Lio4Lip4Liq4Li04LiX4LiY4Li44LmMDQor4Liq4Li44Lij4LmA4LiK4Lip4LiQIOC4meC5ieC4suC4meC4suC4hOC4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4o+C5gOC4iuC4qeC4kOC5jCDguYDguIjguKPguLTguI3guIrguLHguKLguJbguLLguKfguKPguIjguLTguJUNCivguKrguLjguKPguYDguIrguKnguJDguYwg4Lii4Lix4LiH4Liq4Li44LiCDQor4Liq4Li44Lij4LmA4LiU4LiKIOC4geC4seC4h+C4quC4lOC4suC4pQ0KK+C4quC4uOC4o+C5gOC4lOC4iiDguJTguLLguKPguYzguIvguLTguIfguKvguYwNCivguKrguLjguKPguYDguJTguIog4Lib4Lij4Liw4Liq4Liy4LiZ4LmA4LiB4Li14Lii4Lij4LiV4Li04Lij4Liy4LiKDQor4Liq4Li44Lij4LmA4LiU4LiKIOC5hOC4o+C5ieC4geC4seC4h+C4p+C4pQ0KK+C4quC4uOC4o+C5gOC4lOC4iiDguKrguLTguJfguJjguLTguYDguIjguKPguLTguI0NCivguKrguLjguKPguYDguJfguJ4g4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiI4Li04LiV4Liq4Lij4LijDQor4Liq4Li44Lij4LmE4LiB4LijIOC4geC4teC4o+C4leC4tOC4m+C4suC4pQ0KK+C4quC4uOC4peC4seC4lOC4lOC4siDguIrguYnguK3guJnguJfguK3guIcNCivguKrguLjguKXguLUg4LiE4Li34LiZ4LiV4Lix4LiBDQor4Liq4Li44Lin4LiE4LiZ4LiY4LmMIOC4oeC5iOC4p+C4h+C4l+C4reC4hw0KK+C4quC4uOC4p+C4k+C4tSDguIjguLTguJXguJXguYzguKPguLHguJXguJnguJjguKPguKPguKENCivguKrguLjguKfguJPguLXguKLguYwg4LmA4LiK4Li14LmI4Lii4Lin4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Li44Lin4LiU4Li1IOC5gOC4l+C4nuC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4p+C4lOC4tSDguK3guLLguKPguLXguKrguIHguLjguKXguKrguLjguIINCivguKrguLjguKfguJnguLTguJXguKLguYwg4LmA4Liq4LiP4LiQ4Liq4Li44Lin4LiI4LiwDQor4Liq4Li44Lin4Lie4LijIOC5gOC4i+C5h+C4oeC5gOC4ruC4hw0KK+C4quC4uOC4p+C4nuC4tOC4qCDguKLguIfguKjguLTguKXguJvguIrguLHguKINCivguKrguLjguKfguKDguLIg4LmA4Lil4Li14LmI4Lii4Lih4Lie4Li44LiY4LiX4Lit4LiHDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4geC4peC4tOC5iOC4meC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4quC4uOC4p+C4o+C4o+C4kyDguILguKfguLHguI3guKLguLfguJkNCivguKrguLjguKfguKPguKPguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4iuC5ieC4suC4h+C4iuC4seC4og0KK+C4quC4uOC4p+C4o+C4o+C4kyDguJTguLPguYDguJnguLTguJnguJfguK3guIcNCivguKrguLjguKfguKPguKPguJMg4LiX4Lix4Lih4Lie4LijDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4p+C4o+C4o+C4kyDguJvguLTguKLguLDguKDguLLguJPguLUNCivguKrguLjguKfguKPguKPguJMg4Lie4Li44LmI4Lih4Lib4Lij4Liw4LiU4Lix4LiaDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4oeC4teC4q+C4peC4seC4geC4iuC4seC4og0KK+C4quC4uOC4p+C4o+C4o+C4kyDguYLguKPguIjguJnguKfguLTguKDguLLguJUNCivguKrguLjguKfguKPguKPguJMg4Lin4Liy4Liq4LiZ4LiB4Lih4LilDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4qOC4tOC4o+C4tOC4p+C4tOC4geC4uOC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4kyDguKrguLjguILguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguKfguKPguKPguJMg4Lir4Lit4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44Lin4Lij4Lij4LiTIOC5gOC4reC4teC5iOC4ouC4oeC4o+C4seC4qOC4oeC4teC5guC4iuC4leC4tA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4l+C4tOC4nuC4ouC5jCDguYHguIvguYjguYDguK7guIcNCivguKrguLjguKfguKPguKPguJPguLIg4LiB4LiZ4Li04Lip4LiQ4Liq4Li44LiVDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5gOC4geC4qeC4oeC4quC4uOC4gg0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguITguLjguJvguJXguLLguJnguJnguJfguYwNCivguKrguLjguKfguKPguKPguJPguLIg4LiI4Li04LiZ4LiU4Liy4LiY4LmA4LiZ4LioDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4iuC4ouC4sOC4reC4peC4h+C4geC4o+C4k+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguIvguLbguYnguIfguKfguLTguKPguLTguKLguLDguIHguLjguKUNCivguKrguLjguKfguKPguKPguJPguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4leC4seC5ieC4h+C4hOC4uOC4o+C4uOC4quC4o+C4k+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJfguK3guIfguJfguLINCivguKrguLjguKfguKPguKPguJPguLIg4LiZ4LiZ4LiX4Liq4Li44LiVDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4muC4s+C4o+C4uOC4h+C4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJvguLHguI3guI3guLLguIrguLXguKfguLTguJkNCivguKrguLjguKfguKPguKPguJPguLIg4Lie4Lix4LiS4LiZ4Lie4LiH4Lio4LiB4LijDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5hOC4nuC5guC4o+C4iOC4meC5jOC4geC4tOC4iOC4iOC4sg0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguKHguLnguKHguLDguKvguLDguKvguKHguLHguJTguIvguK3guYHguKXguLANCivguKrguLjguKfguKPguKPguJPguLIg4Lij4Li34LmI4LiZ4LmA4Lij4Li04LiH4LmD4LiIDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jOC4iuC4seC4iuC4p+C4suC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguKfguLTguIjguLTguJXguKPguJvguKPguLDguKDguLLguJ7guIfguKnguYwNCivguKrguLjguKfguKPguKPguJPguLIg4Lio4Lij4Li14Lio4Li44Lig4Lin4Lij4Lij4LiTDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4quC4p+C5iOC4suC4h+C4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguKrguLjguILguKHguLHguYjguJnguITguIfguYDguKrguKHguK0NCivguKrguLjguKfguKPguKPguJPguLIg4LmB4Liq4LiH4LiY4LiZ4Liy4Lie4Lik4LiB4Lip4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4reC4meC4seC4meC4leC4quC4tOC4l+C4mOC4tOC5jOC4quC4geC4uOC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguK3guLTguJnguJfguKPguYzguK3guLjguJTguKENCivguKrguLjguKfguKPguKPguJPguLUg4LiB4Liy4Lij4LmE4LiX4LiiDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4hOC4s+C4quC4uOC4gg0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguIjguLTguKfguKPguKfguLTguKfguLHguJLguJnguYwNCivguKrguLjguKfguKPguKPguJPguLUg4LiK4Li44LiV4Li04Lie4Lij4Lin4LiT4Li04LiKDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5geC4i+C5iOC4ruC4seC5ieC4hw0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguJXguLHguYnguIfguKfguIfguKjguYzguKjguLLguJnguJXguYwNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4LiX4Lie4Liq4Li04LiZ4LiY4LiZ4Liq4LiB4Li44LilDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4muC4seC4p+C4iOC4teC4mQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYDguJzguLTguIcNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4Lie4LmI4LiH4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lin4LiH4Lip4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4o+C4seC4geC4qeC4suC4nuC4iOC4meC4suC4geC4tOC4iA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYDguKXguLTguKjguKfguLTguKPguLTguKLguLDguYTguJ7guKjguLLguKUNCivguKrguLjguKfguKPguKPguJPguLUg4Lin4Li04Lig4Liy4LiB4Li44Lil4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4quC4oeC4uOC4l+C4o+C4o+C4seC4h+C4quC4tQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguKrguLjguKHguLLguKHguLLguKXguKLguYwNCivguKrguLjguKfguKPguKPguJPguLUg4Lit4LmJ4LiZ4Lij4Li44LmI4LiHDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5gOC4reC4t+C5ieC4reC4quC4oeC4quC4geC4uOC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C5jCDguJnguLLguITguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguLjguKfguKPguLHguJXguJnguYwg4Lia4Li44LiN4Lii4Liq4Li04LiX4LiY4Li04LmM4Lie4Li04LiK4Lix4LiiDQor4Liq4Li44Lin4Lij4Li14Lii4LmMIOC5gOC4peC4tOC4qOC4reC4o+C4tOC4ouC4suC4meC4seC4meC4l+C5jA0KK+C4quC4uOC4p+C4peC4seC4geC4qeC4k+C5jCDguK3guJnguLHguJnguJXguIrguLHguKINCivguKrguLjguKfguKXguLUg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4Liq4Li44Lin4Lix4LiI4LiZ4LmMIOC4quC4h+C4p+C4meC4p+C4h+C4qOC5jA0KK+C4quC4uOC4p+C4seC4iuC4o+C5jCDguKjguLjguKDguIHguLLguI3guIjguJnguYzguYDguJTguIrguLLguIHguLjguKUNCivguKrguLjguKfguLHguJLguJnguLAg4Lif4Li44LmJ4LiH4Lil4Lix4LiU4LiU4LiyDQor4Liq4Li44Lin4Lix4LiS4LiZ4LiyIOC5gOC4nuC5iOC4h+C4nuC4tOC4meC4tOC4iA0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguIHguKfguLXguKfguLjguJLguLTguKjguLTguKXguJvguYwNCivguKrguLjguKfguLHguJLguJnguYwg4LiE4LiH4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Liq4Li04LiH4Lir4LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4iOC4tuC4h+C4m+C4o+C4sOC4oOC4sg0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguYLguIrguITguK3guKfguKLguJ7guKPguIrguLHguKINCivguKrguLjguKfguLHguJLguJnguYwg4LiV4Lix4LiZ4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4meC4sOC5guC4ouC4quC4tOC4mQ0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguYLguJvguKnguKLguLDguJ7guLTguKrguLTguKnguJDguYwNCivguKrguLjguKfguLHguJLguJnguYwg4LmC4Lie4LiY4Li04LmB4Liq4LiHDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4o+C4seC4qOC4oeC4tQ0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguYDguKXguYfguIHguKrguLjguKfguKPguKPguJPguIHguLjguKUNCivguKrguLjguKfguLHguJLguJnguYwg4Lin4Li04Lig4Lix4LiK4LiZ4LiZ4LiX4LmM4LiB4Li04LiIDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4qOC4uOC4oOC4mOC4meC4quC4tOC4meC5gOC4guC4qeC4oQ0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguKrguLjguILguKrguLHguJnguJXguLTguYwNCivguKrguLjguKfguLHguJLguJnguYwg4Lir4Lin4Lix4LiH4Lin4Li04LiK4LiyDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4reC4suC4p+C4o+C4k+C5jA0KK+C4quC4uOC4p+C4seC4leC4oyDguKjguKPguLXguIrguI3guLINCivguKrguLjguKfguLHguJnguJnguLUg4LmC4LiB4LiE4Li54LiTDQor4Liq4Li44Lin4Liy4LiZ4Li14Lii4LmMIOC4iOC4tOC4meC4leC4ouC4seC4h+C4hOC4uOC4kw0KK+C4quC4uOC4p+C4suC4o+C4tSDguKPguLjguYjguIfguKrguLTguKPguLTguIjguKPguLHguKrguJfguK3guIcNCivguKrguLjguKfguLTguIog4LiK4Li54LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Li44Lin4Li04LiKIOC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5guC4ouC4mOC4tOC4mQ0KK+C4quC4uOC4p+C4tOC4iuC4jeC4siDguYDguIHguLTguJTguITguIcNCivguKrguLjguKfguLTguIrguLIg4LmA4LiB4LiV4Li44LmB4LiB4LmJ4LinDQor4Liq4Li44Lin4Li04LiK4Liy4LiZ4LmMIOC4geC4s+C4peC4seC4h+C5gOC4quC4t+C4rQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguIHguK3guIfguIHguLHguJnguKDguLHguKINCivguKrguLjguKfguLTguJfguKLguYwg4LmE4LiB4Lin4Lix4Lil4LmC4LiB4Lio4LilDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4iOC4seC4meC4l+C4o+C4h+C4suC4oQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguIjguLjguJXguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguKfguLTguJfguKLguYwg4LiK4Liy4LiN4LiX4Lin4Li14LiE4Li44LiTDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJXguLHguJnguJvguKPguLDguKfguLHguJXguLQNCivguKrguLjguKfguLTguJfguKLguYwg4LiX4Lit4LiH4Lic4Liy4Liq4Li44LiCDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4meC4pOC5gOC4muC4qOC4o+C5jOC5hOC4geC4o+C4quC4teC4q+C5jA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJrguLjguI3guKPguLHguIHguKnguLINCivguKrguLjguKfguLTguJfguKLguYwg4LmC4Lib4Lip4Lii4Liw4Lie4Li04Liq4Li04Lip4LiQ4LmMDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4nuC4tOC4l+C4seC4geC4qeC5jOC5gOC4peC4tOC4qOC4geC4uOC4pQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguKDguLnguYjguYTguJ7guIjguLTguJXguKPguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4Lij4Lix4LiV4LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4peC4suC4q+C4sOC4geC4uOC4peC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguKfguLHguIrguKPguYDguKrguJbguLXguKLguKMNCivguKrguLjguKfguLTguJfguKLguYwg4LmA4Lin4LiX4Lii4LmM4Lin4Lij4Liy4Lin4Li44LiYDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4qOC4o+C4qeC4kOC4teC4iuC4seC4ouC4iuC4meC4sA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguKrguLTguKHguLDguKrguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4LmA4Liq4Lij4Li14LmC4Lij4LiI4LiZ4LiyDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4reC4oeC4pOC4leC4geC4uOC4pQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYDguK3guIHguKfguLHguJLguJnguYwNCivguKrguLjguKfguLTguJkg4LmA4Lil4Liy4Lir4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lin4Li04Lig4Lij4LiT4LmMIOC5geC4ouC5ieC4oeC4l+C4seC4mg0KK+C4quC4uOC4p+C4tOC4oeC4pSDguIHguYnguK3guIfguIHguLHguIfguKfguLLguKzguYLguIrguIQNCivguKrguLjguKfguLTguKHguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lin4Li04Lih4LilIOC4iuC4tOC4meC4sOC4p+C4o+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4p+C4tOC4oeC4pSDguJTguLTguKXguIHguLLguJnguJnguJfguYwNCivguKrguLjguKfguLTguKHguKUg4LiY4Lij4Lij4Lih4Lih4LmC4LiZ4Lin4Liy4LiZ4Li04LiKDQor4Liq4Li44Lin4Li04Lih4LilIOC4m+C4tOC4leC4tOC5gOC4iOC4o+C4tOC4jeC5guC4iuC4hOC4peC4suC4oA0KK+C4quC4uOC4p+C4tOC4oeC4pSDguKDguKfguKfguKPguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKfguLTguKHguKUg4Lik4LiX4LiY4Li04LmC4LiZ4Lih4Lix4LiiDQor4Liq4Li44Lin4Li04Lih4LilIOC4p+C4tOC4muC4ueC4peC4ouC5jOC5gOC4peC4tOC4qOC4p+C4seC4kuC4meC4sA0KK+C4quC4uOC4p+C4tOC4oeC4pSDguKrguLHguJnguJXguLTguJfguLLguJnguJnguJfguYwNCivguKrguLjguKfguLTguKHguKUg4Lit4LiU4Li44Lil4Lii4LmM4LiQ4Liy4LiZ4Liy4LiZ4Li44Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Li44Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4meC4p+C4quC4uA0KK+C4quC4uOC4p+C4tOC5hOC4pSDguYDguJXguYfguKHguJjguLLguKPguJfguLTguJ7guKLguYwNCivguKrguLjguKfguYLguKPguIog4Lie4Liw4Lil4Lix4LiHDQor4Liq4Li44Lir4Liy4LiNIOC4quC4uOC4meC4l+C4o+C4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4quC4uOC5gOC4iOC4leC4meC5jCDguK3guKDguLHguKLguKfguIfguKjguYwNCivguKrguLjguYDguIrguKnguJDguYwg4LiZ4Li04Lil4Liq4Li44Lin4Lij4Lij4LiT4Liy4LiB4Li44LilDQor4Liq4Li44LmA4LiX4LieIOC4geC4peC4tOC5iOC4meC4luC4t+C4reC4qOC4teC4pQ0KK+C4quC4uOC5gOC4l+C4niDguYHguIHguYnguKfguJnguLTguKHguLTguJXguIrguLHguKINCivguKrguLjguYDguJfguJ4g4LmC4LiE4LmJ4Lin4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LmA4LiX4LieIOC4iOC4teC4meC5gOC4iOC4meC4nuC4iOC4meC5jA0KK+C4quC4uOC5gOC4l+C4niDguIrguLHguKLguKrguIHguLjguKUNCivguKrguLjguYDguJfguJ4g4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Li44LmA4LiX4LieIOC4leC4seC4meC4p+C4tOC4meC4tOC4iA0KK+C4quC4uOC5gOC4l+C4niDguJfguLHguJrguJfguLTguKHguYHguKrguIcNCivguKrguLjguYDguJfguJ4g4LiY4Li44Lin4Liw4LmA4Lio4Lij4Lip4LiQ4LiB4Li44LilDQor4Liq4Li44LmA4LiX4LieIOC4muC4uOC4jeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC5gOC4l+C4niDguJvguLHguYnguJnguJnguLTguYjguKENCivguKrguLjguYDguJfguJ4g4Lie4Lij4Lit4Liz4LiZ4Lin4LiiDQor4Liq4Li44LmA4LiX4LieIOC4nuC4uOC5iOC4oeC4l+C5ieC4p+C4oQ0KK+C4quC4uOC5gOC4l+C4niDguKHguJPguLXguYDguKrguLLguKfguKDguLLguITguKLguYwNCivguKrguLjguYDguJfguJ4g4Lij4Lin4Lii4LiU4Li1DQor4Liq4Li44LmA4LiX4LieIOC4peC4tOC5ieC4oeC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC5gOC4l+C4niDguKfguKPguKLguKgNCivguKrguLjguYDguJfguJ4g4Lio4Lij4Li14LiZ4Li04Lii4LihDQor4Liq4Li44LmA4LiX4LieIOC4quC4oeC4suC4meC4oeC4tOC4leC4ow0KK+C4quC4uOC5gOC4l+C4niDguKrguLjguILguJrguLPguKPguLjguIcNCivguKrguLjguYDguJfguJ4g4Liq4Li44Lin4Li04LiK4Liy4LiK4LiZ4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44LmA4LiX4LieIOC5gOC4q+C4oeC4t+C4reC4meC4lOC4p+C4hw0KK+C4quC4uOC5gOC4l+C4niDguK3guYjguLPguKrguLjguIINCivguKrguLjguYDguJjguLXguKLguKMg4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Liq4Li44LmA4LiZ4LiV4Lij4LiyIOC4iOC4tOC4leC5gOC4muC4jeC4iOC4geC4ueC4pQ0KK+C4quC4uOC5gOC4nuC5h+C4jSDguIjguKPguKPguKLguLLguJnguLjguKDguLLguJ4NCivguKrguLjguYDguJ7guLXguKLguKMg4Lin4LiH4LiE4LmM4Lib4Lix4LiZ4LiH4LmJ4Liy4LinDQor4Liq4Li44LmA4Lih4LiYIOC4geC4suC4h+C5hOC4mOC4quC4hw0KK+C4quC4uOC5gOC4oeC4mCDguIjguLHguJnguJfguKfguIfguKjguYwNCivguKrguLjguYDguKHguJgg4LmE4LiK4Lii4LmB4LiB4LmJ4LinDQor4Liq4Li44LmA4Lih4LiYIOC4l+C4p+C4teC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC5gOC4oeC4mCDguYDguJvguKXguLXguYjguKLguJnguIHguKXguLTguYjguJkNCivguKrguLjguYDguKHguJgg4Lih4LmC4Lir4Liq4LiWDQor4Liq4Li44LmA4Lih4LiYIOC4p+C4h+C4qOC5jOC4quC4uOC4guC4q+C4pOC4l+C4seC4og0KK+C4quC4uOC5gOC4oeC4mCDguKjguLjguKDguJ7guLLguJPguLTguIrguKfguIfguKjguYwNCivguKrguLjguYDguKHguJgg4LmB4Liq4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LmA4Lih4LiYIOC4reC4tOC4quC4o+C4tOC4ouC4reC4s+C5hOC4ng0KK+C4quC4uOC5gOC4oeC4qOC4o+C5jCDguKrguLjguILguLjguKHguKDguLLguJPguLjguYDguKHguKjguKPguYwNCivguKrguLjguYDguKfguJfguKLguYwg4LiH4Li54Lie4Li04Lih4Liy4LiiDQor4Liq4Li44LmC4LiCIOC4m+C4seC4jeC4iOC4p+C4teC4k+C4tOC4mQ0KK+C4quC4uOC5guC4oOC4iuC4meC5jCDguJXguLHguJnguJXguLTguKfguIfguKjguYwNCivguKrguLjguYPguJrguJTguYrguLAg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LmE4Lil4Lih4Liy4LiZIOC4meC4sOC4oeC4tA0KK+C4quC5gOC4geC5h+C4lOC4lOC4suC4pyDguIvguLfguYjguK3guKfguLHguJLguJnguLANCivguKrguYTguJrguJfguLTguJ7guKLguYwg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmMDQor4LmA4Liq4LiB4Liq4Lij4LijIOC4meC4tOC5iOC4oeC4nuC4tOC4iOC4suC4o+C4k+C5jA0KK+C5gOC4quC4geC4quC4o+C4oyDguK3guLjguJfguLTguKjguLLguJnguJnguJfguYwNCivguYDguKrguIHguKrguKPguKPguITguYwg4Lib4LmJ4Lit4LiH4LiB4Lix4LiZ4Lig4Lix4LiiDQor4LmA4Liq4LiB4Liq4Lij4Lij4LiE4LmMIOC4reC4ouC4ueC5iOC5gOC4m+C5h+C4meC4quC4uOC4gg0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguYDguIHguYjguIfguIrguJkNCivguYDguKrguIfguLXguYjguKLguKEg4LmB4LiL4LmI4LiK4Li04LiHDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC4muC4uOC4leC4o+C4iuC4sOC4oeC5ieC4reC4og0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguKHguLXguKrguLHguJnguJDguLLguJkNCivguYDguKrguIfguLXguYjguKLguKEg4Liq4Lih4Lia4Lix4LiV4Li04LiW4Liy4Lin4Lij4Lin4LiH4Lio4LmMDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC5gOC4reC4geC4ieC4seC4leC4ow0KK+C5gOC4quC4luC4teC4ouC4oyDguITguLLguKHguLXguKjguLHguIHguJTguLTguYwNCivguYDguKrguJbguLXguKLguKMg4LiU4Lil4Lia4Lix4LiZ4LiU4Liy4Lil4LmC4LiK4LiEDQor4LmA4Liq4LiW4Li14Lii4LijIOC4muC4seC4p+C4hOC4peC4teC5iA0KK+C5gOC4quC4luC4teC4ouC4oyDguKDguLLguKrguLDguJ7guLHguJnguJjguYwNCivguYDguKrguJbguLXguKLguKMg4Lin4LiH4Lio4LmM4LmA4LiI4Lij4Li04LiN4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LmA4Liq4LiW4Li14Lii4LijIOC4quC5iOC4reC4quC4uOC4q+C4seC4lw0KK+C5gOC4quC4luC4teC4ouC4oyDguYDguKvguKXguLfguK3guIfguK3guKPguYjguLLguKENCivguYDguKrguJnguK0g4LmB4LiI4LmJ4LiH4LiK4Lix4LiU4LmD4LiIDQor4LmA4Liq4LiZ4LitIOC4oeC4ueC4peC4qOC4suC4quC4leC4o+C5jA0KK+C5gOC4quC4meC4suC4sCDguIHguLHguJnguYLguKPguITguLINCivguYDguKrguJnguLLguLAg4LiV4Li44LmI4LiZ4LmE4Lin4Lii4LmMDQor4LmA4Liq4LiZ4Liy4LiwIOC4m+C4o+C4sOC4lOC4seC4muC4peC4suC4og0KK+C5gOC4quC4meC4suC4sCDguKLguLTguYnguKHguYDguIjguKPguLTguI0NCivguYDguKrguJnguLLguLAg4Liq4Lix4LiH4LiC4LmM4LiX4Lit4LiH4LiU4Li1DQor4LmA4Liq4LiZ4Liy4LiwIOC5gOC4reC4oeC4p+C4sOC4lOC4tQ0KK+C5gOC4quC4meC4teC4ouC5jCDguJjguKPguKPguKHguLLguIjguLHguIHguKPguYzguIHguLjguKUNCivguYDguKrguJnguLXguKLguYwg4Lit4LiZ4Li44Liq4Lij4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4hOC4p+C4suC4oeC4lOC4tQ0KK+C5gOC4quC4meC5iOC4q+C5jCDguYDguIrguLXguYjguKLguKfguJjguJnguKfguLHguJLguJnguYwNCivguYDguKrguJnguYjguKvguYwg4LiZ4Liy4Lir4LmJ4Lin4Lii4LiX4Lij4Liy4LiiDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4nuC4seC4meC4mOC5jOC4iOC4teC4mQ0KK+C5gOC4quC4meC5iOC4q+C5jCDguYDguKHguIbguYDguInguKXguLTguKENCivguYDguKrguJnguYjguKvguYwg4Lio4Lij4Li14Lin4Lix4LiS4LiZ4LmMDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC5guC4quC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4quC4oeC4rSDguYDguIHguLXguKLguKPguJXguLTguYTguIHguKMNCivguYDguKrguKHguK0g4Lih4Li04LiV4Lij4Lin4Li04LiI4Liy4Lij4LiT4LmMDQor4LmA4Liq4Lih4Lit4Lie4LijIOC4iuC4uOC4k+C4q+C4iuC4seC4iuC4p+C4suC4pQ0KK+C5gOC4quC4oeC4siDguJjguLTguKPguLLguKHguJnguJXguKPguYwNCivguYDguKrguKHguLfguK3guJkg4LmA4LiK4Li34LmJ4Lit4Lih4Lit4LiNDQor4LmA4Liq4Lij4Li04LihIOC5gOC4geC4qeC4l+C4reC4hw0KK+C5gOC4quC4o+C4tOC4oSDguYDguJnguLXguKLguKHguJnguJ7guYDguJnguJXguKMNCivguYDguKrguKPguLTguKEg4Lih4Li54Lil4LiX4Lit4LiH4Lii4LmJ4Lit4LiiDQor4LmA4Liq4Lij4Li04LihIOC4q+C4o+C4ueC4quC4geC4uOC4pQ0KK+C5gOC4quC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jCDguJrguLjguI3guIrguLkNCivguYDguKrguKPguLTguKHguKjguKPguLUg4LiB4Liy4LiN4LiI4LiZ4Liy4Lig4Lij4LiT4LmM4LiB4Li44LilDQor4LmA4Liq4Lij4Li04Lih4Lio4Lij4Li1IOC4qOC4o+C4teC5geC4geC5ieC4pw0KK+C5gOC4quC4o+C4tOC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguJTguIrguJrguLjguI0NCivguYDguKrguKPguLTguKHguKjguLHguIHguJTguLTguYwg4Lil4Lix4LiE4LiZ4Liy4LiI4Lix4LiZ4LiX4LmC4LiK4LiV4Li0DQor4LmA4Liq4Lij4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4reC4geC4p+C4seC4kuC4meC5jA0KK+C5gOC4quC4o+C4tOC4oeC4quC4uOC4giDguYLguIrguJXguLTguIrguYjguKfguIfguInguLHguJXguKPguIrguLHguKINCivguYDguKrguKPguLTguKHguKrguLjguIIg4Lit4Lii4Li54LmI4Lii4LiH4Liq4Li04LiZDQor4LmA4Liq4Lij4Li1IOC5gOC4geC4teC4ouC4o+C4leC4tOC4muC4o+C4o+C4peC4t+C4rQ0KK+C5gOC4quC4o+C4tSDguYDguIjguLXguKLguKPguYHguKrguIfguJfguK3guIcNCivguYDguKrguKPguLUg4LmA4LiU4LiK4LiB4Lil4LmJ4LiyDQor4LmA4Liq4Lij4Li1IOC4mOC4suC4meC4tQ0KK+C5gOC4quC4o+C4tSDguJvguI/guLTguJvguJfguLLguJnguJnguJfguYwNCivguYDguKrguKPguLUg4Lie4Lix4Lin4Lio4Li04Lij4Li0DQor4LmA4Liq4Lij4Li1IOC4ouC4uOC4p+C4o+C4tQ0KK+C5gOC4quC4o+C4tSDguKfguIfguKjguYzguKDguLHguJfguKPguIrguJkNCivguYDguKrguKPguLUg4Lio4Li04Lij4Li04LiY4LijDQor4LmA4Liq4Lij4Li1IOC4quC4uOC4mOC4suC4iuC4tQ0KK+C5gOC4quC4o+C4tSDguK3guKPguLTguKLguYLguKrguKDguLLguKPguLHguIHguKnguYwNCivguYDguKrguKfguIEg4LiC4Liw4Lih4Lix4LiZ4LiI4LiyDQor4LmA4Liq4Lin4LiBIOC4nuC4seC4meC4mOC5jOC4q+C4meC4reC4og0KK+C5gOC4quC4p+C4gSDguYHguKrguIfguYDguILguLXguKLguKcNCivguYDguKrguKfguKIg4LmA4Lij4Li34Lit4LiH4LmC4LiK4LiV4Li0DQor4LmA4Liq4Lin4Li14Lii4LiHIOC4reC4tOC4qOC4o+C4suC4h+C4geC4ueC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LmA4Liq4Liy4Lij4LmM4LmB4LiB4LmJ4LinIOC5g+C4iOC4geC4p+C5ieC4suC4hw0KK+C5gOC4quC4suC4p+C4hOC4meC4mOC5jCDguKfguLTguKrguLTguK3guJXguLQNCivguYDguKrguLLguKfguJPguLUg4LiE4Lij4Lit4Lia4LiE4Lij4Lit4LiHDQor4LmA4Liq4Liy4Lin4LiT4Li1IOC4oOC4seC4geC4lOC4tQ0KK+C5gOC4quC4suC4p+C4k+C4tSDguYDguK3guLXguYjguKLguKHguKfguIfguKjguYzguJnguLjguIHguLnguKUNCivguYDguKrguLLguKfguJPguLXguKLguYwg4LiK4Li54LmA4LiK4Li04LiUDQor4LmA4Liq4Liy4Lin4LiT4Li14Lii4LmMIOC4nOC4peC4tOC4leC4geC4uOC4qOC4peC4mOC4seC4ig0KK+C5gOC4quC4suC4p+C4k+C4teC4ouC5jCDguKfguLTguIjguLTguJXguKPguJXguKPguLDguIHguLLguKPguKPguLjguYjguIcNCivguYDguKrguLLguKfguJPguLXguKLguYwg4Lit4Lij4Li44LiT4LmB4LiJ4LmI4LiHDQor4LmA4Liq4Liy4Lin4LiZ4Li04LiVIOC5hOC4reC4meC5ieC4s+C4l+C4tOC4nuC4ouC5jA0KK+C5gOC4quC4suC4p+C4meC4tSDguKjguKPguLXguYDguJ7guYfguIrguKPguJTguLLguJnguJnguJfguYwNCivguYDguKrguLLguKfguJnguLXguKLguYwg4LiK4Lix4LmJ4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4Liq4Liy4Lin4LiZ4Li14Lii4LmMIOC4muC4uOC4o+C4tOC4meC4l+C4o+C4suC4oeC4suC4leC4ouC5jA0KK+C5gOC4quC4suC4p+C4meC4teC4ouC5jCDguKXguLXguKLguLLguIHguLLguKgNCivguYDguKrguLLguKfguJnguLXguKLguYwg4LmB4Liq4LiH4LmB4LiB4LmJ4LinDQor4LmA4Liq4Liy4Lin4Lig4LiyIOC4iuC5iOC4p+C4ouC4iuC4ueC4p+C4h+C4qOC5jA0KK+C5gOC4quC4suC4p+C4oOC4siDguKjguKPguLXguKPguLHguJXguJnguYLguJ7guJjguLTguYwNCivguYDguKrguLLguKfguKDguLLguITguKLguYwg4Lit4LiZ4Lix4LiZ4LiV4LmM4LiK4Li34LmI4LiZ4Liq4Li44LiCDQor4LmA4Liq4Liy4Lin4Lij4LiqIOC4qOC4o+C4teC4nuC4meC4oQ0KK+C5gOC4quC4suC4p+C4o+C4teC4ouC5jCDguJXguLDguYLguJ7guJnguJfguK3guIcNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4LiI4Li04Lij4Lie4LiH4Lio4Liy4LiZ4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4kOC4suC4meC4sOC4reC4uOC4lOC4oeC4oeC4h+C4hOC4pQ0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguJnguLLguKPguJbguJrguLjguI0NCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4Lie4Li04LiK4Li04LiV4Lil4Liz4LmA4LiE4LmH4LiNDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4peC4tOC4guC4tOC4leC4p+C4seC4kuC4meC4nuC4ow0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKrguIHguLjguKXguKPguLHguJXguJnguYwNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4Lir4Lil4Li04LmI4Lih4Liq4Liy4LmC4Lij4LiKDQor4LmA4Liq4Liy4Lin4Lil4Li1IOC4leC4tOC4geC4guC4m+C4seC4jeC4jeC4geC4uOC4pQ0KK+C5gOC4quC4teC4ouC4lOC4n+C5ieC4siDguIrguKfguJnguIjguLTguJXguJXguYwNCivguYDguKrguYfguIcg4LiK4Li34LmI4LiZ4Liq4Li44LiCDQor4LmA4Liq4LmI4LiiIOC4o+C4seC4leC4meC4p+C4seC4kuC4meC4suC4mOC4ow0KK+C5geC4quC4hyDguJvguKPguLDguKLguLnguKPguKvguIfguKnguYwNCivguYHguKrguIcg4Liq4Li44Lij4Liw4LmA4Lij4Li34Lit4LiH4LiK4Lix4LiiDQor4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C5geC4quC4h+C4iOC4seC4meC4l+C4o+C5jCDguJzguIHguLLguKHguLLguKgNCivguYHguKrguIfguIjguLHguJnguJfguKPguYwg4Liq4Lix4LiK4LiK4Liw4LmA4LiU4LiKDQor4LmB4Liq4LiH4LiK4Lix4LiiIOC4ieC4seC4leC4o+C4iuC4seC4ouC4quC4uOC4iuC4sg0KK+C5geC4quC4h+C4iuC4seC4oiDguJnguKfguKPguLHguJXguJnguYzguJTguLjguKrguLTguJUNCivguYHguKrguIfguIrguLHguKIg4Lio4Lij4Li14Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lig4Lij4LiT4LmMDQor4LmB4Liq4LiH4LiU4Liy4LinIOC4l+C4reC4h+C5geC4ng0KK+C5geC4quC4h+C4l+C4reC4hyDguJfguLTguJnguJnguLTguIHguKMNCivguYHguKrguIfguJjguKPguKPguKEg4Lif4Li44LmJ4LiH4LmE4Lie4Lio4Liy4Lil4Lie4LiH4Lio4LmMDQor4LmB4Liq4LiH4Lih4LiyIOC5gOC4lOC4iuC4oeC4meC4leC5jA0KK+C5geC4quC4h+C4o+C4seC4leC4meC5jCDguK3guLjguJTguKHguIrguLHguKLguJrguKPguKPguYDguIjguLTguJQNCivguYHguKrguIfguKrguLjguKPguLXguKLguYwg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiT4LiZ4Li04LiY4Li0DQor4LmB4Liq4LiH4Lit4Lij4Li44LiTIOC4muC4uOC4jeC4iuC4uQ0KK+C5geC4quC4h+C4reC5iOC4reC4mSDguITguLPguKXguLfguK0NCivguYHguKrguIfguYDguJTguLfguK3guJkg4LiX4Li04Lie4Lih4LiZ4LiV4LmMDQor4LmB4Liq4LiH4LmA4LiU4Li34Lit4LiZIOC4quC4uOC4p+C4p+C4o+C4o+C4mOC4meC5jA0KK+C5geC4quC4h+C5gOC4nuC5h+C4jSDguKXguLXguJjguJnguKjguLHguIHguJTguLTguYzguKrguIHguLjguKUNCivguYHguKrguJTguIcg4LiV4Lix4LiZ4LiV4Lii4Liy4LiB4LijDQor4LmB4Liq4LiZ4Lie4LilIOC4o+C4seC4qOC4oeC4tQ0KK+C5geC4quC4p+C4hyDguIHguLHguJnguKPguLHguKHguKLguYwNCivguYHguKrguKfguIcg4LiI4Lix4LiZ4LiX4Lij4LmM4Lit4Li44LiU4LihDQor4LmB4Liq4Lin4LiHIOC4lOC4s+C4o+C4seC4quC4oeC4h+C4hOC4peC4quC4tOC4o+C4tA0KK+C5geC4quC4p+C4hyDguJrguLjguI3guIfguK3guIENCivguYHguKrguKfguIcg4Lie4Lil4Liy4LiT4Li04LiK4Lii4LmMDQor4LmB4Liq4Lin4LiHIOC5gOC4ouC5h+C4meC5g+C4iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5geC4quC4p+C4hyDguKjguLTguKPguLTguJvguKPguLDguKDguLLguKnguKHguIfguITguKUNCivguYHguKrguKfguIcg4Lir4Lih4Lix4LiU4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4LmC4Liq4LiU4LiyIOC4o+C4seC4jeC4lOC4ow0KK+C5guC4quC4nuC4pSDguKrguLjguILguYDguIjguKPguLTguI0NCivguYLguKrguJ7guLTguKgg4Lig4Li54Liq4LiZ4Liy4LiE4LihDQor4LmC4Liq4Lig4LiTIOC4geC4ueC5i+C5gOC4iOC4o+C4tOC4jQ0KK+C5guC4quC4oOC4kyDguIjguLHguJnguJfguKPguYzguIHguKXguLTguYjguJkNCivguYLguKrguKDguJMg4LiK4Liy4Lil4Li14Lie4Lij4Lir4LihDQor4LmC4Liq4Lig4LiTIOC5gOC4lOC4iuC5gOC4l+C4p+C4nuC4ow0KK+C5guC4quC4oOC4kyDguJfguLHguJrguJrguKPguKPguIjguIcNCivguYLguKrguKDguJMg4Lia4Li44LiN4LiK4LmI4Lin4LiiDQor4LmC4Liq4Lig4LiTIOC4nuC4h+C4qeC5jOC5gOC4oOC4leC4o+C4suC4o+C4seC4leC4meC5jA0KK+C5guC4quC4oOC4kyDguKDguLjguKHguKPguLLguJ7guLHguJnguJjguLjguYwNCivguYLguKrguKDguJMg4Lij4Lix4LiV4LiZ4LmA4Lil4Li04LioDQor4LmC4Liq4Lig4LiTIOC4p+C5iOC4reC4h+C4p+C4h+C4qOC5jOC4qOC4o+C4tQ0KK+C5guC4quC4oOC4kyDguKjguLTguKfguLTguKXguLHguKINCivguYLguKrguKDguJMg4Liq4Li44LiN4Liy4LiT4LmA4Lio4Lij4Lip4LiQ4LiB4LijDQor4LmC4Liq4Lig4LiTIOC5gOC4q+C4oeC4t+C4reC4meC4quC4oeC4seC4og0KK+C5guC4quC4oOC4k+C4nuC4seC4kuC4meC4suC4oOC4o+C4k+C5jCDguJ7guKPguLDguITguKPguLkNCivguYLguKrguKDguLIg4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Lix4LiH4Lin4Lij4LiT4LmMDQor4LmC4Liq4Lig4LiyIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4guC4iOC4tOC4o+C4sA0KK+C5guC4quC4oOC4siDguYDguJXguLXguKLguKfguJ7guLTguJ7guLHguJLguJnguYwNCivguYLguKrguKDguLIg4Lia4Li44LiN4LmA4Lij4Li34Lit4LiHDQor4LmC4Liq4Lig4LiyIOC5gOC4nuC5h+C4iuC4o+C4hOC4ueC5gOC4p+C4teC4ouC4hw0KK+C5guC4quC4oOC4siDguKXguLTguKHguLLguJnguJnguJfguYzguKfguKPguLLguYTguIrguKINCivguYLguKrguKDguLIg4Liq4Lin4Lix4Liq4LiU4Li04LmM4LiX4Lix4LiV4Li0DQor4LmC4Liq4Lig4LiyIOC5guC4q+C4leC4o+C4sOC4geC4tOC4leC4ouC5jA0KK+C5guC4quC4oOC4suC4nuC4oyDguK3guLLguKvguLTguJnguLHguJnguYLguJcNCivguYLguKrguKDguLLguKgg4LmC4Liq4Lin4Lix4LiS4LiZ4Liy4LiH4LiB4Li54LijDQor4LmC4Liq4Lig4Li04LiU4LiyIOC5geC4l+C5ieC5gOC4l+C4teC5iOC4ouC4h+C4mOC4o+C4o+C4oQ0KK+C5guC4quC4oOC4tOC4lSDguKXguLTguYnguKHguK3guLPguJnguKfguKINCivguYLguKrguKDguLTguKnguJAg4Lic4Lil4LiE4Liz4Liq4Li44LiCDQor4LmC4Liq4Lig4Li1IOC4reC4meC4uOC4iOC4suC4o+C4teC4o+C4seC4leC4meC5jA0KK+C5guC4quC4oeC4nuC4tOC4iuC4jOC4siDguKfguKPguKPguJPguIHguLnguKUNCivguYLguKrguKPguKLguLIg4Lia4Li44LiN4Lii4Lin4Li04LiV4Lij4LmMDQor4LmC4Liq4Lij4Lix4LiV4LiZ4LmMIOC4iOC4reC4hw0KK+C5guC4quC4rOC4qiDguKHguYjguKfguIfguJnguLjguYjguKENCivguYTguKog4Lii4Li04LmJ4Lih4LmA4LiZ4Li14Lii4LihDQor4LmE4Liq4LinIOC5geC4guC4lOC4p+C4hw0KK+C5hOC4quC4pyDguYDguInguYjguIfguJfguK3guIcNCivguYTguKrguKcg4LmC4LiV4Lin4LiH4Lip4LmMDQor4LmE4Liq4LinIOC4muC4uOC4jeC4l+C4tOC4oQ0KK+C5hOC4quC4pyDguJ7guLbguYjguIfguYHguIHguYnguKcNCivguYTguKrguKcg4Lij4Liy4LiK4Lin4LiH4Lio4LmMDQor4LmE4Liq4LinIOC4qOC4o+C4teC5geC4quC4hw0KK+C5hOC4quC4pyDguKrguLjguJTguJvguLLguJkNCivguYTguKrguKcg4Lit4Liz4LmE4Lie4Lie4LijDQor4Lir4LiHIOC4reC4tOC4quC4o+C4sOC4p+C4o+C4p+C4suC4k+C4tOC4ig0KK+C4q+C4h+C4qeC5jCDguYLguIHguKfguLTguJnguJjguJnguLLguJ7guLHguJLguJnguYwNCivguKvguIfguKnguYwg4LmA4Lic4LmI4Liy4LmC4Lig4LiE4Liq4LiW4Li04LiV4Lii4LmMDQor4Lir4LiH4Li04LmI4LiH4Lil4LmJ4Lin4LiHIOC5geC4i+C5iOC5gOC4i+C4teC4ouC4pw0KK+C4q+C4l+C4seC4oiDguYDguJzguLfguK3guIHguKXguLLguJTguJ7guKPguYnguLLguKcNCivguKvguJfguLHguKLguIrguJnguIEg4LmB4Liq4LiH4Lie4Lij4Lih4LiX4Li04Lie4Lii4LmMDQor4Lir4LiX4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4hOC4uOC5iOC4ouC4leC5iOC4p+C4mQ0KK+C4q+C4l+C4seC4ouC4o+C4seC4leC4meC5jCDguJ7guLHguJLguJnguYzguITguLjguYnguKENCivguKvguJfguLHguKLguKPguLjguYjguIcg4LiV4Lix4LmJ4LiH4LiI4Li04LiV4Lie4Li04LiX4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4Lir4LiZ4LizIOC4m+C4tOC4ouC4seC4quC4quC4nuC4seC4meC4mOC4uOC5jA0KK+C4q+C4meC4tuC5iOC4h+C4q+C4l+C4seC4oiDguYDguJnguJXguLTguKXguLHguIHguKnguJPguKfguLTguIjguLLguKPguJPguYwNCivguKvguJnguLkg4Lij4Li44LmI4LiH4LmA4LiI4Lij4Li04LiN4Lij4Lit4LiUDQor4Lir4LiZ4Li54LiZ4LmJ4Lit4LiiIOC4ruC4reC4geC4tOC5ieC4meC4quC5jA0KK+C4q+C4meC4ueC4p+C4o+C4o+C4k+C5jCDguKfguKPguKPguLHguJXguJnguYwNCivguKvguJnguLnguYDguKXguYfguIEg4LmB4Liq4LiH4LiX4Lit4LiHDQor4Lir4Lih4LmI4Lin4LiiIOC4mOC4o+C4o+C4oeC4muC4uOC4leC4ow0KK+C4q+C4oeC4seC4lCDguKvguKHguLHguJTguK7guLLguKPguLjguJMNCivguKvguKHguLjguJQg4Liq4Li44LiC4Lig4Li04LiN4LmC4LiNDQor4Lir4Lih4Li44Lii4LmA4LiV4Li14Lii4LiHIOC5geC4i+C5iOC5guC4reC5iuC4pw0KK+C4q+C4ouC4geC4qOC4tOC4o+C4tCDguJvguKPguLDguIrguLjguKHguYLguIrguJXguLQNCivguKvguKLguKfguIEg4Lil4LmJ4Liz4LmA4Lil4Li04LioDQor4Lir4Lii4Liy4LiU4LiU4Lin4LiHIOC5gOC4p+C4k+C4uOC4iOC4seC4meC4l+C4o+C5jA0KK+C4q+C4ouC4teC5iCDguYDguK3guLXguYjguKLguKHguIHguKXguLTguYjguJkNCivguKvguKPguKPguKnguYzguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4LmM4LiH4Liy4LihDQor4Lir4Lij4Lij4Lip4LiyIOC4oeC4sOC5guC4o+C4q+C4sOC4muC4uOC4leC4o+C5jA0KK+C4q+C4o+C4seC5iOC4hyDguKrguLjguJfguJjguLTguKrguLjguKfguKPguKPguJMNCivguKvguKTguJfguLHguKIg4LmA4LiI4Li14Lii4Lih4LmD4LiI4Liq4Lin4LmI4Liy4LiH4Lik4LiB4Lip4LmMDQor4Lir4Lil4LiHIOC4quC4tOC4h+C4q+C5jOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4q+C4peC5iOC4reC4h+C4h+C5ieC4rSDguYHguIvguYjguYDguIvguLXguKLguKcNCivguKvguKXguLLguJQg4LiZ4Li04Lil4Lio4Li04Lij4Li0DQor4Lir4Lil4Li04LiZIOC4qOC4o+C4teC4p+C4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4q+C4peC4tSDguJvguKXguK3guJTguKDguLHguKINCivguKvguKXguLXguYDguK3guIcg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4Lir4Lin4LilIOC5gOC4l+C4teC4ouC4oeC4reC4seC4oeC4nuC4ow0KK+C4q+C4p+C4seC4hyDguKTguIHguKnguYzguKPguLHguIrguJnguLXguIHguKMNCivguKvguKfguLHguYjguJkg4LiI4Li44Lil4Lih4Li44LiZDQor4Lir4Lin4Liy4LiZ4LmD4LiIIOC4hOC4peC5ieC4suC4ouC4qOC4o+C4tQ0KK+C4q+C4reC4oSDguYDguJfguLXguKLguKHguYDguIjguKPguLTguI0NCivguKvguK3guKHguKvguKfguKUg4Lib4Lix4LiV4LiZ4Li1DQor4Lir4Lix4LiUIOC5guC4hOC4leC4sOC4oeC4sA0KK+C4q+C4seC4l+C4ouC4siDguJ7guLLguJnguLTguIrguIHguLjguKUNCivguKvguLHguKrguJXguIrguLHguKIg4LmB4Liq4LiH4LmA4Liq4Lij4Li04LiQ4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lir4Liy4LiNIOC4i+C4t+C5iOC4reC4leC4o+C4hw0KK+C4q+C4suC4jSDguK3guLHguYvguJnguKfguIfguKjguYwNCivguKvguYjguLLguIfguITguLjguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lir4Li04Lij4Lix4LiNIOC4muC4uOC4meC4meC4suC4hA0KK+C4q+C4tOC4o+C4seC4jeC4jeC4tOC4geC4suC4o+C5jCDguK3guKPguLHguI3guI3guLTguIENCivguKvguLjguYnguKLguYTguJnguYkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4Lir4Lih4Lie4Lij4Lij4LiTIOC4iOC4suC4meC4qOC4tOC4peC4sg0KK+C5gOC4q+C4oeC4t+C4reC4mSDguKrguLXguYDguKvguKXguYfguIENCivguYDguKvguKPguLXguKLguI0g4LiK4Li14Lin4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LmA4Lir4Lij4Li14Lii4LiNIOC4quC4h+C5iOC4suC5gOC4meC4leC4ow0KK+C5gOC4q+C4o+C4teC4ouC4jeC5gOC4h+C4tOC4mSDguJfguLHguKjguJnguKfguLTguKPguLjguKzguKvguYwNCivguYDguKvguKXguLXguYjguKLguKEg4LiZ4Liy4LiZ4Lit4LiBDQor4LmA4Lir4Lil4LmH4LiB4Liu4Li54LmJIOC5geC4i+C5iOC5gOC4peC5h+C4gQ0KK+C5gOC4q+C5h+C4oSDguKXguLPguYDguKvguKXguLfguK0NCivguYHguKvguKXguKHguJfguK3guIcg4Lit4Lig4Li04Lih4Lir4Liy4Lia4Li44LiT4Lii4LmMDQor4LmC4Lir4Lil4LmI4LmA4Lir4Lih4LiiIOC5geC4i+C5iOC5gOC4ieC4tOC4mQ0KK+C5g+C4q+C4oeC5iCDguYHguIvguYjguIvguLTguYnguKENCivguYTguKvguKXguYjguK7guIEg4LmB4LiL4LmI4LiI4Li24LiHDQor4Lit4LiH4LiE4LmM4Lit4LijIOC5gOC4peC4reC4peC4oA0KK+C4reC4h+C4reC4suC4iCDguIjguLbguIfguJvguKPguLDguKDguLINCivguK3guIfguK3guLLguIgg4LmC4LiV4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lit4LiH4Lit4Liy4LiIIOC4nuC4iOC4meC5jOC4l+C4p+C4teC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4reC4h+C4reC4suC4iCDguYLguKPguIjguJnguYzguJXguKPguIfguIjguLTguJXguJXguYwNCivguK3guIfguK3guLLguIgg4Liq4Li44LiI4Li04Lij4LiK4Liy4LmC4LiVDQor4Lit4LiH4Li44LmI4LiZIOC5guC4geC4j+C4tOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4reC4h+C4uOC5iOC4mSDguJ7guKPguKvguKHguKHguLLguKLguJkNCivguK3guIfguLjguYjguJkg4LmC4Lir4LiH4Lin4LmA4LiI4Lij4Li04LiNDQor4Lit4LiT4Li04Lin4Lix4LiS4LiZ4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4oeC4teC4iuC4seC4og0KK+C4reC4lOC4tOC4meC4seC4meC4l+C5jCDguKHguIfguITguKXguKPguLHguJXguJnguYzguJnguLLguIHguKMNCivguK3guJTguLTguKjguKMg4LiK4Liy4LiV4Li04LiB4Liz4LmB4Lir4LiHDQor4Lit4LiU4Li04Lio4LijIOC5gOC4nuC5h+C4iuC4o+C4luC4meC4reC4oQ0KK+C4reC4lOC4tOC4qOC4oyDguKrguLjguKPguLTguKLguKfguKPguKfguIfguKjguYwNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4LiB4Li44Lil4Lio4Li04Lij4Li04Lin4Li44LiS4Li04LiK4Lix4LiiDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5guC4ieC4oeC5geC4geC5ieC4pw0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguYHguJfguYjguIcNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4Lie4Lin4LiH4LmA4Lie4LmH4LiK4Lij4LmMDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5guC4o+C4q+C4tOC4leC4sOC4qOC4uOC4mQ0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguKjguLHguIHguJTguLTguYzguJnguLPguKrguYjguIcNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4Lir4Lil4Liw4LiX4Li04LmJ4LiHDQor4Lit4LiU4Li04Lio4Lix4LiiIOC4mOC4meC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4reC4lOC4tOC4quC4seC4oiDguKfguLTguKHguKXguKrguLHguIjguIjguLLguKPguLHguIHguKnguYwNCivguK3guJTguLTguYDguKPguIEg4Lia4Li44LiN4LmA4Lit4Li14LmI4Lii4LihDQor4Lit4LiU4Li44LilIOC4iOC4seC4meC4l+C4o+C4quC4uOC4o+C4tOC4ouC4qOC4seC4geC4lOC4tOC5jA0KK+C4reC4lOC4uOC4peC4ouC5jOC4qOC4seC4geC4lOC4tOC5jCDguJXguLXguKPguLDguIjguLTguJnguJTguLINCivguK3guJTguLjguKXguKLguYwg4LiI4Liy4Lij4Li44Lij4Lix4LiV4LiZ4LmMDQor4Lit4LiU4Li44Lil4Lii4LmMIOC5gOC4leC4teC4ouC4quC4geC4uOC4pQ0KK+C4reC4lOC4uOC4peC4ouC5jCDguJzguLLguJXguLTguKvguLHguJXguJbguIHguKMNCivguK3guJTguLjguKXguKLguYwg4Lij4Lix4LiV4LiZ4LiX4Lix4Lio4LiZ4Li14Lii4LmMDQor4Lit4LiU4Li44Lil4Lii4LmMIOC4quC4geC4uOC4peC4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4reC4lOC4uOC4peC4ouC5jCDguK3guLTguJnguYDguKrguJnguLUNCivguK3guJXguLTguJnguLjguIog4Lij4Lix4LiH4Liq4Li04Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4LiV4Li04LmA4Lij4LiBIOC4kyDguJbguKXguLLguIcNCivguK3guJjguLTguITguKEg4Lio4Li44Lig4LiU4Li04Lil4LiB4LiK4Lix4LiiDQor4Lit4LiY4Li04Lib4Lix4LiV4Lii4LmMIOC4hOC4peC4teC5iOC4quC4uOC4meC4l+C4ow0KK+C4reC4mOC4tOC4p+C4seC4kuC4meC5jCDguK3guKPguKPguJbguJvguKfguLHguJXguJnguYwNCivguK3guJnguIfguITguYzguJnguLLguI4g4LmA4LiV4LiK4Liw4Lin4Liq4Lix4LiN4LiN4Li5DQor4Lit4LiZ4LiH4LiE4LmM4LiZ4Li44LiKIOC4geC4reC4h+C4iOC4tOC4meC4lOC4sg0KK+C4reC4meC4h+C4hOC5jOC4peC4seC4geC4qeC4k+C5jCDguKHguLLguKXguLLguIHguK3guIcNCivguK3guJnguIfguITguYwg4LmB4LiB4LmJ4Lin4LiB4Li04LiV4LiV4Li04LiE4Li44LiTDQor4Lit4LiZ4LiH4LiE4LmMIOC4iOC4seC4meC4l+C4o+C4qOC4uOC4oOC5geC4quC4hw0KK+C4reC4meC4h+C4hOC5jCDguIrguLLguJXguJrguLjguJXguKMNCivguK3guJnguIfguITguYwg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Lit4LiZ4LiH4LiE4LmMIOC4l+C4p+C4teC4quC4uOC4gg0KK+C4reC4meC4h+C4hOC5jCDguJnguLLguKHguKjguKPguLXguITguLjguJMNCivguK3guJnguIfguITguYwg4Lib4Lij4Liw4Lie4Lix4LiV4Lij4LmM4LiB4Li44LilDQor4Lit4LiZ4LiH4LiE4LmMIOC4nuC4seC4peC4peC4oOC4o+C4seC4geC4qeC4sg0KK+C4reC4meC4h+C4hOC5jCDguKDguLnguYjguYDguIjguKPguLTguI0NCivguK3guJnguIfguITguYwg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lit4LiZ4LiH4LiE4LmMIOC4p+C4tOC5gOC4p+C5guC4gQ0KK+C4reC4meC4h+C4hOC5jCDguKrguKHguLLguJnguKrguLTguJkNCivguK3guJnguIfguITguYwg4Liq4Li44Lig4Liy4Lie4Lie4Lij4LmJ4Lit4LihDQor4Lit4LiZ4LiH4LiE4LmMIOC4reC5iOC4p+C4oeC4quC4uOC4gg0KK+C4reC4meC4h+C4peC4seC4geC4qeC4k+C5jCDguYLguKPguIjguJnguJrguLjguKPguLLguJnguJnguJfguYwNCivguK3guJnguKfguLHguIog4LiQ4Li04LiV4Li04Lig4Liy4LiB4LijDQor4Lit4LiZ4Lix4LiN4LiN4LiyIOC4p+C4teC4o+C4sOC4kOC4suC4meC4sA0KK+C4reC4meC4seC4meC4leC5jOC4iuC4seC4oiDguILguLHguJnguYLguJcNCivguK3guJnguLHguJnguJXguYzguKjguLHguIHguJTguLTguYwg4LmA4Lie4Li14Lii4Lij4LiI4Li04LiV4LmA4Lil4Li04Lio4LiC4LiI4LijDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4geC4s+C4m+C4seC5iOC4meC4l+C4reC4hw0KK+C4reC4meC4seC4meC4leC5jCDguILguKLguLHguJkNCivguK3guJnguLHguJnguJXguYwg4LiH4Liy4Lih4Lii4Li04LmI4LiH4Liq4LiH4LmI4LiyDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4iOC4tOC4leC4leC5jOC4o+C4seC4geC5hOC4l+C4og0KK+C4reC4meC4seC4meC4leC5jCDguYHguIjguYnguIfguIHguKXguLXguJoNCivguK3guJnguLHguJnguJXguYwg4LiK4Li44LmI4Lih4LiB4Lij4Liy4LiZ4LiV4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC5geC4i+C5iOC5gOC4q+C4teC4og0KK+C4reC4meC4seC4meC4leC5jCDguJXguKPguLXguJ7guIjguJnguLXguKLguYwNCivguK3guJnguLHguJnguJXguYwg4LmE4LiV4Lij4Liq4Liy4Lij4Lio4Lij4Li1DQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4mOC4meC4sOC4qOC4tOC4o+C4tOC4meC4suC4p+C4tOC4mQ0KK+C4reC4meC4seC4meC4leC5jCDguJnguLTguJXguLTguYDguIjguKPguLTguI3guJ7guIfguKjguYwNCivguK3guJnguLHguJnguJXguYwg4Lia4Li44LiN4Lio4Lij4Li14Liq4Li44LiCDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4m+C4peC4t+C5ieC4oeC4oeC4k+C4tQ0KK+C4reC4meC4seC4meC4leC5jCDguJ7guIfguKnguYzguKrguKHguJrguLHguJXguLQNCivguK3guJnguLHguJnguJXguYwg4Lie4Li24LmI4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4oOC4ueC5iOC4qOC4o+C4teC4p+C4o+C4suC4p+C4h+C4qOC5jOC4geC4ueC4pQ0KK+C4reC4meC4seC4meC4leC5jCDguYDguKHguIbguKXguK3guKINCivguK3guJnguLHguJnguJXguYwg4Lij4Lix4LiK4LmA4Lin4LiX4Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4peC4tOC5ieC4meC4iOC4teC5iA0KK+C4reC4meC4seC4meC4leC5jCDguKfguIfguKjguYzguKrguIHguLjguKUNCivguK3guJnguLHguJnguJXguYwg4Lin4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4qOC4o+C4teC5gOC4nuC4teC4ouC4ow0KK+C4reC4meC4seC4meC4leC5jCDguKrguKfguLHguKrguJTguLTguYzguJ7guLLguJPguLTguIrguKLguYwNCivguK3guJnguLHguJnguJXguYwg4Liq4Li44LiC4LiZ4LmJ4Lit4LiiDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4quC4ueC4iOC4tOC4huC4o+C4sA0KK+C4reC4meC4seC4meC4leC5jCDguYDguKvguKHguLfguK3guJnguYHguKHguYnguJkNCivguK3guJnguLHguJnguJXguYwg4Lit4Lix4Lio4Lin4LiB4Li44LilDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC5gOC4reC4geC4meC4tOC4ouC4oQ0KK+C4reC4meC4seC4qiDguKjguLTguKXguKrguKHguJrguLnguKPguJPguYwNCivguK3guJnguLTguKPguLjguJfguJjguYwg4LiE4LiH4LmA4Lib4Lij4LihDQor4Lit4LiZ4Li04Lip4LiO4LiyIOC4qOC4o+C4teC4quC4seC4meC4leC4tOC5geC4quC4hw0KK+C4reC4meC4uCDguKfguLHguJLguJjguLHguI3guI3guIHguKPguKPguKENCivguK3guJnguLjguIHguLnguKUg4LiK4Liy4LiV4Li04Lit4Li44LiU4Lih4LmA4LiU4LiKDQor4Lit4LiZ4Li44LiB4Li54LilIOC4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4reC4meC4uOC4iuC4o+C4seC4geC4qeC5jCDguKHguKvguLLguK3guLHguKHguJ7guKPguJ7guKTguIHguKnguYwNCivguK3guJnguLjguIrguLIg4LiI4Liy4Lij4Li44Lir4Li04Lij4Lix4LiN4Liq4LiB4Li44LilDQor4Lit4LiZ4Li44LiK4LiyIOC4mOC4s+C4o+C4h+C4o+C4seC4leC4meC5jA0KK+C4reC4meC4uOC4iuC4siDguKHguLjguIHguJTguLLguKrguJnguLTguJcNCivguK3guJnguLjguIrguLIg4Liq4Li04Lij4Li04Liq4Li04LiZ4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lit4LiZ4Li44LiK4Liy4LiV4Li0IOC4hOC4iuC4qOC4tOC4peC4sg0KK+C4reC4meC4uOC4iuC4tOC4lSDguIHguLLguKPguJnguK3guIENCivguK3guJnguLjguIrguLTguJUg4LiX4Lit4LiH4Lit4Lix4LmJ4LiZDQor4Lit4LiZ4Li44LiK4Li04LiVIOC5gOC4o+C5iOC4h+C4nuC4uOC4kuC4tOC4nuC4h+C4qeC5jA0KK+C4reC4meC4uOC4iuC4tOC4lSDguK3guLTguJnguJjguLTguKPguLHguIHguKnguYwNCivguK3guJnguLjguJjguLTguJTguLIg4LmB4Lie4Lil4LiH4LiB4Lij4Liw4LmC4LiX4LiBDQor4Lit4LiZ4Li44Lie4LiH4Lip4LmMIOC4iOC4seC4h+C4meC4oOC4suC4nuC4ow0KK+C4reC4meC4uOC4nuC4meC4mOC5jCDguKLguKjguKDguKPguJPguYwNCivguK3guJnguLjguJ7guLHguJnguJjguYwg4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMIOC4hOC4seC4meC4mOC4o+C4seC4geC4qeC5jA0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jCDguJnguLLguJTguKrguLLguKMNCivguK3guJnguLjguKPguLHguIHguKnguYwg4Lil4Li14Lil4Liy4Lib4Li04Lii4Lih4Li04LiV4LijDQor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMIOC5gOC4reC4t+C5ieC4reC4h+C4reC4uOC4lOC4oQ0KK+C4reC4meC4uOC4o+C4seC4leC4meC5jCDguKvguKHguLHguJTguKrguLDguYHguKXguLANCivguK3guJnguLjguKfguKPguKPguJXguJnguYwg4LiB4Lil4LmA4LiL4LmH4Lih4Lih4Li54LiL4LitDQor4Lit4LiZ4Li44Lin4Lix4LiS4LiZ4LmMIOC4meC4suC4hOC4qOC4o+C4teC4quC4uOC4gg0KK+C4reC4meC4uOC4p+C4seC4kuC4meC5jCDguKrguJbguLTguKPguKfguLTguIHguKPguLLguJnguJXguYwNCivguK3guJnguLjguKfguLHguJXguJnguYwg4Lit4Lix4LiH4Lio4Li44Lig4Liy4LiB4LijDQor4Lit4LiZ4Li44Lin4Lix4LiV4LijIOC4reC4suC4iOC4p+C4suC4l+C4tOC4mQ0KK+C4reC4meC4uOC4qOC4seC4geC4lOC4tOC5jCDguIjguIfguIjguLLguKHguKPguLXguKrguLXguJfguK3guIcNCivguK3guJnguLjguKjguLHguIHguJTguLTguYwg4Lih4Li14Liq4Lih4Lin4Li04LiX4Lii4LmMDQor4Lit4LiZ4Li44Lio4Li04Lip4LiO4LmMIOC5gOC4l+C4nuC4quC4tOC4meC4mOC4nuC4quC4geC4uOC4pQ0KK+C4reC4meC4uOC4quC4o+C4k+C5jCDguITguLTguKfguYDguIHguKnguKHguKrguKfguLHguKrguJTguLTguYwNCivguK3guJnguLjguKrguKPguJPguYwg4LiW4LmJ4Liz4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4LiZ4Li44Liq4Lij4LiT4LmMIOC4nuC4h+C4qeC5jOC5guC4iuC4leC4tA0KK+C4reC4meC4uOC4quC4o+C4k+C5jCDguKXguLTguKHguJvguLTguKfguLHguJLguJnguYwNCivguK3guJnguLjguKrguKPguJPguYwg4Liq4Li44LiZ4LiX4Lij4LiyDQor4Lit4LiZ4Li44Liq4Lij4LiyIOC4quC4uOC4guC4iuC4suC4leC4tA0KK+C4reC4meC4uOC5gOC4l+C4niDguJrguLjguI3guYDguJvguLXguYjguKLguKHguKjguLHguIHguJTguLTguYwNCivguK3guJrguKHguLLguKXguLUg4Lig4Li04LiN4LmC4LiN4Lin4Liy4LiZ4Li04LiK4LiB4LiwDQor4Lit4Lig4Lix4LiiIOC4mOC4o+C4pOC4l+C4mOC4tOC5jA0KK+C4reC4oOC4tOC4iuC4jeC4siDguJnguJ7guKHguLLguKgNCivguK3guKDguLTguIrguLHguKIg4LiI4Li04Lij4Lix4LiQ4LiV4Li04Lii4Liy4LiH4LiB4Li54LijDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4l+C4o+C4h+C4qOC4tOC4peC4m+C5jA0KK+C4reC4oOC4tOC4iuC4seC4oiDguKHguKvguLLguKPguLjguYjguIfguYDguKPguLfguK3guIfguKPguLHguJXguJnguYwNCivguK3guKDguLTguIrguLHguKIg4Lio4Lij4Li14LmE4LiK4Lii4Lii4Lix4LiZ4LiV4LmMDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4reC4seC4qOC4p+C5guC4o+C4iOC4meC5jOC4nuC4suC4meC4tOC4ig0KK+C4reC4oOC4tOC4iuC4suC4lSDguYHguJ7guKPguKrguLXguYDguIjguKPguLTguI0NCivguK3guKDguLTguIrguLLguJXguLQg4LiB4Li14Lij4LiV4Li04Lit4Liy4Lig4Liy4LiB4Li44LilDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4iOC4seC4meC4l+C5guC4o+C4muC4pQ0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguYDguIrguLTguJTguIrguLHguKLguKDguLnguKHguLQNCivguK3guKDguLTguIrguLLguJXguLQg4LiV4Lix4LmJ4LiH4LiE4Liy4Lij4Lin4LiE4Li44LiTDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4mOC4teC4o+C4quC4uOC4meC4l+C4o+C4p+C4seC4kuC4meC5jA0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguYLguJvguKPguJPguLLguJnguLHguJnguJfguYwNCivguK3guKDguLTguIrguLLguJXguLQg4Lih4LiT4Li14LmC4Lij4LiI4LiZ4LmM4LiJ4Liy4LiiDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC5gOC4peC4tOC4qOC4m+C4tOC4ouC4sOC4meC4seC4meC4l+C4geC4ueC4ow0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguKjguLTguKPguLTguKHguLLguJXguKLguYwNCivguK3guKDguLTguIrguLLguJXguLQg4Liq4Li44Lin4Lij4Lij4LiT4LiB4Li44LilDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4reC4seC4qOC4p+C4nuC4tOC4iuC4jeC5jOC5guC4iuC4leC4tA0KK+C4reC4oOC4tOC4iuC4tOC4lSDguKTguJfguJjguLTguJrguLnguKPguJPguYwNCivguK3guKDguLTguI3guI3guLIg4LiJ4Lix4LiV4Lij4LmC4Lit4Lis4Liy4Lij4LiB4Li44LilDQor4Lit4Lig4Li04LiN4LiN4LiyIOC4muC4uOC4jeC4iOC4s+C4o+C4seC4qg0KK+C4reC4oOC4tOC4jeC4jeC4siDguYDguKXguLTguKjguKfguLHguJLguJnguJnguJnguJfguYwNCivguK3guKDguLTguI3guI3guLIg4Lit4Lii4Li54LmI4LiE4LizDQor4Lit4Lig4Li04LiZ4LieIOC5gOC4geC4tOC4lOC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4reC4oOC4tOC4meC4seC4meC4l+C5jCDguJMg4LiZ4LiE4LijDQor4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmMIOC4o+C4seC4geC4leC4m+C4o+C4sOC4iOC4tOC4lQ0KK+C4reC4oOC4tOC4muC4suC4pSDguKfguKPguKPguLHguIfguKrguKTguKnguI/guLTguYwNCivguK3guKDguLTguKLguLjguJXguJXguYwg4Lio4Li04Lij4Li04LiB4Li44LilDQor4Lit4Lig4Li04Lij4LiU4Li1IOC5guC4nuC4mOC4tOC4ouC4seC4meC4leC5jA0KK+C4reC4oOC4tOC4o+C4oeC4ouC5jCDguJTguLTguKnguJDguLUNCivguK3guKDguLTguKPguLHguIHguKnguYwg4LiK4Li14Lin4LmA4Liq4LiW4Li14Lii4Lij4Lie4LijDQor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMIOC4qOC4tOC4o+C4tOC4l+C4o+C4seC4nuC4ouC4suC4geC4ow0KK+C4reC4oOC4tOC4o+C4seC4kCDguK3guLTguJfguJjguLTguKfguLTguIHguLjguKUNCivguK3guKDguLTguKPguLHguJXguJnguYwg4Liq4Li44LiC4Lio4Lij4Li1DQor4Lit4Lig4Li04Lin4Lij4Lij4LiTIOC4quC4p+C4seC4quC4lOC4tQ0KK+C4reC4oOC4tOC4p+C4seC4kuC4meC5jCDguJrguLjguKPguLXguKrguLTguKPguLTguKPguLHguJXguJnguYwNCivguK3guKDguLTguKfguLHguJXguJnguYwg4Lie4Li04LiT4LiX4Lit4LiHDQor4Lit4Lig4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4i+C4tOC5ieC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4oOC4tOC4qOC4seC4geC4lOC4tOC5jCDguKrguKPguKfguLTguKrguLnguJXguKMNCivguK3guKDguLTguKrguLTguJfguJjguLTguYwg4LiI4Lix4LiZ4LiX4Lij4Lin4LiH4Lio4LmMDQor4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMIOC4nuC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jCDguKrguLLguKLguLDguKfguLTguJrguLnguKXguKLguYwNCivguK3guKDguLTguYDguIrguKnguJDguYwg4LiK4LmI4Lit4LiH4LiU4Liy4Lij4Liy4LiB4Li44LilDQor4Lit4Lig4Li04LmC4Lij4LiI4LiZ4LmMIOC4m+C4tOC5iOC4meC5gOC4quC4luC4teC4ouC4o+C5gOC4geC4qg0KK+C4reC4oeC4oyDguIjguLDguYDguIrguLfguK3guJnguKPguLHguKHguKLguYwNCivguK3guKHguKMg4LiU4Li04LmA4Lij4LiB4Lia4Li44Lip4Lij4Liy4LiE4Lix4LihDQor4Lit4Lih4LijIOC4muC4suC4h+C5gOC4iOC4o+C4tOC4jeC4nuC4o+C4nuC4h+C4qOC5jA0KK+C4reC4oeC4oyDguJ7guLTguKrguLjguJfguJjguLTguKPguLHguJXguJnguJ7guLHguJnguJjguLjguYwNCivguK3guKHguKMg4LmA4Lij4Li34Lit4LiH4Lih4Liy4LiZ4Liw4Lih4LiH4LiE4LilDQor4Lit4Lih4LijIOC4qOC4tOC4o+C4tOC4reC4suC4iuC4suC4p+C4seC4kuC4meC4sg0KK+C4reC4oeC4oyDguKvguKHguLHguJTguILguLLguKcNCivguK3guKHguKMg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Liz4Lit4Liy4LiH4LiE4LmMDQor4Lit4Lih4Lij4Lie4Lij4Lij4LiTIOC4muC4uOC4o+C4teC4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguIHguLLguI3guIjguJnguKfguLTguIjguLTguJXguKPguYDguKXguLTguKgNCivguK3guKHguKPguKPguLHguJXguJnguYwg4LiI4Li44LiR4Liy4Lih4Liy4LiK4Liy4LiV4Li0DQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4lOC4uOC4quC4tOC4lQ0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguJnguLTguKLguKHguKPguLLguKnguI7guKPguYwNCivguK3guKHguKPguKPguLHguJXguJnguYwg4Lie4Li54LiZ4LiV4Lij4Liw4LiB4Li54Lil4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jOC4quC4geC4uOC4pQ0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguKfguLTguJnguLTguIjguInguLLguKLguLDguIjguLTguJnguJTguLINCivguK3guKHguKPguKPguLHguJXguJnguYwg4Liq4Li14LmA4LiH4LmJ4LitDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4reC4seC4h+C4quC4uOC4l+C4mOC4tA0KK+C4reC4oeC4o+C4p+C4tOC4l+C4ouC5jCDguYDguK3guIHguYHguKrguIfguKjguKPguLUNCivguK3guKHguKPguKjguLHguIHguJTguLTguYwg4Lin4LiH4Lio4LmM4Lie4Lix4LiS4LiZ4Liy4Liq4Li04LiZDQor4Lit4Lih4Lij4LiyIOC4hOC4uOC5ieC4oeC5geC4geC5ieC4pw0KK+C4reC4oeC4o+C4siDguJnguLTguYjguKHguKPguLLguKjguKPguLUNCivguK3guKHguKPguLIg4Lij4Lix4LiV4LiV4Liy4LiB4LijDQor4Lit4Lih4Lij4LiyIOC4q+C4h+C4qeC5jOC4nuC4o+C5ieC4reC4oeC4jeC4suC4leC4tA0KK+C4reC4oeC4o+C4suC4p+C4lOC4tSDguK3guLHguIfguITguKrguLjguKfguKPguKPguJMNCivguK3guKHguKPguYDguJfguJ4g4Lie4LmI4Lin4LiH4LmC4LiB4Lio4LilDQor4Lit4Lih4Lix4LiZ4Lii4Li04LiVIOC4i+C4tOC4h+C4q+C5jA0KK+C4reC4ouC4uOC4mCDguJnguLHguJnguJfguLLguKDguLTguKfguLHguJjguJnguYwNCivguK3guKMg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lit4Lij4LiJ4Lix4LiQIOC4iuC5iOC4suC4h+C4l+C4sw0KK+C4reC4o+C4iuC4oyDguYLguJ7guJjguLTguKrguLjguIINCivguK3guKPguIrguLjguJTguLIg4Lie4Lij4Lih4Lia4Li44LiV4LijDQor4Lit4Lij4LiT4Li1IOC4geC4tOC4leC4tOC4reC4suC4oOC4sg0KK+C4reC4o+C4k+C4tSDguKvguKXguK3guJTguYDguIfguLTguJkNCivguK3guKPguJfguLHguKIg4LiB4Lik4Lip4LiT4Lii4Lij4Lij4Lii4LiHDQor4Lit4Lij4LiX4Lix4LiiIOC4iOC4teC4o+C4p+C4o+C4o+C4k+C4p+C4h+C4qOC5jA0KK+C4reC4o+C4l+C4seC4oiDguJTguLjguKnguI/guLXguJfguKfguLXguJ7guLHguJnguJjguLjguYwNCivguK3guKPguJfguLHguKIg4Lia4Li44LiN4LiJ4Li04LihDQor4Lit4Lij4LiX4Lix4LiiIOC4oOC4seC4geC4lOC4teC4p+C4tOC4iOC4tOC4leC4ow0KK+C4reC4o+C4l+C4seC4oiDguYDguKXguLTguKjguJvguKPguLDguKrguJ7guKrguLjguIINCivguK3guKPguJfguLHguKIg4Liq4Lii4Li44Lih4Lie4LijDQor4Lit4Lij4LiX4Lix4LiiIOC4reC4meC4uOC4nuC4seC4meC4mOC5jOC4p+C4teC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4reC4o+C4mOC4tOC4lOC4siDguJrguLjguI3guKrguKENCivguK3guKPguJnguLjguIog4LiB4LmJ4Lit4LiH4Liq4Li04LiZ4LiY4Li4DQor4Lit4Lij4LiZ4Li44LiKIOC4iuC4meC4sOC4nuC4seC4meC4mOC5jA0KK+C4reC4o+C4meC4uOC4iiDguJbguJnguLHguJTguIHguLTguIgNCivguK3guKPguJnguLjguIog4Lie4Liy4LiT4Li04LiK4Lii4LmM4LiI4Li04LiZ4LiU4LiyDQor4Lit4Lij4LiZ4Li44LiKIOC4p+C4o+C4o+C4k+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4reC4o+C4meC4uOC4iiDguKvguLHguIfguKrguLDguYTguKfguKjguKLguLANCivguK3guKPguJ7guKMg4Lia4Lix4Lin4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lit4Lij4Lie4Lij4Lij4LiTIOC4ieC4seC4meC4p+C4tOC5hOC4peC4geC4tOC4iA0KK+C4reC4o+C4nuC4o+C4o+C4kyDguJvguI/guLTguJ7guLHguJfguJjguYzguJvguLHguI3guI3guLLguIHguLjguKUNCivguK3guKPguJ7guKPguKPguJMg4Lin4Li04LmA4Lio4Lip4Lih4LiH4LiE4Lil4LiK4Lix4LiiDQor4Lit4Lij4Lie4Lij4Lij4LiTIOC4reC4tOC4meC4l+C4o+C4quC4uOC4o+C4tOC4ouC5gOC4lOC4ig0KK+C4reC4o+C4nuC4tOC4kyDguYDguIHguJXguLjguJvguLHguI3guI3guLINCivguK3guKPguJ7guLTguJkg4LiI4Lix4LiZ4LiX4Lij4Liq4Li44LiCDQor4Lit4Lij4Lie4Li04LiZIOC4leC4seC4meC4leC4tOC4p+C4tOC4o+C4uOC4rOC4q+C5jA0KK+C4reC4o+C4nuC4tOC4mSDguJ7guKPguJvguKPguLDguIHguLLguKrguLTguJUNCivguK3guKPguJ7guLTguJkg4Lin4LmI4Lit4LiH4Lin4Li04LiK4LiK4Li44LmA4Lin4LiX4Lii4LmMDQor4Lit4Lij4Lie4Li04LiZIOC4reC4meC4seC4meC4leC4o+C4geC4tOC4leC4leC4tA0KK+C4reC4o+C4nuC4tOC4meC4l+C4o+C5jCDguK3guKDguLTguJnguLHguJnguJfguYzguIjguLLguKPguLjguJ7guIfguKjguYwNCivguK3guKPguJ7guLTguJnguJfguYwg4LmB4LiL4LmI4LmA4LiI4Li14LmI4LiiDQor4Lit4Lij4Lie4Li04LiZ4LiX4LmMIOC4nuC4h+C4qOC5jOC4p+C4o+C4suC4oeC4tOC4leC4o+C4iuC4seC4og0KK+C4reC4o+C4nuC4tOC4meC4l+C5jCDguKfguIfguKjguYzguKfguLTguKrguLjguJfguJjguLTguKPguLHguJXguJnguYwNCivguK3guKPguJ7guLTguJnguJfguYwg4Lit4LiZ4Lix4LiZ4LiV4Lia4Li44LiV4LijDQor4Lit4Lij4Lie4Li04LiZ4LiY4LmMIOC4mOC4tOC4lOC4suC4o+C4seC4leC4meC5jOC4quC4geC4uOC4pQ0KK+C4reC4o+C4oeC4k+C4tSDguKDguLLguJPguLjguJ7guLHguJnguJjguYwNCivguK3guKPguKPguITguYDguJTguIog4LmA4Lil4Li34LmI4Lit4Lih4LmB4Liq4LiHDQor4Lit4Lij4Lij4LiT4LieIOC5gOC4hOC4teC4ouC4h+C4qOC4tOC4o+C4tA0KK+C4reC4o+C4o+C4k+C4niDguJrguLjguI3guJ7guLTguKPguLjguJPguKPguLHguIHguKnguLINCivguK3guKPguKPguJPguJ4g4Lin4Li04LiI4Li04LiV4Lij4LiV4Lij4Liw4LiB4Liy4Lij4LiB4Li44LilDQor4Lit4Lij4Lij4LiT4LieIOC4reC4tuC5ieC4h+C4p+C4tOC4keC4ueC4o+C4quC4luC4tOC4leC4ouC5jA0KK+C4reC4o+C4o+C4luC4geC4oeC4peC4ouC4muC4uOC4leC4ouC4suC4meC4p+C4seC4leC4oyDguKvguKXguKfguIcNCivguK3guKPguKPguJbguIrguLHguKIg4Lik4LiB4Lip4Lia4Li44LiV4LijDQor4Lit4Lij4Lij4LiW4Lie4LijIOC5guC4iuC4hOC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4reC4o+C4o+C4luC4nuC4pSDguIHguKTguKnguJTguLLguJjguLTguIHguLLguKMNCivguK3guKPguKPguJbguJ7guKUg4Lii4Li04LiZ4Lia4Lix4LinDQor4Lit4Lij4Lij4LiW4Lie4LilIOC5gOC4ruC4h+C4muC4uOC4k+C4ouC4nuC4seC4meC4mOC5jA0KK+C4reC4o+C4o+C4luC4p+C4uOC4kuC4tCDguKPguLHguJXguJnguLLguJnguLHguJnguJfguYwNCivguK3guKPguKPguJbguK3guLjguJTguKEg4Lie4Lil4Liy4Lio4Lij4Lix4LiiDQor4Lit4Lij4Lil4Lix4LiB4Lip4LiT4LmMIOC4m+C4tOC5iOC4meC4meC4tOC4geC4ow0KK+C4reC4o+C4p+C4o+C4o+C4kyDguYHguIHguYjguJnguJfguK3guIcNCivguK3guKPguKfguKPguKPguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiX4Li14LmI4Lii4LiHDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4iuC4juC4suC4iuC4seC4ouC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4reC4o+C4p+C4o+C4o+C4kyDguYHguIvguYjguYDguIjguYjguLINCivguK3guKPguKfguKPguKPguJMg4LmA4LiV4LmH4Lih4Liq4Li44Lin4Lij4Lij4LiT4Lie4Liy4LiZ4Li04LiKDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4mOC4teC4o+C4sOC4p+C4tOC4l+C4ouC5gOC4peC4tOC4qA0KK+C4reC4o+C4p+C4o+C4o+C4kyDguJvguJDguKHguKfguLLguJPguLTguIrguKLguYwNCivguK3guKPguKfguKPguKPguJMg4Lie4LiH4Lip4LmM4Lin4LijDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4oOC4p+C4nuC4h+C4qOC5jOC4quC4uOC4oOC4seC4l+C4ow0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKPguK3guJTguJ7guLHguJnguJjguYwNCivguK3guKPguKfguKPguKPguJMg4LmA4Lil4Li04Lio4Liq4Liy4LiY4Li04LiVDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4p+C4tOC4l+C4ouC4suC5gOC4p+C4ig0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKjguLTguKPguLTguKrguLjguILguKrguKHguJrguLnguKPguJPguYwNCivguK3guKPguKfguKPguKPguJMg4Liq4Li04LiZ4Lil4Lit4Lii4Lih4LiyDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC5geC4quC4h+C4o+C4seC4leC4meC4iuC4seC4ouC4geC4uOC4pQ0KK+C4reC4o+C4p+C4o+C4o+C4kyDguK3guKPguLjguJPguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguK3guKPguKfguKPguKPguJPguYwg4Lih4Li44LmI4LiH4Lir4LiZ4LmJ4Liy4LiX4Li14LmIDQor4Lit4Lij4Lio4Lij4Li1IOC4meC4tOC4ouC4oeC4p+C4seC4mQ0KK+C4reC4o+C4qeC4siDguJfguKPguIfguKrguKHguKPguKPguJbguKDguLLguJ4NCivguK3guKPguKrguLIg4LiC4Lix4LiV4LiV4Li04Lii4Lie4Lij4Lie4LiH4Lio4LmMDQor4Lit4Lij4Liq4LiyIOC4leC4seC4meC5hOC4nuC4iOC4tOC4leC4ow0KK+C4reC4o+C4quC4siDguJ7guKXguK3guKLguJ7guLLguJnguLTguIrguYDguIjguKPguLTguI0NCivguK3guKPguKrguLIg4Lin4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Lit4Lij4Liq4LiyIOC4q+C4h+C4qeC5jOC4l+C4reC4hw0KK+C4reC4o+C4reC4k+C4tSDguYDguKfguIrguJ7guIfguKjguLINCivguK3guKPguK3guJnguIfguITguYwg4LiV4Lix4LmJ4LiH4Liq4Lin4Lix4Liq4LiU4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lij4Lit4LiZ4LiH4LiE4LmMIOC5gOC4nuC4o+C4tOC4lOC4nuC4o+C4tOC5ieC4hw0KK+C4reC4o+C4reC4meC4h+C4hOC5jCDguKjguKPguLXguKHguLnguKUNCivguK3guKPguK3guJnguIfguITguYwg4LmA4Lit4Li14LmI4Lii4Lih4Lik4LiB4Lip4LmM4LiK4Lix4LiiDQor4Lit4Lij4Lit4Li44Lih4LiyIOC4meC4seC4meC4l+C4uOC4o+C4seC4leC4meC5jA0KK+C4reC4o+C4reC4uOC4qeC4siDguK3guLLguKnguLLguJnguK3guIENCivguK3guKPguLHguI0g4LmA4Lic4Li34Lit4LiB4LiX4Lit4LiHDQor4Lit4Lij4Lix4LiNIOC4quC4uOC4meC4tOC4nuC4pQ0KK+C4reC4o+C4seC4jeC4jeC4siDguIjguLHguJnguJfguKPguYzguKrguLjguKPguLTguKfguIfguKjguYwNCivguK3guKPguLHguI3guI3guLIg4LiY4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lit4Lij4Lix4LiN4LiN4LiyIOC4oeC4suC4meC4sOC5geC4geC5ieC4pw0KK+C4reC4o+C4seC4jeC4jeC4siDguKrguLLguJjguLgNCivguK3guKPguLHguJMg4Lio4Lij4Li14Lit4Lin4Lii4LiK4Lix4LiiDQor4Lit4Lij4LmI4Liy4LihIOC5gOC4l+C4nuC4suC4meC4meC4l+C5jA0KK+C4reC4o+C5iOC4suC4oSDguKfguIfguKjguYzguJbguLTguKPguKfguKPguKPguJjguJnguYwNCivguK3guKPguYjguLLguKHguKjguKPguLUg4Lih4LiH4LiE4Lil4Lio4Li04Lij4Li0DQor4Lit4Lij4Li04LiZ4LiyIOC4qOC4tOC4o+C4tOC4p+C4h+C4qOC5jA0KK+C4reC4o+C4tOC4ouC4siDguKfguLTguJfguKLguKjguKPguLXguYDguIjguKPguLTguI0NCivguK3guKPguLTguKrguLIg4LmA4LiB4Lip4Lih4LiB4Li04LiI4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Lij4Li44LiTIOC5gOC4geC4teC4ouC4o+C4leC4tOC4m+C4seC4jeC4jeC4sg0KK+C4reC4o+C4uOC4kyDguIjguLHguIfguJfguK3guIfguKjguLTguKPguLQNCivguK3guKPguLjguJMg4LiK4Lih4LmA4LiK4Lii4Lin4LiH4Lio4LmMDQor4Lit4Lij4Li44LiTIOC4lOC4s+C4o+C4h+C4nOC4pQ0KK+C4reC4o+C4uOC4kyDguJfguK3guIfguJnguK3guIENCivguK3guKPguLjguJMg4LiZ4Li04Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Lij4Li44LiTIOC4m+C4o+C4teC4lOC4sg0KK+C4reC4o+C4uOC4kyDguJ7guLjguIHguJ7guLHguIENCivguK3guKPguLjguJMg4Lih4Liy4Liu4Liy4Lia4Li54LiaDQor4Lit4Lij4Li44LiTIOC5gOC4o+C4t+C4reC4h+C4ouC4uOC4l+C4mOC4m+C4geC4o+C4k+C5jA0KK+C4reC4o+C4uOC4kyDguKfguLHguJnguKPguLHguIHguKnguYwNCivguK3guKPguLjguJMg4Lio4Li24LiB4Lip4Liy4Lie4Lij4LiVDQor4Lit4Lij4Li44LiTIOC4quC4uOC4guC4quC4muC4suC4og0KK+C4reC4o+C4uOC4kyDguKvguLLguI3guIrguJnguLANCivguK3guKPguLjguJMg4Lit4Li44LiU4Lih4Liq4Li44LiCDQor4Lit4Lij4Li44LiT4Lib4Lij4Liw4Lio4Liy4Liq4LiV4Lij4LmMIOC5gOC4m+C4peC5iOC4h+C5geC4quC4h+C4qOC4o+C4tQ0KK+C4reC4o+C4uOC4k+C4o+C4seC4leC4meC5jCDguJfguLHguJrguYDguKUNCivguK3guKPguLjguJPguKPguLHguJXguJnguYwg4LmA4Lit4Li14LmI4Lii4Lih4LmA4LiI4Lij4Li04LiN4Lii4Li04LmI4LiHDQor4Lit4Lij4Li44LiT4Lin4Lij4Lij4LiTIOC4geC4teC4o+C4leC4tOC4nuC4peC4geC4uOC4pQ0KK+C4reC4o+C4uOC4k+C4qOC4o+C4tSDguYDguIHguKnguKHguJ7guIfguKnguYwNCivguK3guKPguLjguJPguKjguKPguLUg4LiZ4Li44LmI4Lih4Lir4Lit4LihDQor4Lit4Lij4Li44LiT4Lio4Lij4Li1IOC4qOC4tOC4o+C4tOC4nuC4o+C5gOC4l+C4ng0KK+C4reC4o+C4uOC4k+C4siDguJrguLLguIHguYnguLINCivguK3guKPguLjguJPguLUg4LiE4LiH4LmA4Lij4Li34Lit4LiH4Lik4LiX4LiY4Li04LmMDQor4Lit4Lij4Li44LiT4Li1IOC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C4reC4o+C4uOC4k+C4tSDguYTguIrguKLguIHguKUNCivguK3guKPguLjguJPguLUg4LmB4LiV4LiH4LiJ4LmI4LizDQor4Lit4Lij4Li44LiT4Li1IOC4meC4suC4hOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4reC4o+C4uOC4k+C4tSDguJvguLTguYjguJnguJrguLHguJPguJHguLTguJUNCivguK3guKPguLjguJPguLUg4Lie4Li14Lij4Liy4LiB4Lij4LmA4LiU4LiKDQor4Lit4Lij4Li44LiT4Li1IOC4o+C4seC4geC4qeC4suC4meC4suC5gOC4p+C4qA0KK+C4reC4o+C4uOC4k+C4tSDguYLguKXguKvguLLguIrguLXguKfguLANCivguK3guKPguLjguJPguLUg4Lio4Lij4Li14Lig4LiyDQor4Lit4Lij4Li44LiT4Li1IOC4quC4tOC4h+C4q+C5jOC4hOC4sw0KK+C4reC4o+C4uOC4k+C4tSDguKvguKHguLnguYjguILguIjguKPguJ7guLHguJnguJjguYwNCivguK3guKPguLjguJPguLUg4Lit4Li44LiU4Lih4Lib4Lij4Liy4Lil4LiwDQor4Lit4Lij4Li44Liq4Lij4LiyIOC4iuC4suC4jeC4quC4p+C5iOC4suC4hw0KK+C4reC4o+C5hOC4lyDguKfguLjguJLguLTguYDguJTguIrguYDguIHguKPguLXguKLguIfguYTguIHguKMNCivguK3guKXguIfguIHguKPguJPguYwg4LmA4LiU4LiK4LiE4LiHDQor4Lit4Lil4Li04LiV4LiyIOC4lOC4tOC4qOC4o+C4oOC4seC4geC4lOC4tQ0KK+C4reC4peC4tOC4quC4siDguJfguLXguYLguKoNCivguK3guKfguJog4Lib4Lij4Liw4LmC4Lih4LiI4LiZ4Li14Lii4LmMDQor4Lit4Lin4Lii4LiK4Lix4LiiIOC4m+C4tOC4ouC4sOC4hOC4uOC4kw0KK+C4reC4p+C4ouC4nuC4oyDguYHguIHguYnguKfguKHguJPguLUNCivguK3guKfguKLguJ7guKMg4Lih4LiH4LiE4Lil4LiB4Lil4LmJ4LiyDQor4Lit4Lin4LilIOC4meC4tOC4leC4ouC4quC4uOC4l+C4mOC4tOC5jA0KK+C4reC4quC4uOC4meC4teC4ouC5jCDguJfguKPguLHguJ7guKLguYzguKjguKPguLXguKjguLjguKDguIrguLHguKINCivguK3guK3guKHguKrguLTguJkg4Liq4Li04LiH4Lir4LmM4LmA4LiX4Li14Lii4LiZDQor4Lit4LmI4Lit4LiZ4LiV4LiyIOC4quC4seC4l+C4mOC4suC4o+C4seC4h+C4quC4tQ0KK+C4reC5ieC4rSDguYLguJ7guJjguLINCivguK3guYnguK3guKHguYPguIgg4LmA4Lie4Li04LmI4Lih4Lie4Li04LiB4Li44LilDQor4Lit4LmJ4Lit4Lii4LiX4Li04Lie4Lii4LmMIOC5geC4i+C5iOC4reC4seC5ieC4hw0KK+C4reC5ieC4reC4ouC5g+C4iCDguJrguLjguI3guKLguLHguIcNCivguK3guLHguIEg4LiK4Li44LmI4Lih4LiK4Li34LmI4LiZDQor4Lit4Lix4LiB4Lip4Lij4Lix4LiB4Liq4LmMIOC5guC4leC4geC4pOC4qeC4k+C4sA0KK+C4reC4seC4hOC4o+C4meC4suC4jyDguIHguLTguJXguJXguLTguYHguKrguIfguJjguKPguKPguKENCivguK3guLHguITguKPguJ7guLHguJLguJnguYwg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lit4Lix4LiE4Lij4LmA4LiK4Lip4LiQ4LmMIOC4hOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4reC4seC4hOC4o+C5gOC4lOC4iiDguK3guLLguKPguLXguKLguYzguKrguIHguLjguKUNCivguK3guLHguIfguIHguLnguKMg4Lib4Liy4Lil4Li14Lin4LiH4Lio4LmMDQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4hOC4s+C4quC4uOC4meC4l+C4ow0KK+C4reC4seC4h+C4hOC4k+C4siDguYLguIrguJXguLTguILguIjguKPguYDguIHguLXguKLguKPguJXguLQNCivguK3guLHguIfguITguJPguLIg4LiX4Lit4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lit4Lix4LiH4LiE4LiT4LiyIOC5gOC4m+C4teC5iOC4ouC4oeC4quC4uOC4guC4p+C4seC4kuC4meC5jA0KK+C4reC4seC4h+C4hOC4k+C4siDguYDguKHguJjguKLguLLguKDguLINCivguK3guLHguIfguITguJPguLIg4Lin4Liy4LiT4Li04LiK4Lin4Li04LmA4Lio4Lip4LiB4Li44LilDQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4quC4uOC4guC4quC4tOC4l+C4mOC4tOC5jA0KK+C4reC4seC4h+C4hOC4k+C4siDguK3guLTguJnguJfguKPguYLguIHguYDguKjguKgNCivguK3guLHguIfguITguLLguKMg4Lin4Lix4LiK4Lij4Lia4Li54Lij4Lie4Liy4LiK4Lix4LiiDQor4Lit4Lix4LiH4Liq4LiZ4LiyIOC4hOC4iuC4o+C4seC4geC4qeC5jA0KK+C4reC4seC4h+C4quC4meC4siDguYDguKXguLTguKjguJzguIHguLLguIHguLjguKUNCivguK3guLHguIfguYDguJTguKMg4LiI4Li54LmA4LiZ4Li14Lii4Lij4LmMDQor4Lit4Lix4LiI4LiI4LiT4LiyIOC4lOC4tOC4luC4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4reC4seC4iOC4ieC4o+C4siDguIHguKXguLTguYjguJnguKvguK3guKENCivguK3guLHguIjguInguKPguLIg4LmA4LiC4Lih4Liq4Li04Lij4Li04LmC4LiK4LiEDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4iOC4tOC4leC4o+C4meC4uOC4p+C4seC4kuC4meC5jOC4geC4uOC4pQ0KK+C4reC4seC4iOC4ieC4o+C4siDguIrguLfguYjguJnguKrguLjguKfguKPguKPguJMNCivguK3guLHguIjguInguKPguLIg4LiU4Li04Lip4LiQ4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4l+C4reC4h+C4oeC4tQ0KK+C4reC4seC4iOC4ieC4o+C4siDguJnguLTguKXguKrguKfguLHguKrguJTguLTguYwNCivguK3guLHguIjguInguKPguLIg4Lib4Lil4Li34LmJ4Lih4Lit4Li44LiX4LijDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4nuC4tOC4iuC4jeC5jOC5gOC4peC4tOC4qOC4iuC4suC4jQ0KK+C4reC4seC4iOC4ieC4o+C4siDguKHguLLguKjguJ7guLHguJnguJjguLjguYwNCivguK3guLHguIjguInguKPguLIg4Lil4Lin4LiK4Lil4Liy4LiE4LihDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4p+C4seC4iuC4o+C4geC4uOC4pQ0KK+C4reC4seC4iOC4ieC4o+C4siDguKjguKPguLXguYDguKXguYfguIHguJTguLUNCivguK3guLHguIjguInguKPguLIg4Liq4Liy4Lij4Lie4Li04Lih4Lie4LiyDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4quC4uOC4p+C4tOC4l+C4ouC4suC4nuC4o+C4quC4geC4uOC4pQ0KK+C4reC4seC4iOC4ieC4o+C4siDguK3guJTguLTguKjguLHguIHguJTguLTguYzguIHguLTguJXguJXguLQNCivguK3guLHguIjguInguKPguLIg4LmA4Lit4LiB4LiI4Liz4LiZ4LiH4LiE4LmMDQor4Lit4Lix4LiI4LiJ4Lij4Liy4Lie4Lix4LiZ4LiY4LmMIOC4hOC4seC4nuC4l+C4sOC4meC4suC4p+C4tOC4mQ0KK+C4reC4seC4iOC4ieC4o+C4suC4p+C4o+C4o+C4kyDguYDguKDguJXguKPguLLguKPguLHguJXguJnguYwNCivguK3guLHguIjguInguKPguLTguKLguLIg4LmA4Liq4Lij4Li04Lih4LiX4Lit4LiHDQor4Lit4Lix4LiI4LiJ4Lij4Li14Lii4LmMIOC4reC4oeC4o+C5gOC4peC4tOC4qOC4p+C4tOC4oeC4suC4mQ0KK+C4reC4seC4iuC4jOC4siDguJXguLHguYnguIfguJXguLTguJvguIHguKPguJPguYwNCivguK3guLHguIrguJnguLIg4Lil4Liy4Lig4Lir4Lil4Liy4LiiDQor4Lit4Lix4LiK4Lij4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4guC5gOC4geC4qeC4oQ0KK+C4reC4seC4jeC4iuC4juC4siDguYDguK3guLXguYjguKLguKHguJvguKPguLDguJTguLTguKnguJDguYzguKDguLHguJMNCivguK3guLHguI3guIrguJnguLIg4LmA4Lib4Lil4LmI4LiH4LiI4Li04LiZ4LiU4Liy4LmA4Lij4Li34Lit4LiHDQor4Lit4Lix4LiN4LiK4LiZ4Li1IOC4nuC4h+C4qOC5jOC4mOC4teC4o+C4oOC4suC4ng0KK+C4reC4seC4jeC4iuC4peC4tSDguIHguLLguJnguJTguLINCivguK3guLHguI3guIrguKXguLUg4LiE4LiH4LiB4Lix4Lil4Lib4LmMDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4iOC4seC5iOC4p+C5geC4iOC5iOC4oeC5g+C4qg0KK+C4reC4seC4jeC4iuC4peC4tSDguIrguKHguKPguKoNCivguK3guLHguI3guIrguKXguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4leC4seC4meC4leC4tOC4oeC4tOC4leC4ow0KK+C4reC4seC4jeC4iuC4peC4tSDguJjguJnguLDguJvguKPguLANCivguK3guLHguI3guIrguKXguLUg4Lia4Lix4Lin4LiX4Lit4LiHDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4m+C4tOC4ouC4sOC4quC4suC4mOC4uOC4geC4tOC4iA0KK+C4reC4seC4jeC4iuC4peC4tSDguJ7guLTguJnguJfguLjguJ7guLXguKPguYLguIHguKfguLTguJcNCivguK3guLHguI3guIrguKXguLUg4Lih4LiH4LiE4Lil4LmA4LiI4Lij4Li04LiNDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4o+C4uOC5iOC4h+C4o+C4seC4leC4meC4suC4reC4uOC4muC4pQ0KK+C4reC4seC4jeC4iuC4peC4tSDguKfguIfguKjguYzguJfguLTguKENCivguK3guLHguI3guIrguKXguLUg4Lin4Li04LmC4Lij4LiI4LiZ4LmM4LiY4LiZ4Liw4LiK4Lix4LiiDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4qOC4uOC4oOC4p+C4o+C4o+C4kw0KK+C4reC4seC4jeC4iuC4peC4tSDguKrguLjguILguLjguKHguKfguLLguJnguLTguIrguIHguLjguKUNCivguK3guLHguI3guIrguKXguLUg4Lir4Lil4LmI4Lit4LiZ4Lie4LmA4LiB4LmJ4LiyDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4reC4tOC4meC4l+C4o+C5jOC4l+C4reC4hw0KK+C4reC4seC4jeC4iuC4seC4jSDguITguLPguJXguLINCivguK3guLHguI3guIrguLHguJkg4Lin4Li44LiS4Li04Lie4Lik4LiB4Lip4LmMDQor4Lit4Lix4LiN4LiK4Li44Lil4Li1IOC4quC4uOC5guC4oOC4l+C4seC4og0KK+C4reC4seC4jeC4jeC4suC4leC5jCDguYTguJ7guIjguLTguJXguKPguLLguJnguJnguJfguYwNCivguK3guLHguI3guYDguIrguLTguI0g4LiI4Lix4LiZ4LiX4Lij4Li44LmA4Lia4LiB4Lip4LiyDQor4Lit4Lix4LiQ4Lie4LilIOC5hOC4iuC4ouC4o+C4seC4geC4qeC5jA0KK+C4reC4seC4leC4luC4nuC4oyDguKXguLHguJrguYTguJ7guKPguLUNCivguK3guLHguJjguKLguLIg4Lia4Li44LiN4LiN4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lit4Lix4LmI4LiZIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4reC4seC4muC4lOC4uOC4peC5gOC4peC4suC4sCDguKrguLjguILguJbguLLguKfguKMNCivguK3guLHguJvguKrguKMg4LiZ4Li04LiX4Lix4Lio4LiZ4LiI4Liy4Lij4Li44LiB4Li44LilDQor4Lit4Lix4Lih4Lie4LijIOC4geC4oeC4peC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4reC4seC4oeC4nuC4oyDguYHguIHguYjguJnguIHguKPguLDguIjguYjguLLguIcNCivguK3guLHguKHguJ7guKMg4LiI4LiV4Li44Lij4Lin4Lix4LiS4LiZ4LiyDQor4Lit4Lix4Lih4Lie4LijIOC5gOC4iOC4meC4reC4meC4seC4meC4leC5jOC4nuC4ow0KK+C4reC4seC4oeC4nuC4oyDguIrguLfguYjguJnguYPguIgNCivguK3guLHguKHguJ7guKMg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lit4Lix4Lih4Lie4LijIOC4leC4uOC4k+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4seC4oeC4nuC4oyDguJjguJnguKrguLjguKfguKPguKPguJPguYDguIHguKnguKENCivguK3guLHguKHguJ7guKMg4Lia4Lij4Lij4LiU4Liy4Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Lix4Lih4Lie4LijIOC4m+C4o+C4suC4h+C4hOC5jOC4o+C4seC4leC4meC5jA0KK+C4reC4seC4oeC4nuC4oyDguJ7guKPguKHguJXguLHguJkNCivguK3guLHguKHguJ7guKMg4Lie4Li44Lil4LmA4Lil4LmH4LiBDQor4Lit4Lix4Lih4Lie4LijIOC4oeC4suC4muC4iOC4sOC4muC4gQ0KK+C4reC4seC4oeC4nuC4oyDguKPguLjguYjguIfguYDguKrguKPguLXguKPguLHguJXguJnguYwNCivguK3guLHguKHguJ7guKMg4Lin4LiH4Lio4LmM4LmA4Lil4Li04Lio4Lif4LmJ4LiyDQor4Lit4Lix4Lih4Lie4LijIOC4p+C4tOC5guC4meC4l+C4seC4og0KK+C4reC4seC4oeC4nuC4oyDguKjguLTguKPguLTguYDguKfguIrguJ7guLHguJnguJjguLjguYwNCivguK3guLHguKHguJ7guKMg4Liq4Liy4Lij4Liw4Lie4LiH4Lip4LmMDQor4Lit4Lix4Lih4Lie4LijIOC4quC4ueC4h+C4quC4p+C5iOC4suC4hw0KK+C4reC4seC4oeC4nuC4oyDguK3guKHguKPguIHguLjguKXguLLguIjguLLguKPguKLguYwNCivguK3guLHguKHguJ7guKMg4Lit4Li44LmI4LiZ4LmA4Liq4Li14Lii4LihDQor4Lit4Lix4Lih4Lie4Lij4Li04LioIOC5gOC4quC4t+C4reC4p+C4o+C4o+C4k+C4qOC4o+C4tQ0KK+C4reC4seC4oeC4nuC4p+C4seC4mSDguJ7guKXguK3guKLguYDguJ7guIrguKPguKHguJPguLUNCivguK3guLHguKHguJ7guLIg4LmE4LiC4LmI4Lih4Li44LiBDQor4Lit4Lix4Lih4Lie4Li04LiB4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4reC4seC4oeC4oOC4siDguIjguLTguKPguYDguIjguLTguJTguJnguKDguLINCivguK3guLHguKHguKPguLIg4LiE4Li44LiT4LmA4LiK4Li14Lii4LijDQor4Lit4Lix4Lih4Lij4Li04LiZ4LiX4Lij4LmMIOC4meC4suC4o+C4suC4ig0KK+C4reC4seC4peC4lOC4uOC4peC5gOC4peC4suC4sCDguYHguJTguIfguYLguIHguYDguKHguJkNCivguK3guLHguKjguJnguLXguKLguYwg4Lia4Li44LiN4Lio4Li04Lij4Li04LiE4Liz4LiK4Lix4LiiDQor4Lit4Lix4Lio4Lin4Li04LiZIOC5geC4iOC5ieC4h+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4reC4seC4qOC4p+C4tOC4mSDguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguK3guLHguKnguI7guLLguIfguITguYwg4LiQ4Liy4LiZ4Liw4Lin4LijDQor4Lit4Lix4Liq4LiU4Liy4LiH4LiE4LmMIOC4m+C4tOC5iOC4meC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4reC4seC4quC4reC4suC4o+C4tSDguIHguLHguKrguJXguLLguKfguLUNCivguK3guLLguITguKEg4LiE4Lij4LmJ4Liy4Lih4Lio4Lij4Li1DQor4Lit4Liy4LiE4LihIOC4meC4tOC4leC4ouC4suC4geC4o+C4k+C5jA0KK+C4reC4suC4hOC4oSDguYDguJ/guLfguYjguK3guIfguJ/guLjguYnguIcNCivguK3guLLguITguKEg4Lio4Liy4LiZ4LiV4Li04Liq4Lij4LijDQor4Lit4Liy4LiE4LihIOC4reC4seC4leC4luC4sOC4quC4seC4oeC4muC4uOC4k+C4k+C4sA0KK+C4reC4suC4iCDguKfguKrguLjguILguLHguJnguJjguYwNCivguK3guLLguIjguLLguKPguLUg4Lir4Lit4Lih4LmA4Lio4Lij4Lip4LiQ4Li1DQor4Lit4Liy4LiI4Li04LiZ4LiV4LmMIOC5gOC4quC4teC5iOC4ouC4h+C5guC4iuC4hOC4reC4ouC4ueC5iA0KK+C4reC4suC4iuC4teC4p+C4sCDguKHguIfguITguKXguKrguIHguLjguKXguKTguJfguJjguLTguYwNCivguK3guLLguJPguLHguJXguLQg4Lie4Lix4LiZ4LiY4Li44Lin4LiU4Li1DQor4Lit4Liy4LiU4Li54Lil4Lii4LmMIOC4ouC4seC4meC4leC4o+C4nuC4tOC4meC4tOC4iA0KK+C4reC4suC4l+C4oyDguYHguIrguJvguKPguLDguYDguKrguKPguLTguJANCivguK3guLLguJfguKMg4Lij4Liy4Lih4LmC4LiB4Lih4Li44LiXDQor4Lit4Liy4LiX4Lij4LiX4Li04Lie4Lii4LmMIOC4nuC4p+C4h+C4oeC4k+C4tQ0KK+C4reC4suC4l+C4tOC4leC4ouC5jCDguYPguIjguJrguLjguI0NCivguK3guLLguJfguLTguJXguKLguYwg4Lih4Liy4LiZ4Liq4Lix4LiI4LiI4LiY4Lij4Lij4LihDQor4Lit4Liy4LiX4Li04LiV4Lii4LmMIOC4reC4p+C4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jA0KK+C4reC4suC4meC4meC4l+C5jCDguIjguLXguKPguJTguLTguKnguJDguYwNCivguK3guLLguJnguJnguJfguYwg4LmA4Lie4LmH4LiK4Lij4LiZ4LmJ4Lit4LiiDQor4Lit4Liy4LiZ4LiZ4LiX4LmMIOC4quC4o+C4sOC4l+C4reC4h+C5geC4ng0KK+C4reC4suC4meC4seC4meC4leC5jCDguK3guLTguJDguKrguLjguKfguKPguKPguJMNCivguK3guLLguJnguLXguJXguLIg4LiI4Liy4Lin4Liy4Lil4LiyDQor4Lit4Liy4LiZ4Li44Lig4Liy4LieIOC4quC4uOC4meC4reC4meC4seC4meC4leC5jA0KK+C4reC4suC4nuC4oyDguYHguIvguYjguKXguLXguYkNCivguK3guLLguKDguKPguJPguYwg4LiB4Li44Lil4Lin4Lix4LiS4LmC4LiXDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC5g+C4iOC4l+C4seC4qOC4meC5jOC4geC4uOC4pQ0KK+C4reC4suC4oOC4o+C4k+C5jCDguJXguLHguYnguIfguKjguLTguKPguLTguYDguKrguJbguLXguKLguKMNCivguK3guLLguKDguKPguJPguYwg4LiZ4Li04LmC4Lij4LiI4LiZ4LmMDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4nuC4suC4meC4l+C4reC4hw0KK+C4reC4suC4oOC4o+C4k+C5jCDguKPguLHguJXguJnguLDguITguLjguJvguJXguYwNCivguK3guLLguKDguKPguJPguYwg4Lio4Li04Lil4Lit4Li44LiU4LihDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4quC5guC4o+C4iuC4p+C4tOC4geC4quC4tOC4lQ0KK+C4reC4suC4oOC4seC4l+C4o+C4siDguJjguKPguKPguKHguYDguIjguKPguLTguI0NCivguK3guLLguKDguLIg4LmC4LiJ4Lih4Lio4Lij4Li1DQor4Lit4Liy4Lig4LiyIOC4qOC4o+C4teC4h+C4suC4oeC4nOC5iOC4reC4hw0KK+C4reC4suC4oOC4suC4geC4oyDguJ7guLTguJ7guLHguJLguJnguYzguIjguKPguLTguKLguLINCivguK3guLLguKDguLLguJ7guKPguKPguJMg4LiV4Lij4Liw4LiB4Liy4Lij4Liq4Li04LiH4Lir4LiZ4Liy4LiXDQor4Lit4Liy4Lig4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4guC4quC4seC4og0KK+C4reC4suC4oeC5iOC4p+C4oiDguYHguIvguYjguYLguJXguYvguKcNCivguK3guLLguKHguLjguYjguKIg4LmB4LiL4LmI4LiV4Lix4LiZDQor4Lit4Liy4Lij4LiU4LiyIOC4geC4o+C4uOC4k+C4suC4ouC4tOC5iOC4h+C4nuC4seC4meC4mOC5jA0KK+C4reC4suC4o+C4oeC4k+C5jCDguYHguIjguYjguKHguJTguLLguKcNCivguK3guLLguKPguKHguJPguYwg4Lic4Lil4LmA4LiI4Lij4Li04LiNDQor4Lit4Liy4Lij4Lih4LiT4LmMIOC4quC4h+C4p+C4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4reC4suC4o+C4oeC4ouC5jCDguIjguLHguYjguJnguK7guKfguJoNCivguK3guLLguKPguKHguKLguYwg4Lih4Li54LmA4LiX4Li14LiiDQor4Lit4Liy4Lij4Lii4LiwIOC4leC4o+C4teC4qOC4uOC4geC4o+C5jA0KK+C4reC4suC4o+C4ouC4siDguIfguLLguKHguKfguIfguKjguYzguYDguKfguIrguIHguLjguKUNCivguK3guLLguKPguKLguLIg4LiX4Li04Lih4LiB4Li44LilDQor4Lit4Liy4Lij4Lii4LiyIOC4nuC4tOC4nuC4seC4l+C4mOC4geC4uOC4qOC4peC4geC4uOC4pQ0KK+C4reC4suC4o+C4ouC4siDguKjguJXguLHguKnguYDguJDguLXguKLguKMNCivguK3guLLguKPguKLguLIg4Lit4Li04LiZ4LiX4Lij4LmM4LiI4Lix4LiZ4LiX4Li24LiBDQor4Lit4Liy4Lij4Lix4LiB4Lip4LmMIOC4m+C4uOC5ieC4ouC4leC4o+C4sOC4geC4ueC4pQ0KK+C4reC4suC4o+C4tOC4iuC4ouC5jCDguITguLjguJPguJvguKPguLDguKrguJ4NCivguK3guLLguKPguLUg4LiB4Lit4LiH4LmA4Lib4LmH4LiHDQor4Lit4Liy4Lij4Li1IOC5geC4iOC5ieC4h+C4quC4p+C5iOC4suC4hw0KK+C4reC4suC4o+C4tSDguJTguLTguKnguLLguKDguLTguKPguKHguKLguYwNCivguK3guLLguKPguLUg4LiZ4Liy4LiE4Liw4Liq4Li04LiH4Lir4LmMDQor4Lit4Liy4Lij4Li1IOC4nuC4o+C4q+C4oeC5guC4k+C4oeC4seC4og0KK+C4reC4suC4o+C4tSDguKLguLTguYnguKHguK3guYjguLMNCivguK3guLLguKPguLUg4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTDQor4Lit4Liy4Lij4Li1IOC4quC4teC4leC4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4reC4suC4o+C4tSDguK3guLHguKjguKPguLHguKrguIHguKMNCivguK3guLLguKPguLXguJ7guKMg4Lin4LiH4Lip4LmM4Lih4LiT4Li14LmA4LiX4LioDQor4Lit4Liy4Lij4Li14Lii4LmM4Lin4Lij4Lij4LiTIOC4muC4seC4p+C5gOC4nOC4t+C5iOC4reC4mQ0KK+C4reC4suC4o+C4teC4ouC4siDguKXguLTguKLguLDguIHguLjguKXguJ7guIfguKjguYwNCivguK3guLLguKPguLXguKLguYwg4LiB4Li04LiV4Li04Liq4Liy4Lij4Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4hOC4uOC5ieC4oeC4qOC4tOC4o+C4tA0KK+C4reC4suC4o+C4teC4ouC5jCDguYDguIjguLXguKLguYTguJ7guJrguLnguKXguKLguYwNCivguK3guLLguKPguLXguKLguYwg4LiL4Li34LmI4Lit4LiK4Lix4Lii4LmA4LiI4Lij4Li04LiNDQor4Lit4Liy4Lij4Li14Lii4LmMIOC5gOC4lOC5iOC4meC4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jA0KK+C4reC4suC4o+C4teC4ouC5jCDguJfguLTguJ7guKLguYzguI3guLLguJnguKfguIfguKjguYwNCivguK3guLLguKPguLXguKLguYwg4Lia4Li04LiZ4Lir4Lih4Lix4LiUDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4nuC4h+C4qOC5jOC4nuC4seC4kuC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4reC4suC4o+C4teC4ouC5jCDguYLguJ7guJjguLTguKrguLjguKfguKPguKPguJMNCivguK3guLLguKPguLXguKLguYwg4LmA4Lih4Li34Lit4LiH4Liq4LiH4Lin4LiZDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4peC4tOC5iOC4oeC4p+C4h+C4qOC5jA0KK+C4reC4suC4o+C4teC4ouC5jCDguKjguKPguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguK3guLLguKPguLXguKLguYwg4Liq4Lin4LmI4Liy4LiH4Lio4Lij4Li1DQor4Lit4Liy4Lij4Li14Lii4LmMIOC4quC4uOC4meC4nuC4h+C4qeC5jOC4qOC4o+C4tQ0KK+C4reC4suC4o+C4teC4ouC5jCDguKvguLjguJXguLDguKHguLLguJkNCivguK3guLLguKPguLXguKLguYwg4Lit4Li44LiU4Lih4LiE4LiT4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4leC4leC5jOC4quC4o+C4o+C4p+C4tOC4quC4o+C4k+C5jA0KK+C4reC4suC4o+C4teC4o+C4seC4leC4meC5jCDguJrguLjguI3guJfguKfguLUNCivguK3guLLguKPguLXguKPguLHguJXguJnguYwg4Lil4Li04LmJ4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4LiB4Li44LilDQor4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC5geC4q+C4mOC4seC4jeC4p+C4tOC4quC4tOC4kA0KK+C4reC4suC4o+C4teC4p+C4o+C4o+C4kyDguJjguLLguKPguLLguJjguLXguKPguYDguKjguKPguKnguJDguYwNCivguK3guLLguKPguLXguYDguJ/guJkg4Liu4Liw4LiL4Liy4LiZ4Li1DQor4Lit4Liy4Lil4Lix4LiiIOC4quC4uOC4o+C4sOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4reC4suC4p+C4uOC4kuC4tCDguKrguIfguKfguJnguJfguKPguLHguJ7guKLguYwNCivguK3guLLguKfguLjguJgg4Lio4Lij4Li14LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lit4Liy4Liq4LiyIOC4guC4ouC4seC4meC5gOC4guC4teC4ouC4mQ0KK+C4reC4suC4reC4teC4i+C5iuC4sCDguYDguKvguKHguKrguKHguLHguJkNCivguK3guLLguYDguKLguIHguLjguKHguLLguKMg4Lib4Liy4Lin4LiyDQor4Lit4LmI4Liy4LiHIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C4reC5i+C4siDguKjguKPguLXguK3guLPguYTguJ4NCivguK3guLPguJnguKfguKIg4LmA4LiB4Lip4Lia4Liz4Lij4Li44LiHDQor4Lit4Liz4LiZ4Lin4LiiIOC4hOC4o+C4uOC4keC4meC4sg0KK+C4reC4s+C4meC4p+C4oiDguIjguLHguJnguJfguLANCivguK3guLPguJnguKfguKIg4LiJ4Lix4LiV4Lij4LiK4Liy4LiN4Lih4LiH4LiE4LilDQor4Lit4Liz4LiZ4Lin4LiiIOC5hOC4iuC4ouC5guC4o+C4iOC4meC5jA0KK+C4reC4s+C4meC4p+C4oiDguYDguJXguIrguLDguKjguKPguLUNCivguK3guLPguJnguKfguKIg4LiX4Lix4Lio4LiZ4LmA4Lih4LiY4Li04LiZDQor4Lit4Liz4LiZ4Lin4LiiIOC4meC4suC4hOC4meC4suC4p+C4sg0KK+C4reC4s+C4meC4p+C4oiDguJrguLjguI3guJfguKPguLHguIHguKnguLINCivguK3guLPguJnguKfguKIg4Lib4Lix4LmJ4LiZ4LiH4Liy4LihDQor4Lit4Liz4LiZ4Lin4LiiIOC4nuC4o+C5gOC4peC4tOC4qOC4m+C4tOC4leC4tA0KK+C4reC4s+C4meC4p+C4oiDguYDguJ7guIrguKPguYHguKrguIcNCivguK3guLPguJnguKfguKIg4Lih4Liy4Liq4LiyDQor4Lit4Liz4LiZ4Lin4LiiIOC4o+C4seC4leC4meC4p+C4tOC5hOC4peC4geC4uOC4pQ0KK+C4reC4s+C4meC4p+C4oiDguKfguIfguKjguYzguKfguJPguLTguIoNCivguK3guLPguJnguKfguKIg4LmA4Lin4LiK4Liq4Li44LiB4Lij4Lij4LihDQor4Lit4Liz4LiZ4Lin4LiiIOC4quC4meC4q+C4peC4tQ0KK+C4reC4s+C4meC4p+C4oiDguKrguLXguJnguKfguJkNCivguK3guLPguJnguKfguKIg4Liq4Li44Lin4Lij4Lij4LiT4Lib4Liy4LilDQor4Lit4Liz4LiZ4Lin4LiiIOC4q+C4reC4ouC4quC4seC4h+C4guC5jA0KK+C4reC4s+C4meC4p+C4oiDguK3guLHguKjguKfguKjguKPguLXguKrguLjguKfguKPguKPguJMNCivguK3guLPguJnguKfguKIg4Liu4Liy4LiL4Lix4LiZ4Lia4Li04LiZDQor4Lit4Liz4LiZ4Lin4Lii4Lie4LijIOC4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4reC4s+C4meC4suC4iCDguIHguLLguKPguLjguJPguKHguKPguKPguITguJzguKUNCivguK3guLPguJnguLLguIgg4LiI4LiH4Lit4LiU4Li04LmA4Lij4LiB4Lil4Liy4LigDQor4Lit4Liz4LiZ4Liy4LiIIOC4iuC4ouC4quC4oeC4suC4meC4meC4l+C5jA0KK+C4reC4s+C4meC4suC4iCDguJXguKPguLXguKLguLLguJnguJnguJfguYwNCivguK3guLPguJnguLLguIgg4LiY4Li14Lij4Liw4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Lic4LilDQor4Lit4Liz4LiZ4Liy4LiIIOC4muC4uOC4jeC5gOC4leC5h+C4oQ0KK+C4reC4s+C4meC4suC4iCDguJ7guKPguKvguKHguJnguLTguJXguKLguYwNCivguK3guLPguJnguLLguIgg4Lih4LiH4LiE4Lil4Lie4Lix4LiZ4LiY4LmMDQor4Lit4Liz4LiZ4Liy4LiIIOC5gOC4o+C4t+C4reC4meC4l+C4tOC4nuC4ouC5jA0KK+C4reC4s+C4meC4suC4iCDguYTguKfguIjguIfguYDguIjguKPguLTguI0NCivguK3guLPguJnguLLguIgg4Liq4Liy4Lii4LiU4Lin4LiHDQor4Lit4Liz4LiZ4Liy4LiIIOC5geC4quC4h+C4qOC4tOC4o+C4tA0KK+C4reC4s+C4meC4suC4iCDguK3guLPguJnguLLguIjguKrguLTguJfguJjguLTguIrguLHguKINCivguK3guLPguJ7guJkg4Lii4Li04LmJ4Lih4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lit4Liz4Lie4LijIOC4hOC4ueC4k+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4reC4s+C4nuC4oyDguJTguK3guJnguYTguJ7guKPguYDguJ7guIrguKMNCivguK3guLPguJ7guKMg4Lia4Lix4Lin4LiK4Lix4LiHDQor4Lit4Liz4Lie4LijIOC4oOC4ueC5iOC5gOC4geC4peC4teC5ieC4ouC4hw0KK+C4reC4s+C4nuC4oyDguYTguKfguYnguJfguYDguJrguKPguIrguJfguYwNCivguK3guLPguJ7guKMg4LmB4Liq4LiH4LmA4Lie4LiK4LijDQor4Lit4Liz4Lie4Lij4Lij4LiTIOC4l+C4p+C4teC4oeC4suC4o+C4lg0KK+C4reC4s+C4nuC4pSDguYDguIHguLLguLDguIHguLLguIHguKXguLLguIcNCivguK3guLPguJ7guKUg4LiK4Liz4LiZ4Liy4LiN4LiB4Li04LiIDQor4Lit4Liz4Lie4LilIOC4meC4suC4oeC4quC4meC4mOC4tA0KK+C4reC4s+C4nuC4pSDguYLguJ7guJjguLTguYzguJ7guLjguYjguKHguYDguKLguYfguJkNCivguK3guLPguJ7guKUg4Lin4Li14Lij4Liw4LiV4Liw4LiZ4LiZ4LiX4LmMDQor4Lit4Liz4Lie4LilIOC4q+C4sOC4o+C4tOC4meC4quC4uOC4lQ0KK+C4reC4s+C4nuC4seC4mSDguITguKXguYnguLLguKLguIrguLHguIcNCivguK3guLPguJ7guLHguJkg4Lic4Lil4Lir4LmJ4LiyDQor4Lit4Liz4Lie4Lix4LiZIOC4quC4uOC4guC4iOC4reC4lA0KK+C4reC4s+C4nuC4seC4meC4mOC5jCDguIrguKfguIHguLjguKUNCivguK3guLPguJ7guLHguJnguJ7guIfguKnguYwg4LmC4LiU4LmA4Lij4Li14LmI4Lii4LiZDQor4Lit4Liz4Lig4LiyIOC4iOC4seC4meC4l+C4o+C4hOC4uOC4k+C4suC4oOC4suC4qg0KK+C4reC4s+C4oOC4siDguJvguLLguJnguKPguLHguIHguKnguLINCivguK3guLPguKDguLIg4Liq4Li44LiC4Lit4Liy4Lij4Lih4Lii4LmMDQor4Lit4Liz4Lij4Li44LiHIOC4quC4o+C4o+C4nuC4quC4tOC4l+C4mOC4tOC5jOC4p+C4h+C4qOC5jA0KK+C4reC4s+C5hOC4niDguYHguIHguYnguKfguYHguIjguYjguKENCivguK3guLPguYTguJ4g4LiI4Li04LiV4Lij4Lih4Li04LiV4LijDQor4Lit4Liz4LmE4LieIOC5hOC4iuC4ouC4nuC4uOC4l+C4mA0KK+C4reC4s+C5hOC4niDguJbguLjguIfguJfguKPguLHguJ7guKLguYwNCivguK3guLPguYTguJ4g4Lia4Lix4LiT4LiR4Li04LiVDQor4Lit4Liz4LmE4LieIOC4nOC4peC4lOC4tQ0KK+C4reC4s+C5hOC4niDguKDguKHguKPguKrguLjguKfguKPguKPguJMNCivguK3guLPguYTguJ4g4Lij4Lix4LiV4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Liz4LmE4LieIOC4p+C4tOC4iuC4suC4l+C4suC4meC4quC4geC4uOC4pQ0KK+C4reC4s+C5hOC4niDguKrguKHguLHguITguKPguYTguJfguKINCivguK3guLPguYTguJ4g4Liq4Li44Lij4LiH4LiE4LmM4LmA4Lil4Li04LioDQor4Lit4Liz4LmE4LieIOC4reC4ouC4ueC5iOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4s+C5hOC4nuC4nuC4o+C4o+C4kyDguKfguLjguJLguLTguJjguKPguKPguKHguIjguLLguKPguLUNCivguK3guLTguYrguIHguJXguLXguYsg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Lit4Li04LiH4Lit4LijIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4quC4o+C4o+C4hOC5jA0KK+C4reC4tOC5iuC4lOC4i+C5ieC4hyDguYHguIvguYjguK7guYnguK0NCivguK3guLTguJfguJjguLTguIrguLHguKIg4Liq4Li44Lir4Lix4LiV4LiW4Liy4Lie4LijDQor4Lit4Li04LiX4LiY4Li04Lie4LilIOC5g+C4iOC4leC4seC5ieC4hw0KK+C4reC4tOC4l+C4mOC4tOC4nuC4pSDguKPguLHguIrguYPguJnguKfguKPguKPguJMNCivguK3guLTguJfguJjguLTguKLguLIg4LmB4LiI4LmI4Lih4Lih4Li04LiZDQor4Lit4Li04LiX4LiY4Li04LmC4Lij4LiI4LiZ4LmMIOC4nuC4h+C4qeC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4reC4tOC4meC4l+C4o+C4qOC4seC4geC4lOC4tOC5jCDguJfguK3guIfguJTguLUNCivguK3guLTguJnguJfguYzguK3guKMg4Lie4Lix4LiZ4LiY4Lin4Liy4Lij4Li1DQor4Lit4Li04LiZ4LiX4Li04Lij4LiyIOC4leC4seC4meC4m+C4geC4tOC4iOC4p+C4h+C4qOC5jA0KK+C4reC4tOC4meC4l+C4tOC4o+C4siDguYDguKfguIrguJjguKPguKPguKENCivguK3guLTguJnguJjguLTguJTguLIg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lit4Li04LihIOC5geC4i+C5iOC5gOC4iOC5h+C4hw0KK+C4reC4tOC5iOC4oeC4iOC4tOC4leC4leC5jCDguK3guLjguJTguKHguJjguJnguKDguLHguJfguKMNCivguK3guLTguYnguKfguJfguYnguIcg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lit4Li04Lio4Lij4LiyIOC4ouC4h+C4ouC4t+C4mQ0KK+C4reC4tOC4qOC5gOC4o+C4qCDguInguLHguJXguKPguYHguIHguYnguKfguJnguJ7guJTguKUNCivguK3guLTguKrguKPguLAg4LiI4Li04LiV4Lih4Li14Liq4Li44LiCDQor4Lit4Li04Liq4Lij4LiyIOC4quC4h+C4p+C4meC4nuC4h+C4qOC5jA0KK+C4reC4tOC4quC4quC4o+C4sCDguJzguKXguLLguYDguIHguJXguLgNCivguK3guLXguIvguLIg4Lie4Lil4Lit4Lii4LiU4Li1DQor4Lit4Li14LmL4LmA4LiV4LmH4LiBIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4reC4uOC4geC4pOC4qSDguIrguLLguI3guYDguKXguILguLINCivguK3guLjguIHguKTguKnguI/guYwg4Liq4Lix4LiH4LiC4LmM4LmB4LiB4LmJ4LinDQor4Lit4Li44LiT4Liy4LiZ4Lix4LiZ4LiX4LiZ4LmMIOC4p+C4h+C4qeC5jOC4quC4seC4iOC4iOC4suC4meC4seC4meC4l+C5jA0KK+C4reC4uOC4lOC4oSDguIHguLbguIHguIHguYnguK3guIcNCivguK3guLjguJTguKEg4LmC4LiB4Liq4Lix4Lii4Liq4Li44LiBDQor4Lit4Li44LiU4LihIOC4hOC4s+C4oOC4tOC4o+C4sOC4ouC4qA0KK+C4reC4uOC4lOC4oSDguIjguLHguJnguJfguKPguYzguYDguJfguLXguYjguKLguIcNCivguK3guLjguJTguKEg4LmA4LiI4Lij4Li04LiN4Lio4Lij4Li1DQor4Lit4Li44LiU4LihIOC4iuC4suC4o+C4teC4mOC4o+C4o+C4oQ0KK+C4reC4uOC4lOC4oSDguYHguIvguYjguJXguLHguYnguIcNCivguK3guLjguJTguKEg4LmB4LiU4LiH4Lij4Lix4Lio4Lih4Li14LmC4Liq4Lig4LiTDQor4Lit4Li44LiU4LihIOC4l+C4o+C4h+C4oeC4tQ0KK+C4reC4uOC4lOC4oSDguJjguKPguKPguKHguKDguLnguKnguLTguJUNCivguK3guLjguJTguKEg4Lia4Lix4Lin4Lij4Li44LmI4LiHDQor4Lit4Li44LiU4LihIOC4m+C4suC4meC5gOC4luC4t+C5iOC4reC4mQ0KK+C4reC4uOC4lOC4oSDguJ7guKPguKvguKHguYDguIHguJXguLjguIjguLHguJnguJfguKPguYwNCivguK3guLjguJTguKEg4Lie4Li44LmI4Lih4Lie4Lin4LiHDQor4Lit4Li44LiU4LihIOC4oOC4tOC4jeC5guC4jeC4iuC4teC4ng0KK+C4reC4uOC4lOC4oSDguKHguLjguJXguKPguJnguLTguJ7guLHguJnguJjguLjguYwNCivguK3guLjguJTguKEg4Lij4Lix4Lio4Lih4Li14Lij4Lix4LiH4Lip4Li14LmA4Lir4Lil4Li34Lit4LiHDQor4Lit4Li44LiU4LihIOC4peC4teC4l+C4reC4hw0KK+C4reC4uOC4lOC4oSDguKfguKrguLjguKfguLTguKfguLHguJLguJnguYwNCivguK3guLjguJTguKEg4Lio4Lij4Li14LiZ4Lie4LiE4Li44LiTDQor4Lit4Li44LiU4LihIOC4qOC4uOC4oOC4quC4tOC4meC4mOC4uOC5jA0KK+C4reC4uOC4lOC4oSDguKrguLHguJnguJjguLkNCivguK3guLjguJTguKEg4Liq4Li44LiU4LmE4LiY4Liq4LiHDQor4Lit4Li44LiU4LihIOC5geC4quC4meC4iOC4s+C4q+C4meC5iOC4suC4og0KK+C4reC4uOC4lOC4oSDguK3guJnguLHguJnguJXguYDguKrguJYNCivguK3guLjguJTguKEg4Lit4Li24LmJ4LiH4Liq4Li44Lin4Lij4Lij4LiT4Lie4Liy4LiZ4Li04LiKDQor4Lit4Li44LiU4Lih4LiK4Lix4LiiIOC4leC4seC5ieC4h+C4reC4oeC4o+C4qOC4tOC4o+C4tA0KK+C4reC4uOC4lOC4oeC4nuC4oyDguJXguLHguJnguIrguLHguKLguKHguIfguITguKUNCivguK3guLjguJTguKHguJ7guLHguJnguJjguLjguYwg4LiX4Li04Lie4LiX4Lix4LiqDQor4Lit4Li44LiU4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4meC4meC4l+C4tOC4p+C4o+C4o+C4mOC4gQ0KK+C4reC4uOC4lOC4oeC4qOC4o+C4tSDguIHguLTguIjguITguYnguLINCivguK3guLjguJTguKHguKjguLHguIHguJTguLTguYwg4LmC4LiB4Lih4Lil4Liy4Lij4LiK4Li44LiZDQor4Lit4Li44LiU4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4ueC4m+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4uOC4lOC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKjguYzguJ7guLTguKjguLLguKUNCivguK3guLjguJTguKHguKjguLHguIHguJTguLTguYwg4Lit4Lin4Li04Lij4Li44LiX4LiY4LiyDQor4Lit4Li44LiU4Lih4LmA4LiU4LiKIOC4iuC4suC4jeC4iuC4ouC4qOC4tuC4gQ0KK+C4reC4uOC4lOC4oyDguYPguIjguJvguLHguJnguJjguLQNCivguK3guLjguJTguKMg4Lie4Li24LmI4LiH4LiX4Lit4LiHDQor4Lit4Li44LiU4LijIOC5gOC4quC4luC4teC4ouC4o+C4oOC4suC4nuC4h+C4qeC5jA0KK+C4reC4uOC4l+C4oyDguYDguILguKHguLDguJrguLjguKXguIHguLjguKUNCivguK3guLjguJfguLHguKIg4LmB4LiB4LmI4LiZ4LmB4LiB4LmJ4LinDQor4Lit4Li44LiX4Lix4LiiIOC4hOC4ueC5geC4geC5ieC4pw0KK+C4reC4uOC4l+C4seC4oiDguYPguIjguJvguKPguLDguKrguLLguJcNCivguK3guLjguJfguLHguKIg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Lit4Li44LiX4Lix4LiiIOC5gOC4leC4iuC4sOC4o+C4h+C4hOC5jA0KK+C4reC4uOC4l+C4seC4oiDguJjguKPguKPguKHguK3guLTguJnguJfguKPguYwNCivguK3guLjguJfguLHguKIg4Lia4Li54Lij4LiT4Lin4Li04LiK4Lix4Lii4Lio4Li04Lil4Lib4LmMDQor4Lit4Li44LiX4Lix4LiiIOC4nuC4seC4meC4mOC5jOC4nuC4o+C4tuC4geC4quC5jA0KK+C4reC4uOC4l+C4seC4oiDguKHguLjguKrguLTguIHguLDguIrguLHguKINCivguK3guLjguJfguLHguKIg4Lil4Li04LmJ4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lit4Li44LiX4Lix4LiiIOC5gOC4p+C4iuC4ouC4sg0KK+C4reC4uOC4l+C4seC4oiDguKrguKfguLHguKrguJTguLTguIjguLHguJnguJfguKPguYwNCivguK3guLjguJfguLHguKIg4Liq4Li44Lin4Lij4Lij4LiT4LiwDQor4Lit4Li44LiX4Lix4LiiIOC4reC5iOC4reC4meC4o+C4seC5iOC4pw0KK+C4reC4uOC4l+C4seC4ouC4nuC4oyDguIjguLLguKPguLjguIHguLTguIjguYLguKrguKDguLINCivguK3guLjguJfguLHguKLguKfguKPguKPguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4Lin4Lix4LiS4LiZ4Liy4LiH4LiB4Li54LijDQor4Lit4Li44LiX4Lix4Lii4Lin4Lij4Lij4LiTIOC4muC4seC4p+C5geC4geC5ieC4pw0KK+C4reC4uOC4l+C4seC4ouC4p+C4o+C4o+C4kyDguKPguLHguKHguKLguLDguKPguLHguIfguKrguLQNCivguK3guLjguJfguLHguKLguKfguKPguKPguJMg4Liq4Li44LiZ4LiX4Lij4Lin4Lix4LiS4LiZ4LmMDQor4Lit4Li44LiX4Liy4LijIOC5gOC4n+C4t+C5iOC4reC4h+C4n+C4ueC4quC4tOC4mQ0KK+C4reC4uOC4l+C4tOC4qCDguJTguLjguKXguKLguIHguLLguI3guIjguJnguYwNCivguK3guLjguJfguLTguKgg4Lil4LmJ4Lin4LiZ4LmA4LiI4Lij4Li04LiNDQor4Lit4Li44LiX4Li04LioIOC5guC4reC4oOC4suC4quC4meC4s+C4nuC4suC4p+C4h+C4qOC5jA0KK+C4reC4uOC4l+C4uOC4oeC4nuC4oyDguJ7guKXguLLguKfguIfguKjguYwNCivguK3guLjguJnguLTguJXguKLguYwg4Lin4Lij4Lij4LiT4Liq4Li04LiZ4LiY4LmMDQor4Lit4Li44LmI4LiZ4LmA4Lij4Li34Lit4LiZIOC4iOC4tOC4ouC4sOC4p+C4o+C4meC4seC4meC4l+C5jA0KK+C4reC4uOC5iOC4meC5g+C4iCDguJrguLjguI3guYDguKrguKPguLTguKHguYHguJfguYkNCivguK3guLjguJrguKUg4LmB4LiB4LmJ4Lin4LiZ4Li04Lih4Li04LiV4LijDQor4Lit4Li44Lia4LilIOC4iOC4seC4meC4l+C4o+C5jOC4iuC4teC4p+C4sA0KK+C4reC4uOC4muC4pSDguIrguLfguYjguJnguIjguLTguJXguKMNCivguK3guLjguJrguKUg4LmC4LiV4Lih4Lit4LiNDQor4Lit4Li44Lia4LilIOC4meC4tOC4peC5gOC4guC4teC4ouC4pw0KK+C4reC4uOC4muC4pSDguJzguYjguLLguJnguIjguLHguIfguKvguLLguKMNCivguK3guLjguJrguKUg4Lig4Li54Lie4Li14Lij4Liw4Liq4Li44Lie4LiH4Lip4LmMDQor4Lit4Li44Lia4LilIOC5gOC4o+C4tOC4h+C4geC4oeC4pQ0KK+C4reC4uOC4muC4pSDguKjguKPguLXguIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwNCivguK3guLjguJrguKUg4Liq4Li04Lij4Li04LiI4Lix4LiZ4LiX4Lij4LiU4Li04Lil4LiBDQor4Lit4Li44Lia4LilIOC4q+C4oeC4t+C5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4reC4uOC4muC4pSDguK3guLjguJvguYDguKrguKfguLUNCivguK3guLjguJrguKXguKPguLHguJXguJnguYwg4LiI4Li04LiV4LiV4Liw4LmA4Liq4LiZ4Li14Lii4LmMDQor4Lit4Li44Lia4Lil4Lij4Lix4LiV4LiZ4LmMIOC5geC4nuC5iOC4h+C4meC4hOC4ow0KK+C4reC4uOC4muC4peC4o+C4seC4leC4meC5jCDguYDguKrguKPguLXguYDguIjguLXguKLguJrguJvguKPguLXguIrguLINCivguK3guLjguJrguKXguKfguKPguKPguJMg4LmA4Lib4Lij4Lih4LiI4Li04LiV4LiV4LmM4LiK4Li34LmI4LiZDQor4Lit4Li44Lia4Lil4Lio4Lij4Li1IOC4leC5iOC4suC4ouC5geC4leC5ieC4oeC4l+C4reC4hw0KK+C4reC4uOC4m+C4meC4seC4meC4l+C5jCDguYDguJnguJXguKPguKrguKfguYjguLLguIcNCivguK3guLjguKHguLIg4Lit4Lix4LiE4Lij4Lil4Li04LiC4Li04LiVDQor4Lit4Li44Lih4Liy4Lie4LijIOC4nuC4seC4kuC4meC5gOC4quC4o+C4tQ0KK+C4reC4uOC4oeC4suC4oOC4o+C4k+C5jCDguJXguLTguIHguKfguLHguJLguJnguLLguJnguJnguJfguYwNCivguK3guLjguKLguK7guKfguIcg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lit4Li44Lij4LiU4Li1IOC4quC4suC4k+C4sOC5gOC4quC4mQ0KK+C4reC4uOC4o+C4siDguYHguIHguYnguKfguIHguKXguKENCivguK3guLjguKPguLTguJkg4Liq4Li04LiZ4Lio4Li24LiB4Liq4LiH4LiaDQor4Lit4Li44Lil4Li04LiVIOC4m+C4seC4l+C4oeC4suC4peC4seC4og0KK+C4reC4uOC4qeC4k+C4siDguKjguKPguLXguKrguLPguYDguKPguLTguIcNCivguK3guLjguKnguJPguLUg4Liq4Li44LiZ4Liy4LmC4Lie4LiY4Li04LmMDQor4Lit4Li44Lip4LiT4Li14Lii4LmMIOC4iuC4tOC4meC4nuC4seC4kuC4meC4suC4geC4suC4ow0KK+C4reC4uOC4qeC4k+C4teC4ouC5jCDguJrguLjguI3guYDguKrguJnguYjguKvguYwNCivguK3guLjguKnguJPguLXguKLguYwg4Lin4LiH4Lio4LmM4Lib4Lij4Liy4LiT4Li14LiB4Li44LilDQor4Lit4Li44Lip4LiT4Li14Lii4LmMIOC4reC4suC4iOC4reC4o+C4uOC4kw0KK+C4reC4uOC4qeC4siDguYDguIHguLXguKLguKPguJXguLTguKPguLDguJrguLTguKUNCivguK3guLjguKnguLIg4LiI4Li04LiV4LiV4LmM4LiI4Lij4Lij4Lii4Liy4LiB4Li44LilDQor4Lit4Li44Lip4LiyIOC5guC4iuC4hOC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4uOC4qeC4siDguJfguKfguLXguKrguLjguJfguJjguLTguYwNCivguK3guLjguKnguLIg4Lia4Lix4Lin4Lio4Li04Lij4Li0DQor4Lit4Li44Lip4LiyIOC4nuC4h+C4qeC5jOC4nuC4pOC4geC4qeC4sg0KK+C4reC4uOC4qeC4siDguKHguYjguKfguIfguIjguLPguIHguLHguJQNCivguK3guLjguKnguLIg4LmA4Lil4LmH4LiB4Lii4Li04LmJ4LihDQor4Lit4Li44Lip4LiyIOC4qOC4o+C4teC5g+C4qg0KK+C4reC4uOC4qeC4siDguKrguLjguILguKrguJnguK3guIcNCivguK3guLjguKnguLIg4Lit4Lii4Li54LmI4LmB4LieDQor4Lit4Li44Lip4Liy4Lin4LiU4Li1IOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4uOC4quC4o+C4siDguJvguKPguLDguJfguLXguJsg4LiTIOC4luC4peC4suC4hw0KK+C4reC4uOC4quC4suC4q+C5jCDguKjguLTguKXguJvguLUNCivguK3guLjguYDguJfguJkg4LmA4LiJ4Lil4Li04Lih4Lie4Lij4Lij4Lix4LiV4LiZ4LiyDQor4Lit4Li44LmA4LiX4LiZIOC5gOC4quC4o+C4teC5gOC4lOC5iOC4meC4iuC4seC4og0KK+C4reC4uOC5hOC4oyDguIHguLjguKjguKXguKrguKPguYnguLLguIcNCivguK3guLjguYTguKMg4LiE4Lix4LiH4LiE4Liw4LmA4LiB4LiV4Li4DQor4Lit4Li44LmE4LijIOC5gOC4iOC4teC4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4uOC5hOC4oyDguYHguIvguYjguKfguYjguK3guIcNCivguK3guLjguYTguKMg4LmA4LiV4Li14Lii4Liw4LmA4Lie4LmH4LiK4LijDQor4Lit4Li44LmE4LijIOC4meC4p+C4oeC5geC4q+C4peC4oQ0KK+C4reC4uOC5hOC4oyDguJrguLjguJnguLLguKPguLHguIHguKnguYwNCivguK3guLjguYTguKMg4Lie4LiH4Lip4LmM4Liq4Lin4LmI4Liy4LiHDQor4Lit4Li44LmE4LijIOC5guC4nuC4mOC4tOC5jOC4kOC4tOC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4reC4uOC5hOC4oyDguYDguKHguIbguYTguJ7guJrguLnguKXguKLguYzguKfguLHguJLguJnguLINCivguK3guLjguYTguKMg4Lil4Li04LmJ4LiZ4LmB4LiB4LmJ4LinDQor4Lit4Li44LmE4LijIOC4qOC4o+C4pOC4l+C4mOC4tOC5jOC4iuC4tOC4h+C4iuC4seC4og0KK+C4reC4uOC5hOC4oyDguKrguKfguLHguKrguJTguLTguYzguYDguInguKINCivguK3guLjguYTguKMg4Liq4Li44Lin4Li04Lin4Lix4LiS4LiZ4LiK4Lix4Lii4LiB4Li44LilDQor4Lit4Li44LmE4LijIOC4reC4o+C4o+C4hOC5gOC4quC4peC4sg0KK+C4reC4uOC5hOC4o+C4nuC4oyDguYHguIvguYjguKXguLTguYnguKENCivguK3guLjguYTguKPguKPguLHguJXguJnguYwg4LiJ4Liy4Lii4LiK4Li54Lin4LiH4Lip4LmMDQor4Lit4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC4quC4q+C4p+C4seC4mOC4meC4sA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguIHguLPguJvguLHguYjguJnguJfguK3guIcNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LiI4Lij4Li54LiN4Liq4Lih4Li04LiX4LiY4Li04LmMDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC5gOC4iuC4suC4p+C4geC4tOC4leC4leC4tOC5guC4o+C4iOC4meC5jA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguYDguJfguJ7guJvguKPguLDguJfguLLguJnguIHguLTguIgNCivguK3guLjguYTguKPguKfguKPguKPguJMg4Lib4Lij4Li14Lib4Lij4Liw4LiX4Li44LihDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4nuC4tuC5iOC4h+C5g+C4q+C4jeC5iA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguYHguKLguYnguKHguJnguLTguKLguKENCivguK3guLjguYTguKPguKfguKPguKPguJMg4Lin4Li04LiI4Li04LiV4Lij4Lia4Lix4LiT4LiR4Li04LiV4LiB4Li44LilDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4quC4suC4hOC4o+C4quC4tOC4meC4mOC4uOC5jA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguKvguKfguLHguYjguJnguKfguLDguJTguLUNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LmA4Lit4Li14LmI4Lii4Lih4Lib4Lij4Liy4LiT4Li14LiVDQor4Lit4Li54LmK4LiUIOC4lOC4s+C5gOC4geC4tOC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4reC4ueC5iyDguKHguLLguKXguLLguYDguKXguYfguIENCivguK3guYLguJPguJfguLHguKIg4LmA4LiI4LiV4LiZ4LmA4Liq4LiZDQor4Lit4LmC4LiT4LiX4Lix4LiiIOC4p+C4h+C4qOC5jOC5gOC4oeC4mOC4teC4quC4uOC5gOC4oeC4mA0KK+C4reC5guC4meC4iuC4siDguKrguLjguKfguKPguKPguJPguKPguLHguJXguJkNCivguK3guYLguJnguJfguLHguKIg4Lit4Lix4Lio4Lin4Lib4Lij4Liw4Lig4LiyDQor4LmA4Lit4LiBIOC4iuC4seC4j+C4reC4meC4seC4meC4leC5jA0KK+C5gOC4reC4gSDguKrguKLguLLguKHguKfguLLguKXguLINCivguYDguK3guIHguIrguLHguKIg4LiB4Lit4LiH4LmB4LiB4LmJ4LinDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4ieC4peC4reC4h+C4m+C4tOC4ouC4o+C4seC4leC4meC5jA0KK+C5gOC4reC4geC4iuC4seC4oiDguYDguJTguIrguKjguLTguKPguLTguJ7guLHguJnguJjguYwNCivguYDguK3guIHguIrguLHguKIg4Lia4Li44Lip4Lii4Lia4Lij4Li04Lia4Li54Lij4LiT4LmM4LmC4LiK4LiV4Li0DQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4oOC4seC4l+C4o+C4meC4uOC4mOC4suC4nuC4ow0KK+C5gOC4reC4geC4iuC4seC4oiDguKfguYjguK3guIfguJrguKPguKPguIjguIfguKvguLLguKMNCivguYDguK3guIHguIrguLHguKIg4Liq4Li04Lij4Li04LiK4Li54Liq4Li04LiZ4Lin4LiH4Lio4LmMDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4reC4seC4qOC4p+C5guC4geC4p+C4tOC4lw0KK+C5gOC4reC4geC4nOC4pSDguK3guKDguLTguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguIHguKfguLUNCivguYDguK3guIHguJ7guKMg4LiB4Lix4LiH4Lin4Liy4Lis4LmE4LiB4Lij4LmE4Lie4Lio4Liy4LilDQor4LmA4Lit4LiB4Lie4Lix4LiZ4LiY4LmMIOC4iuC5iOC4suC4h+C5gOC4reC4geC4p+C4h+C4qOC5jA0KK+C5gOC4reC4geC4ouC4hyDguYHguIvguYjguYDguIvguLXguKLguKcNCivguYDguK3guIHguKPguLHguKjguKHguLUg4Lit4Lin4Lii4Liq4Li04LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4Lit4LiB4Lij4Li04LiZ4LiX4Lij4LmMIOC5gOC4muC4teC5ieC4ouC4p+C5hOC4oQ0KK+C5gOC4reC4geC4p+C4seC4kuC4meC5jCDguIrguLHguKLguKfguLHguJXguKMNCivguYDguK3guIHguKjguLHguIHguJTguLTguYwg4Lie4Li04Liq4Li44LiX4LiY4Li04LiK4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lit4LiB4Liq4Li04LiX4LiY4Li04LmMIOC5g+C4iOC4muC4uOC4jQ0KK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jCDguKjguLTguKfguLLguKfguLjguJgNCivguYDguK3guIHguYDguIrguLLguKfguJnguYwg4LmA4Lie4Li04LmI4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li44LiCDQor4LmA4Lit4LiZ4LiBIOC4geC4tOC4iOC5hOC4nuC4qOC4suC4pQ0KK+C5gOC4reC4meC4gSDguIjguLHguJnguKPguK3guJQNCivguYDguK3guJnguIEg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LmA4Lit4LiZ4LiBIOC5gOC4l+C4teC4ouC4meC5gOC4geC4qeC4oQ0KK+C5gOC4reC4meC4gSDguJvguKfguLTguJTguLLguKDguLINCivguYDguK3guJnguIEg4LmC4Lie4LiY4Li04LmM4LiZ4Li04LmI4LihDQor4LmA4Lit4LiZ4LiBIOC4peC4tOC4guC4tOC4leC4leC4o+C4sOC4geC4ueC4peC5gOC4peC4tOC4qA0KK+C5gOC4reC4meC4gSDguKjguKPguLXguYHguKrguIcNCivguYDguK3guJnguIEg4LmB4Liq4LiH4LiJ4Liy4LiiDQor4LmA4Lit4LiZ4LiBIOC4reC4ueC5iOC4muC4seC4h+C4quC4tOC4mQ0KK+C5gOC4reC4oeC4reC4oyDguIHguKXguLTguYjguJnguKHguLLguKXguLINCivguYDguK3guKHguK3guKMg4LmA4LiJ4Lil4Li04Lih4LiZ4LiZ4LiX4LmMDQor4LmA4Lit4Lih4Lit4LijIOC4meC4suC4hOC4oOC4ueC4oeC4tA0KK+C5gOC4reC4oeC4reC4oyDguYDguJ/guLfguYjguK3guIfguKfguLTguJfguKLguLLguIHguLLguKMNCivguYDguK3guKHguK3guKMg4Lio4Lij4Li14LiE4LiH4Lio4Lij4Li1DQor4LmA4Lit4Lih4Lit4LijIOC4reC4o+C4uOC4k+C4ouC4h+C4iOC4tOC4lQ0KK+C5gOC4reC4qiDguYDguK3guYfguKENCivguYDguK3guLTguJrguKXguLLguKAg4LmA4Lil4Li04Lio4Lin4Li04LiY4Li1DQor4LmA4Lit4Li14Lii4Liw4LmA4LiI4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4reC4teC5iOC4ouC4oSDguJrguLjguI3guITguIcNCivguYDguK3guLXguYjguKLguKEg4Lit4Lix4Lio4Lin4Lik4LiX4LiY4Li04LmM4LiB4Li44LilDQor4LmA4Lit4Li14LmI4Lii4Lih4LiL4LmJ4LiHIOC5geC4i+C5iOC4leC4seC4mQ0KK+C5gOC4reC4teC5iOC4ouC4oeC5gOC4iOC4teC4ouC4hyDguYHguIvguYjguYLguJXguYvguKcNCivguYDguK3guLXguYnguKLguIcg4LmB4LiL4LmI4LmC4LiV4LmK4LiwDQor4LmA4Lit4Li14LmJ4Lii4Lih4LmA4LiL4Li14LmJ4LiiIOC5geC4i+C5iOC4meC4tOC5iOC4oQ0KK+C5gOC4reC4teC5ieC4ouC4q+C5iOC4suC4h+C4geC4p+C4hyDguYHguIvguYjguYDguK3guLXguYnguKINCivguYDguK3guLfguYnguK0g4Lin4LiH4Lip4LmM4Liq4Liy4LiB4LmJ4LitDQor4LmA4Lit4Li34LmJ4Lit4LiI4Li04LiV4LiV4LmMIOC4nOC4peC4reC4tOC4meC4l+C4o+C5jA0KK+C5gOC4reC4t+C5ieC4reC4meC4nuC4oyDguIjguLTguKPguLLguJnguJnguJfguYwNCivguYDguK3guLfguYnguK3guKHguJ7guKMg4LiB4Lix4Lil4Lib4LmM4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmM4LiB4Li44LilDQor4LmA4Lit4Li34LmJ4Lit4Lih4Lie4LijIOC4nOC4uOC4lOC4nOC4suC4lA0KK+C5gOC4reC4t+C5ieC4reC4oeC4nuC4oyDguYTguKvguKHguJ7guLTguKHguJ7guYwNCivguYDguK3guLfguYnguK3guK3guLLguKPguLUg4Lin4LiH4Lio4LmM4Lin4Li04LiR4Li54Lij4Lii4Liy4Lie4LijDQor4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C5gOC4reC5h+C4h+C4ouC4tOC5ieC4pyDguYHguIvguYjguYDguKLguLXguYjguKLguIcNCivguYDguK3guYfguJnguJTguLkg4Lio4Lij4Li14Lia4Li44LiN4LmA4Lij4Li34Lit4LiHDQor4LmB4Lit4LiZIOC5geC4quC4h+C4qOC4o+C4tQ0KK+C5geC4reC4meC5guC4l+C4meC4teC5iCDguYDguJXguLXguKLguIcNCivguYHguK3guYvguKcg4LiB4Liz4Lih4Liw4Lir4Lii4Li14LmIDQor4LmC4Lit4Lig4LiyIOC4oOC4seC4l+C4o+C4mOC4o+C4o+C4oeC4muC4suC4pQ0KK+C5guC4reC4oOC4suC4qiDguYDguIfguLTguJnguYDguJXguYfguKHguYDguJvguLXguYjguKLguKENCivguYLguK3guKDguLLguKog4LiX4Lij4Lix4Lie4Lii4LmM4Lit4Liy4Lig4Liy4LiB4LijDQor4LmC4Lit4Lig4Liy4LiqIOC4nuC4o+C4q+C4oeC4o+C4seC4leC4meC4nuC4h+C4qOC5jA0KK+C5guC4reC4oOC4suC4qiDguKXguLTguKXguLTguJXguIHguLHguJnguKLguLLguIHguLjguKUNCivguYLguK3guKDguLLguKog4Liq4Li44Lie4Lij4Lij4LiT4LmC4Lit4LiK4Liy4LiB4Li44LilDQor4LmC4Lit4Lij4LiqIOC4p+C4h+C4qeC5jOC4quC4tOC4l+C4mOC4tOC5jA0KK+C5guC4reC4quC4liDguYLguIHguKjguLTguJkNCivguYLguK3guKzguLLguKMg4Lie4Li24LmI4LiH4Liq4LiZ4Li04LiXDQor4LmC4Lit4LmJ4Lin4LmA4LiL4LmH4LiHIOC5geC4i+C5iOC4reC4seC5iuC4hw0KK+C5hOC4reC5gOC4i+C4meC5guC4ruC5gOC4n+C4reC4o+C5jCDguYTguK0g4Lit4Li1DQor4Liu4LiB4LmA4Liu4LiHIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4ruC5iOC4h+C4ruC4p+C4lCDguYHguIvguYjguYLguIfguYnguKcNCivguK7guKfguIfguYDguIjguYfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liu4Lin4LiiIOC5geC4i+C5iOC4q+C4peC4suC4og0KK+C4ruC5iOC4reC4reC4tuC5ieC4hyDguYHguIvguYjguYDguJXguLXguKLguKcNCivguK7guLHguIfguJXguLXguYsg4LiV4Lix4LmJ4LiH4Lih4Li44LiI4Lil4Li04LiZ4LiX4LmMDQor4Liu4Lix4LmI4LiH4LmA4LiI4Li14LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4ruC4seC5ieC4h+C5gOC4geC4teC4ouC4hyDguYHguIvguYjguYDguK3guLXguYnguKLguKcNCivguK7guLHguYnguJnguIfguYnguKfguJkg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4Liu4Lix4LmI4Lin4Lib4Li04LiUIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4ruC4seC5ieC4p+C5g+C4iuC5iSDguYHguIvguYjguYDguKXguYnguLINCivguK7guLLguKLguLnguKPguIvguLTguIfguKvguYwg4LiB4Lix4Lih4Lia4Li14Lij4LmMDQor4Liu4Liy4Lij4Li14LmI4Lib4Liy4LiL4Liy4LiZIOC4i+C4suC4ruC4tQ0KK+C4ruC4tOC4oSDguYHguIvguYjguKvguKXguYjguK0NCivguK7guLjguIEg4Lie4Lij4Lir4Lih4Lik4LiX4LiY4Li04LmA4LiU4LiK4LiyDQor4Liu4Li44Lii4LiB4Li44LiHIOC5geC4i+C5iOC4i+C4tA0KK+C4ruC4uOC4ouC5gOC4h+C5h+C4gSDguYHguIvguYjguYDguK3guYfguIcNCivguK7guLjguYjguKLguK7guKfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liu4Li44LmJ4Lii4Lil4Lix4LmJ4LiHIOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC4peC4seC4geC4qeC4k+C4sA0KK+C5gOC4ruC4hyDguKjguLTguKPguLTguKHguIfguITguKXguKPguLHguJXguJnguYwNCivguYDguK7guKEg4Lij4Li44LmI4LiH4Liq4LiB4Li44LilDQor4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC4reC5ieC4suC4pw0KK+C5gOC4ruC4teC4ouC4h+C4geC4teC5iCDguYHguIvguYjguYDguKvguLXguYjguKINCivguYDguK7guLXguYnguKLguIfguIvguLTguKEg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LmC4Liu4LiHIOC5gOC4reC4geC4mOC4meC4suC4meC4seC4meC4l+C5jA0KK+C5hOC4ruC5iSDguYDguKXguLTguKjguKXguLTguILguLTguJXguJjguJnguLTguJXguIHguLjguKUNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9ub3JtcGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL25vcm1wZXJmLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYmJhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9ub3JtcGVyZi5wbApAQCAtMCwwICsxLDUzOCBAQAorIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKwordXNlIHN0cmljdDsKKworIyBBc3N1bWUgd2UgYXJlIHJ1bm5pbmcgd2l0aGluIHRoZSBpY3U0aiByb290IGRpcmVjdG9yeQordXNlIGxpYiAnc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYnOworCit1c2UgRGF0YXNldDsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IGNsYXNzCitteSAkVEVTVENMQVNTID0gJ2NvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdCc7IAorCisjIE1ldGhvZHMgdG8gYmUgdGVzdGVkLiAgRWFjaCBwYWlyIHJlcHJlc2VudHMgYSB0ZXN0IG1ldGhvZCBhbmQKKyMgYSBiYXNlbGluZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbi4KK215IEBNRVRIT0RTICA9ICgKKyAgCQlbJ1Rlc3RJQ1VfTkZEX05GQ19UZXh0JywgICdUZXN0SkRLX05GRF9ORkNfVGV4dCddLAorCQlbJ1Rlc3RJQ1VfTkZDX05GQ19UZXh0JywgICdUZXN0SkRLX05GQ19ORkNfVGV4dCddLAorICAgICAgICAgICAgICAgIFsnVGVzdElDVV9ORkNfTkZEX1RleHQnLCAgJ1Rlc3RKREtfTkZDX05GRF9UZXh0J10sCisgICAgICAgICAgICAgICAgWydUZXN0SUNVX05GQ19PcmlnX1RleHQnLCAnVGVzdEpLRF9ORkNfT3JpZ19UZXh0J10sCisJCVsnVGVzdElDVV9ORkRfTkZDX1RleHQnLCAgJ1Rlc3RKREtfTkZEX05GQ19UZXh0J10sCisgICAgICAgICAgICAgICAgWydUZXN0SUNVX05GRF9ORkRfVGV4dCcsICAnVGVzdEpES19ORkRfTkZEX1RleHQnXSwKKyAgICAgICAgICAgICAgICBbJ1Rlc3RJQ1VfTkZEX09yaWdfVGV4dCcsICdUZXN0SkRLX05GRF9PcmlnX1RleHQnXSwgCisgICAgICAgICAgICAgICApOworCisjIFBhdHRlcm5zIHdoaWNoIGRlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdXNlZCBmb3IgdGVzdGluZy4KKworbXkgJFNPVVJDRURJUiA9IkM6XFx3b3JrXFxpY3U0alxcc3JjXFxjb21cXGlibVxcaWN1XFxkZXZcXHRlc3RcXHBlcmZcXGRhdGFcXGNvbGxhdGlvblxcIjsKKworbXkgQE9QVElPTlMgPSAoCisjICAgICAgICAgICAgICAgICAgICAgIHNyYyB0ZXh0ICAgICAgICAgIAkgIHNyYyBlbmNvZGluZyAgbW9kZSAgCisJCSAgICBbICJUZXN0TmFtZXNfU2VyYmlhblNILnR4dCIsICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImFyYWJpYy50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiZnJlbmNoLnR4dCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJncmVlay50eHQiLCAgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImhlYnJldy50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiaGluZGkudHh0IiAsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJqYXBhbmVzZS50eHQiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImtvcmVhbi50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAicy1jaGluZXNlLnR4dCIsICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJmcmVuY2gudHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImdyZWVrLnR4dCIsICAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiaGVicmV3LnR4dCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJoaW5kaS50eHQiICwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImphcGFuZXNlLnR4dCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAia29yZWFuLnR4dCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJzLWNoaW5lc2UudHh0IiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImFyYWJpYy5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiY3plY2guaHRtbCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJkYW5pc2guaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImVuZ2xpc2guaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZXNwZXJhbnRvLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJmcmVuY2guaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImdlb3JnaWFuLmh0bWwiLCAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZ2VybWFuLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJncmVlay5odG1sIiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImhlYnJldy5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiaGluZGkuaHRtbCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJpY2VsYW5kaWMuaHRtbCIsICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImludGVybGluZ3VhLmh0bWwiLCAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiaXRhbGlhbi5odG1sIiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJqYXBhbmVzZS5odG1sIiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImtvcmVhbi5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAibGl0aHVhbmlhbi5odG1sIiwgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJtYWx0ZXNlLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInBlcnNpYW4uaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicG9saXNoLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJwb3J0dWd1ZXNlLmh0bWwiLCAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInJvbWFuaWFuLmh0bWwiLCAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicnVzc2lhbi5odG1sIiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJzLWNoaW5lc2UuaHRtbCIsICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInNwYW5pc2guaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAic3dlZGlzaC5odG1sIiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJ0LWNoaW5lc2UuaHRtbCIsICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgIndlbHNoLmh0bWwiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0FzaWFuLnR4dCIsICAgICAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfQ2hpbmVzZS50eHQiLCAgICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19KYXBhbmVzZS50eHQiLCAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0phcGFuZXNlX2gudHh0IiwgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfSmFwYW5lc2Vfay50eHQiLCAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19Lb3JlYW4udHh0IiwgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0xhdGluLnR4dCIsICAgICAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfU2VyYmlhblNILnR4dCIsICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19TZXJiaWFuU1IudHh0IiwgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX1RoYWkudHh0IiwgICAgICAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0bmFtZXNfUnVzc2lhbi50eHQiLCAgICAgICJVVEYtOCIsICJsIl0sIAorICAgICAgICAgICAgICApOworCitteSAkQ0FMSUJSQVRFID0gMjsgIyBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciBpbml0aWFsIGNhbGlicmF0aW9uCitteSAkRFVSQVRJT04gPSAxMDsgIyBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciBlYWNoIHBhc3MKK215ICROVU1QQVNTRVMgPSA0OyAjIG51bWJlciBvZiBwYXNzZXMuICBJZiA+IDEgdGhlbiB0aGUgZmlyc3QgcGFzcworICAgICAgICAgICAgICAgICAgICMgaXMgZGlzY2FyZGVkIGFzIGEgSklUIHdhcm0tdXAgcGFzcy4KKworbXkgJFRBQkxFQVRUUiA9ICdCT1JERVI9IjEiIENFTExQQURESU5HPSI0IiBDRUxMU1BBQ0lORz0iMCInOworCitteSAkUExVU19NSU5VUyA9ICImcGx1c21uOyI7CisKK2lmICgkTlVNUEFTU0VTIDwgMykgeworICAgIGRpZSAiTmVlZCBhdCBsZWFzdCAzIHBhc3Nlcy4gIE9uZSBpcyBkaXNjYXJkZWQgKEpJVCB3YXJtdXApIGFuZCBuZWVkIHR3byB0byBoYXZlIDEgZGVncmVlIG9mIGZyZWVkb20gKHQgZGlzdHJpYnV0aW9uKS4iOworfQorCitteSAkT1VUOyAjIHNlZSBvdXQoKQorCittYWluKCk7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgLi4uCitzdWIgbWFpbiB7CisgICAgbXkgJGRhdGUgPSBsb2NhbHRpbWU7CisgICAgbXkgJHRpdGxlID0gIklDVTRKTkkgUGVyZm9ybWFuY2UgVGVzdCAkZGF0ZSI7CisKKyAgICBteSAkaHRtbCA9ICRkYXRlOworICAgICRodG1sID1+IHMvOi8vZzsgIyAnOicgaWxsZWdhbAorICAgICRodG1sID1+IHMvXHMqXGQrJC8vOyAjIGRlbGV0ZSB5ZWFyCisgICAgJGh0bWwgPX4gcy9eXHcrXHMqLy87ICMgZGVsZXRlIGRvdworICAgICRodG1sID0gInBlcmYgJGh0bWwuaHRtbCI7CisKKyAgICBvcGVuKEhUTUwsIj4kaHRtbCIpIG9yIGRpZSAiQ2FuJ3Qgd3JpdGUgdG8gJGh0bWw6ICQhIjsKKworICAgIHByaW50IEhUTUwgPDxFT0Y7Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8SFRNTD4KKyAgIDxIRUFEPgorICAgICAgPFRJVExFPiR0aXRsZTwvVElUTEU+CisgICA8L0hFQUQ+CisgICA8Qk9EWT4KK0VPRgorICAgIHByaW50IEhUTUwgIjxIMT4kdGl0bGU8L0gxPlxuIjsKKworICAgIHByaW50IEhUTUwgIjxIMj4kVEVTVENMQVNTPC9IMj5cbiI7CisKKyAgICBteSAkcmF3ID0gIiI7CisKKyAgICBmb3IgbXkgJG1ldGhvZFBhaXIgKEBNRVRIT0RTKSB7CisKKyAgICAgICAgbXkgJHRlc3RNZXRob2QgPSAkbWV0aG9kUGFpci0+WzBdOworICAgICAgICBteSAkYmFzZWxpbmVNZXRob2QgPSAkbWV0aG9kUGFpci0+WzFdOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSPjxUUj48VEQ+XG4iOworICAgICAgICBwcmludCBIVE1MICI8UD48Qj4kdGVzdE1ldGhvZCB2cy4gJGJhc2VsaW5lTWV0aG9kPC9CPjwvUD5cbiI7CisgICAgICAgIAorICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUiBCR0NPTE9SPVwiI0NDRkZGRlwiPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD5PcHRpb25zPC9URD48VEQ+JHRlc3RNZXRob2Q8L1REPiI7CisgICAgICAgIHByaW50IEhUTUwgIjxURD4kYmFzZWxpbmVNZXRob2Q8L1REPjxURD5SYXRpbzwvVEQ+PC9UUj5cbiI7CisKKyAgICAgICAgJE9VVCA9ICcnOworCisgICAgICAgIGZvciBteSAkcGF0IChAT1BUSU9OUykgeworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD5AJHBhdFswXSwgQCRwYXRbMl08L1REPlxuIjsKKworICAgICAgICAgICAgb3V0KCI8UD48VEFCTEUgJFRBQkxFQVRUUiBXSURUSD1cIjEwMCVcIj4iKTsKKworICAgICAgICAgICAgIyBtZWFzdXJlIHRoZSB0ZXN0IG1ldGhvZAorICAgICAgICAgICAgb3V0KCI8VFI+PFREPiIpOworICAgICAgICAgICAgcHJpbnQgIlxuJHRlc3RNZXRob2QgW0AkcGF0XVxuIjsKKyAgICAgICAgICAgIG15ICR0ID0gbWVhc3VyZTIoJHRlc3RNZXRob2QsICRwYXQsIC0kRFVSQVRJT04pOworICAgICAgICAgICAgb3V0KCI8L1REPjwvVFI+Iik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+IiwgZm9ybWF0U2Vjb25kcyg0LCAkdC0+Z2V0TWVhbigpLCAkdC0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiL2V2ZW50PC9URD5cbiI7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSBiYXNlbGluZSBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbkJlZ2luICRiYXNlbGluZU1ldGhvZCBbQCRwYXRdXG4iOworICAgICAgICAgICAgbXkgJGIgPSBtZWFzdXJlMigkYmFzZWxpbmVNZXRob2QsICRwYXQsIC0kRFVSQVRJT04pOworICAgICAgICAgICAgb3V0KCI8L1REPjwvVFI+Iik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+IiwgZm9ybWF0U2Vjb25kcyg0LCAkYi0+Z2V0TWVhbigpLCAkdC0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiL2V2ZW50PC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPC9UQUJMRT48L1A+Iik7CisKKyAgICAgICAgICAgICMgb3V0cHV0IHJhdGlvCisgICAgICAgICAgICBteSAkciA9ICR0LT5kaXZpZGUoJGIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPjxCPiIsIGZvcm1hdFBlcmNlbnQoMywgJHItPmdldE1lYW4oKSwgJHItPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjwvQj48L1REPjwvVFI+XG4iOworICAgICAgICB9CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPC9UQUJMRT48L1A+XG4iOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPlJhdyBkYXRhOjwvUD5cbiI7CisgICAgICAgIHByaW50IEhUTUwgJE9VVDsKKyAgICAgICAgcHJpbnQgSFRNTCAiPC9UQUJMRT48L1A+XG4iOworICAgIH0KKworICAgIHByaW50IEhUTUwgPDxFT0Y7CisgICA8L0JPRFk+Cis8L0hUTUw+CitFT0YKKyAgICBjbG9zZShIVE1MKSBvciBkaWUgIkNhbid0IGNsb3NlICRodG1sOiAkISI7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0IHsKKyAgICAkT1VUIC49IGpvaW4oJycsIEBfKTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcHBlbmQgdGV4dCB0byB0aGUgZ2xvYmFsIHZhcmlhYmxlICRPVVQKK3N1YiBvdXRsbiB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXykgLiAiXG4iOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYSBEYXRhc2V0IG9iamVjdCwgc2NhbGVkIGJ5IGl0ZXJhdGlvbnMgcGVyIHBhc3MgYW5kCisjICAgICAgICAgZXZlbnRzIHBlciBpdGVyYXRpb24sIHRvIGdpdmUgdGltZSBwZXIgZXZlbnQKKyMKK3N1YiBtZWFzdXJlMiB7CisgICAgbXkgQGRhdGEgPSBtZWFzdXJlMShAXyk7CisgICAgbXkgJGl0ZXJQZXJQYXNzID0gc2hpZnQoQGRhdGEpOworICAgIG15ICRldmVudFBlckl0ZXIgPSBzaGlmdChAZGF0YSk7CisKKyAgICBzaGlmdChAZGF0YSkgaWYgKEBkYXRhID4gMSk7ICMgZGlzY2FyZCBmaXJzdCBydW4KKworICAgIG15ICRkcyA9IERhdGFzZXQtPm5ldyhAZGF0YSk7CisgICAgJGRzLT5zZXRTY2FsZSgxLjBlLTMgLyAoJGl0ZXJQZXJQYXNzICogJGV2ZW50UGVySXRlcikpOworICAgICRkczsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGFycmF5IG9mOgorIyAgICAgICAgIFswXSBpdGVyYXRpb25zIHBlciBwYXNzCisjICAgICAgICAgWzFdIGV2ZW50cyBwZXIgaXRlcmF0aW9uCisjICAgICAgICAgWzIuLl0gbXMgcmVwb3J0ZWQgZm9yIGVhY2ggcGFzcywgaW4gb3JkZXIKKyMKK3N1YiBtZWFzdXJlMSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkaXRlckNvdW50ID0gc2hpZnQ7ICMgYWN0dWFsbHkgbWlnaHQgYmUgLXNlY29uZHMvcGFzcworCisgICAgb3V0KCI8UD5NZWFzdXJpbmcgJG1ldGhvZCBmb3IgaW5wdXQgZmlsZSBAJHBhdFswXSBpbiBAJHBhdFsyXSAsICIpOworICAgIGlmICgkaXRlckNvdW50ID4gMCkgeworICAgICAgICBvdXQoIiRpdGVyQ291bnQgaXRlcmF0aW9ucy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCgtJGl0ZXJDb3VudCwgIiBzZWNvbmRzL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfQorCisgICAgIyBpcyAkaXRlckNvdW50IGFjdHVhbGx5IC1zZWNvbmRzPworICAgIGlmICgkaXRlckNvdW50IDwgMCkgeworCisgICAgICAgICMgY2FsaWJyYXRlOiBlc3RpbWF0ZSBtcy9pdGVyYXRpb24KKyAgICAgICAgcHJpbnQgIkNhbGlicmF0aW5nLi4uIjsKKyAgICAgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAkQ0FMSUJSQVRFICk7CisgICAgICAgIHByaW50ICJkb25lLlxuIjsKKworICAgICAgICBteSBAZGF0YSA9IHNwbGl0KC9ccysvLCAkdFswXS0+WzJdKTsKKyAgICAgICAgbXkgJHRpbWVQZXJJdGVyID0gMS4wZS0zICogJGRhdGFbMF0gLyAkZGF0YVsyXTsKKyAgICAKKyAgICAgICAgIyBkZXRlcm1pbmUgaXRlcmF0aW9ucy9wYXNzCisgICAgICAgICRpdGVyQ291bnQgPSBpbnQoLSRpdGVyQ291bnQgLyAkdGltZVBlckl0ZXIgKyAwLjUpOworCisgICAgICAgIG91dCgiPFA+Q2FsaWJyYXRpb24gcGFzcyAoJENBTElCUkFURSBzZWMpOiAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVswXSBtcywgIik7CisgICAgICAgIG91dCgiJGRhdGFbMl0gaXRlcmF0aW9ucyA9ICIpOworICAgICAgICBvdXQoZm9ybWF0U2Vjb25kcyg0LCAkdGltZVBlckl0ZXIpLCAiL2l0ZXJhdGlvbjxCUj5cbiIpOworICAgIH0KKyAgICAKKyAgICAjIHJ1biBwYXNzZXMKKyAgICBwcmludCAiTWVhc3VyaW5nICRpdGVyQ291bnQgaXRlcmF0aW9ucyB4ICROVU1QQVNTRVMgcGFzc2VzLi4uIjsKKyAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsICIkaXRlckNvdW50ICIgeCAkTlVNUEFTU0VTKTsKKyAgICBwcmludCAiZG9uZS5cbiI7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgIHB1c2goQG1zLCAkYlswXSk7CisgICAgfQorICAgIG15ICRldmVudHNQZXJJdGVyID0gJGJbMV07CisKKyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyAgICBvdXQoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworCisgICAgbXkgQG1zX3N0ciA9IEBtczsKKyAgICAkbXNfc3RyWzBdIC49ICIgKGRpc2NhcmRlZCkiIGlmIChAbXNfc3RyID4gMSk7CisgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisKKyAgICAoJGl0ZXJDb3VudCwgJGV2ZW50c1Blckl0ZXIsIEBtcyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW52b2tlIGphdmEgdG8gcnVuICRURVNUQ0xBU1MsIHBhc3NpbmcgaXQgdGhlIGdpdmVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBvciBpZiBuZWdhdGl2ZSwgdGhlIGR1cmF0aW9uCisjICAgICAgICBpbiBzZWNvbmRzLiAgSWYgbW9yZSB0aGFuIG9uIHBhc3MgaXMgZGVzaXJlZCwgcGFzcyBpbgorIyAgICAgICAgYSBzdHJpbmcsIGUuZy4sICIxMDAgMTAwIDEwMCIuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMKKyMgQHJldHVybiBhbiBhcnJheSBvZiByZXN1bHRzLiAgRWFjaCByZXN1bHQgaXMgYW4gYXJyYXkgUkVGCisjICAgICAgICAgZGVzY3JpYmluZyBvbmUgcGFzcy4gIFRoZSBhcnJheSBSRUYgY29udGFpbnM6CisjICAgICAgICAgLT5bMF06IFRoZSBtZXRob2QgbmFtZSBhcyByZXBvcnRlZAorIyAgICAgICAgIC0+WzFdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gYmVnaW4gLi4uJyBsaW5lCisjICAgICAgICAgLT5bMl06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBlbmQgLi4uJyBsaW5lCisjICAgICAgICAgLT5bMy4uXTogR0MgbWVzc2FnZXMgZnJvbSB0aGUgSlZNLCBpZiBhbnkKKyMKK3N1YiBjYWxsSmF2YSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkbiA9IHNoaWZ0OworICAgIG15ICRmaWxlTmFtZSA9ICRTT1VSQ0VESVIgLiBAJHBhdFswXSA7IAorICAgIG15ICRjbWQgPSAiYzpcXGpkazEuNC4yXzA0XFxiaW5cXGphdmEgLWNsYXNzcGF0aCA7Y2xhc3NlczsgJFRFU1RDTEFTUyAkbWV0aG9kIC10ICRuIC1mICRmaWxlTmFtZSAtZSBAJHBhdFsxXSAtQCRwYXRbMl0iOworICAgIHByaW50ICJbJGNtZF1cbiI7ICMgZm9yIGRlYnVnZ2luZworICAgIG9wZW4oUElQRSwgIiRjbWR8Iikgb3IgZGllICJDYW4ndCBydW4gXCIkY21kXCIiOworICAgIG15IEBvdXQ7CisgICAgd2hpbGUgKDxQSVBFPikgeworICAgICAgICBwdXNoKEBvdXQsICRfKTsKKyAgICB9CisgICAgY2xvc2UoUElQRSkgb3IgZGllICJKYXZhIGZhaWxlZDogXCIkY21kXCIiOworCisgICAgQG91dCA9IGdyZXAoIS9eXCMvLCBAb3V0KTsgICMgZmlsdGVyIG91dCBjb21tZW50cworCisgICAgI3ByaW50ICJbIiwgam9pbigiXG4iLCBAb3V0KSwgIl1cbiI7CisKKyAgICBteSBAcmVzdWx0czsKKyAgICBteSAkbWV0aG9kID0gJyc7CisgICAgbXkgJGRhdGEgPSBbXTsKKyAgICBmb3JlYWNoIChAb3V0KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgvXFMvKTsKKworICAgICAgICBpZiAoL149XHMqKFx3KylccyooXHcrKVxzKiguKikvKSB7CisgICAgICAgICAgICBteSAoJG0sICRzdGF0ZSwgJGQpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAgICAgI3ByaW50ICIkXyA9PiBbWyRtICRzdGF0ZSAkZGF0YV1dXG4iOworICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnYmVnaW4nKSB7CisgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICRtOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkZCk7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICcnKTsgIyBwbGFjZWhvbGRlciBmb3IgZW5kIGRhdGEKKyAgICAgICAgICAgIH0gZWxzaWYgKCRzdGF0ZSBlcSAnZW5kJykgeworICAgICAgICAgICAgICAgIGlmICgkbSBuZSAkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCBlbmQgZG9lcyBub3QgbWF0Y2g6ICRfIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGRhdGEtPlsxXSA9ICRkOyAjIGluc2VydCBlbmQgZGF0YSBhdCBbMV0KKyAgICAgICAgICAgICAgICAjcHJpbnQgIiMkbWV0aG9kOiIsIGpvaW4oIjsiLEAkZGF0YSksICJcbiI7CisgICAgICAgICAgICAgICAgdW5zaGlmdChAJGRhdGEsICRtZXRob2QpOyAjIGFkZCBtZXRob2QgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBwdXNoKEByZXN1bHRzLCAkZGF0YSk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICcnOworICAgICAgICAgICAgICAgICRkYXRhID0gW107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2lmICgvXlxbLykgeworICAgICAgICAgICAgaWYgKCRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAjIGlnbm9yZSBleHRyYW5lb3VzIEdDIG5vdGljZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICB9CisgICAgfQorCisgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisKKyAgICBAcmVzdWx0czsKK30KKworI3wjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjfCMgRm9ybWF0IGEgY29uZmlkZW5jZSBpbnRlcnZhbCwgYXMgZ2l2ZW4gYnkgYSBEYXRhc2V0LiAgT3V0cHV0IGlzIGFzCisjfCMgYXMgZm9sbG93czoKKyN8IyAgIDI0MS4yMyAtIDI0MS45OCA9PiAyNDEuNSArLy0gMC4zCisjfCMgICAyNDEuMiAtIDI0My44ID0+IDI0MiArLy0gMQorI3wjICAgMjExLjAgLSAyNDEuMCA9PiAyMjYgKy8tIDE1IG9yPyAyMzAgKy8tIDIwCisjfCMgICAyMjAuMyAtIDIzNC4zID0+IDIyNyArLy0gNworI3wjICAgMjIwLjMgLSAzMDAuMyA9PiAyNjAgKy8tIDQwCisjfCMgICAyMjAuMyAtIDEwMDAgPT4gNjEwICsvLSAzOTAgb3I/IDYwMCArLy0gNDAwCisjfCMgICAwLjAyMiAtIDAuMDI0ID0+IDAuMDIzICsvLSAwLjAwMQorI3wjICAgMC4wMjIgLSAwLjAzMiA9PiAwLjAyNyArLy0gMC4wMDUKKyN8IyAgIDAuMDIyIC0gMS4wMDAgPT4gMC41ICsvLSAwLjUKKyN8IyBJbiBvdGhlciB3b3JkcywgdGFrZSBvbmUgc2lnbmlmaWNhbnQgZGlnaXQgb2YgdGhlIGVycm9yIHZhbHVlIGFuZAorI3wjIGRpc3BsYXkgdGhlIG1lYW4gdG8gdGhlIHNhbWUgcHJlY2lzaW9uLgorI3xzdWIgZm9ybWF0RGF0YXNldCB7CisjfCAgICBteSAkZHMgPSBzaGlmdDsKKyN8ICAgIG15ICRsb3dlciA9ICRkcy0+Z2V0TWVhbigpIC0gJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHVwcGVyID0gJGRzLT5nZXRNZWFuKCkgKyAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkc2NhbGUgPSAwOworI3wgICAgIyBGaW5kIGhvdyBtYW55IGluaXRpYWwgZGlnaXRzIGFyZSB0aGUgc2FtZQorI3wgICAgd2hpbGUgKCRsb3dlciA8IDEgfHwKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAqPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgKj0gMTA7CisjfCAgICAgICAgJHNjYWxlKys7CisjfCAgICB9CisjfCAgICB3aGlsZSAoJGxvd2VyID49IDEwICYmCisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgLz0gMTA7CisjfCAgICAgICAgJHVwcGVyIC89IDEwOworI3wgICAgICAgICRzY2FsZS0tOworI3wgICAgfQorI3x9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbXVsdGlwbGllcgorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMiIG9yICIyMyArLy0gMTAiLgorIworc3ViIGZvcm1hdE51bWJlciB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRtdWx0ID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRhKiRtdWx0KTsKKyAgICBpZiAoZGVmaW5lZCgkZGVsdGEpKSB7CisgICAgICAgIG15ICRkID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRkZWx0YSokbXVsdCk7CisgICAgICAgICMgcmVzdHJpY3QgUFJFQ0lTSU9OIG9mIGRlbHRhIHRvIHRoYXQgb2YgbWFpbiBudW1iZXIKKyAgICAgICAgaWYgKCRyZXN1bHQgPX4gL1wuKFxkKykvKSB7CisgICAgICAgICAgICAjIFRPRE8gbWFrZSB0aGlzIHdvcmsgZm9yIHZhbHVlcyB3aXRoIGFsbCBzaWduaWZpY2FudAorICAgICAgICAgICAgIyBkaWdpdHMgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwsIGUuZy4sIDEyMzQwMDAuCisKKyAgICAgICAgICAgICMgVE9ETyB0aGUgb3RoZXIgdGhpbmcgd3Jvbmcgd2l0aCB0aGlzIGlzIHRoYXQgaXQKKyAgICAgICAgICAgICMgaXNuJ3Qgcm91bmRpbmcgdGhlICRkZWx0YSBwcm9wZXJseS4gIEhhdmUgdG8gcHV0CisgICAgICAgICAgICAjIHRoaXMgbG9naWMgaW50byBmb3JtYXRTaWdEaWcoKS4KKyAgICAgICAgICAgIG15ICR4ID0gbGVuZ3RoKCQxKTsKKyAgICAgICAgICAgICRkID1+IHMvXC4oXGR7JHh9KVxkKy8uJDEvOworICAgICAgICB9CisgICAgICAgICRyZXN1bHQgLj0gIiAkUExVU19NSU5VUyAiIC4gJGQ7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgdGltZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIG1zIiBvciAiMjMgKy8tIDEwIG1zIi4KKyMKK3N1YiBmb3JtYXRTZWNvbmRzIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKworICAgIG15IEBNVUxUID0gKDEgICAsIDFlMywgIDFlNiwgIDFlOSk7CisgICAgbXkgQFNVRkYgPSAoJ3MnICwgJ21zJywgJ3VzJywgJ25zJyk7CisKKyAgICAjIERldGVybWluZSBvdXIgc2NhbGUKKyAgICBteSAkaSA9IDA7CisgICAgKyskaSB3aGlsZSAoJGEqJE1VTFRbJGldIDwgMSAmJiAkaSA8IEBNVUxUKTsKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgJE1VTFRbJGldLCAkYSwgJGRlbHRhKSAuICcgJyAuICRTVUZGWyRpXTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBwZXJjZW50YWdlLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdmFsdWUgdG8gYmUgZm9ybWF0dGVkLCBhcyBhIGZyYWN0aW9uLCBlLmcuIDAuNSBmb3IgNTAlCisjIEBvcHRpb25hbCBkZWx0YSwgYXMgYSBmcmFjdGlvbgorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgJSIgb3IgIjIzICsvLSAxMCAlIi4KKyMKK3N1YiBmb3JtYXRQZXJjZW50IHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgMTAwLCAkYSwgJGRlbHRhKSAuICcgJSc7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyIHRvIG4gc2lnbmlmaWNhbnQgZGlnaXRzIHdpdGhvdXQgdXNpbmcgZXhwb25lbnRpYWwKKyMgbm90YXRpb24uCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBudW1iZXIgdG8gYmUgZm9ybWF0dGVkCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIxMjM0IiAiMTIuMzQiIG9yICIwLjAwMTIzNCIuICBJZgorIyAgICAgICAgIG51bWJlciB3YXMgbmVnYXRpdmUsIHByZWZpeGVkIGJ5ICctJy4KKyMKK3N1YiBmb3JtYXRTaWdEaWcgeworICAgIG15ICRuID0gc2hpZnQoKSAtIDE7CisgICAgbXkgJGEgPSBzaGlmdDsKKworICAgIGxvY2FsICRfID0gc3ByaW50ZigiJS4ke259ZSIsICRhKTsKKyAgICBteSAkc2lnbiA9IChzL14tLy8pID8gJy0nIDogJyc7CisKKyAgICBteSAkYV9lOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKC9eKFxkKVwuKFxkKyllKFstK11cZCspJC8pIHsKKyAgICAgICAgbXkgKCRkLCAkZG4sICRlKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgJGFfZSA9ICRlOworICAgICAgICAkZCAuPSAkZG47CisgICAgICAgICRlKys7CisgICAgICAgICRkIC49ICcwJyB3aGlsZSAoJGUgPiBsZW5ndGgoJGQpKTsKKyAgICAgICAgd2hpbGUgKCRlIDwgMSkgeworICAgICAgICAgICAgJGUrKzsKKyAgICAgICAgICAgICRkID0gJzAnIC4gJGQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRlID09IGxlbmd0aCgkZCkpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuICRkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gc3Vic3RyKCRkLCAwLCAkZSkgLiAnLicgLiBzdWJzdHIoJGQsICRlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL0RhdGFzZXQucG0gYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL0RhdGFzZXQucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ5OTMxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvRGF0YXNldC5wbQpAQCAtMCwwICsxLDEzOSBAQAorIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiBDT1BZUklHSFQ6CisjICAqIENvcHlyaWdodCAoYykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyMgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworcGFja2FnZSBEYXRhc2V0OwordXNlIFN0YXRpc3RpY3M6OkRlc2NyaXB0aXZlOwordXNlIFN0YXRpc3RpY3M6OkRpc3RyaWJ1dGlvbnM7Cit1c2Ugc3RyaWN0OworCisjIENyZWF0ZSBhIG5ldyBEYXRhc2V0IHdpdGggdGhlIGdpdmVuIGRhdGEuCitzdWIgbmV3IHsKKyAgICBteSAoJGNsYXNzKSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gYmxlc3MgeworICAgICAgICBfZGF0YSA9PiBcQF8sCisgICAgICAgIF9zY2FsZSA9PiAxLjAsCisgICAgICAgIF9tZWFuID0+IDAuMCwKKyAgICAgICAgX2Vycm9yID0+IDAuMCwKKyAgICB9LCAkY2xhc3M7CisKKyAgICBteSAkbiA9IEBfOworICAgIAorICAgIGlmICgkbiA+PSAxKSB7CisgICAgICAgIG15ICRzdGF0cyA9IFN0YXRpc3RpY3M6OkRlc2NyaXB0aXZlOjpGdWxsLT5uZXcoKTsKKyAgICAgICAgJHN0YXRzLT5hZGRfZGF0YShAeyRzZWxmLT57X2RhdGF9fSk7CisgICAgICAgICRzZWxmLT57X21lYW59ID0gJHN0YXRzLT5tZWFuKCk7CisKKyAgICAgICAgaWYgKCRuID49IDIpIHsKKyAgICAgICAgICAgICMgVXNlIGEgdCBkaXN0cmlidXRpb24gcmF0aGVyIHRoYW4gR2F1c3NpYW4gYmVjYXVzZSAoYSkgd2UKKyAgICAgICAgICAgICMgYXNzdW1lIGFuIHVuZGVybHlpbmcgbm9ybWFsIGRpc3QsIChiKSB3ZSBkbyBub3Qga25vdyB0aGUKKyAgICAgICAgICAgICMgc3RhbmRhcmQgZGV2aWF0aW9uIC0tIHdlIGVzdGltYXRlIGl0IGZyb20gdGhlIGRhdGEsIGFuZCAoYykKKyAgICAgICAgICAgICMgd2UgTUFZIGhhdmUgYSBzbWFsbCBzYW1wbGUgc2l6ZSAoYWxzbyB3b3JrcyBmb3IgbGFyZ2UgbikuCisgICAgICAgICAgICBteSAkdCA9IFN0YXRpc3RpY3M6OkRpc3RyaWJ1dGlvbnM6OnRkaXN0cigkbi0xLCAwLjAwNSk7CisgICAgICAgICAgICAkc2VsZi0+e19lcnJvcn0gPSAkdCAqICRzdGF0cy0+c3RhbmRhcmRfZGV2aWF0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAkc2VsZjsKK30KKworIyBTZXQgYSBzY2FsaW5nIGZhY3RvciBmb3IgYWxsIGRhdGE7IDEuMCBtZWFucyBubyBzY2FsaW5nLgorIyBTY2FsZSBtdXN0IGJlID4gMC4KK3N1YiBzZXRTY2FsZSB7CisgICAgbXkgKCRzZWxmLCAkc2NhbGUpID0gQF87CisgICAgJHNlbGYtPntfc2NhbGV9ID0gJHNjYWxlOworfQorCisjIE11bHRpcGx5IHRoZSBzY2FsaW5nIGZhY3RvciBieSBhIHZhbHVlLgorc3ViIHNjYWxlQnkgeworICAgIG15ICgkc2VsZiwgJGEpID0gQF87CisgICAgJHNlbGYtPntfc2NhbGV9ICo9ICRhOworfQorCisjIFJldHVybiB0aGUgbWVhbi4KK3N1YiBnZXRNZWFuIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e19tZWFufSAqICRzZWxmLT57X3NjYWxlfTsKK30KKworIyBSZXR1cm4gYSA5OSUgZXJyb3IgYmFzZWQgb24gdGhlIHQgZGlzdHJpYnV0aW9uLiAgVGhlIGRhdGFzZXQKKyMgaXMgZGVzcmliZWQgYXMgZ2V0TWVhbigpICsvLSBnZXRFcnJvcigpLgorc3ViIGdldEVycm9yIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e19lcnJvcn0gKiAkc2VsZi0+e19zY2FsZX07Cit9CisKKyMgRGl2aWRlIHR3byBEYXRhc2V0cyBhbmQgcmV0dXJuIGEgbmV3IG9uZSwgbWFpbnRhaW5pbmcgdGhlCisjIG1lYW4rLy1lcnJvci4gIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgZGl2aWRlIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRyaHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkbWlucmF0aW8gPSAoJHNlbGYtPntfbWVhbn0gLSAkc2VsZi0+e19lcnJvcn0pIC8KKyAgICAgICAgICAgICAgICAgICAoJHJocy0+e19tZWFufSArICRyaHMtPntfZXJyb3J9KTsKKyAgICBteSAkbWF4cmF0aW8gPSAoJHNlbGYtPntfbWVhbn0gKyAkc2VsZi0+e19lcnJvcn0pIC8KKyAgICAgICAgICAgICAgICAgICAoJHJocy0+e19tZWFufSAtICRyaHMtPntfZXJyb3J9KTsKKworICAgIG15ICRyZXN1bHQgPSBEYXRhc2V0LT5uZXcoKTsKKyAgICAkcmVzdWx0LT57X21lYW59ID0gKCRtaW5yYXRpbyArICRtYXhyYXRpbykgLyAyOworICAgICRyZXN1bHQtPntfZXJyb3J9ID0gJHJlc3VsdC0+e19tZWFufSAtICRtaW5yYXRpbzsKKyAgICAkcmVzdWx0LT57X3NjYWxlfSA9ICRzZWxmLT57X3NjYWxlfSAvICRyaHMtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKyMgc3VidHJhY3RzIHR3byBEYXRhc2V0cyBhbmQgcmV0dXJuIGEgbmV3IG9uZSwgbWFpbnRhaW5pbmcgdGhlCisjIG1lYW4rLy1lcnJvci4gIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgc3VidHJhY3QgeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHJocyA9IHNoaWZ0OworICAgIAorICAgIG15ICRyZXN1bHQgPSBEYXRhc2V0LT5uZXcoKTsKKyAgICAkcmVzdWx0LT57X21lYW59ID0gJHNlbGYtPntfbWVhbn0gLSAkcmhzLT57X21lYW59OworICAgICRyZXN1bHQtPntfZXJyb3J9ID0gJHNlbGYtPntfZXJyb3J9ICsgJHJocy0+e19lcnJvcn07CisgICAgJHJlc3VsdC0+e19zY2FsZX0gPSAkc2VsZi0+e19zY2FsZX07CisgICAgJHJlc3VsdDsKK30KKworIyBhZGRzIHR3byBEYXRhc2V0cyBhbmQgcmV0dXJuIGEgbmV3IG9uZSwgbWFpbnRhaW5pbmcgdGhlCisjIG1lYW4rLy1lcnJvci4gIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgYWRkIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRyaHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICRzZWxmLT57X21lYW59ICsgJHJocy0+e19tZWFufTsKKyAgICAkcmVzdWx0LT57X2Vycm9yfSA9ICRzZWxmLT57X2Vycm9yfSArICRyaHMtPntfZXJyb3J9OworICAgICRyZXN1bHQtPntfc2NhbGV9ID0gJHNlbGYtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKyMgRGl2aWRlcyBhIGRhdGFzZXQgYnkgYSBzY2FsYXIuCisjIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgZGl2aWRlQnlTY2FsYXIgeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gRGF0YXNldC0+bmV3KCk7CisgICAgJHJlc3VsdC0+e19tZWFufSA9ICRzZWxmLT57X21lYW59LyRzOworICAgICRyZXN1bHQtPntfZXJyb3J9ID0gJHNlbGYtPntfZXJyb3J9LyRzOworICAgICRyZXN1bHQtPntfc2NhbGV9ID0gJHNlbGYtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKyMgRGl2aWRlcyBhIGRhdGFzZXQgYnkgYSBzY2FsYXIuCisjIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgbXVsdGlwbHlCeVNjYWxhciB7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIAorICAgIG15ICRyZXN1bHQgPSBEYXRhc2V0LT5uZXcoKTsKKyAgICAkcmVzdWx0LT57X21lYW59ID0gJHNlbGYtPntfbWVhbn0qJHM7CisgICAgJHJlc3VsdC0+e19lcnJvcn0gPSAkc2VsZi0+e19lcnJvcn0qJHM7CisgICAgJHJlc3VsdC0+e19zY2FsZX0gPSAkc2VsZi0+e19zY2FsZX07CisgICAgJHJlc3VsdDsKK30KKworMTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvRm9ybWF0LnBtIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9Gb3JtYXQucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBkNjA3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvRm9ybWF0LnBtCkBAIC0wLDAgKzEsMTY2IEBACisjIS91c3IvbG9jYWwvYmluL3BlcmwKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqIENPUFlSSUdIVDoKKyMgICogQ29weXJpZ2h0IChjKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitteSAkUExVU19NSU5VUyA9ICImcGx1c21uOyI7CisKKyN8Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI3wjIEZvcm1hdCBhIGNvbmZpZGVuY2UgaW50ZXJ2YWwsIGFzIGdpdmVuIGJ5IGEgRGF0YXNldC4gIE91dHB1dCBpcyBhcworI3wjIGFzIGZvbGxvd3M6CisjfCMgICAyNDEuMjMgLSAyNDEuOTggPT4gMjQxLjUgKy8tIDAuMworI3wjICAgMjQxLjIgLSAyNDMuOCA9PiAyNDIgKy8tIDEKKyN8IyAgIDIxMS4wIC0gMjQxLjAgPT4gMjI2ICsvLSAxNSBvcj8gMjMwICsvLSAyMAorI3wjICAgMjIwLjMgLSAyMzQuMyA9PiAyMjcgKy8tIDcKKyN8IyAgIDIyMC4zIC0gMzAwLjMgPT4gMjYwICsvLSA0MAorI3wjICAgMjIwLjMgLSAxMDAwID0+IDYxMCArLy0gMzkwIG9yPyA2MDAgKy8tIDQwMAorI3wjICAgMC4wMjIgLSAwLjAyNCA9PiAwLjAyMyArLy0gMC4wMDEKKyN8IyAgIDAuMDIyIC0gMC4wMzIgPT4gMC4wMjcgKy8tIDAuMDA1CisjfCMgICAwLjAyMiAtIDEuMDAwID0+IDAuNSArLy0gMC41CisjfCMgSW4gb3RoZXIgd29yZHMsIHRha2Ugb25lIHNpZ25pZmljYW50IGRpZ2l0IG9mIHRoZSBlcnJvciB2YWx1ZSBhbmQKKyN8IyBkaXNwbGF5IHRoZSBtZWFuIHRvIHRoZSBzYW1lIHByZWNpc2lvbi4KKyN8c3ViIGZvcm1hdERhdGFzZXQgeworI3wgICAgbXkgJGRzID0gc2hpZnQ7CisjfCAgICBteSAkbG93ZXIgPSAkZHMtPmdldE1lYW4oKSAtICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICR1cHBlciA9ICRkcy0+Z2V0TWVhbigpICsgJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHNjYWxlID0gMDsKKyN8ICAgICMgRmluZCBob3cgbWFueSBpbml0aWFsIGRpZ2l0cyBhcmUgdGhlIHNhbWUKKyN8ICAgIHdoaWxlICgkbG93ZXIgPCAxIHx8CisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgKj0gMTA7CisjfCAgICAgICAgJHVwcGVyICo9IDEwOworI3wgICAgICAgICRzY2FsZSsrOworI3wgICAgfQorI3wgICAgd2hpbGUgKCRsb3dlciA+PSAxMCAmJgorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyIC89IDEwOworI3wgICAgICAgICR1cHBlciAvPSAxMDsKKyN8ICAgICAgICAkc2NhbGUtLTsKKyN8ICAgIH0KKyN8fQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG11bHRpcGxpZXIKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIiBvciAiMjMgKy8tIDEwIi4KKyMKK3N1YiBmb3JtYXROdW1iZXIgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkbXVsdCA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgbXkgJHJlc3VsdCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkYSokbXVsdCk7CisgICAgaWYgKGRlZmluZWQoJGRlbHRhKSkgeworICAgICAgICBteSAkZCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkZGVsdGEqJG11bHQpOworICAgICAgICAjIHJlc3RyaWN0IFBSRUNJU0lPTiBvZiBkZWx0YSB0byB0aGF0IG9mIG1haW4gbnVtYmVyCisgICAgICAgIGlmICgkcmVzdWx0ID1+IC9cLihcZCspLykgeworICAgICAgICAgICAgIyBUT0RPIG1ha2UgdGhpcyB3b3JrIGZvciB2YWx1ZXMgd2l0aCBhbGwgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICMgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsLCBlLmcuLCAxMjM0MDAwLgorCisgICAgICAgICAgICAjIFRPRE8gdGhlIG90aGVyIHRoaW5nIHdyb25nIHdpdGggdGhpcyBpcyB0aGF0IGl0CisgICAgICAgICAgICAjIGlzbid0IHJvdW5kaW5nIHRoZSAkZGVsdGEgcHJvcGVybHkuICBIYXZlIHRvIHB1dAorICAgICAgICAgICAgIyB0aGlzIGxvZ2ljIGludG8gZm9ybWF0U2lnRGlnKCkuCisgICAgICAgICAgICBteSAkeCA9IGxlbmd0aCgkMSk7CisgICAgICAgICAgICAkZCA9fiBzL1wuKFxkeyR4fSlcZCsvLiQxLzsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICIgJFBMVVNfTUlOVVMgIiAuICRkOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHRpbWUsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyBtcyIgb3IgIjIzICsvLSAxMCBtcyIuCisjCitzdWIgZm9ybWF0U2Vjb25kcyB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisKKyAgICBteSBATVVMVCA9ICgxICAgLCAxZTMsICAxZTYsICAxZTkpOworICAgIG15IEBTVUZGID0gKCdzJyAsICdtcycsICd1cycsICducycpOworCisgICAgIyBEZXRlcm1pbmUgb3VyIHNjYWxlCisgICAgbXkgJGkgPSAwOworICAgICNhbHdheXMgZG8gc2Vjb25kcyBpZiB0aGUgZm9sbG93aW5nIGxpbmUgaXMgY29tbWVudGVkIG91dAorICAgICsrJGkgd2hpbGUgKCRhKiRNVUxUWyRpXSA8IDEgJiYgJGkgPCBATVVMVCk7CisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsICRNVUxUWyRpXSwgJGEsICRkZWx0YSkgLiAnICcgLiAkU1VGRlskaV07Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgcGVyY2VudGFnZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCwgYXMgYSBmcmFjdGlvbiwgZS5nLiAwLjUgZm9yIDUwJQorIyBAb3B0aW9uYWwgZGVsdGEsIGFzIGEgZnJhY3Rpb24KKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzICUiIG9yICIyMyArLy0gMTAgJSIuCisjCitzdWIgZm9ybWF0UGVyY2VudCB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsIDEwMCwgJGEsICRkZWx0YSkgLiAnJSc7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyIHRvIG4gc2lnbmlmaWNhbnQgZGlnaXRzIHdpdGhvdXQgdXNpbmcgZXhwb25lbnRpYWwKKyMgbm90YXRpb24uCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBudW1iZXIgdG8gYmUgZm9ybWF0dGVkCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIxMjM0IiAiMTIuMzQiIG9yICIwLjAwMTIzNCIuICBJZgorIyAgICAgICAgIG51bWJlciB3YXMgbmVnYXRpdmUsIHByZWZpeGVkIGJ5ICctJy4KKyMKK3N1YiBmb3JtYXRTaWdEaWcgeworICAgIG15ICRuID0gc2hpZnQoKSAtIDE7CisgICAgbXkgJGEgPSBzaGlmdDsKKworICAgIGxvY2FsICRfID0gc3ByaW50ZigiJS4ke259ZSIsICRhKTsKKyAgICBteSAkc2lnbiA9IChzL14tLy8pID8gJy0nIDogJyc7CisKKyAgICBteSAkYV9lOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKC9eKFxkKVwuKFxkKyllKFstK11cZCspJC8pIHsKKyAgICAgICAgbXkgKCRkLCAkZG4sICRlKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgJGFfZSA9ICRlOworICAgICAgICAkZCAuPSAkZG47CisgICAgICAgICRlKys7CisgICAgICAgICRkIC49ICcwJyB3aGlsZSAoJGUgPiBsZW5ndGgoJGQpKTsKKyAgICAgICAgd2hpbGUgKCRlIDwgMSkgeworICAgICAgICAgICAgJGUrKzsKKyAgICAgICAgICAgICRkID0gJzAnIC4gJGQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRlID09IGxlbmd0aCgkZCkpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuICRkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gc3Vic3RyKCRkLCAwLCAkZSkgLiAnLicgLiBzdWJzdHIoJGQsICRlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisxOworCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL091dHB1dC5wbSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvT3V0cHV0LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MWEyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9wZXJsZHJpdmVyL091dHB1dC5wbQpAQCAtMCwwICsxLDM4OSBAQAorIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqIENPUFlSSUdIVDoKKyMgICogQ29weXJpZ2h0IChjKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisKK3VzZSBzdHJpY3Q7CisKK3VzZSBEYXRhc2V0OworCitteSAkVEFCTEVBVFRSID0gJ0JPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjQiIENFTExTUEFDSU5HPSIwIic7CitteSAkb3V0VHlwZSA9ICJIVE1MIjsKK215ICRodG1sID0gIm5vTmFtZSI7CitteSAkaW5UYWJsZTsKK215IEBoZWFkZXJzOworbXkgQHRpbWV0eXBlcyA9ICgibWVhbiBwZXIgb3AiLCAiZXJyb3IgcGVyIG9wIiwgImV2ZW50cyIsICJwZXIgZXZlbnQiKTsKK215ICVyYXc7CitteSAkY3VycmVudCA9ICIiOworbXkgJGV4cCA9IDA7CitteSAkbXVsdCA9IDFlOTsgI3VzZSBuYW5vc2Vjb25kcworbXkgJHBlcmMgPSAxMDA7ICNmb3IgcGVyY2VudAorbXkgJHByaW50RXZlbnRzID0gMDsKK215ICRsZWdlbmQgPSAiPGEgbmFtZT1cIkxlZ2VuZFwiPlxuPGgyPlRhYmxlIGxlZ2VuZDwvaDI+PC9hPjx1bD4iOworbXkgJGxlZ2VuZERvbmUgPSAwOworbXkgJW9wdGlvbnM7CitteSAkb3BlcmF0aW9uSXMgPSAib3BlcmF0aW9uIjsKK215ICRldmVudElzID0gImV2ZW50IjsKKworc3ViIHN0YXJ0VGVzdCB7CisgICRjdXJyZW50ID0gc2hpZnQ7CisgICRleHAgPSAwOworICBvdXRwdXREYXRhKCRjdXJyZW50KTsKK30KKworc3ViIHByaW50TGVnIHsKKyAgaWYoISRsZWdlbmREb25lKSB7CisgICAgbXkgJG1lc3NhZ2U7CisgICAgZm9yZWFjaCAkbWVzc2FnZSAoQF8pIHsKKyAgICAgICRsZWdlbmQgLj0gIjxsaT4iLiRtZXNzYWdlLiI8L2xpPlxuIjsKKyAgICB9CisgIH0KK30KKworc3ViIG91dHB1dERpc3QgeworICBteSAkdmFsdWUgPSBzaGlmdDsKKyAgbXkgJHBlcmNlbnQgPSBzaGlmdDsKKyAgbXkgJG1lYW4gPSAkdmFsdWUtPmdldE1lYW47CisgIG15ICRlcnJvciA9ICR2YWx1ZS0+Z2V0RXJyb3I7CisgIHByaW50IEhUTUwgIjx0ZCBjbGFzcz1cIiI7CisgIGlmKCRtZWFuID4gMCkgeworICAgIHByaW50IEhUTUwgInZhbHVlIjsKKyAgfSBlbHNlIHsKKyAgICBwcmludCBIVE1MICJ3b3JzZSI7CisgIH0KKyAgcHJpbnQgSFRNTCAiXCI+IjsKKyAgaWYoJHBlcmNlbnQpIHsKKyAgICBwcmludCBIVE1MIGZvcm1hdFBlcmNlbnQoMiwgJG1lYW4pOworICB9IGVsc2UgeworICAgIHByaW50IEhUTUwgZm9ybWF0TnVtYmVyKDIsICRtdWx0LCAkbWVhbik7CisgIH0KKyAgcHJpbnQgSFRNTCAiPC90ZD5cbiI7ICAKKyAgcHJpbnQgSFRNTCAiPHRkIGNsYXNzPVwiIjsKKyAgaWYoKCgkZXJyb3IqJG11bHQgPCAxMCkmJiEkcGVyY2VudCkgfHwgKCgkZXJyb3I8MTApJiYkcGVyY2VudCkpIHsKKyAgICBwcmludCBIVE1MICJlcnJvciI7CisgIH0gZWxzZSB7CisgICAgcHJpbnQgSFRNTCAiZXJyb3JMYXJnZSI7CisgIH0KKyAgcHJpbnQgSFRNTCAiXCI+JnBsdXNtbjsiOworICBpZigkcGVyY2VudCkgeworICAgIHByaW50IEhUTUwgZm9ybWF0UGVyY2VudCgyLCAkZXJyb3IpOworICB9IGVsc2UgeworICAgIHByaW50IEhUTUwgZm9ybWF0TnVtYmVyKDIsICRtdWx0LCAkZXJyb3IpOworICB9CisgIHByaW50IEhUTUwgIjwvdGQ+XG4iOyAgCit9CisgIAorc3ViIG91dHB1dFZhbHVlIHsKKyAgbXkgJHZhbHVlID0gc2hpZnQ7CisgIHByaW50IEhUTUwgIjx0ZCBjbGFzcz1cInNlcHZhbHVlXCI+IjsKKyAgcHJpbnQgSFRNTCAkdmFsdWU7CisgICNwcmludCBIVE1MIGZvcm1hdE51bWJlcigyLCAxLCAkdmFsdWUpOworICBwcmludCBIVE1MICI8L3RkPlxuIjsgIAorfQorCitzdWIgc3RhcnRUYWJsZSB7CisgICNteSAkcHJpbnRFdmVudHMgPSBzaGlmdDsKKyAgJGluVGFibGUgPSAxOworICBteSAkaTsKKyAgcHJpbnQgSFRNTCAiPHRhYmxlICRUQUJMRUFUVFI+XG4iOworICBwcmludCBIVE1MICI8dGJvZHk+XG4iOworICBpZigkI2hlYWRlcnMgPj0gMCkgeworICAgIG15ICgkaGVhZGVyLCAkaSk7CisgICAgcHJpbnQgSFRNTCAiPHRyPlxuIjsKKyAgICBwcmludCBIVE1MICI8dGggcm93c3Bhbj1cIjJcIiBjbGFzcz1cInRlc3ROYW1lSGVhZGVyXCI+PGEgaHJlZj1cIiNUZXN0TmFtZVwiPlRlc3QgTmFtZTwvYT48L3RoPlxuIjsKKyAgICBwcmludCBIVE1MICI8dGggcm93c3Bhbj1cIjJcIiBjbGFzcz1cInRlc3ROYW1lSGVhZGVyXCI+PGEgaHJlZj1cIiNPcHNcIj5PcHM8L2E+PC90aD5cbiI7CisgICAgcHJpbnRMZWcoIjxhIG5hbWU9XCJUZXN0IE5hbWVcIj5UZXN0TmFtZTwvYT4gLSBuYW1lIG9mIHRoZSB0ZXN0IGFzIHNldCBieSB0aGUgdGVzdCB3cml0ZXJcbiIsICI8YSBuYW1lPVwiT3BzXCI+T3BzPC9hPiAtIG51bWJlciBvZiAiLiRvcGVyYXRpb25Jcy4icyBwZXIgaXRlcmF0aW9uXG4iKTsKKyAgICBpZighJHByaW50RXZlbnRzKSB7CisgICAgICBwcmludCBIVE1MICI8dGggY29sc3Bhbj0iLigoNCooJCNoZWFkZXJzKzEpKS0yKS4iIGNsYXNzPVwic291cmNlVHlwZVwiPlBlciBPcGVyYXRpb248L3RoPlxuIjsKKyAgICB9IGVsc2UgeworICAgICAgcHJpbnQgSFRNTCAiPHRoIGNvbHNwYW49Ii4oKDIqKCQjaGVhZGVycysxKSktMikuIiBjbGFzcz1cInNvdXJjZVR5cGVcIj5QZXIgT3BlcmF0aW9uPC90aD5cbiI7CisgICAgICBwcmludCBIVE1MICI8dGggY29sc3Bhbj0iLigoNSooJCNoZWFkZXJzKzEpKS0yKS4iIGNsYXNzPVwic291cmNlVHlwZVwiPlBlciBFdmVudDwvdGg+XG4iOworICAgIH0KKyAgICBwcmludCBIVE1MICI8L3RyPlxuPHRyPlxuIjsKKyAgICBpZighJHByaW50RXZlbnRzKSB7CisgICAgICBmb3JlYWNoICRoZWFkZXIgKEBoZWFkZXJzKSB7CisJcHJpbnQgSFRNTCAiPHRoIGNsYXNzPVwic291cmNlXCIgY29sc3Bhbj0yPjxhIGhyZWY9XCIjbWVhbm9wXyRoZWFkZXJcIj4kaGVhZGVyPGJyPi9vcDwvYT48L3RoPlxuIjsKKwlwcmludExlZygiPGEgbmFtZT1cIm1lYW5vcF8kaGVhZGVyXCI+JGhlYWRlciAvb3A8L2E+IC0gbWVhbiB0aW1lIGFuZCBlcnJvciBmb3IgJGhlYWRlciBwZXIgJG9wZXJhdGlvbklzIik7CisgICAgICB9CisgICAgfQorICAgIGZvciAkaSAoMSAuLiAkI2hlYWRlcnMpIHsKKyAgICAgIHByaW50IEhUTUwgIjx0aCBjbGFzcz1cInNvdXJjZVwiIGNvbHNwYW49Mj48YSBocmVmPVwiI21lYW5fb3BfJGlcIj5yYXRpbyAkaTxicj4vb3A8L2E+PC90aD5cbiI7CisgICAgICBwcmludExlZygiPGEgbmFtZT1cIm1lYW5fb3BfJGlcIj5yYXRpbyAkaSAvb3A8L2E+IC0gcmF0aW8gYW5kIGVycm9yIG9mIHBlciAkb3BlcmF0aW9uSXMgdGltZSwgY2FsY3VsYXRlZCBhczogKCgkaGVhZGVyc1swXSAtICRoZWFkZXJzWyRpXSkvJGhlYWRlcnNbJGldKSoxMDAlLCBtZWFuIHZhbHVlIik7CisgICAgfQorICAgIGlmKCRwcmludEV2ZW50cykgeworICAgICAgZm9yZWFjaCAkaGVhZGVyIChAaGVhZGVycykgeworCXByaW50IEhUTUwgIjx0aCBjbGFzcz1cInNvdXJjZVwiPjxhIGhyZWY9XCIjZXZlbnRzXyRoZWFkZXJcIj4kaGVhZGVyPGJyPmV2ZW50czwvYT48L3RoPlxuIjsKKwlwcmludExlZygiPGEgbmFtZT1cImV2ZW50c18kaGVhZGVyXCI+JGhlYWRlciBldmVudHM8L2E+IC0gbnVtYmVyIG9mICIuJGV2ZW50SXMuInMgZm9yICRoZWFkZXIgcGVyIGl0ZXJhdGlvbiIpOworICAgICAgfQorICAgICAgZm9yZWFjaCAkaGVhZGVyIChAaGVhZGVycykgeworCXByaW50IEhUTUwgIjx0aCBjbGFzcz1cInNvdXJjZVwiIGNvbHNwYW49Mj48YSBocmVmPVwiI21lYW5fZXZfJGhlYWRlclwiPiRoZWFkZXI8YnI+L2V2PC9hPjwvdGg+XG4iOworCXByaW50TGVnKCI8YSBuYW1lPVwibWVhbl9ldl8kaGVhZGVyXCI+JGhlYWRlciAvZXY8L2E+IC0gbWVhbiB0aW1lIGFuZCBlcnJvciBmb3IgJGhlYWRlciBwZXIgJGV2ZW50SXMiKTsKKyAgICAgIH0KKyAgICAgIGZvciAkaSAoMSAuLiAkI2hlYWRlcnMpIHsKKwlwcmludCBIVE1MICI8dGggY2xhc3M9XCJzb3VyY2VcIiBjb2xzcGFuPTI+PGEgaHJlZj1cIiNtZWFuX2V2XyRpXCI+cmF0aW8gJGk8YnI+L2V2PC9hPjwvdGg+XG4iOworCXByaW50TGVnKCI8YSBuYW1lPVwibWVhbl9ldl8kaVwiPnJhdGlvICRpIC9ldjwvYT4gLSByYXRpbyBhbmQgZXJyb3Igb2YgcGVyICRldmVudElzIHRpbWUsIGNhbGN1bGF0ZWQgYXM6ICgoJGhlYWRlcnNbMF0gLSAkaGVhZGVyc1skaV0pLyRoZWFkZXJzWyRpXSkqMTAwJSwgbWVhbiB2YWx1ZSIpOworICAgICAgfQorICAgIH0KKyAgICBwcmludCBIVE1MICI8L3RyPlxuIjsKKyAgfQorICAkbGVnZW5kRG9uZSA9IDE7Cit9CisKK3N1YiBjbG9zZVRhYmxlIHsKKyAgaWYoJGluVGFibGUpIHsKKyAgICB1bmRlZiAkaW5UYWJsZTsKKyAgICBwcmludCBIVE1MICI8L3RyPlxuIjsKKyAgICBwcmludCBIVE1MICI8L3Rib2R5PiI7CisgICAgcHJpbnQgSFRNTCAiPC90YWJsZT5cbiI7CisgIH0KK30KKworc3ViIG5ld1JvdyB7CisgIGlmKCEkaW5UYWJsZSkgeworICAgIHN0YXJ0VGFibGU7CisgIH0gZWxzZSB7CisgICAgcHJpbnQgSFRNTCAiPC90cj5cbiI7CisgIH0KKyAgcHJpbnQgSFRNTCAiPHRyPiI7Cit9CisKK3N1YiBvdXRwdXREYXRhIHsKKyAgaWYoJGluVGFibGUpIHsKKyAgICBteSAkbXNnID0gc2hpZnQ7CisgICAgbXkgJGFsaWduID0gc2hpZnQ7CisgICAgcHJpbnQgSFRNTCAiPHRkIjsKKyAgICBpZigkYWxpZ24pIHsKKyAgICAgIHByaW50IEhUTUwgIiBhbGlnbiA9ICRhbGlnbj4iOworICAgIH0gZWxzZSB7CisgICAgICBwcmludCBIVE1MICI+IjsKKyAgICB9CisgICAgcHJpbnQgSFRNTCAiJG1zZyI7CisgICAgcHJpbnQgSFRNTCAiPC90ZD4iOworICB9IGVsc2UgeworICAgIG15ICRtZXNzYWdlOworICAgIGZvcmVhY2ggJG1lc3NhZ2UgKEBfKSB7CisgICAgICBwcmludCBIVE1MICIkbWVzc2FnZSI7CisgICAgfQorICB9Cit9CisKK3N1YiBzZXR1cE91dHB1dCB7CisgIG15ICRkYXRlID0gbG9jYWx0aW1lOworICBteSAkb3B0aW9ucyA9IHNoaWZ0OworICAlb3B0aW9ucyA9ICV7ICRvcHRpb25zIH07CisgIG15ICR0aXRsZSA9ICRvcHRpb25zeyAidGl0bGUiIH07CisgIG15ICRoZWFkZXJzID0gJG9wdGlvbnN7ICJoZWFkZXJzIiB9OworICBpZigkb3B0aW9uc3sgIm9wZXJhdGlvbklzIiB9KSB7CisgICAgJG9wZXJhdGlvbklzID0gJG9wdGlvbnN7ICJvcGVyYXRpb25JcyIgfTsKKyAgfQorICBpZigkb3B0aW9uc3sgImV2ZW50SXMiIH0pIHsKKyAgICAkZXZlbnRJcyA9ICRvcHRpb25zeyAiZXZlbnRJcyIgfTsKKyAgfQorICBAaGVhZGVycyA9IHNwbGl0KC8gLywgJGhlYWRlcnMpOworICBteSAoJHQsICRyZXN0KTsKKyAgKCR0LCAkcmVzdCkgPSBzcGxpdCgvXC5cdysvLCAkMCk7CisgICR0ID1+IC9eLipcVyhcdyspJC87CisgICR0ID0gJDE7CisgIGlmKCRvdXRUeXBlIGVxICdIVE1MJykgeworICAgICRodG1sID0gJGRhdGU7CisgICAgJGh0bWwgPX4gcy86Ly9nOyAjICc6JyBpbGxlZ2FsCisgICAgJGh0bWwgPX4gcy9ccypcZCskLy87ICMgZGVsZXRlIHllYXIKKyAgICAkaHRtbCA9fiBzL15cdytccyovLzsgIyBkZWxldGUgZG93CisgICAgJGh0bWwgPSAiJHQgJGh0bWwuaHRtbCI7CisgICAgaWYoJG9wdGlvbnN7ICJvdXRwdXREaXIiIH0pIHsKKyAgICAgICRodG1sID0gJG9wdGlvbnN7ICJvdXRwdXREaXIiIH0uIi8iLiRodG1sOworICAgIH0KKyAgICAkaHRtbCA9fiBzLyAvXy9nOworCisgICAgb3BlbihIVE1MLCI+JGh0bWwiKSBvciBkaWUgIkNhbid0IHdyaXRlIHRvICRodG1sOiAkISI7CisKKyM8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKyAgICBwcmludCBIVE1MIDw8RU9GOworPEhUTUw+CisgICA8SEVBRD4KKyAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKyAgICAgIDxUSVRMRT4kdGl0bGU8L1RJVExFPgorPHN0eWxlPgorPCEtLQorYm9keSAgICAgICAgIHsgZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogc2Fucy1zZXJpZiB9Cit0aCAgICAgICAgICAgeyBmb250LXNpemU6IDEwcHQ7IGJvcmRlcjogMCBzb2xpZCAjMDAwMDgwOyBwYWRkaW5nOiA1IH0KK3RoLnRlc3ROYW1lSGVhZGVyIHsgYm9yZGVyLXdpZHRoOiAxIH0KK3RoLnRlc3ROYW1lICB7IHRleHQtYWxpZ246IGxlZnQ7IGJvcmRlci1sZWZ0LXdpZHRoOiAxOyBib3JkZXItcmlnaHQtd2lkdGg6IDE7IAorICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9Cit0aC5zb3VyY2UgICAgeyBib3JkZXItcmlnaHQtd2lkdGg6IDE7IGJvcmRlci1ib3R0b20td2lkdGg6IDEgfQordGguc291cmNlVHlwZSB7IGJvcmRlci1yaWdodC13aWR0aDogMTsgYm9yZGVyLXRvcC13aWR0aDogMTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9Cit0ZCAgICAgICAgICAgeyBmb250LXNpemU6IDEwcHQ7IHRleHQtYWxpZ246IFJpZ2h0OyBib3JkZXI6IDAgc29saWQgIzAwMDA4MDsgcGFkZGluZzogNSB9Cit0ZC5zdHJpbmcgICAgeyB0ZXh0LWFsaWduOiBMZWZ0OyBib3JkZXItYm90dG9tLXdpZHRoOjE7IGJvcmRlci1yaWdodC13aWR0aDoxIH0KK3RkLnNlcHZhbHVlICB7IGJvcmRlci1ib3R0b20td2lkdGg6IDE7IGJvcmRlci1yaWdodC13aWR0aDogMSB9Cit0ZC52YWx1ZSAgICAgeyBib3JkZXItYm90dG9tLXdpZHRoOiAxIH0KK3RkLndvcnNlICAgICB7IGNvbG9yOiAjRkYwMDAwOyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9Cit0ZC5lcnJvciAgICAgeyBmb250LXNpemU6IDc1JTsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxOyBib3JkZXItYm90dG9tLXdpZHRoOiAxIH0KK3RkLmVycm9yTGFyZ2UgeyBmb250LXNpemU6IDc1JTsgY29sb3I6ICNGRjAwMDA7IGZvbnQtd2VpZ2h0OiBib2xkOyBib3JkZXItcmlnaHQtd2lkdGg6IDE7IAorICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMSB9CitBOmxpbmsgICAgeyBjb2xvcjogYmxhY2s7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtZGVjb3JhdGlvbjogbm9uZX0gICAgLyogdW52aXNpdGVkIGxpbmtzICovCitBOnZpc2l0ZWQgeyBjb2xvcjogYmx1ZTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIH0gICAvKiB2aXNpdGVkIGxpbmtzICAgKi8KK0E6aG92ZXIgICB7IGNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtZGVjb3JhdGlvbjogbm9uZSB9IC8qIHVzZXIgaG92ZXJzICAgICAqLworQTphY3RpdmUgIHsgY29sb3I6IGxpbWU7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtZGVjb3JhdGlvbjogbm9uZSB9ICAgLyogYWN0aXZlIGxpbmtzICAgICovCistLT4KKzwvc3R5bGU+CisgICA8L0hFQUQ+CisgICA8Qk9EWSBiZ2NvbG9yPSIjRkZGRkZGIiBMSU5LPSIjMDA2NjY2IiBWTElOSz0iIzAwMDAwMCI+CitFT0YKKyAgICBwcmludCBIVE1MICI8SDE+JHRpdGxlPC9IMT5cbiI7CisKKyAgICAjcHJpbnQgSFRNTCAiPEgyPiRURVNUQ0xBU1M8L0gyPlxuIjsKKyAgfQorfQorCitzdWIgY2xvc2VPdXRwdXQgeworICBpZigkb3V0VHlwZSBlcSAnSFRNTCcpIHsKKyAgICBpZigkaW5UYWJsZSkgeworICAgICAgY2xvc2VUYWJsZTsKKyAgICB9CisgICAgJGxlZ2VuZCAuPSAiPC91bD5cbiI7CisgICAgcHJpbnQgSFRNTCAkbGVnZW5kOworICAgIG91dHB1dFJhdygpOworICAgIHByaW50IEhUTUwgPDxFT0Y7CisgICA8L0JPRFk+Cis8L0hUTUw+CitFT0YKKyAgICBjbG9zZShIVE1MKSBvciBkaWUgIkNhbid0IGNsb3NlICRodG1sOiAkISI7CisgIH0KK30KKworCitzdWIgb3V0cHV0UmF3IHsKKyAgcHJpbnQgSFRNTCAiPGgyPlJhdyBkYXRhPC9oMj4iOworICBteSAka2V5OworICBteSAkaTsKKyAgbXkgJGo7CisgIG15ICRrOworICBwcmludCBIVE1MICI8dGFibGUgJFRBQkxFQVRUUj5cbiI7CisgIGZvciAka2V5IChzb3J0IGtleXMgJXJhdykgeworICAgIG15ICRwcmludGtleSA9ICRrZXk7CisgICAgJHByaW50a2V5ID1+IHMvXDxiclw+LyAvZzsKKyAgICBpZigkcHJpbnRFdmVudHMpIHsKKyAgICAgIGlmKCRrZXkgbmUgIiIpIHsKKwlwcmludCBIVE1MICI8dHI+PHRoIGNsYXNzPVwidGVzdE5hbWVIZWFkZXJcIiBjb2xzcGFuID0gNz4kcHJpbnRrZXk8L3RkPjwvdHI+XG4iOyAjIGxvY2FsZSBhbmQgZGF0YSBmaWxlCisgICAgICB9CisgICAgICBwcmludCBIVE1MICI8dHI+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj50ZXN0IG5hbWU8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+aW50ZXJlc3RpbmcgYXJndW1lbnRzPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPml0ZXJhdGlvbnM8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+b3BlcmF0aW9uczwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5tZWFuIHRpbWUgKG5zKTwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5lcnJvciAobnMpPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPmV2ZW50czwvdGg+PC90cj5cbiI7CisgICAgfSBlbHNlIHsKKyAgICAgIGlmKCRrZXkgbmUgIiIpIHsKKwlwcmludCBIVE1MICI8dHI+PHRoIGNsYXNzPVwidGVzdE5hbWVcIiBjb2xzcGFuID0gNj4kcHJpbnRrZXk8L3RkPjwvdHI+XG4iOyAjIGxvY2FsZSBhbmQgZGF0YSBmaWxlCisgICAgICB9CisgICAgICBwcmludCBIVE1MICI8dHI+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj50ZXN0IG5hbWU8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+aW50ZXJlc3RpbmcgYXJndW1lbnRzPC90aD48dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPml0ZXJhdGlvbnM8L3RoPjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+b3BlcmF0aW9uczwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5tZWFuIHRpbWUgKG5zKTwvdGg+PHRoIGNsYXNzPVwidGVzdE5hbWVcIj5lcnJvciAobnMpPC90aD48L3RyPlxuIjsKKyAgICB9CisgICAgJHByaW50a2V5ID1+IHMvW1w8XD5cLyBdLy9nOworICAgICAgCisgICAgbXkgJWRvbmU7CisgICAgZm9yICRpICggJHJhd3ska2V5fSApIHsKKyAgICAgIHByaW50IEhUTUwgIjx0cj4iOworICAgICAgZm9yICRqICggQCRpICkgeworCW15ICgkdGVzdCwgJGFyZ3MpOworCSgkdGVzdCwgJGFyZ3MpID0gc3BsaXQoLywvLCBzaGlmdChAJGopKTsKKworCXByaW50IEhUTUwgIjx0aCBjbGFzcz1cInRlc3ROYW1lXCI+IjsKKwlpZighJGRvbmV7JHRlc3R9KSB7CisJICBwcmludCBIVE1MICI8YSBuYW1lPVwiIi4kcHJpbnRrZXkuIl8iLiR0ZXN0LiJcIj4iLiR0ZXN0LiI8L2E+IjsKKwkgICRkb25leyR0ZXN0fSA9IDE7CisJfSBlbHNlIHsKKwkgIHByaW50IEhUTUwgJHRlc3Q7CisJfQorCXByaW50IEhUTUwgIjwvdGg+IjsKKworCXByaW50IEhUTUwgIjx0ZCBjbGFzcz1cInN0cmluZ1wiPiIuJGFyZ3MuIjwvdGQ+IjsKKwkKKwlwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzZXB2YWx1ZVwiPiIuc2hpZnQoQCRqKS4iPC90ZD4iOworCXByaW50IEhUTUwgIjx0ZCBjbGFzcz1cInNlcHZhbHVlXCI+Ii5zaGlmdChAJGopLiI8L3RkPiI7CisKKwlteSBAZGF0YSA9IEB7IHNoaWZ0KEAkaikgfTsKKwlteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworCXByaW50IEhUTUwgIjx0ZCBjbGFzcz1cInNlcHZhbHVlXCI+Ii5mb3JtYXROdW1iZXIoNCwgJG11bHQsICRkcy0+Z2V0TWVhbikuIjwvdGQ+PHRkIGNsYXNzPVwic2VwdmFsdWVcIj4iLmZvcm1hdE51bWJlcig0LCAkbXVsdCwgJGRzLT5nZXRFcnJvcikuIjwvdGQ+IjsKKwlpZigkI3sgJGogfSA+PSAwKSB7CisJICBwcmludCBIVE1MICI8dGQgY2xhc3M9XCJzZXB2YWx1ZVwiPiIuc2hpZnQoQCRqKS4iPC90ZD4iOworCX0KKwlwcmludCBIVE1MICI8L3RyPlxuIjsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKworc3ViIHN0b3JlIHsKKyAgJHJhd3skY3VycmVudH1bJGV4cCsrXSA9IFtAX107Cit9CisKK3N1YiBvdXRwdXRSb3cgeworICAjJHJhd3skY3VycmVudH1bJGV4cCsrXSA9ICBbQF9dOworICBteSAkdGVzdE5hbWUgPSBzaGlmdDsKKyAgbXkgQGl0ZXJQZXJQYXNzID0gQHtzaGlmdChAXyl9OworICBteSBAbm9vcGVycyA9ICBAe3NoaWZ0KEBfKX07CisgICBteSBAdGltZWRhdGEgPSAgQHtzaGlmdChAXyl9OworICBteSBAbm9ldmVudHM7CisgIGlmKCQjXyA+PSAwKSB7CisgICAgQG5vZXZlbnRzID0gIEB7c2hpZnQoQF8pfTsKKyAgfQorICBpZighJGluVGFibGUpIHsKKyAgICBpZihAbm9ldmVudHMpIHsKKyAgICAgICRwcmludEV2ZW50cyA9IDE7CisgICAgICBzdGFydFRhYmxlOworICAgIH0gZWxzZSB7CisgICAgICBzdGFydFRhYmxlOworICAgIH0KKyAgfQorICBkZWJ1ZygiTm8gZXZlbnRzOiBAbm9ldmVudHMsICQjbm9ldmVudHNcbiIpOworCisgIG15ICRqOworICBteSAkbG9jID0gJGN1cnJlbnQ7CisgICRsb2MgPX4gcy9cPGJyXD4vIC9nOworICAkbG9jID1+IHMvW1w8XD5cLyBdLy9nOworCisgICMgRmluaXNoZWQgb25lIHJvdyBvZiByZXN1bHRzLiBPdXRwdXR0aW5nCisgIG5ld1JvdzsKKyAgI291dHB1dERhdGEoJHRlc3ROYW1lLCAiTEVGVCIpOworICBwcmludCBIVE1MICI8dGggY2xhc3M9XCJ0ZXN0TmFtZVwiPjxhIGhyZWY9XCIjIi4kbG9jLiJfIi4kdGVzdE5hbWUuIlwiPiR0ZXN0TmFtZTwvYT48L3RoPlxuIjsKKyAgI291dHB1dERhdGEoJGl0ZXJDb3VudCk7CisgICNvdXRwdXREYXRhKCRub29wZXJzWzBdLCAiUklHSFQiKTsKKyAgb3V0cHV0VmFsdWUoJG5vb3BlcnNbMF0pOworCisgIGlmKCEkcHJpbnRFdmVudHMpIHsKKyAgICBmb3IgJGogKCAwIC4uICQjdGltZWRhdGEgKSB7CisgICAgICBteSAkcGVyT3BlcmF0aW9uID0gJHRpbWVkYXRhWyRqXS0+ZGl2aWRlQnlTY2FsYXIoJGl0ZXJQZXJQYXNzWyRqXSokbm9vcGVyc1skal0pOyAjIHRpbWUgcGVyIG9wZXJhdGlvbgorICAgICAgI2RlYnVnKCJUaW1lIHBlciBvcGVyYXRpb246ICIuZm9ybWF0U2Vjb25kcyg0LCAkcGVyT3BlcmF0aW9uLT5nZXRNZWFuLCAkcGVyT3BlcmF0aW9uLT5nZXRFcnJvcikuIlxuIik7CisgICAgICBvdXRwdXREaXN0KCRwZXJPcGVyYXRpb24pOworICAgIH0KKyAgfQorICBteSAkYmFzZUxpbmVQTyA9ICR0aW1lZGF0YVswXS0+ZGl2aWRlQnlTY2FsYXIoJGl0ZXJQZXJQYXNzWzBdKiRub29wZXJzWzBdKTsKKyAgZm9yICRqICggMSAuLiAkI3RpbWVkYXRhICkgeworICAgIG15ICRwZXJPcGVyYXRpb24gPSAkdGltZWRhdGFbJGpdLT5kaXZpZGVCeVNjYWxhcigkaXRlclBlclBhc3NbJGpdKiRub29wZXJzWyRqXSk7ICMgdGltZSBwZXIgb3BlcmF0aW9uCisgICAgbXkgJHJhdGlvID0gJGJhc2VMaW5lUE8tPnN1YnRyYWN0KCRwZXJPcGVyYXRpb24pOworICAgICRyYXRpbyA9ICRyYXRpby0+ZGl2aWRlKCRwZXJPcGVyYXRpb24pOworICAgIG91dHB1dERpc3QoJHJhdGlvLCAiJSIpOworICB9ICAgCisgIGlmIChAbm9ldmVudHMpIHsKKyAgICBmb3IgJGogKCAwIC4uICQjdGltZWRhdGEgKSB7CisgICAgICAjb3V0cHV0RGF0YSgkbm9ldmVudHNbJGpdLCAiUklHSFQiKTsKKyAgICAgIG91dHB1dFZhbHVlKCRub2V2ZW50c1skal0pOworICAgIH0KKyAgICBmb3IgJGogKCAwIC4uICQjdGltZWRhdGEgKSB7CisgICAgICBteSAkcGVyRXZlbnQgPSAgJHRpbWVkYXRhWyRqXS0+ZGl2aWRlQnlTY2FsYXIoJGl0ZXJQZXJQYXNzWyRqXSokbm9ldmVudHNbJGpdKTsgIyB0aW1lIHBlciBldmVudAorICAgICAgI2RlYnVnKCJUaW1lIHBlciBvcGVyYXRpb246ICIuZm9ybWF0U2Vjb25kcyg0LCAkcGVyRXZlbnQtPmdldE1lYW4sICRwZXJFdmVudC0+Z2V0RXJyb3IpLiJcbiIpOworICAgICAgb3V0cHV0RGlzdCgkcGVyRXZlbnQpOworICAgIH0gICAKKyAgICBteSAkYmFzZUxpbmVQTyA9ICR0aW1lZGF0YVswXS0+ZGl2aWRlQnlTY2FsYXIoJGl0ZXJQZXJQYXNzWzBdKiRub2V2ZW50c1swXSk7CisgICAgZm9yICRqICggMSAuLiAkI3RpbWVkYXRhICkgeworICAgICAgbXkgJHBlck9wZXJhdGlvbiA9ICR0aW1lZGF0YVskal0tPmRpdmlkZUJ5U2NhbGFyKCRpdGVyUGVyUGFzc1skal0qJG5vZXZlbnRzWyRqXSk7ICMgdGltZSBwZXIgb3BlcmF0aW9uCisgICAgICBteSAkcmF0aW8gPSAkYmFzZUxpbmVQTy0+c3VidHJhY3QoJHBlck9wZXJhdGlvbik7CisgICAgICAkcmF0aW8gPSAkcmF0aW8tPmRpdmlkZSgkcGVyT3BlcmF0aW9uKTsKKyAgICAgIG91dHB1dERpc3QoJHJhdGlvLCAiJSIpOworICAgIH0gICAKKyAgfQorfQorCisKKzE7CisKKyNlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvUGVyZkZyYW1ld29yazRqLnBtIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVybGRyaXZlci9QZXJmRnJhbWV3b3JrNGoucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMwMDFhOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIvUGVyZkZyYW1ld29yazRqLnBtCkBAIC0wLDAgKzEsNDE1IEBACisjIS91c3IvbG9jYWwvYmluL3BlcmwKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqIENPUFlSSUdIVDoKKyMgICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyMgICogYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK3VzZSBzdHJpY3Q7CisKKyN1c2UgRGF0YXNldDsKK3VzZSBGb3JtYXQ7Cit1c2UgT3V0cHV0OworCitteSAkVkVSQk9TRSA9IDA7CitteSAkREVCVUcgICA9IDE7CitteSAkc3RhcnRfbCA9ICIiOyAjZm9ybWF0dGluZyBoZWxwCitteSAkZW5kX2wgICA9ICIiOworbXkgQHRlc3RBcmdzOyAjIGRpZmZlcmVudCBraW5kcyBvZiB0ZXN0cyB3ZSB3YW50IHRvIGRvCitteSAkZGF0YWRpciA9ICJkYXRhIjsKK215ICRleHRyYUFyZ3M7ICMgc3R1ZmYgdGhhdCBhbHdheXMgZ2V0cyBwYXNzZWQgdG8gdGhlIHRlc3QgcHJvZ3JhbQorCisKK215ICRpdGVyQ291bnQgPSAwOworbXkgJE5VTVBBU1NFUyA9IDQ7CitteSAkVElNRSA9IDI7CitteSAkSVRFUkFUSU9OUzsgICAjQWRkZWQgYnkgRG91ZworbXkgJERBVEFESVI7CisKK3N1YiBzZXR1cE9wdGlvbnMgeworICBteSAlb3B0aW9ucyA9ICV7c2hpZnQgQF99OworCisgIGlmKCRvcHRpb25zeyJ0aW1lIn0pIHsKKyAgICAkVElNRSA9ICRvcHRpb25zeyJ0aW1lIn07CisgIH0KKworICBpZigkb3B0aW9uc3sicGFzc2VzIn0pIHsKKyAgICAkTlVNUEFTU0VTID0gJG9wdGlvbnN7InBhc3NlcyJ9OworICB9CisJCisgIGlmKCRvcHRpb25zeyJkYXRhRGlyIn0pIHsKKyAgICAkREFUQURJUiA9ICRvcHRpb25zeyJkYXRhRGlyIn07CisgIH0KKyAgCisgICMgQWRkZWQgYnkgRG91ZworICBpZiAoJG9wdGlvbnN7Iml0ZXJhdGlvbnMifSkgeworICAJJElURVJBVElPTlMgPSAkb3B0aW9uc3siaXRlcmF0aW9ucyJ9OworICB9Cit9CisKK3N1YiBydW5UZXN0cyB7CisgIGRlYnVnKCJFbnRlciBydW5UZXN0IGluIFBlcmZGcmFtZXdvcms0alxuIik7CisgIG15ICRvcHRpb25zID0gc2hpZnQ7CisgIG15IEBwcm9ncmFtczsKKyAgbXkgJHRlc3RzID0gc2hpZnQ7CisgIG15ICVkYXRhZmlsZXM7CisgIGlmKCQjXyA+PSAwKSB7ICMgbWF5YmUgbm8gZmlsZXMvbG9jYWxlcworICAgIG15ICRkYXRhZmlsZXMgPSBzaGlmdDsKKyAgICBpZigkZGF0YWZpbGVzKSB7CisgICAgICAlZGF0YWZpbGVzID0gJXskZGF0YWZpbGVzfTsKKyAgICB9CisgIH0KKyAgc2V0dXBPdXRwdXQoJG9wdGlvbnMpOworICBzZXR1cE9wdGlvbnMoJG9wdGlvbnMpOworCisgIG15KCRsb2NhbGUsICRpdGVyLCAkZGF0YSwgJHByb2dyYW0sICRhcmdzLCAkdmFyaWFibGUpOworIworIyAgT3V0ZXIgbG9vcCBydW5zIHRocm91Z2ggdGhlIGxvY2FsZXMgdG8gdGVzdAorIworICBpZiAoJWRhdGFmaWxlcykgeworICAgIGZvcmVhY2ggJGxvY2FsZSAoc29ydCBrZXlzICVkYXRhZmlsZXMgKSB7CisgICAgICBmb3JlYWNoICRkYXRhIChAeyAkZGF0YWZpbGVzeyRsb2NhbGV9IH0pIHsKKwljbG9zZVRhYmxlOworCW15ICRsb2NkYXRhID0gIiI7CisJaWYoISgkbG9jYWxlIGVxICIiKSkgeworCSAgJGxvY2RhdGEgPSAiPGI+TG9jYWxlOjwvYj4gJGxvY2FsZTxicj4iOworCX0KKwkkbG9jZGF0YSAuPSAiPGI+RGF0YWZpbGU6PC9iPiAkZGF0YTxicj4iOworCXN0YXJ0VGVzdCgkbG9jZGF0YSk7CisKKwlpZigkREFUQURJUikgeworCSAgY29tcGFyZUxvb3AgKCR0ZXN0cywgJGxvY2FsZSwgJERBVEFESVIuIi8iLiRkYXRhKTsKKwl9IGVsc2UgeworCSAgY29tcGFyZUxvb3AgKCR0ZXN0cywgJGxvY2FsZSwgJGRhdGEpOworCX0KKyAgICAgIH0KKyAgICB9CisgIH0gZWxzZSB7CisgICAgY29tcGFyZUxvb3AoJHRlc3RzKTsKKyAgfQorICBjbG9zZU91dHB1dCgpOworfQorCitzdWIgY29tcGFyZUxvb3AgeworICAjZGVidWcoImVudGVyIGNvbXBhcmVMb29wXG4iKTsKKyAgCisgIG15ICR0ZXN0cyA9IHNoaWZ0OworICAjZGVidWcoInRlc3RzICR0ZXN0cyIpOworICAjbXkgQHRlc3RzID0gQHskdGVzdHN9OworICBteSAldGVzdHMgPSAleyR0ZXN0c307CisgICNkZWJ1ZygidGVzdHMgJHRlc3RzIik7CisgIG15ICRsb2NhbGUgPSBzaGlmdDsKKyAgbXkgJGRhdGFmaWxlID0gc2hpZnQ7CisgIG15ICRsb2NBbmREYXRhID0gIiI7CisgIGlmKCRsb2NhbGUpIHsKKyAgICAkbG9jQW5kRGF0YSAuPSAiIC1MICRsb2NhbGUiOworICB9CisgIAorICBpZigkZGF0YWZpbGUpIHsKKyAgICAkbG9jQW5kRGF0YSAuPSAiIC1mICRkYXRhZmlsZSI7CisgIH0KKwkgIAorICBteSAkYXJnczsKKyAgbXkgKCRpLCAkaiwgJGFyZWYpOworICBmb3JlYWNoICRpICggc29ydCBrZXlzICV0ZXN0cyApIHsKKyAgICAjZGVidWcoIlRlc3Q6ICRpXG4iKTsKKyAgICAkYXJlZiA9ICR0ZXN0c3skaX07CisgICAgbXkgQHRpbWVkYXRhOworICAgIG15IEBpdGVyUGVyUGFzczsKKyAgICBteSBAbm9vcGVyczsKKyAgICBteSBAbm9ldmVudHM7CisKKyAgICBteSAkcHJvZ3JhbTsKKyAgICBteSBAYXJnc0FuZFRlc3Q7CisgICAgZm9yICRqICggMCAuLiAkI3skYXJlZn0gKSB7CisgICAgIyBmaXJzdCB3ZSBjYWxpYnJhdGUuIFVzZSB0aW1lIGZyb20gc29tZXdoZXJlCisgICAgIyBmaXJzdCB0ZXN0IGlzIHVzZWQgZm9yIGNhbGlicmF0aW9uCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgIyAgKCRwcm9ncmFtLCBAYXJnc0FuZFRlc3QpID0gc3BsaXQoL1wgLywgQHsgJHRlc3RzeyRpfSB9WyRqXSk7CisgICAgIyAgI01vZGlmaWVkIGJ5IERvdWcKKyAgICAjICAgbXkgJGNvbW1hbmRMaW5lOworICAgICMgIGlmICgkSVRFUkFUSU9OUykgeworICAgICMgIAkkY29tbWFuZExpbmUgPSAiJHByb2dyYW0gLWkgJElURVJBVElPTlMgLXAgJE5VTVBBU1NFUyAkbG9jQW5kRGF0YSBAYXJnc0FuZFRlc3QiOworICAgICMgIH0gZWxzZSB7CisgICAgIyAgCSRjb21tYW5kTGluZSA9ICIkcHJvZ3JhbSAtdCAkVElNRSAtcCAkTlVNUEFTU0VTICRsb2NBbmREYXRhIEBhcmdzQW5kVGVzdCI7CisgICAgIyAJfQorICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgbXkgJGN1c3RBcmdzOworICAgIG15ICR0ZXN0Q29tbWFuZCA9IEB7ICR0ZXN0c3skaX0gfVskal07CisgICAgICBpZiAoJHRlc3RDb21tYW5kID1+Ly0tLykgeworICAgICAgCSRjdXN0QXJncyA9ICQmIC4gJCc7CSNUaGUgbWF0Y2hlZCBwYXJ0IGFuZCB0aGUgcmlnaHQgcGFydAorICAgICAgCSR0ZXN0Q29tbWFuZCA9ICRgOwkJI1RoZSBsZWZ0IHBhcnQgZm9yIGZ1cnRodXIgcHJvY2Vzc2luZworICAgICAgfSBlbHNlIHsgJGN1c3RBcmdzID0gJyc7IH0KKyAgICAgICgkcHJvZ3JhbSwgQGFyZ3NBbmRUZXN0KSA9IHNwbGl0KC9cIC8sICR0ZXN0Q29tbWFuZCk7CisgICAgICBteSAkY29tbWFuZExpbmU7CisgICAgICBpZiAoJElURVJBVElPTlMpIHsKKyAgICAgIAkkY29tbWFuZExpbmUgPSAiJHByb2dyYW0gQGFyZ3NBbmRUZXN0IC1pICRJVEVSQVRJT05TIC1wICROVU1QQVNTRVMgJGxvY0FuZERhdGEgJGN1c3RBcmdzIjsKKyAgICAgIH0gZWxzZSB7CisgICAgICAJJGNvbW1hbmRMaW5lID0gIiRwcm9ncmFtIEBhcmdzQW5kVGVzdCAtdCAkVElNRSAtcCAkTlVNUEFTU0VTICRsb2NBbmREYXRhICRjdXN0QXJncyI7CisgICAgCX0KKyAgICAjZGVidWcoImN1c3RBcmdzOiRjdXN0QXJnc1xuIik7CisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgIAorICAgICAgbXkgQHJlcyA9IG1lYXN1cmUxKCRjb21tYW5kTGluZSk7CisgICAgICBzdG9yZSgiJGksICRwcm9ncmFtIEBhcmdzQW5kVGVzdCIsIEByZXMpOworCisgICAgICBwdXNoKEBpdGVyUGVyUGFzcywgc2hpZnQoQHJlcykpOworICAgICAgcHVzaChAbm9vcGVycywgc2hpZnQoQHJlcykpOworICAgICAgbXkgQGRhdGEgPSBAeyBzaGlmdChAcmVzKSB9OworICAgICAgaWYoJCNyZXMgPj0gMCkgeworCXB1c2goQG5vZXZlbnRzLCBzaGlmdChAcmVzKSk7CisgICAgICB9CisgICAgCisKKyAgICAgIHNoaWZ0KEBkYXRhKSBpZiAoQGRhdGEgPiAxKTsgIyBkaXNjYXJkIGZpcnN0IHJ1bgorCisgICAgICAjZGVidWcoImRhdGEgaXMgQGRhdGFcbiIpOworICAgICAgbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKworICAgICAgcHVzaChAdGltZWRhdGEsICRkcyk7CisgICAgfQorCisgICAgb3V0cHV0Um93KCRpLCBcQGl0ZXJQZXJQYXNzLCBcQG5vb3BlcnMsIFxAdGltZWRhdGEsIFxAbm9ldmVudHMpOworICB9CisKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGFycmF5IG9mOgorIyAgICAgICAgIFswXSBpdGVyYXRpb25zIHBlciBwYXNzCisjICAgICAgICAgWzFdIGV2ZW50cyBwZXIgaXRlcmF0aW9uCisjICAgICAgICAgWzIuLl0gbXMgcmVwb3J0ZWQgZm9yIGVhY2ggcGFzcywgaW4gb3JkZXIKKyMKK3N1YiBtZWFzdXJlMSB7CisgICAgIyBydW4gcGFzc2VzCisgICAgbXkgQHQgPSBjYWxsUHJvZyhzaGlmdCk7ICMiJHByb2dyYW0gJGFyZ3MgJGFyZ3NBbmRUZXN0Iik7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgICNwdXNoKEBtcywgJGJbMF0pOworICAgICAgICBwdXNoKEBtcywgc2hpZnQoQGIpKTsKKyAgICB9CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0KEBiKTsKKyAgICBteSAkb3BlcmF0aW9uc1Blckl0ZXIgPSBzaGlmdChAYik7CisgICAgbXkgJGV2ZW50c1Blckl0ZXI7CisgICAgaWYoJCNiID49IDApIHsKKyAgICAgICRldmVudHNQZXJJdGVyID0gc2hpZnQoQGIpOworICAgIH0KKworIyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyMgICAgb3V0KCJFdmVudHMgcGVyIGl0ZXJhdGlvbjogJGV2ZW50c1Blckl0ZXI8QlI+XG4iKTsKKyMgICAgZGVidWcoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyMgICAgaWYoJGV2ZW50c1Blckl0ZXIpIHsKKyMgICAgICBkZWJ1ZygiRXZlbnRzIHBlciBpdGVyYXRpb246ICRldmVudHNQZXJJdGVyPEJSPlxuIik7CisjICAgIH0KKworICAgIG15IEBtc19zdHIgPSBAbXM7CisgICAgJG1zX3N0clswXSAuPSAiIChkaXNjYXJkZWQpIiBpZiAoQG1zX3N0ciA+IDEpOworIyAgICBvdXQoIlJhdyB0aW1lcyAobXMvcGFzcyk6ICIsIGpvaW4oIiwgIiwgQG1zX3N0ciksICI8QlI+XG4iKTsKKyAgICBkZWJ1ZygiUmF3IHRpbWVzIChtcy9wYXNzKTogIiwgam9pbigiLCAiLCBAbXNfc3RyKSwgIjxCUj5cbiIpOworICAgIGlmKCRldmVudHNQZXJJdGVyKSB7CisgICAgICAoJGl0ZXJDb3VudCwgJG9wZXJhdGlvbnNQZXJJdGVyLCBcQG1zLCAkZXZlbnRzUGVySXRlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICgkaXRlckNvdW50LCAkb3BlcmF0aW9uc1Blckl0ZXIsIFxAbXMpOworICAgIH0KK30KKworCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhIERhdGFzZXQgb2JqZWN0LCBzY2FsZWQgYnkgaXRlcmF0aW9ucyBwZXIgcGFzcyBhbmQKKyMgICAgICAgICBldmVudHMgcGVyIGl0ZXJhdGlvbiwgdG8gZ2l2ZSB0aW1lIHBlciBldmVudAorIworc3ViIG1lYXN1cmUyIHsKKyAgICBteSBAcmVzID0gbWVhc3VyZTEoQF8pOworICAgIG15ICRpdGVyUGVyUGFzcyA9IHNoaWZ0KEByZXMpOworICAgIG15ICRvcGVyYXRpb25zUGVySXRlciA9IHNoaWZ0KEByZXMpOworICAgIG15IEBkYXRhID0gQHsgc2hpZnQoQHJlcykgfTsKKyAgICBteSAkZXZlbnRzUGVySXRlciA9IHNoaWZ0KEByZXMpOworICAgIAorCisgICAgc2hpZnQoQGRhdGEpIGlmIChAZGF0YSA+IDEpOyAjIGRpc2NhcmQgZmlyc3QgcnVuCisKKyAgICBteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworICAgICMkZHMtPnNldFNjYWxlKDEuMGUtMyAvICgkaXRlclBlclBhc3MgKiAkb3BlcmF0aW9uc1Blckl0ZXIpKTsKKyAgICAoJGRzLCAkaXRlclBlclBhc3MsICRvcGVyYXRpb25zUGVySXRlciwgJGV2ZW50c1Blckl0ZXIpOworfQorCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW52b2tlIHByb2dyYW0gYW5kIGNhcHR1cmUgcmVzdWx0cywgcGFzc2luZyBpdCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMsIG9yIGlmIG5lZ2F0aXZlLCB0aGUgZHVyYXRpb24KKyMgICAgICAgIGluIHNlY29uZHMuICBJZiBtb3JlIHRoYW4gb24gcGFzcyBpcyBkZXNpcmVkLCBwYXNzIGluCisjICAgICAgICBhIHN0cmluZywgZS5nLiwgIjEwMCAxMDAgMTAwIi4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIworIyBAcmV0dXJuIGFuIGFycmF5IG9mIHJlc3VsdHMuICBFYWNoIHJlc3VsdCBpcyBhbiBhcnJheSBSRUYKKyMgICAgICAgICBkZXNjcmliaW5nIG9uZSBwYXNzLiAgVGhlIGFycmF5IFJFRiBjb250YWluczoKKyMgICAgICAgICAtPlswXTogVGhlIG1ldGhvZCBuYW1lIGFzIHJlcG9ydGVkCisjICAgICAgICAgLT5bMV06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBiZWdpbiAuLi4nIGxpbmUKKyMgICAgICAgICAtPlsyXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGVuZCAuLi4nIGxpbmUKKyMgICAgICAgICAtPlszLi5dOiBHQyBtZXNzYWdlcyBmcm9tIHRoZSBKVk0sIGlmIGFueQorIworc3ViIGNhbGxQcm9nIHsKKyAgICBteSAkY21kID0gc2hpZnQ7CisgICAgI215ICRwYXQgPSBzaGlmdDsKKyAgICAjbXkgJG4gPSBzaGlmdDsKKworICAgICNteSAkY21kID0gImphdmEgLWNwIGM6XFxkZXZcXG15aWN1NGpcXGNsYXNzZXMgJFRFU1RDTEFTUyAkbWV0aG9kICRuICRwYXQiOworICAgIGRlYnVnKCAiWyRjbWRdXG4iKTsgIyBmb3IgZGVidWdnaW5nCisgICAgb3BlbihQSVBFLCAiJGNtZHwiKSBvciBkaWUgIkNhbid0IHJ1biBcIiRjbWRcIiI7CisgICAgbXkgQG91dDsKKyAgICB3aGlsZSAoPFBJUEU+KSB7CisgICAgICAgIHB1c2goQG91dCwgJF8pOworICAgIH0KKyAgICBjbG9zZShQSVBFKSBvciBkaWUgIlByb2dyYW0gZmFpbGVkOiBcIiRjbWRcIiI7CisKKyAgICBAb3V0ID0gZ3JlcCghL15cIy8sIEBvdXQpOyAgIyBmaWx0ZXIgb3V0IGNvbW1lbnRzCisKKyAgICAjZGVidWcoICJbIiwgam9pbigiXG4iLCBAb3V0KSwgIl1cbiIpOworCisgICAgbXkgQHJlc3VsdHM7CisgICAgbXkgJG1ldGhvZCA9ICcnOworICAgIG15ICRkYXRhID0gW107CisgICAgZm9yZWFjaCAoQG91dCkgeworICAgICAgICBuZXh0IHVubGVzcyAoL1xTLyk7CisKKyAgICAgICAgaWYgKC9ePVxzKihcdyspXHMqKFx3KylccyooLiopLykgeworICAgICAgICAgICAgbXkgKCRtLCAkc3RhdGUsICRkKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgICAgICNkZWJ1ZyAoIiRfID0+IFtbJG0gJHN0YXRlICEhISRkISEhICRkYXRhIF1dXG4iKTsKKyAgICAgICAgICAgIGlmICgkc3RhdGUgZXEgJ2JlZ2luJykgeworICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJGQpOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAnJyk7ICMgcGxhY2Vob2xkZXIgZm9yIGVuZCBkYXRhCisgICAgICAgICAgICB9IGVsc2lmICgkc3RhdGUgZXEgJ2VuZCcpIHsKKyAgICAgICAgICAgICAgICBpZiAoJG0gbmUgJG1ldGhvZCkgeworICAgICAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2QgZW5kIGRvZXMgbm90IG1hdGNoOiAkXyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRkYXRhLT5bMV0gPSAkZDsgIyBpbnNlcnQgZW5kIGRhdGEgYXQgWzFdCisgICAgICAgICAgICAgICAgI2RlYnVnKCAiIyRtZXRob2Q6Iiwgam9pbigiOyIsQCRkYXRhKSwgIlxuIik7CisgICAgICAgICAgICAgICAgdW5zaGlmdChAJGRhdGEsICRtZXRob2QpOyAjIGFkZCBtZXRob2QgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBwdXNoKEByZXN1bHRzLCAkZGF0YSk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICcnOworICAgICAgICAgICAgICAgICRkYXRhID0gW107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2lmICgvXlxbLykgeworICAgICAgICAgICAgaWYgKCRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAjIGlnbm9yZSBleHRyYW5lb3VzIEdDIG5vdGljZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICB9CisgICAgfQorCisgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisKKyAgICBAcmVzdWx0czsKK30KKworc3ViIGRlYnVnICB7CisgIG15ICRtZXNzYWdlOworICBpZigkREVCVUcgIT0gMCkgeworICAgIGZvcmVhY2ggJG1lc3NhZ2UgKEBfKSB7CisgICAgICBwcmludCBTVERFUlIgIiRtZXNzYWdlIjsKKyAgICB9CisgIH0KK30KKworc3ViIG1lYXN1cmUxQWxhbiB7CisgICNBZGRlZCBoZXJlLCB3YXMgZ2xvYmFsCisgIG15ICRDQUxJQlJBVEUgPSAyOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGluaXRpYWwgY2FsaWJyYXRpb24KKworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0OyAjIGFjdHVhbGx5IG1pZ2h0IGJlIC1zZWNvbmRzL3Bhc3MKKworICAgIG91dCgiPFA+TWVhc3VyaW5nICRtZXRob2QgdXNpbmcgJHBhdCwgIik7CisgICAgaWYgKCRpdGVyQ291bnQgPiAwKSB7CisgICAgICAgIG91dCgiJGl0ZXJDb3VudCBpdGVyYXRpb25zL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0KC0kaXRlckNvdW50LCAiIHNlY29uZHMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9CisKKyAgICAjIGlzICRpdGVyQ291bnQgYWN0dWFsbHkgLXNlY29uZHM/CisgICAgaWYgKCRpdGVyQ291bnQgPCAwKSB7CisKKyAgICAgICAgIyBjYWxpYnJhdGU6IGVzdGltYXRlIG1zL2l0ZXJhdGlvbgorICAgICAgICBwcmludCAiQ2FsaWJyYXRpbmcuLi4iOworICAgICAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsIC0kQ0FMSUJSQVRFKTsKKyAgICAgICAgcHJpbnQgImRvbmUuXG4iOworCisgICAgICAgIG15IEBkYXRhID0gc3BsaXQoL1xzKy8sICR0WzBdLT5bMl0pOworICAgICAgICBteSAkdGltZVBlckl0ZXIgPSAxLjBlLTMgKiAkZGF0YVswXSAvICRkYXRhWzJdOworICAgIAorICAgICAgICAjIGRldGVybWluZSBpdGVyYXRpb25zL3Bhc3MKKyAgICAgICAgJGl0ZXJDb3VudCA9IGludCgtJGl0ZXJDb3VudCAvICR0aW1lUGVySXRlciArIDAuNSk7CisKKyAgICAgICAgb3V0KCI8UD5DYWxpYnJhdGlvbiBwYXNzICgkQ0FMSUJSQVRFIHNlYyk6ICIpOworICAgICAgICBvdXQoIiRkYXRhWzBdIG1zLCAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVsyXSBpdGVyYXRpb25zID0gIik7CisgICAgICAgIG91dChmb3JtYXRTZWNvbmRzKDQsICR0aW1lUGVySXRlciksICIvaXRlcmF0aW9uPEJSPlxuIik7CisgICAgfQorICAgIAorICAgICMgcnVuIHBhc3NlcworICAgIHByaW50ICJNZWFzdXJpbmcgJGl0ZXJDb3VudCBpdGVyYXRpb25zIHggJE5VTVBBU1NFUyBwYXNzZXMuLi4iOworICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgIiRpdGVyQ291bnQgIiB4ICROVU1QQVNTRVMpOworICAgIHByaW50ICJkb25lLlxuIjsKKyAgICBteSBAbXMgPSAoKTsKKyAgICBteSBAYjsgIyBzY3JhdGNoCisgICAgZm9yIG15ICRhIChAdCkgeworICAgICAgICAjICRhLT5bMF06IG1ldGhvZCBuYW1lLCBjb3JyZXNwb25kcyB0byAkbWV0aG9kCisgICAgICAgICMgJGEtPlsxXTogJ2JlZ2luJyBkYXRhLCA9PSAkaXRlckNvdW50CisgICAgICAgICMgJGEtPlsyXTogJ2VuZCcgZGF0YSwgb2YgdGhlIGZvcm0gPG1zPiA8ZXZlbnRzUGVySXRlcj4KKyAgICAgICAgIyAkYS0+WzMuLi5dOiBnYyBtZXNzYWdlcyBmcm9tIEpWTSBkdXJpbmcgcGFzcworICAgICAgICBAYiA9IHNwbGl0KC9ccysvLCAkYS0+WzJdKTsKKyAgICAgICAgcHVzaChAbXMsICRiWzBdKTsKKyAgICB9CisgICAgbXkgJGV2ZW50c1Blckl0ZXIgPSAkYlsxXTsKKworICAgIG91dCgiSXRlcmF0aW9ucyBwZXIgcGFzczogJGl0ZXJDb3VudDxCUj5cbiIpOworICAgIG91dCgiRXZlbnRzIHBlciBpdGVyYXRpb246ICRldmVudHNQZXJJdGVyPEJSPlxuIik7CisKKyAgICBteSBAbXNfc3RyID0gQG1zOworICAgICRtc19zdHJbMF0gLj0gIiAoZGlzY2FyZGVkKSIgaWYgKEBtc19zdHIgPiAxKTsKKyAgICBvdXQoIlJhdyB0aW1lcyAobXMvcGFzcyk6ICIsIGpvaW4oIiwgIiwgQG1zX3N0ciksICI8QlI+XG4iKTsKKworICAgICgkaXRlckNvdW50LCAkZXZlbnRzUGVySXRlciwgQG1zKTsKK30KKworCisxOworCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9yZXNvdXJjZWJvdW5kbGVwZXJmLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcmVzb3VyY2Vib3VuZGxlcGVyZi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NWMyZDNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcmVzb3VyY2Vib3VuZGxlcGVyZi5wbApAQCAtMCwwICsxLDY5IEBACisjIS91c3IvYmluL3BlcmwKKworIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCit1c2FnZSgpIHVubGVzcyBkZWZpbmVkICgkRU5WeydJQ1U0Sl9ST09UJ30pOwordXNlIGxpYiAiJEVOVnsnSUNVNEpfUk9PVCd9L3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3Blcmxkcml2ZXIiOwordXNlIFBlcmZGcmFtZXdvcms0ajsKKworbXkgJElDVTRKX1JPT1QgPSAkRU5WeydJQ1U0Sl9ST09UJ307CiskVEVTVF9EQVRBPSIkSUNVNEpfUk9PVC9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbiI7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdWIgdXNhZ2V7CisgICAgcHJpbnQgIlBsZWFzZSBkZWZpbmUgSUNVNEpfUk9PVCBlbnYgdmFyaWFibGUuXG4iOworICAgIGV4aXQgLTE7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbGFzcworbXkgJFRFU1RDTEFTUyA9ICJjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLlJlc291cmNlQnVuZGxlUGVyZiI7IAorCitta2RpciAicmVzdWx0c19JQ1U0SiI7CisKK215ICRvcHRpb25zID0geworCSAgICAgICAidGl0bGUiPT4iUmVzb3VyY2VCdW5sZGUgcGVyZm9ybWFuY2UgdGVzdCIsCisJICAgICAgICJoZWFkZXJzIj0+IkphdmEgSUNVIiwKKwkgICAgICAgIm9wZXJhdGlvbklzIj0+InZhcmlvdXMiLAorCSAgICAgICAidGltZVBlck9wZXJhdGlvbklzIj0+IlRpbWUgcGVyIGVhY2ggZmV0Y2giLAorCSAgICAgICAicGFzc2VzIj0+IjEwIiwKKwkgICAgICAgInRpbWUiPT4iNjAiLAorCSAgICAgICAjIm91dHB1dFR5cGUiPT4iSFRNTCIsCisJICAgICAgICJkYXRhRGlyIj0+JFRFU1RfREFUQSwKKwkgICAgICAgIm91dHB1dERpciI9PiJyZXN1bHRzX0lDVTRKIgorCSAgICAgIH07CisKKyMgcHJvZ3JhbXMKKworbXkgJGNtZCA9ICJqYXZhIC1jcCBcIiRJQ1U0Sl9ST09UL2NsYXNzZXNcIiAkVEVTVENMQVNTIjsKKworbXkgJGRhdGFGaWxlcyA9ICIiOworCitteSAkdGVzdHMgPSB7IAorICAgICAgICAgICAgICAgIkVtcHR5IGFycmF5IiwgICAgICAgICAgIFsiJGNtZCBUZXN0RW1wdHlBcnJheUphdmEiLCAgICAgICAgICAgICAgICAgIiRjbWQgVGVzdEVtcHR5QXJyYXlJQ1UiXSwKKyAgICAgICAgICAgICAgICJFbXB0eSBFeHBsaWNpdCBTdHJpbmciLCBbIiRjbWQgVGVzdEVtcHR5RXhwbGljaXRTdHJpbmdKYXZhIiwgICAgICAgICIkY21kIFRlc3RFbXB0eUV4cGxpY2l0U3RyaW5nSUNVIl0sCisgICAgICAgICAgICAgICAiRW1wdHkgU3RyaW5nIiwgICAgICAgICAgWyIkY21kIFRlc3RFbXB0eVN0cmluZ0phdmEiLCAgICAgICAgICAgICAgICAiJGNtZCBUZXN0RW1wdHlTdHJpbmdJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgMTIzIiwgICAgICAgICAgICAgICBbIiRjbWQgVGVzdEdldDEyM0phdmEiLCAgICAgICAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXQxMjNJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgQmluYXJ5IFRlc3QiLCAgICAgICBbIiRjbWQgVGVzdEdldEJpbmFyeVRlc3RKYXZhIiwgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRCaW5hcnlUZXN0SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IEVtcHR5IEJpbmFyeSIsICAgICAgWyIkY21kIFRlc3RHZXRFbXB0eUJpbmFyeUphdmEiLCAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0QmluYXJ5VGVzdElDVSJdLAorICAgICAgICAgICAgICAgIkdldCBFbXB0eSBNZW51IiwgICAgICAgIFsiJGNtZCBUZXN0R2V0RW1wdHlNZW51SmF2YSIsICAgICAgICAgICAgICAgIiRjbWQgVGVzdEdldEVtcHR5TWVudUlDVSJdLAorICAgICAgICAgICAgICAgIkdldCBFbXB0eSBJbnQiLCAgICAgICAgIFsiJGNtZCBUZXN0R2V0RW1wdHlJbnRKYXZhIiwgICAgICAgICAgICAgICAgIiRjbWQgVGVzdEdldEVtcHR5SW50SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IEVtcHR5IEludCBBcnJheSIsICAgWyIkY21kIFRlc3RHZXRFbXB0eUludGVnZXJBcnJheUphdmEiLCAgICAgICAiJGNtZCBUZXN0R2V0RW1wdHlJbnRlZ2VyQXJyYXlJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgSW50IEFycmF5IiwgICAgICAgICBbIiRjbWQgVGVzdEdldEludGVnZXJBcnJheUphdmEiLCAgICAgICAgICAgICIkY21kIFRlc3RHZXRJbnRlZ2VyQXJyYXlJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgTWVudSIsICAgICAgICAgICAgICBbIiRjbWQgVGVzdEdldE1lbnVKYXZhIiwgICAgICAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRNZW51SUNVIl0sCisgICAgICAgICAgICAgICAiR2V0IE1pbnVzIE9uZSIsICAgICAgICAgWyIkY21kIFRlc3RHZXRNaW51c09uZUphdmEiLCAgICAgICAgICAgICAgICAiJGNtZCBUZXN0R2V0TWludXNPbmVJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgTWludXMgT25lIFVpbnQiLCAgICBbIiRjbWQgVGVzdEdldE1pbnVzT25lVWludEphdmEiLCAgICAgICAgICAgICIkY21kIFRlc3RHZXRNaW51c09uZVVpbnRJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgT25lIiwgICAgICAgICAgICAgICBbIiRjbWQgVGVzdEdldE9uZUphdmEiLCAgICAgICAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRPbmVJQ1UiXSwKKyAgICAgICAgICAgICAgICJHZXQgUGx1cyBPbmUiLCAgICAgICAgICBbIiRjbWQgVGVzdEdldFBsdXNPbmVKYXZhIiwgICAgICAgICAgICAgICAgICIkY21kIFRlc3RHZXRQbHVzT25lSUNVIl0sCisgICAgICAgICAgICAgICAiQ29uc3RydWN0aW9uIiwgICAgICAgICAgWyIkY21kIFRlc3RSZXNvdXJjZUJ1bmRsZUNvbnN0cnVjdGlvbkphdmEiLCAiJGNtZCBUZXN0UmVzb3VyY2VCdW5kbGVDb25zdHJ1Y3Rpb25JQ1UiXSwKKyAgICAgICAgICAgICAgICJaZXJvIFRlc3QiLCAgICAgICAgICAgICBbIiRjbWQgVGVzdFplcm9UZXN0SmF2YSIsICAgICAgICAgICAgICAgICAgICIkY21kIFRlc3RaZXJvVGVzdElDVSJdCisgICAgICAgICAgICB9OworCisKK3J1blRlc3RzKCRvcHRpb25zLCAkdGVzdHMsICRkYXRhRmlsZXMpOworCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VjaGFyYWN0ZXJwZXJmLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvdWNoYXJhY3RlcnBlcmYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGI1NjI3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VjaGFyYWN0ZXJwZXJmLnBsCkBAIC0wLDAgKzEsNDg5IEBACisjLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KKworIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisKK3VzZSBzdHJpY3Q7CisKKyMgQXNzdW1lIHdlIGFyZSBydW5uaW5nIHdpdGhpbiB0aGUgaWN1NGogcm9vdCBkaXJlY3RvcnkKK3VzZSBsaWIgJ3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmJzsKKwordXNlIERhdGFzZXQ7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbGFzcworbXkgJFRFU1RDTEFTUyA9ICdjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLlVDaGFyYWN0ZXJQZXJmJzsKKworIyBNZXRob2RzIHRvIGJlIHRlc3RlZC4gIEVhY2ggcGFpciByZXByZXNlbnRzIGEgdGVzdCBtZXRob2QgYW5kCisjIGEgYmFzZWxpbmUgbWV0aG9kIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24uCitteSBATUVUSE9EUyAgPSAoWydEaWdpdCcsICdKREtEaWdpdCddLAorICAgICAgICAgICAgICAgIFsnR2V0TnVtZXJpY1ZhbHVlJywgJ0pES0dldE51bWVyaWNWYWx1ZSddLAorICAgICAgICAgICAgICAgIFsnR2V0VHlwZScsICdKREtHZXRUeXBlJ10sCisgICAgICAgICAgICAgICAgWydJc0RlZmluZWQnLCAnSkRLSXNEZWZpbmVkJ10sCisgICAgICAgICAgICAgICAgWydJc0RpZ2l0JywgJ0pES0lzRGlnaXQnXSwKKyAgICAgICAgICAgICAgICBbJ0lzSWRlbnRpZmllcklnbm9yYWJsZScsICdKREtJc0lkZW50aWZpZXJJZ25vcmFibGUnXSwKKyAgICAgICAgICAgICAgICBbJ0lzSVNPQ29udHJvbCcsICdKREtJc0lTT0NvbnRyb2wnXSwKKyAgICAgICAgICAgICAgICBbJ0lzTGV0dGVyJywgJ0pES0lzTGV0dGVyJ10sCisgICAgICAgICAgICAgICAgWydJc0xldHRlck9yRGlnaXQnLCAnSkRLSXNMZXR0ZXJPckRpZ2l0J10sCisgICAgICAgICAgICAgICAgWydJc0xvd2VyQ2FzZScsICdKREtJc0xvd2VyQ2FzZSddLAorICAgICAgICAgICAgICAgIFsnSXNTcGFjZUNoYXInLCAnSkRLSXNTcGFjZUNoYXInXSwKKyAgICAgICAgICAgICAgICBbJ0lzVGl0bGVDYXNlJywgJ0pES0lzVGl0bGVDYXNlJ10sCisgICAgICAgICAgICAgICAgWydJc1VuaWNvZGVJZGVudGlmaWVyUGFydCcsICdKREtJc1VuaWNvZGVJZGVudGlmaWVyUGFydCddLAorICAgICAgICAgICAgICAgIFsnSXNVbmljb2RlSWRlbnRpZmllclN0YXJ0JywgJ0pES0lzVW5pY29kZUlkZW50aWZpZXJTdGFydCddLAorICAgICAgICAgICAgICAgIFsnSXNVcHBlckNhc2UnLCAnSkRLSXNVcHBlckNhc2UnXSwKKyAgICAgICAgICAgICAgICBbJ0lzV2hpdGVTcGFjZScsICdKREtJc1doaXRlU3BhY2UnXSwKKyAgICAgICAgICAgICAgICk7CisKKyMgUGF0dGVybnMgd2hpY2ggZGVmaW5lIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB1c2VkIGZvciB0ZXN0aW5nLgorbXkgQFBBVFRFUk5TID0gKCcwIGZmZmYnKTsKKworbXkgJENBTElCUkFURSA9IDI7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgaW5pdGlhbCBjYWxpYnJhdGlvbgorbXkgJERVUkFUSU9OID0gMTA7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgZWFjaCBwYXNzCitteSAkTlVNUEFTU0VTID0gNDsgIyBudW1iZXIgb2YgcGFzc2VzLiAgSWYgPiAxIHRoZW4gdGhlIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAjIGlzIGRpc2NhcmRlZCBhcyBhIEpJVCB3YXJtLXVwIHBhc3MuCisKK215ICRUQUJMRUFUVFIgPSAnQk9SREVSPSIxIiBDRUxMUEFERElORz0iNCIgQ0VMTFNQQUNJTkc9IjAiJzsKKworbXkgJFBMVVNfTUlOVVMgPSAiJnBsdXNtbjsiOworCitpZiAoJE5VTVBBU1NFUyA8IDMpIHsKKyAgICBkaWUgIk5lZWQgYXQgbGVhc3QgMyBwYXNzZXMuICBPbmUgaXMgZGlzY2FyZGVkIChKSVQgd2FybXVwKSBhbmQgbmVlZCB0d28gdG8gaGF2ZSAxIGRlZ3JlZSBvZiBmcmVlZG9tICh0IGRpc3RyaWJ1dGlvbikuIjsKK30KKworbXkgJE9VVDsgIyBzZWUgb3V0KCkKKworbWFpbigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIC4uLgorc3ViIG1haW4geworICAgIG15ICRkYXRlID0gbG9jYWx0aW1lOworICAgIG15ICR0aXRsZSA9ICJJQ1U0SiBQZXJmb3JtYW5jZSBUZXN0ICRkYXRlIjsKKworICAgIG15ICRodG1sID0gJGRhdGU7CisgICAgJGh0bWwgPX4gcy86Ly9nOyAjICc6JyBpbGxlZ2FsCisgICAgJGh0bWwgPX4gcy9ccypcZCskLy87ICMgZGVsZXRlIHllYXIKKyAgICAkaHRtbCA9fiBzL15cdytccyovLzsgIyBkZWxldGUgZG93CisgICAgJGh0bWwgPSAicGVyZiAkaHRtbC5odG1sIjsKKworICAgIG9wZW4oSFRNTCwiPiRodG1sIikgb3IgZGllICJDYW4ndCB3cml0ZSB0byAkaHRtbDogJCEiOworCisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxIVE1MPgorICAgPEhFQUQ+CisgICAgICA8VElUTEU+JHRpdGxlPC9USVRMRT4KKyAgIDwvSEVBRD4KKyAgIDxCT0RZPgorRU9GCisgICAgcHJpbnQgSFRNTCAiPEgxPiR0aXRsZTwvSDE+XG4iOworCisgICAgcHJpbnQgSFRNTCAiPEgyPiRURVNUQ0xBU1M8L0gyPlxuIjsKKworICAgIG15ICRyYXcgPSAiIjsKKworICAgIGZvciBteSAkbWV0aG9kUGFpciAoQE1FVEhPRFMpIHsKKworICAgICAgICBteSAkdGVzdE1ldGhvZCA9ICRtZXRob2RQYWlyLT5bMF07CisgICAgICAgIG15ICRiYXNlbGluZU1ldGhvZCA9ICRtZXRob2RQYWlyLT5bMV07CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PFRBQkxFICRUQUJMRUFUVFI+PFRSPjxURD5cbiI7CisgICAgICAgIHByaW50IEhUTUwgIjxQPjxCPiR0ZXN0TWV0aG9kIHZzLiAkYmFzZWxpbmVNZXRob2Q8L0I+PC9QPlxuIjsKKyAgICAgICAgCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSIEJHQ09MT1I9XCIjQ0NGRkZGXCI+XG4iOworICAgICAgICBwcmludCBIVE1MICI8VFI+PFREPlBhdHRlcm48L1REPjxURD4kdGVzdE1ldGhvZDwvVEQ+IjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFREPiRiYXNlbGluZU1ldGhvZDwvVEQ+PFREPlJhdGlvPC9URD48L1RSPlxuIjsKKworICAgICAgICAkT1VUID0gJyc7CisKKyAgICAgICAgZm9yIG15ICRwYXQgKEBQQVRURVJOUykgeworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD4kcGF0PC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPFA+PFRBQkxFICRUQUJMRUFUVFIgV0lEVEg9XCIxMDAlXCI+Iik7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSB0aGUgdGVzdCBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbiR0ZXN0TWV0aG9kICRwYXRcbiI7CisgICAgICAgICAgICBteSAkdCA9IG1lYXN1cmUyKCR0ZXN0TWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJHQtPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICAjIG1lYXN1cmUgYmFzZWxpbmUgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG5CZWdpbiAkYmFzZWxpbmVNZXRob2QgJHBhdFxuIjsKKyAgICAgICAgICAgIG15ICRiID0gbWVhc3VyZTIoJGJhc2VsaW5lTWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJGItPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjwvVEFCTEU+PC9QPiIpOworCisgICAgICAgICAgICAjIG91dHB1dCByYXRpbworICAgICAgICAgICAgbXkgJHIgPSAkdC0+ZGl2aWRlKCRiKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD48Qj4iLCBmb3JtYXRQZXJjZW50KDMsICRyLT5nZXRNZWFuKCksICRyLT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8L0I+PC9URD48L1RSPlxuIjsKKyAgICAgICAgfQorCisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKworICAgICAgICBwcmludCBIVE1MICI8UD5SYXcgZGF0YTo8L1A+XG4iOworICAgICAgICBwcmludCBIVE1MICRPVVQ7CisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKyAgICB9CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworICAgPC9CT0RZPgorPC9IVE1MPgorRU9GCisgICAgY2xvc2UoSFRNTCkgb3IgZGllICJDYW4ndCBjbG9zZSAkaHRtbDogJCEiOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dCB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0bG4geworICAgICRPVVQgLj0gam9pbignJywgQF8pIC4gIlxuIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGEgRGF0YXNldCBvYmplY3QsIHNjYWxlZCBieSBpdGVyYXRpb25zIHBlciBwYXNzIGFuZAorIyAgICAgICAgIGV2ZW50cyBwZXIgaXRlcmF0aW9uLCB0byBnaXZlIHRpbWUgcGVyIGV2ZW50CisjCitzdWIgbWVhc3VyZTIgeworICAgIG15IEBkYXRhID0gbWVhc3VyZTEoQF8pOworICAgIG15ICRpdGVyUGVyUGFzcyA9IHNoaWZ0KEBkYXRhKTsKKyAgICBteSAkZXZlbnRQZXJJdGVyID0gc2hpZnQoQGRhdGEpOworCisgICAgc2hpZnQoQGRhdGEpIGlmIChAZGF0YSA+IDEpOyAjIGRpc2NhcmQgZmlyc3QgcnVuCisKKyAgICBteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworICAgICRkcy0+c2V0U2NhbGUoMS4wZS0zIC8gKCRpdGVyUGVyUGFzcyAqICRldmVudFBlckl0ZXIpKTsKKyAgICAkZHM7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhcnJheSBvZjoKKyMgICAgICAgICBbMF0gaXRlcmF0aW9ucyBwZXIgcGFzcworIyAgICAgICAgIFsxXSBldmVudHMgcGVyIGl0ZXJhdGlvbgorIyAgICAgICAgIFsyLi5dIG1zIHJlcG9ydGVkIGZvciBlYWNoIHBhc3MsIGluIG9yZGVyCisjCitzdWIgbWVhc3VyZTEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0OyAjIGFjdHVhbGx5IG1pZ2h0IGJlIC1zZWNvbmRzL3Bhc3MKKworICAgIG91dCgiPFA+TWVhc3VyaW5nICRtZXRob2QgdXNpbmcgJHBhdCwgIik7CisgICAgaWYgKCRpdGVyQ291bnQgPiAwKSB7CisgICAgICAgIG91dCgiJGl0ZXJDb3VudCBpdGVyYXRpb25zL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0KC0kaXRlckNvdW50LCAiIHNlY29uZHMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9CisKKyAgICAjIGlzICRpdGVyQ291bnQgYWN0dWFsbHkgLXNlY29uZHM/CisgICAgaWYgKCRpdGVyQ291bnQgPCAwKSB7CisKKyAgICAgICAgIyBjYWxpYnJhdGU6IGVzdGltYXRlIG1zL2l0ZXJhdGlvbgorICAgICAgICBwcmludCAiQ2FsaWJyYXRpbmcuLi4iOworICAgICAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsIC0kQ0FMSUJSQVRFKTsKKyAgICAgICAgcHJpbnQgImRvbmUuXG4iOworCisgICAgICAgIG15IEBkYXRhID0gc3BsaXQoL1xzKy8sICR0WzBdLT5bMl0pOworICAgICAgICBteSAkdGltZVBlckl0ZXIgPSAxLjBlLTMgKiAkZGF0YVswXSAvICRkYXRhWzJdOworICAgIAorICAgICAgICAjIGRldGVybWluZSBpdGVyYXRpb25zL3Bhc3MKKyAgICAgICAgJGl0ZXJDb3VudCA9IGludCgtJGl0ZXJDb3VudCAvICR0aW1lUGVySXRlciArIDAuNSk7CisKKyAgICAgICAgb3V0KCI8UD5DYWxpYnJhdGlvbiBwYXNzICgkQ0FMSUJSQVRFIHNlYyk6ICIpOworICAgICAgICBvdXQoIiRkYXRhWzBdIG1zLCAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVsyXSBpdGVyYXRpb25zID0gIik7CisgICAgICAgIG91dChmb3JtYXRTZWNvbmRzKDQsICR0aW1lUGVySXRlciksICIvaXRlcmF0aW9uPEJSPlxuIik7CisgICAgfQorICAgIAorICAgICMgcnVuIHBhc3NlcworICAgIHByaW50ICJNZWFzdXJpbmcgJGl0ZXJDb3VudCBpdGVyYXRpb25zIHggJE5VTVBBU1NFUyBwYXNzZXMuLi4iOworICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgIiRpdGVyQ291bnQgIiB4ICROVU1QQVNTRVMpOworICAgIHByaW50ICJkb25lLlxuIjsKKyAgICBteSBAbXMgPSAoKTsKKyAgICBteSBAYjsgIyBzY3JhdGNoCisgICAgZm9yIG15ICRhIChAdCkgeworICAgICAgICAjICRhLT5bMF06IG1ldGhvZCBuYW1lLCBjb3JyZXNwb25kcyB0byAkbWV0aG9kCisgICAgICAgICMgJGEtPlsxXTogJ2JlZ2luJyBkYXRhLCA9PSAkaXRlckNvdW50CisgICAgICAgICMgJGEtPlsyXTogJ2VuZCcgZGF0YSwgb2YgdGhlIGZvcm0gPG1zPiA8ZXZlbnRzUGVySXRlcj4KKyAgICAgICAgIyAkYS0+WzMuLi5dOiBnYyBtZXNzYWdlcyBmcm9tIEpWTSBkdXJpbmcgcGFzcworICAgICAgICBAYiA9IHNwbGl0KC9ccysvLCAkYS0+WzJdKTsKKyAgICAgICAgcHVzaChAbXMsICRiWzBdKTsKKyAgICB9CisgICAgbXkgJGV2ZW50c1Blckl0ZXIgPSAkYlsxXTsKKworICAgIG91dCgiSXRlcmF0aW9ucyBwZXIgcGFzczogJGl0ZXJDb3VudDxCUj5cbiIpOworICAgIG91dCgiRXZlbnRzIHBlciBpdGVyYXRpb246ICRldmVudHNQZXJJdGVyPEJSPlxuIik7CisKKyAgICBteSBAbXNfc3RyID0gQG1zOworICAgICRtc19zdHJbMF0gLj0gIiAoZGlzY2FyZGVkKSIgaWYgKEBtc19zdHIgPiAxKTsKKyAgICBvdXQoIlJhdyB0aW1lcyAobXMvcGFzcyk6ICIsIGpvaW4oIiwgIiwgQG1zX3N0ciksICI8QlI+XG4iKTsKKworICAgICgkaXRlckNvdW50LCAkZXZlbnRzUGVySXRlciwgQG1zKTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBJbnZva2UgamF2YSB0byBydW4gJFRFU1RDTEFTUywgcGFzc2luZyBpdCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMsIG9yIGlmIG5lZ2F0aXZlLCB0aGUgZHVyYXRpb24KKyMgICAgICAgIGluIHNlY29uZHMuICBJZiBtb3JlIHRoYW4gb24gcGFzcyBpcyBkZXNpcmVkLCBwYXNzIGluCisjICAgICAgICBhIHN0cmluZywgZS5nLiwgIjEwMCAxMDAgMTAwIi4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdCwgdmFsdWVzIGluIGhleCBkaWdpdHMgd2l0aG91dCAweAorIworIyBAcmV0dXJuIGFuIGFycmF5IG9mIHJlc3VsdHMuICBFYWNoIHJlc3VsdCBpcyBhbiBhcnJheSBSRUYKKyMgICAgICAgICBkZXNjcmliaW5nIG9uZSBwYXNzLiAgVGhlIGFycmF5IFJFRiBjb250YWluczoKKyMgICAgICAgICAtPlswXTogVGhlIG1ldGhvZCBuYW1lIGFzIHJlcG9ydGVkCisjICAgICAgICAgLT5bMV06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBiZWdpbiAuLi4nIGxpbmUKKyMgICAgICAgICAtPlsyXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGVuZCAuLi4nIGxpbmUKKyMgICAgICAgICAtPlszLi5dOiBHQyBtZXNzYWdlcyBmcm9tIHRoZSBKVk0sIGlmIGFueQorIworc3ViIGNhbGxKYXZhIHsKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRuID0gc2hpZnQ7CisKKyAgICBteSAkY21kID0gImphdmEgLWNwIGNsYXNzZXMgJFRFU1RDTEFTUyAkbWV0aG9kICRuIC0gJHBhdCI7CisgICAgcHJpbnQgIlskY21kXVxuIjsgIyBmb3IgZGVidWdnaW5nCisgICAgb3BlbihQSVBFLCAiJGNtZHwiKSBvciBkaWUgIkNhbid0IHJ1biBcIiRjbWRcIiI7CisgICAgbXkgQG91dDsKKyAgICB3aGlsZSAoPFBJUEU+KSB7CisgICAgICAgIHB1c2goQG91dCwgJF8pOworICAgIH0KKyAgICBjbG9zZShQSVBFKSBvciBkaWUgIkphdmEgZmFpbGVkOiBcIiRjbWRcIiI7CisKKyAgICBAb3V0ID0gZ3JlcCghL15cIy8sIEBvdXQpOyAgIyBmaWx0ZXIgb3V0IGNvbW1lbnRzCisKKyAgICAjcHJpbnQgIlsiLCBqb2luKCJcbiIsIEBvdXQpLCAiXVxuIjsKKworICAgIG15IEByZXN1bHRzOworICAgIG15ICRtZXRob2QgPSAnJzsKKyAgICBteSAkZGF0YSA9IFtdOworICAgIGZvcmVhY2ggKEBvdXQpIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgKC9cUy8pOworCisgICAgICAgIGlmICgvXj1ccyooXHcrKVxzKihcdyspXHMqKC4qKS8pIHsKKyAgICAgICAgICAgIG15ICgkbSwgJHN0YXRlLCAkZCkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICAgICAjcHJpbnQgIiRfID0+IFtbJG0gJHN0YXRlICRkYXRhXV1cbiI7CisgICAgICAgICAgICBpZiAoJHN0YXRlIGVxICdiZWdpbicpIHsKKyAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2Qgd2FzIGJlZ3VuIGJ1dCBub3QgZmluaXNoZWQiIGlmICgkbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAkbWV0aG9kID0gJG07CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRkKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJycpOyAjIHBsYWNlaG9sZGVyIGZvciBlbmQgZGF0YQorICAgICAgICAgICAgfSBlbHNpZiAoJHN0YXRlIGVxICdlbmQnKSB7CisgICAgICAgICAgICAgICAgaWYgKCRtIG5lICRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIGVuZCBkb2VzIG5vdCBtYXRjaDogJF8iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZGF0YS0+WzFdID0gJGQ7ICMgaW5zZXJ0IGVuZCBkYXRhIGF0IFsxXQorICAgICAgICAgICAgICAgICNwcmludCAiIyRtZXRob2Q6Iiwgam9pbigiOyIsQCRkYXRhKSwgIlxuIjsKKyAgICAgICAgICAgICAgICB1bnNoaWZ0KEAkZGF0YSwgJG1ldGhvZCk7ICMgYWRkIG1ldGhvZCB0byBzdGFydAorICAgICAgICAgICAgICAgIHB1c2goQHJlc3VsdHMsICRkYXRhKTsKKyAgICAgICAgICAgICAgICAkbWV0aG9kID0gJyc7CisgICAgICAgICAgICAgICAgJGRhdGEgPSBbXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzaWYgKC9eXFsvKSB7CisgICAgICAgICAgICBpZiAoJG1ldGhvZCkgeworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkXyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICMgaWdub3JlIGV4dHJhbmVvdXMgR0Mgbm90aWNlcworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkaWUgIiRtZXRob2Qgd2FzIGJlZ3VuIGJ1dCBub3QgZmluaXNoZWQiIGlmICgkbWV0aG9kKTsKKworICAgIEByZXN1bHRzOworfQorCisjfCMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyN8IyBGb3JtYXQgYSBjb25maWRlbmNlIGludGVydmFsLCBhcyBnaXZlbiBieSBhIERhdGFzZXQuICBPdXRwdXQgaXMgYXMKKyN8IyBhcyBmb2xsb3dzOgorI3wjICAgMjQxLjIzIC0gMjQxLjk4ID0+IDI0MS41ICsvLSAwLjMKKyN8IyAgIDI0MS4yIC0gMjQzLjggPT4gMjQyICsvLSAxCisjfCMgICAyMTEuMCAtIDI0MS4wID0+IDIyNiArLy0gMTUgb3I/IDIzMCArLy0gMjAKKyN8IyAgIDIyMC4zIC0gMjM0LjMgPT4gMjI3ICsvLSA3CisjfCMgICAyMjAuMyAtIDMwMC4zID0+IDI2MCArLy0gNDAKKyN8IyAgIDIyMC4zIC0gMTAwMCA9PiA2MTAgKy8tIDM5MCBvcj8gNjAwICsvLSA0MDAKKyN8IyAgIDAuMDIyIC0gMC4wMjQgPT4gMC4wMjMgKy8tIDAuMDAxCisjfCMgICAwLjAyMiAtIDAuMDMyID0+IDAuMDI3ICsvLSAwLjAwNQorI3wjICAgMC4wMjIgLSAxLjAwMCA9PiAwLjUgKy8tIDAuNQorI3wjIEluIG90aGVyIHdvcmRzLCB0YWtlIG9uZSBzaWduaWZpY2FudCBkaWdpdCBvZiB0aGUgZXJyb3IgdmFsdWUgYW5kCisjfCMgZGlzcGxheSB0aGUgbWVhbiB0byB0aGUgc2FtZSBwcmVjaXNpb24uCisjfHN1YiBmb3JtYXREYXRhc2V0IHsKKyN8ICAgIG15ICRkcyA9IHNoaWZ0OworI3wgICAgbXkgJGxvd2VyID0gJGRzLT5nZXRNZWFuKCkgLSAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkdXBwZXIgPSAkZHMtPmdldE1lYW4oKSArICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICRzY2FsZSA9IDA7CisjfCAgICAjIEZpbmQgaG93IG1hbnkgaW5pdGlhbCBkaWdpdHMgYXJlIHRoZSBzYW1lCisjfCAgICB3aGlsZSAoJGxvd2VyIDwgMSB8fAorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyICo9IDEwOworI3wgICAgICAgICR1cHBlciAqPSAxMDsKKyN8ICAgICAgICAkc2NhbGUrKzsKKyN8ICAgIH0KKyN8ICAgIHdoaWxlICgkbG93ZXIgPj0gMTAgJiYKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAvPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgLz0gMTA7CisjfCAgICAgICAgJHNjYWxlLS07CisjfCAgICB9CisjfH0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBudW1iZXIsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBtdWx0aXBsaWVyCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyIgb3IgIjIzICsvLSAxMCIuCisjCitzdWIgZm9ybWF0TnVtYmVyIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJG11bHQgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIG15ICRyZXN1bHQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGEqJG11bHQpOworICAgIGlmIChkZWZpbmVkKCRkZWx0YSkpIHsKKyAgICAgICAgbXkgJGQgPSBmb3JtYXRTaWdEaWcoJHNpZ2RpZywgJGRlbHRhKiRtdWx0KTsKKyAgICAgICAgIyByZXN0cmljdCBQUkVDSVNJT04gb2YgZGVsdGEgdG8gdGhhdCBvZiBtYWluIG51bWJlcgorICAgICAgICBpZiAoJHJlc3VsdCA9fiAvXC4oXGQrKS8pIHsKKyAgICAgICAgICAgICMgVE9ETyBtYWtlIHRoaXMgd29yayBmb3IgdmFsdWVzIHdpdGggYWxsIHNpZ25pZmljYW50CisgICAgICAgICAgICAjIGRpZ2l0cyB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCwgZS5nLiwgMTIzNDAwMC4KKworICAgICAgICAgICAgIyBUT0RPIHRoZSBvdGhlciB0aGluZyB3cm9uZyB3aXRoIHRoaXMgaXMgdGhhdCBpdAorICAgICAgICAgICAgIyBpc24ndCByb3VuZGluZyB0aGUgJGRlbHRhIHByb3Blcmx5LiAgSGF2ZSB0byBwdXQKKyAgICAgICAgICAgICMgdGhpcyBsb2dpYyBpbnRvIGZvcm1hdFNpZ0RpZygpLgorICAgICAgICAgICAgbXkgJHggPSBsZW5ndGgoJDEpOworICAgICAgICAgICAgJGQgPX4gcy9cLihcZHskeH0pXGQrLy4kMS87CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCAuPSAiICRQTFVTX01JTlVTICIgLiAkZDsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSB0aW1lLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgbXMiIG9yICIyMyArLy0gMTAgbXMiLgorIworc3ViIGZvcm1hdFNlY29uZHMgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorCisgICAgbXkgQE1VTFQgPSAoMSAgICwgMWUzLCAgMWU2LCAgMWU5KTsKKyAgICBteSBAU1VGRiA9ICgncycgLCAnbXMnLCAndXMnLCAnbnMnKTsKKworICAgICMgRGV0ZXJtaW5lIG91ciBzY2FsZQorICAgIG15ICRpID0gMDsKKyAgICArKyRpIHdoaWxlICgkYSokTVVMVFskaV0gPCAxICYmICRpIDwgQE1VTFQpOworICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAkTVVMVFskaV0sICRhLCAkZGVsdGEpIC4gJyAnIC4gJFNVRkZbJGldOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHBlcmNlbnRhZ2UsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB2YWx1ZSB0byBiZSBmb3JtYXR0ZWQsIGFzIGEgZnJhY3Rpb24sIGUuZy4gMC41IGZvciA1MCUKKyMgQG9wdGlvbmFsIGRlbHRhLCBhcyBhIGZyYWN0aW9uCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyAlIiBvciAiMjMgKy8tIDEwICUiLgorIworc3ViIGZvcm1hdFBlcmNlbnQgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkYSA9IHNoaWZ0OworICAgIG15ICRkZWx0YSA9IHNoaWZ0OyAjIG1heSBiZSB1bmRlZgorICAgIAorICAgIGZvcm1hdE51bWJlcigkc2lnZGlnLCAxMDAsICRhLCAkZGVsdGEpIC4gJyAlJzsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBudW1iZXIgdG8gbiBzaWduaWZpY2FudCBkaWdpdHMgd2l0aG91dCB1c2luZyBleHBvbmVudGlhbAorIyBub3RhdGlvbi4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG51bWJlciB0byBiZSBmb3JtYXR0ZWQKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjEyMzQiICIxMi4zNCIgb3IgIjAuMDAxMjM0Ii4gIElmCisjICAgICAgICAgbnVtYmVyIHdhcyBuZWdhdGl2ZSwgcHJlZml4ZWQgYnkgJy0nLgorIworc3ViIGZvcm1hdFNpZ0RpZyB7CisgICAgbXkgJG4gPSBzaGlmdCgpIC0gMTsKKyAgICBteSAkYSA9IHNoaWZ0OworCisgICAgbG9jYWwgJF8gPSBzcHJpbnRmKCIlLiR7bn1lIiwgJGEpOworICAgIG15ICRzaWduID0gKHMvXi0vLykgPyAnLScgOiAnJzsKKworICAgIG15ICRhX2U7CisgICAgbXkgJHJlc3VsdDsKKyAgICBpZiAoL14oXGQpXC4oXGQrKWUoWy0rXVxkKykkLykgeworICAgICAgICBteSAoJGQsICRkbiwgJGUpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAkYV9lID0gJGU7CisgICAgICAgICRkIC49ICRkbjsKKyAgICAgICAgJGUrKzsKKyAgICAgICAgJGQgLj0gJzAnIHdoaWxlICgkZSA+IGxlbmd0aCgkZCkpOworICAgICAgICB3aGlsZSAoJGUgPCAxKSB7CisgICAgICAgICAgICAkZSsrOworICAgICAgICAgICAgJGQgPSAnMCcgLiAkZDsKKyAgICAgICAgfQorICAgICAgICBpZiAoJGUgPT0gbGVuZ3RoKCRkKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gJGQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiBzdWJzdHIoJGQsIDAsICRlKSAuICcuJyAuIHN1YnN0cigkZCwgJGUpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGllICJDYW4ndCBwYXJzZSAkXyI7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyNlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VuaWNvZGVzZXRwZXJmLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvdW5pY29kZXNldHBlcmYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzU4NTg4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VuaWNvZGVzZXRwZXJmLnBsCkBAIC0wLDAgKzEsNDc1IEBACisjLyoqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKi8KKworIyEvdXNyL2xvY2FsL2Jpbi9wZXJsCisKK3VzZSBzdHJpY3Q7CisKKyMgQXNzdW1lIHdlIGFyZSBydW5uaW5nIHdpdGhpbiB0aGUgaWN1NGogcm9vdCBkaXJlY3RvcnkKK3VzZSBsaWIgJ3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmJzsKKwordXNlIERhdGFzZXQ7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbGFzcworbXkgJFRFU1RDTEFTUyA9ICdjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLlVuaWNvZGVTZXRQZXJmJzsKKworIyBNZXRob2RzIHRvIGJlIHRlc3RlZC4gIEVhY2ggcGFpciByZXByZXNlbnRzIGEgdGVzdCBtZXRob2QgYW5kCisjIGEgYmFzZWxpbmUgbWV0aG9kIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24uCitteSBATUVUSE9EUyAgPSAoWydVbmljb2RlU2V0QWRkJywgJ0hhc2hTZXRBZGQnXSwKKyAgICAgICAgICAgICAgICBbJ1VuaWNvZGVTZXRDb250YWlucycsICdIYXNoU2V0Q29udGFpbnMnXSwKKyAgICAgICAgICAgICAgICBbJ1VuaWNvZGVTZXRJdGVyYXRlJywgJ0hhc2hTZXRJdGVyYXRlJ10pOworCisjIFBhdHRlcm5zIHdoaWNoIGRlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdXNlZCBmb3IgdGVzdGluZy4KK215IEBQQVRURVJOUyA9ICgnWzpMdDpdJywgJ1s6Q246XScpOworCitteSAkQ0FMSUJSQVRFID0gMjsgIyBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciBpbml0aWFsIGNhbGlicmF0aW9uCitteSAkRFVSQVRJT04gPSAxMDsgIyBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciBlYWNoIHBhc3MKK215ICROVU1QQVNTRVMgPSA0OyAjIG51bWJlciBvZiBwYXNzZXMuICBJZiA+IDEgdGhlbiB0aGUgZmlyc3QgcGFzcworICAgICAgICAgICAgICAgICAgICMgaXMgZGlzY2FyZGVkIGFzIGEgSklUIHdhcm0tdXAgcGFzcy4KKworbXkgJFRBQkxFQVRUUiA9ICdCT1JERVI9IjEiIENFTExQQURESU5HPSI0IiBDRUxMU1BBQ0lORz0iMCInOworCitteSAkUExVU19NSU5VUyA9ICImcGx1c21uOyI7CisKK2lmICgkTlVNUEFTU0VTIDwgMykgeworICAgIGRpZSAiTmVlZCBhdCBsZWFzdCAzIHBhc3Nlcy4gIE9uZSBpcyBkaXNjYXJkZWQgKEpJVCB3YXJtdXApIGFuZCBuZWVkIHR3byB0byBoYXZlIDEgZGVncmVlIG9mIGZyZWVkb20gKHQgZGlzdHJpYnV0aW9uKS4iOworfQorCitteSAkT1VUOyAjIHNlZSBvdXQoKQorCittYWluKCk7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgLi4uCitzdWIgbWFpbiB7CisgICAgbXkgJGRhdGUgPSBsb2NhbHRpbWU7CisgICAgbXkgJHRpdGxlID0gIklDVTRKIFBlcmZvcm1hbmNlIFRlc3QgJGRhdGUiOworCisgICAgbXkgJGh0bWwgPSAkZGF0ZTsKKyAgICAkaHRtbCA9fiBzLzovL2c7ICMgJzonIGlsbGVnYWwKKyAgICAkaHRtbCA9fiBzL1xzKlxkKyQvLzsgIyBkZWxldGUgeWVhcgorICAgICRodG1sID1+IHMvXlx3K1xzKi8vOyAjIGRlbGV0ZSBkb3cKKyAgICAkaHRtbCA9ICJwZXJmICRodG1sLmh0bWwiOworCisgICAgb3BlbihIVE1MLCI+JGh0bWwiKSBvciBkaWUgIkNhbid0IHdyaXRlIHRvICRodG1sOiAkISI7CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPEhUTUw+CisgICA8SEVBRD4KKyAgICAgIDxUSVRMRT4kdGl0bGU8L1RJVExFPgorICAgPC9IRUFEPgorICAgPEJPRFk+CitFT0YKKyAgICBwcmludCBIVE1MICI8SDE+JHRpdGxlPC9IMT5cbiI7CisKKyAgICBwcmludCBIVE1MICI8SDI+JFRFU1RDTEFTUzwvSDI+XG4iOworCisgICAgbXkgJHJhdyA9ICIiOworCisgICAgZm9yIG15ICRtZXRob2RQYWlyIChATUVUSE9EUykgeworCisgICAgICAgIG15ICR0ZXN0TWV0aG9kID0gJG1ldGhvZFBhaXItPlswXTsKKyAgICAgICAgbXkgJGJhc2VsaW5lTWV0aG9kID0gJG1ldGhvZFBhaXItPlsxXTsKKworICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUj48VFI+PFREPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PEI+JHRlc3RNZXRob2QgdnMuICRiYXNlbGluZU1ldGhvZDwvQj48L1A+XG4iOworICAgICAgICAKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PFRBQkxFICRUQUJMRUFUVFIgQkdDT0xPUj1cIiNDQ0ZGRkZcIj5cbiI7CisgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+UGF0dGVybjwvVEQ+PFREPiR0ZXN0TWV0aG9kPC9URD4iOworICAgICAgICBwcmludCBIVE1MICI8VEQ+JGJhc2VsaW5lTWV0aG9kPC9URD48VEQ+UmF0aW88L1REPjwvVFI+XG4iOworCisgICAgICAgICRPVVQgPSAnJzsKKworICAgICAgICBmb3IgbXkgJHBhdCAoQFBBVFRFUk5TKSB7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VFI+PFREPiRwYXQ8L1REPlxuIjsKKworICAgICAgICAgICAgb3V0KCI8UD48VEFCTEUgJFRBQkxFQVRUUiBXSURUSD1cIjEwMCVcIj4iKTsKKworICAgICAgICAgICAgIyBtZWFzdXJlIHRoZSB0ZXN0IG1ldGhvZAorICAgICAgICAgICAgb3V0KCI8VFI+PFREPiIpOworICAgICAgICAgICAgcHJpbnQgIlxuJHRlc3RNZXRob2QgJHBhdFxuIjsKKyAgICAgICAgICAgIG15ICR0ID0gbWVhc3VyZTIoJHRlc3RNZXRob2QsICRwYXQsIC0kRFVSQVRJT04pOworICAgICAgICAgICAgb3V0KCI8L1REPjwvVFI+Iik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+IiwgZm9ybWF0U2Vjb25kcyg0LCAkdC0+Z2V0TWVhbigpLCAkdC0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiL2V2ZW50PC9URD5cbiI7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSBiYXNlbGluZSBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbkJlZ2luICRiYXNlbGluZU1ldGhvZCAkcGF0XG4iOworICAgICAgICAgICAgbXkgJGIgPSBtZWFzdXJlMigkYmFzZWxpbmVNZXRob2QsICRwYXQsIC0kRFVSQVRJT04pOworICAgICAgICAgICAgb3V0KCI8L1REPjwvVFI+Iik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+IiwgZm9ybWF0U2Vjb25kcyg0LCAkYi0+Z2V0TWVhbigpLCAkdC0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiL2V2ZW50PC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPC9UQUJMRT48L1A+Iik7CisKKyAgICAgICAgICAgICMgb3V0cHV0IHJhdGlvCisgICAgICAgICAgICBteSAkciA9ICR0LT5kaXZpZGUoJGIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPjxCPiIsIGZvcm1hdFBlcmNlbnQoMywgJHItPmdldE1lYW4oKSwgJHItPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjwvQj48L1REPjwvVFI+XG4iOworICAgICAgICB9CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPC9UQUJMRT48L1A+XG4iOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPlJhdyBkYXRhOjwvUD5cbiI7CisgICAgICAgIHByaW50IEhUTUwgJE9VVDsKKyAgICAgICAgcHJpbnQgSFRNTCAiPC9UQUJMRT48L1A+XG4iOworICAgIH0KKworICAgIHByaW50IEhUTUwgPDxFT0Y7CisgICA8L0JPRFk+Cis8L0hUTUw+CitFT0YKKyAgICBjbG9zZShIVE1MKSBvciBkaWUgIkNhbid0IGNsb3NlICRodG1sOiAkISI7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0IHsKKyAgICAkT1VUIC49IGpvaW4oJycsIEBfKTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcHBlbmQgdGV4dCB0byB0aGUgZ2xvYmFsIHZhcmlhYmxlICRPVVQKK3N1YiBvdXRsbiB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXykgLiAiXG4iOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYSBEYXRhc2V0IG9iamVjdCwgc2NhbGVkIGJ5IGl0ZXJhdGlvbnMgcGVyIHBhc3MgYW5kCisjICAgICAgICAgZXZlbnRzIHBlciBpdGVyYXRpb24sIHRvIGdpdmUgdGltZSBwZXIgZXZlbnQKKyMKK3N1YiBtZWFzdXJlMiB7CisgICAgbXkgQGRhdGEgPSBtZWFzdXJlMShAXyk7CisgICAgbXkgJGl0ZXJQZXJQYXNzID0gc2hpZnQoQGRhdGEpOworICAgIG15ICRldmVudFBlckl0ZXIgPSBzaGlmdChAZGF0YSk7CisKKyAgICBzaGlmdChAZGF0YSkgaWYgKEBkYXRhID4gMSk7ICMgZGlzY2FyZCBmaXJzdCBydW4KKworICAgIG15ICRkcyA9IERhdGFzZXQtPm5ldyhAZGF0YSk7CisgICAgJGRzLT5zZXRTY2FsZSgxLjBlLTMgLyAoJGl0ZXJQZXJQYXNzICogJGV2ZW50UGVySXRlcikpOworICAgICRkczsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGFycmF5IG9mOgorIyAgICAgICAgIFswXSBpdGVyYXRpb25zIHBlciBwYXNzCisjICAgICAgICAgWzFdIGV2ZW50cyBwZXIgaXRlcmF0aW9uCisjICAgICAgICAgWzIuLl0gbXMgcmVwb3J0ZWQgZm9yIGVhY2ggcGFzcywgaW4gb3JkZXIKKyMKK3N1YiBtZWFzdXJlMSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkaXRlckNvdW50ID0gc2hpZnQ7ICMgYWN0dWFsbHkgbWlnaHQgYmUgLXNlY29uZHMvcGFzcworCisgICAgb3V0KCI8UD5NZWFzdXJpbmcgJG1ldGhvZCB1c2luZyAkcGF0LCAiKTsKKyAgICBpZiAoJGl0ZXJDb3VudCA+IDApIHsKKyAgICAgICAgb3V0KCIkaXRlckNvdW50IGl0ZXJhdGlvbnMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBvdXQoLSRpdGVyQ291bnQsICIgc2Vjb25kcy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0KKworICAgICMgaXMgJGl0ZXJDb3VudCBhY3R1YWxseSAtc2Vjb25kcz8KKyAgICBpZiAoJGl0ZXJDb3VudCA8IDApIHsKKworICAgICAgICAjIGNhbGlicmF0ZTogZXN0aW1hdGUgbXMvaXRlcmF0aW9uCisgICAgICAgIHByaW50ICJDYWxpYnJhdGluZy4uLiI7CisgICAgICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgLSRDQUxJQlJBVEUpOworICAgICAgICBwcmludCAiZG9uZS5cbiI7CisKKyAgICAgICAgbXkgQGRhdGEgPSBzcGxpdCgvXHMrLywgJHRbMF0tPlsyXSk7CisgICAgICAgIG15ICR0aW1lUGVySXRlciA9IDEuMGUtMyAqICRkYXRhWzBdIC8gJGRhdGFbMl07CisgICAgCisgICAgICAgICMgZGV0ZXJtaW5lIGl0ZXJhdGlvbnMvcGFzcworICAgICAgICAkaXRlckNvdW50ID0gaW50KC0kaXRlckNvdW50IC8gJHRpbWVQZXJJdGVyICsgMC41KTsKKworICAgICAgICBvdXQoIjxQPkNhbGlicmF0aW9uIHBhc3MgKCRDQUxJQlJBVEUgc2VjKTogIik7CisgICAgICAgIG91dCgiJGRhdGFbMF0gbXMsICIpOworICAgICAgICBvdXQoIiRkYXRhWzJdIGl0ZXJhdGlvbnMgPSAiKTsKKyAgICAgICAgb3V0KGZvcm1hdFNlY29uZHMoNCwgJHRpbWVQZXJJdGVyKSwgIi9pdGVyYXRpb248QlI+XG4iKTsKKyAgICB9CisgICAgCisgICAgIyBydW4gcGFzc2VzCisgICAgcHJpbnQgIk1lYXN1cmluZyAkaXRlckNvdW50IGl0ZXJhdGlvbnMgeCAkTlVNUEFTU0VTIHBhc3Nlcy4uLiI7CisgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAiJGl0ZXJDb3VudCAiIHggJE5VTVBBU1NFUyk7CisgICAgcHJpbnQgImRvbmUuXG4iOworICAgIG15IEBtcyA9ICgpOworICAgIG15IEBiOyAjIHNjcmF0Y2gKKyAgICBmb3IgbXkgJGEgKEB0KSB7CisgICAgICAgICMgJGEtPlswXTogbWV0aG9kIG5hbWUsIGNvcnJlc3BvbmRzIHRvICRtZXRob2QKKyAgICAgICAgIyAkYS0+WzFdOiAnYmVnaW4nIGRhdGEsID09ICRpdGVyQ291bnQKKyAgICAgICAgIyAkYS0+WzJdOiAnZW5kJyBkYXRhLCBvZiB0aGUgZm9ybSA8bXM+IDxldmVudHNQZXJJdGVyPgorICAgICAgICAjICRhLT5bMy4uLl06IGdjIG1lc3NhZ2VzIGZyb20gSlZNIGR1cmluZyBwYXNzCisgICAgICAgIEBiID0gc3BsaXQoL1xzKy8sICRhLT5bMl0pOworICAgICAgICBwdXNoKEBtcywgJGJbMF0pOworICAgIH0KKyAgICBteSAkZXZlbnRzUGVySXRlciA9ICRiWzFdOworCisgICAgb3V0KCJJdGVyYXRpb25zIHBlciBwYXNzOiAkaXRlckNvdW50PEJSPlxuIik7CisgICAgb3V0KCJFdmVudHMgcGVyIGl0ZXJhdGlvbjogJGV2ZW50c1Blckl0ZXI8QlI+XG4iKTsKKworICAgIG15IEBtc19zdHIgPSBAbXM7CisgICAgJG1zX3N0clswXSAuPSAiIChkaXNjYXJkZWQpIiBpZiAoQG1zX3N0ciA+IDEpOworICAgIG91dCgiUmF3IHRpbWVzIChtcy9wYXNzKTogIiwgam9pbigiLCAiLCBAbXNfc3RyKSwgIjxCUj5cbiIpOworCisgICAgKCRpdGVyQ291bnQsICRldmVudHNQZXJJdGVyLCBAbXMpOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEludm9rZSBqYXZhIHRvIHJ1biAkVEVTVENMQVNTLCBwYXNzaW5nIGl0IHRoZSBnaXZlbiBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucywgb3IgaWYgbmVnYXRpdmUsIHRoZSBkdXJhdGlvbgorIyAgICAgICAgaW4gc2Vjb25kcy4gIElmIG1vcmUgdGhhbiBvbiBwYXNzIGlzIGRlc2lyZWQsIHBhc3MgaW4KKyMgICAgICAgIGEgc3RyaW5nLCBlLmcuLCAiMTAwIDEwMCAxMDAiLgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjCisjIEByZXR1cm4gYW4gYXJyYXkgb2YgcmVzdWx0cy4gIEVhY2ggcmVzdWx0IGlzIGFuIGFycmF5IFJFRgorIyAgICAgICAgIGRlc2NyaWJpbmcgb25lIHBhc3MuICBUaGUgYXJyYXkgUkVGIGNvbnRhaW5zOgorIyAgICAgICAgIC0+WzBdOiBUaGUgbWV0aG9kIG5hbWUgYXMgcmVwb3J0ZWQKKyMgICAgICAgICAtPlsxXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGJlZ2luIC4uLicgbGluZQorIyAgICAgICAgIC0+WzJdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gZW5kIC4uLicgbGluZQorIyAgICAgICAgIC0+WzMuLl06IEdDIG1lc3NhZ2VzIGZyb20gdGhlIEpWTSwgaWYgYW55CisjCitzdWIgY2FsbEphdmEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJG4gPSBzaGlmdDsKKworICAgIG15ICRjbWQgPSAiamF2YSAtY3AgY2xhc3NlcyAkVEVTVENMQVNTICRtZXRob2QgJG4gJHBhdCI7CisgICAgIyBwcmludCAiWyRjbWRdXG4iOyAjIGZvciBkZWJ1Z2dpbmcKKyAgICBvcGVuKFBJUEUsICIkY21kfCIpIG9yIGRpZSAiQ2FuJ3QgcnVuIFwiJGNtZFwiIjsKKyAgICBteSBAb3V0OworICAgIHdoaWxlICg8UElQRT4pIHsKKyAgICAgICAgcHVzaChAb3V0LCAkXyk7CisgICAgfQorICAgIGNsb3NlKFBJUEUpIG9yIGRpZSAiSmF2YSBmYWlsZWQ6IFwiJGNtZFwiIjsKKworICAgIEBvdXQgPSBncmVwKCEvXlwjLywgQG91dCk7ICAjIGZpbHRlciBvdXQgY29tbWVudHMKKworICAgICNwcmludCAiWyIsIGpvaW4oIlxuIiwgQG91dCksICJdXG4iOworCisgICAgbXkgQHJlc3VsdHM7CisgICAgbXkgJG1ldGhvZCA9ICcnOworICAgIG15ICRkYXRhID0gW107CisgICAgZm9yZWFjaCAoQG91dCkgeworICAgICAgICBuZXh0IHVubGVzcyAoL1xTLyk7CisKKyAgICAgICAgaWYgKC9ePVxzKihcdyspXHMqKFx3KylccyooLiopLykgeworICAgICAgICAgICAgbXkgKCRtLCAkc3RhdGUsICRkKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgICAgICNwcmludCAiJF8gPT4gW1skbSAkc3RhdGUgJGRhdGFdXVxuIjsKKyAgICAgICAgICAgIGlmICgkc3RhdGUgZXEgJ2JlZ2luJykgeworICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJGQpOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAnJyk7ICMgcGxhY2Vob2xkZXIgZm9yIGVuZCBkYXRhCisgICAgICAgICAgICB9IGVsc2lmICgkc3RhdGUgZXEgJ2VuZCcpIHsKKyAgICAgICAgICAgICAgICBpZiAoJG0gbmUgJG1ldGhvZCkgeworICAgICAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2QgZW5kIGRvZXMgbm90IG1hdGNoOiAkXyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRkYXRhLT5bMV0gPSAkZDsgIyBpbnNlcnQgZW5kIGRhdGEgYXQgWzFdCisgICAgICAgICAgICAgICAgI3ByaW50ICIjJG1ldGhvZDoiLCBqb2luKCI7IixAJGRhdGEpLCAiXG4iOworICAgICAgICAgICAgICAgIHVuc2hpZnQoQCRkYXRhLCAkbWV0aG9kKTsgIyBhZGQgbWV0aG9kIHRvIHN0YXJ0CisgICAgICAgICAgICAgICAgcHVzaChAcmVzdWx0cywgJGRhdGEpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAnJzsKKyAgICAgICAgICAgICAgICAkZGF0YSA9IFtdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNpZiAoL15cWy8pIHsKKyAgICAgICAgICAgIGlmICgkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRfKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgZXh0cmFuZW91cyBHQyBub3RpY2VzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworCisgICAgQHJlc3VsdHM7Cit9CisKKyN8Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI3wjIEZvcm1hdCBhIGNvbmZpZGVuY2UgaW50ZXJ2YWwsIGFzIGdpdmVuIGJ5IGEgRGF0YXNldC4gIE91dHB1dCBpcyBhcworI3wjIGFzIGZvbGxvd3M6CisjfCMgICAyNDEuMjMgLSAyNDEuOTggPT4gMjQxLjUgKy8tIDAuMworI3wjICAgMjQxLjIgLSAyNDMuOCA9PiAyNDIgKy8tIDEKKyN8IyAgIDIxMS4wIC0gMjQxLjAgPT4gMjI2ICsvLSAxNSBvcj8gMjMwICsvLSAyMAorI3wjICAgMjIwLjMgLSAyMzQuMyA9PiAyMjcgKy8tIDcKKyN8IyAgIDIyMC4zIC0gMzAwLjMgPT4gMjYwICsvLSA0MAorI3wjICAgMjIwLjMgLSAxMDAwID0+IDYxMCArLy0gMzkwIG9yPyA2MDAgKy8tIDQwMAorI3wjICAgMC4wMjIgLSAwLjAyNCA9PiAwLjAyMyArLy0gMC4wMDEKKyN8IyAgIDAuMDIyIC0gMC4wMzIgPT4gMC4wMjcgKy8tIDAuMDA1CisjfCMgICAwLjAyMiAtIDEuMDAwID0+IDAuNSArLy0gMC41CisjfCMgSW4gb3RoZXIgd29yZHMsIHRha2Ugb25lIHNpZ25pZmljYW50IGRpZ2l0IG9mIHRoZSBlcnJvciB2YWx1ZSBhbmQKKyN8IyBkaXNwbGF5IHRoZSBtZWFuIHRvIHRoZSBzYW1lIHByZWNpc2lvbi4KKyN8c3ViIGZvcm1hdERhdGFzZXQgeworI3wgICAgbXkgJGRzID0gc2hpZnQ7CisjfCAgICBteSAkbG93ZXIgPSAkZHMtPmdldE1lYW4oKSAtICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICR1cHBlciA9ICRkcy0+Z2V0TWVhbigpICsgJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHNjYWxlID0gMDsKKyN8ICAgICMgRmluZCBob3cgbWFueSBpbml0aWFsIGRpZ2l0cyBhcmUgdGhlIHNhbWUKKyN8ICAgIHdoaWxlICgkbG93ZXIgPCAxIHx8CisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgKj0gMTA7CisjfCAgICAgICAgJHVwcGVyICo9IDEwOworI3wgICAgICAgICRzY2FsZSsrOworI3wgICAgfQorI3wgICAgd2hpbGUgKCRsb3dlciA+PSAxMCAmJgorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyIC89IDEwOworI3wgICAgICAgICR1cHBlciAvPSAxMDsKKyN8ICAgICAgICAkc2NhbGUtLTsKKyN8ICAgIH0KKyN8fQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG11bHRpcGxpZXIKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIiBvciAiMjMgKy8tIDEwIi4KKyMKK3N1YiBmb3JtYXROdW1iZXIgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkbXVsdCA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgbXkgJHJlc3VsdCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkYSokbXVsdCk7CisgICAgaWYgKGRlZmluZWQoJGRlbHRhKSkgeworICAgICAgICBteSAkZCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkZGVsdGEqJG11bHQpOworICAgICAgICAjIHJlc3RyaWN0IFBSRUNJU0lPTiBvZiBkZWx0YSB0byB0aGF0IG9mIG1haW4gbnVtYmVyCisgICAgICAgIGlmICgkcmVzdWx0ID1+IC9cLihcZCspLykgeworICAgICAgICAgICAgIyBUT0RPIG1ha2UgdGhpcyB3b3JrIGZvciB2YWx1ZXMgd2l0aCBhbGwgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICMgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsLCBlLmcuLCAxMjM0MDAwLgorCisgICAgICAgICAgICAjIFRPRE8gdGhlIG90aGVyIHRoaW5nIHdyb25nIHdpdGggdGhpcyBpcyB0aGF0IGl0CisgICAgICAgICAgICAjIGlzbid0IHJvdW5kaW5nIHRoZSAkZGVsdGEgcHJvcGVybHkuICBIYXZlIHRvIHB1dAorICAgICAgICAgICAgIyB0aGlzIGxvZ2ljIGludG8gZm9ybWF0U2lnRGlnKCkuCisgICAgICAgICAgICBteSAkeCA9IGxlbmd0aCgkMSk7CisgICAgICAgICAgICAkZCA9fiBzL1wuKFxkeyR4fSlcZCsvLiQxLzsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICIgJFBMVVNfTUlOVVMgIiAuICRkOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHRpbWUsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyBtcyIgb3IgIjIzICsvLSAxMCBtcyIuCisjCitzdWIgZm9ybWF0U2Vjb25kcyB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisKKyAgICBteSBATVVMVCA9ICgxICAgLCAxZTMsICAxZTYsICAxZTkpOworICAgIG15IEBTVUZGID0gKCdzJyAsICdtcycsICd1cycsICducycpOworCisgICAgIyBEZXRlcm1pbmUgb3VyIHNjYWxlCisgICAgbXkgJGkgPSAwOworICAgICsrJGkgd2hpbGUgKCRhKiRNVUxUWyRpXSA8IDEgJiYgJGkgPCBATVVMVCk7CisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsICRNVUxUWyRpXSwgJGEsICRkZWx0YSkgLiAnICcgLiAkU1VGRlskaV07Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgcGVyY2VudGFnZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCwgYXMgYSBmcmFjdGlvbiwgZS5nLiAwLjUgZm9yIDUwJQorIyBAb3B0aW9uYWwgZGVsdGEsIGFzIGEgZnJhY3Rpb24KKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzICUiIG9yICIyMyArLy0gMTAgJSIuCisjCitzdWIgZm9ybWF0UGVyY2VudCB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsIDEwMCwgJGEsICRkZWx0YSkgLiAnICUnOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciB0byBuIHNpZ25pZmljYW50IGRpZ2l0cyB3aXRob3V0IHVzaW5nIGV4cG9uZW50aWFsCisjIG5vdGF0aW9uLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMTIzNCIgIjEyLjM0IiBvciAiMC4wMDEyMzQiLiAgSWYKKyMgICAgICAgICBudW1iZXIgd2FzIG5lZ2F0aXZlLCBwcmVmaXhlZCBieSAnLScuCisjCitzdWIgZm9ybWF0U2lnRGlnIHsKKyAgICBteSAkbiA9IHNoaWZ0KCkgLSAxOworICAgIG15ICRhID0gc2hpZnQ7CisKKyAgICBsb2NhbCAkXyA9IHNwcmludGYoIiUuJHtufWUiLCAkYSk7CisgICAgbXkgJHNpZ24gPSAocy9eLS8vKSA/ICctJyA6ICcnOworCisgICAgbXkgJGFfZTsKKyAgICBteSAkcmVzdWx0OworICAgIGlmICgvXihcZClcLihcZCspZShbLStdXGQrKSQvKSB7CisgICAgICAgIG15ICgkZCwgJGRuLCAkZSkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICRhX2UgPSAkZTsKKyAgICAgICAgJGQgLj0gJGRuOworICAgICAgICAkZSsrOworICAgICAgICAkZCAuPSAnMCcgd2hpbGUgKCRlID4gbGVuZ3RoKCRkKSk7CisgICAgICAgIHdoaWxlICgkZSA8IDEpIHsKKyAgICAgICAgICAgICRlKys7CisgICAgICAgICAgICAkZCA9ICcwJyAuICRkOworICAgICAgICB9CisgICAgICAgIGlmICgkZSA9PSBsZW5ndGgoJGQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiAkZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuIHN1YnN0cigkZCwgMCwgJGUpIC4gJy4nIC4gc3Vic3RyKCRkLCAkZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlICRfIjsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworI2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJlZ1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSZWdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNlYzk2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSZWdUZXN0LmphdmEKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSZWdUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEJyZWFrSXRlcmF0b3JSZWdUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdVbnJlZygpIHsKKyAgICBMb2NhbGUgdGhhaWxhbmRfbG9jYWxlID0gbmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIik7CisgICAgTG9jYWxlIGZvb19sb2NhbGUgPSBuZXcgTG9jYWxlKCJmdSIsICJGVSIsICJGT08iKTsKKyAgICBCcmVha0l0ZXJhdG9yIGp3YmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgIEJyZWFrSXRlcmF0b3IgdXdiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgQnJlYWtJdGVyYXRvciB1c2JpID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgQnJlYWtJdGVyYXRvciB0d2JpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UodGhhaWxhbmRfbG9jYWxlKTsKKyAgICBCcmVha0l0ZXJhdG9yIHJ3YmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShuZXcgTG9jYWxlKCIiLCAiIiwgIiIpKTsKKworICAgIEJyZWFrSXRlcmF0b3Igc2JpID0gKEJyZWFrSXRlcmF0b3IpdXNiaS5jbG9uZSgpOworICAgIC8vIHRvZG86IHRoaXMgd2lsbCBjYXVzZSB0aGUgdGVzdCB0byBmYWlsLCBubyB3YXkgdG8gc2V0IGEgYnJlYWtpdGVyYXRvciB0byBudWxsIHRleHQgc28gY2FuJ3QgZml4IHlldC4KKyAgICAvLyBTdHJpbmcgdGV4dCA9ICJUaGlzIGlzIHNvbWUgdGVzdCwgYnkgZ29sbHkuIEJveSwgdGhleSBkb24ndCBtYWtlIHRlc3RzIGxpa2UgdGhleSB1c2VkIHRvLCBkbyB0aGV5PyAgVGhpcyBoZXJlIHRlc3QgYWluJ3Qgd29ydGggJDIuNTAuICBOb3BlLiI7CisgICAgLy8gc2JpLnNldFRleHQodGV4dCk7CisKKyAgICBhc3NlcnRUcnVlKCFCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIoIiIpLCAidW5yZWdpc3RlciBiZWZvcmUgcmVnaXN0ZXIiKTsgLy8gY292ZXJhZ2UKKworICAgIE9iamVjdCBrZXkwID0gQnJlYWtJdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKChCcmVha0l0ZXJhdG9yKXR3YmkuY2xvbmUoKSwgZm9vX2xvY2FsZSwgQnJlYWtJdGVyYXRvci5LSU5EX1dPUkQpOworICAgIE9iamVjdCBrZXkxID0gQnJlYWtJdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHNiaSwgTG9jYWxlLlVTLCBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgT2JqZWN0IGtleTIgPSBCcmVha0l0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UoKEJyZWFrSXRlcmF0b3IpdHdiaS5jbG9uZSgpLCBMb2NhbGUuVVMsIEJyZWFrSXRlcmF0b3IuS0lORF9XT1JEKTsKKyAgICAKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDAgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QxID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MiA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QzID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UodGhhaWxhbmRfbG9jYWxlKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0NCA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKGZvb19sb2NhbGUpOworCisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QwLCBqd2JpLCAiamFwYW4gd29yZCA9PSBqYXBhbiB3b3JkIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QxLCB0d2JpLCAidXMgd29yZCA9PSB0aGFpIHdvcmQiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDIsIHVzYmksICJ1cyBzZW50ZW5jZSA9PSB1cyBzZW50ZW5jZSIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MywgdHdiaSwgInRoYWkgd29yZCA9PSB0aGFpIHdvcmQiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDQsIHR3YmksICJmb28gd29yZCA9PSB0aGFpIHdvcmQiKTsKKyAgICB9CisKKyAgICBMb2NhbGVbXSBsb2NhbGVzID0gQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgCisgICAgYXNzZXJ0VHJ1ZShCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIoa2V5MiksICJ1bnJlZ2lzdGVyIHVzIHdvcmQgKHRoYWkgd29yZCkiKTsKKyAgICBhc3NlcnRUcnVlKCFCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIoa2V5MiksICJ1bnJlZ2lzdGVyIHNlY29uZCB0aW1lIik7CisgICAgYm9vbGVhbiBlcnJvciA9IGZhbHNlOworICAgIHRyeSB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihudWxsKTsKKyAgICB9CisgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycm9yID0gdHJ1ZTsKKyAgICB9CisKKyAgICBhc3NlcnRUcnVlKGVycm9yLCAidW5yZWdpc3RlciBudWxsIik7CisKKyAgICB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHNjaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUykuZ2V0VGV4dCgpOworICAgICAgICBpbnQgbGVuID0gc2NpLmdldEVuZEluZGV4KCkgLSBzY2kuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBhc3NlcnRFcXVhbChsZW4sIDAsICJ1cyB3b3JkIHRleHQ6ICIgKyBnZXRTdHJpbmcoc2NpKSk7CisgICAgfQorCisgICAgYXNzZXJ0VHJ1ZShBcnJheXMuYXNMaXN0KEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpKS5jb250YWlucyhmb29fbG9jYWxlKSwgImZvb19sb2NhbGUiKTsKKyAgICBhc3NlcnRUcnVlKEJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihrZXkwKSwgInVucmVnaXN0ZXIgZm9vIHdvcmQgKHRoYWkgd29yZCkiKTsKKyAgICBhc3NlcnRUcnVlKCFBcnJheXMuYXNMaXN0KEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpKS5jb250YWlucyhmb29fbG9jYWxlKSwgIm5vIGZvb19sb2NhbGUiKTsKKyAgICBhc3NlcnRFcXVhbChCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpLCB1c2JpLCAidXMgd29yZCA9PSB1cyBzZW50ZW5jZSIpOworICAgIAorICAgIGFzc2VydFRydWUoQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleTEpLCAidW5yZWdpc3RlciB1cyB3b3JkICh1cyBzZW50ZW5jZSkiKTsKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDAgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QxID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MiA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QzID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UodGhhaWxhbmRfbG9jYWxlKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0NCA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKGZvb19sb2NhbGUpOworCisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QwLCBqd2JpLCAiamFwYW5lc2Ugd29yZCBicmVhayIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MSwgdXdiaSwgInVzIHNlbnRlbmNlLXdvcmQgYnJlYWsiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDIsIHVzYmksICJ1cyBzZW50ZW5jZSBicmVhayIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MywgdHdiaSwgInRoYWkgd29yZCBicmVhayIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0NCwgcndiaSwgInJvb3Qgd29yZCBicmVhayIpOworCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHNjaSA9IHRlc3QxLmdldFRleHQoKTsKKyAgICAgICAgaW50IGxlbiA9IHNjaS5nZXRFbmRJbmRleCgpIC0gc2NpLmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwobGVuLCAwLCAidXMgc2VudGVuY2Utd29yZCBicmVhayB0ZXh0OiAiICsgZ2V0U3RyaW5nKHNjaSkpOworICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXNzZXJ0RXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocywgU3RyaW5nIG1zZykgeworICAgIG1zZyhtc2csIGxocy5lcXVhbHMocmhzKSA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsKGludCBsaHMsIGludCByaHMsIFN0cmluZyBtc2cpIHsKKyAgICBtc2cobXNnLCBsaHMgPT0gcmhzID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXNzZXJ0VHJ1ZShib29sZWFuIGFyZywgU3RyaW5nIG1zZykgeworICAgIG1zZyhtc2csIGFyZyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldFN0cmluZyhDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKGNpLmdldEVuZEluZGV4KCkgLSBjaS5nZXRCZWdpbkluZGV4KCkgKyAyKTsKKyAgICBidWYuYXBwZW5kKCInIik7CisgICAgZm9yIChjaGFyIGMgPSBjaS5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBjaS5uZXh0KCkpIHsKKyAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICB9CisgICAgYnVmLmFwcGVuZCgiJyIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZDM1M2E0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YQpAQCAtMCwwICsxLDIxOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyByZXNvdXJjZSBidW5kbGUgaXMgaW5jbHVkZWQgZm9yIHRlc3RpbmcgYW5kIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seS4KKyAqIEl0IGFwcGxpZXMgdGhlIGRpY3Rpb25hcnktYmFzZWQgYWxnb3JpdGhtIHRvIEVuZ2xpc2ggdGV4dCB0aGF0IGhhcyBoYWQgYWxsIHRoZQorICogc3BhY2VzIHJlbW92ZWQuICBPbmNlIHdlIGhhdmUgZ29vZCB0ZXN0IGNhc2VzIGZvciBUaGFpLCB3ZSB3aWxsIHJlcGxhY2UgdGhpcworICogd2l0aCBnb29kIHJlc291cmNlIGRhdGEgKGFuZCBhIGdvb2QgZGljdGlvbmFyeSBmaWxlKSBmb3IgVGhhaQorICovCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX05BTUUgPSAiL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IjsKKworICAgIC8vIGNhbGxpbmcgY29kZSB3aWxsIGhhbmRsZSBjYXNlIHdoZXJlIGRpY3Rpb25hcnkgZG9lcyBub3QgZXhpc3QKKworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgLy8gbmFtZXMgb2YgY2xhc3NlcyB0byBpbnN0YW50aWF0ZSBmb3IgdGhlIGRpZmZlcmVudCBraW5kcyBvZiBicmVhaworICAgICAgICAgICAgLy8gaXRlcmF0b3IuICBOb3RpY2Ugd2UncmUgbm93IHVzaW5nIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgICAgICAgIC8vIGZvciB3b3JkIGFuZCBsaW5lIGJyZWFraW5nLgorICAgICAgICAgICAgeyAgICJCcmVha0l0ZXJhdG9yQ2xhc3NlcyIsCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gbGluZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIgfSAvLyBzZW50ZW5jZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIHdvcmQtYnJlYWtpbmcgcnVsZXMgYXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGFzIGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJXb3JkQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAvLyBhbGwgb2Ygd2hpY2ggc2hvdWxkIG5vdCBpbmZsdWVuY2UgdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgICAgICIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgorCisgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaCBhcmUKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGUgRW5nbGlzaCBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgKyIkX2RpY3Rpb25hcnlfPVthLXpBLVpcXCdcXC1dOyIKKworICAgICAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IsIGthbmppLCBrYXRha2FuYSwgaGlyYWdhbmEsIENKSyBkaWFjcml0aWNhbHMsCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cworICAgICAgICAgICAgICAgICsiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGthbmppPVtcdTMwMDVcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZF07IgorICAgICAgICAgICAgICAgICAgICArICIka2F0YT1bXHUzMDk5LVx1MzA5Y1x1MzBhMS1cdTMwZmVdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGhpcmE9W1x1MzA0MS1cdTMwOWVcdTMwZmNdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGxldD1bW1s6TDpdWzpNYzpdXS1bJGthbmppJGthdGEkaGlyYV1dOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGRndD1bOk46XTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZDogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gZGFzaGVzLCBhcG9zdHJvcGhlcywgYW5kIHF1b3RhdGlvbiBtYXJrcworICAgICAgICAgICAgICAgICsiJG1pZF93b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ107IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gYXBvc3Ryb3BoZXMsIHFvdXRhdGlvbiBtYXJrcywgcGVyaW9kcywgY29tbWFzLCBhbmQgdGhlIEFyYWJpYworICAgICAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgICAgICAgICArIiRtaWRfbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gdGhlIHBlcmlvZCwgdGhlIG51bWJlciBzaWduLCBhbmQgYWxsIGN1cnJlbmN5IHN5bWJvbHMgZXhjZXB0IHRoZSBjZW50cyBzaWduCisgICAgICAgICAgICAgICAgKyIkcHJlX251bT1bW1s6U2M6XS1bXHUwMGEyXV1cXCNcXC5dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIHRoZSBwZXJjZW50LCBwZXItdGhvdXNhbmQsIHBlci10ZW4tdGhvdXNhbmQsIGFuZCBBcmFiaWMgcGVyY2VudAorICAgICAgICAgICAgICAgIC8vIHNpZ25zLCB0aGUgY2VudHMgc2lnbiwgYW5kIHRoZSBhbXBlcnNhbmQKKyAgICAgICAgICAgICAgICArIiRwb3N0X251bT1bXFwlXFwmXHUwMGEyXHUwNjZhXHUyMDMwXHUyMDMxXTsiCisKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvcnM6IGN1cnJlbnRseSBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICAgICArIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IGFsbCBzcGFjZSBzZXBhcmF0b3JzIGFuZCB0aGUgdGFiIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHdzPVtbOlpzOl1cdF07IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkIGlzIGEgc2VxdWVuY2Ugb2YgbGV0dGVycyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBsZXR0ZXIgYW5kCisgICAgICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93CisgICAgICAgICAgICAgICAgKyIkd29yZD0oJGxldCsoJG1pZF93b3JkJGxldCspKiRkYW5kYT8pOyIKKworICAgICAgICAgICAgICAgIC8vIGEgbnVtYmVyIGlzIGEgc2VxdWVuY2Ugb2YgZGlnaXRzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGRpZ2l0IGFuZAorICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdy4KKyAgICAgICAgICAgICAgICArIiRudW1iZXI9KCRkZ3QrKCRtaWRfbnVtJGRndCspKik7IgorCisgICAgICAgICAgICAgICAgLy8gYnJlYWsgYWZ0ZXIgZXZlcnkgY2hhcmFjdGVyLCB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucworICAgICAgICAgICAgICAgIC8vICh0aGlzIHdpbGwgY2F1c2UgcHVuY3R1YXRpb24gbWFya3MgdGhhdCBhcmVuJ3QgY29uc2lkZXJlZAorICAgICAgICAgICAgICAgIC8vIHBhcnQgb2Ygd29yZHMgb3IgbnVtYmVycyB0byBiZSB0cmVhdGVkIGFzIHdvcmRzIHVudG8gdGhlbXNlbHZlcykKKyAgICAgICAgICAgICAgICArIi47IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbnkgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZworICAgICAgICAgICAgICAgIC8vIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkd29yZD8oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFuZCBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCisgICAgICAgICAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKKyAgICAgICAgICAgICAgICAvLyBhbmQgbWF5IGVuZCB3aXRoIGEgbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiRwcmVfbnVtKCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIHdoaXRlc3BhY2UgKG9wdGlvbmFsbHkgd2l0aCBhIHNpbmdsZSB0cmFpbGluZworICAgICAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCisgICAgICAgICAgICAgICAgKyIkd3MqXHI/JGxzPzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2F0YWthbmEKKyAgICAgICAgICAgICAgICArIiRrYXRhKjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgSGlyYWdhbmEKKyAgICAgICAgICAgICAgICArIiRoaXJhKjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2FuamkKKyAgICAgICAgICAgICAgICArIiRrYW5qaSo7IiB9LAorCisgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIHNhbWUgbGluZS1icmVha2luZyBydWxlcyBhcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBkZWZhdWx0CisgICAgICAgICAgICAvLyByZXNvdXJjZSwgZXhjZXB0IHRoYXQgdGhlIExhdGluIGxldHRlcnMsIGFwb3N0cm9waGUsIGFuZCBoeXBoZW4gYXJlCisgICAgICAgICAgICAvLyBzcGVjaWZpZWQgYXMgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICB7ICAgIkxpbmVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgIiRfaWdub3JlXz1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgY2FzZSBSb21hbiBsZXR0ZXJzLCBhcG9zdHJvcGh5IGFuZCBkYXNoCisgICAgICAgICAgICAgICAgLy8gYXJlIGluIHRoZSBFbmdsaXNoIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICAgICArIiRfZGljdGlvbmFyeV89W2EtekEtWlxcJ1xcLV07IgorCisgICAgICAgICAgICAgICAgLy8gSGluZGkgcGhyYXNlIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICAgICArIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIGNhdXNlIGEgYnJlYWs6IEVUWCwgdGFiLCBMRiwgRkYsIExTLCBhbmQgUFMKKyAgICAgICAgICAgICAgICArIiRicmVhaz1bXHUwMDAzXHRcblxmXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIHByZXZlbnQgYSBicmVhazogdGhlIG5vbi1icmVha2luZyBzcGFjZQorICAgICAgICAgICAgICAgIC8vIGFuZCBzaW1pbGFyIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICArIiRuYnNwPVtcdTAwYTBcdTIwMDdcdTIwMTFcdWZlZmZdOyIKKworICAgICAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IHNwYWNlIHNlcGFyYXRvcnMgYW5kIGNvbnRyb2wgY2hhcmFjdGVycywgZXhjZXB0IGZvcgorICAgICAgICAgICAgICAgIC8vIENSIGFuZCB0aGUgb3RoZXIgY2hhcmFjdGVycyBtZW50aW9uZWQgYWJvdmUKKyAgICAgICAgICAgICAgICArIiRzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tWyRuYnNwJGJyZWFrXHJdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBkYXNoZXM6IGRhc2ggcHVuY3R1YXRpb24gYW5kIHRoZSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwgZXhjZXB0IGZvcgorICAgICAgICAgICAgICAgIC8vIG5vbi1icmVha2luZyBoeXBoZW5zCisgICAgICAgICAgICAgICAgKyIkZGFzaD1bW1s6UGQ6XVx1MDBhZF0tWyRuYnNwXV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IHByZWNlZGUgaXQ6IGN1cnJlbmN5IHN5bWJvbHMKKyAgICAgICAgICAgICAgICAvLyAoZXhjZXB0IHRoZSBjZW50cyBzaWduKSBhbmQgc3RhcnRpbmcgcHVuY3R1YXRpb24KKyAgICAgICAgICAgICAgICArIiRwcmVfd29yZD1bW1s6U2M6XS1bXHUwMGEyXV1bOlBzOl1cXFwiXFxcJ107IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IGZvbGxvdyBpdDogZW5kaW5nIHB1bmN0dWF0aW9uLAorICAgICAgICAgICAgICAgIC8vIG90aGVyIHB1bmN0dWF0aW9uIHRoYXQgdXN1YWxseSBvY2N1cnMgYXQgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLAorICAgICAgICAgICAgICAgIC8vIHNtYWxsIEthbmEgY2hhcmFjdGVycywgc29tZSBDSksgZGlhY3JpdGljcywgZXRjLgorICAgICAgICAgICAgICAgICsiJHBvc3Rfd29yZD1bWzpQZTpdXFwhXFxcIlxcXCdcXCVcXC5cXCxcXDpcXDtcXD9cdTAwYTJcdTAwYjBcdTA2NmFcdTIwMzAtXHUyMDM0IgorICAgICAgICAgICAgICAgICAgICArICJcdTIxMDNcdTIxMDVcdTIxMDlcdTMwMDFcdTMwMDJcdTMwMDVcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjMiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MzA4M1x1MzA4NVx1MzA4N1x1MzA4ZVx1MzA5OS1cdTMwOWVcdTMwYTFcdTMwYTNcdTMwYTVcdTMwYTdcdTMwYTkiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MzBjM1x1MzBlM1x1MzBlNVx1MzBlN1x1MzBlZVx1MzBmNVx1MzBmNlx1MzBmYy1cdTMwZmVcdWZmMDFcdWZmMGMiCisgICAgICAgICAgICAgICAgICAgICsgIlx1ZmYwZVx1ZmYxZl07IgorCisgICAgICAgICAgICAgICAgLy8gS2Fuamk6IGFjdHVhbGx5IGluY2x1ZGVzIGJvdGggS2FuamkgYW5kIEthbmEsIGV4Y2VwdCBmb3Igc21hbGwgS2FuYSBhbmQKKyAgICAgICAgICAgICAgICAvLyBDSksgZGlhY3JpdGljcworICAgICAgICAgICAgICAgICsiJGthbmppPVtbXHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRcdTMwNDEtXHUzMDk0XHUzMGExLVx1MzBmYV0tWyRwb3N0X3dvcmQkX2lnbm9yZV9dXTsiCisKKyAgICAgICAgICAgICAgICAvLyBkaWdpdHMKKyAgICAgICAgICAgICAgICArIiRkaWdpdD1bWzpOZDpdWzpObzpdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBwZXJpb2RzIGFuZCBjb21tYXMKKyAgICAgICAgICAgICAgICArIiRtaWRfbnVtPVtcXC5cXCxdOyIKKworICAgICAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgbm90IG1lbnRpb25lZCBhYm92ZSwgcGx1cyB0aGUgcXVvdGUgbWFya3MgKHdoaWNoIGFyZSBib3RoCisgICAgICAgICAgICAgICAgLy8gPHByZS13b3JkPiwgPHBvc3Qtd29yZD4sIGFuZCA8Y2hhcj4pCisgICAgICAgICAgICAgICAgKyIkY2hhcj1bXiRicmVhayRzcGFjZSRkYXNoJGthbmppJG5ic3AkX2lnbm9yZV8kcHJlX3dvcmQkcG9zdF93b3JkJG1pZF9udW0kZGFuZGFcclxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgICAgICAvLyBhICJudW1iZXIiIGlzIGEgcnVuIG9mIHByZWZpeCBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMsIGZvbGxvd2VkIGJ5IG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGlnaXRzIHdpdGggaXNvbGF0ZWQgbnVtYmVyLXB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgaW50ZXJzcGVyc2VkCisgICAgICAgICAgICAgICAgKyIkbnVtYmVyPShbJHByZV93b3JkJGRhc2hdKiRkaWdpdCsoJG1pZF9udW0kZGlnaXQrKSopOyIKKworICAgICAgICAgICAgICAgIC8vIHRoZSBiYXNpYyBjb3JlIG9mIGEgd29yZCBjYW4gYmUgZWl0aGVyIGEgIm51bWJlciIgYXMgZGVmaW5lZCBhYm92ZSwgYSBzaW5nbGUKKyAgICAgICAgICAgICAgICAvLyAiS2FuamkiIGNoYXJhY3Rlciwgb3IgYSBydW4gb2YgYW55IG51bWJlciBvZiBub3QtZXhwbGljaXRseS1tZW50aW9uZWQKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCisgICAgICAgICAgICAgICAgKyIkd29yZF9jb3JlPShbJHByZV93b3JkJGNoYXJdKnwka2Fuaml8JG51bWJlcik7IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkIG1heSBlbmQgd2l0aCBhbiBvcHRpb25hbCBzdWZmaXggdGhhdCBiZSBlaXRoZXIgYSBydW4gb2Ygb25lIG9yCisgICAgICAgICAgICAgICAgLy8gbW9yZSBkYXNoZXMgb3IgYSBydW4gb2Ygd29yZC1zdWZmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAvLyBydW4gb2Ygd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgICsiJHdvcmRfc3VmZml4PSgoJGRhc2grfCRwb3N0X3dvcmQqKSRzcGFjZSopOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCwgdGh1cywgaXMgYW4gb3B0aW9uYWwgcnVuIG9mIHdvcmQtcHJlZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5CisgICAgICAgICAgICAgICAgLy8gYSB3b3JkIGNvcmUgYW5kIGEgd29yZCBzdWZmaXggKHRoZSBzeW50YXggb2YgPHdvcmQtY29yZT4gYW5kIDx3b3JkLXN1ZmZpeD4KKyAgICAgICAgICAgICAgICAvLyBhY3R1YWxseSBhbGxvd3MgZWl0aGVyIG9mIHRoZW0gdG8gbWF0Y2ggdGhlIGVtcHR5IHN0cmluZywgcHV0dGluZyBhIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGluZ3MgbGlrZSAiKSgiIG9yICJhYWEoYWFhIgorICAgICAgICAgICAgICAgICsiJHdvcmQ9KCRwcmVfd29yZCokd29yZF9jb3JlJHdvcmRfc3VmZml4KTsiCisKKyAgICAgICAgICAgICAgICAvLyBmaW5hbGx5LCB0aGUgcnVsZSB0aGF0IGRvZXMgdGhlIHdvcms6IEtlZXAgdG9nZXRoZXIgYW55IHJ1biBvZiB3b3JkcyB0aGF0CisgICAgICAgICAgICAgICAgLy8gYXJlIGpvaW5lZCBieSBydW5zIG9mIG9uZSBvZiBtb3JlIG5vbi1zcGFjaW5nIG1hcmsuICBBbHNvIGtlZXAgYSB0cmFpbGluZworICAgICAgICAgICAgICAgIC8vIGxpbmUtYnJlYWsgY2hhcmFjdGVyIG9yIENSTEYgY29tYmluYXRpb24gd2l0aCB0aGUgd29yZC4gIChsaW5lIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICAgICAvLyAid2luIiBvdmVyIG5ic3AncykKKyAgICAgICAgICAgICAgICArIiR3b3JkKCRuYnNwKyR3b3JkKSpccj8kYnJlYWs/OyIgfSwKKworICAgICAgICAgICAgLy8gdGhlc2UgdHdvIHJlc291cmNlcyBzcGVjaWZ5IHRoZSBwYXRobmFtZXMgb2YgdGhlIGRpY3Rpb25hcnkgZmlsZXMgdG8KKyAgICAgICAgICAgIC8vIHVzZSBmb3Igd29yZCBicmVha2luZyBhbmQgbGluZSBicmVha2luZy4gIEJvdGggY3VycmVudGx5IHJlZmVyIHRvCisgICAgICAgICAgICAvLyBhIGZpbGUgY2FsbGVkIGVuZ2xpc2guZGljdCBwbGFjZWQgaW4gY29tLmlibS5pY3UuaW1wbC5kYXRhCisgICAgICAgICAgICAvLyBzb21ld2hlcmUgaW4gdGhlIGNsYXNzIHBhdGguICBJdCdzIGltcG9ydGFudCB0byBub3RlIHRoYXQKKyAgICAgICAgICAgIC8vIGVuZ2xpc2guZGljdCB3YXMgY3JlYXRlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LCBhbmQgZG9lc24ndAorICAgICAgICAgICAgLy8gY29tZSBhbnl3aGVyZSBjbG9zZSB0byBiZWluZyBhbiBleGhhdXN0aXZlIGRpY3Rpb25hcnkgb2YgRW5nbGlzaAorICAgICAgICAgICAgLy8gd29yZHMgKGJhc2ljYWxseSwgaXQgY29udGFpbnMgYWxsIHRoZSB3b3JkcyBpbiB0aGUgRGVjbGFyYXRpb24gb2YKKyAgICAgICAgICAgIC8vIEluZGVwZW5kZW5jZSwgYW5kIHRoZSBSZXZpc2VkIFN0YW5kYXJkIFZlcnNpb24gb2YgdGhlIGJvb2sgb2YgR2VuZXNpcywKKyAgICAgICAgICAgIC8vIHBsdXMgYSBmZXcgb3RoZXIgd29yZHMgdGhyb3duIGluIHRvIHNob3cgbW9yZSBpbnRlcmVzdGluZyBjYXNlcykuCisgICAgICAgICAgICAvLyB7ICJXb3JkQnJlYWtEaWN0aW9uYXJ5IiwgImNvbVxcaWJtXFx0ZXh0XFxyZXNvdXJjZXNcXGVuZ2xpc2guZGljdCIgfSwKKyAgICAgICAgICAgIC8vIHsgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9CisgICAgICAgICAgICB7ICAgIldvcmRCcmVha0RpY3Rpb25hcnkiLCBEQVRBX05BTUUgfSwgCisgICAgICAgICAgICB7ICAgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCBEQVRBX05BTUUgfQorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmMzhhOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsODI0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgY2hhcmFjdGVyQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIHdvcmRCcmVhazsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgbGluZUJyZWFrOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciB0aXRsZUJyZWFrOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBCcmVha0l0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvclRlc3QoKQorICAgIHsKKworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl7CisgICAgICAgIGNoYXJhY3RlckJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB3b3JkQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBsaW5lQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAvL2xvZ2xuKCJDcmVhdGluZyBzZW50ZW5jZSBpdGVyYXRvci4uLiIpOworICAgICAgICBzZW50ZW5jZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIC8vbG9nbG4oIkZpbmlzaGVkIGNyZWF0aW5nIHNlbnRlbmNlIGl0ZXJhdG9yLi4uIik7CisgICAgICAgIHRpdGxlQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoKTsKKyAgICB9CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gZ2VuZXJhbCB0ZXN0IHN1YnJvdXRpbmVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZ2VuZXJhbEl0ZXJhdG9yVGVzdChCcmVha0l0ZXJhdG9yIGJpLCBWZWN0b3IgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHRleHQgPSAoU3RyaW5nKWV4cGVjdGVkUmVzdWx0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGV4dCA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgVmVjdG9yIG5leHRSZXN1bHRzID0gX3Rlc3RGaXJzdEFuZE5leHQoYmksIHRleHQpOworICAgICAgICBWZWN0b3IgcHJldmlvdXNSZXN1bHRzID0gX3Rlc3RMYXN0QW5kUHJldmlvdXMoYmksIHRleHQpOworCisgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZm9yd2FyZCBhbmQgYmFja3dhcmQuLi4iKTsKKyAgICAgICAgaW50IGVycnMgPSBnZXRFcnJvckNvdW50KCk7CisgICAgICAgIGNvbXBhcmVGcmFnbWVudExpc3RzKCJmb3J3YXJkIGl0ZXJhdGlvbiIsICJiYWNrd2FyZCBpdGVyYXRpb24iLCBuZXh0UmVzdWx0cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0cyk7CisgICAgICAgIGlmIChnZXRFcnJvckNvdW50KCkgPT0gZXJycykgeworICAgICAgICAgICAgbG9nbG4oImNvbXBhcmluZyBleHBlY3RlZCBhbmQgYWN0dWFsLi4uIik7CisgICAgICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZXhwZWN0ZWQgcmVzdWx0IiwgImFjdHVhbCByZXN1bHQiLCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzdWx0cyk7CisgICAgICAgIH0KKworICAgICAgICBpbnRbXSBib3VuZGFyaWVzID0gbmV3IGludFtleHBlY3RlZFJlc3VsdC5zaXplKCkgKyAzXTsKKyAgICAgICAgYm91bmRhcmllc1swXSA9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgYm91bmRhcmllc1sxXSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICBib3VuZGFyaWVzW2kgKyAyXSA9IGJvdW5kYXJpZXNbaSArIDFdICsgKChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgoKTsKKyAgICAgICAgYm91bmRhcmllc1tib3VuZGFyaWVzLmxlbmd0aCAtIDFdID0gQnJlYWtJdGVyYXRvci5ET05FOworCisgICAgICAgIF90ZXN0Rm9sbG93aW5nKGJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RQcmVjZWRpbmcoYmksIHRleHQsIGJvdW5kYXJpZXMpOworICAgICAgICBfdGVzdElzQm91bmRhcnkoYmksIHRleHQsIGJvdW5kYXJpZXMpOworCisgICAgICAgIGRvTXVsdGlwbGVTZWxlY3Rpb25UZXN0KGJpLCB0ZXh0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIFZlY3RvciBfdGVzdEZpcnN0QW5kTmV4dChCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICBpbnQgcCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJmaXJzdCgpIHJldHVybmVkICIgKyBwICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgd2hpbGUgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwID0gYmkubmV4dCgpOworICAgICAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKHAgPD0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgZmFpbGVkIHRvIG1vdmUgZm9yd2FyZDogbmV4dCgpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIHlpZWxkZWQgIiArIHApOworCisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEVsZW1lbnQodGV4dC5zdWJzdHJpbmcobGFzdFAsIHApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsYXN0UCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgaW5zdGVhZCBvZiAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIFZlY3RvciBfdGVzdExhc3RBbmRQcmV2aW91cyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICBpbnQgcCA9IGJpLmxhc3QoKTsKKyAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgVmVjdG9yIHJlc3VsdCA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpZiAocCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oImxhc3QoKSByZXR1cm5lZCAiICsgcCArICIgaW5zdGVhZCBvZiAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHdoaWxlIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgcCA9IGJpLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAocCA+PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgZmFpbGVkIHRvIG1vdmUgYmFja3dhcmQ6IHByZXZpb3VzKCkgb24gcG9zaXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0RWxlbWVudEF0KHRleHQuc3Vic3RyaW5nKHAsIGxhc3RQKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFAgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgcmV0dXJuZWQgRE9ORSBwcmVtYXR1cmVseTogb2Zmc2V0IHdhcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjb21wYXJlRnJhZ21lbnRMaXN0cyhTdHJpbmcgZjFOYW1lLCBTdHJpbmcgZjJOYW1lLCBWZWN0b3IgZjEsIFZlY3RvciBmMikgeworICAgICAgICBpbnQgcDEgPSAwOworICAgICAgICBpbnQgcDIgPSAwOworICAgICAgICBTdHJpbmcgczE7CisgICAgICAgIFN0cmluZyBzMjsKKyAgICAgICAgaW50IHQxID0gMDsKKyAgICAgICAgaW50IHQyID0gMDsKKworICAgICAgICB3aGlsZSAocDEgPCBmMS5zaXplKCkgJiYgcDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICB0MSArPSBzMS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworCisgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgIGRlYnVnTG9nbG4oIiAgID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICsrcDE7CisgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCB0ZW1wVDEgPSB0MTsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcFQyID0gdDI7CisgICAgICAgICAgICAgICAgaW50IHRlbXBQMSA9IHAxOworICAgICAgICAgICAgICAgIGludCB0ZW1wUDIgPSBwMjsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wVDEgIT0gdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSAmJiB0ZW1wUDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMSA8IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMSArPSAoKFN0cmluZylmMS5lbGVtZW50QXQodGVtcFAxKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3RlbXBQMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQyIDwgdGVtcFQxICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFQyICs9ICgoU3RyaW5nKWYyLmVsZW1lbnRBdCh0ZW1wUDIpKS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrdGVtcFAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogIiArIGYxTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgIHdoaWxlIChwMSA8PSB0ZW1wUDEgJiYgcDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICAgICAgICAgIHQxICs9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICArK3AxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiKioqKiogIiArIGYyTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgIHdoaWxlIChwMiA8PSB0ZW1wUDIgJiYgcDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqKiogPiIgKyBzMiArICI8Iik7CisgICAgICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVycmxuKCJEaXNjcmVwYW5jeSBiZXR3ZWVuICIgKyBmMU5hbWUgKyAiIGFuZCAiICsgZjJOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdEZvbGxvd2luZyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdEZvbGxvd2luZygpOiIpOworICAgICAgICBpbnQgcCA9IDI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgICArK3A7CisKKyAgICAgICAgICAgIGludCBiID0gYmkuZm9sbG93aW5nKGkpOworICAgICAgICAgICAgbG9nbG4oImJpLmZvbGxvd2luZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgIGlmIChiICE9IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGZvbGxvd2luZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdFByZWNlZGluZyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdFByZWNlZGluZygpOiIpOworICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IGIgPSBiaS5wcmVjZWRpbmcoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkucHJlY2VkaW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gcHJlY2VkaW5nKCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgIiArIGJvdW5kYXJpZXNbcF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIGIpOworCisgICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3AgKyAxXSkKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RJc0JvdW5kYXJ5KEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0SXNCb3VuZGFyeSgpOiIpOworICAgICAgICBpbnQgcCA9IDE7CisgICAgICAgIGJvb2xlYW4gaXNCOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlzQiA9IGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworCisgICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3BdKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0IpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgdHJ1ZSwgZ290IGZhbHNlIik7CisgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChCcmVha0l0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgdGVzdFRleHQpCisgICAgeworICAgICAgICBsb2dsbigiTXVsdGlwbGUgc2VsZWN0aW9uIHRlc3QuLi4iKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0SXRlcmF0b3IgPSAoQnJlYWtJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgICAgICBpbnQgb2Zmc2V0ID0gaXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgaW50IHRlc3RPZmZzZXQ7CisgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5maXJzdCgpOworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgIGxvZ2xuKCJuZXh0KCIgKyBjb3VudCArICIpIC0+ICIgKyB0ZXN0T2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAob2Zmc2V0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSk7CisKKyAgICAgICAgLy8gbm93IGRvIGl0IGJhY2t3YXJkcy4uLgorICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5sYXN0KCk7CisgICAgICAgIGNvdW50ID0gMDsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubmV4dChjb3VudCk7CisgICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICAgZXJybG4oIm5leHQobikgYW5kIG5leHQoKSBub3QgcmV0dXJuaW5nIGNvbnNpc3RlbnQgcmVzdWx0czogZm9yIHN0ZXAgIiArIGNvdW50ICsgIiwgbmV4dChuKSByZXR1cm5lZCAiICsgdGVzdE9mZnNldCArICIgYW5kIG5leHQoKSBoYWQgIiArIG9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgY291bnQtLTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5wcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKTsKKyAgICB9CisKKworICAgIHByaXZhdGUgdm9pZCBkb090aGVySW52YXJpYW50VGVzdChCcmVha0l0ZXJhdG9yIHRiLCBTdHJpbmcgdGVzdENoYXJzKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHdvcmsgPSBuZXcgU3RyaW5nQnVmZmVyKCJhXHJcbmEiKTsKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworCisgICAgICAgIC8vIGEgYnJlYWsgc2hvdWxkIG5ldmVyIG9jY3VyIGJldHdlZW4gQ1IgYW5kIExGCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIHRlc3RDaGFycy5jaGFyQXQoaSkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDMsIHRlc3RDaGFycy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgIHRiLnNldFRleHQod29yay50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gdGIuZmlyc3QoKTsgayAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGsgPSB0Yi5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJCcmVhayBiZXR3ZWVuIENSIGFuZCBMRiBpbiBzdHJpbmcgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkod29yay5jaGFyQXQoMCkpKSArICIsIFUrZCBVK2EgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkod29yay5jaGFyQXQoMykpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGEgYnJlYWsgc2hvdWxkIG5ldmVyIG9jY3VyIGJlZm9yZSBhIG5vbi1zcGFjaW5nIG1hcmssIHVubGVzcyBpdCdzIHByZWNlZGVkCisgICAgICAgIC8vIGJ5IGEgbGluZSB0ZXJtaW5hdG9yCisgICAgICAgIHdvcmsuc2V0TGVuZ3RoKDApOworICAgICAgICB3b3JrLmFwcGVuZCgiYWFhYSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB0ZXN0Q2hhcnMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICdccicgfHwgYyA9PSAnXHUyMDI5JyB8fCBjID09ICdcdTIwMjgnIHx8IGMgPT0gJ1x1MDAwMycpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgxLCBjKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBjID0gdGVzdENoYXJzLmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmdldFR5cGUoYykgIT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgJiYgQ2hhcmFjdGVyLmdldFR5cGUoYykKKyAgICAgICAgICAgICAgICAgICAgICAgICE9IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMiwgYyk7CisgICAgICAgICAgICAgICAgdGIuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSB0Yi5maXJzdCgpOyBrICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgayA9IHRiLm5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGsgPT0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkJyZWFrIGJldHdlZW4gVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgyKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID49IDc1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVidWdMb2dsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbihvdXQudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gdGVzdHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk3Nzc5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTc3NzkoKSB7CisgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhYVx1MDMwMGEiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk4NDY3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTg0NjdXb3JkcygpIHsKKyAgICAgICAgVmVjdG9yIHdvcmRTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgICAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjMGMxXHVkNTZkIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTVjXHVjNzc4Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiY1x1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYiIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYlx1MTExMlx1MTE2MVx1MTFiOCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiY1x1MTEwNVx1MTE2OVx1MTEwMFx1MTE2ZFx1MTExMlx1MTE2YyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkQnJlYWssIHdvcmRTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEBidWcgNDExMTMzOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTExMzM4KCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRlc3QgZm9yIGJ1ZyAjNDExMTMzODogRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIENKSworICAgICAgICAvLyBhbmQgb3RoZXIgbGV0dGVycworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1OlwiSkFWQVx1ODIxYyIKKyAgICAgICAgICAgICAgICArICJcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmQsXHUyNDk0XHU1NmQ4XHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhIgorICAgICAgICAgICAgICAgICsgIlx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0NlwiLlx1MjAyOSIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4IgorICAgICAgICAgICAgICAgICsgIlx1OTdlNEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDhcdTRlYzAiCisgICAgICAgICAgICAgICAgKyAiXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTU0ODdcdTY3ZmZcdWU1OTFcdTUwMTdcdTYxYjNcdTYwYTFcdTk1MTBcdTgxNjVcdTlkZThcdTk3ZTQiCisgICAgICAgICAgICAgICAgKyAiXHU2NDcwXHU4NzkwSkFWQVx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZFx1ZTMwYlx1MjQ5NFx1NTZkOCIKKyAgICAgICAgICAgICAgICArICJcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcdTk3ZTVcdTc3NTFcdTIwMjkiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhlIHNhaWQsIFwiSSBjYW4gZ28gdGhlcmUuXCJcdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNDMwNzEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE0MzA3MSgpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgc2VudGVuY2VzIHRoYXQgZW5kIHdpdGggZGlnaXRzIHdvcmsgcmlnaHQKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRvZGF5IGlzIHRoZSAyN3RoIG9mIE1heSwgMTk5OC4gICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVG9tb3Jyb3cgd2lsbCBiZSAyOCBNYXkgMTk5OC4gICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlIGRheSBhZnRlciB3aWxsIGJlIHRoZSAzMHRoLlx1MjAyOSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNTI0MTYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE1MjQxNigpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgc2VudGVuY2VzIGVuZGluZyB3aXRoIGEgY2FwaXRhbCBsZXR0ZXIgYXJlIHRyZWF0ZWQgY29ycmVjdGx5CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGUgdHlwZSBvZiBhbGwgcHJpbWl0aXZlICIKKyAgICAgICAgICAgICAgICArICI8Y29kZT5ib29sZWFuPC9jb2RlPiB2YWx1ZXMgYWNjZXNzZWQgaW4gdGhlIHRhcmdldCBWTS4gICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiQ2FsbHMgdG8geHh4IHdpbGwgcmV0dXJuIGFuICIKKyAgICAgICAgICAgICAgICArICJpbXBsZW1lbnRvciBvZiB0aGlzIGludGVyZmFjZS5cdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUyMTE3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNTIxMTcoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHNlbnRlbmNlIGJyZWFraW5nIGlzIGhhbmRsaW5nIHB1bmN0dWF0aW9uIGNvcnJlY3RseQorICAgICAgICAvLyBbQ09VTEQgTk9UIFJFUFJPRFVDRSBUSElTIEJVRywgQlVUIFRFU1QgSVMgSEVSRSBUTyBNQUtFIFNVUkUKKyAgICAgICAgLy8gSVQgRE9FU04nVCBDUk9QIFVQXQorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiQ29uc3RydWN0cyBhIHJhbmRvbWx5IGdlbmVyYXRlZCAiCisgICAgICAgICAgICAgICAgKyAiQmlnSW50ZWdlciwgdW5pZm9ybWx5IGRpc3RyaWJ1dGVkIG92ZXIgdGhlIHJhbmdlIDx0dD4wPC90dD4gIgorICAgICAgICAgICAgICAgICsgInRvIDx0dD4oMjxzdXA+bnVtQml0czwvc3VwPiAtIDEpPC90dD4sIGluY2x1c2l2ZS4gICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlIHVuaWZvcm1pdHkgb2YgdGhlIGRpc3RyaWJ1dGlvbiAiCisgICAgICAgICAgICAgICAgKyAiYXNzdW1lcyB0aGF0IGEgZmFpciBzb3VyY2Ugb2YgcmFuZG9tIGJpdHMgaXMgcHJvdmlkZWQgaW4gIgorICAgICAgICAgICAgICAgICsgIjx0dD5ybmQ8L3R0Pi4gICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTm90ZSB0aGF0IHRoaXMgY29uc3RydWN0b3IgYWx3YXlzICIKKyAgICAgICAgICAgICAgICArICJjb25zdHJ1Y3RzIGEgbm9uLW5lZ2F0aXZlIEJpZ0ludGVnZXIuXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMaW5lQnJlYWsoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJNdWx0aS0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTGV2ZWwgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImV4YW1wbGUgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm9mICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzZW1pLSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpZGlvdGljICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJub24tIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInNlbnNpY2FsICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIobm9uLSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpbXBvcnRhbnQpICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzZW50ZW5jZS4gIik7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGkgICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZWxsbyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSG93XG4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYXJlXHIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgieW91XHUyMDI4Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZpbmUuXHQiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZ29vZC4gICIpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk5vd1xyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImlzXG4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGhlXHJcbiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ0aW1lXG4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZm9yXHIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWxsIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjgxMzMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA2ODEzMygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1OTZmNiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDBcdTMwMDIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZThjXHUzMDAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwOVx1MzAwMlx1MzAwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTU2ZGJcdTMwMDFcdTMwMDJcdTMwMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTk0LCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTUxNmQuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwMy5cdTMwMDEsXHUzMDAyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTE2YiIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDg2MDUyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwODYwNTIoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmb29cdTAwYTBiYXIgIik7CisvLyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZm9vXHVmZWZmYmFyIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwOTc5MjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA5NzkyMCgpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImRvZyxjYXQsbW91c2UgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIihvbmUpIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIih0d28pXG4iKTsKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAKKworICAgIC8qKgorICAgICAqIEBidWcgNDExNzU1NAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTE3NTU0TGluZXMoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBGdWxsd2lkdGggLiE/IHNob3VsZCBiZSB0cmVhdGVkIGFzIHBvc3RKd3JkCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwMVx1ZmYwZSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDJcdWZmMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAzXHVmZjFmIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TGV0dGVyc0FuZERpZ2l0cygpIHsKKyAgICAgICAgLy8gYSBjaGFyYWN0ZXIgc2VxdWVuY2Ugc3VjaCBhcyAiWDExIiBvciAiMzBGMyIgb3IgIm5hdGl2ZTJhc2NpaSIgc2hvdWxkCisgICAgICAgIC8vIGJlIGtlcHQgdG9nZXRoZXIgYXMgYSBzaW5nbGUgd29yZAorICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiWDExICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIzMEYzICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJuYXRpdmUyYXNjaWkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGdyYXZlUyA9ICJTXHUwMzAwIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgYWN1dGVCZWxvd0kgPSAiaVx1MDMxNyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGFjdXRlRSA9ICJlXHUwMzAxIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2lyY3VtZmxleEEgPSAiYVx1MDMwMiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHRpbGRlRSA9ICJlXHUwMzAzIjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyYWN0ZXJCcmVhaygpIHsKKyAgICAgICAgVmVjdG9yIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KGdyYXZlUyk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChhY3V0ZUJlbG93SSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChhY3V0ZUUpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChjaXJjdW1mbGV4QSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCh0aWxkZUUpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIi4iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ3Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChjaXJjdW1mbGV4QSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgicSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcclxuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJhY3RlckJyZWFrLCBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwOTg0NjcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA5ODQ2N0NoYXJhY3RlcnMoKSB7CisgICAgICAgIFZlY3RvciBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgICAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWMwYzEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ1NmQiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTVjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNzc4Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzVmMCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU2OSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWM3YTUiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWI4NWMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWFkNTAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ2OGMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTY3XHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWI4Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwNVx1MTE2OSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwMFx1MTE2ZCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2YyIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoY2hhcmFjdGVyQnJlYWssIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaXRsZUJyZWFrKCkKKyAgICB7CisgICAgICAgIFZlY3RvciB0aXRsZURhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCIgICAiKTsKKyAgICAgICAgdGl0bGVEYXRhLmFkZEVsZW1lbnQoIlRoaXMgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJpcyAiKTsKKyAgICAgICAgdGl0bGVEYXRhLmFkZEVsZW1lbnQoImEgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzaW1wbGUgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzYW1wbGUgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzZW50ZW5jZS4gIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJUaGlzICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QodGl0bGVCcmVhaywgdGl0bGVEYXRhKTsKKyAgICB9CisKKworCisgICAgLyoKKyAgICAgKiBAYnVnIDQxNTMwNzIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE1MzA3MigpIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICIuLi5IZWxsbywgV29ybGQhLi4uIjsKKyAgICAgICAgaW50IGJlZ2luID0gMzsKKyAgICAgICAgaW50IGVuZCA9IHN0ci5sZW5ndGgoKSAtIDM7CisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gZ290RXhjZXB0aW9uID0gZmFsc2U7CisgCisKKyAgICAgICAgaXRlci5zZXRUZXh0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzdHIsIGJlZ2luLCBlbmQsIGJlZ2luKSk7CisgICAgICAgIGZvciAoaW50IGluZGV4ID0gLTE7IGluZGV4IDwgYmVnaW4gKyAxOyArK2luZGV4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIuaXNCb3VuZGFyeShpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiB3aXRoIG9mZnNldCA9ICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWdpbiBpbmRleCA9ICIgKyBiZWdpbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgZXhjZXB0aW9uIHdpdGggb2Zmc2V0ID0gIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIGJlZ2luIGluZGV4ID0gIiArIGJlZ2luKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNDYxNzVMaW5lcygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRoZSBmdWxsd2lkdGggY29tbWEgc2hvdWxkIHN0aWNrIHRvIHRoZSBwcmVjZWRpbmcgSmFwYW5lc2UgY2hhcmFjdGVyCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1N2Q0Mlx1ZmYwYyIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTMwOGYiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjYW5uZWRUZXN0Q2hhcnMKKyAgICAgICAgPSAiXHUwMDAwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0ICFcIiMkJSYoKSstMDEyMzQ8PT5BQkNERVtdXl9gYWJjZGV7fXxcdTAwYTBcdTAwYTIiCisgICAgICAgICsgIlx1MDBhM1x1MDBhNFx1MDBhNVx1MDBhNlx1MDBhN1x1MDBhOFx1MDBhOVx1MDBhYlx1MDBhZFx1MDBhZVx1MDBhZlx1MDBiMFx1MDBiMlx1MDBiMyIKKyAgICAgICAgKyAiXHUwMGI0XHUwMGI5XHUwMGJiXHUwMGJjXHUwMGJkXHUwMmIwXHUwMmIxXHUwMmIyXHUwMmIzXHUwMmI0XHUwMzAwXHUwMzAxXHUwMzAyXHUwMzAzIgorICAgICAgICArICJcdTAzMDRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA5MDNcdTA5M2VcdTA5M2ZcdTA5NDBcdTA5NDlcdTBmM2FcdTBmM2JcdTIwMDAiCisgICAgICAgICsgIlx1MjAwMVx1MjAwMlx1MjAwY1x1MjAwZFx1MjAwZVx1MjAwZlx1MjAxMFx1MjAxMVx1MjAxMlx1MjAyOFx1MjAyOVx1MjAyYVx1MjAzZVx1MjAzZiIKKyAgICAgICAgKyAiXHUyMDQwXHUyMGRkXHUyMGRlXHUyMGRmXHUyMGUwXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0IjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZW50ZW5jZUludmFyaWFudHMoKQorICAgIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBlID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIGRvT3RoZXJJbnZhcmlhbnRUZXN0KGUsIGNhbm5lZFRlc3RDaGFycyArICIuLFx1MzAwMVx1MzAwMlx1MzA0MVx1MzA0Mlx1MzA0M1x1ZmVmZiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFbXB0eVN0cmluZygpCisgICAgeworICAgICAgICBTdHJpbmcgdGV4dCA9ICIiOworICAgICAgICBWZWN0b3IgeCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgeC5hZGRFbGVtZW50KHRleHQpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCB4KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpCisgICAgeworICAgICAgICBMb2NhbGVbXSBsb2NMaXN0ID0gQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisKKyAgICAgICAgaWYgKGxvY0xpc3QubGVuZ3RoID09IDApCisgICAgICAgICAgICBlcnJsbigiZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHJldHVybmVkIGFuIGVtcHR5IGxpc3QhIik7CisgICAgICAgIC8vIEkgaGF2ZSBubyBpZGVhIGhvdyB0byB0ZXN0IHRoaXMgZnVuY3Rpb24uLi4KKyAgICAgICAgCisgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZVtdIHVsb2NMaXN0ID0gQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBpZiAodWxvY0xpc3QubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRBdmFpbGFibGVVTG9jYWxlcygpIHJldHVybmVkIGFuIGVtcHR5IGxpc3QhIik7ICAgICAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJnZXRBdmFpbGFibGVVTG9jYWxlcygpIHJldHVybmVkICIgKyB1bG9jTGlzdC5sZW5ndGggKyAiIGxvY2FsZXMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA2ODEzNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmRCZWhhdmlvcigpCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJib28uIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB3YiA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIHdiLnNldFRleHQodGVzdFN0cmluZyk7CisKKyAgICAgICAgaWYgKHdiLmZpcnN0KCkgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGJyZWFrIGF0IGJlZ2lubmluZyBvZiBzdHJpbmcuIik7CisgICAgICAgIGlmICh3Yi5uZXh0KCkgIT0gMykKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGJyZWFrIGJlZm9yZSBwZXJpb2QgaW4gXCJib28uXCIiKTsKKyAgICAgICAgaWYgKHdiLmN1cnJlbnQoKSAhPSA0ICYmIHdiLm5leHQoKSAhPSA0KQorICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYXQgZW5kIG9mIHN0cmluZy4iKTsKKyAgICB9CisKKyAgICAvLyBUaGUgRm9sbG93aW5nIHR3byB0ZXN0cyBhcmUgcG9ydGVkIGZyb20gSUNVNEMgMS44LjEgW1JpY2hhcmQvR0NMXQorICAgIC8qKgorICAgICAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiB0ZXh0Ym91bmRzIDogSW50bFRlc3RUZXh0Qm91bmRhcnkKKyAgICAgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9pdHR4dGJkLmNwcAorICAgICAqKi8KKyAgICAvKioKKyAgICAgKiB0ZXN0IG1ldGhvZHMgcHJlY2VkaW5nLCBmb2xsb3dpbmcgYW5kIGlzQm91bmRhcnkKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdFByZWNlZGluZygpIHsKKyAgICAgICAgU3RyaW5nIHdvcmRzMyA9ICJhYWEgYmJiIGNjYyI7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBlLnNldFRleHQoIHdvcmRzMyApOworICAgICAgICBlLmZpcnN0KCk7CisgICAgICAgIGludCBwMSA9IGUubmV4dCgpOworICAgICAgICBpbnQgcDIgPSBlLm5leHQoKTsKKyAgICAgICAgaW50IHAzID0gZS5uZXh0KCk7CisgICAgICAgIGludCBwNCA9IGUubmV4dCgpOworCisgICAgICAgIGludCBmID0gZS5mb2xsb3dpbmcocDIrMSk7CisgICAgICAgIGludCBwID0gZS5wcmVjZWRpbmcocDIrMSk7CisgICAgICAgIGlmIChmIT1wMykKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogZiE9cDMiKTsKKyAgICAgICAgaWYgKHAhPXAyKQorICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBwIT1wMiIpOworCisgICAgICAgIGlmIChwMSsxIT1wMikKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogcDErMSE9cDIiKTsKKworICAgICAgICBpZiAocDMrMSE9cDQpCisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IHAzKzEhPXA0Iik7CisKKyAgICAgICAgaWYgKCFlLmlzQm91bmRhcnkocDIpIHx8IGUuaXNCb3VuZGFyeShwMisxKSB8fCAhZS5pc0JvdW5kYXJ5KHAzKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBpc0JvdW5kYXJ5IGVyciIpOworICAgICAgICB9CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogQnVnIDQ0NTA4MDQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TGluZUJyZWFrQ29udHJhY3Rpb25zKCkgeworICAgICAgICBWZWN0b3IgZXhwZWN0ZWQgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGV4cGVjdGVkLmFkZCgiVGhlc2UgIik7CisgICAgICAgIGV4cGVjdGVkLmFkZCgiYXJlICIpOworICAgICAgICBleHBlY3RlZC5hZGQoIidmb29ibGVzJy4gIik7CisgICAgICAgIGV4cGVjdGVkLmFkZCgiRG9uJ3QgIik7CisgICAgICAgIGV4cGVjdGVkLmFkZCgieW91ICIpOworICAgICAgICBleHBlY3RlZC5hZGQoImxpa2UgIik7CisgICAgICAgIGV4cGVjdGVkLmFkZCgidGhlbT8iKTsKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGV4cGVjdGVkKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklBUElUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiNTI3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJQVBJVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDUzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogcmJiaSA6IFJCQklBUElUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9yYmJpYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQVBJIFRlc3QgdGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2xhc3MKKyAqLworcHVibGljIGNsYXNzIFJCQklBUElUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUkJCSUFQSVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIGNsb25lKCkgYW5kIGVxdWFscygpIG1ldGhvZHMgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAgICAgICAgIAorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmVFcXVhbHMoKSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpZXF1YWwgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkzID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGVzdGluZyB3b3JkIGJyZWFrIGl0ZXJhdG9ycydzIGNsb25lKCkgYW5kIGVxdWFscygpIjsKKyAgICAgICAgYmkxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIGJpMi5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBiaWVxdWFsLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIAorICAgICAgICBiaTMuc2V0VGV4dCgiaGVsbG8iKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZXF1YWxzKCkiKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgPT0gYW5kICE9Iik7CisgICAgICAgIGlmICghYmkxLmVxdWFscyhiaWVxdWFsKSB8fCBiaTEuZXF1YWxzKGJpMikgfHwgYmkxLmVxdWFscyhiaTMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjEgUkJCSSdzID09IGFuZCAhLSBvcGVyYXRvciBmYWlsZWQuIik7CisgICAgICAgIGlmIChiaTIuZXF1YWxzKGJpZXF1YWwpIHx8IGJpMi5lcXVhbHMoYmkxKSB8fCBiaWVxdWFsLmVxdWFscyhiaTMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjIgUkJCSSdzID09IGFuZCAhPSBvcGVyYXRvciAgZmFpbGVkLiIpOworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkxLmNsb25lKCk7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkyLmNsb25lKCk7CisgICAgICAgIGlmICghYmkxY2xvbmUuZXF1YWxzKGJpMSkKKyAgICAgICAgICAgIHx8ICFiaTFjbG9uZS5lcXVhbHMoYmllcXVhbCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmVxdWFscyhiaTMpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5lcXVhbHMoYmkyKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoxIFJCQkkncyBjbG9uZSgpIG1ldGhvZCBmYWlsZWQiKTsKKworICAgICAgICBpZiAoYmkyY2xvbmUuZXF1YWxzKGJpMSkKKyAgICAgICAgICAgIHx8IGJpMmNsb25lLmVxdWFscyhiaWVxdWFsKQorICAgICAgICAgICAgfHwgYmkyY2xvbmUuZXF1YWxzKGJpMykKKyAgICAgICAgICAgIHx8ICFiaTJjbG9uZS5lcXVhbHMoYmkyKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoyIFJCQkkncyBjbG9uZSgpIG1ldGhvZCBmYWlsZWQiKTsKKworICAgICAgICBpZiAoIWJpMS5nZXRUZXh0KCkuZXF1YWxzKGJpMWNsb25lLmdldFRleHQoKSkKKyAgICAgICAgICAgIHx8ICFiaTJjbG9uZS5nZXRUZXh0KCkuZXF1YWxzKGJpMi5nZXRUZXh0KCkpCisgICAgICAgICAgICB8fCBiaTJjbG9uZS5lcXVhbHMoYmkxY2xvbmUpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSQkJJJ3MgY2xvbmUoKSBtZXRob2QgZmFpbGVkIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIHRvU3RyaW5nKCkgbWV0aG9kIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdFRvU3RyaW5nKCkgeworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRvU3RyaW5nKCkiKTsKKyAgICAgICAgYmkxLnNldFRleHQoIkhlbGxvIHRoZXJlIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkzID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMS5jbG9uZSgpOworICAgICAgICBTdHJpbmcgdGVtcCA9IGJpMS50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgdGVtcDIgPSBiaTIudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHRlbXAzID0gYmkzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICh0ZW1wMi5lcXVhbHModGVtcDMpIHx8IHRlbXAuZXF1YWxzKHRlbXAyKSB8fCAhdGVtcC5lcXVhbHModGVtcDMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBlcnJvciBpbiB0b1N0cmluZygpIG1ldGhvZCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0aGUgbWV0aG9kIGhhc2hDb2RlKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMyA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGhhc2hDb2RlKCkiKTsKKyAgICAgICAgYmkxLnNldFRleHQoIkhhc2ggY29kZSIpOworICAgICAgICBiaTIuc2V0VGV4dCgiSGFzaCBjb2RlIik7CisgICAgICAgIGJpMy5zZXRUZXh0KCJIYXNoIGNvZGUiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTFjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTEuY2xvbmUoKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTJjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTIuY2xvbmUoKTsKKyAgICAgICAgaWYgKGJpMS5oYXNoQ29kZSgpICE9IGJpMWNsb25lLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMS5oYXNoQ29kZSgpICE9IGJpMy5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5oYXNoQ29kZSgpICE9IGJpMy5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTIuaGFzaENvZGUoKSAhPSBiaTJjbG9uZS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpZGVudGljYWwgb2JqZWN0cyBoYXZlIGRpZmZlcmVudCBoYXNoY29kZXMiKTsKKyAgICAgICAgCisgICAgICAgIGlmIChiaTEuaGFzaENvZGUoKSA9PSBiaTIuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkyLmhhc2hDb2RlKCkgPT0gYmkzLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmhhc2hDb2RlKCkgPT0gYmkyY2xvbmUuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuaGFzaENvZGUoKSA9PSBiaTIuaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2RlcyIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogVGVzdHMgdGhlIG1ldGhvZHMgZ2V0VGV4dCgpIGFuZCBzZXRUZXh0KCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldFRleHQoKSB7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldFRleHQgc2V0VGV4dCAiKTsKKyAgICAgICAgU3RyaW5nIHN0cjEgPSAiZmlyc3Qgc3RyaW5nLiI7CisgICAgICAgIFN0cmluZyBzdHIyID0gIlNlY29uZCBzdHJpbmcuIjsKKyAgICAgICAgLy9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0MSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzdHIxKTsKKyAgICAgICAgLy9DaGFyYWN0ZXJJdGVyYXRvciB0ZXh0MUNsb25lID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB0ZXh0MS5jbG9uZSgpOworICAgICAgICAvL0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHN0cjIpOworICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dChzdHIxKTsKKyAgICAgICAgaWYgKCF3b3JkSXRlcjEuZ2V0VGV4dCgpLmVxdWFscyh0ZXh0MSkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBlcnJvciBpbiBzZXRUZXh0IG9yIGdldFRleHQgIik7CisgICAgICAgIGlmICh3b3JkSXRlcjEuY3VycmVudCgpICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBzZXRUZXh0IGRpZCBub3Qgc2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgaXQgaXMiCisgICAgICAgICAgICAgICAgICAgKyB3b3JkSXRlcjEuY3VycmVudCgpICsgIlxuIik7IAorICAgICAgICB3b3JkSXRlcjEubmV4dCgyKTsKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQoc3RyMik7CisgICAgICAgIGlmICh3b3JkSXRlcjEuY3VycmVudCgpICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MiBzZXRUZXh0IGRpZCBub3QgcmVzZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBpdCBpcyIKKyAgICAgICAgICAgICAgICAgICAgKyB3b3JkSXRlcjEuY3VycmVudCgpICsgIlxuIik7IAorICAgICAgICAvL0lDVTRKIGhhcyByZW1vdmUgdGhlIG1ldGhvZCBhZG9wdFRleHQKKyAgICAgICAgLyoKKyAgICAgICAgY2hhckl0ZXIxLmFkb3B0VGV4dCh0ZXh0MUNsb25lKTsKKyAgICAgICAgaWYgKHdvcmRJdGVyMS5nZXRUZXh0KCkgPT0gY2hhckl0ZXIxLmdldFRleHQoKQorICAgICAgICAgICAgfHwgd29yZEl0ZXIxLmdldFRleHQoKSAhPSB0ZXh0MgorICAgICAgICAgICAgfHwgY2hhckl0ZXIxLmdldFRleHQoKSAhPSB0ZXh0MSkKKyAgICAgICAgICAgIGVycmxuKChVbmljb2RlU3RyaW5nKSAiRVJST1I6MiBlcnJvciBpcyBnZXRUZXh0IG9yIHNldFRleHQoKSIpOworICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSB3b3JkSXRlcjEuY2xvbmUoKTsKKyAgICAgICAgcmIuYWRvcHRUZXh0KHRleHQxKTsKKyAgICAgICAgaWYgKHJiLmdldFRleHQoKSAhPSB0ZXh0MSkKKyAgICAgICAgICAgIGVycmxuKChVbmljb2RlU3RyaW5nKSAiRVJST1I6MSBlcnJvciBpbiBhZG9wdFRleHQgIik7CisgICAgICAgIHJiLmFkb3B0VGV4dCh0ZXh0Mik7CisgICAgICAgIGlmIChyYi5nZXRUZXh0KCkgIT0gdGV4dDIpCisgICAgICAgICAgICBlcnJsbigoVW5pY29kZVN0cmluZykgIkVSUk9SOjIgZXJyb3IgaW4gYWRvcHRUZXh0ICIpOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogVGVzdGluZyB0aGUgbWV0aG9kcyBmaXJzdCgpLCBuZXh0KCksIG5leHQoaW50KSBhbmQgZm9sbG93aW5nKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEZpcnN0TmV4dEZvbGxvd2luZygpIHsKKyAgICAgICAgaW50IHAsIHE7CisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gIlRoaXMgaXMgYSB3b3JkIGJyZWFrLiBJc24ndCBpdD8gMi4yNSI7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGZpcnN0KCkgYW5kIG5leHQoKSwgZm9sbG93aW5nKCkgd2l0aCBjdXN0b20gcnVsZXMiKTsKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgd29yZCBpdGVyYXRvciAtIHN0cmluZyA6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiXG4iKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHdvcmRJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gd29yZEl0ZXIxLmZpcnN0KCk7CisgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KDkpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjAsICJUaGlzIGlzIGEgd29yZCBicmVhayIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMSwgIi4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSB3b3JkSXRlcjEubmV4dCgzKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI4LCAiIElzbid0ICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzEsICJpdD8iKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5mb2xsb3dpbmcoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyLCBxLCA0LCAiaXMiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5mb2xsb3dpbmcoMjIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjIsIHEsIDI3LCAiSXNuJ3QiKTsKKyAgICAgICAgd29yZEl0ZXIxLmxhc3QoKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5uZXh0KCk7CisgICAgICAgIHEgPSB3b3JkSXRlcjEuZm9sbG93aW5nKHdvcmRJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IG5leHQoKS9mb2xsb3dpbmcoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkgKyAiXG4iKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhckl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIldyaXRlIGhpbmRpIGhlcmUuIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDMwMSBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgXHUwOTM5XHUwOTRjXHUwOTY0IjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGNoYXIgaXRlciAtIHN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBjaGFySXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDEsICJXIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA1LCAicml0ZSIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDEyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE3LCAiIGhpbmRpIGhlcmUuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoLTYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMTEsICIgaGVyZS4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCg2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE3LCAiIGhlcmUuIik7CisgICAgICAgIC8vIGhpbmRpIHN0YXJ0cyBoZXJlCisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMiwgIiBcdTA5MmRcdTA5M2VcdTA5MzBcdTAzMDEiKTsgICAvLyBOb25zZW5zZSwgYnV0IGNvbXBhdGlibGUgYmV0d2VlbiBvbGQgYW5kIG5ldyBydWxlcy4KKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCgyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI2LCAiIFx1MDkzOFx1MDk0MVx1MDkwMiIpOworCisgICAgICAgIHEgPSBjaGFySXRlcjEuZm9sbG93aW5nKDI0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI0LCBxLCAyNiwgIlx1MDk0MVx1MDkwMiIpOworICAgICAgICBxID0gY2hhckl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMjIsICJcdTA5MzBcdTAzMDEiKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5mb2xsb3dpbmcoY2hhckl0ZXIxLmxhc3QoKSk7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dChjaGFySXRlcjEubGFzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FIHx8IHEgIT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmb2xsb3dpbmcoKS9uZXh0KCkgYXQgbGFzdCBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc2VudGVuY2UgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgc2VudEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJIZWxsbyEgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgImhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KC0yKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCg0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDYwLCAiaG93IGFyZSB5b3U/IEknYW0gZmluZS4gVGhhbmt5b3UuIEhvdyBhcmUgeW91IGRvaW5nPyAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgODMsICJUaGlzICBjb3N0cyAkMjAsMDAsMDAwLiIpOworICAgICAgICBxID0gc2VudEl0ZXIxLmZvbGxvd2luZygxKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEsIHEsIDcsICJlbGxvISAiKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMTApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMTAsIHEsIDIwLCAiIGFyZSB5b3U/ICIpOworICAgICAgICBxID0gc2VudEl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMzEsICJJJ2FtIGZpbmUuICIpOworICAgICAgICBwID0gc2VudEl0ZXIxLmZvbGxvd2luZyhzZW50SXRlcjEubGFzdCgpKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KHNlbnRJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvbGxvd2luZygpL25leHQoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOyAKKyAgICAgICAgdGVzdFN0cmluZyA9ICJIZWxsbyEgaG93XHJcbiAoYXJlKVxyIHlvdT8gSSdhbSBmaW5lLSBUaGFua3lvdS4gZm9vXHUwMGEwYmFyIEhvdywgYXJlLCB5b3U/IFRoaXMsIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCIoVW5pY29kZVN0cmluZyl0ZXN0aW5nIGxpbmUgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBsaW5lSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5maXJzdCgpOworICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAwIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNywgIkhlbGxvISAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMCwgImhvd1xyXG4gKGFyZSlcciAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgtNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA3LCAiaG93XHJcbiAoYXJlKVxyICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzAsICJob3dcclxuIChhcmUpXHIgeW91PyBJJ2FtICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzNiwgImZpbmUtICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNTQsICJUaGFua3lvdS4gZm9vXHUwMGEwYmFyICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZyg2MCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCA2MCwgcSwgNjQsICJyZSwgIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEuZm9sbG93aW5nKDEpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMSwgcSwgNywgImVsbG8hICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygxMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxMCwgcSwgMTIsICJcclxuIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEuZm9sbG93aW5nKDIwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIwLCBxLCAyNSwgInlvdT8gIik7CisgICAgICAgIHAgPSBsaW5lSXRlcjEuZm9sbG93aW5nKGxpbmVJdGVyMS5sYXN0KCkpOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQobGluZUl0ZXIxLmxhc3QoKSk7CisgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZm9sbG93aW5nKCkvbmV4dCgpIGF0IGxhc3QgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIHRoZSBtZXRob2RzIGxhc3R0KCksIHByZXZpb3VzKCksIGFuZCBwcmVjZWRpbmcoKSBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMYXN0UHJldmlvdXNQcmVjZWRpbmcoKSB7CisgICAgICAgIGludCBwLCBxOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUaGlzIGlzIGEgd29yZCBicmVhay4gSXNuJ3QgaXQ/IDIuMjUgZG9sbGFycyI7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGxhc3QoKSxwcmV2aW91cygpLCBwcmVjZWRpbmcoKSB3aXRoIGN1c3RvbSBydWxlcyIpOworICAgICAgICBsb2dsbigidGVzdGluZyB3b3JkIGl0ZXJhdGlvbiBmb3Igc3RyaW5nIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzcsICJkb2xsYXJzIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzNiwgIiAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmVjZWRpbmcoMjUpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjUsIHEsIDIyLCAiSXNuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMSwgIiAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmVjZWRpbmcoMjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjAsIHEsIDE1LCAiYnJlYWsiKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5wcmVjZWRpbmcod29yZEl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZWNlZGluZygpICBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICB0ZXN0U3RyaW5nID0gIldyaXRlIGhpbmRpIGhlcmUuIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgXHUwOTM5XHUwMzAxXHUwOTY0IjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGNoYXJhY3RlciBpdGVyYXRpb24gZm9yIHN0cmluZyBcIiAiICsgdGVzdFN0cmluZyArICJcIiBcbiIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBjaGFySXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgIlx1MDk2NCIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjksICJcdTA5MzlcdTAzMDEiKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmVjZWRpbmcoMjYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjYsIHEsIDIzLCAiXHUwOTM4XHUwOTQxXHUwOTAyIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJlY2VkaW5nKDE2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDE2LCBxLCAxNSwgImUiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE0LCAiciIpOworICAgICAgICBjaGFySXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZWNlZGluZyhjaGFySXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iOyAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc2VudGVuY2UgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgc2VudEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBzZW50SXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBsYXN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mICIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNjAsICJUaGlzICBjb3N0cyAkMjAsMDAsMDAwLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNDEsICJIb3cgYXJlIHlvdSBkb2luZz8gIik7CisgICAgICAgIHEgPSBzZW50SXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpc1xuIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGxpbmUgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxpbmVJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gbGluZUl0ZXIxLmxhc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gdGVzdFN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbGFzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcyLCAiJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDY2LCAiY29zdHMgIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBsaW5lSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgdGhlIG1ldGhvZCBJc0JvdW5kYXJ5KCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXNCb3VuZGFyeSgpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcxID0gIldyaXRlIGhlcmUuIFx1MDkyZFx1MDMwMVx1MDkzMFx1MDkyNCBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgYVx1MDMwMXUiOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBjaGFySXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nMSk7CisgICAgICAgIGludCBib3VuZHMxW10gPSB7MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTQsIDE1LCAxNiwgMTcsIDIwLCAyMSwgMjIsIDIzLCAyNSwgMjZ9OworICAgICAgICBkb0JvdW5kYXJ5VGVzdChjaGFySXRlcjEsIHRlc3RTdHJpbmcxLCBib3VuZHMxKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHdvcmRJdGVyMi5zZXRUZXh0KHRlc3RTdHJpbmcxKTsKKyAgICAgICAgaW50IGJvdW5kczJbXSA9IHswLCA1LCA2LCAxMCwgMTEsIDEyLCAxNiwgMTcsIDIyLCAyMywgMjZ9OworICAgICAgICBkb0JvdW5kYXJ5VGVzdCh3b3JkSXRlcjIsIHRlc3RTdHJpbmcxLCBib3VuZHMyKTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvL0ludGVybmFsIHN1YnJvdXRpbmVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiBJbnRlcm5hbCBzdWJyb3V0aW5lIHVzZWQgYnkgVGVzdElzQm91bmRhcnkoKSAqLyAKKyAgICBwdWJsaWMgdm9pZCBkb0JvdW5kYXJ5VGVzdChCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdElzQm91bmRhcnkoKToiKTsKKyAgICAgICAgaW50IHAgPSAwOworICAgICAgICBib29sZWFuIGlzQjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlzQiA9IGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twXSkgeworICAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gaXNCb3VuZGFyeSgpIGZvciAiICsgaSArICI6IGV4cGVjdGVkIHRydWUsIGdvdCBmYWxzZSIpOworICAgICAgICAgICAgICAgIHArKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKkludGVybmFsIHN1YnJvdXRpbmUgdXNlZCBmb3IgY29tcGFyaXNpb24gb2YgZXhwZWN0ZWQgYW5kIGFjcXVpcmVkIHJlc3VsdHMgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3QoU3RyaW5nIHRlc3RTdHJpbmcsIGludCBzdGFydCwgaW50IGdvdG9mZnNldCwgaW50IGV4cGVjdGVkT2Zmc2V0LCBTdHJpbmcgZXhwZWN0ZWRTdHJpbmcpIHsKKyAgICAgICAgU3RyaW5nIHNlbGVjdGVkOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBleHBlY3RlZFN0cmluZzsKKyAgICAgICAgaWYgKGdvdG9mZnNldCAhPSBleHBlY3RlZE9mZnNldCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoqKioqcmV0dXJuZWQgIyIgKyBnb3RvZmZzZXQgKyAiIGluc3RlYWQgb2YgIyIgKyBleHBlY3RlZE9mZnNldCk7CisgICAgICAgIGlmIChzdGFydCA8PSBnb3RvZmZzZXQpIHsKKyAgICAgICAgICAgIHNlbGVjdGVkID0gdGVzdFN0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGdvdG9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZWxlY3RlZCA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKGdvdG9mZnNldCwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmICghc2VsZWN0ZWQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoqKioqc2VsZWN0ZWQgXCIiICsgc2VsZWN0ZWQgKyAiXCIgaW5zdGVhZCBvZiBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2dsbigiKioqKnNlbGVjdGVkIFwiIiArIHNlbGVjdGVkICsgIlwiIik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjMTNkZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTA3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworIAorLy9SZWdyZXNzaW9uIHRlc3Rpbmcgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorLy8KKy8vICBUT0RPOiAgVGhlc2UgdGVzdHMgc2hvdWxkIGJlIG1vc3RseSByZXRpcmVkLgorLy8gICAgICAgICAgTXVjaCBvZiB0aGUgdGVzdCBkYXRhIHRoYXQgd2FzIG9yaWdpbmFseSBoZXJlIHdhcyByZW1vdmVkIHdoZW4gdGhlIFJCQkkgcnVsZXMKKy8vICAgICAgICAgICAgd2VyZSB1cGRhdGVkIHRvIG1hdGNoIHRoZSBVbmljb2RlIGJvdW5kYXJ5IFRScywgYW5kIHRoZSBkYXRhIHdhcyBmb3VuZCB0byBiZSBpbnZhbGlkLgorLy8gICAgICAgICAgTXVjaCBvZiB0aGUgcmVtYWluaW5nIGRhdGEgaGFzIGJlZW4gbW92ZWQgaW50byB0aGUgcmJiaXRzdC50eHQgdGVzdCBkYXRhIGZpbGUsCisvLyAgICAgICAgICAgIHdoaWNoIGlzIGNvbW1vbiBiZXR3ZWVuIElDVTRDIGFuZCBJQ1U0Si4gIFRoZSByZW1haW5pbmcgdGVzdCBkYXRhIHNob3VsZCBhbHNvIGJlIG1vdmVkLAorLy8gICAgICAgICAgICBvciBzaW1wbHkgcmV0aXJlZCBpZiBpdCBpcyBubyBsb25nZXIgaW50ZXJlc3RpbmcuCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBjbGFzcyBSQkJJVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAgCisgICAgCisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIG5ldyBSQkJJVGVzdCgpLnJ1bihhcmdzKTsKKyAgfQorCisgIHB1YmxpYyBSQkJJVGVzdCgpIHsgCisgIH0KKyAgCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoYWxmTkEgPSAiXHUwOTI4XHUwOTRkXHUyMDBkIjsgIC8qaGFsZmZvcm0gTkEgPSBkZXZhbmlnaXJpIE5BICsgdmlyYW1hKHN1cHJlc3NlcyBpbmhlcmVudCB2b3dlbCkrIHplcm8gd2lkdGggam9pbmVyICovICAKKworCisgIC8vIHRlc3RzIGRlZmF1bHQgcnVsZXMgYmFzZWQgY2hhcmFjdGVyIGl0ZXJhdGlvbi4KKyAgLy8gQnVpbGRzIGEgbmV3IGl0ZXJhdG9yIGZyb20gdGhlIHNvdXJjZSBydWxlcyBpbiB0aGUgZGVmYXVsdCAocHJlYnVpbHQpIGl0ZXJhdG9yLgorICAvLworICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpeworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKUJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBjaGFyYWN0ZXIgaXRlcmF0aW9uIGJ5IHVzaW5nIGRlZmF1bHQgcnVsZXMiKTsKKworICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgCisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyRGVmYXVsdD1udWxsOworICAgICAgdHJ5eworICAgICAgICAgIGNoYXJJdGVyRGVmYXVsdCAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoZGVmYXVsdFJ1bGVzKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3REZWZhdWx0UnVsZUJhc2VkQ2hhcmFjdGVySXRlcmF0aW9uKCkiKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgIFZlY3RvciBjaGFyZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIkgiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImUiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImwiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImwiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIm8iKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImVcdTAzMDEiKTsgICAgICAgICAgICAgICAgICAgLy9hY3V0ZUUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiYiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImVcdTAzMDMiKTsgICAgICAgICAgICAgICAgICAgLy90aWxkYUUKKyAgICAgIC8vZGV2YW5hZ2lyaSBjaGFyYWN0ZXJzIGZvciBIaW5kaSBzdXBwb3J0CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MDYiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBBQQorICAgICAgLy9jaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5M2VcdTA5MDEiKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSB2b3dlbHNpZ24gQUErIGNoYW5kcmFiaW5kaHUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkxNlx1MDk0NyIpOyAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIEtIQSt2b3dlbHNpZ24gRQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM4XHUwOTQxXHUwOTAyIik7ICAgICAgICAvL2RldmFuYWdpcmkgU0Erdm93ZWxzaWduIFUgKyBhbnVzdmFyYShiaW5kdSkKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkyNiIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudCBEQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTMwIik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgY29uc29uYW50IFJBCisgICAgICAvLyBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5NGMiKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBIQSt2b3dlbCBzaWduIEFJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBkYW5kYQorICAgICAgLy9lbmQgaGluZGkgY2hhcmFjdGVycyAgICAgIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiQVx1MDMwMiIpOyAgICAgICAgICAgICAgICAgICAvLyBjaXJjdW1mbGV4QSAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImlcdTAzMDEiKTsgICAgICAgICAgICAgICAgICAgLy8gYWN1dGVCZWxvd0kgICAKKyAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLiAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWJjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOyAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIENSTEYgc2VxdWVuY2VzIHRvZ2V0aGVyICAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlNcdTAzMDAiKTsgICAgICAgICAgICAgICAgICAgLy9ncmF2ZVMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImlcdTAzMDEiKTsgICAgICAgICAgICAgICAgICAgLy8gYWN1dGVCZWxvd0kKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiEiKTsKKworICAgICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgICAvLyBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorICAgICAgLy8gaXQgY29ycmVjdGx5KSwgZmlyc3QgYXMgcHJlY29tcG9zZWQgc3lsbGFibGVzLCBhbmQgdGhlbiBhcyBjb25qb2luaW5nIGphbW8uCisgICAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgICAgLy8gcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWMwYzEiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDU2ZCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVkNTVjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWM3NzgiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1YzVmMCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVkNTY5Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWM3YTUiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1Yjg1YyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVhZDUwIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWQ2OGMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAvLyBjb25qb2luaW5nIGphbW8uLi4KKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWJjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWIiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE3NVx1MTFhYiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTY3XHUxMWFiIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYjgiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTA1XHUxMTY5Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDBcdTExNmQiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2YyIpOworCisKKyAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoY2hhckl0ZXJEZWZhdWx0LCBjaGFyZGF0YSk7CisKKyAgfQorCisgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0UnVsZUJhc2VkV29yZEl0ZXJhdGlvbigpeworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgZm9yIHdvcmQgaXRlcmF0aW9uIHVzaW5nIGRlZmF1bHQgcnVsZXMiKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgCisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdvcmRJdGVyRGVmYXVsdD1udWxsOworICAgICAgdHJ5eworICAgICAgd29yZEl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkgLS0gY3VzdG9tIHJ1bGVzIisgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgICBWZWN0b3Igd29yZGRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgiV3JpdGUiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQgKCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgid29yZHJ1bGVzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgLy93b3JkZGF0YS5hZGRFbGVtZW50KCJhbHBoYS1iZXRhLWdhbW1hIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7ICAgICAgCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDkzZiIgKyBoYWxmTkEgKyAiXHUwOTI2XHUwOTQwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5NDgiKTsKKyAgICAgIC8vICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAvL2RhbmRhIGZvbGxvd2VkIGJ5IGEgc3BhY2UKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkzZVx1MDkyYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCI/Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkl0J3MiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgLy8gd29yZGRhdGEuYWRkRWxlbWVudCgiJDMwLjEwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7ICAKKyAgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJCYWRnZXMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkJBREdFUyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMTAwMCwyMzMsNDU2LjAwMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworCisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRJdGVyRGVmYXVsdCwgd29yZGRhdGEpOworICB9CisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrUGFyYWdyYXBoU2VwYXJhdG9yID0gIlx1MjAyOSI7CisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrTGluZVNlcGFyYXRvciAgICAgID0gIlx1MjAyOCI7CisKKyAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRSdWxlQmFzZWRTZW50ZW5jZUl0ZXJhdGlvbigpeworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgZm9yIHNlbnRlbmNlIGl0ZXJhdGlvbiB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAKKyAgICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igc2VudEl0ZXJEZWZhdWx0PW51bGw7CisgICAgICB0cnl7CisgICAgICAgICAgc2VudEl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRTZW50ZW5jZUl0ZXJhdGlvbigpIiArIGlhZS50b1N0cmluZygpKTsKKyAgICAgIH0KKyAgICAgIAorICAgICAgVmVjdG9yIHNlbnRkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlRlc3RpbmcgdGhlIHNlbnRlbmNlIGl0ZXJhdG9yLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiVGhpcyBpc25cJ3QgaXQuXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCIoVGhpcyBpcyBpdC4pICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiXCJUaGlzIGlzblwndCBpdC5cIiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkhpISAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkl0IGRvZXMgbm90IGhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UgYXMgeW91IGNhbiBzZWUuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiTmVsIG1lenpvIGRlbCBjYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluIHVuYSBzZWx2YSBvc2N1cmEuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiQ2hlIGxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4gIik7CisgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50SXRlckRlZmF1bHQsIHNlbnRkYXRhKTsKKyAgfQorICAgCisgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0UnVsZUJhc2VkTGluZUl0ZXJhdGlvbigpeworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgZm9yIGxpbmUgaXRlcmF0aW9uIHVzaW5nIGRlZmF1bHQgcnVsZXMiKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgICAgICBsaW5lSXRlckRlZmF1bHQgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGRlZmF1bHRSdWxlcyk7IAorICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0RGVmYXVsdFJ1bGVCYXNlZExpbmVJdGVyYXRpb24oKSIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgVmVjdG9yIGxpbmVkYXRhID0gbmV3IFZlY3RvcigpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJNdWx0aS0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTGV2ZWwgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImV4YW1wbGUgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIm9mICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJhICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW1pLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJpZGlvdGljICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJub24tIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInNlbnNpY2FsICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCIobm9uLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJpbXBvcnRhbnQpICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW50ZW5jZS4gIik7CisKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSGkgICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJIZWxsbyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSG93XG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYXJlXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgieW91IiArIGtMaW5lU2VwYXJhdG9yKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZmluZS5cdCIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJnb29kLiAgIik7CisKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTm93XHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaXNcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJ0aGVcclxuIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInRpbWVcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJmb3JcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJhbGwiKTsKKworICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVJdGVyRGVmYXVsdCwgbGluZWRhdGEpOworCisKKyAgfQorIAorICAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgIC8vIGdlbmVyYWwgdGVzdCBzdWJyb3V0aW5lcworICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBwcml2YXRlIHZvaWQgZ2VuZXJhbEl0ZXJhdG9yVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFZlY3RvciBleHBlY3RlZFJlc3VsdCl7CisgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkUmVzdWx0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgdGV4dCA9IChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGV4dCk7CisgICAgICAgICB9CisgICAgICAgICB0ZXh0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICBpZiAocmJiaSA9PSBudWxsKSB7CisgICAgICAgICAgICAgZXJybG4oIm51bGwgaXRlcmF0b3IsIHRlc3Qgc2tpcHBlZC4iKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisKKyAgICAgICAgIHJiYmkuc2V0VGV4dCh0ZXh0KTsKKworICAgICAgICAgVmVjdG9yIG5leHRSZXN1bHRzID0gX3Rlc3RGaXJzdEFuZE5leHQocmJiaSwgdGV4dCk7CisgICAgICAgICBWZWN0b3IgcHJldmlvdXNSZXN1bHRzID0gX3Rlc3RMYXN0QW5kUHJldmlvdXMocmJiaSwgdGV4dCk7CisKKyAgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZm9yd2FyZCBhbmQgYmFja3dhcmQuLi4iKTsKKyAgICAgICAgIGludCBlcnJzID0gZ2V0RXJyb3JDb3VudCgpOworICAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImZvcndhcmQgaXRlcmF0aW9uIiwgImJhY2t3YXJkIGl0ZXJhdGlvbiIsIG5leHRSZXN1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0cyk7CisgICAgICAgICBpZiAoZ2V0RXJyb3JDb3VudCgpID09IGVycnMpIHsKKyAgICAgICAgICAgICBsb2dsbigiY29tcGFyaW5nIGV4cGVjdGVkIGFuZCBhY3R1YWwuLi4iKTsKKyAgICAgICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZXhwZWN0ZWQgcmVzdWx0IiwgImFjdHVhbCByZXN1bHQiLCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc3VsdHMpOworICAgICAgICAgfQorCisgICAgICAgIGludFtdIGJvdW5kYXJpZXMgPSBuZXcgaW50W2V4cGVjdGVkUmVzdWx0LnNpemUoKSArIDNdOworICAgICAgICBib3VuZGFyaWVzWzBdID0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICBib3VuZGFyaWVzWzFdID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykKKyAgICAgICAgIGJvdW5kYXJpZXNbaSArIDJdID0gYm91bmRhcmllc1tpICsgMV0gKyAoKFN0cmluZylleHBlY3RlZFJlc3VsdC5lbGVtZW50QXQoaSkpLmxlbmd0aCgpOworICAgICAgCisgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcmllcy5sZW5ndGggLSAxXSA9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgIAorICAgICAgICBfdGVzdEZvbGxvd2luZyhyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RQcmVjZWRpbmcocmJiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0SXNCb3VuZGFyeShyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKworICAgICAgICBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChyYmJpLCB0ZXh0KTsKKyAgICAgfQorCisgICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0Rmlyc3RBbmROZXh0KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgIGludCBwID0gcmJiaS5maXJzdCgpOworICAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICAgZXJybG4oImZpcnN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkubmV4dCgpOworICAgICAgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICBpZiAocCA8PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgZmFpbGVkIHRvIG1vdmUgZm9yd2FyZDogbmV4dCgpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiB5aWVsZGVkICIgKyBwKTsKKworICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRWxlbWVudCh0ZXh0LnN1YnN0cmluZyhsYXN0UCwgcCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IHRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICB9CisKKyAgICAgcHJpdmF0ZSBWZWN0b3IgX3Rlc3RMYXN0QW5kUHJldmlvdXMoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICAgaW50IHAgPSByYmJpLmxhc3QoKTsKKyAgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgICBpZiAocCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgIGVycmxuKCJsYXN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkucHJldmlvdXMoKTsKKyAgICAgICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgaWYgKHAgPj0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSBmYWlsZWQgdG8gbW92ZSBiYWNrd2FyZDogcHJldmlvdXMoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydEVsZW1lbnRBdCh0ZXh0LnN1YnN0cmluZyhwLCBsYXN0UCksIDApOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IDApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgfQorCisgICAgIHByaXZhdGUgdm9pZCBjb21wYXJlRnJhZ21lbnRMaXN0cyhTdHJpbmcgZjFOYW1lLCBTdHJpbmcgZjJOYW1lLCBWZWN0b3IgZjEsIFZlY3RvciBmMikgeworICAgICAgICAgaW50IHAxID0gMDsKKyAgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgICBTdHJpbmcgczE7CisgICAgICAgICBTdHJpbmcgczI7CisgICAgICAgICBpbnQgdDEgPSAwOworICAgICAgICAgaW50IHQyID0gMDsKKworICAgICAgICAgd2hpbGUgKHAxIDwgZjEuc2l6ZSgpICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgdDIgKz0gczIubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgICA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wVDEgPSB0MTsKKyAgICAgICAgICAgICAgICAgaW50IHRlbXBUMiA9IHQyOworICAgICAgICAgICAgICAgICBpbnQgdGVtcFAxID0gcDE7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wUDIgPSBwMjsKKworICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxICE9IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkgJiYgdGVtcFAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxIDwgdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMSArPSAoKFN0cmluZylmMS5lbGVtZW50QXQodGVtcFAxKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDE7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQyIDwgdGVtcFQxICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMiArPSAoKFN0cmluZylmMi5lbGVtZW50QXQodGVtcFAyKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDI7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgbG9nbG4oIioqKiAiICsgZjFOYW1lICsgIiBoYXM6Iik7CisgICAgICAgICAgICAgICAgIHdoaWxlIChwMSA8PSB0ZW1wUDEgJiYgcDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsb2dsbigiKioqKiogIiArIGYyTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgICB3aGlsZSAocDIgPD0gdGVtcFAyICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICBzMiA9IChTdHJpbmcpZjIuZWxlbWVudEF0KHAyKTsKKyAgICAgICAgICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKioqID4iICsgczIgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBlcnJsbigiRGlzY3JlcGFuY3kgYmV0d2VlbiAiICsgZjFOYW1lICsgIiBhbmQgIiArIGYyTmFtZSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RGb2xsb3dpbmcoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgIGxvZ2xuKCJ0ZXN0Rm9sbG93aW5nKCk6Iik7CisgICAgICAgaW50IHAgPSAyOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIGludCBiID0gcmJiaS5mb2xsb3dpbmcoaSk7CisgICAgICAgICAgIGxvZ2xuKCJyYmJpLmZvbGxvd2luZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBmb2xsb3dpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKyAgICAgICB9CisgICB9CisKKyAgIHByaXZhdGUgdm9pZCBfdGVzdFByZWNlZGluZyhSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RQcmVjZWRpbmcoKToiKTsKKyAgICAgICBpbnQgcCA9IDA7CisgICAgICAgZm9yKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgaW50IGIgPSByYmJpLnByZWNlZGluZyhpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkucHJlY2VkaW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICBpZiAoYiAhPSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIHByZWNlZGluZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcCArIDFdKQorICAgICAgICAgICAgICAgKytwOworICAgICAgIH0KKyAgIH0KKworICAgcHJpdmF0ZSB2b2lkIF90ZXN0SXNCb3VuZGFyeShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgaW50IHAgPSAxOworICAgICAgIGJvb2xlYW4gaXNCOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlzQiA9IHJiYmkuaXNCb3VuZGFyeShpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworICAgICAgICAgICBpZihpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgdHJ1ZSwgZ290IGZhbHNlIik7CisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICBpZihpc0IpCisgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgIH0KKyAgIHByaXZhdGUgdm9pZCBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgdGVzdFRleHQpCisgICB7CisgICAgICAgbG9nbG4oIk11bHRpcGxlIHNlbGVjdGlvbiB0ZXN0Li4uIik7CisgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB0ZXN0SXRlcmF0b3IgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgICAgIGludCBvZmZzZXQgPSBpdGVyYXRvci5maXJzdCgpOworICAgICAgIGludCB0ZXN0T2Zmc2V0OworICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworCisgICAgICAgLy8gbm93IGRvIGl0IGJhY2t3YXJkcy4uLgorICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubGFzdCgpOworICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLm5leHQoY291bnQpOworICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KG4pIGFuZCBuZXh0KCkgbm90IHJldHVybmluZyBjb25zaXN0ZW50IHJlc3VsdHM6IGZvciBzdGVwICIgKyBjb3VudCArICIsIG5leHQobikgcmV0dXJuZWQgIiArIHRlc3RPZmZzZXQgKyAiIGFuZCBuZXh0KCkgaGFkICIgKyBvZmZzZXQpOworCisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICBjb3VudC0tOworICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworICAgfQorCisgICBwcml2YXRlIHZvaWQgZGVidWdMb2dsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKyAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdEV4dGVuZGVkLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdEV4dGVuZGVkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE1Zjk2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0RXh0ZW5kZWQuamF2YQpAQCAtMCwwICsxLDQ5MiBAQAorLyoKKyAqIENyZWF0ZWQgb24gTWF5IDUsIDIwMDQKKyAqIAorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisKKy8qKgorICogUnVsZSBiYXNlZCBicmVhayBpdGVyYXRvciBkYXRhIGRyaXZlbiB0ZXN0LgorICogICAgICBQZXJmb3JtIHRoZSB0ZXN0cyBmcm9tIHRoZSBmaWxlIHJiYml0c3QudHh0LgorICogICAgICBUaGUgdGVzdCBkYXRhIGZpbGUgaXMgY29tbW9uIHRvIGJvdGggSUNVNEMgYW5kIElDVTRKLgorICogICAgICBTZWUgdGhlIGRhdGEgZmlsZSBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgdGVzdHMuCisgKgorICovCitwdWJsaWMgY2xhc3MgUkJCSVRlc3RFeHRlbmRlZCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUkJCSVRlc3RFeHRlbmRlZCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgCitwdWJsaWMgUkJCSVRlc3RFeHRlbmRlZCgpIHsgCisgICAgfQorCisKKworc3RhdGljIGNsYXNzIFRlc3RQYXJhbXMgeworICAgIEJyZWFrSXRlcmF0b3IgICBiaTsKKyAgICBTdHJpbmdCdWZmZXIgICAgZGF0YVRvQnJlYWsgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50W10gICAgICAgICAgIGV4cGVjdGVkQnJlYWtzID0gbmV3IGludFsxMDAwXTsKKyAgICBpbnRbXSAgICAgICAgICAgc3JjTGluZSAgICAgICAgPSBuZXcgaW50WzEwMDBdOworICAgIGludFtdICAgICAgICAgICBzcmNDb2wgICAgICAgICA9IG5ldyBpbnRbMTAwMF07CisgICAgVUxvY2FsZSAgICAgICAgIGN1cnJlbnRMb2NhbGUgID0gbmV3IFVMb2NhbGUoImVuX1VTIik7Cit9CisKKworcHVibGljIHZvaWQgVGVzdEV4dGVuZGVkKCkgeworCisgICAgVGVzdFBhcmFtcyAgICAgdHAgPSBuZXcgVGVzdFBhcmFtcygpOworCisKKyAgICAvLworICAgIC8vICBPcGVuIGFuZCByZWFkIHRoZSB0ZXN0IGRhdGEgZmlsZS4KKyAgICAvLworICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgU3RyaW5nQnVmZmVyICB0ZXN0RmlsZUJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICB0cnkgeworICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IFJCQklUZXN0RXh0ZW5kZWQuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbSgicmJiaXRzdC50eHQiKTsKKyAgICAgICAgaWYgKGlzID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3Qgb3BlbiB0ZXN0IGRhdGEgZmlsZSByYmJpdHN0LnR4dCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgIlVURi04Iik7ICAgICAgICAgICAKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGMgPSBpc3IucmVhZCgpOworICAgICAgICAgICAgaWYgKGMgPCAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYgKGM9PTB4RkVGRiAmJiBjb3VudD09MSkgeworICAgICAgICAgICAgICAgLy8gQk9NIGluIHRoZSB0ZXN0IGRhdGEgZmlsZS4gIERpc2NhcmQgaXQuCisgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgCisgICAgICAgICAgICBVVEYxNi5hcHBlbmQodGVzdEZpbGVCdWYsIGMpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgdGVzdFN0cmluZyA9IHRlc3RGaWxlQnVmLnRvU3RyaW5nKCk7CisgICAgCisKKyAgICBmaW5hbCBpbnQgIFBBUlNFX0NPTU1FTlQgPSAxOworICAgIGZpbmFsIGludCAgUEFSU0VfVEFHICAgICA9IDI7CisgICAgZmluYWwgaW50ICBQQVJTRV9EQVRBICAgID0gMzsKKyAgICBmaW5hbCBpbnQgIFBBUlNFX05VTSAgICAgPSA0OworCisgICAgaW50IHBhcnNlU3RhdGUgPSBQQVJTRV9UQUc7CisKKyAgICBpbnQgc2F2ZWRTdGF0ZSA9IFBBUlNFX1RBRzsKKworICAgIGZpbmFsIGNoYXIgQ0hfTEYgICAgICAgID0gMHgwYTsKKyAgICBmaW5hbCBjaGFyIENIX0NSICAgICAgICA9IDB4MGQ7CisgICAgZmluYWwgY2hhciBDSF9IQVNIICAgICAgPSAweDIzOworICAgIC8qc3RhdGljIGNvbnN0IFVDaGFyIENIX1BFUklPRCAgICA9IDB4MmU7Ki8KKyAgICBmaW5hbCBjaGFyIENIX0xUICAgICAgICA9IDB4M2M7CisgICAgZmluYWwgY2hhciBDSF9HVCAgICAgICAgPSAweDNlOworICAgIGZpbmFsIGNoYXIgQ0hfQkFDS1NMQVNIID0gMHg1YzsKKyAgICBmaW5hbCBjaGFyIENIX0JVTExFVCAgICA9IDB4MjAyMjsKKworICAgIGludCAgICBsaW5lTnVtICA9IDE7CisgICAgaW50ICAgIGNvbFN0YXJ0ID0gMDsKKyAgICBpbnQgICAgY29sdW1uICAgPSAwOworICAgIGludCAgICBjaGFySWR4ICA9IDA7CisgICAgaW50ICAgIGk7CisKKyAgICBpbnQgICAgdGFnVmFsdWUgPSAwOyAgICAgICAvLyBUaGUgbnVtZXJpYyB2YWx1ZSBvZiBhIDxubm4+IHRhZy4KKyAgICBpbnQgICAgbGVuID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKworICAgIGZvciAoY2hhcklkeCA9IDA7IGNoYXJJZHggPCBsZW47ICkgeworICAgICAgICBpbnQgIGMgPSBVVEYxNi5jaGFyQXQodGVzdFN0cmluZywgY2hhcklkeCk7CisgICAgICAgIGNoYXJJZHgrKzsKKyAgICAgICAgaWYgKGMgPT0gQ0hfQ1IgJiYgY2hhcklkeDxsZW4gJiYgdGVzdFN0cmluZy5jaGFyQXQoY2hhcklkeCkgPT0gQ0hfTEYpIHsKKyAgICAgICAgICAgIC8vIHRyZWF0IENSTEYgYXMgYSB1bml0CisgICAgICAgICAgICBjID0gQ0hfTEY7CisgICAgICAgICAgICBjaGFySWR4Kys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGMgPT0gQ0hfTEYgfHwgYyA9PSBDSF9DUikgeworICAgICAgICAgICAgbGluZU51bSsrOworICAgICAgICAgICAgY29sU3RhcnQgPSBjaGFySWR4OworICAgICAgICB9CisgICAgICAgIGNvbHVtbiA9IGNoYXJJZHggLSBjb2xTdGFydCArIDE7CisKKyAgICAgICAgc3dpdGNoIChwYXJzZVN0YXRlKSB7CisgICAgICAgIGNhc2UgUEFSU0VfQ09NTUVOVDoKKyAgICAgICAgICAgIGlmIChjID09IDB4MGEgfHwgYyA9PSAweDBkKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IHNhdmVkU3RhdGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBBUlNFX1RBRzoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjID09IENIX0hBU0gpIHsKKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfQ09NTUVOVDsKKyAgICAgICAgICAgICAgICBzYXZlZFN0YXRlID0gUEFSU0VfVEFHOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjx3b3JkPiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHRwLmN1cnJlbnRMb2NhbGUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxjaGFyPiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UodHAuY3VycmVudExvY2FsZSk7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA1OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPGxpbmU+IiwgY2hhcklkeC0xKSkgeworICAgICAgICAgICAgICAgIHRwLmJpID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UodHAuY3VycmVudExvY2FsZSk7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA1OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPHNlbnQ+IiwgY2hhcklkeC0xKSkgeworICAgICAgICAgICAgICAgIHRwLmJpID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKHRwLmN1cnJlbnRMb2NhbGUpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjx0aXRsZT4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UodHAuY3VycmVudExvY2FsZSk7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA2OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPGxvY2FsZSAiLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgaW50IGNsb3NlSW5kZXggPSB0ZXN0U3RyaW5nLmluZGV4T2YoIj4iLCBjaGFySWR4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2xvc2VJbmRleCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImxpbmUiICsgbGluZU51bSArICI6IG1pc3NpbmcgY2xvc2Ugb24gPGxvY2FsZSAgdGFnLiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSB0ZXN0U3RyaW5nLnN1YnN0cmluZyhjaGFySWR4KzYsIGNsb3NlSW5kZXgpOworICAgICAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBsb2NhbGVOYW1lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICB0cC5jdXJyZW50TG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlTmFtZSk7CisgICAgICAgICAgICAgICAgY2hhcklkeCA9IGNsb3NlSW5kZXgrMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxkYXRhPiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfREFUQTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDU7CisgICAgICAgICAgICAgICAgdHAuZGF0YVRvQnJlYWsuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKHRwLmV4cGVjdGVkQnJlYWtzLCAwKTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbCh0cC5zcmNDb2wsIDApOworICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKHRwLnNyY0xpbmUsIDApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlcnJsbigibGluZSIgKyBsaW5lTnVtICsgIjogVGFnIGV4cGVjdGVkIGluIHRlc3QgZmlsZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIC8vcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7CisgICAgICAgICAgICAvL3NhdmVkU3RhdGUgPSBQQVJTRV9EQVRBOworICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgUEFSU0VfREFUQToKKyAgICAgICAgICAgIGlmIChjID09IENIX0JVTExFVCkgeworICAgICAgICAgICAgICAgIGludCAgYnJlYWtJZHggPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0cC5leHBlY3RlZEJyZWFrc1ticmVha0lkeF0gPSAtMTsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2JyZWFrSWR4XSAgICAgICAgPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFticmVha0lkeF0gICAgICAgICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPC9kYXRhPiIsIGNoYXJJZHgtMSkpICB7CisgICAgICAgICAgICAgICAgLy8gQWRkIGZpbmFsIGVudHJ5IHRvIG1hcHBpbmdzIGZyb20gYnJlYWsgbG9jYXRpb24gdG8gc291cmNlIGZpbGUgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgLy8gIE5lZWQgb25lIGV4dHJhIGJlY2F1c2UgbGFzdCBicmVhayBwb3NpdGlvbiByZXR1cm5lZCBpcyBhZnRlciB0aGUKKyAgICAgICAgICAgICAgICAvLyAgICBsYXN0IGNoYXIgaW4gdGhlIGRhdGEsIG5vdCBhdCB0aGUgbGFzdCBjaGFyLgorICAgICAgICAgICAgICAgIGludCBpZHggPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2lkeF0gPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFtpZHhdICA9IGNvbHVtbjsKKworICAgICAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBQQVJTRV9UQUc7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA2OworCisgICAgICAgICAgICAgICAgLy8gUlVOIFRIRSBURVNUIQorICAgICAgICAgICAgICAgIGV4ZWN1dGVUZXN0KHRwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCJcXE57IiwgY2hhcklkeC0xKSkgeworICAgICAgICAgICAgICAgaW50IG5hbWVFbmRJZHggPSB0ZXN0U3RyaW5nLmluZGV4T2YoJ30nLCBjaGFySWR4KTsKKyAgICAgICAgICAgICAgIGlmIChuYW1lRW5kSWR4ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGluIG5hbWVkIGNoYXJhY3RlciBpbiB0ZXN0IGZpbGUgYXQgbGluZSAiICsgbGluZU51bSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBjb2wgIiArIGNvbHVtbik7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gTmFtZWQgY2hhcmFjdGVyLCBlLmcuIFxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBjb2RlIHBvaW50IGZyb20gdGhlIG5hbWUgYW5kIGluc2VydCBpdCBpbnRvIHRoZSB0ZXN0IGRhdGEuCisgICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJOYW1lID0gdGVzdFN0cmluZy5zdWJzdHJpbmcoY2hhcklkeCsyLCBuYW1lRW5kSWR4KTsKKyAgICAgICAgICAgICAgICBjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbU5hbWUoY2hhck5hbWUpOworICAgICAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBpbiBuYW1lZCBjaGFyYWN0ZXIgaW4gdGVzdCBmaWxlIGF0IGxpbmUgIiArIGxpbmVOdW0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGNvbCAiICsgY29sdW1uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBOYW1lZCBjb2RlIHBvaW50IHdhcyByZWNvZ25pemVkLiAgSW5zZXJ0IGl0CisgICAgICAgICAgICAgICAgICAgIC8vICAgaW50byB0aGUgdGVzdCBkYXRhLgorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQodHAuZGF0YVRvQnJlYWssIGMpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKS0xOyBpPj0wICYmIHRwLnNyY0xpbmVbaV09PTA7IGktLSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHAuc3JjTGluZVtpXSA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgICAgICAgICB0cC5zcmNDb2xbaV0gID0gY29sdW1uOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5hbWVFbmRJZHggPiBjaGFySWR4KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJJZHggPSBuYW1lRW5kSWR4KzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8PiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICBjaGFySWR4Kys7CisgICAgICAgICAgICAgICAgaW50ICBicmVha0lkeCA9IHRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRwLmV4cGVjdGVkQnJlYWtzW2JyZWFrSWR4XSA9IC0xOworICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbYnJlYWtJZHhdICAgICAgICA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2JyZWFrSWR4XSAgICAgICAgID0gY29sdW1uOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYyA9PSBDSF9MVCkgeworICAgICAgICAgICAgICAgIHRhZ1ZhbHVlICAgPSAwOworICAgICAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBQQVJTRV9OVU07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09IENIX0hBU0ggJiYgY29sdW1uPT0zKSB7ICAgLy8gVE9ETzogIHdoeSBpcyBjb2x1bW4gb2ZmIHNvIGZhcj8KKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfQ09NTUVOVDsKKyAgICAgICAgICAgICAgICBzYXZlZFN0YXRlID0gUEFSU0VfREFUQTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGMgPT0gQ0hfQkFDS1NMQVNIKSB7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIFwgYXQgZW5kIG9mIGxpbmUsIGEgbGluZSBjb250aW51YXRpb24uCisgICAgICAgICAgICAgICAgLy8gICAgIEFkdmFuY2Ugb3ZlciAoZGlzY2FyZCkgdGhlIG5ld2xpbmUKKyAgICAgICAgICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQodGVzdFN0cmluZywgY2hhcklkeCk7IAorICAgICAgICAgICAgICAgIGlmIChjcCA9PSBDSF9DUiAmJiBjaGFySWR4PGxlbiAmJiBVVEYxNi5jaGFyQXQodGVzdFN0cmluZywgY2hhcklkeCsxKSA9PSBDSF9MRikgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgQ1IgTEYKKyAgICAgICAgICAgICAgICAgICAgLy8gIE5lZWQgYW4gZXh0cmEgaW5jcmVtZW50IG9mIHRoZSBpbnB1dCBwdHIgdG8gbW92ZSBvdmVyIGJvdGggb2YgdGhlbQorICAgICAgICAgICAgICAgICAgICBjaGFySWR4Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjcCA9PSBDSF9MRiB8fCBjcCA9PSBDSF9DUikgeworICAgICAgICAgICAgICAgICAgICBsaW5lTnVtKys7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbiAgID0gMDsKKyAgICAgICAgICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICAgICAgICAgICAgICBjb2xTdGFydCA9IGNoYXJJZHg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIExldCB1bmVzY2FwZSBoYW5kbGUgdGhlIGJhY2sgc2xhc2guCisgICAgICAgICAgICAgICAgaW50ICBjaGFySWR4QXJbXSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICAgICAgY2hhcklkeEFyWzBdID0gY2hhcklkeDsKKyAgICAgICAgICAgICAgICBjcCA9IFV0aWxpdHkudW5lc2NhcGVBdCh0ZXN0U3RyaW5nLCBjaGFySWR4QXIpOworICAgICAgICAgICAgICAgIGlmIChjcCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAvLyBFc2NhcGUgc2VxdWVuY2Ugd2FzIHJlY29nbml6ZWQuICBJbnNlcnQgdGhlIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gICBpbnRvIHRoZSB0ZXN0IGRhdGEuCisgICAgICAgICAgICAgICAgICAgIGNoYXJJZHggPSBjaGFySWR4QXJbMF07CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZCh0cC5kYXRhVG9CcmVhaywgY3ApOworICAgICAgICAgICAgICAgICAgICBmb3IgKGk9dHAuZGF0YVRvQnJlYWsubGVuZ3RoKCktMTsgaT49MCAmJiB0cC5zcmNMaW5lW2ldPT0wOyBpLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbaV0gPSBsaW5lTnVtOworICAgICAgICAgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2ldICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgICAgICAvLyBOb3QgYSByZWNvZ25pemVkIGJhY2tzbGFzaCBlc2NhcGUgc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgLy8gVGFrZSB0aGUgbmV4dCBjaGFyIGFzIGEgbGl0ZXJhbC4KKyAgICAgICAgICAgICAgICAvLyAgVE9ETzogIFNob3VsZCB0aGlzIGJlIGFuIGVycm9yPworICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQodGVzdFN0cmluZyxjaGFySWR4KTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldCh0ZXN0U3RyaW5nLCBjaGFySWR4LCAxKTsKKyAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vcm1hbCwgbm9uLWVzY2FwZWQgZGF0YSBjaGFyLgorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRwLmRhdGFUb0JyZWFrLCBjKTsKKyAKKyAgICAgICAgICAgIC8vIFNhdmUgdGhlIG1hcHBpbmcgZnJvbSBvZmZzZXQgaW4gdGhlIGRhdGEgdG8gbGluZS9jb2x1bW4gbnVtYmVycyBpbgorICAgICAgICAgICAgLy8gICB0aGUgb3JpZ2luYWwgaW5wdXQgZmlsZS4gIFdpbGwgYmUgdXNlZCBmb3IgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIG9ubHkuCisgICAgICAgICAgICAvLyAgIElmIHRoZXJlJ3MgYW4gZXhwZWN0ZWQgYnJlYWsgYmVmb3JlIHRoaXMgY2hhciwgdGhlIHNsb3QgaW4gdGhlIG1hcHBpbmcKKyAgICAgICAgICAgIC8vICAgICB2ZWN0b3Igd2lsbCBhbHJlYWR5IGJlIHNldCBmb3IgdGhpcyBjaGFyOyBkb24ndCBvdmVyd3JpdGUgaXQuCisgICAgICAgICAgICBmb3IgKGk9dHAuZGF0YVRvQnJlYWsubGVuZ3RoKCktMTsgaT49MCAmJiB0cC5zcmNMaW5lW2ldPT0wOyBpLS0pIHsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2ldID0gbGluZU51bTsKKyAgICAgICAgICAgICAgICB0cC5zcmNDb2xbaV0gID0gY29sdW1uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKworICAgICAgICBjYXNlIFBBUlNFX05VTToKKyAgICAgICAgICAgIC8vIFdlIGFyZSBwYXJzaW5nIGFuIGV4cGVjdGVkIG51bWVyaWMgdGFnIHZhbHVlLCBsaWtlIDwxMjM0PiwKKyAgICAgICAgICAgIC8vICAgd2l0aGluIGEgY2h1bmsgb2YgZGF0YS4KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYyA9PSBDSF9HVCkgeworICAgICAgICAgICAgICAgIC8vIEZpbmlzaGVkIHRoZSBudW1iZXIuICBBZGQgdGhlIGluZm8gdG8gdGhlIGV4cGVjdGVkIGJyZWFrIGRhdGEsCisgICAgICAgICAgICAgICAgLy8gICBhbmQgc3dpdGNoIHBhcnNlIHN0YXRlIGJhY2sgdG8gZG9pbmcgcGxhaW4gZGF0YS4KKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfREFUQTsKKyAgICAgICAgICAgICAgICBpZiAodGFnVmFsdWUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YWdWYWx1ZSA9IC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgIGJyZWFrSWR4ID0gdHAuZGF0YVRvQnJlYWsubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdHAuZXhwZWN0ZWRCcmVha3NbYnJlYWtJZHhdID0gdGFnVmFsdWU7CisgICAgICAgICAgICAgICAgdHAuc3JjTGluZVticmVha0lkeF0gICAgICAgID0gbGluZU51bTsKKyAgICAgICAgICAgICAgICB0cC5zcmNDb2xbYnJlYWtJZHhdICAgICAgICAgPSBjb2x1bW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQoYykpIHsKKyAgICAgICAgICAgICAgICB0YWdWYWx1ZSA9IHRhZ1ZhbHVlKjEwICsgVUNoYXJhY3Rlci5kaWdpdChjKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXJybG4oIlN5bnRheCBFcnJvciBpbiB0ZXN0IGZpbGUgYXQgbGluZSAiKyBsaW5lTnVtICsiLCBjb2wgJWQiICsgY29sdW1uKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7ICAgLy8gVE9ETzogdW5yZWFjaGFibGUuICBEb24ndCBzdG9wIG9uIGVycm9ycy4KKyAgICAgICAgICAgIC8vIGJyZWFrOworICAgICAgICB9CisKKworIAorICAgIH0KK30KKwordm9pZCBleGVjdXRlVGVzdChUZXN0UGFyYW1zIHQpIHsKKyAgICBpbnQgICAgYnA7CisgICAgaW50ICAgIHByZXZCUDsKKyAgICBpbnQgICAgaTsKKworICAgIGlmICh0LmJpID09IG51bGwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICB0LmJpLnNldFRleHQodC5kYXRhVG9CcmVhay50b1N0cmluZygpKTsKKyAgICAvLworICAgIC8vICBSdW4gdGhlIGl0ZXJhdG9yIGZvcndhcmQKKyAgICAvLworICAgIHByZXZCUCA9IC0xOworICAgIGZvciAoYnAgPSB0LmJpLmZpcnN0KCk7IGJwICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgYnAgPSB0LmJpLm5leHQoKSkgeworICAgICAgICBpZiAocHJldkJQID09ICBicCkgeworICAgICAgICAgICAgLy8gRmFpbCBmb3IgbGFjayBvZiBmb3J3YXJkIHByb2dyZXNzLgorICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcmF0aW9uLCBubyBmb3J3YXJkIHByb2dyZXNzLiAgQnJlYWsgUG9zPSIgKyBicCArCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9IiArIHQuc3JjTGluZVticF0gKyAiLCAiICsgdC5zcmNDb2xbYnBdKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVyZSB3ZXJlIHdlIGRpZG4ndCBtaXNzIGFuIGV4cGVjdGVkIGJyZWFrIGJldHdlZW4gdGhlIGxhc3Qgb25lCisgICAgICAgIC8vICBhbmQgdGhpcyBvbmUuCisgICAgICAgIGZvciAoaT1wcmV2QlArMTsgaTxicDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1tpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcmF0aW9uLCBicmVhayBleHBlY3RlZCwgYnV0IG5vdCBmb3VuZC4gIFBvcz0iICsgaSArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2ldICsgIiwgIiArIHQuc3JjQ29sW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGJyZWFrIHdlIGRpZCBmaW5kIHdhcyBleHBlY3RlZAorICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1ticF0gPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcmF0aW9uLCBicmVhayBmb3VuZCwgYnV0IG5vdCBleHBlY3RlZC4gIFBvcz0iICsgYnAgKyAKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVticF0gKyAiLCAiICsgdC5zcmNDb2xbYnBdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRoZSBicmVhayB3YXMgZXhwZWN0ZWQuCisgICAgICAgICAgICAvLyAgIENoZWNrIHRoYXQgdGhlIHtubm59IHRhZyB2YWx1ZSBpcyBjb3JyZWN0LgorICAgICAgICAgICAgaW50IGV4cGVjdGVkVGFnVmFsID0gdC5leHBlY3RlZEJyZWFrc1ticF07CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRUYWdWYWwgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFRhZ1ZhbCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbGluZSA9IHQuc3JjTGluZVticF07CisgICAgICAgICAgICBpbnQgcnMgPSAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpdC5iaSkuZ2V0UnVsZVN0YXR1cygpOworICAgICAgICAgICAgaWYgKHJzICE9IGV4cGVjdGVkVGFnVmFsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdGF0dXMgZm9yIGZvcndhcmQgYnJlYWsuICBQb3MgPSAiICsgYnAgKworICAgICAgICAgICAgICAgICAgICAgICAgIi4gIEZpbGUgbGluZSxjb2wgPSAiICsgbGluZSArICIsICIgKyB0LnNyY0NvbFticF0gKyAiXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgIEFjdHVhbCwgRXhwZWN0ZWQgc3RhdHVzID0gIiArIHJzICsgIiwgIiArIGV4cGVjdGVkVGFnVmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgcHJldkJQID0gYnA7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlcmUgd2VyZSBubyBtaXNzZWQgZXhwZWN0ZWQgYnJlYWtzIGFmdGVyIHRoZSBsYXN0IG9uZSBmb3VuZAorICAgIGZvciAoaT1wcmV2QlArMTsgaTx0LmRhdGFUb0JyZWFrLmxlbmd0aCgpKzE7IGkrKykgeworICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1tpXSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRm9yd2FyZCBJdGVyYXRpb24sIGJyZWFrIGV4cGVjdGVkLCBidXQgbm90IGZvdW5kLiAgUG9zPSIgKyBpICsgCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9ICIgKyB0LnNyY0xpbmVbaV0gKyAiLCAiICsgdC5zcmNDb2xbaV0pOworICAgICAgIH0KKyAgICB9CisKKyAgICAvLworICAgIC8vICBSdW4gdGhlIGl0ZXJhdG9yIGJhY2t3YXJkcywgdmVyaWZ5IHRoYXQgdGhlIHNhbWUgYnJlYWtzIGFyZSBmb3VuZC4KKyAgICAvLworICAgIHByZXZCUCA9IHQuZGF0YVRvQnJlYWsubGVuZ3RoKCkrMjsgIC8vIHN0YXJ0IHdpdGggYSBwaG9ueSB2YWx1ZSBmb3IgdGhlIGxhc3QgYnJlYWsgcG9zIHNlZW4uCisgICAgZm9yIChicCA9IHQuYmkubGFzdCgpOyBicCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGJwID0gdC5iaS5wcmV2aW91cygpKSB7CisgICAgICAgIGlmIChwcmV2QlAgPT0gIGJwKSB7CisgICAgICAgICAgICAvLyBGYWlsIGZvciBsYWNrIG9mIHByb2dyZXNzLgorICAgICAgICAgICAgZXJybG4oIlJldmVyc2UgSXRlcmF0aW9uLCBubyBwcm9ncmVzcy4gIEJyZWFrIFBvcz0iICsgYnAgKworICAgICAgICAgICAgICAgICAgICAiRmlsZSBsaW5lLGNvbD0iICsgdC5zcmNMaW5lW2JwXSArICIgIiArICB0LnNyY0NvbFticF0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZXJlIHdlcmUgd2UgZGlkbid0IG1pc3MgYW4gZXhwZWN0ZWQgYnJlYWsgYmV0d2VlbiB0aGUgbGFzdCBvbmUKKyAgICAgICAgLy8gIGFuZCB0aGlzIG9uZS4gIChVVmVjdG9yIHJldHVybnMgemVyb3MgZm9yIGluZGV4IG91dCBvZiBib3VuZHMuKQorICAgICAgICBmb3IgKGk9cHJldkJQLTE7IGk+YnA7IGktLSkgeworICAgICAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXZlcnNlIEl0ZXJ0aW9uLCBicmVhayBleHBlY3RlZCwgYnV0IG5vdCBmb3VuZC4gIFBvcz0iICsgaSArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2ldICsgIiwgIiArIHQuc3JjQ29sW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGJyZWFrIHdlIGRpZCBmaW5kIHdhcyBleHBlY3RlZAorICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1ticF0gPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlJldmVyc2UgSXRlcnRpb24sIGJyZWFrIGZvdW5kLCBidXQgbm90IGV4cGVjdGVkLiAgUG9zPSIgKyBicCArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2JwXSArICIsICIgKyB0LnNyY0NvbFticF0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGJyZWFrIHdhcyBleHBlY3RlZC4KKyAgICAgICAgICAgIC8vICAgQ2hlY2sgdGhhdCB0aGUge25ubn0gdGFnIHZhbHVlIGlzIGNvcnJlY3QuCisgICAgICAgICAgICBpbnQgZXhwZWN0ZWRUYWdWYWwgPSB0LmV4cGVjdGVkQnJlYWtzW2JwXTsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFRhZ1ZhbCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkVGFnVmFsID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaW5lID0gdC5zcmNMaW5lW2JwXTsKKyAgICAgICAgICAgIGludCBycyA9ICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcil0LmJpKS5nZXRSdWxlU3RhdHVzKCk7CisgICAgICAgICAgICBpZiAocnMgIT0gZXhwZWN0ZWRUYWdWYWwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHN0YXR1cyBmb3IgcmV2ZXJzZSBicmVhay4gIFBvcz0gICIgKyBicCArCisgICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSBsaW5lLGNvbD0gIiArIGxpbmUgKyAiLCAiICsgdC5zcmNDb2xbYnBdICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICBBY3R1YWwsIEV4cGVjdGVkIHN0YXR1cyA9ICIgKyBycyArICIsICIgKyBleHBlY3RlZFRhZ1ZhbCk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcmV2QlAgPSBicDsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGVyZSB3ZXJlIG5vIG1pc3NlZCBicmVha3MgcHJpb3IgdG8gdGhlIGxhc3Qgb25lIGZvdW5kCisgICAgZm9yIChpPXByZXZCUC0xOyBpPj0wOyBpLS0pIHsKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcnRpb24sIGJyZWFrIGV4cGVjdGVkLCBidXQgbm90IGZvdW5kLiAgUG9zPSIgKyBpICsKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVtpXSArICIsICIgKyB0LnNyY0NvbFtpXSk7CisgICAgICAgICB9CisgICAgfQorfQorCisKKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdE1vbmtleS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RNb25rZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDk4NWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RNb25rZXkuamF2YQpAQCAtMCwwICsxLDE5NDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCisKKy8vIE1vbmtleSB0ZXN0aW5nIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisKKy8qKgorICogTW9ua2V5IHRlc3RzIGZvciBSQkJJLiAgVGhlc2UgdGVzdHMgaGF2ZSBpbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMgb2YKKyAqIHRoZSBVbmljb2RlIFRSIGJvdW5kYXJ5IHJ1bGVzLCBhbmQgY29tcGFyZSByZXN1bHRzIGJldHdlZW4gdGhlc2UgYW5kIElDVSdzCisgKiBpbXBsZW1lbnRhdGlvbiwgdXNpbmcgcmFuZG9tIGRhdGEuCisgKiAKKyAqIFRlc3RzIGNvdmVyIEdyYXBoZW1lIENsdXN0ZXIgKGNoYXIpLCBXb3JkIGFuZCBMaW5lIGJyZWFrcworICogCisgKiBQb3J0ZWQgZnJvbSBJQ1U0Qywgb3JpZ2luYWwgY29kZSBpbiBmaWxlIHNvdXJjZS90ZXN0L2ludGx0ZXN0L3JiYml0c3QuY3BwCisgKgorICovCitwdWJsaWMgY2xhc3MgUkJCSVRlc3RNb25rZXkgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgUkJCSVRlc3RNb25rZXkoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorLy8KKy8vICAgICBjbGFzc3MgUkJCSU1vbmtleUtpbmQKKy8vCisvLyAgICAgICAgTW9ua2V5IFRlc3QgZm9yIEJyZWFrIEl0ZXJhdGlvbgorLy8gICAgICAgIEFic3RyYWN0IGludGVyZmFjZSBjbGFzcy4gICBDb25jcmV0ZSBkZXJpdmVkIGNsYXNzZXMgaW5kZXBlbmRlbnRseQorLy8gICAgICAgIGltcGxlbWVudCB0aGUgYnJlYWsgcnVsZXMgZm9yIGRpZmZlcmVudCBpdGVyYXRvciB0eXBlcy4KKy8vCisvLyAgICAgICAgVGhlIE1vbmtleSBUZXN0IGl0c2VsZiB1c2VzIGRvZXNuJ3Qga25vdyB3aGljaCB0eXBlIG9mIGJyZWFrIGl0ZXJhdG9yIGl0IGlzCisvLyAgICAgICAgdGVzdGluZywgYnV0IHdvcmtzIHB1cmVseSBpbiB0ZXJtcyBvZiB0aGUgaW50ZXJmYWNlIGRlZmluZWQgaGVyZS4KKy8vCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIFJCQklNb25rZXlLaW5kIHsKKyAgICAKKyAgICAgICAgLy8gUmV0dXJuIGEgTGlzdCBvZiBVbmljb2RlU2V0cywgcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXIgY2xhc3NlcyB1c2VkCisgICAgICAgIC8vICAgZm9yIHRoaXMgdHlwZSBvZiBpdGVyYXRvci4KKyAgICAgICAgYWJzdHJhY3QgIExpc3QgIGNoYXJDbGFzc2VzKCk7CisKKyAgICAgICAgLy8gU2V0IHRoZSB0ZXN0IHRleHQgb24gd2hpY2ggc3Vic2VxdWVudCBjYWxscyB0byBuZXh0KCkgd2lsbCBvcGVyYXRlCisgICAgICAgIGFic3RyYWN0ICB2b2lkICAgc2V0VGV4dChTdHJpbmdCdWZmZXIgdGV4dCk7CisKKyAgICAgICAgLy8gRmluZCB0aGUgbmV4dCBicmVhayBwb3N0aW9uLCBzdGFydGluZyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgIC8vIFJldHVybiAtMSBhZnRlciByZWFjaGluZyBlbmQgb2Ygc3RyaW5nLgorICAgICAgICBhYnN0cmFjdCAgIGludCAgIG5leHQoaW50IGkpOworICAgIH0KKworIAorICAgIC8qKgorICAgICAqIE1vbmtleSB0ZXN0IHN1YmNsYXNzIGZvciB0ZXN0aW5nIENoYXJhY3RlciAoR3JhcGhlbWUgQ2x1c3RlcikgYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgUkJCSUNoYXJNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIExpc3QgICAgICAgICAgICAgICAgICAgICAgZlNldHM7CisKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmQ1JMRlNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmQ29udHJvbFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmRXh0ZW5kU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZIYW5ndWxTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkFueVNldDsKKworICAgICAgICBTdHJpbmdCdWZmZXIgICAgICAgICAgICAgIGZUZXh0OworCisKKyAgICBSQkJJQ2hhck1vbmtleSgpIHsKKyAgICAgICAgZlRleHQgICAgICAgPSBudWxsOworICAgICAgICBmQ1JMRlNldCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxyXFxuXSIpOworICAgICAgICBmQ29udHJvbFNldCA9IG5ldyBVbmljb2RlU2V0KCJbW1xccHtabH1cXHB7WnB9XFxwe0NjfVxccHtDZn1dLVtcXG5dLVtcXHJdXSIpOworICAgICAgICBmRXh0ZW5kU2V0ICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0dyYXBoZW1lX0V4dGVuZH1dIik7CisgICAgICAgIGZIYW5ndWxTZXQgID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAiW1xccHtIYW5ndWxfU3lsbGFibGVfVHlwZT1MfVxccHtIYW5ndWxfU3lsbGFibGVfVHlwZT1MfVxccHtIYW5ndWxfU3lsbGFibGVfVHlwZT1UfSIgKworICAgICAgICAgICAgICJcXHB7SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TFZ9XFxwe0hhbmd1bF9TeWxsYWJsZV9UeXBlPUxWVH1dIik7CisgICAgICAgIGZBbnlTZXQgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwMDAwLVxcVTAwMTBmZmZmXSIpOworCisgICAgICAgIGZTZXRzICAgICAgID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmU2V0cy5hZGQoZkNSTEZTZXQpOworICAgICAgICBmU2V0cy5hZGQoZkNvbnRyb2xTZXQpOworICAgICAgICBmU2V0cy5hZGQoZkV4dGVuZFNldCk7CisgICAgICAgIGZTZXRzLmFkZChmSGFuZ3VsU2V0KTsKKyAgICAgICAgZlNldHMuYWRkKGZBbnlTZXQpOworICAgICB9CisKKworICAgIHZvaWQgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICBmVGV4dCA9IHM7ICAgICAgICAKKyAgICB9CisgICAgCisgICAgTGlzdCBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgcmV0dXJuIGZTZXRzOworICAgIH0KKyAgICAKKyAgICBpbnQgbmV4dChpbnQgaSkgeworICAgICAgICByZXR1cm4gbmV4dEdDKGZUZXh0LCBpKTsKKyAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBXb3JkIE1vbmtleSBUZXN0IENsYXNzCisgICAgICoKKyAgICAgKiAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgUkJCSVdvcmRNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIExpc3QgICAgICAgICAgICAgICAgICAgICAgZlNldHM7CisgICAgICAgIFN0cmluZ0J1ZmZlciAgICAgICAgICAgICAgZlRleHQ7CisKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmS2F0YWthbmFTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkFMZXR0ZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZk1pZExldHRlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmTWlkTnVtU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZOdW1lcmljU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZGb3JtYXRTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkV4dGVuZFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmRXh0ZW5kTnVtTGV0U2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZPdGhlclNldDsKKworICAgICAgICAKKyAgICAgICAgUkJCSVdvcmRNb25rZXkoKSB7CisgICAgICAgICAgICBmU2V0cyAgICAgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgICAgICAgICAgZkFMZXR0ZXJTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBBTGV0dGVyfSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW1xccHtMaW5lX0JyZWFrID0gQ29tcGxleF9Db250ZXh0fSIgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVxccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV1dIik7CisgICAgICAgICAgICBmS2F0YWthbmFTZXQgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7V29yZF9CcmVhayA9IEthdGFrYW5hfS1bXFx1ZmY5ZVxcdWZmOWZdXSIpOworICAgICAgICAgICAgZk1pZExldHRlclNldCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBNaWRMZXR0ZXJ9XSIpOworICAgICAgICAgICAgZk1pZE51bVNldCAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBNaWROdW19XSIpOworICAgICAgICAgICAgZk51bWVyaWNTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBOdW1lcmljfV0iKTsKKyAgICAgICAgICAgIGZGb3JtYXRTZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gRm9ybWF0fV0iKTsKKyAgICAgICAgICAgIGZFeHRlbmROdW1MZXRTZXQgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gRXh0ZW5kTnVtTGV0fV0iKTsKKyAgICAgICAgICAgIGZFeHRlbmRTZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfVxcdWZmOWVcXHVmZjlmXSIpOworICAgICAgICAgICAgZk90aGVyU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIGZPdGhlclNldC5jb21wbGVtZW50KCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZBTGV0dGVyU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkthdGFrYW5hU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZk1pZExldHRlclNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZNaWROdW1TZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmTnVtZXJpY1NldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZGb3JtYXRTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmRXh0ZW5kU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkV4dGVuZE51bUxldFNldCk7CisKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQUxldHRlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkthdGFrYW5hU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTWlkTGV0dGVyU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTWlkTnVtU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTnVtZXJpY1NldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkZvcm1hdFNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkV4dGVuZFNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkV4dGVuZE51bUxldFNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk90aGVyU2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIExpc3QgIGNoYXJDbGFzc2VzKCkgeworICAgICAgICAgcmV0dXJuIGZTZXRzOyAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgICBzZXRUZXh0KFN0cmluZ0J1ZmZlciBzKSB7IAorICAgICAgICAgICAgZlRleHQgPSBzOyAgICAgICAgCisgICAgICAgIH0gICAKKworICAgICAgICBpbnQgICBuZXh0KGludCBwcmV2UG9zKSB7ICAKKyAgICAgICAgICAgIGludCAgICBwMCwgcDEsIHAyLCBwMzsgICAgICAvLyBJbmRpY2VzIG9mIHRoZSBzaWduaWZpY2FudCBjb2RlIHBvaW50cyBhcm91bmQgdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYnJlYWsgcG9zaXRpb24gYmVpbmcgdGVzdGVkLiAgVGhlIGNhbmRpZGF0ZSBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgbG9jYXRpb24gaXMgYmVmb3JlIHAyLgorICAgICAgICAgICAgaW50ICAgICBicmVha1BvcyA9IC0xOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYzAsIGMxLCBjMiwgYzM7ICAgLy8gVGhlIGNvZGUgcG9pbnRzIGF0IHAwLCBwMSwgcDIgJiBwMy4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUHJldiBicmVhayBhdCBlbmQgb2Ygc3RyaW5nLiAgcmV0dXJuIERPTkUuCisgICAgICAgICAgICBpZiAocHJldlBvcyA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAwID0gcDEgPSBwMiA9IHAzID0gcHJldlBvczsKKyAgICAgICAgICAgIGMzID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwcmV2UG9zKTsKKyAgICAgICAgICAgIGMwID0gYzEgPSBjMiA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAvLyBMb29wIHJ1bnMgb25jZSBwZXIgInNpZ25pZmljYW50IiBjaGFyYWN0ZXIgcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQuCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gTW92ZSBhbGwgb2YgdGhlIHBvc2l0aW9ucyBmb3J3YXJkIGluIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgICAgICAgICAgICAgcDAgPSBwMTsgIGMwID0gYzE7CisgICAgICAgICAgICAgICAgcDEgPSBwMjsgIGMxID0gYzI7CisgICAgICAgICAgICAgICAgcDIgPSBwMzsgIGMyID0gYzM7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZCBwMyBieSAgICBYKEV4dGVuZCB8IEZvcm1hdCkqICAgUnVsZSA0CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBwMyA9IG1vdmVJbmRleDMyKGZUZXh0LCBwMywgMSk7CisgICAgICAgICAgICAgICAgICAgIGMzID0gLTE7CisgICAgICAgICAgICAgICAgICAgIGlmIChwMz49ZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMzID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwMyk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAoc2V0Q29udGFpbnMoZkZvcm1hdFNldCwgYzMpIHx8IHNldENvbnRhaW5zKGZFeHRlbmRTZXQsIGMzKSk7CisKKyAgICAgICAgICAgICAgICBpZiAocDEgPT0gcDIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RpbGwgd2FybWluZyB1cCB0aGUgbG9vcC4gICh3b24ndCB3b3JrIHdpdGggemVybyBsZW5ndGggc3RyaW5ncywgYnV0IHdlIGRvbid0IGNhcmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocDIgPT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2Ygc3RyaW5nLiAgQWx3YXlzIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDMpICAgQ1IgeCBMRgorICAgICAgICAgICAgICAgIC8vICAgICBObyBFeHRlbmQgb3IgRm9ybWF0IGNoYXJhY3RlcnMgbWF5IGFwcGVhciBiZXR3ZWVuIHRoZSBDUiBhbmQgTEYsCisgICAgICAgICAgICAgICAgLy8gICAgIHdoaWNoIHJlcXVpcmVzIHRoZSBhZGRpdGlvbmFsIGNoZWNrIGZvciBwMiBpbW1lZGlhdGVseSBmb2xsb3dpbmcgcDEuCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBpZiAoYzE9PTB4MEQgJiYgYzI9PTB4MEEgJiYgcDE9PShwMi0xKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoNSkuICAgQUxldHRlciB4IEFMZXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmQUxldHRlclNldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICg2KSAgQUxldHRlciAgeCAgTWlkTGV0dGVyICBBTGV0dGVyCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBpZiAoIGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZExldHRlclNldC5jb250YWlucyhjMikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhaW5zKGZBTGV0dGVyU2V0LCBjMykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDcpICBBTGV0dGVyIE1pZExldHRlciAgIHggIEFMZXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzApICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmTWlkTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gIFJ1bGUgKDgpICAgIE51bWVyaWMgeCBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKGZOdW1lcmljU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoOSkgICAgQUxldHRlciB4IE51bWVyaWMKKyAgICAgICAgICAgICAgICBpZiAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmTnVtZXJpY1NldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDEwKSAgICBOdW1lcmljIHggQUxldHRlcgorICAgICAgICAgICAgICAgIGlmIChmTnVtZXJpY1NldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDExKSAgIE51bWVyaWMgKE1pZE51bSB8IE1pZE51bUxldCkgIHggIE51bWVyaWMKKyAgICAgICAgICAgICAgICBpZiAoIGZOdW1lcmljU2V0LmNvbnRhaW5zKGMwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZE51bVNldC5jb250YWlucyhjMSkgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMikgIE51bWVyaWMgeCAoTWlkTnVtIHwgTWlkTnVtTGV0KSBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKGZOdW1lcmljU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZE51bVNldC5jb250YWlucyhjMikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhaW5zKGZOdW1lcmljU2V0LCBjMykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDEzKSAgS2F0YWthbmEgeCBLYXRha2FuYQorICAgICAgICAgICAgICAgIGlmIChmS2F0YWthbmFTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmS2F0YWthbmFTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAxM2EgIChBTGV0dGVyIHwgTnVtZXJpYyB8IEthdGFrYW5hIHwgRXh0ZW5kTnVtTGV0KSB4IEV4dGVuZE51bUxldAorICAgICAgICAgICAgICAgIGlmICgoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzEpIHx8IGZOdW1lcmljU2V0LmNvbnRhaW5zKGMxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZkthdGFrYW5hU2V0LmNvbnRhaW5zKGMxKSB8fCBmRXh0ZW5kTnVtTGV0U2V0LmNvbnRhaW5zKGMxKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZFeHRlbmROdW1MZXRTZXQuY29udGFpbnMoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBSdWxlIDEzYiAgIEV4dGVuZE51bUxldCB4IChBTGV0dGVyIHwgTnVtZXJpYyB8IEthdGFrYW5hIHwgRXh0ZW5kTnVtTGV0KQorICAgICAgICAgICAgICAgIGlmIChmRXh0ZW5kTnVtTGV0U2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMyKSB8fCBmTnVtZXJpY1NldC5jb250YWlucyhjMikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZLYXRha2FuYVNldC5jb250YWlucyhjMikgfHwgZkV4dGVuZE51bUxldFNldC5jb250YWlucyhjMikpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgMTQuICBCcmVhayBmb3VuZCBoZXJlLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBicmVha1BvcyA9IHAyOworICAgICAgICAgICAgcmV0dXJuIGJyZWFrUG9zOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworIAorICAgIHN0YXRpYyBjbGFzcyBSQkJJTGluZU1vbmtleSBleHRlbmRzIFJCQklNb25rZXlLaW5kIHsKKyAgICAgICAgCisgICAgICAgIExpc3QgICAgICAgIGZTZXRzOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCAgZkJLOworICAgICAgICBVbmljb2RlU2V0ICBmQ1I7CisgICAgICAgIFVuaWNvZGVTZXQgIGZMRjsKKyAgICAgICAgVW5pY29kZVNldCAgZkNNOworICAgICAgICBVbmljb2RlU2V0ICBmTkw7CisgICAgICAgIFVuaWNvZGVTZXQgIGZTRzsKKyAgICAgICAgVW5pY29kZVNldCAgZldKOworICAgICAgICBVbmljb2RlU2V0ICBmWlc7CisgICAgICAgIFVuaWNvZGVTZXQgIGZHTDsKKyAgICAgICAgVW5pY29kZVNldCAgZkNCOworICAgICAgICBVbmljb2RlU2V0ICBmU1A7CisgICAgICAgIFVuaWNvZGVTZXQgIGZCMjsKKyAgICAgICAgVW5pY29kZVNldCAgZkJBOworICAgICAgICBVbmljb2RlU2V0ICBmQkI7CisgICAgICAgIFVuaWNvZGVTZXQgIGZIWTsKKyAgICAgICAgVW5pY29kZVNldCAgZkNMOworICAgICAgICBVbmljb2RlU2V0ICBmRVg7CisgICAgICAgIFVuaWNvZGVTZXQgIGZJTjsKKyAgICAgICAgVW5pY29kZVNldCAgZk5TOworICAgICAgICBVbmljb2RlU2V0ICBmT1A7CisgICAgICAgIFVuaWNvZGVTZXQgIGZRVTsKKyAgICAgICAgVW5pY29kZVNldCAgZklTOworICAgICAgICBVbmljb2RlU2V0ICBmTlU7CisgICAgICAgIFVuaWNvZGVTZXQgIGZQTzsKKyAgICAgICAgVW5pY29kZVNldCAgZlBSOworICAgICAgICBVbmljb2RlU2V0ICBmU1k7CisgICAgICAgIFVuaWNvZGVTZXQgIGZBSTsKKyAgICAgICAgVW5pY29kZVNldCAgZkFMOworICAgICAgICBVbmljb2RlU2V0ICBmSUQ7CisgICAgICAgIFVuaWNvZGVTZXQgIGZTQTsKKyAgICAgICAgVW5pY29kZVNldCAgZkpMOworICAgICAgICBVbmljb2RlU2V0ICBmSlY7CisgICAgICAgIFVuaWNvZGVTZXQgIGZKVDsKKyAgICAgICAgVW5pY29kZVNldCAgZkgyOworICAgICAgICBVbmljb2RlU2V0ICBmSDM7CisgICAgICAgIFVuaWNvZGVTZXQgIGZYWDsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciAgZlRleHQ7CisgICAgICAgIGludCAgICAgICAgICAgZk9yaWdQb3NpdGlvbnM7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFJCQklMaW5lTW9ua2V5KCkKKyAgICAgICAgeworICAgICAgICAgICAgZlNldHMgICAgICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZCSyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfQnJlYWs9Qkt9XSIpOworICAgICAgICAgICAgZkNSICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1DUn1dIik7CisgICAgICAgICAgICBmTEYgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUxGfV0iKTsKKyAgICAgICAgICAgIGZDTSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Q019XSIpOworICAgICAgICAgICAgZk5MICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1OTH1dIik7CisgICAgICAgICAgICBmV0ogICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVdKfV0iKTsKKyAgICAgICAgICAgIGZaVyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Wld9XSIpOworICAgICAgICAgICAgZkdMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1HTH1dIik7CisgICAgICAgICAgICBmQ0IgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUNCfV0iKTsKKyAgICAgICAgICAgIGZTUCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9U1B9XSIpOworICAgICAgICAgICAgZkIyICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1CMn1dIik7CisgICAgICAgICAgICBmQkEgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUJBfV0iKTsKKyAgICAgICAgICAgIGZCQiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9QkJ9XSIpOworICAgICAgICAgICAgZkhZICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1IWX1dIik7CisgICAgICAgICAgICBmQ0wgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUNMfV0iKTsKKyAgICAgICAgICAgIGZFWCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9RVh9XSIpOworICAgICAgICAgICAgZklOICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1JTn1dIik7CisgICAgICAgICAgICBmTlMgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPU5TfV0iKTsKKyAgICAgICAgICAgIGZPUCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9T1B9XSIpOworICAgICAgICAgICAgZlFVICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1RVX1dIik7CisgICAgICAgICAgICBmSVMgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUlTfV0iKTsKKyAgICAgICAgICAgIGZOVSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9TlV9XSIpOworICAgICAgICAgICAgZlBPICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1QT31dIik7CisgICAgICAgICAgICBmUFIgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVBSfV0iKTsKKyAgICAgICAgICAgIGZTWSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9U1l9XSIpOworICAgICAgICAgICAgZkFJICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1BSX1dIik7CisgICAgICAgICAgICBmQUwgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUFMfV0iKTsKKyAgICAgICAgICAgIGZJRCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SUR9XSIpOworICAgICAgICAgICAgZlNBICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1TQX1dIik7CisgICAgICAgICAgICBmSkwgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUpMfV0iKTsKKyAgICAgICAgICAgIGZKViAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SlZ9XSIpOworICAgICAgICAgICAgZkpUICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1KVH1dIik7CisgICAgICAgICAgICBmSDIgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUgyfV0iKTsKKyAgICAgICAgICAgIGZIMyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SDN9XSIpOworICAgICAgICAgICAgZlNHICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHVkODAwLVxcdWRmZmZdIik7CisgICAgICAgICAgICBmWFggICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVhYfV0iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkFMLmFkZEFsbChmWFgpOyAgICAgLy8gRGVmYXVsdCBiZWhhdmlvciBmb3IgWFggaXMgaWRlbnRpY2FsIHRvIEFMCisgICAgICAgICAgICBmQUwuYWRkQWxsKGZBSSk7ICAgICAvLyBEZWZhdWx0IGJlaGF2aW9yIGZvciBBSSBpcyBpZGVudGljYWwgdG8gQUwKKyAgICAgICAgICAgIGZBTC5hZGRBbGwoZlNBKTsgICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgZm9yIFNBIGlzIFhYLCB3aGljaCBkZWZhdWx0cyB0byBBTAorICAgICAgICAgICAgZkFMLmFkZEFsbChmU0cpOyAgICAgLy8gRGVmYXVsdCBiZWhhdmlvciBmb3IgU0cgKHVucGFpcmVkIHN1cnJvZ2F0ZXMpIGlzIEFMCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBmU2V0cy5hZGQoZkJLKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQ1IpOworICAgICAgICAgICAgZlNldHMuYWRkKGZMRik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkNNKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTkwpOworICAgICAgICAgICAgZlNldHMuYWRkKGZXSik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlpXKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmR0wpOworICAgICAgICAgICAgZlNldHMuYWRkKGZDQik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlNQKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQjIpOworICAgICAgICAgICAgZlNldHMuYWRkKGZCQSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkJCKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSFkpOworICAgICAgICAgICAgZlNldHMuYWRkKGZIMik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkgzKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQ0wpOworICAgICAgICAgICAgZlNldHMuYWRkKGZFWCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZklOKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSkwpOworICAgICAgICAgICAgZlNldHMuYWRkKGZKVCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkpWKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTlMpOworICAgICAgICAgICAgZlNldHMuYWRkKGZPUCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlFVKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSVMpOworICAgICAgICAgICAgZlNldHMuYWRkKGZOVSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlBPKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmUFIpOworICAgICAgICAgICAgZlNldHMuYWRkKGZTWSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkFJKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQUwpOworICAgICAgICAgICAgZlNldHMuYWRkKGZJRCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZldKKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU0EpOworICAgICAgICAgICAgZlNldHMuYWRkKGZTRyk7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRUZXh0KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgICAgICBmVGV4dCAgICAgICA9IHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICBpbnQgbmV4dChpbnQgc3RhcnRQb3MpIHsKKyAgICAgICAgICAgIGludCAgICBwb3M7ICAgICAgIC8vICBJbmRleCBvZiB0aGUgY2hhciBmb2xsb3dpbmcgYSBwb3RlbnRpYWwgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgICAgIGludCAgICB0aGlzQ2hhcjsgIC8vICBDaGFyYWN0ZXIgYXQgYWJvdmUgcG9zaXRpb24gInBvcyIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50ICAgIHByZXZQb3M7ICAgLy8gIEluZGV4IG9mIHRoZSBjaGFyIHByZWNlZGluZyBhIHBvdGVudGlhbCBicmVhayBwb3NpdGlvbgorICAgICAgICAgICAgaW50ICAgIHByZXZDaGFyOyAgLy8gIENoYXJhY3RlciBhdCBhYm92ZSBwb3NpdGlvbi4gIE5vdGUgdGhhdCBwcmV2Q2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBhbmQgdGhpc0NoYXIgbWF5IG5vdCBiZSBhZGphY2VudCBiZWNhdXNlIGNvbWJpbmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjaGFyYWN0ZXJzIGJldHdlZW4gdGhlbSB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCAgICBuZXh0UG9zOyAgIC8vICBJbmRleCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgZm9sbG93aW5nIHBvcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBVc3VhbGx5IHNraXBzIG92ZXIgY29tYmluaW5nIG1hcmtzLgorICAgICAgICAgICAgaW50ICAgIHRQb3M7ICAgICAgLy8gIHRlbXAgdmFsdWUuCisgICAgICAgICAgICBpbnQgICAgYzsKKyAgICAgICAgICAgIGludCAgICBtYXRjaFZhbHNbXSAgPSBudWxsOyAgICAgICAvLyBOdW1iZXIgIEV4cHJlc3Npb24gTWF0Y2ggUmVzdWx0cworIAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGxvb3AuICBMb29wIHdpbGwgcnVuIHRoZSBmaXJzdCB0aW1lIHdpdGhvdXQgZmluZGluZyBicmVha3MsCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRoZSBpbnZhbGlkIHZhbHVlcyBzaGlmdCBvdXQgYW5kIHRoZSAidGhpcyIgYW5kCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2IiBwb3NpdGlvbnMgYXJlIGZpbGxlZCBpbiB3aXRoIGdvb2QgdmFsdWVzLgorICAgICAgICAgICAgcG9zICAgICAgPSBwcmV2UG9zICAgPSAtMTsgICAgLy8gSW52YWxpZCB2YWx1ZSwgc2VydmVzIGFzIGZsYWcgZm9yIGluaXRpYWwgbG9vcCBpdGVyYXRpb24uCisgICAgICAgICAgICB0aGlzQ2hhciA9IHByZXZDaGFyICA9IDA7CisgICAgICAgICAgICBuZXh0UG9zICA9IHN0YXJ0UG9zOworICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIExvb3AgcnVucyBvbmNlIHBlciBwb3NpdGlvbiBpbiB0aGUgdGVzdCB0ZXh0LCB1bnRpbCBhIGJyZWFrIHBvc2l0aW9uCisgICAgICAgICAgICAvLyAgaXMgZm91bmQuICBJbiBlYWNoIGl0ZXJhdGlvbiwgd2UgYXJlIHRlc3RpbmcgZm9yIGEgcG9zc2libGUgYnJlYWsKKyAgICAgICAgICAgIC8vICBqdXN0IHByZWNlZGluZyB0aGUgY2hhcmFjdGVyIGF0IGluZGV4ICJwb3MiLiAgVGhlIGNoYXJhY3RlciBwcmVjZWRpbmcKKyAgICAgICAgICAgIC8vICB0aGlzIGNoYXIgaXMgYXQgcG9zdGlvbiAicHJldlBvcyI7IGJlY2F1c2Ugb2YgY29tYmluaW5nIHNlcXVlbmNlcywKKyAgICAgICAgICAgIC8vICAicHJldlBvcyIgY2FuIGJlIGFyYml0cmFyaWx5IGZhciBiZWZvcmUgInBvcyIuCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBwb3NpdGlvbiB0byBiZSB0ZXN0ZWQuCisgICAgICAgICAgICAgICAgcHJldlBvcyAgID0gcG9zOworICAgICAgICAgICAgICAgIHByZXZDaGFyICA9IHRoaXNDaGFyOworICAgICAgICAgICAgICAgIHBvcyAgICAgICA9IG5leHRQb3M7CisgICAgICAgICAgICAgICAgbmV4dFBvcyAgID0gbW92ZUluZGV4MzIoZlRleHQsIHBvcywgMSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSBMQjIgLSBCcmVhayBhdCBlbmQgb2YgdGV4dC4KKyAgICAgICAgICAgICAgICBpZiAocG9zID49IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlIExCIDkgLSBhZGp1c3QgZm9yIGNvbWJpbmluZyBzZXF1ZW5jZXMuCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgV2UgZG8gdGhpcyBydWxlIG91dC1vZi1vcmRlciBiZWNhdXNlIHRoZSBhZGp1c3RtZW50IGRvZXMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBub3QgZWZmZWN0IHRoZSB3YXkgdGhhdCBydWxlcyBMQiAzIHRocm91Z2ggTEIgNiBtYXRjaCwKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBhbmQgZG9pbmcgaXQgaGVyZSByYXRoZXIgdGhhbiBhZnRlciBMQiA2IGlzIHN1YnN0YW50aWFsbHkKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBzaW1wbGVyIHdoZW4gY29tYmluaW5nIHNlcXVlbmNlcyBkbyBvY2N1ci4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA5ICAgICAgICAgS2VlcCBjb21iaW5pbmcgc2VxdWVuY2VzIHRvZ2V0aGVyLgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhZHZhbmNlIG92ZXIgYW55IENNIGNsYXNzIGNoYXJzIGF0ICJwb3MiLCAKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgcmVzdWx0IGlzICJuZXh0UG9zIiBmb3IgdGhlIGZvbGxvd2luZyBsb29wIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICB0aGlzQ2hhciAgPSBVVEYxNi5jaGFyQXQoZlRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKCEoZlNQLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmQksuY29udGFpbnModGhpc0NoYXIpIHx8IHRoaXNDaGFyPT0weDBkIHx8CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzQ2hhcj09MHgwYSB8fCBmTkwuY29udGFpbnModGhpc0NoYXIpIHx8IGZaVy5jb250YWlucyh0aGlzQ2hhcikgKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFBvcyA9PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5leHRDaGFyID0gVVRGMTYuY2hhckF0KGZUZXh0LCBuZXh0UG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZkNNLmNvbnRhaW5zKG5leHRDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCBuZXh0UG9zLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA5IFRyZWF0IFggQ00qIGFzIGlmIGl0IHdlcmUgWAorICAgICAgICAgICAgICAgIC8vICAgICAgICBObyBleHBsaWNpdCBhY3Rpb24gcmVxdWlyZWQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTAgICAgIFRyZWF0IGFueSByZW1haW5pbmcgY29tYmluaW5nIG1hcmsgYXMgQUwKKyAgICAgICAgICAgICAgICBpZiAoZkNNLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzQ2hhciA9ICdBJzsgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbG9vcCBpcyBzdGlsbCB3YXJtaW5nIHVwIC0gaWYgd2UgaGF2ZW4ndCBzaGlmdGVkIHRoZSBpbml0aWFsCisgICAgICAgICAgICAgICAgLy8gICAtMSBwb3NpdGlvbnMgb3V0IG9mIHByZXZQb3MgeWV0IC0gbG9vcCBiYWNrIHRvIGFkdmFuY2UgdGhlCisgICAgICAgICAgICAgICAgLy8gICAgcG9zaXRpb24gaW4gdGhlIGlucHV0IHdpdGhvdXQgYW55IGZ1cnRoZXIgbG9va2luZyBmb3IgYnJlYWtzLgorICAgICAgICAgICAgICAgIGlmIChwcmV2UG9zID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA0ICBBbHdheXMgYnJlYWsgYWZ0ZXIgaGFyZCBsaW5lIGJyZWFrcywKKyAgICAgICAgICAgICAgICBpZiAoZkJLLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgNSAgQnJlYWsgYWZ0ZXIgQ1IsIExGLCBOTCwgYnV0IG5vdCBpbnNpZGUgQ1IgTEYKKyAgICAgICAgICAgICAgICBpZiAoZkNSLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmTEYuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAgKGZDUi5jb250YWlucyhwcmV2Q2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgIGZMRi5jb250YWlucyhwcmV2Q2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgIGZOTC5jb250YWlucyhwcmV2Q2hhcikpICB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA2ICBEb24ndCBicmVhayBiZWZvcmUgaGFyZCBsaW5lIGJyZWFrcworICAgICAgICAgICAgICAgIGlmIChmQksuY29udGFpbnModGhpc0NoYXIpIHx8IGZDUi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZMRi5jb250YWlucyh0aGlzQ2hhcikgfHwgZk5MLmNvbnRhaW5zKHRoaXNDaGFyKSApIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDcgIERvbid0IGJyZWFrIGJlZm9yZSBzcGFjZXMgb3IgemVyby13aWR0aCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZlNQLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZaVy5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDggIEJyZWFrIGFmdGVyIHplcm8gd2lkdGggc3BhY2UKKyAgICAgICAgICAgICAgICBpZiAoZlpXLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gIExCIDksIDEwICBBbHJlYWR5IGRvbmUsIGF0IHRvcCBvZiBsb29wLgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTEKKyAgICAgICAgICAgICAgICAvLyAgICB4ICBXSgorICAgICAgICAgICAgICAgIC8vICAgIFdKICB4CisgICAgICAgICAgICAgICAgaWYgKGZXSi5jb250YWlucyh0aGlzQ2hhcikgfHwgZldKLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTIKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgKCFTUCkgeCBHTAorICAgICAgICAgICAgICAgIC8vICAgICAgICBHTCB4CisgICAgICAgICAgICAgICAgaWYgKCghZlNQLmNvbnRhaW5zKHByZXZDaGFyKSkgJiYgZkdMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZHTC5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDEzICBEb24ndCBicmVhayBiZWZvcmUgY2xvc2luZ3MuCisgICAgICAgICAgICAgICAgLy8gICAgICAgTlUgeCBDTCAgYW5kIE5VIHggSVMgYXJlIG5vdCBtYXRjaGVkIGhlcmUgc28gdGhhdCB0aGV5IHdpbGwKKyAgICAgICAgICAgICAgICAvLyAgICAgICBmYWxsIGludG8gTEIgMTcgYW5kIHRoZSBtb3JlIGdlbmVyYWwgbnVtYmVyIHJlZ3VsYXIgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICghZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQ0wuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmRVguY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSVMuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmU1kuY29udGFpbnModGhpc0NoYXIpKSAgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxNCAgRG9uJ3QgYnJlYWsgYWZ0ZXIgT1AgU1AqCisgICAgICAgICAgICAgICAgLy8gICAgICAgU2NhbiBiYWNrd2FyZHMsIGNoZWNraW5nIGZvciB0aGlzIHNlcXVlbmNlLgorICAgICAgICAgICAgICAgIC8vICAgICAgIFRoZSBPUCBjaGFyIGNvdWxkIGluY2x1ZGUgY29tYmluaW5nIG1hcmtzLCBzbyB3ZSBhY3VhbGx5IGNoZWNrIGZvcgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICBPUCBDTSogU1AqIHgKKyAgICAgICAgICAgICAgICB0UG9zID0gcHJldlBvczsKKyAgICAgICAgICAgICAgICBpZiAoZlNQLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZlNQLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zPW1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZDTS5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICB0UG9zPW1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmT1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE1IERvIG5vdCBicmVhayB3aXRoaW5nICJbIAorICAgICAgICAgICAgICAgIC8vICAgICAgIFFVIENNKiBTUCogeCBPUAorICAgICAgICAgICAgICAgIGlmIChmT1AuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNjYW4gYmFja3dhcmRzIGZyb20gcHJldkNoYXIgdG8gc2VlIGlmIGl0IGlzIHByZWNlZGVkIGJ5IFFVIENNKiBTUCoKKyAgICAgICAgICAgICAgICAgICAgdFBvcyA9IHByZXZQb3M7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmU1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmQ00uY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmUVUuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE2ICAgQ0wgU1AqIHggTlMKKyAgICAgICAgICAgICAgICBpZiAoZk5TLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0UG9zID0gcHJldlBvczsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZTUC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZDTS5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZDTC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTcgICAgICAgIEIyIFNQKiB4IEIyCisgICAgICAgICAgICAgICAgaWYgKGZCMi5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgdFBvcyA9IHByZXZQb3M7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmU1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmQ00uY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmQjIuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE4ICAgIGJyZWFrIGFmdGVyIHNwYWNlCisgICAgICAgICAgICAgICAgaWYgKGZTUC5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE5CisgICAgICAgICAgICAgICAgLy8gICAgeCAgIFFVCisgICAgICAgICAgICAgICAgLy8gICAgUVUgIHgKKyAgICAgICAgICAgICAgICBpZiAoZlFVLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmUVUuY29udGFpbnMocHJldkNoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyMCAgQnJlYWsgYXJvdW5kIGEgQ0IKKyAgICAgICAgICAgICAgICBpZiAoZkNCLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmQ0IuY29udGFpbnMocHJldkNoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyMQorICAgICAgICAgICAgICAgIGlmIChmQkEuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmSFkuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmTlMuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmQkIuY29udGFpbnMocHJldkNoYXIpICkgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyMgorICAgICAgICAgICAgICAgIGlmIChmQUwuY29udGFpbnMocHJldkNoYXIpICYmIGZJTi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZJRC5jb250YWlucyhwcmV2Q2hhcikgJiYgZklOLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZklOLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSU4uY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmTlUuY29udGFpbnMocHJldkNoYXIpICYmIGZJTi5jb250YWlucyh0aGlzQ2hhcikgKSAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDIzICAgIElEIHggUE8gICAgKE5vdGU6ICBMZWFkaW5nIENNIGJlaGF2ZXMgbGlrZSBJRCkKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICBBTCB4IE5VCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgTlUgeCBBTAorICAgICAgICAgICAgICAgIGlmIChmSUQuY29udGFpbnMocHJldkNoYXIpICYmIGZQTy5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTC5jb250YWlucyhwcmV2Q2hhcikgJiYgZk5VLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpICkgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyNCAgRG8gbm90IGJyZWFrIGJldHdlZW4gcHJlZml4IGFuZCBsZXR0ZXJzIG9yIGlkZW9ncmFwaHMuCisgICAgICAgICAgICAgICAgLy8gICAgICAgIFBSIHggSUQKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgUFIgeCBBTAorICAgICAgICAgICAgICAgIC8vICAgICAgICBQTyB4IEFMCisgICAgICAgICAgICAgICAgaWYgKGZQUi5jb250YWlucyhwcmV2Q2hhcikgJiYgZklELmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICBmUFIuY29udGFpbnMocHJldkNoYXIpICYmIGZBTC5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgZlBPLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjUgICAgTnVtYmVycworICAgICAgICAgICAgICAgIG1hdGNoVmFscyA9IExCTnVtYmVyQ2hlY2soZlRleHQsIHByZXZQb3MsIG1hdGNoVmFscyk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoVmFsc1swXSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAvLyBNYXRjaGVkIGEgbnVtYmVyLiAgQnV0IGNvdWxkIGhhdmUgYmVlbiBqdXN0IGEgc2luZ2xlIGRpZ2l0LCB3aGljaCB3b3VsZAorICAgICAgICAgICAgICAgICAgICAvLyAgICBub3QgcmVwcmVzZW50IGEgIm5vIGJyZWFrIGhlcmUiIGJldHdlZW4gcHJldkNoYXIgYW5kIHRoaXNDaGFyCisgICAgICAgICAgICAgICAgICAgIGludCBudW1FbmRJZHggPSBtYXRjaFZhbHNbMV07ICAvLyBpZHggb2YgZmlyc3QgY2hhciBmb2xsb3dpbmcgbnVtCisgICAgICAgICAgICAgICAgICAgIGlmIChudW1FbmRJZHggPiBwb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBtYXRjaCBpbmNsdWRlcyBhdCBsZWFzdCB0aGUgdHdvIGNoYXJzIGJlaW5nIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1FbmRJZHggPiBuZXh0UG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG1hdGNoIGluY2x1ZGVzIGFkZGl0aW9uYWwgY2hhcnMuICBVcGRhdGUgcG9zIGFuZCBuZXh0UG9zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzbyB0aGF0IG5leHQgbG9vcCBpdGVyYXRpb24gd2lsbCBjb250aW51ZSBhdCB0aGUgZW5kIG9mIHRoZSBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjaGVja2luZyBmb3IgYnJlYWtzIGJldHdlZW4gbGFzdCBjaGFyIGluIG51bWJlciAmIHdoYXRldmVyIGZvbGxvd3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBvcyA9IG51bUVuZElkeDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgICAgID0gbnVtRW5kSWR4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHBvcywgLTEpOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNDaGFyID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZkNNLmNvbnRhaW5zKHRoaXNDaGFyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyNiAgRG8gbm90IGJyZWFrIEtvcmVhbiBTeWxsYWJsZXMKKyAgICAgICAgICAgICAgICBpZiAoZkpMLmNvbnRhaW5zKHByZXZDaGFyKSAmJiAoZkpMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkpWLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkgyLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkgzLmNvbnRhaW5zKHRoaXNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoZkpWLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDIuY29udGFpbnMocHJldkNoYXIpKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgKGZKVi5jb250YWlucyh0aGlzQ2hhcikgfHwgZkpULmNvbnRhaW5zKHRoaXNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoZkpULmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDMuY29udGFpbnMocHJldkNoYXIpKSAmJgorICAgICAgICAgICAgICAgICAgICBmSlQuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBMQiAyNyBUcmVhdCBhIEtvcmVhbiBTeWxsYWJsZSBCbG9jayB0aGUgc2FtZSBhcyBJRAorICAgICAgICAgICAgICAgIGlmICgoZkpMLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSlYuY29udGFpbnMocHJldkNoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgIGZKVC5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgyLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDMuY29udGFpbnMocHJldkNoYXIpKSAmJgorICAgICAgICAgICAgICAgICAgICBmSU4uY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoZkpMLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSlYuY29udGFpbnMocHJldkNoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgIGZKVC5jb250YWlucyhwcmV2Q2hhcikgfHwgZkgyLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDMuY29udGFpbnMocHJldkNoYXIpKSAmJgorICAgICAgICAgICAgICAgICAgICBmUE8uY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmUFIuY29udGFpbnMocHJldkNoYXIpICYmIChmSkwuY29udGFpbnModGhpc0NoYXIpIHx8IGZKVi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgZkpULmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmSDIuY29udGFpbnModGhpc0NoYXIpIHx8IGZIMy5jb250YWlucyh0aGlzQ2hhcikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMjggRG8gbm90IGJyZWFrIGJldHdlZW4gYWxwaGFiZXRpY3MKKyAgICAgICAgICAgICAgICBpZiAoZkFMLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAyOSAgRG8gbm90IGJyZWFrIGJldHdlZW4gbnVtZXJpYyBwdW5jdHVhdGlvbiBhbmQgYWxwaGFiZXRpY3MKKyAgICAgICAgICAgICAgICBpZiAoZklTLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAzMCAgRG8gbm90IGJyZWFrIGJldHdlZW4gbGV0dGVycywgbnVtYmVycyBvciBvcmlkbmFyeSBzeW1ib2xzIGFuZCAKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgb3BlbmluZyBvciBjbG9zaW5nIHB1bmN0dWF0aW9uLgorICAgICAgICAgICAgICAgIC8vICAgICAgICAoQUwgfCBOVSkgeCBPUAorICAgICAgICAgICAgICAgIC8vICAgICAgICBDTCB4IChBTCB8IE5VKQorICAgICAgICAgICAgICAgIGlmICgoZkFMLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmTlUuY29udGFpbnMocHJldkNoYXIpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk9QLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZDTC5jb250YWlucyhwcmV2Q2hhcikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChmQUwuY29udGFpbnModGhpc0NoYXIpIHx8IGZOVS5jb250YWlucyh0aGlzQ2hhcikpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAzMSAgICBCcmVhayBldmVyeXdoZXJlIGVsc2UKKyAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvLyBNYXRjaCB0aGUgZm9sbG93aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiB0aGUgaW5wdXQgdGV4dC4KKyAgICAgICAgLy8gICAgKChQUiB8IFBPKSBDTSopPyAoKE9QIHwgSFkpIENNKik/IE5VIENNKiAoKE5VIHwgSVMgfCBTWSkgQ00qKSAqIChDTCBDTSopPyAgKFBSIHwgUE8pIENNKik/CisgICAgICAgIC8vICAgICAgMCAgICAwICAgMSAgICAgICAzICAgIDMgICAgNCAgICAgICAgICAgICAgNyAgICA3ICAgIDcgICAgNyAgICAgIDkgICA5ICAgICAxMSAgIDExICAgIChtYXRjaCBzdGF0ZXMpCisgICAgICAgIC8vICByZXRWYWxzIGFycmF5ICBbMF0gIGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2gsIG9yIC0xIGlmIG5vIG1hdGNoCisgICAgICAgIC8vICAgICAgICAgICAgICAgICBbMV0gIGluZGV4IG9mIGZpcnN0IGNoYXIgZm9sbG93aW5nIHRoZSBtYXRjaC4KKyAgICAgICAgLy8gIENhbiBub3QgdXNlIEphdmEgcmVnZXggYmVjYXVzZSBuZWVkIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIHN1cHBvcnQsCisgICAgICAgIC8vICAgICBhbmQgYmVjYXVzZSBVbmljb2RlIGNoYXIgcHJvcGVydGllcyB2ZXJzaW9uIG11c3QgYmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgICAgLy8gICAgIHRoZSB2ZXJzaW9uIG9mIElDVSBiZWluZyB0ZXN0ZWQuCisgICAgICAgIHByaXZhdGUgaW50W10gTEJOdW1iZXJDaGVjayhTdHJpbmdCdWZmZXIgcywgaW50IHN0YXJ0SWR4LCBpbnRbXSByZXRWYWxzKSB7CisgICAgICAgICAgICBpZiAocmV0VmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0VmFscyA9IG5ldyBpbnRbMl07CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsc1swXSAgICAgPSAtMTsgIC8vIEluZGljYXRlcyBubyBtYXRjaC4KKyAgICAgICAgICAgIGludCBtYXRjaFN0YXRlID0gMDsKKyAgICAgICAgICAgIGludCBpZHggICAgICAgID0gc3RhcnRJZHg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1hdGNoTG9vcDogZm9yIChpZHggPSBzdGFydElkeDsgaWR4PHMubGVuZ3RoKCk7IGlkeCA9IG1vdmVJbmRleDMyKHMsIGlkeCwgMSkpeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHMsIGlkeCk7CisgICAgICAgICAgICAgICAgaW50IGNMQlR5cGUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkxJTkVfQlJFQUspOworICAgICAgICAgICAgICAgIHN3aXRjaCAobWF0Y2hTdGF0ZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QUkVGSVhfTlVNRVJJQyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuUE9TVEZJWF9OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDE7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLk9QRU5fUFVOQ1RVQVRJT04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkhZUEhFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgIC8qIE5vIE1hdGNoICAqLworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IWVBIRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLk5VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAvKiBObyBNYXRjaCAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYXRjaExvb3A7ICAgLyogTm8gTWF0Y2ggICovCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAoKFBSIHwgUE8pIENNKik/ICgoT1AgfCBIWSkgQ00qKT8gTlUgQ00qICgoTlUgfCBJUyB8IFNZKSBDTSopICogKENMIENNKik/ICAoUFIgfCBQTykgQ00qKT8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgMCAgICAwICAgMSAgICAgICAzICAgIDMgICAgNCAgICAgICAgICAgICAgNyAgICA3ICAgIDcgICAgNyAgICAgIDkgICA5ICAgICAxMSAgIDExICAgIChtYXRjaCBzdGF0ZXMpCisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuSU5GSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuQlJFQUtfU1lNQk9MUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNMT1NFX1BVTkNUVUFUSU9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QT1NURklYX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gMTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QUkVGSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgICAvLyBNYXRjaCBDb21wbGV0ZS4KKyAgICAgICAgICAgICAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuQ09NQklOSU5HX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gOTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLlBPU1RGSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLlBSRUZJWF9OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDExOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgICAvLyBNYXRjaCBDb21wbGV0ZS4KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDExOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgICAvLyBNYXRjaCBDb21wbGV0ZS4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWF0Y2hTdGF0ZSA+IDQpIHsKKyAgICAgICAgICAgICAgICByZXRWYWxzWzBdID0gc3RhcnRJZHg7ICAgCisgICAgICAgICAgICAgICAgIHJldFZhbHNbMV0gPSBpZHg7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV0VmFsczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIExpc3QgIGNoYXJDbGFzc2VzKCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZXRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAKKyAgICB9CisKKyAgICAgCisgICAgLyoqCisgICAgICogCisgICAgICogU2VudGVuY2UgTW9ua2V5IFRlc3QgQ2xhc3MKKyAgICAgKgorICAgICAqIAorICAgICAqIAorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBSQkJJU2VudGVuY2VNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIExpc3QgICAgICAgICAgICAgICAgIGZTZXRzOworICAgICAgICBTdHJpbmdCdWZmZXIgICAgICAgICBmVGV4dDsKKworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmU2VwU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmRm9ybWF0U2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmU3BTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZMb3dlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZlVwcGVyU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmT0xldHRlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZk51bWVyaWNTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZBVGVybVNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZlNUZXJtU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICBmQ2xvc2VTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgIGZPdGhlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgZkV4dGVuZFNldDsKKworIAorICAgICAgICAKKyAgICAgICAgUkJCSVNlbnRlbmNlTW9ua2V5KCkgeworICAgICAgICAgICAgZlNldHMgICAgICAgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgICAgICAgICAgZlNlcFNldCAgICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gU2VwfV0iKTsKKyAgICAgICAgICAgIGZGb3JtYXRTZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtTZW50ZW5jZV9CcmVhayA9IEZvcm1hdH1dIik7CisgICAgICAgICAgICBmU3BTZXQgICAgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBTcH1dIik7CisgICAgICAgICAgICBmTG93ZXJTZXQgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBMb3dlcn1dIik7CisgICAgICAgICAgICBmVXBwZXJTZXQgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBVcHBlcn1dIik7CisgICAgICAgICAgICBmT0xldHRlclNldCAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBPTGV0dGVyfS1bXFx1ZmY5ZVxcdWZmOWZdXSIpOworICAgICAgICAgICAgZk51bWVyaWNTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1NlbnRlbmNlX0JyZWFrID0gTnVtZXJpY31dIik7CisgICAgICAgICAgICBmQVRlcm1TZXQgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBBVGVybX1dIik7CisgICAgICAgICAgICBmU1Rlcm1TZXQgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBTVGVybX1dIik7CisgICAgICAgICAgICBmQ2xvc2VTZXQgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7U2VudGVuY2VfQnJlYWsgPSBDbG9zZX1dIik7CisgICAgICAgICAgICBmRXh0ZW5kU2V0ICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7R3JhcGhlbWVfRXh0ZW5kfVxcdWZmOWVcXHVmZjlmXSIpOworICAgICAgICAgICAgZk90aGVyU2V0ICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCk7CisKKworICAgICAgICAgICAgZk90aGVyU2V0LmNvbXBsZW1lbnQoKTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZlNlcFNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZGb3JtYXRTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmU3BTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmTG93ZXJTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmVXBwZXJTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmT0xldHRlclNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZOdW1lcmljU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkFUZXJtU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZlNUZXJtU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkNsb3NlU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkV4dGVuZFNldCk7CisKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU2VwU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmRm9ybWF0U2V0KTsKKworICAgICAgICAgICAgZlNldHMuYWRkKGZTcFNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkxvd2VyU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmVXBwZXJTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZPTGV0dGVyU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTnVtZXJpY1NldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkFUZXJtU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmU1Rlcm1TZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZDbG9zZVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk90aGVyU2V0KTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmRXh0ZW5kU2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIExpc3QgIGNoYXJDbGFzc2VzKCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZXRzOyAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgICBzZXRUZXh0KFN0cmluZ0J1ZmZlciBzKSB7IAorICAgICAgICAgICAgZlRleHQgPSBzOyAgICAgICAgCisgICAgICAgIH0gICAKKworICAgICAgICAKKyAgICAgICAgLy8gICAgICBtb3ZlQmFjaygpICAgRmluZCB0aGUgInNpZ25pZmljYW50IiBjb2RlIHBvaW50IHByZWNlZGluZyB0aGUgaW5kZXggaS4KKyAgICAgICAgLy8gICAgICBTa2lwcyBvdmVyICgkRXh0ZW5kIHwgJEZvcm1hdCkqCisgICAgICAgIC8vIAorICAgICAgICBwcml2YXRlIGludCBtb3ZlQmFjayhpbnQgaSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaSA8PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgICAgICBjOworICAgICAgICAgICAgaW50ICAgICAgaiA9IGk7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgaiA9IG1vdmVJbmRleDMyKGZUZXh0LCBqLCAtMSk7CisgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChmVGV4dCwgaik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoaj4wICYmKGZGb3JtYXRTZXQuY29udGFpbnMoYykgfHwgZkV4dGVuZFNldC5jb250YWlucyhjKSkpOworICAgICAgICAgICAgcmV0dXJuIGo7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpbnQgbW92ZUZvcndhcmQoaW50IGkpIHsKKyAgICAgICAgICAgIGlmIChpPj1mVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmVGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCAgIGM7CisgICAgICAgICAgICBpbnQgICBqID0gaTsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBqID0gbW92ZUluZGV4MzIoZlRleHQsIGosIDEpOworICAgICAgICAgICAgICAgIGMgPSBjQXQoaik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoYz49MCAmJiAoZkZvcm1hdFNldC5jb250YWlucyhjKSB8fCBmRXh0ZW5kU2V0LmNvbnRhaW5zKGMpKSk7CisgICAgICAgICAgICByZXR1cm4gajsKKyAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBjQXQoaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHBvczwwIHx8IHBvcz49ZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gVVRGMTYuY2hhckF0KGZUZXh0LCBwb3MpOworICAgICAgICB9CisKKyAgICAgICAgaW50ICAgbmV4dChpbnQgcHJldlBvcykgeyAgCisgICAgICAgICAgICBpbnQgICAgcDAsIHAxLCBwMiwgcDM7ICAgICAgLy8gSW5kaWNlcyBvZiB0aGUgc2lnbmlmaWNhbnQgY29kZSBwb2ludHMgYXJvdW5kIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGJyZWFrIHBvc2l0aW9uIGJlaW5nIHRlc3RlZC4gIFRoZSBjYW5kaWRhdGUgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGxvY2F0aW9uIGlzIGJlZm9yZSBwMi4KKyAgICAgICAgICAgIGludCAgICAgYnJlYWtQb3MgPSAtMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGMwLCBjMSwgYzIsIGMzOyAgICAgICAgIC8vIFRoZSBjb2RlIHBvaW50cyBhdCBwMCwgcDEsIHAyICYgcDMuCisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUHJldiBicmVhayBhdCBlbmQgb2Ygc3RyaW5nLiAgcmV0dXJuIERPTkUuCisgICAgICAgICAgICBpZiAocHJldlBvcyA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAwID0gcDEgPSBwMiA9IHAzID0gcHJldlBvczsKKyAgICAgICAgICAgIGMzID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwcmV2UG9zKTsKKyAgICAgICAgICAgIGMwID0gYzEgPSBjMiA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIExvb3AgcnVucyBvbmNlIHBlciAic2lnbmlmaWNhbnQiIGNoYXJhY3RlciBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgdGV4dC4KKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIGFsbCBvZiB0aGUgcG9zaXRpb25zIGZvcndhcmQgaW4gdGhlIGlucHV0IHN0cmluZy4KKyAgICAgICAgICAgICAgICBwMCA9IHAxOyAgYzAgPSBjMTsKKyAgICAgICAgICAgICAgICBwMSA9IHAyOyAgYzEgPSBjMjsKKyAgICAgICAgICAgICAgICBwMiA9IHAzOyAgYzIgPSBjMzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNkIHAzIGJ5ICBYKEV4dGVuZCB8IEZvcm1hdCkqICAgUnVsZSA0CisgICAgICAgICAgICAgICAgcDMgPSBtb3ZlRm9yd2FyZChwMyk7CisgICAgICAgICAgICAgICAgYzMgPSBjQXQocDMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDMpIENSIHggTEYKKyAgICAgICAgICAgICAgICBpZiAoYzE9PTB4MGQgJiYgYzI9PTB4MGEgJiYgcDI9PShwMSsxKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoNCkgICAgU2VwICA8YnJlYWs+CisgICAgICAgICAgICAgICAgaWYgKGZTZXBTZXQuY29udGFpbnMoYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIHAyID0gcDErMTsgICAvLyBTZXBhcmF0b3JzIGRvbid0IGNvbWJpbmUgd2l0aCBFeHRlbmQgb3IgRm9ybWF0CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIGlmIChwMiA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBSZWFjaGVkIGVuZCBvZiBzdHJpbmcuICBBbHdheXMgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHAyID09IHByZXZQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RpbGwgd2FybWluZyB1cCB0aGUgbG9vcC4gICh3b24ndCB3b3JrIHdpdGggemVybyBsZW5ndGggc3RyaW5ncywgYnV0IHdlIGRvbid0IGNhcmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDYpLiAgIEFUZXJtIHggTnVtZXJpYworICAgICAgICAgICAgICAgIGlmIChmQVRlcm1TZXQuY29udGFpbnMoYzEpICYmICBmTnVtZXJpY1NldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDcpLiAgVXBwZXIgQVRlcm0gIHggIFVwcHBlcgorICAgICAgICAgICAgICAgIGlmIChmVXBwZXJTZXQuY29udGFpbnMoYzApICYmIGZBVGVybVNldC5jb250YWlucyhjMSkgJiYgZlVwcGVyU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICg4KSAgQVRlcm0gQ2xvc2UqIFNwKiAgeCAgKG5vdCAoT0xldHR0ZXIgfCBVcHBlciB8IExvd2VyIHwgU2VwKSkqIExvd2VyCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIE5vdGU6ICBTdGVybSB8IEFUZXJtIGFyZSBhZGRlZCB0byB0aGUgbmVnYXRlZCBwYXJ0IG9mIHRoZSBleHByZXNzaW9uIGJ5IGEgCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICBub3RlIHRvIHRoZSBVbmljb2RlIDUuMCBkb2N1bWVudHMuCisgICAgICAgICAgICAgICAgaW50IHA4ID0gcDE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHA4PjAgJiYgZlNwU2V0LmNvbnRhaW5zKGNBdChwOCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHA4ID0gbW92ZUJhY2socDgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAocDg+MCAmJiBmQ2xvc2VTZXQuY29udGFpbnMoY0F0KHA4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDggPSBtb3ZlQmFjayhwOCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmQVRlcm1TZXQuY29udGFpbnMoY0F0KHA4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDg9cDI7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjQXQocDgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGM9PS0xIHx8IGZPTGV0dGVyU2V0LmNvbnRhaW5zKGMpIHx8IGZVcHBlclNldC5jb250YWlucyhjKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMb3dlclNldC5jb250YWlucyhjKSB8fCBmU2VwU2V0LmNvbnRhaW5zKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkFUZXJtU2V0LmNvbnRhaW5zKGMpIHx8IGZTVGVybVNldC5jb250YWlucyhjKSkgIAorICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHA4ID0gbW92ZUZvcndhcmQocDgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwODxmVGV4dC5sZW5ndGgoKSAmJiBmTG93ZXJTZXQuY29udGFpbnMoY0F0KHA4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgOGEgIChTVGVybSB8IEFUZXJtKSBDbG9zZSogU3AqIHggKFN0ZXJtIHwgQVRlcm0pCisgICAgICAgICAgICAgICAgaWYgKGZTVGVybVNldC5jb250YWlucyhjMikgfHwgZkFUZXJtU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBwOCA9IHAxOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2V0Q29udGFpbnMoZlNwU2V0LCBjQXQocDgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcDggPSBtb3ZlQmFjayhwOCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHNldENvbnRhaW5zKGZDbG9zZVNldCwgY0F0KHA4KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHA4ID0gbW92ZUJhY2socDgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMgPSBjQXQocDgpOworICAgICAgICAgICAgICAgICAgICBpZiAoc2V0Q29udGFpbnMoZlNUZXJtU2V0LCBjKSB8fCBzZXRDb250YWlucyhmQVRlcm1TZXQsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoOSkgIChTVGVybSB8IEFUZXJtKSBDbG9zZSogIHggIChDbG9zZSB8IFNwIHwgU2VwKQorICAgICAgICAgICAgICAgIGludCBwOSA9IHAxOworICAgICAgICAgICAgICAgIHdoaWxlIChwOT4wICYmIGZDbG9zZVNldC5jb250YWlucyhjQXQocDkpKSkgeworICAgICAgICAgICAgICAgICAgICBwOSA9IG1vdmVCYWNrKHA5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyA9IGNBdChwOSk7CisgICAgICAgICAgICAgICAgaWYgKChmU1Rlcm1TZXQuY29udGFpbnMoYykgfHwgZkFUZXJtU2V0LmNvbnRhaW5zKGMpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZkNsb3NlU2V0LmNvbnRhaW5zKGMyKSB8fCBmU3BTZXQuY29udGFpbnMoYzIpIHx8IGZTZXBTZXQuY29udGFpbnMoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDEwKSAgKFN0ZXJtIHwgQVRlcm0pIENsb3NlKiBTcCogIHggIChTcCB8IFNlcCkKKyAgICAgICAgICAgICAgICBpbnQgcDEwID0gcDE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHAxMD4wICYmIGZTcFNldC5jb250YWlucyhjQXQocDEwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDEwID0gbW92ZUJhY2socDEwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHAxMD4wICYmIGZDbG9zZVNldC5jb250YWlucyhjQXQocDEwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcDEwID0gbW92ZUJhY2socDEwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZTVGVybVNldC5jb250YWlucyhjQXQocDEwKSkgfHwgZkFUZXJtU2V0LmNvbnRhaW5zKGNBdChwMTApKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZlNwU2V0LmNvbnRhaW5zKGMyKSB8fCBmU2VwU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMSkgIChTVGVybSB8IEFUZXJtKSBDbG9zZSogU3AqICAgPGJyZWFrPgorICAgICAgICAgICAgICAgIGludCBwMTEgPSBwMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocDExPjAgJiYgZlNwU2V0LmNvbnRhaW5zKGNBdChwMTEpKSkgeworICAgICAgICAgICAgICAgICAgICBwMTEgPSBtb3ZlQmFjayhwMTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAocDExPjAgJiYgZkNsb3NlU2V0LmNvbnRhaW5zKGNBdChwMTEpKSkgeworICAgICAgICAgICAgICAgICAgICBwMTEgPSBtb3ZlQmFjayhwMTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZlNUZXJtU2V0LmNvbnRhaW5zKGNBdChwMTEpKSB8fCBmQVRlcm1TZXQuY29udGFpbnMoY0F0KHAxMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vICBSdWxlICgxMikgIEFueSB4IEFueQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWtQb3MgPSBwMjsKKyAgICAgICAgICAgIHJldHVybiBicmVha1BvczsKKyAgICAgICAgfQorICAgICAgICAgICAKKworICAgICAgICAKKyAgICB9CisKKyAKKyAgICAvKioKKyAgICAgKiBNb3ZlIGFuIGluZGV4IGludG8gYSBzdHJpbmcgYnkgbiBjb2RlIHBvaW50cy4KKyAgICAgKiAgIFNpbWlsYXIgdG8gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldCwgYnV0IHdpdGhvdXQgdGhlIGV4Y2VwdGlvbnMsIHdoaWNoIHdlcmUKKyAgICAgKiAgIGNvbXBsaWNhdGluZyB1c2FnZS4KKyAgICAgKiBAcGFyYW0gcyAgIGEgVGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBzdGFydGluZyBjb2RlIHVuaXQgaW5kZXggaW50byB0aGUgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gYW10IFRoZSBhbW91bnQgdG8gYWRqdXN0IHRoZSBzdHJpbmcgYnkuCisgICAgICogQHJldHVybiAgICBUaGUgYWRqdXN0ZWQgY29kZSB1bml0IGluZGV4LCBwaW5uZWQgdG8gdGhlIHN0cmluZydzIGxlbmd0aCwgb3IKKyAgICAgKiAgICAgICAgICAgIHVuY2hhbmdlZCBpZiBpbnB1dCBpbmRleCB3YXMgb3V0c2lkZSBvZiB0aGUgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgbW92ZUluZGV4MzIoU3RyaW5nQnVmZmVyIHMsIGludCBwb3MsIGludCBhbXQpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGNoYXIgIGM7CisgICAgICAgIGlmIChhbXQ+MCkgeworICAgICAgICAgICAgZm9yIChpPTA7IGk8YW10OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zID49IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHMubGVuZ3RoKCk7ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICBwb3MrKzsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpICYmIHBvcyA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MrKzsgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPmFtdDsgaS0tKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3MtLTsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjKSAmJiBwb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zLS07ICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm8tZXhjZXB0aW9ucyBmb3JtIG9mIFVuaWNvZGVTZXQuY29udGFpbnMoYykuCisgICAgICogICAgU2ltcGxpZmllcyBsb29wcyB0aGF0IHRlcm1pbmF0ZSB3aXRoIGFuIGVuZC1vZi1pbnB1dCBjaGFyYWN0ZXIgdmFsdWUuCisgICAgICogQHBhcmFtIHMgIEEgdW5pY29kZSBzZXQKKyAgICAgKiBAcGFyYW0gYyAgQSBjb2RlIHBvaW50IHZhbHVlCisgICAgICogQHJldHVybiAgIHRydWUgaWYgdGhlIHNldCBjb250YWlucyBjLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHNldENvbnRhaW5zKFVuaWNvZGVTZXQgcywgaW50IGMpIHsKKyAgICAJaWYgKGM8MCB8fCBjPlVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUUgKSB7CisgICAgCQlyZXR1cm4gZmFsc2U7CisgICAgCX0KKyAgICAJcmV0dXJuIHMuY29udGFpbnMoYyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaW5wdXQgdGV4dC4KKyAgICAgKiBAcGFyYW0gaSB0aGUgcHJlY2VkaW5nIGluZGV4CisgICAgICogQHJldHVybgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBpbnQgIG5leHRDUChTdHJpbmdCdWZmZXIgcywgaW50IGkpIHsKKyAgICAgICAgaWYgKGkgPT0gLTEpIHsKKyAgICAgICAgICAgIC8vIEVuZCBvZiBJbnB1dCBpbmRpY2F0aW9uLiAgQ29udGludWUgdG8gcmV0dXJuIGVuZCB2YWx1ZS4KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgIHJldFZhbCA9IGkgKyAxOworICAgICAgICBpZiAocmV0VmFsID4gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGludCAgYyA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgaWYgKGMgPj0gVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHMuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgcmV0VmFsKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9CisKKworICAgIC8vCisgICAgLy8gIFRoZSBmb2xsb3dpbmcgVW5pY29kZVNldHMgYXJlIHVzZWQgaW4gbWF0Y2hpbmcgYSBHcmFwaGVtZSBDbHVzdGVyCisgICAgLy8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX0NvbnRyb2w7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19FeHRlbmQgOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfTCA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19WIDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX1QgOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfTFY7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19MVlQgOworCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgR0NfQ29udHJvbCA9IG5ldyBVbmljb2RlU2V0KCJbWzpabDpdWzpacDpdWzpDYzpdWzpDZjpdLVtcXHUwMDBkXFx1MDAwYV0tW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrPUV4dGVuZH1dXSIpOworICAgICAgIAorICAgICAgICBHQ19FeHRlbmQgPSBuZXcgVW5pY29kZVNldCgiW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrPUV4dGVuZH1dIik7CisgICAgICAgCisgICAgICAgIEdDX0wgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TDpdXSIpOworICAgICAgIAorICAgICAgICBHQ19WID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbmd1bF9TeWxsYWJsZV9UeXBlPVY6XV0iKTsKKyAgICAgICAKKyAgICAgICAgR0NfVCA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1UOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX0xWID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbmd1bF9TeWxsYWJsZV9UeXBlPUxWOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX0xWVCA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1MVlQ6XV0iKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRmluZCB0aGUgZW5kIG9mIHRoZSBleHRlbnQgb2YgYSBncmFwaGVtZSBjbHVzdGVyLgorICAgICAqIFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IHRoZSBtb25rZXkgdGVzdCBmb3IgY29tcGFyaXNvbgorICAgICAqIHdpdGggdGhlIFJCQkkgcmVzdWx0cy4KKyAgICAgKiBAcGFyYW0gcyAgVGhlIHN0cmluZyBjb250YWluaW5nIHRoZSB0ZXh0IHRvIGJlIGFuYWx5emVkICAKKyAgICAgKiBAcGFyYW0gaSAgVGhlIGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3JhcGhlbWUgY2x1c3Rlci4KKyAgICAgKiBAcmV0dXJuICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjb2RlIHBvaW50IGZvbGxvd2luZyB0aGUgZ3JhcGhlbWUgY2x1c3RlcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBuZXh0R0MoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGlmIChpID49IHMubGVuZ3RoKCkgfHwgaSA9PSAtMSApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGludCAgYyA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgaW50ICBwb3MgPSBpOworICAgICAgICAKKyAgICAgICAgaWYgKGMgPT0gMHgwZCkgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIGkpOworICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgcG9zKTsKKyAgICAgICAgICAgIGlmIChjID09IDB4MGEpIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBuZXh0Q1AocywgcG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChHQ19Db250cm9sLmNvbnRhaW5zKGMpIHx8IGMgPT0gMHgwYSkgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7CisgICAgICAgICAgICByZXR1cm4gcG9zOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBMaXR0bGUgc3RhdGUgbWFjaGluZSB0byBjb25zdW1lIEhhbmd1bCBTeWxsYWJsZXMKKyAgICAgICAgaW50ICBoYW5ndWxTdGF0ZSA9IDE7CisgICAgICAgIHN0YXRlX2xvb3A6IGZvciAoOzspIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaGFuZ3VsU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19MLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVi5jb250YWlucyhjKSB8fCBHQ19MVi5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1QuY29udGFpbnMoYykgfHwgR0NfTFZULmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBzdGF0ZV9sb29wOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0wuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGluIHN0YXRlIDIuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVi5jb250YWlucyhjKSB8fCBHQ19MVi5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0xWVC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19WLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBpbiBzdGF0ZSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1QuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHN0YXRlX2xvb3A7CisgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgaW4gc3RhdGUgNAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBzdGF0ZV9sb29wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gV2UgaGF2ZSBleGl0ZWQgdGhlIHN3aXRjaCBzdGF0ZW1lbnQsIGJ1dCBhcmUgc3RpbGwgaW4gdGhlIGxvb3AuCisgICAgICAgICAgICAvLyBTdGlsbCBpbiBhIEhhbmd1bCBTeWxsYWJsZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7IAorICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIHBvcyk7ICAgIAorICAgICAgICB9ICAvLyBlbmQgb2YgbG9vcAorICAgICAgICAKKyAgICAgICAgaWYgKGhhbmd1bFN0YXRlICE9IDEpIHsKKyAgICAgICAgICAgIC8vIFdlIGZvdW5kIGEgSGFuZ3VsLiAgV2UncmUgZG9uZS4KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE9yZGluYXJ5IGNoYXJhY3RlcnMuICBDb25zdW1lIG9uZSBjb2RlcG9pbnQgdW5jb25kaXRpb25hbGx5LCB0aGVuIGFueSBmb2xsb3dpbmcgRXh0ZW5kcy4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7IAorICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIHBvcyk7ICAgIAorICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcG9zOyAgIAorICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIE5vdCB1c2luZyBKYXZhJ3MgYnVpbHQtaW4gUmFuZG9tcyBmb3IgdHdvIHJlYXNvbnM6CisgICAgICogICAgMS4gIFVzaW5nIHRoaXMgY29kZSBhbGxvd3Mgb2J0YWluaW5nIHRoZSBzYW1lIHNlcXVlbmNlcyBhcyB0aG9zZSBmcm9tIHRoZSBJQ1U0QyBtb25rZXkgdGVzdC4KKyAgICAgKiAgICAyLiAgV2UgbmVlZCB0byBnZXQgYW5kIHJlc3RvcmUgdGhlIHNlZWQgZnJvbSB2YWx1ZXMgb2NjdXJpbmcgaW4gdGhlIG1pZGRsZQorICAgICAqICAgICAgICBvZiBhIGxvbmcgc2VxdWVuY2UsIHRvIG1vcmUgZWFzaWx5IHJlcHJvZHVjZSBmYWlsaW5nIGNhc2VzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBtX3NlZWQgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGludCAgbV9yYW5kKCkKKyAgICB7CisgICAgICAgIG1fc2VlZCA9IG1fc2VlZCAqIDExMDM1MTUyNDUgKyAxMjM0NTsKKyAgICAgICAgcmV0dXJuIChpbnQpKG1fc2VlZCA+Pj4gMTYpICUgMzI3Njg7CisgICAgfQorCisgICAgCisvKioKKyAqICBSdW4gYSBSQkJJIG1vbmtleSB0ZXN0LiAgQ29tbW9uIHJvdXRpbmUsIGZvciBhbGwgYnJlYWsgaXRlcmF0b3IgdHlwZXMuCisgKiAgICBQYXJhbWV0ZXJzOgorICogICAgICAgYmkgICAgICAtIHRoZSBicmVhayBpdGVyYXRvciB0byB1c2UKKyAqICAgICAgIG1rICAgICAgLSBNb25rZXlLaW5kLCBhYnN0cmFjdGlvbiBmb3Igb2J0YWluaW5nIGV4cGVjdGVkIHJlc3VsdHMKKyAqICAgICAgIG5hbWUgICAgLSBOYW1lIG9mIHRlc3QgKGNoYXIsIHdvcmQsIGV0Yy4pIGZvciB1c2UgaW4gZXJyb3IgbWVzc2FnZXMKKyAqICAgICAgIHNlZWQgICAgLSBTZWVkIGZvciBzdGFydGluZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciAocGFyYW1ldGVyIGZyb20gdXNlcikKKyAqICAgICAgIG51bUl0ZXJhdGlvbnMKKyAqLwordm9pZCBSdW5Nb25rZXkoQnJlYWtJdGVyYXRvciAgYmksIFJCQklNb25rZXlLaW5kIG1rLCBTdHJpbmcgbmFtZSwgaW50ICBzZWVkLCBpbnQgbnVtSXRlcmF0aW9ucykgeworICAgIGludCAgICAgICAgICAgICAgVEVTVFNUUklOR0xFTiA9IDUwMDsKKyAgICBTdHJpbmdCdWZmZXIgICAgIHRlc3RUZXh0ICAgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50ICAgICAgICAgICAgICBudW1DaGFyQ2xhc3NlczsKKyAgICBMaXN0ICAgICAgICAgICAgIGNoQ2xhc3NlczsKKyAgICBpbnRbXSAgICAgICAgICAgIGV4cGVjdGVkICAgICAgICAgPSBuZXcgaW50W1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGludCAgICAgICAgICAgICAgZXhwZWN0ZWRDb3VudCAgICA9IDA7CisgICAgYm9vbGVhbltdICAgICAgICBleHBlY3RlZEJyZWFrcyAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBmb3J3YXJkQnJlYWtzICAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICByZXZlcnNlQnJlYWtzICAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBpc0JvdW5kYXJ5QnJlYWtzID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBmb2xsb3dpbmdCcmVha3MgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBwcmVjZWRpbmdCcmVha3MgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgaW50ICAgICAgICAgICAgICBpOworICAgIGludCAgICAgICAgICAgICAgbG9vcENvdW50ICAgICAgICA9IDA7CisgICAgYm9vbGVhbiAgICAgICAgICBwcmludFRlc3REYXRhICAgID0gZmFsc2U7CisgICAgYm9vbGVhbiAgICAgICAgICBwcmludEJyZWFrc0Zyb21CSSA9IGZhbHNlOworCisgICAgbV9zZWVkID0gc2VlZDsKKworICAgIG51bUNoYXJDbGFzc2VzID0gbWsuY2hhckNsYXNzZXMoKS5zaXplKCk7CisgICAgY2hDbGFzc2VzICAgICAgPSBtay5jaGFyQ2xhc3NlcygpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNoYXJhY3RlciBjbGFzc2VzIGFsbCBoYXZlIGF0IGxlYXN0IG9uZSBtZW1iZXIuCisgICAgZm9yIChpPTA7IGk8bnVtQ2hhckNsYXNzZXM7IGkrKykgeworICAgICAgICBVbmljb2RlU2V0IHMgPSAoVW5pY29kZVNldCljaENsYXNzZXMuZ2V0KGkpOworICAgICAgICBpZiAocyA9PSBudWxsIHx8IHMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgQ2xhc3MgIiArIGkgKyAiIGlzIG51bGwgb3Igb2YgemVybyBzaXplLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIERlYnVnZ2luZyBzZXR0aW5ncy4gIENvbW1lbnQgb3V0IGV2ZXJ5dGhpbmcgaW4gdGhlIGZvbGxvd2luZyBibG9jayBmb3Igbm9ybWFsIG9wZXJhdGlvbgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIG51bUl0ZXJhdGlvbnMgPSAtMTsgIAorICAgIC8vIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LmZUcmFjZSA9IHRydWU7CisgICAgLy8gbV9zZWVkID0gODU5MDU2NDY1OworICAgIC8vIFRFU1RTVFJJTkdMRU4gPSA1MDsKKyAgICAvLyBwcmludFRlc3REYXRhID0gdHJ1ZTsKKyAgICAvLyBwcmludEJyZWFrc0Zyb21CSSA9IHRydWU7CisgICAgLy8gKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyliaSkuZHVtcCgpOworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBFbmQgb2YgRGVidWdnaW5nIHNldHRpbmdzLiAgCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgaW50ICBkb3RzT25MaW5lID0gMDsKKyAgICAgd2hpbGUgKGxvb3BDb3VudCA8IG51bUl0ZXJhdGlvbnMgfHwgbnVtSXRlcmF0aW9ucyA9PSAtMSkgeworICAgICAgICBpZiAobnVtSXRlcmF0aW9ucyA9PSAtMSAmJiBsb29wQ291bnQgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAvLyBJZiB0ZXN0IGlzIHJ1bm5pbmcgaW4gYW4gaW5maW5pdGUgbG9vcCwgZGlzcGxheSBhIHBlcmlvZGljIHRpYyBzbworICAgICAgICAgICAgLy8gICB3ZSBjYW4gdGVsbCB0aGF0IGl0IGlzIG1ha2luZyBwcm9ncmVzcy4KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIi4iKTsKKyAgICAgICAgICAgIGlmIChkb3RzT25MaW5lKysgPj0gODApeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIGRvdHNPbkxpbmUgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFNhdmUgY3VycmVudCByYW5kb20gbnVtYmVyIHNlZWQsIHNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIHRoZSByYW5kb20gbnVtYmVycworICAgICAgICAvLyAgIGZvciB0aGlzIGxvb3AgaXRlcmF0aW9uIGluIGV2ZW50IG9mIGFuIGVycm9yLgorICAgICAgICBzZWVkID0gbV9zZWVkOworCisgICAgICAgIHRlc3RUZXh0LnNldExlbmd0aCgwKTsKKyAgICAgICAgLy8gUG9wdWxhdGUgYSB0ZXN0IHN0cmluZyB3aXRoIGRhdGEuCisgICAgICAgIGlmIChwcmludFRlc3REYXRhKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QgRGF0YSBzdHJpbmcgLi4uIik7IAorICAgICAgICB9CisgICAgICAgIGZvciAoaT0wOyBpPFRFU1RTVFJJTkdMRU47IGkrKykgeworICAgICAgICAgICAgaW50ICAgICAgICBhQ2xhc3NOdW0gPSBtX3JhbmQoKSAlIG51bUNoYXJDbGFzc2VzOworICAgICAgICAgICAgVW5pY29kZVNldCBjbGFzc1NldCAgPSAoVW5pY29kZVNldCljaENsYXNzZXMuZ2V0KGFDbGFzc051bSk7CisgICAgICAgICAgICBpbnQgICAgICAgIGNoYXJJZHggICA9IG1fcmFuZCgpICUgY2xhc3NTZXQuc2l6ZSgpOworICAgICAgICAgICAgaW50ICAgICAgICBjICAgICAgICAgPSBjbGFzc1NldC5jaGFyQXQoY2hhcklkeCk7CisgICAgICAgICAgICBpZiAoYyA8IDApIHsgICAvLyBUT0RPOiAgZGVhbCB3aXRoIHNldHMgY29udGFpbmluZyBzdHJpbmdzLgorICAgICAgICAgICAgICAgIGVycmxuKCJjIDwgMCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kQ29kZVBvaW50KHRlc3RUZXh0LCBjKTsKKyAgICAgICAgICAgIGlmIChwcmludFRlc3REYXRhKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpICsgIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocHJpbnRUZXN0RGF0YSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7IAorICAgICAgICB9CisKKyAgICAgICAgQXJyYXlzLmZpbGwoZXhwZWN0ZWQsIDApOworICAgICAgICBBcnJheXMuZmlsbChleHBlY3RlZEJyZWFrcywgZmFsc2UpOworICAgICAgICBBcnJheXMuZmlsbChmb3J3YXJkQnJlYWtzLCBmYWxzZSk7CisgICAgICAgIEFycmF5cy5maWxsKHJldmVyc2VCcmVha3MsIGZhbHNlKTsKKyAgICAgICAgQXJyYXlzLmZpbGwoaXNCb3VuZGFyeUJyZWFrcywgZmFsc2UpOworICAgICAgICBBcnJheXMuZmlsbChmb2xsb3dpbmdCcmVha3MsIGZhbHNlKTsKKyAgICAgICAgQXJyYXlzLmZpbGwocHJlY2VkaW5nQnJlYWtzLCBmYWxzZSk7CisgCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhpcyB0ZXN0IHN0cmluZy4KKyAgICAgICAgbWsuc2V0VGV4dCh0ZXN0VGV4dCk7CisgICAgICAgIGV4cGVjdGVkQ291bnQgPSAwOworICAgICAgICBleHBlY3RlZEJyZWFrc1swXSA9IHRydWU7CisgICAgICAgIGV4cGVjdGVkW2V4cGVjdGVkQ291bnQgKytdID0gMDsKKyAgICAgICAgaW50IGJyZWFrUG9zID0gMDsKKyAgICAgICAgaW50IGxhc3RCcmVha1BvcyA9IC0xOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBsYXN0QnJlYWtQb3MgPSBicmVha1BvczsKKyAgICAgICAgICAgIGJyZWFrUG9zID0gbWsubmV4dChicmVha1Bvcyk7CisgICAgICAgICAgICBpZiAoYnJlYWtQb3MgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChicmVha1BvcyA+IHRlc3RUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJyZWFrUG9zID4gdGVzdFRleHQubGVuZ3RoKCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0QnJlYWtQb3MgPj0gYnJlYWtQb3MpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTmV4dCgpIG5vdCBpbmNyZWFzaW5nLiIpOworICAgICAgICAgICAgICAgIC8vIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhwZWN0ZWRCcmVha3NbYnJlYWtQb3NdID0gdHJ1ZTsKKyAgICAgICAgICAgIGV4cGVjdGVkW2V4cGVjdGVkQ291bnQgKytdID0gYnJlYWtQb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBicmVhayBwb3NpdGlvbnMgdXNpbmcgZm9yd2FyZCBpdGVyYXRpb24KKyAgICAgICAgaWYgKHByaW50QnJlYWtzRnJvbUJJKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJyZWFrcyBmcm9tIEJJLi4uIik7ICAKKyAgICAgICAgfQorICAgICAgICBiaS5zZXRUZXh0KHRlc3RUZXh0LnRvU3RyaW5nKCkpOworICAgICAgICBmb3IgKGk9YmkuZmlyc3QoKTsgaSAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGk9YmkubmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoaSA8IDAgfHwgaSA+IHRlc3RUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4obmFtZSArICIgYnJlYWsgbW9ua2V5IHRlc3Q6IE91dCBvZiByYW5nZSB2YWx1ZSByZXR1cm5lZCBieSBicmVha0l0ZXJhdG9yOjpuZXh0KCkiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmludEJyZWFrc0Zyb21CSSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3J3YXJkQnJlYWtzW2ldID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJpbnRCcmVha3NGcm9tQkkpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgYnJlYWsgcG9zaXRpb25zIHVzaW5nIHJldmVyc2UgaXRlcmF0aW9uCisgICAgICAgIGZvciAoaT1iaS5sYXN0KCk7IGkgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBpPWJpLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgIGlmIChpIDwgMCB8fCBpID4gdGVzdFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihuYW1lICsgIiBicmVhayBtb25rZXkgdGVzdDogT3V0IG9mIHJhbmdlIHZhbHVlIHJldHVybmVkIGJ5IGJyZWFrSXRlcmF0b3IubmV4dCgpIiArIG5hbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV2ZXJzZUJyZWFrc1tpXSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBicmVhayBwb3NpdGlvbnMgdXNpbmcgaXNCb3VuZGFyeSgpIHRlc3RzLgorICAgICAgICBmb3IgKGk9MDsgaTw9dGVzdFRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaXNCb3VuZGFyeUJyZWFrc1tpXSA9IGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBicmVhayBwb3NpdGlvbnMgdXNpbmcgdGhlIGZvbGxvd2luZygpIGZ1bmN0aW9uLgorICAgICAgICBsYXN0QnJlYWtQb3MgPSAwOworICAgICAgICBmb2xsb3dpbmdCcmVha3NbMF0gPSB0cnVlOworICAgICAgICBmb3IgKGk9MDsgaTx0ZXN0VGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBicmVha1BvcyA9IGJpLmZvbGxvd2luZyhpKTsKKyAgICAgICAgICAgIGlmIChicmVha1BvcyA8PSBpIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPCBsYXN0QnJlYWtQb3MgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA+IHRlc3RUZXh0Lmxlbmd0aCgpIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPiBsYXN0QnJlYWtQb3MgJiYgbGFzdEJyZWFrUG9zID4gaSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihuYW1lICsgIiBicmVhayBtb25rZXkgdGVzdDogIiArCisgICAgICAgICAgICAgICAgICAgICJPdXQgb2YgcmFuZ2UgdmFsdWUgcmV0dXJuZWQgYnkgQnJlYWtJdGVyYXRvcjo6Zm9sbG93aW5nKCkuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgImluZGV4PSIgKyBpICsgImZvbGxvd2luZyByZXR1cm5lZD0iICsgYnJlYWtQb3MgKworICAgICAgICAgICAgICAgICAgICAibGFzdEJyZWFrPSIgKyBsYXN0QnJlYWtQb3MpOworICAgICAgICAgICAgICAgIHByZWNlZGluZ0JyZWFrc1tpXSA9ICFleHBlY3RlZEJyZWFrc1tpXTsgICAvLyBGb3JjZXMgYW4gZXJyb3IuCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvbGxvd2luZ0JyZWFrc1ticmVha1Bvc10gPSB0cnVlOworICAgICAgICAgICAgICAgIGxhc3RCcmVha1BvcyA9IGJyZWFrUG9zOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBicmVhayBwb3NpdGlvbnMgdXNpbmcgdGhlIHByZWNlZGluZygpIGZ1bmN0aW9uLgorICAgICAgICBsYXN0QnJlYWtQb3MgPSB0ZXN0VGV4dC5sZW5ndGgoKTsKKyAgICAgICAgcHJlY2VkaW5nQnJlYWtzW3Rlc3RUZXh0Lmxlbmd0aCgpXSA9IHRydWU7CisgICAgICAgIGZvciAoaT10ZXN0VGV4dC5sZW5ndGgoKTsgaT4wOyBpLS0pIHsKKyAgICAgICAgICAgIGJyZWFrUG9zID0gYmkucHJlY2VkaW5nKGkpOworICAgICAgICAgICAgaWYgKGJyZWFrUG9zID49IGkgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA+IGxhc3RCcmVha1BvcyB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zIDwgMCB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zIDwgbGFzdEJyZWFrUG9zICYmIGxhc3RCcmVha1BvcyA8IGkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4obmFtZSArICIgYnJlYWsgbW9ua2V5IHRlc3Q6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIk91dCBvZiByYW5nZSB2YWx1ZSByZXR1cm5lZCBieSBCcmVha0l0ZXJhdG9yOjpwcmVjZWRpbmcoKS5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4PSIgKyBpICsgInByZWNlZGluZyByZXR1cm5lZD0iICsgYnJlYWtQb3MgKworICAgICAgICAgICAgICAgICAgICAgICAgImxhc3RCcmVhaz0iICsgbGFzdEJyZWFrUG9zKTsKKyAgICAgICAgICAgICAgICBwcmVjZWRpbmdCcmVha3NbaV0gPSAhZXhwZWN0ZWRCcmVha3NbaV07ICAgLy8gRm9yY2VzIGFuIGVycm9yLgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmVjZWRpbmdCcmVha3NbYnJlYWtQb3NdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsYXN0QnJlYWtQb3MgPSBicmVha1BvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIAorCisgICAgICAgIC8vIENvbXBhcmUgdGhlIGV4cGVjdGVkIGFuZCBhY3R1YWwgcmVzdWx0cy4KKyAgICAgICAgZm9yIChpPTA7IGk8PXRlc3RUZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBlcnJvclR5cGUgPSBudWxsOworICAgICAgICAgICAgaWYgIChmb3J3YXJkQnJlYWtzW2ldICE9IGV4cGVjdGVkQnJlYWtzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gIm5leHQoKSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJldmVyc2VCcmVha3NbaV0gIT0gZm9yd2FyZEJyZWFrc1tpXSkgeworICAgICAgICAgICAgICAgIGVycm9yVHlwZSA9ICJwcmV2aW91cygpIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCb3VuZGFyeUJyZWFrc1tpXSAhPSBleHBlY3RlZEJyZWFrc1tpXSkgeworICAgICAgICAgICAgICAgIGVycm9yVHlwZSA9ICJpc0JvdW5kYXJ5KCkiOworICAgICAgICAgICAgfSBlbHNlIGlmIChmb2xsb3dpbmdCcmVha3NbaV0gIT0gZXhwZWN0ZWRCcmVha3NbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJvclR5cGUgPSAiZm9sbG93aW5nKCkiOworICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVjZWRpbmdCcmVha3NbaV0gIT0gZXhwZWN0ZWRCcmVha3NbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJvclR5cGUgPSAicHJlY2VkaW5nKCkiOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChlcnJvclR5cGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIEZvcm1hdCBhIHJhbmdlIG9mIHRoZSB0ZXN0IHRleHQgdGhhdCBpbmNsdWRlcyB0aGUgZmFpbHVyZSBhcworICAgICAgICAgICAgICAgIC8vICBhIGRhdGEgaXRlbSB0aGF0IGNhbiBiZSBpbmNsdWRlZCBpbiB0aGUgcmJiaSB0ZXN0IGRhdGEgZmlsZS4KKworICAgICAgICAgICAgICAgIC8vIFN0YXJ0IG9mIHRoZSByYW5nZSBpcyB0aGUgbGFzdCBwb2ludCB3aGVyZSBleHBlY3RlZCBhbmQgYWN0dWFsIHJlc3VsdHMKKyAgICAgICAgICAgICAgICAvLyAgIGJvdGggYWdyZWVkIHRoYXQgdGhlcmUgd2FzIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0Q29udGV4dCA9IGk7CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydENvbnRleHQ9PTApIHsgYnJlYWs7IH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnRDb250ZXh0IC0tOworICAgICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRCcmVha3Nbc3RhcnRDb250ZXh0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBFbmQgb2YgcmFuZ2UgaXMgdHdvIGV4cGVjdGVkIGJyZWFrcyBwYXN0IHRoZSBzdGFydCBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBpbnQgZW5kQ29udGV4dCA9IGkgKyAxOworICAgICAgICAgICAgICAgIGludCBjaTsKKyAgICAgICAgICAgICAgICBmb3IgKGNpPTA7IGNpPDI7IGNpKyspIHsgIC8vIE51bWJlciBvZiBpdGVtcyB0byBpbmNsdWRlIGluIGVycm9yIHRleHQuCisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmRDb250ZXh0ID49IHRlc3RUZXh0Lmxlbmd0aCgpKSB7YnJlYWs7fQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkQnJlYWtzW2VuZENvbnRleHQtMV0pIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZW5kQ29udGV4dCArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEZvcm1hdCBsb29rcyBsaWtlICAgIjxkYXRhPjw+XHVhYmNkXHVhYmNkPD5cVTAwMDFhYmNkLi4uPC9kYXRhPiIKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZXJyb3JUZXh0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIjxkYXRhPiIpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIGhleENoYXJzID0gIjAxMjM0NTY3ODlhYmNkZWYiOworICAgICAgICAgICAgICAgIGludCAgICAgIGM7ICAgIC8vIENoYXIgZnJvbSB0ZXN0IGRhdGEKKyAgICAgICAgICAgICAgICBpbnQgICAgICBibjsKKyAgICAgICAgICAgICAgICBmb3IgKGNpID0gc3RhcnRDb250ZXh0OyAgY2kgPD0gZW5kQ29udGV4dCAmJiBjaSAhPSAtMTsgIGNpID0gbmV4dENQKHRlc3RUZXh0LCBjaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNpID09IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBlcnJvci4KKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIjw/PiIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV4cGVjdGVkQnJlYWtzW2NpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhIG5vbi1lcnJvciBleHBlY3RlZCBicmVhayBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIjw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNpIDwgdGVzdFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQodGVzdFRleHQsIGNpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMDAwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYm49MTI7IGJuPj0wOyBibi09NCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKGhleENoYXJzLmNoYXJBdCgoKChpbnQpYyk+PmJuKSYweGYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIlxcVSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYm49Mjg7IGJuPj0wOyBibi09NCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQuYXBwZW5kKGhleENoYXJzLmNoYXJBdCgoKChpbnQpYyk+PmJuKSYweGYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNpID09IHRlc3RUZXh0Lmxlbmd0aCgpICYmIGNpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIjw+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoIjwvZGF0YT5cbiIpOworCisgICAgICAgICAgICAgICAgLy8gT3V0cHV0IHRoZSBlcnJvcgorICAgICAgICAgICAgICAgIGVycmxuKG5hbWUgKyAiIGJyZWFrIG1vbmtleSB0ZXN0IGVycm9yLiAgIiArIAorICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkQnJlYWtzW2ldPyAiQnJlYWsgZXhwZWN0ZWQgYnV0IG5vdCBmb3VuZC4iIDogIkJyZWFrIGZvdW5kIGJ1dCBub3QgZXhwZWN0ZWQuIikgKworICAgICAgICAgICAgICAgICAgICAgICJcbk9wZXJhdGlvbiA9ICIgKyBlcnJvclR5cGUgKyAiOyByYW5kb20gc2VlZCA9ICIgKyBzZWVkICsgIjsgIGJ1ZiBJZHggPSAiICsgaSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb29wQ291bnQrKzsKKyAgICB9Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RDaGFyTW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gNTAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDEwMDAwOworICAgIH0KKyAgICAKKyAgICBSQkJJQ2hhck1vbmtleSAgbSA9IG5ldyBSQkJJQ2hhck1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBSdW5Nb25rZXkoYmksIG0sICJjaGFyIiwgc2VlZCwgbG9vcENvdW50KTsKK30KKworcHVibGljIHZvaWQgVGVzdFdvcmRNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSA1MDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMTAwMDA7CisgICAgfQorICAgIAorICAgIGxvZ2xuKCJXb3JkIEJyZWFrIE1vbmtleSBUZXN0Iik7CisgICAgUkJCSVdvcmRNb25rZXkgIG0gPSBuZXcgUkJCSVdvcmRNb25rZXkoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIFJ1bk1vbmtleShiaSwgbSwgIndvcmQiLCBzZWVkLCBsb29wQ291bnQpOworfQorCitwdWJsaWMgdm9pZCBUZXN0TGluZU1vbmtleSgpIHsKKyAgICAKKyAgICBpbnQgICAgICAgIGxvb3BDb3VudCA9IDUwMDsKKyAgICBpbnQgICAgICAgIHNlZWQgICAgICA9IDE7CisgICAgCisgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPj0gOSkgeworICAgICAgICBsb29wQ291bnQgPSAxMDAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIkxpbmUgQnJlYWsgTW9ua2V5IFRlc3QiKTsKKyAgICBSQkJJTGluZU1vbmtleSAgbSA9IG5ldyBSQkJJTGluZU1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgaWYgKHBhcmFtcyA9PSBudWxsKSB7CisgICAgICAgIGxvb3BDb3VudCA9IDUwOworICAgIH0KKyAgICBSdW5Nb25rZXkoYmksIG0sICJsaW5lIiwgc2VlZCwgbG9vcENvdW50KTsKK30KKworcHVibGljIHZvaWQgVGVzdFNlbnRNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSA1MDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMzAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIlNlbnRlbmNlIEJyZWFrIE1vbmtleSBUZXN0Iik7CisgICAgUkJCSVNlbnRlbmNlTW9ua2V5ICBtID0gbmV3IFJCQklTZW50ZW5jZU1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIGlmIChwYXJhbXMgPT0gbnVsbCkgeworICAgICAgICBsb29wQ291bnQgPSAzMDsKKyAgICB9CisgICAgUnVuTW9ua2V5KGJpLCBtLCAic2VudCIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisvLworLy8gIFJvdW5kLXRyaXAgbW9ua2V5IHRlc3RzLgorLy8gIFZlcmlmeSB0aGF0IGJyZWFrIGl0ZXJhdG9ycyBjcmVhdGVkIGZyb20gdGhlIHJ1bGUgc291cmNlIGZyb20gdGhlIGRlZmF1bHQKKy8vICAgIGJyZWFrIGl0ZXJhdG9ycyBzdGlsbCBwYXNzIHRoZSBtb25rZXkgdGVzdCBmb3IgdGhlIGl0ZXJhdG9yIHR5cGUuCisvLworLy8gIFRoaXMgaXMgYSBtYWpvciB0ZXN0IGZvciB0aGUgUnVsZSBDb21waWxlci4gIFRoZSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9ycyBhcmUgYnVpbHQKKy8vICBmcm9tIHByZS1jb21waWxlZCBiaW5hcnkgcnVsZSBkYXRhIHRoYXQgd2FzIGNyZWF0ZWQgdXNpbmcgSUNVNEM7IHRoZXNlCisvLyAgcm91bmQtdHJpcCBydWxlIHJlY29tcGlsZSB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgSmF2YSBydWxlIGNvbXBpbGVyIGNhbgorLy8gIHJlYnVpbGQgYnJlYWsgaXRlcmF0b3JzIGZyb20gdGhlIG9yaWdpbmFsIHNvdXJjZSBydWxlcy4KKy8vCitwdWJsaWMgdm9pZCBUZXN0UlRDaGFyTW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gMjAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDIwMDA7CisgICAgfQorICAgIAorICAgIFJCQklDaGFyTW9ua2V5ICBtID0gbmV3IFJCQklDaGFyTW9ua2V5KCk7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIFN0cmluZyBydWxlcyA9IGJpLnRvU3RyaW5nKCk7CisgICAgQnJlYWtJdGVyYXRvciBydGJpID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMpOworICAgIFJ1bk1vbmtleShydGJpLCBtLCAiY2hhciIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RSVFdvcmRNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSAyMDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMjAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIldvcmQgQnJlYWsgTW9ua2V5IFRlc3QiKTsKKyAgICBSQkJJV29yZE1vbmtleSAgbSA9IG5ldyBSQkJJV29yZE1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgU3RyaW5nIHJ1bGVzID0gYmkudG9TdHJpbmcoKTsKKyAgICBCcmVha0l0ZXJhdG9yIHJ0YmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcyk7CisgICAgUnVuTW9ua2V5KHJ0YmksIG0sICJ3b3JkIiwgc2VlZCwgbG9vcENvdW50KTsKK30KKworcHVibGljIHZvaWQgVGVzdFJUTGluZU1vbmtleSgpIHsKKyAgICAKKyAgICBpbnQgICAgICAgIGxvb3BDb3VudCA9IDIwMDsKKyAgICBpbnQgICAgICAgIHNlZWQgICAgICA9IDE7CisgICAgCisgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPj0gOSkgeworICAgICAgICBsb29wQ291bnQgPSAyMDAwOworICAgIH0KKyAgICAKKyAgICBsb2dsbigiTGluZSBCcmVhayBNb25rZXkgVGVzdCIpOworICAgIFJCQklMaW5lTW9ua2V5ICBtID0gbmV3IFJCQklMaW5lTW9ua2V5KCk7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBTdHJpbmcgcnVsZXMgPSBiaS50b1N0cmluZygpOworICAgIEJyZWFrSXRlcmF0b3IgcnRiaSA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsKKyAgICBpZiAocGFyYW1zID09IG51bGwpIHsKKyAgICAgICAgbG9vcENvdW50ID0gNTA7CisgICAgfQorICAgIFJ1bk1vbmtleShydGJpLCBtLCAibGluZSIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RSVFNlbnRNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSAyMDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMTAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIlNlbnRlbmNlIEJyZWFrIE1vbmtleSBUZXN0Iik7CisgICAgUkJCSVNlbnRlbmNlTW9ua2V5ICBtID0gbmV3IFJCQklTZW50ZW5jZU1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIFN0cmluZyBydWxlcyA9IGJpLnRvU3RyaW5nKCk7CisgICAgQnJlYWtJdGVyYXRvciBydGJpID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMpOworICAgIGlmIChwYXJhbXMgPT0gbnVsbCkgeworICAgICAgICBsb29wQ291bnQgPSAzMDsKKyAgICB9CisgICAgUnVuTW9ua2V5KHJ0YmksIG0sICJzZW50Iiwgc2VlZCwgbG9vcENvdW50KTsKK30KKworCisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvU2ltcGxlQklUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9TaW1wbGVCSVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NjlkYjdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvU2ltcGxlQklUZXN0LmphdmEKQEAgLTAsMCArMSwyNjYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CisKKy8vIFRPRE86IHtkbGZ9IHRoaXMgdGVzdCBjdXJyZW50bHkgZG9lc24ndCB0ZXN0IGFueXRoaW5nIQorLy8gWW91J2xsIG5vdGljZSB0aGF0IHRoZSByZXNvdXJjZSB0aGF0IHVzZXMgdGhlIGRpY3Rpb25hcnkgaXNuJ3QgZXZlbiBvbiB0aGUgcmVzb3VyY2UgcGF0aCwKKy8vIHNvIHRoZSBkaWN0aW9uYXJ5IG5ldmVyIGdldHMgdXNlZC4gIEdvb2QgdGhpbmcsIHRvbywgYmVjYXVzZSBpdCB3b3VsZCB0aHJvdyBhIHNlY3VyaXR5CisvLyBleGNlcHRpb24gaWYgcnVuIHdpdGggYSBzZWN1cml0eSBtYW5hZ2VyLiAgTm90IHRoYXQgaXQgd291bGQgbWF0dGVyLCB0aGUgZGljdGlvbmFyeSAKKy8vIHJlc291cmNlIGlzbid0IGV2ZW4gaW4gdGhlIGljdSBzb3VyY2UgdHJlZSEKKy8vIEluIG9yZGVyIHRvIGZpeCB0aGlzOgorLy8gMSkgbWFrZSBzdXJlIGVuZ2xpc2guZGljdCBtYXRjaGVzIHRoZSBjdXJyZW50IGRpY3Rpb25hcnkgZm9ybWF0IHJlcXVpcmVkIGJ5IGRiYmkKKy8vIDIpIG1ha2Ugc3VyZSBlbmdsaXNoLmRpY3QgZ2V0cyBpbmNsdWRlZCBpbiBpY3U0anRlc3RzLmphcgorLy8gMykgaGF2ZSB0aGlzIHRlc3QgdXNlIGdldFJlc291cmNlQXNTdHJlYW0gdG8gZ2V0IGEgc3RyZWFtIG9uIHRoZSBkaWN0aW9uYXJ5LCBhbmQKKy8vICAgIGRpcmVjdGx5IGluc3RhbnRpYXRlIGEgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4gIEl0IGNhbiB1c2UgdGhlIHJ1bGVzIGZyb20KKy8vICAgIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIG9mIFJlc291cmNlQnVuZGxlX2VuX1VTX1RFU1QuICBJJ2Qgc3VnZ2VzdCBqdXN0IGNvcHlpbmcKKy8vICAgIHRoZSBydWxlcyBpbnRvIHRoaXMgZmlsZS4KKy8vIDQpIGNoYW5nZSB0aGUgdGVzdCB0ZXh0IGJ5IGluc2VydGluZyAnfCcgYXQgd29yZCBicmVha3MsIGFuZCAnfHwnIGF0IGxpbmUgYnJlYWtzLiAgCisvLyA1KSBwcm9jZXNzIHRoaXMgdGV4dCB0byBhKSBjcmVhdGUgdGFibGVzIG9mIGJyZWFrIGluZGljZXMsIGFuZCBiKSBjbGVhbiB1cCB0aGUgdGVzdAorLy8gICAgZm9yIHRoZSBicmVhayBpdGVyYXRvciB0byB3b3JrIG9uCisvLyAKKy8vIFRoaXMgd291bGQgTk9UIHRlc3QgdGhlIGFiaWxpdHkgdG8gbG9hZCBkaWN0aW9uYXJ5LWJhc2VkIGJyZWFrIGl0ZXJhdG9ycyB0aHJvdWdoIG91cgorLy8gbm9ybWFsIHJlc291cmNlIG1lY2hhbmlzbS4gIE9uZSBjb3VsZCBpbnN0YWxsIHN1Y2ggYSBicmVhayBpdGVyYXRvciBhbmQgaXRzCisvLyByZXNvdXJjZXMgaW50byB0aGUgaWN1NGogamFyLCBhbmQgaXQgd291bGQgd29yaywgYnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIHJlZ2lzdGVyIGVudGlyZQorLy8gcmVzb3VyY2VzIGZyb20gb3V0c2lkZSB5ZXQuICBFdmVuIGlmIHRoZXJlIHdlcmUsIHRoZSBhY2Nlc3MgcmVzdHJpY3Rpb25zIGFyZSBhIGJpdAorLy8gZGlmZmljdWx0IHRvIG1hbmFnZSwgaWYgb25lIHdhbnRlZCB0byByZWdpc3RlciBhIGJyZWFrIGl0ZXJhdG9yIHdob3NlIGNvZGUgYW5kIGRhdGEKKy8vIHJlc2lkZXMgb3V0c2lkZSB0aGUgaWN1NGogamFyLiAgU2luY2UgdGhlIGNvZGUgdG8gaW5zdGFudGlhdGUgd291bGQgYmUgZ29pbmcgdGhyb3VnaCAKKy8vIHR3byBwcm90ZWN0aW9uIGRvbWFpbnMsIGVhY2ggZG9tYWluIHdvdWxkIGhhdmUgdG8gYWxsb3cgYWNjZXNzIHRvIHRoZSBkYXRhLS0gYnV0IAorLy8gaWN1NGoncyBkb21haW4gd291bGRuJ3Qga25vdyBhYm91dCBvdXJzLiAgU28gd2UgY291bGQgaW5zdGFudGlhdGUgYmVmb3JlIHJlZ2lzdGVyaW5nCisvLyB0aGUgYnJlYWsgaXRlcmF0b3IsIGJ1dCB0aGlzIHdvdWxkIG1lYW4gd2UnZCBoYXZlIHRvIGZ1bGx5IGluaXRpYWxpemUgdGhlIGRpY3Rpb25hcnkocykKKy8vIGF0IGluc3RhbnRpYXRpb24gdGltZSwgcmF0aGVyIHRoYW4gbGV0IHRoaXMgYmUgZGVmZXJyZWQgdW50aWwgdGhleSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorLy8KKy8vIEkndmUgZG9uZSBpdGVtcyAyIGFuZCAzIGFib3ZlLiAgVW5mb3J0dW5hdGVseSwgc2luY2UgSSBoYXZlbid0IGRvbmUgaXRlbSAxLCB0aGUKKy8vIGRpY3Rpb25hcnkgYnVpbGRlciBjcmFzaGVzLiAgU28gZm9yIG5vdyBJJ20gZGlzYWJsaW5nIHRoaXMgdGVzdC4gIFRoaXMgaXMgbm90CisvLyB0aGF0IGltcG9ydGFudCwgc2luY2Ugd2UgaGF2ZSBhIHRoYWkgZGljdGlvbmFyeSB0aGF0IHdlIGRvIHRlc3QgdGhvcm91Z2hseS4KKy8vCisKK3B1YmxpYyBjbGFzcyBTaW1wbGVCSVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXN0VGV4dCA9CisvLyAgICAgICAgIlRoZSByYWluIGluIFNwYWluIHN0YXlzIG1haW5seSBvbiB0aGUgcGxhaW4uICBUaGUgcGxhaW5zIGluIFNwYWluIGFyZSBtYWlubHkgcGFpbmVkIHdpdGggcmFpbi4iOworLy8ib25lLXR3byBub3ctLSAgSGFoISAgWW91IG93ZSBtZSBleGFjdGx5ICQxLDM0NS42Ny4uLiAgUGF5IHVwLCBodWg/ICBCeSB0aGUgd2F5LCB3aHkgZG9uJ3QgSSBzZW5kIHlvdSBteSByZVx1MDMwMXN1bWVcdTAzMDE/ICBUaGlzIGlzIGEgbGluZVxyXG5icmVhay4iOworLy8ibm93aXN0aGV0aW1lZm9yYWxsZ29vZG1lbi4uLiAgdG9jb21ldG90aGVoZWxwb2Z0aGVpcmNvdW50cnkiOworIldoZW4sIGluIHRoZSBjb3Vyc2Ugb2YgaHVtYW4gZXZlbnRzLCBpdCBiZWNvbWVzIG5lY2Vzc2FyeSBmb3Igb25lIHBlb3BsZSB0byBkaXNzb2x2ZSB0aGUgcG9saXRpY2FsIGJvbmRzIHdoaWNoIGhhdmUgIgorLy8iV2hlbixpbnRoZWNvdXJzZW9maHVtYW5ldmVudHMsaXRiZWNvbWVzbmVjZXNzYXJ5Zm9yb25lcGVvcGxldG9kaXNzb2x2ZXRoZXBvbGl0aWNhbGJvbmRzd2hpY2hoYXZlIgorKyAiY29ubmVjdGVkdGhlbXdpdGhhbm90aGVyLGFuZHRvYXNzdW1lYW1vbmd0aGVwb3dlcnNvZnRoZWVhcnRoLHRoZXNlcGFyYXRlYW5kZXF1YWxzdGF0aW9udG93aGljaHRoZWxhd3MiCisrICJvZm5hdHVyZWFuZG9mbmF0dXJlJ3NHb2RlbnRpdGxldGhlbSxhZGVjZW50cmVzcGVjdHRvdGhlb3BpbmlvbnNvZm1hbmtpbmRyZXF1aXJlc3RoYXR0aGV5c2hvdWxkZGVjbGFyZXRoZSIKKysgImNhdXNlc3doaWNoaW1wZWx0aGVtdG90aGVzZXBhcmF0aW9uXG4iCisrICJXZWhvbGR0aGVzZXRydXRoc3RvYmVzZWxmLWV2aWRlbnQsdGhhdGFsbG1lbmFyZWNyZWF0ZWRlcXVhbCx0aGF0dGhleWFyZWVuZG93ZWRieXRoZWlyQ3JlYXRvcndpdGhjZXJ0YWluIgorKyAidW5hbGllbmFibGVyaWdodHMsdGhhdGFtb25ndGhlc2VhcmVsaWZlLGxpYmVydHlhbmR0aGVwdXJzdWl0b2ZoYXBwaW5lc3MuVGhhdHRvc2VjdXJldGhlc2VyaWdodHMsZ292ZXJubWVudHNhcmUiCisrICJpbnN0aXR1dGVkYW1vbmdtZW4sZGVyaXZpbmd0aGVpcmp1c3Rwb3dlcnNmcm9tdGhlY29uc2VudG9mdGhlZ292ZXJuZWQuVGhhdHdoZW5ldmVyYW55Zm9ybW9mZ292ZXJubWVudCIKKysgImJlY29tZXNkZXN0cnVjdGl2ZXRvdGhlc2VlbmRzLGl0aXN0aGVyaWdodG9mdGhlcGVvcGxldG9hbHRlcm9ydG9hYm9saXNoaXQsYW5kdG9pbnN0aXR1dGVuZXdnb3Zlcm5tZW50LGxheWluZyIKKysgIml0c2ZvdW5kYXRpb25vbnN1Y2hwcmluY2lwbGVzYW5kb3JnYW5pemluZ2l0c3Bvd2Vyc2luc3VjaGZvcm0sYXN0b3RoZW1zaGFsbHNlZW1tb3N0bGlrZWx5dG9lZmZlY3R0aGVpcnNhZmV0eSIKKysgImFuZGhhcHBpbmVzcy5QcnVkZW5jZSxpbmRlZWQsd2lsbGRpY3RhdGV0aGF0Z292ZXJubWVudHNsb25nZXN0YWJsaXNoZWRzaG91bGRub3RiZWNoYW5nZWRmb3JsaWdodGFuZHRyYW5zaWVudCIKKysgImNhdXNlczthbmRhY2NvcmRpbmdseWFsbGV4cGVyaWVuY2VoYXRoc2hvd250aGF0bWFua2luZGFyZW1vcmVkaXNwb3NlZHRvc3VmZmVyLHdoaWxlZXZpbHNhcmVzdWZmZXJhYmxlLHRoYW4iCisrICJ0b3JpZ2h0dGhlbXNlbHZlc2J5YWJvbGlzaGluZ3RoZWZvcm1zdG93aGljaHRoZXlhcmVhY2N1c3RvbWVkLkJ1dHdoZW5hbG9uZ3RyYWlub2ZhYnVzZXNhbmR1c3VycGF0aW9ucywiCisrICJwdXJzdWluZ2ludmFyaWFibHl0aGVzYW1lb2JqZWN0ZXZpbmNlc2FkZXNpZ250b3JlZHVjZXRoZW11bmRlcmFic29sdXRlZGVzcG90aXNtLGl0aXN0aGVpcnJpZ2h0LGl0aXN0aGVpcmR1dHksIgorKyAidG90aHJvd29mZnN1Y2hnb3Zlcm5tZW50LGFuZHRvcHJvdmlkZW5ld2d1YXJkc2ZvcnRoZWlyZnV0dXJlc2VjdXJpdHkuLS1TdWNoaGFzYmVlbnRoZXBhdGllbnRzdWZmZXJhbmNlb2YiCisrICJ0aGVzZWNvbG9uaWVzO2FuZHN1Y2hpc25vd3RoZW5lY2Vzc2l0eXdoaWNoY29uc3RyYWluc3RoZW10b2FsdGVydGhlaXJmb3JtZXJzeXN0ZW1zb2Znb3Zlcm5tZW50LlRoZWhpc3RvcnkiCisrICJvZnRoZXByZXNlbnRLaW5nb2ZHcmVhdEJyaXRhaW5pc2FoaXN0b3J5b2ZyZXBlYXRlZGluanVyaWVzYW5kdXN1cnBhdGlvbnMsYWxsaGF2aW5naW5kaXJlY3RvYmplY3R0aGUiCisrICJlc3RhYmxpc2htZW50b2ZhbmFic29sdXRldHlyYW5ueW92ZXJ0aGVzZXN0YXRlcy5Ub3Byb3ZldGhpcyxsZXRmYWN0c2Jlc3VibWl0dGVkdG9hY2FuZGlkd29ybGQuXG4iCisrICJIZWhhc3JlZnVzZWRoaXNhc3NlbnR0b2xhd3MsdGhlbW9zdHdob2xlc29tZWFuZG5lY2Vzc2FyeWZvcnRoZXB1YmxpY2dvb2QuXG4iCisrICJIZWhhc2ZvcmJpZGRlbmhpc2dvdmVybm9yc3RvcGFzc2xhd3NvZmltbWVkaWF0ZWFuZHByZXNzaW5naW1wb3J0YW5jZSx1bmxlc3NzdXNwZW5kZWRpbnRoZWlyb3BlcmF0aW9udGlsbCIKKysgImhpc2Fzc2VudHNob3VsZGJlb2J0YWluZWQ7YW5kd2hlbnNvc3VzcGVuZGVkLGhlaGFzdXR0ZXJseW5lZ2xlY3RlZHRvYXR0ZW5kdG90aGVtLlxuIgorKyAiSGVoYXNyZWZ1c2VkdG9wYXNzb3RoZXJsYXdzZm9ydGhlYWNjb21tb2RhdGlvbm9mbGFyZ2VkaXN0cmljdHNvZnBlb3BsZSx1bmxlc3N0aG9zZXBlb3BsZXdvdWxkcmVsaW5xdWlzaCIKKysgInRoZXJpZ2h0b2ZyZXByZXNlbnRhdGlvbmludGhlbGVnaXNsYXR1cmUsYXJpZ2h0aW5lc3RpbWFibGV0b3RoZW1hbmRmb3JtaWRhYmxldG90eXJhbnRzb25seS5cbiIKKysgIkhlaGFzY2FsbGVkdG9nZXRoZXJsZWdpc2xhdGl2ZWJvZGllc2F0cGxhY2VzdW51c3VhbCx1bmNvbWZvcnRhYmxlLGFuZGRpc3RhbnRmcm9tdGhlZGVwb3NpdG9yeW9mdGhlaXJwdWJsaWMiCisrICJyZWNvcmRzLGZvcnRoZXNvbGVwdXJwb3Nlb2ZmYXRpZ3Vpbmd0aGVtaW50b2NvbXBsaWFuY2V3aXRoaGlzbWVhc3VyZXMuXG4iCisrICJIZWhhc2Rpc3NvbHZlZHJlcHJlc2VudGF0aXZlaG91c2VzcmVwZWF0ZWRseSxmb3JvcHBvc2luZ3dpdGhtYW5seWZpcm1uZXNzaGlzaW52YXNpb25zb250aGVyaWdodHNvZnRoZXBlb3BsZS5cbiIKKysgIkhlaGFzcmVmdXNlZGZvcmFsb25ndGltZSxhZnRlcnN1Y2hkaXNzb2x1dGlvbnMsdG9jYXVzZW90aGVyc3RvYmVlbGVjdGVkO3doZXJlYnl0aGVsZWdpc2xhdGl2ZXBvd2VycywiCisrICJpbmNhcGFibGVvZmFubmloaWxhdGlvbixoYXZlcmV0dXJuZWR0b3RoZXBlb3BsZWF0bGFyZ2Vmb3J0aGVpcmV4ZXJjaXNlO3RoZXN0YXRlcmVtYWluaW5naW50aGVtZWFudGltZWV4cG9zZWQiCisrICJ0b2FsbHRoZWRhbmdlcnNvZmludmFzaW9uZnJvbXdpdGhvdXQsYW5kY29udnVsc2lvbnN3aXRoaW4uXG4iCisrICJIZWhhc2VuZGVhdm9yZWR0b3ByZXZlbnR0aGVwb3B1bGF0aW9ub2Z0aGVzZXN0YXRlcztmb3J0aGF0cHVycG9zZW9ic3RydWN0aW5ndGhlbGF3c2Zvcm5hdHVyYWxpemF0aW9ub2YiCisrICJmb3JlaWduZXJzO3JlZnVzaW5ndG9wYXNzb3RoZXJzdG9lbmNvdXJhZ2V0aGVpcm1pZ3JhdGlvbmhpdGhlcixhbmRyYWlzaW5ndGhlY29uZGl0aW9uc29mbmV3YXBwcm9wcmlhdGlvbnNvZiIKKysgImxhbmRzLlxuIgorKyAiSGVoYXNvYnN0cnVjdGVkdGhlYWRtaW5pc3RyYXRpb25vZmp1c3RpY2UsYnlyZWZ1c2luZ2hpc2Fzc2VudHRvbGF3c2ZvcmVzdGFibGlzaGluZ2p1ZGljaWFyeXBvd2Vycy5cbiIKKysgIkhlaGFzbWFkZWp1ZGdlc2RlcGVuZGVudG9uaGlzd2lsbGFsb25lLGZvcnRoZXRlbnVyZW9mdGhlaXJvZmZpY2VzLGFuZHRoZWFtb3VudGFuZHBheW1lbnRvZnRoZWlyc2FsYXJpZXMuXG4iCisrICJIZWhhc2VyZWN0ZWRhbXVsdGl0dWRlb2ZuZXdvZmZpY2VzLGFuZHNlbnRoaXRoZXJzd2FybXNvZm9mZmljZXJzdG9oYXJhc3NvdXJwZW9wbGUsYW5kZWF0b3V0dGhlaXIiCisrICJzdWJzdGFuY2UuXG4iCisrICJIZWhhc2tlcHRhbW9uZ3VzLGludGltZXNvZnBlYWNlLHN0YW5kaW5nYXJtaWVzd2l0aG91dHRoZWNvbnNlbnRvZm91cmxlZ2lzbGF0dXJlLlxuIgorKyAiSGVoYXNhZmZlY3RlZHRvcmVuZGVydGhlbWlsaXRhcnlpbmRlcGVuZGVudG9mYW5kc3VwZXJpb3J0b2NpdmlscG93ZXIuXG4iCisrICJIZWhhc2NvbWJpbmVkd2l0aG90aGVyc3Rvc3ViamVjdHVzdG9hanVyaXNkaWN0aW9uZm9yZWlnbnRvb3VyY29uc3RpdHV0aW9uLGFuZHVuYWNrbm93bGVkZ2VkYnlvdXJsYXdzOyIKKysgImdpdmluZ2hpc2Fzc2VudHRvdGhlaXJhY3Rzb2ZwcmV0ZW5kZWRsZWdpc2xhdGlvbjpcbiIKKysgIkZvcnF1YXJ0ZXJpbmdsYXJnZWJvZGllc29mYXJtZWR0cm9vcHNhbW9uZ3VzOlxuIgorKyAiRm9ycHJvdGVjdGluZ3RoZW0sYnltb2NrdHJpYWwsZnJvbXB1bmlzaG1lbnRmb3JhbnltdXJkZXJzd2hpY2h0aGV5c2hvdWxkY29tbWl0b250aGVpbmhhYml0YW50c29mdGhlc2UiCisrICJzdGF0ZXM6XG4iCisrICJGb3JjdXR0aW5nb2Zmb3VydHJhZGV3aXRoYWxscGFydHNvZnRoZXdvcmxkOlxuIgorKyAiRm9yaW1wb3Npbmd0YXhlc29udXN3aXRob3V0b3VyY29uc2VudDpcbiIKKysgIkZvcmRlcHJpdmluZ3VzaW5tYW55Y2FzZXMsb2Z0aGViZW5lZml0c29mdHJpYWxieWp1cnk6XG4iCisrICJGb3J0cmFuc3BvcnRpbmd1c2JleW9uZHNlYXN0b2JldHJpZWRmb3JwcmV0ZW5kZWRvZmZlbnNlczpcbiIKKysgIkZvcmFib2xpc2hpbmd0aGVmcmVlc3lzdGVtb2ZFbmdsaXNobGF3c2luYW5laWdoYm9yaW5ncHJvdmluY2UsZXN0YWJsaXNoaW5ndGhlcmVpbmFuYXJiaXRyYXJ5Z292ZXJubWVudCxhbmQiCisrICJlbmxhcmdpbmdpdHNib3VuZGFyaWVzc29hc3RvcmVuZGVyaXRhdG9uY2VhbmV4YW1wbGVhbmRmaXRpbnN0cnVtZW50Zm9yaW50cm9kdWNpbmd0aGVzYW1lYWJzb2x1dGVydWxlaW50aGVzZSIKKysgImNvbG9uaWVzOlxuIgorKyAiRm9ydGFraW5nYXdheW91cmNoYXJ0ZXJzLGFib2xpc2hpbmdvdXJtb3N0dmFsdWFibGVsYXdzLGFuZGFsdGVyaW5nZnVuZGFtZW50YWxseXRoZWZvcm1zb2ZvdXJnb3Zlcm5tZW50czpcbiIKKysgIkZvcnN1c3BlbmRpbmdvdXJvd25sZWdpc2xhdHVyZXMsYW5kZGVjbGFyaW5ndGhlbXNlbHZlc2ludmVzdGVkd2l0aHBvd2VydG9sZWdpc2xhdGVmb3J1c2luYWxsY2FzZXN3aGF0c29ldmVyLlxuIgorKyAiSGVoYXNhYmRpY2F0ZWRnb3Zlcm5tZW50aGVyZSxieWRlY2xhcmluZ3Vzb3V0b2ZoaXNwcm90ZWN0aW9uYW5kd2FnaW5nd2FyYWdhaW5zdHVzLlxuIgorKyAiSGVoYXNwbHVuZGVyZWRvdXJzZWFzLHJhdmFnZWRvdXJjb2FzdHMsYnVybmVkb3VydG93bnMsYW5kZGVzdHJveWVkdGhlbGl2ZXNvZm91cnBlb3BsZS5cbiIKKysgIkhlaXNhdHRoaXN0aW1ldHJhbnNwb3J0aW5nbGFyZ2Vhcm1pZXNvZmZvcmVpZ25tZXJjZW5hcmllc3RvY29tcGxldGV0aGV3b3Jrc29mZGVhdGgsZGVzb2xhdGlvbmFuZHR5cmFubnksIgorKyAiYWxyZWFkeWJlZ3Vud2l0aGNpcmN1bXN0YW5jZXNvZmNydWVsdHlhbmRwZXJmaWR5c2NhcmNlbHlwYXJhbGxlbGVkaW50aGVtb3N0YmFyYmFyb3VzYWdlcyxhbmR0b3RhbHl1bndvcnRoIgorKyAidGhlaGVhZG9mYWNpdmlsaXplZG5hdGlvbi5cbiIKKysgIkhlaGFzY29uc3RyYWluZWRvdXJmZWxsb3djaXRpemVuc3Rha2VuY2FwdGl2ZW9udGhlaGlnaHNlYXN0b2JlYXJhcm1zYWdhaW5zdHRoZWlyY291bnRyeSx0b2JlY29tZXRoZSIKKysgImV4ZWN1dGlvbmVyc29mdGhlaXJmcmllbmRzYW5kYnJldGhyZW4sb3J0b2ZhbGx0aGVtc2VsdmVzYnl0aGVpcmhhbmRzLlxuIgorKyAiSGVoYXNleGNpdGVkZG9tZXN0aWNpbnN1cnJlY3Rpb25zYW1vbmdzdHVzLGFuZGhhc2VuZGVhdm9yZWR0b2JyaW5nb250aGVpbmhhYml0YW50c29mb3VyZnJvbnRpZXJzLHRoZSIKKysgIm1lcmNpbGVzc0luZGlhbnNhdmFnZXMsd2hvc2Vrbm93bnJ1bGVvZndhcmZhcmUsaXN1bmRpc3Rpbmd1aXNoZWRkZXN0cnVjdGlvbm9mYWxsYWdlcyxzZXhlc2FuZGNvbmRpdGlvbnMuXG4iCisrICJJbmV2ZXJ5c3RhZ2VvZnRoZXNlb3BwcmVzc2lvbnN3ZWhhdmVwZXRpdGlvbmVkZm9ycmVkcmVzc2ludGhlbW9zdGh1bWJsZXRlcm1zOm91cnJlcGVhdGVkcGV0aXRpb25zaGF2ZSIKKysgImJlZW5hbnN3ZXJlZG9ubHlieXJlcGVhdGVkaW5qdXJ5LkFwcmluY2Usd2hvc2VjaGFyYWN0ZXJpc3RodXNtYXJrZWRieWV2ZXJ5YWN0d2hpY2htYXlkZWZpbmVhdHlyYW50LGlzIgorKyAidW5maXR0b2JldGhlcnVsZXJvZmFmcmVlcGVvcGxlLlxuIgorKyAiTm9yaGF2ZXdlYmVlbndhbnRpbmdpbmF0dGVudGlvbnRvb3VyQnJpdGlzaGJyZXRocmVuLldlaGF2ZXdhcm5lZHRoZW1mcm9tdGltZXRvdGltZW9mYXR0ZW1wdHNieXRoZWlyIgorKyAibGVnaXNsYXR1cmV0b2V4dGVuZGFudW53YXJyYW50YWJsZWp1cmlzZGljdGlvbm92ZXJ1cy5XZWhhdmVyZW1pbmRlZHRoZW1vZnRoZWNpcmN1bXN0YW5jZXNvZm91cmVtaWdyYXRpb24iCisrICJhbmRzZXR0bGVtZW50aGVyZS5XZWhhdmVhcHBlYWxlZHRvdGhlaXJuYXRpdmVqdXN0aWNlYW5kbWFnbmFuaW1pdHksYW5kd2VoYXZlY29uanVyZWR0aGVtYnl0aGV0aWVzb2ZvdXIiCisrICJjb21tb25raW5kcmVkdG9kaXNhdm93dGhlc2V1c3VycGF0aW9ucyx3aGljaCx3b3VsZGluZXZpdGFibHlpbnRlcnJ1cHRvdXJjb25uZWN0aW9uc2FuZGNvcnJlc3BvbmRlbmNlLldlIgorKyAibXVzdCx0aGVyZWZvcmUsYWNxdWllc2NlaW50aGVuZWNlc3NpdHksd2hpY2hkZW5vdW5jZXNvdXJzZXBhcmF0aW9uLGFuZGhvbGR0aGVtLGFzd2Vob2xkdGhlcmVzdG9mbWFua2luZCwiCisrICJlbmVtaWVzaW53YXIsaW5wZWFjZWZyaWVuZHMuXG4iCisrICJXZSx0aGVyZWZvcmUsdGhlcmVwcmVzZW50YXRpdmVzb2Z0aGVVbml0ZWRTdGF0ZXNvZkFtZXJpY2EsaW5HZW5lcmFsQ29uZ3Jlc3MsYXNzZW1ibGVkLGFwcGVhbGluZ3RvdGhlIgorKyAiU3VwcmVtZUp1ZGdlb2Z0aGV3b3JsZGZvcnRoZXJlY3RpdHVkZW9mb3VyaW50ZW50aW9ucyxkbyxpbnRoZW5hbWUsYW5kYnl0aGVhdXRob3JpdHlvZnRoZWdvb2RwZW9wbGVvZiIKKysgInRoZXNlY29sb25pZXMsc29sZW1ubHlwdWJsaXNoYW5kZGVjbGFyZSx0aGF0dGhlc2V1bml0ZWRjb2xvbmllc2FyZSxhbmRvZnJpZ2h0b3VnaHR0b2JlZnJlZWFuZGluZGVwZW5kZW50IgorKyAic3RhdGVzO3RoYXR0aGV5YXJlYWJzb2x2ZWRmcm9tYWxsYWxsZWdpYW5jZXRvdGhlQnJpdGlzaENyb3duLGFuZHRoYXRhbGxwb2xpdGljYWxjb25uZWN0aW9uYmV0d2VlbnRoZW1hbmR0aGUiCisrICJzdGF0ZW9mR3JlYXRCcml0YWluLGlzYW5kb3VnaHR0b2JldG90YWxseWRpc3NvbHZlZDthbmR0aGF0YXNmcmVlYW5kaW5kZXBlbmRlbnRzdGF0ZXMsdGhleWhhdmVmdWxscG93ZXJ0byIKKysgImxldmV5d2FyLGNvbmNsdWRlcGVhY2UsY29udHJhY3RhbGxpYW5jZXMsZXN0YWJsaXNoY29tbWVyY2UsYW5kdG9kb2FsbG90aGVyYWN0c2FuZHRoaW5nc3doaWNoaW5kZXBlbmRlbnQiCisrICJzdGF0ZXNtYXlvZnJpZ2h0ZG8uQW5kZm9ydGhlc3VwcG9ydG9mdGhpc2RlY2xhcmF0aW9uLHdpdGhhZmlybXJlbGlhbmNlb250aGVwcm90ZWN0aW9ub2ZEaXZpbmVQcm92aWRlbmNlLHdlIgorKyAibXV0dWFsbHlwbGVkZ2V0b2VhY2hvdGhlcm91cmxpdmVzLG91cmZvcnR1bmVzYW5kb3Vyc2FjcmVkaG9ub3IuXG4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBTaW1wbGVCSVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkgeworICAgICAgICAvLyBUT0RPOiByZW1vdmUgd2hlbiBlbmdsaXNoLmRpY3QgZ2V0cyBmaXhlZAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGNyZWF0ZVRlc3RJdGVyYXRvcihpbnQga2luZCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgYm5hbWUgPSAiY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaS5CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVCI7CisKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gbnVsbDsKKworICAgICAgICBMaXN0UmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoYm5hbWUpOworICAgICAgICAgICAgYnVuZGxlID0gKExpc3RSZXNvdXJjZUJ1bmRsZSljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIGJ1bmRsZTogIiArIGJuYW1lICsgImV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGtpbmROYW1lcyA9IHsKKyAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAiV29yZCIsICJMaW5lIiwgIlNlbnRlbmNlIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgcnVsZXNOYW1lID0ga2luZE5hbWVzW2tpbmRdICsgIkJyZWFrUnVsZXMiOworICAgICAgICBTdHJpbmcgZGljdGlvbmFyeU5hbWUgPSBraW5kTmFtZXNba2luZF0gKyAiQnJlYWtEaWN0aW9uYXJ5IjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGNsYXNzTmFtZXMgPSBidW5kbGUuZ2V0U3RyaW5nQXJyYXkoIkJyZWFrSXRlcmF0b3JDbGFzc2VzIik7CisgICAgICAgIFN0cmluZyBydWxlcyA9IGJ1bmRsZS5nZXRTdHJpbmcocnVsZXNOYW1lKTsKKyAgICAgICAgaWYgKGNsYXNzTmFtZXNba2luZF0uZXF1YWxzKCJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIikpIHsKKyAgICAgICAgICAgIGl0ZXIgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoY2xhc3NOYW1lc1traW5kXS5lcXVhbHMoIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiKSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGljdGlvbmFyeVBhdGggPSBidW5kbGUuZ2V0U3RyaW5nKGRpY3Rpb25hcnlOYW1lKTsKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBkaWN0aW9uYXJ5ID0gYnVuZGxlLmdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShkaWN0aW9uYXJ5UGF0aCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsb29raW5nIGZvciAiICsgZGljdGlvbmFyeVBhdGggKyAiIGZyb20gIiArIGJ1bmRsZS5nZXRDbGFzcygpICsgIiByZXR1cm5lZCAiICsgZGljdGlvbmFyeSk7CisgICAgICAgICAgICAgICAgaXRlciA9IG5ldyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzLCBkaWN0aW9uYXJ5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7IC8vIGRlYnVnCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7IC8vIGRlYnVnCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgaXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGl0ZXI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3RXb3JkQnJlYWsoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB3b3JkQnJlYWsgPSBjcmVhdGVUZXN0SXRlcmF0b3IoQnJlYWtJdGVyYXRvci5LSU5EX1dPUkQpOworICAgICAgICBpbnQgYnJlYWtzID0gZG9UZXN0KHdvcmRCcmVhayk7CisgICAgICAgIGxvZ2xuKFN0cmluZy52YWx1ZU9mKGJyZWFrcykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RMaW5lQnJlYWsoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBsaW5lQnJlYWsgPSBjcmVhdGVUZXN0SXRlcmF0b3IoQnJlYWtJdGVyYXRvci5LSU5EX0xJTkUpOworICAgICAgICBpbnQgYnJlYWtzID0gZG9UZXN0KGxpbmVCcmVhayk7CisgICAgICAgIGxvZ2xuKFN0cmluZy52YWx1ZU9mKGJyZWFrcykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTZW50ZW5jZUJyZWFrKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEJyZWFrSXRlcmF0b3Igc2VudGVuY2VCcmVhayA9IGNyZWF0ZVRlc3RJdGVyYXRvcihCcmVha0l0ZXJhdG9yLktJTkRfU0VOVEVOQ0UpOworICAgICAgICBpbnQgYnJlYWtzID0gZG9UZXN0KHNlbnRlbmNlQnJlYWspOworICAgICAgICBsb2dsbihTdHJpbmcudmFsdWVPZihicmVha3MpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBkb1Rlc3QoQnJlYWtJdGVyYXRvciBiaSkgeworICAgICAgICAvLyBmb3J3YXJkCisgICAgICAgIGJpLnNldFRleHQodGVzdFRleHQpOworICAgICAgICBpbnQgcCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgIFN0cmluZyBmcmFnbWVudDsKKyAgICAgICAgaW50IGJyZWFrcyA9IDA7CisgICAgICAgIGxvZ2xuKCJGb3J3YXJkLi4uIik7CisgICAgICAgIHdoaWxlIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgcCA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGZyYWdtZW50ID0gdGVzdFRleHQuc3Vic3RyaW5nKGxhc3RQLCBwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQgPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVidWdQcmludGxuKCI6ID4iICsgZnJhZ21lbnQgKyAiPCIpOworICAgICAgICAgICAgKyticmVha3M7CisgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJyZWFrczsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZGVidWdQcmludGxuKFN0cmluZyBzKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyB6ZXJvcyA9ICIwMDAwIjsKKyAgICAgICAgU3RyaW5nIHRlbXA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49ICcgJyAmJiBjIDwgJ1x1MDA3ZicpCisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChjKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpYyk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh6ZXJvcy5zdWJzdHJpbmcoMCwgNCAtIHRlbXAubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHRlbXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKG91dC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZGVidWdQcmludGxuMihTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnXHUwMTAwJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8IiArICgoaW50KWMgLSAweDEwMCkgKyAiPiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3Njc1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAvLyBEaXNhYmxlZCBmb3Igbm93OyBzZWUgY29tbWVudCBpbiBTaW1wbGVCSVRlc3QgZm9yIGRldGFpbHMKKyAgICAgICAgICAgICAgICAgIC8vICJTaW1wbGVCSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkJyZWFrSXRlcmF0b3JUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdCIsCisgICAgICAgICAgICAgICAgICAiUkJCSUFQSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkJyZWFrSXRlcmF0b3JSZWdUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdEV4dGVuZGVkIiwKKyAgICAgICAgICAgICAgICAgICJSQkJJVGVzdE1vbmtleSIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIiBCcmVha0l0ZXJhdG9yIGFuZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIFRlc3RzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiUkJCSSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjI0NjhhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9yYmJpdHN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDc5M2MwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQKQEAgLTAsMCArMSw1MzkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBSQkJJIFRlc3QgRGF0YQorIworIyAgIEZpbGU6ICByYmJpdHN0LnR4dAorIworIyAgICAgVGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgbG9va3MgdmFndWVseSBsaWtlIHNvbWUga2luZCBvZiB4bWwtaXNoIG1hcmt1cCwKKyMgICAgIGJ1dCBpdCBpcyBOT1QuICBUaGUgc3ludGF4IGlzIHRoaXMuLgorIworIyAgIDx3b3JkPiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIHdvcmQgYnJlYWsgdGVzdGluZworIyAgIDxzZW50PiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIHNlbnRlbmNlIGJyZWFrIHRlc3RpbmcKKyMgICA8bGluZT4gICAgYW55IGZvbGxvd2luZyBkYXRhIGlzIGZvciBsaW5lIGJyZWFrIHRlc3RpbmcKKyMgICA8Y2hhcj4gICAgYW55IGZvbGxvd2luZyBkYXRhIGlzIGZvciBjaGFyIGJyZWFrIHRlc3RpbmcKKyMgICA8bG9jYWxlIGxvY2FsX25hbWU+ICBTd2l0Y2ggdG8gdGhlIG5hbWVkIGxvY2FsZSBhdCB0aGUgbmV4dCBvY2N1cmVuY2Ugb2YgPHdvcmQ+LCA8c2VudD4sIGV0Yy4KKyMgICA8ZGF0YT4gLi4uIDwvZGF0YT4gICB0ZXN0IGRhdGEuICBNYXkgc3BhbiBtdWx0aXBsZSBsaW5lcy4KKyMgICAgICA8PiAgICAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSAwCisjICAgICAg4oCiICAgICAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSAwICAgKEJ1bGxldCwgXHUyMDIyKSAKKyMgICAgICA8bm5uPiAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSBubm4KKyMgICAgICBcICAgICAgICAgRXNjYXBlLiAgTm9ybWFsIElDVSB1bmVzY2FwZSBhcHBsaWVkLiAgCisjICAgICAgXCBhdCBlbmQgb2YgbGluZSAgLT4gIExpbmUgQ29udGludWF0aW9uLiAgUmVtb3ZlIGJvdGggdGhlIGJhY2tzbGFzaCBhbmQgdGhlIG5ldyBsaW5lCisjICAgCisjCisKKworIyAgIFRlbXAgZGVidWdnaW5nIHRlc3RzIAorPHNlbnQ+Cis8ZGF0YT7igKIgIChUaGlzIGlzIGl0KS4gIOKAolRlc3RpbmcgdGhlIHNlbnRlbmNlIGl0ZXJhdG9yLiDigKJcCisiVGhpcyBpc24ndCBpdC4iIOKAokhpISBcCivigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiKFRoaXMgaXMgaXQuKSDigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiXAorIlRoaXMgaXNuJ3QgaXQuIiDigKJcCitIaSEg4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAokl0IGRvZXMgbm90IGhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UgYXMgeW91IGNhbiBzZWUuIOKAok5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiDigKJDaGUgbGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiDigKJIZSBzYWlkLCB0aGF0IEkgc2FpZCwgdGhhdCB5b3Ugc2FpZCEhIOKAokRvbid0IHJvY2sgdGhlIGJvYXQuXHUyMDI54oCiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuIAor4oCiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEg4oCiPC9kYXRhPgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjCisjICAgICAgIEcgciBhIHAgaCBlIG0gZSAgICBDIGwgdSBzIHQgZSByICAgICBUIGUgcyB0IHMKKyMKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworPGNoYXI+CisKKzxkYXRhPuKAomHigKJi4oCiY+KAoiDigKIs4oCiXHUwNjY24oCiPC9kYXRhPiAgICAgICAgICAgICAgICAgIyBRdWljayBUZXN0Cis8ZGF0YT7igKJccuKAolxy4oCiXHJcbuKAolxyXG7igKJcbuKAolxy4oCiPC9kYXRhPiAgICAgICAgICAgICMgZG9uJ3QgYnJlYWsgQ1IvTEYKKworIyBBbHdheXMgYnJlYWsgYWZ0ZXIgY29udHJvbHMuICBDb21iaW5pbmcgY2hhcnMgZG9uJ3QgY29tYmluZSB3aXRoIHRoZW0uCis8ZGF0YT7igKJcdTAwMDPigKJcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfeKAolxy4oCiXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH3igKI8L2RhdGE+Cis8ZGF0YT7igKJcdTAwODXigKJcTntDT01CSU5JTkcgTUFDUk9OfeKAokFcTntDT01CSU5JTkcgTUFDUk9OfeKAojwvZGF0YT4KKworIyBTdXJyb2dhdGVzCis8ZGF0YT7igKJcVTAwMDExMDAw4oCiXFUwMDAxMDAyMOKAolxVMDAwMTAwMDBcTntDT01CSU5JTkcgTUFDUk9OfeKAojwvZGF0YT4KKzxkYXRhPuKAolx1ZDgwMFx1ZGMwMOKAolx1ZGJmZlx1ZGZmZuKAomHigKI8L2RhdGE+CisKKyMgRXh0ZW5kIChDb21iaW5pbmcgY2hhcnMpIGNvbWJpbmUuCis8ZGF0YT7igKJBXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH3igKJC4oCiPC9kYXRhPgorPGRhdGE+4oCiXE57R1JFRUsgU01BTEwgTEVUVEVSIE1VfVxOe0NPTUJJTklORyBMT1cgTElORX1cTntDT01CSU5JTkcgSE9STn3igKI8L2RhdGE+Cis8ZGF0YT7igKJhXHUwMzAx4oCiYlx1MDMwMuKAomNcdTAzMDPigKJkXHUwMzA04oCiZVx1MDMwNeKAomZcdTAzMDbigKJnXHUwMzA34oCiaFx1MDMwOOKAomlcdTAzMDnigKI8L2RhdGE+CisKKzxkYXRhPuKAomFcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDTigKI8L2RhdGE+CisKKyMgRG9uJ3QgYnJlYWsgSGFuZ3VsIFN5bGxhYmxlcworIyAgIEwgOiBcdTExMDAKKyMgICBWIDogXHUxMTYxCisjICAgVCA6IFx1MTFBOAorIyAgTFYgOiBcdUFDMDAKKyMgTFZUIDogXHVBQzAxCisKKzxkYXRhPuKAolx1MTEwMFx1MTE2MVx1MTFhOOKAolx1MTEwMFx1MTE2MVx1MTFhOOKAojwvZGF0YT4gICNMVlQKKzxkYXRhPuKAolx1MTEwMFx1MTE2MeKAolx1MTEwMFx1MTE2MeKAojwvZGF0YT4gCis8ZGF0YT7igKJcdTExMDBcdTExNjFcdTExYTjigKJcdTExNjHigKJcdTExMDDigKJcdTExYTjigKJcdTExNjFcdTExNjFcdTExNjFcdTExYTjigKI8L2RhdGE+Cis8ZGF0YT7igKJcdTExMDBcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDFcdTAzMDHigKJcdWFjMDHigKI8L2RhdGE+Cis8ZGF0YT7igKJcdTExMDBcdTAzMDHigKJcdTExNjFcdTExYThcdTAzMDHigKJcdTExYTjigKI8L2RhdGE+CisKKworCisjIEhpbmRpIGNvbWJpbmluZyBjaGFycy4gIChBbiBvbGQgdGVzdCkKKzxkYXRhPuKAouCkreKAouKAouCkvuKAolx1MDkzMOKAolx1MDkyNOKAoiDigKJcdTA5MzhcdTA5NDFcdTA5MDLigKJcdTA5MjbigKJcdTA5MzDigKIKK+KAolx1MDkzOeKAolx1MDk0Y+KAolx1MDk2NOKAojwvZGF0YT4KKzxkYXRhPuKAolx1MDkxNlx1MDk0N+KAolx1MDkzOFx1MDk0MVx1MDkwMuKAolx1MDkyNuKAolx1MDkzMOKAolx1MDkzOeKAolx1MDk0Y+KAolx1MDk2NOKAojwvZGF0YT4KKworCisjICBCdWcgMTU4Ny4gIFRhbWlsLiAgXHUwYmFhXHUwYmMxIHNob3VsZCBiZSB0d28gc2VwYXJhdGUgY2hhcmFjdGVycywgZXZlbiB0aG91Z2gKKyMgICAgICAgICAgICAgICAgICAgICBIeWFuZ21pIHdvdWxkIHBlcmZlciB0aGF0IGl0IGJlIG9uZS4KKzxkYXRhPuKAolx1MGJhYeKAolx1MGJjMeKAolx1MGJhYeKAolx1MGJjMeKAojwvZGF0YT4KKworIyAgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnIDE4ODkKKzxkYXRhPuKAolx1MGY0MFx1MGY3ZOKAolx1MDAwMOKAolx1MGY3ZeKAojwvZGF0YT4KKworCisjICAgICAweGZmZmYgaXMgYSBsZWdhbCBjaGFyYWN0ZXIsIGFuZCBzaG91bGQgbm90IHN0b3AgdGhlIGJyZWFrIGl0ZXJhdG9yIGVhcmx5LgorIyAgICAgKFJlcXVpcmVzIHNwZWNpYWwgY2FzaW5nIGluIGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyB3aHkgaXQgZ2V0cyBhIHRlc3QuKQorPGRhdGE+4oCiXHVmZmZm4oCiXHVmZmZm4oCiIOKAomHigKI8L2RhdGE+CisKKyMgIFRyZWF0IEphcGFuZXNlIEhhbGYgV2lkdGggdm9pY2luZyBtYXJrcyBhcyBjb21iaW5pbmcKKzxkYXRhPuKAokFcdWZmOWXigKJCXHVmZjlmXHVmZjllXHVmZjlm4oCiQ+KAojwvZGF0YT4KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIworIyAgICAgICBXIG8gciBkICAgIEIgbyB1IG4gZCBhIHIgeSAgICAgIFQgZSBzIHQgcworIworIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKzx3b3JkPgorIworIyBRdWljayBzYW5pdHkgdGVzdAorIworPGRhdGE+4oCiaGVsbG88MjAwPiDigKJ0aGVyZTwyMDA+IOKAomdvb2RieWU8MjAwPjwvZGF0YT4KKzxkYXRhPuKAomhlbGxvPDIwMD4g4oCiMTIzNDU8MTAwPiDigKIs4oCiPC9kYXRhPgorCisKKyMKKyMgVGVzdCBkYXRhIG9yaWdpbmFsbHkgaW4gUkJCSUFQSVRlc3Q6OlRlc3RGaXJzdE5leHRGb2xsb3dpbmcoKSBhbmQgVGVzdExhc3RQcmV2aW91c1ByZWNlZGluZygpCisjCisKKzx3b3JkPgorPGRhdGE+4oCiVGhpczwyMDA+IOKAomlzPDIwMD4g4oCiYTwyMDA+IOKAondvcmQ8MjAwPiDigKJicmVhazwyMDA+LuKAoiDigKIg4oCiSXNuJ3Q8MjAwPiDigKJpdDwyMDA+P+KAoiDigKIyLjI1PDEwMD48L2RhdGE+CisKKworCisjCisjIERhdGEgb3JpZ2luYWxseSBmcm9tIFRlc3REZWZhdWx0UnVsZUJhc2VkV29yZEl0ZXJhdGlvbigpCisjCis8ZGF0YT7igKJXcml0ZTwyMDA+IOKAondvcmRydWxlczwyMDA+LuKAoiDigKIxMjMuNDU2PDEwMD4g4oCiYWxwaGFcdTAwYWRiZXRhXHUwMGFkZ2FtbWE8MjAwPiDigKJcdTA5MmZcdTA5Mzk8MjAwPiDigKI8L2RhdGE+Cis8ZGF0YT7igKIg4oCiXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUyMDBkXHUwOTI2XHUwOTQwPDIwMD4g4oCiXHUwOTM5XHUwOTQ4PDIwMD4g4oCiXHUwOTA1XHUwOTNlXHUwOTJhPDIwMD4g4oCiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3PDIwMD4/4oCiPC9kYXRhPgorCisjSGluZGkgTnVtYmVycworPGRhdGE+4oCiIOKAolx1MDk2OFx1MDk2Ni5cdTA5NjlcdTA5NmY8MTAwPiDigKJcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2PDEwMD4g4oCiXE57UlVQRUUgU0lHTn3igKJcdTA5NjcsXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NjwxMDA+IOKAoiDigKJcdTA5MDVcdTA5MmVcdTA5MWM8MjAwPlxu4oCiPC9kYXRhPgorCis8ZGF0YT7igKJcdTA5MzhcdTA5NGRcdTIwMGRcdTA5MzVcdTA5MjRcdTA5MDJkZWFkVEFcdTA5MzA8MjAwPlxy4oCiSXQnczwyMDA+IOKAoiTigKIzMC4xMDwxMDA+IOKAojEyLDM0PDEwMD7CouKAosKj4oCiwqTigKLCpeKAomFscGhhXHUwNWYzYmV0YVx1MDVmNGdhbW1hPDIwMD4g4oCiPC9kYXRhPgorCis8ZGF0YT7igKJCYWRnZXM8MjAwPj/igKIg4oCiQkFER0VTPDIwMD4h4oCiP+KAoiHigKIg4oCiV2U8MjAwPiDigKJkb24ndDwyMDA+IOKAom5lZWQ8MjAwPiDigKJubzwyMDA+IOKAolNUSU5LSU5HPDIwMD4g4oCiQkFER0VTPDIwMD4h4oCiIeKAojEwMDAsMjMzLDQ1Ni4wMDA8MTAwPiDigKIxLDIzLjMyMjwxMDA+JeKAojEyMy4xMjIyPDEwMD4k4oCiMTIzLDAwMC4yMDwxMDA+IOKAojE3OS4wMTwxMDA+JeKAolg8MjAwPiDigKJOb3c8MjAwPlxy4oCiaXM8MjAwPlxu4oCidGhlPDIwMD5cclxu4oCidGltZTwyMDA+IOKAojwvZGF0YT4KKworI0hhbmd1bAorPGRhdGE+4oCiXHVjNWYwXHVkNTY5PDIwMD4g4oCiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjPDIwMD4g4oCiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjPDIwMD4g4oCiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiPDIwMD4g4oCiSGVsbG88MjAwPizigKIg4oCiaG93PDIwMD4g4oCiYXJlPDIwMD4g4oCieW91PDIwMD4g4oCiPC9kYXRhPgorCisKKyMgV29yZHMgY29udGFpbmluZyBub24tQk1QIGxldHRlcnMKKzxkYXRhPuKAomFiY1xVMDAwMTAzMDA8MjAwPiDigKJhYmNcTntERVNFUkVUIFNNQUxMIExFVFRFUiBFTkd9PDIwMD4g4oCiYWJjXE57TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWn08MjAwPiDigKJhYmNcTntNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBQSSBTWU1CT0x9PDIwMD4g4oCiPC9kYXRhPgorCisjIFVuYXNzaWduZWQgY29kZSBwb2ludHMKKzxkYXRhPuKAomFiYzwyMDA+XFUwMDAxRDgwMOKAomRlZjwyMDA+XFUwMDAxRDNGRuKAoiDigKI8L2RhdGE+CisKKyMgSGlyYWdhbmEgJiBLYXRha2FuYSBzdGF5IHRvZ2V0aGVyLCBidXQgc2VwYXJhdGVzIGZyb20gZWFjaCBvdGhlciBhbmQgTGF0aW4uCis8ZGF0YT7igKJhYmM8MjAwPlxOe0hJUkFHQU5BIExFVFRFUiBTTUFMTCBBfTwzMDA+XE57SElSQUdBTkEgTEVUVEVSIFZVfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9PDMwMD5cTntISVJBR0FOQSBJVEVSQVRJT04gTUFSS308MzAwPlxOe0tBVEFLQU5BIExFVFRFUiBTTUFMTCBBfVxOe0tBVEFLQU5BIElURVJBVElPTiBNQVJLfVxOe0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV099XE57SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOfTwzMDA+ZGVmPDIwMD4j4oCiPC9kYXRhPgorCisjIFdvcmRzIHdpdGggaW50ZXJpb3IgZm9ybWF0dGluZyBjaGFyYWN0ZXJzCis8ZGF0YT7igKJkZWZcTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfVxOe1NZUklBQyBBQkJSRVZJQVRJT04gTUFSS31naGk8MjAwPiDigKI8L2RhdGE+CisgICAgCisjIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5Nzc3OQorPGRhdGE+4oCiYWFcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfWE8MjAwPiDigKI8L2RhdGE+CisKKworIyAgICAgIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5ODQ2NworIyAgICAgIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisjICAgICAgYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyMgICAgICBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyMgICAgICBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorIyAgICAgIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorPGRhdGE+4oCiXHVjMGMxXHVkNTZkPDIwMD4g4oCiXHVkNTVjXHVjNzc4PDIwMD4g4oCiXHVjNWYwXHVkNTY5PDIwMD4g4oCiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjPDIwMD4g4oCiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjPDIwMD4g4oCiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiPDIwMD4g4oCiXHUxMTBiXHUxMTY3XHUxMWFiXHUxMTEyXHUxMTYxXHUxMWI4PDIwMD4g4oCiXHUxMTBjXHUxMTYxXHUxMWJjXHUxMTA1XHUxMTY5XHUxMTAwXHUxMTZkXHUxMTEyXHUxMTZjPDIwMD4g4oCiPC9kYXRhPgorCis8ZGF0YT7igKJhYmM8MjAwPlx1NGUwMTw0MDA+XHU0ZTAyPDQwMD5cdTMwMDU8MjAwPlx1NGUwMzw0MDA+XHU0ZTAzPDQwMD5hYmM8MjAwPiDigKI8L2RhdGE+CisKKzxkYXRhPuKAolx1MDZjOVx1Yzc5OVx1ZmZmYTwyMDA+PC9kYXRhPgorCisjICAgICAgCisjICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgCisKKyMgICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgICAgICBHcmVlaywgQ3lyaWxsaWMsIEhlYnJldywgQXJhYmljLCBBcmFiaWMsIEdlb3JnaWFuLCBMYXRpbgorIyAgICAgIAorPGRhdGE+4oCizpHOks6TPDIwMD4g4oCi0JHQktCTPDIwMD4g4oCi15DXkdeS1pM8MjAwPiDigKLYp9io2Ko8MjAwPiDigKLZodmi2aM8MTAwPiDigKJcdTEwQTBcdTEwQTFcdTEwQTI8MjAwPiDigKJBQkM8MjAwPiDigKI8L2RhdGE+CisKKzxkYXRhPuKAolx1MDMwMeKAokE8MjAwPjwvZGF0YT4KKworCisjCisjICBIaW5kaSB3b3JkIGJyZWFrIHRlc3RzLCBpbXBvcnRlZCBmcm9tIHRoZSBvbGQgUkJCSSB0ZXN0cy4KKyMgICAgQW4gaGlzdG9yaWNhbCBub3RlOiAgYSBtdWNoIGVhcmxpZXIgdmVyc2lvbiBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzIGhhZCBhIG51bWJlcgorIyAgICBvZiBzcGVjaWFsIGNhc2UgcnVsZXMgZm9yIEhpbmRpLCB3aGljaCB3ZXJlIHRlc3RlZCBieSBhbiBlYXJsaWVyIHZlcnNpb24gb2YKKyMgICAgdGhpcyB0ZXN0IGRhdGEuICBUaGUgY3VycmVudCBSQkJJIHJ1bGVzIGRvIG5vdCBzcGVjaWFsIGNhc2UgSGluZGkgaW4gCisjICAgIGFueSB3YXksIG1ha2luZyB0aGlzIHRlc3QgZGF0YSBtdWNoIGxlc3Mgc2lnbmZpZmljYW50LgorIworPGRhdGE+4oCiXHUwOTE3XHUwOTJhXHUwMGFkXHUwOTM2XHUwOTJhPDIwMD4h4oCiXHUwOTJmXHUwOTM5PDIwMD4g4oCiXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUyMDBkXHUwOTI2XHUwOTQwPDIwMD4g4oCiXHUwOTM5XHUwOTQ4PDIwMD4g4oCiXHUwOTA1XHUwOTNlXHUwOTJhPDIwMD4g4oCiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3PDIwMD4/4oCiXG7igKI64oCiXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNlXHUwOTJmXHUwOTAzPDIwMD4KK+KAolx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZTwyMDA+XHJcbuKAolx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkxNVx1MDkzZVx1MDkzNjwyMDA+LOKAolx1MDkyNFx1MDk0MVx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0YjwyMDA+IOKAolx1MDkyZVx1MDkzZlx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkxNVx1MDkzZTwyMDA+IOKAolx1MDkyYVx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkyYVx1MDk1ZFx1MDk0YjwyMDA+IOKAolx1MDkzOFx1MDk0ZFx1MDkyNFx1MDk0ZFx1MDkzMFx1MDkzZjwyMDA+LuKAoiDigKJcdTA5NjhcdTA5NjYuXHUwOTY5XHUwOTZmPDEwMD4g4oCiXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NjwxMDA+XHUyMGE44oCiXHUwOTY3LFx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjY8MTAwPiDigKJcdTA5MDVcdTA5MmVcdTA5MWM8MjAwPlxu4oCiXHUwOTM4XHUwOTRkXHUyMDBkXHUwOTM1XHUwOTI0XHUwOTAyXHUwOTI0XHUwOTRkXHUwOTMwPDIwMD5ccuKAojwvZGF0YT4KKworIworIyAgRmFpbHVyZXMgZnJvbSBtb25rZXkgdGVzdHMKKyMKKzxkYXRhPuKAolx1ODUyNzw0MDA+XHUwMmJhPDIwMD5cdTAwMjdcdTBkNDLigKJcdTAwYjfigKJcdTA5ZWE8MTAwPjwvZGF0YT4KKworIworIyBKaXR0ZXJidWcgNTI3NiAtIHRyZWF0IEphcGFuZXNlIGhhbGYgd2lkdGggdm9pY2luZyBtYXJrcyBhcyBHcmFwaGVtZSBFeHRlbmQKKyMKKzxkYXRhPuKAokFcdWZmOWVcdWZmOWZCQzwyMDA+IOKAojFcdWZmOWVcdWZmOWYyMzwxMDA+PC9kYXRhPgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjCisjICAgICAgIFMgZSBuIHQgZSBuIGMgZSAgICAgQiBvIHUgbiBkIGEgciB5ICAgICAgVCBlIHMgdCBzCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCisjCisjIFRlc3QgZGF0YSBvcmlnaW5hbGx5IGZyb20gUkJCSSBSQkJJVGVzdDo6VGVzdERlZmF1bHRSdWxlQmFzZWRTZW50ZW5jZUl0ZXJhdGlvbigpCisjCis8c2VudD4KKworCis8c2VudD4KKzxkYXRhPuKAolRoaXNcbjwxMDA+PC9kYXRhPgorPGRhdGE+4oCiSGVsbG8hIOKAomhvdyBhcmUgeW91PyDigKJJJ2FtIGZpbmUuIOKAolRoYW5reW91LiDigKJIb3cgYXJlIHlvdSBcCitkb2luZz8g4oCiVGhpc1xuPDEwMD4gY29zdHMgJDIwLDAwLDAwMC4g4oCiPC9kYXRhPgorCisKKyMgU2VudGVuY2UgZW5kaW5nIGluIGEgcXVvdGUuCis8ZGF0YT7igKIiU2VudGVuY2UgZW5kaW5nIHdpdGggYSBxdW90ZS4iIOKAokJ5ZS7igKI8L2RhdGE+CisKKyMgU2VudGVuY2UsIGFuZCB0ZXN0IGRhdGEsIGVuZGluZyB3aXRob3V0IGEgcGVyaW9kIG9yIG90aGVyIHRlcm1pbmF0b3IuCis8ZGF0YT7igKJIZXJlIGlzIGEgcmFuZG9tIHNlbnRlbmNlLCBubyBlbmRpbmcgcGVyaW9kPDEwMD48L2RhdGE+CisKKworPGRhdGE+4oCiICAoVGhpcyBpcyBpdCkuICDigKJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4g4oCiXAorIlRoaXMgaXNuJ3QgaXQuIiDigKJIaSEgXAor4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAoihUaGlzIGlzIGl0Likg4oCiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuIOKAolwKKyJUaGlzIGlzbid0IGl0LiIg4oCiXAorSGkhIOKAolRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiDigKJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiDigKJOZWwgbWV6em8gZGVsIGNhbW1pbiBkaSBub3N0cmEgdml0YSwgbWkgcml0cm92YWkgaW4gdW5hIHNlbHZhIG9zY3VyYS4g4oCiQ2hlIGxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4g4oCiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISDigKJEb24ndCByb2NrIHRoZSBib2F0Llx1MjAyOeKAokJlY2F1c2UgSSBhbSB0aGUgZGFkZHksIHRoYXQgaXMgd2h5LiAKK+KAok5vdCBvbiBteSB0aW1lIChlbCB0aW1vLikhIOKAojwvZGF0YT4KKworPGRhdGE+4oCiSGVsbG8uICDigKJTbyB3aGF0ISFcdTIwMjnigKIiQnV0IG5vdywiIGhlIHNhaWQsIFwKKyJJIGtub3chIiDigKJcCitIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyAiQXdheSBXZSBHbyIgKHdoaWNoIGJlY2FtZSB0aGUgaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIOKAok9uZSBzcGVjaWVzLCBCLiBhbnRocmFjaXMsIGlzIGhpZ2hseSB2aXJ1bGVudC4KK+KAoldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOlwKKyJCZWF1dGlmdWxseSB0aG91Z2h0LW91dCBhbmQgZGlyZWN0ZWQuIiDigKJcCitIYXZlIHlvdSBldmVyIHNhaWQsICJUaGlzIGlzIHdoZXJlXHRJIHNoYWxsIGxpdmUiPyDigKJIZSBhbnN3ZXJlZCwgXAorIllvdSBtYXkgbm90ISIg4oCiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogIkhvdyBkbyB5b3UgZG8/Ii4gXG7igKJcCitZZXQgYW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXAorJ0knbSBmaW5lIHRoYW5rcy4nIOKAolwKK1doYXQgaXMgdGhlIHByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IOKAolllcywgSSBhbSBkZWZpbmF0ZWxseSAxMiIgdGFsbCEhXAor4oCiTm93XHI8MTAwPmlzXG48MTAwPnRoZVxyXG48MTAwPnRpbWVcbjwxMDA+XHI8MTAwPmZvclxyPDEwMD5ccjwxMDA+PC9kYXRhPgorCis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIHN1cnJvdW5kZWQgYnkgVVBQRVIuQ2FzZSBsZXR0ZXJzLiAg4oCiPC9kYXRhPgorPGRhdGE+4oCiTm8gYnJlYWtzIHdoZW4gLiBpcyBmb2xsb3dlZCBieSBOdW1lcmljIC40IGEuNCBDLjQgMy4xIC7igKI8L2RhdGE+Cis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIGZvbGxvd2VkIGJ5IGEgbG93ZXIsIHdpdGggcG9zc2libGUgaW50ZXJ2ZW5pbmcgcHVuY3QgLixhIC4kYSAuKWEuIOKAojwvZGF0YT4KKworIworIyAgU2VudGVuY2UgQnJlYWtzOiBubyBicmVhayBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksgYW5kIG90aGVyIGxldHRlcnMKKyMKKzxkYXRhPuKAolx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NToiSkFWQVx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZCxcdTI0OTRcdTU2ZDhcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDYiLlx1MjAyOeKAolx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOFx1OTdlNEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDhcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcdTk3ZTVcdTc3NTFcdTMwMDLigKJcdTU0ODdcdTY3ZmZcdWU1OTFcdTUwMTdcdTYxYjNcdTYwYTFcdTk1MTBcdTgxNjVcdTlkZThcdTk3ZTRcdTY0NzBcdTg3OTBKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDQ44oCiSGUgc2FpZCwgIkkgY2FuIGdvIHRoZXJlLiJcdTIwMjnigKJCeWUsIG5vdy7igKI8L2RhdGE+CisKKyMKKyMgICAgICBUcmVhdCBmdWxsd2lkdGggdmFyaWFudHMgb2YgLiE/IHRoZSBzYW1lIGFzIHRoZWlyCisjICAgICAgbm9ybWFsIGNvdW50ZXJwYXJ0cworIworPGRhdGE+4oCiSSBrbm93IEknbSByaWdodFx1ZmYwZSDigKJSaWdodFx1ZmYxZiDigKJSaWdodFx1ZmYwMSDigKI8L2RhdGE+CisKKworIworIyAgICAgICBEb24ndCBicmVhayBzZW50ZW5jZXMgYXQgYm91bmRhcnkgYmV0d2VlbiBDSksgYW5kIGRpZ2l0cworIworPGRhdGE+4oCiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0ODg4OFx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZFx1ZTMwYlx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MzAwMuKAokJ5ZSwgbm93PDEwMD48L2RhdGE+CisKKyMKKyMgICAgICBCcmVha3MgYXJvdW5kICcoJyBmb2xsb3dpbmcgYSBzZW50ZW5jZSBURVJNLiAgKFJ1bGUgOSkKKyMKKzxkYXRhPuKAokhvdyBkbyB5b3UgZG8/KOKAokZpbmUpLiDigKI8L2RhdGE+Cis8ZGF0YT7igKJIb3cgZG8geW91IGRvPyDigKIoRmluZSkuIOKAojwvZGF0YT4KKzxkYXRhPuKAokhvdyBkbyB5b3UgZG8/KOKAomZpbmUpLiDigKI8L2RhdGE+Cis8ZGF0YT7igKJIb3cgZG8geW91IGRvPyDigKIoZmluZSkuIOKAojwvZGF0YT4KKworIworPGRhdGE+4oCiSGVsbG8uMTIzPDEwMD48L2RhdGE+ICAgICMgUnVsZSA2ICAgIAorPGRhdGE+4oCiSGVsbG8/4oCiMTIzPDEwMD48L2RhdGE+ICAKKyAgCis8ZGF0YT7igKJIRUxMTy5CeWU8MTAwPjwvZGF0YT4gICAgIyBSdWxlIDcgICAgCis8ZGF0YT7igKJIRUxMTz/igKJCeWU8MTAwPjwvZGF0YT4gICAgCisKKzxkYXRhPuKAokhlbGxvLmdvb2RieWU8MTAwPjwvZGF0YT4gICNSdWxlIDgKKzxkYXRhPuKAokhlbGxvLiDigKJHb29kYnllPDEwMD48L2RhdGE+Cis8ZGF0YT7igKJIZWxsby4gZ29vZGJ5ZTwxMDA+PC9kYXRhPgorCisKKworIworIyAgICAgICAgdGVzdCBmb3IgYnVnICM0MTU4MzgxOiBObyBicmVha3Mgd2hlbiB0aGVyZSBhcmUgbm8gdGVybWluYXRvcnMgYXJvdW5kCisjCis8ZGF0YT7igKJcPFA+UHJvdmlkZXMgYSBzZXQgb2YgJnF1b3Q7bGlnaHR3ZWlnaHQmcXVvdDsgKGFsbC1qYXZhXDxGT05UIFNJWkU9Ii0yIj5cPFNVUD5UTVw8L1NVUD5cPC9GT05UPiBsYW5ndWFnZSkgY29tcG9uZW50cyB0aGF0LCB0byB0aGUgbWF4aW11bSBkZWdyZWUgcG9zc2libGUsIHdvcmsgdGhlIHNhbWUgb24gYWxsIHBsYXRmb3Jtcy4gIOKAojwvZGF0YT4KKzxkYXRhPuKAokFub3RoZXIgdGVzdC5cdTIwMjnigKI8L2RhdGE+CisgICAgICAKKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE0MzA3MTogTWFrZSBzdXJlIHNlbnRlbmNlcyB0aGF0IGVuZCB3aXRoIGRpZ2l0cworIyAgICAgICAgd29yayByaWdodAorIworPGRhdGE+4oCiVG9kYXkgaXMgdGhlIDI3dGggb2YgTWF5LCAxOTk4LiAg4oCiPC9kYXRhPgorPGRhdGE+4oCiVG9tb3Jyb3cgd2l0aCBiZSAyOCBNYXkgMTk5OC4gIOKAojwvZGF0YT4KKzxkYXRhPuKAolRoZSBkYXkgYWZ0ZXIgd2lsbCBiZSB0aGUgMzB0aC5cdTIwMjnigKI8L2RhdGE+CisgICAgICAKKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE1MjQxNjogTWFrZSBzdXJlIHNlbnRlbmNlcyBlbmRpbmcgd2l0aCBhIGNhcGl0YWwKKyMgICAgICAgIGxldHRlciBhcmUgdHJlYXRlZCBjb3JyZWN0bHkKKyMKKzxkYXRhPuKAolRoZSB0eXBlIG9mIGFsbCBwcmltaXRpdmUgXDxjb2RlPmJvb2xlYW5cPC9jb2RlPiB2YWx1ZXMgYWNjZXNzZWQgaW4gdGhlIHRhcmdldCBWTS4gIOKAokNhbGxzIHRvIHh4eCB3aWxsIHJldHVybiBhbiBpbXBsZW1lbnRvciBvZiB0aGlzIGludGVyZmFjZS4gIFx1MjAyOeKAojwvZGF0YT4KKyAgICAgIAorIyAgICAgICAgdGVzdCBmb3IgYnVnICM0MTUyMTE3OiBNYWtlIHN1cmUgc2VudGVuY2UgYnJlYWtpbmcgaXMgaGFuZGxpbmcKKyMgICAgICAgIHB1bmN0dWF0aW9uIGNvcnJlY3RseSBbQ09VTEQgTk9UIFJFUFJPRFVDRSBUSElTIEJVRywgQlVUIFRFU1QgSVMKKyMgICAgICAgIEhFUkUgVE8gTUFLRSBTVVJFIElUIERPRVNOJ1QgQ1JPUCBVUF0KKyMKKzxkYXRhPuKAokNvbnN0cnVjdHMgYSByYW5kb21seSBnZW5lcmF0ZWQgQmlnSW50ZWdlciwgdW5pZm9ybWx5IGRpc3RyaWJ1dGVkIG92ZXIgdGhlIHJhbmdlIFw8dHQ+MFw8L3R0PiB0byBcPHR0PigyXDxzdXA+bnVtQml0c1w8L3N1cD4gLSAxXClcPC90dD4sIGluY2x1c2l2ZS4gIOKAolRoZSB1bmlmb3JtaXR5IG9mIHRoZSBkaXN0cmlidXRpb24gYXNzdW1lcyB0aGF0IGEgZmFpciBzb3VyY2Ugb2YgcmFuZG9tIGJpdHMgaXMgcHJvdmlkZWQgaW4gXDx0dD5ybmRcPC90dD4uICDigKJOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBhbHdheXMgY29uc3RydWN0cyBhIG5vbi1uZWdhdGl2ZSBiaWdpbnRlZ2VyLiAgXG7igKJBaGggYWJjLiAgCivigKI8L2RhdGE+CisKKyMgICAgICAgIHNlbnRlbmNlIGJyZWFrcyBmb3IgaGluZGkgd2hpY2ggdXNlZCBEZXZhbmFnYXJpIHNjcmlwdAorIyAgICAgICAgbWFrZSBzdXJlIHRoZXJlIGlzIHNlbnRlbmNlIGJyZWFrIGFmdGVyID8sZGFuZGEoaGluZGkgcGhyYXNlIHNlcGFyYXRvciksCisjICAgICAgICBmdWxsc3RvcCBmb2xsb3dlZCBieSBzcGFjZS4gIChWRVJZIG9sZCB0ZXN0KQorIyAgICAgICAKKzxkYXRhPuKAolx1MDkyOFx1MDkyZVx1MDkzOFx1MDk0ZFx1MjAwZFx1MDkyNFx1MDk0NyBcdTA5MzBcdTA5MmVcdTA5NDdcdTA5MzZcdTA5MDVcdTA5M2VcdTA5MmFcdTA5MTVcdTA5NDhcdTA5MzhcdTA5NDcgXHUwOTM5XHUwOTQ4P+KAolx1MDkyZVx1MDk0OCBcdTA5MDVcdTA5MWFcdTA5NGRcdTIwMGQgXHUwOTFiXHUwOTNlIFx1MDkzOVx1MDk0Mlx1MDkwMVx1MDk2NCDigKJcdTA5MDVcdTA5M2VcdTA5MmFcclxuPDEwMD5cCitcdTA5MTVcdTA5NDhcdTA5MzhcdTA5NDcgXHUwOTM5XHUwOTQ4P+KAolx1MDkzNVx1MDkzOSBcdTA5MTVcdTA5NGRcdTIwMGRcdTA5MmZcdTA5M2VcblwKKzwxMDA+XHUwOTM5XHUwOTQ4P+KAolx1MDkyZlx1MDkzOSBcdTA5MDVcdTA5M2VcdTA5MmUgXHUwOTM5XHUwOTQ4LiDigKJcdTA5MmZcdTA5MzkgbWVhbnMgInRoaXMiLiDigKIiXHUwOTJhXHUwOTVkXHUwOTNlXHUwOTA4IiBtZWFuaW5nICJlZHVjYXRpb24iIG9yICJzdHVkaWVzIi4g4oCiXHUwOTA1XHUwOTNlXHUwOTFjKFx1MDkzOFx1MDk0ZFx1MjAwZFx1MDkzNVx1MDkyNFx1MDkwMlx1MDkyNFx1MDk0ZFx1MDkzMCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5M2VcdTA5MzgpIFx1MDkzOVx1MDk0OFx1MDk2NCDigKJMZXQncyBlbmQgaGVyZS4g4oCiPC9kYXRhPgorCisjICAgICAgICAgUmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzE5ODQsIFNlbnRlbmNlIGJyZWFrIGluIEFyYWJpYyB0ZXh0LgorICAKKzxkYXRhPlwKK+KAolx1MDYyM1x1MDYzM1x1MDYyN1x1MDYzM1x1MDY0Ylx1MDYyN1x1MDYwY1x1MDAyMFx1MDYyYVx1MDYyYVx1MDYzOVx1MDYyNyJcdTA2NDVcdTA2NDRcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MmRcdTA2NDhcdTA2MjdcdTA2MzNcdTA2NGFcdTA2MjhcdTAwMjAiXHUwNjQxXHUwNjQyXHUwNjM3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwNjBjXHUwNjQ4XHUwNjJhXHUwNjQyXHUwNjQ4XHUwNjQ1XHUwMDIwXHUwNjI4XHUwNjJhXHUwNjJlXHUwNjMyXHUwNjRhXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjMxXHUwNjQxXHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJlXHUwNjMxXHUwNjQ5XHUwMDIwXHUwNjI4XHUwNjM5XHUwNjJmXHUwMDIwXHUwNjIzXHUwNjQ2XHUwNjJhXHUwNjRmXHUwNjM5XHUwNjM3XHUwNjRhXHUwMDIwXHUwNjMxXHUwNjQyXHUwNjQ1XHUwNjI3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwNjRhXHUwNjQ2XHUwNjI3XHUwMDIwXHUwNjQ0XHUwNjQzXHUwNjQ0XHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwMDIwXHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjI3XHUwMDJlXHUwMDIw4oCiXHUwNjQ4XHUwNjQyXHUwNjI4XHUwNjQ0XHUwMDIwXHUwNjI3XHUwNjJlXHUwNjJhXHUwNjMxXHUwNjI3XHUwNjM5XHUwMDIyXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjUwXHUwNjQzXHUwNjQ4XHUwNjJmXHUwMDIyXHUwNjBjXHUwMDIwXHUwNjQzXHUwNjI3XHUwNjQ2XHUwMDIwXHUwNjQ3XHUwNjQ2XHUwNjI3XHUwNjQzXHUwMDIwXHUwNjQ1XHUwNjI2XHUwNjI3XHUwNjJhXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjQ2XHUwNjM4XHUwNjQ1XHUwNjI5XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwNjMxXHUwNjQ4XHUwNjJhXHUwNjJlXHUwNjM1XHUwNjRhXHUwNjM1XHUwMDIwXHUwNjQ3XHUwNjMwXHUwNjQ3XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwNjBjXHUwMDIwXHUwNjQ4XHUwNjQ0XHUwNjQ1XHUwMDIwXHUwNjRhXHUwNjQ4XHUwNjJjXHUwNjJmXHUwMDIwXHUwNjQ2XHUwNjM4XHUwNjI3XHUwNjQ1XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwMDIwXHUwNjM5XHUwNjQ0XHUwNjQ5XHUwMDIwXHUwNjJjXHUwNjQ1XHUwNjRhXHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjM2XHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI5LiAg4oCiPC9kYXRhPgorCisjICAgICAgICAgVHJ5IGEgZmV3IG1vcmUgb2YgdGhlIGxlc3MgY29tbW9uIHNlbnRlbmNlIGVuZGluZ3MuCis8ZGF0YT7igKJIZWxsbywgd29ybGRcdTMwMDIg4oCiSGVsbG8sIHdvcmxkXHUxODAzIOKAokhlbGxvLCB3b3JsZFx1MjA0OCDigKJIZWxsbywgd29ybGRcdTIwM2Mg4oCiTGV0J3MgZW5kIGhlcmUuIOKAojwvZGF0YT4KKworCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIworIyAgICAgICAgTCBJIE4gRSAgICAgQiBSIEUgQSBLCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKzxsaW5lPgorIworIyBUZXN0IENoYXJhY3RlciBmb3IgZWFjaCBvZiB0aGUgbGluZSBicmVhayBjbGFzc2VzLgorIworIyAwMEExO0FJICMgSU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSyAgwqEKKyMgMDA0MTtBTCAjIExBVElOIENBUElUQUwgTEVUVEVSIEEKKyMgMDAwOTtCQSAjIDxjb250cm9sPgorIyAwMEI0O0JCICMgQUNVVEUgQUNDRU5UCisjIDAwMEM7QksgIyA8Y29udHJvbD4KKyMgMjAxNDtCMiAjIEVNIERBU0gKKyMgRkZGQztDQiAjIE9CSkVDVCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKKyMgMDAyOTtDTCAjIFJJR0hUIFBBUkVOVEhFU0lTCisjIDAzMDE7Q00gIyBDT01CSU5JTkcgQUNVVEUgQUNDRU5UCisjIDAwMjE7RVggIyBFWENMQU1BVElPTiBNQVJLCisjIDAwQTA7R0wgIyBOTy1CUkVBSyBTUEFDRQorIyAwMDJEO0hZICMgSFlQSEVOLU1JTlVTCisjIDRFMDA7SUQgIyA8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+CisjIDIwMjQ7SU4gIyBPTkUgRE9UIExFQURFUgorIyAwMDJDO0lTICMgQ09NTUEKKyMgMDAwQTtMRiAjIDxjb250cm9sPgorIyAwRTVBO05TICMgVEhBSSBDSEFSQUNURVIgQU5HS0hBTktIVQorIyAwMDMyO05VICMgRElHSVQgVFdPCisjIDAwMjg7T1AgIyBMRUZUIFBBUkVOVEhFU0lTCisjIDAwMjU7UE8gIyBQRVJDRU5UIFNJR04KKyMgMDAyNDtQUiAjIERPTExBUiBTSUdOCisjIDAwMjI7UVUgIyBRVU9UQVRJT04gTUFSSworIyAwRTAxO1NBICMgVEhBSSBDSEFSQUNURVIgS08gS0FJCisjIERCN0Y7U0cgIyBTdXJyb2dhdGUKKyMgMDAyMDtTUCAjIFNQQUNFCisjIDAwMkY7U1kgIyBTT0xJRFVTIC8KKyMgRjhGRjtYWCAjIFByaXZhdGUgVXNlCisjIDIwMEI7WlcgIyBaRVJPIFdJRFRIIFNQQUNFCisKKworIyAyYiAgQWx3YXlzIGJyZWFrIGF0IGVuZCBvZiB0ZXh0CisKKzxkYXRhPuKAoiAg4oCiXHUwMEEx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwNDHigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAwOeKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMEI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgIFx1MDAwQzwxMDA+PC9kYXRhPiAgICAjIExCM0MgIMOXIEJLCis8ZGF0YT7igKIgIOKAolx1MjAxNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHVGRkZD4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDI54oCiPC9kYXRhPiAgICAjIExCIDggICDDlyBDTAorIyA8ZGF0YT7igKIg4oCiIFx1MDMwMeKAojwvZGF0YT4gICAgIyBMQiA3YSAgIFRyZWF0IFNQIENNKiBhcyBpZiBpdCB3ZXJlIElEICAjVE9ETzogIFNQIENNCis8ZGF0YT7igKIgICBcdTAwMjHigKI8L2RhdGE+ICAgICMgTEIgOCAgIMOXIEVYCisjPGRhdGE+4oCiICAgXHUwMEEw4oCiPC9kYXRhPiAgICAjIExCIDExYiAgIMOXIEdMICAgVE9ETzogIGZpeC4KKzxkYXRhPuKAoiAg4oCiXHUwMDJE4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTRFMDDigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MjAyNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAgIFx1MDAyQ+KAojwvZGF0YT4gICAgIyBMQiA4ICAgw5cgSVMKKzxkYXRhPuKAoiAgIFx1MDAwQTwxMDA+PC9kYXRhPiAgICAjIExCM0MgICDDlyAoIEJLIHwgQ1IgfCBMRiB8IE5MICkKKzxkYXRhPuKAoiAg4oCiXHUwRTVB4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMzLigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyOOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDI14oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMjTigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyMuKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwRTAx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdURCN0bigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMjDigKI8L2RhdGE+ICAgICAjIExCNCAtIGRvbid0IGJyZWFrIGJlZm9yZSBzcGFjZS4KKzxkYXRhPuKAoiAgIFx1MDAyRuKAojwvZGF0YT4gICAgICMgTEIgOCAgw5cgU1kKKzxkYXRhPuKAoiAg4oCiXHVGOEZG4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUyMDBC4oCiPC9kYXRhPiAgICAgIyBMQjQgLSBkb24ndCBicmVhayBiZWZvcmUgWkEKKworCisjIDNhICBBbHdheXMgYnJlYWsgYWZ0ZXIgaGFyZCBsaW5lIGJyZWFrcy4KKyMgM2MgIE5ldmVyIGJyZWFrIGJlZm9yZSBoYXJkIGxpbmUgYnJlYWtzLgorCis8ZGF0YT7igKIgIOKAolx1MDBBMVx1MjAyODwxMDA+XHUwMEEx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwNDFcdTIwMjg8MTAwPlx1MDA0MeKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDA5XHUyMDI4PDEwMD5cdTAwMDnigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDBCNFx1MjAyODwxMDA+XHUwMEI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDBDPDEwMD5cdTIwMjg8MTAwPlx1MDAwQzwxMDA+PC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTIwMTRcdTIwMjg8MTAwPlx1MjAxNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHVGRkZDXHUyMDI4PDEwMD5cdUZGRkPigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMjlcdTIwMjg8MTAwPlx1MDAyOeKAojwvZGF0YT4KKyM8ZGF0YT7igKIgICBcdTAzMDFcdTIwMjg8MTAwPlx1MDMwMeKAojwvZGF0YT4gICAgIyBUT0RPOiAgZml4LgorPGRhdGE+4oCiICAgXHUwMDIxXHUyMDI4PDEwMD5cdTAwMjHigKI8L2RhdGE+CisjPGRhdGE+4oCiICAgXHUwMEEwXHUyMDI4PDEwMD5cdTAwQTDigKI8L2RhdGE+ICAgICMgVE9ETzogIGZpeAorPGRhdGE+4oCiICDigKJcdTAwMkRcdTIwMjg8MTAwPlx1MDAyROKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHU0RTAwXHUyMDI4PDEwMD5cdTRFMDDigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MjAyNFx1MjAyODwxMDA+XHUyMDI04oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDJDXHUyMDI4PDEwMD5cdTAwMkPigKI8L2RhdGE+Cis8ZGF0YT7igKIgICBcdTAwMEE8MTAwPlx1MjAyODwxMDA+XHUwMDBBPDEwMD48L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MEU1QVx1MjAyODwxMDA+XHUwRTVB4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMzJcdTIwMjg8MTAwPlx1MDAzMuKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDI4XHUyMDI4PDEwMD5cdTAwMjjigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MDAyNVx1MjAyODwxMDA+XHUwMDI14oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdTAwMjRcdTIwMjg8MTAwPlx1MDAyNOKAojwvZGF0YT4KKzxkYXRhPuKAoiAg4oCiXHUwMDIyXHUyMDI4PDEwMD5cdTAwMjLigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1MEUwMVx1MjAyODwxMDA+XHUwRTAx4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJcdURCN0ZcdTIwMjg8MTAwPlx1REI3RuKAojwvZGF0YT4KKzxkYXRhPuKAoiAgIFx1MDAyMFx1MjAyODwxMDA+XHUwMDIw4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUwMDJGXHUyMDI4PDEwMD5cdTAwMkbigKI8L2RhdGE+Cis8ZGF0YT7igKIgIOKAolx1RjhGRlx1MjAyODwxMDA+XHVGOEZG4oCiPC9kYXRhPgorPGRhdGE+4oCiICAgXHUyMDBCXHUyMDI4PDEwMD5cdTIwMELigKI8L2RhdGE+CisKKworIworIyAgT2xkIExpbmUgQnJlYWsgVGVzdCBkYXRhLiAgT3JnaW5hbGx5IGxvY2F0ZWQgaW4gUkJCSVRlc3Q6OlRlc3REZWZhdWx0UnVsZUJhc2VkTGluZUl0ZXJhdGlvbigpCisjCisKKzxsaW5lPgorCis8ZGF0YT7igKJNdWx0aS3igKJMZXZlbCDigKJleGFtcGxlIOKAom9mIOKAomEg4oCic2VtaS3igKJpZGlvdGljIOKAom5vbi3igKJzZW5zaWNhbCDigKIobm9uLeKAomltcG9ydGFudCkg4oCic2VudGVuY2UuIAorPDEwMD5IaSAg4oCiSGVsbG8g4oCiSG93XG48MTAwPmFyZVxyPDEwMD55b3VcdTIwMjg8MTAwPmZpbmUuXHTigKJnb29kLiAg4oCiTm93XHI8MTAwPmlzXG48MTAwPnRoZVxyXG48MTAwPnRpbWVcbjwxMDA+XHI8MTAwPmZvclxyPDEwMD5ccjwxMDA+YWxs4oCiPC9kYXRhPgorCis8bGluZT4KKzxkYXRhPuKAokhlbGxvISDigKJob3dcclxuPDEwMD4g4oCiKGFyZSlccjwxMDA+IOKAonlvdT8g4oCiSSdhbSDigKJmaW5lLSDigKJUaGFua3lvdS4g4oCiZm9vXHUwMGEwYmFyIAorPDEwMD5Ib3csIOKAomFyZSwg4oCieW91PyDigKJUaGlzLCDigKJjb3N0cyDigKIkMjAsMDAsMDAwLuKAojwvZGF0YT4KKworIyAgICAgdGVzdCBmb3IgYnVnICM0MDY4MTMzCisjCis8ZGF0YT7igKJcdTk2ZjbigKJcdTRlMDBcdTMwMDLigKJcdTRlOGNcdTMwMDHigKJcdTRlMDlcdTMwMDJcdTMwMDHigKJcdTU2ZGJcdTMwMDFcdTMwMDJcdTMwMDHigKJcdTRlOTQs4oCiXHU1MTZkLuKAolx1NGUwMy5cdTMwMDEsXHUzMDAy4oCiXHU1MTZi4oCiPC9kYXRhPgorCisjICAgICB0byB0ZXN0IGZvciBidWcgIzQwODYwNTIKKzxkYXRhPuKAomZvb1x1MDBhMGJhcuKAojwvZGF0YT4KKworIyAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDk3OTIwCis8ZGF0YT7igKJkb2csY2F0LG1vdXNlIOKAoihvbmUp4oCiKHR3bylcbjwxMDA+PC9kYXRhPgorCisjICAgICB0byB0ZXN0IGZvciBidWcgIzQwMzUyNjYKKzxkYXRhPuKAolRoZSDigKJiYWxhbmNlIOKAomlzIOKAoiQtMjMsNDU2Ljc4LCDigKJub3Qg4oCiLeKAoiQzMiw0NTYuNzghXG48MTAwPjwvZGF0YT4KKworCisjICAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDk4NDY3CisjICAgICAgV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMKKyMgICAgICBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorIyAgICAgIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorIyAgICAgIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuCisjICAgICAgcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uICAoSSA9PSBSaWNoIEdpbGxhbT8pCisjCis8ZGF0YT7igKJcdWMwYzHigKJcdWQ1NmQg4oCiXHVkNTVj4oCiXHVjNzc4IOKAolx1YzVmMOKAolx1ZDU2OSDigKJcdWM3YTXigKJcdWI4NWPigKJcdWFkNTDigKJcdWQ2OGPigKI8L2RhdGE+CisKKyMgICAgICBjb25qb2luaW5nIGphbW8uLi4KKyMgICAgICBUT0RPOiAgcnVsZXMgdXBkYXRlIG5lZWRlZAorIzxkYXRhPuKAolx1MTEwOVx1MTE2MVx1MTFiY+KAolx1MTExMlx1MTE2MVx1MTFiYyDigKJcdTExMTJcdTExNjFcdTExYWLigKJcdTExMGJcdTExNzVcdTExYWIgI+KAolx1MTEwYlx1MTE2N1x1MTFhYuKAolx1MTExMlx1MTE2MVx1MTFiOCDigKJcdTExMGNcdTExNjFcdTExYmPigKJcdTExMDVcdTExNjnigKJcdTExMDBcdTExNmTigKJcdTExMTJcdTExNmPigKI8L2RhdGE+CisKKyMgICAgICB0byB0ZXN0IGZvciBidWcgIzQxMTc1NTQ6IEZ1bGx3aWR0aCAuIT8gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgcG9zdEp3cmQKKzxkYXRhPuKAolx1NGUwMVx1ZmYwZeKAolx1NGUwMlx1ZmYwMeKAolx1NGUwM1x1ZmYxZuKAojwvZGF0YT4KKworIyAgICAgIFN1cnJvZ2F0ZSBsaW5lIGJyZWFrIHRlc3RzLgorIworPGRhdGE+4oCiXHU0ZTAx4oCiXHVkODQwXHVkYzAx4oCiXHU0ZTAy4oCiYWJjIOKAolx1ZTAwMCDigKJcdWRiODBcdWRjMDHigKI8L2RhdGE+CisKKyMgICAgICBSZWdyZXNzaW9uIGZvciBidWcgODM2Cis8ZGF0YT7igKJBQUEoQUFBIOKAojwvZGF0YT4gCisKKyMgICAgICAgVHJ5IHNvbWUgd29yZHMgZnJvbSBvdGhlciBzY3JpcHRzLgorIyAgICAgICAgICBHcmVlaywgQ3lyaWxsaWMsIEhlYnJldywgQXJhYmljLCBBcmFiaWMsIEdlb3JnaWFuLCBMYXRpbgorIyAgICAgIAorPGRhdGE+4oCizpHOks6TIOKAotCR0JLQkyDigKLXkNeR15LWkyDigKLYp9io2Kog4oCi2aHZotmjIOKAolx1MTBBMFx1MTBBMVx1MTBBMiDigKJBQkMg4oCiPC9kYXRhPgorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMKKyMgICAgICAgVCBpIHQgbCBlICAgQiBvIHUgbiBkIGEgciB5ICAgICAgVCBlIHMgdCBzCisjCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKzx0aXRsZT4KKzxkYXRhPuKAokhlcmUg4oCiaXMg4oCiYSDigKJzaG9ydCDigKJzYW1wbGUg4oCic2VudGVuY2UuICDigKJBbmQg4oCiYW5vdGhlci7igKI8L2RhdGE+Cis8ZGF0YT7igKJIRVJFIOKAoklTIOKAokEg4oCiU0hPUlQg4oCiU0FNUExFIOKAolNFTlRFTkNFLiAg4oCiQU5EIOKAokFOT1RIRVIu4oCiPC9kYXRhPgorPGRhdGE+4oCiICDigKJTdGFydCDigKJhbmQg4oCiZW5kIOKAondpdGgg4oCic3BhY2VzICAg4oCiPC9kYXRhPgorPGRhdGE+4oCiSW5jbHVkZSAxMjMgNDU2IF4mICDigKJzb21lIDU0MzMyIOKAom51bWJlcnMgNDQ0NeKAomFiYzEyM+KAomFiYyDigKJlbmRpbmcgMTIyMyDigKI8L2RhdGE+CisKKzxkYXRhPuKAokNvbWJpbmluZ1x1MDMwMSBcdTAzMDHigKJtYVx1MDMwNnJrcyAg4oCiYnllICDigKI8L2RhdGE+Cis8ZGF0YT7igKIxMjMgIOKAolN0YXJ0IOKAondpdGgg4oCiYSDigKJudW1iZXIu4oCiPC9kYXRhPgorCis8ZGF0YT7igKIn4oCic3RhcnQg4oCid2l0aCDigKJhIOKAomNhc2Ut4oCiaWdub3JhYmxlIOKAomNoYSdyJ2EnY3RlcuKAojwvZGF0YT4KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgICBUaGFpIFRlc3RzCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKzxsb2NhbGUgdGg+Cis8d29yZD4KKyMKKyMgVGVzdCBkYXRhIG9yaWdpbmFsbHkgZnJvbSB0aGUgdGVzdCBjb2RlIHNvdXJjZSBmaWxlCisjICAgICAgLy8gQHN1d2l0IC0tIFRoYWkgc2FtcGxlIGRhdGEgZnJvbSBHVlQgR3VpZGVsaW5lCisjCisjICBOT1RFOiAgVGhhaSBKYXZhIHJlc3VsdHMgZGlmZmVyIGZyb20gQyBiZWNhdXNlIHRoZSBuZXcgZGljdGlvbmFyeSBjb2RlIGlzIG5vdAorIyAgICAgICAgIHlldCBwb3J0ZWQuICBBbGwgdGFncyBhcmUgemVybyB3aXRoIHRoZSBvbGQgVGhhaSBpbXBsLgorCis8ZGF0YT7igKJcdTBFMkJcdTBFMTlcdTBFMzZcdTBFNDhcdTBFMDc8MDAwPlx1MEUwNFx1MEUzMzwwMDA+XHUwRTQ0XHUwRTE3XHUwRTIyPDAwMD5cCitcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMzJcdTBFMjNcdTBFMTY8MDAwPlx1MEUxQlx1MEUyM1x1MEUzMFx1MEUwMVx1MEUyRFx1MEUxQTwwMDA+XAorXHUwRTE0XHUwRTQ5XHUwRTI3XHUwRTIyPDAwMD5cdTBlMmJcdTBlMjVcdTBlMzJcdTBlMjI8MDAwPlwKK1x1MGUxZVx1MGUyMlx1MGUzMlx1MGUwN1x1MGUwNFx1MGU0YzwwMDA+PC9kYXRhPgorCisjCisjICBKaXR0ZXJidWcgMzY3MSBUZXN0IENhc2UKKyMKKzxkYXRhPuKAouC4quC4p+C4seC4quC4lOC4tTwwMDA+4LiE4Lij4Lix4LiaPDAwMD7guKrguJrguLLguKI8MDAwPuC4lOC4tTwwMDA+4LmE4Lir4LihPDAwMD4g4oCi4LiE4Lij4Lix4LiaPDAwMD48L2RhdGE+CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTk2MDRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEKQEAgLTAsMCArMSwxNjkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zYW1wbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0OworCitwdWJsaWMgY2xhc3MgTW9kdWxlVGVzdFNhbXBsZSBleHRlbmRzIE1vZHVsZVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIG5ldyBNb2R1bGVUZXN0U2FtcGxlKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBNb2R1bGVUZXN0U2FtcGxlKCl7CisgICAgICAgIHN1cGVyKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS8iLCAiVGVzdCIpOworICAgIH0KKworICAgIC8vIHN0YW5kYXJkIGxvb3AsIHNldHRpbmdzIGFuZCBjYXNlcworLy8gICAgcHVibGljIHZvaWQgVGVzdDAxKCkgeworLy8gICAgd2hpbGUgKG5leHRTZXR0aW5ncygpKSB7CisvLyAgICAgICAgbG9nbG4oIi0tLS0tLS0tIik7CisvLyAgICAgICAgbG9nbG4oIlN0cmluZzogIiArIHNldHRpbmdzLmdldFN0cmluZygiYVN0cmluZyIpKTsKKy8vICAgICAgICBpZiAoc2V0dGluZ3MuaXNEZWZpbmVkKCJhbkludCIpKSB7CisvLyAgICAgICAgbG9nbG4oIkludDogIiArIHNldHRpbmdzLmdldEludCgiYW5JbnQiKSk7CisvLyAgICAgICAgfQorLy8gICAgICAgIGxvZ2xuKCJCb29sZWFuOiAiICsgc2V0dGluZ3MuZ2V0Qm9vbGVhbigiYUJvb2xlYW4iKSk7CisvLworLy8gICAgICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisvLyAgICAgICAgbG9nbG4oIiAgLS0tLSIpOworLy8gICAgICAgIGxvZ2xuKCIgIFN0cmluZ0FycmF5OiAiICsgcHJpbnRBcnJheSh0ZXN0Y2FzZS5nZXRTdHJpbmdBcnJheSgiYVN0cmluZ0FycmF5IikpKTsKKy8vICAgICAgICBsb2dsbigiICBJbnRBcnJheTogIiArIHByaW50QXJyYXkodGVzdGNhc2UuZ2V0SW50QXJyYXkoImFuSW50QXJyYXkiKSkpOworLy8gICAgICAgIGxvZ2xuKCIgIEJvb2xlYW5BcnJheTogIiArIHByaW50QXJyYXkodGVzdGNhc2UuZ2V0Qm9vbGVhbkFycmF5KCJhQm9vbGVhbkFycmF5IikpKTsKKy8vICAgICAgICB9CisvLyAgICB9CisvLyAgICB9CisvLworLy8gICAgLy8gbG9vcCB3aXRoIGp1c3QgY2FzZXMKKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwMigpIHsKKy8vICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisvLyAgICAgICAgbG9nbG4oIi0tLS0iKTsKKy8vICAgICAgICBsb2dsbigiU3RyaW5nOiAiICsgdGVzdGNhc2UuZ2V0U3RyaW5nKCJhU3RyaW5nIikpOworLy8gICAgICAgIGxvZ2xuKCJJbnQ6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoImFuSW50IikpOworLy8gICAgICAgIGxvZ2xuKCJCb29sZWFuOiAiICsgdGVzdGNhc2UuZ2V0Qm9vbGVhbigiYUJvb2xlYW4iKSk7CisvLyAgICB9CisvLyAgICB9CisKKyAgICAvLyBubyBjYXNlcywganVzdCB1c2VzIGluZm8gZm9yIHRlc3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDMoKSB7CisvLyAgICBEYXRhTWFwIGluZm8gPSB0ZXN0SW5mbygpOworLy8gICAgaWYgKGluZm8gIT0gbnVsbCkgeworLy8vLyAgICAgICAgbG9nbG4oaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pKTsgLy8gc3RhbmRhcmQKKy8vICAgICAgICBsb2dsbihpbmZvLmdldFN0cmluZygiRXh0cmEiKSk7IC8vIHRlc3Qtc3BlY2lmaWMKKy8vICAgIH0KKy8vICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBNb2R1bGVUZXN0IHNob3VsZCBub3QgYWxsb3cgdGhpcyB0byBleGVjdXRlIGJ5IGRlZmF1bHQKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDQoKSB7CisgICAgZXJybG4oIlRlc3QwNCBzaG91bGQgbm90IGV4ZWN1dGUhIik7CisgICAgfQorCisgICAgLy8gc3BlY2lhbCBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZCBhbGxvd3MgVGVzdDA1IAorICAgIC8vIHRvIGV4ZWN1dGUgZXZlbiB0aG91Z2ggaXQgaGFzIG5vIGRhdGEgaW4gdGhlIG1vZHVsZQorICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBtZXRob2ROYW1lKSB7CisgICAgcmV0dXJuIG1ldGhvZE5hbWUuZXF1YWxzKCJUZXN0MDUiKSA/IHRydWUgOiBzdXBlci52YWxpZGF0ZU1ldGhvZChtZXRob2ROYW1lKTsKKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBidXQgb3ZlcnJpZGUgb2YgdmFsaWRhdGVNZXRob2QgYWxsb3dzIGl0IHRvIGV4ZWN1dGUKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDUoKSB7CisgICAgbG9nbG4oIlRlc3QwNSBleGVjdXRlZC4iKTsKKyAgICB9CisKKy8vICAgIC8vIFRoZSB0ZXN0IGRhdGEgY29udGFpbnMgYW4gZXJyb3IgaW4gdGhlIHRoaXJkIGNhc2UuICBXaGVuIGdldEludCgiRGF0YSIpIGlzCisvLyAgICAvLyBleGVjdXRlZCB0aGUgZXJyb3IgaXMgbG9nZ2VkIGFuZCBpdGVyYXRpb24gc3RvcHMuCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0MDYoKSB7CisvLyAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgIGxvZ2xuKCItLS0tIik7CisvLyAgICAgICAgbG9nbG4oImlzR29vZDogIiArIHRlc3RjYXNlLmdldFN0cmluZygiSXNHb29kIikpOworLy8gICAgICAgIGxvZ2xuKCIgIERhdGE6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoIkRhdGEiKSk7CisvLyAgICB9CisvLyAgICB9CisvLworLy8gICAgLy8gVGhlIHRlc3QgdXNpbmcgdGhlIGRhdGEgcmVwb3J0cyBhbiBlcnJvciwgd2hpY2ggYWxzbyBhdXRvbWF0aWNhbGx5IHN0b3BzIGl0ZXJhdGlvbi4KKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwNygpIHsKKy8vICAgIHdoaWxlIChuZXh0U2V0dGluZ3MoKSkgeworLy8gICAgICAgIGludCB2YWx1ZSA9IHNldHRpbmdzLmdldEludCgiVmFsdWUiKTsKKy8vICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgIGludCBmYWN0b3IgPSB0ZXN0Y2FzZS5nZXRJbnQoIkZhY3RvciIpOworLy8gICAgICAgIGZsb2F0IHJlc3VsdCA9IChmbG9hdCl2YWx1ZSAvIGZhY3RvcjsKKy8vICAgICAgICBpZiAocmVzdWx0ICE9IChpbnQpcmVzdWx0KSB7CisvLyAgICAgICAgICAgIGVycmxuKCJ0aGUgbnVtYmVyICciICsgZmFjdG9yICsgIicgaXMgbm90IGEgZmFjdG9yIG9mIHRoZSBudW1iZXIgJyIgKyB2YWx1ZSArICInIik7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgbG9nbG4oIiciICsgZmFjdG9yICsgIicgaXMgYSBmYWN0b3Igb2YgJyIgKyB2YWx1ZSArICInIik7CisvLyAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgIH0KKy8vICAgIH0KKworLy8gICAgLy8gVGhlIG51bWJlciBvZiBkYXRhIGVsZW1lbnRzIGlzIGluY29ycmVjdAorLy8gICAgcHVibGljIHZvaWQgVGVzdDA4KCkgeworLy8gICAgd2hpbGUgKG5leHRDYXNlKCkpIHsKKy8vICAgICAgICBpbnQgb25lID0gdGVzdGNhc2UuZ2V0SW50KCJPbmUiKTsKKy8vICAgICAgICBpbnQgdHdvID0gdGVzdGNhc2UuZ2V0SW50KCJUd28iKTsKKy8vICAgICAgICBpbnQgdGhyZWUgPSB0ZXN0Y2FzZS5nZXRJbnQoIlRocmVlIik7CisvLyAgICAgICAgbG9nbG4oImdvdDogIiArIG9uZSArICIsICIgKyB0d28gKyAiLCAiICsgdGhyZWUpOworLy8gICAgfQorLy8gICAgfQorLy8KKy8vICAgIHB1YmxpYyB2b2lkIFRlc3QwOSgpIHsKKy8vICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworLy8gICAgICAgICAgICBpbnQgcmFkaXggPSB0ZXN0Y2FzZS5nZXRJbnQoIlJhZGl4Iik7CisvLyAgICAgICAgICAgIGludFtdIHBvdyA9IHRlc3RjYXNlLmdldEludEFycmF5KCJQb3dlciIpOworLy8gICAgICAgICAgICBpbnRbXSB2YWwgPSB0ZXN0Y2FzZS5nZXRJbnRBcnJheSgiVmFsdWUiKTsKKy8vICAgICAgICAgICAgbG9nbG4oInJhZGl4OiAiICsgcmFkaXggKyAiIHBvdzogIiArIHByaW50QXJyYXkocG93KSArICIgdmFsOiAiICsgcHJpbnRBcnJheSh2YWwpKTsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb3cubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgICAgIGlmICh2YWxbaV0gIT0gKGludClNYXRoLnBvdyhyYWRpeCwgcG93W2ldKSkgeworLy8gICAgICAgICAgICAgICAgICAgIGVycmxuKCJyYWRpeDogIiArIHJhZGl4ICsgIiB0byBwb3dlciAiICsgcG93W2ldICsgIiAhPSAiICsgdmFsW2ldKTsKKy8vICAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvLyB1dGlsaXR5IHByaW50IGZ1bmN0aW9ucyB0byBkaXNwbGF5IHRoZSBkYXRhIGZyb20gdGhlIHJlc291cmNlCisgICAgU3RyaW5nIHByaW50QXJyYXkoU3RyaW5nW10gYSkgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJTdHJpbmdbXSB7Iik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiLCIpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiAiICsgYVtpXSk7CisgICAgfQorICAgIGJ1Zi5hcHBlbmQoIiB9Iik7CisgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIFN0cmluZyBwcmludEFycmF5KGludFtdIGEpIHsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiaW50W10geyIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworICAgIH0KKyAgICBidWYuYXBwZW5kKCIgfSIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgcHJpbnRBcnJheShib29sZWFuW10gYSkgeworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJib29sZWFuW10geyIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworICAgIH0KKyAgICBidWYuYXBwZW5kKCIgfSIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0I3Byb2Nlc3NNb2R1bGVzKCkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzTW9kdWxlcygpIHsKKyAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorICAgICAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkOGFkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZURhdGEuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNhbXBsZTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyBpcyBzYW1wbGUgZGF0YSBmb3IgTW9kdWxlVGVzdFNhbXBsZSwgd2hpY2ggaXMgYW4gaWxsdXN0cmF0aW9uCisgKiBvZiBhIHN1YmNsYXNzIG9mIE1vZHVsZVRlc3QuICBUaGlzIGRhdGEgaXMgaW4gYSBmb3JtYXQgd2hpY2gKKyAqIGlzIHVuZGVyc3Rvb2QgYnkgUmVzb3VyY2VNb2R1bGUsIHdoaWNoIGZvciBzaW1wbGljaXR5IGV4cGVjdHMKKyAqIGFsbCBkYXRhLCBpbmNsdWRpbmcgbnVtZXJpYyBhbmQgYm9vbGVhbiBkYXRhLCB0byBiZSByZXByZXNlbnRlZAorICogYnkgU3RyaW5ncy4KKyAqLworcHVibGljIGNsYXNzIE1vZHVsZVRlc3RTYW1wbGVEYXRhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICByZXR1cm4gY29udGVudHM7CisgICAgfQorCisgICAgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJUaGlzIGlzIGEgc2FtcGxlIHRlc3QgbW9kdWxlIHRoYXQgaWxsdXN0cmF0ZXMgTW9kdWxlVGVzdCAiICsKKyAgICAgICAgICAiYW5kIHVzZXMgZGF0YSBmb3JtYXR0ZWQgZm9yIFJlc291cmNlTW9kdWxlLiIgfSwKKyAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICJhU3RyaW5nQXJyYXkiLCAiYW5JbnRBcnJheSIsICJhQm9vbGVhbkFycmF5IgorICAgICAgICB9fSwKKyAgICB9fSwKKyAgICAKKworICAgIHsgIlRlc3REYXRhIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJUZXN0MDEiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHR5cGljYWwgdGVzdCB1c2luZyBib3RoIHNldHRpbmdzIGFuZCBjYXNlcy4iIH0sCisgICAgICAgICAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIkl0IGRvZXMgbm90IGRlZmluZWQgaXRzIG93biBoZWFkZXJzLCBidXQgaW5zdGVhZCAiICsKKyAgICAgICAgICAgICAgInVzZXMgdGhlIGRlZmF1bHQgaGVhZGVycyBkZWZpbmVkIGZvciB0aGUgbW9kdWxlLiAgIiArCisgICAgICAgICAgICAgICJUaGVyZSBhcmUgdHdvIHNldHMgb2Ygc2V0dGluZ3MgYW5kIHRocmVlIGNhc2VzLiIgfSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIlNldHRpbmdzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdCisgICAgICAgICAgICB7eyAiYVN0cmluZyIsICJ0aGlzIGlzIGEgc3RyaW5nIiB9LAorICAgICAgICAgICAgIHsgImFuSW50IiwgIjQzIiB9LAorICAgICAgICAgICAgIHsgImFCb29sZWFuIiwgImZhbHNlIiB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIAorICAgICAgICAgICAge3sgImFTdHJpbmciLCAidGhpcyBpcyBhbm90aGVyIHN0cmluZyIgfSwKKyAgICAgICAgICAgICB7ICJhQm9vbGVhbiIsICJ0cnVlIiB9fQorICAgICAgICB9fSwKKyAgICAgICAgeyAiQ2FzZXMiLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAib25lIiwgInR3byIsICJ0aHJlZSIgfSwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiMjQiLCAiNDgiLCAiNzIiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgInRydWUiLCAiZmFsc2UiLCAidHJ1ZSIgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJmb3VyIiwgImZpdmUiLCAic2l4IiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICItMSIsICItNSIsICItMTAiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgInRydWUiLCAiZmFsc2UiLCAiZmFsc2UiIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiYmFnZWwiLCAicGVhbnV0cyIsICJjYXJyb3QiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjAiLCAiMDAwMDEiLCAiMTAxMDEiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgImZhbHNlIiwgImZhbHNlIiwgIkZhbHNlIiB9CisgICAgICAgICAgICB9LAorICAgICAgICB9fQorICAgICAgICB9fSwKKworICAgICAgICB7ICJUZXN0MDIiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHR5cGljYWwgdGVzdCB0aGF0IHVzZXMgY2FzZXMgYnV0IG5vdCBzZXR0aW5ncy4iIH0sCisgICAgICAgICAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIkl0IGRlZmluZXMgaXRzIG93biBoZWFkZXJzLiIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgImFTdHJpbmciLCAiYW5JbnQiLCAiYUJvb2xlYW4iCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJTdXBlcnN0cmluZyIsICI0MiIsICJ0cnVlIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIlVuZGVyZG9nIiwgIjEyIiwgImZhbHNlIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIlNjb29ieURvbyIsICI3IiwgIlRyVWUiIH0KKyAgICAgICAgfX0KKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDAzIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdGhhdCB1c2VzIGp1c3QgdGhlIGluZm8sIG5vIGNhc2VzIG9yIHNldHRpbmdzLiIgfSwKKyAgICAgICAgICAgIHsgIkV4dHJhIiwgIlRoaXMgaXMgc29tZSBleHRyYSBpbmZvcm1hdGlvbi4iIH0KKyAgICAgICAgfX0sCisgICAgICAgIH19LAorCisgICAgICAgIC8vIG5vIFRlc3QwNCBkYXRhCisgICAgICAgIC8vIFRlc3QwNCBzaG91bGQgY2F1c2UgYW4gZXhjZXB0aW9uIHRvIGJlIHRocm93biBzaW5jZSBNb2R1bGVUZXN0U2FtcGxlIGRvZXMgbm90CisgICAgICAgIC8vIHNwZWNpZnkgdGhhdCBpdCBpcyBvayBmb3IgaXQgdG8gaGF2ZSBubyBkYXRhLgorCisgICAgICAgIC8vIG5vIFRlc3QwNSBkYXRhCisgICAgICAgIC8vIFRlc3QwNSBzaG91bGQganVzdCBsb2cgdGhpcyBmYWN0LCBzaW5jZSBNb2R1bGVUZXN0U2FtcGxlIGluZGljYXRlcyB0aGF0IGl0IGlzCisgICAgICAgIC8vIG9rIGZvciBUZXN0MDUgdG8gaGF2ZSBubyBkYXRhIGluIGl0cyBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZC4KKworICAgICAgICB7ICJUZXN0MDYiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3QgdGhhdCBoYXMgYmFkIGRhdGEuIiB9LAorICAgICAgICAgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJUaGlzIGlsbHVzdHJhdGVzIGhvdyBhIGRhdGEgZXJyb3Igd2lsbCBhdXRvbWF0aWNhbGx5ICIgKworICAgICAgICAgICAgICAidGVybWluYXRlIHRoZSBzZXR0aW5ncyBhbmQgY2FzZXMgbG9vcC4iIH0sCisgICAgICAgICAgICB7ICJIZWFkZXJzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJJc0dvb2QiLCAiRGF0YSIsCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJHb29kIiwgIjIzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIkdvb2QiLCAiLTEyMyIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJCYWQiLCAiV2hvb3BzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIk5vdCBFeGVjdXRlZCIsICIzNSIgfSwKKyAgICAgICAgfX0sCisgICAgICAgIH19LAorCisgICAgICAgIHsgIlRlc3QwNyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdGVzdCB0aGF0IGZhaWxzIHdpdGggYSBjZXJ0YWluIGNvbWJpbmF0aW9uIG9mIHNldHRpbmdzIGFuZCBjYXNlLiIgfSwKKyAgICAgICAgICAgIHsgIkxvbmdfRGVzY3JpcHRpb24iLCAiVGhpcyBpbGx1c3RyYXRlcyBob3cgYSB0ZXN0IGVycm9yIHdpbGwgYXV0b21hdGljYWxseSAiICsKKyAgICAgICAgICAgICAgInRlcm1pbmF0ZSB0aGUgc2V0dGluZ3MgYW5kIGNhc2VzIGxvb3AuICBTZXR0aW5ncyBkYXRhIGlzIHZhbHVlcywgdGhlIGNhc2UgIiArCisgICAgICAgICAgICAgICJkYXRhIGlzIGZhY3RvcnMuICBUaGUgdGhpcmQgZmFjdG9yIGlzIG5vdCBhIGZhY3RvciBvZiB0aGUgc2Vjb25kIHZhbHVlLiAgIiArCisgICAgICAgICAgICAgICJUaGUgdGVzdCB3aWxsIGxvZyBhbiBlcnJvciwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IHN0b3AgdGhlIGxvb3AuIiB9LAorICAgICAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiRmFjdG9yIiwKKyAgICAgICAgICAgIH19LAorICAgICAgICB9fSwKKyAgICAgICAgeyAiU2V0dGluZ3MiICwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICIyMTAiIH19LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIjQyMCIgfX0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXSB7eyAiVmFsdWUiLCAiNDIiIH19LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIk5vdCByZWFjaGVkLiIgfX0KKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIyIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjMiIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiNSIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICI3IiB9LAorICAgICAgICB9fSwKKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDA4IiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0ZXN0IHdpdGggZGF0YSBtaXNzaW5nIGZyb20gYSB0ZXN0IGNhc2UuIiB9LAorICAgICAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiT25lIiwgIlR3byIsICJUaHJlZSIKKyAgICAgICAgICAgIH19LAorICAgICAgICB9fSwKKyAgICAgICAgeyAiQ2FzZXMiLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjEiLCAiMiIsICIzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjQiLCAiNSIgfSwgLy8gdG9vIHNob3J0CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiNiIsICI3IiwgIjgiIH0sCisgICAgICAgIH19LAorICAgICAgICB9fSwKKworICAgICAgICB7ICJUZXN0MDkiLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3Qgd2l0aCBkYXRhIHN0b3JlZCBhcyBpbnQgYXJyYXlzIGluc3RlYWQgb2Ygc3RyaW5ncyIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIlJhZGl4IiwgIlBvd2VyIiwgIlZhbHVlIgorICAgICAgICAgICAgfX0sCisgICAgICAgIH19LAorICAgICAgICB7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiMiIsIG5ldyBpbnRbXSB7IDEsIDIsIDMgfSwgbmV3IGludFtdIHsgMiwgNCwgOCB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIzIiwgbmV3IGludFtdIHsgMywgNCwgNSB9LCBuZXcgaW50W10geyAyNywgODEsIDI0MyB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIyIiwgbmV3IGludFtdIHsgMCwgOCwgMTYsIDI0IH0sIG5ldyBpbnRbXSB7IDEsIDI1NiwgNjU1MzYsIDY1NTM2ICogMjU2IH19LAorICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgfX0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9TZWFyY2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFmMzJmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTk3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvU3RyaW5nU2VhcmNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3Qvc3JjaHRlc3QuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VhcmNoOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK3B1YmxpYyBjbGFzcyBTZWFyY2hUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLy9pbm5lciBjbGFzcworICAgIHN0YXRpYyBjbGFzcyBTZWFyY2hEYXRhIHsKKyAgICAgICAgU2VhcmNoRGF0YShTdHJpbmcgdGV4dCwgU3RyaW5nIHBhdHRlcm4sIFN0cmluZyBjb2xsLCBpbnQgc3RyZW5ndGgsIFN0cmluZyBicmVha2VyLAorICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldCwgaW50W10gc2l6ZSkgeworICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgICAgICB0aGlzLmNvbGxhdG9yID0gY29sbDsKKyAgICAgICAgICAgIHRoaXMuc3RyZW5ndGggPSBzdHJlbmd0aDsKKyAgICAgICAgICAgIHRoaXMuYnJlYWtlciA9IGJyZWFrZXI7CisgICAgICAgICAgICB0aGlzLm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICB0ZXh0OworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIHBhdHRlcm47CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgY29sbGF0b3I7CisgICAgICAgIGludCAgICAgICAgICAgICAgICAgc3RyZW5ndGg7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgYnJlYWtlcjsKKyAgICAgICAgaW50W10gICAgICAgICAgICAgICBvZmZzZXQ7CisgICAgICAgIGludFtdICAgICAgICAgICAgICAgc2l6ZTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2VuX3VzXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2ZyX2ZyXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2RlXzsKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2VzXzsKKyAgICBCcmVha0l0ZXJhdG9yICAgICBtX2VuX3dvcmRicmVha2VyXzsKKyAgICBCcmVha0l0ZXJhdG9yICAgICBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfOworCisgICAgc3RhdGljIFNlYXJjaERhdGFbXSBCQVNJQyA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInh4eHh4eHh4eHh4eHh4eHh4eHh4IiwgICAgICAgICAgImZpc2hlciIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgICAgICAgICAgICBuZXcgaW50W117MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyIsICAgICAgICAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxMywgLTF9LCAgICAgICAgIG5ldyBpbnRbXXs2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzcHJpbmcgc3RyaW5nIHN0cmluZyIsICAgICJzdHJpbmciLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEzLCAyMCwgLTF9LCAgICAgbmV3IGludFtdezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHN0cmluZyBzcHJpbmcgc3RyaW5nIiwgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117NiwgMjAsIC0xfSwgICAgICBuZXcgaW50W117NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic3RyaW5nIHNwcmluZyBzdHJpbmciLCAgICAgICAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXswLCAxNCwgLTF9LCAgICAgIG5ldyBpbnRbXXs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICAgICAgICAgICAgICAgICAgICJjIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlNjb3R0IEdhbnlvIiwgICAgICAgICAgICAgICAgICAgIiAiLCAgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117NSwgLTF9LCAgICAgICAgICBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXstMX0sICAgICAgICAgICAgIG5ldyBpbnRbXXswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICJcdTAzMDAiLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdey0xfSwgICAgICAgICAgICAgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAgICAgICAgICAgICAgICAgIlx1MDMwMFx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MSwgLTF9LCAgICAgICAgICBuZXcgaW50W117Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMGIiLCAgICAgICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwYzkiLCAgICAgICAgICAgICAgICAgICAgICAgICJlIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5QUklNQVJZLCAgbnVsbCwgbmV3IGludFtdezAsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117LTF9LCAgICAgICAgICAgICBuZXcgaW50W117MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQlJFQUtJVEVSQVRPUkVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3h5IGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezAsIDUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3h5IGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHs1LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAxNCwgLTF9LCBuZXcgaW50W10gezMsIDJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7MTAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJDaGFubmVsLCBhbm90aGVyIGNoYW5uZWwsIG1vcmUgY2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBDaGFubmVsIiwgIkNoYW5uZWwiLCAiZXMiLCBDb2xsYXRvci5URVJUSUFSWSwKKyAgICAgICAgICAgICAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezAsIDU0LCAtMX0sIG5ldyBpbnRbXSB7NywgN30pLAorICAgICAgICAvKiBqaXR0ZXJidWcgMTc0NSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IFx1MDBlOSBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwKKyAgICAgICAgICAgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxLCAxNywgMzAsIC0xfSwgbmV3IGludFtdIHsxLCAxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0ZXN0aW5nIHRoYXQgc3RyaW5nIGFiXHUwMGU5Y2QgZG9lcyBub3QgbWF0Y2ggZSIsICJlIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksCisgICAgICAgICAgICAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMjgsIDQxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgImUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W117MCwgLTF9LCBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHswLCA1LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7NSwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxMCwgMTQsIC0xfSwgbmV3IGludFtdIHszLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQ2hhbm5lbCwgYW5vdGhlciBjaGFubmVsLCBtb3JlIGNoYW5uZWxzLCBhbmQgb25lIGxhc3QgQ2hhbm5lbCIsICJDaGFubmVsIiwgImVzIiwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgNTQsIC0xfSwgbmV3IGludFtdIHs3LCA3fSksCisgICAgICAgIC8qIGppdHRlcmJ1ZyAxNzQ1ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0ZXN0aW5nIHRoYXQgXHUwMGU5IGRvZXMgbm90IG1hdGNoIGUiLCAiZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLAorICAgICAgICAgICAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDE3LCAzMCwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRlc3RpbmcgdGhhdCBzdHJpbmcgYWJcdTAwZTljZCBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLAorICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMjgsIDQxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgImUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W117MCwgLTF9LCBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQkFTSUNDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInh4eHh4eHh4eHh4eHh4eHh4eHh4IiwgImZpc2hlciIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludCBbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyIsICJzdHJpbmciLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxMywgLTF9LCBuZXcgaW50W10gezZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHNwcmluZyBzdHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEzLCAyMCwgLTF9LCBuZXcgaW50W10gezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHN0cmluZyBzcHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezYsIDIwLCAtMX0sIG5ldyBpbnRbXSB7NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic3RyaW5nIHNwcmluZyBzdHJpbmciLCAic3RyaW5nIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMTQsIC0xfSwgbmV3IGludFtdIHs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICJjIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlNjb3R0IEdhbnlvIiwgIiAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs1LCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50IFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludCBbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzAwXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W117Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMGIiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNWIiLCAiXHUwMzAwYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMjVcdTAzMDBBXHUwMzI1XHUwMzAwIiwgIlx1MDMwMEFcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7NX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzI1XHUwMzAwQVx1MDMyNVx1MDMwMCIsICJcdTAzMjVBXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezV9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjViXHUwMzAwXHUwMzI1YyBcdTAzMjViXHUwMzAwIFx1MDMwMGJcdTAzMjUiLCAiXHUwMzAwYlx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLAorICAgICAgICAgICAgbmV3IGludFtdIHsxLCAxMiwgLTF9LCBuZXcgaW50W10gezUsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBjNFx1MDMyMyIsICJBXHUwMzIzXHUwMzA4IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwOFx1MDMyMyIsICJcdTAzMjNcdTAzMDgiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09MTEFUT1JbXSA9IHsKKyAgICAgICAgLyogZW5nbGlzaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAvKiB0YWlsb3JlZCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU3RyaW5nIFRFU1RDT0xMQVRPUlJVTEUgPSAiJiBvLE8gOyBwLFAiOworICAgIFN0cmluZyBFWFRSQUNPTExBVElPTlJVTEUgPSAiICYgYWUgOyBcdTAwZTQgJiBBRSA7IFx1MDBjNCAmIG9lIDsgXHUwMGY2ICYgT0UgOyBcdTAwZDYgJiB1ZSA7IFx1MDBmYyAmIFVFIDsgXHUwMGRjIjsKKworCisgICAgU2VhcmNoRGF0YSBDT0xMQVRPUkNBTk9OSUNBTFtdID0geworICAgICAgICAvKiBlbmdsaXNoICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3ggZnB4IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIC8qIHRhaWxvcmVkICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJmb3ggZnB4IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIENPTVBPU0lURUJPVU5EQVJJRVNbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAwQzBDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdICB7MCwgMSwgLTF9LCBuZXcgaW50W10gIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzBBIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEIiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMEMwQyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMSwgLTF9LCBuZXcgaW50W10gezEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEEiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJCXHUwMEMwIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwQiIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMEMwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIC8qIFx1MDMwMCBibG9ja2VkIGJ5IFx1MDMwMCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBibG9ja2VkIGFjY2VudCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEgQVx1MDMwMVx1MDMwQSBBXHUwMzBBXHUwMzAxIEFcdTAzMEEgXHUwMUZBIiwgIkFcdTAzMEEiLAorICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNiwgMTAsIDEzLCAtMX0sIG5ldyBpbnRbXSB7MSwgMywgMiwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgU1VQUExFTUVOVEFSWVtdID0geworICAgICAgICAvKiAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYyBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAxIFx1RDgwMVx1REMwMCBcdUQ4MDBcdURDMDBhYmMgYWJjXHVEODAwXHVEQzAwIFx1RDgwMFx1RDgwMFx1REMwMCBcdUQ4MDBcdURDMDBcdURDMDAiLAorICAgICAgICAgICAgIlx1RDgwMFx1REMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgMTMsIDIyLCAyNiwgMjksIC0xfSwgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmRcdUQ4MzRcdUREQjl0aGlzIHNlbnRlbmNlIiwgIlx1RDgzNFx1RERCOSIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCBcdUQ4MzRcdUREQjkgdGhpcyBzZW50ZW5jZSIsICIgXHVEODM0XHVEREI5ICIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZC1cdUQ4MzRcdUREQjktdGhpcyBzZW50ZW5jZSIsICItXHVEODM0XHVEREI5LSIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCxcdUQ4MzRcdUREQjksdGhpcyBzZW50ZW5jZSIsICIsXHVEODM0XHVEREI5LCIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZD9cdUQ4MzRcdUREQjk/dGhpcyBzZW50ZW5jZSIsICI/XHVEODM0XHVEREI5PyIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTdHJpbmcgQ09OVFJBQ1RJT05SVUxFID0gIiZ6ID0gYWIvYyA8IEFCIDwgWFx1MDMwMCA8IEFCQyA8IFhcdTAzMDBcdTAzMTUiOworCisgICAgU2VhcmNoRGF0YSBDT05UUkFDVElPTltdID0geworICAgICAgICAvKiBjb21tb24gZGlzY29udGlndW91cyAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDMwMFx1MDMxNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDMwMFx1MDMxNSIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICAvKiBjb250cmFjdGlvbiBwcmVmaXggKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJBQiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MiwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgLyogZGlzY29udGlndW91cyBwcm9ibGVtIGhlcmUgZm9yIGJhY2t3YXJkcyBpdGVyYXRpb24uCisgICAgICAgIGFjY2VudHMgbm90IGZvdW5kIGJlY2F1c2UgZGlzY29udGlndW91cyBzdG9yZXMgYWxsIGluZm9ybWF0aW9uICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzE5XHUwMzE1IiwgIlx1MDMxOSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgICAvKiBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzE1XHUwMzAwRCIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiWFx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJYXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgLyogYmxvY2tlZCBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJcdTAzMUFcdTAzMTVEIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiIiwgInoiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09OVFJBQ1RJT05DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyogY29tbW9uIGRpc2NvbnRpZ3VvdXMgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgLyogY29udHJhY3Rpb24gcHJlZml4ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQUIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIlx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezIsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIC8qIGRpc2NvbnRpZ3VvdXMgcHJvYmxlbSBoZXJlIGZvciBiYWNrd2FyZHMgaXRlcmF0aW9uLgorICAgICAgICBmb3J3YXJkcyBnaXZlcyAwLCA0IGJ1dCBiYWNrd2FyZHMgZ2l2ZSAxLCAzICovCisgICAgICAgIC8qIHsiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJcdTAzMTkiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgezAsIC0xfSwKKyAgICAgICAgezR9fSwgKi8KKworICAgICAgICAgLyogZW5kcyBub3Qgd2l0aCBhIGNvbnRyYWN0aW9uIGNoYXJhY3RlciAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMTVcdTAzMDBEIiwgIlhcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMDBcdTAzMUFcdTAzMTVEIiwgIlhcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezR9KSwKKyAgICAgICAgLyogYmxvY2tlZCBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJcdTAzMUFcdTAzMTVEIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsCisgICAgICAgICAgICBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYiIsICJ6IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE1BVENIW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhIGJ1c3kgYmVlIGlzIGEgdmVyeSBidXN5IGJlZWVlIiwgImJlZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLAorICAgICAgICBuZXcgaW50W10gezcsIDI2LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICAvKiAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImEgYnVzeSBiZWUgaXMgYSB2ZXJ5IGJ1c3kgYmVlZWUgd2l0aCBubyBiZWUgbGlmZSIsICJiZWUiLCBudWxsLAorICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NywgMjYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgMywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFN0cmluZyBJR05PUkFCTEVSVUxFID0gIiZhID0gXHUwMzAwIjsKKworICAgIFNlYXJjaERhdGEgSUdOT1JBQkxFW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMTVcdTAzMDAgXHUwMzE1XHUwMzAwXHUwMzE1ICIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLAorICAgICAgICAgICAgbmV3IGludFtdIHswLCAzLCAtMX0sIG5ldyBpbnRbXSB7MiwgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9STUNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDBcdTAzMjUiLCAiXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LAorICAgICAgICAgICAgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMwMFx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9STUVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBOT05OT1JNRVhBQ1RbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE9WRVJMQVBbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYWJhYmFiIiwgImFiYWIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAyLCA0LCAtMX0sIG5ldyBpbnRbXSB7NCwgNCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9OT1ZFUkxBUFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYWJhYmFiYWIiLCAiYWJhYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHs0LCA0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBPVkVSTEFQQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMiwgNCwgLTF9LAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0LCA0LCA0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBOT05PVkVSTEFQQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNCwgLTF9LCBuZXcgaW50W10gezQsIDR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFBBVFRFUk5DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJ0aGUiLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgUEFUVEVSTltdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgInRoZSIsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMzEsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBTVFJFTkdUSFtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImJsYWNrYmlyZHMgUGF0IHBcdTAwRTljaFx1MDBFOSBwXHUwMEVBY2hlIHBcdTAwRTljaGVyIHBcdTAwRUFjaGVyIFRvZCBUXHUwMEY2bmUgYmxhY2sgVG9mdSBibGFja2JpcmRzIFRvbiBQQVQgdG9laG9sZCBibGFja2JpcmQgYmxhY2stYmlyZCBwYXQgdG9lIGJpZyBUb2UiLAorICAgICAgICAgICAgICAgICAgICAgICAicGVjaGUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE1LCAyMSwgMjcsIDM0LCAtMX0sIG5ldyBpbnRbXSB7NSwgNSwgNSwgNX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQSBjaGFubmVsLCBhbm90aGVyIENIQU5ORUwsIG1vcmUgQ2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBjaGFubmVsLi4uIiwgImNoYW5uZWwiLCAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsyLCAxOSwgMzMsIDU2LCAtMX0sIG5ldyBpbnRbXSB7NywgNywgNywgN30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgU1RSRU5HVEhDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCAiZW4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCAiZW4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYmxhY2tiaXJkcyBQYXQgcFx1MDBFOWNoXHUwMEU5IHBcdTAwRUFjaGUgcFx1MDBFOWNoZXIgcFx1MDBFQWNoZXIgVG9kIFRcdTAwRjZuZSBibGFjayBUb2Z1IGJsYWNrYmlyZHMgVG9uIFBBVCB0b2Vob2xkIGJsYWNrYmlyZCBibGFjay1iaXJkIHBhdCB0b2UgYmlnIFRvZSIsCisgICAgICAgICAgICAgICAgICAgICAgICJwZWNoZSIsICJmciIsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTUsIDIxLCAyNywgMzQsIC0xfSwgbmV3IGludFtdIHs1LCA1LCA1LCA1fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezEwLCAxNCwgLTF9LCBuZXcgaW50W10gezMsIDJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkEgY2hhbm5lbCwgYW5vdGhlciBDSEFOTkVMLCBtb3JlIENoYW5uZWxzLCBhbmQgb25lIGxhc3QgY2hhbm5lbC4uLiIsICJjaGFubmVsIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdezIsIDE5LCAzMywgNTYsIC0xfSwgbmV3IGludFtdIHs3LCA3LCA3LCA3fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFNVUFBMRU1FTlRBUllDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYyBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAxIFx1RDgwMVx1REMwMCBcdUQ4MDBcdURDMDBhYmMgYWJjXHVEODAwXHVEQzAwIFx1RDgwMFx1RDgwMFx1REMwMCBcdUQ4MDBcdURDMDBcdURDMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAiXHVEODAwXHVEQzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NCwgMTMsIDIyLCAyNiwgMjksIC0xfSwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmRcdUQ4MzRcdUREQjl0aGlzIHNlbnRlbmNlIiwgIlx1RDgzNFx1RERCOSIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCBcdUQ4MzRcdUREQjkgdGhpcyBzZW50ZW5jZSIsICIgXHVEODM0XHVEREI5ICIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZC1cdUQ4MzRcdUREQjktdGhpcyBzZW50ZW5jZSIsICItXHVEODM0XHVEREI5LSIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZCxcdUQ4MzRcdUREQjksdGhpcyBzZW50ZW5jZSIsICIsXHVEODM0XHVEREI5LCIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFuZD9cdUQ4MzRcdUREQjk/dGhpcyBzZW50ZW5jZSIsICI/XHVEODM0XHVEREI5PyIsIAorICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHszLCAtMX0sIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBzdGF0aWMgU2VhcmNoRGF0YSBWQVJJQUJMRVtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJibGFja2JpcmRzIGJsYWNrIGJsYWNrYmlyZHMgYmxhY2tiaXJkIGJsYWNrLWJpcmQiLCAiYmxhY2tiaXJkIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgbmV3IGludFtdIHswLCAxNywgMjgsIDM4LCAtMX0sIG5ldyBpbnRbXSB7OSwgOSwgOSwgMTB9KSwKKworICAgICAgICAvKiB0byBzZWUgdGhhdCBpdCBkb2Vzbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcCBpZiB0aGUgc3RhcnQgb2YgdGV4dAorICAgICAgICBpcyBhIGlnbm9yYWJsZSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIiBvbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnbyIsICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwgICAgICAgICAgICAgICAgICAgICAgICIgICAiLCAgICAgICBudWxsLCBDb2xsYXRvci5QUklNQVJZLCAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAtMX0sCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9KSwKKworICAgICAgICAvKiB0ZXN0aW5nIHRpZ2h0ZXN0IG1hdGNoICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgYWJjICBhIGJjICAgYWIgYyAgICBhICBiYyAgICAgYWIgIGMiLCAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuUVVBVEVSTkFSWSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdezEsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgYWJjICBhIGJjICAgYWIgYyAgICBhICBiYyAgICAgYWIgIGMiLCAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuU0VDT05EQVJZLCAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxLCA2LCAxMywgMjEsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgNCwgNCwgNSwgNX0pLAorCisgICAgICAgIC8qIHRvdGFsbHkgaWdub3JhYmxlIHRleHQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tIiwgICAgICAgICAgICAgICAgICAgICAgICJhYmMiLCAgICAgICBudWxsLCBDb2xsYXRvci5TRUNPTkRBUlksICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgc3RhdGljIFNlYXJjaERhdGEgVEVYVENBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGhlIGZveHkgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZveCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgMTUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm94IiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W117M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSxudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU2VhcmNoVGVzdCgpCisgICAgeworCisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbV9lbl91c18gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbV9mcl9mcl8gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIG1fZGVfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImRlIiwgIkRFIikpOworICAgICAgICBtX2VzXyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICAgICAgbV9lbl93b3JkYnJlYWtlcl8gPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSBtX2RlXy5nZXRSdWxlcygpICsgRVhUUkFDT0xMQVRJT05SVUxFOworICAgICAgICBtX2RlXyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIHJ1bGVzID0gbV9lc18uZ2V0UnVsZXMoKSArIEVYVFJBQ09MTEFUSU9OUlVMRTsKKyAgICAgICAgbV9lc18gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgU2VhcmNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IFNlYXJjaFRlc3QoKS5UZXN0Q29udHJhY3Rpb24oKTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBnZXRDb2xsYXRvcihTdHJpbmcgY29sbGF0b3IpIHsKKyAgICAgICAgaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBtX2VuX3VzXzsKKyAgICAgICAgfSBpZiAoY29sbGF0b3IuZXF1YWxzKCJmciIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9mcl9mcl87CisgICAgICAgIH0gZWxzZSBpZiAoY29sbGF0b3IuZXF1YWxzKCJkZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kZV87CisgICAgICAgIH0gZWxzZSBpZiAoY29sbGF0b3IuZXF1YWxzKCJlcyIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lc187CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl91c187CisgICAgICAgIH0KKyAgICB9CisKKyAgICBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSXRlcmF0b3IoU3RyaW5nIGJyZWFrZXIpIHsKKyAgICAgICAgaWYgKGJyZWFrZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gaWYgKGJyZWFrZXIuZXF1YWxzKCJ3b3JkYnJlYWtlciIpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl93b3JkYnJlYWtlcl87CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl9jaGFyYWN0ZXJicmVha2VyXzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2xlYW4gYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbGVhbiBhc3NlcnRFcXVhbFdpdGhBdHRyaWJ1dGUoU2VhcmNoRGF0YSBzZWFyY2gsIGJvb2xlYW4gY2Fub25pY2FsLCBib29sZWFuIG92ZXJsYXApIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwoY2Fub25pY2FsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcob3ZlcmxhcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sZWFuIGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChTdHJpbmdTZWFyY2ggc3Ryc3JjaCwgU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgaW50ICAgICAgICAgICBjb3VudCAgICAgICA9IDA7CisgICAgICAgIGludCAgIG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIFN0cmluZyBtYXRjaHRleHQ7CisKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igd2l0aCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgbWF0Y2ggc3RhcnQgYW5kIGxlbmd0aCIpOworICAgICAgICB9CisgICAgICAgIC8vIHN0YXJ0IG9mIGZvbGxvd2luZyBtYXRjaGVzCisgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgLy9pbnQgeCA9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpOworICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwKKyAgICAgICAgICAgICAgICBtYXRjaGxlbmd0aCAhPSBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworCisgICAgICAgICAgICBtYXRjaHRleHQgPSBzdHJzcmNoLmdldE1hdGNoZWRUZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0VGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgaWYgKG1hdGNobGVuZ3RoID4gMCAmJgorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc3Vic3RyaW5nKG1hdGNoaW5kZXgsIG1hdGNoaW5kZXggKyBtYXRjaGxlbmd0aCkuY29tcGFyZVRvKG1hdGNodGV4dCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaGVkIHRleHQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGFydCBvZiBwcmVjZWRpbmcgbWF0Y2hlcworICAgICAgICBjb3VudCA9IGNvdW50ID09IDAgPyAwIDogY291bnQgLSAxOworICAgICAgICBtYXRjaGluZGV4ID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2gucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRUZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBpZiAobWF0Y2hsZW5ndGggPiAwICYmCisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zdWJzdHJpbmcobWF0Y2hpbmRleCwgbWF0Y2hpbmRleCArIG1hdGNobGVuZ3RoKS5jb21wYXJlVG8obWF0Y2h0ZXh0KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZm9sbG93aW5nIG1hdGNoZWQgdGV4dCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYXRjaGluZGV4ID0gY291bnQgPiAwID8gc2VhcmNoLm9mZnNldFtjb3VudCAtIDFdIDogLTE7CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnByZXZpb3VzKCk7CisgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgc2VhcmNoLnRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBmb2xsb3dpbmcgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHRpdGVyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpOworICAgICAgICBDb2xsYXRvciBkZWZhdWx0Y29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHNlYXJjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dCk7CisgICAgICAgIGlmICghc2VhcmNoLmdldFBhdHRlcm4oKS5lcXVhbHMocGF0dGVybikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0VGFyZ2V0KCkuZXF1YWxzKHRleHRpdGVyKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhkZWZhdWx0Y29sbGF0b3IpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmcpIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgc2VhcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCB0ZXh0aXRlciwgbV9mcl9mcl8pOworICAgICAgICBpZiAoIXNlYXJjaC5nZXRQYXR0ZXJuKCkuZXF1YWxzKHBhdHRlcm4pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldFRhcmdldCgpLmVxdWFscyh0ZXh0aXRlcikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9mcl9mcl8pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciwgIgorICAgICAgICAgICAgICAgICAgKyAiUnVsZUJhc2VkQ29sbGF0b3IpIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlIGRlID0gbmV3IExvY2FsZSgiZGUiLCAiREUiKTsKKyAgICAgICAgYnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoZGUpOworICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHNlYXJjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dGl0ZXIsIGRlKTsKKyAgICAgICAgaWYgKCFzZWFyY2guZ2V0UGF0dGVybigpLmVxdWFscyhwYXR0ZXJuKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRUYXJnZXQoKS5lcXVhbHModGV4dGl0ZXIpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKENvbGxhdG9yLmdldEluc3RhbmNlKGRlKSkKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZ1NlYXJjaChTdHJpbmcsIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLCBMb2NhbGUpICIKKyAgICAgICAgICAgICAgICAgICsgImVycm9yIik7CisgICAgICAgIH0KKworICAgICAgICBzZWFyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRleHRpdGVyLCBtX2ZyX2ZyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuX3dvcmRicmVha2VyXyk7CisgICAgICAgIGlmICghc2VhcmNoLmdldFBhdHRlcm4oKS5lcXVhbHMocGF0dGVybikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0VGFyZ2V0KCkuZXF1YWxzKHRleHRpdGVyKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2ZyX2ZyXykKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhtX2VuX3dvcmRicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciwgTG9jYWxlKSAiCisgICAgICAgICAgICAgICAgICArICJlcnJvciIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCQVNJQ1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCcmVha0l0ZXJhdG9yKCkgeworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gQlJFQUtJVEVSQVRPUkVYQUNUWzBdLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gQlJFQUtJVEVSQVRPUkVYQUNUWzBdLnBhdHRlcm47CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG51bGwpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHVzZWFyY2hfZ2V0QnJlYWtJdGVyYXRvciByZXR1cm5lZCB3cm9uZyBvYmplY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0QnJlYWtJdGVyYXRvcihtX2VuX2NoYXJhY3RlcmJyZWFrZXJfKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMobV9lbl9jaGFyYWN0ZXJicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciB1c2VhcmNoX2dldEJyZWFrSXRlcmF0b3IgcmV0dXJuZWQgd3Jvbmcgb2JqZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IobV9lbl93b3JkYnJlYWtlcl8pOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhtX2VuX3dvcmRicmVha2VyXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciB1c2VhcmNoX2dldEJyZWFrSXRlcmF0b3IgcmV0dXJuZWQgd3Jvbmcgb2JqZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAvLyBzcGVjaWFsIHB1cnBvc2VzIGZvciB0ZXN0cyBudW1iZXJzIDAtMworICAgICAgICAgICAgU2VhcmNoRGF0YSAgICAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgQnJlYWtJdGVyYXRvciAgICAgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgICAgICAgIC8vU3RyaW5nU2VhcmNoICAgICAgc3Ryc3JjaDsKKworICAgICAgICAgICAgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgaWYgKGJyZWFrZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKHNlYXJjaC5zdHJlbmd0aCk7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKSAhPSBicmVha2VyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYnJlYWsgaXRlcmF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggICA9IEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudCArIDFdOworICAgICAgICAgICAgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IoYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gYnJlYWtlcikgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCUkVBS0lURVJBVE9SRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvckNhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50ICAgICAgICBjb3VudCAgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAvLyBzcGVjaWFsIHB1cnBvc2VzIGZvciB0ZXN0cyBudW1iZXJzIDAtMworICAgICAgICAgICAgU2VhcmNoRGF0YSAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SQ0FOT05JQ0FMW2NvdW50XTsKKworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworCisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgc3RyaW5nIHNlYXJjaCBkYXRhIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggID0gQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50ICsgMV07CisgICAgICAgICAgICBicmVha2VyID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQoc3Ryc3JjaC5nZXRUYXJnZXQoKSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IoYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhicmVha2VyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJSRUFLSVRFUkFUT1JDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChCQVNJQ0NBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRvcigpIHsKKyAgICAgICAgLy8gdGVzdCBjb2xsYXRvciB0aGF0IHRoaW5rcyAibyIgYW5kICJwIiBhcmUgdGhlIHNhbWUgdGhpbmcKKyAgICAgICAgU3RyaW5nIHRleHQgPSBDT0xMQVRPUlswXS50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBDT0xMQVRPUlswXS5wYXR0ZXJuOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMF0pKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gVEVTVENPTExBVE9SUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0U3RyZW5ndGgoQ09MTEFUT1JbMV0uc3RyZW5ndGgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IodGFpbG9yZWQpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHModGFpbG9yZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUlsxXSkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKG1fZW5fdXNfKTsKKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9lbl91c18pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMF0pKSB7CisgICAgICAgICAgIGVycmxuKCJFcnJvciBzZWFyY2hpbmcgY29sbGF0b3IgdGVzdCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdG9yQ2Fub25pY2FsKCkgeworICAgICAgICAvKiB0ZXN0IGNvbGxhdG9yIHRoYXQgdGhpbmtzICJvIiBhbmQgInAiIGFyZSB0aGUgc2FtZSB0aGluZyAqLworICAgICAgICBTdHJpbmcgdGV4dCA9IENPTExBVE9SQ0FOT05JQ0FMWzBdLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gQ09MTEFUT1JDQU5PTklDQUxbMF0ucGF0dGVybjsKKworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gVEVTVENPTExBVE9SUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0U3RyZW5ndGgoQ09MTEFUT1JDQU5PTklDQUxbMV0uc3RyZW5ndGgpOworICAgICAgICAgICAgdGFpbG9yZWQuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBydWxlIGJhc2VkIGNvbGxhdG9yICIpOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRDb2xsYXRvcih0YWlsb3JlZCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyh0YWlsb3JlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFsxXSkpIHsKKyAgICAgICAgCWxvZ2xuKCJDT0xMQVRPUkNBTk9OSUNBTFsxXSBmYWlsZWQiKTsgIC8vIEVycm9yIHNob3VsZCBhbHJlYWR5IGJlIHJlcG9ydGVkLgorICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IobV9lbl91c18pOworICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2VuX3VzXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgCWxvZ2xuKCJDT0xMQVRPUkNBTk9OSUNBTFswXSBmYWlsZWQiKTsgIC8vIEVycm9yIHNob3VsZCBhbHJlYWR5IGJlIHJlcG9ydGVkLgorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2l0ZUJvdW5kYXJpZXMoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChDT01QT1NJVEVCT1VOREFSSUVTW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJjb21wb3NpdGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQ09NUE9TSVRFQk9VTkRBUklFU1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2l0ZUJvdW5kYXJpZXNDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJjb21wb3NpdGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoQ09NUE9TSVRFQk9VTkRBUklFU0NBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uKCkgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSBDT05UUkFDVElPTlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3IgIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09OVFJBQ1RJT05bY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IENPTlRSQUNUSU9OW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IENPTlRSQUNUSU9OW2NvdW50XS5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTlRSQUNUSU9OW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb25DYW5vbmljYWwoKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IENPTlRSQUNUSU9OUlVMRTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBjb2xsYXRvciAiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09OVFJBQ1RJT05DQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0TWF0Y2goKSB7CisgICAgICAgIFNlYXJjaERhdGEgc2VhcmNoID0gTUFUQ0hbMF07CisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50ICAgICAgICAgICBjb3VudCAgICAgID0gMDsKKyAgICAgICAgaW50ICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICBTdHJpbmcgbWF0Y2h0ZXh0OworICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaHRleHQubGVuZ3RoKCkgIT0gbWF0Y2hsZW5ndGgpeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG1hdGNoIHRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICAhPSBTdHJpbmdTZWFyY2guRE9ORSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBlbmQgb2YgbWF0Y2ggbm90IGZvdW5kIik7CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2h0ZXh0ID0gc3Ryc3JjaC5nZXRNYXRjaGVkVGV4dCgpOworICAgICAgICBpZiAobWF0Y2h0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG51bGwgbWF0Y2hlcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldEF0dHJpYnV0ZSgpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmcgIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZGVmYXVsdCBvdmVybGFwaW5nIHNob3VsZCBiZSBmYWxzZSIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgIGlmICghc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgZmFsc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIXN0cnNyY2guaXNDYW5vbmljYWwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY2Fub25pY2FsIG1hdGNoIHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbChmYWxzZSk7CisgICAgICAgIGlmIChzdHJzcmNoLmlzQ2Fub25pY2FsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNhbm9uaWNhbCBtYXRjaCBmYWxzZSIpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2V0T2Zmc2V0KCkgeworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgICAgIFN0cmluZyAgdGV4dCAgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2giKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogdGVzdGluZyBvdXQgb2YgYm91bmRzIGVycm9yICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgc2V0IG9mZnNldCBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzdHJzcmNoLnNldEluZGV4KC0xKSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAJfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KDEyOCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgxMjgpIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgaW50IGluZGV4ICAgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNbaW5kZXhdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU2VhcmNoRGF0YSAgc2VhcmNoICAgICAgPSBCQVNJQ1tpbmRleCArK107CisKKyAgICAgICAgICAgIHRleHQgPXNlYXJjaC50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0Q29sbGF0b3IoKS5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisKKyAgICAgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSA9PSAtMSA/IC0xIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLm9mZnNldFtjb3VudCArIDJdOworICAgICAgICAgICAgICAgIGlmIChzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleChzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0SW5kZXgoKSAhPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gKyAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvZmZzZXRcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFN0cmluZ1NlYXJjaC5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN0cnNyY2guZ2V0Q29sbGF0b3IoKS5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldE9mZnNldENhbm9uaWNhbCgpIHsKKworICAgICAgICBTdHJpbmcgIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gb3BlbiBTdHJpbmdTZWFyY2ghIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIC8qIHRlc3Rpbmcgb3V0IG9mIGJvdW5kcyBlcnJvciAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCgtMSk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgtMSkgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoMTI4KTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgc2V0IG9mZnNldCBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzdHJzcmNoLnNldEluZGV4KDEyOCkgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICBpbnQgICBpbmRleCAgID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDQ0FOT05JQ0FMW2luZGV4XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgIHNlYXJjaCAgICAgID0gQkFTSUNDQU5PTklDQUxbaW5kZXggKytdOworICAgICAgICAgICAgaWYgKEJBU0lDQ0FOT05JQ0FMW2luZGV4XS50ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBza2lwIHRoZSBsYXN0IG9uZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgICAgICAgICBzdHJzcmNoLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCkpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgaW50ICAgICAgICAgY291bnQgICAgICAgPSAwOworICAgICAgICAgICAgaW50IG1hdGNoaW5kZXggID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gPT0gLTEgPyAtMSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5vZmZzZXRbY291bnQgKyAyXTsKKyAgICAgICAgICAgICAgICBpZiAoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEluZGV4KCkgIT0gc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb2Zmc2V0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU3RyaW5nU2VhcmNoLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAlcyIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLmdldENvbGxhdG9yKCkuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJZ25vcmFibGUoKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IElHTk9SQUJMRVJVTEU7CisgICAgICAgIGludCAgICAgICAgY291bnQgID0gMDsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoSUdOT1JBQkxFW2NvdW50XS5zdHJlbmd0aCk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIGNvbGxhdG9yICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKElHTk9SQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0ZXh0ID0gSUdOT1JBQkxFW2NvdW50XS50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IElHTk9SQUJMRVtjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBJR05PUkFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbml0aWFsaXphdGlvbigpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuOworICAgICAgICBTdHJpbmcgIHRleHQ7CisgICAgICAgIFN0cmluZyAgdGVtcCA9ICJhIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICByZXN1bHQ7CisKKyAgICAgICAgLyogc2ltcGxlIHRlc3Qgb24gdGhlIHBhdHRlcm4gY2UgY29uc3RydWN0aW9uICovCisgICAgICAgIHBhdHRlcm4gPSB0ZW1wICsgdGVtcDsKKyAgICAgICAgdGV4dCA9IHRlbXAgKyB0ZW1wICsgdGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2ggIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0aW5nIGlmIGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24gKi8KKyAgICAgICAgcGF0dGVybiA9ICIiOworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgNTEyOyBjb3VudCArKykgeworICAgICAgICAgICAgcGF0dGVybiArPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IiArIHJlc3VsdC5nZXRQYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzdHJpbmcgc2VhcmNoIG9iamVjdCBleHBlY3RlZCB0byBtYXRjaCBpdHNlbGYiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1DYW5vbmljYWwoKSB7CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9STUNBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKE5PUk1DQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtRXhhY3QoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB3aGlsZSAoQkFTSUNbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCQVNJQ1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PUk1FWEFDVFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PUk1FWEFDVFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PTk5PUk1FWEFDVFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PTk5PUk1FWEFDVFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE9wZW5DbG9zZSgpIHsKKyAgICAgICAgU3RyaW5nU2VhcmNoICAgICAgICAgICAgcmVzdWx0OworICAgICAgICBCcmVha0l0ZXJhdG9yICAgICAgICAgICBicmVha2l0ZXIgPSBtX2VuX3dvcmRicmVha2VyXzsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICBwYXR0ZXJuID0gIiI7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgdGV4dCA9ICIiOworICAgICAgICBTdHJpbmcgICAgICAgICAgIHRlbXAgID0gImEiOworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciAgY2hhcml0ZXI9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KTsKKworICAgICAgICAvKiB0ZXN0aW5nIG51bGwgYXJndW1lbnRzICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCBhcmd1bWVudHMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCBhcmd1bWVudHMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICB0ZXh0ICA9IFN0cmluZy52YWx1ZU9mKDB4MSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHBhdHRlcm4gc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSBwYXR0ZXJuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSBwYXR0ZXJuIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogRW1wdHkgcGF0dGVybiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRleHQgPSAiIjsKKyAgICAgICAgcGF0dGVybiA9dGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogRW1wdHkgdGV4dCBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IEVtcHR5IHRleHQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHRleHQgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSB0ZXh0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgIAl9CisKKyAgICAgICAgdGV4dCArPSB0ZW1wOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgYnJlYWtpdGVyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogQnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbV9lbl91c18sIG51bGwpOworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IiArIHJlc3VsdC5nZXRQYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBCcmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPdmVybGFwKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aEF0dHJpYnV0ZShPVkVSTEFQW2NvdW50XSwgZmFsc2UsIHRydWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG92ZXJsYXAgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9OT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PTk9WRVJMQVBbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBub24gb3ZlcmxhcCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgMSkgeworICAgICAgICAgICAgU2VhcmNoRGF0YSBzZWFyY2ggPSAoT1ZFUkxBUFtjb3VudF0pOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCAgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3Igb3BlbiBTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAoIXN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlYXJjaCA9IE5PTk9WRVJMQVBbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyhmYWxzZSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE92ZXJsYXBDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChPVkVSTEFQQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoQXR0cmlidXRlKE9WRVJMQVBDQU5PTklDQUxbY291bnRdLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgb3ZlcmxhcCB0ZXN0IG51bWJlciAlZCIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT05PVkVSTEFQW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoTk9OT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG5vbiBvdmVybGFwIHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCAxKSB7CisgICAgICAgICAgICAgICAgIC8qIFVDaGFyICAgICAgIHRlbXBbMTI4XTsKKyAgICAgICAgICAgIGNvbnN0IFNlYXJjaERhdGEgKnNlYXJjaCA9ICYoT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0pOworICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOyovCisgICAgICAgICAgICBTZWFyY2hEYXRhIHNlYXJjaCA9IE9WRVJMQVBDQU5PTklDQUxbY291bnRdOworCisgICAgICAgICAgICAvKnVfdW5lc2NhcGUoc2VhcmNoLnRleHQsIHRlbXAsIDEyOCk7CisgICAgICAgICAgICBVbmljb2RlU3RyaW5nIHRleHQ7CisgICAgICAgICAgICB0ZXh0LnNldFRvKHRlbXAsIHVfc3RybGVuKHRlbXApKTsKKyAgICAgICAgICAgIHVfdW5lc2NhcGUoc2VhcmNoLnBhdHRlcm4sIHRlbXAsIDEyOCk7CisgICAgICAgICAgICBVbmljb2RlU3RyaW5nIHBhdHRlcm47CisgICAgICAgICAgICBwYXR0ZXJuLnNldFRvKHRlbXAsIHVfc3RybGVuKHRlbXApKTsqLworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHNlYXJjaC5wYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc2VhcmNoLnRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkgIT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoID0gTk9OT1ZFUkxBUENBTk9OSUNBTFtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSAhPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybigpIHsKKyAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoUEFUVEVSTlswXS5zdHJlbmd0aCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChQQVRURVJOWzBdLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihQQVRURVJOWzBdLnRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisKKyAgICAgICAgLyppZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggJXMiLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKGdldEVDb2xsYXRpb25TdHJlbmd0aChVQ09MX1RFUlRJQVJZKSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHN0cnNyY2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0qLworCisgICAgICAgIGlmIChzdHJzcmNoLmdldFBhdHRlcm4oKSAhPSBQQVRURVJOWzBdLnBhdHRlcm4pIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKFBBVFRFUk5bMV0ucGF0dGVybik7CisgICAgICAgIGlmIChQQVRURVJOWzFdLnBhdHRlcm4gIT0gc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlsxXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOWzBdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTlswXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8qIGVub3Jtb3VzIHBhdHRlcm4gc2l6ZSB0byBzZWUgaWYgdGhpcyBjcmFzaGVzICovCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gIiI7CisgICAgICAgIGZvciAoaW50IHRlbXBsZW5ndGggPSAwOyB0ZW1wbGVuZ3RoICE9IDUxMjsgdGVtcGxlbmd0aCArKykgeworICAgICAgICAgICAgcGF0dGVybiArPSAweDYxOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIHdpdGggc2l6ZSA1MTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybkNhbm9uaWNhbCgpIHsKKyAgICAgICAgLy9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFBBVFRFUk5DQU5PTklDQUxbMF0udGV4dCk7CisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKFBBVFRFUk5DQU5PTklDQUxbMF0uc3RyZW5ndGgpOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoUEFUVEVSTkNBTk9OSUNBTFswXS50ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisKKyAgICAgICAgaWYgKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOQ0FOT05JQ0FMWzFdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTkNBTk9OSUNBTFsxXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMV0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOQ0FOT05JQ0FMWzBdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNldCgpIHsKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiZmlzaCBmaXNoIik7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInMiOworCisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dCwgbV9lbl91c18sIG51bGwpOworICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCg5KTsKKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoc3Ryc3JjaC5pc0Nhbm9uaWNhbCgpIHx8IHN0cnNyY2guaXNPdmVybGFwcGluZygpIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldEluZGV4KCkgIT0gMCB8fCBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciByZXNldHRpbmcgc3RyaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5wcmV2aW91cygpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gNyB8fCBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHJlc2V0dGluZyBzdHJpbmcgc2VhcmNoXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRNYXRjaCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE1BVENIW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgICAgIHNlYXJjaCA9IE1BVENIW2NvdW50XTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChzZWFyY2gucGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHNlYXJjaC50ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuX3VzXywgbnVsbCk7CisKKyAgICAgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChzZWFyY2gub2Zmc2V0W3NpemVdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgc2l6ZSArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0cnNyY2guZmlyc3QoKSAhPSBzZWFyY2gub2Zmc2V0WzBdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZmlyc3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmxhc3QoKSAhPSBzZWFyY2gub2Zmc2V0W3NpemUgLTFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbGFzdCBtYXRjaCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgc2l6ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCArIDIgPCBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmZvbGxvd2luZyhzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0gLSAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaCBhdCBpbmRleCAiICsgKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAyXS0xKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA8IHNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnNyY2gucHJlY2VkaW5nKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAxXSArIHNlYXJjaC5zaXplW2luZGV4ICsgMV0gKyAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIHByZWNlZWRpbmcgbWF0Y2ggYXQgaW5kZXggIiArIChzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0gKyAxKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0cnNyY2guZm9sbG93aW5nKHNlYXJjaC50ZXh0Lmxlbmd0aCgpKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBvdXQgb2YgYm91bmRzIG1hdGNoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5wcmVjZWRpbmcoMCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgb3V0IG9mIGJvdW5kcyBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJlbmd0aCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNUUkVOR1RIW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAzKSBjb3VudCArKzsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoU1RSRU5HVEhbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyZW5ndGhDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVFJFTkdUSENBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMykgY291bnQgKys7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKFNUUkVOR1RIQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcGxlbWVudGFyeSgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNVUFBMRU1FTlRBUllbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChTVVBQTEVNRU5UQVJZW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnlDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVVBQTEVNRU5UQVJZQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU1VQUExFTUVOVEFSWUNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRleHQoKSB7CisgICAgICAgIFNlYXJjaERhdGEgVEVYVFtdID0geworICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEoInRoZSBmb3h5IGJyb3duIGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs0LCAxNSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W117MH0pCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVFswXS50ZXh0KTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKFRFWFRbMF0ucGF0dGVybiwgdCwgbV9lbl91c18sIG51bGwpOworCisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUWzFdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVFsxXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUZXh0Q2Fub25pY2FsKCkgeworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFRFWFRDQU5PTklDQUxbMF0udGV4dCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChURVhUQ0FOT05JQ0FMWzBdLnBhdHRlcm4sIHQsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRDQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVENBTk9OSUNBTFsxXS50ZXh0KTsKKyAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQodCk7CisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVENBTk9OSUNBTFsxXSkpIHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUQ0FOT05JQ0FMWzBdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaWFibGUoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIG1fZW5fdXNfLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgd2hpbGUgKFZBUklBQkxFW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ2YXJpYWJsZSIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKFZBUklBQkxFW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIG1fZW5fdXNfLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIHdoaWxlIChWQVJJQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigidmFyaWFibGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoVkFSSUFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ViQ2xhc3MoKQorICAgIHsKKyAgICAgICAgY2xhc3MgVGVzdFNlYXJjaCBleHRlbmRzIFNlYXJjaEl0ZXJhdG9yCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuOworICAgICAgICAgICAgU3RyaW5nIHRleHQ7CisKKyAgICAgICAgICAgIFRlc3RTZWFyY2goU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBCcmVha0l0ZXJhdG9yIGJyZWFrZXIsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN1cGVyKHRhcmdldCwgYnJlYWtlcik7CisgICAgICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHdoaWxlICh0YXJnZXRUZXh0LmdldEluZGV4KCkgIT0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVOZXh0KGludCBzdGFydCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2ggPSB0ZXh0LmluZGV4T2YocGF0dGVybiwgc3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5sYXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1hdGNoKTsKKyAgICAgICAgICAgICAgICBzZXRNYXRjaExlbmd0aChwYXR0ZXJuLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZVByZXZpb3VzKGludCBzdGFydCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2ggPSB0ZXh0Lmxhc3RJbmRleE9mKHBhdHRlcm4sIHN0YXJ0IC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtYXRjaCk7CisgICAgICAgICAgICAgICAgc2V0TWF0Y2hMZW5ndGgocGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA+PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGVzdFNlYXJjaCBzZWFyY2ggPSBuZXcgVGVzdFNlYXJjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoImFiYyBhYmNkIGFiYyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICJhYmMiKTsKKyAgICAgICAgaW50IGV4cGVjdGVkW10gPSB7MCwgNCwgOX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoc2VhcmNoLm5leHQoKSAhPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZWFyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSBzZWFyY2gucGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2ggbGVuZ3RoIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlYXJjaC5uZXh0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNob3VsZCBoYXZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IGV4cGVjdGVkLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgaWYgKHNlYXJjaC5wcmV2aW91cygpICE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbmV4dCBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNlYXJjaC5nZXRNYXRjaExlbmd0aCgpICE9IHNlYXJjaC5wYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbmV4dCBtYXRjaCBsZW5ndGgiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2VhcmNoLnByZXZpb3VzKCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNob3VsZCBoYXZlIHJlYWNoZWQgdGhlIHN0YXJ0IG9mIHRoZSBpdGVyYXRpb24iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUyMjM5N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIGludGVybmF0aW9uYWwgc2VhcmNoIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlY3VyaXR5LnBvbGljeSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFkZjE3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kKQEAgLTAsMCArMSw0NyBAQAorLy8jCisgLy8jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8jKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorLy8jKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorLy8jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8jKiBUaGlzIGlzIHRoZSBhbnQgYnVpbGQgZmlsZSBmb3IgSUNVNEouICBTZWUgcmVhZG1lLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisvLyMqCisvLyBwb2xpY2llcyBuZWVkZWQgdG8gcnVuIHRlc3RzCitncmFudCAvLyBjb2RlYmFzZSAiZmlsZToke3VzZXIuZGlyfS9pY3U0anRlc3RzLmphciIKK3sKKwkvLyB0ZW1wb3JhcnkgZm9yIGRlYnVnZ2luZworICAgICAgICAvLyBwZXJtaXNzaW9uIGphdmEubGFuZy5SdW50aW1lUGVybWlzc2lvbiAiZ2V0UHJvdGVjdGlvbkRvbWFpbiI7CisKKwkvLyBpYm0gMTQxIG9uIGlibSB4cCBjYW4ndCB1c2UgcmVmbGVjdGlvbgorCXBlcm1pc3Npb24gamF2YS5sYW5nLlJ1bnRpbWVQZXJtaXNzaW9uICJhY2Nlc3NEZWNsYXJlZE1lbWJlcnMiOworCisJLy8gbmVlZGVkIGZvciBMb2NhbGUuc2V0RGVmYXVsdCwgb25seSB1c2VkIGluIHRlc3RzIGFuZCBkZW1vcworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAidXNlci5sYW5ndWFnZSIsICJ3cml0ZSI7CisKKwkvLyBuZWVkZWQgZm9yIFRlc3RVdGlscworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAiSUNVRGF0YVBhdGgiLCAicmVhZCI7CisJcGVybWlzc2lvbiBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uICJ1c2VyLmRpciIsICJyZWFkIjsKKyAgICBwZXJtaXNzaW9uIGphdmEudXRpbC5Qcm9wZXJ0eVBlcm1pc3Npb24gIlVfUkJCSURFQlVHIiwgInJlYWQiOworCQorICAgIC8vIHRpbWUgem9uZSB0ZXN0cworCXBlcm1pc3Npb24gamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbiAidXNlci50aW1lem9uZSIsICJyZWFkIjsKKyAgICAKKyAgICAvL2ZvciBjaGFyc2V0cworICAgIHBlcm1pc3Npb24gamF2YS5sYW5nLlJ1bnRpbWVQZXJtaXNzaW9uICJjaGFyc2V0UHJvdmlkZXIiLCAicmVhZCI7CisKK307CisKKy8vIHRoZXJlIG11c3QgYmUgYSB3YXkgZm9yIGNvZGUgaW4gb25lIGphciBmaWxlIHRvIGNhbGwgY29kZSBpbiBhbm90aGVyIGphcgorLy8gZmlsZSBhbmQgZ2l2ZSB0aGUgY2FsbGVkIGNvZGUgcGVybWlzc2lvbiB0byByZWFkIHRoZSBjYWxsaW5nIGNvZGUncworLy8gamFyLiAgdGhleSdyZSBpbiBkaWZmZXJlbnQgcHJvdGVjdGlvbiBkb21haW5zIGRlc3BpdGUgYmVpbmcgb24gdGhlCisvLyBzYW1lIGNsYXNzcGF0aCBhbmQgYmVpbmcgbG9hZGVkIGJ5IHRoZSBzYW1lIGNsYXNzIGxvYWRlciwgc28gdGhlIGNsYXNzCisvLyBsb2FkZXIgZG9lc24ndCBkaXNhbWJpZ3VhdGUgd2hpY2ggcHJvdGVjdGlvbiBkb21haW4gd2UncmUgdXNpbmcuIGl0J3MKKy8vIG5vdCBlYXN5IHRvIGZpZ3VyZSBvdXQgdGhlIHNlY3VyaXR5IGRvY3MsIHNpZ2guCisvLworLy8gdGhpcyBpcyBzbyBJQ1VEYXRhIChpbiBpY3U0ai5qYXIpLCBjYWxsZWQgZnJvbSB0ZXN0IGNvZGUgKGluIGljdTRqdGVzdHMuamFyKQorLy8gY2FuIHJlYWQgdGVzdCByZXNvdXJjZSBmaWxlcyAoaW4gaWN1NGp0ZXN0cy5qYXIiCisvLworZ3JhbnQgY29kZWJhc2UgImZpbGU6JHt1c2VyLmRpcn0vaWN1NGouamFyIgoreworCXBlcm1pc3Npb24gamF2YS5pby5GaWxlUGVybWlzc2lvbiAiJHsvfSR7dXNlci5kaXJ9JHsvfWljdTRqdGVzdHMuamFyIiwgInJlYWQiOworCXBlcm1pc3Npb24gamF2YS5pby5GaWxlUGVybWlzc2lvbiAiJHsvfSR7dXNlci5kaXJ9JHsvfWljdTRqLWNoYXJzZXRzLmphciIsICJyZWFkIjsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9DYWxlbmRhclRlc3RzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0NhbGVuZGFyVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjY1MTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9DYWxlbmRhclRlc3RzLmphdmEKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhclRlc3RzCit7CisgICAgc3RhdGljIGNsYXNzIENhbGVuZGFySGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IENhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UocHN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsX2EgPSAoQ2FsZW5kYXIpIGE7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxfYiA9IChDYWxlbmRhcikgYjsKKyAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbF9hLnNldFRpbWVJbk1pbGxpcyhub3cpOworICAgICAgICAgICAgY2FsX2Eucm9sbChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbF9iLnNldFRpbWVJbk1pbGxpcyhub3cpOworICAgICAgICAgICAgY2FsX2Iucm9sbChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxfYS5nZXRUaW1lKCkuZXF1YWxzKGNhbF9hLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQnVkZGhpc3RDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIHRzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL0Jhbmdrb2siKTsKKyAgICAgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQnVkZGhpc3RDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKHRzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoaW5lc2VDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGNzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL1NoYW5naGFpIik7CisgICAgICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQ2hpbmVzZUNhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IENoaW5lc2VDYWxlbmRhcihjc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ29wdGljQ2FsZW5kYXJIYW5kbGVyIGV4dGVuZHMgQ2FsZW5kYXJIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBhc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRXVyb3BlL0F0aGVucyIpOworICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQ29wdGljQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgQ29wdGljQ2FsZW5kYXIoYXN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgRXRoaW9waWNDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGFzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBZnJpY2EvQWRkaXNfQWJhYmEiKTsKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgRXRoaW9waWNDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKGFzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdyZWdvcmlhbkNhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEhlYnJld0NhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUganN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvSmVydXNhbGVtIik7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBIZWJyZXdDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBIZWJyZXdDYWxlbmRhcihqc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgY3N0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFmcmljYS9DYWlybyIpOworICAgICAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IElzbGFtaWNDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoY3N0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSmFwYW5lc2VDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGpzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IEphcGFuZXNlQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihqc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICAvL25vdGhpbmcgbmVlZGVkIHlldC4uLgorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ29tcGF0aWJpbGl0eVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2M4NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5qYXIuSmFyRW50cnk7CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJGaWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisvL2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENvbXBhdGliaWxpdHlUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgY2xhc3MgRm9sZGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcml2YXRlIFRhcmdldCBoZWFkID0gbmV3IFRhcmdldChudWxsKTsKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgdGFpbCA9IGhlYWQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgRm9sZGVyVGFyZ2V0KFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyBjbGFzc05hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBIYW5kbGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBIYW5kbGVyVGFyZ2V0KGNsYXNzTmFtZSwgaXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0YWlsLnNldE5leHQobmV3VGFyZ2V0KTsKKyAgICAgICAgICAgIHRhaWwgPSBuZXdUYXJnZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKFRhcmdldCB0YXJnZXQgPSBoZWFkLmdldE5leHQoKTsgdGFyZ2V0ICE9IG51bGw7IHRhcmdldCA9IHRhcmdldC5nZXROZXh0KCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnJ1bigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwgLT0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBIYW5kbGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcm90ZWN0ZWQgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyIGhhbmRsZXIgPSBudWxsOworICAgICAgICBwcm90ZWN0ZWQgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgcHVibGljIEhhbmRsZXJUYXJnZXQoU3RyaW5nIG5hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlciA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0SGFuZGxlcihuYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXIgIT0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBhcmFtcy5pbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZXhlY3V0ZQorICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyYW1zLnN0YWNrLmluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMudGVzdENvdW50ICs9IDE7CisgICAgCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgICAgICBPYmplY3QgaW5wdXRPYmplY3RzW10gPSAoT2JqZWN0W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRlc3RPYmplY3RzW10gPSBoYW5kbGVyLmdldFRlc3RPYmplY3RzKCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBhZGQgZXF1YWxpdHkgdGVzdC4uLgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY29tbWVudGVkIG91dCBjb2RlIGJlbG93IGRvZXMgdGhhdCwKKyAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNvbWUgdGVzdCBvYmplY3RzIGRvbid0IGRlZmluZSBhbiBlcXVhbHMoKSBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgZGVmYXVsdCBtZXRob2QgaXMgdGhlIHNhbWUgYXMgdGhlICI9PSIgb3BlcmF0b3IuLi4KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkgKz0gMSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAoISBpbnB1dE9iamVjdHNbaV0uZXF1YWxzKHRlc3RPYmplY3RzW2ldKSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGVxdWFsaXR5IHRlc3QuIik7CisgICAgLy8gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgaGFuZGxlci5oYXNTYW1lQmVoYXZpb3IoaW5wdXRPYmplY3RzW2ldLCB0ZXN0T2JqZWN0c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGJlaGF2aW9yIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgZGF0YS4gIitlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBUYXJnZXQgZ2V0RmlsZVRhcmdldHMoVVJMIGZpbGVVUkwpCisgICAgeworICAgICAgICBGaWxlIHRvcERpciA9IG5ldyBGaWxlKGZpbGVVUkwuZ2V0UGF0aCgpKTsKKyAgICAgICAgRmlsZSBkYXRhRGlyc1tdID0gdG9wRGlyLmxpc3RGaWxlcygpOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGQgPSAwOyBkIDwgZGF0YURpcnMubGVuZ3RoOyBkICs9IDEpIHsKKyAgICAgICAgICAgIEZpbGUgZGF0YURpciA9IGRhdGFEaXJzW2RdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGF0YURpci5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgRm9sZGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBGb2xkZXJUYXJnZXQoZGF0YURpci5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIEZpbGUgZmlsZXNbXSA9IGRhdGFEaXIubGlzdEZpbGVzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmV3VGFyZ2V0LnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdUYXJnZXQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGZpbGUgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZmlsZS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IGZpbGVuYW1lLmluZGV4T2YoIi5kYXQiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpeCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXM7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFRhcmdldCBnZXRKYXJUYXJnZXRzKFVSTCBqYXJVUkwpCisgICAgeworICAgICAgICBTdHJpbmcgcHJlZml4ID0gamFyVVJMLmdldFBhdGgoKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnREaXIgPSBudWxsOworICAgICAgICBpbnQgaXggPSBwcmVmaXguaW5kZXhPZigiIS8iKTsKKyAgICAgICAgSmFyRmlsZSBqYXJGaWxlOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChpeCA+PSAwKSB7CisgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXguc3Vic3RyaW5nKGl4ICsgMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBKYXJVUkxDb25uZWN0aW9uIGNvbm4gPSAoSmFyVVJMQ29ubmVjdGlvbikgamFyVVJMLm9wZW5Db25uZWN0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGphckZpbGUgPSBjb25uLmdldEphckZpbGUoKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cmllcyA9IGphckZpbGUuZW50cmllcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEphckVudHJ5IGVudHJ5ID0gKEphckVudHJ5KWVudHJpZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGVudHJ5LmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoISBlbnRyeS5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHggPSBuYW1lLmxhc3RJbmRleE9mKCIvIik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlyTmFtZSAgPSBuYW1lLnN1YnN0cmluZygxLCBkeCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBuYW1lLnN1YnN0cmluZyhkeCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBkaXJOYW1lLmVxdWFscyhjdXJyZW50RGlyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREaXIgPSBkaXJOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGRlclRhcmdldCBuZXdUYXJnZXQgPSBuZXcgRm9sZGVyVGFyZ2V0KGN1cnJlbnREaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RhcmdldC5zZXROZXh0KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3VGFyZ2V0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeHggPSBmaWxlbmFtZS5pbmRleE9mKCIuZGF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4eCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIHh4KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBqYXJGaWxlLmdldElucHV0U3RyZWFtKGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiamFyIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpCisgICAgeworICAgICAgICBVUkwgZGF0YVVSTCA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2UoImRhdGEiKTsKKyAgICAgICAgU3RyaW5nIHByb3RvY29sID0gZGF0YVVSTC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3RvY29sLmVxdWFscygiamFyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRKYXJUYXJnZXRzKGRhdGFVUkwpOworICAgICAgICB9IGVsc2UgaWYgKHByb3RvY29sLmVxdWFscygiZmlsZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RmlsZVRhcmdldHMoZGF0YVVSTCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRG9uJ3Qga25vdyBob3cgdG8gdGVzdCAiICsgZGF0YVVSTC5nZXRQYXRoKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgQ29tcGF0aWJpbGl0eVRlc3QgdGVzdCA9IG5ldyBDb21wYXRpYmlsaXR5VGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db3ZlcmFnZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY5NGE1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1vZGlmaWVyOworaW1wb3J0IGphdmEubmV0LlVSTDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVJMSGFuZGxlcjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENvdmVyYWdlVGVzdCBleHRlbmRzIENvbXBhdGliaWxpdHlUZXN0IGltcGxlbWVudHMgVVJMSGFuZGxlci5VUkxWaXNpdG9yCit7CisKKyAgICBwcml2YXRlIHN0YXRpYyBDbGFzcyBzZXJpYWxpemFibGU7CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgICAgICB0cnkgeyAgICAKKyAgICAgICAgICAgIHNlcmlhbGl6YWJsZSA9IENsYXNzLmZvck5hbWUoImphdmEuaW8uU2VyaWFsaXphYmxlIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSBpbiBkZWVwIHRyb3VibGUuLi4KKyAgICAgICAgICAgIHdhcm5sbigiV29vcHMhIENhbid0IGdldCBjbGFzcyBpbmZvIGZvciBTZXJpYWxpemFibGUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFRhcmdldCBoZWFkID0gbmV3IFRhcmdldChudWxsKTsKKyAgICBwcml2YXRlIFRhcmdldCB0YWlsID0gaGVhZDsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBwYXRoOworICAgIAorICAgIHB1YmxpYyBDb3ZlcmFnZVRlc3QoKQorICAgIHsKKyAgICAgICAgdGhpcyhudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvdmVyYWdlVGVzdChTdHJpbmcgcGF0aCkKKyAgICB7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIAorICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKHBhdGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGRpci5ta2RpcnMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVGaWxlKFN0cmluZyBjbGFzc05hbWUsIGJ5dGUgYnl0ZXNbXSkKKyAgICB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKHBhdGggKyBGaWxlLnNlcGFyYXRvciArIGNsYXNzTmFtZSArICIuZGF0Iik7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gc3RyZWFtOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzdHJlYW0ud3JpdGUoYnl0ZXMpOworICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgLSBjYW4ndCB3cml0ZSBmaWxlISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBhZGQoU3RyaW5nIGNsYXNzTmFtZSwgaW50IGNsYXNzTW9kaWZpZXJzLCBieXRlIGJ5dGVzW10pCisgICAgeworICAgICAgICBDb3ZlcmFnZVRhcmdldCBuZXdUYXJnZXQgPSBuZXcgQ292ZXJhZ2VUYXJnZXQoY2xhc3NOYW1lLCBjbGFzc01vZGlmaWVycywgYnl0ZXMpOworICAgICAgICAKKyAgICAgICAgdGFpbC5zZXROZXh0KG5ld1RhcmdldCk7CisgICAgICAgIHRhaWwgPSBuZXdUYXJnZXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjbGFzcyBDb3ZlcmFnZVRhcmdldCBleHRlbmRzIEhhbmRsZXJUYXJnZXQKKyAgICB7CisgICAgICAgIHByaXZhdGUgYnl0ZSBieXRlc1tdOworICAgICAgICBwcml2YXRlIGludCBtb2RpZmllcnM7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ292ZXJhZ2VUYXJnZXQoU3RyaW5nIGNsYXNzTmFtZSwgaW50IGNsYXNzTW9kaWZpZXJzLCBieXRlIGJ5dGVzW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKGNsYXNzTmFtZSwgYnl0ZXMgPT0gbnVsbD8gbnVsbCA6IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLmJ5dGVzID0gYnl0ZXM7CisgICAgICAgICAgICBtb2RpZmllcnMgPSBjbGFzc01vZGlmaWVyczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdmFsaWRhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoKSB8fCBNb2RpZmllci5pc0Fic3RyYWN0KG1vZGlmaWVycyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLnRlc3RDb3VudCArPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjID0gQ2xhc3MuZm9yTmFtZShuYW1lKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBGaWVsZCB1aWQgPSBjLmdldERlY2xhcmVkRmllbGQoInNlcmlhbFZlcnNpb25VSUQiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm8gc2VyaWFsVmVyc2lvblVJRCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShuYW1lLCBieXRlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN1cGVyLmV4ZWN1dGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB2aXNpdChTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgaWYoc2VyaWFsaXphYmxlPT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgaXggPSBzdHIubGFzdEluZGV4T2YoIi5jbGFzcyIpOworICAgICAgICAKKyAgICAgICAgaWYgKGl4ID49IDApIHsKKyAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSAiY29tLmlibS5pY3UiICsgc3RyLnN1YnN0cmluZygwLCBpeCkucmVwbGFjZSgnLycsICcuJyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFNraXAgdGhpbmdzIGluIGNvbS5pYm0uaWN1LmRldjsgdGhleSdyZSBub3QgcmVsZXZhbnQuCisgICAgICAgICAgICBpZiAoY2xhc3NOYW1lLnN0YXJ0c1dpdGgoImNvbS5pYm0uaWN1LmRldi4iKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjID0gQ2xhc3MuZm9yTmFtZShjbGFzc05hbWUpOworICAgICAgICAgICAgICAgIGludCAgIG0gPSBjLmdldE1vZGlmaWVycygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGUuaXNBc3NpZ25hYmxlRnJvbShjKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNQdWJsaWMobSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlciBoYW5kbGVyID0gU2VyaWFsaXphYmxlVGVzdC5nZXRIYW5kbGVyKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qgb2JqZWN0c091dFtdID0gaGFuZGxlci5nZXRUZXN0T2JqZWN0cygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzSW5bXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ5dGVPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZU91dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KG9iamVjdHNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZU91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJFcnJvciB3cml0aW5nIHRlc3Qgb2JqZWN0czogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkKGNsYXNzTmFtZSwgbSwgYnl0ZU91dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkKGNsYXNzTmFtZSwgbSwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiY292ZXJhZ2Ugb2YgIiArIGNsYXNzTmFtZSArICI6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oImNvdmVyYWdlIG9mICIgKyBjbGFzc05hbWUgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpCisgICAgeworICAgICAgICAKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd29uJ3QgcnVuIHVuZGVyIGEgc2VjdXJpdHkgbWFuYWdlcgorICAgICAgICAgICAgcmV0dXJuIG5ldyBDb3ZlcmFnZVRhcmdldCgiU2tpcHBlZCBEdWUgVG8gU2VjdXJpdHkgTWFuYWdlciIsIE1vZGlmaWVyLkFCU1RSQUNULCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYoc2VyaWFsaXphYmxlPT1udWxsKXsKKyAgICAgICAgICAgIGluaXQoKTsKKyAgICAgICAgfQorICAgICAgICBVUkwgdXJsID0gZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgiL2NvbS9pYm0vaWN1Iik7CisgICAgICAgIFVSTEhhbmRsZXIgaGFuZGxlciAgPSBVUkxIYW5kbGVyLmdldCh1cmwpOworICAgICAgICAKKyAgICAgICAgaGFuZGxlci5ndWlkZSh0aGlzLCB0cnVlLCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGVhZC5nZXROZXh0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBDb3ZlcmFnZVRlc3QgdGVzdCA9IG5ldyBDb3ZlcmFnZVRlc3QoKTsKKyAgICAgICAgCisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRXhjZXB0aW9uVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRXhjZXB0aW9uVGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjJjODQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9FeGNlcHRpb25UZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEV4Y2VwdGlvblRlc3RzCit7CisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIGFic3RyYWN0IHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRXhjZXB0aW9uIGVhID0gKEV4Y2VwdGlvbikgYTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlYiA9IChFeGNlcHRpb24pIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBlYS50b1N0cmluZygpLmVxdWFscyhlYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbkhhbmRsZXIgZXh0ZW5kcyBFeGNlcHRpb25IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGV4Y2VwdGlvbnNbXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBleGNlcHRpb25zOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb25IYW5kbGVyIGV4dGVuZHMgRXhjZXB0aW9uSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gIlRoaXMgaXMgYSB2ZXJ5IG9kZCBsaXR0bGUgc2V0IG9mIHJ1bGVzLCBqdXN0IGZvciB0ZXN0aW5nLCB5b3Uga25vdy4uLiI7CisgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uc1tdID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnNbaV0gPSBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSwgaSwgcnVsZXMsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uSGFuZGxlciBleHRlbmRzIEV4Y2VwdGlvbkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBleGNlcHRpb25zW10gPSBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24obG9jYWxlc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIEludmFsaWRGb3JtYXRFeGNlcHRpb25IYW5kbGVyIGV4dGVuZHMgRXhjZXB0aW9uSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbiBleGNlcHRpb25zW10gPSBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnNbaV0gPSBuZXcgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbihsb2NhbGVzW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRm9ybWF0VGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRm9ybWF0VGVzdHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmQ1MmNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Gb3JtYXRUZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTM5OSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEZvcm1hdFRlc3RzCit7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE51bWJlckZvcm1hdEhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRzW10gPSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdF9hID0gKE51bWJlckZvcm1hdCkgYTsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRfYiA9IChOdW1iZXJGb3JtYXQpIGI7CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyID0gMTIzNC41NjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdF9hLmZvcm1hdChudW1iZXIpLmVxdWFscyhmb3JtYXRfYi5mb3JtYXQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEZWNpbWFsRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0c1tdID0gbmV3IERlY2ltYWxGb3JtYXRbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2ldID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIyIsIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGVzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUnVsZUJhc2VkTnVtYmVyRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMsIGZyb20gcm9vdC50eHQKKyAgICAgICAgU3RyaW5nIHh4X1NwZWxsb3V0UnVsZXMgPSAiPSMsIyMwLiMjIyMjIz07XG4iOworICAgICAgICBTdHJpbmcgeHhfT3JkaW5hbFJ1bGVzID0gIj0jLCMjMD07XG4iOworICAgICAgICBTdHJpbmcgeHhfRHVyYXRpb25SdWxlcyA9ICI9IywjIzA9O1xuIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBqYV9zcGVsbG91dFJ1bGVzID0gCisgICAgICAgICAgICAiJWZpbmFuY2lhbDpcbiIgKworICAgICAgICAgICAgICAgICJcdTk2ZjY7IFx1NThmMTsgXHU1ZjEwOyBcdTUzYzI7IFx1NTZkYjsgXHU0ZjBkOyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iICsKKyAgICAgICAgICAgICAgICAiXHU2MmZlWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogPDxcdTYyZmVbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPDxcdTc2N2VbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8XHU1MzQzWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIiV0cmFkaXRpb25hbDpcbiIgKworICAgICAgICAgICAgICAgICJcdTk2ZjY7IFx1NGUwMDsgXHU0ZThjOyBcdTRlMDk7IFx1NTZkYjsgXHU0ZTk0OyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iICsKKyAgICAgICAgICAgICAgICAiXHU1MzQxWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogPDxcdTUzNDFbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPDxcdTc2N2VbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8XHU1MzQzWz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGVuX1NwZWxsb3V0UnVsZXMgPSAKKyAgICAgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlIG5vcm1hbCBzaW1wbGUgZm9ybWF0dGluZyBydWxlcyBmb3IgRW5nbGlzaAorICAgICAgICAgICAgIiVzaW1wbGlmaWVkOlxuIiArCisgICAgICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgbnVtYmVyIHJ1bGUuICBUaGlzIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgbmVnYXRpdmUKKyAgICAgICAgICAgICAgICAgICAvLyBudW1iZXJzLiAgVGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBhYnNvbHV0ZQorICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIHBsYWNlZCB3aGVyZSB0aGUgPj4gaXMuCisgICAgICAgICAgICAgICAgIi14OiBtaW51cyA+PjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZhY3Rpb24gcnVsZS4gIFRoaXMgcnVsZSBpcyB1c2VkIGZvciBmb3JtYXR0aW5nIG51bWJlcnMKKyAgICAgICAgICAgICAgICAgICAvLyB3aXRoIGZyYWN0aW9uYWwgcGFydHMuICBUaGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBpcyBzdWJzdGl0dXRlZCBmb3IgdGhlIDw8LCBhbmQKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydAorICAgICAgICAgICAgICAgICAgIC8vIChvbmUgZGlnaXQgYXQgYSB0aW1lLCBlLmcuLCAwLjEyMyBpcyAiemVybyBwb2ludCBvbmUgdHdvCisgICAgICAgICAgICAgICAgICAgLy8gdGhyZWUiKSByZXBsYWNlcyB0aGUgPj4uCisgICAgICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcnVsZXMgZm9yIHRoZSB2YWx1ZXMgZnJvbSAwIHRvIDE5IGFyZSBzaW1wbHkgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIHRob3NlIG51bWJlcnMKKyAgICAgICAgICAgICAgICAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIgKworICAgICAgICAgICAgICAgICJ0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47XG4iICsKKyAgICAgICAgICAgICAgICAgICAgInNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDIwLCB3ZSB1c2UgdGhlID4+IHRvIG1hcmsgdGhlIHBvc2l0aW9uIHdoZXJlCisgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBvbmVzIGRpZ2l0LiAgVGh1cywKKyAgICAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IG5lZWQgYSBuZXcgcnVsZSBhdCBldmVyeSBtdWx0aXBsZSBvZiAxMC4gIFRleHQgaW4KKyAgICAgICAgICAgICAgICAgICAvLyBiYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBhbgorICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gbXVsdGlwbGUgb2YgMTAuCisgICAgICAgICAgICAgICAgIjIwOiB0d2VudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgICAgICIzMDogdGhpcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNDA6IGZvcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IGZpZnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IHNpeHR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiNzA6IHNldmVudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgICAgICI4MDogZWlnaHR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IG5pbmV0eVstPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDEwMCwgd2UgY2FuIHVzZSA8PCB0byBtYXJrIHRoZSBwb3NpdGlvbiB3aGVyZQorICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbXVsdGlwbGUgb2YgMTAwIGlzIHRvIGJlCisgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0ZWQuICBOb3RpY2UgYWxzbyB0aGF0IHRoZSBtZWFuaW5nIG9mID4+IGhhcyBzaGlmdGVkOgorICAgICAgICAgICAgICAgICAgIC8vIGhlcmUsIGl0IHJlZmVycyB0byBib3RoIHRoZSBvbmVzIHBsYWNlIGFuZCB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWVhbmluZ3Mgb2YgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZSBiYXNlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJ1bGUuICBBIHJ1bGUncyBkaXZpc29yIGlzICh1c3VhbGx5KSB0aGUgaGlnaGVzdAorICAgICAgICAgICAgICAgICAgIC8vIHBvd2VyIG9mIDEwIHRoYXQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBydWxlJ3MgYmFzZQorICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlLiAgVGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBkaXZpZGVkIGJ5IHRoZSBydWxlJ3MKKyAgICAgICAgICAgICAgICAgICAvLyBkaXZpc29yLCBhbmQgdGhlIGludGVncmFsIHF1b3RpZW50IGlzIHVzZWQgdG8gZ2V0IHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgLy8gZm9yIDw8LCB3aGlsZSB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gcHJvZHVjZSB0aGUgdGV4dAorICAgICAgICAgICAgICAgICAgIC8vIGZvciA+Pi4gIEFnYWluLCB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICAgICAgICAgICAgICAgLy8gKGluIHRoaXMgY2FzZSwgYW4gZXZlbiBtdWx0aXBsZSBvZiAxMDApCisgICAgICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJ1bGVzIGZvciB0aGUgaGlnaGVyIG51bWJlcnMgd29yayB0aGUgc2FtZSB3YXkgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZSBmb3IgMTAwOiBBZ2FpbiwgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZQorICAgICAgICAgICAgICAgICAgIC8vIHJ1bGUncyBkaXZpc29yLCB3aGljaCBmb3IgYWxsIHRoZXNlIHJ1bGVzIGlzIGFsc28gdGhlIHJ1bGUncworICAgICAgICAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUuICBUbyBncm91cCBieSB0aG91c2FuZCwgd2Ugc2ltcGx5IGRvbid0IGhhdmUgYW55CisgICAgICAgICAgICAgICAgICAgLy8gcnVsZXMgYmV0d2VlbiAxLDAwMCBhbmQgMSwwMDAsMDAwLgorICAgICAgICAgICAgICAgICIxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUuICBUaGlzIHJ1bGUgc3BlY2lmaWVzIHRoYXQgdmFsdWVzIG9mIGEKKyAgICAgICAgICAgICAgICAgICAvLyBxdWFkcmlsbGlvbiBvciBtb3JlIGFyZSBzaG93biBpbiBudW1lcmFscyByYXRoZXIgdGhhbiB3b3Jkcy4KKyAgICAgICAgICAgICAgICAgICAvLyBUaGUgPT0gdG9rZW4gbWVhbnMgdG8gZm9ybWF0ICh3aXRoIG5ldyBydWxlcykgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IHRoaXMgcnVsZSBhbmQgcGxhY2UgdGhlIHJlc3VsdCB3aGVyZQorICAgICAgICAgICAgICAgICAgIC8vIHRoZSA9PSBpcy4gIFRoZSAjLCMjMCBpbnNpZGUgdGhlID09IHNpZ25zIGlzIGEKKyAgICAgICAgICAgICAgICAgICAvLyBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uICBJdCBzcGVjaWZpZXMgdGhhdCB0aGUgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgLy8gYmUgZm9ybWF0dGVkIHdpdGggYSBEZWNpbWFsRm9ybWF0IG9iamVjdCwgYW5kIHRoYXQgaXQKKyAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm8gZGVjaW1hbCBwbGFjZXMsIGF0IGxlYXN0IG9uZQorICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0LCBhbmQgYSB0aG91c2FuZHMgc2VwYXJhdG9yLgorICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iICsKKworICAgICAgICAgICAgLy8gJWRlZmF1bHQgaXMgYSBtb3JlIGVsYWJvcmF0ZSBmb3JtIG9mICVzaW1wbGlmaWVkOyAgSXQgaXMgYmFzaWNhbGx5CisgICAgICAgICAgICAvLyB0aGUgc2FtZSwgZXhjZXB0IHRoYXQgaXQgaW50cm9kdWNlcyAiYW5kIiBiZWZvcmUgdGhlIG9uZXMgZGlnaXQKKyAgICAgICAgICAgIC8vIHdoZW4gYXBwcm9wcmlhdGUgKGJhc2ljYWxseSwgYmV0d2VlbiB0aGUgdGVucyBhbmQgb25lcyBkaWdpdHMpIGFuZAorICAgICAgICAgICAgLy8gc2VwYXJhdGVzIHRoZSB0aG91c2FuZHMgZ3JvdXBzIHdpdGggY29tbWFzIGluIHZhbHVlcyBvdmVyIDEwMCwwMDAuCisgICAgICAgICAgICAiJWRlZmF1bHQ6XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLiAgVGhlc2UgYXJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgLy8gYXMgdGhvc2UgZm9yICVzaW1wbGlmaWVkLCBidXQgaGF2ZSB0byBiZSBzdGF0ZWQgaGVyZSB0b28KKyAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoaXMgaXMgYW4gZW50cnkgcG9pbnQKKyAgICAgICAgICAgICAgICAiLXg6IG1pbnVzID4+O1xuIiArCisgICAgICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHVzZSAlc2ltcGxpZmllZCBmb3IgdmFsdWVzIGJlbG93IDEwMAorICAgICAgICAgICAgICAgICI9JXNpbXBsaWZpZWQ9O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwMCB0byA5LDk5OSB1c2UgJSVhbmQgdG8gZGVjaWRlIHdoZXRoZXIgb3IKKyAgICAgICAgICAgICAgICAgICAvLyBub3QgdG8gaW50ZXJwb3NlIHRoZSAiYW5kIgorICAgICAgICAgICAgICAgICIxMDA6IDw8IGh1bmRyZWRbID4lJWFuZD5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgb2YgMTAwLDAwMCBhbmQgdXAsIHVzZSAlJWNvbW1hcyB0byBpbnRlcnBvc2UgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gY29tbWFzIGluIHRoZSByaWdodCBwbGFjZXMgKGFuZCBhbHNvIHRvIGludGVycG9zZSB0aGUgImFuZCIpCisgICAgICAgICAgICAgICAgIjEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGlzIHJ1bGUgc2V0IGlzIGdyZWF0ZXIgdGhhbiAxMDAsIGRvbid0CisgICAgICAgICAgICAvLyBhZGQgdGhlICJhbmQiOyBpZiBpdCdzIGxlc3MgdGhhbiAxMDAsIGFkZCAiYW5kIiBiZWZvcmUgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgIiUlYW5kOlxuIiArCisgICAgICAgICAgICAgICAgImFuZCA9JWRlZmF1bHQ9O1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHBsYWNlIHRoZSBjb21tYXMKKyAgICAgICAgICAgICIlJWNvbW1hczpcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAwLCBhZGQgImFuZCIgKHRoZSBhcG9zdHJvcGhlIGF0IHRoZQorICAgICAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBpcyBpZ25vcmVkLCBidXQgY2F1c2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQKKyAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBzaWduaWZpY2FudDogdGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgcnVsZXMKKyAgICAgICAgICAgICAgICAgICAvLyBjYWxsaW5nICUlY29tbWFzIGRvbid0IHB1dCBhIHNwYWNlIGJlZm9yZSBpdCkKKyAgICAgICAgICAgICAgICAiJyBhbmQgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSB0aG91c2FuZHMgKG9yIHdoYXRldmVyIHByZWNlZGVkIHRoZQorICAgICAgICAgICAgICAgICAgIC8vIGh1bmRyZWRzKQorICAgICAgICAgICAgICAgICIxMDA6ICwgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHB1dCBhIGNvbW1hIGFmdGVyIHRoZSBtaWxsaW9ucyAob3Igd2hhdGV2ZXIgcHJlY2VkZXMgdGhlCisgICAgICAgICAgICAgICAgICAgLy8gdGhvdXNhbmRzKQorICAgICAgICAgICAgICAgICIxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhbmQgc28gb24uLi4KKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IiArCisgICAgICAgICAgICAvLyAlJWxlbmllbnQtcGFyc2UgaXNuJ3QgcmVhbGx5IGEgc2V0IG9mIG51bWJlciBmb3JtYXR0aW5nIHJ1bGVzOworICAgICAgICAgICAgLy8gaXQncyBhIHNldCBvZiBjb2xsYXRpb24gcnVsZXMuICBMZW5pZW50LXBhcnNlIG1vZGUgdXNlcyBhIENvbGxhdG9yCisgICAgICAgICAgICAvLyBvYmplY3QgdG8gY29tcGFyZSBmcmFnbWVudHMgb2YgdGhlIHRleHQgYmVpbmcgcGFyc2VkIHRvIHRoZSB0ZXh0CisgICAgICAgICAgICAvLyBpbiB0aGUgcnVsZXMsIGFsbG93aW5nIG1vcmUgbGVld2F5IGluIHRoZSBtYXRjaGluZyB0ZXh0LiAgVGhpcyBzZXQKKyAgICAgICAgICAgIC8vIG9mIHJ1bGVzIHRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gaWdub3JlIGNvbW1hcyB3aGVuIHBhcnNpbmcgKGl0CisgICAgICAgICAgICAvLyBhbHJlYWR5IGlnbm9yZXMgc3BhY2VzLCB3aGljaCBpcyB3aHkgd2UgcmVmZXIgdG8gdGhlIHNwYWNlOyBpdCBhbHNvCisgICAgICAgICAgICAvLyBpZ25vcmVzIGh5cGhlbnMsIG1ha2luZyAidHdlbnR5IG9uZSIgYW5kICJ0d2VudHktb25lIiBwYXJzZQorICAgICAgICAgICAgLy8gaWRlbnRpY2FsbHkpCisgICAgICAgICAgICAiJSVsZW5pZW50LXBhcnNlOlxuIiArCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAiJiAnICcgLCAnLCcgO1xuIiArCisgICAgICAgICAgICAiICAgJlx1MDAwMCA8PCAnICcgPDwgJywnIDw8ICctJzsgXG4iOworCisgICAgICAgIFN0cmluZyBlbl9HQl9TcGVsbG91dFJ1bGVzID0KKyAgICAgICAgICAgICIlc2ltcGxpZmllZDpcbiIgKworICAgICAgICAgICAgIi14OiBtaW51cyA+PjtcbiIgKworICAgICAgICAgICAgIngueDogPDwgcG9pbnQgPj47XG4iICsKKyAgICAgICAgICAgICJ6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIiArCisgICAgICAgICAgICAidGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIiArCisgICAgICAgICAgICAiICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIiArCisgICAgICAgICAgICAiMjA6IHR3ZW50eVstPj5dO1xuIiArCisgICAgICAgICAgICAiMzA6IHRoaXJ0eVstPj5dO1xuIiArCisgICAgICAgICAgICAiNDA6IGZvcnR5Wy0+Pl07XG4iICsKKyAgICAgICAgICAgICI1MDogZmlmdHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjYwOiBzaXh0eVstPj5dO1xuIiArCisgICAgICAgICAgICAiNzA6IHNldmVudHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjgwOiBlaWdodHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjkwOiBuaW5ldHlbLT4+XTtcbiIgKworICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIiArCisgICAgICAgICAgICAiMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIgKworICAgICAgICAgICAgIjEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIgKworICAgICAgICAiJWRlZmF1bHQ6XG4iICsKKyAgICAgICAgICAgICIteDogbWludXMgPj47XG4iICsKKyAgICAgICAgICAgICJ4Lng6IDw8IHBvaW50ID4+O1xuIiArCisgICAgICAgICAgICAiPSVzaW1wbGlmaWVkPTtcbiIgKworICAgICAgICAgICAgIjEwMDogPDwgaHVuZHJlZFsgPiUlYW5kPl07XG4iICsKKyAgICAgICAgICAgICIxMDAwOiA8PCB0aG91c2FuZFsgPiUlYW5kPl07XG4iICsKKyAgICAgICAgICAgICIxMDAsMDAwPj46IDw8IHRob3VzYW5kWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bPiUlY29tbWFzPl07XG4iICsKKyAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iICsKKyAgICAgICAgIiUlYW5kOlxuIiArCisgICAgICAgICAgICAiYW5kID0lZGVmYXVsdD07XG4iICsKKyAgICAgICAgICAgICIxMDA6ID0lZGVmYXVsdD07XG4iICsKKyAgICAgICAgIiUlY29tbWFzOlxuIiArCisgICAgICAgICAgICAiJyBhbmQgPSVkZWZhdWx0PTtcbiIgKworICAgICAgICAgICAgIjEwMDogLCA9JWRlZmF1bHQ9O1xuIiArCisgICAgICAgICAgICAiMTAwMDogLCA8JWRlZmF1bHQ8IHRob3VzYW5kLCA+JWRlZmF1bHQ+O1xuIiArCisgICAgICAgICAgICAiMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IiArCisgICAgICAgICIlJWxlbmllbnQtcGFyc2U6XG4iICsKKyAgICAgICAgICAgICImICcgJyAsICcsJyA7XG4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGZyX1NwZWxsb3V0UnVsZXMgPQorICAgICAgICAgICAgLy8gdGhlIG1haW4gcnVsZSBzZXQKKyAgICAgICAgICAgICIlbWFpbjpcbiIgKworICAgICAgICAgICAgICAgICIteDogbW9pbnMgPj47XG4iICsKKyAgICAgICAgICAgICAgICAieC54OiA8PCB2aXJndWxlID4+O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEwCisgICAgICAgICAgICAgICAgInpcdTAwZTlybzsgdW47IGRldXg7IHRyb2lzOyBxdWF0cmU7IGNpbnE7IHNpeDsgc2VwdDsgaHVpdDsgbmV1ZjtcbiIgKworICAgICAgICAgICAgICAgICJkaXg7IG9uemU7IGRvdXplOyB0cmVpemU7IHF1YXRvcnplOyBxdWluemU7IHNlaXplO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBkaXgtc2VwdDsgZGl4LWh1aXQ7IGRpeC1uZXVmO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gb3JkcyBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDogJSVhbHQtb25lcyBpbnNlcnRzICJldCIKKyAgICAgICAgICAgICAgICAgICAvLyB3aGVuIG5lZWRlZAorICAgICAgICAgICAgICAgICIyMDogdmluZ3RbLT4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMzA6IHRyZW50ZVstPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICI0MDogcXVhcmFudGVbLT4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IGNpbnF1YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHJ1bGUgZm9yIDYwLiAgVGhlIC8yMCBjYXVzZXMgdGhpcyBydWxlJ3MgbXVsdGlwbGllciB0byBiZQorICAgICAgICAgICAgICAgICAgIC8vIDIwIHJhdGhlciB0aGFuIDEwLCBhbGxvd2luaGcgdXMgdG8gcmVjdXJzZSBmb3IgYWxsIHZhbHVlcworICAgICAgICAgICAgICAgICAgIC8vIGZyb20gNjAgdG8gNzkuLi4KKyAgICAgICAgICAgICAgICAiNjAvMjA6IHNvaXhhbnRlWy0+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gLi4uZXhjZXB0IGZvciA3MSwgd2hpY2ggbXVzdCBiZSBzcGVjaWFsLWNhc2VkCisgICAgICAgICAgICAgICAgIjcxOiBzb2l4YW50ZSBldCBvbnplO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYXQgNzIsIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBydWxlIGZvciA2MCB0byBnZXQgdXMgdG8gNzkKKyAgICAgICAgICAgICAgICAiNzIvMjA6IHNvaXhhbnRlLT4lJWFsdC1vbmVzPjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGF0IDgwLCB3ZSBzdGF0ZSBhIG5ldyBydWxlIHdpdGggdGhlIHBocmFzZSBmb3IgODAuICBTaW5jZQorICAgICAgICAgICAgICAgICAgIC8vIGl0IGNoYW5nZXMgZm9ybSB3aGVuIHRoZXJlJ3MgYSBvbmVzIGRpZ2l0LCB3ZSBuZWVkIGEgc2Vjb25kCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZSBhdCA4MS4gIFRoaXMgcnVsZSBhbHNvIGluY2x1ZGVzICIvMjAsIiBhbGxvd2luZyBpdCB0bworICAgICAgICAgICAgICAgICAgIC8vIGJlIHVzZWQgY29ycmVjdGx5IGZvciBhbGwgdmFsdWVzIHVwIHRvIDk5CisgICAgICAgICAgICAgICAgIjgwOiBxdWF0cmUtdmluZ3RzOyA4MS8yMDogcXVhdHJlLXZpbmd0LT4+O1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gImNlbnQiIGJlY29tZXMgcGx1cmFsIHdoZW4gcHJlY2VkZWQgYnkgYSBtdWx0aXBsaWVyLCBhbmQKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgbXVsdGlwbGllciBpcyBvbWl0dGVkIGZyb20gdGhlIHNpbmd1bGFyIGZvcm0KKyAgICAgICAgICAgICAgICAiMTAwOiBjZW50WyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8PCBjZW50c1sgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IG1pbGxlWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgIm9uemUgY2VudHMuLi4iCisgICAgICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiAibWlsbGUgY2VudC4uLiIgIFRoZSA+IGFmdGVyICIxMDAwIiBkZWNyZWFzZXMKKyAgICAgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGV4cG9uZW50LCBjYXVzaW5nIGl0cyBtdWx0aXBsaWVyIHRvIGJlIDEwMCBpbnN0ZWFkCisgICAgICAgICAgICAgICAgICAgLy8gb2YgMSwwMDAuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gZ2V0dGluZyAib256ZSBjZW50cyBjZW50CisgICAgICAgICAgICAgICAgICAgLy8gdmluZ3QtZGV1eCIgKCJlbGV2ZW4gaHVuZHJlZCBvbmUgaHVuZHJlZCB0d2VudHktdHdvIikuCisgICAgICAgICAgICAgICAgIjExMDA+OiBvbnplIGNlbnRzWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhdCAxLDIwMCwgd2UgZ28gYmFjayB0byBmb3JtYXRpbmcgaW4gdGhvdXNhbmRzLCBzbyB3ZQorICAgICAgICAgICAgICAgICAgIC8vIHJlcGVhdCB0aGUgcnVsZSBmb3IgMSwwMDAKKyAgICAgICAgICAgICAgICAiMTIwMDogbWlsbGUgPj47XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyBhdCAyLDAwMCwgdGhlIG11bHRpcGxpZXIgaXMgYWRkZWQKKyAgICAgICAgICAgICAgICAiMjAwMDogPDwgbWlsbGVbID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIgKworICAgICAgICAgICAgICAgICIxLDAwMCwwMDAsMDAwOiA8PCBtaWxsaWFyZFsgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIiArCisgICAgICAgICAgICAvLyAlJWFsdC1vbmVzIGlzIHVzZWQgdG8gaW5zZXJ0ICJldCIgd2hlbiB0aGUgb25lcyBkaWdpdCBpcyAxCisgICAgICAgICAgICAiJSVhbHQtb25lczpcbiIgKworICAgICAgICAgICAgICAgICI7IGV0LXVuOyA9JW1haW49O1xuIiArIAorICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImXHUwMDAwIDw8ICcgJyA8PCAnLCcgPDwgJy0nO1xuIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBkZV9TcGVsbG91dFJ1bGVzID0KKyAgICAgICAgICAgIC8vIDEgaXMgImVpbnMiIHdoZW4gYnkgaXRzZWxmLCBidXQgdHVybnMgaW50byAiZWluIiBpbiBtb3N0CisgICAgICAgICAgICAvLyBjb21iaW5hdGlvbnMKKyAgICAgICAgICAgICIlYWx0LW9uZXM6XG4iICsKKyAgICAgICAgICAgICAgICAiLXg6IG1pbnVzID4+O1xuIiArCisgICAgICAgICAgICAgICAgIngueDogPDwga29tbWEgPj47XG4iICsKKyAgICAgICAgICAgICAgICAibnVsbDsgZWluczsgPSUlbWFpbj07XG4iICsKKyAgICAgICAgICAgICIlJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycyBmcm9tIDAgdG8gMTIuICBOb3RpY2UgdGhhdCB0aGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgLy8gZnJvbSAxMyB0byAxOSBjYW4gZGVyaXZlZCBhbGdvcml0aG1pY2FsbHksIHVubGlrZSBpbiBtb3N0CisgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgbGFuZ3VhZ2VzCisgICAgICAgICAgICAgICAgIm51bGw7IGVpbjsgendlaTsgZHJlaTsgdmllcjsgZlx1MDBmY25mOyBzZWNoczsgc2llYmVuOyBhY2h0OyBuZXVuO1xuIiArCisgICAgICAgICAgICAgICAgInplaG47IGVsZjsgendcdTAwZjZsZjsgPj56ZWhuO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gcnVsZXMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAuICBOb3RpY2UgdGhhdCB0aGUgb25lcyBkaWdpdAorICAgICAgICAgICAgICAgICAgIC8vIGdvZXMgb24gdGhlIGZyb250CisgICAgICAgICAgICAgICAgIjIwOiBbPj51bmRdendhbnppZztcbiIgKworICAgICAgICAgICAgICAgICIzMDogWz4+dW5kXWRyZWlcdTAwZGZpZztcbiIgKworICAgICAgICAgICAgICAgICI0MDogWz4+dW5kXXZpZXJ6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IFs+PnVuZF1mXHUwMGZjbmZ6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IFs+PnVuZF1zZWNoemlnO1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBbPj51bmRdc2llYnppZztcbiIgKworICAgICAgICAgICAgICAgICI4MDogWz4+dW5kXWFjaHR6aWc7XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IFs+PnVuZF1uZXVuemlnO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogaHVuZGVydFs+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8PGh1bmRlcnRbPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IHRhdXNlbmRbPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDA6IDw8dGF1c2VuZFs+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiBlaW5lIE1pbGxpb25bID4lYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICIyLDAwMCwwMDA6IDw8IE1pbGxpb25lblsgPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDA6IGVpbmUgTWlsbGlhcmRlWyA+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMiwwMDAsMDAwLDAwMDogPDwgTWlsbGlhcmRlblsgPiVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEsMDAwLDAwMCwwMDAsMDAwOiBlaW5lIEJpbGxpb25bID4lYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAgICAgICAgICIyLDAwMCwwMDAsMDAwLDAwMDogPDwgQmlsbGlvbmVuWyA+JWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyIgKworICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImXHUwMDAwIDw8ICcgJyA8PCAnLSdcbiIgKworICAgICAgICAgICAgICAgICImIGFlICwgXHUwMGU0ICYgYWUgLCBcdTAwYzRcbiIgKworICAgICAgICAgICAgICAgICImIG9lICwgXHUwMGY2ICYgb2UgLCBcdTAwZDZcbiIgKworICAgICAgICAgICAgICAgICImIHVlICwgXHUwMGZjICYgdWUgLCBcdTAwZGNcbiI7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgaXRfU3BlbGxvdXRSdWxlcyA9CisgICAgICAgICAgICAvLyBtYWluIHJ1bGUgc2V0LiAgRm9sbG93cyB0aGUgcGF0dGVybnMgb2YgdGhlIHByZWNlZGluZyBydWxlIHNldHMsCisgICAgICAgICAgICAvLyBleGNlcHQgdGhhdCB0aGUgZmluYWwgdm93ZWwgaXMgb21pdHRlZCBmcm9tIHdvcmRzIGVuZGluZyBpbgorICAgICAgICAgICAgLy8gdm93ZWxzIHdoZW4gdGhleSBhcmUgZm9sbG93ZWQgYnkgYW5vdGhlciB3b3JkOyBpbnN0ZWFkLCB3ZSBoYXZlCisgICAgICAgICAgICAvLyBzZXBhcmF0ZSBydWxlIHNldHMgdGhhdCBhcmUgaWRlbnRpY2FsIHRvIHRoaXMgb25lLCBleGNlcHQgdGhhdAorICAgICAgICAgICAgLy8gYWxsIHRoZSB3b3JkcyB0aGF0IGRvbid0IGJlZ2luIHdpdGggYSB2b3dlbCBoYXZlIGEgdm93ZWwgdGFja2VkCisgICAgICAgICAgICAvLyBvbnRvIHRoZW0gYXQgdGhlIGZyb250LiAgQSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGNhbGxzIGEKKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiB0aGF0IHdpbGwgc3VwcGx5IHRoYXQgdm93ZWwsIHVubGVzcyB0aGF0IHZvd2VsIGlzIHRvCisgICAgICAgICAgICAvLyBiZSBlbGlkZWQuCisgICAgICAgICAgICAiJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAiLXg6IG1lbm8gPj47XG4iICsKKyAgICAgICAgICAgICAgICAieC54OiA8PCB2aXJnb2xhID4+O1xuIiArCisgICAgICAgICAgICAgICAgInplcm87IHVubzsgZHVlOyB0cmU7IHF1YXR0cm87IGNpbnF1ZTsgc2VpOyBzZXR0ZTsgb3R0bzsgbm92ZTtcbiIgKworICAgICAgICAgICAgICAgICJkaWVjaTsgdW5kaWNpOyBkb2RpY2k7IHRyZWRpY2k7IHF1YXR0b3JkaWNpOyBxdWluZGljaTsgc2VkaWNpO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBkaWNpYXNldHRlOyBkaWNpb3R0bzsgZGljaWFubm92ZTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogdmVudGk7IHZlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjMwOiB0cmVudGE7IHRyZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICI0MDogcXVhcmFudGE7IHF1YXJhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjUwOiBjaW5xdWFudGE7IGNpbnF1YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI2MDogc2Vzc2FudGE7IHNlc3NhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBzZXR0YW50YTsgc2V0dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IG5vdmFudGE7IG5vdmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwOiBjZW50bzsgY2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDA6IDw8Y2VudG87IDw8Y2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAwOiBtaWxsZTsgbWlsbFs+JSV3aXRoLWk+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDAwOiA8PG1pbGE7IDw8bWlsWz4lJXdpdGgtYT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMCwwMDA+PjogPDxtaWxhWyA+Pl07XG4iICsKKyAgICAgICAgICAgICAgICAiMSwwMDAsMDAwOiA9IywjIzA9IChpbmNvbXBsZXRlIGRhdGEpO1xuIiArCisgICAgICAgICAgICAiJSV3aXRoLWE6XG4iICsKKyAgICAgICAgICAgICAgICAiYXplcm87IHVubzsgYWR1ZTsgYXRyZTsgYXF1YXR0cm87IGFjaW5xdWU7IGFzZWk7IGFzZXR0ZTsgb3R0bzsgYW5vdmU7XG4iICsKKyAgICAgICAgICAgICAgICAiYWRpZWNpOyB1bmRpY2k7IGFkb2RpY2k7IGF0cmVkaWNpOyBhcXVhdHRvcmRpY2k7IGFxdWluZGljaTsgYXNlZGljaTtcbiIgKworICAgICAgICAgICAgICAgICIgICAgYWRpY2lhc2V0dGU7IGFkaWNpb3R0bzsgYWRpY2lhbm5vdmU7XG4iICsKKyAgICAgICAgICAgICAgICAiMjA6IGF2ZW50aTsgYXZlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjMwOiBhdHJlbnRhOyBhdHJlbnQ+JSV3aXRoLWk+O1xuIiArCisgICAgICAgICAgICAgICAgIjQwOiBhcXVhcmFudGE7IGFxdWFyYW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI1MDogYWNpbnF1YW50YTsgYWNpbnF1YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI2MDogYXNlc3NhbnRhOyBhc2Vzc2FudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNzA6IGFzZXR0YW50YTsgYXNldHRhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjkwOiBhbm92YW50YTsgYW5vdmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwOiBhY2VudG87IGFjZW50Wz4lJXdpdGgtbz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDogPCUld2l0aC1hPGNlbnRvOyA8JSV3aXRoLWE8Y2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAwOiBhbWlsbGU7IGFtaWxsWz4lJXdpdGgtaT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjIwMDA6IDwlJXdpdGgtYTxtaWxhOyA8JSV3aXRoLWE8bWlsWz4lJXdpdGgtYT5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMCwwMDA6ID0lbWFpbj07XG4iICsKKyAgICAgICAgICAgICIlJXdpdGgtaTpcbiIgKworICAgICAgICAgICAgICAgICJpemVybzsgdW5vOyBpZHVlOyBpdHJlOyBpcXVhdHRybzsgaWNpbnF1ZTsgaXNlaTsgaXNldHRlOyBvdHRvOyBpbm92ZTtcbiIgKworICAgICAgICAgICAgICAgICJpZGllY2k7IHVuZGljaTsgaWRvZGljaTsgaXRyZWRpY2k7IGlxdWF0dG9yZGljaTsgaXF1aW5kaWNpOyBpc2VkaWNpO1xuIiArCisgICAgICAgICAgICAgICAgIiAgICBpZGljaWFzZXR0ZTsgaWRpY2lvdHRvOyBpZGljaWFubm92ZTtcbiIgKworICAgICAgICAgICAgICAgICIyMDogaXZlbnRpOyBpdmVudD4lJXdpdGgtaT47XG4iICsKKyAgICAgICAgICAgICAgICAiMzA6IGl0cmVudGE7IGl0cmVudD4lJXdpdGgtaT47XG4iICsKKyAgICAgICAgICAgICAgICAiNDA6IGlxdWFyYW50YTsgaXF1YXJhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjUwOiBpY2lucXVhbnRhOyBpY2lucXVhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjYwOiBpc2Vzc2FudGE7IGlzZXNzYW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI3MDogaXNldHRhbnRhOyBpc2V0dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiOTA6IGlub3ZhbnRhOyBpbm92YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICIxMDA6IGljZW50bzsgaWNlbnRbPiUld2l0aC1vPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwOiA8JSV3aXRoLWk8Y2VudG87IDwlJXdpdGgtaTxjZW50Wz4lJXdpdGgtbz5dO1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDA6IGltaWxsZTsgaW1pbGxbPiUld2l0aC1pPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMjAwMDogPCUld2l0aC1pPG1pbGE7IDwlJXdpdGgtaTxtaWxbPiUld2l0aC1hPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwLDAwMDogPSVtYWluPTtcbiIgKworICAgICAgICAgICAgIiUld2l0aC1vOlxuIiArCisgICAgICAgICAgICAgICAgIm96ZXJvOyB1bm87IG9kdWU7IG90cmU7IG9xdWF0dHJvOyBvY2lucXVlOyBvc2VpOyBvc2V0dGU7IG90dG87IG9ub3ZlO1xuIiArCisgICAgICAgICAgICAgICAgIm9kaWVjaTsgdW5kaWNpOyBvZG9kaWNpOyBvdHJlZGljaTsgb3F1YXR0b3JkaWNpOyBvcXVpbmRpY2k7IG9zZWRpY2k7XG4iICsKKyAgICAgICAgICAgICAgICAiICAgIG9kaWNpYXNldHRlOyBvZGljaW90dG87IG9kaWNpYW5ub3ZlO1xuIiArCisgICAgICAgICAgICAgICAgIjIwOiBvdmVudGk7IG92ZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICIzMDogb3RyZW50YTsgb3RyZW50PiUld2l0aC1pPjtcbiIgKworICAgICAgICAgICAgICAgICI0MDogb3F1YXJhbnRhOyBvcXVhcmFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNTA6IG9jaW5xdWFudGE7IG9jaW5xdWFudD4lJXdpdGgtYT47XG4iICsKKyAgICAgICAgICAgICAgICAiNjA6IG9zZXNzYW50YTsgb3Nlc3NhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjcwOiBvc2V0dGFudGE7IG9zZXR0YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIgKworICAgICAgICAgICAgICAgICI5MDogb25vdmFudGE7IG9ub3ZhbnQ+JSV3aXRoLWE+O1xuIiArCisgICAgICAgICAgICAgICAgIjEwMDogb2NlbnRvOyBvY2VudFs+JSV3aXRoLW8+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDA6IDwlJXdpdGgtbzxjZW50bzsgPCUld2l0aC1vPGNlbnRbPiUld2l0aC1vPl07XG4iICsKKyAgICAgICAgICAgICAgICAiMTAwMDogb21pbGxlOyBvbWlsbFs+JSV3aXRoLWk+XTtcbiIgKworICAgICAgICAgICAgICAgICIyMDAwOiA8JSV3aXRoLW88bWlsYTsgPCUld2l0aC1vPG1pbFs+JSV3aXRoLWE+XTtcbiIgKworICAgICAgICAgICAgICAgICIxMDAsMDAwOiA9JW1haW49O1xuIiA7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZW5fT3JkaW5hbFJ1bGVzID0KKyAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgbnVtZXJhbCBhbmQgY2FsbHMgJSVhYmJyZXYgdG8KKyAgICAgICAgICAgIC8vIHN1cHBseSB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICAgICAiJW1haW46XG4iICsKKyAgICAgICAgICAgICAgICAiPSMsIyMwPT0lJWFiYnJldj07XG4iICsKKyAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgc3VwcGxpZXMgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICAgICAgIiUlYWJicmV2OlxuIiArCisgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFiYnJldmlhdGlvbnMuICBFdmVyeXRoaW5nIGZyb20gNCB0byAxOSBlbmRzIGluICJ0aCIKKyAgICAgICAgICAgICAgICAidGg7IHN0OyBuZDsgcmQ7IHRoO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gYXQgMjAsIHdlIGJlZ2luIHJlcGVhdGluZyB0aGUgY3ljbGUgZXZlcnkgMTAgKDEzIGlzICIxM3RoIiwKKyAgICAgICAgICAgICAgICAgICAvLyBidXQgMjMgYW5kIDMzIGFyZSAiMjNyZCIgYW5kICIzM3JkIikgIFdlIGRvIHRoaXMgYnkKKyAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmluZyBhbGwgYnVnIHRoZSBvbmVzIGRpZ2l0IGluIHNlbGVjdGluZyB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICAgICAgICAgIjIwOiA+PjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGF0IDEwMCwgd2UgcmVwZWF0IHRoZSB3aG9sZSBjeWNsZSBieSBjb25zaWRlcmluZyBvbmx5IHRoZQorICAgICAgICAgICAgICAgICAgIC8vIHRlbnMgYW5kIG9uZXMgZGlnaXRzIGluIHBpY2tpbmcgYW4gYWJicmV2aWF0aW9uCisgICAgICAgICAgICAgICAgIjEwMDogPj47XG4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGVuX0R1cmF0aW9uUnVsZXMgPQorICAgICAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyB3aXRoIHdvcmRzCisgICAgICAgICAgICAiJXdpdGgtd29yZHM6XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAic2Vjb25kIgorICAgICAgICAgICAgICAgICIwIHNlY29uZHM7IDEgc2Vjb25kOyA9MD0gc2Vjb25kcztcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8JSVtaW48WywgPj5dO1xuIiArCisgICAgICAgICAgICAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAgICAgICAgICAgIC8vICh0aGUgIj4+PiIgYmVsb3cgY2F1c2VzIHVzIHRvIHNlZSB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMKKyAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHdoZW4gdGhlcmUgYXJlIHplcm8gbWludXRlcykKKyAgICAgICAgICAgICAgICAiMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgICAgICAvLyBvZiAibWludXRlIgorICAgICAgICAgICAgIiUlbWluOlxuIiArCisgICAgICAgICAgICAgICAgIjAgbWludXRlczsgMSBtaW51dGU7ID0wPSBtaW51dGVzO1xuIiArCisgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgICAgIC8vIG9mICJob3VyIgorICAgICAgICAgICAgIiUlaHI6XG4iICsKKyAgICAgICAgICAgICAgICAiMCBob3VyczsgMSBob3VyOyA9MD0gaG91cnM7XG4iICsKKworICAgICAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyBpbiBudW1lcmFscworICAgICAgICAgICAgIiVpbi1udW1lcmFsczpcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlcyBiZWxvdyA2MCBzZWNvbmRzIGFyZSBzaG93biB3aXRoICJzZWMuIgorICAgICAgICAgICAgICAgICI9MD0gc2VjLjtcbiIgKworICAgICAgICAgICAgICAgICAgIC8vIGhpZ2hlciB2YWx1ZXMgYXJlIHNob3duIHdpdGggY29sb25zOiAlJW1pbi1zZWMgaXMgdXNlZCBmb3IKKyAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgMyw2MDAgc2Vjb25kcy4uLgorICAgICAgICAgICAgICAgICI2MDogPSUlbWluLXNlYz07XG4iICsKKyAgICAgICAgICAgICAgICAgICAvLyAuLi5hbmQgJSVoci1taW4tc2VjIGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBzZWNvbmRzCisgICAgICAgICAgICAgICAgICAgLy8gYW5kIGFib3ZlCisgICAgICAgICAgICAgICAgIjM2MDA6ID0lJWhyLW1pbi1zZWM9O1xuIiArCisgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgY2F1c2VzIHZhbHVlcyBvZiBsZXNzIHRoYW4gMTAgbWludXRlcyB0byBzaG93IHdpdGhvdXQKKyAgICAgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvCisgICAgICAgICAgICAiJSVtaW4tc2VjOlxuIiArCisgICAgICAgICAgICAgICAgIjA6IDo9MDA9O1xuIiArCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8MDw+PjtcbiIgKworICAgICAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciB2YWx1ZXMgb2YgMyw2MDAgb3IgbW9yZS4gIE1pbnV0ZXMgYXJlIGFsd2F5cworICAgICAgICAgICAgLy8gc2hvd24sIGFuZCBhbHdheXMgc2hvd24gd2l0aCB0d28gZGlnaXRzCisgICAgICAgICAgICAiJSVoci1taW4tc2VjOlxuIiArCisgICAgICAgICAgICAgICAgIjA6IDo9MDA9O1xuIiArCisgICAgICAgICAgICAgICAgIjYwLzYwOiA8MDA8Pj47XG4iICsKKyAgICAgICAgICAgICAgICAiMzYwMC82MDogPCMsIyMwPDo+Pj47XG4iICsKKyAgICAgICAgICAgIC8vIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzIGFsbG93IHNldmVyYWwgZGlmZmVyZW50IGNoYXJhY3RlcnMgdG8gYmUgdXNlZAorICAgICAgICAgICAgLy8gYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICAgICAgIiUlbGVuaWVudC1wYXJzZTpcbiIgKworICAgICAgICAgICAgICAgICImICc6JyA9ICcuJyA9ICcgJyA9ICctJztcbiI7CisKKyAgICAgICAgICAgIEhhc2hNYXAgY2FubmVkRGF0YSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fQ0EvU3BlbGxvdXRSdWxlcyIsICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fQ0EvT3JkaW5hbFJ1bGVzIiwgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9DQS9EdXJhdGlvblJ1bGVzIiwgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0NBL1NwZWxsb3V0UnVsZXMiLCAgICAgIGZyX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0NBL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfQ0EvRHVyYXRpb25SdWxlcyIsICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9DTi9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9DTi9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0NIL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemgvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemgvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuL1NwZWxsb3V0UnVsZXMiLCAgICAgICAgIGVuX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuL09yZGluYWxSdWxlcyIsICAgICAgICAgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW4vRHVyYXRpb25SdWxlcyIsICAgICAgICAgZW5fRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9GUi9TcGVsbG91dFJ1bGVzIiwgICAgICBmcl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9GUi9PcmRpbmFsUnVsZXMiLCAgICAgICB4eF9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0ZSL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnIvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZnJfU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnIvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmci9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlL1NwZWxsb3V0UnVsZXMiLCAgICAgICAgIGRlX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlL09yZGluYWxSdWxlcyIsICAgICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGUvRHVyYXRpb25SdWxlcyIsICAgICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZV9ERS9TcGVsbG91dFJ1bGVzIiwgICAgICBkZV9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZV9ERS9PcmRpbmFsUnVsZXMiLCAgICAgICB4eF9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlX0RFL0R1cmF0aW9uUnVsZXMiLCAgICAgIHh4X0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXQvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgaXRfU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXQvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdC9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0X0lUL1NwZWxsb3V0UnVsZXMiLCAgICAgIGl0X1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0X0lUL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXRfSVQvRHVyYXRvblJ1bGVzIiwgICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUi9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUi9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImtvX0tSL0R1cmF0aW9uUnVsZXMiLCAgICAgIGVuX0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28vU3BlbGxvdXRSdWxlcyIsICAgICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28vT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrby9EdXJhdGlvblJ1bGVzIiwgICAgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04vU3BlbGxvdXRSdWxlcyIsIGVuX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04vT3JkaW5hbFJ1bGVzIiwgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfSGFuc19DSC9EdXJhdGlvblJ1bGVzIiwgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXL1NwZWxsb3V0UnVsZXMiLCBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXL09yZGluYWxSdWxlcyIsICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnRfVFcvRHVyYXRpb25SdWxlcyIsIGVuX0R1cmF0aW9uUnVsZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfVFcvU3BlbGxvdXRSdWxlcyIsICAgICAgZW5fU3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfVFcvT3JkaW5hbFJ1bGVzIiwgICAgICAgZW5fT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9UVy9EdXJhdGlvblJ1bGVzIiwgICAgICBlbl9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0dCL1NwZWxsb3V0UnVsZXMiLCAgICAgIGVuX0dCX1NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0dCL09yZGluYWxSdWxlcyIsICAgICAgIGVuX09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fR0IvRHVyYXRpb25SdWxlcyIsICAgICAgZW5fRHVyYXRpb25SdWxlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9VUy9TcGVsbG91dFJ1bGVzIiwgICAgICBlbl9TcGVsbG91dFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9VUy9PcmRpbmFsUnVsZXMiLCAgICAgICBlbl9PcmRpbmFsUnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX1VTL0R1cmF0aW9uUnVsZXMiLCAgICAgIGVuX0R1cmF0aW9uUnVsZXMpOworCisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamEvU3BlbGxvdXRSdWxlcyIsICAgICAgICAgamFfc3BlbGxvdXRSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamEvT3JkaW5hbFJ1bGVzIiwgICAgICAgICAgeHhfT3JkaW5hbFJ1bGVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJqYS9EdXJhdGlvblJ1bGVzIiwgICAgICAgICB4eF9EdXJhdGlvblJ1bGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQL1NwZWxsb3V0UnVsZXMiLCAgICAgIGphX3NwZWxsb3V0UnVsZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQL09yZGluYWxSdWxlcyIsICAgICAgIHh4X09yZGluYWxSdWxlcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamFfSlAvRHVyYXRpb25SdWxlcyIsICAgICAgeHhfRHVyYXRpb25SdWxlcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCB0eXBlc1tdICAgICAgICA9IHtSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5PUkRJTkFMLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT059OworICAgICAgICBTdHJpbmcgdHlwZU5hbWVzW10gPSB7IlNwZWxsb3V0UnVsZXMiLCAiT3JkaW5hbFJ1bGVzIiwgIkR1cmF0aW9uUnVsZXMifTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXRzW10gPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0W3R5cGVzLmxlbmd0aCAqIGxvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgdCA9IDA7IHQgPCB0eXBlcy5sZW5ndGg7IHQgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGwgPSAwOyBsIDwgbG9jYWxlcy5sZW5ndGg7IGwgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2FubmVkUnVsZXMgPSAoU3RyaW5nKSBjYW5uZWREYXRhLmdldChsb2NhbGVzW2xdLnRvU3RyaW5nKCkgKyAiLyIgKyB0eXBlTmFtZXNbdF0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbm5lZFJ1bGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHNbaSsrXSA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoY2FubmVkUnVsZXMsIGxvY2FsZXNbbF0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0c1tpKytdID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChsb2NhbGVzW2xdLCB0eXBlc1t0XSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGVjaW1hbEZvcm1hdFN5bWJvbHNIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgc2VyaWFsaXplZCBmb3JtIG9mIGEgbm9ybWFsbHkgY3JlYXRlZCBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QKKyAgICAgICAgICogd2lsbCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBkYXRhIGluIGl0IHRoYXQgbWlnaHQgY2hhbmdlIGZyb20gb25lIHZlcnNpb24KKyAgICAgICAgICogb2YgSUNVNEogdG8gYW5vdGhlci4gVG8gZ3VhcmQgYWdhaW5zdCB0aGlzLCB3ZSBzdG9yZSB0aGUgZm9sbG93aW5nIGNhbm5lZAorICAgICAgICAgKiBkYXRhIGludG8gdGhlIHRlc3Qgb2JqZWN0cyB3ZSBjcmVhdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgSGFzaE1hcCBjYW5uZWREYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fQ0FfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIiQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ0FEIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9DQV9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiJCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJDQUQiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX0NOX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ05ZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBNCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJYWFgiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGZyX0ZSX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTIwQUMiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiRVVSIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZGVfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBNCIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJYWFgiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGRlX0RFX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTIwQUMiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiRVVSIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBpdF9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgaXRfSVRfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MjBBQyIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJFVVIiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGphX0pQX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiSlBZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiXHUwMEE0IiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlhYWCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcga29fS1JfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1RkZFNiIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJLUlciLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGtvX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwQTQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiWFhYIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW5zX0NOX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJcdUZGRTUiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiQ05ZIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW50X1RXX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICJOVCQiLCAKKyAgICAgICAgICAgICJFIiwgCisgICAgICAgICAgICAiXHUyMjFFIiwgCisgICAgICAgICAgICAiVFdEIiwgCisgICAgICAgICAgICAiXHVGRkZEIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9UV19TdHJpbmdTeW1ib2xzW10gPSB7CisgICAgICAgICAgICAiTlQkIiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlRXRCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fR0JfU3RyaW5nU3ltYm9sc1tdID0geworICAgICAgICAgICAgIlx1MDBBMyIsIAorICAgICAgICAgICAgIkUiLCAKKyAgICAgICAgICAgICJcdTIyMUUiLCAKKyAgICAgICAgICAgICJHQlAiLCAKKyAgICAgICAgICAgICJcdUZGRkQiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX1VTX1N0cmluZ1N5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICIkIiwgCisgICAgICAgICAgICAiRSIsIAorICAgICAgICAgICAgIlx1MjIxRSIsIAorICAgICAgICAgICAgIlVTRCIsIAorICAgICAgICAgICAgIlx1RkZGRCIsIAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX0NBIiwgICAgICBlbl9DQV9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmcl9DQSIsICAgICAgZnJfQ0FfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiemhfQ04iLCAgICAgIHpoX0NOX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoIiwgICAgICAgICB6aF9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbiIsICAgICAgICAgZW5fU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfRlIiLCAgICAgIGZyX0ZSX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyIiwgICAgICAgICBmcl9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJkZSIsICAgICAgICAgZGVfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGVfREUiLCAgICAgIGRlX0RFX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoIml0IiwgICAgICAgICBpdF9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdF9JVCIsICAgICAgaXRfSVRfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiamFfSlAiLCAgICAgIGphX0pQX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphIiwgICAgICAgICBqYV9TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJrb19LUiIsICAgICAga29fS1JfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia28iLCAgICAgICAgIGtvX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04iLCB6aF9IYW5zX0NOX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnRfVFciLCB6aF9IYW50X1RXX1N0cmluZ1N5bWJvbHMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX1RXIiwgICAgICB6aF9UV19TdHJpbmdTeW1ib2xzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9HQiIsICAgICAgZW5fR0JfU3RyaW5nU3ltYm9scyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fVVMiLCAgICAgIGVuX1VTX1N0cmluZ1N5bWJvbHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGNoYXJbXSBnZXRDaGFyU3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoYXIgc3ltYm9sc1tdID0geworICAgICAgICAgICAgICAgIGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldERpZ2l0KCksCisgICAgICAgICAgICAgICAgZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldE1pbnVzU2lnbigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0UGFkRXNjYXBlKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0UGVyY2VudCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRQZXJNaWxsKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBsdXNTaWduKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFNpZ25pZmljYW50RGlnaXQoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0WmVyb0RpZ2l0KCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzeW1ib2xzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGdldFN0cmluZ1N5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3ltYm9sc1tdID0geworICAgICAgICAgICAgICAgIGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRFeHBvbmVudFNlcGFyYXRvcigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRJbmZpbml0eSgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0TmFOKCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzeW1ib2xzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgc2V0U3RyaW5nU3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMsIFN0cmluZyBzeW1ib2xzW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIGRmcy5zZXRDdXJyZW5jeVN5bWJvbChzeW1ib2xzWzBdKTsKKyAgICAgICAgICAgIGRmcy5zZXRFeHBvbmVudFNlcGFyYXRvcihzeW1ib2xzWzFdKTsKKyAgICAgICAgICAgIGRmcy5zZXRJbmZpbml0eShzeW1ib2xzWzJdKTsKKyAgICAgICAgICAgIGRmcy5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woc3ltYm9sc1szXSk7CisgICAgICAgICAgICBkZnMuc2V0TmFOKHN5bWJvbHNbNF0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnNbXSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9sc1tsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworCisgICAgICAgICAgICAgICAgZGZzW2ldID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKHVsb2MpOworICAgICAgICAgICAgICAgIHNldFN0cmluZ1N5bWJvbHMoZGZzW2ldLCAoU3RyaW5nW10pIGNhbm5lZERhdGEuZ2V0KHVsb2MudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGZzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnNfYSA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgYTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmc19iID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBiOworICAgICAgICAgICAgU3RyaW5nIHN0cmluZ3NfYVtdID0gZ2V0U3RyaW5nU3ltYm9scyhkZnNfYSk7CisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nc19iW10gPSBnZXRTdHJpbmdTeW1ib2xzKGRmc19iKTsKKyAgICAgICAgICAgIGNoYXIgY2hhcnNfYVtdID0gZ2V0Q2hhclN5bWJvbHMoZGZzX2EpOworICAgICAgICAgICAgY2hhciBjaGFyc19iW10gPSBnZXRDaGFyU3ltYm9scyhkZnNfYik7CisKKyAgICAgICAgICAgIHJldHVybiBTZXJpYWxpemFibGVUZXN0LmNvbXBhcmVTdHJpbmdzKHN0cmluZ3NfYSwgc3RyaW5nc19iKSAmJiBTZXJpYWxpemFibGVUZXN0LmNvbXBhcmVDaGFycyhjaGFyc19hLCBjaGFyc19iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1lc3NhZ2VGb3JtYXRIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdHNbXSA9IHtuZXcgTWVzc2FnZUZvcm1hdCgicGF0dGVybnswfSIpfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IG1mYSA9IChNZXNzYWdlRm9ybWF0KSBhOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBtZmIgPSAoTWVzc2FnZUZvcm1hdCkgYjsKKyAgICAgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHtuZXcgSW50ZWdlcigxMjM0NTYpfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG1mYS5mb3JtYXQoYXJndW1lbnRzKSAhPSBtZmIuZm9ybWF0KGFyZ3VtZW50cyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEYXRlRm9ybWF0SGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXRzW10gPSBuZXcgRGF0ZUZvcm1hdFtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZm9ybWF0czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZmEgPSAoRGF0ZUZvcm1hdCkgYTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGZiID0gKERhdGVGb3JtYXQpIGI7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgICAgICAgICBTdHJpbmcgc2ZhID0gZGZhLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIFN0cmluZyBzZmIgPSBkZmEuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgCisgICAgICAgICAgIHJldHVybiBzZmEuZXF1YWxzKHNmYik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgc2VyaWFsaXplZCBmb3JtIG9mIGEgbm9ybWFsbHkgY3JlYXRlZCBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QKKyAgICAgICAgICogd2lsbCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBkYXRhIGluIGl0IHRoYXQgbWlnaHQgY2hhbmdlIGZyb20gb25lIHZlcnNpb24KKyAgICAgICAgICogb2YgSUNVNEogdG8gYW5vdGhlci4gVG8gZ3VhcmQgYWdhaW5zdCB0aGlzLCB3ZSBzdG9yZSB0aGUgZm9sbG93aW5nIGNhbm5lZAorICAgICAgICAgKiBkYXRhIGludG8gdGhlIHRlc3Qgb2JqZWN0cyB3ZSBjcmVhdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgSGFzaE1hcCBjYW5uZWREYXRhID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX0NBX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXJ5IiwgCisgICAgICAgICAgICAiRmVicnVhcnkiLCAKKyAgICAgICAgICAgICJNYXJjaCIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWF5IiwgCisgICAgICAgICAgICAiSnVuZSIsIAorICAgICAgICAgICAgIkp1bHkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPY3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZWNlbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZnJfQ0FfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImphbnZpZXIiLCAKKyAgICAgICAgICAgICJmXHUwMEU5dnJpZXIiLCAKKyAgICAgICAgICAgICJtYXJzIiwgCisgICAgICAgICAgICAiYXZyaWwiLCAKKyAgICAgICAgICAgICJtYWkiLCAKKyAgICAgICAgICAgICJqdWluIiwgCisgICAgICAgICAgICAianVpbGxldCIsIAorICAgICAgICAgICAgImFvXHUwMEZCdCIsIAorICAgICAgICAgICAgInNlcHRlbWJyZSIsIAorICAgICAgICAgICAgIm9jdG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRcdTAwRTljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX0hhbnNfQ05fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgemhfQ05fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgemhfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIlx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU4Q1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwOVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTZEQlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU5NFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEUwM1x1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTE2Qlx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NEU1RFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEUwMFx1NjcwOCIsIAorICAgICAgICAgICAgIlx1NTM0MVx1NEU4Q1x1NjcwOCIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZW5fTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgIkphbnVhcnkiLCAKKyAgICAgICAgICAgICJGZWJydWFyeSIsIAorICAgICAgICAgICAgIk1hcmNoIiwgCisgICAgICAgICAgICAiQXByaWwiLCAKKyAgICAgICAgICAgICJNYXkiLCAKKyAgICAgICAgICAgICJKdW5lIiwgCisgICAgICAgICAgICAiSnVseSIsIAorICAgICAgICAgICAgIkF1Z3VzdCIsIAorICAgICAgICAgICAgIlNlcHRlbWJlciIsIAorICAgICAgICAgICAgIk9jdG9iZXIiLCAKKyAgICAgICAgICAgICJOb3ZlbWJlciIsIAorICAgICAgICAgICAgIkRlY2VtYmVyIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBmcl9GUl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiamFudmllciIsIAorICAgICAgICAgICAgImZcdTAwRTl2cmllciIsIAorICAgICAgICAgICAgIm1hcnMiLCAKKyAgICAgICAgICAgICJhdnJpbCIsIAorICAgICAgICAgICAgIm1haSIsIAorICAgICAgICAgICAgImp1aW4iLCAKKyAgICAgICAgICAgICJqdWlsbGV0IiwgCisgICAgICAgICAgICAiYW9cdTAwRkJ0IiwgCisgICAgICAgICAgICAic2VwdGVtYnJlIiwgCisgICAgICAgICAgICAib2N0b2JyZSIsIAorICAgICAgICAgICAgIm5vdmVtYnJlIiwgCisgICAgICAgICAgICAiZFx1MDBFOWNlbWJyZSIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgZnJfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImphbnZpZXIiLCAKKyAgICAgICAgICAgICJmXHUwMEU5dnJpZXIiLCAKKyAgICAgICAgICAgICJtYXJzIiwgCisgICAgICAgICAgICAiYXZyaWwiLCAKKyAgICAgICAgICAgICJtYWkiLCAKKyAgICAgICAgICAgICJqdWluIiwgCisgICAgICAgICAgICAianVpbGxldCIsIAorICAgICAgICAgICAgImFvXHUwMEZCdCIsIAorICAgICAgICAgICAgInNlcHRlbWJyZSIsIAorICAgICAgICAgICAgIm9jdG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRcdTAwRTljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGRlX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXIiLCAKKyAgICAgICAgICAgICJGZWJydWFyIiwgCisgICAgICAgICAgICAiTVx1MDBFNHJ6IiwgCisgICAgICAgICAgICAiQXByaWwiLCAKKyAgICAgICAgICAgICJNYWkiLCAKKyAgICAgICAgICAgICJKdW5pIiwgCisgICAgICAgICAgICAiSnVsaSIsIAorICAgICAgICAgICAgIkF1Z3VzdCIsIAorICAgICAgICAgICAgIlNlcHRlbWJlciIsIAorICAgICAgICAgICAgIk9rdG9iZXIiLCAKKyAgICAgICAgICAgICJOb3ZlbWJlciIsIAorICAgICAgICAgICAgIkRlemVtYmVyIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBkZV9ERV9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiSmFudWFyIiwgCisgICAgICAgICAgICAiRmVicnVhciIsIAorICAgICAgICAgICAgIk1cdTAwRTRyeiIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWFpIiwgCisgICAgICAgICAgICAiSnVuaSIsIAorICAgICAgICAgICAgIkp1bGkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPa3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZXplbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBTdHJpbmcgaXRfTW9udGhOYW1lc1tdID0geworICAgICAgICAgICAgImdlbm5haW8iLCAKKyAgICAgICAgICAgICJmZWJicmFpbyIsIAorICAgICAgICAgICAgIm1hcnpvIiwgCisgICAgICAgICAgICAiYXByaWxlIiwgCisgICAgICAgICAgICAibWFnZ2lvIiwgCisgICAgICAgICAgICAiZ2l1Z25vIiwgCisgICAgICAgICAgICAibHVnbGlvIiwgCisgICAgICAgICAgICAiYWdvc3RvIiwgCisgICAgICAgICAgICAic2V0dGVtYnJlIiwgCisgICAgICAgICAgICAib3R0b2JyZSIsIAorICAgICAgICAgICAgIm5vdmVtYnJlIiwgCisgICAgICAgICAgICAiZGljZW1icmUiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGl0X0lUX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJnZW5uYWlvIiwgCisgICAgICAgICAgICAiZmViYnJhaW8iLCAKKyAgICAgICAgICAgICJtYXJ6byIsIAorICAgICAgICAgICAgImFwcmlsZSIsIAorICAgICAgICAgICAgIm1hZ2dpbyIsIAorICAgICAgICAgICAgImdpdWdubyIsIAorICAgICAgICAgICAgImx1Z2xpbyIsIAorICAgICAgICAgICAgImFnb3N0byIsIAorICAgICAgICAgICAgInNldHRlbWJyZSIsIAorICAgICAgICAgICAgIm90dG9icmUiLCAKKyAgICAgICAgICAgICJub3ZlbWJyZSIsIAorICAgICAgICAgICAgImRpY2VtYnJlIiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9KUF9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1NjcwOCIsIAorICAgICAgICAgICAgIjJcdTY3MDgiLCAKKyAgICAgICAgICAgICIzXHU2NzA4IiwgCisgICAgICAgICAgICAiNFx1NjcwOCIsIAorICAgICAgICAgICAgIjVcdTY3MDgiLCAKKyAgICAgICAgICAgICI2XHU2NzA4IiwgCisgICAgICAgICAgICAiN1x1NjcwOCIsIAorICAgICAgICAgICAgIjhcdTY3MDgiLCAKKyAgICAgICAgICAgICI5XHU2NzA4IiwgCisgICAgICAgICAgICAiMTBcdTY3MDgiLCAKKyAgICAgICAgICAgICIxMVx1NjcwOCIsIAorICAgICAgICAgICAgIjEyXHU2NzA4IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBqYV9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1NjcwOCIsIAorICAgICAgICAgICAgIjJcdTY3MDgiLCAKKyAgICAgICAgICAgICIzXHU2NzA4IiwgCisgICAgICAgICAgICAiNFx1NjcwOCIsIAorICAgICAgICAgICAgIjVcdTY3MDgiLCAKKyAgICAgICAgICAgICI2XHU2NzA4IiwgCisgICAgICAgICAgICAiN1x1NjcwOCIsIAorICAgICAgICAgICAgIjhcdTY3MDgiLCAKKyAgICAgICAgICAgICI5XHU2NzA4IiwgCisgICAgICAgICAgICAiMTBcdTY3MDgiLCAKKyAgICAgICAgICAgICIxMVx1NjcwOCIsIAorICAgICAgICAgICAgIjEyXHU2NzA4IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBrb19LUl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1QzZENCIsIAorICAgICAgICAgICAgIjJcdUM2RDQiLCAKKyAgICAgICAgICAgICIzXHVDNkQ0IiwgCisgICAgICAgICAgICAiNFx1QzZENCIsIAorICAgICAgICAgICAgIjVcdUM2RDQiLCAKKyAgICAgICAgICAgICI2XHVDNkQ0IiwgCisgICAgICAgICAgICAiN1x1QzZENCIsIAorICAgICAgICAgICAgIjhcdUM2RDQiLCAKKyAgICAgICAgICAgICI5XHVDNkQ0IiwgCisgICAgICAgICAgICAiMTBcdUM2RDQiLCAKKyAgICAgICAgICAgICIxMVx1QzZENCIsIAorICAgICAgICAgICAgIjEyXHVDNkQ0IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBrb19Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiMVx1QzZENCIsIAorICAgICAgICAgICAgIjJcdUM2RDQiLCAKKyAgICAgICAgICAgICIzXHVDNkQ0IiwgCisgICAgICAgICAgICAiNFx1QzZENCIsIAorICAgICAgICAgICAgIjVcdUM2RDQiLCAKKyAgICAgICAgICAgICI2XHVDNkQ0IiwgCisgICAgICAgICAgICAiN1x1QzZENCIsIAorICAgICAgICAgICAgIjhcdUM2RDQiLCAKKyAgICAgICAgICAgICI5XHVDNkQ0IiwgCisgICAgICAgICAgICAiMTBcdUM2RDQiLCAKKyAgICAgICAgICAgICIxMVx1QzZENCIsIAorICAgICAgICAgICAgIjEyXHVDNkQ0IiwgCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyB6aF9IYW50X1RXX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDlcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTU2REJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOTRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDNcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFNURcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIHpoX1RXX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDlcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTU2REJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFOTRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkRcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFMDNcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUxNkJcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTRFNURcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFMDBcdTY3MDgiLCAKKyAgICAgICAgICAgICJcdTUzNDFcdTRFOENcdTY3MDgiLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBlbl9HQl9Nb250aE5hbWVzW10gPSB7CisgICAgICAgICAgICAiSmFudWFyeSIsIAorICAgICAgICAgICAgIkZlYnJ1YXJ5IiwgCisgICAgICAgICAgICAiTWFyY2giLCAKKyAgICAgICAgICAgICJBcHJpbCIsIAorICAgICAgICAgICAgIk1heSIsIAorICAgICAgICAgICAgIkp1bmUiLCAKKyAgICAgICAgICAgICJKdWx5IiwgCisgICAgICAgICAgICAiQXVndXN0IiwgCisgICAgICAgICAgICAiU2VwdGVtYmVyIiwgCisgICAgICAgICAgICAiT2N0b2JlciIsIAorICAgICAgICAgICAgIk5vdmVtYmVyIiwgCisgICAgICAgICAgICAiRGVjZW1iZXIiLCAKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgU3RyaW5nIGVuX1VTX01vbnRoTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICJKYW51YXJ5IiwgCisgICAgICAgICAgICAiRmVicnVhcnkiLCAKKyAgICAgICAgICAgICJNYXJjaCIsIAorICAgICAgICAgICAgIkFwcmlsIiwgCisgICAgICAgICAgICAiTWF5IiwgCisgICAgICAgICAgICAiSnVuZSIsIAorICAgICAgICAgICAgIkp1bHkiLCAKKyAgICAgICAgICAgICJBdWd1c3QiLCAKKyAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAKKyAgICAgICAgICAgICJPY3RvYmVyIiwgCisgICAgICAgICAgICAiTm92ZW1iZXIiLCAKKyAgICAgICAgICAgICJEZWNlbWJlciIsIAorICAgICAgICB9OworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJlbl9DQSIsICAgICAgZW5fQ0FfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZnJfQ0EiLCAgICAgIGZyX0NBX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0hhbnNfQ04iLCB6aF9IYW5zX0NOX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoInpoX0NOIiwgICAgICB6aF9DTl9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aCIsICAgICAgICAgemhfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW4iLCAgICAgICAgIGVuX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImZyX0ZSIiwgICAgICBmcl9GUl9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJmciIsICAgICAgICAgZnJfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZGUiLCAgICAgICAgIGRlX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImRlX0RFIiwgICAgICBkZV9ERV9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJpdCIsICAgICAgICAgaXRfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiaXRfSVQiLCAgICAgIGl0X0lUX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImphX0pQIiwgICAgICBqYV9KUF9Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJqYSIsICAgICAgICAgamFfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgia29fS1IiLCAgICAgIGtvX0tSX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImtvIiwgICAgICAgICBrb19Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9IYW50X1RXIiwgemhfSGFudF9UV19Nb250aE5hbWVzKTsKKyAgICAgICAgICAgIGNhbm5lZERhdGEucHV0KCJ6aF9UVyIsICAgICAgemhfVFdfTW9udGhOYW1lcyk7CisgICAgICAgICAgICBjYW5uZWREYXRhLnB1dCgiZW5fR0IiLCAgICAgIGVuX0dCX01vbnRoTmFtZXMpOworICAgICAgICAgICAgY2FubmVkRGF0YS5wdXQoImVuX1VTIiwgICAgICBlbl9VU19Nb250aE5hbWVzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzW10gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHNbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBkZnNbaV0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoR3JlZ29yaWFuQ2FsZW5kYXIuY2xhc3MsIHVsb2MpOworICAgICAgICAgICAgICAgIGRmc1tpXS5zZXRNb250aHMoKFN0cmluZ1tdKSBjYW5uZWREYXRhLmdldCh1bG9jLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRmczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzX2EgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpIGE7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBkZnNfYiA9IChEYXRlRm9ybWF0U3ltYm9scykgYjsKKyAgICAgICAgICAgIFN0cmluZyBtb250aHNfYVtdID0gZGZzX2EuZ2V0TW9udGhzKCk7CisgICAgICAgICAgICBTdHJpbmcgbW9udGhzX2JbXSA9IGRmc19iLmdldE1vbnRocygpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gU2VyaWFsaXphYmxlVGVzdC5jb21wYXJlU3RyaW5ncyhtb250aHNfYSwgbW9udGhzX2IpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlRGF0ZUZvcm1hdEhhbmRsZXIgZXh0ZW5kcyBEYXRlRm9ybWF0SGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5zW10gPSB7CisgICAgICAgICAgICAiRUVFRSwgeXl5eSBNTU1NIGRkIiwKKyAgICAgICAgICAgICJ5eXl5IE1NTU0gZCIsCisgICAgICAgICAgICAieXl5eSBNTU0gZCIsCisgICAgICAgICAgICAieXkvTU0vZGQiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXRzW10gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdFtwYXR0ZXJucy5sZW5ndGggKiBsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgcGF0dGVybnMubGVuZ3RoOyBwICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gMDsgbCA8IGxvY2FsZXMubGVuZ3RoOyBsICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdHNbaSsrXSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm5zW3BdLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2xdKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdHM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdEhhbmRsZXIgZXh0ZW5kcyBEYXRlRm9ybWF0SGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5zW10gPSB7CisgICAgICAgICAgICAiRUVFRSB5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwKKyAgICAgICAgICAgICJ5J3gnRy1NbC1kIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXQgZGF0ZUZvcm1hdHNbXSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFtwYXR0ZXJucy5sZW5ndGggKiBsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgcGF0dGVybnMubGVuZ3RoOyBwICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gMDsgbCA8IGxvY2FsZXMubGVuZ3RoOyBsICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBuZXcgVUxvY2FsZShsb2NhbGVzW2xdLnRvU3RyaW5nKCkgKyAiQGNhbGVuZGFyPWNoaW5lc2UiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXRzW2krK10gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXQocGF0dGVybnNbcF0sIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdHM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyIGV4dGVuZHMgRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgY2Rmc1tdID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9sc1tsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNkZnNbaV0gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKHVsb2MpOworICAgICAgICAgICAgICAgIGNkZnNbaV0uc2V0TW9udGhzKChTdHJpbmdbXSkgY2FubmVkRGF0YS5nZXQodWxvYy50b1N0cmluZygpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjZGZzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoISBzdXBlci5oYXNTYW1lQmVoYXZpb3IoYSwgYikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBjZGZzX2EgPSAoQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKSBhOworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGNkZnNfYiA9IChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjZGZzX2EuZ2V0TGVhcE1vbnRoKDApLmVxdWFscyhjZGZzX2IuZ2V0TGVhcE1vbnRoKDApKSAmJgorICAgICAgICAgICAgICAgICAgIGNkZnNfYS5nZXRMZWFwTW9udGgoMSkuZXF1YWxzKGNkZnNfYi5nZXRMZWFwTW9udGgoMSkpOworICAgICAgICB9CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTnVtYmVyRm9ybWF0RmllbGRIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRzW10gPSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LkZpZWxkLkNVUlJFTkNZLCBOdW1iZXJGb3JtYXQuRmllbGQuREVDSU1BTF9TRVBBUkFUT1IsIE51bWJlckZvcm1hdC5GaWVsZC5FWFBPTkVOVCwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQuRVhQT05FTlRfU0lHTiwgTnVtYmVyRm9ybWF0LkZpZWxkLkVYUE9ORU5UX1NZTUJPTCwgTnVtYmVyRm9ybWF0LkZpZWxkLkZSQUNUSU9OLAorICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdC5GaWVsZC5HUk9VUElOR19TRVBBUkFUT1IsIE51bWJlckZvcm1hdC5GaWVsZC5JTlRFR0VSLCBOdW1iZXJGb3JtYXQuRmllbGQuUEVSQ0VOVCwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQuUEVSTUlMTEUsIE51bWJlckZvcm1hdC5GaWVsZC5TSUdOCisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmllbGRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRfYSA9IChOdW1iZXJGb3JtYXQuRmllbGQpIGE7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuRmllbGQgZmllbGRfYiA9IChOdW1iZXJGb3JtYXQuRmllbGQpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmaWVsZF9hLnRvU3RyaW5nKCkuZXF1YWxzKGZpZWxkX2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcgbmVlZGVkLi4uCisgICAgfQorfQorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMyOGEzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDc5IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5MUlVNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVGltZVpvbmVBZGFwdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFNlcmlhbGl6YWJsZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ay5UZXN0R3JvdXAKK3sKKyAgICBwdWJsaWMgaW50ZXJmYWNlIEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSGFuZGxlciBnZXRIYW5kbGVyKFN0cmluZyBjbGFzc05hbWUpCisgICAgeworICAgICAgICByZXR1cm4gKEhhbmRsZXIpIG1hcC5nZXQoY2xhc3NOYW1lKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGltZVpvbmVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gWk9ORVMgPSB7ICJHTVQiLCAiTUVUIiwgIklTVCIgfTsKKworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZSB6b25lc1tdID0gbmV3IFRpbWVab25lW1pPTkVTLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgeiA9IDA7IHogPCBaT05FUy5sZW5ndGg7IHogKz0gMSkgeworICAgICAgICAgICAgICAgIHpvbmVzW3pdID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoWk9ORVNbel0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gem9uZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmVfYSA9IChUaW1lWm9uZSkgYTsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmVfYiA9IChUaW1lWm9uZSkgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHpvbmVfYS5nZXREaXNwbGF5TmFtZSgpLmVxdWFscyh6b25lX2IuZ2V0RGlzcGxheU5hbWUoKSkgJiYgem9uZV9hLmhhc1NhbWVSdWxlcyh6b25lX2IpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZSBsb2NhbGVzW10gPSB7CisgICAgICAgIExvY2FsZS5DQU5BREEsIExvY2FsZS5DQU5BREFfRlJFTkNILCBMb2NhbGUuQ0hJTkEsIAorICAgICAgICBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkVOR0xJU0gsIExvY2FsZS5GUkFOQ0UsIExvY2FsZS5GUkVOQ0gsIAorICAgICAgICBMb2NhbGUuR0VSTUFOLCBMb2NhbGUuR0VSTUFOWSwgTG9jYWxlLklUQUxJQU4sIExvY2FsZS5JVEFMWSwgCisgICAgICAgIExvY2FsZS5KQVBBTiwgTG9jYWxlLkpBUEFORVNFLCBMb2NhbGUuS09SRUEsIExvY2FsZS5LT1JFQU4sIAorICAgICAgICBMb2NhbGUuUFJDLCBMb2NhbGUuU0lNUExJRklFRF9DSElORVNFLCBMb2NhbGUuVEFJV0FOLCAKKyAgICAgICAgTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UsIExvY2FsZS5VSywgTG9jYWxlLlVTCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBMb2NhbGUgcGxhY2VzW10gPSB7CisgICAgICAgIExvY2FsZS5DQU5BREEsIExvY2FsZS5DQU5BREFfRlJFTkNILCBMb2NhbGUuQ0hJTkEsIAorICAgICAgICBMb2NhbGUuRlJBTkNFLCBMb2NhbGUuR0VSTUFOWSwgTG9jYWxlLklUQUxZLCAKKyAgICAgICAgTG9jYWxlLkpBUEFOLCBMb2NhbGUuS09SRUEsIExvY2FsZS5QUkMsIExvY2FsZS5UQUlXQU4sIAorICAgICAgICBMb2NhbGUuVUssIExvY2FsZS5VUworICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhbGVzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZVN0cmluZ3MoU3RyaW5nIGFbXSwgU3RyaW5nIGJbXSkKKyAgICB7CisgICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGlmICghIGFbaV0uZXF1YWxzKGJbaV0pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbXBhcmVDaGFycyhjaGFyIGFbXSwgY2hhciBiW10pCisgICAgeworICAgICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTaW1wbGVUaW1lWm9uZUhhbmRsZXIgZXh0ZW5kcyBUaW1lWm9uZUhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHNpbXBsZVRpbWVab25lc1tdID0gbmV3IFNpbXBsZVRpbWVab25lWzZdOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbMF0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJNeVRpbWVab25lIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1sxXSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzJdID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzJdLnNldFJhd09mZnNldCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzNdID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzNdLnNldFN0YXJ0WWVhcigxMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0U3RhcnRZZWFyKDEwMDApOworICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzRdLnNldERTVFNhdmluZ3MoMTgwMDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0U3RhcnRSdWxlKDMsIDQsIDE4MDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0uc2V0U3RhcnRSdWxlKDIsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNV0uc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc2ltcGxlVGltZVpvbmVzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFVMb2NhbGVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgVUxvY2FsZSB1TG9jYWxlc1tdID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB1TG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdUxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvY19hID0gKFVMb2NhbGUpIGE7CisgICAgICAgICAgICBVTG9jYWxlIHVsb2NfYiA9IChVTG9jYWxlKSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdWxvY19hLmdldE5hbWUoKS5lcXVhbHModWxvY19iLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ3VycmVuY3lIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgQ3VycmVuY3kgY3VycmVuY2llc1tdID0gbmV3IEN1cnJlbmN5W3BsYWNlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBsYWNlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGN1cnJlbmNpZXNbaV0gPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShwbGFjZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3VycmVuY2llczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgQ3VycmVuY3kgY3Vycl9hID0gKEN1cnJlbmN5KSBhOworICAgICAgICAgICAgQ3VycmVuY3kgY3Vycl9iID0gKEN1cnJlbmN5KSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY3Vycl9hLmdldEN1cnJlbmN5Q29kZSgpLmVxdWFscyhjdXJyX2IuZ2V0Q3VycmVuY3lDb2RlKCkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgT2xzb25UaW1lWm9uZUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgem9uZUlEc1tdID0geworICAgICAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLCAiQW1lcmljYS9BbmNob3JhZ2UiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAiQW1lcmljYS9DaGljYWdvIiwgIkFtZXJpY2EvTmV3X1lvcmsiLCAiQWZyaWNhL0NhaXJvIiwgIkFmcmljYS9BZGRpc19BYmFiYSIsICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsCisgICAgICAgICAgICAiQWZyaWNhL0ZyZWV0b3duIiwgIkFmcmljYS9Kb2hhbm5lc2J1cmciLCAiQWZyaWNhL05haXJvYmkiLCAiQXNpYS9CYW5na29rIiwgIkFzaWEvQmFnaGRhZCIsCisgICAgICAgICAgICAiQXNpYS9DYWxjdXR0YSIsICJBc2lhL0hvbmdfS29uZyIsICJBc2lhL0pha2FydGEiLCAiQXNpYS9KZXJ1c2FsZW0iLCAiQXNpYS9NYW5pbGEiLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICAgICAiRXVyb3BlL0Ftc3RlcmRhbSIsICJFdXJvcGUvQXRoZW5zIiwgIkV1cm9wZS9CZXJsaW4iLCAiRXVyb3BlL0xvbmRvbiIsICJFdXJvcGUvTWFsdGEiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICAgICAiRXVyb3BlL1BhcmlzIiwgIkV1cm9wZS9Sb21lIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgT2xzb25UaW1lWm9uZSB0aW1lWm9uZXNbXSA9IG5ldyBPbHNvblRpbWVab25lW3pvbmVJRHMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgdGltZVpvbmVzW2ldID0gbmV3IE9sc29uVGltZVpvbmUoem9uZUlEc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZXM7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIE9sc29uVGltZVpvbmUgb3R6X2EgPSAoT2xzb25UaW1lWm9uZSkgYTsKKyAgICAgICAgICAgIE9sc29uVGltZVpvbmUgb3R6X2IgPSAoT2xzb25UaW1lWm9uZSkgYjsKKyAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBpbnQgYV9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICBpbnQgYl9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG90el9hLmdldE9mZnNldChub3csIGZhbHNlLCBhX29mZnNldHMpOworICAgICAgICAgICAgb3R6X2IuZ2V0T2Zmc2V0KG5vdywgZmFsc2UsIGJfb2Zmc2V0cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBhX29mZnNldHNbMF0gPT0gYl9vZmZzZXRzWzBdICYmIGFfb2Zmc2V0c1sxXSA9PSBiX29mZnNldHNbMV07CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSkRLVGltZVpvbmVIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgU3RyaW5nIHpvbmVJRHNbXSA9IHsKKyAgICAgICAgICAgICJQYWNpZmljL0hvbm9sdWx1IiwgIkFtZXJpY2EvQW5jaG9yYWdlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAgICAgIkFtZXJpY2EvQ2hpY2FnbyIsICJBbWVyaWNhL05ld19Zb3JrIiwgIkFmcmljYS9DYWlybyIsICJBZnJpY2EvQWRkaXNfQWJhYmEiLCAiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLAorICAgICAgICAgICAgIkFmcmljYS9GcmVldG93biIsICJBZnJpY2EvSm9oYW5uZXNidXJnIiwgIkFmcmljYS9OYWlyb2JpIiwgIkFzaWEvQmFuZ2tvayIsICJBc2lhL0JhZ2hkYWQiLAorICAgICAgICAgICAgIkFzaWEvQ2FsY3V0dGEiLCAiQXNpYS9Ib25nX0tvbmciLCAiQXNpYS9KYWthcnRhIiwgIkFzaWEvSmVydXNhbGVtIiwgIkFzaWEvTWFuaWxhIiwgIkFzaWEvVG9reW8iLAorICAgICAgICAgICAgIkV1cm9wZS9BbXN0ZXJkYW0iLCAiRXVyb3BlL0F0aGVucyIsICJFdXJvcGUvQmVybGluIiwgIkV1cm9wZS9Mb25kb24iLCAiRXVyb3BlL01hbHRhIiwgIkV1cm9wZS9Nb3Njb3ciLAorICAgICAgICAgICAgIkV1cm9wZS9QYXJpcyIsICJFdXJvcGUvUm9tZSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpES1RpbWVab25lIHRpbWVab25lc1tdID0gbmV3IEpES1RpbWVab25lW3pvbmVJRHMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgdGltZVpvbmVzW2ldID0gbmV3IEpES1RpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSh6b25lSURzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZXM7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpES1RpbWVab25lIGp0el9hID0gKEpES1RpbWVab25lKSBhOworICAgICAgICAgICAgSkRLVGltZVpvbmUganR6X2IgPSAoSkRLVGltZVpvbmUpIGI7CisgICAgICAgICAgICBsb25nIG5vdyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgaW50IGFfb2Zmc2V0c1tdID0gezAsIDB9OworICAgICAgICAgICAgaW50IGJfb2Zmc2V0c1tdID0gezAsIDB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBqdHpfYS5nZXRPZmZzZXQobm93LCBmYWxzZSwgYV9vZmZzZXRzKTsKKyAgICAgICAgICAgIGp0el9iLmdldE9mZnNldChub3csIGZhbHNlLCBiX29mZnNldHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gYV9vZmZzZXRzWzBdID09IGJfb2Zmc2V0c1swXSAmJiBhX29mZnNldHNbMV0gPT0gYl9vZmZzZXRzWzFdOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRpbWVab25lQWRhcHRlckhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgem9uZUlEc1tdID0geworICAgICAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLCAiQW1lcmljYS9BbmNob3JhZ2UiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAiQW1lcmljYS9DaGljYWdvIiwgIkFtZXJpY2EvTmV3X1lvcmsiLCAiQWZyaWNhL0NhaXJvIiwgIkFmcmljYS9BZGRpc19BYmFiYSIsICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsCisgICAgICAgICAgICAiQWZyaWNhL0ZyZWV0b3duIiwgIkFmcmljYS9Kb2hhbm5lc2J1cmciLCAiQWZyaWNhL05haXJvYmkiLCAiQXNpYS9CYW5na29rIiwgIkFzaWEvQmFnaGRhZCIsCisgICAgICAgICAgICAiQXNpYS9DYWxjdXR0YSIsICJBc2lhL0hvbmdfS29uZyIsICJBc2lhL0pha2FydGEiLCAiQXNpYS9KZXJ1c2FsZW0iLCAiQXNpYS9NYW5pbGEiLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICAgICAiRXVyb3BlL0Ftc3RlcmRhbSIsICJFdXJvcGUvQXRoZW5zIiwgIkV1cm9wZS9CZXJsaW4iLCAiRXVyb3BlL0xvbmRvbiIsICJFdXJvcGUvTWFsdGEiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICAgICAiRXVyb3BlL1BhcmlzIiwgIkV1cm9wZS9Sb21lIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmVBZGFwdGVyIHRpbWVab25lc1tdID0gbmV3IFRpbWVab25lQWRhcHRlclt6b25lSURzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZUlEcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIHRpbWVab25lc1tpXSA9IG5ldyBUaW1lWm9uZUFkYXB0ZXIoVGltZVpvbmUuZ2V0VGltZVpvbmUoem9uZUlEc1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdGltZVpvbmVzOworICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZUFkYXB0ZXIgdHphX2EgPSAoVGltZVpvbmVBZGFwdGVyKSBhOworICAgICAgICAgICAgVGltZVpvbmVBZGFwdGVyIHR6YV9iID0gKFRpbWVab25lQWRhcHRlcikgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR6YV9hLmhhc1NhbWVSdWxlcyh0emFfYik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQmlnRGVjaW1hbEhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgdmFsdWVzW10gPSB7CisgICAgICAgICAgICAiMTIzNDU2Nzg5MC4iLAorICAgICAgICAgICAgIjEyMzQ1Njc4OS4wIiwKKyAgICAgICAgICAgICIxMjM0NTY3OC45MCIsCisgICAgICAgICAgICAiMTIzNDU2Ny44OTAiLAorICAgICAgICAgICAgIjEyMzQ1Ni43ODkwIiwKKyAgICAgICAgICAgICIxMjM0NS42Nzg5MCIsCisgICAgICAgICAgICAiMTIzNC41Njc4OTAiLAorICAgICAgICAgICAgIjEyMy40NTY3ODkwIiwKKyAgICAgICAgICAgICIxMi4zNDU2Nzg5MCIsCisgICAgICAgICAgICAiMS4yMzQ1Njc4OTAiLAorICAgICAgICAgICAgIi4xMjM0NTY3ODkwIn07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGJkc1tdID0gbmV3IEJpZ0RlY2ltYWxbdmFsdWVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgYmRzW2ldID0gbmV3IEJpZ0RlY2ltYWwodmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGJkczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZGEgPSAoQmlnRGVjaW1hbCkgYTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmRiID0gKEJpZ0RlY2ltYWwpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBiZGEudG9TdHJpbmcoKS5lcXVhbHMoYmRiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1hdGhDb250ZXh0SGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIGludCBmb3Jtc1tdID0ge01hdGhDb250ZXh0LlBMQUlOLCBNYXRoQ29udGV4dC5FTkdJTkVFUklORywgTWF0aENvbnRleHQuU0NJRU5USUZJQ307CisgICAgICAgIGludCByb3VuZHNbXSA9IHsKKyAgICAgICAgICAgIE1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcsIE1hdGhDb250ZXh0LlJPVU5EX0RPV04sIE1hdGhDb250ZXh0LlJPVU5EX0ZMT09SLAorICAgICAgICAgICAgTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOLCBNYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4sIE1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVAsCisgICAgICAgICAgICBNYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSwgTWF0aENvbnRleHQuUk9VTkRfVVB9OworCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBvYmplY3RDb3VudCA9IGZvcm1zLmxlbmd0aCAqIHJvdW5kcy5sZW5ndGg7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBjb250ZXh0c1tdID0gbmV3IE1hdGhDb250ZXh0W29iamVjdENvdW50XTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgZiA9IDA7IGYgPCBmb3Jtcy5sZW5ndGg7IGYgKz0gMSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgcm91bmRzLmxlbmd0aDsgciArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdHMgPSBmICogcjsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsb3N0RGlnaXRzID0gKHIgJiAxKSAhPSAwOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHNbaSsrXSA9IG5ldyBNYXRoQ29udGV4dChkaWdpdHMsIGZvcm1zW2ZdLCBsb3N0RGlnaXRzLCByb3VuZHNbcl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBtY2EgPSAoTWF0aENvbnRleHQpIGE7CisgICAgICAgICAgICBNYXRoQ29udGV4dCBtY2IgPSAoTWF0aENvbnRleHQpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtY2EudG9TdHJpbmcoKS5lcXVhbHMobWNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExSVU1hcEhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMUlVNYXBbXSBtYXBzID0gbmV3IExSVU1hcFsxXTsKKyAgICAgICAgICAgIG1hcHNbMF0gPSBuZXcgTFJVTWFwKCk7CisgICAgICAgICAgICBtYXBzWzBdLnB1dCgiMSIsICJhIik7CisgICAgICAgICAgICBtYXBzWzBdLnB1dCgiMiIsICJiIik7CisgICAgICAgICAgICByZXR1cm4gbWFwczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBMUlVNYXAgbWFwQSA9IChMUlVNYXApIGE7CisgICAgICAgICAgICBMUlVNYXAgbWFwQiA9IChMUlVNYXApIGI7CisgICAgICAgICAgICByZXR1cm4gbWFwQS5lcXVhbHMobWFwQik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMaW5rZWRIYXNoTWFwSGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExpbmtlZEhhc2hNYXBbXSBtYXBzID0gbmV3IExpbmtlZEhhc2hNYXBbMl07CisgICAgICAgICAgICBtYXBzWzBdID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgICAgIG1hcHNbMV0gPSBuZXcgTGlua2VkSGFzaE1hcCgxNiwgMC43NUYsIHRydWUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtYXBzW2ldLnB1dCgiMSIsICJhIik7CisgICAgICAgICAgICAgICAgbWFwc1tpXS5wdXQoIjIiLCAiYiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1hcHM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTGlua2VkSGFzaE1hcCBtYXBBID0gKExpbmtlZEhhc2hNYXApIGE7CisgICAgICAgICAgICBMaW5rZWRIYXNoTWFwIG1hcEIgPSAoTGlua2VkSGFzaE1hcCkgYjsKKyAgICAgICAgICAgIHJldHVybiBtYXBBLmVxdWFscyhtYXBCKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIEhhc2hNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAKKyAgICBzdGF0aWMgeworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLlRpbWVab25lIiwgbmV3IFRpbWVab25lSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZSIsIG5ldyBTaW1wbGVUaW1lWm9uZUhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSIsIG5ldyBVTG9jYWxlSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeSIsIG5ldyBDdXJyZW5jeUhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUiLCBuZXcgSkRLVGltZVpvbmVIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5pbXBsLkxpbmtlZEhhc2hNYXAiLCBuZXcgTGlua2VkSGFzaE1hcEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuTFJVTWFwIiwgbmV3IExSVU1hcEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZSIsIG5ldyBPbHNvblRpbWVab25lSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIiLCBuZXcgVGltZVpvbmVBZGFwdGVySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIiwgbmV3IEJpZ0RlY2ltYWxIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IiwgbmV3IE1hdGhDb250ZXh0SGFuZGxlcigpKTsKKyAgICAgICAgCisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLk51bWJlckZvcm1hdEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdCIsIG5ldyBGb3JtYXRUZXN0cy5EZWNpbWFsRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuUnVsZUJhc2VkTnVtYmVyRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyIsIG5ldyBGb3JtYXRUZXN0cy5EZWNpbWFsRm9ybWF0U3ltYm9sc0hhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdCIsIG5ldyBGb3JtYXRUZXN0cy5NZXNzYWdlRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLkRhdGVGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzIiwgbmV3IEZvcm1hdFRlc3RzLkRhdGVGb3JtYXRTeW1ib2xzSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLlNpbXBsZURhdGVGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLkNoaW5lc2VEYXRlRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMiLCBuZXcgRm9ybWF0VGVzdHMuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzSGFuZGxlcigpKTsKKworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5CdWRkaGlzdENhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5DaGluZXNlQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuQ29wdGljQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5FdGhpb3BpY0NhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkdyZWdvcmlhbkNhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkhlYnJld0NhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5Jc2xhbWljQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5KYXBhbmVzZUNhbGVuZGFySGFuZGxlcigpKTsKKyAgICAgICAgCisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiIsIG5ldyBFeGNlcHRpb25UZXN0cy5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24iLCBuZXcgRXhjZXB0aW9uVGVzdHMuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24iLCBuZXcgRXhjZXB0aW9uVGVzdHMuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5JbnZhbGlkRm9ybWF0RXhjZXB0aW9uIiwgbmV3IEV4Y2VwdGlvblRlc3RzLkludmFsaWRGb3JtYXRFeGNlcHRpb25IYW5kbGVyKCkpOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdCRGaWVsZCIsIG5ldyBGb3JtYXRUZXN0cy5OdW1iZXJGb3JtYXRGaWVsZEhhbmRsZXIoKSk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlVGVzdCgpCisgICAgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZS5Db3ZlcmFnZVRlc3QiLAorICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuQ29tcGF0aWJpbGl0eVRlc3QifSwKKyAgICAgICAgICAgICAgICAiQWxsIFNlcmlhbGl6YWJsZSBUZXN0cyIKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSAgPSAiU2VyaWFsaXphYmxlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBTZXJpYWxpemFibGVUZXN0IHRlc3QgPSBuZXcgU2VyaWFsaXphYmxlVGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NjAyZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CisKKy8qKgorICogVGhpcyBjbGFzcyB3cml0ZXMgdGhlIHRlc3Qgb2JqZWN0cyBmb3IgZWFjaCBjbGFzcyB0byBhIGZpbGUuIFRoZSB3b3JrIGlzCisgKiBhY3R1YWxseSBkb25lIGJ5IHRoZSBzdXBlcmNsYXNzLCBDb3ZlcmFnZVRlc3QuIFRoaXMgY2xhc3MganVzdCBjb25zdHJ1Y3RzCisgKiBhIENvdmVyYWdlVGVzdCB3LyBhIG5vbi1udWxsIHBhdGgsIHdoaWNoIHRlbGxzIGl0IHRvIHdyaXRlIHRoZSBkYXRhLgorICogCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJpYWxpemFibGVXcml0ZXIgZXh0ZW5kcyBDb3ZlcmFnZVRlc3QKK3sKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlV3JpdGVyKFN0cmluZyBwYXRoKQorICAgIHsKKyAgICAgICAgc3VwZXIocGF0aCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBmb2xkZXJOYW1lKCkKKyAgICB7CisgICAgICAgIGludCBtYWpvciA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1ham9yKCk7CisgICAgICAgIGludCBtaW5vciA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbm9yKCk7CisgICAgICAgIGludCBtaWxsaSA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbGxpKCk7CisgICAgICAgIGludCBtaWNybyA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pY3JvKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCJJQ1VfIik7CisgICAgICAgIAorICAgICAgICByZXN1bHQuYXBwZW5kKG1ham9yKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiLiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1pbm9yKTsKKyAgICAgICAgCisgICAgICAgIGlmIChtaWxsaSAhPSAwIHx8IG1pY3JvICE9IDApIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi4iKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobWlsbGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobWljcm8gIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi4iKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1pY3JvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBVUkwgZGF0YVVSTCA9IFNlcmlhbGl6YWJsZVdyaXRlci5jbGFzcy5nZXRSZXNvdXJjZSgiZGF0YSIpOworICAgICAgICBDb3ZlcmFnZVRlc3QgdGVzdCA9IG5ldyBTZXJpYWxpemFibGVXcml0ZXIoZGF0YVVSTC5nZXRQYXRoKCkgKyAiLyIgKyBmb2xkZXJOYW1lKCkpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgICAgIAorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBkNGE1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjY1NWJkOWFlMTljOTNkZjRjMWZjNTViZTkwMWNiZTYyMzVmOWMyMDNjOTc1M2FlNThmMWNlMDg2ODFiMDJlOGEKK3NpemUgMTExNwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIxYmU0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MWI1ZGUzOTdlZWZkMDVjZGI1ZWNmZTdlN2M5MTA4ZDljZDg1MGE5NmVhMjc0MGNmMDE3OGI0OGM0YTZjMDYzOAorc2l6ZSAxMjI1NgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4ZDczOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YzJiYzcwNTkwZDIyZTAwNGNlYTU1OGU1YmM3MWU0M2Y1YjkyNTI4OGEyZTJlNzQwZTQ4NDI3YmFlOWEzNDBjNQorc2l6ZSAxMjY4OQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdmZGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6Zjk4MDc2YTVjNWE2MDZjMjBlMmEwNDliZGNmMGFiMmU2MTVjNTRlZThlNTRkNTc1N2ZiNWMwOThiOTBkMTI3Mworc2l6ZSA1MjAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJkZjNkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjU3YTA3NjlkNTJhZWI1NjExMTNkODc3NTkyZTAzYTQyMTA2ZWEyYTgwZWM3YjU5ZWJiODEyZGViNzc4OGMxNzAKK3NpemUgNTk1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb24uZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjhlNDg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo4NTA4MDk4N2I3NmJiZTk1MDU5MmQ3MzUxMjVkMTUyNmRkNjhkMmI1Mzg0NjZiZGNmMDZkODI3YmEwZmNmMzFkCitzaXplIDY3MzMKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjExMjEzNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojg2ZWI1NzM3YmMzYmM1NTVmODUzNzlkNGFhNGU1ZmJmOTAzMzUxZGIwZWZiZmY5ZWUwOWQ4NjUwOTExZjkxZmIKK3NpemUgMTgyMjgwCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQxN2NmNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjowMjZjZWJhZDM5MzdkYWNiMGY1NWY2ZWZkMjRhM2Q3ZGI3Y2ZhNDEyOTAwYTIxNTMwYjJlMDljMzEwNGZlOTg3CitzaXplIDI2MTAzCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDcwNWVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjozYmRlZjk4YWQ5OTIzNjgyZmNhZDUwNWYxNzAyNThkZDhiMTQ3MWQyZjljYjRiNTcxMzFlNmFjMDlkMmEyNDU2CitzaXplIDQ4NTMyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZjVkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo3NzllMjAyMDRmNWY2YTNiMzc5NDY1ZTMzNWE3NWQwY2ZmNmFkZTBkNzdmMGZiZWUxZjEyYjQzNDg4YzhjMjVhCitzaXplIDI1NjY0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzM5ZDIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjoyMTIyMTI0ZGU4MmRkYzYzYjY2MmFiYmNkMGIzYjhjMThjMDRiNzc1NTUwNTc4YTU3NGZlNjk2ZDBlOTc4YjdjCitzaXplIDY2NjQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY1NTk4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjI2YWVmNWM1ZWRhMWUwN2I5NjdmMDhkMDAwNjBmMDBiMDdhMzRiNmE0ODI5MDE0ZWQwZjMzYWU3NjYzZDFjMjEKK3NpemUgMzE3MwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyOTc4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6N2ZiMGI0NGRiNWVkM2ZlZTY0ZGY0MjUwZmJlNTUwMTE1ZDI0YzI0NDk0ZTkwNTUwNDc4OGNiMTk3OWU0OGRkNAorc2l6ZSA2NDEKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWNkNDBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmM3OTIwZDgyOWRmY2Q2NjBjZjVkM2U4ZDNiZTNmOWY5NmQ2NDZjZDAzNDhiMTNhYmQ4MGM0ZjEzMzk4OWE2M2EKK3NpemUgMjgyMgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NzQ5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YTE1NjAzZGIzOGZiZGU5ODQ0ZmUxZDUxZWI3NTYwMDgzYTA2ZmZhMmQ0ZWIwNDBlOWVhZTA1YjNkOTJjN2E4NAorc2l6ZSA1Mzk3MQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljYzA2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OWYzMzYyNTBhNThkNmUxMWJhZDU3MWRmZGFmZGViODViOTQ4NGVjZGFjNDc0NGMwYmQ5Mzc2MjlhYjk5NmUwYworc2l6ZSAxNzc1ODYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTZkNDk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjExY2UyZmQwZmVlNjdkNTEwYmMwNGYwODExMzNkMzRkMDU2ZTgyMmFkNTM1MDhmMmVkN2JhNmIyZDY4MTY1NTEKK3NpemUgMTEyMjYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzODVlZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjMwNzFlNWVjNmE5NDAyYjFlZTBjZmJhMGU3NjU2OWU0ODM3ZjZiY2FkN2JmMGYwNjk5MGJmYjMxYTI1OWViMmUKK3NpemUgMjM0NApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWMxMGE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MGJhNjNlYzQzYzRjNjQ1ZDU1NTE1ZDYyZmQ1YjY5ZGIxNjFhZTQ4MzU5MjA3OTcyNDg0NmY0MDc2ZmVlMTE3OQorc2l6ZSAzMTQ2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY0ZTE4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpjZWYwN2E0YWJjM2VlNDdkNmRhMWUzMGMyZWI1NGNiYWQzZTNmMDg0Yjg1NWFkNmExYWIyY2NiY2VhODczOGZkCitzaXplIDIxOTUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM0OWYwZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6Yzc4ZDA1YzRjMTM2OGNkYjE1OWJhYTAyY2UxZmQ1YzhjMjk1Mzc2ODM2MDc5YzBiMzNkNzc1Y2M2Y2Y3ZmZmMQorc2l6ZSAyOTY0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkN1cnJlbmN5LmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3kuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZmE5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkN1cnJlbmN5LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo5ODcyNmQ0MWZjYmUyNDk1N2QyYjY5YTY2ZjIwODg3YWQ3NTc4MjFkNjkxZDQ4ZTk3MTg1MWQ5YzY0YWE3OTcyCitzaXplIDM1MQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI1MDU2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YzBiNWQ5ODE1ZGZlMzNkMWZmNTc1MGUzZDZhNjM2YzJjZDg0NzBhYjI4MDQwYjEzZjJmNTc5NGYzM2QzMDY0Mworc2l6ZSAyMjU2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYTljYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo4ZDZkMDhhOWM3Mzk5OTQzZjQwNzFiNTZjOWE4ZTZhMWZlMjhiZmU2YTFjODllMTMyMWQ5YWVhMTA2NGVhODE4CitzaXplIDMxNTUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM3ZTAzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojc5YjY0OTdjNTZhYzlhMzc4YmU2YzgwZDg1OTQ4ZDAzZWY1NTZhZTFjNjc2OGNjY2Y2ZDcxM2ZkNGYxZTQyZjcKK3NpemUgMjgyNwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OGUyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OTYxZTg1NDE2MTgxZDNiZDdlYzhhNjQyZjc5MzZlODA1OGZmZDkyZjk5ZjY0OGQ5NzAyZmJkNTE5NzEyOTZmZgorc2l6ZSAzMDExCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmM0Y2ZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpkYTJiNGIyYzc2MDcxOWU3MDc1NmE4YmQwNDE1YzFiYjhjN2Y4ZTc3MTkzNTBlNzdmYjMyYzAzMTE4NzIyZTQxCitzaXplIDIzNDIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkMjZiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmI4M2E5YzE2N2I1ZTE4MTNmY2U3ZWU3MDRhYTljZTI5Y2RlNjE3YTI5OTYwZDg1N2QwM2IyMGE1NDdhZDRjMWYKK3NpemUgMTI2NQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlRpbWVab25lLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQ0YmU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6OTZiOWEyMTBmOWQwNmMwNjYyMmM1Nzk4MDE1ZDQyNjc0OTAzYTA3NDExYjAwMmQ3YjJmMWEzOWY2NmYyZmM5Mworc2l6ZSAxMjg4CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVMb2NhbGUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VTG9jYWxlLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTkyM2UxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VTG9jYWxlLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjoyZDk1MzA0ZmI0MTMxNTNkMmQ2MmE4MTFhZDdlNGQxMWE5NTAxN2E1MGU2MjdmY2U3YzYwMzM2ZWNiYzBiYTI2CitzaXplIDM5MgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyYWFmN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YjNjOTBlOGYwMzdhMTJlYmM1MjgxMTdkOTgzNzBmYmM5N2EzNDIzMzVmYzcxYzg2MWQ3OWMxZDU2OWMxYzJkMAorc2l6ZSA2Nzk4CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1JlZ1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDFmZTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1JlZ1Rlc3QuamF2YQpAQCAtMCwwICsxLDUwMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zaGFwaW5nOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb247CisKKy8qKgorICogUmVncmVzc2lvbiB0ZXN0IGZvciBBcmFiaWMgc2hhcGluZy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdSZWdUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLyogY29uc3RhbnRzIGNvcGllZCBmcm9tIEFyYWJpY1NoYXBpbmcgZm9yIGNvbnZlbmllbmNlICovCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfR1JPV19TSFJJTksgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HID0gMzsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgPSA0OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19OT09QID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFID0gODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEID0gMHgxODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1VOU0hBUEUgPSAweDEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX05PT1AgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTiA9IDB4MjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0FOMkVOID0gMHg0MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9MUiA9IDB4NjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOX0lOSVRfQUwgPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUdJVFNfUkVTRVJWRUQgPSAweGEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTiA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCA9IDB4MTAwOworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBUZXN0RGF0YSB7CisgICAgICAgIHB1YmxpYyBpbnQgdHlwZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBzb3VyY2U7CisgICAgICAgIHB1YmxpYyBpbnQgZmxhZ3M7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzdWx0OworICAgICAgICBwdWJsaWMgaW50IGxlbmd0aDsKKyAgICAgICAgcHVibGljIENsYXNzIGVycm9yOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQVJEID0gMDsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJFRkxJR0hUID0gMTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1IgPSAyOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgc3RhbmRhcmQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFNUQU5EQVJELCBzb3VyY2UsIGZsYWdzLCByZXN1bHQsIDAsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0RGF0YSBwcmVmbGlnaHQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFBSRUZMSUdIVCwgc291cmNlLCBmbGFncywgbnVsbCwgbGVuZ3RoLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgZXJyb3IoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXN0RGF0YShFUlJPUiwgc291cmNlLCBmbGFncywgbnVsbCwgMCwgZXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0RGF0YShpbnQgdHlwZSwgU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0LCBpbnQgbGVuZ3RoLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICAgICAgdGhpcy5mbGFncyA9IGZsYWdzOworICAgICAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVuYW1lcyA9IHsgInN0YW5kYXJkIiwgInByZWZsaWdodCIsICJlcnJvciIgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJbXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHlwZW5hbWVzW3R5cGVdKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgibnVsbCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChlc2NhcGVkU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGZsYWdzKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIm51bGwiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZXNjYXBlZFN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChlcnJvcik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCddJyk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbGFtQWxlZlNwZWNpYWxWTFRSID0KKyAgICAgICAgIlx1MDAyMFx1MDY0Nlx1MDYyMlx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyM1x1MDY0RVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyN1x1MDY3MFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1M1x1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyNVx1MDY1NVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1NFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1RkVGQ1x1MDYzOSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGFzaGtlZWxTcGVjaWFsVkxUUiA9CisgICAgICAgICJcdTA2NEFcdTA2MjhcdTA2MzFcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDY0QVx1MDYyOFx1MDY1MVx1MDYzMVx1MDY0RVx1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjRDXHUwNjRBXHUwNjI4XHUwNjMxXHUwNjRGXHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NzBcdTA2MzFcdTA2NzBcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDYyOFx1MDY1M1x1MDYzMVx1MDY1M1x1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjI4XHUwNjU0XHUwNjMxXHUwNjU0XHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NTVcdTA2MzFcdTA2NTVcdTA2MzlcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxvZ2ljYWxVbnNoYXBlID0KKyAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1RkU4RFx1RkVGNVx1MDAyMFx1RkVFNVx1MDAyMFx1RkU4RFx1RkVGN1x1MDAyMCIgKworICAgICAgICAiXHVGRUQ3XHVGRUZDXHUwMDIwXHVGRUUxXHUwMDIwXHVGRThEXHVGRURGXHVGRUNDXHVGRUFFXHVGRTkxXHVGRUY0IiArCisgICAgICAgICJcdUZFOTRcdTAwMjBcdUZFOERcdUZFREZcdUZFQTRcdUZFQUVcdUZFOTNcdTAwMjBcdTAwMjBcdTAwMjBcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIG51bVNvdXJjZSA9CisgICAgICAgICJcdTAwMzEiICsgIC8qIGVuOjEgKi8KKyAgICAgICAgIlx1MDYyNyIgKyAgLyogYXJhYmljOmFsZWYgKi8KKyAgICAgICAgIlx1MDAzMiIgKyAgLyogZW46MiAqLworICAgICAgICAiXHUwNmYzIiArICAvKiBhbjozICovCisgICAgICAgICJcdTAwNjEiICsgIC8qIGxhdGluOmEgKi8KKyAgICAgICAgIlx1MDAzNCI7ICAgLyogZW46NCAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdERhdGFbXSBzdGFuZGFyZFRlc3RzID0geworICAgICAgICAvKiBsYW0gYWxlZiBzcGVjaWFsIHZpc3VhbCBsdHIgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogVEFTSEtFRUwgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogdGFzaGtlZWwgc3BlY2lhbCB2aXN1YWwgbHRyICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKHRhc2hrZWVsU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWYyXHVmZTkxXHVmZWFlXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlN2NcdWZlYWVcdWZlNzdcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Mlx1ZmVmMlx1ZmU5MVx1ZmVhZVx1ZmU3OVx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjcwXHVmZWFlXHUwNjcwXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTNcdWZlYWVcdTA2NTNcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1NFx1ZmVhZVx1MDY1NFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU1XHVmZWFlXHUwNjU1XHVmZWNiXHUwMDIwIiksCisKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQodGFzaGtlZWxTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlYWVcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmMlx1ZmU5MVx1ZmU3Y1x1ZmVhZVx1ZmU3Nlx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZTcyXHVmZWYyXHVmZTkxXHVmZWFlXHVmZTc4XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NzBcdWZlYWVcdTA2NzBcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1M1x1ZmVhZVx1MDY1M1x1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU0XHVmZWFlXHUwNjU0XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTVcdWZlYWVcdTA2NTVcdWZlY2JcdTAwMjAiKSwKKworICAgICAgICAvKiBsb2dpY2FsIHVuc2hhcGUgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobG9naWNhbFVuc2hhcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTA2NDJcdTA2NDRcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyN1x1MDAyMFx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjQ0XHUwNjJkXHUwNjMxXHUwNjI5XHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDJcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIyXHUwMDIwXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwMDIwXHUwNjQyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDRcdTA2MjdcdTAwMjBcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyZFx1MDYzMVx1MDYyOVx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIpLAorCisgICAgICAgIC8qIG51bWJlcnMgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU4gfCBESUdJVF9UWVBFX0FOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjI3XHUwNjYyXHUwNmYzXHUwMDYxXHUwNjY0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElHSVRTX0FOMkVOIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDAzMlx1MDAzM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDY2Mlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0FMIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDZmMVx1MDYyN1x1MDZmMlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2MjdcdTAwMzJcdTA2ZjNcdTAwNjFcdTAwMzQiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU5fSU5JVF9BTCB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNmYxXHUwNjI3XHUwMDMyXHUwNmYzXHUwMDYxXHUwNmY0IiksCisKKyAgICAgICAgLyogbm8tb3AgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBudW1Tb3VyY2UpLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUZXN0RGF0YVtdIHByZWZsaWdodFRlc3RzID0geworICAgICAgICAvKiBwcmVmbGlnaHQgKi8KKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdTA2NDRcdTA2MjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IExFTkdUSF9HUk9XX1NIUklOSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpLAorCisgICAgICAgIFRlc3REYXRhLnByZWZsaWdodCgiXHUwNjQ0XHUwNjI3XHUwMDMxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTiB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAzKSwKKworICAgICAgICBUZXN0RGF0YS5wcmVmbGlnaHQoIlx1MDY0NFx1MDY0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisKKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRlc3REYXRhW10gZXJyb3JUZXN0cyA9IHsKKyAgICAgICAgLyogYmFkIGRhdGEgKi8KKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmN1x1MDY0NFx1MDAyMCIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5jbGFzcyksCisKKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmNyIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmNsYXNzKSwKKworICAgICAgICBUZXN0RGF0YS5lcnJvcigiXHVmZWY3XHUwMDIwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIC8qIGJhZCBvcHRpb25zICovCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmLAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhbmRhcmQoKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhbmRhcmRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHN0YW5kYXJkVGVzdHNbaV07CisKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBleCA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyh0ZXN0LmZsYWdzKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzaGFwZXIuc2hhcGUodGVzdC5zb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGllKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjogIitpZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGVzdC5yZXN1bHQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRUZXN0RmFpbHVyZShpLCB0ZXN0LCBzaGFwZXIsIHJlc3VsdCwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFByZWZsaWdodCgpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmVmbGlnaHRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHByZWZsaWdodFRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNoYXBlciA9IG5ldyBBcmFiaWNTaGFwaW5nKHRlc3QuZmxhZ3MpOworICAgICAgICAgICAgICAgIGxlbiA9IHNoYXBlci5zaGFwZShzcmMsIDAsIHNyYy5sZW5ndGgsIG51bGwsIDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdC5sZW5ndGggIT0gbGVuKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVycm9yKCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVycm9yVGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRlc3REYXRhIHRlc3QgPSBlcnJvclRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIGxlbiA9IHNyYy5sZW5ndGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2hhcGVyID0gbmV3IEFyYWJpY1NoYXBpbmcodGVzdC5mbGFncyk7CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgMCwgbGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCF0ZXN0LmVycm9yLmlzSW5zdGFuY2UoZXgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFscygpCisgICAgeworICAgICAgICBBcmFiaWNTaGFwaW5nIGFzMSA9IG5ldyBBcmFiaWNTaGFwaW5nKExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSKTsKKyAgICAgICAgQXJhYmljU2hhcGluZyBhczIgPSBuZXcgQXJhYmljU2hhcGluZyhMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUik7CisgICAgICAgIEFyYWJpY1NoYXBpbmcgYXMzID0gbmV3IEFyYWJpY1NoYXBpbmcoTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HKTsKKworICAgICAgICBpZiAoISBhczEuZXF1YWxzKGFzMSkpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiBkb2VzIG5vdCBlcXVhbCBpdHNlbGYhXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghIGFzMS5lcXVhbHMoYXMyKSkgeworICAgICAgICAgICAgZXJyKCJhczE6ICIgKyBhczEgKyAiLCBhczI6ICIgKyBhczIgKyAiIGFyZSBub3QgZXF1YWwsIGJ1dCBzaG91bGQgYmUuXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhczEuZXF1YWxzKGFzMykpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiwgYXMzOiAiICsgYXMzICsgIiBhcmUgZXF1YWwgYnV0IHNob3VsZCBub3QgYmUuXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcG9ydFRlc3RGYWlsdXJlKGludCBpbmRleCwgVGVzdERhdGEgdGVzdCwgQXJhYmljU2hhcGluZyBzaGFwZXIsIFN0cmluZyByZXN1bHQsIEV4Y2VwdGlvbiBlcnJvcikgeworICAgICAgICBpZiAobm9EYXRhKCkgJiYgZXJyb3IgIT0gbnVsbCAmJiBlcnJvciBpbnN0YW5jZW9mIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiApIHsKKyAgICAgICAgICAgIHdhcm5sbihlcnJvci5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiKioqIHRlc3QgZmFpbHVyZSAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJpbmRleDogIiArIGluZGV4ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInRlc3Q6ICIgKyB0ZXN0ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInNoYXBlcjogIiArIHNoYXBlciArICJcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJyZXN1bHQ6ICIgKyBlc2NhcGVkU3RyaW5nKHJlc3VsdCkgKyAiXG4iKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiZXJyb3I6ICIgKyBlcnJvciArICJcbiIpOworCisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCAmJiB0ZXN0LnJlc3VsdCAhPSBudWxsICYmICF0ZXN0LnJlc3VsdC5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNYXRoLm1heCh0ZXN0LnJlc3VsdC5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvU3RyaW5nKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gIiAiLmNvbmNhdCh0ZW1wKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhciB0cmcgPSBpIDwgdGVzdC5yZXN1bHQubGVuZ3RoKCkgPyB0ZXN0LnJlc3VsdC5jaGFyQXQoaSkgOiAnXHVmZmZmJzsKKyAgICAgICAgICAgICAgICBjaGFyIHJlcyA9IGkgPCByZXN1bHQubGVuZ3RoKCkgPyByZXN1bHQuY2hhckF0KGkpIDogJ1x1ZmZmZic7CisKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJbIiArIHRlbXAgKyAiXSAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyB0cmcpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyByZXMpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBpZiAodHJnICE9IHJlcykgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIqKioiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlcnIoYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkU3RyaW5nKFN0cmluZyBzdHIpIHsKKyAgICAgICAgaWYgKHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSAqIDYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMTAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMDEwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBBcmFiaWNTaGFwaW5nUmVnVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI3MzM1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uOworCisvKioKKyAqIEludGVyYWN0aXZlIHRlc3QgZm9yIEFyYWJpYyBzaGFwaW5nLgorICogSW52b2tlIGZyb20gYSBjb21tYW5kIGxpbmUgcGFzc2luZyBhcmdzIGFuZCBzdHJpbmdzLiAgVXNlICctaGVscCcgdG8gc2VlIGRlc2NyaXB0aW9uIG9mIGFyZ3VtZW50cy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdUZXN0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09QWSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOUExBQ0UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFJJTkcgPSAyOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBpbnQgdGVzdHR5cGUgPSBDT1BZOworICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CisgICAgICAgIGludCBzcyA9IDA7CisgICAgICAgIGludCBzbCA9IC0xOworICAgICAgICBpbnQgZHMgPSAwOworICAgICAgICBpbnQgZGwgPSAtMTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiJDIyLjQgdGVzdCAxMjMgXHVmZWY2XHUwNjQ0XHUwNjIyIDQ1NiBcdTA2NjRcdTA2NjVcdTA2NjYhIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9wdCA9IGFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IG9wdDsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvcHQgPSBvcHQuc3Vic3RyaW5nKDAsIE1hdGgubWluKGluZGV4LCAzKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IGFyZy5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJsZW4iKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkxFTkdUSF9NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImdzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfR1JPV19TSFJJTks7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX05FQVI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic2IiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkxFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJkaXIiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX01BU0s7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgibG9nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5URVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ2aXMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImxldCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJj0gfkFyYWJpY1NoYXBpbmcuTEVUVEVSU19NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoIm5vIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNoIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX1NIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ1biIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19VTlNIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ0YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGlnIikpIHsKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAmPSB+QXJhYmljU2hhcGluZy5ESUdJVFNfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJubyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImVhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImFlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfQU4yRU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImxyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU5fSU5JVF9MUjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiYWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUU19FTjJBTl9JTklUX0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJ0eXAiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJhbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRfVFlQRV9BTjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiZXgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfQU5fRVhURU5ERUQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImRzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcyA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGxuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRsID0gSW50ZWdlci5wYXJzZUludCh2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJzc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3MgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoInNsbiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbCA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgidGVzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0dHlwZSA9IENPUFk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImlwIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3R0eXBlID0gSU5QTEFDRTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHR5cGUgPSBTVFJJTkc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImhlbHAiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93T3B0RXJyb3Iob3B0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFzc3VtZSB0ZXh0CisgICAgICAgICAgICAgICAgdGV4dCA9IHBhcnNlVGV4dChhcmcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNsIDwgMCkgeworICAgICAgICAgICAgc2wgPSB0ZXh0Lmxlbmd0aCgpIC0gc3M7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInNsIGRlZmF1bHRpbmcgdG8gIiArIHNsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGwgPCAwKSB7CisgICAgICAgICAgICBkbCA9IDIgKiBzbDsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGwgZGVmYXVsdGluZyB0byAiICsgZGwpOworICAgICAgICB9CisKKyAgICAgICAgQXJhYmljU2hhcGluZyBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyhvcHRpb25zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzaGFwZXI6ICIgKyBzaGFwZXIpOworCisgICAgICAgIGNoYXJbXSBzcmMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGlucHV0OiAnIiArIGVzY2FwZWRUZXh0KHNyYywgc3MsIHNsKSArICInIik7CisgICAgICAgIGlmICh0ZXN0dHlwZSAhPSBTVFJJTkcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhcnQ6ICIgKyBzcyArICIgbGVuZ3RoOiAiICsgc2wgKyAiIHRvdGFsIGxlbmd0aDogIiArIHNyYy5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBjaGFyW10gZGVzdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGVzdHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ09QWToKKyAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZHMgKyBkbF07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsLCBkZXN0LCBkcywgZGwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIElOUExBQ0U6CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsKTsKKyAgICAgICAgICAgICAgICBkcyA9IHNzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNsOworICAgICAgICAgICAgICAgIGRlc3QgPSBzcmM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HOgorICAgICAgICAgICAgICAgIGRlc3QgPSBzaGFwZXIuc2hhcGUodGV4dCkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBkcyA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAnIiArIGVzY2FwZWRUZXh0KGRlc3QsIGRzLCByZXN1bHQpICsgIiciKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGVuZ3RoOiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChkcyAhPSAwIHx8IHJlc3VsdCAhPSBkZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZnVsbCBvdXRwdXQ6ICciICsgZXNjYXBlZFRleHQoZGVzdCwgMCwgZGVzdC5sZW5ndGgpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dPcHRFcnJvcihTdHJpbmcgb3B0KSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biBvcHRpb246ICIgKyBvcHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dWYWxFcnJvcihTdHJpbmcgb3B0LCBTdHJpbmcgdmFsKSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biB2YWx1ZTogIiArIHZhbCArICIgZm9yIG9wdGlvbjogIiArIG9wdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0aHJvd1VzYWdlRXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIioqKiB1c2FnZSBlcnJvciAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKG1lc3NhZ2UpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICBidWYuYXBwZW5kKHVzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAKKyAgICAgICAgIlVzYWdlOiBbb3B0aW9uXSogW3RleHRdXG4iICsKKyAgICAgICAgIiAgd2hlcmUgb3B0aW9uIGlzIGluIHRoZSBmb3JtYXQgJy1vcHRbOnZhbF0nXG4iICsKKyAgICAgICAgIiAgb3B0aW9ucyBhcmU6XG4iICsKKyAgICAgICAgIiAgICAtbGVuOltnc3xzbnxzZXxzYl0gICAgKGxlbmd0aDogZ3Jvdy9zaHJpbmssIHNwYWNlcyBuZWFyLCBzcGFjZXMgZW5kLCBzcGFjZXMgYmVnaW5uaW5nKVxuIiArCisgICAgICAgICIgICAgLWRpcjpbbG9nfHZpc10gICAgICAgIChkaXJlY3Rpb246IGxvZ2ljYWwsIHZpc3VhbClcbiIgKworICAgICAgICAiICAgIC1sZXQ6W25vfHNofHVufHRhXSAgICAobGV0dGVyczogbm9vcCwgc2hhcGUsIHVuc2hhcGUsIHRhc2hrZWVsKVxuIiArCisgICAgICAgIC8vICIgICAgLWxldDpbbm98c2h8dW5dICAgICAgIChsZXR0ZXJzOiBub29wLCBzaGFwZSwgdW5zaGFwZSlcbiIgKworICAgICAgICAiICAgIC1kaWc6W25vfGVhfGFlfGxyfGFsXSAoZGlnaXRzOiBub29wLCBlbjJhbiwgYW4yZW4sIGVuMmFuX2xyLCBlbjJhbl9hbClcbiIgKworICAgICAgICAiICAgIC10eXA6W2FufGV4XSAgICAgICAgICAoZGlnaXQgdHlwZTogYXJhYmljLCBhcmFiaWMgZXh0ZW5kZWQpXG4iICsKKyAgICAgICAgIiAgICAtZHN0OiMgICAgICAgICAgICAgICAgKGRlc3Qgc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1kbG46IyAgICAgICAgICAgICAgICAoZGVzdCBsZW5ndGggKG1heCBzaXplKTogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXNzdDojICAgICAgICAgICAgICAgIChzb3VyY2Ugc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1zbG46IyAgICAgICAgICAgICAgICAoc291cmNlIGxlbmd0aDogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXRlczpbY3B8aXB8c3RdICAgICAgICh0ZXN0IHR5cGU6IGNvcHksIGluIHBsYWNlLCBzdHJpbmcpXG4iICsKKyAgICAgICAgIiAgICAtaGVscCAgICAgICAgICAgICAgICAgKHByaW50IHRoaXMgaGVscCBtZXNzYWdlKVxuIiArCisgICAgICAgICIgIHRleHQgY2FuIGNvbnRhaW4gdW5pY29kZSBlc2NhcGUgdmFsdWVzIGluIHRoZSBmb3JtYXQgJ1xcdVhYWFgnIG9ubHlcbiI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkVGV4dChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MjAgfHwgY2ggPiAweDdlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2ggPCAweDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGFyc2VUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIC8vIHByb2Nlc3MgdW5pY29kZSBlc2NhcGVzIChvbmx5KQorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaGFyc1tpXTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKChpIDwgY2hhcnMubGVuZ3RoIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGNoYXJzW2krMV0gPT0gJ3UnKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFsID0gSW50ZWdlci5wYXJzZUludCh0ZXh0LnN1YnN0cmluZyhpKzIsIGkrNiksIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcil2YWwpOworICAgICAgICAgICAgICAgICAgICBpICs9IDU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVmZTA0ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFDb25mb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDMwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuSUROQTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIEBhdXRob3IgbGltYW95dQorICogCisgKi8KK3B1YmxpYyBjbGFzcyBJRE5BQ29uZm9ybWFuY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJRE5BQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpIHsKKworICAgICAgICBUcmVlTWFwIGlucHV0RGF0YSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXREYXRhID0gUmVhZElucHV0LmdldElucHV0RGF0YSgpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTZXQga2V5TWFwID0gaW5wdXREYXRhLmtleVNldCgpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXIgPSBrZXlNYXAuaXRlcmF0b3IoKTsgaXRlci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBMb25nIGVsZW1lbnQgPSAoTG9uZykgaXRlci5uZXh0KCk7CisgICAgICAgICAgICBIYXNoTWFwIHRlbXBIYXNoID0gKEhhc2hNYXApIGlucHV0RGF0YS5nZXQoZWxlbWVudCk7CisKKyAgICAgICAgICAgIC8vZ2V0IGFsbCBhdHRyaWJ1dGVzIGZyb20gaW5wdXQgZGF0YQorICAgICAgICAgICAgU3RyaW5nIHBhc3NmYWlsID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJwYXNzZmFpbCIpOworICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoImRlc2MiKTsKKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJ0eXBlIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZWJhc2UgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWViYXNlIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZXV0ZjggPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWV1dGY4Iik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZXpvbmUgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoIm5hbWV6b25lIik7CisgICAgICAgICAgICBTdHJpbmcgZmFpbHpvbmUxID0gKFN0cmluZykgdGVtcEhhc2guZ2V0KCJmYWlsem9uZTEiKTsKKyAgICAgICAgICAgIFN0cmluZyBmYWlsem9uZTIgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoImZhaWx6b25lMiIpOworCisgICAgICAgICAgICAvL3RoZXkgbWF5YmUgaW5jbHVkZXMgPCo+IHN0eWxlIHVuaWNvZGUKKyAgICAgICAgICAgIG5hbWViYXNlID0gc3RyaW5nUmVwbGFjZShuYW1lYmFzZSk7CisgICAgICAgICAgICBuYW1lem9uZSA9IHN0cmluZ1JlcGxhY2UobmFtZXpvbmUpOworCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIGJvb2xlYW4gZmFpbGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICgidG9hc2NpaSIuZXF1YWxzKHRlbXBIYXNoLmdldCgidHlwZSIpKSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vZ2V0IHRoZSByZXN1bHQKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL2J5IGRlZmF1bHQgU1REMyBydWxlcyBhcmUgbm90IHVzZWQsIGJ1dCBpZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgLy9pbmNsdWRlcyBVc2VTVEQzQVNDSUlSdWxlcywgd2Ugd2lsbCBzZXQgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlU1REM0FTQ0lJUnVsZXMiLnRvTG93ZXJDYXNlKCkpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKG5hbWViYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE5BLkFMTE9XX1VOQVNTSUdORUQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKG5hbWViYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE5BLlVTRV9TVEQzX1JVTEVTKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vZXJybG4oZTIuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCJwYXNzIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmFtZXpvbmUuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHQgcGFzcyBmYWlsIHN0YW5kYXJkIGlzIHBhc3MsIGJ1dCBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiXHRwYXNzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgiZmFpbCIuZXF1YWxzKHBhc3NmYWlsKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oInBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcdCBwYXNzIGZhaWwgc3RhbmRhcmQgaXMgZmFpbCwgYnV0IG5vIGV4Y2VwdGlvbiB0aHJvd24gb3V0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCJ0b3VuaWNvZGUiLmVxdWFscyh0ZW1wSGFzaC5nZXQoInR5cGUiKSkpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL2J5IGRlZmF1bHQgU1REMyBydWxlcyBhcmUgbm90IHVzZWQsIGJ1dCBpZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgLy9pbmNsdWRlcyBVc2VTVEQzQVNDSUlSdWxlcywgd2Ugd2lsbCBzZXQgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNlU1REM0FTQ0lJUnVsZXMiLnRvTG93ZXJDYXNlKCkpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBJRE5BLmNvbnZlcnRJRE5Ub1VuaWNvZGUobmFtZWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETkEuQUxMT1dfVU5BU1NJR05FRCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IElETkEuY29udmVydElETlRvVW5pY29kZShuYW1lYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUROQS5VU0VfU1REM19SVUxFUykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICAvL2VycmxuKGUyLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgicGFzcyIuZXF1YWxzKHBhc3NmYWlsKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW5hbWV6b25lLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHQgRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShuYW1lem9uZSkgKyAiIEdvdDogIiArIHByZXR0aWZ5KHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdHBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCJmYWlsIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsZWQgfHwgbmFtZWJhc2UuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdHBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlx0IHBhc3MgZmFpbCBzdGFuZGFyZCBpcyBmYWlsLCBidXQgbm8gZXhjZXB0aW9uIHRocm93biBvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCBsb2cgbWVzc2FnZS4KKyAgICAgKiBAcGFyYW0gZGVzYworICAgICAqIEBwYXJhbSBuYW1lYmFzZQorICAgICAqIEBwYXJhbSBuYW1ldXRmOAorICAgICAqIEBwYXJhbSBuYW1lem9uZQorICAgICAqIEBwYXJhbSBmYWlsem9uZTEKKyAgICAgKiBAcGFyYW0gZmFpbHpvbmUyCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwcmludEluZm8oU3RyaW5nIGRlc2MsIFN0cmluZyBuYW1lYmFzZSwKKyAgICAgICAgICAgIFN0cmluZyBuYW1ldXRmOCwgU3RyaW5nIG5hbWV6b25lLCBTdHJpbmcgZmFpbHpvbmUxLAorICAgICAgICAgICAgU3RyaW5nIGZhaWx6b25lMiwgU3RyaW5nIHJlc3VsdCwgU3RyaW5nIHR5cGUsIFN0cmluZyBwYXNzZmFpbCkgeworICAgICAgICBsb2dsbigiZGVzYzpcdCIgKyBkZXNjKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigidHlwZTpcdCIgKyB0eXBlKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigicGFzcyBmYWlsIHN0YW5kYXJkOlx0IiArIHBhc3NmYWlsKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigibmFtZWJhc2U6XHQiICsgbmFtZWJhc2UpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJuYW1ldXRmODpcdCIgKyBuYW1ldXRmOCk7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oIm5hbWV6b25lOlx0IiArIG5hbWV6b25lKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigiZmFpbHpvbmUxOlx0IiArIGZhaWx6b25lMSk7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oImZhaWx6b25lMjpcdCIgKyBmYWlsem9uZTIpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJyZXN1bHQ6XHQiICsgcmVzdWx0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdW5pY29kZSBzdHJpbmcgZnJvbSA8MDBBRD4gdG8gXHUwMEFELCBmb3IgdGhlIGxhdGVyIGlzIGFjY2VwdGVkCisgICAgICogYnkgSmF2YQorICAgICAqIEBwYXJhbSBzdHIgU3RyaW5nIGluY2x1ZGluZyA8Kj4gc3R5bGUgdW5pY29kZQorICAgICAqIEByZXR1cm4gXFx1IFN0cmluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzdHJpbmdSZXBsYWNlKFN0cmluZyBzdHIpIHsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiVGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCc8JyA9PSBjaGFyc1tpXSkgeworICAgICAgICAgICAgICAgIHNiVGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoJz4nICE9IGNoYXJzW2kgKyAxXSkgeworICAgICAgICAgICAgICAgICAgICBzYlRlbXAuYXBwZW5kKGNoYXJzWysraV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZSB1bmljb2RlIHNvbWV0aW1lcyBpcyBsYXJnZXIgdGhlbiBcdUZGRkYsIHNvIGhhdmUgdG8gdXNlCisgICAgICAgICAgICAgICAgICogVVRGMTYuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IHRvQmVJbnNlcnRlZCA9IEludGVnZXIucGFyc2VJbnQoc2JUZW1wLnRvU3RyaW5nKCksIDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoKHRvQmVJbnNlcnRlZCA+PiAxNikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSB0b0JlSW5zZXJ0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1dGYxNlN0cmluZyA9IFVURjE2LnZhbHVlT2YodG9CZUluc2VydGVkKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzVGVtcCA9IHV0ZjE2U3RyaW5nLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY2hhcnNUZW1wLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSBjaGFyc1RlbXBbal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgnPicgPT0gY2hhcnNbaV0pIHsvL2VuZCB3aGVuIG1ldCB3aXRoICc+JworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJzW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gcmVhZCB0ZXN0IGRhdGEgZnJvbSBUZXN0SW5wdXQgZmlsZS4KKyAgICAgKiAKKyAgICAgKiBAYXV0aG9yIGxpbWFveXUKKyAgICAgKiAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWFkSW5wdXQgeworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVHJlZU1hcCBnZXRJbnB1dERhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgICAgIFRyZWVNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKCJJRE5BVGVzdElucHV0LnR4dCIsICJ1dGYtOCIpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBTdHIgPSBudWxsOworICAgICAgICAgICAgICAgIGludCByZWNvcmRzID0gMDsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0TGluZSA9IHRydWU7CisgICAgICAgICAgICAgICAgSGFzaE1hcCBoYXNoSXRlbSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHRlbXBTdHIgPSBpbi5yZWFkTGluZSgpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vaWdub3JlIHRoZSBmaXJzdCBsaW5lIGlmIGl0J3MgIj09PT09IgorICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RMaW5lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIj09PT09Ii5lcXVhbHModGVtcFN0cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vSWdub3JlIGVtcHR5IGxpbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKCIiLmVxdWFscyh0ZW1wU3RyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0ciA9ICIiOy8vYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBib2R5ID0gIiI7Ly92YWx1ZQorCisgICAgICAgICAgICAgICAgICAgIC8vZ2V0IGF0dHIgYW5kIGJvZHkgZnJvbSBsaW5lIGlucHV0LCBhbmQgdGhlbiBzZXQgdGhlbSBpbnRvIGVhY2ggaGFzaCBpdGVtLiAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGludCBwb3N0aW9uID0gdGVtcFN0ci5pbmRleE9mKCI6Iik7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3N0aW9uID4gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIgPSB0ZW1wU3RyLnN1YnN0cmluZygwLCBwb3N0aW9uKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gdGVtcFN0ci5zdWJzdHJpbmcocG9zdGlvbiArIDEpLnRyaW0oKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy9kZWFsIHdpdGggY29tYmluYXRpb24gbGluZXMgd2hlbiBlbmQgd2l0aCAnXCcKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChudWxsICE9IGJvZHkgJiYgYm9keS5sZW5ndGgoKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgJ1xcJyA9PSBib2R5LmNoYXJBdChib2R5Lmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0gYm9keS5zdWJzdHJpbmcoMCwgYm9keS5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgKz0gIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RyID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ICs9IHRlbXBTdHI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy9wdXNoIHRoZW0gdG8gaGFzaCBpdGVtCisgICAgICAgICAgICAgICAgICAgIGhhc2hJdGVtLnB1dChhdHRyLCBib2R5KTsKKworICAgICAgICAgICAgICAgICAgICAvL2lmIG1ldCAiPT09PT0iLCBpdCBtZWFucyB0aGlzIGl0ZW0gaXMgZmluaXNoZWQKKyAgICAgICAgICAgICAgICAgICAgaWYgKCI9PT09PSIuZXF1YWxzKHRlbXBTdHIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCB0aGVtIGludG8gcmVzdWx0LCB1c2luZyByZWNvcmRzIG51bWJlciBhcyBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQobmV3IExvbmcocmVjb3JkcyksIGhhc2hJdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY3JlYXRlIGFub3RoZXIgaGFzaCBpdGVtIGFuZCBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaEl0ZW0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkcysrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFSZWZlcmVuY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFSZWZlcmVuY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGYzYWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQVJlZmVyZW5jZS5qYXZhCkBAIC0wLDAgKzEsNDI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBJRE5BUmVmZXJlbmNlIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gQUNFX1BSRUZJWCA9IG5ldyBjaGFyW117IDB4MDA3OCwweDAwNkUsMHgwMDJkLDB4MDAyZCB9IDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUNFX1BSRUZJWF9MRU5HVEggID0gNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTEFCRUxfTEVOR1RIICAgPSA2MzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSFlQSEVOICAgICAgICAgICAgID0gMHgwMDJEOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX0EgICAgICAgICAgPSAweDAwNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfWiAgICAgICAgICA9IDB4MDA1QTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJfQ0FTRV9ERUxUQSAgID0gMHgwMDIwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX1NUT1AgICAgICAgICAgPSAweDAwMkU7CisKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgICAgICAgICAgICAgPSAweDAwMDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxMT1dfVU5BU1NJR05FRCAgICA9IDB4MDAwMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVU0VfU1REM19SVUxFUyAgICAgID0gMHgwMDAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTmFtZVByZXBUcmFuc2Zvcm0gdHJhbnNmb3JtID0gTmFtZVByZXBUcmFuc2Zvcm0uZ2V0SW5zdGFuY2UoKTsKKyAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzdGFydHNXaXRoUHJlZml4KFN0cmluZ0J1ZmZlciBzcmMpeworICAgICAgICBib29sZWFuIHN0YXJ0c1dpdGhQcmVmaXggPSB0cnVlOworCisgICAgICAgIGlmKHNyYy5sZW5ndGgoKSA8IEFDRV9QUkVGSVhfTEVOR1RIKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDsgaTxBQ0VfUFJFRklYX0xFTkdUSDtpKyspeworICAgICAgICAgICAgaWYodG9BU0NJSUxvd2VyKHNyYy5jaGFyQXQoaSkpICE9IEFDRV9QUkVGSVhbaV0peworICAgICAgICAgICAgICAgIHN0YXJ0c1dpdGhQcmVmaXggPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhcnRzV2l0aFByZWZpeDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIHRvQVNDSUlMb3dlcihjaGFyIGNoKXsKKyAgICAgICAgaWYoQ0FQSVRBTF9BIDw9IGNoICYmIGNoIDw9IENBUElUQUxfWil7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpKGNoICsgTE9XRVJfQ0FTRV9ERUxUQSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ0J1ZmZlciB0b0FTQ0lJTG93ZXIoU3RyaW5nQnVmZmVyIHNyYyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzcmMubGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKHRvQVNDSUlMb3dlcihzcmMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShTdHJpbmdCdWZmZXIgczEsIFN0cmluZ0J1ZmZlciBzMil7CisgICAgICAgIGNoYXIgYzEsYzI7CisgICAgICAgIGludCByYzsKKyAgICAgICAgZm9yKGludCBpID0wOy8qIG5vIGNvbmRpdGlvbiAqLztpKyspIHsKKyAgICAgICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2ggKi8KKyAgICAgICAgICAgIGlmKGkgPT0gczEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYzEgPSBzMS5jaGFyQXQoaSk7CisgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBDYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gKi8KKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIHJjPXRvQVNDSUlMb3dlcihjMSktdG9BU0NJSUxvd2VyKGMyKTsKKyAgICAgICAgICAgICAgICBpZihyYyE9MCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTZXBhcmF0b3JJbmRleChjaGFyW10gc3JjLGludCBzdGFydCwgaW50IGxpbWl0KXsKKyAgICAgICAgZm9yKDsgc3RhcnQ8bGltaXQ7c3RhcnQrKyl7CisgICAgICAgICAgICBpZihOYW1lUHJlcFRyYW5zZm9ybS5pc0xhYmVsU2VwYXJhdG9yKHNyY1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gd2UgaGF2ZSBub3QgZm91bmQgdGhlIHNlcGFyYXRvciBqdXN0IHJldHVybiBsZW5ndGgKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTERIQ2hhcihpbnQgY2gpeworICAgICAgICAvLyBoaWdoIHJ1bm5lciBjYXNlCisgICAgICAgIGlmKGNoPjB4MDA3QSl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy9bXFx1MDAyRCBcXHUwMDMwLVxcdTAwMzkgXFx1MDA0MS1cXHUwMDVBIFxcdTAwNjEtXFx1MDA3QV0KKyAgICAgICAgaWYoIChjaD09MHgwMDJEKSB8fCAKKyAgICAgICAgICAgICgweDAwMzAgPD0gY2ggJiYgY2ggPD0gMHgwMDM5KSB8fAorICAgICAgICAgICAgKDB4MDA0MSA8PSBjaCAmJiBjaCA8PSAweDAwNUEpIHx8CisgICAgICAgICAgICAoMHgwMDYxIDw9IGNoICYmIGNoIDw9IDB4MDA3QSkKKyAgICAgICAgICApeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmNJdGVyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgIAorICAgICAgICBjaGFyW10gY2FzZUZsYWdzID0gbnVsbDsKKyAgICAKKyAgICAgICAgLy8gdGhlIHNvdXJjZSBjb250YWlucyBhbGwgYXNjaWkgY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzQVNDSUkgID0gdHJ1ZTsKKyAgICAgICAgLy8gYXNzdW1lIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIExESCBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNMREggPSB0cnVlOyAKKworICAgICAgICAvL2dldCB0aGUgb3B0aW9ucworICAgICAgICBib29sZWFuIHVzZVNURDNBU0NJSVJ1bGVzID0gKChvcHRpb25zICYgVVNFX1NURDNfUlVMRVMpICE9IDApOworCisgICAgICAgIGludCBjaDsKKyAgICAgICAgLy8gc3RlcCAxCisgICAgICAgIHdoaWxlKChjaCA9IHNyY0l0ZXIubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGNoPiAweDdmKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGZhaWxQb3MgPSAtMTsKKyAgICAgICAgc3JjSXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0ID0gbnVsbDsKKyAgICAgICAgLy8gc3RlcCAyIGlzIHBlcmZvcm1lZCBvbmx5IGlmIHRoZSBzb3VyY2UgY29udGFpbnMgbm9uIEFTQ0lJCisgICAgICAgIGlmKCFzcmNJc0FTQ0lJKXsKKyAgICAgICAgICAgIC8vIHN0ZXAgMgorICAgICAgICAgICAgcHJvY2Vzc091dCA9ICB0cmFuc2Zvcm0ucHJlcGFyZShzcmNJdGVyLG9wdGlvbnMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBuZXcgU3RyaW5nQnVmZmVyKHNyY0l0ZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcG9MZW4gPSBwcm9jZXNzT3V0Lmxlbmd0aCgpOworICAgICAgICBpZihwb0xlbj09MCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICAvLyByZXNldCB0aGUgdmFyaWFibGUgdG8gdmVyaWZ5IGlmIG91dHB1dCBvZiBwcmVwYXJlIGlzIEFTQ0lJIG9yIG5vdAorICAgICAgICBzcmNJc0FTQ0lJID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIHN0ZXAgMyAmIDQKKyAgICAgICAgZm9yKGludCBqPTA7ajxwb0xlbjtqKysgKXsKKyAgICAgICAgICAgIGNoPXByb2Nlc3NPdXQuY2hhckF0KGopOworICAgICAgICAgICAgaWYoY2ggPiAweDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihpc0xESENoYXIoY2gpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgLy8gaGVyZSB3ZSBkbyBub3QgYXNzZW1ibGUgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhhdCBMREggY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEFTQ0lJIHJhbmdlIG9ubHkKKyAgICAgICAgICAgICAgICBzcmNJc0xESCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZhaWxQb3MgPSBqOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmKHVzZVNURDNBU0NJSVJ1bGVzID09IHRydWUpeworICAgICAgICAgICAgLy8gdmVyaWZ5IDNhIGFuZCAzYgorICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQocHJvY2Vzc091dC5sZW5ndGgoKS0xKSA9PSBIWVBIRU4peworCisgICAgICAgICAgICAgICAgLyogcG9wdWxhdGUgdGhlIHBhcnNlRXJyb3Igc3RydWN0ICovCisgICAgICAgICAgICAgICAgaWYoc3JjSXNMREg9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oICJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsUG9zPjApID8gKGZhaWxQb3MtMSkgOiBmYWlsUG9zKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSBIWVBIRU4peworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwwKTsKKyAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9MZW4+MCkgPyBwb0xlbi0xIDogcG9MZW4pOworCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHNyY0lzQVNDSUkpeworICAgICAgICAgICAgZGVzdCA9ICBwcm9jZXNzT3V0OworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vIHN0ZXAgNSA6IHZlcmlmeSB0aGUgc2VxdWVuY2UgZG9lcyBub3QgYmVnaW4gd2l0aCBBQ0UgcHJlZml4CisgICAgICAgICAgICBpZighc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgICAgICAvL3N0ZXAgNjogZW5jb2RlIHRoZSBzZXF1ZW5jZSB3aXRoIHB1bnljb2RlCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHB1bnlvdXQgPSBQdW55Y29kZVJlZmVyZW5jZS5lbmNvZGUocHJvY2Vzc091dCxjYXNlRmxhZ3MpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgYWxsIGNvZGVwb2ludHMgdG8gbG93ZXIgY2FzZSBBU0NJSQorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsb3dlck91dCA9IHRvQVNDSUlMb3dlcihwdW55b3V0KTsKKworICAgICAgICAgICAgICAgIC8vU3RlcCA3OiBwcmVwZW5kIHRoZSBBQ0UgcHJlZml4CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQoQUNFX1BSRUZJWCwwLEFDRV9QUkVGSVhfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICAvL1N0ZXAgNjogY29weSB0aGUgY29udGVudHMgaW4gYjIgaW50byBkZXN0CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQobG93ZXJPdXQpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIEFDRSBQcmVmaXguIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkFDRV9QUkVGSVhfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGRlc3QubGVuZ3RoKCkgPiBNQVhfTEFCRUxfTEVOR1RIKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBsYWJlbHMgaW4gdGhlIGlucHV0IGFyZSB0b28gbG9uZy4gTGVuZ3RoID4gNjQuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uTEFCRUxfVE9PX0xPTkdfRVJST1IsZGVzdC50b1N0cmluZygpLDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROdG9BU0NJSShVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcixpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoaXRlci5nZXRUZXh0KCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETnRvQVNDSUkoU3RyaW5nQnVmZmVyIHN0cixpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoc3RyLnRvU3RyaW5nKCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvQVNDSUkoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGNoYXJbXSBzcmNBcnIgPSBzcmMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlcEluZGV4PTA7CisgICAgICAgIGludCBvbGRTZXBJbmRleCA9IDA7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgICBzZXBJbmRleCA9IGdldFNlcGFyYXRvckluZGV4KHNyY0FycixzZXBJbmRleCxzcmNBcnIubGVuZ3RoKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IG5ldyBTdHJpbmcoc3JjQXJyLG9sZFNlcEluZGV4LHNlcEluZGV4LW9sZFNlcEluZGV4KTsKKyAgICAgICAgICAgIC8vbWFrZSBzdXJlIHRoaXMgaXMgbm90IGEgcm9vdCBsYWJlbCBzZXBhcmF0b3IuCisgICAgICAgICAgICBpZighKGxhYmVsLmxlbmd0aCgpPT0wICYmIHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKSl7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobGFiZWwpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPSBzZXBJbmRleDsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpRlVMTF9TVE9QKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfSAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworCisgICAgICAgIGNoYXJbXSBjYXNlRmxhZ3MgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy9nZXQgdGhlIG9wdGlvbnMKKyAgICAgICAgYm9vbGVhbiB1c2VTVEQzQVNDSUlSdWxlcyA9ICgob3B0aW9ucyAmIFVTRV9TVEQzX1JVTEVTKSAhPSAwKTsKKworICAgICAgICAvLyB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBhc2NpaSBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNBU0NJSSAgPSB0cnVlOworICAgICAgICAvLyBhc3N1bWUgdGhlIHNvdXJjZSBjb250YWlucyBhbGwgTERIIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0xESCA9IHRydWU7IAorICAgICAgICAgICAgICAgCisgICAgICAgIGludCBmYWlsUG9zID0gLTE7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgaW50IHNhdmVJbmRleCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgLy8gc3RlcCAxOiBmaW5kIG91dCBpZiBhbGwgdGhlIGNvZGVwb2ludHMgaW4gc3JjIGFyZSBBU0NJSSAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaD4weDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihpc0xESENoYXIoY2gpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgZmFpbFBvcyA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBzcmNJc0xESCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0OworICAgICAgICAKKyAgICAgICAgaWYoc3JjSXNBU0NJSSA9PSBmYWxzZSl7CisgICAgICAgICAgICAvLyBzdGVwIDI6IHByb2Nlc3MgdGhlIHN0cmluZworICAgICAgICAgICAgaXRlci5zZXRJbmRleChzYXZlSW5kZXgpOworICAgICAgICAgICAgcHJvY2Vzc091dCA9IHRyYW5zZm9ybS5wcmVwYXJlKGl0ZXIsb3B0aW9ucyk7CisKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAvL2p1c3QgcG9pbnQgdG8gc291cmNlCisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gbmV3IFN0cmluZ0J1ZmZlcihpdGVyLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzoKKyAgICAgICAgLy8gVGhlIFJGQyBzdGF0ZXMgdGhhdCAKKyAgICAgICAgLy8gPHF1b3RlPgorICAgICAgICAvLyBUb1VuaWNvZGUgbmV2ZXIgZmFpbHMuIElmIGFueSBzdGVwIGZhaWxzLCB0aGVuIHRoZSBvcmlnaW5hbCBpbnB1dAorICAgICAgICAvLyBpcyByZXR1cm5lZCBpbW1lZGlhdGVseSBpbiB0aGF0IHN0ZXAuCisgICAgICAgIC8vIDwvcXVvdGU+CisgICAgICAgIAorICAgICAgICAvL3N0ZXAgMzogdmVyaWZ5IEFDRSBQcmVmaXgKKyAgICAgICAgaWYoc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgLy9zdGVwIDQ6IFJlbW92ZSB0aGUgQUNFIFByZWZpeAorICAgICAgICAgICBTdHJpbmcgdGVtcCA9IHByb2Nlc3NPdXQuc3Vic3RyaW5nKEFDRV9QUkVGSVhfTEVOR1RILHByb2Nlc3NPdXQubGVuZ3RoKCkpOworCisgICAgICAgICAgIC8vc3RlcCA1OiBEZWNvZGUgdXNpbmcgcHVueWNvZGUKKyAgICAgICAgICAgU3RyaW5nQnVmZmVyIGRlY29kZU91dCA9IFB1bnljb2RlUmVmZXJlbmNlLmRlY29kZShuZXcgU3RyaW5nQnVmZmVyKHRlbXApLGNhc2VGbGFncyk7CisgICAgICAgIAorICAgICAgICAgICAgLy9zdGVwIDY6QXBwbHkgdG9BU0NJSQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQVNDSUlPdXQgPSBjb252ZXJ0VG9BU0NJSShkZWNvZGVPdXQsIG9wdGlvbnMpOworCisgICAgICAgICAgICAvL3N0ZXAgNzogdmVyaWZ5CisgICAgICAgICAgICBpZihjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkocHJvY2Vzc091dCwgdG9BU0NJSU91dCkgIT0wKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgdmVyaWZpY2F0aW9uIHN0ZXAgcHJlc2NyaWJlZCBieSB0aGUgUkZDIDM0OTEgZmFpbGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5WRVJJRklDQVRJT05fRVJST1IpOyAKKyAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vc3RlcCA4OiByZXR1cm4gb3V0cHV0IG9mIHN0ZXAgNQorICAgICAgICAgICAgcmV0dXJuIGRlY29kZU91dDsKKyAgICAgICAgICAgIAorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGF0IFNURDMgQVNDSUkgcnVsZXMgYXJlIHNhdGlzZmllZAorICAgICAgICAgICAgaWYodXNlU1REM0FTQ0lJUnVsZXMgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYoIHNyY0lzTERIID09IGZhbHNlIC8qIHNvdXJjZSBjb250YWlucyBzb21lIG5vbi1MREggY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSAgSFlQSEVOIAorICAgICAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdChwcm9jZXNzT3V0Lmxlbmd0aCgpLTEpID09IEhZUEhFTil7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihzcmNJc0xESD09ZmFsc2UpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWxQb3M+MCkgPyAoZmFpbFBvcy0xKSA6IGZhaWxQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYocHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gSFlQSEVOKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0Lmxlbmd0aCgpKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGp1c3QgcmV0dXJuIHRoZSBzb3VyY2UKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKGl0ZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gY29udmVydElETlRvVW5pY29kZShpdGVyLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoU3RyaW5nQnVmZmVyIHN0ciwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKHN0ci50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIAorICAgICAgICBjaGFyW10gc3JjQXJyID0gc3JjLnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZXBJbmRleD0wOworICAgICAgICBpbnQgb2xkU2VwSW5kZXg9MDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgaWYobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXghPXNyY0Fyci5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPSBzZXBJbmRleDsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpRlVMTF9TVE9QKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZ0J1ZmZlciBzMSwgU3RyaW5nQnVmZmVyIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMS50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIudG9TdHJpbmcoKSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoczFPdXQsczJPdXQpOworICAgIH0KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yIGkxLCBVQ2hhcmFjdGVySXRlcmF0b3IgaTIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihpMT09bnVsbCB8fCBpMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKGkxLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKGkyLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoczFPdXQsczJPdXQpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQV9ydWxlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQV9ydWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNmM2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BX3J1bGVzLmphdmEKQEAgLTAsMCArMSwxNTMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIElETkFfcnVsZXMgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIElETkFfcnVsZXMgICgpIHsKKyAgICAgICAgICBzdXBlci5jb250ZW50cyA9IGRhdGE7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIkxhYmVsU2VwYXJhdG9yU2V0IiwKKyAgICAgICAgICAgICAgICAgICAgIlsgLlx1MzAwMlx1RkYwRVx1RkY2MSBdIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIkNhc2VNYXAiLAorICAgICAgICAgICAgICAgICAgICAiQSA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIkIgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJDID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiRCA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIkUgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJGID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiRyA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIkggPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJJID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiSiA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIksgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJMID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiTSA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIk4gPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJPID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiUCA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlEgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJSID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiUyA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlQgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJVID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiViA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlcgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJYID4geDsiKworICAgICAgICAgICAgICAgICAgICAiWSA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlogPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEI1ID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDMCA+IFxcdTAwRTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzEgPiBcXHUwMEUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEMyID4gXFx1MDBFMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDMyA+IFxcdTAwRTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzQgPiBcXHUwMEU0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEM1ID4gXFx1MDBFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDNiA+IFxcdTAwRTY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzcgPiBcXHUwMEU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEM4ID4gXFx1MDBFODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDOSA+IFxcdTAwRTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQ0EgPiBcXHUwMEVBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMENCID4gXFx1MDBFQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDQyA+IFxcdTAwRUM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQ0QgPiBcXHUwMEVEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMENFID4gXFx1MDBFRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDRiA+IFxcdTAwRUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDAgPiBcXHUwMEYwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQxID4gXFx1MDBGMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEMiA+IFxcdTAwRjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDMgPiBcXHUwMEYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQ0ID4gXFx1MDBGNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBENSA+IFxcdTAwRjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDYgPiBcXHUwMEY2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQ4ID4gXFx1MDBGODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEOSA+IFxcdTAwRjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwREEgPiBcXHUwMEZBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMERCID4gXFx1MDBGQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEQyA+IFxcdTAwRkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwREQgPiBcXHUwMEZEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMERFID4gXFx1MDBGRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBERiA+IHNzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTAwID4gXFx1MDEwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEwMiA+IFxcdTAxMDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMDQgPiBcXHUwMTA1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTA2ID4gXFx1MDEwNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEwOCA+IFxcdTAxMDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMEEgPiBcXHUwMTBCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTBDID4gXFx1MDEwRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEwRSA+IFxcdTAxMEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMTAgPiBcXHUwMTExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTEyID4gXFx1MDExMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDExNCA+IFxcdTAxMTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMTYgPiBcXHUwMTE3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTE4ID4gXFx1MDExOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDExQSA+IFxcdTAxMUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMUMgPiBcXHUwMTFEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTFFID4gXFx1MDExRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyMCA+IFxcdTAxMjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMjIgPiBcXHUwMTIzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTI0ID4gXFx1MDEyNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyNiA+IFxcdTAxMjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMjggPiBcXHUwMTI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTJBID4gXFx1MDEyQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyQyA+IFxcdTAxMkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMkUgPiBcXHUwMTJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTMwID4gaVxcdTAzMDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMzIgPiBcXHUwMTMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTM0ID4gXFx1MDEzNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEzNiA+IFxcdTAxMzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMzkgPiBcXHUwMTNBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTNCID4gXFx1MDEzQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEzRCA+IFxcdTAxM0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxM0YgPiBcXHUwMTQwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTQxID4gXFx1MDE0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE0MyA+IFxcdTAxNDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNDUgPiBcXHUwMTQ2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTQ3ID4gXFx1MDE0ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE0OSA+IFxcdTAyQkNuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTRBID4gXFx1MDE0QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE0QyA+IFxcdTAxNEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNEUgPiBcXHUwMTRGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTUwID4gXFx1MDE1MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE1MiA+IFxcdTAxNTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNTQgPiBcXHUwMTU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTU2ID4gXFx1MDE1NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE1OCA+IFxcdTAxNTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNUEgPiBcXHUwMTVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTVDID4gXFx1MDE1RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE1RSA+IFxcdTAxNUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNjAgPiBcXHUwMTYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTYyID4gXFx1MDE2MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE2NCA+IFxcdTAxNjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNjYgPiBcXHUwMTY3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTY4ID4gXFx1MDE2OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE2QSA+IFxcdTAxNkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNkMgPiBcXHUwMTZEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTZFID4gXFx1MDE2RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3MCA+IFxcdTAxNzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNzIgPiBcXHUwMTczOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTc0ID4gXFx1MDE3NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3NiA+IFxcdTAxNzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNzggPiBcXHUwMEZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTc5ID4gXFx1MDE3QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3QiA+IFxcdTAxN0M7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxN0QgPiBcXHUwMTdFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTdGID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4MSA+IFxcdTAyNTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxODIgPiBcXHUwMTgzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTg0ID4gXFx1MDE4NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4NiA+IFxcdTAyNTQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxODcgPiBcXHUwMTg4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTg5ID4gXFx1MDI1NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4QSA+IFxcdTAyNTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOEIgPiBcXHUwMThDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMThFID4gXFx1MDFERDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4RiA+IFxcdTAyNTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOTAgPiBcXHUwMjVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTkxID4gXFx1MDE5MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5MyA+IFxcdTAyNjA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOTQgPiBcXHUwMjYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTk2ID4gXFx1MDI2OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5NyA+IFxcdTAyNjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOTggPiBcXHUwMTk5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTlDID4gXFx1MDI2RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5RCA+IFxcdTAyNzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOUYgPiBcXHUwMjc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUEwID4gXFx1MDFBMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBMiA+IFxcdTAxQTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQTQgPiBcXHUwMUE1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUE2ID4gXFx1MDI4MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBNyA+IFxcdTAxQTg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQTkgPiBcXHUwMjgzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUFDID4gXFx1MDFBRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBRSA+IFxcdTAyODg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQUYgPiBcXHUwMUIwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUIxID4gXFx1MDI4QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFCMiA+IFxcdTAyOEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQjMgPiBcXHUwMUI0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUI1ID4gXFx1MDFCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFCNyA+IFxcdTAyOTI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQjggPiBcXHUwMUI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUJDID4gXFx1MDFCRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDNCA+IFxcdTAxQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQzUgPiBcXHUwMUM2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUM3ID4gXFx1MDFDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDOCA+IFxcdTAxQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQ0EgPiBcXHUwMUNDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUNCID4gXFx1MDFDQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDRCA+IFxcdTAxQ0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQ0YgPiBcXHUwMUQwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUQxID4gXFx1MDFEMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFEMyA+IFxcdTAxRDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRDUgPiBcXHUwMUQ2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUQ3ID4gXFx1MDFEODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFEOSA+IFxcdTAxREE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxREIgPiBcXHUwMURDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMURFID4gXFx1MDFERjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFMCA+IFxcdTAxRTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRTIgPiBcXHUwMUUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUU0ID4gXFx1MDFFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFNiA+IFxcdTAxRTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRTggPiBcXHUwMUU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUVBID4gXFx1MDFFQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFQyA+IFxcdTAxRUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRUUgPiBcXHUwMUVGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUYwID4galxcdTAzMEM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRjEgPiBcXHUwMUYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUYyID4gXFx1MDFGMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGNCA+IFxcdTAxRjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRjYgPiBcXHUwMTk1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUY3ID4gXFx1MDFCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGOCA+IFxcdTAxRjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRkEgPiBcXHUwMUZCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUZDID4gXFx1MDFGRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGRSA+IFxcdTAxRkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMDAgPiBcXHUwMjAxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjAyID4gXFx1MDIwMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIwNCA+IFxcdTAyMDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMDYgPiBcXHUwMjA3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjA4ID4gXFx1MDIwOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIwQSA+IFxcdTAyMEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMEMgPiBcXHUwMjBEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjBFID4gXFx1MDIwRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxMCA+IFxcdTAyMTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMTIgPiBcXHUwMjEzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjE0ID4gXFx1MDIxNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxNiA+IFxcdTAyMTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMTggPiBcXHUwMjE5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjFBID4gXFx1MDIxQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxQyA+IFxcdTAyMUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMUUgPiBcXHUwMjFGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjIwID4gXFx1MDE5RTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIyMiA+IFxcdTAyMjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMjQgPiBcXHUwMjI1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjI2ID4gXFx1MDIyNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIyOCA+IFxcdTAyMjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMkEgPiBcXHUwMjJCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjJDID4gXFx1MDIyRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIyRSA+IFxcdTAyMkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMzAgPiBcXHUwMjMxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjMyID4gXFx1MDIzMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM0NSA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzN0EgPiBcXHUwMDIwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM4NiA+IFxcdTAzQUM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzODggPiBcXHUwM0FEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzg5ID4gXFx1MDNBRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM4QSA+IFxcdTAzQUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOEMgPiBcXHUwM0NDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzhFID4gXFx1MDNDRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM4RiA+IFxcdTAzQ0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTAgPiBcXHUwM0I5XFx1MDMwOFxcdTAzMDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTEgPiBcXHUwM0IxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzkyID4gXFx1MDNCMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5MyA+IFxcdTAzQjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTQgPiBcXHUwM0I0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzk1ID4gXFx1MDNCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5NiA+IFxcdTAzQjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTcgPiBcXHUwM0I3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzk4ID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5OSA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOUEgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzlCID4gXFx1MDNCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5QyA+IFxcdTAzQkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOUQgPiBcXHUwM0JEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzlFID4gXFx1MDNCRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5RiA+IFxcdTAzQkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTAgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0ExID4gXFx1MDNDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBMyA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTQgPiBcXHUwM0M0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0E1ID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBNiA+IFxcdTAzQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTcgPiBcXHUwM0M3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0E4ID4gXFx1MDNDODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBOSA+IFxcdTAzQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQUEgPiBcXHUwM0NBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0FCID4gXFx1MDNDQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNCMCA+IFxcdTAzQzVcXHUwMzA4XFx1MDMwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNDMiA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDAgPiBcXHUwM0IyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0QxID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNEMiA+IFxcdTAzQzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDMgPiBcXHUwM0NEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0Q0ID4gXFx1MDNDQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNENSA+IFxcdTAzQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDYgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0Q4ID4gXFx1MDNEOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNEQSA+IFxcdTAzREI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzREMgPiBcXHUwM0REOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0RFID4gXFx1MDNERjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFMCA+IFxcdTAzRTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRTIgPiBcXHUwM0UzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0U0ID4gXFx1MDNFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFNiA+IFxcdTAzRTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRTggPiBcXHUwM0U5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0VBID4gXFx1MDNFQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFQyA+IFxcdTAzRUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRUUgPiBcXHUwM0VGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0YwID4gXFx1MDNCQTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNGMSA+IFxcdTAzQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRjIgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0Y0ID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNGNSA+IFxcdTAzQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDAgPiBcXHUwNDUwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDAxID4gXFx1MDQ1MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwMiA+IFxcdTA0NTI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDMgPiBcXHUwNDUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDA0ID4gXFx1MDQ1NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwNSA+IFxcdTA0NTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDYgPiBcXHUwNDU2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDA3ID4gXFx1MDQ1NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwOCA+IFxcdTA0NTg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDkgPiBcXHUwNDU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDBBID4gXFx1MDQ1QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwQiA+IFxcdTA0NUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MEMgPiBcXHUwNDVDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDBEID4gXFx1MDQ1RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwRSA+IFxcdTA0NUU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MEYgPiBcXHUwNDVGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDEwID4gXFx1MDQzMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxMSA+IFxcdTA0MzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTIgPiBcXHUwNDMyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDEzID4gXFx1MDQzMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxNCA+IFxcdTA0MzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTUgPiBcXHUwNDM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDE2ID4gXFx1MDQzNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxNyA+IFxcdTA0Mzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTggPiBcXHUwNDM4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDE5ID4gXFx1MDQzOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxQSA+IFxcdTA0M0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MUIgPiBcXHUwNDNCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDFDID4gXFx1MDQzQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxRCA+IFxcdTA0M0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MUUgPiBcXHUwNDNFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDFGID4gXFx1MDQzRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyMCA+IFxcdTA0NDA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjEgPiBcXHUwNDQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDIyID4gXFx1MDQ0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyMyA+IFxcdTA0NDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjQgPiBcXHUwNDQ0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDI1ID4gXFx1MDQ0NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyNiA+IFxcdTA0NDY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjcgPiBcXHUwNDQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDI4ID4gXFx1MDQ0ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyOSA+IFxcdTA0NDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MkEgPiBcXHUwNDRBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDJCID4gXFx1MDQ0QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyQyA+IFxcdTA0NEM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MkQgPiBcXHUwNDREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDJFID4gXFx1MDQ0RTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyRiA+IFxcdTA0NEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NjAgPiBcXHUwNDYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDYyID4gXFx1MDQ2MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ2NCA+IFxcdTA0NjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NjYgPiBcXHUwNDY3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDY4ID4gXFx1MDQ2OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ2QSA+IFxcdTA0NkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NkMgPiBcXHUwNDZEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDZFID4gXFx1MDQ2RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3MCA+IFxcdTA0NzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NzIgPiBcXHUwNDczOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDc0ID4gXFx1MDQ3NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3NiA+IFxcdTA0Nzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NzggPiBcXHUwNDc5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDdBID4gXFx1MDQ3QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3QyA+IFxcdTA0N0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0N0UgPiBcXHUwNDdGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDgwID4gXFx1MDQ4MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ4QSA+IFxcdTA0OEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OEMgPiBcXHUwNDhEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDhFID4gXFx1MDQ4RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5MCA+IFxcdTA0OTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OTIgPiBcXHUwNDkzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDk0ID4gXFx1MDQ5NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5NiA+IFxcdTA0OTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OTggPiBcXHUwNDk5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDlBID4gXFx1MDQ5QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5QyA+IFxcdTA0OUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OUUgPiBcXHUwNDlGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEEwID4gXFx1MDRBMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRBMiA+IFxcdTA0QTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QTQgPiBcXHUwNEE1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEE2ID4gXFx1MDRBNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRBOCA+IFxcdTA0QTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QUEgPiBcXHUwNEFCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEFDID4gXFx1MDRBRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRBRSA+IFxcdTA0QUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QjAgPiBcXHUwNEIxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEIyID4gXFx1MDRCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRCNCA+IFxcdTA0QjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QjYgPiBcXHUwNEI3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEI4ID4gXFx1MDRCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRCQSA+IFxcdTA0QkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QkMgPiBcXHUwNEJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEJFID4gXFx1MDRCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRDMSA+IFxcdTA0QzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QzMgPiBcXHUwNEM0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEM1ID4gXFx1MDRDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRDNyA+IFxcdTA0Qzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QzkgPiBcXHUwNENBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNENCID4gXFx1MDRDQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRDRCA+IFxcdTA0Q0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RDAgPiBcXHUwNEQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEQyID4gXFx1MDREMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRENCA+IFxcdTA0RDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RDYgPiBcXHUwNEQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEQ4ID4gXFx1MDREOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDREQSA+IFxcdTA0REI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0REMgPiBcXHUwNEREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNERFID4gXFx1MDRERjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFMCA+IFxcdTA0RTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RTIgPiBcXHUwNEUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEU0ID4gXFx1MDRFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFNiA+IFxcdTA0RTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RTggPiBcXHUwNEU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEVBID4gXFx1MDRFQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFQyA+IFxcdTA0RUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RUUgPiBcXHUwNEVGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEYwID4gXFx1MDRGMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRGMiA+IFxcdTA0RjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RjQgPiBcXHUwNEY1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEY4ID4gXFx1MDRGOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwMCA+IFxcdTA1MDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MDIgPiBcXHUwNTAzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTA0ID4gXFx1MDUwNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwNiA+IFxcdTA1MDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MDggPiBcXHUwNTA5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTBBID4gXFx1MDUwQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwQyA+IFxcdTA1MEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MEUgPiBcXHUwNTBGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTMxID4gXFx1MDU2MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzMiA+IFxcdTA1NjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzMgPiBcXHUwNTYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTM0ID4gXFx1MDU2NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzNSA+IFxcdTA1NjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzYgPiBcXHUwNTY2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTM3ID4gXFx1MDU2NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzOCA+IFxcdTA1Njg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzkgPiBcXHUwNTY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTNBID4gXFx1MDU2QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzQiA+IFxcdTA1NkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1M0MgPiBcXHUwNTZDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTNEID4gXFx1MDU2RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzRSA+IFxcdTA1NkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1M0YgPiBcXHUwNTZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQwID4gXFx1MDU3MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0MSA+IFxcdTA1NzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDIgPiBcXHUwNTcyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQzID4gXFx1MDU3MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0NCA+IFxcdTA1NzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDUgPiBcXHUwNTc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQ2ID4gXFx1MDU3NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0NyA+IFxcdTA1Nzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDggPiBcXHUwNTc4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQ5ID4gXFx1MDU3OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0QSA+IFxcdTA1N0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NEIgPiBcXHUwNTdCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTRDID4gXFx1MDU3QzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0RCA+IFxcdTA1N0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NEUgPiBcXHUwNTdFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTRGID4gXFx1MDU3RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU1MCA+IFxcdTA1ODA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NTEgPiBcXHUwNTgxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTUyID4gXFx1MDU4MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU1MyA+IFxcdTA1ODM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NTQgPiBcXHUwNTg0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTU1ID4gXFx1MDU4NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU1NiA+IFxcdTA1ODY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1ODcgPiBcXHUwNTY1XFx1MDU4MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwMCA+IFxcdTFFMDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMDIgPiBcXHUxRTAzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTA0ID4gXFx1MUUwNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwNiA+IFxcdTFFMDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMDggPiBcXHUxRTA5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTBBID4gXFx1MUUwQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwQyA+IFxcdTFFMEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMEUgPiBcXHUxRTBGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTEwID4gXFx1MUUxMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUxMiA+IFxcdTFFMTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMTQgPiBcXHUxRTE1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTE2ID4gXFx1MUUxNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUxOCA+IFxcdTFFMTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMUEgPiBcXHUxRTFCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTFDID4gXFx1MUUxRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUxRSA+IFxcdTFFMUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMjAgPiBcXHUxRTIxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTIyID4gXFx1MUUyMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUyNCA+IFxcdTFFMjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMjYgPiBcXHUxRTI3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTI4ID4gXFx1MUUyOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUyQSA+IFxcdTFFMkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMkMgPiBcXHUxRTJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTJFID4gXFx1MUUyRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzMCA+IFxcdTFFMzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMzIgPiBcXHUxRTMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTM0ID4gXFx1MUUzNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzNiA+IFxcdTFFMzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMzggPiBcXHUxRTM5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTNBID4gXFx1MUUzQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzQyA+IFxcdTFFM0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFM0UgPiBcXHUxRTNGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTQwID4gXFx1MUU0MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU0MiA+IFxcdTFFNDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNDQgPiBcXHUxRTQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTQ2ID4gXFx1MUU0NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU0OCA+IFxcdTFFNDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNEEgPiBcXHUxRTRCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTRDID4gXFx1MUU0RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU0RSA+IFxcdTFFNEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNTAgPiBcXHUxRTUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTUyID4gXFx1MUU1MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU1NCA+IFxcdTFFNTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNTYgPiBcXHUxRTU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTU4ID4gXFx1MUU1OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU1QSA+IFxcdTFFNUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNUMgPiBcXHUxRTVEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTVFID4gXFx1MUU1RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2MCA+IFxcdTFFNjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNjIgPiBcXHUxRTYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTY0ID4gXFx1MUU2NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2NiA+IFxcdTFFNjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNjggPiBcXHUxRTY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTZBID4gXFx1MUU2QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2QyA+IFxcdTFFNkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNkUgPiBcXHUxRTZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTcwID4gXFx1MUU3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU3MiA+IFxcdTFFNzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNzQgPiBcXHUxRTc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTc2ID4gXFx1MUU3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU3OCA+IFxcdTFFNzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFN0EgPiBcXHUxRTdCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTdDID4gXFx1MUU3RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU3RSA+IFxcdTFFN0Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFODAgPiBcXHUxRTgxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTgyID4gXFx1MUU4MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU4NCA+IFxcdTFFODU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFODYgPiBcXHUxRTg3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTg4ID4gXFx1MUU4OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU4QSA+IFxcdTFFOEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOEMgPiBcXHUxRThEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRThFID4gXFx1MUU4RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5MCA+IFxcdTFFOTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOTIgPiBcXHUxRTkzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTk0ID4gXFx1MUU5NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5NiA+IGhcXHUwMzMxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTk3ID4gdFxcdTAzMDg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOTggPiB3XFx1MDMwQTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5OSA+IHlcXHUwMzBBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTlBID4gYVxcdTAyQkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOUIgPiBcXHUxRTYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUEwID4gXFx1MUVBMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVBMiA+IFxcdTFFQTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQTQgPiBcXHUxRUE1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUE2ID4gXFx1MUVBNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVBOCA+IFxcdTFFQTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQUEgPiBcXHUxRUFCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUFDID4gXFx1MUVBRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVBRSA+IFxcdTFFQUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQjAgPiBcXHUxRUIxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUIyID4gXFx1MUVCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVCNCA+IFxcdTFFQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQjYgPiBcXHUxRUI3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUI4ID4gXFx1MUVCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVCQSA+IFxcdTFFQkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQkMgPiBcXHUxRUJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUJFID4gXFx1MUVCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDMCA+IFxcdTFFQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQzIgPiBcXHUxRUMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUM0ID4gXFx1MUVDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDNiA+IFxcdTFFQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQzggPiBcXHUxRUM5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUNBID4gXFx1MUVDQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDQyA+IFxcdTFFQ0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQ0UgPiBcXHUxRUNGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUQwID4gXFx1MUVEMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVEMiA+IFxcdTFFRDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRDQgPiBcXHUxRUQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUQ2ID4gXFx1MUVENzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVEOCA+IFxcdTFFRDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFREEgPiBcXHUxRURCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRURDID4gXFx1MUVERDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVERSA+IFxcdTFFREY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRTAgPiBcXHUxRUUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUUyID4gXFx1MUVFMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVFNCA+IFxcdTFFRTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRTYgPiBcXHUxRUU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUU4ID4gXFx1MUVFOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVFQSA+IFxcdTFFRUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRUMgPiBcXHUxRUVEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUVFID4gXFx1MUVFRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVGMCA+IFxcdTFFRjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRjIgPiBcXHUxRUYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUY0ID4gXFx1MUVGNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVGNiA+IFxcdTFFRjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRjggPiBcXHUxRUY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjA4ID4gXFx1MUYwMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYwOSA+IFxcdTFGMDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMEEgPiBcXHUxRjAyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjBCID4gXFx1MUYwMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYwQyA+IFxcdTFGMDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMEQgPiBcXHUxRjA1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjBFID4gXFx1MUYwNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYwRiA+IFxcdTFGMDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMTggPiBcXHUxRjEwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjE5ID4gXFx1MUYxMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYxQSA+IFxcdTFGMTI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMUIgPiBcXHUxRjEzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjFDID4gXFx1MUYxNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYxRCA+IFxcdTFGMTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMjggPiBcXHUxRjIwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjI5ID4gXFx1MUYyMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYyQSA+IFxcdTFGMjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMkIgPiBcXHUxRjIzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjJDID4gXFx1MUYyNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYyRCA+IFxcdTFGMjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMkUgPiBcXHUxRjI2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjJGID4gXFx1MUYyNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzOCA+IFxcdTFGMzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMzkgPiBcXHUxRjMxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjNBID4gXFx1MUYzMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzQiA+IFxcdTFGMzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGM0MgPiBcXHUxRjM0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjNEID4gXFx1MUYzNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzRSA+IFxcdTFGMzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGM0YgPiBcXHUxRjM3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjQ4ID4gXFx1MUY0MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY0OSA+IFxcdTFGNDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNEEgPiBcXHUxRjQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjRCID4gXFx1MUY0MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY0QyA+IFxcdTFGNDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNEQgPiBcXHUxRjQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjUwID4gXFx1MDNDNVxcdTAzMTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNTIgPiBcXHUwM0M1XFx1MDMxM1xcdTAzMDA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNTQgPiBcXHUwM0M1XFx1MDMxM1xcdTAzMDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNTYgPiBcXHUwM0M1XFx1MDMxM1xcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNTkgPiBcXHUxRjUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjVCID4gXFx1MUY1MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1RCA+IFxcdTFGNTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNUYgPiBcXHUxRjU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjY4ID4gXFx1MUY2MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY2OSA+IFxcdTFGNjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNkEgPiBcXHUxRjYyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjZCID4gXFx1MUY2MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY2QyA+IFxcdTFGNjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNkQgPiBcXHUxRjY1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjZFID4gXFx1MUY2NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY2RiA+IFxcdTFGNjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODAgPiBcXHUxRjAwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4MSA+IFxcdTFGMDFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjgyID4gXFx1MUYwMlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODMgPiBcXHUxRjAzXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4NCA+IFxcdTFGMDRcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjg1ID4gXFx1MUYwNVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODYgPiBcXHUxRjA2XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4NyA+IFxcdTFGMDdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjg4ID4gXFx1MUYwMFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODkgPiBcXHUxRjAxXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4QSA+IFxcdTFGMDJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjhCID4gXFx1MUYwM1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOEMgPiBcXHUxRjA0XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4RCA+IFxcdTFGMDVcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjhFID4gXFx1MUYwNlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOEYgPiBcXHUxRjA3XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5MCA+IFxcdTFGMjBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjkxID4gXFx1MUYyMVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTIgPiBcXHUxRjIyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5MyA+IFxcdTFGMjNcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjk0ID4gXFx1MUYyNFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTUgPiBcXHUxRjI1XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5NiA+IFxcdTFGMjZcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjk3ID4gXFx1MUYyN1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTggPiBcXHUxRjIwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5OSA+IFxcdTFGMjFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjlBID4gXFx1MUYyMlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOUIgPiBcXHUxRjIzXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5QyA+IFxcdTFGMjRcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjlEID4gXFx1MUYyNVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOUUgPiBcXHUxRjI2XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5RiA+IFxcdTFGMjdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkEwID4gXFx1MUY2MFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTEgPiBcXHUxRjYxXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBMiA+IFxcdTFGNjJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkEzID4gXFx1MUY2M1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTQgPiBcXHUxRjY0XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBNSA+IFxcdTFGNjVcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkE2ID4gXFx1MUY2NlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTcgPiBcXHUxRjY3XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBOCA+IFxcdTFGNjBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkE5ID4gXFx1MUY2MVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQUEgPiBcXHUxRjYyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBQiA+IFxcdTFGNjNcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkFDID4gXFx1MUY2NFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQUQgPiBcXHUxRjY1XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBRSA+IFxcdTFGNjZcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkFGID4gXFx1MUY2N1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQjIgPiBcXHUxRjcwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCMyA+IFxcdTAzQjFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkI0ID4gXFx1MDNBQ1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQjYgPiBcXHUwM0IxXFx1MDM0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCNyA+IFxcdTAzQjFcXHUwMzQyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCOCA+IFxcdTFGQjA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQjkgPiBcXHUxRkIxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkJBID4gXFx1MUY3MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCQiA+IFxcdTFGNzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQkMgPiBcXHUwM0IxXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCRSA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQzIgPiBcXHUxRjc0XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDMyA+IFxcdTAzQjdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkM0ID4gXFx1MDNBRVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQzYgPiBcXHUwM0I3XFx1MDM0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDNyA+IFxcdTAzQjdcXHUwMzQyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDOCA+IFxcdTFGNzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQzkgPiBcXHUxRjczOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkNBID4gXFx1MUY3NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDQiA+IFxcdTFGNzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQ0MgPiBcXHUwM0I3XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZEMiA+IFxcdTAzQjlcXHUwMzA4XFx1MDMwMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZEMyA+IFxcdTAzQjlcXHUwMzA4XFx1MDMwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZENiA+IFxcdTAzQjlcXHUwMzQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQ3ID4gXFx1MDNCOVxcdTAzMDhcXHUwMzQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQ4ID4gXFx1MUZEMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZEOSA+IFxcdTFGRDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGREEgPiBcXHUxRjc2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkRCID4gXFx1MUY3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFMiA+IFxcdTAzQzVcXHUwMzA4XFx1MDMwMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFMyA+IFxcdTAzQzVcXHUwMzA4XFx1MDMwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFNCA+IFxcdTAzQzFcXHUwMzEzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkU2ID4gXFx1MDNDNVxcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRTcgPiBcXHUwM0M1XFx1MDMwOFxcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRTggPiBcXHUxRkUwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkU5ID4gXFx1MUZFMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFQSA+IFxcdTFGN0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRUIgPiBcXHUxRjdCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkVDID4gXFx1MUZFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGMiA+IFxcdTFGN0NcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkYzID4gXFx1MDNDOVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRjQgPiBcXHUwM0NFXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGNiA+IFxcdTAzQzlcXHUwMzQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkY3ID4gXFx1MDNDOVxcdTAzNDJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkY4ID4gXFx1MUY3ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGOSA+IFxcdTFGNzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRkEgPiBcXHUxRjdDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkZCID4gXFx1MUY3RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGQyA+IFxcdTAzQzlcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMEE4ID4gcnM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMDIgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTAzID4gXFx1MDBCMGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMDcgPiBcXHUwMjVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTA5ID4gXFx1MDBCMGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMEIgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTBDID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEwRCA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMTAgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTExID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExMiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMTUgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTE2ID4gbm87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMTkgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTFBID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExQiA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMUMgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTFEID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyMCA+IHNtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTIxID4gdGVsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTIyID4gdG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMjQgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTI2ID4gXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyOCA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMkEgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTJCID4gXFx1MDBFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyQyA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMkQgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTMwID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEzMSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMzMgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTNFID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEzRiA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNDUgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTYwID4gXFx1MjE3MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2MSA+IFxcdTIxNzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjIgPiBcXHUyMTcyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTYzID4gXFx1MjE3MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2NCA+IFxcdTIxNzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjUgPiBcXHUyMTc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTY2ID4gXFx1MjE3NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2NyA+IFxcdTIxNzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjggPiBcXHUyMTc4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTY5ID4gXFx1MjE3OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2QSA+IFxcdTIxN0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNkIgPiBcXHUyMTdCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTZDID4gXFx1MjE3QzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2RCA+IFxcdTIxN0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNkUgPiBcXHUyMTdFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTZGID4gXFx1MjE3RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCNiA+IFxcdTI0RDA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QjcgPiBcXHUyNEQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEI4ID4gXFx1MjREMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCOSA+IFxcdTI0RDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QkEgPiBcXHUyNEQ0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEJCID4gXFx1MjRENTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCQyA+IFxcdTI0RDY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QkQgPiBcXHUyNEQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEJFID4gXFx1MjREODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCRiA+IFxcdTI0RDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzAgPiBcXHUyNERBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEMxID4gXFx1MjREQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDMiA+IFxcdTI0REM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzMgPiBcXHUyNEREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEM0ID4gXFx1MjRERTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDNSA+IFxcdTI0REY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzYgPiBcXHUyNEUwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEM3ID4gXFx1MjRFMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDOCA+IFxcdTI0RTI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzkgPiBcXHUyNEUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNENBID4gXFx1MjRFNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDQiA+IFxcdTI0RTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0Q0MgPiBcXHUyNEU2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNENEID4gXFx1MjRFNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDRSA+IFxcdTI0RTg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0Q0YgPiBcXHUyNEU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzcxID4gaHBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzczID4gYXU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzNzUgPiBvdjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4MCA+IHBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzgxID4gbmE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzODIgPiBcXHUwM0JDYTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4MyA+IG1hOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzg0ID4ga2E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzODUgPiBrYjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4NiA+IG1iOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzg3ID4gZ2I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzOEEgPiBwZjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4QiA+IG5mOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzhDID4gXFx1MDNCQ2Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzOTAgPiBoejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM5MSA+IGtoejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM5MiA+IG1oejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM5MyA+IGdoejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM5NCA+IHRoejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNBOSA+IHBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0FBID4ga3BhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0FCID4gbXBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0FDID4gZ3BhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0I0ID4gcHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQjUgPiBudjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCNiA+IFxcdTAzQkN2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0I3ID4gbXY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQjggPiBrdjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCOSA+IG12OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0JBID4gcHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQkIgPiBudzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCQyA+IFxcdTAzQkN3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0JEID4gbXc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQkUgPiBrdzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCRiA+IG13OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0MwID4ga1xcdTAzQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQzEgPiBtXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDMyA+IGJxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0M2ID4gY1xcdTIyMTVrZzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDNyA+IGNvXFwuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0M4ID4gZGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQzkgPiBneTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDQiA+IGhwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0NEID4ga2s7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQ0UgPiBrbTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNENyA+IHBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0Q5ID4gcHBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0RBID4gcHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzREMgPiBzdjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNERCA+IHdiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjAwID4gZmY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDEgPiBmaTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIwMiA+IGZsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjAzID4gZmZpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjA0ID4gZmZsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjA1ID4gc3Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDYgPiBzdDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIxMyA+IFxcdTA1NzRcXHUwNTc2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjE0ID4gXFx1MDU3NFxcdTA1NjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMTUgPiBcXHUwNTc0XFx1MDU2QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIxNiA+IFxcdTA1N0VcXHUwNTc2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjE3ID4gXFx1MDU3NFxcdTA1NkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjEgPiBcXHVGRjQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjIyID4gXFx1RkY0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyMyA+IFxcdUZGNDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjQgPiBcXHVGRjQ0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjI1ID4gXFx1RkY0NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyNiA+IFxcdUZGNDY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjcgPiBcXHVGRjQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjI4ID4gXFx1RkY0ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyOSA+IFxcdUZGNDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMkEgPiBcXHVGRjRBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjJCID4gXFx1RkY0QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyQyA+IFxcdUZGNEM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMkQgPiBcXHVGRjREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjJFID4gXFx1RkY0RTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyRiA+IFxcdUZGNEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzAgPiBcXHVGRjUwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjMxID4gXFx1RkY1MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzMiA+IFxcdUZGNTI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzMgPiBcXHVGRjUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjM0ID4gXFx1RkY1NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzNSA+IFxcdUZGNTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzYgPiBcXHVGRjU2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjM3ID4gXFx1RkY1NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzOCA+IFxcdUZGNTg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzkgPiBcXHVGRjU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjNBID4gXFx1RkY1QTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDAgPiBcXFUwMDAxMDQyODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDEgPiBcXFUwMDAxMDQyOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDIgPiBcXFUwMDAxMDQyQTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDMgPiBcXFUwMDAxMDQyQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDQgPiBcXFUwMDAxMDQyQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDUgPiBcXFUwMDAxMDQyRDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDYgPiBcXFUwMDAxMDQyRTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDcgPiBcXFUwMDAxMDQyRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDggPiBcXFUwMDAxMDQzMDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MDkgPiBcXFUwMDAxMDQzMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEEgPiBcXFUwMDAxMDQzMjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEIgPiBcXFUwMDAxMDQzMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEMgPiBcXFUwMDAxMDQzNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEQgPiBcXFUwMDAxMDQzNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEUgPiBcXFUwMDAxMDQzNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MEYgPiBcXFUwMDAxMDQzNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTAgPiBcXFUwMDAxMDQzODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTEgPiBcXFUwMDAxMDQzOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTIgPiBcXFUwMDAxMDQzQTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTMgPiBcXFUwMDAxMDQzQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTQgPiBcXFUwMDAxMDQzQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTUgPiBcXFUwMDAxMDQzRDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTYgPiBcXFUwMDAxMDQzRTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTcgPiBcXFUwMDAxMDQzRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTggPiBcXFUwMDAxMDQ0MDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MTkgPiBcXFUwMDAxMDQ0MTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUEgPiBcXFUwMDAxMDQ0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUIgPiBcXFUwMDAxMDQ0MzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUMgPiBcXFUwMDAxMDQ0NDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUQgPiBcXFUwMDAxMDQ0NTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUUgPiBcXFUwMDAxMDQ0NjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MUYgPiBcXFUwMDAxMDQ0NzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjAgPiBcXFUwMDAxMDQ0ODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjEgPiBcXFUwMDAxMDQ0OTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjIgPiBcXFUwMDAxMDQ0QTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjMgPiBcXFUwMDAxMDQ0QjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjQgPiBcXFUwMDAxMDQ0QzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMTA0MjUgPiBcXFUwMDAxMDQ0RDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDAgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwMSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDAyID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDMgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwNCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDA1ID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDYgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwNyA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDA4ID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDkgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwQSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDBCID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MEMgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwRCA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDBFID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MEYgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxMCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDExID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTIgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxMyA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDE0ID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTUgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxNiA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDE3ID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTggPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxOSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDM0ID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MzUgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzNiA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDM3ID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MzggPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzOSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDNBID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0M0IgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzQyA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDNEID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0M0UgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzRiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQwID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDEgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0MiA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQzID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDQgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0NSA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQ2ID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDcgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0OCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQ5ID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NEEgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0QiA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDRDID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NEQgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ2OCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDY5ID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NkEgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ2QiA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDZDID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NkQgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ2RSA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDZGID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzAgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3MSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDcyID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzMgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3NCA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDc1ID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzYgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3NyA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDc4ID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzkgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3QSA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDdCID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0N0MgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3RCA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDdFID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0N0YgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ4MCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDgxID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0OUMgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ5RSA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDlGID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QTIgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBNSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEE2ID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QTkgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBQSA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEFCID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QUMgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBRSA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEFGID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QjAgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRCMSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEIyID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QjMgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRCNCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEI1ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDAgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREMSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQyID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDMgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRENCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQ1ID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDYgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRENyA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQ4ID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDkgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREQSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENERCID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0REMgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRERCA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENERFID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0REYgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFMCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEUxID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTIgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFMyA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEU0ID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTUgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFNiA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEU3ID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTggPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFOSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTA0ID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MDUgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwNyA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTA4ID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MDkgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwQSA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTBEID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MEUgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwRiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTEwID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTEgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxMiA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTEzID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTQgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxNiA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTE3ID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTggPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxOSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTFBID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MUIgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxQyA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTM4ID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MzkgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUzQiA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTNDID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1M0QgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUzRSA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTQwID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NDEgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0MiA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTQzID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NDQgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0NiA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTRBID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NEIgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0QyA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTREID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NEUgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0RiA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTUwID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NkMgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU2RCA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTZFID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NkYgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3MCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTcxID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzIgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3MyA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTc0ID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzUgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3NiA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTc3ID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzggPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3OSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTdBID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1N0IgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3QyA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTdEID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1N0UgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3RiA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTgwID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1ODEgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU4MiA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTgzID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1ODQgPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU4NSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUEwID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTEgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBMiA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUEzID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTQgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBNSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUE2ID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTcgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBOCA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUE5ID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QUEgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBQiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUFDID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QUQgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBRSA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUFGID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjAgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCMSA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUIyID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjMgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCNCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUI1ID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjYgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCNyA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUI4ID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjkgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVENCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUQ1ID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RDYgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVENyA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUQ4ID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RDkgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVEQSA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENURCID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1REMgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVERCA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENURFID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1REYgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFMCA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUUxID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTIgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFMyA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUU0ID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTUgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFNiA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUU3ID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTggPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFOSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUVBID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RUIgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFQyA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUVEID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MDggPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwOSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjBBID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MEIgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwQyA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjBEID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MEUgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwRiA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjEwID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTEgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxMiA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjEzID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTQgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxNSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjE2ID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTcgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxOCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjE5ID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MUEgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxQiA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjFDID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MUQgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxRSA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjFGID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MjAgPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYyMSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjNDID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2M0QgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYzRSA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjNGID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDAgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0MSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQyID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDMgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0NCA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQ1ID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDYgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0NyA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQ4ID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDkgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0QSA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjRCID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NEMgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0RCA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjRFID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NEYgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY1MCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjUxID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NTIgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY1MyA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjU0ID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NTUgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3MCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjcxID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzIgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3MyA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjc0ID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzUgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3NiA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjc3ID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzggPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3OSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjdBID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2N0IgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3QyA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjdEID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2N0UgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3RiA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjgwID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODEgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4MiA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjgzID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODQgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4NSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjg2ID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODcgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4OCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjg5ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QTggPiBcXHUwM0IxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBOSA+IFxcdTAzQjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkFBID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QUIgPiBcXHUwM0I0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBQyA+IFxcdTAzQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkFEID4gXFx1MDNCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QUUgPiBcXHUwM0I3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBRiA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkIwID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjEgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCMiA+IFxcdTAzQkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkIzID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjQgPiBcXHUwM0JEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCNSA+IFxcdTAzQkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkI2ID4gXFx1MDNCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjcgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCOCA+IFxcdTAzQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkI5ID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QkEgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCQiA+IFxcdTAzQzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkJDID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QkQgPiBcXHUwM0M2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCRSA+IFxcdTAzQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkJGID4gXFx1MDNDODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QzAgPiBcXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZEMyA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkUyID4gXFx1MDNCMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTMgPiBcXHUwM0IyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFNCA+IFxcdTAzQjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkU1ID4gXFx1MDNCNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTYgPiBcXHUwM0I1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFNyA+IFxcdTAzQjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkU4ID4gXFx1MDNCNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTkgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFQSA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkVCID4gXFx1MDNCQTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RUMgPiBcXHUwM0JCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFRCA+IFxcdTAzQkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkVFID4gXFx1MDNCRDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RUYgPiBcXHUwM0JFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGMCA+IFxcdTAzQkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkYxID4gXFx1MDNDMDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjIgPiBcXHUwM0MxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGMyA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkY0ID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjUgPiBcXHUwM0M0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGNiA+IFxcdTAzQzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkY3ID4gXFx1MDNDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjggPiBcXHUwM0M3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGOSA+IFxcdTAzQzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkZBID4gXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MEQgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcxQyA+IFxcdTAzQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzFEID4gXFx1MDNCMjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MUUgPiBcXHUwM0IzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcxRiA+IFxcdTAzQjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzIwID4gXFx1MDNCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjEgPiBcXHUwM0I2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyMiA+IFxcdTAzQjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzIzID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjQgPiBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyNSA+IFxcdTAzQkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzI2ID4gXFx1MDNCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjcgPiBcXHUwM0JDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyOCA+IFxcdTAzQkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzI5ID4gXFx1MDNCRTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MkEgPiBcXHUwM0JGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyQiA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzJDID4gXFx1MDNDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MkQgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyRSA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzJGID4gXFx1MDNDNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MzAgPiBcXHUwM0M1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDczMSA+IFxcdTAzQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzMyID4gXFx1MDNDNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MzMgPiBcXHUwM0M4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDczNCA+IFxcdTAzQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzQ3ID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NTYgPiBcXHUwM0IxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1NyA+IFxcdTAzQjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzU4ID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NTkgPiBcXHUwM0I0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1QSA+IFxcdTAzQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzVCID4gXFx1MDNCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NUMgPiBcXHUwM0I3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1RCA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzVFID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NUYgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2MCA+IFxcdTAzQkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzYxID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjIgPiBcXHUwM0JEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2MyA+IFxcdTAzQkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzY0ID4gXFx1MDNCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjUgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2NiA+IFxcdTAzQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzY3ID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjggPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2OSA+IFxcdTAzQzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzZBID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NkIgPiBcXHUwM0M2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2QyA+IFxcdTAzQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzZEID4gXFx1MDNDODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NkUgPiBcXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc4MSA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzkwID4gXFx1MDNCMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTEgPiBcXHUwM0IyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5MiA+IFxcdTAzQjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzkzID4gXFx1MDNCNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTQgPiBcXHUwM0I1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5NSA+IFxcdTAzQjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzk2ID4gXFx1MDNCNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTcgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5OCA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzk5ID4gXFx1MDNCQTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OUEgPiBcXHUwM0JCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5QiA+IFxcdTAzQkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzlDID4gXFx1MDNCRDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OUQgPiBcXHUwM0JFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5RSA+IFxcdTAzQkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzlGID4gXFx1MDNDMDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTAgPiBcXHUwM0MxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBMSA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0EyID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTMgPiBcXHUwM0M0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBNCA+IFxcdTAzQzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0E1ID4gXFx1MDNDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTYgPiBcXHUwM0M3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBNyA+IFxcdTAzQzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0E4ID4gXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QkIgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAyRjg2OCA+IFxcVTAwMDIxMzZBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAyRjg3NCA+IFxcdTVGMzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDJGOTFGID4gXFx1NDNBQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMkY5NUYgPiBcXHU3QUFFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAyRjlCRiA+IFxcdTRENTc7IisKKyAgICAgICAgICAgICAgICAgICAgLy8gZ2VuZXJhdGUgdGhlIGNoYXJhY3RlcnMgdGhhdCBhcmUgdW5hZmZlY3RlZAorICAgICAgICAgICAgICAgICAgICAiOjpbOkFHRT0zLjI6XU5GS0M7IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiTWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQUQgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzNEYgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTE4MDYgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTE4MEIgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTE4MEMgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTE4MEQgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIwMEIgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIwMEMgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIwMEQgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIwNjAgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDAgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDEgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDIgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDMgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDQgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDUgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDYgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDcgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDggPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMDkgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEEgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEIgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEMgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEQgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEUgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFMEYgPiA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZFRkYgPiA7IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiUHJvaGliaXRlZFNldCIsCisgICAgICAgICAgICAgICAgICAgICJbXFx1MDBBMCBcXHUxNjgwIFxcdTIwMDAgXFx1MjAwMSBcXHUyMDAyIFxcdTIwMDMgXFx1MjAwNCBcXHUyMDA1IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MjAwNiBcXHUyMDA3IFxcdTIwMDggXFx1MjAwOSBcXHUyMDBBIFxcdTIwMEIgXFx1MjAyRiBcXHUyMDVGIFxcdTMwMDAiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwMDgwLVxcdTAwOUYgXFx1MDZERCBcXHUwNzBGIFxcdTE4MEUgXFx1MjAwQyBcXHUyMDBEIFxcdTIwMjggXFx1MjAyOSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTIwNjAgXFx1MjA2MSBcXHUyMDYyIFxcdTIwNjMgXFx1MjA2QS1cXHUyMDZGIFxcdUZFRkYgXFx1RkZGOS1cXHVGRkZDIiArCisgICAgICAgICAgICAgICAgICAgICIgXFxVMDAwMUQxNzMtXFxVMDAwMUQxN0EgXFx1RTAwMC1cXHVGOEZGIFxcVTAwMEYwMDAwLVxcVTAwMEZGRkZEICIgKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAxMDAwMDAtXFxVMDAxMEZGRkQgXFx1RkREMC1cXHVGREVGIFxcdUZGRkUtXFx1RkZGRiBcXFUwMDAxRkZGIiArCisgICAgICAgICAgICAgICAgICAgICJFLVxcVTAwMDFGRkZGIFxcVTAwMDJGRkZFLVxcVTAwMDJGRkZGIFxcVTAwMDNGRkZFLVxcVTAwMDNGRkZGIFxcVSIgKworICAgICAgICAgICAgICAgICAgICAiMDAwNEZGRkUtXFxVMDAwNEZGRkYgXFxVMDAwNUZGRkUtXFxVMDAwNUZGRkYgXFxVMDAwNkZGRkUtXFxVMDAwNiIgKworICAgICAgICAgICAgICAgICAgICAiRkZGRiBcXFUwMDA3RkZGRS1cXFUwMDA3RkZGRiBcXFUwMDA4RkZGRS1cXFUwMDA4RkZGRiBcXFUwMDA5RkZGRSIgKworICAgICAgICAgICAgICAgICAgICAiLVxcVTAwMDlGRkZGIFxcVTAwMEFGRkZFLVxcVTAwMEFGRkZGIFxcVTAwMEJGRkZFLVxcVTAwMEJGRkZGIFxcVTAiICsKKyAgICAgICAgICAgICAgICAgICAgIjAwQ0ZGRkUtXFxVMDAwQ0ZGRkYgXFxVMDAwREZGRkUtXFxVMDAwREZGRkYgXFxVMDAwRUZGRkUtXFxVMDAwRUYiICsKKyAgICAgICAgICAgICAgICAgICAgIkZGRiBcXFUwMDBGRkZGRS1cXFUwMDBGRkZGRiBcXFUwMDEwRkZGRS1cXFUwMDEwRkZGRiBcXHVEODAwLVxcdURGRkYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHVGRkY5IFxcdUZGRkEgXFx1RkZGQiBcXHVGRkZDIFxcdUZGRkQgXFx1MkZGMC1cXHUyRkZCIFxcdTAzNDAgXFx1MDM0MSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTIwMEUgXFx1MjAwRiBcXHUyMDJBIFxcdTIwMkIgXFx1MjAyQyBcXHUyMDJEIFxcdTIwMkUgXFx1MjA2QSBcXHUyMDZCIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MjA2QyBcXHUyMDZEIFxcdTIwNkUgXFx1MjA2RiBcXFUwMDBFMDAwMSBcXFUwMDBFMDAyMC1cXFUwMDBFMDAiICsKKyAgICAgICAgICAgICAgICAgICAgIjdGIF0iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiVW5hc3NpZ25lZFNldCIsCisgICAgICAgICAgICAgICAgICAgICJbIFxcdTAyMjEgXFx1MDIzNC1cXHUwMjRGIFxcdTAyQUUtXFx1MDJBRiBcXHUwMkVGLVxcdTAyRkYgXFx1MDM1MC1cXHUwMzVGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MDM3MC1cXHUwMzczIFxcdTAzNzYtXFx1MDM3OSBcXHUwMzdCLVxcdTAzN0QgXFx1MDM3Ri1cXHUwMzgzIFxcdTAzOEIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwMzhEIFxcdTAzQTIgXFx1MDNDRiBcXHUwM0Y3LVxcdTAzRkYgXFx1MDQ4NyBcXHUwNENGIFxcdTA0RjYtXFx1MDRGNyIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTA0RkEtXFx1MDRGRiBcXHUwNTEwLVxcdTA1MzAgXFx1MDU1Ny1cXHUwNTU4IFxcdTA1NjAgXFx1MDU4OCBcXHUwNThCIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MDU5MCBcXHUwNUEyIFxcdTA1QkEgXFx1MDVDNS1cXHUwNUNGIFxcdTA1RUItXFx1MDVFRiBcXHUwNUY1LVxcdTA2MEIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwNjBELVxcdTA2MUEgXFx1MDYxQy1cXHUwNjFFIFxcdTA2MjAgXFx1MDYzQi1cXHUwNjNGIFxcdTA2NTYtXFx1MDY1RiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTA2RUUtXFx1MDZFRiBcXHUwNkZGIFxcdTA3MEUgXFx1MDcyRC1cXHUwNzJGIFxcdTA3NEItXFx1MDc3RiBcXHUwN0IyIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MDkwMCBcXHUwOTA0IFxcdTA5M0EtXFx1MDkzQiBcXHUwOTRFLVxcdTA5NEYgXFx1MDk1NS1cXHUwOTU3IFxcdTA5NzEiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwOTgwIFxcdTA5ODQgXFx1MDk4RC1cXHUwOThFIFxcdTA5OTEtXFx1MDk5MiBcXHUwOUE5IFxcdTA5QjEgXFx1MDlCMyIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTA5QjUgXFx1MDlCQS1cXHUwOUJCIFxcdTA5QkQgXFx1MDlDNS1cXHUwOUM2IFxcdTA5QzktXFx1MDlDQSBcXHUwOUNFIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MDlENiBcXHUwOUQ4LVxcdTA5REIgXFx1MDlERSBcXHUwOUU0LVxcdTA5RTUgXFx1MDlGQi1cXHUwQTAxIFxcdTBBMDMiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwQTA0IFxcdTBBMEItXFx1MEEwRSBcXHUwQTExLVxcdTBBMTIgXFx1MEEyOSBcXHUwQTMxIFxcdTBBMzQgXFx1MEEzNyIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBBM0EtXFx1MEEzQiBcXHUwQTNEIFxcdTBBNDMtXFx1MEE0NiBcXHUwQTQ5LVxcdTBBNEEgXFx1MEE0RS1cXHUwQTU4IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEE1RCBcXHUwQTVGLVxcdTBBNjUgXFx1MEE3NS1cXHUwQTgwIFxcdTBBODQgXFx1MEE4QyBcXHUwQThFIFxcdTBBOTIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQUE5IFxcdTBBQjEgXFx1MEFCNCBcXHUwQUJBLVxcdTBBQkIgXFx1MEFDNiBcXHUwQUNBIFxcdTBBQ0UtXFx1MEFDRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBBRDEtXFx1MEFERiBcXHUwQUUxLVxcdTBBRTUgXFx1MEFGMC1cXHUwQjAwIFxcdTBCMDQgXFx1MEIwRC1cXHUwQjBFIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEIxMS1cXHUwQjEyIFxcdTBCMjkgXFx1MEIzMSBcXHUwQjM0LVxcdTBCMzUgXFx1MEIzQS1cXHUwQjNCIFxcdTBCNDQiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwQjQ2IFxcdTBCNDktXFx1MEI0QSBcXHUwQjRFLVxcdTBCNTUgXFx1MEI1OC1cXHUwQjVCIFxcdTBCNUUgXFx1MEI2MiIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTBCNjUgXFx1MEI3MS1cXHUwQjgxIFxcdTBCODQgXFx1MEI4Qi1cXHUwQjhEIFxcdTBCOTEgXFx1MEI5Ni1cXHUwQjk4IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEI5QiBcXHUwQjlEIFxcdTBCQTAtXFx1MEJBMiBcXHUwQkE1LVxcdTBCQTcgXFx1MEJBQi1cXHUwQkFEIFxcdTBCQjYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQkJBLVxcdTBCQkQgXFx1MEJDMy1cXHUwQkM1IFxcdTBCQzkgXFx1MEJDRS1cXHUwQkQ2IFxcdTBCRDgtXFx1MEJFNiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBCRjMtXFx1MEMwMCBcXHUwQzA0IFxcdTBDMEQgXFx1MEMxMSBcXHUwQzI5IFxcdTBDMzQgXFx1MEMzQS1cXHUwQzNEIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEM0NSBcXHUwQzQ5IFxcdTBDNEUtXFx1MEM1NCBcXHUwQzU3LVxcdTBDNUYgXFx1MEM2Mi1cXHUwQzY1IFxcdTBDNzAiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwQzgxIFxcdTBDODQgXFx1MEM4RCBcXHUwQzkxIFxcdTBDQTkgXFx1MENCNCBcXHUwQ0JBLVxcdTBDQkQgXFx1MENDNSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBDQzkgXFx1MENDRS1cXHUwQ0Q0IFxcdTBDRDctXFx1MENERCBcXHUwQ0RGIFxcdTBDRTItXFx1MENFNSBcXHUwQ0YwIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MEQwMSBcXHUwRDA0IFxcdTBEMEQgXFx1MEQxMSBcXHUwRDI5IFxcdTBEM0EtXFx1MEQzRCBcXHUwRDQ0LVxcdTBENDUiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwRDQ5IFxcdTBENEUtXFx1MEQ1NiBcXHUwRDU4LVxcdTBENUYgXFx1MEQ2Mi1cXHUwRDY1IFxcdTBENzAtXFx1MEQ4MSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBEODQgXFx1MEQ5Ny1cXHUwRDk5IFxcdTBEQjIgXFx1MERCQyBcXHUwREJFLVxcdTBEQkYgXFx1MERDNy1cXHUwREM5IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MERDQi1cXHUwRENFIFxcdTBERDUgXFx1MERENyBcXHUwREUwLVxcdTBERjEgXFx1MERGNS1cXHUwRTAwIFxcdTBFM0IiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwRTNFIFxcdTBFNUMtXFx1MEU4MCBcXHUwRTgzIFxcdTBFODUtXFx1MEU4NiBcXHUwRTg5IFxcdTBFOEItXFx1MEU4QyIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBFOEUtXFx1MEU5MyBcXHUwRTk4IFxcdTBFQTAgXFx1MEVBNCBcXHUwRUE2IFxcdTBFQTgtXFx1MEVBOSBcXHUwRUFDIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEVCQSBcXHUwRUJFLVxcdTBFQkYgXFx1MEVDNSBcXHUwRUM3IFxcdTBFQ0UtXFx1MEVDRiBcXHUwRURBLVxcdTBFREIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwRURFLVxcdTBFRkYgXFx1MEY0OCBcXHUwRjZCLVxcdTBGNzAgXFx1MEY4Qy1cXHUwRjhGIFxcdTBGOTggXFx1MEZCRCIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBGQ0QtXFx1MEZDRSBcXHUwRkQwLVxcdTBGRkYgXFx1MTAyMiBcXHUxMDI4IFxcdTEwMkIgXFx1MTAzMy1cXHUxMDM1IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MTAzQS1cXHUxMDNGIFxcdTEwNUEtXFx1MTA5RiBcXHUxMEM2LVxcdTEwQ0YgXFx1MTBGOS1cXHUxMEZBIFxcdTEwRkMiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUxMEZGIFxcdTExNUEtXFx1MTE1RSBcXHUxMUEzLVxcdTExQTcgXFx1MTFGQS1cXHUxMUZGIFxcdTEyMDcgXFx1MTI0NyIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTEyNDkgXFx1MTI0RS1cXHUxMjRGIFxcdTEyNTcgXFx1MTI1OSBcXHUxMjVFLVxcdTEyNUYgXFx1MTI4NyBcXHUxMjg5IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MTI4RS1cXHUxMjhGIFxcdTEyQUYgXFx1MTJCMSBcXHUxMkI2LVxcdTEyQjcgXFx1MTJCRiBcXHUxMkMxIFxcdTEyQzYiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUxMkM3IFxcdTEyQ0YgXFx1MTJENyBcXHUxMkVGIFxcdTEzMEYgXFx1MTMxMSBcXHUxMzE2LVxcdTEzMTcgXFx1MTMxRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTEzNDcgXFx1MTM1Qi1cXHUxMzYwIFxcdTEzN0QtXFx1MTM5RiBcXHUxM0Y1LVxcdTE0MDAgXFx1MTY3Ny1cXHUxNjdGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MTY5RC1cXHUxNjlGIFxcdTE2RjEtXFx1MTZGRiBcXHUxNzBEIFxcdTE3MTUtXFx1MTcxRiBcXHUxNzM3LVxcdTE3M0YiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUxNzU0LVxcdTE3NUYgXFx1MTc2RCBcXHUxNzcxIFxcdTE3NzQtXFx1MTc3RiBcXHUxN0RELVxcdTE3REYgXFx1MTdFQSIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTE3RkYgXFx1MTgwRiBcXHUxODFBLVxcdTE4MUYgXFx1MTg3OC1cXHUxODdGIFxcdTE4QUEtXFx1MURGRiBcXHUxRTlDIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MUU5RiBcXHUxRUZBLVxcdTFFRkYgXFx1MUYxNi1cXHUxRjE3IFxcdTFGMUUtXFx1MUYxRiBcXHUxRjQ2LVxcdTFGNDciICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUxRjRFLVxcdTFGNEYgXFx1MUY1OCBcXHUxRjVBIFxcdTFGNUMgXFx1MUY1RSBcXHUxRjdFLVxcdTFGN0YgXFx1MUZCNSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTFGQzUgXFx1MUZENC1cXHUxRkQ1IFxcdTFGREMgXFx1MUZGMC1cXHUxRkYxIFxcdTFGRjUgXFx1MUZGRiBcXHUyMDUzIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MjA1NiBcXHUyMDU4LVxcdTIwNUUgXFx1MjA2NC1cXHUyMDY5IFxcdTIwNzItXFx1MjA3MyBcXHUyMDhGLVxcdTIwOUYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUyMEIyLVxcdTIwQ0YgXFx1MjBFQi1cXHUyMEZGIFxcdTIxM0ItXFx1MjEzQyBcXHUyMTRDLVxcdTIxNTIgXFx1MjE4NCIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTIxOEYgXFx1MjNDRi1cXHUyM0ZGIFxcdTI0MjctXFx1MjQzRiBcXHUyNDRCLVxcdTI0NUYgXFx1MjRGRiBcXHUyNjE0IiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MjYxNSBcXHUyNjE4IFxcdTI2N0UtXFx1MjY3RiBcXHUyNjhBLVxcdTI3MDAgXFx1MjcwNSBcXHUyNzBBLVxcdTI3MEIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUyNzI4IFxcdTI3NEMgXFx1Mjc0RSBcXHUyNzUzLVxcdTI3NTUgXFx1Mjc1NyBcXHUyNzVGLVxcdTI3NjAgXFx1Mjc5NSIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTI3OTcgXFx1MjdCMCBcXHUyN0JGLVxcdTI3Q0YgXFx1MjdFQy1cXHUyN0VGIFxcdTJCMDAtXFx1MkU3RiBcXHUyRTlBIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MkVGNC1cXHUyRUZGIFxcdTJGRDYtXFx1MkZFRiBcXHUyRkZDLVxcdTJGRkYgXFx1MzA0MCBcXHUzMDk3LVxcdTMwOTgiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUzMTAwLVxcdTMxMDQgXFx1MzEyRC1cXHUzMTMwIFxcdTMxOEYgXFx1MzFCOC1cXHUzMUVGIFxcdTMyMUQtXFx1MzIxRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTMyNDQtXFx1MzI1MCBcXHUzMjdDLVxcdTMyN0UgXFx1MzJDQy1cXHUzMkNGIFxcdTMyRkYgXFx1MzM3Ny1cXHUzMzdBIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MzNERS1cXHUzM0RGIFxcdTMzRkYgXFx1NERCNi1cXHU0REZGIFxcdTlGQTYtXFx1OUZGRiBcXHVBNDhELVxcdUE0OEYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHVBNEM3LVxcdUFCRkYgXFx1RDdBNC1cXHVEN0ZGIFxcdUZBMkUtXFx1RkEyRiBcXHVGQTZCLVxcdUZBRkYgXFx1RkIwNyIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdUZCMTIgXFx1RkIxOC1cXHVGQjFDIFxcdUZCMzcgXFx1RkIzRCBcXHVGQjNGIFxcdUZCNDIgXFx1RkI0NSBcXHVGQkIyIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1RkJEMiBcXHVGRDQwLVxcdUZENEYgXFx1RkQ5MC1cXHVGRDkxIFxcdUZEQzgtXFx1RkRDRiBcXHVGREZELVxcdUZERkYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHVGRTEwLVxcdUZFMUYgXFx1RkUyNC1cXHVGRTJGIFxcdUZFNDctXFx1RkU0OCBcXHVGRTUzIFxcdUZFNjcgXFx1RkU2QyIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdUZFNkYgXFx1RkU3NSBcXHVGRUZELVxcdUZFRkUgXFx1RkYwMCBcXHVGRkJGLVxcdUZGQzEgXFx1RkZDOC1cXHVGRkM5IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1RkZEMC1cXHVGRkQxIFxcdUZGRDgtXFx1RkZEOSBcXHVGRkRELVxcdUZGREYgXFx1RkZFNyBcXHVGRkVGLVxcdUZGRjgiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXFUwMDAxMDAwMC1cXFUwMDAxMDJGRiBcXFUwMDAxMDMxRiBcXFUwMDAxMDMyNC1cXFUwMDAxMDMyRiBcXFUwIiArCisgICAgICAgICAgICAgICAgICAgICIwMDEwMzRCLVxcVTAwMDEwM0ZGIFxcVTAwMDEwNDI2LVxcVTAwMDEwNDI3IFxcVTAwMDEwNDRFLVxcVTAwMDFDIiArCisgICAgICAgICAgICAgICAgICAgICJGRkYgXFxVMDAwMUQwRjYtXFxVMDAwMUQwRkYgXFxVMDAwMUQxMjctXFxVMDAwMUQxMjkgXFxVMDAwMUQxREUtIiArCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDNGRiBcXFUwMDAxRDQ1NSBcXFUwMDAxRDQ5RCBcXFUwMDAxRDRBMC1cXFUwMDAxRDRBMSBcXFUwMCIgKworICAgICAgICAgICAgICAgICAgICAiMDFENEEzLVxcVTAwMDFENEE0IFxcVTAwMDFENEE3LVxcVTAwMDFENEE4IFxcVTAwMDFENEFEIFxcVTAwMDFENCIgKworICAgICAgICAgICAgICAgICAgICAiQkEgXFxVMDAwMUQ0QkMgXFxVMDAwMUQ0QzEgXFxVMDAwMUQ0QzQgXFxVMDAwMUQ1MDYgXFxVMDAwMUQ1MEItXFxVIiArCisgICAgICAgICAgICAgICAgICAgICIwMDAxRDUwQyBcXFUwMDAxRDUxNSBcXFUwMDAxRDUxRCBcXFUwMDAxRDUzQSBcXFUwMDAxRDUzRiBcXFUwMDAxIiArCisgICAgICAgICAgICAgICAgICAgICJENTQ1IFxcVTAwMDFENTQ3LVxcVTAwMDFENTQ5IFxcVTAwMDFENTUxIFxcVTAwMDFENkE0LVxcVTAwMDFENkE3IiArCisgICAgICAgICAgICAgICAgICAgICIgXFxVMDAwMUQ3Q0EtXFxVMDAwMUQ3Q0QgXFxVMDAwMUQ4MDAtXFxVMDAwMUZGRkQgXFxVMDAwMkE2RDctXFxVMCIgKworICAgICAgICAgICAgICAgICAgICAiMDAyRjdGRiBcXFUwMDAyRkExRS1cXFUwMDAyRkZGRCBcXFUwMDAzMDAwMC1cXFUwMDAzRkZGRCBcXFUwMDA0MCIgKworICAgICAgICAgICAgICAgICAgICAiMDAwLVxcVTAwMDRGRkZEIFxcVTAwMDUwMDAwLVxcVTAwMDVGRkZEIFxcVTAwMDYwMDAwLVxcVTAwMDZGRkZEICIgKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwNzAwMDAtXFxVMDAwN0ZGRkQgXFxVMDAwODAwMDAtXFxVMDAwOEZGRkQgXFxVMDAwOTAwMDAtXFxVMDAiICsKKyAgICAgICAgICAgICAgICAgICAgIjA5RkZGRCBcXFUwMDBBMDAwMC1cXFUwMDBBRkZGRCBcXFUwMDBCMDAwMC1cXFUwMDBCRkZGRCBcXFUwMDBDMDAiICsKKyAgICAgICAgICAgICAgICAgICAgIjAwLVxcVTAwMENGRkZEIFxcVTAwMEQwMDAwLVxcVTAwMERGRkZEIFxcVTAwMEUwMDAwIFxcVTAwMEUwMDAyLVxcVSIgKworICAgICAgICAgICAgICAgICAgICAiMDAwRTAwMUYgXFxVMDAwRTAwODAtXFxVMDAwRUZGRkQgXSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTkZTNFN0cmluZ1ByZXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL05GUzRTdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZjMDkyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL05GUzRTdHJpbmdQcmVwLmphdmEKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXA7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUaGlzIGlzIGEgZHVtYiBpbXBsZW1lbnRhdGlvbiBvZiBORlM0IHByb2ZpbGVzLiBJdCBpcyBhIGRpcmVjdCBwb3J0IG9mCisgKiBDIGNvZGUsIGRvZXMgbm90IHVzZSBPYmplY3QgT3JpZW50ZWQgcHJpbmNpcGxlcy4gUXVpY2sgYW5kIERpcnR5IGltcGxlbWVudGF0aW9uCisgKiBmb3IgdGVzdGluZy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE5GUzRTdHJpbmdQcmVwIHsKKworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjc3MgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjc2kgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNjaXMgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNteHAgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuZnNteHMgPSBudWxsOworICAgIC8vc2luZ2xldG9uIGluc3RhbmNlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTkZTNFN0cmluZ1ByZXAgcHJlcCA9IG5ldyBORlM0U3RyaW5nUHJlcCgpOworICAgIAorCisgICAgcHJpdmF0ZSAgTkZTNFN0cmluZ1ByZXAgKCl7CisgICAgICAgIENsYXNzTG9hZGVyIGxvYWRlciA9IE5GUzRTdHJpbmdQcmVwLmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNjc2lGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc2NzaS5zcHAiKTsKKyAgICAgICAgICAgIG5mc2NzaSA9IG5ldyBTdHJpbmdQcmVwKG5mc2NzaUZpbGUpOworICAgICAgICAgICAgbmZzY3NpRmlsZS5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJbnB1dFN0cmVhbSAgbmZzY3NzRmlsZSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS9uZnNjc3Muc3BwIik7CisgICAgICAgICAgICBuZnNjc3MgPSBuZXcgU3RyaW5nUHJlcChuZnNjc3NGaWxlKTsKKyAgICAgICAgICAgIG5mc2Nzc0ZpbGUuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW5wdXRTdHJlYW0gIG5mc2Npc0ZpbGUgPSBsb2FkZXIuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvbmZzY2lzLnNwcCIpOworICAgICAgICAgICAgbmZzY2lzID0gbmV3IFN0cmluZ1ByZXAobmZzY2lzRmlsZSk7CisgICAgICAgICAgICBuZnNjaXNGaWxlLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNteHBGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc214cC5zcHAiKTsKKyAgICAgICAgICAgIG5mc214cCA9IG5ldyBTdHJpbmdQcmVwKG5mc214cEZpbGUpOworICAgICAgICAgICAgbmZzbXhwRmlsZS5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJbnB1dFN0cmVhbSAgbmZzbXhzRmlsZSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS9uZnNteHMuc3BwIik7CisgICAgICAgICAgICBuZnNteHMgPSBuZXcgU3RyaW5nUHJlcChuZnNteHNGaWxlKTsKKyAgICAgICAgICAgIG5mc214c0ZpbGUuY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCksIiIsIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBwcmVwYXJlKGJ5dGVbXSBzcmMsIFN0cmluZ1ByZXAgcHJlcCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc3JjLCAiVVRGLTgiKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMpOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gcHJlcC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5ERUZBVUxUKTsKKyAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpLmdldEJ5dGVzKCJVVEYtOCIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBjc19wcmVwYXJlKGJ5dGVbXSBzcmMsIGJvb2xlYW4gaXNDYXNlU2Vuc2l0aXZlKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIGlmKGlzQ2FzZVNlbnNpdGl2ZSA9PSB0cnVlICl7CisgICAgICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY3NzKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY3NpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBjaXNfcHJlcGFyZShieXRlW10gc3JjKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMsIHByZXAubmZzY2lzKTsKKyAgICB9ICAKKyAgICAKKyAgICAvKiBzb3J0ZWQgYXJyYXkgZm9yIGJpbmFyeSBzZWFyY2gqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNwZWNpYWxfcHJlZml4ZXM9eworICAgICAgICAiQU5PTllNT1VTIiwgICAgCisgICAgICAgICJBVVRIRU5USUNBVEVEIiwKKyAgICAgICAgIkJBVENIIiwgCisgICAgICAgICJESUFMVVAiLCAKKyAgICAgICAgIkVWRVJZT05FIiwgCisgICAgICAgICJHUk9VUCIsCisgICAgICAgICJJTlRFUkFDVElWRSIsICAKKyAgICAgICAgIk5FVFdPUksiLCAKKyAgICAgICAgIk9XTkVSIiwKKyAgICB9OworCisKKyAgICAvKiBiaW5hcnkgc2VhcmNoIHRoZSBzb3J0ZWQgYXJyYXkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZFN0cmluZ0luZGV4KFN0cmluZ1tdIHNvcnRlZEFycixTdHJpbmcgdGFyZ2V0KXsKKworICAgICAgICBpbnQgbGVmdCwgbWlkZGxlLCByaWdodCxyYzsKKworICAgICAgICBsZWZ0ID0wOworICAgICAgICByaWdodD0gc29ydGVkQXJyLmxlbmd0aC0xOworCisgICAgICAgIHdoaWxlKGxlZnQgPD0gcmlnaHQpeworICAgICAgICAgICAgbWlkZGxlID0gKGxlZnQrcmlnaHQpLzI7CisgICAgICAgICAgICByYz0gc29ydGVkQXJyW21pZGRsZV0uY29tcGFyZVRvKHRhcmdldCk7CisgICAgICAgIAorICAgICAgICAgICAgaWYocmM8MCl7CisgICAgICAgICAgICAgICAgbGVmdCA9IG1pZGRsZSsxOworICAgICAgICAgICAgfWVsc2UgaWYocmMgPjApeworICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkZGxlIC0xOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pZGRsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQVRfU0lHTiA9ICdAJzsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBtaXhlZF9wcmVwYXJlKGJ5dGVbXSBzcmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzcmMsICJVVEYtOCIpOworICAgICAgICBpbnQgaW5kZXggPSBzLmluZGV4T2YoQVRfU0lHTik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgaWYoaW5kZXggPiAtMSl7CisgICAgICAgICAgICAvKiBzcGVjaWFsIHByZWZpeGVzIG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IHN1ZmZpeGVzISAqLworICAgICAgICAgICAgU3RyaW5nIHByZWZpeFN0cmluZyA9IHMuc3Vic3RyaW5nKDAsaW5kZXgpOworICAgICAgICAgICAgaW50IGk9IGZpbmRTdHJpbmdJbmRleChzcGVjaWFsX3ByZWZpeGVzLCBwcmVmaXhTdHJpbmcpOworICAgICAgICAgICAgU3RyaW5nIHN1ZmZpeFN0cmluZyA9IHMuc3Vic3RyaW5nKGluZGV4KzEsIHMubGVuZ3RoKCkpOworICAgICAgICAgICAgaWYoaT4tMSAmJiAhc3VmZml4U3RyaW5nLmVxdWFscygiIikpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlN1ZmZpeCBmb2xsb3dpbmcgYSBzcGVjaWFsIGluZGV4IiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklOVkFMSURfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgcHJlZml4ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHByZWZpeFN0cmluZyk7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3Igc3VmZml4ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHN1ZmZpeFN0cmluZyk7CisgICAgICAgICAgICBvdXQuYXBwZW5kKHByZXAubmZzbXhwLnByZXBhcmUocHJlZml4LFN0cmluZ1ByZXAuREVGQVVMVCkpOworICAgICAgICAgICAgb3V0LmFwcGVuZChBVF9TSUdOKTsgLy8gYWRkIHRoZSBkZWxpbWl0ZXIKKyAgICAgICAgICAgIG91dC5hcHBlbmQocHJlcC5uZnNteHMucHJlcGFyZShzdWZmaXgsIFN0cmluZ1ByZXAuREVGQVVMVCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMpOworICAgICAgICAgICAgb3V0LmFwcGVuZChwcmVwLm5mc214cC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5ERUZBVUxUKSk7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKS5nZXRCeXRlcygiVVRGLTgiKTsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9OYW1lUHJlcFRyYW5zZm9ybS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTmFtZVByZXBUcmFuc2Zvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzZjNzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTmFtZVByZXBUcmFuc2Zvcm0uamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgTmFtZVByZXBUcmFuc2Zvcm0geworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE5hbWVQcmVwVHJhbnNmb3JtIHRyYW5zZm9ybSA9IG5ldyBOYW1lUHJlcFRyYW5zZm9ybSgpOworICAgIAorICAgIHByaXZhdGUgVW5pY29kZVNldCBsYWJlbFNlcGFyYXRvclNldDsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgcHJvaGliaXRlZFNldDsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgdW5hc3NpZ25lZFNldDsKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIG1hcFRyYW5zZm9ybTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEID0gMTsKKyAgICAKKyAgICBwcml2YXRlIE5hbWVQcmVwVHJhbnNmb3JtKCl7CisgICAgICAgIC8vIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAgICAvLyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsImlkbmFfcnVsZXMiLCB0cnVlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmNyZWF0ZUJ1bmRsZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJpZG5hX3J1bGVzIiwgTmFtZVByZXBUcmFuc2Zvcm0uY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKSk7CisgICAgICAgIFN0cmluZyAgbWFwUnVsZXMgICAgICA9IGJ1bmRsZS5nZXRTdHJpbmcoIk1hcE5vTm9ybWFsaXphdGlvbiIpOworICAgICAgICBtYXBSdWxlcyAgICAgICAgICAgICArPSBidW5kbGUuZ2V0U3RyaW5nKCJNYXBORktDIik7CisgICAgICAgIG1hcFRyYW5zZm9ybSAgICAgICAgICA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiQ2FzZU1hcCIsbWFwUnVsZXMsVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxhYmVsU2VwYXJhdG9yU2V0ICAgICA9IG5ldyBVbmljb2RlU2V0KGJ1bmRsZS5nZXRTdHJpbmcoIkxhYmVsU2VwYXJhdG9yU2V0IikpOworICAgICAgICBwcm9oaWJpdGVkU2V0ICAgICAgICAgPSBuZXcgVW5pY29kZVNldChidW5kbGUuZ2V0U3RyaW5nKCJQcm9oaWJpdGVkU2V0IikpOworICAgICAgICB1bmFzc2lnbmVkU2V0ICAgICAgICAgPSBuZXcgVW5pY29kZVNldChidW5kbGUuZ2V0U3RyaW5nKCJVbmFzc2lnbmVkU2V0IikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE5hbWVQcmVwVHJhbnNmb3JtIGdldEluc3RhbmNlKCl7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm07CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xhYmVsU2VwYXJhdG9yKGludCBjaCl7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm0ubGFiZWxTZXBhcmF0b3JTZXQuY29udGFpbnMoY2gpOworICAgIH0KKworICAgICAvKgorICAgICAgIDEpIE1hcCAtLSBGb3IgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCBjaGVjayBpZiBpdCBoYXMgYSBtYXBwaW5nCisgICAgICAgICAgYW5kLCBpZiBzbywgcmVwbGFjZSBpdCB3aXRoIGl0cyBtYXBwaW5nLiAgCisKKyAgICAgICAyKSBOb3JtYWxpemUgLS0gUG9zc2libHkgbm9ybWFsaXplIHRoZSByZXN1bHQgb2Ygc3RlcCAxIHVzaW5nIFVuaWNvZGUKKyAgICAgICAgICBub3JtYWxpemF0aW9uLiAKKworICAgICAgIDMpIFByb2hpYml0IC0tIENoZWNrIGZvciBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgYWxsb3dlZCBpbiB0aGUKKyAgICAgICAgICBvdXRwdXQuICBJZiBhbnkgYXJlIGZvdW5kLCByZXR1cm4gYW4gZXJyb3IuICAKKworICAgICAgIDQpIENoZWNrIGJpZGkgLS0gUG9zc2libHkgY2hlY2sgZm9yIHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycywgYW5kIGlmCisgICAgICAgICAgYW55IGFyZSBmb3VuZCwgbWFrZSBzdXJlIHRoYXQgdGhlIHdob2xlIHN0cmluZyBzYXRpc2ZpZXMgdGhlCisgICAgICAgICAgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MuICBJZiB0aGUgc3RyaW5nIGRvZXMgbm90CisgICAgICAgICAgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MsIHJldHVybiBhbgorICAgICAgICAgIGVycm9yLiAgCisgICAgICAgICAgW1VuaWNvZGUzLjJdIGRlZmluZXMgc2V2ZXJhbCBiaWRpcmVjdGlvbmFsIGNhdGVnb3JpZXM7IGVhY2ggY2hhcmFjdGVyCisgICAgICAgICAgIGhhcyBvbmUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSBhc3NpZ25lZCB0byBpdC4gIEZvciB0aGUgcHVycG9zZXMgb2YKKyAgICAgICAgICAgdGhlIHJlcXVpcmVtZW50cyBiZWxvdywgYW4gIlJhbmRBTENhdCBjaGFyYWN0ZXIiIGlzIGEgY2hhcmFjdGVyIHRoYXQKKyAgICAgICAgICAgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yaWVzICJSIiBvciAiQUwiOyBhbiAiTENhdCBjaGFyYWN0ZXIiCisgICAgICAgICAgIGlzIGEgY2hhcmFjdGVyIHRoYXQgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSAiTCIuICBOb3RlCisKKworICAgICAgICAgICB0aGF0IHRoZXJlIGFyZSBtYW55IGNoYXJhY3RlcnMgd2hpY2ggZmFsbCBpbiBuZWl0aGVyIG9mIHRoZSBhYm92ZQorICAgICAgICAgICBkZWZpbml0aW9uczsgTGF0aW4gZGlnaXRzICg8VSswMDMwPiB0aHJvdWdoIDxVKzAwMzk+KSBhcmUgZXhhbXBsZXMgb2YKKyAgICAgICAgICAgdGhpcyBiZWNhdXNlIHRoZXkgaGF2ZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3J5ICJFTiIuCisKKyAgICAgICAgICAgSW4gYW55IHByb2ZpbGUgdGhhdCBzcGVjaWZpZXMgYmlkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaGFuZGxpbmcsIGFsbAorICAgICAgICAgICB0aHJlZSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBNVVNUIGJlIG1ldDoKKworICAgICAgICAgICAxKSBUaGUgY2hhcmFjdGVycyBpbiBzZWN0aW9uIDUuOCBNVVNUIGJlIHByb2hpYml0ZWQuCisKKyAgICAgICAgICAgMikgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIHRoZSBzdHJpbmcgTVVTVCBOT1QKKyAgICAgICAgICAgICAgY29udGFpbiBhbnkgTENhdCBjaGFyYWN0ZXIuCisKKyAgICAgICAgICAgMykgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIGEgUmFuZEFMQ2F0CisgICAgICAgICAgICAgIGNoYXJhY3RlciBNVVNUIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZywgYW5kIGEKKyAgICAgICAgICAgICAgUmFuZEFMQ2F0IGNoYXJhY3RlciBNVVNUIGJlIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nLgorICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBwcmVwYXJlKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICAgcmV0dXJuIHByZXBhcmUoc3JjLmdldFRleHQoKSxvcHRpb25zKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgbWFwICggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIC8vIG1hcCAKKyAgICAgICAgYm9vbGVhbiBhbGxvd1VuYXNzaWduZWQgPSAgKChvcHRpb25zICYgQUxMT1dfVU5BU1NJR05FRCk+MCk7CisgICAgICAgIFN0cmluZyBjYXNlTWFwT3V0ID0gdHJhbnNmb3JtLm1hcFRyYW5zZm9ybS50cmFuc2xpdGVyYXRlKHNyYyk7ICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShjYXNlTWFwT3V0KTsKKyAgICAgICAgaW50IGNoOworICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0Q29kZVBvaW50KCkpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKHRyYW5zZm9ybS51bmFzc2lnbmVkU2V0LmNvbnRhaW5zKGNoKT09dHJ1ZSAmJiBhbGxvd1VuYXNzaWduZWQgPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiQW4gdW5hc3NpZ25lZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhc2VNYXBPdXQ7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgcHJlcGFyZShTdHJpbmcgc3JjLGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworIAorICAgICAgICBpbnQgY2g7CisgICAgICAgIFN0cmluZyBtYXBPdXQgPSBtYXAoc3JjLG9wdGlvbnMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShtYXBPdXQpOworCisgICAgICAgIGludCBkaXJlY3Rpb249VUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVCwKKyAgICAgICAgICAgIGZpcnN0Q2hhckRpcj1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5UOyAgICAKKyAgICAgICAgaW50IHJ0bFBvcz0tMSwgbHRyUG9zPS0xOworICAgICAgICBib29sZWFuIHJpZ2h0VG9MZWZ0PWZhbHNlLCBsZWZ0VG9SaWdodD1mYWxzZTsKKyAgICAgICAgICAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisKKworICAgICAgICAgICAgaWYodHJhbnNmb3JtLnByb2hpYml0ZWRTZXQuY29udGFpbnMoY2gpPT10cnVlICYmIGNoIT0weDAwMjApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkEgcHJvaGliaXRlZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlci5nZXRUZXh0KCksaXRlci5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlyZWN0aW9uID0gVUNoYXJhY3Rlci5nZXREaXJlY3Rpb24oY2gpOworICAgICAgICAgICAgaWYoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQpeworICAgICAgICAgICAgICAgIGZpcnN0Q2hhckRpciA9IGRpcmVjdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQpeworICAgICAgICAgICAgICAgIGxlZnRUb1JpZ2h0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsdHJQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpeworICAgICAgICAgICAgICAgIHJpZ2h0VG9MZWZ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBydGxQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgCisKKyAgICAgICAgLy8gc2F0aXNmeSAyCisgICAgICAgIGlmKCBsZWZ0VG9SaWdodCA9PSB0cnVlICYmIHJpZ2h0VG9MZWZ0ID09IHRydWUpeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHJ1bGVzIGZvciBCaURpIGNvZGUgcG9pbnRzLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkNIRUNLX0JJRElfRVJST1IsaXRlci5nZXRUZXh0KCksKHJ0bFBvcz5sdHJQb3MpID8gcnRsUG9zIDogbHRyUG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vc2F0aXNmeSAzCisgICAgICAgIGlmKCByaWdodFRvTGVmdCA9PSB0cnVlICYmIAorICAgICAgICAgICAgISgoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBmaXJzdENoYXJEaXIgPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQykgJiYKKyAgICAgICAgICAgIChkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIHx8IGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDKSkKKyAgICAgICAgICAgKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBydWxlcyBmb3IgQmlEaSBjb2RlIHBvaW50cy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwocnRsUG9zPmx0clBvcykgPyBydGxQb3MgOiBsdHJQb3MpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcihtYXBPdXQpOworCisgICAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9QdW55Y29kZVJlZmVyZW5jZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvUHVueWNvZGVSZWZlcmVuY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWJhOGI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvUHVueWNvZGVSZWZlcmVuY2UuamF2YQpAQCAtMCwwICsxLDM4MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvKgorICogCitEaXNjbGFpbWVyIGFuZCBsaWNlbnNlCisKKyAgICBSZWdhcmRpbmcgdGhpcyBlbnRpcmUgZG9jdW1lbnQgb3IgYW55IHBvcnRpb24gb2YgaXQgKGluY2x1ZGluZworICAgIHRoZSBwc2V1ZG9jb2RlIGFuZCBDIGNvZGUpLCB0aGUgYXV0aG9yIG1ha2VzIG5vIGd1YXJhbnRlZXMgYW5kCisgICAgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBhbnkgZGFtYWdlIHJlc3VsdGluZyBmcm9tIGl0cyB1c2UuICBUaGUKKyAgICBhdXRob3IgZ3JhbnRzIGlycmV2b2NhYmxlIHBlcm1pc3Npb24gdG8gYW55b25lIHRvIHVzZSwgbW9kaWZ5LAorICAgIGFuZCBkaXN0cmlidXRlIGl0IGluIGFueSB3YXkgdGhhdCBkb2VzIG5vdCBkaW1pbmlzaCB0aGUgcmlnaHRzCisgICAgb2YgYW55b25lIGVsc2UgdG8gdXNlLCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGl0LCBwcm92aWRlZCB0aGF0CisgICAgcmVkaXN0cmlidXRlZCBkZXJpdmF0aXZlIHdvcmtzIGRvIG5vdCBjb250YWluIG1pc2xlYWRpbmcgYXV0aG9yIG9yCisgICAgdmVyc2lvbiBpbmZvcm1hdGlvbi4gIERlcml2YXRpdmUgd29ya3MgbmVlZCBub3QgYmUgbGljZW5zZWQgdW5kZXIKKyAgICBzaW1pbGFyIHRlcm1zLgorCitwdW55Y29kZS5jIDAuNC4wICgyMDAxLU5vdi0xNy1TYXQpCitodHRwOi8vd3d3LmNzLmJlcmtlbGV5LmVkdS9+YW1jL2lkbi8KK0FkYW0gTS4gQ29zdGVsbG8KK2h0dHA6Ly93d3cubmljZW1pY2UubmV0L2FtYy8KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkaXJlY3QgcG9ydCBvZiBDIGNvZGUgaW4gdGhlIFJGQworICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBQdW55Y29kZVJlZmVyZW5jZSB7CisgICAgLyoqKiBwdW55Y29kZSBzdGF0dXMgY29kZXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwdW55Y29kZV9zdWNjZXNzPTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfYmFkX2lucHV0PTE7ICAgLyogSW5wdXQgaXMgaW52YWxpZC4gICAgICAgICAgICAgICAgICAgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfYmlnX291dHB1dD0yOyAgLyogT3V0cHV0IHdvdWxkIGV4Y2VlZCB0aGUgc3BhY2UgcHJvdmlkZWQuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHVueWNvZGVfb3ZlcmZsb3cgPTM7ICAgIC8qIElucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MuICAqLworICAgIAorICAgIC8qKiogQm9vdHN0cmluZyBwYXJhbWV0ZXJzIGZvciBQdW55Y29kZSAqKiovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGJhc2UgPSAzNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdG1pbiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRtYXggPSAyNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2tldyA9IDM4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkYW1wID0gNzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbml0aWFsX2JpYXMgPSA3MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5pdGlhbF9uID0gMHg4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZGVsaW1pdGVyID0gMHgyRDsKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisgICAgCisgICAgLyogYmFzaWMoY3ApIHRlc3RzIHdoZXRoZXIgY3AgaXMgYSBiYXNpYyBjb2RlIHBvaW50OiAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gYmFzaWMoaW50IGNwKXsKKyAgICAgICAgcmV0dXJuIChjaGFyKShjcCkgPCAweDgwOworICAgIH0KKworICAgIC8qIGRlbGltKGNwKSB0ZXN0cyB3aGV0aGVyIGNwIGlzIGEgZGVsaW1pdGVyOiAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZGVsaW0oaW50IGNwKXsKKyAgICAgICAgcmV0dXJuICgoY3ApID09IGRlbGltaXRlcik7CisgICAgfQorCisgICAgLyogZGVjb2RlX2RpZ2l0KGNwKSByZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSAqLworICAgIC8qIHBvaW50IChmb3IgdXNlIGluIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaW4gdGhlIHJhbmdlIDAgdG8gKi8KKyAgICAvKiBiYXNlLTEsIG9yIGJhc2UgaWYgY3AgaXMgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjb2RlX2RpZ2l0KGludCBjcCkKKyAgICB7CisgICAgICByZXR1cm4gIGNwIC0gNDggPCAxMCA/IGNwIC0gMjIgOiAgY3AgLSA2NSA8IDI2ID8gY3AgLSA2NSA6CisgICAgICAgICAgICAgIGNwIC0gOTcgPCAyNiA/IGNwIC0gOTcgOiAgYmFzZTsKKyAgICB9CisKKyAgICAvKiBlbmNvZGVfZGlnaXQoZCxmbGFnKSByZXR1cm5zIHRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlICAgICAgKi8KKyAgICAvKiAod2hlbiB1c2VkIGZvciByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGQsIHdoaWNoIG5lZWRzIHRvIGJlIGluICAgKi8KKyAgICAvKiB0aGUgcmFuZ2UgMCB0byBiYXNlLTEuICBUaGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZCB1bmxlc3MgZmxhZyBpcyAgKi8KKyAgICAvKiBub256ZXJvLCBpbiB3aGljaCBjYXNlIHRoZSB1cHBlcmNhc2UgZm9ybSBpcyB1c2VkLiAgVGhlIGJlaGF2aW9yICAgKi8KKyAgICAvKiBpcyB1bmRlZmluZWQgaWYgZmxhZyBpcyBub256ZXJvIGFuZCBkaWdpdCBkIGhhcyBubyB1cHBlcmNhc2UgZm9ybS4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZW5jb2RlX2RpZ2l0KGludCBkLCBpbnQgZmxhZykKKyAgICB7CisgICAgICByZXR1cm4gKGNoYXIpIChkICsgMjIgKyAoNzUgKiAoKGQgPCAyNikgPyAxIDogMCkgLSAoKChmbGFnICE9IDApID8gMSA6MCkgPDwgNSkpKTsKKyAgICAgIC8qICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aICovCisgICAgICAvKiAyNi4uMzUgbWFwIHRvIEFTQ0lJIDAuLjkgICAgICAgICAqLworICAgIH0KKworICAgIC8qIGZsYWdnZWQoYmNwKSB0ZXN0cyB3aGV0aGVyIGEgYmFzaWMgY29kZSBwb2ludCBpcyBmbGFnZ2VkICovCisgICAgLyogKHVwcGVyY2FzZSkuICBUaGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIGJjcCBpcyBub3QgYSAgKi8KKyAgICAvKiBiYXNpYyBjb2RlIHBvaW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBmbGFnZ2VkKGludCBiY3ApeworICAgICAgICAgcmV0dXJuICgoYmNwKSAtIDY1IDwgMjYpOworICAgIH0KKworICAgIC8qIGVuY29kZV9iYXNpYyhiY3AsZmxhZykgZm9yY2VzIGEgYmFzaWMgY29kZSBwb2ludCB0byBsb3dlcmNhc2UgKi8KKyAgICAvKiBpZiBmbGFnIGlzIHplcm8sIHVwcGVyY2FzZSBpZiBmbGFnIGlzIG5vbnplcm8sIGFuZCByZXR1cm5zICAgICovCisgICAgLyogdGhlIHJlc3VsdGluZyBjb2RlIHBvaW50LiAgVGhlIGNvZGUgcG9pbnQgaXMgdW5jaGFuZ2VkIGlmIGl0ICAqLworICAgIC8qIGlzIGNhc2VsZXNzLiAgVGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiBiY3AgaXMgbm90IGEgYmFzaWMgKi8KKyAgICAvKiBjb2RlIHBvaW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGVuY29kZV9iYXNpYyhpbnQgYmNwLCBpbnQgZmxhZykKKyAgICB7CisgICAgICBiY3AgLT0gKCgoYmNwIC0gOTcpIDwgMjYpID8gMSA6MCApIDw8IDU7CisgICAgICBib29sZWFuIG15YmNwID0gKGJjcCAtIDY1IDwgMjYpOworICAgICAgcmV0dXJuIChjaGFyKSAoYmNwICsgKCgoZmxhZz09MCkgJiYgbXliY3AgKSA/IDEgOiAwICkgPDwgNSk7CisgICAgfQorCisgICAgLyoqKiBQbGF0Zm9ybS1zcGVjaWZpYyBjb25zdGFudHMgKioqLworCisgICAgLyogbWF4aW50IGlzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGEgcHVueWNvZGVfdWludCB2YXJpYWJsZTogKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIG1heGludCA9IDB4RkZGRkZGRkZMOworICAgIC8qIEJlY2F1c2UgbWF4aW50IGlzIHVuc2lnbmVkLCAtMSBiZWNvbWVzIHRoZSBtYXhpbXVtIHZhbHVlLiAqLworCisgICAgLyoqKiBCaWFzIGFkYXB0YXRpb24gZnVuY3Rpb24gKioqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkYXB0KGludCBkZWx0YSwgaW50IG51bXBvaW50cywgYm9vbGVhbiBmaXJzdHRpbWUgKXsKKyAgICAgIGludCBrOworCisgICAgICBkZWx0YSA9IChmaXJzdHRpbWU9PXRydWUpID8gZGVsdGEgLyBkYW1wIDogZGVsdGEgPj4gMTsKKyAgICAgIC8qIGRlbHRhID4+IDEgaXMgYSBmYXN0ZXIgd2F5IG9mIGRvaW5nIGRlbHRhIC8gMiAqLworICAgICAgZGVsdGEgKz0gZGVsdGEgLyBudW1wb2ludHM7CisKKyAgICAgIGZvciAoayA9IDA7ICBkZWx0YSA+ICgoYmFzZSAtIHRtaW4pICogdG1heCkgLyAyOyAgayArPSBiYXNlKSB7CisgICAgICAgIGRlbHRhIC89IGJhc2UgLSB0bWluOworICAgICAgfQorCisgICAgICByZXR1cm4gayArIChiYXNlIC0gdG1pbiArIDEpICogZGVsdGEgLyAoZGVsdGEgKyBza2V3KTsKKyAgICB9CisKKyAgICAvKioqIE1haW4gZW5jb2RlIGZ1bmN0aW9uICoqKi8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGVuY29kZSggICBpbnQgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5wdXRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNhc2VfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG91dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgb3V0cHV0W10gKXsKKyAgICAgIGludCBkZWx0YSwgaCwgYiwgb3V0LCBtYXhfb3V0LCBiaWFzLCBqLCBxLCBrLCB0OworICAgICAgbG9uZyBtLG47CisgICAgICAvKiBJbml0aWFsaXplIHRoZSBzdGF0ZTogKi8KKworICAgICAgbiA9IGluaXRpYWxfbjsKKyAgICAgIGRlbHRhID0gb3V0ID0gMDsKKyAgICAgIG1heF9vdXQgPSBvdXRwdXRfbGVuZ3RoWzBdOworICAgICAgYmlhcyA9IGluaXRpYWxfYmlhczsKKworICAgICAgLyogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czogKi8KKworICAgICAgZm9yIChqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgaWYgKGJhc2ljKGlucHV0W2pdKSkgeworICAgICAgICAgIGlmIChtYXhfb3V0IC0gb3V0IDwgMikgcmV0dXJuIHB1bnljb2RlX2JpZ19vdXRwdXQ7CisgICAgICAgICAgb3V0cHV0W291dCsrXSA9IChjaGFyKQorICAgICAgICAgICAgKGNhc2VfZmxhZ3MhPW51bGwgPyAgZW5jb2RlX2Jhc2ljKGlucHV0W2pdLCBjYXNlX2ZsYWdzW2pdKSA6IGlucHV0W2pdKTsKKyAgICAgICAgfQorICAgICAgICAvKiBlbHNlIGlmIChpbnB1dFtqXSA8IG4pIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7ICovCisgICAgICAgIC8qIChub3QgbmVlZGVkIGZvciBQdW55Y29kZSB3aXRoIHVuc2lnbmVkIGNvZGUgcG9pbnRzKSAqLworICAgICAgfQorCisgICAgICBoID0gYiA9IG91dDsKKworICAgICAgLyogaCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBiZWVuIGhhbmRsZWQsIGIgaXMgdGhlICAqLworICAgICAgLyogbnVtYmVyIG9mIGJhc2ljIGNvZGUgcG9pbnRzLCBhbmQgb3V0IGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyAqLworICAgICAgLyogdGhhdCBoYXZlIGJlZW4gb3V0cHV0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICBpZiAoYiA+IDApIG91dHB1dFtvdXQrK10gPSBkZWxpbWl0ZXI7CisKKyAgICAgIC8qIE1haW4gZW5jb2RpbmcgbG9vcDogKi8KKworICAgICAgd2hpbGUgKGggPCBpbnB1dF9sZW5ndGgpIHsKKyAgICAgICAgLyogQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuICAgICAqLworICAgICAgICAvKiBoYW5kbGVkIGFscmVhZHkuICBGaW5kIHRoZSBuZXh0IGxhcmdlciBvbmU6ICovCisKKyAgICAgICAgZm9yIChtID0gbWF4aW50LCBqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgICAvKiBpZiAoYmFzaWMoaW5wdXRbal0pKSBjb250aW51ZTsgKi8KKyAgICAgICAgICAvKiAobm90IG5lZWRlZCBmb3IgUHVueWNvZGUpICovCisgICAgICAgICAgaWYgKGlucHV0W2pdID49IG4gJiYgaW5wdXRbal0gPCBtKSBtID0gaW5wdXRbal07CisgICAgICAgIH0KKworICAgICAgICAvKiBJbmNyZWFzZSBkZWx0YSBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzICAgICovCisgICAgICAgIC8qIDxuLGk+IHN0YXRlIHRvIDxtLDA+LCBidXQgZ3VhcmQgYWdhaW5zdCBvdmVyZmxvdzogKi8KKworICAgICAgICBpZiAobSAtIG4gPiAobWF4aW50IC0gZGVsdGEpIC8gKGggKyAxKSkgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICBkZWx0YSArPSAobSAtIG4pICogKGggKyAxKTsKKyAgICAgICAgbiA9IG07CisKKyAgICAgICAgZm9yIChqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opIHsKKyAgICAgICAgICAvKiBQdW55Y29kZSBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgaW5wdXRbal0gaXMgYmFzaWM6ICovCisgICAgICAgICAgaWYgKGlucHV0W2pdIDwgbiAvKiB8fCBiYXNpYyhpbnB1dFtqXSkgKi8gKSB7CisgICAgICAgICAgICBpZiAoKytkZWx0YSA9PSAwKSByZXR1cm4gcHVueWNvZGVfb3ZlcmZsb3c7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKGlucHV0W2pdID09IG4pIHsKKyAgICAgICAgICAgIC8qIFJlcHJlc2VudCBkZWx0YSBhcyBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyOiAqLworCisgICAgICAgICAgICBmb3IgKHEgPSBkZWx0YSwgayA9IGJhc2U7ICA7ICBrICs9IGJhc2UpIHsKKyAgICAgICAgICAgICAgaWYgKG91dCA+PSBtYXhfb3V0KSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKyAgICAgICAgICAgICAgdCA9IGsgPD0gYmlhcyAvKiArIHRtaW4gKi8gPyB0bWluIDogICAgIC8qICt0bWluIG5vdCBuZWVkZWQgKi8KKyAgICAgICAgICAgICAgICAgIGsgPj0gYmlhcyArIHRtYXggPyB0bWF4IDogayAtIGJpYXM7CisgICAgICAgICAgICAgIGlmIChxIDwgdCkgYnJlYWs7CisgICAgICAgICAgICAgIG91dHB1dFtvdXQrK10gPSBlbmNvZGVfZGlnaXQodCArIChxIC0gdCkgJSAoYmFzZSAtIHQpLCAwKTsKKyAgICAgICAgICAgICAgcSA9IChxIC0gdCkgLyAoYmFzZSAtIHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRwdXRbb3V0KytdID0gZW5jb2RlX2RpZ2l0KHEsIChjYXNlX2ZsYWdzICE9bnVsbCkgPyBjYXNlX2ZsYWdzW2pdIDogMCk7CisgICAgICAgICAgICBiaWFzID0gYWRhcHQoZGVsdGEsIGggKyAxLCAoaCA9PSBiKSk7CisgICAgICAgICAgICBkZWx0YSA9IDA7CisgICAgICAgICAgICArK2g7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgKytkZWx0YTsKKyAgICAgICAgKytuOworICAgICAgfQorCisgICAgICBvdXRwdXRfbGVuZ3RoWzBdID0gb3V0OworICAgICAgcmV0dXJuIHB1bnljb2RlX3N1Y2Nlc3M7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIGVuY29kZShTdHJpbmdCdWZmZXIgaW5wdXQsY2hhcltdIGNhc2VfZmxhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaW50W10gaW4gPSBuZXcgaW50W2lucHV0Lmxlbmd0aCgpXTsKKyAgICAgICAgaW50IGluTGVuID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShpbnB1dCk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpbltpbkxlbisrXT1jaDsKKyAgICAgICAgfQorCisgICAgICAgIGludFtdIG91dExlbiA9ICBuZXcgaW50WzFdOworICAgICAgICBvdXRMZW5bMF0gPSBpbnB1dC5sZW5ndGgoKSo0OworICAgICAgICBjaGFyW10gb3V0cHV0ID0gbmV3IGNoYXJbb3V0TGVuWzBdXTsKKyAgICAgICAgaW50IHJjID0gcHVueWNvZGVfc3VjY2VzczsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHJjID0gZW5jb2RlKGluTGVuLGluLGNhc2VfZmxhZ3MsIG91dExlbiwgb3V0cHV0KTsKKyAgICAgICAgICAgIGlmKHJjPT1wdW55Y29kZV9iaWdfb3V0cHV0KXsKKyAgICAgICAgICAgICAgICBvdXRMZW5bMF0gPSBvdXRMZW5bMF0qNDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBuZXcgY2hhcltvdXRMZW5bMF1dOworICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIHRvIGNvbnZlcnQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmKHJjPT1wdW55Y29kZV9zdWNjZXNzKXsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKG91dHB1dCwwLG91dExlblswXSk7CisgICAgICAgIH0KKyAgICAgICAgZ2V0RXhjZXB0aW9uKHJjKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGdldEV4Y2VwdGlvbihpbnQgcmMpIAorICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICBzd2l0Y2gocmMpeworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfYmlnX291dHB1dDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgb3V0cHV0IGNhcGFjaXR5IHdhcyBub3Qgc3VmZmljaWVudC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5CVUZGRVJfT1ZFUkZMT1dfRVJST1IpOworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfYmFkX2lucHV0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCBpbiB0aGUgaW5wdXQiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgIGNhc2UgcHVueWNvZGVfb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSW52YWxpZCBjaGFyIGZvdW5kIGluIHRoZSBpbnB1dCIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklOVkFMSURfQ0hBUl9GT1VORCk7ICAgCisgICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVRkZFUl9TSVpFID0gMTAwOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIGRlY29kZShTdHJpbmdCdWZmZXIgaW5wdXQsY2hhcltdIGNhc2VfZmxhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgY2hhcltdIGluID0gaW5wdXQudG9TdHJpbmcoKS50b0NoYXJBcnJheSgpOworICAgICAgICBpbnRbXSBvdXRMZW4gPSBuZXcgaW50WzFdOworICAgICAgICBvdXRMZW5bMF0gPSBNQVhfQlVGRkVSX1NJWkU7CisgICAgICAgIGludFtdIG91dHB1dCA9IG5ldyBpbnRbb3V0TGVuWzBdXTsKKyAgICAgICAgaW50IHJjID0gcHVueWNvZGVfc3VjY2VzczsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHJjID0gZGVjb2RlKGlucHV0Lmxlbmd0aCgpLGluLCBvdXRMZW4sIG91dHB1dCxjYXNlX2ZsYWdzKTsKKyAgICAgICAgICAgIGlmKHJjPT1wdW55Y29kZV9iaWdfb3V0cHV0KXsKKyAgICAgICAgICAgICAgICBvdXRMZW5bMF0gPSBvdXRwdXQubGVuZ3RoICogNDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBuZXcgaW50W291dExlblswXV07CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZihyYz09cHVueWNvZGVfc3VjY2Vzcyl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IG91dExlblswXTsgaSsrICl7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCxvdXRwdXRbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGdldEV4Y2VwdGlvbihyYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqKiBNYWluIGRlY29kZSBmdW5jdGlvbiAqKiovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZGVjb2RlKGludCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0cHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2FzZV9mbGFncyApeworICAgICAgaW50IG4sIG91dCwgaSwgbWF4X291dCwgYmlhcywKKyAgICAgICAgICAgICAgICAgICAgIGIsIGosIGluLCBvbGRpLCB3LCBrLCBkaWdpdCwgdDsKKworICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgc3RhdGU6ICovCisKKyAgICAgIG4gPSBpbml0aWFsX247CisgICAgICBvdXQgPSBpID0gMDsKKyAgICAgIG1heF9vdXQgPSBvdXRwdXRfbGVuZ3RoWzBdOworICAgICAgYmlhcyA9IGluaXRpYWxfYmlhczsKKworICAgICAgLyogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czogIExldCBiIGJlIHRoZSBudW1iZXIgb2YgaW5wdXQgY29kZSAqLworICAgICAgLyogcG9pbnRzIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIDAgaWYgdGhlcmUgaXMgbm9uZSwgdGhlbiAgICAqLworICAgICAgLyogY29weSB0aGUgZmlyc3QgYiBjb2RlIHBvaW50cyB0byB0aGUgb3V0cHV0LiAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICBmb3IgKGIgPSBqID0gMDsgIGogPCBpbnB1dF9sZW5ndGg7ICArK2opeworICAgICAgICAgICBpZiAoZGVsaW0oaW5wdXRbal0pPT10cnVlKXsKKyAgICAgICAgICAgICAgICBiID0gajsKKyAgICAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKGIgPiBtYXhfb3V0KSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKworICAgICAgZm9yIChqID0gMDsgIGogPCBiOyAgKytqKSB7CisgICAgICAgIGlmIChjYXNlX2ZsYWdzICE9IG51bGwpIGNhc2VfZmxhZ3Nbb3V0XSA9IChjaGFyKShmbGFnZ2VkKGlucHV0W2pdKSA/IDEgOiAwKTsKKyAgICAgICAgaWYgKCFiYXNpYyhpbnB1dFtqXSkpIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7CisgICAgICAgIG91dHB1dFtvdXQrK10gPSBpbnB1dFtqXTsKKyAgICAgIH0KKworICAgICAgLyogTWFpbiBkZWNvZGluZyBsb29wOiAgU3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55ICAqLworICAgICAgLyogYmFzaWMgY29kZSBwb2ludHMgd2VyZSBjb3BpZWQ7IHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb3RoZXJ3aXNlLiAqLworCisgICAgICBmb3IgKGluID0gYiA+IDAgPyBiICsgMSA6IDA7ICBpbiA8IGlucHV0X2xlbmd0aDsgICsrb3V0KSB7CisKKyAgICAgICAgLyogaW4gaXMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSBjb25zdW1lZCwgYW5kICovCisgICAgICAgIC8qIG91dCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuICAgICAqLworCisgICAgICAgIC8qIERlY29kZSBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIGludG8gZGVsdGEsICAqLworICAgICAgICAvKiB3aGljaCBnZXRzIGFkZGVkIHRvIGkuICBUaGUgb3ZlcmZsb3cgY2hlY2tpbmcgaXMgZWFzaWVyICAgKi8KKyAgICAgICAgLyogaWYgd2UgaW5jcmVhc2UgaSBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nICovCisgICAgICAgIC8qIHZhbHVlIGF0IHRoZSBlbmQgdG8gb2J0YWluIGRlbHRhLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgIGZvciAob2xkaSA9IGksIHcgPSAxLCBrID0gYmFzZTsgIDsgIGsgKz0gYmFzZSkgeworICAgICAgICAgIGlmIChpbiA+PSBpbnB1dF9sZW5ndGgpIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7CisgICAgICAgICAgZGlnaXQgPSBkZWNvZGVfZGlnaXQoaW5wdXRbaW4rK10pOworICAgICAgICAgIGlmIChkaWdpdCA+PSBiYXNlKSByZXR1cm4gcHVueWNvZGVfYmFkX2lucHV0OworICAgICAgICAgIGlmIChkaWdpdCA+IChtYXhpbnQgLSBpKSAvIHcpIHJldHVybiBwdW55Y29kZV9vdmVyZmxvdzsKKyAgICAgICAgICBpICs9IGRpZ2l0ICogdzsKKyAgICAgICAgICB0ID0gKGsgPD0gYmlhcykgLyogKyB0bWluICovID8gdG1pbiA6ICAgICAvKiArdG1pbiBub3QgbmVlZGVkICovCisgICAgICAgICAgICAgIChrID49IChiaWFzICsgdG1heCkpID8gdG1heCA6IGsgLSBiaWFzOworICAgICAgICAgIGlmIChkaWdpdCA8IHQpIGJyZWFrOworICAgICAgICAgIGlmICh3ID4gbWF4aW50IC8gKGJhc2UgLSB0KSkgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICAgIHcgKj0gKGJhc2UgLSB0KTsKKyAgICAgICAgfQorCisgICAgICAgIGJpYXMgPSBhZGFwdChpIC0gb2xkaSwgb3V0ICsgMSwgKG9sZGkgPT0gMCkpOworCisgICAgICAgIC8qIGkgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gb3V0KzEgdG8gMCwgICAqLworICAgICAgICAvKiBpbmNyZW1lbnRpbmcgbiBlYWNoIHRpbWUsIHNvIHdlJ2xsIGZpeCB0aGF0IG5vdzogKi8KKworICAgICAgICBpZiAoaSAvIChvdXQgKyAxKSA+IG1heGludCAtIG4pIHJldHVybiBwdW55Y29kZV9vdmVyZmxvdzsKKyAgICAgICAgbiArPSBpIC8gKG91dCArIDEpOworICAgICAgICBpICU9IChvdXQgKyAxKTsKKworICAgICAgICAvKiBJbnNlcnQgbiBhdCBwb3NpdGlvbiBpIG9mIHRoZSBvdXRwdXQ6ICovCisKKyAgICAgICAgLyogbm90IG5lZWRlZCBmb3IgUHVueWNvZGU6ICovCisgICAgICAgIC8qIGlmIChkZWNvZGVfZGlnaXQobikgPD0gYmFzZSkgcmV0dXJuIHB1bnljb2RlX2ludmFsaWRfaW5wdXQ7ICovCisgICAgICAgIGlmIChvdXQgPj0gbWF4X291dCkgcmV0dXJuIHB1bnljb2RlX2JpZ19vdXRwdXQ7CisKKyAgICAgICAgaWYgKGNhc2VfZmxhZ3MgIT0gbnVsbCkgeworICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2FzZV9mbGFncywgaSwgY2FzZV9mbGFncywgIGkgKyAxLCBvdXQgLSBpKTsKKyAgICAgICAgICAvKiBDYXNlIG9mIGxhc3QgY2hhcmFjdGVyIGRldGVybWluZXMgdXBwZXJjYXNlIGZsYWc6ICovCisgICAgICAgICAgY2FzZV9mbGFnc1tpXSA9IChjaGFyKShmbGFnZ2VkKGlucHV0W2luIC0gMV0pID8gMCA6MSk7CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG91dHB1dCwgaSwgb3V0cHV0LCBpICsgMSwgIChvdXQgLSBpKSk7CisgICAgICAgIG91dHB1dFtpKytdID0gbjsKKyAgICAgIH0KKworICAgICAgb3V0cHV0X2xlbmd0aFswXSA9IG91dDsKKyAgICAgIHJldHVybiBwdW55Y29kZV9zdWNjZXNzOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjN2NkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICJUZXN0SUROQSIsIAorICAgICAgICAgICAgICAgICAgICAgICJUZXN0U3RyaW5nUHJlcCIsCisgICAgICAgICAgICAgICAgICAgICAgIlRlc3RJRE5BUmVmIiwKKyAgICAgICAgICAgICAgICAgICAgICAiSUROQUNvbmZvcm1hbmNlVGVzdCIsCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgIlN0cmluZ1ByZXAgYW5kIElETkEgdGVzdCIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJTdHJpbmdQcmVwIjsKKyAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWFhNGU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDYzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5JRE5BOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIFRlc3REYXRhIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXJbXVtdIHVuaWNvZGVJbiA9eworICAgICAgICB7IAorICAgICAgICAgICAgMHgwNjQ0LCAweDA2NEEsIDB4MDY0NywgMHgwNjQ1LCAweDA2MjcsIDB4MDYyOCwgMHgwNjJBLCAweDA2NDMsIDB4MDY0NCwKKyAgICAgICAgICAgIDB4MDY0NSwgMHgwNjQ4LCAweDA2MzQsIDB4MDYzOSwgMHgwNjMxLCAweDA2MjgsIDB4MDY0QSwgMHgwNjFGCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4NEVENiwgMHg0RUVDLCAweDRFM0EsIDB4NEVDMCwgMHg0RTQ4LCAweDRFMEQsIDB4OEJGNCwgMHg0RTJELCAweDY1ODcsIAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDUwLCAweDAwNzIsIDB4MDA2RiwgMHgwMTBELCAweDAwNzAsIDB4MDA3MiwgMHgwMDZGLCAweDAwNzMsIDB4MDA3NCwKKyAgICAgICAgICAgIDB4MDExQiwgMHgwMDZFLCAweDAwNjUsIDB4MDA2RCwgMHgwMDZDLCAweDAwNzUsIDB4MDA3NiwgMHgwMEVELCAweDAxMEQsCisgICAgICAgICAgICAweDAwNjUsIDB4MDA3MywgMHgwMDZCLCAweDAwNzksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDVEQywgMHgwNURFLCAweDA1RDQsIDB4MDVENCwgMHgwNURELCAweDA1RTQsIDB4MDVFOSwgMHgwNUQ1LCAweDA1RDgsCisgICAgICAgICAgICAweDA1REMsIDB4MDVEMCwgMHgwNURFLCAweDA1RDMsIDB4MDVEMSwgMHgwNUU4LCAweDA1RDksIDB4MDVERCwgMHgwNUUyLAorICAgICAgICAgICAgMHgwNUQxLCAweDA1RTgsIDB4MDVEOSwgMHgwNUVBLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDA5MkYsIDB4MDkzOSwgMHgwOTMyLCAweDA5NEIsIDB4MDkxNywgMHgwOTM5LCAweDA5M0YsIDB4MDkyOCwgMHgwOTRELAorICAgICAgICAgICAgMHgwOTI2LCAweDA5NDAsIDB4MDkxNSwgMHgwOTRELCAweDA5MkYsIDB4MDk0QiwgMHgwOTAyLCAweDA5MjgsIDB4MDkzOSwKKyAgICAgICAgICAgIDB4MDk0MCwgMHgwOTAyLCAweDA5MkMsIDB4MDk0QiwgMHgwOTMyLCAweDA5MzgsIDB4MDkxNSwgMHgwOTI0LCAweDA5NDcsCisgICAgICAgICAgICAweDA5MzksIDB4MDk0OCwgMHgwOTAyLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDMwNkEsIDB4MzA1QywgMHgzMDdGLCAweDMwOTMsIDB4MzA2QSwgMHg2NUU1LCAweDY3MkMsIDB4OEE5RSwgMHgzMDkyLAorICAgICAgICAgICAgMHg4QTcxLCAweDMwNTcsIDB4MzA2NiwgMHgzMDRGLCAweDMwOEMsIDB4MzA2QSwgMHgzMDQ0LCAweDMwNkUsIDB4MzA0QiwKKyAgICAgICAgICAgCisgICAgICAgIH0sCisgICAgLyogIAorICAgICAgICB7CisgICAgICAgICAgICAweEMxMzgsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgIDB4QzVCQywgMHhCOUM4LCAweEIwOTgsIDB4Qzg4QiwgMHhDNzQ0LCAweEFFNEMsCisgICAgICAgIH0sCisgICAgKi8KKyAgICAgICAgeyAgIAorICAgICAgICAgICAgMHgwNDNGLCAweDA0M0UsIDB4MDQ0NywgMHgwNDM1LCAweDA0M0MsIDB4MDQ0MywgMHgwNDM2LCAweDA0MzUsIDB4MDQzRSwKKyAgICAgICAgICAgIDB4MDQzRCwgMHgwNDM4LCAweDA0M0QsIDB4MDQzNSwgMHgwNDMzLCAweDA0M0UsIDB4MDQzMiwgMHgwNDNFLCAweDA0NDAsCisgICAgICAgICAgICAweDA0NEYsIDB4MDQ0MiwgMHgwNDNGLCAweDA0M0UsIDB4MDQ0MCwgMHgwNDQzLCAweDA0NDEsIDB4MDQ0MSwgMHgwNDNBLAorICAgICAgICAgICAgMHgwNDM4LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNTAsIDB4MDA2RiwgMHgwMDcyLCAweDAwNzEsIDB4MDA3NSwgMHgwMEU5LCAweDAwNkUsIDB4MDA2RiwgMHgwMDcwLAorICAgICAgICAgICAgMHgwMDc1LCAweDAwNjUsIDB4MDA2NCwgMHgwMDY1LCAweDAwNkUsIDB4MDA3MywgMHgwMDY5LCAweDAwNkQsIDB4MDA3MCwKKyAgICAgICAgICAgIDB4MDA2QywgMHgwMDY1LCAweDAwNkQsIDB4MDA2NSwgMHgwMDZFLCAweDAwNzQsIDB4MDA2NSwgMHgwMDY4LCAweDAwNjEsCisgICAgICAgICAgICAweDAwNjIsIDB4MDA2QywgMHgwMDYxLCAweDAwNzIsIDB4MDA2NSwgMHgwMDZFLCAweDAwNDUsIDB4MDA3MywgMHgwMDcwLAorICAgICAgICAgICAgMHgwMDYxLCAweDAwRjEsIDB4MDA2RiwgMHgwMDZDLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDRFRDYsIDB4NTAxMSwgMHg3MjMyLCAweDRFQzAsIDB4OUVCRCwgMHg0RTBELCAweDhBQUEsIDB4NEUyRCwgMHg2NTg3LAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDU0LCAweDFFQTEsIDB4MDA2OSwgMHgwMDczLCAweDAwNjEsIDB4MDA2RiwgMHgwMDY4LCAweDFFQ0QsIDB4MDA2QiwKKyAgICAgICAgICAgIDB4MDA2OCwgMHgwMEY0LCAweDAwNkUsIDB4MDA2NywgMHgwMDc0LCAweDAwNjgsIDB4MUVDMywgMHgwMDYzLCAweDAwNjgsCisgICAgICAgICAgICAweDFFQzksIDB4MDA2RSwgMHgwMEYzLCAweDAwNjksIDB4MDA3NCwgMHgwMDY5LCAweDFFQkYsIDB4MDA2RSwgMHgwMDY3LAorICAgICAgICAgICAgMHgwMDU2LCAweDAwNjksIDB4MUVDNywgMHgwMDc0LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwMzMsIDB4NUU3NCwgMHgwMDQyLCAweDdENDQsIDB4OTFEMSwgMHg1MTZCLCAweDUxNDgsIDB4NzUxRiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHg1Qjg5LCAweDVCQTQsIDB4NTk0OCwgMHg3RjhFLCAweDYwNzUsIDB4MDAyRCwgMHgwMDc3LCAweDAwNjksIDB4MDA3NCwKKyAgICAgICAgICAgIDB4MDA2OCwgMHgwMDJELCAweDAwNTMsIDB4MDA1NSwgMHgwMDUwLCAweDAwNDUsIDB4MDA1MiwgMHgwMDJELCAweDAwNEQsCisgICAgICAgICAgICAweDAwNEYsIDB4MDA0RSwgMHgwMDRCLCAweDAwNDUsIDB4MDA1OSwgMHgwMDUzLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNDgsIDB4MDA2NSwgMHgwMDZDLCAweDAwNkMsIDB4MDA2RiwgMHgwMDJELCAweDAwNDEsIDB4MDA2RSwgMHgwMDZGLAorICAgICAgICAgICAgMHgwMDc0LCAweDAwNjgsIDB4MDA2NSwgMHgwMDcyLCAweDAwMkQsIDB4MDA1NywgMHgwMDYxLCAweDAwNzksIDB4MDAyRCwKKyAgICAgICAgICAgIDB4MzA1RCwgMHgzMDhDLCAweDMwNUUsIDB4MzA4QywgMHgzMDZFLCAweDU4MzQsIDB4NjI0MCwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgzMDcyLCAweDMwNjgsIDB4MzA2NCwgMHg1QzRCLCAweDY4MzksIDB4MzA2RSwgMHg0RTBCLCAweDAwMzIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA0RCwgMHgwMDYxLCAweDAwNkEsIDB4MDA2OSwgMHgzMDY3LCAweDAwNEIsIDB4MDA2RiwgMHgwMDY5LCAweDMwNTksCisgICAgICAgICAgICAweDMwOEIsIDB4MDAzNSwgMHg3OUQyLCAweDUyNEQsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MzBEMSwgMHgzMEQ1LCAweDMwQTMsIDB4MzBGQywgMHgwMDY0LCAweDAwNjUsIDB4MzBFQiwgMHgzMEYzLCAweDMwRDAsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDMwNUQsIDB4MzA2RSwgMHgzMEI5LCAweDMwRDQsIDB4MzBGQywgMHgzMEM5LCAweDMwNjcsCisgICAgICAgIH0sCisgICAgICAgIC8vIHRlc3Qgbm9uLUJNUCBjb2RlIHBvaW50cworICAgICAgICB7ICAgIAorICAgICAgICAgICAgMHhEODAwLCAweERGMDAsIDB4RDgwMCwgMHhERjAxLCAweEQ4MDAsIDB4REYwMiwgMHhEODAwLCAweERGMDMsIDB4RDgwMCwgMHhERjA1LAorICAgICAgICAgICAgMHhEODAwLCAweERGMDYsIDB4RDgwMCwgMHhERjA3LCAweEQ4MDAsIDB4REYwOSwgMHhEODAwLCAweERGMEEsIDB4RDgwMCwgMHhERjBCLAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHhEODAwLCAweERGMEQsIDB4RDgwMCwgMHhERjBDLCAweEQ4MDAsIDB4REYxRSwgMHhEODAwLCAweERGMEYsIDB4RDgwMCwgMHhERjE2LAorICAgICAgICAgICAgMHhEODAwLCAweERGMTUsIDB4RDgwMCwgMHhERjE0LCAweEQ4MDAsIDB4REYxMiwgMHhEODAwLCAweERGMTAsIDB4RDgwMCwgMHhERjIwLAorICAgICAgICAgICAgMHhEODAwLCAweERGMjEsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICAvLyBHcmVlaworICAgICAgICB7CisgICAgICAgICAgICAweDAzYjUsIDB4MDNiYiwgMHgwM2JiLCAweDAzYjcsIDB4MDNiZCwgMHgwM2I5LCAweDAzYmEsIDB4MDNhYworICAgICAgICB9LAorICAgICAgICAvLyBNYWx0ZXNlCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA2MiwgMHgwMDZmLCAweDAwNmUsIDB4MDEyMSwgMHgwMDc1LCAweDAwNzMsIDB4MDA2MSwgMHgwMTI3LAorICAgICAgICAgICAgMHgwMTI3LCAweDAwNjEKKyAgICAgICAgfSwKKyAgICAgICAgLy8gUnVzc2lhbgorICAgICAgICB7CisgICAgICAgICAgICAweDA0M2YsIDB4MDQzZSwgMHgwNDQ3LCAweDA0MzUsIDB4MDQzYywgMHgwNDQzLCAweDA0MzYsIDB4MDQzNSwKKyAgICAgICAgICAgIDB4MDQzZSwgMHgwNDNkLCAweDA0MzgsIDB4MDQzZCwgMHgwNDM1LCAweDA0MzMsIDB4MDQzZSwgMHgwNDMyLAorICAgICAgICAgICAgMHgwNDNlLCAweDA0NDAsIDB4MDQ0ZiwgMHgwNDQyLCAweDA0M2YsIDB4MDQzZSwgMHgwNDQwLCAweDA0NDMsCisgICAgICAgICAgICAweDA0NDEsIDB4MDQ0MSwgMHgwNDNhLCAweDA0MzgKKyAgICAgICAgfSwKKyAgIAorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGFzY2lpSW4gPSB7CisgICAgICAgICJ4bi0tZWdicGRhajZidTRieGZnZWhmdnd4biIsCisgICAgICAgICJ4bi0taWhxd2NyYjRjdjhhOGRxZzA1NnBxanllIiwKKyAgICAgICAgInhuLS1Qcm9wcm9zdG5lbWx1dmVza3ktdXliMjRkbWE0MWEiLAorICAgICAgICAieG4tLTRkYmNhZ2RhaHltYnhla2hlaDZlMGE3ZmVpMGIiLAorICAgICAgICAieG4tLWkxYmFhN2VjaTlnbHJkOWIyYWUxYmowaGZjZ2c2aXlhZjhvMGExZGlnMGNkIiwKKyAgICAgICAgInhuLS1uOGpvazVheTVkemFiZDVieW05ZjBjbTU2ODVycmpldHI2cGR4YSIsCisgICAgLyogICJ4bi0tOTg5YW9tc3ZpNWU4M2RiMWQyYTM1NWN2MWUwdmFrMWR3cnY5M2Q1eGJoMTVhMGR0MzBhNWpwc2Q4NzljY202ZmVhOThjIiwqLworICAgICAgICAieG4tLWIxYWJmYWFlcGRybm5iZ2VmYmFEb3Rjd2F0bXEyZzRsIiwKKyAgICAgICAgInhuLS1Qb3JxdW5vcHVlZGVuc2ltcGxlbWVudGVoYWJsYXJlbkVzcGFvbC1mbWQ1NmEiLAorICAgICAgICAieG4tLWlocXdjdHZ6YzkxZjY1OWRyc3MzeDhibzB5YiIsCisgICAgICAgICJ4bi0tVGlzYW9oa2huZ3RoY2huaXRpbmdWaXQta2pjcjgyNjhxeXhhZmQyZjFiOWciLAorICAgICAgICAieG4tLTNCLXd3NGM1ZTE4MGU1NzVhNjVsc3kyYiIsCisgICAgICAgICJ4bi0tLXdpdGgtU1VQRVItTU9OS0VZUy1wYzU4YWc4MGE4cWFpMDBnN245biIsCisgICAgICAgICJ4bi0tSGVsbG8tQW5vdGhlci1XYXktLWZjNHF1YTA1YXV3YjM2NzR2ZnIwYiIsCisgICAgICAgICJ4bi0tMi11OXRsenI5NzU2YnQzdWMwdiIsCisgICAgICAgICJ4bi0tTWFqaUtvaTUtNzgzZ3VlNnF6MDc1YXptNWUiLAorICAgICAgICAieG4tLWRlLWpnNGF2aGJ5MW5vYzBkIiwKKyAgICAgICAgInhuLS1kOWp1YXU0MWF3Y3pjenAiLAorICAgICAgICAiWE4tLTA5N0NDREVLR0hRSksiLAorICAgICAgICAiWE4tLWRiOENCSEVKTEdINEUwQUwiLAorICAgICAgICAieG4tLWh4YXJnaWZkYXIiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JlZWsKKyAgICAgICAgInhuLS1ib251c2FhLTViYjFkYSIsICAgICAgICAgICAgICAgICAgIC8vIE1hbHRlc2UKKyAgICAgICAgInhuLS1iMWFiZmFhZXBkcm5uYmdlZmJhZG90Y3dhdG1xMmc0bCIsIC8vIFJ1c3NpYW4gKEN5cmlsbGljKQorICAgICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGRvbWFpbk5hbWVzID0geworICAgICAgICAic2xpcDEyOS0zNy0xMTgtMTQ2Lm5jLnVzLmlibS5uZXQiLAorICAgICAgICAic2FyYXRvZ2EucGUudXRleGFzLmVkdSIsCisgICAgICAgICJkaWFsLTEyMC00NS5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJ3b28tMDg1LmRvcm1zLndhbGxlci5uZXQiLAorICAgICAgICAiaGQzMC0wNDkuaGlsLmNvbXB1c2VydmUuY29tIiwKKyAgICAgICAgInBlbTIwMy0zMS5wZS50dHUuZWR1IiwKKyAgICAgICAgIjU2Sy0yMjcuTWF4VE5UMy5wZHEubmV0IiwKKyAgICAgICAgImRpYWwtMzYtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJzbGlwMTI5LTM3LTIzLTE1Mi5nYS51cy5pYm0ubmV0IiwKKyAgICAgICAgInRzNDVpcDExOS5jYWR2aXNpb24uY29tIiwKKyAgICAgICAgInNkbi10cy0wMDR0eGF1c3RQMDUuZGlhbHNwcmludC5uZXQiLAorICAgICAgICAiYmFyLXRudDFzNjYuZXJvbHMuY29tIiwKKyAgICAgICAgIjEwMS5zdC1sb3Vpcy0xNS5tby5kaWFsLWFjY2Vzcy5hdHQubmV0IiwKKyAgICAgICAgImg5Mi0yNDUuQXJjby5DT00iLAorICAgICAgICAiZGlhbC0xMy0yLm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgIm5ldC1yZWR5bmV0MjkuZGF0YW1hcmtldHMuY29tLmFyIiwKKyAgICAgICAgImNjcy1zaGl2YTI4LnJlYWNjaXVuLm5ldC52ZSIsCisgICAgICAgICI3LmhvdXN0b24tMTEudHguZGlhbC1hY2Nlc3MuYXR0Lm5ldCIsCisgICAgICAgICJpbmd3MTI5LTM3LTEyMC0yNi5tby51cy5pYm0ubmV0IiwKKyAgICAgICAgImRpYWx1cDYuYXVzdGludHguY29tIiwKKyAgICAgICAgImRuczIudHBhby5nb3YudHIiLAorICAgICAgICAic2xpcDEyOS0zNy0xMTktMTk0Lm5jLnVzLmlibS5uZXQiLAorICAgICAgICAiY3M3LmRpbGxvbnMuY28udWsuMjAzLjExOS4xOTMuaW4tYWRkci5hcnBhIiwKKyAgICAgICAgInN3cHJkMS5pbm5vdnBsYWNlLnNhc2thdG9vbi5zay5jYSIsCisgICAgICAgICJiaWtpbmkuYm9sb2duYS5tYXJhdXQuaXQiLAorICAgICAgICAibm9kZTkxLnN1Ym5ldDE1OS0xOTgtNzkuYmF4dGVyLmNvbSIsCisgICAgICAgICJjdXN0MTkubWF4NS5uZXcteW9yay5ueS5tcy51dS5uZXQiLAorICAgICAgICAiYmFsZXhhbmRlci5zbGlwLmFuZHJldy5jbXUuZWR1IiwKKyAgICAgICAgInBvb2wwMjkubWF4Mi5kZW52ZXIuY28uZHluaXAuYWx0ZXIubmV0IiwKKyAgICAgICAgImN1c3Q0OS5tYXg5Lm5ldy15b3JrLm55Lm1zLnV1Lm5ldCIsCisgICAgICAgICJzNjEuYWJxLWRpYWxpbjIuaG9sbHliZXJyeS5jb20iLAorCisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGRvbWFpbk5hbWVzMVVuaSA9IHsKKyAgICAgICAgIlx1MDkxN1x1MDkyOFx1MDk0N1x1MDkzNi5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3Llx1MDEyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXHUwMEUwXHUwMEIzXHUwMEFGLmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEMyXHUwMEE0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEMyXHUwMEEzLmNvbSIsCisgICAgICAgIC8vICJcXHUwMDI1IiwgLy8nJScgKDB4MDAyNSkgcHJvZHVjZXMgVV9JRE5BX1NURDNfQVNDSUlfUlVMRVNfRVJST1IKKyAgICAgICAgLy8gIlxcdTAwNUNcXHUwMDVDIiwgLy8nXCcgKDB4MDA1QykgcHJvZHVjZXMgVV9JRE5BX1NURDNfQVNDSUlfUlVMRVNfRVJST1IKKyAgICAgICAgLy8iQCIsCisgICAgICAgIC8vIlxcdTAwMkYiLAorICAgICAgICAvLyJ3d3cuXFx1MDAyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXFx1MDAyNC5jb20iLAorICAgICAgICAvLyJcXHUwMDNmIiwKKyAgICAgICAgLy8gVGhlc2UgeWVpbGQgVV9JRE5BX1BST0hJQklURURfRVJST1IKKyAgICAgICAgLy8iXFx1MDBDRlxcdTAwODIuY29tIiwKKyAgICAgICAgLy8iXFx1MDBDRVxcdTAwQjJcXHUwMEMzXFx1MDA5RnNzLmNvbSIsCisgICAgICAgIC8vIlxcdTAwRTJcXHUwMDk4XFx1MDBCQS5jb20iLAorICAgICAgICAiXHUwMEMzXHUwMEJDLmNvbSIKKyAgICB9OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZG9tYWluTmFtZXNUb0FTQ0lJT3V0ID0geworICAgICAgICAieG4tLTMxYjhhMmJ3ZC5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3LnhuLS12ZWEuY29tIiwKKyAgICAgICAgLy8id3d3LnhuLS0zIC1paWE4MHQuY29tIiwKKyAgICAgICAgInd3dy54bi0tYmJhN2ouY29tIiwKKyAgICAgICAgInd3dy54bi0tOWE5ai5jb20iLAorICAgICAgIC8vICJcdTAwMjUiLAorICAgICAgIC8vICJcdTAwNUNcdTAwNUMiLAorICAgICAgIC8vICJAIiwKKyAgICAgICAvLyAiXHUwMDJGIiwKKyAgICAgICAvLyAid3d3Llx1MDAyMS5jb20iLAorICAgICAgIC8vICJ3d3cuXHUwMDI0LmNvbSIsCisgICAgICAgLy8gIlx1MDAzZiIsCisgICAgICAgICJ4bi0tMTQtcmlhNzQyM2EuY29tIgorICAgICAgICAKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBkb21haW5OYW1lc1RvVW5pY29kZU91dCA9IHsKKyAgICAgICAgIlx1MDkxN1x1MDkyOFx1MDk0N1x1MDkzNi5zYW5qb3NlLmlibS5jb20iLAorICAgICAgICAid3d3Llx1MDEyMS5jb20iLAorICAgICAgICAvLyJ3d3cuXHUwMEUwXHUwMDMzXHUwMDIwXHUwMzA0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEUyXHUwMEE0LmNvbSIsCisgICAgICAgICJ3d3cuXHUwMEUyXHUwMEEzLmNvbSIsCisgICAgICAgLy8gIlx1MDAyNSIsCisgICAgICAgLy8gIlx1MDA1Q1x1MDA1QyIsCisgICAgICAgLy8gIkAiLAorICAgICAgIC8vICJcdTAwMkYiLAorICAgICAgIC8vICJ3d3cuXHUwMDIxLmNvbSIsCisgICAgICAgLy8gInd3dy5cdTAwMjQuY29tIiwKKyAgICAgICAvLyAiXHUwMDNmIiwKKyAgICAgICAgIlx1MDBFM1x1MDAzMVx1MjA0NFx1MDAzNC5jb20iCisgICAgICAgIAorICAgIH07CisKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRXJyb3JDYXNleworCisgICAgICAgIHB1YmxpYyBjaGFyW10gdW5pY29kZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBhc2NpaTsKKyAgICAgICAgcHVibGljIEV4Y2VwdGlvbiBleHBlY3RlZDsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdXNlU1REM0FTQ0lJUnVsZXM7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHRlc3RUb1VuaWNvZGU7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHRlc3RMYWJlbDsKKyAgICAgICAgRXJyb3JDYXNlKGNoYXJbXSB1bmlJbiwgU3RyaW5nIGFzY2lpSW4sIEV4Y2VwdGlvbiBleCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN0ZDMsIGJvb2xlYW4gdGVzdFRvVW5pLCBib29sZWFuIHRlc3RsYWJlbCl7CisgICAgICAgICAgICB1bmljb2RlID0gdW5pSW47CisgICAgICAgICAgICBhc2NpaSA9IGFzY2lpSW47CisgICAgICAgICAgICBleHBlY3RlZCA9IGV4OworICAgICAgICAgICAgdXNlU1REM0FTQ0lJUnVsZXMgPSBzdGQzOworICAgICAgICAgICAgdGVzdFRvVW5pY29kZSA9IHRlc3RUb1VuaTsKKyAgICAgICAgICAgIHRlc3RMYWJlbCA9IHRlc3RsYWJlbDsgCisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVycm9yQ2FzZVtdIGVycm9yQ2FzZXMgPSB7CisgICAgICAgICAgCisgICAgICAgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgIDB4MDcwRiwvKnByb2hpYml0ZWQqLworICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLyogY29tLiAqLworICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgInd3dy54bi0tOG1iNTU5NWZzb2EyOG9ydWN5YTM3OGJxcmUydGN3b3AwNmM1cWJ3ODJhMXJmZm1hZTAzNjFkZWE5NmIuY29tIiwKKyAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUiksCisgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlKSwKKworICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgICAgICAweEMxMzgsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDIyMSwgMHgwMjM0LypVbmFzc2lnbmVkIGNvZGUgcG9pbnRzKi8sCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAid3d3LnhuLS02bGEyYno1NDhmajFndWEzOTFiZjFnYjFuNTlhYjI5YTdpYS5jb20iLAorCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgbmV3IEVycm9yQ2FzZSggbmV3IGNoYXJbXXsgCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDA2NDQsIDB4MDY0QSwgMHgwNjQ3LC8qQXJhYmljIGNvZGUgcG9pbnRzLiBDYW5ub3QgbWl4IFJUTCB3aXRoIExUUiovCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ3d3cueG4tLWdoQkdJNDg1MU9peUEzM1ZxckQ2QXo4NkM0cUY4M0N0UnY5M0Q1eEJrMTVBemZHMG5BZ0EwNTc4RGVBNzFDLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgICAgIC8qIGxhYmVscyBjYW5ub3QgYmVnaW4gd2l0aCBhbiBIWVBIRU4gKi8KKyAgICAgICAgICAgICAgICAweDAwMkQsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDAyRSwgCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInd3dy54bi0tLS1iOTVFdzhTcUEzMTVBbzVGYnVNbG5ObWhBLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIC8qIGNvcnJlY3QgQUNFLXByZWZpeCBmb2xsb3dlZCBieSB1bmljb2RlICovCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHgwMDc4LCAweDAwNmUsIDB4MDAyZCwweDAwMmQsICAvKiBBQ0UgUHJlZml4ICovCisgICAgICAgICAgICAgICAgMHgwMDJELCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDAwMkQsIAorICAgICAgICAgICAgICAgIDB4RDU1QywgMHhBRDZELCAweEM1QjQsIDB4Qjk3QywgMHhDNzc0LCAweEQ1NzQsIDB4RDU1QywgMHhCMkU0LCAweEJBNzQsCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC8qIHdyb25nIEFDRS1wcmVmaXggZm9sbG93ZWQgYnkgdmFsaWQgQUNFLWVuY29kZWQgQVNDSUkgKi8gCisgICAgICAgICAgICAid3d3LlhZLS0tLS1iOTFJMFY2NVM5NkMyQTM1NUN3MUU1eUNlUXIxOUNzblAxbUZmbUFFMDM2MURlQTk2Qi5jb20iLAorICAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQUNFX1BSRUZJWF9FUlJPUiksCisgICAgICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIC8qIGNhbm5vdCB2ZXJpZnkgVV9JRE5BX1ZFUklGSUNBVElPTl9FUlJPUiAqLworCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgIDB4QzEzOCwgMHhBQ0M0LCAweEM3NTgsIDB4QkFBOCwgMHhCNEUwLCAweEMwQUMsIDB4Qjc4QywgMHhCNEU0LCAweEM3NzQsCisgICAgICAgICAgICAweEQ1NUMsIDB4QUQ2RCwgMHhDNUI0LCAweEI5N0MsIDB4Qzc3NCwgMHhENTc0LCAweEQ1NUMsIDB4QjJFNCwgMHhCQTc0LAorICAgICAgICAgICAgMHhDNUJDLCAweEI5QzgsIDB4QjA5OCwgMHhDODhCLCAweEM3NDQsIDB4QUU0QywgCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LnhuLS05ODlBb01zVmk1RTgzRGIxRDJBMzU1Q3YxRTB2QWsxRHdSdjkzRDV4QmgxNUEwRHQzMEE1SnBTRDg3OUNjbTZGZUE5OEMuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5MQUJFTF9UT09fTE9OR19FUlJPUiksCisgICAgICAgICAgZmFsc2UsIHRydWUsIHRydWUKKyAgICAgICAgKSwgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAweDAwMzAsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MDAzMSwgLyogQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gRU4gY29kZXBvaW50cyAqLworICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy54bi0tMDEtdHZkbW8uY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZQorICAgICAgICApLCAgCisgICAgCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDIwNkMsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MjA2RCwgLy8gQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gQk4gY29kZXBvaW50cyAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LlhOLS1naGJnaTI3OHhpYS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpLAorICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDJELCAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgLy8gSFlQSEVOIGF0IHRoZSBzdGFydCBvZiBsYWJlbCAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li1hYmNkZS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDQxLCAweDAwNDIsIDB4MDA0MywgMHgwMDQ0LCAweDAwNDUsMHgwMDJELCAvLyBIWVBIRU4gYXQgdGhlIGVuZCBvZiB0aGUgbGFiZWwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LmFiY2RlLS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwweDAwNDAsIC8vIENvbnRhaW5pbmcgbm9uIExESCBjb2RlIHBvaW50CisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy5hYmNkZUAuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgIC8vIHplcm8gbGVuZ3RoIGxhYmVsCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgIH07CisKKworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENvbmZvcm1hbmNlVGVzdENhc2V7CisgICAgICAgICBTdHJpbmcgY29tbWVudDsKKyAgICAgICAgIFN0cmluZyBpbnB1dDsKKyAgICAgICAgIFN0cmluZyBvdXRwdXQ7CisgICAgICAgICBTdHJpbmcgcHJvZmlsZTsKKyAgICAgICAgIGludCBmbGFnczsKKyAgICAgICAgIEV4Y2VwdGlvbiBleHBlY3RlZDsKKyAgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBnZXRCeXRlcyhTdHJpbmcgaW4peworICAgICAgICAgICAgIGlmKGluPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2luLmxlbmd0aCgpXTsKKyAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IGluLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICAgICAgIGJ5dGVzW2ldID0gKGJ5dGUpaW4uY2hhckF0KGkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gYnl0ZXM7CisgICAgICAgICB9CisgICAgICAgICBDb25mb3JtYW5jZVRlc3RDYXNlKFN0cmluZyBjb210LCBTdHJpbmcgaW4sIFN0cmluZyBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJvZiwgaW50IGZsZywgRXhjZXB0aW9uIGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgY29tbWVudCA9IGNvbXQ7CisgICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGdldEJ5dGVzKGluKTsKKyAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBieXRlcyA9IGdldEJ5dGVzKG91dCk7CisgICAgICAgICAgICAgICAgIG91dHB1dCA9IChieXRlcz09bnVsbCk/IG51bGwgOiBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBwcm9maWxlID0gcHJvZjsKKyAgICAgICAgICAgICAgICAgZmxhZ3MgPSBmbGc7CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gZXg7CisgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAKKyAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbmZvcm1hbmNlVGVzdENhc2VbXSBjb25mb3JtYW5jZVRlc3RDYXNlcyA9CisgICAgICAgeworICAKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQ2FzZSBmb2xkaW5nIEFTQ0lJIFUrMDA0MyBVKzAwNDEgVSswMDQ2IFUrMDA0NSIsCisgICAgICAgICAgICJcdTAwNDNcdTAwNDFcdTAwNDZcdTAwNDUiLCAiXHUwMDYzXHUwMDYxXHUwMDY2XHUwMDY1IiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJDYXNlIGZvbGRpbmcgOGJpdCBVKzAwREYgKGdlcm1hbiBzaGFycCBzKSIsCisgICAgICAgICAgICJcdTAwQzNcdTAwOUYiLCAiXHUwMDczXHUwMDczIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwgCisgICAgICAgICAgIG51bGwKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1BU0NJSSBtdWx0aWJ5dGUgc3BhY2UgY2hhcmFjdGVyIFUrMTY4MCIsCisgICAgICAgICAgICJcdTAwRTFcdTAwOUFcdTAwODAiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIDhiaXQgY29udHJvbCBjaGFyYWN0ZXIgVSswMDg1IiwKKyAgICAgICAgICAgIlx1MDBDMlx1MDA4NSIsIG51bGwsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJOb24tQVNDSUkgbXVsdGlieXRlIGNvbnRyb2wgY2hhcmFjdGVyIFUrMTgwRSIsCisgICAgICAgICAgICJcdTAwRTFcdTAwQTBcdTAwOEUiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyIFUrMUQxNzUiLAorICAgICAgICAgICAiXHUwMEYwXHUwMDlEXHUwMDg1XHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDAgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMyIsCisgICAgICAgICAgICJcdTAwRUZcdTAwODRcdTAwQTMiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiUGxhbmUgMTUgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMzQiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEIxXHUwMDg4XHUwMEI0IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDE2IHByaXZhdGUgdXNlIGNoYXJhY3RlciBVKzEwRjIzNCIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwODhcdTAwQjQiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLWNoYXJhY3RlciBjb2RlIHBvaW50IFUrOEZGRkUiLAorICAgICAgICAgICAiXHUwMEYyXHUwMDhGXHUwMEJGXHUwMEJFIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludCBVKzEwRkZGRiIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwQkZcdTAwQkYiLCBudWxsLAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAvKiAKKyAgICAgICAgIHsKKyAgICAgICAgICAgIlN1cnJvZ2F0ZSBjb2RlIFUrREY0MiIsCisgICAgICAgICAgICJcdTAwRURcdTAwQkRcdTAwODIiLCBudWxsLCAiTmFtZXByZXAiLCBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsCisgICAgICAgICAgIFVfSUROQV9QUk9ISUJJVEVEX0VSUk9SCisgICAgICAgICB9LAorICAgICovCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1wbGFpbiB0ZXh0IGNoYXJhY3RlciBVK0ZGRkQiLAorICAgICAgICAgICAiXHUwMEVGXHUwMEJGXHUwMEJEIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIklkZW9ncmFwaGljIGRlc2NyaXB0aW9uIGNoYXJhY3RlciBVKzJGRjUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMEJGXHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkRpc3BsYXkgcHJvcGVydHkgY2hhcmFjdGVyIFUrMDM0MSIsCisgICAgICAgICAgICJcdTAwQ0RcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxlZnQtdG8tcmlnaHQgbWFyayBVKzIwMEUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMDgwXHUwMDhFIiwgIlx1MDBDQ1x1MDA4MSIsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisKKyAgICAgICAgICAgIkRlcHJlY2F0ZWQgVSsyMDJBIiwKKyAgICAgICAgICAgIlx1MDBFMlx1MDA4MFx1MDBBQSIsICJcdTAwQ0NcdTAwODEiLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTGFuZ3VhZ2UgdGFnZ2luZyBjaGFyYWN0ZXIgVStFMDAwMSIsCisgICAgICAgICAgICJcdTAwRjNcdTAwQTBcdTAwODBcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxhbmd1YWdlIHRhZ2dpbmcgY2hhcmFjdGVyIFUrRTAwNDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgxXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNUJFIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEQ2XHUwMEJFXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVStGRDUwIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEVGXHUwMEI1XHUwMDkwXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwKKyAgICAgICAgICAgIk5hbWVwcmVwIixJRE5BLkRFRkFVTFQgLAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IGNoYXJhY3RlciBVK0ZCMzggYW5kIExDYXQgY2hhcmFjdGVycyIsCisgICAgICAgICAgICJcdTAwNjZcdTAwNkZcdTAwNkZcdTAwRUZcdTAwQjlcdTAwQjZcdTAwNjJcdTAwNjFcdTAwNzIiLCAiXHUwMDY2XHUwMDZGXHUwMDZGIFx1MDBkOVx1MDA4ZVx1MDA2Mlx1MDA2MVx1MDA3MiIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IHdpdGhvdXQgdHJhaWxpbmcgUmFuZEFMQ2F0IFUrMDYyNyBVKzAwMzEiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNjI3IFUrMDAzMSBVKzA2MjgiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxXHUwMEQ4XHUwMEE4IiwgIlx1MDBEOFx1MDBBN1x1MDAzMVx1MDBEOFx1MDBBOCIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiVW5hc3NpZ25lZCBjb2RlIHBvaW50IFUrRTAwMDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgwXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUikKKyAgICAgICAgICksCisKKyAgICAvKiAgLy8gSW52YWxpZCBVVEYtOAorICAgICAgICAgeworICAgICAgICAgICAiTGFyZ2VyIHRlc3QgKHNocmlua2luZykiLAorICAgICAgICAgICAiWFx1MDBDMlx1MDBBRFx1MDBDM1x1MDBERlx1MDBDNFx1MDBCMFx1MDBFMlx1MDA4NFx1MDBBMVx1MDA2YVx1MDBjY1x1MDA4Y1x1MDBjMlx1MDBhMFx1MDBjMiIKKyAgICAgICAgICAgIlx1MDBhYVx1MDBjZVx1MDBiMFx1MDBlMlx1MDA4MFx1MDA4MCIsICJ4c3NpXHUwMGNjXHUwMDg3IiJ0ZWxcdTAwYzdcdTAwYjAgYVx1MDBjZVx1MDBiMCAiLAorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICAgeworCisgICAgICAgICAgICJMYXJnZXIgdGVzdCAoZXhwYW5kaW5nKSIsCisgICAgICAgICAgICJYXHUwMEMzXHUwMERGXHUwMGUzXHUwMDhjXHUwMDk2XHUwMEM0XHUwMEIwXHUwMEUyXHUwMDg0XHUwMEExXHUwMEUyXHUwMDkyXHUwMDlGXHUwMEUzXHUwMDhjXHUwMDgwIiwKKyAgICAgICAgICAgInhzc1x1MDBlM1x1MDA4Mlx1MDBhZFx1MDBlM1x1MDA4M1x1MDBhZFx1MDBlM1x1MDA4M1x1MDBhMVx1MDBlM1x1MDA4M1x1MDBiY1x1MDBlM1x1MDA4M1x1MDA4OCIKKyAgICAgICAgICAgIlx1MDBlM1x1MDA4M1x1MDBhYiIiaVx1MDBjY1x1MDA4NyIidGVsXHUwMDI4IiJkXHUwMDI5XHUwMGUzXHUwMDgyXHUwMGEyXHUwMGUzXHUwMDgzXHUwMDkxIgorICAgICAgICAgICAiXHUwMGUzXHUwMDgzXHUwMGJjXHUwMGUzXHUwMDgzXHUwMDg4IgorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICovCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNjI3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCkBAIC0wLDAgKzEsODE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LklETkE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SUROQSBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RJRE5BKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiB1bmFzc2lnbmVkRXhjZXB0aW9uID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTfElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAvLyB0ZXN0IFN0cmluZ0J1ZmZlciB0b1VuaWNvZGUKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsgCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5VU0VfU1REM19SVUxFU3xJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOyAKKyAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9BU0NJSSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRHxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMxVW5pLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXMxVW5pW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdElETlRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVEfElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dC5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFRvVW5pY29kZShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyJcbiBHb3Q6ICAiKyBleC50b1N0cmluZygpICsiXG4gRXhwZWN0ZWQ6ICIgK2V4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7ICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydFRvQVNDSUkoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3RJRE5Ub0FTQ0lJKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0SUROVG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvbmZvcm1hbmNlKCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgLy9UZXN0IHRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BLkRFRkFVTFQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkEuQUxMT1dfVU5BU1NJR05FRCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL1Rlc3QgdG9Vbmljb2RlCisgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZSh0ZXN0Q2FzZS5pbnB1dCx0ZXN0Q2FzZS5vdXRwdXQsSUROQS5ERUZBVUxULHRlc3RDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZVByZXBDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VpZG5hLnNwcCIpOworICAgICAgICBTdHJpbmdQcmVwIG5hbWVQcmVwID0gbmV3IFN0cmluZ1ByZXAoc3RyZWFtKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBUZXN0RGF0YS5Db25mb3JtYW5jZVRlc3RDYXNlIHRlc3RDYXNlID0gVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0Q2FzZS5pbnB1dCk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5hbWVQcmVwLnByZXBhcmUoaXRlcixTdHJpbmdQcmVwLkRFRkFVTFQpOworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLm91dHB1dCAhPW51bGwgJiYgb3V0cHV0IT1udWxsICYmICF0ZXN0Q2FzZS5vdXRwdXQuZXF1YWxzKG91dHB1dC50b1N0cmluZygpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0LiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KHRlc3RDYXNlLm91dHB1dCkrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3Rlc3RDYXNlLmlucHV0ICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuYW1lUHJlcC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeSh0ZXN0Q2FzZS5vdXRwdXQpKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEdvdDogIisgcHJldHRpZnkob3V0cHV0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkID09IG51bGwgfHwgIWV4LmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RFcnJvckNhc2VzKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGkgPCBUZXN0RGF0YS5lcnJvckNhc2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFRlc3REYXRhLkVycm9yQ2FzZSBlcnJDYXNlID0gVGVzdERhdGEuZXJyb3JDYXNlc1tpXTsKKyAgICAgICAgICAgIGlmKGVyckNhc2UudGVzdExhYmVsPT10cnVlKXsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IFRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnVzZVNURDNBU0NJSVJ1bGVzKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMhPXRydWUpeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9BU0NJSQorICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5BTExPV19VTkFTU0lHTkVELGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3RUb1VuaWNvZGUKKyAgICAgICAgICAgIGlmKGZhbHNlICYmIGVyckNhc2UudGVzdFRvVW5pY29kZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9Vbmljb2RlCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkRFRkFVTFQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0Q29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgYm9vbGVhbiBpc0VxdWFsKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkEuY29tcGFyZShzMSxzMixJRE5BLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkEuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIGJ5IElETkEuY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgcmV0VmFsID0gSUROQS5jb21wYXJlKHMxLHMyLElETkEuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQS5jb21wYXJlKG5ldyBTdHJpbmdCdWZmZXIoczEpLCBuZXcgU3RyaW5nQnVmZmVyKHMyKSwgSUROQS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczEpLCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczIpLCBJRE5BLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BLmNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyB3d3cgPSAid3d3LiI7CisgICAgICAgIFN0cmluZyBjb20gPSAiLmNvbSI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgZm9yKGludCBpPTA7aTwgVGVzdERhdGEudW5pY29kZUluLmxlbmd0aDsgaSsrKXsKKworICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgLy8gcHJlcGVuZCB3d3cuIGFuZCBhcHBlbmQgLmNvbQorICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29tKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxzb3VyY2UudG9TdHJpbmcoKSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHd3dytUZXN0RGF0YS5hc2NpaUluW2ldK2NvbSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLCB1bmkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksdW5pMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkoU3RyaW5nIHNvdXJjZSl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ZWQ7IAorICAgICAgICBTdHJpbmdCdWZmZXIgY2hhaW5lZDsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQVNDSUkKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydElETlRvQVNDSUkiKTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGNvbnZlcnRJRE5Ub0EKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydFRvQVNDSUkiKTsKKyAgICAgICAgfSAgIAorICAgIH0KKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvVW5pY29kZShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9Vbmljb2RlCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0SUROVG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9Vbmljb2RlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9Vbmljb2RlIik7CisgICAgICAgIH0gICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENoYWluaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8qIElETkEgUkZDIFNheXM6CisgICAgQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gIExhYmVscyBhcmUgdXN1YWxseQorICAgIHNob3duIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZXhhbXBsZSwgdGhlIGRvbWFpbiBuYW1lCisgICAgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgdGhyZWUgbGFiZWxzOiAid3d3IiwgImV4YW1wbGUiLCBhbmQKKyAgICAiY29tIi4gIChUaGUgemVyby1sZW5ndGggcm9vdCBsYWJlbCBkZXNjcmliZWQgaW4gW1NURDEzXSwgd2hpY2ggY2FuCisgICAgYmUgZXhwbGljaXQgYXMgaW4gInd3dy5leGFtcGxlLmNvbS4iIG9yIGltcGxpY2l0IGFzIGluCisgICAgInd3dy5leGFtcGxlLmNvbSIsIGlzIG5vdCBjb25zaWRlcmVkIGEgbGFiZWwgaW4gdGhpcyBzcGVjaWZpY2F0aW9uLikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb290TGFiZWxTZXBhcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgd3d3ID0gInd3dy4iOworICAgICAgICBTdHJpbmcgY29tID0gIi5jb20uIjsgLy9yb290IGxhYmVsIHNlcGFyYXRvcgorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMCAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMSAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkwID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkxID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworCisgICAgICAgIHVuaTAuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblswXSk7CisgICAgICAgIHVuaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgdW5pMS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzFdKTsKKyAgICAgICAgdW5pMS5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTAuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMF0pOworICAgICAgICBhc2NpaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkxLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzFdKTsKKyAgICAgICAgYXNjaWkxLmFwcGVuZChjb20pOworCisgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisKKyAgICAgICAgICAgIC8vIGZvciBldmVyeSBlbnRyeSBpbiB1bmljb2RlSW4gYXJyYXkKKyAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgIHNvdXJjZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJbltpXSk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGEpIGNvbXBhcmUgaXQgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYikgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gZXF1aXZhbGVudAorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYykgY29tcGFyZSBpdCB3aXRoIHVuaWNvZGVJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSwgdW5pMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCkgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxvb3BDb3VudCA9IDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q2hhckNvdW50ID0gMTU7CisgICAvLyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q29kZVBvaW50ID0gMHgxMGZmZmY7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByYW5kb20gaW50ZWdlciBpIHdoZXJlIDAgPD0gaSA8IG4uCisgICAgICogQSBzcGVjaWFsIGZ1bmN0aW9uIHRoYXQgZ2V0cyByYW5kb20gY29kZXBvaW50cyBmcm9tIHBsYW5lcyAwLDEsMiBhbmQgMTQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYW5kX3VuaSgpCisgICAgeworICAgICAgIGludCByZXRWYWwgPSAoaW50KShyYW5kb20ubmV4dExvbmcoKSYgMHgzRkZGRik7CisgICAgICAgaWYocmV0VmFsID49IDB4MzAwMDApeworICAgICAgICAgICByZXRWYWwrPTB4QjAwMDA7CisgICAgICAgfQorICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgcmFuZGkoaW50IG4peworICAgICAgICByZXR1cm4gKHJhbmRvbS5uZXh0SW50KDB4N2ZmZikgJSAobisxKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZ2V0VGVzdFNvdXJjZShTdHJpbmdCdWZmZXIgZmlsbEluKSB7CisgICAgICAgIC8vIHVzZSB1bmlmb3JtIHNlZWQgdmFsdWUgZnJvbSB0aGUgZnJhbWV3b3JrCisgICAgICAgIGlmKHJhbmRvbT09bnVsbCl7CisgICAgICAgICAgICByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGludCBjaGFyQ291bnQgPSAocmFuZGkobWF4Q2hhckNvdW50KSArIDEpOworICAgICAgICB3aGlsZSAoaSA8Y2hhckNvdW50ICkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IHJhbmRfdW5pKCk7CisgICAgICAgICAgICBpZihjb2RlcG9pbnQgPT0gMHgwMDAwKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChmaWxsSW4sIGNvZGVwb2ludCk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbGxJbjsKKyAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgTW9ua2V5VGVzdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgLyogZG8gdGhlIG1vbmtleSB0ZXN0ICAgKi8gICAgICAgCisgICAgICAgICBmb3IoaW50IGk9MDsgaTxsb29wQ291bnQ7IGkrKyl7CisgICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICBnZXRUZXN0U291cmNlKHNvdXJjZSk7CisgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy8gdGVzdCBzdHJpbmcgd2l0aCBlbWJlZGRlZCBudWxsICAKKyAgICAgICAgIHNvdXJjZS5hcHBlbmQoICJcXHUwMDAwXFx1MjEwOVxcdTNFMUJcXFUwMDBFNjVDQVxcVTAwMDFDQUM1IiApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoc291cmNlLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNvdXJjZSk7CisgICAgICAgICAKKyAgICAgICAgIC8vU3RyaW5nQnVmZmVyIHNyYyA9IG5ldyBTdHJpbmdCdWZmZXIoVXRpbGl0eS51bmVzY2FwZSgiXFx1REVFOFxcVTAwMEUyMjhDXFxVMDAwMkVFOEVcXFUwMDBFNjM1MFxcVTAwMDI0REQ5XHU0MDQ5XFxVMDAwRTBERTRcXFUwMDBFNDQ4Q1xcVTAwMDE4NjlCXFxVMDAwRTMzODBcXFUwMDAxNkE4RVxcVTAwMDE3MkQ1XFxVMDAwMUM0MDhcXFUwMDBFOUZCNSIpKTsKKyAgICAgICAgIC8vZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc3JjKTsKKyAgICAgICAgIAorICAgICAgICAgLy90ZXN0IGRlbGV0aW9uIG9mIGNvZGUgcG9pbnRzCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoIlxcdTA0M2ZcXHUwMEFEXFx1MDM0ZlxcdTA0M2VcXHUwNDQ3XFx1MDQzNVxcdTA0M2NcXHUwNDQzXFx1MDQzNlxcdTA0MzVcXHUwNDNlXFx1MDQzZFxcdTA0MzhcXHUwNDNkXFx1MDQzNVxcdTA0MzNcXHUwNDNlXFx1MDQzMlxcdTA0M2VcXHUwNDQwXFx1MDQ0ZlxcdTA0NDJcXHUwNDNmXFx1MDQzZVxcdTA0NDBcXHUwNDQzXFx1MDQ0MVxcdTA0NDFcXHUwNDNhXFx1MDQzOCIpKTsKKyAgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZCA9IG5ldyBTdHJpbmdCdWZmZXIoInhuLS1iMWFiZmFhZXBkcm5uYmdlZmJhZG90Y3dhdG1xMmc0bCIpOworICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIGRvVGVzdFRvQVNDSUkoc291cmNlLnRvU3RyaW5nKCksZXhwZWN0ZWQudG9TdHJpbmcoKSwgSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKFN0cmluZ0J1ZmZlciBzcmMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgbGFiZWwgPSBzcmM7ICAKKworICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhwZWN0ZWQgPSBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkgPSBudWxsOworICAgICAgICBpbnQgb3B0aW9ucyA9IElETkEuREVGQVVMVDsKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBpZG5hcmVmX3RvQVNDSUkgd2l0aCB1aWRuYV90b0FTQ0lJIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIHRyeXsgICAgICAgCisgICAgICAgICAgICBhc2NpaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkobGFiZWwsIG9wdGlvbnMpOworICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gZTsKKyAgICAgICAgICAgIGlmKGUuZXF1YWxzKHVuYXNzaWduZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBvcHRpb25zID0gSUROQS5BTExPV19VTkFTU0lHTkVEOworICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGFzY2lpID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShsYWJlbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgfWNhdGNoKCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZG9UZXN0VG9BU0NJSShsYWJlbC50b1N0cmluZygpLCAKKyAgICAgICAgICAgICAgICAgICAgICAoYXNjaWkgPT0gbnVsbCkgPyBudWxsIDogYXNjaWkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIGlkbmFyZWZfdG9Vbmljb2RlIHdpdGggdWlkbmFfdG9Vbmljb2RlIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkgPW51bGw7CisgICAgICAgIAorICAgICAgICBpZihleHBlY3RlZCA9PSBudWxsKXsKKyAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkRFRkFVTFQ7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgIHVuaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShhc2NpaSwgb3B0aW9ucyk7CisgICAgICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlICl7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBlOworICAgICAgICAgICAgICAgIGlmKGV4cGVjdGVkLmVxdWFscyh1bmFzc2lnbmVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkFMTE9XX1VOQVNTSUdORUQ7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgdW5pID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKGFzY2lpLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKGFzY2lpLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuaT09bnVsbCk/IG51bGwgOiB1bmkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlUmVmSW1wbCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAweDQwMDAwIDsgaTwgMHgxMGZmZmY7IGkrKyl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3JjID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGlzUXVpY2soKT09dHJ1ZSAmJiBpPiAweDFGRkZGKXsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihpID49IDB4MzAwMDAgJiYgaTw9MHhmMDAwMCl7CisgICAgICAgICAgICAgICBpKz0weEIwMDAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHNyYyxpKTsKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNyYyk7CisKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlMzJOb3JtKCkgeworICAgICAgICAvKgorICAgICAgICAgKiB0ZXN0IFVuaWNvZGUgMy4yIG5vcm1hbGl6YXRpb24sIGJlZm9yZSBQdWJsaWMgUmV2aWV3IElzc3VlICMyOQorICAgICAgICAgKiBzZWUgY25vcm10c3QuYyBUZXN0Q29tcG9zaXRpb24oKQorICAgICAgICAgKi8KKyAgICAgICAgZmluYWwgU3RyaW5nIHN0cmluZ3NbXT17CisgICAgICAgICAgICAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiwKKyAgICAgICAgICAgICJcdTBiNDdcdTAzMDBcdTBiM2VcdTAzMjciCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIGFzY2lpID0gbnVsbCwgdW5pY29kZSA9IG51bGw7CisgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleDI7CisgICAgICAgIGludCBpOworCisgICAgICAgIGZvcihpPTA7IGk8c3RyaW5ncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZXgyPW51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFzY2lpPUlETkEuY29udmVydFRvQVNDSUkoc3RyaW5nc1tpXSwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB1bmljb2RlPUlETkEuY29udmVydFRvVW5pY29kZShhc2NpaSwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gY2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgZXJybG4oInN0cmluZyAiICsgaSArICIgZ2V0cyBleGNlcHRpb24gIiArIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZih1bmljb2RlID09IG51bGwgfHwgdW5pY29kZS5jb21wYXJlVG8oYXNjaWkpICE9IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdWMgPSB1bmljb2RlID09IG51bGw/ICIobnVsbCkiIDogdW5pY29kZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nICIgKyBpICsgIiB5aWVsZHMgIiArIHVjICsiIGluc3RlYWQgb2YgIiArIGFzY2lpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0NDkwKCl7CisgICAgICAgIFN0cmluZ1tdIGluID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgICAgICJcdTAwRjVcdTAwZEVcdTAwZEZcdTAwZEQiLAorICAgICAgICAgICAgICAgICJcdUZCMDBcdUZCMDEiCisgICAgICAgICAgICAgICB9OworICAgICAgICBmb3IgKCBpbnQgaT0wOyBpPCBpbi5sZW5ndGg7IGkrKyl7ICAgCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFzY2lpID0gSUROQS5jb252ZXJ0VG9BU0NJSShpbltpXSxJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdW5pY29kZSA9IElETkEuY29udmVydFRvVW5pY29kZShhc2NpaSxJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgY29udmVydFRvVW5pY29kZTogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBjb252ZXJ0VG9BU0NJSTogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEpCNDQ3NSgpeworICAgICAgICBTdHJpbmdbXSBpbiA9IG5ldyBTdHJpbmdbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICJURVNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IgorICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICBmb3IgKCBpbnQgaT0wOyBpPCBpbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYXNjaWkgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKGluW2ldLElETkEuREVGQVVMVCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZighYXNjaWkuZXF1YWxzKGluW2ldKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBjb252ZXJ0VG9BU0NJSS4gRXhwZWN0ZWQ6ICIrIGluW2ldICsiIEdvdDogIiArIGFzY2lpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTI3MygpCisgICAgeworICAgICAgICBTdHJpbmcgSU5WQUxJRF9ET01BSU5fTkFNRSA9ICJ4bi0tbVx1MDBGQ2xsZXIuZGUiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJRE5BLmNvbnZlcnRJRE5Ub1VuaWNvZGUoSU5WQUxJRF9ET01BSU5fTkFNRSwgSUROQS5ERUZBVUxUKTsKKyAgICAgICAgICAgIElETkEuY29udmVydElETlRvVW5pY29kZShJTlZBTElEX0RPTUFJTl9OQU1FLCBJRE5BLlVTRV9TVEQzX1JVTEVTKTsKKworICAgICAgICB9IGNhdGNoIChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdG9pbjogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkdvdCBhbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gY2FsbGluZyBjb252ZXJ0SUROVG9Vbmljb2RlKFwiIiArIElOVkFMSURfRE9NQUlOX05BTUUgKyAiXCIpIik7CisgICAgICAgIH0KKyAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERlYnVnKCl7ICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nIHNyYyA9ICJcdTAwRUQ0ZG4iOworICAgICAgICAgICAgU3RyaW5nIHVuaSA9IElETkEuY29udmVydFRvVW5pY29kZShzcmMsSUROQS5ERUZBVUxUKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYoIXVuaS5lcXVhbHMoc3JjKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpICsiIEdvdDogIiArdW5pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBsb2dsbigiVW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZyBhc2NpaSA9IElETkEuY29udmVydFRvQVNDSUkoIlx1MDBBRCIsSUROQS5ERUZBVUxUKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYoYXNjaWkhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BUmVmLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQVJlZi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZjU1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQVJlZi5qYXZhCkBAIC0wLDAgKzEsNjIxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SUROQVJlZiBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RJRE5BUmVmKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiB1bmFzc2lnbmVkRXhjZXB0aW9uID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIC8vIHRlc3QgU3RyaW5nQnVmZmVyIHRvVW5pY29kZQorICAgICAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIC8vZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTfElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksVGVzdERhdGEuYXNjaWlJbltpXSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsgCisgICAgICAgICAgICAgICAgLy9kb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFU3xJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOyAKKyAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9BU0NJSSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUR8SUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzMVVuaS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXMxVW5pW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUR8SUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9Vbmljb2RlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVEfElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0Lmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxUZXN0RGF0YS5kb21haW5OYW1lc1RvVW5pY29kZU91dFtpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFRvVW5pY29kZShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZighdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQudG9Mb3dlckNhc2UoKSkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIisgb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdElETlRvQVNDSUkoU3RyaW5nIHNyYywgU3RyaW5nIGV4cGVjdGVkLCBpbnQgb3B0aW9ucywgT2JqZWN0IGV4cGVjdGVkRXhjZXB0aW9uKSAKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VBU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVJlZmVyZW5jZVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiKyBvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRJRE5Ub0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAvL1Rlc3QgdG9BU0NJSQorICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1Rlc3QgdG9Vbmljb2RlCisgICAgICAgICAgICAgICAgLy9kb1Rlc3RUb1VuaWNvZGUodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkFSZWZlcmVuY2UuREVGQVVMVCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZVByZXBDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIE5hbWVQcmVwVHJhbnNmb3JtIG5hbWVQcmVwID0gTmFtZVByZXBUcmFuc2Zvcm0uZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgICAgIFRlc3REYXRhLkNvbmZvcm1hbmNlVGVzdENhc2UgdGVzdENhc2UgPSBUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlc1tpXTsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0Q2FzZS5pbnB1dCk7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmFtZVByZXAucHJlcGFyZShpdGVyLE5hbWVQcmVwVHJhbnNmb3JtLk5PTkUpOworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiICsgcHJldHRpZnkodGVzdENhc2Uub3V0cHV0KSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQhPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmFtZVByZXAucHJlcGFyZShpdGVyLE5hbWVQcmVwVHJhbnNmb3JtLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiICsgcHJldHRpZnkodGVzdENhc2Uub3V0cHV0KSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQhPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZSl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtRGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEVycm9yQ2FzZXMoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IFRlc3REYXRhLmVycm9yQ2FzZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIFRlc3REYXRhLkVycm9yQ2FzZSBlcnJDYXNlID0gVGVzdERhdGEuZXJyb3JDYXNlc1tpXTsKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnRlc3RMYWJlbD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgVG9BU0NJSQorICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMpeworICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMhPXRydWUpeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBJRE5Ub0FTQ0lJCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUyxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy9UZXN0VG9Vbmljb2RlCisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS50ZXN0VG9Vbmljb2RlPT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IElETlRvVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKGVyckNhc2UuYXNjaWksbmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLElETkFSZWZlcmVuY2UuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdENvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGJvb2xlYW4gaXNFcXVhbCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGludCByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUoczEsczIsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUobmV3IFN0cmluZ0J1ZmZlcihzMSksIG5ldyBTdHJpbmdCdWZmZXIoczIpLCBJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQVJlZmVyZW5jZS5jb21wYXJlKFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzMSksIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzMiksIElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShzMSxzMixJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB0aHJvd24gYnkgSUROQVJlZmVyZW5jZS5jb21wYXJlIik7CisgICAgICAgIH0gICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyB3d3cgPSAid3d3LiI7CisgICAgICAgIFN0cmluZyBjb20gPSAiLmNvbSI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgICAgICBzb3VyY2Uuc2V0TGVuZ3RoKDQpOworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksIHVuaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLGFzY2lpMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKworICAgIC8vICB0ZXN0IGFuZCBhc2NlcnRhaW4KKyAgICAvLyAgZnVuYyhmdW5jKGZ1bmMoc3JjKSkpID09IGZ1bmMoc3JjKQorICAgIHB1YmxpYyB2b2lkIGRvVGVzdENoYWluaW5nVG9BU0NJSShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BU0NJSQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvQVNDSUkoc291cmNlLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIGNoYWluZWQgPSBleHBlY3RlZDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IDQ7IGkrKyl7CisgICAgICAgICAgICBjaGFpbmVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROdG9BU0NJSShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9BU0NJSSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkoc291cmNlLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIGNoYWluZWQgPSBleHBlY3RlZDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IDQ7IGkrKyl7CisgICAgICAgICAgICBjaGFpbmVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9BU0NJSSIpOworICAgICAgICB9IAorICAgICAgICAKKyAgICB9CisgICAgLy8gIHRlc3QgYW5kIGFzY2VydGFpbgorICAgIC8vICBmdW5jKGZ1bmMoZnVuYyhzcmMpKSkgPT0gZnVuYyhzcmMpCisgICAgcHVibGljIHZvaWQgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoU3RyaW5nIHNvdXJjZSl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ZWQ7IAorICAgICAgICBTdHJpbmdCdWZmZXIgY2hhaW5lZDsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvVW5pY29kZQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRJRE5Ub1VuaWNvZGUoY2hhaW5lZCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydElETlRvVW5pY29kZSIpOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQQorICAgICAgICBleHBlY3RlZCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoY2hhaW5lZCxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydFRvVW5pY29kZSIpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENoYWluaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb0FTQ0lJKG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgVGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9vdExhYmVsU2VwYXJhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nIHd3dyA9ICJ3d3cuIjsKKyAgICAgICAgU3RyaW5nIGNvbSA9ICIuY29tLiI7IC8qcm9vdCBsYWJlbCBzZXBhcmF0b3IqLworICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMCAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMSAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkwID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkxID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworCisgICAgICAgIHVuaTAuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblswXSk7CisgICAgICAgIHVuaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgdW5pMS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzFdKTsKKyAgICAgICAgdW5pMS5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTAuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMF0pOworICAgICAgICBhc2NpaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkxLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzFdKTsKKyAgICAgICAgYXNjaWkxLmFwcGVuZChjb20pOworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDtpPCBUZXN0RGF0YS51bmljb2RlSW4ubGVuZ3RoOyBpKyspeworICAgIAorICAgICAgICAgICAgICAgIC8vIGZvciBldmVyeSBlbnRyeSBpbiB1bmljb2RlSW4gYXJyYXkKKyAgICAgICAgICAgICAgICAvLyBwcmVwZW5kIHd3dy4gYW5kIGFwcGVuZCAuY29tCisgICAgICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJbltpXSk7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb20pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGEpIGNvbXBhcmUgaXQgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHNvdXJjZS50b1N0cmluZygpLHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYikgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksd3d3K1Rlc3REYXRhLmFzY2lpSW5baV0rY29tLHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYykgY29tcGFyZSBpdCB3aXRoIHVuaWNvZGVJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLCB1bmkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx1bmkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZCkgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLGFzY2lpMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJbnB1dERhdGFTdHJ1Y3R1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJbnB1dERhdGFTdHJ1Y3R1cmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjg3ZWFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdElucHV0RGF0YVN0cnVjdHVyZS5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKKy8qKgorICogQGF1dGhvciBsaW1hb3l1CisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SW5wdXREYXRhU3RydWN0dXJlIHsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBkZXNjID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWViYXNlID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWV1dGY4ID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWV6b25lID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGZhaWx6b25lMSA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyBmYWlsem9uZTIgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9rZW4gPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc2ZhaWwgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgdHlwZSA9IG51bGw7CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBkZXNjLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVzYygpIHsKKyAgICAgICAgcmV0dXJuIGRlc2M7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBkZXNjIFRoZSBkZXNjIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZXNjKFN0cmluZyBkZXNjKSB7CisgICAgICAgIHRoaXMuZGVzYyA9IGRlc2M7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgZmFpbHpvbmUxLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmFpbHpvbmUxKCkgeworICAgICAgICByZXR1cm4gZmFpbHpvbmUxOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZmFpbHpvbmUxIFRoZSBmYWlsem9uZTEgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZhaWx6b25lMShTdHJpbmcgZmFpbHpvbmUxKSB7CisgICAgICAgIHRoaXMuZmFpbHpvbmUxID0gZmFpbHpvbmUxOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGZhaWx6b25lMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhaWx6b25lMigpIHsKKyAgICAgICAgcmV0dXJuIGZhaWx6b25lMjsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIGZhaWx6b25lMiBUaGUgZmFpbHpvbmUyIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGYWlsem9uZTIoU3RyaW5nIGZhaWx6b25lMikgeworICAgICAgICB0aGlzLmZhaWx6b25lMiA9IGZhaWx6b25lMjsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBuYW1lYmFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWViYXNlKCkgeworICAgICAgICByZXR1cm4gbmFtZWJhc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBuYW1lYmFzZSBUaGUgbmFtZWJhc2UgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hbWViYXNlKFN0cmluZyBuYW1lYmFzZSkgeworICAgICAgICB0aGlzLm5hbWViYXNlID0gbmFtZWJhc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgbmFtZXV0ZjguCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1ldXRmOCgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWV1dGY4OworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbmFtZXV0ZjggVGhlIG5hbWV1dGY4IHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROYW1ldXRmOChTdHJpbmcgbmFtZXV0ZjgpIHsKKyAgICAgICAgdGhpcy5uYW1ldXRmOCA9IG5hbWV1dGY4OworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIG5hbWV6b25lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZXpvbmUoKSB7CisgICAgICAgIHJldHVybiBuYW1lem9uZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIG5hbWV6b25lIFRoZSBuYW1lem9uZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZXpvbmUoU3RyaW5nIG5hbWV6b25lKSB7CisgICAgICAgIHRoaXMubmFtZXpvbmUgPSBuYW1lem9uZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBwYXNzZmFpbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3NmYWlsKCkgeworICAgICAgICByZXR1cm4gcGFzc2ZhaWw7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBwYXNzZmFpbCBUaGUgcGFzc2ZhaWwgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhc3NmYWlsKFN0cmluZyBwYXNzZmFpbCkgeworICAgICAgICB0aGlzLnBhc3NmYWlsID0gcGFzc2ZhaWw7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgdG9rZW4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUb2tlbigpIHsKKyAgICAgICAgcmV0dXJuIHRva2VuOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gdG9rZW4gVGhlIHRva2VuIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUb2tlbihTdHJpbmcgdG9rZW4pIHsKKyAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHR5cGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gdHlwZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFR5cGUoU3RyaW5nIHR5cGUpIHsKKyAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdFN0cmluZ1ByZXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RTdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3YjgxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RTdHJpbmdQcmVwLmphdmEKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICovCitwdWJsaWMgY2xhc3MgVGVzdFN0cmluZ1ByZXAgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0U3RyaW5nUHJlcCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgLyoKKyAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBzcGVjaWFsIGlkZW50aWZpZXJzICgid2hvIikgd2hpY2ggbmVlZCB0byBiZQorICAgICAgIHVuZGVyc3Rvb2QgdW5pdmVyc2FsbHksIHJhdGhlciB0aGFuIGluIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhcgorICAgICAgIEROUyBkb21haW4uICBTb21lIG9mIHRoZXNlIGlkZW50aWZpZXJzIGNhbm5vdCBiZSB1bmRlcnN0b29kIHdoZW4gYW4KKyAgICAgICBORlMgY2xpZW50IGFjY2Vzc2VzIHRoZSBzZXJ2ZXIsIGJ1dCBoYXZlIG1lYW5pbmcgd2hlbiBhIGxvY2FsIHByb2Nlc3MKKyAgICAgICBhY2Nlc3NlcyB0aGUgZmlsZS4gIFRoZSBhYmlsaXR5IHRvIGRpc3BsYXkgYW5kIG1vZGlmeSB0aGVzZQorICAgICAgIHBlcm1pc3Npb25zIGlzIHBlcm1pdHRlZCBvdmVyIE5GUywgZXZlbiBpZiBub25lIG9mIHRoZSBhY2Nlc3MgbWV0aG9kcworICAgICAgIG9uIHRoZSBzZXJ2ZXIgdW5kZXJzdGFuZHMgdGhlIGlkZW50aWZpZXJzLgorCisgICAgICAgIFdobyAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKyAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICJPV05FUiIgICAgICAgICAgICAgICAgVGhlIG93bmVyIG9mIHRoZSBmaWxlLgorICAgICAgICJHUk9VUCIgICAgICAgICAgICAgICAgVGhlIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS4KKyAgICAgICAiRVZFUllPTkUiICAgICAgICAgICAgIFRoZSB3b3JsZC4KKyAgICAgICAiSU5URVJBQ1RJVkUiICAgICAgICAgIEFjY2Vzc2VkIGZyb20gYW4gaW50ZXJhY3RpdmUgdGVybWluYWwuCisgICAgICAgIk5FVFdPUksiICAgICAgICAgICAgICBBY2Nlc3NlZCB2aWEgdGhlIG5ldHdvcmsuCisgICAgICAgIkRJQUxVUCIgICAgICAgICAgICAgICBBY2Nlc3NlZCBhcyBhIGRpYWx1cCB1c2VyIHRvIHRoZSBzZXJ2ZXIuCisgICAgICAgIkJBVENIIiAgICAgICAgICAgICAgICBBY2Nlc3NlZCBmcm9tIGEgYmF0Y2ggam9iLgorICAgICAgICJBTk9OWU1PVVMiICAgICAgICAgICAgQWNjZXNzZWQgd2l0aG91dCBhbnkgYXV0aGVudGljYXRpb24uCisgICAgICAgIkFVVEhFTlRJQ0FURUQiICAgICAgICBBbnkgYXV0aGVudGljYXRlZCB1c2VyIChvcHBvc2l0ZSBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5PTllNT1VTKQorICAgICAgICJTRVJWSUNFIiAgICAgICAgICAgICAgQWNjZXNzIGZyb20gYSBzeXN0ZW0gc2VydmljZS4KKworICAgICAgIFRvIGF2b2lkIGNvbmZsaWN0LCB0aGVzZSBzcGVjaWFsIGlkZW50aWZpZXJzIGFyZSBkaXN0aW5ndWlzaCBieSBhbgorICAgICAgIGFwcGVuZGVkICJAIiBhbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgZm9ybSAieHh4eEAiIChub3RlOiBubyBkb21haW4KKyAgICAgICBuYW1lIGFmdGVyIHRoZSAiQCIpLiAgRm9yIGV4YW1wbGU6IEFOT05ZTU9VU0AuCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1tdIG1peGVkX3ByZXBfZGF0YSA9eworICAgICAgICAiT1dORVJAIiwKKyAgICAgICAgIkdST1VQQCIsICAgICAgICAKKyAgICAgICAgIkVWRVJZT05FQCIsICAgICAKKyAgICAgICAgIklOVEVSQUNUSVZFQCIsICAKKyAgICAgICAgIk5FVFdPUktAIiwgICAgICAKKyAgICAgICAgIkRJQUxVUEAiLCAgICAgICAKKyAgICAgICAgIkJBVENIQCIsICAgICAgICAKKyAgICAgICAgIkFOT05ZTU9VU0AiLCAgICAKKyAgICAgICAgIkFVVEhFTlRJQ0FURURAIiwKKyAgICAgICAgIlx1MDkzMFx1MDk0RFx1MDkyRVx1MDk0RFx1MDkxNVx1MDk0RFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0REBzbGlwMTI5LTM3LTExOC0xNDYubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGRAc2FyYXRvZ2EucGUudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2VAZGlhbC0xMjAtNDUub3RzLnV0ZXhhcy5lZHUiLAorICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmQHdvby0wODUuZG9ybXMud2FsbGVyLm5ldCIsCisgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjhAaGQzMC0wNDkuaGlsLmNvbXB1c2VydmUuY29tIiwKKyAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNkBwZW0yMDMtMzEucGUudHR1LmVkdSIsCisgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTdANTZLLTIyNy5NYXhUTlQzLnBkcS5uZXQiLAorICAgICAgICAiXHUwOTI3XHUwOTQzXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTM3XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwQGRpYWwtMzYtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NDNAc2xpcDEyOS0zNy0yMy0xNTIuZ2EudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDdAdHM0NWlwMTE5LmNhZHZpc2lvbi5jb20iLAorICAgICAgICAiXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3QHNkbi10cy0wMDR0eGF1c3RQMDUuZGlhbHNwcmludC5uZXQiLAorICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlQGJhci10bnQxczY2LmVyb2xzLmNvbSIsCisgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDNAMTAxLnN0LWxvdWlzLTE1Lm1vLmRpYWwtYWNjZXNzLmF0dC5uZXQiLAorICAgICAgICAiXHUwOTJlXHUwOTNlXHUwOTJlXHUwOTE1XHUwOTNlXHUwOTAzQGg5Mi0yNDUuQXJjby5DT00iLAorICAgICAgICAiXHUwOTJhXHUwOTNlXHUwOTIzXHUwOTRkXHUwOTIxXHUwOTM1XHUwOTNlXHUwOTM2XHUwOTRkXHUwOTFhXHUwOTQ4XHUwOTM1QGRpYWwtMTMtMi5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MTVcdTA5M2ZcdTA5MmVcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NGRcdTA5MzVcdTA5MjRAbmV0LXJlZHluZXQyOS5kYXRhbWFya2V0cy5jb20uYXIiLAorICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFjXHUwOTM1QGNjcy1zaGl2YTI4LnJlYWNjaXVuLm5ldC52ZSIsCisgICAgICAgICJcdTBjMzBcdTBjMThcdTBjNDFcdTBjMzBcdTBjM2VcdTBjMmVcdTBjNGRANy5ob3VzdG9uLTExLnR4LmRpYWwtYWNjZXNzLmF0dC5uZXQiLAorICAgICAgICAiXHUwYzM1XHUwYzNmXHUwYzM2XHUwYzRkXHUwYzM1XHUwYzI4XHUwYzNlXHUwYzI3QGluZ3cxMjktMzctMTIwLTI2Lm1vLnVzLmlibS5uZXQiLAorICAgICAgICAiXHUwYzA2XHUwYzI4XHUwYzAyXHUwYzI2XHUwYzRkQGRpYWx1cDYuYXVzdGludHguY29tIiwKKyAgICAgICAgIlx1MEMzNVx1MEMyNlx1MEM0RFx1MEMyNlx1MEMzRlx1MEMzMFx1MEMzRVx1MEMxQ1x1MEM0MUBkbnMyLnRwYW8uZ292LnRyIiwKKyAgICAgICAgIlx1MGMzMFx1MGMzZVx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZEBzbGlwMTI5LTM3LTExOS0xOTQubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJcdTBjMTVcdTBjMzZcdTBjMzBcdTBjMmNcdTBjM2VcdTBjMjZAY3M3LmRpbGxvbnMuY28udWsuMjAzLjExOS4xOTMuaW4tYWRkci5hcnBhIiwKKyAgICAgICAgIlx1MGMzOFx1MGMwMlx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZEBzd3ByZDEuaW5ub3ZwbGFjZS5zYXNrYXRvb24uc2suY2EiLAorICAgICAgICAiXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2QGJpa2luaS5ib2xvZ25hLm1hcmF1dC5pdCIsCisgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMmNcdTBjNGRAbm9kZTkxLnN1Ym5ldDE1OS0xOTgtNzkuYmF4dGVyLmNvbSIsCisgICAgICAgICJcdTBjMzhcdTBjNDZcdTBjMjhcdTBjNGRcdTBjMTdcdTBjNDFcdTBjMmFcdTBjNGRcdTBjMjRAY3VzdDE5Lm1heDUubmV3LXlvcmsubnkubXMudXUubmV0IiwKKyAgICAgICAgIlx1MGMwNVx1MGMyZVx1MGMzMFx1MGM0N1x1MGMwMlx1MGMyNlx1MGM0ZFx1MGMzMEBiYWxleGFuZGVyLnNsaXAuYW5kcmV3LmNtdS5lZHUiLAorICAgICAgICAiXHUwYzM5XHUwYzI4XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzI4XHUwYzQxXHUwYzMyQHBvb2wwMjkubWF4Mi5kZW52ZXIuY28uZHluaXAuYWx0ZXIubmV0IiwKKyAgICAgICAgIlx1MGMzMFx1MGMzNVx1MGMzZkBjdXN0NDkubWF4OS5uZXcteW9yay5ueS5tcy51dS5uZXQiLAorICAgICAgICAiXHUwYzE1XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkQHM2MS5hYnEtZGlhbGluMi5ob2xseWJlcnJ5LmNvbSIsCisgICAgICAgICJcdTBjMzVcdTBjM2ZcdTBjMzZcdTBjNGRcdTBjMzVcdTBjMjhcdTBjM2VcdTBjMjdAXHUwOTE3XHUwOTI4XHUwOTQ3XHUwOTM2LnNhbmpvc2UuaWJtLmNvbSIsCisgICAgICAgICJcdTBjMDZcdTBjMjZcdTBjM2ZcdTBjMjRcdTBjNGRcdTBjMmZAd3d3Llx1MDBFMFx1MDBCM1x1MDBBRi5jb20iLAorICAgICAgICAiXHUwQzE1XHUwQzAyXHUwQzI2XHUwQzREXHUwQzMwXHUwQzQ3XHUwQzE3XHUwQzQxXHUwYzMyQHd3dy5cdTAwQzJcdTAwQTQuY29tIiwKKyAgICAgICAgIlx1MGMzNlx1MGM0ZFx1MGMzMFx1MGM0MFx1MEMyN1x1MEMzMFx1MEM0REB3d3cuXHUwMEMyXHUwMEEzLmNvbSIsCisgICAgICAgICJcdTBjMTVcdTBjMDJcdTBjMWZcdTBjMmVcdTBjMzZcdTBjNDZcdTBjMWZcdTBjNGRcdTBjMWZcdTBjM2ZAXHUwMDI1IiwKKyAgICAgICAgIlx1MGMyZVx1MGMzZVx1MGMyN1x1MGMzNVx1MGM0ZEBcdTAwNUNcdTAwNUMiLAorICAgICAgICAiXHUwYzI2XHUwYzQ2XHUwYzM2XHUwYzQ2XHUwYzFmXHUwYzRkXHUwYzFmXHUwYzNmQHd3dy5cdTAwMjEuY29tIiwKKyAgICAgICAgInRlc3RAd3d3Llx1MDAyNC5jb20iLAorICAgICAgICAiaGVscEBcdTAwQzNcdTAwQkMuY29tIiwKKyAgICB9OworICAgIHB1YmxpYyB2b2lkIFRlc3RORlM0TWl4ZWRQcmVwKCl7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCBtaXhlZF9wcmVwX2RhdGEubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBzcmMgPSBtaXhlZF9wcmVwX2RhdGFbaV07CisgICAgICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5taXhlZF9wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHJpbmcgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgICAgIGludCBkZXN0SW5kZXggPSBkZXN0U3RyaW5nLmluZGV4T2YoJ0AnKTsKKyAgICAgICAgICAgICAgICBpZihkZXN0SW5kZXggPCAwKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRlbGltaXRlciBAIGRpc2FwcGVhcmVkIGZyb20gdGhlIG91dHB1dCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGVycmxuKCJtaXhlZF9wcmVwYXJlIGZvciBzdHJpbmc6ICIgKyBtaXhlZF9wcmVwX2RhdGFbaV0gKyIgZmFpbGVkIHdpdGggIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIC8qIHRlc3QgdGhlIGVycm9yIGNvbmRpdGlvbiAqLworICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3JjID0gIk9XTkVSQG9zcy5zb2Z0d2FyZS5pYm0uY29tIjsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBieXRlW10gZGVzdCA9IE5GUzRTdHJpbmdQcmVwLm1peGVkX3ByZXBhcmUoc3JjLmdldEJ5dGVzKCJVVEYtOCIpKTsKKyAgICAgICAgICAgICAgICBpZihkZXN0IT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJtaXhlZF9wcmVwYXJlIGZvciBzdHJpbmc6ICIgKyBzcmMgKyIgcGFzc2VkIHdpdGggIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENJU1ByZXAoKXsKKworICAgICAgICBmb3IoaW50IGk9MDtpPCAoVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoKTtpKyspeworICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3RyaW5nIHNyYyA9IHRlc3RDYXNlLmlucHV0OworICAgICAgICAgICAgRXhjZXB0aW9uIGV4cGVjdGVkID0gdGVzdENhc2UuZXhwZWN0ZWQ7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZXN0ID0gdGVzdENhc2Uub3V0cHV0OworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID1ORlM0U3RyaW5nUHJlcC5jaXNfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0U3RyaW5nID0gbmV3IFN0cmluZyhkZXN0LCAiVVRGLTgiKTsKKyAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWREZXN0LmVxdWFsc0lnbm9yZUNhc2UoZGVzdFN0cmluZykpeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBuZnM0X2Npc19wcmVwIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMoZSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDU1ByZXAoKXsKKyAgICAgICAgCisgICAgICAgIC8vIENoZWNraW5nIGZvciBiaWRpIGlzIHR1cm5lZCBvZmYKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJcdUMxMzhcdUFDQzRcdUM3NThcdUJBQThcdUI0RTBcdUMwQUNcdUI3OENcdUI0RTRcdUM3NzRcdTA2NDRcdTA2NEFcdTA2NDdcdUQ1NUNcdUFENkRcdUM1QjRcdUI5N0NcdUM3NzRcdUQ1NzRcdUQ1NUNcdUIyRTRcdUJBNzQiOworICAgICAgICB0cnl7CisgICAgICAgICAgICBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgZmFsc2UpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG5vcm1hbGl6YXRpb24gaXMgdHVybmVkIG9mZgorICAgICAgICB0cnl7CisgICAgICAgICAgICBzcmMgPSAid3d3Llx1MDBFMFx1MDBCM1x1MDBBRi5jb20iOworICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgZmFsc2UpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHIgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgaWYoIXNyYy5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY2FzZSBpbnNlbnNpdGl2ZSBzdHJpbmcKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgc3JjID0gIlRISVNJU0FURVNUIjsKKyAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID0gTkZTNFN0cmluZ1ByZXAuY3NfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IiksIGZhbHNlKTsKKyAgICAgICAgICAgIFN0cmluZyBkZXN0U3RyID0gbmV3IFN0cmluZyhkZXN0LCAiVVRGLTgiKTsKKyAgICAgICAgICAgIGlmKCFzcmMudG9Mb3dlckNhc2UoKS5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjYXNlIHNlbnNpdGl2ZSBzdHJpbmcKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgc3JjID0gIlRISVNJU0FURVNUIjsKKyAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID0gTkZTNFN0cmluZ1ByZXAuY3NfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IiksIHRydWUpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHIgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgaWYoIXNyYy5lcXVhbHMoZGVzdFN0cikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCBvdXRwdXQuIEV4cGVjdGVkOiAiKyBwcmV0dGlmeShzcmMpKworICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiICsgcHJldHRpZnkoZGVzdFN0cikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIGlmIChuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJjb3ZlcmFnZSIsIDAsICIiLCAwLDApID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oU3RyaW5nLCBpbnQsIFN0cmluZywgaW50LCBpbnQpIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZWE2ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIHRpbWUgc2NhbGUgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiVGltZVNjYWxlQVBJVGVzdCIsCisgICAgICAgICAgICAgICAgIlRpbWVTY2FsZURhdGFUZXN0IiwKKyAgICAgICAgICAgICAgICAiVGltZVNjYWxlTW9ua2V5VGVzdCIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIkFsbCBUaW1lU2NhbGUgdGVzdHMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgID0gIlRpbWVTY2FsZSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZUFQSVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkZDU2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZUFQSVRlc3QuamF2YQpAQCAtMCwwICsxLDM2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCisvKioKKyAqIEBhdXRob3IgT3duZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lU2NhbGVBUElUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBUaW1lU2NhbGVBUElUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsRnJvbUJpZ0RlY2ltYWwoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCBiaWdaZXJvID0gbmV3IEJpZ0RlY2ltYWwoMCk7CisgICAgICAgIEJpZ0RlY2ltYWwgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbShiaWdaZXJvLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oYmlnWmVybywgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oYmlnWmVybywgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJiaWdEZWNpbWFsRnJvbShiaWdaZXJvLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbShiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKGJpZ1plcm8sIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbEZyb21Eb3VibGUoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDAuMCwgLTEpOworICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDAuMCwgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMC4wLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDAuMCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMC4wLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKDAuMCwgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsRnJvbUxvbmcoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDBMLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKDBMLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSgwTCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSk7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgwTCwgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RGcm9tTG9uZygpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgwTCwgLTEpOworICAgICAgICAgICAgZXJybG4oImZyb20oMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyb20oMEwsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShmcm9tTWluLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZyb20oZnJvbU1pbiwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21NaW4gPiBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NaW4gLSAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmcm9tKGZyb21NaW4gLSAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NYXgsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZnJvbShmcm9tTWF4LCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZyb21NYXggPCBMb25nLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NYXggKyAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmcm9tKGZyb21NYXggKyAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKDBMLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VGltZVNjYWxlKCkKKyAgICB7CisgICAgICAgIGxvbmcgdmFsdWU7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoLTEsIDApOworICAgICAgICAgICAgZXJybG4oImdldFRpbWVTY2FsZVZhbHVlKC0xLCAwKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZhbHVlID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKDAsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJnZXRUaW1lU2NhbGVWYWx1ZSgwLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCAwKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoIiArIHNjYWxlICsgIiwgMCkgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSwgMCk7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoTUFYX1NDQUxFLCAwKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoMCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRV9WQUxVRSk7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoMCwgTUFYX1NDQUxFX1ZBTFVFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0JpZ0RlY2ltYWxGcm9tQmlnRGVjaW1hbCgpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIGJpZ1plcm8gPSBuZXcgQmlnRGVjaW1hbCgwKTsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbChiaWdaZXJvLCAtMSk7CisgICAgICAgICAgICBlcnJsbigidG9CaWdEZWNpbWFsKGJpZ1plcm8sIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoYmlnWmVybywgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoYmlnWmVybywgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbChiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoYmlnWmVybywgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb0JpZ0RlY2ltYWxUcnVuYygpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIGJpZ1plcm8gPSBuZXcgQmlnRGVjaW1hbCgwKTsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWxUcnVuYyhiaWdaZXJvLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvQmlnRGVjaW1hbEZyb21Mb25nKCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoMEwsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoMEwsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9CaWdEZWNpbWFsKDBMLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoMEwsIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvTG9uZygpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDBMLCAtMSk7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKDBMLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyB0b01pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIHRvTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDBMLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvTG9uZygwTCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NaW4sIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9Mb25nKHRvTWluLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodG9NaW4gPiBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NaW4gLSAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NaW4gLSAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyh0b01heCwgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NYXgsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodG9NYXggPCBMb25nLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9NYXggKyAxLCBzY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NYXggKyAxLCAiICsgc2NhbGUgKyAiKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZygwTCwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRSk7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKDBMLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGltZVNjYWxlQVBJVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZURhdGFUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZURhdGFUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZjNTk1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlRGF0YVRlc3QuamF2YQpAQCAtMCwwICsxLDI1OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworLyoqCisgKiBAYXV0aG9yIE93bmVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgVGltZVNjYWxlRGF0YVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb250c3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRpbWVTY2FsZURhdGFUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByb3VuZFRyaXBUZXN0KGxvbmcgdmFsdWUsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIGxvbmcgcnQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKHZhbHVlLCBzY2FsZSksIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChydCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZXJyb3I6IHRpbWUgc2NhbGUgPSAiICsgc2NhbGUgKyAiLCB2YWx1ZSA9ICIgKyB2YWx1ZSArICIsIHJvdW5kLXRyaXAgPSAiICsgcnQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB0b0xpbWl0VGVzdChsb25nIHRvTGltaXQsIGxvbmcgZnJvbUxpbWl0LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBsb25nIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodG9MaW1pdCwgc2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBmcm9tTGltaXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xpbWl0IGZhaWx1cmU6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgdG9MaW1pdCA9ICIgKyB0b0xpbWl0ICsKKyAgICAgICAgICAgICAgICAgICIsIHRvTG9uZyh0b0xpbWl0LCBzY2FsZSkgPSAiICsgcmVzdWx0ICsgIiwgZnJvbUxpbWl0ID0gIiArIGZyb21MaW1pdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGVwb2NoT2Zmc2V0VGVzdChsb25nIGVwb2NoT2Zmc2V0LCBsb25nIHVuaXRzLCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBsb25nIHVuaXZlcnNhbEVwb2NoID0gZXBvY2hPZmZzZXQgKiB1bml0czsKKyAgICAgICAgbG9uZyBsb2NhbCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodW5pdmVyc2FsRXBvY2gsIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsb2NhbCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKGVwb2NoT2Zmc2V0LCBzY2FsZSk6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgZXBvY2hPZmZzZXQgPSAiICsgdW5pdmVyc2FsRXBvY2ggKworICAgICAgICAgICAgICAgICAgIiwgcmVzdWx0ID0gIiArIGxvY2FsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9jYWwgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDAsIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsb2NhbCAhPSAtZXBvY2hPZmZzZXQpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcoMCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIHJlc3VsdCA9ICIgKyBsb2NhbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvbmcgdW5pdmVyc2FsID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLWVwb2NoT2Zmc2V0LCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKC1lcG9jaE9mZmVzdCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIGVwb2NoT2Zmc2V0ID0gIiArIGVwb2NoT2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICIsIHJlc3VsdCA9ICIgKyB1bml2ZXJzYWwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB1bml2ZXJzYWwgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSgwLCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsICE9IHVuaXZlcnNhbEVwb2NoKSB7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgwLCBzY2FsZSk6IHNjYWxlID0gIiArIHNjYWxlICsgIiwgcmVzdWx0ID0gIiArIHVuaXZlcnNhbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEVwb2NoT2Zmc2V0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyB1bml0cyAgICAgICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgZXBvY2hPZmZzZXQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5FUE9DSF9PRkZTRVRfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBlcG9jaE9mZnNldFRlc3QoZXBvY2hPZmZzZXQsIHVuaXRzLCBzY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJvbUxpbWl0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICByb3VuZFRyaXBUZXN0KGZyb21NaW4sIHNjYWxlKTsKKyAgICAgICAgICAgIHJvdW5kVHJpcFRlc3QoZnJvbU1heCwgc2NhbGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0xpbWl0cygpCisgICAgeworICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgbG9uZyBmcm9tTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpOworICAgICAgICAgICAgbG9uZyBmcm9tTWF4ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NQVhfVkFMVUUpOworICAgICAgICAgICAgbG9uZyB0b01pbiAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgdG9NYXggICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01BWF9WQUxVRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRvTGltaXRUZXN0KHRvTWluLCBmcm9tTWluLCBzY2FsZSk7CisgICAgICAgICAgICB0b0xpbWl0VGVzdCh0b01heCwgZnJvbU1heCwgc2NhbGUpOworICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUZXN0IHdpdGggZGF0YSBmcm9tIC5OZXQgU3lzdGVtLkRhdGVUaW1lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvKgorICAgICAqIFRoaXMgZGF0YSB3YXMgZ2VuZXJhdGVkIGJ5IEMrKy5OZXQgY29kZSBsaWtlCisgICAgICogQ29uc29sZTo6V3JpdGVMaW5lKEwiICAgIHt7IHswfSwgMSwgMSwgSU5UNjRfQyh7MX0pIH19LCIsIHllYXIsIERhdGVUaW1lKHllYXIsIDEsIDEpLlRpY2tzKTsKKyAgICAgKiB3aXRoIHRoZSBEYXRlVGltZSBjb25zdHJ1Y3RvciB0YWtpbmcgaW50IHZhbHVlcyBmb3IgeWVhciwgbW9udGgsIGFuZCBkYXRlLgorICAgICAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgZG90TmV0RGF0ZVRpbWVUaWNrc1tdID0geworICAgICAgICAvKiB5ZWFyLCBtb250aCwgZGF5LCB0aWNrcyAqLworICAgICAgICAxMDAsIDEsIDEsIDMxMjQxMzc2MDAwMDAwMDAwTCwKKyAgICAgICAgMTAwLCAzLCAxLCAzMTI5MjM1MjAwMDAwMDAwMEwsCisgICAgICAgIDIwMCwgMSwgMSwgNjI3OTgxMTIwMDAwMDAwMDBMLAorICAgICAgICAyMDAsIDMsIDEsIDYyODQ5MDg4MDAwMDAwMDAwTCwKKyAgICAgICAgMzAwLCAxLCAxLCA5NDM1NDg0ODAwMDAwMDAwMEwsCisgICAgICAgIDMwMCwgMywgMSwgOTQ0MDU4MjQwMDAwMDAwMDBMLAorICAgICAgICA0MDAsIDEsIDEsIDEyNTkxMTU4NDAwMDAwMDAwMEwsCisgICAgICAgIDQwMCwgMywgMSwgMTI1OTYzNDI0MDAwMDAwMDAwTCwKKyAgICAgICAgNTAwLCAxLCAxLCAxNTc0NjkxODQwMDAwMDAwMDBMLAorICAgICAgICA1MDAsIDMsIDEsIDE1NzUyMDE2MDAwMDAwMDAwMEwsCisgICAgICAgIDYwMCwgMSwgMSwgMTg5MDI1OTIwMDAwMDAwMDAwTCwKKyAgICAgICAgNjAwLCAzLCAxLCAxODkwNzY4OTYwMDAwMDAwMDBMLAorICAgICAgICA3MDAsIDEsIDEsIDIyMDU4MjY1NjAwMDAwMDAwMEwsCisgICAgICAgIDcwMCwgMywgMSwgMjIwNjMzNjMyMDAwMDAwMDAwTCwKKyAgICAgICAgODAwLCAxLCAxLCAyNTIxMzkzOTIwMDAwMDAwMDBMLAorICAgICAgICA4MDAsIDMsIDEsIDI1MjE5MTIzMjAwMDAwMDAwMEwsCisgICAgICAgIDkwMCwgMSwgMSwgMjgzNjk2OTkyMDAwMDAwMDAwTCwKKyAgICAgICAgOTAwLCAzLCAxLCAyODM3NDc5NjgwMDAwMDAwMDBMLAorICAgICAgICAxMDAwLCAxLCAxLCAzMTUyNTM3MjgwMDAwMDAwMDBMLAorICAgICAgICAxMDAwLCAzLCAxLCAzMTUzMDQ3MDQwMDAwMDAwMDBMLAorICAgICAgICAxMTAwLCAxLCAxLCAzNDY4MTA0NjQwMDAwMDAwMDBMLAorICAgICAgICAxMTAwLCAzLCAxLCAzNDY4NjE0NDAwMDAwMDAwMDBMLAorICAgICAgICAxMjAwLCAxLCAxLCAzNzgzNjcyMDAwMDAwMDAwMDBMLAorICAgICAgICAxMjAwLCAzLCAxLCAzNzg0MTkwNDAwMDAwMDAwMDBMLAorICAgICAgICAxMzAwLCAxLCAxLCA0MDk5MjQ4MDAwMDAwMDAwMDBMLAorICAgICAgICAxMzAwLCAzLCAxLCA0MDk5NzU3NzYwMDAwMDAwMDBMLAorICAgICAgICAxNDAwLCAxLCAxLCA0NDE0ODE1MzYwMDAwMDAwMDBMLAorICAgICAgICAxNDAwLCAzLCAxLCA0NDE1MzI1MTIwMDAwMDAwMDBMLAorICAgICAgICAxNTAwLCAxLCAxLCA0NzMwMzgyNzIwMDAwMDAwMDBMLAorICAgICAgICAxNTAwLCAzLCAxLCA0NzMwODkyNDgwMDAwMDAwMDBMLAorICAgICAgICAxNjAwLCAxLCAxLCA1MDQ1OTUwMDgwMDAwMDAwMDBMLAorICAgICAgICAxNjAwLCAzLCAxLCA1MDQ2NDY4NDgwMDAwMDAwMDBMLAorICAgICAgICAxNzAwLCAxLCAxLCA1MzYxNTI2MDgwMDAwMDAwMDBMLAorICAgICAgICAxNzAwLCAzLCAxLCA1MzYyMDM1ODQwMDAwMDAwMDBMLAorICAgICAgICAxODAwLCAxLCAxLCA1Njc3MDkzNDQwMDAwMDAwMDBMLAorICAgICAgICAxODAwLCAzLCAxLCA1Njc3NjAzMjAwMDAwMDAwMDBMLAorICAgICAgICAxOTAwLCAxLCAxLCA1OTkyNjYwODAwMDAwMDAwMDBMLAorICAgICAgICAxOTAwLCAzLCAxLCA1OTkzMTcwNTYwMDAwMDAwMDBMLAorICAgICAgICAyMDAwLCAxLCAxLCA2MzA4MjI4MTYwMDAwMDAwMDBMLAorICAgICAgICAyMDAwLCAzLCAxLCA2MzA4NzQ2NTYwMDAwMDAwMDBMLAorICAgICAgICAyMTAwLCAxLCAxLCA2NjIzODA0MTYwMDAwMDAwMDBMLAorICAgICAgICAyMTAwLCAzLCAxLCA2NjI0MzEzOTIwMDAwMDAwMDBMLAorICAgICAgICAyMjAwLCAxLCAxLCA2OTM5MzcxNTIwMDAwMDAwMDBMLAorICAgICAgICAyMjAwLCAzLCAxLCA2OTM5ODgxMjgwMDAwMDAwMDBMLAorICAgICAgICAyMzAwLCAxLCAxLCA3MjU0OTM4ODgwMDAwMDAwMDBMLAorICAgICAgICAyMzAwLCAzLCAxLCA3MjU1NDQ4NjQwMDAwMDAwMDBMLAorICAgICAgICAyNDAwLCAxLCAxLCA3NTcwNTA2MjQwMDAwMDAwMDBMLAorICAgICAgICAyNDAwLCAzLCAxLCA3NTcxMDI0NjQwMDAwMDAwMDBMLAorICAgICAgICAyNTAwLCAxLCAxLCA3ODg2MDgyMjQwMDAwMDAwMDBMLAorICAgICAgICAyNTAwLCAzLCAxLCA3ODg2NTkyMDAwMDAwMDAwMDBMLAorICAgICAgICAyNjAwLCAxLCAxLCA4MjAxNjQ5NjAwMDAwMDAwMDBMLAorICAgICAgICAyNjAwLCAzLCAxLCA4MjAyMTU5MzYwMDAwMDAwMDBMLAorICAgICAgICAyNzAwLCAxLCAxLCA4NTE3MjE2OTYwMDAwMDAwMDBMLAorICAgICAgICAyNzAwLCAzLCAxLCA4NTE3NzI2NzIwMDAwMDAwMDBMLAorICAgICAgICAyODAwLCAxLCAxLCA4ODMyNzg0MzIwMDAwMDAwMDBMLAorICAgICAgICAyODAwLCAzLCAxLCA4ODMzMzAyNzIwMDAwMDAwMDBMLAorICAgICAgICAyOTAwLCAxLCAxLCA5MTQ4MzYwMzIwMDAwMDAwMDBMLAorICAgICAgICAyOTAwLCAzLCAxLCA5MTQ4ODcwMDgwMDAwMDAwMDBMLAorICAgICAgICAzMDAwLCAxLCAxLCA5NDYzOTI3NjgwMDAwMDAwMDBMLAorICAgICAgICAzMDAwLCAzLCAxLCA5NDY0NDM3NDQwMDAwMDAwMDBMLAorICAgICAgICAxLCAxLCAxLCAwTCwKKyAgICAgICAgMTYwMSwgMSwgMSwgNTA0OTExMjMyMDAwMDAwMDAwTCwKKyAgICAgICAgMTg5OSwgMTIsIDMxLCA1OTkyNjUyMTYwMDAwMDAwMDBMLAorICAgICAgICAxOTA0LCAxLCAxLCA2MDA1Mjc1MjAwMDAwMDAwMDBMLAorICAgICAgICAxOTcwLCAxLCAxLCA2MjEzNTU5NjgwMDAwMDAwMDBMLAorICAgICAgICAyMDAxLCAxLCAxLCA2MzExMzkwNDAwMDAwMDAwMDBMLAorICAgICAgICA5OTAwLCAzLCAxLCAzMTIzODczMjE2MDAwMDAwMDAwTCwKKyAgICAgICAgOTk5OSwgMTIsIDMxLCAzMTU1Mzc4MTEyMDAwMDAwMDAwTAorICAgIH07CisKKyAgICAvKgorICAgICAqIElDVSdzIFVuaXZlcnNhbCBUaW1lIFNjYWxlIGlzIGRlc2lnbmVkIHRvIGJlIHRpY2stZm9yLXRpY2sgY29tcGF0aWJsZSB3aXRoCisgICAgICogLk5ldCBTeXN0ZW0uRGF0ZVRpbWUuIFZlcmlmeSB0aGF0IHRoaXMgaXMgc28gZm9yIHRoZQorICAgICAqIC5OZXQtc3VwcG9ydGVkIGRhdGUgcmFuZ2UgKHllYXJzIDEtOTk5OSBBRCkuCisgICAgICogVGhpcyByZXF1aXJlcyBhIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgYmVjYXVzZSB0aGF0J3Mgd2hhdCAuTmV0IHVzZXMuCisgICAgICogUHJvbGVwdGljOiBObyBKdWxpYW4vR3JlZ29yaWFuIHN3aXRjaG92ZXIsIG9yIGEgc3dpdGNob3ZlciBiZWZvcmUKKyAgICAgKiBhbnkgZGF0ZSB0aGF0IHdlIHRlc3QsIHRoYXQgaXMsIGJlZm9yZSAwMDAxIEFELgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REb3ROZXQoKSB7CisgICAgICAgIFRpbWVab25lIHV0YzsKKyAgICAgICAgZmluYWwgbG9uZyBkYXlNaWxsaXMgPSA4NjQwMCAqIDEwMDBMOyAgICAvKiAxIGRheSA9IDg2NDAwIHNlY29uZHMgKi8KKyAgICAgICAgZmluYWwgbG9uZyBkYXlUaWNrcyA9IDg2NDAwICogMTAwMDAwMDBMOworICAgICAgICBmaW5hbCBpbnQga1llYXIgPSAwOyAgLy8gb2Zmc2V0IGZvciBkb3ROZXREYXRlVGltZVRpY2tzW10gZmllbGQKKyAgICAgICAgZmluYWwgaW50IGtNb250aCA9IDE7CisgICAgICAgIGZpbmFsIGludCBrRGF5ID0gMjsKKyAgICAgICAgZmluYWwgaW50IGtUaWNrcyA9IDM7CisgICAgICAgIGZpbmFsIGludCBrSW5jcmVtZW50ID0gNDsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsOworICAgICAgICBsb25nIGljdURhdGU7CisgICAgICAgIGxvbmcgdGlja3MsIG1pbGxpczsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogT3BlbiBhIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuICovCisgICAgICAgIGxvbmcgYmVmb3JlMDAwMUFEID0gLTEwMDAwMDAgKiBkYXlNaWxsaXM7CisgICAgICAgIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih1dGMsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShiZWZvcmUwMDAxQUQpKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgZG90TmV0RGF0ZVRpbWVUaWNrcy5sZW5ndGg7IGkgKz0ga0luY3JlbWVudCkgeworICAgICAgICAgICAgLyogVGVzdCBjb252ZXJzaW9uIGZyb20gLk5ldC9Vbml2ZXJzYWwgdGltZSB0byBJQ1UgdGltZS4gKi8KKyAgICAgICAgICAgIG1pbGxpcyA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga1RpY2tzXSwgVW5pdmVyc2FsVGltZVNjYWxlLklDVTRDX1RJTUUpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KChpbnQpZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga1llYXJdLAorICAgICAgICAgICAgICAgICAgICAoaW50KWRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtNb250aF0gLSAxLCAvKiBKYXZhICYgSUNVIHVzZSBKYW51YXJ5ID0gbW9udGggMC4gKi8KKyAgICAgICAgICAgICAgICAgICAgKGludClkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrRGF5XSk7CisgICAgICAgICAgICBpY3VEYXRlID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgaWYobWlsbGlzICE9IGljdURhdGUpIHsKKyAgICAgICAgICAgICAgICAvKiBQcmludCBkYXlzIG5vdCBtaWxsaXMuICovCisgICAgICAgICAgICAgICAgZXJybG4oIlVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcodGlja3NbIiArIGkgKyAiXSwgSUNVNEMpPSIgKworICAgICAgICAgICAgICAgICAgICAgIChtaWxsaXMvZGF5TWlsbGlzKSArICIgIT0gIiArIChpY3VEYXRlL2RheU1pbGxpcykgKworICAgICAgICAgICAgICAgICAgICAgICI9dWNhbF9nZXRNaWxsaXMoIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtZZWFyXSArCisgICAgICAgICAgICAgICAgICAgICAgIi0iICsgZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga01vbnRoXSArCisgICAgICAgICAgICAgICAgICAgICAgIi0iICsgZG90TmV0RGF0ZVRpbWVUaWNrc1tpICsga0RheV0gKyAiKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBUZXN0IGNvbnZlcnNpb24gZnJvbSBJQ1UgdGltZSB0byAuTmV0L1VuaXZlcnNhbCB0aW1lLiAqLworICAgICAgICAgICAgdGlja3MgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShpY3VEYXRlLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSk7CisgICAgICAgICAgICBpZih0aWNrcyAhPSBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrVGlja3NdKSB7CisgICAgICAgICAgICAgICAgLyogUHJpbnQgZGF5cyBub3QgdGlja3MuICovCisgICAgICAgICAgICAgICAgZXJybG4oIlVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGRhdGVbIiArIGkgKyAiXSwgSUNVNEMpPSIgKworICAgICAgICAgICAgICAgICAgICAgICh0aWNrcy9kYXlUaWNrcykgKyAiICE9ICIgKyBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrVGlja3NdL2RheVRpY2tzICsKKyAgICAgICAgICAgICAgICAgICAgICAiPS5OZXQgU3lzdGVtLkRhdGVUaW1lKCIgKyBkb3ROZXREYXRlVGltZVRpY2tzW2kgKyBrWWVhcl0gKworICAgICAgICAgICAgICAgICAgICAgICItIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtNb250aF0gKworICAgICAgICAgICAgICAgICAgICAgICItIiArIGRvdE5ldERhdGVUaW1lVGlja3NbaSArIGtEYXldICsgIikuVGlja3MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGltZVNjYWxlRGF0YVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVNb25rZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZU1vbmtleVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzI5MTVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVNb25rZXlUZXN0LmphdmEKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lc2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHRlc3RzIHRoZSBVbml2ZXJzYWxUaW1lU2NhbGUgY2xhc3MgYnkKKyAqIGdlbmVyYXRpbmcgcmFtZG9uIHZhbHVlcyBpbiByYW5nZSBhbmQgbWFraW5nIHN1cmUKKyAqIHRoYXQgdGhleSByb3VuZC10cmlwIGNvcnJlY3RseS4KKyAqLworcHVibGljIGNsYXNzIFRpbWVTY2FsZU1vbmtleVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRpbWVTY2FsZU1vbmtleVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPT1BfQ09VTlQgPSAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJpZ0RlY2ltYWwgbG9uZ01heCA9IG5ldyBCaWdEZWNpbWFsKExvbmcuTUFYX1ZBTFVFKTsKKyAgICAKKyAgICBwcml2YXRlIFJhbmRvbSByYW4gPSBudWxsOworICAgIAorICAgIHByaXZhdGUgbG9uZyByYW5JbnQ7CisgICAgcHJpdmF0ZSBsb25nIHJhbk1pbjsKKyAgICBwcml2YXRlIGxvbmcgcmFuTWF4OworICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0UmFuZG9tKGxvbmcgbWluLCBsb25nIG1heCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgaW50ZXJ2YWwgPSBuZXcgQmlnRGVjaW1hbChtYXgpLnN1YnRyYWN0KG5ldyBCaWdEZWNpbWFsKG1pbikpOworICAgICAgICAKKyAgICAgICAgcmFuTWluID0gbWluOworICAgICAgICByYW5NYXggPSBtYXg7CisgICAgICAgIHJhbkludCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAocmFuID09IG51bGwpIHsKKyAgICAgICAgICAgIHJhbiA9IGNyZWF0ZVJhbmRvbSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoaW50ZXJ2YWwuY29tcGFyZVRvKGxvbmdNYXgpIDwgMCkgeworICAgICAgICAgICAgcmFuSW50ID0gaW50ZXJ2YWwubG9uZ1ZhbHVlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBsb25nIHJhbmRvbUluUmFuZ2UoKQorICAgIHsKKyAgICAgICAgbG9uZyB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChyYW5JbnQgIT0gMCkgeworICAgICAgICAgICAgdmFsdWUgPSByYW4ubmV4dExvbmcoKSAlIHJhbkludDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gLXZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2YWx1ZSArPSByYW5NaW47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSByYW4ubmV4dExvbmcoKTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHZhbHVlIDwgcmFuTWluIHx8IHZhbHVlID4gcmFuTWF4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICBsb25nIGZyb21NaW4gPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIGZyb21NYXggPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01BWF9WQUxVRSk7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluaXRSYW5kb20oZnJvbU1pbiwgZnJvbU1heCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChpIDwgTE9PUF9DT1VOVCkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUgPSByYW5kb21JblJhbmdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxvbmcgcnQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKHZhbHVlLCBzY2FsZSksIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocnQgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZXJyb3I6IHRpbWUgc2NhbGUgPSAiICsgc2NhbGUgKyAiLCB2YWx1ZSA9ICIgKyB2YWx1ZSArICIsIHJvdW5kLXRyaXAgPSAiICsgcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3IFRpbWVTY2FsZU1vbmtleVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk4ZmQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiVGltZVpvbmVUZXN0IiwKKyAgICAgICAgICAgICJUaW1lWm9uZVJlZ3Jlc3Npb24iLAorICAgICAgICAgICAgIlRpbWVab25lQm91bmRhcnlUZXN0IiwKKy8vICAgICAgICAgICAgICJUaW1lWm9uZUFsaWFzVGVzdCIsCisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlRpbWVab25lIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUFsaWFzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQWxpYXNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDViMjk0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUFsaWFzVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDIyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkJhZ0Zvcm1hdHRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisKKy8qKgorICogQ2xhc3MgZm9yIHRlc3RpbmcgVGltZVpvbmVzIGZvciBjb25zaXN0ZW5jeQorICogQGF1dGhvciBEYXZpcworICogCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lWm9uZUFsaWFzVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lQWxpYXNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgdHdvIHRoaW5ncyB0byBjaGVjayBhbGlhc2VzIGZvcjo8YnI+CisgICAgICogMS4gdGhlIGFsaWFzIHNldCBtdXN0IGJlIHVuaWZvcm06IGlmIGEgaXNBbGlhcyBiLCB0aGVuIGFsaWFzU2V0KGEpID09IGFsaWFzU2V0KGIpPGJyPgorICAgICAqIDIuIGFsbCBhbGlhc2VzIG11c3QgaGF2ZSB0aGUgc2FtZSBvZmZzZXRzCisgICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc2VzKCkgeworICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsMCkpIHJldHVybjsKKyAgICAgICAgWm9uZS5TZWNvbmRzIHNlY29uZHMgPSBuZXcgWm9uZS5TZWNvbmRzKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBab25lLmdldFpvbmVTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgWm9uZSB6b25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gem9uZS5pZDsKKyAgICAgICAgICAgIGlmIChpZC5pbmRleE9mKCcvJykgPCAwICYmIChpZC5lbmRzV2l0aCgiU1QiKSB8fCBpZC5lbmRzV2l0aCgiRFQiKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoem9uZS5taW5SZWNlbnRPZmZzZXQgIT0gem9uZS5tYXhSZWNlbnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiU3RhbmRhcmQgb3IgRGF5bGlnaHQgVGltZSBub3QgY29uc3RhbnQ6ICIgKyBpZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjogIiArIFpvbmUuZm9ybWF0SG91cnMoem9uZS5taW5SZWNlbnRPZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgIT0gIiArIFpvbmUuZm9ybWF0SG91cnMoem9uZS5tYXhSZWNlbnRPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTZXQgYWxpYXNlcyA9IHpvbmUuZ2V0UHVycG9ydGVkQWxpYXNlcygpOworICAgICAgICAgICAgU2V0IGFsaWFzZXNTZXQgPSBuZXcgVHJlZVNldChhbGlhc2VzKTsKKyAgICAgICAgICAgIGFsaWFzZXNTZXQuYWRkKGlkKTsgLy8gZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgIEl0ZXJhdG9yIGFsaWFzSXRlcmF0b3IgPSBhbGlhc2VzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoYWxpYXNJdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3RoZXJJZCA9IChTdHJpbmcpYWxpYXNJdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICAgICAgWm9uZSBvdGhlclpvbmUgPSBab25lLm1ha2Uob3RoZXJJZCk7CisgICAgICAgICAgICAgICAgU2V0IG90aGVyQWxpYXNlcyA9IG90aGVyWm9uZS5nZXRQdXJwb3J0ZWRBbGlhc2VzKCk7CisgICAgICAgICAgICAgICAgb3RoZXJBbGlhc2VzLmFkZChvdGhlcklkKTsgLy8gZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBpZiAoIWFsaWFzZXNTZXQuZXF1YWxzKG90aGVyQWxpYXNlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiQWxpYXNlcyBVbnN5bW1ldHJpYzogIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBpZCArICIgPT4gIiArIFpvbmUuYmYuam9pbihhbGlhc2VzU2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOyAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBvdGhlcklkICsgIiA9PiAiICsgWm9uZS5iZi5qb2luKG90aGVyQWxpYXNlcykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoem9uZS5maW5kT2Zmc2V0T3JkZXJpbmcob3RoZXJab25lLCBzZWNvbmRzKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJBbGlhc2VzIGRpZmZlcjogIiArIGlkICsgIiwgIiArIG90aGVySWQKKyAgICAgICAgICAgICAgICAgICAgICAgICArICIgZGlmZmVyIGF0ICIgKyBzZWNvbmRzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2UgY2hlY2sgdG8gc2VlIHRoYXQgZXZlcnkgdGltZXpvbmUgdGhhdCBpcyBub3QgYW4gYWxpYXMgaXMgYWN0dWFsbHkgZGlmZmVyZW50IQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaWZmZXJlbmNlcygpIHsKKyAgICAgICAgaWYgKHNraXBJZkJlZm9yZUlDVSgzLDApKSByZXR1cm47CisgICAgICAgIFpvbmUgbGFzdCA9IG51bGw7CisgICAgICAgIFpvbmUuU2Vjb25kcyBkaWZmRGF0ZSA9IG5ldyBab25lLlNlY29uZHMoKTsgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gWm9uZS5nZXRab25lU2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgWm9uZSB0ZXN0Wm9uZSA9IChab25lKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChsYXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tbW9uID0gdGVzdFpvbmUgKyAiXHR2cyAiICsgbGFzdCArICI6XHQiOworICAgICAgICAgICAgICAgIGludCBkaWZmID0gdGVzdFpvbmUuZmluZE9mZnNldE9yZGVyaW5nKGxhc3QsIGRpZmZEYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBjb21tb24gKyAiZGlmZmVyZW5jZSBhdDogIiArIGRpZmZEYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgWm9uZS5mb3JtYXRIb3VycyhkaWZmKSArICJociIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdFpvbmUuaXNSZWFsQWxpYXMobGFzdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0IiArIGNvbW1vbiArICJhbGlhcywgbm8gZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGNvbW1vbiArICJOT1QgQUxJQVMgQlVUIE5PIERJRkZFUkVOQ0UhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdCA9IHRlc3Rab25lOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgZm9yIHByaW50aW5nIG91dCB6b25lcyB0byBiZSB0cmFuc2xhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBUZXN0R2VuZXJhdGVab25lcygpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IFpvbmUuZ2V0VW5pcXVlWm9uZVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFpvbmUgem9uZSA9IChab25lKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih6b25lLnRvU3RyaW5nKGNvdW50KyspKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogVXRpbGl0eTsgb3VnaHQgdG8gYmUgc29tZXBsYWNlIGNvbW1vbgorICAgICAqLworICAgIC8qCisgICAgc3RhdGljIFN0cmluZyBqb2luKENvbGxlY3Rpb24gYywgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIGlzRmlyc3QgPSB0cnVlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgaWYgKCFpc0ZpcnN0KSByZXN1bHQuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBlbHNlIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgKi8KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIGd1dHMgaXMgaW4gdGhpcyBzdWJjbGFzcy4gSXQgc3Vja3MgaW4gYWxsIHRoZSBkYXRhIGZyb20gdGhlIHpvbmVzLAorICAgICAqIGFuZCBhbmFseXNlcyBpdC4gSXQgY29uc3RydWN0cyBzb21lIG1hcHBpbmdzIGZvciB0aGUgdW5pcXVlIGlkcywKKyAgICAgKiBldGMuPGJyPgorICAgICAqIFRoZSBtYWluIHRyaWNreSBiaXQgaXMgdGhhdCBmb3IgcGVyZm9ybWFuY2UgaXQgcHJlLWFuYWx5c2VzIGFsbCB6b25lcworICAgICAqIGZvciBpbmZsZWN0aW9ucyBwb2ludHM7IHRoZSBwb2ludHMgaW4gdGltZSB3aGVyZSB0aGUgb2Zmc2V0IGNoYW5nZXMuCisgICAgICogVGhlIHpvbmVzIGNhbiB0aGVuIGJlIHNvcnRlZCBieSB0aG9zZSBwb2ludHMsIHdoaWNoIGFsbG93cyB1cyB0bworICAgICAqIGF2b2lkIGV4cGVuc2l2ZSBjb21wYXJpc29ucy4KKyAgICAgKiBAYXV0aG9yIERhdmlzCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFpvbmUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgLy8gY2xhc3MgZmllbGRzCisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKS5zZXRTZXBhcmF0b3IoIiwgIik7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5VUyk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEhPVVIgPSAxMDAwKjYwKjYwOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgREhPVVIgPSBIT1VSOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIERBWSA9IDI0KkhPVVI7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgR1JPU1NfUEVSSU9EID0gMzAqREFZOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEVQU0lMT04gPSBIT1VSLzQ7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCBjdXJyZW50WWVhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyBlbmREYXRlID0gZ2V0RGF0ZSgoY3VycmVudFllYXIrMSksMCwxKS5nZXRUaW1lKCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgZW5kRGF0ZTIgPSBnZXREYXRlKChjdXJyZW50WWVhcisxKSw2LDEpLmdldFRpbWUoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyByZWNlbnRMaW1pdCA9IGdldERhdGUoKGN1cnJlbnRZZWFyLTEpLDYsMSkuZ2V0VGltZSgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIHN0YXJ0RGF0ZSA9IGdldERhdGUoMTkwNSwwLDEpLmdldFRpbWUoKTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE1hcCBpZFRvWm9uZSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIFNldCB6b25lU2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgU2V0IHVuaXF1ZVpvbmVTZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBNYXAgaWRUb1JlYWxBbGlhc2VzID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBidWlsZCBldmVyeXRoaW5nIG9uY2UuCisgICAgICAgIHN0YXRpYyB7CisgICAgICAgICAgICBTdHJpbmcgW10gZm9vID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHpvbmVTZXQuYWRkKFpvbmUubWFrZShmb29baV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFpvbmUgbGFzdCA9IG51bGw7CisgICAgICAgICAgICBab25lLlNlY29uZHMgZGlmZkRhdGUgPSBuZXcgWm9uZS5TZWNvbmRzKCk7CisgICAgICAgICAgICBTdHJpbmcgbGFzdFVuaXF1ZSA9ICIiOyAgICAgIAorICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IFpvbmUuZ2V0Wm9uZVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBab25lIHRlc3Rab25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChsYXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5pcXVlWm9uZVNldC5hZGQodGVzdFpvbmUpOworICAgICAgICAgICAgICAgICAgICBsYXN0VW5pcXVlID0gdGVzdFpvbmUuaWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZmYgPSB0ZXN0Wm9uZS5maW5kT2Zmc2V0T3JkZXJpbmcobGFzdCwgZGlmZkRhdGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVab25lU2V0LmFkZCh0ZXN0Wm9uZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VW5pcXVlID0gdGVzdFpvbmUuaWQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXQgYWxpYXNlcyA9IChTZXQpaWRUb1JlYWxBbGlhc2VzLmdldChsYXN0VW5pcXVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGlhc2VzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZFRvUmVhbEFsaWFzZXMucHV0KGxhc3RVbmlxdWUsIGFsaWFzZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlcy5hZGQodGVzdFpvbmUuaWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3QgPSB0ZXN0Wm9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIHB1YmxpYyBTZXQgZ2V0Wm9uZVNldCgpIHsKKyAgICAgICAgICAgIHJldHVybiB6b25lU2V0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRVbmlxdWVab25lU2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHVuaXF1ZVpvbmVTZXQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgcHVibGljIFpvbmUgbWFrZShTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIFpvbmUgcmVzdWx0ID0gKFpvbmUpaWRUb1pvbmUuZ2V0KGlkKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBab25lKGlkKTsKKyAgICAgICAgICAgIGlkVG9ab25lLnB1dChpZCwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGZvcm1hdEhvdXJzKGludCBob3VycykgeworICAgICAgICAgICAgcmV0dXJuIG5mLmZvcm1hdChob3Vycy9ESE9VUik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHV0aWxpdHkgY2xhc3MgZm9yIGRhdGUgcmV0dXJuLCBiZWNhdXNlIERhdGUgaXMgY2x1bmt5LgorICAgICAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNlY29uZHMgeworICAgICAgICAgICAgcHVibGljIGxvbmcgc2Vjb25kcyA9IExvbmcuTUlOX1ZBTFVFOworICAgICAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kcyA9PSBMb25nLk1JTl9WQUxVRSkgcmV0dXJuICJuL2EiOworICAgICAgICAgICAgICAgIHJldHVybiBkZi5mb3JtYXQobmV3IERhdGUoc2Vjb25kcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpbnN0YW5jZSBmaWVsZHMKKyAgICAgICAgLy8gd2Uga2VlcCBtaW4vbWF4IG9mZnNldHMgbm90IG9ubHkgb3ZlciBhbGwgdGltZSAodGhhdCB3ZSBjYXJlIGFib3V0KQorICAgICAgICAvLyBidXQgYWxzbyBzZXBhcmF0ZSBvbmVzIGZvciByZWNlbnQgeWVhcnMuCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGlkOworICAgICAgICBwcml2YXRlIFRpbWVab25lIHpvbmU7CisgICAgICAgIC8vIGNvbXB1dGVkIGJlbG93CisgICAgICAgIHByaXZhdGUgaW50IG1pbk9mZnNldDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbWF4T2Zmc2V0OworICAgICAgICBwcml2YXRlIGludCBtaW5SZWNlbnRPZmZzZXQ7CisgICAgICAgIHByaXZhdGUgaW50IG1heFJlY2VudE9mZnNldDsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IGluZmxlY3Rpb25Qb2ludHMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHByaXZhdGUgU2V0IHB1cnBvcnRlZEFsaWFzZXMgPSBuZXcgVHJlZVNldCgpOworICAgIAorICAgICAgICBwcml2YXRlIFpvbmUoU3RyaW5nIGlkKSB7IC8vIGZvciBpbnRlcmFsIHVzZSBvbmx5OyB1c2UgbWFrZSBpbnN0ZWFkIQorICAgICAgICAgICAgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKGlkKTsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZ2V0IGFsaWFzZXMKKyAgICAgICAgICAgIGludCBlcXVpdkNvdW50ID0gVGltZVpvbmUuY291bnRFcXVpdmFsZW50SURzKGlkKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXF1aXZDb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFsdElEID0gVGltZVpvbmUuZ2V0RXF1aXZhbGVudElEKGlkLCBqKTsKKyAgICAgICAgICAgICAgICBpZiAoYWx0SUQuZXF1YWxzKGlkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgcHVycG9ydGVkQWxpYXNlcy5hZGQoYWx0SUQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBmaW5kIGluZmxleGlvbiBwb2ludHM7IHRpbWVzIHdoZXJlIHRoZSBvZmZzZXQgY2hhbmdlZAorICAgICAgICAgICAgbG9uZyBsYXN0RGF0ZSA9IGVuZERhdGU7CisgICAgICAgICAgICBpZiAoem9uZS5nZXRPZmZzZXQobGFzdERhdGUpIDwgem9uZS5nZXRPZmZzZXQoZW5kRGF0ZTIpKSBsYXN0RGF0ZSA9IGVuZERhdGUyOworICAgICAgICAgICAgbWF4UmVjZW50T2Zmc2V0ID0gbWluUmVjZW50T2Zmc2V0ID0gbWluT2Zmc2V0ID0gbWF4T2Zmc2V0ID0gem9uZS5nZXRPZmZzZXQobGFzdERhdGUpOworCisgICAgICAgICAgICBpbmZsZWN0aW9uUG9pbnRzLmFkZChuZXcgTG9uZyhsYXN0RGF0ZSkpOworICAgICAgICAgICAgaW50IGxhc3RPZmZzZXQgPSB6b25lLmdldE9mZnNldChlbmREYXRlKTsKKyAgICAgICAgICAgIGxvbmcgbGFzdEluZmxlY3Rpb24gPSBlbmREYXRlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSBkbyBhIGdyb3NzIHNlYXJjaCwgdGhlbiBuYXJyb3cgaW4gd2hlbiB3ZSBmaW5kIGEgZGlmZmVyZW5jZSBmcm9tIHRoZSBsYXN0IG9uZQorICAgICAgICAgICAgZm9yIChsb25nIGN1cnJlbnREYXRlID0gZW5kRGF0ZTsgY3VycmVudERhdGUgPj0gc3RhcnREYXRlOyBjdXJyZW50RGF0ZSAtPSBHUk9TU19QRVJJT0QpIHsKKyAgICAgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IHpvbmUuZ2V0T2Zmc2V0KGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCAhPSBsYXN0T2Zmc2V0KSB7IC8vIEJpbmFyeSBTZWFyY2gKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPCBtaW5PZmZzZXQpIG1pbk9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0ID4gbWF4T2Zmc2V0KSBtYXhPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgICAgICAgICBpZiAobGFzdEluZmxlY3Rpb24gPj0gcmVjZW50TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0IDwgbWluUmVjZW50T2Zmc2V0KSBtaW5SZWNlbnRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPiBtYXhSZWNlbnRPZmZzZXQpIG1heFJlY2VudE9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9uZyBsb3cgPSBjdXJyZW50RGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyBoaWdoID0gbGFzdERhdGU7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsb3cgLSBoaWdoID4gRVBTSUxPTikgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtaWQgPSAoaGlnaCArIGxvdykvMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaWRPZmZzZXQgPSB6b25lLmdldE9mZnNldChtaWQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pZE9mZnNldCA9PSBsb3cpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3cgPSBtaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW5mbGVjdGlvblBvaW50cy5hZGQobmV3IExvbmcobG93KSk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmZsZWN0aW9uID0gbG93OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZmxlY3Rpb25Qb2ludHMuYWRkKG5ldyBMb25nKHN0YXJ0RGF0ZSkpOyAvLyBqdXN0IHRvIGNhcCBpdCBvZmYgZm9yIGNvbXBhcmlzb25zLgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB3ZSBhc3N1bWUgdGhhdCBwbGFjZXMgd2lsbCBub3QgY29udmVydCB0aW1lIHpvbmVzIHRoZW4gYmFjayB3aXRoaW4gb25lIGRheQorICAgICAgICAvLyBzbyB3ZSBnbyBmaXJzdCBieSBoYWxmCisgICAgICAgIHB1YmxpYyBpbnQgZmluZE9mZnNldE9yZGVyaW5nKFpvbmUgb3RoZXIsIFNlY29uZHMgZGF0ZURpZmZGb3VuZCkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIi1kaWZmOiAiICsgaWQgKyAiXHQiICsgb3RoZXIuaWQpOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBsb25nIHNlY29uZHMgPSAwOworICAgICAgICAgICAgaW50IG1pbiA9IGluZmxlY3Rpb25Qb2ludHMuc2l6ZSgpOworICAgICAgICAgICAgaWYgKG90aGVyLmluZmxlY3Rpb25Qb2ludHMuc2l6ZSgpIDwgbWluKSBtaW4gPSBvdGhlci5pbmZsZWN0aW9uUG9pbnRzLnNpemUoKTsKKyAgICAgICAgICAgIG1haW46CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaW47ICsraSkgeworICAgICAgICAgICAgICAgICAgICBsb25nIG15SVAgPSAoKExvbmcpaW5mbGVjdGlvblBvaW50cy5nZXQoaSkpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsb25nIG90aGVySVAgPSAoKExvbmcpb3RoZXIuaW5mbGVjdGlvblBvaW50cy5nZXQoaSkpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobXlJUCA+IG90aGVySVApIHsgLy8gdGFrZSBsb3dlc3QsIGZvciB0cmFuc2l0aXZpdHkgKHNlbWkpCisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRlbXAgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgbXlJUCA9IG90aGVySVA7CisgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcklQID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB6b25lLmdldE9mZnNldChteUlQKSAtIG90aGVyLnpvbmUuZ2V0T2Zmc2V0KG15SVApOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG15SVAgPT0gb3RoZXJJUCkgY29udGludWU7IC8vIHRlc3Qgb3RoZXIgaWYgZGlmZmVyZW50CisgICAgICAgICAgICAgICAgICAgIG15SVAgPSBvdGhlcklQOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB6b25lLmdldE9mZnNldChteUlQKSAtIG90aGVyLnpvbmUuZ2V0T2Zmc2V0KG15SVApOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSBteUlQOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gaWYgdGhleSBhcmUgZXF1YWwgc28gZmFyLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN0CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgICAgICBzZWNvbmRzID0gTG9uZy5NSU5fVkFMVUU7CisgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIrZGlmZjogIiArIChyZXN1bHQvSE9VUikgKyAiXHQiICsgZGF0ZURpZmZGb3VuZCk7CisgICAgICAgICAgICBpZiAoZGF0ZURpZmZGb3VuZCAhPSBudWxsKSBkYXRlRGlmZkZvdW5kLnNlY29uZHMgPSBzZWNvbmRzOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gaW50ZXJuYWwgYnVmZmVyIHRvIGF2b2lkIGNyZWF0aW9uIGFsbCB0aGUgdGltZS4KKyAgICAgICAgcHJpdmF0ZSBTZWNvbmRzIGRpZmZEYXRlUmV0dXJuID0gbmV3IFNlY29uZHMoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisgICAgICAgICAgICBab25lIG90aGVyID0gKFpvbmUpbzsKKyAgICAgICAgICAgIC8vIGZpcnN0IG9yZGVyIGJ5IG1heCBhbmQgbWluIG9mZnNldHMKKyAgICAgICAgICAgIC8vIG1pbiB3aWxsIHVzdWFsbHkgY29ycmVzcG9uZCB0byBzdGFuZGFyZCB0aW1lLCBtYXggdG8gZGF5bGlnaHQKKyAgICAgICAgICAgIC8vIHVubGVzcyB0aGVyZSBoYXZlIGJlZW4gaGlzdG9yaWNhbCBzaGlmdHMKKyAgICAgICAgICAgIGlmIChtaW5SZWNlbnRPZmZzZXQgPCBvdGhlci5taW5SZWNlbnRPZmZzZXQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChtaW5SZWNlbnRPZmZzZXQgPiBvdGhlci5taW5SZWNlbnRPZmZzZXQpIHJldHVybiAxOworICAgICAgICAgICAgaWYgKG1heFJlY2VudE9mZnNldCA8IG90aGVyLm1heFJlY2VudE9mZnNldCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKG1heFJlY2VudE9mZnNldCA+IG90aGVyLm1heFJlY2VudE9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICAvLyBub3cgY2hlY2sgdGhhdCBhbGwgb2Zmc2V0cyBhcmUgdGhlIHNhbWUgb3ZlciBoaXN0b3J5CisgICAgICAgICAgICBpbnQgZGlmZkRhdGUgPSBmaW5kT2Zmc2V0T3JkZXJpbmcob3RoZXIsIGRpZmZEYXRlUmV0dXJuKTsKKyAgICAgICAgICAgIGlmIChkaWZmRGF0ZSAhPSAwKSByZXR1cm4gZGlmZkRhdGU7CisgICAgICAgICAgICAvLyBjaG9vc2UgbG9uZ2VyIG5hbWUgZmlyc3QhIQorICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpICE9IG90aGVyLmlkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpIDwgb3RoZXIuaWQubGVuZ3RoKCkpIHJldHVybiAxOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpZC5jb21wYXJlVG8ob3RoZXIuaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU2V0IGdldFB1cnBvcnRlZEFsaWFzZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRyZWVTZXQocHVycG9ydGVkQWxpYXNlcyk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNQdXJwb3J0ZWRBbGlhcyhTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJldHVybiBwdXJwb3J0ZWRBbGlhc2VzLmNvbnRhaW5zKGlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNSZWFsQWxpYXMoWm9uZSB6KSB7CisgICAgICAgICAgICByZXR1cm4gcHVycG9ydGVkQWxpYXNlcy5jb250YWlucyh6LmlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQdXJwb3J0ZWRBbGlhc2VzQXNTdHJpbmcoKSB7CisgICAgICAgICAgICBTZXQgcyA9IGdldFB1cnBvcnRlZEFsaWFzZXMoKTsKKyAgICAgICAgICAgIGlmIChzLnNpemUoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgICAgICByZXR1cm4gIiAiICsgYmYuam9pbihzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRSZWFsQWxpYXNlc0FzU3RyaW5nKCkgeworICAgICAgICAgICAgU2V0IHMgPSAoU2V0KWlkVG9SZWFsQWxpYXNlcy5nZXQoaWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgcmV0dXJuICIiOworICAgICAgICAgICAgcmV0dXJuICIgKiIgKyBiZi5qb2luKHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldENpdHkoKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gaWQubGFzdEluZGV4T2YoKCcvJykpOworICAgICAgICAgICAgU3RyaW5nIGNpdHkgPSBpZC5zdWJzdHJpbmcocG9zKzEpOworICAgICAgICAgICAgcmV0dXJuIGNpdHkucmVwbGFjZSgnXycsJyAnKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gdG9TdHJpbmcoLTEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogV2hlcmUgY291bnQgPiAwLCByZXR1cm5zIHN0cmluZyB0aGF0IGlzIHNldCB1cCBmb3IgdHJhbnNsYXRpb24KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNvdW50KSB7CisgICAgICAgICAgICBTdHJpbmcgY2l0eSA9IGdldENpdHkoKTsKKyAgICAgICAgICAgIFN0cmluZyBob3VycyA9IGZvcm1hdEhvdXJzKG1pblJlY2VudE9mZnNldCkKKyAgICAgICAgICAgICAgICArIChtaW5SZWNlbnRPZmZzZXQgIT0gbWF4UmVjZW50T2Zmc2V0IAorICAgICAgICAgICAgICAgICAgICA/ICIsIiArIGZvcm1hdEhvdXJzKG1heFJlY2VudE9mZnNldCkgCisgICAgICAgICAgICAgICAgICAgIDogIiIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpZCArIGdldFB1cnBvcnRlZEFsaWFzZXNBc1N0cmluZygpICsgIiAoIiArIGhvdXJzICsgIikiOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIC8vIGZvciBnZXR0aW5nIHRlbXBsYXRlIGZvciB0cmFuc2xhdGlvbgorICAgICAgICAgICAgcmV0dXJuICJcdHtcdFwiIiArIGlkICsgIlwiXHQvLyBbIiArIGNvdW50ICsgIl0gIiArIGhvdXJzIAorICAgICAgICAgICAgICAgICsgZ2V0UmVhbEFsaWFzZXNBc1N0cmluZygpICsgIlxyXG4iCisgICAgICAgICAgICAgICAgKyAiXHRcdC8vIHRyYW5zbGF0ZSB0aGUgZm9sbG93aW5nISFcclxuIgorICAgICAgICAgICAgICAgICsgKG1pblJlY2VudE9mZnNldCAhPSBtYXhSZWNlbnRPZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgPyAiXHRcdFwiIiArIGNpdHkgKyAiIFN0YW5kYXJkIFRpbWVcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIi1TVFwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiIiArIGNpdHkgKyAiIERheWxpZ2h0IFRpbWVcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIi1EVFwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgOiAiXHRcdFwiXCJcclxuIgorICAgICAgICAgICAgICAgICAgICArICJcdFx0XCJcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIlwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiXCJcclxuIikKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICIgVGltZVwiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICItVFwiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICJcIlxyXG4iCisgICAgICAgICAgICAgICAgKyAiXHR9IjsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQm91bmRhcnlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODVhNWEzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhCkBAIC0wLDAgKzEsODQ0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKioKKyAqIEEgdGVzdCB3aGljaCBkaXNjb3ZlcnMgdGhlIGJvdW5kYXJpZXMgb2YgRFNUIHByb2dyYW1tYXRpY2FsbHkgYW5kIHZlcmlmaWVzCisgKiB0aGF0IHRoZXkgYXJlIGNvcnJlY3QuCisgKi8KK3B1YmxpYyBjbGFzcyBUaW1lWm9uZUJvdW5kYXJ5VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgc3RhdGljIGZpbmFsIGludCBPTkVfU0VDT05EID0gMTAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE9ORV9NSU5VVEUgPSA2MCpPTkVfU0VDT05EOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT05FX0hPVVIgPSA2MCpPTkVfTUlOVVRFOworICAgIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCpPTkVfSE9VUjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBPTkVfWUVBUiA9IChsb25nKSgzNjUuMjUgKiBPTkVfREFZKTsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBTSVhfTU9OVEhTID0gT05FX1lFQVIgLyAyOworCisgICAgc3RhdGljIGZpbmFsIGludCBNT05USF9MRU5HVEhbXSA9IHszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMX07CisKKyAgICAvLyBUaGVzZSB2YWx1ZXMgYXJlIGVtcGlyaWNhbGx5IGRldGVybWluZWQgdG8gYmUgY29ycmVjdAorICAgIHN0YXRpYyBmaW5hbCBsb25nIFBTVF8xOTk3X0JFRyAgPSA4NjAzMjA4MDAwMDBMOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFBTVF8xOTk3X0VORCAgPSA4Nzc4NTY0MDAwMDBMOworCisgICAgLy8gTWluaW11bSBpbnRlcnZhbCBmb3IgYmluYXJ5IHNlYXJjaGVzIGluIG1zOyBzaG91bGQgYmUgbm8gbGFyZ2VyCisgICAgLy8gdGhhbiAxMDAwLgorICAgIHN0YXRpYyBmaW5hbCBsb25nIElOVEVSVkFMID0gMTA7IC8vIE1pbGxpc2Vjb25kcworCisgICAgLy8gWzNKYW4wMSBMaXVdIFVwZGF0ZWQgZm9yIDIwMDBmIGRhdGEKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEFVU1RSQUxJQSA9ICJBdXN0cmFsaWEvQWRlbGFpZGUiOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEFVU1RSQUxJQV8xOTk3X0JFRyA9IDg3Nzc5NzAwMDAwMEw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgQVVTVFJBTElBXzE5OTdfRU5EID0gODU5NjUzMDAwMDAwTDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lQm91bmRhcnlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoKSBCb3VuZGFyeSBUZXN0CisgICAgICogTG9vayBmb3IgYSBEU1QgY2hhbmdlb3ZlciB0byBvY2N1ciB3aXRoaW4gNiBtb250aHMgb2YgdGhlIGdpdmVuIERhdGUuCisgICAgICogVGhlIGluaXRpYWwgRGF0ZS50b1N0cmluZygpIHNob3VsZCB5aWVsZCBhIHN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAqIHN0YXJ0TW9kZSBhcyBhIFNVQlNUUklORy4gIFRoZSBib3VuZGFyeSB3aWxsIGJlIHRlc3RlZCB0byBiZQorICAgICAqIGF0IHRoZSBleHBlY3RlZEJvdW5kYXJ5IHZhbHVlLgorICAgICAqLworICAgIHZvaWQgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0RhdGUoRGF0ZSBkLCBTdHJpbmcgc3RhcnRNb2RlLCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICBpZiAoZC50b1N0cmluZygpLmluZGV4T2Yoc3RhcnRNb2RlKSA9PSAtMSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkVycm9yOiAiICsgc3RhcnRNb2RlICsgIiBub3QgcHJlc2VudCBpbiAiICsgZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyBTSVhfTU9OVEhTOworCisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAgICAgeworICAgICAgICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgICAgICAgICAgU3RyaW5nIHMgPSBuZXcgRGF0ZShtaWQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAvLyBsb2dsbihzKTsKKyAgICAgICAgICAgIGlmIChzLmluZGV4T2Yoc3RhcnRNb2RlKSAhPSAtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkRhdGUgQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgICAgIGxvZ2xuKCJEYXRlIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgICAgICBsb25nIG1pbmRlbHRhID0gZXhwZWN0ZWRCb3VuZGFyeSAtIG1pbjsKKyAgICAgICAgLy8gbm90IHVzZWQgbG9uZyBtYXhkZWx0YSA9IG1heCAtIGV4cGVjdGVkQm91bmRhcnk7CisgICAgICAgIGlmIChtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMICYmCisgICAgICAgICAgICBtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5KTsKKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2Fubm90IGJlIGNvbXBpbGVkIHVudGlsIHRoZSBpbkRheWxpZ2h0VGltZSgpIG1ldGhvZCBvZiBHcmVnb3JpYW5DYWxlbmRhcgorICAgIC8vIGJlY29tZXMgcHVibGljLgorICAgIC8vICAgIHN0YXRpYyB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdDYWxlbmRhcihEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgeworICAgIC8vICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgLy8gIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKyAgICAvLworICAgIC8vICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAvLyAgY2FsLnNldFRpbWUoZCk7CisgICAgLy8gIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSAhPSBzdGFydHNJbkRTVCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgIC8vICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAvLyAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAvLyAgbG9uZyBtYXggPSBtaW4gKyAobG9uZykoMzY1LjI1IC8gMiAqIDI0KjYwKjYwKjEwMDApOworICAgIC8vCisgICAgLy8gIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgIC8vICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlkKSk7CisgICAgLy8gICAgICBpZiAoY2FsLmluRGF5bGlnaHRUaW1lKCkgPT0gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtaW4gPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gICAgICBlbHNlCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtYXggPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBsb2dsbigiQ2FsZW5kYXIgQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgLy8gIGxvZ2xuKCJDYWxlbmRhciBBZnRlcjogICIgKyBzaG93RGF0ZShtYXgpKTsKKyAgICAvLyAgICB9CisKKyAgICB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShkLCBzdGFydHNJbkRTVCwgZXhwZWN0ZWRCb3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgdm9pZCBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSwgVGltZVpvbmUgdHopCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyBTSVhfTU9OVEhTOworCisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShkKSAhPSBzdGFydHNJbkRTVCkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0ei5nZXRJRCgpICsgIiBpbkRheWxpZ2h0VGltZSgiICsKKyAgICAgICAgICAgICAgICAgIGQgKyAiKSAhPSAiICsgc3RhcnRzSW5EU1QpOworICAgICAgICAgICAgc3RhcnRzSW5EU1QgPSAhc3RhcnRzSW5EU1Q7IC8vIEZsaXAgb3ZlcjsgZmluZCB0aGUgYXBwYXJlbnQgdmFsdWUKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXgpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0ei5nZXRJRCgpICsgIiBpbkRheWxpZ2h0VGltZSgiICsKKyAgICAgICAgICAgICAgICAgIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNJbiA9IHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgICAgICAgICAgaWYgKGlzSW4gPT0gc3RhcnRzSW5EU1QpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWluID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1heCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKHR6LmdldElEKCkgKyAiIEJlZm9yZTogIiArIHNob3dEYXRlKG1pbiwgdHopKTsKKyAgICAgICAgbG9nbG4odHouZ2V0SUQoKSArICIgQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4LCB0eikpOworCisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsgCisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HKTsKKyAgICAgICAgZm10LnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkgKyAiID0gIiArIGZtdC5mb3JtYXQobmV3IERhdGUoZXhwZWN0ZWRCb3VuZGFyeSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KG5ldyBEYXRlKGV4cGVjdGVkQm91bmRhcnkpKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKGxvbmcgbCkKKyAgICB7CisgICAgICAgIHJldHVybiBzaG93RGF0ZShuZXcgRGF0ZShsKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKERhdGUgZCkKKyAgICB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIHJldHVybiAiIiArIChjYWwuZ2V0KENhbGVuZGFyLllFQVIpIC0gMTkwMCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKSArICIgIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSArICI6IiAKKyAgICAgICAgICAgICAgICsgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKyAiIFwiIiArIGQgKyAiXCIgPSAiICsKKyAgICAgICAgICAgICAgIGQuZ2V0VGltZSgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShsb25nIGwsIFRpbWVab25lIHopCisgICAgeworICAgICAgICByZXR1cm4gc2hvd0RhdGUobmV3IERhdGUobCksIHopOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShEYXRlIGQsIFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORyk7CisgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh6b25lKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgcmV0dXJuICIiICsgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgLSAxOTAwKSArICIvIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpICsgIiAiICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpICsgIjoiICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSArICIgXCIiICsgZCArICJcIiA9ICIgKworICAgICAgICAgICAgICAgZm10LmZvcm1hdChkKSArICIgPSAiICsgZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dOTihpbnQgbikKKyAgICB7CisgICAgICAgIHJldHVybiAoKG4gPCAxMCkgPyAiMCIgOiAiIikgKyBuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgZGF0ZSwgYSBUaW1lWm9uZSwgYW5kIGV4cGVjdGVkIHZhbHVlcyBmb3IgaW5EYXlsaWdodFRpbWUsCisgICAgICogdXNlRGF5bGlnaHRUaW1lLCB6b25lIGFuZCBEU1Qgb2Zmc2V0LCB2ZXJpZnkgdGhhdCB0aGlzIGlzIHRoZSBjYXNlLgorICAgICAqLworICAgIHZvaWQgdmVyaWZ5RFNUKFN0cmluZyB0YWcsIENhbGVuZGFyIGNhbCwgVGltZVpvbmUgdGltZV96b25lLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXhwVXNlRGF5bGlnaHRUaW1lLCBib29sZWFuIGV4cEluRGF5bGlnaHRUaW1lLAorICAgICAgICAgICAgICAgICAgIGludCBleHBSYXdPZmZzZXQsIGludCBleHBPZmZzZXQpCisgICAgeworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIGxvZ2xuKCItLSAiICsgdGFnICsgIjogIiArIGQgKworICAgICAgICAgICAgICAiIGluIHpvbmUgIiArIHRpbWVfem9uZS5nZXRJRCgpICsgIiAoIiArCisgICAgICAgICAgICAgIGQuZ2V0VGltZSgpLzM2MDAwMDAuMCArICIpIik7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSA9PSBleHBJbkRheWxpZ2h0VGltZSkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBpbkRheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUuaW5EYXlsaWdodFRpbWUoZCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5EYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLmluRGF5bGlnaHRUaW1lKGQpKTsKKworICAgICAgICBpZiAodGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpID09IGV4cFVzZURheWxpZ2h0VGltZSkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiB1c2VEYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUudXNlRGF5bGlnaHRUaW1lKCkpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuZ2V0UmF3T2Zmc2V0KCkgPT0gZXhwUmF3T2Zmc2V0KQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IGdldFJhd09mZnNldCgpID0gIiArIGV4cFJhd09mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFJhd09mZnNldCgpID0gIiArIHRpbWVfem9uZS5nZXRSYXdPZmZzZXQoKS8oZG91YmxlKU9ORV9IT1VSICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBleHBSYXdPZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisKKyAgICAgICAgLy9HcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0aW1lX3pvbmUpOworICAgICAgICAvL2djLnNldFRpbWUoZCk7CisgICAgICAgIGludCBvZmZzZXQgPSB0aW1lX3pvbmUuZ2V0T2Zmc2V0KGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSwgY2FsLmdldChDYWxlbmRhci5ZRUFSKSwgY2FsLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSkgKiAxMDAwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICBpZiAob2Zmc2V0ID09IGV4cE9mZnNldCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBnZXRPZmZzZXQoKSA9ICIgKyBvZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG9nbG4oImVyYT0iICsgY2FsLmdldChDYWxlbmRhci5FUkEpICsKKyAgICAgICAgICAgICAgICAgICIsIHllYXI9IiArIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKworICAgICAgICAgICAgICAgICAgIiwgbW9udGg9IiArIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsKKyAgICAgICAgICAgICAgICAgICIsIGRvbT0iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsKKyAgICAgICAgICAgICAgICAgICIsIGRvdz0iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgKworICAgICAgICAgICAgICAgICAgIiwgdGltZS1vZi1kYXk9IiArICgoKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogNjAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkpICogMTAwMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKSAvIDM2MDAwMDAuMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBob3VycyIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE9mZnNldCgpID0gIiArIG9mZnNldC8oZG91YmxlKU9ORV9IT1VSICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBleHBPZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGF0IHRoZSBnaXZlbiB5ZWFyL21vbnRoL2RvbS9ob3VyIG1hcHMgdG8gYW5kIGZyb20gdGhlCisgICAgICogZ2l2ZW4gZXBvY2hIb3Vycy4gIFRoaXMgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uaW5nIG9mIHRoZQorICAgICAqIGNhbGVuZGFyIGFuZCB0aW1lIHpvbmUgaW4gY29uanVuY3Rpb24gd2l0aCBvbmUgYW5vdGhlciwKKyAgICAgKiBpbmNsdWRpbmcgdGhlIGNhbGVuZGFyIHRpbWUtPmZpZWxkcyBhbmQgZmllbGRzLT50aW1lIGFuZAorICAgICAqIHRoZSB0aW1lIHpvbmUgZ2V0T2Zmc2V0IG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlcG9jaEhvdXJzIGhvdXJzIGFmdGVyIEphbiAxIDE5NzAgMDowMCBHTVQuCisgICAgICovCisgICAgdm9pZCB2ZXJpZnlNYXBwaW5nKENhbGVuZGFyIGNhbCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRvbSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBlcG9jaEhvdXJzKSB7CisgICAgICAgIGRvdWJsZSBIID0gMzYwMDAwMC4wOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tLCBob3VyLCAwLCAwKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgZG91YmxlIGUgPSBkLmdldFRpbWUoKSAvIEg7CisgICAgICAgIERhdGUgZWQgPSBuZXcgRGF0ZSgobG9uZykoZXBvY2hIb3VycyAqIEgpKTsKKyAgICAgICAgaWYgKGUgPT0gZXBvY2hIb3VycykgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArICIgIiArIGhvdXIgKyAiOjAwID0+ICIgKworICAgICAgICAgICAgICAgICAgZSArICIgKCIgKyBlZCArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkb20gKyAiICIgKyBob3VyICsgIjowMCA9PiAiICsKKyAgICAgICAgICAgICAgICAgIGUgKyAiICgiICsgbmV3IERhdGUoKGxvbmcpKGUgKiBIKSkgKyAiKSIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIGNhbC5zZXRUaW1lKGVkKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPT0geWVhciAmJgorICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCkgPT0gbW9udGggJiYKKyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgPT0gZG9tICYmCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EU19JTl9EQVkpID09IGhvdXIgKiAzNjAwMDAwKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlcG9jaEhvdXJzICsgIiAoIiArIGVkICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkRTX0lOX0RBWSkvSCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORFNfSU5fREFZKS9IICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsKKyAgICAgICAgICAgICAgICAgICIgIiArIGhvdXIpOworICAgICAgICB9CisgICAgfQorCisvLyBOT1RFOiBFbmFibGUgdGhpcyBjb2RlIHRvIGNoZWNrIHRoZSBiZWhhdmlvciBvZiB0aGUgdW5kZXJseWluZyBKREssCisvLyB1c2luZyBhIEpESyBDYWxlbmRhciBvYmplY3QuCisvLworLy8gICAgaW50IG1pbGxpc0luRGF5KGphdmEudXRpbC5DYWxlbmRhciBjYWwpIHsKKy8vICAgICAgICByZXR1cm4gKChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwICsKKy8vICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICogNjAgKworLy8gICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpKSAqIDEwMDAgKworLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKTsKKy8vICAgIH0KKy8vCisvLyAgICB2b2lkIHZlcmlmeU1hcHBpbmcoamF2YS51dGlsLkNhbGVuZGFyIGNhbCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRvbSwgaW50IGhvdXIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGVwb2NoSG91cnMpIHsKKy8vICAgICAgICBjYWwuY2xlYXIoKTsKKy8vICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20sIGhvdXIsIDAsIDApOworLy8gICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisvLyAgICAgICAgZG91YmxlIGUgPSBkLmdldFRpbWUoKSAvIDM2MDAwMDAuMDsKKy8vICAgICAgICBEYXRlIGVkID0gbmV3IERhdGUoKGxvbmcpKGVwb2NoSG91cnMgKiAzNjAwMDAwKSk7CisvLyAgICAgICAgaWYgKGUgPT0gZXBvY2hIb3VycykgeworLy8gICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsgIiAiICsgaG91ciArICI6MDAgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgIGUgKyAiICgiICsgZWQgKyAiKSIpOworLy8gICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArICIgIiArIGhvdXIgKyAiOjAwID0+ICIgKworLy8gICAgICAgICAgICAgICAgICBlICsgIiAoIiArIG5ldyBEYXRlKChsb25nKShlICogMzYwMDAwMCkpICsgIikiICsKKy8vICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSIpOworLy8gICAgICAgIH0KKy8vICAgICAgICBjYWwuc2V0VGltZShlZCk7CisvLyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPT0geWVhciAmJgorLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSA9PSBtb250aCAmJgorLy8gICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpID09IGRvbSAmJgorLy8gICAgICAgICAgICBtaWxsaXNJbkRheShjYWwpID09IGhvdXIgKiAzNjAwMDAwKSB7CisvLyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworLy8gICAgICAgICAgICAgICAgICBtaWxsaXNJbkRheShjYWwpLzM2MDAwMDAuMCk7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBlcG9jaEhvdXJzICsgIiAoIiArIGVkICsgIikgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworLy8gICAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworLy8gICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAiICsKKy8vICAgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkoY2FsKS8zNjAwMDAwLjAgKworLy8gICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArCisvLyAgICAgICAgICAgICAgICAgICIgIiArIGhvdXIpOworLy8gICAgICAgIH0KKy8vICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZGFyaWVzKCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHNhdmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisKKyAgICAgICAgLy8gQ2hlY2sgYmFzaWMgbWFwcGluZ3MuICBXZSBoYWQgYSBwcm9ibGVtIHdpdGggdGhpcyBmb3IgSUNVCisgICAgICAgIC8vIDIuOCBhZnRlciBtaWdyYXRpbmcgdG8gdXNpbmcgcGFzcy10aHJvdWdoIHRpbWUgem9uZXMuICBUaGUKKyAgICAgICAgLy8gcHJvYmxlbSBhcHBlYXJlZCBvbmx5IG9uIEpESyAxLjMuCisgICAgICAgIFRpbWVab25lIHBzdCA9IHNhZmVHZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIENhbGVuZGFyIHRlbXBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShwc3QpOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCAzLCAgMCwgMjM4OTA0LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA0LCAgMCwgMjM4OTI4LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA1LCAgMCwgMjM4OTUyLjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA1LCAyMywgMjM4OTc1LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMCwgMjM4OTc2LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMSwgMjM4OTc3LjApOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHRlbXBjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMywgMjM4OTc4LjApOworICAgICAgICAKKyAgICAgICAgVGltZVpvbmUgdXRjID0gc2FmZUdldFRpbWVab25lKCJVVEMiKTsKKyAgICAgICAgQ2FsZW5kYXIgdXRjY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjKTsKKyAgICAgICAgdmVyaWZ5TWFwcGluZyh1dGNjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAwLCAyMzg5NjguMCk7CisKKy8vIE5PVEU6IEVuYWJsZSB0aGlzIGNvZGUgdG8gY2hlY2sgdGhlIGJlaGF2aW9yIG9mIHRoZSB1bmRlcmx5aW5nIEpESywKKy8vIHVzaW5nIGEgSkRLIENhbGVuZGFyIG9iamVjdC4KKy8vCisvLyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka3BzdCA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisvLyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGpka2NhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqZGtwc3QpOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNSwgIDAsIDIzODk1Mi4wKTsKKy8vICAgICAgICB2ZXJpZnlNYXBwaW5nKGpka2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDUsIDIzLCAyMzg5NzUuMCk7CisvLyAgICAgICAgdmVyaWZ5TWFwcGluZyhqZGtjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMCwgMjM4OTc2LjApOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgIDEsIDIzODk3Ny4wKTsKKy8vICAgICAgICB2ZXJpZnlNYXBwaW5nKGpka2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAzLCAyMzg5NzguMCk7CisKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BUFJJTCwgNik7CisgICAgICAgIERhdGUgZCA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHBzdCk7CisKKyAgICAgICAgICAgIC8vIERTVCBjaGFuZ2VvdmVyIGZvciBQU1QgaXMgNC82LzE5OTcgYXQgMiBob3VycyBwYXN0IG1pZG5pZ2h0CisgICAgICAgICAgICAvLyBhdCAyMzg5NzguMCBlcG9jaCBob3Vycy4KKworICAgICAgICAgICAgLy8gaSBpcyBtaW51dGVzIHBhc3QgbWlkbmlnaHQgc3RhbmRhcmQgdGltZQorICAgICAgICAgICAgZm9yIChpbnQgaT0tMTIwOyBpPD0xODA7IGkrPTYwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5EU1QgPSAoaSA+PSAxMjApOworICAgICAgICAgICAgICAgIHRlbXBjYWwuc2V0VGltZUluTWlsbGlzKGQuZ2V0VGltZSgpICsgaSo2MCoxMDAwKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlEU1QoImhvdXI9IiArIGkvNjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBjYWwsIHBzdCwgdHJ1ZSwgaW5EU1QsIC04Kk9ORV9IT1VSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbkRTVCA/IC03Kk9ORV9IT1VSIDogLTgqT05FX0hPVVIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIG9ubHkgd29ya3MgaW4gUFNUL1BEVAorICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYWZlR2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdEYXRlKHRlbXBjYWwuZ2V0VGltZSgpLCAiUFNUIiwgUFNUXzE5OTdfQkVHKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdEYXRlKHRlbXBjYWwuZ2V0VGltZSgpLCAiUERUIiwgUFNUXzE5OTdfRU5EKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vICBpZiAodHJ1ZSkKKyAgICAgICAgLy8gIHsKKyAgICAgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAvLyAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdDYWxlbmRhcihuZXcgRGF0ZSg5NywwLDEpLCBmYWxzZSk7CisgICAgICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgLy8gICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nQ2FsZW5kYXIobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgICAgIC8vICB9CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFNvdXRoZXJuIGhlbWlzcGhlcmUgdGVzdAorICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIFRpbWVab25lIHogPSBzYWZlR2V0VGltZVpvbmUoQVVTVFJBTElBKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDAsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBBVVNUUkFMSUFfMTk5N19FTkQsIHopOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCBmYWxzZSwgQVVTVFJBTElBXzE5OTdfQkVHLCB6KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIGZhbHNlLCBQU1RfMTk5N19CRUcpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBQU1RfMTk5N19FTkQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBqdXN0IHNob3dzIHRoZSBvZmZzZXQgZm9yIEFwcmlsIDQtNyBpbiAxOTk3LiAgVGhpcyBpcyByZWR1bmRhbnQKKyAgICAgICAgLy8gd2l0aCBhIHRlc3QgYWJvdmUsIHNvIHdlIGRpc2FibGUgaXQuCisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDQpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDQsIDYsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMywgNSk7CisgICAgICAgICAgICBsb2dsbih6LmdldE9mZnNldCgxLCA5NywgMywgNSwgNywgMCkgKyAiICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAzLCA2KTsKKyAgICAgICAgICAgIGxvZ2xuKHouZ2V0T2Zmc2V0KDEsIDk3LCAzLCA2LCAxLCAwKSArICIgIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDcpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDcsIDIsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYW4ndCBkbyBhbnkgb2YgdGhlc2Ugd2l0aG91dCBhIHB1YmxpYyBpbkRheWxpZ2h0VGltZSBpbiBHQworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKKyAgICAvLyAgICBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgLy8KKyAgICAvLyAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAvLyAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorICAgIC8vCisgICAgLy8gIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgLy8gIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgIC8vICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgIC8vICBsb25nIG1heCA9IG1pbiArIChsb25nKSgzNjUuMjUgLyAyICogT05FX0RBWSk7CisgICAgLy8KKyAgICAvLyAgLy8gRmlyc3QgY2hlY2sgdGhlIG1heAorICAgIC8vICBjYWwuc2V0VGltZShuZXcgRGF0ZShtYXgpKTsKKyAgICAvLyAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiRXJyb3I6IGluRGF5bGlnaHRUaW1lKCIgKyAobmV3IERhdGUobWF4KSkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgY2FsLnNldFRpbWUoZCk7CisgICAgLy8gIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSAhPSBzdGFydHNJbkRTVCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgIC8vICAgICAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWluID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICAgICAgZWxzZQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWF4ID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgLy8gIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgIC8vICAgIH0KKyAgICAvLworICAgIC8vICAgIHN0YXRpYyB2b2lkIF90ZXN0VXNpbmdNaWxsaXMoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9uZyBtaWxsaXMgPSBkLmdldFRpbWUoKTsKKyAgICAvLyAgbG9uZyBtYXggPSBtaWxsaXMgKyAobG9uZykoMzcwICogT05FX0RBWSk7IC8vIEEgeWVhciBwbHVzIGV4dHJhCisgICAgLy8KKyAgICAvLyAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgLy8gIHdoaWxlIChtaWxsaXMgPCBtYXgpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgIC8vICAgICAgYm9vbGVhbiBpbkRheWxpZ2h0ID0gY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8KKyAgICAvLyAgICAgIGlmIChpbkRheWxpZ2h0ICE9IGxhc3REU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBsb2dsbigiU3dpdGNoICIgKyAoaW5EYXlsaWdodCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgIC8vICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICB9CisgICAgLy8KKyAgICAvLyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgc3RhdGljIHZvaWQgX3Rlc3RVc2luZ0ZpZWxkcyhpbnQgeSwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIGJvb2xlYW4gbGFzdERTVCA9IHN0YXJ0c0luRFNUOworICAgIC8vICBmb3IgKGludCBtID0gMDsgbSA8IDEyOyArK20pCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGZvciAoaW50IGQgPSAxOyBkIDw9IE1PTlRIX0xFTkdUSFttXTsgKytkKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgZm9yIChpbnQgaCA9IDA7IGggPCAyNDsgKytoKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgICAgIGZvciAoaW50IG1pbiA9IDA7IG1pbiA8IDYwOyBtaW4gKz0gMTUpCisgICAgLy8gICAgICAgICAgeworICAgIC8vICAgICAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgICAgIGNhbC5zZXQoeSwgbSwgZCwgaCwgbWluKTsKKyAgICAvLyAgICAgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAvLyAgICAgICAgICBpZiAoaW5EYXlsaWdodCAhPSBsYXN0RFNUKQorICAgIC8vICAgICAgICAgIHsKKyAgICAvLyAgICAgICAgICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICAgICAgICAgIGxvZygiU3dpdGNoICIgKyAobGFzdERTVCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgc2hvd05OKGgpICsgIjoiICsgc2hvd05OKG1pbikpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLworICAgIC8vICAgICAgICAgICAgICBjYWwuc2V0KHksIG0sIGQsIGgtMSwgNDUpOworICAgIC8vICAgICAgICAgICAgICBsb2coIkJlZm9yZSA9ICIKKyAgICAvLysgeSArICIvIiArIChtKzEpICsgIi8iICsgZAorICAgIC8vKyAiICIgKyBzaG93Tk4oaC0xKSArICI6IiArIHNob3dOTig0NSkpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgICAgICB9CisgICAgLy8gICAgICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgcHVibGljIHZvaWQgVGVzdDEoKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9nbG4oTG9jYWxlLmdldERlZmF1bHQoKS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAvLyAgbG9nbG4oVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCkpOworICAgIC8vICBsb2dsbihuZXcgRGF0ZSgwKSk7CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDYsMSksIHRydWUpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgbWlsbGlzIik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIGlmICh0cnVlKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgIC8vICAgICAgbG9nbG4oIlN0ZXBwaW5nIHVzaW5nIGZpZWxkcyIpOworICAgIC8vICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBpZiAoZmFsc2UpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgY2FsLnNldCgxOTk3LCAzLCA1LCAxMCwgMCk7CisgICAgLy8gICAgICAvLyAgY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8gICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgIGxvZ2xuKCJNaWxsaXMgPSAiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkvMzYwMDAwMCk7CisgICAgLy8gIH0KKyAgICAvLyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZvaWQgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaChTaW1wbGVUaW1lWm9uZSB0eiwgRGF0ZSBkLCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyAobG9uZykoMzY1LjI1IC8gMiAqIE9ORV9EQVkpOworCisgICAgICAgIC8vIEZpcnN0IGNoZWNrIHRoZSBib3VuZGFyaWVzCisgICAgICAgIGJvb2xlYW4gc3RhcnRzSW5EU1QgPSB0ei5pbkRheWxpZ2h0VGltZShkKTsKKworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgICAgIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworCisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgIH0KKworICAgIC8qCisgICAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nTWlsbGlzKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAgIHsKKyAgICAgIGxvbmcgbWlsbGlzID0gZC5nZXRUaW1lKCk7CisgICAgICBsb25nIG1heCA9IG1pbGxpcyArIChsb25nKSgzNzAgKiBPTkVfREFZKTsgLy8gQSB5ZWFyIHBsdXMgZXh0cmEKKworICAgICAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgICB3aGlsZSAobWlsbGlzIDwgbWF4KQorICAgICAgeworICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKworICAgICAgaWYgKGluRGF5bGlnaHQgIT0gbGFzdERTVCkKKyAgICAgIHsKKyAgICAgIGxvZ2xuKCJTd2l0Y2ggIiArIChpbkRheWxpZ2h0ID8gImludG8iIDogIm91dCBvZiIpCisgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgICB9CisKKyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgICAgfQorICAgICAgfQorICAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRlc3QgbmV3IHJ1bGUgZm9ybWF0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3UnVsZXMoKQorICAgIHsKKyAgICAgICAgLy9sb2dsbihMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAvL2xvZ2xuKFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpKTsKKyAgICAgICAgLy9sb2dsbihuZXcgRGF0ZSgwKSk7CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIGRlZmF1bHQgVGltZVpvbmUgaXMgaGVyZSwgc2luY2Ugd2UKKyAgICAgICAgICAgIC8vIGFyZSBjcmVhdGluZyBvdXIgb3duIFRpbWVab25lIG9iamVjdHMuCisKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHR6OworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXVnIDJuZFR1ZXMgLi4gTWFyIDE1Iik7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCpPTkVfSE9VUiwgIlRlc3RfMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5BVUdVU1QsIDIsIENhbGVuZGFyLlRVRVNEQVksIDIqT05FX0hPVVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMTUsIDAsIDIqT05FX0hPVVIpOworICAgICAgICAgICAgLy9sb2dsbih0ei50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NTg0MTY0MDAwMDBMKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NzEzODAwMDAwMDBMKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXByIFdlZD49MTQgLi4gU2VwIFN1bjw9MjAiKTsKKyAgICAgICAgICAgIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC04Kk9ORV9IT1VSLCAiVGVzdF8yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkFQUklMLCAxNCwgLUNhbGVuZGFyLldFRE5FU0RBWSwgMipPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNFUFRFTUJFUiwgLTIwLCAtQ2FsZW5kYXIuU1VOREFZLCAyKk9ORV9IT1VSKTsKKyAgICAgICAgICAgIC8vbG9nbG4odHoudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODYxMTg0ODAwMDAwTCk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODc0MjI3NjAwMDAwTCk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgIGlmICh0cnVlKQorICAgICAgICAgIHsKKyAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgIGxvZ2xuKCJTdGVwcGluZyB1c2luZyBtaWxsaXMiKTsKKyAgICAgICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAodHJ1ZSkKKyAgICAgICAgICB7CisgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgZmllbGRzIik7CisgICAgICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKGZhbHNlKQorICAgICAgICAgIHsKKyAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICBjYWwuc2V0KDE5OTcsIDMsIDUsIDEwLCAwKTsKKyAgICAgICAgICAvLyAgICBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAgICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICBsb2dsbigiTWlsbGlzID0gIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpLzM2MDAwMDApOworICAgICAgICAgIH0KKyAgICAgICAgICAqLworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIExvbmcgQnVnCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvL3B1YmxpYyB2b2lkIFRlc3QzKCkKKyAgICAvL3sKKyAgICAvLyAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgLy99CisKKyAgICAvKioKKyAgICAgKiBGaW5kIGJvdW5kYXJpZXMgYnkgc3RlcHBpbmcuCisgICAgICovCisgICAgdm9pZCBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKGludCB5ZWFyLCBsb25nIGludGVydmFsLCBUaW1lWm9uZSB6LCBpbnQgZXhwZWN0ZWRDaGFuZ2VzKQorICAgIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCh5ZWFyLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgdGltZSA9IGQuZ2V0VGltZSgpOyAvLyBtcworICAgICAgICBsb25nIGxpbWl0ID0gdGltZSArIE9ORV9ZRUFSICsgT05FX0RBWTsKKyAgICAgICAgYm9vbGVhbiBsYXN0U3RhdGUgPSB6LmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICBpbnQgY2hhbmdlcyA9IDA7CisgICAgICAgIGxvZ2xuKCItLSBab25lICIgKyB6LmdldElEKCkgKyAiIHN0YXJ0cyBpbiAiICsgeWVhciArICIgd2l0aCBEU1QgPSAiICsgbGFzdFN0YXRlKTsKKyAgICAgICAgbG9nbG4oInVzZURheWxpZ2h0VGltZSA9ICIgKyB6LnVzZURheWxpZ2h0VGltZSgpKTsKKyAgICAgICAgd2hpbGUgKHRpbWUgPCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZC5zZXRUaW1lKHRpbWUpOworICAgICAgICAgICAgYm9vbGVhbiBzdGF0ZSA9IHouaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgICAgICBpZiAoc3RhdGUgIT0gbGFzdFN0YXRlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxvZ2xuKChzdGF0ZSA/ICJFbnRyeSAiIDogIkV4aXQgIikgKworICAgICAgICAgICAgICAgICAgICAgICJhdCAiICsgZCk7CisgICAgICAgICAgICAgICAgbGFzdFN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgKytjaGFuZ2VzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZSArPSBpbnRlcnZhbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2hhbmdlcyA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWxhc3RTdGF0ZSAmJiAhei51c2VEYXlsaWdodFRpbWUoKSkgbG9nbG4oIk5vIERTVCIpOworICAgICAgICAgICAgZWxzZSBlcnJsbigiRkFJTDogRFNUIGFsbCB5ZWFyLCBvciBubyBEU1Qgd2l0aCB0cnVlIHVzZURheWxpZ2h0VGltZSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNoYW5nZXMgIT0gMikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBjaGFuZ2VzICsgIiBjaGFuZ2VzIHNlZW47IHNob3VsZCBzZWUgMCBvciAyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgZmFsc2UgYnV0IDIgY2hhbmdlcyBzZWVuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYW5nZXMgIT0gZXhwZWN0ZWRDaGFuZ2VzKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGNoYW5nZXMgKyAiIGNoYW5nZXMgc2VlbjsgZXhwZWN0ZWQgIiArIGV4cGVjdGVkQ2hhbmdlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RlcHdpc2UoKQorICAgIHsKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKSwgMik7CisgICAgICAgIC8vIGRpc2FibGVkIE9jdCAyMDAzIGFsaXU7IEFDVCBjb3VsZCBtZWFuIGFueXRoaW5nLCBkZXBlbmRpbmcgb24gdGhlIHVuZGVybHlpbmcgSkRLLCBhcyBvZiAyLjgKKyAgICAgICAgLy8gZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFDVCIpLCAyKTsKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoIkFtZXJpY2EvUGhvZW5peCIpLCAwKTsgLy8gQWRkZWQgM0phbjAxCisgICAgICAgIGZpbmRCb3VuZGFyaWVzU3RlcHdpc2UoMTk5NywgT05FX0RBWSwgc2FmZUdldFRpbWVab25lKEFVU1RSQUxJQSksIDIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVJlZ3Jlc3Npb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjhhZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsMTA1MyBAQAorLy8jI2hlYWRlcgorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogQHRlc3QgMS4xOCA5OS8wOS8yMQorICogQGJ1ZyA0MDUyOTY3IDQwNzMyMDkgNDA3MzIxNSA0MDg0OTMzIDQwOTY5NTIgNDEwOTMxNCA0MTI2Njc4IDQxNTE0MDYgNDE1MTQyOQorICogQGJ1ZyA0MTU0NTI1IDQxNTQ1MzcgNDE1NDU0MiA0MTU0NjUwIDQxNTk5MjIgNDE2MjU5MyA0MTczNjA0IDQxNzY2ODYgNDE4NDIyOSA0MjA4OTYwCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUaW1lWm9uZVJlZ3Jlc3Npb24gZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lUmVncmVzc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1Mjk2NygpIHsKKyAgICAgICAgbG9nbG4oIioqKiBDSEVDSyBUSU1FWk9ORSBBR0FJTlNUIEhPU1QgT1MgU0VUVElORyAqKioiKTsKKyAgICAgICAgU3RyaW5nIGlkID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyB1c2VyLnRpbWV6b25lIGlzIGEgcHJvdGVjdGVkIHN5c3RlbSBwcm9wZXJ0eQorICAgICAgICAgICAgbG9nbG4oInVzZXIudGltZXpvbmU6ICIgKyBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIudGltZXpvbmUiLCAiPG5vdCBzZXQ+IikpOworICAgICAgICAgICAgbG9nbG4oIlRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpOiAiICsgaWQpOworICAgICAgICAgICAgbG9nbG4obmV3IERhdGUoKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKiogVEhFIFJFU1VMVFMgT0YgVEhJUyBURVNUIE1VU1QgQkUgVkVSSUZJRUQgTUFOVUFMTFkgKioqIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigic2VjdXJpdHkgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczMjA5KCkgeworICAgICAgICBUaW1lWm9uZSB6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgVGltZVpvbmUgejIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGlmICh6MSA9PSB6MikgZXJybG4oIkZhaWw6IFRpbWVab25lIHNob3VsZCByZXR1cm4gY2xvbmVzIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzMyMTUoKSB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworICAgICAgICBpZiAoei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBGaXggdGVzdCB0byBzdGFydCB3aXRoIG5vbi1EU1Qgem9uZSIpOworICAgICAgICB6LnNldFN0YXJ0UnVsZShDYWxlbmRhci5GRUJSVUFSWSwgMSwgQ2FsZW5kYXIuU1VOREFZLCAwKTsKKyAgICAgICAgei5zZXRFbmRSdWxlKENhbGVuZGFyLk1BUkNILCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAwKTsKKyAgICAgICAgaWYgKCF6LnVzZURheWxpZ2h0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3QgYWN0aXZlIik7CisgICAgICAgIENhbGVuZGFyIHRlbXBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0VGltZVpvbmUoeik7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDMxKTsKKyAgICAgICAgRGF0ZSBkMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSAKKworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMSk7CisgICAgICAgIERhdGUgZDIgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgaWYgKCF6LmluRGF5bGlnaHRUaW1lKGQyKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3Qgd29ya2luZyBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDMxKTsKKyAgICAgICAgRGF0ZSBkMyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkMykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZXhwZWN0ZWQgYmVoYXZpb3Igb2YgVGltZVpvbmUgYXJvdW5kIHRoZSBib3VuZGFyaWVzIGlzOgorICAgICAqIChBc3N1bWUgdHJhbnNpdGlvbiB0aW1lIG9mIDI6MDAgQU0pCisgICAgICogICAgZGF5IG9mIG9uc2V0IDE6NTkgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjU5IEFNIFNUCisgICAgICogICAgICAgICAgICAgICAgIDI6MDAgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAzOjAwIEFNIERUCisgICAgICogICAgZGF5IG9mIGVuZCAgIDA6NTkgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjU5IEFNIERUCisgICAgICogICAgICAgICAgICAgICAgIDE6MDAgQU0gU1REICA9IGRpc3BsYXkgbmFtZSAxOjAwIEFNIFNUCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODQ5MzMoKSB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCisgICAgICAgIGxvbmcgb2Zmc2V0MSA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDIgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgb2Zmc2V0MyA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDQgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIC8qCisgICAgICAgICAqICBUaGUgZm9sbG93aW5nIHdhcyBhZGRlZCBqdXN0IGZvciBjb25zaXN0ZW5jeS4gIEl0IHNob3dzIHRoYXQgZ29pbmcgKnRvKiBEYXlsaWdodAorICAgICAgICAgKiAgU2F2aW5ncyBUaW1lIChQRFQpIGRvZXMgd29yayBhdCAyYW0uCisgICAgICAgICAqLworCisgICAgICAgIGxvbmcgb2Zmc2V0NSA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDYgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgb2Zmc2V0NyA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCkpOworICAgICAgICBsb25nIG9mZnNldDggPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApLTEpOworCisgICAgICAgIGxvbmcgU1RvZmZzZXQgPSAtOCAqIDYwKjYwKjEwMDBMOworICAgICAgICBsb25nIERUb2Zmc2V0ID0gLTcgKiA2MCo2MCoxMDAwTDsKKyAgICAgICAgaWYgKG9mZnNldDEgIT0gU1RvZmZzZXQgfHwgb2Zmc2V0MiAhPSBTVG9mZnNldCB8fAorICAgICAgICAgICAgb2Zmc2V0MyAhPSBTVG9mZnNldCB8fCBvZmZzZXQ0ICE9IERUb2Zmc2V0IHx8CisgICAgICAgICAgICBvZmZzZXQ1ICE9IERUb2Zmc2V0IHx8IG9mZnNldDYgIT0gU1RvZmZzZXQgfHwKKyAgICAgICAgICAgIG9mZnNldDcgIT0gU1RvZmZzZXQgfHwgb2Zmc2V0OCAhPSBTVG9mZnNldCkKKyAgICAgICAgICAgIHdhcm5sbigiRmFpbDogVGltZVpvbmUgbWlzYmVoYXZpbmciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5Njk1MigpIHsKKyAgICAgICAgU3RyaW5nW10gWk9ORVMgPSB7ICJHTVQiLCAiTUVUIiwgIklTVCIgfTsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxaT05FUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShaT05FU1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCF6b25lLmdldElEKCkuZXF1YWxzKFpPTkVTW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBUZXN0IGJyb2tlbjsgem9uZXMgbm90IGluc3RhbnRpYXRpbmciKTsKKworICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvc3RyZWFtID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zID0gbmV3CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpOworICAgICAgICAgICAgICAgIG9zdHJlYW0ud3JpdGVPYmplY3Qoem9uZSk7CisgICAgICAgICAgICAgICAgb3N0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpc3RyZWFtID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYmFvcy50b0J5dGVBcnJheSgpKSk7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgZnJhbmtlblpvbmUgPSAoVGltZVpvbmUpIGlzdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIC8vbG9nbG4oIlpvbmU6ICAgICAgICAiICsgem9uZSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiRnJhbmtlblpvbmU6ICIgKyBmcmFua2VuWm9uZSk7CisgICAgICAgICAgICAgICAgaWYgKCF6b25lLmVxdWFscyhmcmFua2VuWm9uZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlRpbWVab25lICIgKyB6b25lLmdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBlcXVhbCB0byBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZCBvbmUiKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcGFzcykgZXJybG4oIkZhaWw6IFRpbWVab25lIHNlcmlhbGl6YXRpb24vZXF1YWxpdHkgYnVnIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDkzMTQoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuQVBSSUwsNCwyMiwwKTsKKyAgICAgICAgRGF0ZSBkMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLkFQUklMLDUsNiwwKTsKKyAgICAgICAgRGF0ZSBkMiA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLk9DVE9CRVIsMjQsMjIsMCk7CisgICAgICAgIERhdGUgZDMgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCxDYWxlbmRhci5PQ1RPQkVSLDI1LDYsMCk7CisgICAgICAgIERhdGUgZDQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgT2JqZWN0W10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICBQU1QsIGQxLCBkMiwKKyAgICAgICAgICAgIFBTVCwgZDMsIGQ0LAorICAgICAgICB9OworICAgICAgICBib29sZWFuIHBhc3M9dHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRlc3REYXRhLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lWm9uZSgoVGltZVpvbmUpIHRlc3REYXRhW2ldKTsKKyAgICAgICAgICAgIGxvbmcgdCA9ICgoRGF0ZSl0ZXN0RGF0YVtpKzFdKS5nZXRUaW1lKCk7CisgICAgICAgICAgICBEYXRlIGVuZCA9IChEYXRlKSB0ZXN0RGF0YVtpKzJdOworICAgICAgICAgICAgd2hpbGUgKHQgPCBlbmQuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKG5ldyBEYXRlKHQpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrQ2FsZW5kYXIzMTQodGVzdENhbCwgKFRpbWVab25lKSB0ZXN0RGF0YVtpXSkpCisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0ICs9IDYwKjYwKjEwMDBMOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghcGFzcykgZXJybG4oIkZhaWw6IFRaIEFQSSBpbmNvbnNpc3RlbnQiKTsKKyAgICB9CisKKyAgICBib29sZWFuIGNoZWNrQ2FsZW5kYXIzMTQoR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCwgVGltZVpvbmUgdGVzdFRaKSB7CisgICAgICAgIC8vIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpYUNhbC5jbG9uZSgpOworCisgICAgICAgIGZpbmFsIGludCBPTkVfREFZID0gMjQqNjAqNjAqMTAwMDsKKworICAgICAgICBpbnQgdHpPZmZzZXQsIHR6UmF3T2Zmc2V0OworICAgICAgICBGbG9hdCB0ek9mZnNldEZsb2F0LHR6UmF3T2Zmc2V0RmxvYXQ7CisgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgdGhlIHVzZXIgbWFkZSBhbiBlcnJvci4gIFRoZXkgd2VyZSBwYXNzaW5nIGluIHRoZSB2YWx1ZSBvZgorICAgICAgICAvLyB0aGUgTUlMTFNFQ09ORCBmaWVsZDsgeW91IG5lZWQgdG8gcGFzcyBpbiB0aGUgbWlsbGlzIGluIHRoZSBkYXkgaW4gU1RBTkRBUkQKKyAgICAgICAgLy8gdGltZS4KKyAgICAgICAgaW50IG1pbGxpcyA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAxMDAwICogKHRlc3RDYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICA2MCAqICh0ZXN0Q2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjAgKiAodGVzdENhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSkpIC0KKyAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIC8qIEZpeCB1cCBtaWxsaXMgdG8gYmUgaW4gcmFuZ2UuICBBU1NVTUUgVEhBVCBXRSBBUkUgTk9UIEFUIFRIRQorICAgICAgICAgKiBCRUdJTk5JTkcgT1IgRU5EIE9GIEEgTU9OVEguICBXZSBtdXN0IGFkZCB0aGlzIGNvZGUgYmVjYXVzZQorICAgICAgICAgKiBnZXRPZmZzZXQoKSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGJlIG1vcmUgc3RyaWN0IGFib3V0IHRoZSBwYXJhbWV0ZXJzCisgICAgICAgICAqIGl0IHJlY2VpdmVzIC0tIGl0IHR1cm5zIG91dCB0aGF0IHRoaXMgdGVzdCB3YXMgcGFzc2luZyBpbiBpbGxlZ2FsCisgICAgICAgICAqIHZhbHVlcy4gKi8KKyAgICAgICAgaW50IGRhdGUgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgaW50IGRvdyAgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIHdoaWxlIChtaWxsaXMgPCAwKSB7CisgICAgICAgICAgICBtaWxsaXMgKz0gT05FX0RBWTsKKyAgICAgICAgICAgIC0tZGF0ZTsKKyAgICAgICAgICAgIGRvdyA9IENhbGVuZGFyLlNVTkRBWSArICgoZG93IC0gQ2FsZW5kYXIuU1VOREFZICsgNikgJSA3KTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobWlsbGlzID49IE9ORV9EQVkpIHsKKyAgICAgICAgICAgIG1pbGxpcyAtPSBPTkVfREFZOworICAgICAgICAgICAgKytkYXRlOworICAgICAgICAgICAgZG93ID0gQ2FsZW5kYXIuU1VOREFZICsgKChkb3cgLSBDYWxlbmRhci5TVU5EQVkgKyAxKSAlIDcpOworICAgICAgICB9CisKKyAgICAgICAgdHpPZmZzZXQgPSB0ZXN0VFouZ2V0T2Zmc2V0KHRlc3RDYWwuZ2V0KENhbGVuZGFyLkVSQSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXMpOworICAgICAgICB0elJhd09mZnNldCA9IHRlc3RUWi5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgdHpPZmZzZXRGbG9hdCA9IG5ldyBGbG9hdCgoZmxvYXQpdHpPZmZzZXQvKGZsb2F0KTM2MDAwMDApOworICAgICAgICB0elJhd09mZnNldEZsb2F0ID0gbmV3IEZsb2F0KChmbG9hdCl0elJhd09mZnNldC8oZmxvYXQpMzYwMDAwMCk7CisKKyAgICAgICAgRGF0ZSB0ZXN0RGF0ZSA9IHRlc3RDYWwuZ2V0VGltZSgpOworCisgICAgICAgIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUgPSB0ZXN0VFouaW5EYXlsaWdodFRpbWUodGVzdERhdGUpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5IEhIOm1tIik7CisgICAgICAgIHNkZi5zZXRDYWxlbmRhcih0ZXN0Q2FsKTsKKyAgICAgICAgU3RyaW5nIGluRGF5bGlnaHRUaW1lU3RyaW5nOworCisgICAgICAgIGJvb2xlYW4gcGFzc2VkOworCisgICAgICAgIGlmIChpbkRheWxpZ2h0VGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmcgPSAiIERTVCAiOworICAgICAgICAgICAgcGFzc2VkID0gKHR6T2Zmc2V0ID09ICh0elJhd09mZnNldCArIDM2MDAwMDApKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGluRGF5bGlnaHRUaW1lU3RyaW5nID0gIiAgICAgIjsKKyAgICAgICAgICAgIHBhc3NlZCA9ICh0ek9mZnNldCA9PSB0elJhd09mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgb3V0cHV0ID0gdGVzdFRaLmdldElEKCkgKyAiICIgKyBzZGYuZm9ybWF0KHRlc3REYXRlKSArCisgICAgICAgICAgICAiIE9mZnNldCgiICsgdHpPZmZzZXRGbG9hdCArICIpIiArCisgICAgICAgICAgICAiIFJhd09mZnNldCgiICsgdHpSYXdPZmZzZXRGbG9hdCArICIpIiArCisgICAgICAgICAgICAiICIgKyBtaWxsaXMvKGZsb2F0KTM2MDAwMDAgKyAiICIgKworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmc7CisKKyAgICAgICAgaWYgKHBhc3NlZCkKKyAgICAgICAgICAgIG91dHB1dCArPSAiICAgICAiOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXRwdXQgKz0gIkVSUk9SIjsKKworICAgICAgICBpZiAocGFzc2VkKSBsb2dsbihvdXRwdXQpOyBlbHNlIGVycmxuKG91dHB1dCk7CisgICAgICAgIHJldHVybiBwYXNzZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ0FOTk9UIFJFUFJPRFVERQorICAgICAqCisgICAgICogWWV0IGFub3RoZXIgX2FsbGVnZWRfIGJ1ZyBpbiBUaW1lWm9uZS5nZXRPZmZzZXQoKSwgYSBtZXRob2QgdGhhdCBuZXZlcgorICAgICAqIHNob3VsZCBoYXZlIGJlZW4gbWFkZSBwdWJsaWMuICBJdCdzIHNpbXBseSB0b28gaGFyZCB0byB1c2UgY29ycmVjdGx5LgorICAgICAqCisgICAgICogVGhlIG9yaWdpbmFsIHRlc3QgY29kZSBmYWlsZWQgdG8gZG8gdGhlIGZvbGxvd2luZzoKKyAgICAgKiAoMSkgQ2FsbCBDYWxlbmRhci5zZXRUaW1lKCkgYmVmb3JlIGdldHRpbmcgdGhlIGZpZWxkcyEKKyAgICAgKiAoMikgVXNlIHRoZSByaWdodCBtaWxsaXMgKGFzIHVzdWFsKSBmb3IgZ2V0T2Zmc2V0KCk7IHRoZXkgd2VyZSBwYXNzaW5nCisgICAgICogICAgIGluIHRoZSBNSUxMSVMgZmllbGQsIGluc3RlYWQgb2YgdGhlIFNUQU5EQVJEIE1JTExJUyBJTiBEQVkuCisgICAgICogV2hlbiB5b3UgZml4IHRoZXNlIHR3byBwcm9ibGVtcywgdGhlIHRlc3QgcGFzc2VzLCBhcyBleHBlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNjY3OCgpIHsKKyAgICAvLyBOb3RlOiB0aGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgUFNUIHRpbWUgem9uZS4KKyAgICBUaW1lWm9uZSBpbml0aWFsWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh0eik7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0eik7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgMTAsIDApOworICAgICAgICBEYXRlIGR0ID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgLy8gdGhlIGR0IHZhbHVlIGlzIGxvY2FsIHRpbWUgaW4gUFNULgorICAgICAgICBpZiAoIXR6LmluRGF5bGlnaHRUaW1lKGR0KSkKKyAgICAgICAgICAgIGVycmxuKCJXZSdyZSBub3QgaW4gRGF5bGlnaHQgU2F2aW5ncyBUaW1lIGFuZCB3ZSBzaG91bGQgYmUuXG4iKTsKKworICAgICAgICBjYWwuc2V0VGltZShkdCk7CisgICAgICAgIGludCBlcmEgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIGludCB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpbnQgZGF5T2ZXZWVrID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaWxsaXMgPSBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikgKiA2MCkgKiA2MCkgKiAxMDAwKSAtCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIGxvbmcgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMpOworICAgICAgICBsb25nIHJhd19vZmZzZXQgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSByYXdfb2Zmc2V0KQorICAgICAgICAgICAgZXJybG4oIk9mZnNldHMgc2hvdWxkIG5vdCBtYXRjaCB3aGVuIGluIERTVCIpOworCisgICAgLy8gcmVzdG9yZSB0aGUgaW5pdGlhbCB0aW1lIHpvbmUgc28gdGhhdCB0aGlzIHRlc3QgY2FzZQorICAgIC8vIGRvZXNuJ3QgYWZmZWN0IHRoZSBvdGhlcnMuCisgICAgVGltZVpvbmUuc2V0RGVmYXVsdChpbml0aWFsWm9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKGludCkgdGhyb3dzIGV4Y2VwdGlvbiBmb3IgY2VydGFpbiB2YWx1ZXMsCisgICAgICogZHVlIHRvIGEgZmF1bHR5IGNvbnN0YW50IGluIFRpbWVab25lLmphdmEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE0MDYoKSB7CisgICAgICAgIGludCBtYXggPSAwOworICAgICAgICBmb3IgKGludCBoPS0yODsgaDw9MzA7ICsraCkgeworICAgICAgICAgICAgLy8gaCBpcyBpbiBoYWxmLWhvdXJzIGZyb20gR01UOyByYXdvZmZzZXQgaXMgaW4gbWlsbGlzCisgICAgICAgICAgICBpbnQgcmF3b2Zmc2V0ID0gaCAqIDE4MDAwMDA7CisgICAgICAgICAgICBpbnQgaGggPSAoaDwwKSA/IC1oIDogaDsKKyAgICAgICAgICAgIFN0cmluZyBobmFtZSA9ICgoaDwwKSA/ICJHTVQtIiA6ICJHTVQrIikgKworICAgICAgICAgICAgICAgICgoaGgvMiA8IDEwKSA/ICIwIiA6ICIiKSArCisgICAgICAgICAgICAgICAgKGhoLzIpICsgJzonICsKKyAgICAgICAgICAgICAgICAoKGhoJTI9PTApID8gIjAwIiA6ICIzMCIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMocmF3b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA+IG1heCkgbWF4ID0gaWRzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICBsb2dsbihobmFtZSArICcgJyArIGlkcy5sZW5ndGggKworICAgICAgICAgICAgICAgICAgICAgICgoaWRzLmxlbmd0aCA+IDApID8gKCIgZS5nLiAiICsgaWRzWzBdKSA6ICIiKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGhuYW1lICsgJyAnICsgIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTWF4aW11bSB6b25lcyBwZXIgb2Zmc2V0ID0gIiArIG1heCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE0MjkoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgICAgIC8qU3RyaW5nIG5hbWUgPSovIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIEludGVnZXIuTUFYX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gbm90IHRocm93biBieSBUaW1lWm9uZS5nZXREaXNwbGF5TmFtZSgpIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUgYWNjZXB0cyBpbGxlZ2FsIERTVCBzYXZpbmdzIHZhbHVlcy4gIFRoZXNlIHZhbHVlcworICAgICAqIG11c3QgYmUgbm9uLXplcm8uICBUaGVyZSBpcyBubyB1cHBlciBsaW1pdCBhdCB0aGlzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1MjUoKSB7CisgICAgICAgIGZpbmFsIGludCBHT09EID0gMSwgQkFEID0gMDsKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIDEsIEdPT0QsCisgICAgICAgICAgICAwLCBCQUQsCisgICAgICAgICAgICAtMSwgQkFELAorICAgICAgICAgICAgNjAqNjAqMTAwMCwgR09PRCwKKyAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFLCBCQUQsCisgICAgICAgICAgICAvLyBJbnRlZ2VyLk1BWF9WQUxVRSwgPywgLy8gbm8gdXBwZXIgbGltaXQgb24gRFNUIHNhdmluZ3MgYXQgdGhpcyB0aW1lCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBEQVRBW2ldOworICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IERBVEFbaSsxXSA9PSBHT09EOworICAgICAgICAgICAgU3RyaW5nIG1ldGhvZCA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJjb25zdHJ1Y3RvciI7CisgICAgICAgICAgICAgICAgICAgICAgICBTaW1wbGVUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJpZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZpbmdzKTsgLy8gPC0gd2hhdCB3ZSdyZSBpbnRlcmVzdGVkIGluCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gInNldERTVFNhdmluZ3MoKSI7CisgICAgICAgICAgICAgICAgICAgICAgICB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHouc2V0RFNUU2F2aW5ncyhzYXZpbmdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBhc3M6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiBhY2NlcHRlZCBieSAiICsgbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgYWNjZXB0ZWQgYnkgIiArIG1ldGhvZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgdG8gIiArIG1ldGhvZCArICIgZ2F2ZSAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFzczogRFNUIHNhdmluZ3Mgb2YgIiArIHNhdmluZ3MgKyAiIHRvICIgKyBtZXRob2QgKyAiIGdhdmUgIiArIGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUuaGFzU2FtZVJ1bGVzKCkgZG9lc24ndCB3b3JrIGZvciB6b25lcyB3aXRoIG5vIERTVAorICAgICAqIGFuZCBkaWZmZXJlbnQgRFNUIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1MzcoKSB7CisgICAgICAgIC8vIHR6MSBhbmQgdHoyIGhhdmUgbm8gRFNUIGFuZCBkaWZmZXJlbnQgcnVsZSBwYXJhbWV0ZXJzCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiMSIsIDAsIDAsIDAsIDAsIDIsIDAsIDAsIDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ejIgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIjIiLCAxLCAwLCAwLCAwLCAzLCAwLCAwLCAwKTsKKyAgICAgICAgLy8gdHphIGFuZCB0ekEgaGF2ZSB0aGUgc2FtZSBydWxlIHBhcmFtcworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0emEgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgImEiLCAwLCAxLCAwLCAwLCAzLCAyLCAwLCAwKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHpBID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMSwgMCwgMCwgMywgMiwgMCwgMCk7CisgICAgICAgIC8vIHR6YiBkaWZmZXJzIGZyb20gdHphCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6YiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiYiIsIDAsIDEsIDAsIDAsIDMsIDEsIDAsIDApOworICAgICAgICBpZiAodHoxLnVzZURheWxpZ2h0VGltZSgpIHx8IHR6Mi51c2VEYXlsaWdodFRpbWUoKSB8fAorICAgICAgICAgICAgIXR6YS51c2VEYXlsaWdodFRpbWUoKSB8fCAhdHpBLnVzZURheWxpZ2h0VGltZSgpIHx8CisgICAgICAgICAgICAhdHpiLnVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBpcyBicm9rZW4gLS0gcmV3cml0ZSBpdCIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHphLmhhc1NhbWVSdWxlcyh0ekEpIHx8IHR6YS5oYXNTYW1lUnVsZXModHpiKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGhhc1NhbWVSdWxlcygpIGJyb2tlbiBmb3Igem9uZXMgd2l0aCBydWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHoxLmhhc1NhbWVSdWxlcyh0ejIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogaGFzU2FtZVJ1bGVzKCkgcmV0dXJucyBmYWxzZSBmb3Igem9uZXMgd2l0aG91dCBydWxlcyIpOworICAgICAgICAgICAgZXJybG4oInpvbmUgMSA9ICIgKyB0ejEpOworICAgICAgICAgICAgZXJybG4oInpvbmUgMiA9ICIgKyB0ejIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUgY29uc3RydWN0b3JzLCBzZXRTdGFydFJ1bGUoKSwgYW5kIHNldEVuZFJ1bGUoKSBkb24ndAorICAgICAqIGNoZWNrIGZvciBvdXQtb2YtcmFuZ2UgYXJndW1lbnRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTU0NTQyKCkgeworICAgICAgICBmaW5hbCBpbnQgR09PRCA9IDE7CisgICAgICAgIGZpbmFsIGludCBCQUQgID0gMDsKKworICAgICAgICBmaW5hbCBpbnQgR09PRF9NT05USCAgICAgICA9IENhbGVuZGFyLkpBTlVBUlk7CisgICAgICAgIGZpbmFsIGludCBHT09EX0RBWSAgICAgICAgID0gMTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfREFZX09GX1dFRUsgPSBDYWxlbmRhci5TVU5EQVk7CisgICAgICAgIGZpbmFsIGludCBHT09EX1RJTUUgICAgICAgID0gMDsKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgR09PRCwgSW50ZWdlci5NSU5fVkFMVUUsICAgIDAsICBJbnRlZ2VyLk1BWF9WQUxVRSwgICBJbnRlZ2VyLk1JTl9WQUxVRSwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkpBTlVBUlksICAgIC01LCAgQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgICA1LCAgQ2FsZW5kYXIuU0FUVVJEQVksICAgMjQqNjAqNjAqMTAwMC0xLAorICAgICAgICAgICAgQkFELCAgQ2FsZW5kYXIuREVDRU1CRVIsICAgIDUsICBDYWxlbmRhci5TQVRVUkRBWSwgICAyNCo2MCo2MCoxMDAwKzEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNSwgIENhbGVuZGFyLlNBVFVSREFZLCAgLTEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLCAgICAtNiwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNiwgIENhbGVuZGFyLlNBVFVSREFZLCAgIDI0KjYwKjYwKjEwMDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5BUFJJTCwgICAgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLTEsICAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUisxLCAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgIC0zMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLTEsIDAsCisgICAgICAgIH07CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIloiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz01KSB7CisgICAgICAgICAgICBib29sZWFuIHNob3VsZEJlR29vZCA9IChEQVRBW2ldID09IEdPT0QpOworICAgICAgICAgICAgaW50IG1vbnRoICAgICA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGludCBkYXkgICAgICAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrID0gREFUQVtpKzNdOworICAgICAgICAgICAgaW50IHRpbWUgICAgICA9IERBVEFbaSs0XTsKKworICAgICAgICAgICAgRXhjZXB0aW9uIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRTdGFydFJ1bGUobW9udGgsIGRheSwgZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0U3RhcnRSdWxlKG1vbnRoPSIgKyBtb250aCArICIsIGRheT0iICsgZGF5ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXlPZldlZWs9IiArIGRheU9mV2VlayArICIsIHRpbWU9IiArIHRpbWUgKworICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRCZUdvb2QgPyAoIikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZXggPT0gbnVsbCkgIT0gc2hvdWxkQmVHb29kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNldEVuZFJ1bGUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvKlNpbXBsZVRpbWVab25lIHRlbXAgPSovIG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiWiIsCisgICAgICAgICAgICAgICAgICAgICAgICBtb250aCwgZGF5LCBkYXlPZldlZWssIHRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9EQVlfT0ZfV0VFSywgR09PRF9USU1FKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2ltcGxlVGltZVpvbmUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiLCA8ZW5kPikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIiwgPGVuZD4pIHNob3VsZCBmYWlsIGJ1dCBkb2Vzbid0IikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBleCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8qU2ltcGxlVGltZVpvbmUgdGVtcCA9ICovbmV3IFNpbXBsZVRpbWVab25lKDAsICJaIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RBWV9PRl9XRUVLLCBHT09EX1RJTUUsCisgICAgICAgICAgICAgICAgICAgICAgICBtb250aCwgZGF5LCBkYXlPZldlZWssIHRpbWUpOworICAgICAgICAgICAgICAgLy8gdGVtcCA9IG51bGw7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZXggPT0gbnVsbCkgIT0gc2hvdWxkQmVHb29kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlNpbXBsZVRpbWVab25lKDxzdGFydD4sIG1vbnRoPSIgKyBtb250aCArICIsIGRheT0iICsgZGF5ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXlPZldlZWs9IiArIGRheU9mV2VlayArICIsIHRpbWU9IiArIHRpbWUgKworICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRCZUdvb2QgPyAoIikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5nZXRPZmZzZXQgYWNjZXB0cyBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDY1MCgpIHsKKyAgICAgICAgZmluYWwgaW50IEdPT0Q9MSwgQkFEPTA7CisgICAgICAgIGZpbmFsIGludCBHT09EX0VSQT1HcmVnb3JpYW5DYWxlbmRhci5BRCwgR09PRF9ZRUFSPTE5OTgsIEdPT0RfTU9OVEg9Q2FsZW5kYXIuQVVHVVNUOworICAgICAgICBmaW5hbCBpbnQgR09PRF9EQVk9MiwgR09PRF9ET1c9Q2FsZW5kYXIuU1VOREFZLCBHT09EX1RJTUU9MTYqMzYwMDAwMDsKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHcmVnb3JpYW5DYWxlbmRhci5CQywgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEdPT0QsIEdyZWdvcmlhbkNhbGVuZGFyLkFELCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR3JlZ29yaWFuQ2FsZW5kYXIuQkMtMSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdyZWdvcmlhbkNhbGVuZGFyLkFEKzEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuREVDRU1CRVIsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWS0xLCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkRFQ0VNQkVSKzEsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAxLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgMzEsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAwLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgMzIsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TVU5EQVksIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TQVRVUkRBWSwgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNVTkRBWS0xLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgQ2FsZW5kYXIuU0FUVVJEQVkrMSwgR09PRF9USU1FLAorCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDAsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDI0KjM2MDAwMDAtMSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgLTEsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIDI0KjM2MDAwMDAsCisgICAgICAgIH07CisKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NykgeworICAgICAgICAgICAgYm9vbGVhbiBnb29kID0gREFUQVtpXSA9PSBHT09EOworICAgICAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvKmludCBvZmZzZXQgPSovIHR6LmdldE9mZnNldChEQVRBW2krMV0sIERBVEFbaSsyXSwgREFUQVtpKzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQVtpKzRdLCBEQVRBW2krNV0sIERBVEFbaSs2XSk7CisgICAgICAgICAgICAgICAgLy9vZmZzZXQgPSAwOworICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBlID0gZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZ29vZCAhPSAoZSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnZXRPZmZzZXQoIiArCisgICAgICAgICAgICAgICAgICAgICAgREFUQVtpKzFdICsgIiwgIiArIERBVEFbaSsyXSArICIsICIgKyBEQVRBW2krM10gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBW2krNF0gKyAiLCAiICsgREFUQVtpKzVdICsgIiwgIiArIERBVEFbaSs2XSArCisgICAgICAgICAgICAgICAgICAgICAgKGdvb2QgPyAoIikgdGhyZXcgIiArIGUpIDogIikgYWNjZXB0cyBpbnZhbGlkIGFyZ3MiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBjb25zdHJ1Y3RvcnMgYWxsb3cgbnVsbCBJRHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTk5MjIoKSB7CisgICAgICAgIFRpbWVab25lIHogPSBudWxsOworCisgICAgICAgIC8vIFRpbWVab25lIEFQSS4gIE9ubHkgaGFzU2FtZVJ1bGVzKCkgYW5kIHNldERlZmF1bHQoKSBzaG91bGQKKyAgICAgICAgLy8gYWxsb3cgbnVsbC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0VGltZVpvbmUiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgeiA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8ge2RsZn0gcmVxdWlyaW5nIGNhc3QgZm9yIGRpc2FtYmlndWF0aW9uIGlzIG9rIGZvciBjb21wYXRpYmlsaXR5IHNpbmNlIG51bGwKKyAgICAgICAgLy8gaXMgbm90IGEgdmFsaWQgYXJndW1lbnQgdG8gdGhpcyBBUEkKKyAgICAgICAgICAgIHouZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JULCAoVUxvY2FsZSludWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0RGlzcGxheU5hbWUoMykiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgLy8ge2RsZn0gc2VlIGFib3ZlCisgICAgICAgICAgICB6LmdldERpc3BsYXlOYW1lKChVTG9jYWxlKW51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBnZXREaXNwbGF5TmFtZSgxKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHouaGFzU2FtZVJ1bGVzKG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGhhc1NhbWVSdWxlcyByZXR1cm5lZCB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIE5PVCBhbGxvd2VkIGluIGhhc1NhbWVSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6LmluRGF5bGlnaHRUaW1lKG51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBpbkRheWxpZ2h0VGltZSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgei5zZXRJRChudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gc2V0SUQiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICBUaW1lWm9uZSBzYXZlID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgTk9UIGFsbG93ZWQgaW4gc2V0RGVmYXVsdCIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNpbXBsZVRpbWVab25lIEFQSQorICAgICAgICBTaW1wbGVUaW1lWm9uZSBzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDIpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzID0gbmV3IFNpbXBsZVRpbWVab25lKDAsIG51bGwsIDAsIDEsIDAsIDAsIDAsIDEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBTaW1wbGVUaW1lWm9uZSgxMCkiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDExKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZihzIT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBicm9rZW4gYXQgbWlkbmlnaHQuICBUaGUgVGltZVpvbmUgY29kZSBmYWlscyB0byBoYW5kbGUKKyAgICAgKiB0cmFuc2l0aW9ucyBhdCBtaWRuaWdodCBjb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI1OTMoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiLCBMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBpbnQgT05FX0hPVVIgPSA2MCo2MCoxMDAwOworICAgICAgICBmaW5hbCBmbG9hdCBIID0gKGZsb2F0KSBPTkVfSE9VUjsKKyAgICAgICAgVGltZVpvbmUgaW5pdGlhbFpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEhIOm1tIHoiKTsKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSBhc3VuY2lvbiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtNCpPTkVfSE9VUiwgIkFtZXJpY2EvQXN1bmNpb24iIC8qUFklc1QqLywKKyAgICAgICAgICAgIENhbGVuZGFyLk9DVE9CRVIsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpOworCisgICAgICAgIC8qIFpvbmUKKyAgICAgICAgICogU3RhcnRpbmcgdGltZQorICAgICAgICAgKiBUcmFuc2l0aW9uIGV4cGVjdGVkIGJldHdlZW4gc3RhcnQrMUggYW5kIHN0YXJ0KzJICisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IFNpbXBsZVRpbWVab25lKDIqT05FX0hPVVIsICJBc2lhL0RhbWFzY3VzIiAvKkVFJXNUKi8sCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuQVBSSUwsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5PQ1RPQkVSLCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpLAorICAgICAgICAgICAgbmV3IGludFtdIHsxOTk4LCBDYWxlbmRhci5TRVBURU1CRVIsIDMwLCAyMiwgMH0sCisgICAgICAgICAgICBCb29sZWFuLlRSVUUsCisKKyAgICAgICAgICAgIGFzdW5jaW9uLAorICAgICAgICAgICAgbmV3IGludFtdIHsyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjgsIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uRkFMU0UsCisKKyAgICAgICAgICAgIGFzdW5jaW9uLAorICAgICAgICAgICAgbmV3IGludFtdIHsyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjksIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uVFJVRSwKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSB6b25lID0gbmV3IFN0cmluZ1s0XTsKKworICAgICAgICBmb3IgKGludCBqPTA7IGo8REFUQS5sZW5ndGg7IGorPTMpIHsKKyAgICAgICAgICAgIFRpbWVab25lIHR6ID0gKFRpbWVab25lKURBVEFbal07CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHopOworCisgICAgICAgICAgICAvLyBNdXN0IGNvbnN0cnVjdCB0aGUgRGF0ZSBvYmplY3QgQUZURVIgc2V0dGluZyB0aGUgZGVmYXVsdCB6b25lCisgICAgICAgICAgICBpbnRbXSBwID0gKGludFtdKURBVEFbaisxXTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQocFswXSwgcFsxXSwgcFsyXSwgcFszXSwgcFs0XSk7CisgICAgICAgICAgICBsb25nIHN0YXJ0ID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICBib29sZWFuIHRyYW5zaXRpb25FeHBlY3RlZCA9ICgoQm9vbGVhbilEQVRBW2orMl0pLmJvb2xlYW5WYWx1ZSgpOworCisgICAgICAgICAgICBsb2dsbih0ei5nZXRJRCgpICsgIjoiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTw0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZShzdGFydCArIGkqT05FX0hPVVIpOworICAgICAgICAgICAgICAgIHpvbmVbaV0gPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6ICIgKyBzZGYuZm9ybWF0KGQpICsgIiA9PiAiICsgem9uZVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIGQuZ2V0VGltZSgpL0ggKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsLnNldChwWzBdLCBwWzFdLCBwWzJdLCAwLCAwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTw0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgaCA9IDIyK2k7CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IHBbMl0rKGg+PTI0PzE6MCk7CisgICAgICAgICAgICAgICAgaCAlPSAyNDsKKyAgICAgICAgICAgICAgICBpbnQgbXMgPSBoKk9ORV9IT1VSOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQocFswXSwgcFsxXSwgZG9tLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBpbnQgb2ZmID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXMpOworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuSE9VUiwgaCk7CisgICAgICAgICAgICAgICAgaW50IHggPSBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJoPSIgKyBoICsgIjsgZG9tPSIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAgICI7IFpPTkVfT0ZGU0VUPSIgKyBjYWwuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKS9IICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBEU1RfT0ZGU0VUPSIgKyBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpL0ggKworICAgICAgICAgICAgICAgICAgICAgICI7IGdldE9mZnNldCgpPSIgKyBvZmYvSCArCisgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpL0ggKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHpvbmVbMF0uZXF1YWxzKHpvbmVbMV0pICYmCisgICAgICAgICAgICAgICAgKHpvbmVbMV0uZXF1YWxzKHpvbmVbMl0pICE9IHRyYW5zaXRpb25FeHBlY3RlZCkgJiYKKyAgICAgICAgICAgICAgICB6b25lWzJdLmVxdWFscyh6b25lWzNdKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogdHJhbnNpdGlvbiAiICsgdHJhbnNpdGlvbkV4cGVjdGVkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2l0aW9uRXhwZWN0ZWQ/InRyYW5zaXRpb24iOiJubyB0cmFuc2l0aW9uIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAvLyByZXN0b3JlIHRoZSBpbml0aWFsIHRpbWUgem9uZSBzbyB0aGF0IHRoaXMgdGVzdCBjYXNlCisgICAgLy8gZG9lc24ndCBhZmZlY3QgdGhlIG90aGVycy4KKyAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGluaXRpYWxab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBicm9rZW4gaW4gbGFzdCBob3VyIG9mIHllYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3MzYwNCgpIHsKKyAgICAgICAgVGltZVpvbmUgcHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgbzIyID0gcHN0LmdldE9mZnNldCgxLCAxOTk4LCAxMSwgMzEsIENhbGVuZGFyLlRIVVJTREFZLCAyMio2MCo2MCoxMDAwKTsKKyAgICAgICAgaW50IG8yMyA9IHBzdC5nZXRPZmZzZXQoMSwgMTk5OCwgMTEsIDMxLCBDYWxlbmRhci5USFVSU0RBWSwgMjMqNjAqNjAqMTAwMCk7CisgICAgICAgIGludCBvMDAgPSBwc3QuZ2V0T2Zmc2V0KDEsIDE5OTksIDAsIDEsIENhbGVuZGFyLkZSSURBWSwgMCk7CisgICAgICAgIGlmIChvMjIgIT0gbzIzIHx8IG8yMiAhPSBvMDApIHsKKyAgICAgICAgICAgIGVycmxuKCJPZmZzZXRzIHNob3VsZCBiZSB0aGUgc2FtZSAoZm9yIFBTVCksIGJ1dCBnb3Q6ICIgKworICAgICAgICAgICAgICAgICAgIjEyLzMxIDIyOjAwICIgKyBvMjIgKworICAgICAgICAgICAgICAgICAgIiwgMTIvMzEgMjM6MDAgIiArIG8yMyArCisgICAgICAgICAgICAgICAgICAiLCAwMS8wMSAwMDowMCAiICsgbzAwKTsKKyAgICAgICAgfQorCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUocHN0KTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGludCBsYXN0RFNUID0gY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKyAgICAgICAgaW50IHRyYW5zaXRpb25zID0gMDsKKyAgICAgICAgaW50IGRlbHRhID0gNTsKKyAgICAgICAgd2hpbGUgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPCAyMDAwKSB7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1JTlVURSwgZGVsdGEpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgIT0gbGFzdERTVCkgeworICAgICAgICAgICAgICAgICsrdHJhbnNpdGlvbnM7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgdCA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICB0LmFkZChDYWxlbmRhci5NSU5VVEUsIC1kZWx0YSk7CisgICAgICAgICAgICAgICAgbG9nbG4odC5nZXRUaW1lKCkgKyAiICAiICsgdC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkgKyAiICAiICsgKGxhc3REU1Q9Y2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0cmFuc2l0aW9ucyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiU2F3ICIgKyB0cmFuc2l0aW9ucyArICIgdHJhbnNpdGlvbnM7IHNob3VsZCBoYXZlIHNlZW4gNCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogZ2V0RGlzcGxheU5hbWUgZG9lc24ndCB3b3JrIHdpdGggdW51c3VhbCBzYXZpbmdzL29mZnNldHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzY2ODYoKSB7CisgICAgICAgIC8vIENvbnN0cnVjdCBhIHpvbmUgdGhhdCBkb2VzIG5vdCBvYnNlcnZlIERTVCBidXQKKyAgICAgICAgLy8gdGhhdCBkb2VzIGhhdmUgYSBEU1Qgc2F2aW5ncyAod2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQpLgorICAgICAgICBpbnQgb2Zmc2V0ID0gOTAgKiA2MDAwMDsgLy8gMTozMAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZShvZmZzZXQsICJfc3RkX3pvbmVfIik7CisgICAgICAgIHoxLnNldERTVFNhdmluZ3MoNDUgKiA2MDAwMCk7IC8vIDA6NDUKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSB6b25lIHRoYXQgb2JzZXJ2ZXMgRFNUIGZvciB0aGUgZmlyc3QgNiBtb250aHMuCisgICAgICAgIFNpbXBsZVRpbWVab25lIHoyID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIl9kc3Rfem9uZV8iKTsKKyAgICAgICAgejIuc2V0RFNUU2F2aW5ncyg0NSAqIDYwMDAwKTsgLy8gMDo0NQorICAgICAgICB6Mi5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCk7CisgICAgICAgIHoyLnNldEVuZFJ1bGUoQ2FsZW5kYXIuSlVMWSwgMSwgMCk7CisKKyAgICAgICAgLy8gQWxzbyBjaGVjayBEYXRlRm9ybWF0CisgICAgICAgIERhdGVGb3JtYXQgZm10MSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDEuc2V0VGltZVpvbmUoejEpOyAvLyBGb3JtYXQgdXNlcyBzdGFuZGFyZCB6b25lCisgICAgICAgIERhdGVGb3JtYXQgZm10MiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDIuc2V0VGltZVpvbmUoejIpOyAvLyBGb3JtYXQgdXNlcyBEU1Qgem9uZQorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkZFQlJVQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkc3QgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBEU1QKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk3MCwgQ2FsZW5kYXIuQVVHVVNULCAxKTsKKyAgICAgICAgRGF0ZSBzdGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBzdGFuZGFyZAorCisgICAgICAgIC8vIERlc2NyaXB0aW9uLCBSZXN1bHQsIEV4cGVjdGVkIFJlc3VsdAorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKGZhbHNlLCBTSE9SVCkvc3RkIHpvbmUiLAorICAgICAgICAgICAgejEuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKGZhbHNlLCBUaW1lWm9uZS5MT05HICksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIFNIT1JUKS9zdGQgem9uZSIsCisgICAgICAgICAgICB6MS5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFNIT1JUKS9kc3Qgem9uZSIsCisgICAgICAgICAgICB6Mi5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuU0hPUlQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZShmYWxzZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgU0hPUlQpL2RzdCB6b25lIiwKKyAgICAgICAgICAgIHoyLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMjoxNSIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORyApLCAiR01UKzAyOjE1IiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChzdGQpL3N0ZCB6b25lIiwgZm10MS5mb3JtYXQoc3RkKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiRGF0ZUZvcm1hdC5mb3JtYXQoZHN0KS9zdGQgem9uZSIsIGZtdDEuZm9ybWF0KGRzdCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgIkRhdGVGb3JtYXQuZm9ybWF0KHN0ZCkvZHN0IHpvbmUiLCBmbXQyLmZvcm1hdChzdGQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChkc3QpL2RzdCB6b25lIiwgZm10Mi5mb3JtYXQoZHN0KSwgIkdNVCswMjoxNSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBpZiAoIURBVEFbaSsxXS5lcXVhbHMoREFUQVtpKzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpXSArICIgLT4gIiArIERBVEFbaSsxXSArICIsIGV4cCAiICsgREFUQVtpKzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lIGFsbG93cyBpbnZhbGlkIERPTSB2YWx1ZXMuCisgICAgICovCisgICAgLy8gQ3VycmVudCBvcmduYWl6YXRpb24gb2YgZGF0YSBpbiB6b25laW5mb3IucmVzIGFsbG93cyBuZWdhdGl2ZQorICAgIC8vIHZhbHVlcyBmcm9tIERPTSBzbyBjb21tZW50IHRoZXNlIHRlc3RzIG91dAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTg0MjI5KCkgeworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAtMSwgMCwgMCwgMCwgMCwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc3RhcnREYXkiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihhKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMCwgMCwgMCwgMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIGVuZERheSIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGIpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAtMSwgMCwgMCwgMCwgMCwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc3RhcnREYXkgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihjKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMCwgMCwgMCwgMCwgLTEsIDAsIDAsIDEwMDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIGVuZERheSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGQpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBhIHZhbGlkIGNvbnN0cnVjdG9yIGNhbGwgZm9yIHN1YnNlcXVlbnQgdGVzdHMuCisKKyAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIDEsIDAsIDAsIDAsIDEsIDAsIDApOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKDAsIC0xLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRTdGFydFJ1bGUgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihlKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldFN0YXJ0UnVsZSgwLCAtMSwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgc2V0U3RhcnRSdWxlIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZikgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKDAsIC0xLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRFbmRSdWxlICtzYXZpbmdzIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZykgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKDAsIC0xLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRFbmRSdWxlIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoaCkgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5nZXRPZmZzZXQoKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gdG8gZ2V0CisgICAgICogb2YgMi8yOS8xOTk2IChsZWFwIGRheSkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMDg5NjAgKCkgeworICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgIHRyeSB7CisgICAgICAgIC8qaW50IG9mZnNldCA9Ki8gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjksCisgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDApOworICAgICAgICAvL29mZnNldCA9IDA7CisgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oIkZBSUxFRDogdG8gZ2V0IFRpbWVab25lLmdldE9mZnNldCgyLzI5Lzk2KSIpOworICAgIH0KKyAgICB0cnkgeworICAgICAgICAvKmludCBvZmZzZXQgPSovIHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5NywgQ2FsZW5kYXIuRkVCUlVBUlksIDI5LAorICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAwKTsKKyAgICAgICAgLy9vZmZzZXQgPSAwOworICAgICAgICB3YXJubG4oIkZBSUxFRDogVGltZVpvbmUuZ2V0T2Zmc2V0KDIvMjkvOTcpIGV4cGVjdGVkIHRvIHRocm93IEV4Y2VwdGlvbi4iKTsKKyAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiZ290IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvIHNlZSBpZiBEYXRlRm9ybWF0IHVuZGVyc3RhbmRzIHpvbmUgZXF1aXZhbGVuY3kgZ3JvdXBzLiAgSXQKKyAgICAgKiBtaWdodCBzZWVtIHRoYXQgdGhpcyBzaG91bGQgYmUgYSBEYXRlRm9ybWF0IHRlc3QsIGJ1dCBpdCdzIHJlYWxseSBhCisgICAgICogVGltZVpvbmUgdGVzdCAtLSB0aGUgY2hhbmdlcyB0byBEYXRlRm9ybWF0IGFyZSBtaW5vci4KKyAgICAgKgorICAgICAqIFdlIHVzZSB0d28ga25vd24sIHpvbmVzIHRoYXQgYXJlIGVxdWl2YWxlbnQsIHdoZXJlIG9uZSB6b25lIGhhcworICAgICAqIGxvY2FsaXplZCBuYW1lIGRhdGEsIGFuZCB0aGUgb3RoZXIgZG9lc24ndCwgaW4gc29tZSBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEo0NDkoKSB7CisgICAgICAgIC8vIG5vdCB1c2VkIFN0cmluZyBzdHI7CisKKyAgICAgICAgLy8gTW9kaWZ5IHRoZSBmb2xsb3dpbmcgdGhyZWUgYXMgbmVjZXNzYXJ5LiAgVGhlIHR3byBJRHMgbXVzdAorICAgICAgICAvLyBzcGVjaWZ5IHR3byB6b25lcyBpbiB0aGUgc2FtZSBlcXVpdmFsZW5jeSBncm91cC4gIE9uZSBtdXN0IGhhdmUKKyAgICAgICAgLy8gbG9jYWxlIGRhdGEgaW4gJ2xvYyc7IHRoZSBvdGhlciBtdXN0IG5vdC4KKyAgICAgICAgU3RyaW5nIGlkV2l0aExvY2FsZURhdGEgPSAiQW1lcmljYS9Mb3NfQW5nZWxlcyI7CisgICAgICAgIFN0cmluZyBpZFdpdGhvdXRMb2NhbGVEYXRhID0gIlBTVCI7IC8vICJVUy9QYWNpZmljIjsKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIiIsICIiKTsKKworICAgICAgICBUaW1lWm9uZSB6b25lV2l0aCA9IFRpbWVab25lLmdldFRpbWVab25lKGlkV2l0aExvY2FsZURhdGEpOworICAgICAgICBUaW1lWm9uZSB6b25lV2l0aG91dCA9IFRpbWVab25lLmdldFRpbWVab25lKGlkV2l0aG91dExvY2FsZURhdGEpOworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHZhbGlkIHpvbmVzCisgICAgICAgIGlmICghKHpvbmVXaXRoLmdldElEKCkuZXF1YWxzKGlkV2l0aExvY2FsZURhdGEpICYmCisgICAgICAgICAgICAgIHpvbmVXaXRob3V0LmdldElEKCkuZXF1YWxzKGlkV2l0aG91dExvY2FsZURhdGEpKSkgeworICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBVbmFibGUgdG8gY3JlYXRlIHpvbmVzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxXaXRoID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVXaXRoKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbFdpdGhvdXQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZVdpdGhvdXQpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU0gZCB5eXl5IGhoOm1tIGEgenp6IiwgbG9jKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKDBMKTsKKyAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWxXaXRoKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJXaXRoID0gZm10LmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWxXaXRob3V0KTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJXaXRob3V0ID0gZm10LmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGlmIChzdHJXaXRoLmVxdWFscyhzdHJXaXRob3V0KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlkV2l0aExvY2FsZURhdGEgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cldpdGggKyAiOyAiICsgaWRXaXRob3V0TG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aG91dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaWRXaXRoTG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aCArICI7ICIgKyBpZFdpdGhvdXRMb2NhbGVEYXRhICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJXaXRob3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIGdldE9mZnNldCByZXR1cm5zIHdyb25nIG9mZnNldCBmb3IgZGF5cyBpbiBlYXJseSAyMHRoIGNlbnR1cnkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjUxMzQoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgaWN1RWFzdGVybiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7ICAgICAgICAKKyAgICAgICAgdGVzdENhbC5zZXRUaW1lWm9uZShpY3VFYXN0ZXJuKTsKKyAgICAgICAgdGVzdENhbC5zZXQoMTkwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCwgMCwgMCk7CisgICAgICAgIGxvbmcgdGltZSA9IHRlc3RDYWwuZ2V0VGltZUluTWlsbGlzKCk7CisKKyAgICAgICAgaW50IG9mZnNldCA9IGljdUVhc3Rlcm4uZ2V0T2Zmc2V0KHRpbWUpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC0xODAwMDAwMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVUQyBvZmZzZXQgaW4gdGltZSB6b25lIEFtZXJpY2EvTmV3X1lvcmsgb24gSmFuIDEsIDE5MDAgLT4gIiArIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBpc0RzdCA9IGljdUVhc3Rlcm4uaW5EYXlsaWdodFRpbWUobmV3IERhdGUodGltZSkpOworICAgICAgICBpZiAoaXNEc3QpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEU1QgaXMgb2JzZXJ2ZWQgaW4gdGltZSB6b25lIEFtZXJpY2EvTmV3X1lvcmsgb24gSmFuIDEsIDE5MDAiKTsKKyAgICAgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICBpZiAoU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlbmRvciIsICIiKS5zdGFydHNXaXRoKCJJQk0iKSAmJgorICAgICAgICAJU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlcnNpb24iLCAiIikuZXF1YWxzKCIxLjQuMSIpKSB7CisgICAgICAgICAgICAvLyBJQk0gSkRLIDEuNC4xIGhhcyBhIGJ1ZyBhbmQgZmFpbHMgdG8gcnVuIHRoaXMgdGVzdCBjYXNlLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZSBqZGtFYXN0ZXJuID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7CisgICAgICAgIC8vIENvbXBhcmUgb2Zmc2V0IGFuZCBEU1Qgb2JzZXJ2YXRpb24gd2l0aCBKREsgYW5kIElDVSBmb3IgNTAgeWVhcnMgc2luY2UgMTkwMAorICAgICAgICB0ZXN0Q2FsLmFkZChDYWxlbmRhci5ZRUFSLCA1MCk7CisgICAgICAgIGxvbmcgZW5kVGltZSA9IHRlc3RDYWwuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIGludCBqZGtPZmZzZXQ7CisgICAgICAgIGJvb2xlYW4gaXNEc3RKZGs7CisgICAgICAgIHdoaWxlICh0aW1lIDwgZW5kVGltZSkgeworICAgICAgICAgICAgb2Zmc2V0ID0gaWN1RWFzdGVybi5nZXRPZmZzZXQodGltZSk7CisgICAgICAgICAgICBqZGtPZmZzZXQgPSBqZGtFYXN0ZXJuLmdldE9mZnNldCh0aW1lKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gamRrT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluY29tcGF0aWJsZSBVVEMgb2Zmc2V0IC0+IEpESzoiICsgamRrT2Zmc2V0ICsgIi9JQ1U6IiArIG9mZnNldCArICIgWyIgKyB0aW1lICsgIl0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKHRpbWUpOworICAgICAgICAgICAgaXNEc3QgPSBpY3VFYXN0ZXJuLmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICAgICAgaXNEc3RKZGsgPSBqZGtFYXN0ZXJuLmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICAgICAgaWYgKGlzRHN0ICE9IGlzRHN0SmRrKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluY29tcGF0aWJsZSBEU1QgLT4gSkRLOiIgKyBpc0RzdEpkayArICIvSUNVOiIgKyBpc0RzdCArICIgWyIgKyB0aW1lICsgIl0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRpbWUgKz0gMjQqNjAqNjAqMTAwMEw7IC8vIGluY3JlbWVudCAxIGRheQorICAgICAgICB9CisvLyNlbmRpZgorICAgIH0KK30KKworLy9lb2YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWIyY2Q1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YQpAQCAtMCwwICsxLDEyMDAgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEB0ZXN0IDEuMjIgOTkvMDkvMjEKKyAqIEBidWcgNDAyODAwNiA0MDQ0MDEzIDQwOTY2OTQgNDEwNzI3NiA0MTA3NTcwIDQxMTI4NjkgNDEzMDg4NQorICogQHN1bW1hcnkgdGVzdCBUaW1lWm9uZQorICogQGJ1aWxkIFRpbWVab25lVGVzdAorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUaW1lWm9uZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDM2MDAwMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOT1RFOiBBcyBvZiBJQ1UgMi44LCB0aGUgbWFwcGluZyBvZiAzLWxldHRlciBsZWdhY3kgYWxpYXNlcworICAgICAqIHRvIGByZWFsJyBPbHNvbiBJRHMgaXMgdW5kZXIgY29udHJvbCBvZiB0aGUgdW5kZXJseWluZyBKREsuCisgICAgICogVGhpcyB0ZXN0IG1heSBmYWlsIG9uIG9uZSBKREsgYW5kIHBhc3Mgb24gYW5vdGhlcjsgZG9uJ3QgYmUKKyAgICAgKiB0b28gY29uY2VybmVkLiAgQWxhbgorICAgICAqCisgICAgICogQnVnIDQxMzA4ODUKKyAgICAgKiBDZXJ0YWluIHNob3J0IHpvbmUgSURzLCB1c2VkIHNpbmNlIDEuMS54LCBhcmUgaW5jb3JyZWN0LgorICAgICAqICAKKyAgICAgKiBUaGUgd29yc3Qgb2YgdGhlc2UgaXM6CisgICAgICoKKyAgICAgKiAiQ0FUIiAoQ2VudHJhbCBBZnJpY2FuIFRpbWUpIHNob3VsZCBiZSBHTVQrMjowMCwgYnV0IGluc3RlYWQgcmV0dXJucyBhCisgICAgICogem9uZSBhdCBHTVQtMTowMC4gVGhlIHpvbmUgYXQgR01ULTE6MDAgc2hvdWxkIGJlIGNhbGxlZCBFR1QsIENWVCwgRUdTVCwKKyAgICAgKiBvciBBWk9TVCwgZGVwZW5kaW5nIG9uIHdoaWNoIHpvbmUgaXMgbWVhbnQsIGJ1dCBpbiBubyBjYXNlIGlzIGl0IENBVC4KKyAgICAgKgorICAgICAqIE90aGVyIHdyb25nIHpvbmUgSURzOgorICAgICAqCisgICAgICogRUNUIChFdXJvcGVhbiBDZW50cmFsIFRpbWUpIEdNVCsxOjAwOiBFQ1QgaXMgRWN1YWRvciBUaW1lLAorICAgICAqIEdNVC01OjAwLiBFdXJvcGVhbiBDZW50cmFsIHRpbWUgaXMgYWJicmV2aWF0ZWQgQ0VTVC4KKyAgICAgKgorICAgICAqIFNTVCAoU29sb21vbiBJc2xhbmQgVGltZSkgR01UKzExOjAwLiBTU1QgaXMgYWN0dWFsbHkgU2Ftb2EgU3RhbmRhcmQgVGltZSwKKyAgICAgKiBHTVQtMTE6MDAuIFNvbG9tb24gSXNsYW5kIHRpbWUgaXMgU0JULgorICAgICAqCisgICAgICogTlNUIChOZXcgWmVhbGFuZCBUaW1lKSBHTVQrMTI6MDAuIE5TVCBpcyB0aGUgYWJicmV2aWF0aW9uIGZvcgorICAgICAqIE5ld2ZvdW5kbGFuZCBTdGFuZGFyZCBUaW1lLCBHTVQtMzozMC4gTmV3IFplYWxhbmRlcnMgdXNlIE5aU1QuCisgICAgICoKKyAgICAgKiBBU1QgKEFsYXNrYSBTdGFuZGFyZCBUaW1lKSBHTVQtOTowMC4gW1RoaXMgaGFzIGFscmVhZHkgYmVlbiBub3RlZCBpbgorICAgICAqIGFub3RoZXIgYnVnLl0gSXQgc2hvdWxkIGJlICJBS1NUIi4gQVNUIGlzIEF0bGFudGljIFN0YW5kYXJkIFRpbWUsCisgICAgICogR01ULTQ6MDAuCisgICAgICoKKyAgICAgKiBQTlQgKFBob2VuaXggVGltZSkgR01ULTc6MDAuIFBOVCB1c3VhbGx5IG1lYW5zIFBpdGNhaXJuIFRpbWUsCisgICAgICogR01ULTg6MzAuIFRoZXJlIGlzIG5vIHN0YW5kYXJkIGFiYnJldmlhdGlvbiBmb3IgUGhvZW5peCB0aW1lLCBhcyBkaXN0aW5jdAorICAgICAqIGZyb20gTVNUIHdpdGggZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKgorICAgICAqIEluIGFkZGl0aW9uIHRvIHRoZXNlIHByb2JsZW1zLCBhIG51bWJlciBvZiB6b25lcyBhcmUgRkFLRS4gVGhhdCBpcywgdGhleQorICAgICAqIGRvbid0IG1hdGNoIHdoYXQgcGVvcGxlIHVzZSBpbiB0aGUgcmVhbCB3b3JsZC4KKyAgICAgKgorICAgICAqIEZBS0Ugem9uZXM6CisgICAgICoKKyAgICAgKiBFRVQgKHNob3VsZCBiZSBFRVNUKQorICAgICAqIEFSVCAoc2hvdWxkIGJlIEVFU1QpCisgICAgICogTUVUIChzaG91bGQgYmUgSVJTVCkKKyAgICAgKiBORVQgKHNob3VsZCBiZSBBTVNUKQorICAgICAqIFBMVCAoc2hvdWxkIGJlIFBLVCkKKyAgICAgKiBCU1QgKHNob3VsZCBiZSBCRFQpCisgICAgICogVlNUIChzaG91bGQgYmUgSUNUKQorICAgICAqIENUVCAoc2hvdWxkIGJlIENTVCkgKworICAgICAqIEFDVCAoc2hvdWxkIGJlIENTVCkgKworICAgICAqIEFFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqIE1JVCAoc2hvdWxkIGJlIFdTVCkgKworICAgICAqIElFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqIFBSVCAoc2hvdWxkIGJlIEFTVCkgKworICAgICAqIENOVCAoc2hvdWxkIGJlIE5TVCkKKyAgICAgKiBBR1QgKHNob3VsZCBiZSBBUlNUKQorICAgICAqIEJFVCAoc2hvdWxkIGJlIEVTVCkgKworICAgICAqCisgICAgICogKyBBIHpvbmUgd2l0aCB0aGUgY29ycmVjdCBuYW1lIGFscmVhZHkgZXhpc3RzIGFuZCBtZWFucyBzb21ldGhpbmcKKyAgICAgKiBlbHNlLiBFLmcuLCBFU1QgdXN1YWxseSBpbmRpY2F0ZXMgdGhlIFVTIEVhc3Rlcm4gem9uZSwgc28gaXQgY2Fubm90IGJlCisgICAgICogdXNlZCBmb3IgQnJhemlsIChCRVQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTaG9ydFpvbmVJRHMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBab25lRGVzY3JpcHRvcltdIEpES18xMTZfUkVGRVJFTkNFX0xJU1QgPSB7CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIk1JVCIsIC02NjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSFNUIiwgLTYwMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBU1QiLCAtNTQwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUFNUIiwgLTQ4MCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlBOVCIsIC00MjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTVNUIiwgLTQyMCwgZmFsc2UpLC8vIHVwZGF0ZWQgQXVnIDIwMDMgYWxpdQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDU1QiLCAtMzYwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSUVUIiwgLTMwMCwgdHJ1ZSksIC8vIHVwZGF0ZWQgRmViIDIwMDYgc3JsCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkVTVCIsIC0zMDAsIGZhbHNlKSwvLyB1cGRhdGVkIEF1ZyAyMDAzIGFsaXUKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUFJUIiwgLTI0MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDTlQiLCAtMjEwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQUdUIiwgLTE4MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJCRVQiLCAtMTgwLCB0cnVlKSwKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiQ0FUIiwgLTYwLCBmYWxzZSksIC8vIFdyb25nOgorICAgICAgICAgICAgLy8gQXMgb2YgYnVnIDQxMzA4ODUsIGZpeCBDQVQgKENlbnRyYWwgQWZyaWNhKQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDQVQiLCAxMjAsIGZhbHNlKSwgLy8gQWZyaWNhL0hhcmFyZQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJHTVQiLCAwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlVUQyIsIDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRUNUIiwgNjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBUlQiLCAxMjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJFRVQiLCAxMjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJFQVQiLCAxODAsIGZhbHNlKSwKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiTUVUIiwgMjEwLCB0cnVlKSwKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzdGFuZGFyZCBVbml4IHpvbmUsIHNvIGRvbid0IHJlbWFwIGl0IC0gTGl1IDNKYW4wMQorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJORVQiLCAyNDAsIGZhbHNlKTsKKyAgICAgICAgICAgIC8vIEFzIG9mIGJ1ZyA0MTkxMTY0LCBmaXggTkVUCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIk5FVCIsIDI0MCwgdHJ1ZSksCisgICAgICAgICAgICAvLyBQTFQgYmVoYXZlcyBkaWZmZXJlbnRseSB1bmRlciBkaWZmZXJlbnQgSkRLcywgc28gd2UgZG9uJ3QgY2hlY2sgaXQKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiUExUIiwgMzAwLCBmYWxzZSksIC8vIHVwZGF0ZWQgT2N0IDIwMDMgYWxpdQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJJU1QiLCAzMzAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQlNUIiwgMzYwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlZTVCIsIDQyMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJDVFQiLCA0ODAsIGZhbHNlKSwgLy8gdXBkYXRlZCBPY3QgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkpTVCIsIDU0MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBQ1QiLCA1NzAsIGZhbHNlKSwgLy8gdXBkYXRlZCBPY3QgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFFVCIsIDYwMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlNTVCIsIDY2MCwgZmFsc2UpLAorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJOU1QiLCA3MjAsIGZhbHNlKSwKKyAgICAgICAgICAgIC8vIEFzIG9mIGJ1ZyA0MTMwODg1LCBmaXggTlNUIChOZXcgWmVhbGFuZCkKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTlNUIiwgNzIwLCB0cnVlKSwgLy8gUGFjaWZpYy9BdWNrbGFuZAorCisgICAgICAgICAgICAvLyBbM0phbjAxIExpdV0gVGhyZWUgb2YgdGhlc2Ugem9uZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgICAgICAgICAgICAvLyBUaGUgQ1RUIGFuZCBBQ1Qgem9uZXMganVzdCByZW1hcCB0byBBc2lhL1NoYW5naGFpCisgICAgICAgICAgICAvLyBhbmQgQXVzdHJhbGlhL0Rhcndpbi4gIFNpbmNlIHRob3NlIHpvbmVzIGhhdmUgY2hhbmdlZCwKKyAgICAgICAgICAgIC8vIEkgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZS4gIFRoZSBNRVQgem9uZSB1c2VkIHRvIGJlIG1hcHBlZAorICAgICAgICAgICAgLy8gdG8gQXNpYS9UZWhyYW4gYnV0IHNpbmNlIE1FVCBpcyBhIHN0YW5kYXJkIFVuaXggem9uZSBuYW1lZAorICAgICAgICAgICAgLy8gaW4gdGhlIHNvdXJjZSBkYXRhIHdlIG5vIGxvbmdlciBkbyB0aGlzIGluIGljdSBvciBpY3U0ai4KKyAgICAgICAgfTsKKworICAgICAgICBIYXNodGFibGUgaGFzaCA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gaWRzW2ldOworICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCgpID09IDMpIHsKKyAgICAgICAgICAgICAgICBoYXNoLnB1dChpZCwgbmV3IFpvbmVEZXNjcmlwdG9yKFRpbWVab25lLmdldFRpbWVab25lKGlkKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEpES18xMTZfUkVGRVJFTkNFX0xJU1QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIHJlZmVyZW5jZVpvbmUgPSBKREtfMTE2X1JFRkVSRU5DRV9MSVNUW2ldOworICAgICAgICAgICAgWm9uZURlc2NyaXB0b3IgY3VycmVudFpvbmUgPSAoWm9uZURlc2NyaXB0b3IpaGFzaC5nZXQocmVmZXJlbmNlWm9uZS5nZXRJRCgpKTsKKyAgICAgICAgICAgIGlmIChyZWZlcmVuY2Vab25lLmVxdWFscyhjdXJyZW50Wm9uZSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2sgIiArIHJlZmVyZW5jZVpvbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBFeHBlY3RlZCAiICsgcmVmZXJlbmNlWm9uZSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgZ290ICIgKyBjdXJyZW50Wm9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGRlc2NyaXB0b3IgZm9yIGEgem9uZTsgdXNlZCB0byByZWdyZXNzIHRoZSBzaG9ydCB6b25lIElEcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgWm9uZURlc2NyaXB0b3IgeworICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgIGludCBvZmZzZXQ7IC8vIEluIG1pbnV0ZXMKKyAgICAgICAgYm9vbGVhbiBkYXlsaWdodDsKKworICAgICAgICBab25lRGVzY3JpcHRvcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgICAgICB0aGlzLmlkID0gem9uZS5nZXRJRCgpOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpIC8gNjAwMDA7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFpvbmVEZXNjcmlwdG9yKFN0cmluZyBpZCwgaW50IG9mZnNldCwgYm9vbGVhbiBkYXlsaWdodCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gZGF5bGlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeyByZXR1cm4gaWQ7IH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIHRoYXQgPSAoWm9uZURlc2NyaXB0b3IpbzsKKyAgICAgICAgICAgIHJldHVybiB0aGF0ICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICBpZC5lcXVhbHModGhhdC5pZCkgJiYKKyAgICAgICAgICAgICAgICBvZmZzZXQgPT0gdGhhdC5vZmZzZXQgJiYKKyAgICAgICAgICAgICAgICBkYXlsaWdodCA9PSB0aGF0LmRheWxpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIGludCBtaW4gPSBvZmZzZXQ7CisgICAgICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgICAgICBpZiAobWluIDwgMCkgeyBzaWduID0gJy0nOyBtaW4gPSAtbWluOyB9CisKKyAgICAgICAgICAgIHJldHVybiAiWm9uZVtcIiIgKyBpZCArICJcIiwgR01UIiArIHNpZ24gKyAobWluLzYwKSArICc6JyArCisgICAgICAgICAgICAgICAgKG1pbiU2MDwxMD8iMCI6IiIpICsgKG1pbiU2MCkgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAoZGF5bGlnaHQgPyAiRGF5bGlnaHQiIDogIlN0YW5kYXJkIikgKyAiXSI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBab25lRGVzY3JpcHRvciBpMSA9IChab25lRGVzY3JpcHRvcilvMTsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIGkyID0gKFpvbmVEZXNjcmlwdG9yKW8yOworICAgICAgICAgICAgaWYgKGkxLm9mZnNldCA+IGkyLm9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAoaTEub2Zmc2V0IDwgaTIub2Zmc2V0KSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoaTEuZGF5bGlnaHQgJiYgIWkyLmRheWxpZ2h0KSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmICghaTEuZGF5bGlnaHQgJiYgaTIuZGF5bGlnaHQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiBpMS5pZC5jb21wYXJlVG8oaTIuaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBFWFBFQ1RFRF9DVVNUT01fSUQgPSAiQ3VzdG9tIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGZvcm1hdE1pbnV0ZXMoaW50IG1pbikgeworICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgIGlmIChtaW4gPCAwKSB7IHNpZ24gPSAnLSc7IG1pbiA9IC1taW47IH0KKyAgICAgICAgaW50IGggPSBtaW4vNjA7CisgICAgICAgIG1pbiA9IG1pbiU2MDsKKyAgICAgICAgcmV0dXJuICIiICsgc2lnbiArIChoPDEwPyIwIjoiIikgKyBoICsgIjoiICsgKG1pbjwxMD8iMCI6IiIpICsgbWluOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBcyBwYXJ0IG9mIHRoZSBWTSBmaXggKHNlZSBDQ0MgYXBwcm92ZWQgUkZFIDQwMjgwMDYsIGJ1ZworICAgICAqIDQwNDQwMTMpLCBUaW1lWm9uZS5nZXRUaW1lWm9uZSgpIGhhcyBiZWVuIG1vZGlmaWVkIHRvIHJlY29nbml6ZQorICAgICAqIGdlbmVyaWMgSURzIG9mIHRoZSBmb3JtIEdNVFsrLV1oaDptbSwgR01UWystXWhobW0sIGFuZAorICAgICAqIEdNVFsrLV1oaC4gIFRlc3QgdGhpcyBiZWhhdmlvciBoZXJlLgorICAgICAqCisgICAgICogQnVnIDQwNDQwMTMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VzdG9tUGFyc2UoKSB7CisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBJRCAgICAgICAgRXhwZWN0ZWQgb2Zmc2V0IGluIG1pbnV0ZXMKKyAgICAgICAgICAgICJHTVQiLCAgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVC1ZT1VSLkFELkhFUkUiLCBudWxsLAorICAgICAgICAgICAgLy8gIkdNVDAiLCAgICAgIG51bGwsIC8vIElDVSAzLjY6IEFuIE9sc29uIHpvbmUgSURUaGlzIGlzIHBhcnNlZCBieSBzb21lIEpES3MgKFN1biAxLjQuMSksIGJ1dCBub3QgYnkgb3RoZXJzCisgICAgICAgICAgLy8gICJHTVQrMCIsICAgICBuZXcgSW50ZWdlcigwKSwvLyBJQ1UgMy42OiBBbiBPbHNvbiB6b25lIElECisgICAgICAgICAgICAiR01UKzEiLCAgICAgbmV3IEludGVnZXIoNjApLAorICAgICAgICAgICAgIkdNVC0wMDMwIiwgIG5ldyBJbnRlZ2VyKC0zMCksCisgICAgICAgICAgICAvLyBQYXJzZWQgaW4gMS4zLCBwYXJzZSBmYWlsdXJlIGluIDEuNDoKKyAgICAgICAgICAgIC8vIkdNVCsxNTo5OSIsIG5ldyBJbnRlZ2VyKDE1KjYwKzk5KSwKKyAgICAgICAgICAgICJHTVQrIiwgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVC0iLCAgICAgIG51bGwsCisgICAgICAgICAgICAiR01UKzA6IiwgICAgbnVsbCwKKyAgICAgICAgICAgICJHTVQtOiIsICAgICBudWxsLAorICAgICAgICAgICAgIkdNVCswMDEwIiwgIG5ldyBJbnRlZ2VyKDEwKSwgLy8gSW50ZXJwcmV0IHRoaXMgYXMgMDA6MTAKKyAgICAgICAgICAgICJHTVQtMTAiLCAgICBuZXcgSW50ZWdlcigtMTAqNjApLAorICAgICAgICAgICAgLy8gUGFyc2VkIGluIDEuMywgcGFyc2UgZmFpbHVyZSBpbiAxLjQ6CisgICAgICAgICAgICAvLyJHTVQrMzAiLCAgICBuZXcgSW50ZWdlcigzMCksCisgICAgICAgICAgICAiR01ULTM6MzAiLCAgbmV3IEludGVnZXIoLSgzKjYwKzMwKSksCisgICAgICAgICAgICAiR01ULTIzMCIsICAgbmV3IEludGVnZXIoLSgyKjYwKzMwKSksCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylEQVRBW2ldOworICAgICAgICAgICAgSW50ZWdlciBleHAgPSAoSW50ZWdlcilEQVRBW2krMV07CisgICAgICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpOworICAgICAgICAgICAgaWYgKHpvbmUuZ2V0SUQoKS5lcXVhbHMoIkdNVCIpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oaWQgKyAiIC0+IGdlbmVyaWMgR01UIik7CisgICAgICAgICAgICAgICAgLy8gV2hlbiBUaW1lWm9uZS5nZXRUaW1lWm9uZSgpIGNhbid0IHBhcnNlIHRoZSBpZCwgaXQKKyAgICAgICAgICAgICAgICAvLyByZXR1cm5zIEdNVCAtLSBhIGR1YmlvdXMgcHJhY3RpY2UsIGJ1dCByZXF1aXJlZCBmb3IKKyAgICAgICAgICAgICAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAgICAgIGlmIChleHAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgb2Zmc2V0IG9mICIgKyBmb3JtYXRNaW51dGVzKGV4cC5pbnRWYWx1ZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBpZCArICIsIGdvdCBwYXJzZSBmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGlvZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpLzYwMDAwOworICAgICAgICAgICAgICAgIFN0cmluZyBvZmZzZXQgPSBmb3JtYXRNaW51dGVzKGlvZmZzZXQpOworICAgICAgICAgICAgICAgIFN0cmluZyBnZW5JRCA9ICJHTVQiKyBvZmZzZXQ7CisgICAgICAgICAgICAgICAgbG9nbG4oaWQgKyAiIC0+ICIgKyB6b25lLmdldElEKCkgKyAiICIgKyBnZW5JRCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGdvdElEID0gem9uZS5nZXRJRCgpOworICAgICAgICAgICAgICAgIGlmIChleHAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgcGFyc2UgZmFpbHVyZSBmb3IgIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZ290IG9mZnNldCBvZiAiICsgb2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgaWQgIiArIHpvbmUuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEpESyAxLjMgY3JlYXRlcyBjdXN0b20gem9uZXMgd2l0aCB0aGUgSUQgIkN1c3RvbSIKKyAgICAgICAgICAgICAgICAvLyBKREsgMS40IGNyZWF0ZXMgY3VzdG9tIHpvbmVzIHdpdGggSURzIG9mIHRoZSBmb3JtICJHTVQrMDI6MDAiCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW9mZnNldCAhPSBleHAuaW50VmFsdWUoKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICEoZ290SUQuZXF1YWxzKEVYUEVDVEVEX0NVU1RPTV9JRCkgLyp8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290SUQuZXF1YWxzKGdlbklEKSovKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgb2Zmc2V0IG9mICIgKyBmb3JtYXRNaW51dGVzKGV4cC5pbnRWYWx1ZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGlkIEN1c3RvbSwgZm9yICIgKyBpZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCBvZmZzZXQgb2YgIiArIG9mZnNldCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGlkICIgKyB6b25lLmdldElEKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGdldERpc3BsYXlOYW1lKCkgQVBJLgorICAgICAqCisgICAgICogQnVnIDQxMTI4NjkKKyAgICAgKiBCdWcgNDAyODAwNgorICAgICAqCisgICAgICogU2VlIGFsc28gQVBJIGNoYW5nZSByZXF1ZXN0IEE0MS4KKyAgICAgKgorICAgICAqIDQvMjEvOTggLSBtYWtlIHNtYXJ0ZXIsIHNvIHRoZSB0ZXN0IHdvcmtzIGlmIHRoZSBleHQgcmVzb3VyY2VzCisgICAgICogYXJlIHByZXNlbnQgb3Igbm90LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSB6b25lLmdldERpc3BsYXlOYW1lKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgbG9nbG4oIlBTVC0+IiArIG5hbWUpOworCisgICAgICAgIC8vIGRsZiAtIHdlIG5vdyAoMy40LjEpIHJldHVybiBnZW5lcmljIHRpbWUKKyAgICAgICAgaWYgKCFuYW1lLmVxdWFscygiUGFjaWZpYyBUaW1lIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgXCJQYWNpZmljIFRpbWVcIiwgZ290ICIgKyBuYW1lICsKKyAgICAgICAgICAgICAgICAgICIgZm9yICIgKyB6b25lKTsKKworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORVMgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgICAgICAvLyB0b2RvOiBjaGVjayB0byBzZWUgd2hldGhlciB3ZSBjYW4gdGVzdCBmb3IgYWxsIG9mIHBzdCwgcGR0LCBwdAorICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCBuZXcgSW50ZWdlcihUaW1lWm9uZS5TSE9SVCksICJQU1QiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4odHJ1ZSksICBuZXcgSW50ZWdlcihUaW1lWm9uZS5TSE9SVCksICJQRFQiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCBuZXcgSW50ZWdlcihUaW1lWm9uZS5MT05HKSwgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4odHJ1ZSksICBuZXcgSW50ZWdlcihUaW1lWm9uZS5MT05HKSwgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUoKChCb29sZWFuKURBVEFbaV0pLmJvb2xlYW5WYWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChJbnRlZ2VyKURBVEFbaSsxXSkuaW50VmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoREFUQVtpKzJdKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgIiArIERBVEFbaSsyXSArICI7IGdvdCAiICsgbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBkaXNwbGF5IHRoZSBEU1QgbmFtZSBieSBjb25zdHJ1Y3RpbmcgYSBmYWtlCisgICAgICAgIC8vIFBTVCB6b25lIHRoYXQgaGFzIERTVCBhbGwgeWVhciBsb25nLgorICAgICAgICAvLyBkbGYgLSB0aGlzIHRlc3QgaXMgbm8gbG9uZ2VyIHJlbGV2YW50LCB3ZSBkaXNwbGF5IGdlbmVyaWMgdGltZSBub3cKKyAgICAgICAgLy8gICAgc28gdGhlIGJlaGF2aW9yIG9mIHRoZSB0aW1lem9uZSBkb2Vzbid0IG1hdHRlcgorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lMiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiUFNUIik7CisgICAgICAgIHpvbmUyLnNldFN0YXJ0UnVsZShDYWxlbmRhci5KQU5VQVJZLCAxLCAwKTsKKyAgICAgICAgem9uZTIuc2V0RW5kUnVsZShDYWxlbmRhci5ERUNFTUJFUiwgMzEsIDApOworICAgICAgICBsb2dsbigiTW9kaWZpZWQgUFNUIGluRGF5bGlnaHRUaW1lLT4iICsgem9uZTIuaW5EYXlsaWdodFRpbWUobmV3IERhdGUoKSkpOworICAgICAgICBuYW1lID0gem9uZTIuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBsb2dsbigiTW9kaWZpZWQgUFNULT4iICsgbmFtZSk7CisgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIlBhY2lmaWMgVGltZSIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIFwiUGFjaWZpYyBUaW1lXCIiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBkZWZhdWx0IGRpc3BsYXkgZm9ybWF0IGZvciBMb2NhbGVzCisgICAgICAgIC8vIHdpdGggbm8gZGlzcGxheSBuYW1lIGRhdGEuCisgICAgICAgIExvY2FsZSBtdF9NVCA9IG5ldyBMb2NhbGUoIm10IiwgIk1UIik7CisgICAgICAgIG5hbWUgPSB6b25lLmdldERpc3BsYXlOYW1lKG10X01UKTsKKyAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkUgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORSBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIGxvZ2xuKCJQU1QobXRfTVQpLT4iICsgbmFtZSk7CisKKyAgICAgICAgLy8gTm93IGJlIHNtYXJ0IC0tIGNoZWNrIHRvIHNlZSBpZiB6aCByZXNvdXJjZSBpcyBldmVuIHByZXNlbnQuCisgICAgICAgIC8vIElmIG5vdCwgd2UgZXhwZWN0IHRoZSBlbiBmYWxsYmFjayBiZWhhdmlvci4KKworICAgICAgICAvLyBpbiBpY3U0aiAyLjEgd2Uga25vdyB3ZSBoYXZlIHRoZSB6aF9DTiBsb2NhbGUgZGF0YSwgdGhvdWdoIGl0J3MgaW5jb21wbGV0ZQorLy8gICAgLyJEYXRlRm9ybWF0Wm9uZURhdGEiLCAKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGVuUkIgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBtdFJCID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG10X01UKTsKKyAgICAgICAgYm9vbGVhbiBub1pIID0gZW5SQiA9PSBtdFJCOworCisgICAgICAgIGlmIChub1pIKSB7CisgICAgICAgICAgICBsb2dsbigiV2FybmluZzogTm90IHRlc3RpbmcgdGhlIG10X01UIGJlaGF2aW9yIGJlY2F1c2UgcmVzb3VyY2UgaXMgYWJzZW50Iik7CisgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJQYWNpZmljIFN0YW5kYXJkIFRpbWUiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIGZvciBQU1QgaW4gbXRfTVQgYnV0IGdvdCAiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBkbGYgLSB3ZSB3aWxsIHVzZSBnZW5lcmljIHRpbWUsIG9yIGlmIHVuYXZhaWxhYmxlLCBHTVQgZm9yIHN0YW5kYXJkIHRpbWUgaW4gdGhlIHpvbmUgCisgICAgICAgIC8vICAgICAtIHdlIG5vdyAoMy40LjEpIGhhdmUgbG9jYWxpemF0aW9ucyBmb3IgdGhpcyB6b25lLCBzbyBjaGFuZ2UgdGVzdCBzdHJpbmcKKyAgICAgICAgZWxzZSBpZighbmFtZS5lcXVhbHMoIkxvcyBBbmdlbGVzIChTdGF0aSBVbml0aSkiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQtMDg6MDAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQtODowMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVC0wODAwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01ULTgwMCIpKSB7CisKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnb3QgJyIgKyBuYW1lICsgIicsIGV4cGVjdGVkIEdNVC0wODowMCBvciBzb21ldGhpbmcgc2ltaWxhclxuIiArCisgICAgICAgICAgICAgICAgICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iICsKKyAgICAgICAgICAgICAgICAgICJUSEUgQUJPVkUgRkFJTFVSRSBNQVkgSlVTVCBNRUFOIFRIRSBMT0NBTEUgREFUQSBIQVMgQ0hBTkdFRFxuIiArCisgICAgICAgICAgICAgICAgICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0cnkgYSBub24tZXhpc3RlbnQgem9uZQorICAgICAgICB6b25lMiA9IG5ldyBTaW1wbGVUaW1lWm9uZSg5MCo2MCoxMDAwLCAieHl6enkiKTsKKyAgICAgICAgbmFtZSA9IHpvbmUyLmdldERpc3BsYXlOYW1lKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgbG9nbG4oIkdNVCs5MG1pbi0+IiArIG5hbWUpOworICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJHTVQrMDE6MzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCswMTMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzEzMCIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVCswMTozMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOworICAgICAgICAKKyAgICAgICAgLy8gY292ZXIgZ2V0RGlzcGxheU5hbWUoKSAtIG51bGwgYXJnCisgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgIG5hbWUgPSB6b25lMi5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICBsb2dsbigiR01UKzkwbWluLT4iICsgbmFtZSArICJmb3IgZGVmYXVsdCBkaXNwbGF5IGxvY2FsZSIpOworICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJHTVQrMDE6MzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCswMTMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzEzMCIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVCswMTozMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOyAgICAgICAgCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChzYXZlKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZTIoKSB7CisgICAgICAgIC8vIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSB0aGVuID0gbmV3IERhdGUoMjAwNSwgMCwgMSk7CisKKyAgICAgICAgU3RyaW5nW10gdGltZXpvbmVzID0geyJBbWVyaWNhL0NoaWNhZ28iLCAiRXVyb3BlL01vc2NvdyIsICJFdXJvcGUvUm9tZSIsICJBc2lhL1NoYW5naGFpIiwgIldFVCIgfTsKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlcyA9IHsiZW4iLCAiZnIiLCAiZGUiLCAiamEiLCAiemhfVFciLCAiemhfSGFucyIgfTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKGxvY2FsZXNbal0pOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aW1lem9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHRpbWV6b25lc1tpXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lMCA9IHR6LmdldERpc3BsYXlOYW1lKGxvY2FsZSk7IC8vIGRvZXNuJ3Qgd29yaz8/PworICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZHQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgidnZ2diIsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgZHQuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZTEgPSBkdC5mb3JtYXQodGhlbik7ICAvLyBkYXRlIHZhbHVlIF9kb2VzXyBtYXR0ZXIgaWYgd2UgZmFsbGJhY2sgdG8gR01UCisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLmdldERpc3BsYXlOYW1lKCkgKyAiLCAiICsgdHouZ2V0SUQoKSArICI6ICIgKyBkaXNwbGF5TmFtZTApOworICAgICAgICAgICAgICAgIGlmICghZGlzcGxheU5hbWUxLmVxdWFscyhkaXNwbGF5TmFtZTApKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGxvY2FsZS5nZXREaXNwbGF5TmFtZSgpICsgIiwgIiArIHR6LmdldElEKCkgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjogZXhwZWN0ZWQgIiArIGRpc3BsYXlOYW1lMSArICIgYnV0IGdvdDogIiArIGRpc3BsYXlOYW1lMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyaWNBUEkoKSB7CisgICAgICAgIFN0cmluZyBpZCA9ICJOZXdHTVQiOworICAgICAgICBpbnQgb2Zmc2V0ID0gMTIzNDU7CisKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZShvZmZzZXQsIGlkKTsKKyAgICAgICAgaWYgKHpvbmUudXNlRGF5bGlnaHRUaW1lKCkpIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgc2hvdWxkIHJldHVybiBmYWxzZSIpOworCisgICAgICAgIFRpbWVab25lIHpvbmVjbG9uZSA9IChUaW1lWm9uZSl6b25lLmNsb25lKCk7CisgICAgICAgIGlmICghem9uZWNsb25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IGNsb25lIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgIHpvbmVjbG9uZS5zZXRJRCgiYWJjIik7CisgICAgICAgIGlmICh6b25lY2xvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogY2xvbmUgb3Igb3BlcmF0b3IhPSBmYWlsZWQiKTsKKyAgICAgICAgLy8gZGVsZXRlIHpvbmVjbG9uZTsKKworICAgICAgICB6b25lY2xvbmUgPSAoVGltZVpvbmUpem9uZS5jbG9uZSgpOworICAgICAgICBpZiAoIXpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICB6b25lY2xvbmUuc2V0UmF3T2Zmc2V0KDQ1Njc4KTsKKyAgICAgICAgaWYgKHpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvciE9IGZhaWxlZCIpOworCisgICAgICAgIC8vIEMrKyBvbmx5CisgICAgICAgIC8qCisgICAgICAgICAgU2ltcGxlVGltZVpvbmUgY29weSgqem9uZSk7CisgICAgICAgICAgaWYgKCEoY29weSA9PSAqem9uZSkpIGVycmxuKCJGQUlMOiBjb3B5IGNvbnN0cnVjdG9yIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgICAgY29weSA9ICooU2ltcGxlVGltZVpvbmUqKXpvbmVjbG9uZTsKKyAgICAgICAgICBpZiAoIShjb3B5ID09ICp6b25lY2xvbmUpKSBlcnJsbigiRkFJTDogYXNzaWdubWVudCBvcGVyYXRvciBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICAgICovCisKKyAgICAgICAgVGltZVpvbmUgc2F2ZURlZmF1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoem9uZSk7CisgICAgICAgIFRpbWVab25lIGRlZmF1bHR6b25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZiAoZGVmYXVsdHpvbmUgPT0gem9uZSkgZXJybG4oIkZBSUw6IERlZmF1bHQgb2JqZWN0IGlzIGlkZW50aWNhbCwgbm90IGNsb25lIik7CisgICAgICAgIGlmICghZGVmYXVsdHpvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogRGVmYXVsdCBvYmplY3QgaXMgbm90IGVxdWFsIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZURlZmF1bHQpOworICAgICAgICAvLyBkZWxldGUgZGVmYXVsdHpvbmU7CisgICAgICAgIC8vIGRlbGV0ZSB6b25lY2xvbmU7CisKKy8vICAgICAgLy8gSUNVIDIuNiBDb3ZlcmFnZQorLy8gICAgICBsb2dsbih6b25lLnRvU3RyaW5nKCkpOworLy8gICAgICBsb2dsbih6b25lLmdldERpc3BsYXlOYW1lKCkpOworLy8gICAgICBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIgc3R6YSA9IG5ldyBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIoKFNpbXBsZVRpbWVab25lKSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworLy8gICAgICBzdHphLnNldElEKCJGb28iKTsKKy8vICAgICAgaWYgKHN0emEuaGFzU2FtZVJ1bGVzKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpKSB7CisvLyAgICAgICAgICBlcnJsbigiRkFJTDogU2ltcGxlVGltZVpvbmVBZGFwdGVyLmhhc1NhbWVSdWxlcyIpOworLy8gICAgICB9CisvLyAgICAgIHN0emEuc2V0UmF3T2Zmc2V0KDMwMDApOworLy8gICAgICBvZmZzZXQgPSBzdHphLmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5CQywgMjAwMSwgQ2FsZW5kYXIuREVDRU1CRVIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LCBDYWxlbmRhci5UVUVTREFZLCAxMio2MCo2MCoxMDAwKTsKKy8vICAgICAgaWYgKG9mZnNldCAhPSAzMDAwKSB7CisvLyAgICAgICAgICBlcnJsbigiRkFJTDogU2ltcGxlVGltZVpvbmVBZGFwdGVyLmdldE9mZnNldCIpOworLy8gICAgICB9CisvLyAgICAgIFNpbXBsZVRpbWVab25lQWRhcHRlciBkdXAgPSAoU2ltcGxlVGltZVpvbmVBZGFwdGVyKSBzdHphLmNsb25lKCk7CisvLyAgICAgIGlmIChzdHphLmhhc2hDb2RlKCkgIT0gZHVwLmhhc2hDb2RlKCkpIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuaGFzaENvZGUiKTsKKy8vICAgICAgfQorLy8gICAgICBpZiAoIXN0emEuZXF1YWxzKGR1cCkpIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuZXF1YWxzIik7CisvLyAgICAgIH0KKy8vICAgICAgbG9nbG4oc3R6YS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUFQSSgpCisgICAgeworICAgICAgICAvLyBFcnJvckNvZGUgc3RhdHVzID0gWkVST19FUlJPUjsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gKGludCkoNjAqNjAqMTAwMCoxLjc1KTsgLy8gUGljayBhIHdlaXJkIG9mZnNldAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIlRlc3Rab25lIik7CisgICAgICAgIGlmICh6b25lLnVzZURheWxpZ2h0VGltZSgpKSBlcnJsbigiRkFJTDogdXNlRGF5bGlnaHRUaW1lIHNob3VsZCByZXR1cm4gZmFsc2UiKTsKKworICAgICAgICAvLyBFc3RhYmxpc2ggb3VyIGV4cGVjdGVkIHRyYW5zaXRpb24gdGltZXMuICBEbyB0aGlzIHdpdGggYSBub24tRFNUCisgICAgICAgIC8vIGNhbGVuZGFyIHdpdGggdGhlIChhYm92ZSkgZGVjbGFyZWQgbG9jYWwgb2Zmc2V0LgorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgZ2Muc2V0KDE5OTAsIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgbG9uZyBtYXJjaE9uZVN0ZCA9IGdjLmdldFRpbWUoKS5nZXRUaW1lKCk7IC8vIExvY2FsIFN0ZCB0aW1lIG1pZG5pZ2h0CisgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgIGdjLnNldCgxOTkwLCBDYWxlbmRhci5KVUxZLCAxKTsKKyAgICAgICAgbG9uZyBqdWx5T25lU3RkID0gZ2MuZ2V0VGltZSgpLmdldFRpbWUoKTsgLy8gTG9jYWwgU3RkIHRpbWUgbWlkbmlnaHQKKworICAgICAgICAvLyBTdGFydGluZyBhbmQgZW5kaW5nIGhvdXJzLCBXQUxMIFRJTUUKKyAgICAgICAgaW50IHN0YXJ0SG91ciA9IChpbnQpKDIuMjUgKiAzNjAwMDAwKTsKKyAgICAgICAgaW50IGVuZEhvdXIgICA9IChpbnQpKDMuNSAgKiAzNjAwMDAwKTsKKworICAgICAgICB6b25lLnNldFN0YXJ0UnVsZShDYWxlbmRhci5NQVJDSCwgMSwgMCwgc3RhcnRIb3VyKTsKKyAgICAgICAgem9uZS5zZXRFbmRSdWxlICAoQ2FsZW5kYXIuSlVMWSwgIDEsIDAsIGVuZEhvdXIpOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAvLyBpZiAoZmFpbHVyZShzdGF0dXMsICJuZXcgR3JlZ29yaWFuQ2FsZW5kYXIiKSkgcmV0dXJuOworCisgICAgICAgIGxvbmcgbWFyY2hPbmUgPSBtYXJjaE9uZVN0ZCArIHN0YXJ0SG91cjsKKyAgICAgICAgbG9uZyBqdWx5T25lID0ganVseU9uZVN0ZCArIGVuZEhvdXIgLSAzNjAwMDAwOyAvLyBBZGp1c3QgZnJvbSB3YWxsIHRvIFN0ZCB0aW1lCisKKyAgICAgICAgbG9uZyBleHBNYXJjaE9uZSA9IDYzNjI1MTQwMDAwMEw7CisgICAgICAgIGlmIChtYXJjaE9uZSAhPSBleHBNYXJjaE9uZSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHN0YXJ0IGNvbXB1dGVkIGFzICIgKyBtYXJjaE9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKG1hcmNoT25lKSk7CisgICAgICAgICAgICBsb2dsbigiICAgICAgU2hvdWxkIGJlICAgICAgICAgICAgICAgICAgIiArIGV4cE1hcmNoT25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoZXhwTWFyY2hPbmUpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgZXhwSnVseU9uZSA9IDY0Njc5MzEwMDAwMEw7CisgICAgICAgIGlmIChqdWx5T25lICE9IGV4cEp1bHlPbmUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBzdGFydCBjb21wdXRlZCBhcyAiICsganVseU9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKGp1bHlPbmUpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICAgICBTaG91bGQgYmUgICAgICAgICAgICAgICAgICAiICsgZXhwSnVseU9uZSArCisgICAgICAgICAgICAgICAgICAiID0gIiArIG5ldyBEYXRlKGV4cEp1bHlPbmUpKTsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyIGNhbDEgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwxLnNldCgxOTkwLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbDIuc2V0KDE5OTAsIENhbGVuZGFyLkpVTkUsIDEpOworICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHpvbmUsIGNhbDEuZ2V0VGltZUluTWlsbGlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXRUaW1lSW5NaWxsaXMoKSwgbWFyY2hPbmUpOworICAgICAgICBjYWwxLnNldCgxOTkwLCBDYWxlbmRhci5KVU5FLCAxKTsKKyAgICAgICAgY2FsMi5zZXQoMTk5MCwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKTsKKyAgICAgICAgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaCh6b25lLCBjYWwxLmdldFRpbWVJbk1pbGxpcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0VGltZUluTWlsbGlzKCksIGp1bHlPbmUpOworCisgICAgICAgIGlmICh6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1hcmNoT25lIC0gMTAwMCkpIHx8CisgICAgICAgICAgICAhem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXJjaE9uZSkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN0YXJ0IHJ1bGUgYnJva2VuIik7CisgICAgICAgIGlmICghem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShqdWx5T25lIC0gMTAwMCkpIHx8CisgICAgICAgICAgICB6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUpKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFbmQgcnVsZSBicm9rZW4iKTsKKworICAgICAgICB6b25lLnNldFN0YXJ0WWVhcigxOTkxKTsKKyAgICAgICAgaWYgKHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWFyY2hPbmUpKSB8fAorICAgICAgICAgICAgem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShqdWx5T25lIC0gMTAwMCkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN0YXJ0IHllYXIgYnJva2VuIik7CisKKyAgICAgICAgLy8gZmFpbHVyZShzdGF0dXMsICJUZXN0UnVsZUFQSSIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisgICAgICAgIC8vIGRlbGV0ZSB6b25lOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaChTaW1wbGVUaW1lWm9uZSB0eiwgbG9uZyBtaW4sIGxvbmcgbWF4LCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBFcnJvckNvZGUgc3RhdHVzID0gWkVST19FUlJPUjsKKyAgICAgICAgYm9vbGVhbiBzdGFydHNJbkRTVCA9IHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pbikpOworICAgICAgICAvLyBpZiAoZmFpbHVyZShzdGF0dXMsICJTaW1wbGVUaW1lWm9uZTo6aW5EYXlsaWdodFRpbWUiKSkgcmV0dXJuOworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIG5ldyBEYXRlKG1heCkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+IElOVEVSVkFMKSB7CisgICAgICAgICAgICBsb25nIG1pZCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKSA9PSBzdGFydHNJbkRTVCkgeworICAgICAgICAgICAgICAgIG1pbiA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1heCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgbWluICsgIiA9ICIgKyBuZXcgRGF0ZShtaW4pKTsKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQWZ0ZXI6ICAiICsgbWF4ICsgIiA9ICIgKyBuZXcgRGF0ZShtYXgpKTsKKyAgICAgICAgbG9uZyBtaW5kZWx0YSA9IGV4cGVjdGVkQm91bmRhcnkgLSBtaW47CisgICAgICAgIC8vIG5vdCB1c2VkIGxvbmcgbWF4ZGVsdGEgPSBtYXggLSBleHBlY3RlZEJvdW5kYXJ5OworICAgICAgICBpZiAobWluZGVsdGEgPj0gMCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhIDw9IElOVEVSVkFMKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEV4cGVjdGVkIGJkcnk6ICAiICsgZXhwZWN0ZWRCb3VuZGFyeSArICIgPSAiICsgbmV3IERhdGUoZXhwZWN0ZWRCb3VuZGFyeSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYmRyeTogICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBJTlRFUlZBTCA9IDEwMDsKKworICAgIC8vIEJ1ZyAwMDY7IHZlcmlmeSB0aGUgb2Zmc2V0IGZvciBhIHNwZWNpZmljIHpvbmUuCisgICAgcHVibGljIHZvaWQgVGVzdFBSVE9mZnNldCgpCisgICAgeworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCAiUFJUIiApOworICAgICAgICBpZiggdHogPT0gbnVsbCApIHsKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogVGltZVpvbmUoUFJUKSBpcyBudWxsIiApOworICAgICAgICB9CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICBpZiAodHouZ2V0UmF3T2Zmc2V0KCkgIT0gKC00Km1pbGxpc1BlckhvdXIpKQorICAgICAgICAgICAgICAgIHdhcm5sbigiRkFJTDogT2Zmc2V0IGZvciBQUlQgc2hvdWxkIGJlIC00LCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgdHouZ2V0UmF3T2Zmc2V0KCkgLyAoZG91YmxlKW1pbGxpc1BlckhvdXIpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvLyBUZXN0IHZhcmlvdXMgY2FsbHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFyaW91c0FQSTUxOCgpCisgICAgeworICAgICAgICBUaW1lWm9uZSB0aW1lX3pvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDMwKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBsb2dsbigiVGhlIHRpbWV6b25lIGlzICIgKyB0aW1lX3pvbmUuZ2V0SUQoKSk7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSAhPSB0cnVlKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGluRGF5bGlnaHRUaW1lIHJldHVybmVkIGZhbHNlIik7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS51c2VEYXlsaWdodFRpbWUoKSAhPSB0cnVlKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSByZXR1cm5lZCBmYWxzZSIpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuZ2V0UmF3T2Zmc2V0KCkgIT0gLTgqbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogZ2V0UmF3T2Zmc2V0IHJldHVybmVkIHdyb25nIHZhbHVlIik7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2Muc2V0VGltZShkKTsKKyAgICAgICAgaWYgKHRpbWVfem9uZS5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIGdjLmdldChHcmVnb3JpYW5DYWxlbmRhci5ZRUFSKSwgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLkRBWV9PRl9NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChHcmVnb3JpYW5DYWxlbmRhci5EQVlfT0ZfV0VFSyksIDApCisgICAgICAgICAgICAhPSAtNyptaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE9mZnNldCByZXR1cm5lZCB3cm9uZyB2YWx1ZSIpOworICAgIH0KKworICAgIC8vIFRlc3QgZ2V0QXZhaWxhYmxlSUQgQVBJCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZUlEczkxMygpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkgPSB7ICIpOworICAgICAgICBTdHJpbmdbXSBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaSA+IDApIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHNbaV0pOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiB9OyIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKEdNVCswMjowMCkgPSB7ICIpOworICAgICAgICBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCsyICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGkgPiAwKSBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgfTsiKTsKKyAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworCisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpZiAodHogIT0gbnVsbCkKKyAgICAgICAgICAgIGxvZ2xuKCJnZXRUaW1lWm9uZShQU1QpID0gIiArIHR6LmdldElEKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoUFNUKSA9IG51bGwiKTsKKworICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgICAgICAgIGlmICh0eiAhPSBudWxsKQorICAgICAgICAgICAgbG9nbG4oImdldFRpbWVab25lKEFtZXJpY2EvTG9zX0FuZ2VsZXMpID0gIiArIHR6LmdldElEKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoUFNUKSA9IG51bGwiKTsKKworICAgICAgICAvLyBCdWcgNDA5NjY5NAorICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJOT05fRVhJU1RFTlQiKTsKKyAgICAgICAgaWYgKHR6ID09IG51bGwpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoTk9OX0VYSVNURU5UKSA9IG51bGwiKTsKKyAgICAgICAgZWxzZSBpZiAoIXR6LmdldElEKCkuZXF1YWxzKCJHTVQiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRUaW1lWm9uZShOT05fRVhJU1RFTlQpID0gIiArIHR6LmdldElEKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1ZyA0MTA3Mjc2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERTVFNhdmluZ3MoKSB7CisgICAgICAgIC8vIEl0IG1pZ2h0IGJlIGJldHRlciB0byBmaW5kIGEgd2F5IHRvIGludGVncmF0ZSB0aGlzIHRlc3QgaW50byB0aGUgbWFpbiBUaW1lWm9uZQorICAgICAgICAvLyB0ZXN0cyBhYm92ZSwgYnV0IEkgZG9uJ3QgaGF2ZSB0aW1lIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoaXMgKG9yIGlmIGl0J3MKKyAgICAgICAgLy8gZXZlbiByZWFsbHkgYSBnb29kIGlkZWEpLiAgTGV0J3MgY29uc2lkZXIgdGhhdCBhIGZ1dHVyZS4gIC0tcnRnIDEvMjcvOTgKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTUgKiBtaWxsaXNQZXJIb3VyLCAiZHN0U2F2aW5nc1Rlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMSwgMCwgMCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgwLjUgKiBtaWxsaXNQZXJIb3VyKSk7CisKKyAgICAgICAgaWYgKHR6LmdldFJhd09mZnNldCgpICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJHb3QgYmFjayBhIHJhdyBvZmZzZXQgb2YgIiArICh0ei5nZXRSYXdPZmZzZXQoKSAvIG1pbGxpc1BlckhvdXIpICsKKyAgICAgICAgICAgICAgICAgICIgaG91cnMgaW5zdGVhZCBvZiAtNSBob3Vycy4iKTsKKyAgICAgICAgaWYgKCF0ei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IHRpbWUgem9uZSBzaG91bGQgdXNlIERTVCBidXQgY2xhaW1zIGl0IGRvZXNuJ3QuIik7CisgICAgICAgIGlmICh0ei5nZXREU1RTYXZpbmdzKCkgIT0gMC41ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJTZXQgRFNUIG9mZnNldCB0byAwLjUgaG91ciwgYnV0IGdvdCBiYWNrICIgKyAodHouZ2V0RFNUU2F2aW5ncygpIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlsbGlzUGVySG91cikgKyAiIGhvdXJzIGluc3RlYWQuIik7CisKKyAgICAgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDEvMS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLkpVTkUsIDEsIENhbGVuZGFyLk1PTkRBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQuNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDYvMS85OCBzaG91bGQgaGF2ZSBiZWVuIC00LjUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIHR6LnNldERTVFNhdmluZ3MobWlsbGlzUGVySG91cik7CisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMCBBTSwgMS8xLzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSlVORSwgMSwgQ2FsZW5kYXIuTU9OREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDYvMS85OCAod2l0aCBhIDEtaG91ciBEU1Qgb2Zmc2V0KSBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWcgNDEwNzU3MAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbHRlcm5hdGVSdWxlcygpIHsKKyAgICAgICAgLy8gTGlrZSBUZXN0RFNUU2F2aW5ncywgdGhpcyB0ZXN0IHNob3VsZCBwcm9iYWJseSBiZSBpbnRlZ3JhdGVkIHNvbWVob3cgd2l0aCB0aGUgbWFpbgorICAgICAgICAvLyB0ZXN0IGF0IHRoZSB0b3Agb2YgdGhpcyBjbGFzcywgYnV0IEkgZGlkbid0IGhhdmUgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGF0LgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAtLXJ0ZyAxLzI4Lzk4CisKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTUgKiBtaWxsaXNQZXJIb3VyLCAiYWx0ZXJuYXRlUnVsZVRlc3QiKTsKKworICAgICAgICAvLyB0ZXN0IHRoZSBkYXktb2YtbW9udGggQVBJCisgICAgICAgIHR6LnNldFN0YXJ0UnVsZShDYWxlbmRhci5NQVJDSCwgMTAsIDEyICogbWlsbGlzUGVySG91cik7CisgICAgICAgIHR6LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgMjAsIDEyICogbWlsbGlzUGVySG91cik7CisKKyAgICAgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvNS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk1BUkNILCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNVTkRBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMy8xNS85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzE1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5TVU5EQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzI1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIC8vIHRlc3QgdGhlIGRheS1vZi13ZWVrLWFmdGVyLWRheS1pbi1tb250aCBBUEkKKyAgICAgICAgdHouc2V0U3RhcnRSdWxlKENhbGVuZGFyLk1BUkNILCAxMCwgQ2FsZW5kYXIuRlJJREFZLCAxMiAqIG1pbGxpc1BlckhvdXIsIHRydWUpOworICAgICAgICB0ei5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIDIwLCBDYWxlbmRhci5GUklEQVksIDEyICogbWlsbGlzUGVySG91ciwgZmFsc2UpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDExLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VETkVTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAzLzExLzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDE0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvMTQvOTggc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAxMC8xNS85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDE3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzE3Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFcXVpdmFsZW5jeUdyb3VwcygpIHsKKyAgICAgICAgU3RyaW5nIGlkID0gIkFtZXJpY2EvTG9zX0FuZ2VsZXMiOworICAgICAgICBpbnQgbiA9IFRpbWVab25lLmNvdW50RXF1aXZhbGVudElEcyhpZCk7CisgICAgICAgIGlmIChuIDwgMikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvdW50RXF1aXZhbGVudElEcygiICsgaWQgKyAiKSByZXR1cm5lZCAiICsgbiArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCA+PSAyIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBUaW1lWm9uZS5nZXRFcXVpdmFsZW50SUQoaWQsIGkpOworICAgICAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRFcXVpdmFsZW50SUQoIiArIGlkICsgIiwgIiArIGkgKworICAgICAgICAgICAgICAgICAgICAgICIpIHJldHVybmVkIFwiIiArIHMgKyAiXCIsIGV4cGVjdGVkIHZhbGlkIElEIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6IiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdW50cmllcygpIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIEFtZXJpY2EvTG9zX0FuZ2VsZXMgaXMgaW4gdGhlICJVUyIgZ3JvdXAsIGFuZAorICAgICAgICAvLyBBc2lhL1Rva3lvIGlzbid0LiAgVmljZSB2ZXJzYSBmb3IgdGhlICJKUCIgZ3JvdXAuCisKKyAgICAgICAgU3RyaW5nW10gcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygiVVMiKTsKKyAgICAgICAgYm9vbGVhbiBsYSA9IGZhbHNlLCB0b2t5byA9IGZhbHNlOworICAgICAgICBTdHJpbmcgbGFab25lID0gIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCB0b2t5b1pvbmUgPSAiQXNpYS9Ub2t5byI7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzW2ldLmVxdWFscyhsYVpvbmUpKSB7CisgICAgICAgICAgICAgICAgbGEgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNbaV0uZXF1YWxzKHRva3lvWm9uZSkpIHsKKyAgICAgICAgICAgICAgICB0b2t5byA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFsYSApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGFab25lICsgIiBpbiBVUyA9ICIgKyBsYSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva3lvKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHRva3lvWm9uZSArICIgaW4gVVMgPSAiICsgdG9reW8pOworICAgICAgICB9CisgICAgICAgIHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoIkpQIik7CisgICAgICAgIGxhID0gZmFsc2U7IHRva3lvID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzW2ldLmVxdWFscyhsYVpvbmUpKSB7CisgICAgICAgICAgICAgICAgbGEgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNbaV0uZXF1YWxzKHRva3lvWm9uZSkpIHsKKyAgICAgICAgICAgICAgICB0b2t5byA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxhKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxhWm9uZSArICIgaW4gSlAgPSAiICsgbGEpOworICAgICAgICB9CisgICAgICAgIGlmICghdG9reW8pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdG9reW9ab25lICsgIiBpbiBKUCA9ICIgKyB0b2t5byk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJhY3Rpb25hbERTVCgpIHsKKwkgICAgU3RyaW5nIHR6TmFtZSA9ICJBdXN0cmFsaWEvTG9yZF9Ib3dlIjsgLy8gMzAgbWluIG9mZnNldAorCSAgICBqYXZhLnV0aWwuVGltZVpvbmUgdHpfamF2YSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSh0ek5hbWUpOworCSAgICBpbnQgZHN0X2phdmEgPSAwOworCSAgICB0cnkgeworCSAgICAgICAgLy8gaGFjayBzbyB0ZXN0IGNvbXBpbGVzIGFuZCBydW5zIGluIGJvdGggSkRLIDEuMyBhbmQgSkRLIDEuNAorCSAgICAgICAgZmluYWwgT2JqZWN0W10gYXJncyA9IG5ldyBPYmplY3RbMF07CisJICAgICAgICBmaW5hbCBDbGFzc1tdIGFyZ3R5cGVzID0gbmV3IENsYXNzWzBdOworCSAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIG0gPSB0el9qYXZhLmdldENsYXNzKCkuZ2V0TWV0aG9kKCJnZXREU1RTYXZpbmdzIiwgYXJndHlwZXMpOyAKKwkgICAgICAgIGRzdF9qYXZhID0gKChJbnRlZ2VyKSBtLmludm9rZSh0el9qYXZhLCBhcmdzKSkuaW50VmFsdWUoKTsKKwkgICAgICAgIGlmIChkc3RfamF2YSA8PSAwIHx8IGRzdF9qYXZhID49IDM2MDAwMDApIHsgLy8gZGlkbid0IGdldCB0aGUgZnJhY3Rpb25hbCB0aW1lIHpvbmUgd2Ugd2FudGVkCisJICAgICAgICBlcnJsbigiZGlkbid0IGdldCBmcmFjdGlvbmFsIHRpbWUgem9uZSEiKTsKKwkgICAgICAgIH0KKwkgICAgfSBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkgICAgICAgIC8vIHNlZSBKREtUaW1lWm9uZSBmb3IgdGhlIHJlYXNvbiBmb3IgdGhpcyBjb2RlCisJICAgICAgICBkc3RfamF2YSA9IDM2MDAwMDA7CisJICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworCSAgICAgICAgLy8gc2VlIEpES1RpbWVab25lIGZvciB0aGUgcmVhc29uIGZvciB0aGlzIGNvZGUKKwkgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKwkgICAgICAgIGRzdF9qYXZhID0gMzYwMDAwMDsKKwkgICAgfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisJICAgICAgICAvLyBzZWUgSkRLVGltZVpvbmUgZm9yIHRoZSByZWFzb24gZm9yIHRoaXMgY29kZQorCSAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworCSAgICAgICAgZHN0X2phdmEgPSAzNjAwMDAwOworCSAgICB9IGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisJICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworCSAgICAgICAgcmV0dXJuOworCSAgICB9CisJICAgIAorCSAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHR6X2ljdSA9IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUodHpOYW1lKTsKKwkgICAgaW50IGRzdF9pY3UgPSB0el9pY3UuZ2V0RFNUU2F2aW5ncygpOworCQorCSAgICBpZiAoZHN0X2phdmEgIT0gZHN0X2ljdSkgeworCSAgICAgICAgd2FybmxuKCJqYXZhIHJlcG9ydHMgZHN0IHNhdmluZ3Mgb2YgIiArIGRzdF9qYXZhICsKKwkgICAgICAgICAgIiBidXQgaWN1IHJlcG9ydHMgIiArIGRzdF9pY3UgKyAKKwkgICAgICAgICAgIiBmb3IgdHogIiArIHR6X2ljdS5nZXRJRCgpKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGxvZ2xuKCJib3RoIGphdmEgYW5kIGljdSByZXBvcnQgZHN0IHNhdmluZ3Mgb2YgIiArIGRzdF9qYXZhICsgIiBmb3IgdHogIiArIHR6X2ljdS5nZXRJRCgpKTsKKwkgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRPZmZzZXREYXRlKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDMwKTsKKyAgICAgICAgbG9uZyBkYXRlID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworCisgICAgVGltZVpvbmUgdHpfaWN1ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICBpbnQgb2Zmc2V0ID0gdHpfaWN1LmdldE9mZnNldChkYXRlKTsKKyAgICBpZiAob2Zmc2V0ICE9IC0yODgwMDAwMCkgeworICAgICAgICBlcnJsbigiZXhwZWN0ZWQgb2Zmc2V0IC0yODgwMDAwMCwgZ290OiAiICsgb2Zmc2V0KTsKKyAgICB9CisKKyAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpVTFksIDMwKTsKKyAgICBkYXRlID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgIG9mZnNldCA9IHR6X2ljdS5nZXRPZmZzZXQoZGF0ZSk7CisgICAgaWYgKG9mZnNldCAhPSAtMjUyMDAwMDApIHsKKyAgICAgICAgZXJybG4oImV4cGVjdGVkIG9mZnNldCAtMjUyMDAwMDAsIGdvdDogIiArIG9mZnNldCk7CisgICAgfQorICAgIH0KKworICAgIC8vIGpiNDQ4NAorICAgIHB1YmxpYyB2b2lkIFRlc3RTaW1wbGVUaW1lWm9uZVNlcmlhbGl6YXRpb24oKSAKKyAgICB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejAgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJNeVRpbWVab25lIik7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejEgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejIgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgIHN0ejIuc2V0UmF3T2Zmc2V0KDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHozID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICBzdHozLnNldFN0YXJ0WWVhcigxMDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHo0ID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICBzdHo0LnNldFN0YXJ0WWVhcigxMDAwKTsKKyAgICAgICAgc3R6NC5zZXREU1RTYXZpbmdzKDE4MDAwMDApOworICAgICAgICBzdHo0LnNldFN0YXJ0UnVsZSgzLCA0LCAxODAwMDApOworICAgICAgICBzdHo0LnNldEVuZFJ1bGUoNiwgMywgNCwgMzYwMDAwKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6NSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgc3R6NS5zZXRTdGFydFJ1bGUoMiwgMywgNCwgMzYwMDAwKTsKKyAgICAgICAgc3R6NS5zZXRFbmRSdWxlKDYsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgIAorICAgICAgICBTaW1wbGVUaW1lWm9uZVtdIHN0enMgPSB7IHN0ejAsIHN0ejEsIHN0ejIsIHN0ejMsIHN0ejQsIHN0ejUsIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHpzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHogPSBzdHpzW2ldOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgICAgICAgICBvb3Mud3JpdGVPYmplY3Qoc3R6KTsKKyAgICAgICAgICAgICAgICBvb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgbG9nbG4oImlkOiAiICsgc3R6LmdldElEKCkgKyAiIGxlbmd0aDogIiArIGJ5dGVzLmxlbmd0aCk7CisKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBiYWlzID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYmFpcyk7CisKKyAgICAgICAgICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHpEZXNlcmlhbGl6ZWQgPSAoU2ltcGxlVGltZVpvbmUpb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygidGltZSB6b25lcyIsIHN0eiwgc3R6RGVzZXJpYWxpemVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gY2NlKSB7CisgICAgICAgICAgICAgICAgY2NlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZGVzZXJpYWxpemUgU2ltcGxlVGltZVpvbmUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBpb2UpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihpb2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGNuZmUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihjbmZlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBqYjQxNzUKKyAgICAvKiBHZW5lcmF0ZWQgYnkgb3JnLnVuaWNvZGUuY2xkci50b29sLkNvdW50SXRlbXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0aW1lWm9uZVRlc3ROYW1lcyA9IHsKKyAgICAgICAgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsCisgICAgICAgICJBbWVyaWNhL0FyZ2VudGluYS9DYXRhbWFyY2EiLCAiQW1lcmljYS9DYXRhbWFyY2EiLAorICAgICAgICAiQW1lcmljYS9BcmdlbnRpbmEvQ29yZG9iYSIsICJBbWVyaWNhL0NvcmRvYmEiLAorICAgICAgICAiQW1lcmljYS9BcmdlbnRpbmEvSnVqdXkiLCAiQW1lcmljYS9KdWp1eSIsCisgICAgICAgICJBbWVyaWNhL0FyZ2VudGluYS9NZW5kb3phIiwgIkFtZXJpY2EvTWVuZG96YSIsCisgICAgICAgICJBbWVyaWNhL0F0a2EiLCAiQW1lcmljYS9BZGFrIiwKKyAgICAgICAgIkFtZXJpY2EvRW5zZW5hZGEiLCAiQW1lcmljYS9UaWp1YW5hIiwKKyAgICAgICAgIkFtZXJpY2EvRm9ydF9XYXluZSIsICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsCisgICAgICAgICJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIiwgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSIsICJBbWVyaWNhL0xvdWlzdmlsbGUiLAorICAgICAgICAiQW1lcmljYS9Lbm94X0lOIiwgIkFtZXJpY2EvSW5kaWFuYS9Lbm94IiwKKyAgICAgICAgIkFtZXJpY2EvUG9ydG9fQWNyZSIsICJBbWVyaWNhL1Jpb19CcmFuY28iLAorICAgICAgICAiQW1lcmljYS9Sb3NhcmlvIiwgIkFtZXJpY2EvQ29yZG9iYSIsCisgICAgICAgICJBbWVyaWNhL1ZpcmdpbiIsICJBbWVyaWNhL1N0X1Rob21hcyIsCisgICAgICAgICJBc2lhL0FzaGtoYWJhZCIsICJBc2lhL0FzaGdhYmF0IiwKKyAgICAgICAgIkFzaWEvQ2h1bmdraW5nIiwgIkFzaWEvQ2hvbmdxaW5nIiwKKyAgICAgICAgIkFzaWEvRGFjY2EiLCAiQXNpYS9EaGFrYSIsCisgICAgICAgICJBc2lhL0lzdGFuYnVsIiwgIkV1cm9wZS9Jc3RhbmJ1bCIsCisgICAgICAgICJBc2lhL01hY2FvIiwgIkFzaWEvTWFjYXUiLAorICAgICAgICAiQXNpYS9UZWxfQXZpdiIsICJBc2lhL0plcnVzYWxlbSIsCisgICAgICAgICJBc2lhL1RoaW1idSIsICJBc2lhL1RoaW1waHUiLAorICAgICAgICAiQXNpYS9VanVuZ19QYW5kYW5nIiwgIkFzaWEvTWFrYXNzYXIiLAorICAgICAgICAiQXNpYS9VbGFuX0JhdG9yIiwgIkFzaWEvVWxhYW5iYWF0YXIiLAorICAgICAgICAiQXVzdHJhbGlhL0FDVCIsICJBdXN0cmFsaWEvU3lkbmV5IiwKKyAgICAgICAgIkF1c3RyYWxpYS9DYW5iZXJyYSIsICJBdXN0cmFsaWEvU3lkbmV5IiwKKyAgICAgICAgIkF1c3RyYWxpYS9MSEkiLCAiQXVzdHJhbGlhL0xvcmRfSG93ZSIsCisgICAgICAgICJBdXN0cmFsaWEvTlNXIiwgIkF1c3RyYWxpYS9TeWRuZXkiLAorICAgICAgICAiQXVzdHJhbGlhL05vcnRoIiwgIkF1c3RyYWxpYS9EYXJ3aW4iLAorICAgICAgICAiQXVzdHJhbGlhL1F1ZWVuc2xhbmQiLCAiQXVzdHJhbGlhL0JyaXNiYW5lIiwKKyAgICAgICAgIkF1c3RyYWxpYS9Tb3V0aCIsICJBdXN0cmFsaWEvQWRlbGFpZGUiLAorICAgICAgICAiQXVzdHJhbGlhL1Rhc21hbmlhIiwgIkF1c3RyYWxpYS9Ib2JhcnQiLAorICAgICAgICAiQXVzdHJhbGlhL1ZpY3RvcmlhIiwgIkF1c3RyYWxpYS9NZWxib3VybmUiLAorICAgICAgICAiQXVzdHJhbGlhL1dlc3QiLCAiQXVzdHJhbGlhL1BlcnRoIiwKKyAgICAgICAgIkF1c3RyYWxpYS9ZYW5jb3dpbm5hIiwgIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbCIsCisgICAgICAgICJCcmF6aWwvQWNyZSIsICJBbWVyaWNhL1Jpb19CcmFuY28iLAorICAgICAgICAiQnJhemlsL0RlTm9yb25oYSIsICJBbWVyaWNhL05vcm9uaGEiLAorICAgICAgICAiQnJhemlsL0Vhc3QiLCAiQW1lcmljYS9TYW9fUGF1bG8iLAorICAgICAgICAiQnJhemlsL1dlc3QiLCAiQW1lcmljYS9NYW5hdXMiLAorICAgICAgICAiQ1NUNkNEVCIsICJBbWVyaWNhL0NoaWNhZ28iLAorICAgICAgICAiQ2FuYWRhL0F0bGFudGljIiwgIkFtZXJpY2EvSGFsaWZheCIsCisgICAgICAgICJDYW5hZGEvQ2VudHJhbCIsICJBbWVyaWNhL1dpbm5pcGVnIiwKKyAgICAgICAgIkNhbmFkYS9FYXN0LVNhc2thdGNoZXdhbiIsICJBbWVyaWNhL1JlZ2luYSIsCisgICAgICAgICJDYW5hZGEvRWFzdGVybiIsICJBbWVyaWNhL1Rvcm9udG8iLAorICAgICAgICAiQ2FuYWRhL01vdW50YWluIiwgIkFtZXJpY2EvRWRtb250b24iLAorICAgICAgICAiQ2FuYWRhL05ld2ZvdW5kbGFuZCIsICJBbWVyaWNhL1N0X0pvaG5zIiwKKyAgICAgICAgIkNhbmFkYS9QYWNpZmljIiwgIkFtZXJpY2EvVmFuY291dmVyIiwKKyAgICAgICAgIkNhbmFkYS9TYXNrYXRjaGV3YW4iLCAiQW1lcmljYS9SZWdpbmEiLAorICAgICAgICAiQ2FuYWRhL1l1a29uIiwgIkFtZXJpY2EvV2hpdGVob3JzZSIsCisgICAgICAgICJDaGlsZS9Db250aW5lbnRhbCIsICJBbWVyaWNhL1NhbnRpYWdvIiwKKyAgICAgICAgIkNoaWxlL0Vhc3RlcklzbGFuZCIsICJQYWNpZmljL0Vhc3RlciIsCisgICAgICAgICJDdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiwKKyAgICAgICAgIkVTVCIsICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsCisgICAgICAgICJFU1Q1RURUIiwgIkFtZXJpY2EvTmV3X1lvcmsiLAorICAgICAgICAiRWd5cHQiLCAiQWZyaWNhL0NhaXJvIiwKKyAgICAgICAgIkVpcmUiLCAiRXVyb3BlL0R1YmxpbiIsCisgICAgICAgICJFdGMvR01UKzAiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvR01ULTAiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvR01UMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9HcmVlbndpY2giLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvVUNUIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL1VUQyIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9Vbml2ZXJzYWwiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvWnVsdSIsICJFdGMvR01UIiwKKyAgICAgICAgIkV1cm9wZS9OaWNvc2lhIiwgIkFzaWEvTmljb3NpYSIsCisgICAgICAgICJFdXJvcGUvVGlyYXNwb2wiLCAiRXVyb3BlL0NoaXNpbmF1IiwKKyAgICAgICAgIkdCIiwgIkV1cm9wZS9Mb25kb24iLAorICAgICAgICAiR0ItRWlyZSIsICJFdXJvcGUvTG9uZG9uIiwKKyAgICAgICAgIkdNVCIsICJFdGMvR01UIiwKKyAgICAgICAgIkdNVCswIiwgIkV0Yy9HTVQiLAorICAgICAgICAiR01ULTAiLCAiRXRjL0dNVCIsCisgICAgICAgICJHTVQwIiwgIkV0Yy9HTVQiLAorICAgICAgICAiR3JlZW53aWNoIiwgIkV0Yy9HTVQiLAorICAgICAgICAiSFNUIiwgIlBhY2lmaWMvSG9ub2x1bHUiLAorICAgICAgICAiSG9uZ2tvbmciLCAiQXNpYS9Ib25nX0tvbmciLAorICAgICAgICAiSWNlbGFuZCIsICJBdGxhbnRpYy9SZXlramF2aWsiLAorICAgICAgICAiSXJhbiIsICJBc2lhL1RlaHJhbiIsCisgICAgICAgICJJc3JhZWwiLCAiQXNpYS9KZXJ1c2FsZW0iLAorICAgICAgICAiSmFtYWljYSIsICJBbWVyaWNhL0phbWFpY2EiLAorICAgICAgICAiSmFwYW4iLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICJLd2FqYWxlaW4iLCAiUGFjaWZpYy9Ld2FqYWxlaW4iLAorICAgICAgICAiTGlieWEiLCAiQWZyaWNhL1RyaXBvbGkiLAorICAgICAgICAiTVNUIiwgIkFtZXJpY2EvUGhvZW5peCIsCisgICAgICAgICJNU1Q3TURUIiwgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgIk1leGljby9CYWphTm9ydGUiLCAiQW1lcmljYS9UaWp1YW5hIiwKKyAgICAgICAgIk1leGljby9CYWphU3VyIiwgIkFtZXJpY2EvTWF6YXRsYW4iLAorICAgICAgICAiTWV4aWNvL0dlbmVyYWwiLCAiQW1lcmljYS9NZXhpY29fQ2l0eSIsCisgICAgICAgICJOWiIsICJQYWNpZmljL0F1Y2tsYW5kIiwKKyAgICAgICAgIk5aLUNIQVQiLCAiUGFjaWZpYy9DaGF0aGFtIiwKKyAgICAgICAgIk5hdmFqbyIsICJBbWVyaWNhL1NoaXByb2NrIiwgLyogZml4ZWQgZnJvbSBNYXJrJ3Mgb3JpZ2luYWwgKi8KKyAgICAgICAgIlBSQyIsICJBc2lhL1NoYW5naGFpIiwKKyAgICAgICAgIlBTVDhQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICJQYWNpZmljL1NhbW9hIiwgIlBhY2lmaWMvUGFnb19QYWdvIiwKKyAgICAgICAgIlBvbGFuZCIsICJFdXJvcGUvV2Fyc2F3IiwKKyAgICAgICAgIlBvcnR1Z2FsIiwgIkV1cm9wZS9MaXNib24iLAorICAgICAgICAiUk9DIiwgIkFzaWEvVGFpcGVpIiwKKyAgICAgICAgIlJPSyIsICJBc2lhL1Nlb3VsIiwKKyAgICAgICAgIlNpbmdhcG9yZSIsICJBc2lhL1NpbmdhcG9yZSIsCisgICAgICAgICJTeXN0ZW1WL0FTVDQiLCAiQW1lcmljYS9QdWVydG9fUmljbyIsCisgICAgICAgICJTeXN0ZW1WL0FTVDRBRFQiLCAiQW1lcmljYS9IYWxpZmF4IiwKKyAgICAgICAgIlN5c3RlbVYvQ1NUNiIsICJBbWVyaWNhL1JlZ2luYSIsCisgICAgICAgICJTeXN0ZW1WL0NTVDZDRFQiLCAiQW1lcmljYS9DaGljYWdvIiwKKyAgICAgICAgIlN5c3RlbVYvRVNUNSIsICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsCisgICAgICAgICJTeXN0ZW1WL0VTVDVFRFQiLCAiQW1lcmljYS9OZXdfWW9yayIsCisgICAgICAgICJTeXN0ZW1WL0hTVDEwIiwgIlBhY2lmaWMvSG9ub2x1bHUiLAorICAgICAgICAiU3lzdGVtVi9NU1Q3IiwgIkFtZXJpY2EvUGhvZW5peCIsCisgICAgICAgICJTeXN0ZW1WL01TVDdNRFQiLCAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAiU3lzdGVtVi9QU1Q4IiwgIlBhY2lmaWMvUGl0Y2Fpcm4iLAorICAgICAgICAiU3lzdGVtVi9QU1Q4UERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAorICAgICAgICAiU3lzdGVtVi9ZU1Q5IiwgIlBhY2lmaWMvR2FtYmllciIsCisgICAgICAgICJTeXN0ZW1WL1lTVDlZRFQiLCAiQW1lcmljYS9BbmNob3JhZ2UiLAorICAgICAgICAiVHVya2V5IiwgIkV1cm9wZS9Jc3RhbmJ1bCIsCisgICAgICAgICJVQ1QiLCAiRXRjL0dNVCIsCisgICAgICAgICJVUy9BbGFza2EiLCAiQW1lcmljYS9BbmNob3JhZ2UiLAorICAgICAgICAiVVMvQWxldXRpYW4iLCAiQW1lcmljYS9BZGFrIiwKKyAgICAgICAgIlVTL0FyaXpvbmEiLCAiQW1lcmljYS9QaG9lbml4IiwKKyAgICAgICAgIlVTL0NlbnRyYWwiLCAiQW1lcmljYS9DaGljYWdvIiwKKyAgICAgICAgIlVTL0Vhc3QtSW5kaWFuYSIsICJBbWVyaWNhL0luZGlhbmFwb2xpcyIsCisgICAgICAgICJVUy9FYXN0ZXJuIiwgIkFtZXJpY2EvTmV3X1lvcmsiLAorICAgICAgICAiVVMvSGF3YWlpIiwgIlBhY2lmaWMvSG9ub2x1bHUiLAorICAgICAgICAiVVMvSW5kaWFuYS1TdGFya2UiLCAiQW1lcmljYS9JbmRpYW5hL0tub3giLAorICAgICAgICAiVVMvTWljaGlnYW4iLCAiQW1lcmljYS9EZXRyb2l0IiwKKyAgICAgICAgIlVTL01vdW50YWluIiwgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgIlVTL1BhY2lmaWMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICJVUy9QYWNpZmljLU5ldyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwKKyAgICAgICAgIlVTL1NhbW9hIiwgIlBhY2lmaWMvUGFnb19QYWdvIiwKKyAgICAgICAgIlVUQyIsICJFdGMvR01UIiwKKyAgICAgICAgIlVuaXZlcnNhbCIsICJFdGMvR01UIiwKKyAgICAgICAgIlctU1UiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICJadWx1IiwgIkV0Yy9HTVQiLAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0T2RkVGltZVpvbmVOYW1lcygpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aW1lWm9uZVRlc3ROYW1lcy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgU3RyaW5nIGZ1bmt5TmFtZSA9IHRpbWVab25lVGVzdE5hbWVzW2ldOworICAgICAgICAgICAgU3RyaW5nIGNvcnJlY3ROYW1lID0gdGltZVpvbmVUZXN0TmFtZXNbaSsxXTsKKworICAgICAgICAgICAgVGltZVpvbmUgZnR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoZnVua3lOYW1lKTsKKyAgICAgICAgICAgIFRpbWVab25lIGN0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGNvcnJlY3ROYW1lKTsKKworICAgICAgICAgICAgU3RyaW5nIGZkbiA9IGZ0ei5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9uZyBmcm8gPSBmdHouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgICAgICBsb25nIGZkcyA9IGZ0ei5nZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICBib29sZWFuIGZkeSA9IGZ0ei51c2VEYXlsaWdodFRpbWUoKTsKKworICAgICAgICAgICAgU3RyaW5nIGNkbiA9IGN0ei5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9uZyBjcm8gPSBjdHouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgICAgICBsb25nIGNkcyA9IGN0ei5nZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICBib29sZWFuIGNkeSA9IGN0ei51c2VEYXlsaWdodFRpbWUoKTsKKworICAgICAgICAgICAgaWYgKCFmZG4uZXF1YWxzKGNkbikpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGlzcGxheSBuYW1lICgiICsgZnVua3lOYW1lICsgIiwgIiArIGNvcnJlY3ROYW1lICsgIikgZXhwZWN0ZWQ6ICIgKyBjZG4gKyAiIGJ1dCBnb3Q6ICIgKyBmZG4pOworICAgICAgICAgICAgfSBlbHNlIGlmIChmcm8gIT0gY3JvKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9mZnNldCAoIiArIGZ1bmt5TmFtZSArICIsICIgKyBjb3JyZWN0TmFtZSArICIpIGV4cGVjdGVkOiAiICsgY3JvICsgIiBidXQgZ290OiAiICsgZnJvKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZmRzICE9IGNkcykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJkYXlsaWdodCAoIiArIGZ1bmt5TmFtZSArICIsICIgKyBjb3JyZWN0TmFtZSArICIpIGV4cGVjdGVkOiAiICsgY2RzICsgIiBidXQgZ290OiAiICsgZmRzKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZmR5ICE9IGNkeSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJ1c2VzIGRheWxpZ2h0ICgiICsgZnVua3lOYW1lICsgIiwgIiArIGNvcnJlY3ROYW1lICsgIikgZXhwZWN0ZWQ6ICIgKyBjZHkgKyAiIGJ1dCBnb3Q6ICIgKyBmZHkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBubyBlcnJvciwgYXNzdW1lIHdlJ3JlIHJlZmVyZW5jaW5nIHRoZSBzYW1lIGludGVybmFsIGphdmEgb2JqZWN0CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIGNsYXNzIFN0dWJUaW1lWm9uZSBleHRlbmRzIFRpbWVab25leworICAgICAgICAgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykge3JldHVybiAwO30KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgb2Zmc2V0TWlsbGlzKSB7fQorICAgICAgICAgICAgcHVibGljIGludCBnZXRSYXdPZmZzZXQoKSB7cmV0dXJuIDA7fQorICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkge3JldHVybiBmYWxzZTt9CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHtyZXR1cm4gZmFsc2U7fQorICAgICAgICB9IAorICAgICAgICBTdHViVGltZVpvbmUgc3R1YiA9IG5ldyBTdHViVGltZVpvbmUoKTsKKyAgICAgICAgU3R1YlRpbWVab25lIHN0dWIyID0gKFN0dWJUaW1lWm9uZSkgc3R1Yi5jbG9uZSgpOworICAgICAgICBpZiAoc3R1Yi5nZXREU1RTYXZpbmdzKCkgIT0gMCl7CisgICAgICAgICAgICBlcnJsbigiVGltZVpvbmUuZ2V0RFNUU2F2aW5ncygpIHNob3VsZCByZXR1cm4gMCIpOworICAgICAgICB9CisgICAgICAgIGlmICghc3R1Yi5oYXNTYW1lUnVsZXMoc3R1YjIpKXsKKyAgICAgICAgICAgIGVycmxuKCJUaW1lWm9uZS5jbG9uZSgpIG9iamVjdCBzaG91bGQgaGFzU2FtZVJ1bGVzIik7CisgICAgIAorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RNYXJrKCl7CisgICAgICAgIFN0cmluZyB0emlkID0gIkFtZXJpY2EvQXJnZW50aW5hL0NvbW9kUml2YWRhdmlhIjsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSh0emlkKTsKKyAgICAgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIGxvZ2xuKHR6aWQgKyAiOlx0IiArIG9mZnNldCk7CisgICAgICAgIExpc3QgbGlzdCA9IEFycmF5cy5hc0xpc3QoVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkpOworICAgICAgICBpZighbGlzdC5jb250YWlucyh0emlkKSl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgY3JlYXRlIHRoZSB0aW1lIHpvbmUgYnV0IGl0IGlzIG5vdCBpbiBnZXRBdmFpbGFibGVJRHMiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Wm9uZU1ldGEoKSB7CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZSBzYXZlID0gamF2YS51dGlsLlRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIG5ld1pvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVC0wODowMCIpOworICAgICAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lLnNldERlZmF1bHQobnVsbCk7CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KG5ld1pvbmUpOworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKKyAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSBkZWZhdWx0Wm9uZSA9IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZihkZWZhdWx0Wm9uZT09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiVGltZVpvbmUuZ2V0RGVmYXVsdCgpIGZhaWxlZCBmb3IgR01ULTA4OjAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoem9uZT09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiU2ltcGxlVGltZVpvbmUoMCwgR01ULTA4OjAwKSBmYWlsZWQgZm9yIEdNVC0wODowMCIpOworICAgICAgICB9CisgICAgICAgIC8vcmVzZXQKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lLnNldERlZmF1bHQoc2F2ZSk7CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZTQzYWVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwyODMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworCisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnN0cnVjdGlvbigpeworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBjb21wb3VuZCBUcmFuc2xpdGVyYXRvciIpOworICAgICAgICBTdHJpbmcgbmFtZXNbXT17IkdyZWVrLUxhdGluIiwgIkxhdGluLURldmFuYWdhcmkiLCAiRGV2YW5hZ2FyaS1MYXRpbiIsICJMYXRpbi1HcmVlayJ9OworICAgICAgICBUcmFuc2xpdGVyYXRvciB0MT1udWxsOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0Mj1udWxsOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0Mz1udWxsOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ND1udWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0MT1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lc1swXSk7CisgICAgICAgICAgICB0Mj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lc1sxXSk7CisgICAgICAgICAgICB0Mz1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lc1syXSk7CisgICAgICAgICAgICB0ND1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lc1szXSk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2FycmF5MT17dDF9OworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXkyPXt0MSwgdDR9OworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXkzPXt0NCwgdDEsIHQyfTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2FycmF5ND17dDEsIHQyLCB0MywgdDR9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW11bXSB0cmFuc2FycmF5PXt0cmFuc2FycmF5MSwgdHJhbnNhcnJheTIsIHRyYW5zYXJyYXkzLCB0cmFuc2FycmF5NH07IAorICAgICAgICBmaW5hbCBTdHJpbmcgSURzW109eworICAgICAgICAgICAgbmFtZXNbMF0sIAorICAgICAgICAgICAgbmFtZXNbMF0rIjsiK25hbWVzWzNdLCAKKyAgICAgICAgICAgIG5hbWVzWzNdKyI7IituYW1lc1sxXSsiOyIrbmFtZXNbMl0sIAorICAgICAgICAgICAgbmFtZXNbMF0rIjsiK25hbWVzWzFdKyI7IituYW1lc1syXSsiOyIrbmFtZXNbM10gCisgICAgICAgIH07CisKKyAgIAorICAgICAgICBmb3IoaW50IGk9MDsgaTw0OyBpKyspeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGNwZHRyYW5zPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEc1tpXSk7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQpIGZhaWxlZCBmb3IgIiArIElEc1tpXSk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXgxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSURzW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBjcGR0cmFucyA9IG51bGw7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb249Rk9SV0FSRCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBjcGR0cmFucz1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRHNbaV0sIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgzKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbj1SRVZFUlNFKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworICAgICAgICAgICAgICAgIHRocm93IGV4MzsKKyAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgICB0cnl7CisvLyAgICAgICAgICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNwZHRyYW5zPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKElEc1tpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCwgbnVsbCk7CisvLyAgICAgICAgICAgICAgICBjcGR0cmFucyA9IG51bGw7CisvLyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXg0KSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uPUZPUldBUkQsIiArCisvLyAgICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlRmlsdGVyIGFkb3B0ZWRGaWx0ZXI9MCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKy8vICAgICAgICAgICAgICAgIHRocm93IGV4NDsKKy8vICAgICAgICAgICAgfQorLy8gIAorLy8gICAgICAgCisvLyAgICAgICAgICAgIHRyeXsKKy8vICAgICAgICAgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnMyPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHRyYW5zYXJyYXlbaV0sIG51bGwpOworLy8gICAgICAgICAgICAgICAgY3BkdHJhbnMyID0gbnVsbDsKKy8vICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDUpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRvcnNbXSwiICsKKy8vICAgICAgICAgICAgICAgICAgICAgICAiVW5pY29kZUZpbHRlciBhZG9wdGVkRmlsdGVyID0gMCkgIGZhaWxlZCIpOworLy8gICAgICAgICAgICAgICAgdGhyb3cgZXg1OworLy8gICAgICAgICAgICB9CisKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAKKyAgICB9CisgCisgICAgcHVibGljIHZvaWQgVGVzdEdldFRyYW5zbGl0ZXJhdG9yKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBnZXRUcmFuc2xpdGVyYXRvcigpIEFQSSBvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN0cmluZyBJRD0iTGF0aW4tR3JlZWs7R3JlZWstTGF0aW47TGF0aW4tRGV2YW5hZ2FyaTtEZXZhbmFnYXJpLUxhdGluO0xhdGluLUN5cmlsbGljO0N5cmlsbGljLUxhdGluO0FueS1IZXg7SGV4LUFueSI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGN0MT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICAvL2N0MT1uZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihJRCk7CisgICAgICAgICAgICBjdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIGZvciBJRD0iICsgSUQpOworICAgICAgICAgICAgdGhyb3cgaWFlOworICAgICAgICB9CisgICAgICAgIC8vaW50IGNvdW50PWN0MS5nZXRDb3VudCgpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBlbGVtc1tdID0gY3QxLmdldEVsZW1lbnRzKCk7CisgICAgICAgIGludCBjb3VudCA9IGVsZW1zLmxlbmd0aDsKKyAgICAgICAgU3RyaW5nIGFycmF5W109c3BsaXQoSUQsICc7Jyk7CisgICAgICAgIGlmIChjb3VudCAhPSBhcnJheS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogZ2V0Q291bnQoKSBmYWlsZWQuIEV4cGVjdGVkOiIgKyBhcnJheS5sZW5ndGggKyAiIGdvdDoiICsgY291bnQpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpIDwgY291bnQ7IGkrKyl7CisgICAgICAgICAgICAvL1N0cmluZyBjaGlsZD0gY3QxLmdldFRyYW5zbGl0ZXJhdG9yKGkpLmdldElEKCk7CisgICAgICAgICAgICBTdHJpbmcgY2hpbGQgPSBlbGVtc1tpXS5nZXRJRCgpOworICAgICAgICAgICAgaWYoIWNoaWxkLmVxdWFscyhhcnJheVtpXSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXRUcmFuc2xpdGVyYXRvcigpIGZhaWxlZDogRXhwZWN0ZWQtPiIgKyBhcnJheVtpXSArICIgR290LT4iICsgY2hpbGQpOworICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0VHJhbnNsaXRlcmF0b3IoKSBwYXNzZWQ6IEV4cGVjdGVkLT4iICsgYXJyYXlbaV0gKyAiIEdvdC0+IiArIGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIAorICAgIH0KKyAKKyAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VHJhbnNsaXRlcmF0ZSgpeworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIEFQSSBvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGN0MT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBjdDE9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXg7SGV4LUFueSIpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElEKSBmYWlsZWQgZm9yICIgKyAiQW55LUhleDtIZXgtQW55Iik7CisgICAgICAgICAgICB0aHJvdyBpYWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHM9ImFiY2FiYyI7CisgICAgICAgIGV4cGVjdChjdDEsIHMsIHMpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlMj1uZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdD1zOworICAgICAgICBjdDEudHJhbnNsaXRlcmF0ZShyc291cmNlMiwgaW5kZXgpOworICAgICAgICBjdDEuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UyLCBpbmRleCk7CisgICAgICAgIFN0cmluZyByZXN1bHQ9cnNvdXJjZTIudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KGN0MS5nZXRJRCgpICsgIjpSZXBsYWNlYWJsZVN0cmluZywgaW5kZXgoMCwwLDAsMCkiLCBzICsgIi0+IiArIHJzb3VyY2UyLCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXgyID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDEsMywyLDMpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlMz1uZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIGN0MS50cmFuc2xpdGVyYXRlKHJzb3VyY2UzLCBpbmRleDIpOyAKKyAgICAgICAgY3QxLmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlMywgaW5kZXgyKTsKKyAgICAgICAgcmVzdWx0PXJzb3VyY2UzLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdEF1eChjdDEuZ2V0SUQoKSArICI6U3RyaW5nLCBpbmRleDIoMSwyLDIsMykiLCBzICsgIi0+IiArIHJzb3VyY2UzLCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgCisgICAgICAgIFN0cmluZyBEYXRhW109eworICAgICAgICAgICAgIC8vSUQsIGlucHV0IHN0cmluZywgdHJhbnNsaXRlcmF0ZWQgc3RyaW5nCisgICAgICAgICAgICAgIkFueS1IZXg7SGV4LUFueTtBbnktSGV4IiwgICAgICJoZWxsbyIsICAiXFx1MDA2OFxcdTAwNjVcXHUwMDZDXFx1MDA2Q1xcdTAwNkYiLCAKKyAgICAgICAgICAgICAiQW55LUhleDtIZXgtQW55IiwgICAgICAgICAgICAgICAgICJoZWxsbyEgSG93IGFyZSB5b3U/IiwgICJoZWxsbyEgSG93IGFyZSB5b3U/IiwKKyAgICAgICAgICAgICAiRGV2YW5hZ2FyaS1MYXRpbjtMYXRpbi1EZXZhbmFnYXJpIiwgICAgICAgIlx1MDkyRFx1MDk0OCdcdTA5MzAnXHUwOTM1IiwgICJcdTA5MkRcdTA5NDhcdTA5MzBcdTA5MzUiLCAvLyBxdW90ZXMgbG9zdAorICAgICAgICAgICAgICJMYXRpbi1DeXJpbGxpYztDeXJpbGxpYy1MYXRpbiIsICAgICAgICAgICAiYSdiJ2snZCdlJ2YnZydoJ2knaidTaGNoJ3NoY2gnemgnaCIsICJhJ2InaydkJ2UnZidnJ2gnaSdqJ1NoY2gnc2hjaCd6aCdoIiwKKyAgICAgICAgICAgICAiTGF0aW4tR3JlZWs7R3JlZWstTGF0aW4iLCAgICAgICAgICAgICAgICAgIkFCR2FiZ0FLTE1OIiwgIkFCR2FiZ0FLTE1OIiwKKyAgICAgICAgICAgICAvLyJMYXRpbi1BcmFiaWM7QXJhYmljLUxhdGluIiwgICAgICAgICAgICAgICAiQWQncidhJ2InaSdrJ2RoJ2RkJ2doIiwgIkFkcmFiaWtkaGRkZ2giLAorICAgICAgICAgICAgICJIaXJhZ2FuYS1LYXRha2FuYSIsICAgICAgICAgICAgICAgICAgICAgICAiXHUzMDQxXHUzMDhmXHUzMDk5XHUzMDZlXHUzMDRiXHUzMDkyXHUzMDk5IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwQTFcdTMwZjdcdTMwY2VcdTMwYWJcdTMwZmEiLCAgCisgICAgICAgICAgICAgIkhpcmFnYW5hLUthdGFrYW5hO0thdGFrYW5hLUhpcmFnYW5hIiwgICAgICJcdTMwNDFcdTMwOGZcdTMwOTlcdTMwNmVcdTMwNGJcdTMwNTEiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzA0MVx1MzA4Zlx1MzA5OVx1MzA2ZVx1MzA0Ylx1MzA1MSIsCisgICAgICAgICAgICAgIkthdGFrYW5hLUhpcmFnYW5hO0hpcmFnYW5hLUthdGFrYW5hIiwgICAgICJcdTMwQTFcdTMwZjdcdTMwY2VcdTMwZjVcdTMwZjYiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBhYlx1MzBiMSIsICAKKyAgICAgICAgICAgICAiTGF0aW4tS2F0YWthbmE7S2F0YWthbmEtTGF0aW4iLCAgICAgICAgICAgICAgICAgICAidmF2aXZ1dmV2b2h1eml6dXpvbmludW5hc2VzdXplenUiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhdml2dXZldm9odXppenV6b25pbnVuYXNlc3V6ZXp1IiwgIAorICAgICAgICB9OworICAgICAgICBUcmFuc2xpdGVyYXRvciBjdDI9bnVsbDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8RGF0YS5sZW5ndGg7IGkrPTMpeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGN0Mj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShEYXRhW2krMF0pOworICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUyKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIGZvciAiICsgRGF0YVtpKzBdKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBpYWUyOworICAgICAgICAgICAgfQorICAgICAgICBleHBlY3QoY3QyLCBEYXRhW2krMV0sIERhdGFbaSsyXSk7CisgICAgICAgIH0KKyAgIAorICAgIH0KKyAKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIC8qKgorICAgICAqIFNwbGl0cyBhIHN0cmluZywKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIHNwbGl0KFN0cmluZyBzLCBjaGFyIGRpdmlkZXIpIHsKKyAgICAgIAorICAgIC8vIHNlZSBob3cgbWFueSB0aGVyZSBhcmUKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSBkaXZpZGVyKSArK2NvdW50OworICAgIH0KKyAgICAgICAgCisgICAgLy8gbWFrZSBhbiBhcnJheSB3aXRoIHRoZW0KKyAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICBpbnQgbGFzdCA9IDA7CisgICAgaW50IGN1cnJlbnQgPSAwOworICAgIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpIHsKKyAgICAgICAgICAgIHJlc3VsdFtjdXJyZW50KytdID0gcy5zdWJzdHJpbmcobGFzdCxpKTsKKyAgICAgICAgICAgIGxhc3QgPSBpKzE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmVzdWx0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHQudHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpTdHJpbmciLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UpOworICAgICAgICByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlJlcGxhY2VhYmxlIiwgc291cmNlLCByZXN1bHQsIGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICAvLyBUZXN0IGtleWJvYXJkIChpbmNyZW1lbnRhbCkgdHJhbnNsaXRlcmF0aW9uIC0tIHRoaXMgcmVzdWx0CisgICAgICAgIC8vIG11c3QgYmUgdGhlIHNhbWUgYWZ0ZXIgd2UgZmluYWxpemUgKHNlZSBiZWxvdykuCisgICAgICAgIHJzb3VyY2UucmVwbGFjZSgwLCByc291cmNlLmxlbmd0aCgpLCAiIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiICsgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cuYXBwZW5kKHNvdXJjZS5jaGFyQXQoaSkpLmFwcGVuZCgiIC0+ICIpOworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy52YWx1ZU9mKHNvdXJjZS5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgc3RyaW5nIGJ1ZmZlciB3aXRoIGEgdmVydGljYWwgYmFyICd8JyB3aGVyZQorICAgICAgICAgICAgLy8gdGhlIGNvbW1pdHRlZCBpbmRleCBpcy4KKyAgICAgICAgICAgIFN0cmluZyBzID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAgICAgbG9nLmFwcGVuZChzLnN1YnN0cmluZygwLCBpbmRleC5zdGFydCkpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfCcpLgorICAgICAgICAgICAgICAgIGFwcGVuZChzLnN1YnN0cmluZyhpbmRleC5zdGFydCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBcyBhIGZpbmFsIHN0ZXAgaW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCB3ZSBtdXN0IGNhbGwKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZSB0byBmaW5pc2ggb2ZmIGFueSBwZW5kaW5nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0CisgICAgICAgIC8vIHdlcmUgd2FpdGluZyBmb3IgbW9yZSBpbnB1dC4KKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgaW5kZXgpOworICAgICAgICByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKS5hcHBlbmQocnNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6S2V5Ym9hcmQiLCBsb2cudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0KTsKKworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0LCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgZXhwZWN0QXV4KHRhZywgc291cmNlICsgIiAtPiAiICsgcmVzdWx0LAorICAgICAgICAgICAgICAgICByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHN1bW1hcnksIGJvb2xlYW4gcGFzcywgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGlmIChwYXNzKSB7CisgICAgICAgICAgICBsb2dsbigiKCIgKyB0YWcgKyAiKSAiICsgVXRpbGl0eS5lc2NhcGUoc3VtbWFyeSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICgiICsgdGFnKyAiKSAiCisgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KQorICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgIiArIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9ICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0Vycm9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0Vycm9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0MTk4OGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvRXJyb3JUZXN0LmphdmEKQEAgLTAsMCArMSwyNDUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgRXJyb3IgY29uZGl0aW9uIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIEVycm9yVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRXJyb3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdGVyYXRvckVycm9ycygpIHsKKyAgICAgICAgU3RyaW5nIHRyYW5zID0gIkxhdGluLUdyZWVrIjsKKyAgICAgICAgU3RyaW5nIGJvZ3VzSUQgPSAiTEFUSU5HUkVFSy1HUkVFS0xBVElOIjsKKyAgICAgICAgU3RyaW5nIG5ld0lEID0gIkJvZ3VzLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIG5ld0lEUnVsZXMgPSAienp6ID4gWjsgZiA8PiBwaCI7CisgICAgICAgIFN0cmluZyBib2d1c1J1bGVzID0gImEgfSBbYi1nIG0tcCAiOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyB0ZXN0U3RyaW5nID0KKyAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICBTdHJpbmcgaW5zZXJ0U3RyaW5nID0gImNhdHMgYW5kIGRvZ3MiOworICAgICAgICBpbnQgc3RvcHBlZEF0ID0gMCwgbGVuOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiBvZiBMYXRpbi1HcmVlayIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGxlbiA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHN0b3BwZWRBdCA9IHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCAwLCAxMDApOworICAgICAgICBpZiAoc3RvcHBlZEF0ICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogT3V0IG9mIGJvdW5kcyBjaGVjayBmYWlsZWQgKDEpLiIpOworICAgICAgICB9IGVsc2UgaWYgKHRlc3RTdHJpbmcubGVuZ3RoKCkgIT0gbGVuKSB7CisgICAgICAgICAgICB0ZXN0U3RyaW5nID0KKyAgICAgICAgICAgICAgICBuZXcgUmVwbGFjZWFibGVTdHJpbmcoIkEgcXVpY2sgZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRlIGZhaWxzIGFuZCB0aGUgdGFyZ2V0IHN0cmluZyB3YXMgbW9kaWZpZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgc3RvcHBlZEF0ID0gdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIDEwMCwgdGVzdFN0cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICBpZiAoc3RvcHBlZEF0ICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogT3V0IG9mIGJvdW5kcyBjaGVjayBmYWlsZWQgKDIpLiIpOworICAgICAgICB9IGVsc2UgaWYgKHRlc3RTdHJpbmcubGVuZ3RoKCkgIT0gbGVuKSB7CisgICAgICAgICAgICB0ZXN0U3RyaW5nID0KKyAgICAgICAgICAgICAgICBuZXcgUmVwbGFjZWFibGVTdHJpbmcoIkEgcXVpY2sgZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRlIGZhaWxzIGFuZCB0aGUgdGFyZ2V0IHN0cmluZyB3YXMgbW9kaWZpZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgcG9zLnN0YXJ0ID0gMTAwOworICAgICAgICBwb3MubGltaXQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcyk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RhcnQgb2Zmc2V0IGlzIG91dCBvZiBib3VuZHMsIGVycm9yIG5vdCByZXBvcnRlZC4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTdGFydCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcyBhbmQgZGV0ZWN0ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgcG9zLmxpbWl0ID0gMTAwOworICAgICAgICBwb3Muc3RhcnQgPSAwOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMaW1pdCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcywgZXJyb3Igbm90IHJlcG9ydGVkLlxuIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiU3RhcnQgb2Zmc2V0IGlzIG91dCBvZiBib3VuZHMgYW5kIGRldGVjdGVkLiIpOworICAgICAgICB9CisgICAgICAgIGxlbiA9IHBvcy5jb250ZXh0TGltaXQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICBwb3MuY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgcG9zLmxpbWl0ID0gbGVuIC0gMTsKKyAgICAgICAgcG9zLnN0YXJ0ID0gNTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MsIGluc2VydFN0cmluZyk7CisgICAgICAgICAgICBpZiAobGVuID09IHBvcy5saW1pdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXN0IGluc2VydGlvbiB3aXRoIHN0cmluZzogdGhlIHRyYW5zbGl0ZXJhdGlvbiBwb3NpdGlvbiBsaW1pdCBkaWRuJ3QgY2hhbmdlIGFzIGV4cGVjdGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkluc2VydGlvbiB0ZXN0IHdpdGggc3RyaW5nIGZhaWxlZCBmb3Igc29tZSByZWFzb24uIik7CisgICAgICAgIH0KKyAgICAgICAgcG9zLmNvbnRleHRTdGFydCA9IDA7CisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICBwb3MubGltaXQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgcG9zLnN0YXJ0ID0gNTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MsIDB4MDA2MSk7CisgICAgICAgICAgICBpZiAobGVuID09IHBvcy5saW1pdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXN0IGluc2VydGlvbiB3aXRoIGNoYXJhY3RlcjogdGhlIHRyYW5zbGl0ZXJhdGlvbiBwb3NpdGlvbiBsaW1pdCBkaWRuJ3QgY2hhbmdlIGFzIGV4cGVjdGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluc2VydGlvbiB0ZXN0IHdpdGggVVRGLTE2IGNvZGUgcG9pbnQgZmFpbGVkIGZvciBzb21lIHJlYXNvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBsZW4gPSBwb3MubGltaXQgPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICBwb3MuY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCkgLSAxOworICAgICAgICBwb3Muc3RhcnQgPSA1OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcywgaW5zZXJ0U3RyaW5nKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPdXQgb2YgYm91bmRzIGNoZWNrIGZhaWxlZCAoMykuIik7CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5sZW5ndGgoKSAhPSBsZW4pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGlucHV0IHN0cmluZyB3YXMgbW9kaWZpZWQgdGhvdWdoIHRoZSBvZmZzZXRzIHdlcmUgb3V0IG9mIGJvdW5kcy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbnNlcnRpb24gdGVzdCB3aXRoIG91dCBvZiBib3VuZHMgaW5kZXhlcy4iKTsKKyAgICAgICAgfQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGJvZ3VzSUQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKHQxICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIG9mIGJvZ3VzIElEIFwiTEFUSU5HUkVFSy1HUkVFS0xBVElOXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIC8vdHJ5IHsgLy8gdW5uZWVkZWQgLSBFeGNlcHRpb24gY2Fubm90IGJlIHRocm93bgorICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICAgICAgICAgbmV3SUQsCisgICAgICAgICAgICAgICAgbmV3SURSdWxlcywKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzID0gdDIuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBuZXdJRCB0cmFuc2xpdGVyYXRvciB3YXMgbm90IHJlZ2lzdGVyZWQgc28gY3JlYXRlSW52ZXJzZSBzaG91bGQgZmFpbC4iKTsKKyAgICAgICAgICAgIGlmICh0MyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBuZXdJRCB0cmFuc2xpdGVyYXRvciB3YXMgbm90IHJlZ2lzdGVyZWQgc28gY3JlYXRlSW52ZXJzZSBzaG91bGQgZmFpbC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICAvL30gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7IH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0ID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICAgICAgICAgICAgIG5ld0lELAorICAgICAgICAgICAgICAgICAgICBib2d1c1J1bGVzLAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0NCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBydWxlcyBpcyBtYWxmb3JtZWQgYnV0IGVycm9yIHdhcyBub3QgcmVwb3J0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZVNldEVycm9ycygpIHsKKyAgICAgICAgU3RyaW5nIGJhZFBhdHRlcm4gPSAiW1s6TDpdLVsweDAzMDAtMHgwNDAwXSI7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgLy9TdHJpbmcgcmVzdWx0OworCisgICAgICAgIGlmICghc2V0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBkZWZhdWx0IGN0b3Igb2YgVW5pY29kZVNldCBjcmVhdGVkIGEgbm9uLWVtcHR5IG9iamVjdC4iKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2V0LmFwcGx5UGF0dGVybihiYWRQYXR0ZXJuKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBBcHBsaWVkIGEgYmFkIHBhdHRlcm4gdG8gdGhlIFVuaWNvZGVTZXQgb2JqZWN0IG9rYXkuIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBhcHBseWluZyB3aXRoIHRoZSBiYWQgcGF0dGVybi4iKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQxID0gbmV3IFVuaWNvZGVTZXQoYmFkUGF0dGVybik7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVTZXQgYmFzZWQgb24gYmFkIHBhdHRlcm5zLiIpOworICAgICAgICAgICAgaWYgKHNldDEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDcmVhdGVkIGEgVW5pY29kZVNldCBiYXNlZCBvbiBiYWQgcGF0dGVybnMuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBjb25zdHJ1Y3Rpbmcgd2l0aCB0aGUgYmFkIHBhdHRlcm4uIik7CisgICAgICAgIH0KKyAgICB9CisKKy8vICAgIHB1YmxpYyB2b2lkIFRlc3RVbmlUb0hleEVycm9ycygpIHsKKy8vICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICB0ID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCIiLCB0cnVlLCBudWxsKTsKKy8vICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB3aXRoIGFuIGVtcHR5IHBhdHRlcm4uIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworLy8gICAgICAgIH0KKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICB0ID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCJcXHgiLCB0cnVlLCBudWxsKTsKKy8vICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB3aXRoIGEgYmFkIHBhdHRlcm4uIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworLy8gICAgICAgIH0KKy8vICAgICAgICB0ID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCk7CisvLyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgKChVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcikgdCkuYXBwbHlQYXR0ZXJuKCJcXHgiKTsKKy8vICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yOjphcHBseVBhdHRlcm4gc3VjY2VlZGVkIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKy8vICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgIH0KKy8vICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSQlRFcnJvcnMoKSB7CisKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gImFiPnkiOworICAgICAgICBTdHJpbmcgaWQgPSAiTXlSYW5kb20tWVJldmVyc2UiOworICAgICAgICBTdHJpbmcgZ29vZFBhdHRlcm4gPSAiW1s6TDpdJltcXHUwMDAwLVxcdUZGRkZdXSI7IC8qIGFsbCBCTVAgbGV0dGVycyAqLworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXQgPSBuZXcgVW5pY29kZVNldChnb29kUGF0dGVybik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoaWQsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgICAgICAgICB0LnNldEZpbHRlcihzZXQpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyQ2xhc3MoaWQsIHQuZ2V0Q2xhc3MoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihpZCk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPQorICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIG9mIHVucmVnaXN0ZXJlZCBJRCBzaG91bGQgaGF2ZSBmYWlsZWQuIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXYXMgbm90IGFibGUgdG8gY3JlYXRlIGEgZ29vZCBSQlQgdG8gdGVzdCByZWdpc3RyYXRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogV2FzIG5vdCBhYmxlIHRvIGNyZWF0ZSBhIGdvb2QgVW5pY29kZVNldCBiYXNlZCBvbiB2YWxpZCBwYXR0ZXJucy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworLy8gICAgcHVibGljIHZvaWQgVGVzdEhleFRvVW5pRXJyb3JzKCkgeworLy8gICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworLy8gICAgICAgIC8vdHJ5IHsgLy8gdW5uZWVkZWQgLSBleGNlcHRpb24gY2Fubm90IGJlIHRocm93bgorLy8gICAgICAgIHQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIiIsIG51bGwpOworLy8gICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAvLyAgICBlcnJsbigiRkFJTDogQ291bGQgbm90IGNyZWF0ZSBhIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHdpdGggYW4gZW1wdHkgcGF0dGVybi4iKTsKKy8vICAgICAgICAvL30KKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICB0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCJcXHgiLCBudWxsKTsKKy8vICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciB3aXRoIGEgYmFkIHBhdHRlcm4uIik7CisvLyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIHQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKTsKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAoKEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKSB0KS5hcHBseVBhdHRlcm4oIlxceCIpOworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3I6OmFwcGx5UGF0dGVybiBzdWNjZWVkZWQgd2l0aCBhIGJhZCBwYXR0ZXJuLiIpOworLy8gICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0phbW9UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMGVkYThiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0phbW9UZXN0LmphdmEKQEAgLTAsMCArMSw0ODYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0IHRoZSBMYXRpbi1KYW1vIHRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBKYW1vVGVzdCBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yVGVzdCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFUCA9ICdcJyc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEphbW9UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKYW1vKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworCisgICAgICAgIFN0cmluZ1tdIENBU0UgPSB7CisgICAgICAgICAgICAvLyBDb2x1bW4gMSBpcyB0aGUgbGF0aW4gdGV4dCBMMSB0byBiZSBmZWQgdG8gTGF0aW4tSmFtbworICAgICAgICAgICAgLy8gdG8geWllbGQgb3V0cHV0IEouCisKKyAgICAgICAgICAgIC8vIENvbHVtbiAyIGlzIGV4cGVjdGVkIHZhbHVlIG9mIEouICBKIGlzIGZlZCB0bworICAgICAgICAgICAgLy8gSmFtby1MYXRpbiB0byB5aWVsZCBvdXRwdXQgTDIuCisKKyAgICAgICAgICAgIC8vIENvbHVtbiAzIGlzIGV4cGVjdGVkIHZhbHVlIG9mIEwyLiAgSWYgdGhlIGV4cGVjdGVkCisgICAgICAgICAgICAvLyB2YWx1ZSBvZiBMMiBpcyBMMSwgdGhlbiBMMiBpcyBudWxsLgorICAgICAgICAgICAgImJhYiIsICIoQmkpKEEpKEJmKSIsIG51bGwsCisgICAgICAgICAgICAiYmFiYiIsICIoQmkpKEEpKEJmKShCaSkoRVUpIiwgImJhYiIrU0VQKyJiZXUiLAorICAgICAgICAgICAgImJhYmJiYSIsICIoQmkpKEEpKEJmKShCQikoQSkiLCBudWxsLAorICAgICAgICAgICAgImJhZ2ciLCAiKEJpKShBKShHR2YpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWdnZ2EiLCAiKEJpKShBKShHR2YpKEdpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYmFnIitTRVArImdnYSIsICIoQmkpKEEpKEdmKShHR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJrYWJzYSIsICIoS2kpKEEpKEJmKShTaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImthYnNrYSIsICIoS2kpKEEpKEJTKShLaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImdhYnNia2EiLCAiKEdpKShBKShCUykoQmkpKEVVKShLaSkoQSkiLCAiZ2Fic2JldWthIiwgLy8gbm90IChLZikKKyAgICAgICAgICAgICJnZ2EiLCAiKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImJzYSIsICIoQmkpKEVVKShTaSkoQSkiLCAiYmV1c2EiLAorICAgICAgICAgICAgImFnZyIsICIoSUVVTkcpKEEpKEdHZikiLCBudWxsLAorICAgICAgICAgICAgImFnZ2EiLCAiKElFVU5HKShBKShHR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJsYSIsICIoUikoQSkiLCAicmEiLAorICAgICAgICAgICAgImJzIiwgIihCaSkoRVUpKFNmKSIsICJiZXVzIiwKKyAgICAgICAgICAgICJrYWxnZ2EiLCAiKEtpKShBKShMKShHR2kpKEEpIiwgbnVsbCwKKworICAgICAgICAgICAgLy8gJ3InIGluIGEgZmluYWwgcG9zaXRpb24gaXMgdHJlYXRlZCBsaWtlICdsJworICAgICAgICAgICAgImthcmthIiwgIihLaSkoQSkoTCkoS2kpKEEpIiwgImthbGthIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8Q0FTRS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vID0gbmFtZVRvSmFtbyhDQVNFW2krMV0pOworICAgICAgICAgICAgaWYgKENBU0VbaSsyXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxhdGluSmFtbywgQ0FTRVtpXSwgamFtbywgamFtb0xhdGluKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgcm91bmQtdHJpcCBpcyBleHBlY3RlZCB0byBmYWlsCisgICAgICAgICAgICAgICAgZXhwZWN0KGxhdGluSmFtbywgQ0FTRVtpXSwgamFtbyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGphbW9MYXRpbiwgamFtbywgQ0FTRVtpKzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZXNlIGFyZSBwcm9ibGVtcyB0dXJuZWQgdXAgYnkgdGhlIEhhbmd1bC1KYW1vO0phbW8tTGF0aW4KKyAgICAgKiByb3VuZCB0cmlwIHRlc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJvdW5kVHJpcCgpIHsKKyAgICAgICAgU3RyaW5nIEhBTkdVTFtdID0geyAiXHVBQzAzXHVDMkY4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVDNTQ0XHVDNUI0In07CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vSGFuZ3VsID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBoYW5ndWxKYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxIQU5HVUwubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBoYW5ndWwgPSBIQU5HVUxbaV07CisgICAgICAgICAgICBTdHJpbmcgamFtbyA9IGhhbmd1bEphbW8udHJhbnNsaXRlcmF0ZShoYW5ndWwpOworICAgICAgICAgICAgU3RyaW5nIGxhdGluID0gamFtb0xhdGluLnRyYW5zbGl0ZXJhdGUoamFtbyk7CisgICAgICAgICAgICBTdHJpbmcgamFtbzIgPSBsYXRpbkphbW8udHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsMiA9IGphbW9IYW5ndWwudHJhbnNsaXRlcmF0ZShqYW1vMik7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChoYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICArICIgPT4gIiArIGhhbmd1bDIKKyAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGlmICghaGFuZ3VsLmVxdWFscyhoYW5ndWwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdmFyaW91cyBzdGVwLWF0LWEtdGltZSB0cmFuc2Zvcm1hdGlvbiBvZiBoYW5ndWwgdG8gamFtbyB0bworICAgICAqIGxhdGluIGFuZCBiYWNrLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQaWVjZW1lYWwoKSB7CisgICAgICAgIFN0cmluZyBoYW5ndWwgPSAiXHVCQzBGIjsKKyAgICAgICAgU3RyaW5nIGphbW8gPSBuYW1lVG9KYW1vKCIoTWkpKEkpKENmKSIpOworICAgICAgICBTdHJpbmcgbGF0aW4gPSAibWljIjsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOyAvLyB3YXMgSGFuZ3VsLUphbW8KKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsgLy8gd2FzIEphbW8tSGFuZ3VsCisgICAgICAgIGV4cGVjdCh0LCBqYW1vLCBoYW5ndWwpOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBleHBlY3QodCwgbGF0aW4sIGphbW8pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSmFtby1MYXRpbiIpOworICAgICAgICBleHBlY3QodCwgamFtbywgbGF0aW4pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGFuZ3VsLUxhdGluIik7CisgICAgICAgIGV4cGVjdCh0LCBoYW5ndWwsIGxhdGluKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgbGF0aW4sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW47IExhdGluLUphbW8iKTsKKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJKYW1vLUxhdGluOyBMYXRpbi1IYW5ndWwiKTsKKyAgICAgICAgZXhwZWN0KHQsIGphbW8sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW47IExhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBoYW5ndWwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWFsVGV4dCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5KYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUphbW8iKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgamFtb0xhdGluID0gbGF0aW5KYW1vLmdldEludmVyc2UoKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgamFtb0hhbmd1bCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGFuZ3VsSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQiKTsKKyAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBydCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKG5ldyBUcmFuc2xpdGVyYXRvcltdIHsKKyAgICAgICAgLy8gICAgaGFuZ3VsSmFtbywgamFtb0xhdGluLCBsYXRpbkphbW8sIGphbW9IYW5ndWwgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJ0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRDtKYW1vLUxhdGluO0xhdGluLUphbW87TkZDIik7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCB0b3RhbCA9IDA7CisgICAgICAgIGludCBlcnJvcnMgPSAwOworICAgICAgICB3aGlsZSAocG9zIDwgV0hBVF9JU19VTklDT0RFLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgc3BhY2UgPSBXSEFUX0lTX1VOSUNPREUuaW5kZXhPZignICcsIHBvcysxKTsKKyAgICAgICAgICAgIGlmIChzcGFjZSA8IDApIHsKKyAgICAgICAgICAgICAgICBzcGFjZSA9IFdIQVRfSVNfVU5JQ09ERS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwb3MgPCBzcGFjZSkgeworICAgICAgICAgICAgICAgICsrdG90YWw7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhhbmd1bCA9IFdIQVRfSVNfVU5JQ09ERS5zdWJzdHJpbmcocG9zLCBzcGFjZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhhbmd1bFggPSBydC50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICAgICAgaWYgKCFoYW5ndWwuZXF1YWxzKGhhbmd1bFgpKSB7CisgICAgICAgICAgICAgICAgICAgICsrZXJyb3JzOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbyA9IGhhbmd1bEphbW8udHJhbnNsaXRlcmF0ZShoYW5ndWwpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGF0aW4gPSBqYW1vTGF0aW4udHJhbnNsaXRlcmF0ZShqYW1vKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGphbW8yID0gbGF0aW5KYW1vLnRyYW5zbGl0ZXJhdGUobGF0aW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsMiA9IGphbW9IYW5ndWwudHJhbnNsaXRlcmF0ZShqYW1vMik7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYW5ndWwuZXF1YWxzKGhhbmd1bDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiRkFJTCAoQ29tcG91bmQgdHJhbnNsaXRlcmF0b3IgcHJvYmxlbSk6ICIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChoYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgPT4gIiArIGhhbmd1bDIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBidXQgIiArIGhhbmd1bCArICIgPWNwZD0+ICIgKyBqYW1vVG9OYW1lKGhhbmd1bFgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZShidWYudG9TdHJpbmcoKSkpOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGphbW8uZXF1YWxzKGphbW8yKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIkZBSUwgKEphbW88Pkhhbmd1bCBwcm9ibGVtKTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmd1bDIuZXF1YWxzKGhhbmd1bFgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiKFdlaXJkOiAiICsgaGFuZ3VsWCArICIgIT0gIiArIGhhbmd1bDIgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChoYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgPT4gIiArIGhhbmd1bDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKGJ1Zi50b1N0cmluZygpKSk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiRkFJTDogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmd1bDIuZXF1YWxzKGhhbmd1bFgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiKFdlaXJkOiAiICsgaGFuZ3VsWCArICIgIT0gIiArIGhhbmd1bDIgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIEhhbmd1bC1KYW1vIGNvbnZlcnNpb24gaXMgbm90IHVzdWFsbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWcgaGVyZSwgc28gd2UgaGlkZSBpdCBmcm9tIGRpc3BsYXkuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgbGluZXMgdG8gc2VlIHRoZSBIYW5ndWwuCisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKC8vaGFuZ3VsICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamFtb1RvTmFtZShqYW1vKSArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluICsgIiA9PiAiICsgamFtb1RvTmFtZShqYW1vMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8rICIgPT4gIiArIGhhbmd1bDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKGJ1Zi50b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBzcGFjZSsxOworICAgICAgICB9CisgICAgICAgIGlmIChlcnJvcnMgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3Qgd29yZCBmYWlsdXJlczogIiArIGVycm9ycyArICIgb3V0IG9mICIgKyB0b3RhbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiQWxsICIgKyB0b3RhbCArICIgdGVzdCB3b3JkcyBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRlc3QgdGV4dCB0YWtlbiBmcm9tIHRoZSBVbmljb2RlIHdlYiBzaXRlCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBXSEFUX0lTX1VOSUNPREUgPQorCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWM1ZDAgXHViMzAwXHVkNTc0ID8gIiArCisKKyAgICAgICAgIlx1YzViNFx1YjVhNCBcdWQ1MGNcdWI3YWJcdWQzZmMsIFx1YzViNFx1YjVhNCAiICsKKyAgICAgICAgIlx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOCwgXHVjNWI0XHViNWE0IFx1YzViOFx1YzViNFx1YzVkMFx1YjNjNCAiICsKKyAgICAgICAgIlx1YzBjMVx1YWQwMFx1YzVjNlx1Yzc3NCBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWIyOTQgXHViYWE4XHViNGUwICIgKworICAgICAgICAiXHViYjM4XHVjNzkwXHVjNWQwIFx1YjMwMFx1ZDU3NCBcdWFjZTBcdWM3MjAgXHViYzg4XHVkNjM4XHViOTdjICIgKworICAgICAgICAiXHVjODFjXHVhY2Y1XHVkNTY5XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWFlMzBcdWJjZjhcdWM4MDFcdWM3M2NcdWI4NWMgXHVjZWY0XHVkNGU4XHVkMTMwXHViMjk0ICIgKworICAgICAgICAiXHVjMjJiXHVjNzkwXHViOWNjIFx1Y2M5OFx1YjlhY1x1ZDU2OVx1YjJjOFx1YjJlNC4gXHVhZTAwXHVjNzkwXHViMDk4ICIgKworICAgICAgICAiXHViMmU0XHViOTc4IFx1YmIzOFx1Yzc5MFx1YzVkMFx1YjNjNCBcdWMyMmJcdWM3OTBcdWI5N2MgIiArCisgICAgICAgICJcdWM5YzBcdWM4MTVcdWQ1NThcdWM1ZWMgIiArCisgICAgICAgICJcdWM4MDBcdWM3YTVcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YWMwMCAiICsKKyAgICAgICAgIlx1YWMxY1x1YmMxY1x1YjQxOFx1YWUzMCBcdWM4MDRcdWM1ZDBcdWIyOTQgXHVjNzc0XHViN2VjXHVkNTVjICIgKworICAgICAgICAiXHVjMjJiXHVjNzkwXHViOTdjIFx1YzljMFx1YzgxNVx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVjMjE4XHViYzMxICIgKworICAgICAgICAiXHVhYzAwXHVjOWMwXHVjNzU4IFx1YjJlNFx1Yjk3OCBcdWFlMzBcdWQ2MzhcdWQ2NTQgIiArCisgICAgICAgICJcdWMyZGNcdWMyYTRcdWQxNWNcdWM3NDQgIiArCisgICAgICAgICJcdWMwYWNcdWM2YTlcdWQ1ODhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YjJlOFx1Yzc3YyBcdWFlMzBcdWQ2MzhcdWQ2NTQgIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3M2NcdWI4NWNcdWIyOTQgXHViYWE4XHViNGUwIFx1YmIzOFx1Yzc5MFx1Yjk3YyAiICsKKyAgICAgICAgIlx1ZDNlY1x1ZDU2OFx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjNWM4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM2MDhcdWI5N2MgIiArCisgICAgICAgICJcdWI0ZTRcdWM1YjQgXHVjNzIwXHViN2ZkIFx1YzVmMFx1ZDU2OVx1YzVkMFx1YzExY1x1YjljYyAiICsKKyAgICAgICAgIlx1YmNmNFx1YjM1NFx1Yjc3Y1x1YjNjNCBcdWJhYThcdWI0ZTAgXHVhYzAxIFx1YjA5OFx1Yjc3Y1x1YmNjNCAiICsKKyAgICAgICAgIlx1YzViOFx1YzViNFx1Yjk3YyBcdWNjOThcdWI5YWNcdWQ1NThcdWI4MjRcdWJhNzQgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVhYzFjXHVjNzU4IFx1YjJlNFx1Yjk3OCBcdWFlMzBcdWQ2MzhcdWQ2NTQgXHViYzI5XHViYzk1XHVjNzc0ICIgKworICAgICAgICAiXHVkNTQ0XHVjNjk0XHVkNTY5XHViMmM4XHViMmU0LiBcdWM2MDFcdWM1YjRcdWM2NDAgXHVhYzE5XHVjNzQwICIgKworICAgICAgICAiXHViMmU4XHVjNzdjIFx1YzViOFx1YzViNFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWIzYzQgIiArCisgICAgICAgICJcdWFjZjVcdWQxYjVcdWM4MDFcdWM3M2NcdWI4NWMgXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1YWUwMFx1Yzc5MCwgXHViYjM4XHVjN2E1IFx1YmQ4MFx1ZDYzOCBcdWJjMGYgIiArCisgICAgICAgICJcdWQxNGNcdWQwNmNcdWIyYzhcdWNlZWMgXHVhZTMwXHVkNjM4XHVjNWQwIFx1YjlkZVx1YjI5NCBcdWIyZThcdWM3N2MgIiArCisgICAgICAgICJcdWFlMzBcdWQ2MzhcdWQ2NTQgXHViYzI5XHViYzk1XHVjNzQ0IFx1YWMxNlx1YWNlMCBcdWM3ODhcdWM5YzAgIiArCisgICAgICAgICJcdWJhYmJcdWQ1NThcdWM2MDBcdWMyYjVcdWIyYzhcdWIyZTQuICIgKworICAgICAgICAKKyAgICAgICAgIlx1Yzc3NFx1YjdlY1x1ZDU1YyBcdWFlMzBcdWQ2MzhcdWQ2NTQgXHVjMmRjXHVjMmE0XHVkMTVjXHVjNzQwICIgKworICAgICAgICAiXHViNjEwXHVkNTVjIFx1YjJlNFx1Yjk3OCBcdWFlMzBcdWQ2MzhcdWQ2NTQgXHVjMmRjXHVjMmE0XHVkMTVjXHVhY2ZjICIgKworICAgICAgICAiXHVjZGE5XHViM2NjXHVkNTY5XHViMmM4XHViMmU0LiBcdWM5ODkgXHViNDUwIFx1YWMwMFx1YzljMCAiICsKKyAgICAgICAgIlx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NzQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWIyZTRcdWI5NzggIiArCisgICAgICAgICJcdWJiMzhcdWM3OTBcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YWMxOVx1Yzc0MCBcdWJjODhcdWQ2MzhcdWI5N2MgIiArCisgICAgICAgICJcdWMwYWNcdWM2YTlcdWQ1NThcdWFjNzBcdWIwOTggXHVhYzE5XHVjNzQwIFx1YmIzOFx1Yzc5MFx1YzVkMCAiICsKKyAgICAgICAgIlx1YjMwMFx1ZDU3NCBcdWIyZTRcdWI5NzggXHViYzg4XHVkNjM4XHViOTdjIFx1YzBhY1x1YzZhOVx1ZDU2MCBcdWMyMTggIiArCisgICAgICAgICJcdWM3ODhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzhmY1x1YzViNFx1YzljNCBcdWJhYThcdWI0ZTAgIiArCisgICAgICAgICJcdWNlZjRcdWQ0ZThcdWQxMzAoXHVkMmI5XHVkNzg4IFx1YzExY1x1YmM4NClcdWIyOTQgXHVjMTFjXHViODVjICIgKworICAgICAgICAiXHViMmU0XHViOTc4IFx1YzVlY1x1YjdlYyBcdWFjMDBcdWM5YzAgXHVhZTMwXHVkNjM4XHVkNjU0ICIgKworICAgICAgICAiXHViYzI5XHViYzk1XHVjNzQ0IFx1YzljMFx1YzZkMFx1ZDU3NFx1YzU3YyAiICsKKyAgICAgICAgIlx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVhZGY4XHViN2VjXHViMDk4LCBcdWIzNzBcdWM3NzRcdWQxMzBcdWI5N2MgIiArCisgICAgICAgICJcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NzRcdWIwOTggIiArCisgICAgICAgICJcdWQ1MGNcdWI3YWJcdWQzZmMgXHVhYzA0XHVjNWQwIFx1YzgwNFx1YjJlY1x1ZDU2MCBcdWI1NGNcdWI5YzhcdWIyZTQgIiArCisgICAgICAgICJcdWFkZjggXHViMzcwXHVjNzc0XHVkMTMwXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWMxOTBcdWMwYzFcdWM3NTggIiArCisgICAgICAgICJcdWM3MDRcdWQ1ZDhcdWM3NDQgXHVhY2FhXHVhYzhjIFx1YjQyOVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViODVjIFx1YmFhOFx1YjRlMCBcdWFjODNcdWM3NDQgIiArCisgICAgICAgICJcdWQ1NzRcdWFjYjBcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNCEgIiArCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWIyOTQgXHVjMGFjXHVjNmE5IFx1YzkxMVx1Yzc3OCAiICsKKyAgICAgICAgIlx1ZDUwY1x1YjdhYlx1ZDNmYywgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4LCBcdWM1YjhcdWM1YjRcdWM1ZDAgIiArCisgICAgICAgICJcdWFkMDBcdWFjYzRcdWM1YzZcdWM3NzQgXHViYjM4XHVjNzkwXHViOWM4XHViMmU0IFx1YWNlMFx1YzcyMFx1ZDU1YyAiICsKKyAgICAgICAgIlx1YzIyYlx1Yzc5MFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzgxY1x1YWNmNVx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNzQwICIgKyAvLyAiQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsICIgKworICAgICAgICAvLyAiU3VuLCBTeWJhc2UsIFVuaXN5cyAiICsgCisgICAgICAgICJcdWJjMGYgXHVhZTMwXHVkMGMwIFx1YzVlY1x1YjdlYyAiICsKKyAgICAgICAgIlx1ZDY4Y1x1YzBhY1x1YzY0MCBcdWFjMTlcdWM3NDAgXHVjNWM1XHVhY2M0ICIgKworICAgICAgICAiXHVjMTIwXHViNDUwXHVjOGZjXHVjNzkwXHVjNWQwIFx1Yzc1OFx1ZDU3NCAiICsKKyAgICAgICAgIlx1Y2M0NFx1ZDBkZFx1YjQxOFx1YzVjOFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViMjk0ICIgKworICAgICAgICAvLyAiWE1MLCBKYXZhLCBFQ01BU2NyaXB0KEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCAiICsKKyAgICAgICAgIlx1YjRmMVx1YWNmYyAiICsKKyAgICAgICAgIlx1YWMxOVx1Yzc3NCBcdWQ2MDRcdWM3YWMgXHViMTEwXHViOWFjIFx1YzBhY1x1YzZhOVx1YjQxOFx1YjI5NCAiICsKKyAgICAgICAgIlx1ZDQ1Y1x1YzkwMFx1YzVkMFx1YzExYyBcdWQ1NDRcdWM2OTRcdWQ1NThcdWJhNzAgXHVjNzc0XHViMjk0ICIgKyAvL0lTTy9JRUMgIiArCisgICAgICAgICIxMDY0Nlx1Yzc0NCBcdWFkNmNcdWQ2MDRcdWQ1NThcdWIyOTQgXHVhY2Y1XHVjMmRkXHVjODAxXHVjNzc4ICIgKworICAgICAgICAiXHViYzI5XHViYzk1XHVjNzg1XHViMmM4XHViMmU0LiBcdWM3NzRcdWIyOTQgXHViOWNlXHVjNzQwIFx1YzZiNFx1YzYwMSAiICsKKyAgICAgICAgIlx1Y2NiNFx1YzgxYywgXHVjNjk0XHVjOTk4IFx1YzBhY1x1YzZhOVx1YjQxOFx1YjI5NCBcdWJhYThcdWI0ZTAgIiArCisgICAgICAgICJcdWJlMGNcdWI3N2NcdWM2YjBcdWM4MDAgXHViYzBmIFx1YWUzMFx1ZDBjMCBcdWI5Y2VcdWM3NDAgIiArCisgICAgICAgICJcdWM4MWNcdWQ0ODhcdWM1ZDBcdWMxMWMgIiArCisgICAgICAgICJcdWM5YzBcdWM2ZDBcdWI0MjlcdWIyYzhcdWIyZTQuIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyAiICsKKyAgICAgICAgIlx1ZDQ1Y1x1YzkwMFx1Yzc1OCBcdWJkODBcdWMwYzFcdWFjZmMgXHVjNzc0XHViOTdjICIgKworICAgICAgICAiXHVjOWMwXHVjNmQwXHVkNTU4XHViMjk0IFx1YjNjNFx1YWQ2Y1x1Yzc1OCBcdWFjMDBcdWM2YTlcdWMxMzFcdWM3NDAgIiArCisgICAgICAgICJcdWNkNWNcdWFkZmMgXHVjODA0IFx1YzEzOFx1YWNjNFx1YzVkMCBcdWJkODhcdWFjZTAgXHVjNzg4XHViMjk0ICIgKworICAgICAgICAiXHVhZTMwXHVjMjIwIFx1YWNiZFx1ZDVhNVx1YzVkMFx1YzExYyBcdWFjMDBcdWM3YTUgXHVjOTExXHVjNjk0XHVkNTVjICIgKworICAgICAgICAiXHViZDgwXHViZDg0XHVjNzQ0IFx1Y2MyOFx1YzljMFx1ZDU1OFx1YWNlMCBcdWM3ODhcdWMyYjVcdWIyYzhcdWIyZTQuICIgKworICAgICAgICAKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1Yjk3YyAiICsKKyAgICAgICAgIlx1ZDA3NFx1Yjc3Y1x1Yzc3NFx1YzViOFx1ZDJiOC1cdWMxMWNcdWJjODQgXHViNjEwXHViMjk0ICIgKworICAgICAgICAiXHViMmU0XHVjOTExLVx1YzVmMFx1YWNiMCBcdWM3NTFcdWM2YTkgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVhY2ZjICIgKworICAgICAgICAiXHVjNmY5IFx1YzBhY1x1Yzc3NFx1ZDJiOFx1YzVkMCBcdWQxYjVcdWQ1NjlcdWQ1NThcdWJhNzQgIiArCisgICAgICAgICJcdWI4MDhcdWFjNzBcdWMyZGMgXHViYjM4XHVjNzkwIFx1YzEzOFx1ZDJiOCBcdWMwYWNcdWM2YTlcdWM1ZDAgIiArCisgICAgICAgICJcdWM3ODhcdWM1YjRcdWMxMWMgXHVjMGMxXHViMmY5XHVkNTVjIFx1YmU0NFx1YzZhOSBcdWM4MDhcdWFjMTAgIiArCisgICAgICAgICJcdWQ2YThcdWFjZmNcdWFjMDAgIiArCisgICAgICAgICJcdWIwOThcdWQwYzBcdWIwYTlcdWIyYzhcdWIyZTQuIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1Yjk3YyAiICsKKyAgICAgICAgIlx1ZDFiNVx1ZDU3NCBcdWI5YWNcdWM1ZDRcdWM5YzBcdWIyYzhcdWM1YjRcdWI5YzEgXHVjNWM2XHVjNzc0ICIgKworICAgICAgICAiXHViMmU0XHVjOTExIFx1ZDUwY1x1YjdhYlx1ZDNmYywgXHVjNWI4XHVjNWI0IFx1YmMwZiBcdWFkNmRcdWFjMDAgIiArCisgICAgICAgICJcdWFjMDRcdWM1ZDAgXHViMmU4XHVjNzdjIFx1YzE4Y1x1ZDUwNFx1ZDJiOFx1YzZlOFx1YzViNCAiICsKKyAgICAgICAgIlx1ZDUwY1x1YjdhYlx1ZDNmYyBcdWI2MTBcdWIyOTQgXHViMmU4XHVjNzdjIFx1YzZmOSAiICsKKyAgICAgICAgIlx1YzBhY1x1Yzc3NFx1ZDJiOFx1Yjk3YyBcdWJhYTlcdWQ0NWNcdWI4NWMgXHVjMGJjXHVjNzQ0IFx1YzIxOCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjNzc0XHViOTdjIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YmE3NCAiICsKKyAgICAgICAgIlx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjk3YyBcdWMxOTBcdWMwYzEgXHVjNWM2XHVjNzc0IFx1YzVlY1x1YjdlYyAiICsKKyAgICAgICAgIlx1YzJkY1x1YzJhNFx1ZDE1Y1x1Yzc0NCBcdWQxYjVcdWQ1NzQgXHVjODA0XHVjMWExXHVkNTYwIFx1YzIxOCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjIFx1Y2Y1OFx1YzE4Y1x1YzJkY1x1YzVjNFx1YzVkMCBcdWIzMDBcdWQ1NzQgIiArCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNzQwICIgKworICAgICAgICAiXHViZTQ0XHVjNjAxXHViOWFjIFx1Yzg3MFx1YzljMVx1YzczY1x1Yjg1Y1x1YzExYyBcdWQ2MDRcdWIzMDAgIiArCisgICAgICAgICJcdWMxOGNcdWQ1MDRcdWQyYjhcdWM2ZThcdWM1YjQgXHVjODFjXHVkNDg4XHVhY2ZjICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNWQwXHVjMTFjIFx1ZDE0ZFx1YzJhNFx1ZDJiOFx1Yzc1OCBcdWQ0NWNcdWQ2MDRcdWM3NDQgIiArCisgICAgICAgICJcdWM5YzBcdWM4MTVcdWQ1NThcdWIyOTQgXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjIFx1ZDQ1Y1x1YzkwMFx1Yzc1OCAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1Yzc0NCBcdWFjMWNcdWJjMWNcdWQ1NThcdWFjZTAgXHVkNjU1XHVjN2E1XHVkNTU4XHViYTcwICIgKworICAgICAgICAiXHVjN2E1XHViODI0XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCAiICsKKyAgICAgICAgIlx1YzEzOFx1YzZjY1x1Yzg0Y1x1YzJiNVx1YjJjOFx1YjJlNC4gXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0ICIgKworICAgICAgICAiXHViYTY0XHViYzg0XHVjMjdkXHVjNzQwIFx1Y2VmNFx1ZDRlOFx1ZDEzMFx1YzY0MCBcdWM4MTVcdWJjZjQgIiArCisgICAgICAgICJcdWNjOThcdWI5YWMgXHVjMGIwXHVjNWM1XHVjNWQwIFx1Yzg4NVx1YzBhY1x1ZDU1OFx1YWNlMCBcdWM3ODhcdWIyOTQgIiArCisgICAgICAgICJcdWFkMTFcdWJjOTRcdWM3MDRcdWQ1NWMgXHVkNjhjXHVjMGFjIFx1YmMwZiBcdWM4NzBcdWM5YzFcdWM3NTggIiArCisgICAgICAgICJcdWJjOTRcdWM3MDRcdWI5N2MgIiArCisgICAgICAgICJcdWIwOThcdWQwYzBcdWIwYzVcdWIyYzhcdWIyZTQuIFx1Y2Y1OFx1YzE4Y1x1YzJkY1x1YzVjNFx1Yzc1OCAiICsKKyAgICAgICAgIlx1YzdhY1x1YzgxNVx1Yzc0MCBcdWM4MDRcdWM4MDFcdWM3M2NcdWI4NWMgXHVkNjhjXHViZTQ0XHVjNWQwICIgKworICAgICAgICAiXHVjNzU4XHVkNTc0IFx1Y2RhOVx1YjJmOVx1YjQyOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjICIgKworICAgICAgICAiXHVjZWU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNWQwXHVjMTFjXHVjNzU4IFx1YmE2NFx1YmM4NFx1YzI3ZFx1Yzc0MCAiICsKKyAgICAgICAgIlx1YzgwNCBcdWMxMzhcdWFjYzQgXHVjNWI0XHViMjkwIFx1YWNmM1x1YzVkMFx1YzExY1x1YjA5OCAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWQ0NWNcdWM5MDBcdWM3NDQgXHVjOWMwXHVjNmQwXHVkNTU4XHVhY2UwICIgKworICAgICAgICAiXHVhZGY4IFx1ZDY1NVx1YzdhNVx1YWNmYyBcdWFkNmNcdWQ2MDRcdWM3NDQgIiArCisgICAgICAgICJcdWM5YzBcdWM2ZDBcdWQ1NThcdWFjZTBcdWM3OTBcdWQ1NThcdWIyOTQgXHVjODcwXHVjOWMxXHVhY2ZjICIgKworICAgICAgICAiXHVhYzFjXHVjNzc4XHVjNWQwXHVhYzhjIFx1YWMxY1x1YmMyOVx1YjQxOFx1YzViNCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHViMzU0IFx1Yzc5MFx1YzEzOFx1ZDU1YyBcdWIwYjRcdWM2YTlcdWM3NDAgXHVjNmE5XHVjNWI0XHVjOWQxLCAiICsKKyAgICAgICAgIlx1YzYwOFx1YzgxYyBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVjMGFjXHVjNmE5IFx1YWMwMFx1YjJhNSAiICsKKyAgICAgICAgIlx1YzgxY1x1ZDQ4OCwgXHVhZTMwXHVjMjIwIFx1YzgxNVx1YmNmNCBcdWJjMGYgXHVhZTMwXHVkMGMwICIgKworICAgICAgICAiXHVjNzIwXHVjNmE5XHVkNTVjIFx1YzgxNVx1YmNmNFx1Yjk3YyAiICsKKyAgICAgICAgIlx1Y2MzOFx1Yzg3MFx1ZDU1OFx1YzJlZFx1YzJkY1x1YzYyNC4iOworCisgICAgLy8gVHJhbnNsaXRlcmF0b3JUZXN0IG92ZXJyaWRlCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHN1bW1hcnksIGJvb2xlYW4gcGFzcywKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmV4cGVjdEF1eCh0YWcsIGphbW9Ub05hbWUoc3VtbWFyeSksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzLCBqYW1vVG9OYW1lKGV4cGVjdGVkUmVzdWx0KSk7CisgICAgfQorCisgICAgLy8gVVRJTElUSUVTCisKKyAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIGNvdWxkIG1vcmUgZWFzaWx5IGJlIGRvbmUgd2l0aCBhIHRyYW5zbGl0ZXJhdG9yIQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBKQU1PX05BTUVTID0geworICAgICAgICAiKEdpKSIsICJcdTExMDAiLAorICAgICAgICAiKEdHaSkiLCAiXHUxMTAxIiwKKyAgICAgICAgIihOaSkiLCAiXHUxMTAyIiwKKyAgICAgICAgIihEaSkiLCAiXHUxMTAzIiwKKyAgICAgICAgIihERCkiLCAiXHUxMTA0IiwKKyAgICAgICAgIihSKSIsICJcdTExMDUiLAorICAgICAgICAiKE1pKSIsICJcdTExMDYiLAorICAgICAgICAiKEJpKSIsICJcdTExMDciLAorICAgICAgICAiKEJCKSIsICJcdTExMDgiLAorICAgICAgICAiKFNpKSIsICJcdTExMDkiLAorICAgICAgICAiKFNTaSkiLCAiXHUxMTBBIiwKKyAgICAgICAgIihJRVVORykiLCAiXHUxMTBCIiwKKyAgICAgICAgIihKaSkiLCAiXHUxMTBDIiwKKyAgICAgICAgIihKSikiLCAiXHUxMTBEIiwKKyAgICAgICAgIihDaSkiLCAiXHUxMTBFIiwKKyAgICAgICAgIihLaSkiLCAiXHUxMTBGIiwKKyAgICAgICAgIihUaSkiLCAiXHUxMTEwIiwKKyAgICAgICAgIihQaSkiLCAiXHUxMTExIiwKKyAgICAgICAgIihIaSkiLCAiXHUxMTEyIiwKKyAgICAgICAgCisgICAgICAgICIoQSkiLCAiXHUxMTYxIiwKKyAgICAgICAgIihBRSkiLCAiXHUxMTYyIiwKKyAgICAgICAgIihZQSkiLCAiXHUxMTYzIiwKKyAgICAgICAgIihZQUUpIiwgIlx1MTE2NCIsCisgICAgICAgICIoRU8pIiwgIlx1MTE2NSIsCisgICAgICAgICIoRSkiLCAiXHUxMTY2IiwKKyAgICAgICAgIihZRU8pIiwgIlx1MTE2NyIsCisgICAgICAgICIoWUUpIiwgIlx1MTE2OCIsCisgICAgICAgICIoTykiLCAiXHUxMTY5IiwKKyAgICAgICAgIihXQSkiLCAiXHUxMTZBIiwKKyAgICAgICAgIihXQUUpIiwgIlx1MTE2QiIsCisgICAgICAgICIoT0UpIiwgIlx1MTE2QyIsCisgICAgICAgICIoWU8pIiwgIlx1MTE2RCIsCisgICAgICAgICIoVSkiLCAiXHUxMTZFIiwKKyAgICAgICAgIihXRU8pIiwgIlx1MTE2RiIsCisgICAgICAgICIoV0UpIiwgIlx1MTE3MCIsCisgICAgICAgICIoV0kpIiwgIlx1MTE3MSIsCisgICAgICAgICIoWVUpIiwgIlx1MTE3MiIsCisgICAgICAgICIoRVUpIiwgIlx1MTE3MyIsCisgICAgICAgICIoWUkpIiwgIlx1MTE3NCIsCisgICAgICAgICIoSSkiLCAiXHUxMTc1IiwKKworICAgICAgICAiKEdmKSIsICJcdTExQTgiLAorICAgICAgICAiKEdHZikiLCAiXHUxMUE5IiwKKyAgICAgICAgIihHUykiLCAiXHUxMUFBIiwKKyAgICAgICAgIihOZikiLCAiXHUxMUFCIiwKKyAgICAgICAgIihOSikiLCAiXHUxMUFDIiwKKyAgICAgICAgIihOSCkiLCAiXHUxMUFEIiwKKyAgICAgICAgIihEZikiLCAiXHUxMUFFIiwKKyAgICAgICAgIihMKSIsICJcdTExQUYiLAorICAgICAgICAiKExHKSIsICJcdTExQjAiLAorICAgICAgICAiKExNKSIsICJcdTExQjEiLAorICAgICAgICAiKExCKSIsICJcdTExQjIiLAorICAgICAgICAiKExTKSIsICJcdTExQjMiLAorICAgICAgICAiKExUKSIsICJcdTExQjQiLAorICAgICAgICAiKExQKSIsICJcdTExQjUiLAorICAgICAgICAiKExIKSIsICJcdTExQjYiLAorICAgICAgICAiKE1mKSIsICJcdTExQjciLAorICAgICAgICAiKEJmKSIsICJcdTExQjgiLAorICAgICAgICAiKEJTKSIsICJcdTExQjkiLAorICAgICAgICAiKFNmKSIsICJcdTExQkEiLAorICAgICAgICAiKFNTZikiLCAiXHUxMUJCIiwKKyAgICAgICAgIihORykiLCAiXHUxMUJDIiwKKyAgICAgICAgIihKZikiLCAiXHUxMUJEIiwKKyAgICAgICAgIihDZikiLCAiXHUxMUJFIiwKKyAgICAgICAgIihLZikiLCAiXHUxMUJGIiwKKyAgICAgICAgIihUZikiLCAiXHUxMUMwIiwKKyAgICAgICAgIihQZikiLCAiXHUxMUMxIiwKKyAgICAgICAgIihIZikiLCAiXHUxMUMyIiwKKyAgICB9OworCisgICAgc3RhdGljIEhhc2h0YWJsZSBKQU1PX1RPX05BTUU7CisgICAgc3RhdGljIEhhc2h0YWJsZSBOQU1FX1RPX0pBTU87CisKKyAgICBzdGF0aWMgeworICAgICAgICBKQU1PX1RPX05BTUUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIE5BTUVfVE9fSkFNTyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEpBTU9fTkFNRVMubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBKQU1PX1RPX05BTUUucHV0KEpBTU9fTkFNRVNbaSsxXSwgSkFNT19OQU1FU1tpXSk7CisgICAgICAgICAgICBOQU1FX1RPX0pBTU8ucHV0KEpBTU9fTkFNRVNbaV0sIEpBTU9fTkFNRVNbaSsxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHNob3J0IG5hbWVzIHRvIGFjdHVhbCBqYW1vLiAgRS5nLiwgIngoTEcpeSIgcmV0dXJucworICAgICAqICJ4XHUxMUIweSIuICBTZWUgSkFNT19OQU1FUyBmb3IgdGFibGUgb2YgbmFtZXMuCisgICAgICovCisgICAgc3RhdGljIFN0cmluZyBuYW1lVG9KYW1vKFN0cmluZyBpbnB1dCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8aW5wdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gaW5wdXQuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJygnKSB7CisgICAgICAgICAgICAgICAgaW50IGogPSBpbnB1dC5pbmRleE9mKCcpJywgaSsxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGotaSkgPj0gMiAmJiAoai1pKSA8PSA2KSB7IC8vICIoQSkiLCAiKElFVU5HKSIKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGphbW8gPSAoU3RyaW5nKSBOQU1FX1RPX0pBTU8uZ2V0KGlucHV0LnN1YnN0cmluZyhpLCBqKzEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGphbW8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChqYW1vKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGphbW8gdG8gc2hvcnQgbmFtZXMuICBFLmcuLCAieFx1MTFCMHkiIHJldHVybnMKKyAgICAgKiAieChMRyl5Ii4gIFNlZSBKQU1PX05BTUVTIGZvciB0YWJsZSBvZiBuYW1lcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIGphbW9Ub05hbWUoU3RyaW5nIGlucHV0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxpbnB1dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBpbnB1dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAweDExMDAgJiYgYyA8PSAweDExQzIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIEpBTU9fVE9fTkFNRS5nZXQoaW5wdXQuc3Vic3RyaW5nKGksIGkrMSkpOworICAgICAgICAgICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1JlcGxhY2VhYmxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1JlcGxhY2VhYmxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1N2UxY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEKQEAgLTAsMCArMSwxODYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBSb3VuZCB0cmlwIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFJlcGxhY2VhYmxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEFURVJfVEhBTl8yXzEgPSB0cnVlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUmVwbGFjZWFibGVUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgCisgICAgcHVibGljIHZvaWQgVGVzdCgpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworICAgICAgICBjaGVjaygiTG93ZXIiLCAiQUJDRCIsICIxMjM0Iik7CisgICAgICAgIGNoZWNrKCJVcHBlciIsICJhYmNkXHUwMERGIiwgIjEyMzQ1NSIpOyAvLyBtdXN0IG1hcCAwMERGIHRvIFNTCisgICAgICAgIGNoZWNrKCJUaXRsZSIsICJhQkNEIiwgIjEyMzQiKTsKKyAgICAgICAgY2hlY2soIk5GQyIsICJBXHUwMzAwRVx1MDMwMCIsICIxMyIpOworICAgICAgICBjaGVjaygiTkZEIiwgIlx1MDBDMFx1MDBDOCIsICIxMTIyIik7CisgICAgICAgIGlmICghTEFURVJfVEhBTl8yXzEpIHJldHVybjsKKyAgICAgICAgY2hlY2soIiooeCkgPiBBICQxIEIiLCAid3h5IiwgIjExMjIzIik7CisgICAgICAgIGNoZWNrKCIqKHgpKHkpID4gQSAkMiBCICQxIEMgJDIgRCIsICJ3eHl6IiwgIjExMzMyMjMzNCIpOworICAgICAgICBjaGVjaygiKih4KSh5KSh6KSA+IEEgJDMgQiAkMiBDICQxIEQiLCAid3h5enUiLCAiMTE0NDMzMjI1Iik7CisgICAgLy8gRGlzYWJsZWQgZm9yIDIuNC4gIFRPRE8gUmV2aXNpdCBpbiAyLjYgb3IgbGF0ZXIuCisgICAgICAgIC8vY2hlY2soIip4ID4gYSIsICJ4eXoiLCAiMjIzIik7IC8vIGV4cGVjdCAiMTIzIj8KKyAgICAgICAgLy9jaGVjaygiKnggPiBhIiwgInd4eSIsICIxMTMiKTsgLy8gZXhwZWN0ICIxMjMiPworICAgICAgICAvL2NoZWNrKCIqeCA+IGEiLCAiXHVGRkZGeHkiLCAiXzMzIik7IC8vIGV4cGVjdCAiXzIzIj8KKyAgICAgICAgLy9jaGVjaygiKih4KSA+IEEgJDEgQiIsICJcdUZGRkZ4eSIsICJfXzIyMyIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNoZWNrKFN0cmluZyB0cmFuc2xpdGVyYXRvck5hbWUsIFN0cmluZyB0ZXN0LCBTdHJpbmcgc2hvdWxkUHJvZHVjZVN0eWxlcykgeworICAgICAgICBUZXN0UmVwbGFjZWFibGUgdHIgPSBuZXcgVGVzdFJlcGxhY2VhYmxlKHRlc3QsIG51bGwpOworICAgICAgICBTdHJpbmcgb3JpZ2luYWwgPSB0ci50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDsKKyAgICAgICAgaWYgKHRyYW5zbGl0ZXJhdG9yTmFtZS5zdGFydHNXaXRoKCIqIikpIHsKKyAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9yTmFtZSA9IHRyYW5zbGl0ZXJhdG9yTmFtZS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0ZXN0IiwgdHJhbnNsaXRlcmF0b3JOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFuc2xpdGVyYXRvck5hbWUpOworICAgICAgICB9CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0cik7CisgICAgICAgIFN0cmluZyBuZXdTdHlsZXMgPSB0ci5nZXRTdHlsZXMoKTsKKyAgICAgICAgaWYgKCFuZXdTdHlsZXMuZXF1YWxzKHNob3VsZFByb2R1Y2VTdHlsZXMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBTdHlsZXM6ICIgKyB0cmFuc2xpdGVyYXRvck5hbWUgKyAiICggIgorICAgICAgICAgICAgICAgICsgb3JpZ2luYWwgKyAiICkgPT4gIiArIHRyLnRvU3RyaW5nKCkgKyAiOyBzaG91bGQgYmUgeyIgKyBzaG91bGRQcm9kdWNlU3R5bGVzICsgIn0hIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyB0cmFuc2xpdGVyYXRvck5hbWUgKyAiICggIiArIG9yaWdpbmFsICsgIiApID0+ICIgKyB0ci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCF0ci5oYXNNZXRhRGF0YSgpIHx8IHRyLmNoYXJzLmhhc01ldGFEYXRhKCkgCisgICAgICAgICAgICB8fCB0ci5zdHlsZXMuaGFzTWV0YURhdGEoKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgaGFzTWV0YURhdGEoKSIpOworICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHRlc3QgY2xhc3MgdGhhdCBzaW11bGF0ZXMgc3R5bGVkIHRleHQuCisgICAgICogSXQgYXNzb2NpYXRlcyBhIHN0eWxlIG51bWJlciAoMC4uNjU1MzUpIHdpdGggZWFjaCBjaGFyYWN0ZXIsCisgICAgICogYW5kIG1haW50YWlucyB0aGF0IHN0eWxlIGluIHRoZSBub3JtYWwgZmFzaGlvbjoKKyAgICAgKiBXaGVuIHNldHRpbmcgdGV4dCBmcm9tIHJhdyBzdHJpbmcgb3IgY2hhcmFjdGVycyw8YnI+CisgICAgICogU2V0IHRoZSBzdHlsZXMgdG8gdGhlIHN0eWxlIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgcmVwbGFjZWQuPGJyPgorICAgICAqIElmIG5vIGNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkLCB1c2UgdGhlIHN0eWxlIG9mIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIuPGJyPgorICAgICAqIElmIGF0IHN0YXJ0LCB1c2UgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXI8YnI+CisgICAgICogT3RoZXJ3aXNlIHVzZSBOT19TVFlMRS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgVGVzdFJlcGxhY2VhYmxlIGltcGxlbWVudHMgUmVwbGFjZWFibGUgeworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBjaGFyczsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgc3R5bGVzOworICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgTk9fU1RZTEUgPSAnXyc7CisKKyAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgTk9fU1RZTEVfTUFSSyA9IDB4RkZGRjsKKyAgICAgICAgCisgICAgICAgIFRlc3RSZXBsYWNlYWJsZSAoU3RyaW5nIHRleHQsIFN0cmluZyBzdHlsZXMpIHsKKyAgICAgICAgICAgIGNoYXJzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChzdHlsZXMgIT0gbnVsbCAmJiBpIDwgc3R5bGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKHN0eWxlcy5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0LmNoYXJBdChpKSA9PSBOT19TVFlMRV9NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzLmFwcGVuZChOT19TVFlMRSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzLmFwcGVuZCgoY2hhcikgKGkgKyAnMScpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuc3R5bGVzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3R5bGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIHN0eWxlcy50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLnRvU3RyaW5nKCkgKyAieyIgKyBzdHlsZXMudG9TdHJpbmcoKSArICJ9IjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgc3Vic3RyaW5nKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5sZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGNoYXJBdChpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuY2hhckF0KG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGNoYXIzMkF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5jaGFyMzJBdChvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCkgeworICAgICAgICAgICAgY2hhcnMuZ2V0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCBkc3QsIGRzdFN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyB0ZXh0KSB7CisgICAgICAgICAgICBpZiAoc3Vic3RyaW5nKHN0YXJ0LGxpbWl0KS5lcXVhbHModGV4dCkpIHJldHVybjsgLy8gTk8gQUNUSU9OIQorICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KFV0aWxpdHkuZXNjYXBlKHRvU3RyaW5nKCkgKyAiIC0+IHJlcGxhY2UoIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsgbGltaXQgKyAiLCIgKyB0ZXh0KSArICIpIC0+ICIpOworICAgICAgICAgICAgY2hhcnMucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQpOworICAgICAgICAgICAgZml4U3R5bGVzKHN0YXJ0LCBsaW1pdCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZSh0b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcnNTdGFydCwgaW50IGNoYXJzTGVuKSB7CisgICAgICAgICAgICBpZiAoc3Vic3RyaW5nKHN0YXJ0LGxpbWl0KS5lcXVhbHMobmV3IFN0cmluZyhjaGFycywgY2hhcnNTdGFydCwgY2hhcnNMZW4tY2hhcnNTdGFydCkpKSByZXR1cm47IC8vIE5PIEFDVElPTiEKKyAgICAgICAgICAgIHRoaXMuY2hhcnMucmVwbGFjZShzdGFydCwgbGltaXQsIGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbik7CisgICAgICAgICAgICBmaXhTdHlsZXMoc3RhcnQsIGxpbWl0LCBjaGFyc0xlbik7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGZpeFN0eWxlcyhpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IG5ld0xlbikgeworICAgICAgICAgICAgY2hhciBuZXdTdHlsZSA9IE5PX1NUWUxFOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGxpbWl0ICYmIHN0eWxlcy5jaGFyQXQoc3RhcnQpICE9IE5PX1NUWUxFKSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KHN0YXJ0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPiAwICYmIGNoYXJBdChzdGFydC0xKSAhPSBOT19TVFlMRV9NQVJLKSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KHN0YXJ0LTEpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsaW1pdCA8IHN0eWxlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIG5ld1N0eWxlID0gc3R5bGVzLmNoYXJBdChsaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cuCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmV3TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGRvZXNuJ3QgcmVhbGx5IGhhbmRsZSBhbiBlbWJlZGRlZCBOT19TVFlMRV9NQVJLCisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG1pZGRsZSBvZiBhIGxvbmcgcnVuIG9mIGNoYXJhY3RlcnMgcmlnaHQgLS0gYnV0CisgICAgICAgICAgICAgICAgLy8gdGhhdCBjYXNlIHNob3VsZG4ndCBoYXBwZW4gYW55d2F5CisgICAgICAgICAgICAgICAgaWYgKGNoYXJBdChzdGFydCtpKSA9PSBOT19TVFlMRV9NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKE5PX1NUWUxFKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzLmFwcGVuZChuZXdTdHlsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3R5bGVzLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgY29weShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGRlc3QpIHsKKyAgICAgICAgICAgIGNoYXJzLmNvcHkoc3RhcnQsIGxpbWl0LCBkZXN0KTsKKyAgICAgICAgICAgIHN0eWxlcy5jb3B5KHN0YXJ0LCBsaW1pdCwgZGVzdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc01ldGFEYXRhKCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUm91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNTgwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUm91bmRUcmlwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTU5OCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgUm91bmQgdHJpcCB0ZXN0IG9mIFRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBSb3VuZFRyaXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gRVhUUkFfVEVTVFMgPSB0cnVlOworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFBSSU5UX1JVTEVTID0gdHJ1ZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUm91bmRUcmlwVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2luZ2xlKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tR3JlZWsiKTsKKyAgICAgICAgU3RyaW5nIHMgPSB0LnRyYW5zbGl0ZXJhdGUoIlx1MDEwMVx1MDA2OSIpOworICAgIH0KKyAgICAqLworCisgICAgLyoKKyAgICBOb3RlOiBVbmljb2RlIDMuMiBhZGRlZCBuZXcgSGlyYWdhbmEvS2F0YWthbmEgY2hhcmFjdGVyczoKKworMzA5NS4uMzA5NiAgICA7IDMuMiAjICAgWzJdIEhJUkFHQU5BIExFVFRFUiBTTUFMTCBLQS4uSElSQUdBTkEgTEVUVEVSIFNNQUxMIEtFCiszMDlGLi4zMEEwICAgIDsgMy4yICMgICBbMl0gSElSQUdBTkEgRElHUkFQSCBZT1JJLi5LQVRBS0FOQS1ISVJBR0FOQSBET1VCTEUgSFlQSEVOCiszMEZGICAgICAgICAgIDsgMy4yICMgICAgICAgS0FUQUtBTkEgRElHUkFQSCBLT1RPCiszMUYwLi4zMUZGICAgIDsgMy4yICMgIFsxNl0gS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtVLi5LQVRBS0FOQSBMRVRURVIgU01BTEwgUk8KKworICAgIFdlIHdpbGwgbm90IGFkZCB0aGVtIHRvIHRoZSBydWxlcyB1bnRpbCB0aGV5IGFyZSBtb3JlIHN1cHBvcnRlZCAoZS5nLiBpbiBmb250cyBvbiBXaW5kb3dzKQorICAgIEEgYnVnIGhhcyBiZWVuIGZpbGVkIHRvIHJlbWluZCB1cyB0byBkbyB0aGlzOiAjMTk3OS4KKyAgICAqLworCisgICAgc3RhdGljIFN0cmluZyBLQVRBS0FOQSA9ICJbW1s6a2F0YWthbmE6XVtcdTMwQTEtXHUzMEZBXHUzMEZDXV0tW1x1MzBGRlx1MzFGMC1cdTMxRkZdXSI7CisgICAgc3RhdGljIFN0cmluZyBISVJBR0FOQSA9ICJbW1s6aGlyYWdhbmE6XVtcdTMwNDAtXHUzMDk0XV0tW1x1MzA5NS1cdTMwOTZcdTMwOUYtXHUzMEEwXV0iOworICAgIHN0YXRpYyBTdHJpbmcgTEVOR1RIID0gIltcdTMwRkNdIjsKKyAgICBzdGF0aWMgU3RyaW5nIEhBTEZXSURUSF9LQVRBS0FOQSA9ICJbXHVGRjY1LVx1RkY5RF0iOworICAgIHN0YXRpYyBTdHJpbmcgS0FUQUtBTkFfSVRFUkFUSU9OID0gIltcdTMwRkRcdTMwRkVdIjsKKyAgICBzdGF0aWMgU3RyaW5nIEhJUkFHQU5BX0lURVJBVElPTiA9ICJbXHUzMDlEXHUzMDlFXSI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHN0YXRpYyBjbGFzcyBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvciBleHRlbmRzIFVuaWNvZGVTZXRJdGVyYXRvciB7CisKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGFiYnJldmlhdGVkOworICAgICAgICBwcml2YXRlIGludCBwZXJSYW5nZTsKKworICAgICAgICBwdWJsaWMgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgYWJicmV2aWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFVuaWNvZGVTZXQgbmV3U2V0KSB7CisgICAgICAgICAgICByZXNldChuZXdTZXQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFVuaWNvZGVTZXQgbmV3U2V0LCBib29sZWFuIGFiYikgeworICAgICAgICAgICAgcmVzZXQobmV3U2V0LCBhYmIsIDEwMCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChVbmljb2RlU2V0IG5ld1NldCwgYm9vbGVhbiBhYmIsIGludCBkZW5zaXR5KSB7CisgICAgICAgICAgICBzdXBlci5yZXNldChuZXdTZXQpOworICAgICAgICAgICAgYWJicmV2aWF0ZWQgPSBhYmI7CisgICAgICAgICAgICBwZXJSYW5nZSA9IG5ld1NldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgICAgICBpZiAocGVyUmFuZ2UgIT0gMCkgeworICAgICAgICAgICAgICAgIHBlclJhbmdlID0gZGVuc2l0eSAvIHBlclJhbmdlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgbG9hZFJhbmdlKGludCBteVJhbmdlKSB7CisgICAgICAgICAgICBzdXBlci5sb2FkUmFuZ2UobXlSYW5nZSk7CisgICAgICAgICAgICBpZiAoYWJicmV2aWF0ZWQgJiYgKGVuZEVsZW1lbnQgPiBuZXh0RWxlbWVudCArIHBlclJhbmdlKSkgeworICAgICAgICAgICAgICAgIGVuZEVsZW1lbnQgPSBuZXh0RWxlbWVudCArIHBlclJhbmdlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHVibGljIHZvaWQgc2hvd0VsYXBzZWQobG9uZyBzdGFydCwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgZG91YmxlIGR1ciA9IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0KSAvIDEwMDAuMDsKKyAgICAgICAgbG9nbG4obmFtZSArICIgdG9vayAiICsgZHVyICsgIiBzZWNvbmRzIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEthbmEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJLYXRha2FuYS1IaXJhZ2FuYSIpCisgICAgICAgICAgLnRlc3QoS0FUQUtBTkEsICJbIiArIEhJUkFHQU5BICsgTEVOR1RIICsgIl0iLCAiWyIgKyBIQUxGV0lEVEhfS0FUQUtBTkEgKyBMRU5HVEggKyAiXSIsIHRoaXMsIG5ldyBMZWdhbCgpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0S2FuYSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIaXJhZ2FuYSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUhpcmFnYW5hIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCBISVJBR0FOQSwgSElSQUdBTkFfSVRFUkFUSU9OLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdEhpcmFnYW5hIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEthdGFrYW5hKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tS2F0YWthbmEiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsIEtBVEFLQU5BLCAiWyIgKyBLQVRBS0FOQV9JVEVSQVRJT04gKyBIQUxGV0lEVEhfS0FUQUtBTkEgKyAiXSIsIHRoaXMsIG5ldyBMZWdhbCgpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0S2F0YWthbmEiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SmFtbygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUphbW8iKQorICAgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgIltcdTExMDAtXHUxMTEyIFx1MTE2MS1cdTExNzUgXHUxMUE4LVx1MTFDMl0iLCAiIiwgdGhpcywgbmV3IExlZ2FsSmFtbygpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SmFtbyIpOworICAgIH0KKworLyoKKyAgICAgICAgU0Jhc2UgPSAweEFDMDAsIExCYXNlID0gMHgxMTAwLCBWQmFzZSA9IDB4MTE2MSwgVEJhc2UgPSAweDExQTcsCisgICAgICAgIExDb3VudCA9IDE5LCBWQ291bnQgPSAyMSwgVENvdW50ID0gMjgsCisgICAgICAgIE5Db3VudCA9IFZDb3VudCAqIFRDb3VudCwgICAvLyA1ODgKKyAgICAgICAgU0NvdW50ID0gTENvdW50ICogTkNvdW50LCAgIC8vIDExMTcyCisgICAgICAgIExMaW1pdCA9IExCYXNlICsgTENvdW50LCAgICAvLyAxMTEzCisgICAgICAgIFZMaW1pdCA9IFZCYXNlICsgVkNvdW50LCAgICAvLyAxMTc2CisgICAgICAgIFRMaW1pdCA9IFRCYXNlICsgVENvdW50LCAgICAvLyAxMUMzCisgICAgICAgIFNMaW1pdCA9IFNCYXNlICsgU0NvdW50OyAgICAvLyBEN0E0CisqLworCisgICAgcHVibGljIHZvaWQgVGVzdEhhbmd1bCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgVGVzdCB0ID0gbmV3IFRlc3QoIkxhdGluLUhhbmd1bCIsIDUpOworICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPCAxMCkgdC5zZXRQYWlyTGltaXQoMTAwMCk7CisgICAgICAgIHQudGVzdCgiW2EtekEtWl0iLCAiW1x1QUMwMC1cdUQ3QTRdIiwgIiIsIHRoaXMsIG5ldyBMZWdhbCgpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SGFuZ3VsIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RIYW4oKSB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVW5pY29kZVNldCBleGVtcGxhcnMgPSBMb2NhbGVEYXRhLmdldEV4ZW1wbGFyU2V0KG5ldyBVTG9jYWxlKCJ6aCIpLDApOworICAgICAgICAgICAgLy8gY3JlYXRlIHN0cmluZyB3aXRoIGFsbCBjaGFycworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoZXhlbXBsYXJzKTsgaXQubmV4dCgpOykgeworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChiLGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gYi50b1N0cmluZygpOworICAgICAgICAgICAgLy8gdHJhbnNmb3JtIHdpdGggSGFuIHRyYW5zbGl0CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBoYW4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGFuLUxhdGluIik7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gaGFuLnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgICAgIC8vIG5vdyB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gSGFuIGNoYXJhY3RlcnMgbGVmdAorICAgICAgICAgICAgVW5pY29kZVNldCBhbGxIYW4gPSBuZXcgVW5pY29kZVNldCgiWzpoYW46XSIpOworICAgICAgICAgICAgYXNzZXJ0RmFsc2UoIk5vIEhhbiBtdXN0IGJlIGxlZnQgYWZ0ZXIgSGFuLUxhdGluIHRyYW5zbGl0ZXJhdGlvbiIsYWxsSGFuLmNvbnRhaW5zU29tZSh0YXJnZXQpKTsKKyAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBwaW55aW4gdHJhbnNsaXQKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHBuID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLU51bWVyaWNQaW55aW4iKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQyID0gcG4udHJhbnNsaXRlcmF0ZSh0YXJnZXQpOworICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlcmUgYXJlIG5vIG1hcmtzCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBuZmMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibmZjIik7CisgICAgICAgICAgICBTdHJpbmcgbmZjZWQgPSBuZmMudHJhbnNsaXRlcmF0ZSh0YXJnZXQyKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgYWxsTWFya3MgPSBuZXcgVW5pY29kZVNldCgiWzptYXJrOl0iKTsKKyAgICAgICAgICAgIGFzc2VydEZhbHNlKCJOdW1lcmljUGlueWluIG11c3QgY29udGFpbiBubyBtYXJrcyIsIGFsbE1hcmtzLmNvbnRhaW5zU29tZShuZmNlZCkpOworICAgICAgICAgICAgLy8gdmVyaWZ5IHJvdW5kdHJpcAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgbnAgPSBwbi5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0MyA9IG5wLnRyYW5zbGl0ZXJhdGUodGFyZ2V0KTsKKyAgICAgICAgICAgIGJvb2xlYW4gcm91bmR0cmlwT0sgPSB0YXJnZXQzLmVxdWFscyh0YXJnZXQpOworICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgiTnVtZXJpY1BpbnlpbiBtdXN0IHJvdW5kdHJpcCIsIHJvdW5kdHJpcE9LKTsKKyAgICAgICAgICAgIGlmICghcm91bmR0cmlwT0spIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSAibnVtZXJpYy1waW55aW4ubG9nLnR4dCI7CisgICAgICAgICAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURjgiKSwgNCoxMDI0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkNyZWF0aW5nIGxvZyBmaWxlICIgKyBuZXcgRmlsZShmaWxlbmFtZSkuZ2V0QWJzb2x1dGVGaWxlKCkpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJQaW55aW46ICAgICAgICAgICAgICAgICIgKyB0YXJnZXQpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJQaW55aW4tTnVtZXJpYy1QaW55aW46ICIgKyB0YXJnZXQyKTsKKyAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YSBmb3IgZmV0Y2hpbmcgdGhlIGV4ZW1wbGFyIGNoYXJhY3RlcnMuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2luZ2xlKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUdyZWVrIik7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZSgiXHUwMDYxXHUwMTAxXHUwMDY5Iik7CisgICAgfQorCisgICAgU3RyaW5nIGdldEdyZWVrU2V0KCkgeworICAgICAgICAvLyBUaW1lIGJvbWIKKyAgICAgICAgaWYgKHNraXBJZkJlZm9yZUlDVSgzLDYpKSB7CisgICAgICAgICAgICAvLyBXZSB0ZW1wb3JhcmlseSBmaWx0ZXIgYWdhaW5zdCBVbmljb2RlIDQuMSwgYnV0IHdlIG9ubHkgZG8gdGhpcworICAgICAgICAgICAgLy8gYmVmb3JlIHZlcnNpb24gMy41LgorICAgICAgICAgICAgbG9nbG4oIlRlc3RHcmVlayBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIHNlY3Rpb24gbWFya2VkIFs6QWdlPTQuMDpdIGZpbHRlciIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRlc3RHcmVlayBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIFs6QWdlPTQuMDpdIGZpbHRlciAiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gCisgICAgICAgIC8vIGlzSUNVMjgoKSA/ICJbW1x1MDAzQlx1MDBCN1s6R3JlZWs6XS1bXHUwM0Q3LVx1MDNFRl1dJls6QWdlPTMuMjpdXSIgOgorICAgICAgICAgICAgIltcdTAwM0JcdTAwQjdbWzpHcmVlazpdJls6TGV0dGVyOl1dLVsiICsKKyAgICAgICAgICAgICJcdTFEMjYtXHUxRDJBIiArIC8vIEwmICAgWzVdIEdSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIEdBTU1BLi5HUkVFSyBMRVRURVIgU01BTEwgQ0FQSVRBTCBQU0kKKyAgICAgICAgICAgICJcdTFENUQtXHUxRDYxIiArIC8vIExtICAgWzVdIE1PRElGSUVSIExFVFRFUiBTTUFMTCBCRVRBLi5NT0RJRklFUiBMRVRURVIgU01BTEwgQ0hJCisgICAgICAgICAgICAiXHUxRDY2LVx1MUQ2QSIgKyAvLyBMJiAgIFs1XSBHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEJFVEEuLkdSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQ0hJCisgICAgICAgICAgICAiXHUwM0Q3LVx1MDNFRiIgKyAvLyBcTntHUkVFSyBLQUkgU1lNQk9MfS4uXE57Q09QVElDIFNNQUxMIExFVFRFUiBERUl9CisgICAgICAgICAgICAiXSAmIFs6QWdlPTQuMDpdXSI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVlaygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUdyZWVrIiwgNTApCisgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsIGdldEdyZWVrU2V0KCksCisgICAgICAgICAgICAiW1x1MDBCNVx1MDM3QVx1MDNEMC1cdTAzRjVcdTAzRjldIiwgLyogcm91bmR0cmlwIGV4Y2x1c2lvbnMgKi8KKyAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEdyZWVrKHRydWUpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0R3JlZWsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R3JlZWtVTkdFR04oKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1HcmVlay9VTkdFR04iKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsIGdldEdyZWVrU2V0KCksCisgICAgICAgICAgICAiW1x1MDBCNVx1MDM3QVx1MDNEMC1cdUZGRkZ7XHUwMzlDXHUwM0MwfV0iLCAvKiByb3VuZHRyaXAgZXhjbHVzaW9ucyAqLworICAgICAgICAgICAgdGhpcywgbmV3IExlZ2FsR3JlZWsoZmFsc2UpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0R3JlZWtVTkdFR04iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0ZWwoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1lbCIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgZ2V0R3JlZWtTZXQoKSwKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1RkZGRntcdTAzOUNcdTAzQzB9XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayhmYWxzZSkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RlbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDeXJpbGxpYygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUN5cmlsbGljIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDExMFx1MDExMVx1MDJCQVx1MDJCOV0iLCAiW1x1MDQwMC1cdTA0NUZdIiwgbnVsbCwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RDeXJpbGxpYyIpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVJBQklDID0gIltcdTA2MENcdTA2MUJcdTA2MUZcdTA2MjFcdTA2MjctXHUwNjNBXHUwNjQxLVx1MDY1NVx1MDY2MC1cdTA2NkNcdTA2N0VcdTA2ODZcdTA2OThcdTA2QTRcdTA2QURcdTA2QUZcdTA2Q0ItXHUwNkNDXHUwNkYwLVx1MDZGOV0iOworCisgICAgcHVibGljIHZvaWQgVGVzdEFyYWJpYygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUFyYWJpYyIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpcdTAyQkVcdTAyQkZdIiwgQVJBQklDLCAiW2EtekEtWlx1MDJCRVx1MDJCRlx1MjA3Rl0iLCBudWxsLCB0aGlzLCBuZXcgTGVnYWwoKSk7IC8vCisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdEFyYWJpYyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIZWJyZXcoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAvLyAgICAgIFRpbWUgYm9tYgorICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsNikpIHsKKyAgICAgICAgICAgIC8vIFdlIHRlbXBvcmFyaWx5IGZpbHRlciBhZ2FpbnN0IFVuaWNvZGUgNC4xLCBidXQgd2Ugb25seSBkbyB0aGlzCisgICAgICAgICAgICAvLyBiZWZvcmUgdmVyc2lvbiAzLjUuCisgICAgICAgICAgICBsb2dsbigiVGVzdEhlYnJldyBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIHNlY3Rpb24gbWFya2VkIFs6QWdlPTQuMDpdIGZpbHRlciIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRlc3RIZWJyZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byByZW1vdmUgZGVsZXRlIHRoZSBbOkFnZT00LjA6XSBmaWx0ZXIgIik7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tSGVicmV3IikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDJCQ1x1MDJCQl0iLCAiW1tbOmhlYnJldzpdLVtcdTA1QkRcdUZCMDAtXHVGQkZGXV0mIFs6QWdlPTQuMDpdXSIsICJbXHUwNUYwXHUwNUYxXHUwNUYyXSIsIHRoaXMsIG5ldyBMZWdhbEhlYnJldygpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SGVicmV3Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRoYWkoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGlmKGlzSUNVVmVyc2lvbkF0TGVhc3QoMyw3KSl7CisgICAgICAgICAgICBuZXcgVGVzdCgiTGF0aW4tVGhhaSIpCisgICAgICAgICAgICAgICAgLnRlc3QoIlthLXpBLVpcdTAxNDJcdTFFQ0RcdTAwRTZcdTAxMzFcdTAyNjhcdTAyQ0NdIiwKKyAgICAgICAgICAgICAgICAgICAgICAiW1x1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXSIsIAorICAgICAgICAgICAgICAgICAgICAgICJbYS16QS1aXHUwMTQyXHUxRUNEXHUwMEU2XHUwMTMxXHUwMjY4XHUwMkI5XHUwMkNDXSIsCisgICAgICAgICAgICAgICAgbnVsbCwgdGhpcywgbmV3IExlZ2FsVGhhaSgpKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBuZXcgVGVzdCgiTGF0aW4tVGhhaSIpCisgICAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDE0Mlx1MUVDRFx1MDBFNlx1MDEzMVx1MDI2OFx1MDJDQ10iLAorICAgICAgICAgICAgICAgICAgIltcdTBFMDEtXHUwRTNBXHUwRTQwLVx1MEU1Ql0iLCAKKyAgICAgICAgICAgICAgICAgICJbYS16QS1aXHUwMTQyXHUxRUNEXHUwMEU2XHUwMTMxXHUwMjY4XHUwMkI5XHUwMkNDXSIsCisgICAgICAgICAgICAiW1x1MEU0Rl0iLCB0aGlzLCBuZXcgTGVnYWxUaGFpKCkpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RUaGFpIik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXItSW5kaWMgVGVzdHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsSW5kaWMgZXh0ZW5kcyBMZWdhbHsKKyAgICAgICAgVW5pY29kZVNldCB2b3dlbFNpZ25TZXQgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgIHB1YmxpYyBMZWdhbEluZGljKCl7CisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwOTAxXHUwOTAyXHUwOTAzXHUwOTA0XHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M10iKSk7ICAgICAgICAgICAgICAgLyogRGV2YW5hZ2FyaSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MDk4MVx1MDk4Mlx1MDk4M1x1MDliZS1cdTA5Y2NcdTA5ZTJcdTA5ZTNcdTA5RDddIikpOyAgICAgICAgIC8qIEJlbmdhbGkgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBhMDFcdTBhMDJcdTBhMDNcdTBhM2UtXHUwYTRjXHUwYTYyXHUwYTYzXHUwYTcwXHUwYTcxXSIpKTsgICAvKiBHdXJtdWtoaSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGE4MVx1MGE4Mlx1MGE4M1x1MGFiZS1cdTBhY2NcdTBhZTJcdTBhZTNdIikpOyAgICAgICAgICAgICAgIC8qIEd1amFyYXRpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYjAxXHUwYjAyXHUwYjAzXHUwYjNlLVx1MGI0Y1x1MGI2Mlx1MGI2M1x1MGI1Nlx1MGI1N10iKSk7ICAgLyogT3JpeWEgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBiODFcdTBiODJcdTBiODNcdTBiYmUtXHUwYmNjXHUwYmUyXHUwYmUzXHUwYmQ3XSIpKTsgICAgICAgICAvKiBUYW1pbCAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGMwMVx1MGMwMlx1MGMwM1x1MGMzZS1cdTBjNGNcdTBjNjJcdTBjNjNcdTBjNTVcdTBjNTZdIikpOyAgIC8qIFRlbHVndSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGM4MVx1MGM4Mlx1MGM4M1x1MGNiZS1cdTBjY2NcdTBjZTJcdTBjZTNcdTBjZDVcdTBjZDZdIikpOyAgIC8qIEthbm5hZGEgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBkMDFcdTBkMDJcdTBkMDNcdTBkM2UtXHUwZDRjXHUwZDYyXHUwZDYzXHUwZDU3XSIpKTsgICAgICAgICAvKiBNYWxheWFsYW0gKi8KKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBhdmFncmFoYSA9ICJcdTA5M2RcdTA5YmRcdTBhYmRcdTBiM2RcdTBjYmQiOworICAgICAgICBTdHJpbmcgbnVrdGEgPSAiXHUwOTNjXHUwOWJjXHUwYTNjXHUwYWJjXHUwYjNjXHUwY2JjIjsKKyAgICAgICAgU3RyaW5nIHZpcmFtYSA9ICJcdTA5NGRcdTA5Y2RcdTBhNGRcdTBhY2RcdTBiNGRcdTBiY2RcdTBjNGRcdTBjY2RcdTBkNGQiOworICAgICAgICBTdHJpbmcgc2Fuc2tyaXRTdHJlc3NTaWducyA9ICJcdTA5NTFcdTA5NTJcdTA5NTNcdTA5NTRcdTA5N2QiOworICAgICAgICBTdHJpbmcgY2hhbmRyYWJpbmR1ID0gIlx1MDkwMVx1MDk4MVx1MEE4MVx1MGIwMVx1MGMwMSI7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpeworICAgICAgICAgICAgaW50IGNwPXNvdXJjZVN0cmluZy5jaGFyQXQoMCk7CisKKyAgICAgICAgICAgIC8vIEEgdm93ZWwgc2lnbiBjYW5ub3QgYmUgdGhlIGZpcnN0IGNoYXIKKyAgICAgICAgICAgIGlmKHZvd2VsU2lnblNldC5jb250YWlucyhjcCkpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKGF2YWdyYWhhLmluZGV4T2YoY3ApIT0tMSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYodmlyYW1hLmluZGV4T2YoY3ApIT0tMSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYobnVrdGEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihzYW5za3JpdFN0cmVzc1NpZ25zLmluZGV4T2YoY3ApIT0tMSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoKGNoYW5kcmFiaW5kdS5pbmRleE9mKGNwKSE9LTEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoc291cmNlU3RyaW5nLmxlbmd0aCgpID4xICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm93ZWxTaWduU2V0LmNvbnRhaW5zKHNvdXJjZVN0cmluZy5jaGFyQXQoMSkpKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIFN0cmluZyBsYXRpbkZvckluZGljID0gIltbJy4wLTlBLVphLXp+XHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxQ0QtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRURcdTAxRjBcdTAxRjQtXHUwMUY1XHUwMUY4LVx1MDFGQiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAyMDAtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAyOTRcdTAzMDMtXHUwMzA0XHUwMzA2XHUwMzE0LVx1MDMxNSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAzMjVcdTA0MEVcdTA0MTlcdTA0MzlcdTA0NUVcdTA0QzEtXHUwNEMyXHUwNEQwLVx1MDREMVx1MDRENi1cdTA0RDciKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwM1x1MUYwNSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGMDdcdTFGMDlcdTFGMEJcdTFGMERcdTFGMEZcdTFGMTFcdTFGMTNcdTFGMTVcdTFGMTlcdTFGMUJcdTFGMURcdTFGMjEiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjIzXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCXHUxRjJEXHUxRjJGXHUxRjMxXHUxRjMzXHUxRjM1XHUxRjM3XHUxRjM5IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUYzQlx1MUYzRFx1MUYzRlx1MUY0MVx1MUY0M1x1MUY0NVx1MUY0OVx1MUY0Qlx1MUY0RFx1MUY1MVx1MUY1M1x1MUY1NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjFcdTFGNjNcdTFGNjVcdTFGNjdcdTFGNjlcdTFGNkJcdTFGNkQiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjZGXHUxRjgxXHUxRjgzXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCXHUxRjhEXHUxRjhGXHUxRjkxXHUxRjkzXHUxRjk1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUY5N1x1MUY5OVx1MUY5Qlx1MUY5RFx1MUY5Rlx1MUZBMVx1MUZBM1x1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQlx1MUZBRCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGQUYtXHUxRkIxXHUxRkI4LVx1MUZCOVx1MUZEMC1cdTFGRDFcdTFGRDgtXHUxRkQ5XHUxRkUwLVx1MUZFMVx1MUZFNSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGRTgtXHUxRkU5XHUxRkVDXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF0iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVtcdUUwMDAtXHVFMDgwIFx1MDFFMlx1MDFFM10mIFtbOmxhdGluOl1bOm1hcms6XV1dIjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3REZXZhbmFnYXJpTGF0aW4oKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGlmKHNraXBJZkJlZm9yZUlDVSgyLDgpKXsKKyAgICAgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1ERVZBTkFHQVJJIiwgNTApCisgICAgICAgICAgICAgIC50ZXN0KGxhdGluRm9ySW5kaWMsICJbWzpEZXZhbmFnYXJpOl1bXHUwOTRkXVtcdTA5NjRcdTA5NjVdICYgWzpBZ2U9My4yOl1dIiwgIltcdTA5NjVdIiwgdGhpcywgbmV3IExlZ2FsSW5kaWMoKSk7CisKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBpZiAoaXNJQ1VWZXJzaW9uQXRMZWFzdCgzLDgpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgdGVtcG9yYXJpbHkgZmlsdGVyIGFnYWluc3QgVW5pY29kZSA0LjEsIGJ1dCB3ZSBvbmx5IGRvIHRoaXMKKyAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdmVyc2lvbiAzLjQuCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3REZXZhbmFnYXJpTGF0aW4gbmVlZHMgdG8gYmUgdXBkYXRlZCB0byByZW1vdmUgZGVsZXRlIHRoZSBbOkFnZT00LjE6XSBmaWx0ZXIgIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiV2FybmluZzogVGVzdERldmFuYWdhcmlMYXRpbiBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIHNlY3Rpb24gbWFya2VkIFs6QWdlPTQuMTpdIGZpbHRlciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV3IFRlc3QoIkxhdGluLURFVkFOQUdBUkkiLCA1MCkKKyAgICAgICAgICAgICAgLnRlc3QobGF0aW5Gb3JJbmRpYywgIltbWzpEZXZhbmFnYXJpOl1bXHUwOTRkXVtcdTA5NjRcdTA5NjVdXSZbOkFnZT00LjE6XV0iLCAiW1x1MDk2NVx1MDkwNF0iLCB0aGlzLCBuZXcgTGVnYWxJbmRpYygpKTsKKyAgICAgICAgfQorICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3REZXZhbmFnYXJpTGF0aW4iKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgW11bXSBpbnRlckluZGljQXJyYXk9IG5ldyBTdHJpbmdbXVtdeworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLURFVkFOQUdBUkkiLAorICAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwNFx1MDk1MS1cdTA5NTRcdTA5NDMtXHUwOTQ5XHUwOTRhXHUwOTYyXHUwOTYzXHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTI5XHUwOTMzXHUwOTM0XHUwOTM1XHUwOTUwXHUwOTU4XHUwOTU5XHUwOTVhXHUwOTViXHUwOTVlXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktQkVOR0FMSSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDlEN1x1MDkwRFx1MDkwZVx1MDkxMVx1MDkxMlx1MDkyOVx1MDkzM1x1MDkzNFx1MDkzNVx1MDk1MFx1MDk1OFx1MDk1OVx1MDk1YVx1MDk1Ylx1MDk1ZVx1MDlmMFx1MDlmMVx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTA0XHUwOTAyXHUwOTM2XHUwOTMzXHUwOTUxLVx1MDk1NFx1MDkwMlx1MDkwM1x1MDk0My1cdTA5NDlcdTA5NGFcdTA5NjJcdTA5NjNcdTA5MEJcdTA5MENcdTA5MERcdTA5MGVcdTA5MTFcdTA5MTJcdTA5MzRcdTA5MzdcdTA5M0RcdTA5NTBcdTA5NjBcdTA5NjFcdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1HVVJNVUtISSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBBMDJcdTA5NDZcdTBBNUNcdTA5NTEtXHUwOTU0XHUwQTcwXHUwQTcxXHUwOTBCXHUwOTBDXHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTM0XHUwOTM3XHUwOTNEXHUwOTUwXHUwOTYwXHUwOTYxXHUwYTcyXHUwYTczXHUwYTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwNFx1MDk0Nlx1MDk0QVx1MDk2Mlx1MDk2M1x1MDk1MS1cdTA5NTRcdTA5NjFcdTA5MGNcdTA5MGVcdTA5MTJcdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1HVUpBUkFUSSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTA5NTEtXHUwOTU0XHUwOTYxXHUwOTBjXHUwOTBlXHUwOTEyXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzpPUklZQTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwNFx1MDkxMlx1MDkxMVx1MDkwRFx1MDkwZVx1MDkzMVx1MDk0My1cdTA5NGFcdTA5NjJcdTA5NjNcdTA5NTEtXHUwOTU0XHUwOTUwXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktT1JJWUEiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjVmXHUwYjU2XHUwYjU3XHUwYjcwXHUwYjcxXHUwOTUwXHUwOTBEXHUwOTBlXHUwOTEyXHUwOTExXHUwOTMxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUYW1pbC1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzp0YW1pbDpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwOTAxXHUwOTA0XHUwOTNjXHUwOTQzLVx1MDk0YVx1MDk1MS1cdTA5NTRcdTA5NjJcdTA5NjNcdTA5MEJcdTA5MENcdTA5MERcdTA5MTFcdTA5MTZcdTA5MTdcdTA5MThcdTA5MUJcdTA5MURcdTA5MjBcdTA5MjFcdTA5MjJcdTA5MjVcdTA5MjZcdTA5MjdcdTA5MkJcdTA5MkNcdTA5MkRcdTA5MzZcdTA5M2RcdTA5NTBbXHUwOTU4LVx1MDk2MV1cdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLVRhbWlsIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6dGFtaWw6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGJkN10iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVGVsdWd1LURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOnRlbHVndTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwNFx1MDkzY1x1MDk1MFx1MDk0NVx1MDk0OVx1MDk1MS1cdTA5NTRcdTA5NjJcdTA5NjNcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1cdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1URUxVR1UiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM1NVx1MGM1Nlx1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTAxXHUwOTA0XHUwOTQ2XHUwOTUwXHUwOTQ1XHUwOTQ5XHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUtBTk5BREEiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIlt7XHUwY2IwXHUwY2JjfXtcdTBjYjNcdTBjYmN9XHUwY2RlXHUwY2Q1XHUwY2Q2XHUwOTUwXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpEZXZhbmFnYXJpOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTAxXHUwOTA0XHUwOTRhXHUwOTRiXHUwOTRjXHUwOTNjXHUwOTUwXHUwOTQ0XHUwOTQ1XHUwOTQ5XHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDRjXHUwZDU3XHUwOTUwXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDk4Mlx1MDliNlx1MDllMlx1MDllM1x1MDljM1x1MDljNFx1MDlkN1x1MDk4Qlx1MDk4Q1x1MDlCN1x1MDlFMFx1MDlFMVx1MDlGMFx1MDlGMVx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1HVVJNVUtISSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBBMDJcdTBhNWNcdTBhNDdcdTBhNzBcdTBhNzFcdTBBMzNcdTBBMzVcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUVcdTBBNzJcdTBBNzNcdTBBNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLUJFTkdBTEkiLAorICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOWQ3XHUwOWUyXHUwOWUzXHUwOThjXHUwOWUxXHUwOWYwXHUwOWYxXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEE4Mlx1MGE4M1x1MEFjOVx1MEFjNVx1MGFjN1x1MEE4RFx1MEE5MVx1MEFCM1x1MEFCNVx1MEFCRFx1MEFEMF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtQkVOR0FMSSIsCisgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5YzRcdTA5ZTJcdTA5ZTNcdTA5ZjBcdTA5ZjFcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktT1JJWUEiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjM1XHUwYjcxXHUwYjVmXHUwYjU2XHUwYjMzXHUwYjNkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUYW1pbC1CRU5HQUxJIiwKKyAgICAgICAgICAiWzp0YW1pbDpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwOTgxXHUwOWJjXHUwOWMzXHUwOWM0XHUwOWUyXHUwOWUzXHUwOWYwXHUwOWYxXHUwOThCXHUwOThDXHUwOTk2XHUwOTk3XHUwOTk4XHUwOTlCXHUwOTlEXHUwOUEwXHUwOUExXHUwOUEyXHUwOUE1XHUwOUE2XHUwOUE3XHUwOUFCXHUwOUFDXHUwOUFEXHUwOUI2XHUwOURDXHUwOUREXHUwOURGXHUwOUUwXHUwOUUxXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktVGFtaWwiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzp0YW1pbDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYmM2XHUwYmM3XHUwYmNhXHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkIzXHUwQkI0XHUwQkI1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUZWx1Z3UtQkVOR0FMSSIsCisgICAgICAgICAgIls6dGVsdWd1Ol0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOWUyXHUwOWUzXHUwOWJjXHUwOWQ3XHUwOWYwXHUwOWYxXHUwOWRjXHUwOWRkXHUwOWRmXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzU1XHUwYzU2XHUwYzQ3XHUwYzQ2XHUwYzRhXHUwQzBFXHUwQzEyXHUwQzMxXHUwQzMzXHUwQzM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLUJFTkdBTEkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5ODFcdTA5ZTJcdTA5ZTNcdTA5YmNcdTA5ZDdcdTA5ZjBcdTA5ZjFcdTA5ZGNcdTA5ZGRcdTA5ZGZcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW3tcdTBjYjBcdTBjYmN9e1x1MGNiM1x1MGNiY31cdTBjYzZcdTBjY2FcdTBjZDVcdTBjZDZcdTBjYzdcdTBDOEVcdTBDOTJcdTBDQjFcdTBjYjNcdTBjYjVcdTBjZGVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5ODFcdTA5ZTJcdTA5ZTNcdTA5YmNcdTA5YzRcdTA5ZjBcdTA5ZjFcdTA5ZGNcdTA5ZGRcdTA5ZGZcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNDZcdTBkNGFcdTBkNDdcdTBkMzEtXHUwZDM1XHUwZDBlXHUwZDEyXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1HVVJNVUtISSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwYWIzXHUwYWI2XHUwQTcwXHUwYTcxXHUwYTgyXHUwYTgzXHUwYWMzXHUwYWM0XHUwYWM1XHUwYWM5XHUwYTVjXHUwYTcyXHUwYTczXHUwYTc0XHUwYThiXHUwYThkXHUwYTkxXHUwYWJkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBhNWNcdTBBNzBcdTBhNzFcdTBhNzJcdTBhNzNcdTBhNzRcdTBhODJcdTBhODNcdTBhOGJcdTBhOGNcdTBhOGRcdTBhOTFcdTBhYjNcdTBhYjZcdTBhYjdcdTBhYmRcdTBhYzNcdTBhYzRcdTBhYzVcdTBhYzlcdTBhZDBcdTBhZTBcdTBhZTFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpPUklZQTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDJcdTBhNWNcdTBhMjFcdTBhNDdcdTBhNzFcdTBiMDJcdTBiMDNcdTBiMzNcdTBiMzZcdTBiNDNcdTBiNTZcdTBiNTdcdTBCMEJcdTBCMENcdTBCMzdcdTBCM0RcdTBCNUZcdTBCNjBcdTBCNjFcdTBhMzVcdTBhNzJcdTBhNzNcdTBhNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktT1JJWUEiLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGE3MVx1MGIwMlx1MGIwM1x1MGIzM1x1MGIzNlx1MGI0M1x1MGI1Nlx1MGI1N1x1MEIwQlx1MEIwQ1x1MEIzN1x1MEIzRFx1MEI1Rlx1MEI2MFx1MEI2MVx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtR1VSTVVLSEkiLAorICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMVx1MEEwMlx1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MGE0N1x1MEExNlx1MEExN1x1MEExOFx1MEExQlx1MEExRFx1MEEyMFx1MEEyMVx1MEEyMlx1MEEyNVx1MEEyNlx1MEEyN1x1MEEyQlx1MEEyQ1x1MEEyRFx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1UQU1JTCIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjgyXHUwYmM2XHUwYmNhXHUwYmQ3XHUwYmI3XHUwYmIzXHUwYjgzXHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkI0XHUwYmI2XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtR1VSTVVLSEkiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDJcdTBhMzNcdTBhMzZcdTBhM2NcdTBhNzBcdTBhNzFcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUNcdTBBNUVcdTBBNzJcdTBBNzNcdTBBNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktVEVMVUdVIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzAyXHUwYzAzXHUwYzMzXHUwYzM2XHUwYzQ0XHUwYzQzXHUwYzQ2XHUwYzRhXHUwYzU2XHUwYzU1XHUwQzBCXHUwQzBDXHUwQzBFXHUwQzEyXHUwQzMxXHUwQzM3XHUwQzYwXHUwQzYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1HVVJNVUtISSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDFcdTBBMDJcdTBhMzNcdTBhMzZcdTBhM2NcdTBhNzBcdTBhNzFcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUNcdTBBNUVcdTBBNzJcdTBBNzNcdTBBNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIlt7XHUwY2IwXHUwY2JjfXtcdTBjYjNcdTBjYmN9XHUwYzgyXHUwYzgzXHUwY2IzXHUwY2I2XHUwY2M0XHUwY2MzXHUwY2M2XHUwY2NhXHUwY2Q1XHUwY2Q2XHUwQzhCXHUwQzhDXHUwQzhFXHUwQzkyXHUwQ0IxXHUwQ0I3XHUwY2JkXHUwQ0UwXHUwQ0UxXHUwY2RlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tR1VSTVVLSEkiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDFcdTBBMDJcdTBhNGJcdTBhNGNcdTBhMzNcdTBhMzZcdTBhM2NcdTBhNzBcdTBhNzFcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUNcdTBBNUVcdTBBNzJcdTBBNzNcdTBBNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDAyXHUwZDAzXHUwZDMzXHUwZDM2XHUwZDQzXHUwZDQ2XHUwZDRhXHUwZDRjXHUwZDU3XHUwRDBCXHUwRDBDXHUwRDBFXHUwRDEyXHUwRDMxXHUwRDM0XHUwRDM3XHUwRDYwXHUwRDYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1PUklZQSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYjU2XHUwYjU3XHUwQjBDXHUwQjVGXHUwQjYxXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBBYzRcdTBBYzVcdTBBYzlcdTBBYzdcdTBBOERcdTBBOTFcdTBBQjVcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBODFcdTBhOGNcdTBhYmNcdTBhYzNcdTBBYzRcdTBBYzVcdTBBYzlcdTBBYzdcdTBBOEJcdTBBOERcdTBBOTFcdTBBOTZcdTBBOTdcdTBBOThcdTBBOUJcdTBBOURcdTBBQTBcdTBBQTFcdTBBQTJcdTBBQTVcdTBBQTZcdTBBQTdcdTBBQUJcdTBBQUNcdTBBQURcdTBBQjZcdTBBQkRcdTBBRDBcdTBBRTBcdTBBRTFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktVEFNSUwiLAorICAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEJjNlx1MEJjYVx1MEJkN1x1MEI4RVx1MEI5Mlx1MEJBOVx1MEJCMVx1MEJCNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYWJjXHUwQWM1XHUwQWM5XHUwQThEXHUwQTkxXHUwQUJEXHUwQWQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM0Nlx1MGM0YVx1MGM1NVx1MGM1Nlx1MEMwQ1x1MEMwRVx1MEMxMlx1MEMzMVx1MEM2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1HVUpBUkFUSSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBODFcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIlt7XHUwY2IwXHUwY2JjfXtcdTBjYjNcdTBjYmN9XHUwY2M2XHUwY2NhXHUwY2Q1XHUwY2Q2XHUwQzhDXHUwQzhFXHUwQzkyXHUwQ0IxXHUwQ0RFXHUwQ0UxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tR1VKQVJBVEkiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBODFcdTBhYzRcdTBhY2JcdTBhY2NcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDQ2XHUwZDRhXHUwZDRjXHUwZDU1XHUwZDU3XHUwRDBDXHUwRDBFXHUwRDEyXHUwRDMxXHUwRDM0XHUwRDYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1PUklZQSIsCisgICAgICAgICAgIls6VEFNSUw6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQjAxXHUwYjNjXHUwYjQzXHUwYjU2XHUwQjBCXHUwQjBDXHUwQjE2XHUwQjE3XHUwQjE4XHUwQjFCXHUwQjFEXHUwQjIwXHUwQjIxXHUwQjIyXHUwQjI1XHUwQjI2XHUwQjI3XHUwQjJCXHUwQjJDXHUwQjJEXHUwQjM2XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXHUwQjYwXHUwQjYxXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLVRBTUlMIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiYzZcdTBiY2FcdTBiYzdcdTBCOEVcdTBCOTJcdTBCQTlcdTBCQjFcdTBCQjRcdTBCQjVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1PUklZQSIsCisgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGIzY1x1MGI1N1x1MGI1Nlx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Rlx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1URUxVR1UiLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjNDRcdTBjNDZcdTBjNGFcdTBjNTVcdTBjNDdcdTBDMEVcdTBDMTJcdTBDMzFcdTBDMzVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtT1JJWUEiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQjAxXHUwYjNjXHUwYjU3XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUtBTk5BREEiLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbe1x1MGNiMFx1MGNiY317XHUwY2IzXHUwY2JjfVx1MGNjNFx1MGNjNlx1MGNjYVx1MGNkNVx1MGNjN1x1MEM4RVx1MEM5Mlx1MENCMVx1MENCNVx1MENERV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLU9SSVlBIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQjAxXHUwYjNjXHUwYjU2XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXHUwYjcwXHUwYjcxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEQ0N1x1MEQ0Nlx1MEQ0YVx1MEQwRVx1MEQxMlx1MEQzMVx1MEQzNFx1MEQzNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLVRBTUlMIiwKKyAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYmQ3XHUwYmE5XHUwYmI0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLVRFTFVHVSIsCisgICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEMwMVx1MGM0M1x1MGM0NFx1MGM0Nlx1MGM0N1x1MGM1NVx1MGM1Nlx1MGM2Nlx1MEMwQlx1MEMwQ1x1MEMxNlx1MEMxN1x1MEMxOFx1MEMxQlx1MEMxRFx1MEMyMFx1MEMyMVx1MEMyMlx1MEMyNVx1MEMyNlx1MEMyN1x1MEMyQlx1MEMyQ1x1MEMyRFx1MEMzNlx1MEM2MFx1MEM2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1UQU1JTCIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgIltcdTBiZDdcdTBiYzZcdTBiYTlcdTBiYjRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtS0FOTkFEQSIsCisgICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjYzNcdTBjYzRcdTBjYzZcdTBjYzdcdTBjZDVcdTBjZDZcdTBDOEJcdTBDOENcdTBDOTZcdTBDOTdcdTBDOThcdTBDOUJcdTBDOURcdTBDQTBcdTBDQTFcdTBDQTJcdTBDQTVcdTBDQTZcdTBDQTdcdTBDQUJcdTBDQUNcdTBDQURcdTBDQjZcdTBjYmNcdTBjYmRcdTBDREVcdTBDRTBcdTBDRTFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1UQU1JTCIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGJhOV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNDNcdTBkMTJcdTBEMEJcdTBEMENcdTBEMTZcdTBEMTdcdTBEMThcdTBEMUJcdTBEMURcdTBEMjBcdTBEMjFcdTBEMjJcdTBEMjVcdTBEMjZcdTBEMjdcdTBEMkJcdTBEMkNcdTBEMkRcdTBEMzZcdTBENjBcdTBENjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtVEVMVUdVIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgIltcdTBDMDFcdTBjM2ZcdTBjNDZcdTBjNDhcdTBjNGFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLUtBTk5BREEiLAorICAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGNjOFx1MGNkNVx1MGNkNlx1MENERVx1MGNiY1x1MGNiZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLVRFTFVHVSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgIltcdTBDMDFcdTBjNDRcdTBjNGFcdTBjNGNcdTBjNGJcdTBjNTVcdTBjNTZdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNGNcdTBkNTdcdTBEMzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1LQU5OQURBIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBjYmNcdTBjYmRcdTBjYzRcdTBjYzZcdTBjY2FcdTBjY2NcdTBjY2JcdTBjZDVcdTBjZDZcdTBjRGVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tQmVuZ2FsaSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6QmVuZ2FsaTpdW1x1MDk2NFx1MDk2NV1dIiwKKyAgICAgICAgICAgICAgICJbXHUwOTY1XHUwOWYwLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1HdXJtdWtoaSIsCisgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbWzpHdXJtdWtoaTpdW1x1MDk2NFx1MDk2NV1dIiwKKyAgICAgICAgICAgICAgICJbXHUwYTAxXHUwYTAyXHUwOTY1XHUwYTcyXHUwYTczXHUwYTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLUd1amFyYXRpIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbWzpHdWphcmF0aTpdW1x1MDk2NFx1MDk2NV1dIiwKKyAgICAgICAgICAgICAgICJbXHUwOTY1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLU9yaXlhIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbWzpPcml5YTpdW1x1MDk2NFx1MDk2NV1dIiwKKyAgICAgICAgICAgICAgICJbXHUwOTY1XHUwYjcwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLVRhbWlsIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbOlRhbWlsOl0iLAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tVGVsdWd1IiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbOlRlbHVndTpdIiwKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLUthbm5hZGEiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIls6S2FubmFkYTpdIiwKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1NYWxheWFsYW0iLAorICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpNYWxheWFsYW06XSIsCisgICAgICAgICAgICAgICBudWxsLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdEludGVySW5kaWMoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGludCBudW0gPSBpbnRlckluZGljQXJyYXkubGVuZ3RoOworICAgICAgICBpZiAoaXNRdWljaygpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBvbmx5IDUgb2YgIisgaW50ZXJJbmRpY0FycmF5Lmxlbmd0aCsiIFNraXBwaW5nIHJlc3QgKHVzZSAtZSBmb3IgZXhoYXVzdGl2ZSkiKTsKKyAgICAgICAgICAgIG51bSA9IDU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzSUNVVmVyc2lvbkF0TGVhc3QoMyw4KSkgeworICAgICAgICAgICAgLy8gV2UgdGVtcG9yYXJpbHkgZmlsdGVyIGFnYWluc3QgVW5pY29kZSA0LjEsIGJ1dCB3ZSBvbmx5IGRvIHRoaXMKKyAgICAgICAgICAgIC8vIGJlZm9yZSB2ZXJzaW9uIDMuNC4KKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXN0SW50ZXJJbmRpYyBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIFs6QWdlPTQuMTpdIGZpbHRlciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBUZXN0SW50ZXJJbmRpYyBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIHNlY3Rpb24gbWFya2VkIFs6QWdlPTQuMTpdIGZpbHRlciIpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPG51bTtpKyspeworICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgaW50ZXJJbmRpY0FycmF5W2ldWzBdICsgIiBhdCBpbmRleCAiICsgaSAgICk7CisgICAgICAgICAgIGlmKHNraXBJZkJlZm9yZUlDVSgyLDgpKXsKKyAgICAgICAgICAgICAgIG5ldyBUZXN0KGludGVySW5kaWNBcnJheVtpXVswXSwgNTApCisgICAgICAgICAgICAgICAgICAgIC50ZXN0KCJbIiArIGludGVySW5kaWNBcnJheVtpXVsxXSsiICYgWzpBZ2U9My4yOl1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlsiICsgaW50ZXJJbmRpY0FycmF5W2ldWzJdKyIgJiBbOkFnZT0zLjI6XV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckluZGljQXJyYXlbaV1bM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIC8qVE9ETzogdW5jb21tZW50IHRoZSBsaW5lIGJlbG93IHdoZW4gdGhlIHRyYW5zbGl0ZXJhdG9yIGlzIGZpeGVkCisgICAgICAgICAgICAgICBuZXcgVGVzdChpbnRlckluZGljQXJyYXlbaV1bMF0sIDUwKQorICAgICAgICAgICAgICAgICAgICAudGVzdChpbnRlckluZGljQXJyYXlbaV1bMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVySW5kaWNBcnJheVtpXVsyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJJbmRpY0FycmF5W2ldWzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxJbmRpYygpKTsKKyAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAvKiBjb21tZW50IGxpbmVzIGJlbG93ICB3aGVuIHRyYW5zbGl0ZXJhdG9yIGlzIGZpeGVkICovCisgICAgICAgICAgICAgICAvLyBzdGFydAorICAgICAgICAgICAgICAgbmV3IFRlc3QoaW50ZXJJbmRpY0FycmF5W2ldWzBdLCA1MCkKKyAgICAgICAgICAgICAgIC50ZXN0KCJbIitpbnRlckluZGljQXJyYXlbaV1bMV0rIiAmWzpBZ2U9NC4xOl1dIiwKKyAgICAgICAgICAgICAgICAgICAgICJbIitpbnRlckluZGljQXJyYXlbaV1bMl0rIiAmWzpBZ2U9NC4xOl1dIiwKKyAgICAgICAgICAgICAgICAgICAgIGludGVySW5kaWNBcnJheVtpXVszXSwKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICAgICAgICAgLy9lbmQKKyAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SW50ZXJJbmRpYyIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIEluZGljCisgICAgLy8tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWwgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpcyhTdHJpbmcgc291cmNlU3RyaW5nKSB7cmV0dXJuIHRydWU7fQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxKYW1vIGV4dGVuZHMgTGVnYWwgeworICAgICAgICAvLyBhbnkgaW5pdGlhbCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWVkaWFsIChvciBpbml0aWFsKQorICAgICAgICAvLyBhbnkgbWVkaWFsIG11c3QgZm9sbG93IGFuIGluaXRpYWwgKG9yIG1lZGlhbCkKKyAgICAgICAgLy8gYW55IGZpbmFsIG11c3QgZm9sbG93IGEgbWVkaWFsIChvciBmaW5hbCkKKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpcyhTdHJpbmcgc291cmNlU3RyaW5nKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCB0OworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2VTdHJpbmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7IC8vIGRvbid0IHdvcnJ5IGFib3V0IHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChnZXRUeXBlKGRlY29tcC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBnZXRUeXBlKGRlY29tcC5jaGFyQXQoaSsxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCAhPSAwICYmIHQgIT0gMSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBnZXRUeXBlKGRlY29tcC5jaGFyQXQoaS0xKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCAhPSAwICYmIHQgIT0gMSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBnZXRUeXBlKGRlY29tcC5jaGFyQXQoaS0xKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCAhPSAxICYmIHQgIT0gMikgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGNhdGNoIChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFR5cGUoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoJ1x1MTEwMCcgPD0gYyAmJiBjIDw9ICdcdTExMTInKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKCdcdTExNjEnIDw9IGMgJiYgYyAgPD0gJ1x1MTE3NScpIHJldHVybiAxOworICAgICAgICAgICAgZWxzZSBpZiAoJ1x1MTFBOCcgPD0gYyAmJiBjICA8PSAnXHUxMUMyJykgcmV0dXJuIDI7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8vIG90aGVyCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvL3N0YXRpYyBCcmVha0l0ZXJhdG9yIHRoYWlCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKG5ldyBMb2NhbGUoInRoIiwgIlRIIikpOworICAgIC8vIGFueXRoaW5nIGlzIGxlZ2FsIGV4Y2VwdCB3b3JkIGVuZGluZyB3aXRoIExvZ2ljYWwtb3JkZXItZXhjZXB0aW9uCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbFRoYWkgZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlU3RyaW5nLmNoYXJBdChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgLSAxKTsgLy8gZG9uJ3Qgd29ycnkgYWJvdXQgc3Vycm9nYXRlcy4KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuTE9HSUNBTF9PUkRFUl9FWENFUFRJT04pKSByZXR1cm4gZmFsc2U7CisKKworICAgICAgICAgICAgLy8gZGlzYWxsb3cgYW55dGhpbmcgd2l0aCBhIHdvcmRicmVhayBiZXR3ZWVuCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHNvdXJjZVN0cmluZykgPD0gMSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB0aGFpQnJlYWsuc2V0VGV4dChzb3VyY2VTdHJpbmcpOworICAgICAgICAgICAgZm9yIChpbnQgcG9zID0gdGhhaUJyZWFrLmZpcnN0KCk7IHBvcyAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IHBvcyA9IHRoYWlCcmVhay5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zID4gMCAmJiBwb3MgPCBzb3VyY2VTdHJpbmcubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTa2lwcGluZyAiICsgVXRpbGl0eS5lc2NhcGUoc291cmNlU3RyaW5nKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBhbnl0aGluZyBpcyBsZWdhbCBleGNlcHQgdGhhdCBGaW5hbCBsZXR0ZXJzIGNhbid0IGJlIGZvbGxvd2VkIGJ5IGxldHRlcjsgTm9uRmluYWwgbXVzdCBiZQorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxIZWJyZXcgZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IEZJTkFMID0gbmV3IFVuaWNvZGVTZXQoIltcdTA1REFcdTA1RERcdTA1REZcdTA1RTNcdTA1RTVdIik7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IE5PTl9GSU5BTCA9IG5ldyBVbmljb2RlU2V0KCJbXHUwNURCXHUwNURFXHUwNUUwXHUwNUU0XHUwNUU2XSIpOworICAgICAgICBzdGF0aWMgVW5pY29kZVNldCBMRVRURVIgPSBuZXcgVW5pY29kZVNldCgiWzpsZXR0ZXI6XSIpOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpcyhTdHJpbmcgc291cmNlU3RyaW5nKSB7CisgICAgICAgICAgICBpZiAoc291cmNlU3RyaW5nLmxlbmd0aCgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICAgICAgLy8gZG9uJ3Qgd29ycnkgYWJvdXQgc3Vycm9nYXRlcy4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlU3RyaW5nLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBjaGFyIG5leHQgPSBpKzEgPT0gc291cmNlU3RyaW5nLmxlbmd0aCgpID8gJ1x1MDAwMCcgOiBzb3VyY2VTdHJpbmcuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChGSU5BTC5jb250YWlucyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExFVFRFUi5jb250YWlucyhuZXh0KSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTk9OX0ZJTkFMLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIUxFVFRFUi5jb250YWlucyhuZXh0KSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsR3JlZWsgZXh0ZW5kcyBMZWdhbCB7CisKKyAgICAgICAgYm9vbGVhbiBmdWxsOworCisgICAgICAgIHB1YmxpYyBMZWdhbEdyZWVrKGJvb2xlYW4gZnVsbCkgeworICAgICAgICAgICAgdGhpcy5mdWxsID0gZnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyIElPVEFfU1VCU0NSSVBUID0gJ1x1MDM0NSc7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IGJyZWF0aGluZyA9IG5ldyBVbmljb2RlU2V0KCJbXFx1MDMxM1xcdTAzMTQnXSIpOworICAgICAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCB2YWxpZFNlY29uZFZvd2VsID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwM0M1XFx1MDNCOVxcdTAzQTVcXHUwMzk5XSIpOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1Zvd2VsKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuICJcdTAzQjFcdTAzQjVcdTAzQjdcdTAzQjlcdTAzQkZcdTAzQzVcdTAzQzlcdTAzOTFcdTAzOTVcdTAzOTdcdTAzOTlcdTAzOUZcdTAzQTVcdTAzQTkiLmluZGV4T2YoYykgPj0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1JobyhjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiAiXHUwM0MxXHUwM0ExIi5pbmRleE9mKGMpID49IDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpcyhTdHJpbmcgc291cmNlU3RyaW5nKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2VTdHJpbmcsIE5vcm1hbGl6ZXIuTkZEKTsKKworICAgICAgICAgICAgICAgIC8vIG1vZGVybiBpcyBzaW1wbGVyOiBkb24ndCBjYXJlIGFib3V0IGFueXRoaW5nIGJ1dCBhIGdyYXZlCisgICAgICAgICAgICAgICAgaWYgKCFmdWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vaWYgKHNvdXJjZVN0cmluZy5lcXVhbHMoIlx1MDM5Q1x1MDNDMCIpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IGRlY29tcC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBleGNsdWRlIGFsbCB0aGUgYWNjZW50cworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1x1MDMxMycgfHwgYyA9PSAnXHUwMzE0JyB8fCBjID09ICdcdTAzMDAnIHx8IGMgPT0gJ1x1MDMwMicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBjID09ICdcdTAzNDInIHx8IGMgPT0gJ1x1MDM0NScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBMZWdhbCBmdWxsIEdyZWVrIGhhcyBicmVhdGhpbmcgbWFya3MgSUZGIHRoZXJlIGlzIGEgdm93ZWwgb3IgUkhPIGF0IHRoZSBzdGFydAorICAgICAgICAgICAgICAgIC8vIElGIGl0IGhhcyB0aGVtLCBpdCBoYXMgZXhhY3RseSBvbmUuCisgICAgICAgICAgICAgICAgLy8gSUYgaXQgc3RhcnRzIHdpdGggYSBSSE8sIHRoZW4gdGhlIGJyZWF0aGluZyBtYXJrIG11c3QgY29tZSBiZWZvcmUgdGhlIHNlY29uZCBsZXR0ZXIuCisgICAgICAgICAgICAgICAgLy8gSUYgaXQgc3RhcnRzIHdpdGggYSB2b3dlbCwgdGhlbiBpdCBtdXN0IGJlZm9yZSB0aGUgdGhpcmQgbGV0dGVyLgorICAgICAgICAgICAgICAgIC8vICBpdCB3aWxsIG9ubHkgY29tZSBhZnRlciB0aGUgc2Vjb25kIGlmIG9mIHRoZSBmb3JtYXQgW3Zvd2VsXSBbbm8gaW90YSBzdWJzY3JpcHQhXSBbdXBzaWxvbiBvciBpb3RhXQorICAgICAgICAgICAgICAgIC8vIFNpbmNlIHRoZXJlIGFyZSBubyBzdXJyb2dhdGVzIGluIGdyZWVrLCBkb24ndCB3b3JyeSBhYm91dCB0aGVtCisKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0SXNWb3dlbCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RJc1JobyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJvb2xlYW4gbm9MZXR0ZXJZZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGludCBicmVhdGhpbmdDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGxldHRlckNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAvL2ludCBicmVhdGhpbmdQb3NpdGlvbiA9IC0xOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBkZWNvbXAuY2hhckF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytsZXR0ZXJDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdElzVm93ZWwgJiYgIXZhbGlkU2Vjb25kVm93ZWwuY29udGFpbnMoYykgJiYgYnJlYXRoaW5nQ291bnQgPT0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vTGV0dGVyWWV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9MZXR0ZXJZZXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdElzVm93ZWwgPSBpc1Zvd2VsKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SXNSaG8gPSBpc1JobyhjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdElzUmhvICYmIGxldHRlckNvdW50ID09IDIgJiYgYnJlYXRoaW5nQ291bnQgPT0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IElPVEFfU1VCU0NSSVBUICYmIGZpcnN0SXNWb3dlbCAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlmIChicmVhdGhpbmcuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gYnJlYXRoaW5nUG9zaXRpb24gPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgKyticmVhdGhpbmdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmaXJzdElzVm93ZWwgfHwgZmlyc3RJc1JobykgcmV0dXJuIGJyZWF0aGluZ0NvdW50ID09IDE7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJyZWF0aGluZ0NvdW50ID09IDA7CisgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAiICsgdC5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3QgeworCisgICAgICAgIFByaW50V3JpdGVyIG91dDsKKworICAgICAgICBwcml2YXRlIFN0cmluZyB0cmFuc2xpdGVyYXRvcklEOworICAgICAgICBwcml2YXRlIGludCBlcnJvckxpbWl0ID0gNTAwOworICAgICAgICBwcml2YXRlIGludCBlcnJvckNvdW50ID0gMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFpckxpbWl0ICA9IDB4MTAwMDA7CisgICAgICAgIHByaXZhdGUgaW50IGRlbnNpdHkgPSAxMDA7CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlUmFuZ2U7CisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0UmFuZ2U7CisgICAgICAgIFVuaWNvZGVTZXQgdG9Tb3VyY2U7CisgICAgICAgIFVuaWNvZGVTZXQgdG9UYXJnZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgcm91bmR0cmlwRXhjbHVzaW9uczsKKworICAgICAgICBSb3VuZFRyaXBUZXN0IGxvZzsKKyAgICAgICAgTGVnYWwgbGVnYWxTb3VyY2U7CisgICAgICAgIFVuaWNvZGVTZXQgYmFkQ2hhcmFjdGVyczsKKworICAgICAgICAvKgorICAgICAgICAgKiBjcmVhdGUgYSB0ZXN0IGZvciB0aGUgZ2l2ZW4gc2NyaXB0IHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgVGVzdChTdHJpbmcgdHJhbnNsaXRlcmF0b3JJRCkgeworICAgICAgICAgICAgdGhpcyh0cmFuc2xpdGVyYXRvcklELCAxMDApOworICAgICAgICB9CisKKyAgICAgICAgVGVzdChTdHJpbmcgdHJhbnNsaXRlcmF0b3JJRCwgaW50IGRlbnMpIHsKKyAgICAgICAgICAgIHRoaXMudHJhbnNsaXRlcmF0b3JJRCA9IHRyYW5zbGl0ZXJhdG9ySUQ7CisgICAgICAgICAgICB0aGlzLmRlbnNpdHkgPSBkZW5zOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0RXJyb3JMaW1pdChpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGVycm9yTGltaXQgPSBsaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFBhaXJMaW1pdChpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHBhaXJMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkZWQgdG8gZG8gYmV0dGVyIGVxdWFsaXR5IGNoZWNrLgorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1NhbWUoU3RyaW5nIGEsIFN0cmluZyBiKSB7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzSWdub3JlQ2FzZShiKSAmJiBpc0NhbWVsKGEpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGEgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShhLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYiwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFsc0lnbm9yZUNhc2UoYikgJiYgaXNDYW1lbChhKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbmNsdWRlc1NvbWUoVW5pY29kZVNldCBzZXQsIFN0cmluZyBhKSB7CisgICAgICAgICAgICBpbnQgY3A7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGEsIGkpOworICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoY3ApKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0NhbWVsKFN0cmluZyBhKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiQ2FtZWxUZXN0Iik7CisgICAgICAgICAgICAvLyBzZWUgaWYgc3RyaW5nIGlzIG9mIHRoZSBmb3JtIGFCOyBlLmcuIGxvd2VyLCB0aGVuIHVwcGVyIG9yIHRpdGxlCisgICAgICAgICAgICBpbnQgY3A7CisgICAgICAgICAgICBib29sZWFuIGhhdmVMb3dlciA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChhLCBpKTsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIHQgKyAiICIgKyBJbnRlZ2VyLnRvU3RyaW5nKGNwLDE2KSArICIgIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShjcCkpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMb3dlcikgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlTG93ZXIpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHJvcCB0aHJvdWdoLCBzaW5jZSBzZWNvbmQgbGV0dGVyIGlzIGxvd2VyLgorICAgICAgICAgICAgICAgICAgICBjYXNlIENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZUxvd2VyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJGQUxTRSIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgb2tBbnl3YXkgPSBuZXcgVW5pY29kZVNldCgiW15bOkxldHRlcjpdXSIpOworICAgICAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBuZXZlck9rID0gbmV3IFVuaWNvZGVTZXQoIls6T3RoZXI6XSIpOworCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QoU3RyaW5nIHNvdXJjZVJhbmdlLCBTdHJpbmcgdGFyZ2V0UmFuZ2UsCisgICAgICAgICAgU3RyaW5nIHJvdW5kdHJpcEV4Y2x1c2lvbnMsIFJvdW5kVHJpcFRlc3QgbG9nLCBMZWdhbCBsZWdhbFNvdXJjZSkKKyAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICB0ZXN0KHNvdXJjZVJhbmdlLCB0YXJnZXRSYW5nZSwgc291cmNlUmFuZ2UsIHJvdW5kdHJpcEV4Y2x1c2lvbnMsIGxvZywgbGVnYWxTb3VyY2UpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdpbGwgdGVzdCAKKyAgICAgICAgICogdGhhdCBldmVyeXRoaW5nIGluIHNvdXJjZVJhbmdlIG1hcHMgdG8gdGFyZ2V0UmFuZ2UsCisgICAgICAgICAqIHRoYXQgZXZlcnl0aGluZyBpbiB0YXJnZXRSYW5nZSBtYXBzIHRvIGJhY2t0b1NvdXJjZVJhbmdlCisgICAgICAgICAqIHRoYXQgZXZlcnl0aGluZyByb3VuZHRyaXBzIGZyb20gdGFyZ2V0IC0+IHNvdXJjZSAtPiB0YXJnZXQsIGV4Y2VwdCByb3VuZHRyaXBFeGNlcHRpb25zCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0KFN0cmluZyBzb3VyY2VSYW5nZSwgU3RyaW5nIHRhcmdldFJhbmdlLCBTdHJpbmcgYmFja3RvU291cmNlUmFuZ2UsCisgICAgICAgICAgU3RyaW5nIHJvdW5kdHJpcEV4Y2x1c2lvbnMsIFJvdW5kVHJpcFRlc3QgbG9nLCBMZWdhbCBsZWdhbFNvdXJjZSkKKyAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgICAgIHRoaXMubGVnYWxTb3VyY2UgPSBsZWdhbFNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlUmFuZ2UgPSBuZXcgVW5pY29kZVNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnNvdXJjZVJhbmdlLnJlbW92ZUFsbChuZXZlck9rKTsKKworICAgICAgICAgICAgdGhpcy50YXJnZXRSYW5nZSA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0UmFuZ2UucmVtb3ZlQWxsKG5ldmVyT2spOworCisgICAgICAgICAgICB0aGlzLnRvU291cmNlID0gbmV3IFVuaWNvZGVTZXQoYmFja3RvU291cmNlUmFuZ2UpOworICAgICAgICAgICAgdGhpcy50b1NvdXJjZS5hZGRBbGwob2tBbnl3YXkpOworCisgICAgICAgICAgICB0aGlzLnRvVGFyZ2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgdGhpcy50b1RhcmdldC5hZGRBbGwob2tBbnl3YXkpOworCisgICAgICAgICAgICBpZiAocm91bmR0cmlwRXhjbHVzaW9ucyAhPSBudWxsICYmIHJvdW5kdHJpcEV4Y2x1c2lvbnMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdGhpcy5yb3VuZHRyaXBFeGNsdXNpb25zID0gbmV3IFVuaWNvZGVTZXQocm91bmR0cmlwRXhjbHVzaW9ucyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMgPSBuZXcgVW5pY29kZVNldCgpOyAvLyBlbXB0eQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLmxvZyA9IGxvZzsKKworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJTb3VyY2U6ICAiICsgdGhpcy5zb3VyY2VSYW5nZSkpOworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJUYXJnZXQ6ICAiICsgdGhpcy50YXJnZXRSYW5nZSkpOworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJFeGNsdWRlOiAiICsgdGhpcy5yb3VuZHRyaXBFeGNsdXNpb25zKSk7CisgICAgICAgICAgICBpZiAobG9nLmlzUXVpY2soKSkgbG9nLmxvZ2xuKCJBYmJyZXZpYXRlZCBUZXN0Iik7CisKKyAgICAgICAgICAgIGJhZENoYXJhY3RlcnMgPSBuZXcgVW5pY29kZVNldCgiWzpvdGhlcjpdIik7CisKKyAgICAgICAgICAgIC8vIG1ha2UgYSBVVEYtOCBvdXRwdXQgZmlsZSB3ZSBjYW4gcmVhZCB3aXRoIGEgYnJvd3NlcgorCisgICAgICAgICAgICAvLyBub3RlOiBjaGVjayB0aGF0IGV2ZXJ5IHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIHRoZSBudWxsIHN0cmluZyBjb3JyZWN0bHkhCisKKyAgICAgICAgLy8ge2RsZn0gcmVvcmdhbml6ZSBzbyBjYW4gcnVuIHRlc3QgaW4gcHJvdGVjdGVkIHNlY3VyaXR5IGVudmlyb25tZW50CisvLyAgICAgICAgICAgICAgU3RyaW5nIGxvZ0ZpbGVOYW1lID0gInRlc3RfIiArIHRyYW5zbGl0ZXJhdG9ySUQucmVwbGFjZSgnLycsICdfJykgKyAiLmh0bWwiOworCisvLyAgICAgICAgICAgICAgRmlsZSBsZiA9IG5ldyBGaWxlKGxvZ0ZpbGVOYW1lKTsKKy8vICAgICAgICAgICAgICBsb2cubG9nbG4oIkNyZWF0aW5nIGxvZyBmaWxlICIgKyBsZi5nZXRBYnNvbHV0ZUZpbGUoKSk7CisKKy8vICAgICAgICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisvLyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGxvZ0ZpbGVOYW1lKSwgIlVURjgiKSwgNCoxMDI0KSk7CisKKyAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhc3QgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgYmFzdCwgIlVURjgiKSwgNCoxMDI0KSk7CisgICAgICAgICAgICAvL291dC53cml0ZSgnXHVGRkVGJyk7ICAgIC8vIEJPTQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU5cIj4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8SFRNTD48SEVBRD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8TUVUQSBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIgaHR0cC1lcXVpdj1Db250ZW50LVR5cGU+PC9IRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxCT0RZIGJnY29sb3I9JyNGRkZGRkYnIHN0eWxlPSdmb250LWZhbWlseTogQXJpYWwgVW5pY29kZSBNUyc+Iik7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdGVzdDIoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRlc3RUcnVuY2F0ZWQgZSkgeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8L0JPRFk+PC9IVE1MPiIpOworICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisKKyAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gMCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIGxvZ0ZpbGVOYW1lID0gInRlc3RfIiArIHRyYW5zbGl0ZXJhdG9ySUQucmVwbGFjZSgnLycsICdfJykgKyAiLmh0bWwiOworICAgICAgICAgICAgRmlsZSBsZiA9IG5ldyBGaWxlKGxvZ0ZpbGVOYW1lKTsKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ3JlYXRpbmcgbG9nIGZpbGUgIiArIGxmLmdldEFic29sdXRlRmlsZSgpKTsKKyAgICAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZm9zID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0obGYpOworICAgICAgICAgICAgZm9zLndyaXRlKGJhc3QudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICBmb3MuY2xvc2UoKTsKKyAgICAgICAgICAgIGxvZy5lcnJsbih0cmFuc2xpdGVyYXRvcklEICsgIiBlcnJvcnM6ICIKKyAgICAgICAgICAgICAgICAgICsgZXJyb3JDb3VudCArIChlcnJvckNvdW50ID4gZXJyb3JMaW1pdCA/ICIgKGF0IGxlYXN0ISkiIDogIiIpCisgICAgICAgICAgICAgICAgICArICIsIHNlZSAiICsgbGYuZ2V0QWJzb2x1dGVGaWxlKCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2cuZXJybG4odHJhbnNsaXRlcmF0b3JJRCArICIgZXJyb3JzOiAiCisgICAgICAgICAgICAgICAgICArIGVycm9yQ291bnQgKyAoZXJyb3JDb3VudCA+IGVycm9yTGltaXQgPyAiIChhdCBsZWFzdCEpIiA6ICIiKQorICAgICAgICAgICAgICAgICAgKyAiLCBubyBsb2cgcHJvdmlkZWQgZHVlIHRvIHByb3RlY3RlZCB0ZXN0IGRvbWFpbiIpOworICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZy5sb2dsbih0cmFuc2xpdGVyYXRvcklEICsgIiBvayIpOworLy8gICAgICAgICAgICAgICAgICBuZXcgRmlsZShsb2dGaWxlTmFtZSkuZGVsZXRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBvayBpZiBhdCBsZWFzdCBvbmUgaXMgbm90IGVxdWFsCisgICAgICAgIHB1YmxpYyBib29sZWFuIGNoZWNrSXJyZWxldmFudHMoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIGlycmVsZXZhbnRzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlycmVsZXZhbnRzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBpcnJlbGV2YW50cy5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgaWYgKGNzLmVxdWFscyh0YXJnKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0MigpIHsKKworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3Igc291cmNlVG9UYXJnZXQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFuc2xpdGVyYXRvcklEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRhcmdldFRvU291cmNlID0gc291cmNlVG9UYXJnZXQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvciB1c2kyID0gbmV3IEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yKCk7CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCBhdCBsZWFzdCBvbmUgaXJyZXZhbnQgY2hhcmFjdGVycyBpcyBub3QgTkZDJ2VkIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgYXQgbGVhc3Qgb25lIGlycmV2YW50IGNoYXJhY3RlcnMgaXMgbm90IE5GQydlZDwvaDM+Iik7CisKKyAgICAgICAgICAgIFN0cmluZyBpcnJlbGV2YW50cyA9ICJcdTIwMDBcdTIwMDFcdTIxMjZcdTIxMkFcdTIxMkJcdTIzMjkiOyAvLyBzdHJpbmcgaXMgZnJvbSBORkNfTk8gaW4gdGhlIFVDRAorCisgICAgICAgICAgICBpZiAoIWNoZWNrSXJyZWxldmFudHMoc291cmNlVG9UYXJnZXQsIGlycmVsZXZhbnRzKSkgeworICAgICAgICAgICAgICAgIGxvZ0ZhaWxzKCJTb3VyY2UtVGFyZ2V0LCBNdXN0IG5vdCBORkMgZXZlcnl0aGluZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjaGVja0lycmVsZXZhbnRzKHRhcmdldFRvU291cmNlLCBpcnJlbGV2YW50cykpIHsKKyAgICAgICAgICAgICAgICBsb2dGYWlscygiVGFyZ2V0LVNvdXJjZSwgaXJyZWxldmFudHMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKEVYVFJBX1RFU1RTKSB7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHRvUnVsZXMgd29ya3MiKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSAiIjsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzb3VyY2VUb1RhcmdldDI7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGFyZ2V0VG9Tb3VyY2UyOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gc291cmNlVG9UYXJnZXQudG9SdWxlcyhmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRvVGFyZ2V0MiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiczJ0MiIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBSSU5UX1JVTEVTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkZvcndhcmQgUnVsZXM6PC9oMz48cD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gdGFyZ2V0VG9Tb3VyY2UudG9SdWxlcyhmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRvU291cmNlMiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygidDJzMiIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBSSU5UX1JVTEVTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkJhY2t3YXJkIFJ1bGVzOjwvaDM+PHA+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzLCAiXG4iLCAiPGJyPlxuIikpOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkJyb2tlbiBSdWxlczo8L2gzPjxwPiIpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzLCAiXG4iLCAiPGJyPlxuIikpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9wPiIpOworICAgICAgICAgICAgICAgICAgICBvdXQuZmx1c2goKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Um91bmR0cmlwIEV4Y2x1c2lvbnM6ICIgKyBuZXcgVW5pY29kZVNldChyb3VuZHRyaXBFeGNsdXNpb25zKSArICI8L2gzPiIpOworICAgICAgICAgICAgICAgb3V0LmZsdXNoKCk7CisKKyAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHNvdXJjZSAtPiB0YXJnZXQgLT4gc291cmNlIik7CisgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCBzb3VyY2UgLT4gdGFyZ2V0IC0+IHNvdXJjZTwvaDM+Iik7CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldDIudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZy5lcXVhbHModGFyZzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dUb1J1bGVzRmFpbHMoIlNvdXJjZS1UYXJnZXQsIHRvUnVsZXMiLCBjcywgdGFyZywgdGFyZzIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHRhcmdldCAtPiBzb3VyY2UgLT4gdGFyZ2V0Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHRhcmdldCAtPiBzb3VyY2UgLT4gdGFyZ2V0PC9oMz4iKTsKKyAgICAgICAgICAgICAgIHVzaS5yZXNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcyA9IFVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdGFyZ2V0VG9Tb3VyY2UudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHRhcmdldFRvU291cmNlMi50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1RvUnVsZXNGYWlscygiVGFyZ2V0LVNvdXJjZSwgdG9SdWxlcyIsIGNzLCB0YXJnLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gU2luZ2xlcyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gU2luZ2xlczwvaDM+Iik7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZmFpbFNvdXJjZVRhcmcgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgdXNpLnJlc2V0KHNvdXJjZVJhbmdlKTsKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworCisgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgIGlmICghdG9UYXJnZXQuY29udGFpbnNBbGwodGFyZykKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnRCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1dyb25nU2NyaXB0KCJTb3VyY2UtVGFyZ2V0IiwgY3MsIHRhcmcsIHRvVGFyZ2V0LCBiYWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxTb3VyY2VUYXJnLmFkZChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgU3RyaW5nIGNzMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcyID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjczIpOworICAgICAgICAgICAgICAgIGlmICghdGFyZy5lcXVhbHModGFyZzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ05vdENhbm9uaWNhbCgiU291cmNlLVRhcmdldCIsIGNzLCB0YXJnLCBjczIsIHRhcmcyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCBzb3VyY2UgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHRhcmdldCAtIERvdWJsZXMiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCBzb3VyY2UgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHRhcmdldCAtIERvdWJsZXM8L2gzPiIpOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICFzb3VyY2VSYW5nZS5jb250YWlucyhjKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGZhaWxTb3VyY2VUYXJnLmdldChjKSkgY29udGludWU7CisKKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlUmFuZ2VNaW51c0ZhaWx1cmVzID0gbmV3IFVuaWNvZGVTZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgc291cmNlUmFuZ2VNaW51c0ZhaWx1cmVzLnJlbW92ZUFsbChmYWlsU291cmNlVGFyZyk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gcXVpY2tSdCA9IGxvZy5nZXRJbmNsdXNpb24oKSA8IDEwOworCisgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2VNaW51c0ZhaWx1cmVzLCBxdWlja1J0LCBkZW5zaXR5KTsKKworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIGZvciAoY2hhciBkID0gMDsgZCA8IDB4RkZGRjsgKytkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChUZXN0VXRpbGl0eS5pc1VuYXNzaWduZWQoZCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICFzb3VyY2VSYW5nZS5jb250YWlucyhkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsU291cmNlVGFyZy5nZXQoZCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdXNpMi5yZXNldChzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaTIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gdXNpMi5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKSArIFVURjE2LnZhbHVlT2YoZCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdG9UYXJnZXQuY29udGFpbnNBbGwodGFyZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdEID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZ0QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nV3JvbmdTY3JpcHQoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZywgdG9UYXJnZXQsIGJhZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjczIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjcywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzMik7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZy5lcXVhbHModGFyZzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dOb3RDYW5vbmljYWwoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZywgY3MyLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIFNpbmdsZXMiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIFNpbmdsZXM8L2gzPiIpOworCisgICAgICAgICAgICBVbmljb2RlU2V0IGZhaWxUYXJnU291cmNlID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZmFpbFJvdW5kID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICAgICAgLypmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmIChUZXN0VXRpbGl0eS5pc1VuYXNzaWduZWQoYykgfHwKKyAgICAgICAgICAgICAgICAgICAgIXRhcmdldFJhbmdlLmNvbnRhaW5zKGMpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgdXNpLnJlc2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNzOworICAgICAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgICAgIGlmKHVzaS5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORyl7CisgICAgICAgICAgICAgICAgICAgIGNzID0gdXNpLnN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChjcywwKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIGNzID1VVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdGFyZ2V0VG9Tb3VyY2UudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKHRhcmcpOworCisgICAgICAgICAgICAgICAgaWYgKCF0b1NvdXJjZS5jb250YWluc0FsbCh0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZykpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdEID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmdEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlVuaWNvZGVTZXQgdGVtcCA9ICovbmV3IFVuaWNvZGVTZXQoKS5hZGRBbGwodGFyZ0QpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nV3JvbmdTY3JpcHQoIlRhcmdldC1Tb3VyY2UiLCBjcywgdGFyZywgdG9Tb3VyY2UsIGJhZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbFRhcmdTb3VyY2UuYWRkKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghaXNTYW1lKGNzLCByZXZlcnNlKSAmJiAhcm91bmR0cmlwRXhjbHVzaW9ucy5jb250YWlucyhjKQorICAgICAgICAgICAgICAgICAgICAmJiAhcm91bmR0cmlwRXhjbHVzaW9ucy5jb250YWlucyhjcykpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nUm91bmRUcmlwRmFpbHVyZShjcyx0YXJnZXRUb1NvdXJjZS5nZXRJRCgpLCB0YXJnLHNvdXJjZVRvVGFyZ2V0LmdldElEKCksIHJldmVyc2UpOworICAgICAgICAgICAgICAgICAgICBmYWlsUm91bmQuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcyID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIFN0cmluZyByZXZlcnNlMiA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZzIpOworICAgICAgICAgICAgICAgIGlmICghcmV2ZXJzZS5lcXVhbHMocmV2ZXJzZTIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ05vdENhbm9uaWNhbCgiVGFyZ2V0LVNvdXJjZSIsIHRhcmcsIHJldmVyc2UsIHRhcmcyLCByZXZlcnNlMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdGFyZ2V0IGNoYXJhY3RlcnMgY29udmVydCB0byBzb3VyY2UgYW5kIGJhY2sgLSBEb3VibGVzIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgdGFyZ2V0IGNoYXJhY3RlcnMgY29udmVydCB0byBzb3VyY2UgYW5kIGJhY2sgLSBEb3VibGVzPC9oMz4iKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0UmFuZ2VNaW51c0ZhaWx1cmVzID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgdGFyZ2V0UmFuZ2VNaW51c0ZhaWx1cmVzLnJlbW92ZUFsbChmYWlsVGFyZ1NvdXJjZSk7CisgICAgICAgICAgICB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxSb3VuZCk7CisKKyAgICAgICAgICAgIC8vY2hhcltdIGJ1ZiA9IG5ldyBjaGFyWzRdOyAvLyBtYXhpbXVtIHdlIGNhbiBoYXZlIHdpdGggMiBjb2RlIHBvaW50cworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIGZvciAoY2hhciBjID0gMDsgYyA8IDB4RkZGRjsgKytjKSB7CisgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChjKSB8fAorICAgICAgICAgICAgICAgICAgICAhdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICB1c2kucmVzZXQodGFyZ2V0UmFuZ2VNaW51c0ZhaWx1cmVzLCBxdWlja1J0LCBkZW5zaXR5KTsKKworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICBpZiAoKytjb3VudCA+IHBhaXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQgYXQgIiArIHBhaXJMaW1pdCArICIgeCA2NGsgcGFpcnMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9sb2cubG9nKFRlc3RVdGlsaXR5LmhleChjKSk7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIGZvciAoY2hhciBkID0gMDsgZCA8IDB4RkZGRjsgKytkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChUZXN0VXRpbGl0eS5pc1VuYXNzaWduZWQoZCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICF0YXJnZXRSYW5nZS5jb250YWlucyhkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHVzaTIucmVzZXQodGFyZ2V0UmFuZ2VNaW51c0ZhaWx1cmVzLCBxdWlja1J0LCBkZW5zaXR5KTsKKworICAgICAgICAgICAgICAgIHdoaWxlICh1c2kyLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZCA9IHVzaTIuY29kZXBvaW50OworICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IDApIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcyA9IFVURjE2LnZhbHVlT2YoYykgKyBVVEYxNi52YWx1ZU9mKGQpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHRhcmdldFRvU291cmNlLnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZSA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZyk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1NvdXJjZS5jb250YWluc0FsbCh0YXJnKSAvKiYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhjKSAmJiAhZmFpbFRhcmdTb3VyY2UuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmdEKSAvKiYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhjKSAmJiAhZmFpbFRhcmdTb3VyY2UuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiVGFyZ2V0LVNvdXJjZSIsIGNzLCB0YXJnLCB0b1NvdXJjZSwgYmFkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1NhbWUoY3MsIHJldmVyc2UpIC8qJiYgIWZhaWxSb3VuZC5jb250YWlucyhjKSAmJiAhZmFpbFJvdW5kLmNvbnRhaW5zKGQpKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhcm91bmR0cmlwRXhjbHVzaW9ucy5jb250YWlucyhjKQorICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXJvdW5kdHJpcEV4Y2x1c2lvbnMuY29udGFpbnMoY3MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dSb3VuZFRyaXBGYWlsdXJlKGNzLHRhcmdldFRvU291cmNlLmdldElEKCksIHRhcmcsc291cmNlVG9UYXJnZXQuZ2V0SUQoKSwgcmV2ZXJzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXZlcnNlMiA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZzIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXJldmVyc2UuZXF1YWxzKHJldmVyc2UyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJUYXJnZXQtU291cmNlIiwgdGFyZywgcmV2ZXJzZSwgdGFyZzIsIHJldmVyc2UyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5sb2dsbigiIik7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmcgaW5mbyhTdHJpbmcgcykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlx1MjAwRSIpLmFwcGVuZChzKS5hcHBlbmQoIlx1MjAwRSAoIikuYXBwZW5kKFRlc3RVdGlsaXR5LmhleChzKSkuYXBwZW5kKCIvIik7CisgICAgICAgICAgICBpZiAoZmFsc2UpIHsgLy8gYXBwZW5kIGFnZSwgYXMgYSBjaGVjaworICAgICAgICAgICAgICAgIGludCBjcCA9IDA7ICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHJlc3VsdC5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVUNoYXJhY3Rlci5nZXRBZ2UoY3ApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIpIik7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCB2b2lkIGxvZ1dyb25nU2NyaXB0KFN0cmluZyBsYWJlbCwgU3RyaW5nIGZyb20sIFN0cmluZyB0bywgCisgICAgICAgICAgVW5pY29kZVNldCBzaG91bGRDb250YWluQWxsLCBVbmljb2RlU2V0IHNob3VsZE5vdENvbnRhaW5BbnkpIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIHRvRCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRvLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHRlbXAgPSBuZXcgVW5pY29kZVNldCgpLmFkZEFsbCh0b0QpOworICAgICAgICAgICAgVW5pY29kZVNldCBiYWQgPSBuZXcgVW5pY29kZVNldChzaG91bGROb3RDb250YWluQW55KS5yZXRhaW5BbGwodGVtcCkKKyAgICAgICAgICAgICAgICAuYWRkQWxsKG5ldyBVbmljb2RlU2V0KHRlbXApLnJlbW92ZUFsbChzaG91bGRDb250YWluQWxsKSk7CisKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YnI+RmFpbCAiICsgbGFiZWwgKyAiOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8oZnJvbSkgKyAiID0+ICIgKyBpbmZvKHRvKSArICIgIiArIGJhZAorICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgdm9pZCBsb2dOb3RDYW5vbmljYWwoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCBTdHJpbmcgZnJvbUNhbiwgU3RyaW5nIHRvQ2FuKSB7CisgICAgICAgICAgICBpZiAoKytlcnJvckNvdW50ID4gZXJyb3JMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZDsgdG9vIG1hbnkgZmFpbHVyZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YnI+RmFpbCAoY2FuLmVxdWl2KSAiICsgbGFiZWwgKyAiOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8oZnJvbSkgKyAiID0+ICIgKyBpbmZvKHRvKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIC0tICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tQ2FuKSArICIgPT4gIiArIGluZm8odG9DYW4pICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dGYWlscyhTdHJpbmcgbGFiZWwpIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsIChjYW4uZXF1aXYpIiArIGxhYmVsKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nVG9SdWxlc0ZhaWxzKFN0cmluZyBsYWJlbCwgU3RyaW5nIGZyb20sIFN0cmluZyB0bywgU3RyaW5nIHRvQ2FuKSB7CisgICAgICAgICAgICBpZiAoKytlcnJvckNvdW50ID4gZXJyb3JMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZDsgdG9vIG1hbnkgZmFpbHVyZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YnI+RmFpbCAiICsgbGFiZWwgKyAiOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8oZnJvbSkgKyAiID0+ICIgKyBpbmZvKHRvKSArICIsICIgKyBpbmZvKHRvQ2FuKQorICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nUm91bmRUcmlwRmFpbHVyZShTdHJpbmcgZnJvbSxTdHJpbmcgdG9JRCwgU3RyaW5nIHRvLFN0cmluZyBiYWNrSUQsIFN0cmluZyBiYWNrKSB7CisgICAgICAgICAgICBpZiAoIWxlZ2FsU291cmNlLmlzKGZyb20pKSByZXR1cm47IC8vIHNraXAgaWxsZWdhbHMKKworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgUm91bmR0cmlwOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8oZnJvbSkgKyAiICIrdG9JRCsiID0+ICIgKyBpbmZvKHRvKSArICIgIiArIGJhY2tJRCsiID0+ICIgKyBpbmZvKGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hhcmFjdGVycyB0byBmaWx0ZXIgZm9yIHNvdXJjZS10YXJnZXQgbWFwcGluZyBjb21wbGV0ZW5lc3MKKyAgICAgICAgICogVHlwaWNhbGx5IGlzIGJhc2UgYWxwaGFiZXQsIG1pbnVzIGV4dGVuZGVkIGNoYXJhY3RlcnMKKyAgICAgICAgICogRGVmYXVsdCBpcyBBU0NJSSBsZXR0ZXJzIGZvciBMYXRpbgorICAgICAgICAgKi8KKyAgICAgICAgIC8qCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzU291cmNlKGNoYXIgYykgeworICAgICAgICAgICAgaWYgKCFzb3VyY2VSYW5nZS5jb250YWlucyhjKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGNoZWNrIGZvciB0YXJnZXQgYmFjayB0byBzb3VyY2UgbWFwcGluZy4KKyAgICAgICAgICogVHlwaWNhbGx5IHRoZSBzYW1lIGFzIHRoZSB0YXJnZXQgc2NyaXB0LCBwbHVzIHB1bmN0dWF0aW9uCisgICAgICAgICAqLworICAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNSZWNlaXZpbmdTb3VyY2UoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoIXRhcmdldFJhbmdlLmNvbnRhaW5zKGMpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGZpbHRlciBmb3IgdGFyZ2V0LXNvdXJjZSBtYXBwaW5nCisgICAgICAgICAqIFR5cGljYWxseSBpcyBiYXNlIGFscGhhYmV0LCBtaW51cyBleHRlbmRlZCBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNUYXJnZXQoY2hhciBjKSB7CisgICAgICAgICAgICBieXRlIHNjcmlwdCA9IFRlc3RVdGlsaXR5LmdldFNjcmlwdChjKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHQgIT0gdGFyZ2V0U2NyaXB0KSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIVRlc3RVdGlsaXR5LmlzTGV0dGVyKGMpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAodGFyZ2V0UmFuZ2UgIT0gbnVsbCAmJiAhdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hhcmFjdGVycyB0byBjaGVjayBmb3IgdGFyZ2V0LXNvdXJjZSBtYXBwaW5nCisgICAgICAgICAqIFR5cGljYWxseSB0aGUgc2FtZSBhcyB0aGUgc291cmNlIHNjcmlwdCwgcGx1cyBwdW5jdHVhdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNSZWNlaXZpbmdUYXJnZXQoY2hhciBjKSB7CisgICAgICAgICAgICBieXRlIHNjcmlwdCA9IFRlc3RVdGlsaXR5LmdldFNjcmlwdChjKTsKKyAgICAgICAgICAgIHJldHVybiAoc2NyaXB0ID09IHRhcmdldFNjcmlwdCB8fCBzY3JpcHQgPT0gVGVzdFV0aWxpdHkuQ09NTU9OX1NDUklQVCk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGlzU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXNTb3VyY2Uocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNUYXJnZXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1RhcmdldChzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBpc1JlY2VpdmluZ1NvdXJjZShTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzUmVjZWl2aW5nU291cmNlKHMuY2hhckF0KGkpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGlzUmVjZWl2aW5nVGFyZ2V0KFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXNSZWNlaXZpbmdUYXJnZXQocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIHN0YXRpYyBjbGFzcyBUZXN0VHJ1bmNhdGVkIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICBUZXN0VHJ1bmNhdGVkKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihtc2cpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvLyAgc3RhdGljIGNsYXNzIFRlc3RIYW5ndWwgZXh0ZW5kcyBUZXN0IHsKKy8vICAgICAgVGVzdEhhbmd1bCAoKSB7CisvLyAgICAgICAgICBzdXBlcigiSmFtby1IYW5ndWwiLCBUZXN0VXRpbGl0eS5KQU1PX1NDUklQVCwgVGVzdFV0aWxpdHkuSEFOR1VMX1NDUklQVCk7CisvLyAgICAgIH0KKy8vCisvLyAgICAgIHB1YmxpYyBib29sZWFuIGlzU291cmNlKGNoYXIgYykgeworLy8gICAgICAgICAgaWYgKDB4MTExMyA8PSBjICYmIGMgPD0gMHgxMTYwKSByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgICBpZiAoMHgxMTc2IDw9IGMgJiYgYyA8PSAweDExRjkpIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgIGlmICgweDMxMzEgPD0gYyAmJiBjIDw9IDB4MzE4RSkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgcmV0dXJuIHN1cGVyLmlzU291cmNlKGMpOworLy8gICAgICB9CisvLyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU0MTE0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KKworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiVHJhbnNsaXRlcmF0b3JUZXN0IiwKKyAgICAgICAgICAgICJVbmljb2RlU2V0VGVzdCIsCisgICAgICAgICAgICAiQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QiLAorICAgICAgICAgICAgIkphbW9UZXN0IiwKKyAgICAgICAgICAgICJFcnJvclRlc3QiLAorICAgICAgICAgICAgIlJvdW5kVHJpcFRlc3QiLAorICAgICAgICAgICAgIlJlcGxhY2VhYmxlVGVzdCIsCisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlRyYW5zbGl0IjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0VXRpbGl0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJmMjNjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0VXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsNDQ0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0VXRpbGl0eSB7CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwIi5zdWJzdHJpbmcoMCw0LWZvby5sZW5ndGgoKSkgKyBmb287CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChpbnQgY2gpIHsKKyAgICAgICAgU3RyaW5nIGZvbyA9IEludGVnZXIudG9TdHJpbmcoY2gsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIHJldHVybiAiMDAwMDAwMDAiLnN1YnN0cmluZygwLDQtZm9vLmxlbmd0aCgpKSArIGZvbzsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICByZXR1cm4gaGV4KHMsIiwiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzLCBTdHJpbmcgc2VwKSB7CisgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICBTdHJpbmcgcmVzdWx0ID0gaGV4KHMuY2hhckF0KDApKTsKKyAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIHJlc3VsdCArPSBzZXA7CisgICAgICAgIHJlc3VsdCArPSBoZXgocy5jaGFyQXQoaSkpOworICAgICAgfQorICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdG9CZVJlcGxhY2VkLCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBsZW4gPSB0b0JlUmVwbGFjZWQubGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UucmVnaW9uTWF0Y2hlcyhmYWxzZSwgaSwgdG9CZVJlcGxhY2VkLCAwLCBsZW4pKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgICAgIGkgKz0gbGVuIC0gMTsgLy8gbWludXMgb25lLCBzaW5jZSB3ZSB3aWxsIGluY3JlbWVudAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChzb3VyY2UuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlQWxsKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLGkpOworICAgICAgICAgICAgaWYgKHNldC5jb250YWlucyhjcCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHRzLCBjcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdHMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLy8gQ09NTUVOVEVEIE9VVCBBTEwgVEhFIE9MRCBTQ1JJUFQgU1RVRkYKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBnZXRTY3JpcHQoY2hhciBjKSB7CisgICAgICByZXR1cm4gZ2V0U2NyaXB0KGdldEJsb2NrKGMpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldFNjcmlwdChieXRlIGJsb2NrKSB7CisgICAgICByZXR1cm4gYmxvY2tUb1NjcmlwdFtibG9ja107CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBnZXRCbG9jayhjaGFyIGMpIHsKKyAgICAgIGludCBpbmRleCA9IGMgPj4gNzsKKyAgICAgIGJ5dGUgYmxvY2sgPSBjaGFyVG9CbG9ja1tpbmRleF07CisgICAgICB3aGlsZSAoYmxvY2sgPCAwKSB7IC8vIHRha2UgY2FyZSBvZiBleGNlcHRpb25zLCBibG9ja3Mgc3BsaXQgYWNyb3NzIDEyOCBib3VuZGFyaWVzCisgICAgICAgICAgaW50W10gdHVwbGUgPSBzcGxpdFstYmxvY2stMV07CisgICAgICAgICAgaWYgKGMgPCB0dXBsZVswXSkgYmxvY2sgPSAoYnl0ZSl0dXBsZVsxXTsKKyAgICAgICAgICBlbHNlIGJsb2NrID0gKGJ5dGUpdHVwbGVbMl07CisgICAgICB9CisgICAgICByZXR1cm4gYmxvY2s7CisgICAgfQorICAgICAgICAgICAgICAgCisgICAgLy8gcmV0dXJucyBuZXh0IGxldHRlciBvZiBzY3JpcHQsIG9yIDB4RkZGRiBpZiBkb25lCisgICAgCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldE5leHRMZXR0ZXIoY2hhciBjLCBieXRlIHNjcmlwdCkgeworICAgICAgICB3aGlsZSAoYyA8IDB4RkZGRikgeworICAgICAgICAgICAgKytjOworICAgICAgICAgICAgaWYgKGdldFNjcmlwdChjKSA9PSBzY3JpcHQgJiYgQ2hhcmFjdGVyLmlzTGV0dGVyKGMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorICAgIAorICAgIC8vIFN1cHBsZW1lbnRzIHRvIENoYXJhY3RlciBtZXRob2RzOyB0aGVzZSBtZXRob2RzIGdvIHRocm91Z2gKKyAgICAvLyBVQ2hhcmFjdGVyIGlmIHBvc3NpYmxlLiAgSWYgbm90LCB0aGV5IGZhbGwgYmFjayB0byBDaGFyYWN0ZXIuCisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbmFzc2lnbmVkKGNoYXIgYykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRDsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5VTkFTU0lHTkVEOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xldHRlcihjaGFyIGMpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmlzTGV0dGVyKGMpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmlzTGV0dGVyKGMpOworICAgIH0KKworICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJCbG9ja3M6ICIpOworICAgIGJ5dGUgbGFzdGJsb2NrID0gLTEyODsKKyAgICBmb3IgKGNoYXIgY2MgPSAwOyBjYyA8IDB4RkZGRjsgKytjYykgeworICAgICAgYnl0ZSBibG9jayA9IFRlc3RVdGlsaXR5LmdldEJsb2NrKGNjKTsKKyAgICAgIGlmIChibG9jayAhPSBsYXN0YmxvY2spIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFRlc3RVdGlsaXR5LmhleChjYykgKyAiXHQiICsgYmxvY2spOworICAgICAgICBsYXN0YmxvY2sgPSBibG9jazsKKyAgICAgIH0KKyAgICB9CisgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJTY3JpcHRzOiAiKTsKKyAgICBieXRlIGxhc3RTY3JpcHQgPSAtMTI4OworICAgIGZvciAoY2hhciBjYyA9IDA7IGNjIDwgMHhGRkZGOyArK2NjKSB7CisgICAgICBieXRlIHNjcmlwdCA9IFRlc3RVdGlsaXR5LmdldFNjcmlwdChjYyk7CisgICAgICBpZiAoc2NyaXB0ICE9IGxhc3RTY3JpcHQpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFRlc3RVdGlsaXR5LmhleChjYykgKyAiXHQiICsgc2NyaXB0KTsKKyAgICAgICAgbGFzdFNjcmlwdCA9IHNjcmlwdDsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgICAgIAorICAgIAorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSAvLyBTQ1JJUFQgQ09ERQorICAgICAgICBDT01NT05fU0NSSVBUID0gMCwKKyAgICAgICAgTEFUSU5fU0NSSVBUID0gMSwKKyAgICAgICAgR1JFRUtfU0NSSVBUID0gMiwKKyAgICAgICAgQ1lSSUxMSUNfU0NSSVBUID0gMywKKyAgICAgICAgQVJNRU5JQU5fU0NSSVBUID0gNCwKKyAgICAgICAgSEVCUkVXX1NDUklQVCA9IDUsCisgICAgICAgIEFSQUJJQ19TQ1JJUFQgPSA2LAorICAgICAgICBTWVJJQUNfU0NSSVBUID0gNywKKyAgICAgICAgVEhBQU5BX1NDUklQVCA9IDgsIAorICAgICAgICBERVZBTkFHQVJJX1NDUklQVCA9IDksCisgICAgICAgIEJFTkdBTElfU0NSSVBUID0gMTAsCisgICAgICAgIEdVUk1VS0hJX1NDUklQVCA9IDExLAorICAgICAgICBHVUpBUkFUSV9TQ1JJUFQgPSAxMiwKKyAgICAgICAgT1JJWUFfU0NSSVBUID0gMTMsCisgICAgICAgIFRBTUlMX1NDUklQVCA9IDE0LAorICAgICAgICBURUxVR1VfU0NSSVBUID0gMTUsCisgICAgICAgIEtBTk5BREFfU0NSSVBUID0gMTYsCisgICAgICAgIE1BTEFZQUxBTV9TQ1JJUFQgPSAxNywKKyAgICAgICAgU0lOSEFMQV9TQ1JJUFQgPSAxOCwKKyAgICAgICAgVEhBSV9TQ1JJUFQgPSAxOSwKKyAgICAgICAgTEFPX1NDUklQVCA9IDIwLAorICAgICAgICBUSUJFVEFOX1NDUklQVCA9IDIxLAorICAgICAgICBNWUFOTUFSX1NDUklQVCA9IDIyLAorICAgICAgICBHRU9SR0lBTl9TQ1JJUFQgPSAyMywKKyAgICAgICAgSkFNT19TQ1JJUFQgPSAyNCwKKyAgICAgICAgSEFOR1VMX1NDUklQVCA9IDI1LAorICAgICAgICBFVEhJT1BJQ19TQ1JJUFQgPSAyNiwKKyAgICAgICAgQ0hFUk9LRUVfU0NSSVBUID0gMjcsCisgICAgICAgIEFCT1JJR0lOQUxfU0NSSVBUID0gMjgsCisgICAgICAgIE9HSEFNX1NDUklQVCA9IDI5LAorICAgICAgICBSVU5JQ19TQ1JJUFQgPSAzMCwKKyAgICAgICAgS0hNRVJfU0NSSVBUID0gMzEsCisgICAgICAgIE1PTkdPTElBTl9TQ1JJUFQgPSAzMiwKKyAgICAgICAgSElSQUdBTkFfU0NSSVBUID0gMzMsCisgICAgICAgIEtBVEFLQU5BX1NDUklQVCA9IDM0LAorICAgICAgICBCT1BPTU9GT19TQ1JJUFQgPSAzNSwKKyAgICAgICAgSEFOX1NDUklQVCA9IDM2LAorICAgICAgICBZSV9TQ1JJUFQgPSAzNzsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgLy8gYmxvY2sgY29kZQorICAgICAgICBSRVNFUlZFRF9CTE9DSyA9IDAsCisgICAgICAgIEJBU0lDX0xBVElOID0gMSwKKyAgICAgICAgTEFUSU5fMV9TVVBQTEVNRU5UID0gMiwKKyAgICAgICAgTEFUSU5fRVhURU5ERURfQSA9IDMsCisgICAgICAgIExBVElOX0VYVEVOREVEX0IgPSA0LAorICAgICAgICBJUEFfRVhURU5TSU9OUyA9IDUsCisgICAgICAgIFNQQUNJTkdfTU9ESUZJRVJfTEVUVEVSUyA9IDYsCisgICAgICAgIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUyA9IDcsCisgICAgICAgIEdSRUVLID0gOCwKKyAgICAgICAgQ1lSSUxMSUMgPSA5LAorICAgICAgICBBUk1FTklBTiA9IDEwLAorICAgICAgICBIRUJSRVcgPSAxMSwKKyAgICAgICAgQVJBQklDID0gMTIsCisgICAgICAgIFNZUklBQyA9IDEzLAorICAgICAgICBUSEFBTkEgPSAxNCwKKyAgICAgICAgREVWQU5BR0FSSSA9IDE1LAorICAgICAgICBCRU5HQUxJID0gMTYsCisgICAgICAgIEdVUk1VS0hJID0gMTcsCisgICAgICAgIEdVSkFSQVRJID0gMTgsCisgICAgICAgIE9SSVlBID0gMTksCisgICAgICAgIFRBTUlMID0gMjAsCisgICAgICAgIFRFTFVHVSA9IDIxLAorICAgICAgICBLQU5OQURBID0gMjIsCisgICAgICAgIE1BTEFZQUxBTSA9IDIzLAorICAgICAgICBTSU5IQUxBID0gMjQsCisgICAgICAgIFRIQUkgPSAyNSwKKyAgICAgICAgTEFPID0gMjYsCisgICAgICAgIFRJQkVUQU4gPSAyNywKKyAgICAgICAgTVlBTk1BUiA9IDI4LAorICAgICAgICBHRU9SR0lBTiA9IDI5LAorICAgICAgICBIQU5HVUxfSkFNTyA9IDMwLAorICAgICAgICBFVEhJT1BJQyA9IDMxLAorICAgICAgICBDSEVST0tFRSA9IDMyLAorICAgICAgICBVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTID0gMzMsCisgICAgICAgIE9HSEFNID0gMzQsCisgICAgICAgIFJVTklDID0gMzUsCisgICAgICAgIEtITUVSID0gMzYsCisgICAgICAgIE1PTkdPTElBTiA9IDM3LAorICAgICAgICBMQVRJTl9FWFRFTkRFRF9BRERJVElPTkFMID0gMzgsCisgICAgICAgIEdSRUVLX0VYVEVOREVEID0gMzksCisgICAgICAgIEdFTkVSQUxfUFVOQ1RVQVRJT04gPSA0MCwKKyAgICAgICAgU1VQRVJTQ1JJUFRTX0FORF9TVUJTQ1JJUFRTID0gNDEsCisgICAgICAgIENVUlJFTkNZX1NZTUJPTFMgPSA0MiwKKyAgICAgICAgQ09NQklOSU5HX01BUktTX0ZPUl9TWU1CT0xTID0gNDMsCisgICAgICAgIExFVFRFUkxJS0VfU1lNQk9MUyA9IDQ0LAorICAgICAgICBOVU1CRVJfRk9STVMgPSA0NSwKKyAgICAgICAgQVJST1dTID0gNDYsCisgICAgICAgIE1BVEhFTUFUSUNBTF9PUEVSQVRPUlMgPSA0NywKKyAgICAgICAgTUlTQ0VMTEFORU9VU19URUNITklDQUwgPSA0OCwKKyAgICAgICAgQ09OVFJPTF9QSUNUVVJFUyA9IDQ5LAorICAgICAgICBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiA9IDUwLAorICAgICAgICBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTID0gNTEsCisgICAgICAgIEJPWF9EUkFXSU5HID0gNTIsCisgICAgICAgIEJMT0NLX0VMRU1FTlRTID0gNTMsCisgICAgICAgIEdFT01FVFJJQ19TSEFQRVMgPSA1NCwKKyAgICAgICAgTUlTQ0VMTEFORU9VU19TWU1CT0xTID0gNTUsCisgICAgICAgIERJTkdCQVRTID0gNTYsCisgICAgICAgIEJSQUlMTEVfUEFUVEVSTlMgPSA1NywKKyAgICAgICAgQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQgPSA1OCwKKyAgICAgICAgS0FOR1hJX1JBRElDQUxTID0gNTksCisgICAgICAgIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMgPSA2MCwKKyAgICAgICAgQ0pLX1NZTUJPTFNfQU5EX1BVTkNUVUFUSU9OID0gNjEsCisgICAgICAgIEhJUkFHQU5BID0gNjIsCisgICAgICAgIEtBVEFLQU5BID0gNjMsCisgICAgICAgIEJPUE9NT0ZPID0gNjQsCisgICAgICAgIEhBTkdVTF9DT01QQVRJQklMSVRZX0pBTU8gPSA2NSwKKyAgICAgICAgS0FOQlVOID0gNjYsCisgICAgICAgIEJPUE9NT0ZPX0VYVEVOREVEID0gNjcsCisgICAgICAgIEVOQ0xPU0VEX0NKS19MRVRURVJTX0FORF9NT05USFMgPSA2OCwKKyAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFkgPSA2OSwKKyAgICAgICAgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQSA9IDcwLAorICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTID0gNzEsCisgICAgICAgIFlJX1NZTExBQkxFUyA9IDcyLAorICAgICAgICBZSV9SQURJQ0FMUyA9IDczLAorICAgICAgICBIQU5HVUxfU1lMTEFCTEVTID0gNzQsCisgICAgICAgIEhJR0hfU1VSUk9HQVRFUyA9IDc1LAorICAgICAgICBISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMgPSA3NiwKKyAgICAgICAgTE9XX1NVUlJPR0FURVMgPSA3NywKKyAgICAgICAgUFJJVkFURV9VU0UgPSA3OCwKKyAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUyA9IDc5LAorICAgICAgICBBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNUyA9IDgwLAorICAgICAgICBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0EgPSA4MSwKKyAgICAgICAgQ09NQklOSU5HX0hBTEZfTUFSS1MgPSA4MiwKKyAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMgPSA4MywKKyAgICAgICAgU01BTExfRk9STV9WQVJJQU5UUyA9IDg0LAorICAgICAgICBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IgPSA4NSwKKyAgICAgICAgU1BFQ0lBTFMgPSA4NiwKKyAgICAgICAgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVMgPSA4NzsKKyAgICAgICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGVbXSBibG9ja1RvU2NyaXB0ID0geworICAgICAgICBDT01NT05fU0NSSVBULCAvLyAwLCA8UkVTRVJWRURfQkxPQ0s+CisgICAgICAgIExBVElOX1NDUklQVCwgLy8gMSwgQkFTSUNfTEFUSU4KKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAyLCBMQVRJTl8xX1NVUFBMRU1FTlQKKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAzLCBMQVRJTl9FWFRFTkRFRF9BCisgICAgICAgIExBVElOX1NDUklQVCwgLy8gNCwgTEFUSU5fRVhURU5ERURfQgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDUsIElQQV9FWFRFTlNJT05TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDYsIFNQQUNJTkdfTU9ESUZJRVJfTEVUVEVSUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA3LCBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1MKKyAgICAgICAgR1JFRUtfU0NSSVBULCAvLyA4LCBHUkVFSworICAgICAgICBDWVJJTExJQ19TQ1JJUFQsIC8vIDksIENZUklMTElDCisgICAgICAgIEFSTUVOSUFOX1NDUklQVCwgLy8gMTAsIEFSTUVOSUFOCisgICAgICAgIEhFQlJFV19TQ1JJUFQsIC8vIDExLCBIRUJSRVcKKyAgICAgICAgQVJBQklDX1NDUklQVCwgLy8gMTIsIEFSQUJJQworICAgICAgICBTWVJJQUNfU0NSSVBULCAvLyAxMywgU1lSSUFDCisgICAgICAgIFRIQUFOQV9TQ1JJUFQsIC8vIDE0LCBUSEFBTkEKKyAgICAgICAgREVWQU5BR0FSSV9TQ1JJUFQsIC8vIDE1LCBERVZBTkFHQVJJCisgICAgICAgIEJFTkdBTElfU0NSSVBULCAvLyAxNiwgQkVOR0FMSQorICAgICAgICBHVVJNVUtISV9TQ1JJUFQsIC8vIDE3LCBHVVJNVUtISQorICAgICAgICBHVUpBUkFUSV9TQ1JJUFQsIC8vIDE4LCBHVUpBUkFUSQorICAgICAgICBPUklZQV9TQ1JJUFQsIC8vIDE5LCBPUklZQQorICAgICAgICBUQU1JTF9TQ1JJUFQsIC8vIDIwLCBUQU1JTAorICAgICAgICBURUxVR1VfU0NSSVBULCAvLyAyMSwgVEVMVUdVCisgICAgICAgIEtBTk5BREFfU0NSSVBULCAvLyAyMiwgS0FOTkFEQQorICAgICAgICBNQUxBWUFMQU1fU0NSSVBULCAvLyAyMywgTUFMQVlBTEFNCisgICAgICAgIFNJTkhBTEFfU0NSSVBULCAvLyAyNCwgU0lOSEFMQQorICAgICAgICBUSEFJX1NDUklQVCwgLy8gMjUsIFRIQUkKKyAgICAgICAgTEFPX1NDUklQVCwgLy8gMjYsIExBTworICAgICAgICBUSUJFVEFOX1NDUklQVCwgLy8gMjcsIFRJQkVUQU4KKyAgICAgICAgTVlBTk1BUl9TQ1JJUFQsIC8vIDI4LCBNWUFOTUFSCisgICAgICAgIEdFT1JHSUFOX1NDUklQVCwgLy8gMjksIEdFT1JHSUFOCisgICAgICAgIEpBTU9fU0NSSVBULCAvLyAzMCwgSEFOR1VMX0pBTU8KKyAgICAgICAgRVRISU9QSUNfU0NSSVBULCAvLyAzMSwgRVRISU9QSUMKKyAgICAgICAgQ0hFUk9LRUVfU0NSSVBULCAvLyAzMiwgQ0hFUk9LRUUKKyAgICAgICAgQUJPUklHSU5BTF9TQ1JJUFQsIC8vIDMzLCBVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTCisgICAgICAgIE9HSEFNX1NDUklQVCwgLy8gMzQsIE9HSEFNCisgICAgICAgIFJVTklDX1NDUklQVCwgLy8gMzUsIFJVTklDCisgICAgICAgIEtITUVSX1NDUklQVCwgLy8gMzYsIEtITUVSCisgICAgICAgIE1PTkdPTElBTl9TQ1JJUFQsIC8vIDM3LCBNT05HT0xJQU4KKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAzOCwgTEFUSU5fRVhURU5ERURfQURESVRJT05BTAorICAgICAgICBHUkVFS19TQ1JJUFQsIC8vIDM5LCBHUkVFS19FWFRFTkRFRAorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0MCwgR0VORVJBTF9QVU5DVFVBVElPTgorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0MSwgU1VQRVJTQ1JJUFRTX0FORF9TVUJTQ1JJUFRTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQyLCBDVVJSRU5DWV9TWU1CT0xTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQzLCBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDQsIExFVFRFUkxJS0VfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NSwgTlVNQkVSX0ZPUk1TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQ2LCBBUlJPV1MKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDcsIE1BVEhFTUFUSUNBTF9PUEVSQVRPUlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDgsIE1JU0NFTExBTkVPVVNfVEVDSE5JQ0FMCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQ5LCBDT05UUk9MX1BJQ1RVUkVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUwLCBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTgorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1MSwgRU5DTE9TRURfQUxQSEFOVU1FUklDUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1MiwgQk9YX0RSQVdJTkcKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTMsIEJMT0NLX0VMRU1FTlRTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDU0LCBHRU9NRVRSSUNfU0hBUEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDU1LCBNSVNDRUxMQU5FT1VTX1NZTUJPTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTYsIERJTkdCQVRTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDU3LCBCUkFJTExFX1BBVFRFUk5TCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDU4LCBDSktfUkFESUNBTFNfU1VQUExFTUVOVAorICAgICAgICBIQU5fU0NSSVBULCAvLyA1OSwgS0FOR1hJX1JBRElDQUxTCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDYwLCBJREVPR1JBUEhJQ19ERVNDUklQVElPTl9DSEFSQUNURVJTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDYxLCBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04KKyAgICAgICAgSElSQUdBTkFfU0NSSVBULCAvLyA2MiwgSElSQUdBTkEKKyAgICAgICAgS0FUQUtBTkFfU0NSSVBULCAvLyA2MywgS0FUQUtBTkEKKyAgICAgICAgQk9QT01PRk9fU0NSSVBULCAvLyA2NCwgQk9QT01PRk8KKyAgICAgICAgSkFNT19TQ1JJUFQsIC8vIDY1LCBIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDY2LCBLQU5CVU4KKyAgICAgICAgQk9QT01PRk9fU0NSSVBULCAvLyA2NywgQk9QT01PRk9fRVhURU5ERUQKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNjgsIEVOQ0xPU0VEX0NKS19MRVRURVJTX0FORF9NT05USFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNjksIENKS19DT01QQVRJQklMSVRZCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDcwLCBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDcxLCBDSktfVU5JRklFRF9JREVPR1JBUEhTCisgICAgICAgIFlJX1NDUklQVCwgLy8gNzIsIFlJX1NZTExBQkxFUworICAgICAgICBZSV9TQ1JJUFQsIC8vIDczLCBZSV9SQURJQ0FMUworICAgICAgICBIQU5HVUxfU0NSSVBULCAvLyA3NCwgSEFOR1VMX1NZTExBQkxFUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA3NSwgSElHSF9TVVJST0dBVEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDc2LCBISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzcsIExPV19TVVJST0dBVEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDc4LCBQUklWQVRFX1VTRQorICAgICAgICBIQU5fU0NSSVBULCAvLyA3OSwgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4MCwgQUxQSEFCRVRJQ19QUkVTRU5UQVRJT05fRk9STVMKKyAgICAgICAgQVJBQklDX1NDUklQVCwgLy8gODEsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQQorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4MiwgQ09NQklOSU5HX0hBTEZfTUFSS1MKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODMsIENKS19DT01QQVRJQklMSVRZX0ZPUk1TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDg0LCBTTUFMTF9GT1JNX1ZBUklBTlRTCisgICAgICAgIEFSQUJJQ19TQ1JJUFQsIC8vIDg1LCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODYsIFNQRUNJQUxTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDg3LCBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4OCwgU1BFQ0lBTFMKKyAgICB9OworICAgICAgICAKKyAgICAvLyBjb3VsZCBiZSBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBieXRlIGFycmF5LCBidXQgSSBkaWRuJ3QgYm90aGVyLgorICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdIHNwbGl0ID0geworICAgICAgICB7MHgwMjUwLCA0LCA1fSwgLy8gLTEKKyAgICAgICAgezB4MDJCMCwgNSwgNn0sIC8vIC0yCisgICAgICAgIHsweDAzNzAsIDcsIDh9LCAvLyAtMworICAgICAgICB7MHgwNTMwLCAwLCAxMH0sIC8vIC00CisgICAgICAgIHsweDA1OTAsIDEwLCAxMX0sIC8vIC01CisgICAgICAgIHsweDA3NTAsIDEzLCAwfSwgLy8gLTYKKyAgICAgICAgezB4MDdDMCwgMTQsIDB9LCAvLyAtNworICAgICAgICB7MHgxMEEwLCAyOCwgMjl9LCAvLyAtOAorICAgICAgICB7MHgxM0EwLCAwLCAzMn0sIC8vIC05CisgICAgICAgIHsweDE2QTAsIDM0LCAzNX0sIC8vIC0xMAorICAgICAgICB7MHgxOEIwLCAzNywgMH0sIC8vIC0xMQorICAgICAgICB7MHgyMDcwLCA0MCwgNDF9LCAvLyAtMTIKKyAgICAgICAgezB4MjBBMCwgNDEsIC0zMX0sIC8vIC0xMworICAgICAgICB7MHgyMTUwLCA0NCwgNDV9LCAvLyAtMTQKKyAgICAgICAgezB4MjE5MCwgNDUsIDQ2fSwgLy8gLTE1CisgICAgICAgIHsweDI0NDAsIDQ5LCAtMzJ9LCAvLyAtMTYKKyAgICAgICAgezB4MjVBMCwgNTMsIDU0fSwgLy8gLTE3CisgICAgICAgIHsweDI3QzAsIDU2LCAwfSwgLy8gLTE4CisgICAgICAgIHsweDJGRTAsIDU5LCAtMzN9LCAvLyAtMTkKKyAgICAgICAgezB4MzA0MCwgNjEsIDYyfSwgLy8gLTIwCisgICAgICAgIHsweDMwQTAsIDYyLCA2M30sIC8vIC0yMQorICAgICAgICB7MHgzMTMwLCA2NCwgNjV9LCAvLyAtMjIKKyAgICAgICAgezB4MzE5MCwgNjUsIC0zNH0sIC8vIC0yMworICAgICAgICB7MHg0REI2LCA3MCwgMH0sIC8vIC0yNAorICAgICAgICB7MHhBNDkwLCA3MiwgLTM1fSwgLy8gLTI1CisgICAgICAgIHsweEQ3QTQsIDc0LCAwfSwgLy8gLTI2CisgICAgICAgIHsweEZCNTAsIDgwLCA4MX0sIC8vIC0yNworICAgICAgICB7MHhGRTIwLCAwLCAtMzZ9LCAvLyAtMjgKKyAgICAgICAgezB4RkVGRiwgODUsIDg2fSwgLy8gLTI5CisgICAgICAgIHsweEZGRjAsIDg3LCAtMzd9LCAvLyAtMzAKKyAgICAgICAgezB4MjBEMCwgNDIsIDQzfSwgLy8gLTMxCisgICAgICAgIHsweDI0NjAsIDUwLCA1MX0sIC8vIC0zMgorICAgICAgICB7MHgyRkYwLCAwLCA2MH0sIC8vIC0zMworICAgICAgICB7MHgzMUEwLCA2NiwgLTM4fSwgLy8gLTM0CisgICAgICAgIHsweEE0RDAsIDczLCAwfSwgLy8tMzUKKyAgICAgICAgezB4RkUzMCwgODIsIC0zOX0sIC8vLTM2CisgICAgICAgIHsweEZGRkUsIDg4LCAwfSwgLy8tMzcKKyAgICAgICAgezB4MzFDMCwgNjcsIDB9LCAvLyAtMzgKKyAgICAgICAgezB4RkU1MCwgODMsIC00MH0sIC8vLTM5CisgICAgICAgIHsweEZFNzAsIDg0LCA4NX0gLy8gLTQwCisgICAgfTsKKyAgICAgICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGVbXSBjaGFyVG9CbG9jayA9IHsKKyAgICAgIDEsIDIsIDMsIDQsIC0xLCAtMiwgLTMsIDgsIDksIDksIC00LCAtNSwgMTIsIDEyLCAtNiwgLTcsCisgICAgICAwLCAwLCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjcsCisgICAgICAyOCwgLTgsIDMwLCAzMCwgMzEsIDMxLCAzMSwgLTksIDMzLCAzMywgMzMsIDMzLCAzMywgLTEwLCAwLCAzNiwKKyAgICAgIDM3LCAtMTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM4LCAzOCwgMzksIDM5LAorICAgICAgLTEyLCAtMTMsIC0xNCwgLTE1LCA0NywgNDcsIDQ4LCA0OCwgLTE2LCA1MSwgNTIsIC0xNywgNTUsIDU1LCA1NiwgLTE4LAorICAgICAgNTcsIDU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OCwgNTksIC0xOSwKKyAgICAgIC0yMCwgLTIxLCAtMjIsIC0yMywgNjgsIDY4LCA2OSwgNjksIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwKKyAgICAgIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLAorICAgICAgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsCisgICAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIC0yNCwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcyLCA3MiwgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgNzIsIC0yNSwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwKKyAgICAgIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwKKyAgICAgIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgLTI2LAorICAgICAgNzUsIDc1LCA3NSwgNzUsIDc1LCA3NSwgNzUsIDc2LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsCisgICAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwKKyAgICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LAorICAgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsCisgICAgICA3OCwgNzgsIDc5LCA3OSwgNzksIDc5LCAtMjcsIDgxLCA4MSwgODEsIDgxLCA4MSwgLTI4LCAtMjksIDg3LCAtMzAKKyAgICB9OworICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGE1MjQ1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDM0MTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5RXh0ZW5zaW9uczsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgICAgICAgICAgICAgICAgICBIT1cgVE8gVVNFIFRISVMgVEVTVCBGSUxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW9yLQorICAgICAgICAgICAgICAgICAgSG93IEkgZGV2ZWxvcGVkIG9uIHR3byBwbGF0Zm9ybXMKKyAgICAgICAgICAgICAgICB3aXRob3V0IGxvc2luZyAodG9vIG11Y2ggb2YpIG15IG1pbmQKKworCisxLiBBZGQgbmV3IHRlc3RzIGJ5IGNvcHlpbmcvcGFzdGluZy9jaGFuZ2luZyBleGlzdGluZyB0ZXN0cy4gIE9uIEphdmEsCisgICBhbnkgcHVibGljIHZvaWQgbWV0aG9kIG5hbWVkIFRlc3QuLi4oKSB0YWtpbmcgbm8gcGFyYW1ldGVycyBiZWNvbWVzCisgICBhIHRlc3QuICBPbiBDKyssIHlvdSBuZWVkIHRvIG1vZGlmeSB0aGUgaGVhZGVyIGFuZCBhZGQgYSBsaW5lIHRvCisgICB0aGUgcnVuSW5kZXhlZFRlc3QoKSBkaXNwYXRjaCBtZXRob2QuCisKKzIuIE1ha2UgbGliZXJhbCB1c2Ugb2YgdGhlIGV4cGVjdCgpIG1ldGhvZDsgaXQgaXMgeW91ciBmcmllbmQuCisKKzMuIFRoZSB0ZXN0cyBpbiB0aGlzIGZpbGUgZXhhY3RseSBtYXRjaCB0aG9zZSBpbiBhIHNpc3RlciBmaWxlIG9uIHRoZQorICAgb3RoZXIgc2lkZS4gIFRoZSB0d28gZmlsZXMgYXJlOgorCisgICBpY3U0ajogIHNyYy9jb20uaWJtLmljdS5kZXYudGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YQorICAgaWN1NGM6ICBzb3VyY2UvdGVzdC9pbnRsdGVzdC90cmFuc3RzdC5jcHAKKworICAgICAgICAgICAgICAgICAgPT0+IFRISVMgSVMgVEhFIElNUE9SVEFOVCBQQVJUIDw9PQorCisgICBXaGVuIHlvdSBhZGQgYSB0ZXN0IGluIHRoaXMgZmlsZSwgYWRkIGl0IGluIHRyYW5zdHN0LmNwcCB0b28uCisgICBHaXZlIGl0IHRoZSBzYW1lIG5hbWUgYW5kIHB1dCBpdCBpbiB0aGUgc2FtZSByZWxhdGl2ZSBwbGFjZS4gIFRoaXMKKyAgIG1ha2VzIG1haW50ZW5hbmNlIGEgbG90IHNpbXBsZXIgZm9yIGFueSBwb29yIHNvdWwgd2hvIGVuZHMgdXAKKyAgIHRyeWluZyB0byBzeW5jaHJvbml6ZSB0aGUgdGVzdHMgYmV0d2VlbiBpY3U0aiBhbmQgaWN1NGMuCisKKzQuIElmIHlvdSBNVVNUIGVudGVyIGEgdGVzdCB0aGF0IGlzIE5PVCBwYXJhbGxlbGVkIGluIHRoZSBzaXN0ZXIgZmlsZSwKKyAgIHRoZW4gYWRkIGl0IGluIHRoZSBzcGVjaWFsIG5vbi1taXJyb3JlZCBzZWN0aW9uLiAgVGhlc2UgYXJlCisgICBsYWJlbGVkCisKKyAgICAgImljdTRqIE9OTFkiCisKKyAgIG9yCisKKyAgICAgImljdTRjIE9OTFkiCisKKyAgIE1ha2Ugc3VyZSB5b3UgZG9jdW1lbnQgdGhlIHJlYXNvbiB0aGUgdGVzdCBpcyBoZXJlIGFuZCBub3QgdGhlcmUuCisKKworVGhhbmsgeW91LgorVGhlIE1hbmFnZW1lbnQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBHZW5lcmFsIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdG9yVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVHJhbnNsaXRlcmF0b3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnN0YW50aWF0aW9uKCkgeworICAgICAgICBsb25nIG1zID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIFN0cmluZyBJRDsKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7IGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgSUQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBpZiAoSUQuZXF1YWxzKCJMYXRpbi1IYW4vZGVmaW5pdGlvbiIpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblRPRE86IGRpc2FibGluZyBMYXRpbi1IYW4vZGVmaW5pdGlvbiBjaGVjayBmb3Igbm93OiBmaXggbGF0ZXIiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgb25seSB0cnVlIGZvciBzb21lIHN1YmNsYXNzZXMKKy8vICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBnZXQgYSBuZXcgaW5zdGFuY2UgaWYgd2UgdHJ5IGFnYWluCisvLyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKy8vICAgICAgICAgICAgICAgIGlmICh0ICE9IHQyKSB7CisvLyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoSUQpICsgIiAoIiArIElEICsgIik6ICIgKyB0KTsKKy8vICAgICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCArICIgcmV0dXJuZWQgaWRlbnRpY2FsIGluc3RhbmNlcyIpOworLy8gICAgICAgICAgICAgICAgICAgIHQgPSBudWxsOworLy8gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBOb3cgdGVzdCB0b1J1bGVzCisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBydWxlcyA9IHQudG9SdWxlcyh0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIi50b1J1bGVzKCkgPT4gYmFkIHJ1bGVzOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXMpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBleDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IHRlc3QgdGhlIGZhaWx1cmUgcGF0aAorICAgICAgICB0cnkgeworICAgICAgICAgICAgSUQgPSAiPE5vdCBhIHZhbGlkIFRyYW5zbGl0ZXJhdG9yIElEPiI7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCArICIgcmV0dXJuZWQgIiArIHQpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogQm9ndXMgSUQgaGFuZGxlZCBwcm9wZXJseSIpOworICAgICAgICB9CisKKyAgICAgICAgbXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIG1zOworICAgICAgICBsb2dsbigiRWxhcHNlZCB0aW1lOiAiICsgbXMgKyAiIG1zIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNpbXBsZVJ1bGVzKCkgeworICAgICAgICAvKiBFeGFtcGxlOiBydWxlcyAxLiBhYj54fHkKKyAgICAgICAgICogICAgICAgICAgICAgICAgMi4geWM+egorICAgICAgICAgKgorICAgICAgICAgKiBbXXxlYWJjZCAgc3RhcnQgLSBubyBtYXRjaCwgY29weSBlIHRvIHRyYW5sYXRlZCBidWZmZXIKKyAgICAgICAgICogW2VdfGFiY2QgIG1hdGNoIHJ1bGUgMSAtIGNvcHkgb3V0cHV0ICYgYWRqdXN0IGN1cnNvcgorICAgICAgICAgKiBbZXh8eV1jZCAgbWF0Y2ggcnVsZSAyIC0gY29weSBvdXRwdXQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIFtleHpdfGQgICBubyBtYXRjaCwgY29weSBkIHRvIHRyYW5zbGl0ZXJhdGVkIGJ1ZmZlcgorICAgICAgICAgKiBbZXh6ZF18ICAgZG9uZQorICAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KCJhYj54fHk7IiArCisgICAgICAgICAgICAgICAieWM+eiIsCisgICAgICAgICAgICAgICAiZWFiY2QiLCAiZXh6ZCIpOworCisgICAgICAgIC8qIEFub3RoZXIgc2V0IG9mIHJ1bGVzOgorICAgICAgICAgKiAgICAxLiBhYj54fHl6YWN3CisgICAgICAgICAqICAgIDIuIHphPnEKKyAgICAgICAgICogICAgMy4gcWM+cgorICAgICAgICAgKiAgICA0LiBjdz5uCisgICAgICAgICAqCisgICAgICAgICAqIFtdfGFiICAgICAgIFJ1bGUgMQorICAgICAgICAgKiBbeHx5emFjd10gICBObyBtYXRjaAorICAgICAgICAgKiBbeHl8emFjd10gICBSdWxlIDIKKyAgICAgICAgICogW3h5cXxjd10gICAgUnVsZSA0CisgICAgICAgICAqIFt4eXFuXXwgICAgIERvbmUKKyAgICAgICAgICovCisgICAgICAgIGV4cGVjdCgiYWI+eHx5emFjdzsiICsKKyAgICAgICAgICAgICAgICJ6YT5xOyIgKworICAgICAgICAgICAgICAgInFjPnI7IiArCisgICAgICAgICAgICAgICAiY3c+biIsCisgICAgICAgICAgICAgICAiYWIiLCAieHlxbiIpOworCisgICAgICAgIC8qIFRlc3QgY2F0ZWdvcmllcworICAgICAgICAgKi8KKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRkdW1teT1cdUUxMDA7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR2b3dlbD1bYWVpb3VBRUlPVV07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRsdT1bOkx1Ol07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR2b3dlbCB9ICRsdSA+ICchJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsID4gJyYnOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInIScgeyAkbHUgPiAnXic7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRsdSA+ICcqJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYT5FUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdCh0LCAiYWJjZGVmZ0FCQ0RFRkdVIiwgIiZiY2QmZmchXioqIV4qJiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW5saW5lIHNldCBzeW50YXggYW5kIHNldCB2YXJpYWJsZSBzeW50YXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdElubGluZVNldCgpIHsKKyAgICAgICAgZXhwZWN0KCJ7IFs6TGw6XSB9IHggPiB5OyBbOkxsOl0gPiB6OyIsICJhQWJ4cSIsICJ6QXl6eiIpOworICAgICAgICBleHBlY3QoImFbMC05XWIgPiBxcnMiLCAiMWE3YjkiLCAiMXFyczkiKTsKKworICAgICAgICBleHBlY3QoIiRkaWdpdCA9IFswLTldOyIgKworICAgICAgICAgICAgICAgIiRhbHBoYSA9IFthLXpBLVpdOyIgKworICAgICAgICAgICAgICAgIiRhbHBoYW51bWVyaWMgPSBbJGRpZ2l0ICRhbHBoYV07IiArIC8vICoqKgorICAgICAgICAgICAgICAgIiRzcGVjaWFsID0gW14kYWxwaGFudW1lcmljXTsiICsgICAgIC8vICoqKgorICAgICAgICAgICAgICAgIiRhbHBoYW51bWVyaWMgPiAnLSc7IiArCisgICAgICAgICAgICAgICAiJHNwZWNpYWwgPiAnKic7IiwKKworICAgICAgICAgICAgICAgInRoeC0xMTM4IiwgIi0tLSotLS0tIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHNvbWUgaW52ZXJzZXMgYW5kIGNvbmZpcm0gdGhhdCB0aGV5IHdvcmsuICBXZSBoYXZlIHRvIGJlCisgICAgICogY2FyZWZ1bCBob3cgd2UgZG8gdGhpcywgc2luY2UgdGhlIGludmVyc2VzIHdpbGwgbm90IGJlIHRydWUKKyAgICAgKiBpbnZlcnNlcyAtLSB3ZSBjYW4ndCB0aHJvdyBhbnkgcmFuZG9tIHN0cmluZyBhdCB0aGUgY29tcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgdHJhbnNsaXRlcmF0b3JzIGFuZCBleHBlY3QgdGhlIGlkZW50aXR5IGZ1bmN0aW9uLiAgRiB4CisgICAgICogRicgIT0gSS4gIEhvd2V2ZXIsIGlmIHdlIGFyZSBjYXJlZnVsIGFib3V0IHRoZSBpbnB1dCwgd2Ugd2lsbAorICAgICAqIGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUJhc2VkSW52ZXJzZSgpIHsKKyAgICAgICAgU3RyaW5nIFJVTEVTID0KKyAgICAgICAgICAgICJhYmM+enl4OyIgKworICAgICAgICAgICAgImFiPnl6OyIgKworICAgICAgICAgICAgImJjPnp4OyIgKworICAgICAgICAgICAgImNhPnh5OyIgKworICAgICAgICAgICAgImE+eDsiICsKKyAgICAgICAgICAgICJiPnk7IiArCisgICAgICAgICAgICAiYz56OyIgKworCisgICAgICAgICAgICAiYWJjPHp5eDsiICsKKyAgICAgICAgICAgICJhYjx5ejsiICsKKyAgICAgICAgICAgICJiYzx6eDsiICsKKyAgICAgICAgICAgICJjYTx4eTsiICsKKyAgICAgICAgICAgICJhPHg7IiArCisgICAgICAgICAgICAiYjx5OyIgKworICAgICAgICAgICAgImM8ejsiICsKKworICAgICAgICAgICAgIiI7CisKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIENhcmVmdWwgaGVyZSAtLSByYW5kb20gc3RyaW5ncyB3aWxsIG5vdCB3b3JrLiAgSWYgd2Uga2VlcAorICAgICAgICAgICAgLy8gdGhlIGxlZnQgc2lkZSB0byB0aGUgZG9tYWluIGFuZCB0aGUgcmlnaHQgc2lkZSB0byB0aGUgcmFuZ2UKKyAgICAgICAgICAgIC8vIHdlIHdpbGwgYmUgb2theSB0aG91Z2ggKGxlZnQsIGFiYzsgcmlnaHQgeHl6KS4KKyAgICAgICAgICAgICJhIiwgIngiLAorICAgICAgICAgICAgImFiY2FjYWIiLCAienl4eHh5eSIsCisgICAgICAgICAgICAiY2FjY2IiLCAieHl6enkiLAorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGZ3ZCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIFJVTEVTLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGV4cGVjdChmd2QsIERBVEFbaV0sIERBVEFbaSsxXSk7CisgICAgICAgICAgICBleHBlY3QocmV2LCBEQVRBW2krMV0sIERBVEFbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzaWMgdGVzdCBvZiBrZXlib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwc2NoPlk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsicHM+eTsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJjaD54OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImE+QTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIGluc2VydGlvbiwgYnVmZmVyCisgICAgICAgICAgICAiYSIsICJBIiwKKyAgICAgICAgICAgICJwIiwgIkFwIiwKKyAgICAgICAgICAgICJzIiwgIkFwcyIsCisgICAgICAgICAgICAiYyIsICJBcHNjIiwKKyAgICAgICAgICAgICJhIiwgIkF5Y0EiLAorICAgICAgICAgICAgInBzY2giLCAiQXljQVkiLAorICAgICAgICAgICAgbnVsbCwgIkF5Y0FZIiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2ljIHRlc3Qgb2Yga2V5Ym9hcmQgd2l0aCBjdXJzb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEtleWJvYXJkMigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInljaD5ZOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArInBzPnx5OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImNoPng7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiYT5BOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaW5zZXJ0aW9uLCBidWZmZXIKKyAgICAgICAgICAgICJhIiwgIkEiLAorICAgICAgICAgICAgInAiLCAiQXAiLAorICAgICAgICAgICAgInMiLCAiQXBzIiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gIkF5IiwKKyAgICAgICAgICAgICJjIiwgIkFwc2MiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljIiwKKyAgICAgICAgICAgICJhIiwgIkF5Y0EiLAorICAgICAgICAgICAgInAiLCAiQXljQXAiLAorICAgICAgICAgICAgInMiLCAiQXljQXBzIiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gIkF5Y0F5IiwKKyAgICAgICAgICAgICJjIiwgIkF5Y0Fwc2MiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljQXljIiwKKyAgICAgICAgICAgICJoIiwgIkF5Y0FZIiwKKyAgICAgICAgICAgIG51bGwsICJBeWNBWSIsIC8vIG51bGwgbWVhbnMgZmluaXNoS2V5Ym9hcmRUcmFuc2xpdGVyYXRpb24KKyAgICAgICAgfTsKKworICAgICAgICBrZXlib2FyZEF1eCh0LCBEQVRBKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiB3aXRoIGJhY2stcmVwbGFjZW1lbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEtleWJvYXJkMygpIHsKKyAgICAgICAgLy8gV2Ugd2FudCB0aD56IGJ1dCB0PnkuICBGdXJ0aGVybW9yZSwgZHVyaW5nIGtleWJvYXJkCisgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGlvbiB3ZSB3YW50IHQ+eSB0aGVuIHloPnogaWYgdCwgdGhlbiBoIGFyZQorICAgICAgICAvLyB0eXBlZC4KKyAgICAgICAgU3RyaW5nIFJVTEVTID0KKyAgICAgICAgICAgICJ0Pnx5OyIgKworICAgICAgICAgICAgInloPno7IiArCisgICAgICAgICAgICAiIjsKKworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gQ29sdW1uIDE6IGNoYXJhY3RlcnMgdG8gYWRkIHRvIGJ1ZmZlciAoYXMgaWYgdHlwZWQpCisgICAgICAgICAgICAvLyBDb2x1bW4gMjogZXhwZWN0ZWQgYXBwZWFyYW5jZSBvZiBidWZmZXIgYWZ0ZXIKKyAgICAgICAgICAgIC8vICAgICAgICAgICBrZXlib2FyZCB4bGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICJhIiwgImEiLAorICAgICAgICAgICAgImIiLCAiYWIiLAorICAgICAgICAgICAgInQiLCAiYWJ0IiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gImFieSIsCisgICAgICAgICAgICAiYyIsICJhYnljIiwKKyAgICAgICAgICAgICJ0IiwgImFieWN0IiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gImFieWN5IiwKKyAgICAgICAgICAgICJoIiwgImFieWN6IiwKKyAgICAgICAgICAgIG51bGwsICJhYnljeiIsIC8vIG51bGwgbWVhbnMgZmluaXNoS2V5Ym9hcmRUcmFuc2xpdGVyYXRpb24KKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBrZXlib2FyZEF1eCh0LCBEQVRBKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQga2V5Ym9hcmRBdXgoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nW10gREFUQSkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxvZzsKKyAgICAgICAgICAgIGlmIChEQVRBW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKHMudG9TdHJpbmcoKSArICIgKyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIERBVEFbaV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAtPiAiKTsKKyAgICAgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocywgaW5kZXgsIERBVEFbaV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKHMudG9TdHJpbmcoKSArICIgPT4gIik7CisgICAgICAgICAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocywgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCBzLCBpbmRleCk7CisgICAgICAgICAgICBpZiAocy50b1N0cmluZygpLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obG9nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxvZy50b1N0cmluZygpICsgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBMYXRpbi1BcmFiaWMgaGFzIGJlZW4gdGVtcG9yYXJpbHkgcmVtb3ZlZCB1bnRpbCBpdCBjYW4gYmUKKyAgICAvLyBkb25lIGNvcnJlY3RseS4KKworLy8gIHB1YmxpYyB2b2lkIFRlc3RBcmFiaWMoKSB7CisvLyAgICAgIFN0cmluZyBEQVRBW10gPSB7CisvLyAgICAgICAgICAiQXJhYmljIiwKKy8vICAgICAgICAgICAgICAiXHUwNjJhXHUwNjJhXHUwNjQ1XHUwNjJhXHUwNjM5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDY0NFx1MDYzYVx1MDYyOSAiKworLy8gICAgICAgICAgICAgICJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2MjhcdTA2NGFcdTA2MjkgIisKKy8vICAgICAgICAgICAgICAiXHUwNjI4XHUwNjI4XHUwNjQ2XHUwNjM4XHUwNjQ1ICIrCisvLyAgICAgICAgICAgICAgIlx1MDY0M1x1MDYyYVx1MDYyN1x1MDYyOFx1MDYyOFx1MDY0YVx1MDYyOSAiKworLy8gICAgICAgICAgICAgICJcdTA2MmNcdTA2NDVcdTA2NGFcdTA2NDRcdTA2MjkiCisvLyAgICAgIH07CisKKy8vICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1BcmFiaWMiKTsKKy8vICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisvLyAgICAgICAgICBleHBlY3QodCwgREFUQVtpXSwgREFUQVtpKzFdKTsKKy8vICAgICAgfQorLy8gIH0KKworICAgIC8qKgorICAgICAqIENvbXBvc2UgdGhlIEthbmEgdHJhbnNsaXRlcmF0b3IgZm9yd2FyZCBhbmQgcmV2ZXJzZSBhbmQgdHJ5CisgICAgICogc29tZSBzdHJpbmdzIHRoYXQgc2hvdWxkIGNvbWUgb3V0IHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRLYW5hKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUthdGFrYW5hO0thdGFrYW5hLUxhdGluIik7CisgICAgICAgIGV4cGVjdCh0LCAiYWFhYWEiLCAiYWFhYWEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wb3NlIHRoZSBoZXggdHJhbnNsaXRlcmF0b3JzIGZvcndhcmQgYW5kIHJldmVyc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kSGV4KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBhID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgYiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIZXgtQW55Iik7CisgICAgICAgIC8vIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnMgPSB7IGEsIGIgfTsKKyAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3IgYWIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFucyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFiID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXg7SGV4LUFueSIpOworCisgICAgICAgIC8vIERvIHNvbWUgYmFzaWMgdGVzdHMgb2YgYgorICAgICAgICBleHBlY3QoYiwgIlxcdTAwMzBcXHUwMDMxIiwgIjAxIik7CisKKyAgICAgICAgU3RyaW5nIHMgPSAiYWJjZGUiOworICAgICAgICBleHBlY3QoYWIsIHMsIHMpOworCisgICAgICAgIC8vIHRyYW5zID0gbmV3IFRyYW5zbGl0ZXJhdG9yW10geyBiLCBhIH07CisgICAgICAgIC8vIFRyYW5zbGl0ZXJhdG9yIGJhID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UodHJhbnMpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBiYSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIZXgtQW55O0FueS1IZXgiKTsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgc3RyID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHMpOworICAgICAgICBhLnRyYW5zbGl0ZXJhdGUoc3RyKTsKKyAgICAgICAgZXhwZWN0KGJhLCBzdHIudG9TdHJpbmcoKSwgc3RyLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIHNvbWUgYmFzaWMgdGVzdHMgb2YgZmlsdGVyaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGaWx0ZXJpbmcoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4Iik7CisgICAgICAgIGhleC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgICAgIHJldHVybiBjICE9ICdjJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFkZE1hdGNoU2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHt9CisgICAgICAgIH0pOworICAgICAgICBTdHJpbmcgcyA9ICJhYmNkZSI7CisgICAgICAgIFN0cmluZyBvdXQgPSBoZXgudHJhbnNsaXRlcmF0ZShzKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICJcXHUwMDYxXFx1MDA2MmNcXHUwMDY0XFx1MDA2NSI7CisgICAgICAgIGlmIChvdXQuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogICBcIiIgKyBleHAgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJGQUlMOiBcIiIgKyBvdXQgKyAiXCIsIHdhbnRlZCBcIiIgKyBleHAgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYW5jaG9ycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbmNob3JzKCkgeworICAgICAgICBleHBlY3QoIl5hYiAgPiAwMSA7IiArCisgICAgICAgICAgICAgICAiIGFiICA+IHw4IDsiICsKKyAgICAgICAgICAgICAgICIgIGIgID4gayA7IiArCisgICAgICAgICAgICAgICAiIDh4JCA+IDQ1IDsiICsKKyAgICAgICAgICAgICAgICIgOHggID4gNzcgOyIsCisKKyAgICAgICAgICAgICAgICJhYmFiYmFieGFieCIsCisgICAgICAgICAgICAgICAiMDE4azc3NDUiKTsKKyAgICAgICAgZXhwZWN0KCIkcyA9IFt6JF0gOyIgKworICAgICAgICAgICAgICAgIiRze2FiICAgID4gMDEgOyIgKworICAgICAgICAgICAgICAgIiAgIGFiICAgID4gfDggOyIgKworICAgICAgICAgICAgICAgIiAgICBiICAgID4gayA7IiArCisgICAgICAgICAgICAgICAiICAgOHh9JHMgPiA0NSA7IiArCisgICAgICAgICAgICAgICAiICAgOHggICAgPiA3NyA7IiwKKworICAgICAgICAgICAgICAgImFiemFiYWJiYWJ4emFieGFieCIsCisgICAgICAgICAgICAgICAiMDF6MDE4azQ1ejAxeDQ1Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBwYXR0ZXJuIHF1b3RpbmcgYW5kIGVzY2FwZSBtZWNoYW5pc21zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJuUXVvdGluZygpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiXHU0RTAxPidbbWFsZSBhZHVsdF0nIiwgIlx1NEUwMSIsICJbbWFsZSBhZHVsdF0iLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVncmVzc2lvbiB0ZXN0IGZvciBidWdzIGZvdW5kIGluIEdyZWVrIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjI3NygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZ2wgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiR3JlZWstTGF0aW47IE5GRDsgWzpNOl1SZW1vdmU7IE5GQyIpOworCisgICAgICAgIGNoYXIgc2lnbWEgPSAoY2hhcikweDNDMzsKKyAgICAgICAgY2hhciB1cHNpbG9uID0gKGNoYXIpMHgzQzU7CisgICAgICAgIGNoYXIgbnUgPSAoY2hhcikweDNCRDsKKyAgICAgICAgLy8gbm90IHVzZWQgY2hhciBQSEkgPSAoY2hhcikweDNBNjsKKyAgICAgICAgY2hhciBhbHBoYSA9IChjaGFyKTB4M0IxOworICAgICAgICAvLyBub3QgdXNlZCBjaGFyIG9tZWdhID0gKGNoYXIpMHgzQzk7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgb21pY3JvbiA9IChjaGFyKTB4M0JGOworICAgICAgICAvLyBub3QgdXNlZCBjaGFyIGVwc2lsb24gPSAoY2hhcikweDNCNTsKKworICAgICAgICAvLyBzaWdtYSB1cHNpbG9uIG51IC0+IHN5bgorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWYuYXBwZW5kKHNpZ21hKS5hcHBlbmQodXBzaWxvbikuYXBwZW5kKG51KTsKKyAgICAgICAgU3RyaW5nIHN5biA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICBleHBlY3QoZ2wsIHN5biwgInN5biIpOworCisgICAgICAgIC8vIHNpZ21hIGFscGhhIHVwc2lsb24gbnUgLT4gc2F1bgorICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICBidWYuYXBwZW5kKHNpZ21hKS5hcHBlbmQoYWxwaGEpLmFwcGVuZCh1cHNpbG9uKS5hcHBlbmQobnUpOworICAgICAgICBTdHJpbmcgc2F5biA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICBleHBlY3QoZ2wsIHNheW4sICJzYXVuIik7CisKKyAgICAgICAgLy8gQWdhaW4sIHVzaW5nIGEgc21hbGxlciBydWxlIHNldAorICAgICAgICBTdHJpbmcgcnVsZXMgPQorICAgICAgICAgICAgICAgICAgICAiJGFscGhhICAgPSBcdTAzQjE7IiArCisgICAgICAgICAgICAgICAgICAgICIkbnUgICAgICA9IFx1MDNCRDsiICsKKyAgICAgICAgICAgICAgICAgICAgIiRzaWdtYSAgID0gXHUwM0MzOyIgKworICAgICAgICAgICAgICAgICAgICAiJHlwc2lsb24gPSBcdTAzQzU7IiArCisgICAgICAgICAgICAgICAgICAgICIkdm93ZWwgICA9IFthZWlvdUFFSU9VJGFscGhhJHlwc2lsb25dOyIgKworICAgICAgICAgICAgICAgICAgICAicyA8PiAgICAgICAgICAgJHNpZ21hOyIgKworICAgICAgICAgICAgICAgICAgICAiYSA8PiAgICAgICAgICAgJGFscGhhOyIgKworICAgICAgICAgICAgICAgICAgICAidSA8PiAgJHZvd2VsIHsgJHlwc2lsb247IiArCisgICAgICAgICAgICAgICAgICAgICJ5IDw+ICAgICAgICAgICAkeXBzaWxvbjsiICsKKyAgICAgICAgICAgICAgICAgICAgIm4gPD4gICAgICAgICAgICRudTsiOworICAgICAgICBUcmFuc2xpdGVyYXRvciBtaW5pID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzCisgICAgICAgICAgICAoIm1pbmkiLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGV4cGVjdChtaW5pLCBzeW4sICJzeW4iKTsKKyAgICAgICAgZXhwZWN0KG1pbmksIHNheW4sICJzYXVuIik7CisKKy8vfCAgICAvLyBUcmFuc2xpdGVyYXRlIHRoZSBHcmVlayBsb2NhbGUgZGF0YQorLy98ICAgIExvY2FsZSBlbCgiZWwiKTsKKy8vfCAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1zKGVsLCBzdGF0dXMpOworLy98ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeyBlcnJsbigiRkFJTDogVHJhbnNsaXRlcmF0b3IgY29uc3RydWN0b3IgZmFpbGVkIik7IHJldHVybjsgfQorLy98ICAgIGludDMyX3QgaSwgY291bnQ7CisvL3wgICAgY29uc3QgVW5pY29kZVN0cmluZyogZGF0YSA9IHN5bXMuZ2V0TW9udGhzKGNvdW50KTsKKy8vfCAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisvL3wgICAgICAgIGlmIChkYXRhW2ldLmxlbmd0aCgpID09IDApIHsKKy8vfCAgICAgICAgICAgIGNvbnRpbnVlOworLy98ICAgICAgICB9CisvL3wgICAgICAgIFVuaWNvZGVTdHJpbmcgb3V0KGRhdGFbaV0pOworLy98ICAgICAgICBnbC0+dHJhbnNsaXRlcmF0ZShvdXQpOworLy98ICAgICAgICBib29sX3Qgb2sgPSBUUlVFOworLy98ICAgICAgICBpZiAoZGF0YVtpXS5sZW5ndGgoKSA+PSAyICYmIG91dC5sZW5ndGgoKSA+PSAyICYmCisvL3wgICAgICAgICAgICB1X2lzdXBwZXIoZGF0YVtpXS5jaGFyQXQoMCkpICYmIHVfaXNsb3dlcihkYXRhW2ldLmNoYXJBdCgxKSkpIHsKKy8vfCAgICAgICAgICAgIGlmICghKHVfaXN1cHBlcihvdXQuY2hhckF0KDApKSAmJiB1X2lzbG93ZXIob3V0LmNoYXJBdCgxKSkpKSB7CisvL3wgICAgICAgICAgICAgICAgb2sgPSBGQUxTRTsKKy8vfCAgICAgICAgICAgIH0KKy8vfCAgICAgICAgfQorLy98ICAgICAgICBpZiAob2spIHsKKy8vfCAgICAgICAgICAgIGxvZ2xuKHByZXR0aWZ5KGRhdGFbaV0gKyAiIC0+ICIgKyBvdXQpKTsKKy8vfCAgICAgICAgfSBlbHNlIHsKKy8vfCAgICAgICAgICAgIGVycmxuKFVuaWNvZGVTdHJpbmcoIkZBSUw6ICIpICsgcHJldHRpZnkoZGF0YVtpXSArICIgLT4gIiArIG91dCkpOworLy98ICAgICAgICB9CisvL3wgICAgfQorICAgIH0KKworLy8gICAgLyoqCisvLyAgICAgKiBQcmVmaXgsIHN1ZmZpeCBzdXBwb3J0IGluIGhleCB0cmFuc2xpdGVyYXRvcnMKKy8vICAgICAqLworLy8gICAgcHVibGljIHZvaWQgVGVzdEoyNDMoKSB7CisvLyAgICAgICAgLy8gVGVzdCBkZWZhdWx0IEhleC1BbnksIHdoaWNoIHNob3VsZCBoYW5kbGUKKy8vICAgICAgICAvLyBcXHUsIFxcVSwgdSssIGFuZCBVKworLy8gICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGhleCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworLy8gICAgICAgIGV4cGVjdChoZXgsICJcXHUwMDQxK1xcVTAwNDIsdSswMDQzdXUrMDA0NHoiLCAiQStCLEN1RHoiKTsKKy8vCisvLyAgICAgICAgLy8gVHJ5IGEgY3VzdG9tIEhleC1BbnkKKy8vICAgICAgICAvLyBcXHVYWFhYIGFuZCAmI3hYWFhYOworLy8gICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGhleDIgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIlxcXFx1IyMjMDsmXFwjeCMjIzBcXDsiKTsKKy8vICAgICAgICBleHBlY3QoaGV4MiwgIlxcdTYxXFx1MDYyXFx1MDA2M1xcdTAwNjQ1XFx1NjZ4JiN4MzA7JiN4MDMxOyYjeDAwMzI7JiN4MDAwMzM7IiwKKy8vICAgICAgICAgICAgICAgImFiY2Q1ZngwMTImI3gwMDAzMzsiKTsKKy8vCisvLyAgICAgICAgLy8gVHJ5IGN1c3RvbSBBbnktSGV4IChkZWZhdWx0IGlzIHRlc3RlZCBlbHNld2hlcmUpCisvLyAgICAgICAgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IgaGV4MyA9IG5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigiJlxcI3gjIyMwOyIpOworLy8gICAgICAgIGV4cGVjdChoZXgzLCAiMDEyIiwgIiYjeDMwOyYjeDMxOyYjeDMyOyIpOworLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEozMjkoKSB7CisKKyAgICAgICAgT2JqZWN0W10gREFUQSA9IHsKKyAgICAgICAgICAgIG5ldyBCb29sZWFuKGZhbHNlKSwgImEgPiBiOyBjID4gZCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgICJhID4gYjsgbm8gb3BlcmF0b3I7IGMgPiBkIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyBlcnIgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0KKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZykgREFUQVtpKzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJyID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIGdvdEVycm9yID0gKGVyciAhPSBudWxsKTsKKyAgICAgICAgICAgIFN0cmluZyBkZXNjID0gKFN0cmluZykgREFUQVtpKzFdICsKKyAgICAgICAgICAgICAgICAoZ290RXJyb3IgPyAoIiAtPiBlcnJvcjogIiArIGVycikgOiAiIC0+IG5vIGVycm9yIik7CisgICAgICAgICAgICBpZiAoKGVyciAhPSBudWxsKSA9PSAoKEJvb2xlYW4pREFUQVtpXSkuYm9vbGVhblZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgIiArIGRlc2MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRlc2MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBzZWdtZW50cyBhbmQgc2VnbWVudCByZWZlcmVuY2VzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZWdtZW50cygpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiKFthLXpdKSAnLicgKFswLTldKSA+ICQyICctJyAkMSIsCisgICAgICAgICAgICAiYWJjLjEyMy54eXouNDU2IiwKKyAgICAgICAgICAgICJhYjEtYzIzLnh5NC16NTYiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXJzb3IgcG9zaXRpb25pbmcgb3V0c2lkZSBvZiB0aGUga2V5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnNvck9mZnNldCgpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAicHJlIHthbHBoYX0gcG9zdCA+IHwgQCBBTFBIQSA7IiArCisgICAgICAgICAgICAiZUFMUEhBID4gYmV0YSA7IiArCisgICAgICAgICAgICAicHJlIHtiZXRhfSBwb3N0ID4gQkVUQSBAQCB8IDsiICsKKyAgICAgICAgICAgICJwb3N0ID4geHl6IiwKKworICAgICAgICAgICAgInByZWFscGhhcG9zdCBwcmViZXRhcG9zdCIsCisgICAgICAgICAgICAicHJiZXRheHl6IHByZUJFVEFwb3N0IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXR0ZXJuOiAiICsgVXRpbGl0eS5lc2NhcGUoREFUQVtpXSkpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIERBVEFbaV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgZXhwZWN0KHQsIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgemVybyBsZW5ndGggYW5kID4gMSBjaGFyIGxlbmd0aCB2YXJpYWJsZSB2YWx1ZXMuICBUZXN0CisgICAgICogdXNlIG9mIHZhcmlhYmxlIHJlZnMgaW4gVW5pY29kZVNldHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFyYml0cmFyeVZhcmlhYmxlVmFsdWVzKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIkYWJlID0gYWI7IiArCisgICAgICAgICAgICAiJHBhdCA9IHhbeVldejsiICsKKyAgICAgICAgICAgICIkbGwgID0gJ2Eteic7IiArCisgICAgICAgICAgICAiJGxsWiA9IFskbGxdOyIgKworICAgICAgICAgICAgIiRsbFkgPSBbJGxsJHBhdF07IiArCisgICAgICAgICAgICAiJGVtcCA9IDsiICsKKworICAgICAgICAgICAgIiRhYmUgPiBBQkU7IiArCisgICAgICAgICAgICAiJHBhdCA+IEVORDsiICsKKyAgICAgICAgICAgICIkbGxaID4gMTsiICsKKyAgICAgICAgICAgICIkbGxZID4gMjsiICsKKyAgICAgICAgICAgICI3JGVtcCA4ID4gOTsiICsKKyAgICAgICAgICAgICIiLAorCisgICAgICAgICAgICAiYWIgeFl6eHl6IHN0WTc4IiwKKyAgICAgICAgICAgICJBQkUgRU5ERU5EIDExMjkiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uZmlybSB0aGF0IHRoZSBjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdCwgc3RhcnQsIGFuZCBsaW1pdAorICAgICAqIGJlaGF2ZSBjb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBvc2l0aW9uSGFuZGxpbmcoKSB7CisgICAgICAgIC8vIEFycmF5IG9mIDNuIGl0ZW1zCisgICAgICAgIC8vIEVhY2ggaXRlbSBpcyA8cnVsZXM+LCA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAwLDksMCw5CisgICAgICAgICAgICAieFRUYVNTIFRUeFVVYiIsCisKKyAgICAgICAgICAgICJhe3R9ID4gU1MgOyB7dH1iID4gVVUgOyB7dH0gPiBUVCA7IiwKKyAgICAgICAgICAgICJ4dGF0IHR4dGIiLCAvLyBwb3MgMiw5LDMsOAorICAgICAgICAgICAgInh0YVNTIFRUeFVVYiIsCisKKyAgICAgICAgICAgICJhe3R9ID4gU1MgOyB7dH1iID4gVVUgOyB7dH0gPiBUVCA7IiwKKyAgICAgICAgICAgICJ4dGF0IHR4dGIiLCAvLyBwb3MgMyw4LDMsOAorICAgICAgICAgICAgInh0YVRUIFRUeFRUYiIsCisgICAgICAgIH07CisKKyAgICAgICAgLy8gQXJyYXkgb2YgNG4gcG9zaXRpb25zIC0tIHRoZXNlIGdvIHdpdGggdGhlIERBVEEgYXJyYXkKKyAgICAgICAgLy8gVGhleSBhcmU6IGNvbnRleHRTdGFydCwgY29udGV4dExpbWl0LCBzdGFydCwgbGltaXQKKyAgICAgICAgaW50W10gUE9TID0geworICAgICAgICAgICAgMCwgOSwgMCwgOSwKKyAgICAgICAgICAgIDIsIDksIDMsIDgsCisgICAgICAgICAgICAzLCA4LCAzLCA4LAorICAgICAgICB9OworCisgICAgICAgIGludCBuID0gREFUQS5sZW5ndGgvMzsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIERBVEFbMyppXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oCisgICAgICAgICAgICAgICAgUE9TWzQqaV0sIFBPU1s0KmkrMV0sIFBPU1s0KmkrMl0sIFBPU1s0KmkrM10pOworICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhEQVRBWzMqaSsxXSk7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgcG9zKTsKKyAgICAgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIHBvcyk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbMyppKzJdOworICAgICAgICAgICAgZXhwZWN0QXV4KFV0aWxpdHkuZXNjYXBlKERBVEFbMyppXSksCisgICAgICAgICAgICAgICAgICAgICAgREFUQVszKmkrMV0sCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwKSwKKyAgICAgICAgICAgICAgICAgICAgICBleHApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgSGlyYWdhbmEtS2F0YWthbmEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEhpcmFnYW5hS2F0YWthbmEoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhrID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhpcmFnYW5hLUthdGFrYW5hIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGtoID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkthdGFrYW5hLUhpcmFnYW5hIik7CisKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzICJoayJ8ImtoInwiYm90aCIsIDxIaXJhZ2FuYT4sIDxLYXRha2FuYT4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJib3RoIiwKKyAgICAgICAgICAgICJcdTMwNDJcdTMwOTBcdTMwOTlcdTMwOTJcdTMwNTAiLAorICAgICAgICAgICAgIlx1MzBBMlx1MzBGOFx1MzBGMlx1MzBCMCIsCisKKyAgICAgICAgICAgICJraCIsCisgICAgICAgICAgICAiXHUzMDdDXHUzMDUxXHUzMDYwXHUzMDQyXHUzMDkzXHUzMEZDIiwKKyAgICAgICAgICAgICJcdTMwRENcdTMwRjZcdTMwQzBcdTMwRkNcdTMwRjNcdTMwRkMiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgc3dpdGNoIChEQVRBW2ldLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgY2FzZSAnaCc6IC8vIEhpcmFnYW5hLUthdGFrYW5hCisgICAgICAgICAgICAgICAgZXhwZWN0KGhrLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdrJzogLy8gS2F0YWthbmEtSGlyYWdhbmEKKyAgICAgICAgICAgICAgICBleHBlY3Qoa2gsIERBVEFbaSsyXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2InOiAvLyBib3RoCisgICAgICAgICAgICAgICAgZXhwZWN0KGhrLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGtoLCBEQVRBW2krMl0sIERBVEFbaSsxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3B5SjQ3NigpIHsKKyAgICAgICAgLy8gVGhpcyBpcyBhIEMrKy1vbmx5IGNvcHkgY29uc3RydWN0b3IgdGVzdAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW50ZXItSW5kaWMgdHJhbnNsaXRlcmF0b3JzLiAgVGhlc2UgYXJlIGNvbXBvc2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnRlckluZGljKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiRGV2YW5hZ2FyaS1HdWphcmF0aSI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRnID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBpZiAoZGcgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpIHJldHVybmVkIG51bGwiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaWQgPSBkZy5nZXRJRCgpOworICAgICAgICBpZiAoIWlkLmVxdWFscyhJRCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKS5nZXRJRCgpID0+ICIgKyBpZCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGRldiA9ICJcdTA5MDFcdTA5MEJcdTA5MjUiOworICAgICAgICBTdHJpbmcgZ3VqID0gIlx1MEE4MVx1MEE4Qlx1MEFBNSI7CisgICAgICAgIGV4cGVjdChkZywgZGV2LCBndWopOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZmlsdGVyIHN5bnRheCBpbiBJRHMuIChKMjMpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpbHRlcklEcygpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJbYWVpb3VdQW55LUhleCIsIC8vIElECisgICAgICAgICAgICAiW2FlaW91XUhleC1BbnkiLCAvLyBleHBlY3RlZCBpbnZlcnNlIElECisgICAgICAgICAgICAicXVpenppY2FsIiwgICAgICAvLyBzcmMKKyAgICAgICAgICAgICJxXFx1MDA3NVxcdTAwNjl6elxcdTAwNjljXFx1MDA2MWwiLCAvLyBleHBlY3RlZCBJRC50cmFuc2xpdChzcmMpCisKKyAgICAgICAgICAgICJbYWVpb3VdQW55LUhleDtbXjVdSGV4LUFueSIsCisgICAgICAgICAgICAiW141XUFueS1IZXg7W2FlaW91XUhleC1BbnkiLAorICAgICAgICAgICAgInF1aXp6aWNhbCIsCisgICAgICAgICAgICAicVxcdTAwNzVpenppY2FsIiwKKworICAgICAgICAgICAgIlthYmNdTnVsbCIsCisgICAgICAgICAgICAiW2FiY11OdWxsIiwKKyAgICAgICAgICAgICJ4eXoiLAorICAgICAgICAgICAgInh5eiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBEQVRBW2ldOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMl0sIERBVEFbaSszXSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIHRoZSBJRAorICAgICAgICAgICAgaWYgKCFJRC5lcXVhbHModC5nZXRJRCgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKS5nZXRJRCgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENoZWNrIHRoZSBpbnZlcnNlCisgICAgICAgICAgICBTdHJpbmcgdUlEID0gREFUQVtpKzFdOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgaWYgKHUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLmdldEludmVyc2UoKSByZXR1cm5lZCBOVUxMIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCF1LmdldElEKCkuZXF1YWxzKHVJRCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIi5nZXRJbnZlcnNlKCkuZ2V0SUQoKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB1LmdldElEKCkgKyAiLCBleHBlY3RlZCAiICsgdUlEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNhc2UgbWFwcGluZyB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VNYXAoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRvVXBwZXIgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1VcHBlclteeHl6WFlaXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0b0xvd2VyID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTG93ZXJbXnh5elhZWl0iKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdG9UaXRsZSA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LVRpdGxlW154eXpYWVpdIik7CisKKyAgICAgICAgZXhwZWN0KHRvVXBwZXIsICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJUSEUgUVVJQ0sgQlJPV04gRk94IEpVTVBFRCBPVkVSIFRIRSBMQXp5IERPR1MuIik7CisgICAgICAgIGV4cGVjdCh0b0xvd2VyLCAiVGhlIHF1SWNrIGJyb3duIGZPWCBqVU1QRUQgT1ZFUiBUSEUgTEF6WSBkb2dzLiIsCisgICAgICAgICAgICAgICAidGhlIHF1aWNrIGJyb3duIGZvWCBqdW1wZWQgb3ZlciB0aGUgbGF6WSBkb2dzLiIpOworICAgICAgICBleHBlY3QodG9UaXRsZSwgInRoZSBxdWljayBicm93biBmb1ggY2FOJ1QganVtcCBvdmVyIHRoZSBsYVp5IGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJUaGUgUXVpY2sgQnJvd24gRm9YIENhbid0IEp1bXAgT3ZlciBUaGUgTGFaeSBEb2dzLiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG5hbWUgbWFwcGluZyB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5hbWVNYXAoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHVuaTJuYW1lID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZVteYWJjXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBuYW1lMnVuaSA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTmFtZS1BbnkiKTsKKworICAgICAgICBleHBlY3QodW5pMm5hbWUsICJcdTAwQTBhYmNcdTRFMDFcdTAwQjVcdTBBODFcdUZGRkRcdTAwMDRcdTAwMDlcdTAwODFcdUZGRkYiLAorICAgICAgICAgICAgICAgIlxcTntOTy1CUkVBSyBTUEFDRX1hYmNcXE57Q0pLIFVOSUZJRUQgSURFT0dSQVBILTRFMDF9XFxOe01JQ1JPIFNJR059XFxOe0dVSkFSQVRJIFNJR04gQ0FORFJBQklORFV9XFxOe1JFUExBQ0VNRU5UIENIQVJBQ1RFUn1cXE57RU5EIE9GIFRSQU5TTUlTU0lPTn1cXE57Q0hBUkFDVEVSIFRBQlVMQVRJT059XFxOezxjb250cm9sLTAwODE+fVxcTns8bm9uY2hhcmFjdGVyLUZGRkY+fSIpOworICAgICAgICBleHBlY3QobmFtZTJ1bmksICJ7XFxOIHsgTk8tQlJFQUsgU1BBQ0V9YWJjXFxOeyAgQ0pLIFVOSUZJRUQgIElERU9HUkFQSC00RTAxICB9XFxOe3hcXE57TUlDUk8gU0lHTn1cXE57R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVX1cXE57UkVQTEFDRU1FTlQgQ0hBUkFDVEVSfVxcTntFTkQgT0YgVFJBTlNNSVNTSU9OfVxcTntDSEFSQUNURVIgVEFCVUxBVElPTn1cXE57PGNvbnRyb2wtMDA4MT59XFxOezxub25jaGFyYWN0ZXItRkZGRj59XFxOezxjb250cm9sLTAwMDQ+fVxcTnsiLAorICAgICAgICAgICAgICAgIntcdTAwQTBhYmNcdTRFMDFcXE57eFx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRlx1MDAwNFxcTnsiKTsKKworICAgICAgICAvLyByb3VuZCB0cmlwCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LU5hbWU7TmFtZS1BbnkiKTsKKworICAgICAgICBTdHJpbmcgcyA9ICJ7XHUwMEEwYWJjXHU0RTAxXFxOe3hcdTAwQjVcdTBBODFcdUZGRkRcdTAwMDRcdTAwMDlcdTAwODFcdUZGRkZcdTAwMDRcXE57IjsKKyAgICAgICAgZXhwZWN0KHQsIHMsIHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbGliZXJhbGl6ZWQgSUQgc3ludGF4LiAgMTAwNmMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TGliZXJhbGl6ZWRJRCgpIHsKKyAgICAgICAgLy8gU29tZSB0ZXN0IGNhc2VzIGhhdmUgYW4gZXhwZWN0ZWQgZ2V0SUQoKSB2YWx1ZSBvZiBOVUxMLiAgVGhpcworICAgICAgICAvLyBtZWFucyBJIGhhdmUgZGlzYWJsZWQgdGhlIHRlc3QgY2FzZSBmb3Igbm93LiAgVGhpcyBzdHVmZiBpcworICAgICAgICAvLyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCwgYW5kIEkgaGF2ZW4ndCBkZWNpZGVkIHdoZXRoZXIgdG8gbWFrZQorICAgICAgICAvLyBnZXRJRCgpIHJldHVybiBjYW5vbmljYWwgY2FzZSB5ZXQuICBJdCB3aWxsIGFsbCBnZXQgcmV3cml0dGVuCisgICAgICAgIC8vIHdpdGggdGhlIG1vdmUgdG8gU291cmNlLVRhcmdldC9WYXJpYW50IElEcyBhbnl3YXkuIFthbGl1XQorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgImxhdGluLWdyZWVrIiwgbnVsbCAvKiJMYXRpbi1HcmVlayIqLywgImNhc2UgaW5zZW5zaXRpdml0eSIsCisgICAgICAgICAgICAiICBOdWxsICAiLCAiTnVsbCIsICJ3aGl0ZXNwYWNlIiwKKyAgICAgICAgICAgICIgTGF0aW5bYS16XS1HcmVlayAgIiwgIlthLXpdTGF0aW4tR3JlZWsiLCAiaW5saW5lIGZpbHRlciIsCisgICAgICAgICAgICAiICBudWxsICA7IGxhdGluLWdyZWVrICAiLCBudWxsIC8qIk51bGw7TGF0aW4tR3JlZWsiKi8sICJjb21wb3VuZCB3aGl0ZXNwYWNlIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKERBVEFbaV0pOworICAgICAgICAgICAgICAgIGlmIChEQVRBW2krMV0gPT0gbnVsbCB8fCBEQVRBW2krMV0uZXF1YWxzKHQuZ2V0SUQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtpKzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjcmVhdGUgSUQgXCIiICsgREFUQVtpXSArICJcIiA9PiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaSsyXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgY3JlYXRlIElEIFwiIiArIERBVEFbaV0gKyAiXCIgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdC5nZXRJRCgpICsgIlwiLCBleHAgXCIiICsgREFUQVtpKzFdICsgIlwiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaSsyXSArCisgICAgICAgICAgICAgICAgICAgICAgIiBjcmVhdGUgSUQgXCIiICsgREFUQVtpXSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENyZWF0ZUluc3RhbmNlKCkgeworICAgICAgICBTdHJpbmcgRk9SV0FSRCA9ICJGIjsKKyAgICAgICAgU3RyaW5nIFJFVkVSU0UgPSAiUiI7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBDb2x1bW4gMTogaWQKKyAgICAgICAgICAgIC8vIENvbHVtbiAyOiBkaXJlY3Rpb24KKyAgICAgICAgICAgIC8vIENvbHVtbiAzOiBleHBlY3RlZCBJRCwgb3IgIiIgaWYgZXhwZWN0IGZhaWx1cmUKKyAgICAgICAgICAgICJMYXRpbi1IYW5ndWwiLCBSRVZFUlNFLCAiSGFuZ3VsLUxhdGluIiwgLy8gSkIjOTEyCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEpCIzI2ODk6IGJhZCBjb21wb3VuZCBjYXVzZXMgY3Jhc2gKKyAgICAgICAgICAgICJJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQiLCBGT1JXQVJELCAiIiwKKyAgICAgICAgICAgICJJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQiLCBSRVZFUlNFLCAiIiwKKyAgICAgICAgICAgICJIZXgtQW55O0ludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldCIsIEZPUldBUkQsICIiLAorICAgICAgICAgICAgIkhleC1Bbnk7SW52YWxpZFNvdXJjZS1JbnZhbGlkVGFyZ2V0IiwgUkVWRVJTRSwgIiIsCisgICAgICAgICAgICAiSW52YWxpZFNvdXJjZS1JbnZhbGlkVGFyZ2V0O0hleC1BbnkiLCBGT1JXQVJELCAiIiwKKyAgICAgICAgICAgICJJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQ7SGV4LUFueSIsIFJFVkVSU0UsICIiLAorICAgICAgICAgICAgCisgICAgICAgICAgICBudWxsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IERBVEFbaV0hPW51bGw7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBpZD1EQVRBW2ldOworICAgICAgICAgICAgaW50IGRpciA9IChEQVRBW2krMV09PUZPUldBUkQpPworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQ6VHJhbnNsaXRlcmF0b3IuUkVWRVJTRTsKKyAgICAgICAgICAgIFN0cmluZyBleHBJRD1EQVRBW2krMl07CisgICAgICAgICAgICBFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsZGlyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIGUgPSBlMTsKKyAgICAgICAgICAgICAgICB0ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBuZXdJRCA9ICh0IT1udWxsKT90LmdldElEKCk6IiI7CisgICAgICAgICAgICBib29sZWFuIG9rID0gKG5ld0lELmVxdWFscyhleHBJRCkpOworICAgICAgICAgICAgaWYgKHQ9PW51bGwpIHsKKyAgICAgICAgICAgICAgICBuZXdJRCA9IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9rKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBjcmVhdGVJbnN0YW5jZSgiICsKKyAgICAgICAgICAgICAgICAgICAgICBpZCArICIsIiArIERBVEFbaSsxXSArICIpID0+ICIgKyBuZXdJRCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSgiICsKKyAgICAgICAgICAgICAgICAgICAgICBpZCArICIsIiArIERBVEFbaSsxXSArICIpID0+ICIgKyBuZXdJRCArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cElEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG5vcm1hbGl6YXRpb24gdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBUV08gVEFCTEVTIEFSRSBDT1BJRUQgRlJPTSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyLkJhc2ljVGVzdAorICAgICAgICAvLyBQTEVBU0UgS0VFUCBUSEVNIElOIFNZTkMgV0lUSCBCYXNpY1Rlc3QuCisgICAgICAgIFN0cmluZ1tdW10gQ0FOT04gPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICAgICAgeyJjYXQiLCAgICAgICAgICAgICAgICAiY2F0IiwgICAgICAgICAgICAgICAgImNhdCIgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyJcdTAwZTBhcmR2YXJrIiwgICAgICAiYVx1MDMwMGFyZHZhcmsiLCAgICAgIlx1MDBlMGFyZHZhcmsiICAgICB9LAorCisgICAgICAgICAgICB7Ilx1MWUwYSIsICAgICAgICAgICAgICJEXHUwMzA3IiwgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQtZG90X2Fib3ZlCisgICAgICAgICAgICB7IkRcdTAzMDciLCAgICAgICAgICAgICJEXHUwMzA3IiwgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQgZG90X2Fib3ZlCisKKyAgICAgICAgICAgIHsiXHUxZTBjXHUwMzA3IiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICJcdTFlMGNcdTAzMDciICAgICAgfSwgLy8gRC1kb3RfYmVsb3cgZG90X2Fib3ZlCisgICAgICAgICAgICB7Ilx1MWUwYVx1MDMyMyIsICAgICAgICJEXHUwMzIzXHUwMzA3IiwgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2Fib3ZlIGRvdF9iZWxvdworICAgICAgICAgICAgeyJEXHUwMzA3XHUwMzIzIiwgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBEIGRvdF9iZWxvdyBkb3RfYWJvdmUKKworICAgICAgICAgICAgeyJcdTFlMTBcdTAzMDdcdTAzMjMiLCAiRFx1MDMyN1x1MDMyM1x1MDMwNyIsIlx1MWUxMFx1MDMyM1x1MDMwNyJ9LCAvLyBEIGRvdF9iZWxvdyBjZWRpbGxhIGRvdF9hYm92ZQorICAgICAgICAgICAgeyJEXHUwMzA3XHUwMzI4XHUwMzIzIiwiRFx1MDMyOFx1MDMyM1x1MDMwNyIsIlx1MWUwY1x1MDMyOFx1MDMwNyJ9LCAvLyBEIGRvdF9hYm92ZSBvZ29uZWsgZG90X2JlbG93CisKKyAgICAgICAgICAgIHsiXHUxRTE0IiwgICAgICAgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICJcdTFFMTQiICAgICAgICAgICAgfSwgLy8gRS1tYWNyb24tZ3JhdmUKKyAgICAgICAgICAgIHsiXHUwMTEyXHUwMzAwIiwgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICJcdTFFMTQiICAgICAgICAgICAgfSwgLy8gRS1tYWNyb24gKyBncmF2ZQorICAgICAgICAgICAgeyJcdTAwYzhcdTAzMDQiLCAgICAgICAiRVx1MDMwMFx1MDMwNCIsICAgICAgIlx1MDBjOFx1MDMwNCIgICAgICB9LCAvLyBFLWdyYXZlICsgbWFjcm9uCisKKyAgICAgICAgICAgIHsiXHUyMTJiIiwgICAgICAgICAgICAgIkFcdTAzMGEiLCAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gYW5nc3Ryb21fc2lnbgorICAgICAgICAgICAgeyJcdTAwYzUiLCAgICAgICAgICAgICAiQVx1MDMwYSIsICAgICAgICAgICAgIlx1MDBjNSIgICAgICAgICAgICB9LCAvLyBBLXJpbmcKKworICAgICAgICAgICAgeyJcdTAwZmRmZmluIiwgICAgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKyAgICAgICAgICAgIHsiXHUwMGZkXHVGQjAzbiIsICAgICAgInlcdTAzMDFcdUZCMDNuIiwgICAgICJcdTAwZmRcdUZCMDNuIiAgICAgfSwgLy91cGRhdGVkIHdpdGggMy4wCisKKyAgICAgICAgICAgIHsiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBcdTIxNjMiICAgICAgfSwKKworICAgICAgICAgICAgeyJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBnYSAoS2F0YWthbmEpCisgICAgICAgICAgICB7Ilx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGthICsgdGVuCisgICAgICAgICAgICB7Ilx1RkY3Nlx1RkY5RSIsICAgICAgICJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHVGRjc2XHVGRjlFIiAgICAgIH0sIC8vIGh3X2thICsgaHdfdGVuCisgICAgICAgICAgICB7Ilx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdUZGOUUiLCAgICAgICAiXHUzMEFCXHVGRjlFIiAgICAgIH0sIC8vIGthICsgaHdfdGVuCisgICAgICAgICAgICB7Ilx1RkY3Nlx1MzA5OSIsICAgICAgICJcdUZGNzZcdTMwOTkiLCAgICAgICAiXHVGRjc2XHUzMDk5IiAgICAgIH0sIC8vIGh3X2thICsgdGVuCisKKyAgICAgICAgICAgIHsiQVx1MDMwMFx1MDMxNiIsICAgICAgIkFcdTAzMTZcdTAzMDAiLCAgICAgICJcdTAwQzBcdTAzMTYiICAgICAgfSwKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXVtdIENPTVBBVCA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7Ilx1RkI0ZiIsICAgICAgICAgICAgICJcdTA1RDBcdTA1REMiLCAgICAgICAiXHUwNUQwXHUwNURDIiAgICAgIH0sIC8vIEFsZWYtTGFtZWQgdnMuIEFsZWYsIExhbWVkCisKKyAgICAgICAgICAgIHsiXHUwMGZkZmZpbiIsICAgICAgICAgInlcdTAzMDFmZmluIiwgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy91cGRhdGVkIGZvciAzLjAKKyAgICAgICAgICAgIHsiXHUwMGZkXHVGQjAzbiIsICAgICAgInlcdTAzMDFmZmluIiwgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy8gZmZpIGxpZ2F0dXJlIC0+IGYgKyBmICsgaQorCisgICAgICAgICAgICB7IkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgICAgICB7IkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsiXHUzMEFDIiwgICAgICAgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gZ2EgKEthdGFrYW5hKQorICAgICAgICAgICAgeyJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorCisgICAgICAgICAgICB7Ilx1RkY3Nlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGh3X2thICsgdGVuCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgTkZEID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBORkMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZDIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxDQU5PTi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGluID0gQ0FOT05baV1bMF07CisgICAgICAgICAgICBTdHJpbmcgZXhwZCA9IENBTk9OW2ldWzFdOworICAgICAgICAgICAgU3RyaW5nIGV4cGMgPSBDQU5PTltpXVsyXTsKKyAgICAgICAgICAgIGV4cGVjdChORkQsIGluLCBleHBkKTsKKyAgICAgICAgICAgIGV4cGVjdChORkMsIGluLCBleHBjKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GS0QgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZLRCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBORktDID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GS0MiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPENPTVBBVC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGluID0gQ09NUEFUW2ldWzBdOworICAgICAgICAgICAgU3RyaW5nIGV4cGtkID0gQ09NUEFUW2ldWzFdOworICAgICAgICAgICAgU3RyaW5nIGV4cGtjID0gQ09NUEFUW2ldWzJdOworICAgICAgICAgICAgZXhwZWN0KE5GS0QsIGluLCBleHBrZCk7CisgICAgICAgICAgICBleHBlY3QoTkZLQywgaW4sIGV4cGtjKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEOyBbeF1SZW1vdmUiKTsKKyAgICAgICAgZXhwZWN0KHQsICJcdTAxMGR4IiwgImNcdTAzMEMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGNvbXBvdW5kIFJCVCBydWxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRSQlQoKSB7CisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGFuZCAnOycgaGVyZTogIFBocmFzZSB0aGlzIGV4YWN0bHkKKyAgICAgICAgLy8gYXMgdG9SdWxlcygpIGlzIGdvaW5nIHRvIHJldHVybiBpdC4gIElmIHRvUnVsZXMoKSBjaGFuZ2VzCisgICAgICAgIC8vIHdpdGggcmVnYXJkIHRvIHNwYWNpbmcgb3IgJzsnLCB0aGVuIGFkanVzdCB0aGlzIHN0cmluZy4KKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiOjpIZXgtQW55O1xuIiArCisgICAgICAgICAgICAgICAgICAgICAgIjo6QW55LUxvd2VyO1xuIiArCisgICAgICAgICAgICAgICAgICAgICAgImEgPiAnLkEuJztcbiIgKworICAgICAgICAgICAgICAgICAgICAgICJiID4gJy5CLic7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiOjpbXnRdQW55LVVwcGVyOyI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBleHBlY3QodCwgIlx1MDA0M2F0IGluIHRoZSBoYXQsIGJhdCBvbiB0aGUgbWF0IiwKKyAgICAgICAgICAgICAgICJDLkEudCBJTiB0SEUgSC5BLnQsIC5CLi5BLnQgT04gdEhFIE0uQS50Iik7CisgICAgICAgIFN0cmluZyByID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoci5lcXVhbHMocnVsZSkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1J1bGVzKCkgPT4gIiArIHIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHJ1bGUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IHRlc3QgdG9SdWxlcworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkdyZWVrLUxhdGluOyBMYXRpbi1DeXJpbGxpYyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW5zdGFuY2UgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGV4cCA9ICI6OkdyZWVrLUxhdGluO1xuOjpMYXRpbi1DeXJpbGxpYzsiOworICAgICAgICByID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoIXIuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1J1bGVzKCkgPT4gIiArIHIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IHRvUnVsZXMoKSA9PiAiICsgcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBSb3VuZCB0cmlwIHRoZSByZXN1bHQgb2YgdG9SdWxlcworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgciwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgIzIgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGNyZWF0ZUZyb21SdWxlcygiICsgciArICIpIHN1Y2NlZWRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB0b1J1bGVzIGFnYWluCisgICAgICAgIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgRm9vKEJhcikgSURzLiAgQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgaW4gaWQ7IG1ha2UgaXQgY29uZm9ybQorICAgICAgICAvLyB0byB3aGF0IHRoZSByZWdlbmVyYXRlZCBJRCB3aWxsIGxvb2sgbGlrZS4KKyAgICAgICAgU3RyaW5nIGlkID0gIlVwcGVyKExvd2VyKTsoTkZLQykiOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW5zdGFuY2UgIzIgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHQuZ2V0SUQoKS5lcXVhbHMoaWQpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGNyZWF0ZWQgIiArIGlkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSgiICsgaWQgKworICAgICAgICAgICAgICAgICAgIikuZ2V0SUQoKSA9PiAiICsgdC5nZXRJRCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgaWYgKHUgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUludmVyc2UgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXhwID0gIk5GS0MoKTtMb3dlcihVcHBlcikiOworICAgICAgICBpZiAodS5nZXRJRCgpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGNyZWF0ZUludmVyc2UoIiArIGlkICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICB1LmdldElEKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUludmVyc2UoIiArIGlkICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICB1LmdldElEKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcG91bmQgZmlsdGVyIHNlbWFudGljcyB3ZXJlIG9yZ2luaWFsbHkgbm90IGltcGxlbWVudGVkCisgICAgICogY29ycmVjdGx5LiAgT3JpZ2luYWxseSwgZWFjaCBjb21wb25lbnQgZmlsdGVyIGYoaSkgaXMgcmVwbGFjZWQgYnkKKyAgICAgKiBmJyhpKSA9IGYoaSkgJiYgZywgd2hlcmUgZyBpcyB0aGUgZmlsdGVyIGZvciB0aGUgY29tcG91bmQKKyAgICAgKiB0cmFuc2xpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEZyb20gTWFyazoKKyAgICAgKgorICAgICAqIFN1cHBvc2UgYW5kIEkgaGF2ZSBhIHRyYW5zbGl0ZXJhdG9yIFguIEludGVybmFsbHkgWCBpcworICAgICAqICJHcmVlay1MYXRpbjsgTGF0aW4tQ3lyaWxsaWM7IEFueS1Mb3dlciIuIEkgdXNlIGEgZmlsdGVyIFteQV0uCisgICAgICoKKyAgICAgKiBUaGUgY29tcG91bmQgc2hvdWxkIGNvbnZlcnQgYWxsIGdyZWVrIGNoYXJhY3RlcnMgKHRocm91Z2ggbGF0aW4pIHRvCisgICAgICogY3lyaWxsaWMsIHRoZW4gbG93ZXJjYXNlIHRoZSByZXN1bHQuIFRoZSBmaWx0ZXIgc2hvdWxkIHNheSAiZG9uJ3QKKyAgICAgKiB0b3VjaCAnQScgaW4gdGhlIG9yaWdpbmFsIi4gQnV0IGJlY2F1c2UgYW4gaW50ZXJtZWRpYXRlIHJlc3VsdAorICAgICAqIGhhcHBlbnMgdG8gZ28gdGhyb3VnaCAiQSIsIHRoZSBHcmVlayBBbHBoYSBnZXRzIGh1bmcgdXAuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kRmlsdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UKKyAgICAgICAgICAgICgiR3JlZWstTGF0aW47IExhdGluLUdyZWVrOyBMb3dlciIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB0LnNldEZpbHRlcihuZXcgVW5pY29kZVNldCgiW15BXSIpKTsKKworICAgICAgICAvLyBPbmx5IHRoZSAnQScgYXQgaW5kZXggMSBzaG91bGQgcmVtYWluIHVuY2hhbmdlZAorICAgICAgICBleHBlY3QodCwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJCQVxcdTAzOUFcXHUwMzkxIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFx1MDNiMkFcXHUwM2JhXFx1MDNiMSIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSAiUmVtb3ZlIiB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVtb3ZlKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlJlbW92ZVthZWlvdV0iKTsKKyAgICAgICAgZXhwZWN0KHQsICJUaGUgcXVpY2sgYnJvd24gZm94LiIsCisgICAgICAgICAgICAgICAiVGggcWNrIGJyd24gZnguIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRvUnVsZXMoKSB7CisgICAgICAgIFN0cmluZyBSQlQgPSAicmJ0IjsKKyAgICAgICAgU3RyaW5nIFNFVCA9ICJzZXQiOworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhPVxcdTRFNjE7IFskYV0gPiBBOyIsCisgICAgICAgICAgICAiW1xcdTRFNjFdID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJHdoaXRlPVtbOlpzOl1bOlpsOl1dOyAkd2hpdGV7YX0gPiBBOyIsCisgICAgICAgICAgICAiW1s6WnM6XVs6Wmw6XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbWzpaczpdWzpabDpdXSIsCisgICAgICAgICAgICAiW1s6WnM6XVs6Wmw6XV0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiWzpQczpdIiwKKyAgICAgICAgICAgICJbOlBzOl0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiWzpMOl0iLAorICAgICAgICAgICAgIls6TDpdIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIltbOkw6XS1bQV1dIiwKKyAgICAgICAgICAgICJbWzpMOl0tW0FdXSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbfls6THU6XVs6TGw6XV0iLAorICAgICAgICAgICAgIlt+WzpMdTpdWzpMbDpdXSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbflthLXpdXSIsCisgICAgICAgICAgICAiW35bYS16XV0iLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJHdoaXRlPVs6WnM6XTsgJGJsYWNrPVteJHdoaXRlXTsgJGJsYWNre2F9ID4gQTsiLAorICAgICAgICAgICAgIlteWzpaczpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhPVs6WnM6XTsgJGI9W1thLXpdLSRhXTsgJGJ7YX0gPiBBOyIsCisgICAgICAgICAgICAiW1thLXpdLVs6WnM6XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYT1bOlpzOl07ICRiPVskYSZbYS16XV07ICRie2F9ID4gQTsiLAorICAgICAgICAgICAgIltbOlpzOl0mW2Etel1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9WzpaczpdOyAkYj1beCRhXTsgJGJ7YX0gPiBBOyIsCisgICAgICAgICAgICAiW3hbOlpzOl1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGFjY2VudE1pbnVzID0gWyBbXFx1MDMwMC1cXHUwMzQ1XSAmIFs6TTpdIC0gW1xcdTAzMzhdXSA7IisKKyAgICAgICAgICAgICIkbWFjcm9uID0gXFx1MDMwNCA7IisKKyAgICAgICAgICAgICIkZXZvd2VsID0gW2FlaW91eUFFSU9VWV0gOyIrCisgICAgICAgICAgICAiJGlvdGFzdWIgPSBcXHUwMzQ1IDsiKworICAgICAgICAgICAgIigkZXZvd2VsICRtYWNyb24gJGFjY2VudE1pbnVzICopIGkgPiB8ICQxICRpb3Rhc3ViIDsiLAorICAgICAgICAgICAgIihbQUVJT1VZYWVpb3V5XVxcdTAzMDRbW1xcdTAzMDAtXFx1MDM0NV0mWzpNOl0tW1xcdTAzMzhdXSopaSA+IHwgJDEgXFx1MDM0NTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiKFtBRUlPVVlhZWlvdXldXFx1MDMwNFtbOk06XS1bXFx1MDMwNFxcdTAzNDVdXSopaSA+IHwgJDEgXFx1MDM0NTsiLAorICAgICAgICAgICAgIihbQUVJT1VZYWVpb3V5XVxcdTAzMDRbWzpNOl0tW1xcdTAzMDRcXHUwMzQ1XV0qKWkgPiB8ICQxIFxcdTAzNDU7IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBkPTA7IGQgPCBEQVRBLmxlbmd0aDsgZCs9MykgeworICAgICAgICAgICAgaWYgKERBVEFbZF0gPT0gUkJUKSB7CisgICAgICAgICAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3IgdGVzdAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFbZCsxXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBydWxlcywgZXNjYXBlZFJ1bGVzOworICAgICAgICAgICAgICAgIHJ1bGVzID0gdC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBlc2NhcGVkUnVsZXMgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFJ1bGVzID0gVXRpbGl0eS51bmVzY2FwZShEQVRBW2QrMl0pOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBFc2NhcGVkUnVsZXMgPSBEQVRBW2QrMl07CisgICAgICAgICAgICAgICAgaWYgKHJ1bGVzLmVxdWFscyhleHBSdWxlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgVXRpbGl0eS5lc2NhcGUocnVsZXMpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbZCsxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIFV0aWxpdHkuZXNjYXBlKHJ1bGVzICsgIiwgZXhwICIgKyBleHBSdWxlcykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZFJ1bGVzLmVxdWFscyhleHBFc2NhcGVkUnVsZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbZCsxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGVzY2FwZWRSdWxlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2QrMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBlc2NhcGVkUnVsZXMgKyAiLCBleHAgIiArIGV4cEVzY2FwZWRSdWxlcyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFVuaWNvZGVTZXQgdGVzdAorICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBEQVRBW2QrMV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFRvUGF0ID0gREFUQVtkKzJdOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKworICAgICAgICAgICAgICAgIC8vIEFkanVzdCBzcGFjaW5nIGV0Yy4gYXMgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgIFN0cmluZyB0b1BhdDsKKyAgICAgICAgICAgICAgICB0b1BhdCA9IHNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGV4cFRvUGF0LmVxdWFscyh0b1BhdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgcGF0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgdG9QYXQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgcGF0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgVXRpbGl0eS5lc2NhcGUodG9QYXQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwICIgKyBVdGlsaXR5LmVzY2FwZShwYXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udGV4dCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDAsIDIsIDAsIDEpOyAvLyBjcyBjbCBzIGwKKworICAgICAgICBleHBlY3QoImRlID4geDsge2R9ZSA+IHk7IiwKKyAgICAgICAgICAgICAgICJkZSIsCisgICAgICAgICAgICAgICAieWUiLAorICAgICAgICAgICAgICAgcG9zKTsKKworICAgICAgICBleHBlY3QoImFie2N9ID4gejsiLAorICAgICAgICAgICAgICAgInhhZGFiZGFiY3kiLAorICAgICAgICAgICAgICAgInhhZGFiZGFienkiKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENoYXJzVG9Vbmljb2RlU3RyaW5nKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBVdGlsaXR5LnVuZXNjYXBlKHMpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXBwbGVtZW50YWwoKSB7CisKKyAgICAgICAgZXhwZWN0KENoYXJzVG9Vbmljb2RlU3RyaW5nKCIkYT1cXFUwMDAxMDMwMDsgJHM9W1xcVTAwMDEwMzAwLVxcVTAwMDEwMzIzXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhID4gJGE7ICRzID4gaTsiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJhYlxcVTAwMDEwMzBGeCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzAwYml4IikpOworCisgICAgICAgIGV4cGVjdChDaGFyc1RvVW5pY29kZVN0cmluZygiJGE9W2EtelxcVTAwMDEwMzAwLVxcVTAwMDEwMzIzXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkYj1bQS1aXFxVMDAwMTA0MDAtXFxVMDAwMTA0NERdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigkYSkoJGIpID4gJDIgJDE7IiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiYUJcXFUwMDAxMDMwMFxcVTAwMDEwNDAwY1xcVTAwMDEwNDAxXFxVMDAwMTAzMDFEIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQmFcXFUwMDAxMDQwMFxcVTAwMDEwMzAwXFxVMDAwMTA0MDFjRFxcVTAwMDEwMzAxIikpOworCisgICAgICAgIC8vIGt8YXhcXFUwMDAxMDMwMHhtCisKKyAgICAgICAgLy8ga3xhXFxVMDAwMTA0MDBcXFUwMDAxMDMwMHhtCisgICAgICAgIC8vIGt5fFxcVTAwMDEwNDAwXFxVMDAwMTAzMDB4bQorICAgICAgICAvLyBreVxcVTAwMDEwNDAwfFxcVTAwMDEwMzAweG0KKworICAgICAgICAvLyBreVxcVTAwMDEwNDAwfFxcVTAwMDEwMzAwXFxVMDAwMTA0MDBtCisgICAgICAgIC8vIGt5XFxVMDAwMTA0MDB5fFxcVTAwMDEwNDAwbQorICAgICAgICBleHBlY3QoQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIiRhPVthXFxVMDAwMTAzMDAtXFxVMDAwMTAzMjNdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRhIHt4fSA+IHwgQCBcXFUwMDAxMDQwMDsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ7JGF9IFteXFx1MDAwMC1cXHVGRkZGXSA+IHk7IiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygia2F4XFxVMDAwMTAzMDB4bSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImt5XFxVMDAwMTA0MDB5XFxVMDAwMTA0MDBtIikpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LU5hbWUiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlxcTntHT1RISUMgTEVUVEVSIEFIU0F9XFxOe1RBRyBMQVRJTiBTTUFMTCBMRVRURVIgQX1cXE57Tk8tQlJFQUsgU1BBQ0V9Iik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOYW1lLUFueSIpLAorICAgICAgICAgICAgICAgIlxcTntHT1RISUMgTEVUVEVSIEFIU0F9XFxOe1RBRyBMQVRJTiBTTUFMTCBMRVRURVIgQX1cXE57Tk8tQlJFQUsgU1BBQ0V9IiwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMEUwMDYxXFx1MDBBMCIpKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvVW5pY29kZSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJVKzEwMzMwVSsxMEZGMDBVK0UwMDYxVSswMEEwIik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L0MiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9QZXJsIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlxceHsxMDMzMH1cXHh7MTBGRjAwfVxceHtFMDA2MX1cXHh7QTB9Iik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L0phdmEiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFx1RDgwMFxcdURGMzBcXHVEQkZGXFx1REYwMFxcdURCNDBcXHVEQzYxXFx1MDBBMCIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9YTUwiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiJiN4MTAzMzA7JiN4MTBGRjAwOyYjeEUwMDYxOyYjeEEwOyIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9YTUwxMCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICImIzY2MzUyOyYjMTExMzg1NjsmIzkxNzYwMTsmIzE2MDsiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIltcXFUwMDBFMDAwMC1cXFUwMDBFMEZGRl0gUmVtb3ZlIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXHUwMEEwIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RRdWFudGlmaWVyKCkgeworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIGluIGEgcXVhbnRpZmllZCBhbnRlQ29udGV4dCB3b3JrcworICAgICAgICBleHBlY3QoImErIHtifSA+IHwgQEAgYzsgQSA+IGE7IChhKyBjKSA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJBQUFBQWIiLAorICAgICAgICAgICAgICAgImFhYShhYWMpIik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgaW4gYSBxdWFudGlmaWVkIHBvc3RDb250ZXh0IHdvcmtzCisgICAgICAgIGV4cGVjdCgie2J9IGErID4gYyBAQCB8OyAoYSspID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgImJhYWFhYSIsCisgICAgICAgICAgICAgICAiY2FhKGFhYSkiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBpbiBhIHF1YW50aWZpZWQgcG9zdENvbnRleHQgd2l0aCBzZWcgcmVmIHdvcmtzCisgICAgICAgIGV4cGVjdCgieyhiKX0gYSsgPiAkMSBAQCB8OyAoYSspID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgImJhYWFhYSIsCisgICAgICAgICAgICAgICAiYmFhKGFhYSkiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBwYXN0IGFudGUgY29udGV4dCBkb2Vzbid0IGVudGVyIGFudGUgY29udGV4dAorICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgNSwgMywgNSk7CisgICAgICAgIGV4cGVjdCgiYSsge2J9ID4gfCBAQCBjOyB4ID4geTsgKGErIGMpID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgInh4eGFiIiwKKyAgICAgICAgICAgICAgICJ4eHgoYWMpIiwKKyAgICAgICAgICAgICAgIHBvcyk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgcGFzdCBwb3N0IGNvbnRleHQgZG9lc24ndCBwYXNzIGxpbWl0CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvczIgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgNCwgMCwgMik7CisgICAgICAgIGV4cGVjdCgie2J9IGErID4gYyBAQCB8OyB4ID4geTsgYSA+IEE7IiwKKyAgICAgICAgICAgICAgICJiYXh4IiwKKyAgICAgICAgICAgICAgICJjYXh4IiwKKyAgICAgICAgICAgICAgIHBvczIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIHBhc3QgcG9zdCBjb250ZXh0IGRvZXNuJ3QgZW50ZXIgcG9zdCBjb250ZXh0CisgICAgICAgIGV4cGVjdCgie2J9IGErID4gYyBAQCB8OyB4ID4geTsgYSA+IEE7IiwKKyAgICAgICAgICAgICAgICJiYXh4IiwKKyAgICAgICAgICAgICAgICJjYXl5Iik7CisKKyAgICAgICAgZXhwZWN0KCIoYWIpPyBjID4gZDsiLAorICAgICAgICAgICAgICAgImMgYWJjIGFiYWJjIiwKKyAgICAgICAgICAgICAgICJkIGQgYWJkIik7CisKKyAgICAgICAgLy8gTk9URTogVGhlIChhYikrIHdoZW4gcmVmZXJlbmNlZCBqdXN0IHlpZWxkcyBhIHNpbmdsZSAiYWIiLAorICAgICAgICAvLyBub3QgdGhlIGZ1bGwgc2VxdWVuY2Ugb2YgdGhlbS4gIFRoaXMgYWNjb3JkcyB3aXRoIHBlcmwgYmVoYXZpb3IuCisgICAgICAgIGV4cGVjdCgiKGFiKSsge3h9ID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgInggYWJ4IGFiYWJ4eSIsCisgICAgICAgICAgICAgICAieCBhYihhYikgYWJhYihhYil5Iik7CisKKyAgICAgICAgZXhwZWN0KCJiKyA+IHg7IiwKKyAgICAgICAgICAgICAgICJhYyBhYmMgYWJiYyBhYmJiYyIsCisgICAgICAgICAgICAgICAiYWMgYXhjIGF4YyBheGMiKTsKKworICAgICAgICBleHBlY3QoIlthYmNdKyA+IHg7IiwKKyAgICAgICAgICAgICAgICJxYWMgYWJyYyBhYmJjcyBhYnRiYmMiLAorICAgICAgICAgICAgICAgInF4IHhyeCB4cyB4dHgiKTsKKworICAgICAgICBleHBlY3QoInF7KGFiKSt9ID4geDsiLAorICAgICAgICAgICAgICAgInFhIHFhYiBxYWJhIHFhYmFiYyBxYWJhIiwKKyAgICAgICAgICAgICAgICJxYSBxeCBxeGEgcXhjIHF4YSIpOworCisgICAgICAgIGV4cGVjdCgicShhYikqID4geDsiLAorICAgICAgICAgICAgICAgInFhIHFhYiBxYWJhIHFhYmFiYyIsCisgICAgICAgICAgICAgICAieGEgeCB4YSB4YyIpOworCisgICAgICAgIC8vIE5PVEU6IFRoZSAoYWIpKyB3aGVuIHJlZmVyZW5jZWQganVzdCB5aWVsZHMgYSBzaW5nbGUgImFiIiwKKyAgICAgICAgLy8gbm90IHRoZSBmdWxsIHNlcXVlbmNlIG9mIHRoZW0uICBUaGlzIGFjY29yZHMgd2l0aCBwZXJsIGJlaGF2aW9yLgorICAgICAgICBleHBlY3QoInEoYWIpKiA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJxYSBxYWIgcWFiYSBxYWJhYmMiLAorICAgICAgICAgICAgICAgIigpYSAoYWIpIChhYilhIChhYiljIik7CisKKyAgICAgICAgLy8gJ2ZvbycrIGFuZCAnZm9vJyogLS0gdGhlIHF1YW50aWZpZXIgc2hvdWxkIGFwcGx5IHRvIHRoZSBlbnRpcmUKKyAgICAgICAgLy8gcXVvdGVkIHN0cmluZworICAgICAgICBleHBlY3QoIidhYicrID4geDsiLAorICAgICAgICAgICAgICAgImJiIGFiIGFiYWJiIiwKKyAgICAgICAgICAgICAgICJiYiB4IHhiIik7CisKKyAgICAgICAgLy8gJGZvbysgYW5kICRmb28qIC0tIHRoZSBxdWFudGlmaWVyIHNob3VsZCBhcHBseSB0byB0aGUgZW50aXJlCisgICAgICAgIC8vIHZhcmlhYmxlIHJlZmVyZW5jZQorICAgICAgICBleHBlY3QoIiR2YXIgPSBhYjsgJHZhcisgPiB4OyIsCisgICAgICAgICAgICAgICAiYmIgYWIgYWJhYmIiLAorICAgICAgICAgICAgICAgImJiIHggeGIiKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdEZhY3QgaW1wbGVtZW50cyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IHsKKyAgICAgICAgc3RhdGljIGNsYXNzIE5hbWVhYmxlTnVsbFRyYW5zIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworICAgICAgICAgICAgcHVibGljIE5hbWVhYmxlTnVsbFRyYW5zKFN0cmluZyBpZCkgeworICAgICAgICAgICAgICAgIHN1cGVyKGlkLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyBpZDsKKyAgICAgICAgcHVibGljIFRlc3RGYWN0KFN0cmluZyB0aGVJRCkgeworICAgICAgICAgICAgaWQgPSB0aGVJRDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIGlnbm9yZWRJRCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBOYW1lYWJsZU51bGxUcmFucyhpZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U1RWKCkgeworICAgICAgICBFbnVtZXJhdGlvbiBlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBlcy5oYXNNb3JlRWxlbWVudHMoKTsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6ICIgKyBzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGVtcHR5IHNvdXJjZSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRW51bWVyYXRpb24gZXQgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGV0Lmhhc01vcmVFbGVtZW50cygpOyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgZXQubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICIgKyBqICsgIjogIiArIHRhcmdldCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBlbXB0eSB0YXJnZXQiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGV2ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGs9MDsgZXYuaGFzTW9yZUVsZW1lbnRzKCk7ICsraykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIGV2Lm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgICIgKyBrICsgIjogPGVtcHR5PiIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgIiArIGsgKyAiOiAiICsgdmFyaWFudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHJlZ2lzdHJhdGlvbgorICAgICAgICBTdHJpbmdbXSBJRFMgPSB7ICJGaWVydXdlciIsICJTZW9yaWRmLVN3ZW9yaWUiLCAiT2V3b2lyLU93ZXJpL1ZzaWUiIH07CisgICAgICAgIFN0cmluZ1tdIEZVTExfSURTID0geyAiQW55LUZpZXJ1d2VyIiwgIlNlb3JpZGYtU3dlb3JpZSIsICJPZXdvaXItT3dlcmkvVnNpZSIgfTsKKyAgICAgICAgU3RyaW5nW10gU09VUkNFUyA9IHsgbnVsbCwgIlNlb3JpZGYiLCAiT2V3b2lyIiB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8MzsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSURTW2ldLCBuZXcgVGVzdEZhY3QoSURTW2ldKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRFNbaV0pOworICAgICAgICAgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKElEU1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBSZWdpc3RyYXRpb24vY3JlYXRpb24gc3VjY2VlZGVkIGZvciBJRCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSURTW2ldKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUmVnaXN0cmF0aW9uIG9mIElEICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJRFNbaV0gKyAiIGNyZWF0ZXMgSUQgIiArIHQuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoSURTW2ldKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSURTW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVucmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgSUQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSArICI7IHN0aWxsIHJlY2VpdmluZyBJRCAiICsgdC5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gR29vZDsgdGhpcyBpcyB3aGF0IHdlIGV4cGVjdAorICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s7IFVucmVnaXN0ZXJlZCAiICsgSURTW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBSZWdpc3RyYXRpb24vY3JlYXRpb24gZmFpbGVkIGZvciBJRCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBJRFNbaV0pOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKElEU1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBNYWtlIHN1cmUgZ2V0QXZhaWxhYmxlIEFQSSByZWZsZWN0cyByZW1vdmFsCisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZC5lcXVhbHMoRlVMTF9JRFNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1bnJlZ2lzdGVyKCIgKyBpZCArICIpIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKCJBbnkiKTsKKyAgICAgICAgICAgICBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgIFN0cmluZyB0ID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgaWYgKHQuZXF1YWxzKElEU1swXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogdW5yZWdpc3RlcihBbnktIiArIHQgKyAiKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwzOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoU09VUkNFU1tpXSA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocy5lcXVhbHMoU09VUkNFU1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVucmVnaXN0ZXIoIiArIHMgKyAiLSopIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW52ZXJzZSBvZiBHcmVlay1MYXRpbjsgVGl0bGUoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEludmVyc2UoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZQorICAgICAgICAgICAgKCJHcmVlay1MYXRpbjsgVGl0bGUoKSIsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZXhwID0gIihUaXRsZSk7TGF0aW4tR3JlZWsiOworICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IGludmVyc2Ugb2YgXCJHcmVlay1MYXRpbjsgVGl0bGUoKVwiIGlzIFwiIiArCisgICAgICAgICAgICAgICAgICB0LmdldElEKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGludmVyc2Ugb2YgXCJHcmVlay1MYXRpbjsgVGl0bGUoKVwiIGlzIFwiIiArCisgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBORkQgY2hhaW5pbmcgd2l0aCBSQlQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TkZEQ2hhaW5SQlQoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRFU1QiLCAiOjpORkQ7IGFhID4gUTsgYSA+IHE7IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4odC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYSIsICJRIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW52ZXJzZSBvZiAiTnVsbCIgc2hvdWxkIGJlICJOdWxsIi4gKEoyMSkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVsbEludmVyc2UoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTnVsbCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIGlmICghdS5nZXRJRCgpLmVxdWFscygiTnVsbCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW52ZXJzZSBvZiBOdWxsIHNob3VsZCBiZSBOdWxsIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBJRCBvZiBpbnZlcnNlIG9mIGFsaWFzLiAoSjIyKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc0ludmVyc2VJRCgpIHsKKyAgICAgICAgU3RyaW5nIElEID0gIkxhdGluLUhhbmd1bCI7IC8vIFRoaXMgc2hvdWxkIGJlIGFueSBhbGlhcyBJRCB3aXRoIGFuIGludmVyc2UKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBTdHJpbmcgZXhwID0gIkhhbmd1bC1MYXRpbiI7CisgICAgICAgIFN0cmluZyBnb3QgPSB1LmdldElEKCk7CisgICAgICAgIGlmICghZ290LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW52ZXJzZSBvZiAiICsgSUQgKyAiIGlzICIgKyBnb3QgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IElEcyBvZiBpbnZlcnNlcyBvZiBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcnMuIChKMjApCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kSW52ZXJzZUlEKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiTGF0aW4tSmFtbztORkMoTkZEKSI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICJORkQoTkZDKTtKYW1vLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIGdvdCA9IHUuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCFnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mICIgKyBJRCArICIgaXMgIiArIGdvdCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdW5kZWZpbmVkIHZhcmlhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmRlZmluZWRWYXJpYWJsZSgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJGluaXRpYWwgfSBhIDw+IFx1MTE2MTsiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIHJ1bGUsVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICB0ID0gbnVsbDsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogR290IGV4Y2VwdGlvbiBmb3IgIiArIHJ1bGUgKyAiLCBhcyBleHBlY3RlZDogIiArCisgICAgICAgICAgICAgICAgICBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZhaWw6IGJvZ3VzIHJ1bGUgIiArIHJ1bGUgKyAiIGNvbXBpbGVkIHdpdGhvdXQgZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGVtcHR5IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVtcHR5Q29udGV4dCgpIHsKKyAgICAgICAgZXhwZWN0KCIgeyBhIH0gPiBiOyIsICJ4YXkgYSAiLCAieGJ5IGIgIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjb21wb3VuZCBmaWx0ZXIgSUQgc3ludGF4CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kRmlsdGVySUQoKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBDb2wuIDEgPSBJRCBvciBydWxlIHNldCAobGF0dGVyIG11c3Qgc3RhcnQgd2l0aCAjKQorCisgICAgICAgICAgICAvLyA9IGNvbHVtbnMgPiAxIGFyZSBudWxsIGlmIGV4cGVjdCBjb2wuIDEgdG8gYmUgaWxsZWdhbCA9CisKKyAgICAgICAgICAgIC8vIENvbC4gMiA9IGRpcmVjdGlvbiwgIkYuLi4iIG9yICJSLi4uIgorICAgICAgICAgICAgLy8gQ29sLiAzID0gc291cmNlIHN0cmluZworICAgICAgICAgICAgLy8gQ29sLiA0ID0gZXhwIHJlc3VsdAorCisgICAgICAgICAgICAiW2FiY107IFthYmNdIiwgbnVsbCwgbnVsbCwgbnVsbCwgLy8gbXVsdGlwbGUgZmlsdGVycworICAgICAgICAgICAgIkxhdGluLUdyZWVrOyBbYWJjXTsiLCBudWxsLCBudWxsLCBudWxsLCAvLyBtaXNwbGFjZWQgZmlsdGVyCisgICAgICAgICAgICAiW2JdOyBMYXRpbi1HcmVlazsgVXBwZXI7IChbeHl6XSkiLCAiRiIsICJhYmMiLCAiYVx1MDM5MmMiLAorICAgICAgICAgICAgIltiXTsgKExvd2VyKTsgTGF0aW4tR3JlZWs7IFVwcGVyKCk7IChbXHUwMzkyXSkiLCAiUiIsICJcdTAzOTFcdTAzOTJcdTAzOTMiLCAiXHUwMzkxYlx1MDM5MyIsCisgICAgICAgICAgICAiI1xuOjpbYl07IDo6TGF0aW4tR3JlZWs7IDo6VXBwZXI7IDo6KFt4eXpdKTsiLCAiRiIsICJhYmMiLCAiYVx1MDM5MmMiLAorICAgICAgICAgICAgIiNcbjo6W2JdOyA6OihMb3dlcik7IDo6TGF0aW4tR3JlZWs7IDo6VXBwZXIoKTsgOjooW1x1MDM5Ml0pOyIsICJSIiwgIlx1MDM5MVx1MDM5Mlx1MDM5MyIsICJcdTAzOTFiXHUwMzkzIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IERBVEFbaV07CisgICAgICAgICAgICBpbnQgZGlyZWN0aW9uID0gKERBVEFbaSsxXSAhPSBudWxsICYmIERBVEFbaSsxXS5jaGFyQXQoMCkgPT0gJ1InKSA/CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSA6IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQ7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gREFUQVtpKzJdOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbaSszXTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwT2sgPSAoREFUQVtpKzFdICE9IG51bGwpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChpZC5jaGFyQXQoMCkgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgaWQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlZSkgeworICAgICAgICAgICAgICAgIGUgPSBlZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gb2sgPSAodCAhPSBudWxsICYmIGUgPT0gbnVsbCk7CisgICAgICAgICAgICBpZiAob2sgPT0gZXhwT2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBpZCArICIgPT4gIiArIHQgKworICAgICAgICAgICAgICAgICAgICAgIChlICE9IG51bGwgPyAoIiwgIiArIGUuZ2V0TWVzc2FnZSgpKSA6ICIiKSk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGlkICsgIiA9PiAiICsgdCArCisgICAgICAgICAgICAgICAgICAgICAgKGUgIT0gbnVsbCA/ICgiLCAiICsgZS5nZXRNZXNzYWdlKCkpIDogIiIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbmV3IHByb3BlcnR5IHNldCBzeW50YXgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlTZXQoKSB7CisgICAgICAgIGV4cGVjdCgiYT5BOyBcXHB7THV9Png7IFxccHtBbnl9Pnk7IiwgImFiY0RFRiIsICJBeXl4eHgiKTsKKyAgICAgICAgZXhwZWN0KCIoLispPidbJyAkMSAnXSc7IiwgIiBhIHN0aXRjaCBcbiBpbiB0aW1lIFxyIHNhdmVzIDkiLAorICAgICAgICAgICAgICAgIlsgYSBzdGl0Y2ggXVxuWyBpbiB0aW1lIF1cclsgc2F2ZXMgOV0iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHZhcmlvdXMgZmFpbHVyZSBwb2ludHMgb2YgdGhlIG5ldyAyLjAgZW5naW5lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXdFbmdpbmUoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSGlyYWdhbmEiKTsKKyAgICAgICAgLy8gS2F0YWthbmEgc2hvdWxkIGJlIHVudG91Y2hlZAorICAgICAgICBleHBlY3QodCwgImFcdTMwNDJcdTMwQTIiLCAiXHUzMDQyXHUzMDQyXHUzMEEyIik7CisKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgdGVzdCB3aWxsIG9ubHkgd29yayBpZiBUcmFuc2xpdGVyYXRvci5ST0xMQkFDSyBpcworICAgICAgICAgICAgLy8gdHJ1ZS4gIE90aGVyd2lzZSwgdGhpcyB0ZXN0IHdpbGwgZmFpbCwgcmV2ZWFsaW5nIGEKKyAgICAgICAgICAgIC8vIGxpbWl0YXRpb24gb2YgZ2xvYmFsIGZpbHRlcnMgaW4gaW5jcmVtZW50YWwgbW9kZS4KKworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgYSA9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhX3RvX0EiLCAiYSA+IEE7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBBID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIkFfdG9fYiIsICJBID4gYjsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBhcnJheVtdID0gbmV3IFRyYW5zbGl0ZXJhdG9yW10geworICAgICAgICAgICAgLy8gICAgYSwKKyAgICAgICAgICAgIC8vICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQiKSwKKyAgICAgICAgICAgIC8vICAgIEEgfTsKKyAgICAgICAgICAgIC8vdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGFycmF5LCBuZXcgVW5pY29kZVNldCgiWzpMbDpdIikpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UoYSk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZShBKTsKKworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpMbDpdO2FfdG9fQTtORkQ7QV90b19iIik7CisgICAgICAgICAgICAgICAgZXhwZWN0KHQsICJhQWFBIiwgImJBYkEiKTsKKworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdSA9IHQuZ2V0RWxlbWVudHMoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRUcnVlKCJnZXRFbGVtZW50cygpLmxlbmd0aCIsIHUubGVuZ3RoID09IDMpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RWxlbWVudHMoKVswXSIsIHVbMF0uZ2V0SUQoKSwgImFfdG9fQSIpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RWxlbWVudHMoKVsxXSIsIHVbMV0uZ2V0SUQoKSwgIk5GRCIpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RWxlbWVudHMoKVsyXSIsIHVbMl0uZ2V0SUQoKSwgIkFfdG9fYiIpOworCisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJhX3RvX0E7TkZEO0FfdG9fYiIpOworICAgICAgICAgICAgICAgIHQuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbOkxsOl0iKSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHQsICJhQWFBIiwgImJBYkEiKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcigiYV90b19BIik7IAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoIkFfdG9fYiIpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0KCIkc21vb3RoID0geDsgJG1hY3JvbiA9IHE7IFs6Xkw6XSB7IChbYWVpb3V5QUVJT1VZXSAkbWFjcm9uPykgfSBbXmFlaW91eUFFSU9VWSRzbW9vdGgkbWFjcm9uXSA+IHwgJDEgJHNtb290aCA7IiwKKyAgICAgICAgICAgICAgICJhIiwKKyAgICAgICAgICAgICAgICJheCIpOworCisgICAgICAgIFN0cmluZyBnciA9CisgICAgICAgICAgICAiJGRkb3QgPSBcdTAzMDggOyIgKworICAgICAgICAgICAgIiRsY2d2b3dlbCA9IFtcdTAzYjFcdTAzYjVcdTAzYjdcdTAzYjlcdTAzYmZcdTAzYzVcdTAzYzldIDsiICsKKyAgICAgICAgICAgICIkcm91Z2ggPSBcdTAzMTQgOyIgKworICAgICAgICAgICAgIigkbGNndm93ZWwrICRkZG90PykgJHJvdWdoID4gaCB8ICQxIDsiICsKKyAgICAgICAgICAgICJcdTAzYjEgPD4gYSA7IiArCisgICAgICAgICAgICAiJHJvdWdoIDw+IGggOyI7CisKKyAgICAgICAgZXhwZWN0KGdyLCAiXHUwM0IxXHUwMzE0IiwgImhhIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBxdWFudGlmaWVkIHNlZ21lbnQgYmVoYXZpb3IuICBXZSB3YW50OgorICAgICAqIChbYWJjXSkrID4geCAkMSB4OyBhcHBsaWVkIHRvICJjYmEiIHByb2R1Y2VzICJ4YXgiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFF1YW50aWZpZWRTZWdtZW50KCkgeworICAgICAgICAvLyBUaGUgbm9ybWFsIGNhc2UKKyAgICAgICAgZXhwZWN0KCIoW2FiY10rKSA+IHggJDEgeDsiLCAiY2JhIiwgInhjYmF4Iik7CisKKyAgICAgICAgLy8gVGhlIHRyaWNreSBjYXNlOyB0aGUgcXVhbnRpZmllciBpcyBhcm91bmQgdGhlIHNlZ21lbnQKKyAgICAgICAgZXhwZWN0KCIoW2FiY10pKyA+IHggJDEgeDsiLCAiY2JhIiwgInhheCIpOworCisgICAgICAgIC8vIFRyaWNreSBjYXNlIGluIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICAgIGV4cGVjdCgiKFthYmNdKSsgeyBxID4geCAkMSB4OyIsICJjYmFxIiwgImNiYXhheCIpOworCisgICAgICAgIC8vIENoZWNrIHBvc3QtY29udGV4dCBzZWdtZW50CisgICAgICAgIGV4cGVjdCgie3F9IChbYS1kXSkrID4gJygnICQxICcpJzsiLCAiZGRxY2JhIiwgImRkKGEpY2JhIik7CisKKyAgICAgICAgLy8gVGVzdCB0b1J1bGUvdG9QYXR0ZXJuIGZvciBub24tcXVhbnRpZmllZCBzZWdtZW50LgorICAgICAgICAvLyBDYXJlZnVsIHdpdGggc3BhY2luZyBoZXJlLgorICAgICAgICBTdHJpbmcgciA9ICIoW2EtY10pe3F9ID4geCAkMSB4OyI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgciwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN0cmluZyByciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKCFyLmVxdWFscyhycikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBcIiIgKyByICsgIlwiIHggdG9SdWxlcygpID0+IFwiIiArIHJyICsgIlwiIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IFwiIiArIHIgKyAiXCIgeCB0b1J1bGVzKCkgPT4gXCIiICsgcnIgKyAiXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgdG9SdWxlL3RvUGF0dGVybiBmb3IgcXVhbnRpZmllZCBzZWdtZW50LgorICAgICAgICAvLyBDYXJlZnVsIHdpdGggc3BhY2luZyBoZXJlLgorICAgICAgICByID0gIihbYS1jXSkre3F9ID4geCAkMSB4OyI7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgciwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIHJyID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoIXIuZXF1YWxzKHJyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFwiIiArIHIgKyAiXCIgeCB0b1J1bGVzKCkgPT4gXCIiICsgcnIgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gUmFtJ3MgdGVzdHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAvKiB0aGlzIHRlc3QgcGVyZm9ybXMgIHRlc3Qgb2YgcnVsZXMgaW4gSVNPIDE1OTE1ICovCisgICAgcHVibGljIHZvaWQgIFRlc3REZXZhbmFnYXJpTGF0aW5SVCgpeworICAgICAgICBTdHJpbmdbXSAgc291cmNlID0geworICAgICAgICAgICAgImJoXHUwMTAxcmF0YSIsCisgICAgICAgICAgICAia3JhIiwKKyAgICAgICAgICAgICJrXHUxRTYzYSIsCisgICAgICAgICAgICAia2hyYSIsCisgICAgICAgICAgICAiZ3JhIiwKKyAgICAgICAgICAgICJcdTFFNDVyYSIsCisgICAgICAgICAgICAiY3JhIiwKKyAgICAgICAgICAgICJjaHJhIiwKKyAgICAgICAgICAgICJqXHUwMEYxYSIsCisgICAgICAgICAgICAiamhyYSIsCisgICAgICAgICAgICAiXHUwMEYxcmEiLAorICAgICAgICAgICAgIlx1MUU2RHlhIiwKKyAgICAgICAgICAgICJcdTFFNkRocmEiLAorICAgICAgICAgICAgIlx1MUUwRHlhIiwKKyAgICAgICAgLy8iclx1MDMyM3lhIiwgLy8gXHUwOTVjIGlzIG5vdCB2YWxpZCBpbiBEZXZhbmFnYXJpCisgICAgICAgICAgICAiXHUxRTBEaHlhIiwKKyAgICAgICAgICAgICJcdTFFNUJocmEiLAorICAgICAgICAgICAgIlx1MUU0N3JhIiwKKyAgICAgICAgICAgICJ0dGEiLAorICAgICAgICAgICAgInRocmEiLAorICAgICAgICAgICAgImRkYSIsCisgICAgICAgICAgICAiZGhyYSIsCisgICAgICAgICAgICAibm5hIiwKKyAgICAgICAgICAgICJwcmEiLAorICAgICAgICAgICAgInBocmEiLAorICAgICAgICAgICAgImJyYSIsCisgICAgICAgICAgICAiYmhyYSIsCisgICAgICAgICAgICAibXJhIiwKKyAgICAgICAgICAgICJcdTFFNDlyYSIsCisgICAgICAgIC8vImxcdTAzMzFyYSIsCisgICAgICAgICAgICAieXJhIiwKKyAgICAgICAgICAgICJcdTFFOEZyYSIsCisgICAgICAgIC8vImwtIiwKKyAgICAgICAgICAgICJ2cmEiLAorICAgICAgICAgICAgIlx1MDE1QnJhIiwKKyAgICAgICAgICAgICJcdTFFNjNyYSIsCisgICAgICAgICAgICAic3JhIiwKKyAgICAgICAgICAgICJobWEiLAorICAgICAgICAgICAgIlx1MUU2RFx1MUU2RGEiLAorICAgICAgICAgICAgIlx1MUU2RFx1MUU2RGhhIiwKKyAgICAgICAgICAgICJcdTFFNkRoXHUxRTZEaGEiLAorICAgICAgICAgICAgIlx1MUUwRFx1MUUwRGEiLAorICAgICAgICAgICAgIlx1MUUwRFx1MUUwRGhhIiwKKyAgICAgICAgICAgICJcdTFFNkR5YSIsCisgICAgICAgICAgICAiXHUxRTZEaHlhIiwKKyAgICAgICAgICAgICJcdTFFMER5YSIsCisgICAgICAgICAgICAiXHUxRTBEaHlhIiwKKyAgICAgICAgICAgIC8vIE5vdCByb3VuZHRyaXBwYWJsZSAtLQorICAgICAgICAgICAgLy8gXHUwOTM5XHUwOTRkXHUwOTRkXHUwOTJFICAtIGhtYQorICAgICAgICAgICAgLy8gXHUwOTM5XHUwOTRkXHUwOTJFICAgICAgICAgLSBobWEKKyAgICAgICAgICAgIC8vIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJobWEiKSwKKyAgICAgICAgICAgICJoeWEiLAorICAgICAgICAgICAgIlx1MDE1QnJcdTAzMjUiLAorICAgICAgICAgICAgIlx1MDE1QmNhIiwKKyAgICAgICAgICAgICJcdTAxMTUiLAorICAgICAgICAgICAgInNhblx1MDMwNGpcdTAxMkJiIHNcdTAxMTNuYWd1cHRhIiwKKyAgICAgICAgICAgICJcdTAxMDFuYW5kIHZhZGRpclx1MDEwMWp1IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gIGV4cGVjdGVkID0geworICAgICAgICAgICAgIlx1MDkyRFx1MDkzRVx1MDkzMFx1MDkyNCIsICAgIC8qIGJoYVx1MDMwNHJhdGEgKi8KKyAgICAgICAgICAgICJcdTA5MTVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBrcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxNVx1MDk0RFx1MDkzNyIsICAgICAgICAgIC8qIGtzXHUwMzIzYSAgKi8KKyAgICAgICAgICAgICJcdTA5MTZcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBraHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxN1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGdyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTE5XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogblx1MDMwN3JhICAqLworICAgICAgICAgICAgIlx1MDkxQVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGNyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTFCXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogY2hyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUNcdTA5NERcdTA5MUUiLCAgICAgICAgICAvKiBqblx1MDMwM2EgICovCisgICAgICAgICAgICAiXHUwOTFEXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogamhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBuXHUwMzAzcmEgICovCisgICAgICAgICAgICAiXHUwOTFGXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogdFx1MDMyM3lhICAqLworICAgICAgICAgICAgIlx1MDkyMFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHRcdTAzMjNocmEgKi8KKyAgICAgICAgICAgICJcdTA5MjFcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBkXHUwMzIzeWEgICovCisgICAgICAgIC8vIlx1MDk1Q1x1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIHJcdTAzMjN5YSAgKi8gLy8gXHUwOTVjIGlzIG5vdCB2YWxpZCBpbiBEZXZhbmFnYXJpCisgICAgICAgICAgICAiXHUwOTIyXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogZFx1MDMyM2h5YSAqLworICAgICAgICAgICAgIlx1MDkyMlx1MDkzQ1x1MDk0RFx1MDkzMCIsICAgIC8qIHJcdTAzMjNocmEgKi8KKyAgICAgICAgICAgICJcdTA5MjNcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBuXHUwMzIzcmEgICovCisgICAgICAgICAgICAiXHUwOTI0XHUwOTREXHUwOTI0IiwgICAgICAgICAgLyogdHRhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiB0aHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyNlx1MDk0RFx1MDkyNiIsICAgICAgICAgIC8qIGRkYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI3XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogZGhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjhcdTA5NERcdTA5MjgiLCAgICAgICAgICAvKiBubmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyQVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHByYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJCXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogcGhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkNcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBicmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyRFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGJocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJFXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogbXJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjlcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBuXHUwMzMxcmEgICovCisgICAgICAgIC8vIlx1MDkzNFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGxcdTAzMzFyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MkZcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiB5cmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyRlx1MDkzQ1x1MDk0RFx1MDkzMCIsICAgIC8qIHlcdTAzMDdyYSAgKi8KKyAgICAgICAgLy8ibC0iLAorICAgICAgICAgICAgIlx1MDkzNVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHZyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM2XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogc1x1MDMwMXJhICAqLworICAgICAgICAgICAgIlx1MDkzN1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHNcdTAzMjNyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MzhcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBzcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkzOVx1MDk0ZFx1MDkyRSIsICAgICAgICAgIC8qIGhtYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTFGXHUwOTREXHUwOTFGIiwgICAgICAgICAgLyogdFx1MDMyM3RcdTAzMjNhICAqLworICAgICAgICAgICAgIlx1MDkxRlx1MDk0RFx1MDkyMCIsICAgICAgICAgIC8qIHRcdTAzMjN0XHUwMzIzaGEgKi8KKyAgICAgICAgICAgICJcdTA5MjBcdTA5NERcdTA5MjAiLCAgICAgICAgICAvKiB0XHUwMzIzaHRcdTAzMjNoYSovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTIxIiwgICAgICAgICAgLyogZFx1MDMyM2RcdTAzMjNhICAqLworICAgICAgICAgICAgIlx1MDkyMVx1MDk0RFx1MDkyMiIsICAgICAgICAgIC8qIGRcdTAzMjNkXHUwMzIzaGEgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiB0XHUwMzIzeWEgICovCisgICAgICAgICAgICAiXHUwOTIwXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogdFx1MDMyM2h5YSAqLworICAgICAgICAgICAgIlx1MDkyMVx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjN5YSAgKi8KKyAgICAgICAgICAgICJcdTA5MjJcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBkXHUwMzIzaHlhICovCisgICAgICAgIC8vICJobWEiLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBobWEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkzOVx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGh5YSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM2XHUwOTQzIiwgICAgICAgICAgICAgICAgLyogc1x1MDMwMXJcdTAzMjVhICAqLworICAgICAgICAgICAgIlx1MDkzNlx1MDk0RFx1MDkxQSIsICAgICAgICAgIC8qIHNcdTAzMDFjYSAgKi8KKyAgICAgICAgICAgICJcdTA5MGQiLCAgICAgICAgICAgICAgICAgICAgICAvKiBlXHUwMzA2ICAgICovCisgICAgICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFDXHUwOTQwXHUwOTJDXHUwOTREIFx1MDkzOFx1MDk0N1x1MDkyOFx1MDkxN1x1MDk0MVx1MDkyQVx1MDk0RFx1MDkyNCIsCisgICAgICAgICAgICAiXHUwOTA2XHUwOTI4XHUwOTAyXHUwOTI2XHUwOTREIFx1MDkzNVx1MDkyNlx1MDk0RFx1MDkyNlx1MDkzRlx1MDkzMFx1MDkzRVx1MDkxQ1x1MDk0MSIsCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5Ub0Rldj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tRGV2YW5hZ2FyaSIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQgKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiRGV2YW5hZ2FyaS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgIGZvcihpbnQgaT0gMDsgaTxzb3VyY2UubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZXhwZWN0KGxhdGluVG9EZXYsKHNvdXJjZVtpXSksKGV4cGVjdGVkW2ldKSk7CisgICAgICAgICAgICBleHBlY3QoZGV2VG9MYXRpbiwoZXhwZWN0ZWRbaV0pLChzb3VyY2VbaV0pKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkICBUZXN0VGVsdWd1TGF0aW5SVCgpeworICAgICAgICBTdHJpbmdbXSAgc291cmNlID0geworICAgICAgICAgICAgInJhZ2h1clx1MDEwMW0gdmlcdTAxNUJ2YW5cdTAxMDFkaGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJhZ2h1cmFtIFZpc3dhbmFkaGEgICAgKi8KKyAgICAgICAgICAgICJcdTAxMDFuYW5kIHZhZGRpclx1MDEwMWp1IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBbmFuZCBWYWRkaXJhanUgICAgICAgICovCisgICAgICAgICAgICAiclx1MDEwMWpcdTAxMkJ2IGthXHUwMTVCYXJhYlx1MDEwMWRhIiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmFqZWV2IEthc2FyYWJhZGEgICAgICAqLworICAgICAgICAgICAgInNhblx1MDMwNGpcdTAxMkJ2IGthXHUwMTVCYXJhYlx1MDEwMWRhIiwgICAgICAgICAgICAgICAgICAgICAgIC8qIHNhbmplZXYga2FzYXJhYmFkYSAgICAgKi8KKyAgICAgICAgICAgICJzYW5cdTAzMDRqXHUwMTJCYiBzZW4nZ3VwdGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzYW5qaWIgc2VuZ3VwYXRhICAgICAgICovCisgICAgICAgICAgICAiYW1hclx1MDExM25kcmEgaGFudW1cdTAxMDFudWxhIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQW1hcmVuZHJhIGhhbnVtYW51bGEgICAqLworICAgICAgICAgICAgInJhdmkga3VtXHUwMTAxciB2aVx1MDE1QnZhblx1MDEwMWRoYSIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJhdmkgS3VtYXIgVmlzd2FuYWRoYSAgKi8KKyAgICAgICAgICAgICJcdTAxMDFkaXR5YSBrYW5kclx1MDExM2d1bGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBZGl0eWEgS2FuZHJlZ3VsYSAgICAgICovCisgICAgICAgICAgICAiXHUwMTVCclx1MDEyQmRoYXIga2FcdTFFNDdcdTFFNkRhbWFcdTAxNUJlXHUxRTZEXHUxRTZEaSIsICAgICAgLyogU2hyaWRoYXIgS2FudGFtc2V0dHkgICAqLworICAgICAgICAgICAgIm1cdTAxMDFkaGF2IGRlXHUwMTVCZVx1MUU2RFx1MUU2RGkiICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1hZGhhdiBEZXNldHR5ICAgICAgICAgKi8KKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwYzMwXHUwYzE4XHUwYzQxXHUwYzMwXHUwYzNlXHUwYzJlXHUwYzRkIFx1MGMzNVx1MGMzZlx1MGMzNlx1MGM0ZFx1MGMzNVx1MGMyOFx1MGMzZVx1MGMyNyIsCisgICAgICAgICAgICAiXHUwYzA2XHUwYzI4XHUwYzAyXHUwYzI2XHUwYzRkIFx1MEMzNVx1MEMyNlx1MEM0RFx1MEMyNlx1MEMzRlx1MEMzMFx1MEMzRVx1MEMxQ1x1MEM0MSIsCisgICAgICAgICAgICAiXHUwYzMwXHUwYzNlXHUwYzFjXHUwYzQwXHUwYzM1XHUwYzRkIFx1MGMxNVx1MGMzNlx1MGMzMFx1MGMyY1x1MGMzZVx1MGMyNiIsCisgICAgICAgICAgICAiXHUwYzM4XHUwYzAyXHUwYzFjXHUwYzQwXHUwYzM1XHUwYzRkIFx1MGMxNVx1MGMzNlx1MGMzMFx1MGMyY1x1MGMzZVx1MGMyNiIsCisgICAgICAgICAgICAiXHUwYzM4XHUwYzAyXHUwYzFjXHUwYzQwXHUwYzJjXHUwYzRkIFx1MGMzOFx1MGM0Nlx1MGMyOFx1MGM0ZFx1MGMxN1x1MGM0MVx1MGMyYVx1MGM0ZFx1MGMyNCIsCisgICAgICAgICAgICAiXHUwYzA1XHUwYzJlXHUwYzMwXHUwYzQ3XHUwYzAyXHUwYzI2XHUwYzRkXHUwYzMwIFx1MGMzOVx1MGMyOFx1MGM0MVx1MGMyZVx1MGMzZVx1MGMyOFx1MGM0MVx1MGMzMiIsCisgICAgICAgICAgICAiXHUwYzMwXHUwYzM1XHUwYzNmIFx1MGMxNVx1MGM0MVx1MGMyZVx1MGMzZVx1MGMzMFx1MGM0ZCBcdTBjMzVcdTBjM2ZcdTBjMzZcdTBjNGRcdTBjMzVcdTBjMjhcdTBjM2VcdTBjMjciLAorICAgICAgICAgICAgIlx1MGMwNlx1MGMyNlx1MGMzZlx1MGMyNFx1MGM0ZFx1MGMyZiBcdTBDMTVcdTBDMDJcdTBDMjZcdTBDNERcdTBDMzBcdTBDNDdcdTBDMTdcdTBDNDFcdTBjMzIiLAorICAgICAgICAgICAgIlx1MGMzNlx1MGM0ZFx1MGMzMFx1MGM0MFx1MEMyN1x1MEMzMFx1MEM0RCBcdTBjMTVcdTBjMDJcdTBjMWZcdTBjMmVcdTBjMzZcdTBjNDZcdTBjMWZcdTBjNGRcdTBjMWZcdTBjM2YiLAorICAgICAgICAgICAgIlx1MGMyZVx1MGMzZVx1MGMyN1x1MGMzNVx1MGM0ZCBcdTBjMjZcdTBjNDZcdTBjMzZcdTBjNDZcdTBjMWZcdTBjNGRcdTBjMWZcdTBjM2YiLAorICAgICAgICB9OworCisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5Ub0Rldj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tVGVsdWd1IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRldlRvTGF0aW49VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlRlbHVndS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgIGZvcihpbnQgaT0gMDsgaTxzb3VyY2UubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZXhwZWN0KGxhdGluVG9EZXYsKHNvdXJjZVtpXSksKGV4cGVjdGVkW2ldKSk7CisgICAgICAgICAgICBleHBlY3QoZGV2VG9MYXRpbiwoZXhwZWN0ZWRbaV0pLChzb3VyY2VbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkICBUZXN0U2Fuc2tyaXRMYXRpblJUKCl7CisgICAgICAgIGludCBNQVhfTEVOID0xNTsKKyAgICAgICAgU3RyaW5nW10gIHNvdXJjZSA9IHsKKyAgICAgICAgICAgICJybWtcdTFFNjNcdTAxMTN0IiwKKyAgICAgICAgICAgICJcdTAxNUJyXHUwMTJCbWFkIiwKKyAgICAgICAgICAgICJiaGFnYXZhZGdcdTAxMkJ0XHUwMTAxIiwKKyAgICAgICAgICAgICJhZGh5XHUwMTAxeWEiLAorICAgICAgICAgICAgImFyanVuYSIsCisgICAgICAgICAgICAidmlcdTFFNjNcdTAxMDFkYSIsCisgICAgICAgICAgICAieVx1MDE0RGdhIiwKKyAgICAgICAgICAgICJkaHJcdTAzMjV0YXJcdTAxMDFcdTFFNjNcdTFFNkRyYSIsCisgICAgICAgICAgICAidXZcdTAxMDFjclx1MDMyNSIsCisgICAgICAgICAgICAiZGhhcm1ha1x1MUU2M1x1MDExM3RyXHUwMTEzIiwKKyAgICAgICAgICAgICJrdXJ1a1x1MUU2M1x1MDExM3RyXHUwMTEzIiwKKyAgICAgICAgICAgICJzYW1hdlx1MDExM3RcdTAxMDEiLAorICAgICAgICAgICAgInl1eXV0c2F2YVx1MUUyNSIsCisgICAgICAgICAgICAibVx1MDEwMW1ha1x1MDEwMVx1MUUyNSIsCisgICAgICAgIC8vICJwXHUwMTAxXHUxRTQ3XHUxRTBEYXZcdTAxMDFcdTAxNUJjYWl2YSIsCisgICAgICAgICAgICAia2ltYWt1cnZhdGEiLAorICAgICAgICAgICAgInNhblx1MDMwNGphdmEiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwOTMwXHUwOTREXHUwOTJFXHUwOTREXHUwOTE1XHUwOTREXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTREIiwKKyAgICAgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGQiLAorICAgICAgICAgICAgIlx1MDkyZFx1MDkxN1x1MDkzNVx1MDkyNlx1MDk0ZFx1MDkxN1x1MDk0MFx1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjgiLAorICAgICAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNiIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTRiXHUwOTE3IiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5NDNcdTA5MjRcdTA5MzBcdTA5M2VcdTA5MzdcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzAiLAorICAgICAgICAgICAgIlx1MDkwOVx1MDkzNVx1MDkzRVx1MDkxQVx1MDk0MyIsCisgICAgICAgICAgICAiXHUwOTI3XHUwOTMwXHUwOTRkXHUwOTJlXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3IiwKKyAgICAgICAgICAgICJcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkzOFx1MDkyZVx1MDkzNVx1MDk0N1x1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTQxXHUwOTJmXHUwOTQxXHUwOTI0XHUwOTRkXHUwOTM4XHUwOTM1XHUwOTAzIiwKKyAgICAgICAgICAgICJcdTA5MmVcdTA5M2VcdTA5MmVcdTA5MTVcdTA5M2VcdTA5MDMiLAorICAgICAgICAvLyJcdTA5MmFcdTA5M2VcdTA5MjNcdTA5NGRcdTA5MjFcdTA5MzVcdTA5M2VcdTA5MzZcdTA5NGRcdTA5MWFcdTA5NDhcdTA5MzUiLAorICAgICAgICAgICAgIlx1MDkxNVx1MDkzZlx1MDkyZVx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0ZFx1MDkzNVx1MDkyNCIsCisgICAgICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFjXHUwOTM1IiwKKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1EZXZhbmFnYXJpIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRldlRvTGF0aW49VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkRldmFuYWdhcmktTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPE1BWF9MRU47IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0Rldiwoc291cmNlW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluLChleHBlY3RlZFtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgIFRlc3RDb21wb3VuZExhdGluUlQoKXsKKyAgICAgICAgaW50IE1BWF9MRU4gPTE1OworICAgICAgICBTdHJpbmdbXSAgc291cmNlID0geworICAgICAgICAgICAgInJta1x1MUU2M1x1MDExM3QiLAorICAgICAgICAgICAgIlx1MDE1QnJcdTAxMkJtYWQiLAorICAgICAgICAgICAgImJoYWdhdmFkZ1x1MDEyQnRcdTAxMDEiLAorICAgICAgICAgICAgImFkaHlcdTAxMDF5YSIsCisgICAgICAgICAgICAiYXJqdW5hIiwKKyAgICAgICAgICAgICJ2aVx1MUU2M1x1MDEwMWRhIiwKKyAgICAgICAgICAgICJ5XHUwMTREZ2EiLAorICAgICAgICAgICAgImRoclx1MDMyNXRhclx1MDEwMVx1MUU2M1x1MUU2RHJhIiwKKyAgICAgICAgICAgICJ1dlx1MDEwMWNyXHUwMzI1IiwKKyAgICAgICAgICAgICJkaGFybWFrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgImt1cnVrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgInNhbWF2XHUwMTEzdFx1MDEwMSIsCisgICAgICAgICAgICAieXV5dXRzYXZhXHUxRTI1IiwKKyAgICAgICAgICAgICJtXHUwMTAxbWFrXHUwMTAxXHUxRTI1IiwKKyAgICAgICAgLy8gInBcdTAxMDFcdTFFNDdcdTFFMERhdlx1MDEwMVx1MDE1QmNhaXZhIiwKKyAgICAgICAgICAgICJraW1ha3VydmF0YSIsCisgICAgICAgICAgICAic2FuXHUwMzA0amF2YSIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gIGV4cGVjdGVkID0geworICAgICAgICAgICAgIlx1MDkzMFx1MDk0RFx1MDkyRVx1MDk0RFx1MDkxNVx1MDk0RFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0RCIsCisgICAgICAgICAgICAiXHUwOTM2XHUwOTRkXHUwOTMwXHUwOTQwXHUwOTJlXHUwOTI2XHUwOTRkIiwKKyAgICAgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2UiLAorICAgICAgICAgICAgIlx1MDkwNVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyZiIsCisgICAgICAgICAgICAiXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQxXHUwOTI4IiwKKyAgICAgICAgICAgICJcdTA5MzVcdTA5M2ZcdTA5MzdcdTA5M2VcdTA5MjYiLAorICAgICAgICAgICAgIlx1MDkyZlx1MDk0Ylx1MDkxNyIsCisgICAgICAgICAgICAiXHUwOTI3XHUwOTQzXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTM3XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwIiwKKyAgICAgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NDMiLAorICAgICAgICAgICAgIlx1MDkyN1x1MDkzMFx1MDk0ZFx1MDkyZVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MmVcdTA5MzVcdTA5NDdcdTA5MjRcdTA5M2UiLAorICAgICAgICAgICAgIlx1MDkyZlx1MDk0MVx1MDkyZlx1MDk0MVx1MDkyNFx1MDk0ZFx1MDkzOFx1MDkzNVx1MDkwMyIsCisgICAgICAgICAgICAiXHUwOTJlXHUwOTNlXHUwOTJlXHUwOTE1XHUwOTNlXHUwOTAzIiwKKyAgICAgICAgLy8gICJcdTA5MmFcdTA5M2VcdTA5MjNcdTA5NGRcdTA5MjFcdTA5MzVcdTA5M2VcdTA5MzZcdTA5NGRcdTA5MWFcdTA5NDhcdTA5MzUiLAorICAgICAgICAgICAgIlx1MDkxNVx1MDkzZlx1MDkyZVx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0ZFx1MDkzNVx1MDkyNCIsCisgICAgICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFjXHUwOTM1IgorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluVG9EZXZUb0xhdGluPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1EZXZhbmFnYXJpO0RldmFuYWdhcmktTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUxhdGluO0xhdGluLURldmFuYWdhcmkiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPE1BWF9MRU47IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0RldlRvTGF0aW4sKHNvdXJjZVtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICAgICAgZXhwZWN0KGRldlRvTGF0aW5Ub0RldiwoZXhwZWN0ZWRbaV0pLChleHBlY3RlZFtpXSkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3QgR3VybXVraGktRGV2YW5hZ2FyaSBUaXBwaSBhbmQgQmluZGkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R3VybXVraGlEZXZhbmFnYXJpKCl7CisgICAgICAgIC8vIHRoZSBydWxlIHNheXM6CisgICAgICAgIC8vIChcdTA5MDIpICh3aGVuIHByZWNlZGVkIGJ5IHZvd2VsKSAgICAgIC0tLT4gIChcdTBBMDIpCisgICAgICAgIC8vIChcdTA5MDIpICh3aGVuIHByZWNlZGVkIGJ5IGNvbnNvbmFudCkgIC0tLT4gIChcdTBBNzApCisKKyAgICAgICAgVW5pY29kZVNldCB2b3dlbCA9bmV3IFVuaWNvZGVTZXQoIltcdTA5MDUtXHUwOTBBIFx1MDkwRlx1MDkxMFx1MDkxM1x1MDkxNCBcdTA5M2UtXHUwOTQyXHUwOTQ3XHUwOTQ4XHUwOTRCXHUwOTRDXHUwOTREXSIpOworICAgICAgICBVbmljb2RlU2V0IG5vbl92b3dlbCA9bmV3IFVuaWNvZGVTZXQoIltcdTA5MTUtXHUwOTI4XHUwOTJBLVx1MDkzMF0iKTsKKworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3Igdkl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHZvd2VsKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIG52SXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iobm9uX3Zvd2VsKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiRGV2YW5hZ2FyaS1HdXJtdWtoaSIpOworICAgICAgICBTdHJpbmdCdWZmZXIgc3JjID0gbmV3IFN0cmluZ0J1ZmZlcigiIFx1MDkwMiIpOworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIFx1MEEwMiIpOworICAgICAgICB3aGlsZSh2SXRlci5uZXh0KCkpeworICAgICAgICAgICAgc3JjLnNldENoYXJBdCgwLChjaGFyKSB2SXRlci5jb2RlcG9pbnQpOworICAgICAgICAgICAgZXhwZWN0LnNldENoYXJBdCgwLChjaGFyKSAodkl0ZXIuY29kZXBvaW50KzB4MDEwMCkpOworICAgICAgICAgICAgZXhwZWN0KHRyYW5zLHNyYy50b1N0cmluZygpLGV4cGVjdC50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdC5zZXRDaGFyQXQoMSwnXHUwQTcwJyk7CisgICAgICAgIHdoaWxlKG52SXRlci5uZXh0KCkpeworICAgICAgICAgICAgLy9zcmMuc2V0Q2hhckF0KDAsKGNoYXIpIG52SXRlci5jb2RlcG9pbnQpOworICAgICAgICAgICAgc3JjLnNldENoYXJBdCgwLChjaGFyKW52SXRlci5jb2RlcG9pbnQpOworICAgICAgICAgICAgZXhwZWN0LnNldENoYXJBdCgwLChjaGFyKSAobnZJdGVyLmNvZGVwb2ludCsweDAxMDApKTsKKyAgICAgICAgICAgIGV4cGVjdCh0cmFucyxzcmMudG9TdHJpbmcoKSxleHBlY3QudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdCBpbnN0YW50aWF0aW9uIGZyb20gYSBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZUluc3RhbnRpYXRpb24oKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgidGVfSU4tTGF0aW4iKTsKKyAgICAgICAgICAgIC8vZXhwZWN0KHQsICJcdTA0MzAiLCAiYSIpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEgZm9yIG9idGFpbmluZyB0aGUgc2NyaXB0IHVzZWQgaW4gdGhlIGxvY2FsZSB0ZV9JTi4gIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgicnVfUlUtTGF0aW4iKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCAiXHUwNDMwIiwgImEiKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhIGZvciBvYnRhaW5pbmcgdGhlIHNjcmlwdCB1c2VkIGluIHRoZSBsb2NhbGUgcnVfUlUuICIrZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImVuLWVsIik7CisgICAgICAgICAgICBleHBlY3QodCwgImEiLCAiXHUwM0IxIik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YSBmb3Igb2J0YWluaW5nIHRoZSBzY3JpcHQgdXNlZCBpbiB0aGUgbG9jYWxlIGVsLiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aXRsZSBjYXNlIGhhbmRsaW5nIG9mIGFjY2VudCAoc2hvdWxkIGlnbm9yZSBhY2NlbnRzKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaXRsZUFjY2VudHMoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiVGl0bGUiKTsKKyAgICAgICAgZXhwZWN0KHQsICJhXHUwMzAwYiBjYW4ndCBhYmUiLCAiQVx1MDMwMGIgQ2FuJ3QgQWJlIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzaWMgdGVzdCBvZiBhIGxvY2FsZSByZXNvdXJjZSBiYXNlZCBydWxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGVSZXNvdXJjZSgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIGlkICAgICAgICAgICAgICAgICAgICBmcm9tICAgICAgICAgICAgIHRvCisgICAgICAgICAgICAiTGF0aW4tR3JlZWsvVU5HRUdOIiwgICAgImIiLCAgICAgICAgICAgICAiXHUwM2JjXHUwM2MwIiwKKyAgICAgICAgICAgICJMYXRpbi1lbCIsICAgICAgICAgICAgICAiYiIsICAgICAgICAgICAgICJcdTAzYmNcdTAzYzAiLAorICAgICAgICAgICAgIkxhdGluLUdyZWVrIiwgICAgICAgICAgICJiIiwgICAgICAgICAgICAgIlx1MDNCMiIsCisgICAgICAgICAgICAiR3JlZWstTGF0aW4vVU5HRUdOIiwgICAgIlx1MDNCMiIsICAgICAgICAidiIsCisgICAgICAgICAgICAiZWwtTGF0aW4iLCAgICAgICAgICAgICAgIlx1MDNCMiIsICAgICAgICAidiIsCisgICAgICAgICAgICAiR3JlZWstTGF0aW4iLCAgICAgICAgICAgIlx1MDNCMiIsICAgICAgICAiYiIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKERBVEFbaV0pOworICAgICAgICAgICAgZXhwZWN0KHQsIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBwYXJzZSBlcnJvcnMgcmVmZXJlbmNlIHRoZSByaWdodCBsaW5lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJzZUVycm9yKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9CisgICAgICAgICAgICAiYSA+IGI7XG4iICsKKyAgICAgICAgICAgICIjIG1vcmUgc3R1ZmZcbiIgKworICAgICAgICAgICAgImQgPDwgYjsiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN0cmluZyBlcnIgPSBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIGlmIChlcnIuaW5kZXhPZigiZCA8PCBiIikgPj0gMCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGVycik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRkFJTDogbm8gc3ludGF4IGVycm9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHNldHMgb24gb3V0cHV0IGFyZSBkaXNhbGxvd2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RPdXRwdXRTZXQoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gIiRzZXQgPSBbYS1jbS1uXTsgYiA+ICRzZXQ7IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodCE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRkFJTDogTm8gc3ludGF4IGVycm9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgdXNlIHZhcmlhYmxlIHJhbmdlIHByYWdtYSwgbWFraW5nIHN1cmUgdGhhdCB1c2Ugb2YKKyAgICAgKiB2YXJpYWJsZSByYW5nZSBjaGFyYWN0ZXJzIGlzIGRldGVjdGVkIGFuZCBmbGFnZ2VkIGFzIGFuIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpYWJsZVJhbmdlKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICJ1c2UgdmFyaWFibGUgcmFuZ2UgMHg3MCAweDcyOyBhID4gQTsgYiA+IEI7IHEgPiBROyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0IT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBObyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGludmFsaWQgcG9zdCBjb250ZXh0IGVycm9yIGhhbmRsaW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEludmFsaWRQb3N0Q29udGV4dCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCAiYX1ie2M+ZDsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICBpZiAobXNnLmluZGV4T2YoImF9YntjIikgPj0gMCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRkFJTDogTm8gc3ludGF4IGVycm9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBJRCBmb3JtIHZhcmlhbnRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdElERm9ybXMoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAiTkZDIiwgbnVsbCwgIk5GRCIsCisgICAgICAgICAgICAibmZkIiwgbnVsbCwgIk5GQyIsIC8vIG1ha2Ugc3VyZSBjYXNlIGlzIGlnbm9yZWQKKyAgICAgICAgICAgICJBbnktTkZLRCIsIG51bGwsICJBbnktTkZLQyIsCisgICAgICAgICAgICAiTnVsbCIsIG51bGwsICJOdWxsIiwKKyAgICAgICAgICAgICItbmZrYyIsICJuZmtjIiwgIk5GS0QiLAorICAgICAgICAgICAgIi1uZmtjLyIsICJuZmtjIiwgIk5GS0QiLAorICAgICAgICAgICAgIkxhdGluLUdyZWVrL1VOR0VHTiIsIG51bGwsICJHcmVlay1MYXRpbi9VTkdFR04iLAorICAgICAgICAgICAgIkdyZWVrL1VOR0VHTi1MYXRpbiIsICJHcmVlay1MYXRpbi9VTkdFR04iLCAiTGF0aW4tR3JlZWsvVU5HRUdOIiwKKyAgICAgICAgICAgICJCZW5nYWxpLURldmFuYWdhcmkvIiwgIkJlbmdhbGktRGV2YW5hZ2FyaSIsICJEZXZhbmFnYXJpLUJlbmdhbGkiLAorICAgICAgICAgICAgIlNvdXJjZS0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIlNvdXJjZS9WYXJpYW50LSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiU291cmNlLS9WYXJpYW50IiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICIvVmFyaWFudCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiL1ZhcmlhbnQtIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICItL1ZhcmlhbnQiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi0vIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICItIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICIvIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBJRCA9IERBVEFbaV07CisgICAgICAgICAgICBTdHJpbmcgZXhwSUQgPSBEQVRBW2krMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwSW52SUQgPSBEQVRBW2krMl07CisgICAgICAgICAgICBib29sZWFuIGV4cFZhbGlkID0gKGV4cEludklEICE9IG51bGwpOworICAgICAgICAgICAgaWYgKGV4cElEID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBleHBJRCA9IElEOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0KKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhleHBJRCkgJiYKKyAgICAgICAgICAgICAgICAgICAgdS5nZXRJRCgpLmVxdWFscyhleHBJbnZJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgSUQgKyAiLmdldEludmVyc2UoKSA9PiAiICsgZXhwSW52SUQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdC5nZXRJRCgpICsgIiB4IGdldEludmVyc2UoKSA9PiAiICsgdS5nZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cEludklEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmICghZXhwVmFsaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKSA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKSA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgY2hlY2tSdWxlcyhTdHJpbmcgbGFiZWwsIFRyYW5zbGl0ZXJhdG9yIHQyLCBTdHJpbmcgdGVzdFJ1bGVzRm9yd2FyZCkgeworICAgICAgICBTdHJpbmcgcnVsZXMyID0gdDIudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgLy9ydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlQWxsKHJ1bGVzMiwgbmV3IFVuaWNvZGVTZXQoIlsnICdcblxyXSIpLCAiIik7CisgICAgICAgIHJ1bGVzMiA9IFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMyLCAiICIsICIiKTsKKyAgICAgICAgcnVsZXMyID0gVGVzdFV0aWxpdHkucmVwbGFjZShydWxlczIsICJcbiIsICIiKTsKKyAgICAgICAgcnVsZXMyID0gVGVzdFV0aWxpdHkucmVwbGFjZShydWxlczIsICJcciIsICIiKTsKKyAgICAgICAgdGVzdFJ1bGVzRm9yd2FyZCA9IFRlc3RVdGlsaXR5LnJlcGxhY2UodGVzdFJ1bGVzRm9yd2FyZCwgIiAiLCAiIik7CisKKyAgICAgICAgaWYgKCFydWxlczIuZXF1YWxzKHRlc3RSdWxlc0ZvcndhcmQpKSB7CisgICAgICAgICAgICBlcnJsbihsYWJlbCk7CisgICAgICAgICAgICBsb2dsbigiR0VORVJBVEVEIFJVTEVTOiAiICsgcnVsZXMyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJTSE9VTEQgQkU6ICAgICAgICIgKyB0ZXN0UnVsZXNGb3J3YXJkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1hcmsncyB0b1J1bGVzIHRlc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRvUnVsZXNNYXJrKCkgeworCisgICAgICAgIFN0cmluZyB0ZXN0UnVsZXMgPQorICAgICAgICAgICAgIjo6W1s6TGF0aW46XVs6TWFyazpdXTsiCisgICAgICAgICAgICArICI6Ok5GS0QgKE5GQyk7IgorICAgICAgICAgICAgKyAiOjpMb3dlciAoTG93ZXIpOyIKKyAgICAgICAgICAgICsgImEgPD4gXFx1MDNCMTsiIC8vIGFscGhhCisgICAgICAgICAgICArICI6Ok5GS0MgKE5GRCk7IgorICAgICAgICAgICAgKyAiOjpVcHBlciAoTG93ZXIpOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIgKCk7IgorICAgICAgICAgICAgKyAiOjooW1s6R3JlZWs6XVs6TWFyazpdXSk7IgorICAgICAgICAgICAgOworICAgICAgICBTdHJpbmcgdGVzdFJ1bGVzRm9yd2FyZCA9CisgICAgICAgICAgICAiOjpbWzpMYXRpbjpdWzpNYXJrOl1dOyIKKyAgICAgICAgICAgICsgIjo6TkZLRChORkMpOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIoTG93ZXIpOyIKKyAgICAgICAgICAgICsgImEgPiBcXHUwM0IxOyIKKyAgICAgICAgICAgICsgIjo6TkZLQyhORkQpOyIKKyAgICAgICAgICAgICsgIjo6VXBwZXIgKExvd2VyKTsiCisgICAgICAgICAgICArICI6Okxvd2VyICgpOyIKKyAgICAgICAgICAgIDsKKyAgICAgICAgU3RyaW5nIHRlc3RSdWxlc0JhY2t3YXJkID0KKyAgICAgICAgICAgICI6OltbOkdyZWVrOl1bOk1hcms6XV07IgorICAgICAgICAgICAgKyAiOjpMb3dlciAoVXBwZXIpOyIKKyAgICAgICAgICAgICsgIjo6TkZEKE5GS0MpOyIKKyAgICAgICAgICAgICsgIlxcdTAzQjEgPiBhOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIoTG93ZXIpOyIKKyAgICAgICAgICAgICsgIjo6TkZDKE5GS0QpOyIKKyAgICAgICAgICAgIDsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJcdTAwRTEiOyAvLyBhLWFjdXRlCisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiXHUwM0FDIjsgLy8gYWxwaGEtYWN1dGUKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygic291cmNlLXRhcmdldCIsIHRlc3RSdWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0YXJnZXQtc291cmNlIiwgdGVzdFJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKworICAgICAgICBleHBlY3QodDIsIHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgZXhwZWN0KHQzLCB0YXJnZXQsIHNvdXJjZSk7CisKKyAgICAgICAgY2hlY2tSdWxlcygiRmFpbGVkIHRvUnVsZXMgRk9SV0FSRCIsIHQyLCB0ZXN0UnVsZXNGb3J3YXJkKTsKKyAgICAgICAgY2hlY2tSdWxlcygiRmFpbGVkIHRvUnVsZXMgQkFDS1dBUkQiLCB0MywgdGVzdFJ1bGVzQmFja3dhcmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgRXNjYXBlIGFuZCBVbmVzY2FwZSB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVzY2FwZSgpIHsKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIZXgtQW55IiksCisgICAgICAgICAgICAgICAiXFx4ezQwfVxcVTAwMDAwMDMxJiN4MzI7JiM4MTsiLAorICAgICAgICAgICAgICAgIkAxMlEiKTsKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L0MiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJBXFxVMDAxMEJFRUZcXHVGRUVEIiksCisgICAgICAgICAgICAgICAiXFx1MDA0MVxcVTAwMTBCRUVGXFx1RkVFRCIpOworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvSmF2YSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkFcXFUwMDEwQkVFRlxcdUZFRUQiKSwKKyAgICAgICAgICAgICAgICJcXHUwMDQxXFx1REJFRlxcdURFRUZcXHVGRUVEIik7CisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9QZXJsIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQVxcVTAwMTBCRUVGXFx1RkVFRCIpLAorICAgICAgICAgICAgICAgIlxceHs0MX1cXHh7MTBCRUVGfVxceHtGRUVEfSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBkaXNwbGF5IG5hbWVzIG9mIHZhcmlhbnRzIGxvb2sgcmVhc29uYWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBJRCwgZm9yd2FyZCBuYW1lLCByZXZlcnNlIG5hbWUKKyAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdGV4dCBhcyBuZWNlc3NhcnkgLS0gdGhlIGltcG9ydGFudCB0aGluZyBpcworICAgICAgICAgICAgLy8gbm90IHRoZSB0ZXh0IGl0c2VsZiwgYnV0IGhvdyB2YXJpb3VzIGNhc2VzIGFyZSBoYW5kbGVkLgorCisgICAgICAgICAgICAvLyBCYXNpYyB0ZXN0CisgICAgICAgICAgICAiQW55LUhleCIsICJBbnkgdG8gSGV4IEVzY2FwZSIsICJIZXggRXNjYXBlIHRvIEFueSIsCisKKyAgICAgICAgICAgIC8vIFZhcmlhbnRzCisgICAgICAgICAgICAiQW55LUhleC9QZXJsIiwgIkFueSB0byBIZXggRXNjYXBlL1BlcmwiLCAiSGV4IEVzY2FwZSB0byBBbnkvUGVybCIsCisKKyAgICAgICAgICAgIC8vIFRhcmdldC1vbmx5IElEcworICAgICAgICAgICAgIk5GQyIsICJBbnkgdG8gTkZDIiwgIkFueSB0byBORkQiLAorICAgICAgICB9OworCisgICAgICAgIExvY2FsZSBVUyA9IExvY2FsZS5VUzsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoREFUQVtpXSwgVVMpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2ldICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtpXSArICIuZ2V0RGlzcGxheU5hbWUoKSA9PiAiICsgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUodC5nZXRJRCgpLCBVUyk7CisgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKERBVEFbaSsyXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHQuZ2V0SUQoKSArICIuZ2V0RGlzcGxheU5hbWUoKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBuYW1lICsgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSsyXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHQuZ2V0SUQoKSArICIuZ2V0RGlzcGxheU5hbWUoKSA9PiAiICsgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvdmVyIGdldERpc3BsYXlOYW1lKFN0cmluZykKKyAgICAgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUyID0gVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUodC5nZXRJRCgpKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMobmFtZTIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREaXNwbGF5TmFtZSB3aXRoIGRlZmF1bHQgbG9jYWxlIGZhaWxlZCIpOworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KHNhdmUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBhbmNob3IgbWFza2luZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbmNob3JNYXNraW5nKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICJeYSA+IFE7IGEgPiBxOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodD09bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgcnVsZSArICIgPT4gIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0IGlzIG5vdCBpbiB0cm5zdHN0LmNwcC4gVGhpcyB0ZXN0IGhhcyBiZWVuIG1vdmVkIGZyb20gY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdC5qYXZhCisgICAgICogZHVyaW5nIElDVTRKIG1vZHVsYXJpemF0aW9uIHRvIHJlbW92ZSBkZXBlbmRlbmN5IG9mIHRlc3RzIG9uIFRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgICBwdWJsaWMgdm9pZCBUZXN0U2NyaXB0QWxsQ29kZXBvaW50cygpeworICAgICAgICAgICAgaW50IGNvZGU7CisgICAgICAgICAgICAgU3RyaW5nIG9sZElkPSIiOworICAgICAgICAgICAgIFN0cmluZyBvbGRBYmJySWQ9IiI7CisgICAgICAgICAgICBmb3IoIGludCBpID0wOyBpIDw9IDB4MTBmZmZmOyBpKyspeworICAgICAgICAgICAgICAgIGNvZGUgPVVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICAgICAgICAgIGNvZGUgPSBVU2NyaXB0LmdldFNjcmlwdChpKTsKKyAgICAgICAgICAgICAgICBpZihjb2RlPT1VU2NyaXB0LklOVkFMSURfQ09ERSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPVVTY3JpcHQuZ2V0TmFtZShjb2RlKTsKKyAgICAgICAgICAgICAgICAgU3RyaW5nIGFiYnIgPSBVU2NyaXB0LmdldFNob3J0TmFtZShjb2RlKTsKKyAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld0lkID0iWzoiK2lkKyI6XTtORkQiOworICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3QWJicklkID0iWzoiK2FiYnIrIjpdO05GRCI7CisgICAgICAgICAgICAgICAgIGlmKCFvbGRJZC5lcXVhbHMobmV3SWQpKXsKKyAgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3SWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzY3JpcHQgY29kZTogIiAraWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIiBzY3JpcHQgY29kZTogIiAraWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeGNlcHRpb246ICIrZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9sZElkID0gbmV3SWQ7CisgICAgICAgICAgICAgICAgIGlmKCFvbGRBYmJySWQuZXF1YWxzKG5ld0FiYnJJZCkpeworICAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuZXdBYmJySWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzY3JpcHQgY29kZTogIiArYWJicik7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiIHNjcmlwdCBjb2RlOiAiICthYmJyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhjZXB0aW9uOiAiK2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBvbGRBYmJySWQgPSBuZXdBYmJySWQ7CisgICAgICAgICAgICB9CisgICAgfQorCisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSByZWdpc3RlclJ1bGVzID0geworICAgICAgICB7IkFueS1EZXYxIiwgInggPiBYOyB5ID4gWTsifSwKKyAgICAgICAgeyJBbnktRGV2MiIsICJYWSA+IFoifSwKKyAgICAgICAgeyJHcmVlay1MYXRpbi9GQUtFIiwKKyAgICAgICAgICAgICJbXls6TDpdWzpNOl1dIHsgXHUwM2JjXHUwM2MwID4gYiA7ICIrCisgICAgICAgICAgICAiXHUwM2JjXHUwM2MwIH0gW15bOkw6XVs6TTpdXSA+IGIgOyAiKworICAgICAgICAgICAgIlteWzpMOl1bOk06XV0geyBbXHUwMzljXHUwM2JjXVtcdTAzYTBcdTAzYzBdID4gQiA7ICIrCisgICAgICAgICAgICAiW1x1MDM5Y1x1MDNiY11bXHUwM2EwXHUwM2MwXSB9IFteWzpMOl1bOk06XV0gPiBCIDsiCisgICAgICAgICAgICB9LAorICAgIH07CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERFU0VSRVRfREVFID0gVVRGMTYudmFsdWVPZigweDEwNDE0KTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERFU0VSRVRfZGVlID0gVVRGMTYudmFsdWVPZigweDEwNDNDKTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHRlc3RDYXNlcyA9IHsKKworICAgICAgICAvLyBOT1JNQUxJWkFUSU9OCisgICAgICAgIC8vIHNob3VsZCBhZGQgbW9yZSB0ZXN0IGNhc2VzCisgICAgICAgIHsiTkZEIiAsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZDIiAsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZLRCIsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZLQyIsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisKKyAgICAgICAgLy8gbXAgLT4gYiBCVUcKKyAgICAgICAgeyJHcmVlay1MYXRpbi9VTkdFR04iLCAiKFx1MDNCQ1x1MDNDMCkiLCAiKGIpIn0sCisgICAgICAgIHsiR3JlZWstTGF0aW4vRkFLRSIsICIoXHUwM0JDXHUwM0MwKSIsICIoYikifSwKKworICAgICAgICAvLyBjaGVjayBmb3IgZGV2YW5hZ2FyaSBidWcKKyAgICAgICAgeyJuZmQ7RGV2MTtEZXYyO25mYyIsICJ4eSIsICJaIn0sCisKKyAgICAgICAgLy8gZmYsIGksIGRvdGxlc3MtaSwgSSwgZG90dGVkLUksIExKTGpsaiBkZXNlcmV0IGRlZURFRQorICAgICAgICB7IlRpdGxlIiwgImFiJ2NEIGZmaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgIkFiJ2NkIEZmaVx1MDEzMWlpXHUwMzA3IFx1MDFDOFx1MDFDOVx1MDFDOSAiICsgREVTRVJFVF9ERUUgKyBERVNFUkVUX2RlZX0sCisgICAgICAgIC8vVE9ETzogZW5hYmxlIHRoaXMgdGVzdCBvbmNlIFRpdGxlY2FzZSB3b3JrcyByaWdodAorICAgICAgICAvL3siVGl0bGUiLCAiXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAvLyAgICAgICAgICAiRmZpXHUwMTMxaWkgXHUwMUM4XHUwMUM5XHUwMUM5ICIgKyBERVNFUkVUX0RFRSArIERFU0VSRVRfZGVlfSwKKworICAgICAgICB7IlVwcGVyIiwgImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSwKKyAgICAgICAgICAgICAgICAgICJBQidDRCBGRklJSVx1MDEzMCBcdTAxQzdcdTAxQzdcdTAxQzcgIiArIERFU0VSRVRfREVFICsgREVTRVJFVF9ERUV9LAorICAgICAgICB7Ikxvd2VyIiwgImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSwKKyAgICAgICAgICAgICAgICAgICJhYidjZCBcdUZCMDBpXHUwMTMxaWlcdTAzMDcgXHUwMUM5XHUwMUM5XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfZGVlfSwKKworICAgICAgICB7IlVwcGVyIiwgImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRX0sCisgICAgICAgIHsiTG93ZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFfSwKKworICAgICAgICAgLy8gRk9STVMgT0YgUworICAgICAgICB7IkdyZWVrLUxhdGluL1VOR0VHTiIsICJcdTAzQzMgXHUwM0MzXHUwM0MyIFx1MDNDMlx1MDNDMyIsICJzIHNzIHNcdTAzMzFzXHUwMzMxIn0sCisgICAgICAgIHsiTGF0aW4tR3JlZWsvVU5HRUdOIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEiLCAiXHUwM0MzIFx1MDNDM1x1MDNDMiBcdTAzQzJcdTAzQzMifSwKKyAgICAgICAgeyJHcmVlay1MYXRpbiIsICJcdTAzQzMgXHUwM0MzXHUwM0MyIFx1MDNDMlx1MDNDMyIsICJzIHNzIHNcdTAzMzFzXHUwMzMxIn0sCisgICAgICAgIHsiTGF0aW4tR3JlZWsiLCAicyBzcyBzXHUwMzMxc1x1MDMzMSIsICJcdTAzQzMgXHUwM0MzXHUwM0MyIFx1MDNDMlx1MDNDMyJ9LAorCisgICAgICAgIC8vIFRhdGlhbmEgYnVnCisgICAgICAgIC8vIFVwcGVyOiBUQVRcdTAyQjlcdTAwQzJOQQorICAgICAgICAvLyBMb3dlcjogdGF0XHUwMkI5XHUwMEUybmEKKyAgICAgICAgLy8gVGl0bGU6IFRhdFx1MDJCOVx1MDBFMm5hCisgICAgICAgIHsiVXBwZXIiLCAidGF0XHUwMkI5XHUwMEUybmEiLCAiVEFUXHUwMkI5XHUwMEMyTkEifSwKKyAgICAgICAgeyJMb3dlciIsICJUQVRcdTAyQjlcdTAwQzJOQSIsICJ0YXRcdTAyQjlcdTAwRTJuYSJ9LAorICAgICAgICB7IlRpdGxlIiwgInRhdFx1MDJCOVx1MDBFMm5hIiwgIlRhdFx1MDJCOVx1MDBFMm5hIn0sCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGVjaWFsQ2FzZXMoKSB7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWdpc3RlclJ1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKHJlZ2lzdGVyUnVsZXNbaV1bMF0sCisgICAgICAgICAgICAgICAgcmVnaXN0ZXJSdWxlc1tpXVsxXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBEdW1teUZhY3RvcnkuYWRkKHJlZ2lzdGVyUnVsZXNbaV1bMF0sIHQpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHRlc3RDYXNlc1tpXVswXTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IHQuZ2V0SUQoKTsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSB0ZXN0Q2FzZXNbaV1bMV07CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbnVsbDsKKworICAgICAgICAgICAgLy8gQXV0b21hdGljIGdlbmVyYXRpb24gb2YgdGFyZ2V0cywgdG8gbWFrZSBpdCBzaW1wbGVyIHRvIGFkZCB0ZXN0IGNhc2VzIChhbmQgbW9yZSBmYWlsLXNhZmUpCisKKyAgICAgICAgICAgIGlmICh0ZXN0Q2FzZXNbaV0ubGVuZ3RoID4gMikgICAgdGFyZ2V0ID0gdGVzdENhc2VzW2ldWzJdOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTkZEIikpICAgIHRhcmdldCA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIk5GQyIpKSAgICB0YXJnZXQgPSBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORktEIikpICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIk5GS0MiKSkgICB0YXJnZXQgPSBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTG93ZXIiKSkgIHRhcmdldCA9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLlVTLCBzb3VyY2UpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiVXBwZXIiKSkgIHRhcmdldCA9IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoTG9jYWxlLlVTLCBzb3VyY2UpOworCisgICAgICAgICAgICBleHBlY3QodCwgc291cmNlLCB0YXJnZXQpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVnaXN0ZXJSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihyZWdpc3RlclJ1bGVzW2ldWzBdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNlZW1zIGxpa2UgdGhlcmUgc2hvdWxkIGJlIGFuIGVhc2llciB3YXkgdG8ganVzdCByZWdpc3RlciBhbiBpbnN0YW5jZSBvZiBhIHRyYW5zbGl0ZXJhdG9yCisKKyAgICBzdGF0aWMgY2xhc3MgRHVtbXlGYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBTaW5jZSBUcmFuc2xpdGVyYXRvcnMgYXJlIGltbXV0YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9uZSBvbiBzZXQgJiBnZXQKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nOiAiICsgSUQgKyAiLCAiICsgdC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlQ2FzaW5nICgpIHsKKyAgICAgICAgLy8gY2hlY2sgdGhhdCBjYXNpbmcgaGFuZGxlcyBzdXJyb2dhdGVzCisgICAgICAgIC8vIHRpdGxlY2FzZSBpcyBjdXJyZW50bHkgZGVmZWN0aXZlCisgICAgICAgIGludCBkZWUgPSBVVEYxNi5jaGFyQXQoREVTRVJFVF9kZWUsMCk7CisgICAgICAgIGludCBERUUgPSBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGRlZSk7CisgICAgICAgIGlmICghVVRGMTYudmFsdWVPZihERUUpLmVxdWFscyhERVNFUkVUX0RFRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlscyB0aXRsZWNhc2Ugb2Ygc3Vycm9nYXRlcyIgKyBJbnRlZ2VyLnRvU3RyaW5nKGRlZSwxNikgKyAiLCAiICsgSW50ZWdlci50b1N0cmluZyhERUUsMTYpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShERVNFUkVUX2RlZSArIERFU0VSRVRfREVFKS5lcXVhbHMoREVTRVJFVF9ERUUgKyBERVNFUkVUX0RFRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlscyB1cHBlcmNhc2Ugb2Ygc3Vycm9nYXRlcyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUpLmVxdWFscyhERVNFUkVUX2RlZSArIERFU0VSRVRfZGVlKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxzIGxvd2VyY2FzZSBvZiBzdXJyb2dhdGVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBDaGVjayB0byBzZWUgdGhhdCBpbmNyZW1lbnRhbCBnZXRzIGF0IGxlYXN0IHBhcnQgd2F5IHRocm91Z2ggYSByZWFzb25hYmxlIHN0cmluZy4KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmNyZW1lbnRhbFByb2dyZXNzKCkgeworICAgICAgICBTdHJpbmcgbGF0aW5UZXN0ID0gIlRoZSBRdWljayBCcm93biBGb3guIjsKKyAgICAgICAgU3RyaW5nIGRldmFUZXN0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmkiKS50cmFuc2xpdGVyYXRlKGxhdGluVGVzdCk7CisgICAgICAgIFN0cmluZyBrYXRhVGVzdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1LYXRha2FuYSIpLnRyYW5zbGl0ZXJhdGUobGF0aW5UZXN0KTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIHsiQW55IiwgbGF0aW5UZXN0fSwKKyAgICAgICAgICAgIHsiTGF0aW4iLCBsYXRpblRlc3R9LAorICAgICAgICAgICAgeyJIYWxmd2lkdGgiLCBsYXRpblRlc3R9LAorICAgICAgICAgICAgeyJEZXZhbmFnYXJpIiwgZGV2YVRlc3R9LAorICAgICAgICAgICAgeyJLYXRha2FuYSIsIGthdGFUZXN0fSwKKyAgICAgICAgfTsKKworICAgICAgICBFbnVtZXJhdGlvbiBzb3VyY2VzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIHRlc3QgPSBmaW5kTWF0Y2goc291cmNlLCB0ZXN0cyk7CisgICAgICAgICAgICBpZiAodGVzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nICIgKyBzb3VyY2UgKyAiLVgiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEVudW1lcmF0aW9uIHRhcmdldHMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgICAgICAgICB3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHRhcmdldHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB2YXJpYW50cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQ7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJpZDogIiArIGlkKTsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsdGVyID0gZ2V0VHJhbnNsaXRUZXN0RmlsdGVyKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCAmJiBpZC5pbmRleE9mKGZpbHRlcikgPCAwKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQpOworICAgICAgICAgICAgICAgICAgICBDaGVja0luY3JlbWVudGFsQXV4KHQsIHRlc3QpOworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXYgPSB0LnRyYW5zbGl0ZXJhdGUodGVzdCk7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludiA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgICAgICAgICBDaGVja0luY3JlbWVudGFsQXV4KGludiwgcmV2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGZpbmRNYXRjaCAoU3RyaW5nIHNvdXJjZSwgU3RyaW5nW11bXSBwYWlycykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc291cmNlLmVxdWFsc0lnbm9yZUNhc2UocGFpcnNbaV1bMF0pKSByZXR1cm4gcGFpcnNbaV1bMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgQ2hlY2tJbmNyZW1lbnRhbEF1eChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgaW5wdXQpIHsKKworICAgICAgICBSZXBsYWNlYWJsZSB0ZXN0ID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKGlucHV0KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDAsIHRlc3QubGVuZ3RoKCksIDAsIHRlc3QubGVuZ3RoKCkpOworICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdCwgcG9zKTsKKyAgICAgICAgYm9vbGVhbiBnb3RFcnJvciA9IGZhbHNlOworCisgICAgICAgIC8vIHdlIGhhdmUgYSBmZXcgc3BlY2lhbCBjYXNlcy4gQW55LVJlbW92ZSAocG9zLnN0YXJ0ID0gMCwgYnV0IGFsc28gPSBsaW1pdCkgYW5kIFUrWFhYWFg/WD8KKworICAgICAgICBpZiAocG9zLnN0YXJ0ID09IDAgJiYgcG9zLmxpbWl0ICE9IDAgJiYgIXQuZ2V0SUQoKS5lcXVhbHMoIkhleC1BbnkvVW5pY29kZSIpKSB7CisgICAgICAgICAgICBlcnJsbigiTm8gUHJvZ3Jlc3MsICIgKyB0LmdldElEKCkgKyAiOiAiICsgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGVzdCwgcG9zKSk7CisgICAgICAgICAgICBnb3RFcnJvciA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUyBQcm9ncmVzcywgIiArIHQuZ2V0SUQoKSArICI6ICIgKyBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dCh0ZXN0LCBwb3MpKTsKKyAgICAgICAgfQorICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbih0ZXN0LCBwb3MpOworICAgICAgICBpZiAocG9zLnN0YXJ0ICE9IHBvcy5saW1pdCkgeworICAgICAgICAgICAgZXJybG4oIkluY29tcGxldGUsICIgKyB0LmdldElEKCkgKyAiOiAgIiArIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRlc3QsIHBvcykpOworICAgICAgICAgICAgZ290RXJyb3IgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmKCFnb3RFcnJvcil7CisgICAgICAgICAgICAvL2VycmxuKCJGQUlMOiBEaWQgbm90IGdldCBleHBlY3RlZCBlcnJvciIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZ1bmN0aW9uKCkgeworICAgICAgICAvLyBDYXJlZnVsIHdpdGggc3BhY2luZyBhbmQgJzsnIGhlcmU6ICBQaHJhc2UgdGhpcyBleGFjdGx5CisgICAgICAgIC8vIGFzIHRvUnVsZXMoKSBpcyBnb2luZyB0byByZXR1cm4gaXQuICBJZiB0b1J1bGVzKCkgY2hhbmdlcworICAgICAgICAvLyB3aXRoIHJlZ2FyZCB0byBzcGFjaW5nIG9yICc7JywgdGhlbiBhZGp1c3QgdGhpcyBzdHJpbmcuCisgICAgICAgIFN0cmluZyBydWxlID0KKyAgICAgICAgICAgICIoWzpMdTpdKSA+ICQxICcoJyAmTG93ZXIoICQxICkgJz0nICZIZXgoICZBbnktTG93ZXIoICQxICkgKSAnKSc7IjsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKHIuZXF1YWxzKHJ1bGUpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IHRvUnVsZXMoKSA9PiAiICsgcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBydWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdCh0LCAiVGhlIFF1aWNrIEJyb3duIEZveCIsCisgICAgICAgICAgICAgICAiVCh0PVxcdTAwNzQpaGUgUShxPVxcdTAwNzEpdWljayBCKGI9XFx1MDA2Milyb3duIEYoZj1cXHUwMDY2KW94Iik7CisgICAgICAgIHJ1bGUgPQorICAgICAgICAgICAgIihbXlxcIC1cXHUwMDdGXSkgPiAmSGV4L1VuaWNvZGUoICQxICkgJyAnICZOYW1lKCAkMSApIDsiOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QodCwgIlx1MDMwMSIsCisgICAgICAgICAgICAgICAiVSswMzAxIFxcTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnZhbGlkQmFja1JlZigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAgIi4gPiAkMTsiOworICAgICAgICBTdHJpbmcgcnVsZTIgPSIoLikgPD4gJmhleC91bmljb2RlKCQxKSAmbmFtZSgkMSk7IC4gPiAkMTsgW3t9XSA+XHUwMDIwOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBzaG91bGQgaGF2ZSByZXR1cm5lZCBOVUxMIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiRkFJTDogT2s6IC4gPiAkMTsgPT4gbm8gZXJyb3IiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QyIiwgcnVsZTIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKHQyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIHNob3VsZCBoYXZlIHJldHVybmVkIE5VTEwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPazogLiA+ICQxOyA9PiBubyBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgIGxvZ2xuKCJPazogLiA+ICQxOyA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE11bHRpY2hhclN0cmluZ1NldCgpIHsKKyAgICAgICAgLy8gQmFzaWMgdGVzdGluZworICAgICAgICBTdHJpbmcgcnVsZSA9CisgICAgICAgICAgICAiICAgICAgIFt7YWF9XSAgICAgICA+IHg7IiArCisgICAgICAgICAgICAiICAgICAgICAgYSAgICAgICAgICA+IHk7IiArCisgICAgICAgICAgICAiICAgICAgIFtie2JjfV0gICAgICA+IHo7IiArCisgICAgICAgICAgICAiW3tnZH1dIHsgZSAgICAgICAgICA+IHE7IiArCisgICAgICAgICAgICAiICAgICAgICAgZSB9IFt7Zmd9XSA+IHI7IiA7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0KHQsICJhIGFhIGFiIGJjIGQgZ2QgZGUgZ2RlIGdkZWZnIGRkZWZnIiwKKyAgICAgICAgICAgICAgICAgICJ5IHggeXogeiBkIGdkIGRlIGdkcSBnZHFmZyBkZHJmZyIpOworCisgICAgICAgIC8vIE92ZXJsYXBwZWQgc3RyaW5nIHRlc3QuICBNYWtlIHN1cmUgdGhhdCB3aGVuIG11bHRpcGxlCisgICAgICAgIC8vIHN0cmluZ3MgY2FuIG1hdGNoIHRoYXQgdGhlIGxvbmdlc3Qgb25lIGlzIG1hdGNoZWQuCisgICAgICAgIHJ1bGUgPQorICAgICAgICAgICAgIiAgICBbYSB7YWJ9IHthYmN9XSAgICA+IHg7IiArCisgICAgICAgICAgICAiICAgICAgICAgICBiICAgICAgICAgID4geTsiICsKKyAgICAgICAgICAgICIgICAgICAgICAgIGMgICAgICAgICAgPiB6OyIgKworICAgICAgICAgICAgIiBxIFt0IHtzdH0ge3JzdH1dIHsgZSA+IHA7IiA7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0KHQsICJhIGFiIGFiYyBxdGUgcXN0ZSBxcnN0ZSIsCisgICAgICAgICAgICAgICAgICAieCB4IHggcXRwIHFzdHAgcXJzdHAiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdXNlci1yZWdpc3RlcmVkIHRyYW5zbGl0ZXJhdG9ycyBjYW4gYmUgdXNlZCB1bmRlciBmdW5jdGlvbgorICAgICAqIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VXNlckZ1bmN0aW9uKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworCisgICAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byByZWdpc3RlciBpbnZlcnNlcyBpZiB3ZSBkb24ndCB1c2UgdGhlbQorICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1naWYiLAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJnaWYiLAorICAgICAgICAgICAgICAgICInXFwndSguLikoLi4pID4gJzxpbWcgc3JjPVwiaHR0cDovL3d3dy51bmljb2RlLm9yZy9naWZzLzI0LycgJDEgJy9VJyAkMSQyICcuZ2lmXCI+JzsiLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsKKyAgICAgICAgLy9UZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoImdpZi1BbnkiLCBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LU51bGwiKSk7CisKKyAgICAgICAgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJBbnktUmVtb3ZlQ3VybHkiLAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZW1vdmVDdXJseSIsICJbXFx7XFx9XSA+IDsgXFxcXE4gPiA7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkpOworICAgICAgICAvL1Rlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiUmVtb3ZlQ3VybHktQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOworCisgICAgICAgIGxvZ2xuKCJUcnlpbmcgJmhleCIpOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJoZXgyIiwgIiguKSA+ICZoZXgoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBsb2dsbigiUmVnaXN0ZXJpbmciKTsKKyAgICAgICAgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJBbnktaGV4MiIsIHQpOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1oZXgyIik7CisgICAgICAgIGV4cGVjdCh0LCAiYWJjIiwgIlxcdTAwNjFcXHUwMDYyXFx1MDA2MyIpOworCisgICAgICAgIGxvZ2xuKCJUcnlpbmcgJmdpZiIpOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJnaWYyIiwgIiguKSA+ICZHaWYoJkhleDIoJDEpKTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LWdpZjIiLCB0KTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktZ2lmMiIpOworICAgICAgICBleHBlY3QodCwgImFiIiwgIjxpbWcgc3JjPVwiaHR0cDovL3d3dy51bmljb2RlLm9yZy9naWZzLzI0LzAwL1UwMDYxLmdpZlwiPiIgKworICAgICAgICAgICAgICAgIjxpbWcgc3JjPVwiaHR0cDovL3d3dy51bmljb2RlLm9yZy9naWZzLzI0LzAwL1UwMDYyLmdpZlwiPiIpOworCisgICAgICAgIC8vIFRlc3QgdGhhdCBmaWx0ZXJzIGFyZSBhbGxvd2VkIGFmdGVyICYKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygidGVzdCIsCisgICAgICAgICAgICAgICAgIiguKSA+ICZIZXgoJDEpICcgJyAmQW55LVJlbW92ZUN1cmx5KCZOYW1lKCQxKSkgJyAnOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBleHBlY3QodCwgImFiYyIsICJcXHUwMDYxIExBVElOIFNNQUxMIExFVFRFUiBBIFxcdTAwNjIgTEFUSU4gU01BTEwgTEVUVEVSIEIgXFx1MDA2MyBMQVRJTiBTTUFMTCBMRVRURVIgQyAiKTsKKworICAgICAgICAvLyBVbnJlZ2lzdGVyIG91ciB0ZXN0IHN0dWZmCisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LnVucmVnaXN0ZXIoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkgaW1wbGVtZW50cyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IHsKKyAgICAgICAgc3RhdGljIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5IHNpbmdsZXRvbiA9IG5ldyBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICBzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICBtLnB1dChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSwgdCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyKCkgeworICAgICAgICAgICAgSXRlcmF0b3IgaWRzID0gbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGlkcy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgaWQgPSAoQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKSBpZHMubmV4dCgpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoaWQuZ2V0U3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlkcy5yZW1vdmUoKTsgLy8gcmVtb3ZlcyBwYWlyIGZyb20gbQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgQW55LVggdHJhbnNsaXRlcmF0b3JzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbnlYKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBhbnlMYXRpbiA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZXhwZWN0KGFueUxhdGluLAorICAgICAgICAgICAgICAgImdyZWVrOlx1MDNCMVx1MDNCMlx1MDNCQVx1MDM5MVx1MDM5Mlx1MDM5QSBoaXJhZ2FuYTpcdTMwNDJcdTMwNzZcdTMwNEYgY3lyaWxsaWM6XHUwNDMwXHUwNDMxXHUwNDQ2IiwKKyAgICAgICAgICAgICAgICJncmVlazphYmtBQksgaGlyYWdhbmE6YWJ1a3UgY3lyaWxsaWM6YWJjIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgc291cmNlIGFuZCB0YXJnZXQgc2V0IEFQSS4gIFRoZXNlIGFyZSBvbmx5IGltcGxlbWVudGVkCisgICAgICogZm9yIFJCVCBhbmQgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBhdCB0aGlzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNvdXJjZVRhcmdldFNldCgpIHsKKyAgICAgICAgLy8gUnVsZXMKKyAgICAgICAgU3RyaW5nIHIgPQorICAgICAgICAgICAgImEgPiBiOyAiICsKKyAgICAgICAgICAgICJyIFt4e2x1fV0gPiBxOyI7CisKKyAgICAgICAgLy8gRXhwZWN0ZWQgc291cmNlCisgICAgICAgIFVuaWNvZGVTZXQgZXhwU3JjID0gbmV3IFVuaWNvZGVTZXQoIlthcnh7bHV9XSIpOworCisgICAgICAgIC8vIEV4cGVjdGVkIHRhcmdldAorICAgICAgICBVbmljb2RlU2V0IGV4cFRyZyA9IG5ldyBVbmljb2RlU2V0KCJbYnFdIik7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygidGVzdCIsIHIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBVbmljb2RlU2V0IHNyYyA9IHQuZ2V0U291cmNlU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgdHJnID0gdC5nZXRUYXJnZXRTZXQoKTsKKworICAgICAgICBpZiAoc3JjLmVxdWFscyhleHBTcmMpICYmIHRyZy5lcXVhbHMoZXhwVHJnKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgciArICIgPT4gc291cmNlID0gIiArIHNyYy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIiwgdGFyZ2V0ID0gIiArIHRyZy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyByICsgIiA9PiBzb3VyY2UgPSAiICsgc3JjLnRvUGF0dGVybih0cnVlKSArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwU3JjLnRvUGF0dGVybih0cnVlKSArCisgICAgICAgICAgICAgICAgICAiOyB0YXJnZXQgPSAiICsgdHJnLnRvUGF0dGVybih0cnVlKSArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwVHJnLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGhhbmRsaW5nIG9mIHJ1bGUgd2hpdGVzcGFjZSwgZm9yIGJvdGggUkJUIGFuZCBVbmljb2RlU2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlV2hpdGVzcGFjZSgpIHsKKyAgICAgICAgLy8gUnVsZXMKKyAgICAgICAgU3RyaW5nIHIgPSAiYSA+IFx1MjAwRSBiOyI7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygidGVzdCIsIHIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgIGV4cGVjdCh0LCAiYSIsICJiIik7CisKKyAgICAgICAgLy8gVW5pY29kZVNldAorICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCJbYSBcdTIwMEVdIik7CisKKyAgICAgICAgaWYgKHNldC5jb250YWlucygweDIwMEUpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVSsyMDBFIG5vdCBiZWluZyBpZ25vcmVkIGJ5IFVuaWNvZGVTZXQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBbHRlcm5hdGVTeW50YXgoKSB7CisgICAgICAgIC8vIFUrMjIwNiA9PSAmCisgICAgICAgIC8vIFUrMjE5MCA9PSA8CisgICAgICAgIC8vIFUrMjE5MiA9PSA+CisgICAgICAgIC8vIFUrMjE5NCA9PSA8PgorICAgICAgICBleHBlY3QoImEgXHUyMTkyIHg7IGIgXHUyMTkwIHk7IGMgXHUyMTk0IHoiLAorICAgICAgICAgICAgICAgImFiYyIsCisgICAgICAgICAgICAgICAieGJ6Iik7CisgICAgICAgIGV4cGVjdCgiKFs6XkFTQ0lJOl0pIFx1MjE5MiBcdTIyMDZOYW1lKCQxKTsiLAorICAgICAgICAgICAgICAgIjw9XHUyMTkwOyA+PVx1MjE5MjsgPD49XHUyMTk0OyAmPVx1MjIwNiIsCisgICAgICAgICAgICAgICAiPD1cXE57TEVGVFdBUkRTIEFSUk9XfTsgPj1cXE57UklHSFRXQVJEUyBBUlJPV307IDw+PVxcTntMRUZUIFJJR0hUIEFSUk9XfTsgJj1cXE57SU5DUkVNRU5UfSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RQb3NpdGlvbkFQSSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gYSA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigzLDUsNywxMSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGIgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oYSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGMgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgYy5zZXQoYSk7CisgICAgICAgIC8vIENhbGwgdGhlIHRvU3RyaW5nKCkgQVBJOgorICAgICAgICBpZiAoYS5lcXVhbHMoYikgJiYgYS5lcXVhbHMoYykpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGEgKyAiID09ICIgKyBiICsgIiA9PSAiICsgYyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGEgKyAiICE9ICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTmV3IHRlc3RzIGZvciB0aGUgOjpCRUdJTi86OkVORCBzeW50YXgKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEJFR0lOX0VORF9SVUxFUyA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgIC8vIFswXQorICAgICAgICAiYWJjID4geHk7IgorICAgICAgICArICJhYmEgPiB6OyIsCisKKyAgICAgICAgLy8gWzFdCisvKgorICAgICAgICAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJhID4gejsiCisgICAgICAgICsgIjo6RU5EOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsyXQorLyoKKyAgICAgICAgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYSA+IHo7IgorICAgICAgICArICI6OkVORDsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbM10KKy8qCisgICAgICAgICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJjID4geHk7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgImFiYSA+IHo7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzRdCisgICAgICAgICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgImFiYSA+IHo7IiwKKworICAgICAgICAvLyBbNV0KKyAgICAgICAgIjo6VXBwZXI7IgorICAgICAgICArICJBQkMgPiB4eTsiCisgICAgICAgICsgIkFCID4geDsiCisgICAgICAgICsgIkMgPiB6OyIKKyAgICAgICAgKyAiOjpVcHBlcjsiCisgICAgICAgICsgIlhZWiA+IHA7IgorICAgICAgICArICJYWSA+IHE7IgorICAgICAgICArICJaID4gcjsiCisgICAgICAgICsgIjo6VXBwZXI7IiwKKworICAgICAgICAvLyBbNl0KKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiLAorCisgICAgICAgIC8vIFs3XQorICAgICAgICAiOjpOdWxsOyIKKyAgICAgICAgKyAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIsCisKKyAgICAgICAgLy8gWzhdCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IgorICAgICAgICArICI6Ok51bGw7IiwKKworICAgICAgICAvLyBbOV0KKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiLAorCisgICAgICAgIC8vIFsxMF0KKy8qCisgICAgICAgICI6OkJFR0lOOyIKKyAgICAgICAgKyAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzExXQorLyoKKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IgorICAgICAgICArICI6OkVORDsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMTJdCisvKgorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICIkYWIgPSBbYWJdOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICIkYWIgeyAnICcgfSAkYWIgPiAnLSc7IgorICAgICAgICArICJjIHsgJyAnID4gOyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiJ2EtYScgPiBhXFwlfGE7IgorICAgICAgICArICI6OkVORDsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMTNdCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIiRhYiA9IFthYl07IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiJGFiIHsgJyAnIH0gJGFiID4gJy0nOyIKKyAgICAgICAgKyAiYyB7ICcgJyA+IDsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgIidhLWEnID4gYVxcJXxhOyIsCisKKyAgICAgICAgLy8gWzE0XQorLyoKKyAgICAgICAgIjo6W2FiY107IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJjID4geHk7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmEgPiB5ejsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpVcHBlcjsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMTVdCisgICAgICAgICI6OlthYmNdOyIKKyAgICAgICAgKyAiYWJjID4geHk7IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICJhYmEgPiB5ejsiCisgICAgICAgICsgIjo6VXBwZXI7IiwKKworICAgICAgICAvLyBbMTZdCisvKgorICAgICAgICAiOjpbYWJjXTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmMgPD4geHk7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmEgPD4geXo7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6VXBwZXIoTG93ZXIpOyIKKyAgICAgICAgKyAiOjooW1hZWl0pOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsxN10KKyAgICAgICAgIjo6W2FiY107IgorICAgICAgICArICJhYmMgPD4geHk7IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICJhYmEgPD4geXo7IgorICAgICAgICArICI6OlVwcGVyKExvd2VyKTsiCisgICAgICAgICsgIjo6KFtYWVpdKTsiCisgICAgfTsKKworLyoKKyhUaGlzIGVudGlyZSB0ZXN0IGlzIGNvbW1lbnRlZCBvdXQgYmVsb3cgYW5kIHdpbGwgbmVlZCBzb21lIGhlYXZ5IHJldmlzaW9uIHdoZW4gd2UgcmUtYWRkCit0aGUgOjpCRUdJTi86OkVORCBzdHVmZikKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBCT0dVU19CRUdJTl9FTkRfUlVMRVMgPSBuZXcgU3RyaW5nW10geworICAgICAgICAvLyBbN10KKyAgICAgICAgIjo6QkVHSU47IgorICAgICAgICArICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmEgPiB6OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OkVORDsiLAorCisgICAgICAgIC8vIFs4XQorICAgICAgICAiYWJjID4geHk7IgorICAgICAgICArICIgYWJhID4gejsiCisgICAgICAgICsgIjo6RU5EOyIsCisKKyAgICAgICAgLy8gWzldCisgICAgICAgICI6OkJFR0lOOyIKKyAgICAgICAgKyAiOjpVcHBlcjsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICB9OworKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEJFR0lOX0VORF9URVNUX0NBU0VTID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzBdLCAiYWJjIGFiYWJjIGFiYSIsICJ4eSB6YmMgeiIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzFdLCAiYWJjIGFiYWJjIGFiYSIsICJ4eSBhYnh5IHoiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1syXSwgImFiYyBhYmFiYyBhYmEiLCAieHkgYWJ4eSB6IiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbM10sICJhYmMgYWJhYmMgYWJhIiwgInh5IGFieHkgeiIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s0XSwgImFiYyBhYmFiYyBhYmEiLCAieHkgYWJ4eSB6IiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzVdLCAiYWJjY2FiYWFjYWJhYmNiYyIsICJQWEFBUlhRQlIiLAorCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s2XSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s3XSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s4XSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1s5XSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEwXSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzExXSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEyXSwgImUgICBlIC0gZS0tLWUtICBlIiwgImUgZSBlLWUtZSIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEyXSwgImEgICAgYSAgICBhICAgIGEiLCAiYSVhJWElYSIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEyXSwgImEgYS1iIGMgYiBhIiwgImElYS1iIGNiLWEiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTNdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEzXSwgImEgICAgYSAgICBhICAgIGEiLCAiYSVhJWElYSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1sxM10sICJhIGEtYiBjIGIgYSIsICJhJWEtYiBjYi1hIiwKKworLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1sxNF0sICJhYmMgeHkgYWJhYmMgeHl6IGFiYSIsICJYWSB4eSBBQlhZIHh5eiBZWiIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1sxNV0sICJhYmMgeHkgYWJhYmMgeHl6IGFiYSIsICJYWSB4eSBBQlhZIHh5eiBZWiIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzE2XSwgImFiYyB4eSBhYmFiYyB4eXogYWJhIiwgIlhZIHh5IEFCWFkgeHl6IFlaIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzE3XSwgImFiYyB4eSBhYmFiYyB4eXogYWJhIiwgIlhZIHh5IEFCWFkgeHl6IFlaIgorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVnaW5FbmQoKSB7CisgICAgICAgIC8vIHJ1biB0aHJvdWdoIHRoZSBsaXN0IG9mIHRlc3QgY2FzZXMgYWJvdmUKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCRUdJTl9FTkRfVEVTVF9DQVNFUy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgZXhwZWN0KEJFR0lOX0VORF9URVNUX0NBU0VTW2ldLCBCRUdJTl9FTkRfVEVTVF9DQVNFU1tpICsgMV0sIEJFR0lOX0VORF9URVNUX0NBU0VTW2kgKyAyXSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpbnN0YW50aWF0ZSB0aGUgb25lIHJldmVyc2libGUgcnVsZSBzZXQgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uIGFuZCBtYWtlIHN1cmUgaXQgZG9lcyB0aGUgcmlnaHQgdGhpbmcKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ZXJzZWQgID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZXZlcnNlZCIsIEJFR0lOX0VORF9SVUxFU1sxN10sCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGV4cGVjdChyZXZlcnNlZCwgInh5IFhZIFhZWiB5eiBZWiIsICJ4eSBhYmMgeGFiYSB5eiBhYmEiKTsKKworICAgICAgICAvLyBmaW5hbGx5LCBydW4gdGhyb3VnaCB0aGUgbGlzdCBvZiBzeW50YWN0aWNhbGx5LWlsbC1mb3JtZWQgcnVsZSBzZXRzIGFib3ZlIGFuZCBtYWtlIHN1cmUKKyAgICAgICAgLy8gdGhhdCBhbGwgb2YgdGhlbSBjYXVzZSBlcnJvcnMKKy8qCisoY29tbWVudGVkIG91dCB1bnRpbCB3ZSBoYXZlIHRoZSByZWFsIDo6QkVHSU4vOjpFTkQgc3R1ZmYgaW4gcGxhY2UKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCT0dVU19CRUdJTl9FTkRfUlVMRVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZm9vIiwgQk9HVVNfQkVHSU5fRU5EX1JVTEVTW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlNob3VsZCBoYXZlIGdvdHRlbiBzeW50YXggZXJyb3IgZnJvbSAiICsgQk9HVVNfQkVHSU5fRU5EX1JVTEVTW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgc3VwcG9zZWQgdG8gaGFwcGVuOyBkbyBub3RoaW5nIGhlcmUKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorKi8KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVnaW5FbmRUb1J1bGVzKCkgeworICAgICAgICAvLyBydW4gdGhyb3VnaCB0aGUgc2FtZSBsaXN0IG9mIHRlc3QgY2FzZXMgd2UgdXNlZCBhYm92ZSwgYnV0IHRoaXMgdGltZSwgaW5zdGVhZCBvZiBqdXN0CisgICAgICAgIC8vIGluc3RhbnRpYXRpbmcgYSBUcmFuc2xpdGVyYXRvciBmcm9tIHRoZSBydWxlcyBhbmQgcnVubmluZyB0aGUgdGVzdCBhZ2FpbnN0IGl0LCB3ZSBpbnN0YW50aWF0ZQorICAgICAgICAvLyBhIFRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIHJ1bGVzLCBkbyB0b1J1bGVzKCkgb24gaXQsIGluc3RhbnRpYXRlIGEgVHJhbnNsaXRlcmF0b3IgZnJvbQorICAgICAgICAvLyB0aGUgcmVzdWx0aW5nIHNldCBvZiBydWxlcywgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSBnZW5lcmF0ZWQgcnVsZSBzZXQgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQKKyAgICAgICAgLy8gdG8gKGkuZS4sIGRvZXMgdGhlIHNhbWUgdGhpbmcgYXMpIHRoZSBvcmlnaW5hbCBydWxlIHNldAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEJFR0lOX0VORF9URVNUX0NBU0VTLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCItLSIsIEJFR0lOX0VORF9URVNUX0NBU0VTW2ldLAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFN0cmluZyBydWxlcyA9IHQudG9SdWxlcyhmYWxzZSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCBjYXNlICMiICsgKGkgLyAzKSwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgZXhwZWN0KHQyLCBCRUdJTl9FTkRfVEVTVF9DQVNFU1tpICsgMV0sIEJFR0lOX0VORF9URVNUX0NBU0VTW2kgKyAyXSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBkbyB0aGUgc2FtZSB0aGluZyBmb3IgdGhlIHJldmVyc2libGUgdGVzdCBjYXNlCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJldmVyc2VkID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZXZlcnNlZCIsIEJFR0lOX0VORF9SVUxFU1sxN10sCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIFN0cmluZyBydWxlcyA9IHJldmVyc2VkLnRvUnVsZXMoZmFsc2UpOworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXZlcnNlZDIgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlJldmVyc2VkIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBleHBlY3QocmV2ZXJzZWQyLCAieHkgWFkgWFlaIHl6IFlaIiwgInh5IGFiYyB4YWJhIHl6IGFiYSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RlckFsaWFzKCkgeworICAgICAgICBTdHJpbmcgbG9uZ0lEID0gIkxvd2VyO1thZWlvdV1VcHBlciI7CisgICAgICAgIFN0cmluZyBzaG9ydElEID0gIkFueS1DYXBWb3dlbHMiOworICAgICAgICBTdHJpbmcgcmVhbGx5U2hvcnRJRCA9ICJDYXBWb3dlbHMiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyQWxpYXMoc2hvcnRJRCwgbG9uZ0lEKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGxvbmdJRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UocmVhbGx5U2hvcnRJRCk7CisKKyAgICAgICAgaWYgKCF0MS5nZXRJRCgpLmVxdWFscyhsb25nSUQpKQorICAgICAgICAgICAgZXJybG4oIlRyYW5zbGl0ZXJhdG9yIGluc3RhbnRpYXRlZCB3aXRoIGxvbmcgSUQgZG9lc24ndCBoYXZlIGxvbmcgSUQiKTsKKyAgICAgICAgaWYgKCF0Mi5nZXRJRCgpLmVxdWFscyhyZWFsbHlTaG9ydElEKSkKKyAgICAgICAgICAgIGVycmxuKCJUcmFuc2xpdGVyYXRvciBpbnN0YW50aWF0ZWQgd2l0aCBzaG9ydCBJRCBkb2Vzbid0IGhhdmUgc2hvcnQgSUQiKTsKKworICAgICAgICBpZiAoIXQxLnRvUnVsZXModHJ1ZSkuZXF1YWxzKHQyLnRvUnVsZXModHJ1ZSkpKQorICAgICAgICAgICAgZXJybG4oIkFsaWFzIHRyYW5zbGl0ZXJhdG9ycyBhcmVuJ3QgdGhlIHNhbWUiKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKHNob3J0SUQpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHNob3J0SUQpOworICAgICAgICAgICAgZXJybG4oIkluc3RhbnRpYXRpb24gd2l0aCBzaG9ydCBJRCBzdWNjZWVkZWQgYWZ0ZXIgc2hvcnQgSUQgd2FzIHVucmVnaXN0ZXJlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgLy8gdHJ5IHRoZSBzYW1lIHRoaW5nIGFnYWluLCBidXQgdGhpcyB0aW1lIHdpdGggc29tZXRoaW5nIG90aGVyIHRoYW4KKyAgICAgICAgLy8gYW4gaW5zdGFuY2Ugb2YgQ29tcG91bmRUcmFuc2xpdGVyYXRvcgorICAgICAgICBTdHJpbmcgcmVhbElEID0gIkxhdGluLUdyZWVrIjsKKyAgICAgICAgU3RyaW5nIGZha2VJRCA9ICJMYXRpbi1kbGdramRmbGtqZGwiOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckFsaWFzKGZha2VJRCwgcmVhbElEKTsKKworICAgICAgICB0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHJlYWxJRCk7CisgICAgICAgIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoZmFrZUlEKTsKKworICAgICAgICBpZiAoIXQxLnRvUnVsZXModHJ1ZSkuZXF1YWxzKHQyLnRvUnVsZXModHJ1ZSkpKQorICAgICAgICAgICAgZXJybG4oIkFsaWFzIHRyYW5zbGl0ZXJhdG9ycyBhcmVuJ3QgdGhlIHNhbWUiKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKGZha2VJRCk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVGhlc2UgdGVzdHMgYXJlIG5vdCBtaXJyb3JlZCAoeWV0KSBpbiBpY3U0YyBhdAorICAgIC8vIHNvdXJjZS90ZXN0L2ludGx0ZXN0L3RyYW5zdHN0LmNwcAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogSW1wcm92ZSBjb2RlIGNvdmVyYWdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgLy8gTnVsbFRyYW5zbGl0ZXJhdG9yCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTnVsbCIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBleHBlY3QodCwgImEiLCAiYSIpOworCisgICAgICAgIC8vIFNvdXJjZSwgdGFyZ2V0IHNldAorICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUdyZWVrIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIHQuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbQS1aXSIpKTsKKyAgICAgICAgbG9nbG4oInNvdXJjZSA9ICIgKyB0LmdldFNvdXJjZVNldCgpKTsKKyAgICAgICAgbG9nbG4oInRhcmdldCA9ICIgKyB0LmdldFRhcmdldFNldCgpKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ4IiwgIiguKSA+ICZBbnktSGV4KCQxKTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4oInNvdXJjZSA9ICIgKyB0LmdldFNvdXJjZVNldCgpKTsKKyAgICAgICAgbG9nbG4oInRhcmdldCA9ICIgKyB0LmdldFRhcmdldFNldCgpKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEFueSgpIHsKKyAgICAgICAgVW5pY29kZVNldCBhbHBoYWJldGljID0gKFVuaWNvZGVTZXQpIG5ldyBVbmljb2RlU2V0KCJbOmFscGhhYmV0aWM6XSIpLmZyZWV6ZSgpOworICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdFN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVU2NyaXB0LkNPREVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgVW5pY29kZVNldCBzYW1wbGUgPSBuZXcgVW5pY29kZVNldCgpLmFwcGx5UHJvcGVydHlBbGlhcygic2NyaXB0IiwgVVNjcmlwdC5nZXRTaG9ydE5hbWUoaSkpLnJldGFpbkFsbChhbHBoYWJldGljKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDU7CisgICAgICAgICAgICBmb3IgKFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2FtcGxlKTsgaXQubmV4dCgpOykgeworICAgICAgICAgICAgICAgIHRlc3RTdHJpbmcuYXBwZW5kKGl0LmdldFN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoLS1jb3VudCA8IDApIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJTYW1wbGUgc2V0IGZvciBBbnktTGF0aW46ICIgKyB0ZXN0U3RyaW5nKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgYW55TGF0aW4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LUxhdG4iKTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGFueUxhdGluLnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgbG9nbG4oIlNhbXBsZSByZXN1bHQgZm9yIEFueS1MYXRpbjogIiArIHJlc3VsdCk7CisgICAgfQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHZvaWQgZXhwZWN0KFN0cmluZyBydWxlcywKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwZWN0ZWRSZXN1bHQsIHBvcyk7CisgICAgfQorCisgICAgdm9pZCBleHBlY3QoU3RyaW5nIHJ1bGVzLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgZXhwZWN0KHJ1bGVzLCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0LCBudWxsKTsKKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ZXJzZVRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgaWYgKHJldmVyc2VUcmFuc2xpdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBlY3QocmV2ZXJzZVRyYW5zbGl0ZXJhdG9yLCBleHBlY3RlZFJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBleHBlY3QodCwgc291cmNlLCBleHBlY3RlZFJlc3VsdCwgKFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKSBudWxsKTsKKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIGlmIChwb3MgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHQudHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKCFleHBlY3RBdXgodC5nZXRJRCgpICsgIjpTdHJpbmciLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKSByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG51bGw7CisgICAgICAgIGlmIChwb3MgPT0gbnVsbCkgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgc291cmNlLmxlbmd0aCgpLCAwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24ocG9zLmNvbnRleHRTdGFydCwgcG9zLmNvbnRleHRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zdGFydCwgcG9zLmxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc291cmNlKTsKKworICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIC8vIERvIGl0IGFsbCBhdCBvbmNlIC0tIGJlbG93IHdlIGRvIGl0IGluY3JlbWVudGFsbHkKKworICAgICAgICBpZiAoaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlVORklOSVNIRUQiLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgInN0YXJ0OiAiICsgaW5kZXguc3RhcnQgKyAiLCBsaW1pdDogIiArIGluZGV4LmxpbWl0LCBmYWxzZSwgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUiLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKSByZXR1cm47CisKKworICAgICAgICBpZiAocG9zID09IG51bGwpIHsKKyAgICAgICAgICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbihwb3MuY29udGV4dFN0YXJ0LCBwb3MuY29udGV4dExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnN0YXJ0LCBwb3MubGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBpbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24gLS0gdGhpcyByZXN1bHQKKyAgICAgICAgLy8gbXVzdCBiZSB0aGUgc2FtZSBhZnRlciB3ZSBmaW5hbGl6ZSAoc2VlIGJlbG93KS4KKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKHNvdXJjZSk7CisgICAgICAgIHJzb3VyY2UucmVwbGFjZSgwLCByc291cmNlLmxlbmd0aCgpLCAiIik7CisgICAgICAgIGlmIChwb3MgIT0gbnVsbCkgeworICAgICAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIDAsIHNvdXJjZSk7CisgICAgICAgICAgICB2LmFkZChVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChyc291cmNlLCBpbmRleCkpOworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgICAgIHYuYWRkKFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKGkgPT0gMCA/ICIiIDogIiArICIgKyBzb3VyY2UuY2hhckF0KGkpICsgIiIpOworICAgICAgICAgICAgICAgIC8vbG9nLmFwcGVuZChzb3VyY2UuY2hhckF0KGkpKS5hcHBlbmQoIiAtPiAiKSk7CisgICAgICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4LCBzb3VyY2UuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSArIHNvdXJjZS5zdWJzdHJpbmcoaSsxKSk7CisgICAgICAgICAgICAgICAgdi5hZGQoVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQocnNvdXJjZSwgaW5kZXgpICsKKyAgICAgICAgICAgICAgICAgICAgICAoKGk8c291cmNlLmxlbmd0aCgpLTEpPygiICsgJyIgKyBzb3VyY2UuY2hhckF0KGkrMSkgKyAiJyAtPiIpOiIgPT4iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBcyBhIGZpbmFsIHN0ZXAgaW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCB3ZSBtdXN0IGNhbGwKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZSB0byBmaW5pc2ggb2ZmIGFueSBwZW5kaW5nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0CisgICAgICAgIC8vIHdlcmUgd2FpdGluZyBmb3IgbW9yZSBpbnB1dC4KKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgaW5kZXgpOworICAgICAgICByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIC8vbG9nLmFwcGVuZCgiID0+ICIpLmFwcGVuZChyc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICB2LmFkZChyZXN1bHQpOworCisgICAgICAgIFN0cmluZ1tdIHJlc3VsdHMgPSBuZXcgU3RyaW5nW3Yuc2l6ZSgpXTsKKyAgICAgICAgdi5jb3B5SW50byhyZXN1bHRzKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6SW5jcmVtZW50YWwiLCByZXN1bHRzLAorICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0LCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGV4cGVjdEF1eCh0YWcsIG5ldyBTdHJpbmdbXSB7c291cmNlLCByZXN1bHR9LAorICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0LCBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZSwgcmVzdWx0fSwKKyAgICAgICAgICAgICAgICAgIHBhc3MsCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZX0sCisgICAgICAgICAgICAgICAgICBwYXNzLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZ1tdIHJlc3VsdHMsIGJvb2xlYW4gcGFzcywKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgbXNnKChwYXNzPyIoIjoiRkFJTDogKCIpK3RhZysiKSIsIHBhc3MgPyBMT0cgOiBFUlIsIHRydWUsIHRydWUpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxhYmVsOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInNvdXJjZTogICAiOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IHJlc3VsdHMubGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInJlc3VsdDogICAiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVmVyYm9zZSgpICYmIHBhc3MpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGxhYmVsID0gImludGVybSIgKyBpICsgIjogICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2coIiAgICAiICsgbGFiZWwgKyByZXN1bHRzW2ldLCBwYXNzID8gTE9HIDogRVJSLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBhc3MpIHsKKyAgICAgICAgICAgIG1zZyggICIgICAgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFJlc3VsdCwgRVJSLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcGFzczsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZVNldFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OWE3NDM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEKQEAgLTAsMCArMSwxOTA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRW51bXMuRUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUHJldHR5UHJpbnRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Tb3J0ZWRTZXRSZWxhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIFVuaWNvZGVTZXQKKyAqLworcHVibGljIGNsYXNzIFVuaWNvZGVTZXRUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBOT1QgPSAiJSUlJSI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFVuaWNvZGVTZXRUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdG9QYXR0ZXJuKCkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRvUGF0dGVybigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAvLyBUZXN0IHRoYXQgdG9QYXR0ZXJuKCkgcm91bmQgdHJpcHMgd2l0aCBzeW50YXggY2hhcmFjdGVycworICAgICAgICAvLyBhbmQgd2hpdGVzcGFjZS4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBPVEhFUl9UT1BBVFRFUk5fVEVTVFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoZWNrUGF0KE9USEVSX1RPUEFUVEVSTl9URVNUU1tpXSwgbmV3IFVuaWNvZGVTZXQoT1RIRVJfVE9QQVRURVJOX1RFU1RTW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaWYgKChpIDw9IDB4RkYgJiYgIVVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpIHx8IFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdmFyaW91cyBjb21iaW5hdGlvbnMgdG8gbWFrZSBzdXJlIHRoZXkgYWxsIHdvcmsuCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCAmJiAhdG9QYXR0ZXJuQXV4KGksIGkpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvUGF0dGVybkF1eCgwLCBpKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF0b1BhdHRlcm5BdXgoaSwgMHhGRkZGKSkgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisKKyAgICAgICAgLy8gVGVzdCBwYXR0ZXJuIGJlaGF2aW9yIG9mIG11bHRpY2hhcmFjdGVyIHN0cmluZ3MuCisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KCJbYS16IHthYX0ge2FifV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e2FhfXthYn1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ImFhIiwgImFiIiwgTk9ULCAiYWMifSk7CisgICAgICAgIHMuYWRkKCJhYyIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7YWF9e2FifXthY31dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ImFhIiwgImFiIiwgImFjIiwgTk9ULCAieHkifSk7CisKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthLXoge1xce2x9IHtyXFx9fV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e3JcXH19e1xce2x9XSIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyJ7bCIsICJyfSIsIE5PVCwgInh5In0pOworICAgICAgICBzLmFkZCgiW10iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e1xcW1xcXX17clxcfX17XFx7bH1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IntsIiwgInJ9IiwgIltdIiwgTk9ULCAieHkifSk7CisKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthLXoge1x1NEUwMVx1NEUwMn17XFxuXFxyfV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e1xcdTAwMEFcXHUwMDBEfXtcXHU0RTAxXFx1NEUwMn1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7Ilx1NEUwMVx1NEUwMiIsICJcblxyIn0pOworCisgICAgICAgIHMuY2xlYXIoKTsKKyAgICAgICAgcy5hZGQoImFiYyIpOworICAgICAgICBzLmFkZCgiYWJjIik7CisgICAgICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW3thYmN9XSIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyJhYmMiLCBOT1QsICJhYiJ9KTsKKworICAgICAgICAvLyBKQiMzNDAwOiBGb3IgMiBjaGFyYWN0ZXIgcmFuZ2VzIHByZWZlciBbYWJdIHRvIFthLWJdCisgICAgICAgIHMuY2xlYXIoKTsgCisgICAgICAgIHMuYWRkKCdhJywgJ2InKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYWJdIiwgbnVsbCk7CisgICAgICAgIAorICAgICAgICAvLyBDb3ZlciBhcHBseVBhdHRlcm4sIGFwcGx5UHJvcGVydHlBbGlhcworICAgICAgICBzLmNsZWFyKCk7CisgICAgICAgIHMuYXBwbHlQYXR0ZXJuKCJbYWIgXSIsIHRydWUpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthYl0iLCBuZXcgU3RyaW5nW10geyJhIiwgTk9ULCAiYWIifSk7CisgICAgICAgIHMuY2xlYXIoKTsKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthYiBdIiwgZmFsc2UpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIltcXFx1MDAyMGFiXSIsIG5ldyBTdHJpbmdbXSB7ImEiLCAiXHUwMDIwIiwgTk9ULCAiYWIifSk7CisgICAgICAgIAorICAgICAgICBzLmNsZWFyKCk7CisgICAgICAgIHMuYXBwbHlQcm9wZXJ0eUFsaWFzKCJudiIsICIwLjUiKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbXFx1MDBCRFxcdTBGMkFcXHUyQ0ZEXFxVMDAwMTAxNDFcXFUwMDAxMDE3NVxcVTAwMDEwMTc2XSIsIG51bGwpOworICAgICAgICAvLyBVbmljb2RlIDQuMSBhZGRzIFx1MkNGRFxVMDAwMTAxNDFcVTAwMDEwMTc1XFUwMDAxMDE3NiB3aXRoIG51bWVyaWMgdmFsdWUgMS8yCisKKyAgICAgICAgcy5jbGVhcigpOworICAgICAgICBzLmFwcGx5UHJvcGVydHlBbGlhcygiZ2MiLCAiTHUiKTsKKyAgICAgICAgLy8gVE9ETyBleHBlY3RUb1BhdHRlcm4ocywgd2hhdD8pCisgICAgfQorCisgICAgc3RhdGljIFN0cmluZ1tdIE9USEVSX1RPUEFUVEVSTl9URVNUUyA9IHsKKyAgICAgICAgICAgICAgICAiW1s6bGF0aW46XSZbOmdyZWVrOl1dIiwgCisgICAgICAgICAgICAgICAgIltbOmxhdGluOl0tWzpncmVlazpdXSIsCisgICAgICAgICAgICAgICAgIls6bm9uc3BhY2luZyBtYXJrOl0iCisgICAgfTsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiB0b1BhdHRlcm5BdXgoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIC8vIHVzZSBJbnRlZ2VyLnRvU3RyaW5nIGJlY2F1c2UgVXRpbGl0eS5oZXggZG9lc24ndCBoYW5kbGUgaW50cworICAgICAgICBTdHJpbmcgc291cmNlID0gIjB4IiArIEludGVnZXIudG9TdHJpbmcoc3RhcnQsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHNvdXJjZSArPSAiLi4weCIgKyBJbnRlZ2VyLnRvU3RyaW5nKGVuZCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgVW5pY29kZVNldCB0ZXN0U2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgdGVzdFNldC5hZGQoc3RhcnQsIGVuZCk7CisgICAgICAgIHJldHVybiBjaGVja1BhdChzb3VyY2UsIHRlc3RTZXQpOworICAgIH0KKyAgICAKKyAgICBib29sZWFuIGNoZWNrUGF0IChTdHJpbmcgc291cmNlLCBVbmljb2RlU2V0IHRlc3RTZXQpIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gV2hhdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSBvZiBpcyB0aGF0IGEgcGF0dGVybiBnZW5lcmF0ZWQKKyAgICAgICAgICAgIC8vIGJ5IHRvUGF0dGVybigpLCB3aXRoIG9yIHdpdGhvdXQgZXNjYXBlZCB1bnByaW50YWJsZXMsIGNhbgorICAgICAgICAgICAgLy8gYmUgcGFzc2VkIGJhY2sgaW50byB0aGUgVW5pY29kZVNldCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgICAgIFN0cmluZyBwYXQwID0gdGVzdFNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICAgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGVzY2FwZWQpIiwgdGVzdFNldCwgcGF0MCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TdHJpbmcgcGF0MSA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDApOworICAgICAgICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSB0ZXN0U2V0LnRvUGF0dGVybihmYWxzZSk7CisgICAgICAgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSwgdGVzdFNldCwgcGF0MikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TdHJpbmcgcGF0MyA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDIpOworICAgICAgICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9sb2dsbihzb3VyY2UgKyAiID0+ICIgKyBwYXQwICsgIiwgIiArIHBhdDEgKyAiLCAiICsgcGF0MiArICIsICIgKyBwYXQzKTsKKyAgICAgICAgICAgIGxvZ2xuKHNvdXJjZSArICIgPT4gIiArIHBhdDAgKyAiLCAiICsgcGF0Mik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVhDRVBUSU9OIGluIHRvUGF0dGVybjogIiArIHNvdXJjZSArICIgPT4gIiArIHBhdCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gY2hlY2tQYXQgKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgdGVzdFNldCwgU3RyaW5nIHBhdCkgeworICAgICAgICBVbmljb2RlU2V0IHRlc3RTZXQyID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgaWYgKCF0ZXN0U2V0Mi5lcXVhbHModGVzdFNldCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvUGF0dGVybjogIiArIHNvdXJjZSArICI7ICIgKyBwYXQgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgdGVzdFNldDIudG9QYXR0ZXJuKGZhbHNlKSArICIsIGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgdGVzdFNldC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLy8gTk9URTogY29waWVkIHRoZSBmb2xsb3dpbmcgZnJvbSBVdGlsaXR5LiBUaGVyZSBvdWdodCB0byBiZSBhIHZlcnNpb24gaW4gdGhlcmUgd2l0aCBhIGZsYWcKKyAgICAvLyB0aGF0IGRvZXMgdGhlIEphdmEgc3R1ZmYKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCB1bmVzY2FwZUF0KFN0cmluZyBzLCBpbnRbXSBvZmZzZXQxNikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IG1pbkRpZyA9IDA7CisgICAgICAgIGludCBtYXhEaWcgPSAwOworICAgICAgICBpbnQgYml0c1BlckRpZ2l0ID0gNDsKKyAgICAgICAgaW50IGRpZzsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgLyogQ2hlY2sgdGhhdCBvZmZzZXQgaXMgaW4gcmFuZ2UgKi8KKyAgICAgICAgaW50IG9mZnNldCA9IG9mZnNldDE2WzBdOworICAgICAgICBpbnQgbGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ID49IGxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyogRmV0Y2ggZmlyc3QgVUNoYXIgYWZ0ZXIgJ1xcJyAqLworICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgIG9mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisKKyAgICAgICAgLyogQ29udmVydCBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgZXNjYXBlcyAqLworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8qCisgICAgICAgIGNhc2UgJ1UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICBtYXhEaWcgPSAyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICovCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBkaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIDgpOworICAgICAgICAgICAgaWYgKGRpZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSAzOworICAgICAgICAgICAgICAgIG4gPSAxOyAvKiBBbHJlYWR5IGhhdmUgZmlyc3Qgb2N0YWwgZGlnaXQgKi8KKyAgICAgICAgICAgICAgICBiaXRzUGVyRGlnaXQgPSAzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRpZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChtaW5EaWcgIT0gMCkgeworICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGxlbmd0aCAmJiBuIDwgbWF4RGlnKSB7CisgICAgICAgICAgICAgICAgLy8gVEVNUE9SQVJZCisgICAgICAgICAgICAgICAgLy8gVE9ETzogUmVzdG9yZSB0aGUgY2hhcjMyLWJhc2VkIGNvZGUgd2hlbiBVQ2hhcmFjdGVyLmRpZ2l0CisgICAgICAgICAgICAgICAgLy8gaXMgd29ya2luZyAoQnVnIDY2KS4KKworICAgICAgICAgICAgICAgIC8vYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBkaWcgPSBDaGFyYWN0ZXIuZGlnaXQoKGNoYXIpYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgaWYgKGRpZyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgPDwgYml0c1BlckRpZ2l0KSB8IGRpZzsKKyAgICAgICAgICAgICAgICAvL29mZnNldCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG4gPCBtaW5EaWcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb252ZXJ0IEMtc3R5bGUgZXNjYXBlcyBpbiB0YWJsZSAqLworICAgICAgICBmb3IgKGk9MDsgaTxVTkVTQ0FQRV9NQVAubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpZiAoYyA9PSBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4gVU5FU0NBUEVfTUFQW2krMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPCBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIElmIG5vIHNwZWNpYWwgZm9ybXMgYXJlIHJlY29nbml6ZWQsIHRoZW4gY29uc2lkZXIKKyAgICAgICAgICogdGhlIGJhY2tzbGFzaCB0byBnZW5lcmljYWxseSBlc2NhcGUgdGhlIG5leHQgY2hhcmFjdGVyLiAqLworICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyogVGhpcyBtYXAgbXVzdCBiZSBpbiBBU0NFTkRJTkcgT1JERVIgT0YgVEhFIEVTQ0FQRSBDT0RFICovCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgY2hhcltdIFVORVNDQVBFX01BUCA9IHsKKyAgICAgICAgLyoiICAgMHgyMiwgMHgyMiAqLworICAgICAgICAvKicgICAweDI3LCAweDI3ICovCisgICAgICAgIC8qPyAgIDB4M0YsIDB4M0YgKi8KKyAgICAgICAgLypcICAgMHg1QywgMHg1QyAqLworICAgICAgICAvKmEqLyAweDYxLCAweDA3LAorICAgICAgICAvKmIqLyAweDYyLCAweDA4LAorICAgICAgICAvKmYqLyAweDY2LCAweDBjLAorICAgICAgICAvKm4qLyAweDZFLCAweDBhLAorICAgICAgICAvKnIqLyAweDcyLCAweDBkLAorICAgICAgICAvKnQqLyAweDc0LCAweDA5LAorICAgICAgICAvKnYqLyAweDc2LCAweDBiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYWxsIGVzY2FwZXMgaW4gYSBnaXZlbiBzdHJpbmcgdXNpbmcgdW5lc2NhcGVBdCgpLgorICAgICAqIExlYXZlIGludmFsaWQgZXNjYXBlIHNlcXVlbmNlcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGVMZW5pZW50bHkoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICAgICAgICAgIGludCBlID0gdW5lc2NhcGVBdChzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGUpOworICAgICAgICAgICAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5zKCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW1thLW1dJltkLXpdJltrLXldXSIsICAia20iKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbW2Etel0tW20teV0tW2Qtcl1dIiwgICJhY3p6Iik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2FcXC16XSIsICAiLS1hYXp6Iik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiWy1hel0iLCAgIi0tYWF6eiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIlthei1dIiwgICItLWFhenoiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbW1thLXpdLVthZWlvdV1pXV0iLCAiYmRmbnB0dnoiKTsKKworICAgICAgICAvLyBUaHJvdyBpbiBhIHRlc3Qgb2YgY29tcGxlbWVudAorICAgICAgICBzZXQuY29tcGxlbWVudCgpOworICAgICAgICBTdHJpbmcgZXhwID0gJ1x1MDAwMCcgKyAiYWVlb291dSIgKyAoY2hhcikoJ3onKzEpICsgJ1x1RkZGRic7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgZXhwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2F0ZWdvcmllcygpIHsKKyAgICAgICAgaW50IGZhaWx1cmVzID0gMDsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiWzpMdTpdIik7CisgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KHNldCwgIkFCQyIsICJhYmMiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgZ2VuZXJhdGlvbiBvZiBMIGRvZXNuJ3QgcG9sbHV0ZSBjYWNoZWQgTHUgc2V0CisgICAgICAgIC8vIEZpcnN0IGdlbmVyYXRlIEwsIHRoZW4gTHUKKyAgICAgICAgLy8gbm90IHVzZWQgaW50IFRPUCA9IDB4MjAwOyAvLyBEb24ndCBuZWVkIHRvIGdvIG92ZXIgdGhlIHdob2xlIHJhbmdlOgorICAgICAgICBzZXQgPSBuZXcgVW5pY29kZVNldCgiWzpMOl0iKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDB4MjAwOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gbCA9IFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSk7CisgICAgICAgICAgICBpZiAobCAhPSBzZXQuY29udGFpbnMoKGNoYXIpaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTCBjb250YWlucyAiICsgKGNoYXIpaSArICIgPSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgc2V0LmNvbnRhaW5zKChjaGFyKWkpKTsKKyAgICAgICAgICAgICAgICBpZiAoKytmYWlsdXJlcyA9PSAxMCkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzZXQgPSBuZXcgVW5pY29kZVNldCgiWzpMdTpdIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwweDIwMDsgKytpKSB7CisgICAgICAgICAgICBib29sZWFuIGx1ID0gKFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSA9PSBFQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUik7CisgICAgICAgICAgICBpZiAobHUgIT0gc2V0LmNvbnRhaW5zKChjaGFyKWkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEx1IGNvbnRhaW5zICIgKyAoY2hhcilpICsgIiA9ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBzZXQuY29udGFpbnMoKGNoYXIpaSkpOworICAgICAgICAgICAgICAgIGlmICgrK2ZhaWx1cmVzID09IDIwKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBZGRSZW1vdmUoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgc2V0LmFkZCgnYScsICd6Jyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImF6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ20nLCAncCcpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhbHF6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ2UnLCAnZycpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhZGhscXoiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnZCcsICdpJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFjamxxeiIpOworICAgICAgICBzZXQucmVtb3ZlKCdjJywgJ3InKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWJzeiIpOworICAgICAgICBzZXQuYWRkKCdmJywgJ3EnKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWJmcXN6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ2EnLCAnZycpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJocXN6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ2EnLCAneicpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICIiKTsKKworICAgICAgICAvLyBUcnkgcmVtb3ZpbmcgYW4gZW50aXJlIHNldCBmcm9tIGFub3RoZXIgc2V0CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2MteF0iLCAiY3giKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQyID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQyLCAiW2Yta3ktemEtYmNbdnddXSIsICJhY2Zrdnd5eiIpOworICAgICAgICBzZXQucmVtb3ZlQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJkZWx1eHgiKTsKKworICAgICAgICAvLyBUcnkgYWRkaW5nIGFuIGVudGlyZSBzZXQgdG8gYW5vdGhlciBzZXQKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbamFja2llbWNsZWFuXSIsICJhYWNjZWVpbiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldDIsICJbaGl0b3NoaW5hbWVrYXRhamFtZXNhbmRlcnNvbl0iLCAiYWFkZWhrbW9ydCIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhYWNlaG9ydCIpOworCisgICAgICAgIC8vIFRlc3QgY29tbXV0YXRpdml0eQorICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltoaXRvc2hpbmFtZWthdGFqYW1lc2FuZGVyc29uXSIsICJhYWRlaGttb3J0Iik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0MiwgIltqYWNraWVtY2xlYW5dIiwgImFhY2NlZWluIik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFhY2Vob3J0Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIG1pbmltYWwgcmVwcmVzZW50YXRpb24gaXMgbWFpbnRhaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWluaW1hbFJlcCgpIHsKKyAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgdGhvcm91Z2hseSB0ZXN0ZWQgYnkgY2hlY2tDYW5vbmljYWxSZXAoKQorICAgICAgICAvLyBydW4gYWdhaW5zdCB0aGUgZXhoYXVzdGl2ZSBvcGVyYXRpb24gcmVzdWx0cy4gIFVzZSB0aGUgY29kZQorICAgICAgICAvLyBoZXJlIGZvciBkZWJ1Z2dpbmcgc3BlY2lmaWMgc3BvdCBwcm9ibGVtcy4KKyAgICAgICAKKyAgICAgICAgLy8gMSBvdmVybGFwIGFnYWluc3QgMgorICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCJbaC1rbS1xXSIpOworICAgICAgICBVbmljb2RlU2V0IHNldDIgPSBuZXcgVW5pY29kZVNldCgiW2ktb10iKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiaHEiKTsKKyAgICAgICAgLy8gcmlnaHQKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtbV0iKTsKKyAgICAgICAgc2V0Mi5hcHBseVBhdHRlcm4oIltlLW9dIik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFvIik7CisgICAgICAgIC8vIGxlZnQKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW2Utb10iKTsKKyAgICAgICAgc2V0Mi5hcHBseVBhdHRlcm4oIlthLW1dIik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFvIik7CisgICAgICAgIC8vIDEgb3ZlcmxhcCBhZ2FpbnN0IDMKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtZWctbW8td10iKTsKKyAgICAgICAgc2V0Mi5hcHBseVBhdHRlcm4oIltkLXFdIik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImF3Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAgICAgLy8gZGVmYXVsdCBjdAorICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGlmICghc2V0LmlzRW1wdHkoKSB8fCBzZXQuZ2V0UmFuZ2VDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzZXQgc2hvdWxkIGJlIGVtcHR5IGJ1dCBpc24ndDogIiArCisgICAgICAgICAgICAgICAgICBzZXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gY2xlYXIoKSwgaXNFbXB0eSgpCisgICAgICAgIHNldC5hZGQoJ2EnKTsKKyAgICAgICAgaWYgKHNldC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzZXQgc2hvdWxkbid0IGJlIGVtcHR5IGJ1dCBpczogIiArCisgICAgICAgICAgICAgICAgICBzZXQpOworICAgICAgICB9CisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBpZiAoIXNldC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzZXQgc2hvdWxkIGJlIGVtcHR5IGJ1dCBpc24ndDogIiArCisgICAgICAgICAgICAgICAgICBzZXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2l6ZSgpCisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMCwgYnV0IGlzICIgKyBzZXQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICI6ICIgKyBzZXQpOworICAgICAgICB9CisgICAgICAgIHNldC5hZGQoJ2EnKTsKKyAgICAgICAgaWYgKHNldC5zaXplKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNpemUgc2hvdWxkIGJlIDEsIGJ1dCBpcyAiICsgc2V0LnNpemUoKSArCisgICAgICAgICAgICAgICAgICAiOiAiICsgc2V0KTsKKyAgICAgICAgfQorICAgICAgICBzZXQuYWRkKCcxJywgJzknKTsKKyAgICAgICAgaWYgKHNldC5zaXplKCkgIT0gMTApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaXplIHNob3VsZCBiZSAxMCwgYnV0IGlzICIgKyBzZXQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICI6ICIgKyBzZXQpOworICAgICAgICB9CisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBzZXQuY29tcGxlbWVudCgpOworICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSAweDExMDAwMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNpemUgc2hvdWxkIGJlIDB4MTEwMDAwLCBidXQgaXMiICsgc2V0LnNpemUoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjb250YWlucyhmaXJzdCwgbGFzdCkKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4oIltBLVkgMS04IGItZCBsLXldIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaW50IGEgPSBzZXQuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBiID0gc2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgaWYgKCFzZXQuY29udGFpbnMoYSwgYikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2hvdWxkIGNvbnRhaW4gIiArIChjaGFyKWEgKyAnLScgKyAoY2hhciliICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBkb2Vzbid0OiAiICsgc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoKGNoYXIpKGEtMSksIGIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNob3VsZG4ndCBjb250YWluICIgKworICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShhLTEpICsgJy0nICsgKGNoYXIpYiArCisgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZG9lczogIiArIHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGEsIChjaGFyKShiKzEpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaG91bGRuJ3QgY29udGFpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAoY2hhcilhICsgJy0nICsgKGNoYXIpKGIrMSkgKworICAgICAgICAgICAgICAgICAgICAgICIgYnV0IGRvZXM6ICIgKyBzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUG9ydGVkIEludmVyc2lvbkxpc3QgdGVzdC4KKyAgICAgICAgVW5pY29kZVNldCBhID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpMywoY2hhcikxMCk7CisgICAgICAgIFVuaWNvZGVTZXQgYiA9IG5ldyBVbmljb2RlU2V0KChjaGFyKTcsKGNoYXIpMTUpOworICAgICAgICBVbmljb2RlU2V0IGMgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgIGxvZ2xuKCJhIFszLTEwXTogIiArIGEpOworICAgICAgICBsb2dsbigiYiBbNy0xNV06ICIgKyBiKTsKKyAgICAgICAgYy5zZXQoYSk7IGMuYWRkQWxsKGIpOworICAgICAgICBVbmljb2RlU2V0IGV4cCA9IG5ldyBVbmljb2RlU2V0KChjaGFyKTMsKGNoYXIpMTUpOworICAgICAgICBpZiAoYy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oImMuc2V0KGEpLmFkZChiKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGMuc2V0KGEpLmFkZChiKSA9ICIgKyBjICsgIiwgZXhwZWN0ICIgKyBleHApOworICAgICAgICB9CisgICAgICAgIGMuY29tcGxlbWVudCgpOworICAgICAgICBleHAuc2V0KChjaGFyKTAsIChjaGFyKTIpOworICAgICAgICBleHAuYWRkKChjaGFyKTE2LCBVbmljb2RlU2V0Lk1BWF9WQUxVRSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5jb21wbGVtZW50KCk6ICIgKyBjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMOiBjLmNvbXBsZW1lbnQoKSA9ICIgKyBjICsgIiwgZXhwZWN0ICIgKyBleHApKTsKKyAgICAgICAgfQorICAgICAgICBjLmNvbXBsZW1lbnQoKTsKKyAgICAgICAgZXhwLnNldCgoY2hhcikzLCAoY2hhcikxNSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5jb21wbGVtZW50KCk6ICIgKyBjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjLmNvbXBsZW1lbnQoKSA9ICIgKyBjICsgIiwgZXhwZWN0ICIgKyBleHApOworICAgICAgICB9CisgICAgICAgIGMuc2V0KGEpOyBjLmNvbXBsZW1lbnRBbGwoYik7CisgICAgICAgIGV4cC5zZXQoKGNoYXIpMywoY2hhcik2KTsKKyAgICAgICAgZXhwLmFkZCgoY2hhcikxMSwoY2hhcikgMTUpOworICAgICAgICBpZiAoYy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oImMuc2V0KGEpLmNvbXBsZW1lbnQoYik6ICIgKyBjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjLnNldChhKS5jb21wbGVtZW50KGIpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0KKworICAgICAgICBleHAuc2V0KGMpOworICAgICAgICBjID0gYml0c1RvU2V0KHNldFRvQml0cyhjKSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYml0c1RvU2V0KHNldFRvQml0cyhjKSk6ICIgKyBjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBiaXRzVG9TZXQoc2V0VG9CaXRzKGMpKSA9ICIgKyBjICsgIiwgZXhwZWN0ICIgKyBleHApOworICAgICAgICB9IAorCisgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdHMgZm9yIGNvdmVyYWdlIEpCIzIxMTgKKyAgICAgICAgLy9Vbmljb2RlU2V0Ojpjb21wbGVtZW50KGNsYXNzIFVuaWNvZGVTdHJpbmcgY29uc3QgJikKKyAgICAgICAgLy9Vbmljb2RlU2V0Ojpjb21wbGVtZW50QWxsKGNsYXNzIFVuaWNvZGVTdHJpbmcgY29uc3QgJikKKyAgICAgICAgLy9Vbmljb2RlU2V0Ojpjb250YWluc05vbmUoY2xhc3MgVW5pY29kZVNldCBjb25zdCAmKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OmNvbnRhaW5zTm9uZShsb25nLGxvbmcpCisgICAgICAgIC8vVW5pY29kZVNldDo6Y29udGFpbnNTb21lKGNsYXNzIFVuaWNvZGVTZXQgY29uc3QgJikKKyAgICAgICAgLy9Vbmljb2RlU2V0Ojpjb250YWluc1NvbWUobG9uZyxsb25nKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OnJlbW92ZUFsbChjbGFzcyBVbmljb2RlU3RyaW5nIGNvbnN0ICYpCisgICAgICAgIC8vVW5pY29kZVNldDo6cmV0YWluKGxvbmcpCisgICAgICAgIC8vVW5pY29kZVNldDo6cmV0YWluQWxsKGNsYXNzIFVuaWNvZGVTdHJpbmcgY29uc3QgJikKKyAgICAgICAgLy9Vbmljb2RlU2V0OjpzZXJpYWxpemUodW5zaWduZWQgc2hvcnQgKixsb25nLGVudW0gVUVycm9yQ29kZSAmKQorICAgICAgICAvL1VuaWNvZGVTZXRJdGVyYXRvcjo6Z2V0U3RyaW5nKHZvaWQpCisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBzZXQuY29tcGxlbWVudCgiYWIiKTsKKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW3thYn1dIik7CisgICAgICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiBjb21wbGVtZW50KFwiYWJcIikiKTsgcmV0dXJuOyB9CisKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGlzZXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgICAgIGlmICghaXNldC5uZXh0KCkgfHwgaXNldC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVTZXRJdGVyYXRvci5uZXh0L0lTX1NUUklORyIpOworICAgICAgICB9IGVsc2UgaWYgKCFpc2V0LnN0cmluZy5lcXVhbHMoImFiIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVbmljb2RlU2V0SXRlcmF0b3Iuc3RyaW5nIik7CisgICAgICAgIH0KKworICAgICAgICBzZXQuYWRkKChjaGFyKTB4NjEsIChjaGFyKTB4N0EpOworICAgICAgICBzZXQuY29tcGxlbWVudEFsbCgiYWxhbiIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbe2FifWIta21vLXpdIik7CisgICAgICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiBjb21wbGVtZW50QWxsKFwiYWxhblwiKSIpOyByZXR1cm47IH0KKworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbYS16XSIpOworICAgICAgICBpZiAoc2V0LmNvbnRhaW5zTm9uZShleHApKSB7IGVycmxuKCJGQUlMOiBjb250YWluc05vbmUoVW5pY29kZVNldCkiKTsgfQorICAgICAgICBpZiAoIXNldC5jb250YWluc1NvbWUoZXhwKSkgeyBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKFVuaWNvZGVTZXQpIik7IH0KKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW2Fsbl0iKTsKKyAgICAgICAgaWYgKCFzZXQuY29udGFpbnNOb25lKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShVbmljb2RlU2V0KSIpOyB9CisgICAgICAgIGlmIChzZXQuY29udGFpbnNTb21lKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbnRhaW5zU29tZShVbmljb2RlU2V0KSIpOyB9CisgICAgICAgIAorICAgICAgICBpZiAoc2V0LmNvbnRhaW5zTm9uZSgoY2hhcikweDYxLCAoY2hhcikweDdBKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShjaGFyLCBjaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghc2V0LmNvbnRhaW5zU29tZSgoY2hhcikweDYxLCAoY2hhcikweDdBKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnRhaW5zU29tZShjaGFyLCBjaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghc2V0LmNvbnRhaW5zTm9uZSgoY2hhcikweDQxLCAoY2hhcikweDVBKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShjaGFyLCBjaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXQuY29udGFpbnNTb21lKChjaGFyKTB4NDEsIChjaGFyKTB4NUEpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKGNoYXIsIGNoYXIpIik7CisgICAgICAgIH0KKworICAgICAgICBzZXQucmVtb3ZlQWxsKCJsaXUiKTsKKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW3thYn1iLWhqLWttby10di16XSIpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmVtb3ZlQWxsKFwibGl1XCIpIik7IHJldHVybjsgfQorCisgICAgICAgIHNldC5yZXRhaW5BbGwoInN0YXIiKTsKKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW3JzdF0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJldGFpbkFsbChcInN0YXJcIikiKTsgcmV0dXJuOyB9CisKKyAgICAgICAgc2V0LnJldGFpbigoY2hhcikweDczKTsKKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW3NdIik7CisgICAgICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiByZXRhaW4oJ3MnKSIpOyByZXR1cm47IH0KKworICAgICAgICAvLyBJQ1UgMi42IGNvdmVyYWdlIHRlc3RzCisgICAgICAgIC8vIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbihTdHJpbmcgcyk7CisgICAgICAgIC8vIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZShpbnQgYyk7CisgICAgICAgIC8vIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZShTdHJpbmcgcyk7CisgICAgICAgIC8vIHB1YmxpYyBpbnQgaGFzaENvZGUoKTsKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtenthYn17Y2R9XSIpOworICAgICAgICBzZXQucmV0YWluKCJjZCIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbe2NkfV0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJldGFpbihcImNkXCIpIik7IHJldHVybjsgfQorICAgICAgICAKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW2EtenthYn17Y2R9XSIpOworICAgICAgICBzZXQucmVtb3ZlKChjaGFyKTB4NjMpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbYWJkLXp7YWJ9e2NkfV0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJlbW92ZSgnYycpIik7IHJldHVybjsgfQorICAgICAgICAKKyAgICAgICAgc2V0LnJlbW92ZSgiY2QiKTsKKyAgICAgICAgZXhwLmFwcGx5UGF0dGVybigiW2FiZC16e2FifV0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJlbW92ZShcImNkXCIpIik7IHJldHVybjsgfQorCisgICAgICAgIGlmIChzZXQuaGFzaENvZGUoKSAhPSBleHAuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGhhc2hDb2RlKCkgdW5lcXVhbCIpOworICAgICAgICB9CisgICAgICAgIGV4cC5jbGVhcigpOworICAgICAgICBpZiAoc2V0Lmhhc2hDb2RlKCkgPT0gZXhwLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBoYXNoQ29kZSgpIGVxdWFsIik7CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvL0NvdmVyIGFkZEFsbChDb2xsZWN0aW9uKSBhbmQgYWRkQWxsVG8oQ29sbGVjdGlvbikgIAorICAgICAgICAgICAgLy8gIFNlZW1zIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4gYWRkQWxsKENvbGxlY3Rpb24pIG9wZXJhdGlvbgorICAgICAgICAgICAgLy8gICAgUmFtIGFsc28gYWRkIGEgc2ltaWxhciB0ZXN0IHRvIFV0aWxpdHlUZXN0LmphdmEKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGFkZEFsbChDb2xsZWN0aW9uKSAuLi4gIik7ICAKKyAgICAgICAgICAgIFN0cmluZ1tdIGFycmF5ID0geyJhIiwgImIiLCAiYyIsICJkZSJ9OworICAgICAgICAgICAgTGlzdCBsaXN0ID0gQXJyYXlzLmFzTGlzdChhcnJheSk7CisgICAgICAgICAgICBTZXQgYXNldCA9IG5ldyBIYXNoU2V0KGxpc3QpOworICAgICAgICAgICAgbG9nbG4oIiAqKiogVGhlIHNvdXJjZSBzZXQncyBzaXplIGlzOiAiICsgYXNldC5zaXplKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGwoYXNldCk7CisgICAgICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSBhc2V0LnNpemUoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBBZnRlciBhZGRBbGwsIHRoZSBVbmljb2RlU2V0IHNpemUgZXhwZWN0ZWQgIiArIGFzZXQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIHNldC5zaXplKCkgKyAiIHNlZW4gaW5zdGVhZCEiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBBZnRlciBhZGRBbGwsIHRoZSBVbmljb2RlU2V0IHNpemUgZ290ICIgKyBzZXQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgTGlzdCBsaXN0MiA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGxUbyhsaXN0Mik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vdmVyaWZ5IHRoZSByZXN1bHQKKyAgICAgICAgICAgIGxvZygiICoqKiBUaGUgZWxlbWVudHMgYXJlOiAiKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgICAgIGxvZ2xuKHMpOworICAgICAgICAgICAgSXRlcmF0b3IgbXlpdGVyID0gbGlzdDIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlKG15aXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBsb2cobXlpdGVyLm5leHQoKS50b1N0cmluZygpICsgIiAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiIik7ICAvLyBhIG5ldyBsaW5lCisgICAgICAgIH0KKworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyaW5ncygpIHsKKy8vICAgICAgICBPYmplY3RbXVtdIHRlc3RMaXN0ID0geworLy8gICAgICAgICAgICB7SV9FUVVBTFMsICBVbmljb2RlU2V0LmZyb21BbGwoImFiYyIpLAorLy8gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW2EtY10iKX0sCisvLyAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAgICB7SV9FUVVBTFMsICBVbmljb2RlU2V0LmZyb20oImNoIikuYWRkKCdhJywneicpLmFkZCgibGwiKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIlt7bGx9e2NofWEtel0iKX0sCisvLyAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAgICB7SV9FUVVBTFMsICBVbmljb2RlU2V0LmZyb20oImFifWMiKSwgIAorLy8gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3thYlxcfWN9XSIpfSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgIHtJX0VRVUFMUywgIG5ldyBVbmljb2RlU2V0KCdhJywneicpLmFkZCgnQScsICdaJykucmV0YWluKCdNJywnbScpLmNvbXBsZW1lbnQoJ1gnKSwgCisvLyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbW2EtekEtWl0mW00tbV0tW1hdXSIpfSwKKy8vICAgICAgICB9OworLy8gICAgICAgIAorLy8gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdExpc3QubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgZXhwZWN0UmVsYXRpb24odGVzdExpc3RbaV1bMF0sIHRlc3RMaXN0W2ldWzFdLCB0ZXN0TGlzdFtpXVsyXSwgIigiICsgaSArICIpIik7CisvLyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgVW5pY29kZVNldFtdW10gdGVzdExpc3QgPSB7CisgICAgICAgICAgICB7VW5pY29kZVNldC5mcm9tQWxsKCJhYmMiKSwKKyAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW2EtY10iKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHtVbmljb2RlU2V0LmZyb20oImNoIikuYWRkKCdhJywneicpLmFkZCgibGwiKSwKKyAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3tsbH17Y2h9YS16XSIpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAge1VuaWNvZGVTZXQuZnJvbSgiYWJ9YyIpLCAgCisgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIlt7YWJcXH1jfV0iKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHtuZXcgVW5pY29kZVNldCgnYScsJ3onKS5hZGQoJ0EnLCAnWicpLnJldGFpbignTScsJ20nKS5jb21wbGVtZW50KCdYJyksIAorICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbW2EtekEtWl0mW00tbV0tW1hdXSIpfSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdExpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghdGVzdExpc3RbaV1bMF0uZXF1YWxzKHRlc3RMaXN0W2ldWzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBzZXRzIHVuZXF1YWw7IHNlZSBzb3VyY2UgY29kZSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIEludGVnZXIgCisgICAgICAgIElfQU5ZID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uQU5ZKSwKKyAgICAgICAgSV9DT05UQUlOUyA9IG5ldyBJbnRlZ2VyKFNvcnRlZFNldFJlbGF0aW9uLkNPTlRBSU5TKSwKKyAgICAgICAgSV9ESVNKT0lOVCA9IG5ldyBJbnRlZ2VyKFNvcnRlZFNldFJlbGF0aW9uLkRJU0pPSU5UKSwKKyAgICAgICAgSV9OT19CID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uTk9fQiksCisgICAgICAgIElfSVNDT05UQUlORUQgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5JU0NPTlRBSU5FRCksCisgICAgICAgIElfRVFVQUxTID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uRVFVQUxTKSwKKyAgICAgICAgSV9OT19BID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uTk9fQSksCisgICAgICAgIElfTk9ORSA9IG5ldyBJbnRlZ2VyKFNvcnRlZFNldFJlbGF0aW9uLk5PTkUpOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRSZWxhdGlvbigpIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGNob2ljZXMgPSB7ImEiLCAiYiIsICJjZCIsICJlZiJ9OworICAgICAgICBpbnQgbGltaXQgPSAxIDw8IGNob2ljZXMubGVuZ3RoOworICAgICAgICAKKyAgICAgICAgU29ydGVkU2V0IGlzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBTb3J0ZWRTZXQganNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgIHBpY2soaSwgY2hvaWNlcywgaXNldCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxpbWl0OyArK2opIHsKKyAgICAgICAgICAgICAgICBwaWNrKGosIGNob2ljZXMsIGpzZXQpOworICAgICAgICAgICAgICAgIGNoZWNrU2V0UmVsYXRpb24oaXNldCwganNldCwgIigiICsgaSArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFNldFNwZWVkKCkgeworICAgICAgICAvLyBza2lwIHVubGVzcyB2ZXJib3NlCisgICAgICAgIGlmICghaXNWZXJib3NlKCkpIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFNldFNwZWVkMigxMDApOworICAgICAgICBTZXRTcGVlZDIoMTAwMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFNldFNwZWVkMihpbnQgc2l6ZSkgeworICAgICAgICAKKyAgICAgICAgU29ydGVkU2V0IGlzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBTb3J0ZWRTZXQganNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUqMjsgaSArPSAyKSB7IC8vIG9ubHkgZXZlbiB2YWx1ZXMKKyAgICAgICAgICAgIGlzZXQuYWRkKG5ldyBJbnRlZ2VyKGkpKTsKKyAgICAgICAgICAgIGpzZXQuYWRkKG5ldyBJbnRlZ2VyKGkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGl0ZXJhdGlvbnMgPSAxMDAwMDAwIC8gc2l6ZTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJUaW1pbmcgY29tcGFyaXNvbiBvZiBKYXZhIHZzIFV0aWxpdHkiKTsKKyAgICAgICAgbG9nbG4oIkZvciBhYm91dCAiICsgc2l6ZSArICIgb2JqZWN0cyB0aGF0IGFyZSBhbG1vc3QgYWxsIHRoZSBzYW1lLiIpOworICAgICAgICAKKyAgICAgICAgQ2hlY2tTcGVlZChpc2V0LCBqc2V0LCAid2hlbiBhID0gYiIsIGl0ZXJhdGlvbnMpOworICAgICAgICAKKyAgICAgICAgaXNldC5hZGQobmV3IEludGVnZXIoc2l6ZSArIDEpKTsgICAgLy8gYWRkIG9kZCB2YWx1ZSBpbiBtaWRkbGUKKyAgICAgICAgCisgICAgICAgIENoZWNrU3BlZWQoaXNldCwganNldCwgIndoZW4gYSBjb250YWlucyBiIiwgaXRlcmF0aW9ucyk7ICAgICAgICAKKyAgICAgICAgQ2hlY2tTcGVlZChqc2V0LCBpc2V0LCAid2hlbiBiIGNvbnRhaW5zIGEiLCBpdGVyYXRpb25zKTsKKyAgICAgICAgCisgICAgICAgIGpzZXQuYWRkKG5ldyBJbnRlZ2VyKHNpemUgLSAxKSk7ICAgIC8vIGFkZCBkaWZmZXJlbnQgb2RkIHZhbHVlIGluIG1pZGRsZQorICAgICAgICAKKyAgICAgICAgQ2hlY2tTcGVlZChqc2V0LCBpc2V0LCAid2hlbiBhLCBiIGFyZSBkaXNqb2ludCIsIGl0ZXJhdGlvbnMpOyAgICAgICAgCisgICAgfQorICAgIAorICAgIHZvaWQgQ2hlY2tTcGVlZChTb3J0ZWRTZXQgaXNldCwgU29ydGVkU2V0IGpzZXQsIFN0cmluZyBtZXNzYWdlLCBpbnQgaXRlcmF0aW9ucykgeworICAgICAgICBDaGVja1NwZWVkMihpc2V0LCBqc2V0LCBtZXNzYWdlLCBpdGVyYXRpb25zKTsKKyAgICAgICAgQ2hlY2tTcGVlZDMoaXNldCwganNldCwgbWVzc2FnZSwgaXRlcmF0aW9ucyk7CisgICAgfQorICAgIAorICAgIHZvaWQgQ2hlY2tTcGVlZDIoU29ydGVkU2V0IGlzZXQsIFNvcnRlZFNldCBqc2V0LCBTdHJpbmcgbWVzc2FnZSwgaW50IGl0ZXJhdGlvbnMpIHsKKyAgICAgICAgYm9vbGVhbiB4OworICAgICAgICBib29sZWFuIHk7CisgICAgICAgIAorICAgICAgICAvLyBtYWtlIHN1cmUgY29kZSBpcyBsb2FkZWQ6CisgICAgICAgIHggPSBpc2V0LmNvbnRhaW5zQWxsKGpzZXQpOworICAgICAgICB5ID0gU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oaXNldCwgU29ydGVkU2V0UmVsYXRpb24uQ09OVEFJTlMsIGpzZXQpOworICAgICAgICBpZiAoeCAhPSB5KSBlcnJsbigiRkFJTCBjb250YWlucyBjb21wYXJpc29uIik7CisgICAgICAgIAorICAgICAgICBkb3VibGUgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgICAgIHggfD0gaXNldC5jb250YWluc0FsbChqc2V0KTsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbWlkZGxlID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICB5IHw9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkNPTlRBSU5TLCBqc2V0KTsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIAorICAgICAgICBkb3VibGUganRpbWUgPSAobWlkZGxlIC0gc3RhcnQpL2l0ZXJhdGlvbnM7CisgICAgICAgIGRvdWJsZSB1dGltZSA9IChlbmQgLSBtaWRkbGUpL2l0ZXJhdGlvbnM7CisgICAgICAgIAorICAgICAgICBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgY29udGFpbnM6ICIgKyBtZXNzYWdlICsgIjogSmF2YTogIiArIGp0aW1lCisgICAgICAgICAgICArICIsIFV0aWxpdHk6ICIgKyB1dGltZSArICIsIHU6ajogIiArIG5mLmZvcm1hdCh1dGltZS9qdGltZSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIENoZWNrU3BlZWQzKFNvcnRlZFNldCBpc2V0LCBTb3J0ZWRTZXQganNldCwgU3RyaW5nIG1lc3NhZ2UsIGludCBpdGVyYXRpb25zKSB7CisgICAgICAgIGJvb2xlYW4geDsKKyAgICAgICAgYm9vbGVhbiB5OworICAgICAgICAKKyAgICAgICAgLy8gbWFrZSBzdXJlIGNvZGUgaXMgbG9hZGVkOgorICAgICAgICB4ID0gaXNldC5lcXVhbHMoanNldCk7CisgICAgICAgIHkgPSBTb3J0ZWRTZXRSZWxhdGlvbi5oYXNSZWxhdGlvbihpc2V0LCBTb3J0ZWRTZXRSZWxhdGlvbi5FUVVBTFMsIGpzZXQpOworICAgICAgICBpZiAoeCAhPSB5KSBlcnJsbigiRkFJTCBlcXVhbGl0eSBjb21wYXJpc29uIik7CisKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgeCB8PSBpc2V0LmVxdWFscyhqc2V0KTsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbWlkZGxlID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICB5IHw9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkVRVUFMUywganNldCk7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGp0aW1lID0gKG1pZGRsZSAtIHN0YXJ0KS9pdGVyYXRpb25zOworICAgICAgICBkb3VibGUgdXRpbWUgPSAoZW5kIC0gbWlkZGxlKS9pdGVyYXRpb25zOworICAgICAgICAKKyAgICAgICAgamF2YS50ZXh0Lk51bWJlckZvcm1hdCBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IGVxdWFsczogICAiICsgbWVzc2FnZSArICI6IEphdmE6ICIgKyBqdGltZQorICAgICAgICAgICAgKyAiLCBVdGlsaXR5OiAiICsgdXRpbWUgKyAiLCB1Omo6ICIgKyBuZi5mb3JtYXQodXRpbWUvanRpbWUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwaWNrKGludCBiaXRzLCBPYmplY3RbXSBleGFtcGxlcywgU29ydGVkU2V0IG91dHB1dCkgeworICAgICAgICBvdXRwdXQuY2xlYXIoKTsKKyAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAzMjsgKytrKSB7CisgICAgICAgICAgICBpZiAoKCgxPDxrKSAmIGJpdHMpICE9IDApIG91dHB1dC5hZGQoZXhhbXBsZXNba10pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gUkVMQVRJT05fTkFNRSA9IHsKKyAgICAgICAgImJvdGgtYXJlLW51bGwiLAorICAgICAgICAiYS1pcy1udWxsIiwgCisgICAgICAgICJlcXVhbHMiLCAKKyAgICAgICAgImlzLWNvbnRhaW5lZC1pbiIsCisgICAgICAgICJiLWlzLW51bGwiLAorICAgICAgICAiaXMtZGlzam9pbnRfd2l0aCIsCisgICAgICAgICJjb250YWlucyIsIAorICAgICAgICAiYW55IiwgfTsKKyAgICAgICAgCisgICAgYm9vbGVhbiBkdW1iSGFzUmVsYXRpb24oQ29sbGVjdGlvbiBBLCBpbnQgZmlsdGVyLCBDb2xsZWN0aW9uIEIpIHsKKyAgICAgICAgQ29sbGVjdGlvbiBhYiA9IG5ldyBUcmVlU2V0KEEpOworICAgICAgICBhYi5yZXRhaW5BbGwoQik7CisgICAgICAgIGlmIChhYi5zaXplKCkgPiAwICYmIChmaWx0ZXIgJiBTb3J0ZWRTZXRSZWxhdGlvbi5BX0FORF9CKSA9PSAwKSByZXR1cm4gZmFsc2U7IAorICAgICAgICAKKyAgICAgICAgLy8gQSAtIEIgc2l6ZSA9PSBBLnNpemUgLSBBJkIuc2l6ZQorICAgICAgICBpZiAoQS5zaXplKCkgPiBhYi5zaXplKCkgJiYgKGZpbHRlciAmIFNvcnRlZFNldFJlbGF0aW9uLkFfTk9UX0IpID09IDApIHJldHVybiBmYWxzZTsgCisgICAgICAgIAorICAgICAgICAvLyBCIC0gQSBzaXplID09IEIuc2l6ZSAtIEEmQi5zaXplCisgICAgICAgIGlmIChCLnNpemUoKSA+IGFiLnNpemUoKSAmJiAoZmlsdGVyICYgU29ydGVkU2V0UmVsYXRpb24uQl9OT1RfQSkgPT0gMCkgcmV0dXJuIGZhbHNlOyAKKworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSAgICAKKyAgICAKKyAgICB2b2lkIGNoZWNrU2V0UmVsYXRpb24oU29ydGVkU2V0IGEsIFNvcnRlZFNldCBiLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGhhc1JlbGF0aW9uID0gU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oYSwgaSwgYik7CisgICAgICAgICAgICBib29sZWFuIGR1bWJIYXNSZWxhdGlvbiA9IGR1bWJIYXNSZWxhdGlvbihhLCBpLCBiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4obWVzc2FnZSArICIgIiArIGhhc1JlbGF0aW9uICsgIjpcdCIgKyBhICsgIlx0IiArIFJFTEFUSU9OX05BTUVbaV0gKyAiXHQiICsgYik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChoYXNSZWxhdGlvbiAhPSBkdW1iSGFzUmVsYXRpb24pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICsgIiAiICsgZHVtYkhhc1JlbGF0aW9uICsgIjpcdCIgKyBhICsgIlx0IiArIFJFTEFUSU9OX05BTUVbaV0gKyAiXHQiICsgYik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0KKyAgICAKKyAgIC8qKgorICAgICogVGVzdCB0aGUgWzpMYXRpbjpdIHN5bnRheC4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHRTZXQoKSB7CisKKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQoIls6TGF0aW46XSIsICJhQSIsIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXHUwMzkxXFx1MDNCMSIpKTsKKworICAgICAgICBleHBlY3RDb250YWlubWVudCgiWzpHcmVlazpdIiwgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcdTAzOTFcXHUwM0IxIiksICJhQSIpOworICAgICAgICAKKyAgICAgICAgLyogSml0dGVyYnVnIDE0MjMgKi8KKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQoIltbOkNvbW1vbjpdWzpJbmhlcml0ZWQ6XV0iLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMDMwOTlcXFUwMDAxRDE2OVxcdTAwMDAiKSwgImFBIik7CisKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgWzpMYXRpbjpdIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlTZXQoKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBQYXR0ZXJuLCBDaGFycyBJTiwgQ2hhcnMgTk9UIGluCisKKyAgICAgICAgICAgICJbOkxhdGluOl0iLAorICAgICAgICAgICAgImFBIiwKKyAgICAgICAgICAgICJcdTAzOTFcdTAzQjEiLAorCisgICAgICAgICAgICAiW1xccHtHcmVla31dIiwKKyAgICAgICAgICAgICJcdTAzOTFcdTAzQjEiLAorICAgICAgICAgICAgImFBIiwKKworICAgICAgICAgICAgIlxcUHsgR0VORVJBTCBDYXRlZ29yeSA9IHVwcGVyIGNhc2UgbGV0dGVyIH0iLAorICAgICAgICAgICAgImFiYyIsCisgICAgICAgICAgICAiQUJDIiwKKworICAgICAgICAgICAgLy8gQ29tYmluaW5nIGNsYXNzOiBAc2luY2UgSUNVIDIuMgorICAgICAgICAgICAgLy8gQ2hlY2sgYm90aCBzeW1ib2xpYyBhbmQgbnVtZXJpYworICAgICAgICAgICAgIlxccHtjY2M9TnVrdGF9IiwKKyAgICAgICAgICAgICJcdTBBQkMiLAorICAgICAgICAgICAgImFiYyIsCisKKyAgICAgICAgICAgICJcXHB7Q2Fub25pY2FsIENvbWJpbmluZyBDbGFzcyA9IDExfSIsCisgICAgICAgICAgICAiXHUwNUIxIiwKKyAgICAgICAgICAgICJcdTA1QjIiLAorCisgICAgICAgICAgICAiWzpjIGMgYyA9IGlvdGEgc3Vic2NyaXB0IDpdIiwKKyAgICAgICAgICAgICJcdTAzNDUiLAorICAgICAgICAgICAgInh5eiIsCisKKyAgICAgICAgICAgIC8vIEJpZGkgY2xhc3M6IEBzaW5jZSBJQ1UgMi4yCisgICAgICAgICAgICAiXFxwe2JpZGljbGFzcz1sZWZ0dG9yaWdodH0iLAorICAgICAgICAgICAgImFiYyIsCisgICAgICAgICAgICAiXHUwNjcxXHUwNjcyIiwKKworICAgICAgICAgICAgLy8gQmluYXJ5IHByb3BlcnRpZXM6IEBzaW5jZSBJQ1UgMi4yCisgICAgICAgICAgICAiXFxwe2lkZW9ncmFwaGljfSIsCisgICAgICAgICAgICAiXHU0RTBBIiwKKyAgICAgICAgICAgICJ4IiwKKworICAgICAgICAgICAgIls6bWF0aD1mYWxzZTpdIiwKKyAgICAgICAgICAgICJxKSooIiwgLy8gKShhbmQgKiB3ZXJlIHJlbW92ZWQgZnJvbSBtYXRoIGluIFVuaWNvZGUgNC4wLjEKKyAgICAgICAgICAgICIrPD5eIiwKKworICAgICAgICAgICAgLy8gSkIjMTc2NyBcTnt9LCBccHtBU0NJSX0KKyAgICAgICAgICAgICJbOkFzY2lpOl0iLAorICAgICAgICAgICAgImFiY1x1MDAwMFx1MDA3RiIsCisgICAgICAgICAgICAiXHUwMDgwXHU0RTAwIiwKKworICAgICAgICAgICAgIltcXE57IGxhdGluIHNtYWxsIGxldHRlciAgYSAgfVs6bmFtZT0gbGF0aW4gc21hbGwgbGV0dGVyIHo6XV0iLAorICAgICAgICAgICAgImF6IiwKKyAgICAgICAgICAgICJxcnMiLAorCisgICAgICAgICAgICAvLyBKQiMyMDE1CisgICAgICAgICAgICAiWzphbnk6XSIsCisgICAgICAgICAgICAiYVxcVTAwMTBGRkZGIiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiWzpudj0wLjU6XSIsCisgICAgICAgICAgICAiXHUwMEJEXHUwRjJBIiwKKyAgICAgICAgICAgICJcdTAwQkMiLAorCisgICAgICAgICAgICAvLyBKQiMyNjUzOiBBZ2UKKyAgICAgICAgICAgICJbOkFnZT0xLjE6XSIsCisgICAgICAgICAgICAiXHUwM0Q2IiwgLy8gMS4xCisgICAgICAgICAgICAiXHUwM0Q4XHUwM0Q5IiwgLy8gMy4yCisKKyAgICAgICAgICAgICJbOkFnZT0zLjE6XSIsIAorICAgICAgICAgICAgIlxcdTE4MDBcXHUzNDAwXFxVMDAwMmY4MDAiLCAKKyAgICAgICAgICAgICJcXHUwMjIwXFx1MDM0ZlxcdTMwZmZcXHUzM2ZmXFx1ZmU3M1xcVTAwMDEwMDAwXFxVMDAwNTAwMDAiLCAKKworICAgICAgICAgICAgLy8gSkIjMjM1MDogQ2FzZV9TZW5zaXRpdmUKKyAgICAgICAgICAgICJbOkNhc2UgU2Vuc2l0aXZlOl0iLAorICAgICAgICAgICAgIkFcdTFGRkNcXFUwMDAxMDQxMCIsCisgICAgICAgICAgICAiO1x1MDBCNFxcVTAwMDEwNTAwIiwKKworCisgICAgICAgICAgICAvLyBSZWdleCBjb21wYXRpYmlsaXR5IHRlc3QKKyAgICAgICAgICAgICJbLWJdIiwgLy8gbGVhZGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAgICAgIi1iIiwKKyAgICAgICAgICAgICJhYyIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJbXi1iXSIsIC8vIGxlYWRpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgICAgICJhYyIsCisgICAgICAgICAgICAiLWIiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiW2ItXSIsIC8vIHRyYWlsaW5nICctJyBpcyBsaXRlcmFsCisgICAgICAgICAgICAiLWIiLAorICAgICAgICAgICAgImFjIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIlteYi1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgICAgICJhYyIsCisgICAgICAgICAgICAiLWIiLAorCisgICAgICAgICAgICAiW2EtYi1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgICAgICJhYi0iLAorICAgICAgICAgICAgImM9IiwKKworICAgICAgICAgICAgIltbYS1xXSZbcC16XS1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgICAgICJwcS0iLAorICAgICAgICAgICAgIm9yPSIsCisKKyAgICAgICAgICAgICJbXFxzfFxcKXw6fCR8XFw+XSIsIC8vIGZyb20gcmVnZXggdGVzdHMKKyAgICAgICAgICAgICJzfCk6JD4iLAorICAgICAgICAgICAgIlxcYWJjIiwKKworICAgICAgICAgICAgIltcdURDMDBjZF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCB0cmFpbCBhdCBzdGFydAorICAgICAgICAgICAgImNkXHVEQzAwIiwKKyAgICAgICAgICAgICJhYlx1RDgwMFxcVTAwMDEwMDAwIiwKKworICAgICAgICAgICAgIlthYlx1RDgwMF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCB0cmFpbCBhdCBzdGFydAorICAgICAgICAgICAgImFiXHVEODAwIiwKKyAgICAgICAgICAgICJjZFx1REMwMFxcVTAwMDEwMDAwIiwKKworICAgICAgICAgICAgIlthYlx1RDgwMGNkXSIsIC8vIEpCIzI5MDY6IGlzb2xhdGVkIGxlYWQgaW4gbWlkZGxlCisgICAgICAgICAgICAiYWJjZFx1RDgwMCIsCisgICAgICAgICAgICAiZWZcdURDMDBcXFUwMDAxMDAwMCIsCisKKyAgICAgICAgICAgICJbYWJcdURDMDBjZF0iLCAvLyBKQiMyOTA2OiBpc29sYXRlZCB0cmFpbCBpbiBtaWRkbGUKKyAgICAgICAgICAgICJhYmNkXHVEQzAwIiwKKyAgICAgICAgICAgICJlZlx1RDgwMFxcVTAwMDEwMDAwIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIls6XmxjY2M9MDpdIiwgLy8gTGVhZCBjYW5vbmljYWwgY2xhc3MKKyAgICAgICAgICAgICJcdTAzMDBcdTAzMDEiLAorICAgICAgICAgICAgImFiY2RcdTAwYzBcdTAwYzUiLAorCisgICAgICAgICAgICAiWzpedGNjYz0wOl0iLCAvLyBUcmFpbCBjYW5vbmljYWwgY2xhc3MKKyAgICAgICAgICAgICJcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAgICAgImFiY2QiLAorCisgICAgICAgICAgICAiW1s6XmxjY2M9MDpdWzpedGNjYz0wOl1dIiwgLy8gTGVhZCBhbmQgdHJhaWwgY2Fub25pY2FsIGNsYXNzCisgICAgICAgICAgICAiXHUwMzAwXHUwMzAxXHUwMGMwXHUwMGM1IiwKKyAgICAgICAgICAgICJhYmNkIiwKKworICAgICAgICAgICAgIltbOl5sY2NjPTA6XS1bOl50Y2NjPTA6XV0iLCAvLyBTdHVmZiB0aGF0IHN0YXJ0cyB3aXRoIGFuIGFjY2VudCBidXQgZW5kcyB3aXRoIGEgYmFzZSAobm9uZSByaWdodCBub3cpCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICJhYmNkXHUwMzAwXHUwMzAxXHUwMGMwXHUwMGM1IiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIltbOmNjYz0wOl0tWzpsY2NjPTA6XS1bOnRjY2M9MDpdXSIsIC8vIFdlaXJkb3MuIENvbXBsZXRlIGNhbm9uaWNhbCBjbGFzcyBpcyB6ZXJvLCBidXQgYm90aCBsZWFkIGFuZCB0cmFpbCBhcmUgbm90CisgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjgxIiwKKyAgICAgICAgICAgICJhYmNkXHUwMzAwXHUwMzAxXHUwMGMwXHUwMGM1IiwKKworICAgICAgICAgICAgIls6QXNzaWduZWQ6XSIsCisgICAgICAgICAgICAiQVxcdUUwMDBcXHVGOEZGXFx1RkRDN1xcVTAwMDEwMDAwXFxVMDAxMEZGRkQiLAorICAgICAgICAgICAgIlxcdTA4ODhcXHVGREQzXFx1RkZGRVxcVTAwMDUwMDA1IiwKKyAgICAgICAgICAgIAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeyAgCisgICAgICAgICAgICBleHBlY3RDb250YWlubWVudChEQVRBW2ldLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVTZXRTdHJpbmdzKCkgeworCQlVbmljb2RlU2V0IHVzZXQgPSBuZXcgVW5pY29kZVNldCgiW2F7YmN9e2NkfXBxclx1MDAwMF0iKTsKKwkJbG9nbG4odXNldCArICIgfiAiICsgdXNldC5nZXRSZWdleEVxdWl2YWxlbnQoKSk7CisJCVN0cmluZ1tdW10gdGVzdFN0cmluZ3MgPSB7eyJ4IiwgIm5vbmUifSwKKwkJCQl7ImJjIiwgImFsbCJ9LAorCQkJCXsiY2RiY2EiLCAiYWxsIn0sCisJCQkJeyJhIiwgImFsbCJ9LAorCQkJCXsiYmN4IiwgInNvbWUifSwKKwkJCQl7ImFiIiwgInNvbWUifSwKKwkJCQl7ImFjYiIsICJzb21lIn0sCisJCQkJeyJiY2RhIiwgInNvbWUifSwKKwkJCQl7ImRjY2J4IiwgIm5vbmUifSwKKwkJCX07CisJCWZvciAoaW50IGkgPSAwOyBpIDwgdGVzdFN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKwkJCWNoZWNrKHVzZXQsIHRlc3RTdHJpbmdzW2ldWzBdLCB0ZXN0U3RyaW5nc1tpXVsxXSk7CisJCX0KKwl9CisKKyAgICAKKwlwcml2YXRlIHZvaWQgY2hlY2soVW5pY29kZVNldCB1c2V0LCBTdHJpbmcgc3RyaW5nLCBTdHJpbmcgZGVzaXJlZFN0YXR1cykgeworCQlib29sZWFuIHNob3VsZENvbnRhaW5BbGwgPSBkZXNpcmVkU3RhdHVzLmVxdWFscygiYWxsIik7CisJCWJvb2xlYW4gc2hvdWxkQ29udGFpbk5vbmUgPSBkZXNpcmVkU3RhdHVzLmVxdWFscygibm9uZSIpOworCSAgICBpZiAodXNldC5jb250YWluc0FsbChzdHJpbmcpICE9IHNob3VsZENvbnRhaW5BbGwpIHsKKwkgICAgCWVycmxuKCJjb250YWluc0FsbCAiICsgIHN0cmluZyArICIgc2hvdWxkIGJlICIgKyBzaG91bGRDb250YWluQWxsKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgCWxvZ2xuKCJjb250YWluc0FsbCAiICsgIHN0cmluZyArICIgPSAiICsgc2hvdWxkQ29udGFpbkFsbCk7CisJICAgIH0KKwkgICAgaWYgKHVzZXQuY29udGFpbnNOb25lKHN0cmluZykgIT0gc2hvdWxkQ29udGFpbk5vbmUpIHsKKwkgICAgCWVycmxuKCJjb250YWluc05vbmUgIiArICBzdHJpbmcgKyAiIHNob3VsZCBiZSAiICsgc2hvdWxkQ29udGFpbk5vbmUpOworCSAgICB9IGVsc2UgeworCSAgICAJbG9nbG4oImNvbnRhaW5zTm9uZSAiICsgIHN0cmluZyArICIgPSAiICsgc2hvdWxkQ29udGFpbk5vbmUpOwkgICAgCQorCSAgICB9CisJfQorCisgICAgLyoqCisgICAgICogVGVzdCBjbG9uaW5nIG9mIFVuaWNvZGVTZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmUoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KCJbYWJjeHl6XSIpOworICAgICAgICBVbmljb2RlU2V0IHQgPSAoVW5pY29kZVNldCkgcy5jbG9uZSgpOworICAgICAgICBleHBlY3RDb250YWlubWVudCh0LCAiYWJjIiwgImRlZiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGluZGV4T2YoKSBhbmQgY2hhckF0KCkgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5kZXhPZigpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiW2EtY3gteTM1NzhdIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjID0gc2V0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChzZXQuaW5kZXhPZihjKSAhPSBpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNoYXJBdCgiICsgaSArICIpID0gIiArIGMgKworICAgICAgICAgICAgICAgICAgICAgICIgPT4gaW5kZXhPZigpID0+ICIgKyBzZXQuaW5kZXhPZihjKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBzZXQuY2hhckF0KHNldC5zaXplKCkpOworICAgICAgICBpZiAoYyAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNoYXJBdCg8b3V0IG9mIHJhbmdlPikgPSAiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFN0cmluZy52YWx1ZU9mKGMpKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGogPSBzZXQuaW5kZXhPZigncScpOworICAgICAgICBpZiAoaiAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGluZGV4T2YoJ3EnKSA9ICIgKyBqKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb250YWluc1N0cmluZygpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gbmV3IFVuaWNvZGVTZXQoIlthe2JjfV0iKTsKKyAgICAgICAgaWYgKHguY29udGFpbnMoImFiYyIpKSBlcnJsbigiRkFJTCIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhoYXVzdGl2ZSgpIHsKKyAgICAgICAgLy8gZXhoYXVzdGl2ZSB0ZXN0cy4gU2ltdWxhdGUgVW5pY29kZVNldHMgd2l0aCBpbnRlZ2Vycy4KKyAgICAgICAgLy8gVGhhdCBnaXZlcyB1cyB2ZXJ5IHNvbGlkIHRlc3RzIChleGNlcHQgZm9yIGxhcmdlIG1lbW9yeSB0ZXN0cykuCisKKyAgICAgICAgY2hhciBsaW1pdCA9IChjaGFyKTEyODsKKworICAgICAgICBmb3IgKGNoYXIgaSA9IDA7IGkgPCBsaW1pdDsgKytpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgaSArICIsICIgKyBiaXRzVG9TZXQoaSkpOworICAgICAgICAgICAgX3Rlc3RDb21wbGVtZW50KGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBBUyBMT05HIEFTIFdFIEFSRSBIRVJFLCBjaGVjayByb3VuZHRyaXAKKyAgICAgICAgICAgIGNoZWNrUm91bmRUcmlwKGJpdHNUb1NldChpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoY2hhciBqID0gMDsgaiA8IGxpbWl0OyArK2opIHsKKyAgICAgICAgICAgICAgICBfdGVzdEFkZChpLGopOworICAgICAgICAgICAgICAgIF90ZXN0WG9yKGksaik7CisgICAgICAgICAgICAgICAgX3Rlc3RSZXRhaW4oaSxqKTsKKyAgICAgICAgICAgICAgICBfdGVzdFJlbW92ZShpLGopOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBlYWNoIHNjcmlwdCBuYW1lIGFuZCBhYmJyZXZpYXRlZCBuYW1lIGNhbiBiZSB1c2VkCisgICAgICogdG8gY29uc3RydWN0IGEgVW5pY29kZVNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NyaXB0TmFtZXMoKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxVU2NyaXB0LkNPREVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDI7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSAiIjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAoaj09MCkgPyBVU2NyaXB0LmdldE5hbWUoaSkgOiBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0ID0gIls6IiArIG5hbWUgKyAiOl0iOworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHBhdCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhdC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAoaW4gVVNjcmlwdCk6IE5vIG5hbWUgZm9yIHNjcmlwdCAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ291bGRuJ3QgY3JlYXRlICIgKyBwYXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjbG9zdXJlIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvc2VPdmVyKCkgeworICAgICAgICBTdHJpbmcgQ0FTRSA9IFN0cmluZy52YWx1ZU9mKFVuaWNvZGVTZXQuQ0FTRSk7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBzZWxlY3RvciwgaW5wdXQsIG91dHB1dAorICAgICAgICAgICAgQ0FTRSwKKyAgICAgICAgICAgICJbYXFcdTAwREZ7QmN9e2JDfXtGaX1dIiwKKyAgICAgICAgICAgICJbYUFxUVx1MDBERlx1RkIwMXtzc317YmN9e2ZpfV0iLAorCisgICAgICAgICAgICBDQVNFLAorICAgICAgICAgICAgIltcdTAxRjFdIiwgLy8gJ0RaJworICAgICAgICAgICAgIltcdTAxRjFcdTAxRjJcdTAxRjNdIiwKKworICAgICAgICAgICAgQ0FTRSwKKyAgICAgICAgICAgICJbXHUxRkI0XSIsCisgICAgICAgICAgICAiW1x1MUZCNHtcdTAzQUNcdTAzQjl9XSIsCisKKyAgICAgICAgICAgIENBU0UsCisgICAgICAgICAgICAiW3tGXHVGQjAxfV0iLAorICAgICAgICAgICAgIltcdUZCMDN7ZmZpfV0iLCAgICAgICAgICAgIAorCisgICAgICAgICAgICBDQVNFLAorICAgICAgICAgICAgIlthLXpdIiwiW0EtWmEtelx1MDE3Rlx1MjEyQV0iLAorICAgICAgICAgICAgQ0FTRSwKKyAgICAgICAgICAgICJbYWJjXSIsIltBLUNhLWNdIiwKKyAgICAgICAgICAgIENBU0UsCisgICAgICAgICAgICAiW0FCQ10iLCJbQS1DYS1jXSIsCisgICAgICAgIH07CisKKyAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgVW5pY29kZVNldCB0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBpbnQgc2VsZWN0b3IgPSBJbnRlZ2VyLnBhcnNlSW50KERBVEFbaV0pOworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBzLmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgcy5jbG9zZU92ZXIoc2VsZWN0b3IpOworICAgICAgICAgICAgdC5hcHBseVBhdHRlcm4oZXhwKTsKKyAgICAgICAgICAgIGlmIChzLmVxdWFscyh0KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHBhdCArICIuY2xvc2VPdmVyKCIgKyBzZWxlY3RvciArICIpID0+ICIgKyBleHApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHBhdCArICIuY2xvc2VPdmVyKCIgKyBzZWxlY3RvciArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHMudG9QYXR0ZXJuKHRydWUpICsgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHRoZSBwYXR0ZXJuIEFQSQorICAgICAgICBzLmFwcGx5UGF0dGVybigiW2FiY10iLCBVbmljb2RlU2V0LkNBU0UpOworICAgICAgICBleHBlY3RDb250YWlubWVudChzLCAiYWJjQUJDIiwgImRlZkRFRiIpOworICAgICAgICBzID0gbmV3IFVuaWNvZGVTZXQoIlteYWJjXSIsIFVuaWNvZGVTZXQuQ0FTRSk7CisgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KHMsICJkZWZERUYiLCAiYWJjQUJDIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVzY2FwZVBhdHRlcm4oKSB7CisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgcGF0dGVybiBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHJhbmdlICJjLWQiCisgICAgICAgIC8vIGZvciB3aGljaCBpc1J1bGVXaGl0ZVNwYWNlKGMpIG9yIGlzUnVsZVdoaXRlU3BhY2UoZCkgaXMgdHJ1ZS4KKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPQorICAgICAgICAgICAgIltcXHVGRUZGIFxcdTIwMEUtXFx1MjBGRiBcXHVGRkY5LVxcdUZGRkMgXFxVMDAwMUQxNzMtXFxVMDAwMUQxN0EgXFxVMDAwRjAwMDAtXFxVMDAwRkZGRkQgXSI7CisgICAgICAgIFN0cmluZyBleHAgPQorICAgICAgICAgICAgIltcXHUyMDBFLVxcdTIwRkZcXHVGRUZGXFx1RkZGOS1cXHVGRkZDXFxVMDAwMUQxNzMtXFxVMDAwMUQxN0FcXFUwMDBGMDAwMC1cXFUwMDBGRkZGRF0iOworICAgICAgICAvLyBXZSB0ZXN0IHRoaXMgd2l0aCB0d28gcGFzc2VzOyBpbiB0aGUgc2Vjb25kIHBhc3Mgd2UKKyAgICAgICAgLy8gcHJlLXVuZXNjYXBlIHRoZSBwYXR0ZXJuLiAgU2luY2UgVSsyMDBFIGlzIHJ1bGUgd2hpdGVzcGFjZSwKKyAgICAgICAgLy8gdGhpcyBmYWlscyAtLSB3aGljaCBpcyB3aGF0IHdlIGV4cGVjdC4KKyAgICAgICAgZm9yIChpbnQgcGFzcz0xOyBwYXNzPD0yOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSBwYXR0ZXJuOworICAgICAgICAgICAgaWYgKHBhc3M9PTIpIHsKKyAgICAgICAgICAgICAgICBwYXQgPSBVdGlsaXR5LnVuZXNjYXBlKHBhdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBQYXR0ZXJuIGlzIG9ubHkgZ29vZCBmb3IgcGFzcyAxCisgICAgICAgICAgICBib29sZWFuIGlzUGF0dGVyblZhbGlkID0gKHBhc3M9PTEpOworCisgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHNldCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKHNldCAhPSBudWxsKSAhPSBpc1BhdHRlcm5WYWxpZCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGFwcGx5UGF0dGVybigiICsKKyAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShwYXQpICsgIikgPT4gIiArIHNldCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoKGNoYXIpMHgwNjQ0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBVdGlsaXR5LmVzY2FwZShwYXQpICsgIiBjb250YWlucyhVKzA2NjQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBuZXdwYXQgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgaWYgKG5ld3BhdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiID0+ICIgKyBuZXdwYXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiID0+ICIgKyBuZXdwYXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c2V0LmdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoIlJhbmdlICIpOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoKGNoYXIpKDB4MzAgKyBpKSkKKyAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgiOiAiKTsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoc3RyLCBzZXQuZ2V0UmFuZ2VTdGFydChpKSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgiIC0gIik7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHN0ciwgc2V0LmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IFV0aWxpdHkuZXNjYXBlKHN0ci50b1N0cmluZygpICsgIiAoIiArIHNldC5nZXRSYW5nZVN0YXJ0KGkpICsgIiAtICIgKworICAgICAgICAgICAgICAgICAgICBzZXQuZ2V0UmFuZ2VFbmQoaSkgKyAiKSIpOworICAgICAgICAgICAgICAgIGlmIChzZXQuZ2V0UmFuZ2VTdGFydChpKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbihzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9sVGFibGUoKSB7CisgICAgICAgIC8vIE11bHRpcGxlIHRlc3QgY2FzZXMgY2FuIGJlIHNldCB1cCBoZXJlLiAgRWFjaCB0ZXN0IGNhc2UKKyAgICAgICAgLy8gaXMgdGVybWluYXRlZCBieSBudWxsOgorICAgICAgICAvLyB2YXIsIHZhbHVlLCB2YXIsIHZhbHVlLC4uLiwgaW5wdXQgcGF0LiwgZXhwLiBvdXRwdXQgcGF0LiwgbnVsbAorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInVzIiwgImEteiIsICJbMC0xJHVzXSIsICJbMC0xYS16XSIsIG51bGwsCisgICAgICAgICAgICAidXMiLCAiW2Etel0iLCAiWzAtMSR1c10iLCAiWzAtMVthLXpdXSIsIG51bGwsCisgICAgICAgICAgICAidXMiLCAiXFxbYVxcLXpcXF0iLCAiWzAtMSR1c10iLCAiWy0wMVxcW1xcXWF6XSIsIG51bGwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVG9rZW5TeW1ib2xUYWJsZSBzeW0gPSBuZXcgVG9rZW5TeW1ib2xUYWJsZSgpOworCisgICAgICAgICAgICAvLyBTZXQgdXAgdmFyaWFibGVzCisgICAgICAgICAgICB3aGlsZSAoREFUQVtpKzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzeW0uYWRkKERBVEFbaV0sIERBVEFbaSsxXSk7CisgICAgICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJbnB1dCBwYXR0ZXJuIGFuZCBleHBlY3RlZCBvdXRwdXQgcGF0dGVybgorICAgICAgICAgICAgU3RyaW5nIGlucGF0ID0gREFUQVtpXSwgZXhwcGF0ID0gREFUQVtpKzFdOworICAgICAgICAgICAgaSArPSAyOworCisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgVW5pY29kZVNldCB1cyA9IG5ldyBVbmljb2RlU2V0KGlucGF0LCBwb3MsIHN5bSk7CisKKyAgICAgICAgICAgIC8vIHJlc3VsdHMKKyAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBpbnBhdC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gcmVhZCB0byBlbmQgb2Ygc3RyaW5nIFwiIgorICAgICAgICAgICAgICAgICAgICAgICsgaW5wYXQgKyAiXCI6IHJlYWQgdG8gIgorICAgICAgICAgICAgICAgICAgICAgICsgcG9zLmdldEluZGV4KCkgKyAiLCBsZW5ndGggaXMgIgorICAgICAgICAgICAgICAgICAgICAgICsgaW5wYXQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBVbmljb2RlU2V0IHVzMiA9IG5ldyBVbmljb2RlU2V0KGV4cHBhdCk7CisgICAgICAgICAgICBpZiAoIXVzLmVxdWFscyh1czIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCwgZ290ICIgKyB1cyArICIsIGV4cGVjdGVkICIgKyB1czIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2ssIGdvdCAiICsgdXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL2NvdmVyIFVuaWNvZGUoU3RyaW5nLFBhcnNlUG9zaXRpb24sU3ltYm9sVGFibGUsaW50KQorICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBpbnBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgVW5pY29kZVNldCBpblNldCA9IG5ldyBVbmljb2RlU2V0KGlucGF0LCBpbnBvcywgc3ltLCBVbmljb2RlU2V0LklHTk9SRV9TUEFDRSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGV4cFNldCA9IG5ldyBVbmljb2RlU2V0KGV4cHBhdCk7CisgICAgICAgICAgICBpZiAoIWluU2V0LmVxdWFscyhleHBTZXQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZhaWxlZCwgZ290ICIgKyBpblNldCArICIsIGV4cGVjdGVkICIgKyBleHBTZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgaW5TZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICAqIFRlc3QgdGhhdCBQb3NpeCBzdHlsZSBjaGFyYWN0ZXIgY2xhc3NlcyBbOmRpZ2l0Ol0sIGV0Yy4KKyAgICAgICogICBoYXZlIHRoZSBVbmljb2RlIGRlZmluaXRpb25zIGZyb20gVFIgMTguCisgICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQb3NpeENsYXNzZXMoKSB7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBhbHBoYSIsICJbOmFscGhhOl0iLCAiXFxwe0FscGhhYmV0aWN9Iik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBsb3dlciIsICJbOmxvd2VyOl0iLCAiXFxwe2xvd2VyY2FzZX0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHVwcGVyIiwgIls6dXBwZXI6XSIsICJcXHB7VXBwZXJjYXNlfSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggcHVuY3QiLCAiWzpwdW5jdDpdIiwgIlxccHtnYz1QdW5jdHVhdGlvbn0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGRpZ2l0IiwgIls6ZGlnaXQ6XSIsICJcXHB7Z2M9RGVjaW1hbE51bWJlcn0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHhkaWdpdCIsICJbOnhkaWdpdDpdIiwgIltcXHB7RGVjaW1hbE51bWJlcn1cXHB7SGV4RGlnaXR9XSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggYWxudW0iLCAiWzphbG51bTpdIiwgIltcXHB7QWxwaGFiZXRpY31cXHB7RGVjaW1hbE51bWJlcn1dIik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBzcGFjZSIsICJbOnNwYWNlOl0iLCAiXFxwe1doaXRlc3BhY2V9Iik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBibGFuayIsICJbOmJsYW5rOl0iLCAiW1xccHtXaGl0ZXNwYWNlfS1bXFx1MDAwYVxcdTAwMEJcXHUwMDBjXFx1MDAwZFxcdTAwODVcXHB7TGluZVNlcGFyYXRvcn1cXHB7UGFyYWdyYXBoU2VwYXJhdG9yfV1dIik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBjbnRybCIsICJbOmNudHJsOl0iLCAiXFxwe0NvbnRyb2x9Iik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBncmFwaCIsICJbOmdyYXBoOl0iLCAiW15cXHB7V2hpdGVzcGFjZX1cXHB7Q29udHJvbH1cXHB7U3Vycm9nYXRlfVxccHtVbmFzc2lnbmVkfV0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHByaW50IiwgIls6cHJpbnQ6XSIsICJbWzpncmFwaDpdWzpibGFuazpdLVtcXHB7Q29udHJvbH1dXSIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgZnJvemVuIGNsYXNzZXMgZGlzYWxsb3cgY2hhbmdlcy4gRm9yIDQyMTcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJvemVuKCkgeworICAgICAgICBVbmljb2RlU2V0IHRlc3QgPSBuZXcgVW5pY29kZVNldCgiW1s6d2hpdGVzcGFjZTpdQV0iKTsKKyAgICAgICAgdGVzdC5mcmVlemUoKTsKKyAgICAgICAgY2hlY2tNb2RpZmljYXRpb24odGVzdCwgdHJ1ZSk7CisgICAgICAgIGNoZWNrTW9kaWZpY2F0aW9uKHRlc3QsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgY2hlY2tNb2RpZmljYXRpb24oVW5pY29kZVNldCBvcmlnaW5hbCwgYm9vbGVhbiBpc0Zyb3plbikgeworICAgICAgICBtYWluOgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IDsrK2kpIHsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRlc3QgPSAoVW5pY29kZVNldCkgKGlzRnJvemVuID8gb3JpZ2luYWwuY2xvbmUoKSA6IG9yaWdpbmFsLmNsb25lQXNUaGF3ZWQoKSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBnb3RFeGNlcHRpb24gPSB0cnVlOworICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hlY2tFcXVhbHMgPSB0cnVlOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDogdGVzdC5hZGQoMCk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6IHRlc3QuYWRkKDAsMSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6IHRlc3QuYWRkKCJhIik7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDM6IExpc3QgYSA9IG5ldyBBcnJheUxpc3QoKTsgYS5hZGQoImEiKTsgdGVzdC5hZGRBbGwoYSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6IHRlc3QuYWRkQWxsKCJhYiIpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA1OiB0ZXN0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW2FiXSIpKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgNjogdGVzdC5hcHBseUludFByb3BlcnR5VmFsdWUoMCwwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgNzogdGVzdC5hcHBseVBhdHRlcm4oIlthYl0iKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgODogdGVzdC5hcHBseVBhdHRlcm4oIlthYl0iLCB0cnVlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgOTogdGVzdC5hcHBseVBhdHRlcm4oIlthYl0iLCAwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA6IHRlc3QuYXBwbHlQcm9wZXJ0eUFsaWFzKCJoZXgiLCJ0cnVlIik7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDExOiB0ZXN0LmFwcGx5UHJvcGVydHlBbGlhcygiaGV4IiwgInRydWUiLCBudWxsKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6IHRlc3QuY2xvc2VPdmVyKFVuaWNvZGVTZXQuQ0FTRSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDEzOiB0ZXN0LmNvbXBhY3QoKTsgY2hlY2tFcXVhbHMgPSBmYWxzZTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTQ6IHRlc3QuY29tcGxlbWVudCgwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6IHRlc3QuY29tcGxlbWVudCgwLDApOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxNjogdGVzdC5jb21wbGVtZW50KCJhYiIpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxNzogdGVzdC5jb21wbGVtZW50QWxsKCJhYiIpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxODogdGVzdC5jb21wbGVtZW50QWxsKG5ldyBVbmljb2RlU2V0KCJbYWJdIikpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOTogdGVzdC5yZW1vdmUoJyAnKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjA6IHRlc3QucmVtb3ZlKCcgJywnYScpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyMTogdGVzdC5yZW1vdmUoIiAiKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjI6IHRlc3QucmVtb3ZlQWxsKCIgYSIpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyMzogdGVzdC5yZW1vdmVBbGwobmV3IFVuaWNvZGVTZXQoIltcXCBhXSIpKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjQ6IHRlc3QucmV0YWluKCcgJyk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI1OiB0ZXN0LnJldGFpbignICcsJ2EnKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjY6IHRlc3QucmV0YWluKCIgIik7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI3OiB0ZXN0LnJldGFpbkFsbCgiIGEiKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjg6IHRlc3QucmV0YWluQWxsKG5ldyBVbmljb2RlU2V0KCJbXFwgYV0iKSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI5OiB0ZXN0LnNldCgwLDEpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAzMDogdGVzdC5zZXQobmV3IFVuaWNvZGVTZXQoIlthYl0iKSk7IGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGNvbnRpbnVlIG1haW47IC8vIHNvIHdlIGRvbid0IGtlZXAgaGF2aW5nIHRvIGNoYW5nZSB0aGUgZW5kcG9pbnQsIGFuZCBnYXBzIGFyZSBub3Qgc2tpcHBlZC4KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAzNTogcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGdvdEV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXNGcm96ZW4gJiYgIWdvdEV4Y2VwdGlvbikgZXJybG4oaSArICIpIGF0dGVtcHQgdG8gbW9kaWZ5IGZyb3plbiBvYmplY3QgZGlkbid0IHJlc3VsdCBpbiBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzRnJvemVuICYmIGdvdEV4Y2VwdGlvbikgZXJybG4oaSArICIpIGF0dGVtcHQgdG8gbW9kaWZ5IHRoYXdlZCBvYmplY3QgZGlkIHJlc3VsdCBpbiBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tFcXVhbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3QuZXF1YWxzKG9yaWdpbmFsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0Zyb3plbikgZXJybG4oaSArICIpIGF0dGVtcHQgdG8gbW9kaWZ5IHRoYXdlZCBvYmplY3QgZGlkbid0IGNoYW5nZSB0aGUgb2JqZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHVuZXF1YWwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Zyb3plbikgZXJybG4oaSArICIpIGF0dGVtcHQgdG8gbW9kaWZ5IGZyb3plbiBvYmplY3QgY2hhbmdlZCB0aGUgb2JqZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZ1tdIHByZXR0eURhdGEgPSB7CisgICAgICAgICAgICAiW1xcdUQ3REUtXFx1RDkwQyBcXHVEQ0I1LVxcdUREOUZdIiwgLy8gc3BlY2lhbCBjYXNlCisgICAgICAgICAgICAiWzphbnk6XSIsCisgICAgICAgICAgICAiWzp3aGl0ZXNwYWNlOl0iLAorICAgICAgICAgICAgIls6bGluZWJyZWFrPUFMOl0iLAorICAgIH07CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFByZXR0eVByaW50aW5nKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBQcmV0dHlQcmludGVyIHBwID0gbmV3IFByZXR0eVByaW50ZXIoKTsKKworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yICg7IGkgPCBwcmV0dHlEYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQocHJldHR5RGF0YVtpXSk7CisgICAgICAgICAgICAgICAgY2hlY2tQcmV0dHlTZXQocHAsIGksIHRlc3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUmFuZG9tIHJhbmRvbSA9IG5ldyBSYW5kb20oMCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHRlc3QgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgZm9yICg7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBkb3VibGUgc3RhcnQgPSByYW5kb20ubmV4dEdhdXNzaWFuKCkgKiAweDEwMDAwOworICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gLSBzdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDB4MTBGRkZGOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkb3VibGUgZW5kID0gcmFuZG9tLm5leHRHYXVzc2lhbigpICogMHgxMDA7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA8IDApIGVuZCA9IC1lbmQ7CisgICAgICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBlbmQ7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA+IDB4MTBGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IDB4MTBGRkZGOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZXN0LmNvbXBsZW1lbnQoKGludClzdGFydCwgKGludCllbmQpOworICAgICAgICAgICAgICAgIGNoZWNrUHJldHR5U2V0KHBwLCBpLCB0ZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFJ1bnRpbWVFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBDb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrUHJldHR5U2V0KFByZXR0eVByaW50ZXIgcHAsIGludCBpLCBVbmljb2RlU2V0IHRlc3QpIHsKKyAgICAgICAgU3RyaW5nIHByZXR0eSA9IHBwLnRvUGF0dGVybih0ZXN0KTsKKyAgICAgICAgVW5pY29kZVNldCByZXRyeSA9IG5ldyBVbmljb2RlU2V0KHByZXR0eSk7CisgICAgICAgIGlmICghdGVzdC5lcXVhbHMocmV0cnkpKSB7CisgICAgICAgICAgICBlcnJsbihpICsgIi4gRmFpbGVkIHRlc3Q6ICIgKyB0ZXN0ICsgIiAhPSAiICsgcHJldHR5KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKGkgKyAiLiBXb3JrZWQgZm9yICIgKyB0cnVuY2F0ZSh0ZXN0LnRvU3RyaW5nKCkpICsgIiA9PiAiICsgdHJ1bmNhdGUocHJldHR5KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyB0cnVuY2F0ZShTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPD0gMTAwKSByZXR1cm4gc3RyaW5nOworICAgICAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZygwLDk3KSArICIuLi4iOworICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBUb2tlblN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworICAgICAgICBIYXNoTWFwIGNvbnRlbnRzID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogKE5vbi1TeW1ib2xUYWJsZSBBUEkpIEFkZCB0aGUgZ2l2ZW4gdmFyaWFibGUgYW5kIHZhbHVlIHRvCisgICAgICAgICAqIHRoZSB0YWJsZS4gIFZhcmlhYmxlIHNob3VsZCBOT1QgY29udGFpbiBsZWFkaW5nICckJy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcgdmFyLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclt2YWx1ZS5sZW5ndGgoKV07CisgICAgICAgICAgICB2YWx1ZS5nZXRDaGFycygwLCB2YWx1ZS5sZW5ndGgoKSwgYnVmZmVyLCAwKTsKKyAgICAgICAgICAgIGFkZCh2YXIsIGJ1ZmZlcik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogKE5vbi1TeW1ib2xUYWJsZSBBUEkpIEFkZCB0aGUgZ2l2ZW4gdmFyaWFibGUgYW5kIHZhbHVlIHRvCisgICAgICAgICAqIHRoZSB0YWJsZS4gIFZhcmlhYmxlIHNob3VsZCBOT1QgY29udGFpbiBsZWFkaW5nICckJy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcgdmFyLCBjaGFyW10gYm9keSkgeworICAgICAgICAgICAgbG9nbG4oIlRva2VuU3ltYm9sVGFibGU6IGFkZCBcIiIgKyB2YXIgKyAiXCIgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoYm9keSkgKyAiXCIiKTsKKyAgICAgICAgICAgIGNvbnRlbnRzLnB1dCh2YXIsIGJvZHkpOworICAgICAgICB9CisKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjbG9va3VwKGphdmEubGFuZy5TdHJpbmcpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhcltdIGxvb2t1cChTdHJpbmcgcykgeworICAgICAgICAgICAgbG9nbG4oIlRva2VuU3ltYm9sVGFibGU6IGxvb2t1cCBcIiIgKyBzICsgIlwiID0+IFwiIiArCisgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nKChjaGFyW10pIGNvbnRlbnRzLmdldChzKSkgKyAiXCIiKTsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcltdKWNvbnRlbnRzLmdldChzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI2xvb2t1cE1hdGNoZXIoaW50KQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI3BhcnNlUmVmZXJlbmNlKGphdmEubGFuZy5TdHJpbmcsCisgICAgICAgICBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbiwgaW50KQorICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGxpbWl0OyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIlRva2VuU3ltYm9sVGFibGU6IHBhcnNlIFwiIiArIHRleHQgKyAiXCIgZnJvbSAiICsKKyAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgIiB0byAiICsgaSArCisgICAgICAgICAgICAgICAgICAiID0+IFwiIiArIHRleHQuc3Vic3RyaW5nKHN0YXJ0LGkpICsgIlwiIik7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoc3RhcnQsaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gVGhlc2Ugc2hvdWxkIGFsbCBiZWhhdmUgaWRlbnRpY2FsbHkKKyAgICAgICAgICAgICJbYWJjXFx1RDgwMFxcdURDMDBdIiwKKyAgICAgICAgICAgICJbYWJjXHVEODAwXHVEQzAwXSIsCisgICAgICAgICAgICAiW2FiY1xcVTAwMDEwMDAwXSIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBwYXR0ZXJuICIgKyBpICsgIiA6IiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiYWJjXFxVMDAwMTAwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MDA7XHVEQzAwIik7IC8vIHNwbGl0IGFwYXJ0IHN1cnJvZ2F0ZS1wYWlyCisgICAgICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSA0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6ICIgKyBEQVRBW2ldICsgIi5zaXplKCkgPT0gIiArIAorICAgICAgICAgICAgICAgICAgICAgIHNldC5zaXplKCkgKyAiLCBleHBlY3RlZCA0IikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBfdGVzdENvbXBsZW1lbnQoaW50IGEpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gYml0c1RvU2V0KGEpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHouY29tcGxlbWVudCgpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKH5hKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogYWRkOiB+IiArIHggKyAgIiAhPSAiICsgeik7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6IH4iICsgYSArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJjb21wbGVtZW50ICIgKyBhKTsKKyAgICB9CisKKyAgICB2b2lkIF90ZXN0QWRkKGludCBhLCBpbnQgYikgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeSA9IGJpdHNUb1NldChiKTsKKyAgICAgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgICAgICB6LmFkZEFsbCh5KTsKKyAgICAgICAgaW50IGMgPSBzZXRUb0JpdHMoeik7CisgICAgICAgIGlmIChjICE9IChhIHwgYikpIHsKKyAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMRUQ6IGFkZDogIiArIHggKyAiIHwgIiArIHkgKyAiICE9ICIgKyB6KSk7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6ICIgKyBhICsgIiB8ICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImFkZCAiICsgYSArICIsIiArIGIpOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RSZXRhaW4oaW50IGEsIGludCBiKSB7CisgICAgICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHoucmV0YWluQWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgJiBiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmV0YWluOiAiICsgeCArICIgJiAiICsgeSArICIgIT0gIiArIHopOworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmV0YWluOiAiICsgYSArICIgJiAiICsgYiArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJyZXRhaW4gIiArIGEgKyAiLCIgKyBiKTsKKyAgICB9CisKKyAgICB2b2lkIF90ZXN0UmVtb3ZlKGludCBhLCBpbnQgYikgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeSA9IGJpdHNUb1NldChiKTsKKyAgICAgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgICAgICB6LnJlbW92ZUFsbCh5KTsKKyAgICAgICAgaW50IGMgPSBzZXRUb0JpdHMoeik7CisgICAgICAgIGlmIChjICE9IChhICZ+IGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiByZW1vdmU6ICIgKyB4ICsgIiAmfiAiICsgeSArICIgIT0gIiArIHopOworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmVtb3ZlOiAiICsgYSArICIgJn4gIiArIGIgKyAiICE9ICIgKyBjKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja0Nhbm9uaWNhbFJlcCh6LCAicmVtb3ZlICIgKyBhICsgIiwiICsgYik7CisgICAgfQorCisgICAgdm9pZCBfdGVzdFhvcihpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gYml0c1RvU2V0KGEpOworICAgICAgICBVbmljb2RlU2V0IHkgPSBiaXRzVG9TZXQoYik7CisgICAgICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgei5jb21wbGVtZW50QWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgXiBiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogY29tcGxlbWVudDogIiArIHggKyAiIF4gIiArIHkgKyAiICE9ICIgKyB6KTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IGNvbXBsZW1lbnQ6ICIgKyBhICsgIiBeICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImNvbXBsZW1lbnQgIiArIGEgKyAiLCIgKyBiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhhdCByYW5nZXMgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBhbmQgbm9uLQorICAgICAqIG92ZXJsYXBwaW5nLgorICAgICAqLworICAgIHZvaWQgY2hlY2tDYW5vbmljYWxSZXAoVW5pY29kZVNldCBzZXQsIFN0cmluZyBtc2cpIHsKKyAgICAgICAgaW50IG4gPSBzZXQuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBpZiAobiA8IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICAgICAgICI6IHJhbmdlIGNvdW50IHNob3VsZCBiZSA+PSAwIGJ1dCBpcyAiICsKKyAgICAgICAgICAgICAgICAgIG4gKyAiIGZvciAiICsgVXRpbGl0eS5lc2NhcGUoc2V0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGFzdCA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA+IGVuZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICAgICAgICAgICAiOiByYW5nZSAiICsgKGkrMSkgKworICAgICAgICAgICAgICAgICAgICAgICIgc3RhcnQgPiBlbmQ6ICIgKyBzdGFydCArICIsICIgKyBlbmQgKworICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPiAwICYmIHN0YXJ0IDw9IGxhc3QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCByZXN1bHQgb2YgIiArIG1zZyArCisgICAgICAgICAgICAgICAgICAgICAgIjogcmFuZ2UgIiArIChpKzEpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIG92ZXJsYXBzIHByZXZpb3VzIHJhbmdlOiAiICsgc3RhcnQgKyAiLCAiICsgZW5kICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGZvciAiICsgVXRpbGl0eS5lc2NhcGUoc2V0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3QgPSBlbmQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgYml0bWFzayB0byBhIFVuaWNvZGVTZXQuCisgICAgICovCisgICAgVW5pY29kZVNldCBiaXRzVG9TZXQoaW50IGEpIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgoYSAmICgxPDxpKSkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoKGNoYXIpaSwoY2hhcilpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIFVuaWNvZGVTZXQgdG8gYSBiaXRtYXNrLiAgT25seSB0aGUgY2hhcmFjdGVycworICAgICAqIFUrMDAwMCB0byBVKzAwMjAgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBiaXRtYXNrLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgc2V0VG9CaXRzKFVuaWNvZGVTZXQgeCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgKytpKSB7CisgICAgICAgICAgICBpZiAoeC5jb250YWlucygoY2hhcilpKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoMTw8aSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJlcHJlc2VudGF0aW9uIG9mIGFuIGludmVyc2lvbiBsaXN0IGJhc2VkIFVuaWNvZGVTZXQKKyAgICAgKiBhcyBhIHBhaXJzIGxpc3QuICBSYW5nZXMgYXJlIGxpc3RlZCBpbiBhc2NlbmRpbmcgVW5pY29kZSBvcmRlci4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIHNldCBbYS16QS1NM10gaXMgcmVwcmVzZW50ZWQgYXMgIjMzQU1heiIuCisgICAgICovCisgICAgc3RhdGljIFN0cmluZyBnZXRQYWlycyhVbmljb2RlU2V0IHNldCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcGFpcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGlmIChlbmQgPiAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBlbmQgPSAweEZGRkY7CisgICAgICAgICAgICAgICAgaSA9IHNldC5nZXRSYW5nZUNvdW50KCk7IC8vIFNob3VsZCBiZSB1bm5lY2Vzc2FyeQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFpcnMuYXBwZW5kKChjaGFyKXN0YXJ0KS5hcHBlbmQoKGNoYXIpZW5kKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFpcnMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmdW5jdGlvbi4gTWFrZSBzdXJlIHRoYXQgdGhlIHNldHMgaGF2ZSB0aGUgcmlnaHQgcmVsYXRpb24KKyAgICAgKi8KKyAgICAgCisgICAgdm9pZCBleHBlY3RSZWxhdGlvbihPYmplY3QgcmVsYXRpb25PYmosIE9iamVjdCBzZXQxT2JqLCBPYmplY3Qgc2V0Mk9iaiwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgaW50IHJlbGF0aW9uID0gKChJbnRlZ2VyKSByZWxhdGlvbk9iaikuaW50VmFsdWUoKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQxID0gKFVuaWNvZGVTZXQpIHNldDFPYmo7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0MiA9IChVbmljb2RlU2V0KSBzZXQyT2JqOworICAgICAgICAKKyAgICAgICAgLy8gYnktdGhlLWJ5LCBjaGVjayB0aGUgaXRlcmF0b3IKKyAgICAgICAgY2hlY2tSb3VuZFRyaXAoc2V0MSk7CisgICAgICAgIGNoZWNrUm91bmRUcmlwKHNldDIpOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBjb250YWlucyA9IHNldDEuY29udGFpbnNBbGwoc2V0Mik7CisgICAgICAgIGJvb2xlYW4gaXNDb250YWluZWQgPSBzZXQyLmNvbnRhaW5zQWxsKHNldDEpOworICAgICAgICBib29sZWFuIGRpc2pvaW50ID0gc2V0MS5jb250YWluc05vbmUoc2V0Mik7CisgICAgICAgIGJvb2xlYW4gZXF1YWxzID0gc2V0MS5lcXVhbHMoc2V0Mik7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGludGVyc2VjdGlvbiA9IG5ldyBVbmljb2RlU2V0KHNldDEpLnJldGFpbkFsbChzZXQyKTsKKyAgICAgICAgVW5pY29kZVNldCBtaW51czEyID0gbmV3IFVuaWNvZGVTZXQoc2V0MSkucmVtb3ZlQWxsKHNldDIpOworICAgICAgICBVbmljb2RlU2V0IG1pbnVzMjEgPSBuZXcgVW5pY29kZVNldChzZXQyKS5yZW1vdmVBbGwoc2V0MSk7CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGJhc2ljIHByb3BlcnRpZXMKKyAgICAgICAgCisgICAgICAgIGlmIChjb250YWlucyAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSBzZXQyLnNpemUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGNvbnRhaW5zMSIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKGNvbnRhaW5zICE9IChpbnRlcnNlY3Rpb24uZXF1YWxzKHNldDIpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgY29udGFpbnMyIiArIHNldDEudG9QYXR0ZXJuKHRydWUpICsgIiwgIiArIHNldDIudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBpZiAoaXNDb250YWluZWQgIT0gKGludGVyc2VjdGlvbi5zaXplKCkgPT0gc2V0MS5zaXplKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBpc0NvbnRhaW5lZDEiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIGlmIChpc0NvbnRhaW5lZCAhPSAoaW50ZXJzZWN0aW9uLmVxdWFscyhzZXQxKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGlzQ29udGFpbmVkMiIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKChjb250YWlucyAmJiBpc0NvbnRhaW5lZCkgIT0gZXF1YWxzKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBlcXVhbHMiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIGlmIChkaXNqb2ludCAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSAwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgZGlzam9pbnQiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOb3cgc2VlIGlmIHRoZSBleHBlY3RlZCByZWxhdGlvbiBpcyB0cnVlCisgICAgICAgIGludCBzdGF0dXMgPSAobWludXMxMi5zaXplKCkgIT0gMCA/IDQgOiAwKQorICAgICAgICAgIHwgKGludGVyc2VjdGlvbi5zaXplKCkgIT0gMCA/IDIgOiAwKQorICAgICAgICAgIHwgKG1pbnVzMjEuc2l6ZSgpICE9IDAgPyAxIDogMCk7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhdHVzICE9IHJlbGF0aW9uKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCByZWxhdGlvbiBpbmNvcnJlY3QiICsgbWVzc2FnZQorICAgICAgICAgICAgICArICI7IGRlc2lyZWQgPSAiICsgUkVMQVRJT05fTkFNRVtyZWxhdGlvbl0KKyAgICAgICAgICAgICAgKyAiOyBmb3VuZCA9ICIgKyBSRUxBVElPTl9OQU1FW3N0YXR1c10KKyAgICAgICAgICAgICAgKyAiOyBzZXQxID0gIiArIHNldDEudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICsgIjsgc2V0MiA9ICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKQorICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJhc2ljIGNvbnNpc3RlbmN5IGNoZWNrIGZvciBhIGZldyBpdGVtcy4KKyAgICAgKiBUaGF0IHRoZSBpdGVyYXRvciB3b3JrcywgYW5kIHRoYXQgd2UgY2FuIGNyZWF0ZSBhIHBhdHRlcm4gYW5kCisgICAgICogZ2V0IHRoZSBzYW1lIHRoaW5nIGJhY2sKKyAgICAgKi8KKyAgICAKKyAgICB2b2lkIGNoZWNrUm91bmRUcmlwKFVuaWNvZGVTZXQgcykgeworICAgICAgICBTdHJpbmcgcGF0ID0gcy50b1BhdHRlcm4oZmFsc2UpOworICAgICAgICBVbmljb2RlU2V0IHQgPSBjb3B5V2l0aEl0ZXJhdG9yKHMsIGZhbHNlKTsKKyAgICAgICAgY2hlY2tFcXVhbChzLCB0LCAiaXRlcmF0b3Igcm91bmR0cmlwIik7CisKKyAgICAgICAgdCA9IGNvcHlXaXRoSXRlcmF0b3IocywgdHJ1ZSk7IC8vIHRyeSByYW5nZQorICAgICAgICBjaGVja0VxdWFsKHMsIHQsICJpdGVyYXRvciByb3VuZHRyaXAiKTsKKyAgICAgICAgCisgICAgICAgIHQgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgICAgICBjaGVja0VxdWFsKHMsIHQsICJ0b1BhdHRlcm4oZmFsc2UpIik7CisgICAgICAgIAorICAgICAgICBwYXQgPSBzLnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgdCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgIGNoZWNrRXF1YWwocywgdCwgInRvUGF0dGVybih0cnVlKSIpOworICAgIH0KKyAgICAKKyAgICBVbmljb2RlU2V0IGNvcHlXaXRoSXRlcmF0b3IoVW5pY29kZVNldCBzLCBib29sZWFuIHdpdGhSYW5nZSkgeworICAgICAgICBVbmljb2RlU2V0IHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgICAgICBpZiAod2l0aFJhbmdlKSB7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICAgICAgdC5hZGQoaXQuc3RyaW5nKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgICAgICB0LmFkZChpdC5zdHJpbmcpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHQuYWRkKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KKyAgICAKKyAgICBib29sZWFuIGNoZWNrRXF1YWwoVW5pY29kZVNldCBzLCBVbmljb2RlU2V0IHQsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIGlmICghcy5lcXVhbHModCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBtZXNzYWdlCisgICAgICAgICAgICAgICsgIjsgc291cmNlID0gIiArIHMudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICsgIjsgcmVzdWx0ID0gIiArIHQudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAgICAgCisgICAgdm9pZCBleHBlY3RFcXVhbChTdHJpbmcgbmFtZSwgU3RyaW5nIHBhdDEsIFN0cmluZyBwYXQyKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0MSwgc2V0MjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNldDEgPSBuZXcgVW5pY29kZVNldChwYXQxKTsKKyAgICAgICAgICAgIHNldDIgPSBuZXcgVW5pY29kZVNldChwYXQyKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgVW5pY29kZVNldCBmcm9tIHBhdHRlcm4gZm9yIFwiIiArIG5hbWUgKyAiXCI6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYoIXNldDEuZXF1YWxzKHNldDIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogU2V0cyBidWlsdCBmcm9tIHBhdHRlcm5zIGRpZmZlciBmb3IgXCIiICsgbmFtZSArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwZWN0IHRoZSBnaXZlbiBzZXQgdG8gY29udGFpbiB0aGUgY2hhcmFjdGVycyBpbiBjaGFyc0luIGFuZAorICAgICAqIHRvIG5vdCBjb250YWluIHRob3NlIGluIGNoYXJzT3V0LgorICAgICAqLworICAgIHZvaWQgZXhwZWN0Q29udGFpbm1lbnQoU3RyaW5nIHBhdCwgU3RyaW5nIGNoYXJzSW4sIFN0cmluZyBjaGFyc091dCkgeworICAgICAgICBVbmljb2RlU2V0IHNldDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ291bGRuJ3QgY3JlYXRlIFVuaWNvZGVTZXQgZnJvbSBwYXR0ZXJuIFwiIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiXCI6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQoc2V0LCBjaGFyc0luLCBjaGFyc091dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwZWN0IHRoZSBnaXZlbiBzZXQgdG8gY29udGFpbiB0aGUgY2hhcmFjdGVycyBpbiBjaGFyc0luIGFuZAorICAgICAqIHRvIG5vdCBjb250YWluIHRob3NlIGluIGNoYXJzT3V0LgorICAgICAqLworICAgIHZvaWQgZXhwZWN0Q29udGFpbm1lbnQoVW5pY29kZVNldCBzZXQsIFN0cmluZyBjaGFyc0luLCBTdHJpbmcgY2hhcnNPdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJhZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKGNoYXJzSW4gIT0gbnVsbCkgeworICAgICAgICAgICAgY2hhcnNJbiA9IFV0aWxpdHkudW5lc2NhcGUoY2hhcnNJbik7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y2hhcnNJbi5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQoY2hhcnNJbixpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNldC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYmFkLGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiYWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IHNldCAiICsgc2V0ICsgIiBkb2VzIG5vdCBjb250YWluICIgKyBiYWQgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkIGNvbnRhaW5tZW50IG9mICIgKyBjaGFyc0luKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJPazogc2V0ICIgKyBzZXQgKyAiIGNvbnRhaW5zICIgKyBjaGFyc0luKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYXJzT3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNoYXJzT3V0ID0gVXRpbGl0eS51bmVzY2FwZShjaGFyc091dCk7CisgICAgICAgICAgICBiYWQuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNoYXJzT3V0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChjaGFyc091dCxpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChiYWQsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiYWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IHNldCAiICsgc2V0ICsgIiBjb250YWlucyAiICsgYmFkICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCBub24tY29udGFpbm1lbnQgb2YgIiArIGNoYXJzT3V0KSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJPazogc2V0ICIgKyBzZXQgKyAiIGRvZXMgbm90IGNvbnRhaW4gIiArIGNoYXJzT3V0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdFBhdHRlcm4oVW5pY29kZVNldCBzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQYWlycykgeworICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBpZiAoIWdldFBhaXJzKHNldCkuZXF1YWxzKGV4cGVjdGVkUGFpcnMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogYXBwbHlQYXR0ZXJuKFwiIiArIHBhdHRlcm4gKworICAgICAgICAgICAgICAgICAgIlwiKSA9PiBwYWlycyBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIsIGV4cGVjdGVkIFwiIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBlY3RlZFBhaXJzKSArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIGFwcGx5UGF0dGVybihcIiIgKyBwYXR0ZXJuICsKKyAgICAgICAgICAgICAgICAgICJcIikgPT4gcGFpcnMgXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGdldFBhaXJzKHNldCkpICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdFRvUGF0dGVybihVbmljb2RlU2V0IHNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGV4cFN0cmluZ3MpIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9IHNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICAgIGlmIChwYXQuZXF1YWxzKGV4cFBhdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogICB0b1BhdHRlcm4oKSA9PiBcIiIgKyBwYXQgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1BhdHRlcm4oKSA9PiBcIiIgKyBwYXQgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cFBhdCArICJcIiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChleHBTdHJpbmdzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIGluID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGV4cFN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChleHBTdHJpbmdzW2ldID09IE5PVCkgeyAvLyBzaWM7IHBvaW50ZXIgY29tcGFyaXNvbgorICAgICAgICAgICAgICAgIGluID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIGNvbnRhaW5lZCA9IHNldC5jb250YWlucyhleHBTdHJpbmdzW2ldKTsKKyAgICAgICAgICAgIGlmIChjb250YWluZWQgPT0gaW4pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBleHBQYXQgKyAKKyAgICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVkID8gIiBjb250YWlucyB7IiA6ICIgZG9lcyBub3QgY29udGFpbiB7IikgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGV4cFN0cmluZ3NbaV0pICsgIn0iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBleHBQYXQgKyAKKyAgICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVkID8gIiBjb250YWlucyB7IiA6ICIgZG9lcyBub3QgY29udGFpbiB7IikgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGV4cFN0cmluZ3NbaV0pICsgIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0UGFpcnMoVW5pY29kZVNldCBzZXQsIFN0cmluZyBleHBlY3RlZFBhaXJzKSB7CisgICAgICAgIGlmICghZ2V0UGFpcnMoc2V0KS5lcXVhbHMoZXhwZWN0ZWRQYWlycykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBwYWlyIGxpc3QgXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUGFpcnMpICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGdldFBhaXJzKHNldCkpICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDaGFyc1RvVW5pY29kZVN0cmluZyhTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gVXRpbGl0eS51bmVzY2FwZShzKTsKKyAgICB9CisgICAgCisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvV3JpdGVDaGFydHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlYmQwODIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvV3JpdGVDaGFydHMuamF2YQpAQCAtMCwwICsxLDM3OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBXcml0ZUNoYXJ0cyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBwcmludFNldCgiW1tcdTAwMDAtXHUwMDdFIFx1MzBBMS1cdTMwRkMgXHVGRjYxLVx1RkY5Rlx1MzAwMVx1MzAwMl1bOkthdGFrYW5hOl1bOk1hcms6XV0iKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdFNldCA9ICIiOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgYXJncyA9IGdldEFsbFNjcmlwdHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgLy8gRW51bWVyYXRpb24gZW51bSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICAgICAgaWYgKGFyZ3NbaV0uc3RhcnRzV2l0aCgiWyIpKSB7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9IGFyZ3NbaV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByaW50KHRlc3RTZXQsIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIHRlc3RTZXQgPSAiIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRTZXQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldChzb3VyY2UpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByaW50b3V0IGZvciAnIiArIHNvdXJjZSArICInIik7CisgICAgICAgIGludCBjb3VudCA9IHMuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHMuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBzLmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoc3RhcnQsMTYpICsgIi4uIiArIEludGVnZXIudG9TdHJpbmcoZW5kLDE2KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBbGxTY3JpcHRzKCkgeworICAgICAgICBTZXQgc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgaW50IHNjcmlwdHNbXTsKKyAgICAgICAgRW51bWVyYXRpb24gc291cmNlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgd2hpbGUoc291cmNlcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHNvdXJjZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIltTa2lwcGluZyAiICsgc291cmNlICsgIl0iKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBzb3VyY2VTY3JpcHQgPSBzY3JpcHRzWzBdOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTb3VyY2U6ICIgKyBzb3VyY2UgKyAiO1x0U2NyaXB0czogIiArIHNob3dTY3JpcHRzKHNjcmlwdHMpKTsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIHRhcmdldHMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgICAgICAgICB3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHRhcmdldHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBzY3JpcHRzID0gVVNjcmlwdC5nZXRDb2RlKHRhcmdldCk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgcHJpb3JpdHkoc2NyaXB0c1swXSkgPCBwcmlvcml0eShzb3VyY2VTY3JpcHQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgZG9pbmcgYm90aCBkaXJlY3Rpb25zCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiW1NraXBwaW5nICciICsgc291cmNlICsgIi0iICsgdGFyZ2V0ICsgIiddIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlx0VGFyZ2V0OiAiICsgdGFyZ2V0ICsgIjtcdFNjcmlwdHM6ICIgKyBzaG93U2NyaXB0cyhzY3JpcHRzKSk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gdmFyaWFudHMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgd2hpbGUodmFyaWFudHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKSB2YXJpYW50cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBzb3VyY2UgKyAiLSIgKyB0YXJnZXQ7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkICs9ICIvIiArIHZhcmlhbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNLSVBQSU5HIFZBUklBTlQsIFNJTkNFIElUIENVUlJFTlRMWSBCUkVBS1MhXHQiICsgaWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHRcdFx0XHRBZGRpbmc6ICciICsgaWQgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gcmVzdWx0cyA9IG5ldyBTdHJpbmdbc2V0LnNpemUoKV07CisgICAgICAgIHNldC50b0FycmF5KHJlc3VsdHMpOworICAgICAgICByZXR1cm4gcmVzdWx0czsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgcHJpb3JpdHkoaW50IHNjcmlwdCkgeworICAgICAgICBpZiAoc2NyaXB0ID09IFVTY3JpcHQuTEFUSU4pIHJldHVybiAtMjsKKyAgICAgICAgcmV0dXJuIHNjcmlwdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2hvd1NjcmlwdHMoaW50W10gc2NyaXB0cykgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHRzLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKFVTY3JpcHQuZ2V0TmFtZShzY3JpcHRzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdHMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50KFN0cmluZyB0ZXN0U2V0LCBTdHJpbmcgcmF3SWQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJvY2Vzc2luZyAiICsgcmF3SWQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UocmF3SWQpOworICAgICAgICBTdHJpbmcgaWQgPSB0LmdldElEKCk7CisgICAgICAgIAorICAgICAgICAvLyBjbGVhbiB1cCBJRHMuIE91Z2h0IHRvIGJlIEFQSSBmb3IgZ2V0dGluZyBzb3VyY2UsIHRhcmdldCwgdmFyaWFudAorICAgICAgICBpbnQgbWludXNQb3MgPSBpZC5pbmRleE9mKCctJyk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCxtaW51c1Bvcyk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBpZC5zdWJzdHJpbmcobWludXNQb3MrMSk7CisgICAgICAgIGludCBzbGFzaFBvcyA9IHRhcmdldC5pbmRleE9mKCcvJyk7CisgICAgICAgIGlmIChzbGFzaFBvcyA+PSAwKSB0YXJnZXQgPSB0YXJnZXQuc3Vic3RyaW5nKDAsc2xhc2hQb3MpOworICAgICAgICAKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgc291cmNlIGlzIGEgc2NyaXB0CisgICAgICAgIGlmICh0ZXN0U2V0LmVxdWFscygiIikpIHsKKyAgICAgICAgICAgIGludFtdIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZBSUxFRDogIiAKKyAgICAgICAgICAgICAgICAgICAgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGRvZXMgbm90IGhhdmUgYSBzY3JpcHQgYXMgdGhlIHNvdXJjZSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9ICJbOiIgKyBzb3VyY2UgKyAiOl0iOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZSgia2F0YWthbmEiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gIlsiICsgdGVzdFNldCArICJcdTMwRkNdIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTZXQodGVzdFNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU2V0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFNldCk7CisKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgdGFyZ2V0IGlzIGEgc2NyaXB0CisgICAgICAgIGludFtdIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUodGFyZ2V0KTsKKyAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGFyZ2V0ID0gIls6TGF0aW46XSI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YXJnZXQgPSAiWzoiICsgdGFyZ2V0ICsgIjpdIjsKKyAgICAgICAgfQorICAgICAgICBVbmljb2RlU2V0IHRhcmdldFNldCA9IG5ldyBVbmljb2RlU2V0KHRhcmdldCk7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludmVyc2UgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgCisgICAgICAgIC8vVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgiKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBzY3JpcHQKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRpbmcgIiArIHNvdXJjZVNldC50b1BhdHRlcm4odHJ1ZSkgCisgICAgICAgICAgICArICIgd2l0aCAiICsgVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBsZWZ0T3ZlclNldCA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFNldCk7CisgICAgICAgIFVuaWNvZGVTZXQgcHJpdmF0ZVVzZSA9IG5ldyBVbmljb2RlU2V0KCJbOnByaXZhdGUgdXNlOl0iKTsKKyAgICAgICAgICAgIAorICAgICAgICBNYXAgbWFwID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0U2V0UGx1c0FueXdheXMgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRTZXQpOworICAgICAgICB0YXJnZXRTZXRQbHVzQW55d2F5cy5hZGRBbGwob2tBbnl3YXkpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXRQbHVzQW55d2F5cyA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZVNldCk7CisgICAgICAgIHNvdXJjZVNldFBsdXNBbnl3YXlzLmFkZEFsbChva0FueXdheSk7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzb3VyY2VTZXQpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGludCBqID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgIC8qCisgICAgICAgIGludCBjb3VudCA9IHNvdXJjZVNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGVuZCA9IHNvdXJjZVNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBzb3VyY2VTZXQuZ2V0UmFuZ2VTdGFydChpKTsgaiA8PSBlbmQ7ICsraikgeworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgIC8vIFN0cmluZyBmbGFnID0gIiI7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNzID0gVVRGMTYudmFsdWVPZihqKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHMgPSB0LnRyYW5zbGl0ZXJhdGUoc3MpOworICAgICAgICAgICAgICAgIGNoYXIgZ3JvdXAgPSAwOworICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0U2V0UGx1c0FueXdheXMuY29udGFpbnNBbGwodHMpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludCh0cykgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBsZWZ0T3ZlclNldC5yZW1vdmUoVVRGMTYuY2hhckF0KHRzLDApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ0ID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKHRzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZVNldFBsdXNBbnl3YXlzLmNvbnRhaW5zQWxsKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNzLmVxdWFscyhydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFwcml2YXRlVXNlLmNvbnRhaW5zTm9uZSh0cykgfHwgIXByaXZhdGVVc2UuY29udGFpbnNOb25lKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSAxNjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1hcC5wdXQoZ3JvdXAgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKE5vcm1hbGl6ZXIubm9ybWFsaXplKHNzLCBOb3JtYWxpemVyLk5GS0QpKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwMDAwIiArIHNzLCAKKyAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz0ncyc+IiArIHNzICsgIjxicj48dHQ+IiArIGhleChzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3QnPiIgKyB0cyArICI8YnI+PHR0PiIgKyBoZXgodHMpCisgICAgICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSdyJz4iICsgcnQgKyAiPGJyPjx0dD4iICsgaGV4KHJ0KSArICI8L3R0PjwvdGQ+IiApOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIENoZWNrIER1YWxzCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBpbnQgbWF4RHVhbCA9IDIwMDsKKyAgICAgICAgICAgICAgZHVhbDoKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpMiA9IDA7IGkyIDwgY291bnQ7ICsraTIpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZDIgPSBzb3VyY2VTZXQuZ2V0UmFuZ2VFbmQoaTIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqMiA9IHNvdXJjZVNldC5nZXRSYW5nZVN0YXJ0KGkyKTsgajIgPD0gZW5kOyArK2oyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3MyID0gVVRGMTYudmFsdWVPZihqMik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHMyID0gdC50cmFuc2xpdGVyYXRlKHNzMik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcnQyID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKHRzMik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzczEyID0gc3MgKyBzczI7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHMxMiA9IHQudHJhbnNsaXRlcmF0ZShzcyArIHNzMTIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJ0MTIgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMxMik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHMxMi5lcXVhbHModHMgKyB0czIpICYmIHJ0MTIuZXF1YWxzKHJ0ICsgcnQyKSkgY29udGludWU7ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLS1tYXhEdWFsIDwgMCkgYnJlYWsgZHVhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0aW9uIG9mIHdob2xlIGRpZmZlcnMgZnJvbSB0aGF0IG9mIHBhcnRzCisgICAgICAgICAgICAgICAgICAgICAgICBncm91cCA9IDB4MTAwOworICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnB1dChncm91cCArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTm9ybWFsaXplci5ub3JtYWxpemUoc3MxMiwgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwMDAwIiArIHNzMTIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9J3MnPiIgKyBzczEyICsgIjxicj48dHQ+IiArIGhleChzczEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSd0Jz4iICsgdHMxMiArICI8YnI+PHR0PiIgKyBoZXgodHMxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ncic+IiArIHJ0MTIgKyAiPGJyPjx0dD4iICsgaGV4KHJ0MTIpICsgIjwvdHQ+PC90ZD4iICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgbGVmdE92ZXJTZXQucmVtb3ZlKDB4MDEwMCwweDAyRkYpOyAvLyByZW1vdmUgZXh0ZW5kZWQgJiBJUEEKKyAgICAgICAgCisgICAgICAgIC8qaW50IGNvdW50ID0gbGVmdE92ZXJTZXQuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBlbmQgPSBsZWZ0T3ZlclNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBsZWZ0T3ZlclNldC5nZXRSYW5nZVN0YXJ0KGkpOyBqIDw9IGVuZDsgKytqKSB7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgCisgICAgICAgIHVzaS5yZXNldChsZWZ0T3ZlclNldCk7CisgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICBpbnQgaiA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHMgPSBVVEYxNi52YWx1ZU9mKGopOworICAgICAgICAgICAgICAgIC8vIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0cywgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCAwKTsKKyAgICAgICAgICAgICAgICAvLyBpZiAoIWRlY29tcC5lcXVhbHModHMpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnQgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMpOworICAgICAgICAgICAgICAgIC8vIFN0cmluZyBmbGFnID0gIiI7CisgICAgICAgICAgICAgICAgY2hhciBncm91cCA9IDB4ODA7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghc291cmNlU2V0UGx1c0FueXdheXMuY29udGFpbnNBbGwocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghcHJpdmF0ZVVzZS5jb250YWluc05vbmUocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDE2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbWFwLnB1dChncm91cCArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTm9ybWFsaXplci5ub3JtYWxpemUodHMsIE5vcm1hbGl6ZXIuTkZLRCkpICsgdHMsIAorICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSdzJz4tPC90ZD48dGQgY2xhc3M9J3QnPiIgKyB0cyArICI8YnI+PHR0PiIgKyBoZXgodHMpCisgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3InPiIKKyAgICAgICAgICAgICAgICAgICAgKyBydCArICI8YnI+PHR0PiIgKyBoZXgocnQpICsgIjwvdHQ+PC90ZD4iKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbWFrZSBmaWxlIG5hbWUgYW5kIG9wZW4KKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoInRyYW5zbGl0ZXJhdGlvbi9jaGFydF8iICsgaWQucmVwbGFjZSgnLycsICdfJykgKyAiLmh0bWwiKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZi5nZXRDYW5vbmljYWxGaWxlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlbmFtZSksICJVVEYtOCIpKTsKKyAgICAgICAgLy9vdXQucHJpbnQoJ1x1RkVGRicpOyAvLyBCT00KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgZmlsZW5hbWUpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOXCI+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPEhUTUw+PEhFQUQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPE1FVEEgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlPjwvSEVBRD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2h0dHA6Ly93d3cudW5pY29kZS5vcmcvY2hhcnRzL3VjYS9jaGFydHMuY3NzJyB0eXBlPSd0ZXh0L2Nzcyc+Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8Qk9EWT4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDE+VHJhbnNsaXRlcmF0aW9uIFNhbXBsZXMgZm9yICciICsgVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpICsgIic8L2gxPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPlRoaXMgZmlsZSBpbGx1c3RyYXRlcyB0aGUgdHJhbnNsaXRlcmF0aW9ucyBvZiAiICsgVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpICsgIi4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJUaGUgc2FtcGxlcyBhcmUgbWVjaGFuaWNhbGx5IGdlbmVyYXRlZCwgYW5kIG9ubHkgaW5jbHVkZSBzaW5nbGUgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oImZyb20gdGhlIHNvdXJjZSBzZXQuIFRodXMgaXQgd2lsbCA8aT5ub3Q8L2k+IGNvbnRhaW4gZXhhbXBsZXMgd2hlcmUgdGhlIHRyYW5zbGl0ZXJhdGlvbiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oImRlcGVuZHMgb24gdGhlIGNvbnRleHQgYXJvdW5kIHRoZSBjaGFyYWN0ZXIuIEZvciBhIG1vcmUgZGV0YWlsZWQgLS0gYW5kIGludGVyYWN0aXZlIC0tIGV4YW1wbGUsIHNlZSB0aGUiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YSBocmVmPSdodHRwOi8vd3d3LmlibS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi9pY3UvZGVtby90cmFuc2Zvcm0nPlRyYW5zbGl0ZXJhdGlvbiBEZW1vPC9hPjwvcD48aHI+Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHNldCB1cCB0aGUgaGVhZGVycworICAgICAgICAgICAgaW50IGNvbHVtbkNvdW50ID0gMzsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXJCYXNlID0gIjx0aD5Tb3VyY2U8L3RoPjx0aD5UYXJnZXQ8L3RoPjx0aD5SZXR1cm48L3RoPiI7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVycyA9IGhlYWRlckJhc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gY29sdW1uQ291bnQgLSAxOyBpID4gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gY29sdW1uQ291bnQgLSAxKSBoZWFkZXJzICs9ICI8dGg+Jm5ic3A7PC90aD4iOworICAgICAgICAgICAgICAgIGhlYWRlcnMgKz0gaGVhZGVyQmFzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRhYmxlSGVhZGVyID0gIjxwPjx0YWJsZSBib3JkZXI9JzEnPjx0cj4iICsgaGVhZGVycyArICI8L3RyPiI7CisgICAgICAgICAgICBTdHJpbmcgdGFibGVGb290ZXIgPSAiPC90YWJsZT48L3A+IjsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDI+Um91bmQgVHJpcDwvaDI+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbih0YWJsZUhlYWRlcik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gbWFwLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBjaGFyIGxhc3RHcm91cCA9IDA7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IGNvbHVtbiA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBjaGFyIGdyb3VwID0ga2V5LmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXAgIT0gbGFzdEdyb3VwIHx8IGNvdW50KysgPiA1MCkgeworICAgICAgICAgICAgICAgICAgICBsYXN0R3JvdXAgPSBncm91cDsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RyPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbih0YWJsZUZvb3Rlcik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBTdHJpbmcgdGl0bGUgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDB4MTAwKSAhPSAwKSBvdXQucHJpbnRsbigiPGhyPjxoMj5EdWFsczwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKChncm91cCAmIDB4ODApICE9IDApIG91dC5wcmludGxuKCI8aHI+PGgyPkNvbXBsZXRlbmVzczwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ugb3V0LnByaW50bG4oIjxocj48aDI+Um91bmQgVHJpcDwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiAxNikgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5FcnJvcnM6IENvbnRhaW5zIFByaXZhdGUgVXNlIENoYXJhY3RlcnM8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgOCkgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5Qb3NzaWJsZSBFcnJvcnM6IFJldHVybiBub3QgaW4gU291cmNlIFNldDwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiA0KSAhPSAwKSBvdXQucHJpbnRsbigiPGgzPk9uZS1XYXkgTWFwcGluZzogUmV0dXJuIG5vdCBlcXVhbCB0byBTb3VyY2U8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMikgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5FcnJvcnM6IFJldHVybiBub3QgaW4gU291cmNlIFNldDwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiAxKSAhPSAwKSBvdXQucHJpbnRsbigiPGgzPkVycm9yczogVGFyZ2V0IG5vdCBpbiBUYXJnZXQgU2V0PC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVIZWFkZXIpOworICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBtYXAuZ2V0KGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGNvbHVtbisrID09IDApIG91dC5wcmludCgiPHRyPiIpOworICAgICAgICAgICAgICAgIGVsc2Ugb3V0LnByaW50KCI8dGg+Jm5ic3A7PC90aD4iKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbih2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGNvbHVtbiA9PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RyPiIpOworICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb2x1bW4gIT0gMCkgeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RyPiIpOworICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbih0YWJsZUZvb3RlciArICI8L0JPRFk+PC9IVE1MPiIpOworICAgICAgICAgICAgCisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0cy5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IG9rQW55d2F5ID0gbmV3IFVuaWNvZGVTZXQoIlteWzpMZXR0ZXI6XV0iKTsKKyAgICAKKyAgICAvKgorICAgIC8vIHRlc3RzIHdoZXRoZXIgYSBzdHJpbmcgaXMgaW4gYSBzZXQuIEFsc28gY2hlY2tzIGZvciBDb21tb24gYW5kIEluaGVyaXRlZAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0luKFN0cmluZyBzLCBVbmljb2RlU2V0IHNldCkgeworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoaSkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaWYgKHNldC5jb250YWlucyhjcCkpIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKG9rQW55d2F5LmNvbnRhaW5zKGNwKSkgY29udGludWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICovCisgICAgCit9CisgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmZGZmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1RyYW5zbGl0ZXJhdG9yIHRlc3RzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0FycmF5Q29tcGFyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQXJyYXlDb21wYXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA0MzUyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0FycmF5Q29tcGFyYXRvci5qYXZhCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBBcnJheUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbXBhcmF0b3IgQ09NUEFSQUJMRSA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKENvbXBhcmFibGUpbzEpLmNvbXBhcmVUbyhvMik7CisgICAgICAgIH0gCisgICAgfTsKKyAgICBwcml2YXRlIENvbXBhcmF0b3JbXSBjb21wYXJhdG9yczsKKyAgICBwcml2YXRlIGludFtdIHJlb3JkZXJpbmc7CisgICAgCisgICAgcHVibGljIEFycmF5Q29tcGFyYXRvciAoQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzLCBpbnRbXSByZW9yZGVyaW5nKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgdGhpcy5yZW9yZGVyaW5nID0gcmVvcmRlcmluZzsKKyAgICAgICAgaWYgKHRoaXMucmVvcmRlcmluZyA9PSBudWxsKSB7CisgICAgICAgIAl0aGlzLnJlb3JkZXJpbmcgPSBuZXcgaW50W2NvbXBhcmF0b3JzLmxlbmd0aF07CisgICAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHRoaXMucmVvcmRlcmluZy5sZW5ndGg7ICsraSkgeworICAgICAgICAJCXRoaXMucmVvcmRlcmluZ1tpXSA9IGk7CisgICAgICAgIAl9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIAlpZiAodGhpcy5yZW9yZGVyaW5nLmxlbmd0aCAhPSB0aGlzLmNvbXBhcmF0b3JzLmxlbmd0aCkgeworICAgICAgICAJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNvbXBhcmF0b3IgYW5kIHJlb3JkZXJpbmcgbGVuZ3RocyBtdXN0IG1hdGNoIik7CisgICAgICAgIAl9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIEFycmF5Q29tcGFyYXRvciAoQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzKSB7CisgICAgICAgIHRoaXMoY29tcGFyYXRvcnMsbnVsbCk7CisgICAgfQorICAgIAorICAgIC8qIExleGlncmFwaGljIGNvbXBhcmUuIFJldHVybnMgdGhlIGZpcnN0IGRpZmZlcmVuY2UKKyAgICAgKiBAcmV0dXJuIHplcm8gaWYgZXF1YWwuIE90aGVyd2lzZSArLy0gKGkrMSkgCisgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgKiBAc2VlIGphdmEudXRpbC5Db21wYXJhdG9yI2NvbXBhcmUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEwLCBPYmplY3QgYTEpIHsKKyAgICAJT2JqZWN0W10gYXJnMCA9IChPYmplY3RbXSkgYTA7CisgICAgCU9iamVjdFtdIGFyZzEgPSAoT2JqZWN0W10pIGExOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytqKSB7CisgICAgICAgIAlpbnQgaSA9IHJlb3JkZXJpbmdbal07CisgICAgICAgIAlDb21wYXJhdG9yIGNvbXAgPSBjb21wYXJhdG9yc1tpXTsKKyAgICAgICAgCWlmIChjb21wID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXAuY29tcGFyZShhcmcwW2ldLCBhcmcxW2ldKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgIHJldHVybiAtKGkrMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENhdGNoRXhjZXB0aW9uQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3Igb3RoZXI7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ2F0Y2hFeGNlcHRpb25Db21wYXJhdG9yKENvbXBhcmF0b3Igb3RoZXIpIHsKKyAgICAgICAgICAgIHRoaXMub3RoZXIgPSBvdGhlcjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYXJnMCwgT2JqZWN0IGFyZzEpIHRocm93cyBSdW50aW1lRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFyZzA6ICIgKyBhcmcwKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFyZzE6ICIgKyBhcmcxKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JORi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQk5GLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIzZWRhYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JORi5qYXZhCkBAIC0wLDAgKzEsMzI1IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitwdWJsaWMgY2xhc3MgQk5GIHsKKyAgICBwcml2YXRlIE1hcCBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgU2V0IHZhcmlhYmxlcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgcHJpdmF0ZSBQaWNrIHBpY2sgPSBudWxsOworICAgIHByaXZhdGUgUGljay5UYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICBwcml2YXRlIFRva2VuaXplciB0OworICAgIHByaXZhdGUgUXVvdGVyIHF1b3RlcjsKKyAgICBwcml2YXRlIFJhbmRvbSByYW5kb207CisgICAgCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICByZXR1cm4gdGFyZ2V0Lm5leHQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbCgpIHsKKyAgICAgICAgcmV0dXJuIHBpY2suZ2V0SW50ZXJuYWwoMCwgbmV3IEhhc2hTZXQoKSk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgKyAid2VpZ2h0ID0gaW50ZWdlciAnJSc7IgorICAgICsgInJhbmdlID0gJ3snIGludGVnZXIgKCcsJyBpbnRlZ2VyPyk/ICd9JyB3ZWlnaHQqOyIKKyAgICArICJxdW90ZSA9ICdAJzsiCisgICAgKyAic3RhciA9ICcqJyB3ZWlnaHQqOyIKKyAgICArICJwbHVzID0gJysnIHdlaWdodCo7IgorICAgICsgIm1heWJlID0gJz8nIHdlaWdodD87IgorICAgICsgInF1YW50aWZpZXIgPSByYW5nZSB8IHN0YXIgfCBtYXliZSB8IHBsdXM7IgorICAgICsgImNvcmUgPSBzdHJpbmcgfCB1bmljb2RlU2V0IHwgJygnIGFsdGVybmF0aW9uICcpJzsiCisgICAgKyAic2VxdWVuY2UgPSAoY29yZSBxdWFudGlmaWVyKikrOyIKKyAgICArICJhbHRlcm5hdGlvbiA9IHNlcXVlbmNlICh3ZWlnaHQ/ICgnfCcgc2VxdWVuY2Ugd2VpZ2h0PykrKT87IgorICAgICsgInJ1bGUgPSBzdHJpbmcgJz0nIGFsdGVybmF0aW9uOyI7IAorICAgIAorICAgIAorICAgICogICAgICBNYXRjaCAwIG9yIG1vcmUgdGltZXMKKyAgICArICAgICAgTWF0Y2ggMSBvciBtb3JlIHRpbWVzCisgICAgPyAgICAgIE1hdGNoIDEgb3IgMCB0aW1lcworICAgIHtufSAgICBNYXRjaCBleGFjdGx5IG4gdGltZXMKKyAgICB7bix9ICAgTWF0Y2ggYXQgbGVhc3QgbiB0aW1lcworICAgIHtuLG19ICBNYXRjaCBhdCBsZWFzdCBuIGJ1dCBub3QgbW9yZSB0aGFuIG0gdGltZXMgIAorIAorIAorCisgICAgKi8KKyAgICAKKyAgICBwdWJsaWMgQk5GKFJhbmRvbSByYW5kb20sIFF1b3RlciBxdW90ZXIpIHsKKyAgICAgICAgdGhpcy5yYW5kb20gPSByYW5kb207CisgICAgICAgIHRoaXMucXVvdGVyID0gcXVvdGVyOworICAgICAgICB0ID0gbmV3IFRva2VuaXplcigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQk5GIGFkZFJ1bGVzKFN0cmluZyBydWxlcykgeworICAgICAgICB0LnNldFNvdXJjZShydWxlcyk7ICAgICAgICAKKyAgICAgICAgd2hpbGUgKGFkZFJ1bGUoKSkgeworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisgICAgCisgICAgcHVibGljIEJORiBjb21wbGV0ZSgpIHsKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgcnVsZXMgbWF0Y2ggdGhlIHZhcmlhYmxlcywgZXhjZXB0IGZvciAkcm9vdCBpbiBydWxlcworICAgICAgICBTZXQgcnVsZVNldCA9IG1hcC5rZXlTZXQoKTsKKyAgICAgICAgLy8gYWRkIGFsc28gCisgICAgICAgIHZhcmlhYmxlcy5hZGQoIiRyb290Iik7CisgICAgICAgIHZhcmlhYmxlcy5hZGRBbGwodC5nZXRMb29rZWRVcEl0ZW1zKCkpOworICAgICAgICBpZiAoIXJ1bGVTZXQuZXF1YWxzKHZhcmlhYmxlcykpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSBzaG93RGlmZih2YXJpYWJsZXMsIHJ1bGVTZXQpOworICAgICAgICAgICAgaWYgKG1zZy5sZW5ndGgoKSAhPSAwKSBtc2cgPSAiRXJyb3I6IE1pc3NpbmcgZGVmaW5pdGlvbnMgZm9yOiAiICsgbXNnOworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzaG93RGlmZihydWxlU2V0LCB2YXJpYWJsZXMpOworICAgICAgICAgICAgaWYgKHRlbXAubGVuZ3RoKCkgIT0gMCkgdGVtcCA9ICJXYXJuaW5nOiBEZWZpbmVkIGJ1dCBub3QgdXNlZDogIiArIHRlbXA7CisgICAgICAgICAgICBpZiAobXNnLmxlbmd0aCgpID09IDApIG1zZyA9IHRlbXA7CisgICAgICAgICAgICBlbHNlIGlmICh0ZW1wLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBtc2cgPSBtc2cgKyAiOyAiICsgdGVtcDsgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJyb3IobXNnKTsgICAgICAgICAgIAorICAgICAgICB9IAorICAgICAgICAKKyAgICAgICAgaWYgKCFydWxlU2V0LmVxdWFscyh2YXJpYWJsZXMpKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gc2hvd0RpZmYodmFyaWFibGVzLCBydWxlU2V0KTsKKyAgICAgICAgICAgIGlmIChtc2cubGVuZ3RoKCkgIT0gMCkgbXNnID0gIk1pc3NpbmcgZGVmaW5pdGlvbnMgZm9yOiAiICsgbXNnOworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzaG93RGlmZihydWxlU2V0LCB2YXJpYWJsZXMpOworICAgICAgICAgICAgaWYgKHRlbXAubGVuZ3RoKCkgIT0gMCkgdGVtcCA9ICJEZWZpbmVkIGJ1dCBub3QgdXNlZDogIiArIHRlbXA7CisgICAgICAgICAgICBpZiAobXNnLmxlbmd0aCgpID09IDApIG1zZyA9IHRlbXA7CisgICAgICAgICAgICBlbHNlIGlmICh0ZW1wLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBtc2cgPSBtc2cgKyAiOyAiICsgdGVtcDsgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJyb3IobXNnKTsgICAgICAgICAgIAorICAgICAgICB9IAorICAgICAgICAKKyAgICAgICAgLy8gcmVwbGFjZSB2YXJpYWJsZXMgYnkgZGVmaW5pdGlvbnMKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBydWxlU2V0Lml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICBQaWNrIGV4cHJlc3Npb24gPSAoUGljaykgbWFwLmdldChrZXkpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gcnVsZVNldC5pdGVyYXRvcigpOyAgCisgICAgICAgICAgICBpZiAoZmFsc2UgJiYga2V5LmVxdWFscygiJGNybGYiKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGVidWciKSA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXkyID0gaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5LmVxdWFscyhrZXkyKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgUGljayBleHByZXNzaW9uMiA9IChQaWNrKSBtYXAuZ2V0KGtleTIpOworICAgICAgICAgICAgICAgIGV4cHJlc3Npb24yLnJlcGxhY2Uoa2V5LCBleHByZXNzaW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwaWNrID0gKFBpY2spIG1hcC5nZXQoIiRyb290Iik7CisgICAgICAgIHRhcmdldCA9IFBpY2suVGFyZ2V0Lm1ha2UocGljaywgcmFuZG9tLCBxdW90ZXIpOworICAgICAgICAvLyBUT0RPIHJlbW92ZSB0ZW1wIGNvbGxlY3Rpb25zCisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgc2hvd0RpZmYoU2V0IGEsIFNldCBiKSB7CisgICAgICAgIFNldCB0ZW1wID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgdGVtcC5hZGRBbGwoYSk7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKGIpOworICAgICAgICBpZiAodGVtcC5zaXplKCkgPT0gMCkgcmV0dXJuICIiOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBJdGVyYXRvciBpdCA9IHRlbXAuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSAhPSAwKSBidWZmZXIuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGVycm9yKFN0cmluZyBtc2cpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihtc2cKKyAgICAgICAgKyAiXHJcbiIgKyB0LnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gYWRkUnVsZSgpIHsKKyAgICAgICAgaW50IHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVG9rZW5pemVyLkRPTkUpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHR5cGUgIT0gVG9rZW5pemVyLlNUUklORykgZXJyb3IoIm1pc3Npbmcgd2VpZ2h0Iik7CisgICAgICAgIFN0cmluZyBzID0gdC5nZXRTdHJpbmcoKTsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMCB8fCBzLmNoYXJBdCgwKSAhPSAnJCcpIGVycm9yKCJtaXNzaW5nICQgaW4gdmFyaWFibGUiKTsKKyAgICAgICAgaWYgKHQubmV4dCgpICE9ICc9JykgZXJyb3IoIm1pc3NpbmcgPSIpOworICAgICAgICBpbnQgc3RhcnRCb2R5ID0gdC5pbmRleDsKKyAgICAgICAgUGljayBydWxlID0gZ2V0QWx0ZXJuYXRpb24oKTsKKyAgICAgICAgaWYgKHJ1bGUgPT0gbnVsbCkgZXJyb3IoIm1pc3NpbmcgZXhwcmVzc2lvbiIpOworICAgICAgICB0LmFkZFN5bWJvbChzLCB0LmdldFNvdXJjZSgpLCBzdGFydEJvZHksIHQuaW5kZXgpOworICAgICAgICBpZiAodC5uZXh0KCkgIT0gJzsnKSBlcnJvcigibWlzc2luZyA7Iik7ICAgICAgIAorICAgICAgICByZXR1cm4gYWRkUGljayhzLCBydWxlKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhZGRQaWNrKFN0cmluZyBzLCBQaWNrIHJ1bGUpIHsKKyAgICAgICAgT2JqZWN0IHRlbXAgPSBtYXAuZ2V0KHMpOworICAgICAgICBpZiAodGVtcCAhPSBudWxsKSBlcnJvcigiZHVwbGljYXRlIHZhcmlhYmxlIik7CisgICAgICAgIGlmIChydWxlLm5hbWUgPT0gbnVsbCkgcnVsZS5uYW1lKHMpOworICAgICAgICBtYXAucHV0KHMsIHJ1bGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEJORiBhZGRTZXQoU3RyaW5nIHZhcmlhYmxlLCBVbmljb2RlU2V0IHNldCkgeworICAgICAgICBpZiAoc2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBib2R5ID0gc2V0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB0LmFkZFN5bWJvbCh2YXJpYWJsZSwgYm9keSwgMCwgYm9keS5sZW5ndGgoKSk7ICAgICAgICAKKyAgICAgICAgICAgIGFkZFBpY2sodmFyaWFibGUsIFBpY2suY29kZVBvaW50KHNldCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBpbnQgbWF4UmVwZWF0ID0gOTk7CisgICAgCisgICAgUGljayBxdWFsaWZ5KFBpY2sgaXRlbSkgeworICAgICAgICBpbnRbXSB3ZWlnaHRzOworICAgICAgICBpbnQgdHlwZSA9IHQubmV4dCgpOworICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICAgICAgY2FzZSAnQCc6IAorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGljay5RdW90ZShpdGVtKTsKKyAgICAgICAgICAgIGNhc2UgJ34nOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBpY2suTW9ycGgoaXRlbSk7CisgICAgICAgICAgICBjYXNlICc/JzogCisgICAgICAgICAgICAgICAgaW50IHdlaWdodCA9IGdldFdlaWdodCgpOworICAgICAgICAgICAgICAgIGlmICh3ZWlnaHQgPT0gTk9fV0VJR0hUKSB3ZWlnaHQgPSA1MDsKKyAgICAgICAgICAgICAgICB3ZWlnaHRzID0gbmV3IGludFtdIHsxMDAtd2VpZ2h0LCB3ZWlnaHR9OworICAgICAgICAgICAgICAgIHJldHVybiBQaWNrLnJlcGVhdCgwLCAxLCB3ZWlnaHRzLCBpdGVtKTsKKyAgICAgICAgICAgIGNhc2UgJyonOiAKKyAgICAgICAgICAgICAgICB3ZWlnaHRzID0gZ2V0V2VpZ2h0cygpOworICAgICAgICAgICAgICAgIHJldHVybiBQaWNrLnJlcGVhdCgxLCBtYXhSZXBlYXQsIHdlaWdodHMsIGl0ZW0pOworICAgICAgICAgICAgY2FzZSAnKyc6IAorICAgICAgICAgICAgICAgIHdlaWdodHMgPSBnZXRXZWlnaHRzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBpY2sucmVwZWF0KDEsIG1heFJlcGVhdCwgd2VpZ2h0cywgaXRlbSk7CisgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICBpZiAodC5uZXh0KCkgIT0gVG9rZW5pemVyLk5VTUJFUikgZXJyb3IoIm1pc3NpbmcgbnVtYmVyIik7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gKGludCkgdC5nZXROdW1iZXIoKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgdHlwZSA9IHQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09ICcsJykgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSBtYXhSZXBlYXQ7CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gVG9rZW5pemVyLk5VTUJFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gKGludCl0LmdldE51bWJlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IHQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0eXBlICE9ICd9JykgZXJyb3IoIm1pc3NpbmcgfSIpOworICAgICAgICAgICAgICAgIHdlaWdodHMgPSBnZXRXZWlnaHRzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBpY2sucmVwZWF0KHN0YXJ0LCBlbmQsIHdlaWdodHMsIGl0ZW0pOworICAgICAgICB9CisgICAgICAgIHQuYmFja3VwKCk7CisgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAKKyAgICBQaWNrIGdldENvcmUoKSB7CisgICAgICAgIGludCB0b2tlbiA9IHQubmV4dCgpOworICAgICAgICBpZiAodG9rZW4gPT0gVG9rZW5pemVyLlNUUklORykgeworICAgICAgICAgICAgU3RyaW5nIHMgPSB0LmdldFN0cmluZygpOworICAgICAgICAgICAgaWYgKHMuY2hhckF0KDApID09ICckJykgdmFyaWFibGVzLmFkZChzKTsKKyAgICAgICAgICAgIHJldHVybiBQaWNrLnN0cmluZyhzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW4gPT0gVG9rZW5pemVyLlVOSUNPREVTRVQpIHsKKyAgICAgICAgICAgIHJldHVybiBQaWNrLmNvZGVQb2ludCh0LmdldFVuaWNvZGVTZXQoKSk7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuICE9ICcoJykgeworICAgICAgICAgICAgdC5iYWNrdXAoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFBpY2sgdGVtcCA9IGdldEFsdGVybmF0aW9uKCk7CisgICAgICAgIHRva2VuID0gdC5uZXh0KCk7CisgICAgICAgIGlmICh0b2tlbiAhPSAnKScpIGVycm9yKCJtaXNzaW5nICkiKTsgICAgCisgICAgICAgIHJldHVybiB0ZW1wOyAgICAKKyAgICB9CisgICAgCisgICAgUGljayBnZXRTZXF1ZW5jZSgpIHsKKyAgICAgICAgUGljay5TZXF1ZW5jZSByZXN1bHQgPSBudWxsOworICAgICAgICBQaWNrIGxhc3QgPSBudWxsOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgUGljayBpdGVtID0gZ2V0Q29yZSgpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAobGFzdCAhPSBudWxsKSByZXR1cm4gbGFzdDsKKyAgICAgICAgICAgICAgICBlcnJvcigibWlzc2luZyBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBxdWFsaWZ5IGl0IGFzIG1hbnkgdGltZXMgYXMgcG9zc2libGUKKyAgICAgICAgICAgIFBpY2sgb2xkSXRlbTsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBvbGRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgICAgICBpdGVtID0gcXVhbGlmeShpdGVtKTsKKyAgICAgICAgICAgIH0gd2hpbGUgKGl0ZW0gIT0gb2xkSXRlbSk7CisgICAgICAgICAgICAvLyBhZGQgaXQgaW4KKyAgICAgICAgICAgIGlmIChsYXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsYXN0ID0gaXRlbTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBQaWNrLm1ha2VTZXF1ZW5jZSgpLmFuZDIobGFzdCk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFuZDIoaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gZm9yIHNpbXBsaWNpdHksIHdlIGp1c3QgdXNlIHJlY3Vyc2l2ZSBkZXNjZW50CisgICAgUGljayBnZXRBbHRlcm5hdGlvbigpIHsKKyAgICAgICAgUGljay5BbHRlcm5hdGlvbiByZXN1bHQgPSBudWxsOworICAgICAgICBQaWNrIGxhc3QgPSBudWxsOworICAgICAgICBpbnQgbGFzdFdlaWdodCA9IE5PX1dFSUdIVDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFBpY2sgdGVtcCA9IGdldFNlcXVlbmNlKCk7CisgICAgICAgICAgICBpZiAodGVtcCA9PSBudWxsKSBlcnJvcigiZW1wdHkgYWx0ZXJuYXRpb24iKTsKKyAgICAgICAgICAgIGludCB3ZWlnaHQgPSBnZXRXZWlnaHQoKTsKKyAgICAgICAgICAgIGlmICh3ZWlnaHQgPT0gTk9fV0VJR0hUKSB3ZWlnaHQgPSAxOworICAgICAgICAgICAgaWYgKGxhc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxhc3QgPSB0ZW1wOworICAgICAgICAgICAgICAgIGxhc3RXZWlnaHQgPSB3ZWlnaHQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gUGljay5tYWtlQWx0ZXJuYXRpb24oKS5vcjIobGFzdFdlaWdodCwgbGFzdCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lm9yMih3ZWlnaHQsIHRlbXApOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHRva2VuID0gdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAodG9rZW4gIT0gJ3wnKSB7CisgICAgICAgICAgICAgICAgdC5iYWNrdXAoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT0gbnVsbCkgcmV0dXJuIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9fV0VJR0hUID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgCisgICAgaW50IGdldFdlaWdodCgpIHsgICAgICAgCisgICAgICAgIGludCB3ZWlnaHQ7CisgICAgICAgIGludCB0b2tlbiA9IHQubmV4dCgpOworICAgICAgICBpZiAodG9rZW4gIT0gVG9rZW5pemVyLk5VTUJFUikgeworICAgICAgICAgICAgdC5iYWNrdXAoKTsKKyAgICAgICAgICAgIHJldHVybiBOT19XRUlHSFQ7CisgICAgICAgIH0KKyAgICAgICAgd2VpZ2h0ID0gKGludCl0LmdldE51bWJlcigpOworICAgICAgICB0b2tlbiA9IHQubmV4dCgpOworICAgICAgICBpZiAodG9rZW4gIT0gJyUnKSBlcnJvcigibWlzc2luZyAlIik7CisgICAgICAgIHJldHVybiB3ZWlnaHQ7CisgICAgfQorICAgIAorICAgIGludFtdIGdldFdlaWdodHMoKSB7CisgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHdlaWdodCA9IGdldFdlaWdodCgpOworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBOT19XRUlHSFQpIGJyZWFrOworICAgICAgICAgICAgbGlzdC5hZGQobmV3IEludGVnZXIod2VpZ2h0KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID09IDApIHJldHVybiBudWxsOworICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W2xpc3Quc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSAoKEludGVnZXIpbGlzdC5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQmFnRm9ybWF0dGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CYWdGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmVmOThmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQmFnRm9ybWF0dGVyLmphdmEKQEAgLTAsMCArMSwxMTA3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitwdWJsaWMgY2xhc3MgQmFnRm9ybWF0dGVyIHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XX0ZJTEVTOworICAgIHN0YXRpYyB7CisJYm9vbGVhbiBzaG93RmlsZXMgPSBmYWxzZTsKKwl0cnkgeworCSAgICBzaG93RmlsZXMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIlNIT1dfRklMRVMiKSAhPSBudWxsOworCX0KKwljYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworCX0KKwlTSE9XX0ZJTEVTID0gc2hvd0ZpbGVzOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUHJpbnRXcml0ZXIgQ09OU09MRSA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0LHRydWUpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgUHJpbnRXcml0ZXIgbG9nID0gQ09OU09MRTsKKworICAgIHByaXZhdGUgYm9vbGVhbiBhYmJyZXZpYXRlZCA9IGZhbHNlOworICAgIHByaXZhdGUgU3RyaW5nIHNlcGFyYXRvciA9ICIsIjsKKyAgICBwcml2YXRlIFN0cmluZyBwcmVmaXggPSAiWyI7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3VmZml4ID0gIl0iOworICAgIHByaXZhdGUgVW5pY29kZVByb3BlcnR5LkZhY3Rvcnkgc291cmNlOworICAgIHByaXZhdGUgVW5pY29kZUxhYmVsIG5hbWVTb3VyY2U7CisgICAgcHJpdmF0ZSBVbmljb2RlTGFiZWwgbGFiZWxTb3VyY2U7CisgICAgcHJpdmF0ZSBVbmljb2RlTGFiZWwgcmFuZ2VCcmVha1NvdXJjZTsKKyAgICBwcml2YXRlIFVuaWNvZGVMYWJlbCB2YWx1ZVNvdXJjZTsKKyAgICBwcml2YXRlIFN0cmluZyBwcm9wTmFtZSA9ICIiOworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93Q291bnQgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBza2lwTnVsbFZhbHVlcyA9IHRydWU7CisgICAgLy9wcml2YXRlIGJvb2xlYW4gc3VwcHJlc3NSZXNlcnZlZCA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGhleFZhbHVlID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5VTExfVkFMVUUgPSAiX05VTExfVkFMVUVfIjsKKyAgICBwcml2YXRlIGludCBmdWxsVG90YWwgPSAtMTsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvd1RvdGFsID0gdHJ1ZTsKKyAgICBwcml2YXRlIFN0cmluZyBsaW5lU2VwYXJhdG9yID0gIlxyXG4iOworICAgIHByaXZhdGUgVGFiYmVyIHRhYmJlciA9IG5ldyBUYWJiZXIuTW9ub1RhYmJlcigpOworCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gVW5pY29kZVNldHMsIGFuZCBzaG93IHRoZSBkaWZmZXJlbmNlcworICAgICAqIEBwYXJhbSBuYW1lMSBuYW1lIG9mIGZpcnN0IHNldCB0byBiZSBjb21wYXJlZAorICAgICAqIEBwYXJhbSBzZXQxIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSBuYW1lMiBuYW1lIG9mIHNlY29uZCBzZXQgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcGFyYW0gc2V0MiBzZWNvbmQgc2V0CisgICAgICogQHJldHVybiBmb3JtYXR0ZWQgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzaG93U2V0RGlmZmVyZW5jZXMoCisgICAgICAgIFN0cmluZyBuYW1lMSwKKyAgICAgICAgVW5pY29kZVNldCBzZXQxLAorICAgICAgICBTdHJpbmcgbmFtZTIsCisgICAgICAgIFVuaWNvZGVTZXQgc2V0MikgeworCisgICAgICAgIFN0cmluZ1dyaXRlciByZXN1bHQgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgIHNob3dTZXREaWZmZXJlbmNlcyhuZXcgUHJpbnRXcml0ZXIocmVzdWx0KSxuYW1lMSxzZXQxLG5hbWUyLHNldDIpOworICAgICAgICByZXN1bHQuZmx1c2goKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXRCdWZmZXIoKS50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgc2hvd1NldERpZmZlcmVuY2VzKAorICAgICAgICBTdHJpbmcgbmFtZTEsCisgICAgICAgIENvbGxlY3Rpb24gc2V0MSwKKyAgICAgICAgU3RyaW5nIG5hbWUyLAorICAgICAgICBDb2xsZWN0aW9uIHNldDIpIHsKKworICAgICAgICBTdHJpbmdXcml0ZXIgcmVzdWx0ID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICBzaG93U2V0RGlmZmVyZW5jZXMobmV3IFByaW50V3JpdGVyKHJlc3VsdCksIG5hbWUxLCBzZXQxLCBuYW1lMiwgc2V0Mik7CisgICAgICAgIHJlc3VsdC5mbHVzaCgpOworICAgICAgICByZXR1cm4gcmVzdWx0LmdldEJ1ZmZlcigpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2hvd1NldERpZmZlcmVuY2VzKAorICAgICAgICAgICAgUHJpbnRXcml0ZXIgcHcsCisgICAgICAgICAgICBTdHJpbmcgbmFtZTEsCisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDEsCisgICAgICAgICAgICBTdHJpbmcgbmFtZTIsCisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDIpIHsKKyAgICAJc2hvd1NldERpZmZlcmVuY2VzKHB3LCBuYW1lMSwgc2V0MSwgbmFtZTIsIHNldDIsIC0xKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gVW5pY29kZVNldHMsIGFuZCBzaG93IHRoZSBkaWZmZXJlbmNlcworICAgICAqIEBwYXJhbSBuYW1lMSBuYW1lIG9mIGZpcnN0IHNldCB0byBiZSBjb21wYXJlZAorICAgICAqIEBwYXJhbSBzZXQxIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSBuYW1lMiBuYW1lIG9mIHNlY29uZCBzZXQgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcGFyYW0gc2V0MiBzZWNvbmQgc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hvd1NldERpZmZlcmVuY2VzKAorICAgICAgICBQcmludFdyaXRlciBwdywKKyAgICAgICAgU3RyaW5nIG5hbWUxLAorICAgICAgICBVbmljb2RlU2V0IHNldDEsCisgICAgICAgIFN0cmluZyBuYW1lMiwKKyAgICAgICAgVW5pY29kZVNldCBzZXQyLAorCQlpbnQgZmxhZ3MpIAorICAgIHsKKyAgICAgICAgaWYgKHB3ID09IG51bGwpIHB3ID0gQ09OU09MRTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSB7IG5hbWUxLCBuYW1lMiB9OworCisgICAgICAgIFVuaWNvZGVTZXQgdGVtcDsKKyAgICAgICAgCisgICAgICAgIGlmICgoZmxhZ3MmMSkgIT0gMCkgeworICAgICAgICAJdGVtcCA9IG5ldyBVbmljb2RlU2V0KHNldDEpLnJlbW92ZUFsbChzZXQyKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgcHcucHJpbnQoaW5PdXQuZm9ybWF0KG5hbWVzKSk7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKGZsYWdzJjIpICE9IDApIHsKKyAgICAgICAgCXRlbXAgPSBuZXcgVW5pY29kZVNldChzZXQyKS5yZW1vdmVBbGwoc2V0MSk7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHB3LnByaW50KG91dEluLmZvcm1hdChuYW1lcykpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworCSAgICB9CisKKyAgICAgICAgaWYgKChmbGFncyY0KSAhPSAwKSB7CisJICAgICAgICB0ZW1wID0gbmV3IFVuaWNvZGVTZXQoc2V0MikucmV0YWluQWxsKHNldDEpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBwdy5wcmludChpbkluLmZvcm1hdChuYW1lcykpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworICAgICAgICB9CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2hvd1NldERpZmZlcmVuY2VzKAorICAgICAgICBQcmludFdyaXRlciBwdywKKyAgICAgICAgU3RyaW5nIG5hbWUxLAorICAgICAgICBDb2xsZWN0aW9uIHNldDEsCisgICAgICAgIFN0cmluZyBuYW1lMiwKKyAgICAgICAgQ29sbGVjdGlvbiBzZXQyKSB7CisKKyAgICAgICAgaWYgKHB3ID09IG51bGwpIHB3ID0gQ09OU09MRTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSB7IG5hbWUxLCBuYW1lMiB9OworICAgICAgICAvLyBkYW1uJ2QgY29sbGVjdGlvbiBkb2Vzbid0IGhhdmUgYSBjbG9uZSwgc28KKyAgICAgICAgLy8gd2UgZ28gd2l0aCBTZXQsIGV2ZW4gdGhvdWdoIHRoYXQKKyAgICAgICAgLy8gbWF5IG5vdCBwcmVzZXJ2ZSBvcmRlciBhbmQgZHVwbGljYXRlcworICAgICAgICBDb2xsZWN0aW9uIHRlbXAgPSBuZXcgSGFzaFNldChzZXQxKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwoc2V0Mik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbihpbk91dC5mb3JtYXQobmFtZXMpKTsKKyAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKworICAgICAgICB0ZW1wLmNsZWFyKCk7CisgICAgICAgIHRlbXAuYWRkQWxsKHNldDIpOworICAgICAgICB0ZW1wLnJlbW92ZUFsbChzZXQxKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKG91dEluLmZvcm1hdChuYW1lcykpOworICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworCisgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgdGVtcC5hZGRBbGwoc2V0MSk7CisgICAgICAgIHRlbXAucmV0YWluQWxsKHNldDIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oaW5Jbi5mb3JtYXQobmFtZXMpKTsKKyAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbiwgd2l0aCBlYWNoIHNlcGFyYXRlZCBieSB0aGUgc2VwYXJhdG9yLgorICAgICAqIEVhY2ggaXRlbSBtdXN0IG5vdCBiZSBudWxsOyBpdHMgdG9TdHJpbmcoKSBpcyBjYWxsZWQgZm9yIGEgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uCisgICAgICogQHBhcmFtIGMgc291cmNlIGNvbGxlY3Rpb24KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsaXN0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzaG93U2V0TmFtZXMoT2JqZWN0IGMpIHsKKyAgICAgICAgU3RyaW5nV3JpdGVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0cHV0ID0gbmV3IFByaW50V3JpdGVyKGJ1ZmZlcik7CisgICAgICAgIHNob3dTZXROYW1lcyhvdXRwdXQsYyk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbiwgd2l0aCBlYWNoIHNlcGFyYXRlZCBieSB0aGUgc2VwYXJhdG9yLgorICAgICAqIEVhY2ggaXRlbSBtdXN0IG5vdCBiZSBudWxsOyBpdHMgdG9TdHJpbmcoKSBpcyBjYWxsZWQgZm9yIGEgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uCisgICAgICogQHBhcmFtIG91dHB1dCBkZXN0aW5hdGlvbiB0byB3aGljaCB0byB3cml0ZSBuYW1lcworICAgICAqIEBwYXJhbSBjIHNvdXJjZSBjb2xsZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hvd1NldE5hbWVzKFByaW50V3JpdGVyIG91dHB1dCwgT2JqZWN0IGMpIHsKKyAgICAgICAgbWFpblZpc2l0b3IuZG9BdChjLCBvdXRwdXQpOworICAgICAgICBvdXRwdXQuZmx1c2goKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbiwgd2l0aCBlYWNoIHNlcGFyYXRlZCBieSB0aGUgc2VwYXJhdG9yLgorICAgICAqIEVhY2ggaXRlbSBtdXN0IG5vdCBiZSBudWxsOyBpdHMgdG9TdHJpbmcoKSBpcyBjYWxsZWQgZm9yIGEgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uCisgICAgICogQHBhcmFtIGZpbGVuYW1lIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRvIHdyaXRlIG5hbWVzCisgICAgICogQHBhcmFtIGMgc291cmNlIGNvbGxlY3Rpb24KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzaG93U2V0TmFtZXMoU3RyaW5nIGZpbGVuYW1lLCBPYmplY3QgYykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwidXRmLTgiKSk7CisgICAgICAgIHNob3dTZXROYW1lcyhsb2csYyk7CisgICAgICAgIHB3LmNsb3NlKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRBYmJyZXZpYXRlZE5hbWUoCisgICAgICAgIFN0cmluZyBzb3VyY2UsCisgICAgICAgIFN0cmluZyBwYXR0ZXJuLAorICAgICAgICBTdHJpbmcgc3Vic3RpdHV0ZSkgeworCisgICAgICAgIGludCBtYXRjaEVuZCA9IE5hbWVJdGVyYXRvci5maW5kTWF0Y2hpbmdFbmQoc291cmNlLCBwYXR0ZXJuKTsKKyAgICAgICAgaW50IHNkaXYgPSBzb3VyY2UubGVuZ3RoKCkgLSBtYXRjaEVuZDsKKyAgICAgICAgaW50IHBkaXYgPSBwYXR0ZXJuLmxlbmd0aCgpIC0gbWF0Y2hFbmQ7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGFkZE1hdGNoaW5nKAorICAgICAgICAgICAgc291cmNlLnN1YnN0cmluZygwLCBzZGl2KSwKKyAgICAgICAgICAgIHBhdHRlcm4uc3Vic3RyaW5nKDAsIHBkaXYpLAorICAgICAgICAgICAgc3Vic3RpdHV0ZSwKKyAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgIGFkZE1hdGNoaW5nKAorICAgICAgICAgICAgc291cmNlLnN1YnN0cmluZyhzZGl2KSwKKyAgICAgICAgICAgIHBhdHRlcm4uc3Vic3RyaW5nKHBkaXYpLAorICAgICAgICAgICAgc3Vic3RpdHV0ZSwKKyAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBhYnN0cmFjdCBwdWJsaWMgc3RhdGljIGNsYXNzIFJlbGF0aW9uIHsKKyAgICAgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRSZWxhdGlvbihTdHJpbmcgYSwgU3RyaW5nIGIpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBOdWxsUmVsYXRpb24gZXh0ZW5kcyBSZWxhdGlvbiB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVsYXRpb24oU3RyaW5nIGEsIFN0cmluZyBiKSB7IHJldHVybiAiIjsgfQorICAgIH0KKworICAgIHByaXZhdGUgUmVsYXRpb24gciA9IG5ldyBOdWxsUmVsYXRpb24oKTsKKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0UmVsYXRpb24oUmVsYXRpb24gcikgeworICAgICAgICB0aGlzLnIgPSByOworICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgfQorCisgICAgcHVibGljIFJlbGF0aW9uIGdldFJlbGF0aW9uKCkgeworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgICAvKgorICAgICByLmdldFJlbGF0aSBvbihsYXN0LCBzKSArIHF1b3RlKHMpICsgIlx0IyIgKyBVbmljb2RlU2V0Rm9ybWF0dGVyLmdldFJlc29sdmVkTmFtZShzKQorICAgICovCisgICAgLyoKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBOT19OQU1FID0KKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcXHUwMDgwXFx1MDA4MVxcdTAwODRcXHUwMDk5XFxwe0NufVxccHtDb31dIik7CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgSEFTX05BTUUgPSBuZXcgVW5pY29kZVNldChOT19OQU1FKS5jb21wbGVtZW50KCk7CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgTkFNRV9DSEFSQUNURVJTID0KKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVphLXowLTlcXDxcXD5cXC1cXCBdIik7CisKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRTZXRGb3JOYW1lKFN0cmluZyBuYW1lUGF0dGVybikgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIE1hdGNoZXIgbSA9IFBhdHRlcm4uY29tcGlsZShuYW1lUGF0dGVybikubWF0Y2hlcigiIik7CisgICAgICAgIC8vIGNoZWNrIGZvciBuby1uYW1lIGl0ZW1zLCBhbmQgYWRkIGluIGJ1bGsKKyAgICAgICAgbS5yZXNldCgiPG5vIG5hbWU+Iik7CisgICAgICAgIGlmIChtLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgcmVzdWx0LmFkZEFsbChOT19OQU1FKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjaGVjayBhbGwgb3RoZXJzCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKEhBU19OQU1FKTsKKyAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gZ2V0TmFtZSh1c2kuY29kZXBvaW50KTsKKyAgICAgICAgICAgIGlmIChuYW1lID09IG51bGwpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBtLnJlc2V0KG5hbWUpOworICAgICAgICAgICAgaWYgKG0ubWF0Y2hlcygpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh1c2kuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBOb3RlOiBpZiBSZWdleCBoYWQgc29tZSBBUEkgc28gdGhhdCBpZiB3ZSBjb3VsZCB0ZWxsIHRoYXQKKyAgICAgICAgLy8gYW4gaW5pdGlhbCBzdWJzdHJpbmcgY291bGRuJ3QgbWF0Y2gsIGUuZy4gIkNKSyBJREVPR1JBUEgtIgorICAgICAgICAvLyB0aGVuIHdlIGNvdWxkIG9wdGltaXplIGJ5IHNraXBwaW5nIHdob2xlIHN3YXRoZXMgb2YgY2hhcmFjdGVycworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAqLworCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRNZXJnZVJhbmdlcyhib29sZWFuIGluKSB7CisgICAgICAgIG1lcmdlUmFuZ2VzID0gaW47CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFNob3dTZXRBbHNvKGJvb2xlYW4gYikgeworICAgICAgICBzaG93U2V0QWxzbyA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgY29kZVBvaW50KSB7CisgICAgICAgIHJldHVybiBnZXROYW1lKCIiLCBjb2RlUG9pbnQsIGNvZGVQb2ludCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzZXBhcmF0b3IsIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAoZ2V0TmFtZVNvdXJjZSgpID09IG51bGwgfHwgZ2V0TmFtZVNvdXJjZSgpID09IFVuaWNvZGVMYWJlbC5OVUxMKSByZXR1cm4gIiI7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBnZXROYW1lKHN0YXJ0LCBmYWxzZSk7CisgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHJldHVybiBzZXBhcmF0b3IgKyByZXN1bHQ7CisgICAgICAgIFN0cmluZyBlbmRTdHJpbmcgPSBnZXROYW1lKGVuZCwgZmFsc2UpOworICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID09IDAgJiYgZW5kU3RyaW5nLmxlbmd0aCgpID09IDApIHJldHVybiBzZXBhcmF0b3I7CisgICAgICAgIGlmIChhYmJyZXZpYXRlZCkgZW5kU3RyaW5nID0gZ2V0QWJicmV2aWF0ZWROYW1lKGVuZFN0cmluZyxyZXN1bHQsIn4iKTsKKyAgICAgICAgcmV0dXJuIHNlcGFyYXRvciArIHJlc3VsdCArICIuLiIgKyBlbmRTdHJpbmc7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBnZXROYW1lKHMsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE5hbWVMYWJlbCBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBuYW1lUHJvcDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cm9sOworICAgICAgICBVbmljb2RlU2V0IHByaXZhdGVfdXNlOworICAgICAgICBVbmljb2RlU2V0IG5vbmNoYXJhY3RlcjsKKyAgICAgICAgVW5pY29kZVNldCBzdXJyb2dhdGU7CisKKyAgICAgICAgcHVibGljIE5hbWVMYWJlbChVbmljb2RlUHJvcGVydHkuRmFjdG9yeSBzb3VyY2UpIHsKKyAgICAgICAgICAgIG5hbWVQcm9wID0gc291cmNlLmdldFByb3BlcnR5KCJOYW1lIik7CisgICAgICAgICAgICBjb250cm9sID0gc291cmNlLmdldFNldCgiZ2M9Q2MiKTsKKyAgICAgICAgICAgIHByaXZhdGVfdXNlID0gc291cmNlLmdldFNldCgiZ2M9Q28iKTsKKyAgICAgICAgICAgIHN1cnJvZ2F0ZSA9IHNvdXJjZS5nZXRTZXQoImdjPUNzIik7CisgICAgICAgICAgICBub25jaGFyYWN0ZXIgPSBzb3VyY2UuZ2V0U2V0KCJub25jaGFyYWN0ZXJjb2RlcG9pbnQ9dHJ1ZSIpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZVBvaW50LCBib29sZWFuIGlzU2hvcnQpIHsKKyAgICAgICAgICAgIFN0cmluZyBoY3AgPSAhaXNTaG9ydAorICAgICAgICAgICAgICAgID8gIlUrIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiICIKKyAgICAgICAgICAgICAgICA6ICIiOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5hbWVQcm9wLmdldFZhbHVlKGNvZGVQb2ludCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpCisgICAgICAgICAgICAgICAgcmV0dXJuIGhjcCArIHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjb250cm9sLmNvbnRhaW5zKGNvZGVQb2ludCkpIHJldHVybiAiPGNvbnRyb2wtIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiPiI7CisgICAgICAgICAgICBpZiAocHJpdmF0ZV91c2UuY29udGFpbnMoY29kZVBvaW50KSkgcmV0dXJuICI8cHJpdmF0ZS11c2UtIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiPiI7CisgICAgICAgICAgICBpZiAobm9uY2hhcmFjdGVyLmNvbnRhaW5zKGNvZGVQb2ludCkpIHJldHVybiAiPG5vbmNoYXJhY3Rlci0iICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICI+IjsKKyAgICAgICAgICAgIGlmIChzdXJyb2dhdGUuY29udGFpbnMoY29kZVBvaW50KSkgcmV0dXJuICI8c3Vycm9nYXRlLSIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIj4iOworICAgICAgICAgICAgLy9pZiAoc3VwcHJlc3NSZXNlcnZlZCkgcmV0dXJuICIiOworICAgICAgICAgICAgcmV0dXJuIGhjcCArICI8cmVzZXJ2ZWQtIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiPiI7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIHJlZmFjdG9yZWQKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IGNvZGVQb2ludCwgYm9vbGVhbiB3aXRoQ29kZVBvaW50KSB7CisgICAgCVN0cmluZyByZXN1bHQgPSBnZXROYW1lU291cmNlKCkuZ2V0VmFsdWUoY29kZVBvaW50LCAhd2l0aENvZGVQb2ludCk7CisgICAgICAgIHJldHVybiBmaXhOYW1lID09IG51bGwgPyByZXN1bHQgOiBmaXhOYW1lLnRyYW5zbGl0ZXJhdGUocmVzdWx0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHMsIGJvb2xlYW4gd2l0aENvZGVQb2ludCkgeworICAgICAgIAlTdHJpbmcgcmVzdWx0ID0gZ2V0TmFtZVNvdXJjZSgpLmdldFZhbHVlKHMsIHNlcGFyYXRvciwgIXdpdGhDb2RlUG9pbnQpOworICAgICAgICByZXR1cm4gZml4TmFtZSA9PSBudWxsID8gcmVzdWx0IDogZml4TmFtZS50cmFuc2xpdGVyYXRlKHJlc3VsdCk7CisgICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBoZXgocyxzZXBhcmF0b3IpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaGV4KFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIHJldHVybiBVbmljb2RlTGFiZWwuSEVYLmdldFZhbHVlKHMsIHNlcGFyYXRvciwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBoZXgoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIFN0cmluZyBzID0gVXRpbGl0eS5oZXgoc3RhcnQsNCk7CisgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHJldHVybiBzOworICAgICAgICByZXR1cm4gcyArICIuLiIgKyBVdGlsaXR5LmhleChlbmQsNCk7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHNvdXJjZSkgeworICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IGdldFVuaWNvZGVQcm9wZXJ0eUZhY3RvcnkoKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgc291cmNlID0gSUNVUHJvcGVydHlGYWN0b3J5Lm1ha2UoKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyICgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIChVbmljb2RlUHJvcGVydHkuRmFjdG9yeSBzb3VyY2UpIHsKKyAgICAgICAgc2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeShzb3VyY2UpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgam9pbihPYmplY3QgbykgeworICAgICAgICByZXR1cm4gbGFiZWxWaXNpdG9yLmpvaW4obyk7CisgICAgfQorCisgICAgLy8gPT09PT0gUFJJVkFURVMgPT09PT0KKworICAgIHByaXZhdGUgSm9pbiBsYWJlbFZpc2l0b3IgPSBuZXcgSm9pbigpOworCisgICAgcHJpdmF0ZSBib29sZWFuIG1lcmdlUmFuZ2VzID0gdHJ1ZTsKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIHNob3dMaXRlcmFsID0gbnVsbDsKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIGZpeE5hbWUgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93U2V0QWxzbyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBSYW5nZUZpbmRlciByZiA9IG5ldyBSYW5nZUZpbmRlcigpOworCisgICAgcHJpdmF0ZSBNZXNzYWdlRm9ybWF0IGluT3V0ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIkluIHswfSwgYnV0IG5vdCBpbiB7MX06Iik7CisgICAgcHJpdmF0ZSBNZXNzYWdlRm9ybWF0IG91dEluID0gbmV3IE1lc3NhZ2VGb3JtYXQoIk5vdCBpbiB7MH0sIGJ1dCBpbiB7MX06Iik7CisgICAgcHJpdmF0ZSBNZXNzYWdlRm9ybWF0IGluSW4gPSBuZXcgTWVzc2FnZUZvcm1hdCgiSW4gYm90aCB7MH0sIGFuZCBpbiB7MX06Iik7CisKKyAgICBwcml2YXRlIE15VmlzaXRvciBtYWluVmlzaXRvciA9IG5ldyBNeVZpc2l0b3IoKTsKKworICAgIC8qCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0TGFiZWxzKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBTZXQgbmFtZXMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBmb3IgKGludCBjcCA9IHN0YXJ0OyBjcCA8PSBlbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgIG5hbWVzLmFkZChnZXRMYWJlbChjcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsYWJlbFZpc2l0b3Iuam9pbihuYW1lcyk7CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHZvaWQgYWRkTWF0Y2hpbmcoCisgICAgICAgIFN0cmluZyBzb3VyY2UsCisgICAgICAgIFN0cmluZyBwYXR0ZXJuLAorICAgICAgICBTdHJpbmcgc3Vic3RpdHV0ZSwKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCkgeworICAgICAgICBOYW1lSXRlcmF0b3IgbjEgPSBuZXcgTmFtZUl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIE5hbWVJdGVyYXRvciBuMiA9IG5ldyBOYW1lSXRlcmF0b3IocGF0dGVybik7CisgICAgICAgIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgU3RyaW5nIHMxID0gbjEubmV4dCgpOworICAgICAgICAgICAgaWYgKHMxID09IG51bGwpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBTdHJpbmcgczIgPSBuMi5uZXh0KCk7CisgICAgICAgICAgICBpZiAoIWZpcnN0KQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN1YnN0aXR1dGUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoczEpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IG5mID0KKyAgICAgICAgTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgc3RhdGljIHsKKyAgICAgICAgbmYuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIE15VmlzaXRvciBleHRlbmRzIFZpc2l0b3IgeworICAgICAgICBwcml2YXRlIFByaW50V3JpdGVyIG91dHB1dDsKKyAgICAgICAgU3RyaW5nIGNvbW1lbnRTZXBhcmF0b3I7CisgICAgICAgIGludCBjb3VudGVyOworICAgICAgICBpbnQgdmFsdWVTaXplOworICAgICAgICBpbnQgbGFiZWxTaXplOworCisgICAgICAgIHB1YmxpYyB2b2lkIGRvQXQoT2JqZWN0IGMsIFByaW50V3JpdGVyIG91dHB1dCkgeworICAgICAgICAgICAgdGhpcy5vdXRwdXQgPSBvdXRwdXQ7CisgICAgICAgICAgICBjb3VudGVyID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFiYmVyLmNsZWFyKCk7CisgICAgICAgICAgICB0YWJiZXIuYWRkKG1lcmdlUmFuZ2VzID8gMTQgOiA2LFRhYmJlci5MRUZUKTsKKworICAgICAgICAgICAgaWYgKHByb3BOYW1lLmxlbmd0aCgpID4gMCkgdGFiYmVyLmFkZChwcm9wTmFtZS5sZW5ndGgoKSArIDIsVGFiYmVyLkxFRlQpOworCisgICAgICAgICAgICB2YWx1ZVNpemUgPSBnZXRWYWx1ZVNvdXJjZSgpLmdldE1heFdpZHRoKHNob3J0VmFsdWUpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlZhbHVlU2l6ZTogIiArIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gMCkgdGFiYmVyLmFkZCh2YWx1ZVNpemUgKyAyLFRhYmJlci5MRUZUKTsgLy8gdmFsdWUKKworICAgICAgICAgICAgdGFiYmVyLmFkZCgzLFRhYmJlci5MRUZUKTsgLy8gY29tbWVudCBjaGFyYWN0ZXIKKworICAgICAgICAgICAgbGFiZWxTaXplID0gZ2V0TGFiZWxTb3VyY2UodHJ1ZSkuZ2V0TWF4V2lkdGgoc2hvcnRMYWJlbCk7CisgICAgICAgICAgICBpZiAobGFiZWxTaXplID4gMCkgdGFiYmVyLmFkZChsYWJlbFNpemUgKyAxLFRhYmJlci5MRUZUKTsgLy8gdmFsdWUKKworICAgICAgICAgICAgaWYgKG1lcmdlUmFuZ2VzICYmIHNob3dDb3VudCkgdGFiYmVyLmFkZCg1LFRhYmJlci5SSUdIVCk7CisKKyAgICAgICAgICAgIGlmIChzaG93TGl0ZXJhbCAhPSBudWxsKSB0YWJiZXIuYWRkKDQsVGFiYmVyLkxFRlQpOworICAgICAgICAgICAgLy9teVRhYmJlci5hZGQoNyxUYWJiZXIuTEVGVCk7CisKKyAgICAgICAgICAgIGNvbW1lbnRTZXBhcmF0b3IgPSAoc2hvd0NvdW50IHx8IHNob3dMaXRlcmFsICE9IG51bGwKKyAgICAgICAgICAgICAgfHwgZ2V0TGFiZWxTb3VyY2UodHJ1ZSkgIT0gVW5pY29kZUxhYmVsLk5VTEwKKyAgICAgICAgICAgICAgfHwgZ2V0TmFtZVNvdXJjZSgpICE9IFVuaWNvZGVMYWJlbC5OVUxMKQorICAgICAgICAgICAgPyAiXHQgIyIgOiAiIjsKKworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRhYmJlcjogIiArIHRhYmJlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUYWJiZXI6ICIgKyB0YWJiZXIucHJvY2VzcygiYVx0Ylx0ZFx0ZFx0Zlx0Z1x0aCIpKTsKKyAgICAgICAgICAgIGRvQXQoYyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGZvcm1hdChPYmplY3QgbykgeworICAgICAgICAgICAgU3RyaW5nV3JpdGVyIHN3ID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICAgICAgZG9BdChvKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc3cuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHB3LmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9CZWZvcmUoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChzaG93U2V0QWxzbyAmJiBjb250YWluZXIgaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjIiArIGNvbnRhaW5lciArICBsaW5lU2VwYXJhdG9yICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pIHsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChmdWxsVG90YWwgIT0gLTEgJiYgZnVsbFRvdGFsICE9IGNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvd1RvdGFsKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dC5wcmludChsaW5lU2VwYXJhdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjIFRoZSBhYm92ZSBwcm9wZXJ0eSB2YWx1ZSBhcHBsaWVzIHRvICIgKyBuZi5mb3JtYXQoZnVsbFRvdGFsLWNvdW50ZXIpICsgIiBjb2RlIHBvaW50cyBub3QgbGlzdGVkIGhlcmUuIiArIGxpbmVTZXBhcmF0b3IpOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiMgVG90YWwgY29kZSBwb2ludHM6ICIgKyBuZi5mb3JtYXQoZnVsbFRvdGFsKSArIGxpbmVTZXBhcmF0b3IpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmdWxsVG90YWwgPSAtMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvd1RvdGFsKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KGxpbmVTZXBhcmF0b3IpOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiIyBUb3RhbCBjb2RlIHBvaW50czogIiArIG5mLmZvcm1hdChjb3VudGVyKSArIGxpbmVTZXBhcmF0b3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9TaW1wbGVBdChPYmplY3QgbykgeworICAgICAgICAgICAgaWYgKG8gaW5zdGFuY2VvZiBNYXAuRW50cnkpIHsKKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgb28gPSAoTWFwLkVudHJ5KW87CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleSA9IG9vLmdldEtleSgpOworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG9vLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUobywga2V5KTsKKyAgICAgICAgICAgICAgICBkb0F0KGtleSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCItPiIpOworICAgICAgICAgICAgICAgIGRvQXQodmFsdWUpOworICAgICAgICAgICAgICAgIGRvQWZ0ZXIobywgdmFsdWUpOworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIFZpc2l0b3IuQ29kZVBvaW50UmFuZ2UpIHsKKyAgICAgICAgICAgICAgICBkb0F0KChWaXNpdG9yLkNvZGVQb2ludFJhbmdlKSBvKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRoaW5nID0gby50b1N0cmluZygpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlU291cmNlKCkgPT0gVW5pY29kZUxhYmVsLk5VTEwgPyAiIiA6IGdldFZhbHVlU291cmNlKCkuZ2V0VmFsdWUodGhpbmcsICIsIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpICE9IDApIHZhbHVlID0gIlx0OyAiICsgdmFsdWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gZ2V0TGFiZWxTb3VyY2UodHJ1ZSkgPT0gVW5pY29kZUxhYmVsLk5VTEwgPyAiIiA6IGdldExhYmVsU291cmNlKHRydWUpLmdldFZhbHVlKHRoaW5nLCAiLCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChsYWJlbC5sZW5ndGgoKSAhPSAwKSBsYWJlbCA9ICIgIiArIGxhYmVsOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgKKyAgICAgICAgICAgICAgICAgICAgdGFiYmVyLnByb2Nlc3MoCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgodGhpbmcpCisJCQkJCQkJKyB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY29tbWVudFNlcGFyYXRvcgorCQkJCQkJCSsgbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGluc2VydExpdGVyYWwodGhpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBnZXROYW1lKHRoaW5nKSkKKyAgICAgICAgICAgICAgICAgICAgKyAgbGluZVNlcGFyYXRvciApOworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQXQoVmlzaXRvci5Db2RlUG9pbnRSYW5nZSB1c2kpIHsKKyAgICAgICAgICAgIGlmICghbWVyZ2VSYW5nZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjcCA9IHVzaS5jb2RlcG9pbnQ7IGNwIDw9IHVzaS5jb2RlcG9pbnRFbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmUoY3AsIGNwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJmLnJlc2V0KHVzaS5jb2RlcG9pbnQsIHVzaS5jb2RlcG9pbnRFbmQgKyAxKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocmYubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3dMaW5lKHJmLnN0YXJ0LCByZi5saW1pdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzaG93TGluZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGdldExhYmVsU291cmNlKHRydWUpLmdldFZhbHVlKHN0YXJ0LCBzaG9ydExhYmVsKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKHN0YXJ0LCBzaG9ydFZhbHVlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBOVUxMX1ZBTFVFKSByZXR1cm47CisKKyAgICAgICAgICAgIGNvdW50ZXIgKz0gZW5kIC0gc3RhcnQgKyAxOworICAgICAgICAgICAgU3RyaW5nIHBuID0gcHJvcE5hbWU7CisgICAgICAgICAgICBpZiAocG4ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHBuID0gIlx0OyAiICsgcG47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gIlx0OyAiICsgdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm1heHdpZHRoIGJvZ3VzICIgKyB2YWx1ZSArICIsIiArIGdldFZhbHVlU291cmNlKCkuZ2V0TWF4V2lkdGgoc2hvcnRWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxhYmVsU2l6ZSA+IDApIHsKKyAgICAgICAgICAgICAgICBsYWJlbCA9ICJcdCIgKyBsYWJlbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGFiZWwubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibWF4d2lkdGggYm9ndXMgIiArIGxhYmVsICsgIiwgIiArIGdldExhYmVsU291cmNlKHRydWUpLmdldE1heFdpZHRoKHNob3J0TGFiZWwpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGNvdW50ID0gIiI7CisgICAgICAgICAgICBpZiAobWVyZ2VSYW5nZXMgJiYgc2hvd0NvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA9PSBzdGFydCkgY291bnQgPSAiXHQiOworICAgICAgICAgICAgICAgIGVsc2UgY291bnQgPSAiXHQgWyIrIG5mLmZvcm1hdChlbmQgLSBzdGFydCArIDEpKyAiXSI7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAgb3V0cHV0LnByaW50KAorICAgICAgICAgICAgICAgIHRhYmJlci5wcm9jZXNzKAorICAgICAgICAgICAgICAgICAgICBoZXgoc3RhcnQsIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgcG4KKyAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICsgY29tbWVudFNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgKyBsYWJlbAorICAgICAgICAgICAgICAgICAgICAgICAgKyBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgKyBpbnNlcnRMaXRlcmFsKHN0YXJ0LCBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICArIGdldE5hbWUoIlx0ICIsIHN0YXJ0LCBlbmQpKQorICAgICAgICAgICAgICAgICsgIGxpbmVTZXBhcmF0b3IgKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGluc2VydExpdGVyYWwoU3RyaW5nIHRoaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3dMaXRlcmFsID09IG51bGwgPyAiIgorICAgICAgICAgICAgICAgIDogICIgXHQoIiArIHNob3dMaXRlcmFsLnRyYW5zbGl0ZXJhdGUodGhpbmcpICsgIikgIik7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBpbnNlcnRMaXRlcmFsKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICAgICAgcmV0dXJuIChzaG93TGl0ZXJhbCA9PSBudWxsID8gIiIgOgorICAgICAgICAgICAgICAgICIgXHQoIiArIHNob3dMaXRlcmFsLnRyYW5zbGl0ZXJhdGUoVVRGMTYudmFsdWVPZihzdGFydCkpCisgICAgICAgICAgICAgICAgICAgICAgICArICgoc3RhcnQgIT0gZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKCIuLiIgKyBzaG93TGl0ZXJhbC50cmFuc2xpdGVyYXRlKFVURjE2LnZhbHVlT2YoZW5kKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiIikKKyAgICAgICAgICAgICAgICArICIpICIpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGluc2VydExpdGVyYWwoaW50IGNwKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3dMaXRlcmFsID09IG51bGwgPyAiIgorICAgICAgICAgICAgICAgIDogICIgXHQoIiArIHNob3dMaXRlcmFsLnRyYW5zbGl0ZXJhdGUoVVRGMTYudmFsdWVPZihjcCkpICsgIikgIik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlIHRocm91Z2ggYSBzdHJpbmcsIGJyZWFraW5nIGF0IHdvcmRzLgorICAgICAqIEBhdXRob3IgRGF2aXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOYW1lSXRlcmF0b3IgeworICAgICAgICBTdHJpbmcgc291cmNlOworICAgICAgICBpbnQgcG9zaXRpb247CisgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgaW50IGxpbWl0OworCisgICAgICAgIE5hbWVJdGVyYXRvcihTdHJpbmcgc291cmNlKSB7CisgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuc3RhcnQgPSAwOworICAgICAgICAgICAgdGhpcy5saW1pdCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogRmluZCBuZXh0IHdvcmQsIGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZXMKKyAgICAgICAgICogQHJldHVybiB0aGUgbmV4dCB3b3JkCisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBsaW1pdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIGludCBwb3MgPSBzb3VyY2UuaW5kZXhPZignICcsIHBvc2l0aW9uKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+PSBsaW1pdCkKKyAgICAgICAgICAgICAgICBwb3MgPSBsaW1pdDsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBzb3VyY2Uuc3Vic3RyaW5nKHBvc2l0aW9uLCBwb3MpOworICAgICAgICAgICAgcG9zaXRpb24gPSBwb3MgKyAxOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbnQgZmluZE1hdGNoaW5nRW5kKFN0cmluZyBzMSwgU3RyaW5nIHMyKSB7CisgICAgICAgICAgICBpbnQgaSA9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGogPSBzMi5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1pOyAvLyBkZWNyZW1lbnQgYm90aCBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbiEKKyAgICAgICAgICAgICAgICAgICAgLS1qOworICAgICAgICAgICAgICAgICAgICBpZiAoczEuY2hhckF0KGkpICE9IHMyLmNoYXJBdChqKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fSAvLyBydW4gb2ZmIHN0YXJ0CisKKyAgICAgICAgICAgICsraTsgLy8gY291bnRlcmFjdCBpbmNyZW1lbnQKKyAgICAgICAgICAgIGkgPSBzMS5pbmRleE9mKCcgJywgaSk7IC8vIG1vdmUgZm9yd2FyZCB0byBzcGFjZQorICAgICAgICAgICAgaWYgKGkgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIHMxLmxlbmd0aCgpIC0gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgUmFuZ2VGaW5kZXIgeworICAgICAgICBpbnQgc3RhcnQsIGxpbWl0OworICAgICAgICBwcml2YXRlIGludCB2ZXJ5TGltaXQ7CisgICAgICAgIC8vU3RyaW5nIGxhYmVsLCB2YWx1ZTsKKyAgICAgICAgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAgICAgdGhpcy5saW1pdCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy52ZXJ5TGltaXQgPSBsaW1pdDsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICBpZiAobGltaXQgPj0gdmVyeUxpbWl0KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7IC8vIHNldCB0byBlbmQgb2YgbGFzdAorICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gZ2V0TGFiZWxTb3VyY2UoZmFsc2UpLmdldFZhbHVlKGxpbWl0LCB0cnVlKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKGxpbWl0LCB0cnVlKTsKKyAgICAgICAgICAgIFN0cmluZyBicmVha2VyID0gZ2V0UmFuZ2VCcmVha1NvdXJjZSgpLmdldFZhbHVlKGxpbWl0LHRydWUpOworICAgICAgICAgICAgaWYgKERFQlVHICYmIGxpbWl0IDwgMHg3RikgU3lzdGVtLm91dC5wcmludGxuKCJMYWJlbDogIiArIGxhYmVsICsgIiwgVmFsdWU6ICIgKyB2YWx1ZSArICIsIEJyZWFrOiAiICsgYnJlYWtlcik7CisgICAgICAgICAgICBsaW1pdCsrOworICAgICAgICAgICAgZm9yICg7IGxpbWl0IDwgdmVyeUxpbWl0OyBsaW1pdCsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXRMYWJlbFNvdXJjZShmYWxzZSkuZ2V0VmFsdWUobGltaXQsIHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyB2ID0gZ2V0VmFsdWUobGltaXQsIHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBiID0gZ2V0UmFuZ2VCcmVha1NvdXJjZSgpLmdldFZhbHVlKGxpbWl0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcgJiYgbGltaXQgPCAweDdGKSBTeXN0ZW0ub3V0LnByaW50bG4oIipMYWJlbDogIiArIGxhYmVsICsgIiwgVmFsdWU6ICIgKyB2YWx1ZSArICIsIEJyZWFrOiAiICsgYnJlYWtlcik7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVhbFRvKHMsIGxhYmVsKSB8fCAhZXF1YWxUbyh2LCB2YWx1ZSkgfHwgIWVxdWFsVG8oYiwgYnJlYWtlcikpIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgbGltaXQgaXMgdGhlIGZpcnN0IGl0ZW0gdGhhdCBoYXMgYSBkaWZmZXJlbnQgbGFiZWwgdGhhbiBzb3VyY2UKKyAgICAgICAgICAgIC8vIE9SLCB3ZSBnb3QgdG8gdGhlIGVuZCwgYW5kIGxpbWl0ID09IHZlcnlMaW1pdAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIGVxdWFsVG8oT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgIGlmIChhID09IGIpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoYSA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBhLmVxdWFscyhiKTsKKyAgICB9CisKKyAgICBib29sZWFuIHNob3J0TGFiZWwgPSB0cnVlOworICAgIGJvb2xlYW4gc2hvcnRWYWx1ZSA9IHRydWU7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFByZWZpeCgpIHsKKyAgICAgICAgcmV0dXJuIHByZWZpeDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFN1ZmZpeCgpIHsKKyAgICAgICAgcmV0dXJuIHN1ZmZpeDsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFByZWZpeChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIHByZWZpeCA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRTdWZmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBzdWZmaXggPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQWJicmV2aWF0ZWQoKSB7CisgICAgICAgIHJldHVybiBhYmJyZXZpYXRlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldEFiYnJldmlhdGVkKGJvb2xlYW4gYikgeworICAgICAgICBhYmJyZXZpYXRlZCA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlTGFiZWwgZ2V0TGFiZWxTb3VyY2UoYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIGlmIChsYWJlbFNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbGFiZWxNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgLy9sYWJlbE1hcC5wdXQoIkxvIiwiTCYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTHUiLCJMJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMdCIsIkwmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkxsIiwiTCYiKTsKKyAgICAgICAgICAgIGxhYmVsU291cmNlID0gbmV3IFVuaWNvZGVQcm9wZXJ0eS5GaWx0ZXJlZFByb3BlcnR5KAorICAgICAgICAgICAgICAgIGdldFVuaWNvZGVQcm9wZXJ0eUZhY3RvcnkoKS5nZXRQcm9wZXJ0eSgiR2VuZXJhbF9DYXRlZ29yeSIpLAorICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlUHJvcGVydHkuTWFwRmlsdGVyKGxhYmVsTWFwKQorICAgICAgICAgICAgKS5zZXRBbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKHRydWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsYWJlbFNvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZGVwcmVjYXRlZAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhZGRBbGwoVW5pY29kZVNldCBzb3VyY2UsIENvbGxlY3Rpb24gdGFyZ2V0KSB7CisgICAgICAgIHNvdXJjZS5hZGRBbGxUbyh0YXJnZXQpOworICAgIH0KKworICAgIC8vIFVUSUxJVElFUworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgIlteXFx1MDAwOVxcdTAwMjAtXFx1MDA3RVxcdTAwQTAtXFx1MDBGRl0gaGV4Iik7CisKKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5VVEY4UmVhZGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG9wZW5SZWFkZXIoZGlyLGZpbGVuYW1lLCJVVEYtOCIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgQnVmZmVyZWRSZWFkZXIgb3BlblJlYWRlcihTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyICsgZmlsZW5hbWUpOworICAgICAgICBpZiAoU0hPV19GSUxFUyAmJiBsb2cgIT0gbnVsbCkgeworICAgICAgICAgICAgbG9nLnByaW50bG4oIk9wZW5pbmcgRmlsZTogIgorICAgICAgICAgICAgICAgICsgZmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKSwKKyAgICAgICAgICAgICAgICBlbmNvZGluZyksCisgICAgICAgICAgICA0KjEwMjQpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUHJpbnRXcml0ZXIgb3BlblVURjhXcml0ZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gb3BlbldyaXRlcihkaXIsZmlsZW5hbWUsIlVURi04Iik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBQcmludFdyaXRlciBvcGVuV3JpdGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShkaXIgKyBmaWxlbmFtZSk7CisgICAgICAgIGlmIChTSE9XX0ZJTEVTICYmIGxvZyAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2cucHJpbnRsbigiQ3JlYXRpbmcgRmlsZTogIgorICAgICAgICAgICAgICAgICsgZmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXJlbnROYW1lID0gZmlsZS5nZXRQYXJlbnQoKTsKKyAgICAgICAgaWYgKHBhcmVudE5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgRmlsZSBwYXJlbnQgPSBuZXcgRmlsZShwYXJlbnROYW1lKTsKKyAgICAgICAgICAgIHBhcmVudC5ta2RpcnMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpLAorICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyksCisgICAgICAgICAgICAgICAgNCoxMDI0KSk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgUHJpbnRXcml0ZXIgZ2V0TG9nKCkgeworICAgICAgICByZXR1cm4gbG9nOworICAgIH0KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldExvZyhQcmludFdyaXRlciB3cml0ZXIpIHsKKyAgICAgICAgbG9nID0gd3JpdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyBnZXRTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBzZXBhcmF0b3I7CisgICAgfQorICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0U2VwYXJhdG9yKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgc2VwYXJhdG9yID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldFNob3dMaXRlcmFsKCkgeworICAgICAgICByZXR1cm4gc2hvd0xpdGVyYWw7CisgICAgfQorICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0U2hvd0xpdGVyYWwoVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0b3IpIHsKKyAgICAgICAgc2hvd0xpdGVyYWwgPSB0cmFuc2xpdGVyYXRvcjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLy8gPT09PT0gQ09OVkVOSUVOQ0VTID09PT09CisgICAgcHJpdmF0ZSBjbGFzcyBKb2luIGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBkZXB0aCA9IDA7CisgICAgICAgIFN0cmluZyBqb2luIChPYmplY3QgbykgeworICAgICAgICAgICAgb3V0cHV0LnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGRvQXQobyk7CisgICAgICAgICAgICByZXR1cm4gb3V0cHV0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9CZWZvcmUoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgICAgICsrZGVwdGg7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9BZnRlcihPYmplY3QgY29udGFpbmVyLCBPYmplY3QgaXRlbSkgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChzdWZmaXgpOworICAgICAgICAgICAgLS1kZXB0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb1NpbXBsZUF0KE9iamVjdCBvKSB7CisgICAgICAgICAgICBpZiAobyAhPSBudWxsKSBvdXRwdXQuYXBwZW5kKG8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbGFiZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldExhYmVsU291cmNlKFVuaWNvZGVMYWJlbCBsYWJlbCkgeworICAgICAgICBpZiAobGFiZWwgPT0gbnVsbCkgbGFiZWwgPSBVbmljb2RlTGFiZWwuTlVMTDsKKyAgICAgICAgbGFiZWxTb3VyY2UgPSBsYWJlbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgTmFtZUxhYmxlIHJlcHJlc2VudGluZyB0aGUgc291cmNlCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVMYWJlbCBnZXROYW1lU291cmNlKCkgeworICAgICAgICBpZiAobmFtZVNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBuYW1lU291cmNlID0gbmV3IE5hbWVMYWJlbChnZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lU291cmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBsYWJlbAorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0TmFtZVNvdXJjZShVbmljb2RlTGFiZWwgbGFiZWwpIHsKKyAgICAgICAgaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gVW5pY29kZUxhYmVsLk5VTEw7CisgICAgICAgIG5hbWVTb3VyY2UgPSBsYWJlbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZUxhYmVsIHJlcHJlc2VudGluZyB0aGUgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZUxhYmVsIGdldFZhbHVlU291cmNlKCkgeworICAgICAgICBpZiAodmFsdWVTb3VyY2UgPT0gbnVsbCkgdmFsdWVTb3VyY2UgPSBVbmljb2RlTGFiZWwuTlVMTDsKKyAgICAgICAgcmV0dXJuIHZhbHVlU291cmNlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGdldFZhbHVlKGludCBjcCwgYm9vbGVhbiBzaG9ydFZhbHVlKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBnZXRWYWx1ZVNvdXJjZSgpLmdldFZhbHVlKGNwLCBzaG9ydFZhbHVlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXR1cm4gTlVMTF9WQUxVRTsKKyAgICAgICAgaWYgKGhleFZhbHVlKSByZXN1bHQgPSBoZXgocmVzdWx0LCAiICIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBsYWJlbAorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0VmFsdWVTb3VyY2UoVW5pY29kZUxhYmVsIGxhYmVsKSB7CisgICAgICAgIGlmIChsYWJlbCA9PSBudWxsKSBsYWJlbCA9IFVuaWNvZGVMYWJlbC5OVUxMOworICAgICAgICB2YWx1ZVNvdXJjZSA9IGxhYmVsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFZhbHVlU291cmNlKFN0cmluZyBsYWJlbCkgeworICAgICAgICByZXR1cm4gc2V0VmFsdWVTb3VyY2UobmV3IFVuaWNvZGVMYWJlbC5Db25zdGFudChsYWJlbCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzaG93Q291bnQgaXMgdHJ1ZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzU2hvd0NvdW50KCkgeworICAgICAgICByZXR1cm4gc2hvd0NvdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBiIHRydWUgdG8gc2hvdyB0aGUgY291bnQKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFNob3dDb3VudChib29sZWFuIGIpIHsKKyAgICAgICAgc2hvd0NvdW50ID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgcHJvcGVydHkgbmFtZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcE5hbWUoKSB7CisgICAgICAgIHJldHVybiBwcm9wTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRQcm9wTmFtZShTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIGlmIChzdHJpbmcgPT0gbnVsbCkgc3RyaW5nID0gIiI7CisgICAgICAgIHByb3BOYW1lID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpcyBhIGhleFZhbHVlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNIZXhWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIGhleFZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBiCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRIZXhWYWx1ZShib29sZWFuIGIpIHsKKyAgICAgICAgaGV4VmFsdWUgPSBiOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBmdWxsIHRvdGFsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGdWxsVG90YWwoKSB7CisgICAgICAgIHJldHVybiBmdWxsVG90YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGkgc2V0IHRoZSBmdWxsIHRvdGFsCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRGdWxsVG90YWwoaW50IGkpIHsKKyAgICAgICAgZnVsbFRvdGFsID0gaTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgbGluZSBzZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExpbmVTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBsaW5lU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldExpbmVTZXBhcmF0b3IoU3RyaW5nIHN0cmluZykgeworICAgICAgICBsaW5lU2VwYXJhdG9yID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlTGFiZWwgcmVwcmVzZW50aW5nIHRoZSByYW5nZSBicmVhayBzb3VyY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZUxhYmVsIGdldFJhbmdlQnJlYWtTb3VyY2UoKSB7CisgICAgICAgIGlmIChyYW5nZUJyZWFrU291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBsYWJlbE1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAvLyByZWZsZWN0cyB0aGUgY29kZSBwb2ludCB0eXBlcyBvbiBwIDI1CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkxvIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkxtIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkx1IiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkx0IiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkxsIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk1uIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk1lIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk1jIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk5kIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk5sIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIk5vIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlpzIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBkIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBzIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBlIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBjIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBvIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBpIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlBmIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlNtIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlNjIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlNrIiwgIkcmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlNvIiwgIkcmIik7CisKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiWmwiLCAiQ2YiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiWnAiLCAiQ2YiKTsKKworICAgICAgICAgICAgcmFuZ2VCcmVha1NvdXJjZSA9CisgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVQcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAuRmlsdGVyZWRQcm9wZXJ0eSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldFVuaWNvZGVQcm9wZXJ0eUZhY3RvcnkoKS5nZXRQcm9wZXJ0eSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR2VuZXJhbF9DYXRlZ29yeSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVQcm9wZXJ0eS5NYXBGaWx0ZXIobGFiZWxNYXApKQorICAgICAgICAgICAgICAgICAgICAuc2V0QWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucyh0cnVlKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICJDbiIsIC8vID0gT3RoZXIsIE5vdCBBc3NpZ25lZCAwCisgICAgICAgICAgICAiQ2MiLCAvLyA9IE90aGVyLCBDb250cm9sIDE1CisgICAgICAgICAgICAiQ2YiLCAvLyA9IE90aGVyLCBGb3JtYXQgMTYKKyAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eS5VTlVTRUQsIC8vIG1pc3NpbmcKKyAgICAgICAgICAgICJDbyIsIC8vID0gT3RoZXIsIFByaXZhdGUgVXNlIDE4CisgICAgICAgICAgICAiQ3MiLCAvLyA9IE90aGVyLCBTdXJyb2dhdGUgMTkKKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlQnJlYWtTb3VyY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGxhYmVsCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRSYW5nZUJyZWFrU291cmNlKFVuaWNvZGVMYWJlbCBsYWJlbCkgeworICAgICAgICBpZiAobGFiZWwgPT0gbnVsbCkgbGFiZWwgPSBVbmljb2RlTGFiZWwuTlVMTDsKKyAgICAgICAgcmFuZ2VCcmVha1NvdXJjZSA9IGxhYmVsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKwkvKioKKwkgKiBAcmV0dXJuIFJldHVybnMgdGhlIGZpeE5hbWUuCisJICovCisJcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEZpeE5hbWUoKSB7CisJCXJldHVybiBmaXhOYW1lOworCX0KKwkvKioKKwkgKiBAcGFyYW0gZml4TmFtZSBUaGUgZml4TmFtZSB0byBzZXQuCisJICovCisJcHVibGljIHZvaWQgc2V0Rml4TmFtZShUcmFuc2xpdGVyYXRvciBmaXhOYW1lKSB7CisJCXRoaXMuZml4TmFtZSA9IGZpeE5hbWU7CisJfQorCisgICAgcHVibGljIFRhYmJlciBnZXRUYWJiZXIoKSB7CisgICAgICAgIHJldHVybiB0YWJiZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGFiYmVyKFRhYmJlciB0YWJiZXIpIHsKKyAgICAgICAgdGhpcy50YWJiZXIgPSB0YWJiZXI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNTaG93VG90YWwoKSB7CisgICAgICAgIHJldHVybiBzaG93VG90YWw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U2hvd1RvdGFsKGJvb2xlYW4gc2hvd1RvdGFsKSB7CisgICAgICAgIHRoaXMuc2hvd1RvdGFsID0gc2hvd1RvdGFsOworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DYXNlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0Nhc2VJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZjgyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DYXNlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU1NyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvLyBjb3BpZWQgZnJvbSB0aGUgVHJhbnNsaXRlcmF0b3IgZGVtbworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogSW5jcmVtZW50YWxseSByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIHN0cmluZ3MgdGhhdCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUuCisgKi8KK3B1YmxpYyBjbGFzcyBDYXNlSXRlcmF0b3IgeworICAgIAorICAgIC8vIHRlc3Rpbmcgc3R1ZmYKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gdHJ1ZTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9OYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIls6XmFzY2lpOl0gQW55LU5hbWUiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktSGV4Iik7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHRvSGV4MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbW15cdTAwMjEtXHUwMDdGXS1bLF1dIEFueS1IZXgiKTsKKyAgICAKKyAgICAvLyBnbG9iYWwgdGFibGVzIChjb3VsZCBiZSBwcmVjb21waWxlZCkKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgZnJvbUNhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgdG9DYXNlRm9sZCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1heExlbmd0aCA9IDA7CisgICAgCisgICAgLy8gVGhpcyBleGNlcHRpb24gbGlzdCBpcyBnZW5lcmF0ZWQgb24gdGhlIGNvbnNvbGUgYnkgdHVybmluZyBvbiB0aGUgR0VORVJBVEVEIGZsYWcsIAorICAgIC8vIHdoaWNoIE1VU1QgYmUgZmFsc2UgZm9yIG5vcm1hbCBvcGVyYXRpb24uCisgICAgLy8gT25jZSB0aGUgbGlzdCBpcyBnZW5lcmF0ZWQsIGl0IGlzIHBhc3RlZCBpbiBoZXJlLgorICAgIC8vIEEgYml0IG9mIGEgY2x1ZGdlLCBidXQgdGhpcyBib290c3RyYXBwaW5nIGlzIHRoZSBlYXNpZXN0IHdheSAKKyAgICAvLyB0byBnZXQgYXJvdW5kIGNlcnRhaW4gY29tcGxpY2F0aW9ucyBpbiB0aGUgZGF0YS4KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIEdFTkVSQVRFID0gZmFsc2U7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERVTVAgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXVtdIGV4Y2VwdGlvbkxpc3QgPSB7CisgICAgICAgIC8vIGFcTntNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HfQorICAgICAgICB7ImFcdTAyQkUiLCJBXHUwMkJFIiwiYVx1MDJCRSIsfSwKKyAgICAgICAgLy8gZmYKKyAgICAgICAgeyJmZiIsIkZGIiwiRmYiLCJmRiIsImZmIix9LAorICAgICAgICAvLyBmZmkKKyAgICAgICAgeyJmZmkiLCJGRkkiLCJGRmkiLCJGZkkiLCJGZmkiLCJGXHVGQjAxIiwiZkZJIiwiZkZpIiwiZmZJIiwiZmZpIiwiZlx1RkIwMSIsIlx1RkIwMEkiLCJcdUZCMDBpIix9LAorICAgICAgICAvLyBmZmwKKyAgICAgICAgeyJmZmwiLCJGRkwiLCJGRmwiLCJGZkwiLCJGZmwiLCJGXHVGQjAyIiwiZkZMIiwiZkZsIiwiZmZMIiwiZmZsIiwiZlx1RkIwMiIsIlx1RkIwMEwiLCJcdUZCMDBsIix9LAorICAgICAgICAvLyBmaQorICAgICAgICB7ImZpIiwiRkkiLCJGaSIsImZJIiwiZmkiLH0sCisgICAgICAgIC8vIGZsCisgICAgICAgIHsiZmwiLCJGTCIsIkZsIiwiZkwiLCJmbCIsfSwKKyAgICAgICAgLy8gaFxOe0NPTUJJTklORyBNQUNST04gQkVMT1d9CisgICAgICAgIHsiaFx1MDMzMSIsIkhcdTAzMzEiLCJoXHUwMzMxIix9LAorICAgICAgICAvLyBpXE57Q09NQklOSU5HIERPVCBBQk9WRX0KKyAgICAgICAgeyJpXHUwMzA3IiwiSVx1MDMwNyIsImlcdTAzMDciLH0sCisgICAgICAgIC8vIGpcTntDT01CSU5JTkcgQ0FST059CisgICAgICAgIHsialx1MDMwQyIsIkpcdTAzMEMiLCJqXHUwMzBDIix9LAorICAgICAgICAvLyBzcworICAgICAgICB7InNzIiwiU1MiLCJTcyIsIlNcdTAxN0YiLCJzUyIsInNzIiwic1x1MDE3RiIsIlx1MDE3RlMiLCJcdTAxN0ZzIiwiXHUwMTdGXHUwMTdGIix9LAorICAgICAgICAvLyBzdAorICAgICAgICB7InN0IiwiU1QiLCJTdCIsInNUIiwic3QiLCJcdTAxN0ZUIiwiXHUwMTdGdCIsfSwKKyAgICAgICAgLy8gdFxOe0NPTUJJTklORyBESUFFUkVTSVN9CisgICAgICAgIHsidFx1MDMwOCIsIlRcdTAzMDgiLCJ0XHUwMzA4Iix9LAorICAgICAgICAvLyB3XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsid1x1MDMwQSIsIldcdTAzMEEiLCJ3XHUwMzBBIix9LAorICAgICAgICAvLyB5XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsieVx1MDMwQSIsIllcdTAzMEEiLCJ5XHUwMzBBIix9LAorICAgICAgICAvLyBcTntNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRX1uCisgICAgICAgIHsiXHUwMkJDbiIsIlx1MDJCQ04iLCJcdTAyQkNuIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUNcdTAzQjkiLCJcdTAzODZcdTAzNDUiLCJcdTAzODZcdTAzOTkiLCJcdTAzODZcdTAzQjkiLCJcdTAzODZcdTFGQkUiLCJcdTAzQUNcdTAzNDUiLCJcdTAzQUNcdTAzOTkiLCJcdTAzQUNcdTAzQjkiLCJcdTAzQUNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUVcdTAzQjkiLCJcdTAzODlcdTAzNDUiLCJcdTAzODlcdTAzOTkiLCJcdTAzODlcdTAzQjkiLCJcdTAzODlcdTFGQkUiLCJcdTAzQUVcdTAzNDUiLCJcdTAzQUVcdTAzOTkiLCJcdTAzQUVcdTAzQjkiLCJcdTAzQUVcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyIiwiXHUwMzkxXHUwMzQyIiwiXHUwM0IxXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MDM0NSIsIlx1MDM5MVx1MDM0Mlx1MDM5OSIsIlx1MDM5MVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MUZCRSIsCisgICAgICAgICAgICAiXHUwM0IxXHUwMzQyXHUwMzQ1IiwiXHUwM0IxXHUwMzQyXHUwMzk5IiwiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwM0IxXHUwMzQyXHUxRkJFIiwiXHUxRkI2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGQjZcdTAzOTkiLCJcdTFGQjZcdTAzQjkiLCJcdTFGQjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjFcdTAzQjkiLCJcdTAzOTFcdTAzNDUiLCJcdTAzOTFcdTAzOTkiLCJcdTAzOTFcdTAzQjkiLCJcdTAzOTFcdTFGQkUiLCJcdTAzQjFcdTAzNDUiLCJcdTAzQjFcdTAzOTkiLCJcdTAzQjFcdTAzQjkiLCJcdTAzQjFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCN1x1MDM0MiIsIlx1MDM5N1x1MDM0MiIsIlx1MDNCN1x1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUwMzQ1IiwiXHUwMzk3XHUwMzQyXHUwMzk5IiwiXHUwMzk3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjdcdTAzNDJcdTAzNDUiLCJcdTAzQjdcdTAzNDJcdTAzOTkiLCJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzQjdcdTAzNDJcdTFGQkUiLCJcdTFGQzZcdTAzNDUiLCJcdTFGQzZcdTAzOTkiLAorICAgICAgICAgICAgIlx1MUZDNlx1MDNCOSIsIlx1MUZDNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzQjkiLCJcdTAzOTdcdTAzNDUiLCJcdTAzOTdcdTAzOTkiLCJcdTAzOTdcdTAzQjkiLCJcdTAzOTdcdTFGQkUiLCJcdTAzQjdcdTAzNDUiLCJcdTAzQjdcdTAzOTkiLCJcdTAzQjdcdTAzQjkiLCJcdTAzQjdcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTAzNDVcdTAzMDhcdTAzMDAiLCJcdTAzOTlcdTAzMDhcdTAzMDAiLCJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTFGQkVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTAzNDVcdTAzMDhcdTAzMDEiLCJcdTAzOTlcdTAzMDhcdTAzMDEiLCJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTFGQkVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MDM0NVx1MDMwOFx1MDM0MiIsIlx1MDM5OVx1MDMwOFx1MDM0MiIsIlx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MUZCRVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDM0MiIsIlx1MDM0NVx1MDM0MiIsIlx1MDM5OVx1MDM0MiIsIlx1MDNCOVx1MDM0MiIsIlx1MUZCRVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFJIT31cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9CisgICAgICAgIHsiXHUwM0MxXHUwMzEzIiwiXHUwM0ExXHUwMzEzIiwiXHUwM0MxXHUwMzEzIiwiXHUwM0YxXHUwMzEzIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAwIiwiXHUwM0E1XHUwMzA4XHUwMzAwIiwiXHUwM0M1XHUwMzA4XHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAxIiwiXHUwM0E1XHUwMzA4XHUwMzAxIiwiXHUwM0M1XHUwMzA4XHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzNDIiLCJcdTAzQTVcdTAzMDhcdTAzNDIiLCJcdTAzQzVcdTAzMDhcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTMiLCJcdTAzQTVcdTAzMTMiLCJcdTAzQzVcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MDNBNVx1MDMxM1x1MDMwMCIsIlx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MUY1MFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUwM0E1XHUwMzEzXHUwMzAxIiwiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUxRjUwXHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MDNBNVx1MDMxM1x1MDM0MiIsIlx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MUY1MFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDM0MiIsIlx1MDNBNVx1MDM0MiIsIlx1MDNDNVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDIiLCJcdTAzQTlcdTAzNDIiLCJcdTAzQzlcdTAzNDIiLCJcdTIxMjZcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUwMzQ1IiwiXHUwM0E5XHUwMzQyXHUwMzk5IiwiXHUwM0E5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUxRkJFIiwiXHUwM0M5XHUwMzQyXHUwMzQ1IiwiXHUwM0M5XHUwMzQyXHUwMzk5IiwiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0M5XHUwMzQyXHUxRkJFIiwiXHUxRkY2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGRjZcdTAzOTkiLCJcdTFGRjZcdTAzQjkiLCJcdTFGRjZcdTFGQkUiLCJcdTIxMjZcdTAzNDJcdTAzNDUiLCJcdTIxMjZcdTAzNDJcdTAzOTkiLCJcdTIxMjZcdTAzNDJcdTAzQjkiLCJcdTIxMjZcdTAzNDJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzQjkiLCJcdTAzQTlcdTAzNDUiLCJcdTAzQTlcdTAzOTkiLCJcdTAzQTlcdTAzQjkiLCJcdTAzQTlcdTFGQkUiLCJcdTAzQzlcdTAzNDUiLCJcdTAzQzlcdTAzOTkiLCJcdTAzQzlcdTAzQjkiLCJcdTAzQzlcdTFGQkUiLCJcdTIxMjZcdTAzNDUiLCJcdTIxMjZcdTAzOTkiLCJcdTIxMjZcdTAzQjkiLCJcdTIxMjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDRVx1MDNCOSIsIlx1MDM4Rlx1MDM0NSIsIlx1MDM4Rlx1MDM5OSIsIlx1MDM4Rlx1MDNCOSIsIlx1MDM4Rlx1MUZCRSIsIlx1MDNDRVx1MDM0NSIsIlx1MDNDRVx1MDM5OSIsIlx1MDNDRVx1MDNCOSIsIlx1MDNDRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTn0KKyAgICAgICAgeyJcdTA1NjVcdTA1ODIiLCJcdTA1MzVcdTA1NTIiLCJcdTA1MzVcdTA1ODIiLCJcdTA1NjVcdTA1NTIiLCJcdTA1NjVcdTA1ODIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NjUiLCJcdTA1NDRcdTA1MzUiLCJcdTA1NDRcdTA1NjUiLCJcdTA1NzRcdTA1MzUiLCJcdTA1NzRcdTA1NjUiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIElOSX0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkIiLCJcdTA1NDRcdTA1M0IiLCJcdTA1NDRcdTA1NkIiLCJcdTA1NzRcdTA1M0IiLCJcdTA1NzRcdTA1NkIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFhFSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkQiLCJcdTA1NDRcdTA1M0QiLCJcdTA1NDRcdTA1NkQiLCJcdTA1NzRcdTA1M0QiLCJcdTA1NzRcdTA1NkQiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1NzRcdTA1NzYiLCJcdTA1NDRcdTA1NDYiLCJcdTA1NDRcdTA1NzYiLCJcdTA1NzRcdTA1NDYiLCJcdTA1NzRcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVd9XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1N0VcdTA1NzYiLCJcdTA1NEVcdTA1NDYiLCJcdTA1NEVcdTA1NzYiLCJcdTA1N0VcdTA1NDYiLCJcdTA1N0VcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MDM0NSIsIlx1MUYwMFx1MDM5OSIsIlx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MUZCRSIsIlx1MUYwOFx1MDM0NSIsIlx1MUYwOFx1MDM5OSIsIlx1MUYwOFx1MDNCOSIsIlx1MUYwOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUwMzQ1IiwiXHUxRjAxXHUwMzk5IiwiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUxRkJFIiwiXHUxRjA5XHUwMzQ1IiwiXHUxRjA5XHUwMzk5IiwiXHUxRjA5XHUwM0I5IiwiXHUxRjA5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUwMzQ1IiwiXHUxRjAyXHUwMzk5IiwiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUxRkJFIiwiXHUxRjBBXHUwMzQ1IiwiXHUxRjBBXHUwMzk5IiwiXHUxRjBBXHUwM0I5IiwiXHUxRjBBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUwMzQ1IiwiXHUxRjAzXHUwMzk5IiwiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUxRkJFIiwiXHUxRjBCXHUwMzQ1IiwiXHUxRjBCXHUwMzk5IiwiXHUxRjBCXHUwM0I5IiwiXHUxRjBCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTAzNDUiLCJcdTFGMDRcdTAzOTkiLCJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTFGQkUiLCJcdTFGMENcdTAzNDUiLCJcdTFGMENcdTAzOTkiLCJcdTFGMENcdTAzQjkiLCJcdTFGMENcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MDM0NSIsIlx1MUYwNVx1MDM5OSIsIlx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MUZCRSIsIlx1MUYwRFx1MDM0NSIsIlx1MUYwRFx1MDM5OSIsIlx1MUYwRFx1MDNCOSIsIlx1MUYwRFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MDM0NSIsIlx1MUYwNlx1MDM5OSIsIlx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MUZCRSIsIlx1MUYwRVx1MDM0NSIsIlx1MUYwRVx1MDM5OSIsIlx1MUYwRVx1MDNCOSIsIlx1MUYwRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MDM0NSIsIlx1MUYwN1x1MDM5OSIsIlx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MUZCRSIsIlx1MUYwRlx1MDM0NSIsIlx1MUYwRlx1MDM5OSIsIlx1MUYwRlx1MDNCOSIsIlx1MUYwRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MDM0NSIsIlx1MUYyMFx1MDM5OSIsIlx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MUZCRSIsIlx1MUYyOFx1MDM0NSIsIlx1MUYyOFx1MDM5OSIsIlx1MUYyOFx1MDNCOSIsIlx1MUYyOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MDM0NSIsIlx1MUYyMVx1MDM5OSIsIlx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MUZCRSIsIlx1MUYyOVx1MDM0NSIsIlx1MUYyOVx1MDM5OSIsIlx1MUYyOVx1MDNCOSIsIlx1MUYyOVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTAzNDUiLCJcdTFGMjJcdTAzOTkiLCJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTFGQkUiLCJcdTFGMkFcdTAzNDUiLCJcdTFGMkFcdTAzOTkiLCJcdTFGMkFcdTAzQjkiLCJcdTFGMkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUwMzQ1IiwiXHUxRjIzXHUwMzk5IiwiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUxRkJFIiwiXHUxRjJCXHUwMzQ1IiwiXHUxRjJCXHUwMzk5IiwiXHUxRjJCXHUwM0I5IiwiXHUxRjJCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUwMzQ1IiwiXHUxRjI0XHUwMzk5IiwiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUxRkJFIiwiXHUxRjJDXHUwMzQ1IiwiXHUxRjJDXHUwMzk5IiwiXHUxRjJDXHUwM0I5IiwiXHUxRjJDXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUwMzQ1IiwiXHUxRjI1XHUwMzk5IiwiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUxRkJFIiwiXHUxRjJEXHUwMzQ1IiwiXHUxRjJEXHUwMzk5IiwiXHUxRjJEXHUwM0I5IiwiXHUxRjJEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MDM0NSIsIlx1MUYyNlx1MDM5OSIsIlx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MUZCRSIsIlx1MUYyRVx1MDM0NSIsIlx1MUYyRVx1MDM5OSIsIlx1MUYyRVx1MDNCOSIsIlx1MUYyRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTAzNDUiLCJcdTFGMjdcdTAzOTkiLCJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTFGQkUiLCJcdTFGMkZcdTAzNDUiLCJcdTFGMkZcdTAzOTkiLCJcdTFGMkZcdTAzQjkiLCJcdTFGMkZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MDM0NSIsIlx1MUY2MFx1MDM5OSIsIlx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MUZCRSIsIlx1MUY2OFx1MDM0NSIsIlx1MUY2OFx1MDM5OSIsIlx1MUY2OFx1MDNCOSIsIlx1MUY2OFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUwMzQ1IiwiXHUxRjYxXHUwMzk5IiwiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUxRkJFIiwiXHUxRjY5XHUwMzQ1IiwiXHUxRjY5XHUwMzk5IiwiXHUxRjY5XHUwM0I5IiwiXHUxRjY5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUwMzQ1IiwiXHUxRjYyXHUwMzk5IiwiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUxRkJFIiwiXHUxRjZBXHUwMzQ1IiwiXHUxRjZBXHUwMzk5IiwiXHUxRjZBXHUwM0I5IiwiXHUxRjZBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUwMzQ1IiwiXHUxRjYzXHUwMzk5IiwiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUxRkJFIiwiXHUxRjZCXHUwMzQ1IiwiXHUxRjZCXHUwMzk5IiwiXHUxRjZCXHUwM0I5IiwiXHUxRjZCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTAzNDUiLCJcdTFGNjRcdTAzOTkiLCJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTFGQkUiLCJcdTFGNkNcdTAzNDUiLCJcdTFGNkNcdTAzOTkiLCJcdTFGNkNcdTAzQjkiLCJcdTFGNkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MDM0NSIsIlx1MUY2NVx1MDM5OSIsIlx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MUZCRSIsIlx1MUY2RFx1MDM0NSIsIlx1MUY2RFx1MDM5OSIsIlx1MUY2RFx1MDNCOSIsIlx1MUY2RFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MDM0NSIsIlx1MUY2Nlx1MDM5OSIsIlx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MUZCRSIsIlx1MUY2RVx1MDM0NSIsIlx1MUY2RVx1MDM5OSIsIlx1MUY2RVx1MDNCOSIsIlx1MUY2RVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MDM0NSIsIlx1MUY2N1x1MDM5OSIsIlx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MUZCRSIsIlx1MUY2Rlx1MDM0NSIsIlx1MUY2Rlx1MDM5OSIsIlx1MUY2Rlx1MDNCOSIsIlx1MUY2Rlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUwMzQ1IiwiXHUxRjcwXHUwMzk5IiwiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUxRkJFIiwiXHUxRkJBXHUwMzQ1IiwiXHUxRkJBXHUwMzk5IiwiXHUxRkJBXHUwM0I5IiwiXHUxRkJBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUwMzQ1IiwiXHUxRjc0XHUwMzk5IiwiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUxRkJFIiwiXHUxRkNBXHUwMzQ1IiwiXHUxRkNBXHUwMzk5IiwiXHUxRkNBXHUwM0I5IiwiXHUxRkNBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTAzNDUiLCJcdTFGN0NcdTAzOTkiLCJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTFGQkUiLCJcdTFGRkFcdTAzNDUiLCJcdTFGRkFcdTAzOTkiLCJcdTFGRkFcdTAzQjkiLCJcdTFGRkFcdTFGQkUiLH0sCisgICAgfTsKKyAgICAKKyAgICAvLyB0aGlzIGluaXRpYWxpemVzIHRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGVkIHRoZSBjYXNlLWVxdWl2YWxlbnRzCisKKyAgICBzdGF0aWMgeworICAgICAgICAKKyAgICAgICAgLy8gR2F0aGVyIHVwIHRoZSBleGNlcHRpb25zIGluIGEgZm9ybSB3ZSBjYW4gdXNlCisgICAgICAgIAorICAgICAgICBpZiAoIUdFTkVSQVRFKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4Y2VwdGlvbkxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBleGNlcHRpb24gPSBleGNlcHRpb25MaXN0W2ldOworICAgICAgICAgICAgICAgIFNldCBzID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBoYXMgdG8gYmUgc29tZSBtZXRob2QgdG8gZG8gdGhlIGZvbGxvd2luZywgYnV0IEkgY2FuJ3QgZmluZCBpdCBpbiB0aGUgY29sbGVjdGlvbnMKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGV4Y2VwdGlvbi5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBzLmFkZChleGNlcHRpb25bal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KGV4Y2VwdGlvblswXSwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCBhbGwgdGhlIGNoYXJhY3RlcnMsIGFuZCBhdCBldmVyeSBjYXNlIGZvbGQgcmVzdWx0LAorICAgICAgICAvLyBwdXQgYSBzZXQgb2YgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgbWFwIHRvIHRoYXQgcmVzdWx0CisKKyAgICAgICAgYm9vbGVhbiBkZWZhdWx0bWFwcGluZyA9IHRydWU7IC8vIGZhbHNlIGZvciB0dXJraXNoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjYXQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoaSk7CisgICAgICAgICAgICBpZiAoY2F0ID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IGNhdCA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgU3RyaW5nIG1hcHBlZCA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIGRlZmF1bHRtYXBwaW5nKTsKKyAgICAgICAgICAgIGlmIChtYXBwZWQuZXF1YWxzKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXhMZW5ndGggPCBtYXBwZWQubGVuZ3RoKCkpIG1heExlbmd0aCA9IG1hcHBlZC5sZW5ndGgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgaGF2ZSBkaWZmZXJlbnQgY2FzZSBmb2xkaW5nCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChtYXBwZWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIHMuYWRkKG1hcHBlZCk7IC8vIGFkZCB0aGUgY2FzZSBmb2xkIHJlc3VsdCBpdHNlbGYKKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KG1hcHBlZCwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgICAgICB0b0Nhc2VGb2xkLnB1dChjcCwgbWFwcGVkKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KG1hcHBlZCwgbWFwcGVkKTsgLy8gYWRkIG1hcHBpbmcgdG8gc2VsZgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBFbWl0IHRoZSBmaW5hbCBkYXRhCisKKyAgICAgICAgaWYgKERVTVApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWF4TGVuZ3RoID0gIiArIG1heExlbmd0aCk7CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5mcm9tQ2FzZUZvbGQ6Iik7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSgoU3RyaW5nKWtleSkgKyAiOiAiKTsKKyAgICAgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpaXQyLm5leHQoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxudG9DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIGl0ID0gdG9DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiICsgdG9IZXgyLnRyYW5zbGl0ZXJhdGUoa2V5KSArICI6ICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSh2YWx1ZSkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOb3cgY29udmVydCBhbGwgdGhvc2Ugc2V0cyBpbnRvIGxpbmVhciBhcnJheXMKKyAgICAgICAgLy8gV2UgY2FuJ3QgZG8gdGhpcyBpbiBwbGFjZSBpbiBKYXZhLCBzbyBtYWtlIGEgdGVtcG9yYXJ5IHRhcmdldCBhcnJheQorICAgICAgICAKKyAgICAgICAgLy8gTm90ZTogVGhpcyBjb3VsZCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgc2luZ2xlIGFycmF5LCB3aXRoIG9mZnNldHMgaW50byBpdC4KKyAgICAgICAgLy8gTWlnaHQgYmUgYmVzdCBjaG9pY2UgaW4gQy4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNYXAgZnJvbUNhc2VGb2xkMiA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nW3Muc2l6ZSgpXTsKKyAgICAgICAgICAgIHMudG9BcnJheSh0ZW1wKTsKKyAgICAgICAgICAgIGZyb21DYXNlRm9sZDIucHV0KGtleSwgdGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgZnJvbUNhc2VGb2xkID0gZnJvbUNhc2VGb2xkMjsKKworICAgICAgICAvLyBXZSBoYXZlIHByb2Nlc3NlZCBldmVyeXRoaW5nLCBzbyB0aGUgaXRlcmF0b3Igd2lsbCBub3cgd29yaworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vcm1hbGx5IE9GRi4gCisgICAgICAgIC8vIEl0IGlzIGhlcmUgdG8gZ2VuZXJhdGUgKHVuZGVyIHRoZSBHRU5FUkFURSBmbGFnKSB0aGUgc3RhdGljIGV4Y2VwdGlvbiBsaXN0LgorICAgICAgICAvLyBJdCBtdXN0IGJlIGF0IHRoZSB2ZXJ5IGVuZCBvZiBpbml0aWFsaXphdGlvbiwgc28gdGhhdCB0aGUgaXRlcmF0b3IgaXMgZnVuY3Rpb25hbC4KKyAgICAgICAgLy8gKGVhc2llc3QgdG8gZG8gaXQgdGhhdCB3YXkpCisgICAgICAgICAgICAKKyAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisKKyAgICAgICAgICAgIC8vIGZpcnN0IGdldCBzbWFsbCBzZXQgb2YgaXRlbXMgdGhhdCBoYXZlIG11bHRpcGxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IG11bHRpY2hhcnMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpIDwgMikgY29udGludWU7CisgICAgICAgICAgICAgICAgbXVsdGljaGFycy5hZGQoa2V5KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbm93IHdlIHdpbGwgZ28gdGhyb3VnaCBlYWNoIG9mIHRoZW0uCisgICAgICAgICAgICAKKyAgICAgICAgICAgIENhc2VJdGVyYXRvciBjaSA9IG5ldyBDYXNlSXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGl0ID0gbXVsdGljaGFycy5pdGVyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBoZXJlIGlzIGEgbmFzdHkgY29tcGxpY2F0aW9uLiBUYWtlICdmZmknIGxpZ2F0dXJlLiBXZQorICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY2xvc2UgaXQsIHNpbmNlIHdlIHdvdWxkIG1pc3MgdGhlIGNvbWJpbmF0aW9uCisgICAgICAgICAgICAgICAgLy8gdGhhdCBpbmNsdWRlcyB0aGUgJ2ZpJyA9PiAiZmkiIGxpZ2F0dXJlCisgICAgICAgICAgICAgICAgLy8gc28gZmlyc3QgZG8gYSBwYXNzIHRocm91Z2gsIGFuZCBhZGQgc3Vic3RyaW5nIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgIC8vIHdlIGNhbGwgdGhpcyBhICdwYXJ0aWFsIGNsb3N1cmUnCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IHBhcnRpYWxDbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgICBwYXJ0aWFsQ2xvc3VyZS5hZGQoa2V5KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoa2V5KSA+IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgbXVsdGlJdDIgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtdWx0aUl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdGhlcktleSA9IChTdHJpbmcpIG11bHRpSXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlcktleS5sZW5ndGgoKSA+PSBrZXkubGVuZ3RoKCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vdCBjb21wbGV0ZWx5IGdlbmVyYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgd29ya3MgZm9yIHRoZSBhY3R1YWwgY2FzZWQgc3R1ZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNob3VsZCB3b3JrIGZvciBmdXR1cmUgY2hhcmFjdGVycywgc2luY2Ugd2Ugd29uJ3QgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vcmUgbGlnYXR1cmVzICYgb3RoZXIgb2RkaXRpZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0ga2V5LmluZGV4T2Yob3RoZXJLZXksIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFBvcyA9IHBvcyArIG90aGVyS2V5Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGtub3cgd2UgaGF2ZSBhIHByb3BlciBzdWJzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gZ2V0IHRoZSBjb21iaW5hdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KG90aGVyS2V5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpaSA9IDA7IGlpIDwgY2hvaWNlcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdGNod29yayA9IGtleS5zdWJzdHJpbmcoMCwgcG9zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjaG9pY2VzW2lpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBrZXkuc3Vic3RyaW5nKGVuZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChwYXRjaHdvcmspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBub3csIGZvciBlYWNoIHRoaW5nIGluIHRoZSBwYXJ0aWFsIGNsb3N1cmUsIGdldCBpdHMKKyAgICAgICAgICAgICAgICAvLyBjYXNlIGNsb3N1cmUgYW5kIGFkZCBpdCB0byB0aGUgZmluYWwgcmVzdWx0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFNldCBjbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsgLy8gdGhpcyB3aWxsIGJlIHRoZSByZWFsIGNsb3N1cmUKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBwYXJ0aWFsSXQgPSBwYXJ0aWFsQ2xvc3VyZS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0aWFsSXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gKFN0cmluZykgcGFydGlhbEl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2kucmVzZXQoa2V5Mik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybSBjbG9zdXJlCisgICAgICAgICAgICAgICAgICAgIC8qU3RyaW5nW10gY2hvaWNlcyA9IChTdHJpbmdbXSkgZnJvbUNhc2VGb2xkLmdldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChjaG9pY2VzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKHRlbXAgPSBjaS5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgaXQgb3V0LCBzbyB0aGF0IGl0IGNhbiBiZSBjdXQgYW5kIHBhc3RlZCBiYWNrIGludG8gdGhpcyBkb2N1bWVudC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBjbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdC8vICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShrZXkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcdHtcIiIgKyB0b0hleC50cmFuc2xpdGVyYXRlKGtleSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKWl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlwiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoaXRlbSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyA9PT09PT09PT09PT0gUFJJVkFURSBDTEFTUyBEQVRBID09PT09PT09PT09PSAKKyAgICAKKyAgICAvLyBwaWVjZXMgdGhhdCB3ZSB3aWxsIHB1dCB0b2dldGhlcgorICAgIC8vIGlzIG5vdCBjaGFuZ2VkIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGludCBjb3VudCA9IDA7CisgICAgcHJpdmF0ZSBTdHJpbmdbXVtdIHZhcmlhbnRzOworICAgIAorICAgIC8vIHN0YXRlIGluZm9ybWF0aW9uLCBjaGFuZ2VzIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgIHByaXZhdGUgaW50W10gY291bnRzOworICAgIAorICAgIC8vIGludGVybmFsIGJ1ZmZlciBmb3IgZWZmaWNpZW5jeQorICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG5leHRCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09ICAKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRvIGRpZmZlcmVudCBzb3VyY2UuIE9uY2UgcmVzZXQsIHRoZSBpdGVyYXRpb24gc3RhcnRzIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzdHJpbmcgdG8gZ2V0IGNhc2UgdmFyaWFudHMgZm9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgYXJyYXlzIHRvIHN0b3JlIHBpZWNlcworICAgICAgICAvLyB1c2luZyBsZW5ndGggbWlnaHQgYmUgc2xpZ2h0bHkgdG9vIGxvbmcsIGJ1dCB3ZSBkb24ndCBjYXJlIG11Y2gKKyAgICAgICAgCisgICAgICAgIGNvdW50cyA9IG5ldyBpbnRbc291cmNlLmxlbmd0aCgpXTsKKyAgICAgICAgdmFyaWFudHMgPSBuZXcgU3RyaW5nW3NvdXJjZS5sZW5ndGgoKV1bXTsKKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCB0aGUgc291cmNlLCBhbmQgYnJlYWsgdXAgaW50byBwaWVjZXMKKyAgICAgICAgLy8gZWFjaCBwaWVjZSBiZWNvbWVzIGFuIGFycmF5IG9mIGVxdWl2YWxlbnQgdmFsdWVzCisgICAgICAgIC8vIFRPRE86IGNvdWxkIG9wdGltaXplZCB0aGlzIGxhdGVyIHRvIGNvYWxlc2NlIGFsbCBzaW5nbGUgc3RyaW5nIHBpZWNlcworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHBpZWNlID0gbnVsbDsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBwaWVjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBmaW5kICpsb25nZXN0KiBtYXRjaGluZyBwaWVjZQorICAgICAgICAgICAgU3RyaW5nIGNhc2VGb2xkID0gbnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gZXhhY3RseSBvbmUgQ1AKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IG1heCA9IGkgKyBtYXhMZW5ndGg7CisgICAgICAgICAgICAgICAgaWYgKG1heCA+IHNvdXJjZS5sZW5ndGgoKSkgbWF4ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBtYXg7IGogPiBpOyAtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgcGllY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKGksIGopOworICAgICAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhc2VGb2xkICE9IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgd2UgZmFpbCwgcGljayBvbmUgY29kZSBwb2ludAorICAgICAgICAgICAgaWYgKGNhc2VGb2xkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IG5ldyBTdHJpbmdbXSB7cGllY2V9OyAvLyBzaW5nbGUgaXRlbSBzdHJpbmcKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHNbY291bnQrK10gPSAoU3RyaW5nW10pZnJvbUNhc2VGb2xkLmdldChjYXNlRm9sZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzdGFydCB0aGUgaXRlcmF0aW9uIGZyb20gdGhlIGJlZ2lubmluZywgYnV0IHdpdGggc2FtZSBzb3VyY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgY2FzZSB2YXJpYW50cy4KKyAgICAgKiBAcmV0dXJuIG5leHQgY2FzZSB2YXJpYW50LiBFYWNoIHZhcmlhbnQgd2lsbCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvdXJjZSB3aWxsLgorICAgICAqIFdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChkb25lKSByZXR1cm4gbnVsbDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIAorICAgICAgICAvLyBUT0RPIE9wdGltaXplIHNvIHdlIGtlZXAgdGhlIHBpZWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSBzbyBtdWNoIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIC8vIGdldCB0aGUgcmVzdWx0LCBhIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIG5leHRCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgbmV4dEJ1ZmZlci5hcHBlbmQodmFyaWFudHNbaV1bY291bnRzW2ldXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgcmlnaHQgc2V0IG9mIHBpZWNlcyB0byBjb25jYXRlbmF0ZQorICAgICAgICAKKyAgICAgICAgZm9yIChpID0gY291bnQtMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSsrOworICAgICAgICAgICAgaWYgKGNvdW50c1tpXSA8IHZhcmlhbnRzW2ldLmxlbmd0aCkgYnJlYWs7CisgICAgICAgICAgICBjb3VudHNbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiB3ZSBnbyB0b28gZmFyLCBiYWlsCisgICAgICAgIAorICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV4dEJ1ZmZlci50b1N0cmluZygpOyAgICAgICAgICAgIAorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB0ZXN0LCBqdXN0IHRvIHNlZSBob3cgdGhlIHN0dWZmIHdvcmtzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdENhc2VzID0geyJmaXNzIiwgImhcdTAzYTMifTsKKyAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gdGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3Rpbmc6ICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShpdGVtKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIGNpLnJlc2V0KGl0ZW0pOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b05hbWUudHJhbnNsaXRlcmF0ZSh0ZW1wKSk7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWw6ICIgKyBjb3VudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZW5lcmF0ZSBhIGxpc3Qgb2YgYWxsIGNhc2VsZXNzIGNoYXJhY3RlcnMgLS0gY2hhcmFjdGVycyB3aG9zZQorICAgICAgICAvLyBjYXNlIGNsb3N1cmUgaXMgdGhlbXNlbHZlcy4KKworICAgICAgICBVbmljb2RlU2V0IGNhc2VsZXNzID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgY2kucmVzZXQoY3ApOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGZvbGQgPSB0ZW1wOworICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gMSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY291bnQ9PTEgJiYgZm9sZC5lcXVhbHMoY3ApKSB7CisgICAgICAgICAgICAgICAgY2FzZWxlc3MuYWRkKGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyA9ICIgKyBjYXNlbGVzcy50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIFVuaWNvZGVTZXQgbm90X2xjID0gbmV3IFVuaWNvZGVTZXQoIls6XmxjOl0iKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgYSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGEuc2V0KG5vdF9sYyk7CisgICAgICAgIGEucmVtb3ZlQWxsKGNhc2VsZXNzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbOl5sYzpdIC0gY2FzZWxlc3MgPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIGEuc2V0KGNhc2VsZXNzKTsKKyAgICAgICAgYS5yZW1vdmVBbGwobm90X2xjKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyAtIFs6XmxjOl0gPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmE3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsNTEwIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworLyoqCisgKiBVdGlsaXRpZXMgdGhhdCBvdWdodCB0byBiZSBvbiBjb2xsZWN0aW9ucywgYnV0IGFyZW4ndAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGVjdGlvblV0aWxpdGllcyB7CisJLyoqCisJICogVXRpbGl0eSBsaWtlIEFycmF5cy5hc0xpc3QoKQorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlLCBNYXAgdGFyZ2V0LCBib29sZWFuIHJldmVyc2UpIHsKKwkJaW50IGZyb20gPSAwLCB0byA9IDE7CisJCWlmIChyZXZlcnNlKSB7CisJCQlmcm9tID0gMTsgdG8gPSAwOworCQl9CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgKytpKSB7CisgICAgCQl0YXJnZXQucHV0KHNvdXJjZVtpXVtmcm9tXSwgc291cmNlW2ldW3RvXSk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRhcmdldDsKKwl9CisJCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIGFkZEFsbChJdGVyYXRvciBzb3VyY2UsIENvbGxlY3Rpb24gdGFyZ2V0KSB7CisJCXdoaWxlIChzb3VyY2UuaGFzTmV4dCgpKSB7CisJCQl0YXJnZXQuYWRkKHNvdXJjZS5uZXh0KCkpOworCQl9CisJCXJldHVybiB0YXJnZXQ7IC8vIGZvciBjaGFpbmluZworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGludCBzaXplKEl0ZXJhdG9yIHNvdXJjZSkgeworCQlpbnQgcmVzdWx0ID0gMDsKKwkJd2hpbGUgKHNvdXJjZS5oYXNOZXh0KCkpIHsKKwkJCXNvdXJjZS5uZXh0KCk7CisJCQkrK3Jlc3VsdDsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlKSB7CisgICAgCXJldHVybiBhc01hcChzb3VyY2UsIG5ldyBIYXNoTWFwKCksIGZhbHNlKTsKKwl9CisJCisJLyoqCisJICogVXRpbGl0eSB0aGF0IG91Z2h0IHRvIGJlIG9uIE1hcAorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIHJlbW92ZUFsbChNYXAgbSwgQ29sbGVjdGlvbiBpdGVtc1RvUmVtb3ZlKSB7CisJICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtc1RvUmVtb3ZlLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkgICAgCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCSAgICAJbS5yZW1vdmUoaXRlbSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG07CisJfQorCQorCXB1YmxpYyBPYmplY3QgZ2V0Rmlyc3QoQ29sbGVjdGlvbiBjKSB7CisJCUl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworCQlpZiAoIWl0Lmhhc05leHQoKSkgcmV0dXJuIG51bGw7CisJCXJldHVybiBpdC5uZXh0KCk7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgT2JqZWN0IGdldEJlc3QoQ29sbGVjdGlvbiBjLCBDb21wYXJhdG9yIGNvbXAsIGludCBkaXJlY3Rpb24pIHsKKwkJSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisJCWlmICghaXQuaGFzTmV4dCgpKSByZXR1cm4gbnVsbDsKKwkJT2JqZWN0IGJlc3RTb0ZhciA9IGl0Lm5leHQoKTsKKwkJd2hpbGUgKGl0Lmhhc05leHQoKSkgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoY29tcC5jb21wYXJlKGl0ZW0sIGJlc3RTb0ZhcikgPT0gZGlyZWN0aW9uKSB7CisJCQkJYmVzdFNvRmFyID0gaXRlbTsKKwkJCX0KKwkJfQorCQlyZXR1cm4gYmVzdFNvRmFyOworCX0KKwkKKwlwdWJsaWMgaW50ZXJmYWNlIEZpbHRlciB7CisJCWJvb2xlYW4gbWF0Y2hlcyhPYmplY3Qgbyk7CisJfQorCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIHJlbW92ZUFsbChDb2xsZWN0aW9uIGMsIEZpbHRlciBmKSB7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjLCBGaWx0ZXIgZikgeworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCWlmICghZi5tYXRjaGVzKGl0ZW0pKSBpdC5yZW1vdmUoKTsKKwkJfQorCQlyZXR1cm4gYzsKKwl9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zU29tZShDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICAvLyBmYXN0IHBhdGhzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwIHx8IGIuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7IC8vIG11c3QgdGVzdCBhZnRlciBzaXplIHRlc3QuCisKKyAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBTb3J0ZWRTZXQgJiYgYiBpbnN0YW5jZW9mIFNvcnRlZFNldCkgeworICAgICAgICAgICAgU29ydGVkU2V0IGFhID0gKFNvcnRlZFNldCkgYTsKKyAgICAgICAgICAgIFNvcnRlZFNldCBiYiA9IChTb3J0ZWRTZXQpIGI7CisgICAgICAgICAgICBhYS5jb250YWluc0FsbChudWxsKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgIAlpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPiAwKSAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgCWZvciAoSXRlcmF0b3IgaXQgPSBhLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAJCWlmIChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zQWxsKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIC8vIGZhc3QgcGF0aHMKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChiLnNpemUoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGEuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFNvcnRlZFNldCAmJiBiIGluc3RhbmNlb2YgU29ydGVkU2V0KSB7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYWEgPSAoU29ydGVkU2V0KSBhOworICAgICAgICAgICAgU29ydGVkU2V0IGJiID0gKFNvcnRlZFNldCkgYjsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBhLmNvbnRhaW5zQWxsKGIpOworICAgIH0KKwkKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29udGFpbnNOb25lKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNTb21lKGEsIGIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIGZvciByZXN1bHRzIG9mIGdldENvbnRhaW5tZW50UmVsYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBBTExfRU1QVFkgPSAwLAorICAgICAgICBOT1RfQV9TVVBFUlNFVF9CID0gMSwKKyAgICAgICAgTk9UX0FfRElTSk9JTlRfQiA9IDIsCisgICAgICAgIE5PVF9BX1NVQlNFVF9CID0gNCwKKyAgICAgICAgTk9UX0FfRVFVQUxTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVQlNFVF9PRl9CID0gTk9UX0FfRElTSk9JTlRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVUEVSU0VUX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IsCisgICAgICAgIEFfUFJPUEVSX09WRVJMQVBTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IgfCBOT1RfQV9TVVBFUlNFVF9COworICAgIAorICAgIC8qKgorICAgICAqIEFzc2Vzc2VzIGFsbCB0aGUgcG9zc2libGUgY29udGFpbm1lbnQgcmVsYXRpb25zIGJldHdlZW4gY29sbGVjdGlvbnMgQSBhbmQgQiB3aXRoIG9uZSBjYWxsLjxicj4KKyAgICAgKiBSZXR1cm5zIGFuIGludCB3aXRoIGJpdHMgc2V0LCBhY2NvcmRpbmcgdG8gYSAiVmVubiBEaWFncmFtIiB2aWV3IG9mIEEgdnMgQi48YnI+CisgICAgICogTk9UX0FfU1VQRVJTRVRfQjogYSAtIGIgIT0ge308YnI+CisgICAgICogTk9UX0FfRElTSk9JTlRfQjogYSAqIGIgIT0ge30gIC8vICogaXMgaW50ZXJzZWN0czxicj4KKyAgICAgKiBOT1RfQV9TVUJTRVRfQjogYiAtIGEgIT0ge308YnI+CisgICAgICogVGh1cyB0aGUgYml0cyBjYW4gYmUgdXNlZCB0byBnZXQgdGhlIGZvbGxvd2luZyByZWxhdGlvbnM6PGJyPgorICAgICAqIGZvciBBX1NVUEVSU0VUX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VQRVJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9TVUJTRVRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVUJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9FUVVBTFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9FUVVBTFNfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9ESVNKT0lOVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0RJU0pPSU5UX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfT1ZFUkxBUFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9CKSAhPSAwPGJyPgorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb250YWlubWVudFJlbGF0aW9uKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gKGIuc2l6ZSgpID09IDApID8gQUxMX0VNUFRZIDogTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAgICAgfSBlbHNlIGlmIChiLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gTk9UX0FfU1VCU0VUX0I7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIC8vIFdBUk5JTkc6IG9uZSBtaWdodCB0aGluayB0aGF0IHRoZSBmb2xsb3dpbmcgY2FuIGJlIHNob3J0LWNpcmN1aXRlZCwgYnkgbG9va2luZyBhdAorICAgICAgICAvLyB0aGUgc2l6ZXMgb2YgYSBhbmQgYi4gSG93ZXZlciwgdGhpcyB3b3VsZCBmYWlsIGluIGdlbmVyYWwsIHdoZXJlIGEgZGlmZmVyZW50IGNvbXBhcmF0b3IgaXMgYmVpbmcKKyAgICAgICAgLy8gdXNlZCBpbiB0aGUgdHdvIGNvbGxlY3Rpb25zLiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBubyBmYWlsc2FmZSB3YXkgdG8gdGVzdCBmb3IgdGhhdC4KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGEuaXRlcmF0b3IoKTsgcmVzdWx0ICE9IDYgJiYgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgcmVzdWx0IHw9IChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpID8gTk9UX0FfRElTSk9JTlRfQiA6IE5PVF9BX1NVQlNFVF9COworICAgICAgICB9CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBiLml0ZXJhdG9yKCk7IChyZXN1bHQgJiAzKSAhPSAzICYmIGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoYS5jb250YWlucyhpdC5uZXh0KCkpKSA/IE5PVF9BX0RJU0pPSU5UX0IgOiBOT1RfQV9TVVBFUlNFVF9COworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisJcHVibGljIHN0YXRpYyBTdHJpbmcgcmVtb3ZlKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgcmVtb3ZhbHMpIHsKKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJaW50IGNwOworCQlmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisJCQljcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworCQkJaWYgKCFyZW1vdmFscy5jb250YWlucyhjcCkpIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZXR0eVByaW50KFVuaWNvZGVTZXQgdXNldCwgQ29tcGFyYXRvciBjb21wLCBDb21wYXJhdG9yIHNwYWNlQ29tcGFyYXRvciwgYm9vbGVhbiBjb21wcmVzc1JhbmdlcykgeworICAgICAgICBBcHBlbmRlciByZXN1bHQgPSBuZXcgQXBwZW5kZXIoY29tcHJlc3NSYW5nZXMsIHNwYWNlQ29tcGFyYXRvcik7CisgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGNvbXBhcmlzb24gc2VwYXJhdGVzIGFsbCBzdHJpbmdzLCBldmVuIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgb25lcworICAgICAgICBDb21wYXJhdG9yIGNvbXAyID0gbmV3IE11bHRpQ29tcGFyYXRvcihuZXcgQ29tcGFyYXRvcltdIHtjb21wLCBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLGZhbHNlLDApfSk7CisgICAgICAgIFNldCBvcmRlcmluZyA9IG5ldyBUcmVlU2V0KGNvbXAyKTsKKyAgICAgICAgZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHVzZXQpOyBpdC5uZXh0KCk7KSB7CisgICAgICAgICAgICBvcmRlcmluZy5hZGQoaXQuZ2V0U3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlsiKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG9yZGVyaW5nLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRVbmljb2RlU2V0SXRlbSgoU3RyaW5nKSBpdC5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5mbHVzaExhc3QoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXSIpOworICAgICAgICBTdHJpbmcgc3Jlc3VsdCA9IHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBVbmljb2RlU2V0IGRvdWJsZUNoZWNrID0gbmV3IFVuaWNvZGVTZXQoc3Jlc3VsdCk7CisgICAgICAgIGlmICghdXNldC5lcXVhbHMoZG91YmxlQ2hlY2spKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWlsdXJlIHRvIHJvdW5kLXRyaXAgaW4gcHJldHR5LXByaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNyZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEFwcGVuZGVyIHsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgdGFyZ2V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBwcml2YXRlIGludCBmaXJzdENvZGVQb2ludCA9IC0yOworICAgICAgICBwcml2YXRlIGludCBsYXN0Q29kZVBvaW50ID0gLTI7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBjb21wcmVzc1JhbmdlczsKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yIHNwYWNlQ29tcDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbGFzdFN0cmluZyA9ICIiOworCisgICAgICAgIHB1YmxpYyBBcHBlbmRlcihib29sZWFuIGNvbXByZXNzUmFuZ2VzLCBDb21wYXJhdG9yIHNwYWNlQ29tcCkgeworICAgICAgICAgICAgdGhpcy5jb21wcmVzc1JhbmdlcyA9IGNvbXByZXNzUmFuZ2VzOworICAgICAgICAgICAgdGhpcy5zcGFjZUNvbXAgPSBzcGFjZUNvbXA7CisgICAgICAgIH0KKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kVW5pY29kZVNldEl0ZW0oU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4ocywgMSkpIHsKKyAgICAgICAgICAgICAgICBmbHVzaExhc3QoKTsKKyAgICAgICAgICAgICAgICBhZGRTcGFjZShzKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCJ7Iik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kUXVvdGVkKGNwID0gVVRGMTYuY2hhckF0KHMsIGkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgifSIpOworICAgICAgICAgICAgICAgIGxhc3RTdHJpbmcgPSBzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbXByZXNzUmFuZ2VzKQorICAgICAgICAgICAgICAgICAgICBmbHVzaExhc3QoKTsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gbGFzdENvZGVQb2ludCArIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdENvZGVQb2ludCA9IGNwOyAvLyBjb250aW51ZSByYW5nZQorICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHN0YXJ0IHJhbmdlCisgICAgICAgICAgICAgICAgICAgIGZsdXNoTGFzdCgpOworICAgICAgICAgICAgICAgICAgICBmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSBjcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYWRkU3BhY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdCkgeworICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNwYWNlQ29tcC5jb21wYXJlKHMsIGxhc3RTdHJpbmcpICE9IDApIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKFVURjE2LmNoYXJBdChzLDApKTsKKwkgICAgICAgICAgICBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgfHwgdHlwZSA9PSBVQ2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKSB7CisJICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJyAnKTsKKwkgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBmbHVzaExhc3QoKSB7CisgICAgICAgICAgICBpZiAobGFzdENvZGVQb2ludCA+PSAwKSB7CisgICAgICAgICAgICAgICAgYWRkU3BhY2UoVVRGMTYudmFsdWVPZihmaXJzdENvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdENvZGVQb2ludCAhPSBsYXN0Q29kZVBvaW50KSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZFF1b3RlZChmaXJzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoZmlyc3RDb2RlUG9pbnQgKyAxID09IGxhc3RDb2RlUG9pbnQgPyAnICcgOiAnLScpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcHBlbmRRdW90ZWQobGFzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgbGFzdFN0cmluZyA9IFVURjE2LnZhbHVlT2YobGFzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgZmlyc3RDb2RlUG9pbnQgPSBsYXN0Q29kZVBvaW50ID0gLTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kUXVvdGVkKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29kZVBvaW50KSB7CisgICAgICAgICAgICBjYXNlICdbJzogLy8gU0VUX09QRU46CisgICAgICAgICAgICBjYXNlICddJzogLy8gU0VUX0NMT1NFOgorICAgICAgICAgICAgY2FzZSAnLSc6IC8vIEhZUEhFTjoKKyAgICAgICAgICAgIGNhc2UgJ14nOiAvLyBDT01QTEVNRU5UOgorICAgICAgICAgICAgY2FzZSAnJic6IC8vIElOVEVSU0VDVElPTjoKKyAgICAgICAgICAgIGNhc2UgJ1xcJzogLy9CQUNLU0xBU0g6CisgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgIGNhc2UgJ30nOgorICAgICAgICAgICAgY2FzZSAnJCc6CisgICAgICAgICAgICBjYXNlICc6JzoKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBFc2NhcGUgd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjb2RlUG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRhcmdldCwgY29kZVBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKHMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTXVsdGlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIAorICAgICAgICBwdWJsaWMgTXVsdGlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmF0b3JzW2ldLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyBVbmljb2RlIHNldCB0byBmbGF0dGVuIHRoZSBzdHJpbmdzLiBFZyBbYWJje2RhfV0gPT4gW2FiY2RdCisgICAgICogUmV0dXJucyB0aGUgc2V0IGZvciBjaGFpbmluZy4KKyAgICAgKiBAcGFyYW0gZXhlbXBsYXIxCisgICAgICogQHJldHVybgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmbGF0dGVuKFVuaWNvZGVTZXQgZXhlbXBsYXIxKSB7CisJCVVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKwkJYm9vbGVhbiBnb3RTdHJpbmcgPSBmYWxzZTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyMSk7IGl0Lm5leHRSYW5nZSgpOykgeworCQkJaWYgKGl0LmNvZGVwb2ludCA9PSBpdC5JU19TVFJJTkcpIHsKKwkJCQlyZXN1bHQuYWRkQWxsKGl0LnN0cmluZyk7CisJCQkJZ290U3RyaW5nID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisJCQl9CisJCX0KKwkJaWYgKGdvdFN0cmluZykgZXhlbXBsYXIxLnNldChyZXN1bHQpOworCQlyZXR1cm4gZXhlbXBsYXIxOworCX0KKworCS8qKgorCSAqIEZvciBwcm9kdWNpbmcgZmlsdGVyZWQgaXRlcmF0b3JzCisJICovCisJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJlZEl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIGJhc2VJdGVyYXRvcjsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEVNUFRZID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRE9ORSA9IG5ldyBPYmplY3QoKTsKKwkJcHJpdmF0ZSBPYmplY3QgbmV4dE9iamVjdCA9IEVNUFRZOworCQlwdWJsaWMgRmlsdGVyZWRJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yKSB7CisJCQl0aGlzLmJhc2VJdGVyYXRvciA9IGJhc2VJdGVyYXRvcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiRG9lc24ndCBzdXBwb3J0IHJlbW92YWwiKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlPYmplY3QgcmVzdWx0ID0gbmV4dE9iamVjdDsKKwkJCW5leHRPYmplY3QgPSBFTVBUWTsKKwkJCXJldHVybiByZXN1bHQ7CisJCX0JCQorCQlwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworCQkJaWYgKG5leHRPYmplY3QgPT0gRE9ORSkgcmV0dXJuIGZhbHNlOworCQkJaWYgKG5leHRPYmplY3QgIT0gRU1QVFkpIHJldHVybiB0cnVlOworCQkJd2hpbGUgKGJhc2VJdGVyYXRvci5oYXNOZXh0KCkpIHsKKwkJCQluZXh0T2JqZWN0ID0gYmFzZUl0ZXJhdG9yLm5leHQoKTsKKwkJCQlpZiAoaXNJbmNsdWRlZChuZXh0T2JqZWN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCQluZXh0T2JqZWN0ID0gRE9ORTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBjbGFzcyBQcmVmaXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIFN0cmluZyBwcmVmaXg7CisJCXB1YmxpYyBQcmVmaXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBTdHJpbmcgcHJlZml4KSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMucHJlZml4ID0gcHJlZml4OworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuICgoU3RyaW5nKWl0ZW0pLnN0YXJ0c1dpdGgocHJlZml4KTsKKwkJfQorCX0KKwkKKwlwdWJsaWMgc3RhdGljIGNsYXNzIFJlZ2V4SXRlcmF0b3IgZXh0ZW5kcyBGaWx0ZXJlZEl0ZXJhdG9yIHsKKwkJcHJpdmF0ZSBNYXRjaGVyIG1hdGNoZXI7CisJCXB1YmxpYyBSZWdleEl0ZXJhdG9yIHNldChJdGVyYXRvciBiYXNlSXRlcmF0b3IsIE1hdGNoZXIgbWF0Y2hlcikgeworCQkJc3VwZXIuc2V0KGJhc2VJdGVyYXRvcik7CisJCQl0aGlzLm1hdGNoZXIgPSBtYXRjaGVyOworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuIG1hdGNoZXIucmVzZXQoKFN0cmluZylpdGVtKS5tYXRjaGVzKCk7CisJCX0KKwl9CisKK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db21wYWN0QXJyYXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db21wYWN0QXJyYXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM3YTc2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RDaGFyQXJyYXk7CisKKy8qKgorICogQHNpbmNlIHJlbGVhc2UgMi4yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0QXJyYXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIG5ldyBDb21wYWN0QXJyYXlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qnl0ZUFycmF5Q292ZXJhZ2UoKSB7CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmEgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgpOworICAgIGNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoYnl0ZSkweGRmKTsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYTIgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgoYnl0ZSkweGRmKTsKKyAgICBpZiAoY2JhLmVxdWFscyhjYmEyKSkgeworICAgICAgICBlcnJsbigidW5lcXVhbCBieXRlIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisgICAgfQorICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhMyA9IChDb21wYWN0Qnl0ZUFycmF5KWNiYS5jbG9uZSgpOworCisgICAgbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2JhLmVxdWFscyhudWxsKSk7CisgICAgbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2JhLmVxdWFscyhjYmEpKTsKKyAgICBsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisgICAgbG9nbG4oImVxdWFscyBib2d1czogIiArIGNiYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisgICAgbG9nbG4oImhhc2g6ICIgKyBjYmEuaGFzaENvZGUoKSk7CisKKyAgICBjYmEuY29tcGFjdCh0cnVlKTsKKyAgICBjYmEuY29tcGFjdCh0cnVlKTsKKworICAgIGNoYXJbXSB4YSA9IGNiYS5nZXRJbmRleEFycmF5KCk7CisgICAgYnl0ZVtdIHZhID0gY2JhLmdldFZhbHVlQXJyYXkoKTsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYTQgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSh4YSwgdmEpOworCisgICAgU3RyaW5nIHhzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHhhKTsKKyAgICBTdHJpbmcgdnMgPSBVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcodmEpOworICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhNSA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHhzLCB2cyk7CisKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTQpKTsKKyAgICAKKyAgICAgIGNiYTQuY29tcGFjdChmYWxzZSk7CisgICAgbG9nbG4oImVxdWFsczogIiArIGNiYTQuZXF1YWxzKGNiYTUpKTsKKworICAgIGNiYTUuY29tcGFjdCh0cnVlKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworCisgICAgY2JhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworICAgIGNiYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoYnl0ZSkweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisKKyAgICBjYmEzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworICAgIGNiYS5jb21wYWN0KCk7CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmE2ID0gKENvbXBhY3RCeXRlQXJyYXkpY2JhLmNsb25lKCk7CisgICAgbG9nbG4oImNsb25lZCBjb21wYWN0IGVxdWFsczogIiArIGNiYS5lcXVhbHMoY2JhNikpOworCisgICAgY2JhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChieXRlKTB4ZWUpOworICAgIGxvZ2xuKCJtb2RpZmllZCBjbG9uZTogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKworICAgIGNiYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4MTAwLCAoY2hhcikweDEwNCwgKGJ5dGUpMHhmZSk7CisgICAgZm9yIChpbnQgaSA9IDB4MTAwOyBpIDwgMHgxMDU7ICsraSkgeworICAgICAgICBjYmEzLnNldEVsZW1lbnRBdCgoY2hhcilpLCAoYnl0ZSkweGZlKTsKKyAgICB9CisgICAgbG9nbG4oImRvdWJsZSBtb2RpZmllZDogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckFycmF5Q292ZXJhZ2UoKSB7CisgICAgLy8gdjEuOCBmYWlscyB3aXRoIGV4dGVuc2l2ZSBjb21wYWN0aW9uLCBzbyBzZXQgdG8gZmFsc2UKKyAgICBmaW5hbCBib29sZWFuIEVYVEVOU0lWRSA9IGZhbHNlOworCisgICAgQ29tcGFjdENoYXJBcnJheSBjY2EgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgpOworICAgIGNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoY2hhcikweGRmKTsKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYTIgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgoY2hhcikweGRmKTsKKyAgICBpZiAoY2NhLmVxdWFscyhjY2EyKSkgeworICAgICAgICBlcnJsbigidW5lcXVhbCBjaGFyIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisgICAgfQorICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhMyA9IChDb21wYWN0Q2hhckFycmF5KWNjYS5jbG9uZSgpOworCisgICAgbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2NhLmVxdWFscyhudWxsKSk7CisgICAgbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2NhLmVxdWFscyhjY2EpKTsKKyAgICBsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisgICAgbG9nbG4oImVxdWFscyBib2d1czogIiArIGNjYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisgICAgbG9nbG4oImhhc2g6ICIgKyBjY2EuaGFzaENvZGUoKSk7CisKKyAgICBjY2EuY29tcGFjdChFWFRFTlNJVkUpOworICAgIGNjYS5jb21wYWN0KEVYVEVOU0lWRSk7CisKKyAgICBjaGFyW10geGEgPSBjY2EuZ2V0SW5kZXhBcnJheSgpOworICAgIGNoYXJbXSB2YSA9IGNjYS5nZXRWYWx1ZUFycmF5KCk7CisgICAgQ29tcGFjdENoYXJBcnJheSBjY2E0ID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoeGEsIHZhKTsKKworICAgIFN0cmluZyB4cyA9IFV0aWxpdHkuYXJyYXlUb1JMRVN0cmluZyh4YSk7CisgICAgU3RyaW5nIHZzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHZhKTsKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYTUgPSBuZXcgQ29tcGFjdENoYXJBcnJheSh4cywgdnMpOworCisgICAgbG9nbG4oImVxdWFsczogIiArIGNjYTQuZXF1YWxzKGNjYTUpKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2NhLmVxdWFscyhjY2E0KSk7CisKKyAgICBjY2E0LmNvbXBhY3QoZmFsc2UpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjY2E0LmVxdWFscyhjY2E1KSk7CisKKyAgICBjY2E1LmNvbXBhY3QoRVhURU5TSVZFKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2NhNC5lcXVhbHMoY2NhNSkpOworCisgICAgY2NhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKworICAgIGNjYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisKKyAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICAvLyBhZnRlciBzZXRFbGVtZW50QXQgaXNDb21wYWN0IGlzIHNldCB0byBmYWxzZQorICAgIGNjYTMuY29tcGFjdCh0cnVlKTsKKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAgICAgLy8gYWZ0ZXIgc2V0RWxlbWVudEF0IGlzQ29tcGFjdCBpcyBzZXQgdG8gZmFsc2UKKyAgICBjY2EzLmNvbXBhY3QoKTsKKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICAvLyB2MS44IGZhaWxzIHdpdGggZXh0ZW5zaXZlIGNvbXBhY3Rpb24sIGFuZCBkZWZhdWx0cyBleHRlbnNpdmUsIHNvIGRvbid0IGNvbXBhY3QKKyAgICAvLyBjY2EuY29tcGFjdCgpOworICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhNiA9IChDb21wYWN0Q2hhckFycmF5KWNjYS5jbG9uZSgpOworICAgIGxvZ2xuKCJjbG9uZWQgY29tcGFjdCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTYpKTsKKworICAgIGNjYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGVlKTsKKyAgICBsb2dsbigibW9kaWZpZWQgY2xvbmU6ICIgKyBjY2EzLmVxdWFscyhjY2E2KSk7CisKKyAgICBjY2E2LnNldEVsZW1lbnRBdCgoY2hhcikweDEwMCwgKGNoYXIpMHgxMDQsIChjaGFyKTB4ZmUpOworICAgIGZvciAoaW50IGkgPSAweDEwMDsgaSA8IDB4MTA1OyArK2kpIHsKKyAgICAgICAgY2NhMy5zZXRFbGVtZW50QXQoKGNoYXIpaSwgKGNoYXIpMHhmZSk7CisgICAgfQorICAgIGxvZ2xuKCJkb3VibGUgbW9kaWZpZWQ6ICIgKyBjY2EzLmVxdWFscyhjY2E2KSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ3VycmVuY3lUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DdXJyZW5jeVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTBhOGEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ3VycmVuY3lUZXN0LmphdmEKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IERlY2VtYmVyIDE4IDIwMDIKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBDdXJyZW5jeQorICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3lUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDdXJyZW5jeVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBvZiBiYXNpYyBBUEkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAgICAgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICAvKmludCBoYXNoID0gKi91c2QuaGFzaENvZGUoKTsKKyAgICAgICAgQ3VycmVuY3kganB5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIkpQWSIpOworICAgICAgICBpZiAodXNkLmVxdWFscyhqcHkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEID09IEpQWSIpOworICAgICAgICB9CisgICAgICAgIGlmICh1c2QuZXF1YWxzKCJhYmMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVTRCA9PSAoU3RyaW5nKSIpOworICAgICAgICB9CisgICAgICAgIGlmICh1c2QuZXF1YWxzKG51bGwpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEID09IChudWxsKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghdXNkLmVxdWFscyh1c2QpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEICE9IFVTRCIpOworICAgICAgICB9CisKKyAgICAgICAgTG9jYWxlW10gYXZhaWwgPSBDdXJyZW5jeS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmKGF2YWlsPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRBdmFpbGFibGVMb2NhbGVzIHJldHVybmVkIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgdHJ5IHsKKyAgICAgIHVzZC5nZXROYW1lKFVMb2NhbGUuVVMsIDUsIG5ldyBib29sZWFuWzFdKTsKKyAgICAgIGVycmxuKCJleHBlY3RlZCBnZXROYW1lIHdpdGggaW52YWxpZCB0eXBlIHBhcmFtZXRlciB0byB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgCWxvZ2xuKCJQQVNTOiBnZXROYW1lIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHJlZ2lzdHJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0cmF0aW9uKCkgeworICAgICAgICBmaW5hbCBDdXJyZW5jeSBqcHkgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiSlBZIik7CisgICAgICAgIGZpbmFsIEN1cnJlbmN5IHVzZCA9IEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICB0cnkgeworICAgICAgQ3VycmVuY3kudW5yZWdpc3RlcihudWxsKTsgLy8gc2hvdWxkIGZhaWwsIGNvdmVyYWdlCisgICAgICBlcnJsbigiZXhwZWN0ZWQgdW5yZWdpc3RlciBvZiBudWxsIHRvIHRocm93IGV4Y2VwdGlvbiIpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAJbG9nbG4oIlBBU1M6IHVucmVnaXN0ZXIgb2YgbnVsbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICB9CisKKyAgICBpZiAoQ3VycmVuY3kudW5yZWdpc3RlcigiIikpIHsgLy8gY292ZXJhZ2UKKyAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyIGJlZm9yZSByZWdpc3RlciBlcnJvbmVvdXNseSBzdWNjZWVkZWQiKTsKKyAgICB9CisKKyAgICAgICAgVUxvY2FsZSBmdV9GVSA9IG5ldyBVTG9jYWxlKCJmdV9GVSIpOworCisgICAgICAgIE9iamVjdCBrZXkxID0gQ3VycmVuY3kucmVnaXN0ZXJJbnN0YW5jZShqcHksIFVMb2NhbGUuVVMpOworICAgICAgICBPYmplY3Qga2V5MiA9IEN1cnJlbmN5LnJlZ2lzdGVySW5zdGFuY2UoanB5LCBmdV9GVSk7CisKKyAgICAgICAgQ3VycmVuY3kgbnVzID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKCFudXMuZXF1YWxzKGpweSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJleHBlY3RlZCAiICsganB5ICsgIiBidXQgZ290OiAiICsgbnVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbnZlcmFnZSwgbWFrZSBzdXJlIGRlZmF1bHQgZmFjdG9yeSB3b3JrcworICAgICAgICBDdXJyZW5jeSBudXMxID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgaWYgKCFudXMxLmVxdWFscyhqcHkpKSB7CisgICAgICAgICAgICBlcnJsbigiZXhwZWN0ZWQgIiArIGpweSArICIgYnV0IGdvdDogIiArIG51czEpOworICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDdXJyZW5jeS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGZ1X0ZVKSkgeworICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBmaW5kIGxvY2FsZSIgKyBmdV9GVSArICIgaW4gY3VycmVuY3kgbG9jYWxlcyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFDdXJyZW5jeS51bnJlZ2lzdGVyKGtleTEpKSB7CisgICAgICAgICAgICBlcnJsbigidW5hYmxlIHRvIHVucmVnaXN0ZXIgY3VycmVuY3kgdXNpbmcga2V5MSIpOworICAgICAgICB9CisgICAgICAgIGlmICghQ3VycmVuY3kudW5yZWdpc3RlcihrZXkyKSkgeworICAgICAgICAgICAgZXJybG4oInVuYWJsZSB0byB1bnJlZ2lzdGVyIGN1cnJlbmN5IHVzaW5nIGtleTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIEN1cnJlbmN5IG51czIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoIW51czIuZXF1YWxzKHVzZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJleHBlY3RlZCAiICsgdXNkICsgIiBidXQgZ290OiAiICsgbnVzMik7CisgICAgICAgIH0KKworICAgICAgICBsb2NhbGVzID0gQ3VycmVuY3kuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoZnVfRlUpKSB7CisgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmb3VuZCkgeworICAgICAgICAgICAgZXJybG4oImZvdW5kIGxvY2FsZSIgKyBmdV9GVSArICIgaW4gY3VycmVuY3kgbG9jYWxlcyBhZnRlciB1bnJlZ2lzdGVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG5hbWVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lcygpIHsKKyAgICAgICAgLy8gRG8gYSBiYXNpYyBjaGVjayBvZiBnZXROYW1lKCkKKyAgICAgICAgLy8gVVNEIHsgIlVTJCIsICJVUyBEb2xsYXIiICAgICAgICAgICAgfSAvLyAwNC8wNC8xNzkyLQorICAgICAgICBVTG9jYWxlIGVuID0gVUxvY2FsZS5FTkdMSVNIOworICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICAvLyBXYXJuaW5nOiBIQVJELUNPREVEIExPQ0FMRSBEQVRBIGluIHRoaXMgdGVzdC4gIElmIGl0IGZhaWxzLCBDSEVDSworICAgICAgICAvLyBUSEUgTE9DQUxFIERBVEEgYmVmb3JlIGRpdmluZyBpbnRvIHRoZSBjb2RlLgorICAgICAgICBpZiAoIW5vRGF0YSgpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXROYW1lKFNZTUJPTF9OQU1FKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlVTJCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdXNkLmdldE5hbWUoZW4sIEN1cnJlbmN5LlNZTUJPTF9OQU1FLCBpc0Nob2ljZUZvcm1hdCkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJVU0QuZ2V0TmFtZShMT05HX05BTUUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVVMgRG9sbGFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2QuZ2V0TmFtZShlbiwgQ3VycmVuY3kuTE9OR19OQU1FLCBpc0Nob2ljZUZvcm1hdCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE8gYWRkIG1vcmUgdGVzdHMgbGF0ZXIKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIEN1cnJlbmN5IHVzZCA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJVU0QiKTsKKyAgICAgICAgaWYgKCFub0RhdGEoKSkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXRTeW1ib2woKSIsCisgICAgICAgICAgICAgICAgIiQiLAorICAgICAgICAgICAgICAgIHVzZC5nZXRTeW1ib2woKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJVU0QuZ2V0TG9jYWxlKCkiLAorICAgICAgICAJCVVMb2NhbGUuUk9PVCwKKwkJCQl1c2QuZ2V0TG9jYWxlKG51bGwpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lLZXl3b3JkKCkgeworICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUoInRoX1RIQGNvbGxhdGlvbj10cmFkaXRpb25hbDtjdXJyZW5jeT1RUVEiKTsKKyAgICBDdXJyZW5jeSBjdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpOworICAgIGlmICghIlFRUSIuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgZXJybG4oImdvdCB1bmV4cGVjdGVkIGN1cnJlbmN5OiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YUlucHV0Q29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YUlucHV0Q29tcHJlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxY2IxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhSW5wdXRDb21wcmVzc29yLmphdmEKQEAgLTAsMCArMSwyMzUgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CisvL2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKy8vaW1wb3J0IGphdmEudXRpbC5NYXA7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFNpbXBsZSBkYXRhIGlucHV0IGNvbXByZXNzb3IuIE5vdGhpbmcgZmFuY3ksIGJ1dCBtdWNoIHNtYWxsZXIgZm9vdHByaW50IGZvcgorICogaW50cyBhbmQgbWFueSBzdHJpbmdzLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YUlucHV0Q29tcHJlc3NvciBpbXBsZW1lbnRzIE9iamVjdElucHV0IHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XID0gZmFsc2U7CisKKyAgICBwcml2YXRlIE9iamVjdElucHV0IGRhdGFJbnB1dDsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFN0cmluZ0J1ZmZlciBzdHJpbmdCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICBwdWJsaWMgRGF0YUlucHV0Q29tcHJlc3NvcihPYmplY3RJbnB1dCBkYXRhSW5wdXQpIHsKKyAgICAgICAgdGhpcy5kYXRhSW5wdXQgPSBkYXRhSW5wdXQ7CisgICAgfQorCisgICAgcHVibGljIERhdGFJbnB1dCBnZXREYXRhSW5wdXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0YUlucHV0KE9iamVjdElucHV0IGRhdGFJbnB1dCkgeworICAgICAgICB0aGlzLmRhdGFJbnB1dCA9IGRhdGFJbnB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZEJvb2xlYW4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYnl0ZSByZWFkQnl0ZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVbnNpZ25lZEJ5dGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWRVbnNpZ25lZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZG91YmxlIHJlYWREb3VibGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWREb3VibGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmxvYXQgcmVhZEZsb2F0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkRmxvYXQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFJbnB1dC5yZWFkRnVsbHkoYik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhSW5wdXQucmVhZEZ1bGx5KGIsIG9mZiwgbGVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHNraXBCeXRlcyhpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5za2lwQnl0ZXMobik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZExpbmUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGF2YWlsYWJsZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQuYXZhaWxhYmxlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YUlucHV0LmNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZCgpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZChiKTsKKyAgICB9CisgICAgcHVibGljIGludCByZWFkKGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWQoYiwgb2ZmLCBsZW4pOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0IHJlYWRPYmplY3QoKSB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWRPYmplY3QoKTsKKyAgICB9CisgICAgcHVibGljIGxvbmcgc2tpcChsb25nIG4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQuc2tpcChuKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC50b1N0cmluZygpOworICAgIH0KKyAgICAvLyA9PT09IE5ldyBSb3V0aW5lcyA9PT09CisKKyAgICBwdWJsaWMgY2hhciByZWFkQ2hhcigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoY2hhcikgcmVhZFVMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIHNob3J0IHJlYWRTaG9ydCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoc2hvcnQpIHJlYWRMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkVW5zaWduZWRTaG9ydCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoaW50KSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVU2hvcnQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gKGludCkgcmVhZFVMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkSW50KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIHJlYWRMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkVUludCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoaW50KSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRDaGFycyhpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzdHJpbmdCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBpbnQgY3AgPSAoaW50KSByZWFkVUxvbmcoKTsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChzdHJpbmdCdWZmZXIsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5nQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkVVRGKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGxlbiA9IChpbnQpIHJlYWRVTG9uZygpOworICAgICAgICByZXR1cm4gcmVhZENoYXJzKGxlbik7CisgICAgfQorCisgICAgcHVibGljIGxvbmcgcmVhZExvbmcoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgbG9uZyBpbnB1dCA9IHJlYWRCeXRlKCk7CisgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBvZmZzZXQgKz0gNzsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gKHJlc3VsdCAmIDEpICE9IDA7IC8vIGdldCBzaWduIGJpdCBmcm9tIHRoZSBib3R0b20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGludmVydAorICAgICAgICByZXN1bHQgPj4+PSAxOworICAgICAgICBpZiAobmVnYXRpdmUpCisgICAgICAgICAgICByZXN1bHQgPSB+cmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBsb25nIHJlYWRVTG9uZygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7IC8vIHJlYWQgc2VxdWVuY2Ugb2YgNyBiaXRzLCB3aXRoIHRvcCBiaXQgPSAxIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgICAgIGludCBpbnB1dCA9IHJlYWRCeXRlKCk7CisgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIG9mZnNldCArPSA3OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogIAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSByZWFkU3RyaW5nU2V0KENvbGxlY3Rpb24gYXZhaWxhYmxlVmFsdWVzKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IHNpemUgPSByZWFkVUludCgpOworICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJyZWFkU3RyaW5nU2V0Iik7CisgICAgICAgIE9iamVjdFtdIHZhbHVlc0xpc3QgPSBuZXcgT2JqZWN0W3NpemUgKyAxXTsKKyAgICAgICAgLy8gZmlyc3QgaXRlbSBpcyBudWxsCisgICAgICAgIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisgICAgICAgIFJlYWRQb29sIHRyYWlsaW5nUG9vbCA9IG5ldyBSZWFkUG9vbCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgaW50IGNvbW1vbiA9IHJlYWRVSW50KCk7CisgICAgICAgICAgICBib29sZWFuIGluUG9vbCA9IChjb21tb24gJiAxKSAhPSAwOworICAgICAgICAgICAgY29tbW9uID4+Pj0gMTsKKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oY29tbW9uKTsKKyAgICAgICAgICAgIFN0cmluZyBjdXJyZW50OworICAgICAgICAgICAgaWYgKGluUG9vbCkgeworICAgICAgICAgICAgICAgIGludCBwb29sSW5kZXggPSByZWFkVUludCgpOworICAgICAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIHBvb2xJbmRleCk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IChTdHJpbmcpIHRyYWlsaW5nUG9vbC5nZXQocG9vbEluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHJlYWRVVEYoKTsKKyAgICAgICAgICAgICAgICB0cmFpbGluZ1Bvb2wuYWRkKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVzTGlzdFtpICsgMV0gPSBsYXN0U3RyaW5nID0gbGFzdFN0cmluZy5zdWJzdHJpbmcoMCwgY29tbW9uKQorICAgICAgICAgICAgICAgICAgICArIGN1cnJlbnQ7CisgICAgICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJcdFx0IiArIGxhc3RTdHJpbmcpOworICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVZhbHVlcyAhPSBudWxsKSBhdmFpbGFibGVWYWx1ZXMuYWRkKGN1cnJlbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZXNMaXN0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlYWRQb29sIHsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IHRyYWlsaW5nUG9vbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXQoaW50IGluZGV4KSB7CisgICAgICAgICAgICByZXR1cm4gdHJhaWxpbmdQb29sLmdldChpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWRkKE9iamVjdCBvKSB7CisgICAgICAgICAgICB0cmFpbGluZ1Bvb2wuYWRkKG8pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSByZWFkQ29sbGVjdGlvbihMaW5rZWRIYXNoU2V0IGF2YWlsYWJsZVZhbHVlcykgdGhyb3dzIENsYXNzTm90Rm91bmRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IHNpemUgPSByZWFkVUludCgpOworICAgICAgICBPYmplY3RbXSB2YWx1ZXNMaXN0ID0gbmV3IE9iamVjdFtzaXplICsgMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICB2YWx1ZXNMaXN0W2kgKyAxXSA9IHJlYWRPYmplY3QoKTsKKyAgICAgICAgfQorICAgICAgIHJldHVybiB2YWx1ZXNMaXN0OworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhT3V0cHV0Q29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YU91dHB1dENvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTg1N2MyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YU91dHB1dENvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDIxNSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkRhdGFPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisvL2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRTZXQ7CisvL2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogU2ltcGxlIGRhdGEgb3V0cHV0IGNvbXByZXNzb3IuIE5vdGhpbmcgZmFuY3ksIGJ1dCBtdWNoIHNtYWxsZXIgZm9vdHByaW50IGZvciBpbnRzIGFuZCBtYW55IHN0cmluZ3MuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBEYXRhT3V0cHV0Q29tcHJlc3NvciBpbXBsZW1lbnRzIE9iamVjdE91dHB1dCB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPVyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBPYmplY3RPdXRwdXQgZGF0YU91dHB1dDsKKworICAgIHB1YmxpYyBEYXRhT3V0cHV0Q29tcHJlc3NvcihPYmplY3RPdXRwdXQgZGF0YU91dHB1dCkgeworICAgICAgICB0aGlzLmRhdGFPdXRwdXQgPSBkYXRhT3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyBEYXRhT3V0cHV0IGdldERhdGFPdXRwdXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhT3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFPdXRwdXQoT2JqZWN0T3V0cHV0IGRhdGFPdXRwdXQpIHsKKyAgICAgICAgdGhpcy5kYXRhT3V0cHV0ID0gZGF0YU91dHB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZShiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gYiwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZShiLCBvZmYsIGxlbik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoaW50IGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGUoYik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVCb29sZWFuKGJvb2xlYW4gdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZUJvb2xlYW4odik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVCeXRlKGludCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUJ5dGVzKFN0cmluZyBzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZXMocyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVEb3VibGUoZG91YmxlIHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVEb3VibGUodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVGbG9hdChmbG9hdCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlRmxvYXQodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LmNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC5mbHVzaCgpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGF0YU91dHB1dC50b1N0cmluZygpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZU9iamVjdChPYmplY3Qgb2JqKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlT2JqZWN0KG9iaik7CisgICAgfQorICAgIC8vID09PT0gTmV3IFJvdXRpbmVzID09PT0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlQ2hhcihpbnQgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNob3J0KGludCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3cml0ZUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVVU2hvcnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlVUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVJbnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVJbnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlVUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVVVEYoU3RyaW5nIHN0cikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyhVVEYxNi5jb3VudENvZGVQb2ludChzdHIpKTsKKyAgICAgICAgd3JpdGVDaGFycyhzdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlQ2hhcnMoU3RyaW5nIHMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIHdyaXRlVUxvbmcoY3ApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVMb25nKGxvbmcgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBmbGFnID0gMDsgLy8gcHV0IHNpZ24gYml0IGF0IHRoZSBib3R0b20sIGFuZCBpbnZlcnQKKyAgICAgICAgaWYgKHYgPCAwKSB7CisgICAgICAgICAgICB2ID0gfnY7CisgICAgICAgICAgICBmbGFnID0gMTsKKyAgICAgICAgfQorICAgICAgICB2IDw8PSAxOworICAgICAgICB2IHw9IGZsYWc7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoKHYgJiB+MHg3RkwpID09IDApIHsKKyAgICAgICAgICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSgoYnl0ZSkgdik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSgoYnl0ZSkgKDB4ODBMIHwgdikpOworICAgICAgICAgICAgdiA+Pj49IDc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVMb25nKGxvbmcgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsgLy8gd3JpdGUgc2VxdWVuY2Ugb2YgNyBiaXRzLCB3aXRoIHRvcCBiaXQgPSAxIGZvciBjb250aW51YXRpb24KKyAgICAgICAgICAgIGlmICgodiAmIH4weDdGTCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSB2KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSAoMHg4MEwgfCB2KSk7CisgICAgICAgICAgICB2ID4+Pj0gNzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHdyaXRlU3RyaW5nU2V0KFNvcnRlZFNldCBjLCBNYXAgb2JqZWN0X2luZGV4KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJ3cml0ZVN0cmluZ1NldCIpOworICAgICAgICB3cml0ZVVJbnQoYy5zaXplKCkpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG9iamVjdF9pbmRleC5wdXQobnVsbCwgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgIFdyaXRlUG9vbCB0cmFpbGluZ1Bvb2wgPSBuZXcgV3JpdGVQb29sKCk7CisgICAgICAgIGludCBwb29sQ291bnQgPSAwOworICAgICAgICBTdHJpbmcgbGFzdFN0cmluZyA9ICIiOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIG9iamVjdF9pbmRleC5wdXQocywgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgICAgICBpbnQgY29tbW9uID0gVW5pY29kZU1hcC5maW5kQ29tbW9uKGxhc3RTdHJpbmcsIHMpOyAvLyBydW5sZW5ndGggZW5jb2RlCisgICAgICAgICAgICBsYXN0U3RyaW5nID0gczsKKyAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IHMuc3Vic3RyaW5nKGNvbW1vbik7CisgICAgICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKGNvbW1vbik7CisgICAgICAgICAgICBjb21tb24gPDw9IDE7CisgICAgICAgICAgICBpbnQgaW5Qb29sID0gdHJhaWxpbmdQb29sLmdldEluZGV4KHBpZWNlKTsKKyAgICAgICAgICAgIGlmIChpblBvb2wgPCAwKSB7CisgICAgICAgICAgICAgICAgd3JpdGVVSW50KGNvbW1vbik7CisgICAgICAgICAgICAgICAgd3JpdGVVVEYocGllY2UpOworICAgICAgICAgICAgICAgIHRyYWlsaW5nUG9vbC5wdXQocGllY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZVVJbnQoY29tbW9uIHwgMSk7CisgICAgICAgICAgICAgICAgd3JpdGVVSW50KGluUG9vbCk7CisgICAgICAgICAgICAgICAgaWYgKFNIT1cpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgaW5Qb29sKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0XHQiICsgbGFzdFN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBXcml0ZVBvb2wgeworICAgICAgICBwcml2YXRlIE1hcCB0cmFpbGluZ1Bvb2wgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBwcml2YXRlIGludCBwb29sQ291bnQgPSAwOworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KE9iamVjdCBvKSB7CisgICAgICAgICAgICBJbnRlZ2VyIGluUG9vbCA9IChJbnRlZ2VyKSB0cmFpbGluZ1Bvb2wuZ2V0KG8pOworICAgICAgICAgICAgaWYgKGluUG9vbCA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gaW5Qb29sLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgcHV0KE9iamVjdCBvKSB7CisgICAgICAgICAgICB0cmFpbGluZ1Bvb2wucHV0KG8sIG5ldyBJbnRlZ2VyKHBvb2xDb3VudCsrKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVDb2xsZWN0aW9uKENvbGxlY3Rpb24gYywgTWFwIG9iamVjdF9pbmRleCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVSW50KGMuc2l6ZSgpKTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBvYmplY3RfaW5kZXgucHV0KG51bGwsIG5ldyBJbnRlZ2VyKGkrKykpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3QgcyA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVPYmplY3Qocyk7CisgICAgICAgICAgICBpZiAob2JqZWN0X2luZGV4ICE9IG51bGwpIG9iamVjdF9pbmRleC5wdXQocywgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RpZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YjEzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaWZmZXIuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKy8qKiBWRVJZIEJhc2ljIERpZmYgcHJvZ3JhbS4gQ29tcGFyZXMgdHdvIHNlcXVlbmNlcyBvZiBvYmplY3RzIGZlZCBpbnRvIGl0LCBhbmQKKyAqIGxldHMgeW91IGtub3cgd2hlcmUgdGhleSBhcmUgZGlmZmVyZW50LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBAdmVyc2lvbiAxLjAKKyAqLworCitmaW5hbCBwdWJsaWMgY2xhc3MgRGlmZmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RhY2tTaXplIFRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgeW91IGV4cGVjdC4KKyAgICAgKiBAcGFyYW0gbWF0Y2hDb3VudCBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgaGF2ZSB0byBiZSB0aGUgc2FtZSB0byBjb3VudCBhcyBhIG1hdGNoCisgICAgICovCisgICAgcHVibGljIERpZmZlcihpbnQgc3RhY2tTaXplLCBpbnQgbWF0Y2hDb3VudCkgeworICAgICAgICB0aGlzLlNUQUNLU0laRSA9IHN0YWNrU2l6ZTsKKyAgICAgICAgdGhpcy5FUVVBTFNJWkUgPSBtYXRjaENvdW50OworICAgICAgICBhID0gbmV3IE9iamVjdFtzdGFja1NpemUrbWF0Y2hDb3VudF07CisgICAgICAgIGIgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQgKE9iamVjdCBhU3RyLCBPYmplY3QgYlN0cikgeworICAgICAgICBhZGRBKGFTdHIpOworICAgICAgICBhZGRCKGJTdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEEgKE9iamVjdCBhU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGFbYUNvdW50KytdID0gYVN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRCIChPYmplY3QgYlN0cikgeworICAgICAgICBmbHVzaCgpOworICAgICAgICBiW2JDb3VudCsrXSA9IGJTdHI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRBTGluZShpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBhTGluZSArIG1heFNhbWUgKyBvZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRBKGludCBvZmZzZXQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiBsYXN0OworICAgICAgICBpZiAob2Zmc2V0ID4gYVRvcC1tYXhTYW1lKSByZXR1cm4gbmV4dDsKKyAgICAgICAgcmV0dXJuIGFbb2Zmc2V0XTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGFUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGJUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEIoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBiVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYltvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNoZWNrTWF0Y2goYm9vbGVhbiBmaW5hbFBhc3MpIHsKKyAgICAgICAgLy8gZmluZCB0aGUgaW5pdGlhbCBzdHJpbmdzIHRoYXQgYXJlIHRoZSBzYW1lCisgICAgICAgIGludCBtYXggPSBhQ291bnQ7CisgICAgICAgIGlmIChtYXggPiBiQ291bnQpIG1heCA9IGJDb3VudDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFhW2ldLmVxdWFscyhiW2ldKSkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYWxsIGl0ZW1zIHVwIHRvIGkgYXJlIGVxdWFsCisgICAgICAgIG1heFNhbWUgPSBpOworICAgICAgICBhVG9wID0gYlRvcCA9IG1heFNhbWU7CisgICAgICAgIGlmIChtYXhTYW1lID4gMCkgbGFzdCA9IGFbbWF4U2FtZS0xXTsKKyAgICAgICAgbmV4dCA9ICIiOworCisgICAgICAgIGlmIChmaW5hbFBhc3MpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQ7CisgICAgICAgICAgICBiVG9wID0gYkNvdW50OworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFDb3VudCAtIG1heFNhbWUgPCBFUVVBTFNJWkUgfHwgYkNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSkgcmV0dXJuOworCisgICAgICAgIC8vIG5vdyBzZWUgaWYgdGhlIGxhc3QgZmV3IGEncyBvY2N1ciBhbnl3aGVyZSBpbiB0aGUgYidzLCBvciB2aWNlIHZlcnNhCisgICAgICAgIGludCBtYXRjaCA9IGZpbmQgKGEsIGFDb3VudC1FUVVBTFNJWkUsIGFDb3VudCwgYiwgbWF4U2FtZSwgYkNvdW50KTsKKyAgICAgICAgaWYgKG1hdGNoICE9IC0xKSB7CisgICAgICAgICAgICBhVG9wID0gYUNvdW50LUVRVUFMU0laRTsKKyAgICAgICAgICAgIGJUb3AgPSBtYXRjaDsKKyAgICAgICAgICAgIG5leHQgPSBhW2FUb3BdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1hdGNoID0gZmluZCAoYiwgYkNvdW50LUVRVUFMU0laRSwgYkNvdW50LCBhLCBtYXhTYW1lLCBhQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYVRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGJbYlRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFDb3VudCA+PSBTVEFDS1NJWkUgfHwgYkNvdW50ID49IFNUQUNLU0laRSkgeworICAgICAgICAgICAgLy8gZmx1c2ggc29tZSBvZiB0aGVtCisgICAgICAgICAgICBhQ291bnQgPSAoYUNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgYkNvdW50ID0gKGJDb3VudCArIG1heFNhbWUpIC8gMjsKKyAgICAgICAgICAgIG5leHQgPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb252ZW5pZW50IHV0aWxpdHkKKyAgICAgKiBmaW5kcyBhIHNlZ21lbnQgb2YgdGhlIGZpcnN0IGFycmF5IGluIHRoZSBzZWNvbmQgYXJyYXkuCisgICAgICogQHJldHVybiAtMSBpZiBub3QgZm91bmQsIG90aGVyd2lzZSBzdGFydCBwb3NpdGlvbiBpbiBiCisgICAgICovCisKKyAgICBwdWJsaWMgaW50IGZpbmQgKE9iamVjdFtdIGEsIGludCBhU3RhcnQsIGludCBhRW5kLCBPYmplY3RbXSBiLCBpbnQgYlN0YXJ0LCBpbnQgYkVuZCkgeworICAgICAgICBpbnQgbGVuID0gYUVuZCAtIGFTdGFydDsKKyAgICAgICAgaW50IGJFbmRNaW51cyA9IGJFbmQgLSBsZW47CisgICAgICAgIHRyeUE6CisgICAgICAgIGZvciAoaW50IGkgPSBiU3RhcnQ7IGkgPD0gYkVuZE1pbnVzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGVuOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJbaSArIGpdLmVxdWFscyhhW2FTdGFydCArIGpdKSkgY29udGludWUgdHJ5QTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOyAvLyB3ZSBoYXZlIGEgbWF0Y2ghCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAoYVRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBhQ291bnQtYVRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYSwgYVRvcCwgYSwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYUNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBhTGluZSArPSBhVG9wOworICAgICAgICAgICAgYVRvcCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYlRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBiQ291bnQtYlRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYiwgYlRvcCwgYiwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYkNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBiTGluZSArPSBiVG9wOworICAgICAgICAgICAgYlRvcCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBTVEFDS1NJWkU7CisgICAgcHJpdmF0ZSBpbnQgRVFVQUxTSVpFOworCisgICAgcHJpdmF0ZSBPYmplY3QgW10gYTsKKyAgICBwcml2YXRlIE9iamVjdCBbXSBiOworICAgIHByaXZhdGUgT2JqZWN0IGxhc3QgPSAiIjsKKyAgICBwcml2YXRlIE9iamVjdCBuZXh0ID0gIiI7CisgICAgcHJpdmF0ZSBpbnQgYUNvdW50ID0gMDsKKyAgICBwcml2YXRlIGludCBiQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGFMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBiTGluZSA9IDE7CisgICAgcHJpdmF0ZSBpbnQgbWF4U2FtZSA9IDAsIGFUb3AgPSAwLCBiVG9wID0gMDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGlzcGxheU5hbWVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaXNwbGF5TmFtZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDI2MTM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGlzcGxheU5hbWVUZXN0LmphdmEKQEAgLTAsMCArMSwzOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CisvL2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIERpc3BsYXlOYW1lVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XX0FMTCA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRGlzcGxheU5hbWVUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAgICAgCisgICAgaW50ZXJmYWNlIERpc3BsYXlOYW1lR2V0dGVyIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBjb2RlLCBPYmplY3QgY29udGV4dCk7CisgICAgfQorCisgICAgTWFwW10gY29kZVRvTmFtZSA9IG5ldyBNYXBbMTBdOworICAgIHsKKyAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBjb2RlVG9OYW1lLmxlbmd0aDsgKytrKSBjb2RlVG9OYW1lW2tdID0gbmV3IEhhc2hNYXAoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIHpvbmVGb3JtYXRzID0ge25ldyBJbnRlZ2VyKDApLCBuZXcgSW50ZWdlcigxKSwgbmV3IEludGVnZXIoMiksCisgICAgICAgIG5ldyBJbnRlZ2VyKDMpLCBuZXcgSW50ZWdlcig0KSwgbmV3IEludGVnZXIoNSksIG5ldyBJbnRlZ2VyKDYpLCBuZXcgSW50ZWdlcig3KX07CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIGN1cnJlbmN5Rm9ybWF0cyA9IHtuZXcgSW50ZWdlcihDdXJyZW5jeS5TWU1CT0xfTkFNRSksIG5ldyBJbnRlZ2VyKEN1cnJlbmN5LkxPTkdfTkFNRSl9OworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXSBOT19DT05URVhUID0ge251bGx9OworICAgIAorICAgIHN0YXRpYyBmaW5hbCBEYXRlIEpBTjEgPSBuZXcgRGF0ZSgyMDA0LTE5MDAsMCwxKTsKKyAgICBzdGF0aWMgZmluYWwgRGF0ZSBKVUxZMSA9IG5ldyBEYXRlKDIwMDQtMTkwMCw2LDEpOworCisgICAgU3RyaW5nW10gY291bnRyaWVzID0gYWRkVW5rbm93bihVTG9jYWxlLmdldElTT0NvdW50cmllcygpLDIpOworICAgIFN0cmluZ1tdIGxhbmd1YWdlcyA9IGFkZFVua25vd24oVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKSwyKTsKKyAgICBTdHJpbmdbXSB6b25lcyA9IGFkZFVua25vd24oZ2V0UmVhbFpvbmVJRHMoKSw1KTsKKyAgICBTdHJpbmdbXSBzY3JpcHRzID0gYWRkVW5rbm93bihnZXRDb2RlcyhuZXcgVUxvY2FsZSgiZW4iLCJVUyIsIiIpLCAiU2NyaXB0cyIpLDQpOworICAgIC8vIFRPRE8gZml4IG9uY2UgdGhlcmUgaXMgYSB3YXkgdG8gZ2V0IGEgbGlzdCBvZiBhbGwgc2NyaXB0IGNvZGVzCisgICAgU3RyaW5nW10gY3VycmVuY2llcyA9IGFkZFVua25vd24oZ2V0Q29kZXMobmV3IFVMb2NhbGUoImVuIiwiIiwiIiksICJDdXJyZW5jaWVzIiksMyk7CisgICAgLy8gVE9ETyBmaXggb25jZSB0aGVyZSBpcyBhIHdheSB0byBnZXQgYSBsaXN0IG9mIGFsbCBjdXJyZW5jeSBjb2RlcworCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZXMoKSB7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgY2hlY2tMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXRSZWFsWm9uZUlEcygpIHsKKyAgICAgICAgU2V0IHRlbXAgPSBuZXcgVHJlZVNldChBcnJheXMuYXNMaXN0KFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpKSk7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKGdldEFsaWFzTWFwKCkua2V5U2V0KCkpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXRlbXAudG9BcnJheShuZXcgU3RyaW5nW3RlbXAuc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVuZ2xpc2goKSB7CisgICAgICAgIGNoZWNrTG9jYWxlKFVMb2NhbGUuRU5HTElTSCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyZW5jaCgpIHsKKyAgICAgICAgY2hlY2tMb2NhbGUoVUxvY2FsZS5GUkVOQ0gpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjaGVja0xvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBsb2dsbigiQ2hlY2tpbmcgIiArIGxvY2FsZSk7CisgICAgICAgIGNoZWNrKCJMYW5ndWFnZSIsIGxvY2FsZSwgbGFuZ3VhZ2VzLCBudWxsLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGNvZGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjaGVjaygiU2NyaXB0IiwgbG9jYWxlLCBzY3JpcHRzLCBudWxsLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgLy8gVE9ETyBUaGlzIGlzIGtpbmRhIGEgaGFjazsgb3VnaHQgdG8gYmUgZGlyZWN0IHdheS4KKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KCJlbl8iK2NvZGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjaGVjaygiQ291bnRyeSIsIGxvY2FsZSwgY291bnRyaWVzLCBudWxsLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgLy8gVE9ETyBUaGlzIGlzIGtpbmRhIGEgaGFjazsgb3VnaHQgdG8gYmUgZGlyZWN0IHdheS4KKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgiZW5fIitjb2RlLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgY2hlY2soIkN1cnJlbmNpZXMiLCBsb2NhbGUsIGN1cnJlbmNpZXMsIGN1cnJlbmN5Rm9ybWF0cywgbmV3IERpc3BsYXlOYW1lR2V0dGVyKCkgeworICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXQoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBjb2RlLCBPYmplY3QgY29udGV4dCkgeworICAgICAgICAgICAgICAgIEN1cnJlbmN5IHMgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShjb2RlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcy5nZXROYW1lKGxvY2FsZSwgKChJbnRlZ2VyKWNvbnRleHQpLmludFZhbHVlKCksIG5ldyBib29sZWFuWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIC8vIGNvbW1lbnQgdGhpcyBvdXQsIGJlY2F1c2UgdGhlIHpvbmUgc3RyaW5nIGluZm9ybWF0aW9uIGlzIGxvc3QKKyAgICAgICAgLy8gd2UnZCBoYXZlIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2VzIGRpcmVjdGx5IHRvIHRlc3QgdGhlbQorCisgICAgICAgIGNoZWNrKCJab25lcyIsIGxvY2FsZSwgem9uZXMsIHpvbmVGb3JtYXRzLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICAvLyBUT0RPIHJlcGxhY2Ugb25jZSB3ZSBoYXZlIHJlYWwgQVBJCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFpvbmVTdHJpbmcobG9jYWxlLCBjb2RlLCAoKEludGVnZXIpY29udGV4dCkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgfQorICAgIAorICAgIE1hcCB6b25lRGF0YSA9IG5ldyBIYXNoTWFwKCk7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0Wm9uZVN0cmluZyhVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG9sc29uSUQsIGludCBpdGVtKSB7CisgICAgICAgIE1hcCBkYXRhID0gKE1hcCl6b25lRGF0YS5nZXQobG9jYWxlKTsKKyAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgeworICAgICAgICAgICAgZGF0YSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBpZiAoU0hPV19BTEwpIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBTeXN0ZW0ub3V0LnByaW50bG4oInpvbmVzIGZvciAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRhYmxlID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjaygiem9uZVN0cmluZ3MiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUuZ2V0U2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdHJpbmdTZXQgPSB0YWJsZS5nZXQoaSk7CisgICAgICAgICAgICAgICAgLy9JQ1VSZXNvdXJjZUJ1bmRsZSBzdHJpbmdTZXQgPSB0YWJsZS5nZXRXaXRoRmFsbGJhY2soU3RyaW5nLnZhbHVlT2YoaSkpOworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBzdHJpbmdTZXQuZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgICAgIGlmIChTSE9XX0FMTCkgU3lzdGVtLm91dC5wcmludGxuKCJrZXk6ICIgKyBrZXkpOworICAgICAgICAgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgc3RyaW5nU2V0LmdldFNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBlbnRyeSA9IHN0cmluZ1NldC5nZXRTdHJpbmcoaik7CisgICAgICAgICAgICAgICAgICAgIGlmIChTSE9XX0FMTCkgU3lzdGVtLm91dC5wcmludGxuKCIgIGVudHJ5OiAiICsgZW50cnkpOworICAgICAgICAgICAgICAgICAgICBsaXN0LmFkZChlbnRyeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRhdGEucHV0KGtleSwgbGlzdC50b0FycmF5KG5ldyBTdHJpbmdbbGlzdC5zaXplKCldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB6b25lRGF0YS5wdXQobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gKFN0cmluZ1tdKSBkYXRhLmdldChvbHNvbklEKTsKKyAgICAgICAgaWYgKHN0cmluZ3MgPT0gbnVsbCB8fCBpdGVtID49IHN0cmluZ3MubGVuZ3RoKSByZXR1cm4gb2xzb25JRDsKKyAgICAgICAgcmV0dXJuIHN0cmluZ3NbaXRlbV07CisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmdbXVtdIHpvbmVzQWxpYXNlcyA9IHsKKyAgICAgICAgeyJBbWVyaWNhL0F0a2EiLCAiQW1lcmljYS9BdGthIn0sCisgICAgICAgIHsiQW1lcmljYS9FbnNlbmFkYSIsICJBbWVyaWNhL0Vuc2VuYWRhIn0sCisgICAgICAgIHsiQW1lcmljYS9Gb3J0X1dheW5lIiwgIkFtZXJpY2EvRm9ydF9XYXluZSJ9LAorICAgICAgICB7IkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXMiLCAiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyJ9LAorICAgICAgICB7IkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSIsICJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUifSwKKyAgICAgICAgeyJBbWVyaWNhL0tub3hfSU4iLCAiQW1lcmljYS9Lbm94X0lOIn0sCisgICAgICAgIHsiQW1lcmljYS9Qb3J0b19BY3JlIiwgIkFtZXJpY2EvUG9ydG9fQWNyZSJ9LAorICAgICAgICB7IkFtZXJpY2EvUm9zYXJpbyIsICJBbWVyaWNhL1Jvc2FyaW8ifSwKKyAgICAgICAgeyJBbWVyaWNhL1NoaXByb2NrIiwgIkFtZXJpY2EvU2hpcHJvY2sifSwKKyAgICAgICAgeyJBbWVyaWNhL1ZpcmdpbiIsICJBbWVyaWNhL1ZpcmdpbiJ9LAorICAgICAgICB7IkFudGFyY3RpY2EvU291dGhfUG9sZSIsICJBbnRhcmN0aWNhL1NvdXRoX1BvbGUifSwKKyAgICAgICAgeyJBcmN0aWMvTG9uZ3llYXJieWVuIiwgIkFyY3RpYy9Mb25neWVhcmJ5ZW4ifSwKKyAgICAgICAgeyJBc2lhL0FzaGtoYWJhZCIsICJBc2lhL0FzaGtoYWJhZCJ9LAorICAgICAgICB7IkFzaWEvQ2h1bmdraW5nIiwgIkFzaWEvQ2h1bmdraW5nIn0sCisgICAgICAgIHsiQXNpYS9EYWNjYSIsICJBc2lhL0RhY2NhIn0sCisgICAgICAgIHsiQXNpYS9Jc3RhbmJ1bCIsICJBc2lhL0lzdGFuYnVsIn0sCisgICAgICAgIHsiQXNpYS9NYWNhbyIsICJBc2lhL01hY2FvIn0sCisgICAgICAgIHsiQXNpYS9UZWxfQXZpdiIsICJBc2lhL1RlbF9Bdml2In0sCisgICAgICAgIHsiQXNpYS9UaGltYnUiLCAiQXNpYS9UaGltYnUifSwKKyAgICAgICAgeyJBc2lhL1VqdW5nX1BhbmRhbmciLCAiQXNpYS9VanVuZ19QYW5kYW5nIn0sCisgICAgICAgIHsiQXNpYS9VbGFuX0JhdG9yIiwgIkFzaWEvVWxhbl9CYXRvciJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9BQ1QiLCAiQXVzdHJhbGlhL0FDVCJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9DYW5iZXJyYSIsICJBdXN0cmFsaWEvQ2FuYmVycmEifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvTEhJIiwgIkF1c3RyYWxpYS9MSEkifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvTlNXIiwgIkF1c3RyYWxpYS9OU1cifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvTm9ydGgiLCAiQXVzdHJhbGlhL05vcnRoIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL1F1ZWVuc2xhbmQiLCAiQXVzdHJhbGlhL1F1ZWVuc2xhbmQifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvU291dGgiLCAiQXVzdHJhbGlhL1NvdXRoIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL1Rhc21hbmlhIiwgIkF1c3RyYWxpYS9UYXNtYW5pYSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9WaWN0b3JpYSIsICJBdXN0cmFsaWEvVmljdG9yaWEifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvV2VzdCIsICJBdXN0cmFsaWEvV2VzdCJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9ZYW5jb3dpbm5hIiwgIkF1c3RyYWxpYS9ZYW5jb3dpbm5hIn0sCisgICAgICAgIHsiQnJhemlsL0FjcmUiLCAiQnJhemlsL0FjcmUifSwKKyAgICAgICAgeyJCcmF6aWwvRGVOb3JvbmhhIiwgIkJyYXppbC9EZU5vcm9uaGEifSwKKyAgICAgICAgeyJCcmF6aWwvRWFzdCIsICJCcmF6aWwvRWFzdCJ9LAorICAgICAgICB7IkJyYXppbC9XZXN0IiwgIkJyYXppbC9XZXN0In0sCisgICAgICAgIHsiQ1NUNkNEVCIsICJDU1Q2Q0RUIn0sCisgICAgICAgIHsiQ2FuYWRhL0F0bGFudGljIiwgIkNhbmFkYS9BdGxhbnRpYyJ9LAorICAgICAgICB7IkNhbmFkYS9DZW50cmFsIiwgIkNhbmFkYS9DZW50cmFsIn0sCisgICAgICAgIHsiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwgIkNhbmFkYS9FYXN0LVNhc2thdGNoZXdhbiJ9LAorICAgICAgICB7IkNhbmFkYS9FYXN0ZXJuIiwgIkNhbmFkYS9FYXN0ZXJuIn0sCisgICAgICAgIHsiQ2FuYWRhL01vdW50YWluIiwgIkNhbmFkYS9Nb3VudGFpbiJ9LAorICAgICAgICB7IkNhbmFkYS9OZXdmb3VuZGxhbmQiLCAiQ2FuYWRhL05ld2ZvdW5kbGFuZCJ9LAorICAgICAgICB7IkNhbmFkYS9QYWNpZmljIiwgIkNhbmFkYS9QYWNpZmljIn0sCisgICAgICAgIHsiQ2FuYWRhL1Nhc2thdGNoZXdhbiIsICJDYW5hZGEvU2Fza2F0Y2hld2FuIn0sCisgICAgICAgIHsiQ2FuYWRhL1l1a29uIiwgIkNhbmFkYS9ZdWtvbiJ9LAorICAgICAgICB7IkNoaWxlL0NvbnRpbmVudGFsIiwgIkNoaWxlL0NvbnRpbmVudGFsIn0sCisgICAgICAgIHsiQ2hpbGUvRWFzdGVySXNsYW5kIiwgIkNoaWxlL0Vhc3RlcklzbGFuZCJ9LAorICAgICAgICB7IkN1YmEiLCAiQ3ViYSJ9LAorICAgICAgICB7IkVTVCIsICJFU1QifSwKKyAgICAgICAgeyJFU1Q1RURUIiwgIkVTVDVFRFQifSwKKyAgICAgICAgeyJFZ3lwdCIsICJFZ3lwdCJ9LAorICAgICAgICB7IkVpcmUiLCAiRWlyZSJ9LAorICAgICAgICB7IkV0Yy9HTVQrMCIsICJFdGMvR01UKzAifSwKKyAgICAgICAgeyJFdGMvR01ULTAiLCAiRXRjL0dNVC0wIn0sCisgICAgICAgIHsiRXRjL0dNVDAiLCAiRXRjL0dNVDAifSwKKyAgICAgICAgeyJFdGMvR3JlZW53aWNoIiwgIkV0Yy9HcmVlbndpY2gifSwKKyAgICAgICAgeyJFdGMvVW5pdmVyc2FsIiwgIkV0Yy9Vbml2ZXJzYWwifSwKKyAgICAgICAgeyJFdGMvWnVsdSIsICJFdGMvWnVsdSJ9LAorICAgICAgICB7IkV1cm9wZS9OaWNvc2lhIiwgIkV1cm9wZS9OaWNvc2lhIn0sCisgICAgICAgIHsiRXVyb3BlL1RpcmFzcG9sIiwgIkV1cm9wZS9UaXJhc3BvbCJ9LAorICAgICAgICB7IkdCIiwgIkdCIn0sCisgICAgICAgIHsiR0ItRWlyZSIsICJHQi1FaXJlIn0sCisgICAgICAgIHsiR01UIiwgIkdNVCJ9LAorICAgICAgICB7IkdNVCswIiwgIkdNVCswIn0sCisgICAgICAgIHsiR01ULTAiLCAiR01ULTAifSwKKyAgICAgICAgeyJHTVQwIiwgIkdNVDAifSwKKyAgICAgICAgeyJHcmVlbndpY2giLCAiR3JlZW53aWNoIn0sCisgICAgICAgIHsiSFNUIiwgIkhTVCJ9LAorICAgICAgICB7Ikhvbmdrb25nIiwgIkhvbmdrb25nIn0sCisgICAgICAgIHsiSWNlbGFuZCIsICJJY2VsYW5kIn0sCisgICAgICAgIHsiSXJhbiIsICJJcmFuIn0sCisgICAgICAgIHsiSXNyYWVsIiwgIklzcmFlbCJ9LAorICAgICAgICB7IkphbWFpY2EiLCAiSmFtYWljYSJ9LAorICAgICAgICB7IkphcGFuIiwgIkphcGFuIn0sCisgICAgICAgIHsiS3dhamFsZWluIiwgIkt3YWphbGVpbiJ9LAorICAgICAgICB7IkxpYnlhIiwgIkxpYnlhIn0sCisgICAgICAgIHsiTVNUIiwgIk1TVCJ9LAorICAgICAgICB7Ik1TVDdNRFQiLCAiTVNUN01EVCJ9LAorICAgICAgICB7Ik1leGljby9CYWphTm9ydGUiLCAiTWV4aWNvL0JhamFOb3J0ZSJ9LAorICAgICAgICB7Ik1leGljby9CYWphU3VyIiwgIk1leGljby9CYWphU3VyIn0sCisgICAgICAgIHsiTWV4aWNvL0dlbmVyYWwiLCAiTWV4aWNvL0dlbmVyYWwifSwKKyAgICAgICAgeyJNaWRlYXN0L1JpeWFkaDg3IiwgIk1pZGVhc3QvUml5YWRoODcifSwKKyAgICAgICAgeyJNaWRlYXN0L1JpeWFkaDg4IiwgIk1pZGVhc3QvUml5YWRoODgifSwKKyAgICAgICAgeyJNaWRlYXN0L1JpeWFkaDg5IiwgIk1pZGVhc3QvUml5YWRoODkifSwKKyAgICAgICAgeyJOWiIsICJOWiJ9LAorICAgICAgICB7Ik5aLUNIQVQiLCAiTlotQ0hBVCJ9LAorICAgICAgICB7Ik5hdmFqbyIsICJOYXZham8ifSwKKyAgICAgICAgeyJQUkMiLCAiUFJDIn0sCisgICAgICAgIHsiUFNUOFBEVCIsICJQU1Q4UERUIn0sCisgICAgICAgIHsiUGFjaWZpYy9TYW1vYSIsICJQYWNpZmljL1NhbW9hIn0sCisgICAgICAgIHsiUG9sYW5kIiwgIlBvbGFuZCJ9LAorICAgICAgICB7IlBvcnR1Z2FsIiwgIlBvcnR1Z2FsIn0sCisgICAgICAgIHsiUk9DIiwgIlJPQyJ9LAorICAgICAgICB7IlJPSyIsICJST0sifSwKKyAgICAgICAgeyJTaW5nYXBvcmUiLCAiU2luZ2Fwb3JlIn0sCisgICAgICAgIHsiU3lzdGVtVi9BU1Q0IiwgIlN5c3RlbVYvQVNUNCJ9LAorICAgICAgICB7IlN5c3RlbVYvQVNUNEFEVCIsICJTeXN0ZW1WL0FTVDRBRFQifSwKKyAgICAgICAgeyJTeXN0ZW1WL0NTVDYiLCAiU3lzdGVtVi9DU1Q2In0sCisgICAgICAgIHsiU3lzdGVtVi9DU1Q2Q0RUIiwgIlN5c3RlbVYvQ1NUNkNEVCJ9LAorICAgICAgICB7IlN5c3RlbVYvRVNUNSIsICJTeXN0ZW1WL0VTVDUifSwKKyAgICAgICAgeyJTeXN0ZW1WL0VTVDVFRFQiLCAiU3lzdGVtVi9FU1Q1RURUIn0sCisgICAgICAgIHsiU3lzdGVtVi9IU1QxMCIsICJTeXN0ZW1WL0hTVDEwIn0sCisgICAgICAgIHsiU3lzdGVtVi9NU1Q3IiwgIlN5c3RlbVYvTVNUNyJ9LAorICAgICAgICB7IlN5c3RlbVYvTVNUN01EVCIsICJTeXN0ZW1WL01TVDdNRFQifSwKKyAgICAgICAgeyJTeXN0ZW1WL1BTVDgiLCAiU3lzdGVtVi9QU1Q4In0sCisgICAgICAgIHsiU3lzdGVtVi9QU1Q4UERUIiwgIlN5c3RlbVYvUFNUOFBEVCJ9LAorICAgICAgICB7IlN5c3RlbVYvWVNUOSIsICJTeXN0ZW1WL1lTVDkifSwKKyAgICAgICAgeyJTeXN0ZW1WL1lTVDlZRFQiLCAiU3lzdGVtVi9ZU1Q5WURUIn0sCisgICAgICAgIHsiVHVya2V5IiwgIlR1cmtleSJ9LAorICAgICAgICB7IlVDVCIsICJVQ1QifSwKKyAgICAgICAgeyJVUy9BbGFza2EiLCAiVVMvQWxhc2thIn0sCisgICAgICAgIHsiVVMvQWxldXRpYW4iLCAiVVMvQWxldXRpYW4ifSwKKyAgICAgICAgeyJVUy9Bcml6b25hIiwgIlVTL0FyaXpvbmEifSwKKyAgICAgICAgeyJVUy9DZW50cmFsIiwgIlVTL0NlbnRyYWwifSwKKyAgICAgICAgeyJVUy9FYXN0LUluZGlhbmEiLCAiVVMvRWFzdC1JbmRpYW5hIn0sCisgICAgICAgIHsiVVMvRWFzdGVybiIsICJVUy9FYXN0ZXJuIn0sCisgICAgICAgIHsiVVMvSGF3YWlpIiwgIlVTL0hhd2FpaSJ9LAorICAgICAgICB7IlVTL0luZGlhbmEtU3RhcmtlIiwgIlVTL0luZGlhbmEtU3RhcmtlIn0sCisgICAgICAgIHsiVVMvTWljaGlnYW4iLCAiVVMvTWljaGlnYW4ifSwKKyAgICAgICAgeyJVUy9Nb3VudGFpbiIsICJVUy9Nb3VudGFpbiJ9LAorICAgICAgICB7IlVTL1BhY2lmaWMiLCAiVVMvUGFjaWZpYyJ9LAorICAgICAgICB7IlVTL1BhY2lmaWMtTmV3IiwgIlVTL1BhY2lmaWMtTmV3In0sCisgICAgICAgIHsiVVMvU2Ftb2EiLCAiVVMvU2Ftb2EifSwKKyAgICAgICAgeyJVVEMiLCAiVVRDIn0sCisgICAgICAgIHsiVW5pdmVyc2FsIiwgIlVuaXZlcnNhbCJ9LAorICAgICAgICB7IlctU1UiLCAiVy1TVSJ9LAorICAgICAgICB7Ilp1bHUiLCAiWnVsdSJ9LAorICAgICAgICB7IkFDVCIsICJBQ1QifSwKKyAgICAgICAgeyJBRVQiLCAiQUVUIn0sCisgICAgICAgIHsiQUdUIiwgIkFHVCJ9LAorICAgICAgICB7IkFSVCIsICJBUlQifSwKKyAgICAgICAgeyJBU1QiLCAiQVNUIn0sCisgICAgICAgIHsiQkVUIiwgIkJFVCJ9LAorICAgICAgICB7IkJTVCIsICJCU1QifSwKKyAgICAgICAgeyJDQVQiLCAiQ0FUIn0sCisgICAgICAgIHsiQ05UIiwgIkNOVCJ9LAorICAgICAgICB7IkNTVCIsICJDU1QifSwKKyAgICAgICAgeyJDVFQiLCAiQ1RUIn0sCisgICAgICAgIHsiRUFUIiwgIkVBVCJ9LAorICAgICAgICB7IkVDVCIsICJFQ1QifSwKKyAgICAgICAgeyJJRVQiLCAiSUVUIn0sCisgICAgICAgIHsiSVNUIiwgIklTVCJ9LAorICAgICAgICB7IkpTVCIsICJKU1QifSwKKyAgICAgICAgeyJNSVQiLCAiTUlUIn0sCisgICAgICAgIHsiTkVUIiwgIk5FVCJ9LAorICAgICAgICB7Ik5TVCIsICJOU1QifSwKKyAgICAgICAgeyJQTFQiLCAiUExUIn0sCisgICAgICAgIHsiUE5UIiwgIlBOVCJ9LAorICAgICAgICB7IlBSVCIsICJQUlQifSwKKyAgICAgICAgeyJQU1QiLCAiUFNUIn0sCisgICAgICAgIHsiU1NUIiwgIlNTVCJ9LAorICAgICAgICB7IlZTVCIsICJWU1QifSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogSGFjayB0byBnZXQgY29kZSBsaXN0CisgICAgICogQHJldHVybgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIGdldENvZGVzKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgdGFibGVOYW1lKSB7CisgICAgICAgIC8vIFRPRE8gcmVtb3ZlIFVnbHkgSGFjaworICAgICAgICAvLyBnZXQgc3R1ZmYKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0YWJsZSA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2sodGFibGVOYW1lKTsKKyAgICAgICAgLy8gY29weSBpbnRvIGFycmF5CisgICAgICAgIEFycmF5TGlzdCBzdHVmZiA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBrZXlzID0gdGFibGUuZ2V0S2V5cygpOyBrZXlzLmhhc01vcmVFbGVtZW50cygpOykgeworICAgICAgICAgICAgc3R1ZmYuYWRkKGtleXMubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1tzdHVmZi5zaXplKCldOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKSBzdHVmZi50b0FycmF5KHJlc3VsdCk7CisgICAgICAgIC8vcmV0dXJuIG5ldyBTdHJpbmdbXSB7IkxhdG4iLCAiQ3lybCJ9OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0d28gdW5rbm93biBzdHJpbmdzLCBqdXN0IHRvIG1ha2Ugc3VyZSB0aGV5IGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGNvbGxpZGluZworICAgICAqIEBwYXJhbSBzdHJpbmdzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gYWRkVW5rbm93bihTdHJpbmdbXSBzdHJpbmdzLCBpbnQgbGVuKSB7CisgICAgICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbc3RyaW5ncy5sZW5ndGggKyAyXTsKKyAgICAgICAgcmVzdWx0WzBdID0gIngxdW5rbm93biIuc3Vic3RyaW5nKDAsbGVuKTsKKyAgICAgICAgcmVzdWx0WzFdID0gInkxbmtub3duIi5zdWJzdHJpbmcoMCxsZW4pOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0cmluZ3MsMCxyZXN1bHQsMixzdHJpbmdzLmxlbmd0aCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIE1hcCBib2d1c1pvbmVzID0gbnVsbDsKKyAgICAKKyAgICBwcml2YXRlIE1hcCBnZXRBbGlhc01hcCgpIHsKKyAgICAgICAgaWYgKGJvZ3VzWm9uZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgYm9ndXNab25lcyA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpvbmVzQWxpYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGJvZ3VzWm9uZXMucHV0KHpvbmVzQWxpYXNlc1tpXVswXSwgem9uZXNBbGlhc2VzW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYm9ndXNab25lczsKKyAgICB9CisKKworICAgIHByaXZhdGUgdm9pZCBjaGVjayhTdHJpbmcgdHlwZSwgVUxvY2FsZSBsb2NhbGUsIAorICAgICAgU3RyaW5nW10gY29kZXMsIE9iamVjdFtdIGNvbnRleHRMaXN0LCBEaXNwbGF5TmFtZUdldHRlciBnZXR0ZXIpIHsKKyAgICAgICAgaWYgKGNvbnRleHRMaXN0ID09IG51bGwpIGNvbnRleHRMaXN0ID0gTk9fQ09OVEVYVDsKKyAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBjb250ZXh0TGlzdC5sZW5ndGg7ICsraykgY29kZVRvTmFtZVtrXS5jbGVhcigpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvZGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmcgY29kZSA9IGNvZGVzW2pdOworICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBjb250ZXh0TGlzdC5sZW5ndGg7ICsraykgeworICAgICAgICAgICAgICAgIE9iamVjdCBjb250ZXh0ID0gY29udGV4dExpc3Rba107CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXR0ZXIuZ2V0KGxvY2FsZSwgY29kZSwgY29udGV4dCk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCB8fCBuYW1lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiTnVsbCBvciBaZXJvLUxlbmd0aCBEaXNwbGF5IE5hbWVcdCIgKyB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCgiICsgKChjb250ZXh0ICE9IG51bGwpID8gY29udGV4dCA6ICIiKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOlx0IiArIGxvY2FsZSArICIgWyIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICJdIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQiICsgY29kZSArICIgWyIgKyBnZXR0ZXIuZ2V0KFVMb2NhbGUuRU5HTElTSCwgY29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBvdGhlckNvZGUgPSAoU3RyaW5nKSBjb2RlVG9OYW1lW2tdLmdldChuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAob3RoZXJDb2RlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAgICAiRGlzcGxheSBOYW1lcyBjb2xsaWRlIGZvclx0IiArIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICArICJcdCgiICsgKChjb250ZXh0ICE9IG51bGwpID8gY29udGV4dCA6ICIiKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOlx0IiArIGxvY2FsZSArICIgWyIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICJdIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQiICsgY29kZSArICIgWyIgKyBnZXR0ZXIuZ2V0KFVMb2NhbGUuRU5HTElTSCwgY29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0JiAiICsgb3RoZXJDb2RlICsgIiBbIiArIGdldHRlci5nZXQoVUxvY2FsZS5FTkdMSVNILCBvdGhlckNvZGUsIGNvbnRleHQpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdD0+ICIgKyBuYW1lCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29kZVRvTmFtZVtrXS5wdXQobmFtZSwgY29kZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChTSE9XX0FMTCkgbG9nbG4oCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiICgiICsgKChjb250ZXh0ICE9IG51bGwpID8gY29udGV4dCA6ICIiKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQiICsgbG9jYWxlICsgIiBbIiArIGxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBjb2RlICsgIlsiICsgZ2V0dGVyLmdldChVTG9jYWxlLkVOR0xJU0gsIGNvZGUsIGNvbnRleHQpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdD0+ICIgKyBuYW1lIAorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VsYXBzZWRUaW1lci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRWxhcHNlZFRpbWVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ2YzNkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VsYXBzZWRUaW1lci5qYXZhCkBAIC0wLDAgKzEsMTA2IEBACisvLworLy8gIEVsYXBzZWRUaW1lci5qYXZhCisvLworLy8gIENyZWF0ZWQgYnkgU3RldmVuIFIuIExvb21pcyBvbiAxMS8xMS8yMDA1LgorLy8gIENvcHlyaWdodCAyMDA1LTIwMDYgSUJNLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworCisKKy8qKgorICogU2ltcGxlIHN0b3B3YXRjaCB0aW1lci4KKyAqIFVzYWdlOiAgIHsgRWxhcHNlZFRpbWVyIGV0ID0gbmV3IEVsYXBzZWRUaW1lcigpOyAKKyAqICAgICAgICAgICAgZG9fc29tZV9zdHVmZjsgIAorICogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkl0IHRvb2sgIiArIGV0ICsgIiB0byBkbyBzdHVmZi4iKTsgfQorICoKKyAqIEFkdmFuY2VkOiAgIHsgRWxhcHNlZFRpbWVyIGV0ID0gbmV3IEVsYXBzZWRUaW1lcigiVGhpbmcyJ3MgdGltZTogezB9Iik7ICAvLyBtZXNzYWdlZm9ybWF0IHBhdHRlcm4KKyAqICAgICAgICAgICAgZG9fdGhpbmdfMigpOyAgCisgKiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihldC50b1N0cmluZygpKTsgfQorICoKKyAqIE1vcmUgYWR2YW5jZWQ6ICBOdW1iZXJGb3JtYXQgYW5kL29yIE1lc3NhZ2VGb3JtYXQgY2FuIGJlIHByb3ZpZGVkIGluIHRoZSBjb25zdHJ1Y3RvcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRWxhcHNlZFRpbWVyIHsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBwcmludCB0aGUgZWxhc3BlZCB0aW1lIChpbiBtaWxsaXNlY29uZHMpIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGVsYXBzZWRUaW1lKGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIHJldHVybiBkaWZmVGltZShnZXRGb3JtYXQoKSwgc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZWxhcHNlZFRpbWUobG9uZyBzdGFydCkgeworICAgICAgICByZXR1cm4gZGlmZlRpbWUoZ2V0Rm9ybWF0KCksIHN0YXJ0LCBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorICAgIAorICAgIC8vIGNsYXNzCisKKyAgICBwcml2YXRlIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXQgbXlEdXJhdGlvbkZvcm1hdCA9IG51bGw7CisgICAgcHJpdmF0ZSBNZXNzYWdlRm9ybWF0IG15TXNnRm9ybWF0ID0gbnVsbDsKKworICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoKSB7ICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoTWVzc2FnZUZvcm1hdCBhTXNnRm10KSB7CisgICAgICAgIG15TXNnRm9ybWF0ID0gYU1zZ0ZtdDsKKyAgICB9CisKKyAgICBwdWJsaWMgRWxhcHNlZFRpbWVyKE51bWJlckZvcm1hdCBhTnVtRm10KSB7CisgICAgICAgIG15RHVyYXRpb25Gb3JtYXQgPSBhTnVtRm10OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRWxhcHNlZFRpbWVyKE1lc3NhZ2VGb3JtYXQgYU1zZ0ZtdCwgTnVtYmVyRm9ybWF0IGFOdW1GbXQpIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBhTXNnRm10OworICAgICAgICBteUR1cmF0aW9uRm9ybWF0ID0gYU51bUZtdDsKKyAgICB9CisKKyAgICBwdWJsaWMgRWxhcHNlZFRpbWVyKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIG15TXNnRm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisgICAgfQorCisgICAgcHVibGljIEVsYXBzZWRUaW1lcihTdHJpbmcgcGF0dGVybiwgTnVtYmVyRm9ybWF0IGFOdW1GbXQpIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgbXlEdXJhdGlvbkZvcm1hdCA9IGFOdW1GbXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBlbGFwc2VkIHRpbWUgaW4gc2Vjb25kcyBzaW5jZSBvYmplY3QgY3JlYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIHRvU3RyaW5nKCkgeyAKKyAgICAgICAgbG9uZyBlbmRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIFN0cmluZyBkdXJhdGlvbiA9IGRpZmZUaW1lKG15RHVyYXRpb25Gb3JtYXQsIHN0YXJ0VGltZSwgZW5kVGltZSk7CisgICAgICAgIGlmKG15TXNnRm9ybWF0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBkdXJhdGlvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBteU1zZ0Zvcm1hdC5mb3JtYXQobmV3IE9iamVjdFtdIHtkdXJhdGlvbn0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdGb3JtYXQgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdCBnZXRGb3JtYXQoKSB7CisgICAgICAgIGlmKGdGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgZ0Zvcm1hdCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LkRVUkFUSU9OKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0Zvcm1hdDsgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBkaWZmVGltZShOdW1iZXJGb3JtYXQgZm10LCBsb25nIHN0YXJ0LCBsb25nIGVuZCkgeworICAgICAgICBpZihmbXQ9PW51bGwpIHsKKyAgICAgICAgICAgIGZtdCA9IGdldEZvcm1hdCgpOworICAgICAgICB9CisgICAgICAgIHN5bmNocm9uaXplZChmbXQpIHsKKyAgICAgICAgICAgIGxvbmcgYWdlID0gZW5kIC0gc3RhcnQ7CisgICAgICAgICAgICBkb3VibGUgZGlmZiA9IChkb3VibGUpYWdlOworICAgICAgICAgICAgZGlmZiA9IGRpZmYvKGRvdWJsZSkxMDAwLjA7IC8vIG1pbGxpcyBwZXIgc2Vjb25kCisgICAgICAgICAgICByZXR1cm4gZm10LmZvcm1hdChkaWZmKTsKKyAgICAgICAgfQorICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9FcXVhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9FcXVhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiMDM1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VxdWF0b3IuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitwdWJsaWMgaW50ZXJmYWNlIEVxdWF0b3IgeworICAgIC8qKgorICAgICAgKiBDb21wYXJhdG9yIGZ1bmN0aW9uLiBJZiBvdmVycmlkZGVuLCBtdXN0IGhhbmRsZSBjYXNlIG9mIG51bGwsCisgICAgICAqIGFuZCBjb21wYXJlIGFueSB0d28gb2JqZWN0cyB0aGF0IGNvdWxkIGJlIGNvbXBhcmVkLgorICAgICAgKiBNdXN0IG9iZXkgbm9ybWFsIHJ1bGVzIG9mIHN5bW1ldHJ5OiBhPWIgPT4gYj1hCisgICAgICAqIGFuZCB0cmFuc2l0aXZpdHk6IGE9YiAmIGI9YyA9PiBhPWIpCisgICAgICAqIEBwYXJhbSBhCisgICAgICAqIEBwYXJhbSBiCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIGFuZCBiIGFyZSBlcXVhbAorICAgICAgKi8KKyAgICAgcHVibGljIGJvb2xlYW4gaXNFcXVhbChPYmplY3QgYSwgT2JqZWN0IGIpOworCisgICAgLyoqCisgICAgICogTXVzdCBvYmV5IG5vcm1hbCBydWxlczogYT1iID0+IGdldEhhc2hDb2RlKGEpPWdldEhhc2hDb2RlKGIpCisgICAgICogQHBhcmFtIG9iamVjdAorICAgICAqIEByZXR1cm4gYSBoYXNoIGNvZGUgZm9yIHRoZSBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEhhc2hDb2RlKE9iamVjdCBvYmplY3QpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0ZpbGVVdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0ZpbGVVdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjI3NWIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsNzggQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgRmlsZVV0aWxpdGllcyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZEZpbGUoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcsIFByaW50V3JpdGVyIG91dHB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAJYXBwZW5kRmlsZShmaWxlbmFtZSwgZW5jb2RpbmcsIG91dHB1dCwgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRGaWxlKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nLCBQcmludFdyaXRlciBvdXRwdXQsIFN0cmluZ1tdIHJlcGxhY2VtZW50TGlzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBCYWdGb3JtYXR0ZXIub3BlblJlYWRlcigiIiwgZmlsZW5hbWUsIGVuY29kaW5nKTsKKyAgICAgICAgLyoKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpOworICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSAoZW5jb2RpbmcgPT0gVVRGOF9VTklYIHx8IGVuY29kaW5nID09IFVURjhfV0lORE9XUykgPyBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlzLCAiVVRGOCIpIDogIG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMpOworICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IsIDMyKjEwMjQpOworICAgICAgICAqLworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBici5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRMaXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHJlcGxhY2VtZW50TGlzdC5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgCQlsaW5lID0gcmVwbGFjZShsaW5lLCByZXBsYWNlbWVudExpc3RbaV0sIHJlcGxhY2VtZW50TGlzdFtpKzFdKTsKKyAgICAgICAgICAgIAl9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihsaW5lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIGFsbCBvY2N1cmFuY2VzIG9mIHBpZWNlIHdpdGggcmVwbGFjZW1lbnQsIGFuZCByZXR1cm5zIG5ldyBTdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyBwaWVjZSwgU3RyaW5nIHJlcGxhY2VtZW50KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoKCkgPCBwaWVjZS5sZW5ndGgoKSkgcmV0dXJuIHNvdXJjZTsKKyAgICAJaW50IHBvcyA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBwb3MgPSBzb3VyY2UuaW5kZXhPZihwaWVjZSwgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCAwKSByZXR1cm4gc291cmNlOworICAgICAgICAgICAgc291cmNlID0gc291cmNlLnN1YnN0cmluZygwLHBvcykgKyByZXBsYWNlbWVudCArIHNvdXJjZS5zdWJzdHJpbmcocG9zICsgcGllY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgcG9zICs9IHJlcGxhY2VtZW50Lmxlbmd0aCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nW11bXSByZXBsYWNlbWVudHMpIHsKKyAgICAgICAgcmV0dXJuIHJlcGxhY2Uoc291cmNlLCByZXBsYWNlbWVudHMsIHJlcGxhY2VtZW50cy5sZW5ndGgpOworICAgIH0gICAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmdbXVtdIHJlcGxhY2VtZW50cywgaW50IGNvdW50KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgc291cmNlID0gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50c1tpXVswXSwgcmVwbGFjZW1lbnRzW2ldWzFdKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0gICAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmdbXVtdIHJlcGxhY2VtZW50cywgYm9vbGVhbiByZXZlcnNlKSB7CisgICAgICAgIGlmICghcmV2ZXJzZSkgcmV0dXJuIHJlcGxhY2Uoc291cmNlLCByZXBsYWNlbWVudHMpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlcGxhY2VtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc291cmNlID0gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50c1tpXVsxXSwgcmVwbGFjZW1lbnRzW2ldWzBdKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBhbmNob3JpemUoU3RyaW5nIHNvdXJjZSkgeworICAgIAlyZXR1cm4gc291cmNlLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNIKS5yZXBsYWNlQWxsKCJcXFB7TH0iLCAiXyIpOworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VCaW5hcnlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VCaW5hcnlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwYTZmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUJpbmFyeVRlc3QuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFRyaWUuIFRlc3RzIGhlcmUgd2lsbCBiZSBzaW1wbGUsIHNpbmNlIGJvdGggQ2hhclRyaWUgYW5kIAorKiBJbnRUcmllIGFyZSB2ZXJ5IHNpbWlsYXIgYW5kIGFyZSBoZWF2aWx5IHVzZWQgaW4gb3RoZXIgcGFydHMgb2YgSUNVNEouCisqIENvZGVzIHVzaW5nIFRyaWVzIGFyZSBleHBlY3RlZCB0byBoYXZlIGRldGFpbGVkIHRlc3RzLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEgSmFuIDAxIDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgSUNVQmluYXJ5VGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIElDVUJpbmFyeVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdbXSkgCisgICAgeworICAgICAgICBJQ1VCaW5hcnlUZXN0IHRlc3QgPSBuZXcgSUNVQmluYXJ5VGVzdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgaWN1YmluYXJ5dGVzdCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgVHJpZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVhZEhlYWRlcigpIAorICAgIHsKKyAgICAgICAgYnl0ZSBmb3JtYXRpZFtdID0gezEsIDIsIDMsIDR9OworICAgICAgICBieXRlIGFycmF5W10gPSB7CisgICAgICAgICAgICAvLyBoZWFkZXIgc2l6ZQorICAgICAgICAgICAgMCwgMHgxOCwgCisgICAgICAgICAgICAvLyBtYWdpYyBudW1iZXJzCisgICAgICAgICAgICAoYnl0ZSkweGRhLCAweDI3LCAKKyAgICAgICAgICAgIC8vIHNpemUKKyAgICAgICAgICAgIDAsIDAsIAorICAgICAgICAgICAgLy8gcmVzZXJ2ZWQgd29yZAorICAgICAgICAgICAgMCwgMCwgCisgICAgICAgICAgICAvLyBiaWdlbmRpYW4KKyAgICAgICAgICAgIDEsIAorICAgICAgICAgICAgLy8gY2hhcnNldCAKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAvLyBjaGFyc2l6ZQorICAgICAgICAgICAgMiwgCisgICAgICAgICAgICAvLyByZXNlcnZlZCBieXRlCisgICAgICAgICAgICAwLCAKKyAgICAgICAgICAgIC8vIGRhdGEgZm9ybWF0IGlkCisgICAgICAgICAgICAxLCAyLCAzLCA0LAorICAgICAgICAgICAgLy8gZGF0YVZlcnNpb24KKyAgICAgICAgICAgIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAvLyB1bmljb2RlVmVyc2lvbgorICAgICAgICAgICAgMywgMiwgMCwgMAorICAgICAgICB9OworICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBpbnB1dHN0cmVhbSA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShhcnJheSk7CisgICAgICAgIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgYXV0aGVudGljYXRlIAorICAgICAgICAgICAgICAgID0gbmV3IElDVUJpbmFyeS5BdXRoZW50aWNhdGUoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgLy8gY2hlY2sgZnVsbCBkYXRhIHZlcnNpb24KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgYXV0aGVudGljYXRlKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogTGVuaWVudCBhdXRoZW50aWNhdGUgb2JqZWN0IHNob3VsZCBwYXNzIElDVUJpbmFyeS5yZWFkSGVhZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm8gcmVzdHJpY3Rpb24gdG8gdGhlIGRhdGEgdmVyc2lvbgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IE51bGwgYXV0aGVudGljYXRlIG9iamVjdCBzaG91bGQgcGFzcyBJQ1VCaW5hcnkucmVhZEhlYWRlciIpOworICAgICAgICB9CisgICAgICAgIC8vIGxlbmllbnQgZGF0YSB2ZXJzaW9uCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dHN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRzdHJlYW0sIGZvcm1hdGlkLCBhdXRoZW50aWNhdGUpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiBMZW5pZW50IGF1dGhlbnRpY2F0ZSBvYmplY3Qgc2hvdWxkIHBhc3MgSUNVQmluYXJ5LnJlYWRIZWFkZXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjaGFuZ2luZyB0aGUgdmVyc2lvbiB0byBhbiBpbmNvcnJlY3Qgb25lLCBleHBlY3RpbmcgZmFpbHVyZQorICAgICAgICBhcnJheVsxNl0gPSAyOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0c3RyZWFtLCBmb3JtYXRpZCwgYXV0aGVudGljYXRlKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IEludmFsaWQgdmVyc2lvbiBudW1iZXIgc2hvdWxkIG5vdCBwYXNzIGF1dGhlbnRpY2F0ZSBvYmplY3QiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IElDVUJpbmFyeS5yZWFkSGVhZGVyIHdpdGggaW52YWxpZCB2ZXJzaW9uIG51bWJlciBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1Yjc5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKQEAgLTAsMCArMSwzNTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QgdGVzdCA9IG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZmVyZW5jZXMoKSB7CisgICAgICAgLy8gUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKCJ0aCIpOworICAgICAgICAvL2xvZ2xuKCJnb3QgcmI6IiArIHJiKTsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBudWxsOworICAgICAgICBieXRlW10gYmluYXJ5RGF0YSA9IG51bGw7Ly8oYnl0ZVtdKXJiLmdldE9iamVjdCgiJSVDb2xsYXRpb25CaW4iKTsKKyAgICAgICAgT2JqZWN0IGNvbEVsZW0gPSByYi5nZXRPYmplY3QoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgaWYoY29sRWxlbSBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgT2JqZWN0W11bXSBjb2xFbGVtQXJyID0gKE9iamVjdFtdW10pY29sRWxlbTsKKyAgICAgICAgICAgIGlmKCgoU3RyaW5nKWNvbEVsZW1BcnJbMF1bMF0pLmVxdWFscygiJSVDb2xsYXRpb25CaW4iKSl7ICAgCisgICAgICAgICAgICAgICBiaW5hcnlEYXRhID0gKGJ5dGVbXSkgY29sRWxlbUFyclswXVsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJnb3QgYmluYXJ5RGF0YTogIiArIGJpbmFyeURhdGEgKyAiIGxlbmd0aDogIiArIChiaW5hcnlEYXRhID09IG51bGwgPyAwIDogYmluYXJ5RGF0YS5sZW5ndGgpKTsKKyAgICAgICAgT2JqZWN0W10gc3RyaW5nQXJyYXlEYXRhID0gKE9iamVjdFtdKXJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICAvL1N0cmluZ1tdIGNvbGxhdGlvbkRhdGEgPSBuZXcgU3RyaW5nW10geworICAgICAgICAgLy8gICAoU3RyaW5nKXN0cmluZ0FycmF5RGF0YVswXSwKKyAgICAgICAgIC8vICAgKFN0cmluZylzdHJpbmdBcnJheURhdGFbMF0KKyAgICAgICAgLy99OworICAgICAgICBsb2dsbigiZ290IHN0cmluZ0RhdGE6ICIgKyBzdHJpbmdBcnJheURhdGEgKyAiIGxlbmd0aDogIiArIHN0cmluZ0FycmF5RGF0YS5sZW5ndGgpOworICAgICAgICBsb2dsbigiZ290IHN0cmluZ0RhdGFFbGVtZW50OiAiICsgc3RyaW5nQXJyYXlEYXRhWzBdICsgIiBsZW5ndGg6ICIgKyBzdHJpbmdBcnJheURhdGEubGVuZ3RoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImdvdCBzZGVlOiAiICsgY29sbGF0aW9uRGF0YVswXSk7CisgICAgICAgIC8vICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hhciBkYXRhIGxlbmd0aDogIiArIHN0cmluZ0FycmF5RGF0YS5sZW5ndGgoKSk7CisgICAgfQorICAgCisgICBTdHJpbmcgc2ltcGxlQWxpYXMgICA9ICJPcGVuIjsKKworICAgT2JqZWN0W11bXSB6b25lVGVzdHMgPSAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW91bnRhaW4gU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTVNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiBEYXlsaWdodCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlbnZlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbmVBbGlhczIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgIE9iamVjdFtdIHpvbmVTdHJpbmdzID0gbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgT2JqZWN0W10gdGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyA9ICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICBPYmplY3RbXVtdIHRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nID0gbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMFBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczNMb3NBbmdlbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9zIEFuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gYXJyYXlFcXVhbHMoT2JqZWN0W11bXSBzMSwgT2JqZWN0W11bXSBzMil7CisgICAgICAgIGJvb2xlYW4gaXNFcXVhbCA9IHRydWU7CisgICAgICAgIGlmKHMxLmxlbmd0aCAhPSBzMi5sZW5ndGgpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpPHMxLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGlmKHMxW2ldIGluc3RhbmNlb2YgT2JqZWN0W11bXSAmJgorICAgICAgICAgICAgICAgczJbaV0gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICBpZighYXJyYXlFcXVhbHMoKE9iamVjdFtdW10pczFbaV0sKE9iamVjdFtdW10pIHMyW2ldKSl7CisgICAgICAgICAgICAgICAgICAgaXNFcXVhbCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIGlmIChzMVtpXSBpbnN0YW5jZW9mIE9iamVjdFtdICYmCisgICAgICAgICAgICAgICAgICAgICAgczJbaV0gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoczFbaV0sczJbaV0pKXsKKyAgICAgICAgICAgICAgICAgICAgaXNFcXVhbCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfWVsc2UgaWYoczFbaV0gaW5zdGFuY2VvZiBPYmplY3QgJiYgczJbaV0gaW5zdGFuY2VvZiBPYmplY3QpeworICAgICAgICAgICAgICAgaWYoIXMxW2ldLmVxdWFscyhzMltpXSkpeworICAgICAgICAgICAgICAgICAgIGlzRXF1YWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBpc0VxdWFsID0gZmFsc2U7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpc0VxdWFsOworICAgIH0KKyAgICAKKyAgICAvKiAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXNlcygpeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RhbGlhc2VzIik7CisgICAgICAgIC8vcmIuZ2V0T2JqZWN0KCJDb2xsYXRpb25FbGVtZW50cyIpOworICAgICAgICBTdHJpbmcgczEgPSByYi5nZXRTdHJpbmcoInNpbXBsZWFsaWFzIik7CisgICAgICAgIGlmKHMxLmVxdWFscyhzaW1wbGVBbGlhcykpeworICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3QgbyA9IG51bGw7CisgICAgICAgICAgICAvLyB0ZXN0IGFsaWFzaW5nIHRocm91Z2ggYW5vdGhlciBhbGlhcworICAgICAgICAgICAgczEgPSByYi5nZXRTdHJpbmcoInJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHVrID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJ1ayIpOworICAgICAgICAgICAgaWYodWsgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgICAgIG8gPSAoKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSl1aykuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL3N0YW5kYXJkIik7CisgICAgICAgICAgICAgICAgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICBPYmplY3RbXVtdIHZhbCA9IChPYmplY3RbXVtdKSBvOworICAgICAgICAgICAgICAgICAgICBpZihzMS5lcXVhbHModmFsWzFdWzFdKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciByZWZlcmVuY2luZ2FsaWFzIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgY29sbGF0aW9ucyByZXNvdXJjZSBvZiB1ayBidW5kbGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3QgYW5vdGhlcmFsaWFzID0gcmIuZ2V0T2JqZWN0KCJhbm90aGVyYWxpYXMiKTsKKyAgICAgICAgICAgIGlmKGFub3RoZXJhbGlhcyBpbnN0YW5jZW9mIE9iamVjdFtdW10mJiBvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgaWYoYXJyYXlFcXVhbHMoKE9iamVjdFtdW10pbywgKE9iamVjdFtdW10pYW5vdGhlcmFsaWFzKSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIGFub3RoZXJhbGlhcyIpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgYW5vdGhlcmFsaWFzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgYW5vdGhlcmFsaWFzIGluIFRlc3RBbGlhcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbyA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKXVrKS5nZXRPYmplY3QoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIE9iamVjdCBvMSA9IHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICAgICAgaWYobzEgaW5zdGFuY2VvZiBPYmplY3RbXVtdJiYgbyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIGlmKGFycmF5RXF1YWxzKChPYmplY3RbXVtdKW8sIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIENvbGxhdGlvbkVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgY29sbGF0aW9ucyBpbiBUZXN0QWxpYXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIE9iamVjdCBvMSA9IHJiLmdldE9iamVjdCgiem9uZVRlc3RzIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBpZihhcnJheUVxdWFscyh6b25lVGVzdHMsIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igem9uZVRlc3RzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igem9uZVRlc3RzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3Igem9uZVRlc3QgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgbzEgPSByYi5nZXRPYmplY3QoInpvbmVTdHJpbmdzIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgaWYoVXRpbGl0eS5hcnJheUVxdWFscyh6b25lU3RyaW5ncywgKE9iamVjdFtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igem9uZVN0cmluZ3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHpvbmVTdHJpbmdzIGluIFRlc3RBbGlhcyIpOworICAgICAgICB9CisgICAgICAgIG8xID0gcmIuZ2V0T2JqZWN0KCJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgaWYoVXRpbGl0eS5hcnJheUVxdWFscyh0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLCAoT2JqZWN0W10pbzEpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgdGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG8xID0gcmIuZ2V0T2JqZWN0KCJ0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIpOworICAgICAgICBpZihvMSBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgaWYoYXJyYXlFcXVhbHModGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmcsIChPYmplY3RbXVtdKW8xKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgdGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmciKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIHRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIGluIFRlc3RBbGlhcyIpOworICAgICAgICB9CisgICAgICAgIC8qIHNob3VsZCBub3QgZ2V0IGFuIGV4Y2VwdGlvbgorICAgICAgICByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiZnJfQkUiKTsKKyAgICAgICAgT2JqZWN0IG8gPSByYi5nZXRPYmplY3QoIlNwZWxsb3V0UnVsZXMiKTsKKyAgICAgICAgaWYobyBpbnN0YW5jZW9mIFN0cmluZyl7CisgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkFsaWFzIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGZyX0JFIFNwZWxsb3V0UnVsZXMiKTsKKyAgICAgICAgfQorICAgICAgICByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiemhfVFciKTsKKyAgICAgICAgbyA9IHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBPYmplY3RbXVtdIGFyciA9IChPYmplY3RbXVtdKW87CisgICAgICAgICAgICBpZigoKFN0cmluZylhcnJbMF1bMF0pPT0gImRlZmF1bHQiKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgemhfVFcgY29sbGF0aW9ucyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIH0KKyAgICAqLworICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdENpcmN1bGFyQWxpYXNlcygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RjaXJjdWxhcmFsaWFzIik7CisgICAgICAgICAgICByYi5nZXRPYmplY3QoImFhYSIpOworICAgICAgICB9Y2F0Y2goamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUudG9TdHJpbmcoKS5pbmRleE9mKCJpcmN1bGFyIik9PS0xKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIEV4Y2VwdGlvbiBmb3IgY2lyY3VsYXIgYWxpYXNlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIGZvciBjaXJjdWxhciBhbGlhc2VzIik7CisgICAgfSovCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0T2JqZWN0V2l0aEZhbGxiYWNrKCl7CisgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwidGVfSU4iKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJLZXlzL2NvbGxhdGlvbiIpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoIkNPTExBVElPTiIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdHlwZSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJUeXBlcy9jb2xsYXRpb24vZGlyZWN0Iik7CisgICAgICAgICAgICBpZighdHlwZS5lcXVhbHMoIkRJUkVDVCIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3JtIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgIH0KKworICAgICAgICB0cnl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUxID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJkZV9fUEhPTkVCT09LIik7CisgICAgICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlMTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvY29sbGF0aW9uL2RlZmF1bHQiKTsKKyAgICAgICAgICAgICAgICBpZigha2V5LmVxdWFscygicGhvbmVib29rIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIik7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICAKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlMSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmltcGwuZGF0YSIsIkxvY2FsZUVsZW1lbnRzIiwiZnJfRlIiKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBpbHJiID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYnVuZGxlMTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpbHJiLmdldE9iamVjdFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygic3RhbmRhcmQiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRPYmplY3RXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgIH0gCisgICAgICAgIAorICAgICAgICBidW5kbGUxID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJlc19FUyIpOworICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGlscmIgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUxOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJzdGFuZGFyZCIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgbmtleSA9ICJjb2xsYXRpb25zLyIgKyBrZXk7CisgICAgICAgICAgICBPYmplY3QgbyA9IGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKG5rZXkpOworICAgICAgICAgICAgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIGlmKCEoKFN0cmluZykgKChPYmplY3RbXVtdKW8pWzBdWzBdKS5lcXVhbHMoIiUlQ29sbGF0aW9uQmluIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCBmb3IgIisgbmtleSk7IAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBvYmplY3QgZm9yICIrIG5rZXkpOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG9iamVjdCBmb3IgIisgbmtleSk7IAorICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgYnVuZGxlLiIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9Ki8KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUHJvcGVydHlGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3NzI0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsNDE3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworLyoqCisgKiBQcm92aWRlcyBhIGdlbmVyYWwgaW50ZXJmYWNlIGZvciBVbmljb2RlIFByb3BlcnRpZXMsIGFuZAorICogZXh0cmFjdGluZyBzZXRzIGJhc2VkIG9uIHRob3NlIHZhbHVlcy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworCitwdWJsaWMgY2xhc3MgSUNVUHJvcGVydHlGYWN0b3J5IGV4dGVuZHMgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgY2xhc3MgSUNVUHJvcGVydHkgZXh0ZW5kcyBVbmljb2RlUHJvcGVydHkgeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBwcm9wRW51bSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgCisgICAgICAgICAgICBwcm90ZWN0ZWQgSUNVUHJvcGVydHkoU3RyaW5nIHByb3BOYW1lLCBpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzZXROYW1lKHByb3BOYW1lKTsKKyAgICAgICAgICAgICAgICB0aGlzLnByb3BFbnVtID0gcHJvcEVudW07CisgICAgICAgICAgICAgICAgc2V0VHlwZShpbnRlcm5hbEdldFByb3BlcnR5VHlwZShwcm9wRW51bSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sZWFuIHNob3duRXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiBTdHJpbmcgdGVtcCA9IFVDaGFyYWN0ZXIuZ2V0QWdlKGNvZGVQb2ludCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiMC4wLjAuMCIpKSByZXR1cm4gInVuYXNzaWduZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXAuZW5kc1dpdGgoIi4wLjAiKSkgcmV0dXJuIHRlbXAuc3Vic3RyaW5nKDAsdGVtcC5sZW5ndGgoKS00KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci5nZXRNaXJyb3IoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzogcmV0dXJuIFVDaGFyYWN0ZXIuZm9sZENhc2UoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLHRydWUpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0SVNPQ29tbWVudChjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0TmFtZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKGNvZGVQb2ludCx0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCksbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOiByZXR1cm4gVUNoYXJhY3Rlci5nZXROYW1lMV8wKGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GQzogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GS0M6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTkZLRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GQzogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GS0M6IHJldHVybiBTdHJpbmcudmFsdWVPZihOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQykuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzTkZLRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNMb3dlcmNhc2U6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzVXBwZXJjYXNlOiByZXR1cm4gU3RyaW5nLnZhbHVlT2YoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc1RpdGxlY2FzZTogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLG51bGwpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc0Nhc2Vmb2xkZWQ6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSx0cnVlKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNDYXNlZDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IC0xOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNvZGVQb2ludCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudW1WYWx1ZSA+PSAwKSB2YWx1ZSA9IGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvd25FeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZhaWw6ICIgKyBnZXROYW1lKCkgKyAiLCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bkV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IFN0cmluZy52YWx1ZU9mKGVudW1WYWx1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIG51bSA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAobnVtID09IFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcobnVtKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRml4IEhBQ0sgLS0gQVBJIGRlZmljaWVudAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBudWxsIGlmIHVudXNlZC4KKyAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZUVudW0gLTEgaWYgdW51c2VkCisgICAgICAgICAgICAgKiBAcGFyYW0gbmFtZUNob2ljZQorICAgICAgICAgICAgICogQHJldHVybgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRGaXhlZFZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCB2YWx1ZUVudW0sIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID49IFVQcm9wZXJ0eS5TVFJJTkdfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgIT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPHN0cmluZz4iOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEVudW0gPj0gVVByb3BlcnR5LkRPVUJMRV9TVEFSVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNob2ljZSAhPSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8bnVtYmVyPiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFsaWFzICE9IG51bGwgJiYgIXZhbHVlQWxpYXMuZXF1YWxzKCI8aW50ZWdlcj4iKSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZUVudW0gPSBmaXhlZEdldFByb3BlcnR5VmFsdWVFbnVtKHByb3BFbnVtLHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXNlIGFyZSBkZWZpbmVkIGJhZGx5LCB0aGVyZSBtYXkgYmUgbm8gbm9ybWFsIChsb25nKSBuYW1lLgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIAorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLCB2YWx1ZUVudW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAvLyBIQUNLIHRyeSBvdGhlciBuYW1lY2hvaWNlCisgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgPT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLHZhbHVlRW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPGludGVnZXI+IjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZml4ZWRHZXRQcm9wZXJ0eVZhbHVlRW51bShpbnQgcHJvcEVudW0sIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcEVudW0sIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0YXRpYyBNYXAgZml4U2tlbGV0b24gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BFbnVtLCBpbnQgdmFsdWVFbnVtLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sdmFsdWVFbnVtLG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSAoU3RyaW5nKSBmaXhTa2VsZXRvbi5nZXQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcmVndWxhcml6ZShuZXdWYWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXhTa2VsZXRvbi5wdXQodmFsdWUsIG5ld1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIGFsaWFzID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcEVudW0pOworICAgICAgICAgICAgICAgIGlmIChhbGlhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoZ2V0Rml4ZWRQcm9wZXJ0eU5hbWUocHJvcEVudW0sIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkUHJvcGVydHlOYW1lKHByb3BFbnVtLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXRGaXhlZFByb3BlcnR5TmFtZShpbnQgcHJvcE5hbWUsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHByb3BFbnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGUgTWFwIGNjY0hhY2sgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgYm9vbGVhbiBuZWVkQ2NjSGFjayA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPT0gVVByb3BlcnR5LkFHRSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBbGxVbmlxdWUobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFzc2lnbmVkIiwiMS4xIiwiMi4wIiwiMi4xIiwiMy4wIiwiMy4xIiwiMy4yIiwiNC4wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChCaW5hcnlfRXh0cmFzLmlzSW5SYW5nZShwcm9wRW51bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVVByb3BlcnR5LkJJTkFSWV9TVEFSVDsgLy8gSEFDSworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUocHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPD0gZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhcyA9IGdldEZpeGVkVmFsdWVBbGlhcyhudWxsLCBpLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhczIgPSBnZXRGaXhlZFZhbHVlQWxpYXMobnVsbCwgaSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IGFsaWFzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpYXMgPT0gbnVsbCAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IFN0cmluZy52YWx1ZU9mKGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkQ2NjSGFjayAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeyAvLyBIQUNLCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NjSGFjay5wdXQoYWxpYXMsIFN0cmluZy52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHByb3BlcnR5QWxpYXMgKyAiXHQiICsgaSArICI6XHQiICsgYWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGFsaWFzLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5lZWRDY2NIYWNrID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzID0gZ2V0Rml4ZWRWYWx1ZUFsaWFzKG51bGwsIC0xLFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoYWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID09IFVQcm9wZXJ0eS5BR0UpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKHZhbHVlQWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoY2NjSGFjay5nZXQodmFsdWVBbGlhcyksIHJlc3VsdCk7IC8vIGFkZCBudW1iZXIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkVmFsdWVBbGlhcyh2YWx1ZUFsaWFzLCAtMSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShnZXRGaXhlZFZhbHVlQWxpYXModmFsdWVBbGlhcywgLTEsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlVuaWNvZGVQcm9wZXJ0eVNvdXJjZSNnZXRQcm9wZXJ0eVR5cGUoKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIGludCBpbnRlcm5hbEdldFByb3BlcnR5VHlwZShpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQkxPQ0s6IAorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TQ1JJUFQ6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5DQVRBTE9HOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVU5JQ09ERV8xX05BTUU6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5NSVNDOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5USVRMRUNBU0VfTUFQUElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuQklOQVJZX1NUQVJUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5LlVOS05PV047CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FTlVNRVJBVEVEOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfU1RBUlQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfRU5VTUVSQVRFRDsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuRE9VQkxFX0xJTUlUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5Lk5VTUVSSUM7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LlNUUklOR19TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9OVU1FUklDOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuU1RSSU5HOworICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuVW5pY29kZVByb3BlcnR5I2dldFZlcnNpb24oKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyp7CisgICAgICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW15bOkNuOl0tWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1dIikpOworICAgICAgICB9Ki8KKworCisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBPdGhlciBNaXNzaW5nIEZ1bmN0aW9uczoKKyAgICAgICAgICAgIEV4cGFuZHNfT25fTkZDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GRAorICAgICAgICAgICAgRXhwYW5kc19Pbl9ORktDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GS0QKKyAgICAgICAgICAgIENvbXBvc2l0aW9uX0V4Y2x1c2lvbgorICAgICAgICAgICAgRGVjb21wb3NpdGlvbl9NYXBwaW5nCisgICAgICAgICAgICBGQ19ORktDX0Nsb3N1cmUKKyAgICAgICAgICAgIElTT19Db21tZW50CisgICAgICAgICAgICBORkNfUXVpY2tfQ2hlY2sKKyAgICAgICAgICAgIE5GRF9RdWlja19DaGVjaworICAgICAgICAgICAgTkZLQ19RdWlja19DaGVjaworICAgICAgICAgICAgTkZLRF9RdWlja19DaGVjaworICAgICAgICAgICAgU3BlY2lhbF9DYXNlX0NvbmRpdGlvbgorICAgICAgICAgICAgVW5pY29kZV9SYWRpY2FsX1N0cm9rZQorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgICBzdGF0aWMgZmluYWwgTmFtZXMgQmluYXJ5X0V4dHJhcyA9IG5ldyBOYW1lcyhVUHJvcGVydHkuQklOQVJZX0xJTUlULAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJpc05GQyIsICJpc05GRCIsICJpc05GS0MiLCAiaXNORktEIiwKKyAgICAgICAgICAgICJpc0xvd2VyY2FzZSIsICJpc1VwcGVyY2FzZSIsICJpc1RpdGxlY2FzZSIsICJpc0Nhc2Vmb2xkZWQiLCAiaXNDYXNlZCIsCisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBmaW5hbCBOYW1lcyBTdHJpbmdfRXh0cmFzID0gbmV3IE5hbWVzKFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgInRvTkZDIiwgInRvTkZEIiwgInRvTkZLQyIsICJ0b05LRkQiLAorICAgICAgICB9KTsKKworICAgICAgICBzdGF0aWMgZmluYWwgaW50CisgICAgICAgICAgICBpc05GQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQsCisgICAgICAgICAgICBpc05GRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMSwKKyAgICAgICAgICAgIGlzTkZLQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMiwKKyAgICAgICAgICAgIGlzTkZLRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMywKKyAgICAgICAgICAgIGlzTG93ZXJjYXNlID0gVVByb3BlcnR5LkJJTkFSWV9MSU1JVCs0LAorICAgICAgICAgICAgaXNVcHBlcmNhc2UgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzUsCisgICAgICAgICAgICBpc1RpdGxlY2FzZSA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNiwKKyAgICAgICAgICAgIGlzQ2FzZWZvbGRlZCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNywKKyAgICAgICAgICAgIGlzQ2FzZWQgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzgsCisKKyAgICAgICAgICAgIE5GQyAgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlULAorICAgICAgICAgICAgTkZEICA9IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQrMSwKKyAgICAgICAgICAgIE5GS0MgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlUKzIsCisgICAgICAgICAgICBORktEID0gVVByb3BlcnR5LlNUUklOR19MSU1JVCszCisgICAgICAgICAgICA7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIElDVVByb3BlcnR5RmFjdG9yeSgpIHsKKyAgICAgICAgICAgIENvbGxlY3Rpb24gYyA9IGdldEludGVybmFsQXZhaWxhYmxlUHJvcGVydHlBbGlhc2VzKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBhZGQoZ2V0SW50ZXJuYWxQcm9wZXJ0eSgoU3RyaW5nKWl0Lm5leHQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBJQ1VQcm9wZXJ0eUZhY3Rvcnkgc2luZ2xldG9uID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIElDVVByb3BlcnR5RmFjdG9yeSBtYWtlKCkgeworICAgICAgICAgICAgaWYgKHNpbmdsZXRvbiAhPSBudWxsKSByZXR1cm4gc2luZ2xldG9uOworICAgICAgICAgICAgc2luZ2xldG9uID0gbmV3IElDVVByb3BlcnR5RmFjdG9yeSgpOworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIExpc3QgZ2V0SW50ZXJuYWxBdmFpbGFibGVQcm9wZXJ0eUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGludFtdW10gcmFuZ2VzID0geworICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuQklOQVJZX1NUQVJULCAgICBVUHJvcGVydHkuQklOQVJZX0xJTUlUfSwKKyAgICAgICAgICAgICAgICB7VVByb3BlcnR5LklOVF9TVEFSVCwgICAgICAgVVByb3BlcnR5LklOVF9MSU1JVH0sCisgICAgICAgICAgICAgICAge1VQcm9wZXJ0eS5ET1VCTEVfU1RBUlQsICAgIFVQcm9wZXJ0eS5ET1VCTEVfTElNSVR9LAorICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuU1RSSU5HX1NUQVJULCAgICBVUHJvcGVydHkuU1RSSU5HX0xJTUlUfSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSByYW5nZXNbaV1bMF07IGogPCByYW5nZXNbaV1bMV07ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShqLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5LmFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnMoYWxpYXMpKSByZXN1bHQuYWRkKGFsaWFzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKFN0cmluZ19FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKEJpbmFyeV9FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkgZ2V0SW50ZXJuYWxQcm9wZXJ0eShTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICAgICAgaW50IHByb3BFbnVtOworICAgICAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zc2libGVJdGVtID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlSXRlbSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gcG9zc2libGVJdGVtOworICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3NzaWJsZUl0ZW0gPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zc2libGVJdGVtID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcEVudW0gPSBwb3NzaWJsZUl0ZW07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IElDVVByb3BlcnR5KHByb3BlcnR5QWxpYXMsIHByb3BFbnVtKTsKKyAgICAgICAgfQorIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Vbmljb2RlUHJvcGVydHlTb3VyY2UjZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykKKyAgICAgICAgICovCisgICAgLy8gVE9ETyBmaWxlIGJ1ZyBvbiBnZXRQcm9wZXJ0eVZhbHVlTmFtZSBmb3IgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcyAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOYW1lcyB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgaW50IGJhc2U7CisgICAgICAgIHB1YmxpYyBOYW1lcyhpbnQgYmFzZSwgU3RyaW5nW10gbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZSA9IGJhc2U7CisgICAgICAgICAgICB0aGlzLm5hbWVzID0gbmFtZXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5lcXVhbHNJZ25vcmVDYXNlKG5hbWVzW2ldKSkgcmV0dXJuIGJhc2UgKyBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBudW1iZXIpIHsKKyAgICAgICAgICAgIG51bWJlciAtPSBiYXNlOworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgfHwgbmFtZXMubGVuZ3RoIDw9IG51bWJlcikgcmV0dXJuIG51bGw7CisgICAgICAgICAgICByZXR1cm4gbmFtZXNbbnVtYmVyXTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0luUmFuZ2UoaW50IG51bWJlcikgeworICAgICAgICAgICAgbnVtYmVyIC09IGJhc2U7CisgICAgICAgICAgICByZXR1cm4gKDAgPD0gbnVtYmVyICYmIG51bWJlciA8IG5hbWVzLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIExpc3QgZ2V0TmFtZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gQXJyYXlzLmFzTGlzdChuYW1lcyk7CisgICAgICAgIH0KKyAgICB9Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzQ3YzEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKQEAgLTAsMCArMSwxMDc3IEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLm5ldC5VUkxDb25uZWN0aW9uOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJFbnRyeTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb247CisKKworcHVibGljIGZpbmFsIGNsYXNzIElDVVJlc291cmNlQnVuZGxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzc0xvYWRlciB0ZXN0TG9hZGVyID0gSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVUZXN0IHRlc3QgPSBuZXcgSUNVUmVzb3VyY2VCdW5kbGVUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRSZXNvdXJjZXMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAJLy8gSXQgZG9lcyBub3Qgd29yayB3ZWxsIGluIGVjbGlwc2UgcGx1Zy1pbiB0ZXN0IGJlY2F1c2Ugb2YgY2xhc3MgbG9hZGVyIGNvbmZpZ3VyYXRpb24/PworICAgICAgICAJLy8gRm9yIG5vdywgc3BlY2lmeSByZXNvdXJjZSBwYXRoIGV4cGxpY2l0bHkgaW4gdGhpcyB0ZXN0IGNhc2UKKyAgICAgICAgICAgIC8vRW51bWVyYXRpb24gZW4gPSB0ZXN0TG9hZGVyLmdldFJlc291cmNlcygiTUVUQS1JTkYiKTsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVuID0gdGVzdExvYWRlci5nZXRSZXNvdXJjZXMoImNvbS5pYm0uaWN1LmRldi5kYXRhIik7CisgICAgICAgICAgICBmb3IoO2VuLmhhc01vcmVFbGVtZW50cygpOykgeworICAgICAgICAgICAgICAgIFVSTCB1cmwgPSAoVVJMKWVuLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKHVybCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgcmVzb3VyY2UgZGF0YSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVSTENvbm5lY3Rpb24gYyA9IHVybC5vcGVuQ29ubmVjdGlvbigpOworCisgICAgICAgICAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBKYXJVUkxDb25uZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEphclVSTENvbm5lY3Rpb24gamMgPSAoSmFyVVJMQ29ubmVjdGlvbiljOworICAgICAgICAgICAgICAgICAgICBKYXJFbnRyeSBqZSA9IGpjLmdldEphckVudHJ5KCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJqYXIgZW50cnk6ICIgKyBqZS50b1N0cmluZygpKTsgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBjLmdldElucHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJpbnB1dCBzdHJlYW06Iik7CisgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIHIgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpOworICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihyKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgICIgKyArK24gKyAiOiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTZWN1cml0eUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCByZXNvdXJjZSBkYXRhOiAiICsgZXgpOworICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfWNhdGNoKE51bGxQb2ludGVyRXhjZXB0aW9uIGV4KSB7CisgICAgICAgIC8vIHRocm93biBieSBpYm0gMS40LjIgd2luZG93cyBqdm0gc2VjdXJpdHkgbWFuYWdlcgorICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleCk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIisgZXgpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNvdXJjZUJ1bmRsZVdyYXBwZXIoKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhvbGlkYXlCdW5kbGUiLCAiZGFfREsiKTsKKyAgICAgICAgT2JqZWN0IG8gPSBidW5kbGUuZ2V0T2JqZWN0KCJob2xpZGF5cyIpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgSG9saWRheVtdICl7CisgICAgICAgICAgICBsb2dsbigid3JhcHBlciBtZWNoYW5pc20gd29ya3MgZm9yIFdlZWtlbmQgZGF0YSIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBXZWVrZW5kIGRhdGEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiYm9ndXMiKTsKKyAgICAgICAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVUmVzb3VyY2VCdW5kbGUgJiYgYnVuZGxlLmdldFVMb2NhbGUoKS5lcXVhbHMoImVuX1VTIikpeworICAgICAgICAgICAgbG9nbG4oIndyYXBwZXIgbWVjaGFuaXNtIHdvcmtzIGZvciBib2d1cyBsb2NhbGUiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigid3JhcHBlciBtZWNoYW5pc20gZmFpbGVkIGZvciBib2d1cyBsb2NhbGUuIik7CisgICAgICAgIH0KKworICAgICAgICB0cnl7CisgICAgICAgICAgICBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImJvZ3VzIiwgImJvZ3VzIik7CisgICAgICAgICAgICBpZihidW5kbGUhPW51bGwpeworICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGxvZ2xuKCJnb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkIzODc5KCl7CisgICAgICAgIC8vIHRoaXMgdGVzdHMgdGVzdHMgbG9hZGluZyBvZiByb290IGJ1bmRsZSB3aGVuIGEgcmVzb3VyY2UgYnVuZGxlCisgICAgICAgIC8vIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgcmVxdWVzdGVkCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCBVTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgIGlmKGJ1bmRsZT09bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgdGhlIHJlc291cmNlIGJ1bmRsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGVzdCBkYXRhOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3BlbigpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiZW5fVVNfUE9TSVgiKTsKKworICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgdGhlIHJlc291cmNlIGJ1bmRsZSIpOworICAgICAgICB9CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gIGJ1bmRsZS5nZXQoIk51bWJlclBhdHRlcm5zIik7CisKKyAgICAgICAgaW50IHNpemUgPSBvYmouZ2V0U2l6ZSgpOworICAgICAgICBpbnQgdHlwZSA9IG9iai5nZXRUeXBlKCk7CisgICAgICAgIGlmKHR5cGUgPT0gSUNVUmVzb3VyY2VCdW5kbGUuQVJSQVkpeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgICAgICBzdWIgPSBvYmouZ2V0KGkpOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID1zdWIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYodGVtcC5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gZ2V0IHRoZSBpdGVtcyBmcm9tIE51bWJlclBhdHRlcm5zIGFycmF5IGluIGJ1bmRsZTogIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXCIiK3ByZXR0aWZ5KHRlbXApKyJcIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IGJ1bmRsZS5nZXRTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgaWYoc2l6ZSE9c3RyaW5ncy5sZW5ndGgpeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBnZXQgdGhlIGl0ZW1zIGZyb20gTnVtYmVyUGF0dGVybnMgYXJyYXkgaW4gYnVuZGxlOiAiKworICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIG9iaiA9ICBidW5kbGUuZ2V0KCJOdW1iZXJFbGVtZW50cyIpOworCisgICAgICAgICAgICBzaXplID0gb2JqLmdldFNpemUoKTsKKyAgICAgICAgICAgIHR5cGUgPSBvYmouZ2V0VHlwZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSl7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViOworICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPHNpemU7IGkrKyl7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IG9iai5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID1zdWIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRlbXAubGVuZ3RoKCk9PTApeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBnZXQgdGhlIGl0ZW1zIGZyb20gTnVtYmVyUGF0dGVybnMgYXJyYXkgaW4gYnVuZGxlOiAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcIiIrcHJldHRpZnkodGVtcCkrIlwiIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIHRoZSByZXNvdXJjZSBidW5kbGUiKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCAiZW5fVVNfUE9TSVgiKTsKKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9hZCB0aGUgc3RyZWFtIik7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgIm15X3ZlcnlfdmVyeV92ZXJ5X2xvbmdfYm9ndXNfYnVuZGxlIik7CisgICAgICAgIGlmKCFidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscyhVTG9jYWxlLmdldERlZmF1bHQoKSkpeworICAgICAgICAgICAgZXJybG4oIlVSZXNvdXJjZUJ1bmRsZSBkaWQgbm90IGxvYWQgdGhlIGRlZmF1bHQgYnVuZGxlIHdoZW4gYnVuZGxlIHdhcyBub3QgZm91bmQiKTsKKyAgICAgICAgfQorCisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWNUeXBlcygpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCAidGVzdHR5cGVzIiwgdGVzdExvYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHRlc3QgZGF0YTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiYWJjXHUwMDAwZGVmIjsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoInplcm90ZXN0Iik7CisgICAgICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKHN1Yi5nZXRTdHJpbmcoKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBrZXkgemVyb3Rlc3QgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHlleHBsaWNpdHN0cmluZyIpOworICAgICAgICAgICAgZXhwZWN0ZWQgPSIiOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhzdWIuZ2V0U3RyaW5nKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3Iga2V5IGVtcHR5ZXhwbGljaXRzdHJpbmcgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHlzdHJpbmciKTsKKyAgICAgICAgICAgIGV4cGVjdGVkID0iIjsKKyAgICAgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMoc3ViLmdldFN0cmluZygpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGtleSBlbXB0eXN0cmluZyBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gMTIzOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgib25laHVuZHJlZHR3ZW50eXRocmVlIik7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9c3ViLmdldEludCgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG9uZWh1bmRyZWR0d2VudHl0aHJlZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWludCIpOworICAgICAgICAgICAgZXhwZWN0ZWQ9MDsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1zdWIuZ2V0SW50KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgZW1wdHlpbnQgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJvbmUiKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1zdWIuZ2V0SW50KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSAtMTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoIm1pbnVzb25lIik7CisgICAgICAgICAgICBpbnQgZ290ID0gc3ViLmdldEludCgpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPWdvdCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBtaW51c29uZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBlY3RlZCA9IDB4RkZGRkZGRjsKKyAgICAgICAgICAgIGdvdCA9IHN1Yi5nZXRVSW50KCk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9Z290KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG1pbnVzb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgicGx1c29uZSIpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPXN1Yi5nZXRJbnQoKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBtaW51c29uZSBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnRbXSBleHBlY3RlZCA9IG5ldyBpbnRbXXsgMSwgMiwgMywgLTMsIDQsIDUsIDYsIDcgfSAgIDsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoImludGVnZXJhcnJheSIpOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoZXhwZWN0ZWQsc3ViLmdldEludFZlY3RvcigpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmVjdG9yIHZhbHVlIGZvciBrZXkgaW50ZWdlcmFycmF5IGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1YiA9IGJ1bmRsZS5nZXQoImVtcHR5aW50diIpOworICAgICAgICAgICAgZXhwZWN0ZWQgPSBuZXcgaW50WzBdOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlFcXVhbHMoZXhwZWN0ZWQsc3ViLmdldEludFZlY3RvcigpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmVjdG9yIHZhbHVlIGZvciBrZXkgZW1wdHlpbnR2IGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoImJpbmFyeXRlc3QiKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgZ290ID0gc3ViLmdldEJpbmFyeSgpOworICAgICAgICAgICAgaWYoZ290LnJlbWFpbmluZygpIT0xNSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIHRoZSBiaW5hcnkgQnl0ZUJ1ZmZlciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IGdvdC5yZW1haW5pbmcoKTsgaSsrKXsKKyAgICAgICAgICAgICAgICBieXRlIGIgPSBnb3QuZ2V0KCk7CisgICAgICAgICAgICAgICAgaWYoYiE9aSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGJpbmFyeSBidWZmZXIgYXQgaW5kZXg6ICIraSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHliaW4iKTsKKyAgICAgICAgICAgIGdvdCA9IHN1Yi5nZXRCaW5hcnkoKTsKKyAgICAgICAgICAgIGlmKGdvdC5yZW1haW5pbmcoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIHRoZSBlbXB0eWJpbiBCeXRlQnVmZmVyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWFycmF5Iik7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gc3ViLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoImVtcHR5YXJyYXkiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc3ViLmdldFNpemUoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoIm1lbnUiKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBzdWIuZ2V0S2V5KCk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygibWVudSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGtleSBmb3IgbWVudSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIxID0gc3ViLmdldCgiZmlsZSIpOworICAgICAgICAgICAga2V5ID0gc3ViMS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJmaWxlIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5IGZvciBmaWxlIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YjIgPSBzdWIxLmdldCgib3BlbiIpOworICAgICAgICAgICAga2V5ID0gc3ViMi5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJvcGVuIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5IGZvciBmaWxlIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHN1YjIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBpZighdmFsdWUuZXF1YWxzKCJPcGVuIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGtleSBmb3Igb2VuIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHl0YWJsZSIpOworICAgICAgICAgICAga2V5ID0gc3ViLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoImVtcHR5dGFibGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc3ViLmdldFNpemUoKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBsZW5ndGggZm9yIGVtcHR5dGFibGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgibWVudSIpLmdldCgiZmlsZSIpOworICAgICAgICAgICAgaW50IHNpemUgPSBzdWIuZ2V0U2l6ZSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgICAgICBzdWIxID0gc3ViLmdldChpKTsKKworICAgICAgICAgICAgICAgIHN3aXRjaChpKXsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiZXhpdCI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAib3BlbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAic2F2ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0iIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGdvdCA9IHN1YjEuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhnb3QpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgYXQgaW5kZXgiK2krIi4gRXhwZWN0ZWQ6ICIrZXhwZWN0ZWQrIiBHb3Q6ICIrZ290KTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQga2V5IGF0IGluZGV4OiAiK2kpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFRlc3RDYXNleworICAgICAgICBTdHJpbmcga2V5OworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIFRlc3RDYXNlKFN0cmluZyBrZXksIGludCB2YWx1ZSl7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGUzMigpeworICAgICAgICBUZXN0Q2FzZVtdIGFyciA9IG5ldyBUZXN0Q2FzZVtdeworICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib29vb29vb29vb29vb29vb28iLCAwICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvb29vb29vb29vb29vb29vMSIsIDEgKSwKKyAgICAgICAgICBuZXcgVGVzdENhc2UgICggIm9vb29vb29vb29vb29vbzFvIiwgMiApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib28xMW9vbzFvb28xMTExMW8iLCAyNTE1MCApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib28xMW9vbzFvb28xMTExMTEiLCAyNTE1MSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAibzExMTExMTExMTExMTExMTEiLCA2NTUzNSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb29vb29vb29vb28iLCA2NTUzNiApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMW8xMW9vbzEiLCA2NTk2OSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMW8xMW9vMW8iLCA2NTk3MCApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAiMW9vb29vb28xMTFvbzExMTEiLCA2NTk5OSApCisgICAgICAgIH07CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3R0YWJsZTMyIiwgdGVzdExvYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCByZXNvdXJjZSBkYXRhOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGJ1bmRsZS5nZXRUeXBlKCkhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCB0eXBlIGZvciBidW5kbGUgdGVzdHRhYmxlMzIiKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9YnVuZGxlLmdldFNpemUoKTsKKyAgICAgICAgaWYoc2l6ZSE9NjYwMDApeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBnZXQgdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgYnVuZGxlIHRlc3R0YWJsZTMyIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpID0wOyBpPHNpemU7IGkrKyl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gYnVuZGxlLmdldChpKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdGVtLmdldEtleSgpOworICAgICAgICAgICAgaW50IHBhcnNlZE51bWJlciA9IHBhcnNlVGFibGUzMktleShrZXkpOworICAgICAgICAgICAgaW50IG51bWJlcj0tMTsKKyAgICAgICAgICAgIHN3aXRjaChpdGVtLmdldFR5cGUoKSl7CisgICAgICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkc6CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0ZW0uZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IFVURjE2LmNoYXJBdCh2YWx1ZSwwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5JTlQ6CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IGl0ZW0uZ2V0SW50KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgdW5leHBlY3RlZCByZXNvdXJjZSB0eXBlIGluIHRlc3R0YWJsZTMyIik7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bWJlciE9cGFyc2VkTnVtYmVyKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgZXhwZWN0ZWQgdmFsdWUgaW4gdGVzdHR5cGVzMzIgZm9yIGtleSIrCisgICAgICAgICAgICAgICAgICAgICAga2V5KyIuIEV4cGVjdGVkOiAiK3BhcnNlZE51bWJlcisiIEdvdDoiK251bWJlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDtpPGFyci5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBhcnJbaV0ua2V5OworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXRlbSA9IGJ1bmRsZS5nZXQoZXhwZWN0ZWQpOworICAgICAgICAgICAgaW50IG51bWJlcj0wOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0ZW0uZ2V0S2V5KCk7CisgICAgICAgICAgICBpbnQgcGFyc2VkTnVtYmVyID0gcGFyc2VUYWJsZTMyS2V5KGtleSk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5LiBFeHBlY3RlZDogIitleHBlY3RlZCsiIEdvdDoiK2tleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2goaXRlbS5nZXRUeXBlKCkpeworICAgICAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuU1RSSU5HOgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBpdGVtLmdldFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBVVEYxNi5jaGFyQXQodmFsdWUsMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLklOVDoKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gaXRlbS5nZXRJbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIHJlc291cmNlIHR5cGUgaW4gdGVzdHRhYmxlMzIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYobnVtYmVyIT1wYXJzZWROdW1iZXIpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBpbiB0ZXN0dHlwZXMzMiBmb3Iga2V5IisKKyAgICAgICAgICAgICAgICAgICAgICBrZXkrIi4gRXhwZWN0ZWQ6ICIrcGFyc2VkTnVtYmVyKyIgR290OiIrbnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgIHBhcnNlVGFibGUzMktleShTdHJpbmcga2V5KSB7CisgICAgICAgIGludCBudW1iZXI7CisgICAgICAgIGNoYXIgYzsKKworICAgICAgICBudW1iZXI9MDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8a2V5Lmxlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgYyA9IGtleS5jaGFyQXQoaSk7CisgICAgICAgICAgICBudW1iZXI8PD0xOworICAgICAgICAgICAgaWYoYz09JzEnKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyfD0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzZXMoKXsKKyAgICAgICBTdHJpbmcgc2ltcGxlQWxpYXMgICA9ICJPcGVuIjsKKworICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmNyZWF0ZUJ1bmRsZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsIHRlc3RMb2FkZXIpOworICAgICAgIGlmIChyYiA9PSBudWxsKSB7CisgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGVzdGFsaWFzZXMgZGF0YSIpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoInNpbXBsZWFsaWFzIik7CisgICAgICAgIFN0cmluZyBzMSA9IHN1Yi5nZXRTdHJpbmcoInNpbXBsZWFsaWFzIik7CisgICAgICAgIGlmKHMxLmVxdWFscyhzaW1wbGVBbGlhcykpeworICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3Igc2ltcGxlYWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgICAgICBzdWIgPSByYi5nZXQoIm5vbmV4aXN0aW5nIik7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIG5vbmV4aXN0aW5nIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBub25leGlzdGluZyBhbGlhcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBzdWIgPSByYi5nZXQoInJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJIYW5pIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciByZWZlcmVuY2luZ2FsaWFzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgIHN1YiA9IHJiLmdldCgiYm91bmRhcmllcyIpOworICAgICAgICAgICAgU3RyaW5nIHdvcmQgPSBzdWIuZ2V0U3RyaW5nKCJ3b3JkIik7CisKKyAgICAgICAgICAgIGlmKHdvcmQuZXF1YWxzKCJ3b3JkX2phLmJyayIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIGJvdW5kYXJpZXMvd29yZCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB0eXBlIGZvciBib3VuZGFyaWVzL3dvcmQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiMSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVzdGFsaWFzZXMiLHRlc3RMb2FkZXIpOworICAgICAgICAgICAgaWYocmIxIT1yYil7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhY2hpbmcgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCJDYWNoaW5nIG9mIHJlc291cmNlIGJ1bmRsZSBwYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1YiA9IHJiMS5nZXQoInRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIiApOworCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXQoIktleUFsaWFzMFBTVCIpLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMlBEVCIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJQRFQiKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygiS2V5QWxpYXMzTG9zQW5nZWxlcyIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJMb3MgQW5nZWxlcyIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBLZXlBbGlhczNMb3NBbmdlbGVzLiBHb3Q6ICIrczEpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzM0xvc0FuZ2VsZXMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIiApOworICAgICAgICAgICAgczEgPSBzdWIuZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMC4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzAuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygyKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUERUIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMyk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIkxvcyBBbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMy4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJ0ZXN0QWxpYXNUb1RyZWUiICk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gc3ViLmdldCgic3RhbmRhcmQiKS5nZXQoIiUlQ29sbGF0aW9uQmluIikuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBpZihidWY9PW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciAlJUNvbGxhdGlvbkJpbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBub3QgZ2V0IGFuIGV4Y2VwdGlvbgorICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwiZnJfQkUiKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHJiLmdldFN0cmluZygiU3BlbGxvdXRSdWxlcyIpOworICAgICAgICBpZihzdHIgIT1udWxsIHx8IHN0ci5sZW5ndGgoKT4wKXsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgZnJfQkUgU3BlbGxvdXRSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsInpoX1RXIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihiICE9IG51bGwpeworICAgICAgICAgICAgaWYoYi5nZXQoMCkuZ2V0S2V5KCkuZXF1YWxzKCAiZGVmYXVsdCIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgemhfVFcgY29sbGF0aW9ucyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXMoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgJSVBTElBUyIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIml3X0lMIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSByYi5nZXQoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgIGlmKGIgIT0gbnVsbCl7CisgICAgICAgICAgICBpZihiLmdldFNpemUoKT4wKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiJSVBTElBUyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCIlJUFMSUFTIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGl3X0lMIGNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiJSVBTElBUyBtZWNoYW5pc20gZmFpbGVkIGZvciBpd19JTCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RYUGF0aEFsaWFzKCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVfSU4iLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gcmIuZ2V0KCJhbGlhc0NsaWVudCIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYi5nZXRTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGV4cFJlc3VsdD0gImNvcnJlY3QiOyAKKworICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBYUGF0aCBzdHlsZSBhbGlhcyIpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGMgPSByYi5nZXQoInJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgcmVzdWx0ID0gYy5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGV4cFJlc3VsdCA9ICJjb3JyZWN0IjsgCisgICAgICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgWFBhdGggc3R5bGUgYWxpYXMgZm9yIHJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCByb290QWxpYXNDbGllbnQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2lyY3VsYXJBbGlhc2VzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoImFhYSIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBleGNlcHRpb24gZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFdpdGhGYWxsYmFjaygpeworICAgICAgICAvKgorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlX0lOIik7CisgICAgICAgIFN0cmluZyBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJLZXlzL2NvbGxhdGlvbiIpOworICAgICAgICBpZigha2V5LmVxdWFscygiQ09MTEFUSU9OIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0eXBlID0gYnVuZGxlLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiVHlwZXMvY29sbGF0aW9uL2RpcmVjdCIpOworICAgICAgICBpZighdHlwZS5lcXVhbHMoIkRJUkVDVCIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvcm0gZ2V0U3RyaW5nV2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICBTdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsVUxvY2FsZS5jYW5vbmljYWxpemUoImRlX19QSE9ORUJPT0siKSk7CisKKyAgICAgICAgICAgIGlmKCFidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscygiZGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGtleSA9IGJ1bmRsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvY29sbGF0aW9uL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJwaG9uZWJvb2siKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworCisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCJmcl9GUiIpOworICAgICAgICBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgaWYoIWtleS5lcXVhbHMoInN0YW5kYXJkIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsImZyX0ZSIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIxID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIiKTsKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRDYWwgPSBiMS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImRlZmF1bHQiKTsKKyAgICAgICAgaWYoIWRlZmF1bHRDYWwuZXF1YWxzKCJncmVnb3JpYW4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRlZmF1bHQgY2FsZW5kYXIgc3RyaW5nOiBFeHBlY3RlZDogZ3JlZ29yaWFuLCBHb3Q6ICIrZGVmYXVsdENhbCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYjIgPSBiMS5nZXRXaXRoRmFsbGJhY2soZGVmYXVsdENhbCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIzID0gYjIuZ2V0V2l0aEZhbGxiYWNrKCJtb250aE5hbWVzIik7CisgICAgICAgIFN0cmluZyBkZWZhdWx0Q29udGV4dCA9IGIzLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiZGVmYXVsdCIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiNCA9IGIzLmdldFdpdGhGYWxsYmFjayhkZWZhdWx0Q29udGV4dCk7CisgICAgICAgIFN0cmluZyBkZWZhdWx0V2lkdGggID0gYjQuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJkZWZhdWx0Iik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGI1ID0gYjQuZ2V0V2l0aEZhbGxiYWNrKGRlZmF1bHRXaWR0aCk7CisgICAgICAgIGlmKGI1LmdldFNpemUoKSE9MTIpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzaXplIGZvciB0aGUgZGVmYXVsdCBtb250aE5hbWVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09MTEFUSU9OX1JFU05BTUUgPSAiY29sbGF0aW9ucyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTExBVElPTl9LRVlXT1JEID0gImNvbGxhdGlvbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfTkFNRSA9ICJkZWZhdWx0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RBTkRBUkRfTkFNRSA9ICJzdGFuZGFyZCI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5d29yZFZhbHVlcygpeworICAgICAgICBTdHJpbmcga3dWYWxzW107CisgICAgICAgIGJvb2xlYW4gZm91bmRTdGFuZGFyZCA9IGZhbHNlOworICAgICAgICBpbnQgbjsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0aW5nIGNvbGxhdGlvbiB2YWx1ZXM6Iik7CisgICAgICAgIGt3VmFscyA9IElDVVJlc291cmNlQnVuZGxlLmdldEtleXdvcmRWYWx1ZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsQ09MTEFUSU9OX1JFU05BTUUpOworICAgICAgICBmb3Iobj0wO248a3dWYWxzLmxlbmd0aDtuKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKG5ldyBJbnRlZ2VyKG4pLnRvU3RyaW5nKCkgKyAiOiAiICsga3dWYWxzW25dKTsKKyAgICAgICAgICAgIGlmKERFRkFVTFRfTkFNRS5lcXVhbHMoa3dWYWxzW25dKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRLZXl3b3JkVmFsdWVzIGZvciBjb2xsYXRpb24gcmV0dXJuZWQgJ2RlZmF1bHQnIGluIHRoZSBsaXN0LiIpOworICAgICAgICAgICAgfSBlbHNlIGlmKFNUQU5EQVJEX05BTUUuZXF1YWxzKGt3VmFsc1tuXSkpIHsKKyAgICAgICAgICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kU3RhbmRhcmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiZm91bmQgJ3N0YW5kYXJkJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciAtICdzdGFuZGFyZCcgaXMgaW4gdGhlIGtleXdvcmQgbGlzdCB0d2ljZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgLSAnc3RhbmRhcmQnIHdhcyBub3QgaW4gdGhlIGNvbGxhdGlvbiB0cmVlIGFzIGEga2V5d29yZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCInc3RhbmRhcmQnIHdhcyBmb3VuZCBhcyBhIGNvbGxhdGlvbiBrZXl3b3JkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZURpc3BsYXlOYW1lcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWhhc0xvY2FsaXplZENvdW50cnlGb3IoVUxvY2FsZS5FTkdMSVNILCBsb2NhbGVzW2ldKSl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCFoYXNMb2NhbGl6ZWRMYW5ndWFnZUZvcihVTG9jYWxlLkVOR0xJU0gsIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZENvdW50cnlGb3IobG9jYWxlc1tpXSwgbG9jYWxlc1tpXSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBoYXNMb2NhbGl6ZWRDb3VudHJ5Rm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZExhbmd1YWdlRm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldICsgIlx0IiArIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICJcdCIgKyBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKGxvY2FsZXNbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkTGFuZ3VhZ2VGb3IoVUxvY2FsZSBsb2NhbGUsIFVMb2NhbGUgb3RoZXJMb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmcgPSBvdGhlckxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgbG9jYWxpemVkVmVyc2lvbiA9IG90aGVyTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShsb2NhbGUpOworICAgICAgICByZXR1cm4gIWxhbmcuZXF1YWxzKGxvY2FsaXplZFZlcnNpb24pOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkQ291bnRyeUZvcihVTG9jYWxlIGxvY2FsZSwgVUxvY2FsZSBvdGhlckxvY2FsZSkgeworICAgICAgICBTdHJpbmcgY291bnRyeSA9IG90aGVyTG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgaWYgKGNvdW50cnkuZXF1YWxzKCIiKSkgcmV0dXJuIHRydWU7CisgICAgICAgIFN0cmluZyBsb2NhbGl6ZWRWZXJzaW9uID0gb3RoZXJMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuICFjb3VudHJ5LmVxdWFscyhsb2NhbGl6ZWRWZXJzaW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnVuY3Rpb25hbEVxdWl2YWxlbnQoKXsKKyAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7CisgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhdmFpbCAgIGxvY2FsZSAgICAgICAgICBlcXVpdgorICAgICAgICAgICAgICAiZiIsICAgICJkZV9VU19DQUxJRk9STklBIiwgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9UV0Bjb2xsYXRpb249c3Ryb2tlIiwgICAgICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsIC8qIHNob3VsZCBiZSAnVCcgd2hlbiB2YWxpZFN1YkxvY2FsZXMgd29ya3MgKi8KKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXBpbnlpbiIsICAgICAgInpoIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInpoQGNvbGxhdGlvbj1zdHJva2UiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9ISyIsICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX01PIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFQGNvbGxhdGlvbj1iaWc1aGFuIiwgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX1RXQGNvbGxhdGlvbj1iaWc1aGFuIiwgICAgInpoQGNvbGxhdGlvbj1iaWc1aGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJ6aEBjb2xsYXRpb249Z2IyMzEyaGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfQ05AY29sbGF0aW9uPWJpZzVoYW4iLCAgICAiemhAY29sbGF0aW9uPWJpZzVoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9DTkBjb2xsYXRpb249Z2IyMzEyaGFuIiwgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsICAgICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLCAgICAiemhAY29sbGF0aW9uPWdiMjMxMmhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgImhpX0lOQGNvbGxhdGlvbj1kaXJlY3QiLCAgICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwKKyAgICAgICAgICAgICAgInQiLCAgICAiaGlAY29sbGF0aW9uPXN0YW5kYXJkIiwgICAgICAiaGkiLAorICAgICAgICAgICAgICAidCIsICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwgICAgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1kaXJlY3Q7Y3VycmVuY3k9Q0hGO2NhbGVuZGFyPWJ1ZGRoaXN0IiwgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1zdGFuZGFyZDtjdXJyZW5jeT1DSEY7Y2FsZW5kYXI9YnVkZGhpc3QiLCAgICJoaSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlX0RFQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsIC8qIGJ1ZyA0NTgyIHRlc3RzICovCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0RFX0JPTk5AY29sbGF0aW9uPXBpbnlpbiIsICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sIiwgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkwiLCAgICAgICAgICAgICAgICAgICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUIiwgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sQGNvbGxhdGlvbj1zdHJva2UiLCAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkxAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUQGNvbGxhdGlvbj1zdHJva2UiLCAicm9vdCIsCSAgCisgICAgICAgICAgIH07CisKKyAgICAgICBTdHJpbmcgRl9TVFIgPSAiZiI7CisgICAgICAgU3RyaW5nIFRfU1RSID0gInQiOworICAgICAgIGJvb2xlYW4gaXNBdmFpbFtdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgaW50IGk7CisKKyAgICAgICBsb2dsbigiVGVzdGluZyBmdW5jdGlvbmFsIGVxdWl2YWxlbnRzLi4uIik7CisgICAgICAgZm9yKGk9MDtpPHRlc3RDYXNlcy5sZW5ndGg7aSs9MykgeworICAgICAgICAgICBib29sZWFuIGV4cGVjdEF2YWlsID0gVF9TVFIuZXF1YWxzKHRlc3RDYXNlc1tpKzBdKTsKKyAgICAgICAgICAgVUxvY2FsZSBpbkxvY2FsZSA9IG5ldyBVTG9jYWxlKHRlc3RDYXNlc1tpKzFdKTsKKyAgICAgICAgICAgVUxvY2FsZSBleHBlY3RMb2NhbGUgPSBuZXcgVUxvY2FsZSh0ZXN0Q2FzZXNbaSsyXSk7CisKKyAgICAgICAgICAgbG9nbG4obmV3IEludGVnZXIoaS8zKS50b1N0cmluZygpICsgIjogIiArIG5ldyBCb29sZWFuKGV4cGVjdEF2YWlsKS50b1N0cmluZygpICsgIlx0XHQiICsKKyAgICAgICAgICAgICAgICAgICBpbkxvY2FsZS50b1N0cmluZygpICsgIlx0XHQiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgIFVMb2NhbGUgZXF1aXZMb2NhbGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSxDT0xMQVRJT05fUkVTTkFNRSwKKyAgICAgICAgICAgICAgICAgICBDT0xMQVRJT05fS0VZV09SRCwgaW5Mb2NhbGUsIGlzQXZhaWwpOworICAgICAgICAgICBib29sZWFuIGdvdEF2YWlsID0gaXNBdmFpbFswXTsKKworICAgICAgICAgICBpZigoZ290QXZhaWwhPWV4cGVjdEF2YWlsKSB8fCAhZXF1aXZMb2NhbGUuZXF1YWxzKGV4cGVjdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgIGVycmxuKG5ldyBJbnRlZ2VyKGkvMykudG9TdHJpbmcoKSArICI6ICBFcnJvciwgZXhwZWN0ZWQgIEVxdWl2PSIgKyBuZXcgQm9vbGVhbihleHBlY3RBdmFpbCkudG9TdHJpbmcoKSArICJcdFx0IiArCisgICAgICAgICAgICAgICAgICAgICAgIGluTG9jYWxlLnRvU3RyaW5nKCkgKyAiXHRcdC0tPiAiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkgKyAiLCAgYnV0IGdvdCAiICsgbmV3IEJvb2xlYW4oZ290QXZhaWwpLnRvU3RyaW5nKCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICBlcXVpdkxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVycm9yIGNvbmRpdGlvbnM6Iik7CisgICAgICAgdHJ5IHsKKyAgICAgICAgICAgVUxvY2FsZSBlcXVpdkxvY2FsZSA9IElDVVJlc291cmNlQnVuZGxlLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCAiY2FsZW5kYXIiLAorICAgICAgICAgICAgICAiY2FsZW5kYXIiLCBuZXcgVUxvY2FsZSgiYXJfRUdAY2FsZW5kYXI9aXNsYW1pYyIpLCBuZXcgYm9vbGVhblsxXSk7CisgICAgICAgICAgIGVycmxuKCJFcnI6IGV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiIpOworICAgICAgIH0gY2F0Y2ggKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCApIHsKKyAgICAgICAgICAgbG9nbG4oImV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBjYXVnaHQgKFBBU1MpOiAiICsgdC50b1N0cmluZygpKTsKKyAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcndlZ2lhbigpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgIm5vX05PX05ZIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoIkNvdW50cmllcyIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygiTk8iKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiTm9yZWciKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBvdXRwdXQgIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJDYXVnaHQgYW4gdW5leHBlY3RlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQxMDIoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJvb3QgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInJvb3QiKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHQgPSBudWxsOyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcm9vdC5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2lzbGFtaWMtY2l2aWwvQW1QbU1hcmtlcnMiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LiBIb3cgZGlkIGl0IGdldCBoZXJlP1xuIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcm9vdC5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2lzbGFtaWMtY2l2aWwvZXJhcy9hYmJyZXZpYXRlZC8wL21pa2ltYXVzL3BlcmEiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LiBIb3cgZGlkIGl0IGdldCBoZXJlP1xuIik7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJ0IGlzIG5vdCBudWxsISIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDTERSU3R5bGVBbGlhc2VzKCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW11leHBlY3RzID0gbmV3IFN0cmluZ1tdIHsgIiIsICJhNDEiLCAiYTEyIiwgImEwMyIsICJhcjQiIH07CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgQ0xEUiBzdHlsZSBhbGlhc2VzLi4uLi4uXG4iKTsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInRlX0lOX1JFVklTRUQiLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhbGlhcyA9IHJiLmdldCgiYSIpOworCisgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPCA1IDsgaSsrKSB7CisgICAgICAgICAgU3RyaW5nIHJlc291cmNlPSJhIitpOworICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGEgPSAoKElDVVJlc291cmNlQnVuZGxlKWFsaWFzKS5nZXRXaXRoRmFsbGJhY2socmVzb3VyY2UpOworICAgICAgICAgIHJlc3VsdCA9IGEuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgaWYocmVzdWx0LmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgZXJybG4oIkNMRFIgc3R5bGUgYWxpYXNlcyBmYWlsZWQgcmVzb3VyY2Ugd2l0aCBuYW1lICIrcmVzb3VyY2UrInJlc291cmNlLCBleHAgIitleHBlY3RzW2ldICsiICwgZ290ICIgKyByZXN1bHQpOyAKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyBnZXRMU1N0cmluZyhpbnQgc3RhdHVzKXsKKyAgICAgICAgc3dpdGNoKHN0YXR1cyl7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuICJGUk9NX0ZBTExCQUNLIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlJPTV9ERUZBVUxUIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fUk9PVCI7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fTE9DQUxFOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fTE9DQUxFIjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuICJVTktOT1dOIjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9hZGluZ1N0YXR1cygpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ5aV9JTCIpOworICAgICAgICBpbnQgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fREVGQVVMVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiZW9fREUiKTsKKyAgICAgICAgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0speworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0spIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgdG8gdmVyaWZ5IGxvYWRpbmcgc3RhdHVzIG9mIGdldChTdHJpbmcpIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInRlX0lOIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGNvdW50cmllcyA9IGJ1bmRsZS5nZXQoIkNvdW50cmllcyIpOworICAgICAgICBzdGF0dXMgPWNvdW50cmllcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGF1eEV4ZW1wbGFyID0gYnVuZGxlLmdldCgiQXV4RXhlbXBsYXJDaGFyYWN0ZXJzIik7CisgICAgICAgIHN0YXR1cyA9IGF1eEV4ZW1wbGFyLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9IAorICAgICAgICAqLworICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0KGludCkiKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbXMgPSBidW5kbGUuZ2V0KCJNZWFzdXJlbWVudFN5c3RlbSIpOworICAgICAgICBzdGF0dXMgPSBtcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCkgCisgICAgICAgICAgICAgICAgICAgICsgIiBHb3Q6ICIgKyBnZXRMU1N0cmluZyhzdGF0dXMpKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0d2l0aEZhbGxiYWNrIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInNoX1lVIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTIiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0xPQ0FMRSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9MT0NBTEUpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTEiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIHRlbXAgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJhL2E0Iik7CisgICAgICAgIHN0YXR1cyA9IHRlbXAuZ2V0TG9hZGluZ1N0YXR1cygpOworICAgICAgICBpZihzdGF0dXMgIT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGU7CisgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgaWYgKGJ1bmRsZSA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSBudWxsOworICAgICAgICBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZiAoYnVuZGxlID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIlVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShVTG9jYWxlKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oImNvdmVyYWdlIikgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRlIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIGNsYXNzIFN0dWIgZXh0ZW5kcyBVUmVzb3VyY2VCdW5kbGV7CisgICAgICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkge3JldHVybiBVTG9jYWxlLlJPT1Q7fQorICAgICAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldExvYWRpbmdTdGF0dXMoaW50IG5ld1N0YXR1cykge30KKyAgICAgICAgICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRLZXlzKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgIH0KKyAgICAgICAgU3R1YiBzdHViID0gbmV3IFN0dWIoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3R1Yi5nZXRMb2NhbGUoKS5lcXVhbHMoVUxvY2FsZS5ST09ULnRvTG9jYWxlKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0TG9jbGFlKExvY2FsZSkgc2hvdWxkIGRlbGVnYXRlIHRvIChVTG9jYWxlKSIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKYXZhVUxvY2FsZUJ1bmRsZUxvYWRpbmcoKXsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lPSJjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXMuVGVzdERhdGFFbGVtZW50cyI7CisgICAgICAgIFN0cmluZyBsb2NOYW1lID0gImVuX0xhdG5fVVMiOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NOYW1lLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgU3RyaW5nIGZyb21Sb290ID0gYnVuZGxlLmdldFN0cmluZygiZnJvbV9yb290Iik7CisgICAgICAgIGlmKCFmcm9tUm9vdC5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIHJvb3QiKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9yb290Iik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbiA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW4iKTsKKyAgICAgICAgaWYoIWZyb21Fbi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGZyb21fZW4iKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJvbUVuTGF0biA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0biIpOworICAgICAgICBpZighZnJvbUVuTGF0bi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX0xhdG4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9lbl9MYXRuIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbkxhdG5VcyA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0bl9VUyIpOworICAgICAgICBpZighZnJvbUVuTGF0blVzLmVxdWFscygiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fTGF0bl9VUyIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBmcm9tX2VuX0xhdG5fVVMiKTsKKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlMSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbmV3IFVMb2NhbGUobG9jTmFtZSksIHRlc3RMb2FkZXIpOworICAgICAgICBpZighYnVuZGxlMS5lcXVhbHMoYnVuZGxlKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZSBmb3IgIitiYXNlTmFtZSArIi4iK2xvY05hbWUpOworICAgICAgICB9CisgICAgICAgIGlmKGJ1bmRsZTEhPWJ1bmRsZSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBsb2FkIHRoZSBidW5kbGUgZnJvbSBjYWNoZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlMiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgImVuX0lOIiwgdGVzdExvYWRlcik7CisgICAgICAgIGlmKCFidW5kbGUyLmdldExvY2FsZSgpLnRvU3RyaW5nKCkuZXF1YWxzKCJlbiIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZmFsbGJhY2sgbG9jYWxlLiBFeHBlY3RlZDogZW4gR290OiAiK2J1bmRsZTIuZ2V0TG9jYWxlKCkudG9TdHJpbmcoKSk7ICAgIAorICAgICAgICB9CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUzID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCAidGVfSU4iLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgaWYoIWJ1bmRsZTMuZ2V0TG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoInRlIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBmYWxsYmFjayBsb2NhbGUuIEV4cGVjdGVkOiB0ZSBHb3Q6ICIrYnVuZGxlMi5nZXRMb2NhbGUoKS50b1N0cmluZygpKTsgICAgCisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLWV4aXN0ZW50IGJ1bmRsZSAuLiBzaG91bGQgcmV0dXJuIGRlZmF1bHQKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGRlZmF1bHRCdW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsICJoaV9JTiIsIHRlc3RMb2FkZXIpOworICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgaWYoIWRlZmF1bHRCdW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscyhkZWZhdWx0TG9jYWxlKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGRlZmF1bHQgYnVuZGxlIGZvciBub24tZXhpc3RlbnQgYnVuZGxlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLWV4aXN0ZW50IGJ1bmRsZSwgbm9uLWV4aXN0ZW50IGRlZmF1bHQgbG9jYWxlCisgICAgICAgIC8vIHNvIHJldHVybiB0aGUgcm9vdCBidW5kbGUuCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgcm9vdCA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgImhpX0lOIiwgdGVzdExvYWRlcik7CisgICAgICAgIGlmKCFyb290LmdldFVMb2NhbGUoKS50b1N0cmluZygpLmVxdWFscygiIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSByb290IGJ1bmRsZSBmb3Igbm9uLWV4aXN0ZW50IGRlZmF1bHQgYnVuZGxlIGZvciBub24tZXhpc3RlbnQgYnVuZGxlIik7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAvL3Jlc2V0IHRoZSBkZWZhdWx0CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGJ1bmRsZS5nZXRLZXlzKCk7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIHdoaWxlKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgbG9nbG4oImtleTogIisga2V5cy5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZihpIT00KXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGtleXM6IGdvdCAiICsgaSArICIsIGV4cGVjdGVkIDQiKTsKKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlNCA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwiZnJfTGF0bl9GUiIsIHRlc3RMb2FkZXIpOworICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBsb2FkIGJ1bmRsZSBmcl9MYXRuX0ZSIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzRmFsbGJhY2soKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUxvY2FsZSBsb2MgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvYyk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiMSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSliLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvaGVicmV3L21vbnRoTmFtZXMvZm9ybWF0L2FiYnJldmlhdGVkIik7CisgICAgICAgICAgICBpZihiMSE9bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oImxvYWRlZCBkYXRhIGZvciBhYmJyZXZpYXRlZCBtb250aCBuYW1lczogIisgYjEuZ2V0S2V5KCkpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkZhaWxlZCB0byBsb2FkIGRhdGEgZm9yIGFiYnJldmlhdGVkIG1vbnRoIG5hbWVzIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MDAwMTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAxNCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVU5vdGlmaWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUldMb2NrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5LZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLlNlcnZpY2VMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuU2ltcGxlRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLklDVVJlc291cmNlQnVuZGxlRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIElDVVNlcnZpY2VUZXN0IHRlc3QgPSBuZXcgSUNVU2VydmljZVRlc3QoKTsKKyAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBscm1zZyhTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgIHJldHVybiBtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJoczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtQm9vbGVhbihTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiB2YWwpIHsKKyAgICBtc2cobWVzc2FnZSwgdmFsID8gTE9HIDogRVJSLCAhdmFsLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtRXF1YWwoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgKGxocyA9PSBudWxsID8gcmhzID09IG51bGwgOiBsaHMuZXF1YWxzKHJocykpID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtSWRlbnRpY2FsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29uZmlybUlkZW50aWNhbChTdHJpbmcgbWVzc2FnZSwgaW50IGxocywgaW50IHJocykgeworICAgIG1zZyhtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJocywgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBVTG9jYWxlIGFzIHRoZSBsb2NhbGUsIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvcgorICAgICAqIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8gc29ydCB0aGUgZGlzcGxheSBuYW1lcywgYW5kIG51bGwgZm9yCisgICAgICogdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8KKyAgICAgKiBzb3J0IHRoZSBkaXNwbGF5IG5hbWVzLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb2wsIG51bGwpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIGxvY2FsZSBhcyB0aGUgY29tcGFyYXRvciB0bworICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBtYXRjaElEKTsKKyAgICB9CisKKyAgICAvLyB1c2UgbG9jYWxlIGtleXMKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdFNlcnZpY2UgZXh0ZW5kcyBJQ1VTZXJ2aWNlIHsKKyAgICAgICAgcHVibGljIFRlc3RTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIlRlc3QgU2VydmljZSIpOworICAgICAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZUtleS5jcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soaWQsIG51bGwpOyAvLyBubyBmYWxsYmFjayBsb2NhbGUKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAvLyBjcmVhdGUgYSBzZXJ2aWNlIHVzaW5nIGxvY2FsZSBrZXlzLAorICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBUZXN0U2VydmljZSgpOworCisgICAgICAgIGxvZ2xuKCJzZXJ2aWNlIG5hbWU6IiArIHNlcnZpY2UuZ2V0TmFtZSgpKTsKKworICAgIC8vIHJlZ2lzdGVyIGFuIG9iamVjdCB3aXRoIG9uZSBsb2NhbGUsCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCBhIG1vcmUgc3BlY2lmaWMgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgb2JqZWN0CisgICAgSW50ZWdlciBzaW5nbGV0b24wID0gbmV3IEludGVnZXIoMCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24wLCAiZW5fVVMiKTsKKyAgICBPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0ZPTyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEpIGVuX1VTX0ZPTyAtPiBlbl9VUyIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyByZWdpc3RlciBhIG5ldyBvYmplY3Qgd2l0aCB0aGUgbW9yZSBzcGVjaWZpYyBsb2NhbGUKKyAgICAvLyBzZWFyY2ggZm9yIGFuIG9iamVjdCB3aXRoIHRoYXQgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgbmV3IG9iamVjdAorICAgIEludGVnZXIgc2luZ2xldG9uMSA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMSwgImVuX1VTX0ZPTyIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19GT08iKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIyKSBlbl9VU19GT08gLT4gZW5fVVNfRk9PIiwgcmVzdWx0LCBzaW5nbGV0b24xKTsKKworICAgIC8vIHNlYXJjaCBmb3IgYW4gb2JqZWN0IHRoYXQgZmFsbHMgYmFjayB0byB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBsb2NhbGUKKyAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisgICAgY29uZmlybUlkZW50aWNhbCgiMykgZW5fVVNfQkFSIC0+IGVuX1VTIiwgcmVzdWx0LCBzaW5nbGV0b24wKTsKKworICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIGZhY3Rvcmllcywgc2hvdWxkIGJlIHR3bworICAgIExpc3QgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI0KSBmYWN0b3J5IHNpemUiLCBmYWN0b3JpZXMuc2l6ZSgpLCAyKTsKKworICAgIC8vIHJlZ2lzdGVyIGEgbmV3IG9iamVjdCB3aXRoIHlldCBhbm90aGVyIGxvY2FsZQorICAgIC8vIG9yaWdpbmFsIGZhY3RvcnkgbGlzdCBpcyB1bmNoYW5nZWQKKyAgICBJbnRlZ2VyIHNpbmdsZXRvbjIgPSBuZXcgSW50ZWdlcigyKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KHNpbmdsZXRvbjIsICJlbiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjUpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDIpOworCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCB0aGUgbmV3IGxvY2FsZQorICAgIC8vIHN0YWNrIG9mIGZhY3RvcmllcyBpcyBub3cgZW4sIGVuX1VTX0ZPTywgZW5fVVMKKyAgICAvLyBzZWFyY2ggZm9yIGVuX1VTIHNob3VsZCBzdGlsbCBmaW5kIGVuX1VTIG9iamVjdAorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI2KSBlbl9VU19CQVIgLT4gZW5fVVMiLCByZXN1bHQsIHNpbmdsZXRvbjApOworCisgICAgLy8gcmVnaXN0ZXIgYSBuZXcgb2JqZWN0IHdpdGggYW4gb2xkIGlkLCBzaG91bGQgaGlkZSBlYXJsaWVyIGZhY3RvcnkgdXNpbmcgdGhpcyBpZCwgYnV0IGxlYXZlIGl0IHRoZXJlCisgICAgSW50ZWdlciBzaW5nbGV0b24zID0gbmV3IEludGVnZXIoMyk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVMiKTsKKyAgICBmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjkpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDQpOworCisgICAgLy8gc2hvdWxkIGdldCBkYXRhIGZyb20gdGhhdCBuZXcgZmFjdG9yeQorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxMCkgZW5fVVNfQkFSIC0+ICgzKSIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKyAgICAvLyByZW1vdmUgbmV3IGZhY3RvcnkKKyAgICAvLyBzaG91bGQgaGF2ZSBmZXdlciBmYWN0b3JpZXMgYWdhaW4KKyAgICBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWZhY3Rvcmllcy5nZXQoMCkpOworICAgIGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgY29uZmlybUlkZW50aWNhbCgiMTEpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDMpOworCisgICAgLy8gc2hvdWxkIGdldCBvcmlnaW5hbCBkYXRhIGFnYWluIGFmdGVyIHJlbW92ZSBmYWN0b3J5CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0JBUiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEyKSBlbl9VU19CQVIgLT4gMCIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyBzaG91bGRuJ3QgZmluZCB1bnJlZ2lzdGVyZWQgaWRzCisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImZvbyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEzKSBmb28gLT4gbnVsbCIsIHJlc3VsdCwgbnVsbCk7CisKKyAgICAvLyBzaG91bGQgZmluZCBub24tY2Fub25pY2FsIHN0cmluZ3MKKyAgICBTdHJpbmdbXSByZXN1bHRJRCA9IG5ldyBTdHJpbmdbMV07CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoIkVOX3VzX2ZPbyIsIHJlc3VsdElEKTsKKyAgICBjb25maXJtRXF1YWwoIjE0KSBmaW5kIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX1VTX0ZPTyIpOworCisgICAgLy8gc2hvdWxkIGJlIGFibGUgdG8gcmVnaXN0ZXIgbm9uLWNhbm9uaWNhbCBzdHJpbmdzIGFuZCBnZXQgdGhlbSBjYW5vbmljYWxpemVkCisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZU5fY2FfZFVkZSIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJFbl9DYV9EdURlIiwgcmVzdWx0SUQpOworICAgIGNvbmZpcm1FcXVhbCgiMTUpIHJlZ2lzdGVyIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX0NBX0RVREUiKTsKKworICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIHJlZ2lzdGVyIGludmlzaWJsZSBmYWN0b3JpZXMsIHRoZXNlIHdpbGwgbm90CisgICAgLy8gYmUgdmlzaWJsZSBieSBkZWZhdWx0LCBidXQgaWYgeW91IGtub3cgdGhlIHNlY3JldCBwYXNzd29yZCB5b3UKKyAgICAvLyBjYW4gc3RpbGwgYWNjZXNzIHRoZXNlIHNlcnZpY2VzLi4uCisgICAgSW50ZWdlciBzaW5nbGV0b240ID0gbmV3IEludGVnZXIoNCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b240LCAiZW5fVVNfQkFSIiwgZmFsc2UpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxNykgZ2V0IGludmlzaWJsZSIsIHJlc3VsdCwgc2luZ2xldG9uNCk7CisKKyAgICAvLyBzaG91bGQgbm90IGJlIGFibGUgdG8gbG9jYXRlIGludmlzaWJsZSBzZXJ2aWNlcworICAgIFNldCBpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICBjb25maXJtQm9vbGVhbigiMTgpIGZpbmQgaW52aXNpYmxlIiwgIWlkcy5jb250YWlucygiZW5fVVNfQkFSIikpOworCisgICAgc2VydmljZS5yZXNldCgpOworICAgIC8vIGFuIGFub255bW91cyBmYWN0b3J5IHRoYW4gaGFuZGxlcyBhbGwgaWRzCisgICAgeworICAgICAgICBGYWN0b3J5IGZhY3RvcnkgPSBuZXcgRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGtleS5jdXJyZW50SUQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorCisgICAgICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisKKyAgICAgICAgLy8gYW5vbnltb3VzIGZhY3Rvcnkgd2lsbCBzdGlsbCBoYW5kbGUgdGhlIGlkCisgICAgICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KFVMb2NhbGUuVVMudG9TdHJpbmcoKSk7CisgICAgICAgIGNvbmZpcm1FcXVhbCgiMjEpIGxvY2FsZSIsIHJlc3VsdCwgVUxvY2FsZS5VUyk7CisKKyAgICAgICAgLy8gc3RpbGwgbm9ybWFsaXplcyBpZAorICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiRU5fVVNfQkFSIik7CisgICAgICAgIGNvbmZpcm1FcXVhbCgiMjIpIGxvY2FsZSIsIHJlc3VsdCwgbmV3IFVMb2NhbGUoImVuX1VTX0JBUiIpKTsKKworICAgICAgICAvLyB3ZSBjYW4gb3ZlcnJpZGUgZm9yIHBhcnRpY3VsYXIgaWRzCisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMywgImVuX1VTX0JBUiIpOworICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjIzKSBvdmVycmlkZSBzdXBlciIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKyAgICB9CisKKyAgICAvLyBlbXB0eSBzZXJ2aWNlIHNob3VsZCBub3QgcmVjb2duaXplIGFueXRoaW5nCisgICAgc2VydmljZS5yZXNldCgpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VUyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjI0KSBlbXB0eSIsIHJlc3VsdCwgbnVsbCk7CisKKyAgICAvLyBjcmVhdGUgYSBjdXN0b20gbXVsdGlwbGUga2V5IGZhY3RvcnkKKyAgICB7CisgICAgICAgIFN0cmluZ1tdIHhpZHMgPSB7ICJlbl9VU19WQUxMRVlfR0lSTCIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfVkFMTEVZX0JPWSIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfU1VSRkVSX0dBTCIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfU1VSRkVSX0RVREUiCisgICAgICAgIH07CisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0TG9jYWxlS2V5RmFjdG9yeSh4aWRzLCAiTGF0ZXIiKSk7CisgICAgfQorCisgICAgLy8gaXRlcmF0ZSBvdmVyIHRoZSB2aXN1YWwgaWRzIHJldHVybmVkIGJ5IHRoZSBtdWx0aXBsZSBmYWN0b3J5CisgICAgeworICAgICAgICBTZXQgdmlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gdmlkcy5pdGVyYXRvcigpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbigiICAiICsgaWQgKyAiIC0tPiAiICsgc2VydmljZS5nZXQoaWQpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3VyIHZpc2libGUgaWRzCisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjI1KSB2aXNpYmxlIGlkcyIsIGNvdW50LCA0KTsKKyAgICB9CisKKyAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIGRpc3BsYXkgbmFtZXMKKyAgICB7CisgICAgICAgIE1hcCBkaWRzID0gZ2V0RGlzcGxheU5hbWVzKHNlcnZpY2UsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBkaWRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICsrY291bnQ7CisgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLSA+ICIgKyBlLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIGZvdXIgZGlzcGxheSBuYW1lcywgaW4gZ2VybWFuCisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjI2KSBkaXNwbGF5IG5hbWVzIiwgY291bnQsIDQpOworICAgIH0KKworICAgIC8vIG5vIHZhbGlkIGRpc3BsYXkgbmFtZQorICAgIGNvbmZpcm1JZGVudGljYWwoIjI3KSBnZXQgZGlzcGxheSBuYW1lIiwgc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfVkFMTEVZX0dFRUsiKSwgbnVsbCk7CisKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfU1VSRkVSX0RVREUiLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCIyOCkgZ2V0IGRpc3BsYXkgbmFtZSIsIG5hbWUsICJFbmdsaXNoIChVbml0ZWQgU3RhdGVzLCBTVVJGRVJfRFVERSkiKTsKKyAgICB9CisKKyAgICAvLyByZWdpc3RlciBhbm90aGVyIG11bHRpcGxlIGZhY3RvcnkKKyAgICB7CisgICAgICAgIFN0cmluZ1tdIHhpZHMgPSB7CisgICAgICAgICJlbl9VU19TVVJGRVIiLCAiZW5fVVNfU1VSRkVSX0dBTCIsICJlbl9VU19TSUxJQ09OIiwgImVuX1VTX1NJTElDT05fR0VFSyIKKyAgICAgICAgfTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RMb2NhbGVLZXlGYWN0b3J5KHhpZHMsICJSYWQgZHVkZSIpKTsKKyAgICB9CisKKyAgICAvLyB0aGlzIHRpbWUsIHdlIGhhdmUgc2V2ZW4gZGlzcGxheSBuYW1lcworICAgICAgICAvLyBSYWQgZHVkZSdzIHN1cmZlciBnYWwgJ3JlcGxhY2VzJyBsYXRlcidzIHN1cmZlciBnYWwKKyAgICB7CisgICAgICAgIE1hcCBkaWRzID0gZ2V0RGlzcGxheU5hbWVzKHNlcnZpY2UpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gZGlkcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICArK2NvdW50OworICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbigiICAiICsgZS5nZXRLZXkoKSArICIgLS0+ICIgKyBlLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIHNldmVuIGRpc3BsYXkgbmFtZXMsIGluIHNwYW5pc2gKKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgiMjkpIGRpc3BsYXkgbmFtZXMiLCBjb3VudCwgNyk7CisgICAgfQorCisgICAgLy8gd2Ugc2hvdWxkIGdldCB0aGUgZGlzcGxheSBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFjdHVhbCBpZAorICAgIC8vIHJldHVybmVkIGJ5IHRoZSBpZCB3ZSB1c2VkLgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gYWN0dWFsSUQgPSBuZXcgU3RyaW5nWzFdOworICAgICAgICBTdHJpbmcgaWQgPSAiZW5fdXNfc3VyZmVyX2dhbCI7CisgICAgICAgIFN0cmluZyBnYWwgPSAoU3RyaW5nKXNlcnZpY2UuZ2V0KGlkLCBhY3R1YWxJRCk7CisgICAgICAgIGlmIChnYWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJhY3R1YWwgaWQ6ICIgKyBhY3R1YWxJRFswXSk7CisgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoYWN0dWFsSURbMF0sIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgZ2FsICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKyAgICAgICAgY29uZmlybUJvb2xlYW4oIjMwKSBmb3VuZCBkaXNwbGF5IG5hbWUgZm9yIGFjdHVhbCIsIGRpc3BsYXlOYW1lICE9IG51bGwpOworCisgICAgICAgIGRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShpZCwgVUxvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJmb3VuZCBxdWVyeTogIiArIGdhbCArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgYnVnLCB3ZSB3YW50IHRvIHJldHVybiBkaXNwbGF5IG5hbWVzIGZvciBhbnl0aGluZworICAgICAgICAvLyB0aGF0IGEgZmFjdG9yeSBoYW5kbGVzLiAgc2luY2Ugd2UgaGFuZGxlIGl0LCB3ZSBzaG91bGQgcmV0dXJuIGEgZGlzcGxheQorICAgICAgICAvLyBuYW1lLiAgc2VlIGpiMzU0OQorICAgICAgICAvLyBjb25maXJtQm9vbGVhbigiMzEpIGZvdW5kIGRpc3BsYXkgbmFtZSBmb3IgcXVlcnkiLCBkaXNwbGF5TmFtZSA9PSBudWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgZXJybG4oIjMwKSBzZXJ2aWNlIGNvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciAiICsgaWQpOworICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlICdkdWRlJyBmYWN0b3J5LCBzaW5jZSBpdCBvdmVycmlkZXMgZW5fVVNfU1VSRkVSLgorICAgICAgICBpZCA9ICJlbl9VU19TVVJGRVJfQk9aTyI7CisgICAgICAgIFN0cmluZyBib3pvID0gKFN0cmluZylzZXJ2aWNlLmdldChpZCwgYWN0dWFsSUQpOworICAgICAgICBpZiAoYm96byAhPSBudWxsKSB7CisgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoYWN0dWFsSURbMF0sIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgYm96byArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIGNvbmZpcm1Cb29sZWFuKCIzMikgZm91bmQgZGlzcGxheSBuYW1lIGZvciBhY3R1YWwiLCBkaXNwbGF5TmFtZSAhPSBudWxsKTsKKworICAgICAgICBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoaWQsIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgYm96byArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIC8vIHNlZSBhYm92ZSBhbmQgamIzNTQ5CisgICAgICAgIC8vIGNvbmZpcm1Cb29sZWFuKCIzMykgZm91bmQgZGlzcGxheSBuYW1lIGZvciBxdWVyeSIsIGRpc3BsYXlOYW1lID09IG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICBlcnJsbigiMzIpIHNlcnZpY2UgY291bGQgbm90IGZpbmQgZW50cnkgZm9yICIgKyBpZCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgY29uZmlybUJvb2xlYW4oIjM0KSBpcyBkZWZhdWx0ICIsICFzZXJ2aWNlLmlzRGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAgICAgLyoKKyAgICAgIC8vIGRpc2FsbG93IGhpZGluZyBmb3Igbm93CisKKyAgICAgIC8vIGhpZGluZyBmYWN0b3J5IHNob3VsZCBvYnNjdXJlICdzdWJsb2NhbGVzJworICAgICAgeworICAgICAgU3RyaW5nW10geGlkcyA9IHsKKyAgICAgICJlbl9VU19WQUxMRVkiLCAiZW5fVVNfU0lMSUNPTiIKKyAgICAgIH07CisgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgVGVzdEhpZGluZ0ZhY3RvcnkoeGlkcywgImhpZGluZyIpKTsKKyAgICAgIH0KKworICAgICAgeworICAgICAgTWFwIGRpZHMgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcygpOworICAgICAgSXRlcmF0b3IgaXRlciA9IGRpZHMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgKytjb3VudDsKKyAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICBsb2dsbigiICAiICsgZS5nZXRLZXkoKSArICIgLS0gPiAiICsgZS5nZXRWYWx1ZSgpKTsKKyAgICAgIH0KKyAgICAgIGNvbmZpcm1JZGVudGljYWwoIjM1KSBoaWRpbmcgZmFjdG9yeSIsIGNvdW50LCA1KTsKKyAgICAgIH0KKyAgICAgICAgKi8KKworICAgIHsKKyAgICAgICAgU2V0IHhpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHhpZHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgIFN0cmluZyB4aWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbih4aWQgKyAiPyAgIiArIHNlcnZpY2UuZ2V0KHhpZCkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oInZhbGxleWdpcmw/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9HSVJMIikpOworICAgICAgICBsb2dsbigidmFsbGV5Ym95PyAgICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfVkFMTEVZX0JPWSIpKTsKKyAgICAgICAgbG9nbG4oInZhbGxleWR1ZGU/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9EVURFIikpOworICAgICAgICBsb2dsbigic3VyZmVyZ2lybD8gICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfU1VSRkVSX0dJUkwiKSk7CisgICAgfQorCisgICAgLy8gcmVzb3VyY2UgYnVuZGxlIGZhY3RvcnkuCisgICAgc2VydmljZS5yZXNldCgpOworICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoKSk7CisKKyAgICAvLyBsaXN0IGFsbCBvZiB0aGUgcmVzb3VyY2VzCisgICAgeworICAgICAgICAgICAgbG9nbG4oImFsbCB2aXNpYmxlIGlkczogIiArIHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgU2V0IHhpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICAgIGJvb2xlYW4gbm90Zmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICBJdGVyYXRvciBpdGVyID0geGlkcy5pdGVyYXRvcigpOworICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgIFN0cmluZyB4aWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgIGlmIChub3RmaXJzdCkgeworICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBub3RmaXJzdCA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICAgIGJ1Zi5hcHBlbmQoeGlkKTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnVmLmFwcGVuZCgifSIpOworICAgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICovCisgICAgfQorCisgICAgICAgIC8vIGxpc3Qgb25seSB0aGUgcmVzb3VyY2VzIGZvciBlcywgZGVmYXVsdCBsb2NhbGUKKyAgICAgICAgLy8gc2luY2Ugd2UncmUgdXNpbmcgdGhlIGRlZmF1bHQgS2V5LCBvbmx5ICJlcyIgaXMgbWF0Y2hlZAorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigidmlzaWJsZSBpZHMgZm9yIGVzIGxvY2FsZTogIiArIHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygiZXMiKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBsaXN0IG9ubHkgdGhlIHNwYW5pc2ggZGlzcGxheSBuYW1lcyBmb3IgZXMsIHNwYW5pc2ggY29sbGF0aW9uIG9yZGVyCisgICAgICAgIC8vIHNpbmNlIHdlJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IEtleSwgb25seSAiZXMiIGlzIG1hdGNoZWQKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oImRpc3BsYXkgbmFtZXM6ICIgKyBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoImVzIiksICJlcyIpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpc3QgdGhlIGRpc3BsYXkgbmFtZXMgaW4gcmV2ZXJzZSBvcmRlcgorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiZGlzcGxheSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyOiAiICsKKyAgICAgICAgICAgICAgICAgIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUuVVMsIG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1TdHJpbmcuQ0FTRV9JTlNFTlNJVElWRV9PUkRFUi5jb21wYXJlKChTdHJpbmcpbGhzLCAoU3RyaW5nKXJocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9KSk7CisgICAgICAgIH0KKworICAgIC8vIGdldCBhbGwgdGhlIGRpc3BsYXkgbmFtZXMgb2YgdGhlc2UgcmVzb3VyY2VzCisgICAgLy8gdGhpcyBzaG91bGQgYmUgZmFzdCBzaW5jZSB0aGUgZGlzcGxheSBuYW1lcyB3ZXJlIGNhY2hlZC4KKyAgICB7CisgICAgICAgICAgICBsb2dsbigic2VydmljZSBkaXNwbGF5IG5hbWVzIGZvciBkZV9ERSIpOworICAgICAgICBNYXAgbmFtZXMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoImRlX0RFIikpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICBidWYuYXBwZW5kKCJcbiAgICIgKyBuYW1lICsgIiAtLT4gIiArIGlkKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCJcbn0iKTsKKyAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5IGNhbGlmYWN0b3J5ID0gbmV3IENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkoKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoY2FsaWZhY3RvcnkpOworICAgIC8vIGdldCBhbGwgdGhlIGRpc3BsYXkgbmFtZXMgb2YgdGhlc2UgcmVzb3VyY2VzCisgICAgeworICAgICAgICAgICAgbG9nbG4oImNhbGlmb3JuaW8gbGFuZ3VhZ2UgZmFjdG9yeSIpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICAgICAgU3RyaW5nW10gaWROYW1lcyA9IHsKKyAgICAgICAgICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5LmNhbGlmb3JuaW8sCisgICAgICAgIENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkudmFsbGV5LAorICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5LnN1cmZlciwKKyAgICAgICAgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeS5nZWVrCisgICAgICAgICAgICB9OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZE5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkTmFtZSA9IGlkTmFtZXNbaV07CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4gIC0tLSAiICsgaWROYW1lICsgIiAtLS0iKTsKKyAgICAgICAgICAgICAgICBNYXAgbmFtZXMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoaWROYW1lKSk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgICAiICsgbmFtZSArICIgLS0+ICIgKyBpZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIlxufSIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy8gdGVzdCBub3RpZmljYXRpb24KKyAgICAvLyBzaW1wbGUgcmVnaXN0cmF0aW9uCisgICAgeworICAgICAgICAgICAgbG9nbG4oInNpbXBsZSByZWdpc3RyYXRpb24gbm90aWZpY2F0aW9uIik7CisgICAgICAgIElDVUxvY2FsZVNlcnZpY2UgbHMgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworICAgICAgICBTZXJ2aWNlTGlzdGVuZXIgbDEgPSBuZXcgU2VydmljZUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbjsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2UgcykgeworICAgICAgICAgICAgbG9nbG4oImxpc3RlbmVyIDEgcmVwb3J0ICIgKyBuKysgKyAiIHNlcnZpY2UgY2hhbmdlZDogIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisgICAgICAgIFNlcnZpY2VMaXN0ZW5lciBsMiA9IG5ldyBTZXJ2aWNlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwcml2YXRlIGludCBuOworICAgICAgICAgICAgcHVibGljIHZvaWQgc2VydmljZUNoYW5nZWQoSUNVU2VydmljZSBzKSB7CisgICAgICAgICAgICBsb2dsbigibGlzdGVuZXIgMiByZXBvcnQgIiArIG4rKyArICIgc2VydmljZSBjaGFuZ2VkOiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwyKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGZvby4uLiAiKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkZvbyIsICJlbl9GT08iKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhci4uLiAiKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkJhciIsICJlbl9CQVIiKTsKKyAgICAgICAgbG9nbG4oImdldHRpbmcgZm9vLi4uIik7CisgICAgICAgIGxvZ2xuKChTdHJpbmcpbHMuZ2V0KCJlbl9GT08iKSk7CisgICAgICAgIGxvZ2xuKCJyZW1vdmluZyBsaXN0ZW5lciAyLi4uIik7CisgICAgICAgIGxzLnJlbW92ZUxpc3RlbmVyKGwyKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhei4uLiIpOworICAgICAgICBscy5yZWdpc3Rlck9iamVjdCgiQmF6IiwgImVuX0JBWiIpOworICAgICAgICBsb2dsbigicmVtb3ZpbmcgbGlzdGVuZXIgMSIpOworICAgICAgICBscy5yZW1vdmVMaXN0ZW5lcihsMSk7CisgICAgICAgIGxvZ2xuKCJyZWdpc3RlcmluZyBidXJwLi4uIik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCdXJwIiwgImVuX0JVUlAiKTsKKworICAgICAgICAvLyBzaG91bGQgb25seSBnZXQgb25lIG5vdGlmaWNhdGlvbiBldmVuIGlmIHJlZ2lzdGVyIG11bHRpcGxlIHRpbWVzCisgICAgICAgIGxvZ2xuKCIuLi4gdHJ5aW5nIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiIpOworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwxKTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDEpOworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJGb28iLCAiZW5fRk9PIik7CisgICAgICAgIGxvZ2xuKCIuLi4gcmVnaXN0ZXJlZCBmb28iKTsKKworICAgICAgICAvLyBzaW5jZSBpbiBhIHNlcGFyYXRlIHRocmVhZCwgd2UgY2FuIGNhbGxiYWNrIGFuZCBub3QgZGVhZGxvY2sKKyAgICAgICAgU2VydmljZUxpc3RlbmVyIGwzID0gbmV3IFNlcnZpY2VMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG47CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBzZXJ2aWNlQ2hhbmdlZChJQ1VTZXJ2aWNlIHMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaXN0ZW5lciAzIHJlcG9ydCAiICsgbisrICsgIiBzZXJ2aWNlIGNoYW5nZWQuLi4iKTsKKyAgICAgICAgICAgIGlmIChzLmdldCgiZW5fQk9JTksiKSA9PSBudWxsKSB7IC8vIGRvbid0IHJlY3Vyc2Ugb24gb3Vyc2VsdmVzISEhCisgICAgICAgICAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJvaW5rLi4uIik7CisgICAgICAgICAgICAgICAgcy5yZWdpc3Rlck9iamVjdCgiYm9pbmsiLCAiZW5fQk9JTksiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDMpOworICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgYm9vLi4uIik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCb28iLCAiZW5fQk9PIik7CisgICAgICAgIGxvZ2xuKCIuLi5kb25lIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdExvY2FsZUtleUZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICBwcm90ZWN0ZWQgZmluYWwgU2V0IGlkczsKKyAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGZhY3RvcnlJRDsKKworICAgIHB1YmxpYyBUZXN0TG9jYWxlS2V5RmFjdG9yeShTdHJpbmdbXSBpZHMsIFN0cmluZyBmYWN0b3J5SUQpIHsKKyAgICAgICAgICAgIHN1cGVyKFZJU0lCTEUsIGZhY3RvcnlJRCk7CisKKyAgICAgICAgdGhpcy5pZHMgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQobmV3IEhhc2hTZXQoQXJyYXlzLmFzTGlzdChpZHMpKSk7CisgICAgICAgICAgICB0aGlzLmZhY3RvcnlJRCA9IGZhY3RvcnlJRCArICI6ICI7CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWN0b3J5SUQgKyBsb2MudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBpZHM7CisgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICAvLyBEaXNhbGxvdyBoaWRpbmcgZm9yIG5vdyBzaW5jZSBpdCBjYXVzZXMgZ25hcmx5IHByb2JsZW1zLCBsaWtlCisgICAgICAvLyBob3cgZG8geW91IGxvY2FsaXplIHRoZSBoaWRkZW4gKGJ1dCBzdGlsbCBleHBvcnRlZCkgbmFtZXMuCisKKyAgICAgIHN0YXRpYyBjbGFzcyBUZXN0SGlkaW5nRmFjdG9yeSBpbXBsZW1lbnRzIElDVVNlcnZpY2UuRmFjdG9yeSB7CisgICAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nW10gaWRzOworICAgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBmYWN0b3J5SUQ7CisKKyAgICAgIHB1YmxpYyBUZXN0SGlkaW5nRmFjdG9yeShTdHJpbmdbXSBpZHMpIHsKKyAgICAgIHRoaXMoaWRzLCAiSGlkaW5nIik7CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBUZXN0SGlkaW5nRmFjdG9yeShTdHJpbmdbXSBpZHMsIFN0cmluZyBmYWN0b3J5SUQpIHsKKyAgICAgIHRoaXMuaWRzID0gKFN0cmluZ1tdKWlkcy5jbG9uZSgpOworCisgICAgICBpZiAoZmFjdG9yeUlEID09IG51bGwgfHwgZmFjdG9yeUlELmxlbmd0aCgpID09IDApIHsKKyAgICAgIHRoaXMuZmFjdG9yeUlEID0gIiI7CisgICAgICB9IGVsc2UgeworICAgICAgdGhpcy5mYWN0b3J5SUQgPSBmYWN0b3J5SUQgKyAiOiAiOworICAgICAgfQorICAgICAgfQorCisgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CisgICAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoaWRzW2ldLCBrZXkuY3VycmVudElEKCkpKSB7CisgICAgICByZXR1cm4gZmFjdG9yeUlEICsga2V5LmNhbm9uaWNhbElEKCk7CisgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gbnVsbDsKKyAgICAgIH0KKworICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgU3RyaW5nIGlkID0gaWRzW2ldOworICAgICAgSXRlcmF0b3IgaXRlciA9IHJlc3VsdC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoaWQsIChTdHJpbmcpaXRlci5uZXh0KCkpKSB7CisgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgfQorICAgICAgfQorICAgICAgcmVzdWx0LnB1dChpZCwgdGhpcyk7CisgICAgICB9CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgcmV0dXJuIGZhY3RvcnlJRCArIG5ldyBVTG9jYWxlKGlkKS5nZXREaXNwbGF5TmFtZShsb2NhbGUpOworICAgICAgfQorICAgICAgfQorICAgICovCisKKyAgICBzdGF0aWMgY2xhc3MgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2FsaWZvcm5pbyA9ICJlbl9VU19DQSI7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsbGV5ID0gY2FsaWZvcm5pbyArICJfVkFMTEVZIjsKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzdXJmZXIgPSBjYWxpZm9ybmlvICsgIl9TVVJGRVIiOworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdlZWsgPSBjYWxpZm9ybmlvICsgIl9HRUVLIjsKKyAgICAgICAgcHVibGljIHN0YXRpYyBTZXQgc3VwcG9ydGVkSURzOworICAgICAgICBzdGF0aWMgeworICAgICAgICAgICAgSGFzaFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgcmVzdWx0LmFkZEFsbChJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KCkpOworICAgICAgICByZXN1bHQuYWRkKGNhbGlmb3JuaW8pOworICAgICAgICByZXN1bHQuYWRkKHZhbGxleSk7CisgICAgICAgIHJlc3VsdC5hZGQoc3VyZmVyKTsKKyAgICAgICAgcmVzdWx0LmFkZChnZWVrKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZElEcyA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChyZXN1bHQpOworICAgICAgICB9CisKKyAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRJRHM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyBwcmVmaXggPSAiIjsKKyAgICAgICAgU3RyaW5nIHN1ZmZpeCA9ICIiOworICAgICAgICBTdHJpbmcgbHMgPSBsb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKGNhbGlmb3JuaW8sIGxzKSkgeworICAgICAgICBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZSh2YWxsZXkpKSB7CisgICAgICAgICAgICBwcmVmaXggPSAiTGlrZSwgeW91IGtub3csIGl0J3Mgc28gdG90YWxseSAiOworICAgICAgICB9IGVsc2UgaWYgKGxzLmVxdWFsc0lnbm9yZUNhc2Uoc3VyZmVyKSkgeworICAgICAgICAgICAgcHJlZml4ID0gIkR1ZGUsIGl0cyAiOworICAgICAgICB9IGVsc2UgaWYgKGxzLmVxdWFsc0lnbm9yZUNhc2UoZ2VlaykpIHsKKyAgICAgICAgICAgIHByZWZpeCA9ICJJJ2QgZXN0aW1hdGUgaXQncyBhcHByb3hpbWF0ZWx5ICI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmVmaXggPSAiSHVoPyAgTWF5YmUgIjsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihjYWxpZm9ybmlvLCBpZCkpIHsKKyAgICAgICAgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UodmFsbGV5KSkgeworICAgICAgICAgICAgc3VmZml4ID0gImxpa2UgdGhlIFZhbGxleSwgeW91IGtub3c/ICBMZXQncyBnbyB0byB0aGUgbWFsbCEiOworICAgICAgICB9IGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2Uoc3VyZmVyKSkgeworICAgICAgICAgICAgc3VmZml4ID0gInRpbWUgdG8gaGl0IHRob3NlIGduYXJseSB3YXZlcywgRHVkZSEhISI7CisgICAgICAgIH0gZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZShnZWVrKSkgeworICAgICAgICAgICAgc3VmZml4ID0gImFsbCBzeXN0ZW1zIGdvLiAgVC1NaW51cyA5LCA4LCA3Li4uIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN1ZmZpeCA9ICJObyBIYWJsYSBFbmdsYWlzIjsKKyAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICBzdWZmaXggPSBzdXBlci5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwcmVmaXggKyBzdWZmaXg7CisgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGUoKSB7CisgICAgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoInRlc3QgbG9jYWxlIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgicm9vdCIsIFVMb2NhbGUuUk9PVCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiZ2VybWFuIiwgImRlIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiZ2VybWFuX0dlcm1hbnkiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoImphcGFuZXNlIiwgImphIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiamFwYW5lc2VfSmFwYW4iLCBVTG9jYWxlLkpBUEFOKTsKKworICAgIE9iamVjdCB0YXJnZXQgPSBzZXJ2aWNlLmdldCgiZGVfVVMiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKworICAgICAgICBVTG9jYWxlIGRlID0gbmV3IFVMb2NhbGUoImRlIik7CisgICAgICAgIFVMb2NhbGUgZGVfVVMgPSBuZXcgVUxvY2FsZSgiZGVfVVMiKTsKKworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUyk7CisgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDIiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgTG9jYWxlS2V5LktJTkRfQU5ZKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgMyIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAxMjM0KTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgNCIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxSZXR1cm4gPSBuZXcgVUxvY2FsZVsxXTsKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIGFjdHVhbFJldHVybik7CisgICAgICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA1IiwgImdlcm1hbiIsIHRhcmdldCk7CisgICAgICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA2IiwgYWN0dWFsUmV0dXJuWzBdLCBkZSk7CisKKyAgICAgICAgYWN0dWFsUmV0dXJuWzBdID0gbnVsbDsKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIExvY2FsZUtleS5LSU5EX0FOWSwgYWN0dWFsUmV0dXJuKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDciLCBhY3R1YWxSZXR1cm5bMF0sIGRlKTsKKworICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSBudWxsOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgMTIzNCwgYWN0dWFsUmV0dXJuKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgOCIsICJnZXJtYW4iLCB0YXJnZXQpOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgOSIsIGFjdHVhbFJldHVyblswXSwgZGUpOworCisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoIm9uZS9kZV9VUyIsIGRlX1VTLCAxKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgidHdvL2RlX1VTIiwgZGVfVVMsIDIpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAxKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMSIsICJvbmUvZGVfVVMiLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAyKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMiIsICJ0d28vZGVfVVMiLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMyIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIExvY2FsZUtleSBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjaygiZW4iLCBudWxsLCAxMjM0KTsKKyAgICAgICAgbG9nbG4oImxrZXkgcHJlZml4OiAiICsgbGtleS5wcmVmaXgoKSk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGRlc2NyaXB0b3I6ICIgKyBsa2V5LmN1cnJlbnREZXNjcmlwdG9yKCkpOworICAgICAgICBsb2dsbigibGtleSBjdXJyZW50IGxvY2FsZTogIiArIGxrZXkuY3VycmVudExvY2FsZSgpKTsKKworICAgICAgICBsa2V5LmZhbGxiYWNrKCk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGRlc2NyaXB0b3IgMjogIiArIGxrZXkuY3VycmVudERlc2NyaXB0b3IoKSk7CisKKyAgICAgICAgbGtleS5mYWxsYmFjaygpOworICAgICAgICBsb2dsbigibGtleSBkZXNjcmlwdG9yIDM6ICIgKyBsa2V5LmN1cnJlbnREZXNjcmlwdG9yKCkpOworCisgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoInphX1BQUCIpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCB6YXBwcCIsICJyb290IiwgdGFyZ2V0KTsKKworICAgIFVMb2NhbGUgbG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuSkFQQU5FU0UpOworICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3Qgd2l0aCBqYSBsb2NhbGUiLCAiamFwYW5lc2UiLCB0YXJnZXQpOworCisgICAgU2V0IGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgbG9nbG4oImlkOiAiICsgaXRlci5uZXh0KCkpOworICAgIH0KKworICAgIFVMb2NhbGUuc2V0RGVmYXVsdChsb2MpOworICAgIGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgbG9nbG4oImlkOiAiICsgaXRlci5uZXh0KCkpOworICAgIH0KKworICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3Qgd2l0aCBlbiBsb2NhbGUiLCAicm9vdCIsIHRhcmdldCk7CisKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoInRlc3QgYXZhaWxhYmxlIGxvY2FsZXMiLCBsb2NhbGVzLmxlbmd0aCwgNik7CisgICAgICAgIGxvZ2xuKCJsb2NhbGVzOiAiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsb2coIlxuICBbIiArIGkgKyAiXSAiICsgbG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIiAiKTsKKworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KCkpOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChVTG9jYWxlLkpBUEFOKTsKKworICAgICAgICB7CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICBMaXN0IGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gZmFjdG9yaWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBuKysgKyAiXSAiICsgaXRlci5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbGlzdCBvbmx5IHRoZSBlbmdsaXNoIGRpc3BsYXkgbmFtZXMgZm9yIGVzLCBpbiByZXZlcnNlIG9yZGVyCisgICAgICAgIC8vIHNpbmNlIHdlJ3JlIHVzaW5nIGxvY2FsZSBrZXlzLCB3ZSBzaG91bGQgZ2V0IGFsbCBhbmQgb25seSB0aGUgZXMgbG9jYWxlcworICAgICAgICAvLyBobW1tLCB0aGUgZGVmYXVsdCB0b1N0cmluZyBmdW5jdGlvbiBkb2Vzbid0IHByaW50IGluIHNvcnRlZCBvcmRlciBmb3IgVHJlZU1hcAorICAgICAgICB7CisgICAgICAgICAgICBTb3J0ZWRNYXAgbWFwID0gc2VydmljZS5nZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1TdHJpbmcuQ0FTRV9JTlNFTlNJVElWRV9PUkRFUi5jb21wYXJlKChTdHJpbmcpbGhzLCAoU3RyaW5nKXJocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcyIpOworCisgICAgICAgICAgICBsb2dsbigiZXMgZGlzcGxheSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyICIgKyBtYXApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFdyYXBGYWN0b3J5KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgZ3JlZXRpbmcgPSAiSGVsbG8gVGhlcmUiOworICAgICAgICBmaW5hbCBTdHJpbmcgZ3JlZXRpbmdJRCA9ICJncmVldGluZyI7CisKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVVNlcnZpY2UoIndyYXAiKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChncmVldGluZywgZ3JlZXRpbmdJRCk7CisKKyAgICAgICAgbG9nbG4oInRlc3Qgb25lOiAiICsgc2VydmljZS5nZXQoZ3JlZXRpbmdJRCkpOworCisgICAgICAgIGNsYXNzIFdyYXBGYWN0b3J5IGltcGxlbWVudHMgRmFjdG9yeSB7CisgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5LmN1cnJlbnRJRCgpLmVxdWFscyhncmVldGluZ0lEKSkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3QgcHJldmlvdXMgPSBzZXJ2aWNlLmdldEtleShrZXksIG51bGwsIHRoaXMpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkEgZGlmZmVyZW50IGdyZWV0aW5nOiBcIiIgKyBwcmV2aW91cyArICJcIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KCJncmVldGluZyIsIHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIndyYXAgJyIgKyBpZCArICInIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgV3JhcEZhY3RvcnkoKSk7CisKKyAgICAgICAgY29uZmlybUVxdWFsKCJ3cmFwIHRlc3Q6ICIsIHNlcnZpY2UuZ2V0KGdyZWV0aW5nSUQpLCAiQSBkaWZmZXJlbnQgZ3JlZXRpbmc6IFwiIiArIGdyZWV0aW5nICsgIlwiIik7CisgICAgfQorCisgICAgLy8gbWlzYyBjb3ZlcmFnZSB0ZXN0cworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAvLyBLZXkKKyAgICBLZXkga2V5ID0gbmV3IEtleSgiZm9vYmFyIik7CisgICAgbG9nbG4oIklEOiAiICsga2V5LmlkKCkpOworICAgIGxvZ2xuKCJjYW5vbmljYWxJRDogIiArIGtleS5jYW5vbmljYWxJRCgpKTsKKyAgICBsb2dsbigiY3VycmVudElEOiAiICsga2V5LmN1cnJlbnRJRCgpKTsKKyAgICBsb2dsbigiaGFzIGZhbGxiYWNrOiAiICsga2V5LmZhbGxiYWNrKCkpOworCisgICAgLy8gU2ltcGxlRmFjdG9yeQorICAgIE9iamVjdCBvYmogPSBuZXcgT2JqZWN0KCk7CisgICAgU2ltcGxlRmFjdG9yeSBzZiA9IG5ldyBTaW1wbGVGYWN0b3J5KG9iaiwgIm9iamVjdCIpOworICAgIHRyeSB7CisgICAgICAgIHNmID0gbmV3IFNpbXBsZUZhY3RvcnkobnVsbCwgbnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigidGhyZXcgd3JvbmcgZXhjZXB0aW9uIiArIGUpOworICAgIH0KKyAgICBsb2dsbihzZi5nZXREaXNwbGF5TmFtZSgib2JqZWN0IiwgbnVsbCkpOworCisgICAgLy8gSUNVU2VydmljZQorICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VTZXJ2aWNlKCk7CisgICAgc2VydmljZS5yZWdpc3RlckZhY3Rvcnkoc2YpOworCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS5nZXQobnVsbCwgbnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgICAgIC8qCisgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iICsgZSk7CisgICAgICB9CisgICAgICAgICovCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iICsgZSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeShudWxsKTsKKyAgICAgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oIk9LOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oInRocmV3IHdyb25nIGV4Y2VwdGlvbiIgKyBlKTsKKyAgICB9CisKKyAgICBsb2dsbigib2JqZWN0IGlzOiAiICsgc2VydmljZS5nZXQoIm9iamVjdCIpKTsKKworICAgIGxvZ2xuKCJzdGF0czogIiArIHNlcnZpY2Uuc3RhdHMoKSk7CisKKyAgICAvLyBJQ1VSV0xvY2sKKworICAgIElDVVJXTG9jayByd2xvY2sgPSBuZXcgSUNVUldMb2NrKCk7CisgICAgcndsb2NrLmFjcXVpcmVSZWFkKCk7CisgICAgcndsb2NrLnJlbGVhc2VSZWFkKCk7CisKKyAgICByd2xvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgIGxvZ2xuKCJzdGF0czogIiArIHJ3bG9jay5nZXRTdGF0cygpKTsKKyAgICBsb2dsbigic3RhdHM6ICIgKyByd2xvY2suY2xlYXJTdGF0cygpKTsKKyAgICByd2xvY2suYWNxdWlyZVJlYWQoKTsKKyAgICByd2xvY2sucmVsZWFzZVJlYWQoKTsKKyAgICByd2xvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgIGxvZ2xuKCJzdGF0czogIiArIHJ3bG9jay5nZXRTdGF0cygpKTsKKworICAgIHRyeSB7CisgICAgICAgIHJ3bG9jay5yZWxlYXNlUmVhZCgpOworICAgICAgICBlcnJsbigibm8gZXJyb3IgdGhyb3duIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICBlcnJsbigibm8gZXJyb3IgdGhyb3duIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisgICAgICAgIC8vIElDVUxvY2FsZVNlcnZpY2UKKworICAgIC8vIExvY2FsZUtleQorCisgICAgLy8gTG9jYWxlS2V5IGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKCJlbl9VUyIsICJqYV9KUCIpOworICAgIC8vIGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKG51bGwsIG51bGwpOworICAgIExvY2FsZUtleSBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjaygiZW5fVVMiLCAiamFfSlAiKTsKKyAgICAgICAgbG9nbG4oImxrZXk6ICIgKyBsa2V5KTsKKworICAgICAgICBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhudWxsLCBudWxsKTsKKyAgICAgICAgbG9nbG4oImxrZXkgZnJvbSBudWxsLG51bGw6ICIgKyBsa2V5KTsKKworICAgIC8vIExvY2FsZUtleUZhY3RvcnkKKyAgICBMb2NhbGVLZXlGYWN0b3J5IGxrZiA9IG5ldyBMS0ZTdWJjbGFzcyhmYWxzZSk7CisgICAgICAgIGxvZ2xuKCJsa2Y6ICIgKyBsa2YpOworICAgIGxvZ2xuKCJvYmo6ICIgKyBsa2YuY3JlYXRlKGxrZXksIG51bGwpKTsKKyAgICBsb2dsbihsa2YuZ2V0RGlzcGxheU5hbWUoImZvbyIsIG51bGwpKTsKKyAgICBsb2dsbihsa2YuZ2V0RGlzcGxheU5hbWUoImJhciIsIG51bGwpKTsKKyAgICBsa2YudXBkYXRlVmlzaWJsZUlEcyhuZXcgSGFzaE1hcCgpKTsKKworICAgIExvY2FsZUtleUZhY3RvcnkgaW52aXNpYmxlTEtGID0gbmV3IExLRlN1YmNsYXNzKGZhbHNlKTsKKyAgICBsb2dsbigib2JqOiAiICsgaW52aXNpYmxlTEtGLmNyZWF0ZShsa2V5LCBudWxsKSk7CisgICAgbG9nbG4oaW52aXNpYmxlTEtGLmdldERpc3BsYXlOYW1lKCJmb28iLCBudWxsKSk7CisgICAgbG9nbG4oaW52aXNpYmxlTEtGLmdldERpc3BsYXlOYW1lKCJiYXIiLCBudWxsKSk7CisgICAgaW52aXNpYmxlTEtGLnVwZGF0ZVZpc2libGVJRHMobmV3IEhhc2hNYXAoKSk7CisKKyAgICAvLyBSZXNvdXJjZUJ1bmRsZUZhY3RvcnkKKyAgICBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgcmJmID0gbmV3IElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSgpOworICAgIGxvZ2xuKCJSQjogIiArIHJiZi5jcmVhdGUobGtleSwgbnVsbCkpOworCisgICAgLy8gSUNVTm90aWZpZXIKKyAgICBJQ1VOb3RpZmllciBuZiA9IG5ldyBJQ1VOU3ViY2xhc3MoKTsKKyAgICB0cnkgeworICAgICAgICBuZi5hZGRMaXN0ZW5lcihudWxsKTsKKyAgICAgICAgZXJybG4oImFkZGVkIG51bGwgbGlzdGVuZXIiKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oImdvdCB3cm9uZyBleGNlcHRpb24iKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBuZi5hZGRMaXN0ZW5lcihuZXcgV3JvbmdMaXN0ZW5lcigpKTsKKyAgICAgICAgZXJybG4oImFkZGVkIHdyb25nIGxpc3RlbmVyIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigiZ290IHdyb25nIGV4Y2VwdGlvbiIpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIG5mLnJlbW92ZUxpc3RlbmVyKG51bGwpOworICAgICAgICBlcnJsbigicmVtb3ZlZCBudWxsIGxpc3RlbmVyIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJnb3Qgd3JvbmcgZXhjZXB0aW9uIik7CisgICAgfQorCisgICAgbmYucmVtb3ZlTGlzdGVuZXIobmV3IE15TGlzdGVuZXIoKSk7CisgICAgbmYubm90aWZ5Q2hhbmdlZCgpOworICAgIG5mLmFkZExpc3RlbmVyKG5ldyBNeUxpc3RlbmVyKCkpOworICAgIG5mLnJlbW92ZUxpc3RlbmVyKG5ldyBNeUxpc3RlbmVyKCkpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBNeUxpc3RlbmVyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lciB7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFdyb25nTGlzdGVuZXIgaW1wbGVtZW50cyBFdmVudExpc3RlbmVyIHsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSUNVTlN1YmNsYXNzIGV4dGVuZHMgSUNVTm90aWZpZXIgeworICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgcmV0dXJuIGwgaW5zdGFuY2VvZiBNeUxpc3RlbmVyOworICAgIH0KKworICAgICAgICAvLyBub3QgdXNlZCwganVzdCBuZWVkZWQgdG8gaW1wbGVtZW50IGFic3RyYWN0IGJhc2UKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIExLRlN1YmNsYXNzIGV4dGVuZHMgTG9jYWxlS2V5RmFjdG9yeSB7CisgICAgTEtGU3ViY2xhc3MoYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHN1cGVyKHZpc2libGUgPyBWSVNJQkxFIDogSU5WSVNJQkxFKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5FTVBUWV9TRVQ7CisgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0U2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhYWFiN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjE4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUZXN0U2FtcGxlIHsKKyAgICBzdGF0aWMgcHVibGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIEhlbGxvU2VydmljZUNsaWVudCBjbGllbnQgPSBuZXcgSGVsbG9TZXJ2aWNlQ2xpZW50KCk7CisKKyAgICAgICAgVGhyZWFkIHQgPSBuZXcgSGVsbG9VcGRhdGVUaHJlYWQoKTsKKyAgICAgICAgdC5zdGFydCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC5qb2luKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRvbmUiKTsKKyAgICAgICAgaWYoY2xpZW50PT1udWxsKXsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgY3VycmVudCBuYW1lcyBpbiB0aGUgSGVsbG8gc2VydmljZS4KKyAgICAgKiBFYWNoIHRpbWUgdGhlIHNlcnZpY2UgY2hhbmdlcywgaXQgcmVkaXNwbGF5cyB0aGUgbmFtZXMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEhlbGxvU2VydmljZUNsaWVudCBpbXBsZW1lbnRzIEhlbGxvU2VydmljZS5IZWxsb1NlcnZpY2VMaXN0ZW5lciB7CisKKyAgICAgICAgSGVsbG9TZXJ2aWNlQ2xpZW50KCkgeworICAgICAgICAgICAgSGVsbG9TZXJ2aWNlLmFkZExpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgZGlzcGxheSgpOworICAgICAgICB9CisKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyB3aWxsIGJlIGNhbGxlZCBpbiB0aGUgbm90aWZpY2F0aW9uIHRocmVhZCBvZgorICAgICAgICAgKiBJQ1VOb3RpZmllci4gIElDVU5vdGlmaWVyIGNvdWxkIHNwYXduIGEgKG5vbi1kYWVtb24pIHRocmVhZAorICAgICAgICAgKiBmb3IgZWFjaCBsaXN0ZW5lciwgc28gdGhhdCBpbXBvbGl0ZSBsaXN0ZW5lcnMgd291bGRuJ3QgaG9sZAorICAgICAgICAgKiB1cCBub3RpZmljYXRpb24sIGJ1dCByaWdodCBub3cgaXQgZG9lc24ndC4gIEluc3RlYWQsIGFsbAorICAgICAgICAgKiBub3RpZmljYXRpb25zIGFyZSBkZWxpdmVyZWQgb24gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQuCisgICAgICAgICAqIFNpbmNlIHRoYXQncyBhIGRhZW1vbiB0aHJlYWQsIGEgbm90aWZpY2F0aW9uIG1pZ2h0IG5vdAorICAgICAgICAgKiBjb21wbGV0ZSBiZWZvcmUgbWFpbiB0ZXJtaW5hdGVzLiAgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBoZWxsb1NlcnZpY2VDaGFuZ2VkKCkgeworICAgICAgICAgICAgZGlzcGxheSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRpc3BsYXkoKSB7CisgICAgICAgICAgICBNYXAgbmFtZXMgPSBIZWxsb1NlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaXNwbGF5aW5nICIgKyBuYW1lcy5zaXplKCkgKyAiIG5hbWVzLiIpOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIEVudHJ5IGVudHJ5ID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IChTdHJpbmcpZW50cnkuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgSGVsbG9TZXJ2aWNlIHNlcnZpY2UgPSBIZWxsb1NlcnZpY2UuZ2V0KChTdHJpbmcpZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRpc3BsYXlOYW1lICsgIiBzYXlzICIgKyBzZXJ2aWNlLmhlbGxvKCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHRocmVhZCB0byB1cGRhdGUgdGhlIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEhlbGxvVXBkYXRlVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgU3RyaW5nW11bXSB1cGRhdGVzID0geworICAgICAgICAgICAgeyAiSGV5IiwgImVuX1VTX0lORk9STUFMIiB9LAorICAgICAgICAgICAgeyAiSGFsbG8iLCAiZGVfREVfSU5GT1JNQUwiIH0sCisgICAgICAgICAgICB7ICJZbyEiLCAiZW5fVVNfQ0FMSUZPUk5JQV9JTkZPUk1BTCIgfSwKKyAgICAgICAgICAgIHsgIkNoaSBGYW5sZSBNYT8iLCAiemhfX0lORk9STUFMIiB9LAorICAgICAgICAgICAgeyAiTXVuY2ggbXVuY2guLi4gQnVyZ2VyPyIsICJlbiIgfSwKKyAgICAgICAgICAgIHsgIlNuaWZmIiwgImZyIiB9LAorICAgICAgICAgICAgeyAiVG9uZ1poaSEgTWFvWmVEb25nIFNpWGlhbmcgV2FuIFN1aSEiLCAiemhfQ04iIH0sCisgICAgICAgICAgICB7ICJCaWVyPyBKYSEiLCAiZGUiIH0sCisgICAgICAgIH07CisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdXBkYXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBIZWxsb1NlcnZpY2UucmVnaXN0ZXIodXBkYXRlc1tpXVswXSwgbmV3IFVMb2NhbGUodXBkYXRlc1tpXVsxXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBzZXJ2aWNlIHRoYXQgd3JhcHMgYW4gSUNVIHNlcnZpY2UgaW4gb3JkZXIgdG8gZXhwb3J0IGN1c3RvbSBBUEkgYW5kCisgICAgICogbm90aWZpY2F0aW9uLiBUaGUgc2VydmljZSBqdXN0IGltcGxlbWVudHMgJ2hlbGxvJy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgSGVsbG9TZXJ2aWNlIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBIZWxsb1NlcnZpY2UoU3RyaW5nIG5hbWUpIHsgCisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOyAKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGhlbGxvIHNlcnZpY2UuLi4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGVsbG8oKSB7IAorICAgICAgICAgICAgcmV0dXJuIG5hbWU7IAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeyAKKyAgICAgICAgICAgIHJldHVybiBzdXBlci50b1N0cmluZygpICsgIjogIiArIG5hbWU7IAorICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZlcnJlZCBpbml0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeSgpIHsKKyAgICAgICAgICAgIGlmIChyZWdpc3RyeSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW5pdFJlZ2lzdHJ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cnk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0UmVnaXN0cnkoKSB7CisgICAgICAgICAgICByZWdpc3RyeSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCkgeworICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhY2NlcHRzTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gd2UgYWxyZWFkeSB2ZXJpZnkgaW4gb3VyIHdyYXBwZXIgQVBJcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKChIZWxsb1NlcnZpY2VMaXN0ZW5lcilsKS5oZWxsb1NlcnZpY2VDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAgICAgICAgICAgZG9SZWdpc3RlcigiSGVsbG8iLCAiZW4iKTsKKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoIkJvbmpvdXIiLCAiZnIiKTsKKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoIk5pIEhhbyIsICJ6aF9DTiIpOworICAgICAgICAgICAgZG9SZWdpc3RlcigiR3V0ZW4gVGFnIiwgImRlIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgY3VzdG9tIGxpc3RlbmVyIGZvciBjaGFuZ2VzIHRvIHRoaXMgc2VydmljZS4gIFdlIGRvbid0IG5lZWQgdG8KKyAgICAgICAgICogcG9pbnQgdG8gdGhlIHNlcnZpY2Ugc2luY2UgaXQgaXMgZGVmaW5lZCBieSB0aGlzIGNsYXNzIGFuZCBub3QKKyAgICAgICAgICogYW4gb2JqZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSGVsbG9TZXJ2aWNlTGlzdGVuZXIgZXh0ZW5kcyBFdmVudExpc3RlbmVyIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGhlbGxvU2VydmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVHlwZS1zYWZlIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZExpc3RlbmVyKEhlbGxvU2VydmljZUxpc3RlbmVyIGwpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5KCkuYWRkTGlzdGVuZXIobCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFR5cGUtc2FmZSBub3RpZmljYXRpb24gZm9yIHRoaXMgc2VydmljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVMaXN0ZW5lcihIZWxsb1NlcnZpY2VMaXN0ZW5lciBsKSB7CisgICAgICAgICAgICByZWdpc3RyeSgpLnJlbW92ZUxpc3RlbmVyKGwpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUeXBlLXNhZmUgYWNjZXNzIHRvIHRoZSBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBIZWxsb1NlcnZpY2UgZ2V0KFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIChIZWxsb1NlcnZpY2UpcmVnaXN0cnkoKS5nZXQoaWQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldFZpc2libGVJRHMoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkoKS5nZXRWaXNpYmxlSURzKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVzKHJlZ2lzdHJ5KCksIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlZ2lzdGVyIGEgbmV3IGhlbGxvIHN0cmluZyBmb3IgdGhpcyBsb2NhbGUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoU3RyaW5nIGhlbGxvU3RyaW5nLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgaWYgKGhlbGxvU3RyaW5nID09IG51bGwgfHwgbG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoaGVsbG9TdHJpbmcsIGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRvUmVnaXN0ZXIoU3RyaW5nIGhlbGxvLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5KCkucmVnaXN0ZXJPYmplY3QobmV3IEhlbGxvU2VydmljZShoZWxsbyksIGlkKTsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAgICAgKiB1c2VzIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvciB0aGUgbG9jYWxlIGFzIHRoZSBjb21wYXJhdG9yIHRvCisgICAgICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMsIGFuZCBudWxsIGZvciB0aGUgbWF0Y2hJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhJQ1VTZXJ2aWNlIHNlcnZpY2UsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBudWxsKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUaHJlYWRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2MTYzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDgyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RMb2c7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5TaW1wbGVGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUaHJlYWRUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBQUklOVFNUQVRTID0gZmFsc2U7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVU2VydmljZVRocmVhZFRlc3QgdGVzdCA9IG5ldyBJQ1VTZXJ2aWNlVGhyZWFkVGVzdCgpOworICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKworICAgICAgICAvLyBnZXQKKyAgICAgICAgLy8gZ2V0dmlzaWJsZWlkcworICAgICAgICAvLyBnZXRkaXNwbGF5bmFtZShsb2NhbGUpCisgICAgICAgIC8vIGZhY3RvcmllcworICAgIAorICAgICAgICAvLyByZWdpc3RlckZhY3RvcnkKKyAgICAgICAgLy8gdW5yZWdpc3RlckZhY3RvcnkKKworICAgICAgICAvLyAxKSBjb25jdXJyZW50IGFjY2VzcworICAgICAgICAvLyAyKSBhY2Nlc3Mgd2hpbGUgZmFjdG9yaWVzIGNoYW5nZQorICAgICAgICAvLyAzKSBpdGVyYXRpb24gd2hpbGUgZmFjdG9yaWVzIGNoYW5nZQorICAgICAgICAvLyA0KSBjb25jdXJyZW50IGNvbmZsaWN0aW5nIGFjY2VzcworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNvdW50cmllcyA9IHsKKyAgICAgICAgImFiIiwgImJjIiwgImNkIiwgImRlIiwgImVmIiwgImZnIiwgImdoIiwgImppIiwgImlqIiwgImprIgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbGFuZ3VhZ2VzID0geworICAgICAgICAiIiwgIlpZIiwgIllYIiwgIlhXIiwgIldWIiwgIlZVIiwgIlVUIiwgIlRTIiwgIlNSIiwgIlJRIiwgIlFQIgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdmFyaWFudHMgPSB7CisgICAgICAgICIiLCAiIiwgIiIsICJHT0xEIiwgIlNJTFZFUiIsICJCUk9OWkUiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgU2ltcGxlRmFjdG9yeSB7CisgICAgICAgIFRlc3RGYWN0b3J5KFN0cmluZyBpZCkgeworICAgICAgICAgICAgc3VwZXIobmV3IFVMb2NhbGUoaWQpLCBpZCwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiAodmlzaWJsZSAmJiBpZC5lcXVhbHModGhpcy5pZCkpID8gIigiICsgbG9jYWxlLnRvU3RyaW5nKCkgKyAiKSAiICsgaWQgOiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAiRmFjdG9yeV8iICsgaWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8KKyAgICAgKiBzb3J0IHRoZSBkaXNwbGF5IG5hbWVzLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKElDVVNlcnZpY2Ugc2VydmljZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBpZiBubyBjb2xsYXRvciByZXNvdXJjZXMsIHdlIGNhbid0IGNvbGxhdGUKKyAgICAgICAgICAgIGNvbCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBudWxsKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUmFuZG9tIHIgPSBuZXcgUmFuZG9tKCk7IC8vIHRoaXMgaXMgYSBtdWx0aSB0aHJlYWQgdGVzdCwgY2FuJ3QgJ3VucmFuZG9taXplJyAKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRDTFYoKSB7CisgICAgICAgIFN0cmluZyBjID0gY291bnRyaWVzW3IubmV4dEludChjb3VudHJpZXMubGVuZ3RoKV07CisgICAgICAgIFN0cmluZyBsID0gbGFuZ3VhZ2VzW3IubmV4dEludChsYW5ndWFnZXMubGVuZ3RoKV07CisgICAgICAgIFN0cmluZyB2ID0gdmFyaWFudHNbci5uZXh0SW50KHZhcmlhbnRzLmxlbmd0aCldOworICAgICAgICByZXR1cm4gbmV3IExvY2FsZShjLCBsLCB2KS50b1N0cmluZygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gV0FJVCA9IHRydWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBHTyA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgVElNRSA9IDUwMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcnVuVGhyZWFkcygpIHsKKyAgICAgICAgcnVuVGhyZWFkcyhUSU1FKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcnVuVGhyZWFkcyhsb25nIHRpbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEdPID0gdHJ1ZTsKKyAgICAgICAgICAgIFdBSVQgPSBmYWxzZTsKKworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKHRpbWUpOworCisgICAgICAgICAgICBXQUlUID0gdHJ1ZTsKKyAgICAgICAgICAgIEdPID0gZmFsc2U7CisKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgzMDApOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdFRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG5hbWU7CisgICAgICAgIHByb3RlY3RlZCBJQ1VTZXJ2aWNlIHNlcnZpY2U7CisgICAgICAgIHByaXZhdGUgZmluYWwgbG9uZyBkZWxheTsKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIFRlc3RMb2cgbG9nOworCisgICAgICAgIHB1YmxpYyBUZXN0VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lICsgIiAiOworICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTsKKyAgICAgICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTsKKyAgICAgICAgICAgIHRoaXMubG9nID0gbmV3IERlbGVnYXRpbmdMb2cobG9nKTsKKyAgICAgICAgICAgIHRoaXMuc2V0RGFlbW9uKHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgd2hpbGUgKFdBSVQpIHsKKyAgICAgICAgICAgICAgICBUaHJlYWQueWllbGQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoR08pIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoZGVsYXkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgIHB1YmxpYyBib29sZWFuIGxvZ2dpbmcoKSB7CisgICAgICAgICAgcmV0dXJuIGxvZyAhPSBudWxsOworICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIGxvZyhTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5sb2cobmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIGxvZ2xuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmxvZ2xuKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCBlcnIoU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cuZXJyKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCBlcnJsbihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5lcnJsbihuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgd2FybihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5pbmZvKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCB3YXJubG4oU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cuaW5mb2xuKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFJlZ2lzdGVyRmFjdG9yeVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBSZWdpc3RlckZhY3RvcnlUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJSRUcgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIEZhY3RvcnkgZiA9IG5ldyBUZXN0RmFjdG9yeShnZXRDTFYoKSk7CisgICAgICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShmKTsKKyAgICAgICAgICAgIGxvZy5sb2dsbihmLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFVucmVnaXN0ZXJGYWN0b3J5VGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgUmFuZG9tIHI7CisgICAgICAgIExpc3QgZmFjdG9yaWVzOworCisgICAgICAgIFVucmVnaXN0ZXJGYWN0b3J5VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICBzdXBlcigiVU5SRUcgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworICAgICAgICAKKyAgICAgICAgICAgIHIgPSBuZXcgUmFuZG9tKCk7CisgICAgICAgICAgICBmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIGludCBzID0gZmFjdG9yaWVzLnNpemUoKTsKKyAgICAgICAgICAgIGlmIChzID09IDApIHsKKyAgICAgICAgICAgICAgICBmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IHIubmV4dEludChzKTsKKyAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSlmYWN0b3JpZXMucmVtb3ZlKG4pOworICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VjY2VzcyA9IHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoZik7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCJmYWN0b3J5OiAiICsgZiArIChzdWNjZXNzID8gIiBzdWNjZWVkZWQuIiA6ICIgKioqIGZhaWxlZC4iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVW5yZWdpc3RlckZhY3RvcnlMaXN0VGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisgICAgICAgIEZhY3RvcnlbXSBmYWN0b3JpZXM7CisgICAgICAgIGludCBuOworCisgICAgICAgIFVucmVnaXN0ZXJGYWN0b3J5TGlzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBGYWN0b3J5W10gZmFjdG9yaWVzLCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIlVOUkVHICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKyAgICAgICAgCisgICAgICAgICAgICB0aGlzLmZhY3RvcmllcyA9IGZhY3RvcmllczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBpZiAobiA8IGZhY3Rvcmllcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSBmYWN0b3JpZXNbbisrXTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KGYpOworICAgICAgICAgICAgICAgIGxvZy5sb2dsbigiZmFjdG9yeTogIiArIGYgKyAoc3VjY2VzcyA/ICIgc3VjY2VlZGVkLiIgOiAiICoqKiBmYWlsZWQuIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBzdGF0aWMgY2xhc3MgR2V0VmlzaWJsZVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBHZXRWaXNpYmxlVGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICBzdXBlcigiVklTICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBTZXQgaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gaWRzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBpbnQgbiA9IDEwOworICAgICAgICAgICAgd2hpbGUgKC0tbiA+PSAwICYmIGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoaWQpOworICAgICAgICAgICAgICAgIGxvZy5sb2dsbigiaXRlcjogIiArIG4gKyAiIGlkOiAiICsgaWQgKyAiIHJlc3VsdDogIiArIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR2V0RGlzcGxheVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBVTG9jYWxlIGxvY2FsZTsKKworICAgICAgICBHZXREaXNwbGF5VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFVMb2NhbGUgbG9jYWxlLCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIkRJUyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisKKyAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIE1hcCBuYW1lcyA9IGdldERpc3BsYXlOYW1lcyhzZXJ2aWNlLGxvY2FsZSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgaW50IG4gPSAxMDsKKyAgICAgICAgICAgIHdoaWxlICgtLW4gPj0gMCAmJiBpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRuYW1lID0gKFN0cmluZyllLmdldEtleSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBzZXJ2aWNlLmdldChpZCk7CisKKyAgICAgICAgICAgICAgICAvLyBOb3RlOiBJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIGlzIHRocm93biBieSB0aGUgY29kZQorICAgICAgICAgICAgICAgIC8vIGJlbG93IG9uIElCTSBKUkU1IGZvciBBSVggNjRiaXQuICBGb3Igc29tZSByZWFzb24sIGNvbnZlcnRpbmcKKyAgICAgICAgICAgICAgICAvLyBpbnQgdG8gU3RyaW5nIG91dCBvZiB0aGlzIHN0YXRlbWVudCByZXNvbHZlcyB0aGUgaXNzdWUuCisKKyAgICAgICAgICAgICAgICAvL2xvZy5sb2dsbigiIGl0ZXI6ICIgKyBuICsgCisgICAgICAgICAgICAgICAgU3RyaW5nIG51bSA9IEludGVnZXIudG9TdHJpbmcobik7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCIgaXRlcjogIiArIG51bSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRuYW1lOiAiICsgZG5hbWUgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpZDogIiArIGlkICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgcmVzdWx0OiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBHZXRUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBhY3R1YWxJRDsKKworICAgICAgICBHZXRUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJHRVQgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisgICAgICAgICAgICBhY3R1YWxJRCA9IG5ldyBTdHJpbmdbMV07CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gZ2V0Q0xWKCk7CisgICAgICAgICAgICBPYmplY3QgbyA9IHNlcnZpY2UuZ2V0KGlkLCBhY3R1YWxJRCk7CisgICAgICAgICAgICBpZiAobyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKCIgaWQ6ICIgKyBpZCArICIgYWN0dWFsOiAiICsgYWN0dWFsSURbMF0gKyAiIHJlc3VsdDogIiArIG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdldExpc3RUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBsaXN0OworICAgICAgICBwcml2YXRlIGludCBuOworCisgICAgICAgIEdldExpc3RUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgU3RyaW5nW10gbGlzdCwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJHRVRMICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKworICAgICAgICAgICAgdGhpcy5saXN0ID0gbGlzdDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBpZiAoLS1uIDwgMCkgeworICAgICAgICAgICAgICAgIG4gPSBsaXN0Lmxlbmd0aCAtIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBsaXN0W25dOworICAgICAgICAgICAgT2JqZWN0IG8gPSBzZXJ2aWNlLmdldChpZCk7CisgICAgICAgICAgICBsb2cubG9nbG4oIiBpZDogIiArIGlkICsgIiByZXN1bHQ6ICIgKyBvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHJldHVybiBhIGNvbGxlY3Rpb24gb2YgdW5pcXVlIGZhY3RvcmllcywgbWlnaHQgYmUgZmV3ZXIgdGhhbiByZXF1ZXN0ZWQKKyAgICBDb2xsZWN0aW9uIGdldEZhY3RvcnlDb2xsZWN0aW9uKGludCByZXF1ZXN0ZWQpIHsKKyAgICAgICAgU2V0IGxvY2FsZXMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlcXVlc3RlZDsgKytpKSB7CisgICAgICAgICAgICBsb2NhbGVzLmFkZChnZXRDTFYoKSk7CisgICAgICAgIH0KKyAgICAgICAgTGlzdCBmYWN0b3JpZXMgPSBuZXcgQXJyYXlMaXN0KGxvY2FsZXMuc2l6ZSgpKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxvY2FsZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBmYWN0b3JpZXMuYWRkKG5ldyBUZXN0RmFjdG9yeSgoU3RyaW5nKWl0ZXIubmV4dCgpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3RvcmllczsKKyAgICB9CisKKyAgICB2b2lkIHJlZ2lzdGVyRmFjdG9yaWVzKElDVVNlcnZpY2Ugc2VydmljZSwgQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpaXRlci5uZXh0KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgSUNVU2VydmljZSBzdGFibGVTZXJ2aWNlKCkgeworICAgICAgICBpZiAoc3RhYmxlU2VydmljZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzdGFibGVTZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKyAgICAgICAgICAgIHJlZ2lzdGVyRmFjdG9yaWVzKHN0YWJsZVNlcnZpY2UsIGdldEZhY3RvcnlDb2xsZWN0aW9uKDUwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YWJsZVNlcnZpY2U7CisgICAgfQorICAgIHByaXZhdGUgSUNVU2VydmljZSBzdGFibGVTZXJ2aWNlOworCisgICAgLy8gcnVuIG11bHRpcGxlIGdldCBvbiBhIHN0YWJsZSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAwX0NvbmN1cnJlbnRHZXQoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAgICBuZXcgR2V0VGhyZWFkKCJbIiArIEludGVnZXIudG9TdHJpbmcoaSkgKyAiXSIsICBzdGFibGVTZXJ2aWNlKCksIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgcnVuVGhyZWFkcygpOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHN0YWJsZVNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorCisgICAgLy8gcnVuIG11bHRpcGxlIGdldFZpc2libGVJRCBvbiBhIHN0YWJsZSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAxX0NvbmN1cnJlbnRHZXRWaXNpYmxlKCkgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICAgICAgbmV3IEdldFZpc2libGVUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgIHN0YWJsZVNlcnZpY2UoKSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBydW5UaHJlYWRzKCk7CisgICAgICAgIGlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0RGlzcGxheU5hbWUgb24gYSBzdGFibGUgc2VydmljZQorICAgIHB1YmxpYyB2b2lkIFRlc3QwMl9Db25jdXJyZW50R2V0RGlzcGxheSgpIHsKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSB7CisgICAgICAgICAgICAiZW4iLCAiZXMiLCAiZGUiLCAiZnIiLCAiemgiLCAiaXQiLCAibm8iLCAic3YiCisgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZSA9IGxvY2FsZU5hbWVzW2ldOworICAgICAgICAgICAgbmV3IEdldERpc3BsYXlUaHJlYWQoIlsiICsgbG9jYWxlICsgIl0iLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFibGVTZXJ2aWNlKCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVTG9jYWxlKGxvY2FsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzKS5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIHJ1blRocmVhZHMoKTsKKyAgICAgICAgaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzdGFibGVTZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KKworICAgIC8vIHJ1biByZWdpc3Rlci91bnJlZ2lzdGVyIG9uIGEgc2VydmljZQorICAgIHB1YmxpYyB2b2lkIFRlc3QwM19Db25jdXJyZW50UmVnVW5yZWcoKSB7CisgICAgICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgKytpKSB7CisgICAgICAgICAgICBuZXcgUmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCJbIiArIGkgKyAiXSIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZCgiWyIgKyBpICsgIl0iLCBzZXJ2aWNlLCAwLCB0aGlzKS5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIHJ1blRocmVhZHMoKTsKKyAgICAgICAgaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDRfV2l0aGVyaW5nU2VydmljZSgpIHsKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKworICAgICAgICBDb2xsZWN0aW9uIGZjID0gZ2V0RmFjdG9yeUNvbGxlY3Rpb24oNTApOworICAgICAgICByZWdpc3RlckZhY3RvcmllcyhzZXJ2aWNlLCBmYyk7CisKKyAgICAgICAgRmFjdG9yeVtdIGZhY3RvcmllcyA9IChGYWN0b3J5W10pZmMudG9BcnJheShuZXcgRmFjdG9yeVtmYy5zaXplKCldKTsKKyAgICAgICAgQ29tcGFyYXRvciBjb21wID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxocy50b1N0cmluZygpLmNvbXBhcmVUbyhyaHMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgQXJyYXlzLnNvcnQoZmFjdG9yaWVzLCBjb21wKTsKKworICAgICAgICBuZXcgR2V0VGhyZWFkKCIiLCBzZXJ2aWNlLCAwLCB0aGlzKS5zdGFydCgpOworICAgICAgICBuZXcgVW5yZWdpc3RlckZhY3RvcnlMaXN0VGhyZWFkKCIiLCBzZXJ2aWNlLCAzLCBmYWN0b3JpZXMsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgcnVuVGhyZWFkcygyMDAwKTsKKyAgICAgICAgaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KKyAgICAKKyAgICAvLyAiYWxsIGhlbGwgYnJlYWtzIGxvb3NlIgorICAgIC8vIG9uZSByZWdpc3RlciBhbmQgb25lIHVucmVnaXN0ZXIgdGhyZWFkLCBkZWxheSA1MDBtcworICAgIC8vIHR3byBkaXNwbGF5IHRocmVhZHMgd2l0aCBkaWZmZXJlbnQgbG9jYWxlcywgZGVsYXkgNTAwbXM7CisgICAgLy8gb25lIHZpc2libGUgaWQgdGhyZWFkLCBkZWxheSA1MG1zCisgICAgLy8gZmlmdGVlbiBnZXQgdGhyZWFkcywgZGVsYXkgMAorICAgIC8vIHJ1biBmb3IgdGVuIHNlY29uZHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDVfQ29uY3VycmVudEV2ZXJ5dGhpbmcoKSB7CisgICAgICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisKKyAgICAgICAgbmV3IFJlZ2lzdGVyRmFjdG9yeVRocmVhZCgiIiwgc2VydmljZSwgNTAwLCB0aGlzKS5zdGFydCgpOworCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAxNTsgKytpKSB7CisgICAgICAgICAgICBuZXcgR2V0VGhyZWFkKCJbIiArIEludGVnZXIudG9TdHJpbmcoaSkgKyAiXSIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKworICAgICAgICBuZXcgR2V0VmlzaWJsZVRocmVhZCgiIiwgIHNlcnZpY2UsIDUwLCB0aGlzKS5zdGFydCgpOworCisgICAgICAgIFN0cmluZ1tdIGxvY2FsZU5hbWVzID0geworICAgICAgICAgICAgImVuIiwgImRlIgorICAgICAgICB9OworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBsb2NhbGVOYW1lc1tpXTsKKyAgICAgICAgICAgIG5ldyBHZXREaXNwbGF5VGhyZWFkKCJbIiArIGxvY2FsZSArICJdIiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhYmxlU2VydmljZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVTG9jYWxlKGxvY2FsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzKS5zdGFydCgpOworICAgICAgICB9CisKKyAgICAgICAgbmV3IFVucmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCIiLCBzZXJ2aWNlLCA1MDAsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgLy8geW93ZWVlISEhCisgICAgICAgIHJ1blRocmVhZHMoMTAwMDApOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTFJVTWFwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTFJVTWFwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1MGE3YzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9MUlVNYXBUZXN0LmphdmEKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTFJVTWFwOworCitwdWJsaWMgY2xhc3MgTFJVTWFwVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgTFJVTWFwVGVzdCB0ZXN0ID0gbmV3IExSVU1hcFRlc3QoKTsKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExSVU1hcCgpIHsKKyAgICAgICAgLy8gRGVmYXVsdCBzaXplIC0gbWF4IDY0CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIExSVU1hcCB3aXRoIHRoZSBkZWZhdWx0IHNpemUiKTsKKyAgICAgICAgTFJVTWFwIG1hcCA9IG5ldyBMUlVNYXAoKTsKKyAgICAgICAgZXhlY3V0ZShtYXAsIDY0KTsKKworICAgICAgICAvLyBtYXggc2l6ZSAtIDE2CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIExSVU1hcCB3aXRoIGluaXRpYWwvbWF4IHNpemUgLSA0LzE2Iik7CisgICAgICAgIG1hcCA9IG5ldyBMUlVNYXAoNCwgMTYpOworICAgICAgICBleGVjdXRlKG1hcCwgMTYpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleGVjdXRlKExSVU1hcCBtYXAsIGludCBtYXhTaXplIC8qIG1heFNpemUgPiA2ICovKSB7CisgICAgICAgIEludGVnZXIgbnVtOworICAgICAgICBTdHJpbmcgbnVtU3RyOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG1heFNpemU7IGkrKykgeworICAgICAgICAgICAgbnVtID0gbmV3IEludGVnZXIoaSk7CisgICAgICAgICAgICBudW1TdHIgPSBudW0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIG1hcC5wdXQobnVtU3RyLCBudW0pOworICAgICAgICB9CisgICAgICAgIC8vIFRoZSBmaXJzdCBrZXkvdmFsdWUgc2hvdWxkIGJlIHJlbW92ZWQsIGJlY2F1c2UKKyAgICAgICAgLy8gd2UgYWxyZWFkeSBwdXQgNjUgZW50cmllcworICAgICAgICBudW0gPSAoSW50ZWdlciltYXAuZ2V0KCIwIik7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBUaGUgZW50cnkgJzAnIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnMCcgaXMgc3RpbGwgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIEFjY2VzcyB0aGUgc2Vjb25kIGVudHJ5ICcxJywgd2hpY2ggaXMgY3VycmVudGx5CisgICAgICAgIC8vIHRoZSBlbGRlc3QuCisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjEiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVsZGVzdCBlbnRyeSAnMScgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbGRlc3QgZW50cnkgJzEnIGlzIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgfQorICAgICAgICAvLyBQdXQgYW5vdGhlciBlbnRyeSAtIGJlY2F1c2UgdGhlIGVudHJ5ICcxJyB3YXMKKyAgICAgICAgLy8gYWNjZXNzZWQgYWJvdmUsIHRoZSBlbnRyeSAnMicgaXMgdGhlIGVsZGVzdCBhbmQKKyAgICAgICAgLy8gcHV0dGluZyBuZXcgZW50cnkgc2hvdWxkIHJlbW92ZSB0aGUgZW50cnkuCisgICAgICAgIG51bSA9IG5ldyBJbnRlZ2VyKG1heFNpemUgKyAxKTsKKyAgICAgICAgbWFwLnB1dChudW0udG9TdHJpbmcoKSwgbnVtKTsKKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLmdldCgiMiIpOworICAgICAgICBpZiAobnVtID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVudHJ5ICcyJyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZW50cnkgJzInIGlzIHN0aWxsIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaGUgZW50cnkgJzMnIGlzIHRoZSBlbGRlc3QgZm9yIG5vdy4KKyAgICAgICAgYm9vbGVhbiBiID0gbWFwLmNvbnRhaW5zS2V5KCIzIik7CisgICAgICAgIGlmIChiKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbGRlc3QgZW50cnkgJzMnIGlzIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZWxkZXN0IGVudHJ5ICczJyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjb250YW5zS2V5IHNob3VsZCBub3QgYWZmZWN0IHRoZSBhY2Nlc3Mgb3JkZXIKKyAgICAgICAgbnVtID0gbmV3IEludGVnZXIobWF4U2l6ZSArIDIpOworICAgICAgICBtYXAucHV0KG51bS50b1N0cmluZygpLCBudW0pOworICAgICAgICBudW0gPSAoSW50ZWdlciltYXAuZ2V0KCIzIik7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBUaGUgZW50cnkgJzMnIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnMycgaXMgc3RpbGwgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIFB1dHRpbmcgZXhpc3RpbmcgZW50cnkgd2l0aCBuZXcgdmFsdWUKKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLnB1dCgiNCIsIG5ldyBJbnRlZ2VyKC00KSk7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnNCcgbm8gbG9uZ2VyIGV4aXN0cyIpOworICAgICAgICB9CisgICAgICAgIGlmIChudW0uaW50VmFsdWUoKSAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHZhbHVlIGZvciAnNCcgd2FzIG5vdCA0Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGVudHJ5ICc1JyBpcyB0aGUgZWxkZXN0IGZvciBub3csIGJlY2F1c2UKKyAgICAgICAgLy8gdGhlIGVudHJ5ICc0JyB3YXMgdXBkYXRlZCBhYm92ZS4KKyAgICAgICAgbnVtID0gbmV3IEludGVnZXIobWF4U2l6ZSArIDMpOworICAgICAgICBtYXAucHV0KG51bS50b1N0cmluZygpLCBudW0pOworICAgICAgICBudW0gPSAoSW50ZWdlciltYXAuZ2V0KCI1Iik7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBUaGUgZW50cnkgJzUnIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnNScgaXMgc3RpbGwgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIENsZWFyIHRoZSBtYXAKKyAgICAgICAgbWFwLmNsZWFyKCk7CisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjYiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnNicgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICc2JyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2FsZUFsaWFzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlQWxpYXNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc1NTU5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2FsZUFsaWFzVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKgorICogTmV3IGFkZGVkLCAyMDA1LTUtMTAgW1RlcnJ5L1NHTF0KKyAqIE1ham9yIG1vZGlmaWNhdGlvbiBieSBSYW0KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBMb2NhbGVBbGlhc1Rlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZVtdW10gX0xPQ0FMRVMgPSB7CisKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiUkgiKSwgbmV3IFVMb2NhbGUoImVuIiwgIlpXIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJpbiIpLCBuZXcgVUxvY2FsZSgiaWQiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImluIiwgIklEIiksIG5ldyBVTG9jYWxlKCJpZCIsICJJRCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiaXciKSwgbmV3IFVMb2NhbGUoImhlIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJpdyIsICJJTCIpLCBuZXcgVUxvY2FsZSgiaGUiLCAiSUwiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImppIiksIG5ldyBVTG9jYWxlKCJ5aSIpfSwKKyAgICAgICAgICAgIAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJCVSIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiTU0iKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIkRZIiksIG5ldyBVTG9jYWxlKCJlbiIsICJCSiIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiSFYiKSwgbmV3IFVMb2NhbGUoImVuIiwgIkJGIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJOSCIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiVlUiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIlRQIiksIG5ldyBVTG9jYWxlKCJlbiIsICJUTCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiWlIiKSwgbmV3IFVMb2NhbGUoImVuIiwgIkNEIil9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgX0xPQ0FMRV9OVU1CRVIgPSBfTE9DQUxFUy5sZW5ndGg7CisgICAgcHJpdmF0ZSBzdGF0aWMgVUxvY2FsZVtdIGF2YWlsYWJsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBIYXNoTWFwIGF2YWlsYWJsZU1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZSBfREVGQVVMVF9MT0NBTEUgPSBVTG9jYWxlLlVTOworICAgIAorICAgIHB1YmxpYyBMb2NhbGVBbGlhc1Rlc3QoKXsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpeworICAgICAgICBhdmFpbGFibGUgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8YXZhaWxhYmxlLmxlbmd0aDtpKyspeworICAgICAgICAgICAgYXZhaWxhYmxlTWFwLnB1dChhdmFpbGFibGVbaV0udG9TdHJpbmcoKSwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgTG9jYWxlQWxpYXNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsZW5kYXIoKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENhbGVuZGFyIGMxID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2Uob2xkTG9jKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGMyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3TG9jKTsKKyAgICAgICAgICAgIGMxLnNldFRpbWUoYzIuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIC8vVGVzdCBmdW5jdGlvbiAiZ2V0Rmlyc3REYXlPZldlZWsiCisgICAgLy8gICAgICAgIGludCBmaXJzdERheU9mV2VlazEgPSBjMS5nZXRGaXJzdERheU9mV2VlaygpOworICAgIC8vICAgICAgICBpbnQgZmlyc3REYXlPZldlZWsyID0gYzIuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKyAgICAvLyAgICAgICAgaWYgKGZpcnN0RGF5T2ZXZWVrMSAhPSBmaXJzdERheU9mV2VlazIpIHsKKyAgICAvLyAgICAgICAgICAgIHRoaXMubG9nbG4oIkNhbGVuZGFyKGdldEZpcnN0RGF5T2ZXZWVrKSBvbGQ6IgorICAgIC8vICAgICAgICAgICAgICAgICAgICArZmlyc3REYXlPZldlZWsxKyIgICBuZXc6IitmaXJzdERheU9mV2VlazIpOworICAgIC8vICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgIC8vICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJnZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpIgorICAgICAgICAgICAgVUxvY2FsZSBsMSA9IGMxLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gYzIuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIGlmICghbmV3TG9jLmVxdWFscyhsMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXJUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhclRlc3Q6IGwxIT1sMjogbDE9ICIrbDEgKyIgbDI9ICIrbDIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWMxLmVxdWFscyhjMikpeworICAgICAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhclRlc3Q6IGMxIT1jMi4gIG5ld0xvYz0gIituZXdMb2MgKyIgb2xkTG9jPSAiK29sZExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiQ2FsZW5kYXIoZ2V0TG9jYWxlKSBvbGQ6IitsMSsiICAgbmV3OiIrbDIpOyAgICAKKyAgICAgICAgfQorCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkICBUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIG9sZExvYyA9IF9MT0NBTEVTW2ldWzBdOworICAgICAgICAgICAgVUxvY2FsZSBuZXdMb2MgPSBfTE9DQUxFU1tpXVsxXTsKKyAgICAgICAgICAgIGlmKGF2YWlsYWJsZU1hcC5nZXQoX0xPQ0FMRVNbaV1bMV0pPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihfTE9DQUxFU1tpXVsxXSsiIGlzIG5vdCBhdmFpbGFibGUuIFNraXBwaW5nISIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZjEgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIG9sZExvYyk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgbmV3TG9jKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJnZXRMb2NhbGUiCisgICAgICAgICAgICBVTG9jYWxlIGwxID0gZGYxLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gZGYyLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBpZiAoIW5ld0xvYy5lcXVhbHMobDEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXRUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlRm9ybWF0VGVzdDogbDEhPWwyOiBsMT0gIitsMSArIiBsMj0gIitsMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWRmMS5lcXVhbHMoZGYyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlRm9ybWF0VGVzdDogZGYxIT1kZjI6IG5ld0xvYz0gIituZXdMb2MgKyIgb2xkTG9jPSAiK29sZExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmxvZ2xuKCJEYXRlRm9ybWF0KGdldExvY2FsZSkgb2xkOiIrbDErIiAgIG5ldzoiK2wyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJmb3JtYXQiCisgICAgLy8gICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKCk7CisgICAgLy8gICAgICAgIFN0cmluZyBkMSA9IGRmMS5mb3JtYXQoZCk7CisgICAgLy8gICAgICAgIFN0cmluZyBkMiA9IGRmMi5mb3JtYXQoZCk7CisgICAgLy8gICAgICAgIGlmICghZDEuZXF1YWxzKGQyKSkgeworICAgIC8vICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgIC8vICAgICAgICB9CisgICAgLy8gICAgICAgIHRoaXMubG9nbG4oIkRhdGVGb3JtYXQoZm9ybWF0KSBvbGQ6IitkMSsiICAgbmV3OiIrZDIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRpb24oKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxhdG9yIGMxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2Uob2xkTG9jKTsKKyAgICAgICAgICAgIENvbGxhdG9yIGMyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3TG9jKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFjMS5lcXVhbHMoYzIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvblRlc3Q6IGMxIT1jMjogbmV3TG9jPSAiK25ld0xvYyArIiBvbGRMb2M9ICIrb2xkTG9jKTsKKyAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgIGxvZ2xuKCJDb2xsYXRpb24gb2xkOiIrb2xkTG9jKyIgICBuZXc6IituZXdMb2MpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RVTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoX0RFRkFVTFRfTE9DQUxFKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPF9MT0NBTEVfTlVNQkVSOyBpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgb2xkTG9jID0gX0xPQ0FMRVNbaV1bMF07CisgICAgICAgICAgICBVTG9jYWxlIG5ld0xvYyA9IF9MT0NBTEVTW2ldWzFdOworICAgICAgICAgICAgaWYoYXZhaWxhYmxlTWFwLmdldChfTE9DQUxFU1tpXVsxXSk9PW51bGwpeworICAgICAgICAgICAgICAgIGxvZ2xuKF9MT0NBTEVTW2ldWzFdKyIgaXMgbm90IGF2YWlsYWJsZS4gU2tpcHBpbmchIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVTG9jYWxlIHVsMSA9IG5ldyBVTG9jYWxlKG9sZExvYy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIFVMb2NhbGUgdWwyID0gbmV3IFVMb2NhbGUobmV3TG9jLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmFtZTEgPSB1bDEuZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lMiA9IHVsMi5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgaWYgKCFuYW1lMS5lcXVhbHMobmFtZTIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5hbWUxIT1uYW1lMi4gbmFtZTEgPSAiICsgbmFtZTEgKyIgbmFtZTIgPSAiICtuYW1lMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVUxvY2FsZShnZXREaXNwbGF5TmFtZSkgb2xkOiIrbmFtZTErIiAgIG5ldzoiK25hbWUyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPGF2YWlsYWJsZS5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICBTdHJpbmcgb2xkQ291bnRyeSA9IG9sZExvYy5nZXREaXNwbGF5Q291bnRyeShhdmFpbGFibGVbal0pOworICAgICAgICAgICAgICAgU3RyaW5nIG5ld0NvdW50cnkgPSBuZXdMb2MuZ2V0RGlzcGxheUNvdW50cnkoYXZhaWxhYmxlW2pdKTsKKyAgICAgICAgICAgICAgIFN0cmluZyBvbGRMYW5nID0gb2xkTG9jLmdldERpc3BsYXlMYW5ndWFnZShhdmFpbGFibGVbal0pOworICAgICAgICAgICAgICAgU3RyaW5nIG5ld0xhbmcgPSBuZXdMb2MuZ2V0RGlzcGxheUxhbmd1YWdlKGF2YWlsYWJsZVtqXSk7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIC8vIGlzICB0aGVyZSAgZGlzcGxheSBuYW1lIGZvciB0aGUgY3VycmVudCBjb3VudHJ5IElEICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBpZighbmV3Q291bnRyeS5lcXVhbHMobmV3TG9jLmdldENvdW50cnkoKSkpeworICAgICAgICAgICAgICAgICAgIGlmKCFvbGRDb3VudHJ5LmVxdWFscyhuZXdDb3VudHJ5KSl7CisgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRDb3VudHJ5KCkgZmFpbGVkIGZvciAiKyBvbGRMb2MgKyIgb2xkQ291bnRyeT0gIisgcHJldHRpZnkob2xkQ291bnRyeSkgKyIgbmV3Q291bnRyeSA9ICIrcHJldHRpZnkobmV3Q291bnRyeSkrICIgaW4gZGlzcGxheSBsb2NhbGUgIisgYXZhaWxhYmxlW2pdLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIC8vdGhlcmUgaXMgYSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBjdXJyZW50IGxhbmcgSUQgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGlmKCFuZXdMYW5nLmVxdWFscyhuZXdMb2MuZ2V0TGFuZ3VhZ2UoKSkpeworICAgICAgICAgICAgICAgICAgIGlmKCFvbGRMYW5nLmVxdWFscyhuZXdMYW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRMYW5ndWFnZSgpIGZhaWxlZCBmb3IgIiArIG9sZExvYyArICIgb2xkTGFuZyA9ICIrIHByZXR0aWZ5KG9sZExhbmcpICsiIG5ld0xhbmcgPSAiK3ByZXR0aWZ5KG5ld0xhbmcpKyAiIGluIGRpc3BsYXkgbG9jYWxlICIrIGF2YWlsYWJsZVtqXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFVSZXNvdXJjZUJ1bmRsZSgpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVMb2NhbGUgb2xkTG9jID0gX0xPQ0FMRVNbaV1bMF07CisgICAgICAgICAgICBVTG9jYWxlIG5ld0xvYyA9IF9MT0NBTEVTW2ldWzFdOworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIHVyYjEgPSBudWxsOworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIHVyYjIgPSBudWxsOworICAgICAgICAgICAgCisgICAgCSAgICB1cmIxID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG9sZExvYyk7CisgICAgCSAgICB1cmIyID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG5ld0xvYyk7CisgICAgICAgICAgICBVTG9jYWxlIGwxID0gdXJiMS5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gdXJiMi5nZXRVTG9jYWxlKCk7ICAgICAgICAKKyAgICAgICAgICAgIGlmICghbmV3TG9jLmVxdWFscyhsMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUmVzb3VyY2VCdW5kbGVUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXNvdXJjZUJ1bmRsZVRlc3Q6IGwxIT1sMjogbDE9ICIrbDEgKyIgbDI9ICIrbDIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5sb2dsbigiVVJlc291cmNlQnVuZGxlIG9sZDoiK2wxKyIgICBuZXc6IitsMik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVEYXRhVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlRGF0YVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmZiZWM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlRGF0YVRlc3QuamF2YQpAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgTG9jYWxlRGF0YVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBMb2NhbGVEYXRhVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBVTG9jYWxlW10gYXZhaWxhYmxlTG9jYWxlcyA9IG51bGw7CisgICAgCisgICAgcHVibGljIExvY2FsZURhdGFUZXN0KCl7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXsKKyAgICAgICAgYXZhaWxhYmxlTG9jYWxlcyA9IElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFwZXJTaXplKCl7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gYXZhaWxhYmxlTG9jYWxlc1tpXTsKKyAgICAgICAgICAgIExvY2FsZURhdGEuUGFwZXJTaXplIHBhcGVyU2l6ZSA9IExvY2FsZURhdGEuZ2V0UGFwZXJTaXplKGxvY2FsZSk7CisgICAgICAgICAgICAvLyBza2lwIHRlc3Rpbmcgb2YgImluIiAuLiBkZXByZWNhdGVkIGNvZGUgZm9yIEluZG9uZXNpYW4KKyAgICAgICAgICAgIFN0cmluZyBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICBpZihsYW5nLmVxdWFscygiaW4iKSl7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihsb2NhbGUudG9TdHJpbmcoKS5pbmRleE9mKCJfVVMiKSA+PSAwKXsKKyAgICAgICAgICAgICAgICBpZihwYXBlclNpemUuZ2V0SGVpZ2h0KCkhPSAyNzkgfHwgcGFwZXJTaXplLmdldFdpZHRoKCkgIT0gMjE2ICl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXBlclNpemUgZGlkIG5vdCByZXR1cm4gdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2NhbGUgIisgbG9jYWxlKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkIGhlaWdodDogMjc5IHdpZHRoOiAyMTYuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBHb3QgaGVpZ2h0OiAiK3BhcGVyU2l6ZS5nZXRIZWlnaHQoKSsiIHdpZHRoOiAiK3BhcGVyU2l6ZS5nZXRXaWR0aCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFwZXJTaXplIHJldHVybmVkIHRoZSBleHBlY3RlZCB2YWx1ZXMgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZihwYXBlclNpemUuZ2V0SGVpZ2h0KCkhPSAyOTcgfHwgcGFwZXJTaXplLmdldFdpZHRoKCkgIT0gMjEwICl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXBlclNpemUgZGlkIG5vdCByZXR1cm4gdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2NhbGUgIisgbG9jYWxlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZCBoZWlnaHQ6IDI5NyB3aWR0aDogMjEwLiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290IGhlaWdodDogIitwYXBlclNpemUuZ2V0SGVpZ2h0KCkgKyIgd2lkdGg6ICIrcGFwZXJTaXplLmdldFdpZHRoKCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFwZXJTaXplIHJldHVybmVkIHRoZSBleHBlY3RlZCB2YWx1ZXMgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdE1lYXN1cmVtZW50U3lzdGVtKCl7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBhdmFpbGFibGVMb2NhbGVzW2ldOworICAgICAgICAgICAgTG9jYWxlRGF0YS5NZWFzdXJlbWVudFN5c3RlbSBtcyA9IExvY2FsZURhdGEuZ2V0TWVhc3VyZW1lbnRTeXN0ZW0obG9jYWxlKTsKKyAgICAgICAgICAgIC8vIHNraXAgdGVzdGluZyBvZiAiaW4iIC4uIGRlcHJlY2F0ZWQgY29kZSBmb3IgSW5kb25lc2lhbgorICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIGlmKGxhbmcuZXF1YWxzKCJpbiIpKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICAgICAgaWYobG9jYWxlLnRvU3RyaW5nKCkuaW5kZXhPZigiX1VTIikgPj0gMCl7CisgICAgICAgICAgICAgICAgaWYobXMgPT0gTG9jYWxlRGF0YS5NZWFzdXJlbWVudFN5c3RlbS5VUyl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIG1lYXN1cmVtZW50IHN5c3RlbSBmb3IgbG9jYWxlOiAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBtZWFzdXJlbWVudCBzeXN0ZW0gZm9yIGxvY2FsZTogIisgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZihtcyA9PSBMb2NhbGVEYXRhLk1lYXN1cmVtZW50U3lzdGVtLlNJKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQgbWVhc3VyZW1lbnQgc3lzdGVtIGZvciBsb2NhbGU6ICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG1lYXN1cmVtZW50IHN5c3RlbSBmb3IgbG9jYWxlOiAiKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEV4ZW1wbGFyU2V0KCl7CisgICAgICAgIGludCBlcXVhbENvdW50ID0gMDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8YXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IGF2YWlsYWJsZUxvY2FsZXNbaV07CisgICAgICAgICAgICBVbmljb2RlU2V0IGV4ZW1wbGFyU2V0c1tdID0gbmV3IFVuaWNvZGVTZXRbMl07CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8MjsgKytrKSB7CisgICAgICAgICAgICAgICAgaW50IG9wdGlvbiA9IChrPT0wKSA/IDAgOiBVbmljb2RlU2V0LkNBU0U7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBleGVtcGxhclNldCA9IExvY2FsZURhdGEuZ2V0RXhlbXBsYXJTZXQobG9jYWxlLCBvcHRpb24pOworICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1trXSA9IGV4ZW1wbGFyU2V0OworICAgICAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUobG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZihjb2RlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gc2V0cyA9IG5ldyBVbmljb2RlU2V0W2NvZGUubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBVbmljb2RlU2V0cyBmb3IgdGhlIHNjcmlwdAorICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgaiA8IGNvZGUubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0c1tqXSA9IG5ldyBVbmljb2RlU2V0KCJbOiIgKyBVU2NyaXB0LmdldFNob3J0TmFtZShjb2RlW2pdKSArICI6XSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXhpc3RzSW5TY3JpcHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFleGlzdHNJblNjcmlwdCAmJiBpdGVyLm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHNldHMubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRzW2pdLmNvbnRhaW5zKGl0ZXIuY29kZXBvaW50LCBpdGVyLmNvZGVwb2ludEVuZCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHNldHMubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRzW2pdLmNvbnRhaW5zKGl0ZXIuc3RyaW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdHNJblNjcmlwdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihleGlzdHNJblNjcmlwdCA9PSBmYWxzZSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhlbXBsYXJTZXQgY29udGFpbm1lbnQgZmFpbGVkIGZvciBsb2NhbGUgOiAiKyBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIC8vIEkgaGF0ZSB0aGUgSkRLJ3Mgc29sdXRpb24gZm9yIGRlcHJlY2F0ZWQgbGFuZ3VhZ2UgY29kZXMuCisgICAgICAgICAgICAgICAgICAgIC8vIFdoeSBkb2VzIHRoZSBMb2NhbGUgY29uc3RydWN0b3IgY2hhbmdlIHRoZSBzdHJpbmcgSSBwYXNzZWQgdG8gaXQgPworICAgICAgICAgICAgICAgICAgICAvLyBzdWNoIGEgYnJva2VuIGhhY2sgISEhISEKKyAgICAgICAgICAgICAgICAgICAgLy8gc28gaW4gZWZmZWN0IEkgY2FuIG5ldmVyIHRlc3QgdGhlIHNjcmlwdCBjb2RlIGZvciBJbmRvbmVzaWFuIDooCisgICAgICAgICAgICAgICAgICAgIGlmKGxvY2FsZS50b1N0cmluZygpLmluZGV4T2YoKCJpbiIpKTwwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldENvZGUgcmV0dXJuZWQgbnVsbCBmb3IgbG9jYWxlOiAiICsgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUaGlzIGlzIGV4cGVuc2l2ZSwgc28gb25seSBkbyBpdCBpZiBpdCB3aWxsIGJlIHZpc2libGUKKyAgICAgICAgICAgIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhciAiICsgZXhlbXBsYXJTZXRzWzBdKTsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUudG9TdHJpbmcoKSArICIgZXhlbXBsYXIoY2FzZS1mb2xkZWQpICIgKyBleGVtcGxhclNldHNbMV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZShsb2NhbGUudG9TdHJpbmcoKSArICIgY2FzZS1mb2xkZWQgaXMgYSBzdXBlcnNldCIsCisgICAgICAgICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1sxXS5jb250YWluc0FsbChleGVtcGxhclNldHNbMF0pKTsKKyAgICAgICAgICAgIGlmIChleGVtcGxhclNldHNbMV0uZXF1YWxzKGV4ZW1wbGFyU2V0c1swXSkpIHsKKyAgICAgICAgICAgICAgICArK2VxdWFsQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gTm90ZTogVGhlIGNhc2UtZm9sZGVkIHNldCBzaG91bGQgc29tZXRpbWVzIGJlIGEgc3RyaWN0IHN1cGVyc2V0CisgICAgICAgIC8vIGFuZCBzb21ldGltZXMgYmUgZXF1YWwuCisgICAgICAgIGFzc2VydFRydWUoImNhc2UtZm9sZGVkIGlzIHNvbWV0aW1lcyBhIHN0cmljdCBzdXBlcnNldCwgYW5kIHNvbWV0aW1lcyBlcXVhbCIsCisgICAgICAgICAgICAgICAgICAgZXF1YWxDb3VudCA+IDAgJiYgZXF1YWxDb3VudCA8IGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEV4ZW1wbGFyU2V0MigpeworICAgICAgICBpbnQgZXF1YWxDb3VudCA9IDA7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBhdmFpbGFibGVMb2NhbGVzW2ldOworICAgICAgICAgICAgTG9jYWxlRGF0YSBsZCA9IExvY2FsZURhdGEuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXRzW10gPSBuZXcgVW5pY29kZVNldFs0XTsKKworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPDI7ICsraykgeworICAgICAgICAgICAgICAgIGludCBvcHRpb24gPSAoaz09MCkgPyAwIDogVW5pY29kZVNldC5DQVNFOworICAgICAgICAgICAgICAgIGZvcihpbnQgaD0wOyBoPDI7ICsraCl7CisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gKGg9PTApID8gTG9jYWxlRGF0YS5FU19TVEFOREFSRCA6IExvY2FsZURhdGEuRVNfQVVYSUxJQVJZOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBleGVtcGxhclNldCA9IGxkLmdldEV4ZW1wbGFyU2V0KG9wdGlvbiwgdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1trKjIraF0gPSBleGVtcGxhclNldDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUobG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY29kZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRbXSBzZXRzID0gbmV3IFVuaWNvZGVTZXRbY29kZS5sZW5ndGhdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBVbmljb2RlU2V0cyBmb3IgdGhlIHNjcmlwdAorICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGogPCBjb2RlLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRzW2pdID0gbmV3IFVuaWNvZGVTZXQoIls6IiArIFVTY3JpcHQuZ2V0U2hvcnROYW1lKGNvZGVbal0pICsgIjpdIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGV4aXN0c0luU2NyaXB0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoZXhlbXBsYXJTZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICghZXhpc3RzSW5TY3JpcHQgJiYgaXRlci5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyLmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHNldHMubGVuZ3RoOyBqKyspeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0c1tqXS5jb250YWlucyhpdGVyLmNvZGVwb2ludCwgaXRlci5jb2RlcG9pbnRFbmQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdHNJblNjcmlwdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzZXRzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldHNbal0uY29udGFpbnMoaXRlci5zdHJpbmcpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdHNJblNjcmlwdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBIb3cgdG8gdmVyaWZ5IExvY2FsZURhdGEuRVNfQVVYSUxJQVJZID8/PworICAgICAgICAgICAgICAgICAgICAgICAgaWYoZXhpc3RzSW5TY3JpcHQgPT0gZmFsc2UgJiYgaCA9PSAwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXhlbXBsYXJTZXQgY29udGFpbm1lbnQgZmFpbGVkIGZvciBsb2NhbGUsb3B0aW9uLHR5cGUgOiAiKyBsb2NhbGUgKyAiLCAiICsgb3B0aW9uICsgIiwgIiArIHR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvY2FsZS50b1N0cmluZygpLmluZGV4T2YoKCJpbiIpKTwwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRDb2RlIHJldHVybmVkIG51bGwgZm9yIGxvY2FsZSxvcHRpb24sdHlwZSA6ICIrIGxvY2FsZSArICIsICIgKyBvcHRpb24gKyAiLCAiICsgdHlwZSk7IAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUaGlzIGlzIGV4cGVuc2l2ZSwgc28gb25seSBkbyBpdCBpZiBpdCB3aWxsIGJlIHZpc2libGUKKyAgICAgICAgICAgIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihFU19TVEFOREFSRCkiICsgZXhlbXBsYXJTZXRzWzBdKTsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUudG9TdHJpbmcoKSArICIgZXhlbXBsYXIoRVNfQVVYSUxJQVJZKSAiICsgZXhlbXBsYXJTZXRzWzFdKTsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUudG9TdHJpbmcoKSArICIgZXhlbXBsYXIoY2FzZS1mb2xkZWQsRVNfU1RBTkRBUkQpICIgKyBleGVtcGxhclNldHNbMl0pOworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihjYXNlLWZvbGRlZCxFU19BVVhJTElBUlkpICIgKyBleGVtcGxhclNldHNbM10pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZShsb2NhbGUudG9TdHJpbmcoKSArICIgY2FzZS1mb2xkZWQgaXMgYSBzdXBlcnNldCIsCisgICAgICAgICAgICAgICAgICAgICAgIGV4ZW1wbGFyU2V0c1syXS5jb250YWluc0FsbChleGVtcGxhclNldHNbMF0pKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUobG9jYWxlLnRvU3RyaW5nKCkgKyAiIGNhc2UtZm9sZGVkIGlzIGEgc3VwZXJzZXQiLAorICAgICAgICAgICAgICAgICAgICBleGVtcGxhclNldHNbM10uY29udGFpbnNBbGwoZXhlbXBsYXJTZXRzWzFdKSk7CisgICAgICAgICAgICBpZiAoZXhlbXBsYXJTZXRzWzJdLmVxdWFscyhleGVtcGxhclNldHNbMF0pKSB7CisgICAgICAgICAgICAgICAgKytlcXVhbENvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGV4ZW1wbGFyU2V0c1szXS5lcXVhbHMoZXhlbXBsYXJTZXRzWzFdKSkgeworICAgICAgICAgICAgICAgICsrZXF1YWxDb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBOb3RlOiBUaGUgY2FzZS1mb2xkZWQgc2V0IHNob3VsZCBzb21ldGltZXMgYmUgYSBzdHJpY3Qgc3VwZXJzZXQKKyAgICAgICAgLy8gYW5kIHNvbWV0aW1lcyBiZSBlcXVhbC4KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiY2FzZS1mb2xkZWQgaXMgc29tZXRpbWVzIGEgc3RyaWN0IHN1cGVyc2V0LCBhbmQgc29tZXRpbWVzIGVxdWFsIiwKKyAgICAgICAgICAgICAgICAgICBlcXVhbENvdW50ID4gMCAmJiBlcXVhbENvdW50IDwgYXZhaWxhYmxlTG9jYWxlcy5sZW5ndGggKiAyKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIExvY2FsZURhdGEgbGQgPSBMb2NhbGVEYXRhLmdldEluc3RhbmNlKCk7CisgICAgICAgIGJvb2xlYW4gdCA9IGxkLmdldE5vU3Vic3RpdHV0ZSgpOworICAgICAgICBsZC5zZXROb1N1YnN0aXR1dGUodCk7CisgICAgICAgIGFzc2VydEVxdWFscygiTG9jYWxlRGF0YSBnZXQvc2V0IE5vU3Vic3RpdHV0ZSIsCisgICAgICAgICAgICAgICAgdCwKKyAgICAgICAgICAgICAgICBsZC5nZXROb1N1YnN0aXR1dGUoKSk7CisgICAgCisgICAgICAgIGxvZ2xuKGxkLmdldERlbGltaXRlcihMb2NhbGVEYXRhLlFVT1RBVElPTl9TVEFSVCkpOworICAgICAgICBsb2dsbihsZC5nZXREZWxpbWl0ZXIoTG9jYWxlRGF0YS5RVU9UQVRJT05fRU5EKSk7CisgICAgICAgIGxvZ2xuKGxkLmdldERlbGltaXRlcihMb2NhbGVEYXRhLkFMVF9RVU9UQVRJT05fU1RBUlQpKTsKKyAgICAgICAgbG9nbG4obGQuZ2V0RGVsaW1pdGVyKExvY2FsZURhdGEuQUxUX1FVT1RBVElPTl9FTkQpKTsgICAgCQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2thYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NrYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMzU5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NrYWJsZS5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCisvKioKKyAqIFByb3ZpZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIGZvciBjb250cm9sbGluZyBhY2Nlc3MsIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQgYSBjbGFzcyBiZSBpbW11dGFibGUuCisgKiBPbmNlIGxvY2tlZCwgYW4gb2JqZWN0IGNhbiBuZXZlciBiZSB1bmxvY2tlZCwgc28gaXQgaXMgdGhyZWFkLXNhZmUgZnJvbSB0aGF0IHBvaW50IG9ud2FyZC4KKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBib3RoIG1ldGhvZHMgbXVzdCBiZSBzeW5jaHJvbml6ZWQuCisgKiBPbmNlIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkLCBpdCBtdXN0IGd1YXJhbnRlZSB0aGF0IG5vIGNoYW5nZXMgY2FuIGJlIG1hZGUgdG8gaXQuCisgKiBBbnkgYXR0ZW1wdCB0byBhbHRlciBpdCBtdXN0IHJhaXNlIGFuIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGV4Y2VwdGlvbi4KKyAqIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHRoZSBvYmplY3QgcmV0dXJucyBpbnRlcm5hbCBvYmplY3RzLAorICogb3IgaWYgYW55b25lIGhhcyByZWZlcmVuY2VzIHRvIHRob3NlIGludGVybmFsIG9iamVjdHMsIHRoYXQgdGhvc2UgaW50ZXJuYWwgb2JqZWN0cyBtdXN0IGVpdGhlciBiZSBpbW11dGFibGUsCisgKiBvciBtdXN0IGFsc28gcmFpc2UgZXhjZXB0aW9ucyBpZiBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlbSBpcyBtYWRlLiBPZiBjb3Vyc2UsIHRoZSBvYmplY3QgY2FuIHJldHVybiBjbG9uZXMKKyAqIG9mIGludGVybmFsIG9iamVjdHMsIHNpbmNlIHRob3NlIGFyZSBzYWZlLiAqIEBhdXRob3IgZGF2aXMKKyAqLworcHVibGljIGludGVyZmFjZSBMb2NrYWJsZSBleHRlbmRzIENsb25lYWJsZSB7CisJLyoqCisJICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkIG9yIG5vdC4KKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0xvY2tlZCgpOworCS8qKgorCSAqIExvY2tzIHRoZSBvYmplY3QuCisJICogQHJldHVybiB0aGUgb2JqZWN0IGl0c2VsZi4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGxvY2soKTsKKwkvKioKKwkgKiBQcm92aWRlcyBmb3IgdGhlIGNsb25lIG9wZXJhdGlvbi4gQW55IGNsb25lIGlzIGluaXRpYWxseSB1bmxvY2tlZC4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGNsb25lKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUGljay5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUGljay5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNWZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9QaWNrLmphdmEKQEAgLTAsMCArMSw3OTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworCithYnN0cmFjdCBwdWJsaWMgY2xhc3MgUGljayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIC8vIGZvciB1c2luZyB0byBnZXQgc3RyaW5ncworICAgIAorICAgIHN0YXRpYyBjbGFzcyBUYXJnZXQgeworICAgICAgICBwcml2YXRlIFBpY2sgcGljazsKKyAgICAgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOworICAgICAgICBwcml2YXRlIFF1b3RlciBxdW90ZXI7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFRhcmdldCBtYWtlKFBpY2sgcGljaywgUmFuZG9tIHJhbmRvbSwgUXVvdGVyIHF1b3RlcikgeworICAgICAgICAgICAgVGFyZ2V0IHJlc3VsdCA9IG5ldyBUYXJnZXQoKTsKKyAgICAgICAgICAgIHJlc3VsdC5waWNrID0gcGljazsKKyAgICAgICAgICAgIHJlc3VsdC5yYW5kb20gPSByYW5kb207CisgICAgICAgICAgICByZXN1bHQucXVvdGVyID0gcXVvdGVyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIG5leHQoKSB7CisgICAgICAgICAgICBxdW90ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIHBpY2suYWRkVG8odGhpcyk7CisgICAgICAgICAgICByZXR1cm4gZ2V0KCk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldCgpIHsKKyAgICAgICAgICAgIHJldHVybiBxdW90ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIHZvaWQgY29weVN0YXRlKFRhcmdldCBvdGhlcikgeworICAgICAgICAgICAgcmFuZG9tID0gb3RoZXIucmFuZG9tOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgICAgIHF1b3Rlci5jbGVhcigpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBxdW90ZXIubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgYXBwZW5kKGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgICAgIHF1b3Rlci5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IGFwcGVuZChTdHJpbmcgcykgeworICAgICAgICAgICAgcXVvdGVyLmFwcGVuZChzKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIC8vIG11c3QgcmV0dXJuIHZhbHVlIGJldHdlZW4gMCAoaW5jKSBhbmQgMSAoZXhjKQorICAgICAgICBwcml2YXRlIGRvdWJsZSBuZXh0RG91YmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmRvbS5uZXh0RG91YmxlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBmb3IgQnVpbGRpbmcKKyAgICAKKyAgICBwdWJsaWMgUGljayByZXBsYWNlKFN0cmluZyB0b1JlcGxhY2UsIFBpY2sgcmVwbGFjZW1lbnQpIHsKKyAgICAgICBSZXBsYWNlciB2aXNpdG9yID0gbmV3IFJlcGxhY2VyKHRvUmVwbGFjZSwgcmVwbGFjZW1lbnQpOworICAgICAgIHJldHVybiB2aXNpdCh2aXNpdG9yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUGljayBuYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgbWFrZVNlcXVlbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IFNlcXVlbmNlKCk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBtYWtlQWx0ZXJuYXRpb24oKSB7CisgICAgICAgIHJldHVybiBuZXcgQWx0ZXJuYXRpb24oKTsKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgYW5kKE9iamVjdCBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UoKS5hbmQyKGl0ZW0pOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgYW5kKE9iamVjdFtdIGl0ZW1zKSB7CisgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UoKS5hbmQyKGl0ZW1zKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrLkFsdGVybmF0aW9uIG9yKGludCBpdGVtV2VpZ2h0LCBPYmplY3QgaXRlbSkgeworICAgICAgICByZXR1cm4gbmV3IEFsdGVybmF0aW9uKCkub3IyKGl0ZW1XZWlnaHQsIGl0ZW0pOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2suQWx0ZXJuYXRpb24gb3IoT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMigxLCBpdGVtcyk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBvcihpbnQgaXRlbVdlaWdodCwgT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMihpdGVtV2VpZ2h0LCBpdGVtcyk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBvcihpbnRbXSBpdGVtV2VpZ2h0cywgT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMihpdGVtV2VpZ2h0cywgaXRlbXMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgbWF5YmUoaW50IHBlcmNlbnQsIE9iamVjdCBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVwZWF0KDAsIDEsIG5ldyBpbnRbXXsxMDAtcGVyY2VudCwgcGVyY2VudH0sIGl0ZW0pOworICAgICAgICAvL3JldHVybiBQaWNrLm9yKDEuMC1wZXJjZW50LCBOT1RISU5HKS5vcjIocGVyY2VudCwgaXRlbSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljayByZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludCBpdGVtV2VpZ2h0cywgT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBlYXQobWluQ291bnQsIG1heENvdW50LCBpdGVtV2VpZ2h0cywgaXRlbSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljayBjb2RlUG9pbnQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IENvZGVQb2ludChuZXcgVW5pY29kZVNldChzb3VyY2UpKTsKKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgcmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBpbnRbXSBpdGVtV2VpZ2h0cywgUGljayBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVwZWF0KG1pbkNvdW50LCBtYXhDb3VudCwgaXRlbVdlaWdodHMsIGl0ZW0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgY29kZVBvaW50KFVuaWNvZGVTZXQgc291cmNlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ29kZVBvaW50KHNvdXJjZSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljayBzdHJpbmcoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IExpdGVyYWwoc291cmNlKTsKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgdW5xdW90ZWQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IExpdGVyYWwoc291cmNlKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrIHN0cmluZyhpbnQgbWluTGVuZ3RoLCBpbnQgbWF4TGVuZ3RoLCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNb3JwaChpdGVtLCBtaW5MZW5ndGgsIG1heExlbmd0aCk7CisgICAgfQorICAgICovCisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2Vlbik7CisgICAgLy8gSW50ZXJuYWxzCisgICAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIG5hbWU7CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gbWF0Y2goU3RyaW5nIGlucHV0LCBQb3NpdGlvbiBwKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNlcXVlbmNlIGV4dGVuZHMgTGlzdFBpY2sgeworICAgICAgICBwdWJsaWMgU2VxdWVuY2UgYW5kMiAoUGljayBpdGVtKSB7CisgICAgICAgICAgICBhZGRJbnRlcm5hbChuZXcgUGlja1tdIHtpdGVtfSk7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcGVyZgorICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTZXF1ZW5jZSBhbmQyIChQaWNrW10gaXRlbXMpIHsKKyAgICAgICAgICAgIGFkZEludGVybmFsKGl0ZW1zKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaXRlbXNbaV0uYWRkVG8odGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0ID0gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJTRVEoIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQgKz0gIiwgIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gaXRlbXNbaV0uZ2V0SW50ZXJuYWwoZGVwdGgrMSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ICs9ICIpIjsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8ga2VlcCBwcml2YXRlCisgICAgICAgIHByaXZhdGUgU2VxdWVuY2UoKSB7fQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBvcmlnaW5hbEluZGV4ID0gcC5pbmRleDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWl0ZW1zW2ldLm1hdGNoKGlucHV0LCBwKSkgeworICAgICAgICAgICAgICAgICAgICBwLmluZGV4ID0gb3JpZ2luYWxJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBjaGVja05hbWUoU3RyaW5nIG5hbWUsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICBpZiAobmFtZSA9PSBudWxsKSByZXR1cm4gIiI7CisgICAgICAgIGlmIChhbHJlYWR5U2Vlbi5jb250YWlucyhuYW1lKSkgcmV0dXJuIG5hbWU7CisgICAgICAgIGFscmVhZHlTZWVuLmFkZChuYW1lKTsKKyAgICAgICAgcmV0dXJuICJ7IiArIG5hbWUgKyAiPX0iOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQWx0ZXJuYXRpb24gZXh0ZW5kcyBMaXN0UGljayB7CisgICAgICAgIHByaXZhdGUgV2VpZ2h0ZWRJbmRleCB3ZWlnaHRlZEluZGV4ID0gbmV3IFdlaWdodGVkSW5kZXgoMCk7CisgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChQaWNrW10gbmV3SXRlbXMpIHsKKyAgICAgICAgICAgIHJldHVybiBvcjIoMSwgbmV3SXRlbXMpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBBbHRlcm5hdGlvbiBvcjIgKGludCBpdGVtV2VpZ2h0LCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHJldHVybiBvcjIoaXRlbVdlaWdodCwgbmV3IFBpY2tbXSB7aXRlbX0pOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHBlcmYKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChpbnQgaXRlbVdlaWdodCwgUGlja1tdIG5ld0l0ZW1zKSB7CisgICAgICAgICAgICBpbnRbXSBpdGVtV2VpZ2h0cyA9IG5ldyBpbnRbbmV3SXRlbXMubGVuZ3RoXTsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKGl0ZW1XZWlnaHRzLGl0ZW1XZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIG9yMihpdGVtV2VpZ2h0cywgbmV3SXRlbXMpOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHBlcmYKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChpbnRbXSBpdGVtV2VpZ2h0cywgUGlja1tdIG5ld0l0ZW1zKSB7CisgICAgICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoICE9IGl0ZW1XZWlnaHRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJvciBsZW5ndGhzIG11c3QgYmUgZXF1YWw6ICIgKyBuZXdJdGVtcy5sZW5ndGggKyAiICE9ICIgKyBpdGVtV2VpZ2h0cy5sZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAvLyBpbnQgbGFzdExlbiA9IHRoaXMuaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgYWRkSW50ZXJuYWwobmV3SXRlbXMpOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleC5hZGQoaXRlbVdlaWdodHMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIGl0ZW1zW3dlaWdodGVkSW5kZXgudG9JbmRleCh0YXJnZXQubmV4dERvdWJsZSgpKV0uYWRkVG8odGFyZ2V0KTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQgPSBpbmRlbnQoZGVwdGgpICsgcmVzdWx0ICsgIk9SKCI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0ICs9ICIsICI7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGl0ZW1zW2ldLmdldEludGVybmFsKGRlcHRoKzEsIGFscmVhZHlTZWVuKSArICIvIiArIHdlaWdodGVkSW5kZXgud2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKSI7CisgICAgICAgIH0KKyAgICAgICAgLy8ga2VlcCBwcml2YXRlCisgICAgICAgIHByaXZhdGUgQWx0ZXJuYXRpb24oKSB7fQorICAgICAgICAvLyB0YWtlIGZpcnN0IG1hdGNoaW5nIG9wdGlvbgorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0ZWRJbmRleC53ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuaXNGYWlsdXJlKHRoaXMsaSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5tYXRjaChpbnB1dCwgcCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIHAuc2V0RmFpbHVyZSh0aGlzLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaW5kZW50KGludCBkZXB0aCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIlxyXG4iOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlcHRoOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgUmVwZWF0IGV4dGVuZHMgSXRlbVBpY2sgeworICAgICAgICBXZWlnaHRlZEluZGV4IHdlaWdodGVkSW5kZXg7CisgICAgICAgIGludCBtaW5Db3VudCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBSZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludFtdIGl0ZW1XZWlnaHRzLCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHN1cGVyKGl0ZW0pOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleCA9IG5ldyBXZWlnaHRlZEluZGV4KG1pbkNvdW50KS5hZGQobWF4Q291bnQtbWluQ291bnQrMSwgaXRlbVdlaWdodHMpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBpbnQgaXRlbVdlaWdodCwgUGljayBpdGVtKSB7CisgICAgICAgICAgICBzdXBlcihpdGVtKTsKKyAgICAgICAgICAgIHdlaWdodGVkSW5kZXggPSBuZXcgV2VpZ2h0ZWRJbmRleChtaW5Db3VudCkuYWRkKG1heENvdW50LW1pbkNvdW50KzEsIGl0ZW1XZWlnaHQpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIHByaXZhdGUgUmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBPYmplY3QgaXRlbSkgeworICAgICAgICAgICAgdGhpcy5pdGVtID0gY29udmVydChpdGVtKTsKKyAgICAgICAgICAgIHdlaWdodGVkSW5kZXggPSBuZXcgV2VpZ2h0ZWRJbmRleChtaW5Db3VudCkuYWRkKG1heENvdW50LW1pbkNvdW50KzEsIDEpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIC8vaW50IGNvdW50IDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSB3ZWlnaHRlZEluZGV4LnRvSW5kZXgodGFyZ2V0Lm5leHREb3VibGUoKSk7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpdGVtLmFkZFRvKHRhcmdldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGNoZWNrTmFtZShuYW1lLCBhbHJlYWR5U2Vlbik7CisgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0c1dpdGgoIiQiKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IGluZGVudChkZXB0aCkgKyByZXN1bHQgKyAiUkVQRUFUKCIgKyB3ZWlnaHRlZEluZGV4CisgICAgICAgICAgICArICI7ICIrIGl0ZW0uZ2V0SW50ZXJuYWwoZGVwdGgrMSwgYWxyZWFkeVNlZW4pIAorICAgICAgICAgICAgKyAiKSI7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBtYXRjaCBsb25nZXN0LCBlLmcuIHVwIHRvIGp1c3QgYmVmb3JlIGEgZmFpbHVyZQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSBwLmluZGV4OworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0ZWRJbmRleC53ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuaXNGYWlsdXJlKHRoaXMsaSkpIGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghaXRlbS5tYXRjaChpbnB1dCwgcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcC5zZXRGYWlsdXJlKHRoaXMsaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgYmVzdE1hdGNoID0gcC5pbmRleDsKKyAgICAgICAgICAgICAgICBjb3VudCsrOyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvdW50ID49IG1pbkNvdW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUT0RPIGZpeCBmYWlsdXJlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29kZVBvaW50IGV4dGVuZHMgRmluYWxQaWNrIHsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHNvdXJjZTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgQ29kZVBvaW50KFVuaWNvZGVTZXQgc291cmNlKSB7CisgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKHNvdXJjZS5jaGFyQXQocGljayh0YXJnZXQucmFuZG9tLDAsc291cmNlLnNpemUoKS0xKSkpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBzLCBQb3NpdGlvbiBwKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQocywgcC5pbmRleCk7CisgICAgICAgICAgICBpZiAoc291cmNlLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIHAuaW5kZXggKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAuc2V0TWF4KCJjb2RlUG9pbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIE1vcnBoIGV4dGVuZHMgSXRlbVBpY2sgeworICAgICAgICBNb3JwaChQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHN1cGVyKGl0ZW0pOworICAgICAgICB9CisgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGxhc3RWYWx1ZSA9IG51bGw7CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IGFkZEJ1ZmZlciA9IFRhcmdldC5tYWtlKHRoaXMsIG51bGwsIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbWVyZ2VCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1BZX05FVyA9IDAsIENPUFlfQk9USCA9IDEsIENPUFlfTEFTVCA9IDMsIFNLSVAgPSA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVBU1RfU0tJUCA9IDQ7CisgICAgICAgIC8vIGdpdmUgd2VpZ2h0cyB0byB0aGUgYWJvdmUuIG1ha2Ugc3VyZSB3ZSBkZWxldGUgYWJvdXQgdGhlIHNhbWUgYXMgd2UgaW5zZXJ0CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFdlaWdodGVkSW5kZXggY2hvaWNlID0gbmV3IFdlaWdodGVkSW5kZXgoMCkKKyAgICAgICAgICAgIC5hZGQobmV3IGludFtdIHsxMCwgMTAsIDEwMCwgMTB9KTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIC8vIGdldCBjb250ZW50cyBpbnRvIHNlcGFyYXRlIGJ1ZmZlcgorICAgICAgICAgICAgYWRkQnVmZmVyLmNvcHlTdGF0ZSh0YXJnZXQpOworICAgICAgICAgICAgYWRkQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICBpdGVtLmFkZFRvKGFkZEJ1ZmZlcik7CisgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSBhZGRCdWZmZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiT2xkOiAiICsgbGFzdFZhbHVlICsgIiwgTmV3OiIgKyBuZXdWYWx1ZSk7CisKKyAgICAgICAgICAgIC8vIGlmIG5vdCBmaXJzdCBvbmUsIG1lcmdlIHdpdGggb2xkCisgICAgICAgICAgICBpZiAobGFzdFZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtZXJnZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaW50IGxhc3RJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgaW50IG5ld0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV3IGxlbmd0aCBpcyBhIHJhbmRvbSB2YWx1ZSBiZXR3ZWVuIG9sZCBhbmQgbmV3LgorICAgICAgICAgICAgICAgIGludCBuZXdMZW5MaW1pdCA9IChpbnQpIHBpY2sodGFyZ2V0LnJhbmRvbSwgbGFzdFZhbHVlLmxlbmd0aCgpLCBuZXdWYWx1ZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKG1lcmdlQnVmZmVyLmxlbmd0aCgpIDwgbmV3TGVuTGltaXQKKyAgICAgICAgICAgICAgICAgICYmIG5ld0luZGV4IDwgbmV3VmFsdWUubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICYmIGxhc3RJbmRleCA8IGxhc3RWYWx1ZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IGNob2ljZS50b0luZGV4KHRhcmdldC5uZXh0RG91YmxlKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBDT1BZX05FVyB8fCBjID09IENPUFlfQk9USCB8fCBjID09IFNLSVApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gZ2V0Q2hhcihuZXdWYWx1ZSwgbmV3SW5kZXgsIG1lcmdlQnVmZmVyLCBjIDwgTEVBU1RfU0tJUCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VCdWZmZXIubGVuZ3RoKCkgPj0gbmV3TGVuTGltaXQpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IENPUFlfTEFTVCB8fCBjID09IENPUFlfQk9USCB8fCBjID09IFNLSVApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IGdldENoYXIobGFzdFZhbHVlLCBsYXN0SW5kZXgsIG1lcmdlQnVmZmVyLCBjIDwgTEVBU1RfU0tJUCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBtZXJnZUJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFZhbHVlID0gbmV3VmFsdWU7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKG5ld1ZhbHVlKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJSZXN1bHQ6ICIgKyBuZXdWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIGluZGVudChkZXB0aCkgKyByZXN1bHQgKyAiTU9SUEgoIgorICAgICAgICAgICAgICAgICsgaXRlbS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2VlbikKKyAgICAgICAgICAgICAgICArICIpIjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBQaWNrI21hdGNoKGphdmEubGFuZy5TdHJpbmcsIFBpY2suUG9zaXRpb24pCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBBZGQgY2hhcmFjdGVyIGlmIHdlIGNhbgorICAgICAqLworICAgIHN0YXRpYyBpbnQgZ2V0Q2hhcihTdHJpbmcgbmV3VmFsdWUsIGludCBuZXdJbmRleCwgU3RyaW5nQnVmZmVyIG1lcmdlQnVmZmVyLCBib29sZWFuIGNvcHkpIHsKKyAgICAgICAgaWYgKG5ld0luZGV4ID49IG5ld1ZhbHVlLmxlbmd0aCgpKSByZXR1cm4gbmV3SW5kZXg7CisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChuZXdWYWx1ZSxuZXdJbmRleCk7CisgICAgICAgIGlmIChjb3B5KSBVVEYxNi5hcHBlbmQobWVyZ2VCdWZmZXIsIGNwKTsKKyAgICAgICAgcmV0dXJuIG5ld0luZGV4ICsgVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICB9CisKKyAgICAvKiAgIAorICAgICAgICAgICAgLy8gcXVvdGVkIGFkZAorICAgICAgICAgICAgYXBwZW5kUXVvdGVkKHRhcmdldCwgYWRkQnVmZmVyLnRvU3RyaW5nKCksIHF1b3RlQnVmZmVyKTsKKyAgICAgICAgICAgIC8vIGZpeCBidWZmZXJzCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3dhcFRlbXAgPSBhZGRCdWZmZXI7CisgICAgICAgICAgICBhZGRCdWZmZXIgPSBzb3VyY2U7CisgICAgICAgICAgICBzb3VyY2UgPSBzd2FwVGVtcDsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCisKKyAgICBzdGF0aWMgY2xhc3MgUXVvdGUgZXh0ZW5kcyBJdGVtUGljayB7CisgICAgICAgIFF1b3RlKFBpY2sgaXRlbSkgeworICAgICAgICAgICAgc3VwZXIoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0LnF1b3Rlci5zZXRRdW90aW5nKHRydWUpOworICAgICAgICAgICAgaXRlbS5hZGRUbyh0YXJnZXQpOworICAgICAgICAgICAgdGFyZ2V0LnF1b3Rlci5zZXRRdW90aW5nKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbWF0Y2goU3RyaW5nIHMsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJRVU9URSgiICsgaXRlbS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2VlbikKKyAgICAgICAgICAgICAgICArICIpIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMaXRlcmFsIGV4dGVuZHMgRmluYWxQaWNrIHsKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOyAgICAgCisgICAgICAgIH0gICAgICAgIAorICAgICAgICBwcml2YXRlIExpdGVyYWwoU3RyaW5nIHNvdXJjZSkgeyAgCisgICAgICAgICAgICB0aGlzLm5hbWUgPSBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBsZW4gPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGlucHV0LnJlZ2lvbk1hdGNoZXMocC5pbmRleCwgbmFtZSwgMCwgbGVuKSkgeworICAgICAgICAgICAgICAgIHAuaW5kZXggKz0gbGVuOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcC5zZXRNYXgoImxpdGVyYWwiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICByZXR1cm4gIiciICsgbmFtZSArICInIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFBvc2l0aW9uIHsKKyAgICAgICAgcHVibGljIEFycmF5TGlzdCBmYWlsdXJlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHVibGljIGludCBpbmRleDsKKyAgICAgICAgcHVibGljIGludCBtYXhJbnQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgbWF4VHlwZTsKKyAgICAgICAgcHVibGljIHZvaWQgc2V0TWF4KFN0cmluZyB0eXBlKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gbWF4SW50KSB7CisgICAgICAgICAgICAgICAgbWF4VHlwZSA9IHR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAiaW5kZXg7ICIgKyBpbmRleAorICAgICAgICAgICAgICAgICsgIiwgbWF4SW50OiIgKyBtYXhJbnQKKyAgICAgICAgICAgICAgICArICIsIG1heFR5cGU6ICIgKyBtYXhUeXBlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBCQUQgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBHT09EID0gbmV3IE9iamVjdCgpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNGYWlsdXJlKFBpY2sgcGljaywgaW50IGl0ZW0pIHsKKyAgICAgICAgICAgIEFycmF5TGlzdCB2YWwgPSAoQXJyYXlMaXN0KWZhaWx1cmVzLmdldChpbmRleCk7CisgICAgICAgICAgICBpZiAodmFsID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFNldCBzZXQgPSAoU2V0KXZhbC5nZXQoaXRlbSk7CisgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAhc2V0LmNvbnRhaW5zKHBpY2spOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZhaWx1cmUoUGljayBwaWNrLCBpbnQgaXRlbSkgeworICAgICAgICAgICAgQXJyYXlMaXN0IHZhbCA9IChBcnJheUxpc3QpZmFpbHVyZXMuZ2V0KGluZGV4KTsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZhbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBmYWlsdXJlcy5zZXQoaW5kZXgsIHZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTZXQgc2V0ID0gKFNldCl2YWwuZ2V0KGl0ZW0pOworICAgICAgICAgICAgaWYgKHNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICB2YWwuc2V0KGl0ZW0sIHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXQuYWRkKHBpY2spOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBQaWNrIE5PVEhJTkcgPSBuZXcgTm90aGluZygpOworICAgIAorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTm90aGluZyBleHRlbmRzIEZpbmFsUGljayB7CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHt9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgcmV0dXJuIGluZGVudChkZXB0aCkgKyAiXHUwMEY4IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIAorICAgIC8vIGludGVybWVkaWF0ZXMKKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgVmlzaXRvciB7CisgICAgICAgIFNldCBhbHJlYWR5ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgLy8gTm90ZTogZWFjaCB2aXNpdG9yIHNob3VsZCByZXR1cm4gdGhlIFBpY2sgdGhhdCB3aWxsIHJlcGxhY2UgYSAob3IgYSBpdHNlbGYpCisgICAgICAgIGFic3RyYWN0IFBpY2sgaGFuZGxlKFBpY2sgYSk7CisgICAgICAgIGJvb2xlYW4gYWxyZWFkeUVudGVyZWQoUGljayBpdGVtKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IGFscmVhZHkuY29udGFpbnMoaXRlbSk7CisgICAgICAgICAgICBhbHJlYWR5LmFkZChpdGVtKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGFscmVhZHkuY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpOworICAgIAorICAgIHN0YXRpYyBjbGFzcyBSZXBsYWNlciBleHRlbmRzIFZpc2l0b3IgeworICAgICAgICBTdHJpbmcgdG9SZXBsYWNlOworICAgICAgICBQaWNrIHJlcGxhY2VtZW50OworICAgICAgICBSZXBsYWNlcihTdHJpbmcgdG9SZXBsYWNlLCBQaWNrIHJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICB0aGlzLnRvUmVwbGFjZSA9IHRvUmVwbGFjZTsKKyAgICAgICAgICAgIHRoaXMucmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUGljayBoYW5kbGUoUGljayBhKSB7CisgICAgICAgICAgICBpZiAodG9SZXBsYWNlLmVxdWFscyhhLm5hbWUpKSB7CisgICAgICAgICAgICAgICAgYSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgIH0KKyAgICB9CisKKyAgICBhYnN0cmFjdCBwcml2YXRlIHN0YXRpYyBjbGFzcyBGaW5hbFBpY2sgZXh0ZW5kcyBQaWNrIHsKKyAgICAgICAgcHVibGljIFBpY2sgdmlzaXQoVmlzaXRvciB2aXNpdG9yKSB7CisgICAgICAgICAgICByZXR1cm4gdmlzaXRvci5oYW5kbGUodGhpcyk7CisgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBJdGVtUGljayBleHRlbmRzIFBpY2sgeworICAgICAgIHByb3RlY3RlZCBQaWNrIGl0ZW07CisgICAgICAgCisgICAgICAgSXRlbVBpY2sgKFBpY2sgaXRlbSkgeworICAgICAgICAgICB0aGlzLml0ZW0gPSBpdGVtOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBwdWJsaWMgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpIHsKKyAgICAgICAgICAgUGljayByZXN1bHQgPSB2aXNpdG9yLmhhbmRsZSh0aGlzKTsKKyAgICAgICAgICAgaWYgKHZpc2l0b3IuYWxyZWFkeUVudGVyZWQodGhpcykpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpIGl0ZW0gPSBpdGVtLnZpc2l0KHZpc2l0b3IpOworICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICB9CisgICAKKyAgICBwcml2YXRlIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBMaXN0UGljayBleHRlbmRzIFBpY2sgeworICAgICAgICBwcm90ZWN0ZWQgUGlja1tdIGl0ZW1zID0gbmV3IFBpY2tbMF07CisgICAgICAgIAorICAgICAgICBQaWNrIHNpbXBsaWZ5KCkgeworICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDEpIHJldHVybiB0aGlzOworICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PSAxKSByZXR1cm4gaXRlbXNbMF07CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHNpemUoKSB7CisgICAgICAgICAgICByZXR1cm4gaXRlbXMubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgUGljayBnZXRMYXN0KCkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW1zW2l0ZW1zLmxlbmd0aC0xXTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0TGFzdChQaWNrIG5ld09uZSkgeworICAgICAgICAgICAgaXRlbXNbaXRlbXMubGVuZ3RoLTFdID0gbmV3T25lOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkSW50ZXJuYWwoUGlja1tdIG9ianMpIHsKKyAgICAgICAgICAgIGludCBsYXN0TGVuID0gaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgaXRlbXMgPSByZWFsbG9jKGl0ZW1zLCBpdGVtcy5sZW5ndGggKyBvYmpzLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpdGVtc1tsYXN0TGVuICsgaV0gPSBvYmpzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFBpY2sgdmlzaXQoVmlzaXRvciB2aXNpdG9yKSB7CisgICAgICAgICAgICBQaWNrIHJlc3VsdCA9IHZpc2l0b3IuaGFuZGxlKHRoaXMpOworICAgICAgICAgICAgaWYgKHZpc2l0b3IuYWxyZWFkeUVudGVyZWQodGhpcykpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaXRlbXNbaV0gPSBpdGVtc1tpXS52aXNpdCh2aXNpdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2ltcGxlIGNsYXNzIHRvIGRpc3RyaWJ1dGUgYSBudW1iZXIgYmV0d2VlbiAwIChpbmNsdXNpdmUpIGFuZCAxIChleGNsdXNpdmUpIGFtb25nCisgICAgICogYSBudW1iZXIgb2YgaW5kaWNlcywgd2hlcmUgZWFjaCBpbmRleCBpcyB3ZWlnaHRlZC4KKyAgICAgKiBJdGVtIHdlaWdodHMgbWF5IGJlIHplcm8sIGJ1dCBjYW5ub3QgYmUgbmVnYXRpdmUuCisgICAgICogQGF1dGhvciBEYXZpcworICAgICAqLworICAgIC8vIEFzIGluIG90aGVyIGNhc2UsIHdlIHVzZSBhbiBhcnJheSBmb3IgcnVudGltZSBzcGVlZDsgZG9uJ3QgY2FyZSBhYm91dCBidWlsZHNwZWVkLgorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgV2VpZ2h0ZWRJbmRleCB7CisgICAgICAgIHByaXZhdGUgaW50W10gd2VpZ2h0cyA9IG5ldyBpbnRbMF07CisgICAgICAgIHByaXZhdGUgaW50IG1pbkNvdW50ID0gMDsKKyAgICAgICAgcHJpdmF0ZSBkb3VibGUgdG90YWw7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgV2VpZ2h0ZWRJbmRleChpbnQgbWluQ291bnQpIHsKKyAgICAgICAgICAgIHRoaXMubWluQ291bnQgPSBtaW5Db3VudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFdlaWdodGVkSW5kZXggYWRkKGludCBjb3VudCwgaW50IGl0ZW1XZWlnaHRzKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50W10gbmV3V2VpZ2h0cyA9IG5ldyBpbnRbY291bnRdOworICAgICAgICAgICAgICAgIGlmIChpdGVtV2VpZ2h0cyA8IDEpIGl0ZW1XZWlnaHRzID0gMTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbChuZXdXZWlnaHRzLCAwLCBjb3VudCwgaXRlbVdlaWdodHMpOworICAgICAgICAgICAgICAgIGFkZCgxLCBuZXdXZWlnaHRzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBXZWlnaHRlZEluZGV4IGFkZChpbnRbXSBuZXdXZWlnaHRzKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkKG5ld1dlaWdodHMubGVuZ3RoLCBuZXdXZWlnaHRzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFdlaWdodGVkSW5kZXggYWRkKGludCBtYXhDb3VudCwgaW50W10gbmV3V2VpZ2h0cykgeworICAgICAgICAgICAgaWYgKG5ld1dlaWdodHMgPT0gbnVsbCkgbmV3V2VpZ2h0cyA9IG5ldyBpbnRbXXsxfTsKKyAgICAgICAgICAgIGludCBvbGRMZW4gPSB3ZWlnaHRzLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChtYXhDb3VudCA8IG5ld1dlaWdodHMubGVuZ3RoKSBtYXhDb3VudCA9IG5ld1dlaWdodHMubGVuZ3RoOworICAgICAgICAgICAgd2VpZ2h0cyA9IChpbnRbXSkgcmVhbGxvYyh3ZWlnaHRzLCB3ZWlnaHRzLmxlbmd0aCArIG1heENvdW50KTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobmV3V2VpZ2h0cywgMCwgd2VpZ2h0cywgb2xkTGVuLCBuZXdXZWlnaHRzLmxlbmd0aCk7CisgICAgICAgICAgICBpbnQgbGFzdFdlaWdodCA9IHdlaWdodHNbb2xkTGVuICsgbmV3V2VpZ2h0cy5sZW5ndGgtMV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkTGVuICsgbmV3V2VpZ2h0cy5sZW5ndGg7IGkgPCBtYXhDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0c1tpXSA9IGxhc3RXZWlnaHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3RhbCA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAod2VpZ2h0c1tpXSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm9ubHkgcG9zaXRpdmUgd2VpZ2h0czogIiArIGkpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVE9ETywgbWFrZSB0aGlzIG1vcmUgZWZmaWNpZW50CisgICAgICAgIHB1YmxpYyBpbnQgdG9JbmRleChkb3VibGUgemVyb1RvT25lKSB7CisgICAgICAgICAgICBkb3VibGUgd2VpZ2h0ID0gemVyb1RvT25lKnRvdGFsOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd2VpZ2h0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHdlaWdodCAtPSB3ZWlnaHRzW2ldOworICAgICAgICAgICAgICAgIGlmICh3ZWlnaHQgPD0gMCkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gaSArIG1pbkNvdW50OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pbkNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpICE9IDApIHJlc3VsdCArPSAiLCI7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIwIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0ICs9ICIsIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBQaWNrIGNvbnZlcnQoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgUGljaykgcmV0dXJuIChQaWNrKW9iajsKKyAgICAgICAgcmV0dXJuIG5ldyBMaXRlcmFsKG9iai50b1N0cmluZygpLCBmYWxzZSk7CisgICAgfQorICAgICovCisgICAgLy8gVXNlZnVsIHN0YXRpY3MKKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBwaWNrKFJhbmRvbSByYW5kb20sIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICByZXR1cm4gc3RhcnQgKyAoaW50KShyYW5kb20ubmV4dERvdWJsZSgpICogKGVuZCArIDEgLSBzdGFydCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGRvdWJsZSBwaWNrKFJhbmRvbSByYW5kb20sIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCkgeworICAgICAgICByZXR1cm4gc3RhcnQgKyAocmFuZG9tLm5leHREb3VibGUoKSAqIChlbmQgKyAxIC0gc3RhcnQpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBib29sZWFuIHBpY2soUmFuZG9tIHJhbmRvbSwgZG91YmxlIHBlcmNlbnQpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbS5uZXh0RG91YmxlKCkgPD0gcGVyY2VudDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgcGljayhSYW5kb20gcmFuZG9tLCBVbmljb2RlU2V0IHMpIHsKKyAgICAgICAgcmV0dXJuIHMuY2hhckF0KHBpY2socmFuZG9tLCAwLHMuc2l6ZSgpLTEpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgcGljayhSYW5kb20gcmFuZG9tLCBTdHJpbmdbXSBzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZVtwaWNrKHJhbmRvbSwgMCwgc291cmNlLmxlbmd0aC0xKV07CisgICAgfQorICAgIAorICAgIC8vIHRoZXNlIHV0aWxpdGllcyByZWFsbHkgb3VnaHQgdG8gYmUgaW4gSmF2YQorICAgIAorcHVibGljIHN0YXRpYyBkb3VibGVbXSByZWFsbG9jKGRvdWJsZVtdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICBkb3VibGVbXSB0ZW1wID0gbmV3IGRvdWJsZVtuZXdTaXplXTsKKyAgICBpZiAobmV3U2l6ZSA+IHNvdXJjZS5sZW5ndGgpIG5ld1NpemUgPSBzb3VyY2UubGVuZ3RoOworICAgIGlmIChuZXdTaXplICE9IDApIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLDAsdGVtcCwwLG5ld1NpemUpOworICAgIHJldHVybiB0ZW1wOworfQorICAgIAorcHVibGljIHN0YXRpYyBpbnRbXSByZWFsbG9jKGludFtdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtuZXdTaXplXTsKKyAgICBpZiAobmV3U2l6ZSA+IHNvdXJjZS5sZW5ndGgpIG5ld1NpemUgPSBzb3VyY2UubGVuZ3RoOworICAgIGlmIChuZXdTaXplICE9IDApIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLDAsdGVtcCwwLG5ld1NpemUpOworICAgIHJldHVybiB0ZW1wOworfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgUGlja1tdIHJlYWxsb2MoUGlja1tdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICAgICAgUGlja1tdIHRlbXAgPSBuZXcgUGlja1tuZXdTaXplXTsKKyAgICAgICAgaWYgKG5ld1NpemUgPiBzb3VyY2UubGVuZ3RoKSBuZXdTaXplID0gc291cmNlLmxlbmd0aDsKKyAgICAgICAgaWYgKG5ld1NpemUgIT0gMCkgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsMCx0ZW1wLDAsbmV3U2l6ZSk7CisgICAgICAgIHJldHVybiB0ZW1wOworICAgIH0KKyAgICAKKyAgICAvLyB0ZXN0IHV0aWxpdGllcworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXBwZW5kKFN0cmluZ0J1ZmZlciB0YXJnZXQsIFN0cmluZyB0b0FkZCwgU3RyaW5nQnVmZmVyIHF1b3RlQnVmZmVyKSB7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHRhcmdldCwgKGludCktMSwgdHJ1ZSwgZmFsc2UsIHF1b3RlQnVmZmVyKTsgLy8gY2xvc2UgcHJldmlvdXMgcXVvdGUKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIHRvQWRkICsgIlwiIik7CisgICAgICAgIHRhcmdldC5hcHBlbmQodG9BZGQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXBwZW5kUXVvdGVkKFN0cmluZ0J1ZmZlciB0YXJnZXQsIFN0cmluZyB0b0FkZCwgU3RyaW5nQnVmZmVyIHF1b3RlQnVmZmVyKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcIiIgKyB0b0FkZCArICJcIiIpOworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZSh0YXJnZXQsIHRvQWRkLCBmYWxzZSwgZmFsc2UsIHF1b3RlQnVmZmVyKTsKKyAgICB9CisKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTWF0Y2hIYW5kbGVyIHsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGFuZGxlU3RyaW5nKFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0KTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGFuZGxlU2VxdWVuY2UoU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoYW5kbGVBbHRlcm5hdGlvbihTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCk7CisgICAgICAgICAgICAKKyAgICB9CisgICAgKi8KKyAgICAvKgorICAgIC8vIHJlZGlzdHJpYnV0ZXMgcmFuZG9tIHZhbHVlCisgICAgLy8gdmFsdWVzIGFyZSBzdGlsbCBiZXR3ZWVuIDAgYW5kIDEsIGJ1dCB3aXRoIGEgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbgorICAgIHB1YmxpYyBpbnRlcmZhY2UgU3ByZWFkIHsKKyAgICAgICAgcHVibGljIGRvdWJsZSBzcHJlYWQoZG91YmxlIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgLy8gZ2l2ZSB0aGUgd2VpZ2h0IGZvciB0aGUgaGlnaCBlbmQuCisgICAgLy8gdmFsdWVzIGFyZSBsaW5lYXJseSBzY2FsZWQgYWNjb3JkaW5nIHRvIHRoZSB3ZWlnaHQuCisgICAgc3RhdGljIHB1YmxpYyBjbGFzcyBTaW1wbGVTcHJlYWQgaW1wbGVtZW50cyBTcHJlYWQgeworICAgICAgICBzdGF0aWMgZmluYWwgU3ByZWFkIEZMQVQgPSBuZXcgU2ltcGxlU3ByZWFkKDEuMCk7CisgICAgICAgIGJvb2xlYW4gZmxhdCA9IGZhbHNlOworICAgICAgICBkb3VibGUgYWEsIGJiLCBjYzsKKyAgICAgICAgcHVibGljIFNpbXBsZVNwcmVhZChkb3VibGUgbWF4V2VpZ2h0KSB7ICAgCisgICAgICAgICAgICBpZiAobWF4V2VpZ2h0ID4gMC45OTkgJiYgbWF4V2VpZ2h0IDwgMS4wMDEpIHsKKyAgICAgICAgICAgICAgICBmbGF0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgICAgIGRvdWJsZSBxID0gKG1heFdlaWdodCAtIDEuMCk7CisgICAgICAgICAgICAgICAgYWEgPSAtMS9xOworICAgICAgICAgICAgICAgIGJiID0gMS8ocSpxKTsKKyAgICAgICAgICAgICAgICBjYyA9ICgyLjArcSkvcTsKKyAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGRvdWJsZSBzcHJlYWQoZG91YmxlIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAoZmxhdCkgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgdmFsdWUgPSBhYSArIE1hdGguc3FydChiYiArIGNjKnZhbHVlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IDAuMCkgcmV0dXJuIDAuMDsgICAgLy8gY2F0Y2ggbWF0aCBnb3JwCisgICAgICAgICAgICBpZiAodmFsdWUgPj0gMS4wKSByZXR1cm4gMS4wOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgaW50IHBpY2soU3ByZWFkIHNwcmVhZCwgUmFuZG9tIHJhbmRvbSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHJldHVybiBzdGFydCArIChpbnQpKHNwcmVhZC5zcHJlYWQocmFuZG9tLm5leHREb3VibGUoKSkgKiAoZW5kICsgMSAtIHN0YXJ0KSk7CisgICAgfQorICAgIAorICAgKi8KKyAgICAKKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1F1b3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUXVvdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkNmFiMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1F1b3Rlci5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFF1b3RlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIHF1b3RpbmcgPSBmYWxzZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRRdW90aW5nKGJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgcXVvdGluZyA9IHZhbHVlOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1F1b3RpbmcoKSB7CisgICAgICAgIHJldHVybiBxdW90aW5nOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgcXVvdGluZyA9IGZhbHNlOworICAgICAgICBvdXRwdXQuc2V0TGVuZ3RoKDApOworICAgIH0KKyAgICBwdWJsaWMgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG91dHB1dC5sZW5ndGgoKTsKKyAgICB9CisgICAgcHVibGljIFF1b3RlciBhcHBlbmQoU3RyaW5nIHN0cmluZykgeworICAgICAgICBvdXRwdXQuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgUXVvdGVyIGFwcGVuZChpbnQgY29kZXBvaW50KSB7CisgICAgICAgIHJldHVybiBhcHBlbmQoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsKKyAgICB9CisgICAgLy8gd2FybmluZywgYWxsb3dzIGFjY2VzcyB0byBpbnRlcm5hbHMKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBzZXRRdW90aW5nKGZhbHNlKTsgLy8gZmluaXNoIHF1b3RpbmcKKyAgICAgICAgcmV0dXJuIG91dHB1dC50b1N0cmluZygpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHN0YW5kYXJkIElDVSBydWxlIHF1b3RpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJ1bGVRdW90ZXIgZXh0ZW5kcyBRdW90ZXIgeworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcHVibGljIHZvaWQgc2V0UXVvdGluZyhib29sZWFuIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAocXVvdGluZyA9PSB2YWx1ZSkgcmV0dXJuOworICAgICAgICAgICAgaWYgKHF1b3RpbmcpIHsgLy8gc3RvcCBxdW90aW5nCisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUob3V0cHV0LCAoaW50KS0xLCB0cnVlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOyAvLyBjbG9zZSBwcmV2aW91cyBxdW90ZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcXVvdGluZyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBRdW90ZXIgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXCIiICsgcyArICJcIiIpOworICAgICAgICAgICAgaWYgKHF1b3RpbmcpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShvdXRwdXQsIHMsIGZhbHNlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUmVsYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1JlbGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUyZThhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1JlbGF0aW9uLmphdmEKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE1hcmsgRGF2aXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCisvKioKKyAqIEEgUmVsYXRpb24gaXMgYSBzZXQgb2YgbWFwcGluZ3MgZnJvbSBrZXlzIHRvIHZhbHVlcy4KKyAqIFVubGlrZSBNYXAsIHRoZXJlIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIGEgc2luZ2xlIHZhbHVlIHBlciBrZXkuCisgKiBUaGUgTWFwLWxpa2UgQVBJcyByZXR1cm4gY29sbGVjdGlvbnMgZm9yIHZhbHVlcy4KKyAqIEBhdXRob3IgbWVkYXZpcworICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFJlbGF0aW9uIHsKKyAgICBwcml2YXRlIE1hcCBtOworICAgIHByaXZhdGUgQ29sbGVjdGlvbkZhY3Rvcnkgc3ViY29sbGVjdGlvbjsKKworICAgIHB1YmxpYyBSZWxhdGlvbihNYXAgbWFpbk1hcCwgQ29sbGVjdGlvbkZhY3Rvcnkgc3ViY29sbGVjdGlvbikgeworICAgICAgICBtID0gbWFpbk1hcDsKKyAgICAgICAgaWYgKHN1YmNvbGxlY3Rpb24gPT0gbnVsbCkgc3ViY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uTWFrZXIobnVsbCk7CisgICAgICAgIHRoaXMuc3ViY29sbGVjdGlvbiA9IHN1YmNvbGxlY3Rpb247CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIG0uY2xlYXIoKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNLZXkoT2JqZWN0IGtleSkgeworICAgICAgICByZXR1cm4gbS5jb250YWluc0tleShrZXkpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc1ZhbHVlKE9iamVjdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gbS5jb250YWluc1ZhbHVlKHZhbHVlKTsKKyAgICB9CisgICAgcHVibGljIFNldCBlbnRyeVNldCgpIHsKKyAgICAgICAgcmV0dXJuIG0uZW50cnlTZXQoKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgcmV0dXJuIG0uZXF1YWxzKG9iaik7CisgICAgfQorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBtLmhhc2hDb2RlKCk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRW1wdHkoKSB7CisgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKTsKKyAgICB9CisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworICAgICAgICByZXR1cm4gbS5yZW1vdmUoa2V5KTsKKyAgICB9CisgICAgcHVibGljIGludCBzaXplKCkgeworICAgICAgICByZXR1cm4gbS5zaXplKCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBtLnRvU3RyaW5nKCk7CisgICAgfQorICAgIHB1YmxpYyBTZXQga2V5U2V0KCkgeworICAgICAgICByZXR1cm4gbS5rZXlTZXQoKTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBhZGRBbGwoUmVsYXRpb24gdCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gdC5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgYWRkKGtleSwgdC5nZXQoa2V5KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKSB7CisgICAgICAgIHJldHVybiBtLnZhbHVlcygpOworICAgIH0KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiBnZXQoT2JqZWN0IGtleSwgQ29sbGVjdGlvbiBvdXRwdXQpIHsKKyAgICAgICAgb3V0cHV0LmFkZEFsbCgoQ29sbGVjdGlvbiltLmdldChrZXkpKTsKKyAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICB9CisgICAgcHVibGljIHZvaWQgYWRkKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBDb2xsZWN0aW9uIG8gPSAoQ29sbGVjdGlvbikgbS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKG8gPT0gbnVsbCkgbS5wdXQoa2V5LCBvID0gc3ViY29sbGVjdGlvbi5tYWtlKCkpOworICAgICAgICBvLmFkZCh2YWx1ZSk7CisgICAgfQorICAgIHB1YmxpYyBJdGVyYXRvciBpdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICB9CisgICAgcHVibGljIGludGVyZmFjZSBDb2xsZWN0aW9uRmFjdG9yeSB7CisgICAgICAgIENvbGxlY3Rpb24gbWFrZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMganVzdCB0ZW1wb3JhcnksIGFuZCBtYXkgY2hhbmdlISEKKyAgICAgKiBAYXV0aG9yIG1lZGF2aXMKKyAgICAgKgorICAgICAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgICAgICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb2xsZWN0aW9uTWFrZXIgaW1wbGVtZW50cyBDb2xsZWN0aW9uRmFjdG9yeSB7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBU0ggPSAwLCBUUkVFID0gMTsKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yIGNvbXBhcmF0b3IgPSBudWxsOworICAgICAgICBwcml2YXRlIGludCB0eXBlID0gSEFTSDsKKworICAgICAgICBwdWJsaWMgQ29sbGVjdGlvbk1ha2VyKGludCB0eXBlKSB7CisgICAgICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb2xsZWN0aW9uTWFrZXIoQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb2xsZWN0aW9uIG1ha2UoKSB7CisgICAgICAgICAgICBpZiAoY29tcGFyYXRvciAhPSBudWxsKSByZXR1cm4gbmV3IFRyZWVTZXQoY29tcGFyYXRvcik7CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IEhBU0gpIHJldHVybiBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgZWxzZSByZXR1cm4gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Tb3J0ZWRCYWcuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1NvcnRlZEJhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MGU3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Tb3J0ZWRCYWcuamF2YQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogTWFyayBEYXZpcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi9wYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCisvKioKKyAqIEEgY29sbGVjdGlvbiB0aGF0IGlzIGxpa2UgYSBzb3J0ZWQgc2V0LCBleGNlcHQgdGhhdCBpdCBhbGxvd3MKKyAqIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgY29tcGFyZSBhcyBlcXVhbAorICogQGF1dGhvciBtZWRhdmlzCisgKi8KKy8vIFRPRE8gcmVwbGFjZSB1c2Ugb2YgU2V0IHdpdGggYSBjb2xsZWN0aW9uIHRoYXQgdGFrZXMgYW4gRXF1YXRvcgorcHVibGljIGNsYXNzIFNvcnRlZEJhZyBpbXBsZW1lbnRzIENvbGxlY3Rpb24geworICAgIC8qKgorICAgICAqIEEgbWFwIG9mIHNldHMsIHdoZXJlIGVhY2ggY29ycmVzcG9uZHMgdG8gb25lIHNvcnRlZCBlbGVtZW50LgorICAgICAqIFRoZSBzZXRzIGFyZSBuZXZlciBlbXB0eQorICAgICAqLworICAgIHByaXZhdGUgTWFwIG07CisgICAgcHJpdmF0ZSBpbnQgc2l6ZTsKKworICAgIHB1YmxpYyBTb3J0ZWRCYWcoQ29tcGFyYXRvciBjKSB7CisgICAgICAgIG0gPSBuZXcgVHJlZU1hcChjKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gYWRkKE9iamVjdCBzKSB7CisgICAgICAgIFNldCBvID0gKFNldCltLmdldChzKTsKKyAgICAgICAgaWYgKG8gPT0gbnVsbCkgeworICAgICAgICAgICAgbyA9IG5ldyBIYXNoU2V0KDEpOworICAgICAgICAgICAgbS5wdXQocyxvKTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIHJlc3VsdCA9IG8uYWRkKHMpOworICAgICAgICBpZiAocmVzdWx0KSBzaXplKys7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHB1YmxpYyBJdGVyYXRvciBpdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNeUl0ZXJhdG9yKCk7CisgICAgfQorICAgIHN0YXRpYyBJdGVyYXRvciBFTVBUWV9JVEVSQVRPUiA9IG5ldyBIYXNoU2V0KCkuaXRlcmF0b3IoKTsKKyAgICBwcml2YXRlIGNsYXNzIE15SXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisgICAgICAgIHByaXZhdGUgSXRlcmF0b3IgbWFwSXRlcmF0b3IgPSBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHByaXZhdGUgSXRlcmF0b3Igc2V0SXRlcmF0b3IgPSBudWxsOworCisgICAgICAgIHByaXZhdGUgTXlJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIG1hcEl0ZXJhdG9yID0gbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgc2V0SXRlcmF0b3IgPSBnZXRTZXRJdGVyYXRvcigpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgSXRlcmF0b3IgZ2V0U2V0SXRlcmF0b3IoKSB7CisgICAgICAgICAgICBpZiAoIW1hcEl0ZXJhdG9yLmhhc05leHQoKSkgcmV0dXJuIEVNUFRZX0lURVJBVE9SOworICAgICAgICAgICAgcmV0dXJuICgoU2V0KW0uZ2V0KG1hcEl0ZXJhdG9yLm5leHQoKSkpLml0ZXJhdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzZXRJdGVyYXRvci5oYXNOZXh0KCkgfHwgbWFwSXRlcmF0b3IuaGFzTmV4dCgpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmICghc2V0SXRlcmF0b3IuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3IgPSBnZXRTZXRJdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNldEl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBtLmNsZWFyKCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRW1wdHkoKSB7CisgICAgICAgIHJldHVybiBzaXplID09IDA7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKE9iamVjdCBvKSB7CisgICAgICAgIFNldCBzZXQgPSAoU2V0KW0uZ2V0KG8pOworICAgICAgICBpZiAoc2V0ID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHNldC5jb250YWlucyhvKTsKKyAgICB9CisgICAgcHVibGljIE9iamVjdFtdIHRvQXJyYXkoKSB7CisgICAgICAgIHJldHVybiB0b0FycmF5KG5ldyBPYmplY3Rbc2l6ZV0pOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0W10gdG9BcnJheShPYmplY3RbXSBhKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBhW2NvdW50KytdID0gaXQubmV4dCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhOworICAgIH0KKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBqYXZhLnV0aWwuQ29sbGVjdGlvbiNyZW1vdmUoamF2YS5sYW5nLk9iamVjdCkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmUoT2JqZWN0IG8pIHsKKyAgICAgICAgU2V0IHNldCA9IChTZXQpbS5nZXQobyk7CisgICAgICAgIGlmIChzZXQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXNldC5yZW1vdmUobykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHNldC5zaXplKCkgPT0gMCkgbS5yZW1vdmUobyk7CisgICAgICAgIHNpemUtLTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zQWxsKENvbGxlY3Rpb24gYykgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgaWYgKCFjb250YWlucyhpdC5uZXh0KCkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFkZEFsbChDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgIGlmIChhZGQoaXQubmV4dCgpKSkgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmVBbGwoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBpZiAocmVtb3ZlKGl0Lm5leHQoKSkpIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gcmV0YWluQWxsKENvbGxlY3Rpb24gYykgeworICAgICAgICAvLyBXQVJOSU5HOiB0aGlzIG1heSBub3Qgd29yayBpZiB0aGUgY29tcGFyYXRvciBkb2VzIG5vdCBkaXN0aW5ndWlzaAorICAgICAgICAvLyBhbGwgaXRlbXMgdGhhdCBhcmUgZXF1YWxzKCkuCisgICAgICAgIFNldCBzdHVmZlRvUmVtb3ZlID0gbmV3IEhhc2hTZXQoKTsgLy8gaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGl0ZXJhdG9yIG1heSBub3QgYWxsb3cgcmVtb3ZhbCEKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGl0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmICghYy5jb250YWlucyhpdGVtKSkgc3R1ZmZUb1JlbW92ZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlbW92ZUFsbChzdHVmZlRvUmVtb3ZlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9TdHJpbmdUb2tlbml6ZXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9TdHJpbmdUb2tlbml6ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0MjQ2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1N0cmluZ1Rva2VuaXplclRlc3QuamF2YQpAQCAtMCwwICsxLDU0MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlN0cmluZ1Rva2VuaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorKiBUZXN0aW5nIGNsYXNzIGZvciBTdHJpbmdUb2tlbml6ZXIgY2xhc3MKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdCAyNiAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ1Rva2VuaXplclRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeyAKKyAgICAgIC8vIGNvbnN0cnVjdG9yID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgICAgIC8qKgorICAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAgKi8KKyAgICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXJUZXN0KCkKKyAgICAgIHsKKyAgICAgIH0KKyAgCisgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgY29uc3RydWN0b3JzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbnN0cnVjdG9ycygpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gInRoaXNcdGlzXG5hXHJzdHJpbmdcZnRlc3RpbmdcdFN0cmluZ1Rva2VuaXplclxuY29uc3RydWN0b3JzISI7CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIgPSAiIFx0XG5cclxmIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7InRoaXMiLCAiaXMiLCAiYSIsICJzdHJpbmciLCAidGVzdGluZyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RyaW5nVG9rZW5pemVyIiwgImNvbnN0cnVjdG9ycyEifTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIGRlZmF1bHRzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyKTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ZGVsaW1pdGVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdGRlbGltaXRlcnJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICBVbmljb2RlU2V0IGRlbGltaXRlcnNldCA9IG5ldyBVbmljb2RlU2V0KCJbIiArIGRlbGltaXRlciArICJdIiwgZmFsc2UpOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3RkZWxpbWl0ZXJzZXQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0KTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ZGVsaW1pdGVyc2V0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlcnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoIShkZWZhdWx0c3QubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pIAorICAgICAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkKKyAgICAgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0Lm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKQorICAgICAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXRyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB3aXRoIGRlZmF1bHQgZGVsaW1pdGVyIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkMVtdID0geyJ0aGlzIiwgIlx0IiwgImlzIiwgIlxuIiwgImEiLCAiXHIiLCAic3RyaW5nIiwgIlxmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdGluZyIsICJcdCIsICJTdHJpbmdUb2tlbml6ZXIiLCAiXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJ1Y3RvcnMhIn07CisgICAgICAgIHN0ZGVsaW1pdGVycmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlciwgdHJ1ZSk7CisgICAgICAgIHN0ZGVsaW1pdGVyc2V0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCwgdHJ1ZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQxLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCEoc3RkZWxpbWl0ZXJyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQxW2ldKQorICAgICAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXRyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQxW2ldKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3Igd2l0aCBkZWZhdWx0IGRlbGltaXRlciBhbmQgZGVsaW1pdGVyIHRva2VucyBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3RkZWxpbWl0ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgKFN0cmluZyludWxsKTsKKyAgICAgICAgc3RkZWxpbWl0ZXJyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgKFN0cmluZyludWxsLCBmYWxzZSk7CisgICAgICAgIGRlbGltaXRlcnNldCA9IG51bGw7CisgICAgICAgIHN0ZGVsaW1pdGVyc2V0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCk7CisgICAgICAgIHN0ZGVsaW1pdGVyc2V0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCwgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKCEoc3RkZWxpbWl0ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0Lm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXRyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB3aXRoIG51bGwgZGVsaW1pdGVyIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGVsaW1pdGVyID0gIiI7CisgICAgICAgIHN0ZGVsaW1pdGVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIHN0ZGVsaW1pdGVycmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlciwgZmFsc2UpOworICAgICAgICBkZWxpbWl0ZXJzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBzdGRlbGltaXRlcnNldCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQpOworICAgICAgICBzdGRlbGltaXRlcnNldHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmICghKHN0ZGVsaW1pdGVyLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldC5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0cmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikpKSB7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3Igd2l0aCBlbXB0eSBkZWxpbWl0ZXIgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgZGVmYXVsdHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJudWxsIHN0cmluZyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogQ29uc3RydWN0b3Igd2l0aCBudWxsIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RkZWxpbWl0ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlcik7CisgICAgICAgICAgICBlcnJsbigibnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIHdpdGggbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ZGVsaW1pdGVycmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIGVycmxuKCJudWxsIHN0cmluZyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogQ29uc3RydWN0b3Igd2l0aCBudWxsIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RkZWxpbWl0ZXJzZXQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlcnNldCk7CisgICAgICAgICAgICBlcnJsbigibnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIHdpdGggbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ZGVsaW1pdGVyc2V0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgZXJybG4oIm51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBDb25zdHJ1Y3RvciB3aXRoIG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3Rpbmcgc3VwcGxlbWVudGFyeQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXBwbGVtZW50YXJ5KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiYm1wIHN0cmluZyBcdWQ4MDAgd2l0aCBhIHVubWF0Y2hlZCBzdXJyb2dhdGUgY2hhcmFjdGVyIjsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlciA9ICJcdWQ4MDBcdWRjMDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHtzdHJ9OworICAgICAgICAgICAgCisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbMF0pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBkZWxpbWl0ZXIgPSAiXHVkODAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkMVtdID0geyJibXAgc3RyaW5nICIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aXRoIGEgdW5tYXRjaGVkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIifTsKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQxW2kgKytdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdHIgPSAic3RyaW5nIFx1ZDgwMFx1ZGMwMCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIjsKKyAgICAgICAgZGVsaW1pdGVyID0gIlx1ZDgwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZDJbXSA9IHtzdHJ9OworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQyWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgCisgICAgICAgIGRlbGltaXRlciA9ICJcdWQ4MDBcdWRjMDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQzW10gPSB7InN0cmluZyAiLCAiIHdpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIifTsKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIGkgPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDNbaSArK10pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0ciA9ICJcdWQ4MDAgXHVkODAwXHVkYzAwIFx1ZDgwMCBcdWQ4MDBcdWRjMDAiOworICAgICAgICBkZWxpbWl0ZXIgPSAiXHVkODAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkNFtdID0geyIgXHVkODAwXHVkYzAwICIsICIgXHVkODAwXHVkYzAwIn07CisgICAgICAgIGkgPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDRbaSArK10pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRlbGltaXRlciA9ICJcdWQ4MDBcdWRjMDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ1W10gPSB7Ilx1ZDgwMCAiLCAiIFx1ZDgwMCAifTsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkNVtpICsrXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgCisgICAgICAvKioKKyAgICAgICogVGVzdGluZyBuZXh0IGFwaQorICAgICAgKi8KKyAgICAgIHB1YmxpYyB2b2lkIFRlc3ROZXh0Tm9uRGVsaW1pdGVyVG9rZW4oKQorICAgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gIiAgLCAgMSAyIDMgIEFISEhISCEgNS41IDYgNyAgICAsICAgICAgICA4XG4iOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsiLCIsICIxIiwgIjIiLCAiMyIsICJBSEhISEghIiwgIjUuNSIsICI2IiwgIjciLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiLCAiOFxuIn07CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIgPSAiICI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBpbnQgY3VycnRva2VuID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbY3VycnRva2VuXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9rZW4gbWlzbWF0Y2gsIGV4cGVjdGVkICIgKyBleHBlY3RlZFtjdXJydG9rZW5dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJ0b2tlbiArKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJydG9rZW4gIT0gZXhwZWN0ZWQubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBjb3JyZWN0IG51bWJlciBvZiB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigiIiwgZGVsaW1pdGVyKTsKKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIkVtcHR5IHN0cmluZyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBzdHJpbmcgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBlbXB0eSBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoIiwgLCIsICIsICIpOworICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHdpdGggb25seSBkZWxpbWl0ZXJzIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB3aXRoIG9ubHkgZGVsaW1pdGVycyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFN0cmluZyB3aXRoIG9ubHkgZGVsaW1pdGVycyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoInEsICwiLCAiLCAiKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgdGhhdCBkb2VzIG5vdCBiZWdpbiB3aXRoIGRlbGltaXRlcnMgc2hvdWxkIGhhdmUgc29tZSB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscygicSIpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHRoYXQgZG9lcyBub3QgYmVnaW4gd2l0aCBkZWxpbWl0ZXJzIHNob3VsZCBoYXZlIHNvbWUgdG9rZW5zIik7CisgICAgICAgIH0gCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgaGFzIG9ubHkgb25lIHRva2VuIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogU3RyaW5nIHdpdGggb25seSBvbmUgdG9rZW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXIpOworICAgICAgICAgICAgZXJybG4oIlN0cmluZ1Rva2VuaXplciBjb25zdHJ1Y3RlZCB3aXRoIG51bGwgc291cmNlIHNob3VsZCB0aHJvdyBhIG51bGxwb2ludGVyZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogU3RyaW5nVG9rZW5pemVyIGNvbnN0cnVjdGVkIHdpdGggbnVsbCBzb3VyY2UgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgInEiKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKSkgeworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBoYXZlIHJlY2VpdmVkIHRoZSBzYW1lIHN0cmluZyB3aGVuIHRoZXJlIGFyZSBubyBkZWxpbWl0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGphdmEgY29tcGF0aWJpbGl0eSwgZXhjZXB0IHdlIHN1cHBvcnQgc3Vycm9nYXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9Db2FsZXNjZSgpIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJUaGlzIGlzICAgYSB0ZXN0XHJ0byBzZWUgaWZcbndoaXRlc3BhY2UgaXMgaGFuZGxlZCBcblxyIHVudXN1YWxseVxyXG4gYnkgb3VyIHRva2VuaXplclxuXG5cbiEhIXBsdXMgc29tZSBvdGhlciBvZGQgb25lcyBsaWtlIFx0dGFiXHR0YWJcdHRhYlxuYW5kIGZvcm1cZmZlZWRcZmZvby5cbiI7CisgICAgICAgIFN0cmluZyBkZWxpbXMgPSAiIFx0XG5cclxmXHVkODAwXHVkYzAwIjsKKworICAgICAgICBqYXZhLnV0aWwuU3RyaW5nVG9rZW5pemVyIGp0ID0gbmV3IGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbXMsIHRydWUpOworICAgICAgICBjb20uaWJtLmljdS51dGlsLlN0cmluZ1Rva2VuaXplciBpdCA9IG5ldyBjb20uaWJtLmljdS51dGlsLlN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltcywgdHJ1ZSk7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgd2hpbGUgKGp0Lmhhc01vcmVUb2tlbnMoKSAmJiBpdC5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiWyIgKyBTdHJpbmcudmFsdWVPZihuKyspICsgIl0iLCBqdC5uZXh0VG9rZW4oKSwgaXQubmV4dFRva2VuKCkpOworICAgICAgICB9CisgICAgICAgIGFzc2VydEZhbHNlKCJqYXZhIHRva2VuaXplciBoYXMgbm8gbW9yZSB0b2tlbnMiLCBqdC5oYXNNb3JlVG9rZW5zKCkpOworICAgICAgICBhc3NlcnRGYWxzZSgiaWN1IHRva2VuaXplciBoYXMgbm8gbW9yZSB0b2tlbnMiLCBpdC5oYXNNb3JlVG9rZW5zKCkpOworCisgICAgICAgIFN0cmluZyBzdXIgPSAiRXZlblx1ZDgwMFx1ZGMwMCB3b3Jrcy5cblxuIjsKKyAgICAgICAgaXQgPSBuZXcgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXIoc3VyLCBkZWxpbXMsIHRydWUpOyAvLyBubyBjb2FsZXNjZQorICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjEiLCBpdC5uZXh0VG9rZW4oKSwgIkV2ZW4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXIyIiwgaXQubmV4dFRva2VuKCksICJcdWQ4MDBcdWRjMDAiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXIzIiwgaXQubmV4dFRva2VuKCksICIgIik7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyNCIsIGl0Lm5leHRUb2tlbigpLCAid29ya3MuIik7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyNSIsIGl0Lm5leHRUb2tlbigpLCAiXG4iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXI2IiwgaXQubmV4dFRva2VuKCksICJcbiIpOworICAgICAgICBhc3NlcnRGYWxzZSgic3VyNyIsIGl0Lmhhc01vcmVUb2tlbnMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0aW5nIG5leHQgYXBpCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV4dERlbGltaXRlclRva2VuKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiICAsICAxIDIgMyAgQUhISEhIISA1LjUgNiA3ICAgICwgICAgICAgIDhcbiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geyIgICIsICIsIiwgIiAgIiwgIjEiLCAiICIsICIyIiwgIiAiLCAiMyIsICIgICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBSEhISEghIiwgIiAiLCAiNS41IiwgIiAiLCAiNiIsICIgIiwgIjciLCAiICAgICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiwgIiAgICAgICAgIiwgIjhcbiJ9OworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyID0gIiAiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyLCB0cnVlLCB0cnVlKTsKKworICAgICAgICBpbnQgY3VycnRva2VuID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbY3VycnRva2VuXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9rZW4gbWlzbWF0Y2gsIGV4cGVjdGVkICIgKyBleHBlY3RlZFtjdXJydG9rZW5dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJ0b2tlbiArKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJydG9rZW4gIT0gZXhwZWN0ZWQubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBjb3JyZWN0IG51bWJlciBvZiB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcigiIiwgZGVsaW1pdGVyLCB0cnVlKTsKKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIkVtcHR5IHN0cmluZyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBzdHJpbmcgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoIiwgLCIsICIsICIsIHRydWUsIHRydWUpOworICAgICAgICBpZiAoIXRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB3aXRoIG9ubHkgZGVsaW1pdGVycyBzaG91bGQgaGF2ZSB0b2tlbnMgd2hlbiBkZWxpbWl0ZXIgaXMgdHJlYXRlZCBhcyB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscygiLCAsIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgd2l0aCBvbmx5IGRlbGltaXRlcnMgc2hvdWxkIHJldHVybiBpdHNlbGYgd2hlbiBkZWxpbWl0ZXIgaXMgdHJlYXRlZCBhcyB0b2tlbnMiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoInEsICwiLCAiLCAiLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGlmICghdG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHNob3VsZCBoYXZlIHNvbWUgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoInEiKSAKKyAgICAgICAgICAgIHx8ICF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoIiwgLCIpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHRva2VucyBkbyBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVzdWx0cyIpOworICAgICAgICB9IAorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKG51bGwsIGRlbGltaXRlciwgdHJ1ZSk7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nVG9rZW5pemVyIGNvbnN0cnVjdGVkIHdpdGggbnVsbCBzb3VyY2Ugc2hvdWxkIHRocm93IGEgbnVsbHBvaW50ZXJleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBTdHJpbmdUb2tlbml6ZXIgY29uc3RydWN0ZWQgd2l0aCBudWxsIHNvdXJjZSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCAicSIsIHRydWUpOworICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpKSB7CisgICAgICAgICAgICBlcnJsbigiU2hvdWxkIGhhdmUgcmVjaWV2ZWQgdGhlIHNhbWUgc3RyaW5nIHdoZW4gdGhlcmUgYXJlIG5vIGRlbGltaXRlcnMiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGNvdW50IHRva2VucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3VudFRva2VucygpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gInRoaXNcdGlzXG5hXHJzdHJpbmdcZnRlc3RpbmdcdFN0cmluZ1Rva2VuaXplclxuY29uc3RydWN0b3JzISI7CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIgPSAiIFx0XG5cclxmIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7InRoaXMiLCAiaXMiLCAiYSIsICJzdHJpbmciLCAidGVzdGluZyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RyaW5nVG9rZW5pemVyIiwgImNvbnN0cnVjdG9ycyEifTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkcmV0dXJuW10gPSB7InRoaXMiLCAiXHQiLCAiaXMiLCAiXG4iLCAiYSIsICJcciIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIiwgIlxmIiwgInRlc3RpbmciLCAiXHQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0cmluZ1Rva2VuaXplciIsICJcbiIsICJjb25zdHJ1Y3RvcnMhIn07CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3RyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyLCB0cnVlKTsKKyAgICAgICAgaWYgKHN0LmNvdW50VG9rZW5zKCkgIT0gZXhwZWN0ZWQubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bnRUb2tlbnMgZmFpbGVkIGZvciBub24tZGVsaW1pdGVyIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIGlmIChzdHJldHVybi5jb3VudFRva2VucygpICE9IGV4cGVjdGVkcmV0dXJuLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkNvdW50VG9rZW5zIGZhaWxlZCBmb3IgZGVsaW1pdGVyIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoIXN0Lm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKQorICAgICAgICAgICAgICAgIHx8IHN0LmNvdW50VG9rZW5zKCkgIT0gZXhwZWN0ZWQubGVuZ3RoIC0gaSAtIDEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bnRUb2tlbnMgZGVmYXVsdCBkZWxpbWl0ZXIgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRyZXR1cm4ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoIXN0cmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkcmV0dXJuW2ldKQorICAgICAgICAgICAgICAgIHx8IHN0cmV0dXJuLmNvdW50VG9rZW5zKCkgIT0gZXhwZWN0ZWRyZXR1cm4ubGVuZ3RoIC0gaSAtIDEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bnRUb2tlbnMgd2l0aCBkZWZhdWx0IGRlbGltaXRlciBhbmQgZGVsaW1pdGVyIHRva2VucyBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBOZXh0IHRva2VuIHdpdGggbmV3IGRlbGltaXRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV4dE5ld0RlbGltaXRlcnMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJhYmMwZGVmMWdoaTJqa2wzbW5vNHBxcjBzdHUxdnd4Mnl6YTNiY2Q0ZWZnMGhpajFrbG0ybm9wM3FyczR0dXYiOworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyW10gPSB7IjAiLCAiMSIsICIyIiwgIjMiLCAiNCJ9OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXVtdID0ge3siYWJjIiwgInBxciIsICJlZmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImRlZiIsICJzdHUiLCAiaGlqIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJnaGkiLCAidnd4IiwgImtsbSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiamtsIiwgInl6YSIsICJub3AifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im1ubyIsICJiY2QiLCAicXJzIn0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyKTsKKyAgICAgICAgaW50IHNpemUgPSBleHBlY3RlZFswXS5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBkZWxpbWl0ZXIubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdC5uZXh0VG9rZW4oZGVsaW1pdGVyW2pdKS5lcXVhbHMoZXhwZWN0ZWRbal1baV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0VG9rZW4oKSB3aXRoIGRlbGltaXRlcnMgZXJyb3IgIiArIGkgKyAiICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0LmNvdW50VG9rZW5zKCkgIT0gZXhwZWN0ZWRbal0ubGVuZ3RoIC0gaSkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBlcnJsbigiY291bnRUb2tlbnMoKSBhZnRlciBuZXh0VG9rZW4oKSB3aXRoIGRlbGltaXRlcnMgZXJyb3IiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgaSArICIgIiArIGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICAgICAgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0cik7CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIxW10gPSB7IjAiLCAiMiIsICI0In07CisgICAgICAgIFN0cmluZyBleHBlY3RlZDFbXSA9IHsiYWJjIiwgImRlZjFnaGkiLCAiamtsM21ubyIsICJwcXIiLCAic3R1MXZ3eCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInl6YTNiY2QiLCAiZWZnIiwgImhpajFrbG0iLCAibm9wM3FycyIsICJ0dXYifTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZDEubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoIXN0Lm5leHRUb2tlbihkZWxpbWl0ZXIxW2kgJSBkZWxpbWl0ZXIxLmxlbmd0aF0pLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkMVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dFRva2VuKCkgd2l0aCBkZWxpbWl0ZXJzIGVycm9yICIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDQyMygpCisgICAgeworICAgICAgICAvLyBidWcgNDQyMzogIGEgYmFkIGludGVyYWN0aW9uIGJldHdlZW4gY291bnRUb2tlbnMoKSBhbmQgaGFzTW9yZVRva2VucygpLgorICAgICAgICAvLworICAgICAgICBTdHJpbmcgczEgPSAiVGhpcyBpcyBhIHRlc3QiOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgdHpyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzMSk7CisgICAgICAgIGludCAgdG9rZW5Db3VudCA9IDA7CisgICAgICAgIAorICAgICAgICBpbnQgdCA9IHR6ci5jb3VudFRva2VucygpOworICAgICAgICBpZiAodCE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0enIuY291bnRUb2tlbnMoKSByZXR1cm5lZCAiICsgdCArICIuICBFeHBlY3RlZCA0Iik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHR6ci5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyAgdG9rID0gdHpyLm5leHRUb2tlbigpOworICAgICAgICAgICAgaWYgKHRvay5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRva2VuIHdpdGggbGVuZ3RoID09IDAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRva2VuQ291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5Db3VudCAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IG51bWJlciBvZiB0b2tlbnMgZm91bmQgPSAiICsgdG9rZW5Db3VudCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFByZWNvbXB1dGVkIHRva2VucyBhcnJheXMgY2FuIGdyb3cuICBDaGVjayBmb3IgZWRnZSBjYXNlcyBhcm91bmQKKyAgICAgICAgLy8gIGJvdW5kYXJ5IHdoZXJlIGdyb3d0aCBpcyBmb3JjZWQuICBBcnJheSBncm93cyBpbiBpbmNyZW1lbnRzIG9mIDEwMCB0b2tlbnMuCisgICAgICAgIFN0cmluZyBzMiA9ICIiOworICAgICAgICBmb3IgKGludCBpPTE7IGk8MjUwOyBpKyspIHsKKyAgICAgICAgICAgIHMyID0gczIgKyAiICIgKyBpOworICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyIHR6YiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoczIpOworICAgICAgICAgICAgaW50IHQyID0gdHpiLmNvdW50VG9rZW5zKCk7CisgICAgICAgICAgICBpZiAodDIgIT0gaSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0emIuY291bnRUb2tlbnMoKSByZXR1cm5lZCAiICsgdCArICIuICBFeHBlY3RlZCAiICsgaSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHpiLmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0b2sgPSB0emIubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIGlmICh0b2suZXF1YWxzKEludGVnZXIudG9TdHJpbmcoaikpID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyB0b2tlbiBzdHJpbmcuICBFeHBlY3RlZCBcIiIgKyBqICsgIlwiLCBnb3QgXCIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0b2sgKyAiXCIuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChqICE9IGkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgbnVtYmVyIG9mIHRva2Vucy4gIEV4cGVjdGVkICIgKyBpICsgIi4gIEdvdCAiICsgagorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3VudFRva2Vuc05vQ29hbGVzY2UoKSB7CisgICAgICAgIC8vIGppdHRlcmJ1ZyA1MjA3CisgICAgICAgIFN0cmluZyBzdHIgPSAiXCJcIiI7CisgICAgICAgIFN0cmluZyBkZWwgPSAiXCIiOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsLCB0cnVlKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgU3RyaW5nIHQgPSBzdC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGNvdW50ICsgIl0gJyIgKyB0ICsgIiciKTsKKyAgICAgICAgICAgICsrY291bnQ7CisJfQorICAgICAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWwsIHRydWUpOworICAgICAgICBpbnQgbmNvdW50ID0gc3QuY291bnRUb2tlbnMoKTsKKyAgICAgICAgaW50IHhjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChzdC5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB0ID0gc3QubmV4dFRva2VuKCk7CisgICAgICAgICAgICBsb2dsbigiWyIgKyB4Y291bnQgKyAiXSAnIiArIHQgKyAiJyIpOworICAgICAgICAgICAgKyt4Y291bnQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IG5jb3VudCB8fCBjb3VudCAhPSB4Y291bnQpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmNvbnNpc3RlbnQgY291bnRzICIgKyBjb3VudCArICIsICIgKyBuY291bnQgKyAiLCAiICsgeGNvdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXJUZXN0IHRlc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyVGVzdCgpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgICAgIC8vIHRlc3QuVGVzdENhc2VDb21wYXJlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UYWJiZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RhYmJlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZmFmODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UYWJiZXIuamF2YQpAQCAtMCwwICsxLDIxNiBAQAorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFRhYmJlciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExFRlQgPSAwLCBDRU5URVIgPSAxLCBSSUdIVCA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gQUxJR05NRU5UX05BTUVTID0geyJMZWZ0IiwgIkNlbnRlciIsICJSaWdodCJ9OworICAgIAorICAgIC8qKgorICAgICAqIFJlcGVhdHMgYSBzdHJpbmcgbiB0aW1lcworICAgICAqIEBwYXJhbSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gdGltZXMKKyAgICAgKi8KKyAgICAvLyBUT0RPIC0gb3B0aW1pemUgcmVwZWF0cyB1c2luZyBkb3VibGluZz8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBlYXQoU3RyaW5nIHNvdXJjZSwgaW50IHRpbWVzKSB7CisgICAgICAgIGlmICh0aW1lcyA8PSAwKSByZXR1cm4gIiI7CisgICAgICAgIGlmICh0aW1lcyA9PSAxKSByZXR1cm4gc291cmNlOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKDsgdGltZXMgPiAwOyAtLXRpbWVzKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHByb2Nlc3MoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbGFzdFBvcyA9IDA7CisgICAgICAgIGZvciAoaW50IGNvdW50ID0gMDsgbGFzdFBvcyA8IHNvdXJjZS5sZW5ndGgoKTsgKytjb3VudCkgeworICAgICAgICAgICAgaW50IHBvcyA9IHNvdXJjZS5pbmRleE9mKCdcdCcsIGxhc3RQb3MpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHBvcyA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHByb2Nlc3NfZmllbGQoY291bnQsIHNvdXJjZSwgbGFzdFBvcywgcG9zLCByZXN1bHQpOworICAgICAgICAgICAgbGFzdFBvcyA9IHBvcysxOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwcmVmaXggKyByZXN1bHQudG9TdHJpbmcoKSArIHBvc3RmaXg7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeCA9ICIiOworICAgIHByaXZhdGUgU3RyaW5nIHBvc3RmaXggPSAiIjsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwcm9jZXNzX2ZpZWxkKGludCBjb3VudCwgU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZ0J1ZmZlciBvdXRwdXQpOworICAgIAorICAgIHB1YmxpYyBUYWJiZXIgY2xlYXIoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTW9ub1RhYmJlciBleHRlbmRzIFRhYmJlciB7CisgICAgICAgIGludCBtaW5HYXAgPSAwOworICAgIAorICAgICAgICBwcml2YXRlIExpc3Qgc3RvcHMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHByaXZhdGUgTGlzdCB0eXBlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBUYWJiZXIgY2xlYXIoKSB7CisgICAgICAgICAgICBzdG9wcy5jbGVhcigpOworICAgICAgICAgICAgdHlwZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIG1pbkdhcCA9IDA7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0b3BzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgYnVmZmVyLmFwcGVuZCgiOyAiKTsKKyAgICAgICAgICAgICAgICBidWZmZXIKKyAgICAgICAgICAgICAgICAuYXBwZW5kKEFMSUdOTUVOVF9OQU1FU1soKEludGVnZXIpdHlwZXMuZ2V0KGkpKS5pbnRWYWx1ZSgpXSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKCIsIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHN0b3BzLmdldChpKSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZGRzIHRhYiBzdG9wIGFuZCBob3cgdG8gYWxpZ24gdGhlIHRleHQgVVAgVE8gdGhhdCBzdG9wCisgICAgICAgICAqIEBwYXJhbSB0YWJQb3MKKyAgICAgICAgICogQHBhcmFtIHR5cGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBNb25vVGFiYmVyIGFkZEFic29sdXRlKGludCB0YWJQb3MsIGludCB0eXBlKSB7CisgICAgICAgICAgICBzdG9wcy5hZGQobmV3IEludGVnZXIodGFiUG9zKSk7CisgICAgICAgICAgICB0eXBlcy5hZGQobmV3IEludGVnZXIodHlwZSkpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgcmVsYXRpdmUgdGFiIHN0b3AgYW5kIGhvdyB0byBhbGlnbiB0aGUgdGV4dCBVUCBUTyB0aGF0IHN0b3AKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBUYWJiZXIgYWRkKGludCBmaWVsZFdpZHRoLCBieXRlIHR5cGUpIHsKKyAgICAgICAgICAgIGludCBsYXN0ID0gZ2V0U3RvcChzdG9wcy5zaXplKCktMSk7CisgICAgICAgICAgICBzdG9wcy5hZGQobmV3IEludGVnZXIobGFzdCArIGZpZWxkV2lkdGgpKTsKKyAgICAgICAgICAgIHR5cGVzLmFkZChuZXcgSW50ZWdlcih0eXBlKSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRTdG9wKGludCBmaWVsZE51bWJlcikgeworICAgICAgICAgICAgaWYgKGZpZWxkTnVtYmVyIDwgMCkgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPj0gc3RvcHMuc2l6ZSgpKSBmaWVsZE51bWJlciA9IHN0b3BzLnNpemUoKSAtIDE7CisgICAgICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXN0b3BzLmdldChmaWVsZE51bWJlcikpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXRUeXBlKGludCBmaWVsZE51bWJlcikgeworICAgICAgICAgICAgaWYgKGZpZWxkTnVtYmVyIDwgMCkgcmV0dXJuIExFRlQ7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPj0gc3RvcHMuc2l6ZSgpKSByZXR1cm4gTEVGVDsKKyAgICAgICAgICAgIHJldHVybiAoKEludGVnZXIpdHlwZXMuZ2V0KGZpZWxkTnVtYmVyKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICBwdWJsaWMgU3RyaW5nIHByb2Nlc3MoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsYXN0UG9zID0gMDsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICBmb3IgKGNvdW50ID0gMDsgbGFzdFBvcyA8IHNvdXJjZS5sZW5ndGgoKSAmJiBjb3VudCA8IHN0b3BzLnNpemUoKTsgY291bnQrKykgeworICAgICAgICAgICAgICAgIGludCBwb3MgPSBzb3VyY2UuaW5kZXhPZignXHQnLCBsYXN0UG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcobGFzdFBvcywgcG9zKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RvcFBvcyA9IGdldFN0b3AoY291bnQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPCBzdG9wUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwZWF0KCIgIiwgc3RvcFBvcyAtIHJlc3VsdC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGZpeCB0eXBlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGllY2UpOworICAgICAgICAgICAgICAgIGxhc3RQb3MgPSBwb3MrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0UG9zIDwgc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3RQb3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcHJvY2Vzc19maWVsZChpbnQgY291bnQsIFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgICAgICBTdHJpbmcgcGllY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICBpbnQgc3RhcnRQb3MgPSBnZXRTdG9wKGNvdW50LTEpOworICAgICAgICAgICAgaW50IGVuZFBvcyA9IGdldFN0b3AoY291bnQpIC0gbWluR2FwOworICAgICAgICAgICAgaW50IHR5cGUgPSBnZXRUeXBlKGNvdW50KTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTEVGVDogCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUklHSFQ6IAorICAgICAgICAgICAgICAgICAgICBzdGFydFBvcyA9IGVuZFBvcyAtIHBpZWNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFTlRFUjogCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zID0gKHN0YXJ0UG9zICsgZW5kUG9zIC0gcGllY2UubGVuZ3RoKCkgKyAxKS8yOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGdhcCA9IHN0YXJ0UG9zIC0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGNvdW50ICE9IDAgJiYgZ2FwIDwgbWluR2FwKSBnYXAgPSBtaW5HYXA7CisgICAgICAgICAgICBpZiAoZ2FwID4gMCkgb3V0cHV0LmFwcGVuZChyZXBlYXQoIiAiLCBnYXApKTsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocGllY2UpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEhUTUxUYWJiZXIgZXh0ZW5kcyBUYWJiZXIgeworICAgICAgICBwcml2YXRlIExpc3QgcGFyYW1ldGVycyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgeworICAgICAgICAgICAgc2V0UHJlZml4KCI8dHI+Iik7CisgICAgICAgICAgICBzZXRQb3N0Zml4KCI8L3RyPiIpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHNldFBhcmFtZXRlcnMoaW50IGNvdW50LCBTdHJpbmcgcGFyYW1zKSB7CisgICAgICAgIAl3aGlsZSAoY291bnQgPj0gcGFyYW1ldGVycy5zaXplKCkpIHBhcmFtZXRlcnMuYWRkKG51bGwpOworICAgICAgICAgICAgcGFyYW1ldGVycy5zZXQoY291bnQscGFyYW1zKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcHJvY2Vzc19maWVsZChpbnQgY291bnQsIFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCI8dGQiKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXJhbXMgPSBudWxsOworICAgICAgICAgICAgaWYgKGNvdW50IDwgcGFyYW1ldGVycy5zaXplKCkpIHBhcmFtcyA9IChTdHJpbmcpIHBhcmFtZXRlcnMuZ2V0KGNvdW50KTsKKyAgICAgICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHBhcmFtcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCI+Iik7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KSk7CisgICAgICAgICAgICAvLyBUT0RPIFF1b3RlIHN0cmluZworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiPC90ZD4iKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc3RmaXgoKSB7CisgICAgICAgIHJldHVybiBwb3N0Zml4OworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJlZml4KCkgeworICAgICAgICByZXR1cm4gcHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiYmVyIHNldFBvc3RmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBwb3N0Zml4ID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIFRhYmJlciBzZXRQcmVmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBwcmVmaXggPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBUYWJiZXIgYWRkKGludCBpLCBieXRlIGxlZnQyKSB7CisgICAgICAgIC8vIGRvZXMgbm90aGluZyB1bmxlc3Mgb3ZlcnJpZGRlbgorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWNkMzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIlZlcnNpb25JbmZvVGVzdCIsCisgICAgICAgICAgICAvLyAiSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdCIsCisgICAgICAgICAgICAvLyB0aGVzZSB0ZXN0cyBmYWlsIHNpbmNlIHRoZXJlIGlzIG5vIElDVUxvY2FsZURhdGEuamFyIHRvIHN1cHBvcnQgaXQKKyAgICAgICAgICAgIC8vIElDVVJlc291cmVCdW5kbGVUZXN0IHN1cGVyY2VkZXMgdGhlIElDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QKKyAgICAgICAgICAgICJJQ1VSZXNvdXJjZUJ1bmRsZVRlc3QiLAorICAgICAgICAgICAgIkNvbXBhY3RBcnJheVRlc3QiLAorICAgICAgICAgICAgIlN0cmluZ1Rva2VuaXplclRlc3QiLAorICAgICAgICAgICAgIkN1cnJlbmN5VGVzdCIsCisgICAgICAgICAgICAiVXRpbGl0eVRlc3QiLAorICAgICAgICAgICAgIlRyaWVUZXN0IiwKKyAgICAgICAgICAgICJMb2NhbGVEYXRhVGVzdCIsCisgICAgICAgICAgICAiVUxvY2FsZVRlc3QiLAorICAgICAgICAgICAgIkxvY2FsZUFsaWFzVGVzdCIKKyAgICAgICAgfSwKKyAgICAgICAgICAgICAgIlRlc3QgbWlzY2VsbGFuZW91cyBwdWJsaWMgdXRpbGl0aWVzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiVXRpbCI7Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJORi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJORi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMjNjODUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0Qk5GLmphdmEKQEAgLTAsMCArMSwyNDQgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKworLy9UT0RPIGludGVncmF0ZSB0aGlzIGludG8gdGhlIHRlc3QgZnJhbWV3b3JrCisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK3B1YmxpYyBjbGFzcyBUZXN0Qk5GIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gdGVzdFJ1bGVzID0geworICAgICAgICAiJHJvb3QgPSBbYWJdezN9OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYWJdezMsfTsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2FiXXszLDV9OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYWJdKjsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2FiXT87IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthYl0rOyIsCisgICAgICAgIAorICAgICAgICAiJHVzID0gW2Etel07IiArCisgICAgICAgICIkcm9vdCA9IFswLTkkdXNdOyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBhICRmb28gYj8gMjUlIGVuZCAzMCUgfCAkZm9vIDUwJTtcclxuIiArCisgICAgICAgICIkZm9vID0gY3sxLDV9IDIwJTsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2Etel17MSw1fX47IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthLXpdezV9fjsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gJ1xcJyAodSB8IFUwMDEwIHwgVTAwMCAkaGV4KSAkaGV4ezR9IDtcclxuIiArCisgICAgICAgICIkaGV4ID0gWzAtOUEtRmEtZl07IiwKKyAgICB9OworICAgICAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHVuaWNvZGVTZXRCTkYgPSAiIiArCisgICAgIiRyb290ID0gJGxlYWYgfCAnWycgJHMgJHJvb3QyICRzICddJyA7XHJcbiIgKworICAgICIkcm9vdDIgPSAkbGVhZiB8ICdbJyAkcyAkcm9vdDMgJHMgJ10nIHwgKCRyb290MyAkcyAoJG9wICRyb290MyAkcyl7MCwzfSkgO1xyXG4iICsKKyAgICAiJHJvb3QzID0gJGxlYWYgfCAnWycgJHMgJHJvb3Q0ICRzICddJyB8ICgkcm9vdDQgJHMgKCRvcCAkcm9vdDQgJHMpezAsM30pIDtcclxuIiArCisgICAgIiRyb290NCA9ICRsZWFmIHwgKCRsZWFmICRzICgkb3AgJGxlYWYgJHMpezAsM30pIDtcclxuIiArCisgICAgIiRvcCA9ICgoJyYnIHwgJy0nKSAkcyk/IDcwJTsiICsKKyAgICAiJGxlYWYgPSAnWycgJHMgJGxpc3QgJHMgJ10nIHwgJHByb3A7XHJcbiIgKworICAgICIkbGlzdCA9ICgkY2hhciAkcyAoJy0nICRzICRjaGFyICRzKT8gMzAlKXsxLDV9IDtcclxuIiArCisgICAgIiRwcm9wID0gJ1xcJyAocCB8IFApICd7JyAkcyAkcHJvcE5hbWUgJHMgJ30nIHwgJ1s6JyAnXic/ICRzICRwcm9wTmFtZSAkcyAnOl0nO1xyXG4iICsKKyAgICAiJG5lZWRzUXVvdGUgPSBbXFwtXFxdWzp3aGl0ZXNwYWNlOl1bOmNvbnRyb2w6XV0gO1xyXG4iICsKKyAgICAiJGNoYXIgPSBbW1xcdTAwMDAtXFxVMDAwMTBGRkZGXS0kbmVlZHNRdW90ZV0gfCAkcXVvdGVkIDtcclxuIiArCisgICAgIiRxdW90ZWQgPSAnXFwnICgndScgfCAnVTAwMTAnIHwgJ1UwMDAnICRoZXgpICRoZXh7NH0gO1xyXG4iICsKKyAgICAiJGhleCA9IFswLTlBLUZhLWZdO1xyXG4iICsKKyAgICAiJHMgPSAnICc/IDIwJTtcclxuIiArCisgICAgIiRwcm9wTmFtZSA9ICh3aGl0ZXNwYWNlIHwgd3MpIHwgKHVwcGVyY2FzZSB8IHVjKSB8IChsb3dlcmNhc2UgfCBsYykgfCAkY2F0ZWdvcnk7XHJcbiIgKworICAgICIkY2F0ZWdvcnkgPSAoKGdlbmVyYWwgfCBnYykgJHMgJz0nICRzKT8gJGNhdHZhbHVlO1xyXG4iICsKKyAgICAiJGNhdHZhbHVlID0gKEMgfCBPdGhlciB8IENjIHwgQ29udHJvbCB8IENmIHwgRm9ybWF0IHwgQ24gfCBVbmFzc2lnbmVkIHwgTCB8IExldHRlcik7XHJcbiI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgeworICAgICAgICB0ZXN0VG9rZW5pemVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdFJ1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0ZXN0Qk5GKHRlc3RSdWxlc1tpXSwgbnVsbCwgMjApOyAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVzdEJORih1bmljb2RlU2V0Qk5GLCBudWxsLCAyMCk7CisgICAgICAgIC8vdGVzdFBhcnNlcigpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB0ZXN0Qk5GKFN0cmluZyBydWxlcywgVW5pY29kZVNldCBjaGFycywgaW50IGNvdW50KSB7CisgICAgICAgIEJORiBibmYgPSBuZXcgQk5GKG5ldyBSYW5kb20oMCksIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKQorICAgICAgICAuYWRkU2V0KCIkY2hhcnMiLCBjaGFycykKKyAgICAgICAgLmFkZFJ1bGVzKHJ1bGVzKQorICAgICAgICAuY29tcGxldGUoKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJORiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocnVsZXMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYm5mLmdldEludGVybmFsKCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIjogIiArIGJuZi5uZXh0KCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyB0ZXN0TWFudWFsKCkgeworICAgICAgICBQaWNrIHAgPSBQaWNrLm1heWJlKDc1LFBpY2sudW5xdW90ZWQoImEiKSk7CisgICAgICAgIHRlc3RPcihwLCAxKTsKKyAgICAgICAgcCA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyIiLCAiYSIsICJiYiIsICJjY2MifSk7CisgICAgICAgIHRlc3RPcihwLCAzKTsKKyAgICAgICAgcCA9IFBpY2sucmVwZWF0KDMsIDUsIG5ldyBpbnRbXXsyMCwgMzAsIDIwfSwgImEiKTsKKyAgICAgICAgdGVzdE9yKHAsIDUpOyAgICAgICAgCisgICAgICAgIHAgPSBQaWNrLmNvZGVQb2ludCgiW2EtY2VdIik7CisgICAgICAgIHRlc3RDb2RlUG9pbnRzKHApOyAgICAgICAgCisgICAgICAgIHAgPSBQaWNrLmNvZGVQb2ludCgiW2EtY2VdIik7CisgICAgICAgIHRlc3RDb2RlUG9pbnRzKHApOyAgICAgICAgCisgICAgICAgIHAgPSBQaWNrLnN0cmluZygyLCA4LCBwKTsKKyAgICAgICAgdGVzdE9yKHAsMTApOworICAgICAgICAKKyAgICAgICAgcCA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyIiLCAiYSIsICJiYiIsICJjY2MifSk7CisgICAgICAgIHAgPSBQaWNrLmFuZChwKS5hbmQyKHApLmFuZDIoIiYiKTsKKyAgICAgICAgdGVzdE1hdGNoKHAsICJhYmImIik7CisgICAgICAgIHRlc3RNYXRjaChwLCAiYmJhIik7CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0RW5nbGlzaCgpOyAgICAgICAgCisgICAgfQorICAgICovCisgICAgCisgICAgc3RhdGljIHZvaWQgdGVzdE1hdGNoKFBpY2sgcCwgU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBQaWNrLlBvc2l0aW9uIHBwID0gbmV3IFBpY2suUG9zaXRpb24oKTsKKyAgICAgICAgYm9vbGVhbiB2YWx1ZSA9IHAubWF0Y2goc291cmNlLCBwcCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWF0Y2g6ICIgKyB2YWx1ZSArICIsICIgKyBwcCk7ICAgICAgCisgICAgfQorICAgIC8qCisgICAgc3RhdGljIHZvaWQgdGVzdFBhcnNlcigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFBpY2suVGFyZ2V0IHRhcmdldCA9IG5ldyBQaWNrLlRhcmdldCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRhcmdldC5hZGRSdWxlKHJ1bGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIAorICAgIHN0YXRpYyBjbGFzcyBDb3VudHMgeworICAgICAgICBpbnRbXSBjb3VudHM7ICAgICAgIAorICAgICAgICBDb3VudHMoaW50IG1heCkgeworICAgICAgICAgICAgY291bnRzID0gbmV3IGludFttYXgrMV07CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBpbmMoaW50IGluZGV4KSB7CisgICAgICAgICAgICBjb3VudHNbaW5kZXhdKys7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBzaG93KCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcmludGluZyBDb3VudHMiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50c1tpXSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICI6ICIgKyBjb3VudHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAiJHMgPSAnICc7IiwKKyAgICAgICAgIiRub3VuID0gZG9nIHwgaG91c2UgfCBnb3Zlcm5tZW50IHwgd2FsbCB8IHN0cmVldCB8IHplYnJhOyIsCisgICAgICAgICIkYWRqZWN0aXZlID0gcmVkIHwgZ2xvcmlvdXMgfCBzaW1wbGUgfCBuYXN0eSB8IGhlYXZ5IHwgY2xlYW47IiwKKyAgICAgICAgIiRhcnRpY2xlID0gcXVpY2tseSB8IG9kZGx5IHwgc2lsZW50bHkgfCBib2xkbHk7IiwKKyAgICAgICAgIiRhZGplY3RpdmVQaHJhc2UgPSAoJGFkdmVyYiAkcyk/IDUwJSAkYWRqZWN0aXZlKiAwJSAzMCUgMjAlIDEwJTsiLAorICAgICAgICAiJG5vdW5QaHJhc2UgPSAkYXJ0aWNsZXMgJHMgKCRhZGplY3RpdmVQaHJhc2UgJHMpPyAzMCUgJG5vdW47IiwKKyAgICAgICAgIiR2ZXJiID0gZ29lcyB8IGZpc2hlcyB8IHdhbGtzIHwgc2xlZXBzOyIsCisgICAgICAgICIkdHZlcmIgPSBjYXJyaWVzIHwgbGlmdHMgfCBvdmVydHVybnMgfCBoaXRzIHwganVtcHMgb247IiwKKyAgICAgICAgIiRjb3B1bGEgPSBpcyAzMCUgfCBzZWVtcyAxMCU7IiwKKyAgICAgICAgIiRzZW50ZW5jZTEgPSAkbm91blBocmFzZSAkcyAkdmVyYiAkcyAoJHMgJGFkdmVyYik/IDMwJTsiLAorICAgICAgICAiJHNlbnRlbmNlMiA9ICRub3VuUGhyYXNlICRzICR0dmVyYiAkcyAkbm91blBocmFzZSAoJHMgJGFkdmVyYik/IDMwJTsiLAorICAgICAgICAiJHNlbnRlbmNlMyA9ICRub3VuUGhyYXNlICRzICRjb3B1bGEgJHMgJGFkamVjdGl2ZVBocmFzZTsiLAorICAgICAgICAiJGNvbmogPSBidXQgfCBhbmQgfCBvcjsiLAorICAgICAgICAiJHNlbnRlbmNlNCA9ICRzZW50ZW5jZTEgfCAkc2VudGVuY2UyIHwgJHNlbnRlbmNlMyAyMCUgfCAkc2VudGVuY2U0ICRjb25qICRzZW50ZW5jZTQgMjAlOyIsCisgICAgICAgICIkc2VudGVuY2UgPSAkc2VudGVuY2U0ICcuJzsifTsKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGVzdEVuZ2xpc2goKSB7CisgICAgICAgIFBpY2sgcyA9IFBpY2sudW5xdW90ZWQoIiAiKTsKKyAgICAgICAgUGljayB2ZXJicyA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJnb2VzIiwgImZpc2hlcyIsICJ3YWxrcyIsICJzbGVlcHMifSk7CisgICAgICAgIFBpY2sgdHJhbnNpdGl2ZSA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJjYXJyaWVzIiwgImxpZnRzIiwgIm92ZXJ0dXJucyIsICJoaXRzIiwgImp1bXBzIG9uIn0pOworICAgICAgICBQaWNrIG5vdW5zID0gUGljay5vcihuZXcgU3RyaW5nW117ImRvZyIsICJob3VzZSIsICJnb3Zlcm5tZW50IiwgIndhbGwiLCAic3RyZWV0IiwgInplYnJhIn0pOworICAgICAgICBQaWNrIGFkamVjdGl2ZXMgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsicmVkIiwgImdsb3Jpb3VzIiwgInNpbXBsZSIsICJuYXN0eSIsICJoZWF2eSIsICJjbGVhbiJ9KTsKKyAgICAgICAgUGljayBhcnRpY2xlcyA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJ0aGUiLCAiYSJ9KTsKKyAgICAgICAgUGljayBhZHZlcmJzID0gUGljay5vcihuZXcgU3RyaW5nW117InF1aWNrbHkiLCAib2RkbHkiLCAic2lsZW50bHkiLCAiYm9sZGx5In0pOworICAgICAgICBQaWNrIGFkamVjdGl2ZVBocmFzZSA9IFBpY2suYW5kKDAuNSwgUGljay5hbmQoYWR2ZXJicykuYW5kMihzKSkuYW5kMihhZGplY3RpdmVzKTsKKyAgICAgICAgUGljayBub3VuUGhyYXNlID0gUGljay5hbmQoYXJ0aWNsZXMpLmFuZDIocykKKyAgICAgICAgICAgIC5hbmQyKDAuMywgUGljay5hbmQoYWRqZWN0aXZlUGhyYXNlKS5hbmQyKHMpKQorICAgICAgICAgICAgLmFuZDIobm91bnMpOworICAgICAgICBQaWNrIGNvcHVsYSA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJpcyIsICJzZWVtcyJ9KTsKKyAgICAgICAgUGljayBzZW50ZW5jZTEgPSBQaWNrLmFuZChub3VuUGhyYXNlKS5hbmQyKHMpLmFuZDIodmVyYnMpCisgICAgICAgICAgICAuYW5kMigwLjMsIFBpY2suYW5kKHMpLmFuZDIoYWR2ZXJicykpLm5hbWUoInMxIik7CisgICAgICAgIFBpY2sgc2VudGVuY2UyID0gUGljay5hbmQobm91blBocmFzZSkuYW5kMihzKS5hbmQyKHRyYW5zaXRpdmUpLmFuZDIocykuYW5kMihub3VuUGhyYXNlKQorICAgICAgICAgICAgLmFuZDIoMC4zLCBQaWNrLmFuZChzKS5hbmQyKGFkdmVyYnMpKS5uYW1lKCJzMiIpOworICAgICAgICBQaWNrIHNlbnRlbmNlMyA9IFBpY2suYW5kKG5vdW5QaHJhc2UpLmFuZDIocykuYW5kMihjb3B1bGEpLmFuZDIocykuYW5kMihhZGplY3RpdmVQaHJhc2UpLm5hbWUoInMzIik7CisgICAgICAgIFBpY2sgY29uaiA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyIsIGJ1dCIsICIsIGFuZCIsICIsIG9yIn0pOworICAgICAgICBQaWNrIGZvcndhcmQgPSBQaWNrLnVucXVvdGVkKCJmb3J3YXJkIik7CisgICAgICAgIFBpY2sgcGFpciA9IFBpY2suYW5kKGZvcndhcmQpLmFuZDIoY29uaikuYW5kMihzKS5hbmQyKGZvcndhcmQpLm5hbWUoInBhcnQiKTsKKyAgICAgICAgUGljayBzZW50ZW5jZUJhc2UgPSBQaWNrLm9yKHNlbnRlbmNlMSkub3IyKHNlbnRlbmNlMikub3IyKHNlbnRlbmNlMykub3IyKDAuNjY2NiwgcGFpcikubmFtZSgic2VudGVuY2UiKTsKKyAgICAgICAgc2VudGVuY2VCYXNlLnJlcGxhY2UoZm9yd2FyZCwgc2VudGVuY2VCYXNlKTsKKyAgICAgICAgUGljayBzZW50ZW5jZSA9IFBpY2suYW5kKHNlbnRlbmNlQmFzZSkuYW5kMihQaWNrLnVucXVvdGVkKCIuIikpOworICAgICAgICBQaWNrLlRhcmdldCB0YXJnZXQgPSBQaWNrLlRhcmdldC5tYWtlKHNlbnRlbmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1MDsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSArICI6ICIgKyB0YXJnZXQubmV4dCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RPcihQaWNrIHAsIGludCBjb3VudCkgeworICAgICAgICBQaWNrLlRhcmdldCB0YXJnZXQgPSBQaWNrLlRhcmdldC5tYWtlKHApOworICAgICAgICBDb3VudHMgY291bnRzID0gbmV3IENvdW50cyhjb3VudCArIDEwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gdGFyZ2V0Lm5leHQoKTsKKyAgICAgICAgICAgIGNvdW50cy5pbmMocy5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgY291bnRzLnNob3coKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0Q29kZVBvaW50cyhQaWNrIHApIHsKKyAgICAgICAgUGljay5UYXJnZXQgdGFyZ2V0ID0gUGljay5UYXJnZXQubWFrZShwKTsKKyAgICAgICAgQ291bnRzIGNvdW50cyA9IG5ldyBDb3VudHMoMTI4KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IHRhcmdldC5uZXh0KCk7CisgICAgICAgICAgICBjb3VudHMuaW5jKHMuY2hhckF0KDApKTsKKyAgICAgICAgfQorICAgICAgICBjb3VudHMuc2hvdygpOworICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludFJhbmRvbXMoKSB7CisgICAgICAgIEJORiBibmYgPSBuZXcgQk5GKG5ldyBSYW5kb20oMCksIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKQorICAgICAgICAuYWRkUnVsZXMoIlthLXpdezIsNX0iKS5jb21wbGV0ZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gYm5mLm5leHQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIilcdCIgKyB0ZW1wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdGVzdFRva2VuaXplcigpIHsKKyAgICAgICAgVG9rZW5pemVyIHQgPSBuZXcgVG9rZW5pemVyKCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBzYW1wbGVzID0geyJhJ2InYyBkICNhYmNcciBlIiwgIidhICcxMjMgMzIxIiwgCisgICAgICAgICAgICAiXFxcXCIsICJhJ2IiLCAiYSciLCAiYWJjIGRlZiU/Z2hpIiwgIiUiLCAiYSIsICJcXCBhIiwgImEnJycnYiJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNhbXBsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHQuc2V0U291cmNlKHNhbXBsZXNbaV0pOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIklucHV0OiAiICsgdC5nZXRTb3VyY2UoKSk7CisgICAgICAgICAgICBpbnQgdHlwZSA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHlwZSAhPSBUb2tlbml6ZXIuRE9ORSkgeworICAgICAgICAgICAgICAgIHR5cGUgPSB0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odC50b1N0cmluZyh0eXBlLCBmYWxzZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCit9CisKKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QmFnRm9ybWF0dGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QmFnRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5OTY2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCYWdGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDI0NiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKy8vIFRPRE8gaW50ZWdyYXRlIHRoaXMgaW50byB0aGUgdGVzdCBmcmFtZXdvcmsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLnRleHQuQ29sbGF0b3I7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLy8gVE9ETyBjaGFuZ2UgdG8gdXNlIHRlc3QgZnJhbWV3b3JrCitwdWJsaWMgY2xhc3MgVGVzdEJhZ0Zvcm1hdHRlciB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIHZvaWQgZ2VuZXJhdGVQcm9wZXJ0eUFsaWFzZXMoYm9vbGVhbiBzaG93VmFsdWVzKSB7CisgICAgICAgIGdlbmVyYXRlUHJvcGVydHlBbGlhc2VzKHNob3dWYWx1ZXMsIElDVVByb3BlcnR5RmFjdG9yeS5tYWtlKCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgdm9pZCBnZW5lcmF0ZVByb3BlcnR5QWxpYXNlcyhib29sZWFuIHNob3dWYWx1ZXMsIFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHVwcykgeworICAgICAgICBDb2xsYXRvciBvcmRlciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgVHJlZVNldCBwcm9wcyA9IG5ldyBUcmVlU2V0KG9yZGVyKTsKKyAgICAgICAgVHJlZVNldCB2YWx1ZXMgPSBuZXcgVHJlZVNldChvcmRlcik7CisgICAgICAgIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKTsKKyAgICAgICAgcHJvcHMuYWRkQWxsKHVwcy5nZXRBdmFpbGFibGVOYW1lcygpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IFVuaWNvZGVQcm9wZXJ0eS5CSU5BUlk7IGkgPCBVbmljb2RlUHJvcGVydHkuTElNSVRfVFlQRTsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVW5pY29kZVByb3BlcnR5LmdldFR5cGVOYW1lKGkpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gcHJvcHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcHJvcEFsaWFzID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5IHVwID0gdXBzLmdldFByb3BlcnR5KHByb3BBbGlhcyk7CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSB1cC5nZXRUeXBlKCk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT0gaSkgY29udGludWU7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwcm9wQWxpYXMgKyAiXHQiICsgYmYuam9pbih1cC5nZXROYW1lQWxpYXNlcygpKSk7CisgICAgICAgICAgICAgICAgaWYgKCFzaG93VmFsdWVzKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBVbmljb2RlUHJvcGVydHkuTlVNRVJJQyB8fCB0eXBlID09IFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXAgdW0gPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICAgICAgICAgICAgICB1bS5wdXRBbGwodXApOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odW0udG9TdHJpbmcobmV3IE51bWJlckNvbXBhcmF0b3IoKSkpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFsdWVzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEFsbCh1cC5nZXRBdmFpbGFibGVWYWx1ZXMoKSk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMgPSAoU3RyaW5nKWl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgYmYuam9pbih2YWx1ZUFsaWFzICsgIlx0IiArIHVwLmdldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTnVtYmVyQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIGlmIChvMSA9PSBvMikgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobzEgPT0gbnVsbCkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAobzIgPT0gbnVsbCkgcmV0dXJuIC0xOworICAgICAgICAgICAgZG91YmxlIG4xID0gRG91YmxlLnBhcnNlRG91YmxlKChTdHJpbmcpbzEpOworICAgICAgICAgICAgZG91YmxlIG4yID0gRG91YmxlLnBhcnNlRG91YmxlKChTdHJpbmcpbzIpOworICAgICAgICAgICAgcmV0dXJuIG4xIDwgbjIgPyAtMSA6IG4xID4gbjIgPyAxIDogMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0Iik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL3JlYWRDaGFyYWN0ZXJzKCk7CisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkgcHJvcCA9IElDVVByb3BlcnR5RmFjdG9yeS5tYWtlKCkuZ2V0UHJvcGVydHkoIkNhbm9uaWNhbGNvbWJpbmluZ2NsYXNzIik7CisgICAgICAgICAgICBwcm9wLmdldEF2YWlsYWJsZVZhbHVlcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBnZW5lcmF0ZVByb3BlcnR5QWxpYXNlcyh0cnVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQmFnRm9ybWF0dGVyIGJmID0gbmV3IEJhZ0Zvcm1hdHRlcigpOworCisgICAgICAgICAgICBVbmljb2RlU2V0IHVzID0gbmV3IFVuaWNvZGVTZXQoIls6Z2M9bmQ6XSIpOyAgCisgICAgICAgICAgICBCYWdGb3JtYXR0ZXIuQ09OU09MRS5wcmludGxuKCJbOmdjPW5kOl0iKTsKKyAgICAgICAgICAgIGJmLnNob3dTZXROYW1lcyhCYWdGb3JtYXR0ZXIuQ09OU09MRSx1cyk7CisKKyAgICAgICAgICAgIHVzID0gbmV3IFVuaWNvZGVTZXQoIls6bnVtZXJpY192YWx1ZT0yOl0iKTsgIAorICAgICAgICAgICAgQmFnRm9ybWF0dGVyLkNPTlNPTEUucHJpbnRsbigiWzpudW1lcmljX3ZhbHVlPTI6XSIpOworICAgICAgICAgICAgYmYuc2hvd1NldE5hbWVzKEJhZ0Zvcm1hdHRlci5DT05TT0xFLHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdXMgPSBuZXcgVW5pY29kZVNldCgiWzpudW1lcmljX3R5cGU9bnVtZXJpYzpdIik7ICAgCisgICAgICAgICAgICBCYWdGb3JtYXR0ZXIuQ09OU09MRS5wcmludGxuKCJbOm51bWVyaWNfdHlwZT1udW1lcmljOl0iKTsKKyAgICAgICAgICAgIGJmLnNob3dTZXROYW1lcyhCYWdGb3JtYXR0ZXIuQ09OU09MRSx1cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHVwcyA9IElDVVByb3BlcnR5RmFjdG9yeS5tYWtlKCk7CisgICAgICAgICAgICB1cyA9IHVwcy5nZXRTZXQoImdjPW1uIiwgbnVsbCwgbnVsbCk7IAorICAgICAgICAgICAgQmFnRm9ybWF0dGVyLkNPTlNPTEUucHJpbnRsbigiZ2M9bW4iKTsKKyAgICAgICAgICAgIGJmLnNob3dTZXROYW1lcyhCYWdGb3JtYXR0ZXIuQ09OU09MRSwgdXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodHJ1ZSkgcmV0dXJuOworICAgICAgICAgICAgLy9zaG93TmFtZXMoIk5hbWUiLCAiLipNQVJLLioiKTsKKyAgICAgICAgICAgIC8vc2hvd05hbWVzKCJORkQiLCAiYS4rIik7CisgICAgICAgICAgICAvL3Nob3dOYW1lcygiTkZEIiwgZmFsc2UpOworICAgICAgICAgICAgLy9zaG93TmFtZXMoIkxvd2VyY2FzZV9NYXBwaW5nIiwgZmFsc2UpOworICAgICAgICAgICAgLy9UZXN0VW5pY29kZVByb3BlcnR5U291cmNlLnRlc3QodHJ1ZSk7CisgICAgICAgICAgICAvL3Nob3dOYW1lcygiLipcXCBcXC0uKiIpOworCisKKyAgICAgICAgICAgIC8vY2hlY2tIVE1MKCk7CisgICAgICAgICAgICAvL3Rlc3RJc1JUTCgpOworICAgICAgICAgICAKKyAgICAgICAgICAgIC8vVGVzdFRva2VuaXplci50ZXN0KCk7CisgICAgICAgICAgICAvL1JhbmRvbUNvbGxhdG9yLmdlbmVyYXRlKCJjb2xsYXRpb25UZXN0LnR4dCIsIG51bGwpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3RQaWNrLnRlc3QoKTsKKyAgICAgICAgICAgIC8vcHJpbnRSYW5kb21zKCk7CisgICAgICAgICAgICAvL2lmICh0cnVlKSByZXR1cm47CisgICAgICAgICAgICAvL3Rlc3RMb2NhbGVzKCk7CisgICAgICAgICAgICAvL2lmICh0cnVlKSByZXR1cm47CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgVGVzdENvbGxhdG9yIHRjID0gbmV3IFRlc3RDb2xsYXRvcigpOworICAgICAgICAgICAgdGMudGVzdChSdWxlQmFzZWRDb2xsYXRvci5nZXRJbnN0YW5jZSgpLDEwMDApOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgICAgICAgICAgc2Iuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHJjLm5leHRSdWxlKHNiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc2IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKi8KKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5kIik7CisgICAgICAgfQorCisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHRlc3RMb2NhbGVzKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgU2V0IHMgPSBuZXcgVHJlZVNldChDb2xsYXRvci5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGxvY2FsZXNbaV0uZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBkbGFuZyA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheUxhbmd1YWdlKCk7CisgICAgICAgICAgICBTdHJpbmcgY291bnRyeSA9IGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpOworICAgICAgICAgICAgU3RyaW5nIGRjb3VudHJ5ID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5Q291bnRyeSgpOworICAgICAgICAgICAgaWYgKGNvdW50cnkuZXF1YWxzKCIiKSkgY29udGludWU7CisgICAgICAgICAgICBzLmFkZCgiIgorICAgICAgICAgICAgICAgICsgIlx0IiArIGRjb3VudHJ5IAorICAgICAgICAgICAgICAgICsgIlx0IiArIGNvdW50cnkgCisgICAgICAgICAgICAgICAgKyAiXHQiICsgZGxhbmcKKyAgICAgICAgICAgICAgICArICJcdCIgKyBsYW5nIAorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAvL0NvbGxlY3Rpb25Gb3JtYXR0ZXIgY2YgPSBuZXcgQ29sbGVjdGlvbkZvcm1hdHRlcigpOworICAgICAgICBQcmludFdyaXRlciBwdyA9IEJhZ0Zvcm1hdHRlci5vcGVuVVRGOFdyaXRlcigiIiwgImNvdW50cmllcy50eHQiKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oaXQubmV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBwdy5jbG9zZSgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKgorICAgICAqIFVzZSB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyB0byByb3VuZCBnZXQgYSByb3VuZGluZyB2YWx1ZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIExPRzEwID0gTWF0aC5sb2coMTApOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1c2VTaWduaWZpY2FudERpZ2l0cyhkb3VibGUgdmFsdWUsIGludCBkaWdpdHMpIHsKKyAgICAgICAgZG91YmxlIGxvZzEwID0gTWF0aC5sb2codmFsdWUpL0xPRzEwOyAvLyBsb2dbZV0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IFJUTCA9IG5ldyBVbmljb2RlU2V0KCJbWzpMOl0mW1s6YmlkaSBjbGFzcz1SOl1bOmJpZGkgY2xhc3M9QUw6XV1dIik7CisgICAgCisgICAgc3RhdGljIGJvb2xlYW4gaXNSVEwoTG9jYWxlIGxvYykgeyAgICAgICAgCisgICAgICAgIC8vIGluIDIuOCB3ZSBjYW4gdXNlIHRoZSBleGVtcGxhciBjaGFyYWN0ZXJzLCBidXQgZm9yIDIuNiB3ZSBoYXZlIHRvIHdvcmsgYXJvdW5kIGl0CisgICAgICAgIGludFtdIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUobG9jKTsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KCkKKyAgICAgICAgICAgIC5hcHBseUludFByb3BlcnR5VmFsdWUoVVByb3BlcnR5LlNDUklQVCwgc2NyaXB0cyA9PSBudWxsID8gVVNjcmlwdC5MQVRJTiA6IHNjcmlwdHNbMF0pCisgICAgICAgICAgICAucmV0YWluQWxsKFJUTCkuc2l6ZSgpICE9IDA7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHRlc3RJc1JUTCgpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IExvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIFNldCBzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzLmFkZCgoaXNSVEwobG9jYWxlc1tpXSkgPyAiUiAiIDogIkwgIikgKyBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICB9CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaXQubmV4dCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciB0b0hUTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICJhbnktaHRtbCIsICAgICAgICAKKyAgICAgICAgICAgICInPCcgPiAnJmx0OycgOyIgKworICAgICAgICAgICAgIicmJyA+ICcmYW1wOycgOyIgKworICAgICAgICAgICAgIic+JyA+ICcmZ3Q7JyA7IiArCisgICAgICAgICAgICAiJ1wiJyA+ICcmcXVvdDsnIDsgIiwKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGZyb21IVE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorICAgICAgICAiaHRtbC1hbnkiLCAgICAgICAgCisgICAgICAgICAgICAiJzwnIDwgJyYnW2xMXVtUdF0nOycgOyIgKworICAgICAgICAgICAgIicmJyA8ICcmJ1thQV1bbU1dW3BQXSc7JyA7IiArCisgICAgICAgICAgICAiJz4nIDwgJyYnW2dHXVt0VF0nOycgOyIgKworICAgICAgICAgICAgIidcIicgPCAnJidbcVFdW3VVXVtvT11bdFRdJzsnIDsgIiwKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIAorICAgIHN0YXRpYyB2b2lkIGNoZWNrSFRNTCgpIHsKKyAgICAgICAgU3RyaW5nIGZvbyA9ICImIG4gPCBiIDwgXCJhYlwiIjsKKyAgICAgICAgU3RyaW5nIGZpaSA9IHRvSFRNTC50cmFuc2xpdGVyYXRlKGZvbyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW46ICIgKyBmb28pOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm91dDogIiArIGZpaSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW4qOiAiICsgZnJvbUhUTUwudHJhbnNsaXRlcmF0ZShmaWkpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJTio6ICIgKyBmcm9tSFRNTC50cmFuc2xpdGVyYXRlKGZpaS50b1VwcGVyQ2FzZSgpKSk7CisgICAgfQorICAgIC8qCisgICAgc3RhdGljIHZvaWQgc2hvd05hbWVzKFN0cmluZyBwcm9wQWxpYXMsIGJvb2xlYW4gbWF0Y2hlcykgeworICAgICAgICBCYWdGb3JtYXR0ZXIgYmYgPSBuZXcgQmFnRm9ybWF0dGVyKCk7CisgICAgICAgIFVuaWNvZGVTZXQgc3R1ZmY7CisgICAgICAgIHN0dWZmID0gbmV3IFVuaWNvZGVQcm9wZXJ0eVNvdXJjZS5JQ1UoKQorICAgICAgICAgICAgLnNldFByb3BlcnR5QWxpYXMocHJvcEFsaWFzKQorICAgICAgICAgICAgLmdldFByb3BlcnR5U2V0KG1hdGNoZXMsIG51bGwpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYmYuc2hvd1NldE5hbWVzKHByb3BBbGlhcyArICIgd2l0aCAiICsgbWF0Y2hlcywgc3R1ZmYpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgc2hvd05hbWVzKFN0cmluZyBwcm9wQWxpYXMsIFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKTsKKyAgICAgICAgVW5pY29kZVNldCBzdHVmZjsKKyAgICAgICAgc3R1ZmYgPSBuZXcgVW5pY29kZVByb3BlcnR5U291cmNlLklDVSgpCisgICAgICAgICAgICAuc2V0UHJvcGVydHlBbGlhcyhwcm9wQWxpYXMpCisgICAgICAgICAgICAuZ2V0UHJvcGVydHlTZXQoUGF0dGVybi5jb21waWxlKHBhdHRlcm4pLm1hdGNoZXIoIiIpLCBudWxsKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJmLnNob3dTZXROYW1lcyhwcm9wQWxpYXMgKyAid2l0aCAiICsgcGF0dGVybiwgc3R1ZmYpKTsKKyAgICB9CisgICAgKi8KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGF0YV9lbi5qcHAgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGF0YV9lbi5qcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEyZjk4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REYXRhX2VuLmpwcApAQCAtMCwwICsxLDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworLyoKKyAqIEVjbGlwc2UgZXhwZWN0cyB0aGUgamF2YSBmaWxlcyBpbiBhIHBhY2thZ2UtbGlrZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvIGhhdmUgYSBwYWNrYWdlIGRlY2xhcmF0aW9uIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuCisgKiBUbyBmb29sIEVjbGlwc2UgdGhpcyBmaWxlIGhhcyBhbiAianBwIiBleHRlbnNpb24uIFRoZSBhbnQgYnVpbGQgc2NyaXB0IGNvcGllcyB0aGlzIGZpbGUgdG8gdGhlIGRlZmF1bHQgcGFja2FnZSBhbmQgcmVuYW1lcyBpdAorICogYmVmb3JlIGJ1aWxkaW5nLgorICovIAorLyoqCisgKiBAYXV0aG9yIHJhbQorICovCisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YV9lbiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIFRlc3REYXRhX2VuKCkgeworICAgICAgICAKKyAgfQorICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAiYWFhIiwKKyAgICAgICAgICAgICAgICAgInRlc3RjaXJjdWxhcmFsaWFzL2FhYiIsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICJhYWIiLAorICAgICAgICAgICAgICAgICAgInRlc3RjaXJjdWxhcmFsaWFzL2FhYyIsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICJhYWMiLAorICAgICAgICAgICAgICAgICAgInRlc3RjaXJjdWxhcmFsaWFzL2FhYSIsCisgICAgICAgICAgICAgIH0gCisgIH07CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCl7CisgICAgICByZXR1cm4gZGF0YTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZy5qcHAgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmpwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzEyZGQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZy5qcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworLyoKKyAqIEVjbGlwc2UgZXhwZWN0cyB0aGUgamF2YSBmaWxlcyBpbiBhIHBhY2thZ2UtbGlrZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvIGhhdmUgYSBwYWNrYWdlIGRlY2xhcmF0aW9uIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuCisgKiBUbyBmb29sIEVjbGlwc2UgdGhpcyBmaWxlIGhhcyBhbiAianBwIiBleHRlbnNpb24uIFRoZSBhbnQgYnVpbGQgc2NyaXB0IGNvcGllcyB0aGlzIGZpbGUgdG8gdGhlIGRlZmF1bHQgcGFja2FnZSBhbmQgcmVuYW1lcyBpdAorICogYmVmb3JlIGJ1aWxkaW5nLgorICovIAorLyoqCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgY2xhc3MgVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZyBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpeworICAgICAgICBuZXcgVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFJlc291cmNlQnVuZGxlTG9hZGluZygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJUZXN0RGF0YSIsICJlbiIpOworICAgICAgICAgICAgU3RyaW5nIGFhYSA9IGJ1bmRsZS5nZXRTdHJpbmcoImFhYSIpOworICAgICAgICAgICAgaWYoIWFhYS5lcXVhbHMoInRlc3RjaXJjdWxhcmFsaWFzL2FhYiIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRhdGEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBsb2FkIGRhdGEgIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNGaWxlTG9hZGluZygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCIiLCAidGUiKTsKKyAgICAgICAgICAgIFN0cmluZyBhYWEgPSBidW5kbGUuZ2V0U3RyaW5nKCJzdHJpbmdfb25seV9pbl90ZSIpOworICAgICAgICAgICAgaWYoIWFhYS5lcXVhbHMoIlRFIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGxvYWQgZGF0YSAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEpCMzc2NygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20uaWJtLmljdS5kZXYuZGF0YS5UZXN0RGF0YSIsICJiZ2UiKTsKKyAgICAgICAgICAgIFN0cmluZyBhYWEgPSBidW5kbGUuZ2V0U3RyaW5nKCJzdHJpbmdfb25seV9pbl90ZSIpOworICAgICAgICAgICAgaWYoIWFhYS5lcXVhbHMoIlRFIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIkdvdCA6ICIgKyBidW5kbGUuZ2V0VUxvY2FsZSgpLmdldE5hbWUoKSk7CisgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9hZCBkYXRhICIrZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RVdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RVdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzdlM2QwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdFV0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsNDcwIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ29sbGVjdGlvblV0aWxpdGllczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIFRlc3RVdGlsaXRpZXMgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgc3RhdGljIGZpbmFsIGludCBMSU1JVCA9IDB4MTU7IC8vIGxpbWl0IHRvIG1ha2UgdGVzdGluZyBtb3JlIHJlYWxpc3RpYyBpbiB0ZXJtcyBvZiBjb2xsaXNpb25zCisgICAgc3RhdGljIGZpbmFsIGludCBJVEVSQVRJT05TID0gMTAwMDAwMDsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XX1BST0dSRVNTID0gZmFsc2U7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RVdGlsaXRpZXMoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIFVuaWNvZGVNYXAgbWFwMSA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgTWFwIG1hcDIgPSBuZXcgSGFzaE1hcCgpOworICAgIE1hcCBtYXAzID0gbmV3IFRyZWVNYXAoKTsKKyAgICBTb3J0ZWRTZXQgbG9nID0gbmV3IFRyZWVTZXQoKTsKKyAgICBzdGF0aWMgU3RyaW5nW10gVEVTVF9WQUxVRVMgPSB7bnVsbCwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIn07CisgICAgc3RhdGljIFJhbmRvbSByYW5kb20gPSBuZXcgUmFuZG9tKDEyMzQ1KTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZU1hcCgpIHsKKyAgICAgICAgcmFuZG9tLnNldFNlZWQoMTIzNDUpOworICAgICAgICAvLyBkbyByYW5kb20gY2hhbmdlIHRvIGJvdGgsIHRoZW4gY29tcGFyZQorICAgICAgICBsb2dsbigiQ29tcGFyaW5nIGFnYWluc3QgSGFzaE1hcCIpOworICAgICAgICBmb3IgKGludCBjb3VudGVyID0gMDsgY291bnRlciA8IElURVJBVElPTlM7ICsrY291bnRlcikgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcmFuZG9tLm5leHRJbnQoTElNSVQpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gVEVTVF9WQUxVRVNbcmFuZG9tLm5leHRJbnQoVEVTVF9WQUxVRVMubGVuZ3RoKV07CisgICAgICAgICAgICBTdHJpbmcgbG9nbGluZSA9IFV0aWxpdHkuaGV4KHN0YXJ0KSArICJcdCIgKyB2YWx1ZTsKKyAgICAgICAgICAgIGlmIChTSE9XX1BST0dSRVNTKSBsb2dsbihjb3VudGVyICsgIlx0IiArIGxvZ2xpbmUpOworICAgICAgICAgICAgbG9nLmFkZChsb2dsaW5lKTsKKyAgICAgICAgICAgIGlmIChERUJVRyAmJiBjb3VudGVyID09IDE0NCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGRlYnVnIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXAxLnB1dChzdGFydCwgdmFsdWUpOworICAgICAgICAgICAgbWFwMi5wdXQobmV3IEludGVnZXIoc3RhcnQpLCB2YWx1ZSk7CisgICAgICAgICAgICBjaGVjayhjb3VudGVyKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja05leHQoTElNSVQpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlNldHRpbmcgR2VuZXJhbCBDYXRlZ29yeSIpOworICAgICAgICBtYXAxID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgbWFwMiA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gU0VUX0xJTUlUOyArK2NwKSB7CisgICAgICAgICAgICAgIGludCBlbnVtVmFsdWUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY3AsIHByb3BFbnVtKTsKKyAgICAgICAgICAgICAgLy9pZiAoZW51bVZhbHVlIDw9IDApIGNvbnRpbnVlOyAvLyBmb3Igc21hbGxlciBzZXQKKyAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSxlbnVtVmFsdWUsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICBtYXAxLnB1dChjcCwgdmFsdWUpOworICAgICAgICAgICAgICBtYXAyLnB1dChuZXcgSW50ZWdlcihjcCksIHZhbHVlKTsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgY2hlY2tOZXh0KEludGVnZXIuTUFYX1ZBTFVFKTsKKworCisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgR2VuZXJhbCBDYXRlZ29yeSIpOworICAgICAgICBjaGVjaygtMSk7CisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgVmFsdWVzIik7CisgICAgICAgIFNldCB2YWx1ZXMxID0gKFNldCkgbWFwMS5nZXRBdmFpbGFibGVWYWx1ZXMobmV3IFRyZWVTZXQoKSk7CisgICAgICAgIFNldCB2YWx1ZXMyID0gbmV3IFRyZWVTZXQobWFwMi52YWx1ZXMoKSk7CisgICAgICAgIFNldCB0ZW1wOworICAgICAgICBpZiAoIVRlc3RCb2lsZXJwbGF0ZS52ZXJpZnlTZXRzSWRlbnRpY2FsKHRoaXMsIHZhbHVlczEsIHZhbHVlczIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJIYWx0aW5nIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBTZXRzIik7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSB2YWx1ZXMxLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGxvZ2xuKHZhbHVlID09IG51bGwgPyAibnVsbCIgOiB2YWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0MSA9IG1hcDEuZ2V0U2V0KHZhbHVlKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0MiA9IFRlc3RCb2lsZXJwbGF0ZS5nZXRTZXQobWFwMiwgdmFsdWUpOworICAgICAgICAgICAgaWYgKCFUZXN0Qm9pbGVycGxhdGUudmVyaWZ5U2V0c0lkZW50aWNhbCh0aGlzLCBzZXQxLCBzZXQyKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkhhbHRpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJHZXR0aW5nIFNjcmlwdHMiKTsKKyAgICAgICAgVW5pY29kZU1hcCBzY3JpcHRzID0gSUNVUHJvcGVydHlGYWN0b3J5Lm1ha2UoKS5nZXRQcm9wZXJ0eSgic2NyaXB0IikuZ2V0VW5pY29kZU1hcF9pbnRlcm5hbCgpOworICAgICAgICBVbmljb2RlTWFwLkNvbXBvc2VyIGNvbXBvc2VyID0gbmV3IFVuaWNvZGVNYXAuQ29tcG9zZXIoKSB7CisJCQlwdWJsaWMgT2JqZWN0IGNvbXBvc2UoaW50IGNvZGVQb2ludCwgT2JqZWN0IGEsIE9iamVjdCBiKSB7CisJCQkJcmV0dXJuIGEudG9TdHJpbmcoKSArICJfIiArIGIudG9TdHJpbmcoKTsKKwkJCX0gICAgICAgCQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRyeWluZyBDb21wb3NlIik7CisgICAgICAgIFVuaWNvZGVNYXAgY29tcG9zZWQgPSAoKFVuaWNvZGVNYXApc2NyaXB0cy5jbG9uZUFzVGhhd2VkKCkpLmNvbXBvc2VXaXRoKG1hcDEsIGNvbXBvc2VyKTsKKyAgICAgICAgT2JqZWN0IGxhc3QgPSAiIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweDEwRkZGRjsgKytpKSB7CisgICAgICAgIAlPYmplY3QgY29tcCA9IGNvbXBvc2VkLmdldFZhbHVlKGkpOworICAgICAgICAJT2JqZWN0IGdjID0gbWFwMS5nZXRWYWx1ZShpKTsKKyAgICAgICAgCU9iamVjdCBzYyA9IHNjcmlwdHMuZ2V0VmFsdWUoaSk7CisgICAgICAgIAlpZiAoIWNvbXAuZXF1YWxzKGNvbXBvc2VyLmNvbXBvc2UoaSwgZ2MsIHNjKSkpIHsKKyAgICAgICAgCQllcnJsbigiRmFpbGVkIGNvbXBvc2UgYXQ6ICIgKyBpKTsKKyAgICAgICAgCX0KKyAgICAgICAgCWlmICghbGFzdC5lcXVhbHMoY29tcCkpIHsKKyAgICAgICAgCQlsb2dsbihVdGlsaXR5LmhleChpKSArICJcdCIgKyBjb21wKTsKKyAgICAgICAgCQlsYXN0ID0gY29tcDsKKyAgICAgICAgCX0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGJvaWxlcnBsYXRlCisgICAgICAgIExpc3QgYXJnTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgYXJnTGlzdC5hZGQoIlRlc3RNYWluIik7CisgICAgICAgIGlmIChwYXJhbXMubm90aHJvdykgYXJnTGlzdC5hZGQoIi1ub3Rocm93Iik7CisgICAgICAgIGlmIChwYXJhbXMudmVyYm9zZSkgYXJnTGlzdC5hZGQoIi12ZXJib3NlIik7CisgICAgICAgIFN0cmluZ1tdIGFyZ3MgPSBuZXcgU3RyaW5nW2FyZ0xpc3Quc2l6ZSgpXTsKKyAgICAgICAgYXJnTGlzdC50b0FycmF5KGFyZ3MpOworICAgICAgICBuZXcgVW5pY29kZU1hcEJvaWxlcnBsYXRlKCkucnVuKGFyZ3MpOworICAgICAgICAgLy8gVE9ETzogdGhlIGZvbGxvd2luZyBpcyBub3QgYmVpbmcgcmVhY2hlZAorICAgICAgICBuZXcgVW5pY29kZVNldEJvaWxlcnBsYXRlKCkucnVuKGFyZ3MpOyAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxlY3Rpb25VdGlsaXR5U3BlZWQoKSB7CisgICAgICAgIEhhc2hTZXQgaHMxID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgSGFzaFNldCBoczIgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpbnQgc2l6ZSA9IDEwMDAwMDsKKyAgICAgICAgaW50IGl0ZXJhdGlvbnMgPSAxMDA7CisgICAgICAgIFN0cmluZyBwcmVmaXggPSAiYWJjZGUiOworICAgICAgICBTdHJpbmcgcG9zdGZpeCA9ICJhYmNkZSI7CisgICAgICAgIGludCBzdGFydDEgPSAwOyAvLyAxIGZvciBzb21lLCAwIGZvciBhbGwKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICs9IDIpIGhzMS5hZGQocHJlZml4ICsgU3RyaW5nLnZhbHVlT2YoaSkgKyBwb3N0Zml4KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0MTsgaSA8IHNpemU7IGkgKz0gMikgaHMyLmFkZChwcmVmaXggKyBTdHJpbmcudmFsdWVPZihpKSArIHBvc3RmaXgpOworICAgICAgICBUcmVlU2V0IHRzMSA9IG5ldyBUcmVlU2V0KGhzMSk7CisgICAgICAgIFRyZWVTZXQgdHMyID0gbmV3IFRyZWVTZXQoaHMyKTsKKyAgICAgICAgQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc0FsbChoczEsIGhzMik7CisgICAgICAgIENvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNBbGwodHMxLCB0czIpOworICAgICAgICBsb25nIHN0YXJ0LCBlbmQ7CisgICAgICAgIGJvb2xlYW4gdGVtcCA9IGZhbHNlOworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgdGVtcCA9IENvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNBbGwoaHMxLCBoczIpOworICAgICAgICBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbG9nbG4odGVtcCArICIgIiArIChlbmQgLSBzdGFydCkvMTAwMC4wKTsKKyAgICAgICAgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHRlbXAgPSBDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zQWxsKHRzMSwgdHMyKTsKKyAgICAgICAgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGxvZ2xuKHRlbXAgKyAiICIgKyAoZW5kIC0gc3RhcnQpLzEwMDAuMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsZWN0aW9uVXRpbGl0aWVzKCkgeworCQlTdHJpbmdbXVtdIHRlc3QgPSB7eyJhIiwgImMiLCAiZSIsICJnIiwgImgiLCAieiJ9LCB7ImIiLCAiZCIsICJmIiwgImgiLCAidyJ9LCB7ICJhIiwgImIiIH0sIHsgImEiLCAiZCIgfSwgeyJkIn0sIHt9fTsgLy8gCisgICAgICAgIGludCByZXN1bHRNYXNrID0gMDsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Lmxlbmd0aDsgKytpKSB7CisJCQlDb2xsZWN0aW9uIGEgPSBuZXcgVHJlZVNldChBcnJheXMuYXNMaXN0KHRlc3RbaV0pKTsKKwkJCWZvciAoaW50IGogPSAwOyBqIDwgdGVzdC5sZW5ndGg7ICsraikgeworCQkJCUNvbGxlY3Rpb24gYiA9IG5ldyBUcmVlU2V0KEFycmF5cy5hc0xpc3QodGVzdFtqXSkpOworCQkJCWludCByZWxhdGlvbiA9IENvbGxlY3Rpb25VdGlsaXRpZXMuZ2V0Q29udGFpbm1lbnRSZWxhdGlvbihhLCBiKTsKKyAgICAgICAgICAgICAgICByZXN1bHRNYXNrIHw9ICgxIDw8IHJlbGF0aW9uKTsKKwkJCQlzd2l0Y2ggKHJlbGF0aW9uKSB7CisJCQkJY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLkFMTF9FTVBUWToKKwkJCQkJY2hlY2tDb250YWlubWVudChhLnNpemUoKSA9PSAwICYmIGIuc2l6ZSgpID09IDAsIGEsIHJlbGF0aW9uLCBiKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX1NVUEVSU0VUX0I6CisJCQkJCWNoZWNrQ29udGFpbm1lbnQoYS5zaXplKCkgPT0gMCAmJiBiLnNpemUoKSAhPSAwLCBhLCByZWxhdGlvbiwgYik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9COgorCQkJCQljaGVja0NvbnRhaW5tZW50KGEuZXF1YWxzKGIpICYmIGEuc2l6ZSgpICE9IDAsIGEsIHJlbGF0aW9uLCBiKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX1NVQlNFVF9COgorCQkJCQljaGVja0NvbnRhaW5tZW50KGEuc2l6ZSgpICE9IDAgJiYgYi5zaXplKCkgPT0gMCwgYSwgcmVsYXRpb24sIGIpOworCQkJCQlicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuQV9QUk9QRVJfU1VCU0VUX09GX0I6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29udGFpbm1lbnQoYi5jb250YWluc0FsbChhKSAmJiAhYS5lcXVhbHMoYiksIGEsIHJlbGF0aW9uLCBiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0VRVUFMU19COgorICAgICAgICAgICAgICAgICAgICBjaGVja0NvbnRhaW5tZW50KCFDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zU29tZShhLCBiKSAmJiBhLnNpemUoKSAhPSAwICYmIGIuc2l6ZSgpICE9IDAsIGEsIHJlbGF0aW9uLCBiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLkFfUFJPUEVSX1NVUEVSU0VUX0I6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29udGFpbm1lbnQoYS5jb250YWluc0FsbChiKSAmJiAhYS5lcXVhbHMoYiksIGEsIHJlbGF0aW9uLCBiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuQV9QUk9QRVJfT1ZFUkxBUFNfQjoKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb250YWlubWVudCghYi5jb250YWluc0FsbChhKSAmJiAhYS5jb250YWluc0FsbChiKSAmJiBDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zU29tZShhLCBiKSwgYSwgcmVsYXRpb24sIGIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCQkJCX0KKwkJCX0KKwkJfQorICAgICAgICBpZiAocmVzdWx0TWFzayAhPSAweEZGKSB7CisgICAgICAgICAgICBTdHJpbmcgbWlzc2luZyA9ICIiOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyArK2kpIHsKKyAgICAgICAgICAgIAlpZiAoKHJlc3VsdE1hc2sgJiAoMSA8PCBpKSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobWlzc2luZy5sZW5ndGgoKSAhPSAwKSBtaXNzaW5nICs9ICIsICI7CisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmcgKz0gUmVsYXRpb25OYW1lW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCJOb3QgYWxsIENvbnRhaW5tZW50UmVsYXRpb25zIGNoZWNrZWQ6ICIgKyBtaXNzaW5nKTsKKyAgICAgICAgfQorCX0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBSZWxhdGlvbk5hbWUgPSB7IkFMTF9FTVBUWSIsCisgICAgCQkiTk9UX0FfU1VQRVJTRVRfQiIsCisgICAgICAgICAgICAiTk9UX0FfRElTSk9JTlRfQiIsCisgICAgICAgICAgICAiTk9UX0FfU1VCU0VUX0IiLAorICAgICAgICAgICAgIkFfUFJPUEVSX1NVQlNFVF9PRl9CIiwKKyAgICAgICAgICAgICJBX1BST1BFUl9ESVNKT0lOVF9CIiwKKyAgICAgICAgICAgICJBX1BST1BFUl9TVVBFUlNFVF9CIiwKKyAgICAgICAgICAgICJBX1BST1BFUl9PVkVSTEFQU19CIn07CisKKyAgICAvKioKKwkgKiAgCisJICovCisJcHJpdmF0ZSB2b2lkIGNoZWNrQ29udGFpbm1lbnQoYm9vbGVhbiBjLCBDb2xsZWN0aW9uIGEsIGludCByZWxhdGlvbiwgQ29sbGVjdGlvbiBiKSB7CisJCWlmICghYykgeworCQkJZXJybG4oIkZhaWxzIHJlbGF0aW9uOiAiICsgYSArICIgXHQiICsgUmVsYXRpb25OYW1lW3JlbGF0aW9uXSArICIgXHQiICsgYik7CisgICAgICAgIH0JCQorCX0KKworCXByaXZhdGUgdm9pZCBjaGVja05leHQoaW50IGxpbWl0KSB7CisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgbmV4dFJhbmdlIik7CisgICAgICAgIFVuaWNvZGVNYXAuTWFwSXRlcmF0b3IgbWkgPSBuZXcgVW5pY29kZU1hcC5NYXBJdGVyYXRvcihtYXAxKTsKKyAgICAgICAgTWFwIG1hcDMgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICB3aGlsZSAobWkubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuaGV4KG1pLmNvZGVwb2ludCkgKyAiLi4iICsgVXRpbGl0eS5oZXgobWkuY29kZXBvaW50RW5kKSArICIgPT4gIiArIG1pLnZhbHVlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaS5jb2RlcG9pbnQ7IGkgPD0gbWkuY29kZXBvaW50RW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSBsaW1pdCkgY29udGludWU7CisgICAgICAgICAgICAgICAgbWFwMy5wdXQobmV3IEludGVnZXIoaSksIG1pLnZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGVja01hcChtYXAyLCBtYXAzKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgbmV4dCIpOworICAgICAgICBtaS5yZXNldCgpOworICAgICAgICBtYXAzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgT2JqZWN0IGxhc3RWYWx1ZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgd2hpbGUgKG1pLm5leHQoKSkgeworICAgICAgICAgICAgaWYgKCFVbmljb2RlTWFwLmFyZUVxdWFsKGxhc3RWYWx1ZSwgbWkudmFsdWUpKSB7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJDaGFuZ2U6ICIgKyBVdGlsaXR5LmhleChtaS5jb2RlcG9pbnQpICsgIiA9PiAiICsgbWkudmFsdWUpOworICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG1pLnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1pLmNvZGVwb2ludCA+PSBsaW1pdCkgY29udGludWU7CisgICAgICAgICAgICBtYXAzLnB1dChuZXcgSW50ZWdlcihtaS5jb2RlcG9pbnQpLCBtaS52YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tNYXAobWFwMiwgbWFwMyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNoZWNrKGludCBjb3VudGVyKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTElNSVQ7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlMSA9IG1hcDEuZ2V0VmFsdWUoaSk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUyID0gbWFwMi5nZXQobmV3IEludGVnZXIoaSkpOworICAgICAgICAgICAgaWYgKCFVbmljb2RlTWFwLmFyZUVxdWFsKHZhbHVlMSwgdmFsdWUyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKGNvdW50ZXIgKyAiIERpZmZlcmVuY2UgYXQgIiArIFV0aWxpdHkuaGV4KGkpCisgICAgICAgICAgICAgICAgICAgICArICJcdCBVbmljb2RlTWFwOiAiICsgdmFsdWUxCisgICAgICAgICAgICAgICAgICAgICArICJcdCBIYXNoTWFwOiAiICsgdmFsdWUyKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiVW5pY29kZU1hcDogIiArIG1hcDEpOworICAgICAgICAgICAgICAgIGVycmxuKCJMb2c6ICIgKyBUZXN0Qm9pbGVycGxhdGUuc2hvdyhsb2cpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiSGFzaE1hcDogIiArIFRlc3RCb2lsZXJwbGF0ZS5zaG93KG1hcDIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGNoZWNrTWFwKE1hcCBtMSwgTWFwIG0yKSB7CisgICAgICAgIGlmIChtMS5lcXVhbHMobTIpKSByZXR1cm47CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFNldCBtMWVudHJpZXMgPSBtMS5lbnRyeVNldCgpOworICAgICAgICBTZXQgbTJlbnRyaWVzID0gbTIuZW50cnlTZXQoKTsKKyAgICAgICAgZ2V0RW50cmllcygiXHJcbkluIEZpcnN0LCBhbmQgbm90IFNlY29uZCIsIG0xZW50cmllcywgbTJlbnRyaWVzLCBidWZmZXIsIDIwKTsKKyAgICAgICAgZ2V0RW50cmllcygiXHJcbkluIFNlY29uZCwgYW5kIG5vdCBGaXJzdCIsIG0yZW50cmllcywgbTFlbnRyaWVzLCBidWZmZXIsIDIwKTsKKyAgICAgICAgZXJybG4oYnVmZmVyLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgQ29tcGFyYXRvciBFTlRSWV9DT01QQVJBVE9SID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgaWYgKG8xID09IG8yKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGlmIChvMSA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAobzIgPT0gbnVsbCkgcmV0dXJuIDE7CisgICAgICAgICAgICBNYXAuRW50cnkgYSA9IChNYXAuRW50cnkpIG8xOworICAgICAgICAgICAgTWFwLkVudHJ5IGIgPSAoTWFwLkVudHJ5KSBvMjsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb21wYXJlMihhLmdldEtleSgpLCBiLmdldEtleSgpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlMihhLmdldFZhbHVlKCksIGIuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZTIoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIGlmIChvMSA9PSBvMikgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobzEgPT0gbnVsbCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKG8yID09IG51bGwpIHJldHVybiAxOworICAgICAgICAgICAgcmV0dXJuICgoQ29tcGFyYWJsZSlvMSkuY29tcGFyZVRvKG8yKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwcml2YXRlIHZvaWQgZ2V0RW50cmllcyhTdHJpbmcgdGl0bGUsIFNldCBtMWVudHJpZXMsIFNldCBtMmVudHJpZXMsIFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCBsaW1pdCkgeworICAgICAgICBTZXQgbTFfbTIgPSBuZXcgVHJlZVNldChFTlRSWV9DT01QQVJBVE9SKTsKKyAgICAgICAgbTFfbTIuYWRkQWxsKG0xZW50cmllcyk7CisgICAgICAgIG0xX20yLnJlbW92ZUFsbChtMmVudHJpZXMpOworICAgICAgICBidWZmZXIuYXBwZW5kKHRpdGxlICsgIjogIiArIG0xX20yLnNpemUoKSArICJcclxuIik7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBtMV9tMi5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBpZiAobGltaXQtLSA8IDApIHJldHVybjsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBlbnRyeSA9IChNYXAuRW50cnkpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZW50cnkuZ2V0S2V5KCkpLmFwcGVuZCgiID0+ICIpCisgICAgICAgICAgICAgLmFwcGVuZChlbnRyeS5nZXRWYWx1ZSgpKS5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9MSU1JVCA9IDB4MTBGRkZGOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0hFQ0tfTElNSVQgPSAweEZGRkY7CisgICAgc3RhdGljIGZpbmFsIE51bWJlckZvcm1hdCBwZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICBzdGF0aWMgZmluYWwgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWUoKSB7CisgICAgICAgIGRvdWJsZSBoYXNoVGltZSwgdW1UaW1lLCBpY3VUaW1lLCB0cmVlVGltZTsKKyAgICAgICAgdW1UaW1lID0gY2hlY2tTZXRUaW1lKDIwLCAwKTsKKyAgICAgICAgaGFzaFRpbWUgPSBjaGVja1NldFRpbWUoMjAsIDEpOworICAgICAgICBsb2dsbigiUGVyY2VudGFnZTogIiArIHBmLmZvcm1hdChoYXNoVGltZS91bVRpbWUpKTsKKyAgICAgICAgdHJlZVRpbWUgPSBjaGVja1NldFRpbWUoMjAsIDMpOworICAgICAgICBsb2dsbigiUGVyY2VudGFnZTogIiArIHBmLmZvcm1hdCh0cmVlVGltZS91bVRpbWUpKTsKKyAgICAgICAgLy9sb2dsbihtYXAxLnRvU3RyaW5nKCkpOworICAgICAgICAKKyAgICAgICAgdW1UaW1lID0gY2hlY2tHZXRUaW1lKDEwMDAsIDApOworICAgICAgICBoYXNoVGltZSA9IGNoZWNrR2V0VGltZSgxMDAwLCAxKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnRhZ2U6ICIgKyBwZi5mb3JtYXQoaGFzaFRpbWUvdW1UaW1lKSk7CisgICAgICAgIGljdVRpbWUgPSBjaGVja0dldFRpbWUoMTAwMCwgMik7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50YWdlOiAiICsgcGYuZm9ybWF0KGljdVRpbWUvdW1UaW1lKSk7CisgICAgICAgIHRyZWVUaW1lID0gY2hlY2tHZXRUaW1lKDEwMDAsIDMpOworICAgICAgICBsb2dsbigiUGVyY2VudGFnZTogIiArIHBmLmZvcm1hdCh0cmVlVGltZS91bVRpbWUpKTsKKyAgICB9CisgICAgCisgICAgaW50IHByb3BFbnVtID0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlk7CisgICAgCisgICAgZG91YmxlIGNoZWNrU2V0VGltZShpbnQgaXRlcmF0aW9ucywgaW50IHR5cGUpIHsKKyAgICAgICAgX2NoZWNrU2V0VGltZSgxLHR5cGUpOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gX2NoZWNrU2V0VGltZShpdGVyYXRpb25zLCB0eXBlKTsKKyAgICAgICAgbG9nbG4oKHR5cGUgPT0gMCA/ICJVbmljb2RlTWFwIiA6IHR5cGUgPT0gMSA/ICJIYXNoTWFwIiA6IHR5cGUgPT0gMiA/ICJJQ1UiIDogIlRyZWVNYXAiKSArICJcdCIgKyBuZi5mb3JtYXQocmVzdWx0KSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIGRvdWJsZSBfY2hlY2tTZXRUaW1lKGludCBpdGVyYXRpb25zLCBpbnQgdHlwZSkgeworICAgICAgICBtYXAxID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgbWFwMiA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICBkb3VibGUgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpdGVyYXRpb25zOyArK2opCisgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSBTRVRfTElNSVQ7ICsrY3ApIHsKKyAgICAgICAgICAgIGludCBlbnVtVmFsdWUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY3AsIHByb3BFbnVtKTsKKyAgICAgICAgICAgIGlmIChlbnVtVmFsdWUgPD0gMCkgY29udGludWU7IC8vIGZvciBzbWFsbGVyIHNldAorICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSxlbnVtVmFsdWUsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDogbWFwMS5wdXQoY3AsIHZhbHVlKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6IG1hcDIucHV0KG5ldyBJbnRlZ2VyKGNwKSwgdmFsdWUpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzogbWFwMy5wdXQobmV3IEludGVnZXIoY3ApLCB2YWx1ZSk7IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvdWJsZSBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgcmV0dXJuIChlbmQtc3RhcnQpLzEwMDAvaXRlcmF0aW9uczsKKyAgICB9CisgICAgCisgICAgZG91YmxlIGNoZWNrR2V0VGltZShpbnQgaXRlcmF0aW9ucywgaW50IHR5cGUpIHsKKyAgICAgICAgX2NoZWNrR2V0VGltZSgxLHR5cGUpOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gX2NoZWNrR2V0VGltZShpdGVyYXRpb25zLCB0eXBlKTsKKyAgICAgICAgbG9nbG4oKHR5cGUgPT0gMCA/ICJVbmljb2RlTWFwIiA6IHR5cGUgPT0gMSA/ICJIYXNoTWFwIiA6IHR5cGUgPT0gMiA/ICJJQ1UiIDogIlRyZWVNYXAiKSArICJcdCIgKyBuZi5mb3JtYXQocmVzdWx0KSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIGRvdWJsZSBfY2hlY2tHZXRUaW1lKGludCBpdGVyYXRpb25zLCBpbnQgdHlwZSkgeworICAgICAgICBTeXN0ZW0uZ2MoKTsKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaXRlcmF0aW9uczsgKytqKQorICAgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPCBDSEVDS19MSU1JVDsgKytjcCkgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIDA6IG1hcDEuZ2V0VmFsdWUoY3ApOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTogbWFwMi5nZXQobmV3IEludGVnZXIoY3ApKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjcCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAgIC8vaWYgKGVudW1WYWx1ZSA8PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLGVudW1WYWx1ZSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSAzOiBtYXAzLmdldChuZXcgSW50ZWdlcihjcCkpOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb3VibGUgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHJldHVybiAoZW5kLXN0YXJ0KS8xMDAwL2l0ZXJhdGlvbnM7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBVbmljb2RlTWFwQm9pbGVycGxhdGUgZXh0ZW5kcyBUZXN0Qm9pbGVycGxhdGUgeworCisgICAgICAgIC8qIAorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfaGFzU2FtZUJlaGF2aW9yKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgLy8gd2UgYXJlIHByZXR0eSBjb25maWRlbnQgaW4gdGhlIGVxdWFscyBtZXRob2QsIHNvIHdvbid0IGJvdGhlciB3aXRoIHRoaXMgcmlnaHQgbm93LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfY3JlYXRlVGVzdE9iamVjdCgpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfYWRkVGVzdE9iamVjdChMaXN0IGxpc3QpIHsKKyAgICAgICAgICAgIGlmIChsaXN0LnNpemUoKSA+IDMwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBVbmljb2RlTWFwIHJlc3VsdCA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSByYW5kb20ubmV4dEludCgyNSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gVEVTVF9WQUxVRVNbcmFuZG9tLm5leHRJbnQoVEVTVF9WQUxVRVMubGVuZ3RoKV07CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChzdGFydCwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdC5hZGQocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBTdHJpbmdCb2lsZXJwbGF0ZSBleHRlbmRzIFRlc3RCb2lsZXJwbGF0ZSB7CisKKyAgICAgICAgLyogCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19oYXNTYW1lQmVoYXZpb3IoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9oYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgcHJldHR5IGNvbmZpZGVudCBpbiB0aGUgZXF1YWxzIG1ldGhvZCwgc28gd29uJ3QgYm90aGVyIHdpdGggdGhpcyByaWdodCBub3cuCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19jcmVhdGVUZXN0T2JqZWN0KCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9hZGRUZXN0T2JqZWN0KExpc3QgbGlzdCkgeworICAgICAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMzEpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKXJhbmRvbS5uZXh0SW50KDB4RkYpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QuYWRkKHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBVbmljb2RlU2V0Qm9pbGVycGxhdGUgZXh0ZW5kcyBUZXN0Qm9pbGVycGxhdGUgeworCisgICAgICAgIC8qIAorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfaGFzU2FtZUJlaGF2aW9yKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgLy8gd2UgYXJlIHByZXR0eSBjb25maWRlbnQgaW4gdGhlIGVxdWFscyBtZXRob2QsIHNvIHdvbid0IGJvdGhlciB3aXRoIHRoaXMgcmlnaHQgbm93LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RCb2lsZXJwbGF0ZSNfY3JlYXRlVGVzdE9iamVjdCgpCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfYWRkVGVzdE9iamVjdChMaXN0IGxpc3QpIHsKKyAgICAgICAgICAgIGlmIChsaXN0LnNpemUoKSA+IDMyKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHJhbmRvbS5uZXh0SW50KDEwMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdC5hZGQocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXh0VHJpZU1hcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RleHRUcmllTWFwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjYjIzMGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXh0VHJpZU1hcFRlc3QuamF2YQpAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UZXh0VHJpZU1hcDsKKworcHVibGljIGNsYXNzIFRleHRUcmllTWFwVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgU1VOID0gbmV3IEludGVnZXIoMSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBNT04gPSBuZXcgSW50ZWdlcigyKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFRVRSA9IG5ldyBJbnRlZ2VyKDMpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgV0VEID0gbmV3IEludGVnZXIoNCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBUSFUgPSBuZXcgSW50ZWdlcig1KTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZSSSA9IG5ldyBJbnRlZ2VyKDYpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgU0FUID0gbmV3IEludGVnZXIoNyk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZPTyA9IG5ldyBJbnRlZ2VyKC0xKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEJBUiA9IG5ldyBJbnRlZ2VyKC0yKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIFRFU1REQVRBID0geworICAgICAgICB7IlN1bmRheSIsIFNVTn0sCisgICAgICAgIHsiTW9uZGF5IiwgTU9OfSwKKyAgICAgICAgeyJUdWVzZGF5IiwgVFVFfSwKKyAgICAgICAgeyJXZWRuZXNkYXkiLCBXRUR9LAorICAgICAgICB7IlRodXJzZGF5IiwgVEhVfSwKKyAgICAgICAgeyJGcmlkYXkiLCBGUkl9LAorICAgICAgICB7IlNhdHVyZGF5IiwgU0FUfSwKKyAgICAgICAgeyJTdW4iLCBTVU59LAorICAgICAgICB7Ik1vbiIsIE1PTn0sCisgICAgICAgIHsiVHVlIiwgVFVFfSwKKyAgICAgICAgeyJXZWQiLCBXRUR9LAorICAgICAgICB7IlRodSIsIFRIVX0sCisgICAgICAgIHsiRnJpIiwgRlJJfSwKKyAgICAgICAgeyJTYXQiLCBTQVR9LAorICAgICAgICB7IlMiLCBTVU59LAorICAgICAgICB7Ik0iLCBNT059LAorICAgICAgICB7IlQiLCBUVUV9LAorICAgICAgICB7IlciLCBXRUR9LAorICAgICAgICB7IlQiLCBUSFV9LAorICAgICAgICB7IkYiLCBGUkl9LAorICAgICAgICB7IlMiLCBTQVR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gVEVTVENBU0VTID0geworICAgICAgICB7IlN1bmRheSIsIFNVTiwgU1VOfSwKKyAgICAgICAgeyJzdW5kYXkiLCBudWxsLCBTVU59LAorICAgICAgICB7Ik1vIiwgTU9OLCBNT059LAorICAgICAgICB7Im1vIiwgbnVsbCwgTU9OfSwKKyAgICAgICAgeyJUaHVyc2RheSBGcmlkYXkiLCBUSFUsIFRIVX0sCisgICAgICAgIHsiVCIsIFRIVSwgVEhVfSwKKyAgICAgICAgeyJURVNUIiwgVEhVLCBUSFV9LAorICAgICAgICB7IlNVTiIsIFNBVCwgU1VOfSwKKyAgICAgICAgeyJzdXBlciIsIG51bGwsIFNBVH0sCisgICAgICAgIHsiTk8iLCBudWxsLCBudWxsfQorICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFRleHRUcmllTWFwVGVzdCB0ZXN0ID0gbmV3IFRleHRUcmllTWFwVGVzdCgpOworICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZVNlbnNpdGl2ZSgpIHsKKyAgICAgICAgVGV4dFRyaWVNYXAgbWFwID0gbmV3IFRleHRUcmllTWFwKGZhbHNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUREFUQS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbWFwLnB1dCgoU3RyaW5nKVRFU1REQVRBW2ldWzBdLCBURVNUREFUQVtpXVsxXSk7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiVGVzdCBmb3IgZ2V0KFN0cmluZykiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUQ0FTRVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoKFN0cmluZylURVNUQ0FTRVNbaV1bMF0pOworICAgICAgICAgICAgaWYgKCFlcWwodmFsdWUsIFRFU1RDQVNFU1tpXVsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBzZWFyY2ggcmVzdWx0cyAtIEV4cGVjdGVkOiIgKyBURVNUQ0FTRVNbaV1bMV0gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3QgZm9yIGdldChTdHJpbmcsIGludCkiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRleHRCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVENBU0VTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0ZXh0QnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgICAgICAgICAgdGV4dEJ1Zi5hcHBlbmQoJ1gnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRCdWYuYXBwZW5kKFRFU1RDQVNFU1tpXVswXSk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KHRleHRCdWYudG9TdHJpbmcoKSwgaSk7CisgICAgICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgVEVTVENBU0VTW2ldWzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIHNlYXJjaCByZXN1bHRzIC0gRXhwZWN0ZWQ6IiArIFRFU1RDQVNFU1tpXVsxXSArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGQgZHVwbGljYXRlZCBlbnRyeQorICAgICAgICBPYmplY3QgcHJldiA9IG1hcC5wdXQoIlN1bmRheSIsIEZPTyk7CisgICAgICAgIGlmICghZXFsKHByZXYsIFNVTikpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcHJldmlvdXMgdmFsdWUgb2YgZHVwbGljYXRlZCBlbnRyeSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgU1VOICsgIiBBY3R1YWw6IiArIHByZXYpOworICAgICAgICB9CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgdXBkYXRlZAorICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KCJTdW5kYXkiKTsKKyAgICAgICAgaWYgKCFlcWwodmFsdWUsIEZPTykpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgbWFwIHZhbHVlIGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBGT08gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIGR1cGxpY2F0ZWQgZW50cnkgd2l0aCBkaWZmZXJlbnQgY2FzaW5nCisgICAgICAgIHByZXYgPSBtYXAucHV0KCJzdW5kYXkiLCBCQVIpOworICAgICAgICBpZiAoIWVxbChwcmV2LCBudWxsKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSB2YWx1ZSBzaG91bGQgYmUgbmV3IGluIHRoZSB0cmllIG1hcCAtIEV4cGVjdGVkOm51bGwiICsgIiBBY3R1YWw6IiArIHByZXYpOworICAgICAgICB9CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgdmFsaWQKKyAgICAgICAgdmFsdWUgPSBtYXAuZ2V0KCJzdW5kYXkiKTsKKyAgICAgICAgaWYgKCFlcWwodmFsdWUsIEJBUikpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgbWFwIHZhbHVlIGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBCQVIgKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZUluc2Vuc2l0aXZlKCkgeworICAgICAgICBUZXh0VHJpZU1hcCBtYXAgPSBuZXcgVGV4dFRyaWVNYXAodHJ1ZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVERBVEEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG1hcC5wdXQoKFN0cmluZylURVNUREFUQVtpXVswXSwgVEVTVERBVEFbaV1bMV0pOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3QgZm9yIGdldChTdHJpbmcpIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVENBU0VTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KChTdHJpbmcpVEVTVENBU0VTW2ldWzBdKTsKKyAgICAgICAgICAgIGlmICghZXFsKHZhbHVlLCBURVNUQ0FTRVNbaV1bMl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc2VhcmNoIHJlc3VsdHMgLSBFeHBlY3RlZDoiICsgVEVTVENBU0VTW2ldWzJdICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgZm9yIGdldChTdHJpbmcsIGludCkiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRleHRCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVEVTVENBU0VTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0ZXh0QnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgICAgICAgICAgdGV4dEJ1Zi5hcHBlbmQoJ1gnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRCdWYuYXBwZW5kKFRFU1RDQVNFU1tpXVswXSk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KHRleHRCdWYudG9TdHJpbmcoKSwgaSk7CisgICAgICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgVEVTVENBU0VTW2ldWzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIHNlYXJjaCByZXN1bHRzIC0gRXhwZWN0ZWQ6IiArIFRFU1RDQVNFU1tpXVsyXSArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGQgZHVwbGljYXRlZCBlbnRyeQorICAgICAgICBPYmplY3QgcHJldiA9IG1hcC5wdXQoIlN1bmRheSIsIEZPTyk7CisgICAgICAgIGlmICghZXFsKHByZXYsIFNVTikpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcHJldmlvdXMgdmFsdWUgb2YgZHVwbGljYXRlZCBlbnRyeSBpcyBub3QgdmFsaWQgLSBFeHBlY3RlZDoiICsgU1VOICsgIiBBY3R1YWw6IiArIHByZXYpOworICAgICAgICB9CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgdXBkYXRlZAorICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KCJTdW5kYXkiKTsKKyAgICAgICAgaWYgKCFlcWwodmFsdWUsIEZPTykpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgbWFwIHZhbHVlIGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBGT08gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIGR1cGxpY2F0ZWQgZW50cnkgd2l0aCBkaWZmZXJlbnQgY2FzaW5nCisgICAgICAgIHByZXYgPSBtYXAucHV0KCJzdW5kYXkiLCBCQVIpOworICAgICAgICBpZiAoIWVxbChwcmV2LCBGT08pKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHZhbHVlIHNob3VsZCBiZSBuZXcgaW4gdGhlIHRyaWUgbWFwIC0gRXhwZWN0ZWQ6IiArIEZPTyArICIgQWN0dWFsOiIgKyBwcmV2KTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHZhbHVlIGlzIHVwZGF0ZWQKKyAgICAgICAgdmFsdWUgPSBtYXAuZ2V0KCJzdW5kYXkiKTsKKyAgICAgICAgaWYgKCFlcWwodmFsdWUsIEJBUikpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgbWFwIHZhbHVlIGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBCQVIgKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZXFsKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgIGlmIChvMSA9PSBudWxsIHx8IG8yID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChvMSA9PSBudWxsICYmIG8yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbzEuZXF1YWxzKG8yKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Ub2tlbml6ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rva2VuaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZDZhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Ub2tlbml6ZXIuamF2YQpAQCAtMCwwICsxLDMyMiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBUb2tlbml6ZXIgeworICAgIHByb3RlY3RlZCBTdHJpbmcgc291cmNlOworICAgIAorICAgIHByb3RlY3RlZCBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIHByb3RlY3RlZCBsb25nIG51bWJlcjsKKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCB1bmljb2RlU2V0ID0gbnVsbDsKKyAgICBwcm90ZWN0ZWQgaW50IGluZGV4OworICAgIGJvb2xlYW4gYmFja2VkdXAgPSBmYWxzZTsKKyAgICBwcm90ZWN0ZWQgaW50IGxhc3RJbmRleCA9IC0xOworICAgIHByb3RlY3RlZCBpbnQgbmV4dEluZGV4OworICAgIGludCBsYXN0VmFsdWUgPSBCQUNLRURVUF9UT09fRkFSOworICAgIFRva2VuU3ltYm9sVGFibGUgc3ltYm9sVGFibGUgPSBuZXcgVG9rZW5TeW1ib2xUYWJsZSgpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcgorICAgICAgICBRVU9URSA9ICdcJycsCisgICAgICAgIEJTTEFTSCA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBRVU9URVJTID0gbmV3IFVuaWNvZGVTZXQoKS5hZGQoUVVPVEUpLmFkZChCU0xBU0gpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgV0hJVEVTUEFDRSA9IG5ldyBVbmljb2RlU2V0KCJbIiArCisgICAgICAgICJcXHUwMDA5LVxcdTAwMERcXHUwMDIwXFx1MDA4NVxcdTIwMEVcXHUyMDBGXFx1MjAyOFxcdTIwMjkiICsKKyAgICAgICAgIl0iKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IFNZTlRBWCA9IG5ldyBVbmljb2RlU2V0KCJbIiArCisgICAgICAgICJcXHUwMDIxLVxcdTAwMkZcXHUwMDNBLVxcdTAwNDBcXHUwMDVCLVxcdTAwNjBcXHUwMDdCLVxcdTAwN0UiICsKKyAgICAgICAgIlxcdTAwQTEtXFx1MDBBN1xcdTAwQTlcXHUwMEFCLVxcdTAwQUNcXHUwMEFFIiArCisgICAgICAgICJcXHUwMEIwLVxcdTAwQjFcXHUwMEI2XFx1MDBCN1xcdTAwQkJcXHUwMEJGXFx1MDBEN1xcdTAwRjciICsKKyAgICAgICAgIlxcdTIwMTAtXFx1MjAyN1xcdTIwMzAtXFx1MjA1RVxcdTIxOTAtXFx1MkJGRiIgKworICAgICAgICAiXFx1MzAwMVxcdTMwMDNcXHUzMDA4LVxcdTMwMjBcXHUzMDMwIiArCisgICAgICAgICJcXHVGRDNFXFx1RkQzRlxcdUZFNDVcXHVGRTQ2IiArCisgICAgICAgICJdIikucmVtb3ZlQWxsKFFVT1RFUlMpLnJlbW92ZSgnJCcpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgTkVXTElORSA9IG5ldyBVbmljb2RlU2V0KCJbXFx1MDAwQVxcdTAwMERcXHUwMDg1XFx1MjAyOFxcdTIwMjldIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBERUNJTUFMID0gbmV3IFVuaWNvZGVTZXQoIls6TmQ6XSIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgTk9OX1NUUklORyA9IG5ldyBVbmljb2RlU2V0KCkKKyAgICAgICAgLmFkZEFsbChXSElURVNQQUNFKQorICAgICAgICAuYWRkQWxsKFNZTlRBWCk7CisgICAgICAgICAgIAorICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IHdoaXRlU3BhY2UgPSBXSElURVNQQUNFOworICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IHN5bnRheCA9IFNZTlRBWDsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgbm9uX3N0cmluZyA9IE5PTl9TVFJJTkc7CisKKyAgICBwcml2YXRlIHZvaWQgZml4U2V0cygpIHsKKyAgICAgICAgaWYgKHN5bnRheC5jb250YWluc1NvbWUoUVVPVEVSUykgfHwgc3ludGF4LmNvbnRhaW5zU29tZSh3aGl0ZVNwYWNlKSkgeworICAgICAgICAgICAgc3ludGF4ID0gKChVbmljb2RlU2V0KXN5bnRheC5jbG9uZSgpKS5yZW1vdmVBbGwoUVVPVEVSUykucmVtb3ZlQWxsKHdoaXRlU3BhY2UpOworICAgICAgICB9CisgICAgICAgIGlmICh3aGl0ZVNwYWNlLmNvbnRhaW5zU29tZShRVU9URVJTKSkgeworICAgICAgICAgICAgd2hpdGVTcGFjZSA9ICgoVW5pY29kZVNldCl3aGl0ZVNwYWNlLmNsb25lKCkpLnJlbW92ZUFsbChRVU9URVJTKTsKKyAgICAgICAgfQorICAgICAgICBub25fc3RyaW5nID0gbmV3IFVuaWNvZGVTZXQoc3ludGF4KQorICAgICAgICAgICAgLmFkZEFsbCh3aGl0ZVNwYWNlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFRva2VuaXplciBzZXRTb3VyY2UoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgdGhpcy5pbmRleCA9IDA7CisgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisgICAgCisgICAgcHVibGljIFRva2VuaXplciBzZXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4OworICAgICAgICByZXR1cm4gdGhpczsgLy8gZm9yIGNoYWluaW5nCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IAorICAgICAgICBET05FID0gLTEsIAorICAgICAgICBOVU1CRVIgPSAtMiwgCisgICAgICAgIFNUUklORyA9IC0zLCAKKyAgICAgICAgVU5JQ09ERVNFVCA9IC00LCAKKyAgICAgICAgVU5URVJNSU5BVEVEX1FVT1RFID0gLTUsCisgICAgICAgIEJBQ0tFRFVQX1RPT19GQVIgPSAtNjsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIEZJUlNUID0gMCwKKyAgICAgICAgSU5fTlVNQkVSID0gMSwKKyAgICAgICAgSU5fU1BBQ0UgPSAyLAorICAgICAgICBBRlRFUl9RVU9URSA9IDMsICAgIC8vIHdhcm5pbmc6IG9yZGVyIGlzIGltcG9ydGFudCBmb3Igc3dpdGNoIHN0YXRlbWVudAorICAgICAgICBJTl9TVFJJTkcgPSA0LCAKKyAgICAgICAgQUZURVJfQlNMQVNIID0gNSwgCisgICAgICAgIElOX1FVT1RFID0gNjsKKyAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5cGUsIGJvb2xlYW4gYmFja2VkdXBCZWZvcmUpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBiYWNrZWR1cCA/ICJAIiA6ICIqIjsKKyAgICAgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgRE9ORTogCisgICAgICAgICAgICAgICAgcmV0dXJuIHMrIkRvbmUiK3M7CisgICAgICAgICAgICBjYXNlIEJBQ0tFRFVQX1RPT19GQVI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHMrIklsbGVnYWwgQmFja3VwIitzOworICAgICAgICAgICAgY2FzZSBVTlRFUk1JTkFURURfUVVPVEU6IAorICAgICAgICAgICAgICAgIHJldHVybiBzKyJVbnRlcm1pbmF0ZWQgUXVvdGU9IiArIGdldFN0cmluZygpICsgczsKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBzKyJzPSIgKyBnZXRTdHJpbmcoKSArIHM7CisgICAgICAgICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgICAgICAgICByZXR1cm4gcysibj0iICsgZ2V0TnVtYmVyKCkgKyBzOworICAgICAgICAgICAgY2FzZSBVTklDT0RFU0VUOgorICAgICAgICAgICAgICAgIHJldHVybiBzKyJuPSIgKyBnZXRVbmljb2RlU2V0KCkgKyBzOyAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBzKyJjPSIgKyB1c2YuZ2V0TmFtZSh0eXBlLHRydWUpICsgczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBCYWdGb3JtYXR0ZXIgdXNmID0gbmV3IEJhZ0Zvcm1hdHRlcigpOworICAgIAorICAgIHB1YmxpYyB2b2lkIGJhY2t1cCgpIHsKKyAgICAgICAgaWYgKGJhY2tlZHVwKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWNrdXAgdG9vIGZhciIpOworICAgICAgICBiYWNrZWR1cCA9IHRydWU7CisgICAgICAgIG5leHRJbmRleCA9IGluZGV4OworICAgICAgICBpbmRleCA9IGxhc3RJbmRleDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwdWJsaWMgaW50IG5leHQyKCkgeworICAgICAgICBib29sZWFuIGJhY2tlZHVwQmVmb3JlID0gYmFja2VkdXA7CisgICAgICAgIGludCByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b1N0cmluZyhyZXN1bHQsIGJhY2tlZHVwQmVmb3JlKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSAgICAKKyAgICAqLworICAgIAorICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgaWYgKGJhY2tlZHVwKSB7CisgICAgICAgICAgICBiYWNrZWR1cCA9IGZhbHNlOworICAgICAgICAgICAgaW5kZXggPSBuZXh0SW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbGFzdFZhbHVlOworICAgICAgICB9CisgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgIGJvb2xlYW4gaW5Db21tZW50ID0gZmFsc2U7CisgICAgICAgIC8vIGNsZWFuIG9mZiBhbnkgbGVhZGluZyB3aGl0ZXNwYWNlIG9yIGNvbW1lbnRzCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gc291cmNlLmxlbmd0aCgpKSByZXR1cm4gbGFzdFZhbHVlID0gRE9ORTsKKyAgICAgICAgICAgIGNwID0gbmV4dENoYXIoKTsKKyAgICAgICAgICAgIGlmIChpbkNvbW1lbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoTkVXTElORS5jb250YWlucyhjcCkpIGluQ29tbWVudCA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gJyMnKSBpbkNvbW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF3aGl0ZVNwYWNlLmNvbnRhaW5zKGNwKSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gcmVjb3JkIHRoZSBsYXN0IGluZGV4IGluIGNhc2Ugd2UgaGF2ZSB0byBiYWNrdXAKKyAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7CisgICAgICAgIAorICAgICAgICBpZiAoY3AgPT0gJ1snKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKGluZGV4LTEpOworICAgICAgICAgICAgdW5pY29kZVNldCA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZSxwb3Msc3ltYm9sVGFibGUpOworICAgICAgICAgICAgaW5kZXggPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIHJldHVybiBsYXN0VmFsdWUgPSBVTklDT0RFU0VUOworICAgICAgICB9CisgICAgICAgIC8vIGdldCBzeW50YXggY2hhcmFjdGVyCisgICAgICAgIGlmIChzeW50YXguY29udGFpbnMoY3ApKSByZXR1cm4gbGFzdFZhbHVlID0gY3A7CisgICAgICAgIAorICAgICAgICAvLyBnZXQgbnVtYmVyLCBpZiB0aGVyZSBpcyBvbmUKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCkgPT0gQ2hhcmFjdGVyLkRFQ0lNQUxfRElHSVRfTlVNQkVSKSB7CisgICAgICAgICAgICBudW1iZXIgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShjcCk7CisgICAgICAgICAgICB3aGlsZSAoaW5kZXggPCBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IG5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCkgIT0gQ2hhcmFjdGVyLkRFQ0lNQUxfRElHSVRfTlVNQkVSKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4IC09IFVURjE2LmdldENoYXJDb3VudChjcCk7IC8vIEJBQ0tVUCEKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG51bWJlciAqPSAxMDsKKyAgICAgICAgICAgICAgICBudW1iZXIgKz0gVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoY3ApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZSA9ICBOVU1CRVI7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgaW50IHN0YXR1cyA9IElOX1NUUklORzsKKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBBRlRFUl9RVU9URTogLy8gY2hlY2sgZm9yIGRvdWJsZSAnJz8KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBRVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBJTl9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIE9USEVSV0lTRSBGQUxMIFRIUk9VR0ghISEKKyAgICAgICAgICAgICAgICBjYXNlIElOX1NUUklORzogCisgICAgICAgICAgICAgICAgICAgIGlmIChjcCA9PSBRVU9URSkgc3RhdHVzID0gSU5fUVVPVEU7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNwID09IEJTTEFTSCkgc3RhdHVzID0gQUZURVJfQlNMQVNIOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChub25fc3RyaW5nLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggLT0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsgLy8gQkFDS1VQIQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIFVURjE2LmFwcGVuZChidWZmZXIsY3ApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIElOX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICBpZiAoY3AgPT0gUVVPVEUpIHN0YXR1cyA9IEFGVEVSX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBlbHNlIFVURjE2LmFwcGVuZChidWZmZXIsY3ApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEFGVEVSX0JTTEFTSDoKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGNwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICduJzogY3AgPSAnXG4nOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOiBjcCA9ICdccic7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndCc6IGNwID0gJ1x0JzsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlcixjcCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IElOX1NUUklORzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBzb3VyY2UubGVuZ3RoKCkpIGJyZWFrOworICAgICAgICAgICAgY3AgPSBuZXh0Q2hhcigpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0dXMgPiBJTl9TVFJJTkcpIHJldHVybiBsYXN0VmFsdWUgPSBVTlRFUk1JTkFURURfUVVPVEU7CisgICAgICAgIHJldHVybiBsYXN0VmFsdWUgPSAgU1RSSU5HOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZygwLGluZGV4KSArICIkJCQiICsgc291cmNlLnN1YnN0cmluZyhpbmRleCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBsb25nIGdldE51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VW5pY29kZVNldCgpIHsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVTZXQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IG5leHRDaGFyKCkgeworICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLGluZGV4KTsKKyAgICAgICAgaW5kZXggKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICAgICAgcmV0dXJuIGNwOworICAgIH0KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlKCkgeworICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRTeW50YXgoKSB7CisgICAgICAgIHJldHVybiBzeW50YXg7CisgICAgfQorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFdoaXRlU3BhY2UoKSB7CisgICAgICAgIHJldHVybiB3aGl0ZVNwYWNlOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBzZXRTeW50YXgoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgc3ludGF4ID0gc2V0OworICAgICAgICBmaXhTZXRzKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldFdoaXRlU3BhY2UoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgd2hpdGVTcGFjZSA9IHNldDsKKyAgICAgICAgZml4U2V0cygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU2V0IGdldExvb2tlZFVwSXRlbXMoKSB7CisgICAgICAgIHJldHVybiBzeW1ib2xUYWJsZS5pdGVtc0xvb2tlZFVwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRTeW1ib2woU3RyaW5nIHZhciwgU3RyaW5nIHZhbHVlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAvLyB0aGUgbGltaXQgaXMgYWZ0ZXIgdGhlICc7Jywgc28gcmVtb3ZlIGl0CisgICAgICAgIC0tbGltaXQ7CisgICAgICAgIGNoYXJbXSBib2R5ID0gbmV3IGNoYXJbbGltaXQgLSBzdGFydF07CisgICAgICAgIHZhbHVlLmdldENoYXJzKHN0YXJ0LCBsaW1pdCwgYm9keSwgMCk7CisgICAgICAgIHN5bWJvbFRhYmxlLmFkZCh2YXIsIGJvZHkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgY2xhc3MgVG9rZW5TeW1ib2xUYWJsZSBpbXBsZW1lbnRzIFN5bWJvbFRhYmxlIHsKKyAgICAgICAgTWFwIGNvbnRlbnRzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgU2V0IGl0ZW1zTG9va2VkVXAgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcgdmFyLCBjaGFyW10gYm9keSkgeworICAgICAgICAgICAgLy8gc3RhcnQgZnJvbSAxIHRvIGF2b2lkIHRoZSAkCisgICAgICAgICAgICBjb250ZW50cy5wdXQodmFyLnN1YnN0cmluZygxKSwgYm9keSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZSNsb29rdXAoamF2YS5sYW5nLlN0cmluZykKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICAgICAgICBpdGVtc0xvb2tlZFVwLmFkZCgnJCcgKyBzKTsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcltdKWNvbnRlbnRzLmdldChzKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZSNsb29rdXBNYXRjaGVyKGludCkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBjaCkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjcGFyc2VSZWZlcmVuY2UoamF2YS5sYW5nLlN0cmluZywgamF2YS50ZXh0LlBhcnNlUG9zaXRpb24sIGludCkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGxpbWl0OyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zLnNldEluZGV4KGkpOworICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LGkpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KK30KKworLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyYW5zbGl0ZXJhdG9yVXRpbGl0aWVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmFuc2xpdGVyYXRvclV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNmQyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmFuc2xpdGVyYXRvclV0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsMTUyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JVdGlsaXRpZXMgeworCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCQorCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlclRyYW5zbGl0ZXJhdG9yRnJvbUZpbGUoU3RyaW5nIGRpciwgU3RyaW5nIGlkKSB7CisJCXRyeSB7CisJCQlTdHJpbmcgZmlsZW5hbWUgPSBpZC5yZXBsYWNlKCctJywgJ18nKSArICAiLnR4dCI7CisJCQlTdHJpbmcgcnVsZXMgPSBnZXRGaWxlQ29udGVudHMoZGlyLCBmaWxlbmFtZSk7CisJCQlUcmFuc2xpdGVyYXRvciB0OworCQkJaW50IHBvcyA9IGlkLmluZGV4T2YoJy0nKTsKKwkJCVN0cmluZyByaWQ7CisJCQlpZiAocG9zIDwgMCkgeworCQkJCXJpZCA9IGlkICsgIi1BbnkiOworCQkJCWlkID0gIkFueS0iICsgaWQ7CisJCQl9IGVsc2UgeworCQkJCXJpZCA9IGlkLnN1YnN0cmluZyhwb3MrMSkgKyAiLSIgKyBpZC5zdWJzdHJpbmcoMCwgcG9zKTsKKwkJCX0KKwkJCXQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoaWQsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKwkJCVRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoaWQpOworCQkJVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSh0KTsKKworCQkJLypTdHJpbmcgdGVzdCA9ICJcdTA0OUFcdTA0MzBcdTA0MzdcdTA0MzBcdTA0OUIiOworCQkJU3lzdGVtLm91dC5wcmludGxuKHQudHJhbnNsaXRlcmF0ZSh0ZXN0KSk7CisJCQl0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQpOworCQkJU3lzdGVtLm91dC5wcmludGxuKHQudHJhbnNsaXRlcmF0ZSh0ZXN0KSk7CisJCQkqLworCisJCQl0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKHJpZCwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworCQkJVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihyaWQpOworCQkJVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSh0KTsKKwkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmVkIG5ldyBUcmFuc2xpdGVyYXRvcjogIiArIGlkICsgIiwgIiArIHJpZCk7CisJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQl0aHJvdyAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKSBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCBvcGVuICIgKyBkaXIgKyAiLCAiICsgaWQpLmluaXRDYXVzZShlKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIHRocm93IChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24pIG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IG9wZW4gIiArIGRpciArICIsICIgKyBpZCsiICIrIGUuZ2V0TWVzc2FnZSgpKTsKKy8vI2VuZGlmCisJCX0KKwl9CisKKwkvKioKKwkgKiAKKwkgKi8KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRGaWxlQ29udGVudHMoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJQnVmZmVyZWRSZWFkZXIgYnIgPSBCYWdGb3JtYXR0ZXIub3BlblVURjhSZWFkZXIoZGlyLCBmaWxlbmFtZSk7CisvLyNlbHNlCisvLyMjICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IFRlc3RVdGlsLm9wZW5VVEY4UmVhZGVyKGRpciwgZmlsZW5hbWUpOworLy8jZW5kaWYgCisJCVN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJCXdoaWxlICh0cnVlKSB7CisJCQlTdHJpbmcgbGluZSA9IGJyLnJlYWRMaW5lKCk7CisJCQlpZiAobGluZSA9PSBudWxsKSBicmVhazsKKwkJCWlmIChsaW5lLmxlbmd0aCgpID4gMCAmJiBsaW5lLmNoYXJBdCgwKSA9PSAnXHVGRUZGJykgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDEpOworCQkJYnVmZmVyLmFwcGVuZChsaW5lKS5hcHBlbmQoIlxyXG4iKTsKKwkJfQorCQlici5jbG9zZSgpOworCQlyZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAKKwl9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkFTRV9SVUxFUyA9CisJICAgICI6OiAoaGV4LWFueS94bWwpOyIgKworCSAgICAiOjogKGhleC1hbnkveG1sMTApOyIgKyAKKwkgIAkiJzwnID4gJyZsdDsnIDsiICsKKwkgICAgIic8JyA8ICcmJ1tsTF1bVHRdJzsnIDsiICsKKwkgICAgIicmJyA+ICcmYW1wOycgOyIgKworCSAgICAiJyYnIDwgJyYnW2FBXVttTV1bcFBdJzsnIDsiICsKKwkgICAgIic+JyA8ICcmJ1tnR11bdFRdJzsnIDsiICsKKwkgICAgIidcIicgPCAnJidbcVFdW3VVXVtvT11bdFRdJzsnIDsgIiArCisJICAgICInJyA8ICcmJ1thQV1bcFBdW29PXVtzU10nOycgOyAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTlRFTlRfUlVMRVMgPQorICAgICAgICAiJz4nID4gJyZndDsnIDsiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhUTUxfUlVMRVMgPSBCQVNFX1JVTEVTICsgQ09OVEVOVF9SVUxFUyArIAorICAgIAkiJ1wiJyA+ICcmcXVvdDsnIDsgIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIVE1MX1JVTEVTX0NPTlRST0xTID0gSFRNTF9SVUxFUyArIAorICAgIAkiOjogW1s6QzpdWzpaOl1bOndoaXRlc3BhY2U6XVs6RGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludDpdXSBoZXgvdW5pY29kZSA7ICI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSFRNTF9SVUxFU19BU0NJSSA9IEhUTUxfUlVMRVMgKyAKKyAgICAJIjo6IFtbOkM6XVs6XkFTQ0lJOl1dIGFueS1oZXgveG1sIDsgIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxfUlVMRVMgPSBIVE1MX1JVTEVTICsKKwkgICAgIicnID4gJyZhcG9zOycgOyAiCis7CisgICAgCisgICAgLyoKK1RoZSBhbXBlcnNhbmQgY2hhcmFjdGVyICgmKSBhbmQgdGhlIGxlZnQgYW5nbGUgYnJhY2tldCAoPCkgTVVTVCBOT1QgYXBwZWFyIAorCitpbiB0aGVpciBsaXRlcmFsIGZvcm0sIGV4Y2VwdCB3aGVuIHVzZWQgYXMgbWFya3VwIGRlbGltaXRlcnMsIG9yIHdpdGhpbiBhIAorCitjb21tZW50LCBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24sIG9yIGEgQ0RBVEEgc2VjdGlvbi4gSWYgdGhleSBhcmUgbmVlZGVkIAorCitlbHNld2hlcmUsIHRoZXkgTVVTVCBiZSBlc2NhcGVkIHVzaW5nIGVpdGhlciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIG9yIAorCit0aGUgc3RyaW5ncyAiJmFtcDsiIGFuZCAiJmx0OyIgcmVzcGVjdGl2ZWx5LiBUaGUgcmlnaHQgYW5nbGUgYnJhY2tldCAoPikgTUFZIAorCitiZSByZXByZXNlbnRlZCB1c2luZyB0aGUgc3RyaW5nICImZ3Q7IiwgYW5kIE1VU1QsIGZvciBjb21wYXRpYmlsaXR5LCBiZSAKKworZXNjYXBlZCB1c2luZyBlaXRoZXIgIiZndDsiIG9yIGEgY2hhcmFjdGVyIHJlZmVyZW5jZSB3aGVuIGl0IGFwcGVhcnMgaW4gdGhlIHN0cmluZyAKKworIl1dPiIgaW4gY29udGVudCwgd2hlbiB0aGF0IHN0cmluZyBpcyBub3QgbWFya2luZyB0aGUgZW5kIG9mIGEgQ0RBVEEgc2VjdGlvbi4KKworSW4gdGhlIGNvbnRlbnQgb2YgZWxlbWVudHMsIGNoYXJhY3RlciBkYXRhIGlzIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBkb2VzIAorCitub3QgY29udGFpbiB0aGUgc3RhcnQtZGVsaW1pdGVyIG9mIGFueSBtYXJrdXAgYW5kIGRvZXMgbm90IGluY2x1ZGUgdGhlIAorCitDREFUQS1zZWN0aW9uLWNsb3NlIGRlbGltaXRlciwgIl1dPiIuIEluIGEgQ0RBVEEgc2VjdGlvbiwgY2hhcmFjdGVyIGRhdGEgaXMgCisKK2FueSBzdHJpbmcgb2YgY2hhcmFjdGVycyBub3QgaW5jbHVkaW5nIHRoZSBDREFUQS1zZWN0aW9uLWNsb3NlIGRlbGltaXRlciwgCisKKyJdXT4iLgorCitUbyBhbGxvdyBhdHRyaWJ1dGUgdmFsdWVzIHRvIGNvbnRhaW4gYm90aCBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZXMsIHRoZSAKKworYXBvc3Ryb3BoZSBvciBzaW5nbGUtcXVvdGUgY2hhcmFjdGVyICgnKSBNQVkgYmUgcmVwcmVzZW50ZWQgYXMgIiZhcG9zOyIsIGFuZCAKKwordGhlIGRvdWJsZS1xdW90ZSBjaGFyYWN0ZXIgKCIpIGFzICImcXVvdDsiLgorCisKKyAgICAgKi8KKyAgICAKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIHRvWE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCSJhbnkteG1sIiwgWE1MX1JVTEVTLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGZyb21YTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJInhtbC1hbnkiLCBYTUxfUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgdG9IVE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCSJhbnktaHRtbCIsIEhUTUxfUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgdG9IVE1MQ29udHJvbCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkJCSJhbnktaHRtbCIsIEhUTUxfUlVMRVNfQ09OVFJPTFMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgdG9IVE1MQXNjaWkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJCQkiYW55LWh0bWwiLCBIVE1MX1JVTEVTX0FTQ0lJLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKwlwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGZyb21IVE1MID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCSJodG1sLWFueSIsIEhUTUxfUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJpZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyaWVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGYxYjZjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyaWVUZXN0LmphdmEKQEAgLTAsMCArMSw1NzMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUJ1aWxkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllQnVpbGRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVHJpZS4gVGVzdHMgaGVyZSB3aWxsIGJlIHNpbXBsZSwgc2luY2UgYm90aCBDaGFyVHJpZSBhbmQgCisqIEludFRyaWUgYXJlIHZlcnkgc2ltaWxhciBhbmQgYXJlIGhlYXZpbHkgdXNlZCBpbiBvdGhlciBwYXJ0cyBvZiBJQ1U0Si4KKyogQ29kZXMgdXNpbmcgVHJpZXMgYXJlIGV4cGVjdGVkIHRvIGhhdmUgZGV0YWlsZWQgdGVzdHMuCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSBKYW4gMDEgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUcmllVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIFRyaWVUZXN0KCkKKyAgICB7CisgICAgfQorICAgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnW10pIAorICAgIHsKKyAgICAgICAgVHJpZVRlc3QgdGVzdCA9IG5ldyBUcmllVGVzdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgdHJpZXRlc3QiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogVmFsdWVzIGZvciBzZXR0aW5nIHBvc3NpYmx5IG92ZXJsYXBwaW5nLCBvdXQtb2Ytb3JkZXIgcmFuZ2VzIG9mIHZhbHVlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFNldFJhbmdlIAorICAgIHsKKyAgICAgICAgU2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCB2YWx1ZSwgYm9vbGVhbiBvdmVyd3JpdGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlID0gb3ZlcndyaXRlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc3RhcnQsIGxpbWl0OworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGJvb2xlYW4gb3ZlcndyaXRlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZXMgZm9yIHRlc3Rpbmc6CisgICAgICogdmFsdWUgaXMgc2V0IGZyb20gdGhlIHByZXZpb3VzIGJvdW5kYXJ5J3MgbGltaXQgdG8gYmVmb3JlCisgICAgICogdGhpcyBib3VuZGFyeSdzIGxpbWl0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ2hlY2tSYW5nZSAKKyAgICB7CisgICAgICAgIENoZWNrUmFuZ2UoaW50IGxpbWl0LCBpbnQgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbWl0OworICAgICAgICBpbnQgdmFsdWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIHN0b3JhZ2VIb2xkZXIKKyAgICB7CisgICAgICAgIGRvdWJsZSBib2d1czsgLy8gbmVlZGVkIGZvciBhbGlnaW5pbmcgdGhlIHN0b3JhZ2UKKyAgICAgICAgYnl0ZSBzdG9yYWdlW10gPSBuZXcgYnl0ZVsxMDAwMDAwMF07CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIF90ZXN0Rm9sZGVkVmFsdWUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50cyBUcmllQnVpbGRlci5EYXRhTWFuaXB1bGF0ZSAgCisgICAgeworICAgICAgICBwdWJsaWMgX3Rlc3RGb2xkZWRWYWx1ZShJbnRUcmllQnVpbGRlciBidWlsZGVyKQorICAgICAgICB7CisgICAgICAgICAgICBtX2J1aWxkZXJfID0gYnVpbGRlcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkZWRWYWx1ZShpbnQgc3RhcnQsIGludCBvZmZzZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBmb2xkZWRWYWx1ZSA9IDA7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBzdGFydCArIDB4NDAwOworICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSBtX2J1aWxkZXJfLmdldFZhbHVlKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAobV9idWlsZGVyXy5pc0luWmVyb0Jsb2NrKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBUcmllQnVpbGRlci5EQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb2xkZWRWYWx1ZSB8PSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgKysgc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmIChmb2xkZWRWYWx1ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChvZmZzZXQgPDwgMTYpIHwgZm9sZGVkVmFsdWU7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgSW50VHJpZUJ1aWxkZXIgbV9idWlsZGVyXzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgX3Rlc3RGb2xkaW5nT2Zmc2V0IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlIAorICAgIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlID4+PiAxNjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBfdGVzdEVudW1WYWx1ZSBleHRlbmRzIFRyaWVJdGVyYXRvcgorICAgIHsKKyAgICAgICAgcHVibGljIF90ZXN0RW51bVZhbHVlKFRyaWUgZGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIoZGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSBeIDB4NTU1NTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RUcmllSXRlcmF0aW9uKEludFRyaWUgdHJpZSwgQ2hlY2tSYW5nZSBjaGVja1Jhbmdlc1tdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Q2hlY2tSYW5nZXMpIAorICAgIHsKKyAgICAgICAgLy8gd3JpdGUgYSBzdHJpbmcKKyAgICAgICAgaW50IGNvdW50VmFsdWVzID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCB2YWx1ZXNbXSA9IG5ldyBpbnRbMzBdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50Q2hlY2tSYW5nZXM7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBjID0gY2hlY2tSYW5nZXNbaV0ubGltaXQ7CisgICAgICAgICAgICBpZiAoYyAhPSAwKSB7CisgICAgICAgICAgICAgICAgLS0gYzsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocywgYyk7CisgICAgICAgICAgICAgICAgdmFsdWVzW2NvdW50VmFsdWVzICsrXSA9IGNoZWNrUmFuZ2VzW2ldLnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBsaW1pdCA9IHMubGVuZ3RoKCk7CisgICAgICAgIC8vIHRyeSBmb3J3YXJkCisgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZShwIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHMsIHApOworICAgICAgICAgICAgcCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSB0cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlc1tpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3cm9uZyB2YWx1ZSBmcm9tIFVUUklFX05FWFQoVSsiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArICIpOiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSArICIgaW5zdGVhZCBvZiAweCIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWVzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB1bmxpa2UgdGhlIGMgdmVyc2lvbiBsZWFkIGlzIDAgaWYgYyBpcyBub24tc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKTsKKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjKTsgCisgICAgICAgICAgICBpZiAobGVhZCA9PSAwIAorICAgICAgICAgICAgICAgID8gdHJhaWwgIT0gcy5jaGFyQXQocCAtIDEpIAorICAgICAgICAgICAgICAgIDogIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSAKKyAgICAgICAgICAgICAgICAgIHx8ICFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSB8fCBsZWFkICE9IHMuY2hhckF0KHAgLSAyKSAKKyAgICAgICAgICAgICAgICAgIHx8IHRyYWlsICE9IHMuY2hhckF0KHAgLSAxKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3cm9uZyAobGVhZCwgdHJhaWwpIGZyb20gVVRSSUVfTkVYVChVKyIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWFkICE9IDApIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHRyaWUuZ2V0TGVhZFZhbHVlKGxlYWQpOworICAgICAgICAgICAgICAgIHZhbHVlID0gdHJpZS5nZXRUcmFpbFZhbHVlKHZhbHVlLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IHRyaWUuZ2V0U3Vycm9nYXRlVmFsdWUobGVhZCwgdHJhaWwpCisgICAgICAgICAgICAgICAgICAgICYmIHZhbHVlICE9IHZhbHVlc1tpXSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigid3JvbmcgdmFsdWUgZnJvbSBnZXR0aW5nIHN1cHBsZW1lbnRhcnkgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAidmFsdWVzIChVKyIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArICIpOiAweCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSArICIgaW5zdGVhZCBvZiAweCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlc1tpXSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0VHJpZVJhbmdlcyhTZXRSYW5nZSBzZXRSYW5nZXNbXSwgaW50IGNvdW50U2V0UmFuZ2VzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXNbXSwgaW50IGNvdW50Q2hlY2tSYW5nZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxhdGluMUxpbmVhcikgCisgICAgeworICAgICAgICBJbnRUcmllQnVpbGRlciBuZXdUcmllID0gbmV3IEludFRyaWVCdWlsZGVyKG51bGwsIDIwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tSYW5nZXNbMF0udmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmFuZ2VzWzBdLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluMUxpbmVhcik7CisgICAgCisgICAgICAgIC8vIHNldCB2YWx1ZXMgZnJvbSBzZXRSYW5nZXNbXQorICAgICAgICBib29sZWFuIG9rID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudFNldFJhbmdlczsgKysgaSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gc2V0UmFuZ2VzW2ldLnN0YXJ0OworICAgICAgICAgICAgaW50IGxpbWl0ID0gc2V0UmFuZ2VzW2ldLmxpbWl0OworICAgICAgICAgICAgaW50IHZhbHVlID0gc2V0UmFuZ2VzW2ldLnZhbHVlOworICAgICAgICAgICAgYm9vbGVhbiBvdmVyd3JpdGUgPSBzZXRSYW5nZXNbaV0ub3ZlcndyaXRlOworICAgICAgICAgICAgaWYgKChsaW1pdCAtIHN0YXJ0KSA9PSAxICYmIG92ZXJ3cml0ZSkgeworICAgICAgICAgICAgICAgIG9rICY9IG5ld1RyaWUuc2V0VmFsdWUoc3RhcnQsIHZhbHVlKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvayAmPSBuZXdUcmllLnNldFJhbmdlKHN0YXJ0LCBsaW1pdCwgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgZXJybG4oInNldHRpbmcgdmFsdWVzIGludG8gYSB0cmllIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHZlcmlmeSB0aGF0IGFsbCB0aGVzZSB2YWx1ZXMgYXJlIGluIHRoZSBuZXcgVHJpZQorICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50Q2hlY2tSYW5nZXM7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGNoZWNrUmFuZ2VzW2ldLmxpbWl0OworICAgICAgICAgICAgaW50IHZhbHVlID0gY2hlY2tSYW5nZXNbaV0udmFsdWU7CisgICAgCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBuZXdUcmllLmdldFZhbHVlKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV3VHJpZSBbVSsiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIl09PTB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG5ld1RyaWUuZ2V0VmFsdWUoc3RhcnQpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArKyBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBJbnRUcmllIHRyaWUgPSBuZXdUcmllLnNlcmlhbGl6ZShuZXcgX3Rlc3RGb2xkZWRWYWx1ZShuZXdUcmllKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBfdGVzdEZvbGRpbmdPZmZzZXQoKSk7CisgICAgCisgICAgICAgIC8vIHRlc3QgbGluZWFyIExhdGluLTEgcmFuZ2UgZnJvbSB1dHJpZV9nZXREYXRhKCkKKyAgICAgICAgaWYgKGxhdGluMUxpbmVhcikgeworICAgICAgICAgICAgc3RhcnQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudENoZWNrUmFuZ2VzICYmIHN0YXJ0IDw9IDB4ZmY7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBjaGVja1Jhbmdlc1tpXS5saW1pdDsKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSBjaGVja1Jhbmdlc1tpXS52YWx1ZTsKKyAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCAmJiBzdGFydCA8PSAweGZmKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB0cmllLmdldExhdGluMUxpbmVhclZhbHVlKChjaGFyKXN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkludFRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWVbVSsiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICJdPT0weCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllLmdldExhdGluMUxpbmVhclZhbHVlKChjaGFyKSBzdGFydCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrIHN0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAobGF0aW4xTGluZWFyICE9IHRyaWUuaXNMYXRpbjFMaW5lYXIoKSkgeworICAgICAgICAgICAgZXJybG4oInRyaWUgc2VyaWFsaXphdGlvbiBkaWQgbm90IHByZXNlcnZlICIKKyAgICAgICAgICAgICAgICAgICsgIkxhdGluLTEtbGluZWFyaXR5Iik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgYWxsIHRoZXNlIHZhbHVlcyBhcmUgaW4gdGhlIHNlcmlhbGl6ZWQgVHJpZQorICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRDaGVja1JhbmdlczsgKysgaSkgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gY2hlY2tSYW5nZXNbaV0ubGltaXQ7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBjaGVja1Jhbmdlc1tpXS52YWx1ZTsKKyAgICAKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSAweGQ4MDApIHsKKyAgICAgICAgICAgICAgICAvLyBza2lwIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgICAgICBzdGFydCA9IGxpbWl0OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPD0gMHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZTIgPSB0cmllLmdldEJNUFZhbHVlKChjaGFyKXN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInNlcmlhbGl6ZWQgdHJpZS5nZXRCTVBWYWx1ZShVKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiID09IDB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZTIpICsgIiBpbnN0ZWFkIG9mIDB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTIgPSB0cmllLmdldExlYWRWYWx1ZSgoY2hhcilzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInNlcmlhbGl6ZWQgdHJpZS5nZXRMZWFkVmFsdWUoVSsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIiA9PSAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUyKSArICIgaW5zdGVhZCBvZiAweCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCB2YWx1ZTIgPSB0cmllLmdldENvZGVQb2ludFZhbHVlKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWUyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzZXJpYWxpemVkIHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoVSsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiKT09MHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUyKSArICIgaW5zdGVhZCBvZiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArKyBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBlbnVtZXJhdGUgYW5kIHZlcmlmeSBhbGwgcmFuZ2VzCisgICAgICAgIAorICAgICAgICBpbnQgZW51bVJhbmdlcyA9IDE7CisgICAgICAgIFRyaWVJdGVyYXRvciBpdGVyICA9IG5ldyBfdGVzdEVudW1WYWx1ZSh0cmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcmVzdWx0ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICAgIHdoaWxlIChpdGVyLm5leHQocmVzdWx0KSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydCAhPSBjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzIC0xXS5saW1pdCAKKyAgICAgICAgICAgICAgICB8fCByZXN1bHQubGltaXQgIT0gY2hlY2tSYW5nZXNbZW51bVJhbmdlc10ubGltaXQKKyAgICAgICAgICAgICAgICB8fCAocmVzdWx0LnZhbHVlIF4gMHg1NTU1KSAhPSBjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzXS52YWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ1dHJpZV9lbnVtKCkgZGVsaXZlcnMgd3JvbmcgcmFuZ2UgW1UrIgorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgIi4uVSsiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQubGltaXQpICsgIl0uMHgiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQudmFsdWUgXiAweDU1NTUpIAorICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIFtVKyIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2hlY2tSYW5nZXNbZW51bVJhbmdlcyAtMV0ubGltaXQpIAorICAgICAgICAgICAgICAgICAgICAgICsgIi4uVSsiIAorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzXS5saW1pdCkgCisgICAgICAgICAgICAgICAgICAgICAgKyAiXS4weCIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoZWNrUmFuZ2VzW2VudW1SYW5nZXNdLnZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbnVtUmFuZ2VzICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHRlc3QgbGluZWFyIExhdGluLTEgcmFuZ2UKKyAgICAgICAgaWYgKHRyaWUuaXNMYXRpbjFMaW5lYXIoKSkgeworICAgICAgICAgICAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgMHgxMDA7ICsrIHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgaWYgKHRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWUoKGNoYXIpc3RhcnQpIAorICAgICAgICAgICAgICAgICAgICAhPSB0cmllLmdldExlYWRWYWx1ZSgoY2hhcilzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWVbVSsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiXT0weCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWUoKGNoYXIpc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllLmdldExlYWRWYWx1ZSgoY2hhcilzdGFydCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgX3Rlc3RUcmllSXRlcmF0aW9uKHRyaWUsIGNoZWNrUmFuZ2VzLCBjb3VudENoZWNrUmFuZ2VzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0VHJpZVJhbmdlczIoU2V0UmFuZ2Ugc2V0UmFuZ2VzW10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudFNldFJhbmdlcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tSYW5nZSBjaGVja1Jhbmdlc1tdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnRDaGVja1JhbmdlcykgCisgICAgeworICAgICAgICBfdGVzdFRyaWVSYW5nZXMoc2V0UmFuZ2VzLCBjb3VudFNldFJhbmdlcywgY2hlY2tSYW5nZXMsIGNvdW50Q2hlY2tSYW5nZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIAorICAgICAgICBfdGVzdFRyaWVSYW5nZXMoc2V0UmFuZ2VzLCBjb3VudFNldFJhbmdlcywgY2hlY2tSYW5nZXMsIGNvdW50Q2hlY2tSYW5nZXMsCisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0VHJpZVJhbmdlczQoU2V0UmFuZ2Ugc2V0UmFuZ2VzW10sIGludCBjb3VudFNldFJhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzW10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudENoZWNrUmFuZ2VzKSAKKyAgICB7CisgICAgICAgIF90ZXN0VHJpZVJhbmdlczIoc2V0UmFuZ2VzLCBjb3VudFNldFJhbmdlcywgY2hlY2tSYW5nZXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Q2hlY2tSYW5nZXMpOworICAgIH0KKyAgICAKKyAgICAvLyB0ZXN0IGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqIAorICAgICAqIHNldCBjb25zZWN1dGl2ZSByYW5nZXMsIGV2ZW4gd2l0aCB2YWx1ZSAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0UmFuZ2Ugc2V0UmFuZ2VzMVtdPXsKKyAgICAgICAgbmV3IFNldFJhbmdlKDAsICAgICAgMHgyMCwgICAgICAgMCwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDIwLCAgIDB4YTcsICAgICAgIDB4MTIzNCwgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhhNywgICAweDM0MDAsICAgICAwLCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MzQwMCwgMHg5ZmE2LCAgICAgMHg2MTYyLCBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDlmYTYsIDB4ZGE5ZSwgICAgIDB4MzEzMiwgZmFsc2UpLAorICAgICAgICAvLyB0cnkgdG8gZGlzcnVwdCBfdGVzdEZvbGRpbmdPZmZzZXQxNigpCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGRhZGEsIDB4ZWVlZSwgICAgIDB4ODdmZiwgZmFsc2UpLCAKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZWVlZSwgMHgxMTExMSwgICAgMSwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDExMTExLCAweDQ0NDQ0LCAgIDB4NjE2MiwgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHg0NDQ0NCwgMHg2MDAwMywgICAwLCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZjAwMDMsIDB4ZjAwMDQsICAgMHhmLCAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGYwMDA0LCAweGYwMDA2LCAgIDB4MTAsICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhmMDAwNiwgMHhmMDAwNywgICAweDExLCAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZjAwMDcsIDB4ZjAwMjAsICAgMHgxMiwgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGYwMDIwLCAweDExMDAwMCwgIDAsICAgICAgZmFsc2UpCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzMVtdPXsKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMCwgICAgICAwKSwgLy8gZHVtbXkgc3RhcnQgcmFuZ2UgdG8gbWFrZSBfdGVzdEVudW1SYW5nZSgpIHNpbXBsZXIKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyMCwgICAwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhhNywgICAweDEyMzQpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDM0MDAsIDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDlmYTYsIDB4NjE2MiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZGE5ZSwgMHgzMTMyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhkYWRhLCAwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhlZWVlLCAweDg3ZmYpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDExMTExLDEpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDQ0NDQ0LDB4NjE2MiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZjAwMDMsMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4ZjAwMDQsMHhmKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhmMDAwNiwweDEwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhmMDAwNywweDExKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhmMDAyMCwweDEyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgxMTAwMDAsIDApCisgICAgfTsKKyAgICAKKyAgICAvKiogCisgICAgICogc2V0IHNvbWUgaW50ZXJlc3Rpbmcgb3ZlcmxhcHBpbmcgcmFuZ2VzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0UmFuZ2Ugc2V0UmFuZ2VzMltdPXsKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MjEsICAgMHg3ZiwgICAgICAgMHg1NTU1LCB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MmY4MDAsMHgyZmVkYywgICAgMHg3YSwgICB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4NzIsICAgMHhkZCwgICAgICAgMywgICAgICB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZGQsICAgMHhkZSwgICAgICAgNCwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDJmOTg3LDB4MmZhOTgsICAgIDUsICAgICAgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDJmNzc3LDB4MmY4MzMsICAgIDAsICAgICAgdHJ1ZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDJmOTAwLDB4MmZmZWUsICAgIDEsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyZmZlZSwweDJmZmVmLCAgICAyLCAgICAgIHRydWUpCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzMltdPXsKKyAgICAgICAgLy8gZHVtbXkgc3RhcnQgcmFuZ2UgdG8gbWFrZSBfdGVzdEVudW1SYW5nZSgpIHNpbXBsZXIKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMCwgICAgICAwKSwgICAgICAgCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MjEsICAgMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4NzIsICAgMHg1NTU1KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhkZCwgICAzKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhkZSwgICA0KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZjgzMywwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZjk4NywweDdhKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZmE5OCw1KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZmVkYywweDdhKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZmZlZSwxKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyZmZlZiwyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgxMTAwMDAsIDApCisgICAgfTsKKyAgICAKKyAgICAvKiogCisgICAgICogdXNlIGEgbm9uLXplcm8gaW5pdGlhbCB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNldFJhbmdlIHNldFJhbmdlczNbXT17CisgICAgICAgIG5ldyBTZXRSYW5nZSgweDMxLCAgIDB4YTQsICAgMSwgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MzQwMCwgMHg2Nzg5LCAyLCAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgzMDAwMCwweDM0NTY3LDksICB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4NDU2NzgsMHg1Njc4OSwzLCAgdHJ1ZSkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXMzW109eworICAgICAgICAvLyBkdW1teSBzdGFydCByYW5nZSwgYWxzbyBjYXJyaWVzIHRoZSBpbml0aWFsIHZhbHVlCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDAsICAgICAgOSksICAKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgzMSwgICA5KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhhNCwgICAxKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgzNDAwLCA5KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg2Nzg5LCAyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg0NTY3OCw5KSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg1Njc4OSwzKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgxMTAwMDAsOSkKKyAgICB9OworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbnRUcmllKCkgCisgICAgeworICAgICAgICBfdGVzdFRyaWVSYW5nZXM0KHNldFJhbmdlczEsIHNldFJhbmdlczEubGVuZ3RoLCBjaGVja1JhbmdlczEsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmFuZ2VzMS5sZW5ndGgpOworICAgICAgICBfdGVzdFRyaWVSYW5nZXM0KHNldFJhbmdlczIsIHNldFJhbmdlczIubGVuZ3RoLCBjaGVja1JhbmdlczIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmFuZ2VzMi5sZW5ndGgpOyAKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzNChzZXRSYW5nZXMzLCBzZXRSYW5nZXMzLmxlbmd0aCwgY2hlY2tSYW5nZXMzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1JhbmdlczMubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENoYXJWYWx1ZXMoKQorICAgIHsKKyAgICAgICAgQ2hhclRyaWUgdHJpZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgdHJpZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpLm1fdHJpZV87CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIHVjaGFyYWN0ZXIgdHJpZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4RkZGRjsgaSArKykgeworICAgICAgICAgICAgaWYgKGkgPCAweEZGIAorICAgICAgICAgICAgICAgICYmIHRyaWUuZ2V0Qk1QVmFsdWUoKGNoYXIpaSkgCisgICAgICAgICAgICAgICAgICAgICE9IHRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWUoKGNoYXIpaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRm9yIGxhdGluIDEgY29kZXBvaW50LCBnZXRCTVBWYWx1ZSBzaG91bGQgYmUgdGhlIHNhbWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICJhcyBnZXRMYXRpbjFMaW5lYXJWYWx1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRyaWUuZ2V0Qk1QVmFsdWUoKGNoYXIpaSkgIT0gdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGb3IgQk1QIGNvZGVwb2ludCwgZ2V0Qk1QVmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAiYXMgZ2V0Q29kZXBvaW50VmFsdWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMHgxMDAwMDsgaSA8IDB4MTBmZmZmOyBpICsrKSB7CisgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGkpOworICAgICAgICAgICAgY2hhciB0cmFpbCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGkpOworICAgICAgICAgICAgY2hhciB2YWx1ZSA9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoaSk7CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdHJpZS5nZXRTdXJyb2dhdGVWYWx1ZShsZWFkLCB0cmFpbCkgfHwKKyAgICAgICAgICAgICAgICB2YWx1ZSAhPSB0cmllLmdldFRyYWlsVmFsdWUodHJpZS5nZXRMZWFkVmFsdWUobGVhZCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRm9yIE5vbi1CTVAgY29kZXBvaW50cywgZ2V0U3Vycm9nYXRlVmFsdWUgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICAgICArICJ0aGUgc2FtZSBzIGdldENvZGVwb2ludFZhbHVlIGFuZCBnZXRUcmFpbFZhbHVlIik7CisgICAgICAgICAgICB9ICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIER1bW15R2V0Rm9sZGluZ09mZnNldCBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGUgeworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8qIG5ldmVyIGdldCBub24taW5pdGlhbFZhbHVlIGRhdGEgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3REdW1teUNoYXJUcmllKCkgeworICAgICAgICBDaGFyVHJpZSB0cmllOworICAgICAgICBmaW5hbCBpbnQgaW5pdGlhbFZhbHVlPTB4MzEzLCBsZWFkVW5pdFZhbHVlPTB4YWZmZTsgCisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgaW50IGM7CisgICAgICAgIHRyaWU9bmV3IENoYXJUcmllKGluaXRpYWxWYWx1ZSwgbGVhZFVuaXRWYWx1ZSwgbmV3IER1bW15R2V0Rm9sZGluZ09mZnNldCgpKTsKKworICAgICAgICAvKiB0ZXN0IHRoYXQgYWxsIGNvZGUgcG9pbnRzIGhhdmUgaW5pdGlhbFZhbHVlICovCisgICAgICAgIGZvcihjPTA7IGM8PTB4MTBmZmZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICBpZih2YWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJUcmllL2R1bW15LmdldENvZGVQb2ludFZhbHVlKGMpKFUrIitoZXgoYykrIik9MHgiK2hleCh2YWx1ZSkrIiBpbnN0ZWFkIG9mIDB4IitoZXgoaW5pdGlhbFZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0IHRoYXQgdGhlIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgaGF2ZSBsZWFkVW5pdFZhbHVlICovCisgICAgICAgIGZvcihjPTB4ZDgwMDsgYzw9MHhkYmZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlPXRyaWUuZ2V0TGVhZFZhbHVlKChjaGFyKWMpOworICAgICAgICAgICAgaWYodmFsdWUhPWxlYWRVbml0VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2hhclRyaWUvZHVtbXkuZ2V0TGVhZFZhbHVlKGMpKFUrIitoZXgoYykrIik9MHgiK2hleCh2YWx1ZSkrIiBpbnN0ZWFkIG9mIDB4IitoZXgobGVhZFVuaXRWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdER1bW15SW50VHJpZSgpIHsKKyAgICAgICAgSW50VHJpZSB0cmllOworICAgICAgICBmaW5hbCBpbnQgaW5pdGlhbFZhbHVlPTB4MDEyMzQ1NjcsIGxlYWRVbml0VmFsdWU9MHg4OWFiY2RlZjsgCisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgaW50IGM7CisgICAgICAgIHRyaWU9bmV3IEludFRyaWUoaW5pdGlhbFZhbHVlLCBsZWFkVW5pdFZhbHVlLCBuZXcgRHVtbXlHZXRGb2xkaW5nT2Zmc2V0KCkpOworCisgICAgICAgIC8qIHRlc3QgdGhhdCBhbGwgY29kZSBwb2ludHMgaGF2ZSBpbml0aWFsVmFsdWUgKi8KKyAgICAgICAgZm9yKGM9MDsgYzw9MHgxMGZmZmY7ICsrYykgeworICAgICAgICAgICAgdmFsdWU9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW50VHJpZS9kdW1teS5nZXRDb2RlUG9pbnRWYWx1ZShjKShVKyIraGV4KGMpKyIpPTB4IitoZXgodmFsdWUpKyIgaW5zdGVhZCBvZiAweCIraGV4KGluaXRpYWxWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogdGVzdCB0aGF0IHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIGhhdmUgbGVhZFVuaXRWYWx1ZSAqLworICAgICAgICBmb3IoYz0weGQ4MDA7IGM8PTB4ZGJmZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZT10cmllLmdldExlYWRWYWx1ZSgoY2hhciljKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT1sZWFkVW5pdFZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludFRyaWUvZHVtbXkuZ2V0TGVhZFZhbHVlKGMpKFUrIitoZXgoYykrIik9MHgiK2hleCh2YWx1ZSkrIiBpbnN0ZWFkIG9mIDB4IitoZXgobGVhZFVuaXRWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVUxvY2FsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VMb2NhbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM3NmFmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VMb2NhbGVUZXN0LmphdmEKQEAgLTAsMCArMSwxMzA3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBKYW51YXJ5IDE0IDIwMDQKKyogU2luY2U6IElDVSAyLjgKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworcHVibGljIGNsYXNzIFVMb2NhbGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVTG9jYWxlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsZW5kYXIoKSB7CisgICAgICAgIC8vIFRPRE8gVGhlIENhbGVuZGFyRmFjdG9yeSBtZWNoYW5pc20gaXMgbm90IHB1YmxpYywKKyAgICAgICAgLy8gc28gd2UgY2FuJ3QgdGVzdCBpdCB5ZXQuICBJZiBpdCBiZWNvbWVzIHB1YmxpYywKKyAgICAgICAgLy8gZW5hYmxlIHRoaXMgY29kZS4KKworICAgICAgICAvLyBjbGFzcyBDRmFjdG9yeSBpbXBsZW1lbnRzIENhbGVuZGFyRmFjdG9yeSB7CisgICAgICAgIC8vICAgICBMb2NhbGUgbG9jOworICAgICAgICAvLyAgICAgQ2FsZW5kYXIgcHJvdG87CisgICAgICAgIC8vICAgICBwdWJsaWMgQ0ZhY3RvcnkoTG9jYWxlIGxvY2FsZSwgQ2FsZW5kYXIgcHJvdG90eXBlKSB7CisgICAgICAgIC8vICAgICAgICAgbG9jID0gbG9jYWxlOworICAgICAgICAvLyAgICAgICAgIHByb3RvID0gcHJvdG90eXBlOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLyAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyAgICAgICAgIC8vIGlnbm9yZSB0eiAtLSBub3QgcmVsZXZhbnQgdG8gdGhpcyB0ZXN0CisgICAgICAgIC8vICAgICAgICAgcmV0dXJuIGxvY2FsZS5lcXVhbHMobG9jKSA/CisgICAgICAgIC8vICAgICAgICAgICAgIChDYWxlbmRhcikgcHJvdG8uY2xvbmUoKSA6IG51bGw7CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8vICAgICBwdWJsaWMgU3RyaW5nIGZhY3RvcnlOYW1lKCkgeworICAgICAgICAvLyAgICAgICAgIHJldHVybiAiQ0ZhY3RvcnkiOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLyB9OworCisgICAgICAgIGNoZWNrU2VydmljZSgiZW5fVVNfQlJPT0tMWU4iLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UocmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gfSwgbnVsbCwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgQ0ZhY3RvcnkgZiA9IG5ldyBDRmFjdG9yeShsb2MsIChDYWxlbmRhcikgcHJvdG90eXBlKTsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJldHVybiBDYWxlbmRhci5yZWdpc3RlcihmLCBsb2MpOworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAgICAgICAgICAgICAgLy8gICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuIENhbGVuZGFyLnVucmVnaXN0ZXIoa2V5KTsKKyAgICAgICAgICAgICAgICAvLyAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8gQ3VycmVuY3kgZ2V0TG9jYWxlIEFQSSBpcyBvYnNvbGV0ZSBpbiAzLjIuICBTaW5jZSBpdCBub3cgcmV0dXJucyBVTG9jYWxlLlJPT1QsCisgICAgLy8gYW5kIHRoaXMgaXMgbm90IGVxdWFsIHRvIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIHpoX1RXX1RBSVBFSSwgdGhlCisgICAgLy8gY2hlY2tTZXJ2aWNlIGNhbGwgd291bGQgYWx3YXlzIGZhaWwuICBTbyB3ZSBub3cgb21pdCB0aGUgdGVzdC4KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeSgpIHsKKyAgICAgICAgY2hlY2tTZXJ2aWNlKCJ6aF9UV19UQUlQRUkiLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3VycmVuY3kuZ2V0SW5zdGFuY2UocmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBudWxsLCBuZXcgUmVnaXN0cmFyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3VycmVuY3kucmVnaXN0ZXJJbnN0YW5jZSgoQ3VycmVuY3kpIHByb3RvdHlwZSwgbG9jKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCcmVha0l0ZXJhdG9yKCkgeworICAgICAgICBjaGVja1NlcnZpY2UoImphX0pQX09TQUtBIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbnVsbCwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJyZWFrSXRlcmF0b3IpIHByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jLCBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0b3IoKSB7CisgICAgICAgIGNoZWNrU2VydmljZSgiamFfSlBfWU9LT0hBTUEiLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGF0b3IuZ2V0SW5zdGFuY2UocmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBudWxsLCBuZXcgUmVnaXN0cmFyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZSgoQ29sbGF0b3IpIHByb3RvdHlwZSwgbG9jKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2xsYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgY2hlY2tTZXJ2aWNlKCJkZV9DSF9aVVJJQ0giLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCByZXEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIG5ldyBTdWJvYmplY3QoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBwYXJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKFNpbXBsZURhdGVGb3JtYXQpIHBhcmVudCkuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sIG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIGNsYXNzIE5GYWN0b3J5IGV4dGVuZHMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgcHJvdG87CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZTsKKyAgICAgICAgICAgIHB1YmxpYyBORmFjdG9yeShVTG9jYWxlIGxvYywgTnVtYmVyRm9ybWF0IGZtdCkgeworICAgICAgICAgICAgICAgIHN1cGVyKGxvYyk7CisgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAgICAgdGhpcy5wcm90byA9IGZtdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KFVMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoTnVtYmVyRm9ybWF0KSAobG9jYWxlLmVxdWFscyhsb2MpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvLmNsb25lKCkgOiBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNoZWNrU2VydmljZSgiZnJfRlJfTklDRSIsIG5ldyBTZXJ2aWNlRmFjYWRlKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKFVMb2NhbGUgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UocmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBuZXcgU3Vib2JqZWN0KCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldChPYmplY3QgcGFyZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChEZWNpbWFsRm9ybWF0KSBwYXJlbnQpLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LCBuZXcgUmVnaXN0cmFyKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GYWN0b3J5IGYgPSBuZXcgTkZhY3RvcnkobG9jLCAoTnVtYmVyRm9ybWF0KSBwcm90b3R5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQucmVnaXN0ZXJGYWN0b3J5KGYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRVTG9jYWxlS2V5d29yZHMoKSB7CisgICAgICAgIFVMb2NhbGUgdWxvYyA9IG5ldyBVTG9jYWxlKCJlbl9MYXRuX1VTIik7CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZSgiRm9vIiwgIkZvb1ZhbHVlIik7CisgICAgICAgIGlmICghImVuX0xhdG5fVVNAZm9vPUZvb1ZhbHVlIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGFkZCBmb28ga2V5d29yZCwgZ290OiAiICsgdWxvYy5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZSgiQmFyIiwgIkJhclZhbHVlIik7CisgICAgICAgIGlmICghImVuX0xhdG5fVVNAYmFyPUJhclZhbHVlO2Zvbz1Gb29WYWx1ZSIuZXF1YWxzKHVsb2MuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byBhZGQgYmFyIGtleXdvcmQsIGdvdDogIiArIHVsb2MuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICB1bG9jID0gdWxvYy5zZXRLZXl3b3JkVmFsdWUoIkJBUiIsICJOZXdCYXJWYWx1ZSIpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTQGJhcj1OZXdCYXJWYWx1ZTtmb289Rm9vVmFsdWUiLmVxdWFscyh1bG9jLmdldE5hbWUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gY2hhbmdlIGJhciBrZXl3b3JkLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgdWxvYyA9IHVsb2Muc2V0S2V5d29yZFZhbHVlKCJCYVIiLCBudWxsKTsKKyAgICAgICAgaWYgKCEiZW5fTGF0bl9VU0Bmb289Rm9vVmFsdWUiLmVxdWFscyh1bG9jLmdldE5hbWUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gZGVsZXRlIGJhciBrZXl3b3JkLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgdWxvYyA9IHVsb2Muc2V0S2V5d29yZFZhbHVlKG51bGwsIG51bGwpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGRlbGV0ZSBhbGwga2V5d29yZHMsIGdvdDogIiArIHVsb2MuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09IEluZnJhc3RydWN0dXJlID09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBsb2NhbGUgSURzLiAgSWYgdGhleSBhcmUgZXF1YWwsIHJldHVybiAwLiAgSWYgYHN0cmluZycKKyAgICAgKiBzdGFydHMgd2l0aCBgcHJlZml4JyBwbHVzIGFuIGFkZGl0aW9uYWwgZWxlbWVudCwgdGhhdCBpcywgc3RyaW5nID09CisgICAgICogcHJlZml4ICsgJ18nICsgeCwgdGhlbiByZXR1cm4gMS4gIE90aGVyd2lzZSByZXR1cm4gYSB2YWx1ZSA8IDAuCisgICAgICovCisgICAgc3RhdGljIGludCBsb2NjbXAoU3RyaW5nIHN0cmluZywgU3RyaW5nIHByZWZpeCkgeworICAgICAgICBpbnQgc2xlbiA9IHN0cmluZy5sZW5ndGgoKSwKKyAgICAgICAgICAgIHBsZW4gPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIC8qICdyb290JyBpcyAibGVzcyB0aGFuIiBldmVyeXRoaW5nICovCisgICAgICAgIGlmIChwcmVmaXguZXF1YWxzKCJyb290IikpIHsKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmcuZXF1YWxzKCJyb290IikgPyAwIDogMTsKKyAgICAgICAgfQorICAgICAgICAvLyBPTiBKQVZBIChvbmx5IC0tIG5vdCBvbiBDIC0tIHNvbWVvbmUgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcpCisgICAgICAgIC8vIGNvbnNpZGVyICIiIHRvIGJlIGFuIGFsdGVybmF0ZSBuYW1lIGZvciAicm9vdCIuCisgICAgICAgIGlmIChwbGVuID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBzbGVuID09IDAgPyAwIDogMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmluZy5zdGFydHNXaXRoKHByZWZpeCkpIHJldHVybiAtMTsgLyogbWlzbWF0Y2ggKi8KKyAgICAgICAgaWYgKHNsZW4gPT0gcGxlbikgcmV0dXJuIDA7CisgICAgICAgIGlmIChzdHJpbmcuY2hhckF0KHBsZW4pID09ICdfJykgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiAtMjsgLyogZmFsc2UgbWF0Y2gsIGUuZy4gImVuX1VTWCIgY21wICJlbl9VUyIgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcmVxdWVzdGVkIGxvY2FsZXMsIGFuZCByZXBvcnQgcHJvYmxlbXMuCisgICAgICogVGhlIGNhbGxlciBzcGVjaWZpZXMgdGhlIGV4cGVjdGVkIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiByZXF1ZXN0ZWQKKyAgICAgKiBhbmQgdmFsaWQgKGV4cFJlcVZhbGlkKSBhbmQgYmV0d2VlbiB2YWxpZCBhbmQgYWN0dWFsIChleHBWYWxpZEFjdHVhbCkuCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiAiZ3QiIHN0cmljdGx5IGdyZWF0ZXIgdGhhbiwgZS5nLiwgZW5fVVMgPiBlbgorICAgICAqICJnZSIgZ3JlYXRlciBvciBlcXVhbCwgICAgICBlLmcuLCBlbiA+PSBlbgorICAgICAqICJlcSIgZXF1YWwsICAgICAgICAgICAgICAgICBlLmcuLCBlbiA9PSBlbgorICAgICAqLworICAgIHZvaWQgY2hlY2tsb2NzKFN0cmluZyBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVxLAorICAgICAgICAgICAgICAgICAgIExvY2FsZSB2YWxpZExvYywKKyAgICAgICAgICAgICAgICAgICBMb2NhbGUgYWN0dWFsTG9jLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBSZXFWYWxpZCwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwVmFsaWRBY3R1YWwpIHsKKyAgICAgICAgU3RyaW5nIHZhbGlkID0gdmFsaWRMb2MudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGFjdHVhbCA9IGFjdHVhbExvYy50b1N0cmluZygpOworICAgICAgICBpbnQgcmVxVmFsaWQgPSBsb2NjbXAocmVxLCB2YWxpZCk7CisgICAgICAgIGludCB2YWxpZEFjdHVhbCA9IGxvY2NtcCh2YWxpZCwgYWN0dWFsKTsKKyAgICBib29sZWFuIHJlcU9LID0gKGV4cFJlcVZhbGlkLmVxdWFscygiZ3QiKSAmJiByZXFWYWxpZCA+IDApIHx8CisgICAgICAgIChleHBSZXFWYWxpZC5lcXVhbHMoImdlIikgJiYgcmVxVmFsaWQgPj0gMCkgfHwKKyAgICAgICAgKGV4cFJlcVZhbGlkLmVxdWFscygiZXEiKSAmJiByZXFWYWxpZCA9PSAwKTsKKyAgICBib29sZWFuIHZhbE9LID0gKGV4cFZhbGlkQWN0dWFsLmVxdWFscygiZ3QiKSAmJiB2YWxpZEFjdHVhbCA+IDApIHx8CisgICAgICAgIChleHBWYWxpZEFjdHVhbC5lcXVhbHMoImdlIikgJiYgdmFsaWRBY3R1YWwgPj0gMCkgfHwKKyAgICAgICAgKGV4cFZhbGlkQWN0dWFsLmVxdWFscygiZXEiKSAmJiB2YWxpZEFjdHVhbCA9PSAwKTsKKyAgICAgICAgaWYgKHJlcU9LICYmIHZhbE9LKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBsYWJlbCArICI7IHJlcT0iICsgcmVxICsgIiwgdmFsaWQ9IiArIHZhbGlkICsKKyAgICAgICAgICAgICAgICAgICIsIGFjdHVhbD0iICsgYWN0dWFsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGFiZWwgKyAiOyByZXE9IiArIHJlcSArICIsIHZhbGlkPSIgKyB2YWxpZCArCisgICAgICAgICAgICAgICAgICAiLCBhY3R1YWw9IiArIGFjdHVhbCArCisgICAgICAgICAgKHJlcU9LID8gIiIgOiAiXG4gIHJlcSAhIiArIGV4cFJlcVZhbGlkICsgIiB2YWxpZCIpICsKKyAgICAgICAgICAodmFsT0sgPyAiIiA6ICJcbiAgdmFsICEiICsgZXhwVmFsaWRBY3R1YWwgKyAiIGFjdHVhbCIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVyZmFjZSB1c2VkIGJ5IGNoZWNrU2VydmljZSBkZWZpbmluZyBhIHByb3RvY29sIHRvIGNyZWF0ZSBhbgorICAgICAqIG9iamVjdCwgZ2l2ZW4gYSByZXF1ZXN0ZWQgbG9jYWxlLgorICAgICAqLworICAgIGludGVyZmFjZSBTZXJ2aWNlRmFjYWRlIHsKKyAgICAgICAgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcXVlc3RlZExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJmYWNlIHVzZWQgYnkgY2hlY2tTZXJ2aWNlIGRlZmluaW5nIGEgcHJvdG9jb2wgdG8gZ2V0IGEKKyAgICAgKiBjb250YWluZWQgc3Vib2JqZWN0LCBnaXZlbiBpdHMgcGFyZW50IG9iamVjdC4KKyAgICAgKi8KKyAgICBpbnRlcmZhY2UgU3Vib2JqZWN0IHsKKyAgICAgICAgT2JqZWN0IGdldChPYmplY3QgcGFyZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcmZhY2UgdXNlZCBieSBjaGVja1NlcnZpY2UgZGVmaW5pbmcgYSBwcm90b2NvbCB0byByZWdpc3RlcgorICAgICAqIGFuZCB1bnJlZ2lzdGVyIGEgc2VydmljZSBvYmplY3QgcHJvdG90eXBlLgorICAgICAqLworICAgIGludGVyZmFjZSBSZWdpc3RyYXIgeworICAgICAgICBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpOworICAgICAgICBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlIHJlZmxlY3Rpb24gdG8gY2FsbCBnZXRMb2NhbGUoKSBvbiB0aGUgZ2l2ZW4gb2JqZWN0IHRvCisgICAgICogZGV0ZXJtaW5lIGJvdGggdGhlIHZhbGlkIGFuZCB0aGUgYWN0dWFsIGxvY2FsZS4gIFZlcmlmeSB0aGVzZQorICAgICAqIGZvciBjb3JyZWN0bmVzcy4KKyAgICAgKi8KKyAgICB2b2lkIGNoZWNrT2JqZWN0KFN0cmluZyByZXF1ZXN0ZWRMb2NhbGUsIE9iamVjdCBvYmosCisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUmVxVmFsaWQsIFN0cmluZyBleHBWYWxpZEFjdHVhbCkgeworICAgICAgICBDbGFzc1tdIHBhcmFtcyA9IG5ldyBDbGFzc1tdIHsgVUxvY2FsZS5UeXBlLmNsYXNzIH07CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGFzcyBjbHMgPSBvYmouZ2V0Q2xhc3MoKTsKKyAgICAgICAgICAgIE1ldGhvZCBnZXRMb2NhbGUgPSBjbHMuZ2V0TWV0aG9kKCJnZXRMb2NhbGUiLCBwYXJhbXMpOworICAgICAgICAgICAgVUxvY2FsZSB2YWxpZCA9IChVTG9jYWxlKSBnZXRMb2NhbGUuaW52b2tlKG9iaiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlLlZBTElEX0xPQ0FMRSB9KTsKKyAgICAgICAgICAgIFVMb2NhbGUgYWN0dWFsID0gKFVMb2NhbGUpIGdldExvY2FsZS5pbnZva2Uob2JqLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgICAgIFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSB9KTsKKyAgICAgICAgICAgIGNoZWNrbG9jcyhjbHMuZ2V0TmFtZSgpLCByZXF1ZXN0ZWRMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgdmFsaWQudG9Mb2NhbGUoKSwgYWN0dWFsLnRvTG9jYWxlKCksCisgICAgICAgICAgICAgICAgICAgICAgZXhwUmVxVmFsaWQsIGV4cFZhbGlkQWN0dWFsKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2UgdGhlIGZvbGxvd2luZyBleGNlcHRpb25zIF9zcGVjaWZpY18gLS0gZG8gbm90CisgICAgICAgIC8vIGNhdGNoKEV4Y2VwdGlvbiksIHNpbmNlIHRoYXQgd2lsbCBjYXRjaCB0aGUgZXhjZXB0aW9uCisgICAgICAgIC8vIHRoYXQgZXJybG4gdGhyb3dzLgorICAgICAgICBjYXRjaChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgLy8gbm8gbG9uZ2VyIGFuIGVycm9yLCBDdXJyZW5jeSBoYXMgbm8gZ2V0TG9jYWxlCisgICAgICAgICAgICAvLyBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlMSk7CisgICAgICAgIH0gY2F0Y2goU2VjdXJpdHlFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiByZWZsZWN0aW9uIGZhaWxlZDogIiArIGUyKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUzKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlMyk7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGU0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlNCk7CisgICAgICAgIH0gY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlNSkgeworICAgICAgICAvLyBubyBsb25nZXIgYW4gZXJyb3IsIEN1cnJlbmN5IGhhcyBubyBnZXRMb2NhbGUKKyAgICAgICAgICAgIC8vIGVycmxuKCJGQUlMOiByZWZsZWN0aW9uIGZhaWxlZDogIiArIGU1KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29ycmVjdCBnZXRMb2NhbGUoKSBiZWhhdmlvciBmb3IgdGhlIGdpdmVuIHNlcnZpY2UuCisgICAgICogQHBhcmFtIHJlcXVlc3RlZExvY2FsZSB0aGUgbG9jYWxlIHRvIHJlcXVlc3QuICBUaGlzIE1VU1QgQkUKKyAgICAgKiBGQUtFLiAgSW4gb3RoZXIgd29yZHMsIGl0IHNob3VsZCBiZSBzb21ldGhpbmcgbGlrZQorICAgICAqIGVuX1VTX0ZBS0VWQVJJQU5UIHNvIHRoaXMgbWV0aG9kIGNhbiB2ZXJpZnkgY29ycmVjdCBmYWxsYmFjaworICAgICAqIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSBzdmMgYSBmYWN0b3J5IG9iamVjdCB0aGF0IGNhbiBjcmVhdGUgdGhlIG9iamVjdCB0byBiZQorICAgICAqIHRlc3RlZC4gIFRoaXMgaXNuJ3QgbmVjZXNzYXJ5IGhlcmUgKG9uZSBjb3VsZCBqdXN0IHBhc3MgaW4gdGhlCisgICAgICogb2JqZWN0KSBidXQgaXMgcmVxdWlyZWQgZm9yIHRoZSBvdmVybG9hZCBvZiB0aGlzIG1ldGhvZCB0aGF0CisgICAgICogdGFrZXMgYSBSZWdpc3RyYXIuCisgICAgICovCisgICAgdm9pZCBjaGVja1NlcnZpY2UoU3RyaW5nIHJlcXVlc3RlZExvY2FsZSwgU2VydmljZUZhY2FkZSBzdmMpIHsKKyAgICAgICAgY2hlY2tTZXJ2aWNlKHJlcXVlc3RlZExvY2FsZSwgc3ZjLCBudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvcnJlY3QgZ2V0TG9jYWxlKCkgYmVoYXZpb3IgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlLgorICAgICAqIEBwYXJhbSByZXF1ZXN0ZWRMb2NhbGUgdGhlIGxvY2FsZSB0byByZXF1ZXN0LiAgVGhpcyBNVVNUIEJFCisgICAgICogRkFLRS4gIEluIG90aGVyIHdvcmRzLCBpdCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UKKyAgICAgKiBlbl9VU19GQUtFVkFSSUFOVCBzbyB0aGlzIG1ldGhvZCBjYW4gdmVyaWZ5IGNvcnJlY3QgZmFsbGJhY2sKKyAgICAgKiBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0gc3ZjIGEgZmFjdG9yeSBvYmplY3QgdGhhdCBjYW4gY3JlYXRlIHRoZSBvYmplY3QgdG8gYmUKKyAgICAgKiB0ZXN0ZWQuCisgICAgICogQHBhcmFtIHN1YiBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSBhIHN1Ym9iamVjdAorICAgICAqIHdoaWNoIHNob3VsZCBhbHNvIGJlIHRlc3RlZC4gIE1heSBiZSBudWxsLgorICAgICAqIEBwYXJhbSByZWcgYW4gb2JqZWN0IHRoYXQgc3VwcGxpZXMgdGhlIHJlZ2lzdHJhdGlvbiBhbmQKKyAgICAgKiB1bnJlZ2lzdHJhdGlvbiBmdW5jdGlvbmFsaXR5IHRvIGJlIHRlc3RlZC4gIE1heSBiZSBudWxsLgorICAgICAqLworICAgIHZvaWQgY2hlY2tTZXJ2aWNlKFN0cmluZyByZXF1ZXN0ZWRMb2NhbGUsIFNlcnZpY2VGYWNhZGUgc3ZjLAorICAgICAgICAgICAgICAgICAgICAgIFN1Ym9iamVjdCBzdWIsIFJlZ2lzdHJhciByZWcpIHsKKyAgICAgICAgVUxvY2FsZSByZXEgPSBuZXcgVUxvY2FsZShyZXF1ZXN0ZWRMb2NhbGUpOworICAgICAgICBPYmplY3Qgb2JqID0gc3ZjLmNyZWF0ZShyZXEpOworICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIG9iaiwgImd0IiwgImdlIik7CisgICAgICAgIGlmIChzdWIgIT0gbnVsbCkgeworICAgICAgICAgICAgT2JqZWN0IHN1Ym9iaiA9IHN1Yi5nZXQob2JqKTsKKyAgICAgICAgICAgIGNoZWNrT2JqZWN0KHJlcXVlc3RlZExvY2FsZSwgc3Vib2JqLCAiZ3QiLCAiZ2UiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVnICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJJbmZvOiBSZWdpc3RlcmluZyBzZXJ2aWNlIik7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gcmVnLnJlZ2lzdGVyKHJlcSwgb2JqKTsKKyAgICAgICAgICAgIE9iamVjdCBvYmpSZWcgPSBzdmMuY3JlYXRlKHJlcSk7CisgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIG9ialJlZywgImVxIiwgImVxIik7CisgICAgICAgICAgICBpZiAoc3ViICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qgc3Vib2JqID0gc3ViLmdldChvYmopOworICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBzdWJvYmplY3RzIGRvbid0IGNvbWUgZnJvbSBzZXJ2aWNlcywgc28KKyAgICAgICAgICAgICAgICAvLyB0aGVpciBtZXRhZGF0YSBzaG91bGQgYmUgc3RydWN0dXJlZCBub3JtYWxseS4KKyAgICAgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIHN1Ym9iaiwgImd0IiwgImdlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiSW5mbzogVW5yZWdpc3RlcmluZyBzZXJ2aWNlIik7CisgICAgICAgICAgICBpZiAoIXJlZy51bnJlZ2lzdGVyKGtleSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogdW5yZWdpc3RlciBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE9iamVjdCBvYmpVbnJlZyA9IHN2Yy5jcmVhdGUocmVxKTsKKyAgICAgICAgICAgIGNoZWNrT2JqZWN0KHJlcXVlc3RlZExvY2FsZSwgb2JqVW5yZWcsICJndCIsICJnZSIpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT0NBTEVfU0laRSA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSByYXdEYXRhMiA9IG5ldyBTdHJpbmdbXVtdeworICAgICAgICAvKiBsYW5ndWFnZSBjb2RlICovCisgICAgICAgIHsgICAiZW4iLCAgICJmciIsICAgImNhIiwgICAiZWwiLCAgICJubyIsICAgInpoIiwgICAiZGUiLCAgICJlcyIsICAiamEiICAgIH0sCisgICAgICAgIC8qIHNjcmlwdCBjb2RlICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIkhhbnMiLCAiIiwgIiIsICIiICB9LAorICAgICAgICAvKiBjb3VudHJ5IGNvZGUgKi8KKyAgICAgICAgeyAgICJVUyIsICAgIkZSIiwgICAiRVMiLCAgICJHUiIsICAgIk5PIiwgICAiQ04iLCAiREUiLCAiIiwgIkpQIiAgICB9LAorICAgICAgICAvKiB2YXJpYW50IGNvZGUgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIk5ZIiwgICAiIiwgIiIsICIiLCAiIiAgICAgIH0sCisgICAgICAgIC8qIGZ1bGwgbmFtZSAqLworICAgICAgICB7ICAgImVuX1VTIiwgICAgImZyX0ZSIiwgICAgImNhX0VTIiwKKyAgICAgICAgICAgICJlbF9HUiIsICAgICJub19OT19OWSIsICJ6aF9IYW5zX0NOIiwKKyAgICAgICAgICAgICJkZV9ERUBjb2xsYXRpb249cGhvbmVib29rIiwgImVzQGNvbGxhdGlvbj10cmFkaXRpb25hbCIsICAiamFfSlBAY2FsZW5kYXI9amFwYW5lc2UiIH0sCisgICAgICAgIC8qIElTTy0zIGxhbmd1YWdlICovCisgICAgICAgIHsgICAiZW5nIiwgICJmcmEiLCAgImNhdCIsICAiZWxsIiwgICJub3IiLCAgInpobyIsICJkZXUiLCAic3BhIiwgImpwbiIgICB9LAorICAgICAgICAvKiBJU08tMyBjb3VudHJ5ICovCisgICAgICAgIHsgICAiVVNBIiwgICJGUkEiLCAgIkVTUCIsICAiR1JDIiwgICJOT1IiLCAgIkNITiIsICJERVUiLCAiIiwgIkpQTiIgICB9LAorICAgICAgICAvKiBMQ0lEICovCisgICAgICAgIHsgICAiNDA5IiwgIjQwYyIsICI0MDMiLCAiNDA4IiwgIjgxNCIsICAiODA0IiwgIjQwNyIsICJhIiwgIjQxMSIgICAgIH0sCisKKyAgICAgICAgLyogZGlzcGxheSBsYW5ndWFnZSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICJFbmdsaXNoIiwgICJGcmVuY2giLCAgICJDYXRhbGFuIiwgIkdyZWVrIiwgICAgIk5vcndlZ2lhbiIsICJDaGluZXNlIiwgIkdlcm1hbiIsICJTcGFuaXNoIiwgIkphcGFuZXNlIiAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHNjcmlwdCBjb2RlIChFbmdsaXNoKSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJTaW1wbGlmaWVkIEhhbiIsICIiLCAiIiwgIiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBjb3VudHJ5IChFbmdsaXNoKSAqLworICAgICAgICB7ICAgIlVuaXRlZCBTdGF0ZXMiLCAgICAiRnJhbmNlIiwgICAiU3BhaW4iLCAgIkdyZWVjZSIsICAgIk5vcndheSIsICJDaGluYSIsICJHZXJtYW55IiwgIiIsICJKYXBhbiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChFbmdsaXNoKSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiTlkiLCAgIiIsICIiLCAiIiwgIiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBuYW1lIChFbmdsaXNoKSAqLworICAgICAgICB7ICAgIkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMpIiwgIkZyZW5jaCAoRnJhbmNlKSIsICJDYXRhbGFuIChTcGFpbikiLAorICAgICAgICAgICAgIkdyZWVrIChHcmVlY2UpIiwgIk5vcndlZ2lhbiAoTm9yd2F5LCBOWSkiLCAiQ2hpbmVzZSAoU2ltcGxpZmllZCBIYW4sIENoaW5hKSIsCisgICAgICAgICAgICAiR2VybWFuIChHZXJtYW55LCBDb2xsYXRpb249UGhvbmVib29rIE9yZGVyKSIsICJTcGFuaXNoIChDb2xsYXRpb249VHJhZGl0aW9uYWwpIiwgIkphcGFuZXNlIChKYXBhbiwgQ2FsZW5kYXI9SmFwYW5lc2UgQ2FsZW5kYXIpIiB9LAorCisgICAgICAgIC8qIGRpc3BsYXkgbGFuZ3VhZ2UgKEZyZW5jaCkgKi8KKyAgICAgICAgeyAgICJhbmdsYWlzIiwgICJmcmFuXFx1MDBFN2FpcyIsICAgImNhdGFsYW4iLCAiZ3JlYyIsICAgICJub3J2XFx1MDBFOWdpZW4iLCAgICAiY2hpbm9pcyIsICJhbGxlbWFuZCIsICJlc3BhZ25vbCIsICJqYXBvbmFpcyIgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgc2NyaXB0IGNvZGUgKEZyZW5jaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiSGFucyIsICIiLCAiIiwgIiIgICAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IGNvdW50cnkgKEZyZW5jaCkgKi8KKyAgICAgICAgeyAgICJcXHUwMEM5dGF0cy1VbmlzIiwgICAgIkZyYW5jZSIsICAgIkVzcGFnbmUiLCAgIkdyXFx1MDBFOGNlIiwgICAiTm9ydlxcdTAwRThnZSIsICAgICJDaGluZSIsICJBbGxlbWFnbmUiLCAiIiwgIkphcG9uIiAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHZhcmlhbnQgKEZyZW5jaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIk5ZIiwgICAiIiwgIiIsICIiLCAiIiAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IG5hbWUgKEZyZW5jaCkgKi8KKyAgICAgICAgeyAgICJhbmdsYWlzIChcXHUwMEM5dGF0cy1VbmlzKSIsICJmcmFuXFx1MDBFN2FpcyAoRnJhbmNlKSIsICJjYXRhbGFuIChFc3BhZ25lKSIsCisgICAgICAgICAgICAiZ3JlYyAoR3JcXHUwMEU4Y2UpIiwgIm5vcnZcXHUwMEU5Z2llbiAoTm9ydlxcdTAwRThnZSwgTlkpIiwgICJjaGlub2lzIChIYW5zLCBDaGluZSkiLAorICAgICAgICAgICAgImFsbGVtYW5kIChBbGxlbWFnbmUsIE9yZG9ubmFuY2VtZW50PU9yZHJlIGRlIGwnYW5udWFpcmUpIiwgImVzcGFnbm9sIChPcmRvbm5hbmNlbWVudD1PcmRyZSB0cmFkaXRpb25uZWwpIiwgImphcG9uYWlzIChKYXBvbiwgQ2FsZW5kcmllcj1DYWxlbmRyaWVyIGphcG9uYWlzKSIgfSwKKworICAgICAgICAvKiBkaXNwbGF5IGxhbmd1YWdlIChDYXRhbGFuKSAqLworICAgICAgICB7ICAgImFuZ2xcXHUwMEU4cyIsICJmcmFuY1xcdTAwRThzIiwgImNhdGFsXFx1MDBFMCIsICJncmVjIiwgICJub3J1ZWMiLCAieGluXFx1MDBFOXMiLCAiYWxlbWFueSIsICJlc3BhbnlvbCIsICJqYXBvblxcdTAwRThzIiAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHNjcmlwdCBjb2RlIChDYXRhbGFuKSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJIYW5zIiwgIiIsICIiLCAiIiAgICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgY291bnRyeSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICJFc3RhdHMgVW5pdHMiLCAiRnJhblxcdTAwRTdhIiwgIkVzcGFueWEiLCAgIkdyXFx1MDBFOGNpYSIsICJOb3J1ZWdhIiwgICJYaW5hIiwgIkFsZW1hbnlhIiwgIiIsICJKYXBcXHUwMEYzIiAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHZhcmlhbnQgKENhdGFsYW4pICovCisgICAgICAgIHsgICAiIiwgIiIsICIiLCAgICAgICAgICAgICAgICAgICAgIiIsICJOWSIsICAgICIiLCAiIiwgIiIsICIiICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgbmFtZSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICJhbmdsXFx1MDBFOHMgKEVzdGF0cyBVbml0cykiLCAiZnJhbmNcXHUwMEU4cyAoRnJhblxcdTAwRTdhKSIsICJjYXRhbFxcdTAwRTAgKEVzcGFueWEpIiwKKyAgICAgICAgICAgICJncmVjIChHclxcdTAwRThjaWEpIiwgIm5vcnVlYyAoTm9ydWVnYSwgTlkpIiwgInhpblxcdTAwRTlzIChIYW5zLCBYaW5hKSIsCisgICAgICAgICAgICAiYWxlbWFueSAoQWxlbWFueWEsIENPTExBVElPTj1QSE9ORUJPT0spIiwgImVzcGFueW9sIChDT0xMQVRJT049VFJBRElUSU9OQUwpIiwgImphcG9uXFx1MDBFOHMgKEphcFxcdTAwRjMsIENBTEVOREFSPUpBUEFORVNFKSIgfSwKKworICAgICAgICAvKiBkaXNwbGF5IGxhbmd1YWdlIChHcmVlaykgKi8KKyAgICAgICAgeworICAgICAgICAgICAgIlxcdTAzOTFcXHUwM2IzXFx1MDNiM1xcdTAzYmJcXHUwM2I5XFx1MDNiYVxcdTAzYWMiLAorICAgICAgICAgICAgIlxcdTAzOTNcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2I5XFx1MDNiYVxcdTAzYWMiLAorICAgICAgICAgICAgIlxcdTAzOWFcXHUwM2IxXFx1MDNjNFxcdTAzYjFcXHUwM2JiXFx1MDNiMVxcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWMiLAorICAgICAgICAgICAgIlxcdTAzOTVcXHUwM2JiXFx1MDNiYlxcdTAzYjdcXHUwM2JkXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzlkXFx1MDNiZlxcdTAzYzFcXHUwM2IyXFx1MDNiN1xcdTAzYjNcXHUwM2I5XFx1MDNiYVxcdTAzYWMiLAorICAgICAgICAgICAgIlxcdTAzOUFcXHUwM0I5XFx1MDNCRFxcdTAzQjVcXHUwM0I2XFx1MDNCOVxcdTAzQkFcXHUwM0FDIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNCNVxcdTAzQzFcXHUwM0JDXFx1MDNCMVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMiLAorICAgICAgICAgICAgIlxcdTAzOTlcXHUwM0MzXFx1MDNDMFxcdTAzQjFcXHUwM0JEXFx1MDNCOVxcdTAzQkFcXHUwM0FDIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNCMVxcdTAzQzBcXHUwM0M5XFx1MDNCRFxcdTAzQjlcXHUwM0JBXFx1MDNBQyIKKyAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBzY3JpcHQgY29kZSAoR3JlZWspICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIkhhbnMiLCAiIiwgIiIsICIiICAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBjb3VudHJ5IChHcmVlaykgKi8KKyAgICAgICAgeworICAgICAgICAgICAgIlxcdTAzOTdcXHUwM2JkXFx1MDNjOVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYjVcXHUwM2MyIFxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiNVxcdTAzYWZcXHUwM2I1XFx1MDNjMiIsCisgICAgICAgICAgICAiXFx1MDM5M1xcdTAzYjFcXHUwM2JiXFx1MDNiYlxcdTAzYWZcXHUwM2IxIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNjM1xcdTAzYzBcXHUwM2IxXFx1MDNiZFxcdTAzYWZcXHUwM2IxIiwKKyAgICAgICAgICAgICJcXHUwMzk1XFx1MDNiYlxcdTAzYmJcXHUwM2FjXFx1MDNiNFxcdTAzYjEiLAorICAgICAgICAgICAgIlxcdTAzOWRcXHUwM2JmXFx1MDNjMVxcdTAzYjJcXHUwM2I3XFx1MDNiM1xcdTAzYWZcXHUwM2IxIiwKKyAgICAgICAgICAgICJcXHUwMzlBXFx1MDNBRlxcdTAzQkRcXHUwM0IxIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNCNVxcdTAzQzFcXHUwM0JDXFx1MDNCMVxcdTAzQkRcXHUwM0FGXFx1MDNCMSIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNCMVxcdTAzQzBcXHUwM0M5XFx1MDNCRFxcdTAzQUZcXHUwM0IxIgorICAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHZhcmlhbnQgKEdyZWVrKSAqLworICAgICAgICB7ICAgIiIsICIiLCAiIiwgIiIsICJOWSIsICIiLCAiIiwgIiIsICIiICAgIH0sIC8qIFRPRE86IGN1cnJlbnRseSB0aGVyZSBpcyBubyB0cmFuc2xhdGlvbiBmb3IgTlkgaW4gR3JlZWsgZml4IHRoaXMgdGVzdCB3aGVuIHdlIGhhdmUgaXQgKi8KKyAgICAgICAgLyogZGlzcGxheSBuYW1lIChHcmVlaykgKi8KKyAgICAgICAgeworICAgICAgICAgICAgIlxcdTAzOTFcXHUwM2IzXFx1MDNiM1xcdTAzYmJcXHUwM2I5XFx1MDNiYVxcdTAzYWMgKFxcdTAzOTdcXHUwM2JkXFx1MDNjOVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYjVcXHUwM2MyIFxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiNVxcdTAzYWZcXHUwM2I1XFx1MDNjMikiLAorICAgICAgICAgICAgIlxcdTAzOTNcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2I5XFx1MDNiYVxcdTAzYWMgKFxcdTAzOTNcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2FmXFx1MDNiMSkiLAorICAgICAgICAgICAgIlxcdTAzOWFcXHUwM2IxXFx1MDNjNFxcdTAzYjFcXHUwM2JiXFx1MDNiMVxcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWMgKFxcdTAzOTlcXHUwM2MzXFx1MDNjMFxcdTAzYjFcXHUwM2JkXFx1MDNhZlxcdTAzYjEpIiwKKyAgICAgICAgICAgICJcXHUwMzk1XFx1MDNiYlxcdTAzYmJcXHUwM2I3XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhYyAoXFx1MDM5NVxcdTAzYmJcXHUwM2JiXFx1MDNhY1xcdTAzYjRcXHUwM2IxKSIsCisgICAgICAgICAgICAiXFx1MDM5ZFxcdTAzYmZcXHUwM2MxXFx1MDNiMlxcdTAzYjdcXHUwM2IzXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzlkXFx1MDNiZlxcdTAzYzFcXHUwM2IyXFx1MDNiN1xcdTAzYjNcXHUwM2FmXFx1MDNiMSwgTlkpIiwKKyAgICAgICAgICAgICJcXHUwMzlBXFx1MDNCOVxcdTAzQkRcXHUwM0I1XFx1MDNCNlxcdTAzQjlcXHUwM0JBXFx1MDNBQyAoSGFucywgXFx1MDM5QVxcdTAzQUZcXHUwM0JEXFx1MDNCMSkiLAorICAgICAgICAgICAgIlxcdTAzOTNcXHUwM0I1XFx1MDNDMVxcdTAzQkNcXHUwM0IxXFx1MDNCRFxcdTAzQjlcXHUwM0JBXFx1MDNBQyAoXFx1MDM5M1xcdTAzQjVcXHUwM0MxXFx1MDNCQ1xcdTAzQjFcXHUwM0JEXFx1MDNBRlxcdTAzQjEsIENPTExBVElPTj1QSE9ORUJPT0spIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNDM1xcdTAzQzBcXHUwM0IxXFx1MDNCRFxcdTAzQjlcXHUwM0JBXFx1MDNBQyAoQ09MTEFUSU9OPVRSQURJVElPTkFMKSIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQjFcXHUwM0MwXFx1MDNDOVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKFxcdTAzOTlcXHUwM0IxXFx1MDNDMFxcdTAzQzlcXHUwM0JEXFx1MDNBRlxcdTAzQjEsIENBTEVOREFSPUpBUEFORVNFKSIKKyAgICAgICAgfQorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVOR0xJU0ggPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkVOQ0ggPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVRBTEFOID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JFRUsgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JXRUdJQU4gPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQU5HID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NSSVBUID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1RSWSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFZBUiA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5BTUUgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQU5HMyA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENUUlkzID0gNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTENJRCA9IDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERMQU5HX0VOID0gODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFNDUklQVF9FTiA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERDVFJZX0VOID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERWQVJfRU4gPSAxMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRE5BTUVfRU4gPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRExBTkdfRlIgPSAxMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFNDUklQVF9GUiA9IDE0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQ1RSWV9GUiA9IDE1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEVkFSX0ZSID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEROQU1FX0ZSID0gMTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERMQU5HX0NBID0gMTg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERTQ1JJUFRfQ0EgPSAxOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRENUUllfQ0EgPSAyMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFZBUl9DQSA9IDIxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETkFNRV9DQSA9IDIyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETEFOR19FTCA9IDIzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEU0NSSVBUX0VMID0gMjQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERDVFJZX0VMID0gMjU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERWQVJfRUwgPSAyNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRE5BTUVfRUwgPSAyNzsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpY0dldHRlcnMoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBsb2dsbigiVGVzdGluZyBCYXNpYyBHZXR0ZXJzXG4iKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IExPQ0FMRV9TSVpFOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyB0ZXN0TG9jYWxlPShyYXdEYXRhMltOQU1FXVtpXSk7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiKyB0ZXN0TG9jYWxlKyIuLi4uLlxuIik7CisKKyAgICAgICAgICAgIFN0cmluZyBsYW5nID1VTG9jYWxlLmdldExhbmd1YWdlKHRlc3RMb2NhbGUpOworICAgICAgICAgICAgaWYgKDAgIT1sYW5nLmNvbXBhcmVUbyhyYXdEYXRhMltMQU5HXVtpXSkpICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBMYW5ndWFnZSBjb2RlIG1pc21hdGNoOiAiK2xhbmcrIiB2ZXJzdXMgIisgIHJhd0RhdGEyW0xBTkddW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGN0cnk9VUxvY2FsZS5nZXRDb3VudHJ5KHRlc3RMb2NhbGUpOworICAgICAgICAgICAgaWYgKDAgIT1jdHJ5LmNvbXBhcmVUbyhyYXdEYXRhMltDVFJZXVtpXSkpICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBDb3VudHJ5IGNvZGUgbWlzbWF0Y2g6ICIrY3RyeSsiIHZlcnN1cyAiKyAgcmF3RGF0YTJbQ1RSWV1baV0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgdmFyPVVMb2NhbGUuZ2V0VmFyaWFudCh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9dmFyLmNvbXBhcmVUbyhyYXdEYXRhMltWQVJdW2ldKSkgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCIgIFZhcmlhbnQgY29kZSBtaXNtYXRjaDogIit2YXIrIiB2ZXJzdXMgIisgIHJhd0RhdGEyW1ZBUl1baV0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFVMb2NhbGUuZ2V0TmFtZSh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9bmFtZS5jb21wYXJlVG8ocmF3RGF0YTJbTkFNRV1baV0pKSAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgTmFtZSBtaXNtYXRjaDogIituYW1lKyIgdmVyc3VzICIrICByYXdEYXRhMltOQU1FXVtpXSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmVmaXhlcygpIHsKKyAgICAgICAgLy8gUE9TSVggaWRzIGFyZSBubyBsb25nZXIgaGFuZGxlZCBieSBnZXROYW1lLCBzbyBQT1NJWCBmYWlsdXJlcyBhcmUgaWdub3JlZAorICAgICAgICBmaW5hbCBTdHJpbmcgW11bXSB0ZXN0RGF0YSA9IG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgLyogbnVsbCBjYW5vbmljYWxpemUoKSBjb2x1bW4gbWVhbnMgImV4cGVjdCBzYW1lIGFzIGdldE5hbWUoKSIgKi8KKyAgICAgICAgICAgIHsic3YiLCAiIiwgIkZJIiwgIkFMIiwgInN2LWZpLWFsIiwgInN2X0ZJX0FMIiwgbnVsbH0sCisgICAgICAgICAgICB7ImVuIiwgIiIsICJHQiIsICIiLCAiZW4tZ2IiLCAiZW5fR0IiLCBudWxsfSwKKyAgICAgICAgICAgIHsiaS1oYWtrYSIsICIiLCAiTVQiLCAiWEVNWElKQSIsICJpLWhha2thX01UX1hFTVhJSkEiLCAiaS1oYWtrYV9NVF9YRU1YSUpBIiwgbnVsbH0sCisgICAgICAgICAgICB7ImktaGFra2EiLCAiIiwgIkNOIiwgIiIsICJpLWhha2thX0NOIiwgImktaGFra2FfQ04iLCBudWxsfSwKKyAgICAgICAgICAgIHsiaS1oYWtrYSIsICIiLCAiTVgiLCAiIiwgIkktaGFra2FfTVgiLCAiaS1oYWtrYV9NWCIsIG51bGx9LAorICAgICAgICAgICAgeyJ4LWtsaW5nb24iLCAiIiwgIlVTIiwgIlNBTkpPU0UiLCAiWC1LTElOR09OX3VzX1NBTkpPU0UiLCAieC1rbGluZ29uX1VTX1NBTkpPU0UiLCBudWxsfSwKKworICAgICAgICAgICAgeyJtciIsICIiLCAiIiwgIiIsICJtci51dGY4IiwgIm1yLnV0ZjgiLCAibXIifSwKKyAgICAgICAgICAgIHsiZGUiLCAiIiwgIlRWIiwgIiIsICJkZS10di5rb2k4ciIsICJkZV9UVi5rb2k4ciIsICJkZV9UViJ9LAorICAgICAgICAgICAgeyJ4LXBpZ2xhdGluIiwgIiIsICJNTCIsICIiLCAieC1waWdsYXRpbl9NTC5NQkUiLCAieC1waWdsYXRpbl9NTC5NQkUiLCAieC1waWdsYXRpbl9NTCJ9LCAgLyogTXVsdGlieXRlIEVuZ2xpc2ggKi8KKyAgICAgICAgICAgIHsiaS1jaGVyb2tlZSIsICIiLCJVUyIsICIiLCAiaS1DaGVyb2tlZV9VUy51dGY3IiwgImktY2hlcm9rZWVfVVMudXRmNyIsICJpLWNoZXJva2VlX1VTIn0sCisgICAgICAgICAgICB7IngtZmlsZmxpIiwgIiIsICJNVCIsICJGSUxGTEEiLCAieC1maWxmbGlfTVRfRklMRkxBLmdiLTE4MDMwIiwgIngtZmlsZmxpX01UX0ZJTEZMQS5nYi0xODAzMCIsICJ4LWZpbGZsaV9NVF9GSUxGTEEifSwKKyAgICAgICAgICAgIHsibm8iLCAiIiwgIk5PIiwgIk5ZX0IiLCAibm8tbm8tbnkudXRmMzJAQiIsICJub19OT19OWS51dGYzMkBCIiwgIm5vX05PX05ZX0IifSwKKyAgICAgICAgICAgIHsibm8iLCAiIiwgIk5PIiwgIkIiLCAgIm5vLW5vLnV0ZjMyQEIiLCAibm9fTk8udXRmMzJAQiIsICJub19OT19CIn0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICIiLCAgICJOWSIsICJub19fbnkiLCAibm9fX05ZIiwgbnVsbH0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICIiLCAgICJOWSIsICJub0BueSIsICJub0BueSIsICJub19fTlkifSwKKyAgICAgICAgICAgIHsiZWwiLCAiTGF0biIsICIiLCAiIiwgImVsLWxhdG4iLCAiZWxfTGF0biIsIG51bGx9LAorICAgICAgICAgICAgeyJlbiIsICJDeXJsIiwgIlJVIiwgIiIsICJlbi1jeXJsLXJ1IiwgImVuX0N5cmxfUlUiLCBudWxsfSwKKyAgICAgICAgICAgIHsiemgiLCAiSGFudCIsICJUVyIsICJTVFJPS0UiLCAiemgtaGFudF9UV19TVFJPS0UiLCAiemhfSGFudF9UV19TVFJPS0UiLCBudWxsfSwKKyAgICAgICAgICAgIHsicXEiLCAiUXFxcSIsICJRUSIsICJRUSIsICJxcV9RcXFxX1FRX1FRIiwgInFxX1FxcXFfUVFfUVEiLCBudWxsfSwKKyAgICAgICAgICAgIHsicXEiLCAiUXFxcSIsICIiLCAiUVEiLCAicXFfUXFxcV9fUVEiLCAicXFfUXFxcV9fUVEiLCBudWxsfSwKKyAgICAgICAgICAgIHsiMTIiLCAiMzQ1NiIsICI3OCIsICI5MCIsICIxMl8zNDU2Xzc4XzkwIiwgIjEyXzM0NTZfNzhfOTAiLCBudWxsfSwgLyogdG90YWwgZ2FyYmFnZSAqLworCisgICAgICAgICAgICAvLyBvZGQgY2FzZXMKKyAgICAgICAgICAgIHsiIiwgIiIsICIiLCAiIiwgIkBGT089YmFyIiwgIkBmb289YmFyIiwgbnVsbH0sCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIiIsICJfQEZPTz1iYXIiLCAiQGZvbz1iYXIiLCBudWxsfSwKKyAgICAgICAgICAgIHsiIiwgIiIsICIiLCAiIiwgIl9fQEZPTz1iYXIiLCAiQGZvbz1iYXIiLCBudWxsfSwKKyAgICAgICAgICAgIHsiIiwgIiIsICIiLCAiRk9PIiwgIl9fZm9vQEZPTz1iYXIiLCAiX19GT09AZm9vPWJhciIsIG51bGx9LCAvLyB3ZSBoYXZlIHNvbWUgb2YgdGhlc2UgcHJlZml4ZXMKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmcgbG9jLCBidWYsYnVmMTsKKyAgICAgICAgZmluYWwgU3RyaW5nIFtdIHRlc3RUaXRsZXMgPSB7CisgICAgICAgICAgICAiVUxvY2FsZS5nZXRMYW5ndWFnZSgpIiwKKyAgICAgICAgICAgICJVTG9jYWxlLmdldFNjcmlwdCgpIiwKKyAgICAgICAgICAgICJVTG9jYWxlLmdldENvdW50cnkoKSIsCisgICAgICAgICAgICAiVUxvY2FsZS5nZXRWYXJpYW50KCkiLAorICAgICAgICAgICAgIm5hbWUiLAorICAgICAgICAgICAgIlVMb2NhbGUuZ2V0TmFtZSgpIiwKKyAgICAgICAgICAgICJjYW5vbmljYWxpemUoKSIsCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGUgdWxvYzsKKworICAgICAgICBmb3IoaW50IHJvdz0wO3Jvdzx0ZXN0RGF0YS5sZW5ndGg7cm93KyspIHsKKyAgICAgICAgICAgIGxvYyA9IHRlc3REYXRhW3Jvd11bTkFNRV07CisgICAgICAgICAgICBsb2dsbigiVGVzdCAjIityb3crIjogIitsb2MpOworCisgICAgICAgICAgICB1bG9jID0gbmV3IFVMb2NhbGUobG9jKTsKKworICAgICAgICAgICAgZm9yKGludCBuPTA7bjw9KE5BTUUrMik7bisrKSB7CisgICAgICAgICAgICAgICAgaWYobj09TkFNRSkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2gobikgeworICAgICAgICAgICAgICAgIGNhc2UgTEFORzoKKyAgICAgICAgICAgICAgICAgICAgYnVmICA9IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IHVsb2MuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIFNDUklQVDoKKyAgICAgICAgICAgICAgICAgICAgYnVmICA9IFVMb2NhbGUuZ2V0U2NyaXB0KGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSB1bG9jLmdldFNjcmlwdCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgQ1RSWToKKyAgICAgICAgICAgICAgICAgICAgYnVmICA9IFVMb2NhbGUuZ2V0Q291bnRyeShsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gdWxvYy5nZXRDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBWQVI6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldFZhcmlhbnQobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IGJ1ZjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIE5BTUUrMToKKyAgICAgICAgICAgICAgICAgICAgYnVmICA9IFVMb2NhbGUuZ2V0TmFtZShsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gdWxvYy5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBOQU1FKzI6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IFVMb2NhbGUuY2Fub25pY2FsaXplKGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSBVTG9jYWxlLmNyZWF0ZUNhbm9uaWNhbChsb2MpLmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBidWYgPSAiKio/PyI7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSBidWY7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbG9nbG4oIiMiK3JvdysiOiAiK3Rlc3RUaXRsZXNbbl0rIiBvbiAiK2xvYysiOiAtPiBbIitidWYrIl0iKTsKKworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IHRlc3REYXRhW3Jvd11bbl07CisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkID09IG51bGwgJiYgbiA9PSAoTkFNRSsyKSkgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHRlc3REYXRhW3Jvd11bTkFNRSsxXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgUE9TSVggZmFpbHVyZXMgaW4gZ2V0TmFtZSwgd2UgZG9uJ3Qgc3BlYyBiZWhhdmlvciBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgICAgICBpZiAobiA9PSBOQU1FKzEgJiYKKyAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkLmluZGV4T2YoJy4nKSAhPSAtMSB8fAorICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQuaW5kZXhPZignQCcpICE9IC0xKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihidWYuY29tcGFyZVRvKGV4cGVjdGVkKSE9MCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiIyIrcm93KyI6ICIrdGVzdFRpdGxlc1tuXSsiIG9uICIrbG9jKyI6IC0+IFsiK2J1ZisiXSAoZXhwZWN0ZWQgJyIrZXhwZWN0ZWQrIichKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihidWYxLmNvbXBhcmVUbyhleHBlY3RlZCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiMiK3JvdysiOiAiK3Rlc3RUaXRsZXNbbl0rIiBvbiBVTG9jYWxlIG9iamVjdCAiK2xvYysiOiAtPiBbIitidWYxKyJdIChleHBlY3RlZCAnIitleHBlY3RlZCsiJyEpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE9ic29sZXRlTmFtZXMoKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSB0ZXN0cyA9IG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgLyogbG9jYWxlLCBsYW5ndWFnZTMsIGxhbmd1YWdlMiwgQ291bnRyeTMsIGNvdW50cnkyICovCisgICAgICAgICAgICB7ICJlbmdfVVNBIiwgImVuZyIsICJlbiIsICJVU0EiLCAiVVMiIH0sCisgICAgICAgICAgICB7ICJrb2siLCAgImtvayIsICJrb2siLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgImluIiwgICJpbmQiLCAiaW4iLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgImlkIiwgICJpbmQiLCAiaWQiLCAiIiwgIiIgfSwgLyogTk8gYWxpYXNpbmcgKi8KKyAgICAgICAgICAgIHsgInNoIiwgICJzcnAiLCAic2giLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgInp6X0ZYIiwgICIiLCAienoiLCAiRlhYIiwgIkZYIiB9LAorICAgICAgICAgICAgeyAienpfUk8iLCAgIiIsICJ6eiIsICJST1UiLCAiUk8iIH0sCisgICAgICAgICAgICB7ICJ6el9UUCIsICAiIiwgInp6IiwgIlRNUCIsICJUUCIgfSwKKyAgICAgICAgICAgIHsgInp6X1RMIiwgICIiLCAienoiLCAiVExTIiwgIlRMIiB9LAorICAgICAgICAgICAgeyAienpfWlIiLCAgIiIsICJ6eiIsICJaQVIiLCAiWlIiIH0sCisgICAgICAgICAgICB7ICJ6el9GWFgiLCAgIiIsICJ6eiIsICJGWFgiLCAiRlgiIH0sIC8qIG5vIGFsaWFzaW5nLiBEb2Vzbid0IGdvIHRvIFBTKFBTRSkuICovCisgICAgICAgICAgICB7ICJ6el9ST00iLCAgIiIsICJ6eiIsICJST1UiLCAiUk8iIH0sCisgICAgICAgICAgICB7ICJ6el9ST1UiLCAgIiIsICJ6eiIsICJST1UiLCAiUk8iIH0sCisgICAgICAgICAgICB7ICJ6el9aQVIiLCAgIiIsICJ6eiIsICJaQVIiLCAiWlIiIH0sCisgICAgICAgICAgICB7ICJ6el9UTVAiLCAgIiIsICJ6eiIsICJUTVAiLCAiVFAiIH0sCisgICAgICAgICAgICB7ICJ6el9UTFMiLCAgIiIsICJ6eiIsICJUTFMiLCAiVEwiIH0sCisgICAgICAgICAgICB7ICJtbHRfUFNFIiwgIm1sdCIsICJtdCIsICJQU0UiLCAiUFMiIH0sCisgICAgICAgICAgICB7ICJpdyIsICJoZWIiLCAiaXciLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgImppIiwgInlpZCIsICJqaSIsICIiLCAiIiB9LAorICAgICAgICAgICAgeyAianciLCAiamF3IiwgImp3IiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJzaCIsICJzcnAiLCAic2giLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgIiIsICIiLCAiIiwgIiIsICIiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3IoaW50IGk9MDtpPHRlc3RzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZSA9IHRlc3RzW2ldWzBdOworICAgICAgICAgICAgbG9nbG4oIioqIFRlc3RpbmcgOiAiKyBsb2NhbGUpOworICAgICAgICAgICAgU3RyaW5nIGJ1ZmYsIGJ1ZmYxOworICAgICAgICAgICAgVUxvY2FsZSB1bG9jICA9IG5ldyBVTG9jYWxlKGxvY2FsZSk7CisKKyAgICAgICAgICAgIGJ1ZmYgPSBVTG9jYWxlLmdldElTTzNMYW5ndWFnZShsb2NhbGUpOworICAgICAgICAgICAgaWYoYnVmZi5jb21wYXJlVG8odGVzdHNbaV1bMV0pIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bMV0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmMSA9IHVsb2MuZ2V0SVNPM0xhbmd1YWdlKCk7CisgICAgICAgICAgICBpZihidWZmMS5jb21wYXJlVG8odGVzdHNbaV1bMV0pIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bMV0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmID0gVUxvY2FsZS5nZXRMYW5ndWFnZShsb2NhbGUpOworICAgICAgICAgICAgaWYoYnVmZi5jb21wYXJlVG8odGVzdHNbaV1bMl0pIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVUxvY2FsZS5nZXRMYW5ndWFnZSgiK2xvY2FsZSsiKT09IisKKyAgICAgICAgICAgICAgICAgICAgICBidWZmKyIsXHQgZXhwZWN0ZWQgIit0ZXN0c1tpXVsyXSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiICAgVUxvY2FsZS5nZXRMYW5ndWFnZSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmZiA9IFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzNdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bM10pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoIitsb2NhbGUrIik9PSIrYnVmZik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZmYxID0gdWxvYy5nZXRJU08zQ291bnRyeSgpOworICAgICAgICAgICAgaWYoYnVmZjEuY29tcGFyZVRvKHRlc3RzW2ldWzNdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bM10pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoIitsb2NhbGUrIik9PSIrYnVmZik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZmYgPSBVTG9jYWxlLmdldENvdW50cnkobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzRdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0Q291bnRyeSgiK2xvY2FsZSsiKT09IisKKyAgICAgICAgICAgICAgICAgICAgICBidWZmKyIsXHQgZXhwZWN0ZWQgIit0ZXN0c1tpXVs0XSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiICAgVUxvY2FsZS5nZXRDb3VudHJ5KCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoIml3X0lMIikuY29tcGFyZVRvKCBVTG9jYWxlLmdldExhbmd1YWdlKCJoZV9JTCIpKT09MCkgeworICAgICAgICAgICAgZXJybG4oImhlLGl3IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UgbWlzbWF0Y2giKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBidWZmID0gVUxvY2FsZS5nZXRMYW5ndWFnZSgia29rX0lOIik7CisgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKCJrb2siKSE9MCl7CisgICAgICAgICAgICBlcnJsbigiVUxvY2FsZS5nZXRMYW5ndWFnZShcImtva1wiKSBmYWlsZWQuIEV4cGVjdGVkOiBrb2sgR290OiAiK2J1ZmYpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDYW5vbmljYWxpemF0aW9uKCl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW110ZXN0Q2FzZXMgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgIHsgImNhX0VTX1BSRUVVUk8iLCAiY2FfRVNfUFJFRVVSTyIsICJjYV9FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICB7ICJkZV9BVF9QUkVFVVJPIiwgImRlX0FUX1BSRUVVUk8iLCAiZGVfQVRAY3VycmVuY3k9QVRTIiB9LAorICAgICAgICAgICAgeyAiZGVfREVfUFJFRVVSTyIsICJkZV9ERV9QUkVFVVJPIiwgImRlX0RFQGN1cnJlbmN5PURFTSIgfSwKKyAgICAgICAgICAgIHsgImRlX0xVX1BSRUVVUk8iLCAiZGVfTFVfUFJFRVVSTyIsICJkZV9MVUBjdXJyZW5jeT1FVVIiIH0sCisgICAgICAgICAgICB7ICJlbF9HUl9QUkVFVVJPIiwgImVsX0dSX1BSRUVVUk8iLCAiZWxfR1JAY3VycmVuY3k9R1JEIiB9LAorICAgICAgICAgICAgeyAiZW5fQkVfUFJFRVVSTyIsICJlbl9CRV9QUkVFVVJPIiwgImVuX0JFQGN1cnJlbmN5PUJFRiIgfSwKKyAgICAgICAgICAgIHsgImVuX0lFX1BSRUVVUk8iLCAiZW5fSUVfUFJFRVVSTyIsICJlbl9JRUBjdXJyZW5jeT1JRVAiIH0sCisgICAgICAgICAgICB7ICJlc19FU19QUkVFVVJPIiwgImVzX0VTX1BSRUVVUk8iLCAiZXNfRVNAY3VycmVuY3k9RVNQIiB9LAorICAgICAgICAgICAgeyAiZXVfRVNfUFJFRVVSTyIsICJldV9FU19QUkVFVVJPIiwgImV1X0VTQGN1cnJlbmN5PUVTUCIgfSwKKyAgICAgICAgICAgIHsgImZpX0ZJX1BSRUVVUk8iLCAiZmlfRklfUFJFRVVSTyIsICJmaV9GSUBjdXJyZW5jeT1GSU0iIH0sCisgICAgICAgICAgICB7ICJmcl9CRV9QUkVFVVJPIiwgImZyX0JFX1BSRUVVUk8iLCAiZnJfQkVAY3VycmVuY3k9QkVGIiB9LAorICAgICAgICAgICAgeyAiZnJfRlJfUFJFRVVSTyIsICJmcl9GUl9QUkVFVVJPIiwgImZyX0ZSQGN1cnJlbmN5PUZSRiIgfSwKKyAgICAgICAgICAgIHsgImZyX0xVX1BSRUVVUk8iLCAiZnJfTFVfUFJFRVVSTyIsICJmcl9MVUBjdXJyZW5jeT1MVUYiIH0sCisgICAgICAgICAgICB7ICJnYV9JRV9QUkVFVVJPIiwgImdhX0lFX1BSRUVVUk8iLCAiZ2FfSUVAY3VycmVuY3k9SUVQIiB9LAorICAgICAgICAgICAgeyAiZ2xfRVNfUFJFRVVSTyIsICJnbF9FU19QUkVFVVJPIiwgImdsX0VTQGN1cnJlbmN5PUVTUCIgfSwKKyAgICAgICAgICAgIHsgIml0X0lUX1BSRUVVUk8iLCAiaXRfSVRfUFJFRVVSTyIsICJpdF9JVEBjdXJyZW5jeT1JVEwiIH0sCisgICAgICAgICAgICB7ICJubF9CRV9QUkVFVVJPIiwgIm5sX0JFX1BSRUVVUk8iLCAibmxfQkVAY3VycmVuY3k9QkVGIiB9LAorICAgICAgICAgICAgeyAibmxfTkxfUFJFRVVSTyIsICJubF9OTF9QUkVFVVJPIiwgIm5sX05MQGN1cnJlbmN5PU5MRyIgfSwKKyAgICAgICAgICAgIHsgInB0X1BUX1BSRUVVUk8iLCAicHRfUFRfUFJFRVVSTyIsICJwdF9QVEBjdXJyZW5jeT1QVEUiIH0sCisgICAgICAgICAgICB7ICJkZV9fUEhPTkVCT09LIiwgImRlX19QSE9ORUJPT0siLCAiZGVAY29sbGF0aW9uPXBob25lYm9vayIgfSwKKyAgICAgICAgICAgIHsgImVuX0dCX0VVUk8iLCAiZW5fR0JfRVVSTyIsICJlbl9HQkBjdXJyZW5jeT1FVVIiIH0sCisgICAgICAgICAgICB7ICJlbl9HQkBFVVJPIiwgbnVsbCwgImVuX0dCQGN1cnJlbmN5PUVVUiIgfSwgLyogUE9TSVggSUQgKi8KKyAgICAgICAgICAgIHsgImVzX19UUkFESVRJT05BTCIsICJlc19fVFJBRElUSU9OQUwiLCAiZXNAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiB9LAorICAgICAgICAgICAgeyAiaGlfX0RJUkVDVCIsICJoaV9fRElSRUNUIiwgImhpQGNvbGxhdGlvbj1kaXJlY3QiIH0sCisgICAgICAgICAgICB7ICJqYV9KUF9UUkFESVRJT05BTCIsICJqYV9KUF9UUkFESVRJT05BTCIsICJqYV9KUEBjYWxlbmRhcj1qYXBhbmVzZSIgfSwKKyAgICAgICAgICAgIHsgInRoX1RIX1RSQURJVElPTkFMIiwgInRoX1RIX1RSQURJVElPTkFMIiwgInRoX1RIQGNhbGVuZGFyPWJ1ZGRoaXN0IiB9LAorICAgICAgICAgICAgeyAiemhfVFdfU1RST0tFIiwgInpoX1RXX1NUUk9LRSIsICJ6aF9UV0Bjb2xsYXRpb249c3Ryb2tlIiB9LAorICAgICAgICAgICAgeyAiemhfX1BJTllJTiIsICJ6aF9fUElOWUlOIiwgInpoQGNvbGxhdGlvbj1waW55aW4iIH0sCisgICAgICAgICAgICB7ICJ6aEBjb2xsYXRpb249cGlueWluIiwgInpoQGNvbGxhdGlvbj1waW55aW4iLCAiemhAY29sbGF0aW9uPXBpbnlpbiIgfSwKKyAgICAgICAgICAgIHsgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAiemhfQ05AY29sbGF0aW9uPXBpbnlpbiIsICJ6aF9DTkBjb2xsYXRpb249cGlueWluIiB9LAorICAgICAgICAgICAgeyAiemhfQ05fQ0FAY29sbGF0aW9uPXBpbnlpbiIsICJ6aF9DTl9DQUBjb2xsYXRpb249cGlueWluIiwgInpoX0NOX0NBQGNvbGxhdGlvbj1waW55aW4iIH0sCisgICAgICAgICAgICB7ICJlbl9VU19QT1NJWCIsICJlbl9VU19QT1NJWCIsICJlbl9VU19QT1NJWCIgfSwKKyAgICAgICAgICAgIHsgImh5X0FNX1JFVklTRUQiLCAiaHlfQU1fUkVWSVNFRCIsICJoeV9BTV9SRVZJU0VEIiB9LAorICAgICAgICAgICAgeyAibm9fTk9fTlkiLCAibm9fTk9fTlkiLCAibm9fTk9fTlkiIC8qIG5vdDogIm5uX05PIiBbYWxhbiBJQ1UzLjBdICovIH0sCisgICAgICAgICAgICB7ICJub0BueSIsIG51bGwsICJub19fTlkiIC8qIG5vdDogIm5uIiBbYWxhbiBJQ1UzLjBdICovIH0sIC8qIFBPU0lYIElEICovCisgICAgICAgICAgICB7ICJuby1uby51dGYzMkBCIiwgbnVsbCwgIm5vX05PX0IiIC8qIG5vdDogIm5iX05PX0IiIFthbGFuIElDVTMuMF0gKi8gfSwgLyogUE9TSVggSUQgKi8KKyAgICAgICAgICAgIHsgInF6LXF6QEV1cm8iLCBudWxsLCAicXpfUVpAY3VycmVuY3k9RVVSIiB9LCAvKiBxei1xeiB1c2VzIHByaXZhdGUgdXNlIGlzbyBjb2RlcyAqLworICAgICAgICAgICAgeyAiZW4tQk9PTlQiLCAiZW5fQk9PTlQiLCAiZW5fX0JPT05UIiB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgIHsgImRlLTE5MDEiLCAiZGVfMTkwMSIsICJkZV9fMTkwMSIgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICB7ICJkZS0xOTA2IiwgImRlXzE5MDYiLCAiZGVfXzE5MDYiIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgeyAic3ItU1AtQ3lybCIsICJzcl9TUF9DWVJMIiwgInNyX0N5cmxfQ1MiIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgeyAic3ItU1AtTGF0biIsICJzcl9TUF9MQVROIiwgInNyX0xhdG5fQ1MiIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgeyAic3JfWVVfQ1lSSUxMSUMiLCAic3JfWVVfQ1lSSUxMSUMiLCAic3JfQ3lybF9DUyIgfSwgLyogTGludXggbmFtZSAqLworICAgICAgICAgICAgeyAidXotVVotQ3lybCIsICJ1el9VWl9DWVJMIiwgInV6X0N5cmxfVVoiIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgeyAidXotVVotTGF0biIsICJ1el9VWl9MQVROIiwgInV6X0xhdG5fVVoiIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgeyAiemgtQ0hTIiwgInpoX0NIUyIsICJ6aF9IYW5zIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInpoLUNIVCIsICJ6aF9DSFQiLCAiemhfSGFudCIgfSwgLyogLk5FVCBuYW1lIFRoaXMgbWF5IGNoYW5nZSBiYWNrIHRvIHpoX0hhbnQgKi8KKworICAgICAgICAgICAgLyogcG9zaXggYmVoYXZpb3IgdGhhdCB1c2VkIHRvIGJlIHBlcmZvcm1lZCBieSBnZXROYW1lICovCisgICAgICAgICAgICB7ICJtci51dGY4IiwgbnVsbCwgIm1yIiB9LAorICAgICAgICAgICAgeyAiZGUtdHYua29pOHIiLCBudWxsLCAiZGVfVFYiIH0sCisgICAgICAgICAgICB7ICJ4LXBpZ2xhdGluX01MLk1CRSIsIG51bGwsICJ4LXBpZ2xhdGluX01MIiB9LAorICAgICAgICAgICAgeyAiaS1jaGVyb2tlZV9VUy51dGY3IiwgbnVsbCwgImktY2hlcm9rZWVfVVMiIH0sCisgICAgICAgICAgICB7ICJ4LWZpbGZsaV9NVF9GSUxGTEEuZ2ItMTgwMzAiLCBudWxsLCAieC1maWxmbGlfTVRfRklMRkxBIiB9LAorICAgICAgICAgICAgeyAibm8tbm8tbnkudXRmOEBCIiwgbnVsbCwgIm5vX05PX05ZX0IiIC8qIG5vdDogIm5uX05PIiBbYWxhbiBJQ1UzLjBdICovIH0sIC8qIEAgaWdub3JlZCB1bmxlc3MgdmFyaWFudCBpcyBlbXB0eSAqLworCisgICAgICAgICAgICAvKiBmbGVzaGluZyBvdXQgY2Fub25pY2FsaXphdGlvbiAqLworICAgICAgICAgICAgLyogc29ydCBrZXl3b3JkcywgJzsnIGlzIHNlcGFyYXRvciBzbyBub3QgcHJlc2VudCBhdCBlbmQgaW4gY2Fub25pY2FsIGZvcm0gKi8KKyAgICAgICAgICAgIHsgImVuX0hhbnRfSUxfVkFMTEVZX0dJUkxAY3VycmVuY3k9RVVSO2NhbGVuZGFyPUphcGFuZXNlOyIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIgfSwKKyAgICAgICAgICAgIC8qIGFscmVhZHktY2Fub25pY2FsIGlkcyBhcmUgbm90IGNoYW5nZWQgKi8KKyAgICAgICAgICAgIHsgImVuX0hhbnRfSUxfVkFMTEVZX0dJUkxAY2FsZW5kYXI9SmFwYW5lc2U7Y3VycmVuY3k9RVVSIiwgImVuX0hhbnRfSUxfVkFMTEVZX0dJUkxAY2FsZW5kYXI9SmFwYW5lc2U7Y3VycmVuY3k9RVVSIiwgImVuX0hhbnRfSUxfVkFMTEVZX0dJUkxAY2FsZW5kYXI9SmFwYW5lc2U7Y3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgLyogUFJFX0VVUk8gYW5kIEVVUk8gY29udmVyc2lvbnMgZG9uJ3QgYWZmZWN0IG90aGVyIGtleXdvcmRzICovCisgICAgICAgICAgICAvKiBub3QgaW4gc3BlYworICAgICAgICAgICAgICAgeyAiZXNfRVNfUFJFRVVST0BDQUxlbmRhcj1KYXBhbmVzZSIsICJlc19FU19QUkVFVVJPQGNhbGVuZGFyPUphcGFuZXNlIiwgImVzX0VTQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVTUCIgfSwKKyAgICAgICAgICAgICAgIHsgImVzX0VTX0VVUk9AU0hPVVQ9emlwZWVkZWVkb29kYWgiLCAiZXNfRVNfRVVST0BzaG91dD16aXBlZWRlZWRvb2RhaCIsICJlc19FU0BjdXJyZW5jeT1FVVI7c2hvdXQ9emlwZWVkZWVkb29kYWgiIH0sCisgICAgICAgICAgICAqLworICAgICAgICAgICAgLyogY3VycmVuY3kga2V5d29yZCBvdmVycmlkZXMgUFJFX0VVUk8gYW5kIEVVUk8gY3VycmVuY3kgKi8KKyAgICAgICAgICAgIC8qIG5vdCBpbiBzcGVjCisgICAgICAgICAgICAgICB7ICJlc19FU19QUkVFVVJPQGN1cnJlbmN5PUVVUiIsICJlc19FU19QUkVFVVJPQGN1cnJlbmN5PUVVUiIsICJlc19FU0BjdXJyZW5jeT1FVVIiIH0sCisgICAgICAgICAgICAgICB7ICJlc19FU19FVVJPQGN1cnJlbmN5PUVTUCIsICJlc19FU19FVVJPQGN1cnJlbmN5PUVTUCIsICJlc19FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICAqLworICAgICAgICAgICAgLyogbm9yd2VnaWFuIGlzIGp1c3QgdG9vIHdlaXJkLCBpZiB3ZSBoYW5kbGUgdGhpbmdzIGluIHRoZWlyIGZ1bGwgZ2VuZXJhbGl0eSAqLworICAgICAgICAgICAgLyogdGhpcyBpcyBhIG5lZ2F0aXZlIHRlc3QgdG8gc2hvdyB0aGF0IHdlIERPIE5PVCBoYW5kbGUgJ2xhbmc9bm8sdmFyPU5ZJyBzcGVjaWFsbHkuICovCisgICAgICAgICAgICB7ICJuby1IYW50LUdCX05ZQGN1cnJlbmN5PSQkJCIsICJub19IYW50X0dCX05ZQGN1cnJlbmN5PSQkJCIsICJub19IYW50X0dCX05ZQGN1cnJlbmN5PSQkJCIgLyogbm90OiAibm5fSGFudF9HQkBjdXJyZW5jeT0kJCQiIFthbGFuIElDVTMuMF0gKi8gfSwKKworICAgICAgICAgICAgLyogdGVzdCBjYXNlcyByZWZsZWN0aW5nIGludGVybmFsIHJlc291cmNlIGJ1bmRsZSB1c2FnZSAqLworICAgICAgICAgICAgLyogcm9vdCBpcyBqdXN0IGEgbGFuZ3VhZ2UgKi8KKyAgICAgICAgICAgIHsgInJvb3RAa3c9Zm9vIiwgInJvb3RAa3c9Zm9vIiwgInJvb3RAa3c9Zm9vIiB9LAorICAgICAgICAgICAgLyogbGV2ZWwgMiBjYW5vbmljYWxpemF0aW9uIHNob3VsZCBub3QgdG91Y2ggYmFzZW5hbWUgd2hlbiB0aGVyZSBhcmUga2V5d29yZHMgYW5kIGl0IGlzIG51bGwgKi8KKyAgICAgICAgICAgIHsgIkBjYWxlbmRhcj1ncmVnb3JpYW4iLCAiQGNhbGVuZGFyPWdyZWdvcmlhbiIsICJAY2FsZW5kYXI9Z3JlZ29yaWFuIiB9LAorICAgICAgICB9OworCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IHRlc3RDYXNlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlc3RDYXNlID0gdGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IHRlc3RDYXNlWzBdOworICAgICAgICAgICAgU3RyaW5nIGxldmVsMUV4cGVjdGVkID0gdGVzdENhc2VbMV07CisgICAgICAgICAgICBTdHJpbmcgbGV2ZWwyRXhwZWN0ZWQgPSB0ZXN0Q2FzZVsyXTsKKworICAgICAgICAgICAgaWYgKGxldmVsMUV4cGVjdGVkICE9IG51bGwpIHsgLy8gbnVsbCBtZWFucyB3ZSBoYXZlIG5vIGV4cGVjdGF0aW9ucyBmb3IgaG93IHRoaXMgY2FzZSBpcyBoYW5kbGVkCisgICAgICAgICAgICAgICAgU3RyaW5nIGxldmVsMSA9IFVMb2NhbGUuZ2V0TmFtZShzb3VyY2UpOworICAgICAgICAgICAgICAgIGlmICghbGV2ZWwxLmVxdWFscyhsZXZlbDFFeHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuZ2V0TmFtZSBlcnJvciBmb3I6ICciICsgc291cmNlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIicgZXhwZWN0ZWQ6ICciICsgbGV2ZWwxRXhwZWN0ZWQgKyAiJyBidXQgZ290OiAnIiArIGxldmVsMSArICInIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlVsb2NhbGUuZ2V0TmFtZSBmb3I6ICciICsgc291cmNlICsgIicgcmV0dXJuZWQ6ICciICsgbGV2ZWwxICsgIiciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJVTG9jYWxlLmdldE5hbWUgc2tpcHBlZDogJyIgKyBzb3VyY2UgKyAiJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGV2ZWwyRXhwZWN0ZWQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBsZXZlbDIgPSBVTG9jYWxlLmNhbm9uaWNhbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgICAgIGlmKCFsZXZlbDIuZXF1YWxzKGxldmVsMkV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVTG9jYWxlLmdldE5hbWUgZXJyb3IgZm9yOiAnIiArIHNvdXJjZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICInIGV4cGVjdGVkOiAnIiArIGxldmVsMkV4cGVjdGVkICsgIicgYnV0IGdvdDogJyIgKyBsZXZlbDIgKyAiJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbG9jYWxlLmNhbm9uaWNhbGl6ZSBmb3I6ICciICsgc291cmNlICsgIicgcmV0dXJuZWQ6ICciICsgbGV2ZWwyICsgIiciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJVTG9jYWxlLmNhbm9uaWNhbGl6ZSBza2lwcGVkOiAnIiArIHNvdXJjZSArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QXZhaWxhYmxlKCl7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmKGxvY2FsZXMubGVuZ3RoPDEwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgY29ycmVjdCByZXN1bHQgZnJvbSBnZXRBdmFpbGFibGVMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWxvY2FsZXNbbG9jYWxlcy5sZW5ndGgtMV0uZXF1YWxzKCJ6aF9IYW50X1RXIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZXMoKSB7CisgICAgICAgIC8vIGNvbnNpc3RlbmN5IGNoZWNrLCBhbHNvIGNoZWNrIHRoYXQgYWxsIGRhdGEgaXMgYXZhaWxhYmxlCisgICAgICAgIHsKKyAgICAgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIGwgPSBsb2NhbGVzW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbC5nZXREaXNwbGF5TmFtZSgpOworCisgICAgICAgICAgICAgICAgbG9nbG4obCArICIgLS0+ICIgKyBuYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbC5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkdFUk1BTikgKworICAgICAgICAgICAgICAgICAgICAgICIsICIgKyBsLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRlJBTkNFKSk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsLmdldERpc3BsYXlMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBzY3JpcHQgPSBsLmdldERpc3BsYXlTY3JpcHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY291bnRyeSA9IGwuZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IGwuZ2V0RGlzcGxheVZhcmlhbnQoKTsKKworICAgICAgICAgICAgICAgIGNoZWNrTmFtZShuYW1lLCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbG9jYWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGRsID0gbG9jYWxlc1tqXTsKKworICAgICAgICAgICAgICAgICAgICBuYW1lID0gbC5nZXREaXNwbGF5TmFtZShkbCk7CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gbC5nZXREaXNwbGF5TGFuZ3VhZ2UoZGwpOworICAgICAgICAgICAgICAgICAgICBzY3JpcHQgPSBsLmdldERpc3BsYXlTY3JpcHQoZGwpOworICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gbC5nZXREaXNwbGF5Q291bnRyeShkbCk7CisgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBsLmdldERpc3BsYXlWYXJpYW50KGRsKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrTmFtZShuYW1lLCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gc3BvdCBjaGVjaworICAgICAgICB7CisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlLlVTLCBVTG9jYWxlLkdFUk1BTlksIFVMb2NhbGUuRlJBTkNFCisgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSB7CisgICAgICAgICAgICAgICAgIkNoaW5lc2UgKENoaW5hKSIsICJDaGluZXNpc2NoIChDaGluYSkiLCAiY2hpbm9pcyAoQ2hpbmUpIgorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUoInpoX0NOIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5TmFtZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIW5hbWVzW2ldLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXhwZWN0ZWQgJyIgKyBuYW1lc1tpXSArICInIGJ1dCBnb3QgJyIgKyBuYW1lICsgIiciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tOYW1lKFN0cmluZyBuYW1lLCBTdHJpbmcgbGFuZ3VhZ2UsIFN0cmluZyBzY3JpcHQsIFN0cmluZyBjb3VudHJ5LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICBpZiAobGFuZ3VhZ2UubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZihsYW5ndWFnZSkgPT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJuYW1lICciICsgbmFtZSArICInIGRvZXMgbm90IGNvbnRhaW4gbGFuZ3VhZ2UgJyIgKyBsYW5ndWFnZSArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNjcmlwdC5sZW5ndGgoKSA+IDAgJiYgbmFtZS5pbmRleE9mKHNjcmlwdCkgPT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJuYW1lICciICsgbmFtZSArICInIGRvZXMgbm90IGNvbnRhaW4gc2NyaXB0ICciICsgc2NyaXB0ICsgIiciKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnRyeS5sZW5ndGgoKSA+IDAgJiYgbmFtZS5pbmRleE9mKGNvdW50cnkpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIGNvdW50cnkgJyIgKyBjb3VudHJ5ICsgIiciKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSA+IDAgJiYgbmFtZS5pbmRleE9mKHZhcmlhbnQpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIHZhcmlhbnQgJyIgKyB2YXJpYW50ICsgIiciKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vQ292ZXIgZGlzcGxheVhYWAorICAgICAgICAgICAgaW50IGksIGo7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQ9InpoX0NOIjsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lLCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50OworICAgICAgICAgICAgbG9nbG4oIkNvdmVyaW5nIEFQSXMgd2l0aCBzaWduYXR1cmUgZGlzcGxheVhYWChTdHJpbmcsIFN0cmluZykiKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBMT0NBTEVfU0laRTsgaSsrKSB7CisgICAgICAgICAgICAgICAgLy9sb2NhbGVJRCBTdHJpbmcKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdExvY2FsZT0ocmF3RGF0YTJbTkFNRV1baV0pOworCisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIisgdGVzdExvY2FsZSsiLi4uLi4iKTsKKyAgICAgICAgICAgICAgICBuYW1lID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZShsb2NhbGVJRCwgdGVzdExvY2FsZSk7CisgICAgICAgICAgICAgICAgbGFuZ3VhZ2UgPSBVTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShsb2NhbGVJRCwgdGVzdExvY2FsZSk7CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KGxvY2FsZUlELCB0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShsb2NhbGVJRCwgdGVzdExvY2FsZSk7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IFVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworCisgICAgICAgICAgICAgICAgaWYgKCFjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbigiQ292ZXJpbmcgQVBJcyB3aXRoIHNpZ25hdHVyZSBkaXNwbGF5WFhYKFN0cmluZywgVUxvY2FsZSlcbiIpOworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IExPQ0FMRV9TSVpFOyBqKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdExvY2FsZT0ocmF3RGF0YTJbTkFNRV1bal0pOworICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUodGVzdExvY2FsZSk7CisKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiKyB0ZXN0TG9jYWxlKyIuLi4uLiIpOworICAgICAgICAgICAgICAgIG5hbWUgPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKGxvY2FsZUlELCBsb2MpOworICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UobG9jYWxlSUQsIGxvYyk7CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KGxvY2FsZUlELCBsb2MpOworICAgICAgICAgICAgICAgIGNvdW50cnkgPSBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KGxvY2FsZUlELCBsb2MpOworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBVTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KGxvY2FsZUlELCBsb2MpOworCisgICAgICAgICAgICAgICAgaWYgKCFjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVMb2NhbGUgbG9jMSA9IG5ldyBVTG9jYWxlKCJlbl9VU19CUk9PS0xZTiIpOworICAgICAgICBVTG9jYWxlIGxvYzIgPSBuZXcgVUxvY2FsZSgiZW4iLCJVUyIsIkJST09LTFlOIik7CisgICAgICAgIGlmICghbG9jMi5lcXVhbHMobG9jMSkpeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIsIFN0cmluZyBjKSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVTG9jYWxlIGxvYzMgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKyAgICAgICAgVUxvY2FsZSBsb2M0ID0gbmV3IFVMb2NhbGUoImVuIiwiVVMiKTsKKyAgICAgICAgaWYgKCFsb2M0LmVxdWFscyhsb2MzKSl7CisgICAgICAgICAgICBlcnJsbigiVUxvY2FsZS5VTG9jYWxlKFN0cmluZyBhLCBTdHJpbmcgYikiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVUxvY2FsZSBsb2M1ID0gKFVMb2NhbGUpIGxvYzQuY2xvbmUoKTsKKyAgICAgICAgaWYgKCFsb2M1LmVxdWFscyhsb2M0KSl7CisgICAgICAgICAgICBlcnJsbigiVUxvY2FsZS5jbG9uZSBzaG91bGQgZ2V0IHRoZSBzYW1lIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlLmdldElTT0NvdW50cmllcygpOwkvLyBUbyBjaGVjayB0aGUgcmVzdWx0ID8hCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhbUJtKCkgeworICAgICAgICAvLyAiYmFtIiBzaG91bGRuJ3QgYmUgdGhlcmUgc2luY2UgdGhlIG9mZmljaWFsIGNvZGUgaXMgJ2JtJworICAgICAgICBTdHJpbmdbXSBpc29MYW5ndWFnZXMgPSBVTG9jYWxlLmdldElTT0xhbmd1YWdlcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlzb0xhbmd1YWdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKCJiYW0iLmVxdWFscyhpc29MYW5ndWFnZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZvdW5kIGJhbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPiAwICYmIGlzb0xhbmd1YWdlc1tpXS5jb21wYXJlVG8oaXNvTGFuZ3VhZ2VzW2ktMV0pIDw9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibGFuZ3VhZ2UgbGlzdCBvdXQgb2Ygb3JkZXI6ICciICsgaXNvTGFuZ3VhZ2VzW2ldICsgIiA8PSAiICsgaXNvTGFuZ3VhZ2VzW2ktMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlLZXl3b3JkKCkgeworICAgICAgICAvL3ByZXBhcmUgdGVzdGluZyBkYXRhCisgICAgICAgIGluaXRIYXNodGFibGUoKTsKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHsiZW5fVVNAY29sbGF0aW9uPWRpcmVjdDtjYWxlbmRhcj1pc2xhbWljLWNpdmlsIiwKKyAgICAgICAgICAgICAiemhfSGFuc0Bjb2xsYXRpb249cGlueWluO2NhbGVuZGFyPWNoaW5lc2UiLAorICAgICAgICAgICAgICJmb29fQmFyX0JBWkBjb2xsYXRpb249dHJhZGl0aW9uYWw7Y2FsZW5kYXI9YnVkZGhpc3QifTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVJRCA9IGRhdGFbaV07CisgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBsb2NhbGUgIiArIGxvY2FsZUlEICsgIiAuLi4iKTsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUobG9jYWxlSUQpOworCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGxvYy5nZXRLZXl3b3JkcygpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gVUxvY2FsZS5nZXRLZXl3b3Jkcyhsb2NhbGVJRCk7CisgICAgICAgICAgICAvL2l0IGFuZCBpdDIgYXJlIG5vdCBlcXVhbCBoZXJlLiBObyB3YXkgdG8gdmVyaWZ5IHRoZWlyIGVxdWl2YWxlbmNlIHlldC4KKyAgICAgICAgICAgIHdoaWxlKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKworICAgICAgICAgICAgICAgIC8vVG8gdmVyaWZ5IGRpc3BsYXkgb2YgS2V5d29yZAorICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgdGhlIGFib3ZlIGtleSBpbiBFbmdsaXNoCisgICAgICAgICAgICAgICAgU3RyaW5nIHMwID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChrZXkpOyAvL2Rpc3BsYXkgaW4gZGVmYXVsdCBsb2NhbGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgczEgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGtleSwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMyID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChrZXksICJlbl9VUyIpOworICAgICAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIkZBSUw6IG9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmQgbWV0aG9kcyBmYWlsZWQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghczEuZXF1YWxzKGhbMF0uZ2V0KGtleSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiTG9jYWxlICIgKyBsb2NhbGVJRCArICIgZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gRW5nbGlzaCBleHBlY3RlZCBcIiIgKyBoWzBdLmdldChrZXkpICsgIlwiIHNhdyBcIiIgKyBzMSArICJcIiBpbnN0ZWFkIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXREaXNwbGF5S2V5d29yZCBmb3Iga2V5OiAiICsga2V5ICsgIiBpbiBFbmdsaXNoIGdvdCAiICsgczEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgdGhlIGtleSBpbiBTLUNoaW5lc2UKKyAgICAgICAgICAgICAgICBzMSA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5LCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgICAgICBzMiA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5LCAiemhfSGFucyIpOworICAgICAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIm9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmQgbWV0aG9kcyBmYWlsZWQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghczEuZXF1YWxzKGhbMV0uZ2V0KGtleSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiTG9jYWxlICIgKyBsb2NhbGVJRCArICIgZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gQ2hpbmVzZSBleHBlY3RlZCBcIiIgKyBoWzFdLmdldChrZXkpICsgIlwiIHNhdyBcIiIgKyBzMSArICJcIiBpbnN0ZWFkIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXREaXNwbGF5S2V5d29yZCBmb3Iga2V5OiAiICsga2V5ICsgIiBpbiBDaGluZXNlIGdvdCAiICsgczEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vVG8gdmVyaWZ5IGRpc3BsYXkgb2YgS2V5d29yZCB2YWx1ZXMKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHlwZSA9IGxvYy5nZXRLZXl3b3JkVmFsdWUoa2V5KTsKKyAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHR5cGUgaW4gRW5nbGlzaAorICAgICAgICAgICAgICAgIFN0cmluZyBzczAgPSBsb2MuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShrZXkpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczEgPSBsb2MuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShrZXksIFVMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczIgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUobG9jYWxlSUQsIGtleSwgImVuX1VTIik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNzMyA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5LCBVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNzMS5lcXVhbHMoc3MyKSB8fCAhc3MxLmVxdWFscyhzczMpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuICgiRkFJTDogb25lIG9mIHRoZSBnZXREaXNwbGF5S2V5d29yZFZhbHVlIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXNzMS5lcXVhbHMoaFswXS5nZXQodHlwZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiIExvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gRW5nbGlzaCBleHBlY3RlZCBcIiIgKyBoWzBdLmdldCh0eXBlKSArICJcIiBzYXcgXCIiICsgc3MxICsgIlwiIGluc3RlYWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArICIgaW4gRW5nbGlzaCBnb3QgIiArIHNzMSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gZGlzcGxheSB0eXBlIGluIENoaW5lc2UKKyAgICAgICAgICAgICAgICBzczAgPSBsb2MuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShrZXkpOworICAgICAgICAgICAgICAgIHNzMSA9IGxvYy5nZXREaXNwbGF5S2V5d29yZFZhbHVlKGtleSwgVUxvY2FsZS5DSElOQSk7CisgICAgICAgICAgICAgICAgc3MyID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXksICJ6aF9IYW5zIik7CisgICAgICAgICAgICAgICAgc3MzID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXksIFVMb2NhbGUuQ0hJTkEpOworICAgICAgICAgICAgICAgIGlmICghc3MxLmVxdWFscyhzczIpIHx8ICFzczEuZXF1YWxzKHNzMykpIHsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuICgib25lIG9mIHRoZSBnZXREaXNwbGF5S2V5d29yZFZhbHVlIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXNzMS5lcXVhbHMoaFsxXS5nZXQodHlwZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbigiTG9jYWxlICIgKyBsb2NhbGVJRCArICIgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBmb3Iga2V5OiAiICsga2V5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiBDaGluZXNlIGV4cGVjdGVkIFwiIiArIGhbMV0uZ2V0KHR5cGUpICsgIlwiIHNhdyBcIiIgKyBzczEgKyAiXCIgaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBmb3Iga2V5OiAiICsga2V5ICsgIiBpbiBDaGluZXNlIGdvdCAiICsgc3MxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGluaXRIYXNodGFibGUoKSB7CisgICAgICAgIGhbMF0gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGhbMV0gPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAgICAgLy9kaXNwbGF5IGluIEVuZ2xpc2gKKyAgICAgICAgaFswXS5wdXQoImNvbGxhdGlvbiIsICJDb2xsYXRpb24iKTsKKyAgICAgICAgaFswXS5wdXQoImNhbGVuZGFyIiwgIkNhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJjdXJyZW5jeSIsICJDdXJyZW5jeSIpOworICAgICAgICBoWzBdLnB1dCgicGhvbmVib29rIiwgIlBob25lYm9vayBPcmRlciIpOworICAgICAgICBoWzBdLnB1dCgicGlueWluIiwgIlBpbnlpbiBPcmRlciIpOworICAgICAgICBoWzBdLnB1dCgidHJhZGl0aW9uYWwiLCAiVHJhZGl0aW9uYWwiKTsKKyAgICAgICAgaFswXS5wdXQoInN0cm9rZSIsICJTdHJva2UgT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoImRpcmVjdCIsICJEaXJlY3QgT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoImphcGFuZXNlIiwgIkphcGFuZXNlIENhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJidWRkaGlzdCIsICJCdWRkaGlzdCBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiaXNsYW1pYyIsICJJc2xhbWljIENhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJpc2xhbWljLWNpdmlsIiwgIklzbGFtaWMtQ2l2aWwgQ2FsZW5kYXIiICk7CisgICAgICAgIGhbMF0ucHV0KCJoZWJyZXciLCAiSGVicmV3IENhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJjaGluZXNlIiwgIkNoaW5lc2UgQ2FsZW5kYXIiKTsKKyAgICAgICAgaFswXS5wdXQoImdyZWdvcmlhbiIsICJHcmVnb3JpYW4gQ2FsZW5kYXIiICk7CisKKyAgICAgICAgLy9kaXNwbGF5IGluIFMtQ2hpbmVzZQorICAgICAgICBoWzFdLnB1dCgiY29sbGF0aW9uIiwgIlx1NUJGOVx1NzE2NyIpOworICAgICAgICBoWzFdLnB1dCgiY2FsZW5kYXIiLCAiXHU2NUU1XHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJjdXJyZW5jeSIsICJcdThEMjdcdTVFMDEiKTsKKyAgICAgICAgaFsxXS5wdXQoImRpcmVjdCIsICJcdTk4N0FcdTVFOEYiKTsKKyAgICAgICAgaFsxXS5wdXQoInBob25lYm9vayIsICJcdTc1MzVcdThCRERcdTdDM0ZcdTk4N0FcdTVFOEYiKTsKKyAgICAgICAgaFsxXS5wdXQoInBpbnlpbiIsICJcdTYyRkNcdTk3RjNcdTk4N2FcdTVlOGYiKTsKKyAgICAgICAgaFsxXS5wdXQoInN0cm9rZSIsICJcdTdCMTRcdTUyMTJcdTk4N0FcdTVFOEYiKTsKKyAgICAgICAgaFsxXS5wdXQoInRyYWRpdGlvbmFsIiwgIlx1NEYyMFx1N0VERlx1NTM4Nlx1NkNENSIpOworICAgICAgICBoWzFdLnB1dCgiamFwYW5lc2UiLCAiXHU2NUU1XHU2NzJDXHU2NUU1XHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJidWRkaGlzdCIsICJcdTRGNUJcdTY1NTlcdTY1RTVcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImlzbGFtaWMiLCAiXHU0RjBBXHU2NUFGXHU1MTcwXHU2NUU1XHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJpc2xhbWljLWNpdmlsIiwgIlx1NEYwQVx1NjVBRlx1NTE3MFx1NUUwQ1x1NTQwOVx1Njc2NVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiaGVicmV3IiwgIlx1NUUwQ1x1NEYyRlx1Njc2NVx1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiY2hpbmVzZSIsICJcdTUxOUNcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImdyZWdvcmlhbiIsICJcdTUxNkNcdTUzODYiKTsKKyAgICB9CisKKyAgICAvL0hhc2h0YWJsZXMgZm9yIHN0b3JpbmcgZXhwZWN0ZWQgZGlzcGxheSBvZiBrZXlzL3R5cGVzIG9mIGxvY2FsZSBpbiBFbmdsaXNoIGFuZCBDaGluZXNlCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlW10gaCA9IG5ldyBIYXNodGFibGVbMl07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFDQ0VQVF9MQU5HVUFHRV9URVNUU1tdW10gID0gIHsKKyAgICAvKiMgICAgICByZXN1bHQgIGZhbGxiYWNrPyAqLworICAgIC8qMCovIHsgIm10X01UIiwgImZhbHNlIiB9LAorICAgIC8qMSovIHsgImVuIiwgImZhbHNlIiB9LAorICAgIC8qMiovIHsgImVuIiwgInRydWUiIH0sIC8vIGZlbGwgYmFjayBmcm9tIGVuLXp6eiB0byBlbgorICAgIC8qMyovIHsgIG51bGwsICJ0cnVlIiB9LAorICAgIC8qNCovIHsgICJlcyIsICJmYWxzZSIgfSwgCisgICAgLyo1Ki8geyAiZGUiLCAiZmFsc2UiIH19OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFUFRfTEFOR1VBR0VfSFRUUFtdID0geyAKKyAgICAgICAgICAgICAgICAgICAgLyowKi8gIm10LW10LCBqYTtxPTAuNzYsIGVuLXVzO3E9MC45NSwgZW47cT0wLjkyLCBlbi1nYjtxPTAuODksIGZyO3E9MC44NywgaXUtY2E7cT0wLjg0LCBpdTtxPTAuODIsIGphLWpwO3E9MC43OSwgbXQ7cT0wLjk3LCBkZS1kZTtxPTAuNzQsIGRlO3E9MC43MSwgZXM7cT0wLjY4LCBpdC1pdDtxPTAuNjYsIGl0O3E9MC42Mywgdmktdm47cT0wLjYxLCB2aTtxPTAuNTgsIG5sLW5sO3E9MC41NSwgbmw7cT0wLjUzLCB0aC10aC10cmFkaXRpb25hbDtxPS4wMSIsCisgICAgICAgICAgICAgICAgICAgIC8qMSovICJqYTtxPTAuNSwgZW47cT0wLjgsIHRsaCIsCisgICAgICAgICAgICAgICAgICAgIC8qMiovICJlbi16enosIGRlLWx4O3E9MC44IiwKKyAgICAgICAgICAgICAgICAgICAgLyozKi8gIm1nYS1pZTtxPTAuOSwgdGxoIiwKKyAgICAgICAgICAgICAgICAgICAgLyo0Ki8gInh4eC15eXk7cT0uMDEsIHh4eC15eXk7cT0uMDEsIHh4eC15eXk7cT0uMDEsIHh4eC15eXk7cT0uMDEsIHh4eC15eXk7cT0uMDEsIHh4eC15eXk7cT0uMDEsICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvKjUqLyAiZGU7cT0uOSwgZnI7cT0uOSwgeHh4LXl5eSwgc3I7cT0uOCJ9OworICAgIAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RBY2NlcHRMYW5ndWFnZSgpIHsKKyAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCAoQUNDRVBUX0xBTkdVQUdFX0hUVFAubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBCb29sZWFuIGV4cGVjdEJvb2xlYW4gPSBuZXcgQm9vbGVhbihBQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMV0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdExvY2FsZT1BQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgbG9nbG4oIiMiICsgaSArICI6IGV4cGVjdGluZzogIiArIGV4cGVjdExvY2FsZSArICIgKCIgKyBleHBlY3RCb29sZWFuICsgIikiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiByW10gPSB7IGZhbHNlIH07CisgICAgICAgICAgICBVTG9jYWxlIG4gPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKEFDQ0VQVF9MQU5HVUFHRV9IVFRQW2ldLCByKTsKKyAgICAgICAgICAgIGlmKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZSE9bnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicmVzdWx0IHdhcyBudWxsISBsaW5lICMiICsgaSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoKG49PW51bGwpJiYoZXhwZWN0TG9jYWxlPT1udWxsKSkgfHwgKG4udG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0TG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGxvY2FsZTogT0suIiApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXhwZWN0ZWQgIiArIGV4cGVjdExvY2FsZSArICIgYnV0IGdvdCAiICsgbi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdEJvb2xlYW4uZXF1YWxzKG5ldyBCb29sZWFuKHJbMF0pKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgYm9vbDogT0suIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJib29sOiBub3QgT0ssIHdhcyAiICsgbmV3IEJvb2xlYW4oclswXSkudG9TdHJpbmcoKSArICIgZXhwZWN0ZWQgIiArIGV4cGVjdEJvb2xlYW4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBVTG9jYWxlW10gU3RyaW5nVG9VTG9jYWxlQXJyYXkoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCl7CisgICAgICAgIC8vZm9sbG93aW5nIGNvZGUgaXMgY29waWVkIGZyb20gCisgICAgICAgIC8vVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlW10gYXZhaWxhYmxlTG9jYWxlcywgYm9vbGVhbltdIGZhbGxiYWNrKQorICAgICAgICBjbGFzcyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisgICAgICAgICAgICBwcml2YXRlIGRvdWJsZSBxOworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgc2VyaWFsOworICAgICAgICAgICAgcHVibGljIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEoZG91YmxlIHRoZXEsIGludCB0aGVzZXJpYWwpIHsKKyAgICAgICAgICAgICAgICBxID0gdGhlcTsKKyAgICAgICAgICAgICAgICBzZXJpYWwgPSB0aGVzZXJpYWw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykgeworICAgICAgICAgICAgICAgIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEgb3RoZXIgPSAoVUxvY2FsZUFjY2VwdExhbmd1YWdlUSkgbzsKKyAgICAgICAgICAgICAgICBpZihxID4gb3RoZXIucSkgeyAvLyByZXZlcnNlIC0gdG8gc29ydCBpbiBkZXNjZW5kaW5nIG9yZGVyCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYocSA8IG90aGVyLnEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHNlcmlhbCA8IG90aGVyLnNlcmlhbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHNlcmlhbCA+IG90aGVyLnNlcmlhbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLy8gc2FtZSBvYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyAxc3Q6IHBhcnNlIG91dCB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0IGludG8gYW4gYXJyYXkKKyAgICAgICAgCisgICAgICAgIFRyZWVNYXAgbWFwID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0Lmxlbmd0aCgpOworICAgICAgICBpbnQgbjsKKyAgICAgICAgaW50IGxhc3Q9LTE7CisgICAgICAgIGZvcihuPTA7bjxsO24rKykgeworICAgICAgICAgICAgaW50IGl0ZW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignLCcsbik7CisgICAgICAgICAgICBpZihpdGVtRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgaXRlbUVuZCA9IGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcGFyYW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignOycsbik7CisgICAgICAgICAgICBkb3VibGUgcSA9IDEuMDsKKyAKKyAgICAgICAgICAgIGlmKChwYXJhbUVuZCAhPSAtMSkgJiYgKHBhcmFtRW5kIDwgaXRlbUVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiBzZW1pY29sb24gKDspIGlzIGNsb3NlciB0aGFuIGVuZCAoLCkgKi8KKyAgICAgICAgICAgICAgICBpbnQgdCA9IHBhcmFtRW5kICsgMTsKKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNTcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSdxJykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1NwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09Jz0nKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzU3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyh0LGl0ZW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcSA9IERvdWJsZS5wYXJzZURvdWJsZSh2YWwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBuZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcSA9IDEuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHEgPSAxLjA7IC8vZGVmYXVsdAorICAgICAgICAgICAgICAgIHBhcmFtRW5kID0gaXRlbUVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGxvYyA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcobixwYXJhbUVuZCkudHJpbSgpOworICAgICAgICAgICAgaW50IHNlcmlhbCA9IG1hcC5zaXplKCk7CisgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGVudHJ5ID0gbmV3IFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEocSxzZXJpYWwpOworICAgICAgICAgICAgbWFwLnB1dChlbnRyeSwgbmV3IFVMb2NhbGUoVUxvY2FsZS5jYW5vbmljYWxpemUobG9jKSkpOyAvLyBzb3J0IGluIHJldmVyc2Ugb3JkZXIuLiAgIDEuMCwgMC45LCAwLjggLi4gZXRjCisgICAgICAgICAgICBuID0gaXRlbUVuZDsgLy8gZ2V0IG5leHQgaXRlbS4gKG4rKyB3aWxsIHNraXAgb3ZlciBkZWxpbWl0ZXIpCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIDIuIHB1bGwgb3V0IHRoZSBtYXAgCisgICAgICAgIFVMb2NhbGUgYWNjZXB0TGlzdFtdID0gKFVMb2NhbGVbXSltYXAudmFsdWVzKCkudG9BcnJheShuZXcgVUxvY2FsZVttYXAuc2l6ZSgpXSk7CisgICAgICAgIHJldHVybiBhY2NlcHRMaXN0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWNjZXB0TGFuZ3VhZ2UyKCkgeworICAgICAgICBmb3IoaW50IGkgPSAwIDsgaSA8IChBQ0NFUFRfTEFOR1VBR0VfSFRUUC5sZW5ndGgpOyBpKyspIHsKKyAgICAgICAgICAgIEJvb2xlYW4gZXhwZWN0Qm9vbGVhbiA9IG5ldyBCb29sZWFuKEFDQ0VQVF9MQU5HVUFHRV9URVNUU1tpXVsxXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0TG9jYWxlPUFDQ0VQVF9MQU5HVUFHRV9URVNUU1tpXVswXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICBsb2dsbigiIyIgKyBpICsgIjogZXhwZWN0aW5nOiAiICsgZXhwZWN0TG9jYWxlICsgIiAoIiArIGV4cGVjdEJvb2xlYW4gKyAiKSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIHJbXSA9IHsgZmFsc2UgfTsKKyAgICAgICAgICAgIFVMb2NhbGUgbiA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nVG9VTG9jYWxlQXJyYXkoQUNDRVBUX0xBTkdVQUdFX0hUVFBbaV0pLCByKTsKKyAgICAgICAgICAgIGlmKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZSE9bnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicmVzdWx0IHdhcyBudWxsISBsaW5lICMiICsgaSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigoKG49PW51bGwpJiYoZXhwZWN0TG9jYWxlPT1udWxsKSkgfHwgKG4udG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0TG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGxvY2FsZTogT0suIiApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXhwZWN0ZWQgIiArIGV4cGVjdExvY2FsZSArICIgYnV0IGdvdCAiICsgbi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdEJvb2xlYW4uZXF1YWxzKG5ldyBCb29sZWFuKHJbMF0pKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgYm9vbDogT0suIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJib29sOiBub3QgT0ssIHdhcyAiICsgbmV3IEJvb2xlYW4oclswXSkudG9TdHJpbmcoKSArICIgZXhwZWN0ZWQgIiArIGV4cGVjdEJvb2xlYW4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEpCMzk2MigpeworICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKCJkZV9DSCIpOworICAgICAgICBTdHJpbmcgZGlzcCA9IGxvYy5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkdFUk1BTik7CisgICAgICAgIGlmKCFkaXNwLmVxdWFscygiRGV1dHNjaCAoU2Nod2VpeikiKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRpc3BsYXkgbmFtZSBmb3IgZGVfQ0ggbG9jYWxlLiBHb3Q6ICIrIHByZXR0aWZ5KGRpc3ApKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVMYWJlbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZUxhYmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q3NWQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVMYWJlbC5qYXZhCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFVuaWNvZGVMYWJlbCB7CisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZXBvaW50LCBib29sZWFuIGlzU2hvcnQpOworICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoU3RyaW5nIHMsIFN0cmluZyBzZXBhcmF0b3IsIGJvb2xlYW4gd2l0aENvZGVQb2ludCkgeworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAxKSB7IC8vIG9wdGltaXplIHNpbXBsZSBjYXNlCisgICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWUocy5jaGFyQXQoMCksIHdpdGhDb2RlUG9pbnQpOyAKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKz1VVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgc2IuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBzYi5hcHBlbmQoZ2V0VmFsdWUoY3AsIHdpdGhDb2RlUG9pbnQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRNYXhXaWR0aChib29sZWFuIGlzU2hvcnQpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEhleCBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCwgYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgICAgICBpZiAoaXNTaG9ydCkgcmV0dXJuIFV0aWxpdHkuaGV4KGNvZGVwb2ludCw0KTsKKyAgICAgICAgICAgIHJldHVybiAiVSsiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50LDQpOworICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbnN0YW50IGV4dGVuZHMgVW5pY29kZUxhYmVsIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdmFsdWU7CisgICAgICAgIHB1YmxpYyBDb25zdGFudChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB2YWx1ZSA9ICIiOworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCwgYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXRNYXhXaWR0aChib29sZWFuIGlzU2hvcnQpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGgoKTsgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVMYWJlbCBOVUxMID0gbmV3IENvbnN0YW50KCIiKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVMYWJlbCBIRVggPSBuZXcgSGV4KCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNGQ2NTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTWFwLmphdmEKQEAgLTAsMCArMSw5MTQgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXQ7CitpbXBvcnQgamF2YS5pby5EYXRhT3V0cHV0OworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5GcmVlemFibGU7CisvKioKKyAqIENsYXNzIGZvciBtYXBwaW5nIFVuaWNvZGUgY2hhcmFjdGVycyB0byB2YWx1ZXMKKyAqIE11Y2ggc21hbGxlciBzdG9yYWdlIHRoYW4gdXNpbmcgSGFzaE1hcCwgYW5kIG11Y2ggZmFzdGVyIGFuZCBtb3JlIGNvbXBhY3QgdGhhbgorICogYSBsaXN0IG9mIFVuaWNvZGVTZXRzLgorICogQGF1dGhvciBEYXZpcworICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVbmljb2RlTWFwIGltcGxlbWVudHMgQ2xvbmVhYmxlLCBGcmVlemFibGUsIEV4dGVybmFsaXphYmxlIHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlRJT05TID0gZmFsc2U7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgR1JPV1RIX1BFUkNFTlQgPSAyMDA7IC8vIDEwMCBpcyBubyBncm93dGghCisgICAgc3RhdGljIGZpbmFsIGxvbmcgR1JPV1RIX0dBUCA9IDEwOyAvLyBleHRyYSBidW1wIQorCisgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoOworICAgIC8vIHR3byBwYXJhbGxlbCBhcnJheXMgdG8gc2F2ZSBtZW1vcnkuIFdpc2ggSmF2YSBoYWQgc3RydWN0cy4KKyAgICBwcml2YXRlIGludFtdIHRyYW5zaXRpb25zOworICAgIHByaXZhdGUgT2JqZWN0W10gdmFsdWVzOworICAgIAorICAgIHByaXZhdGUgTGlua2VkSGFzaFNldCBhdmFpbGFibGVWYWx1ZXMgPSBuZXcgTGlua2VkSGFzaFNldCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gc3RhbGVBdmFpbGFibGVWYWx1ZXM7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGVycm9yT25SZXNldDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGxvY2tlZDsKKyAgICBwcml2YXRlIGludCBsYXN0SW5kZXg7CisgICAgCisgICAgeyBjbGVhcigpOyB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVNYXAgY2xlYXIoKSB7CisgICAgICAgIGlmIChsb2NrZWQpIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgbG9ja2VkIG9iamVjdCIpOworICAgICAgICBsZW5ndGggPSAyOworICAgICAgICB0cmFuc2l0aW9ucyA9IG5ldyBpbnRbXSB7MCwweDExMDAwMCwwLDAsMCwwLDAsMCwwLDB9OworICAgICAgICB2YWx1ZXMgPSBuZXcgT2JqZWN0WzEwXTsKKyAgICAgICAgCisgICAgICAgIGF2YWlsYWJsZVZhbHVlcy5jbGVhcigpOworICAgICAgICBzdGFsZUF2YWlsYWJsZVZhbHVlcyA9IGZhbHNlOworCisgICAgICAgIGVycm9yT25SZXNldCA9IGZhbHNlOworICAgICAgICBsYXN0SW5kZXggPSAwOworICAgIAlyZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyogQm9pbGVycGxhdGUgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgIGlmIChvdGhlciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlTWFwIHRoYXQgPSAoVW5pY29kZU1hcCkgb3RoZXI7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9IHRoYXQubGVuZ3RoKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvbnNbaV0gIT0gdGhhdC50cmFuc2l0aW9uc1tpXSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghYXJlRXF1YWwodmFsdWVzW2ldLCB0aGF0LnZhbHVlc1tpXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0SGFzaENvZGUoT2JqZWN0IG8pIHsKKyAgICAJcmV0dXJuIG8uaGFzaENvZGUoKTsKKyAgICAJLy9lcXVhdG9yLmdldEhhc2hDb2RlCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBhcmVFcXVhbChPYmplY3QgYSAsIE9iamVjdCBiKSB7CisgICAgCWlmIChhID09IGIpIHJldHVybiB0cnVlOworICAgIAlpZiAoYSA9PSBudWxsIHx8IGIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgIAlyZXR1cm4gYS5lcXVhbHMoYik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSBsZW5ndGg7CisgICAgICAgIC8vIFRPRE8gbWlnaHQgd2FudCB0byBhYmJyZXZpYXRlIHRoaXMgZm9yIHNwZWVkLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IDM3KnJlc3VsdCArIHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgcmVzdWx0ID0gMzcqcmVzdWx0ICsgZ2V0SGFzaENvZGUodmFsdWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBjbG9uZS4gV2FybmluZywgYXMgd2l0aCBDb2xsZWN0aW9ucywgZG9lcyBub3QgZG8gZGVlcCBjbG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKSB7CisgICAgICAgIFVuaWNvZGVNYXAgdGhhdCA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgIHRoYXQubGVuZ3RoID0gbGVuZ3RoOworICAgICAgICB0aGF0LnRyYW5zaXRpb25zID0gKGludFtdKSB0cmFuc2l0aW9ucy5jbG9uZSgpOworICAgICAgICB0aGF0LnZhbHVlcyA9IChPYmplY3RbXSkgdmFsdWVzLmNsb25lKCk7CisgICAgICAgIHRoYXQuYXZhaWxhYmxlVmFsdWVzID0gbmV3IExpbmtlZEhhc2hTZXQoYXZhaWxhYmxlVmFsdWVzKTsKKyAgICAgICAgdGhhdC5sb2NrZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRoYXQ7CisgICAgfQorICAgIAorICAgIC8qIGZvciBpbnRlcm5hbCBjb25zaXN0ZW5jeSBjaGVja2luZyAqLworICAgIAorICAgIHZvaWQgX2NoZWNrSW52YXJpYW50cygpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDIKKyAgICAgICAgICB8fCBsZW5ndGggPiB0cmFuc2l0aW9ucy5sZW5ndGgKKyAgICAgICAgICB8fCB0cmFuc2l0aW9ucy5sZW5ndGggIT0gdmFsdWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhcmlhbnQgZmFpbGVkOiBMZW5ndGhzIGJhZCIpOworICAgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICBpZiAoYXJlRXF1YWwodmFsdWVzW2ktMV0sIHZhbHVlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhcmlhbnQgZmFpbGVkOiB2YWx1ZXMgc2hhcmVkIGF0ICIgCisgICAgICAgICAgICAgICAgICAgICsgIlx0IiArIFV0aWxpdHkuaGV4KGktMSkgKyAiOiA8IiArIHZhbHVlc1tpLTFdICsgIj4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0IiArIFV0aWxpdHkuaGV4KGkpICsgIjogPCIgKyB2YWx1ZXNbaV0gKyAiPiIKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodHJhbnNpdGlvbnNbMF0gIT0gMCB8fCB0cmFuc2l0aW9uc1tsZW5ndGgtMV0gIT0gMHgxMTAwMDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFyaWFudCBmYWlsZWQ6IGJvdW5kcyBzZXQgd3JvbmciKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uc1tpLTFdID49IHRyYW5zaXRpb25zW2ldKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogbm90IG1vbm90b25pYyIKKyAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpLTEpICsgIjogIiArIHRyYW5zaXRpb25zW2ktMV0KKyAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpKSArICI6ICIgKyB0cmFuc2l0aW9uc1tpXQorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmRzIGFuIGluZGV4IHN1Y2ggdGhhdCBpbnZlcnNpb25MaXN0W2ldIDw9IGNvZGVwb2ludCA8IGludmVyc2lvbkxpc3RbaSsxXQorICAgICAqIEFzc3VtZXMgdGhhdCAwIDw9IGNvZGVwb2ludCA8PSAweDEwRkZGRgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IF9maW5kSW5kZXgoaW50IGMpIHsKKyAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgaW50IGhpID0gbGVuZ3RoIC0gMTsKKyAgICAgICAgaW50IGkgPSAobG8gKyBoaSkgPj4+IDE7CisgICAgICAgIC8vIGludmFyaWFudDogYyA+PSBsaXN0W2xvXQorICAgICAgICAvLyBpbnZhcmlhbnQ6IGMgPCBsaXN0W2hpXQorICAgICAgICB3aGlsZSAoaSAhPSBsbykgeworICAgICAgICAgICAgaWYgKGMgPCB0cmFuc2l0aW9uc1tpXSkgeworICAgICAgICAgICAgICAgIGhpID0gaTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG8gPSBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSA9IChsbyArIGhpKSA+Pj4gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoQVNTRVJUSU9OUykgX2NoZWNrRmluZChjLCBsbyk7CisgICAgICAgIHJldHVybiBsbzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF9jaGVja0ZpbmQoaW50IGNvZGVwb2ludCwgaW50IHZhbHVlKSB7CisgICAgICAgIGludCBvdGhlciA9IF9fZmluZEluZGV4KGNvZGVwb2ludCk7CisgICAgICAgIGlmIChvdGhlciAhPSB2YWx1ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogYmluYXJ5IHNlYXJjaCIKKyAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChjb2RlcG9pbnQpICsgIjogIiArIHZhbHVlCisgICAgICAgICAgICAgICAgKyAiXHRzaG91bGQgYmU6ICIgKyBvdGhlcik7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgX19maW5kSW5kZXgoaW50IGNvZGVwb2ludCkgeworICAgICAgICAvLyBUT0RPIHVzZSBiaW5hcnkgc2VhcmNoCisgICAgICAgIGZvciAoaW50IGkgPSBsZW5ndGgtMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25zW2ldIDw9IGNvZGVwb2ludCkgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogVHJ5IGluZGV4ZWQgbG9va3VwCisgICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlQgPSA4OworICAgIGludFtdIHN0YXJ0cyA9IG5ldyBpbnRbMHgxMEZGRkY+PlNISUZUXTsgLy8gbG93ZXN0IHRyYW5zaXRpb24gaW5kZXggd2hlcmUgY29kZXBvaW50Pj54IGNhbiBiZSBmb3VuZAorICAgIGJvb2xlYW4gc3RhcnRzVmFsaWQgPSBmYWxzZTsKKyAgICBwcml2YXRlIGludCBmaW5kSW5kZXgoaW50IGNvZGVwb2ludCkgeworICAgICAgICBpZiAoIXN0YXJ0c1ZhbGlkKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSBsZW5ndGgtMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICBpZiAodHJhbnNpdGlvbnNbaV0gPD0gY29kZXBvaW50KSByZXR1cm4gaTsKKyAgICAgICB9CisgICAgICAgcmV0dXJuIDA7CisgICB9CisgICAqLworICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBpdGVtcyBmcm9tIGluZGV4IHRocm91Z2ggaW5kZXgrY291bnQtMS4KKyAgICAgKiBMb2dpY2FsbHkgcmVkdWNlcyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgYXJyYXlzLgorICAgICAqIEBwYXJhbSBpbmRleAorICAgICAqIEBwYXJhbSBjb3VudAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBfcmVtb3ZlQXQoaW50IGluZGV4LCBpbnQgY291bnQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IGluZGV4ICsgY291bnQ7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdHJhbnNpdGlvbnNbaS1jb3VudF0gPSB0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgIHZhbHVlc1tpLWNvdW50XSA9IHZhbHVlc1tpXTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggLT0gY291bnQ7CisgICAgfQorICAgIC8qKgorICAgICAqIEFkZCBhIGdhcCBmcm9tIGluZGV4IHRvIGluZGV4K2NvdW50LTEuCisgICAgICogVGhlIHZhbHVlcyB0aGVyZSBhcmUgdW5kZWZpbmVkLCBhbmQgbXVzdCBiZSBzZXQuCisgICAgICogTG9naWNhbGx5IGdyb3dzIGFycmF5cyB0byBhY2NvbW9kYXRlLiBBY3R1YWwgZ3Jvd3RoIGlzIGxpbWl0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXgKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgX2luc2VydEdhcEF0KGludCBpbmRleCwgaW50IGNvdW50KSB7CisgICAgICAgIGludCBuZXdMZW5ndGggPSBsZW5ndGggKyBjb3VudDsKKyAgICAgICAgaW50W10gb2xkdHJhbnNpdGlvbnMgPSB0cmFuc2l0aW9uczsKKyAgICAgICAgT2JqZWN0W10gb2xkdmFsdWVzID0gdmFsdWVzOworICAgICAgICBpZiAobmV3TGVuZ3RoID4gdHJhbnNpdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnQgYWxsb2NhdGlvbiA9IChpbnQpIChHUk9XVEhfR0FQICsgKG5ld0xlbmd0aCAqIEdST1dUSF9QRVJDRU5UKSAvIDEwMCk7CisgICAgICAgICAgICB0cmFuc2l0aW9ucyA9IG5ldyBpbnRbYWxsb2NhdGlvbl07CisgICAgICAgICAgICB2YWx1ZXMgPSBuZXcgT2JqZWN0W2FsbG9jYXRpb25dOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleDsgKytpKSB7CisgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNbaV0gPSBvbGR0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSBvbGR2YWx1ZXNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGZvciAoaW50IGkgPSBsZW5ndGggLSAxOyBpID49IGluZGV4OyAtLWkpIHsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2krY291bnRdID0gb2xkdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICB2YWx1ZXNbaStjb3VudF0gPSBvbGR2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gbmV3TGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3NvY2lhdGVzIGNvZGUgcG9pbnQgd2l0aCB2YWx1ZS4gUmVtb3ZlcyBhbnkgcHJldmlvdXMgYXNzb2NpYXRpb24uCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlTWFwIF9wdXQoaW50IGNvZGVwb2ludCwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIC8vIFdhcm5pbmc6IGJhc2VJbmRleCBpcyBhbiBpbnZhcmlhbnQ7IG11c3QKKyAgICAgICAgLy8gYmUgZGVmaW5lZCBzdWNoIHRoYXQgdHJhbnNpdGlvbnNbYmFzZUluZGV4XSA8IGNvZGVwb2ludAorICAgICAgICAvLyBhdCBlbmQgb2YgdGhpcyByb3V0aW5lLgorICAgICAgICBpbnQgYmFzZUluZGV4OworICAgICAgICBpZiAodHJhbnNpdGlvbnNbbGFzdEluZGV4XSA8PSBjb2RlcG9pbnQgCisgICAgICAgICAgJiYgY29kZXBvaW50IDwgdHJhbnNpdGlvbnNbbGFzdEluZGV4KzFdKSB7CisgICAgICAgICAgICBiYXNlSW5kZXggPSBsYXN0SW5kZXg7CisgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgYmFzZUluZGV4ID0gX2ZpbmRJbmRleChjb2RlcG9pbnQpOworICAgICAgICB9CisgICAgICAgIGludCBsaW1pdEluZGV4ID0gYmFzZUluZGV4ICsgMTsKKyAgICAgICAgLy8gY2FzZXMgYXJlIChhKSB2YWx1ZSBpcyBhbHJlYWR5IHNldAorICAgICAgICBpZiAoYXJlRXF1YWwodmFsdWVzW2Jhc2VJbmRleF0sIHZhbHVlKSkgcmV0dXJuIHRoaXM7CisgICAgICAgIGlmIChsb2NrZWQpIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgbG9ja2VkIG9iamVjdCIpOworICAgICAgICBpZiAoZXJyb3JPblJlc2V0ICYmIHZhbHVlc1tiYXNlSW5kZXhdICE9IG51bGwpIHsKKyAgICAgICAgCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkF0dGVtcHQgdG8gcmVzZXQgdmFsdWUgZm9yICIgKyBVdGlsaXR5LmhleChjb2RlcG9pbnQpCisgICAgICAgIAkJCSsgIiB3aGVuIHRoYXQgaXMgZGlzYWxsb3dlZC4gT2xkOiAiICsgdmFsdWVzW2Jhc2VJbmRleF0gKyAiOyBOZXc6ICIgKyB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBhZGp1c3QgdGhlIGF2YWlsYWJsZSB2YWx1ZXMKKyAgICAgICAgc3RhbGVBdmFpbGFibGVWYWx1ZXMgPSB0cnVlOworICAgICAgICBhdmFpbGFibGVWYWx1ZXMuYWRkKHZhbHVlKTsgLy8gYWRkIGlmIG5vdCB0aGVyZSBhbHJlYWR5ICAgICAgCisKKyAgICAgICAgaW50IGJhc2VDUCA9IHRyYW5zaXRpb25zW2Jhc2VJbmRleF07CisgICAgICAgIGludCBsaW1pdENQID0gdHJhbnNpdGlvbnNbbGltaXRJbmRleF07CisgICAgICAgIC8vIHdlIG5vdyBzdGFydCB3YWxraW5nIHRocm91Z2ggdGhlIGRpZmZlcmVuY2UgY2FzZSwKKyAgICAgICAgLy8gYmFzZWQgb24gd2hldGhlciB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiByYW5nZQorICAgICAgICAvLyBhbmQgd2hldGhlciB0aGUgcmFuZ2UgaXMgYSBzaW5nbGUgY2hhcmFjdGVyIG9yIG11bHRpcGxlCisgICAgICAgIAorICAgICAgICBpZiAoYmFzZUNQID09IGNvZGVwb2ludCkgeworICAgICAgICAgICAgLy8gQ0FTRTogQXQgdmVyeSBzdGFydCBvZiByYW5nZQorICAgICAgICAgICAgYm9vbGVhbiBjb25uZWN0c1dpdGhQcmV2aW91cyA9IAorICAgICAgICAgICAgICAgIGJhc2VJbmRleCAhPSAwICYmIGFyZUVxdWFsKHZhbHVlLCB2YWx1ZXNbYmFzZUluZGV4LTFdKTsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaW1pdENQID09IGNvZGVwb2ludCArIDEpIHsKKyAgICAgICAgICAgICAgICAvLyBDQVNFOiBTaW5nbGUgY29kZXBvaW50IHJhbmdlCisgICAgICAgICAgICAgICAgYm9vbGVhbiBjb25uZWN0c1dpdGhGb2xsb3dpbmcgPQorICAgICAgICAgICAgICAgICAgICBiYXNlSW5kZXggPCBsZW5ndGggLSAxICYmIGFyZUVxdWFsKHZhbHVlLCB2YWx1ZXNbbGltaXRJbmRleF0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChjb25uZWN0c1dpdGhQcmV2aW91cykgeworICAgICAgICAgICAgICAgICAgICAvLyBBMWEgY29ubmVjdHMgd2l0aCBwcmV2aW91cyAmIGZvbGxvd2luZywgc28gcmVtb3ZlIGluZGV4CisgICAgICAgICAgICAgICAgICAgIGlmIChjb25uZWN0c1dpdGhGb2xsb3dpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9yZW1vdmVBdChiYXNlSW5kZXgsIDIpOworICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9yZW1vdmVBdChiYXNlSW5kZXgsIDEpOyAvLyBleHRlbmQgcHJldmlvdXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAtLWJhc2VJbmRleDsgLy8gZml4IHVwCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0c1dpdGhGb2xsb3dpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgX3JlbW92ZUF0KGJhc2VJbmRleCwgMSk7IC8vIGV4dGVuZCBmb2xsb3dpbmcgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPSBjb2RlcG9pbnQ7IAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgY29ubmVjdCBvbiBlaXRoZXIgc2lkZSwganVzdCByZXNldAorICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbYmFzZUluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29ubmVjdHNXaXRoUHJldmlvdXMpIHsgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBBLjE6IHN0YXJ0IG9mIG11bHRpIGNvZGVwb2ludCByYW5nZQorICAgICAgICAgICAgLy8gaWYgY29ubmVjdHMKKyAgICAgICAgICAgICAgICArK3RyYW5zaXRpb25zW2Jhc2VJbmRleF07IC8vIGV4dGVuZCBwcmV2aW91cworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgaW5zZXJ0IG5ldyB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNbYmFzZUluZGV4XSA9IGNvZGVwb2ludCsxOyAvLyBmaXggZm9sbG93aW5nIHJhbmdlCisgICAgICAgICAgICAgICAgX2luc2VydEdhcEF0KGJhc2VJbmRleCwgMSk7CisgICAgICAgICAgICAgICAgdmFsdWVzW2Jhc2VJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdID0gY29kZXBvaW50OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGxpbWl0Q1AgPT0gY29kZXBvaW50ICsgMSkgeworICAgICAgICAgICAgLy8gQ0FTRTogYXQgZW5kIG9mIHJhbmdlICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIGNvbm5lY3RzLCBqdXN0IGJhY2sgdXAgcmFuZ2UKKyAgICAgICAgICAgIGJvb2xlYW4gY29ubmVjdHNXaXRoRm9sbG93aW5nID0KKyAgICAgICAgICAgICAgICBiYXNlSW5kZXggPCBsZW5ndGggLSAxICYmIGFyZUVxdWFsKHZhbHVlLCB2YWx1ZXNbbGltaXRJbmRleF0pOworCisgICAgICAgICAgICBpZiAoY29ubmVjdHNXaXRoRm9sbG93aW5nKSB7CisgICAgICAgICAgICAgICAgLS10cmFuc2l0aW9uc1tsaW1pdEluZGV4XTsgCisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBfaW5zZXJ0R2FwQXQobGltaXRJbmRleCwgMSk7CisgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNbbGltaXRJbmRleF0gPSBjb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgdmFsdWVzW2xpbWl0SW5kZXhdID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBDQVNFOiBpbiBtaWRkbGUgb2YgcmFuZ2UKKyAgICAgICAgICAgIC8vIGluc2VydCBnYXAsIHRoZW4gc2V0IHRoZSBuZXcgcmFuZ2UKKyAgICAgICAgICAgIF9pbnNlcnRHYXBBdCgrK2Jhc2VJbmRleCwyKTsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPSBjb2RlcG9pbnQ7CisgICAgICAgICAgICB2YWx1ZXNbYmFzZUluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgdHJhbnNpdGlvbnNbYmFzZUluZGV4KzFdID0gY29kZXBvaW50ICsgMTsKKyAgICAgICAgICAgIHZhbHVlc1tiYXNlSW5kZXgrMV0gPSB2YWx1ZXNbYmFzZUluZGV4LTFdOyAvLyBjb3B5IGxvd2VyIHJhbmdlIHZhbHVlcworICAgICAgICB9CisgICAgICAgIGxhc3RJbmRleCA9IGJhc2VJbmRleDsgLy8gc3RvcmUgZm9yIG5leHQgdGltZQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgcHJpdmF0ZSBVbmljb2RlTWFwIF9wdXRBbGwoaW50IHN0YXJ0Q29kZVBvaW50LCBpbnQgZW5kQ29kZVBvaW50LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0Q29kZVBvaW50OyBpIDw9IGVuZENvZGVQb2ludDsgKytpKSB7CisgICAgICAgICAgICBfcHV0KGksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29kZXBvaW50IHZhbHVlLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBwdXQoaW50IGNvZGVwb2ludCwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmIChjb2RlcG9pbnQgPCAwIHx8IGNvZGVwb2ludCA+IDB4MTBGRkZGKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIHJhbmdlOiAiICsgY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBfcHV0KGNvZGVwb2ludCwgdmFsdWUpOworICAgICAgICBpZiAoQVNTRVJUSU9OUykgX2NoZWNrSW52YXJpYW50cygpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLyoqCisgICAgICogQWRkcyBidW5jaCBvJyBjb2RlcG9pbnRzOyBvdGhlcndpc2UgbGlrZSBwdXQuCisgICAgICogQHBhcmFtIGNvZGVwb2ludHMKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBwdXRBbGwoVW5pY29kZVNldCBjb2RlcG9pbnRzLCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGNvZGVwb2ludHMpOworICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgIF9wdXRBbGwoaXQuY29kZXBvaW50LCBpdC5jb2RlcG9pbnRFbmQsIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkcyBidW5jaCBvJyBjb2RlcG9pbnRzOyBvdGhlcndpc2UgbGlrZSBhZGQuCisgICAgICogQHBhcmFtIHN0YXJ0Q29kZVBvaW50CisgICAgICogQHBhcmFtIGVuZENvZGVQb2ludAorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIHB1dEFsbChpbnQgc3RhcnRDb2RlUG9pbnQsIGludCBlbmRDb2RlUG9pbnQsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAoc3RhcnRDb2RlUG9pbnQgPCAwIHx8IGVuZENvZGVQb2ludCA+IDB4MTBGRkZGKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIHJhbmdlOiAiCisgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzdGFydENvZGVQb2ludCkgKyAiLi4iICsgVXRpbGl0eS5oZXgoZW5kQ29kZVBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgICAgICBmb3IgKGludCBpID0gc3RhcnRDb2RlUG9pbnQ7IGkgPD0gZW5kQ29kZVBvaW50OyArK2kpIHsKKyAgICAgICAgICAgIF9wdXQoaSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBZGQgYWxsIHRoZSAobWFpbikgdmFsdWVzIGZyb20gYSBVbmljb2RlIHByb3BlcnR5CisgICAgICogQHBhcmFtIHByb3AgdGhlIHByb3BlcnR5IHRvIGFkZCB0byB0aGUgbWFwCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0QWxsKFVuaWNvZGVQcm9wZXJ0eSBwcm9wKSB7CisgICAgICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgX3B1dChpLCBwcm9wLmdldFZhbHVlKGkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYWxsIHRoZSAobWFpbikgdmFsdWVzIGZyb20gYSBVbmljb2RlIHByb3BlcnR5CisgICAgICogQHBhcmFtIHByb3AgdGhlIHByb3BlcnR5IHRvIGFkZCB0byB0aGUgbWFwCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0QWxsKFVuaWNvZGVNYXAgcHJvcCkgeworICAgICAgICAvLyBUT0RPIG9wdGltaXplCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIF9wdXQoaSwgcHJvcC5nZXRWYWx1ZShpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50bHkgdW5tYXBwZWQgVW5pY29kZSBjb2RlIHBvaW50cyB0byB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBzZXQKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBzZXRNaXNzaW5nKE9iamVjdCB2YWx1ZSkgeworICAgIAkvLyBmYXN0IHBhdGgsIGlmIHZhbHVlIG5vdCB5ZXQgcHJlc2VudAorICAgIAlpZiAoIWdldEF2YWlsYWJsZVZhbHVlcygpLmNvbnRhaW5zKHZhbHVlKSkgeworICAgICAgICAJc3RhbGVBdmFpbGFibGVWYWx1ZXMgPSB0cnVlOworCSAgICAJYXZhaWxhYmxlVmFsdWVzLmFkZCh2YWx1ZSk7CisJICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisJICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSA9PSBudWxsKSB2YWx1ZXNbaV0gPSB2YWx1ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIHJldHVybiB0aGlzOworCSAgICB9IGVsc2UgeworCSAgICAJcmV0dXJuIHB1dEFsbChnZXRTZXQobnVsbCksIHZhbHVlKTsKKwkgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gdmFsdWUuIERlcG9zaXRzIGludG8KKyAgICAgKiByZXN1bHQgaWYgaXQgaXMgbm90IG51bGwuIFJlbWVtYmVyIHRvIGNsZWFyIGlmIHlvdSBqdXN0IHdhbnQKKyAgICAgKiB0aGUgbmV3IHZhbHVlcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcGFyYW0gcmVzdWx0CisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRTZXQoT2JqZWN0IHZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgKytpKSB7CisgICAgICAgICAgICBpZiAoYXJlRXF1YWwodmFsdWUsIHZhbHVlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHRyYW5zaXRpb25zW2ldLCB0cmFuc2l0aW9uc1tpKzFdLTEpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFNldChPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNldCh2YWx1ZSxudWxsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVNldCBrZXlTZXQoKSB7CisgICAgICAgIHJldHVybiBnZXRTZXQobnVsbCxudWxsKS5jb21wbGVtZW50KCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLiBEZXBvc2l0cyBlYWNoIG5vbi1udWxsIHZhbHVlIGludG8KKyAgICAgKiByZXN1bHQuIENyZWF0ZXMgcmVzdWx0IGlmIGl0IGlzIG51bGwuIFJlbWVtYmVyIHRvIGNsZWFyIHJlc3VsdCBpZgorICAgICAqIHlvdSBhcmUgbm90IGFwcGVuZGluZyB0byBleGlzdGluZyBjb2xsZWN0aW9uLgorICAgICAqIEBwYXJhbSByZXN1bHQKKyAgICAgKiBAcmV0dXJuIHJlc3VsdAorICAgICAqLworICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldEF2YWlsYWJsZVZhbHVlcyhDb2xsZWN0aW9uIHJlc3VsdCkgeworICAgIAlpZiAoc3RhbGVBdmFpbGFibGVWYWx1ZXMpIHsKKyAgICAJCS8vIGNvbGxlY3QgYWxsIHRoZSBjdXJyZW50IHZhbHVlcworICAgIAkJLy8gcmV0YWluIHRoZW0gaW4gdGhlIGF2YWlsYWJsZVZhbHVlcworICAgIAkJU2V0IHRlbXAgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGggLSAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVzW2ldICE9IG51bGwpIHRlbXAuYWRkKHZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhdmFpbGFibGVWYWx1ZXMucmV0YWluQWxsKHRlbXApOworICAgICAgICAgICAgc3RhbGVBdmFpbGFibGVWYWx1ZXMgPSBmYWxzZTsKKyAgICAJfQorICAgIAlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoYXZhaWxhYmxlVmFsdWVzLnNpemUoKSk7CisgICAgICAgIHJlc3VsdC5hZGRBbGwoYXZhaWxhYmxlVmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kCisgICAgICovCisgICAgcHVibGljIENvbGxlY3Rpb24gZ2V0QXZhaWxhYmxlVmFsdWVzKCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlVmFsdWVzKG51bGwpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBjb2RlIHBvaW50LgorICAgICAqIFJldHVybnMgbnVsbCwgaWYgdGhlcmUgaXMgbm8gc3VjaCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiB0aGUgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFZhbHVlKGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgaWYgKGNvZGVwb2ludCA8IDAgfHwgY29kZXBvaW50ID4gMHgxMEZGRkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGVwb2ludCBvdXQgb2YgcmFuZ2U6ICIgKyBjb2RlcG9pbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZXNbX2ZpbmRJbmRleChjb2RlcG9pbnQpXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hhbmdlIGEgbmV3IHN0cmluZyBmcm9tIHRoZSBzb3VyY2Ugc3RyaW5nIGFjY29yZGluZyB0byB0aGUgbWFwcGluZ3MuIEZvciBlYWNoIGNvZGUgcG9pbnQgY3AsIGlmIGdldFZhbHVlKGNwKSBpcyBudWxsLCBhcHBlbmQgdGhlIGNoYXJhY3Rlciwgb3RoZXJ3aXNlIGFwcGVuZCBnZXRWYWx1ZShjcCkudG9TdHJpbmcoKQorICAgICAqIEBwYXJhbSBzb3VyY2UKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBmb2xkKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKyAgICAgICAgICBPYmplY3QgbVJlc3VsdCA9IGdldFZhbHVlKGNwKTsKKyAgICAgICAgICBpZiAobVJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1SZXN1bHQpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbXBvc2VyIHsKKyAgICAJT2JqZWN0IGNvbXBvc2UoaW50IGNvZGVQb2ludCwgT2JqZWN0IGEsIE9iamVjdCBiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVNYXAgY29tcG9zZVdpdGgoVW5pY29kZU1hcCBvdGhlciwgQ29tcG9zZXIgY29tcG9zZXIpIHsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgIAkJT2JqZWN0IHYxID0gZ2V0VmFsdWUoaSk7CisgICAgCQlPYmplY3QgdjIgPSBvdGhlci5nZXRWYWx1ZShpKTsKKyAgICAJCU9iamVjdCB2MyA9IGNvbXBvc2VyLmNvbXBvc2UoaSwgdjEsIHYyKTsKKyAgICAJCWlmICh2MSAhPSB2MyAmJiAodjEgPT0gbnVsbCB8fCAhdjEuZXF1YWxzKHYzKSkpIHB1dChpLCB2Myk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTWFwIGNvbXBvc2VXaXRoKFVuaWNvZGVTZXQgc2V0LCBPYmplY3QgdmFsdWUsIENvbXBvc2VyIGNvbXBvc2VyKSB7CisgICAgCWZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOyBpdC5uZXh0KCk7KSB7CisgICAgCQlpbnQgaSA9IGl0LmNvZGVwb2ludDsKKyAgICAJCU9iamVjdCB2MSA9IGdldFZhbHVlKGkpOworICAgIAkJT2JqZWN0IHYzID0gY29tcG9zZXIuY29tcG9zZShpLCB2MSwgdmFsdWUpOworICAgIAkJaWYgKHYxICE9IHYzICYmICh2MSA9PSBudWxsIHx8ICF2MS5lcXVhbHModjMpKSkgcHV0KGksIHYzKTsKKyAgICAJfQorICAgIAlyZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRm9sbG93IHRoZSBzdHlsZSB1c2VkIGJ5IFVuaWNvZGVTZXRJdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWFwSXRlcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvZGVwb2ludDsKKyAgICAgICAgcHVibGljIGludCBjb2RlcG9pbnRFbmQ7CisgICAgICAgIHB1YmxpYyBPYmplY3QgdmFsdWU7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFVuaWNvZGVNYXAgbWFwOworICAgICAgICBwcml2YXRlIGludCBpbmRleDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgc3RhcnRSYW5nZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZW5kUmFuZ2U7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGxhc3RWYWx1ZTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBNYXBJdGVyYXRvcihVbmljb2RlTWFwIG1hcCkgeworICAgICAgICAgICAgcmVzZXQobWFwKTsKKyAgICAgICAgfQorICAgICAgICAvLyBub3RlOiBsZW5ndGggb2YgMiBtZWFucyB7MCwgMTEwMDAwfS4gT25seSB3YW50IHRvIGluZGV4IHVwIHRvIDAhCisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHRSYW5nZSgpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbWFwLmxlbmd0aCAtIDEpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHZhbHVlID0gbWFwLnZhbHVlc1tpbmRleF07CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBzdGFydFJhbmdlID0gbWFwLnRyYW5zaXRpb25zW2luZGV4KytdOworICAgICAgICAgICAgY29kZXBvaW50RW5kID0gZW5kUmFuZ2UgPSBtYXAudHJhbnNpdGlvbnNbaW5kZXhdIC0gMTsgLy8gLTEgdG8gbWFrZSBsaW1pdCBpbnRvIGVuZAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChzdGFydFJhbmdlID4gZW5kUmFuZ2UpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiKioqIiArIFV0aWxpdHkuaGV4KHN0YXJ0UmFuZ2UpICsgIi4uIiArIFV0aWxpdHkuaGV4KGVuZFJhbmdlKSk7CisgICAgICAgICAgICAgICAgaWYgKCFuZXh0UmFuZ2UoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIC8vIGluZGV4IG5vdyBwb2ludHMgQUZURVIgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZQorICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG1hcC52YWx1ZXNbaW5kZXgtMV07CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIioqKiIgKyBVdGlsaXR5LmhleChjb2RlcG9pbnQpICsgIi4uIiArIFV0aWxpdHkuaGV4KGNvZGVwb2ludEVuZCkgKyAiID0+ICIgKyBsYXN0VmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWUgPSBsYXN0VmFsdWU7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBjb2RlcG9pbnRFbmQgPSBzdGFydFJhbmdlKys7IC8vIHNldCB0byBmaXJzdCwgYW5kIGl0ZXJhdGUKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE1hcEl0ZXJhdG9yIHJlc2V0KCkgeworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgc3RhcnRSYW5nZSA9IDA7CisgICAgICAgICAgICBlbmRSYW5nZSA9IC0xOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE1hcEl0ZXJhdG9yIHJlc2V0KFVuaWNvZGVNYXAgbWFwKSB7CisgICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDsKKyAgICAgICAgICAgIHJldHVybiByZXNldCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiB0b1N0cmluZyhudWxsKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhDb21wYXJhdG9yIGNvbGxlY3RlZCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOyAgICAgICAKKyAgICAgICAgaWYgKGNvbGxlY3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSB2YWx1ZXNbaV07CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgICAgIGludCBlbmQgPSB0cmFuc2l0aW9uc1tpKzFdLTE7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVdGlsaXR5LmhleChzdGFydCkpOworICAgICAgICAgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHJlc3VsdC5hcHBlbmQoIi4uIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKFV0aWxpdHkuaGV4KGVuZCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlx0PT4gIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHZhbHVlc1tpXSA9PSBudWxsID8gIm51bGwiIDogdmFsdWVzW2ldLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgLmFwcGVuZCgiXHJcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU2V0IHNldCA9IChTZXQpIGdldEF2YWlsYWJsZVZhbHVlcyhuZXcgVHJlZVNldChjb2xsZWN0ZWQpKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzZXQuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHMgPSBnZXRTZXQodmFsdWUpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodmFsdWUpCisgICAgICAgICAgICAgICAgLmFwcGVuZCgiXHQ9PiAiKQorICAgICAgICAgICAgICAgIC5hcHBlbmQocy50b1BhdHRlcm4odHJ1ZSkpCisgICAgICAgICAgICAgICAgLmFwcGVuZCgiXHJcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisJLyoqCisJICogQHJldHVybiBSZXR1cm5zIHRoZSBlcnJvck9uUmVzZXQuCisJICovCisJcHVibGljIGJvb2xlYW4gZ2V0RXJyb3JPblJlc2V0KCkgeworCQlyZXR1cm4gZXJyb3JPblJlc2V0OworCX0KKwkvKioKKwkgKiBAcGFyYW0gZXJyb3JPblJlc2V0IFRoZSBlcnJvck9uUmVzZXQgdG8gc2V0LgorCSAqLworCXB1YmxpYyB2b2lkIHNldEVycm9yT25SZXNldChib29sZWFuIGVycm9yT25SZXNldCkgeworCQl0aGlzLmVycm9yT25SZXNldCA9IGVycm9yT25SZXNldDsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkxvY2thYmxlI2lzTG9ja2VkKCkKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpIHsKKwkJLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgorCQlyZXR1cm4gbG9ja2VkOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuTG9ja2FibGUjbG9jaygpCisJICovCisJcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisJCWxvY2tlZCA9IHRydWU7CisJCXJldHVybiB0aGlzOworCX0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVR19XUklURSA9IGZhbHNlOworICAgIAorICAgIC8vIFRPRE8gRml4IHRvIHNlcmlhbGl6ZSBtb3JlIHRoYW4ganVzdCBzdHJpbmdzLgorICAgIC8vIE9ubHkgaWYgYWxsIHRoZSBpdGVtcyBhcmUgc3RyaW5ncyB3aWxsIHdlIGRvIHRoZSBmb2xsb3dpbmcgY29tcHJlc3Npb24KKyAgICAvLyBPdGhlcndpc2Ugd2UnbGwganVzdCB1c2UgSmF2YSBTZXJpYWxpemF0aW9uLCBidWxreSBhcyBpdCBpcworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dDEpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIERhdGFPdXRwdXRDb21wcmVzc29yIHNjID0gbmV3IERhdGFPdXRwdXRDb21wcmVzc29yKG91dDEpOworICAgICAgICAvLyBpZiBhbGwgb2JqZWN0cyBhcmUgc3RyaW5ncworICAgICAgICBDb2xsZWN0aW9uIGF2YWlsYWJsZVZhbHVlcyA9IGdldEF2YWlsYWJsZVZhbHVlcygpOworICAgICAgICBib29sZWFuIGFsbFN0cmluZ3MgPSBhbGxBcmVTdHJpbmcoYXZhaWxhYmxlVmFsdWVzKTsKKyAgICAgICAgc2Mud3JpdGVCb29sZWFuKGFsbFN0cmluZ3MpOworICAgICAgICBNYXAgb2JqZWN0X2luZGV4ID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgaWYgKGFsbEFyZVN0cmluZyhhdmFpbGFibGVWYWx1ZXMpKSB7CisgICAgICAgICAgICBzYy53cml0ZVN0cmluZ1NldChuZXcgVHJlZVNldChhdmFpbGFibGVWYWx1ZXMpLCBvYmplY3RfaW5kZXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2Mud3JpdGVDb2xsZWN0aW9uKGF2YWlsYWJsZVZhbHVlcywgb2JqZWN0X2luZGV4KTsgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHNjLndyaXRlVUludChsZW5ndGgpOworICAgICAgICBpbnQgbGFzdFRyYW5zaXRpb24gPSAtMTsKKyAgICAgICAgaW50IGxhc3RWYWx1ZU51bWJlciA9IDA7CisgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJUcmFucyBjb3VudDogIiArIGxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCB2YWx1ZU51bWJlciA9ICgoSW50ZWdlcilvYmplY3RfaW5kZXguZ2V0KHZhbHVlc1tpXSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoREVCVUdfV1JJVEUpIFN5c3RlbS5vdXQucHJpbnRsbigiVHJhbnM6ICIgKyB0cmFuc2l0aW9uc1tpXSArICIsXHQiICsgdmFsdWVOdW1iZXIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZGVsdGFUcmFuc2l0aW9uID0gdHJhbnNpdGlvbnNbaV0gLSBsYXN0VHJhbnNpdGlvbjsKKyAgICAgICAgICAgIGxhc3RUcmFuc2l0aW9uID0gdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICBpbnQgZGVsdGFWYWx1ZU51bWJlciA9IHZhbHVlTnVtYmVyIC0gbGFzdFZhbHVlTnVtYmVyOworICAgICAgICAgICAgbGFzdFZhbHVlTnVtYmVyID0gdmFsdWVOdW1iZXI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlbHRhVmFsdWVOdW1iZXIgPDw9IDE7IC8vIG1ha2Ugcm9vbSBmb3Igb25lIGJpdAorICAgICAgICAgICAgYm9vbGVhbiBjYW5Db21iaW5lID0gZGVsdGFUcmFuc2l0aW9uID09IDE7CisgICAgICAgICAgICBpZiAoY2FuQ29tYmluZSkgZGVsdGFWYWx1ZU51bWJlciB8PSAxOworICAgICAgICAgICAgc2Mud3JpdGVJbnQoZGVsdGFWYWx1ZU51bWJlcik7CisgICAgICAgICAgICBpZiAoREVCVUdfV1JJVEUpIFN5c3RlbS5vdXQucHJpbnRsbigiZGVsdGFWYWx1ZU51bWJlcjogIiArIGRlbHRhVmFsdWVOdW1iZXIpOworICAgICAgICAgICAgaWYgKCFjYW5Db21iaW5lKSB7CisgICAgICAgICAgICAJc2Mud3JpdGVVSW50KGRlbHRhVHJhbnNpdGlvbik7ICAgICAgICAgICAJCisgICAgICAgICAgICAJaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVHJhbnNpdGlvbjogIiArIGRlbHRhVHJhbnNpdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2MuZmx1c2goKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYWxsQXJlU3RyaW5nKENvbGxlY3Rpb24gYXZhaWxhYmxlVmFsdWVzMikgeworICAgICAgICAvL2lmICh0cnVlKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhdmFpbGFibGVWYWx1ZXMyLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGlmICghKGl0Lm5leHQoKSBpbnN0YW5jZW9mIFN0cmluZykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4xKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBEYXRhSW5wdXRDb21wcmVzc29yIHNjID0gbmV3IERhdGFJbnB1dENvbXByZXNzb3IoaW4xKTsKKyAgICAgICAgYm9vbGVhbiBhbGxTdHJpbmdzID0gc2MucmVhZEJvb2xlYW4oKTsKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzTGlzdDsKKyAgICAgICAgYXZhaWxhYmxlVmFsdWVzID0gbmV3IExpbmtlZEhhc2hTZXQoKTsKKyAgICAgICAgaWYgKGFsbFN0cmluZ3MpIHsKKyAgICAgICAgICAgIHZhbHVlc0xpc3QgPSBzYy5yZWFkU3RyaW5nU2V0KGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YWx1ZXNMaXN0ID0gc2MucmVhZENvbGxlY3Rpb24oYXZhaWxhYmxlVmFsdWVzKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBzYy5yZWFkVUludCgpOworICAgICAgICB0cmFuc2l0aW9ucyA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zIGNvdW50OiAiICsgbGVuZ3RoKTsKKyAgICAgICAgdmFsdWVzID0gbmV3IE9iamVjdFtsZW5ndGhdOworICAgICAgICBpbnQgY3VycmVudFRyYW5zaXRpb24gPSAtMTsKKyAgICAgICAgaW50IGN1cnJlbnRWYWx1ZSA9IDA7CisgICAgICAgIGludCBkZWx0YVRyYW5zaXRpb247CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCB0ZW1wID0gc2MucmVhZEludCgpOworICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVmFsdWVOdW1iZXI6ICIgKyB0ZW1wKTsKKyAgICAgICAgICAgIGJvb2xlYW4gY29tYmluZWQgPSAodGVtcCAmIDEpICE9IDA7CisgICAgICAgICAgICB0ZW1wID4+PSAxOworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWVzTGlzdFtjdXJyZW50VmFsdWUgKz0gdGVtcF07CisgICAgICAgICAgICBpZiAoIWNvbWJpbmVkKSB7CisgICAgICAgICAgICAgICAgZGVsdGFUcmFuc2l0aW9uID0gc2MucmVhZFVJbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUdfV1JJVEUpIFN5c3RlbS5vdXQucHJpbnRsbigiZGVsdGFUcmFuc2l0aW9uOiAiICsgZGVsdGFUcmFuc2l0aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVsdGFUcmFuc2l0aW9uID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2ldID0gY3VycmVudFRyYW5zaXRpb24gKz0gZGVsdGFUcmFuc2l0aW9uOyAvLyBkZWx0YSB2YWx1ZQorICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zOiAiICsgdHJhbnNpdGlvbnNbaV0gKyAiLFx0IiArIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGZpbmRDb21tb24oU3RyaW5nIGxhc3QsIFN0cmluZyBzKSB7CisgICAgICAgIGludCBtaW5MZW4gPSBNYXRoLm1pbihsYXN0Lmxlbmd0aCgpLCBzLmxlbmd0aCgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaW5MZW47ICsraSkgeworICAgICAgICAgICAgaWYgKGxhc3QuY2hhckF0KGkpICE9IHMuY2hhckF0KGkpKSByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWluTGVuOworICAgIH0KKworCisvLyAgICAvKioKKy8vICAgICAqIEBwYXJhbSBzYworLy8gICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8gICAgICogCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgdm9pZCBzaG93U2l6ZShTdHJpbmcgdGl0bGUsIE9iamVjdE91dHB1dCBvdXQsIFN0cmVhbUNvbXByZXNzb3Igc2MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgc2Muc2hvd1NpemUodGhpcywgdGl0bGUsIG91dCk7CisvLyAgICB9CisvLyAgICAvL3B1YmxpYyB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFN0cmVhbUNvbXByZXNzb3IgeworLy8gICAgCXRyYW5zaWVudCBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbMV07CisvLyAgICAgICAgdHJhbnNpZW50IFN0cmluZ0J1ZmZlciBzdHJpbmdCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisvLyAgICAgICAgCisvLyAgICAgICAgdHJhbnNpZW50IGJ5dGVbXSByZWFkV3JpdGVCdWZmZXIgPSBuZXcgYnl0ZVs4XTsKKy8vICAgICAgICBpbnQgcG9zaXRpb24gPSAwOworLy8gICAgICAgIERhdGFPdXRwdXQgb3V0OworLy8gICAgICAgIERhdGFJbnB1dCBpbjsKKy8vCisvLyAgICAgICAgLyoqCisvLyAgICAgICAgICogRm9ybWF0IGlzOgorLy8gICAgICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZUludChpbnQgaSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKy8vICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PSByZWFkV3JpdGVCdWZmZXIubGVuZ3RoKSB7CisvLyAgICAgICAgICAgICAgICAJb3V0LndyaXRlKHJlYWRXcml0ZUJ1ZmZlcik7CisvLyAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSAwOworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAJaWYgKChpICYgfjB4N0YpID09IDApIHsKKy8vICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVCdWZmZXJbcG9zaXRpb24rK10gPSAoYnl0ZSlpOworLy8gICAgICAgICAgICAgICAgICAgIGJyZWFrOworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgcmVhZFdyaXRlQnVmZmVyW3Bvc2l0aW9uKytdID0gKGJ5dGUpKDB4ODAgfCBpKTsKKy8vICAgICAgICAgICAgICAgIGkgPj4+PSA3OworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8JCS8qKgorLy8JCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwdWJsaWMgaW50IHJlYWROSW50KE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8JCQlpbnQgcmVzdWx0ID0gcmVhZEludChpbik7CisvLyAgICAgICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSAocmVzdWx0ICYgMSkgIT0gMDsKKy8vICAgICAgICAgICAgcmVzdWx0ID4+Pj0gMTsKKy8vICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKSByZXN1bHQgPSB+cmVzdWx0OworLy8gICAgICAgICAgICByZXR1cm4gcmVzdWx0OworLy8JCX0KKy8vCQkvKioKKy8vCQkgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLwkJICogCisvLwkJICovCisvLwkJcHVibGljIHZvaWQgd3JpdGVOSW50KGludCBpbnB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vICAgICAgICAgICAgaW50IGZsYWcgPSAwOworLy8gICAgICAgICAgICBpZiAoaW5wdXQgPCAwKSB7CisvLyAgICAgICAgICAgICAgICBpbnB1dCA9IH5pbnB1dDsKKy8vICAgICAgICAgICAgICAgIGZsYWcgPSAxOworLy8gICAgICAgICAgICB9CisvLwkJCWlucHV0ID0gKGlucHV0IDw8IDEpIHwgZmxhZzsKKy8vCQkJd3JpdGVJbnQob3V0LCBpbnB1dCk7CisvLwkJfQorLy8JCS8qKgorLy8JCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwdWJsaWMgdm9pZCBmbHVzaCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIG91dC53cml0ZShyZWFkV3JpdGVCdWZmZXIpOworLy8gICAgICAgICAgICBwb3NpdGlvbiA9IDA7CisvLwkJfQorLy8gICAgICAgIAorLy8gICAgICAgIGludCByZWFkUG9zaXRpb24gPSByZWFkV3JpdGVCdWZmZXIubGVuZ3RoOworLy8gICAgICAgIAorLy8JCXB1YmxpYyBpbnQgcmVhZEludChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisvLyAgICAgICAgICAgIGludCBvZmZzZXQgPSAwOworLy8gICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworLy8gICAgICAgICAgICAgICAgaWYgKHJlYWRQb3NpdGlvbiA9PSByZWFkV3JpdGVCdWZmZXIubGVuZ3RoKSB7CisvLyAgICAgICAgICAgICAgICAJaW4ucmVhZChyZWFkV3JpdGVCdWZmZXIpOworLy8gICAgICAgICAgICAgICAgICAgIHJlYWRQb3NpdGlvbiA9IDA7CisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAvL2luLnJlYWQoYnVmZmVyKTsKKy8vICAgICAgICAgICAgICAgIGludCBpbnB1dCA9IHJlYWRXcml0ZUJ1ZmZlcltyZWFkUG9zaXRpb24rK107IC8vIGJ1ZmZlclswXTsKKy8vICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoaW5wdXQgJiAweDdGKSA8PCBvZmZzZXQ7CisvLyAgICAgICAgICAgICAgICBpZiAoKGlucHV0ICYgMHg4MCkgPT0gMCkgeworLy8gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNzsKKy8vICAgICAgICAgICAgfSAgCisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvKioKKy8vICAgICAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLyAgICAgICAgICogCisvLyAgICAgICAgICovCisvLyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVTdHJpbmcoU3RyaW5nIHMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIHdyaXRlSW50KFVURjE2LmNvdW50Q29kZVBvaW50KHMpKTsKKy8vICAgICAgICAgICAgd3JpdGVDb2RlUG9pbnRzKHMpOworLy8gICAgICAgIH0KKy8vICAgICAgICAvKioKKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwcml2YXRlIHZvaWQgd3JpdGVDb2RlUG9pbnRzKFN0cmluZyBzKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8JCQlpbnQgY3AgPSAwOworLy8gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworLy8gICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisvLyAgICAgICAgICAgICAgICB3cml0ZUludChjcCk7CisvLyAgICAgICAgICAgIH0KKy8vCQl9CisvLwkJLyoqCisvLyAgICAgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8gICAgICAgICAqIAorLy8gICAgICAgICAqLworLy8gICAgICAgIHB1YmxpYyBTdHJpbmcgcmVhZFN0cmluZygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGludCBsZW4gPSByZWFkSW50KGluKTsKKy8vICAgICAgICAgICAgcmV0dXJuIHJlYWRDb2RlUG9pbnRzKGluLCBsZW4pOworLy8gICAgICAgIH0KKy8vCQkvKioKKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwcml2YXRlIFN0cmluZyByZWFkQ29kZVBvaW50cyhpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8JCQlzdHJpbmdCdWZmZXIuc2V0TGVuZ3RoKDApOworLy8gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisvLyAgICAgICAgICAgIAlpbnQgY3AgPSByZWFkSW50KGluKTsKKy8vICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChzdHJpbmdCdWZmZXIsIGNwKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICByZXR1cm4gc3RyaW5nQnVmZmVyLnRvU3RyaW5nKCk7CisvLwkJfQorLy8JCS8qKgorLy8JCSAqIEBwYXJhbSB0aGlzCisvLwkJICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8JCSAqIAorLy8JCSAqLworLy8JCXByaXZhdGUgdm9pZCBzaG93U2l6ZShVbmljb2RlTWFwIG1hcCwgU3RyaW5nIHRpdGxlLCBPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8JCSAgICBvdXQuZmx1c2goKTsKKy8vCQkJU3lzdGVtLm91dC5wcmludGxuKHRpdGxlICsgIjogIiArIChtYXAuZGVidWdPdXQuc2l6ZSgpICsgcG9zaXRpb24pKTsKKy8vCQl9CisvLyAgICB9Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlUHJvcGVydHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjQwZGE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5LmphdmEKQEAgLTAsMCArMSwxMTEyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5TdHJpbmdXcml0ZXI7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNvbGxlY3Rpb25VdGlsaXRpZXMuSW52ZXJzZU1hdGNoZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzLk9iamVjdE1hdGNoZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZU1hdGNoZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVW5pY29kZVByb3BlcnR5IGV4dGVuZHMgVW5pY29kZUxhYmVsIHsKKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIENIRUNLX05BTUUgPSAiRkNfTkZLQ19DbG9zdXJlIjsKKyAgICBwdWJsaWMgc3RhdGljIGludCBDSEVDS19WQUxVRSA9IDB4MDM3QTsKKworICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZmlyc3ROYW1lQWxpYXMgPSBudWxsOworICAgIHByaXZhdGUgaW50IHR5cGU7CisgICAgcHJpdmF0ZSBNYXAgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcyA9IG51bGw7CisgICAgCisgICAgLyoKK05hbWU6IFVuaWNvZGVfMV9OYW1lCitOYW1lOiBJU09fQ29tbWVudAorTmFtZTogTmFtZQorTmFtZTogVW5pY29kZV8xX05hbWUKKyAgICAgKgorICAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IDAsCisgICAgICAgIEJJTkFSWSA9IDIsIEVYVEVOREVEX0JJTkFSWSA9IDMsCisgICAgICAgIEVOVU1FUkFURUQgPSA0LCBFWFRFTkRFRF9FTlVNRVJBVEVEID0gNSwKKyAgICAgICAgQ0FUQUxPRyA9IDYsIEVYVEVOREVEX0NBVEFMT0cgPSA3LAorICAgICAgICBNSVNDID0gOCwgRVhURU5ERURfTUlTQyA9IDksCisgICAgICAgIFNUUklORyA9IDEwLCBFWFRFTkRFRF9TVFJJTkcgPSAxMSwKKyAgICAgICAgTlVNRVJJQyA9IDEyLCBFWFRFTkRFRF9OVU1FUklDID0gMTMsCisgICAgICAgIFNUQVJUX1RZUEUgPSAyLAorICAgICAgICBMSU1JVF9UWVBFID0gMTQsCisgICAgICAgIEVYVEVOREVEX01BU0sgPSAxLAorICAgICAgICBDT1JFX01BU0sgPSB+RVhURU5ERURfTUFTSywKKyAgICAgICAgQklOQVJZX01BU0sgPSAoMTw8QklOQVJZKSB8ICgxPDxFWFRFTkRFRF9CSU5BUlkpLAorICAgICAgICBTVFJJTkdfTUFTSyA9ICgxPDxTVFJJTkcpIHwgKDE8PEVYVEVOREVEX1NUUklORyksCisgICAgICAgIFNUUklOR19PUl9NSVNDX01BU0sgPSAoMTw8U1RSSU5HKSB8ICgxPDxFWFRFTkRFRF9TVFJJTkcpCisgICAgICAgICAgICB8ICgxPDxNSVNDKSB8ICgxPDxFWFRFTkRFRF9NSVNDKSwKKyAgICAgICAgRU5VTUVSQVRFRF9PUl9DQVRBTE9HX01BU0sgPSAoMTw8RU5VTUVSQVRFRCkgfCAoMTw8RVhURU5ERURfRU5VTUVSQVRFRCkKKyAgICAgICAgICAgIHwgKDE8PENBVEFMT0cpIHwgKDE8PEVYVEVOREVEX0NBVEFMT0cpOworCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBUWVBFX05BTUVTID0geworICAgICAgICAiVW5rbm93biIsCisgICAgICAgICJVbmtub3duIiwKKyAgICAgICAgIkJpbmFyeSIsCisgICAgICAgICJFeHRlbmRlZCBCaW5hcnkiLAorICAgICAgICAiRW51bWVyYXRlZCIsCisgICAgICAgICJFeHRlbmRlZCBFbnVtZXJhdGVkIiwKKyAgICAgICAgIkNhdGFsb2ciLAorICAgICAgICAiRXh0ZW5kZWQgQ2F0YWxvZyIsCisgICAgICAgICJNaXNjZWxsYW5lb3VzIiwKKyAgICAgICAgIkV4dGVuZGVkIE1pc2NlbGxhbmVvdXMiLAorICAgICAgICAiU3RyaW5nIiwKKyAgICAgICAgIkV4dGVuZGVkIFN0cmluZyIsCisgICAgICAgICJOdW1lcmljIiwKKyAgICAgICAgIkV4dGVuZGVkIE51bWVyaWMiLAorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRUeXBlTmFtZShpbnQgcHJvcFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfTkFNRVNbcHJvcFR5cGVdOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gdHlwZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1R5cGUoaW50IG1hc2spIHsKKyAgICAgICAgcmV0dXJuICgoMTw8dHlwZSkgJiBtYXNrKSAhPSAwOworICAgIH0KKworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldE5hbWUoU3RyaW5nIHN0cmluZykgeworICAgICAgICBpZiAoc3RyaW5nID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5hbWUgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICBuYW1lID0gc3RyaW5nOworICAgIH0KKworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldFR5cGUoaW50IGkpIHsKKyAgICAgICAgdHlwZSA9IGk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRWZXJzaW9uKCkgeworICAgICAgICByZXR1cm4gX2dldFZlcnNpb24oKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZXBvaW50KSB7CisgICAgICAgIGlmIChERUJVRyAmJiBDSEVDS19WQUxVRSA9PSBjb2RlcG9pbnQgJiYgQ0hFQ0tfTkFNRS5lcXVhbHMoZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gX2dldFZhbHVlKGNvZGVwb2ludCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZ2V0TmFtZSgpICsgIigiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KSArICIpOiIgKworICAgICAgICAgICAgICAgIChnZXRUeXBlKCkgPT0gU1RSSU5HID8gVXRpbGl0eS5oZXgodmFsdWUpIDogdmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2dldFZhbHVlKGNvZGVwb2ludCk7CisgICAgfQorCisgICAgLy9wdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgIC8vCXJldHVybiBnZXRWYWx1ZShjb2RlcG9pbnQpOworICAgIC8vfQorICAgIAorICAgIHB1YmxpYyBMaXN0IGdldE5hbWVBbGlhc2VzKExpc3QgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgcmV0dXJuIF9nZXROYW1lQWxpYXNlcyhyZXN1bHQpOworICAgIH0KKyAgICBwdWJsaWMgTGlzdCBnZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgcmVzdWx0ID0gX2dldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCByZXN1bHQpOworICAgICAgICBpZiAoIXJlc3VsdC5jb250YWlucyh2YWx1ZUFsaWFzKSApIHsgLy8gRklYICYmIHR5cGUgPCBOVU1FUklDIAorICAgICAgICAJcmVzdWx0ID0gX2dldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCByZXN1bHQpOyAvLyBmb3IgZGVidWdnaW5nCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvcjogIiArIGdldE5hbWUoKSArICIgZG9lc24ndCBjb250YWluICIgKyB2YWx1ZUFsaWFzCisgICAgICAgICAgICAgICAgKyAiOiAiICsgbmV3IEJhZ0Zvcm1hdHRlcigpLmpvaW4ocmVzdWx0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIExpc3QgZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgcmV0dXJuIF9nZXRBdmFpbGFibGVWYWx1ZXMocmVzdWx0KTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIF9nZXRWZXJzaW9uKCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBfZ2V0VmFsdWUoaW50IGNvZGVwb2ludCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IExpc3QgX2dldE5hbWVBbGlhc2VzKExpc3QgcmVzdWx0KTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgTGlzdCBfZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IExpc3QgX2dldEF2YWlsYWJsZVZhbHVlcyhMaXN0IHJlc3VsdCk7CisKKyAgICAvLyBjb252ZW5pZW5jZXMKKyAgICBwdWJsaWMgZmluYWwgTGlzdCBnZXROYW1lQWxpYXNlcygpIHsKKyAgICAgICAgcmV0dXJuIGdldE5hbWVBbGlhc2VzKG51bGwpOworICAgIH0KKyAgICBwdWJsaWMgZmluYWwgTGlzdCBnZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIGdldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCBudWxsKTsKKyAgICB9CisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlVmFsdWVzKCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlVmFsdWVzKG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gZ2V0U2hvcnRlc3QpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldFZhbHVlKGNvZGVwb2ludCk7CisgICAgICAgIGlmICh0eXBlID49IE1JU0MgfHwgcmVzdWx0ID09IG51bGwgfHwgIWdldFNob3J0ZXN0KSByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gZ2V0Rmlyc3RWYWx1ZUFsaWFzKHJlc3VsdCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXRGaXJzdE5hbWVBbGlhcygpIHsKKyAgICAgICAgaWYgKGZpcnN0TmFtZUFsaWFzID09IG51bGwpIHsKKyAgICAgICAgICAgIGZpcnN0TmFtZUFsaWFzID0gKFN0cmluZykgZ2V0TmFtZUFsaWFzZXMoKS5nZXQoMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpcnN0TmFtZUFsaWFzOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0Rmlyc3RWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWVUb0ZpcnN0VmFsdWVBbGlhcyA9PSBudWxsKSBfZ2V0Rmlyc3RWYWx1ZUFsaWFzQ2FjaGUoKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmcpdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcy5nZXQodmFsdWUpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfZ2V0Rmlyc3RWYWx1ZUFsaWFzQ2FjaGUoKSB7CisgICAgICAgIG1heFZhbHVlV2lkdGggPSAwOworICAgICAgICBtYXhGaXJzdFZhbHVlQWxpYXNXaWR0aCA9IDA7CisgICAgICAgIHZhbHVlVG9GaXJzdFZhbHVlQWxpYXMgPSBuZXcgSGFzaE1hcCgxKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBnZXRBdmFpbGFibGVWYWx1ZXMoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIFN0cmluZyBmaXJzdCA9IChTdHJpbmcpIGdldFZhbHVlQWxpYXNlcyh2YWx1ZSkuZ2V0KDApOworICAgICAgICAgICAgaWYgKGZpcnN0ID09IG51bGwpIHsgLy8gaW50ZXJuYWwgZXJyb3IKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJWYWx1ZSBub3QgaW4gdmFsdWUgYWxpYXNlczogIiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChERUJVRyAmJiBDSEVDS19OQU1FLmVxdWFscyhnZXROYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGaXJzdCBBbGlhczogIiArIGdldE5hbWUoKSArICI6ICIgKyB2YWx1ZSArICIgPT4gIgorICAgICAgICAgICAgICAgICArIGZpcnN0ICsgbmV3IEJhZ0Zvcm1hdHRlcigpLmpvaW4oZ2V0VmFsdWVBbGlhc2VzKHZhbHVlKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVUb0ZpcnN0VmFsdWVBbGlhcy5wdXQodmFsdWUsZmlyc3QpOworICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID4gbWF4VmFsdWVXaWR0aCkgeworICAgICAgICAgICAgICAgIG1heFZhbHVlV2lkdGggPSB2YWx1ZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaXJzdC5sZW5ndGgoKSA+IG1heEZpcnN0VmFsdWVBbGlhc1dpZHRoKSB7CisgICAgICAgICAgICAgICAgbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGggPSBmaXJzdC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IG1heFZhbHVlV2lkdGggPSAtMTsKKyAgICBwcml2YXRlIGludCBtYXhGaXJzdFZhbHVlQWxpYXNXaWR0aCA9IC0xOworCisgICAgcHVibGljIGludCBnZXRNYXhXaWR0aChib29sZWFuIGdldFNob3J0ZXN0KSB7CisgICAgICAgIGlmIChtYXhWYWx1ZVdpZHRoIDwgMCkgX2dldEZpcnN0VmFsdWVBbGlhc0NhY2hlKCk7CisgICAgICAgIGlmIChnZXRTaG9ydGVzdCkgcmV0dXJuIG1heEZpcnN0VmFsdWVBbGlhc1dpZHRoOworICAgICAgICByZXR1cm4gbWF4VmFsdWVXaWR0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BlcnR5VmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNldChwcm9wZXJ0eVZhbHVlLG51bGwpOworICAgIH0KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoUGF0dGVybk1hdGNoZXIgbWF0Y2hlcikgeworICAgICAgICByZXR1cm4gZ2V0U2V0KG1hdGNoZXIsbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFN0cmluZyBwcm9wZXJ0eVZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICByZXR1cm4gZ2V0U2V0KG5ldyBTaW1wbGVNYXRjaGVyKHByb3BlcnR5VmFsdWUsCisgICAgICAgICAgICBpc1R5cGUoU1RSSU5HX09SX01JU0NfTUFTSykgPyBudWxsIDogUFJPUEVSVFlfQ09NUEFSQVRPUiksCisgICAgICAgICAgcmVzdWx0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIFVuaWNvZGVNYXAgdW5pY29kZU1hcCA9IG51bGw7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTlVTRUQgPSAiPz8iOworCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaWYgKGlzVHlwZShTVFJJTkdfT1JfTUlTQ19NQVNLKSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKGkpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1hdGNoZXIubWF0Y2hlcyh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIExpc3QgdGVtcCA9IG5ldyBBcnJheUxpc3QoMSk7IC8vIHRvIGF2b2lkIHJlYWxsb2NhdGluZy4uLgorICAgICAgICBVbmljb2RlTWFwIHVtID0gZ2V0VW5pY29kZU1hcF9pbnRlcm5hbCgpOworICAgICAgICBJdGVyYXRvciBpdCA9IHVtLmdldEF2YWlsYWJsZVZhbHVlcyhudWxsKS5pdGVyYXRvcigpOworICAgICAgICBtYWluOgorICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IGdldFZhbHVlQWxpYXNlcyh2YWx1ZSx0ZW1wKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUyID0gKFN0cmluZylpdDIubmV4dCgpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJWYWx1ZXM6IiArIHZhbHVlMik7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXIubWF0Y2hlcyh2YWx1ZTIpCisgICAgICAgICAgICAgICAgICB8fCBtYXRjaGVyLm1hdGNoZXModG9Ta2VsZXRvbih2YWx1ZTIpKSkgeworICAgICAgICAgICAgICAgICAgICB1bS5nZXRTZXQodmFsdWUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRNYXRjaFNldChVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGFkZEFsbChtYXRjaEl0ZXJhdG9yLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE1hdGNoU2V0KFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIG1hdGNoSXRlcmF0b3IgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZvciBkZWJ1Z2dpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdGFjaygpIHsKKyAgICAgICAgRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKCk7CisgICAgICAgIFN0cmluZ1dyaXRlciBzdyA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICBlLnByaW50U3RhY2tUcmFjZShwdyk7CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgIHJldHVybiAiU2hvd2luZyBTdGFjayB3aXRoIGZha2UgIiArIHN3LmdldEJ1ZmZlcigpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLy8gVE9ETyB1c2UgdGhpcyBpbnN0ZWFkIG9mIHBsYWluIHN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE5hbWUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgTWFwIHNrZWxldG9uQ2FjaGU7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNrZWxldG9uOworICAgICAgICBwcml2YXRlIFN0cmluZyBwcmV0dHk7CisgICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgUkFXID0gMCwgVElUTEUgPSAxLCBOT1JNQUwgPSAyOworICAgICAgICBwdWJsaWMgTmFtZShTdHJpbmcgbmFtZSwgaW50IHN0eWxlKSB7CisgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsKSBuYW1lID0gIiI7CisgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUkFXKSB7CisgICAgICAgICAgICAgICAgc2tlbGV0b24gPSBwcmV0dHkgPSBuYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmV0dHkgPSByZWd1bGFyaXplKG5hbWUsIHN0eWxlID09IFRJVExFKTsKKyAgICAgICAgICAgICAgICBza2VsZXRvbiA9IHRvU2tlbGV0b24ocHJldHR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykgeworICAgICAgICAgICAgcmV0dXJuIHNrZWxldG9uLmNvbXBhcmVUbygoKE5hbWUpbykuc2tlbGV0b24pOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICAgICAgcmV0dXJuIHNrZWxldG9uLmVxdWFscygoKE5hbWUpbykuc2tlbGV0b24pOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICByZXR1cm4gc2tlbGV0b24uaGFzaENvZGUoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHByZXR0eTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIHVuaWNvZGUgbWFwCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgZ2V0VW5pY29kZU1hcCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFVuaWNvZGVNYXAoZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIG1hcAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIGdldFVuaWNvZGVNYXAoYm9vbGVhbiBnZXRTaG9ydGVzdCkgeworICAgIAlpZiAoIWdldFNob3J0ZXN0KSByZXR1cm4gKFVuaWNvZGVNYXApIGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKS5jbG9uZUFzVGhhd2VkKCk7CisgICAgICAgIFVuaWNvZGVNYXAgcmVzdWx0ID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgLy9pZiAoREVCVUcgJiYgaSA9PSAweDQxKSBTeXN0ZW0ub3V0LnByaW50bG4oaSArICJcdCIgKyBnZXRWYWx1ZShpKSk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShpLHRydWUpOworICAgICAgICAgICAgcmVzdWx0LnB1dChpLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIHVuaWNvZGUgbWFwCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVNYXAgZ2V0VW5pY29kZU1hcF9pbnRlcm5hbCgpIHsKKyAgICAgICAgaWYgKHVuaWNvZGVNYXAgPT0gbnVsbCkgdW5pY29kZU1hcCA9IF9nZXRVbmljb2RlTWFwKCk7CisgICAgICAgIHJldHVybiB1bmljb2RlTWFwOworICAgIH0KKworICAgIHByb3RlY3RlZCBVbmljb2RlTWFwIF9nZXRVbmljb2RlTWFwKCkgeworICAgICAgICBVbmljb2RlTWFwIHJlc3VsdCA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgIEhhc2hNYXAgbXlJbnRlcm4gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICAvL2lmIChERUJVRyAmJiBpID09IDB4NDEpIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIlx0IiArIGdldFZhbHVlKGkpKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKGkpOworICAgICAgICAgICAgU3RyaW5nIGlWYWx1ZSA9IChTdHJpbmcpIG15SW50ZXJuLmdldCh2YWx1ZSk7CisgICAgICAgICAgICBpZiAoaVZhbHVlID09IG51bGwpIG15SW50ZXJuLnB1dCh2YWx1ZSwgaVZhbHVlID0gdmFsdWUpOworICAgICAgICAgICAgcmVzdWx0LnB1dChpLCBpVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgICAgIC8vaWYgKERFQlVHICYmIGkgPT0gMHg0MSkgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiXHQiICsgZ2V0VmFsdWUoaSkpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKGkpOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHRWYWx1ZSA9IChTdHJpbmcpIHJlc3VsdC5nZXRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmVxdWFscyhyZXN1bHRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAJdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlZhbHVlIGZhaWx1cmUgYXQ6ICIgKyBVdGlsaXR5LmhleChpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChERUJVRyAmJiBDSEVDS19OQU1FLmVxdWFscyhnZXROYW1lKCkpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZ2V0TmFtZSgpICsgIjpcdCIgKyBnZXRDbGFzcygpLmdldE5hbWUoKQorICAgICAgICAgICAgICAgICArICJcdCIgKyBnZXRWZXJzaW9uKCkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdldFN0YWNrKCkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhbGx5IG91Z2h0IHRvIGNyZWF0ZSBhIENvbGxlY3Rpb24gVW5pcXVlTGlzdCwgdGhhdCBmb3JjZXMgdW5pcXVlbmVzcy4gQnV0IGZvciBub3cuLi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gYWRkVW5pcXVlKE9iamVjdCBvYmosIENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgICAgIGlmIChvYmogIT0gbnVsbCAmJiAhcmVzdWx0LmNvbnRhaW5zKG9iaikpIHJlc3VsdC5hZGQob2JqKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZvciBtYW5hZ2luZyBwcm9wZXJ0eSAmIG5vbi1zdHJpbmcgdmFsdWUgYWxpYXNlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29tcGFyYXRvciBQUk9QRVJUWV9DT01QQVJBVE9SID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVOYW1lcygoU3RyaW5nKW8xLCAoU3RyaW5nKW8yKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZvciBtYW5hZ2luZyBwcm9wZXJ0eSAmIG5vbi1zdHJpbmcgdmFsdWUgYWxpYXNlcworICAgICAqCisgICAgICovCisgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlcXVhbE5hbWVzKFN0cmluZyBhLCBTdHJpbmcgYikgeworICAgICAgICBpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGEgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgcmV0dXJuIHRvU2tlbGV0b24oYSkuZXF1YWxzKHRvU2tlbGV0b24oYikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgZm9yIG1hbmFnaW5nIHByb3BlcnR5ICYgbm9uLXN0cmluZyB2YWx1ZSBhbGlhc2VzCisgICAgICovCisgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmVOYW1lcyhTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIDA7CisgICAgICAgIGlmIChhID09IG51bGwpIHJldHVybiAtMTsKKyAgICAgICAgaWYgKGIgPT0gbnVsbCkgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiB0b1NrZWxldG9uKGEpLmNvbXBhcmVUbyh0b1NrZWxldG9uKGIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZvciBtYW5hZ2luZyBwcm9wZXJ0eSAmIG5vbi1zdHJpbmcgdmFsdWUgYWxpYXNlcworICAgICAqLworICAgIC8vIFRPRE8gYWNjb3VudCBmb3Igc3BlY2lhbCBuYW1lcywgdGliZXRhbiwgaGFuZ3VsCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9Ta2VsZXRvbihTdHJpbmcgc291cmNlKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciBza2VsZXRvbkJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBnb3RPbmUgPSBmYWxzZTsKKyAgICAgICAgLy8gcmVtb3ZlIHNwYWNlcywgJ18nLCAnLScKKyAgICAgICAgLy8gd2UgY2FuIGRvIHRoaXMgd2l0aCBjaGFyLCBzaW5jZSBubyBzdXJyb2dhdGVzIGFyZSBpbnZvbHZlZAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChpID4gMCAmJiAoY2ggPT0gJ18nIHx8IGNoID09ICcgJyB8fCBjaCA9PSAnLScpKSB7CisgICAgICAgICAgICAgICAgZ290T25lID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2hhciBjaDIgPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpOworICAgICAgICAgICAgICAgIGlmIChjaDIgIT0gY2gpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290T25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgc2tlbGV0b25CdWZmZXIuYXBwZW5kKGNoMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2tlbGV0b25CdWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFnb3RPbmUpIHJldHVybiBzb3VyY2U7IC8vIGF2b2lkIHN0cmluZyBjcmVhdGlvbgorICAgICAgICByZXR1cm4gc2tlbGV0b25CdWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyBnZXQgdGhlIG5hbWUgc2tlbGV0b24KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b05hbWVTa2VsZXRvbihTdHJpbmcgc291cmNlKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIHJlbW92ZSBzcGFjZXMsIG1lZGlhbCAnLScKKyAgICAgICAgLy8gd2UgY2FuIGRvIHRoaXMgd2l0aCBjaGFyLCBzaW5jZSBubyBzdXJyb2dhdGVzIGFyZSBpbnZvbHZlZAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgKCdBJyA8PSBjaCAmJiBjaCA8PSAnWicpIHx8IGNoID09ICc8JyB8fCBjaCA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgLy8gZG9uJ3QgY29weSBldmVyCisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICctJykgeworICAgICAgICAgICAgICAgIC8vIG9ubHkgY29weSBub24tbWVkaWFscyBBTkQgdHJhaWxpbmcgTy1FCisgICAgICAgICAgICAgICAgaWYgKDAgPT0gaQorICAgICAgICAgICAgICAgICAgICB8fCBpID09IHNvdXJjZS5sZW5ndGgoKSAtIDEKKyAgICAgICAgICAgICAgICAgICAgfHwgc291cmNlLmNoYXJBdChpLTEpID09ICcgJworICAgICAgICAgICAgICAgICAgICB8fCBzb3VyY2UuY2hhckF0KGkrMSkgPT0gJyAnCisgICAgICAgICAgICAgICAgICAgIHx8IChpID09IHNvdXJjZS5sZW5ndGgoKSAtIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIHNvdXJjZS5jaGFyQXQoaS0xKSA9PSAnTycKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIHNvdXJjZS5jaGFyQXQoaSsxKSA9PSAnRScpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqKioqIEVYQ0VQVElPTiAiICsgc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBkb24ndCBjb3B5CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgTmFtZSBDaGFyOiBVKyIgKyBVdGlsaXR5LmhleChjaCkgKyAiLCAiICsgY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSByb3V0aW5lcyB1c2UgdGhlIEphdmEgZnVuY3Rpb25zLCBiZWNhdXNlIHRoZXkgb25seSBuZWVkIHRvIGFjdCBvbiBBU0NJSQorICAgICAqIENoYW5nZXMgc3BhY2UsIC0gaW50byBfLCBpbnNlcnRzIF8gYmV0d2VlbiBsb3dlciBhbmQgVVBQRVIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVndWxhcml6ZShTdHJpbmcgc291cmNlLCBib29sZWFuIHRpdGxlY2FzZVN0YXJ0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgLyppZiAoc291cmNlLmVxdWFscygibm9CcmVhayIpKSB7IC8vIEhBQ0sKKyAgICAgICAgICAgIGlmICh0aXRsZWNhc2VTdGFydCkgcmV0dXJuICJOb0JyZWFrIjsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGxhc3RDYXQgPSAtMTsKKyAgICAgICAgYm9vbGVhbiBoYXZlRmlyc3RDYXNlZCA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnLScgfHwgYyA9PSAnXycpIHsKKyAgICAgICAgICAgICAgICBjID0gJ18nOworICAgICAgICAgICAgICAgIGhhdmVGaXJzdENhc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjID09ICc9JykgaGF2ZUZpcnN0Q2FzZWQgPSB0cnVlOworICAgICAgICAgICAgaW50IGNhdCA9IENoYXJhY3Rlci5nZXRUeXBlKGMpOworICAgICAgICAgICAgaWYgKGxhc3RDYXQgPT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIgJiYgY2F0ID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXycpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGhhdmVGaXJzdENhc2VkICYmIChjYXQgPT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIKKyAgICAgICAgICAgICAgICAgICAgfHwgY2F0ID09IENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSIHx8IGNhdCA9PSBDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikpIHsKKyAgICAgICAgICAgICAgICBpZiAodGl0bGVjYXNlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaGF2ZUZpcnN0Q2FzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICBsYXN0Q2F0ID0gY2F0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjb21wYXJpbmcgY29kZXBvaW50IHRvIHN0cmluZyB3aXRob3V0CisgICAgICogZ2VuZXJhdGluZyBuZXcgc3RyaW5nLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gb3RoZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGVwb2ludCBlcXVhbHMgdGhlIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBlcXVhbHMoaW50IGNvZGVwb2ludCwgU3RyaW5nIG90aGVyKSB7CisgICAgICAgIGlmIChvdGhlci5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICByZXR1cm4gY29kZXBvaW50ID09IG90aGVyLmNoYXJBdCgwKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3RoZXIubGVuZ3RoKCkgPT0gMikgeworICAgICAgICAgICAgcmV0dXJuIG90aGVyLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRoYXQgc2hvdWxkIGJlIG9uIFVuaWNvZGVTZXQKKyAgICAgKiBAcGFyYW0gc291cmNlCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBhZGRBbGwoVW5pY29kZVNldEl0ZXJhdG9yIHNvdXJjZSwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgd2hpbGUgKHNvdXJjZS5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc291cmNlLnN0cmluZyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc291cmNlLmNvZGVwb2ludCwgc291cmNlLmNvZGVwb2ludEVuZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFsbHkgb3VnaHQgdG8gY3JlYXRlIGEgQ29sbGVjdGlvbiBVbmlxdWVMaXN0LCB0aGF0IGZvcmNlcyB1bmlxdWVuZXNzLiBCdXQgZm9yIG5vdy4uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiBhZGRBbGxVbmlxdWUoQ29sbGVjdGlvbiBzb3VyY2UsIENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzb3VyY2UuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgYWRkVW5pcXVlKGl0Lm5leHQoKSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWxseSBvdWdodCB0byBjcmVhdGUgYSBDb2xsZWN0aW9uIFVuaXF1ZUxpc3QsIHRoYXQgZm9yY2VzIHVuaXF1ZW5lc3MuIEJ1dCBmb3Igbm93Li4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIGFkZEFsbFVuaXF1ZShPYmplY3RbXSBzb3VyY2UsIENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhZGRVbmlxdWUoc291cmNlW2ldLCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgY2xhc3MgRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAgICAgTWFwIGNhbm9uaWNhbE5hbWVzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgTWFwIHNrZWxldG9uTmFtZXMgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBNYXAgcHJvcGVydHlDYWNoZSA9IG5ldyBIYXNoTWFwKDEpOworCisgICAgICAgIHB1YmxpYyBmaW5hbCBGYWN0b3J5IGFkZChVbmljb2RlUHJvcGVydHkgc3ApIHsKKyAgICAgICAgICAgIGNhbm9uaWNhbE5hbWVzLnB1dChzcC5nZXROYW1lKCksIHNwKTsKKyAgICAgICAgICAgIExpc3QgYyA9IHNwLmdldE5hbWVBbGlhc2VzKG5ldyBBcnJheUxpc3QoMSkpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgc2tlbGV0b25OYW1lcy5wdXQodG9Ta2VsZXRvbigoU3RyaW5nKWl0Lm5leHQoKSksIHNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIFVuaWNvZGVQcm9wZXJ0eSBnZXRQcm9wZXJ0eShTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICAgICAgcmV0dXJuIChVbmljb2RlUHJvcGVydHkpIHNrZWxldG9uTmFtZXMuZ2V0KHRvU2tlbGV0b24ocHJvcGVydHlBbGlhcykpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlTmFtZXMobnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgZmluYWwgTGlzdCBnZXRBdmFpbGFibGVOYW1lcyhMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBjYW5vbmljYWxOYW1lcy5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShpdC5uZXh0KCksIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoaW50IHByb3BlcnR5VHlwZU1hc2spIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRBdmFpbGFibGVOYW1lcyhwcm9wZXJ0eVR5cGVNYXNrLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBmaW5hbCBMaXN0IGdldEF2YWlsYWJsZU5hbWVzKGludCBwcm9wZXJ0eVR5cGVNYXNrLCBMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBjYW5vbmljYWxOYW1lcy5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5IHByb3BlcnR5ID0gZ2V0UHJvcGVydHkoaXRlbSk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlByb3BlcnRpZXM6ICIgKyBpdGVtICsgIiwiICsgcHJvcGVydHkuZ2V0VHlwZSgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LmlzVHlwZShwcm9wZXJ0eVR5cGVNYXNrKSkgeworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiTWFza2luZzogIiArIHByb3BlcnR5LmdldFR5cGUoKSArICIsIiArIHByb3BlcnR5VHlwZU1hc2spOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWRkVW5pcXVlKHByb3BlcnR5LmdldE5hbWUoKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgSW52ZXJzZVBhdHRlcm5NYXRjaGVyIGludmVyc2VNYXRjaGVyID0gbmV3IEludmVyc2VQYXR0ZXJuTWF0Y2hlcigpOworICAgICAgICAvKioKKyAgICAgICAgICogRm9ybWF0IGlzOgorICAgICAgICAgKiAgICBwcm9wbmFtZSAoJz0nIHwgJyE9JykgcHJvcHZhbHVlICggJ3wnIHByb3BWYWx1ZSApKgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFN0cmluZyBwcm9wQW5kVmFsdWUsIFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICBpbnQgZXF1YWxQb3MgPSBwcm9wQW5kVmFsdWUuaW5kZXhPZignPScpOworICAgICAgICAgICAgU3RyaW5nIHByb3AgPSBwcm9wQW5kVmFsdWUuc3Vic3RyaW5nKDAsZXF1YWxQb3MpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcHJvcEFuZFZhbHVlLnN1YnN0cmluZyhlcXVhbFBvcysxKTsKKyAgICAgICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChwcm9wLmVuZHNXaXRoKCIhIikpIHsKKyAgICAgICAgICAgICAgICBwcm9wID0gcHJvcC5zdWJzdHJpbmcoMCxwcm9wLmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3AgPSBwcm9wLnRyaW0oKTsKKyAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSB1cCA9IGdldFByb3BlcnR5KHByb3ApOworICAgICAgICAgICAgaWYgKG1hdGNoZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1hdGNoZXIgPSBuZXcgU2ltcGxlTWF0Y2hlcih2YWx1ZSwKKyAgICAgICAgICAgICAgICB1cC5pc1R5cGUoU1RSSU5HX09SX01JU0NfTUFTSykgPyBudWxsIDogUFJPUEVSVFlfQ09NUEFSQVRPUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobmVnYXRpdmUpIHsKKyAgICAgICAgICAgICAgICBpbnZlcnNlTWF0Y2hlci5zZXQobWF0Y2hlcik7CisgICAgICAgICAgICAgICAgbWF0Y2hlciA9IGludmVyc2VNYXRjaGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHVwLmdldFNldChtYXRjaGVyLnNldCh2YWx1ZSksIHJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BBbmRWYWx1ZSwgUGF0dGVybk1hdGNoZXIgbWF0Y2hlcikgeworICAgICAgICAgICAgcmV0dXJuIGdldFNldChwcm9wQW5kVmFsdWUsIG1hdGNoZXIsIG51bGwpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNldChTdHJpbmcgcHJvcEFuZFZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U2V0KHByb3BBbmRWYWx1ZSwgbnVsbCwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgZmluYWwgU3ltYm9sVGFibGUgZ2V0U3ltYm9sVGFibGUoU3RyaW5nIHByZWZpeCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eVN5bWJvbFRhYmxlKHByZWZpeCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgY2xhc3MgTXlYU3ltYm9sVGFibGUgZXh0ZW5kcyBVbmljb2RlU2V0LlhTeW1ib2xUYWJsZSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBhcHBseVByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5TmFtZSwgU3RyaW5nIHByb3BlcnR5VmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICAJaWYgKGZhbHNlKSBTeXN0ZW0ub3V0LnByaW50bG4ocHJvcGVydHlOYW1lICsgIj0iICsgcHJvcGVydHlWYWx1ZSk7CisgICAgICAgICAgICAJVW5pY29kZVByb3BlcnR5IHByb3AgPSBnZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgCWlmIChwcm9wID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAlyZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIAlVbmljb2RlU2V0IHggPSBwcm9wLmdldFNldChwcm9wZXJ0eVZhbHVlLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiB4LnNpemUoKSAhPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQuWFN5bWJvbFRhYmxlIGdldFhTeW1ib2xUYWJsZSgpIHsKKyAgICAgICAgCXJldHVybiBuZXcgTXlYU3ltYm9sVGFibGUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBQcm9wZXJ0eVN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgIHsKKyAgICAgICAgCXN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBwcmVmaXg7CisgICAgICAgICAgICBSZWdleE1hdGNoZXIgcmVnZXhNYXRjaGVyID0gbmV3IFJlZ2V4TWF0Y2hlcigpOworCisgICAgICAgICAgICBQcm9wZXJ0eVN5bWJvbFRhYmxlIChTdHJpbmcgcHJlZml4KSB7CisgICAgICAgICAgICAgICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0KCIgKyBwcmVmaXggKyAiKUxvb2tpbmcgdXAgIiArIHMpOworICAgICAgICAgICAgICAgIC8vIGVuc3VyZSwgYWdhaW4sIHRoYXQgcHJlZml4IG1hdGNoZXMKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKCFzLnJlZ2lvbk1hdGNoZXModHJ1ZSwgMCwgcHJlZml4LCAwLCBzdGFydCkpIHJldHVybiBudWxsOworCisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHMuaW5kZXhPZignOicsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgeyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBtaXNzaW5nID06ICIgKyBzICsgIlxyXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5IHByb3AgPSBnZXRQcm9wZXJ0eShzLnN1YnN0cmluZyhzdGFydCxwb3MpKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgUHJvcGVydHkgaW46ICIgKyBzICsgIlxyXG5Vc2UgIgorICAgICAgICAgICAgICAgICAgICAgKyBzaG93U2V0KGdldEF2YWlsYWJsZU5hbWVzKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdWJzdHJpbmcocG9zKzEpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0OworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCJcdTAwQUIiKSkgeyAgIC8vIHJlZ2V4IQorICAgICAgICAgICAgICAgICAgICBzZXQgPSBwcm9wLmdldFNldChyZWdleE1hdGNoZXIuc2V0KHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGgoKS0xKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNldCA9IHByb3AuZ2V0U2V0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNldC5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJFbXB0eSBQcm9wZXJ0eS1WYWx1ZSBpbjogIiArIHMgKyAiXHJcblVzZSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHNob3dTZXQocHJvcC5nZXRBdmFpbGFibGVWYWx1ZXMoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUmV0dXJuaW5nICIgKyBzZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0LnRvUGF0dGVybih0cnVlKS50b0NoYXJBcnJheSgpOyAvLyByZWFsbHkgdWdseQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBzaG93U2V0KExpc3QgbGlzdCkgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCJbIik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGxpc3QuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJdIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcdCgiICsgcHJlZml4ICsgIilQYXJzaW5nIDwiICsgdGV4dC5zdWJzdHJpbmcocG9zLmdldEluZGV4KCksbGltaXQpICsgIj4iKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBpbnQgdmVyeVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgLy8gZW5zdXJlIHRoYXQgaXQgc3RhcnRzIHdpdGggJ3ByZWZpeCcKKyAgICAgICAgICAgICAgICBpZiAoIXRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgcHJlZml4LCAwLCBwcmVmaXgubGVuZ3RoKCkpKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgLy8gbm93IHNlZSBpZiBpdCBpcyBvZiB0aGUgZm9ybSBpZGVudGlmaWVyOmlkZW50aWZpZXIKKyAgICAgICAgICAgICAgICBpbnQgaSA9IGdldElkZW50aWZpZXIodGV4dCwgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBzdGFydCkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgU3RyaW5nIHByb3AgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gInRydWUiOworICAgICAgICAgICAgICAgIGlmIChpIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KGkpID09ICc6JykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQXQoaSsxKSA9PSAnXHUwMEFCJykgeyAvLyByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gdGV4dC5pbmRleE9mKCdcdTAwQkInLCBpKzIpICsgMTsgLy8gaW5jbHVkZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqIDw9IDApIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gZ2V0SWRlbnRpZmllcih0ZXh0LCBpKzEsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoaSsxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUGFyc2VkIDwiICsgcHJvcCArICI+PTwiICsgdmFsdWUgKyAiPiIpOworICAgICAgICAgICAgICAgIHJldHVybiBwcmVmaXggKyBwcm9wICsgIjoiICsgdmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGUgaW50IGdldElkZW50aWZpZXIoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0R2V0SUQgPCIgKyB0ZXh0LnN1YnN0cmluZyhzdGFydCxsaW1pdCkgKyAiPiIpOworICAgICAgICAgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjcCkgJiYgY3AgIT0gJy4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHRHb3RJRCA8IiArIHRleHQuc3Vic3RyaW5nKHN0YXJ0LGkpICsgIj4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBGaWx0ZXJlZFByb3BlcnR5IGV4dGVuZHMgVW5pY29kZVByb3BlcnR5IHsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlUHJvcGVydHkgcHJvcGVydHk7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmdGaWx0ZXIgZmlsdGVyOworICAgICAgICBwcm90ZWN0ZWQgVW5pY29kZVNldEl0ZXJhdG9yIG1hdGNoSXRlcmF0b3IgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKG5ldyBVbmljb2RlU2V0KDAsMHgxMEZGRkYpKTsKKyAgICAgICAgcHJvdGVjdGVkIEhhc2hNYXAgYmFja21hcDsKKyAgICAgICAgYm9vbGVhbiBhbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zID0gZmFsc2U7CisKKyAgICAgICAgcHVibGljIEZpbHRlcmVkUHJvcGVydHkoVW5pY29kZVByb3BlcnR5IHByb3BlcnR5LCBTdHJpbmdGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7CisgICAgICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmdGaWx0ZXIgZ2V0RmlsdGVyKCkgeworICAgICAgICAgICAgcmV0dXJuIGZpbHRlcjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkgc2V0RmlsdGVyKFN0cmluZ0ZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBMaXN0IHRlbXAgPSBuZXcgQXJyYXlMaXN0KDEpOworCisgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKHByb3BlcnR5LmdldEF2YWlsYWJsZVZhbHVlcyh0ZW1wKSwgcmVzdWx0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMaXN0IF9nZXROYW1lQWxpYXNlcyhMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgdGVtcC5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5hZGRVbmlxdWUoCisgICAgICAgICAgICAgICAgcHJvcGVydHkuZ2V0TmFtZUFsaWFzZXModGVtcCksIHJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIF9nZXRWYWx1ZShpbnQgY29kZXBvaW50KSB7CisgICAgICAgICAgICByZXR1cm4gZmlsdGVyLnJlbWFwKHByb3BlcnR5LmdldFZhbHVlKGNvZGVwb2ludCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChiYWNrbWFwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBiYWNrbWFwID0gbmV3IEhhc2hNYXAoMSk7CisgICAgICAgICAgICAgICAgdGVtcC5jbGVhcigpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gcHJvcGVydHkuZ2V0QXZhaWxhYmxlVmFsdWVzKHRlbXApLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1hcHBlZEl0ZW0gPSBmaWx0ZXIucmVtYXAoaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYWNrbWFwLmdldChtYXBwZWRJdGVtKSAhPSBudWxsICYmICFhbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJGaWx0ZXIgbWFrZXMgdmFsdWVzIGNvbGxpZGUhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGl0ZW0gKyAiLCAiICsgbWFwcGVkSXRlbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmFja21hcC5wdXQobWFwcGVkSXRlbSwgaXRlbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVBbGlhcyA9IChTdHJpbmcpIGJhY2ttYXAuZ2V0KHZhbHVlQWxpYXMpOworICAgICAgICAgICAgdGVtcC5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5hZGRVbmlxdWUocHJvcGVydHkuZ2V0VmFsdWVBbGlhc2VzKHZhbHVlQWxpYXMsIHRlbXApLCByZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBfZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eS5nZXRWZXJzaW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0FsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnMoKSB7CisgICAgICAgICAgICByZXR1cm4gYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9uczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBGaWx0ZXJlZFByb3BlcnR5IHNldEFsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnMoYm9vbGVhbiBiKSB7CisgICAgICAgICAgICBhbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zID0gYjsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFN0cmluZ0ZpbHRlciBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgcmVtYXAoU3RyaW5nIG9yaWdpbmFsKTsKKworICAgICAgICBwdWJsaWMgZmluYWwgTGlzdCBhZGRVbmlxdWUoQ29sbGVjdGlvbiBzb3VyY2UsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHNvdXJjZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eS5hZGRVbmlxdWUoCisgICAgICAgICAgICAgICAgICAgIHJlbWFwKChTdHJpbmcpIGl0Lm5leHQoKSksIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTaG91bGQgbmV2ZXIgaGFwcGVuLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNYXBGaWx0ZXIgZXh0ZW5kcyBTdHJpbmdGaWx0ZXIgeworICAgICAgICBwcml2YXRlIE1hcCB2YWx1ZU1hcDsKKyAgICAgICAgcHVibGljIE1hcEZpbHRlcihNYXAgdmFsdWVNYXApeworICAgICAgICAgICAgdGhpcy52YWx1ZU1hcCA9IHZhbHVlTWFwOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVtYXAoU3RyaW5nIG9yaWdpbmFsKSB7CisgICAgICAgICAgICBPYmplY3QgY2hhbmdlZCA9IHZhbHVlTWFwLmdldChvcmlnaW5hbCk7CisgICAgICAgICAgICByZXR1cm4gY2hhbmdlZCA9PSBudWxsID8gb3JpZ2luYWwgOiAoU3RyaW5nKSBjaGFuZ2VkOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBNYXAgZ2V0TWFwKCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlTWFwOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludGVyZmFjZSBQYXR0ZXJuTWF0Y2hlciBleHRlbmRzIE9iamVjdE1hdGNoZXIgeworICAgICAgICBwdWJsaWMgUGF0dGVybk1hdGNoZXIgc2V0KFN0cmluZyBwYXR0ZXJuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEludmVyc2VQYXR0ZXJuTWF0Y2hlciBleHRlbmRzIEludmVyc2VNYXRjaGVyIGltcGxlbWVudHMgUGF0dGVybk1hdGNoZXIgeworICAgICAgICBQYXR0ZXJuTWF0Y2hlciBvdGhlcjsKKyAgICAgICAgcHVibGljIFBhdHRlcm5NYXRjaGVyIHNldChQYXR0ZXJuTWF0Y2hlciB0b0ludmVyc2UpIHsKKyAgICAgICAgICAgIG90aGVyID0gdG9JbnZlcnNlOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlcyhPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiAhb3RoZXIubWF0Y2hlcyh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFBhdHRlcm5NYXRjaGVyIHNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgb3RoZXIuc2V0KHBhdHRlcm4pOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNpbXBsZU1hdGNoZXIgaW1wbGVtZW50cyBQYXR0ZXJuTWF0Y2hlciB7CisgICAgICAgIENvbXBhcmF0b3IgY29tcGFyYXRvcjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm47CisgICAgICAgIHB1YmxpYyBTaW1wbGVNYXRjaGVyKFN0cmluZyBwYXR0ZXJuLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICBpZiAoY29tcGFyYXRvciA9PSBudWxsKSByZXR1cm4gcGF0dGVybi5lcXVhbHModmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmF0b3IuY29tcGFyZShwYXR0ZXJuLCB2YWx1ZSkgPT0gMDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUGF0dGVybk1hdGNoZXIgc2V0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlZ2V4TWF0Y2hlciBpbXBsZW1lbnRzIFVuaWNvZGVQcm9wZXJ0eS5QYXR0ZXJuTWF0Y2hlciB7CisgICAgICAgIHByaXZhdGUgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXIgbWF0Y2hlcjsKKworICAgICAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5LlBhdHRlcm5NYXRjaGVyIHNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgbWF0Y2hlciA9IFBhdHRlcm4uY29tcGlsZShwYXR0ZXJuKS5tYXRjaGVyKCIiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICBtYXRjaGVyLnJlc2V0KHZhbHVlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXIubWF0Y2hlcygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQmFzZVByb3BlcnR5IGV4dGVuZHMgVW5pY29kZVByb3BlcnR5IHsKKyAgICAgICAgcHJvdGVjdGVkIExpc3QgcHJvcGVydHlBbGlhc2VzID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgcHJvdGVjdGVkIE1hcCB0b1ZhbHVlQWxpYXNlczsKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyB2ZXJzaW9uOworICAgICAgICAKKyAgICAgICAgcHVibGljIEJhc2VQcm9wZXJ0eSBzZXRNYWluKFN0cmluZyBhbGlhcywgU3RyaW5nIHNob3J0QWxpYXMsIGludCBwcm9wZXJ0eVR5cGUsCisgICAgICAgICAgICAgICAgU3RyaW5nIHZlcnNpb24pIHsKKyAgICAgICAgICAgICAgICAgIHNldE5hbWUoYWxpYXMpOworICAgICAgICAgICAgICAgICAgc2V0VHlwZShwcm9wZXJ0eVR5cGUpOworICAgICAgICAgICAgICAgICAgcHJvcGVydHlBbGlhc2VzLmFkZChzaG9ydEFsaWFzKTsKKyAgICAgICAgICAgICAgICAgIHByb3BlcnR5QWxpYXNlcy5hZGQoYWxpYXMpOworICAgICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9ICAgIAkKKyAgICAgICAgcHVibGljIFN0cmluZyBfZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBMaXN0IF9nZXROYW1lQWxpYXNlcyhMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgYWRkQWxsVW5pcXVlKHByb3BlcnR5QWxpYXNlcywgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEJhc2VQcm9wZXJ0eSBhZGRWYWx1ZUFsaWFzZXMoU3RyaW5nW11bXSB2YWx1ZUFuZEFsdGVybmF0ZXMsIGJvb2xlYW4gZXJyb3JJZkNhbnQpIHsKKyAgICAgICAgCWlmICh0b1ZhbHVlQWxpYXNlcyA9PSBudWxsKSBfZml4VmFsdWVBbGlhc2VzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlQW5kQWx0ZXJuYXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgCWZvciAoaW50IGogPSAxOyBqIDwgdmFsdWVBbmRBbHRlcm5hdGVzWzBdLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAJCWFkZFZhbHVlQWxpYXModmFsdWVBbmRBbHRlcm5hdGVzW2ldWzBdLCB2YWx1ZUFuZEFsdGVybmF0ZXNbaV1bal0sIGVycm9ySWZDYW50KTsKKyAgICAgICAgICAgIAl9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCQlwdWJsaWMgdm9pZCBhZGRWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZSwgU3RyaW5nIHZhbHVlQWxpYXMsIGJvb2xlYW4gZXJyb3JJZkNhbnQpIHsKKyAgICAJCUxpc3QgcmVzdWx0ID0gKExpc3QpIHRvVmFsdWVBbGlhc2VzLmdldCh2YWx1ZSk7CisgICAgCQlpZiAocmVzdWx0ID09IG51bGwgJiYgIWVycm9ySWZDYW50KSByZXR1cm47CisgICAgCQlhZGRVbmlxdWUodmFsdWUsIHJlc3VsdCk7CisgICAgCQlhZGRVbmlxdWUodmFsdWVBbGlhcywgcmVzdWx0KTsKKwkJfQorCQlwcm90ZWN0ZWQgTGlzdCBfZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCkgeworCQkJaWYgKHRvVmFsdWVBbGlhc2VzID09IG51bGwpIF9maXhWYWx1ZUFsaWFzZXMoKTsKKyAgICAgICAgICAgIExpc3QgYSA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQodmFsdWVBbGlhcyk7CisgICAgICAgICAgICBpZiAoYSAhPSBudWxsKSBhZGRBbGxVbmlxdWUoYSwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworCQlwcm90ZWN0ZWQgdm9pZCBfZml4VmFsdWVBbGlhc2VzKCkgeworCQkJaWYgKHRvVmFsdWVBbGlhc2VzID09IG51bGwpIHRvVmFsdWVBbGlhc2VzID0gbmV3IEhhc2hNYXAoMSk7CisJCQlmb3IgKEl0ZXJhdG9yIGl0ID0gZ2V0QXZhaWxhYmxlVmFsdWVzKCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCU9iamVjdCB2YWx1ZSA9IGl0Lm5leHQoKTsKKwkJCQlMaXN0IHJlc3VsdDsKKwkJCQlfZW5zdXJlVmFsdWVJbkFsaWFzZXModmFsdWUpOworCQkJfQorCQl9CisJCXByb3RlY3RlZCB2b2lkIF9lbnN1cmVWYWx1ZUluQWxpYXNlcyhPYmplY3QgdmFsdWUpIHsKKwkJCUxpc3QgcmVzdWx0ID0gKExpc3QpIHRvVmFsdWVBbGlhc2VzLmdldCh2YWx1ZSk7CisJCQlpZiAocmVzdWx0ID09IG51bGwpIHRvVmFsdWVBbGlhc2VzLnB1dCh2YWx1ZSwgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKSk7CisJCQlhZGRVbmlxdWUodmFsdWUsIHJlc3VsdCk7CisJCX0KKyAgICAgICAgcHVibGljIEJhc2VQcm9wZXJ0eSBzd2FwRmlyc3QyVmFsdWVBbGlhc2VzKCkgeworICAgICAgICAJZm9yIChJdGVyYXRvciBpdCA9IHRvVmFsdWVBbGlhc2VzLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgCQlMaXN0IGxpc3QgPSAoTGlzdCkgdG9WYWx1ZUFsaWFzZXMuZ2V0KGl0Lm5leHQoKSk7CisgICAgICAgIAkJaWYgKGxpc3Quc2l6ZSgpIDwgMikgY29udGludWU7CisgICAgICAgIAkJT2JqZWN0IGZpcnN0ID0gbGlzdC5nZXQoMCk7CisgICAgICAgIAkJbGlzdC5zZXQoMCwgbGlzdC5nZXQoMSkpOworICAgICAgICAJCWxpc3Quc2V0KDEsIGZpcnN0KTsKKyAgICAgICAgCX0KKyAgICAgICAgCXJldHVybiB0aGlzOworICAgICAgICB9CisKKworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFNpbXBsZVByb3BlcnR5IGV4dGVuZHMgQmFzZVByb3BlcnR5IHsKKyAgICAgICAgTGlzdCB2YWx1ZXM7CisKKyAgICAgICAgcHVibGljIFNpbXBsZVByb3BlcnR5IGFkZE5hbWUoU3RyaW5nIGFsaWFzKSB7CisgICAgICAgICAgICBwcm9wZXJ0eUFsaWFzZXMuYWRkKGFsaWFzKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNpbXBsZVByb3BlcnR5IHNldFZhbHVlcyhTdHJpbmcgdmFsdWVBbGlhcykgeworICAgICAgICAgICAgX2FkZFRvVmFsdWVzKHZhbHVlQWxpYXMsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU2ltcGxlUHJvcGVydHkgc2V0VmFsdWVzKFN0cmluZ1tdIHZhbHVlQWxpYXNlcywgU3RyaW5nW10gYWx0ZXJuYXRlVmFsdWVBbGlhc2VzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlQWxpYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFsaWFzZXNbaV0uZXF1YWxzKFVOVVNFRCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIF9hZGRUb1ZhbHVlcyh2YWx1ZUFsaWFzZXNbaV0sCisgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZVZhbHVlQWxpYXNlcyAhPSBudWxsID8gYWx0ZXJuYXRlVmFsdWVBbGlhc2VzW2ldIDogbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFNpbXBsZVByb3BlcnR5IHNldFZhbHVlcyhMaXN0IHZhbHVlQWxpYXNlcykgeworICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSBuZXcgQXJyYXlMaXN0KHZhbHVlQWxpYXNlcyk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gdGhpcy52YWx1ZXMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgICAgICBfYWRkVG9WYWx1ZXMoKFN0cmluZylpdC5uZXh0KCksIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmFsdWVzID09IG51bGwpIF9maWxsVmFsdWVzKCk7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKHZhbHVlcyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBfZmlsbFZhbHVlcygpIHsKKyAgICAgICAgICAgIExpc3QgbmV3dmFsdWVzID0gKExpc3QpIGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKS5nZXRBdmFpbGFibGVWYWx1ZXMobmV3IEFycmF5TGlzdCgpKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBuZXd2YWx1ZXMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIF9hZGRUb1ZhbHVlcygoU3RyaW5nKWl0Lm5leHQoKSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBfYWRkVG9WYWx1ZXMoU3RyaW5nIGl0ZW0sIFN0cmluZyBhbGlhcykgeworICAgICAgICAgICAgaWYgKHZhbHVlcyA9PSBudWxsKSB2YWx1ZXMgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICAgICAgaWYgKHRvVmFsdWVBbGlhc2VzID09IG51bGwpIF9maXhWYWx1ZUFsaWFzZXMoKTsKKyAgICAgICAgICAgIGFkZFVuaXF1ZShpdGVtLCB2YWx1ZXMpOworICAgICAgICAgICAgX2Vuc3VyZVZhbHVlSW5BbGlhc2VzKGl0ZW0pOworICAgICAgICAgICAgYWRkVmFsdWVBbGlhcyhpdGVtLCBhbGlhcywgdHJ1ZSk7CisgICAgICAgIH0KKy8qICAgICAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIHZlcnNpb247CisgICAgICAgIH0KKyovICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFVuaWNvZGVNYXBQcm9wZXJ0eSBleHRlbmRzIEJhc2VQcm9wZXJ0eSB7CisgICAgCS8qCisgICAgCSAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgICAgCSAqIG5ldyBVbmljb2RlUHJvcGVydHkuVW5pY29kZU1hcFByb3BlcnR5KCkgeworICAgICAgICAJeworICAgICAgICAJCXVuaWNvZGVNYXAgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICAJCXVuaWNvZGVNYXAuc2V0RXJyb3JPblJlc2V0KHRydWUpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0KDB4RCwgIkNSIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXQoMHhBLCAiTEYiKTsKKyAgICAgICAgCQlVbmljb2RlUHJvcGVydHkgY2F0ID0gZ2V0UHJvcGVydHkoIkdlbmVyYWxfQ2F0ZWdvcnkiKTsKKyAgICAgICAgCQlVbmljb2RlU2V0IHRlbXAgPSBjYXQuZ2V0U2V0KCJMaW5lX1NlcGFyYXRvciIpCisJCQkJLmFkZEFsbChjYXQuZ2V0U2V0KCJQYXJhZ3JhcGhfU2VwYXJhdG9yIikpCisJCQkJLmFkZEFsbChjYXQuZ2V0U2V0KCJDb250cm9sIikpCisJCQkJLmFkZEFsbChjYXQuZ2V0U2V0KCJGb3JtYXQiKSkKKwkJCQkucmVtb3ZlKDB4RCkucmVtb3ZlKDB4QSkucmVtb3ZlKDB4MjAwQykucmVtb3ZlKDB4MjAwRCk7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwodGVtcCwgIkNvbnRyb2wiKTsKKyAgICAgICAgCQlVbmljb2RlU2V0IGdyYXBoZW1lRXh0ZW5kID0gZ2V0UHJvcGVydHkoIkdyYXBoZW1lX0V4dGVuZCIpLmdldFNldCgidHJ1ZSIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKGdyYXBoZW1lRXh0ZW5kLCJFeHRlbmQiKTsKKyAgICAgICAgCQlVbmljb2RlUHJvcGVydHkgaGFuZ3VsID0gZ2V0UHJvcGVydHkoIkhhbmd1bF9TeWxsYWJsZV9UeXBlIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiTCIpLCJMIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiViIpLCJWIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiVCIpLCJUIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiTFYiKSwiTFYiKTsKKyAgICAgICAgCQl1bmljb2RlTWFwLnB1dEFsbChoYW5ndWwuZ2V0U2V0KCJMVlQiKSwiTFZUIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5zZXRNaXNzaW5nKCJPdGhlciIpOworICAgICAgICAJfQorICAgICAgICB9LnNldE1haW4oIkdyYXBoZW1lX0NsdXN0ZXJfQnJlYWsiLCAiR0NCIiwgVW5pY29kZVByb3BlcnR5LkVOVU1FUkFURUQsIHZlcnNpb24pCisgICAgCSAqLworICAgICAgICBwcm90ZWN0ZWQgVW5pY29kZU1hcCB1bmljb2RlTWFwOworICAgICAgICAKKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXBQcm9wZXJ0eSBzZXQoVW5pY29kZU1hcCBtYXApIHsKKyAgICAgICAgCXVuaWNvZGVNYXAgPSBtYXA7CisgICAgICAgIAlyZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKSB1bmljb2RlTWFwLmdldFZhbHVlKGNvZGVwb2ludCk7CisgICAgICAgIH0KKy8qCQlwcm90ZWN0ZWQgTGlzdCBfZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCkgeworCQkJaWYgKCF1bmljb2RlTWFwLmdldEF2YWlsYWJsZVZhbHVlcygpLmNvbnRhaW5zKHZhbHVlQWxpYXMpKSByZXR1cm4gcmVzdWx0OworCQkJcmVzdWx0LmFkZCh2YWx1ZUFsaWFzKTsKKwkJCXJldHVybiByZXN1bHQ7IC8vIG5vIG90aGVyIGFsaWFzZXMKKwkJfQorKi8JCXByb3RlY3RlZCBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKwkJCXJldHVybiAoTGlzdCkgdW5pY29kZU1hcC5nZXRBdmFpbGFibGVWYWx1ZXMocmVzdWx0KTsKKwkJfQorICAgIH0KK30KKy8vI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5U291cmNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlUHJvcGVydHlTb3VyY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjViNjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5U291cmNlLmphdmEKQEAgLTAsMCArMSwzMjEgQEAKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCisKKy8qKgorICogUHJvdmlkZXMgYSBnZW5lcmFsIGludGVyZmFjZSBmb3IgVW5pY29kZSBQcm9wZXJ0aWVzLCBhbmQKKyAqIGV4dHJhY3Rpbmcgc2V0cyBiYXNlZCBvbiB0aG9zZSB2YWx1ZXMuCisgKiBAYXV0aG9yIERhdmlzCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBVbmljb2RlUHJvcGVydHlTb3VyY2UgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIAorICAgIHByb3RlY3RlZCBTdHJpbmcgcHJvcGVydHlBbGlhczsKKyAgICBwcm90ZWN0ZWQgaW50IG5hbWVDaG9pY2UgPSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HOworICAgIHByb3RlY3RlZCBTdHJpbmdGaWx0ZXIgZmlsdGVyID0gbmV3IFN0cmluZ0ZpbHRlcigpOworICAgIHByb3RlY3RlZCBVbmljb2RlU2V0SXRlcmF0b3IgbWF0Y2hJdGVyYXRvciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IobmV3IFVuaWNvZGVTZXQoMCwweDEwRkZGRikpOworICAgIAorICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShpbnQgY29kZXBvaW50KTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU2V0IGdldEF2YWlsYWJsZVByb3BlcnR5QWxpYXNlcyhTZXQgcmVzdWx0KTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU2V0IGdldEF2YWlsYWJsZVByb3BlcnR5VmFsdWVBbGlhc2VzKFNldCByZXN1bHQpOworCisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eUFsaWFzKGludCBuYW1lQ2hvaWNlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVBbGlhcyhTdHJpbmcgdmFsdWVBbGlhcywgaW50IG5hbWVDaG9pY2UpOworICAgIAorICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSByZXN1bHQgPSAoVW5pY29kZVByb3BlcnR5U291cmNlKXN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuZmlsdGVyID0gKFN0cmluZ0ZpbHRlcilmaWx0ZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTaG91bGQgbmV2ZXIgaGFwcGVuLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHlTb3VyY2Ugc2V0UHJvcGVydHlBbGlhcyhTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICB0aGlzLnByb3BlcnR5QWxpYXMgPSBwcm9wZXJ0eUFsaWFzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eUFsaWFzKCkgeworICAgICAgICByZXR1cm4gcHJvcGVydHlBbGlhczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGVxdWFscyhpbnQgY29kZXBvaW50LCBTdHJpbmcgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBjb2RlcG9pbnQgPT0gb3RoZXIuY2hhckF0KDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvdGhlci5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0UHJvcGVydHlTZXQoYm9vbGVhbiBjaGFyRXF1YWxzVmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBtYXRjaEl0ZXJhdG9yLnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChtYXRjaEl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZmlsdGVyLnJlbWFwKGdldFByb3BlcnR5VmFsdWUobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpKTsKKyAgICAgICAgICAgIGlmIChlcXVhbHMobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQsIHZhbHVlKSA9PSBjaGFyRXF1YWxzVmFsdWUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFByb3BlcnR5U2V0KFN0cmluZyBwcm9wZXJ0eVZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgbWF0Y2hJdGVyYXRvci5yZXNldCgpOworICAgICAgICB3aGlsZSAobWF0Y2hJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGZpbHRlci5yZW1hcChnZXRQcm9wZXJ0eVZhbHVlKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KSk7CisgICAgICAgICAgICBpZiAocHJvcGVydHlWYWx1ZS5lcXVhbHModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0UHJvcGVydHlTZXQoTWF0Y2hlciBtYXRjaGVyLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIG1hdGNoSXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKG1hdGNoSXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBmaWx0ZXIucmVtYXAoZ2V0UHJvcGVydHlWYWx1ZShtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCkpOworICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAobWF0Y2hlci5tYXRjaGVzKHZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnRlcmZhY2UgTWF0Y2hlciB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoU3RyaW5nIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXROYW1lQ2hvaWNlKCkgeworICAgICAgICByZXR1cm4gbmFtZUNob2ljZTsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5U291cmNlIHNldE5hbWVDaG9pY2UoaW50IGNob2ljZSkgeworICAgICAgICBuYW1lQ2hvaWNlID0gY2hvaWNlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBTdHJpbmdGaWx0ZXIgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbWFwKFN0cmluZyBvcmlnaW5hbCkgeworICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlNob3VsZCBuZXZlciBoYXBwZW4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNYXBGaWx0ZXIgZXh0ZW5kcyBTdHJpbmdGaWx0ZXIgeworICAgICAgICBNYXAgdmFsdWVNYXA7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVtYXAoU3RyaW5nIG9yaWdpbmFsKSB7CisgICAgICAgICAgICBPYmplY3QgY2hhbmdlZCA9IHZhbHVlTWFwLmdldChvcmlnaW5hbCk7CisgICAgICAgICAgICByZXR1cm4gY2hhbmdlZCA9PSBudWxsID8gb3JpZ2luYWwgOiAoU3RyaW5nKSBjaGFuZ2VkOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBNYXAgZ2V0TWFwKCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlTWFwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE1hcEZpbHRlciBzZXRNYXAoTWFwIG1hcCkgeworICAgICAgICAgICAgdmFsdWVNYXAgPSBtYXA7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgY2xhc3MgSUNVIGV4dGVuZHMgVW5pY29kZVByb3BlcnR5U291cmNlIHsKKyAgICAgICAgcHJvdGVjdGVkIGludCBwcm9wRW51bSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICB7CisgICAgICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW15bOkNuOl0tWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1dIikpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5U291cmNlIHNldFByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgICAgIHN1cGVyLnNldFByb3BlcnR5QWxpYXMocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICBpbnQgZXh0cmFQb3NpdGlvbiA9IEV4dHJhcy5pbmRleE9mKHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgaWYgKGV4dHJhUG9zaXRpb24gPj0gMCkgeworICAgICAgICAgICAgICAgIHByb3BFbnVtID0gRVhUUkFfU1RBUlQgKyBleHRyYVBvc2l0aW9uOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wRW51bSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoaW50IGNvZGVQb2ludCkgeworICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgeworICAgICAgICAgICAgICAgIGludCBlbnVtVmFsdWUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY29kZVBvaW50LCBwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCAoaW50KW5hbWVDaG9pY2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfTElNSVQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBGaXggSEFDSyAtLSBBUEkgZGVmaWNpZW50CisgICAgICAgICAgICB9IGVsc2Ugc3dpdGNoKHByb3BFbnVtKSB7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiByZXR1cm4gVUNoYXJhY3Rlci5nZXRBZ2UoY29kZVBvaW50KS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfTUlSUk9SSU5HX0dMWVBIOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLmdldE1pcnJvcihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQVNFX0ZPTERJTkc6IHJldHVybiBVQ2hhcmFjdGVyLmZvbGRDYXNlKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSx0cnVlKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0SVNPQ29tbWVudChjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxPV0VSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5BTUU6IHJldHVybiBVQ2hhcmFjdGVyLmdldE5hbWUoY29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKGNvZGVQb2ludCx0cnVlKSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9USVRMRUNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVElUTEVDQVNFX01BUFBJTkc6IHJldHVybiBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSxudWxsKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VTklDT0RFXzFfTkFNRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgTkZDOiByZXR1cm4gTm9ybWFsaXplci5ub3JtYWxpemUoY29kZVBvaW50LCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICAgICAgY2FzZSBORkQ6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBjYXNlIE5GS0M6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgY2FzZSBORktEOiByZXR1cm4gTm9ybWFsaXplci5ub3JtYWxpemUoY29kZVBvaW50LCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBmaW5hbCBMaXN0IEV4dHJhcyA9IEFycmF5cy5hc0xpc3QobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJORkMiLCAiTkZEIiwgIk5GS0MiLCAiTktGRCIKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgaW50IAorICAgICAgICAgICAgTkZDICA9IDB4ODAwMCwKKyAgICAgICAgICAgIE5GRCAgPSAweDgwMDEsCisgICAgICAgICAgICBORktDID0gMHg4MDAyLAorICAgICAgICAgICAgTkZLRCA9IDB4ODAwMywKKyAgICAgICAgICAgIEVYVFJBX1NUQVJUID0gTkZDLAorICAgICAgICAgICAgRVhUUkFfTElNSVQgPSBORktEKzE7CisKKyAgICAgICAgc3RhdGljIGZpbmFsIGludFtdW10gcmFuZ2VzID0geworICAgICAgICAgICAge1VQcm9wZXJ0eS5CSU5BUllfU1RBUlQsICAgIFVQcm9wZXJ0eS5CSU5BUllfTElNSVR9LAorICAgICAgICAgICAge1VQcm9wZXJ0eS5JTlRfU1RBUlQsICAgICAgIFVQcm9wZXJ0eS5JTlRfTElNSVR9LAorICAgICAgICAgICAge1VQcm9wZXJ0eS5ET1VCTEVfU1RBUlQsICAgIFVQcm9wZXJ0eS5ET1VCTEVfTElNSVR9LAorICAgICAgICAgICAge1VQcm9wZXJ0eS5TVFJJTkdfU1RBUlQsICAgIFVQcm9wZXJ0eS5TVFJJTkdfTElNSVR9LAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0QXZhaWxhYmxlUHJvcGVydHlBbGlhc2VzKFNldCByZXN1bHQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IHJhbmdlc1tpXVswXTsgaiA8IHJhbmdlc1tpXVsxXTsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUoaiwgbmFtZUNob2ljZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hZGRBbGwoRXh0cmFzKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU2V0IGdldEF2YWlsYWJsZVByb3BlcnR5VmFsdWVBbGlhc2VzKFNldCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocHJvcEVudW0pOworICAgICAgICAgICAgICAgIGludCBlbmQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUocHJvcEVudW0pOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGdldEZpeGVkVmFsdWVBbGlhcyhudWxsLCBpLG5hbWVDaG9pY2UpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoZ2V0Rml4ZWRWYWx1ZUFsaWFzKG51bGwsIC0xLG5hbWVDaG9pY2UpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBudWxsIGlmIHVudXNlZC4KKyAgICAgICAgICogQHBhcmFtIHZhbHVlRW51bSAtMSBpZiB1bnVzZWQKKyAgICAgICAgICogQHBhcmFtIG5hbWVDaG9pY2UKKyAgICAgICAgICogQHJldHVybiB0aGUgYWxpYXMKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldEZpeGVkVmFsdWVBbGlhcyhTdHJpbmcgdmFsdWVBbGlhcywgaW50IHZhbHVlRW51bSwgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgICAgIGlmIChwcm9wRW51bSA+PSBVUHJvcGVydHkuU1RSSU5HX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICI8c3RyaW5nPiI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BFbnVtID49IFVQcm9wZXJ0eS5ET1VCTEVfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIjxkb3VibGU+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2YWx1ZUFsaWFzICE9IG51bGwgJiYgIXZhbHVlQWxpYXMuZXF1YWxzKCI8aW50ZWdlcj4iKSkgeworICAgICAgICAgICAgICAgIHZhbHVlRW51bSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcEVudW0sdmFsdWVBbGlhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZml4ZWRHZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSwgdmFsdWVFbnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIC8vIHRyeSBvdGhlciBuYW1lY2hvaWNlCisgICAgICAgICAgICByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLHZhbHVlRW51bSwKKyAgICAgICAgICAgICAgICBuYW1lQ2hvaWNlID09IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcgPyBVUHJvcGVydHkuTmFtZUNob2ljZS5TSE9SVCA6IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuICI8aW50ZWdlcj4iOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BFbnVtLCBpbnQgdmFsdWVFbnVtLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSx2YWx1ZUVudW0sbmFtZUNob2ljZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eUFsaWFzKGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBFWFRSQV9TVEFSVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShwcm9wRW51bSwgbmFtZUNob2ljZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZylFeHRyYXMuZ2V0KHByb3BFbnVtLUVYVFJBX1NUQVJUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZUFsaWFzKFN0cmluZyB2YWx1ZUFsaWFzLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgcmV0dXJuIGdldEZpeGVkVmFsdWVBbGlhcyh2YWx1ZUFsaWFzLCAtMSwgbmFtZUNob2ljZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gVE9ETyBmaWxlIGJ1ZyBvbiBnZXRQcm9wZXJ0eVZhbHVlTmFtZSBmb3IgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcworCisgICAgcHVibGljIFN0cmluZ0ZpbHRlciBnZXRGaWx0ZXIoKSB7CisgICAgICAgIHJldHVybiBmaWx0ZXI7CisgICAgfQorCisKKyAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5U291cmNlIHNldEZpbHRlcihTdHJpbmdGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIHZvaWQgYWRkQWxsKFVuaWNvZGVTZXRJdGVyYXRvciBzb3VyY2UsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIHdoaWxlIChzb3VyY2UubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHNvdXJjZS5zdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHNvdXJjZS5jb2RlcG9pbnQsIHNvdXJjZS5jb2RlcG9pbnRFbmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldE1hdGNoU2V0KFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgYWRkQWxsKG1hdGNoSXRlcmF0b3IsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHNldAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1hdGNoU2V0KFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIG1hdGNoSXRlcmF0b3IgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VdGlsaXR5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVXRpbGl0eVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTk3MmNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVXRpbGl0eVRlc3QuamF2YQpAQCAtMCwwICsxLDE3MyBAQAorLy8jI2hlYWRlcgorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTWFyY2ggOCAyMDAzCisqIFNpbmNlOiBJQ1UgMi42CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CeXRlQXJyYXlXcmFwcGVyOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0IG9mIGludGVybmFsIFV0aWxpdHkgY2xhc3MKKyAqLworcHVibGljIGNsYXNzIFV0aWxpdHlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVdGlsaXR5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5lc2NhcGUoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBpbnB1dCA9CisgICAgICAgICAgICAiU2NoXFx1MDBmNm5lcyBBdXRvOiBcXHUyMGFjIDExMjQwLlxcZlByaXZhdGVzIFplaWNoZW46IFxcVTAwMTAyMzQ1XFxlXFxjQ1xcbiBcXHgxYlxceHsyNjNhfSI7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIGV4cGVjdCA9IAorICAgICAgICAgICAgIlNjaFx1MDBGNm5lcyBBdXRvOiBcdTIwQUMgMTEyNDAuXHUwMDBDUHJpdmF0ZXMgWmVpY2hlbjogXHVEQkM4XHVERjQ1XHUwMDFCXHUwMDAzXDAxMiBcdTAwMUJcdTI2M0EiOworCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBVdGlsaXR5LnVuZXNjYXBlKGlucHV0KTsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVdGlsaXR5LnVuZXNjYXBlKCkgcmV0dXJuZWQgIiArIHJlc3VsdCArICIsIGV4cC4gIiArIGV4cGVjdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZvcm1hdCgpCisgICAgeworICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgInRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2ciLAorICAgICAgICAgICAgLy8gcmVzdWx0IG9mIHRoaXMgY29udmVyc2lvbiB3aWxsIGV4Y2VlZCB0aGUgb3JpZ2luYWwgbGVuZ3RoIGFuZAorICAgICAgICAgICAgLy8gY2F1c2UgYSBuZXdsaW5lIHRvIGJlIGluc2VydGVkCisgICAgICAgICAgICAidGVzdGluZyBzcGFjZSAsIHF1b3RhdGlvbnMgXCIiLAorICAgICAgICAgICAgInRlc3Rpbmcgd2VpcmQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFx1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAidGVzdGluZyBjb250cm9sIGNoYXJhY3RlcnMgXHUwMDAxIGFuZCBsaW5lIGJyZWFraW5nISEgXG4gYXJlIHdlIGRvbmUgeWV0PyIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFtdID0geworICAgICAgICAgICAgIiAgICAgICAgXCJ0aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCIiLAorICAgICAgICAgICAgIiAgICAgICAgXCJ0ZXN0aW5nIHNwYWNlICwgcXVvdGF0aW9ucyBcXDA0MlwiIiwKKyAgICAgICAgICAgICIgICAgICAgIFwidGVzdGluZyB3ZWlyZCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgXFx1RDgwMFxcdURDMDBcIiIsCisgICAgICAgICAgICAiICAgICAgICBcInRlc3RpbmcgY29udHJvbCBjaGFyYWN0ZXJzIFxcMDAxIGFuZCBsaW5lIGJyZWFraW5nISEgXFxuIGFyZSB3ZSBkb25lIHllXCIrIgorICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LkxJTkVfU0VQQVJBVE9SICsgIiAgICAgICAgXCJ0P1wiIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgcmVzdWx0MVtdID0geworICAgICAgICAgICAgIlwidGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiIiwKKyAgICAgICAgICAgICJcInRlc3Rpbmcgc3BhY2UgLCBxdW90YXRpb25zIFxcMDQyXCIiLAorICAgICAgICAgICAgIlwidGVzdGluZyB3ZWlyZCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgXFx1RDgwMFxcdURDMDBcIiIsCisgICAgICAgICAgICAiXCJ0ZXN0aW5nIGNvbnRyb2wgY2hhcmFjdGVycyBcXDAwMSBhbmQgbGluZSBicmVha2luZyEhIFxcbiBhcmUgd2UgZG9uZSB5ZXQ/XCIiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdEZvclNvdXJjZShcIiIgKyBkYXRhW2ldICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2ldLCBVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShkYXRhW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQxRm9yU291cmNlKFwiIiArIGRhdGFbaV0gKyAiXCIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxW2ldLCBVdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UoZGF0YVtpXSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RIaWdoQml0KCkKKyAgICB7CisgICAgICAgIGludCBkYXRhW10gPSB7LTEsIC0xMjc2LCAwLCAweEZGRkYsIDB4MTIzNH07CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSB7LTEsIC0xLCAtMSwgMTUsIDEyfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFV0aWxpdHkuaGlnaEJpdChkYXRhW2ldKSAhPSByZXN1bHRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogSGlnaGVzdCBiaXQgb2YgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoZGF0YVtpXSkgKyAiIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgKyByZXN1bHRbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlVW5zaWduZWQoKQorICAgIHsKKyAgICAgICAgaW50IGRhdGFbXSA9IHswLCAxLCAweDhmZmZmZmZmLCAtMSwgSW50ZWdlci5NQVhfVkFMVUUsIAorICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFLCAyMzQyNDIzLCAtMjM0MjQyM307CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGF0YS5sZW5ndGg7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoZGF0YVtpXSwgZGF0YVtqXSkgCisgICAgICAgICAgICAgICAgICAgICE9IGNvbXBhcmVMb25nVW5zaWduZWQoZGF0YVtpXSwgZGF0YVtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFVuc2lnbmVkIGNvbXBhcmlzb24gZmFpbGVkIHdpdGggIiArIGRhdGFbaV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZGF0YVtpICsgMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBpbmRlbmRzIHRvIHRlc3QgdGhlIHV0aWxpdHkgY2xhc3MgQnl0ZUFycmF5V3JhcHBlcgorICAgIC8vIFNlZW1zIHRoYXQgdGhlIGNsYXNzIGlzIHNvbWV3aGF0IGluY29tcGxldGUsIGZvciBleGFtcGxlCisgICAgLy8gICAgICAtIGdldEhhc2hDb2RlKE9iamVjdCkgaXMgd2VpcmQKKyAgICAvLyAgICAgIC0gUGF0dGVybk1hdGNoIGZlYXR1cmUoc2VhcmNoIHBhcnQgb2YgYXJyYXkgd2l0aGluIHRoZSB3aG9sZSBvbmUpIGxhY2tzCisgICAgcHVibGljIHZvaWQgVGVzdEJ5dGVBcnJheVdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgYnl0ZVtdIGJhID0gezB4MDAsIDB4MDEsIDB4MDJ9OworICAgICAgICBieXRlW10gYmIgPSB7MHgwMCwgMHgwMSwgMHgwMiwgLTF9OworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgamF2YS5uaW8uQnl0ZUJ1ZmZlciBidWZmZXIgPSBqYXZhLm5pby5CeXRlQnVmZmVyLndyYXAoYmEpOworLy8jZWxzZQorLy8jIyAgICAgICAgY29tLmlibS5pY3UuaW1wbC5CeXRlQnVmZmVyIGJ1ZmZlciA9IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlci53cmFwKGJhKTsKKy8vI2VuZGlmCisgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgeCA9IG5ldyBCeXRlQXJyYXlXcmFwcGVyKGJ1ZmZlcik7CisgICAgICAgIAorICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHkgPSBuZXcgQnl0ZUFycmF5V3JhcHBlcihiYSwgMyk7CisgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgeiA9IG5ldyBCeXRlQXJyYXlXcmFwcGVyKGJiLCAzKTsKKworICAgICAgICAKKyAgICAgICAgaWYgKCF5LnRvU3RyaW5nKCkuZXF1YWxzKCIwMCAwMSAwMiIpKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0ZXN0IHRvU3RyaW5nIDogRmFpbGVkISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGVxdWFsaXR5CisgICAgICAgIGlmICgheC5lcXVhbHMoeSkgfHwgIXguZXF1YWxzKHopKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRlc3QgKG9wZXJhdG9yID09KTogRmFpbGVkISIpOworICAgICAgICBpZiAoeC5oYXNoQ29kZSgpIT15Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaWRlbnRpY2FsIG9iamVjdHMgaGF2ZSBkaWZmZXJlbnQgaGFzaCBjb2Rlcy4iKTsKKworICAgICAgICAvLyB0ZXN0IG5vbi1lcXVhbGl0eQorICAgICAgICB5ID0gbmV3IEJ5dGVBcnJheVdyYXBwZXIoYmIsIDQpOworICAgICAgICBpZiAoeC5lcXVhbHMoeSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogdGVzdCAob3BlcmF0b3IgIT0pOiBGYWlsZWQhIik7CisKKyAgICAgICAgLy8gdGVzdCBzaWduIG9mIHVuZXF1YWwgY29tcGFyaXNvbgorICAgICAgICBpZiAoKHguY29tcGFyZVRvKHkpID4gMCkgIT0gKHkuY29tcGFyZVRvKHgpIDwgMCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb21wYXJpc29ucyBub3Qgb3Bwb3NpdGUgc2lnbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUxvbmdVbnNpZ25lZChpbnQgeCwgaW50IHkpCisgICAgeworICAgICAgICBsb25nIHgxID0geCAmIDB4RkZGRkZGRkZsOworICAgICAgICBsb25nIHkxID0geSAmIDB4RkZGRkZGRkZsOworICAgICAgICBpZiAoeDEgPCB5MSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHgxID4geTEpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZVNldCgpeworICAgICAgICBTdHJpbmdbXSBhcnJheSA9IG5ldyBTdHJpbmdbXXsiYSIsICJiIiwgImMiLCAie2RlfSJ9OworICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFycmF5KTsKKyAgICAgICAgU2V0IGFzZXQgPSBuZXcgSGFzaFNldChsaXN0KTsKKyAgICAgICAgbG9nbG4oIiAqKiogVGhlIHNvdXJjZSBzZXQncyBzaXplIGlzOiAiICsgYXNldC5zaXplKCkpOworICAgIC8vVGhlIHNpemUgcmVhZHMgNAorICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBzZXQuYWRkQWxsKGFzZXQpOworICAgICAgICBsb2dsbigiICoqKiBBZnRlciBhZGRBbGwsIHRoZSBVbmljb2RlU2V0IHNpemUgaXM6ICIgKyBzZXQuc2l6ZSgpKTsKKyAgICAvL1RoZSBzaXplIHNob3VsZCBhbHNvIHJlYWQgNCwgYnV0IDAgaXMgc2VlbiBpbnN0ZWFkCisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjYjFiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WYXJpYWJsZVJlcGxhY2VyLmphdmEKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDtpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCitwdWJsaWMgY2xhc3MgVmFyaWFibGVSZXBsYWNlciB7CisJLy8gc2ltcGxlIGltcGxlbWVudGF0aW9uIGZvciBub3cKKwlwcml2YXRlIENvbXBhcmF0b3IgYzsKKwlwcml2YXRlIE1hcCBtID0gbmV3IFRyZWVNYXAoQ29sbGVjdGlvbnMucmV2ZXJzZU9yZGVyKCkpOworCQorCS8vIFRPRE8gLSBmaXggdG8gZG8gc3RyZWFtcyBhbHNvLCBjbGVhbiB1cCBpbXBsZW1lbnRhdGlvbgorCQorCXB1YmxpYyBWYXJpYWJsZVJlcGxhY2VyIGFkZChTdHJpbmcgdmFyaWFibGUsIFN0cmluZyB2YWx1ZSkgeworCQltLnB1dCh2YXJpYWJsZSwgdmFsdWUpOworCQlyZXR1cm4gdGhpczsKKwl9CisJcHVibGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UpIHsKKwkJU3RyaW5nIG9sZFNvdXJjZTsKKwkJZG8geworCQkJb2xkU291cmNlID0gc291cmNlOworCQkJZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCVN0cmluZyB2YXJpYWJsZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKwkJCQlTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSBtLmdldCh2YXJpYWJsZSk7CisJCQkJc291cmNlID0gcmVwbGFjZUFsbChzb3VyY2UsIHZhcmlhYmxlLCB2YWx1ZSk7CisJCQl9CisJCX0gd2hpbGUgKCFzb3VyY2UuZXF1YWxzKG9sZFNvdXJjZSkpOworCQlyZXR1cm4gc291cmNlOworCX0KKwlwdWJsaWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlKSB7CisJCXdoaWxlICh0cnVlKSB7CisJCQlpbnQgcG9zID0gc291cmNlLmluZGV4T2Yoa2V5KTsKKwkJCWlmIChwb3MgPCAwKSByZXR1cm4gc291cmNlOworCQkJc291cmNlID0gc291cmNlLnN1YnN0cmluZygwLHBvcykgKyB2YWx1ZSArIHNvdXJjZS5zdWJzdHJpbmcocG9zK2tleS5sZW5ndGgoKSk7CisJCX0KKwl9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmVyc2lvbkluZm9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmJiNmI3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzI1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFZlcnNpb25JbmZvCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSBNYXJjaCAwMSAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFZlcnNpb25JbmZvVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKSAKKyAgICB7CisgICAgICAgIFZlcnNpb25JbmZvVGVzdCB0ZXN0ID0gbmV3IFZlcnNpb25JbmZvVGVzdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgVmVyc2lvbkluZm8iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdGhlIGluc3RhbnRpYXRpb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9JTlZBTElEX1NUUklOR18ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgCVZlcnNpb25JbmZvIHZlcnNpb24gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tpXSk7CisgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tpXSArIAorICAgICAgICAgICAgICAgICAgICAgICJcIiBzaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCWxvZ2xuKCJQQVNTOiBcIiIgKyBJTlNUQU5DRV9JTlZBTElEX1NUUklOR19baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9WQUxJRF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAlWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiXCIiICsgSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSArIAorICAgICAgICAgICAgICAgICAgICAgICJcIiBzaG91bGQgcHJvZHVjZSBhbiB2YWxpZCB2ZXJzaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9JTlZBTElEX0lOVF8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgCVZlcnNpb25JbmZvIHZlcnNpb24gPSBnZXRJbnN0YW5jZShJTlNUQU5DRV9JTlZBTElEX0lOVF9baV0pOworICAgICAgICAgICAgICAgIGVycmxuKCJpbnZhbGlkIGludHMgc2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlsb2dsbigiUEFTUzogXCIiICsgSU5TVEFOQ0VfSU5WQUxJRF9JTlRfW2ldICsgCisgICAgICAgICAgICAgICAgCSAgIlwiIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5TVEFOQ0VfVkFMSURfSU5UXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAJVmVyc2lvbkluZm8gdmVyc2lvbiA9IGdldEluc3RhbmNlKElOU1RBTkNFX1ZBTElEX0lOVF9baV0pOworICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInZhbGlkIGludHMgc2hvdWxkIG5vdCBwcm9kdWNlIGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB0aGUgY29tcGFyaXNvbiB3b3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HXy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSAKKyAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baV0gKyAiIHNob3VsZCBub3QgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9OT1RfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9OT1RfRVFVQUxfSU5UXy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBnZXRJbnN0YW5jZShDT01QQVJFX05PVF9FUVVBTF9JTlRfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baV0gKyAiIHNob3VsZCBub3QgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9FUVVBTF9TVFJJTkdfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gCisgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX1NUUklOR19baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSAKKyAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2kgKyAxXSk7CisgICAgICAgICAgICBpZiAodjEuY29tcGFyZVRvKHYyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2ldICsgIiBzaG91bGQgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2kgKyAxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDT01QQVJFX0VRVUFMX0lOVF8ubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBnZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX0lOVF9baV0pOworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjIgPSBnZXRJbnN0YW5jZShDT01QQVJFX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIGlmICh2MS5jb21wYXJlVG8odjIpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX0VRVUFMX0lOVF9baV0gKyAiIHNob3VsZCBlcXVhbCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBDT01QQVJFX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTEVTU18ubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdjEgPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX0xFU1NfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9MRVNTX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgPj0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfTEVTU19baV0gKyAiIHNob3VsZCBiZSBsZXNzIHRoYW4gIiArIAorICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfTEVTU19baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2Mi5jb21wYXJlVG8odjEpIDw9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX0xFU1NfW2kgKyAxXSArICIgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9MRVNTX1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGF0IHRoZSBnZXR0ZXIgZnVuY3Rpb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0dGVyKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgR0VUX1NUUklOR18ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBWZXJzaW9uSW5mbyB2ID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoR0VUX1NUUklOR19baV0pOworICAgICAgICAgICAgaWYgKHYuZ2V0TWFqb3IoKSAhPSBHRVRfUkVTVUxUX1tpIDw8IDJdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaW5vcigpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pbGxpKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWljcm8oKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oR0VUX1NUUklOR19baV0gKyAiIHNob3VsZCByZXR1cm4gbWFqb3I9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfW2kgPDwgMl0gKyAiIG1pbm9yPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdICsgIiBtaWxsaT0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSArICIgbWljcm89IiArCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSk7ICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHYgPSBnZXRJbnN0YW5jZShHRVRfSU5UX1tpXSk7CisgICAgICAgICAgICBpZiAodi5nZXRNYWpvcigpICE9IEdFVF9SRVNVTFRfW2kgPDwgMl0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pbm9yKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAxXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWlsbGkoKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDJdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaWNybygpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgM10pIHsKKyAgICAgICAgICAgICAgICBlcnJsbihHRVRfU1RSSU5HX1tpXSArICIgc2hvdWxkIHJldHVybiBtYWpvcj0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9baSA8PCAyXSArICIgbWlub3I9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gKyAiIG1pbGxpPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDJdICsgIiBtaWNybz0iICsKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKTsgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdG9TdHJpbmcoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3R0b1N0cmluZygpIAorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUT1NUUklOR19TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKFRPU1RSSU5HX1NUUklOR19baV0pOworICAgICAgICAgICAgaWYgKCF2LnRvU3RyaW5nKCkuZXF1YWxzKFRPU1RSSU5HX1JFU1VMVF9baV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvU3RyaW5nKCkgZm9yICIgKyBUT1NUUklOR19TVFJJTkdfW2ldICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzaG91bGQgcHJvZHVjZSAiICsgVE9TVFJJTkdfUkVTVUxUX1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ID0gZ2V0SW5zdGFuY2UoVE9TVFJJTkdfSU5UX1tpXSk7CisgICAgICAgICAgICBpZiAoIXYudG9TdHJpbmcoKS5lcXVhbHMoVE9TVFJJTkdfUkVTVUxUX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9TdHJpbmcoKSBmb3IgIiArIFRPU1RSSU5HX0lOVF9baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIHNob3VsZCBwcm9kdWNlICIgKyBUT1NUUklOR19SRVNVTFRfW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBpbnQgYXJyYXkgdmVyc2lvbmluZm8gY3JlYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgZGF0YVtdKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChkYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShkYXRhWzBdKTsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSwgZGF0YVsxXSk7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbM10pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBpbnN0YW5jZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOU1RBTkNFX0lOVkFMSURfU1RSSU5HX1tdID0geworICAgICAgICAiYSIsCisgICAgICAgICItMSIsCisgICAgICAgICItMS4wIiwKKyAgICAgICAgIi0xLjAuMCIsCisgICAgICAgICItMS4wLjAuMCIsCisgICAgICAgICIwLi0xIiwKKyAgICAgICAgIjAuMC4tMSIsCisgICAgICAgICIwLjAuMC4tMSIsCisgICAgICAgICIyNTYiLAorICAgICAgICAiMjU2LjAiLAorICAgICAgICAiMjU2LjAuMCIsCisgICAgICAgICIyNTYuMC4wLjAiLAorICAgICAgICAiMC4yNTYiLAorICAgICAgICAiMC4wLjI1NiIsCisgICAgICAgICIwLjAuMC4yNTYiLAorICAgICAgICAiMS4yLjMuNC41IgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOU1RBTkNFX1ZBTElEX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjI1NSIsCisgICAgICAgICIyNTUuMjU1IiwKKyAgICAgICAgIjI1NS4yNTUuMjU1IiwKKyAgICAgICAgIjI1NS4yNTUuMjU1LjI1NSIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlNUQU5DRV9JTlZBTElEX0lOVF9bXVtdID0geworICAgICAgICB7LTF9LAorICAgICAgICB7LTEsIDB9LAorICAgICAgICB7LTEsIDAsIDB9LAorICAgICAgICB7LTEsIDAsIDAsIDB9LAorICAgICAgICB7MCwgLTF9LAorICAgICAgICB7MCwgMCwgLTF9LAorICAgICAgICB7MCwgMCwgMCwgLTF9LAorICAgICAgICB7MjU2fSwKKyAgICAgICAgezI1NiwgMH0sCisgICAgICAgIHsyNTYsIDAsIDB9LAorICAgICAgICB7MjU2LCAwLCAwLCAwfSwKKyAgICAgICAgezAsIDI1Nn0sCisgICAgICAgIHswLCAwLCAyNTZ9LAorICAgICAgICB7MCwgMCwgMCwgMjU2fSwKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlNUQU5DRV9WQUxJRF9JTlRfW11bXSA9IHsKKyAgICAgICAgezI1NX0sCisgICAgICAgIHsyNTUsIDI1NX0sCisgICAgICAgIHsyNTUsIDI1NSwgMjU1fSwKKyAgICAgICAgezI1NSwgMjU1LCAyNTUsIDI1NX0KKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgY29tcGFyZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjIuMC4wLjAiLCAiMy4wLjAuMCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX05PVF9FUVVBTF9JTlRfW11bXSA9IHsKKyAgICAgICAgezIsIDAsIDAsIDB9LCB7MywgMCwgMCwgMH0KKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX0VRVUFMX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjIuMC4wLjAiLCAiMi4wLjAiLCAiMi4wIiwgIjIiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9FUVVBTF9JTlRfW11bXSA9IHsKKyAgICAgICAgezJ9LCB7MiwgMH0sIHsyLCAwLCAwfSwgezIsIDAsIDAsIDB9ICAgIAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTVBBUkVfTEVTU19bXSA9IHsKKyAgICAgICAgIjAiLCAiMC4wLjAuMSIsICIwLjAuMSIsICIwLjEiLCAiMSIsICIyIiwgIjIuMSIsICIyLjEuMSIsICIyLjEuMS4xIgorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBHZXR0ZXIgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHRVRfU1RSSU5HX1tdID0geworICAgICAgICAiMCIsCisgICAgICAgICIxLjEiLAorICAgICAgICAiMi4xLjI1NSIsCisgICAgICAgICIzLjEuMjU1LjEwMCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHRVRfSU5UX1tdW10gPSB7CisgICAgICAgIHswfSwKKyAgICAgICAgezEsIDF9LAorICAgICAgICB7MiwgMSwgMjU1fSwKKyAgICAgICAgezMsIDEsIDI1NSwgMTAwfQorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdFVF9SRVNVTFRfW10gPSB7CisgICAgICAgIDAsIDAsIDAsIDAsCisgICAgICAgIDEsIDEsIDAsIDAsCisgICAgICAgIDIsIDEsIDI1NSwgMCwKKyAgICAgICAgMywgMSwgMjU1LCAxMDAKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdG9TdHJpbmcgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUT1NUUklOR19TVFJJTkdfW10gPSB7CisgICAgICAgICIwIiwKKyAgICAgICAgIjEuMSIsCisgICAgICAgICIyLjEuMjU1IiwKKyAgICAgICAgIjMuMS4yNTUuMTAwIiAgICAKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1NUUklOR19JTlRfW11bXSA9IHsKKyAgICAgICAgezB9LAorICAgICAgICB7MSwgMX0sCisgICAgICAgIHsyLCAxLCAyNTV9LAorICAgICAgICB7MywgMSwgMjU1LCAxMDB9CisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVE9TVFJJTkdfUkVTVUxUX1tdID0geworICAgICAgICAiMC4wLjAuMCIsCisgICAgICAgICIxLjEuMC4wIiwKKyAgICAgICAgIjIuMS4yNTUuMCIsCisgICAgICAgICIzLjEuMjU1LjEwMCIgICAgCisgICAgfTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WaXNpdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WaXNpdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JjZGEwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Zpc2l0b3IuamF2YQpAQCAtMCwwICsxLDEzMSBAQAorCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVmlzaXRvciB7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9BdChPYmplY3QgaXRlbSkgeworICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIENvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIGRvQXQoKENvbGxlY3Rpb24pIGl0ZW0pOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIGRvQXQoKE1hcCkgaXRlbSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICBkb0F0KChPYmplY3RbXSkgaXRlbSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIFVuaWNvZGVTZXQpIHsKKyAgICAgICAgICAgIGRvQXQoKFVuaWNvZGVTZXQpIGl0ZW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9TaW1wbGVBdChpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgY291bnQoT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gKChDb2xsZWN0aW9uKSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICgoTWFwKSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICByZXR1cm4gKChPYmplY3RbXSkgaXRlbSkubGVuZ3RoOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gKChVbmljb2RlU2V0KSBpdGVtKS5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGJveGluZworICAgIAorICAgIHB1YmxpYyB2b2lkIGRvQXQoaW50IG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgSW50ZWdlcihvKSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGRvQXQoZG91YmxlIG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgRG91YmxlKG8pKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgZG9BdChjaGFyIG8pIHsKKyAgICAgICAgZG9TaW1wbGVBdChuZXcgQ2hhcmFjdGVyKG8pKTsKKyAgICB9CisgICAgCisgICAgLy8gZm9yIHN1YmNsYXNzaW5nCisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgZG9BdCAoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIGlmIChjLnNpemUoKSA9PSAwKSBkb0JlZm9yZShjLCBudWxsKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICBPYmplY3QgbGFzdCA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUoYywgaXRlbSk7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9CZXR3ZWVuKGMsIGxhc3QsIGl0ZW0pOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgIGRvQXQobGFzdD1pdGVtKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGRvQXQgKE1hcCBjKSB7CisgICAgICAgIGRvQXQoYy5lbnRyeVNldCgpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0IChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgaWYgKGMuc2l6ZSgpID09IDApIGRvQmVmb3JlKGMsIG51bGwpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGMpOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgT2JqZWN0IGxhc3QgPSBudWxsOworICAgICAgICBPYmplY3QgaXRlbTsKKyAgICAgICAgQ29kZVBvaW50UmFuZ2UgY3ByMCA9IG5ldyBDb2RlUG9pbnRSYW5nZSgpOworICAgICAgICBDb2RlUG9pbnRSYW5nZSBjcHIxID0gbmV3IENvZGVQb2ludFJhbmdlKCk7CisgICAgICAgIENvZGVQb2ludFJhbmdlIGNwcjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICBpdGVtID0gaXQuc3RyaW5nOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjcHIgPSBsYXN0ID09IGNwcjAgPyBjcHIxIDogY3ByMDsgICAvLyBtYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgbGFzdAorICAgICAgICAgICAgICAgIGNwci5jb2RlcG9pbnQgPSBpdC5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgY3ByLmNvZGVwb2ludEVuZCA9IGl0LmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgICAgICBpdGVtID0gY3ByOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWZpcnN0KSB7CisgICAgICAgICAgICAgICAgZG9CZWZvcmUoYywgaXRlbSk7CisgICAgICAgICAgICAgICAgZmlyc3QgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb0JldHdlZW4oYywgbGFzdCwgaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb0F0KGxhc3QgPSBpdGVtKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0IChPYmplY3RbXSBjKSB7CisgICAgICAgIGRvQmVmb3JlKGMsIGMubGVuZ3RoID09IDAgPyBudWxsIDogY1swXSk7CisgICAgICAgIE9iamVjdCBsYXN0ID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSBkb0JldHdlZW4oYywgbGFzdCwgY1tpXSk7CisgICAgICAgICAgICBkb0F0KGxhc3QgPSBjW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkb0FmdGVyKGMsIGxhc3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvZGVQb2ludFJhbmdleworICAgICAgICBwdWJsaWMgaW50IGNvZGVwb2ludCwgY29kZXBvaW50RW5kOworICAgIH0KKyAgICAKKyAgICAvLyA9PT09PSBNVVNUIEJFIE9WRVJSSURFTiA9PT09PQorICAgIAorICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvQmVmb3JlKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBpdGVtKTsKKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pOworICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGl0ZW0pOyAgIAorICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIGRvU2ltcGxlQXQoT2JqZWN0IG8pOworICAgIAorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1hFcXVpdmFsZW5jZUNsYXNzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VDbGFzcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZDk4NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VDbGFzcy5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworcHVibGljIGNsYXNzIFhFcXVpdmFsZW5jZUNsYXNzIHsKKwkKKwkvLyBxdWljayB0ZXN0CisJc3RhdGljIHB1YmxpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCQlYRXF1aXZhbGVuY2VDbGFzcyBmb28xID0gbmV3IFhFcXVpdmFsZW5jZUNsYXNzKCJOT05FIik7CisJCVN0cmluZ1tdW10gdGVzdHMgPSB7eyJiIiwiYTEifSwgeyJiIiwgImMifSwgeyJhMSIsICJjIn0sIHsiZCIsICJlIn0sIHsiZSIsICJmIn0sIHsiYyIsICJkIn19OworCQlmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIHRlc3RzW2ldWzBdICsgIiwgIiArIHRlc3RzW2ldWzFdKTsKKwkJCWZvbzEuYWRkKHRlc3RzW2ldWzBdLCB0ZXN0c1tpXVsxXSwgbmV3IEludGVnZXIoaSkpOworCQkJZm9yIChJdGVyYXRvciBpdCA9IGZvbzEuZ2V0RXhwbGljaXRJdGVtcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIGl0ZW0gICsgIjtcdCIgKyBmb28xLmdldFNhbXBsZShpdGVtKSArICI7XHQiICsgZm9vMS5nZXRFcXVpdmFsZW5jZXMoaXRlbSkpOworCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiXHRcdCIgKyBmb28xLmdldFJlYXNvbnMoaXRlbSwgZm9vMS5nZXRTYW1wbGUoaXRlbSkpKTsKKwkJCX0KKwkJfQorCX0KKwkKKwlwcml2YXRlIE1hcCB0b1BhcnRpdGlvblNldCA9IG5ldyBIYXNoTWFwKCk7CisJcHJpdmF0ZSBNYXAgb2JqX29ial9yZWFzb25zID0gbmV3IEhhc2hNYXAoKTsKKwlwcml2YXRlIE9iamVjdCBkZWZhdWx0UmVhc29uOworCQorCS8qKgorCSAqIGVtcHR5LCBhcyBpZiBqdXN0IGNyZWF0ZWQKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgY2xlYXIoT2JqZWN0IGRlZmF1bHRSZWFzb24pIHsKKwkJdG9QYXJ0aXRpb25TZXQuY2xlYXIoKTsKKwkJb2JqX29ial9yZWFzb25zLmNsZWFyKCk7CisJCXRoaXMuZGVmYXVsdFJlYXNvbiA9IGRlZmF1bHRSZWFzb247CisJCXJldHVybiB0aGlzOworCX0KKwkKKwkvKioKKwkgKiBDcmVhdGUgY2xhc3Mgd2l0aCBjb21wYXJhdG9yLCBhbmQgZGVmYXVsdCByZWFzb24uCisJICoKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MoT2JqZWN0IGRlZmF1bHRSZWFzb24pIHsKKwkJdGhpcy5kZWZhdWx0UmVhc29uID0gZGVmYXVsdFJlYXNvbjsKKwl9CisJCisJLyoqCisJICogQWRkIHR3byBlcXVpdmFsZW50IGl0ZW1zLCB3aXRoIE5PX1JFQVNPTiBmb3IgdGhlIHJlYXNvbi4KKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgYWRkKE9iamVjdCBhLCBPYmplY3QgYikgeworCQlyZXR1cm4gYWRkKGEsYixudWxsKTsKKwl9CisJCisJLyoqCisJICogQWRkIHR3byBlcXVpdmFsZW50IGl0ZW1zLCBwbHVzIGEgcmVhc29uLiBUaGUgcmVhc29uIGlzIG9ubHkgdXNlZCBmb3IgZ2V0UmVhc29ucworCSAqLworCXB1YmxpYyBYRXF1aXZhbGVuY2VDbGFzcyBhZGQoT2JqZWN0IGEsIE9iamVjdCBiLCBPYmplY3QgcmVhc29uKSB7CisJCWlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRoaXM7CisJCWlmIChyZWFzb24gPT0gbnVsbCkgcmVhc29uID0gZGVmYXVsdFJlYXNvbjsKKwkJYWRkUmVhc29uKGEsYixyZWFzb24pOworCQlhZGRSZWFzb24oYixhLHJlYXNvbik7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlTZXQgYlBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChiKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeworCQkJaWYgKGJQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeyAvLyBib3RoIG51bGwsIHNldCB1cCBiU2V0CisJCQkJYlBhcnRpdGlvblNldCA9IG5ldyBIYXNoU2V0KCk7CisJCQkJYlBhcnRpdGlvblNldC5hZGQoYik7CisJCQkJdG9QYXJ0aXRpb25TZXQucHV0KGIsIGJQYXJ0aXRpb25TZXQpOwkJCQkKKwkJCX0KKwkJCWJQYXJ0aXRpb25TZXQuYWRkKGEpOworCQkJdG9QYXJ0aXRpb25TZXQucHV0KGEsIGJQYXJ0aXRpb25TZXQpOwkJCQkKKwkJfSBlbHNlIGlmIChiUGFydGl0aW9uU2V0ID09IG51bGwpIHsgLy8gYVNldCBpcyBub3QgbnVsbCwgYlNldCBudWxsCisJCQlhUGFydGl0aW9uU2V0LmFkZChiKTsKKwkJCXRvUGFydGl0aW9uU2V0LnB1dChiLCBhUGFydGl0aW9uU2V0KTsJCQkJCQkJCisJCX0gZWxzZSBpZiAoYVBhcnRpdGlvblNldCAhPSBiUGFydGl0aW9uU2V0KSB7ICAvLyBib3RoIG5vbi1udWxsLCBub3QgZXF1YWwsIG1lcmdlLiAgRXF1YWxpdHkgY2hlY2sgb2sgaGVyZQorCQkJYVBhcnRpdGlvblNldC5hZGRBbGwoYlBhcnRpdGlvblNldCk7CisJCQkvLyByZW1hcCBldmVyeSB4IHRoYXQgaGFkIHggPT4gYlBhcnRpdGlvblNldAorCQkJZm9yIChJdGVyYXRvciBpdCA9IGJQYXJ0aXRpb25TZXQuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCXRvUGFydGl0aW9uU2V0LnB1dChpdC5uZXh0KCksIGFQYXJ0aXRpb25TZXQpOwkKKwkJCX0KKwkJfQorCQlyZXR1cm4gdGhpczsKKwl9CisJCisJLyoqCisJICogQWRkIGFsbCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3RoZXIgY2xhc3MKKwkgKgorCSAqLworCXB1YmxpYyBYRXF1aXZhbGVuY2VDbGFzcyBhZGRBbGwoWEVxdWl2YWxlbmNlQ2xhc3Mgb3RoZXIpIHsKKwkJLy8gRm9yIG5vdywgZG9lcyB0aGUgc2ltcGxlLCBub3Qgb3B0aW1pemVkIHZlcnNpb24KKwkJZm9yIChJdGVyYXRvciBpdCA9IG90aGVyLm9ial9vYmpfcmVhc29ucy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgYSA9IGl0Lm5leHQoKTsKKwkJCU1hcCBvYmpfcmVhc29ucyA9IChNYXApIG90aGVyLm9ial9vYmpfcmVhc29ucy5nZXQoYSk7CisJCQlmb3IgKEl0ZXJhdG9yIGl0MiA9IG9ial9yZWFzb25zLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisJCQkJT2JqZWN0IGIgPSBpdDIubmV4dCgpOworCQkJCVNldCByZWFzb25zID0gKFNldCkgb2JqX3JlYXNvbnMuZ2V0KGIpOworCQkJCWZvciAoSXRlcmF0b3IgaXQzID0gcmVhc29ucy5pdGVyYXRvcigpOyBpdDMuaGFzTmV4dCgpOykgeworCQkJCQlPYmplY3QgcmVhc29uID0gaXQzLm5leHQoKTsKKwkJCQkJYWRkKGEsIGIsIHJlYXNvbik7CisJCQkJfQorCQkJfQorCQl9CisJCXJldHVybiB0aGlzOworCX0KKwkKKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHZvaWQgYWRkUmVhc29uKE9iamVjdCBhLCBPYmplY3QgYiwgT2JqZWN0IHJlYXNvbikgeworCQlNYXAgb2JqX3JlYXNvbnMgPSAoTWFwKSBvYmpfb2JqX3JlYXNvbnMuZ2V0KGEpOworCQlpZiAob2JqX3JlYXNvbnMgPT0gbnVsbCkgb2JqX29ial9yZWFzb25zLnB1dChhLCBvYmpfcmVhc29ucyA9IG5ldyBIYXNoTWFwKCkpOworCQlTZXQgcmVhc29ucyA9IChTZXQpIG9ial9yZWFzb25zLmdldChiKTsKKwkJaWYgKHJlYXNvbnMgPT0gbnVsbCkgb2JqX3JlYXNvbnMucHV0KGIsIHJlYXNvbnMgPSBuZXcgSGFzaFNldCgpKTsKKwkJcmVhc29ucy5hZGQocmVhc29uKTsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm5zIGEgc2V0IG9mIGFsbCB0aGUgZXhwbGljaXQgaXRlbXMgaW4gdGhlIGVxdWl2YWxlbmNlIHNldC4gKEFueSBub24tZXhwbGljaXQgaXRlbXMgb25seQorCSAqIGhhdmUgdGhlbXNlbHZlcyBhcyBlcXVpdmFsZW5jZXMuKQorCSAqCisJICovCisJcHVibGljIFNldCBnZXRFeHBsaWNpdEl0ZW1zKCkgeworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHRvUGFydGl0aW9uU2V0LmtleVNldCgpKTsKKwl9CisJCisJLyoqCisJICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2V0IG9mIGFsbCB0aGUgZXF1aXZhbGVudCBvYmplY3RzCisJICoKKwkgKi8KKwlwdWJsaWMgU2V0IGdldEVxdWl2YWxlbmNlcyhPYmplY3QgYSkgeworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgeyAvLyBtYW51ZmFjdHVyZSBhbiBlcXVpdmFsZW5jZQorCQkJYVBhcnRpdGlvblNldCA9IG5ldyBIYXNoU2V0KCk7CisJCQlhUGFydGl0aW9uU2V0LmFkZChhKTsgCisJCX0KKwkJcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChhUGFydGl0aW9uU2V0KTsKKwl9CisJCisJcHVibGljIFNldCBnZXRFcXVpdmFsZW5jZVNldHMoKSB7CisJCVNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gdG9QYXJ0aXRpb25TZXQua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlTZXQgcGFydGl0aW9uID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGl0ZW0pOworCQkJcmVzdWx0LmFkZChDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQocGFydGl0aW9uKSk7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsJCisJfQorCS8qKgorCSAqIHJldHVybnMgdHJ1ZSBpZmYgYSBpcyBlcXVpdmFsZW50IHRvIGIgKG9yIGEuZXF1YWxzIGIpCisJICoKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0VxdWl2YWxlbnQoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisJCWlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRydWU7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlpZiAoYVBhcnRpdGlvblNldCA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisJCXJldHVybiBhUGFydGl0aW9uU2V0LmNvbnRhaW5zKGIpOworCX0KKwkKKwkvKioKKwkgKiBHZXRzIGEgc2FtcGxlIG9iamVjdCBpbiB0aGUgZXF1aXZhbGVuY2Ugc2V0IGZvciBhLiAKKwkgKgorCSAqLworCXB1YmxpYyBPYmplY3QgZ2V0U2FtcGxlKE9iamVjdCBhKSB7CisJCVNldCBhUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGEpOworCQlpZiAoYVBhcnRpdGlvblNldCA9PSBudWxsKSByZXR1cm4gYTsgLy8gc2luZ2xldG9uCisJCXJldHVybiBhUGFydGl0aW9uU2V0Lml0ZXJhdG9yKCkubmV4dCgpOworCX0KKwkKKwlwdWJsaWMgaW50ZXJmYWNlIEZpbHRlciB7CisJCWJvb2xlYW4gbWF0Y2hlcyhPYmplY3Qgbyk7CisJfQorCQorCXB1YmxpYyBPYmplY3QgZ2V0U2FtcGxlKE9iamVjdCBhLCBGaWx0ZXIgZikgeworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgcmV0dXJuIGE7IC8vIHNpbmdsZXRvbgorCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYVBhcnRpdGlvblNldC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3Qgb2JqID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhvYmopKSByZXR1cm4gb2JqOworCQl9CisJCXJldHVybiBhOworCX0KKworCS8qKgorCSAqIGdldHMgdGhlIHNldCBvZiBhbGwgdGhlIHNhbXBsZXMsIG9uZSBmcm9tIGVhY2ggZXF1aXZhbGVuY2UgY2xhc3MuIAorCSAqCisJICovCisJcHVibGljIFNldCBnZXRTYW1wbGVzKCkgeworCQlTZXQgc2VlbkFscmVhZHkgPSBuZXcgSGFzaFNldCgpOworCQlTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKwkJZm9yIChJdGVyYXRvciBpdCA9IHRvUGFydGl0aW9uU2V0LmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKHNlZW5BbHJlYWR5LmNvbnRhaW5zKGl0ZW0pKSBjb250aW51ZTsKKwkJCVNldCBwYXJ0aXRpb24gPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoaXRlbSk7CisJCQlyZXN1bHQuYWRkKHBhcnRpdGlvbi5pdGVyYXRvcigpLm5leHQoKSk7CisJCQlzZWVuQWxyZWFkeS5hZGRBbGwocGFydGl0aW9uKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKworCS8qKgorCSAqIFJldHVybnMgYSBsaXN0IG9mIGxpc3RzLiBFYWNoIHN1Ymxpc3QgaXMgaW4gdGhlIGZvcm0gW3JlYXNvbnMsIG9iaiwgcmVhc29ucywgb2JqLC4uLiwgcmVhc29uc10KKwkgKiB3aGVyZSBlYWNoIHJlYXNvbnMgaXMgYSBzZXQgb2YgcmVhc29ucyB0byBnbyBmcm9tIG9uZSBvYmogdG8gdGhlIG5leHQuPGJyPgorCSAqIFJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBjb25uZWN0aW9uLgorCSAqLworCXB1YmxpYyBMaXN0IGdldFJlYXNvbnMoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisJCS8vIHVzZSBkdW1iIGFsZ29yaXRobSBmb3IgZ2V0dGluZyBzaG9ydGVzdCBwYXRoCisJCS8vIGRvbid0IGJvdGhlciB3aXRoIG9wdGltaXphdGlvbgorCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJU2V0IGJQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYik7CisJCQorCQkvLyBzZWUgaWYgdGhleSBjb25uZWN0CisJCWlmIChhUGFydGl0aW9uU2V0ID09IG51bGwgfHwgYlBhcnRpdGlvblNldCA9PSBudWxsIHx8IGFQYXJ0aXRpb25TZXQgIT0gYlBhcnRpdGlvblNldCB8fCBhLmVxdWFscyhiKSkgcmV0dXJuIG51bGw7CisJCQorCQlBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKwkJbGlzdC5hZGQoYSk7CisJCUFycmF5TGlzdCBsaXN0cyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJbGlzdHMuYWRkKGxpc3QpOworCisJCS8vIHRoaXMgd2lsbCBjb250YWluIHRoZSByZXN1bHRzCisJCUxpc3QgZm91bmRMaXN0cyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJU2V0IHNhd0xhc3RUaW1lID0gbmV3IEhhc2hTZXQoKTsKKwkJc2F3TGFzdFRpbWUuYWRkKGEpOworCQkKKwkJLy8gZWFjaCB0aW1lLCB3ZSBleHRlbmQgdGhlIGxpc3RzIGJ5IG9uZSAoYWRkaW5nIG11bHRpcGxlIG90aGVyIGxpc3RzKQorCQl3aGlsZSAoZm91bmRMaXN0cy5zaXplKCkgPT0gMCkgeworCQkJQXJyYXlMaXN0IGV4dGVuZGVkTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKwkJCVNldCBzYXdUaGlzVGltZSA9IG5ldyBIYXNoU2V0KCk7CisJCQlmb3IgKEl0ZXJhdG9yIGl0ID0gbGlzdHMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJCUFycmF5TGlzdCBsaXN0YSA9IChBcnJheUxpc3QpIGl0Lm5leHQoKTsKKwkJCQlPYmplY3QgbGFzdCA9IGxpc3RhLmdldChsaXN0YS5zaXplKCktMSk7CisJCQkJTWFwIG9ial9yZWFzb25zID0gKE1hcCkgb2JqX29ial9yZWFzb25zLmdldChsYXN0KTsKKwkJCQlmb3IgKEl0ZXJhdG9yIGl0MiA9IG9ial9yZWFzb25zLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisJCQkJCU9iamVjdCBpdGVtID0gaXQyLm5leHQoKTsKKwkJCQkJaWYgKHNhd0xhc3RUaW1lLmNvbnRhaW5zKGl0ZW0pKSB7CisJCQkJCQljb250aW51ZTsgLy8gc2tpcCBzaW5jZSB3ZSBoYXZlIHNob3J0ZXIKKwkJCQkJfQorCQkJCQlzYXdUaGlzVGltZS5hZGQoaXRlbSk7CisJCQkJCVNldCByZWFzb25zID0gKFNldCkgb2JqX3JlYXNvbnMuZ2V0KGl0ZW0pOworCQkJCQlBcnJheUxpc3QgbGlzdGEyID0gKEFycmF5TGlzdClsaXN0YS5jbG9uZSgpOworCQkJCQlsaXN0YTIuYWRkKHJlYXNvbnMpOworCQkJCQlsaXN0YTIuYWRkKGl0ZW0pOworCQkJCQlleHRlbmRlZExpc3QuYWRkKGxpc3RhMik7CisJCQkJCWlmIChpdGVtLmVxdWFscyhiKSkgeworCQkJCQkJLy8gcmVtb3ZlIGZpcnN0IGFuZCBsYXN0CisJCQkJCQlBcnJheUxpc3QgZm91bmQgPSAoQXJyYXlMaXN0KWxpc3RhMi5jbG9uZSgpOworCQkJCQkJZm91bmQucmVtb3ZlKDApOworCQkJCQkJZm91bmQucmVtb3ZlKGZvdW5kLnNpemUoKS0xKTsKKwkJCQkJCWZvdW5kTGlzdHMuYWRkKGZvdW5kKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWxpc3RzID0gZXh0ZW5kZWRMaXN0OworCQkJc2F3TGFzdFRpbWUuYWRkQWxsKHNhd1RoaXNUaW1lKTsKKwkJfQorCQlyZXR1cm4gZm91bmRMaXN0czsKKwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlTWFwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWMwYzRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlTWFwLmphdmEKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiBFdmVyeXRoaW5nIHRoYXQgbWFwcyB0byB0aGUgc2FtZSB2YWx1ZSBpcyBwYXJ0IG9mIHRoZSBzYW1lIGVxdWl2YWxlbmNlIGNsYXNzCisgKiBAYXV0aG9yIGRhdmlzCisgKgorICovCitwdWJsaWMgY2xhc3MgWEVxdWl2YWxlbmNlTWFwIHsKKwlIYXNoTWFwIHNvdXJjZV90YXJnZXQgPSBuZXcgSGFzaE1hcCgpOworCUhhc2hNYXAgdGFyZ2V0X3NvdXJjZVNldCA9IG5ldyBIYXNoTWFwKCk7CisJSGFzaE1hcCBzb3VyY2VfU2V0ID0gbmV3IEhhc2hNYXAoKTsKKwlwdWJsaWMgWEVxdWl2YWxlbmNlTWFwIGNsZWFyKCkgeworCQlzb3VyY2VfdGFyZ2V0LmNsZWFyKCk7CisJCXRhcmdldF9zb3VyY2VTZXQuY2xlYXIoKTsKKwkJc291cmNlX1NldC5jbGVhcigpOworCQlyZXR1cm4gdGhpczsKKwl9CisJcHVibGljIFhFcXVpdmFsZW5jZU1hcCBhZGQoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworCQlPYmplY3Qgb3RoZXJUYXJnZXQgPSBzb3VyY2VfdGFyZ2V0LmdldChzb3VyY2UpOworCQlpZiAob3RoZXJUYXJnZXQgIT0gbnVsbCkgeworCQkJaWYgKG90aGVyVGFyZ2V0LmVxdWFscyh0YXJnZXQpKSByZXR1cm4gdGhpczsKKwkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlNhbWUgc291cmNlIG1hcHBpbmcgdG8gZGlmZmVyZW50IHRhcmdldHM6ICIKKwkJCQkJKyBzb3VyY2UgKyAiID0+ICIgKyBvdGhlclRhcmdldCArICIgJiAiICsgdGFyZ2V0KTsKKwkJfQorCQlzb3VyY2VfdGFyZ2V0LnB1dChzb3VyY2UsIHRhcmdldCk7CisJCVNldCBzID0gKFNldCkgdGFyZ2V0X3NvdXJjZVNldC5nZXQodGFyZ2V0KTsKKwkJaWYgKHMgPT0gbnVsbCkgdGFyZ2V0X3NvdXJjZVNldC5wdXQodGFyZ2V0LCBzID0gbmV3IEhhc2hTZXQoKSk7CisJCXMuYWRkKHNvdXJjZSk7CisJCXNvdXJjZV9TZXQucHV0KHNvdXJjZSwgcyk7CisJCXJldHVybiB0aGlzOworCX0KKwlwdWJsaWMgU2V0IGdldEVxdWl2YWxlbmNlcyAoT2JqZWN0IHNvdXJjZSkgeworCQlTZXQgcyA9IChTZXQpIHNvdXJjZV9TZXQuZ2V0KHNvdXJjZSk7CisJCWlmIChzID09IG51bGwpIHJldHVybiBudWxsOworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHMpOworCX0KKwlwdWJsaWMgYm9vbGVhbiBhcmVFcXVpdmFsZW50IChPYmplY3Qgc291cmNlMSwgT2JqZWN0IHNvdXJjZTIpIHsKKwkJU2V0IHMgPSAoU2V0KSBzb3VyY2VfU2V0LmdldChzb3VyY2UxKTsKKwkJaWYgKHMgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gcy5jb250YWlucyhzb3VyY2UyKTsKKwl9CisJcHVibGljIE9iamVjdCBnZXRUYXJnZXQoT2JqZWN0IHNvdXJjZSkgeworCQlyZXR1cm4gc291cmNlX3RhcmdldC5nZXQoc291cmNlKTsKKwl9CisJcHVibGljIFNldCBnZXRTb3VyY2VzKE9iamVjdCB0YXJnZXQpIHsKKwkJU2V0IHMgPSAoU2V0KSB0YXJnZXRfc291cmNlU2V0LmdldCh0YXJnZXQpOworCQlyZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHMpOworCX0KKwlwdWJsaWMgSXRlcmF0b3IgaXRlcmF0b3IoKSB7CisJCU15SXRlcmF0b3IgcmVzdWx0ID0gbmV3IE15SXRlcmF0b3IoKTsKKwkJcmVzdWx0LnRhcmdldF9zb3VyY2VTZXRfaXRlcmF0b3IgPSB0YXJnZXRfc291cmNlU2V0LmtleVNldCgpLml0ZXJhdG9yKCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCXB1YmxpYyBpbnQgc2l6ZSgpIHsKKwkJcmV0dXJuIHRhcmdldF9zb3VyY2VTZXQuc2l6ZSgpOworCX0KKwlwcml2YXRlIGNsYXNzIE15SXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisJCXByaXZhdGUgSXRlcmF0b3IgdGFyZ2V0X3NvdXJjZVNldF9pdGVyYXRvcjsKKwkJcHVibGljIHZvaWQgcmVtb3ZlKCkgeworCQkJdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKwkJCXJldHVybiB0YXJnZXRfc291cmNlU2V0X2l0ZXJhdG9yLmhhc05leHQoKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlyZXR1cm4gZ2V0U291cmNlcyh0YXJnZXRfc291cmNlU2V0X2l0ZXJhdG9yLm5leHQoKSk7CisJCX0JCQorCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9tYW5pZmVzdC5jbGRydXRpbC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2U3ZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NsYXNzLVBhdGg6IHV0aWxpdGllcy5qYXIKK01haW4tQ2xhc3M6IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwKKworTmFtZTogY29tL2libS9pY3UvCitTcGVjaWZpY2F0aW9uLVRpdGxlOiBVdGlsaXRpZXMgZm9yIENMRFIgCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNAorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IFV0aWxpdGllcyBmb3IgQ0xEUgorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy40LjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitTZWFsZWQ6IGZhbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWExMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YQpAQCAtMCwwICsxLDI3NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgMTUgMjAwMgorKiBTaW5jZTogSUNVIDIuNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2w7CisKKy8qKgorICogQSBjb21tYW5kLWxpbmUgb3B0aW9uLiAgQSBVT3B0aW9uIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhbiBvcHRpb24KKyAqIGFuZCB3aGV0aGVyIG9yIG5vdCBpdCB0YWtlcyBhbiBhcmd1bWVudC4gIEl0IGlzIGEgbXV0YWJsZSBvYmplY3QKKyAqIHRoYXQgbGF0ZXIgY29udGFpbnMgdGhlIG9wdGlvbiBhcmd1bWVudCwgaWYgYW55LCBhbmQgYSBib29sZWFuCisgKiBmbGFnIHN0YXRpbmcgd2hldGhlciB0aGUgb3B0aW9uIHdhcyBzZWVuIG9yIG5vdC4KKyAqCisgKiBUaGUgc3RhdGljIG1ldGhvZCBwYXJzZUFyZ3MoKSB0YWtlcyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUKKyAqIGFyZ3VtZW50cyBhbmQgYW4gYXJyYXkgb2YgVU9wdGlvbnMgYW5kIHBhcnNlcyB0aGUgY29tbWFuZC1saW5lCisgKiBhcmd1bWVudHMuCisgKgorICogVGhpcyBkZWxpYmVyYXRlbHkgcmVzZW1ibGVzIHRoZSBpY3U0YyBmaWxlIHVvcHRpb24uW2NoXS4KKyAqLworcHVibGljIGNsYXNzIFVPcHRpb24geworCisgICAgLy8gRGVsaWJlcmF0ZWQgcHVibGljIGRhdGEgbWVtYmVycworICAgIHB1YmxpYyBTdHJpbmcgIGxvbmdOYW1lOworICAgIHB1YmxpYyBTdHJpbmcgIHZhbHVlOworICAgIHB1YmxpYyBGbiAgICAgIG9wdGlvbkZuOworICAgIHB1YmxpYyBPYmplY3QgIGNvbnRleHQ7CisgICAgcHVibGljIGNoYXIgICAgc2hvcnROYW1lOworICAgIHB1YmxpYyBpbnQgICAgIGhhc0FyZzsKKyAgICBwdWJsaWMgYm9vbGVhbiBkb2VzT2NjdXI7CisKKyAgICAvLyBWYWx1ZXMgb2YgaGFzQXJnCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9fQVJHICAgICAgID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSRVFVSVJFU19BUkcgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElPTkFMX0FSRyA9IDI7CisKKyAgICAvLyBBbmFsb2cgb2YgVU9wdGlvbkZuLiAgV2UgZG9uJ3QgcGFzcyBpbiB0aGUgY29udGV4dCBiZWNhdXNlIHRoZQorICAgIC8vIGZ1bmN0b3IgY2FuIGdldCBpdCBmcm9tIHRoZSBVT3B0aW9uLgorICAgIHB1YmxpYyBpbnRlcmZhY2UgRm4geworICAgICAgICBpbnQgaGFuZGxlKFVPcHRpb24gb3B0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVT3B0aW9uIHdpdGggdGhlIGdpdmVuIGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIGNyZWF0ZShTdHJpbmcgYUxvbmdOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFTaG9ydE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYXNBcmd1bWVudCkgeworICAgICAgICByZXR1cm4gbmV3IFVPcHRpb24oYUxvbmdOYW1lLCBhU2hvcnROYW1lLCBoYXNBcmd1bWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVU9wdGlvbiB3aXRoIHRoZSBnaXZlbiBhdHRyaWJ1dGVzLgorICAgICAqIFN5bm9ueW0gZm9yIGNyZWF0ZSgpLCBmb3IgQyBjb21wYXRpYmlsaXR5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBERUYoU3RyaW5nIGFMb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYVNob3J0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYXNBcmd1bWVudCkgeworICAgICAgICByZXR1cm4gY3JlYXRlKGFMb25nTmFtZSwgYVNob3J0TmFtZSwgaGFzQXJndW1lbnQpOworICAgIH0KKworICAgIC8vIFN0YW5kYXJkIGNhbm5lZCBvcHRpb25zLiAgVGhlc2UgY3JlYXRlIGEgbmV3IG9iamVjdCB3aGVuCisgICAgLy8gY2FsbGVkLiAgU2luY2UgdGhlIFVPcHRpb24gb2JqZWN0IGlzIG11dGFibGUsIHdlIGNhbm5vdCB1c2UKKyAgICAvLyBzdGF0aWMgZmluYWwgaW5zdGFuY2VzLgorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBIRUxQX0goKSAgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImhlbHAiLCAnaCcsIE5PX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gSEVMUF9RVUVTVElPTl9NQVJLKCkgeyByZXR1cm4gY3JlYXRlKCJoZWxwIiwgJz8nLCBOT19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIFZFUkJPU0UoKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgidmVyYm9zZSIsICd2JywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBRVUlFVCgpICAgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInF1aWV0IiwgJ3EnLCBOT19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIFZFUlNJT04oKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgidmVyc2lvbiIsICdWJywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBDT1BZUklHSFQoKSAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImNvcHlyaWdodCIsICdjJywgTk9fQVJHKTsgfQorCisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIERFU1RESVIoKSAgICAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgiZGVzdGRpciIsICdkJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBTT1VSQ0VESVIoKSAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInNvdXJjZWRpciIsICdzJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBFTkNPRElORygpICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImVuY29kaW5nIiwgJ2UnLCBSRVFVSVJFU19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIElDVURBVEFESVIoKSAgICAgICAgIHsgcmV0dXJuIGNyZWF0ZSgiaWN1ZGF0YWRpciIsICdpJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBQQUNLQUdFX05BTUUoKSAgICAgICB7IHJldHVybiBjcmVhdGUoInBhY2thZ2UtbmFtZSIsICdwJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBCVU5ETEVfTkFNRSgpICAgICAgICB7IHJldHVybiBjcmVhdGUoImJ1bmRsZS1uYW1lIiwgJ2InLCBSRVFVSVJFU19BUkcpOyB9CisKKyAgICAvKioKKyAgICAgKiBKYXZhIENvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBhcmd2W10gY29tbWFuZCBsaW5lIGFuZCBhIGRlc2NyaXB0aW9uIG9mCisgICAgICogdGhlIHByb2dyYW0ncyBvcHRpb25zIGluIGZvcm0gb2YgYW4gYXJyYXkgb2YgVU9wdGlvbiBzdHJ1Y3R1cmVzLgorICAgICAqIEVhY2ggVU9wdGlvbiBkZWZpbmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisgICAgICogZm9yIG9wdGlvbnMgbGlrZSAiLS1mb28iIGFuZCAiLWYiLgorICAgICAqCisgICAgICogRWFjaCBvcHRpb24gaXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3VtZW50LAorICAgICAqIHJlcXVpcmVzIG9uZSwgb3Igb3B0aW9uYWxseSB0YWtlcyBvbmUuIFRoZSBhcmd1bWVudCBtYXkgZm9sbG93IGluCisgICAgICogdGhlIHNhbWUgYXJndltdIGVudHJ5IGZvciBzaG9ydCBvcHRpb25zLCBvciBpdCBtYXkgYWx3YXlzIGZvbGxvdworICAgICAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeS4KKyAgICAgKgorICAgICAqIEFuIGFyZ3VtZW50IGlzIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeSBmb3IgYm90aCBsb25nIGFuZCBzaG9ydCBuYW1lCisgICAgICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgICAgICogaXRzIG93biBhcmd2W10gZW50cnkgaWYgdGhlcmUgYXJlIGNoYXJhY3RlcnMgZm9sbG93aW5nIHRoZSBvcHRpb24gbGV0dGVyLgorICAgICAqIEFuIGFyZ3VtZW50IGluIGl0cyBvd24gYXJndltdIGVudHJ5IG11c3Qgbm90IGJlZ2luIHdpdGggYSAnLScKKyAgICAgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJpY3Rpb24gb2YgdGhlCisgICAgICogYXJndW1lbnQgZm9ybWF0IGlmIGl0IGlzIHBhcnQgb2YgdGhlIHNob3J0IG5hbWUgb3B0aW9ucydzIGFyZ3ZbXSBlbnRyeS4KKyAgICAgKgorICAgICAqIFRoZSBhcmd1bWVudCBpcyBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogVU9wdGlvbiBlbnRyeSwgYW5kIHRoZSBkb2VzT2NjdXIgZmllbGQgaXMgc2V0IHRvIDEgaWYgdGhlIG9wdGlvbgorICAgICAqIGlzIGZvdW5kIGF0IGFsbC4KKyAgICAgKgorICAgICAqIFNob3J0IG5hbWUgb3B0aW9ucyB3aXRob3V0IGFyZ3VtZW50cyBjYW4gYmUgY29sbGFwc2VkIGludG8gYSBzaW5nbGUKKyAgICAgKiBhcmd2W10gZW50cnkuIEFmdGVyIGFuIG9wdGlvbiBsZXR0ZXIgdGFrZXMgYW4gYXJndW1lbnQsIGZvbGxvd2luZworICAgICAqIGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc2FtZSBvcHRpb24gaXMgZm91bmQgc2V2ZXJhbCB0aW1lcywgdGhlbiB0aGUgbGFzdAorICAgICAqIGFyZ3VtZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEZvciBlYWNoIG9wdGlvbiwgYSBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkLiBUaGlzIGNvdWxkIGJlIHVzZWQKKyAgICAgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBhbGwgYXJndW1lbnRzIGFyZSB0bworICAgICAqIGJlIGNvbGxlY3RlZC4KKyAgICAgKgorICAgICAqIEFsbCBvcHRpb25zIGFyZSByZW1vdmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIKKyAgICAgKiBpcyBzdWNjZXNzZnVsLCB0aGVuIGl0IHJldHVybnMgdGhlIG51bWJlciBvZiByZW1haW5pbmcgbm9uLW9wdGlvbgorICAgICAqIHN0cmluZ3MuICAoVW5saWtlIEMsIHRoZSBKYXZhIGFyZ3ZbXSBhcnJheSBkb2VzIE5PVCBjb250YWluCisgICAgICogdGhlIHByb2dyYW0gbmFtZSBpbiBhcmd2WzBdLikKKyAgICAgKgorICAgICAqIEFuIG9wdGlvbiAiLS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcworICAgICAqIHJlbWFpbnMgaW4gdGhlIGFyZ3ZbXSBhcnJheS4KKyAgICAgKgorICAgICAqIEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFsb25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICAgICAqCisgICAgICogSWYgYW4gb3B0aW9uIGlzIG5vdCByZWNvZ25pemVkIG9yIGFuIGFyZ3VtZW50IG1pc3NpbmcsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2VyIHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBlbnRyeQorICAgICAqIHdoZXJlIHRoZSBlcnJvciB3YXMgZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJndiB0aGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgYXJndW1lbnQgaW4gYXJndltdIHRvIGV4YW1pbmUuICBNdXN0IGJlCisgICAgICogMC4uYXJndi5sZW5ndGgtMS4gIEFyZ3VtZW50cyBmcm9tIDAuLnN0YXJ0LTEgYXJlIGlnbm9yZWQuCisgICAgICogQHBhcmFtIG9wdGlvbnMgdGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgdW5wcm9jZXNzZWQgYXJndW1lbnRzIGluIGFyZ3ZbXSwgaW5jbHVkaW5nCisgICAgICogYXJndW1lbnRzIDAuLnN0YXJ0LTEuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VBcmdzKFN0cmluZyBhcmd2W10sIGludCBzdGFydCwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICAgICAgU3RyaW5nIGFyZzsKKyAgICAgICAgaW50IGk9c3RhcnQsIHJlbWFpbmluZz1zdGFydDsKKyAgICAgICAgY2hhciBjOworICAgICAgICBib29sZWFuIHN0b3BPcHRpb25zPWZhbHNlOworCisgICAgICAgIHdoaWxlKGk8YXJndi5sZW5ndGgpIHsKKyAgICAgICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICAgICAgaWYoIXN0b3BPcHRpb25zICYmIGFyZy5sZW5ndGgoKT4xICYmIGFyZy5jaGFyQXQoMCk9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4gb3B0aW9uICovCisgICAgICAgICAgICAgICAgYz1hcmcuY2hhckF0KDEpOworICAgICAgICAgICAgICAgIFVPcHRpb24gb3B0aW9uPW51bGw7CisgICAgICAgICAgICAgICAgYXJnPWFyZy5zdWJzdHJpbmcoMik7CisgICAgICAgICAgICAgICAgaWYoYz09Jy0nKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYSBsb25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBpZihhcmcubGVuZ3RoKCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3AgcHJvY2Vzc2luZyBvcHRpb25zIGFmdGVyICItLSIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BPcHRpb25zPXRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWFyY2ggZm9yIHRoZSBvcHRpb24gc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9ucy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbnNbal0ubG9uZ05hbWUgIT0gbnVsbCAmJiBhcmcuZXF1YWxzKG9wdGlvbnNbal0ubG9uZ05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1vcHRpb25zW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBvcHRpb24gbWF0Y2hlcyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmtub3duIG9wdGlvbiAiICsgYXJndltpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uZG9lc09jY3VyPXRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbi5oYXNBcmchPU5PX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaSsxPGFyZ3YubGVuZ3RoICYmICEoYXJndltpKzFdLmxlbmd0aCgpPjEgJiYgYXJndltpKzFdLmNoYXJBdCgwKT09Jy0nKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbi5oYXNBcmc9PVJFUVVJUkVTX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGVyZSBpcyBubyBhcmd1bWVudCwgYnV0IG9uZSBpcyByZXF1aXJlZDogcmV0dXJuIHdpdGggZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk9wdGlvbiAiICsgYXJndltpXSArICIgbGFja3MgcmVxdWlyZWQgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIG9uZSBvciBtb3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2VhcmNoIGZvciB0aGUgb3B0aW9uIGxldHRlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPG9wdGlvbnMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjPT1vcHRpb25zW2pdLnNob3J0TmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9uc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5rbm93biBvcHRpb24gJyIgKyBjICsgIicgaW4gIiArIGFyZ3ZbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRvZXNPY2N1cj10cnVlOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24uaGFzQXJnIT1OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJzZSB0aGUgYXJndW1lbnQgZm9yIHRoZSBvcHRpb24sIGlmIGFueSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFyZy5sZW5ndGgoKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUgYXJndltdICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZT1hcmc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvIG5vdCBwcm9jZXNzIHRoZSByZXN0IG9mIHRoaXMgYXJnIGFzIG9wdGlvbiBsZXR0ZXJzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJndi5sZW5ndGggJiYgIShhcmd2W2krMV0ubGVuZ3RoKCk+MSAmJiBhcmd2W2krMV0uY2hhckF0KDApPT0nLScpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFyZ3VtZW50IGluIHRoZSBuZXh0IGFyZ3ZbXSwgYW5kIHRoZXJlIGlzIG5vdCBhbiBvcHRpb24gaW4gdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlPWFyZ3ZbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBicmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uLmhhc0FyZz09UkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiT3B0aW9uIC0iICsgYyArICIgbGFja3MgcmVxdWlyZWQgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24gbGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcubGVuZ3RoKCk9PTApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgYz1hcmcuY2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgYXJnPWFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihvcHRpb24hPW51bGwgJiYgb3B0aW9uLm9wdGlvbkZuIT1udWxsICYmIG9wdGlvbi5vcHRpb25Gbi5oYW5kbGUob3B0aW9uKTwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBvcHRpb24gZnVuY3Rpb24gd2FzIGNhbGxlZCBhbmQgcmV0dXJuZWQgYW4gZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk9wdGlvbiBoYW5kbGVyIGZhaWxlZCBmb3IgIiArIGFyZ3ZbaV0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIGdvIHRvIG5leHQgYXJndltdICovCisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIGEgbm9uLW9wdGlvbiB1cCBpbiBhcmd2W10gKi8KKyAgICAgICAgICAgICAgICBhcmd2W3JlbWFpbmluZysrXT1hcmc7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZW1haW5pbmc7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHRoZSBkZWZhdWx0IHRvIGJlIHNldCBpbiBhbiBvcHRpb24gbGlzdC4KKyAgICAgKiBAcGFyYW0gcworICAgICAqIEByZXR1cm4gdGhpcworICAgICAqL3B1YmxpYyBVT3B0aW9uIHNldERlZmF1bHQoU3RyaW5nIHMpIHsKKyAgICAgICAgdmFsdWUgPSBzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW50IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZUFyZ3MoU3RyaW5nIGFyZ3ZbXSwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlQXJncyhhcmd2LCAwLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVPcHRpb24oU3RyaW5nIGFMb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgY2hhciBhU2hvcnROYW1lLAorICAgICAgICAgICAgICAgICAgICBpbnQgaGFzQXJndW1lbnQpIHsKKyAgICAgICAgbG9uZ05hbWUgPSBhTG9uZ05hbWU7CisgICAgICAgIHNob3J0TmFtZSA9IGFTaG9ydE5hbWU7CisgICAgICAgIGhhc0FyZyA9IGhhc0FyZ3VtZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93IGFuIGV4Y2VwdGlvbiBpbmRpY2F0aW5nIGEgc3ludGF4IGVycm9yLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXJyb3IgaW4gYXJndW1lbnQgbGlzdDogIiArIG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L21iY3MvQklHNVRvb2wuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L21iY3MvQklHNVRvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDBlNjM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9CSUc1VG9vbC5qYXZhCkBAIC0wLDAgKzEsMzI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEJJRzVUb29sCisgKgorICogICAgVGhpcyB0b29sIHByb2R1Y2VzIHRoZSBjaGFyYWN0ZXIgdXNhZ2UgZnJlcXVlbmN5IHN0YXRpc3RpY3MgZm9yIHRoZSBCaWc1CisgKiAgICBDaGluZXNlIGNoYXJzZXQsIGZvciB1c2UgYnkgdGhlIElDVSBjaGFyc2V0IGRldGVjdG9ycy4KKyAqCisgKiAgICB1c2FnZTogIGphdmEgQklHNVRvb2wgWy1kXSBbZGlyZWN0b3J5IHBhdGhdCisgKgorICogICAgICAgIC1kOiAgIFByb2R1Y2UgdGhlIGRhdGEgaW4gYSBmb3JtIHRvIGJlIGV4cG9ydGVkIHRvIHRoZSBJQ1UgaW1wbGVtZW50YXRpb24KKyAqICAgICAgICAgICAgICBEZWZhdWx0IGlzIHRvIHByb2R1Y2UgYW4gaW5mb3JtYXRpdmUgZHVtcC4KKyAqICAgICAgICAgICAgICAKKyAqICAgICAgICAtc2ppcyBEbyBTaGlmdF9KSVMuICBUaGUgc3RydWN0dXJlIG9mIHNqaXMgaXMgdmVyeSBzaW1pbGFyIHRvIEJpZzUuCisgKgorICogICAgICAgIGRpcmVjdG9yeSBwYXRoCisgKiAgICAgICAgICAgICAgU291cmNlIGRpcmVjdG9yeSBmb3IgdGhlIHRleHQgZmlsZXMgdG8gYmUgYW5hbHl6ZWQuCisgKiAgICAgICAgICAgICAgQWxsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG11c3QgYmUgaW4gdGhlIEJpZzUgZW5jb2RpbmcuCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5tYmNzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworCitwdWJsaWMgY2xhc3MgQklHNVRvb2wgeworCisgICAgLy8gVGhlIGZpbGUgYnVmZmVyIGFuZCBmaWxlIGRhdGEgbGVuZ3RoIG5lZWQgdG8gYmUgb3V0IGluIGNsYXNzIG1lbWJlciB2YXJpYWJsZXMKKyAgICAvLyAgc28gdGhhdCB0aGUgY29kZSBsaWZ0ZWQgZnJvbSBjaGFyU2V0IGRldGVjdGlvbiBmb3Igc2Nhbm5pbmcgdGhlIG11bHRpLWJ5dGUgY2hhcnMKKyAgICAvLyAgY2FuIHNlZSB0aGVtIGNvbnZlbmllbnRseS4KKyAgICBieXRlIFtdICAgIGJ1ZiA9IG5ldyBieXRlWzEwMDAwMDBdOworICAgIGludCAgICAgICAgZmlsZVNpemU7CisKKyAgICBib29sZWFuICAgIG9wdGlvbl9kID0gZmFsc2U7ICAgIC8vIGRhdGEgb3B0aW9uLiAgUHJvZHVjZSBleHBvcnRhYmxlIGRhdGEKKyAgICBib29sZWFuICAgIG9wdGlvbl92ID0gdHJ1ZTsgICAgIC8vIHZlcmJvc2UgaW5mb3JtYWlvbmFsIG91dHB1dC4KKyAgICBib29sZWFuICAgIHNqaXMgICAgID0gZmFsc2U7ICAgIC8vIFRydWUgaWYgaW5wdXQgdGV4dCBmaWxlcyBhcmUgU2hpZnRfSklTIGVuY29kZWQuCisKKworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBCSUc1VG9vbCAgVGhpcyA9IG5ldyBCSUc1VG9vbCgpOworICAgICAgICBUaGlzLk1haW4oYXJncyk7CisgICAgfQorCisKKworICAgIHZvaWQgTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8vCisgICAgICAgIC8vICAgQ29tbWFuZCBMaW5lIE9wdGlvbiBIYW5kbGluZworICAgICAgICAvLworICAgICAgICBTdHJpbmcgICAgIGRpck5hbWUgID0gbnVsbDsKKyAgICAgICAgZm9yIChpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGFyZ3NbaV0uZXF1YWxzKCItZCIpKSB7CisgICAgICAgICAgICAgICAgb3B0aW9uX2QgPSB0cnVlOworICAgICAgICAgICAgICAgIG9wdGlvbl92ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5lcXVhbHMoIi1zamlzIikpIHsKKyAgICAgICAgICAgICAgICBzamlzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5yZWNvZ25pemVkIG9wdGlvbjogIiArIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXJOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkaXJOYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbnJlY29nbml6ZWQgb3B0aW9uOiAiICsgZGlyTmFtZSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkaXJOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGRpck5hbWUgPSAiLiI7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyAgVmVyaWZ5IHRoYXQgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgZXhpc3RzLgorICAgICAgICAvLworICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKGRpck5hbWUpOworICAgICAgICBpZiAoZGlyLmlzRGlyZWN0b3J5KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiXCIiICsgZGlyTmFtZSArICJcIiBpcyBub3QgYSBkaXJlY3RvcnkiKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgfQorICAgICAgICBwcm9jZXNzRGlyKGRpcik7CisgICAgICAgIAorICAgIH0KKworICAgIC8vCisgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20gYWxsIG9yZGluYXJ5IGZpbGVzIGluIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4KKyAgICAvLworICAgIHZvaWQgcHJvY2Vzc0RpcihGaWxlIGRpcikgeworICAgICAgICBpbnQgICAgICB0b3RhbE1iY3NDaGFycyAgPSAwOworICAgICAgICBIYXNoTWFwICBtID0gbmV3IEhhc2hNYXAoMTAwMDApOworICAgICAgICBpbnQgICAgICBpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkaXIuZ2V0TmFtZSgpKTsKKyAgICAgICAgRmlsZVtdIGZpbGVzID0gZGlyLmxpc3RGaWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsZXNbaV0uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplID0gaXMucmVhZChidWYpOworICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmaWxlc1tpXS5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBmaWxlU2l6ZSArICIgYnl0ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWRDaGFyIGljaGFyID0gbmV3IGl0ZXJhdGVkQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBpbnQgZmlsZUNoYXJzICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBmaWxlTWJjc0NoYXJzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVycnMgICAgICAgICAgPSAwOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0Q2hhcihpY2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY2hhci5lcnJvciA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlID4gMjU1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1iY3NDaGFycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTWJjc0NoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlIDw9IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgb2NjdXJlbmNlIHN0YXRpc3RpY3MgZm9yIHRoZSBzaW5nbGUgYnl0ZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gIEZyZXF1ZW5jeSBvZiBvY2N1cmVuY2Ugc3RhdGlzdGljcyBhcmUgYWNjdW11bGF0ZWQgaW4gYSBtYXAuCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAga2V5RWwgPSBuZXcgQ2hFbChpY2hhci5jaGFyVmFsdWUsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAgdmFsRWwgPSAoQ2hFbCltLmdldChrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsRWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleUVsLCBrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsRWwgPSBrZXlFbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbEVsLm9jY3VyZW5jZXMrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZUNoYXJzICAgICArICIgQ2hhcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZU1iY3NDaGFycyArICIgbWJjcyBDaGFycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBlcnJzICAgICAgICAgICsgIiBlcnJvcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uOiIgKyBlKTsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFdlJ3ZlIHByb2Nlc3NlZCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMuCisgICAgICAgIC8vICAgICBzb3J0IGFuZCBkdW1wIG91dCB0aGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MuCisgICAgICAgIC8vCisgICAgICAgIE9iamVjdCBbXSBlbmNvdW50ZXJlZENoYXJzID0gbS52YWx1ZXMoKS50b0FycmF5KCk7CisgICAgICAgIEFycmF5cy5zb3J0KGVuY291bnRlcmVkQ2hhcnMpOworICAgICAgICBpbnQgY3VtdWxhdGl2ZUNoYXJzID0gMDsKKyAgICAgICAgaW50IGN1bXVsYXRpdmVQZXJjZW50ID0gMDsKKyAgICAgICAgaWYgKG9wdGlvbl92KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiMgPGNoYXIgY29kZT4gPG9jY3VyZW5jZXM+ICA8Q3VtdWxhdGl2ZSAlPiIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZW5jb3VudGVyZWRDaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIENoRWwgYyA9IChDaEVsKWVuY291bnRlcmVkQ2hhcnNbaV07CisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZUNoYXJzICs9IGMub2NjdXJlbmNlczsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlUGVyY2VudCA9IGN1bXVsYXRpdmVDaGFycyoxMDAvdG90YWxNYmNzQ2hhcnM7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoYy5jaGFyQ29kZSkgKyAiICAgICAgICAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBjLm9jY3VyZW5jZXMgKyAiICAgICAgICAgIiArIGN1bXVsYXRpdmVQZXJjZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob3B0aW9uX2QpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgIE91dHB1dCB0aGUgbGlzdCBvZiBjaGFyYWN0ZXJzIGZvcm1hdHRlZCBmb3IgcGFzdGluZyBpbnRvIGEKKyAgICAgICAgICAgIC8vICAgICBKYXZhIHNvdXJjZSBjb2RlIGFycmF5IGluaXRpYWxpemVyLgorICAgICAgICAgICAgLy8gICAgIFJlc29ydCBpbnRvIG9yZGVyIGJhc2VkIG9uIHRoZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZSwgbm90CisgICAgICAgICAgICAvLyAgICAgIG9uIGZyZXF1ZW5jeSBvZiBvY2N1cmVuY2UuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgTGlzdCAgY2hhckxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDEwMCAmJiBjdW11bGF0aXZlUGVyY2VudDw1MDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hFbCBjID0gKENoRWwpZW5jb3VudGVyZWRDaGFyc1tpXTsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlQ2hhcnMgKz0gYy5vY2N1cmVuY2VzOworICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVQZXJjZW50ID0gY3VtdWxhdGl2ZUNoYXJzKjEwMC90b3RhbE1iY3NDaGFyczsKKyAgICAgICAgICAgICAgICBjaGFyTGlzdC5hZGQobmV3IEludGVnZXIoYy5jaGFyQ29kZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IFtdIHNvcnRlZENoYXJzID0gY2hhckxpc3QudG9BcnJheSgpOworICAgICAgICAgICAgQXJyYXlzLnNvcnQoc29ydGVkQ2hhcnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgeyIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8c29ydGVkQ2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoaSklMTAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgICAgICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBjcCA9ICgoSW50ZWdlcilzb3J0ZWRDaGFyc1tpXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8KKyAgICAvLyAgVGhpcyBpcyBhIGxpdHRsZSBjbGFzcyBjb250YWluaW5nIGEKKyAgICAvLyAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciB2YWx1ZSBhbmQgYW4gb2NjdXJlbmNlIGNvdW50IGZvciB0aGF0IGNoYXIuCisgICAgLy8gIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBrZXB0IGluIHRoZSBjb2xsZWN0aW9uIHRoYXQgYWNjdW11bGF0ZXMgc3RhdGlzdGljcworICAgIC8vCisgICAgLy8gIFdBUk5JTkc6ICB0aGlzIGNsYXNzJ3MgbmF0dXJhbCBvcmRlcmluZyAoZnJvbSBDb21wYXJhYmxlKSBhbmQgZXF1YWxzKCkKKyAgICAvLyAgICAgICAgICAgIGFyZSBpbmNvbnNpc3RlbnQuCisKKyAgICBzdGF0aWMgY2xhc3MgQ2hFbCBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICBpbnQgY2hhckNvZGU7CisgICAgICAgIGludCBvY2N1cmVuY2VzOworCisgICAgICAgIENoRWwoaW50IGMsIGludCBvKSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGM7CisgICAgICAgICAgICBvY2N1cmVuY2VzID0gbzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVxdWFscyBuZWVkcyB0byB3b3JrIHdpdGggYSBtYXAsIHdpdGggdGhlIGNoYXJDb2RlIGFzIHRoZSBrZXkuCisgICAgICAgIC8vICAgRm9yIGluc2VydGlvbi9sb29rdXAsIHdlIGNhcmUgYWJvdXQgdGhlIGNoYXIgY29kZSBvbmx5LCBub3QgdGhlIG9jY3VyZW5jZSBjb3VudC4KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgQ2hFbCBvID0gKENoRWwpb3RoZXI7CisgICAgICAgICAgICByZXR1cm4gby5jaGFyQ29kZSA9PSB0aGlzLmNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFzaGNvZGUgbmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGVxdWFscworICAgICAgICAvLyAgIFdlJ3JlIHVzaW5nIHRoaXMgaW4gYSBoYXNoTWFwIQorICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgdGhlIHJlc3VsdHMgYnkgZnJlcXVlbmN5IG9mIG9jY3VyZW5jZQorICAgICAgICAvLyAgIENvbXBhcmUgYmFja3dhcmRzLiAgV2Ugd2FudCBtb3N0IGZyZXF1ZW50IGNoYXJzIGZpcnN0LgorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIENoRWwgbyA9IChDaEVsKW90aGVyOworICAgICAgICAgICAgcmV0dXJuICh0aGlzLm9jY3VyZW5jZXM+IG8ub2NjdXJlbmNlcz8gLTEgOgorICAgICAgICAgICAgICAgICAgICh0aGlzLm9jY3VyZW5jZXM9PW8ub2NjdXJlbmNlcz8gIDAgOiAxKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vCisgICAgLy8gaXRlcmF0ZWRDaGFyIGlzIGNvcGllZCBhbmQgc2xpZ2h0bHkgaGFja2VkIGZyb20gdGhlIHNpbWlsYXIgY2Fsc3MgaW4gQ2hhcnNldFJlY29nX21iY3MKKyAgICAvLyAgICAgICAgICAgICAgUHVsbHMgb3V0IG9uZSBsb2dpY2FsIGNoYXIgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiBFVUMgZW5jb2RpbmcuCisgICAgLy8KKyAgICBjbGFzcyBpdGVyYXRlZENoYXIgeworICAgICAgICBpbnQgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsgICAgICAgICAgICAgLy8gVGhlIGNoYXIgdmFsdWUgaXMgYSB2YWx1ZSBmcm9tIHRoZSBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSXQncyBtZWFuaW5nIGlzIG5vdCB3ZWxsIGRlZmluZWQsIG90aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGlmZmVyZW50IGVuY29kaW5ncworICAgICAgICBpbnQgICAgICAgICAgICAgaW5kZXggICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworCisgICAgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOworICAgICAgICAgICAgaW5kZXggICAgID0gLTE7CisgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0Qnl0ZSgpIHsKKyAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZmlsZVNpemUpIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgYnl0ZVZhbHVlID0gKGludClidWZbbmV4dEluZGV4KytdICYgMHgwMGZmOworICAgICAgICAgICAgcmV0dXJuIGJ5dGVWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQpIHsKKyAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgIGludCBmaXJzdEJ5dGUgID0gMDsKKyAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworCisgICAgICAgIGJ1aWxkQ2hhcjogeworICAgICAgICAgICAgZmlyc3RCeXRlID0gaXQuY2hhclZhbHVlID0gaXQubmV4dEJ5dGUoKTsKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBpbnB1dCBkYXRhCisgICAgICAgICAgICAgICAgaXQuZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDAwODAgfHwKKyAgICAgICAgICAgICAgICAgICAgKHNqaXMgJiYgZmlyc3RCeXRlPj0weDAwYTAgJiYgZmlyc3RCeXRlPCAweDAwZTApIHx8CisgICAgICAgICAgICAgICAgICAgIChzamlzICYmIGZpcnN0Qnl0ZT49MHgwMGZkICYmIGZpcnN0Qnl0ZTw9MHgwMGZmKSkgeworICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisKKyAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgIDB4NDAgfHwKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID09IDB4MDA3ZiB8fAorICAgICAgICAgICAgICAgIHNlY29uZEJ5dGUgPT0gMHgwMGZmIHx8CisgICAgICAgICAgICAgICAgc2ppcyAmJiBzZWNvbmRCeXRlID49IDB4MDBmZCkgeworICAgICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpdC5lcnJvcikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgIiArIEludGVnZXIudG9IZXhTdHJpbmcoZmlyc3RCeXRlKSArICIgIiArIEludGVnZXIudG9IZXhTdHJpbmcoc2Vjb25kQnl0ZSkpOworICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9FVUNUb29sLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9tYmNzL0VVQ1Rvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmFmZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvbWJjcy9FVUNUb29sLmphdmEKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBldWNfdG9vbAorICoKKyAqICAgIFRoaXMgdG9vbCBwcm9kdWNlcyB0aGUgY2hhcmFjdGVyIHVzYWdlIGZyZXF1ZW5jeSBzdGF0aXN0aWNzIGZvciB0aGUgRVVDIGZhbWlseQorICogICAgb2YgY2hhcnNldHMsIGZvciB1c2UgYnkgdGhlIElDVSBjaGFyc2V0IGRldGVjdG9ycy4KKyAqCisgKiAgICB1c2FnZTogIGphdmEgZXVjX3Rvb2wgWy1kXSBbZGlyZWN0b3J5IHBhdGhdCisgKgorICogICAgICAgIC1kOiAgIFByb2R1Y2UgdGhlIGRhdGEgaW4gYSBmb3JtIHRvIGJlIGV4cG9ydGVkIHRvIHRoZSBJQ1UgaW1wbGVtZW50YXRpb24KKyAqICAgICAgICAgICAgICBEZWZhdWx0IGlzIHRvIHByb2R1Y2UgYW4gaW5mb3JtYXRpdmUgZHVtcC4KKyAqCisgKiAgICAgICAgZGlyZWN0b3J5IHBhdGgKKyAqICAgICAgICAgICAgICBTb3VyY2UgZGlyZWN0b3J5IGZvciB0aGUgZmlsZXMgdG8gYmUgYW5hbHl6ZWQuCisgKiAgICAgICAgICAgICAgRGVmYXVsdCBpcyB0aGUgY3VycmVudCBkaXJlY3RvcnkuCisgKiAgICAgICAgICAgICAgVGhlcmUgc2hvdWxkIGJlIHRocmVlIHN1YmRpcmVjdG9yaWVzIHVuZGVyIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LCBvbmUKKyAqICAgICAgICAgICAgICBlYWNoIGZvciBFVUNfSlAsIEVVQ19DTiBhbmQgRVVDX0tSLiAgV2l0aGluIGVhY2ggb2YgdGhlc2Ugc3ViZGlyZWN0b3JpZXMKKyAqICAgICAgICAgICAgICBzaG91bGQgYmUgdGV4dCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQubWJjczsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIEVVQ1Rvb2wgeworCisgICAgLy8gVGhlIGZpbGUgYnVmZmVyIGFuZCBmaWxlIGRhdGEgbGVuZ3RoIG5lZWQgdG8gYmUgb3V0IGluIGNsYXNzIG1lbWJlciB2YXJpYWJsZXMKKyAgICAvLyAgc28gdGhhdCB0aGUgY29kZSBsaWZ0ZWQgZnJvbSBjaGFyU2V0IGRldGVjdGlvbiBmb3Igc2Nhbm5pbmcgdGhlIG11bHRpLWJ5dGUgY2hhcnMKKyAgICAvLyAgY2FuIHNlZSB0aGVtIGNvbnZlbmllbnRseS4KKyAgICBieXRlIFtdICAgIGJ1ZiA9IG5ldyBieXRlWzEwMDAwMDBdOworICAgIGludCAgICAgICAgZmlsZVNpemU7CisKKyAgICBib29sZWFuICAgIG9wdGlvbl9kID0gZmFsc2U7ICAgIC8vIGRhdGEgb3B0aW9uLiAgUHJvZHVjZSBleHBvcnRhYmxlIGRhdGEKKyAgICBib29sZWFuICAgIG9wdGlvbl92ID0gdHJ1ZTsgICAgIC8vIHZlcmJvc2UgaW5mb3JtYWlvbmFsIG91dHB1dC4KKworCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIEVVQ1Rvb2wgIFRoaXMgPSBuZXcgRVVDVG9vbCgpOworICAgICAgICBUaGlzLk1haW4oYXJncyk7CisgICAgfQorCisKKworICAgIHZvaWQgTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8vCisgICAgICAgIC8vICAgQ29tbWFuZCBMaW5lIE9wdGlvbiBIYW5kbGluZworICAgICAgICAvLworICAgICAgICBTdHJpbmcgICAgIGRpck5hbWUgID0gIi4iOworICAgICAgICBmb3IgKGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5lcXVhbHMoIi1kIikpIHsKKyAgICAgICAgICAgICAgICBvcHRpb25fZCA9IHRydWU7CisgICAgICAgICAgICAgICAgb3B0aW9uX3YgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5yZWNvbmdpemVkIG9wdGlvbjogIiArIGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRpck5hbWUgPSBhcmdzW2ldOworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFZlcmlmeSB0aGF0IHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGV4aXN0cy4KKyAgICAgICAgLy8KKyAgICAgICAgRmlsZSBkaXIgPSBuZXcgRmlsZShkaXJOYW1lKTsKKyAgICAgICAgaWYgKGRpci5pc0RpcmVjdG9yeSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlwiIiArIGRpck5hbWUgKyAiXCIgaXMgbm90IGEgZGlyZWN0b3J5Iik7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgtMSk7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyAgRG8gZWFjaCBzdWJkaXJlY3Rvcnkgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuICBUaGVyZSBzaG91bGQgYmUKKyAgICAgICAgLy8gICAgb25lIHBlciBlYWNoIGVuY29kaW5nIC0gZXVjLWtyLCBldWMtY24sIGV1Yy1qcAorICAgICAgICAvLworICAgICAgICBGaWxlW10gZGlycyAgPSBkaXIubGlzdEZpbGVzKCk7CisgICAgICAgIGZvciAoaT0wOyBpPGRpcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChkaXJzW2ldLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtID0gZGlyc1tpXS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKG5hbS5lcXVhbHNJZ25vcmVDYXNlKCJDVlMiKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvY2Vzc0RpcihkaXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vCisgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20gYWxsIG9yZGluYXJ5IGZpbGVzIGluIGEgc3BlY2lmaWVkIGRpcmVjdG9yeS4KKyAgICAvLworICAgIHZvaWQgcHJvY2Vzc0RpcihGaWxlIGRpcikgeworICAgICAgICBpbnQgICAgICB0b3RhbE1iY3NDaGFycyAgPSAwOworICAgICAgICBIYXNoTWFwICBtID0gbmV3IEhhc2hNYXAoMTAwMDApOworICAgICAgICBpbnQgICAgICBpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkaXIuZ2V0TmFtZSgpKTsKKyAgICAgICAgRmlsZVtdIGZpbGVzID0gZGlyLmxpc3RGaWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsZXNbaV0uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplID0gaXMucmVhZChidWYpOworICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmaWxlc1tpXS5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBmaWxlU2l6ZSArICIgYnl0ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWRDaGFyIGljaGFyID0gbmV3IGl0ZXJhdGVkQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBpbnQgZmlsZUNoYXJzICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBmaWxlTWJjc0NoYXJzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVycnMgICAgICAgICAgPSAwOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0Q2hhcihpY2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpY2hhci5lcnJvciA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlID4gMjU1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1iY3NDaGFycysrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTWJjc0NoYXJzKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWNoYXIuY2hhclZhbHVlIDw9IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgb2NjdXJlbmNlIHN0YXRpc3RpY3MgZm9yIHRoZSBzaW5nbGUgYnl0ZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gIEZyZXF1ZW5jeSBvZiBvY2N1cmVuY2Ugc3RhdGlzdGljcyBhcmUgYWNjdW11bGF0ZWQgaW4gYSBtYXAuCisgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAga2V5RWwgPSBuZXcgQ2hFbChpY2hhci5jaGFyVmFsdWUsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgQ2hFbCAgdmFsRWwgPSAoQ2hFbCltLmdldChrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsRWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleUVsLCBrZXlFbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsRWwgPSBrZXlFbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbEVsLm9jY3VyZW5jZXMrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uX3YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZUNoYXJzICAgICArICIgQ2hhcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAiICsgZmlsZU1iY3NDaGFycyArICIgbWJjcyBDaGFycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBlcnJzICAgICAgICAgICsgIiBlcnJvcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uOiIgKyBlKTsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIFdlJ3ZlIHByb2Nlc3NlZCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMuCisgICAgICAgIC8vICAgICBzb3J0IGFuZCBkdW1wIG91dCB0aGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MuCisgICAgICAgIC8vCisgICAgICAgIE9iamVjdCBbXSBlbmNvdW50ZXJlZENoYXJzID0gbS52YWx1ZXMoKS50b0FycmF5KCk7CisgICAgICAgIEFycmF5cy5zb3J0KGVuY291bnRlcmVkQ2hhcnMpOworICAgICAgICBpbnQgY3VtdWxhdGl2ZUNoYXJzID0gMDsKKyAgICAgICAgaW50IGN1bXVsYXRpdmVQZXJjZW50ID0gMDsKKyAgICAgICAgaWYgKG9wdGlvbl92KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiMgPGNoYXIgY29kZT4gPG9jY3VyZW5jZXM+ICA8Q3VtdWxhdGl2ZSAlPiIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZW5jb3VudGVyZWRDaGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIENoRWwgYyA9IChDaEVsKWVuY291bnRlcmVkQ2hhcnNbaV07CisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZUNoYXJzICs9IGMub2NjdXJlbmNlczsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlUGVyY2VudCA9IGN1bXVsYXRpdmVDaGFycyoxMDAvdG90YWxNYmNzQ2hhcnM7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoYy5jaGFyQ29kZSkgKyAiICAgICAgICAiIAorICAgICAgICAgICAgICAgICAgICAgICAgKyBjLm9jY3VyZW5jZXMgKyAiICAgICAgICAgIiArIGN1bXVsYXRpdmVQZXJjZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob3B0aW9uX2QpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgIE91dHB1dCB0aGUgbGlzdCBvZiBjaGFyYWN0ZXJzIGZvcm1hdHRlZCBmb3IgcGFzdGluZyBpbnRvIGEKKyAgICAgICAgICAgIC8vICAgICBKYXZhIHNvdXJjZSBjb2RlIGFycmF5IGluaXRpYWxpemVyLgorICAgICAgICAgICAgLy8gICAgIFJlc29ydCBpbnRvIG9yZGVyIGJhc2VkIG9uIHRoZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZSwgbm90CisgICAgICAgICAgICAvLyAgICAgIG9uIGZyZXF1ZW5jeSBvZiBvY2N1cmVuY2UuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgTGlzdCAgY2hhckxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDEwMCAmJiBjdW11bGF0aXZlUGVyY2VudDw1MDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hFbCBjID0gKENoRWwpZW5jb3VudGVyZWRDaGFyc1tpXTsKKyAgICAgICAgICAgICAgICBjdW11bGF0aXZlQ2hhcnMgKz0gYy5vY2N1cmVuY2VzOworICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVQZXJjZW50ID0gY3VtdWxhdGl2ZUNoYXJzKjEwMC90b3RhbE1iY3NDaGFyczsKKyAgICAgICAgICAgICAgICBjaGFyTGlzdC5hZGQobmV3IEludGVnZXIoYy5jaGFyQ29kZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IFtdIHNvcnRlZENoYXJzID0gY2hhckxpc3QudG9BcnJheSgpOworICAgICAgICAgICAgQXJyYXlzLnNvcnQoc29ydGVkQ2hhcnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgeyIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8c29ydGVkQ2hhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoaSklMTAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgICAgICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBjcCA9ICgoSW50ZWdlcilzb3J0ZWRDaGFyc1tpXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8KKyAgICAvLyAgVGhpcyBpcyBhIGxpdHRsZSBjbGFzcyBjb250YWluaW5nIGEKKyAgICAvLyAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciB2YWx1ZSBhbmQgYW4gb2NjdXJlbmNlIGNvdW50IGZvciB0aGF0IGNoYXIuCisgICAgLy8gIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBrZXB0IGluIHRoZSBjb2xsZWN0aW9uIHRoYXQgYWNjdW11bGF0ZXMgc3RhdGlzdGljcworICAgIC8vCisgICAgLy8gIFdBUk5JTkc6ICB0aGlzIGNsYXNzJ3MgbmF0dXJhbCBvcmRlcmluZyAoZnJvbSBDb21wYXJhYmxlKSBhbmQgZXF1YWxzKCkKKyAgICAvLyAgICAgICAgICAgIGFyZSBpbmNvbnNpc3RlbnQuCisKKyAgICBzdGF0aWMgY2xhc3MgQ2hFbCBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICBpbnQgY2hhckNvZGU7CisgICAgICAgIGludCBvY2N1cmVuY2VzOworCisgICAgICAgIENoRWwoaW50IGMsIGludCBvKSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGM7CisgICAgICAgICAgICBvY2N1cmVuY2VzID0gbzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVxdWFscyBuZWVkcyB0byB3b3JrIHdpdGggYSBtYXAsIHdpdGggdGhlIGNoYXJDb2RlIGFzIHRoZSBrZXkuCisgICAgICAgIC8vICAgRm9yIGluc2VydGlvbi9sb29rdXAsIHdlIGNhcmUgYWJvdXQgdGhlIGNoYXIgY29kZSBvbmx5LCBub3QgdGhlIG9jY3VyZW5jZSBjb3VudC4KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgQ2hFbCBvID0gKENoRWwpb3RoZXI7CisgICAgICAgICAgICByZXR1cm4gby5jaGFyQ29kZSA9PSB0aGlzLmNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFzaGNvZGUgbmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGVxdWFscworICAgICAgICAvLyAgIFdlJ3JlIHVzaW5nIHRoaXMgaW4gYSBoYXNoTWFwIQorICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJDb2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgdGhlIHJlc3VsdHMgYnkgZnJlcXVlbmN5IG9mIG9jY3VyZW5jZQorICAgICAgICAvLyAgIENvbXBhcmUgYmFja3dhcmRzLiAgV2Ugd2FudCBtb3N0IGZyZXF1ZW50IGNoYXJzIGZpcnN0LgorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIENoRWwgbyA9IChDaEVsKW90aGVyOworICAgICAgICAgICAgcmV0dXJuICh0aGlzLm9jY3VyZW5jZXM+IG8ub2NjdXJlbmNlcz8gLTEgOgorICAgICAgICAgICAgICAgICAgICh0aGlzLm9jY3VyZW5jZXM9PW8ub2NjdXJlbmNlcz8gIDAgOiAxKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vCisgICAgLy8gaXRlcmF0ZWRDaGFyIGlzIGNvcGllZCBhbmQgc2xpZ2h0bHkgaGFja2VkIGZyb20gdGhlIHNpbWlsYXIgY2Fsc3MgaW4gQ2hhcnNldFJlY29nX21iY3MKKyAgICAvLyAgICAgICAgICAgICAgUHVsbHMgb3V0IG9uZSBsb2dpY2FsIGNoYXIgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiBFVUMgZW5jb2RpbmcuCisgICAgLy8KKyAgICBjbGFzcyBpdGVyYXRlZENoYXIgeworICAgICAgICBpbnQgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsgICAgICAgICAgICAgLy8gVGhlIGNoYXIgdmFsdWUgaXMgYSB2YWx1ZSBmcm9tIHRoZSBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSXQncyBtZWFuaW5nIGlzIG5vdCB3ZWxsIGRlZmluZWQsIG90aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGlmZmVyZW50IGVuY29kaW5ncworICAgICAgICBpbnQgICAgICAgICAgICAgaW5kZXggICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworCisgICAgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOworICAgICAgICAgICAgaW5kZXggICAgID0gLTE7CisgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0Qnl0ZSgpIHsKKyAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZmlsZVNpemUpIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgYnl0ZVZhbHVlID0gKGludClidWZbbmV4dEluZGV4KytdICYgMHgwMGZmOworICAgICAgICAgICAgcmV0dXJuIGJ5dGVWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQpIHsKKyAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgIGludCBmaXJzdEJ5dGUgID0gMDsKKyAgICAgICAgaW50IHNlY29uZEJ5dGUgPSAwOworICAgICAgICBpbnQgdGhpcmRCeXRlICA9IDA7CisgICAgICAgIGludCBmb3VydGhCeXRlID0gMDsKKworICAgICAgICBidWlsZENoYXI6IHsKKyAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IGl0LmNoYXJWYWx1ZSA9IGl0Lm5leHRCeXRlKCk7CisgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIFJhbiBvZmYgdGhlIGVuZCBvZiB0aGUgaW5wdXQgZGF0YQorICAgICAgICAgICAgICAgIGl0LmRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg4ZCkgeworICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPj0gMHhBMSAmJiBmaXJzdEJ5dGUgPD0gMHhmZSkgeworICAgICAgICAgICAgICAgIC8vIFR3byBieXRlIENoYXIKKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGUpIHsKKyAgICAgICAgICAgICAgICAvLyBDb2RlIFNldCAyLgorICAgICAgICAgICAgICAgIC8vICAgSW4gRVVDLUpQLCB0b3RhbCBjaGFyIHNpemUgaXMgMiBieXRlcywgb25seSBvbmUgYnl0ZSBvZiBhY3R1YWwgY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1UVywgdG90YWwgY2hhciBzaXplIGlzIDQgYnl0ZXMsIHRocmVlIGJ5dGVzIGNvbnRyaWJ1dGUgdG8gY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IHdoaWNoIHdlJ3ZlIGdvdC4KKyAgICAgICAgICAgICAgICAvLyBUcmVhdCBpdCBsaWtlIEVVQy1KUC4gIElmIHRoZSBkYXRhIHJlYWxseSB3YXMgRVVDLVRXLCB0aGUgZm9sbG93aW5nIHR3bworICAgICAgICAgICAgICAgIC8vICAgYnl0ZXMgd2lsbCBsb29rIGxpa2UgYSB3ZWxsIGZvcm1lZCAyIGJ5dGUgY2hhci4KKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gMHg4ZikgeworICAgICAgICAgICAgICAgIC8vIENvZGUgc2V0IDMuCisgICAgICAgICAgICAgICAgLy8gVGhyZWUgYnl0ZSB0b3RhbCBjaGFyIHNpemUsIHR3byBieXRlcyBvZiBhY3R1YWwgY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICB0aGlyZEJ5dGUgICAgPSBpdC5uZXh0Qnl0ZSgpOworICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgOCkgfCB0aGlyZEJ5dGU7CisgICAgICAgICAgICAgICAgaWYgKHRoaXJkQnl0ZSA8IDB4YTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGlmIChpdC5lcnJvcikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciAiICsgSW50ZWdlci50b0hleFN0cmluZyhmaXJzdEJ5dGUpICsgIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzZWNvbmRCeXRlKQorICAgICAgICAgICAgICAgICAgICArICIgIiArICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRoaXJkQnl0ZSkgKyAiICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGZvdXJ0aEJ5dGUpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgIH0KK30KKworCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9DaGVja2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0NoZWNrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2EzMGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9DaGVja2VyLmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzICAgICAgICAgICAgKgorICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jaGFyc2V0ZGV0LnNiY3M7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBDaGVja2VyIGltcGxlbWVudHMgTkdyYW1QYXJzZXIuTkdyYW1QYXJzZXJDbGllbnQKK3sKKyAgICBwcml2YXRlIE5HcmFtTGlzdCBuZ3JhbXM7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxOR3JhbXM7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxIaXRzOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGxhbmd1YWdlOworICAgIHByaXZhdGUgU3RyaW5nIGVuY29kaW5nOworICAgIAorICAgIHByaXZhdGUgaW50W10gaGlzdG9ncmFtOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJVRkZFUl9TSVpFID0gMTAyNDsKKyAgICAKKyAgICBwcml2YXRlIGNoYXJbXSBidWZmZXI7CisgICAgcHJpdmF0ZSBpbnQgYnVmSW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgYnVmTWF4OworCisgICAgcHJpdmF0ZSBOR3JhbVBhcnNlciBwYXJzZXI7CisKKyAgICAvKioKKyAgICAgKiBUT0RPIFRoaXMgc2hvdWxkIHRha2UgY3VtdWxhdGl2ZSBwZXJjZW50IGFuZCB0aGUgbmFtZS4uLgorICAgICAqLworICAgIHB1YmxpYyBDaGVja2VyKE5HcmFtTGlzdCBsaXN0LCBJbnB1dEZpbGUgZGF0YUZpbGUpCisgICAgeworICAgICAgICBuZ3JhbXMgPSBsaXN0OworICAgICAgICBuZ3JhbXMuc2V0TWFwcGVyKGRhdGFGaWxlKTsKKyAgICAgICAgCisgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2VOYW1lKGRhdGFGaWxlLmdldEZpbGVuYW1lKCkpOworICAgICAgICBlbmNvZGluZyA9IGRhdGFGaWxlLmdldEVuY29kaW5nKCk7CisgICAgICAgIAorICAgICAgICBidWZmZXIgPSBuZXcgY2hhcltCVUZGRVJfU0laRV07CisgICAgICAgIHBhcnNlciA9IG5ldyBOR3JhbVBhcnNlcih0aGlzKTsKKyAgICAgICAgcmVzZXRDb3VudHMoKTsKKyAgICAgICAgCisgICAgICAgIGhpc3RvZ3JhbSA9IG5ldyBpbnRbMTAwXTsKKyAgICAgICAgcmVzZXRIaXN0b2dyYW0oKTsKKyAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVOR3JhbShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgTkdyYW1MaXN0Lk5HcmFtIG5ncmFtID0gbmdyYW1zLmdldChrZXkpOworICAgICAgICAKKyAgICAgICAgdG90YWxOR3JhbXMgKz0gMTsKKyAgICAgICAgCisgICAgICAgIGlmIChuZ3JhbSAhPSBudWxsKSB7CisgICAgICAgICAgICB0b3RhbEhpdHMgKz0gMTsKKyAgICAgICAgICAgIC8vbmdyYW0uaW5jcmVtZW50UmVmQ291bnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVzZXRDb3VudHMoKQorICAgIHsKKyAgICAgICAgYnVmSW5kZXggPSAwOworICAgICAgICB0b3RhbE5HcmFtcyA9IHRvdGFsSGl0cyA9IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXNldEhpc3RvZ3JhbSgpCisgICAgeworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMTAwOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGhpc3RvZ3JhbVtpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZXhjZXB0aW9uRXJyb3IoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImlvRXJyb3I6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBsYW5ndWFnZU5hbWUoU3RyaW5nIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lLnN1YnN0cmluZygwLCBmaWxlbmFtZS5pbmRleE9mKCcuJykpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gbmV4dEJ1ZmZlcihJbnB1dEZpbGUgaW5wdXRGaWxlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJ1Zk1heCA9IGlucHV0RmlsZS5yZWFkKGJ1ZmZlcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBidWZNYXggPSAtMTsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkVycm9yKGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGJ1ZkluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZNYXggPj0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQnVmZmVyKCkKKyAgICB7CisgICAgICAgIHJlc2V0Q291bnRzKCk7CisgICAgICAgIHBhcnNlci5yZXNldCgpOworICAgICAgICBwYXJzZXIucGFyc2UoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGNoYXIgbmV4dENoYXIoKQorICAgIHsKKyAgICAgICAgaWYgKGJ1ZkluZGV4ID49IGJ1Zk1heCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZmZXJbYnVmSW5kZXgrK107CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRNYXBwZXIoSW5wdXRGaWxlIGZpbGUpCisgICAgeworICAgICAgICBuZ3JhbXMuc2V0TWFwcGVyKGZpbGUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGNoZWNrQnVmZmVyKGNoYXJbXSB0aGVCdWZmZXIsIGludCBjaGFyQ291bnQpCisgICAgeworICAgICAgICBidWZmZXIgPSB0aGVCdWZmZXI7CisgICAgICAgIGJ1Zk1heCA9IGNoYXJDb3VudDsKKyAgICAgICAgCisgICAgICAgIHBhcnNlQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdG90YWxIaXRzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGVjayhJbnB1dEZpbGUgZGF0YUZpbGUpCisgICAgeworICAgICAgICBpbnQgbWluSGlzdCA9IDEwMSwgbWF4SGlzdCA9IC0xOworICAgICAgICAKKyAgICAgICAgZGF0YUZpbGUub3BlbigpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGRhdGFGaWxlbmFtZSA9IGRhdGFGaWxlLmdldEZpbGVuYW1lKCk7CisgICAgICAgIFN0cmluZyBmaWxlRW5jb2RpbmcgPSBkYXRhRmlsZS5nZXRFbmNvZGluZygpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxhbmd1YWdlICsgIigiICsgZW5jb2RpbmcgKyAiKSBzdGF0cywgIiArIGxhbmd1YWdlTmFtZShkYXRhRmlsZW5hbWUpICsgIigiICsgZmlsZUVuY29kaW5nICsgIikgZGF0YToiKTsKKyAgICAgICAgCisgICAgICAgIHNldE1hcHBlcihkYXRhRmlsZSk7CisgICAgICAgIHJlc2V0SGlzdG9ncmFtKCk7CisKKyAgICAgICAgd2hpbGUgKG5leHRCdWZmZXIoZGF0YUZpbGUpKSB7CisgICAgICAgICAgICBwYXJzZUJ1ZmZlcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgcGVyY2VudEhpdHMgPSAoZG91YmxlKSB0b3RhbEhpdHMgLyB0b3RhbE5HcmFtcyAqIDEwMC4wOworICAgICAgICAgICAgaW50IHBoID0gKGludCkgcGVyY2VudEhpdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwaCA8IG1pbkhpc3QpIHsKKyAgICAgICAgICAgICAgICBtaW5IaXN0ID0gcGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwaCA+IG1heEhpc3QpIHsKKyAgICAgICAgICAgICAgICBtYXhIaXN0ID0gcGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGhpc3RvZ3JhbVtwaF0gKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGludCBwaCA9IG1pbkhpc3Q7IHBoIDw9IG1heEhpc3Q7IHBoICs9IDEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwaCArICJcdCIgKyBoaXN0b2dyYW1bcGhdKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBkYXRhRmlsZS5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvSW5wdXRGaWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0lucHV0RmlsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZDk3M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0lucHV0RmlsZS5qYXZhCkBAIC0wLDAgKzEsMTc1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5zYmNzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcmFjdGVyQ29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXREZWNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldEVuY29kZXI7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5Db2RpbmdFcnJvckFjdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIElucHV0RmlsZSBpbXBsZW1lbnRzIE5HcmFtTGlzdC5OR3JhbUtleU1hcHBlcgoreworCisgICAgcHJpdmF0ZSBGaWxlIGZpbGU7CisgICAgcHJpdmF0ZSBGaWxlSW5wdXRTdHJlYW0gZmlsZVN0cmVhbTsKKyAgICBwcml2YXRlIElucHV0U3RyZWFtUmVhZGVyIGlucHV0U3RyZWFtOworCisgICAgcHJpdmF0ZSBDaGFyc2V0IGNoYXJzZXQ7CisgICAgcHJpdmF0ZSBDaGFyc2V0RGVjb2RlciBkZWNvZGVyOworICAgIHByaXZhdGUgQ2hhcnNldEVuY29kZXIgZW5jb2RlcjsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gdmlzdWFsT3JkZXI7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGV4Y2VwdGlvbkVycm9yKEV4Y2VwdGlvbiBlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJpb0Vycm9yOiAiICsgZS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgSW5wdXRGaWxlKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nLCBib29sZWFuIHZpc3VhbCkKKyAgICB7CisgICAgICAgIGZpbGUgPSBuZXcgRmlsZShmaWxlbmFtZSk7CisgICAgICAgIHNldEVuY29kaW5nKGVuY29kaW5nKTsKKyAgICAgICAgdmlzdWFsT3JkZXIgPSB2aXN1YWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIG9wZW4oKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOyAgICAgICAgICAKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGVTdHJlYW0sICJVVEY4Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleGNlcHRpb25FcnJvcihlKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgZmlsZVN0cmVhbS5jbG9zZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgcmVhbGx5IGNhcmUgaWYgdGhpcyBmYWlscy4uLgorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmlsZW5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbGUuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhcmVudCgpCisgICAgeworICAgICAgICByZXR1cm4gZmlsZS5nZXRQYXJlbnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWxlLmdldFBhdGgoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCByZWFkKGNoYXJbXSBidWZmZXIpCisgICAgeworICAgICAgICBpbnQgY2hhcnNSZWFkID0gLTE7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY2hhcnNSZWFkID0gaW5wdXRTdHJlYW0ucmVhZChidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uRXJyb3IoZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjaGFyc1JlYWQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldEVuY29kaW5nKFN0cmluZyBlbmNvZGluZykKKyAgICB7CisgICAgICAgIGNoYXJzZXQgPSBDaGFyc2V0LmZvck5hbWUoZW5jb2RpbmcpOworICAgICAgICBkZWNvZGVyID0gY2hhcnNldC5uZXdEZWNvZGVyKCk7CisgICAgICAgIGVuY29kZXIgPSBjaGFyc2V0Lm5ld0VuY29kZXIoKTsKKyAgICAgICAgCisgICAgICAgIGVuY29kZXIub25Vbm1hcHBhYmxlQ2hhcmFjdGVyKENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICBlbmNvZGVyLm9uTWFsZm9ybWVkSW5wdXQoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgIAorICAgICAgICBkZWNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICAgICAgZGVjb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEVuY29kaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjaGFyc2V0LmRpc3BsYXlOYW1lKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGdldFZpc3VhbE9yZGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB2aXN1YWxPcmRlcjsKKyAgICB9CisgICAgCisgICAgcHVibGljIE9iamVjdCBtYXBLZXkoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIGJ5dGVbXSBieXRlcyA9IGVuY29kZShrZXkudG9DaGFyQXJyYXkoKSk7CisgICAgICAgIGludCBsZW5ndGggICA9IGtleS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHZhbHVlICAgID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgYiA9IDA7IGIgPCBsZW5ndGg7IGIgKz0gMSkgeworICAgICAgICAgICAgdmFsdWUgPDw9IDg7CisgICAgICAgICAgICB2YWx1ZSArPSAoYnl0ZXNbYl0gJiAweEZGKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW50ZWdlcih2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZW5jb2RlKGNoYXJbXSBjaGFycykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICAgPSBjaGFycy5sZW5ndGg7CisgICAgICAgIENoYXJCdWZmZXIgY2IgPSBDaGFyQnVmZmVyLndyYXAoY2hhcnMpOworICAgICAgICBCeXRlQnVmZmVyIGJiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJiID0gZW5jb2Rlci5lbmNvZGUoY2IpOworICAgICAgICB9IGNhdGNoIChDaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgZXhwZWN0IHRvIGdldCBhbnkgZXhjZXB0aW9ucyBpbiBub3JtYWwgdXNhZ2UuLi4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJiLmFycmF5KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjaGFyW10gZGVjb2RlKGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICAgPSBieXRlcy5sZW5ndGg7CisgICAgICAgIEJ5dGVCdWZmZXIgYmIgPSBCeXRlQnVmZmVyLndyYXAoYnl0ZXMpOworICAgICAgICBDaGFyQnVmZmVyIGNiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNiID0gZGVjb2Rlci5kZWNvZGUoYmIpOworICAgICAgICB9IGNhdGNoIChDaGFyYWN0ZXJDb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZG9uJ3QgZXhwZWN0IHRvIGdldCBhbnkgZXhjZXB0aW9ucyBpbiBub3JtYWwgdXNhZ2UuLi4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2IuYXJyYXkoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtTGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbUxpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjg1ODQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbUxpc3QuamF2YQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgICAgICAgICAgICAqCisgKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgTkdyYW1MaXN0Cit7CisgICAgcHVibGljIGludGVyZmFjZSBOR3JhbUtleU1hcHBlcgorICAgIHsKKyAgICAgICAgT2JqZWN0IG1hcEtleShTdHJpbmcga2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBOR3JhbSBpbXBsZW1lbnRzIENvbXBhcmFibGUKKyAgICB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlOworICAgICAgICBwcml2YXRlIGludCByZWZDb3VudDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBOR3JhbShTdHJpbmcgdGhlVmFsdWUsIGludCB0aGVSZWZDb3VudCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFsdWUgICAgPSB0aGVWYWx1ZTsKKyAgICAgICAgICAgIHJlZkNvdW50ID0gdGhlUmVmQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBOR3JhbShTdHJpbmcgdGhlVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXModGhlVmFsdWUsIDEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW0oTkdyYW0gb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMob3RoZXIuZ2V0VmFsdWUoKSwgb3RoZXIuZ2V0UmVmQ291bnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0VmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0UmVmQ291bnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVmQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIGluY3JlbWVudFJlZkNvdW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVmQ291bnQgKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTm90ZTogVGhpcyBtYWtlcyBoaWdoZXIgcmVmQ291bnRzIGNvbWUgKmJlZm9yZSogbG93ZXIgcmVmQ291bnRzLi4uCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKQorICAgICAgICB7CisgICAgICAgICAgICBOR3JhbSBuZyA9IChOR3JhbSkgbzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG5nLmdldFJlZkNvdW50KCkgLSByZWZDb3VudDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVHJlZU1hcCBuZ3JhbXM7CisgICAgcHJvdGVjdGVkIGludCB0b3RhbE5HcmFtczsKKyAgICBwcm90ZWN0ZWQgaW50IHVuaXF1ZU5HcmFtczsKKworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgTl9HUkFNX1NJWkUgPSAzOworICAgIAorICAgIHByaXZhdGUgTkdyYW1LZXlNYXBwZXIga2V5TWFwcGVyOworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIE5HcmFtTGlzdChOR3JhbUtleU1hcHBlciB0aGVNYXBwZXIpCisgICAgeworICAgICAgICBrZXlNYXBwZXIgPSB0aGVNYXBwZXI7CisgICAgICAgIAorICAgICAgICBuZ3JhbXMgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICB0b3RhbE5HcmFtcyA9IHVuaXF1ZU5HcmFtcyA9IDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldE1hcHBlcihOR3JhbUtleU1hcHBlciBuR3JhbUtleU1hcHBlcikKKyAgICB7CisgICAgICAgIGtleU1hcHBlciA9IG5HcmFtS2V5TWFwcGVyOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTkdyYW0gZ2V0KE9iamVjdCBtYXBwZWRLZXkpCisgICAgeworICAgICAgICByZXR1cm4gKE5HcmFtKSBuZ3JhbXMuZ2V0KG1hcHBlZEtleSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBOR3JhbSBnZXQoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIE9iamVjdCBtYXBwZWRLZXkgPSBrZXlNYXBwZXIubWFwS2V5KGtleSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0KG1hcHBlZEtleSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgT2JqZWN0IG1hcHBlZEtleSA9IGtleU1hcHBlci5tYXBLZXkoa2V5KTsKKyAgICAgICAgTkdyYW0gbmdyYW0gPSBnZXQobWFwcGVkS2V5KTsKKyAgICAgICAgCisgICAgICAgIHRvdGFsTkdyYW1zICs9IDE7CisgICAgICAgIAorICAgICAgICBpZiAobmdyYW0gPT0gbnVsbCkgeworICAgICAgICAgICAgdW5pcXVlTkdyYW1zICs9IDE7CisgICAgICAgICAgICBuZ3JhbXMucHV0KG1hcHBlZEtleSwgbmV3IE5HcmFtKGtleSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbmdyYW0uaW5jcmVtZW50UmVmQ291bnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ncmFtcy52YWx1ZXMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxlY3Rpb24ga2V5cygpCisgICAgeworICAgICAgICByZXR1cm4gbmdyYW1zLmtleVNldCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFRvdGFsTkdyYW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0b3RhbE5HcmFtczsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRVbmlxdWVOR3JhbXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVuaXF1ZU5HcmFtczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtUGFyc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmN2IzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvTkdyYW1QYXJzZXIuamF2YQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIE5HcmFtUGFyc2VyCit7CisKKyAgICBwdWJsaWMgaW50ZXJmYWNlIE5HcmFtUGFyc2VyQ2xpZW50CisgICAgeworICAgICAgICBjaGFyIG5leHRDaGFyKCk7CisgICAgICAgIHZvaWQgaGFuZGxlTkdyYW0oU3RyaW5nIGtleSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX05VTEwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX0FEREMgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBX0FERFMgPSAyOworICAgIAorICAgIC8qCisgICAgICogQ2hhcmFjdGVyIGNsYXNzZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDX0lHTk9SRSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ19MRVRURVIgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENfUFVOQ1QgID0gMjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU19TVEFSVCAgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTX0xFVFRFUiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNfUFVOQ1QgID0gMjsKKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdGF0ZUVudHJ5CisgICAgeworICAgICAgICBwcml2YXRlIGludCBuZXdTdGF0ZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgYWN0aW9uOworICAgICAgICAKKyAgICAgICAgU3RhdGVFbnRyeShpbnQgdGhlU3RhdGUsIGludCB0aGVBY3Rpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ld1N0YXRlID0gdGhlU3RhdGU7CisgICAgICAgICAgICBhY3Rpb24gICA9IHRoZUFjdGlvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXROZXdTdGF0ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRBY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWN0aW9uOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RhdGVFbnRyeVtdW10gc3RhdGVUYWJsZSA9IHsKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX1NUQVJULCAgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX0FERFMpfSwKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX0xFVFRFUiwgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX0FERFMpfSwKKyAgICAgICAgICAgIHtuZXcgU3RhdGVFbnRyeShTX1BVTkNULCAgQV9OVUxMKSwgbmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfQUREQyksIG5ldyBTdGF0ZUVudHJ5KFNfUFVOQ1QsICBBX05VTEwpfQorICAgIH07CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IE5fR1JBTV9TSVpFID0gMzsKKyAgICAKKyAgICBwcml2YXRlIGNoYXJbXSBsZXR0ZXJzID0gbmV3IGNoYXJbTl9HUkFNX1NJWkVdOworICAgIHByaXZhdGUgaW50IGxldHRlckNvdW50OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgbGV0dGVyU2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6bGV0dGVyOl0iKTsKKworICAgIHByaXZhdGUgTkdyYW1QYXJzZXJDbGllbnQgY2xpZW50OworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIE5HcmFtUGFyc2VyKE5HcmFtUGFyc2VyQ2xpZW50IHRoZUNsaWVudCkKKyAgICB7CisgICAgICAgIGNsaWVudCA9IHRoZUNsaWVudDsKKyAgICAgICAgbGV0dGVyQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRDbGllbnQoTkdyYW1QYXJzZXJDbGllbnQgdGhlQ2xpZW50KQorICAgIHsKKyAgICAgICAgY2xpZW50ID0gdGhlQ2xpZW50OworICAgIH0KKyAgICAKKyAgICAvLyBUT0RPIElzIHRoaXMgZ29vZCBlbm91Z2gsIG9yIGFyZSB0aGVyZSBvdGhlciBDX0lHTk9SRSBjaGFyYWN0ZXJzPworICAgIC8vIFRPRE8gQ291bGQgdGhpcyBtYWtlIExhdGluIGxldHRlcnMgQ19QVU5DVCBmb3Igbm9uLUxhdGluIHNjcmlwdHM/CisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckNsYXNzKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPT0gJ1wnJyB8fCBjaCA9PSAnXHVGRUZGJykgeworICAgICAgICAgICAgcmV0dXJuIENfSUdOT1JFOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobGV0dGVyU2V0LmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgcmV0dXJuIENfTEVUVEVSOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gQ19QVU5DVDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbGV0dGVyQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRMZXR0ZXIoY2hhciBsZXR0ZXIpCisgICAgeworICAgICAgICAvLyBzb21ld2hhdCBjbGV2ZXIgc3R1ZmYgZ29lcyBoZXJlLi4uICAgICAgICAKKyAgICAgICAgbGV0dGVyc1tsZXR0ZXJDb3VudCsrXSA9IGxldHRlcjsKKyAgICAgICAgCisgICAgICAgIGlmIChsZXR0ZXJDb3VudCA+PSBOX0dSQU1fU0laRSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG5ldyBTdHJpbmcobGV0dGVycyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsaWVudC5oYW5kbGVOR3JhbShrZXkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsZXR0ZXJDb3VudCA9IE5fR1JBTV9TSVpFIC0gMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGV0dGVyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGxldHRlcnNbaV0gPSBsZXR0ZXJzW2kgKyAxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwYXJzZSgpCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgc3RhdGUgPSAwOworCisgICAgICAgIC8vIHRoaXMgaXMgd2hlcmUgdGhlIGNsZXZlciBzdHVmZiBnb2VzLi4uCisgICAgICAgIHdoaWxlICgoY2ggPSBjbGllbnQubmV4dENoYXIoKSkgIT0gMCkgeworICAgICAgICAgICAgaW50IGNoYXJDbGFzcyA9IGdldENoYXJDbGFzcyhjaCk7CisgICAgICAgICAgICBTdGF0ZUVudHJ5IGVudHJ5ID0gc3RhdGVUYWJsZVtzdGF0ZV1bY2hhckNsYXNzXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RhdGUgPSBlbnRyeS5nZXROZXdTdGF0ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LmdldEFjdGlvbigpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSBBX0FEREM6CisgICAgICAgICAgICAgICAgYWRkTGV0dGVyKENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBBX0FERFM6CisgICAgICAgICAgICAgICAgYWRkTGV0dGVyKCcgJyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAgICBjYXNlIEFfTlVMTDoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFkZExldHRlcignICcpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvU3RhdGlzdGljc1Rvb2wuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvU3RhdGlzdGljc1Rvb2wuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjRkNzYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9TdGF0aXN0aWNzVG9vbC5qYXZhCkBAIC0wLDAgKzEsNDMyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyAgICAgICAgICAgICoKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY2hhcnNldGRldC5zYmNzOworCisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBTdGF0aXN0aWNzVG9vbCBpbXBsZW1lbnRzIE5HcmFtUGFyc2VyLk5HcmFtUGFyc2VyQ2xpZW50LCBOR3JhbUxpc3QuTkdyYW1LZXlNYXBwZXIKK3sKKyAgICAvKiBUT0RPIE1ha2UgdGhpcyB1c2FnZSBzdHJpbmcgbW9yZSBzYW5lLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB1c2FnZVN0cmluZyA9IAorICAgICAgICAiXG5Vc2FnZTogU3RhdGlzdGljc1Rvb2wgW09QVElPTlNdIFtGSUxFU11cblxuIiArCisgICAgICAgICJUaGlzIHByb2dyYW0gd2lsbCByZWFkIGluIGEgVW5pY29kZSB0ZXh0IGZpbGUgb2YgdGV4dCBpbiBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2VcbiIgKworICAgICAgICAiYW5kIGNvbXB1dGUgdGhlIHN0YXRpc3RpY3MgbmVlZGVkIHRvIGRldGVjdGVkIHRoYXQgbGFuZ3VhZ2UgYW5kIGNoYXJhY3RlciBzZXQuXG4gIiArCisgICAgICAgICJPcHRpb25zOlxuIiArCisgICAgICAgICItZSAgICAgICBzcGVjaWZ5IHRoZSB0YXJnZXQgZW5jb2RpbmdcbiIgKworICAgICAgICAiLWggb3IgLT8gcHJpbnQgdGhpcyB1c2FnZSB0ZXh0LlxuIiArCisgICAgICAgICItdiAgICAgICBhbHNvIGdlbmVyYXRlIHN0YXRpc3RpY3MgZm9yIHZpc3VhbCBvcmRlci5cbiIgKworICAgICAgICAiLWwgICAgICAgb25seSBnZW5lcmF0ZSBzdGF0aXN0aWNzIGZvciBsb2dpY2FsIG9yZGVyIChjYW5jZWwgLXYpLiIgKworICAgICAgICAiLWMgICAgICAgcnVuIHRoZSBjaGVja2VyLlxuIiArCisgICAgICAgICItdCAgICAgICBydW4gdGhlIGVuY29kaW5nIHRlc3QuXG4iICsKKyAgICAgICAgImV4YW1wbGU6IGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXQuU3RhdGlzdGljc1Rvb2wgLWUgODg1OS0xIFNwYW5pc2gudHh0IjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVUZGRVJfU0laRSA9IDEwMjQ7CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyOworICAgIHByaXZhdGUgaW50IGJ1ZkluZGV4OworICAgIHByaXZhdGUgaW50IGJ1Zk1heDsKKworICAgIHByaXZhdGUgSW5wdXRGaWxlIGlucHV0RmlsZTsKKyAgICAKKyAgICBwcml2YXRlIE5HcmFtTGlzdCBuZ3JhbXM7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGFsbEJ5dGVzID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MDAsIChieXRlKSAweDAxLCAoYnl0ZSkgMHgwMiwgKGJ5dGUpIDB4MDMsIChieXRlKSAweDA0LCAoYnl0ZSkgMHgwNSwgKGJ5dGUpIDB4MDYsIChieXRlKSAweDA3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MDgsIChieXRlKSAweDA5LCAoYnl0ZSkgMHgwQSwgKGJ5dGUpIDB4MEIsIChieXRlKSAweDBDLCAoYnl0ZSkgMHgwRCwgKGJ5dGUpIDB4MEUsIChieXRlKSAweDBGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MTAsIChieXRlKSAweDExLCAoYnl0ZSkgMHgxMiwgKGJ5dGUpIDB4MTMsIChieXRlKSAweDE0LCAoYnl0ZSkgMHgxNSwgKGJ5dGUpIDB4MTYsIChieXRlKSAweDE3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MTgsIChieXRlKSAweDE5LCAoYnl0ZSkgMHgxQSwgKGJ5dGUpIDB4MUIsIChieXRlKSAweDFDLCAoYnl0ZSkgMHgxRCwgKGJ5dGUpIDB4MUUsIChieXRlKSAweDFGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIxLCAoYnl0ZSkgMHgyMiwgKGJ5dGUpIDB4MjMsIChieXRlKSAweDI0LCAoYnl0ZSkgMHgyNSwgKGJ5dGUpIDB4MjYsIChieXRlKSAweDI3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MjgsIChieXRlKSAweDI5LCAoYnl0ZSkgMHgyQSwgKGJ5dGUpIDB4MkIsIChieXRlKSAweDJDLCAoYnl0ZSkgMHgyRCwgKGJ5dGUpIDB4MkUsIChieXRlKSAweDJGLAorICAgICAgICAgICAgKGJ5dGUpIDB4MzAsIChieXRlKSAweDMxLCAoYnl0ZSkgMHgzMiwgKGJ5dGUpIDB4MzMsIChieXRlKSAweDM0LCAoYnl0ZSkgMHgzNSwgKGJ5dGUpIDB4MzYsIChieXRlKSAweDM3LAorICAgICAgICAgICAgKGJ5dGUpIDB4MzgsIChieXRlKSAweDM5LCAoYnl0ZSkgMHgzQSwgKGJ5dGUpIDB4M0IsIChieXRlKSAweDNDLCAoYnl0ZSkgMHgzRCwgKGJ5dGUpIDB4M0UsIChieXRlKSAweDNGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NDAsIChieXRlKSAweDQxLCAoYnl0ZSkgMHg0MiwgKGJ5dGUpIDB4NDMsIChieXRlKSAweDQ0LCAoYnl0ZSkgMHg0NSwgKGJ5dGUpIDB4NDYsIChieXRlKSAweDQ3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NDgsIChieXRlKSAweDQ5LCAoYnl0ZSkgMHg0QSwgKGJ5dGUpIDB4NEIsIChieXRlKSAweDRDLCAoYnl0ZSkgMHg0RCwgKGJ5dGUpIDB4NEUsIChieXRlKSAweDRGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NTAsIChieXRlKSAweDUxLCAoYnl0ZSkgMHg1MiwgKGJ5dGUpIDB4NTMsIChieXRlKSAweDU0LCAoYnl0ZSkgMHg1NSwgKGJ5dGUpIDB4NTYsIChieXRlKSAweDU3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NTgsIChieXRlKSAweDU5LCAoYnl0ZSkgMHg1QSwgKGJ5dGUpIDB4NUIsIChieXRlKSAweDVDLCAoYnl0ZSkgMHg1RCwgKGJ5dGUpIDB4NUUsIChieXRlKSAweDVGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4N0IsIChieXRlKSAweDdDLCAoYnl0ZSkgMHg3RCwgKGJ5dGUpIDB4N0UsIChieXRlKSAweDdGLAorICAgICAgICAgICAgKGJ5dGUpIDB4ODAsIChieXRlKSAweDgxLCAoYnl0ZSkgMHg4MiwgKGJ5dGUpIDB4ODMsIChieXRlKSAweDg0LCAoYnl0ZSkgMHg4NSwgKGJ5dGUpIDB4ODYsIChieXRlKSAweDg3LAorICAgICAgICAgICAgKGJ5dGUpIDB4ODgsIChieXRlKSAweDg5LCAoYnl0ZSkgMHg4QSwgKGJ5dGUpIDB4OEIsIChieXRlKSAweDhDLCAoYnl0ZSkgMHg4RCwgKGJ5dGUpIDB4OEUsIChieXRlKSAweDhGLAorICAgICAgICAgICAgKGJ5dGUpIDB4OTAsIChieXRlKSAweDkxLCAoYnl0ZSkgMHg5MiwgKGJ5dGUpIDB4OTMsIChieXRlKSAweDk0LCAoYnl0ZSkgMHg5NSwgKGJ5dGUpIDB4OTYsIChieXRlKSAweDk3LAorICAgICAgICAgICAgKGJ5dGUpIDB4OTgsIChieXRlKSAweDk5LCAoYnl0ZSkgMHg5QSwgKGJ5dGUpIDB4OUIsIChieXRlKSAweDlDLCAoYnl0ZSkgMHg5RCwgKGJ5dGUpIDB4OUUsIChieXRlKSAweDlGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QTAsIChieXRlKSAweEExLCAoYnl0ZSkgMHhBMiwgKGJ5dGUpIDB4QTMsIChieXRlKSAweEE0LCAoYnl0ZSkgMHhBNSwgKGJ5dGUpIDB4QTYsIChieXRlKSAweEE3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QTgsIChieXRlKSAweEE5LCAoYnl0ZSkgMHhBQSwgKGJ5dGUpIDB4QUIsIChieXRlKSAweEFDLCAoYnl0ZSkgMHhBRCwgKGJ5dGUpIDB4QUUsIChieXRlKSAweEFGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QjAsIChieXRlKSAweEIxLCAoYnl0ZSkgMHhCMiwgKGJ5dGUpIDB4QjMsIChieXRlKSAweEI0LCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4QjYsIChieXRlKSAweEI3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QjgsIChieXRlKSAweEI5LCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4QkIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHhCRCwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LAorICAgICAgICAgICAgKGJ5dGUpIDB4QzgsIChieXRlKSAweEM5LCAoYnl0ZSkgMHhDQSwgKGJ5dGUpIDB4Q0IsIChieXRlKSAweENDLCAoYnl0ZSkgMHhDRCwgKGJ5dGUpIDB4Q0UsIChieXRlKSAweENGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhdGlzdGljc1Rvb2woKQorICAgIHsKKyAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbQlVGRkVSX1NJWkVdOworICAgICAgICAKKyAgICAgICAgYnVmZmVyWzBdID0gJyAnOworICAgICAgICBidWZJbmRleCA9IDA7CisgICAgICAgIGJ1Zk1heCA9IDE7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHVzYWdlU3RyaW5nKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBleGNlcHRpb25FcnJvcihFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiaW9FcnJvcjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbmV4dEJ1ZmZlcihJbnB1dEZpbGUgaW5wdXRGaWxlKQorICAgIHsKKyAgICAgICAgYnVmSW5kZXggPSAwOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGlucHV0RmlsZS5yZWFkKGJ1ZmZlcik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjaGFyIG5leHRDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChidWZJbmRleCA+PSBidWZNYXgpIHsKKyAgICAgICAgICAgIGJ1Zk1heCA9IG5leHRCdWZmZXIoaW5wdXRGaWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGJ1Zk1heCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZkluZGV4KytdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVOR3JhbShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgbmdyYW1zLnB1dChrZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgT2JqZWN0IG1hcEtleShTdHJpbmcga2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGtleTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBOR3JhbUxpc3QgZHVtcE5HcmFtcygpCisgICAgeworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBpbnB1dEZpbGUuZ2V0UGF0aCgpOworICAgICAgICBpbnQgZXh0ZW5zaW9uID0gZmlsZW5hbWUubGFzdEluZGV4T2YoIi4iKTsKKyAgICAgICAgU3RyaW5nIG91dHB1dEZpbGVOYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIGV4dGVuc2lvbikgKyAiLnJhdyIgKyBmaWxlbmFtZS5zdWJzdHJpbmcoZXh0ZW5zaW9uKTsKKyAgICAgICAgUHJpbnRTdHJlYW0gb3V0cHV0OworICAgICAgICBkb3VibGUgY3VtdWxhdGl2ZSA9IDA7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0cHV0ID0gbmV3IFByaW50U3RyZWFtKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGVOYW1lKSwgdHJ1ZSwgIlVURjgiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/IENvdWxkIG5vdCBvcGVuICIgKyBvdXRwdXRGaWxlTmFtZSArICIgZm9yIHdyaXRpbmcuIik7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGlucHV0RmlsZS5nZXRGaWxlbmFtZSgpICsgIjogIiArIG5ncmFtcy5nZXRVbmlxdWVOR3JhbXMoKSArICIvIiArIG5ncmFtcy5nZXRUb3RhbE5HcmFtcygpKTsKKyAgICAgICAgCisgICAgICAgIEFycmF5TGlzdCBhcnJheSA9IG5ldyBBcnJheUxpc3QobmdyYW1zLnZhbHVlcygpKTsKKyAgICAgICAgCisgICAgICAgIENvbGxlY3Rpb25zLnNvcnQoYXJyYXkpOworICAgICAgICAKKyAgICAgICAgTkdyYW1MaXN0IHN0YXRzID0gbmV3IE5HcmFtTGlzdChpbnB1dEZpbGUpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgdG90YWxOR3JhbXMgPSBuZ3JhbXMuZ2V0VG90YWxOR3JhbXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhcnJheS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7IGNvdW50ICs9IDEpIHsKKyAgICAgICAgICAgIE5HcmFtTGlzdC5OR3JhbSBuZ3JhbSAgPSAoTkdyYW1MaXN0Lk5HcmFtKSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBuZ3JhbS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgaW50IHJlZkNvdW50ID0gbmdyYW0uZ2V0UmVmQ291bnQoKTsKKyAgICAgICAgICAgIGRvdWJsZSByYXRpbyAgPSAoZG91YmxlKSByZWZDb3VudCAvIHRvdGFsTkdyYW1zICogMTAwLjA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGN1bXVsYXRpdmUgKz0gcmF0aW87CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE8gY2hlY2sgc2hvdWxkIGJlIGNvdW50IDwgbWF4ICYmIGN1bXVsYXRpdmUgPCBtYXhQZXJjZW50CisgICAgICAgICAgICBpZiAoY291bnQgPCA2NCkgeworICAgICAgICAgICAgICAgIHN0YXRzLnB1dCh2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKHZhbHVlICsgIlx0IiArIHJlZkNvdW50ICsgIlx0IiArIHJhdGlvICsgIiVcdCIgKyBjdW11bGF0aXZlICsgIiUiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVN0YXRpc3RpY3MoQXJyYXlMaXN0IGtleUxpc3QsIGJvb2xlYW4gdmlzdWFsKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gaW5wdXRGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgaW50IGV4dGVuc2lvbiA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKCIuIik7CisgICAgICAgIFN0cmluZyBvdXRwdXRGaWxlTmFtZSA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBleHRlbnNpb24pICsgIi0iICsgaW5wdXRGaWxlLmdldEVuY29kaW5nKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc3VhbD8gIi12aXN1YWwuZGF0IiA6ICIuZGF0Iik7CisgICAgICAgIFByaW50U3RyZWFtIG91dHB1dDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdXRwdXQgPSBuZXcgUHJpbnRTdHJlYW0oCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZU5hbWUpLCB0cnVlLCAiQVNDSUkiKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI/IENvdWxkIG5vdCBvcGVuICIgKyBvdXRwdXRGaWxlTmFtZSArICIgZm9yIHdyaXRpbmcuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgiICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBrZXlMaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBJbnRlZ2VyIG5ncmFtID0gKEludGVnZXIpIGl0Lm5leHQoKTsKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoaSAlIDE2ID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxuICAgICAgICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIweCIgKyBVdGlsaXR5LmhleChuZ3JhbS5pbnRWYWx1ZSgpLCA2KSArICIsICIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigiXG4gICAgfTtcbiIpOworICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogR2VuZXJhdGUgdGhlIGJ5dGUgbWFwCisgICAgICAgICAqLworICAgICAgICBjaGFyW10gdW5pY29kZXMgPSBpbnB1dEZpbGUuZGVjb2RlKGFsbEJ5dGVzKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGIgPSAwOyBiIDwgMjU2OyBiICs9IDEpIHsKKyAgICAgICAgICAgIGNoYXIgdW5pY29kZSAgPSB1bmljb2Rlc1tiXTsKKyAgICAgICAgICAgIGludCBjaGFyQ2xhc3MgPSBOR3JhbVBhcnNlci5nZXRDaGFyQ2xhc3ModW5pY29kZSk7CisgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChjaGFyQ2xhc3MpIHsKKyAgICAgICAgICAgIGNhc2UgTkdyYW1QYXJzZXIuQ19MRVRURVI6CisgICAgICAgICAgICAgICAgdW5pY29kZXNbYl0gPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UodW5pY29kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICAgICAgY2FzZSBOR3JhbVBhcnNlci5DX1BVTkNUOgorICAgICAgICAgICAgICAgIHVuaWNvZGVzW2JdID0gJyAnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgTkdyYW1QYXJzZXIuQ19JR05PUkU6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHVuaWNvZGVzW2JdID0gJ1wwJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJ5dGVNYXAgPSBpbnB1dEZpbGUuZW5jb2RlKHVuaWNvZGVzKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgiICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgYiA9IDA7IGIgPCAyNTY7IGIgKz0gMSkgeworICAgICAgICAgICAgaWYgKGIgJSA4ID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxuICAgICAgICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIoYnl0ZSkgMHgiICsgVXRpbGl0eS5oZXgoYnl0ZU1hcFtiXSAmIDB4RkYsIDIpICsgIiwgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJcbiAgICB9OyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTkdyYW1MaXN0IGNvbGxlY3RTdGF0aXN0aWNzKElucHV0RmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgaWYgKCFmaWxlLm9wZW4oKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlucHV0RmlsZSA9IGZpbGU7CisgICAgICAgIAorICAgICAgICBOR3JhbVBhcnNlciBwYXJzZXIgPSBuZXcgTkdyYW1QYXJzZXIodGhpcyk7CisgICAgICAgIAorICAgICAgICBuZ3JhbXMgPSBuZXcgTkdyYW1MaXN0KHRoaXMpOworICAgICAgICBwYXJzZXIucGFyc2UoKTsKKyAgICAgICAgCisgICAgICAgIGZpbGUuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIE5HcmFtTGlzdCBzdGF0cyAgICA9IGR1bXBOR3JhbXMoKTsKKyAgICAgICAgQXJyYXlMaXN0IHN0YXRLZXlzID0gbmV3IEFycmF5TGlzdChzdGF0cy5rZXlzKCkpOworICAgICAgICAKKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydChzdGF0S2V5cyk7CisgICAgICAgIHdyaXRlU3RhdGlzdGljcyhzdGF0S2V5cywgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKGlucHV0RmlsZS5nZXRWaXN1YWxPcmRlcigpKSB7CisgICAgICAgICAgICBBcnJheUxpc3QgcmV2ZXJzZWQgPSBuZXcgQXJyYXlMaXN0KHN0YXRLZXlzLnNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzdGF0S2V5cy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgSW50ZWdlciBrZXkgPSAoSW50ZWdlcikgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGludCBrID0ga2V5LmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaW50IHIgPSAwOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChrICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgciA9IChyIDw8IDgpIHwgKGsgJiAweEZGKTsKKyAgICAgICAgICAgICAgICAgICAgayA+Pj0gODsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmV2ZXJzZWQuYWRkKG5ldyBJbnRlZ2VyKHIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29sbGVjdGlvbnMuc29ydChyZXZlcnNlZCk7CisgICAgICAgICAgICB3cml0ZVN0YXRpc3RpY3MocmV2ZXJzZWQsIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFyZ3MpOworICAgICAgICBJbnB1dEZpbGVbXSBpbnB1dF9maWxlcyA9IG5ldyBJbnB1dEZpbGVbYXJncy5sZW5ndGhdOworICAgICAgICBpbnQgZmlsZV9jb3VudCA9IDA7CisgICAgICAgIFN0cmluZyBlbmNvZGluZyA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gcnVuX2NoZWNrZXIgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBlbmNvZGluZ190ZXN0ID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gdmlzdWFsX29yZGVyID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbGlzdC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7IC8qYW55dGhpbmc/Ki8pIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItdiIpKSB7CisgICAgICAgICAgICAgICAgdmlzdWFsX29yZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWwiKSkgeworICAgICAgICAgICAgICAgIHZpc3VhbF9vcmRlciA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItYyIpKSB7CisgICAgICAgICAgICAgICAgcnVuX2NoZWNrZXIgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItdCIpKSB7CisgICAgICAgICAgICAgICAgZW5jb2RpbmdfdGVzdCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1lIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6IG1pc3NpbmcgZW5jb2RpbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCEgKGFyZy5lcXVhbHMoIi1oIikgfHwgYXJnLmVxdWFscygiLT8iKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5rbm93biBvcHRpb24gIiArIGFyZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVzW2ZpbGVfY291bnQrK10gPSBuZXcgSW5wdXRGaWxlKGFyZywgZW5jb2RpbmcsIHZpc3VhbF9vcmRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihmaWxlX2NvdW50ID09IDApeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdGhlcmUgYXJlIG5vIGZpbGVzIHRvIHByb2Nlc3MuIik7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdGF0aXN0aWNzVG9vbCB0b29sID0gbmV3IFN0YXRpc3RpY3NUb29sKCk7CisgICAgICAgIENoZWNrZXJbXSBjaGVja2VycyAgPSBuZXcgQ2hlY2tlcltmaWxlX2NvdW50XTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmaWxlX2NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIElucHV0RmlsZSBmaWxlID0gaW5wdXRfZmlsZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoZWNrZXJzW2ldID0gbmV3IENoZWNrZXIodG9vbC5jb2xsZWN0U3RhdGlzdGljcyhmaWxlKSwgZmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrZXJzCisgICAgICAgICAqLworICAgICAgICBpZiAocnVuX2NoZWNrZXIpIHsKKyAgICAgICAgICAgIGZvcihpbnQgYyA9IDA7IGMgPCBmaWxlX2NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICBDaGVja2VyIGNoZWNrZXIgPSBjaGVja2Vyc1tjXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IoaW50IGYgPSAwOyBmIDwgZmlsZV9jb3VudDsgZiArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrZXIuY2hlY2soaW5wdXRfZmlsZXNbZl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRGV0ZWN0aW9uIHRlc3QKKyAgICAgICAgICovCisgICAgICAgIGlmIChlbmNvZGluZ190ZXN0KSB7CisgICAgICAgICAgICBjaGFyW10gYnVmZmVyICAgPSBuZXcgY2hhclsxMjhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRldGVjdGlvbiB0ZXN0Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGYgPSAwOyBmIDwgZmlsZV9jb3VudDsgZiArPSAxKSB7CisgICAgICAgICAgICAgICAgSW5wdXRGaWxlIGZpbGUgPSBpbnB1dF9maWxlc1tmXTsKKyAgICAgICAgICAgICAgICBpbnRbXSBoaXN0b2dyYW0gPSBuZXcgaW50W2ZpbGVfY291bnRdOworICAgICAgICAgICAgICAgIGludCBjaGFyQ291bnQsIG1pc3NlcyA9IDA7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZpbGUuZ2V0RmlsZW5hbWUoKSArICIoIiArIGZpbGUuZ2V0RW5jb2RpbmcoKSArICIpOiIpOworICAgICAgICAgICAgICAgIGZpbGUub3BlbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgZmlsZV9jb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrZXJzW2NdLnNldE1hcHBlcihmaWxlKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGZvciBlYWNoIGJ1ZmZlcgorICAgICAgICAgICAgICAgIC8vICAgICBmb3IgZWFjaCBjaGVja2VyCisgICAgICAgICAgICAgICAgLy8gICAgICAgICBjYWxsIGNoZWNrQnVmZmVyLCBzYXZlIHNjb3JlCisgICAgICAgICAgICAgICAgLy8gICAgIGZpbmQgaGlnaGVzdCBzY29yZSwgdXBkYXRlIGhpc3RvZ3JhbSBmb3IgdGhhdCBjaGVja2VyCisgICAgICAgICAgICAgICAgLy8gc2hvdyBjaGVja2VyIGhpc3RvZ3JhbQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICgoY2hhckNvdW50ID0gZmlsZS5yZWFkKGJ1ZmZlcikpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpbnRbXSBzY29yZXMgPSBuZXcgaW50W2ZpbGVfY291bnRdOworICAgICAgICAgICAgICAgICAgICBpbnQgYmVzdEZpdCA9IC0xLCBtYXhTY29yZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmVzW2NdID0gY2hlY2tlcnNbY10uY2hlY2tCdWZmZXIoYnVmZmVyLCBjaGFyQ291bnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjb3JlID0gc2NvcmVzW2NdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcmUgPiBtYXhTY29yZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFNjb3JlID0gc2NvcmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdEZpdCA9IGM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChiZXN0Rml0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbVtiZXN0Rml0XSArPSAxOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXNzZXMgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAiICsgY2hlY2tlcnNbY10uZ2V0TGFuZ3VhZ2UoKSArICI6ICIgKyBoaXN0b2dyYW1bY10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobWlzc2VzID4gMCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICBOT05FOiAiICsgbWlzc2VzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL0NvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjRmZDdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL0NvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IuamF2YQpAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuY29tcHJlc3Npb247CisKKworLyoqCisgKiBVdGlsaXR5IGNsYXNzIHRvIGdlbmVyYXRlIHRoZSB0YWJsZXMgdXNlZCBieSB0aGUgU0NTVSBpbnRlcmZhY2UgYW5kCisgKiB0aGUgVW5pY29kZUNvbXByZXNzb3IgY2xhc3MuCisgKgorICogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisgKiBAdmVyc2lvbiAxLjAgMDggTWFyIDk5CisgKi8KK2NsYXNzIENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKK3sKKyAgICAvLyBkdXBsaWNhdGUgb2YgY29uc3RhbnRzIGluIFNDU1UKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgTEFUSU5JTkRFWCAgICAgICAgICAgICAgICAgID0gMHhGOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IElQQUVYVEVOU0lPTklOREVYICAgICAgICAgICA9IDB4RkE7CisgICAgZmluYWwgc3RhdGljIGludCBHUkVFS0lOREVYICAgICAgICAgICAgICAgICAgPSAweEZCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgQVJNRU5JQU5JTkRFWCAgICAgICAgICAgICAgID0gMHhGQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEhJUkFHQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkQ7CisgICAgZmluYWwgc3RhdGljIGludCBLQVRBS0FOQUlOREVYICAgICAgICAgICAgICAgPSAweEZFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSEFMRldJRFRIS0FUQUtBTkFJTkRFWCAgICAgID0gMHhGRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORVggICAgICAgICAgICAgICAgICAgID0gMHgwQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4MEM7ICAvLyByZXNlcnZlZCB2YWx1ZQorICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFVSAgICAgICAgICAgICAgICAgICAgID0gMHgwRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0VVICAgICAgICAgICAgICAgICAgICA9IDB4MEY7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTAgICAgICAgICAgICAgICAgICAgICA9IDB4MDE7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUxICAgICAgICAgICAgICAgICAgICAgPSAweDAyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMiAgICAgICAgICAgICAgICAgICAgID0gMHgwMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTMgICAgICAgICAgICAgICAgICAgICA9IDB4MDQ7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU0ICAgICAgICAgICAgICAgICAgICAgPSAweDA1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNSAgICAgICAgICAgICAgICAgICAgID0gMHgwNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTYgICAgICAgICAgICAgICAgICAgICA9IDB4MDc7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU3ICAgICAgICAgICAgICAgICAgICAgPSAweDA4OworCisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMCAgICAgICAgICAgICAgICAgICAgPSAweDEwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTEgICAgICAgICAgICAgICAgICAgID0gMHgxMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UyICAgICAgICAgICAgICAgICAgICA9IDB4MTI7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMyAgICAgICAgICAgICAgICAgICAgPSAweDEzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTQgICAgICAgICAgICAgICAgICAgID0gMHgxNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U1ICAgICAgICAgICAgICAgICAgICA9IDB4MTU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNiAgICAgICAgICAgICAgICAgICAgPSAweDE2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTcgICAgICAgICAgICAgICAgICAgID0gMHgxNzsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTAgICAgICAgICAgICAgICAgICAgID0gMHgxODsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUxICAgICAgICAgICAgICAgICAgICA9IDB4MTk7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMiAgICAgICAgICAgICAgICAgICAgPSAweDFBOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTMgICAgICAgICAgICAgICAgICAgID0gMHgxQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU0ICAgICAgICAgICAgICAgICAgICA9IDB4MUM7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNSAgICAgICAgICAgICAgICAgICAgPSAweDFEOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTYgICAgICAgICAgICAgICAgICAgID0gMHgxRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU3ICAgICAgICAgICAgICAgICAgICA9IDB4MUY7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVW5pY29kZSBtb2RlIHRhZ3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMCAgICAgICAgICAgICAgICAgICAgPSAweEUwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTEgICAgICAgICAgICAgICAgICAgID0gMHhFMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UyICAgICAgICAgICAgICAgICAgICA9IDB4RTI7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMyAgICAgICAgICAgICAgICAgICAgPSAweEUzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTQgICAgICAgICAgICAgICAgICAgID0gMHhFNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U1ICAgICAgICAgICAgICAgICAgICA9IDB4RTU7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNiAgICAgICAgICAgICAgICAgICAgPSAweEU2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTcgICAgICAgICAgICAgICAgICAgID0gMHhFNzsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTAgICAgICAgICAgICAgICAgICAgID0gMHhFODsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUxICAgICAgICAgICAgICAgICAgICA9IDB4RTk7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMiAgICAgICAgICAgICAgICAgICAgPSAweEVBOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTMgICAgICAgICAgICAgICAgICAgID0gMHhFQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU0ICAgICAgICAgICAgICAgICAgICA9IDB4RUM7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNSAgICAgICAgICAgICAgICAgICAgPSAweEVEOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTYgICAgICAgICAgICAgICAgICAgID0gMHhFRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU3ICAgICAgICAgICAgICAgICAgICA9IDB4RUY7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4RjA7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FWCAgICAgICAgICAgICAgICAgICAgPSAweEYxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVVJFU0VSVkVEICAgICAgICAgICAgICAgICAgID0gMHhGMjsgIC8vIHJlc2VydmVkIHZhbHVlCisKKyAgICBmaW5hbCBzdGF0aWMgaW50IEJMT0NLU0laRSA9IDB4RkY7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIHRhYmxlIHVzZWQgYXMgc09mZnNldFRhYmxlIGluIFNDU1UuCisgICAgICogVGhpcyB0YWJsZSBjb250YWlucyBwcmVmb3JtZWQgaW5kaWNlcyBzbyB3ZSBjYW4gZG8gYXJyYXkgbG9va3VwcyAKKyAgICAgKiBpbnN0ZWFkIG9mIGNhbGN1bGF0aW9ucyBmb3Igc3BlZWQgZHVyaW5nIGRlY29tcHJlc3Npb24uCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcHJpbnRPZmZzZXRUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgICAgIGkgICAgICAgICAgID0gMDsKKyAgICBpbnQgW10gICAgb2Zmc2V0VGFibGUgPSBuZXcgaW50IFsgQkxPQ0tTSVpFICsgMSBdOworCisgICAgICAgIC8vIDB4MDAgaXMgcmVzZXJ2ZWQKKworICAgICAgICAvLyBoYWxmIGJsb2NrcyBmcm9tIFUrMDA4MCB0byBVKzMzODAKKyAgICAgICAgZm9yKCBpID0gMHgwMTsgaSA8IDB4Njg7IGkrKyApCisgICAgICAgICAgICBvZmZzZXRUYWJsZVtpXSA9IGkgKiAweDgwOworICAgIAorICAgICAgICAvLyBoYWxmIGJsb2NrcyBmcm9tIFUrRTAwMCB0byBVK0ZGODAKKyAgICAgICAgZm9yKCBpID0gMHg2ODsgaSA8IDB4QTg7IGkrKyApCisgICAgICAgICAgICBvZmZzZXRUYWJsZVtpXSA9IChpICogMHg4MCkgKyAweEFDMDA7CisgICAgCisgICAgICAgIC8vIDB4QTguLjB4RjggaXMgcmVzZXJ2ZWQKKyAKKyAgICAgICAgb2Zmc2V0VGFibGVbIExBVElOSU5ERVggXSA9IDB4MDBDMDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIElQQUVYVEVOU0lPTklOREVYIF0gPSAweDAyNTA7CisgICAgICAgIG9mZnNldFRhYmxlWyBHUkVFS0lOREVYIF0gPSAweDAzNzA7CisgICAgICAgIG9mZnNldFRhYmxlWyBBUk1FTklBTklOREVYIF0gPSAweDA1MzA7CisgICAgICAgIG9mZnNldFRhYmxlWyBISVJBR0FOQUlOREVYIF0gPSAweDMwNDA7CisgICAgICAgIG9mZnNldFRhYmxlWyBLQVRBS0FOQUlOREVYIF0gPSAweDMwQTA7CisgICAgICAgIG9mZnNldFRhYmxlWyBIQUxGV0lEVEhLQVRBS0FOQUlOREVYIF0gPSAweEZGNjA7CisKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJzdGF0aWMgaW50IFtdIHNPZmZzZXRUYWJsZSA9IHsiKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgb2Zmc2V0VGFibGUubGVuZ3RoIC0gMTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvZmZzZXRUYWJsZVtpXSkKKyAgICAgICAgICAgICAgICAgKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSBvZmZzZXRUYWJsZS5sZW5ndGggLSAxOyBpIDwgb2Zmc2V0VGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9mZnNldFRhYmxlW2ldKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlIHRoZSB0YWJsZSB1c2VkIGFzIHNTaW5nbGVUYWdUYWJsZSBpbiBVbmljb2RlQ29tcHJlc3Nvci4KKyAgICAgKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgaWYgYSBieXRlIGlzIGEKKyAgICAgKiBzaW5nbGUtYnl0ZSBtb2RlIHRhZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBwcmludFNpbmdsZVRhZ1RhYmxlKCkKKyAgICB7CisgICAgICAgIGludCAgICAgICAgaSAgICAgICAgICAgICAgPSAwOworICAgIGJvb2xlYW4gW10gc2luZ2xlVGFnVGFibGUgPSBuZXcgYm9vbGVhbiAgWyBCTE9DS1NJWkUgKyAxIF07CisKKyAgICAgICAgZm9yKCBpID0gMHgwMDsgaSA8PSBCTE9DS1NJWkU7IGkrKyApIHsKKyAgICAgICAgICAgIHN3aXRjaCggaSApIHsKKyAgICAgICAgCisgICAgICAgIGNhc2UgU1FVT1RFVTogIGNhc2UgU0NIQU5HRVU6IAorICAgICAgICBjYXNlIFNERUZJTkVYOiBjYXNlIFNSRVNFUlZFRDoKKyAgICAgICAgY2FzZSBTUVVPVEUwOiAgY2FzZSBTUVVPVEUxOiAgCisgICAgICAgIGNhc2UgU1FVT1RFMjogIGNhc2UgU1FVT1RFMzoKKyAgICAgICAgY2FzZSBTUVVPVEU0OiAgY2FzZSBTUVVPVEU1OiAgCisgICAgICAgIGNhc2UgU1FVT1RFNjogIGNhc2UgU1FVT1RFNzoKKyAgICAgICAgY2FzZSBTQ0hBTkdFMDogY2FzZSBTQ0hBTkdFMTogCisgICAgICAgIGNhc2UgU0NIQU5HRTI6IGNhc2UgU0NIQU5HRTM6CisgICAgICAgIGNhc2UgU0NIQU5HRTQ6IGNhc2UgU0NIQU5HRTU6IAorICAgICAgICBjYXNlIFNDSEFOR0U2OiBjYXNlIFNDSEFOR0U3OgorICAgICAgICBjYXNlIFNERUZJTkUwOiBjYXNlIFNERUZJTkUxOiAKKyAgICAgICAgY2FzZSBTREVGSU5FMjogY2FzZSBTREVGSU5FMzoKKyAgICAgICAgY2FzZSBTREVGSU5FNDogY2FzZSBTREVGSU5FNTogCisgICAgICAgIGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisgICAgICAgIHNpbmdsZVRhZ1RhYmxlW2ldID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgIHNpbmdsZVRhZ1RhYmxlW2ldID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzU2luZ2xlVGFnVGFibGUgPSB7Iik7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHNpbmdsZVRhZ1RhYmxlLmxlbmd0aCAtIDE7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc2luZ2xlVGFnVGFibGVbaV0gKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSBzaW5nbGVUYWdUYWJsZS5sZW5ndGggLSAxOyBpIDwgc2luZ2xlVGFnVGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHNpbmdsZVRhZ1RhYmxlW2ldKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIHRhYmxlIHVzZWQgYXMgc1VuaWNvZGVUYWdUYWJsZSBpbiAKKyAgICAgKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJvb2xlYW4gdmFsdWVzIGluZGljYXRpbmcgaWYgYSBieXRlIGlzIGEKKyAgICAgKiB1bmljb2RlIG1vZGUgdGFnLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHByaW50VW5pY29kZVRhZ1RhYmxlKCkKKyAgICB7CisgICAgICAgIGludCAgICAgICAgaSAgICAgICAgICAgICAgID0gMDsKKyAgICBib29sZWFuIFtdIHVuaWNvZGVUYWdUYWJsZSA9IG5ldyBib29sZWFuICBbIEJMT0NLU0laRSArIDEgXTsKKworICAgICAgICBmb3IoIGkgPSAweDAwOyBpIDw9IEJMT0NLU0laRTsgaSsrICkgeworICAgICAgICAgICAgc3dpdGNoKCBpICkgeworICAgICAgICBjYXNlIFVRVU9URVU6ICBjYXNlIFVERUZJTkVYOiAKKyAgICAgICAgY2FzZSBVUkVTRVJWRUQ6CisgICAgICAgIGNhc2UgVUNIQU5HRTA6IGNhc2UgVUNIQU5HRTE6IAorICAgICAgICBjYXNlIFVDSEFOR0UyOiBjYXNlIFVDSEFOR0UzOgorICAgICAgICBjYXNlIFVDSEFOR0U0OiBjYXNlIFVDSEFOR0U1OiAKKyAgICAgICAgY2FzZSBVQ0hBTkdFNjogY2FzZSBVQ0hBTkdFNzoKKyAgICAgICAgY2FzZSBVREVGSU5FMDogY2FzZSBVREVGSU5FMTogCisgICAgICAgIGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisgICAgICAgIGNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IAorICAgICAgICBjYXNlIFVERUZJTkU2OiBjYXNlIFVERUZJTkU3OgorICAgICAgICB1bmljb2RlVGFnVGFibGVbaV0gPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgdW5pY29kZVRhZ1RhYmxlW2ldID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gZHVtcCB0aGUgZ2VuZXJhdGVkIHRhYmxlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzVW5pY29kZVRhZ1RhYmxlID0geyIpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCB1bmljb2RlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCh1bmljb2RlVGFnVGFibGVbaV0gKyAiLCAiKTsKKyAgICAgICAgZm9yKGkgPSB1bmljb2RlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSA8IHVuaWNvZGVUYWdUYWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodW5pY29kZVRhZ1RhYmxlW2ldKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJndikKKyAgICB7CisgICAgICAgIHByaW50T2Zmc2V0VGFibGUoKTsKKyAgICAgICAgcHJpbnRTaW5nbGVUYWdUYWJsZSgpOworICAgICAgICBwcmludFVuaWNvZGVUYWdUYWJsZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0YTNlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rvb2wgdXNlZCB0byByZWJ1aWxkIHRhYmxlcyB1c2VkIGJ5IHRoZSBVbmljb2RlIGNvbXByZXNzaW9uIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MTY1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElEYXRhLmphdmEKQEAgLTAsMCArMSwxNDggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBSZXByZXNlbnQgYSBmaWxlIG9mIEFQSUluZm8gcmVjb3Jkcy4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLnppcC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgQVBJRGF0YSB7CisgICAgaW50IHZlcnNpb247CisgICAgU3RyaW5nIG5hbWU7CisgICAgU3RyaW5nIGJhc2U7CisgICAgVHJlZVNldCBzZXQ7CisKKyAgICBzdGF0aWMgQVBJRGF0YSByZWFkKEJ1ZmZlcmVkUmVhZGVyIGJyLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBUElEYXRhIGRhdGEgPSBuZXcgQVBJRGF0YSgpOworCisgICAgICAgICAgICBkYXRhLnZlcnNpb24gPSBJbnRlZ2VyLnBhcnNlSW50KEFQSUluZm8ucmVhZFRva2VuKGJyKSk7IC8vIHZlcnNpb24KKyAgICAgICAgICAgIGlmIChkYXRhLnZlcnNpb24gPiBBUElJbmZvLlZFUlNJT04pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJkYXRhIHZlcnNpb24gIiArIGRhdGEudmVyc2lvbiArICIgaXMgbmV3ZXIgdGhhbiBjdXJyZW50IHZlcnNpb24gKCIgKyBBUElJbmZvLlZFUlNJT04gKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0YS5uYW1lID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOworICAgICAgICAgICAgZGF0YS5iYXNlID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOyAvLyBiYXNlCisgICAgICAgICAgICBici5yZWFkTGluZSgpOworCisgICAgICAgICAgICBkYXRhLnNldCA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICBmb3IgKEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7IGluZm8ucmVhZChicik7IGluZm8gPSBuZXcgQVBJSW5mbygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGludGVybmFsIHx8ICFpbmZvLmlzSW50ZXJuYWwoKSkgeworICAgICAgICAgICAgICAgICAgICBkYXRhLnNldC5hZGQoaW5mbyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJyZWFkICIgKyBkYXRhLnNldC5zaXplKCkgKyAiIHJlY29yZChzKSIpOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiZXJyb3IgcmVhZGluZyBhcGkgZGF0YSIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgQVBJRGF0YSByZWFkKEZpbGUgZmlsZSwgYm9vbGVhbiBpbnRlcm5hbCkgeworICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlLmdldE5hbWUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGlzOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuemlwIikpIHsKKyAgICAgICAgICAgICAgICBaaXBGaWxlIHpmID0gbmV3IFppcEZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cnlFbnVtID0gemYuZW50cmllcygpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeUVudW0uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgWmlwRW50cnkgZW50cnkgPSAoWmlwRW50cnkpZW50cnlFbnVtLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlzID0gemYuZ2V0SW5wdXRTdHJlYW0oZW50cnkpOworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IGhhbmRsZSBvbmUhISEKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInppcCBmaWxlIGlzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuZ3oiKSkgeworICAgICAgICAgICAgICAgICAgICBpcyA9IG5ldyBHWklQSW5wdXRTdHJlYW0oaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICByZXR1cm4gcmVhZChuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKSwgaW50ZXJuYWwpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oImVycm9yIGdldHRpbmcgaW5mbyBzdHJlYW06ICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBBUElEYXRhIHJlYWQoU3RyaW5nIGZpbGVOYW1lLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIHJldHVybiByZWFkKG5ldyBGaWxlKGZpbGVOYW1lKSwgaW50ZXJuYWwpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHN0YW5hbWVzID0geyAiZHJhZnQiLCAic3RhYmxlIiwgImRlcHJlY2F0ZWQiLCAib2Jzb2xldGUiLCAiaW50ZXJuYWwiIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY2F0bmFtZXMgPSB7ICJjbGFzc2VzIiwgImZpZWxkcyIsICJjb25zdHJ1Y3RvcnMiLCAibWV0aG9kcyIgfTsKKworICAgIHB1YmxpYyB2b2lkIHByaW50U3RhdHMoUHJpbnRXcml0ZXIgcHcpIHsKKyAgICAgICAgLy8gY2xhc3NlcywgbWV0aG9kcywgZmllbGRzCisgICAgICAgIC8vIGRyYWZ0LCBzdGFibGUsIG90aGVyCisKKyAgICAgICAgaW50W10gc3RhdHMgPSBuZXcgaW50W2NhdG5hbWVzLmxlbmd0aCAqIHN0YW5hbWVzLmxlbmd0aF07CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBpZiAoaW5mby5pc1B1YmxpYygpIHx8IGluZm8uaXNQcm90ZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIGludCBzdGEgPSBpbmZvLmdldFZhbChBUElJbmZvLlNUQSk7CisgICAgICAgICAgICAgICAgaW50IGNhdCA9IGluZm8uZ2V0VmFsKEFQSUluZm8uQ0FUKTsKKyAgICAgICAgICAgICAgICBzdGF0c1tjYXQgKiBzdGFuYW1lcy5sZW5ndGggKyBzdGFdICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgdHQgPSAwOworICAgICAgICBmb3IgKGludCBjYXQgPSAwOyBjYXQgPCBjYXRuYW1lcy5sZW5ndGg7ICsrY2F0KSB7CisgICAgICAgICAgICBwdy5wcmludGxuKGNhdG5hbWVzW2NhdF0pOworICAgICAgICAgICAgaW50IHQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgc3RhID0gMDsgc3RhIDwgc3RhbmFtZXMubGVuZ3RoOyArK3N0YSkgeworICAgICAgICAgICAgICAgIGludCB2ID0gc3RhdHNbY2F0ICogc3RhbmFtZXMubGVuZ3RoICsgc3RhXTsKKyAgICAgICAgICAgICAgICB0ICs9IHY7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiICAgIiArIHN0YW5hbWVzW3N0YV0gKyAiOiAiICsgdik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0dCArPSB0OworICAgICAgICAgICAgcHcucHJpbnRsbigidG90YWw6ICIgKyB0KTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCJ0b3RhbCBhcGlzOiAiICsgdHQpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICAgICAgYm9vbGVhbiBpbnRlcm5hbCA9IGZhbHNlOworICAgICAgICBTdHJpbmcgcGF0aCA9ICJzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy8iOworCisgICAgICAgIFN0cmluZyBmbiA9ICJpY3U0ajM0MS5hcGkuZ3oiOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgYXJncyA9IG5ldyBTdHJpbmdbXSB7ICItZmlsZSIsIGZuIH07CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1wYXRoOiIpKSB7CisgICAgICAgICAgICAgICAgcGF0aCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWludGVybmFsOiIpKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWwgPSBhcmdzWysraV0udG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT0gJ3QnOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItZmlsZSIpKSB7CisgICAgICAgICAgICAgICAgZm4gPSBhcmdzWysraV07CisKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShwYXRoLCBmbik7CisgICAgICAgICAgICAgICAgcmVhZChmLGludGVybmFsKS5wcmludFN0YXRzKHB3KTsKKyAgICAgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJSW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZjVjYzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElJbmZvLmphdmEKQEAgLTAsMCArMSw1MTggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBSZXByZXNlbnRzIHRoZSBBUEkgaW5mb3JtYXRpb24gb24gYSBkb2MgZWxlbWVudC4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK2NsYXNzIEFQSUluZm8geworICAgIC8vIHZlcnNpb24gaWQgZm9yIHRoZSBmb3JtYXQgb2YgdGhlIEFQSUluZm8gZGF0YQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkVSU0lPTiA9IDI7CisKKyAgICAvLyBwdWJsaWMga2V5cyBhbmQgdmFsdWVzIGZvciBxdWVyaWVzIG9uIGluZm8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQSA9IDAsIFNUQV9EUkFGVCA9IDAsIFNUQV9TVEFCTEUgPSAxLCBTVEFfREVQUkVDQVRFRCA9IDIsIFNUQV9PQlNPTEVURSA9IDMsIFNUQV9JTlRFUk5BTCA9IDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVklTID0gMSwgVklTX1BBQ0tBR0UgPSAwLCBWSVNfUFVCTElDPSAxLCBWSVNfUFJPVEVDVEVEID0gMiwgVklTX1BSSVZBVEUgPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUSyA9IDIsIFNUS19TVEFUSUMgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZJTiA9IDMsIEZJTl9GSU5BTCA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lOID0gNCwgU1lOX1NZTkNIUk9OSVpFRCA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJTID0gNSwgQUJTX0FCU1RSQUNUID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVQgPSA2LCBDQVRfQ0xBU1MgPSAwLCBDQVRfRklFTEQgPSAxLCBDQVRfQ09OU1RSVUNUT1IgPSAyLCBDQVRfTUVUSE9EID0gMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUsgPSA3OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMUyA9IDg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFNID0gOTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSUcgPSAxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWEMgPSAxMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1fVFlQRVMgPSAxMTsKKworICAgIC8vIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiB0b2tlbnMgaW4gdGhlIGRhdGEgZmlsZQorICAgIHB1YmxpYyBpbnRbXSBtYXNrcyA9IHsgMHg3LCAweDMsIDB4MSwgMHgxLCAweDEsIDB4MSwgMHgzIH07CisgICAgcHVibGljIGludFtdIHNoaWZ0cyA9IHsgMCwgMywgNSwgNiwgNywgOCwgOSB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIFNFUCA9ICc7JzsKKworICAgIC8vIEludGVybmFsIFN0YXRlCisgICAgcHJpdmF0ZSBpbnQgICAgaW5mbzsgLy8gaW5mb3JtYXRpb24gYWJvdXQgbnVtZXJpYyB2YWx1ZXMgcGFja2VkIGludG8gYW4gaW50IGFzIHZhcmlhYmxlLWxlbmd0aCBuaWJibGVzCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFjayA9ICIiOyAvLyBwYWNrYWdlCisgICAgcHJpdmF0ZSBTdHJpbmcgY2xzICA9ICIiOyAgLy8gZW5jbG9zaW5nIGNsYXNzCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZSA9ICIiOyAvLyBuYW1lCisgICAgcHJpdmF0ZSBTdHJpbmcgc2lnICA9ICIiOyAgLy8gc2lnbmF0dXJlLCBjbGFzczogaW5oZXJpdGFuY2UsIG1ldGhvZDogc2lnbmF0dXJlLCBmaWVsZDogdHlwZSwgY29uc3Q6IHNpZ25hdHVyZQorICAgIHByaXZhdGUgU3RyaW5nIGV4YyAgPSAiIjsgIC8vIHRocm93cworCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuICgoKHBhY2suaGFzaENvZGUoKSA8PCAzKSBeIGNscy5oYXNoQ29kZSgpKSA8PCAzKSBeIG5hbWUuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICBpZiAocmhzID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmhzID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFQSUluZm8gdGhhdCA9IChBUElJbmZvKXJoczsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmluZm8gPT0gdGhhdC5pbmZvICYmCisgICAgICAgICAgICAgICAgdGhpcy5wYWNrLmVxdWFscyh0aGF0LnBhY2spICYmCisgICAgICAgICAgICAgICAgdGhpcy5jbHMuZXF1YWxzKHRoYXQuY2xzKSAmJgorICAgICAgICAgICAgICAgIHRoaXMubmFtZS5lcXVhbHModGhhdC5uYW1lKSAmJgorICAgICAgICAgICAgICAgIHRoaXMuc2lnLmVxdWFscyh0aGF0LnNpZykgJiYKKyAgICAgICAgICAgICAgICB0aGlzLmV4Yy5lcXVhbHModGhhdC5leGMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RHJhZnQoKSB7IHNldFR5cGUoU1RBLCBTVEFfRFJBRlQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhYmxlKCkgeyBzZXRUeXBlKFNUQSwgU1RBX1NUQUJMRSk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXREZXByZWNhdGVkKCkgeyBzZXRUeXBlKFNUQSwgU1RBX0RFUFJFQ0FURUQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0T2Jzb2xldGUoKSB7IHNldFR5cGUoU1RBLCBTVEFfT0JTT0xFVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYWwoKSB7IHNldFR5cGUoU1RBLCBTVEFfSU5URVJOQUwpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UGFja2FnZSgpIHsgc2V0VHlwZShWSVMsIFZJU19QQUNLQUdFKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFB1YmxpYygpIHsgc2V0VHlwZShWSVMsIFZJU19QVUJMSUMpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UHJvdGVjdGVkKCkgeyBzZXRUeXBlKFZJUywgVklTX1BST1RFQ1RFRCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRQcml2YXRlKCkgeyBzZXRUeXBlKFZJUywgVklTX1BSSVZBVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhdGljKCkgeyBzZXRUeXBlKFNUSywgU1RLX1NUQVRJQyk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRGaW5hbCgpIHsgc2V0VHlwZShGSU4sIEZJTl9GSU5BTCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRTeW5jaHJvbml6ZWQoKSB7IHNldFR5cGUoU1lOLCBTWU5fU1lOQ0hST05JWkVEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEFic3RyYWN0KCkgeyBzZXRUeXBlKEFCUywgQUJTX0FCU1RSQUNUKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENsYXNzKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NMQVNTKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEZpZWxkKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0ZJRUxEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENvbnN0cnVjdG9yKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NPTlNUUlVDVE9SKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE1ldGhvZCgpIHsgc2V0VHlwZShDQVQsIENBVF9NRVRIT0QpOyB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYWNrYWdlKFN0cmluZyB2YWwpIHsgc2V0VHlwZShQQUssIHZhbCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRDbGFzc05hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKENMUywgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKE5BTSwgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFNpZ25hdHVyZShTdHJpbmcgdmFsKSB7IHNldFR5cGUoU0lHLCB2YWwpOyB9CisgICAgcHVibGljIHZvaWQgc2V0RXhjZXB0aW9ucyhTdHJpbmcgdmFsKSB7IHNldFR5cGUoRVhDLCB2YWwpOyB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RyYWZ0KCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RSQUZUOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNTdGFibGUoKSB7IHJldHVybiBnZXRWYWwoU1RBKSA9PSBTVEFfU1RBQkxFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNEZXByZWNhdGVkKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RFUFJFQ0FURUQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09ic29sZXRlKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX09CU09MRVRFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNJbnRlcm5hbCgpIHsgcmV0dXJuIGdldFZhbChTVEEpID09IFNUQV9JTlRFUk5BTDsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzUGFja2FnZSgpIHsgcmV0dXJuIGdldFZhbChWSVMpID09IFZJU19QQUNLQUdFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQdWJsaWMoKSB7IHJldHVybiBnZXRWYWwoVklTKSA9PSBWSVNfUFVCTElDOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQcm90ZWN0ZWQoKSB7IHJldHVybiBnZXRWYWwoVklTKSA9PSBWSVNfUFJPVEVDVEVEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQcml2YXRlKCkgeyByZXR1cm4gZ2V0VmFsKFZJUykgPT0gVklTX1BSSVZBVEU7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1N0YXRpYygpIHsgcmV0dXJuIGdldFZhbChTVEspID09IFNUS19TVEFUSUM7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0ZpbmFsKCkgeyByZXR1cm4gZ2V0VmFsKEZJTikgPT0gRklOX0ZJTkFMOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNTeW5jaHJvbml6ZWQoKSB7IHJldHVybiBnZXRWYWwoU1lOKSA9PSBTWU5fU1lOQ0hST05JWkVEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNBYnN0cmFjdCgpIHsgcmV0dXJuIGdldFZhbChBQlMpID09IEFCU19BQlNUUkFDVDsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzQ2xhc3MoKSB7IHJldHVybiBnZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1M7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0ZpZWxkKCkgeyByZXR1cm4gZ2V0VmFsKENBVCkgPT0gQ0FUX0ZJRUxEOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNDb25zdHJ1Y3RvcigpIHsgcmV0dXJuIGdldFZhbChDQVQpID09IENBVF9DT05TVFJVQ1RPUjsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzTWV0aG9kKCkgeyByZXR1cm4gZ2V0VmFsKENBVCkgPT0gQ0FUX01FVEhPRDsgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYWNrYWdlTmFtZSgpIHsgcmV0dXJuIGdldChQQUssIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXRDbGFzc05hbWUoKSB7IHJldHVybiBnZXQoQ0xTLCB0cnVlKTsgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsgcmV0dXJuIGdldChOQU0sIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXRTaWduYXR1cmUoKSB7IHJldHVybiBnZXQoU0lHLCB0cnVlKTsgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhjZXB0aW9ucygpIHsgcmV0dXJuIGdldChFWEMsIHRydWUpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGludGVnZXIgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCB0eXBlLiAgVGhlIHR5cGUKKyAgICAgKiBtdXN0IGJlIG9uZSBvZiB0aGUgZGVmaW5lZCB0eXBlIG5hbWVzLiAgVGhlIHJldHVybiB2YWx1ZQorICAgICAqIHdpbGwgYmUgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGZvciB0aGF0IHR5cGUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgcmV0dXJuIChpbmZvID4+PiBzaGlmdHNbdHlwXSkgJiBtYXNrc1t0eXBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RyaW5nIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgdHlwZS4gIFRoZSB0eXBlCisgICAgICogbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdHlwZSBuYW1lcy4gIFRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiB3aWxsIGJlIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcyBmb3IgdGhhdCB0eXBlLiAgQnJpZWYKKyAgICAgKiBzaG91bGQgYmUgdHJ1ZSBmb3Igd3JpdGluZyBkYXRhIGZpbGVzLCBmYWxzZSBmb3IgcHJlc2VudGluZworICAgICAqIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCB0eXAsIGJvb2xlYW4gYnJpZWYpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBicmllZiA/IHNob3J0TmFtZXNbdHlwXSA6IG5hbWVzW3R5cF07CisgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwKSB7CisgICAgICAgICAgICBjYXNlIFBBSzogcmV0dXJuIHBhY2s7CisgICAgICAgICAgICBjYXNlIENMUzogcmV0dXJuIGNsczsKKyAgICAgICAgICAgIGNhc2UgTkFNOiByZXR1cm4gbmFtZTsKKyAgICAgICAgICAgIGNhc2UgU0lHOiByZXR1cm4gc2lnOworICAgICAgICAgICAgY2FzZSBFWEM6IHJldHVybiBleGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IHZhbCA9IChpbmZvID4+PiBzaGlmdHNbdHlwXSkgJiBtYXNrc1t0eXBdOworICAgICAgICByZXR1cm4gdmFsc1t2YWxdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtZXJpYyB2YWx1ZSBmb3IgdGhlIHR5cGUuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEKKyAgICAgKiB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlLiAgT25seSB0aGUgbG93ZXIgdHdvIGJpdHMKKyAgICAgKiBvZiB0aGUgdmFsdWUgYXJlIHVzZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICBpbmZvICY9IH4obWFza3NbdHlwXSA8PCBzaGlmdHNbdHlwXSk7CisgICAgICAgIGluZm8gfD0gKHZhbCZtYXNrc1t0eXBdKSA8PCBzaGlmdHNbdHlwXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0cmluZyB2YWx1ZSBmb3IgdGhlIHR5cGUuICBGb3IgbnVtZXJpYyB0eXBlcywKKyAgICAgKiB0aGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nIGluICdicmllZicgZm9ybWF0LiAgRm9yCisgICAgICogbm9uLW51bWVyaWMgdHlwZXMsIHRoZSB2YWx1ZSBjYW4gYmUgYW55CisgICAgICogc3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRUeXBlKGludCB0eXAsIFN0cmluZyB2YWwpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBzaG9ydE5hbWVzW3R5cF07CisgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZhbCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgIGNhc2UgUEFLOiBwYWNrID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xTOiBjbHMgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBOQU06IG5hbWUgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBTSUc6IHNpZyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVYQzogZXhjID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKHZhbHNbaV0pKSB7CisgICAgICAgICAgICAgICAgaW5mbyAmPSB+KG1hc2tzW3R5cF0gPDwgc2hpZnRzW3R5cF0pOworICAgICAgICAgICAgICAgIGluZm8gfD0gaSA8PCBzaGlmdHNbdHlwXTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgdmFsdWUgJyIgKyB2YWwgKyAiJyBmb3IgdHlwZSAnIiArIHR5cGVOYW1lc1t0eXBdICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgaW5mb3JtYXRpb24gb3V0IGFzIGEgc2luZ2xlIGxpbmUgaW4gYnJpZWYgZm9ybWF0LgorICAgICAqIElmIHRoZXJlIGFyZSBJTyBlcnJvcnMsIHRocm93cyBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVsbihCdWZmZXJlZFdyaXRlciB3KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3LndyaXRlKFNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgcmVjb3JkIGZyb20gdGhlIGlucHV0IGFuZCBpbml0aWFsaXplIHRoaXMgQVBJSW5mby4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsZSwgZmFsc2UgaWYgRU9GLCBvdGhlcndpc2UgdGhyb3cKKyAgICAgKiBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVhZChCdWZmZXJlZFJlYWRlciByKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKGksIHJlYWRUb2tlbihyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLnJlYWRMaW5lKCk7IC8vIHN3YWxsb3cgbGluZSBlbmQgc2VxdWVuY2UKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeyAvLyBhc3N1bWUgaWYgZmlyc3QgcmVhZCByZXR1cm5zIGVycm9yLCB3ZSBoYXZlIHJlYWNoZWQgZW5kIG9mIGlucHV0CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIG9uZSB0b2tlbiBmcm9tIGlucHV0LCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gYnkKKyAgICAgKiBBUElJbmZvLiAgVGhyb3dzIElPRXhjZXB0aW9uIGlmIEVPRiBpcyBlbmNvdW50ZXJlZCBiZWZvcmUgdGhlCisgICAgICogdG9rZW4gaXMgY29tcGxldGUgKGkuZS4gYmVmb3JlIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyIGlzCisgICAgICogZW5jb3VudGVyZWQpIG9yIGlmIHRoZSB0b2tlbiBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZgorICAgICAqIDI1NSBjaGFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkVG9rZW4oQnVmZmVyZWRSZWFkZXIgcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyWzI1Nl07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yICg7IGkgPCBidWYubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjID0gci5yZWFkKCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBTRVApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZltpXSA9IChjaGFyKWM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJ1bnRlcm1pbmF0ZWQgdG9rZW4iICsgbmV3IFN0cmluZyhidWYpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgMCwgaSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29tcGFyYXRvciBmb3IgQVBJSW5mby4gIFRoaXMgY29tcGFyZXMgcGFja2FnZXMsIGNsYXNzL25hbWUKKyAgICAgKiAoYXMgdGhlIGluZm8gcmVwcmVzZW50cyBhIGNsYXNzIG9yIG90aGVyIG9iamVjdCksIGNhdGVnb3J5LCBuYW1lLAorICAgICAqIGFuZCBzaWduYXR1cmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb21wYXJhdG9yIGRlZmF1bHRDb21wYXJhdG9yKCkgeworICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICBBUElJbmZvIGxoaSA9IChBUElJbmZvKWxoczsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyByaGkgPSAoQVBJSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gbGhpLm5hbWUgOiBsaGkuY2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY29tcGFyZXMgdHdvIEFQSUluZm9zIGJ5IHBhY2thZ2UsIGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgdGhlbiBpZgorICAgICAqIHRoZSBBUElJbmZvIGRvZXMgbm90IHJlcHJlc2VudCBhIGNsYXNzLCBieSBzaWduYXR1cmUuICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgICogdGhpcyBhbmQgdGhlIGRlZmF1bHQgY29tcGFyYXRvciBpcyB0aGF0IEFQSUluZm9zIHJlcHJlc2VudGluZyBjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogZXF1YWwgcmVnYXJkbGVzcyBvZiB0aGVpciBzaWduYXR1cmVzICh3aGljaCByZXByZXNlbnQgaW5oZXJpdGFuY2UgZm9yIGNsYXNzZXMpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjaGFuZ2VkQ29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IGxoaS5uYW1lIDogbGhpLmNscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKHJoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLmdldFZhbChDQVQpLSByaGkuZ2V0VmFsKENBVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCAmJiBsaGkuZ2V0VmFsKENBVCkgIT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUgY2hhbmdlIG9uIGZpZWxkcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGhpLmdldFZhbChDQVQpICE9IENBVF9GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5zaWcuY29tcGFyZVRvKHJoaS5zaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBjb21wYXJlcyB0d28gQVBJSW5mb3MgYnkgcGFja2FnZSwgdGhlbiBzb3J0cyBjbGFzc2VzIGJlZm9yZSBub24tY2xhc3NlcywgdGhlbgorICAgICAqIGJ5IGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgc2lnbmF0dXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjbGFzc0ZpcnN0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxjbHMgPSBsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByY2xzID0gcmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxjbHMgPT0gcmNscyA/IDAgOiAobGNscyA/IC0xIDogMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGNscyA/IGxoaS5uYW1lIDogbGhpLmNscykuY29tcGFyZVRvKHJjbHMgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmICFsY2xzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLnNpZy5jb21wYXJlVG8ocmhpLnNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgZGF0YSBpbiByZXBvcnQgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByaW50KFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBpY3UgcGFja2FnZXMgZnJvbSB0aGUgcGFyYW0gc3RyaW5nCisgICAgICAgIC8vIGZvcnR1bmF0ZWx5LCBhbGwgdGhlIHBhY2thZ2VzIGhhdmUgNCBjaGFycyAobGFuZywgbWF0aCwgdGV4dCwgdXRpbCkuCisgICAgICAgIFN0cmluZyB4c2lnID0gc2lnOworICAgICAgICBpZiAoIWRldGFpbCkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIElDVVBBQ0sgPSAiY29tLmlibS5pY3UuIjsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0YnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaWcubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSBzaWcuaW5kZXhPZihJQ1VQQUNLLCBpKTsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0YnVmLmFwcGVuZChzaWcuc3Vic3RyaW5nKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRidWYuYXBwZW5kKHNpZy5zdWJzdHJpbmcoaSwgbikpOworICAgICAgICAgICAgICAgIGkgPSBuICsgSUNVUEFDSy5sZW5ndGgoKSArIDU7IC8vIHRyYWlsaW5nICd4eHh4LicKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhzaWcgPSB0YnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjb25zdHJ1Y3Qgc2lnbmF0dXJlCisgICAgICAgIGZvciAoaW50IGkgPSBTVEE7IGkgPCBDQVQ7ICsraSkgeyAvLyBpbmNsdWRlIHN0YXR1cworICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgZmFsc2UpOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCAmJiBzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChodG1sICYmIHMuaW5kZXhPZigiaW50ZXJuYWwiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCI8c3BhbiBzdHlsZT0nY29sb3I6cmVkJz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiPC9zcGFuPiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgdmFsID0gZ2V0VmFsKENBVCk7CisgICAgICAgIHN3aXRjaCAodmFsKSB7CisgICAgICAgIGNhc2UgQ0FUX0NMQVNTOgorICAgICAgICAgICAgaWYgKHNpZy5pbmRleE9mKCJleHRlbmRzIikgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJpbnRlcmZhY2UgIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImNsYXNzICIpOworICAgICAgICAgICAgfQorICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICBidWYuYXBwZW5kKCI8aT4iKTsKKyAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNscy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGNscyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnLicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiPC9pPiIpOworICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGV0YWlsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ0FUX0ZJRUxEOgorICAgICAgICAgICAgYnVmLmFwcGVuZCh4c2lnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENBVF9NRVRIT0Q6CisgICAgICAgIGNhc2UgQ0FUX0NPTlNUUlVDVE9SOgorICAgICAgICAgICAgaW50IG4gPSB4c2lnLmluZGV4T2YoJygnKTsKKyAgICAgICAgICAgIGlmIChuID4gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoeHNpZy5zdWJzdHJpbmcoMCwgbikpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIjxpPiIgKyBuYW1lICsgIjwvaT4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCh4c2lnLnN1YnN0cmluZyhuKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHB3LnByaW50KGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwcmludGxuKFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgIHByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdHlwZU5hbWVzID0geworICAgICAgICAic3RhdHVzIiwgInZpc2liaWxpdHkiLCAic3RhdGljIiwgImZpbmFsIiwgInN5bmNocm9uaXplZCIsCisgICAgICAgICJhYnN0cmFjdCIsICJjYXRlZ29yeSIsICJwYWNrYWdlIiwgImNsYXNzIiwgIm5hbWUiLCAic2lnbmF0dXJlIgorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRUeXBlVmFsTmFtZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gbmFtZXNbdHlwXVt2YWxdOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBuYW1lcyA9IHsKKyAgICAgICAgeyAiKGRyYWZ0KSAgICAgIiwgIihzdGFibGUpICAgICIsICIoZGVwcmVjYXRlZCkiLCAiKG9ic29sZXRlKSAgIiwgIippbnRlcm5hbCogICIgfSwKKyAgICAgICAgeyAicGFja2FnZSIsICJwdWJsaWMiLCAicHJvdGVjdGVkIiwgInByaXZhdGUiIH0sCisgICAgICAgIHsgIiIsICJzdGF0aWMiIH0sCisgICAgICAgIHsgIiIsICJmaW5hbCIgfSwKKyAgICAgICAgeyAiIiwgInN5bmNocm9uaXplZCIgfSwKKyAgICAgICAgeyAiIiwgImFic3RyYWN0IiB9LAorICAgICAgICB7ICJjbGFzcyIsICJmaWVsZCIsICJjb25zdHJ1Y3RvciIsICJtZXRob2QiICB9LAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gc2hvcnROYW1lcyA9IHsKKyAgICAgICAgeyAiRFIiLCAiU1QiLCAiRFAiLCAiT0IiLCAiSU4iIH0sCisgICAgICAgIHsgIlBLIiwgIlBCIiwgIlBUIiwgIlBSIiB9LAorICAgICAgICB7ICJOUyIsICJTVCIgfSwKKyAgICAgICAgeyAiTkYiLCAiRk4iIH0sCisgICAgICAgIHsgIk5TIiwgIlNZIiB9LAorICAgICAgICB7ICJOQSIsICJBQiIgfSwKKyAgICAgICAgeyAiTCIsICJGIiwgIkMiLCAiTSIgfSwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgbnVsbAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHZhbGlkYXRlVHlwZShpbnQgdHlwKSB7CisgICAgICAgIGlmICh0eXAgPCAwIHx8IHR5cCA+IE5VTV9UWVBFUykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHR5cGUgaW5kZXg6ICIgKyB0eXApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGdldChOQU0sIHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrQVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja0FQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YTY1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja0FQSS5qYXZhCkBAIC0wLDAgKzEsMTAyNyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8qKgorICogR2VuZXJhdGUgYSBsaXN0IG9mIElDVSdzIHB1YmxpYyBBUElzLCBzb3J0ZWQgYnkgcXVhbGlmaWVkIG5hbWUgYW5kIHNpZ25hdHVyZQorICogcHVibGljIEFQSXMgYXJlIGFsbCBub24taW50ZXJuYWwsIG5vbi1wYWNrYWdlIGFwaXMgaW4gY29tLmlibS5pY3UuW2xhbmd8bWF0aHx0ZXh0fHV0aWxdLgorICogRm9yIGVhY2ggQVBJLCBsaXN0CisgKiAtIHB1YmxpYywgcGFja2FnZSwgcHJvdGVjdGVkLCBvciBwcml2YXRlIChQQiBQSyBQVCBQUikKKyAqIC0gc3RhdGljIG9yIG5vbi1zdGF0aWMgKFNUSyBOU1QpCisgKiAtIGZpbmFsIG9yIG5vbi1maW5hbCAoRk4gTkYpCisgKiAtIHN5bmNocm9uaXplZCBvciBub24tc3luY2hyb25pemVkIChTWU4gTlNZKQorICogLSBzdGFibGUsIGRyYWZ0LCBkZXByZWNhdGVkLCBvYnNvbGV0ZSAoU1QgRFIgRFAgT0IpCisgKiAtIGFic3RyYWN0IG9yIG5vbi1hYnN0cmFjdCAoQUIgTkEpCisgKiAtIGNvbnN0cnVjdG9yLCBtZW1iZXIsIGZpZWxkIChDIE0gRikKKyAqCisgKiBSZXF1aXJlcyBKREsgMS40LjIgb3IgbGF0ZXIKKyAqIAorICogU2FtcGxlIGludm9jYXRpb246CisgKiBjOi9qMnNkazEuNC4yL2Jpbi9qYXZhZG9jIAorICogICAtY2xhc3NwYXRoIGM6L2pkMnNrMS40LjIvbGliL3Rvb2xzLmphciAKKyAqICAgLWRvY2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkNoZWNrQVBJIAorICogICAtZG9jbGV0cGF0aCBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjIAorICogICAtc291cmNlcGF0aCBjOi9lY2xpcHNlMi4xL3dvcmtzcGFjZTIvaWN1NGovc3JjIAorICogICAtY29tcGFyZSBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvYXBpMl82XzEudHh0IAorICogICAtb3V0cHV0IGZvbyAKKyAqICAgY29tLmlibS5pY3UudGV4dAorICoKKyAqIHRvZG86IHNlcGFyYXRlIGdlbmVyYXRpb24gb2YgZGF0YSBmaWxlcyAod2hpY2ggcmVxdWlyZXMgdGFnbGV0KSBmcm9tIAorICogY29tcGFyaXNvbiBhbmQgcmVwb3J0IGdlbmVyYXRpb24gKHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgaXQpCisgKiB0b2RvOiBwcm92aWRlIGNvbW1hbmQtbGluZSBjb250cm9sIG9mIGZpbHRlcnMgb2Ygd2hpY2ggc3ViY2xhc3Nlcy9wYWNrYWdlcyB0byBwcm9jZXNzCisgKiB0b2RvOiByZWNvcmQgZnVsbCBpbmhlcml0YW5jZSBoZWlyYXJjaHksIG5vdCBqdXN0IGltbWVkaWF0ZSBpbmhlcml0YW5jZSAKKyAqIHRvZG86IGFsbG93IGZvciBhbGlhc2luZyBjb21wYXJpc29ucyAoZm9yY2UgKHBrZy4pKmNsYXNzIHRvIGJlIHRyZWF0ZWQgYXMgdGhvdWdoIGl0IAorICogd2VyZSBpbiBhIGRpZmZlcmVudCBwa2cvY2xhc3MgaGVpcmFyY2h5IChmYWNpbGl0YXRlcyBjb21wYXJpc29uIG9mIGljdTRqIGFuZCBqYXZhKQorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGNvbS5zdW4uamF2YWRvYy4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIENoZWNrQVBJIHsKKyAgICBSb290RG9jIHJvb3Q7CisgICAgU3RyaW5nIGNvbXBhcmU7IC8vIGZpbGUKKyAgICBTdHJpbmcgY29tcGFyZU5hbWU7CisgICAgVHJlZVNldCBjb21wYXJlU2V0OworICAgIFRyZWVTZXQgcmVzdWx0czsKKyAgICBib29sZWFuIGh0bWw7CisgICAgU3RyaW5nIHNyY05hbWUgPSAiQ3VycmVudCI7IC8vIGRlZmF1bHQgc291cmNlIG5hbWUKKyAgICBTdHJpbmcgb3V0cHV0OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0ZJTEVfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTRVAgPSAnOyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBID0gMCwgU1RBX0RSQUZUID0gMCwgU1RBX1NUQUJMRSA9IDEsIFNUQV9ERVBSRUNBVEVEID0gMiwgU1RBX09CU09MRVRFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVklTID0gMSwgVklTX1BBQ0tBR0UgPSAwLCBWSVNfUFVCTElDPSAxLCBWSVNfUFJPVEVDVEVEID0gMiwgVklTX1BSSVZBVEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEsgPSAyLCBTVEtfU1RBVElDID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklOID0gMywgRklOX0ZJTkFMID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1lOID0gNCwgU1lOX1NZTkNIUk9OSVpFRCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFCUyA9IDUsIEFCU19BQlNUUkFDVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBVCA9IDYsIENBVF9DTEFTUyA9IDAsIENBVF9GSUVMRCA9IDEsIENBVF9DT05TVFJVQ1RPUiA9IDIsIENBVF9NRVRIT0QgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQQUsgPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTFMgPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU0gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSUcgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTV9UWVBFUyA9IDExOworCisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEFQSUluZm8geworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFZhbChpbnQgdHlwKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZik7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlKEJ1ZmZlcmVkV3JpdGVyIHcsIGJvb2xlYW4gYnJpZWYsIGJvb2xlYW4gaHRtbCwgYm9vbGVhbiBkZXRhaWwpOworICAgIH0KKyAgICAgICAgCisgICAgZmluYWwgc3RhdGljIGNsYXNzIEluZm8gZXh0ZW5kcyBBUElJbmZvIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgICAgaW5mbzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcGFjazsgLy8gcGFja2FnZQorICAgICAgICBwcml2YXRlIFN0cmluZyBjbHM7IC8vIGVuY2xvc2luZyBjbGFzcworICAgICAgICBwcml2YXRlIFN0cmluZyBuYW1lOyAvLyBuYW1lCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNpZzsgIC8vIHNpZ25hdHVyZSwgY2xhc3M6IGluaGVyaXRhbmNlLCBtZXRob2Q6IHNpZ25hdHVyZSwgZmllbGQ6IHR5cGUsIGNvbnN0OiBzaWduYXR1cmUKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZXhjOyAgLy8gdGhyb3dzIAorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgICAgICByZXR1cm4gKGluZm8gPj4gKHR5cCoyKSkgJiAweDM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBicmllZiA/IHNob3J0TmFtZXNbdHlwXSA6IG5hbWVzW3R5cF07CisgICAgICAgICAgICBpZiAodmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBSzogcmV0dXJuIHBhY2s7CisgICAgICAgICAgICAgICAgY2FzZSBDTFM6IHJldHVybiBjbHM7CisgICAgICAgICAgICAgICAgY2FzZSBOQU06IHJldHVybiBuYW1lOworICAgICAgICAgICAgICAgIGNhc2UgU0lHOiByZXR1cm4gc2lnOworICAgICAgICAgICAgICAgIGNhc2UgRVhDOiByZXR1cm4gZXhjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB2YWwgPSAoaW5mbyA+PiAodHlwKjIpKSAmIDB4MzsKKyAgICAgICAgICAgIHJldHVybiB2YWxzW3ZhbF07CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBpbnQgdmFsKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIGluZm8gJj0gfigweDMgPDwgKHR5cCoyKSk7CisgICAgICAgICAgICBpbmZvIHw9ICh2YWwmMHgzKSA8PCAodHlwICogMik7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0VHlwZShpbnQgdHlwLCBTdHJpbmcgdmFsKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBzaG9ydE5hbWVzW3R5cF07CisgICAgICAgICAgICBpZiAodmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBSzogcGFjayA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDTFM6IGNscyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOQU06IG5hbWUgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0lHOiBzaWcgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRVhDOiBleGMgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSh2YWxzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBpbmZvICY9IH4oMHgzIDw8ICh0eXAqMikpOworICAgICAgICAgICAgICAgICAgICBpbmZvIHw9IGkgPDwgKHR5cCoyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidW5yZWNvZ25pemVkIHZhbHVlICciICsgdmFsICsgIicgZm9yIHR5cGUgJyIgKyB0eXBlTmFtZXNbdHlwXSArICInIik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShCdWZmZXJlZFdyaXRlciB3LCBib29sZWFuIGJyaWVmLCBib29sZWFuIGh0bWwsIGJvb2xlYW4gZGV0YWlsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChicmllZikgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGdldChpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShTRVApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBpY3UgcGFja2FnZXMgZnJvbSB0aGUgcGFyYW0gc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIGZvcnR1bmF0ZWx5LCBhbGwgdGhlIHBhY2thZ2VzIGhhdmUgNCBjaGFycyAobGFuZywgbWF0aCwgdGV4dCwgdXRpbCkuCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB4c2lnID0gc2lnOworICAgICAgICAgICAgICAgICAgICBpZiAoIWRldGFpbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIElDVVBBQ0sgPSAiY29tLmlibS5pY3UuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpZy5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHNpZy5pbmRleE9mKElDVVBBQ0ssIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnLnN1YnN0cmluZyhpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNpZy5zdWJzdHJpbmcoaSwgbikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBuICsgSUNVUEFDSy5sZW5ndGgoKSArIDU7IC8vIHRyYWlsaW5nICd4eHh4LicKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhzaWcgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBzaWduYXR1cmUKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IFNUQTsgaSA8IENBVDsgKytpKSB7IC8vIGluY2x1ZGUgc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGdldChpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsICYmIHMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gU1RBKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJygnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgnKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGludCB2YWwgPSBnZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDQVRfQ0xBU1M6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2lnLmluZGV4T2YoImV4dGVuZHMiKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoImludGVyZmFjZSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiY2xhc3MgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoY2xzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcuJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9GSUVMRDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoeHNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDQVRfTUVUSE9EOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9DT05TVFJVQ1RPUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0geHNpZy5pbmRleE9mKCcoJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHhzaWcuc3Vic3RyaW5nKDAsIG4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoeHNpZy5zdWJzdHJpbmcobikpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiSU8gRXJyb3IiKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZWFkKEJ1ZmZlcmVkUmVhZGVyIHIpIHsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBOVU1fVFlQRVM7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKGksIHJlYWRUb2tlbihyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHIucmVhZExpbmUoKTsgLy8gc3dhbGxvdyBsaW5lIGVuZCBzZXF1ZW5jZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7IC8vIGFzc3VtZSBpZiBmaXJzdCByZWFkIHJldHVybnMgZXJyb3IsIHdlIGhhdmUgcmVhY2hlZCBlbmQgb2YgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIklPIEVycm9yIik7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlYWQoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisKKyAgICAgICAgICAgIC8vIERvYy4gbmFtZQorICAgICAgICAgICAgLy8gRG9jLiBpc0ZpZWxkLCBpc01ldGhvZCwgaXNDb25zdHJ1Y3RvciwgaXNDbGFzcywgaXNJbnRlcmZhY2UKKyAgICAgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBjb250YWluaW5nQ2xhc3MsIGNvbnRhaW5pbmdQYWNrYWdlCisgICAgICAgICAgICAvLyBQcm9ncmFtRWxlbWVudERvYy4gaXNQdWJsaWMsIGlzUHJvdGVjdGVkLCBpc1ByaXZhdGUsIGlzUGFja2FnZVByaXZhdGUKKyAgICAgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1N0YXRpYywgaXNGaW5hbAorICAgICAgICAgICAgLy8gTWVtYmVyRG9jLmlzU3ludGhldGljCisgICAgICAgICAgICAvLyBFeGVjdXRhYmxlTWVtYmVyRG9jIGlzU3luY2hyb25pemVkLCBzaWduYXR1cmUKKyAgICAgICAgICAgIC8vIFR5cGUudG9TdHJpbmcoKSAvLyBlLmcuICJTdHJpbmdbXVtdIgorICAgICAgICAgICAgLy8gQ2xhc3NEb2MuaXNBYnN0cmFjdCwgc3VwZXJDbGFzcywgaW50ZXJmYWNlcywgZmllbGRzLCBtZXRob2RzLCBjb25zdHJ1Y3RvcnMsIGlubmVyQ2xhc3NlcworICAgICAgICAgICAgLy8gRmllbGREb2MgdHlwZQorICAgICAgICAgICAgLy8gQ29uc3RydWN0b3JEb2MgcXVhbGlmaWVkTmFtZQorICAgICAgICAgICAgLy8gTWV0aG9kRG9jIGlzQWJzdHJhY3QsIHJldHVyblR5cGUKKworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzdGF0dXMKKyAgICAgICAgICAgIHNldFR5cGUoU1RBLCB0YWdTdGF0dXMoZG9jKSk7CisKKyAgICAgICAgICAgIC8vIHZpc2liaWxpdHkKKyAgICAgICAgICAgIGlmIChkb2MuaXNQdWJsaWMoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoVklTLCBWSVNfUFVCTElDKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLmlzUHJvdGVjdGVkKCkpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKFZJUywgVklTX1BST1RFQ1RFRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1ByaXZhdGUoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoVklTLCBWSVNfUFJJVkFURSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgaXMgcGFja2FnZQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzdGF0aWMKKyAgICAgICAgICAgIGlmIChkb2MuaXNTdGF0aWMoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoU1RLLCBTVEtfU1RBVElDKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBpcyBub24tc3RhdGljCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZpbmFsCisgICAgICAgICAgICBpZiAoZG9jLmlzRmluYWwoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoRklOLCBGSU5fRklOQUwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1maW5hbAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB0eXBlCisgICAgICAgICAgICBpZiAoZG9jLmlzRmllbGQoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfRklFTEQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNNZXRob2QoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfTUVUSE9EKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLmlzQ29uc3RydWN0b3IoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoQ0FULCBDQVRfQ09OU1RSVUNUT1IpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShDQVQsIENBVF9DTEFTUyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNldFR5cGUoUEFLLCBkb2MuY29udGFpbmluZ1BhY2thZ2UoKS5uYW1lKCkpOworICAgICAgICAgICAgc2V0VHlwZShDTFMsIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpIHx8IChkb2MuY29udGFpbmluZ0NsYXNzKCkgPT0gbnVsbCkpID8gIiIgOiBkb2MuY29udGFpbmluZ0NsYXNzKCkubmFtZSgpKTsKKyAgICAgICAgICAgIHNldFR5cGUoTkFNLCBkb2MubmFtZSgpKTsKKworICAgICAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIEZpZWxkRG9jKSB7CisgICAgICAgICAgICAgICAgRmllbGREb2MgZmRvYyA9IChGaWVsZERvYylkb2M7CisgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIGZkb2MudHlwZSgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MgaW5zdGFuY2VvZiBDbGFzc0RvYykgeworICAgICAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworCisgICAgICAgICAgICAgICAgaWYgKGNkb2MuaXNDbGFzcygpICYmIGNkb2MuaXNBYnN0cmFjdCgpKSB7IC8vIGludGVyZmFjZXMgYXJlIGFic3RyYWN0IGJ5IGRlZmF1bHQsIGRvbid0IG1hcmsgdGhlbSBhcyBhYnN0cmFjdAorICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKEFCUywgQUJTX0FCU1RSQUNUKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGlmIChjZG9jLmlzQ2xhc3MoKSkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJleHRlbmRzICIpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGNkb2Muc3VwZXJjbGFzcygpLnF1YWxpZmllZE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIENsYXNzRG9jW10gaW1wID0gY2RvYy5pbnRlcmZhY2VzKCk7CisgICAgICAgICAgICAgICAgaWYgKGltcCAhPSBudWxsICYmIGltcC5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiaW1wbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGltcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaW1wW2ldLnF1YWxpZmllZE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbWJlckRvYyBlbWRvYyA9IChFeGVjdXRhYmxlTWVtYmVyRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBpZiAoZW1kb2MuaXNTeW5jaHJvbml6ZWQoKSkgeworICAgICAgICAgICAgICAgICAgICBzZXRUeXBlKFNZTiwgU1lOX1NZTkNIUk9OSVpFRCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIE1ldGhvZERvYykgeworICAgICAgICAgICAgICAgICAgICBNZXRob2REb2MgbWRvYyA9IChNZXRob2REb2MpZG9jOworICAgICAgICAgICAgICAgICAgICBpZiAobWRvYy5pc0Fic3RyYWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoQUJTLCBBQlNfQUJTVFJBQ1QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoU0lHLCBtZG9jLnJldHVyblR5cGUoKS50b1N0cmluZygpICsgZW1kb2Muc2lnbmF0dXJlKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdG9yCisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoU0lHLCBlbWRvYy5zaWduYXR1cmUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBkZWZhdWx0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgYyA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyBsaGkgPSAoSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmZvIHJoaSA9IChJbmZvKXJoczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKGxoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyBsaGkubmFtZSA6IGxoaS5jbHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5nZXRWYWwoQ0FUKS0gcmhpLmdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIENvbXBhcmF0b3IgY2hhbmdlZENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gbGhpID0gKEluZm8pbGhzOworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyByaGkgPSAoSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gbGhpLm5hbWUgOiBsaGkuY2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKHJoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmIGxoaS5nZXRWYWwoQ0FUKSAhPSBDQVRfQ0xBU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIENvbXBhcmF0b3IgY2xhc3NGaXJzdENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gbGhpID0gKEluZm8pbGhzOworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyByaGkgPSAoSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGNscyA9IGxoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByY2xzID0gcmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsY2xzID09IHJjbHMgPyAwIDogKGxjbHMgPyAtMSA6IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGNscyA/IGxoaS5uYW1lIDogbGhpLmNscykuY29tcGFyZVRvKHJjbHMgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5nZXRWYWwoQ0FUKS0gcmhpLmdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDAgJiYgIWxjbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLnNpZy5jb21wYXJlVG8ocmhpLnNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVOYW1lcyA9IHsKKyAgICAgICAgICAgICJzdGF0dXMiLCAidmlzaWJpbGl0eSIsICJzdGF0aWMiLCAiZmluYWwiLCAic3luY2hyb25pemVkIiwgCisgICAgICAgICAgICAiYWJzdHJhY3QiLCAiY2F0ZWdvcnkiLCAicGFja2FnZSIsICJjbGFzcyIsICJuYW1lIiwgInNpZ25hdHVyZSIKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIG5hbWVzID0geworICAgICAgICAgICAgeyAiZHJhZnQgICAgICIsICJzdGFibGUgICAgIiwgImRlcHJlY2F0ZWQiLCAib2Jzb2xldGUgICIgfSwKKyAgICAgICAgICAgIHsgInBhY2thZ2UiLCAicHVibGljIiwgInByb3RlY3RlZCIsICJwcml2YXRlIiB9LAorICAgICAgICAgICAgeyAiIiwgInN0YXRpYyIgfSwKKyAgICAgICAgICAgIHsgIiIsICJmaW5hbCIgfSwKKyAgICAgICAgICAgIHsgIiIsICJzeW5jaHJvbml6ZWQiIH0sCisgICAgICAgICAgICB7ICIiLCAiYWJzdHJhY3QiIH0sCisgICAgICAgICAgICB7ICJjbGFzcyIsICJmaWVsZCIsICJjb25zdHJ1Y3RvciIsICJtZXRob2QiICB9LAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHNob3J0TmFtZXMgPSB7CisgICAgICAgICAgICB7ICJEUiIsICJTVCIsICJEUCIsICJPQiIgfSwKKyAgICAgICAgICAgIHsgIlBLIiwgIlBCIiwgIlBUIiwgIlBSIiB9LAorICAgICAgICAgICAgeyAiTlMiLCAiU1QiIH0sCisgICAgICAgICAgICB7ICJORiIsICJGTiIgfSwKKyAgICAgICAgICAgIHsgIk5TIiwgIlNZIiB9LAorICAgICAgICAgICAgeyAiTkEiLCAiQUIiIH0sCisgICAgICAgICAgICB7ICJMIiwgIkYiLCAiQyIsICJNIiB9LAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHZhbGlkYXRlVHlwZShpbnQgdHlwKSB7CisgICAgICAgICAgICBpZiAodHlwIDwgMCB8fCB0eXAgPiBOVU1fVFlQRVMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgdHlwZSBpbmRleDogIiArIHR5cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldChOQU0sIHRydWUpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIERlbHRhSW5mbyBleHRlbmRzIEFQSUluZm8geworICAgICAgICBwcml2YXRlIEluZm8gYTsKKyAgICAgICAgcHJpdmF0ZSBJbmZvIGI7CisKKyAgICAgICAgRGVsdGFJbmZvKEluZm8gYSwgSW5mbyBiKSB7CisgICAgICAgICAgICB0aGlzLmEgPSBhOworICAgICAgICAgICAgdGhpcy5iID0gYjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VmFsKGludCB0eXApIHsKKyAgICAgICAgICAgIHJldHVybiBhLmdldFZhbCh0eXApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZikgeworICAgICAgICAgICAgcmV0dXJuIGEuZ2V0KHR5cCwgYnJpZWYpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoQnVmZmVyZWRXcml0ZXIgdywgYm9vbGVhbiBicmllZiwgYm9vbGVhbiBodG1sLCBib29sZWFuIGRldGFpbCkgeworICAgICAgICAgICAgYS53cml0ZSh3LCBicmllZiwgaHRtbCwgZGV0YWlsKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPGJyPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGIud3JpdGUodywgYnJpZWYsIGh0bWwsIGRldGFpbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGEuZ2V0KE5BTSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBvcHRpb25MZW5ndGgoU3RyaW5nIG9wdGlvbikgeworICAgICAgICBpZiAob3B0aW9uLmVxdWFscygiLWh0bWwiKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLW5hbWUiKSkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItY29tcGFyZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gc3RhcnQoUm9vdERvYyByb290KSB7CisgICAgICAgIHJldHVybiBuZXcgQ2hlY2tBUEkocm9vdCkucnVuKCk7CisgICAgfQorCisgICAgQ2hlY2tBUEkoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgLy8gICAgICB0aGlzLmNvbXBhcmUgPSAiYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2FwaTJfOC50eHQiOworCisgICAgICAgIFN0cmluZ1tdW10gb3B0aW9ucyA9IHJvb3Qub3B0aW9ucygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHQgPSBvcHRpb25zW2ldWzBdOworICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHMoIi1odG1sIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmh0bWwgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zcmNOYW1lID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5vdXRwdXQgPSBvcHRpb25zW2ldWzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItY29tcGFyZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb21wYXJlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gVVJMIHVybCA9IG5ldyBVUkwoY29tcGFyZSk7CisgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoY29tcGFyZSk7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKworICAgICAgICAgICAgICAgIC8vIHJlYWQgaGVhZGVyIGxpbmUKKyAgICAgICAgICAgICAgICBpbnQgdmVyc2lvbiA9IEludGVnZXIucGFyc2VJbnQocmVhZFRva2VuKGJyKSk7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdmVyc2lvbiBpZiB3ZSBjaGFuZ2UgaXQgbGF0ZXIsIHByb2JhYmx5IGNhbiBqdXN0IHJlYnVpbGQgdGhvdWdoCisgICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlTmFtZSA9IHJlYWRUb2tlbihicik7CisgICAgICAgICAgICAgICAgYnIucmVhZExpbmUoKTsKKworICAgICAgICAgICAgICAgIC8vIHJlYWQgZGF0YQorICAgICAgICAgICAgICAgIHRoaXMuY29tcGFyZVNldCA9IG5ldyBUcmVlU2V0KEluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgZm9yIChJbmZvIGluZm8gPSBuZXcgSW5mbygpOyBpbmZvLnJlYWQoYnIpOyBpbmZvID0gbmV3IEluZm8oKSkgeworICAgICAgICAgICAgICAgICAgICBjb21wYXJlU2V0LmFkZChpbmZvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oImVycm9yIHJlYWRpbmcgIiArIGNvbXBhcmUpOworICAgICAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdHMgPSBuZXcgVHJlZVNldChJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBydW4oKSB7CisgICAgICAgIGRvRG9jcyhyb290LmNsYXNzZXMoKSk7CisKKyAgICAgICAgT3V0cHV0U3RyZWFtIG9zID0gU3lzdGVtLm91dDsKKyAgICAgICAgaWYgKG91dHB1dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG9zID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQnVmZmVyZWRXcml0ZXIgYncgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zdyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpOworICAgICAgICAgICAgYncgPSBuZXcgQnVmZmVyZWRXcml0ZXIob3N3KTsKKworICAgICAgICAgICAgaWYgKGNvbXBhcmVTZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIHdyaXRpbmcgZGF0YSBmaWxlCisgICAgICAgICAgICAgICAgYncud3JpdGUoU3RyaW5nLnZhbHVlT2YoREFUQV9GSUxFX1ZFUlNJT04pICsgU0VQKTsgLy8gaGVhZGVyIHZlcnNpb24KKyAgICAgICAgICAgICAgICBidy53cml0ZShzcmNOYW1lICsgU0VQKTsgLy8gc291cmNlIG5hbWUKKyAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKHJlc3VsdHMsIGJ3LCB0cnVlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB3cml0aW5nIGNvbXBhcmlzb24gaW5mbworICAgICAgICAgICAgICAgIFRyZWVTZXQgcmVtb3ZlZCA9IChUcmVlU2V0KWNvbXBhcmVTZXQuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZW1vdmVkLnJlbW92ZUFsbChyZXN1bHRzKTsKKworICAgICAgICAgICAgICAgIFRyZWVTZXQgYWRkZWQgPSAoVHJlZVNldClyZXN1bHRzLmNsb25lKCk7CisgICAgICAgICAgICAgICAgYWRkZWQucmVtb3ZlQWxsKGNvbXBhcmVTZXQpOworCisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhZGRlZC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHJpID0gcmVtb3ZlZC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIEFycmF5TGlzdCBjaGFuZ2VkID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIENvbXBhcmF0b3IgYyA9IEluZm8uY2hhbmdlZENvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJbmZvIGEgPSBudWxsLCByID0gbnVsbDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYWkuaGFzTmV4dCgpICYmIHJpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSBhID0gKEluZm8pYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAociA9PSBudWxsKSByID0gKEluZm8pcmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gYy5jb21wYXJlKGEsIHIpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkLmFkZChuZXcgRGVsdGFJbmZvKGEsIHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBudWxsOyBhaS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBudWxsOyByaS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZGVkID0gc3RyaXBBbmRSZXNvcnQoYWRkZWQpOworICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBzdHJpcEFuZFJlc29ydChyZW1vdmVkKTsKKworICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSA9ICJJQ1U0SiBBUEkgQ29tcGFyaXNvbjogIiArIHNyY05hbWUgKyAiIHdpdGggIiArIGNvbXBhcmVOYW1lOworCisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aHRtbD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhlYWQ+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjx0aXRsZT4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUodGl0bGUpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC90aXRsZT4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGJvZHk+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgxPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSh0aXRsZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2gxPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoci8+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIlJlbW92ZWQgZnJvbSAiICsgY29tcGFyZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhyZW1vdmVkLCBidywgZmFsc2UsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD4obm8gQVBJIHJlbW92ZWQpPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgyPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiQ2hhbmdlZCBpbiAiICsgc3JjTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGNoYW5nZWQsIGJ3LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPHA+KG5vIEFQSSBjaGFuZ2VkKTwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoci8+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxoMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIkFkZGVkIGluICIgKyBzcmNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoYWRkZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGFkZGVkLCBidywgZmFsc2UsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD4obm8gQVBJIGFkZGVkKTwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPHA+PGk+Q29udGVudHMgZ2VuZXJhdGVkIGJ5IENoZWNrQVBJIHRvb2wuPGJyLz5Db3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24sIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9pPjwvcD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC9ib2R5PiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2h0bWw+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiQ29tcGFyaW5nICIgKyBzcmNOYW1lICsgIiB3aXRoICIgKyBjb21wYXJlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIj09PSBSZW1vdmVkIGZyb20gIiArIGNvbXBhcmVOYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVtb3ZlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZVJlc3VsdHMocmVtb3ZlZCwgYncsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIihubyBBUEkgcmVtb3ZlZCkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPT09IENoYW5nZWQgaW4gIiArIHNyY05hbWUgKyAiID09PSIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhjaGFuZ2VkLCBidywgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCIobm8gQVBJIGNoYW5nZWQpIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIj09PSBBZGRlZCBpbiAiICsgc3JjTmFtZSArICIgPT09Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFkZGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhhZGRlZCwgYncsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIihubyBBUEkgYWRkZWQpIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYncuY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsgYncuY2xvc2UoKTsgfSBjYXRjaCAoSU9FeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIndyaXRlIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jcyhQcm9ncmFtRWxlbWVudERvY1tdIGRvY3MpIHsKKyAgICAgICAgaWYgKGRvY3MgIT0gbnVsbCAmJiBkb2NzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoaWdub3JlKGRvYykpIHJldHVybjsKKworICAgICAgICBpZiAoZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKSkgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5maWVsZHMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5tZXRob2RzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuaW5uZXJDbGFzc2VzKCkpOworICAgICAgICB9CisKKyAgICAgICAgSW5mbyBpbmZvID0gbmV3IEluZm8oKTsKKyAgICAgICAgaWYgKGluZm8ucmVhZChkb2MpKSB7CisgICAgICAgICAgICByZXN1bHRzLmFkZChpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpZ25vcmUoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisgICAgICAgIGlmIChkb2MgPT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MuaXNQcml2YXRlKCkgfHwgZG9jLmlzUGFja2FnZVByaXZhdGUoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MucXVhbGlmaWVkTmFtZSgpLmluZGV4T2YoIi5taXNjIikgIT0gLTEpIHJldHVybiB0cnVlOworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGFnS2luZEluZGV4KHRhZ3NbaV0ua2luZCgpKSA9PSBJTlRFUk5BTCkgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZVJlc3VsdHMoQ29sbGVjdGlvbiBjLCBCdWZmZXJlZFdyaXRlciB3LCBib29sZWFuIGJyaWVmLCBib29sZWFuIGh0bWwsIGJvb2xlYW4gZGV0YWlsKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBwYWNrID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGNsYXMgPSBudWxsOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGJyaWVmKSB7CisgICAgICAgICAgICAgICAgaW5mby53cml0ZSh3LCBicmllZiwgZmFsc2UsIGRldGFpbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwID0gaW5mby5nZXQoUEFLLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmVxdWFscyhwYWNrKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjxoMz5QYWNrYWdlICIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUocCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIlBhY2thZ2UgIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCc6Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwYWNrID0gcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZ2V0VmFsKENBVCkgIT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGluZm8uZ2V0KENMUywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKGNsYXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8bGk+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXMgPSBuYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiICAgICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8bGk+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLndyaXRlKHcsIGJyaWVmLCBodG1sLCBkZXRhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC9saT4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ud3JpdGUodywgYnJpZWYsIGh0bWwsIGRldGFpbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJJT0V4Y2VwdGlvbiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiIHdyaXRpbmcgIiArIGluZm8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHJlYWRUb2tlbihCdWZmZXJlZFJlYWRlciByKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbMjU2XTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IgKDsgaSA8IGJ1Zi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IGMgPSByLnJlYWQoKTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJ1bmV4cGVjdGVkIEVPRiIpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IFNFUCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmW2ldID0gKGNoYXIpYzsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBidWYubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInVudGVybWluYXRlZCB0b2tlbiIgKyBuZXcgU3RyaW5nKGJ1ZikpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCAwLCBpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBUcmVlU2V0IHN0cmlwQW5kUmVzb3J0KFRyZWVTZXQgdCkgeworICAgICAgICBzdHJpcENsYXNzSW5mbyh0KTsKKyAgICAgICAgVHJlZVNldCByID0gbmV3IFRyZWVTZXQoSW5mby5jbGFzc0ZpcnN0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgci5hZGRBbGwodCk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc3RyaXBDbGFzc0luZm8oQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIC8vIGMgaXMgc29ydGVkIHdpdGggY2xhc3MgaW5mbyBmaXJzdAorICAgICAgICBJdGVyYXRvciBpdGVyID0gYy5pdGVyYXRvcigpOworICAgICAgICBTdHJpbmcgY25hbWUgPSBudWxsOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEluZm8gaW5mbyA9IChJbmZvKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGNscyA9IGluZm8uZ2V0KENMUywgdHJ1ZSk7CisgICAgICAgICAgICBpZiAoY25hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChjbmFtZS5lcXVhbHMoY2xzKSkgeworICAgICAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY25hbWUgPSBudWxsOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGlmIChpbmZvLmdldFZhbChDQVQpID09IENBVF9DTEFTUykgeworICAgICAgICAgICAgICAgIGNuYW1lID0gaW5mby5nZXQoTkFNLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCB0YWdTdGF0dXMoZmluYWwgRG9jIGRvYykgeworICAgICAgICBjbGFzcyBSZXN1bHQgeworICAgICAgICAgICAgaW50IHJlcyA9IC0xOworICAgICAgICAgICAgdm9pZCBzZXQoaW50IHZhbCkgeyBpZiAocmVzICE9IC0xKSB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiYmFkIGRvYzogIiArIGRvYyk7IHJlcyA9IHZhbDsgfQorICAgICAgICAgICAgaW50IGdldCgpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigid2FybmluZzogbm8gdGFnIGZvciAiICsgZG9jKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG5ldyBSZXN1bHQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUYWcgdGFnID0gdGFnc1tpXTsKKworICAgICAgICAgICAgU3RyaW5nIGtpbmQgPSB0YWcua2luZCgpOworICAgICAgICAgICAgaW50IGl4ID0gdGFnS2luZEluZGV4KGtpbmQpOworCisgICAgICAgICAgICBzd2l0Y2ggKGl4KSB7CisgICAgICAgICAgICBjYXNlIElOVEVSTkFMOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoLTIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX0RSQUZUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTVEFCTEU6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChTVEFfU1RBQkxFKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBERVBSRUNBVEVEOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX0RFUFJFQ0FURUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE9CU09MRVRFOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoU1RBX09CU09MRVRFKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTSU5DRToKKyAgICAgICAgICAgIGNhc2UgRVhDRVBUSU9OOgorICAgICAgICAgICAgY2FzZSBWRVJTSU9OOgorICAgICAgICAgICAgY2FzZSBVTktOT1dOOgorICAgICAgICAgICAgY2FzZSBBVVRIT1I6CisgICAgICAgICAgICBjYXNlIFNFRToKKyAgICAgICAgICAgIGNhc2UgUEFSQU06CisgICAgICAgICAgICBjYXNlIFJFVFVSTjoKKyAgICAgICAgICAgIGNhc2UgVEhST1dTOgorICAgICAgICAgICAgY2FzZSBTRVJJQUw6CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oInVua25vd24gaW5kZXggIiArIGl4ICsgIiBmb3IgdGFnOiAiICsga2luZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVSTkFMID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFJBRlQgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFCTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5DRSA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURUQgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVRIT1IgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUUgPSA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWRVJTSU9OID0gNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEFSQU0gPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVRVUk4gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUSFJPV1MgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0JTT0xFVEUgPSAxMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDRVBUSU9OID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFUklBTCA9IDEzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHRhZ0tpbmRJbmRleChTdHJpbmcga2luZCkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0YWdLaW5kcyA9IHsKKyAgICAgICAgICAgICJAaW50ZXJuYWwiLCAiQGRyYWZ0IiwgIkBzdGFibGUiLCAiQHNpbmNlIiwgIkBkZXByZWNhdGVkIiwgIkBhdXRob3IiLCAiQHNlZSIsICJAdmVyc2lvbiIsCisgICAgICAgICAgICAiQHBhcmFtIiwgIkByZXR1cm4iLCAiQHRocm93cyIsICJAb2Jzb2xldGUiLCAiQGV4Y2VwdGlvbiIsICJAc2VyaWFsIgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFnS2luZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChraW5kLmVxdWFscyh0YWdLaW5kc1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVU5LTk9XTjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja1RhZ3MuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrVGFncy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiYjQzNWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9DaGVja1RhZ3MuamF2YQpAQCAtMCwwICsxLDQyMSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworLyoqCisgKiBUaGlzIGlzIGEgdG9vbCB0byBjaGVjayB0aGUgdGFncyBvbiBJQ1U0SiBmaWxlcy4gIEluIHBhcnRpY3VsYXIsIHdlJ3JlIGxvb2tpbmcgZm9yOgorICoKKyAqIC0gbWV0aG9kcyB0aGF0IGhhdmUgbm8gdGFncworICogLSBjdXN0b20gdGFnczogQGRyYWZ0LCBAc3RhYmxlLCBAaW50ZXJuYWw/CisgKiAtIHN0YW5kYXJkIHRhZ3M6IEBzaW5jZSwgQGRlcHJlY2F0ZWQKKyAqCisgKiBTeW50YXggb2YgdGFnczoKKyAqICdAZHJhZnQgSUNVIFguWC5YJworICogJ0BzdGFibGUgSUNVIFguWC5YJworICogJ0BpbnRlcm5hbCcKKyAqICdAc2luY2UgIChkb24ndCB1c2UpJworICogJ0BvYnNvbGV0ZSBJQ1UgWC5YLlgnCisgKiAnQGRlcHJlY2F0ZWQgdG8gYmUgcmVtb3ZlZCBpbiBJQ1UgWC5YLiBbVXNlIC4uLl0nCisgKgorICogZmxhZ3MgbmFtZXMgb2YgY2xhc3NlcyBhbmQgdGhlaXIgbWVtYmVycyB0aGF0IGhhdmUgbm8gdGFncyBvciBpbmNvcnJlY3Qgc3ludGF4LgorICoKKyAqIFJlcXVpcmVzIEpESyAxLjQgb3IgbGF0ZXIKKyAqCisgKiBVc2UgYnVpbGQueG1sICdjaGVja3RhZ3MnIGFudCB0YXJnZXQsIG9yCisgKiBydW4gZnJvbSBkaXJlY3RvcnkgY29udGFpbmluZyBDaGVja1RhZ3MuY2xhc3MgYXMgZm9sbG93czoKKyAqIGphdmFkb2MgLWNsYXNzcGF0aCAke0pBVkFfSE9NRX0vbGliL3Rvb2xzLmphciAtZG9jbGV0IENoZWNrVGFncyAtc291cmNlcGF0aCAke0lDVTRKX3NyY30gW3BhY2thZ2VuYW1lc10KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBjb20uc3VuLmphdmFkb2MuKjsKKworcHVibGljIGNsYXNzIENoZWNrVGFncyB7CisgICAgUm9vdERvYyByb290OworICAgIGJvb2xlYW4gbG9nOworICAgIGJvb2xlYW4gYnJpZWY7CisgICAgYm9vbGVhbiBpc1Nob3J0OworICAgIERvY1N0YWNrIHN0YWNrID0gbmV3IERvY1N0YWNrKCk7CisKKyAgICBjbGFzcyBEb2NOb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaGVhZGVyOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gcHJpbnRlZDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHJlcG9ydEVycm9yOworICAgICAgICBwcml2YXRlIGludCBlcnJvckNvdW50OworCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFN0cmluZyBoZWFkZXIsIGJvb2xlYW4gcmVwb3J0RXJyb3IpIHsKKyAgICAgICAgICAgIHRoaXMuaGVhZGVyID0gaGVhZGVyOworICAgICAgICAgICAgdGhpcy5wcmludGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmVycm9yQ291bnQgPSAwOworICAgICAgICAgICAgdGhpcy5yZXBvcnRFcnJvciA9IHJlcG9ydEVycm9yOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gaGVhZGVyICsKKyAgICAgICAgICAgICAgICAiIHByaW50ZWQ6ICIgKyBwcmludGVkICsKKyAgICAgICAgICAgICAgICAiIHJlcG9ydEVycm9yOiAiICsgcmVwb3J0RXJyb3IgKworICAgICAgICAgICAgICAgICIgZXJyb3JDb3VudDogIiArIGVycm9yQ291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjbGFzcyBEb2NTdGFjayB7CisgICAgICAgIHByaXZhdGUgRG9jTm9kZVtdIHN0YWNrOworICAgICAgICBwcml2YXRlIGludCBpbmRleDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIG5ld2xpbmU7CisKKyAgICAgICAgcHVibGljIHZvaWQgcHVzaChTdHJpbmcgaGVhZGVyLCBib29sZWFuIHJlcG9ydEVycm9yKSB7CisgICAgICAgICAgICBpZiAoc3RhY2sgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0YWNrID0gbmV3IERvY05vZGVbNV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBzdGFjay5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgRG9jTm9kZVtdIHRlbXAgPSBuZXcgRG9jTm9kZVtzdGFjay5sZW5ndGggKiAyXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdGFjaywgMCwgdGVtcCwgMCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBzdGFjayA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YWNrW2luZGV4XSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhY2tbaW5kZXhdID0gbmV3IERvY05vZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICBTeXN0ZW0ub3V0LnByaW50bG4oInJlc2V0IFsiICsgaW5kZXggKyAiXSBoZWFkZXI6ICIgKyBoZWFkZXIgKyAiIHJlcG9ydDogIiArIHJlcG9ydEVycm9yKTsKKyAgICAgICAgICAgIHN0YWNrW2luZGV4KytdLnJlc2V0KGhlYWRlciwgcmVwb3J0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcG9wKCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKworICAgICAgICAgICAgaW50IGVjID0gc3RhY2tbaW5kZXhdLmVycm9yQ291bnQ7IC8vIGluZGV4IGFscmVhZHkgZGVjcmVtZW50ZWQKKyAgICAgICAgICAgIGlmIChlYyA+IDAgfHwgaW5kZXggPT0gMCkgeyAvLyBhbHdheXMgcmVwb3J0IGZvciBvdXRlcm1vc3QgZWxlbWVudAorICAgICAgICAgICAgICAgIGlmIChzdGFja1tpbmRleF0ucmVwb3J0RXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0KCIoIiArIGVjICsgKGVjID09IDEgPyAiIGVycm9yIiA6ICIgZXJyb3JzIikgKyAiKSIsIGZhbHNlLCB0cnVlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gcHJvcGFnYXRlIHRvIHBhcmVudAorICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2tbaW5kZXgtMV0uZXJyb3JDb3VudCArPSBlYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOyAvLyBhbHdheXMgc2luY2Ugd2UgYWx3YXlzIHJlcG9ydCBudW1iZXIgb2YgZXJyb3JzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBvdXRwdXQoU3RyaW5nIG1zZywgYm9vbGVhbiBlcnJvciwgYm9vbGVhbiBuZXdsaW5lKSB7CisgICAgICAgICAgICBvdXRwdXQobXNnLCBlcnJvciwgbmV3bGluZSwgaW5kZXgtMSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIG91dHB1dChTdHJpbmcgbXNnLCBib29sZWFuIGVycm9yLCBib29sZWFuIG5ld2xpbmUsIGludCBpeCkgeworICAgICAgICAgICAgRG9jTm9kZSBsYXN0ID0gc3RhY2tbaXhdOworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgbGFzdC5lcnJvckNvdW50ICs9IDE7CisJICAgIH0KKworICAgICAgICAgICAgYm9vbGVhbiBzaG93ID0gIWJyaWVmIHx8IGxhc3QucmVwb3J0RXJyb3I7CisgICAgICAgICAgICAvLyBib29sZWFuIG5vbXNnID0gc2hvdyAmJiBicmllZiAmJiBlcnJvcjsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Pj4gIiArIGxhc3QgKyAiIGVycm9yOiAiICsgZXJyb3IgKyAiIHNob3c6ICIgKyBzaG93ICsgIiBub21zZzogIiArIG5vbXNnKTsKKworICAgICAgICAgICAgaWYgKHNob3cpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNTaG9ydCB8fCAoYnJpZWYgJiYgZXJyb3IpKSB7CisgICAgICAgICAgICAgICAgICAgIG1zZyA9IG51bGw7IC8vIG51a2UgZXJyb3IgbWVzc2FnZXMgaWYgd2UncmUgYnJpZWYsIGp1c3QgcmVwb3J0IGhlYWRlcnMgYW5kIHRvdGFscworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBpeDspIHsKKyAgICAgICAgICAgICAgICAgICAgRG9jTm9kZSBuID0gc3RhY2tbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChuLnByaW50ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtc2cgIT0gbnVsbCB8fCAhbGFzdC5wcmludGVkKSB7IC8vIHNpbmNlIGluZGV4ID4gMCBsYXN0IGlzIG5vdCBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubmV3bGluZSAmJiBpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV3bGluZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChuLmhlYWRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBuLnByaW50ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdsaW5lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1zZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwICYmIHRoaXMubmV3bGluZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIqKiogIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChtc2cpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5uZXdsaW5lID0gbmV3bGluZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzdGFydChSb290RG9jIHJvb3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGVja1RhZ3Mocm9vdCkucnVuKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgb3B0aW9uTGVuZ3RoKFN0cmluZyBvcHRpb24pIHsKKyAgICAgICAgaWYgKG9wdGlvbi5lcXVhbHMoIi1sb2ciKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLWJyaWVmIikpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1zaG9ydCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBDaGVja1RhZ3MoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgU3RyaW5nW11bXSBvcHRpb25zID0gcm9vdC5vcHRpb25zKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG9wdCA9IG9wdGlvbnNbaV1bMF07CisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiLWxvZyIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5sb2cgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItYnJpZWYiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuYnJpZWYgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItc2hvcnQiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuaXNTaG9ydCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIHJ1bigpIHsKKyAgICAgICAgZG9Eb2NzKHJvb3QuY2xhc3NlcygpLCAiUGFja2FnZSIsIHRydWUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHRhZ0tpbmRzID0geworICAgICAgICAiQGludGVybmFsIiwgIkBkcmFmdCIsICJAc3RhYmxlIiwgIkBzaW5jZSIsICJAZGVwcmVjYXRlZCIsICJAYXV0aG9yIiwgIkBzZWUiLCAiQHZlcnNpb24iLAorICAgICAgICAiQHBhcmFtIiwgIkByZXR1cm4iLCAiQHRocm93cyIsICJAb2Jzb2xldGUiLCAiQGV4Y2VwdGlvbiIsICJAc2VyaWFsIiwgIkBwcm92aXNpb25hbCIKKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisgICAgc3RhdGljIGZpbmFsIGludCBJTlRFUk5BTCA9IDA7CisgICAgc3RhdGljIGZpbmFsIGludCBEUkFGVCA9IDE7CisgICAgc3RhdGljIGZpbmFsIGludCBTVEFCTEUgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0lOQ0UgPSAzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDQ7CisgICAgc3RhdGljIGZpbmFsIGludCBBVVRIT1IgPSA1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VFID0gNjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSA3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUEFSQU0gPSA4OworICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVUVVJOID0gOTsKKyAgICBzdGF0aWMgZmluYWwgaW50IFRIUk9XUyA9IDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT0JTT0xFVEUgPSAxMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IEVYQ0VQVElPTiA9IDEyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VSSUFMID0gMTM7CisgICAgc3RhdGljIGZpbmFsIGludCBQUk9WSVNJT05BTCA9IDE0OworCisgICAgc3RhdGljIGludCB0YWdLaW5kSW5kZXgoU3RyaW5nIGtpbmQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KKworICAgIGJvb2xlYW4gbmV3bGluZSA9IGZhbHNlOworCisgICAgdm9pZCBvdXRwdXQoU3RyaW5nIG1zZywgYm9vbGVhbiBlcnJvciwgYm9vbGVhbiBuZXdsaW5lKSB7CisgICAgICAgIHN0YWNrLm91dHB1dChtc2csIGVycm9yLCBuZXdsaW5lKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZygpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbigpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZyhTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycmxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgb3V0cHV0KG1zZywgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCB0YWdFcnIoVGFnIHRhZykgeworICAgICAgICAvLyBUYWcucG9zaXRpb24oKSByZXF1aXJlcyBKREsgMS40LCBidWlsZC54bWwgdGVzdHMgZm9yIHRoaXMKKyAgICAgICAgZXJybG4odGFnLnRvU3RyaW5nKCkgKyAiIFsiICsgdGFnLnBvc2l0aW9uKCkgKyAiXSIpOworICAgIH0KKworICAgIHZvaWQgZG9Eb2NzKFByb2dyYW1FbGVtZW50RG9jW10gZG9jcywgU3RyaW5nIGhlYWRlciwgYm9vbGVhbiByZXBvcnRFcnJvcikgeworICAgICAgICBpZiAoZG9jcyAhPSBudWxsICYmIGRvY3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgc3RhY2sucHVzaChoZWFkZXIsIHJlcG9ydEVycm9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoZG9jICE9IG51bGwgJiYgKGRvYy5pc1B1YmxpYygpIHx8IGRvYy5pc1Byb3RlY3RlZCgpKQorICAgICAgICAgICAgJiYgIShkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkpIHsKKworICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgaW4gSkRLIDEuNC4xIE1lbWJlckRvYy5pc1N5bnRoZXRpYyBpcyBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgZm9yCisgICAgICAgICAgICAvLyBzeW50aGV0aWMgY29uc3RydWN0b3JzLiAgU28geW91J2xsIGhhdmUgdG8gbGl2ZSB3aXRoIHNwdXJpb3VzIGVycm9ycyBvciAnaW1wbGVtZW50JworICAgICAgICAgICAgLy8gdGhlIHN5bnRoZXRpYyBjb25zdHJ1Y3RvcnMuLi4KKworICAgICAgICAgICAgYm9vbGVhbiBpc0NsYXNzID0gZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciA9ICItLS0gIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaGVhZGVyID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoZWFkZXIgKz0gKGlzQ2xhc3MgPyBkb2MucXVhbGlmaWVkTmFtZSgpIDogZG9jLm5hbWUoKSk7CisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgRXhlY3V0YWJsZU1lbWJlckRvYykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAoKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jKS5mbGF0U2lnbmF0dXJlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAiIC0tLSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wdXNoKGhlYWRlciwgaXNDbGFzcyk7CisgICAgICAgICAgICBpZiAobG9nKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gcmVjdXJzZSA9IGRvVGFncyhkb2MpOworICAgICAgICAgICAgaWYgKHJlY3Vyc2UgJiYgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworICAgICAgICAgICAgICAgIGRvRG9jcyhjZG9jLmZpZWxkcygpLCAiRmllbGRzIiwgIWJyaWVmKTsKKyAgICAgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSwgIkNvbnN0cnVjdG9ycyIsICFicmllZik7CisgICAgICAgICAgICAgICAgZG9Eb2NzKGNkb2MubWV0aG9kcygpLCAiTWV0aG9kcyIsICFicmllZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiBzdWJlbGVtZW50cyBvZiB0aGlzIGRvYyBzaG91bGQgYmUgY2hlY2tlZCAqLworICAgIGJvb2xlYW4gZG9UYWdzKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgYm9vbGVhbiBmb3VuZFJlcXVpcmVkVGFnID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZm91bmREcmFmdFRhZyA9IGZhbHNlOworCWJvb2xlYW4gZm91bmRQcm92aXNpb25hbFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kRGVwcmVjYXRlZFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kT2Jzb2xldGVUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kSW50ZXJuYWxUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kU3RhYmxlVGFnID0gZmFsc2U7CisJYm9vbGVhbiByZXRhaW5BbGwgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRhZyB0YWcgPSB0YWdzW2ldOworCisgICAgICAgICAgICBTdHJpbmcga2luZCA9IHRhZy5raW5kKCk7CisgICAgICAgICAgICBpbnQgaXggPSB0YWdLaW5kSW5kZXgoa2luZCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoaXgpIHsKKyAgICAgICAgICAgIGNhc2UgVU5LTk9XTjoKKyAgICAgICAgICAgICAgICBlcnJsbigidW5rbm93biBraW5kOiAiICsga2luZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU5URVJOQUw6CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCWZvdW5kSW50ZXJuYWxUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIGZvdW5kUmVxdWlyZWRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvdW5kRHJhZnRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSAyLjgiKSAhPSAtMSAmJgorCQkgICAgdGFnLnRleHQoKS5pbmRleE9mKCIocmV0YWluIikgPT0gLTEpIHsgLy8gY2F0Y2ggYm90aCByZXRhaW4gYW5kIHJldGFpbkFsbAorICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwkJcmV0YWluQWxsIHw9ICh0YWcudGV4dCgpLmluZGV4T2YoIihyZXRhaW5BbGwpIikgIT0gLTEpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisJICAgIGNhc2UgUFJPVklTSU9OQUw6CisJCWZvdW5kUHJvdmlzaW9uYWxUYWcgPSB0cnVlOworCQlicmVhazsKKworICAgICAgICAgICAgY2FzZSBERVBSRUNBVEVEOgorICAgICAgICAgICAgICAgIGZvdW5kRGVwcmVjYXRlZFRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHRhZy50ZXh0KCkuaW5kZXhPZigiSUNVIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZFJlcXVpcmVkVGFnID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT0JTT0xFVEU6CisgICAgICAgICAgICAgICAgaWYgKHRhZy50ZXh0KCkuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm91bmRPYnNvbGV0ZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RBQkxFOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSAhPSAwICYmIHRleHQuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCSAgICBmb3VuZFN0YWJsZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgICAgIHRhZ0Vycih0YWcpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEVYQ0VQVElPTjoKKyAgICAgICAgICAgICAgICBsb2dsbigiWW91IHJlYWxseSBvdWdodCB0byB1c2UgQHRocm93cywgeW91IGtub3cuLi4gOi0pIik7CisKKyAgICAgICAgICAgIGNhc2UgQVVUSE9SOgorICAgICAgICAgICAgY2FzZSBTRUU6CisgICAgICAgICAgICBjYXNlIFBBUkFNOgorICAgICAgICAgICAgY2FzZSBSRVRVUk46CisgICAgICAgICAgICBjYXNlIFRIUk9XUzoKKyAgICAgICAgICAgIGNhc2UgU0VSSUFMOgorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZXJybG4oInVua25vd24gaW5kZXg6ICIgKyBpeCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmb3VuZFJlcXVpcmVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigibWlzc2luZyByZXF1aXJlZCB0YWcgWyIgKyBkb2MucG9zaXRpb24oKSArICJdIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvdW5kSW50ZXJuYWxUYWcgJiYgIWZvdW5kRGVwcmVjYXRlZFRhZykgeworICAgICAgICAgICAgZXJybG4oImludGVybmFsIHRhZyBtaXNzaW5nIGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZm91bmREcmFmdFRhZyAmJiAhKGZvdW5kRGVwcmVjYXRlZFRhZyB8fCBmb3VuZFByb3Zpc2lvbmFsVGFnKSkgeworICAgICAgICAgICAgZXJybG4oImRyYWZ0IHRhZyBtaXNzaW5nIGRlcHJlY2F0ZWQgb3IgcHJvdmlzaW9uYWwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZm91bmRPYnNvbGV0ZVRhZyAmJiAhZm91bmREZXByZWNhdGVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigib2Jzb2xldGUgdGFnIG1pc3NpbmcgZGVwcmVjYXRlZCIpOworICAgICAgICB9CisJaWYgKGZvdW5kU3RhYmxlVGFnICYmIGZvdW5kRGVwcmVjYXRlZFRhZykgeworCSAgICBsb2dsbigic3RhYmxlIGRlcHJlY2F0ZWQiKTsKKwl9CisKKwlyZXR1cm4gIXJldGFpbkFsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Db2RlTWFuZ2xlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ29kZU1hbmdsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTY4ZDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ29kZU1hbmdsZXIuamF2YQpAQCAtMCwwICsxLDg0MSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVuYW1lRmlsdGVyOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisvLyBpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CisKKy8qKgorICogQSBzaW1wbGUgZmFjaWxpdHkgZm9yIGFkZGluZyBDLWxpa2UgcHJlcHJvY2Vzc2luZyB0byAuamF2YSBmaWxlcy4KKyAqIFRoaXMgb25seSB1bmRlcnN0YW5kcyBhIHN1YnNldCBvZiB0aGUgQyBwcmVwcm9jZXNzaW5nIHN5bnRheC4KKyAqIEl0cyB1c2VkIHRvIG1hbmFnZSBmaWxlcyB0aGF0IHdpdGggb25seSBzbWFsbCBkaWZmZXJlbmNlcyBjYW4gYmUKKyAqIGNvbXBpbGVkIGZvciBkaWZmZXJlbnQgSlZNcy4gIFRoaXMgY2hhbmdlcyBmaWxlcyBpbiBwbGFjZSwgCisgKiBjb21tZW50aW5nIG91dCBsaW5lcyBiYXNlZCBvbiB0aGUgY3VycmVudCBmbGFnIHNldHRpbmdzLgorICovCitwdWJsaWMgY2xhc3MgQ29kZU1hbmdsZXIgeworICAgIHByaXZhdGUgRmlsZSBpbmRpcjsgICAgICAgIC8vIHJvb3Qgb2YgaW5wdXQKKyAgICBwcml2YXRlIEZpbGUgb3V0ZGlyOyAgICAgICAvLyByb290IG9mIG91dHB1dAorICAgIHByaXZhdGUgU3RyaW5nIHN1ZmZpeDsgICAgIC8vIHN1ZmZpeCB0byBwcm9jZXNzLCBkZWZhdWx0ICcuanBwJworICAgIHByaXZhdGUgYm9vbGVhbiByZWN1cnNlOyAgIC8vIHRydWUgaWYgcmVjdXJzZSBvbiBkaXJlY3RvcmllcworICAgIHByaXZhdGUgYm9vbGVhbiBmb3JjZTsgICAgIC8vIHRydWUgaWYgZm9yY2UgcmVwcm9jZXNzIG9mIGZpbGVzCisgICAgcHJpdmF0ZSBib29sZWFuIGNsZWFuOyAgICAgLy8gdHJ1ZSBpZiBvdXRwdXQgaXMgdG8gYmUgY2xlYW5lZAorICAgIHByaXZhdGUgYm9vbGVhbiB0aW1lc3RhbXA7IC8vIHRydWUgaWYgd2UgcmVhZC93cml0ZSB0aW1lc3RhbXAKKyAgICBwcml2YXRlIEhhc2hNYXAgbWFwOyAgICAgICAvLyBkZWZpbmVzCisgICAgcHJpdmF0ZSBBcnJheUxpc3QgbmFtZXM7ICAgLy8gZmlsZXMvZGlyZWN0b3JpZXMgdG8gcHJvY2VzcworICAgIHByaXZhdGUgU3RyaW5nIGhlYWRlcjsgICAgIC8vIHNvcnRlZCBsaXN0IG9mIGRlZmluZXMgcGFzc2VkIGluCisKKyAgICBwcml2YXRlIGJvb2xlYW4gdmVyYm9zZTsgLy8gdHJ1ZSBpZiB3ZSBlbWl0IGRlYnVnIG91dHB1dAorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElHTk9SRV9QUkVGSVggPSAiLy8jIyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUl9QUkVGSVggPSAiLy8jI2hlYWRlciI7CisKKy8vICAgICBzdGF0aWMgZmluYWwgUGF0dGVybiBwYXQgPSBQYXR0ZXJuLmNvbXBpbGUoCisvLyAgICAgICAgICIoP2kpXihcXHMqKD86Ly8rKT8/XFxzKikjKGlmZGVmXFxzfGlmbmRlZlxcc3xlbHNlfGVuZGlmfHVuZGVmXFxzfGRlZmluZVxcc3xpZlxcc3xlbGlmXFxzKVxccyooLiopJCIpOworLy8gICAgIC8vIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHBhdDIgPSBQYXR0ZXJuLmNvbXBpbGUoIihbXj0hXSspXFxzKihbIT1dPz0pPz9cXHMqKFxcdyspIik7CisvLyAgICAgc3RhdGljIGZpbmFsIFBhdHRlcm4gcGF0MiA9IFBhdHRlcm4uY29tcGlsZSgiXFxzKihcXHcrKVxccyooWyE9XT89KT8/XFxzKihbXlxcc10/LiokKSIpOworLy8gICAgIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHBhdDMgPSBQYXR0ZXJuLmNvbXBpbGUoIl4oXFxzKi8vIyMpLioiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKy8vICAgICAgICAgdGVzdCgpOworICAgICAgICBuZXcgQ29kZU1hbmdsZXIoYXJncykucnVuKCk7CisgICAgfQorCisvLyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0ZXN0KCkgeworLy8gICAgICAgICB0ZXN0UGF0KCk7CisvLyAgICAgICAgIHRlc3RQYXQyKCk7CisvLyAgICAgICAgIHRlc3RQYXQzKCk7CisvLyAgICAgfQorLy8gICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdGVzdFBhdCgpIHsKKy8vICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IHBhdCIpOworLy8gICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKy8vICAgICAgICAgICAgICIiLAorLy8gICAgICAgICAgICAgIiAiLAorLy8gICAgICAgICAgICAgIiNlbmRpZiIsCisvLyAgICAgICAgICAgICAiIyBlbmRpZiIsCisvLyAgICAgICAgICAgICAiI0VORElGIiwKKy8vICAgICAgICAgICAgICIjZU5kSWYiLAorLy8gICAgICAgICAgICAgIi8vI2VuZGlmIiwKKy8vICAgICAgICAgICAgICIvLyAjZW5kaWYiLAorLy8gICAgICAgICAgICAgIi8vICMgZW5kaWYiLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZmRlZiBmb28iLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZm5kZWYgZm9vIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZWxzZSIsCisvLyAgICAgICAgICAgICAiICAvLyAgI2VuZGlmIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjdW5kZWYgZm9vIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZGVmaW5lIGZvbyBiYXIiLAorLy8gICAgICAgICAgICAgIiAgLy8gICNpZiBmb28gPT0gYmFyIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjZWxpZiBiYXIgIT0gYmF6IiwKKy8vICAgICAgICAgfTsKKy8vICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgicGF0ICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBNYXRjaGVyIG0gPSBwYXQubWF0Y2hlcih0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobS5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbS5ncm91cCgxKSArICInICciICsgbS5ncm91cCgyKSArICInICciICsgbS5ncm91cCgzKSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJkdWcgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIFN0cmluZ1tdIHJlcyA9IG5ldyBTdHJpbmdbM107CisvLyAgICAgICAgICAgICBpZiAocGF0TWF0Y2godGVzdHNbaV0sIHJlcykpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgcmVzWzBdICsgIicgJyIgKyByZXNbMV0gKyAiJyAnIiArIHJlc1syXSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHRlc3RQYXQyKCkgeworLy8gICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRlc3QgcGF0MiIpOworLy8gICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKy8vICAgICAgICAgICAgICIiLAorLy8gICAgICAgICAgICAgIiAiLAorLy8gICAgICAgICAgICAgInRlc3QiLAorLy8gICAgICAgICAgICAgIiB0ZXN0IiwKKy8vICAgICAgICAgICAgICJ0ZXN0ICIsCisvLyAgICAgICAgICAgICAiIHRlc3QgIiwKKy8vICAgICAgICAgICAgICIgdGVzdCA9PSIsCisvLyAgICAgICAgICAgICAiICE9IiwKKy8vICAgICAgICAgICAgICIgIT1mb28iLAorLy8gICAgICAgICAgICAgImZvbz09YmFyIiwKKy8vICAgICAgICAgICAgICJmb28gPT1iYXIiLAorLy8gICAgICAgICAgICAgImZvbz09IGJhciIsCisvLyAgICAgICAgICAgICAiZm9vID09IGJhciIsCisvLyAgICAgICAgICAgICAiZm9vIGJhciBiYXosIHdvbXBmIiwKKy8vICAgICAgICAgICAgICJmb289YmFyPWJheiwgd29tcGYgYSBsb28iLAorLy8gICAgICAgICB9OworLy8gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJwYXQgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIE1hdGNoZXIgbTIgPSBwYXQyLm1hdGNoZXIodGVzdHNbaV0pOworLy8gICAgICAgICAgICAgaWYgKG0yLmZpbmQoKSkgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJyIgKyBtMi5ncm91cCgxKSArICInICciICsgbTIuZ3JvdXAoMikgKyAiJyAnIiArIG0yLmdyb3VwKDMpICsgIiciKTsKKy8vICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaWRuJ3QgbWF0Y2giKTsKKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImR1ZyAnIiArIHRlc3RzW2ldICsgIicgLS0+ICIpOworLy8gICAgICAgICAgICAgU3RyaW5nW10gcmVzID0gbmV3IFN0cmluZ1szXTsKKy8vICAgICAgICAgICAgIGlmIChwYXQyTWF0Y2godGVzdHNbaV0sIHJlcykpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgcmVzWzBdICsgIicgJyIgKyByZXNbMV0gKyAiJyAnIiArIHJlc1syXSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisvLyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0ZXN0UGF0MygpIHsKKy8vICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IHBhdDMiKTsKKy8vICAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisvLyAgICAgICAgICAgICAiIiwKKy8vICAgICAgICAgICAgICIgIiwKKy8vICAgICAgICAgICAgICIgLy8jIiwKKy8vICAgICAgICAgICAgICIgLyMjIiwKKy8vICAgICAgICAgICAgICIvLyMjIiwKKy8vICAgICAgICAgICAgICIgLy8jIyIsCisvLyAgICAgICAgICAgICAiIC8vIyMvLyIsCisvLyAgICAgICAgICAgICAiIC8vLy8vIyMiLAorLy8gICAgICAgICB9OworLy8gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJwYXQgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIE1hdGNoZXIgbSA9IHBhdDMubWF0Y2hlcih0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobS5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbS5ncm91cCgxKSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJkdWcgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIFN0cmluZyBtYXRjaCA9IHBhdDNNYXRjaCh0ZXN0c1tpXSk7CisvLyAgICAgICAgICAgICBpZiAobWF0Y2ggIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJyIgKyBtYXRjaCArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAiVXNhZ2U6XG4iICsKKyAgICAgICAgIiAgICBDb2RlTWFuZ2xlciBbZmxhZ3NdIGZpbGUuLi4gZGlyLi4uIEBhcmdmaWxlLi4uIFxuIiArCisgICAgICAgICItaW5bZGlyXSBwYXRoICAgICAgICAgIC0gcm9vdCBkaXJlY3Rvcnkgb2YgaW5wdXQgZmlsZXMsIG90aGVyd2lzZSB1c2UgY3VycmVudCBkaXJlY3RvcnlcbiIgKworICAgICAgICAiLW91dFtkaXJdIHBhdGggICAgICAgICAtIHJvb3QgZGlyZWN0b3J5IG9mIG91dHB1dCBmaWxlcywgb3RoZXJ3aXNlIHVzZSBpbnB1dCBkaXJlY3RvcnlcbiIgKworICAgICAgICAiLXNbdWZmaXhdIHN0cmluZyAgICAgICAtIHN1ZmZpeCBvZiBpbnB1dGZpbGVzIHRvIHByb2Nlc3MsIG90aGVyd2lzZSB1c2UgJy5qYXZhJyAoZGlyZWN0b3JpZXMgb25seSlcbiIgKworICAgICAgICAiLWNbbGVhbl0gICAgICAgICAgICAgICAtIHJlbW92ZSBhbGwgY29udHJvbCBmbGFncyBmcm9tIGNvZGUgb24gb3V0cHV0IChkb2VzIG5vdCBwcm9jZWVkIGlmIG92ZXJ3cml0aW5nKVxuIiArCisgICAgICAgICItcltlY3Vyc2VdICAgICAgICAgICAgIC0gaWYgcHJlc2VudCwgcmVjdXJzaXZlbHkgcHJvY2VzcyBzdWJkaXJlY3Rvcmllc1xuIiArCisgICAgICAgICItZltvcmNlXSAgICAgICAgICAgICAgIC0gZm9yY2UgcmVwcm9jZXNzaW5nIG9mIGZpbGVzIGV2ZW4gaWYgdGltZXN0YW1wIGFuZCBoZWFkZXJzIG1hdGNoXG4iICsKKyAgICAgICAgIi10W2ltZXN0YW1wXSAgICAgICAgICAgLSBleHBlY3Qvd3JpdGUgdGltZXN0YW1wIGluIGhlYWRlclxuIiArCisgICAgICAgICItZE5BTUVbPVZBTFVFXSAgICAgICAgIC0gZGVmaW5lIE5BTUUgd2l0aCBvcHRpb25hbCB2YWx1ZSBWQUxVRVxuIiArCisgICAgICAgICIgIChvciAtZCBOQU1FWz1WQUxVRV0pXG4iICsKKyAgICAgICAgIi1oZWxwICAgICAgICAgICAgICAgICAgLSBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXQuXG4iICsKKyAgICAgICAgIlxuIiArCisgICAgICAgICJGb3IgZmlsZSBhcmd1bWVudHMsIG91dHB1dCAnLmphdmEnIGZpbGVzIHVzaW5nIHRoZSBzYW1lIHBhdGgvbmFtZSB1bmRlciB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiIgKworICAgICAgICAiRm9yIGRpcmVjdG9yeSBhcmd1bWVudHMsIHByb2Nlc3MgYWxsIGZpbGVzIHdpdGggdGhlIGRlZmluZWQgc3VmZml4IGluIHRoZSBkaXJlY3RvcnkuXG4iICsKKyAgICAgICAgIiAgKGlmIHJlY3Vyc2luZywgZG8gdGhlIHNhbWUgZm9yIGFsbCBmaWxlcyByZWN1cnNpdmVseSB1bmRlciBlYWNoIGRpcmVjdG9yeSlcbiIgKworICAgICAgICAiRm9yIEBhcmdmaWxlIGFyZ3VtZW50cywgcmVhZCB0aGUgc3BlY2lmaWVkIHRleHQgZmlsZSAoc3RyaXAgdGhlICdAJyksIGFuZCBwcm9jZXNzIGVhY2ggbGluZSBvZiB0aGF0IGZpbGUgYXMgXG4iICsKKyAgICAgICAgImFuIGFyZ3VtZW50LlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiRGlyZWN0aXZlcyBhcmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4iICsKKyAgICAgICAgIiAgI2lmZGVmLCAjaWZuZGVmLCAjZWxzZSwgI2VuZGlmLCAjaWYsICNlbGlmLCAjZGVmaW5lLCAjdW5kZWZcbiIgKworICAgICAgICAiVGhlc2UgbWF5IG9wdGlvbmFsbHkgYmUgcHJlY2VlZGVkIGJ5IHdoaXRlc3BhY2Ugb3IgLy8uXG4iICsKKyAgICAgICAgIiNpZiwgI2VsaWYgYXJncyBhcmUgb2YgdGhlIGZvcm0gJ2tleSA9PSB2YWx1ZScgb3IgJ2tleSAhPSB2YWx1ZScuXG4iICsKKyAgICAgICAgIk9ubHkgZXhhY3QgY2hhcmFjdGVyIG1hdGNoIGtleSB3aXRoIHZhbHVlIGlzIHBlcmZvcm1lZC5cbiIgKworICAgICAgICAiI2RlZmluZSBhcmdzIGFyZSAna2V5IFs9PV0gdmFsdWUnLCB0aGUgJz09JyBpcyBvcHRpb25hbC5cbiI7CisKKyAgICBDb2RlTWFuZ2xlcihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIG5hbWVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBzdWZmaXggPSAiLmphdmEiOworICAgICAgICBjbGVhbiA9IGZhbHNlOworICAgICAgICB0aW1lc3RhbXAgPSBmYWxzZTsKKworICAgICAgICBTdHJpbmcgaW5uYW1lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dG5hbWUgPSBudWxsOworICAgICAgICBib29sZWFuIHByb2Nlc3NBcmdzID0gdHJ1ZTsKKyAgICAgICAgU3RyaW5nIGFyZyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIGlmICgiLS0iLmVxdWFscyhhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NBcmdzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzQXJncyAmJiBhcmcuY2hhckF0KDApID09ICctJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1pbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbm5hbWUgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1vdXQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0bmFtZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gYXJnLnN1YnN0cmluZygyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXggPSBpZC5pbmRleE9mKCc9Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IGlkLnN1YnN0cmluZyhpeCsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygwLGl4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoaWQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1zIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLXIiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVjdXJzZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1mIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItaCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHVzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBzdG9wIGJlZm9yZSBwcm9jZXNzaW5nIGFyZ3VtZW50cywgc28gd2Ugd2lsbCBkbyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi12IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5yZWNvZ25pemVkIGFyZ3VtZW50ICciICsgYXJnICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbih1c2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGFyZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmNoYXJBdCgwKSA9PSAnQCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgYXJnZmlsZSA9IG5ldyBGaWxlKGFyZy5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ2ZpbGUuZXhpc3RzKCkgJiYgIWFyZ2ZpbGUuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihuZXcgRmlsZUlucHV0U3RyZWFtKGFyZ2ZpbGUpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGFyZ3MubGVuZ3RoOyArK3gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGFyZ3NbeF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAobGluZSA9IGJyLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgIT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiYWRkaW5nIGFyZ3VtZW50OiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQobGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IChTdHJpbmdbXSlsaXN0LnRvQXJyYXkobmV3IFN0cmluZ1tsaXN0LnNpemUoKV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImVycm9yIHJlYWRpbmcgYXJnIGZpbGU6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5hZGQoYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnID0gIkVycm9yOiBhcmd1bWVudCAnIiArIGFyZyArICInIG1pc3NpbmcgdmFsdWUiOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKG1zZyk7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihtc2cpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpOworICAgICAgICBpZiAoaW5uYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGlubmFtZSA9IHVzZXJuYW1lOworICAgICAgICB9IGVsc2UgaWYgKCEoaW5uYW1lLnN0YXJ0c1dpdGgoIlxcIikgfHwgaW5uYW1lLnN0YXJ0c1dpdGgoIi8iKSkpIHsKKyAgICAgICAgICAgIGlubmFtZSA9IHVzZXJuYW1lICsgRmlsZS5zZXBhcmF0b3IgKyBpbm5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaW5kaXIgPSBuZXcgRmlsZShpbm5hbWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5kaXIgPSBpbmRpci5nZXRDYW5vbmljYWxGaWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlLCBidXQgbW9zdCBsaWtlbHkgd2UnbGwgZmFpbCBsYXRlcgorICAgICAgICB9CisgICAgICAgIGlmICghaW5kaXIuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklucHV0IGRpcmVjdG9yeSAnIiArIGluZGlyLmdldEFic29sdXRlUGF0aCgpICsgIicgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0gZWxzZSBpZiAoIWluZGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklucHV0IHBhdGggJyIgKyBpbmRpci5nZXRBYnNvbHV0ZVBhdGgoKSArICInIGlzIG5vdCBhIGRpcmVjdG9yeS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJpbmRpcjogIiArIGluZGlyLmdldEFic29sdXRlUGF0aCgpKTsKKworICAgICAgICBpZiAob3V0bmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICBvdXRuYW1lID0gaW5uYW1lOworICAgICAgICB9IGVsc2UgaWYgKCEob3V0bmFtZS5zdGFydHNXaXRoKCJcXCIpIHx8IG91dG5hbWUuc3RhcnRzV2l0aCgiLyIpKSkgeworICAgICAgICAgICAgb3V0bmFtZSA9IHVzZXJuYW1lICsgRmlsZS5zZXBhcmF0b3IgKyBvdXRuYW1lOworICAgICAgICB9CisgICAgICAgIG91dGRpciA9IG5ldyBGaWxlKG91dG5hbWUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0ZGlyID0gb3V0ZGlyLmdldENhbm9uaWNhbEZpbGUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gY29udGludWUsIGJ1dCBtb3N0IGxpa2VseSB3ZSdsbCBmYWlsIGxhdGVyCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvdXRkaXIuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk91dHB1dCBkaXJlY3RvcnkgJyIgKyBvdXRkaXIuZ2V0QWJzb2x1dGVQYXRoKCkgKyAiJyBkb2VzIG5vdCBleGlzdC4iKTsKKyAgICAgICAgfSBlbHNlIGlmICghb3V0ZGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk91dHB1dCBwYXRoICciICsgb3V0ZGlyLmdldEFic29sdXRlUGF0aCgpICsgIicgaXMgbm90IGEgZGlyZWN0b3J5LiIpOworICAgICAgICB9CisgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oIm91dGRpcjogIiArIG91dGRpci5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICAgICAgaWYgKGNsZWFuICYmIHN1ZmZpeC5lcXVhbHMoIi5qYXZhIikpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKG91dGRpci5nZXRDYW5vbmljYWxQYXRoKCkuZXF1YWxzKGluZGlyLmdldENhbm9uaWNhbFBhdGgoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IHVzZSAnY2xlYW4nIHRvIG92ZXJ3cml0ZSAuamF2YSBmaWxlcyBpbiBzYW1lIGRpcmVjdG9yeSB0cmVlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInBvc3NpYmxlIG92ZXJ3cml0ZSwgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IHVzZSAnY2xlYW4nIHRvIG92ZXJyd3JpdGUgLmphdmEgZmlsZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG5hbWVzLmFkZCgiLiIpOworICAgICAgICB9CisKKyAgICAgICAgVHJlZU1hcCBzb3J0ID0gbmV3IFRyZWVNYXAoU3RyaW5nLkNBU0VfSU5TRU5TSVRJVkVfT1JERVIpOworICAgICAgICBzb3J0LnB1dEFsbChtYXApOworICAgICAgICBJdGVyYXRvciBpdGVyID0gc29ydC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChlLmdldEtleSgpKTsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICBpZiAodiAhPSBudWxsICYmIHYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnPScpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaGVhZGVyID0gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCBydW4oKSB7CisgICAgICAgIHJldHVybiBwcm9jZXNzKCIiLCAoU3RyaW5nW10pbmFtZXMudG9BcnJheShuZXcgU3RyaW5nW25hbWVzLnNpemUoKV0pKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHByb2Nlc3MoU3RyaW5nIHBhdGgsIFN0cmluZ1tdIGZpbGVuYW1lcykgeworICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJwYXRoOiAnIiArIHBhdGggKyAiJyIpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigibmFtZSAiICsgaSArICIgb2YgIiArIGZpbGVuYW1lcy5sZW5ndGggKyAiOiAnIiArIGZpbGVuYW1lc1tpXSArICInIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHBhdGggKyBmaWxlbmFtZXNbaV07CisgICAgICAgICAgICBGaWxlIGZpbiA9IG5ldyBGaWxlKGluZGlyLCBuYW1lKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZmluID0gZmluLmdldENhbm9uaWNhbEZpbGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZpbi5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRmlsZSAiICsgZmluLmdldEFic29sdXRlUGF0aCgpICsgIiBkb2VzIG5vdCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaW4uaXNGaWxlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJwcm9jZXNzaW5nIGZpbGU6ICciICsgZmluLmdldEFic29sdXRlUGF0aCgpICsgIiciKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb25hbWU7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gbmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvbmFtZSA9IG5hbWUuc3Vic3RyaW5nKDAsIGl4KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvbmFtZSA9IG5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9uYW1lICs9ICIuamF2YSI7CisgICAgICAgICAgICAgICAgRmlsZSBmb3V0ID0gbmV3IEZpbGUob3V0ZGlyLCBvbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NGaWxlKGZpbiwgZm91dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigicmVjdXJzaW5nIG9uIGRpcmVjdG9yeSAnIiArIGZpbi5nZXRBYnNvbHV0ZVBhdGgoKSArICInIik7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5wYXRoID0gIi4iLmVxdWFscyhuYW1lKSA/IHBhdGggOiBwYXRoICsgZmluLmdldE5hbWUoKSArIEZpbGUuc2VwYXJhdG9yOworICAgICAgICAgICAgICAgIGNvdW50ICs9IHByb2Nlc3MobnBhdGgsIGZpbi5saXN0KGZpbHRlcikpOyAvLyByZWN1cnNpdmUgY2FsbAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIGZpbmFsIEZpbGVuYW1lRmlsdGVyIGZpbHRlciA9IG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGRpciwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShkaXIsIG5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAoZi5pc0ZpbGUoKSAmJiBuYW1lLmVuZHNXaXRoKHN1ZmZpeCkpIHx8IChmLmlzRGlyZWN0b3J5KCkgJiYgcmVjdXJzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICBwdWJsaWMgYm9vbGVhbiBwcm9jZXNzRmlsZShGaWxlIGluZmlsZSwgRmlsZSBvdXRmaWxlKSB7CisgICAgICAgIEZpbGUgYmFja3VwID0gbnVsbDsKKworICAgICAgICBjbGFzcyBTdGF0ZSB7CisgICAgICAgICAgICBpbnQgbGM7CisgICAgICAgICAgICBTdHJpbmcgbGluZTsKKyAgICAgICAgICAgIGJvb2xlYW4gZW1pdCA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIHRyaXBwZWQ7CisgICAgICAgICAgICBwcml2YXRlIFN0YXRlIG5leHQ7CisKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICJsaW5lICIgKyBsYyAKKyAgICAgICAgICAgICAgICAgICAgKyAiOiAnIiArIGxpbmUgCisgICAgICAgICAgICAgICAgICAgICsgIicgKGVtaXQ6ICIgKyBlbWl0IAorICAgICAgICAgICAgICAgICAgICArICIgdHJpcHBlZDogIiArIHRyaXBwZWQgCisgICAgICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHRyaXAoYm9vbGVhbiB0cmlwKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0cmlwcGVkICYgdHJpcCkgeworICAgICAgICAgICAgICAgICAgICB0cmlwcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgZW1pdCA9IG5leHQgIT0gbnVsbCA/IG5leHQuZW1pdCA6IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZW1pdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3RhdGUgcHVzaChpbnQgbGMsIFN0cmluZyBsaW5lLCBib29sZWFuIHRyaXApIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxjID0gbGM7CisgICAgICAgICAgICAgICAgdGhpcy5saW5lID0gbGluZTsKKyAgICAgICAgICAgICAgICBTdGF0ZSByZXQgPSBuZXcgU3RhdGUoKTsKKyAgICAgICAgICAgICAgICByZXQubmV4dCA9IHRoaXM7CisgICAgICAgICAgICAgICAgcmV0LmVtaXQgPSB0aGlzLmVtaXQgJiB0cmlwOworICAgICAgICAgICAgICAgIHJldC50cmlwcGVkID0gdHJpcDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdGF0ZSBwb3AoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgSGFzaE1hcCBvbGRNYXAgPSBudWxsOworICAgICAgICAKKyAgICAgICAgbG9uZyBvdXRNb2RUaW1lID0gMDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUHJpbnRTdHJlYW0gb3V0c3RyZWFtID0gbnVsbDsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGluc3RyZWFtID0gbmV3IEZpbGVJbnB1dFN0cmVhbShpbmZpbGUpOworCisgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciByZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKGluc3RyZWFtKSk7CisgICAgICAgICAgICBpbnQgbGMgPSAwOworICAgICAgICAgICAgU3RhdGUgc3RhdGUgPSBuZXcgU3RhdGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgd2hpbGUgKChsaW5lID0gcmVhZGVyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAobGMgPT0gMCkgeyAvLyBjaGVjayBhbmQgd3JpdGUgaGVhZGVyIGZvciBvdXRwdXQgZmlsZSBpZiBuZWVkZWQKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBoYXNIZWFkZXIgPSBsaW5lLnN0YXJ0c1dpdGgoSEVBREVSX1BSRUZJWCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNIZWFkZXIgJiYgIWZvcmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV4cGVjdExhc3RNb2RpZmllZCA9ICgoaW5maWxlLmxhc3RNb2RpZmllZCgpICsgOTk5KS8xMDAwKSoxMDAwOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGhlYWRlcmxpbmUgPSBIRUFERVJfUFJFRklYICsgJyAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZXN0YW1wID8gU3RyaW5nLnZhbHVlT2YoZXhwZWN0TGFzdE1vZGlmaWVkKSA6ICIiKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICcgJyArIGhlYWRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcmxpbmUgPSBoZWFkZXJsaW5lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLmVxdWFscyhoZWFkZXJsaW5lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oIm5vIGNoYW5nZXMgbmVjZXNzYXJ5IHRvICIgKyBpbmZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbm90aGluZyB0byBkbworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgb2xkIGhlYWRlcjogICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgIT0gZXhwZWN0ZWQ6ICIgKyBoZWFkZXJsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBvdXRwdXQgZmlsZSBkaXJlY3Rvcnkgc3RydWN0dXJlCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdXRwbmFtZSA9IG91dGZpbGUuZ2V0UGFyZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvdXRwbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIG91dHAgPSBuZXcgRmlsZShvdXRwbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShvdXRwLmV4aXN0cygpIHx8IG91dHAubWtkaXJzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeTogJyIgKyBvdXRwbmFtZSArICInIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcsIHVzZSBhIHRlbXBvcmFyeSBmaWxlCisgICAgICAgICAgICAgICAgICAgIGlmIChzdWZmaXguZXF1YWxzKCIuamF2YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBvdXRmaWxlOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRmaWxlID0gRmlsZS5jcmVhdGVUZW1wRmlsZShvdXRmaWxlLmdldE5hbWUoKSwgbnVsbCwgb3V0ZmlsZS5nZXRQYXJlbnRGaWxlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0TW9kVGltZSA9ICgob3V0ZmlsZS5sYXN0TW9kaWZpZWQoKSs5OTkpLzEwMDApKjEwMDA7IC8vIHJvdW5kIHVwCisgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbSA9IG5ldyBQcmludFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRmaWxlKSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBoZWFkZXJsaW5lID0gSEVBREVSX1BSRUZJWCArICcgJyArIAorICAgICAgICAgICAgICAgICAgICAgICAgKHRpbWVzdGFtcCA/IFN0cmluZy52YWx1ZU9mKG91dE1vZFRpbWUpIDogIiIpCisgICAgICAgICAgICAgICAgICAgICAgICArICcgJyArIGhlYWRlcjsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVybGluZSA9IGhlYWRlcmxpbmUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBvdXRzdHJlYW0ucHJpbnRsbihoZWFkZXJsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiaGVhZGVyOiAiICsgaGVhZGVybGluZSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlzY2FyZCB0aGUgb2xkIGhlYWRlciBpZiB3ZSBoYWQgb25lLCBvdGhlcndpc2UgbWF0Y2ggdGhpcyBsaW5lIGxpa2UgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNIZWFkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGM7IC8vIG1hcmsgYXMgaGF2aW5nIHJlYWQgYSBsaW5lIHNvIHdlIG5ldmVyIHJlZXhlY3V0ZSB0aGlzIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSByZXMgPSBuZXcgU3RyaW5nWzNdOworICAgICAgICAgICAgICAgIGlmIChwYXRNYXRjaChsaW5lLCByZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsZWFkID0gcmVzWzBdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcmVzWzFdOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gcmVzWzJdOworCisvLyAgICAgICAgICAgICAgICAgTWF0Y2hlciBtID0gcGF0Lm1hdGNoZXIobGluZSk7CisvLyAgICAgICAgICAgICAgICAgaWYgKG0uZmluZCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsZWFkID0gbS5ncm91cCgxKTsKKy8vICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IG0uZ3JvdXAoMikudG9Mb3dlckNhc2UoKS50cmltKCk7CisvLyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSBtLmdyb3VwKDMpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiZGlyZWN0aXZlOiAiICsgbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBrZXk6ICciICsga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyB2YWw6ICciICsgdmFsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgIiArIHN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMoImlmZGVmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUucHVzaChsYywgbGluZSwgbWFwLmdldCh2YWwpICE9IG51bGwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImlmbmRlZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlLnB1c2gobGMsIGxpbmUsIG1hcC5nZXQodmFsKSA9PSBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJlbHNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnRyaXAodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmVxdWFscygiZW5kaWYiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJ1bmRlZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRNYXAgPSAoSGFzaE1hcCltYXAuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnJlbW92ZSh2YWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyAjZGVmaW5lLCAjaWYsICNlbGlmCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0Mk1hdGNoKHZhbCwgcmVzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gcmVzWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbmVxID0gIiE9Ii5lcXVhbHMocmVzWzFdKTsgLy8gb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsMiA9IHJlc1syXTsKKworLy8gICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlciBtMiA9IHBhdDIubWF0Y2hlcih2YWwpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0yLmZpbmQoKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gbTIuZ3JvdXAoMSkudHJpbSgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbmVxID0gIiE9Ii5lcXVhbHMobTIuZ3JvdXAoMikpOyAvLyBvcHRpb25hbAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwyID0gbTIuZ3JvdXAoMykudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oInZhbDI6ICciICsgdmFsMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgbmVxOiAnIiArIG5lcSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicga2V5MjogJyIgKyBrZXkyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKCJpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUucHVzaChsYywgbGluZSwgdmFsMi5lcXVhbHMobWFwLmdldChrZXkyKSkgIT0gbmVxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImVsaWYiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmlwKHZhbDIuZXF1YWxzKG1hcC5nZXQoa2V5MikpICE9IG5lcSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJkZWZpbmUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkTWFwID0gKEhhc2hNYXApbWFwLmNsb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGtleTIsIHZhbDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghY2xlYW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxjKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxlYWQuZXF1YWxzKCIvLyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0c3RyZWFtLnByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhsZWFkLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbS5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxjKys7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZvdW5kID0gcGF0M01hdGNoKGxpbmUpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gaGFzSWdub3JlID0gZm91bmQgIT0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCA9PSBoYXNJZ25vcmUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmVtaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhmb3VuZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gSUdOT1JFX1BSRUZJWCArIGxpbmU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0lnbm9yZSAmJiAhZm91bmQuZXF1YWxzKElHTk9SRV9QUkVGSVgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBJR05PUkVfUFJFRklYICsgbGluZS5zdWJzdHJpbmcoZm91bmQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICBtID0gcGF0My5tYXRjaGVyKGxpbmUpOworLy8gICAgICAgICAgICAgICAgIGJvb2xlYW4gaGFzSWdub3JlID0gbS5maW5kKCk7CisvLyAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmVtaXQgPT0gaGFzSWdub3JlKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbWl0KSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcobS5ncm91cCgxKS5sZW5ndGgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gSUdOT1JFX1BSRUZJWCArIGxpbmU7CisvLyAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0lnbm9yZSAmJiAhbS5ncm91cCgxKS5lcXVhbHMoSUdOT1JFX1BSRUZJWCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgbGluZSA9IElHTk9SRV9QUkVGSVggKyBsaW5lLnN1YnN0cmluZyhtLmdyb3VwKDEpLmxlbmd0aCgpKTsKKy8vICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFjbGVhbiB8fCBzdGF0ZS5lbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbS5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wb3AoKTsKKyAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogdW5jbG9zZWQgZGlyZWN0aXZlKHMpOiIpOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKHN0YXRlKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlICgoc3RhdGUgPSBzdGF0ZS5wb3AoKSkgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgaW4gZmlsZTogIiArIG91dGZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAob2xkTWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbWFwID0gb2xkTWFwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXRzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIGluc3RyZWFtLmNsb3NlKCk7CisKKyAgICAgICAgICAgIGlmIChiYWNrdXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChiYWNrdXAuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXRmaWxlLnJlbmFtZVRvKGJhY2t1cCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0aW1lc3RhbXApIHsKKyAgICAgICAgICAgICAgICBvdXRmaWxlLnNldExhc3RNb2RpZmllZChvdXRNb2RUaW1lKTsgLy8gc3luY2ggd2l0aCB0aW1lc3RhbXAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG9sZE1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbWFwID0gb2xkTWFwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIHNhbWUgb3BlcmF0aW9uIGFzIG1hdGNoaW5nIG9uIHBhdC4gIG9uIGV4aXQKKyAgICAgKiBsZWFkS2V5VmFsdWUgY29udGFpbnMgdGhlIHRocmVlIHN0cmluZ3MgbGVhZCwga2V5LCBhbmQgdmFsdWUuCisgICAgICogJ2xlYWQnIGlzIHRoZSBwb3J0aW9uIGJlZm9yZSB0aGUgI2lmZGVmIGRpcmVjdGl2ZS4gICdrZXknIGlzCisgICAgICogdGhlIGRpcmVjdGl2ZS4gICd2YWx1ZScgaXMgdGhlIHBvcnRpb24gYWZ0ZXIgdGhlIGRpcmVjdGl2ZS4gIGlmCisgICAgICogdGhlcmUgaXMgYSBtYXRjaCwgcmV0dXJuIHRydWUsIGVsc2UgcmV0dXJuIGZhbHNlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHBhdE1hdGNoKFN0cmluZyBsaW5lLCBTdHJpbmdbXSBsZWFkS2V5VmFsdWUpIHsKKy8vICAgICAgIGZpbmFsIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKAorLy8gICAgICAgICAiKD9pKV4oXFxzKig/Oi8vKyk/P1xccyopIyhpZmRlZlxcc3xpZm5kZWZcXHN8ZWxzZXxlbmRpZnx1bmRlZlxcc3xkZWZpbmVcXHN8aWZcXHN8ZWxpZlxccylcXHMqKC4qKSQiKTsKKworICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFsaW5lLmVuZHNXaXRoKCJcbiIpKSB7CisgICAgICAgICAgICBsaW5lID0gbGluZSArICdcbic7CisgICAgICAgIH0KKyAgICAgICAgaW50IG1hcmsgPSAwOworICAgICAgICBpbnQgc3RhdGUgPSAwOworICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIDA6IC8vIGF0IHN0YXJ0IG9mIGxpbmUsIGhhdmVuJ3Qgc2VlbiBhbnl0aGluZyBidXQgd2hpdGVzcGFjZSB5ZXQKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJykgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7IHN0YXRlID0gMTsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMTogLy8gaGF2ZSBzZWVuIGEgc2luZ2xlIHNsYXNoIGFmdGVyIHN0YXJ0IG9mIGxpbmUKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsgc3RhdGUgPSAyOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMjogLy8gaGF2ZSBzZWVuIHR3byBvciBtb3JlIHNsYXNoZXMKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInKSB7IHN0YXRlID0gMzsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgMzogLy8gaGF2ZSBzZWVuIGEgc3BhY2UgYWZ0ZXIgdHdvIG9yIG1vcmUgc2xhc2hlcworICAgICAgICAgICAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSA0OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgNDogLy8gaGF2ZSBzZWVuIGEgJyMnIAorICAgICAgICAgICAgICAgIGxlYWRLZXlWYWx1ZVswXSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGktMSk7CisgICAgICAgICAgICAgICAgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeyBtYXJrID0gaTsgc3RhdGUgPSA1OyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNhc2UgNTogLy8gYW4gYXNjaWkgY2hhciBmb2xsb3dlZCB0aGUgJyMnCisgICAgICAgICAgICAgICAgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGkpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKCJpZmRlZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJpZm5kZWYiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiZWxzZSIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJlbmRpZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJ1bmRlZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJkZWZpbmUiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiaWYiKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAga2V5LmVxdWFscygiZWxpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZWFkS2V5VmFsdWVbMV0gPSBrZXk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gNjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXRlID09IDYpIHsKKyAgICAgICAgICAgIGxlYWRLZXlWYWx1ZVsyXSA9IGxpbmUuc3Vic3RyaW5nKG1hcmssIGxpbmUubGVuZ3RoKCkpLnRyaW0oKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbmV2ZXIgcmVhY2hlZCwgZG9lcyB0aGUgY29tcGlsZXIga25vdyB0aGlzPworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gc2FtZSBvcGVyYXRpb24gYXMgbWF0Y2hpbmcgb24gcGF0Mi4gIG9uIGV4aXQKKyAgICAgKiBrZXlSZWxWYWx1ZSBjb250YWlucyB0aGUgdGhyZWUgc3RyaW5ncyBrZXksIHJlbCwgYW5kIHZhbHVlLgorICAgICAqICdrZXknIGlzIHRoZSBwb3J0aW9uIGJlZm9yZSB0aGUgcmVsYXRpb24gKG9yIGZpbmFsIHdvcmQpLiAgJ3JlbCcgaXMKKyAgICAgKiB0aGUgcmVsYXRpb24sIGlmIHByZXNlbnQsIGVpdGhlciA9PSBvciAhPS4gICd2YWx1ZScgaXMgdGhlIGZpbmFsCisgICAgICogd29yZC4gIGlmIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVybiB0cnVlLCBlbHNlIHJldHVybiBmYWxzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBwYXQyTWF0Y2goU3RyaW5nIGxpbmUsIFN0cmluZ1tdIGtleVJlbFZhbCkgeworLy8gICAgICAgZmluYWwgUGF0dGVybiBwYXQyID0gUGF0dGVybi5jb21waWxlKCIoW149IV0rKVxccyooWyE9XT89KT8/XFxzKihcXHcrKSIpOworLy8gaG1tbSwgdGhpcyBwYXR0ZXJuIGRvZXNuJ3QgbG9vayByaWdodC4gIGEgcGF0dGVybiBjb25zaXN0aW5nIG9mICdhYmNkJyBzaG91bGQKKy8vIHJldHVybiB7ImFiY2QiLCAiIiwgIiJ9IGJ1dCBpdCBsb29rcyBsaWtlIGl0IHJldHVybnMgeyIiLCAiIiwgImFiY2QifS4KKworICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAga2V5UmVsVmFsWzBdID0ga2V5UmVsVmFsWzFdID0ga2V5UmVsVmFsWzJdID0gIiI7CisgICAgICAgIGludCBtYXJrID0gMDsKKyAgICAgICAgaW50IHN0YXRlID0gMDsKKyAgICAgICAgbG9vcDogZm9yIChpbnQgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGxpbmUuY2hhckF0KGkpOworICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkgeworICAgICAgICAgICAgY2FzZSAwOiAvLyBzYXcgYmVnaW5uaW5nIG9yIHNwYWNlLCBubyByZWwgeWV0CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoYyA9PSAnIScgfHwgYyA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdGUgPSAxOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSAxOiAvLyBzYXcgc3RhcnQgb2YgYSB3b3JkCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDI7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJyEnIHx8IGMgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBjYXNlIDI6IC8vIHNhdyBlbmQgb2Ygd29yZCwgYW5kIHNwYWNlCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnIScgfHwgYyA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5UmVsVmFsWzBdID0gbGluZS5zdWJzdHJpbmcoMCwgaS0xKS50cmltKCk7CisgICAgICAgICAgICAgICAgbWFyayA9IGk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSA0OworICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBjYXNlIDM6IC8vIHNhdyBlbmQgb2Ygd29yZCwgYW5kICchJyBvciAnPScKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAga2V5UmVsVmFsWzBdID0gbGluZS5zdWJzdHJpbmcoMCwgaS0xKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIGtleVJlbFZhbFsxXSA9IGxpbmUuc3Vic3RyaW5nKGktMSwgaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWFyayA9IGkrMTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSAwOiAKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZm91bmQgbm90aGluZworICAgICAgICBjYXNlIDE6IAorICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBrZXlSZWxWYWxbMF0gPSBsaW5lLnRyaW0oKTsgYnJlYWs7IC8vIGZvdW5kIG9ubHkgYSB3b3JkCisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZm91bmQgYSB3b3JkIGFuZCAnIScgb3IgJz0iIHRoZW4gZW5kIG9mIGxpbmUsIGluY29tcGxldGUKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAga2V5UmVsVmFsWzJdID0gbGluZS5zdWJzdHJpbmcobWFyaykudHJpbSgpOyBicmVhazsgLy8gZm91bmQgYSB3b3JkLCBwb3NzaWJsZSByZWwsIGFuZCB3aG8ga25vd3Mgd2hhdAorICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIHBhdDNNYXRjaChTdHJpbmcgbGluZSkgeworICAgICAgICBpbnQgc3RhdGUgPSAwOworICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2goc3RhdGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDogaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7IHN0YXRlID0gMTsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgeyBzdGF0ZSA9IDI7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHsgc3RhdGUgPSAzOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyMnKSByZXR1cm4gbGluZS5zdWJzdHJpbmcoMCwgaSsxKTsKKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgICAgICAKKy8vICAgICAgIGZpbmFsIFBhdHRlcm4gcGF0MyA9IFBhdHRlcm4uY29tcGlsZSgiXihcXHMqLy8jIykuKiIpOworICAgICAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0RlcHJlY2F0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0RlcHJlY2F0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzBmN2ZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvRGVwcmVjYXRvci5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVuYW1lRmlsdGVyOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgRGVwcmVjYXRvciB7CisgICAgcHJpdmF0ZSBib29sZWFuIHVuZGVwOworICAgIHByaXZhdGUgaW50IGxvZzsKKworICAgIERlcHJlY2F0b3IoYm9vbGVhbiB1bmRlcCwgaW50IGxvZykgeworICAgICAgICB0aGlzLnVuZGVwID0gdW5kZXA7CisgICAgICAgIHRoaXMubG9nID0gbG9nOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nIHNyY1BhdGggPSBudWxsOworICAgICAgICBTdHJpbmcgZHN0UGF0aCA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gdW5kZXAgPSBmYWxzZTsKKworICAgICAgICBpbnQgbG9nID0gMTsKKyAgICAgICAgYm9vbGVhbiBoZWxwID0gZmFsc2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItc3JjIikpIHsKKyAgICAgICAgICAgICAgICBzcmNQYXRoID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItZHN0IikpIHsKKyAgICAgICAgICAgICAgICBkc3RQYXRoID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItdW5kZXAiKSkgeworICAgICAgICAgICAgICAgIHVuZGVwID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWhlbHAiKSkgeworICAgICAgICAgICAgICAgIGhlbHAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItc2lsZW50IikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbG9nIikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSAyOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbG9nZmlsZXMiKSkgeworICAgICAgICAgICAgICAgIGxvZyA9IDM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi12ZXJib3NlIikpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSA0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbnVucmVjb2duaXplZCBhcmd1bWVudDogIiArIGFyZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBGaWxlIHNyY0RpciA9IG51bGw7CisgICAgICAgIEZpbGUgZHN0RGlyID0gbnVsbDsKKworICAgICAgICBpZiAoc3JjUGF0aCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbnNyYyBtdXN0IGJlIGRlZmluZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNyY0RpciA9IG5ldyBGaWxlKHNyY1BhdGgpOworICAgICAgICAgICAgaWYgKCEoc3JjRGlyLmV4aXN0cygpICYmIHNyY0Rpci5pc0RpcmVjdG9yeSgpKSkgeworICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuc3JjIG11c3QgYmUgYW4gZXhpc3RpbmcgZGlyZWN0b3J5OiAnIiArIHNyY1BhdGggKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkc3RQYXRoID09IG51bGwpIHsKKyAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuZHN0IG11c3QgYmUgZGVmaW5lZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZHN0RGlyID0gbmV3IEZpbGUoZHN0UGF0aCk7CisgICAgICAgICAgICBpZiAoIWRzdERpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGlmICghZHN0RGlyLm1rZGlycygpKSB7CisgICAgICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxudW5hYmxlIHRvIGNyZWF0ZSBkc3Q6ICciICsgZHN0UGF0aCArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICghZHN0RGlyLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBlcnIuYXBwZW5kKCJcbmRzdCBleGlzdHMgYnV0IGlzIG5vdCBkaXJlY3Rvcnk6ICciICsgZHN0UGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGVscCB8fCBlcnIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBpZiAoIWhlbHApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiAiICsgZXJyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAobG9nID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3JjOiAiICsgc3JjRGlyLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkc3Q6ICIgKyBkc3REaXIuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInVuZGVwOiAiICsgdW5kZXApOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmV3IERlcHJlY2F0b3IodW5kZXAsIGxvZykucHJvY2VzcyhzcmNEaXIsIGRzdERpcik7CisKKyAgICAgICAgICAgIGlmIChsb2cgPiAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkb25lIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVuZXhwZWN0ZWQgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKyAgICAgICAgcHcucHJpbnRsbigiVXNhZ2U6IERlcHJlY2F0b3IgLXNyYyBwYXRoIC1kc3QgcGF0aCBbLWhlbHBdIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLXNyYyBwYXRoIDogdGhlIHJvb3Qgb2YgdGhlIHRyZWUgb2YgZmlsZXMgdG8gd29yayBvbiIpOworICAgICAgICBwdy5wcmludGxuKCIgIC1kc3QgcGF0aCA6IHRoZSByb290IG9mIHRoZSB0cmVlIHRvIHB1dCB0aGUgcmVzdWx0aW5nIGZpbGVzIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLWhlbHAgICAgIDogcHJpbnQgdGhpcyB1c2FnZSBtZXNzYWdlIGFuZCBleGl0LCBkb2luZyBub3RoaW5nIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLXVuZGVwICAgIDogcmVtb3ZlIGRlcHJlY2F0aW9uIHRhZ3MgaWYgcHJlc2VudCAoZGVmYXVsdCBmYWxzZSkiKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCIgIEFkZCBvciByZW1vdmUgd2FybmluZyBkZXByZWNhdGlvbnMgZm9yIElDVSBAZHJhZnQgYW5kIEBpbnRlcm5hbCBBUElzIik7CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBzdG9wbGlzdCA9ICIhQ1ZTIjsKKyAgICBzdGF0aWMgZmluYWwgRmlsZW5hbWVGaWx0ZXIgZmYgPSBuZXcgRmlsZW5hbWVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHQoRmlsZSBkaXIsIFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoIi5qYXZhIikpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGlmIChuZXcgRmlsZShkaXIsIG5hbWUpLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3BsaXN0LmluZGV4T2YoIiEiK25hbWUpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICB2b2lkIHByb2Nlc3MoRmlsZSBzcmNEaXIsIEZpbGUgZHN0RGlyKSB7CisgICAgICAgIEZpbGVbXSBmaWxlcyA9IHNyY0Rpci5saXN0RmlsZXMoZmYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBGaWxlIGYgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgIEZpbGUgZCA9IG5ldyBGaWxlKGRzdERpciwgZi5nZXROYW1lKCkpOworICAgICAgICAgICAgaWYgKGYuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgIGlmICghZC5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWQubWtkaXIoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeTogIiArIGQuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZC5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiZmlsZSBhbHJlYWR5IGV4aXN0cyBidXQgaXMgbm90IGRpcmVjdG9yeTogIiArIGQuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsb2cgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJvY2VzcyBkaXI6ICIgKyBmLmdldFBhdGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb2Nlc3MoZiwgZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByb2Nlc3NGaWxlKGYsIGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyBAIGRlcHJlY2F0ZWQKKyAqKiogQGRlcHJlY2F0ZWQKKyAqKiAqKiAqKiBAZGVwcmVjYXRlZAorICAgICovCisgICAgc3RhdGljIGZpbmFsIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKCJeW1xccypdKkBcXHMqZGVwcmVjYXRlZC4qIik7CisKKyAgICB2b2lkIHByb2Nlc3NGaWxlKEZpbGUgc3JjRmlsZSwgRmlsZSBkc3RGaWxlKSB7CisgICAgICAgIGlmIChsb2cgPiAyKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInByb2Nlc3MgJyIgKyBzcmNGaWxlLmdldFBhdGgoKSArICInIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIobmV3IEZpbGVJbnB1dFN0cmVhbShzcmNGaWxlKSkpOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSByLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgIE1hdGNoZXIgbSA9IHBhdC5tYXRjaGVyKGxpbmUpOworICAgICAgICAgICAgICAgIGlmIChtLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9nID4gMykgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFN0cmluZy52YWx1ZU9mKG4pICsgIjogIiArIGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgci5jbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJjYXVnaHQgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9HYXRoZXJBUElEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9HYXRoZXJBUElEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVjMmViOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0dhdGhlckFQSURhdGEuamF2YQpAQCAtMCwwICsxLDQ0MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogR2VuZXJhdGUgYSBsaXN0IG9mIElDVSdzIHB1YmxpYyBBUElzLCBzb3J0ZWQgYnkgcXVhbGlmaWVkIG5hbWUgYW5kIHNpZ25hdHVyZQorICogcHVibGljIEFQSXMgYXJlIGFsbCBub24taW50ZXJuYWwsIG5vbi1wYWNrYWdlIGFwaXMgaW4gY29tLmlibS5pY3UuW2xhbmd8bWF0aHx0ZXh0fHV0aWxdLgorICogRm9yIGVhY2ggQVBJLCBsaXN0CisgKiAtIHB1YmxpYywgcGFja2FnZSwgcHJvdGVjdGVkLCBvciBwcml2YXRlIChQQiBQSyBQVCBQUikKKyAqIC0gc3RhdGljIG9yIG5vbi1zdGF0aWMgKFNUSyBOU1QpCisgKiAtIGZpbmFsIG9yIG5vbi1maW5hbCAoRk4gTkYpCisgKiAtIHN5bmNocm9uaXplZCBvciBub24tc3luY2hyb25pemVkIChTWU4gTlNZKQorICogLSBzdGFibGUsIGRyYWZ0LCBkZXByZWNhdGVkLCBvYnNvbGV0ZSAoU1QgRFIgRFAgT0IpCisgKiAtIGFic3RyYWN0IG9yIG5vbi1hYnN0cmFjdCAoQUIgTkEpCisgKiAtIGNvbnN0cnVjdG9yLCBtZW1iZXIsIGZpZWxkIChDIE0gRikKKyAqCisgKiBSZXF1aXJlcyBKREsgMS40LjIgb3IgbGF0ZXIKKyAqIAorICogU2FtcGxlIGNvbXBpbGF0aW9uOgorICogYzovZG91Zy9qYXZhL2pkazEuNC4yL2J1aWxkL3dpbmRvd3MtaTU4Ni9iaW4vamF2YWMgKi5qYXZhCisgKgorICogU2FtcGxlIGV4ZWN1dGlvbgorICogYzovajJzZGsxLjQuMi9iaW4vamF2YWRvYworICogICAtY2xhc3NwYXRoIGM6L2pkMnNrMS40LjIvbGliL3Rvb2xzLmphciAKKyAqICAgLWRvY2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEKKyAqICAgLWRvY2xldHBhdGggYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYyAKKyAqICAgLXNvdXJjZXBhdGggYzovZG91Zy9jdnNwcm9qL2ljdTRqL3NyYyAKKyAqICAgLW5hbWUgIklDVTRKIDMuMCIKKyAqICAgLW91dHB1dCBpY3U0ajMwLmFwaQorICogICAtZ3ppcAorICogICAtc291cmNlIDEuNAorICogICBjb20uaWJtLmljdS5sYW5nIGNvbS5pYm0uaWN1Lm1hdGggY29tLmlibS5pY3UudGV4dCBjb20uaWJtLmljdS51dGlsCisgKgorICogdG9kbzogcHJvdmlkZSBjb21tYW5kLWxpbmUgY29udHJvbCBvZiBmaWx0ZXJzIG9mIHdoaWNoIHN1YmNsYXNzZXMvcGFja2FnZXMgdG8gcHJvY2VzcworICogdG9kbzogcmVjb3JkIGZ1bGwgaW5oZXJpdGFuY2UgaGVpcmFyY2h5LCBub3QganVzdCBpbW1lZGlhdGUgaW5oZXJpdGFuY2UgCisgKiB0b2RvOiBhbGxvdyBmb3IgYWxpYXNpbmcgY29tcGFyaXNvbnMgKGZvcmNlIChwa2cuKSpjbGFzcyB0byBiZSB0cmVhdGVkIGFzIHRob3VnaCBpdCAKKyAqICAgICAgIHdlcmUgaW4gYSBkaWZmZXJlbnQgcGtnL2NsYXNzIGhlaXJhcmNoeSAoZmFjaWxpdGF0ZXMgY29tcGFyaXNvbiBvZiBpY3U0aiBhbmQgamF2YSkKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKKy8vIHN0YW5kYXJkIHJlbGVhc2Ugc2RrIHdvbid0IHdvcmssIG5lZWQgaW50ZXJuYWwgYnVpbGQgdG8gZ2V0IGFjY2VzcyB0byBqYXZhZG9jCitpbXBvcnQgY29tLnN1bi5qYXZhZG9jLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworaW1wb3J0IGphdmEudXRpbC56aXAuR1pJUE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuemlwLlppcEVudHJ5OworaW1wb3J0IGphdmEudXRpbC56aXAuWmlwT3V0cHV0U3RyZWFtOworCitwdWJsaWMgY2xhc3MgR2F0aGVyQVBJRGF0YSB7CisgICAgUm9vdERvYyByb290OworICAgIFRyZWVTZXQgcmVzdWx0czsKKyAgICBTdHJpbmcgc3JjTmFtZSA9ICJDdXJyZW50IjsgLy8gZGVmYXVsdCBzb3VyY2UgbmFtZQorICAgIFN0cmluZyBvdXRwdXQ7IC8vIG5hbWUgb2Ygb3V0cHV0IGZpbGUgdG8gd3JpdGUKKyAgICBTdHJpbmcgYmFzZTsgLy8gc3RyaXAgdGhpcyBwcmVmaXgKKyAgICBQYXR0ZXJuIHBhdDsKKyAgICBib29sZWFuIHppcDsKKyAgICBib29sZWFuIGd6aXA7CisgICAgYm9vbGVhbiBpbnRlcm5hbDsKKworICAgIHB1YmxpYyBzdGF0aWMgaW50IG9wdGlvbkxlbmd0aChTdHJpbmcgb3B0aW9uKSB7CisgICAgICAgIGlmIChvcHRpb24uZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItb3V0cHV0IikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1iYXNlIikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1maWx0ZXIiKSkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLXppcCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItZ3ppcCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItaW50ZXJuYWwiKSkgeworCSAgICByZXR1cm4gMTsKKwl9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzdGFydChSb290RG9jIHJvb3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBHYXRoZXJBUElEYXRhKHJvb3QpLnJ1bigpOworICAgIH0KKworICAgIEdhdGhlckFQSURhdGEoUm9vdERvYyByb290KSB7CisgICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7CisKKyAgICAgICAgU3RyaW5nW11bXSBvcHRpb25zID0gcm9vdC5vcHRpb25zKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG9wdCA9IG9wdGlvbnNbaV1bMF07CisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiLW5hbWUiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuc3JjTmFtZSA9IG9wdGlvbnNbaV1bMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1vdXRwdXQiKSkgeworICAgICAgICAgICAgICAgIHRoaXMub3V0cHV0ID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWJhc2UiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuYmFzZSA9IG9wdGlvbnNbaV1bMV07IC8vIHNob3VsZCBub3QgaW5jbHVkZSAnLicKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWZpbHRlciIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5wYXQgPSBQYXR0ZXJuLmNvbXBpbGUob3B0aW9uc1tpXVsxXSwgUGF0dGVybi5DQVNFX0lOU0VOU0lUSVZFKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLXppcCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy56aXAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItZ3ppcCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5nemlwID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLWludGVybmFsIikpIHsKKwkJdGhpcy5pbnRlcm5hbCA9IHRydWU7CisJICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdHMgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBydW4oKSB7CisgICAgICAgIGRvRG9jcyhyb290LmNsYXNzZXMoKSk7CisKKyAgICAgICAgT3V0cHV0U3RyZWFtIG9zID0gU3lzdGVtLm91dDsKKyAgICAgICAgaWYgKG91dHB1dCAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmICh6aXApIHsKKyAgICAgICAgICAgICAgICAgICAgWmlwT3V0cHV0U3RyZWFtIHpvcyA9IG5ldyBaaXBPdXRwdXRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0ICsgIi56aXAiKSk7CisgICAgICAgICAgICAgICAgICAgIHpvcy5wdXROZXh0RW50cnkobmV3IFppcEVudHJ5KG91dHB1dCkpOworICAgICAgICAgICAgICAgICAgICBvcyA9IHpvczsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGd6aXApIHsKKyAgICAgICAgICAgICAgICAgICAgb3MgPSBuZXcgR1pJUE91dHB1dFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXQgKyAiLmd6IikpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9zID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQnVmZmVyZWRXcml0ZXIgYncgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zdyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpOworICAgICAgICAgICAgYncgPSBuZXcgQnVmZmVyZWRXcml0ZXIob3N3KTsKKworICAgICAgICAgICAgLy8gd3JpdGluZyBkYXRhIGZpbGUKKyAgICAgICAgICAgIGJ3LndyaXRlKFN0cmluZy52YWx1ZU9mKEFQSUluZm8uVkVSU0lPTikgKyBBUElJbmZvLlNFUCk7IC8vIGhlYWRlciB2ZXJzaW9uCisgICAgICAgICAgICBidy53cml0ZShzcmNOYW1lICsgQVBJSW5mby5TRVApOyAvLyBzb3VyY2UgbmFtZQorICAgICAgICAgICAgYncud3JpdGUoKGJhc2UgPT0gbnVsbCA/ICIiIDogYmFzZSkgKyBBUElJbmZvLlNFUCk7IC8vIGJhc2UKKyAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhyZXN1bHRzLCBidyk7CisgICAgICAgICAgICBidy5jbG9zZSgpOyAvLyBzaG91bGQgZmx1c2gsIGNsb3NlIGFsbCwgZXRjCisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7IGJ3LmNsb3NlKCk7IH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUyKSB7fQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ3cml0ZSBlcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0RvY3MoUHJvZ3JhbUVsZW1lbnREb2NbXSBkb2NzKSB7CisgICAgICAgIGlmIChkb2NzICE9IG51bGwgJiYgZG9jcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvY3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBkb0RvYyhkb2NzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0RvYyhQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKyAgICAgICAgaWYgKGlnbm9yZShkb2MpKSByZXR1cm47CisKKyAgICAgICAgaWYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpIHsKKyAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuZmllbGRzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuY29uc3RydWN0b3JzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MubWV0aG9kcygpKTsKKyAgICAgICAgICAgIGRvRG9jcyhjZG9jLmlubmVyQ2xhc3NlcygpKTsKKyAgICAgICAgfQorCisgICAgICAgIEFQSUluZm8gaW5mbyA9IGNyZWF0ZUluZm8oZG9jKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0cy5hZGQoaW5mbyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaWdub3JlKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoZG9jID09IG51bGwpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jLmlzUHJpdmF0ZSgpIHx8IGRvYy5pc1BhY2thZ2VQcml2YXRlKCkpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgQ29uc3RydWN0b3JEb2MgJiYgKChDb25zdHJ1Y3RvckRvYylkb2MpLmlzU3ludGhldGljKCkpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9jLnF1YWxpZmllZE5hbWUoKS5pbmRleE9mKCIubWlzYyIpICE9IC0xKSB7IAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtaXNjOiAiICsgZG9jLnF1YWxpZmllZE5hbWUoKSk7IHJldHVybiB0cnVlOyAKKyAgICAgICAgfQorCWlmICghaW50ZXJuYWwpIHsgLy8gZGVidWcKKwkgICAgVGFnW10gdGFncyA9IGRvYy50YWdzKCk7CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworCQlpZiAodGFnS2luZEluZGV4KHRhZ3NbaV0ua2luZCgpKSA9PSBJTlRFUk5BTCkgeyByZXR1cm4gdHJ1ZTsgfQorCSAgICB9CisJfQorICAgICAgICBpZiAocGF0ICE9IG51bGwgJiYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXBhdC5tYXRjaGVyKGRvYy5uYW1lKCkpLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHdyaXRlUmVzdWx0cyhDb2xsZWN0aW9uIGMsIEJ1ZmZlcmVkV3JpdGVyIHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGluZm8ud3JpdGVsbih3KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHRyaW1CYXNlKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgbiA9IGFyZy5pbmRleE9mKGJhc2UpOyBuICE9IC0xOyBuID0gYXJnLmluZGV4T2YoYmFzZSwgbikpIHsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc3Vic3RyaW5nKDAsIG4pICsgYXJnLnN1YnN0cmluZyhuK2Jhc2UubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBhcmc7CisgICAgfQorCisgICAgcHVibGljIEFQSUluZm8gY3JlYXRlSW5mbyhQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKworICAgICAgICAvLyBEb2MuIG5hbWUKKyAgICAgICAgLy8gRG9jLiBpc0ZpZWxkLCBpc01ldGhvZCwgaXNDb25zdHJ1Y3RvciwgaXNDbGFzcywgaXNJbnRlcmZhY2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGNvbnRhaW5pbmdDbGFzcywgY29udGFpbmluZ1BhY2thZ2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGlzUHVibGljLCBpc1Byb3RlY3RlZCwgaXNQcml2YXRlLCBpc1BhY2thZ2VQcml2YXRlCisgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1N0YXRpYywgaXNGaW5hbAorICAgICAgICAvLyBNZW1iZXJEb2MuaXNTeW50aGV0aWMKKyAgICAgICAgLy8gRXhlY3V0YWJsZU1lbWJlckRvYyBpc1N5bmNocm9uaXplZCwgc2lnbmF0dXJlCisgICAgICAgIC8vIFR5cGUudG9TdHJpbmcoKSAvLyBlLmcuICJTdHJpbmdbXVtdIgorICAgICAgICAvLyBDbGFzc0RvYy5pc0Fic3RyYWN0LCBzdXBlckNsYXNzLCBpbnRlcmZhY2VzLCBmaWVsZHMsIG1ldGhvZHMsIGNvbnN0cnVjdG9ycywgaW5uZXJDbGFzc2VzCisgICAgICAgIC8vIEZpZWxkRG9jIHR5cGUKKyAgICAgICAgLy8gQ29uc3RydWN0b3JEb2MgcXVhbGlmaWVkTmFtZQorICAgICAgICAvLyBNZXRob2REb2MgaXNBYnN0cmFjdCwgcmV0dXJuVHlwZQorCisgICAgICAgIEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc3RhdHVzCisgICAgICAgIGluZm8uc2V0VHlwZShBUElJbmZvLlNUQSwgdGFnU3RhdHVzKGRvYykpOworCisgICAgICAgIC8vIHZpc2liaWxpdHkKKyAgICAgICAgaWYgKGRvYy5pc1B1YmxpYygpKSB7CisgICAgICAgICAgICBpbmZvLnNldFB1YmxpYygpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1Byb3RlY3RlZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldFByb3RlY3RlZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1ByaXZhdGUoKSkgeworICAgICAgICAgICAgaW5mby5zZXRQcml2YXRlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIHBhY2thZ2UKKyAgICAgICAgfQorCisgICAgICAgIC8vIHN0YXRpYworICAgICAgICBpZiAoZG9jLmlzU3RhdGljKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0U3RhdGljKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1zdGF0aWMKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsCisgICAgICAgIGlmIChkb2MuaXNGaW5hbCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldEZpbmFsKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1maW5hbAorICAgICAgICB9CisKKyAgICAgICAgLy8gdHlwZQorICAgICAgICBpZiAoZG9jLmlzRmllbGQoKSkgeworICAgICAgICAgICAgaW5mby5zZXRGaWVsZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc01ldGhvZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldE1ldGhvZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc0NvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0Q29uc3RydWN0b3IoKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICBpbmZvLnNldENsYXNzKCk7CisgICAgICAgIH0KKworICAgICAgICBpbmZvLnNldFBhY2thZ2UodHJpbUJhc2UoZG9jLmNvbnRhaW5pbmdQYWNrYWdlKCkubmFtZSgpKSk7CisgICAgICAgIGluZm8uc2V0Q2xhc3NOYW1lKChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpIHx8IChkb2MuY29udGFpbmluZ0NsYXNzKCkgPT0gbnVsbCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIiIAorICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRyaW1CYXNlKGRvYy5jb250YWluaW5nQ2xhc3MoKS5uYW1lKCkpKTsKKyAgICAgICAgaW5mby5zZXROYW1lKHRyaW1CYXNlKGRvYy5uYW1lKCkpKTsKKyAgICAKKyAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIEZpZWxkRG9jKSB7CisgICAgICAgICAgICBGaWVsZERvYyBmZG9jID0gKEZpZWxkRG9jKWRvYzsKKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGZkb2MudHlwZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MgaW5zdGFuY2VvZiBDbGFzc0RvYykgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisKKyAgICAgICAgICAgIGlmIChjZG9jLmlzQ2xhc3MoKSAmJiBjZG9jLmlzQWJzdHJhY3QoKSkgeyAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIGFyZSBhYnN0cmFjdCBieSBkZWZhdWx0LCBkb24ndCBtYXJrIHRoZW0gYXMgYWJzdHJhY3QKKyAgICAgICAgICAgICAgICBpbmZvLnNldEFic3RyYWN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoY2RvYy5pc0NsYXNzKCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJleHRlbmRzICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2RvYy5zdXBlcmNsYXNzKCkucXVhbGlmaWVkTmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENsYXNzRG9jW10gaW1wID0gY2RvYy5pbnRlcmZhY2VzKCk7CisgICAgICAgICAgICBpZiAoaW1wICE9IG51bGwgJiYgaW1wLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImltcGxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGltcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGltcFtpXS5xdWFsaWZpZWROYW1lKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGJ1Zi50b1N0cmluZygpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFeGVjdXRhYmxlTWVtYmVyRG9jIGVtZG9jID0gKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jOworICAgICAgICAgICAgaWYgKGVtZG9jLmlzU3luY2hyb25pemVkKCkpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnNldFN5bmNocm9uaXplZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgTWV0aG9kRG9jKSB7CisgICAgICAgICAgICAgICAgTWV0aG9kRG9jIG1kb2MgPSAoTWV0aG9kRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBpZiAobWRvYy5pc0Fic3RyYWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5zZXRBYnN0cmFjdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShtZG9jLnJldHVyblR5cGUoKS50b1N0cmluZygpICsgZW1kb2Muc2lnbmF0dXJlKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0b3IKKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShlbWRvYy5zaWduYXR1cmUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZm87CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgdGFnU3RhdHVzKGZpbmFsIERvYyBkb2MpIHsKKyAgICAgICAgY2xhc3MgUmVzdWx0IHsKKyAgICAgICAgICAgIGludCByZXMgPSAtMTsKKyAgICAgICAgICAgIHZvaWQgc2V0KGludCB2YWwpIHsgCisgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9rIHRvIGhhdmUgYm90aCBhICdzdGFuZGFyZCcgdGFnIGFuZCBkZXByZWNhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzICE9IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGFscmVhZHkgbm90IGRlcHJlY2F0ZWQsIHRoaXMgaXMgYW4gZXJyb3IKKwkJCVN5c3RlbS5lcnIucHJpbnRsbigiYmFkIGRvYzogIiArIGRvYyArICIgYm90aDogIiArIEFQSUluZm8uZ2V0VHlwZVZhbE5hbWUoQVBJSW5mby5TVEEsIHJlcykgKyAiIGFuZDogIiArIEFQSUluZm8uZ2V0VHlwZVZhbE5hbWUoQVBJSW5mby5TVEEsIHZhbCkpOyAKKwkJCXJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBvayB0byByZXBsYWNlIHdpdGggbmV3IHRhZworICAgICAgICAgICAgICAgIHJlcyA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBnZXQoKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIndhcm5pbmc6IG5vIHRhZyBmb3IgIiArIGRvYyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGFnW10gdGFncyA9IGRvYy50YWdzKCk7CisgICAgICAgIFJlc3VsdCByZXN1bHQgPSBuZXcgUmVzdWx0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGFnIHRhZyA9IHRhZ3NbaV07CisKKyAgICAgICAgICAgIFN0cmluZyBraW5kID0gdGFnLmtpbmQoKTsKKyAgICAgICAgICAgIGludCBpeCA9IHRhZ0tpbmRJbmRleChraW5kKTsKKworICAgICAgICAgICAgc3dpdGNoIChpeCkgeworICAgICAgICAgICAgY2FzZSBJTlRFUk5BTDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGludGVybmFsID8gQVBJSW5mby5TVEFfSU5URVJOQUwgOiAtMik7IC8vIC0yIGZvciBsZWdhY3kgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoQVBJSW5mby5TVEFfRFJBRlQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNUQUJMRToKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX1NUQUJMRSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgREVQUkVDQVRFRDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX0RFUFJFQ0FURUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE9CU09MRVRFOgorICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoQVBJSW5mby5TVEFfT0JTT0xFVEUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgY2FzZSBFWENFUFRJT046CisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICBjYXNlIFVOS05PV046CisgICAgICAgICAgICBjYXNlIEFVVEhPUjoKKyAgICAgICAgICAgIGNhc2UgU0VFOgorICAgICAgICAgICAgY2FzZSBQQVJBTToKKyAgICAgICAgICAgIGNhc2UgUkVUVVJOOgorICAgICAgICAgICAgY2FzZSBUSFJPV1M6CisgICAgICAgICAgICBjYXNlIFNFUklBTDoKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidW5rbm93biBpbmRleCAiICsgaXggKyAiIGZvciB0YWc6ICIgKyBraW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAtMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5URVJOQUwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEUkFGVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQUJMRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJTkNFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVVEhPUiA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFRSA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQQVJBTSA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFVFVSTiA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRIUk9XUyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPQlNPTEVURSA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT04gPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VSSUFMID0gMTM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgdGFnS2luZEluZGV4KFN0cmluZyBraW5kKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRhZ0tpbmRzID0geworICAgICAgICAgICAgIkBpbnRlcm5hbCIsICJAZHJhZnQiLCAiQHN0YWJsZSIsICJAc2luY2UiLCAiQGRlcHJlY2F0ZWQiLCAiQGF1dGhvciIsICJAc2VlIiwgIkB2ZXJzaW9uIiwKKyAgICAgICAgICAgICJAcGFyYW0iLCAiQHJldHVybiIsICJAdGhyb3dzIiwgIkBvYnNvbGV0ZSIsICJAZXhjZXB0aW9uIiwgIkBzZXJpYWwiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVUpES0NvbXBhcmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVUpES0NvbXBhcmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTEwYmE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvSUNVSkRLQ29tcGFyZS5qYXZhCkBAIC0wLDAgKzEsNzg1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQ29tcGFyZSBJQ1U0SiBhbmQgSkRLIEFQSVMuCisgKgorICogVE9ETzogY29tcGFyZSBwcm90ZWN0ZWQgQVBJcy4gIFJlZmxlY3Rpb24gb24gQ2xhc3MgYWxsb3dzIHlvdQorICogdG8gZWl0aGVyIGdldCBhbGwgaW5oZXJpdGVkIG1ldGhvZHMgd2l0aCBwdWJsaWMgYWNjZXNzLCBvciBnZXQgbWV0aG9kcworICogb24gdGhlIHBhcnRpY3VsYXIgY2xhc3Mgd2l0aCBhbnkgYWNjZXNzLCBidXQgbm8gd2F5IHRvIGdldCBhbGwKKyAqIGluaGVyaXRlZCBtZXRob2RzIHdpdGggYW55IGFjY2Vzcy4gIEdvIGZpZ3VyZS4KKyAqLworcHVibGljIGNsYXNzIElDVUpES0NvbXBhcmUgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvLyBzZXQgdXAgZGVmYXVsdHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1NyY1ByZWZpeCA9ICJqYXZhLiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtUcmdQcmVmaXggPSAiY29tLmlibS5pY3UuIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBrUGFpckluZm8gPSB7CisgICAgICAgICJsYW5nLkNoYXJhY3Rlci9VQ2hhcmFjdGVyIiwKKyAgICAgICAgImxhbmcuQ2hhcmFjdGVyJFVuaWNvZGVCbG9jay9VQ2hhcmFjdGVyJFVuaWNvZGVCbG9jayIsCisgICAgICAgICJ0ZXh0LkJyZWFrSXRlcmF0b3IiLAorICAgICAgICAidGV4dC5Db2xsYXRvciIsCisgICAgICAgICJ0ZXh0LkRhdGVGb3JtYXQiLAorICAgICAgICAidGV4dC5EYXRlRm9ybWF0U3ltYm9scyIsCisgICAgICAgICJ0ZXh0LkRlY2ltYWxGb3JtYXQiLAorICAgICAgICAidGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyIsCisgICAgICAgICJ0ZXh0LkZvcm1hdC9VRm9ybWF0IiwKKyAgICAgICAgInRleHQuTWVzc2FnZUZvcm1hdCIsCisgICAgICAgICJ0ZXh0Lk51bWJlckZvcm1hdCIsCisgICAgICAgICJ0ZXh0LlNpbXBsZURhdGVGb3JtYXQiLAorICAgICAgICAidXRpbC5DYWxlbmRhciIsCisgICAgICAgICJ1dGlsLkN1cnJlbmN5IiwKKyAgICAgICAgInV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIiLAorICAgICAgICAidXRpbC5TaW1wbGVUaW1lWm9uZSIsCisgICAgICAgICJ1dGlsLlRpbWVab25lIiwKKyAgICAgICAgInV0aWwuTG9jYWxlL1VMb2NhbGUiLAorICAgICAgICAidXRpbC5SZXNvdXJjZUJ1bmRsZS9VUmVzb3VyY2VCdW5kbGUiLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBrSWdub3JlID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgImxhbmcuQ2hhcmFjdGVyIDxpbml0PiBjaGFyVmFsdWUgY29tcGFyZVRvIE1BWF9WQUxVRSBNSU5fVkFMVUUgVFlQRSIsCisgICAgICAgICJsYW5nLkNoYXJhY3RlciRVbmljb2RlQmxvY2sgU1VSUk9HQVRFU19BUkVBIiwKKyAgICAgICAgInV0aWwuQ2FsZW5kYXIgRklFTERfQ09VTlQiLAorICAgICAgICAidXRpbC5HcmVnb3JpYW5DYWxlbmRhciBGSUVMRF9DT1VOVCIsCisgICAgICAgICJ1dGlsLlNpbXBsZVRpbWVab25lIFNUQU5EQVJEX1RJTUUgVVRDX1RJTUUgV0FMTF9USU1FIiwKKyAgICB9OworCisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBwdzsKKyAgICBwcml2YXRlIFN0cmluZyBzcmNQcmVmaXg7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHJnUHJlZml4OworICAgIHByaXZhdGUgQ2xhc3NbXSBjbGFzc1BhaXJzOworICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZVBhaXJzOworICAgIHByaXZhdGUgU3RyaW5nW10gaWdub3JlOworICAgIHByaXZhdGUgYm9vbGVhbiBzd2FwOworICAgIHByaXZhdGUgYm9vbGVhbiBzaWduYXR1cmU7CisKKyAgICAvLyBjYWxsIFN5c3RlbS5leGl0IHdpdGggbm9uLXplcm8gaWYgdGhlcmUgd2VyZSBzb21lIG1pc3NpbmcgQVBJcworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3lzdGVtLmV4aXQoZG9NYWluKGFyZ3MpKTsKKyAgICB9CisKKyAgICAvLyByZXR1cm4gbm9uLXplcm8gaWYgdGhlcmUgd2VyZSBzb21lIG1pc3NpbmcgQVBJcworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRvTWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIElDVUpES0NvbXBhcmUgcCA9IG5ldyBJQ1VKREtDb21wYXJlKCk7CisgICAgICAgIHAuc2V0T3V0cHV0V3JpdGVyKG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KSk7CisgICAgICAgIHAuc2V0dXAoYXJncyk7CisgICAgICAgIHJldHVybiBwLnByb2Nlc3MoKTsKKyAgICB9CisKKyAgICAvLyBzZXR0ZXJzCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0T3V0cHV0V3JpdGVyKFByaW50V3JpdGVyIHB3KSB7CisgICAgICAgIHRoaXMucHcgPSBwdzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0U3JjUHJlZml4KFN0cmluZyBzcmNQcmVmaXgpIHsKKyAgICAgICAgdGhpcy5zcmNQcmVmaXggPSBzcmNQcmVmaXg7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBJQ1VKREtDb21wYXJlIHNldFRyZ1ByZWZpeChTdHJpbmcgdHJnUHJlZml4KSB7CisgICAgICAgIHRoaXMudHJnUHJlZml4ID0gdHJnUHJlZml4OworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRDbGFzc1BhaXJzKENsYXNzW10gY2xhc3NQYWlycykgeworICAgICAgICB0aGlzLmNsYXNzUGFpcnMgPSBjbGFzc1BhaXJzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXROYW1lUGFpcnMoU3RyaW5nW10gbmFtZVBhaXJzKSB7CisgICAgICAgIHRoaXMubmFtZVBhaXJzID0gbmFtZVBhaXJzOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRJZ25vcmUoU3RyaW5nW10gaWdub3JlKSB7CisgICAgICAgIHRoaXMuaWdub3JlID0gaWdub3JlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRTd2FwKGJvb2xlYW4gc3dhcCkgeworICAgICAgICB0aGlzLnN3YXAgPSBzd2FwOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN0cmluZyBuYW1lbGlzdCA9IG51bGw7CisgICAgICAgIFN0cmluZyBpZ25vcmVsaXN0ID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItc3dhcCIpKSB7CisgICAgICAgICAgICAgICAgc3dhcCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1zcmNQcmVmaXg6IikpIHsKKyAgICAgICAgICAgICAgICBzcmNQcmVmaXggPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgaWYgKCFzcmNQcmVmaXguZW5kc1dpdGgoIi4iKSkgeworICAgICAgICAgICAgICAgICAgICBzcmNQcmVmaXggKz0gJy4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLXRyZ1ByZWZpeDoiKSkgeworICAgICAgICAgICAgICAgIHRyZ1ByZWZpeCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICBpZiAoIXRyZ1ByZWZpeC5lbmRzV2l0aCgiLiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyZ1ByZWZpeCArPSAnLic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbmFtZXM6IikpIHsKKyAgICAgICAgICAgICAgICBuYW1lbGlzdCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWlnbm9yZToiKSkgeworICAgICAgICAgICAgICAgIGlnbm9yZWxpc3QgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiICsgYXJnKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaWdub3JlbGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaWdub3JlbGlzdC5jaGFyQXQoMCkgPT0gJ0AnKSB7IC8vIGEgZmlsZSBjb250YWluaW5nIGlnbm9yZWluZm8KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3QgbmwgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKG5hbWVsaXN0LnN1YnN0cmluZygxKSk7CisgICAgICAgICAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlzKTsKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAobGluZSA9IGJyLnJlYWRMaW5lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBubC5hZGQobGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWdub3JlID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgbGlzdCBvZiBpZ25vcmVpbmZvIHNlcGFyYXRlZCBieSBzZW1pY29sb25zCisgICAgICAgICAgICAgICAgaWdub3JlID0gaWdub3JlbGlzdC5zcGxpdCgiXFxzKjtcXHMqIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobmFtZWxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBudWxsOworICAgICAgICAgICAgaWYgKG5hbWVsaXN0LmNoYXJBdCgwKSA9PSAnQCcpIHsgLy8gYSBmaWxlCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQXJyYXlMaXN0IG5sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShuYW1lbGlzdC5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcyk7CisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSBici5yZWFkTGluZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmwuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5hbWVzID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgbGlzdCBvZiBuYW1lcyBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworICAgICAgICAgICAgICAgIG5hbWVzID0gbmFtZWxpc3Quc3BsaXQoIlxccyo7XFxzKiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcm9jZXNzUGFpckluZm8obmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgcHcuZmx1c2goKTsKKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc1BhaXJJbmZvKFN0cmluZ1tdIG5hbWVzKSB7CisgICAgICAgIEFycmF5TGlzdCBjbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgQXJyYXlMaXN0IG5sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgU3RyaW5nIHNyY05hbWUgPSBzcmNQcmVmaXg7CisgICAgICAgICAgICBTdHJpbmcgdHJnTmFtZSA9IHRyZ1ByZWZpeDsKKworICAgICAgICAgICAgaW50IG4gPSBuYW1lLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3JjTmFtZSArPSBuYW1lOworICAgICAgICAgICAgICAgIHRyZ05hbWUgKz0gbmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNyY1N1ZmZpeCA9IG5hbWUuc3Vic3RyaW5nKDAsIG4pLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHJnU3VmZml4ID0gbmFtZS5zdWJzdHJpbmcobisxKS50cmltKCk7CisgICAgICAgICAgICAgICAgaW50IGp4ID0gc3JjU3VmZml4Lmxlbmd0aCgpKzE7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gdHJnU3VmZml4Lmxlbmd0aCgpKzE7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGp4ID0gc3JjU3VmZml4Lmxhc3RJbmRleE9mKCcuJywgangtMSk7CisgICAgICAgICAgICAgICAgICAgIGl4ID0gdHJnU3VmZml4Lmxhc3RJbmRleE9mKCcuJywgaXgtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyY05hbWUgKz0gc3JjU3VmZml4OworICAgICAgICAgICAgICAgIHRyZ05hbWUgKz0gc3JjU3VmZml4LnN1YnN0cmluZygwLCBqeCsxKSArIHRyZ1N1ZmZpeDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBqYyA9IENsYXNzLmZvck5hbWUoc3JjTmFtZSk7CisgICAgICAgICAgICAgICAgQ2xhc3MgaWMgPSBDbGFzcy5mb3JOYW1lKHRyZ05hbWUpOworICAgICAgICAgICAgICAgIGNsLmFkZChpYyk7CisgICAgICAgICAgICAgICAgY2wuYWRkKGpjKTsKKyAgICAgICAgICAgICAgICBubC5hZGQoaWMuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICBubC5hZGQoamMuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJjYW4ndCBsb2FkIGNsYXNzOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNsYXNzUGFpcnMgPSAoQ2xhc3NbXSljbC50b0FycmF5KG5ldyBDbGFzc1tjbC5zaXplKCldKTsKKyAgICAgICAgbmFtZVBhaXJzID0gKFN0cmluZ1tdKW5sLnRvQXJyYXkobmV3IFN0cmluZ1tubC5zaXplKCldKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRsbihTdHJpbmcgcykgeworICAgICAgICBpZiAocHcgIT0gbnVsbCkgcHcucHJpbnRsbihzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmIChwdyAhPSBudWxsKSBwdy5mbHVzaCgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcHJvY2VzcygpIHsKKyAgICAgICAgLy8gc2V0IGRlZmF1bHRzCisgICAgICAgIGlmIChzcmNQcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgc3JjUHJlZml4ID0ga1NyY1ByZWZpeDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cmdQcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgdHJnUHJlZml4ID0ga1RyZ1ByZWZpeDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNsYXNzUGFpcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgcHJvY2Vzc1BhaXJJbmZvKGtQYWlySW5mbyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaWdub3JlID09IG51bGwpIHsKKyAgICAgICAgICAgIGlnbm9yZSA9IGtJZ25vcmU7CisgICAgICAgIH0KKworICAgICAgICBwcmludGxuKCJJQ1UgYW5kIEphdmEgQVBJIENvbXBhcmlzb24iKTsKKyAgICAgICAgU3RyaW5nIElDVV9WRVJTSU9OID0gInVua25vd24iOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbyIpOworICAgICAgICAgICAgRmllbGQgZmxkID0gY2xzLmdldEZpZWxkKCJJQ1VfVkVSU0lPTiIpOworICAgICAgICAgICAgSUNVX1ZFUlNJT04gPSBmbGQuZ2V0KG51bGwpLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiY2FuJ3QgZ2V0IFZlcnNpb25JbmZvOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHByaW50bG4oIklDVSBWZXJzaW9uICIgKyBJQ1VfVkVSU0lPTik7CisgICAgICAgIHByaW50bG4oIkpESyBWZXJzaW9uICIgKyBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpKTsKKworICAgICAgICBpbnQgZXJyb3JDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NQYWlycy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoc3dhcCkgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IGNvbXBhcmUoY2xhc3NQYWlyc1tpKzFdLCBjbGFzc1BhaXJzW2ldKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IGNvbXBhcmUoY2xhc3NQYWlyc1tpXSwgY2xhc3NQYWlyc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiYmV0d2VlbiAiICsgbmFtZVBhaXJzW2ldICsgIiBhbmQgIiArIG5hbWVQYWlyc1tpKzFdKTsKKyAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIGVycm9yQ291bnQgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3JDb3VudDsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTW9yQyB7CisgICAgICAgIHByaXZhdGUgTWV0aG9kIG1yZWY7CisgICAgICAgIHByaXZhdGUgQ29uc3RydWN0b3IgY3JlZjsKKworICAgICAgICBNb3JDKE1ldGhvZCBtKSB7CisgICAgICAgICAgICBtcmVmID0gbTsKKyAgICAgICAgfQorCisgICAgICAgIE1vckMoQ29uc3RydWN0b3IgYykgeworICAgICAgICAgICAgY3JlZiA9IGM7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0TW9kaWZpZXJzKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYuZ2V0TW9kaWZpZXJzKCkgOiBtcmVmLmdldE1vZGlmaWVycygpOworICAgICAgICB9CisKKyAgICAgICAgQ2xhc3MgZ2V0UmV0dXJuVHlwZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyB2b2lkLmNsYXNzIDogbXJlZi5nZXRSZXR1cm5UeXBlKCk7CisgICAgICAgIH0KKworICAgICAgICBDbGFzc1tdIGdldFBhcmFtZXRlclR5cGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYuZ2V0UGFyYW1ldGVyVHlwZXMoKSA6IG1yZWYuZ2V0UGFyYW1ldGVyVHlwZXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/ICI8aW5pdD4iIDogbXJlZi5nZXROYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZ2V0U2lnbmF0dXJlKCkgeworICAgICAgICAgICAgcmV0dXJuIG1yZWYgPT0gbnVsbCA/IGNyZWYudG9TdHJpbmcoKSA6IG1yZWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IGNvbXBhcmUoQ2xhc3MgY2xhc3MxLCBDbGFzcyBjbGFzczIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgbjEgPSBjbGFzczEuZ2V0TmFtZSgpOworICAgICAgICBTdHJpbmcgbjIgPSBjbGFzczIuZ2V0TmFtZSgpOworCisgICAgICAgIHByaW50bG4oIlxuY29tcGFyZSAiICsgbjEgKyAiIDw+ICIgKyBuMik7CisKKyAgICAgICAgTW9yQ1tdIGNvbnNzMSA9IGdldE1vckNBcnJheShjbGFzczEuZ2V0Q29uc3RydWN0b3JzKCkpOworICAgICAgICBNb3JDW10gY29uc3MyID0gZ2V0TW9yQ0FycmF5KGNsYXNzMi5nZXRDb25zdHJ1Y3RvcnMoKSk7CisKKyAgICAgICAgTWFwIGNtYXAxID0gZ2V0TWV0aG9kTWFwKGNvbnNzMSk7CisgICAgICAgIE1hcCBjbWFwMiA9IGdldE1ldGhvZE1hcChjb25zczIpOworCisgICAgICAgIE1vckNbXSBtZXRoczEgPSBnZXRNb3JDQXJyYXkoY2xhc3MxLmdldE1ldGhvZHMoKSk7CisgICAgICAgIE1vckNbXSBtZXRoczIgPSBnZXRNb3JDQXJyYXkoY2xhc3MyLmdldE1ldGhvZHMoKSk7CisKKyAgICAgICAgTWFwIG1hcDEgPSBnZXRNZXRob2RNYXAobWV0aHMxKTsKKyAgICAgICAgTWFwIG1hcDIgPSBnZXRNZXRob2RNYXAobWV0aHMyKTsKKworICAgICAgICBGaWVsZFtdIGZpZWxkczEgPSBjbGFzczEuZ2V0RmllbGRzKCk7CisgICAgICAgIEZpZWxkW10gZmllbGRzMiA9IGNsYXNzMi5nZXRGaWVsZHMoKTsKKworICAgICAgICBTZXQgc2V0MSA9IGdldEZpZWxkU2V0KGZpZWxkczEpOworICAgICAgICBTZXQgc2V0MiA9IGdldEZpZWxkU2V0KGZpZWxkczIpOworCisgICAgICAgIE1hcCBkaWZmQ29uc3MgPSBkaWZmTWV0aG9kTWFwcyhjbWFwMiwgY21hcDEpOworICAgICAgICBNYXAgZGlmZk1ldGhzID0gZGlmZk1ldGhvZE1hcHMobWFwMiwgbWFwMSk7CisgICAgICAgIFNldCBkaWZmRmllbGRzID0gZGlmZkZpZWxkU2V0cyhzZXQyLCBzZXQxKTsKKworICAgICAgICBkaWZmQ29uc3MgPSByZW1vdmVJZ25vcmVkKG4yLCBkaWZmQ29uc3MpOworICAgICAgICBkaWZmTWV0aHMgPSByZW1vdmVJZ25vcmVkKG4yLCBkaWZmTWV0aHMpOworICAgICAgICBkaWZmRmllbGRzID0gcmVtb3ZlSWdub3JlZChuMiwgZGlmZkZpZWxkcyk7CisKKyAgICAgICAgaW50IHJlc3VsdCA9IGRpZmZDb25zcy5zaXplKCkgKyBkaWZmTWV0aHMuc2l6ZSgpICsgZGlmZkZpZWxkcy5zaXplKCk7CisgICAgICAgIGlmIChyZXN1bHQgPiAwICYmIHB3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIlB1YmxpYyBBUEkgaW4gIiArIG4yICsgIiBidXQgbm90IGluICIgKyBuMSk7CisgICAgICAgICAgICBpZiAoZGlmZkNvbnNzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJDT05TVFJVQ1RPUlMiKTsKKyAgICAgICAgICAgICAgICBkdW1wTWV0aG9kTWFwKGRpZmZDb25zcywgcHcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpZmZNZXRocy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiTUVUSE9EUyIpOworICAgICAgICAgICAgICAgIGR1bXBNZXRob2RNYXAoZGlmZk1ldGhzLCBwdyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGlmZkZpZWxkcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiRklFTERTIik7CisgICAgICAgICAgICAgICAgZHVtcEZpZWxkU2V0KGRpZmZGaWVsZHMsIHB3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZsdXNoKCk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBmaW5hbCBjbGFzcyBNZXRob2RSZWNvcmQgeworICAgICAgICBNb3JDW10gb3ZlcnJpZGVzOworCisgICAgICAgIE1ldGhvZFJlY29yZChNb3JDIG0pIHsKKyAgICAgICAgICAgIG92ZXJyaWRlcyA9IG5ldyBNb3JDW10geyBtIH07CisgICAgICAgIH0KKworICAgICAgICBNZXRob2RSZWNvcmQoTW9yQ1tdIG1zKSB7CisgICAgICAgICAgICBvdmVycmlkZXMgPSBtczsKKyAgICAgICAgfQorCisgICAgICAgIE1ldGhvZFJlY29yZCBjb3B5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXRob2RSZWNvcmQoKE1vckNbXSlvdmVycmlkZXMuY2xvbmUoKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChvdmVycmlkZXNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVzLmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgYWRkKE1vckMgbSkgeworICAgICAgICAgICAgTW9yQ1tdIHRlbXAgPSBuZXcgTW9yQ1tvdmVycmlkZXMubGVuZ3RoICsgMV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBvdmVycmlkZXNbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wW292ZXJyaWRlcy5sZW5ndGhdID0gbTsKKyAgICAgICAgICAgIG92ZXJyaWRlcyA9IHRlbXA7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlbW92ZShpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBpID0gaW5kZXg7CisgICAgICAgICAgICB3aGlsZSAob3ZlcnJpZGVzW2ldICE9IG51bGwgJiYgaSA8IG92ZXJyaWRlcy5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIG92ZXJyaWRlc1tpXSA9IG92ZXJyaWRlc1tpKzFdOworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG92ZXJyaWRlc1tpXSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBhIGNhbGwgdG8gYSBtZXRob2QgY2FuIGJlIGhhbmRsZWQgYnkgYSBjYWxsIHRvIHQsIHJlbW92ZSB0aGUKKyAgICAgICAgLy8gbWV0aG9kIGZyb20gb3VyIGxpc3QsIGFuZCByZXR1cm4gdHJ1ZQorICAgICAgICBib29sZWFuIHJlbW92ZU92ZXJyaWRkZW4oTW9yQyB0KSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgd2hpbGUgKGkgPCBvdmVycmlkZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgTW9yQyBtID0gb3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYW5kbGVzKHQsIG0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZShpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlbW92ZSBhbGwgbWV0aG9kcyBoYW5kbGVkIGJ5IGFueSBtZXRob2Qgb2YgbXIKKyAgICAgICAgYm9vbGVhbiByZW1vdmVPdmVycmlkZGVuKE1ldGhvZFJlY29yZCBtcikgeworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbXIub3ZlcnJpZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTW9yQyB0ID0gbXIub3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBhcyB0aGUgdGFyZ2V0IHJlY29yZCBzaG91bGQgbm90IGhhdmUgYmVlbiBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZW1vdmVPdmVycmlkZGVuKHQpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVidWdtc2coTW9yQyB0LCBNb3JDIG0sIFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHQuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobXNnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIik7CisgICAgICAgICAgICB0b1N0cmluZyh0LCBidWYpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4gICAiKTsKKyAgICAgICAgICAgIHRvU3RyaW5nKG0sIGJ1Zik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVzKE1vckMgdCwgTW9yQyBtKSB7CisgICAgICAgICAgICAvLyByZWxldmFudCBtb2RpZmllcnMgbXVzdCBtYXRjaAorICAgICAgICAgICAgaWYgKCh0LmdldE1vZGlmaWVycygpICYgTU9EX01BU0spICE9IChtLmdldE1vZGlmaWVycygpICYgTU9EX01BU0spKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBkZWJ1Z21zZyh0LCBtLCAibW9kaWZpZXIgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIENsYXNzIHRyID0gcGFpckNsYXNzRXF1aXZhbGVudCh0LmdldFJldHVyblR5cGUoKSk7CisgICAgICAgICAgICBDbGFzcyBtciA9IHBhaXJDbGFzc0VxdWl2YWxlbnQobS5nZXRSZXR1cm5UeXBlKCkpOworICAgICAgICAgICAgaWYgKCFhc3NpZ25hYmxlRnJvbShtciwgdHIpKSB7IC8vIHQgcmV0dXJuIHR5cGUgbXVzdCBiZSBzYW1lIG9yIG5hcnJvd2VyIHRoYW4gbQorICAgICAgICAgICAgICAgIGlmIChERUJVRykgZGVidWdtc2codCwgbSwgInJldHVybiB2YWx1ZSBtaXNtYXRjaCIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENsYXNzW10gdHRzID0gdC5nZXRQYXJhbWV0ZXJUeXBlcygpOworICAgICAgICAgICAgQ2xhc3NbXSBtdHMgPSBtLmdldFBhcmFtZXRlclR5cGVzKCk7CisgICAgICAgICAgICBpZiAodHRzLmxlbmd0aCAhPSBtdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBkZWJ1Z21zZyh0LCBtLCAicGFyYW0gY291bnQgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgdGMgPSBwYWlyQ2xhc3NFcXVpdmFsZW50KHR0c1tpXSk7CisgICAgICAgICAgICAgICAgQ2xhc3MgbWMgPSBwYWlyQ2xhc3NFcXVpdmFsZW50KG10c1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFhc3NpZ25hYmxlRnJvbSh0YywgbWMpKSB7IC8vIG0gcGFyYW0gbXVzdCBiZSBzYW1lIG9yIG5hcnJvd2VyIHRoYW4gdAorICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGRlYnVnbXNnKHQsIG0sICJwYXJhbWV0ZXIgIiArIGkgKyAiIG1pc21hdGNoLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHRzW2ldLmdldE5hbWUoKSArICIgbm90IGFzc2lnbmFibGUgZnJvbSAiICsgbXRzW2ldLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHRvU3RyaW5nKE1vckMgbSwgU3RyaW5nQnVmZmVyIGJ1ZikgeworICAgICAgICAgICAgaW50IG1vZCA9IG0uZ2V0TW9kaWZpZXJzKCk7CisgICAgICAgICAgICBpZiAobW9kICE9IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKE1vZGlmaWVyLnRvU3RyaW5nKG1vZCkgKyAiICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lT2YobS5nZXRSZXR1cm5UeXBlKCkpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobS5nZXROYW1lKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiKCIpOworICAgICAgICAgICAgQ2xhc3NbXSBwdHlwZXMgPSBtLmdldFBhcmFtZXRlclR5cGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHB0eXBlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChqID4gMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWVPZihwdHlwZXNbal0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyknKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgYnVmLmFwcGVuZChvdmVycmlkZXNbMF0uZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3ZlcnJpZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTW9yQyBtID0gb3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIik7CisgICAgICAgICAgICAgICAgdG9TdHJpbmcobSwgYnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5hbWVPZihDbGFzcyBjKSB7CisgICAgICAgIGlmIChjLmlzQXJyYXkoKSkgeworICAgICAgICAgICAgcmV0dXJuIG5hbWVPZihjLmdldENvbXBvbmVudFR5cGUoKSkgKyAiW10iOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBuYW1lID0gYy5nZXROYW1lKCk7CisgICAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTW9yQ1tdIGdldE1vckNBcnJheShDb25zdHJ1Y3RvcltdIGNvbnMpIHsKKyAgICAgICAgTW9yQ1tdIHJlc3VsdCA9IG5ldyBNb3JDW2NvbnMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgY29ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gbmV3IE1vckMoY29uc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMgTW9yQ1tdIGdldE1vckNBcnJheShNZXRob2RbXSBtZXRocykgeworICAgICAgICBNb3JDW10gcmVzdWx0ID0gbmV3IE1vckNbbWV0aHMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbWV0aHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IG5ldyBNb3JDKG1ldGhzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgTWFwIGdldE1ldGhvZE1hcChNb3JDW10gbWV0aHMpIHsKKyAgICAgICAgTWFwIHJlc3VsdCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWV0aHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1vckMgbSA9IG1ldGhzW2ldOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG0uZ2V0TmFtZSgpOworICAgICAgICAgICAgTWV0aG9kUmVjb3JkIG1yID0gKE1ldGhvZFJlY29yZClyZXN1bHQuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAobXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1yID0gbmV3IE1ldGhvZFJlY29yZChtKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KGtleSwgbXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtci5hZGQobSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcE1ldGhvZE1hcChNYXAgbSwgUHJpbnRXcml0ZXIgcHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGR1bXBNZXRob2RSZWNvcmQoKE1ldGhvZFJlY29yZCkoKE1hcC5FbnRyeSlpdGVyLm5leHQoKSkuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcE1ldGhvZFJlY29yZChNZXRob2RSZWNvcmQgbXIpIHsKKyAgICAgICAgcHcucHJpbnRsbihtci50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTWFwIGRpZmZNZXRob2RNYXBzKE1hcCBtMSwgTWFwIG0yKSB7CisgICAgICAgIC8vIGdldCBhbGwgdGhlIG1ldGhvZHMgaW4gbTEgdGhhdCBhcmVuJ3QgbWVudGlvbmVkIGluIG0yIGF0IGFsbAorICAgICAgICBNYXAgcmVzdWx0ID0gKE1hcCkoKFRyZWVNYXApbTEpLmNsb25lKCk7CisgICAgICAgIHJlc3VsdC5rZXlTZXQoKS5yZW1vdmVBbGwobTIua2V5U2V0KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgTWFwIHJlbW92ZUlnbm9yZWQoU3RyaW5nIG5hbWUsIE1hcCBtMSkgeworICAgICAgICBpZiAoaWdub3JlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBtMTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKHNyY1ByZWZpeCkpIHsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhzcmNQcmVmaXgubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIG5hbWUgKz0gIiAiOyAvLyB0byBhdm9pZCBhY2NpZGVudGFsIHByZWZpeCBvZiBuZXN0ZWQgY2xhc3MgbmFtZQorCisgICAgICAgIC8vIHBydW5lIGlnbm9yZSBsaXN0IHRvIHJlbGV2YW50IGl0ZW1zCisgICAgICAgIEFycmF5TGlzdCBpbCA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWdub3JlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGlnbm9yZVtpXTsKKyAgICAgICAgICAgIGlmIChzLnN0YXJ0c1dpdGgobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWwuYWRkKHMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbTE7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoKChUcmVlTWFwKW0xKS5jb21wYXJhdG9yKCkpOworICAgICAgICByZXN1bHQucHV0QWxsKG0xKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHJlc3VsdC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIGxvb3A6IHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWwuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWcgPSAoU3RyaW5nKWlsLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaWcuaW5kZXhPZigiICIgKyBrZXkpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgbG9vcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIFNldCByZW1vdmVJZ25vcmVkKFN0cmluZyBuYW1lLCBTZXQgczEpIHsKKyAgICAgICAgaWYgKGlnbm9yZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gczE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChzcmNQcmVmaXgpKSB7CisgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoc3JjUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICBuYW1lICs9ICIgIjsgLy8gdG8gYXZvaWQgYWNjaWRlbnRhbCBwcmVmaXggb2YgbmVzdGVkIGNsYXNzIG5hbWUKKworICAgICAgICAvLyBwcnVuZSBpZ25vcmUgbGlzdCB0byByZWxldmFudCBpdGVtcworICAgICAgICBBcnJheUxpc3QgaWwgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlnbm9yZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBpZ25vcmVbaV07CisgICAgICAgICAgICBpZiAocy5zdGFydHNXaXRoKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWwgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlsLmFkZChzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaWwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHMxOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgU2V0IHJlc3VsdCA9IChTZXQpKChUcmVlU2V0KXMxKS5jbG9uZSgpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gcmVzdWx0Lml0ZXJhdG9yKCk7CisgICAgICAgIGxvb3A6IHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgZmllbGRuYW1lID0ga2V5LnN1YnN0cmluZygwLCBrZXkuaW5kZXhPZignICcpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWwuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWcgPSAoU3RyaW5nKWlsLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaWcuaW5kZXhPZigiICIgKyBmaWVsZG5hbWUpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgbG9vcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbltdW10gYXNzaWdubWVudE1hcCA9IHsKKyAgICAgICAgLy8gYm9vbCAgIGNoYXIgICBieXRlICBzaG9ydCAgICBpbnQgICBsb25nICBmbG9hdCBkb3VibGUgICB2b2lkCisgICAgICAgIHsgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBib29sZWFuCisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBjaGFyCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBieXRlCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBzaG9ydAorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gaW50CisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSB9LCAvLyBsb25nCisgICAgICAgIHsgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCBmYWxzZSwgIHRydWUsIGZhbHNlLCBmYWxzZSB9LCAvLyBmbG9hdAorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsICB0cnVlLCAgdHJ1ZSwgZmFsc2UgfSwgLy8gZG91YmxlCisgICAgICAgIHsgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSB9LCAvLyB2b2lkCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBDbGFzc1tdIHByaW1zID0geworICAgICAgICBib29sZWFuLmNsYXNzLCBjaGFyLmNsYXNzLCBieXRlLmNsYXNzLCBzaG9ydC5jbGFzcywKKyAgICAgICAgaW50LmNsYXNzLCBsb25nLmNsYXNzLCBmbG9hdC5jbGFzcywgZG91YmxlLmNsYXNzLCB2b2lkLmNsYXNzCisgICAgfTsKKworICAgIHN0YXRpYyBpbnQgcHJpbUluZGV4KENsYXNzIGNscykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByaW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoY2xzID09IHByaW1zW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiY291bGQgbm90IGZpbmQgcHJpbWl0aXZlIGNsYXNzOiAiICsgY2xzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbGVhbiBhc3NpZ25hYmxlRnJvbShDbGFzcyBsaHMsIENsYXNzIHJocykgeworICAgICAgICBpZiAobGhzID09IHJocykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxocy5pc1ByaW1pdGl2ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXJocy5pc1ByaW1pdGl2ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxoc3ggPSBwcmltSW5kZXgobGhzKTsKKyAgICAgICAgICAgIGludCByaHN4ID0gcHJpbUluZGV4KHJocyk7CisgICAgICAgICAgICByZXR1cm4gYXNzaWdubWVudE1hcFtsaHN4XVtyaHN4XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGhzLmlzQXNzaWduYWJsZUZyb20ocmhzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyB0b1N0cmluZyhGaWVsZCBmKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKGYuZ2V0TmFtZSgpKTsKKyAgICAgICAgaW50IG1vZCA9IGYuZ2V0TW9kaWZpZXJzKCkgJiBNT0RfTUFTSzsKKyAgICAgICAgaWYgKG1vZCAhPSAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIE1vZGlmaWVyLnRvU3RyaW5nKG1vZCkpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgU3RyaW5nIG4gPSBwYWlyRXF1aXZhbGVudChmLmdldFR5cGUoKS5nZXROYW1lKCkpOworICAgICAgICBuID0gbi5zdWJzdHJpbmcobi5sYXN0SW5kZXhPZignLicpICsgMSk7CisgICAgICAgIGJ1Zi5hcHBlbmQobik7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFNldCBnZXRGaWVsZFNldChGaWVsZFtdIGZzKSB7CisgICAgICAgIFNldCBzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzZXQuYWRkKHRvU3RyaW5nKGZzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICBzdGF0aWMgU2V0IGRpZmZGaWVsZFNldHMoU2V0IHMxLCBTZXQgczIpIHsKKyAgICAgICAgU2V0IHJlc3VsdCA9IChTZXQpKChUcmVlU2V0KXMxKS5jbG9uZSgpOworICAgICAgICByZXN1bHQucmVtb3ZlQWxsKHMyKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcEZpZWxkU2V0KFNldCBzLCBQcmludFdyaXRlciBwdykgeworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oaXRlci5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgLy8gZ2l2ZW4gYSB0YXJnZXQgc3RyaW5nLCBpZiBpdCBtYXRjaGVzIHRoZSBmaXJzdCBvZiBvbmUgb2Ygb3VyIHBhaXJzLCByZXR1cm4gdGhlIHNlY29uZAorICAgIC8vIG9yIHZpY2UtdmVyc2EgaWYgc3dhcCBpcyB0cnVlCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFpckVxdWl2YWxlbnQoU3RyaW5nIHRhcmdldCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVQYWlycy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgaWYgKHN3YXApIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhuYW1lUGFpcnNbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYWlyc1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKG5hbWVQYWlyc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYWlyc1tpKzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIHByaXZhdGUgQ2xhc3MgcGFpckNsYXNzRXF1aXZhbGVudChDbGFzcyB0YXJnZXQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc1BhaXJzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhjbGFzc1BhaXJzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc1BhaXJzW2krMV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE1PRF9NQVNLID0gfihNb2RpZmllci5GSU5BTHxNb2RpZmllci5TWU5DSFJPTklaRUR8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZXIuVk9MQVRJTEV8TW9kaWZpZXIuVFJBTlNJRU5UfE1vZGlmaWVyLk5BVElWRSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VUYWdsZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVVRhZ2xldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZWFmYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VUYWdsZXQuamF2YQpAQCAtMCwwICsxLDI5MyBAQAorLy8jI2hlYWRlciAgVkVSU0lPTl8xLjUKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBQcmVwcm9jZXNzIHdpdGggY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Db2RlTWFuZ2xlciB0byBnZW5lcmF0ZQorICogZWl0aGVyIGEgSkRLIDEuNCBvciBKREsgMS41IHZlcnNpb24uICBGb3IgdGhlIDEuNSB2ZXJzaW9uLCBkZWZpbmUKKyAqIFZFUlNJT05fMS41LgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGNvbS5zdW4uamF2YWRvYy4qOworaW1wb3J0IGNvbS5zdW4udG9vbHMuZG9jbGV0cy4qOworLy8jaWZkZWYgVkVSU0lPTl8xLjUKKworaW1wb3J0IGNvbS5zdW4udG9vbHMuZG9jbGV0cy5pbnRlcm5hbC50b29sa2l0LnRhZ2xldHMuKjsKK2ltcG9ydCBjb20uc3VuLnRvb2xzLmRvY2xldHMuaW50ZXJuYWwudG9vbGtpdC50YWdsZXRzLlRhZ2xldDsKKworLy8gamRrIDEuNSBjb250YWlucyBib3RoIGNvbS5zdW4udG9vbHMuZG9jbGV0cy5UYWdsZXQgYW5kCisvLyBjb20uc3VuLnRvb2xzLmRvY2xldHMuaW50ZXJuYWwudG9vbGtpdC50YWdsZXRzLlRhZ2xldC4KKy8vIFRoZWlyIHJlZ2lzdHJhdGlvbiBjb2RlIGNhc3RzIHRvIHRoZSBzZWNvbmQsIG5vdCB0aGUgZmlyc3QsIGFuZCB0aGUKKy8vIHNlY29uZCBkb2Vzbid0IGltcGxlbWVudCB0aGUgZmlyc3QsIHNvIGlmIHlvdSBqdXN0IGltcGxlbWVudCB0aGUKKy8vIGZpcnN0LCB5b3UgZGllLgorLy8jZW5kaWYKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIElDVVRhZ2xldCBpbXBsZW1lbnRzIFRhZ2xldCB7CisgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgbWFzazsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfRklFTEQgPSAxOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfQ09OU1RSVUNUT1IgPSAyOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfTUVUSE9EID0gNDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX09WRVJWSUVXID0gODsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1BBQ0tBR0UgPSAxNjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1RZUEUgPSAzMjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX0lOTElORSA9IDY0OworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19ERUZBVUxUID0gMHgwMDNmOyAvLyBubyBpbmxpbmUKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX1ZBTElEID0gMHgwMDdmOyAvLyBpbmNsdWRlcyBpbmxpbmUKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICBJQ1VJbnRlcm5hbFRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKyAgICAgICAgSUNVRHJhZnRUYWdsZXQucmVnaXN0ZXIodGFnbGV0cyk7CisgICAgICAgIElDVVN0YWJsZVRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKy8vI2lmbmRlZiBWRVJTSU9OXzEuNQorLy8jIyAgICAgICAgSUNVRGVwcmVjYXRlZFRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKy8vI2VuZGlmCisgICAgICAgIElDVVByb3Zpc2lvbmFsVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgICAgICBJQ1VPYnNvbGV0ZVRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKyAgICAgICAgSUNVSWdub3JlVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgIH0KKworICAgIHByb3RlY3RlZCBJQ1VUYWdsZXQoU3RyaW5nIG5hbWUsIGludCBtYXNrKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMubWFzayA9IG1hc2sgJiBNQVNLX1ZBTElEOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGluRmllbGQoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfRklFTEQpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5Db25zdHJ1Y3RvcigpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19DT05TVFJVQ1RPUikgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpbk1ldGhvZCgpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19NRVRIT0QpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5PdmVydmlldygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19PVkVSVklFVykgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblBhY2thZ2UoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfUEFDS0FHRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblR5cGUoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfVFlQRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0lubGluZVRhZygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19JTkxJTkUpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgcmV0dXJuIHRhZy50ZXh0KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWdbXSB0YWdzKSB7CisgICAgICAgIGlmICh0YWdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YWdzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIlNob3VsZCBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIElDVSB0YWcgcGVyIGVsZW1lbnQ6XG4iOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBtc2cgKz0gIiAgWyIgKyBpICsgIl0gIiArIHRhZ3NbaV0gKyAiXG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0b1N0cmluZyh0YWdzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisvLyNpZmRlZiBWRVJTSU9OXzEuNQorCisgICAgcHVibGljIFRhZ2xldE91dHB1dCBnZXRUYWdsZXRPdXRwdXQoVGFnIHRhZywgVGFnbGV0V3JpdGVyIHdyaXRlcikgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworCW91dC5zZXRPdXRwdXQodG9TdHJpbmcodGFnKSk7CisJcmV0dXJuIG91dDsKKyAgICB9CisKKyAgICBwdWJsaWMgVGFnbGV0T3V0cHV0IGdldFRhZ2xldE91dHB1dChEb2MgaG9sZGVyLCBUYWdsZXRXcml0ZXIgd3JpdGVyKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworCVRhZ1tdIHRhZ3MgPSBob2xkZXIudGFncyhnZXROYW1lKCkpOworCWlmICh0YWdzLmxlbmd0aCA9PSAwKSB7CisJICAgIHJldHVybiBudWxsOworCX0KKyAJb3V0LnNldE91dHB1dCh0b1N0cmluZyh0YWdzWzBdKSk7CisgCXJldHVybiBvdXQ7CisgICAgfQorLy8jZW5kaWYKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIFNUQVRVUyA9ICI8ZHQ+PGI+U3RhdHVzOjwvYj48L2R0PiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVUludGVybmFsVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAiaW50ZXJuYWwiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVUludGVybmFsVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VJbnRlcm5hbFRhZ2xldCgpIHsKKyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPjxlbT5JbnRlcm5hbDwvZW0+LiA8Zm9udCBjb2xvcj0ncmVkJz5UaGlzIEFQSSBpcyA8ZW0+SUNVIGludGVybmFsIG9ubHk8L2VtPi48L2ZvbnQ+PC9kZD4iOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VEcmFmdFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gImRyYWZ0IjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KE5BTUUsIG5ldyBJQ1VEcmFmdFRhZ2xldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVRHJhZnRUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHRhZy50ZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXYXJuaW5nOiBlbXB0eSBkcmFmdCB0YWciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPkRyYWZ0ICIgKyB0YWcudGV4dCgpICsgIi48L2RkPiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVVN0YWJsZVRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gInN0YWJsZSI7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVU3RhYmxlVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VTdGFibGVUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHRhZy50ZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU1RBVFVTICsgIjxkZD5TdGFibGUgIiArIHRleHQgKyAiLjwvZGQ+IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNUQVRVUyArICI8ZGQ+U3RhYmxlLjwvZGQ+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKy8vI2lmbmRlZiBWRVJTSU9OXzEuNQorLy8jIworLy8jIyAgICAvKgorLy8jIyAgICAgKiBzaWdoLCBpbiBKREsgMS41IHdlIGNhbid0IG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBkZXByZWNhdGVkIHRhZ2xldAorLy8jIyAgICAgKiBzbyBlYXNpbHkuICBJJ20gbm90IGltcHJlc3NlZCB3aXRoIHRoZSBqYXZhZG9jIGNvZGUuCisvLyMjICAgICAqLworLy8jIyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVURlcHJlY2F0ZWRUYWdsZXQgZXh0ZW5kcyBJQ1VUYWdsZXQgeworLy8jIyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAiZGVwcmVjYXRlZCI7CisvLyMjCisvLyMjICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKy8vIyMJICAgIHRhZ2xldHMucmVtb3ZlKE5BTUUpOyAvLyBvdmVycmlkZSBzdGFuZGFyZCBkZXByZWNhdGVkIHRhZ2xldAorLy8jIyAgICAgICAgICAgIHRhZ2xldHMucHV0KE5BTUUsIG5ldyBJQ1VEZXByZWNhdGVkVGFnbGV0KCkpOworLy8jIyAgICAgICAgfQorLy8jIworLy8jIyAgICAgICAgcHJpdmF0ZSBJQ1VEZXByZWNhdGVkVGFnbGV0KCkgeworLy8jIyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisvLyMjICAgICAgICB9CisvLyMjCisvLyMjICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKy8vIyMgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisvLyMjICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworLy8jIyAgICAgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisvLyMjICAgICAgICAgICAgaW50IGZpcnN0ID0gYmkuZmlyc3QoKTsKKy8vIyMgICAgICAgICAgICBpbnQgbmV4dCA9IGJpLm5leHQoKTsKKy8vIyMgICAgICAgICAgICBpZiAoZmlyc3QgPT0gLTEgfHwgbmV4dCA9PSAtMSkgeworLy8jIyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldhcm5pbmc6IGJhZCBkZXByZWNhdGVkIHRhZyAnIiArIHRleHQgKyAiJyIpOworLy8jIyAgICAgICAgICAgICAgICByZXR1cm4gIjxkZD48ZW0+Tm90ZTwvZW0+LiAiICsgdGV4dCArICI8L2RkPiI7CisvLyMjICAgICAgICAgICAgfSBlbHNlIHsKKy8vIyMgICAgICAgICAgICAgICAgaWYgKCJUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4iLmVxdWFscyh0ZXh0KSkgeworLy8jIyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisvLyMjICAgICAgICAgICAgICAgIH0KKy8vIyMgICAgICAgICAgICAgICAgcmV0dXJuICI8ZGQ+PGVtPk5vdGUsICIgKyB0ZXh0LnN1YnN0cmluZyhmaXJzdCwgbmV4dCkgKyAiPC9lbT4uICIgKyB0ZXh0LnN1YnN0cmluZyhuZXh0KSArICI8L2RkPiI7CisvLyMjICAgICAgICAgICAgfQorLy8jIyAgICAgICAgfQorLy8jIyAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VQcm92aXNpb25hbFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gInByb3Zpc2lvbmFsIjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKwkgICAgdGFnbGV0cy5yZW1vdmUoTkFNRSk7IC8vIG92ZXJyaWRlIHN0YW5kYXJkIGRlcHJlY2F0ZWQgdGFnbGV0CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVUHJvdmlzaW9uYWxUYWdsZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElDVVByb3Zpc2lvbmFsVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoTkFNRSwgTUFTS19ERUZBVUxUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoVGFnIHRhZykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVU9ic29sZXRlVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAib2Jzb2xldGUiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVU9ic29sZXRlVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VPYnNvbGV0ZVRhZ2xldCgpIHsKKyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gdGFnLnRleHQoKTsKKyAgICAgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICBpbnQgZmlyc3QgPSBiaS5maXJzdCgpOworICAgICAgICAgICAgaW50IG5leHQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBuZXh0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPjxlbT5PYnNvbGV0ZS48L2VtPiA8Zm9udCBjb2xvcj0ncmVkJz5XaWxsIGJlIHJlbW92ZWQgaW4gIiArIHRleHQuc3Vic3RyaW5nKGZpcnN0LCBuZXh0KSArICI8L2ZvbnQ+LiAiICsgdGV4dC5zdWJzdHJpbmcobmV4dCkgKyAiPC9kZD4iOworCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVUlnbm9yZVRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIElDVVRhZ2xldCBzaW5nbGV0b247CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICBpZiAoc2luZ2xldG9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGV0b24gPSBuZXcgSUNVSWdub3JlVGFnbGV0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0YWdsZXRzLnB1dCgiYnVnIiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJ0ZXN0Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJzdW1tYXJ5Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVSWdub3JlVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoIi5pZ25vcmUiLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1JFQURNRS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzN2YxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0CkBAIC0wLDAgKzEsOTUgQEAKK0NvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitVc2luZyB0aGUgR2F0aGVyQVBJRGF0YSBhbmQgUmVwb3J0QVBJIHRvb2xzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXNlIHR3byB0b29scyBhcmUgdXNlZCB0b2dldGhlciB0byBnZW5lcmF0ZSByZXBvcnRzIGFib3V0IGNoYW5nZXMgaW4KK3N1cHBvcnRlZCBBUEkgYmV0d2VlbiB2ZXJzaW9ucyBvZiBJQ1U0Si4KKworCitHYXRoZXJBUElEYXRhIAorCitHYXRoZXJBUElEYXRhIHVzZXMgamF2YWRvYyB0byBwcm9jZXNzIHRoZSBJQ1U0SiBzb3VyY2UgZmlsZXMgYW5kCitnZW5lcmF0ZSBhIGZpbGUgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVibGljIEFQSSwgaW5jbHVkaW5nCit0aGUgSUNVNEogc3RhdHVzIChkcmFmdCwgc3RhYmxlLCBkZXByZWNhdGVkLCBvYnNvbGV0ZSkuICBJdCBleGNsdWRlcworcHJpdmF0ZSBBUEksIEFQSSBtYXJrZWQgQGludGVybmFsLiAgVGhlIGZpbGUgaXMgd3JpdHRlbiBhcyB0ZXh0LCBzbyBpdAoraXMgaHVtYW4tcmVhZGFibGUsIGJ1dCBpdCBpcyBhIGJpdCB2ZXJib3NlLiAgVG8gc2F2ZSBzcGFjZSwgdGhlIGZpbGUKK2NhbiBiZSB6aXAnZCBvciBnemlwJ2QgKHVzaW5nIGZsYWdzIHBhc3NlZCB0byB0aGUgdG9vbCksIHdoaWNoIHdpbGwKK3JlZHVjZSB0aGUgc2l6ZSBieSBhYm91dCBhIGZhY3RvciBvZiAxMC4KKworR2F0aGVyQVBJRGF0YSByZXF1aXJlcyBqYXZhZG9jIGFuZCBpcyBjdXJyZW50bHkgYmFzZWQgb24gc3VuIGpkaworMS40LjIuICBKYXZhRG9jIGlzIGludGVybmFsIChJIGJlbGlldmUpIHNvIHlvdSBuZWVkIGEgcmVmZXJlbmNlIGp2bQorZnJvbSBTdW4gdG8gY29tcGlsZSB0aGUgdG9vbCwgYnV0IGl0IGNhbiBiZSBydW4gYWdhaW5zdCBhbnkgMS40IEpESworKGF0IGxlYXN0LCB0aG9zZSBmcm9tIFN1bikuICBJbnN0cnVjdGlvbnMgaW4gdGhlIHNvdXJjZSBmaWxlIHNob3cgaG93CitpdCBjYW4gYmUgaW52b2tlZC4KKworR2F0aGVyQVBJRGF0YSBzaG91bGQgYmUgcGFzc2VkIGFsbCB0aGUgcGFja2FnZXMgdGhhdCBuZWVkIHJlcG9ydGluZy4KK0N1cnJlbnRseSwgcHVibGljIGFwaSBpcyBvbmx5IGluIHRoZSBsYW5nLCBtYXRoLCB0ZXh0LCBhbmQgdXRpbAorc3VicGFja2FnZXMgb2YgY29tLmlibS5pY3UuCisKKworUmVwb3J0QVBJIAorCitSZXBvcnRBUEkgdGFrZXMgdHdvIGFwaSBmaWxlcyBnZW5lcmF0ZWQgYnkgR2F0aGVyQVBJRGF0YSBhbmQgcmVwb3J0cworb24gcmVtb3ZhbHMsIGNoYW5nZXMsIGFuZCBhZGRpdGlvbnMgdG8gdGhlIEFQSS4gIEl0IGRvZXMgdGhpcyBieQorY29tcGFyaW5nIHRoZSBBUEkgaW5mb3JtYXRpb24gaW4gdGhlIHR3byBBUEkgZmlsZXMuICBXaGVuIG5ldyBjbGFzc2VzCithcmUgYWRkZWQsIG9ubHkgdGhlIGNsYXNzIGlzIGxpc3RlZCwgbm90IGl0cyBlbnRpcmUgQVBJLCBhbmQgc2ltaWxhcmx5Cit3aGVuIGEgY2xhc3MgaXMgZGVsZXRlZC4gIFdoZW4gQVBJcyB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIHNpZ25hdHVyZQorYXJlIGNoYW5nZWQgKHZpc2liaWxpdHksIHN0YXR1cywgaW5oZXJpdGFuY2UpIHRoZXNlIGNoYW5nZXMgYXJlIGxpc3RlZAorYnkgc2hvd2luZyB0aGUgb2xkIGFuZCBuZXcgdmVyc2lvbnMgb2YgdGhlIEFQSS4KKworUmVwb3J0QVBJIGlzIG5vdCBwYXJ0aWN1bGFybHkgc21hcnQsIGFuZCBpbiBwYXJ0aWN1bGFyLCBkb2VzIG5vdCBrbm93CithYm91dCBpbmhlcml0ZWQgQVBJLiAgU28gZm9yIGV4YW1wbGUsIG1vdmluZyBwdWJsaWMgQVBJIGZyb20gYSBjbGFzcwordG8gYSBiYXNlIGNsYXNzIGlzIHJlcG9ydGVkIGFzIGEgZGVsZXRpb24gb2YgQVBJIGZyb20gdGhlIG9yaWdpbmFsCitjbGFzcywgZXZlbiB0aG91Z2ggdGhlIGVmZmVjdGl2ZSBBUEkgb24gdGhlIG9yaWdpbmFsIGNsYXNzIGlzCit1bmNoYW5nZWQgYnkgdGhpcy4KKworUmVwb3J0QVBJIGFsc28gZG9lcyBub3Qga25vdyBhYm91dCBKYXZhIGNsYXNzIGZpbGVzLCBzbyBmb3IgZXhhbXBsZSBpdAorY2Fubm90IGJlIHVzZWQgdG8gY29tcGFyZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIgYWdhaW5zdAoramF2YS5sYW5nLkNoYXJhY3Rlci4gIFRoaXMgbWlnaHQgYmUgcHJvdmlkZWQgaW4gYSBsYXRlciByZWxlYXNlLgorCitGb3IgdGhlc2UgcmVhc29ucywgaW4gZ2VuZXJhbCBpdCBpcyBiZXN0IHRvIGNvbXBhcmUgdHdvIHN1Y2Nlc3NpdmUKK3ZlcnNpb25zIG9mIElDVTRKIGFnYWluc3QgZWFjaCBvdGhlciwgcmF0aGVyIHRoYW4gcmFkaWNhbGx5IGRpZmZlcmVudAordmVyc2lvbnMuICBBIGxhcmdlIG51bWJlciBvZiBjaGFuZ2VzIGNhbiBzaG93IHVwLCBtYW55IG9mIHdoaWNoIG1pZ2h0CitmYWxsIGludG8gdGhlc2UgJ2lubm9jdW91cycgY2F0ZWdvcmllcy4KKworUmVwb3J0QVBJIGNhbiBnZW5lcmF0ZSBlaXRoZXIgcGxhaW4gdGV4dCBvciBodG1sIHJlcG9ydHMuICBTaW5jZSBpdAorb25seSByZXF1aXJlcyB0aGUgZGF0YSBmaWxlcyBhbmQgZG9lcyBub3QgcmVseSBvbiBKYXZhRG9jLCBpdCBpcyBtb3JlCitzdHJhaWdodGZvcndhcmQgdG8gaW52b2tlLgorCitSZXBvcnRBUEkgdXNlcyB0aGUgZmlsZSBleHRlbnNpb24gdG8gZGV0ZXJtaW5lIGhvdyB0byB1bmNvbXByZXNzIHRoZQorYXBpIGRhdGEgZmlsZXMuICBJdCBleHBlY3RzICcuemlwJyBmb3IgZmlsZXMgdGhhdCBoYXZlIGJlZW4gY29tcHJlc3NlZAordXNpbmcgemlwLCBhbmQgJy5neicgZm9yIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGNvbXByZXNzZWQgdXNpbmcgZ3ppcC4KK1RoZSBHYXRoZXJBUElEYXRhIHV0aWxpdHkgYXV0b21hdGljYWxseSBhcHBlbmRzIHRoZXNlIGV4dGVuc2lvbnMgd2hlbgorY29tcHJlc3Npb24gaXMgdXNlZC4KKworQVBJIERhdGEgRmlsZXMKKworQVBJIERhdGEgZmlsZXMgZm9yIElDVTRKIDIuOCBhbmQgMy4wIGFyZSBpbiB0aGlzIGRpcmVjdG9yeS4gIFRoZQoraW50ZW50IGlzIHRvIHN0b3JlIGRhdGEgZmlsZXMgZm9yIGVhY2ggcmVsZWFzZSB2ZXJzaW9uIG9mIElDVTRKLCB0bworZmFjaWxpdGF0ZSBjb21wYXJpc29uIHVzaW5nIHRoZSBSZXBvcnRBUEkgdG9vbC4gIE9mIGNvdXJzZSwgdGhleSBjYW4KK2Fsd2F5cyBiZSByZWdlbmVyYXRlZCB1c2luZyB0aGUgR2VuZXJhdGVBUEkgYW5kIHRoZSBzb3VyY2VzIG9mIGEKK3BhcnRpY3VsYXIgSUNVNEogcmVsZWFzZS4KKworVGhlIGZvcm1hdCBvZiB0aGUgQVBJIGRhdGEgZmlsZSBpcyBzdHJhaWdodGZvcndhcmQuICBUaGUgZmlyc3QgbGluZSBvZgordGhlIGZpbGUgaXMgdGhlIGhlYWRlciwgc3VjY2Vzc2l2ZSBsaW5lcyBhcmUgdGhlIGFwaSBpbmZvcm1hdGlvbi4KK0VhY2ggbGluZSBjb25zaXN0cyBvZiBhIG51bWJlciBvZiB0b2tlbnMsIGVhY2ggZm9sbG93ZWQgYnkgYQorc2VtaS1jb2xvbiAoaW5jdWRpbmcgdGhlIGxhc3QgdG9rZW4gb24gdGhlIGxpbmUpLgorCitUaGUgaGVhZGVyIGxpbmUgY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLCB0aGUgJ25hbWUnIG9mIHRoZSB2ZXJzaW9uCitvZiBJQ1U0SiByZXByZXNlbnRlZCBieSB0aGUgZmlsZSwgYW5kIGEgJ2Jhc2UgZGlyZWN0b3J5JyBmaWVsZAorKGN1cnJlbnRseSBub3QgZnVsbHkgaW1wbGVtZW50ZWQpLgorCitUaGUgZm9sbG93aW5nIGxpbmVzIGNvbnRhaW4gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIEFQSUluZm8gY2xhc3MsIG9uZQorbGluZSBwZXIgY2xhc3Mgb3IgbWV0aG9kLiAgVGhlIHRva2VucyBhcmUgc3RhdHVzLCB2aXNpYmlsaXR5LCBzdGF0aWMsCitmaW5hbCwgc3luY2hyb25pemVkLCBhYnN0cmFjdCwgdHlwZSwgcGFja2FnZSwgY29udGFpbmluZyBjbGFzcywgbmFtZSwKK2FuZCAnc2lnbmF0dXJlJyAod2hpY2ggdmFyaWVzIGJ5IHRoZSB0eXBlIG9mIG9iamVjdCkuICBGb3IgY2xhc3NlcywKK3RoZSAnc2lnbmF0dXJlJyBpcyB0aGUgaW1tZWRpYXRlIGluaGVyaXRhbmNlIG9mIHRoZSBjbGFzcy4gIEZvcgorZmllbGRzLCB0aGUgJ3NpZ25hdHVyZScgaXMgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiAgRm9yIG1ldGhvZHMsIHRoZQorJ3NpZ25hdHVyZScgaXMgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQWxsIGZpZWxkcyBhcmUgYWx3YXlzIHByZXNlbnQuCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIEFQSUluZm8uamF2YS4KKworLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SZXBvcnRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTE1NmYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEKQEAgLTAsMCArMSw0ODYgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBDb21wYXJlIHR3byBBUEkgZmlsZXMgKGdlbmVyYXRlZCBieSBHYXRoZXJBUElEYXRhKSBhbmQgZ2VuZXJhdGUgYSByZXBvcnQKKyAqIG9uIHRoZSBkaWZmZXJlbmNlcy4KKyAqCisgKiBTYW1wbGUgaW52b2NhdGlvbjoKKyAqIGphdmEgLW9sZDogaWN1NGoyOC5hcGkuemlwIC1uZXc6IGljdTRqMzAuYXBpIC1odG1sIC1vdXQ6IGljdTRqX2NvbXBhcmVfMjhfMzAuaHRtbAorICoKKyAqIFRPRE86CisgKiAtIG1ha2UgJ2NoYW5nZWQgYXBpcycgc21hcnRlciAtIGRldGVjdCBtZXRob2QgcGFyYW1ldGVyIG9yIHJldHVybiB0eXBlIGNoYW5nZQorICogICBmb3IgdGhpcywgdGhlIHNlcXVlbnRpYWwgc2VhcmNoIHRocm91Z2ggbWV0aG9kcyBvcmRlcmVkIGJ5IHNpZ25hdHVyZSB3b24ndCBkby4KKyAqICAgICBXZSBuZWVkIHRvIGdhdGhlciBhbGwgYWRkZWQgYW5kIHJlbW92ZWQgb3ZlcmxvYWRzIGZvciBhIG1ldGhvZCwgYW5kIHRoZW4KKyAqICAgICBjb21wYXJlIGFsbCBhZGRlZCBhZ2FpbnN0IGFsbCByZW1vdmVkIGluIG9yZGVyIHRvIGlkZW50aWZ5IHRoaXMga2luZCBvZgorICogICAgIGNoYW5nZS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0Lio7CisKK3B1YmxpYyBjbGFzcyBSZXBvcnRBUEkgeworICAgIEFQSURhdGEgb2xkRGF0YTsKKyAgICBBUElEYXRhIG5ld0RhdGE7CisgICAgYm9vbGVhbiBodG1sOworICAgIFN0cmluZyBvdXRwdXRGaWxlOworCisgICAgVHJlZVNldCBhZGRlZDsKKyAgICBUcmVlU2V0IHJlbW92ZWQ7CisgICAgVHJlZVNldCBwcm9tb3RlZDsKKyAgICBUcmVlU2V0IG9ic29sZXRlZDsKKyAgICBBcnJheUxpc3QgY2hhbmdlZDsKKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWx0YUluZm8gZXh0ZW5kcyBBUElJbmZvIHsKKyAgICAgICAgQVBJSW5mbyBhZGRlZDsKKyAgICAgICAgQVBJSW5mbyByZW1vdmVkOworCisgICAgICAgIERlbHRhSW5mbyhBUElJbmZvIGFkZGVkLCBBUElJbmZvIHJlbW92ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkZWQgPSBhZGRlZDsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlZCA9IHJlbW92ZWQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFZhbChpbnQgdHlwKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkZWQuZ2V0VmFsKHR5cCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkZWQuZ2V0KHR5cCwgYnJpZWYpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcHJpbnQoUHJpbnRXcml0ZXIgcHcsIGJvb2xlYW4gZGV0YWlsLCBib29sZWFuIGh0bWwpIHsKKyAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICByZW1vdmVkLnByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L2JyPiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIi0tPiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFkZGVkLnByaW50KHB3LCBkZXRhaWwsIGh0bWwpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgb2xkRmlsZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBuZXdGaWxlID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG91dEZpbGUgPSBudWxsOworICAgICAgICBib29sZWFuIGh0bWwgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBpbnRlcm5hbCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1vbGQ6IikpIHsKKyAgICAgICAgICAgICAgICBvbGRGaWxlID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbmV3OiIpKSB7CisgICAgICAgICAgICAgICAgbmV3RmlsZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW91dDoiKSkgeworICAgICAgICAgICAgICAgIG91dEZpbGUgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1odG1sIikpIHsKKyAgICAgICAgICAgICAgICBodG1sID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWludGVybmFsIikpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBuZXcgUmVwb3J0QVBJKG9sZEZpbGUsIG5ld0ZpbGUsIGludGVybmFsKS53cml0ZVJlcG9ydChvdXRGaWxlLCBodG1sLCBpbnRlcm5hbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgIHdoaWxlIHRoZSBib3RoIGFyZSBtZXRob2RzIGFuZCB0aGUgY2xhc3MgYW5kIG1ldGhvZCBuYW1lcyBhcmUgdGhlIHNhbWUsIGNvbGxlY3QKKyAgICAgIG92ZXJsb2Fkcy4gIHdoZW4geW91IGhpdCBhIG5ldyBtZXRob2Qgb3IgY2xhc3MsIGNvbXBhcmUgdGhlIG92ZXJsb2FkcworICAgICAgbG9va2luZyBmb3IgdGhlIHNhbWUgIyBvZiBwYXJhbXMgYW5kIHNpbXBsZSBwYXJhbSBjaGFuZ2VzLiAgaWRlYWxseQorICAgICAgdGhlcmUgYXJlIGp1c3QgYSBmZXcuCisKKyAgICAgIFN0cmluZyBvbGRBID0gbnVsbDsKKyAgICAgIFN0cmluZyBvbGRSID0gbnVsbDsKKyAgICAgIGlmICghYS5pc01ldGhvZCgpKSB7CisgICAgICByZW1vdmUgYW5kIGNvbnRpbnVlCisgICAgICB9CisgICAgICBTdHJpbmcgYW0gPSBhLmdldENsYXNzTmFtZSgpICsgIi4iICsgYS5nZXROYW1lKCk7CisgICAgICBTdHJpbmcgcm0gPSByLmdldENsYXNzTmFtZSgpICsgIi4iICsgci5nZXROYW1lKCk7CisgICAgICBpbnQgY29tcCA9IGFtLmNvbXBhcmUocm0pOworICAgICAgaWYgKGNvbXAgPT0gMCAmJiBhLmlzTWV0aG9kKCkgJiYgci5pc01ldGhvZCgpKQorCisgICAgKi8KKworICAgIFJlcG9ydEFQSShTdHJpbmcgb2xkRmlsZSwgU3RyaW5nIG5ld0ZpbGUsIGJvb2xlYW4gaW50ZXJuYWwpIHsKKyAgICAgICAgdGhpcyhBUElEYXRhLnJlYWQob2xkRmlsZSwgaW50ZXJuYWwpLCBBUElEYXRhLnJlYWQobmV3RmlsZSwgaW50ZXJuYWwpKTsKKyAgICB9CisKKyAgICBSZXBvcnRBUEkoQVBJRGF0YSBvbGREYXRhLCBBUElEYXRhIG5ld0RhdGEpIHsKKyAgICAgICAgdGhpcy5vbGREYXRhID0gb2xkRGF0YTsKKyAgICAgICAgdGhpcy5uZXdEYXRhID0gbmV3RGF0YTsKKworICAgICAgICByZW1vdmVkID0gKFRyZWVTZXQpb2xkRGF0YS5zZXQuY2xvbmUoKTsKKyAgICAgICAgcmVtb3ZlZC5yZW1vdmVBbGwobmV3RGF0YS5zZXQpOworCisgICAgICAgIGFkZGVkID0gKFRyZWVTZXQpbmV3RGF0YS5zZXQuY2xvbmUoKTsKKyAgICAgICAgYWRkZWQucmVtb3ZlQWxsKG9sZERhdGEuc2V0KTsKKworICAgICAgICBjaGFuZ2VkID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBJdGVyYXRvciBhaSA9IGFkZGVkLml0ZXJhdG9yKCk7CisgICAgICAgIEl0ZXJhdG9yIHJpID0gcmVtb3ZlZC5pdGVyYXRvcigpOworICAgICAgICBDb21wYXJhdG9yIGMgPSBBUElJbmZvLmNoYW5nZWRDb21wYXJhdG9yKCk7CisKKyAgICAgICAgQXJyYXlMaXN0IGFtcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgQXJyYXlMaXN0IHJtcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0cHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICAgICAgQVBJSW5mbyBhID0gbnVsbCwgciA9IG51bGw7CisgICAgICAgIHdoaWxlICgoYSAhPSBudWxsIHx8IGFpLmhhc05leHQoKSkgJiYgKHIgIT0gbnVsbCB8fCByaS5oYXNOZXh0KCkpKSB7CisgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSBhID0gKEFQSUluZm8pYWkubmV4dCgpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgciA9IChBUElJbmZvKXJpLm5leHQoKTsKKworICAgICAgICAgICAgU3RyaW5nIGFtID0gYS5nZXRDbGFzc05hbWUoKSArICIuIiArIGEuZ2V0TmFtZSgpOworICAgICAgICAgICAgU3RyaW5nIHJtID0gci5nZXRDbGFzc05hbWUoKSArICIuIiArIHIuZ2V0TmFtZSgpOworICAgICAgICAgICAgaW50IGNvbXAgPSBhbS5jb21wYXJlVG8ocm0pOworICAgICAgICAgICAgaWYgKGNvbXAgPT0gMCAmJiBhLmlzTWV0aG9kKCkgJiYgci5pc01ldGhvZCgpKSB7IC8vIGNvbGxlY3Qgb3ZlcmxvYWRzCisgICAgICAgICAgICAgICAgYW1zLmFkZChhKTsgYSA9IG51bGw7CisgICAgICAgICAgICAgICAgcm1zLmFkZChyKTsgciA9IG51bGw7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghYW1zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIHNpbXBsZXN0IGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICBpZiAoYW1zLnNpemUoKSA9PSAxICYmIHJtcy5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkLmFkZChuZXcgRGVsdGFJbmZvKChBUElJbmZvKWFtcy5nZXQoMCksIChBUElJbmZvKXJtcy5nZXQoMCkpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBkYW5nLCB3aGF0IHRvIGRvIG5vdz8KKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogbW9kaWZ5IGRlbHRhaW5mbyB0byBkZWFsIHdpdGggbGlzdHMgb2YgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYW1zLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcm1zLmNsZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjLmNvbXBhcmUoYSwgcik7CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgciA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNoYW5nZWQuYWRkKG5ldyBEZWx0YUluZm8oYSwgcikpOworICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgICAgIHIgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbm93IGNsZWFuIHVwIGFkZGVkIGFuZCByZW1vdmVkIGJ5IGNsZWFuaW5nIG91dCB0aGUgY2hhbmdlZCBtZW1iZXJzCisgICAgICAgIEl0ZXJhdG9yIGNpID0gY2hhbmdlZC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoY2kuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBEZWx0YUluZm8gZGkgPSAoRGVsdGFJbmZvKWNpLm5leHQoKTsKKyAgICAgICAgICAgIGFkZGVkLnJlbW92ZShkaS5hZGRlZCk7CisgICAgICAgICAgICByZW1vdmVkLnJlbW92ZShkaS5yZW1vdmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIFNldCB0ZW1wQWRkZWQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICB0ZW1wQWRkZWQuYWRkQWxsKG5ld0RhdGEuc2V0KTsKKyAgICAgICAgdGVtcEFkZGVkLnJlbW92ZUFsbChyZW1vdmVkKTsKKyAgICAgICAgVHJlZVNldCBjaGFuZ2VkQWRkZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBjaGFuZ2VkQWRkZWQuYWRkQWxsKHRlbXBBZGRlZCk7CisKKyAgICAgICAgU2V0IHRlbXBSZW1vdmVkID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgdGVtcFJlbW92ZWQuYWRkQWxsKG9sZERhdGEuc2V0KTsKKyAgICAgICAgdGVtcFJlbW92ZWQucmVtb3ZlQWxsKGFkZGVkKTsKKyAgICAgICAgVHJlZVNldCBjaGFuZ2VkUmVtb3ZlZCA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgIGNoYW5nZWRSZW1vdmVkLmFkZEFsbCh0ZW1wUmVtb3ZlZCk7CisKKyAgICAgICAgcHJvbW90ZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBvYnNvbGV0ZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBhaSA9IGNoYW5nZWRBZGRlZC5pdGVyYXRvcigpOworICAgICAgICByaSA9IGNoYW5nZWRSZW1vdmVkLml0ZXJhdG9yKCk7CisgICAgICAgIGEgPSByID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKChhICE9IG51bGwgfHwgYWkuaGFzTmV4dCgpKSAmJiAociAhPSBudWxsIHx8IHJpLmhhc05leHQoKSkpIHsKKyAgICAgICAgICAgIGlmIChhID09IG51bGwpIGEgPSAoQVBJSW5mbylhaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAociA9PSBudWxsKSByID0gKEFQSUluZm8pcmkubmV4dCgpOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGMuY29tcGFyZShhLCByKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICAgICAgICAgYSA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA+IDApIHsKKyAgICAgICAgICAgICAgICByID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGNoYW5nZSA9IHN0YXR1c0NoYW5nZShhLCByKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhbmdlID4gMCkgeworICAgICAgICAgICAgICAgICAgICBwcm9tb3RlZC5hZGQoYSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG9ic29sZXRlZC5hZGQoYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgICAgIHIgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYWRkZWQgPSBzdHJpcEFuZFJlc29ydChhZGRlZCk7CisgICAgICAgIHJlbW92ZWQgPSBzdHJpcEFuZFJlc29ydChyZW1vdmVkKTsKKyAgICAgICAgcHJvbW90ZWQgPSBzdHJpcEFuZFJlc29ydChwcm9tb3RlZCk7CisgICAgICAgIG9ic29sZXRlZCA9IHN0cmlwQW5kUmVzb3J0KG9ic29sZXRlZCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgc3RhdHVzQ2hhbmdlKEFQSUluZm8gbGhzLCBBUElJbmZvIHJocykgeyAvLyBuZXcuIG9sZAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFQSUluZm8uTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChsaHMuZ2V0KGksIHRydWUpLmVxdWFscyhyaHMuZ2V0KGksIHRydWUpKSA9PSAoaSA9PSBBUElJbmZvLlNUQSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgbHN0YXR1cyA9IGxocy5nZXRWYWwoQVBJSW5mby5TVEEpOworICAgICAgICBpZiAobHN0YXR1cyA9PSBBUElJbmZvLlNUQV9PQlNPTEVURSB8fCBsc3RhdHVzID09IEFQSUluZm8uU1RBX0RFUFJFQ0FURUQgfHwgbHN0YXR1cyA9PSBBUElJbmZvLlNUQV9JTlRFUk5BTCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiB3cml0ZVJlcG9ydChTdHJpbmcgb3V0RmlsZSwgYm9vbGVhbiBodG1sLCBib29sZWFuIGludGVybmFsKSB7CisgICAgICAgIE91dHB1dFN0cmVhbSBvcyA9IFN5c3RlbS5vdXQ7CisgICAgICAgIGlmIChvdXRGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcHcgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3MsICJVVEYtOCIpKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOyAvLyBVVEYtOCBzaG91bGQgYWx3YXlzIGJlIHN1cHBvcnRlZAorICAgICAgICB9CisKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eSIpOworICAgICAgICBTdHJpbmcgeWVhciA9IGZtdC5mb3JtYXQobmV3IERhdGUoKSk7CisgICAgICAgIFN0cmluZyB0aXRsZSA9ICJJQ1U0SiBBUEkgQ29tcGFyaXNvbjogIiArIG9sZERhdGEubmFtZSArICIgd2l0aCAiICsgbmV3RGF0YS5uYW1lOworICAgICAgICBTdHJpbmcgaW5mbyA9ICJDb250ZW50cyBnZW5lcmF0ZWQgYnkgUmVwb3J0QVBJIHRvb2wgb24gIiArIG5ldyBEYXRlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKEMpICIgKyB5ZWFyICsgIiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGh0bWw+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aGVhZD4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8dGl0bGU+IiArIHRpdGxlICsgIjwvdGl0bGU+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8IS0tIENvcHlyaWdodCAiICsgeWVhciArICIsIElCTSwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gLS0+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8L2hlYWQ+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8Ym9keT4iKTsKKworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgxPiIgKyB0aXRsZSArICI8L2gxPiIpOworCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPlJlbW92ZWQgZnJvbSAiICsgb2xkRGF0YS5uYW1lICsiPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMocmVtb3ZlZCwgcHcsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+KG5vIEFQSSByZW1vdmVkKTwvcD4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGhyLz4iKTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5XaXRoZHJhd24sIERlcHJlY2F0ZWQsIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5EZXByZWNhdGVkIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2Jzb2xldGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMob2Jzb2xldGVkLCBwdywgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIG9ic29sZXRlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+Q2hhbmdlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiAob2xkLCBuZXcpPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMoY2hhbmdlZCwgcHcsIHRydWUsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIGNoYW5nZWQpPC9wPiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPlByb21vdGVkIHRvIHN0YWJsZSBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICBpZiAocHJvbW90ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhwcm9tb3RlZCwgcHcsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+KG5vIEFQSSBwcm9tb3RlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+QWRkZWQgaW4gIiArIG5ld0RhdGEubmFtZSArICI8L2gyPiIpOworICAgICAgICAgICAgaWYgKGFkZGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMoYWRkZWQsIHB3LCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxwPihubyBBUEkgYWRkZWQpPC9wPiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+PGk+PGZvbnQgc2l6ZT1cIi0xXCI+IiArIGluZm8gKyAiPGJyLz4iICsgY29weXJpZ2h0ICsgIjwvZm9udD48L2k+PC9wPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPC9ib2R5PiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPC9odG1sPiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHcucHJpbnRsbih0aXRsZSk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBSZW1vdmVkIGZyb20gIiArIG9sZERhdGEubmFtZSArICIgPT09Iik7CisgICAgICAgICAgICBpZiAocmVtb3ZlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHJlbW92ZWQsIHB3LCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIobm8gQVBJIHJlbW92ZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBXaXRoZHJhd24sIERlcHJlY2F0ZWQsIG9yIE9ic29sZXRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IERlcHJlY2F0ZWQgb3IgT2Jzb2xldGVkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiID09PSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9ic29sZXRlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKG9ic29sZXRlZCwgcHcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgb2Jzb2xldGVkKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI9PT0gQ2hhbmdlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiAob2xkLCBuZXcpID09PSIpOworICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhjaGFuZ2VkLCBwdywgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIobm8gQVBJIGNoYW5nZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBQcm9tb3RlZCB0byBzdGFibGUgaW4gIiArIG5ld0RhdGEubmFtZSArICIgPT09Iik7CisgICAgICAgICAgICBpZiAocHJvbW90ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhwcm9tb3RlZCwgcHcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgcHJvbW90ZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBBZGRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIGlmIChhZGRlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKGFkZGVkLCBwdywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiKG5vIEFQSSBhZGRlZCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgcHcucHJpbnRsbihpbmZvKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oY29weXJpZ2h0KTsKKyAgICAgICAgfQorICAgICAgICBwdy5jbG9zZSgpOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHByaW50UmVzdWx0cyhDb2xsZWN0aW9uIGMsIFByaW50V3JpdGVyIHB3LCBib29sZWFuIGh0bWwsIGJvb2xlYW4gaXNDaGFuZ2VkQVBJcykgeworICAgICAgICBJdGVyYXRvciBpdGVyID0gYy5pdGVyYXRvcigpOworICAgICAgICBTdHJpbmcgcGFjayA9IG51bGw7CisgICAgICAgIFN0cmluZyBjbGFzID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gaW5mby5nZXRQYWNrYWdlTmFtZSgpOworICAgICAgICAgICAgaWYgKCFwYWNrYWdlTmFtZS5lcXVhbHMocGFjaykpIHsKKyAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L3VsPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8aDM+UGFja2FnZSAiICsgcGFja2FnZU5hbWUgKyAiPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnQoIjx1bD4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAocGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJQYWNrYWdlICIgKyBwYWNrYWdlTmFtZSArICI6Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKworICAgICAgICAgICAgICAgIHBhY2sgPSBwYWNrYWdlTmFtZTsKKyAgICAgICAgICAgICAgICBjbGFzID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFpbmZvLmlzQ2xhc3MoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBpbmZvLmdldENsYXNzTmFtZSgpOworICAgICAgICAgICAgICAgIGlmICghY2xhc3NOYW1lLmVxdWFscyhjbGFzKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2xhcyA9IGNsYXNzTmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIjxsaT4iKTsKKyAgICAgICAgICAgICAgICBpbmZvLnByaW50KHB3LCBpc0NoYW5nZWRBUElzLCBodG1sKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L2xpPiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbmZvLnByaW50bG4ocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L3VsPiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFRyZWVTZXQgc3RyaXBBbmRSZXNvcnQoVHJlZVNldCB0KSB7CisgICAgICAgIHN0cmlwQ2xhc3NJbmZvKHQpOworICAgICAgICBUcmVlU2V0IHIgPSBuZXcgVHJlZVNldChBUElJbmZvLmNsYXNzRmlyc3RDb21wYXJhdG9yKCkpOworICAgICAgICByLmFkZEFsbCh0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzdHJpcENsYXNzSW5mbyhDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgLy8gYyBpcyBzb3J0ZWQgd2l0aCBjbGFzcyBpbmZvIGZpcnN0CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBjbmFtZSA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgQVBJSW5mbyBpbmZvID0gKEFQSUluZm8paXRlci5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gaW5mby5nZXRDbGFzc05hbWUoKTsKKyAgICAgICAgICAgIGlmIChjbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNuYW1lLmVxdWFscyhjbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjbmFtZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5mby5pc0NsYXNzKCkpIHsKKyAgICAgICAgICAgICAgICBjbmFtZSA9IGluZm8uZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvU3dhdERlcHJlY2F0ZWQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1N3YXREZXByZWNhdGVkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZlYmU2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1N3YXREZXByZWNhdGVkLmphdmEKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK3B1YmxpYyBjbGFzcyBTd2F0RGVwcmVjYXRlZCB7CisgICAgcHJpdmF0ZSBGaWxlIHNyY0ZpbGU7CisgICAgcHJpdmF0ZSBGaWxlIGRzdEZpbGU7CisgICAgcHJpdmF0ZSBpbnQgbWF4TGVuZ3RoID0gODU7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3JjUHJlZml4OworICAgIHByaXZhdGUgU3RyaW5nIGRzdFByZWZpeDsKKyAgICBwcml2YXRlIFN0cmluZyBzcmNUYWc7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHJnVGFnOworICAgIHByaXZhdGUgYm9vbGVhbiBvdmVyd3JpdGU7CisgICAgcHJpdmF0ZSBpbnQgdmVyYm9zaXR5OworICAgIHByaXZhdGUgaW50IGNjOyAvLyBjaGFuZ2VkIGZpbGUgY291bnQKKyAgICBwcml2YXRlIGJvb2xlYW4gaW5QbGFjZTsKKyAgICBwcml2YXRlIFN0cmluZyBjb3B5WWVhcjsKKworICAgIHByaXZhdGUgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBGaWxlbmFtZUZpbHRlciBmZiA9IG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGRpciwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG5ldyBGaWxlKGRpciwgbmFtZSkuaXNEaXJlY3RvcnkoKSAmJiAhIkNWUyIuZXF1YWxzKG5hbWUpKSB8fAorICAgICAgICAgICAgICAgICAgICAoIW5hbWUuZXF1YWxzKCJTd2F0RGVwcmVjYXRlZC5qYXZhIikgJiYgbmFtZS5lbmRzV2l0aCgiLmphdmEiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN0cmluZyBzcmMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIik7CisgICAgICAgIFN0cmluZyBkc3QgPSBzcmM7CisgICAgICAgIGJvb2xlYW4gZGVwID0gdHJ1ZTsKKyAgICAgICAgYm9vbGVhbiBvdnIgPSBmYWxzZTsKKyAgICAgICAgaW50IHZyYiA9IDE7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1zcmMiKSkgeworICAgICAgICAgICAgICAgICAgICBzcmMgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kc3QiKSkgeworICAgICAgICAgICAgICAgICAgICBkc3QgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kZXAiKSkgeworICAgICAgICAgICAgICAgICAgICBkZXAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLXByb3YiKSkgeworICAgICAgICAgICAgICAgICAgICBkZXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLW92ZXJ3cml0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIG92ciA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1zaWxlbnQiKSkgeyAvLyBubyBvdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgdnJiID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLXF1aWV0IikpIHsgLy8gb3V0cHV0IHBhcmFtZXRlcnMgYW5kIGNvdW50IG9mIGNoYW5nZWQgZmlsZXMgKGRlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDE7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItdmVyYm9zZSIpKSB7IC8vIG91dHB1dCBuYW1lcyBvZiBtb2RpZmllZCBmaWxlcworICAgICAgICAgICAgICAgICAgICB2cmIgPSAyOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLW5vaXN5IikpIHsgLy8gb3V0cHV0IG5hbWVzIG9mIGZpbGVzIG5vdCBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgICB2cmIgPSAzOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLWNvcHlkZWJ1ZyIpKSB7IC8vIG91dHB1dCBjb3B5cmlnaHQgZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kZWJ1ZyIpKSB7IC8vIG91dHB1dCBhbGwgZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbmV3IFN3YXREZXByZWNhdGVkKHNyYywgZHN0LCBkZXAsIG92ciwgdnJiKS5ydW4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3dhdERlcHJlY2F0ZWQoU3RyaW5nIHNyYywgU3RyaW5nIGRzdCwgYm9vbGVhbiBkZXAsIGJvb2xlYW4gb3ZlcndyaXRlLCBpbnQgdmVyYm9zaXR5KSB7CisgICAgICAgIHRoaXMuc3JjRmlsZSA9IG5ldyBGaWxlKHNyYyk7CisgICAgICAgIHRoaXMuZHN0RmlsZSA9IG5ldyBGaWxlKGRzdCk7CisgICAgICAgIHRoaXMub3ZlcndyaXRlID0gb3ZlcndyaXRlOworICAgICAgICB0aGlzLnZlcmJvc2l0eSA9IHZlcmJvc2l0eTsKKyAgICAgICAgdGhpcy5jb3B5WWVhciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5IikuZm9ybWF0KG5ldyBEYXRlKCkpOworCisgICAgICAgIHRoaXMuc3JjVGFnID0gIkBkZXByZWNhdGVkIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4iOworICAgICAgICB0aGlzLnRyZ1RhZyA9ICJAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iOworICAgICAgICBpZiAoIWRlcCkgeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzcmNUYWc7CisgICAgICAgICAgICBzcmNUYWcgPSB0cmdUYWc7CisgICAgICAgICAgICB0cmdUYWcgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0aGlzLnNyY1ByZWZpeCA9IHNyY0ZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICAgICAgdGhpcy5kc3RQcmVmaXggPSBkc3RGaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5pblBsYWNlID0gc3JjUHJlZml4LmVxdWFscyhkc3RQcmVmaXgpOworICAgICAgICB0aGlzLmNjID0gMDsKKworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oInJlcGxhY2luZyAnIiArIHNyY1RhZyArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgICAgIHdpdGggJyIgKyB0cmdUYWcgKyAiJyIpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiICAgICBzb3VyY2U6ICciICsgc3JjUHJlZml4ICsgIiciKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImRlc3RpbmF0aW9uOiAnIiArIGRzdFByZWZpeCArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIG92ZXJ3cml0ZTogIiArIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIHZlcmJvc2l0eTogIiArIHZlcmJvc2l0eSk7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICBpZiAoIXNyY0ZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJmaWxlICIgKyBzcmNGaWxlLmdldFBhdGgoKSArICIgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0KKyAgICAgICAgZG9MaXN0KHNyY0ZpbGUpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImNoYW5nZWQgIiArIGNjICsgIiBmaWxlKHMpIik7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG9MaXN0KEZpbGUgZmlsZSkgeworICAgICAgICBTdHJpbmdbXSBmaWxlbmFtZXMgPSBmaWxlLmxpc3QoZmYpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oZmlsZS5nZXRQYXRoKCkpOworICAgICAgICAgICAgZHVtcExpc3QoZmlsZW5hbWVzKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGZpbGUsIGZpbGVuYW1lc1tpXSk7CisgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgZG9MaXN0KGYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRmlsZShmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NGaWxlKEZpbGUgaW5GaWxlKSB7CisgICAgICAgIEZpbGUgYmFrRmlsZSA9IG51bGw7CisgICAgICAgIEZpbGUgb2xkRmlsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgaW5QYXRoID0gaW5GaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInByb2Nlc3NGaWxlOiAiICsgaW5QYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG91dFBhdGggPSBkc3RQcmVmaXggKyBpblBhdGguc3Vic3RyaW5nKHNyY1ByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZShvdXRQYXRoKTsKKworICAgICAgICAgICAgRmlsZSB0bXBGaWxlID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChvdXRGaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm5vIHBlcm1pc3Npb24gdG8gb3ZlcndyaXRlIGZpbGU6ICIgKyBvdXRQYXRoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiYWtGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICAgICAgdG1wRmlsZSA9IEZpbGUuY3JlYXRlVGVtcEZpbGUoaW5GaWxlLmdldE5hbWUoKSwgbnVsbCwgaW5GaWxlLmdldFBhcmVudEZpbGUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0bXBGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICBGaWxlIHBhcmVudCA9IHRtcEZpbGUuZ2V0UGFyZW50RmlsZSgpOworICAgICAgICAgICAgICAgIHBhcmVudC5ta2RpcnMoKTsKKyAgICAgICAgICAgICAgICB0bXBGaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHRtcFBhdGggPSB0bXBGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInRtcEZpbGU6ICIgKyB0bXBQYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGluRmlsZSk7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbSh0bXBGaWxlKTsKKworICAgICAgICAgICAgUHJpbnRTdHJlYW0gcHMgPSBuZXcgUHJpbnRTdHJlYW0ob3MpOworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKSk7CisKKyAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgaW50IHRjID0gMDsKKyAgICAgICAgICAgIGJvb2xlYW4gZGVidWcgPSBmYWxzZTsKKyAgICAgICAgICAgIHdoaWxlIChudWxsICE9IChsaW5lID0gYnIucmVhZExpbmUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBpbnQgdGVtcCA9IGxpbmUuaW5kZXhPZigiQGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgICAgICAgICBpbnQgaXggPSBsaW5lLmluZGV4T2Yoc3JjVGFnKTsKKy8vICAgICAgICAgICAgICAgICBpZiAodGVtcCAhPSAtMSAmJiBpeCA9PSAtMSkgeworLy8gICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcgPT0gZmFsc2UpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnID0gdHJ1ZTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oImZpbGU6ICIgKyBuYW1lKTsKKy8vICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJbIiArIG4gKyAiXSAiICsgbGluZSk7CisvLyAgICAgICAgICAgICAgICAgICAgIHB3LmZsdXNoKCk7CisvLyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIlsiICsgbiArICJdICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLGl4KSArIHRyZ1RhZzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICsrdGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuIDwgMjApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3dhdCBjb3B5cmlnaHRzIGluIHRoZSBmaXJzdCAyMCBsaW5lcyB3aGlsZSB3ZSdyZSBhdCBpdAorICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigib3B5cmlnaHQiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPT0gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJbIiArIG4gKyAiXSAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCItMjAwIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgaXgpICsgIi0iICsgY29weVllYXIgKyBsaW5lLnN1YnN0cmluZyhpeCs1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCItIDIwMCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGl4KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiLTE5OSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGl4KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZihjb3B5WWVhcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBub3RoaW5nIG5lZWRzIGNoYW5naW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCIyMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCs0KSArICItIiArIGNvcHlZZWFyICsgbGluZS5zdWJzdHJpbmcoaXgrNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiMTk5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgaXgrNCkgKyAiLSIgKyBjb3B5WWVhciArIGxpbmUuc3Vic3RyaW5nKGl4KzQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChmYWxzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChubGluZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA+PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgLS0+ICIgKyBubGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBubGluZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcy5wcmludGxuKGxpbmUpOworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBzLmZsdXNoKCk7CisgICAgICAgICAgICBpcy5jbG9zZSgpOworICAgICAgICAgICAgb3MuY2xvc2UoKTsKKworICAgICAgICAgICAgaWYgKHRjID09IDApIHsgLy8gbm90aGluZyBjaGFuZ2VkLCBmb3JnZXQgdGhpcyBmaWxlCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA+PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIm5vIGNoYW5nZXMgaW4gZmlsZTogIiArIGluUGF0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghdG1wRmlsZS5kZWxldGUoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidW5hYmxlIHRvIGRlbGV0ZSB1bm5lZWRlZCB0ZW1wb3JhcnkgZmlsZTogIiArIHRtcFBhdGgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJha0ZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChiYWtGaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGJha0ZpbGUuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghdG1wRmlsZS5yZW5hbWVUbyhiYWtGaWxlKSkgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJ3YXJuaW5nOiBjb3VsZG4ndCByZW5hbWUgdGVtcCBmaWxlIHRvOiAiICsgb3V0UGF0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRGaWxlLnNldExhc3RNb2RpZmllZChpbkZpbGUubGFzdE1vZGlmaWVkKCkpOworCisgICAgICAgICAgICBpZiAodmVyYm9zaXR5ID49IDIpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKGluUGF0aCk7CisgICAgICAgICAgICAgICAgcHcuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgcHcuZmx1c2goKTsKKyAgICAgICAgfQorCisgICAgICAgICsrY2M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHVtcExpc3QoU3RyaW5nW10gbmFtZXMpIHsKKyAgICAgICAgaWYgKG5hbWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHB3LnByaW50KCJudWxsIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdy5wcmludCgieyIpOworICAgICAgICAgICAgaW50IGxjID0gMDsKKyAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICAgICAgbGMgPSA0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICAgICAgaW50IG5sID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobGMgKyBubCA+IG1heExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50KCIgICAgIik7CisgICAgICAgICAgICAgICAgICAgIGxjID0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHcucHJpbnQobmFtZSk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIiwgIik7CisgICAgICAgICAgICAgICAgbGMgKz0gbmwgKyAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdy5wcmludCgifSAiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMjguYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGoyOC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk1ZjUyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMjguYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojc3MmExZTUxOTViYmRjZDJhYzVmZGY3MTUzYWY3MWNhMGE5ZGQ5MzQxMThiZmJkYjE3YTQzODhjNGUzYWY2ZGEKK3NpemUgMTk1NjYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozMC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk5ZGIxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmQ3OWZjYWMxN2UzMjVhMDE5YTUyZmZkZmI4ZTFmZGQ4ZWNhNDA3OWZhZjA1MTQ5YTg3MTA3NTFkNzc5MzRhNzMKK3NpemUgMjA2NzIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozMi5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA5OWMwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjUzNWUwNWY2NjI0ZjM3MmZkMjQxYjFmMmU1ZDRmZWI5MGNjZmY1ZmRhZjczMmViMGRmNTJhY2FjOWY1ZDFmMjkKK3NpemUgMjE0MTYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQuYXBpLmd6IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNC5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVjMjdkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmY4MDc4NDNhYzVmYjhiMzJhOWI3ZjEzYTg5Nzc5ZDNhYTcxMjUyMWE5YzM1ZDIzYzIzNTJiYzc4MzVlZTkwNTAKK3NpemUgMjMxMDMKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDcyNjE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDEuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjA0NGYyNDg4M2Y1NTM2MWJmNGQ3OGU2MzE5MWYxNjAwZDY0NDUzYjc0MDVmOTM5NzhmYmU2M2E1NzIyZmUxYjMKK3NpemUgMjMxMDYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQyLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQyLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2M5NzQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDIuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmY3NmY1MTRmZDEzNDRhNDIxNmIyNDAzNDVkYmYxZTkzNjI1ZTdhM2M5ZjQwYzllNzU5Mzk5NTRjMTk1MjY0NjIKK3NpemUgMjMxMzQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGRhZDhmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDMuYXBpLmd6CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjNhZjYwYTU1YjljZGM5NDM5NTI4MzJmN2ExNDJlYWVhYzIxYzUxZDRiMTZmYjJjZjk3NzI0NDU1MzI0OGZkMDgKK3NpemUgMjMxMzIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvSU1FVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9JTUVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYxMjM1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvSU1FVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWU7CisKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YXguc3dpbmcuQm94OworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEZpZWxkOworaW1wb3J0IGphdmF4LnN3aW5nLldpbmRvd0NvbnN0YW50czsKKworcHVibGljIGNsYXNzIElNRVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBTdHJpbmcgc2FtcGxlVGV4dCA9ICJUaGlzIGlzIGEgc2FtcGxlXG50byBwdXQgaW50byB0aGUgZmllbGQuIjsKKyAgICBSZWN0YW5nbGUgbG9jID0gbmV3IFJlY3RhbmdsZSgxMDAsIDEwMCwgMzAwLCAzMDApOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgKytpKSB7CisgICAgICAgIEpGcmFtZSBqZiA9IG5ldyBKRnJhbWUoIlRlc3QgV2luZG93ICIgKyBpKTsKKyAgICAgICAgamYuc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKFdpbmRvd0NvbnN0YW50cy5ESVNQT1NFX09OX0NMT1NFKTsKKyAgICAgICAgQm94IGJveCA9IEJveC5jcmVhdGVWZXJ0aWNhbEJveCgpOworICAgICAgICBib3guYWRkKG5ldyBKVGV4dEZpZWxkKHNhbXBsZVRleHQpKTsKKyAgICAgICAgYm94LmFkZChuZXcgSlRleHRGaWVsZChzYW1wbGVUZXh0KSk7CisgICAgICAgIGpmLmdldENvbnRlbnRQYW5lKCkuYWRkKGJveCk7CisgICAgICAgIGpmLnNldEJvdW5kcyhsb2MpOworICAgICAgICAKKyAgICAgICAgamYuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGxvYy54ICs9IDUwOworICAgICAgICBsb2MueSArPSA1MDsKKyAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0JlbmdhbGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWJhYTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwyMTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEJlbmdhbGlJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBCRU5HQUxJID0gbmV3IExvY2FsZSgiYm4iLCAiSU4iKTsKKworICAgIHB1YmxpYyBCZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEJFTkdBTEksICJCZW5nYWxpIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBrZXlib2FyZE1hcDsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSBzdWJzdGl0dXRpb25UYWJsZTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gam9pbldpdGhOdWt0YTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gbnVrdGFGb3JtOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSAgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1RkZGRicsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTA5QTAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkYwMScsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGMDInLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRjA0JywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MDk5RicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkYwNScsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTA5OEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwOURGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MDlFNicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTA5RTcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwOUU4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MDlFOScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTA5RUEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwOUVCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MDlFQycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTA5RUQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwOUVFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MDlFRicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTA5OUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwOTlBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MDlCNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTA5QzMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHUwOTY0JywgICAvLyAnPicgIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwOUFGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTA5OTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHVGRkZGJywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MDlBMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTA5ODUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwOTg2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MDk4NycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTA5ODknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwOUFCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MDk5OCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdUZGRkYnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwOTk2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MDlBNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTA5QjYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHVGRkZGJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MDlBNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTA5OUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwOTk0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MDk4OCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTA5OEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwOThBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MDk5OScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwOTkwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MDk4MScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTA5QUQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHVGRkZGJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MDlBMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwOUJDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTA5ODMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHVGRkZGJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MDlDQicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTA5QUMnLCAgIC8vICdiJyAodGhpcyBpcyBhIEJBIGluc3RlYWQgb2YgYSBWQSkKKyAgICAgICAgLyogNjMgKi8gJ1x1MDlBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTA5Q0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwOUJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MDlCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTA5QzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwOUFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MDk5NycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTA5QjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwOTk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MDlBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTA5QjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwOUIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MDlBNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTA5OUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwOUNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MDlDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTA5QzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwOUMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MDlCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTA5QTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwOUM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MDk4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTA5QUMnLCAgIC8vICd5JyAodGhpcyBpcyBhbHNvIGEgQkEuLi4pCisgICAgICAgIC8qIDdBICovICdcdUZGRkYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwOUEyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1RkZGRicsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTA5OUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHVGRkZGJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisKKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwOUNEJywgJ1x1MDlCMCd9OworICAgICAgICBjaGFyW10gUkFfU1VQID0geydcdTA5QjAnLCAnXHUwOUNEJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwOTlDJywgJ1x1MDlDRCcsICdcdTA5OUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MDlBNCcsICdcdTA5Q0QnLCAnXHUwOUIwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwOTk1JywgJ1x1MDlDRCcsICdcdTA5QjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTA5QjYnLCAnXHUwOUNEJywgJ1x1MDlCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBSQV9TVVAsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBMRVRURVJfSSAgICAgICAgICAgICAgPSAnXHUwOTg3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSUkgICAgICAgICAgICAgPSAnXHUwOTg4JzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SICAgICAgPSAnXHUwOThCJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwOUExJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERIQSAgICAgICAgICAgPSAnXHUwOUEyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0kgICAgICAgICAgPSAnXHUwOUJGJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0lJICAgICAgICAgPSAnXHUwOUMwJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiAgPSAnXHUwOUMzJzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MICAgICAgPSAnXHUwOThDJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MTCAgICAgPSAnXHUwOUUxJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SUiAgICAgPSAnXHUwOUUwJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERESEEgICAgICAgICAgPSAnXHUwOURDJzsKKyAgICAgICAgY2hhciBMRVRURVJfUkhBICAgICAgICAgICAgPSAnXHUwOUREJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCAgPSAnXHUwOUUyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwgPSAnXHUwOUUzJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUlIgPSAnXHUwOUM0JzsKKworICAgICAgICBqb2luV2l0aE51a3RhID0gbmV3IGNoYXJbXSB7CisgICAgICAgIExFVFRFUl9JLAorICAgICAgICBMRVRURVJfSUksCisgICAgICAgIExFVFRFUl9WT0NBTElDX1IsCisgICAgICAgIExFVFRFUl9EREEsCisgICAgICAgIExFVFRFUl9EREhBLAorICAgICAgICBWT1dFTF9TSUdOX0ksCisgICAgICAgIFZPV0VMX1NJR05fSUksCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19SCisgICAgICAgIH07CisgICAgCisgICAgICAgIG51a3RhRm9ybSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfVk9DQUxJQ19MLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MTCwKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUlIsCisgICAgICAgIExFVFRFUl9ERERIQSwKKyAgICAgICAgTEVUVEVSX1JIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0wsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MTCwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX1JSCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0RldmFuYWdhcmlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzUxZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIERldmFuYWdhcmlJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBERVZBTkFHQVJJID0gbmV3IExvY2FsZSgiaGkiLCAiSU4iKTsKKworICAgIHB1YmxpYyBEZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKERFVkFOQUdBUkksICJEZXZhbmFnYXJpIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBqb2luV2l0aE51a3RhOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBudWt0YUZvcm07CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpICB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHUwOTBEJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MDkyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRjAxJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDQnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwOTFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA1JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MDkwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTA5MkYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwOTY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MDk2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTA5NjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwOTY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MDk2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTA5NkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwOTZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MDk2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTA5NkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwOTZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MDkxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTA5MUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwOTM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MDk0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JworICAgICAgICAvKiAzRiAqLyAnXHUwOTVGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1MDk0NScsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTA5MTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwOTM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MDkyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTA5MDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwOTA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MDkwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTA5MDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwOTJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MDkxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTA5MzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwOTE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MDkyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTA5MzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwOTMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MDkyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTA5MUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwOTE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MDkwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTA5MEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwOTBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MDkxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdTA5MjknLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwOTEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MDkwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTA5MkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwOTBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MDkyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdTA5NDknLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwOTNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTA5MDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwOTRBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MDk0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTA5MzUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwOTJFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MDk0RCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTA5M0UnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwOTNGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MDk0MScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTA5MkEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwOTE3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MDkzMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTA5MTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwOTI0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MDkzOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTA5MzInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwOTI2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MDkxQycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTA5NEMnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwOTQwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MDk0NycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTA5NDInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwOTM5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MDkyOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTA5NDgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwOTAyJywgICAvLyAneCcKKyAgICAgICAgLyogNzkgKi8gJ1x1MDkyQycsICAgLy8gJ3knCisgICAgICAgIC8qIDdBICovICdcdTA5NDYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwOTIyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1MDkxMScsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTA5MUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHUwOTEyJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXIgc3Vic3RpdHV0aW9ucyBmb3IgdGhlIG1ldGEgY2hhcmFjdGVycy4KKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwOTREJywgJ1x1MDkzMCd9OworICAgICAgICBjaGFyW10gUkFfU1VQID0geydcdTA5MzAnLCAnXHUwOTREJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwOTFDJywgJ1x1MDk0RCcsICdcdTA5MUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MDkyNCcsICdcdTA5NEQnLCAnXHUwOTMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwOTE1JywgJ1x1MDk0RCcsICdcdTA5MzcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTA5MzYnLCAnXHUwOTREJywgJ1x1MDkzMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBSQV9TVVAsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBTSUdOX0NBTkRSQUJJTkRVICAgICAgPSAnXHUwOTAxJzsKKyAgICAgICAgY2hhciBMRVRURVJfSSAgICAgICAgICAgICAgPSAnXHUwOTA3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSUkgICAgICAgICAgICAgPSAnXHUwOTA4JzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SICAgICAgPSAnXHUwOTBCJzsKKyAgICAgICAgY2hhciBMRVRURVJfS0EgICAgICAgICAgICAgPSAnXHUwOTE1JzsKKyAgICAgICAgY2hhciBMRVRURVJfS0hBICAgICAgICAgICAgPSAnXHUwOTE2JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0EgICAgICAgICAgICAgPSAnXHUwOTE3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSkEgICAgICAgICAgICAgPSAnXHUwOTFDJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwOTIxJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERIQSAgICAgICAgICAgPSAnXHUwOTIyJzsKKyAgICAgICAgY2hhciBMRVRURVJfUEhBICAgICAgICAgICAgPSAnXHUwOTJCJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0kgICAgICAgICAgPSAnXHUwOTNGJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX0lJICAgICAgICAgPSAnXHUwOTQwJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiAgPSAnXHUwOTQzJzsKKyAgICAgICAgY2hhciBEQU5EQSAgICAgICAgICAgICAgICAgPSAnXHUwOTY0JzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgY2hhciBTSUdOX09NICAgICAgICAgICAgICAgPSAnXHUwOTUwJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MICAgICAgPSAnXHUwOTBDJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19MTCAgICAgPSAnXHUwOTYxJzsKKyAgICAgICAgY2hhciBMRVRURVJfVk9DQUxJQ19SUiAgICAgPSAnXHUwOTYwJzsKKyAgICAgICAgY2hhciBMRVRURVJfUUEgICAgICAgICAgICAgPSAnXHUwOTU4JzsKKyAgICAgICAgY2hhciBMRVRURVJfS0hIQSAgICAgICAgICAgPSAnXHUwOTU5JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0hIQSAgICAgICAgICAgPSAnXHUwOTVBJzsKKyAgICAgICAgY2hhciBMRVRURVJfWkEgICAgICAgICAgICAgPSAnXHUwOTVCJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERESEEgICAgICAgICAgPSAnXHUwOTVDJzsKKyAgICAgICAgY2hhciBMRVRURVJfUkhBICAgICAgICAgICAgPSAnXHUwOTVEJzsKKyAgICAgICAgY2hhciBMRVRURVJfRkEgICAgICAgICAgICAgPSAnXHUwOTVFJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCAgPSAnXHUwOTYyJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwgPSAnXHUwOTYzJzsKKyAgICAgICAgY2hhciBWT1dFTF9TSUdOX1ZPQ0FMSUNfUlIgPSAnXHUwOTQ0JzsKKyAgICAgICAgY2hhciBTSUdOX0FWQUdSQUhBICAgICAgICAgPSAnXHUwOTNEJzsKKworICAgICAgICBqb2luV2l0aE51a3RhID0gbmV3IGNoYXJbXSB7CisgICAgICAgIFNJR05fQ0FORFJBQklORFUsCisgICAgICAgIExFVFRFUl9JLAorICAgICAgICBMRVRURVJfSUksCisgICAgICAgIExFVFRFUl9WT0NBTElDX1IgLAorICAgICAgICBMRVRURVJfS0EsCisgICAgICAgIExFVFRFUl9LSEEsCisgICAgICAgIExFVFRFUl9HQSwKKyAgICAgICAgTEVUVEVSX0pBLAorICAgICAgICBMRVRURVJfRERBLAorICAgICAgICBMRVRURVJfRERIQSwKKyAgICAgICAgTEVUVEVSX1BIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9JLAorICAgICAgICBWT1dFTF9TSUdOX0lJLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfUiwKKyAgICAgICAgREFOREEKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgbnVrdGFGb3JtID0gbmV3IGNoYXJbXSB7CisgICAgICAgIFNJR05fT00sCisgICAgICAgIExFVFRFUl9WT0NBTElDX0wsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0xMLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19SUiwKKyAgICAgICAgTEVUVEVSX1FBLAorICAgICAgICBMRVRURVJfS0hIQSwKKyAgICAgICAgTEVUVEVSX0dISEEsCisgICAgICAgIExFVFRFUl9aQSwKKyAgICAgICAgTEVUVEVSX0REREhBLAorICAgICAgICBMRVRURVJfUkhBLAorICAgICAgICBMRVRURVJfRkEsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19SUiwKKyAgICAgICAgU0lHTl9BVkFHUkFIQQorICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0Rpc3BsYXlOYW1lcy5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGU1YjFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDE4IEBACisjCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIworIyBEZWZhdWx0IElucHV0IG1ldGhvZCBkaXNwbGF5IG5hbWVzIGZvciBJbmRpYyBpbnB1dCBtZXRob2RzCisjCisKK0Rpc3BsYXlOYW1lLkJlbmdhbGkgICAgID0gQmVuZ2FsaSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLkRldmFuYWdhcmkgID0gRGV2YW5hZ2FyaSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLkd1amFyYXRpICAgID0gR3VqYXJhdGkgSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5HdXJtdWtoaSAgICA9IEd1cm11a2hpIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuS2FubmFkYSAgICAgPSBLYW5uYWRhIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuTWFsYXlhbGFtICAgPSBNYWxheWFsYW0gSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5Pcml5YSAgICAgICA9IE9yaXlhIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuVGFtaWwgICAgICAgPSBUYW1pbCBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLlRlbHVndSAgICAgID0gVGVsdWd1IElucHV0IE1ldGhvZApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMzFlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0d1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgR1VKQVJBVEkgPSBuZXcgTG9jYWxlKCJndSIsICJJTiIpOworCisgICAgcHVibGljIEd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEdVSkFSQVRJLCAiR3VqYXJhdGkiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdTBBOEQnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQUEwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGMDEnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAyJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwNCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBBOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDUnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQThCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEFBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBBRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQUU3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEFFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBBRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQUVBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEFFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBBRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQUVEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEFFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBBRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQTlCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEE5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBBQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQUMzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdTBBQzUnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQTkzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBBQTMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQTg1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEE4NicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBBODcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQTg5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEFBQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBBOTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHVGRkZGJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEE5NicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBBQTUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQUI2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEFCMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBBQTcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQTlEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEE5NCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBBODgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQThGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEE4QScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBBOTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEE5MCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBBODEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQUFEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1RkZGRicsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBBQTEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHUwQUM5JywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MEFCQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDMnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQTgzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1RkZGRicsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBBQ0InLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQUI1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEFBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBBQ0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQUJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEFCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBBQzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQUFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEE5NycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBBQjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQTk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEFBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBBQjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQUIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEFBNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBBOUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQUNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEFDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBBQzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQUMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEFCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBBQTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQUM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEE4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBBQUMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHVGRkZGJywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEFBMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdTBBOTEnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQTlFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1RkZGRicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEFDRCcsICdcdTBBQjAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwQUIwJywgJ1x1MEFDRCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MEE5QycsICdcdTBBQ0QnLCAnXHUwQTlFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTBBQTQnLCAnXHUwQUNEJywgJ1x1MEFCMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEE5NScsICdcdTBBQ0QnLCAnXHUwQUI3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwQUI2JywgJ1x1MEFDRCcsICdcdTBBQjAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTBiM2JhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdXJtdWtoaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBHdXJtdWtoaUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEdVUk1VS0hJID0gbmV3IExvY2FsZSgicGEiLCAiSU4iKTsgLy8gcGEgPSBQdW5qYWJpCisKKyAgICBwdWJsaWMgR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoR1VSTVVLSEksICJHdXJtdWtoaSIpOyAKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGpvaW5XaXRoTnVrdGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIG51a3RhRm9ybTsKKworICAgIHByb3RlY3RlZCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCkgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1MEEwRCcsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTBBMjAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkZGRicsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGRkYnLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRkZGJywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MEExRicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkZGRicsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTBBMEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwQTJGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MEE2NicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTBBNjcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwQTY4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MEE2OScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTBBNkEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwQTZCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MEE2QycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTBBNkQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwQTZFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MEE2RicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTBBMUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwQTFBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MEEzNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTBBNDMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHUwOTY0JywgICAvLyAnPicgIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwQTVGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1MEE0NScsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBBMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwQTM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEEyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBBMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwQTA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEEwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBBMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwQTJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEExOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTBBMzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwQTE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEEyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBBMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwQTMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEEyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBBMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwQTE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEEwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBBMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwQTBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEExOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdTBBMjknLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwQTEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MEEwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBBMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwQTBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEEyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdTBBNDknLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwQTNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkZGRicsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBBMDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwQTRBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MEE0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBBMzUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwQTJFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MEE0RCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTBBM0UnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwQTNGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MEE0MScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTBBMkEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwQTE3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MEEzMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTBBMTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwQTI0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MEEzOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTBBMzInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwQTI2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MEExQycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTBBNEMnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwQTQwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MEE0NycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTBBNDInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwQTM5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MEEyOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTBBNDgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwQTcwJywgICAvLyAneCcgKEd1cm11a2hpIFRJUFBJIHJhdGhlciB0aGFuIEJJTkRJKQorICAgICAgICAvKiA3OSAqLyAnXHUwQTJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEE0NicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBBMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHUwQTExJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEExRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBBMTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBBNEQnLCAnXHUwQTMwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgIC8vIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBhcyBkZWZpbmVkIGluIElTQ0lJOTEKKyAgICAgICAgY2hhciBMRVRURVJfS0hBICAgICAgICAgICAgPSAnXHUwQTE2JzsKKyAgICAgICAgY2hhciBMRVRURVJfR0EgICAgICAgICAgICAgPSAnXHUwQTE3JzsKKyAgICAgICAgY2hhciBMRVRURVJfSkEgICAgICAgICAgICAgPSAnXHUwQTFDJzsKKyAgICAgICAgY2hhciBMRVRURVJfRERBICAgICAgICAgICAgPSAnXHUwQTIxJzsKKyAgICAgICAgY2hhciBMRVRURVJfUEhBICAgICAgICAgICAgPSAnXHUwQTJCJzsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgcmVwbGFjZSB0aGUgYWJvdmUgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YS4gVGhlc2UKKyAgICAgICAgLy8gYXJlIGRlZmluZWQgaW4gb25lIHRvIG9uZSBjb3JyZXNwb25kZW5jZSBvcmRlci4KKyAgICAgICAgLy8gTk9URTogdGhlIGluc2NyaXB0IGtleWJvYXJkIGRvYy4gbGlzdHMgYSBLQSArIE5VS1RBIGFuZCBhIERESEEgKyBOVUtUQQorICAgICAgICAvLyBuZWl0aGVyIG9mIHdoaWNoIHNlZW0gdG8gaGF2ZSBVbmljb2RlIGNvZGUgcG9pbnRzLi4uCisgICAgICAgIGNoYXIgTEVUVEVSX0tISEEgICAgICAgICAgID0gJ1x1MEE1OSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0dISEEgICAgICAgICAgID0gJ1x1MEE1QSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1pBICAgICAgICAgICAgID0gJ1x1MEE1Qic7CisgICAgICAgIGNoYXIgTEVUVEVSX1JSQSAgICAgICAgICAgID0gJ1x1MEE1Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0ZBICAgICAgICAgICAgID0gJ1x1MEE1RSc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfS0hBLAorICAgICAgICBMRVRURVJfR0EsCisgICAgICAgIExFVFRFUl9KQSwKKyAgICAgICAgTEVUVEVSX0REQSwKKyAgICAgICAgTEVUVEVSX1BIQQorICAgICAgICB9OworICAgIAorICAgICAgICBudWt0YUZvcm0gPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX0tISEEsCisgICAgICAgIExFVFRFUl9HSEhBLAorICAgICAgICBMRVRURVJfWkEsCisgICAgICAgIExFVFRFUl9SUkEsCisgICAgICAgIExFVFRFUl9GQQorICAgICAgICB9OworICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBqb2luV2l0aE51a3RhLCBudWt0YUZvcm0sIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJTURlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJTURlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzM4MGI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lNRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kOworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJbmRpY0lNRGVzY3JpcHRvciBpbXBsZW1lbnRzIElucHV0TWV0aG9kRGVzY3JpcHRvciB7CisgICAgcHJpdmF0ZSBmaW5hbCBMb2NhbGUgbG9jYWxlOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG5hbWU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJTURlc2NyaXB0b3IoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG5hbWUpIHsKKyAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCk7CisKKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVbXSB7IGxvY2FsZSB9OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc0R5bmFtaWNMb2NhbGVMaXN0KCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdHJpbmcgZ2V0SW5wdXRNZXRob2REaXNwbGF5TmFtZShMb2NhbGUgaW5wdXRMb2NhbGUsIExvY2FsZSBkaXNwbGF5TGFuZ3VhZ2UpIHsKKyAgICB0cnkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkRpc3BsYXlOYW1lcyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TGFuZ3VhZ2UpOworICAgICAgICByZXR1cm4gcmIuZ2V0U3RyaW5nKCJEaXNwbGF5TmFtZS4iICsgbmFtZSk7CisgICAgfQorICAgIGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIEltYWdlIGdldElucHV0TWV0aG9kSWNvbihMb2NhbGUgaW5wdXRMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIElucHV0TWV0aG9kIGNyZWF0ZUlucHV0TWV0aG9kKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZChsb2NhbGUsIGdldEltcGwoKSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICByZXR1cm4gbmFtZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzM2FhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2QuamF2YQpAQCAtMCwwICsxLDkyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEuYXd0LkFXVEV2ZW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2Q7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kQ29udGV4dDsKK2ltcG9ydCBqYXZhLmxhbmcuQ2hhcmFjdGVyLlN1YnNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIFRoaXMgc3R1YiBkZWxlZ2F0ZXMgdG8gdGhlIHNpbXBsZXIgSW5kaWNJbnB1dE1ldGhvZEltcGwuCisgKi8KK2NsYXNzIEluZGljSW5wdXRNZXRob2QgaW1wbGVtZW50cyBJbnB1dE1ldGhvZCB7CisgICAgcHJpdmF0ZSBJbmRpY0lucHV0TWV0aG9kSW1wbCBpbXBsOworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKyAgICAKKyAgICBJbmRpY0lucHV0TWV0aG9kKExvY2FsZSB0aGVMb2NhbGUsIEluZGljSW5wdXRNZXRob2RJbXBsIHRoZUltcGxlbWVudGF0aW9uKSB7CisgICAgICAgIGxvY2FsZSA9IHRoZUxvY2FsZTsKKyAgICAgICAgaW1wbCA9IHRoZUltcGxlbWVudGF0aW9uOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgaW1wbC5zZXRJbnB1dE1ldGhvZENvbnRleHQoY29udGV4dCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscyh0aGlzLmxvY2FsZS5nZXRMYW5ndWFnZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q2hhcmFjdGVyU3Vic2V0cyhTdWJzZXRbXSBzdWJzZXRzKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29tcG9zaXRpb25FbmFibGVkKGJvb2xlYW4gZW5hYmxlKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ29tcG9zaXRpb25FbmFibGVkKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWNvbnZlcnQoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGhpcyBpbnB1dCBtZXRob2QgZG9lcyBub3QgcmVjb252ZXJ0LiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRXZlbnQoQVdURXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgS2V5RXZlbnQpIHsKKyAgICAgICAgICAgIEtleUV2ZW50IGtleUV2ZW50ID0gKEtleUV2ZW50KSBldmVudDsKKyAgICAgICAgICAgIGlmIChldmVudC5nZXRJRCgpID09IEtleUV2ZW50LktFWV9UWVBFRCkgeworICAgICAgICAgICAgICAgIGltcGwuaGFuZGxlS2V5VHlwZWQoa2V5RXZlbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDbGllbnRXaW5kb3dDaGFuZ2UoUmVjdGFuZ2xlIGJvdW5kcykgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGl2YXRlKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYWN0aXZhdGUoYm9vbGVhbiBpc1RlbXBvcmFyeSkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhpZGVXaW5kb3dzKCkgeworICAgIH0KKyAgCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTm90aWZ5KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVuZENvbXBvc2l0aW9uKCkgeworICAgICAgICBpbXBsLmVuZENvbXBvc2l0aW9uKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldENvbnRyb2xPYmplY3QoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZEltcGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZEltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWU0ZjMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lucHV0TWV0aG9kSW1wbC5qYXZhCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZENvbnRleHQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JbnB1dE1ldGhvZEV2ZW50OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRIaXRJbmZvOworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2NsYXNzIEluZGljSW5wdXRNZXRob2RJbXBsIHsKKyAgICAKKyAgICBwcm90ZWN0ZWQgY2hhcltdIEtCRF9NQVA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTVUJTVElUVVRJT05fQkFTRSA9ICdcdWZmMDAnOworCisgICAgLy8gSW5kZXhlZCBieSBtYXAgdmFsdWUgLSBTVUJTVElUVVRJT05fQkFTRQorICAgIHByb3RlY3RlZCBjaGFyW11bXSBTVUJTVElUVVRJT05fVEFCTEU7CisKKyAgICAvLyBJbnZhbGlkIGNoYXJhY3Rlci4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElOVkFMSURfQ0hBUiAgICAgICAgICAgICAgPSAnXHVmZmZmJzsKKworICAgIC8vIFVubWFwcGVkIHZlcnNpb25zIG9mIHNvbWUgaW50ZXJlc3RpbmcgY2hhcmFjdGVycy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWV9TSUdOX1ZJUkFNQSAgICAgICAgICAgPSAnXHUwMDY0JzsgLy8gb3IganVzdCAnZCc/PworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZX1NJR05fTlVLVEEgICAgICAgICAgICA9ICdcdTAwNWQnOyAgLy8gb3IganVzdCAnXSc/PworCisgICAgLy8gVHdvIHN1Y2NlZWRpbmcgdmlyYW1hcyBhcmUgcmVwbGFjZWQgYnkgb25lIHZpcmFtYSBhbmQgb25lIFpXTkouCisgICAgLy8gVmlyYW0gZm9sbG93ZWQgYnkgTnVrdGEgaXMgcmVwbGFjZWQgYnkgb25lIFZJUkFNQSBhbmQgb25lIFpXSgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWldKICAgICAgICAgICAgICAgICAgICAgICA9ICdcdTIwMGQnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWldOSiAgICAgICAgICAgICAgICAgICAgICA9ICdcdTIwMGMnOworICAgIAorICAgIC8vIEJhY2tzcGFjZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQkFDS1NQQUNFICAgICAgICAgICAgICAgICA9ICdcdTAwMDgnOworCisgICAgLy8gU29ydGVkIGxpc3Qgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgZm9sbG93ZWQgYnkgTnVrdGEKKyAgICBwcm90ZWN0ZWQgY2hhcltdIEpPSU5fV0lUSF9OVUtUQTsKKyAgICAKKyAgICAvLyBOdWt0YSBmb3JtIG9mIHRoZSBhYm92ZSBjaGFyYWN0ZXJzCisgICAgcHJvdGVjdGVkIGNoYXJbXSBOVUtUQV9GT1JNOworICAgICAgICAKKyAgICBwcml2YXRlIGludCBsb2cyOworICAgIHByaXZhdGUgaW50IHBvd2VyOworICAgIHByaXZhdGUgaW50IGV4dHJhOworCisgICAgLy8gY2FjaGVkIFRleHRIaXRJbmZvLiBPbmx5IG9uZSB0eXBlIG9mIFRleHRIaXRJbmZvIGlzIHJlcXVpcmVkLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRleHRIaXRJbmZvIFpFUk9fVFJBSUxJTkdfSElUX0lORk8gPSBUZXh0SGl0SW5mby50cmFpbGluZygwKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaW4gdGhlIEpPSU5fV0lUSF9OVUtUQSBhcnJheS4KKyAgICAgKiBJZiBjaGFyYWN0ZXIgaXMgbm90IGZvdW5kLCAtMSBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudWt0YUluZGV4KGNoYXIgY2gpIHsKKyAgICAgICAgaWYgKEpPSU5fV0lUSF9OVUtUQSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwcm9iZSA9IHBvd2VyOworICAgICAgICBpbnQgaW5kZXggPSAwOworCisgICAgICAgIGlmIChKT0lOX1dJVEhfTlVLVEFbZXh0cmFdIDw9IGNoKSB7CisgICAgICAgICAgICBpbmRleCA9IGV4dHJhOworICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBW2luZGV4ICsgcHJvYmVdIDw9IGNoKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gcHJvYmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBW2luZGV4XSAhPSBjaCkgeworICAgICAgICAgICAgaW5kZXggPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZXF1aXZhbGVudCBjaGFyYWN0ZXIgZm9yIGhpbmRpIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb3JpZ2luYWxDaGFyIFRoZSBvcmlnaW5hbCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIGdldE1hcHBlZENoYXIoY2hhciBvcmlnaW5hbENoYXIpIHsKKyAgICAgICAgaWYgKG9yaWdpbmFsQ2hhciA8PSBLQkRfTUFQLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIEtCRF9NQVBbb3JpZ2luYWxDaGFyXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsQ2hhcjsKKyAgICB9CisgICAgCisgICAgLy8gQXJyYXkgdXNlZCB0byBob2xkIHRoZSB0ZXh0IHRvIGJlIHNlbnQuCisgICAgLy8gSWYgdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBub3QgY29tbWl0dGVkIGl0IGlzIHN0b3JlZCBpbiB0ZXh0WzBdLgorICAgIC8vIFRoZSB2YXJpYWJsZSB0b3RhbENoYXJzIGdpdmUgYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIHRoZSBsYXN0CisgICAgLy8gY2hhcmFjdGVyIHdhcyBjb21taXR0ZWQgb3Igbm90LiBJZiBhdCBhbnkgdGltZSAoIGJ1dCBub3Qgd2l0aGluIGEKKyAgICAvLyBhIGNhbGwgdG8gZGlzcGF0Y2hFdmVudCApIHRvdGFsQ2hhcnMgaXMgbm90IGVxdWFsIHRvIDAgKCBpdCBjYW4KKyAgICAvLyBvbmx5IGJlIDEgb3RoZXJ3aXNlICkgdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBub3QgY29tbWl0dGVkLgorICAgIHByaXZhdGUgY2hhciBbXSB0ZXh0ID0gbmV3IGNoYXJbNF07CisKKyAgICAvLyB0aGlzIGlzIGFsd2F5cyAwIGJlZm9yZSBhbmQgYWZ0ZXIgY2FsbCB0byBkaXNwYXRjaEV2ZW50LiBUaGlzIGNoYXJhY3RlciBhc3N1bWVzCisgICAgLy8gc2lnbmlmaWNhbmNlIG9ubHkgd2l0aGluIGEgY2FsbCB0byBkaXNwYXRjaEV2ZW50LgorICAgIHByaXZhdGUgaW50IGNvbW1pdHRlZENoYXJzID0gMDsvLyBudW1iZXIgb2YgY29tbWl0dGVkIGNoYXJhY3RlcnMKKworICAgIC8vIHRoZSB0b3RhbCB2YWxpZCBjaGFyYWN0ZXJzIGluIHZhcmlhYmxlIHRleHQgY3VycmVudGx5LgorICAgIHByaXZhdGUgaW50IHRvdGFsQ2hhcnMgPSAwOy8vbnVtYmVyIG9mIHRvdGFsIGNoYXJhY3RlcnMgKCBjb21taXR0ZWQgKyBjb21wb3NlZCApCisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGFzdENoYXJXYXNWaXJhbWEgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIElucHV0TWV0aG9kQ29udGV4dCBjb250ZXh0OworCisgICAgLy8KKyAgICAvLyBGaW5kcyB0aGUgaGlnaCBiaXQgYnkgYmluYXJ5IHNlYXJjaGluZworICAgIC8vIHRocm91Z2ggdGhlIGJpdHMgaW4gbi4KKyAgICAvLworICAgIHByaXZhdGUgc3RhdGljIGJ5dGUgaGlnaEJpdChpbnQgbikgeworICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTMyOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBiaXQgPSAwOworCisgICAgICAgIGlmIChuID49IDEgPDwgMTYpIHsKKyAgICAgICAgICAgIG4gPj49IDE2OworICAgICAgICAgICAgYml0ICs9IDE2OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA4KSB7CisgICAgICAgICAgICBuID4+PSA4OworICAgICAgICAgICAgYml0ICs9IDg7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDQpIHsKKyAgICAgICAgICAgIG4gPj49IDQ7CisgICAgICAgICAgICBiaXQgKz0gNDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMikgeworICAgICAgICAgICAgbiA+Pj0gMjsKKyAgICAgICAgICAgIGJpdCArPSAyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxKSB7CisgICAgICAgICAgICBuID4+PSAxOworICAgICAgICAgICAgYml0ICs9IDE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYml0OworICAgIH0KKworICAgIEluZGljSW5wdXRNZXRob2RJbXBsKGNoYXJbXSBrZXlib2FyZE1hcCwgY2hhcltdIGpvaW5XaXRoTnVrdGEsIGNoYXJbXSBudWt0YUZvcm0sIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlKSB7CisgICAgICAgIEtCRF9NQVAgPSBrZXlib2FyZE1hcDsKKyAgICAgICAgSk9JTl9XSVRIX05VS1RBID0gam9pbldpdGhOdWt0YTsKKyAgICAgICAgTlVLVEFfRk9STSA9IG51a3RhRm9ybTsKKyAgICAgICAgU1VCU1RJVFVUSU9OX1RBQkxFID0gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgICAgIAorICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBsb2cyID0gaGlnaEJpdChKT0lOX1dJVEhfTlVLVEEubGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcG93ZXIgPSAxIDw8IGxvZzI7CisgICAgICAgICAgICBleHRyYSA9IEpPSU5fV0lUSF9OVUtUQS5sZW5ndGggLSBwb3dlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvd2VyID0gZXh0cmEgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICB2b2lkIHNldElucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OworICAgIH0KKyAgICAKKyAgICB2b2lkIGhhbmRsZUtleVR5cGVkKEtleUV2ZW50IGtldmVudCkgeworICAgICAgICBjaGFyIGtleUNoYXIgPSBrZXZlbnQuZ2V0S2V5Q2hhcigpOworICAgICAgICBjaGFyIGN1cnJlbnRDaGFyID0gZ2V0TWFwcGVkQ2hhcihrZXlDaGFyKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSBFeHBsaWNpdCBhbmQgU29mdCBIYWxhbnRhIGNhc2UuCisgICAgICAgIGlmICggbGFzdENoYXJXYXNWaXJhbWEgKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGtleUNoYXIpIHsKKyAgICAgICAgICAgIGNhc2UgS0VZX1NJR05fTlVLVEE6CisgICAgICAgICAgICAgICAgY3VycmVudENoYXIgPSBaV0o7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtFWV9TSUdOX1ZJUkFNQToKKyAgICAgICAgICAgICAgICBjdXJyZW50Q2hhciA9IFpXTko7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgfS8vZW5kU3dpdGNoCisgICAgICAgIH0vL2VuZGlmCisKKyAgICAgICAgaWYgKGN1cnJlbnRDaGFyID09IElOVkFMSURfQ0hBUikgeworICAgICAgICAgICAga2V2ZW50LmNvbnN1bWUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJyZW50Q2hhciA9PSBCQUNLU1BBQ0UpIHsKKyAgICAgICAgICAgIGxhc3RDaGFyV2FzVmlyYW1hID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0b3RhbENoYXJzID4gMCkgeworICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSBjb21taXR0ZWRDaGFycyA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoa2V5Q2hhciA9PSBLRVlfU0lHTl9OVUtUQSkgeworICAgICAgICAgICAgaW50IG51a3RhSW5kZXggPSBudWt0YUluZGV4KHRleHRbMF0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobnVrdGFJbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHRleHRbMF0gPSBOVUtUQV9GT1JNW251a3RhSW5kZXhdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB0aGUgbGFzdCBjaGFyYWN0ZXIgd2FzIGNvbW1pdHRlZCwgY29tbWl0IGp1c3QgTnVrdGEuCisgICAgICAgICAgICAgICAgLy8gTm90ZSA6IHRoZSBsYXN0Q2hhciBtdXN0IGhhdmUgYmVlbiBjb21taXR0ZWQgaWYgaXQgaXMgbm90IG9uZSBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXJzIHdoaWNoIGNvbWJpbmUgd2l0aCBudWt0YS4KKyAgICAgICAgICAgICAgICAvLyB0aGUgc3RhdGUgbXVzdCBiZSB0b3RhbENoYXJzID0gY29tbWl0dGVkQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIHRleHRbdG90YWxDaGFycysrXSA9IGN1cnJlbnRDaGFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjb21taXR0ZWRDaGFycyArPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IG51a3RhSW5kZXggPSBudWt0YUluZGV4KGN1cnJlbnRDaGFyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG51a3RhSW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBDb21taXQgZXZlcnl0aGluZyBidXQgY3VycmVudENoYXIKKyAgICAgICAgICAgICAgICB0ZXh0W3RvdGFsQ2hhcnMrK10gPSBjdXJyZW50Q2hhcjsKKyAgICAgICAgICAgICAgICBjb21taXR0ZWRDaGFycyA9IHRvdGFsQ2hhcnMtMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRDaGFyID49IFNVQlNUSVRVVElPTl9CQVNFKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzdWIgPSBTVUJTVElUVVRJT05fVEFCTEVbY3VycmVudENoYXIgLSBTVUJTVElUVVRJT05fQkFTRV07CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1YiwgMCwgdGV4dCwgdG90YWxDaGFycywgc3ViLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgKz0gc3ViLmxlbmd0aDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ZXh0W3RvdGFsQ2hhcnMrK10gPSBjdXJyZW50Q2hhcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY29tbWl0dGVkQ2hhcnMgPSB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBQ0lUZXh0IGFUZXh0ID0gbmV3IEFDSVRleHQoIHRleHQsIDAsIHRvdGFsQ2hhcnMsIGNvbW1pdHRlZENoYXJzICk7CisgICAgICAgIGludCBjb21wb3NlZENoYXJMZW5ndGggPSB0b3RhbENoYXJzIC0gY29tbWl0dGVkQ2hhcnM7CisgICAgICAgIFRleHRIaXRJbmZvIGNhcmV0PW51bGwsdmlzaWJsZVBvc2l0aW9uPW51bGw7CisgICAgICAgIHN3aXRjaCggY29tcG9zZWRDaGFyTGVuZ3RoICkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHZpc2libGVQb3NpdGlvbiA9IGNhcmV0ID0gWkVST19UUkFJTElOR19ISVRfSU5GTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gVGhlIGNvZGUgc2hvdWxkIG5vdCByZWFjaCBoZXJlLiBUaGVyZSBpcyBubyBjYXNlIHdoZXJlIHRoZXJlIGNhbiBiZQorICAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyIHBlbmRpbmcuCisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBjb250ZXh0LmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LklOUFVUX01FVEhPRF9URVhUX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXR0ZWRDaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmICh0b3RhbENoYXJzID09IDApIHsKKyAgICAgICAgICAgIHRleHRbMF0gPSBJTlZBTElEX0NIQVI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXh0WzBdID0gdGV4dFt0b3RhbENoYXJzIC0gMV07Ly8gbWFrZSB0ZXh0WzBdIGhvbGQgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxhc3RDaGFyV2FzVmlyYW1hID0gIGtleUNoYXIgPT0gS0VZX1NJR05fVklSQU1BICYmICFsYXN0Q2hhcldhc1ZpcmFtYTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHRvdGFsQ2hhcnMgLT0gY29tbWl0dGVkQ2hhcnM7CisgICAgICAgIGNvbW1pdHRlZENoYXJzID0gMDsKKyAgICAgICAgLy8gc3RhdGUgbm93IHRleHRbMF0gPSBsYXN0IGNoYXJhY3RlcgorICAgICAgICAvLyB0b3RhbENoYXJzID0gKCBsYXN0IGNoYXJhY3RlciBjb21taXR0ZWQgKT8gMCA6IDE7CisgICAgICAgIC8vIGNvbW1pdHRlZENoYXJzID0gMDsKKworICAgICAgICBrZXZlbnQuY29uc3VtZSgpOy8vIHByZXZlbnQgY2xpZW50IGZyb20gZ2V0dGluZyB0aGlzIGV2ZW50LgorICAgIH0KKworICAgIHZvaWQgZW5kQ29tcG9zaXRpb24oKSB7CisgICAgICAgIGlmKCB0b3RhbENoYXJzICE9IDAgKSB7Ly8gaWYgc29tZSBjaGFyYWN0ZXIgaXMgbm90IGNvbW1pdHRlZC4KKyAgICAgICAgICAgIEFDSVRleHQgYVRleHQgPSBuZXcgQUNJVGV4dCggdGV4dCwgMCwgdG90YWxDaGFycywgdG90YWxDaGFycyApOworICAgICAgICAgICAgY29udGV4dC5kaXNwYXRjaElucHV0TWV0aG9kRXZlbnQoIElucHV0TWV0aG9kRXZlbnQuSU5QVVRfTUVUSE9EX1RFWFRfQ0hBTkdFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVRleHQsIHRvdGFsQ2hhcnMsIG51bGwsIG51bGwgKTsKKyAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSBjb21taXR0ZWRDaGFycyA9IDA7CisgICAgICAgICAgICB0ZXh0WzBdID0gSU5WQUxJRF9DSEFSOworICAgICAgICAgICAgbGFzdENoYXJXYXNWaXJhbWEgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBjdXN0b20gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIC0tIG11Y2ggbGlnaHR3ZWlnaHQgc2luY2UgY3VycmVudGx5IHRoZXJlIGlzIG5vCisgICAgLy8gYXR0cmlidXRlIGRlZmluZWQgb24gdGhlIHRleHQgYmVpbmcgZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBtZXRob2QuCisgICAgcHJpdmF0ZSBjbGFzcyBBQ0lUZXh0IGltcGxlbWVudHMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyIFtdIHRleHQgPSBudWxsOworICAgICAgICBwcml2YXRlIGludCBjb21taXR0ZWQgPSAwOworICAgICAgICBwcml2YXRlIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgQUNJVGV4dCggY2hhciBbXSBjaEFycmF5LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBpbnQgY29tbWl0dGVkICkgeworICAgICAgICAgICAgdGhpcy50ZXh0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRoaXMuY29tbWl0dGVkID0gY29tbWl0dGVkOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSggY2hBcnJheSwgb2Zmc2V0LCB0ZXh0LCAwLCBsZW5ndGggKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoYXJhY3Rlckl0ZXJhdG9yIG1ldGhvZHMuCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkgeworICAgICAgICAgICAgcmV0dXJuIF9zZXRJbmRleCggMCApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpIHsKKyAgICAgICAgICAgIGlmKCB0ZXh0Lmxlbmd0aCA9PSAwICkgeworICAgICAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIHRleHQubGVuZ3RoICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCB0ZXh0Lmxlbmd0aCAtIDEgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKSB7CisgICAgICAgICAgICBpZiggaW5kZXggPT0gdGV4dC5sZW5ndGggKQorICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgcmV0dXJuIHRleHRbaW5kZXhdOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmKCBpbmRleCA9PSB0ZXh0Lmxlbmd0aCApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIGluZGV4ICsgMSApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKSB7CisgICAgICAgICAgICBpZiggaW5kZXggPT0gMCApCisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCBpbmRleCAtIDEgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICAgICAgaWYoIHBvc2l0aW9uIDwgMCB8fCBwb3NpdGlvbiA+IHRleHQubGVuZ3RoICkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIHBvc2l0aW9uICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQUNJVGV4dCBjbG9uZSA9IChBQ0lUZXh0KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgbWV0aG9kcy4KKyAgICAgICAgcHVibGljIGludCBnZXRSdW5TdGFydCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleCA+PSBjb21taXR0ZWQgPyBjb21taXR0ZWQgOiAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRSdW5TdGFydChBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICAgICAgICAgICAgcmV0dXJuIChpbmRleCA+PSBjb21taXR0ZWQgJiYKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPT0gVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSA/IGNvbW1pdHRlZCA6IDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICByZXR1cm4gKGluZGV4ID49IGNvbW1pdHRlZCAmJgorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLmNvbnRhaW5zKFRleHRBdHRyaWJ1dGUuSU5QVVRfTUVUSE9EX1VOREVSTElORSkpID8gY29tbWl0dGVkIDogMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPCBjb21taXR0ZWQgPyBjb21taXR0ZWQgOiB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5kZXggPCBjb21taXR0ZWQgJiYgCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSA9PSBUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUpID8gY29tbWl0dGVkIDogdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICByZXR1cm4gKGluZGV4IDwgY29tbWl0dGVkICYmCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMuY29udGFpbnMoVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSkgPyBjb21taXR0ZWQgOiB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBNYXAgZ2V0QXR0cmlidXRlcygpIHsKKyAgICAgICAgICAgIEhhc2h0YWJsZSByZXN1bHQgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gY29tbWl0dGVkICYmIGNvbW1pdHRlZCA8IHRleHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfTE9XX09ORV9QSVhFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBjb21taXR0ZWQgJiYgCisgICAgICAgICAgICAgICAgY29tbWl0dGVkIDwgdGV4dC5sZW5ndGggJiYKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPT0gVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSB7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfTE9XX09ORV9QSVhFTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNldCBnZXRBbGxBdHRyaWJ1dGVLZXlzKCkgeworICAgICAgICAgICAgSGFzaFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgaWYgKGNvbW1pdHRlZCA8IHRleHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kcworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIGFsd2F5cyBjYWxsZWQgd2l0aCB2YWxpZCBpICggMCA8IGkgPD0gdGV4dC5sZW5ndGggKQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBjaGFyIF9zZXRJbmRleCggaW50IGkgKSB7CisgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICBpZiggaSA9PSB0ZXh0Lmxlbmd0aCApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0ZXh0W2ldOworICAgICAgICB9CisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0thbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvS2FubmFkYUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkODExMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0thbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgS2FubmFkYUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEtBTk5BREEgPSBuZXcgTG9jYWxlKCJrbiIsICJJTiIpOworCisgICAgcHVibGljIEthbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoS0FOTkFEQSwgIkthbm5hZGEiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQ0EwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAxJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMycsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBDOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDQnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQzhCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MENBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBDRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQ0U3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MENFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBDRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQ0VBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MENFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBDRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQ0VEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MENFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBDRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQzlCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEM5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBDQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQ0MzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1RkZGRicsICAgLy8gJz4nCisgICAgICAgIC8qIDNGICovICdcdUZGRkYnLCAgIC8vICc/JworICAgICAgICAvKiA0MCAqLyAnXHVGRkZGJywgICAvLyAnQCcKKyAgICAgICAgLyogNDEgKi8gJ1x1MEM5MycsICAgLy8gJ0EnCisgICAgICAgIC8qIDQyICovICdcdUZGRkYnLCAgIC8vICdCJworICAgICAgICAvKiA0MyAqLyAnXHUwQ0EzJywgICAvLyAnQycKKyAgICAgICAgLyogNDQgKi8gJ1x1MEM4NScsICAgLy8gJ0QnCisgICAgICAgIC8qIDQ1ICovICdcdTBDODYnLCAgIC8vICdFJworICAgICAgICAvKiA0NiAqLyAnXHUwQzg3JywgICAvLyAnRicKKyAgICAgICAgLyogNDcgKi8gJ1x1MEM4OScsICAgLy8gJ0cnCisgICAgICAgIC8qIDQ4ICovICdcdTBDQUInLCAgIC8vICdIJworICAgICAgICAvKiA0OSAqLyAnXHUwQzk4JywgICAvLyAnSScKKyAgICAgICAgLyogNEEgKi8gJ1x1MENCMScsICAgLy8gJ0onCisgICAgICAgIC8qIDRCICovICdcdTBDOTYnLCAgIC8vICdLJworICAgICAgICAvKiA0QyAqLyAnXHUwQ0E1JywgICAvLyAnTCcKKyAgICAgICAgLyogNEQgKi8gJ1x1MENCNicsICAgLy8gJ00nCisgICAgICAgIC8qIDRFICovICdcdTBDQjMnLCAgIC8vICdOJworICAgICAgICAvKiA0RiAqLyAnXHUwQ0E3JywgICAvLyAnTycKKyAgICAgICAgLyogNTAgKi8gJ1x1MEM5RCcsICAgLy8gJ1AnCisgICAgICAgIC8qIDUxICovICdcdTBDOTQnLCAgIC8vICdRJworICAgICAgICAvKiA1MiAqLyAnXHUwQzg4JywgICAvLyAnUicKKyAgICAgICAgLyogNTMgKi8gJ1x1MEM4RicsICAgLy8gJ1MnCisgICAgICAgIC8qIDU0ICovICdcdTBDOEEnLCAgIC8vICdUJworICAgICAgICAvKiA1NSAqLyAnXHUwQzk5JywgICAvLyAnVScKKyAgICAgICAgLyogNTYgKi8gJ1x1RkZGRicsICAgLy8gJ1YnCisgICAgICAgIC8qIDU3ICovICdcdTBDOTAnLCAgIC8vICdXJworICAgICAgICAvKiA1OCAqLyAnXHVGRkZGJywgICAvLyAnWCcKKyAgICAgICAgLyogNTkgKi8gJ1x1MENBRCcsICAgLy8gJ1knCisgICAgICAgIC8qIDVBICovICdcdTBDOEUnLCAgIC8vICdaJworICAgICAgICAvKiA1QiAqLyAnXHUwQ0ExJywgICAvLyAnWycKKyAgICAgICAgLyogNUMgKi8gJ1x1RkZGRicsICAgLy8gJ1wnCisgICAgICAgIC8qIDVEICovICdcdUZGRkYnLCAgIC8vICddJyAgKGRhbmRhIC0gbm90IHNob3duIG9uIElOU0NSSVBUIGNoYXJ0KQorICAgICAgICAvKiA1RSAqLyAnXHVGRjAyJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEM4MycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBDQ0EnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwQ0NCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MENCNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBDQUUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQ0NEJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MENCRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBDQkYnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQ0MxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MENBQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBDOTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQ0IwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEM5NScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBDQTQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQ0I4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MENCMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBDQTYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQzlDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MENDQycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBDQzAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQ0M3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MENDMicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBDQjknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQ0E4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MENDOCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBDODInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwQ0FDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MENDNicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBDQTInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEM5RScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBDOTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBDQ0QnLCAnXHUwQ0IwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwQzlDJywgJ1x1MENDRCcsICdcdTBDOUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MENBNCcsICdcdTBDQ0QnLCAnXHUwQ0IwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwQzk1JywgJ1x1MENDRCcsICdcdTBDQjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTBDQjYnLCAnXHUwQ0NEJywgJ1x1MENCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvTWFsYXlhbGFtSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL01hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkOTM0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL01hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBNYWxheWFsYW1JbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBNQUxBWUFMQU0gPSBuZXcgTG9jYWxlKCJtbCIsICJJTiIpOworCisgICAgcHVibGljIE1hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihNQUxBWUFMQU0sICJNYWxheWFsYW0iKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MEQyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRkZGJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkZGRicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGRkYnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwRDFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjAxJywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEQwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBEMkYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwRDY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEQ2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBENjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwRDY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEQ2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBENkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwRDZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEQ2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBENkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwRDZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEQxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBEMUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwRDM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MEQ0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdUZGRkYnLCAgIC8vICc+JworICAgICAgICAvKiAzRiAqLyAnXHVGRkZGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBEMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHUwRDM0JywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEQyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBEMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwRDA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEQwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBEMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwRDJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEQxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTBEMzEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwRDE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEQyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBEMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwRDMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEQyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBEMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwRDE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEQwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBEMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwRDBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEQxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwRDEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1RkZGRicsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBEMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwRDBFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEQyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHVGRkZGJywgICAvLyAnXScgKG51a3RhIC0gbm8gVW5pY29kZSBjb2RlIHZhbHVlKQorICAgICAgICAvKiA1RSAqLyAnXHVGRkZGJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEQwMycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBENEEnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwRDRCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MEQzNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBEMkUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwRDREJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEQzRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBEM0YnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwRDQxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEQyQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBEMTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwRDMwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEQxNScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBEMjQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwRDM4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEQzMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBEMjYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwRDFDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEQ0QycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBENDAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwRDQ3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEQ0MicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBEMzknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwRDI4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEQ0OCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBEMDInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwRDJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEQ0NicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBEMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEQxRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBEMTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBENEQnLCAnXHUwRDMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwRDE1JywgJ1x1MEQ0RCcsICdcdTBEMzcnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgQ09OSl9LQV9TU0EKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgbnVsbCwgbnVsbCwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmJhYTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9Pcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBPcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIE9SSVlBID0gbmV3IExvY2FsZSgib3IiLCAiSU4iKTsKKworICAgIHB1YmxpYyBPcml5YUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihPUklZQSwgIk9yaXlhIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBqb2luV2l0aE51a3RhOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBudWt0YUZvcm07CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQjIwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGMDEnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAyJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwNCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBCMUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDUnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQjBCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEI1RicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBCNjYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQjY3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEI2OCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBCNjknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQjZBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEI2QicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBCNkMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQjZEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEI2RScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBCNkYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQjFCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEIxQScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBCMzcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQjQzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nIChEZXZhbmFnYXJpIGRhbmRhKQorICAgICAgICAvKiAzRiAqLyAnXHUwQjJGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBCMTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHVGRkZGJywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MEIyMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBCMDUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwQjA2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEIwNycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBCMDknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwQjJCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEIxOCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdUZGRkYnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwQjE2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MEIyNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBCMzYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwQjMzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MEIyNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBCMUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwQjE0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEIwOCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBCMEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwQjBBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEIxOScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwQjEwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1MEIwMScsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBCMkQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHVGRkZGJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MEIyMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHUwQjNDJywgICAvLyAnXScKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMycsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBCMDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHVGRkZGJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MEI0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBCMkMnLCAgIC8vICdiJyAodmEsIGJ1dCBubyBVbmljb2RlIGNvZGUgcG9pbnQsIHVzZWQgYmEgaW5zdGVhZCkKKyAgICAgICAgLyogNjMgKi8gJ1x1MEIyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBCNEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQjNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEIzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBCNDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQjJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEIxNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBCMzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQjE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEIyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBCMzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQjMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEIyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBCMUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQjRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEI0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBCNDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQjQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEIzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBCMjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQjQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEIwMicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBCMkMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHVGRkZGJywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEIyMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQjFFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1RkZGRicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEI0RCcsICdcdTBCMzAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwQjMwJywgJ1x1MEI0RCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MEIxQycsICdcdTBCNEQnLCAnXHUwQjFFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTBCMjQnLCAnXHUwQjREJywgJ1x1MEIzMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEIxNScsICdcdTBCNEQnLCAnXHUwQjM3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwQjM2JywgJ1x1MEI0RCcsICdcdTBCMzAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAvLyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgYXMgZGVmaW5lZCBpbiBJU0NJSTkxCisgICAgICAgIGNoYXIgTEVUVEVSX0kgICAgICAgICAgICAgID0gJ1x1MEIwNyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0lJICAgICAgICAgICAgID0gJ1x1MEIwOCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUiAgICAgID0gJ1x1MEIwQic7CisgICAgICAgIGNoYXIgTEVUVEVSX0REQSAgICAgICAgICAgID0gJ1x1MEIyMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0RESEEgICAgICAgICAgID0gJ1x1MEIyMic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JICAgICAgICAgID0gJ1x1MEIzRic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JSSAgICAgICAgID0gJ1x1MEI0MCc7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGFib3ZlIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEuIFRoZXNlCisgICAgICAgIC8vIGFyZSBkZWZpbmVkIGluIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2Ugb3JkZXIuCisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTCAgICAgID0gJ1x1MEIwQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTEwgICAgID0gJ1x1MEI2MSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUlIgICAgID0gJ1x1MEI2MCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JSQSAgICAgICAgICAgID0gJ1x1MEI1Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JIQSAgICAgICAgICAgID0gJ1x1MEI1RCc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0wgID0gJ1x1MEI2Mic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0xMID0gJ1x1MEI2Myc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfVk9DQUxJQ19SICwKKyAgICAgICAgTEVUVEVSX0ksCisgICAgICAgIExFVFRFUl9JSSwKKyAgICAgICAgTEVUVEVSX0REQSwKKyAgICAgICAgTEVUVEVSX0RESEEsCisgICAgICAgIFZPV0VMX1NJR05fSSwKKyAgICAgICAgVk9XRUxfU0lHTl9JSQorICAgICAgICB9OworICAgIAorICAgICAgICBudWt0YUZvcm0gPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUlIsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0wsCisgICAgICAgIExFVFRFUl9WT0NBTElDX0xMLAorICAgICAgICBMRVRURVJfUlJBLAorICAgICAgICBMRVRURVJfUkhBLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0xMCisgICAgICAgIH07CisgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmYTEyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBUQU1JTCA9IG5ldyBMb2NhbGUoInRhIiwgIklOIik7CisKKyAgICBwdWJsaWMgVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoVEFNSUwsICJUYW1pbCIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHVGRkZGJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkZGRicsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRkZGJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBCOUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDEnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHVGRkZGJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEJBRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBCRTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQkU3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEJFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBCRTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQkVBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEJFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBCRUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQkVEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEJFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBCRUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHVGRkZGJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEI5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBCQjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHVGRkZGJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQjkzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1MEJCNCcsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBCQTMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQjg1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEI4NicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBCODcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQjg5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1RkZGRicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdUZGRkYnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwQkIxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1RkZGRicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdUZGRkYnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHVGRkZGJywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEJCMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdUZGRkYnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHVGRkZGJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEI5NCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBCODgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQjhGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEI4QScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBCOTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHUwQkE5JywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEI5MCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdUZGRkYnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHVGRkZGJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEI4RScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdUZGRkYnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1RkZGRicsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGRkYnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQjgzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MEJDQScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBCQ0InLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQkI1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEJBRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBCQ0QnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQkJFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEJCRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBCQzEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQkFBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1RkZGRicsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBCQjAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQjk1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEJBNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBCQjgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQkIyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1RkZGRicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBCOUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQkNDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEJDMCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBCQzcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQkMyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEJCOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBCQTgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQkM4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEI4MicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdUZGRkYnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHUwQkM2JywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1RkZGRicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQjlFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1MEI5MicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwQjk1JywgJ1x1MEJDRCcsICdcdTBCQjcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU1NBX1JBID0geydcdTBCQjcnLCAnXHUwQkNEJywgJ1x1MEJCMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgQ09OSl9LQV9TU0EsIENPTkpfU1NBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvVGVsdWd1SW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxZjI2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBURUxVR1UgPSBuZXcgTG9jYWxlKCJ0ZSIsICJJTiIpOworCisgICAgcHVibGljIFRlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihURUxVR1UsICJUZWx1Z3UiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQzIwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAxJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwMycsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBDMUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDQnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQzBCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEMyRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBDNjYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQzY3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEM2OCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBDNjknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQzZBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEM2QicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBDNkMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQzZEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEM2RScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBDNkYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQzFCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEMxQScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBDMzcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQzQzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSAtIG5vdCBzaG93biBvbiBJTlNDUklQVCBjaGFydCkKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQzEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBDMjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQzA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEMwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBDMDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQzA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEMyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBDMTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwQzMxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEMxNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBDMjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQzM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEMzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBDMjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQzFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEMxNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBDMDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQzBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEMwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBDMTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEMxMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBDMDEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQzJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEMwRScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBDMjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1RkZGRicsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDInLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQzAzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MEM0QScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBDNEInLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQzM1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEMyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBDNEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQzNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEMzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBDNDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQzJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEMxNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBDMzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQzE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEMyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBDMzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQzMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEMyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBDMUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQzRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEM0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBDNDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQzQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEMzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBDMjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQzQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEMwMicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTBDMkMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHUwQzQ2JywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MEMyMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwQzFFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1MEMxMicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MEM0RCcsICdcdTBDMzAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfSkFfTllBID0geydcdTBDMUMnLCAnXHUwQzREJywgJ1x1MEMxRSd9OworICAgICAgICBjaGFyW10gQ09OSl9UQV9SQSA9IHsnXHUwQzI0JywgJ1x1MEM0RCcsICdcdTBDMzAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfS0FfU1NBID0geydcdTBDMTUnLCAnXHUwQzREJywgJ1x1MEMzNyd9OworICAgICAgICBjaGFyW10gQ09OSl9TSEFfUkEgPSB7J1x1MEMzNicsICdcdTBDNEQnLCAnXHUwQzMwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIsIENPTkpfSkFfTllBLCBDT05KX1RBX1JBLCBDT05KX0tBX1NTQSwgQ09OSl9TSEFfUkEKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBudWxsLCBudWxsLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNWNjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL21hbmlmZXN0LnN0dWIKQEAgLTAsMCArMSwxNCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCisKK05hbWU6IGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYworU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIEluZGljIElNRQorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAxLjAKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQk0KK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgSW5kaWMgSU1FCitJbXBsZW1lbnRhdGlvbi1WZXJzaW9uOiAxLjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0V4dGVuc2lvbi1OYW1lOiBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFlNWIxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvc2VydmljZXMvamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcgpAQCAtMCwwICsxLDkgQEAKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuRGV2YW5hZ2FyaUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkd1amFyYXRpSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5LYW5uYWRhSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuTWFsYXlhbGFtSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5UYW1pbElucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLlRlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZmE0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMCBAQAorIworIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMKKyMgRGVmYXVsdCBtZXNzYWdlcyBmb3IgdGhlIElDVSB0cmFuc2xpdGVyYXRvciBpbnB1dCBtZXRob2QuCisjCisKK25hbWU9SUNVIFRyYW5zbGl0ZXJhdG9yCit0aXRsZT1JQ1UgVHJhbnNsaXRlcmF0b3IgSW5wdXQgTWV0aG9kCitzdGFydD1QbGVhc2Ugd2FpdCwgbG9hZGluZyB0cmFuc2xpdGVyYXRvcnMKK2FjdGl2ZUVycm9yPURpc3BhdGNoIG1ldGhvZCBjYWxsZWQgd2hpbGUgdGhlIElNRSB3YXMgaW5hY3RpdmUKK2Rpc3Bvc2VkRXJyb3I9RGlzcGF0Y2ggY2FsbGVkIGFmdGVyIElNRSB3YXMgZGlzcG9zZWQKK2lucHV0RXJyb3I9RGlzcGF0Y2ggY2FsbGVkIHdpdGhvdXQgYW4gSW5wdXRFdmVudAorYWN0aXZhdGVFcnJvcj1JTUUgaXMgYWxyZWFkeSBhY3RpdmUKK2RlYWN0aXZhdGVFcnJvcj1JTUUgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZAoraGlkZUVycm9yPUNhbm5vdCBoaWRlIElNRSB3aGlsZSBhY3RpdmUKK2Rpc3Bvc2VFcnJvcj1DYW5ub3QgZGlzcG9zZSBJTUUgd2hpbGUgYWN0aXZlCittdWx0aXBsZURpc3Bvc2VFcnJvcj1JTUUgaXMgYWxyZWFkeSBkaXNwb3NlZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlNWJmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5qYXZhCkBAIC0wLDAgKzEsNjkwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0LkFXVEV2ZW50OworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CitpbXBvcnQgamF2YS5hd3QuV2luZG93OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LklucHV0RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSW5wdXRNZXRob2RFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRIaXRJbmZvOworaW1wb3J0IGphdmEuYXd0LmltLklucHV0TWV0aG9kSGlnaGxpZ2h0OworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2RDb250ZXh0OworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkU3RyaW5nOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgamF2YXguc3dpbmcuSkNvbWJvQm94OworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGlzdDsKK2ltcG9ydCBqYXZheC5zd2luZy5MaXN0Q2VsbFJlbmRlcmVyOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QgaW1wbGVtZW50cyBJbnB1dE1ldGhvZCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHVzZXNBdHRhY2hlZElNRSgpIHsKKyAgICAvLyB3ZSdyZSBpbiB0aGUgZXh0IGRpcmVjdG9yeSBzbyBwZXJtaXNzaW9ucyBhcmUgbm90IGFuIGlzc3VlCisgICAgU3RyaW5nIG9zID0gU3lzdGVtLmdldFByb3BlcnR5KCJvcy5uYW1lIik7CisgICAgaWYgKG9zICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIG9zLmluZGV4T2YoIldpbmRvd3MiKSA9PSAtMTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIHRydWUgaWYgU29sYXJpcyBzdHlsZTsgZmFsc2UgaWYgUEMgc3R5bGUsIGFzc3VtZSBBcHBsZSB1c2VzIFBDIHN0eWxlIGZvciBub3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGF0dGFjaGVkU3RhdHVzV2luZG93ID0gdXNlc0F0dGFjaGVkSU1FKCk7CisKKyAgICAvLyB0aGUgc2hhcmVkIHN0YXR1cyB3aW5kb3cKKyAgICBwcml2YXRlIHN0YXRpYyBXaW5kb3cgc3RhdHVzV2luZG93OworCisgICAgLy8gY3VycmVudCBvciBsYXN0IG93bmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZCBzdGF0dXNXaW5kb3dPd25lcjsKKworICAgIC8vIGNhY2hlIGxvY2F0aW9uIGxpbWl0cyBmb3IgYXR0YWNoZWQKKyAgICBwcml2YXRlIHN0YXRpYyBSZWN0YW5nbGUgYXR0YWNoZWRMaW1pdHM7CisKKyAgICAvLyBjb252ZW5pZW5jZSBvZiBhY2Nlc3MsIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICBwcml2YXRlIHN0YXRpYyBKQ29tYm9Cb3ggY2hvaWNlczsKKworICAgIC8vCisgICAgLy8gcGVyLWluc3RhbmNlIHN0YXRlCisgICAgLy8KKworICAgIC8vIGlmIHdlJ3JlIGF0dGFjaGVkLCB0aGUgc3RhdHVzIHdpbmRvdyBmb2xsb3dzIHRoZSBjbGllbnQgd2luZG93CisgICAgcHJpdmF0ZSBQb2ludCBhdHRhY2hlZExvY2F0aW9uOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdpZDsKKworICAgIHByaXZhdGUgaW50IGlkID0gZ2lkKys7CisKKyAgICBJbnB1dE1ldGhvZENvbnRleHQgaW1jOworICAgIHByaXZhdGUgYm9vbGVhbiBlbmFibGVkID0gdHJ1ZTsKKworICAgIHByaXZhdGUgaW50IHNlbGVjdGVkSW5kZXggPSAtMTsgLy8gaW5kZXggaW4gSkNvbWJvQm94IGNvcnJlc3BvbmRpbmcgdG8gb3VyIHRyYW5zbGl0ZXJhdG9yCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRvcjsKKyAgICBwcml2YXRlIGludCBkZXNpcmVkQ29udGV4dDsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZVN0cmluZyByZXBsYWNlYWJsZVRleHQ7CisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleDsKKworICAgIC8vIGRlYnVnZ2luZworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gVFJBQ0VfRVZFTlQgPSBmYWxzZTsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFRSQUNFX01FU1NBR0VTID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBUUkFDRV9CVUZGRVIgPSBmYWxzZTsKKworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPGNvbnN0cnVjdG9yPiIpOworCisgICAgICAgIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVwbGFjZWFibGVUZXh0ID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKGJ1ZmZlcik7CisgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkdW1wU3RhdHVzKFN0cmluZyBtc2cpIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIigiICsgdGhpcyArICIpICIgKyBtc2cpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldElucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgIGluaXRTdGF0dXNXaW5kb3coY29udGV4dCk7CisKKyAgICBpbWMgPSBjb250ZXh0OworICAgIGltYy5lbmFibGVDbGllbnRXaW5kb3dOb3RpZmljYXRpb24odGhpcywgYXR0YWNoZWRTdGF0dXNXaW5kb3cpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFN0YXR1c1dpbmRvdyhJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dCkgeworICAgIGlmIChzdGF0dXNXaW5kb3cgPT0gbnVsbCkgeworICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgICAgICB0cnkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgICAgICAgICAgdGl0bGUgPSByYi5nZXRTdHJpbmcoInRpdGxlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG0pIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvciByZXNvdXJjZXMgbWlzc2luZzogIiArIG0pOworICAgICAgICAgICAgICAgIHRpdGxlID0gIlRyYW5zbGl0ZXJhdG9yIElucHV0IE1ldGhvZCI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFdpbmRvdyBzdyA9IGNvbnRleHQuY3JlYXRlSW5wdXRNZXRob2RXaW5kb3codGl0bGUsIGZhbHNlKTsKKworICAgICAgICAvLyBnZXQgYWxsIHRoZSBJQ1UgVHJhbnNsaXRlcmF0b3JzCisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgVHJlZVNldCB0eXBlcyA9IG5ldyBUcmVlU2V0KG5ldyBMYWJlbENvbXBhcmF0b3IoKSk7CisKKyAgICAgICAgd2hpbGUoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgIFN0cmluZyBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpOworICAgICAgICBKTGFiZWwgbGFiZWwgPSBuZXcgSkxhYmVsKG5hbWUpOworICAgICAgICBsYWJlbC5zZXROYW1lKGlkKTsKKyAgICAgICAgdHlwZXMuYWRkKGxhYmVsKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgdHJhbnNsaXRlcmF0b3JzIHRvIHRoZSBjb21ibyBib3gKKworICAgICAgICBjaG9pY2VzID0gbmV3IEpDb21ib0JveCh0eXBlcy50b0FycmF5KCkpOworICAgICAgIAorICAgICAgICBjaG9pY2VzLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgY2hvaWNlcy5zZXRTZWxlY3RlZEluZGV4KDApOworICAgICAgICBjaG9pY2VzLnNldFJlbmRlcmVyKG5ldyBOYW1lUmVuZGVyZXIoKSk7CisgICAgICAgIGNob2ljZXMuc2V0QWN0aW9uQ29tbWFuZCgidHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgCisgICAgICAgIGNob2ljZXMuYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChzdGF0dXNXaW5kb3dPd25lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzV2luZG93T3duZXIuc3RhdHVzV2luZG93QWN0aW9uKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBzdy5hZGQoY2hvaWNlcyk7CisgICAgICAgIHN3LnBhY2soKTsKKworICAgICAgICBEaW1lbnNpb24gc2QgPSBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U2NyZWVuU2l6ZSgpOworICAgICAgICBEaW1lbnNpb24gd2QgPSBzdy5nZXRTaXplKCk7CisgICAgICAgIGlmIChhdHRhY2hlZFN0YXR1c1dpbmRvdykgeworICAgICAgICBhdHRhY2hlZExpbWl0cyA9IG5ldyBSZWN0YW5nbGUoMCwgMCwgc2Qud2lkdGggLSB3ZC53aWR0aCwgc2QuaGVpZ2h0IC0gd2QuaGVpZ2h0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgc3cuc2V0TG9jYXRpb24oc2Qud2lkdGggLSB3ZC53aWR0aCwKKyAgICAgICAgICAgICAgICAgICBzZC5oZWlnaHQgLSB3ZC5oZWlnaHQgLSAyNSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN5bmNocm9uaXplZCAoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBpZiAoc3RhdHVzV2luZG93ID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdyA9IHN3OworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHN0YXR1c1dpbmRvd0FjdGlvbihBY3Rpb25FdmVudCBlKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+PnN0YXR1cyB3aW5kb3cgYWN0aW9uIik7CisgICAgSkNvbWJvQm94IGNiID0gKEpDb21ib0JveCllLmdldFNvdXJjZSgpOworICAgIGludCBzaSA9IGNiLmdldFNlbGVjdGVkSW5kZXgoKTsKKyAgICBpZiAoc2kgIT0gc2VsZWN0ZWRJbmRleCkgeyAvLyBvdGhlcndpc2UsIHdlIGRvbid0IG5lZWQgdG8gY2hhbmdlCisgICAgICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygic3RhdHVzIHdpbmRvdyBhY3Rpb24gb2xkSW5kZXg6ICIgKyBzZWxlY3RlZEluZGV4ICsgIiBuZXdJbmRleDogIiArIHNpKTsKKyAgICAgICAgCisgICAgICAgIHNlbGVjdGVkSW5kZXggPSBzaTsKKworICAgICAgICBKTGFiZWwgaXRlbSA9IChKTGFiZWwpY2IuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gY29uc3RydWN0IHRoZSBhY3R1YWwgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgLy8gY29tbWl0IGFueSB0ZXh0IHRoYXQgbWF5IGJlIHByZXNlbnQgZmlyc3QKKyAgICAgICAgY29tbWl0QWxsKCk7CisKKyAgICAgICAgdHJhbnNsaXRlcmF0b3IgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpdGVtLmdldE5hbWUoKSk7CisgICAgICAgIGRlc2lyZWRDb250ZXh0ID0gdHJhbnNsaXRlcmF0b3IuZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTsKKworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8c3RhdHVzIHdpbmRvdyBhY3Rpb24iKTsKKyAgICB9CisKKyAgICAvLyBqYXZhIGhhcyBubyBwaW4gdG8gcmVjdGFuZ2xlIGZ1bmN0aW9uPworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcGluKFBvaW50IHAsIFJlY3RhbmdsZSByKSB7CisgICAgaWYgKHAueCA8IHIueCkgeyBwLnggPSByLng7IH0gZWxzZSBpZiAocC54ID4gci54ICsgci53aWR0aCkgeyBwLnggPSByLnggKyByLndpZHRoOyB9CisgICAgaWYgKHAueSA8IHIueSkgeyBwLnkgPSByLnk7IH0gZWxzZSBpZiAocC55ID4gci55ICsgci5oZWlnaHQpIHsgcC55ID0gci55ICsgci5oZWlnaHQ7IH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDbGllbnRXaW5kb3dDaGFuZ2UoUmVjdGFuZ2xlIGxvY2F0aW9uKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+Pm5vdGlmeSBjbGllbnQgd2luZG93IGNoYW5nZTogIiArIGxvY2F0aW9uKTsKKyAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvd093bmVyID09IHRoaXMpIHsKKyAgICAgICAgaWYgKGxvY2F0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF0dGFjaGVkTG9jYXRpb24gPSBuZXcgUG9pbnQobG9jYXRpb24ueCwgbG9jYXRpb24ueSArIGxvY2F0aW9uLmhlaWdodCk7CisgICAgICAgICAgICBwaW4oYXR0YWNoZWRMb2NhdGlvbiwgYXR0YWNoZWRMaW1pdHMpOworICAgICAgICAgICAgc3RhdHVzV2luZG93LnNldExvY2F0aW9uKGF0dGFjaGVkTG9jYXRpb24pOworICAgICAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8bm90aWZ5IGNsaWVudCB3aW5kb3cgY2hhbmdlOiAiICsgbG9jYXRpb24pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGl2YXRlKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPj5hY3RpdmF0ZSIpOworCisgICAgICAgIHN5bmNocm9uaXplZCAoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBpZiAoc3RhdHVzV2luZG93T3duZXIgIT0gdGhpcykgeworICAgICAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoInNldFN0YXR1c1dpbmRvd093bmVyIGZyb206ICIgKyBzdGF0dXNXaW5kb3dPd25lciArICIgdG86ICIgKyB0aGlzKTsKKworICAgICAgICBzdGF0dXNXaW5kb3dPd25lciA9IHRoaXM7CisgICAgICAgIGlmIChhdHRhY2hlZFN0YXR1c1dpbmRvdyAmJiBhdHRhY2hlZExvY2F0aW9uICE9IG51bGwpIHsgLy8gd2lsbCBiZSBudWxsIGJlZm9yZSBmaXJzdCBjaGFuZ2Ugbm90aWZpY2F0aW9uCisgICAgICAgICAgICBzdGF0dXNXaW5kb3cuc2V0TG9jYXRpb24oYXR0YWNoZWRMb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgY2hvaWNlcy5zZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPT0gLTEgPyBjaG9pY2VzLmdldFNlbGVjdGVkSW5kZXgoKSA6IHNlbGVjdGVkSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgY2hvaWNlcy5zZXRGb3JlZ3JvdW5kKENvbG9yLkJMQUNLKTsKKyAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUodHJ1ZSk7CisgICAgfQorICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPDxhY3RpdmF0ZSIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkZWFjdGl2YXRlKGJvb2xlYW4gaXNUZW1wb3JhcnkpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIj4+ZGVhY3RpdmF0ZSIgKyAoaXNUZW1wb3JhcnkgPyAiICh0ZW1wb3JhcnkpIiA6ICIiKSk7CisgICAgaWYgKCFpc1RlbXBvcmFyeSkgeworICAgICAgICBzeW5jaHJvbml6ZWQoVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5jbGFzcykgeworICAgICAgICBjaG9pY2VzLnNldEZvcmVncm91bmQoQ29sb3IuTElHSFRfR1JBWSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI8PGRlYWN0aXZhdGUiICsgKGlzVGVtcG9yYXJ5ID8gIiAodGVtcG9yYXJ5KSIgOiAiIikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBoaWRlV2luZG93cygpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIj4+aGlkZVdpbmRvd3MiKTsKKyAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvd093bmVyID09IHRoaXMpIHsKKyAgICAgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCJoaWRpbmciKTsKKyAgICAgICAgc3RhdHVzV2luZG93LnNldFZpc2libGUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPDxoaWRlV2luZG93cyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q2hhcmFjdGVyU3Vic2V0cyhDaGFyYWN0ZXIuU3Vic2V0W10gc3Vic2V0cykgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlY29udmVydCgpIHsKKyAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVOb3RpZnkoKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCIqKnJlbW92ZU5vdGlmeSIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBlbmRDb21wb3NpdGlvbigpIHsKKyAgICBjb21taXRBbGwoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiKipkaXNwb3NlIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBPYmplY3QgZ2V0Q29udHJvbE9iamVjdCgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENvbXBvc2l0aW9uRW5hYmxlZChib29sZWFuIGVuYWJsZSkgeworICAgIGVuYWJsZWQgPSBlbmFibGU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNDb21wb3NpdGlvbkVuYWJsZWQoKSB7CisgICAgcmV0dXJuIGVuYWJsZWQ7CisgICAgfQorCisgICAgLy8gZGVidWdnaW5nCisgICAgcHJpdmF0ZSBTdHJpbmcgZXZlbnRJbmZvKEFXVEV2ZW50IGV2ZW50KSB7CisgICAgU3RyaW5nIGluZm8gPSBldmVudC50b1N0cmluZygpOworICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50IGluZGV4MSA9IGluZm8uaW5kZXhPZigiWyIpOworICAgIGludCBpbmRleDIgPSBpbmZvLmluZGV4T2YoIiwiLCBpbmRleDEpOworICAgIGJ1Zi5hcHBlbmQoaW5mby5zdWJzdHJpbmcoaW5kZXgxKzEsIGluZGV4MikpOworCisgICAgaW5kZXgxID0gaW5mby5pbmRleE9mKCJdIG9uICIpOworICAgIGluZGV4MiA9IGluZm8uaW5kZXhPZigiWyIsIGluZGV4MSk7CisgICAgaWYgKGluZGV4MiAhPSAtMSkgeworICAgICAgICBpbnQgaW5kZXgzID0gaW5mby5sYXN0SW5kZXhPZigiLiIsIGluZGV4Mik7CisgICAgICAgIGlmIChpbmRleDMgPCBpbmRleDEgKyA0KSB7CisgICAgICAgIGluZGV4MyA9IGluZGV4MSArIDQ7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiIG9uICIpOworICAgICAgICBidWYuYXBwZW5kKGluZm8uc3Vic3RyaW5nKGluZGV4MysxLCBpbmRleDIpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRXZlbnQoQVdURXZlbnQgZXZlbnQpIHsKKyAgICBmaW5hbCBpbnQgTU9ESUZJRVJTID0gCisgICAgICAgIElucHV0RXZlbnQuQ1RSTF9NQVNLIHwgCisgICAgICAgIElucHV0RXZlbnQuTUVUQV9NQVNLIHwgCisgICAgICAgIElucHV0RXZlbnQuQUxUX01BU0sgfCAKKyAgICAgICAgSW5wdXRFdmVudC5BTFRfR1JBUEhfTUFTSzsKKworICAgIHN3aXRjaCAoZXZlbnQuZ2V0SUQoKSkgeworICAgIGNhc2UgTW91c2VFdmVudC5NT1VTRV9QUkVTU0VEOgorICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBpZiAoVFJBQ0VfRVZFTlQpIFN5c3RlbS5vdXQucHJpbnRsbigiVElNOiAiICsgZXZlbnRJbmZvKGV2ZW50KSk7CisgICAgICAgIC8vIHdlJ2xsIGdldCB0aGlzIGV2ZW4gaWYgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nLCBjYW4gd2UgcmVseSBvbiB0aGUgY29tcG9uZW50PworICAgICAgICAvLyBjb21taXRBbGwoKTsgLy8gZG9uJ3QgYWxsb3cgZXZlbiBjbGlja3Mgd2l0aGluIG91ciBvd24gZWRpdCBhcmVhCisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEtleUV2ZW50LktFWV9UWVBFRDogeworICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBLZXlFdmVudCBrZSA9IChLZXlFdmVudClldmVudDsKKyAgICAgICAgaWYgKFRSQUNFX0VWRU5UKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRJTTogIiArIGV2ZW50SW5mbyhrZSkpOworICAgICAgICBpZiAoKGtlLmdldE1vZGlmaWVycygpICYgTU9ESUZJRVJTKSAhPSAwKSB7CisgICAgICAgICAgICBjb21taXRBbGwoKTsgLy8gYXNzdW1lIGEgY29tbWFuZCwgbGV0IGl0IGdvIHRocm91Z2gKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVUeXBlZChrZS5nZXRLZXlDaGFyKCkpKSB7CisgICAgICAgICAgICBrZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gYnJlYWs7CisKKyAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEOiB7CisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgIEtleUV2ZW50IGtlID0gKEtleUV2ZW50KWV2ZW50OworICAgICAgICBpZiAoVFJBQ0VfRVZFTlQpIFN5c3RlbS5vdXQucHJpbnRsbigiVElNOiAiICsgZXZlbnRJbmZvKGtlKSk7CisgICAgICAgIGlmIChoYW5kbGVQcmVzc2VkKGtlLmdldEtleUNvZGUoKSkpIHsKKyAgICAgICAgICAgIGtlLmNvbnN1bWUoKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfSBicmVhazsKKworICAgIGNhc2UgS2V5RXZlbnQuS0VZX1JFTEVBU0VEOiB7CisgICAgICAgIC8vIHRoaXMgd29uJ3QgYXV0b3JlcGVhdCwgd2hpY2ggaXMgYmV0dGVyIGZvciB0b2dnbGUgYWN0aW9ucworICAgICAgICBLZXlFdmVudCBrZSA9IChLZXlFdmVudClldmVudDsKKyAgICAgICAgaWYgKGtlLmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19TUEFDRSAmJiBrZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgc2V0Q29tcG9zaXRpb25FbmFibGVkKCFlbmFibGVkKTsKKyAgICAgICAgfQorICAgIH0gYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorCisgICAgLyoqIFdpcGUgY2xlYW4gKi8KKyAgICBwcml2YXRlIHZvaWQgcmVzZXQoKSB7CisgICAgYnVmZmVyLmRlbGV0ZSgwLCBidWZmZXIubGVuZ3RoKCkpOworICAgIGluZGV4LmNvbnRleHRTdGFydCA9IGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQgPSAwOworICAgIH0KKworICAgIC8vIGNvbW1pdHRlZH1jb250ZXh0LWNvbXBvc2VkfGNvbXBvc2VkCisgICAgLy8gICAgICAgICAgXiAgICAgICBeICAgICAgICBeCisgICAgLy8gICAgICAgICBjYyAgICAgc3RhcnQgICAgY3R4TGltCisKKyAgICBwcml2YXRlIHZvaWQgdHJhY2VCdWZmZXIoU3RyaW5nIG1zZywgaW50IGNjLCBpbnQgb2ZmKSB7CisgICAgaWYgKFRSQUNFX0JVRkZFUikgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKG1zZyArICI6ICciICsgYnVmZmVyLnN1YnN0cmluZygwLCBjYykgKyAnfScgKworICAgICAgICAgICAgICAgYnVmZmVyLnN1YnN0cmluZyhjYywgaW5kZXguc3RhcnQpICsgJy0nICsKKyAgICAgICAgICAgICAgIGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXguc3RhcnQsIGluZGV4LmNvbnRleHRMaW1pdCkgKyAnfCcgKworICAgICAgICAgICAgICAgYnVmZmVyLnN1YnN0cmluZyhpbmRleC5jb250ZXh0TGltaXQpICsgJ1wnJykpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoYm9vbGVhbiBmbHVzaCkgeworICAgIGludCBsZW4gPSBidWZmZXIubGVuZ3RoKCk7CisgICAgU3RyaW5nIHRleHQgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICBBdHRyaWJ1dGVkU3RyaW5nIGFzID0gbmV3IEF0dHJpYnV0ZWRTdHJpbmcodGV4dCk7CisKKyAgICBpbnQgY2MsIG9mZjsKKyAgICBpZiAoZmx1c2gpIHsKKyAgICAgICAgb2ZmID0gaW5kZXguY29udGV4dExpbWl0IC0gbGVuOyAvLyB3aWxsIGJlIG5lZ2F0aXZlCisgICAgICAgIGNjID0gaW5kZXguc3RhcnQgPSBpbmRleC5saW1pdCA9IGluZGV4LmNvbnRleHRMaW1pdCA9IGxlbjsKKyAgICB9IGVsc2UgeworICAgICAgICBjYyA9IGluZGV4LnN0YXJ0ID4gZGVzaXJlZENvbnRleHQgPyBpbmRleC5zdGFydCAtIGRlc2lyZWRDb250ZXh0IDogMDsKKyAgICAgICAgb2ZmID0gaW5kZXguY29udGV4dExpbWl0IC0gY2M7CisgICAgfQorCisgICAgaWYgKGluZGV4LnN0YXJ0IDwgbGVuKSB7CisgICAgICAgIGFzLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9ISUdITElHSFQsIAorICAgICAgICAgICAgICAgIElucHV0TWV0aG9kSGlnaGxpZ2h0LlNFTEVDVEVEX1JBV19URVhUX0hJR0hMSUdIVCwKKyAgICAgICAgICAgICAgICBpbmRleC5zdGFydCwgbGVuKTsKKyAgICB9CisgICAgCisgICAgaW1jLmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LklOUFVUX01FVEhPRF9URVhUX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICBhcy5nZXRJdGVyYXRvcigpLAorICAgICAgICAgICAgICAgICAgICAgY2MsCisgICAgICAgICAgICAgICAgICAgICBUZXh0SGl0SW5mby5sZWFkaW5nKG9mZiksCisgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKworICAgIHRyYWNlQnVmZmVyKCJ1cGRhdGUiLCBjYywgb2ZmKTsKKworICAgIGlmIChjYyA+IDApIHsKKyAgICAgICAgYnVmZmVyLmRlbGV0ZSgwLCBjYyk7CisgICAgICAgIGluZGV4LnN0YXJ0IC09IGNjOworICAgICAgICBpbmRleC5saW1pdCAtPSBjYzsKKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0IC09IGNjOworICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlQ2FyZXQoKSB7CisgICAgaW1jLmRpc3BhdGNoSW5wdXRNZXRob2RFdmVudChJbnB1dE1ldGhvZEV2ZW50LkNBUkVUX1BPU0lUSU9OX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgIFRleHRIaXRJbmZvLmxlYWRpbmcoaW5kZXguY29udGV4dExpbWl0KSwKKyAgICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgIHRyYWNlQnVmZmVyKCJ1cGRhdGVDYXJldCIsIDAsIGluZGV4LmNvbnRleHRMaW1pdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjYXJldFRvU3RhcnQoKSB7CisgICAgaWYgKGluZGV4LmNvbnRleHRMaW1pdCA+IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gaW5kZXguc3RhcnQ7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjYXJldFRvTGltaXQoKSB7CisgICAgaWYgKGluZGV4LmNvbnRleHRMaW1pdCA8IGJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgdXBkYXRlQ2FyZXQoKTsKKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNhcmV0VG93YXJkc1N0YXJ0KCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA+IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIC0tYnVmcG9zOworICAgICAgICBpZiAoYnVmcG9zID4gaW5kZXguc3RhcnQgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcykpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQoYnVmcG9zLTEpKSkgeworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgfQorICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGJ1ZnBvczsKKyAgICAgICAgdXBkYXRlQ2FyZXQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBjb21taXRBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2FyZXRUb3dhcmRzTGltaXQoKSB7CisgICAgaW50IGJ1ZnBvcyA9IGluZGV4LmNvbnRleHRMaW1pdDsKKyAgICBpZiAoYnVmcG9zIDwgYnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICsrYnVmcG9zOworICAgICAgICBpZiAoYnVmcG9zIDwgYnVmZmVyLmxlbmd0aCgpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChidWZwb3MpKSAmJgorICAgICAgICBVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcy0xKSkpIHsKKyAgICAgICAgKytidWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZwb3M7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gY29tbWl0QWxsKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkJhY2tzcGFjZSgpIHsKKyAgICByZXR1cm4gaW5kZXguY29udGV4dExpbWl0ID4gMDsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gYmFja3NwYWNlKCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA+IDApIHsKKyAgICAgICAgaW50IGxpbWl0ID0gYnVmcG9zOworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgaWYgKGJ1ZnBvcyA+IDAgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcykpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQoYnVmcG9zLTEpKSkgeworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmcG9zIDwgaW5kZXguc3RhcnQpIHsKKyAgICAgICAgaW5kZXguc3RhcnQgPSBidWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZwb3M7CisgICAgICAgIGRvRGVsZXRlKGJ1ZnBvcywgbGltaXQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjYW5EZWxldGUoKSB7CisgICAgcmV0dXJuIGluZGV4LmNvbnRleHRMaW1pdCA8IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZGVsZXRlKCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA8IGJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICBpbnQgbGltaXQgPSBidWZwb3MgKyAxOworICAgICAgICBpZiAobGltaXQgPCBidWZmZXIubGVuZ3RoKCkgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0hpZ2hTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChsaW1pdC0xKSkgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGxpbWl0KSkpIHsKKyAgICAgICAgKytsaW1pdDsKKyAgICAgICAgfQorICAgICAgICBkb0RlbGV0ZShidWZwb3MsIGxpbWl0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9EZWxldGUoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICBidWZmZXIuZGVsZXRlKHN0YXJ0LCBsaW1pdCk7CisgICAgdXBkYXRlKGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY29tbWl0QWxsKCkgeworICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGJvb2xlYW4gYXRTdGFydCA9IGluZGV4LnN0YXJ0ID09IGluZGV4LmNvbnRleHRMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBkaWRDb252ZXJ0ID0gYnVmZmVyLmxlbmd0aCgpID4gaW5kZXguc3RhcnQ7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gYnVmZmVyLmxlbmd0aCgpOworICAgICAgICB0cmFuc2xpdGVyYXRvci5maW5pc2hUcmFuc2xpdGVyYXRpb24ocmVwbGFjZWFibGVUZXh0LCBpbmRleCk7CisgICAgICAgIGlmIChhdFN0YXJ0KSB7CisgICAgICAgIGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQgPSBpbmRleC5jb250ZXh0TGltaXQgPSAwOworICAgICAgICB9CisgICAgICAgIHVwZGF0ZSh0cnVlKTsKKyAgICAgICAgcmV0dXJuIGRpZENvbnZlcnQ7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJBbGwoKSB7CisgICAgaW50IGxlbiA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICBpZiAobGVuID4gMCkgeworICAgICAgICBpZiAobGVuID4gaW5kZXguc3RhcnQpIHsKKyAgICAgICAgYnVmZmVyLmRlbGV0ZShpbmRleC5zdGFydCwgbGVuKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGUodHJ1ZSk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpbnNlcnQoY2hhciBjKSB7CisgICAgdHJhbnNsaXRlcmF0b3IudHJhbnNsaXRlcmF0ZShyZXBsYWNlYWJsZVRleHQsIGluZGV4LCBjKTsKKyAgICB1cGRhdGUoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlZGl0aW5nKCkgeworICAgIHJldHVybiBidWZmZXIubGVuZ3RoKCkgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBiaWcgcHJvYmxlbSBpcyB0aGF0IGZyb20gcmVsZWFzZSB0byByZWxlYXNlIHN3aW5nIGNoYW5nZXMgaG93IGl0CisgICAgICogaGFuZGxlcyBzb21lIGNoYXJhY3RlcnMgbGlrZSB0YWIgYW5kIGJhY2tzcGFjZS4gIFNvbWV0aW1lcyBpdCBoYW5kbGVzCisgICAgICogdGhlbSBhcyBrZXlUeXBlZCBldmVudHMsIGFuZCBzb21ldGltZXMgaXQgaGFuZGxlcyB0aGVtIGFzIGtleVByZXNzZWQKKyAgICAgKiBldmVudHMuICBJZiB5b3Ugd2FudCB0byBhbGxvdyB0aGUgZXZlbnQgdG8gZ28gdGhyb3VnaCBzbyBzd2luZyBoYW5kbGVzCisgICAgICogaXQsIHlvdSBoYXZlIHRvIGFsbG93IG9uZSBvciB0aGUgb3RoZXIgdG8gZ28gdGhyb3VnaC4gIElmIHlvdSBkb24ndCB3YW50CisgICAgICogdGhlIGV2ZW50IHRvIGdvIHRocm91Z2ggc28geW91IGNhbiBoYW5kbGUgaXQsIHlvdSBoYXZlIHRvIHN0b3AgdGhlCisgICAgICogZXZlbnQgYm90aCBwbGFjZXMuCisgICAgICogQHJldHVybiB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgd2FzIGhhbmRsZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFuZGxlVHlwZWQoY2hhciBjaCkgeworICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSAnXGInOiBpZiAoZWRpdGluZygpKSByZXR1cm4gYmFja3NwYWNlKCk7IGJyZWFrOworICAgICAgICBjYXNlICdcdCc6IGlmIChlZGl0aW5nKCkpIHsgcmV0dXJuIGNvbW1pdEFsbCgpOyB9IGJyZWFrOworICAgICAgICBjYXNlICdcdTAwMWInOiBpZiAoZWRpdGluZygpKSB7IGNsZWFyQWxsKCk7IHJldHVybiB0cnVlOyB9IGJyZWFrOworICAgICAgICBjYXNlICdcdTAwN2YnOiBpZiAoZWRpdGluZygpKSByZXR1cm4gZGVsZXRlKCk7IGJyZWFrOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gaW5zZXJ0KGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIGtleVByZXNzZWQgZXZlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBoYW5kbGVQcmVzc2VkKGludCBjb2RlKSB7CisgICAgaWYgKGVuYWJsZWQgJiYgZWRpdGluZygpKSB7CisgICAgICAgIHN3aXRjaCAoY29kZSkgeworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1BBR0VfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfS1BfVVA6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfSE9NRToKKyAgICAgICAgY2FyZXRUb1N0YXJ0KCk7IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1BBR0VfRE9XTjoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0tQX0RPV046CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRU5EOgorICAgICAgICBjYXJldFRvTGltaXQoKTsgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19LUF9MRUZUOgorICAgICAgICByZXR1cm4gY2FyZXRUb3dhcmRzU3RhcnQoKTsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19LUF9SSUdIVDoKKyAgICAgICAgcmV0dXJuIGNhcmV0VG93YXJkc0xpbWl0KCk7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQkFDS19TUEFDRTogCisgICAgICAgIHJldHVybiBjYW5CYWNrc3BhY2UoKTsgLy8gdW5mb3J0dW5hdGVseSwgaW4gMS41IHN3aW5nIGhhbmRsZXMgdGhpcyBpbiBrZXlQcmVzc2VkIGluc3RlYWQgb2Yga2V5VHlwZWQKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6IAorICAgICAgICByZXR1cm4gY2FuRGVsZXRlKCk7IC8vIHRoaXMgdG9vPworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1RBQjoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTlRFUjoKKyAgICAgICAgcmV0dXJuIGNvbW1pdEFsbCgpOyAvLyBzbyB3ZSdsbCBuZXZlciBoYW5kbGUgVktfVEFCIGluIGtleVR5cGVkCisgICAgICAgIAorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1NISUZUOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0NPTlRST0w6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQUxUOgorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGlnbm9yZSB0aGVzZSB1bmxlc3MgYSBrZXkgdHlwZWQgZXZlbnQgZ2V0cyBnZW5lcmF0ZWQKKyAgICAgICAgZGVmYXVsdDogCisgICAgICAgIC8vIGJ5IGRlZmF1bHQsIGxldCBlZGl0b3IgaGFuZGxlIGl0LCBhbmQgd2UnbGwgYXNzdW1lIHRoYXQgaXQgd2lsbCB0ZWxsIHVzCisgICAgICAgIC8vIHRvIGVuZENvbXBvc2l0aW9uIGlmIGl0IGRvZXMgYW55dGhpbmcgZnVua3kgd2l0aCwgZS5nLiwgZnVuY3Rpb24ga2V5cy4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzID0geyAKKyAgICAgICAgImFsaWNlIiwgImJpbGwiLCAiY2FycmllIiwgImRvdWciLCAiZWxlbmEiLCAiZnJhbmsiLCAiZ2VydGllIiwgImhvd2llIiwgImluZ3JpZCIsICJqb2huIiAKKyAgICB9OworCisgICAgaWYgKGlkIDwgbmFtZXMubGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBuYW1lc1tpZF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG5hbWVzW2lkXSArICItIiArIChpZC9uYW1lcy5sZW5ndGgpOworICAgIH0KKyAgICB9Cit9CisKK2NsYXNzIE5hbWVSZW5kZXJlciBleHRlbmRzIEpMYWJlbCBpbXBsZW1lbnRzIExpc3RDZWxsUmVuZGVyZXIgeworCisgICAgcHVibGljIENvbXBvbmVudCBnZXRMaXN0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KAorICAgICAgICBKTGlzdCBsaXN0LAorICAgICAgICBPYmplY3QgdmFsdWUsCisgICAgICAgIGludCBpbmRleCwKKyAgICAgICAgYm9vbGVhbiBpc1NlbGVjdGVkLAorICAgICAgICBib29sZWFuIGNlbGxIYXNGb2N1cykgeworCisgICAgICAgIFN0cmluZyBzID0gKChKTGFiZWwpdmFsdWUpLmdldFRleHQoKTsKKyAgICAgICAgc2V0VGV4dChzKTsKKworICAgICAgICBpZiAoaXNTZWxlY3RlZCkgeworICAgICAgICAgICAgc2V0QmFja2dyb3VuZChsaXN0LmdldFNlbGVjdGlvbkJhY2tncm91bmQoKSk7CisgICAgICAgICAgICBzZXRGb3JlZ3JvdW5kKGxpc3QuZ2V0U2VsZWN0aW9uRm9yZWdyb3VuZCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldEJhY2tncm91bmQobGlzdC5nZXRCYWNrZ3JvdW5kKCkpOworICAgICAgICAgICAgc2V0Rm9yZWdyb3VuZChsaXN0LmdldEZvcmVncm91bmQoKSk7CisgICAgICAgIH0KKworICAgICAgICBzZXRFbmFibGVkKGxpc3QuaXNFbmFibGVkKCkpOworICAgICAgICBzZXRGb250KGxpc3QuZ2V0Rm9udCgpKTsKKyAgICAgICAgc2V0T3BhcXVlKHRydWUpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9CisKK2NsYXNzIExhYmVsQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3Qgb2JqMSwgT2JqZWN0IG9iajIpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICByZXR1cm4gY29sbGF0b3IuY29tcGFyZSgoKEpMYWJlbClvYmoxKS5nZXRUZXh0KCksICgoSkxhYmVsKW9iajIpLmdldFRleHQoKSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmoxKSB7CisgICAgICAgIHJldHVybiB0aGlzLmVxdWFscyhvYmoxKTsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNTc1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2Q7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyogVGhlIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2REZXNjcmlwdG9yIGNsYXNzIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBwYWNrYWdlCisqIGFzIGFuIGlucHV0IG1ldGhvZCBlZGl0b3IuCisqLworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZERlc2NyaXB0b3IgaW1wbGVtZW50cyBJbnB1dE1ldGhvZERlc2NyaXB0b3IgeworCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSByYiA9IG51bGw7CisKKyAgICAvKioKKyAgICAqIENyZWF0ZXMgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRSB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGxlZCBieSB0aGUKKyAgICAqIEpWTSB3aGVuIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUgaXMgc2VsZWN0ZWQgZnJvbSB0aGUgaW5wdXQgbWV0aG9kIGxpc3QuCisgICAgKgorICAgICogQHJldHVybiBJbnB1dE1ldGhvZCBUaGUgVHJhbnNsaXRlcmF0b3IgSU1FIG9iamVjdC4KKyAgICAqLworICAgIHB1YmxpYyBJbnB1dE1ldGhvZCBjcmVhdGVJbnB1dE1ldGhvZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gbmV3IFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QoKTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICogR2V0IHRoZSBsaXN0IG9mIGxvY2FsZXMgdGhhdCB0aGlzIElNRSBzdXBwb3J0cy4KKyAgICAqCisgICAgKiBAcmV0dXJuIExvY2FsZVtdIFRoaXMgd2lsbCBhbHdheXMgaGF2ZSBvbmUgbG9jYWxlLiBCeSBkZWZhdWx0CisgICAgKiAgICAgICAgICAgICAgICAgIHdlIGp1c3QgcmV0dXJuIHRoZSBjdXJyZW50IGxvY2FsZS4gVGhlcmVmb3JlCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUgd29ya3MgaW4gYWxsIGxvY2FsZXMuCisgICAgKi8KKyAgICAvLyB1c2UgdGhlIGN1cnJlbnQgYWN0aXZlIGxvY2FsZQorICAgIHB1YmxpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gbmV3IExvY2FsZVtdIHtMb2NhbGUuZ2V0RGVmYXVsdCgpfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRoZSBUcmFuc2xpdGVyYXRvciBJTUUgZG9lcyBub3Qgc3VwcG9ydCBkeW5hbWljIGxvY2FsZXMuIFRoZSBUcmFuc2xpdGVyYXRvcgorICAgICogSU1FJ3MgZnVuY3Rpb25hbGl0eSBkb2VzIG5vdCBkZXBlbmQgdXBvbiBhbnkgbG9jYWxlLgorICAgICoKKyAgICAqIEByZXR1cm4gYm9vbGVhbiBUaGlzIHdpbGwgYWx3YXlzIGJlIGZhbHNlLgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzRHluYW1pY0xvY2FsZUxpc3QoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIE9idGFpbiB0aGUgbG9jYWxpemVkIG5hbWUgb2YgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRQorICAgICoKKyAgICAqIEBwYXJhbSBpbnB1dExvY2FsZSB0aGUgcmVxdWVzdGVkIGlucHV0IG1ldGhvZCBsb2NhbGUKKyAgICAqIEBwYXJhbSBkaXNwbGF5TGFuZ3VhZ2UgVGhlIHJlcXVlc3RlZCB0cmFuc2xhdGlvbiBvZiB0aGUgVHJhbnNsaXRlcmF0b3IgSU1FCisgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbmFtZSBmb3IgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJbnB1dE1ldGhvZERpc3BsYXlOYW1lKExvY2FsZSBpbnB1dExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGRpc3BsYXlMYW5ndWFnZSkgeworICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJiID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3IiLCBkaXNwbGF5TGFuZ3VhZ2UpOworICAgICAgICAgICAgbmFtZSA9IHJiLmdldFN0cmluZygibmFtZSIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbSkgeworICAgICAgICAgICAgLy8gdXNlIGEgaGFyZGNvZGVkIHZhbHVlCisgICAgICAgICAgICBuYW1lID0gIlRyYW5zbGl0ZXJhdG9yIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgaWNvbiBmb3IgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICoKKyAgICAqIEBwYXJhbSBpbnB1dExvY2FsZSAoVGhpcyBpcyBpZ25vcmVkKS4KKyAgICAqCisgICAgKiBAcmV0dXJuIEltYWdlIFRoaXMgd2lsbCBhbHdheXMgYmUgbnVsbC4KKyAgICAqLworICAgIHB1YmxpYyBJbWFnZSBnZXRJbnB1dE1ldGhvZEljb24oTG9jYWxlIGlucHV0TG9jYWxlKSB7CisgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdlMzE5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvbWFuaWZlc3Quc3R1YgpAQCAtMCwwICsxLDExIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NyZWF0ZWQtQnk6IDEuMCAoSUJNIENvcnBvcmF0aW9uKQorRXh0ZW5zaW9uLU5hbWU6IGNvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdAorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDEuMAorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBUcmFuc2xpdGVyYXRvciBJTUUKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQk0KK1NwZWNpZmljYXRpb24tVmVyc2lvbjogMS4wCitTcGVjaWZpY2F0aW9uLVRpdGxlOiBJQ1UgVHJhbnNsaXRlcmF0b3IgSU1FCisKK05hbWU6IGNvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMzU5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IKQEAgLTAsMCArMSw3IEBACisjCisjCisjIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCisjIGltcGxlbWVudGF0aW9uIGNsYXNzCisjCisKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdC5UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW5kZXgvSW5kZXhHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODkzOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEKQEAgLTAsMCArMSw4MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbmRleDsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIEluZGV4R2VuZXJhdG9yIHsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgc3RvcGxpc3QgPSAiLGNoYXIucmVzLEN1cnJlbmN5RGF0YS5yZXMsaW52dWNhLnJlcyxsaW5lLnJlcyxsaW5lX3RoLnJlcyxwbmFtZXMucmVzLHJlc19pbmRleC5yZXMsc2VudC5yZXMsdGl0bGUucmVzLHVjYWRhdGEucmVzLHVjYXNlLnJlcyx1aWRuYS5yZXMsdW5hbWVzLnJlcyx1bm9ybS5yZXMsdXByb3BzLnJlcyx3b3JkLnJlcyx3b3JkX2phLnJlcyx3b3JkX1BPU0lYLnJlcyx3b3JkX3RoLnJlcyI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisJaWYgKGFyZ3MubGVuZ3RoIDwgMSkgeworCSAgICB1c2FnZSgidG9vIGZldyBhcmd1bWVudHMiKTsKKwl9CisKKwlGaWxlIGluRGlyID0gbmV3IEZpbGUoYXJnc1swXSk7CisJaWYgKCFpbkRpci5pc0RpcmVjdG9yeSgpIHx8ICFpbkRpci5leGlzdHMoKSkgeworCSAgICB1c2FnZSgiZmlyc3QgYXJndW1lbnQgJyIgKyBpbkRpciArICInIG11c3QgYmUgZXhpc3RpbmcgZGlyZWN0b3J5Iik7CisJfQorCisJRmlsZSBvdXREaXIgPSBpbkRpcjsKKwlpZiAoYXJncy5sZW5ndGggPiAxKSB7CisJICAgIG91dERpciA9IG5ldyBGaWxlKGFyZ3NbMV0pOworCSAgICBpZiAoIW91dERpci5pc0RpcmVjdG9yeSgpIHx8ICFvdXREaXIuZXhpc3RzKCkpIHsKKwkJdXNhZ2UoInNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGV4aXN0aW5nIGRpcmVjdG9yeSIpOworCSAgICB9CisJfQorCSAgICAKKwlEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLlVTKTsKKwlEYXRlRm9ybWF0IGNvcHlmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiJyMgQ29weXJpZ2h0IChDKSAneXl5eScgSUJNIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuJyIpOworCisJdHJ5IHsKKwkgICAgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUob3V0RGlyLCAicmVzX2luZGV4LnR4dCIpOworCSAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IEZpbGVXcml0ZXIob3V0RmlsZSkpKTsKKwkgICAgRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworCSAgICBwdy5wcmludGxuKCIjIEdlbmVyYXRlZCBieSAiICsgSW5kZXhHZW5lcmF0b3IuY2xhc3MuZ2V0TmFtZSgpICsgIiBvbiAiICsgZm10LmZvcm1hdChub3cpKTsKKwkgICAgcHcucHJpbnRsbigiIyBmcm9tIGNvbnRlbnRzIG9mICIgKyBpbkRpci5nZXRDYW5vbmljYWxQYXRoKCkpOworCSAgICBwdy5wcmludGxuKGNvcHlmbXQuZm9ybWF0KG5vdykpOworCSAgICBGaWxlW10gZmlsZXMgPSBpbkRpci5saXN0RmlsZXMoKTsKKwkgICAgaW50IGNvdW50ID0gMDsKKwkgICAgaWYgKGZpbGVzICE9IG51bGwpIHsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKyl7CisJCSAgICBpZiAoIWZpbGVzW2ldLmlzRGlyZWN0b3J5KCkpIHsKKwkJCVN0cmluZyBuYW1lID0gIiwiICsgZmlsZXNbaV0uZ2V0TmFtZSgpOyAvLyBhZGQgJywnIHRvIGdldCBleGFjdCBtYXRjaAorCQkJaWYgKG5hbWUuZW5kc1dpdGgoIi5yZXMiKSAmJiBzdG9wbGlzdC5pbmRleE9mKG5hbWUpID09IC0xKSB7CisJCQkgICAgcHcucHJpbnRsbihuYW1lLnN1YnN0cmluZygxLCBuYW1lLmxhc3RJbmRleE9mKCcuJykpKTsgLy8gMSB0byB0cmltIG9mZiAnLCcKKwkJCSAgICArK2NvdW50OworCQkJfQorCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgcHcucHJpbnRsbigiIyBGb3VuZCAiICsgY291bnQgKyAiIGZpbGVzIik7CisJICAgIHB3LnByaW50bG4oIiMgRW5kIG9mIGZpbGUiKTsKKwkgICAgaWYgKGNvdW50ID09IDApIHsKKwkJU3lzdGVtLmVyci5wcmludGxuKCJXYXJuaW5nOiBtYXRjaGVkIG5vIGZpbGVzIik7CisJICAgIH0gCisJICAgIHB3LmNsb3NlKCk7CisJfQorCWNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisJICAgIHVzYWdlKGUuZ2V0TWVzc2FnZSgpKTsKKwl9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB1c2FnZShTdHJpbmcgbXNnKSB7CisJaWYgKG1zZyAhPSBudWxsKSB7CisJICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6ICIgKyBtc2cpOworCX0KKwlTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiBJbmRleEdlbmVyYXRvciBpbkRpciBvdXREaXIiKTsKKwlTeXN0ZW0ub3V0LnByaW50bG4oIiAgaW5EaXIgaXMgYW4gZXhpc3RpbmcgZGlyZWN0b3J5IHdob3NlIGxvY2FsZS1iYXNlZCByZXNvdXJjZXMgYXJlIHRvIGJlIGVudW1lcmF0ZWQiKTsKKwlTeXN0ZW0ub3V0LnByaW50bG4oIiAgb3V0RGlyIGlzIGFuIGV4aXN0aW5nIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgcmVzX2luZGV4LnR4dCBmaWxlIHdpbGwgYmUgcGxhY2VkIik7CisJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiVXNhZ2UiKTsKKyAgICB9Cit9CisJCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY0NoYXJhY3RlckRhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljQ2hhcmFjdGVyRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZGJjM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY0NoYXJhY3RlckRhdGEuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK3B1YmxpYyBjbGFzcyBBcmFiaWNDaGFyYWN0ZXJEYXRhCit7CisgICAgcHVibGljIGNsYXNzIFJlY29yZAorICAgIHsKKyAgICAgICAgcHVibGljIGludCBnZXRDb2RlUG9pbnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldEdlbmVyYWxDYXRlZ29yeSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmFsQ2F0ZWdvcnk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvblR5cGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NpdGlvblR5cGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVjb21wb3NpdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvbXBvc2l0aW9uOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFJlY29yZChpbnQgY2hhcmFjdGVyKQorICAgICAgICB7CisgICAgICAgICAgICBjb2RlUG9pbnQgICAgICAgICA9IGNoYXJhY3RlcjsKKyAgICAgICAgICAgIGdlbmVyYWxDYXRlZ29yeSAgID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNoYXJhY3Rlcik7CisgICAgICAgICAgICBkZWNvbXBvc2l0aW9uVHlwZSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaGFyYWN0ZXIsIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKGRlY29tcG9zaXRpb25UeXBlKSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuRklOQUw6CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSU5JVElBTDoKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JU09MQVRFRDoKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5NRURJQUw6CisgICAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbiA9IE5vcm1hbGl6ZXIuY29tcG9zZShVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoYXJhY3RlciksIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkNBTk9OSUNBTDoKKyAgICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9uID0gTm9ybWFsaXplci5kZWNvbXBvc2UoVUNoYXJhY3Rlci50b1N0cmluZyhjaGFyYWN0ZXIpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbiA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IGNvZGVQb2ludDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZ2VuZXJhbENhdGVnb3J5OworICAgICAgICBwcml2YXRlIGludCBkZWNvbXBvc2l0aW9uVHlwZTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGVjb21wb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBBcmFiaWNDaGFyYWN0ZXJEYXRhKGludCBjaGFyQ291bnQpCisgICAgeworICAgICAgICByZWNvcmRzID0gbmV3IFJlY29yZFtjaGFyQ291bnRdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgYWRkKGludCBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICByZWNvcmRzW3JlY29yZEluZGV4KytdID0gbmV3IFJlY29yZChjaGFyYWN0ZXIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmVjb3JkIGdldFJlY29yZChpbnQgaW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHJlY29yZHMubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlY29yZHNbaW5kZXhdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGNvdW50UmVjb3JkcygpCisgICAgeworICAgICAgICByZXR1cm4gcmVjb3Jkcy5sZW5ndGg7CisgICAgfQorIAorICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIFVuaWNvZGVTZXRJdGVyYXRvcj8KKyAgICAvLyBUaGF0IHdpbGwgbWVhbiBub3Qga25vd2luZyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdW50aWwKKyAgICAvLyBhZnRlciB0aGUgaXRlcmF0aW9uIGlzIGRvbmUsIHNvIHdlJ2QgaGF2ZSB0byB1c2UgYSB2ZWN0b3IKKyAgICAvLyB0byBob2xkIHRoZSBSZWNvcmRzIGF0IGZpcnN0IGFuZCBjb3B5IGl0IHRvIGFuIGFycmF5CisgICAgLy8gd2hlbiB3ZSdyZSBkb25lLi4uICAgCisgICAgcHVibGljIHN0YXRpYyBBcmFiaWNDaGFyYWN0ZXJEYXRhIGZhY3RvcnkoVW5pY29kZVNldCBjaGFyYWN0ZXJTZXQpCisgICAgeworICAgICAgICBpbnQgY2hhckNvdW50ID0gY2hhcmFjdGVyU2V0LnNpemUoKTsKKyAgICAgICAgQXJhYmljQ2hhcmFjdGVyRGF0YSBkYXRhID0gbmV3IEFyYWJpY0NoYXJhY3RlckRhdGEoY2hhckNvdW50KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhckNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGRhdGEuYWRkKGNoYXJhY3RlclNldC5jaGFyQXQoaSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBSZWNvcmRbXSByZWNvcmRzOworICAgIHByaXZhdGUgaW50IHJlY29yZEluZGV4ID0gMDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljU2hhcGluZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNTaGFwaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRkNjVlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljU2hhcGluZy5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CisKK3B1YmxpYyBjbGFzcyBBcmFiaWNTaGFwaW5nIHsKKworICAgIC8vIGFyYWJpYyAgIHNoYXBpbmcgdHlwZSBjb2RlCisKKyAgICAvLyBzaGFwaW5nIGJpdCBtYXNrcworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19TSEFQRV9SSUdIVCAgID0gMTsgLy8gaWYgdGhpcyBiaXQgc2V0LCBzaGFwZXMgdG8gcmlnaHQKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BU0tfU0hBUEVfTEVGVCA9IDI7ICAgLy8gaWYgdGhpcyBiaXQgc2V0LCBzaGFwZXMgdG8gbGVmdAorICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19UUkFOU1BBUkVOVCAgID0gNDsgLy8gaWYgdGhpcyBiaXQgc2V0LCBpcyB0cmFuc3BhcmVudCAoaWdub3JlIG90aGVyIGJpdHMpCisgICAgc3RhdGljIGZpbmFsIGludCBNQVNLX05PU0hBUEUgICA9IDg7IC8vIGlmIHRoaXMgYml0IHNldCwgZG9uJ3Qgc2hhcGUgdGhpcyBjaGFyLCBpLmUuIHRhdHdlZWwKKworICAgIC8vIHNoYXBpbmcgdmFsdWVzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfTk9ORSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfUklHSFQgPSBNQVNLX1NIQVBFX1JJR0hUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX0xFRlQgPSBNQVNLX1NIQVBFX0xFRlQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfRFVBTCA9IE1BU0tfU0hBUEVfUklHSFQgfCBNQVNLX1NIQVBFX0xFRlQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfVFJBTlNQQVJFTlQgPSBNQVNLX1RSQU5TUEFSRU5UOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX05PU0hBUEVfRFVBTCA9IE1BU0tfTk9TSEFQRSB8IFZBTFVFX0RVQUw7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfTk9TSEFQRV9OT05FID0gTUFTS19OT1NIQVBFOworCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0U2hhcGVUeXBlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpbnQgdHQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2gsIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUpOworICAgICAgICAKKyAgICAgICAgc3dpdGNoKHR0KSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuSk9JTl9DQVVTSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9OT1NIQVBFX0RVQUw7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuTEVGVF9KT0lOSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9MRUZUOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuUklHSFRfSk9JTklORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfUklHSFQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5EVUFMX0pPSU5JTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX0RVQUw7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5UUkFOU1BBUkVOVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfVFJBTlNQQVJFTlQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuTk9OX0pPSU5JTkc6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9OT1NIQVBFX05PTkU7ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGFycyBpbiBsb2dpY2FsIG9yZGVyLgorICAgICAqIGxlZnRUeXBlIGlzIHNoYXBpbmcgY29kZSBvZiBjaGFyIHRvIGxvZ2ljYWwgbGVmdCBvZiByYW5nZQorICAgICAqIHJpZ2h0VHlwZSBpcyBzaGFwaW5nIGNvZGUgb2YgY2hhciB0byBsb2dpY2FsIHJpZ2h0IG9mIHJhbmdlCisgICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2hhcGUoY2hhcltdIGNoYXJzLCBpbnQgbGVmdFR5cGUsIGludCByaWdodFR5cGUsIENsYXNzVGFibGUgaXNvbENsYXNzVGFibGUpIHsKKyAgICAgICAgLy8gaXRlcmF0ZSBpbiBsb2dpY2FsIG9yZGVyIGZyb20gbGVmdCB0byByaWdodAorICAgICAgICAvLworICAgICAgICAvLyB0aGUgZWZmZWN0aXZlIHJpZ2h0IGNoYXIgaXMgdGhlIG1vc3QgcmVjZW50bHkgZW5jb3VudGVyZWQKKyAgICAgICAgLy8gbm9uLXRyYW5zcGFyZW50IGNoYXIKKyAgICAgICAgLy8KKyAgICAgICAgLy8gZm91ciBib29sZWFuIHN0YXRlczoKKyAgICAgICAgLy8gICB0aGUgZWZmZWN0aXZlIHJpZ2h0IGNoYXIgc2hhcGVzCisgICAgICAgIC8vICAgdGhlIGVmZmVjdGl2ZSByaWdodCBjaGFyIGNhdXNlcyByaWdodCBzaGFwaW5nCisgICAgICAgIC8vICAgdGhlIGN1cnJlbnQgY2hhciBzaGFwZXMKKyAgICAgICAgLy8gICB0aGUgY3VycmVudCBjaGFyIGNhdXNlcyBsZWZ0IHNoYXBpbmcKKyAgICAgICAgLy8KKyAgICAgICAgLy8gaWYgYm90aCBjYXVzZSBzaGFwaW5nLCB0aGVuCisgICAgICAgIC8vICAgcmlnaHQgKz0gMiAoaXNvbGF0ZSB0byBpbml0aWFsLCBvciBmaW5hbCB0byBtZWRpYWwpCisgICAgICAgIC8vICAgY3VyICs9IDEgKGlzb2xhdGUgdG8gZmluYWwpCisKKyAgICAgICAgLy8gZXJuIGlzIGVmZmVjdGl2ZSByaWdodCBsb2dpY2FsIGluZGV4CisgICAgICAgIGludCBlcm4gPSAtMTsKKworICAgICAgICBib29sZWFuIHJpZ2h0U2hhcGVzID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gcmlnaHRDYXVzZXMgPSAocmlnaHRUeXBlICYgTUFTS19TSEFQRV9MRUZUKSAhPSAwOworCisgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgY2hhcnMubGVuZ3RoOyBuKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzW25dOworICAgICAgICAgICAgaW50IHQgPSBnZXRTaGFwZVR5cGUoYyk7CisKKyAgICAgICAgICAgIGlmICgodCAmIE1BU0tfVFJBTlNQQVJFTlQpICE9IDApIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbGVhbiBjdXJTaGFwZXMgPSAodCAmIE1BU0tfTk9TSEFQRSkgPT0gMDsKKyAgICAgICAgICAgIGJvb2xlYW4gY3VyQ2F1c2VzID0gKHQgJiBNQVNLX1NIQVBFX1JJR0hUKSAhPSAwOworCisgICAgICAgICAgICBpZiAocmlnaHRDYXVzZXMgJiYgY3VyQ2F1c2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKHJpZ2h0U2hhcGVzKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJzW2Vybl0gKz0gMjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyU2hhcGVzKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJzW25dID0gKGNoYXIpIChpc29sQ2xhc3NUYWJsZS5nZXRHbHlwaENsYXNzSUQoYykgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjdXJTaGFwZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbbl0gPSAoY2hhcikgaXNvbENsYXNzVGFibGUuZ2V0R2x5cGhDbGFzc0lEKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmlnaHRTaGFwZXMgPSBjdXJTaGFwZXM7CisgICAgICAgICAgICByaWdodENhdXNlcyA9ICh0ICYgTUFTS19TSEFQRV9MRUZUKSAhPSAwOworICAgICAgICAgICAgZXJuID0gbjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaWdodFNoYXBlcyAmJiByaWdodENhdXNlcyAmJiAobGVmdFR5cGUgJiBNQVNLX1NIQVBFX1JJR0hUKSAhPSAwKSB7CisgICAgICAgICAgICBjaGFyc1tlcm5dICs9IDI7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0J1aWxkTWlycm9yaW5nVGFibGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0J1aWxkTWlycm9yaW5nVGFibGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY1YzE4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQnVpbGRNaXJyb3JpbmdUYWJsZXMuamF2YQpAQCAtMCwwICsxLDk3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEJ1aWxkTWlycm9yaW5nVGFibGVzIGV4dGVuZHMgTW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIEJ1aWxkTWlycm9yaW5nVGFibGVzKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGR1bXAoU3RyaW5nIG5hbWUsIGludFtdIGFycmF5LCBpbnQgbGVuZ3RoLCBpbnQgdmFsdWVzUGVyTGluZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBsaW5lID0gbmV3IFN0cmluZ0J1ZmZlcigiICAgICIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oImNvbnN0IExFVW5pY29kZTMyIERlZmF1bHRDaGFyTWFwcGVyOjoiICsgbmFtZSArICJbXSA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPiAwICYmIGkgJSB2YWx1ZXNQZXJMaW5lID09IDApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihsaW5lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxpbmUuc2V0TGVuZ3RoKDQpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgbGluZS5hcHBlbmQoIjB4IiArIFV0aWxpdHkuaGV4KGFycmF5W2ldLCA0KSk7CisgICAgICAgICAgICBsaW5lLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsaW5lLnNldExlbmd0aChsaW5lLmxlbmd0aCgpIC0gMik7CisgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUudG9TdHJpbmcoKSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJ9O1xuIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlTWlycm9yZWREYXRhRmlsZShTdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICBVbmljb2RlU2V0IG1pcnJvcmVkID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7QmlkaV9NaXJyb3JlZH1dIik7CisgICAgICAgIGludCBjb3VudCA9IG1pcnJvcmVkLnNpemUoKTsKKyAgICAgICAgaW50W10gY2hhcnMgICA9IG5ldyBpbnRbY291bnRdOworICAgICAgICBpbnRbXSBtaXJyb3JzID0gbmV3IGludFtjb3VudF07CisgICAgICAgIGludCB0b3RhbCA9IDA7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSAiICsgY291bnQgKyAiIG1pcnJvcmVkIGNoYXJhY3RlcnMuIik7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IGNoID0gbWlycm9yZWQuY2hhckF0KGkpOworICAgICAgICAgICAgaW50IG0gID0gVUNoYXJhY3Rlci5nZXRNaXJyb3IoY2gpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2ggIT0gbSkgeworICAgICAgICAgICAgICAgIGNoYXJzW3RvdGFsXSA9IGNoICYgMHhGRkZGOworICAgICAgICAgICAgICAgIG1pcnJvcnNbdG90YWwrK10gPSBtICYgMHhGRkZGOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSAiICsgdG90YWwgKyAiIGNoYXJhY3RlcnMgd2l0aCBhIGRpZmZlcmVudCBtaXJyb3IuXG4iKTsKKyAgICAgICAgCisgICAgICAgIG9wZW5GaWxlKGZpbGVuYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIobnVsbCwgaW5jbHVkZUZpbGVzKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBkdW1wKCJtaXJyb3JlZENoYXJzIiwgY2hhcnMsIHRvdGFsLCA4KTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgZHVtcCgic3JhaENkZXJvcnJpbSIsIG1pcnJvcnMsIHRvdGFsLCA4KTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJjb25zdCBsZV9pbnQzMiBEZWZhdWx0Q2hhck1hcHBlcjo6bWlycm9yZWRDaGFyc0NvdW50ID0gIiArIHRvdGFsICsgIjtcbiIpOworCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGluY2x1ZGVGaWxlc1tdID0geyJMRVR5cGVzLmgiLCAiRGVmYXVsdENoYXJNYXBwZXIuaCJ9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBCdWlsZE1pcnJvcmluZ1RhYmxlcyBibXQgPSBuZXcgQnVpbGRNaXJyb3JpbmdUYWJsZXMoKTsKKyAgICAgICAgCisgICAgICAgIGJtdC53cml0ZU1pcnJvcmVkRGF0YUZpbGUoIk1pcnJvcmVkQ2hhckRhdGEuY3BwIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbkdTVUJCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uR1NVQkJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODQ4ZTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbkdTVUJCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw1MjIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBAYXV0aG9yIEVyaWMgTWFkZXIKKyAqCisgKiBOb3RlczoKKyAqIAorICogVGhlIHByb3BlcnR5IFxwe0RlY29tcG9zaXRpb25fVHlwZT1DYW5vbmljYWx9IHdpbGwgbWF0Y2ggYWxsIGNoYXJhY3RlcnMgd2l0aCBhIGNhbm9uaWNhbAorICogZGVjb21wb3NpdGlvbi4KKyAqCisgKiBTbyAiW1tcXHB7TGF0aW59XFxwe0dyZWVrfVxccHtDeXJpbGxpY31dICYgW1xccHtEZWNvbXBvc2l0aW9uX1R5cGU9Q2Fub25pY2FsfV1dIgorICogd2lsbCBtYXRjaCBhbGwgTGF0aW4sIEdyZWVrIGFuZCBDeXJpbGxpYyBjaGFyYWN0ZXJzIHdpdGggYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbi4KKyAqIAorICogQXJlIHRoZXNlIHRocmVlIHNjcmlwdHMgZW5vdWdoPyBEbyB3ZSB3YW50IHRvIGNvbGxlY3QgdGhlbSBhbGwgYXQgb25jZSBhbmQgZGlzdHJpYnV0ZSBieSBzY3JpcHQsCisgKiBvciBwcm9jZXNzIHRoZW0gb25lIHNjcmlwdCBhdCBhIHRpbWUuIEl0J3MgcHJvYmFibHkgYSBnb29kIGlkZWEgdG8gYnVpbGQgYSBzaW5nbGUgdGFibGUgZm9yCisgKiBob3dldmVyIG1hbnkgc2NyaXB0cyB0aGVyZSBhcmUuCisgKiAKKyAqIEl0IG1pZ2h0IGJlIGJldHRlciB0byBjb2xsZWN0IGFsbCB0aGUgY2hhcmFjdGVycyB0aGF0IGhhdmUgYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBhbmQganVzdAorICogc29ydCB0aGVtIGludG8gaG93ZXZlciBtYW55IHNjcmlwdHMgdGhlcmUgYXJlLi4uIHVubGVzcyB3ZSdsbCBnZXQgY2hhcmFjdGVycyBpbiBDT01NT04/Pz8KKyAqLworcHVibGljIGNsYXNzIENhbm9uR1NVQkJ1aWxkZXIKK3sKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBjb252ZXJ0QXJhYmljU3RyaW5nKGludCB0eXBlLCBpbnQgbGlnYXR1cmUsIFN0cmluZyBkZWNvbXAsIENsYXNzVGFibGUgaXNvbENsYXNzVGFibGUpCisgICAgeworICAgICAgICBpbnQgbGVmdFR5cGUgID0gQXJhYmljU2hhcGluZy5WQUxVRV9OT05FOworICAgICAgICBpbnQgcmlnaHRUeXBlID0gQXJhYmljU2hhcGluZy5WQUxVRV9OT05FOworICAgICAgICAKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSVNPTEFURUQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuRklOQUw6CisgICAgICAgICAgICAgICAgcmlnaHRUeXBlID0gQXJhYmljU2hhcGluZy5WQUxVRV9MRUZUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSU5JVElBTDoKKyAgICAgICAgICAgICAgICBsZWZ0VHlwZSA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfUklHSFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5NRURJQUw6CisgICAgICAgICAgICAgICByaWdodFR5cGUgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX0xFRlQ7CisgICAgICAgICAgICAgICBsZWZ0VHlwZSAgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX1JJR0hUOworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgIHJldHVybiBkZWNvbXAgKyBVQ2hhcmFjdGVyLnRvU3RyaW5nKGxpZ2F0dXJlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2hhcltdIGNoYXJzID0gZGVjb21wLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICAgIAorICAgICAgICBBcmFiaWNTaGFwaW5nLnNoYXBlKGNoYXJzLCBsZWZ0VHlwZSwgcmlnaHRUeXBlLCBpc29sQ2xhc3NUYWJsZSk7CisgIAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhjaGFycykgKyBVQ2hhcmFjdGVyLnRvU3RyaW5nKGxpZ2F0dXJlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYnVpbGRBcmFiaWNDb250ZXh0dWFsRm9ybXMoQXJhYmljQ2hhcmFjdGVyRGF0YSBkYXRhLCBDbGFzc1RhYmxlIGluaXRDbGFzc1RhYmxlLCBDbGFzc1RhYmxlIG1lZGlDbGFzc1RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzVGFibGUgZmluYUNsYXNzVGFibGUsIENsYXNzVGFibGUgaXNvbENsYXNzVGFibGUpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJGaW5kaW5nIEFyYWJpYyBjb250ZXh0dWFsIGZvcm1zLi4uICIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmNvdW50UmVjb3JkcygpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIEFyYWJpY0NoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCA9IGRhdGEuZ2V0UmVjb3JkKGkpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcG9zaXRpb24gPSByZWNvcmQuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGVjb21wb3NpdGlvbiAhPSBudWxsICYmIGRlY29tcG9zaXRpb24ubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIGludCBjb250ZXh0dWFsID0gcmVjb3JkLmdldENvZGVQb2ludCgpOworICAgICAgICAgICAgICAgIGludCBpc29sYXRlZCAgID0gVVRGMTYuY2hhckF0KHJlY29yZC5nZXREZWNvbXBvc2l0aW9uKCksIDApOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3dpdGNoIChyZWNvcmQuZ2V0RGVjb21wb3NpdGlvblR5cGUoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JTklUSUFMOgorICAgICAgICAgICAgICAgICAgICBpbml0Q2xhc3NUYWJsZS5hZGRNYXBwaW5nKGlzb2xhdGVkLCBjb250ZXh0dWFsKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTDoKKyAgICAgICAgICAgICAgICAgICAgbWVkaUNsYXNzVGFibGUuYWRkTWFwcGluZyhpc29sYXRlZCwgY29udGV4dHVhbCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZJTkFMOgorICAgICAgICAgICAgICAgICAgIGZpbmFDbGFzc1RhYmxlLmFkZE1hcHBpbmcoaXNvbGF0ZWQsIGNvbnRleHR1YWwpOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklTT0xBVEVEOgorICAgICAgICAgICAgICAgICAgIGlzb2xDbGFzc1RhYmxlLmFkZE1hcHBpbmcoaXNvbGF0ZWQsIGNvbnRleHR1YWwpOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgIC8vIGlzc3VlIHNvbWUgZXJyb3IgbWVzc2FnZT8KKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZS4iKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTGlnYXR1cmVUcmVlIGJ1aWxkQXJhYmljTGlnYXR1cmVUcmVlKEFyYWJpY0NoYXJhY3RlckRhdGEgZGF0YSwgQ2xhc3NUYWJsZSBpc29sQ2xhc3NUYWJsZSkKKyAgICB7CisgICAgICAgIExpZ2F0dXJlVHJlZSBjb250ZXh0dWFsVHJlZSA9IG5ldyBMaWdhdHVyZVRyZWUoKTsKKyAgICAgICAgaW50IGxpZ2F0dXJlQ291bnQgPSAwOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiQnVpbGRpbmcgQXJhYmljIGxpZ2F0dXJlIHRyZWUuLi4gIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEuY291bnRSZWNvcmRzKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgQXJhYmljQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkID0gZGF0YS5nZXRSZWNvcmQoaSk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wb3NpdGlvbiA9IHJlY29yZC5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkZWNvbXBvc2l0aW9uICE9IG51bGwgJiYgZGVjb21wb3NpdGlvbi5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGlnYXR1cmUgICA9IHJlY29yZC5nZXRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgZGVjb21wVHlwZSA9IHJlY29yZC5nZXREZWNvbXBvc2l0aW9uVHlwZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVjb21wVHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5GSU5BTDoKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSU5JVElBTDoKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuTUVESUFMOgorICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JU09MQVRFRDoKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHVhbFRyZWUuaW5zZXJ0KGNvbnZlcnRBcmFiaWNTdHJpbmcoZGVjb21wVHlwZSwgbGlnYXR1cmUsIGRlY29tcG9zaXRpb24sIGlzb2xDbGFzc1RhYmxlKSk7CisgICAgICAgICAgICAgICAgICAgIGxpZ2F0dXJlQ291bnQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DQU5PTklDQUw6CisgICAgICAgICAgICAgICAgICAgIC8vY2Fubm9uaWNhbFRyZWUuaW5zZXJ0KGRlY29tcG9zaXRpb24gKyBVQ2hhcmFjdGVyLnRvU3RyaW5nKGxpZ2F0dXJlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxpZ2F0dXJlQ291bnQgKyAiIGxpZ2F0dXJlcy4iKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb250ZXh0dWFsVHJlZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBTSU1QTEVfR0xZUEggPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTElHQVRVUkVfR0xZUEggPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFSS19HTFlQSCA9IDM7CisgICAgc3RhdGljIGZpbmFsIGludCBDT01QT05FTlRfR0xZUEggPSA0OworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgY2F0ZWdvcnlDbGFzc01hcFtdID0geworICAgIDAsICAgICAgICAgICAgICAvLyBVTkFTU0lHTkVECisgICAgU0lNUExFX0dMWVBILCAgIC8vIFVQUEVSQ0FTRV9MRVRURVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gTE9XRVJDQVNFX0xFVFRFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBUSVRMRUNBU0VfTEVUVEVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE1PRElGSUVSX0xFVFRFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBPVEhFUl9MRVRURVIKKyAgICBNQVJLX0dMWVBILCAgICAgLy8gTk9OX1NQQUNJTkdfTUFSSworICAgIE1BUktfR0xZUEgsICAgICAvLyBFTkNMT1NJTkdfTUFSSyA/PworICAgIE1BUktfR0xZUEgsICAgICAvLyBDT01CSU5JTkdfU1BBQ0lOR19NQVJLID8/CisgICAgU0lNUExFX0dMWVBILCAgIC8vIERFQ0lNQUxfTlVNQkVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIExFVFRFUl9OVU1CRVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gT1RIRVJfTlVNQkVSOworICAgIDAsICAgICAgICAgICAgICAvLyBTUEFDRV9TRVBBUkFUT1IKKyAgICAwLCAgICAgICAgICAgICAgLy8gTElORV9TRVBBUkFUT1IKKyAgICAwLCAgICAgICAgICAgICAgLy8gUEFSQUdSQVBIX1NFUEFSQVRPUgorICAgIDAsICAgICAgICAgICAgICAvLyBDT05UUk9MCisgICAgMCwgICAgICAgICAgICAgIC8vIEZPUk1BVAorICAgIDAsICAgICAgICAgICAgICAvLyBQUklWQVRFX1VTRQorICAgIDAsICAgICAgICAgICAgICAvLyBTVVJST0dBVEUKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gREFTSF9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBTVEFSVF9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBFTkRfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gQ09OTkVDVE9SX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE9USEVSX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE1BVEhfU1lNQk9MOworICAgIFNJTVBMRV9HTFlQSCwgICAvLyBDVVJSRU5DWV9TWU1CT0wKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gTU9ESUZJRVJfU1lNQk9MCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE9USEVSX1NZTUJPTAorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBJTklUSUFMX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBIICAgIC8vIEZJTkFMX1BVTkNUVUFUSU9OCisgICAgfTsKKworICAgIHN0YXRpYyBpbnQgZ2V0R2x5cGhDbGFzcyhBcmFiaWNDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQpCisgICAgeworICAgICAgICBTdHJpbmcgZGVjb21wID0gcmVjb3JkLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgCisgICAgICAgIGlmIChkZWNvbXAgIT0gbnVsbCAmJiBkZWNvbXAubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICByZXR1cm4gTElHQVRVUkVfR0xZUEg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjYXRlZ29yeUNsYXNzTWFwW3JlY29yZC5nZXRHZW5lcmFsQ2F0ZWdvcnkoKV07CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIGFkZEFyYWJpY0dseXBoQ2xhc3NlcyhBcmFiaWNDaGFyYWN0ZXJEYXRhIGRhdGEsIENsYXNzVGFibGUgY2xhc3NUYWJsZSkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkFkZGluZyBBcmFiaWMgZ2x5cGggY2xhc3Nlcy4uLiAiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5jb3VudFJlY29yZHMoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBBcmFiaWNDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQgPSBkYXRhLmdldFJlY29yZChpKTsKKyAgICAgICAgICAgIGNsYXNzVGFibGUuYWRkTWFwcGluZyhyZWNvcmQuZ2V0Q29kZVBvaW50KCksIGdldEdseXBoQ2xhc3MocmVjb3JkKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZS4iKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBidWlsZEFyYWJpY1RhYmxlcyhTY3JpcHRMaXN0IHNjcmlwdExpc3QsIEZlYXR1cmVMaXN0IGZlYXR1cmVMaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9va3VwTGlzdCBsb29rdXBMaXN0LCBDbGFzc1RhYmxlIGNsYXNzVGFibGUpIHsKKyAgICAgICAgLy8gVE9ETzogTWlnaHQgd2FudCB0byBoYXZlIHRoZSBsaWdhdHVyZSB0YWJsZSBidWlsZGVyIGV4cGxpY2l0bHkgY2hlY2sgZm9yIGxpZ2F0dXJlcworICAgICAgICAvLyB3aGljaCBzdGFydCB3aXRoIHNwYWNlIGFuZCB0YXR3ZWVsIHJhdGhlciB0aGFuIHB1bGxpbmcgdGhlbSBvdXQgaGVyZS4uLgorICAgICAgICBVbmljb2RlU2V0IGFyYWJpY0Jsb2NrICAgPSBuZXcgVW5pY29kZVNldCgiW1tcXHB7YmxvY2s9QXJhYmljfV0gJiBbWzpDZjpdWzpQbzpdWzpTbzpdWzpNbjpdWzpOZDpdWzpMbTpdXV0iKTsKKyAgICAgICAgVW5pY29kZVNldCBvZGRMaWdhdHVyZXMgID0gbmV3IFVuaWNvZGVTZXQoIltcXHVGQzVFLVxcdUZDNjNcXHVGQ0YyLVxcdUZDRjRcXHVGRTcwLVxcdUZFN0ZdIik7CisgICAgICAgIFVuaWNvZGVTZXQgYXJhYmljTGV0dGVycyA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0FyYWJpY31dIik7CisgICAgICAgIEFyYWJpY0NoYXJhY3RlckRhdGEgYXJhYmljRGF0YSA9IEFyYWJpY0NoYXJhY3RlckRhdGEuZmFjdG9yeShhcmFiaWNMZXR0ZXJzLmFkZEFsbChhcmFiaWNCbG9jaykucmVtb3ZlQWxsKG9kZExpZ2F0dXJlcykpOworCisgICAgICAgIGFkZEFyYWJpY0dseXBoQ2xhc3NlcyhhcmFiaWNEYXRhLCBjbGFzc1RhYmxlKTsKKyAgICAgICAgCisgICAgICAgIENsYXNzVGFibGUgaW5pdENsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICBDbGFzc1RhYmxlIG1lZGlDbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgQ2xhc3NUYWJsZSBmaW5hQ2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIENsYXNzVGFibGUgaXNvbENsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICAKKyAgICAgICAgYnVpbGRBcmFiaWNDb250ZXh0dWFsRm9ybXMoYXJhYmljRGF0YSwgaW5pdENsYXNzVGFibGUsIG1lZGlDbGFzc1RhYmxlLCBmaW5hQ2xhc3NUYWJsZSwgaXNvbENsYXNzVGFibGUpOworICAgICAgICBpc29sQ2xhc3NUYWJsZS5zbmFwc2hvdCgpOworICAgICAgICBMaWdhdHVyZVRyZWUgbGlnYVRyZWUgPSBidWlsZEFyYWJpY0xpZ2F0dXJlVHJlZShhcmFiaWNEYXRhLCBpc29sQ2xhc3NUYWJsZSk7CisKKyAgICAgICAgTGlnYXR1cmVUcmVlV2Fsa2VyIGxpZ2FXYWxrZXIgPSBuZXcgTGlnYXR1cmVUcmVlV2Fsa2VyKCk7CisKKyAgICAgICAgbGlnYVRyZWUud2FsayhsaWdhV2Fsa2VyKTsKKyAgICAgICAgCisgICAgICAgIExvb2t1cCBpbml0TG9va3VwLCBtZWRpTG9va3VwLCBmaW5hTG9va3VwLCBsaWdhTG9va3VwOworICAgICAgICAKKyAgICAgICAgaW5pdExvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfU2luZ2xlLCAwKTsKKyAgICAgICAgaW5pdExvb2t1cC5hZGRTdWJ0YWJsZShpbml0Q2xhc3NUYWJsZSk7CisgICAgICAgIAorICAgICAgICBtZWRpTG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9TaW5nbGUsIDApOworICAgICAgICBtZWRpTG9va3VwLmFkZFN1YnRhYmxlKG1lZGlDbGFzc1RhYmxlKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX1NpbmdsZSwgMCk7CisgICAgICAgIGZpbmFMb29rdXAuYWRkU3VidGFibGUoZmluYUNsYXNzVGFibGUpOworICAgICAgICAKKyAgICAgICAgbGlnYUxvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfTGlnYXR1cmUsIExvb2t1cC5MRl9JZ25vcmVNYXJrcyk7CisgICAgICAgIGxpZ2FMb29rdXAuYWRkU3VidGFibGUobGlnYVdhbGtlcik7CisgICAgICAgIAorICAgICAgICBGZWF0dXJlIGluaXQgPSBuZXcgRmVhdHVyZSgiaW5pdCIpOworICAgICAgICBGZWF0dXJlIG1lZGkgPSBuZXcgRmVhdHVyZSgibWVkaSIpOworICAgICAgICBGZWF0dXJlIGZpbmEgPSBuZXcgRmVhdHVyZSgiZmluYSIpOworICAgICAgICBGZWF0dXJlIGxpZ2EgPSBuZXcgRmVhdHVyZSgibGlnYSIpOworICAgICAgICAKKyAgICAgICAgaW5pdC5hZGRMb29rdXAobG9va3VwTGlzdC5hZGRMb29rdXAoaW5pdExvb2t1cCkpOworICAgICAgICBtZWRpLmFkZExvb2t1cChsb29rdXBMaXN0LmFkZExvb2t1cChtZWRpTG9va3VwKSk7CisgICAgICAgIGZpbmEuYWRkTG9va3VwKGxvb2t1cExpc3QuYWRkTG9va3VwKGZpbmFMb29rdXApKTsKKyAgICAgICAgbGlnYS5hZGRMb29rdXAobG9va3VwTGlzdC5hZGRMb29rdXAobGlnYUxvb2t1cCkpOworICAgICAgICAKKyAgICAgICAgZmVhdHVyZUxpc3QuYWRkRmVhdHVyZShpbml0KTsKKyAgICAgICAgZmVhdHVyZUxpc3QuYWRkRmVhdHVyZShtZWRpKTsKKyAgICAgICAgZmVhdHVyZUxpc3QuYWRkRmVhdHVyZShmaW5hKTsKKyAgICAgICAgZmVhdHVyZUxpc3QuYWRkRmVhdHVyZShsaWdhKTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdExpc3QuYWRkRmVhdHVyZSgiYXJhYiIsICIoZGVmYXVsdCkiLCBpbml0KTsKKyAgICAgICAgc2NyaXB0TGlzdC5hZGRGZWF0dXJlKCJhcmFiIiwgIihkZWZhdWx0KSIsIG1lZGkpOworICAgICAgICBzY3JpcHRMaXN0LmFkZEZlYXR1cmUoImFyYWIiLCAiKGRlZmF1bHQpIiwgZmluYSk7CisgICAgICAgIHNjcmlwdExpc3QuYWRkRmVhdHVyZSgiYXJhYiIsICIoZGVmYXVsdCkiLCBsaWdhKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBidWlsZExpZ2F0dXJlVHJlZShDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGRhdGEsIGludCBzY3JpcHQsIExpZ2F0dXJlVHJlZSBsaWdhdHVyZVRyZWUpCisgICAgeworICAgICAgICBpbnQgbGlnYXR1cmVDb3VudCA9IDA7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJidWlsZGluZyBjb21wb3NpdGlvbiBsaWdhdHVyZSB0cmVlIGZvciAiICsgVVNjcmlwdC5nZXROYW1lKHNjcmlwdCkgKyAiLi4uICIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmNvdW50UmVjb3JkcyhzY3JpcHQpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIENhbm9uaWNhbENoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCA9IGRhdGEuZ2V0UmVjb3JkKHNjcmlwdCwgaSk7CisgICAgICAgICAgICBTdHJpbmcgY29tcG9zZWQgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHJlY29yZC5nZXRDb21wb3NlZENoYXJhY3RlcigpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgZSA9IDA7IGUgPCByZWNvcmQuY291bnRFcXVpdmFsZW50cygpOyBlICs9IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXF1aXZhbGVudCA9IHJlY29yZC5nZXRFcXVpdmFsZW50KGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxpZ2F0dXJlVHJlZS5pbnNlcnQoZXF1aXZhbGVudCArIGNvbXBvc2VkKTsKKyAgICAgICAgICAgICAgICBsaWdhdHVyZUNvdW50ICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaWdhdHVyZUNvdW50ICsgIiBsaWdhdHVyZXMuIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgRGVjb21wVGFibGVbXSBidWlsZERlY29tcFRhYmxlcyhDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGRhdGEsIGludCBzY3JpcHQpCisgICAgeworICAgICAgICBpbnQgbWF4RGVjb21wQ291bnQgPSBkYXRhLmdldE1heEVxdWl2YWxlbnRzKHNjcmlwdCk7CisgICAgICAgIERlY29tcFRhYmxlW10gZGVjb21wVGFibGVzID0gbmV3IERlY29tcFRhYmxlW21heERlY29tcENvdW50XTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkJ1aWxkaW5nIGRlY29tcG9zaXRvbiB0YWJsZXMgZm9yICIgKyBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIi4uLiB0b3RhbCBkZWNvbXBvc2l0aW9uczogIiArIGRhdGEuY291bnRSZWNvcmRzKHNjcmlwdCkgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLCBtYXg6ICIgKyBtYXhEZWNvbXBDb3VudCArICIuLi4iKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4RGVjb21wQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgRGVjb21wVGFibGUgdGFibGUgPSBuZXcgRGVjb21wVGFibGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCBkYXRhLmNvdW50UmVjb3JkcyhzY3JpcHQpOyByICs9IDEpIHsKKyAgICAgICAgICAgICAgICBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQgPSBkYXRhLmdldFJlY29yZChzY3JpcHQsIHIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuY291bnRFcXVpdmFsZW50cygpID4gaSkgeworICAgICAgICAgICAgICAgICAgICB0YWJsZS5hZGQocmVjb3JkLmdldENvbXBvc2VkQ2hhcmFjdGVyKCksIHJlY29yZC5nZXRFcXVpdmFsZW50KGkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tcFRhYmxlc1tpXSA9IHRhYmxlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBEb25lLiIpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlY29tcFRhYmxlczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnRbXSBidWlsZExvb2t1cHMoQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBkYXRhLCBMb29rdXBMaXN0IGxvb2t1cExpc3QsIGludCBzY3JpcHQpCisgICAgeworICAgICAgICBpbnRbXSBsb29rdXBzID0gbmV3IGludFsyXTsKKyAgICAgICAgCisgICAgICAgIERlY29tcFRhYmxlW10gZGVjb21wVGFibGVzID0gYnVpbGREZWNvbXBUYWJsZXMoZGF0YSwgc2NyaXB0KTsKKyAgICAgICAgCisgICAgICAgIExpZ2F0dXJlVHJlZSBjb21wVHJlZSA9IG5ldyBMaWdhdHVyZVRyZWUoKTsKKyAgICAgICAgCisgICAgICAgIGJ1aWxkTGlnYXR1cmVUcmVlKGRhdGEsIHNjcmlwdCwgY29tcFRyZWUpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBMaWdhdHVyZVRyZWVXYWxrZXIgY29tcFdhbGtlciA9IG5ldyBMaWdhdHVyZVRyZWVXYWxrZXIoKTsKKyAgICAgICAgCisgICAgICAgIGNvbXBUcmVlLndhbGsoY29tcFdhbGtlcik7CisgICAgICAgIAorICAgICAgICBMb29rdXAgY29tcExvb2t1cCwgZGNtcExvb2t1cDsKKyAgICAgICAgLy9pbnQgY29tcExvb2t1cEluZGV4LCBkY21wTG9va3VwSW5kZXg7CisgICAgICAgIAorICAgICAgICBjb21wTG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9MaWdhdHVyZSwgMCk7CisgICAgICAgIGNvbXBMb29rdXAuYWRkU3VidGFibGUoY29tcFdhbGtlcik7CisgICAgICAgIAorICAgICAgICBkY21wTG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9NdWx0aXBsZSwgMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wVGFibGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBkY21wTG9va3VwLmFkZFN1YnRhYmxlKGRlY29tcFRhYmxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvb2t1cHNbMF0gPSBsb29rdXBMaXN0LmFkZExvb2t1cChjb21wTG9va3VwKTsKKyAgICAgICAgbG9va3Vwc1sxXSA9IGxvb2t1cExpc3QuYWRkTG9va3VwKGRjbXBMb29rdXApOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxvb2t1cHM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhZGRMb29rdXBzKEZlYXR1cmUgZmVhdHVyZSwgaW50W10gbG9va3VwcykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9va3Vwcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgZmVhdHVyZS5hZGRMb29rdXAobG9va3Vwc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBIZWJyZXcgbWFyayBvcmRlciB0YWtlbiBmcm9tIHRoZSBTQkwgSGVicmV3IEZvbnQgbWFudWFsCisgICAgICogQXJhYmljIG1hcmsgb3JkZXIgcGVyIFRob21hcyBNaWxvOiBoYW16YSA8IHNoYWRkYSA8IGNvbWJpbmluZ19hbGVmIDwgc3VrdW4sIHZvd2VsX21hcmtzIDwgbWFkZGEgPCBxdXInYW5pY19tYXJrcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ2xhc3NUYWJsZSBidWlsZENvbWJpbmluZ0NsYXNzVGFibGUoKQorICAgIHsKKyAgICAgICAgVW5pY29kZVNldCBtYXJrU2V0ID0gbmV3IFVuaWNvZGVTZXQoIltcXFB7Q2Fub25pY2FsQ29tYmluaW5nQ2xhc3M9MH1dIik7CisgICAgICAgIENsYXNzVGFibGUgZXhjZXB0aW9ucyA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIENsYXNzVGFibGUgY29tYmluaW5nQ2xhc3NlcyA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIGludCBtYXJrQ291bnQgPSBtYXJrU2V0LnNpemUoKTsKKyAgICAgICAgCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QzEsICAxMCk7IC8vIFBvaW50IFNoaW4gRG90CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QzIsICAxMSk7IC8vIFBvaW50IFNpbiBEb3QKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCQywgIDIxKTsgLy8gUG9pbnQgRGFnZXNoIG9yIE1hcGlxCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QkYsICAyMyk7IC8vIFBvaW50IFJhZmUKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCOSwgIDI3KTsgLy8gUG9pbnQgSG9sYW0KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDMyMywgMjIwKTsgLy8gQ29tYi4gRG90IEJlbG93IChsb3cgcHVuY3R1bSkKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5MSwgMjIwKTsgLy8gQWNjZW50IEV0bmFodGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5NiwgMjIwKTsgLy8gQWNjZW50IFRpcGVoYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlCLCAyMjApOyAvLyBBY2NlbnQgVGV2aXIKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBMywgMjIwKTsgLy8gQWNjZW50IE11bmFoCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTQsIDIyMCk7IC8vIEFjY2VudCBNYWhhcGFraAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE1LCAyMjApOyAvLyBBY2NlbnQgTWVya2hhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTYsIDIyMCk7IC8vIEFjY2VudCBNZXJraGEgS2VmdWxhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTcsIDIyMCk7IC8vIEFjY2VudCBEYXJnYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFBLCAyMjApOyAvLyBBY2NlbnQgWWVyYWggQmVuIFlvbW8KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCMCwgMjIwKTsgLy8gUG9pbnQgU2hldmEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCMSwgMjIwKTsgLy8gUG9pbnQgSGF0YWYgU2Vnb2wKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCMiwgMjIwKTsgLy8gUG9pbnQgSGF0YWYgUGF0YWgKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCMywgMjIwKTsgLy8gUG9pbnQgSGF0YWYgUWFtYXRzCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjQsIDIyMCk7IC8vIFBvaW50IEhpcmlxCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjUsIDIyMCk7IC8vIFBvaW50IFRzZXJlCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjYsIDIyMCk7IC8vIFBvaW50IFNlZ29sCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjcsIDIyMCk7IC8vIFBvaW50IFBhdGFoCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjgsIDIyMCk7IC8vIFBvaW50IFFhbWF0cworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUJCLCAyMjApOyAvLyBQb2ludCBRdWJ1dHMKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCRCwgMjIwKTsgLy8gUG9pbnQgTWV0ZWcKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5QSwgMjIyKTsgLy8gQWNjZW50IFlldGl2CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUQsIDIyMik7IC8vIEFjY2VudCBEZWhpCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QzQsIDIzMCk7IC8vIE1hcmsgVXBwZXIgRG90IChoaWdoIHB1bmN0dW0pCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTMsIDIzMCk7IC8vIEFjY2VudCBTaGFsc2hlbGV0CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTQsIDIzMCk7IC8vIEFjY2VudCBaYXFlZiBRYXRhbgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk1LCAyMzApOyAvLyBBY2NlbnQgWmFxZWYgR2Fkb2wKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5NywgMjMwKTsgLy8gQWNjZW50IFJldmlhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTgsIDIzMCk7IC8vIEFjY2VudCBaYXJxYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlGLCAyMzApOyAvLyBBY2NlbnQgUWFybmV5IFBhcmEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5RSwgMjMwKTsgLy8gQWNjZW50IEdlcnNoYXlpbQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlELCAyMzApOyAvLyBBY2NlbnQgR2VyZXNoIE11cWRhbQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTlDLCAyMzApOyAvLyBBY2NlbnQgR2VyZXNoCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTIsIDIzMCk7IC8vIEFjY2VudCBTZWdvbHRhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTAsIDIzMCk7IC8vIEFjY2VudCBUZWxpc2hhIEdlZG9sYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFDLCAyMzApOyAvLyBBY2NlbnQgSWx1eQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE4LCAyMzApOyAvLyBBY2NlbnQgUWFkbWEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBQiwgMjMwKTsgLy8gQWNjZW50IE9sZQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFGLCAyMzApOyAvLyBNYXJrIE1hc29yYSBDaXJjbGUKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBMSwgMjMwKTsgLy8gQWNjZW50IFBhemVyCisgICAgICAvL2V4Y2VwdGlvbnMuYWRkTWFwcGluZygweDAzMDcsIDIzMCk7IC8vIE1hcmsgTnVtYmVyL01hc29yYSBEb3QKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBRSwgMjMyKTsgLy8gQWNjZW50IFppbm9yCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTksIDIzMik7IC8vIEFjY2VudCBUZWxpc2hhIFFldGFuYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk5LCAyMzIpOyAvLyBBY2NlbnQgUGFzaHRhCisgICAgICAgIAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjU1LCAgMjcpOyAvLyBBUkFCSUMgSEFNWkEgQkVMT1cKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1NCwgIDI3KTsgLy8gQVJBQklDIEhBTVpBIEFCT1ZFCisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1MSwgIDI4KTsgLy8gQVJBQklDIFNIQUREQQorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTYsICAyOSk7IC8vIEFSQUJJQyBTVUJTQ1JJUFQgQUxFRgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjcwLCAgMjkpOyAvLyBBUkFCSUMgTEVUVEVSIFNVUEVSU0NSSVBUIEFMRUYKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjRELCAgMzApOyAvLyBBUkFCSUMgS0FTUkFUQU4KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1MCwgIDMwKTsgLy8gQVJBQklDIEtBU1JBCisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1MiwgIDMxKTsgLy8gQVJBQklDIFNVS1VOCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2RTEsICAzMSk7IC8vIEFSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFICisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY0QiwgIDMxKTsgLy8gQVJBQklDIEZBVEhBVEFOCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NEMsICAzMSk7IC8vIEFSQUJJQyBEQU1NQVRBTgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjRFLCAgMzEpOyAvLyBBUkFCSUMgRkFUSEEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY0RiwgIDMxKTsgLy8gQVJBQklDIERBTU1BCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTcsICAzMSk7IC8vIEFSQUJJQyBJTlZFUlRFRCBEQU1NQQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjU4LCAgMzEpOyAvLyBBUkFCSUMgTUFSSyBOT09OIEdIVU5OQQorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTMsICAzMik7IC8vIEFSQUJJQyBNQUREQUggQUJPVkUKKyAgICAgICAgCisgICAgICAgIGV4Y2VwdGlvbnMuc25hcHNob3QoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFya0NvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGludCBtYXJrID0gbWFya1NldC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpbnQgbWFya0NsYXNzID0gZXhjZXB0aW9ucy5nZXRHbHlwaENsYXNzSUQobWFyayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXJrQ2xhc3MgPT0gMCkgeworICAgICAgICAgICAgICAgIG1hcmtDbGFzcyA9IFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MobWFyayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbWJpbmluZ0NsYXNzZXMuYWRkTWFwcGluZyhtYXJrLCBtYXJrQ2xhc3MpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb21iaW5pbmdDbGFzc2VzLnNuYXBzaG90KCk7CisgICAgICAgIHJldHVybiBjb21iaW5pbmdDbGFzc2VzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYnVpbGREZWNvbXBUYWJsZXMoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgLy8gRjkwMCAtIEZBRkYgYXJlIGNvbXBhdGliaWxpdHkgaWRlb2dyYXBocy4gVGhleSBhbGwgZGVjb21wb3NlIHRvIGEgc2luZ2xlIG90aGVyIGNoYXJhY3RlciwgYW5kIGNhbiBiZSBpZ25vcmVkLgorICAgICAgICBVbmljb2RlU2V0IGRlY29tcFNldCA9IG5ldyBVbmljb2RlU2V0KCJbW1tcXFB7SGFuZ3VsfV0gJiBbXFxwe0RlY29tcG9zaXRpb25UeXBlPUNhbm9uaWNhbH1dXSAtIFtcdUY5MDAtXHVGQUZGXV0iKTsKKyAgICAgICAgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBkYXRhID0gQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5mYWN0b3J5KGRlY29tcFNldCk7CisgICAgICAgIENsYXNzVGFibGUgY2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIAorICAgICAgICBMb29rdXBMaXN0ICBsb29rdXBMaXN0ICA9IG5ldyBMb29rdXBMaXN0KCk7CisgICAgICAgIEZlYXR1cmVMaXN0IGZlYXR1cmVMaXN0ID0gbmV3IEZlYXR1cmVMaXN0KCk7CisgICAgICAgIFNjcmlwdExpc3QgIHNjcmlwdExpc3QgID0gbmV3IFNjcmlwdExpc3QoKTsKKworICAgICAgICAvLyBidWlsZCBjb21tb24sIGluaGVyaXRlZCBsb29rdXBzLi4uCisvLyAgICAgICAgaW50W10gY29tbW9uTG9va3VwcyA9IGJ1aWxkTG9va3VwcyhkYXRhLCBsb29rdXBMaXN0LCBVU2NyaXB0LkNPTU1PTik7CisvLyAgICAgICAgaW50W10gaW5oZXJpdGVkTG9va3VwcyA9IGJ1aWxkTG9va3VwcyhkYXRhLCBsb29rdXBMaXN0LCBVU2NyaXB0LklOSEVSSVRFRCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY3JpcHQgPSAwOyBzY3JpcHQgPCBVU2NyaXB0LkNPREVfTElNSVQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBiaXQgbGFtZSwgYnV0IGl0J3MgdGhlIG9ubHkgd2F5IEkgY2FuIHRoaW5rIG9mCisgICAgICAgICAgICAvLyB0byBtYWtlIHRoaXMgd29yayB3L28ga25vd2luZyB0aGUgdmFsdWVzIG9mIENPTU1PTiBhbmQgSU5IRVJJVEVELi4uCisgICAgICAgICAgICBpZiAoc2NyaXB0ID09IFVTY3JpcHQuQ09NTU9OIHx8IHNjcmlwdCA9PSBVU2NyaXB0LklOSEVSSVRFRCB8fAorICAgICAgICAgICAgICAgIGRhdGEuZ2V0TWF4RXF1aXZhbGVudHMoc2NyaXB0KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludFtdIGxvb2t1cHMgPSBidWlsZExvb2t1cHMoZGF0YSwgbG9va3VwTGlzdCwgc2NyaXB0KTsKKworICAgICAgICAgICAgRmVhdHVyZSBjY21wID0gbmV3IEZlYXR1cmUoImNjbXAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYWRkTG9va3VwcyhjY21wLCBsb29rdXBzKTsKKy8vICAgICAgICAgICAgYWRkTG9va3VwcyhjY21wLCBjb21tb25Mb29rdXBzKTsKKy8vICAgICAgICAgICAgYWRkTG9va3VwcyhjY21wLCBpbmhlcml0ZWRMb29rdXBzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmVhdHVyZUxpc3QuYWRkRmVhdHVyZShjY21wKTsKKyAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc2NyaXB0VGFnID0gVGFnVXRpbGl0aWVzLnRhZ0xhYmVsKFVTY3JpcHQuZ2V0U2hvcnROYW1lKHNjcmlwdCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzY3JpcHRMaXN0LmFkZEZlYXR1cmUoc2NyaXB0VGFnLCAiKGRlZmF1bHQpIiwgY2NtcCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5BUkFCSUMpIHsKKyAgICAgICAgICAgICAgICBidWlsZEFyYWJpY1RhYmxlcyhzY3JpcHRMaXN0LCBmZWF0dXJlTGlzdCwgbG9va3VwTGlzdCwgY2xhc3NUYWJsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZlYXR1cmVMaXN0LmZpbmFsaXplRmVhdHVyZUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIENsYXNzVGFibGUgbWFya0NsYXNzVGFibGUgPSBidWlsZENvbWJpbmluZ0NsYXNzVGFibGUoKTsKKyAgICAgICAgCisgICAgICAgIEdTVUJXcml0ZXIgZ3N1YldyaXRlciA9IG5ldyBHU1VCV3JpdGVyKCJDYW5vbiIsIHNjcmlwdExpc3QsIGZlYXR1cmVMaXN0LCBsb29rdXBMaXN0KTsKKyAgICAgICAgR0RFRldyaXRlciBnZGVmV3JpdGVyID0gbmV3IEdERUZXcml0ZXIoIkNhbm9uIiwgY2xhc3NUYWJsZSwgbWFya0NsYXNzVGFibGUpOworICAgICAgICBTdHJpbmdbXSBpbmNsdWRlRmlsZXMgPSB7IkxFVHlwZXMuaCIsICJDYW5vblNoYXBpbmcuaCJ9OyAgICAgICAgCisgICAgICAgIAorICAgICAgICBMaWdhdHVyZU1vZHVsZVdyaXRlciB3cml0ZXIgPSBuZXcgTGlnYXR1cmVNb2R1bGVXcml0ZXIoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci5vcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlci53cml0ZUhlYWRlcihudWxsLCBpbmNsdWRlRmlsZXMpOworICAgICAgICB3cml0ZXIud3JpdGVUYWJsZShnc3ViV3JpdGVyKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVGFibGUoZ2RlZldyaXRlcik7CisgICAgICAgIHdyaXRlci53cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgd3JpdGVyLmNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgYnVpbGREZWNvbXBUYWJsZXMoYXJnc1swXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbmljYWxDaGFyYWN0ZXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0Nhbm9uaWNhbENoYXJhY3RlckRhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2Q4N2YzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbmljYWxDaGFyYWN0ZXJEYXRhLmphdmEKQEAgLTAsMCArMSwyMTYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNhbm9uaWNhbEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIENhbm9uaWNhbENoYXJhY3RlckRhdGEKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgVEhSRVNIT0xEID0gNDsKKyAgICAKKyAgICBwdWJsaWMgY2xhc3MgUmVjb3JkCisgICAgeworICAgICAgICAvLyBUT0RPOiBtaWdodCB3YW50IHRvIHNhdmUgYXJyYXlzIG9mIENoYXIzMidzIHJhdGhlciB0aGFuIFVURjE2IHN0cmluZ3MuLi4KKyAgICAgICAgUmVjb3JkKGludCBjaGFyYWN0ZXIsIGludCBzY3JpcHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBjaGFyMzIgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoYXJhY3Rlcik7CisgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciBpdGVyYXRvciA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcihjaGFyMzIpOworICAgICAgICAgICAgVmVjdG9yIGVxdWl2cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tcG9zZWQgPSBjaGFyYWN0ZXI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIGVxdWl2ID0gaXRlcmF0b3IubmV4dCgpOyBlcXVpdiAhPSBudWxsOyBlcXVpdiA9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgICAgIC8vIFNraXAgYWxsIGVxdWl2YWxlbnRzIG9mIGxlbmd0aCAxOyBpdCdzIGVpdGhlciB0aGUgb3JpZ2luYWwKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWNldGVyIG9yIHNvbWV0aGluZyBsaWtlIEFuZ3N0cm9tIGZvciBBLVJpbmcsIHdoaWNoIHdlIGRvbid0IGNhcmUgYWJvdXQKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoZXF1aXYpID4gMSkgeworICAgICAgICAgICAgICAgICAgICBlcXVpdnMuYWRkKGVxdWl2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBuRXF1aXZhbGVudHMgPSBlcXVpdnMuc2l6ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobkVxdWl2YWxlbnRzID4gbWF4RXF1aXZhbGVudHNbc2NyaXB0XSkgeworICAgICAgICAgICAgICAgIG1heEVxdWl2YWxlbnRzW3NjcmlwdF0gPSBuRXF1aXZhbGVudHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChuRXF1aXZhbGVudHMgPiAwKSB7CisgICAgICAgICAgICAgICAgZXF1aXZhbGVudHMgPSBuZXcgU3RyaW5nW25FcXVpdmFsZW50c107CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5FcXVpdmFsZW50cyA+IFRIUkVTSE9MRCkgeworICAgICAgICAgICAgICAgICAgICBkdW1wRXF1aXZhbGVudHMoY2hhcmFjdGVyLCBlcXVpdnMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzb3J0RXF1aXZhbGVudHMoZXF1aXZhbGVudHMsIGVxdWl2cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29tcG9zZWQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY291bnRFcXVpdmFsZW50cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcXVpdmFsZW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50cy5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcXVpdmFsZW50cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRFcXVpdmFsZW50KGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVxdWl2YWxlbnRzID09IG51bGwgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IGVxdWl2YWxlbnRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXF1aXZhbGVudHNbaW5kZXhdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgZHVtcEVxdWl2YWxlbnRzKGludCBjaGFyYWN0ZXIsIFZlY3RvciBlcXVpdnMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBjb3VudCA9IGVxdWl2cy5zaXplKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmhleChjaGFyYWN0ZXIsIDYpICsgIiAtICIgKyBjb3VudCArICI6Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBlcXVpdiA9IChTdHJpbmcpIGVxdWl2cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaW50IGNvZGVQb2ludHMgPSBVVEYxNi5jb3VudENvZGVQb2ludChlcXVpdik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBjb2RlUG9pbnRzOyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5oZXgoVVRGMTYuY2hhckF0KGVxdWl2LCBjKSwgNikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IGNvbXBvc2VkOworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGVxdWl2YWxlbnRzID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIENhbm9uaWNhbENoYXJhY3RlckRhdGEoKQorICAgIHsKKyAgICAgICAgLy8gbm90aGluZyB0byBkby4uLgorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjaGFyYWN0ZXIpOworICAgICAgICBWZWN0b3IgcmVjb3JkVmVjdG9yID0gcmVjb3JkVmVjdG9yc1tzY3JpcHRdOworICAgICAgICAKKyAgICAgICAgaWYgKHJlY29yZFZlY3RvciA9PSBudWxsKSB7CisgICAgICAgICAgICByZWNvcmRWZWN0b3IgPSByZWNvcmRWZWN0b3JzW3NjcmlwdF0gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlY29yZFZlY3Rvci5hZGQobmV3IFJlY29yZChjaGFyYWN0ZXIsIHNjcmlwdCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1heEVxdWl2YWxlbnRzKGludCBzY3JpcHQpCisgICAgeworICAgICAgICBpZiAoc2NyaXB0IDwgMCB8fCBzY3JpcHQgPj0gVVNjcmlwdC5DT0RFX0xJTUlUKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1heEVxdWl2YWxlbnRzW3NjcmlwdF07CisgICAgfQorICAgIAorICAgIHB1YmxpYyBSZWNvcmQgZ2V0UmVjb3JkKGludCBzY3JpcHQsIGludCBpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChzY3JpcHQgPCAwIHx8IHNjcmlwdCA+PSBVU2NyaXB0LkNPREVfTElNSVQpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBWZWN0b3IgcmVjb3JkVmVjdG9yID0gcmVjb3JkVmVjdG9yc1tzY3JpcHRdOworICAgICAgICAKKyAgICAgICAgaWYgKHJlY29yZFZlY3RvciA9PSBudWxsIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+PSByZWNvcmRWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIChSZWNvcmQpIHJlY29yZFZlY3Rvci5lbGVtZW50QXQoaW5kZXgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGNvdW50UmVjb3JkcyhpbnQgc2NyaXB0KQorICAgIHsKKyAgICAgICAgaWYgKHNjcmlwdCA8IDAgfHwgc2NyaXB0ID49IFVTY3JpcHQuQ09ERV9MSU1JVCB8fAorICAgICAgICAgICAgcmVjb3JkVmVjdG9yc1tzY3JpcHRdID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVjb3JkVmVjdG9yc1tzY3JpcHRdLnNpemUoKTsKKyAgICB9CisgCisgICAgcHVibGljIHN0YXRpYyBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhIGZhY3RvcnkoVW5pY29kZVNldCBjaGFyYWN0ZXJTZXQpCisgICAgeworICAgICAgICBpbnQgY2hhckNvdW50ID0gY2hhcmFjdGVyU2V0LnNpemUoKTsKKyAgICAgICAgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBkYXRhID0gbmV3IENhbm9uaWNhbENoYXJhY3RlckRhdGEoKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlcmUgYXJlICIgKyBjaGFyQ291bnQgKyAiIGNoYXJhY3RlcnMgd2l0aCBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZGF0YS5hZGQoY2hhcmFjdGVyU2V0LmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBjb21wYXJlRXF1aXZhbGVudHMoU3RyaW5nIGEsIFN0cmluZyBiKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2LmNvdW50Q29kZVBvaW50KGEpIC0gVVRGMTYuY291bnRDb2RlUG9pbnQoYik7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gYS5jb21wYXJlVG8oYik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgICAgCisgICAgLy8KKyAgICAvLyBTdHJhaWdodCBpbnNlcnRpb24gc29ydCBmcm9tIEtudXRoIHZvbC4gSUlJLCBwZy4gODEKKyAgICAvLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgc29ydEVxdWl2YWxlbnRzKFN0cmluZ1tdIGVxdWl2YWxlbnRzLCBWZWN0b3IgdW5zb3J0ZWQpCisgICAgeworICAgICAgICBpbnQgbkVxdWl2YWxlbnRzID0gZXF1aXZhbGVudHMubGVuZ3RoOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgZSA9IDA7IGUgPCBuRXF1aXZhbGVudHM7IGUgKz0gMSkgeworICAgICAgICAgICAgU3RyaW5nIHYgPSAoU3RyaW5nKSB1bnNvcnRlZC5lbGVtZW50QXQoZSk7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpID0gZSAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVFcXVpdmFsZW50cyh2LCBlcXVpdmFsZW50c1tpXSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZXF1aXZhbGVudHNbaSArIDFdID0gZXF1aXZhbGVudHNbaV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVxdWl2YWxlbnRzW2kgKyAxXSA9IHY7CisgICAgICAgfQorICAgIH0KKyAgICAgICAgICAgIAorICAgIHByaXZhdGUgVmVjdG9yIHJlY29yZFZlY3RvcnNbXSA9IG5ldyBWZWN0b3JbVVNjcmlwdC5DT0RFX0xJTUlUXTsKKyAgICBwcml2YXRlIGludCBtYXhFcXVpdmFsZW50c1tdID0gbmV3IGludFtVU2NyaXB0LkNPREVfTElNSVRdOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0NsYXNzVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2xhc3NUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YmFlMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0NsYXNzVGFibGUuamF2YQpAQCAtMCwwICsxLDIzNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS51dGlsLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBDbGFzc1RhYmxlIGltcGxlbWVudHMgTG9va3VwU3VidGFibGUKK3sKKyAgICBzdGF0aWMgY2xhc3MgQ2xhc3NFbnRyeQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZ2x5cGhJRDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY2xhc3NJRDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDbGFzc0VudHJ5KGludCBnbHlwaElELCBpbnQgY2xhc3NJRCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5nbHlwaElEID0gZ2x5cGhJRDsKKyAgICAgICAgICAgIHRoaXMuY2xhc3NJRCA9IGNsYXNzSUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0R2x5cGhJRCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBnbHlwaElEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldENsYXNzSUQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY2xhc3NJRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oQ2xhc3NFbnRyeSB0aGF0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5nbHlwaElEIC0gdGhhdC5nbHlwaElEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBTdHJhaWdodCBpbnNlcnRpb24gc29ydCBmcm9tIEtudXRoIHZvbC4gSUlJLCBwZy4gODEKKyAgICAgICAgLy8KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoQ2xhc3NFbnRyeVtdIHRhYmxlLCBWZWN0b3IgdW5zb3J0ZWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGUgPSAwOyBlIDwgdGFibGUubGVuZ3RoOyBlICs9IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgICAgICBDbGFzc0VudHJ5IHYgPSAoQ2xhc3NFbnRyeSkgdW5zb3J0ZWQuZWxlbWVudEF0KGUpOworCisgICAgICAgICAgICAgICAgZm9yIChpID0gZSAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2LmNvbXBhcmVUbyh0YWJsZVtpXSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdGFibGVbaV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBpbnQgc2VhcmNoKENsYXNzRW50cnlbXSB0YWJsZSwgaW50IGdseXBoSUQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBsb2cyID0gVXRpbGl0eS5oaWdoQml0KHRhYmxlLmxlbmd0aCk7CisgICAgICAgICAgICBpbnQgcG93ZXIgPSAxIDw8IGxvZzI7CisgICAgICAgICAgICBpbnQgZXh0cmEgPSB0YWJsZS5sZW5ndGggLSBwb3dlcjsKKyAgICAgICAgICAgIGludCBwcm9iZSA9IHBvd2VyOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKworICAgICAgICAgICAgaWYgKHRhYmxlW2V4dHJhXS5nbHlwaElEIDw9IGdseXBoSUQpIHsKKyAgICAgICAgICAgICAgaW5kZXggPSBleHRyYTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgICAgICBwcm9iZSA+Pj0gMTsKKworICAgICAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIHByb2JlXS5nbHlwaElEIDw9IGdseXBoSUQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gcHJvYmU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXhdLmdseXBoSUQgPT0gZ2x5cGhJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDbGFzc1JhbmdlUmVjb3JkCisgICAgeworICAgICAgICBwcml2YXRlIGludCBzdGFydEdseXBoSUQ7CisgICAgICAgIHByaXZhdGUgaW50IGVuZEdseXBoSUQ7CisgICAgICAgIHByaXZhdGUgaW50IGNsYXNzSUQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ2xhc3NSYW5nZVJlY29yZChpbnQgc3RhcnRHbHlwaElELCBpbnQgZW5kR2x5cGhJRCwgaW50IGNsYXNzSUQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuc3RhcnRHbHlwaElEID0gc3RhcnRHbHlwaElEOworICAgICAgICAgICAgdGhpcy5lbmRHbHlwaElEID0gZW5kR2x5cGhJRDsKKyAgICAgICAgICAgIHRoaXMuY2xhc3NJRCA9IGNsYXNzSUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgICAgICB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFV0aWxpdHkuaGV4KHN0YXJ0R2x5cGhJRCwgNikpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIC0gIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFV0aWxpdHkuaGV4KGVuZEdseXBoSUQsIDYpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjogIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY2xhc3NJRCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoc3RhcnRHbHlwaElEKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZW5kR2x5cGhJRCk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzSUQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVmVjdG9yIGNsYXNzTWFwOworICAgIHByaXZhdGUgQ2xhc3NFbnRyeVtdIGNsYXNzVGFibGU7CisgICAgcHJpdmF0ZSBpbnQgc25hcHNob3RTaXplOworICAgIAorICAgIHB1YmxpYyBDbGFzc1RhYmxlKCkKKyAgICB7CisgICAgICAgIHRoaXMuY2xhc3NNYXAgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHRoaXMuY2xhc3NUYWJsZSA9IG51bGw7CisgICAgICAgIHRoaXMuc25hcHNob3RTaXplID0gLTE7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRNYXBwaW5nKGludCBjaGFySUQsIGludCBjbGFzc0lEKQorICAgIHsKKyAgICAgICAgQ2xhc3NFbnRyeSBlbnRyeSA9IG5ldyBDbGFzc0VudHJ5KGNoYXJJRCwgY2xhc3NJRCk7CisgICAgICAgIAorICAgICAgICBjbGFzc01hcC5hZGRFbGVtZW50KGVudHJ5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkTWFwcGluZyhpbnQgc3RhcnRDaGFySUQsIGludCBlbmRDaGFySUQsIGludCBjbGFzc0lEKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgY2hhcklEID0gc3RhcnRDaGFySUQ7IGNoYXJJRCA8PSBlbmRDaGFySUQ7IGNoYXJJRCArPSAxKSB7CisgICAgICAgICAgICBhZGRNYXBwaW5nKGNoYXJJRCwgY2xhc3NJRCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRHbHlwaENsYXNzSUQoaW50IGdseXBoSUQpCisgICAgeworICAgICAgICBpbnQgaW5kZXggPSBDbGFzc0VudHJ5LnNlYXJjaChjbGFzc1RhYmxlLCBnbHlwaElEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gY2xhc3NUYWJsZVtpbmRleF0uZ2V0Q2xhc3NJRCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc25hcHNob3QoKQorICAgIHsKKyAgICAgICAgaWYgKHNuYXBzaG90U2l6ZSAhPSBjbGFzc01hcC5zaXplKCkpIHsKKyAgICAgICAgICAgIHNuYXBzaG90U2l6ZSA9IGNsYXNzTWFwLnNpemUoKTsKKyAgICAgICAgICAgIGNsYXNzVGFibGUgPSBuZXcgQ2xhc3NFbnRyeVtzbmFwc2hvdFNpemVdOworCisgICAgICAgICAgICBDbGFzc0VudHJ5LnNvcnQoY2xhc3NUYWJsZSwgY2xhc3NNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlQ2xhc3NUYWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIHNuYXBzaG90KCk7CisgICAgICAgIAorICAgICAgICBWZWN0b3IgY2xhc3NSYW5nZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGludCBzdGFydEluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgY2xhc3NUYWJsZS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGludCBzdGFydElEID0gY2xhc3NUYWJsZVtzdGFydEluZGV4XS5nZXRHbHlwaElEKCk7CisgICAgICAgICAgICBpbnQgY2xhc3NJRCA9IGNsYXNzVGFibGVbc3RhcnRJbmRleF0uZ2V0Q2xhc3NJRCgpOworICAgICAgICAgICAgaW50IG5leHRJRCA9IHN0YXJ0SUQ7CisgICAgICAgICAgICBpbnQgZW5kSUQgPSBzdGFydElEOworICAgICAgICAgICAgaW50IGVuZEluZGV4OworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGVuZEluZGV4ID0gc3RhcnRJbmRleDsgZW5kSW5kZXggPCBjbGFzc1RhYmxlLmxlbmd0aDsgZW5kSW5kZXggKz0gMSkgeworICAgICAgICAgICAgICAgIGlmIChjbGFzc1RhYmxlW2VuZEluZGV4XS5nZXRHbHlwaElEKCkgIT0gbmV4dElEIHx8CisgICAgICAgICAgICAgICAgICAgIGNsYXNzVGFibGVbZW5kSW5kZXhdLmdldENsYXNzSUQoKSAhPSBjbGFzc0lEKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBlbmRJRCA9IG5leHRJRDsKKyAgICAgICAgICAgICAgICBuZXh0SUQgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNsYXNzSUQgIT0gMCkgeworICAgICAgICAgICAgICAgIENsYXNzUmFuZ2VSZWNvcmQgcmFuZ2UgPSBuZXcgQ2xhc3NSYW5nZVJlY29yZChzdGFydElELCBlbmRJRCwgY2xhc3NJRCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2xhc3NSYW5nZXMuYWRkRWxlbWVudChyYW5nZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBlbmRJbmRleDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgyKTsgICAgICAgICAgICAgICAgICAgIC8vIHRhYmxlIGZvcm1hdCA9IDIgKGNsYXNzIHJhbmdlcykKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc1Jhbmdlcy5zaXplKCkpOyAgIC8vIGNsYXNzIHJhbmdlIGNvdW50CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNsYXNzUmFuZ2VzLnNpemUoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBDbGFzc1JhbmdlUmVjb3JkIHJhbmdlID0gKENsYXNzUmFuZ2VSZWNvcmQpIGNsYXNzUmFuZ2VzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmFuZ2Uud3JpdGUod3JpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlTG9va3VwU3VidGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBpbnQgc2luZ2xlU3Vic3RpdHV0aW9uc0Jhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgaW50IGNvdmVyYWdlVGFibGVJbmRleDsKKyAgICAgICAgCisgICAgICAgIHNuYXBzaG90KCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDIpOyAvLyBmb3JtYXQgMjogU3BlY2lmaWVkIG91dHB1dCBnbHlwaCBpbmRpY2VzCisgICAgICAgIGNvdmVyYWdlVGFibGVJbmRleCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAvLyBvZmZzZXQgdG8gY292ZXJhZ2UgdGFibGUgKGZpeGVkIGxhdGVyKQorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzVGFibGUubGVuZ3RoKTsgLy8gbnVtYmVyIG9mIGdseXBoSURzIGluIHN1YnN0aXR1dGlvbiBhcnJheQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc1RhYmxlLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzVGFibGVbaV0uZ2V0Q2xhc3NJRCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLmZpeE9mZnNldChjb3ZlcmFnZVRhYmxlSW5kZXgsIHNpbmdsZVN1YnN0aXR1dGlvbnNCYXNlKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgxKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc1RhYmxlLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNsYXNzVGFibGUubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NUYWJsZVtpXS5nZXRHbHlwaElEKCkpOworICAgICAgICB9CisgICAgfQorfQorICAgIAorICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRGVjb21wVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRGVjb21wVGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWY1MWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9EZWNvbXBUYWJsZS5qYXZhCkBAIC0wLDAgKzEsMTg0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogQGF1dGhvciBPd25lcgorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBEZWNvbXBUYWJsZSBpbXBsZW1lbnRzIExvb2t1cFN1YnRhYmxlCit7CisgICAgc3RhdGljIGNsYXNzIERlY29tcEVudHJ5CisgICAgeworICAgICAgICBwcml2YXRlIGludCBjb21wb3NlZDsKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSBkZWNvbXA7CisgICAgICAgIAorICAgICAgICBEZWNvbXBFbnRyeShpbnQgY29tcG9zZWRDaGFyLCBTdHJpbmcgZGVjb21wb3NpdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGRlY29tcENvdW50ID0gVVRGMTYuY291bnRDb2RlUG9pbnQoZGVjb21wb3NpdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbXBvc2VkID0gY29tcG9zZWRDaGFyOworICAgICAgICAgICAgZGVjb21wID0gbmV3IGludFtkZWNvbXBDb3VudF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBvdXQgPSAwLCBjcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaW4gPSAwOyBpbiA8IGRlY29tcG9zaXRpb24ubGVuZ3RoKCk7IGluICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChkZWNvbXBvc2l0aW9uLCBpbik7CisgICAgICAgICAgICAgICAgZGVjb21wW291dCsrXSA9IGNwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldENvbXBvc2VkQ2hhcmFjdGVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBvc2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50W10gZ2V0RGVjb21wb3NpdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvbXA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbkNvdW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcC5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NlZENoYXJhY3RlcihpbnQgaSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDwgZGVjb21wLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBkZWNvbXBbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oRGVjb21wRW50cnkgdGhhdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9zZWQgLSB0aGF0LmNvbXBvc2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBTdHJhaWdodCBpbnNlcnRpb24gc29ydCBmcm9tIEtudXRoIHZvbC4gSUlJLCBwZy4gODEKKyAgICAgICAgLy8KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoRGVjb21wRW50cnlbXSB0YWJsZSwgVmVjdG9yIGRlY29tcFZlY3RvcikKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0YWJsZS5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIERlY29tcEVudHJ5IHYgPSAoRGVjb21wRW50cnkpIGRlY29tcFZlY3Rvci5lbGVtZW50QXQoaik7CisKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSBqIC0gMTsgaSA+PSAwOyBpIC09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYuY29tcGFyZVRvKHRhYmxlW2ldKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB0YWJsZVtpXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB2OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVmVjdG9yIGRlY29tcFZlY3RvcjsKKyAgICBwcml2YXRlIERlY29tcEVudHJ5W10gZGVjb21wRW50cmllczsKKyAgICBwcml2YXRlIGludCBzbmFwc2hvdFNpemU7CisgICAgCisgICAgcHVibGljIERlY29tcFRhYmxlKCkKKyAgICB7CisgICAgICAgIGRlY29tcFZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZGVjb21wRW50cmllcyA9IG51bGw7CisgICAgICAgIHNuYXBzaG90U2l6ZSA9IC0xOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGNvbXBvc2VkLCBTdHJpbmcgZGVjb21wb3NpdGlvbikKKyAgICB7CisgICAgICAgIERlY29tcEVudHJ5IGVudHJ5ID0gbmV3IERlY29tcEVudHJ5KGNvbXBvc2VkLCBkZWNvbXBvc2l0aW9uKTsKKyAgICAgICAgCisgICAgICAgIGRlY29tcFZlY3Rvci5hZGRFbGVtZW50KGVudHJ5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRDb21wb3NlZENoYXJhY3RlcihpbnQgaSkKKyAgICB7CisgICAgICAgIGlmIChpIDwgMCB8fCBpID4gZGVjb21wRW50cmllcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlY29tcEVudHJpZXNbaV0uZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXREZWNvbXBvc2l0aW9uQ291bnQoaW50IGkpCisgICAgeworICAgICAgICBpZiAoaSA8IDAgfHwgaSA+IGRlY29tcEVudHJpZXMubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZWNvbXBFbnRyaWVzW2ldLmdldERlY29tcG9zaXRpb25Db3VudCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNFbnRyaWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBkZWNvbXBWZWN0b3Iuc2l6ZSgpID4gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIGlmIChzbmFwc2hvdFNpemUgIT0gZGVjb21wVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgc25hcHNob3RTaXplID0gZGVjb21wVmVjdG9yLnNpemUoKTsKKyAgICAgICAgICAgIGRlY29tcEVudHJpZXMgPSBuZXcgRGVjb21wRW50cnlbc25hcHNob3RTaXplXTsKKyAgICAgICAgICAgIERlY29tcEVudHJ5LnNvcnQoZGVjb21wRW50cmllcywgZGVjb21wVmVjdG9yKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlTG9va3VwU3VidGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBzbmFwc2hvdCgpOworICAgICAgICAKKyAgICAgICAgaW50IG11bHRpcGxlU3Vic3RpdHV0aW9uc0Jhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgaW50IGNvdmVyYWdlVGFibGVJbmRleCwgc2VxdWVuY2VPZmZzZXRJbmRleDsKKyAgICAgICAgaW50IHNlcXVlbmNlQ291bnQgPSBkZWNvbXBFbnRyaWVzLmxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMSk7IC8vIGZvcm1hdCA9IDEKKyAgICAgICAgCisgICAgICAgIGNvdmVyYWdlVGFibGVJbmRleCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAvLyBjb3ZlcmFnZSB0YWJsZSBvZmZzZXQgKGZpeGVkIGxhdGVyKQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShzZXF1ZW5jZUNvdW50KTsKKyAgICAgICAgCisgICAgICAgIHNlcXVlbmNlT2Zmc2V0SW5kZXggPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgZm9yIChpbnQgcyA9IDA7IHMgPCBzZXF1ZW5jZUNvdW50OyBzICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7IC8vIG9mZnNldCB0byBzZXF1ZW5jZSB0YWJsZSAoZml4ZWQgbGF0ZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8IHNlcXVlbmNlQ291bnQ7IHMgKz0gMSkgeworICAgICAgICAgICAgRGVjb21wRW50cnkgZW50cnkgPSBkZWNvbXBFbnRyaWVzW3NdOworICAgICAgICAgICAgaW50IGRlY29tcENvdW50ID0gZW50cnkuZ2V0RGVjb21wb3NpdGlvbkNvdW50KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQoc2VxdWVuY2VPZmZzZXRJbmRleCsrLCBtdWx0aXBsZVN1YnN0aXR1dGlvbnNCYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShkZWNvbXBDb3VudCk7IC8vIGdseXBoQ291bnQKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgZyA9IDA7IGcgPCBkZWNvbXBDb3VudDsgZyArPSAxKSB7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShlbnRyeS5nZXREZWNvbXBvc2VkQ2hhcmFjdGVyKGcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gd3JpdGUgYSBmb3JtYXQgMSBjb3ZlcmFnZSB0YWJsZQorICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGNvdmVyYWdlVGFibGVJbmRleCwgbXVsdGlwbGVTdWJzdGl0dXRpb25zQmFzZSk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMSk7IC8vIGZvcm1hdCA9IDEKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShzZXF1ZW5jZUNvdW50KTsgIC8vIGdseXBoQ291bnQKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VxdWVuY2VDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGRlY29tcEVudHJpZXNbaV0uZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhY2Y4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmUuamF2YQpAQCAtMCwwICsxLDU5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitjbGFzcyBGZWF0dXJlIGV4dGVuZHMgVGFnZ2VkUmVjb3JkCit7CisgICAgcHJpdmF0ZSBpbnRbXSBsb29rdXBJbmRpY2VzOworICAgIHByaXZhdGUgaW50IGxvb2t1cENvdW50OworICAgIHByaXZhdGUgaW50IGZlYXR1cmVJbmRleDsKKyAgICAKKyAgICBwdWJsaWMgRmVhdHVyZShTdHJpbmcgdGhlRmVhdHVyZVRhZykKKyAgICB7CisgICAgICAgIHN1cGVyKHRoZUZlYXR1cmVUYWcpOworICAgICAgICAKKyAgICAgICAgbG9va3VwSW5kaWNlcyA9IG5ldyBpbnRbMTBdOworICAgICAgICBsb29rdXBDb3VudCA9IDA7CisgICAgICAgIGZlYXR1cmVJbmRleCA9IC0xOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRMb29rdXAoaW50IHRoZUxvb2t1cEluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGxvb2t1cENvdW50ID49IGxvb2t1cEluZGljZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnRbXSBuZXdMb29rdXBJbmRpY2VzID0gbmV3IGludFtsb29rdXBJbmRpY2VzLmxlbmd0aCArIDVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxvb2t1cEluZGljZXMsIDAsIG5ld0xvb2t1cEluZGljZXMsIDAsIGxvb2t1cEluZGljZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIGxvb2t1cEluZGljZXMgPSBuZXdMb29rdXBJbmRpY2VzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb29rdXBJbmRpY2VzW2xvb2t1cENvdW50XSA9IHRoZUxvb2t1cEluZGV4OworICAgICAgICBsb29rdXBDb3VudCArPSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUZlYXR1cmUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAgICAgIC8vIGZlYXR1cmVQYXJhbXMgKG11c3QgYmUgTlVMTCkKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEobG9va3VwQ291bnQpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb29rdXBDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxvb2t1cEluZGljZXNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0RmVhdHVyZUluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmZWF0dXJlSW5kZXg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldEZlYXR1cmVJbmRleChpbnQgaW5kZXgpCisgICAgeworICAgICAgICBmZWF0dXJlSW5kZXggPSBpbmRleDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlTGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlTGlzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZTYxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmVMaXN0LmphdmEKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyBjbGFzcyBGZWF0dXJlTGlzdAoreworICAgIAorICAgIHByaXZhdGUgRmVhdHVyZVtdIGZlYXR1cmVzOworICAgIHByaXZhdGUgaW50IGZlYXR1cmVDb3VudDsKKyAgICAKKyAgICBwdWJsaWMgRmVhdHVyZUxpc3QoKQorICAgIHsKKyAgICAgICAgZmVhdHVyZXMgPSBuZXcgRmVhdHVyZVsxMF07CisgICAgICAgIGZlYXR1cmVDb3VudCA9IDA7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSkKKyAgICB7CisgICAgICAgIGlmIChmZWF0dXJlQ291bnQgPj0gZmVhdHVyZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBGZWF0dXJlW10gbmV3RmVhdHVyZXMgPSBuZXcgRmVhdHVyZVtmZWF0dXJlcy5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmZWF0dXJlcywgMCwgbmV3RmVhdHVyZXMsIDAsIGZlYXR1cmVzLmxlbmd0aCk7CisgICAgICAgICAgICBmZWF0dXJlcyA9IG5ld0ZlYXR1cmVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmZWF0dXJlc1tmZWF0dXJlQ291bnQrK10gPSBmZWF0dXJlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBmaW5hbGl6ZUZlYXR1cmVMaXN0KCkKKyAgICB7CisgICAgICAgIFRhZ2dlZFJlY29yZC5zb3J0KGZlYXR1cmVzLCBmZWF0dXJlQ291bnQpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmZWF0dXJlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZmVhdHVyZXNbaV0uc2V0RmVhdHVyZUluZGV4KGkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlRmVhdHVyZXRMaXN0KE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgid3JpdGluZyBmZWF0dXJlIGxpc3QuLi4iKTsKKyAgICAgICAgCisgICAgICAgIGludCBmZWF0dXJlTGlzdEJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoZmVhdHVyZUNvdW50KTsKKyAgICAgICAgCisgICAgICAgIGludCBmZWF0dXJlUmVjb3JkT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZlYXR1cmVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBTdHJpbmcgdGFnID0gZmVhdHVyZXNbaV0uZ2V0VGFnKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAnIiArIHRhZyArICInIik7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVUYWcodGFnKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmVhdHVyZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIC8vIGZpeCB0aGUgb2Zmc2V0IGluIHRoZSBmZWF0dXJlUmVjb3JkQXJyYXkuCisgICAgICAgICAgICAvLyBUaGUgIisyIiBza2lwcyBvdmVyIHRoZSB0YWcgYW5kIHRoZSAiKzMiCisgICAgICAgICAgICAvLyBza2lwcyB0byB0aGUgbmV4dCBmZWF0dXJlUmVjb3JkIGVudHJ5CisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGZlYXR1cmVSZWNvcmRPZmZzZXQgKyAyLCBmZWF0dXJlTGlzdEJhc2UpOworICAgICAgICAgICAgZmVhdHVyZVJlY29yZE9mZnNldCArPSAzOworICAgICAgICAgICAgCisgICAgICAgICAgICBmZWF0dXJlc1tpXS53cml0ZUZlYXR1cmUod3JpdGVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR0RFRldyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HREVGV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljMTNmOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR0RFRldyaXRlci5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKKworCitjbGFzcyBHREVGV3JpdGVyIGV4dGVuZHMgT3BlblR5cGVUYWJsZVdyaXRlcgoreworICAgIENsYXNzVGFibGUgY2xhc3NUYWJsZTsKKyAgICBDbGFzc1RhYmxlIG1hcmtDbGFzc1RhYmxlOworICAgIFN0cmluZyBzY3JpcHROYW1lOworICAgIAorICAgIHB1YmxpYyBHREVGV3JpdGVyKFN0cmluZyBzY3JpcHROYW1lLCBDbGFzc1RhYmxlIGNsYXNzVGFibGUsIENsYXNzVGFibGUgbWFya0NsYXNzVGFibGUpCisgICAgeworICAgICAgICBzdXBlcigxMDI0KTsKKyAgICAgICAgdGhpcy5jbGFzc1RhYmxlICAgICA9IGNsYXNzVGFibGU7CisgICAgICAgIHRoaXMubWFya0NsYXNzVGFibGUgPSBtYXJrQ2xhc3NUYWJsZTsKKyAgICAgICAgdGhpcy5zY3JpcHROYW1lICAgICA9IHNjcmlwdE5hbWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBzY3JpcHROYW1lICsgIiBHREVGIHRhYmxlLi4uIik7CisgICAgICAgIAorICAgICAgICAvLyAweDAwMDEwMDAgKGZpeGVkMSkgdmVyc2lvbiBudW1iZXIKKyAgICAgICAgd3JpdGVEYXRhKDB4MDAwMSk7CisgICAgICAgIHdyaXRlRGF0YSgweDAwMDApOworICAgICAgICAKKyAgICAgICAgaW50IGNsYXNzRGVmT2Zmc2V0ID0gZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBnbHlwaENsYXNzRGVmT2Zmc2V0ICh3aWxsIGZpeCBsYXRlcik7CisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gYXR0YWNoTGlzdE9mZnNldAorICAgICAgICB3cml0ZURhdGEoMCk7IC8vIGxpZ0NhcmV0TGlzdE9mZnNldAorICAgICAgICB3cml0ZURhdGEoMCk7IC8vIG1hcmtBdHRhY2hDbGFzc0RlZk9mZnNldAorICAgICAgICAKKyAgICAgICAgZml4T2Zmc2V0KGNsYXNzRGVmT2Zmc2V0KyssIDApOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nIGdseXBoIGNsYXNzIGRlZmluaXRpb24gdGFibGUuLi4iKTsKKyAgICAgICAgY2xhc3NUYWJsZS53cml0ZUNsYXNzVGFibGUodGhpcyk7CisgICAgICAgIAorICAgICAgICAvLyBza2lwIG92ZXIgYXR0YWNoTGlzdE9mZnNldCwgbGlnQ2FyZXRMaXN0T2Zmc2V0CisgICAgICAgIGNsYXNzRGVmT2Zmc2V0ICs9IDI7CisgICAgICAgIAorICAgICAgICBpZiAobWFya0NsYXNzVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgZml4T2Zmc2V0KGNsYXNzRGVmT2Zmc2V0LCAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nIG1hcmsgYXR0YWNoIGNsYXNzIGRlZmluaXRpb24gdGFibGUuLi4iKTsKKyAgICAgICAgICAgIG1hcmtDbGFzc1RhYmxlLndyaXRlQ2xhc3NUYWJsZSh0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIG91dHB1dC5wcmludCgiY29uc3QgbGVfdWludDggIik7CisgICAgICAgIG91dHB1dC5wcmludChzY3JpcHROYW1lKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIlNoYXBpbmc6OmdseXBoRGVmaW5pdGlvblRhYmxlW10gPSB7Iik7CisgICAgICAgIAorICAgICAgICBkdW1wVGFibGUob3V0cHV0LCA4KTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIn07XG4iKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dTVUJXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR1NVQldyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZmNmMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dTVUJXcml0ZXIuamF2YQpAQCAtMCwwICsxLDY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCisKK3B1YmxpYyBjbGFzcyBHU1VCV3JpdGVyIGV4dGVuZHMgT3BlblR5cGVUYWJsZVdyaXRlcgoreworICAgIHByaXZhdGUgU2NyaXB0TGlzdCBzY3JpcHRMaXN0OworICAgIHByaXZhdGUgRmVhdHVyZUxpc3QgZmVhdHVyZUxpc3Q7CisgICAgcHJpdmF0ZSBMb29rdXBMaXN0IGxvb2t1cExpc3Q7CisgICAgcHJpdmF0ZSBTdHJpbmcgc2NyaXB0TmFtZTsKKyAgICAKKyAgICBwdWJsaWMgR1NVQldyaXRlcihTdHJpbmcgdGhlU2NyaXB0TmFtZSwgU2NyaXB0TGlzdCB0aGVTY3JpcHRMaXN0LCBGZWF0dXJlTGlzdCB0aGVGZWF0dXJlTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICBMb29rdXBMaXN0IHRoZUxvb2t1cExpc3QpCisgICAgeworICAgICAgICBzdXBlcigxMDI0KTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdExpc3QgID0gdGhlU2NyaXB0TGlzdDsKKyAgICAgICAgZmVhdHVyZUxpc3QgPSB0aGVGZWF0dXJlTGlzdDsKKyAgICAgICAgbG9va3VwTGlzdCAgPSB0aGVMb29rdXBMaXN0OworICAgICAgICBzY3JpcHROYW1lICA9IHRoZVNjcmlwdE5hbWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3cml0aW5nICIgKyBzY3JpcHROYW1lICsgIiBHU1VCIHRhYmxlLi4uIik7CisgICAgICAgIAorICAgICAgICAvLyAweDAwMDEwMDAwIChmaXhlZDEpIHZlcnNpb24gbnVtYmVyCisgICAgICAgIHdyaXRlRGF0YSgweDAwMDEpOworICAgICAgICB3cml0ZURhdGEoMHgwMDAwKTsKKyAgICAgICAgCisgICAgICAgIGludCBsaXN0T2Zmc2V0ID0gZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gc2NyaXB0IGxpc3Qgb2Zmc2V0IChmaXhlZCBsYXRlcikKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBmZWF0dXJlIGxpc3Qgb2Zmc2V0IChmaXhlZCBsYXRlcikKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBsb29rdXAgbGlzdCBvZmZzZXQgKGZpeGVkIGxhdGVyKQorICAgICAgICAKKyAgICAgICAgZml4T2Zmc2V0KGxpc3RPZmZzZXQrKywgMCk7CisgICAgICAgIHNjcmlwdExpc3Qud3JpdGVTY3JpcHRMaXN0KHRoaXMpOworICAgICAgICAKKyAgICAgICAgZml4T2Zmc2V0KGxpc3RPZmZzZXQrKywgMCk7CisgICAgICAgIGZlYXR1cmVMaXN0LndyaXRlRmVhdHVyZXRMaXN0KHRoaXMpOworICAgICAgICAKKyAgICAgICAgZml4T2Zmc2V0KGxpc3RPZmZzZXQrKywgMCk7CisgICAgICAgIGxvb2t1cExpc3Qud3JpdGVMb29rdXBMaXN0KHRoaXMpOworCisgICAgICAgIG91dHB1dC5wcmludCgiY29uc3QgbGVfdWludDggIik7CisgICAgICAgIG91dHB1dC5wcmludChzY3JpcHROYW1lKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIlNoYXBpbmc6OmdseXBoU3Vic3RpdHV0aW9uVGFibGVbXSA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGR1bXBUYWJsZShvdXRwdXQsIDgpOworICAgICAgICBvdXRwdXQucHJpbnRsbigifTtcbiIpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xhbmd1YWdlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MYW5ndWFnZURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjJiOWE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MYW5ndWFnZURhdGEuamF2YQpAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBBcHIgNCwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisvKioKKyAqIFRoaXMgY2xhc3MgaG9sZHMgdGhlIGxpc3Qgb2YgbGFuZ3VhZ2VzLgorICogCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqLworcHVibGljIGNsYXNzIExhbmd1YWdlRGF0YSBleHRlbmRzIFRhZ1ZhbHVlRGF0YQoreworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVjb3JkCisgICAgeworICAgICAgICBwcml2YXRlIFN0cmluZyB0YWc7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUmVjb3JkKFN0cmluZyB0YWcsIFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLnRhZyA9IHRhZzsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdGFnKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhZzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBuYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgbGFiZWwoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gVGFnVXRpbGl0aWVzLnRhZ0xhYmVsKHRhZyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgbWFrZVRhZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBUYWdVdGlsaXRpZXMubWFrZVRhZyh0YWcpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIFRoaXMgaXMgdGVtcG9yYXJ5IGRhdGEgdW50aWwgdGhlcmUgaXMgc29tZSByZXNvbHV0aW9uIGJldHdlZW4KKyAgICAgKiB0aGUgT3BlblR5cGUgbGFuZ3VhZ2Ugc3lzdGVtIHRhZ3MgYW5kIHRoZSBJU08gYW5kIFJGQyBzdGFuZGFyZHMuLi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFJlY29yZFtdIGxhbmd1YWdlcyA9CisgICAgeworICAgICAgICBuZXcgUmVjb3JkKCIiLCAgICAibnVsbCIpLAorICAgICAgICBuZXcgUmVjb3JkKCJBUkEiLCAiQXJhYmljIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkFTTSIsICJBc3NhbWVzZSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJCRU4iLCAiQmVuZ2FsaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJGQVIiLCAiRmFyc2kiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiR1VKIiwgIkd1amFyYXRpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkhJTiIsICJIaW5kaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJJV1IiLCAiSGVicmV3IiksCisgICAgICAgIG5ldyBSZWNvcmQoIkpJSSIsICJZaWRkaXNoIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkpBTiIsICJKYXBhbmVzZSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJLQU4iLCAiS2FubmFkYSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJLT0siLCAiS29ua2FuaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJLT1IiLCAiS29yZWFuIiksCisgICAgICAgIG5ldyBSZWNvcmQoIktTSCIsICJLYXNobWlyaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJNQUwiLCAiTWFsYXlhbGFtIChUcmFkaXRpb25hbCkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiTUFSIiwgIk1hcmF0aGkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiTUxSIiwgIk1hbGF5YWxhbSAoUmVmb3JtZWQpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIk1OSSIsICJNYW5pcHVyaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJPUkkiLCAiT3JpeWEiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiU0FOIiwgIlNhbnNjcml0IiksCisgICAgICAgIG5ldyBSZWNvcmQoIlNORCIsICJTaW5kaGkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiU05IIiwgIlNpbmhhbGVzZSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJTWVIiLCAiU3lyaWFjIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlRBTSIsICJUYW1pbCIpLAorICAgICAgICBuZXcgUmVjb3JkKCJURUwiLCAiVGVsdWd1IiksCisgICAgICAgIG5ldyBSZWNvcmQoIlRIQSIsICJUaGFpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlVSRCIsICJVcmR1IiksCisgICAgICAgIG5ldyBSZWNvcmQoIlpIUCIsICJDaGluZXNlIChQaG9uZXRpYykiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiWkhTIiwgIkNoaW5lc2UgKFNpbXBsaWZpZWQpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlpIVCIsICJDaGluZXNlIChUcmFkaXRpb25hbCkiKQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBpbnQgbWluTGFuZ3VhZ2UgPSAwOworICAgIHByaXZhdGUgaW50IG1heExhbmd1YWdlID0gbWluTGFuZ3VhZ2UgKyBsYW5ndWFnZXMubGVuZ3RoIC0gMTsKKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1pblZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtaW5MYW5ndWFnZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRNYXhWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbWF4TGFuZ3VhZ2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA8IG1pbkxhbmd1YWdlIHx8IHZhbHVlID4gbWF4TGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzW3ZhbHVlIC0gbWluTGFuZ3VhZ2VdLnRhZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZ0xhYmVsKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA8IG1pbkxhbmd1YWdlIHx8IHZhbHVlID4gbWF4TGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzW3ZhbHVlIC0gbWluTGFuZ3VhZ2VdLmxhYmVsKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgbWFrZVRhZyhpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPCBtaW5MYW5ndWFnZSB8fCB2YWx1ZSA+IG1heExhbmd1YWdlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1t2YWx1ZSAtIG1pbkxhbmd1YWdlXS5tYWtlVGFnKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlIDwgbWluTGFuZ3VhZ2UgfHwgdmFsdWUgPiBtYXhMYW5ndWFnZSkgeworICAgICAgICAgICAgcmV0dXJuICIoVU5LTk9XTikiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzW3ZhbHVlIC0gbWluTGFuZ3VhZ2VdLm5hbWUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlRW50cnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVFbnRyeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMDZhMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlRW50cnkuamF2YQpAQCAtMCwwICsxLDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBjbGFzcyBMaWdhdHVyZUVudHJ5Cit7CisgICAgcHJpdmF0ZSBpbnRbXSBjb21wb25lbnRDaGFyczsKKyAgICBwcml2YXRlIGludCBsaWdhdHVyZTsKKyAgICAKKyAgICBwdWJsaWMgTGlnYXR1cmVFbnRyeShpbnQgbGlnYXR1cmUsIGludFtdIGNvbXBvbmVudENoYXJzLCBpbnQgY29tcG9uZW50Q291bnQpCisgICAgeworICAgICAgICB0aGlzLmNvbXBvbmVudENoYXJzID0gbmV3IGludFtjb21wb25lbnRDb3VudF07CisgICAgICAgIHRoaXMubGlnYXR1cmUgPSBsaWdhdHVyZTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShjb21wb25lbnRDaGFycywgMCwgdGhpcy5jb21wb25lbnRDaGFycywgMCwgY29tcG9uZW50Q291bnQpOworfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0Q29tcG9uZW50Q291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbXBvbmVudENoYXJzLmxlbmd0aDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRDb21wb25lbnRDaGFyKGludCBjb21wb25lbnRJbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb21wb25lbnRDaGFyc1tjb21wb25lbnRJbmRleF07CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TGlnYXR1cmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpZ2F0dXJlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVNb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVNb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTUyMDlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZU1vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgY2xhc3MgTGlnYXR1cmVNb2R1bGVXcml0ZXIgZXh0ZW5kcyBNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgTGlnYXR1cmVNb2R1bGVXcml0ZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgdGFibGVXcml0ZXIpCisgICAgeworICAgICAgICB0YWJsZVdyaXRlci53cml0ZVRhYmxlKG91dHB1dCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZjI2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZS5qYXZhCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLldyaXRlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgTGlnYXR1cmVUcmVlCit7CisgICAgc3RhdGljIGNsYXNzIExpZ25vZGUKKyAgICB7CisgICAgICAgIGludCB0YXJnZXQ7CisgICAgICAgIGludCBsaWdhdHVyZSA9IC0xOworICAgICAgICBMaWdub2RlW10gc3Vibm9kZXMgPSBudWxsOworCisgICAgICAgIExpZ25vZGUoKQorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIExpZ25vZGUoaW50IHRhcmdldCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTWF0Y2goKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbGlnYXR1cmUgIT0gLTE7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0TGlnYXR1cmUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbGlnYXR1cmU7CisgICAgICAgIH0KKworICAgICAgICBMaWdub2RlIHN1Ym5vZGUoaW50IGMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzdWJub2RlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IHN1Ym5vZGVzLmxlbmd0aDsKKworICAgICAgICAgICAgICAgIGlmIChjIDw9IHN1Ym5vZGVzW2xlbiAtIDFdLnRhcmdldCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ID0gc3Vibm9kZXNbaV0udGFyZ2V0OworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCA+IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgPT0gYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJub2Rlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgbGlnYXR1cmVTdHJpbmcoaW50W10gY2hhcnMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgbGVuID0gY2hhcnMubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgKyAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVdGlsaXR5LmhleChjaGFyc1tpXSwgNikpOworICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiA9PiAiICsgVXRpbGl0eS5oZXgoY2hhcnNbbGVuXSwgNikpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgaW5zZXJ0KGludFtdIGNoYXJzLCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBjID0gY2hhcnNbaW5kZXhdOworICAgICAgICAgICAgaW50IGxlbiA9IGNoYXJzLmxlbmd0aDsKKworICAgICAgICAgICAgaWYgKGxlbiA9PSBpbmRleCArIDEpIHsKKyAgICAgICAgICAgICAgICBpZiAobGlnYXR1cmUgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpZ25vcmluZyBsaWdhdHVyZSAiICsgbGlnYXR1cmVTdHJpbmcoY2hhcnMpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IGFscmVhZHkgaGF2ZSAiICsgVXRpbGl0eS5oZXgobGlnYXR1cmUsIDYpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsaWdhdHVyZSA9IGM7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3Vibm9kZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN1Ym5vZGVzID0gbmV3IExpZ25vZGVbMV07CisgICAgICAgICAgICAgICAgc3Vibm9kZXNbMF0gPSBuZXcgTGlnbm9kZShjKTsKKyAgICAgICAgICAgICAgICBzdWJub2Rlc1swXS5pbnNlcnQoY2hhcnMsIGluZGV4ICsgMSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBpOworCisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHN1Ym5vZGVzLmxlbmd0aDsgaSArPSAxKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHQgPSBzdWJub2Rlc1tpXS50YXJnZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHQgPT0gYykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3Vibm9kZXNbaV0uaW5zZXJ0KGNoYXJzLCBpbmRleCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHQgPiBjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIExpZ25vZGVbXSBubm9kZXMgPSBuZXcgTGlnbm9kZVtzdWJub2Rlcy5sZW5ndGggKyAxXTsKKworICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1Ym5vZGVzLCAwLCBubm9kZXMsIDAsIGkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG5ub2Rlc1tpXSA9IG5ldyBMaWdub2RlKGMpOworCisgICAgICAgICAgICAgICAgaWYgKGkgPCBzdWJub2Rlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdWJub2RlcywgaSwgbm5vZGVzLCBpICsgMSwgc3Vibm9kZXMubGVuZ3RoIC0gaSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgc3Vibm9kZXMgPSBubm9kZXM7CisKKyAgICAgICAgICAgICAgICBzdWJub2Rlc1tpXS5pbnNlcnQoY2hhcnMsIGluZGV4ICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHdhbGsoVHJlZVdhbGtlciB3YWxrZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB3YWxrZXIuZG93bih0YXJnZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3Vibm9kZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3Vibm9kZXMubGVuZ3RoOyBpICs9IDEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdWJub2Rlc1tpXS53YWxrKHdhbGtlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGlnYXR1cmUgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB3YWxrZXIubGlnYXR1cmUobGlnYXR1cmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgd2Fsa2VyLnVwKCk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGluZCA9ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV3JpdGUgZGVidWdnaW5nIGluZm9ybWF0aW9uIHRvIHcsIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBpbmRlbnRhdGlvbiBsZXZlbC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGR1bXAoV3JpdGVyIHcsIGludCBpbmRlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyB0YWIgPSBpbmQuc3Vic3RyaW5nKDAsIE1hdGgubWluKGluZGVudCwgaW5kLmxlbmd0aCgpKSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdy53cml0ZSh0YWIpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZShVdGlsaXR5LmhleCh0YXJnZXQsIDYpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxpZ2F0dXJlICE9IC0xKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiIC0tPiAiKTsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZShVdGlsaXR5LmhleChsaWdhdHVyZSwgNikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3LndyaXRlKCJcbiIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzdWJub2RlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUodGFiKTsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgie1xuIik7CisgICAgICAgICAgICAgICAgICAgIGluZGVudCArPSA0OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJub2Rlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3Vibm9kZXNbaV0uZHVtcCh3LCBpbmRlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHRhYik7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIn1cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHByaXZhdGUgTGlnbm9kZSByb290ID0gbmV3IExpZ25vZGUoKTsKKyAgICAKKyAgICBwdWJsaWMgTGlnYXR1cmVUcmVlKCkKKyAgICB7CisgICAgICAgIC8vIGFueXRoaW5nPworICAgIH0KKworICAgIHByaXZhdGUgaW50W10gdG9JbnRBcnJheShTdHJpbmcgcykKKyAgICB7CisgICAgICAgIGludCBjb3VudCA9IFVURjE2LmNvdW50Q29kZVBvaW50KHMpOworICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W2NvdW50XTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGluc2VydChTdHJpbmcgc3RyaW5nKQorICAgIHsKKyAgICAgICAgcm9vdC5pbnNlcnQodG9JbnRBcnJheShzdHJpbmcpLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KGludFtdIGNoYXJzKQorICAgIHsKKyAgICAgICAgcm9vdC5pbnNlcnQoY2hhcnMsIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3YWxrKFRyZWVXYWxrZXIgd2Fsa2VyKQorICAgIHsKKyAgICAgICAgcm9vdC53YWxrKHdhbGtlcik7CisgICAgICAgIHdhbGtlci5kb25lKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGR1bXAoKQorICAgIHsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CisgICAgICAgIAorICAgICAgICByb290LmR1bXAocHcsIDApOworICAgICAgICBwdy5mbHVzaCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVUcmVlV2Fsa2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZVdhbGtlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NWUyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZVdhbGtlci5qYXZhCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgTGlnYXR1cmVUcmVlV2Fsa2VyIGV4dGVuZHMgVHJlZVdhbGtlciBpbXBsZW1lbnRzIExvb2t1cFN1YnRhYmxlCit7CisgICAgcHJvdGVjdGVkIGludFtdIGNvbXBvbmVudENoYXJzOworICAgIHByb3RlY3RlZCBpbnQgY29tcG9uZW50Q291bnQ7CisgICAgcHJvdGVjdGVkIGludCBsYXN0Rmlyc3RDb21wb25lbnQ7CisKKyAgICBwcm90ZWN0ZWQgVmVjdG9yIGxpZ2F0dXJlU2V0czsKKyAgICBwcm90ZWN0ZWQgVmVjdG9yIGxpZ2F0dXJlU2V0OworICAgIAorICAgIHB1YmxpYyBMaWdhdHVyZVRyZWVXYWxrZXIoKQorICAgIHsKKyAgICAgICAgY29tcG9uZW50Q2hhcnMgPSBuZXcgaW50WzMwXTsKKyAgICAgICAgY29tcG9uZW50Q291bnQgPSAwOworICAgICAgICBsYXN0Rmlyc3RDb21wb25lbnQgPSAtMTsKKyAgICAgICAgbGlnYXR1cmVTZXQgPSBudWxsOworICAgICAgICBsaWdhdHVyZVNldHMgPSBuZXcgVmVjdG9yKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG93bihpbnQgY2gpCisgICAgeworICAgICAgICBjb21wb25lbnRDaGFyc1tjb21wb25lbnRDb3VudF0gPSBjaDsKKyAgICAgICAgY29tcG9uZW50Q291bnQgKz0gMTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1cCgpCisgICAgeworICAgICAgICBpZiAoY29tcG9uZW50Q291bnQgPiAwKSB7CisgICAgICAgICAgICBjb21wb25lbnRDb3VudCAtPSAxOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbGlnYXR1cmUoaW50IGxpZykKKyAgICB7CisgICAgICAgIGludCBmaXJzdENvbXBvbmVudCA9IGNvbXBvbmVudENoYXJzWzBdOworCisgICAgICAgIGlmIChsYXN0Rmlyc3RDb21wb25lbnQgIT0gZmlyc3RDb21wb25lbnQpIHsKKyAgICAgICAgICAgIGlmIChsaWdhdHVyZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGlnYXR1cmVTZXRzLmFkZEVsZW1lbnQobGlnYXR1cmVTZXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaWdhdHVyZVNldCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIGxhc3RGaXJzdENvbXBvbmVudCA9IGZpcnN0Q29tcG9uZW50OworICAgICAgICB9CisKKyAgICAgICAgbGlnYXR1cmVTZXQuYWRkRWxlbWVudChuZXcgTGlnYXR1cmVFbnRyeShsaWcsIGNvbXBvbmVudENoYXJzLCBjb21wb25lbnRDb3VudCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRvbmUoKQorICAgIHsKKyAgICAgICAgaWYgKGxpZ2F0dXJlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxpZ2F0dXJlU2V0cy5hZGRFbGVtZW50KGxpZ2F0dXJlU2V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgaW50IGZpcnN0Q29tcG9uZW50Q2hhcihpbnQgbGlnYXR1cmVTZXRJbmRleCkKKyAgICB7CisgICAgICAgIFZlY3RvciBsaWdhdHVyZVNldCA9IChWZWN0b3IpIGxpZ2F0dXJlU2V0cy5lbGVtZW50QXQobGlnYXR1cmVTZXRJbmRleCk7CisgICAgICAgIExpZ2F0dXJlRW50cnkgZmlyc3RFbnRyeSA9IChMaWdhdHVyZUVudHJ5KSBsaWdhdHVyZVNldC5lbGVtZW50QXQoMCk7CisKKyAgICAgICAgcmV0dXJuIGZpcnN0RW50cnkuZ2V0Q29tcG9uZW50Q2hhcigwKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZUNvdmVyYWdlVGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBpbnQgbGlnYXR1cmVTZXRDb3VudCA9IGxpZ2F0dXJlU2V0cy5zaXplKCk7CisKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgxKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsaWdhdHVyZVNldENvdW50KTsKKworICAgICAgICBmb3IgKGludCBzZXQgPSAwOyBzZXQgPCBsaWdhdHVyZVNldENvdW50OyBzZXQgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShmaXJzdENvbXBvbmVudENoYXIoc2V0KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVMb29rdXBTdWJ0YWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIGludCBjb3ZlcmFnZU9mZnNldCwgbGlnYXR1cmVTZXRPZmZzZXQsIGxpZ2F0dXJlVGFibGVPZmZzZXQ7CisgICAgICAgIGludCBsaWdhdHVyZVN1YnN0aXR1dGlvbkJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgaW50IGxpZ2F0dXJlU2V0Q291bnQgPSBsaWdhdHVyZVNldHMuc2l6ZSgpOworICAgICAgICAKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIHRhYmxlTmFtZSArICIuLi4iKTsKKworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDEpOyAgIC8vIHN1YnN0Rm9ybWF0CisgICAgICAgIAorICAgICAgICBjb3ZlcmFnZU9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAgIC8vIGNvdmVyYWdlVGFibGVPZmZzZXQgKHdpbGwgZml4IGxhdGVyKQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsaWdhdHVyZVNldENvdW50KTsKKworICAgICAgICBsaWdhdHVyZVNldE9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICBmb3IgKGludCBzZXQgPSAwOyBzZXQgPCBsaWdhdHVyZVNldENvdW50OyBzZXQgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgIC8vIGxpZ2F0dXJlU2V0IG9mZnNldCAtIHdpbGwgZml4IGxhdGVyCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNldCA9IDA7IHNldCA8IGxpZ2F0dXJlU2V0Q291bnQ7IHNldCArPSAxKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFV0aWxpdHkuaGV4KGZpcnN0Q29tcG9uZW50Q2hhcihzZXQpLCA2KSArICI6ICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3IgbGlnYXR1cmVTZXQgPSAoVmVjdG9yKSBsaWdhdHVyZVNldHMuZWxlbWVudEF0KHNldCk7CisgICAgICAgICAgICBpbnQgbGlnYXR1cmVDb3VudCA9IGxpZ2F0dXJlU2V0LnNpemUoKTsKKyAgICAgICAgICAgIGludCBsaWdhdHVyZVNldEFkZHJlc3MgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxpZ2F0dXJlQ291bnQgKyAiIGxpZ2F0dXJlcy4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChsaWdhdHVyZVNldE9mZnNldCsrLCBsaWdhdHVyZVN1YnN0aXR1dGlvbkJhc2UpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsaWdhdHVyZUNvdW50KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGlnYXR1cmVUYWJsZU9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAgICAgZm9yIChpbnQgbGlnID0gMDsgbGlnIDwgbGlnYXR1cmVDb3VudDsgbGlnICs9IDEpIHsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAgLy8gbGlnYXR1cmVUYWJsZU9mZnNldCAod2lsbCBmaXggbGF0ZXIpCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGxpZyA9IDA7IGxpZyA8IGxpZ2F0dXJlQ291bnQ7IGxpZyArPSAxKSB7CisgICAgICAgICAgICAgICAgTGlnYXR1cmVFbnRyeSBlbnRyeSA9IChMaWdhdHVyZUVudHJ5KSBsaWdhdHVyZVNldC5lbGVtZW50QXQobGlnKTsKKyAgICAgICAgICAgICAgICBpbnQgY29tcG9uZW50Q291bnQgPSBlbnRyeS5nZXRDb21wb25lbnRDb3VudCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQobGlnYXR1cmVUYWJsZU9mZnNldCsrLCBsaWdhdHVyZVNldEFkZHJlc3MpOworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZW50cnkuZ2V0TGlnYXR1cmUoKSk7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjb21wb25lbnRDb3VudCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgY29tcCA9IDE7IGNvbXAgPCBjb21wb25lbnRDb3VudDsgY29tcCArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZW50cnkuZ2V0Q29tcG9uZW50Q2hhcihjb21wKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGNvdmVyYWdlT2Zmc2V0LCBsaWdhdHVyZVN1YnN0aXR1dGlvbkJhc2UpOyAKKyAgICAgICAgd3JpdGVDb3ZlcmFnZVRhYmxlKHdyaXRlcik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZjYTMwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwLmphdmEKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyAvKmFic3RyYWN0Ki8gY2xhc3MgTG9va3VwCit7CisgICAgcHJpdmF0ZSBpbnQgbG9va3VwVHlwZTsKKyAgICBwcml2YXRlIGludCBsb29rdXBGbGFnczsKKyAgICBwcml2YXRlIExvb2t1cFN1YnRhYmxlW10gc3VidGFibGVzOworICAgIHByaXZhdGUgaW50IHN1YnRhYmxlQ291bnQ7CisgICAgCisgICAgLy8gTG9va3VwIGZsYWdzCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfUmVzZXJ2ZWRCaXQgICAgICAgICAgPSAweDAwMDE7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfSWdub3JlQmFzZUdseXBocyAgICAgPSAweDAwMDI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfSWdub3JlTGlnYXR1cmVzICAgICAgPSAweDAwMDQ7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfSWdub3JlTWFya3MgICAgICAgICAgPSAweDAwMDg7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfUmVzZXJ2ZWRNYXNrICAgICAgICAgPSAweDAwRjA7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfTWFya0F0dGFjaFR5cGVNYXNrICAgPSAweEZGMDA7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTEZfTWFya0F0dGFjaFR5cGVTaGlmdCAgPSA4OworICAgIAorICAgIC8vIEdTVUIgbG9va3VwIHR5cGVzCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9TaW5nbGUgICAgICAgICAgPSAxOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfTXVsdGlwbGUgICAgICAgID0gMjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX0FsdGVybmF0ZSAgICAgICA9IDM7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9MaWdhdHVyZSAgICAgICAgPSA0OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfQ29udGV4dCAgICAgICAgID0gNTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX0NoYWluaW5nQ29udGV4dCA9IDY7CisKKyAgICAvLyBHUE9TIGxvb2t1cCB0eXBlcworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfU2luZ2xlICAgICAgICAgID0gMTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX1BhaXIgICAgICAgICAgICA9IDI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9DdXJzaXZlICAgICAgICAgPSAzOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfTWFya1RvQmFzZSAgICAgID0gNDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX01hcmtUb0xpZ2F0dXJlICA9IDU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9NYXJrVG9NYXJrICAgICAgPSA2OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfQ29udGV4dCAgICAgICAgID0gNzsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX0NoYWluaW5nQ29udGV4dCA9IDg7CisgICAgCisgICAgcHVibGljIExvb2t1cChpbnQgdGhlTG9va3VwVHlwZSwgaW50IHRoZUxvb2t1cEZsYWdzKQorICAgIHsKKyAgICAgICAgbG9va3VwVHlwZSA9IHRoZUxvb2t1cFR5cGU7CisgICAgICAgIGxvb2t1cEZsYWdzID0gdGhlTG9va3VwRmxhZ3M7CisgICAgICAgIAorICAgICAgICBzdWJ0YWJsZXMgPSBuZXcgTG9va3VwU3VidGFibGVbMTBdOworICAgICAgICBzdWJ0YWJsZUNvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkU3VidGFibGUoTG9va3VwU3VidGFibGUgc3VidGFibGUpCisgICAgeworICAgICAgICBpZiAoc3VidGFibGVDb3VudCA+PSBzdWJ0YWJsZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBMb29rdXBTdWJ0YWJsZVtdIG5ld1N1YnRhYmxlcyA9IG5ldyBMb29rdXBTdWJ0YWJsZVtzdWJ0YWJsZXMubGVuZ3RoICsgNV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3VidGFibGVzLCAwLCBuZXdTdWJ0YWJsZXMsIDAsIHN1YnRhYmxlcy5sZW5ndGgpOworICAgICAgICAgICAgc3VidGFibGVzID0gbmV3U3VidGFibGVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdWJ0YWJsZXNbc3VidGFibGVDb3VudF0gPSBzdWJ0YWJsZTsKKyAgICAgICAgc3VidGFibGVDb3VudCArPSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvb2t1cChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIGludCBsb29rdXBCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxvb2t1cFR5cGUpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxvb2t1cEZsYWdzKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShzdWJ0YWJsZUNvdW50KTsKKyAgICAgICAgCisgICAgICAgIGludCBzdWJ0YWJsZU9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJ0YWJsZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3VidGFibGVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KHN1YnRhYmxlT2Zmc2V0KyssIGxvb2t1cEJhc2UpOworICAgICAgICAgICAgc3VidGFibGVzW2ldLndyaXRlTG9va3VwU3VidGFibGUod3JpdGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cExpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwTGlzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZTU3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cExpc3QuamF2YQpAQCAtMCwwICsxLDU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBjbGFzcyBMb29rdXBMaXN0Cit7CisgICAgcHJpdmF0ZSBMb29rdXBbXSBsb29rdXBzOworICAgIHByaXZhdGUgaW50IGxvb2t1cENvdW50OworICAgIAorICAgIHB1YmxpYyBMb29rdXBMaXN0KCkKKyAgICB7CisgICAgICAgIGxvb2t1cHMgPSBuZXcgTG9va3VwWzEwXTsKKyAgICAgICAgbG9va3VwQ291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGFkZExvb2t1cChMb29rdXAgbG9va3VwKQorICAgIHsKKyAgICAgICAgaWYgKGxvb2t1cENvdW50ID49IGxvb2t1cHMubGVuZ3RoKSB7CisgICAgICAgICAgICBMb29rdXBbXSBuZXdMb29rdXBzID0gbmV3IExvb2t1cFtsb29rdXBzLmxlbmd0aCArIDVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxvb2t1cHMsIDAsIG5ld0xvb2t1cHMsIDAsIGxvb2t1cHMubGVuZ3RoKTsKKyAgICAgICAgICAgIGxvb2t1cHMgPSBuZXdMb29rdXBzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb29rdXBzW2xvb2t1cENvdW50XSA9IGxvb2t1cDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBsb29rdXBDb3VudCsrOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvb2t1cExpc3QoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIndyaXRpbmcgbG9va3VwIGxpc3QuLi4iKTsKKyAgICAgICAgCisgICAgICAgIGludCBsb29rdXBMaXN0QmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsb29rdXBDb3VudCk7CisgICAgICAgIAorICAgICAgICBpbnQgbG9va3VwT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvb2t1cENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7IC8vIE9mZnNldCB0byBsb29rdXAgKGZpeGVkIGxhdGVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb29rdXBDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGxvb2t1cE9mZnNldCsrLCBsb29rdXBMaXN0QmFzZSk7CisgICAgICAgICAgICBsb29rdXBzW2ldLndyaXRlTG9va3VwKHdyaXRlcik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBTdWJ0YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBTdWJ0YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYjAxNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cFN1YnRhYmxlLmphdmEKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgaW50ZXJmYWNlIExvb2t1cFN1YnRhYmxlCit7CisgICAgdm9pZCB3cml0ZUxvb2t1cFN1YnRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L01vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Nb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjRlYjA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Nb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworCitwdWJsaWMgY2xhc3MgTW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIE1vZHVsZVdyaXRlcigpCisgICAgeworICAgICAgICB3cm90ZURlZmluZSA9IGZhbHNlOworICAgICAgICBvdXRwdXQgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG9wZW5GaWxlKFN0cmluZyBvdXRwdXRGaWxlTmFtZSkgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgb3V0cHV0ID0gbmV3IFByaW50U3RyZWFtKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGVOYW1lKSk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPyBDb3VsZCBub3Qgb3BlbiAiICsgb3V0cHV0RmlsZU5hbWUgKyAiIGZvciB3cml0aW5nLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHdyb3RlRGVmaW5lID0gZmFsc2U7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyBtb2R1bGUgIiArIG91dHB1dEZpbGVOYW1lICsgIi4uLiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlSGVhZGVyKFN0cmluZyBkZWZpbmUsIFN0cmluZ1tdIGluY2x1ZGVGaWxlcykKKyAgICB7CisgICAgICAgIHdyaXRlSGVhZGVyKGRlZmluZSwgaW5jbHVkZUZpbGVzLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVIZWFkZXIoU3RyaW5nIGRlZmluZSwgU3RyaW5nW10gaW5jbHVkZUZpbGVzLCBTdHJpbmcgYnJpZWYpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KG1vZHVsZUhlYWRlcik7CisgICAgICAgIE9iamVjdCBhcmdzW10gPSB7bmV3IERhdGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpfTsKKworICAgICAgICBvdXRwdXQucHJpbnQoZm9ybWF0LmZvcm1hdChhcmdzKSk7CisgICAgICAgIAorICAgICAgICBpZiAoZGVmaW5lICE9IG51bGwpIHsKKyAgICAgICAgICAgIHdyb3RlRGVmaW5lID0gdHJ1ZTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiI2lmbmRlZiAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGRlZmluZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiI2RlZmluZSAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGRlZmluZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmNsdWRlRmlsZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmNsdWRlRmlsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiNpbmNsdWRlIFwiIik7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KGluY2x1ZGVGaWxlc1tpXSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChicmllZiAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoYnJpZWYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihtb2R1bGVCZWdpbik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVUcmFpbGVyKCkgeworICAgICAgICBvdXRwdXQucHJpbnQobW9kdWxlVHJhaWxlcik7CisgICAgICAgIAorICAgICAgICBpZiAod3JvdGVEZWZpbmUpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCIjZW5kaWYiKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xvc2VGaWxlKCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUuIik7CisgICAgICAgIG91dHB1dC5jbG9zZSgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIHdyb3RlRGVmaW5lOworICAgIAorICAgIHByb3RlY3RlZCBQcmludFN0cmVhbSBvdXRwdXQ7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBtb2R1bGVIZWFkZXIgPQorICAgICAgICAiLypcbiIgKworICAgICAgICAiICpcbiIgKworICAgICAgICAiICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC17MCxkYXRlLHl5eXl9LiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuIiArCisgICAgICAgICIgKlxuIiArCisgICAgICAgICIgKiBXQVJOSU5HOiBUSElTIEZJTEUgSVMgTUFDSElORSBHRU5FUkFURUQuIERPIE5PVCBIQU5EIEVESVQgSVQgVU5MRVNTXG4iICsKKyAgICAgICAgIiAqIFlPVSBSRUFMTFkgS05PVyBXSEFUIFlPVScnUkUgRE9JTkcuXG4iICsKKyAgICAgICAgIiAqXG4iICsKKyAgICAgICAgIiAqIEdlbmVyYXRlZCBvbjogezAsZGF0ZSxNTS9kZC95eXl5IGhoOm1tOnNzIGEgen1cbiIgKworICAgICAgICAiICovXG4iICsKKyAgICAgICAgIlxuIjsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIG1vZHVsZUJlZ2luID0gIlVfTkFNRVNQQUNFX0JFR0lOXG4iOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgbW9kdWxlVHJhaWxlciA9ICJVX05BTUVTUEFDRV9FTkRcbiI7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWJsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhYmxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE2ZDgzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWJsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2Fic3RyYWN0IGNsYXNzIE9wZW5UeXBlVGFibGVXcml0ZXIKK3sKKyAgICBzdGF0aWMgY2xhc3MgT3BlblR5cGVUYWJsZUR1bXBlcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzaG9ydFtdIHRhYmxlOworICAgICAgICBwcml2YXRlIGludCB0YWJsZUxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIE9wZW5UeXBlVGFibGVEdW1wZXIoc2hvcnRbXSBkYXRhLCBpbnQgb3V0cHV0SW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhYmxlID0gZGF0YTsKKyAgICAgICAgICAgIHRhYmxlTGVuZ3RoID0gb3V0cHV0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBsZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVMZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYXBwZW5kVmFsdWUoU3RyaW5nQnVmZmVyIGxpbmUsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgc2hvcnQgdmFsdWUgPSB0YWJsZVtpbmRleF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIweCIpOworICAgICAgICAgICAgbGluZS5hcHBlbmQoVXRpbGl0eS5oZXgoKHZhbHVlID4+IDgpICYgMHhGRiwgMikpOworICAgICAgICAgICAgbGluZS5hcHBlbmQoIiwgIik7CisKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIweCIpOworICAgICAgICAgICAgbGluZS5hcHBlbmQoVXRpbGl0eS5oZXgodmFsdWUgJiAweEZGLCAyKSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGR1bXBUYWJsZShQcmludFN0cmVhbSBvdXRwdXQsIGludCB2YWx1ZXNQZXJMaW5lKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbGluZSA9IG5ldyBTdHJpbmdCdWZmZXIoIiAgICAiKTsgLy8gZm91ciBzcGFjZXMKKyAgICAgICAgICAgIGludCBtYXhJbmRleCA9IGxlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4SW5kZXg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBpICUgdmFsdWVzUGVyTGluZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmUuc2V0TGVuZ3RoKDQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgYXBwZW5kVmFsdWUobGluZSwgaSk7CisgICAgICAgICAgICAgICAgbGluZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgbGluZS5zZXRMZW5ndGgobGluZS5sZW5ndGgoKSAtIDIpOworICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICBwcm90ZWN0ZWQgc2hvcnRbXSBkYXRhOworICAgIHByb3RlY3RlZCBpbnQgb3V0cHV0SW5kZXg7CisKKyAgICBwdWJsaWMgT3BlblR5cGVUYWJsZVdyaXRlcihpbnQgaW5pdGlhbEJ1ZmZlclNpemUpCisgICAgeworICAgICAgICBkYXRhID0gbmV3IHNob3J0W2luaXRpYWxCdWZmZXJTaXplXTsKKyAgICAgICAgb3V0cHV0SW5kZXggPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgT3BlblR5cGVUYWJsZVdyaXRlcigpCisgICAgeworICAgICAgICB0aGlzKDEwMjQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE91dHB1dEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBvdXRwdXRJbmRleDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVEYXRhKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChvdXRwdXRJbmRleCA+PSBkYXRhLmxlbmd0aCkKKyAgICAgICAgeworICAgICAgICAgICAgc2hvcnRbXSBuZXdEYXRhID0gbmV3IHNob3J0W2RhdGEubGVuZ3RoICsgNTEyXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkYXRhLCAwLCBuZXdEYXRhLCAwLCBkYXRhLmxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGEgPSBuZXdEYXRhOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkYXRhW291dHB1dEluZGV4XSA9IChzaG9ydCkgdmFsdWU7CisgICAgICAgIG91dHB1dEluZGV4ICs9IDE7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFnKFN0cmluZyB0YWcpCisgICAgeworICAgICAgICBjaGFyW10gY2hhckFycmF5ID0geydcMCcsICdcMCcsICdcMCcsICdcMCd9OworICAgICAgICBpbnQgbWF4ID0gTWF0aC5taW4odGFnLmxlbmd0aCgpLCA0KTsKKyAgICAgICAgCisgICAgICAgIHRhZy5nZXRDaGFycygwLCBtYXgsIGNoYXJBcnJheSwgMCk7CisgICAgICAgIAorICAgICAgICB3cml0ZURhdGEoKChjaGFyQXJyYXlbMF0gJiAweEZGKSA8PCA4KSArIChjaGFyQXJyYXlbMV0gJiAweEZGKSk7CisgICAgICAgIHdyaXRlRGF0YSgoKGNoYXJBcnJheVsyXSAmIDB4RkYpIDw8IDgpICsgKGNoYXJBcnJheVszXSAmIDB4RkYpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZml4T2Zmc2V0KGludCBvZmZzZXQsIGludCBiYXNlKQorICAgIHsKKyAgICAgICAgLy8gKiAyIHRvIGNvbnZlcnQgZnJvbSBzaG9ydCB0byBieXRlIGluZGV4CisgICAgICAgIGRhdGFbb2Zmc2V0XSA9IChzaG9ydCkgKChvdXRwdXRJbmRleCAtIGJhc2UpICogMik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGR1bXBUYWJsZShQcmludFN0cmVhbSBvdXRwdXQsIGludCB2YWx1ZXNQZXJMaW5lKQorICAgIHsKKyAgICAgICAgT3BlblR5cGVUYWJsZUR1bXBlciBkdW1wZXIgPSBuZXcgT3BlblR5cGVUYWJsZUR1bXBlcihkYXRhLCBvdXRwdXRJbmRleCk7CisgICAgICAgIAorICAgICAgICBkdW1wZXIuZHVtcFRhYmxlKG91dHB1dCwgdmFsdWVzUGVyTGluZSk7CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHB1YmxpYyB2b2lkIHdyaXRlVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWdCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFnQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZTExMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFnQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBPcGVuVHlwZVRhZ0J1aWxkZXIKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSB0YWJsZVRhZ3MgPSB7CisgICAgICAgICJhY250IiwKKyAgICAgICAgImF2YXIiLAorICAgICAgICAiQkFTRSIsCisgICAgICAgICJiZGF0IiwKKyAgICAgICAgImJoZWQiLAorICAgICAgICAiYmxvYyIsCisgICAgICAgICJic2xuIiwKKyAgICAgICAgIkNGRiAiLAorICAgICAgICAiY21hcCIsCisgICAgICAgICJjdmFyIiwKKyAgICAgICAgImN2dCAiLAorICAgICAgICAiRFNJRyIsCisgICAgICAgICJFQkRUIiwKKyAgICAgICAgIkVCTEMiLAorICAgICAgICAiRUJTQyIsCisgICAgICAgICJmZHNjIiwKKyAgICAgICAgImZlYXQiLAorICAgICAgICAiZm10eCIsCisgICAgICAgICJmcGdtIiwKKyAgICAgICAgImZ2YXIiLAorICAgICAgICAiZ2FzcCIsCisgICAgICAgICJHREVGIiwKKyAgICAgICAgImdseWYiLAorICAgICAgICAiR1BPUyIsCisgICAgICAgICJHU1VCIiwKKyAgICAgICAgImd2YXIiLAorICAgICAgICAiaGRteCIsCisgICAgICAgICJoZWFkIiwKKyAgICAgICAgImhoZWEiLAorICAgICAgICAiaG10eCIsCisgICAgICAgICJoc3R5IiwKKyAgICAgICAgImp1c3QiLAorICAgICAgICAiSlNURiIsCisgICAgICAgICJrZXJuIiwKKyAgICAgICAgImxjYXIiLAorICAgICAgICAibG9jYSIsCisgICAgICAgICJMVFNIIiwKKyAgICAgICAgIm1heHAiLAorICAgICAgICAibW9ydCIsCisgICAgICAgICJtb3J4IiwKKyAgICAgICAgIm5hbWUiLAorICAgICAgICAib3BiZCIsCisgICAgICAgICJPUy8yIiwKKyAgICAgICAgIlBDTFQiLAorICAgICAgICAicG9zdCIsCisgICAgICAgICJwcmVwIiwKKyAgICAgICAgInByb3AiLAorICAgICAgICAidHJhayIsCisgICAgICAgICJWRE1YIiwKKyAgICAgICAgInZoZWEiLAorICAgICAgICAidm10eCIsCisgICAgICAgICJWT1JHIiwKKyAgICAgICAgIlphcGYiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIGZlYXR1cmVUYWdzID0geworICAgICAgICAiYWFsdCIsCisgICAgICAgICJhYnZmIiwKKyAgICAgICAgImFidm0iLAorICAgICAgICAiYWJ2cyIsCisgICAgICAgICJhZnJjIiwKKyAgICAgICAgImFraG4iLAorICAgICAgICAiYmx3ZiIsCisgICAgICAgICJibHdtIiwKKyAgICAgICAgImJsd3MiLAorICAgICAgICAiY2FsdCIsCisgICAgICAgICJjYXNlIiwKKyAgICAgICAgImNjbXAiLAorICAgICAgICAiY2xpZyIsCisgICAgICAgICJjcHNwIiwKKyAgICAgICAgImNzd2giLAorICAgICAgICAiY3VycyIsCisgICAgICAgICJjMnNjIiwKKyAgICAgICAgImMycGMiLAorICAgICAgICAiZGlzdCIsCisgICAgICAgICJkbGlnIiwKKyAgICAgICAgImRub20iLAorICAgICAgICAiZXhwdCIsCisgICAgICAgICJmYWx0IiwKKyAgICAgICAgImZpbjIiLAorICAgICAgICAiZmluMyIsCisgICAgICAgICJmaW5hIiwKKyAgICAgICAgImZyYWMiLAorICAgICAgICAiZndpZCIsCisgICAgICAgICJoYWxmIiwKKyAgICAgICAgImhhbG4iLAorICAgICAgICAiaGFsdCIsCisgICAgICAgICJoaXN0IiwKKyAgICAgICAgImhrbmEiLAorICAgICAgICAiaGxpZyIsCisgICAgICAgICJobmdsIiwKKyAgICAgICAgImh3aWQiLAorICAgICAgICAiaW5pdCIsCisgICAgICAgICJpc29sIiwKKyAgICAgICAgIml0YWwiLAorICAgICAgICAiamFsdCIsCisgICAgICAgICJqcDc4IiwKKyAgICAgICAgImpwODMiLAorICAgICAgICAianA5MCIsCisgICAgICAgICJrZXJuIiwKKyAgICAgICAgImxmYmQiLAorICAgICAgICAibGlnYSIsCisgICAgICAgICJsam1vIiwKKyAgICAgICAgImxudW0iLAorICAgICAgICAibG9jbCIsCisgICAgICAgICJtYXJrIiwKKyAgICAgICAgIm1lZDIiLAorICAgICAgICAibWVkaSIsCisgICAgICAgICJtZ3JrIiwKKyAgICAgICAgIm1rbWsiLAorICAgICAgICAibXNldCIsCisgICAgICAgICJuYWx0IiwKKyAgICAgICAgIm5sY2siLAorICAgICAgICAibnVrdCIsCisgICAgICAgICJudW1yIiwKKyAgICAgICAgIm9udW0iLAorICAgICAgICAib3BiZCIsCisgICAgICAgICJvcmRuIiwKKyAgICAgICAgIm9ybm0iLAorICAgICAgICAicGFsdCIsCisgICAgICAgICJwY2FwIiwKKyAgICAgICAgInBudW0iLAorICAgICAgICAicHJlZiIsCisgICAgICAgICJwcmVzIiwKKyAgICAgICAgInBzdGYiLAorICAgICAgICAicHN0cyIsCisgICAgICAgICJwd2lkIiwKKyAgICAgICAgInF3aWQiLAorICAgICAgICAicmFuZCIsCisgICAgICAgICJybGlnIiwKKyAgICAgICAgInJwaGYiLAorICAgICAgICAicnRiZCIsCisgICAgICAgICJydGxhIiwKKyAgICAgICAgInJ1YnkiLAorICAgICAgICAic2FsdCIsCisgICAgICAgICJzaW5mIiwKKyAgICAgICAgInNpemUiLAorICAgICAgICAic21jcCIsCisgICAgICAgICJzbXBsIiwKKyAgICAgICAgInNzMDEiLAorICAgICAgICAic3MwMiIsCisgICAgICAgICJzczAzIiwKKyAgICAgICAgInNzMDQiLAorICAgICAgICAic3MwNSIsCisgICAgICAgICJzczA2IiwKKyAgICAgICAgInNzMDciLAorICAgICAgICAic3MwOCIsCisgICAgICAgICJzczA5IiwKKyAgICAgICAgInNzMTAiLAorICAgICAgICAic3MxMSIsCisgICAgICAgICJzczEyIiwKKyAgICAgICAgInNzMTMiLAorICAgICAgICAic3MxNCIsCisgICAgICAgICJzczE1IiwKKyAgICAgICAgInNzMTYiLAorICAgICAgICAic3MxNyIsCisgICAgICAgICJzczE4IiwKKyAgICAgICAgInNzMTkiLAorICAgICAgICAic3MyMCIsCisgICAgICAgICJzdWJzIiwKKyAgICAgICAgInN1cHMiLAorICAgICAgICAic3dzaCIsCisgICAgICAgICJ0aXRsIiwKKyAgICAgICAgInRqbW8iLAorICAgICAgICAidG5hbSIsCisgICAgICAgICJ0bnVtIiwKKyAgICAgICAgInRyYWQiLAorICAgICAgICAidHdpZCIsCisgICAgICAgICJ1bmljIiwKKyAgICAgICAgInZhbHQiLAorICAgICAgICAidmF0dSIsCisgICAgICAgICJ2ZXJ0IiwKKyAgICAgICAgInZoYWwiLAorICAgICAgICAidmptbyIsCisgICAgICAgICJ2a25hIiwKKyAgICAgICAgInZrcm4iLAorICAgICAgICAidnBhbCIsCisgICAgICAgICJ2cnQyIiwKKyAgICAgICAgInplcm8iCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdGFnTGFiZWwoU3RyaW5nIHRhZykKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZyB1cHBlclRhZyA9IHRhZy50b1VwcGVyQ2FzZSgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1cHBlclRhZy5sZW5ndGgoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdXBwZXJUYWcuY2hhckF0KGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoKGNoIDwgJ0EnIHx8IGNoID4gJ1onKSAmJiAoY2ggPCAnMCcgfHwgY2ggPiAnOScpKSB7CisgICAgICAgICAgICAgICAgY2ggPSAnXyc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZHVtcFRhZ3MoU3RyaW5nIGVudW1OYW1lLCBTdHJpbmdbXSB0YWdzKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnVtIExFIiArIGVudW1OYW1lICsgIlRhZ3MgeyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBTdHJpbmcgdGFnID0gdGFnc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgTEVfIiArIHRhZ0xhYmVsKHRhZykgKyAiXyIgKyBlbnVtTmFtZS50b1VwcGVyQ2FzZSgpICsKKyAgICAgICAgICAgICAgICAiX1RBRyA9ICIgKyBUYWdVdGlsaXRpZXMubWFrZVRhZyh0YWcpICsgIlVMIiArCisgICAgICAgICAgICAgICAgKGkgPT0gdGFncy5sZW5ndGggLSAxPyAiICIgOiAiLCIpICsgIiAvKiAnIiArIHRhZyArICInICovIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIGR1bXBUYWdzKCJUYWJsZSIsIHRhYmxlVGFncyk7CisgICAgICAgIGR1bXBUYWdzKCJGZWF0dXJlIiwgZmVhdHVyZVRhZ3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHREYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg2YWFkNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0RGF0YS5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIFNjcmlwdERhdGEgZXh0ZW5kcyBUYWdWYWx1ZURhdGEKK3sKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlY29yZAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgc3RhcnRDaGFyOworICAgICAgICBwcml2YXRlIGludCBlbmRDaGFyOworICAgICAgICBwcml2YXRlIGludCBzY3JpcHRDb2RlOworICAgICAgICAKKyAgICAgICAgUmVjb3JkKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbm90aGluZz8KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUmVjb3JkKGludCB0aGVDaGFyLCBpbnQgdGhlU2NyaXB0Q29kZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcyh0aGVDaGFyLCB0aGVDaGFyLCB0aGVTY3JpcHRDb2RlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUmVjb3JkKGludCB0aGVTdGFydENoYXIsIGludCB0aGVFbmRDaGFyLCBpbnQgdGhlU2NyaXB0Q29kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3RhcnRDaGFyID0gdGhlU3RhcnRDaGFyOworICAgICAgICAgICAgZW5kQ2hhciA9IHRoZUVuZENoYXI7CisgICAgICAgICAgICBzY3JpcHRDb2RlID0gdGhlU2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBzdGFydENoYXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnRDaGFyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGVuZENoYXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZW5kQ2hhcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBzY3JpcHRDb2RlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKFJlY29yZCB0aGF0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFydENoYXIgLSB0aGF0LnN0YXJ0Q2hhcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiWyIgKyAgVXRpbGl0eS5oZXgoc3RhcnRDaGFyLCA2KSArICIuLiIgKworICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KGVuZENoYXIsIDYpICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5nZXRTaG9ydE5hbWUoc2NyaXB0Q29kZSkudG9Mb3dlckNhc2UoKSArICJTY3JpcHRDb2RlXSI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gVE9ETzogRXhjZXB0aW9ucyBjb3VsZCBiZSBnZW5lcmF0ZWQgYWxnb3JpdGhtaWNhbGx5CisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGFnRXhjZXB0aW9uCisgICAgeworICAgICAgICBwcml2YXRlIFN0cmluZyBpY3VUYWc7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG90VGFnOworICAgICAgICAKKyAgICAgICAgcHVibGljIFRhZ0V4Y2VwdGlvbihTdHJpbmcgaWN1LCBTdHJpbmcgb3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGljdVRhZyA9IGljdTsKKyAgICAgICAgICAgIG90VGFnICA9IG90OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldElDVVRhZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpY3VUYWc7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0T1RUYWcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gb3RUYWc7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gVE9ETzogc2hvcnQgbmFtZSBsb25nZXIgdGhhbiBsb25nIG5hbWUsIHJlcGxhY2UgcmVwZWF0ZWQgY2hhcnMgdy8gc3BhY2UuLi4KKyAgICBwcml2YXRlIFNjcmlwdERhdGEuVGFnRXhjZXB0aW9uIGV4Y2VwdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIG5ldyBTY3JpcHREYXRhLlRhZ0V4Y2VwdGlvbigibGFvbyIsICJsYW8gIiksCisgICAgICAgICAgICBuZXcgU2NyaXB0RGF0YS5UYWdFeGNlcHRpb24oIm5rb28iLCAibmtvICIpLCAvLyBOZXcgY29kZSBmcm9tIElTTyAxNTkyNCwgbm90IHN1cmUgdGhpcyB3aWxsIGJlIE9UIHRhZworICAgICAgICAgICAgbmV3IFNjcmlwdERhdGEuVGFnRXhjZXB0aW9uKCJ2YWlpIiwgInZhaSAiKSwgLy8gTmV3IGNvZGUgZnJvbSBJU08gMTU5MjQsIG5vdCBzdXJlIHRoaXMgd2lsbCBiZSBPVCB0YWcKKyAgICAgICAgICAgIG5ldyBTY3JpcHREYXRhLlRhZ0V4Y2VwdGlvbigieWlpaSIsICJ5aSAgIikKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgCisgICAgLy8gVE9ETzogYmluYXJ5IHNlYXJjaCB0aGUgZXhjZXB0aW9ucyBsaXN0PworICAgIHByaXZhdGUgU3RyaW5nIGdldEV4Y2VwdGlvbihTdHJpbmcgaWN1KQorICAgIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGV4Y2VwdGlvbnMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChleGNlcHRpb25zW2ldLmdldElDVVRhZygpLmVxdWFscyhpY3UpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnNbaV0uZ2V0T1RUYWcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGljdTsKKyAgICB9CisgICAgICAgIAorICAgIC8vCisgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgLy8KKyAgICBwcml2YXRlIHZvaWQgc29ydCgpCisgICAgeworICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IGZSZWNvcmRzLmxlbmd0aDsgaiArPSAxKSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIFJlY29yZCB2ID0gZlJlY29yZHNbal07CisKKyAgICAgICAgICAgIGZvciAoaSA9IGogLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgIGlmICh2LmNvbXBhcmVUbyhmUmVjb3Jkc1tpXSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmUmVjb3Jkc1tpICsgMV0gPSBmUmVjb3Jkc1tpXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlJlY29yZHNbaSArIDFdID0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFNjcmlwdERhdGEoKQorICAgIHsKKyAgICAgICAgaW50IGNvbW1vblNjcmlwdCA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwgIkNPTU1PTiIpOworICAgICAgICBpbnQgc2NyaXB0Q291bnQ7CisgICAgICAgIFZlY3RvciBydiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGZNaW5TY3JpcHQgID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQpOworICAgICAgICBmTWF4U2NyaXB0ICA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuU0NSSVBUKTsKKyAgICAgICAgc2NyaXB0Q291bnQgPSBmTWF4U2NyaXB0IC0gZk1pblNjcmlwdCArIDE7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbGxlY3Rpbmcgc2NyaXB0IGRhdGEgZm9yICIgKyBzY3JpcHRDb3VudCArICIgc2NyaXB0cy4uLiIpOworICAgICAgICAKKyAgICAgICAgZlNjcmlwdE5hbWVzID0gbmV3IFN0cmluZ1tzY3JpcHRDb3VudF07CisgICAgICAgIGZTY3JpcHRUYWdzICA9IG5ldyBTdHJpbmdbc2NyaXB0Q291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gZk1pblNjcmlwdDsgc2NyaXB0IDw9IGZNYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBmU2NyaXB0TmFtZXNbc2NyaXB0IC0gZk1pblNjcmlwdF0gPSBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KS50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgZlNjcmlwdFRhZ3Nbc2NyaXB0IC0gZk1pblNjcmlwdF0gID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUoc2NyaXB0KS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0ICE9IGNvbW1vblNjcmlwdCkgeworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2NyaXB0U2V0ICA9IG5ldyBVbmljb2RlU2V0KCJcXHB7IiArIGZTY3JpcHRUYWdzW3NjcmlwdCAtIGZNaW5TY3JpcHRdICsgIn0iKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNjcmlwdFNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgUmVjb3JkIHJlY29yZCA9IG5ldyBSZWNvcmQoaXQuY29kZXBvaW50LCBpdC5jb2RlcG9pbnRFbmQsIHNjcmlwdCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBydi5hZGRFbGVtZW50KHJlY29yZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmUmVjb3JkcyA9IG5ldyBSZWNvcmRbcnYuc2l6ZSgpXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnYuc2l6ZSgpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZSZWNvcmRzW2ldID0gKFJlY29yZCkgcnYuZWxlbWVudEF0KGkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbGxlY3RlZCAiICsgcnYuc2l6ZSgpICsgIiByZWNvcmRzLiBTb3J0aW5nLi4uIik7CisgICAgICAgIHNvcnQoKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZS4iKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRNaW5WYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gZk1pblNjcmlwdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRNYXhWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gZk1heFNjcmlwdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRSZWNvcmRDb3VudCgpCisgICAgeworICAgICAgICByZXR1cm4gZlJlY29yZHMubGVuZ3RoOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZyhpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPj0gZk1pblNjcmlwdCAmJiB2YWx1ZSA8PSBmTWF4U2NyaXB0KSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RXhjZXB0aW9uKGZTY3JpcHRUYWdzW3ZhbHVlIC0gZk1pblNjcmlwdF0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gInp5eXgiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZ0xhYmVsKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA+PSBmTWluU2NyaXB0ICYmIHZhbHVlIDw9IGZNYXhTY3JpcHQpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2NyaXB0VGFnc1t2YWx1ZSAtIGZNaW5TY3JpcHRdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gInp5eXgiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIG1ha2VUYWcoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID49IGZNaW5TY3JpcHQgJiYgdmFsdWUgPD0gZk1heFNjcmlwdCkgeworICAgICAgICAgICAgU3RyaW5nIHRhZyA9IGdldEV4Y2VwdGlvbihmU2NyaXB0VGFnc1t2YWx1ZSAtIGZNaW5TY3JpcHRdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIFRhZ1V0aWxpdGllcy5tYWtlVGFnKHRhZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gIjB4MDAwMDAwMDAiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPj0gZk1pblNjcmlwdCAmJiB2YWx1ZSA8PSBmTWF4U2NyaXB0KSB7CisgICAgICAgICAgICByZXR1cm4gZlNjcmlwdE5hbWVzW3ZhbHVlIC0gZk1pblNjcmlwdF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAiQ09NTU9OIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIFJlY29yZCBnZXRSZWNvcmQoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGZSZWNvcmRzICE9IG51bGwgJiYgaW5kZXggPCBmUmVjb3Jkcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmUmVjb3Jkc1tpbmRleF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBmTWluU2NyaXB0OworICAgIHByaXZhdGUgaW50IGZNYXhTY3JpcHQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgZlNjcmlwdE5hbWVzW107CisgICAgcHJpdmF0ZSBTdHJpbmcgZlNjcmlwdFRhZ3NbXTsKKyAgICBwcml2YXRlIFJlY29yZCBmUmVjb3Jkc1tdOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRJRE1vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRJRE1vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMWMwNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdElETW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgY2xhc3MgU2NyaXB0SURNb2R1bGVXcml0ZXIgZXh0ZW5kcyBTY3JpcHRNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgU2NyaXB0SURNb2R1bGVXcml0ZXIoU2NyaXB0RGF0YSBzY3JpcHREYXRhLCBMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhKQorICAgIHsKKyAgICAgICAgc3VwZXIoc2NyaXB0RGF0YSwgbGFuZ3VhZ2VEYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdEhlYWRlcihTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBpbnQgbWluU2NyaXB0ID0gc2NyaXB0RGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4U2NyaXB0ID0gc2NyaXB0RGF0YS5nZXRNYXhWYWx1ZSgpOworICAgICAgICBpbnQgdmVyTWFqb3IgID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWFqb3IoKTsKKyAgICAgICAgaW50IHZlck1pbm9yICA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbm9yKCk7CisgICAgICAgIAorICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKCJfX0xFU0NSSVBUU19IIiwgaW5jbHVkZUZpbGVzLCBzY3JpcHRCcmllZik7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChzY3JpcHRQcmVhbWJsZSk7CisgICAgICAgIE9iamVjdCBhcmdzW10gPSB7bmV3IEludGVnZXIodmVyTWFqb3IpLCBuZXcgSW50ZWdlcih2ZXJNaW5vcil9OworCisgICAgICAgIG91dHB1dC5wcmludGxuKGZvcm1hdC5mb3JtYXQoYXJncykpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gbWluU2NyaXB0OyBzY3JpcHQgPD0gbWF4U2NyaXB0OyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0RGF0YS5nZXRUYWdMYWJlbChzY3JpcHQpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiU2NyaXB0Q29kZSA9ICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0IDwgMTApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdCk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiLCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICBvdXRwdXQucHJpbnQoIiAgICBzY3JpcHRDb2RlQ291bnQgPSAiKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4obWF4U2NyaXB0IC0gbWluU2NyaXB0ICsgMSk7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihwb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxhbmd1YWdlSGVhZGVyKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIGludCBtaW5MYW5ndWFnZSA9IGxhbmd1YWdlRGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4TGFuZ3VhZ2UgPSBsYW5ndWFnZURhdGEuZ2V0TWF4VmFsdWUoKTsKKyAgICAgICAgaW50IHZlck1ham9yICAgID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWFqb3IoKTsKKyAgICAgICAgaW50IHZlck1pbm9yICAgID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWlub3IoKTsKKyAgICAgICAgCisgICAgICAgIG9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIoIl9fTEVMQU5HVUFHRVNfSCIsIGluY2x1ZGVGaWxlcywgbGFuZ3VhZ2VCcmllZik7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChsYW5ndWFnZVByZWFtYmxlKTsKKyAgICAgICAgT2JqZWN0IGFyZ3NbXSA9IHtuZXcgSW50ZWdlcih2ZXJNYWpvciksIG5ldyBJbnRlZ2VyKHZlck1pbm9yKX07CisKKyAgICAgICAgb3V0cHV0LnByaW50bG4oZm9ybWF0LmZvcm1hdChhcmdzKSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBsYW5ndWFnZSA9IG1pbkxhbmd1YWdlOyBsYW5ndWFnZSA8PSBtYXhMYW5ndWFnZTsgbGFuZ3VhZ2UgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQobGFuZ3VhZ2VEYXRhLmdldFRhZ0xhYmVsKGxhbmd1YWdlKS50b0xvd2VyQ2FzZSgpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiTGFuZ3VhZ2VDb2RlID0gIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsYW5ndWFnZSA8IDEwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludChsYW5ndWFnZSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiLCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICBvdXRwdXQucHJpbnQoIiAgICBsYW5ndWFnZUNvZGVDb3VudCA9ICIpOworICAgICAgICBvdXRwdXQucHJpbnRsbihtYXhMYW5ndWFnZSAtIG1pbkxhbmd1YWdlICsgMSk7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihwb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBpbmNsdWRlRmlsZXMgPSB7IkxFVHlwZXMuaCJ9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzY3JpcHRQcmVhbWJsZSA9IAorICAgICIvKipcbiIgKworICAgICIgKiBDb25zdGFudHMgZm9yIFVuaWNvZGUgc2NyaXB0IHZhbHVlcywgZ2VuZXJhdGVkIHVzaW5nXG4iICsKKyAgICAiICogSUNVNEonJ3MgPGNvZGU+VVNjcmlwdDwvY29kZT4gY2xhc3MuXG4iICsKKyAgICAiICpcbiIgKworICAgICIgKiBAZHJhZnQgSUNVIHswfS57MX1cbiIgKworICAgICIgKi9cbiIgKworICAgICJcbiIgKworICAgICJlbnVtIFNjcmlwdENvZGVzICd7JyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHNjcmlwdEJyaWVmID0KKyAgICAiLyoqXG4iICsKKyAgICAiICogXFxmaWxlXG4iICsgCisgICAgIiAqIFxcYnJpZWYgQysrIEFQSTogQ29uc3RhbnRzIGZvciBVbmljb2RlIHNjcmlwdCB2YWx1ZXNcbiIgKworICAgICIgKi9cbiIgKworICAgICJcbiI7CisKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbGFuZ3VhZ2VQcmVhbWJsZSA9IAorICAgICIvKipcbiIgKworICAgICIgKiBBIHByb3Zpc2lvbmFsIGxpc3Qgb2YgbGFuZ3VhZ2UgY29kZXMuIEZvciBub3csXG4iICsKKyAgICAiICogdGhpcyBpcyBqdXN0IGEgbGlzdCBvZiBsYW5ndWFnZXMgd2hpY2ggdGhlIExheW91dEVuZ2luZVxuIiArCisgICAgIiAqIHN1cHBvcnRzLlxuIiArCisgICAgIiAqXG4iICsKKyAgICAiICogQGRyYWZ0IElDVSB7MH0uezF9XG4iICsKKyAgICAiICovXG4iICsKKyAgICAiXG4iICsKKyAgICAiZW51bSBMYW5ndWFnZUNvZGVzICd7JyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxhbmd1YWdlQnJpZWYgPQorICAgICAgICAiLyoqXG4iICsKKyAgICAgICAgIiAqIFxcZmlsZVxuIiArIAorICAgICAgICAiICogXFxicmllZiBDKysgQVBJOiBMaXN0IG9mIGxhbmd1YWdlIGNvZGVzIGZvciBMYXlvdXRFbmdpbmVcbiIgKworICAgICAgICAiICovXG4iICsKKyAgICAgICAgIlxuIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBwb3N0YW1ibGUgPQorICAgICJ9O1xuIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdExpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TGlzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNjI2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdExpc3QuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyBjbGFzcyBTY3JpcHRMaXN0Cit7CisgICAgc3RhdGljIGNsYXNzIExhbmdTeXNSZWNvcmQgZXh0ZW5kcyBUYWdnZWRSZWNvcmQKKyAgICB7CisgICAgICAgIHByaXZhdGUgRmVhdHVyZVtdIGZlYXR1cmVzOworICAgICAgICBwcml2YXRlIGludCBmZWF0dXJlQ291bnQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTGFuZ1N5c1JlY29yZChTdHJpbmcgdGhlTGFuZ3VhZ2VUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKHRoZUxhbmd1YWdlVGFnKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmVhdHVyZXMgPSBuZXcgRmVhdHVyZVsxMF07CisgICAgICAgICAgICBmZWF0dXJlQ291bnQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBhZGRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZlYXR1cmVDb3VudCA+IGZlYXR1cmVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIEZlYXR1cmVbXSBuZXdGZWF0dXJlcyA9IG5ldyBGZWF0dXJlW2ZlYXR1cmVzLmxlbmd0aCArIDVdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZmVhdHVyZXMsIDAsIG5ld0ZlYXR1cmVzLCAwLCBmZWF0dXJlcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGZlYXR1cmVzID0gbmV3RmVhdHVyZXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZlYXR1cmVzW2ZlYXR1cmVDb3VudCsrXSA9IGZlYXR1cmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZUxhbmdTeXNSZWNvcmQoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7ICAgICAgLy8gbG9va3VwT3JkZXIgKG11c3QgYmUgTlVMTCkKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMHhGRkZGKTsgLy8gcmVxRmVhdHVyZUluZGV4ICgweEZGRkYgbWVhbnMgbm9uZSkKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShmZWF0dXJlQ291bnQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZlYXR1cmVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShmZWF0dXJlc1tpXS5nZXRGZWF0dXJlSW5kZXgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFNjcmlwdFJlY29yZCBleHRlbmRzIFRhZ2dlZFJlY29yZAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBMYW5nU3lzUmVjb3JkW10gbGFuZ1N5c1JlY29yZHM7CisgICAgICAgIHByaXZhdGUgaW50IGxhbmdTeXNDb3VudDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTY3JpcHRSZWNvcmQoU3RyaW5nIHRoZVNjcmlwdFRhZykKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIodGhlU2NyaXB0VGFnKTsKKyAgICAgICAgICAgIGxhbmdTeXNSZWNvcmRzID0gbmV3IExhbmdTeXNSZWNvcmRbMTBdOworICAgICAgICAgICAgbGFuZ1N5c0NvdW50ID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIExhbmdTeXNSZWNvcmQgZmluZExhbmdTeXNSZWNvcmQoU3RyaW5nIGxhbmd1YWdlVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxhbmdTeXNDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgTGFuZ1N5c1JlY29yZCBsYW5nU3lzUmVjb3JkID0gbGFuZ1N5c1JlY29yZHNbaV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxhbmdTeXNSZWNvcmQuZ2V0VGFnKCkuZXF1YWxzKGxhbmd1YWdlVGFnKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFuZ1N5c1JlY29yZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsYW5nU3lzQ291bnQgPj0gbGFuZ1N5c1JlY29yZHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgTGFuZ1N5c1JlY29yZFtdIG5ld0xhbmdTeXNSZWNvcmRzID0gbmV3IExhbmdTeXNSZWNvcmRbbGFuZ1N5c0NvdW50ICsgNV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsYW5nU3lzUmVjb3JkcywgMCwgbmV3TGFuZ1N5c1JlY29yZHMsIDAsIGxhbmdTeXNSZWNvcmRzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGFuZ1N5c1JlY29yZHMgPSBuZXdMYW5nU3lzUmVjb3JkczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgTGFuZ1N5c1JlY29yZCBuZXdMYW5nU3lzUmVjb3JkID0gbmV3IExhbmdTeXNSZWNvcmQobGFuZ3VhZ2VUYWcpOworICAgICAgICAgICAgbGFuZ1N5c1JlY29yZHNbbGFuZ1N5c0NvdW50XSA9IG5ld0xhbmdTeXNSZWNvcmQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxhbmdTeXNDb3VudCArPSAxOworICAgICAgICAgICAgcmV0dXJuIG5ld0xhbmdTeXNSZWNvcmQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlU2NyaXB0UmVjb3JkKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgICAgICB7CisgICAgICAgICAgICBUYWdnZWRSZWNvcmQuc29ydChsYW5nU3lzUmVjb3JkcywgbGFuZ1N5c0NvdW50KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNjcmlwdFRhYmxlQmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAgICAgaW50IGZpcnN0TGFuZ1N5cyA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7IC8vIGRlZmF1bHQgbGFuZ1N5cyBvZmZzZXQgKGZpeGVkIGxhdGVyKQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGFuZ1N5c1JlY29yZHNbMF0uZ2V0VGFnKCkuZXF1YWxzKCIoZGVmYXVsdCkiKSkgeworICAgICAgICAgICAgICAgIGZpcnN0TGFuZ1N5cyA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEobGFuZ1N5c0NvdW50IC0gZmlyc3RMYW5nU3lzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxhbmdTeXNPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IGZpcnN0TGFuZ1N5czsgaSA8IGxhbmdTeXNDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlVGFnKGxhbmdTeXNSZWNvcmRzW2ldLmdldFRhZygpKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZmlyc3RMYW5nU3lzID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAoZGVmYXVsdCkiKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KHNjcmlwdFRhYmxlQmFzZSwgc2NyaXB0VGFibGVCYXNlKTsKKyAgICAgICAgICAgICAgICBsYW5nU3lzUmVjb3Jkc1swXS53cml0ZUxhbmdTeXNSZWNvcmQod3JpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IGZpcnN0TGFuZ1N5czsgaSA8IGxhbmdTeXNDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgLy8gZml4IHRoZSBvZmZzZXQgaW4gdGhlIGxhbmdTeXNSZWNvcmRBcnJheS4KKyAgICAgICAgICAgICAgICAvLyBUaGUgIisyIiBza2lwcyBvdmVyIHRoZSB0YWcgYW5kIHRoZSAiKzMiCisgICAgICAgICAgICAgICAgLy8gc2tpcHMgdG8gdGhlIG5leHQgbGFuZ1N5c1JlY29yZCBlbnRyeQorICAgICAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQobGFuZ1N5c09mZnNldCArIDIsIHNjcmlwdFRhYmxlQmFzZSk7CisgICAgICAgICAgICAgICAgbGFuZ1N5c09mZnNldCArPSAzOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAnIiArIGxhbmdTeXNSZWNvcmRzW2ldLmdldFRhZygpICsgIiciKTsKKyAgICAgICAgICAgICAgICBsYW5nU3lzUmVjb3Jkc1tpXS53cml0ZUxhbmdTeXNSZWNvcmQod3JpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFNjcmlwdFJlY29yZFtdIHNjcmlwdFJlY29yZHM7CisgICAgcHJpdmF0ZSBpbnQgc2NyaXB0Q291bnQ7CisgICAgCisgICAgcHVibGljIFNjcmlwdExpc3QoKQorICAgIHsKKyAgICAgICAgc2NyaXB0UmVjb3JkcyA9IG5ldyBTY3JpcHRSZWNvcmRbMTBdOworICAgICAgICBzY3JpcHRDb3VudCA9IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTGFuZ1N5c1JlY29yZCBmaW5kTGFuZ1N5c1JlY29yZChTdHJpbmcgc2NyaXB0VGFnLCBTdHJpbmcgbGFuZ3VhZ2VUYWcpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIFNjcmlwdFJlY29yZCBzY3JpcHRSZWNvcmQgPSBzY3JpcHRSZWNvcmRzW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0UmVjb3JkLmdldFRhZygpLmVxdWFscyhzY3JpcHRUYWcpKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBzY3JpcHRSZWNvcmQuZmluZExhbmdTeXNSZWNvcmQobGFuZ3VhZ2VUYWcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoc2NyaXB0Q291bnQgPj0gc2NyaXB0UmVjb3Jkcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIFNjcmlwdFJlY29yZFtdIG5ld1NjcmlwdFJlY29yZHMgPSBuZXcgU2NyaXB0UmVjb3JkW3NjcmlwdENvdW50ICsgNV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc2NyaXB0UmVjb3JkcywgMCwgbmV3U2NyaXB0UmVjb3JkcywgMCwgc2NyaXB0UmVjb3Jkcy5sZW5ndGgpOworICAgICAgICAgICAgc2NyaXB0UmVjb3JkcyA9IG5ld1NjcmlwdFJlY29yZHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFNjcmlwdFJlY29yZCBuZXdTY3JpcHRSZWNvcmQgPSBuZXcgU2NyaXB0UmVjb3JkKHNjcmlwdFRhZyk7CisgICAgICAgIHNjcmlwdFJlY29yZHNbc2NyaXB0Q291bnRdID0gbmV3U2NyaXB0UmVjb3JkOworICAgICAgICAKKyAgICAgICAgc2NyaXB0Q291bnQgKz0gMTsKKyAgICAgICAgcmV0dXJuIG5ld1NjcmlwdFJlY29yZC5maW5kTGFuZ1N5c1JlY29yZChsYW5ndWFnZVRhZyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZEZlYXR1cmUoU3RyaW5nIHNjcmlwdFRhZywgU3RyaW5nIGxhbmd1YWdlVGFnLCBGZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBMYW5nU3lzUmVjb3JkIGxhbmdTeXNSZWNvcmQgPSBmaW5kTGFuZ1N5c1JlY29yZChzY3JpcHRUYWcsIGxhbmd1YWdlVGFnKTsKKyAgICAgICAgCisgICAgICAgIGxhbmdTeXNSZWNvcmQuYWRkRmVhdHVyZShmZWF0dXJlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVTY3JpcHRMaXN0KE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3cml0aW5nIHNjcmlwdCBsaXN0Li4uIik7CisgICAgICAgIAorICAgICAgICBpbnQgc2NyaXB0TGlzdEJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIFRhZ2dlZFJlY29yZC5zb3J0KHNjcmlwdFJlY29yZHMsIHNjcmlwdENvdW50KTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShzY3JpcHRDb3VudCk7CisgICAgICAgIAorICAgICAgICBpbnQgc2NyaXB0UmVjb3JkT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZVRhZyhzY3JpcHRSZWNvcmRzW2ldLmdldFRhZygpKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2NyaXB0Q291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgLy8gZml4IHRoZSBvZmZzZXQgaW4gdGhlIHNjcmlwdFJlY29yZEFycmF5LgorICAgICAgICAgICAgLy8gVGhlICIrMiIgc2tpcHMgb3ZlciB0aGUgdGFnIGFuZCB0aGUgIiszIgorICAgICAgICAgICAgLy8gc2tpcHMgdG8gdGhlIG5leHQgc2NyaXB0UmVjb3JkIGVudHJ5CisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KHNjcmlwdFJlY29yZE9mZnNldCArIDIsIHNjcmlwdExpc3RCYXNlKTsKKyAgICAgICAgICAgIHNjcmlwdFJlY29yZE9mZnNldCArPSAzOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIHNjcmlwdCAnIiArIHNjcmlwdFJlY29yZHNbaV0uZ2V0VGFnKCkgKyAiJzoiKTsKKyAgICAgICAgICAgIHNjcmlwdFJlY29yZHNbaV0ud3JpdGVTY3JpcHRSZWNvcmQod3JpdGVyKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgfQorfQorICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE1vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRNb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWNhZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRNb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDIyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIGNsYXNzIFNjcmlwdE1vZHVsZVdyaXRlciBleHRlbmRzIE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBTY3JpcHRNb2R1bGVXcml0ZXIoU2NyaXB0RGF0YSB0aGVTY3JpcHREYXRhLCBMYW5ndWFnZURhdGEgdGhlTGFuZ3VhZ2VEYXRhKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdERhdGEgPSB0aGVTY3JpcHREYXRhOworICAgICAgICBsYW5ndWFnZURhdGEgPSB0aGVMYW5ndWFnZURhdGE7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFNjcmlwdERhdGEgc2NyaXB0RGF0YTsKKyAgICBwcm90ZWN0ZWQgTGFuZ3VhZ2VEYXRhIGxhbmd1YWdlRGF0YTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE5hbWVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE5hbWVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThjNzE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TmFtZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBjbGFzcyBTY3JpcHROYW1lQnVpbGRlcgoreworICAgIC8qCisgICAgICogVGhpcyB0b29sIGJ1aWxkcyB0aGUgc2NyaXB0IHJlbGF0ZWQgaGVhZGVyIGZpbGVzIGFuZCBkYXRhIHRhYmxlcyBuZWVkZWQgYnkKKyAgICAgKiB0aGUgSUNVIExheW91dEVuZ2luZS4gQnkgdXNpbmcgdGhlIElDVTRKIGludGVyZmFjZXMgdG8gYWNjZXNzIHRoZSBzY3JpcHQKKyAgICAgKiBpbmZvcm1hdGlvbiwgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgZGF0YSB3cml0dGVuIGJ5IHRoaXMgdG9vbCBpcyBpbiBzeW5jaAorICAgICAqIHdpdGggSUNVLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBTY3JpcHREYXRhIHNjcmlwdERhdGEgPSBuZXcgU2NyaXB0RGF0YSgpOworICAgICAgICBMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhID0gbmV3IExhbmd1YWdlRGF0YSgpOworICAgICAgICAKKyAgICAgICAgU2NyaXB0SURNb2R1bGVXcml0ZXIgc2NyaXB0SURNb2R1bGVXcml0ZXIgPSBuZXcgU2NyaXB0SURNb2R1bGVXcml0ZXIoc2NyaXB0RGF0YSwgbGFuZ3VhZ2VEYXRhKTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdElETW9kdWxlV3JpdGVyLndyaXRlU2NyaXB0SGVhZGVyKCJMRVNjcmlwdHMuaCIpOworICAgICAgICBzY3JpcHRJRE1vZHVsZVdyaXRlci53cml0ZUxhbmd1YWdlSGVhZGVyKCJMRUxhbmd1YWdlcy5oIik7CisgICAgICAgIAorICAgICAgICBTY3JpcHRUYWdNb2R1bGVXcml0ZXIgc2NyaXB0VGFnTW9kdWxlV3JpdGVyID0gbmV3IFNjcmlwdFRhZ01vZHVsZVdyaXRlcihzY3JpcHREYXRhLCBsYW5ndWFnZURhdGEpOworICAgICAgICAKKyAgICAgICAgc2NyaXB0VGFnTW9kdWxlV3JpdGVyLndyaXRlU2NyaXB0VGFncygiU2NyaXB0QW5kTGFuZ3VhZ2VUYWdzIik7CisgICAgICAgIAorICAgICAgICBTY3JpcHRSdW5Nb2R1bGVXcml0ZXIgc2NyaXB0UnVuTW9kdWxlV3JpdGVyID0gbmV3IFNjcmlwdFJ1bk1vZHVsZVdyaXRlcihzY3JpcHREYXRhKTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdFJ1bk1vZHVsZVdyaXRlci53cml0ZVNjcmlwdFJ1bnMoIlNjcmlwdFJ1bkRhdGEuY3BwIik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0UnVuTW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFJ1bk1vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYTk2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFJ1bk1vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBTY3JpcHRSdW5Nb2R1bGVXcml0ZXIgZXh0ZW5kcyBTY3JpcHRNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgU2NyaXB0UnVuTW9kdWxlV3JpdGVyKFNjcmlwdERhdGEgdGhlU2NyaXB0RGF0YSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRoZVNjcmlwdERhdGEsIG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdFJ1bnMoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgaW50IG1pblNjcmlwdCAgID0gc2NyaXB0RGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4U2NyaXB0ICAgPSBzY3JpcHREYXRhLmdldE1heFZhbHVlKCk7CisgICAgICAgIGludCByZWNvcmRDb3VudCA9IHNjcmlwdERhdGEuZ2V0UmVjb3JkQ291bnQoKTsKKyAgICAgICAgCisgICAgICAgIG9wZW5GaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgd3JpdGVIZWFkZXIobnVsbCwgaW5jbHVkZUZpbGVzKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4ocHJlYW1ibGUpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgcmVjb3JkID0gMDsgcmVjb3JkIDwgcmVjb3JkQ291bnQ7IHJlY29yZCArPSAxKSB7CisgICAgICAgICAgICBpbnQgc2NyaXB0ID0gc2NyaXB0RGF0YS5nZXRSZWNvcmQocmVjb3JkKS5zY3JpcHRDb2RlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgIHsweCIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KFV0aWxpdHkuaGV4KHNjcmlwdERhdGEuZ2V0UmVjb3JkKHJlY29yZCkuc3RhcnRDaGFyKCksIDYpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCAweCIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KFV0aWxpdHkuaGV4KHNjcmlwdERhdGEuZ2V0UmVjb3JkKHJlY29yZCkuZW5kQ2hhcigpLCA2KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0RGF0YS5nZXRUYWcoc2NyaXB0KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlNjcmlwdENvZGV9Iik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoKHJlY29yZCA9PSByZWNvcmRDb3VudCAtIDEpID8gIiAiIDogIiwiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiIC8vICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oc2NyaXB0RGF0YS5nZXROYW1lKHNjcmlwdCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihwb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgaW50IHBvd2VyID0gMSA8PCBVdGlsaXR5LmhpZ2hCaXQocmVjb3JkQ291bnQpOworICAgICAgICBpbnQgZXh0cmEgPSByZWNvcmRDb3VudCAtIHBvd2VyOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50KCJsZV9pbnQzMiBTY3JpcHRSdW46OnNjcmlwdFJlY29yZHNQb3dlciA9IDB4Iik7CisgICAgICAgIG91dHB1dC5wcmludChVdGlsaXR5LmhleChwb3dlciwgNCkpOworICAgICAgICBvdXRwdXQucHJpbnRsbigiOyIpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgibGVfaW50MzIgU2NyaXB0UnVuOjpzY3JpcHRSZWNvcmRzRXh0cmEgPSAweCIpOworICAgICAgICBvdXRwdXQucHJpbnQoVXRpbGl0eS5oZXgoZXh0cmEsIDQpKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIjsiKTsKKworICAgICAgICBWZWN0b3JbXSBzY3JpcHRSYW5nZU9mZnNldHMgPSBuZXcgVmVjdG9yW21heFNjcmlwdCAtIG1pblNjcmlwdCArIDFdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gbWluU2NyaXB0OyBzY3JpcHQgPD0gbWF4U2NyaXB0OyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgc2NyaXB0UmFuZ2VPZmZzZXRzW3NjcmlwdCAtIG1pblNjcmlwdF0gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHJlY29yZCA9IDA7IHJlY29yZCA8IHJlY29yZENvdW50OyByZWNvcmQgKz0gMSkgeworICAgICAgICAgICAgc2NyaXB0UmFuZ2VPZmZzZXRzW3NjcmlwdERhdGEuZ2V0UmVjb3JkKHJlY29yZCkuc2NyaXB0Q29kZSgpIC0gbWluU2NyaXB0XS5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKHJlY29yZCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gbWluU2NyaXB0OyBzY3JpcHQgPD0gbWF4U2NyaXB0OyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgVmVjdG9yIG9mZnNldHMgPSBzY3JpcHRSYW5nZU9mZnNldHNbc2NyaXB0IC0gbWluU2NyaXB0XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCJsZV9pbnQxNiAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHREYXRhLmdldFRhZyhzY3JpcHQpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCJTY3JpcHRSYW5nZXNbXSA9IHsiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBvZmZzZXRzLnNpemUoKTsgb2Zmc2V0ICs9IDEpIHsKKyAgICAgICAgICAgICAgICBJbnRlZ2VyIGkgPSAoSW50ZWdlcikgb2Zmc2V0cy5lbGVtZW50QXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoaS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCItMSIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4ocG9zdGFtYmxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oImxlX2ludDE2ICpTY3JpcHRSdW46OnNjcmlwdFJhbmdlT2Zmc2V0c1tdID0geyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gbWluU2NyaXB0OyBzY3JpcHQgPD0gbWF4U2NyaXB0OyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0RGF0YS5nZXRUYWcoc2NyaXB0KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlNjcmlwdFJhbmdlcyIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdCA9PSBtYXhTY3JpcHQ/ICIgICIgOiAiLCAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiLy8gIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihzY3JpcHREYXRhLmdldE5hbWUoc2NyaXB0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKHBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGluY2x1ZGVGaWxlcyA9IHsiTEVUeXBlcy5oIiwgIkxFU2NyaXB0cy5oIiwgIlNjcmlwdFJ1bi5oIn07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHByZWFtYmxlID0gCisgICAgIlxuIiArCisgICAgIlNjcmlwdFJlY29yZCBTY3JpcHRSdW46OnNjcmlwdFJlY29yZHNbXSA9IHsiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBwb3N0YW1ibGUgPQorICAgICJ9O1xuIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFRhZ01vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRUYWdNb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDc3ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRUYWdNb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgY2xhc3MgU2NyaXB0VGFnTW9kdWxlV3JpdGVyIGV4dGVuZHMgU2NyaXB0TW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIFNjcmlwdFRhZ01vZHVsZVdyaXRlcihTY3JpcHREYXRhIHRoZVNjcmlwdERhdGEsIExhbmd1YWdlRGF0YSB0aGVMYW5ndWFnZURhdGEpCisgICAgeworICAgICAgICBzdXBlcih0aGVTY3JpcHREYXRhLCB0aGVMYW5ndWFnZURhdGEpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVUYWdWYWx1ZUhlYWRlcihUYWdWYWx1ZURhdGEgZGF0YSwgU3RyaW5nIGtpbmQpCisgICAgeworICAgICAgICBpbnQgbWluID0gZGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4ID0gZGF0YS5nZXRNYXhWYWx1ZSgpOworCisgICAgICAgIGZvciAoaW50IHZhbHVlID0gbWluOyB2YWx1ZSA8PSBtYXg7IHZhbHVlICs9IDEpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiY29uc3QgTEVUYWcgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXRUYWdMYWJlbCh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGtpbmQpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJUYWcgPSAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLm1ha2VUYWcodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiOyAvKiAnIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXRUYWcodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiJyAoIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXROYW1lKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiKSAqLyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlSGVhZGVyRmlsZShTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKCJfX1NDUklQVEFORExBTkdVQUdFU19IIiwgaEluY2x1ZGVzLCBoUHJlYW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUYWdWYWx1ZUhlYWRlcihzY3JpcHREYXRhLCAiU2NyaXB0Iik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihoU2NyaXB0UG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVGFnVmFsdWVIZWFkZXIobGFuZ3VhZ2VEYXRhLCAiTGFuZ3VhZ2UiKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGhQb3N0YW1ibGUpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlVGFnVmFsdWVDUFAoVGFnVmFsdWVEYXRhIGRhdGEsIFN0cmluZyBraW5kKQorICAgIHsKKyAgICAgICAgaW50IG1pbiA9IGRhdGEuZ2V0TWluVmFsdWUoKTsKKyAgICAgICAgaW50IG1heCA9IGRhdGEuZ2V0TWF4VmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHZhbHVlID0gbWluOyB2YWx1ZSA8PSBtYXg7IHZhbHVlICs9IDEpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0VGFnTGFiZWwodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChraW5kKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiVGFnIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoKHZhbHVlID09IG1heD8gIiAiIDogIiwiKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAvKiAnIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXRUYWcodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiJyAoIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5nZXROYW1lKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiKSAqLyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlQ1BQRmlsZShTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKG51bGwsIGNwcEluY2x1ZGVzKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oY3BwUHJlYW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUYWdWYWx1ZUNQUChzY3JpcHREYXRhLCAiU2NyaXB0Iik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihjcHBTY3JpcHRQb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUYWdWYWx1ZUNQUChsYW5ndWFnZURhdGEsICJMYW5ndWFnZSIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oY3BwUG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVTY3JpcHRUYWdzKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIHdyaXRlSGVhZGVyRmlsZShmaWxlTmFtZSArICIuaCIpOworICAgICAgICB3cml0ZUNQUEZpbGUoZmlsZU5hbWUgKyAiLmNwcCIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGhJbmNsdWRlcyA9IHsiTEVUeXBlcy5oIn07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaFByZWFtYmxlID0gCisgICAgIi8qKlxuIiArCisgICAgIiAqIFxcZmlsZVxuIiArCisgICAgIiAqIFxcaW50ZXJuYWxcbiIgKworICAgICIgKi9cbiIgKworICAgICJcbiI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhTY3JpcHRQb3N0YW1ibGUgPQorICAgICJcbiIgKworICAgICJjb25zdCBMRVRhZyBudWxsU2NyaXB0VGFnID0gMHgwMDAwMDAwMDsgLyogJycgICAgIChOVUxMKSAqL1xuIiArCisgICAgIlxuIjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaFBvc3RhbWJsZSA9CisgICAgIlxuIiArCisgICAgIlxuIiArCisgICAgIlVfTkFNRVNQQUNFX0VORFxuIiArCisgICAgIiNlbmRpZiI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY3BwSW5jbHVkZXMgPQorICAgICAgICB7IkxFVHlwZXMuaCIsICJTY3JpcHRBbmRMYW5ndWFnZVRhZ3MuaCIsICJPcGVuVHlwZUxheW91dEVuZ2luZS5oIn07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNwcFByZWFtYmxlID0gCisgICAgImNvbnN0IExFVGFnIE9wZW5UeXBlTGF5b3V0RW5naW5lOjpzY3JpcHRUYWdzW10gPSB7IjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3BwU2NyaXB0UG9zdGFtYmxlID0KKyAgICAifTtcbiIgKworICAgICJcbiIgKworICAgICJjb25zdCBMRVRhZyBPcGVuVHlwZUxheW91dEVuZ2luZTo6bGFuZ3VhZ2VUYWdzW10gPSB7IjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3BwUG9zdGFtYmxlID0KKyAgICAifTtcbiI7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TaGFwaW5nVHlwZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2hhcGluZ1R5cGVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZkNDI3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2hhcGluZ1R5cGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBTaGFwaW5nVHlwZUJ1aWxkZXIgZXh0ZW5kcyBPcGVuVHlwZVRhYmxlV3JpdGVyCit7CisgICAgcHJpdmF0ZSBDbGFzc1RhYmxlIGNsYXNzVGFibGU7CisgICAgCisgICAgcHVibGljIFNoYXBpbmdUeXBlQnVpbGRlcigpCisgICAgeworICAgICAgICBjbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBjbGFzc1RhYmxlLndyaXRlQ2xhc3NUYWJsZSh0aGlzKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oImNvbnN0IGxlX3VpbnQ4IEFyYWJpY1NoYXBpbmc6OnNoYXBpbmdUeXBlVGFibGVbXSA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGR1bXBUYWJsZShvdXRwdXQsIDgpOworICAgICAgICBvdXRwdXQucHJpbnRsbigifTtcbiIpOworICAgIH0KKyAgICAKKyAgICAvLyBUT0RPOiBUaGUgVW5pY29kZVNldCBpcyBjb25zdHJhaW5lZCB0byB0aGUgQk1QIGJlY2F1c2UgdGhlIENsYXNzVGFibGUgZGF0YSBzdHJ1Y3R1cmUgY2FuCisgICAgLy8gb25seSBoYW5kbGUgMTYtYml0IGVudHJpZXMuIFRoaXMgaXMgcHJvYmFibHkgT0sgYXMgbG9uZyBhcyB0aGVyZSBhcmVuJ3QgYW55IGpvaW5pbmcgc2NyaXB0cworICAgIC8vIG91dHNpZGUgb2YgdGhlIEJNUC4uLgorICAgIHB1YmxpYyB2b2lkIGJ1aWxkU2hhcGluZ1R5cGVzKFN0cmluZyBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIFVuaWNvZGVTZXQgc2hhcGluZ1R5cGVzID0gbmV3IFVuaWNvZGVTZXQoIltbXFxQe0pvaW5pbmdfVHlwZT1Ob25fSm9pbmluZ31dICYgW1xcdTAwMDAtXFx1RkZGRl1dIik7CisgICAgICAgIGludCBjb3VudCA9IHNoYXBpbmdUeXBlcy5zaXplKCk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSAiICsgY291bnQgKyAiIGNoYXJhY3RlcnMgd2l0aCBhIGpvaW5pbmcgdHlwZS4iKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBzaGFwaW5nVHlwZXMuY2hhckF0KGkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjbGFzc1RhYmxlLmFkZE1hcHBpbmcoY2gsIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBMaWdhdHVyZU1vZHVsZVdyaXRlciB3cml0ZXIgPSBuZXcgTGlnYXR1cmVNb2R1bGVXcml0ZXIoKTsKKyAgICAgICAgU3RyaW5nW10gaW5jbHVkZUZpbGVzID0geyJMRVR5cGVzLmgiLCAiQXJhYmljU2hhcGluZy5oIn07ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHdyaXRlci5vcGVuRmlsZShmaWxlbmFtZSk7CisgICAgICAgIHdyaXRlci53cml0ZUhlYWRlcihudWxsLCBpbmNsdWRlRmlsZXMpOworICAgICAgICB3cml0ZXIud3JpdGVUYWJsZSh0aGlzKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVHJhaWxlcigpOworICAgICAgICB3cml0ZXIuY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBTaGFwaW5nVHlwZUJ1aWxkZXIgc3RiID0gbmV3IFNoYXBpbmdUeXBlQnVpbGRlcigpOworICAgICAgICAKKyAgICAgICAgc3RiLmJ1aWxkU2hhcGluZ1R5cGVzKGFyZ3NbMF0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVXRpbGl0aWVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1V0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDE2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1V0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gQXByIDE0LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogIFRoaXMgY2xhc3MgY29udGFpbnMgdXRpbGl0eSBtZXRob2RzIGZvciBkZWFsaW5nIHdpdGgKKyAqIGZvdXItbGV0dGVyIHRhZ3MuCisgKiAKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICovCitwdWJsaWMgY2xhc3MgVGFnVXRpbGl0aWVzCit7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbWFrZVRhZyhTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgaWYgKHRhZyA9PSBudWxsIHx8IHRhZy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gIjB4MDAwMDAwMDAiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgdGFnVmFsdWUgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHRhZ1ZhbHVlIDw8PSA4OworICAgICAgICAgICAgdGFnVmFsdWUgKz0gKGludCkgKChpIDwgdGFnLmxlbmd0aCgpPyB0YWcuY2hhckF0KGkpIDogJyAnKSAmIDB4RkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gIjB4IiArIFV0aWxpdHkuaGV4KHRhZ1ZhbHVlLCA4KTsKKyAgICB9CisgICAgCisvLyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBtYWtlVGFnT2xkKFN0cmluZyB0YWcpCisvLyAgICB7CisvLyAgICAgICAgaWYgKHRhZyA9PSBudWxsIHx8IHRhZy5sZW5ndGgoKSA9PSAwKSB7CisvLyAgICAgICAgICAgIHJldHVybiAiMHgwMDAwMDAwMCI7CisvLyAgICAgICAgfQorLy8gICAgICAgIAorLy8gICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCJMRV9NQUtFX1RBRygiKTsKKy8vICAgICAgICAKKy8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKz0gMSkgeworLy8gICAgICAgICAgICBpZiAoaSA+IDApIHsKKy8vICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiwgIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgCisvLyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1wnJyk7CisvLyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaSA8IHRhZy5sZW5ndGgoKT8gdGFnLmNoYXJBdChpKSA6ICcgJyk7CisvLyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1wnJyk7CisvLyAgICAgICAgfQorLy8gICAgICAgIAorLy8gICAgICAgIHJlc3VsdC5hcHBlbmQoIikiKTsKKy8vICAgICAgICAKKy8vICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7IAorLy8gICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRhZ0xhYmVsKFN0cmluZyB0YWcpCisgICAgeworICAgICAgICBpZiAodGFnID09IG51bGwgfHwgdGFnLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGFnLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1ZhbHVlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdWYWx1ZURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDE3NWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdWYWx1ZURhdGEuamF2YQpAQCAtMCwwICsxLDIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFRhZ1ZhbHVlRGF0YQoreworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0TWluVmFsdWUoKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgaW50IGdldE1heFZhbHVlKCk7CisgICAgCisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXROYW1lKGludCB2YWx1ZSk7CisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRUYWcoaW50IHZhbHVlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFRhZ0xhYmVsKGludCB2YWx1ZSk7CisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBtYWtlVGFnKGludCB2YWx1ZSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ2dlZFJlY29yZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdnZWRSZWNvcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMThjMDdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdnZWRSZWNvcmQuamF2YQpAQCAtMCwwICsxLDc5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIFRhZ2dlZFJlY29yZAoreworICAgIHByaXZhdGUgU3RyaW5nIHRhZzsKKyAgICAgICAgCisgICAgcHVibGljIFRhZ2dlZFJlY29yZChTdHJpbmcgdGhlVGFnKQorICAgIHsKKyAgICAgICAgdGFnID0gdGhlVGFnOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRUYWcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhZzsKKyAgICB9CisgICAgICAgIAorICAgIC8vCisgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgLy8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc29ydChUYWdnZWRSZWNvcmRbXSB0YWJsZSwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBjb3VudDsgaiArPSAxKSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIFRhZ2dlZFJlY29yZCB2ID0gdGFibGVbal07CisgICAgICAgICAgICBTdHJpbmcgdlRhZyA9IHYuZ2V0VGFnKCk7CisKKyAgICAgICAgICAgIGZvciAoaSA9IGogLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgIGlmICh2VGFnLmNvbXBhcmVUbyh0YWJsZVtpXS5nZXRUYWcoKSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0YWJsZVtpICsgMV0gPSB0YWJsZVtpXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBzZWFyY2goVGFnZ2VkUmVjb3JkW10gdGFibGUsIGludCBjb3VudCwgU3RyaW5nIHRhZykKKyAgICB7CisgICAgICAgIGludCBsb2cyID0gVXRpbGl0eS5oaWdoQml0KGNvdW50KTsKKyAgICAgICAgaW50IHBvd2VyID0gMSA8PCBsb2cyOworICAgICAgICBpbnQgZXh0cmEgPSBjb3VudCAtIHBvd2VyOworICAgICAgICBpbnQgcHJvYmUgPSBwb3dlcjsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKworICAgICAgICBpZiAodGFibGVbZXh0cmFdLmdldFRhZygpLmNvbXBhcmVUbyh0YWcpIDw9IDApIHsKKyAgICAgICAgICAgIGluZGV4ID0gZXh0cmE7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAocHJvYmUgPiAoMSA8PCAwKSkgeworICAgICAgICAgICAgcHJvYmUgPj49IDE7CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIHByb2JlXS5nZXRUYWcoKS5jb21wYXJlVG8odGFnKSA8PSAwKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gcHJvYmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodGFibGVbaW5kZXhdLmdldFRhZygpLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0OTkzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlDaGFyYWN0ZXJDbGFzc2VzLmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDA5LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworcHVibGljIGNsYXNzIFRoYWlDaGFyYWN0ZXJDbGFzc2VzCit7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9OICAgID0gIDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OICAgID0gIDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09BICAgID0gIDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09EICAgID0gIDM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZPID0gIDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlYxICAgID0gIDU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlYyICAgID0gIDY7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlYzICAgID0gIDc7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlYxICAgID0gIDg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlYyICAgID0gIDk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkRJID0gMTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9OICAgID0gMTE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUQxICAgID0gMTI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUQyICAgID0gMTM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUQzICAgID0gMTQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklLICAgID0gMTU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYxICAgID0gMTY7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYyICAgID0gMTc7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYzICAgID0gMTg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY0NvdW50ID0gMTk7CisKKyAgICAvLyBJbmRleGVkIGJ5IHVuaWNvZGUgLSAnXHUwRTAwJworICAgIC8vIEZJWE1FOiBNUyBGb250cyAtIFNob3VsZCAwRTJFIGhhcyBubyBhc2NlbmRlciAoaXQgZG9lcyBpbiBXVCBmb250KQorICAgIC8vIEZJWE1FOiBNUyBGb250cyAtIDBFNDcgKE1BSVRBSUtIVSkgYW5kIDBFNEQgKE5JS0hBSElUKSBvbmx5IGhhdmUgdm93ZWwgZm9ybXMKKyAgICAvLyBGSVhNRTogTVMgRm9udHMgLSAwRTRFIChZQU1BS0tBTikgb25seSBoYXMgb25lIGZvcm0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY2xhc3NUYWJsZVtdID0geworICAgIC8vICAgICAgIDAgICAgMSAgICAyICAgIDMgICAgNCAgICA1ICAgIDYgICAgNyAgICA4ICAgIDkgICAgQSAgICBCICAgIEMgICAgRCAgICBFICAgIEYKKyAgICAvLyAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLyowRTAwKi8gTk9OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT0QsIENPRCwgQ09ELCAKKyAgICAvKjBFMTAqLyBDT0QsIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09BLCBDT04sIENPQSwgQ09OLCBDT0EsIAorICAgIC8qMEUyMCovIENPTiwgQ09OLCBDT04sIENPTiwgRlYzLCBDT04sIEZWMywgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIE5PTiwgCisgICAgLyowRTMwKi8gRlYxLCBBVjIsIEZWMSwgRlYxLCBBVjEsIEFWMywgQVYyLCBBVjMsIEJWMSwgQlYyLCBCREksIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCAKKyAgICAvKjBFNDAqLyBMVk8sIExWTywgTFZPLCBMVk8sIExWTywgRlYyLCBOT04sIEFEMiwgVE9OLCBUT04sIFRPTiwgVE9OLCBBRDEsIE5JSywgQUQzLCBOT04sIAorICAgIC8qMEU1MCovIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gY2xhc3NOYW1lcyA9CisgICAgeworICAgICAgICAiTk9OIiwKKyAgICAgICAgIkNPTiIsCisgICAgICAgICJDT0EiLAorICAgICAgICAiQ09EIiwKKyAgICAgICAgIkxWTyIsCisgICAgICAgICJGVjEiLAorICAgICAgICAiRlYyIiwKKyAgICAgICAgIkZWMyIsCisgICAgICAgICJCVjEiLAorICAgICAgICAiQlYyIiwKKyAgICAgICAgIkJESSIsCisgICAgICAgICJUT04iLAorICAgICAgICAiQUQxIiwKKyAgICAgICAgIkFEMiIsCisgICAgICAgICJBRDMiLAorICAgICAgICAiTklLIiwKKyAgICAgICAgIkFWMSIsCisgICAgICAgICJBVjIiLAorICAgICAgICAiQVYzIgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIHBhaXJUYWJsZVtdW10gPSB7CisgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgLy8gIE4gICAgQyAgICBDICAgIEMgICAgTCAgICBGICAgIEYgICAgRiAgICBCICAgIEIgICAgQiAgICBUICAgIEEgICAgQSAgICBBICAgIE4gICAgQSAgICBBICAgIEEKKyAgICAgIC8vICBPICAgIE8gICAgTyAgICBPICAgIFYgICAgViAgICBWICAgIFYgICAgViAgICBWICAgIEQgICAgTyAgICBEICAgIEQgICAgRCAgICBJICAgIFYgICAgViAgICBWCisgICAgICAvLyAgTiAgICBOICAgIEEgICAgRCAgICBPICAgIDEgICAgMiAgICAzICAgIDEgICAgMiAgICBJICAgIE4gICAgMSAgICAyICAgIDMgICAgSyAgICAxICAgIDIgICAgMworICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qTk9OKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkNPTiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdBJywgJ0MnLCAnQycsICdDJywgJ0UnLCAnRScsICdFJywgJ0MnLCAnRScsICdDJywgJ0MnLCAnQyd9LAorLypDT0EqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnQScsICdDJywgJ0MnLCAnQycsICdGJywgJ0YnLCAnRicsICdEJywgJ0YnLCAnRCcsICdEJywgJ0QnfSwKKy8qQ09EKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ0EnLCAnSCcsICdIJywgJ0gnLCAnRScsICdFJywgJ0UnLCAnQycsICdFJywgJ0MnLCAnQycsICdDJ30sCisvKkxWTyovIHsnUycsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnUycsICdTJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypGVjEqLyB7J1MnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qRlYyKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkZWMyovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnQScsICdTJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypCVjEqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdFJywgJ0UnLCAnUicsICdSJywgJ0UnLCAnUicsICdSJywgJ1InfSwKKy8qQlYyKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkJESSovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypUT04qLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdJJywgJ0EnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQUQxKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkFEMiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypBRDMqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qTklLKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRycsICdHJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkFWMSovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0cnLCAnRycsICdSJywgJ1InLCAnRycsICdSJywgJ1InLCAnUid9LAorLypBVjIqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdHJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQVYzKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRycsICdSJywgJ0cnLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30KKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckNsYXNzKGNoYXIgY2gpCisgICAgeworICAgICAgICBpbnQgY2hhckNsYXNzID0gTk9OOworICAgICAgICAKKyAgICAgICAgaWYgKGNoID49ICdcdTBFMDAnICYmIGNoIDw9ICdcdTBFNUInKSB7CisgICAgICAgICAgICBjaGFyQ2xhc3MgPSBjbGFzc1RhYmxlW2NoIC0gJ1x1MEUwMCddOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2hhckNsYXNzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRDbGFzc05hbWUoaW50IGNsYXNzSUQpCisgICAgeworICAgICAgICBpZiAoY2xhc3NJRCA8IDAgfHwgY2xhc3NJRCA+PSBjQ291bnQpIHsKKyAgICAgICAgICAgIHJldHVybiAiKioqIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNsYXNzTmFtZXNbY2xhc3NJRF07CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRQYWlyQWN0aW9uKGludCBwcmV2Q2xhc3MsIGludCBjdXJyQ2xhc3MpCisgICAgeworICAgICAgICBpZiAocHJldkNsYXNzIDwgMCB8fCBwcmV2Q2xhc3MgPj0gY0NvdW50IHwKKyAgICAgICAgICAgIGN1cnJDbGFzcyA8IDAgfHwgY3VyckNsYXNzID49IGNDb3VudCkgeworICAgICAgICAgICAgcmV0dXJuICdBJzsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBwYWlyVGFibGVbcHJldkNsYXNzXVtjdXJyQ2xhc3NdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY2xhc3NUYWJsZUhlYWRlciA9CisiY29uc3QgbGVfdWludDggVGhhaVNoYXBpbmc6OmNsYXNzVGFibGVbXSA9IHtcbiIgKworIiAgICAvLyAgICAgICAwICAgIDEgICAgMiAgICAzICAgIDQgICAgNSAgICA2ICAgIDcgICAgOCAgICA5ICAgIEEgICAgQiAgICBDICAgIEQgICAgRSAgICBGXG4iICsKKyIgICAgLy8gICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlQ2xhc3NUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJXcml0aW5nIGNsYXNzIHRhYmxlLi4uIik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoY2xhc3NUYWJsZUhlYWRlcik7CisgICAgICAgIAorICAgICAgICBmb3IgKGNoYXIgY2ggPSAnXHUwRTAwJzsgY2ggPD0gJ1x1MEU1Qic7IGNoICs9IDEpIHsKKyAgICAgICAgICAgIGludCBjaGFyQ2xhc3MgPSBnZXRDaGFyQ2xhc3MoY2gpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoKGNoICYgMHgwMDBGKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCJcbiAgICAvKiIgKyBVdGlsaXR5LmhleChjaCwgNCkgKyAiKi8gIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludChnZXRDbGFzc05hbWUoY2hhckNsYXNzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaCA8ICdcdTBFNUInKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsICIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlxufTtcblxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGRvbmUuIik7CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1OTEwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlLmphdmEKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDA5LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBjbGFzcyBUaGFpU3RhdGVUYWJsZQoreworICAgIHN0YXRpYyBWZWN0b3Igc3RhdGVUYWJsZSA9IG51bGw7CisgICAgc3RhdGljIGludCBuZXh0U3RhdGUgPSAwOworICAgIAorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBuZXdTdGF0ZSgpCisgICAgeworICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gc3RhdGVSb3cgPSBuZXcgVGhhaVN0YXRlVHJhbnNpdGlvbltUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgc3RhdGVSb3dbY10gPSBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0ZVRhYmxlLmFkZEVsZW1lbnQoc3RhdGVSb3cpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5leHRTdGF0ZSsrOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGlzTGVnYWxIZXJlKGludCBzdGF0ZSwgY2hhciBwYWlyQWN0aW9uKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChwYWlyQWN0aW9uKSB7CisgICAgICAgIGNhc2UgJ0EnOgorICAgICAgICAgICAgcmV0dXJuIHN0YXRlID09IDA7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgIGNhc2UgJ0QnOgorICAgICAgICBjYXNlICdFJzoKKyAgICAgICAgY2FzZSAnRic6CisgICAgICAgIGNhc2UgJ0cnOgorICAgICAgICBjYXNlICdIJzoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAKKyAgICAgICAgY2FzZSAnUic6CisgICAgICAgIGNhc2UgJ1MnOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gY29tcG9zZXNXaXRoQW55dGhpbmcoaW50IGNoYXJDbGFzcykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgIGNoYXIgYWN0aW9uID0gVGhhaUNoYXJhY3RlckNsYXNzZXMuZ2V0UGFpckFjdGlvbihjaGFyQ2xhc3MsIGMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYWN0aW9uID49ICdDJyAmJiBhY3Rpb24gPD0gJ0knKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgdm9pZCBmaXhOZXh0U3RhdGVzKCkKKyAgICB7CisgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSBncm91bmRTdGF0ZSA9IChUaGFpU3RhdGVUcmFuc2l0aW9uW10pIHN0YXRlVGFibGUuZWxlbWVudEF0KDApOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgcyA9IDE7IHMgPCBzdGF0ZVRhYmxlLnNpemUoKTsgcyArPSAxKSB7CisgICAgICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gc3RhdGUgPSAoVGhhaVN0YXRlVHJhbnNpdGlvbltdKSBzdGF0ZVRhYmxlLmVsZW1lbnRBdChzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb24gdHJhbnNpdGlvbiA9IHN0YXRlW2NdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uLmdldE5leHRTdGF0ZSgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi5zZXROZXh0U3RhdGUoZ3JvdW5kU3RhdGVbY10uZ2V0TmV4dFN0YXRlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgYWRkU3RhdGUoaW50IHByZXZDbGFzcywgaW50IHByZXZQcmV2Q2xhc3MpCisgICAgeworICAgICAgICBpbnQgc3RhdGUgPSBuZXdTdGF0ZSgpOworICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gc3RhdGVSb3cgPSAoVGhhaVN0YXRlVHJhbnNpdGlvbltdKSBzdGF0ZVRhYmxlLmVsZW1lbnRBdChzdGF0ZSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICBjaGFyIHBhaXJBY3Rpb24gPSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5nZXRQYWlyQWN0aW9uKHByZXZDbGFzcywgYyk7CisgICAgICAgICAgICBpbnQgbmV4dFN0YXRlID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChwYWlyQWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlICdHJzoKKyAgICAgICAgICAgICAgICBpZiAocHJldkNsYXNzID09IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLk5JSyAmJgorICAgICAgICAgICAgICAgICAgICBwcmV2UHJldkNsYXNzID09IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLkFWMSkgeworICAgICAgICAgICAgICAgICAgICBwYWlyQWN0aW9uID0gJ1InOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldlByZXZDbGFzcyAhPSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5DT0EpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFpckFjdGlvbiA9ICdDJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlICdFJzoKKyAgICAgICAgICAgICAgICBpZiAocHJldlByZXZDbGFzcyA9PSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5DT0EpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFpckFjdGlvbiA9ICdGJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICBpZiAocHJldkNsYXNzID09IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLlRPTiAmJgorICAgICAgICAgICAgICAgICAgICAocHJldlByZXZDbGFzcyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLkNPTiB8fAorICAgICAgICAgICAgICAgICAgICAgcHJldlByZXZDbGFzcyA+IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLkNPRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFpckFjdGlvbiA9ICdTJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYWlyQWN0aW9uID0gJ0EnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjICE9IHByZXZDbGFzcyAmJiBpc0xlZ2FsSGVyZShzdGF0ZSwgcGFpckFjdGlvbikgJiYgY29tcG9zZXNXaXRoQW55dGhpbmcoYykpIHsKKyAgICAgICAgICAgICAgICBuZXh0U3RhdGUgPSBhZGRTdGF0ZShjLCBwcmV2Q2xhc3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzdGF0ZVJvd1tjXSA9IG5ldyBUaGFpU3RhdGVUcmFuc2l0aW9uKG5leHRTdGF0ZSwgcGFpckFjdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljCisgICAgeworICAgICAgICBzdGF0ZVRhYmxlID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgIGFkZFN0YXRlKFRoYWlDaGFyYWN0ZXJDbGFzc2VzLk5PTiwgVGhhaUNoYXJhY3RlckNsYXNzZXMuTk9OKTsKKyAgICAgICAgICAgIAorICAgICAgICBmaXhOZXh0U3RhdGVzKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVGhhaVN0YXRlVHJhbnNpdGlvbiBnZXRUcmFuc2l0aW9uKGludCBzdGF0ZSwgaW50IGN1cnJDbGFzcykKKyAgICB7CisgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSByb3cgPSAoVGhhaVN0YXRlVHJhbnNpdGlvbltdKSBzdGF0ZVRhYmxlLmVsZW1lbnRBdChzdGF0ZSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcm93W2N1cnJDbGFzc107CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhlYWRlcjAgPQorImNvbnN0IFRoYWlTaGFwaW5nOjpTdGF0ZVRyYW5zaXRpb24gVGhhaVNoYXBpbmc6OnRoYWlTdGF0ZVRhYmxlW11bVGhhaVNoYXBpbmc6OmNsYXNzQ291bnRdID0geyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaGVhZGVyMSA9CisiICAgIC8vKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaGVhZGVyMiA9CisiICAgIC8vfCAgICAgICAgIE4gICAgICAgICBDICAgICAgICAgQyAgICAgICAgIEMgICAgICAgICBMICAgICAgICAgRiAgICAgICAgIEYgICAgICAgICBGICAgICAgICAgQiAgICAgICAgIEIgICAgICAgICBCICAgICAgICAgVCAgICAgICAgIEEgICAgICAgICBBICAgICAgICAgQSAgICAgICAgIE4gICAgICAgICBBICAgICAgICAgQSAgICAgICAgIEEgICAgfFxuIiArCisiICAgIC8vfCAgICAgICAgIE8gICAgICAgICBPICAgICAgICAgTyAgICAgICAgIE8gICAgICAgICBWICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBEICAgICAgICAgTyAgICAgICAgIEQgICAgICAgICBEICAgICAgICAgRCAgICAgICAgIEkgICAgICAgICBWICAgICAgICAgViAgICAgICAgIFYgICAgfFxuIiArCisiICAgIC8vfCAgICAgICAgIE4gICAgICAgICBOICAgICAgICAgQSAgICAgICAgIEQgICAgICAgICBPICAgICAgICAgMSAgICAgICAgIDIgICAgICAgICAzICAgICAgICAgMSAgICAgICAgIDIgICAgICAgICBJICAgICAgICAgTiAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMyAgICAgICAgIEsgICAgICAgICAxICAgICAgICAgMiAgICAgICAgIDMgICAgfCI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlU3RhdGVUYWJsZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJXcml0aW5nIHN0YXRlIHRhYmxlLi4uIik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihoZWFkZXIwKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaGVhZGVyMSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKGhlYWRlcjIpOworICAgICAgICBvdXRwdXQucHJpbnRsbihoZWFkZXIxKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHN0YXRlID0gMDsgc3RhdGUgPCBzdGF0ZVRhYmxlLnNpemUoKTsgc3RhdGUgKz0gMSkgeworICAgICAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIHJvdyA9IChUaGFpU3RhdGVUcmFuc2l0aW9uW10pIHN0YXRlVGFibGUuZWxlbWVudEF0KHN0YXRlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgLyoiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXRlIDwgMTApIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIjAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KHN0YXRlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCIqLyB7Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICByb3dbY10ud3JpdGUob3V0cHV0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudCAtIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50KCJ9Iik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXRlIDwgc3RhdGVUYWJsZS5zaXplKCkgLSAxKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIn07XG4iKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGRvbmUuIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhkMDRlMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMDksIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgY2xhc3MgVGhhaVN0YXRlVGFibGVCdWlsZGVyCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkKKyAgICB7CisgICAgICAgIFRoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyIHdyaXRlciA9IG5ldyBUaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlcigpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLm9wZW5GaWxlKGFyZ3NbMF0pOworICAgICAgICB3cml0ZXIud3JpdGVUYWJsZXMoKTsKKyAgICAgICAgd3JpdGVyLmNsb3NlRmlsZSgpOworICAgICAgICAKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZmOWEwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDMxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAwOSwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgY2xhc3MgVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIgZXh0ZW5kcyBNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlcygpCisgICAgeworICAgICAgICB3cml0ZUhlYWRlcihudWxsLCBpbmNsdWRlRmlsZXMpOworICAgICAgICAKKyAgICAgICAgVGhhaUNoYXJhY3RlckNsYXNzZXMud3JpdGVDbGFzc1RhYmxlKG91dHB1dCk7CisgICAgICAgIFRoYWlTdGF0ZVRhYmxlLndyaXRlU3RhdGVUYWJsZShvdXRwdXQpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gaW5jbHVkZUZpbGVzID0geyJMRVR5cGVzLmgiLCAiVGhhaVNoYXBpbmcuaCJ9OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQwNWViMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDA5LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCitwdWJsaWMgY2xhc3MgVGhhaVN0YXRlVHJhbnNpdGlvbgoreworICAgIGludCBuZXh0U3RhdGU7CisgICAgY2hhciBhY3Rpb247CisgICAgICAgIAorICAgIHB1YmxpYyBUaGFpU3RhdGVUcmFuc2l0aW9uKGludCBuZXh0U3RhdGUsIGNoYXIgYWN0aW9uKQorICAgIHsKKyAgICAgICAgdGhpcy5uZXh0U3RhdGUgPSBuZXh0U3RhdGU7CisgICAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIGZpbmFsIGludCBnZXROZXh0U3RhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5leHRTdGF0ZTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldEFjdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gYWN0aW9uOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0TmV4dFN0YXRlKGludCBuZXdOZXh0U3RhdGUpCisgICAgeworICAgICAgICBuZXh0U3RhdGUgPSBuZXdOZXh0U3RhdGU7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRBY3Rpb24oY2hhciBuZXdBY3Rpb24pCisgICAgeworICAgICAgICBhY3Rpb24gPSBuZXdBY3Rpb247CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gKChuZXh0U3RhdGUgPCAxMCkgPyAiMCIgOiAiIikgKyBuZXh0U3RhdGUgKyAiLyIgKyBhY3Rpb24gKyAiICI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIG91dHB1dC5wcmludCgieyIpOworICAgICAgICAKKyAgICAgICAgaWYgKG5leHRTdGF0ZSA8IDEwKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50KG5leHRTdGF0ZSk7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoIiwgdCIpOworICAgICAgICBvdXRwdXQucHJpbnQoYWN0aW9uKTsKKyAgICAgICAgb3V0cHV0LnByaW50KCJ9Iik7CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UcmVlV2Fsa2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RyZWVXYWxrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWM0NDcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UcmVlV2Fsa2VyLmphdmEKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJlZVdhbGtlcgoreworICAgIGFic3RyYWN0IHZvaWQgZG93bihpbnQgY2gpOworICAgIGFic3RyYWN0IHZvaWQgdXAoKTsKKyAgICBhYnN0cmFjdCB2b2lkIGxpZ2F0dXJlKGludCBsaWcpOworICAgIGFic3RyYWN0IHZvaWQgZG9uZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9BcnJheUVudW1lcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0FycmF5RW51bWVyYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNzdjMGM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9BcnJheUVudW1lcmF0aW9uLmphdmEKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBBcnJheUVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oT2JqZWN0W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBhcnJheTsKKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGJ5dGVbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBCeXRlKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oY2hhcltdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IENoYXJhY3RlcihhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKHNob3J0W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgU2hvcnQoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihpbnRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBJbnRlZ2VyKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oZmxvYXRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBGbG9hdChhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGRvdWJsZVtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IERvdWJsZShhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc01vcmVFbGVtZW50cygpIHsKKyAgICAgICAgIHJldHVybiBwb3NpdGlvbiA8IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgIGlmIChwb3NpdGlvbiA8IGxpbWl0KQorICAgICAgICAgICAgcmV0dXJuIGFycmF5W3Bvc2l0aW9uKytdOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aHJvdyBuZXcgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisgICAgLy8gcHJpdmF0ZXMKKyAgICBwcml2YXRlIE9iamVjdFtdIGFycmF5OworICAgIHByaXZhdGUgaW50IHBvc2l0aW9uID0gMDsKKyAgICBwcml2YXRlIGludCBsaW1pdCA9IDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9DYWxjdWxhdGVDUkMzMi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9DYWxjdWxhdGVDUkMzMi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3OWVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEKQEAgLTAsMCArMSw4NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLm1hdGguKjsKKworLyoKKyAqICBUaGUgY29kZSBpcyBmcm9tICBodHRwOi8vd3d3LnRoZW9yZW0uY29tL2phdmEvQ1JDMzIuamF2YQorICogQ2FsY3VsYXRlcyB0aGUgQ1JDMzIgLSAzMiBiaXQgQ3ljbGljYWwgUmVkdW5kYW5jeSBDaGVjaworICogPFA+IFRoaXMgY2hlY2sgaXMgdXNlZCBpbiBudW1lcm91cyBzeXN0ZW1zIHRvIHZlcmlmeSB0aGUgaW50ZWdyaXR5CisgKiBvZiBpbmZvcm1hdGlvbi4gIEl0J3MgYWxzbyB1c2VkIGFzIGEgaGFzaGluZyBmdW5jdGlvbi4gIFVubGlrZSBhIHJlZ3VsYXIKKyAqIGNoZWNrc3VtLCBpdCdzIHNlbnNpdGl2ZSB0byB0aGUgb3JkZXIgb2YgdGhlIGNoYXJhY3RlcnMuCisgKiBJdCBwcm9kdWNlcyBhIDMyIGJpdAorICogCisgKiBAYXV0aG9yIE1pY2hhZWwgTGVjdXllciAobWpsQHRoZW9yZW0uY29tKQorICogQHZlcnNpb24gMS4xIEF1Z3VzdCAxMSwgMTk5OAorICovCisgCisvKiBJQ1UgaXMgbm90IGVuZGlhbiBwb3J0YWJsZSwgYmVjYXVzZSBJQ1UgZGF0YSBnZW5lcmF0ZWQgb24gYmlnIGVuZGlhbiBtYWNoaW5lcyBjYW4gYmUKKyAqIHBvcnRlZCB0byBiaWcgZW5kaWFuIG1hY2hpbmVzIGJ1dCBub3QgdG8gbGl0dGxlIGVuZGlhbiBtYWNoaW5lcyBhbmQgdmljZSB2ZXJzYS4gVGhlIAorICogY29udmVyc2lvbiBpcyBub3QgcG9ydGFibGUgYWNyb3NzIHBsYXRmb3JtcyB3aXRoIGRpZmZlcmVudCBlbmRpYW5lc3MuIAorICovCisgCitwdWJsaWMgY2xhc3MgQ2FsY3VsYXRlQ1JDMzIgeworICAgIHN0YXRpYyBpbnQgQ1JDVGFibGVbXTsKKyAgICBzdGF0aWMgaW50IGNyYzsKKworICAgIHN0YXRpYyB2b2lkIGJ1aWxkQ1JDVGFibGUoKSB7CisgICAgICAgIGZpbmFsIGludCBDUkMzMl9QT0xZTk9NSUFMID0gMHhFREI4ODMyMDsKKyAgICAgICAgaW50IGksIGo7CisgICAgICAgIGludCBjcmM7CisgICAgICAgIENSQ1RhYmxlID0gbmV3IGludFsyNTZdOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gMjU1OyBpKyspIHsKKyAgICAgICAgICAgIGNyYyA9IGk7CisgICAgICAgICAgICBmb3IgKGogPSA4OyBqID4gMDsgai0tKSB7CisgICAgICAgICAgICAgICAgaWYgKChjcmMgJiAxKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGNyYyA9IChjcmMgPj4+IDEpIF4gQ1JDMzJfUE9MWU5PTUlBTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjcmMgPj4+PSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENSQ1RhYmxlW2ldID0gY3JjOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHV0ZUNSQzMyKFN0cmluZyBidWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVDUkMzMihidWZmZXIsIDB4RkZGRkZGRkYpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXB1dGVDUkMzMihieXRlIGJ1ZmZlcltdKSB7CisgICAgICAgIHJldHVybiBjb21wdXRlQ1JDMzIoYnVmZmVyLCAweEZGRkZGRkZGKTsKKyAgICB9CisgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wdXRlQ1JDMzIoU3RyaW5nIGJ1ZmZlciwgaW50IGNyYyl7CisgICAgICAgIHJldHVybiBjb21wdXRlQ1JDMzIoYnVmZmVyLmdldEJ5dGVzKCksIGNyYyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHV0ZUNSQzMyKGJ5dGUgYnVmZmVyW10sIGludCBjcmMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVDUkMzMihidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgsIGNyYyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHV0ZUNSQzMyKGJ5dGUgYnVmZmVyW10sIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgbGFzdGNyYyl7CisgICAgICAgIGJ1aWxkQ1JDVGFibGUoKTsgIAorICAgICAgICBpbnQgdGVtcDEsIHRlbXAyOworICAgICAgICBpbnQgaSA9IHN0YXJ0OworICAgICAgICBjcmMgPSBsYXN0Y3JjOworICAgICAgCisgICAgICAgIHdoaWxlIChjb3VudC0tICE9IDApeworICAgICAgICAgICAgdGVtcDEgPSBjcmMgPj4+IDg7CisgICAgICAgICAgICBieXRlIHMgPSBidWZmZXJbaSsrXTsKKyAgICAgICAgICAgIHRlbXAyID0gQ1JDVGFibGVbKGNyYyBecykgJiAweEZGXTsKKyAgICAgICAgICAgIGNyYyA9IHRlbXAxIF4gdGVtcDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNyYzsKKyAgICB9CisKKyAgICBwdWJsaWMgYnl0ZSBbXSB0b0J5dGVzKCkgeworICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobmV3IEludGVnZXIoY3JjKS50b1N0cmluZygpKS50b0J5dGVBcnJheSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29sbGF0aW9uSXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODZmM2U0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29sbGF0aW9uSXRlbS5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworCisvKioKKyAqIEEgQ29sbGF0aW9uSXRlbSByZXByZXNlbnRzIGEgc2luZ2xlIGVudHJ5IGluIGEgY29sbGF0aW9uIHNlcXVlbmNlLgorICovCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uSXRlbSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIE9QX0NIQVJTID0geyc9JywgJzwnLCAnOycsICcsJywgJyYnIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIFNQRUNJQUxfQ0hBUlMgPSB7ICcmJywgJ0AnICwgJz0nLCAnPCcsICc7JywgJywnIH07CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9ORSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJTUFSWSA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EQVJZID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVJUSUFSWSA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJUlNUID0gNDsKKyAgICBwdWJsaWMgaW50IG9wOworICAgIHB1YmxpYyBTdHJpbmcgaXRlbTsKKyAgICBwdWJsaWMgU3RyaW5nIGV4cGFuc2lvbjsKKyAgICBwdWJsaWMgU3RyaW5nIGNvbW1lbnQ7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRpb25JdGVtIEZPUldBUkQgPSBuZXcgQ29sbGF0aW9uSXRlbShOT05FLCAiIikgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gIiI7IH0KKyAgICB9OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0aW9uSXRlbSBCQUNLV0FSRCA9IG5ldyBDb2xsYXRpb25JdGVtKE5PTkUsICIiKSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiAiQCI7IH0KKyAgICB9OworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25JdGVtKFN0cmluZyBpdGVtKSB7CisgICAgICAgIHRoaXMub3AgPSBGSVJTVDsKKyAgICAgICAgdGhpcy5pdGVtID0gY2xlYW5TdHJpbmcoaXRlbSk7CisgICAgICAgIHRoaXMuZXhwYW5zaW9uID0gIiI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25JdGVtKGludCBvcCwgU3RyaW5nIGl0ZW0pIHsKKyAgICAgICAgdGhpcyhvcCwgaXRlbSwgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25JdGVtKGludCBvcCwgU3RyaW5nIGl0ZW0sIFN0cmluZyBleHBhbnNpb24pIHsKKyAgICAgICAgdGhpcy5vcCA9IE1hdGguYWJzKG9wKTsKKyAgICAgICAgaWYgKHRoaXMub3AgPiBURVJUSUFSWSkgdGhpcy5vcCA9IFRFUlRJQVJZOworICAgICAgICB0aGlzLml0ZW0gPSBjbGVhblN0cmluZyhQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUoaXRlbSkpOworICAgICAgICB0aGlzLmV4cGFuc2lvbiA9IGNsZWFuU3RyaW5nKFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZShleHBhbnNpb24pKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWVudChTdHJpbmcgY29tbWVudCkgeworICAgICAgICB0aGlzLmNvbW1lbnQgPSBjb21tZW50OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBpZiAoZXhwYW5zaW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAiIitPUF9DSEFSU1tvcF0raXRlbTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAiJiIrZXhwYW5zaW9uK09QX0NIQVJTW29wXStpdGVtOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGNsZWFuU3RyaW5nKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gIiI7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBzb3VyY2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGZpbmFsIGNoYXIgYyA9IHJlc3VsdC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoKGMgPT0gJ0AnKSB8fCAoYyA9PSAnXHQnKSB8fCAoYyA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICB8fCAoYyA9PSAnXGYnKSB8fCAoYyA9PSdccicpIHx8IChjID09ICdcMDEzJykKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwMkYnKSAmJiAoYyA+PSAnXHUwMDIwJykpCisgICAgICAgICAgICAgICAgICAgIHx8ICgoYyA8PSAnXHUwMDNGJykgJiYgKGMgPj0gJ1x1MDAzQScpKQorICAgICAgICAgICAgICAgICAgICB8fCAoKGMgPD0gJ1x1MDA2MCcpICYmIChjID49ICdcdTAwNUInKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwN0UnKSAmJiAoYyA+PSAnXHUwMDdCJykpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCByZXN1bHQubGVuZ3RoKCktMSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXFwiICsgYyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJlc3VsdC5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXFwiICsgYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaSArPSAyOyAvL3NraXAgdGhlIHR3byBjaGFyYWN0ZXJzIHdlIGluc2VydGVkCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZWY3MDhkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhYmxlLmphdmEKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitwdWJsaWMgaW50ZXJmYWNlIENvbXBhcmFibGUgeworICAgIC8qKgorICAgICAgICByZXR1cm5zIDAgaWYgb2JqZWN0cyBhcmUgZXF1YWwsIC0xIGlmIGEgaXMgbGVzcyB0aGFuIGIsIDEgb3RoZXJ3aXNlLgorICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IGIpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjIzN2NjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworcHVibGljIGludGVyZmFjZSBDb21wYXJhdG9yIHsKKyAgICAvKioKKyAgICAgICAgcmV0dXJucyAwIGlmIG9iamVjdHMgYXJlIGVxdWFsLCAtMSBpZiBhIGlzIGxlc3MgdGhhbiBiLCAxIG90aGVyd2lzZS4KKyAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wbGV4VHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wbGV4VHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMjg3ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgQ29tcGxleFRyYW5zaXRpb24gaXMgY29uY2VwdHVhbGx5IGEgc2luZ2xlIHRyYW5zaXRpb24gdGhhdAorICogY29uc3VtZXMgbXVsdGlwbGUgaW5wdXQgY2hhcmFjdGVycy4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIENvbXBsZXhUcmFuc2l0aW9uIGltcGxlbWVudHMgTGV4LlRyYW5zaXRpb24geworICAgICAgICAvL3RoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkIGJ5IHN1YmNsYXNzZXMgaW5kaWNhdGluZyB0aGF0CisgICAgICAgIC8vdGhlIHRyYW5zaXRpb24gd2FzIHN1Y2Nlc3NmdWxsLiAgVGhpcyB2YWx1ZSBpcyB0aGVuCisgICAgICAgIC8vZGlzY2FyZGVkIGFuZCB0aGUgdmFsdWUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICAvL2lzIHRoZW4gcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBTVUNDRVNTID0gTGV4LkVORF9PRl9GSUxFIC0gMTsKKyAgICBwcml2YXRlIGludCBzdWNjZXNzOyAgICAvL3ZhbHVlIHRvIHJldHVybiBpZiBzdWNjZXNzZnVsbAorICAgIHByaXZhdGUgTGV4IHBhcnNlcjsgICAgIC8vdGhlIHBhcnNlciB1c2VkIGZvciB0aGlzIHRyYW5zaXRpb24KKyAgICAgICAgCisgICAgcHVibGljIENvbXBsZXhUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHRoaXMuc3VjY2VzcyA9IHN1Y2Nlc3M7CisgICAgICAgIHRoaXMucGFyc2VyID0gbmV3IExleChudWxsKTsKKyAgICAgICAgLy90aGlzLnBhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBkb0FjdGlvbihpbnQgYywgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlucHV0LnVucmVhZChjKTsKKyAgICAgICAgcGFyc2VyLnNldFN0YXRlcyhnZXRTdGF0ZXMoKSk7CisgICAgICAgIHBhcnNlci5zZXRJbnB1dChpbnB1dCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICBoYW5kbGVTdWNjZXNzKHBhcnNlciwgYnVmZmVyKTsKKyAgICAgICAgICAgIHJldHVybiBzdWNjZXNzOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBoYW5kbGVGYWlsdXJlKHBhcnNlciwgYnVmZmVyKTsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAgICAgLy9jYWxsZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIHBhcnNlCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU3VjY2VzcyhMZXggcGFyc2VyLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBwYXJzZXIuYXBwZW5kRGF0YVRvKG91dHB1dCk7CisgICAgfQorICAgIAorICAgICAgICAvL2NhbGxlZCBhZnRlciBhIGZhaWxlZCBwYXJzZQorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUZhaWx1cmUoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgIH0KKyAgICAKKyAgICAgICAgLy9zdWJjbGFzc2VzIHNob3VsZCByZXR1cm4gdGhlIHN0YXRlcyB0byB1c2UgdG8gcGFyc2UgdGhpcworICAgICAgICAvL3RyYW5zaXRpb24KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpOworCisgICAgcHVibGljIENvbXBsZXhUcmFuc2l0aW9uIGRlYnVnKGJvb2xlYW4gZGVidWcpIHsKKyAgICAgICAgcGFyc2VyLmRlYnVnKGRlYnVnKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb21wbGV4VHJhbnNpdGlvbiBkZWJ1Zyhib29sZWFuIGRlYnVnLCBTdHJpbmcgdGFnKSB7CisgICAgICAgIHBhcnNlci5kZWJ1ZyhkZWJ1ZywgdGFnKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0QWxsSmF2YUxvY2FsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEFsbEphdmFMb2NhbGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGEwZGQyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEFsbEphdmFMb2NhbGVzLmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRKYXZhTG9jYWxlIGFwcGxpY2F0aW9uIGNvbnZlcnRzIGphdmEgbG9jYWxlcyB0byAKK0phdmEgYW5kIElDVSBMb2NhbGUgZmlsZXMuICBJdCdzIHVzYWdlIGlzIGFzIGZvbGxvd3MKKworICAgIENvbnZlcnRKYXZhTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBsb2NhbGUuLi4KKworVXNhZ2UKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZQorICAgIFRoZSBsb2NhbGUgdG8gY29udmVydAorCisKKyovCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcHVibGljIGNsYXNzIENvbnZlcnRBbGxKYXZhTG9jYWxlcyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IENvbnZlcnRBbGxKYXZhTG9jYWxlcyhhcmdzKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydEFsbEphdmFMb2NhbGVzKFN0cmluZyBhcmdzSW5bXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gYXJnc0luWzBdOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGlzIGlzIHRoZSBwYWNrYWdlbmFtZSA6ICIrcGFja2FnZU5hbWUpOworICAgICAgICAgICAgU3RyaW5nIGNsYXNzbmFtZSA9IHBhY2thZ2VOYW1lKyIuTG9jYWxlIjsKKyAgICAgICAgICAgIC8vY2xhc3NuYW1lLmNvbmNhdCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGlzIGlzIHRoZSBjbGFzc25hbWUgOiAiK2NsYXNzbmFtZSk7CisgICAgICAgICAgLyogIENsYXNzIGNsID0gQ2xhc3MuZm9yTmFtZShjbGFzc25hbWUpOworICAgICAgICAgICAgQ2xhc3NbXSBwYXJhbUxpc3Q9bnVsbDsKKyAgICAgICAgICAgIE1ldGhvZCBndmwgPSBjbC5nZXRNZXRob2QoImdldEF2YWlsYWJsZUxvY2FsZXMiLCBwYXJhbUxpc3QpOworICAgICAgICAgICAgT2JqZWN0W10gcGFyYW1zID0gbmV3IE9iamVjdFtdeyIifTsKKyAgICAgICAgICAgIGd2bC5pbnZva2UobnVsbCxwYXJhbXMpOyovCisgICAgICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS51dGlsLkxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7Ly8oTG9jYWxlW10pZ3ZsLmludm9rZShudWxsLHBhcmFtcyk7OworICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUgPSBsb2NhbGVzW2ldLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gYXJncyA9IHsiLXBhY2thZ2UiLHBhY2thZ2VOYW1lLCItaWN1IiwgbG9jYWxlTmFtZX07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb252ZXJ0aW5nICIrbG9jYWxlTmFtZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZmluYWwgRmlsZU91dHB1dFN0cmVhbSBvdXRGaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0obG9jYWxlTmFtZSArICIudHh0Iik7CisgICAgICAgICAgICAgICAgZmluYWwgUHJpbnRTdHJlYW0gb3V0ID0gbmV3IFByaW50U3RyZWFtKG91dEZpbGUsIHRydWUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG5ldyBDb252ZXJ0SmF2YUxvY2FsZShhcmdzLCBvdXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb252ZXJ0aW5nIHJvb3QgbG9jYWxlIik7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBhcmdzID0geyItcGFja2FnZSIscGFja2FnZU5hbWUsIi1pY3UiLCJyb290In07CisgICAgICAgICAgICBmaW5hbCBGaWxlT3V0cHV0U3RyZWFtIG91dEZpbGUgPSBuZXcgRmlsZU91dHB1dFN0cmVhbSgicm9vdC50eHQiKTsKKyAgICAgICAgICAgIGZpbmFsIFByaW50U3RyZWFtIG91dCA9IG5ldyBQcmludFN0cmVhbShvdXRGaWxlLCB0cnVlKTsKKyAgICAgICAgICAgIG5ldyBDb252ZXJ0SmF2YUxvY2FsZShhcmdzLCBvdXQpOworICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5leHBlY3RlZCBJTyBlcnJvciIpOworICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmQyMTNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSwxNjUgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfMTEgPSAoYnl0ZSkweDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUXzEyID0gKGJ5dGUpMHgwMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9JQ1UgPSAoYnl0ZSkweDA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1BBQ0tBR0UgPSAoYnl0ZSkweDA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX0JVTkRMRSA9IChieXRlKTB4MTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfVU5LTk9XTiA9IChieXRlKTB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfT1BUSU9OU1tdID0geworICAgICAgICAiLTExIiwgCisgICAgICAgICItMTIiLCAKKyAgICAgICAgIi1pY3UiLAorICAgICAgICAiLXBhY2thZ2UiLAorICAgICAgICAiLWJ1bmRsZS1uYW1lIgorICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IENvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUoYXJncywgU3lzdGVtLm91dCk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVua25vd24gZXJyb3I6ICIrdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIGFyZ3NbXSwgUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHByb2Nlc3MoYXJncywgb3V0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHJvY2VzcyhTdHJpbmcgYXJnc1tdLCBQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc2hvcnQgb3B0aW9ucyA9IGlkZW50aWZ5T3B0aW9ucyhhcmdzKTsKKyAgICAgICAgaWYgKChhcmdzLmxlbmd0aCA8IDEpIHx8ICgob3B0aW9ucyAmIE9QVF9VTktOT1dOKSAhPSAwKSkgeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VuYW1lID0gbnVsbDsKKyAgICAgICAgICAgIFN0cmluZyBidW5kbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIC8vZmluYWwgU3RyaW5nIHRoaXNBcmcgPSBhcmdzW2ldOworCisgICAgICAgICAgICAgICAgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItcGFja2FnZSIpKXsKKyAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgcGFja2FnZW5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLWljdSIpKXsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoIWFyZ3NbaV0uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLWJ1bmRsZS1uYW1lIikpeworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gYXJnc1srK2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIEhhc2h0YWJsZSBkYXRhID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGxvY2FsZUVsZW1lbnRzID0gcGFja2FnZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKSgoYnVuZGxlTmFtZSAhPSBudWxsKSA/ICIuIisgYnVuZGxlTmFtZSA6ICIuTG9jYWxlRWxlbWVudHMiICkKKyAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKSgobG9jYWxlTmFtZSAhPSBudWxsKSA/ICJfIisgbG9jYWxlTmFtZSA6ICIiKTsKKworICAgICAgICAgICAvLyBmaW5hbCBTdHJpbmcgRGF0ZUZvcm1hdFpvbmVEYXRhID0gcGFja2FnZW5hbWUrIi5EYXRlRm9ybWF0Wm9uZURhdGEiICsKKyAgICAgICAgICAgLy8gICAgICAgICAoU3RyaW5nKSgobG9jYWxlTmFtZSAhPSBudWxsKSA/ICJfIitsb2NhbGVOYW1lIDogIiIpOworCisgICAgICAgICAgICBhZGRMb2NhbGVEYXRhKGxvY2FsZUVsZW1lbnRzLCBkYXRhKTsKKyAgICAgICAgICAgIC8vYWRkTG9jYWxlRGF0YShEYXRlRm9ybWF0Wm9uZURhdGEsIGRhdGEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlOworICAgICAgICAgICAgaWYobG9jYWxlTmFtZT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlRnJvbVN0cmluZygicm9vdCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlRnJvbVN0cmluZyhsb2NhbGVOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMSkgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBKYXZhMUxvY2FsZVdyaXRlcihvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTIpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSmF2YUxvY2FsZVdyaXRlcihvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfSUNVKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgIG5ldyBJQ1UzTG9jYWxlV3JpdGVyKGdldEJ1bmRsZShsb2NhbGVFbGVtZW50cyksb3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTGlzdFJlc291cmNlQnVuZGxlIGdldEJ1bmRsZShmaW5hbCBTdHJpbmcgYnVuZGxlQ2xhc3NOYW1lKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIENsYXNzIGJ1bmRsZUNsYXNzID0gQ2xhc3MuZm9yTmFtZShidW5kbGVDbGFzc05hbWUpOworICAgICAgICAgICAgZmluYWwgTGlzdFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChMaXN0UmVzb3VyY2VCdW5kbGUpYnVuZGxlQ2xhc3MubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBidW5kbGU7CisKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBmaW5kIGJ1bmRsZSBjbGFzcyBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgY3JlYXRlIGJ1bmRsZSBpbnN0YW5jZSBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgY3JlYXRlIGJ1bmRsZSBpbnN0YW5jZSBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBhZGRMb2NhbGVEYXRhKGZpbmFsIFN0cmluZyBidW5kbGVDbGFzc05hbWUsIGZpbmFsIEhhc2h0YWJsZSBkYXRhKSB7CisgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IGdldEJ1bmRsZShidW5kbGVDbGFzc05hbWUpOworICAgICAgICBFbnVtZXJhdGlvbiBrZXlzID0gYnVuZGxlLmdldEtleXMoKTsKKyAgICAgICAgd2hpbGUoa2V5cy5oYXNNb3JlRWxlbWVudHMoKSl7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykga2V5cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgT2JqZWN0IG8gPSBidW5kbGUuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgICAgICBkYXRhLnB1dChrZXksIG8pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBDb252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlIFstMTFdIFstMTJdIFstaWN1XSBbLXBhY2thZ2VdIDxwYWNrYWdlIG5hbWU+IFstYnVuZGxlLW5hbWVdIDxidW5kbGUgbmFtZT4gbG9jYWxlTmFtZSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHNob3J0IGlkZW50aWZ5T3B0aW9ucyhTdHJpbmdbXSBvcHRpb25zKSB7CisgICAgICAgIHNob3J0IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IG9wdGlvbnNbal07CisgICAgICAgICAgICBpZiAob3B0aW9uLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gb3B0aW9uUmVjb2duaXplZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoc2hvcnQgaSA9IDA7IGkgPCBVU0VSX09QVElPTlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVTRVJfT1BUSU9OU1tpXS5lcXVhbHMob3B0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IChzaG9ydCkoMSA8PCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblJlY29nbml6ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25SZWNvZ25pemVkKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSBPUFRfVU5LTk9XTjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlRnJvbVN0cmluZyhmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpZiAobG9jYWxlTmFtZSA9PSBudWxsKSByZXR1cm4gbmV3IExvY2FsZSgiIiwgIiIsICIiKTsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SmF2YUxvY2FsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SmF2YUxvY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlNDFlZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRKYXZhTG9jYWxlLmphdmEKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisKK1RoZSBDb252ZXJ0SmF2YUxvY2FsZSBhcHBsaWNhdGlvbiBjb252ZXJ0cyBqYXZhIGxvY2FsZXMgdG8gCitKYXZhIGFuZCBJQ1UgTG9jYWxlIGZpbGVzLiAgSXQncyB1c2FnZSBpcyBhcyBmb2xsb3dzCisKKyAgICBDb252ZXJ0SmF2YUxvY2FsZSBbLTExXSBbLTEyXSBbLWljdV0gWy1wYWNrYWdlXSBsb2NhbGUuLi4KKworVXNhZ2UKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZQorICAgIFRoZSBsb2NhbGUgdG8gY29udmVydAorCisKKyovCisKK3B1YmxpYyBjbGFzcyBDb252ZXJ0SmF2YUxvY2FsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfMTEgPSAoYnl0ZSkweDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUXzEyID0gKGJ5dGUpMHgwMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9JQ1UgPSAoYnl0ZSkweDA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1BBQ0tBR0UgPSAoYnl0ZSkweDA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1VOS05PV04gPSAoYnl0ZSkweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX09QVElPTlNbXSA9IHsKKyAgICAgICAgIi0xMSIsIAorICAgICAgICAiLTEyIiwgCisgICAgICAgICItaWN1IiwKKyAgICAgICAgIi1wYWNrYWdlIgorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdGFncyA9IHsKKyAgICAgICAgIkxvY2FsZVN0cmluZyIsCisgICAgICAgICJMb2NhbGVJRCIsCisgICAgICAgICJTaG9ydExhbmd1YWdlIiwKKyAgICAgICAgIlNob3J0Q291bnRyeSIsCisgICAgICAgICJMYW5ndWFnZXMiLAorICAgICAgICAiQ291bnRyaWVzIiwKKyAgICAgICAgIk1vbnRoTmFtZXMiLAorICAgICAgICAiTW9udGhBYmJyZXZpYXRpb25zIiwKKyAgICAgICAgIkRheU5hbWVzIiwKKyAgICAgICAgIkRheUFiYnJldmlhdGlvbnMiLAorICAgICAgICAiQW1QbU1hcmtlcnMiLAorICAgICAgICAiRXJhcyIsCisgICAgICAgICJOdW1iZXJQYXR0ZXJucyIsCisgICAgICAgICJOdW1iZXJFbGVtZW50cyIsCisgICAgICAgICJDdXJyZW5jeUVsZW1lbnRzIiwKKyAgICAgICAgIkRhdGVUaW1lUGF0dGVybnMiLAorICAgICAgICAiRGF0ZVRpbWVFbGVtZW50cyIsICAgCisgICAgICAgICJjb2xsYXRpb25zIiwKKyAgICAgICAgInpvbmVTdHJpbmdzIiwKKyAgICAgICAgImxvY2FsUGF0dGVybkNoYXJzIiwKKyAgICB9OworCisKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBDb252ZXJ0SmF2YUxvY2FsZShhcmdzLCBTeXN0ZW0ub3V0KTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydEphdmFMb2NhbGUoU3RyaW5nIGFyZ3NbXSwgUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHByb2Nlc3MoYXJncywgb3V0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHJvY2VzcyhTdHJpbmcgYXJnc1tdLCBQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc2hvcnQgb3B0aW9ucyA9IGlkZW50aWZ5T3B0aW9ucyhhcmdzKTsKKyAgICAgICAgaWYgKChhcmdzLmxlbmd0aCA8IDEpIHx8ICgob3B0aW9ucyAmIE9QVF9VTktOT1dOKSAhPSAwKSkgeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VuYW1lID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLXBhY2thZ2UiKSl7CisgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgIHBhY2thZ2VuYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihhcmdzW2ldLmVxdWFsc0lnbm9yZUNhc2UoIi1pY3UiKSl7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYgKCFhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVOYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaW5hbCBIYXNodGFibGUgZGF0YSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBsb2NhbGVFbGVtZW50czsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBkYXRlRm9ybWF0Wm9uZURhdGE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvY2FsZU5hbWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgaWYoIWxvY2FsZU5hbWUuZXF1YWxzKCJyb290IikpeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVFbGVtZW50cyA9IHBhY2thZ2VuYW1lKyIuTG9jYWxlRWxlbWVudHMiICsiXyIrbG9jYWxlTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdFpvbmVEYXRhID0gcGFja2FnZW5hbWUrIi5EYXRlRm9ybWF0Wm9uZURhdGEiICsgIl8iK2xvY2FsZU5hbWU7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZUVsZW1lbnRzID0gcGFja2FnZW5hbWUrIi5Mb2NhbGVFbGVtZW50cyI7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXRab25lRGF0YSA9IHBhY2thZ2VuYW1lKyIuRGF0ZUZvcm1hdFpvbmVEYXRhIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkTG9jYWxlRGF0YShsb2NhbGVFbGVtZW50cywgZGF0YSk7CisgICAgICAgICAgICBhZGRMb2NhbGVEYXRhKGRhdGVGb3JtYXRab25lRGF0YSwgZGF0YSk7CisgICAgICAgICAgICBmaW5hbCBMb2NhbGUgbG9jYWxlID0gbG9jYWxlRnJvbVN0cmluZyhsb2NhbGVOYW1lKTsKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMSkgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBKYXZhMUxvY2FsZVdyaXRlcihvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTIpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSmF2YUxvY2FsZVdyaXRlcihvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfSUNVKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IElDVUxvY2FsZVdyaXRlcihvdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYWRkTG9jYWxlRGF0YShmaW5hbCBTdHJpbmcgYnVuZGxlQ2xhc3NOYW1lLCBmaW5hbCBIYXNodGFibGUgZGF0YSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgQ2xhc3MgYnVuZGxlQ2xhc3MgPSBDbGFzcy5mb3JOYW1lKGJ1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBmaW5hbCBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoUmVzb3VyY2VCdW5kbGUpYnVuZGxlQ2xhc3MubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCByZXNvdXJjZSA9IGJ1bmRsZS5nZXRPYmplY3QodGFnc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGEucHV0KHRhZ3NbaV0sIHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBmaW5kIGJ1bmRsZSBjbGFzcyBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgY3JlYXRlIGJ1bmRsZSBpbnN0YW5jZSBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgY3JlYXRlIGJ1bmRsZSBpbnN0YW5jZSBmb3IgYnVuZGxlOiAiK2J1bmRsZUNsYXNzTmFtZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IENvbnZlcnRKYXZhTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBbLXBhY2thZ2VdIDxwYWNrYWdlIG5hbWU+IGxvY2FsZU5hbWUiKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzaG9ydCBpZGVudGlmeU9wdGlvbnMoU3RyaW5nW10gb3B0aW9ucykgeworICAgICAgICBzaG9ydCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBvcHRpb25zW2pdOworICAgICAgICAgICAgaWYgKG9wdGlvbi5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaWYgKGxvY2FsZU5hbWUgPT0gbnVsbCkgcmV0dXJuIG5ldyBMb2NhbGUoIiIsICIiLCAiIik7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZU5hbWU7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MGFkYTlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0TG9jYWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworLyoKKworQ29udmVydFBPU0lYTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBbLWljdTJdIGxvY2FsZURhdGFGaWxlIFtjaGFyTWFwRmlsZSAuLi5dCisKKyovCisKK3B1YmxpYyBjbGFzcyBDb252ZXJ0TG9jYWxlVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworLyoKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLTEyIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcY29sbGF0aW9uVGVzdC50eHQiCisgICAgICAgIH0gKTsgICAgCisgCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxjb2xsYXRpb25UZXN0Mi50eHQiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0gKTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgIi1MQ19NRVNTQUdFUyIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFZpdm54NDMuaWJtIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXGlibTExMjktMi1VbmlDb2RlLmNobSIsCisgICAgICAgIH0gKTsKKy8qICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLTEyIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxlbl9VUyIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisvKiAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZmlfRkkiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsICJlbl9CRSIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxFTkJFV0lOLklCTSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJYm0xMjUyLmNobSIsCisgICAgICAgIH0pOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsICJ2aV9WTiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFZpdm54NDMuaWJtIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXGlibTExMjktMi1VbmlDb2RlLmNobSIsCisgICAgICAgIH0pOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiZnJfRlIiLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxmcl9GUiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICJmb19GTyIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGZvX0ZPIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKyovCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiZnJfTFUiLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxmcl9MVSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisvKgorICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImRlX0xVIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZGVfTFUiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworKi8KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0UE9TSVhMb2NhbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydFBPU0lYTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzkyYzMyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydFBPU0lYTG9jYWxlLmphdmEKQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisKK1RoZSBDb252ZXJ0UE9TSVhMb2NhbGUgYXBwbGljYXRpb24gY29udmVydHMgUE9TSVggbG9jYWxlIGZpbGVzIHRvIAorSmF2YSBhbmQgSUNVIExvY2FsZSBmaWxlcy4gIEl0J3MgdXNhZ2UgaXMgYXMgZm9sbG93cworCisgICAgQ29udmVydFBPU0lYTG9jYWxlIAorICAgICAgICBbLUxDX0NUWVBFXQorICAgICAgICBbLUxDX1RJTUVdCisgICAgICAgIFstTENfTlVNRVJJQ10gCisgICAgICAgIFstTENfTU9ORVRBUlldIAorICAgICAgICBbLUxDX01FU1NBR0VTXSAKKyAgICAgICAgWy0xMV0gCisgICAgICAgIFstMTJdIAorICAgICAgICBbLWljdV0KKyAgICAgICAgWy1pY3UyXQorICAgICAgICBsb2NhbGVOYW1lCisgICAgICAgIGxvY2FsZURhdGFGaWxlIAorICAgICAgICBbY2hhck1hcEZpbGUgLi4uXQorICAgICAgICAKK1RoZSBhcHBsaWNhdGlvbiBpcyBpbnZva2VkIHdpdGggb3B0aW9ucyBzcGVjaWZ5aW5nIHRoZSBmb3JtYXQocykgb2YKK3RoZSBsb2NhbGUgZmlsZShzKSB0byBnZW5lcmF0ZSBhcyB3ZWxsIGFzIHRoZSBQT1NJWCBsb2NhbGUgZmlsZSBhbmQKK2NoYXJhY3RlciBtYXBwaW5nIGZpbGVzLgorCitVc2FnZQorCistTENfQ1RZUEUKKyAgICBJZiB0aGUgLUxDX0NUWVBFIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZQorICAgIGZvbGxvd2luZyBpdGVtcyBhcmUgYWRkZWQgdG8gdGhlIGxvY2FsZSBpZiB0aGV5CisgICAgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZTogdXBwZXIsIGxvd2VyLCBhbHBoYSwgZGlnaXQsIAorICAgIHNwYWNlLCBjbnRybCwgcHVuY3QsIGdyYXBoLCBwcmludCwgeGRpZ2l0LCBibGFuaywgCisgICAgdG91cHBlciwgdG9sb3dlci4KKyAgICAKKzxDT0RFPi1MQ19USU1FCisgICAgSWYgdGhlIC1MQ19USU1FIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcKKyAgICBpdGVtcyB3aWxsIGJlIGluY2x1ZGVkIGlmIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIFBPU0lYIHNvdXJjZToKKyAgICBhYmRheSwgZGF5LCBhYm1vbiwgbW9uLCBkX3RfZm10LCBkX2Z0bSwgdF9mbXQsIGFtX3BtLAorICAgIHRfZm10X2FtcG0sIGVyYSwgZXJhX3llYXIsIGVyYV9kX2ZtdCwgYWx0X2RpZ2l0cy4KKyAgICAKKy1MQ19OVU1FUklDCisgICAgSWYgdGhlIC1MQ19OVU1FUklDIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcKKyAgICBpdGVtcyB3aWxsIGJlIGluY2x1ZGVkIGlmIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZToKKyAgICBkZWNpbWFsX3BvaW50LCB0aG91c2FuZHNfc2VwLCBncm91cGluZworCistTENfTU9ORVRBUlkKKyAgICBJZiB0aGUgLUxDX01PTkVUQVJZIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcKKyAgICBpdGVtcyB3aWxsIGJlIGluY2x1ZGVkIGlmIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZToKKyAgICBpbnRfY3Vycl9zeW1ib2wsIGN1cnJlbmN5X3N5bWJvbCwgbW9uX2RlY2ltYWxfcG9pbnQsCisgICAgbW9uX3Rob3VzYW5kc19zZXAsIG1vbl9ncm91cGluZywgcG9zaXRpdmVfc2lnbiwgCisgICAgbmVnYXRpdmVfc2lnbiwgaW50X2ZyYWNfZGlnaXRzLCBmcmFjX2RpZ2l0cywgcF9jc19wcmVjZWRlcywKKyAgICBwX3NlcF9ieV9zcGFjZSwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIHBfc2lnbl9wb3NuLgorCistTENfTUVTU0FHRVMKKyAgICBJZiB0aGUgLUxDX01FU1NBR0VTIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZQorICAgIGZvbGxvd2luZyBpdGVtcyBhcmUgYWRkZWQgdG8gdGhlIGxvY2FsZSBpZiB0aGV5CisgICAgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZTogeWVzZXhwciwgbm9leHByCisKKy0xMQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4gCisgICAgSmF2YSAxLjEueCBsb2NhbGUgZm9ybWF0LgorICAgIAorLTEyCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIEphdmEgMS4yLnggbG9jYWxlIGZvcm1hdC4gIElmIGFuIG91dHB1dCBmb3JtYXQKKyAgICBpcyBub3Qgc3BlY2lmaWVkLCAtMTIgaXMgdGhlIGRlZmF1bHQuCisgICAgCistaWN1CisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIElDVSBsb2NhbGUgZm9ybWF0LgorCitsb2NhbGVOYW1lCisgICAgVGhlIG5hbWUgb2YgdGhlIGxvY2FsZSBpbiB0aGUgbG9jYWxlRGF0YUZpbGUuICBFeC4gIGVuX1VTLgorCitsb2NhbGVEYXRhRmlsZQorICAgIFRoZSBsb2NhbGVEYXRhRmlsZSBwYXRoIGlzIHJlcXVpcmVkIGFuZCBzcGVjaWZpZXMgdGhlIHBhdGggCisgICAgdG8gdGhlIGxvY2FsZSBkYXRhIGZpbGUuICBJZiBhICJjb3B5IiBkaXJlY3RpdmUgaXMgZW5jb3VudGVyZWQgCisgICAgd2hpbGUgcHJvY2Vzc2luZyB0aGUgbG9jYWxlRGF0YUZpbGUsIENvbnZlcnRQT1NJWExvY2FsZSB3aWxsIGxvb2sKKyAgICBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGxvY2FsZURhdGFGaWxlIGZvciBhZGRpdGlvbmFsCisgICAgUE9TSVggbG9jYWxlIGRhdGEgZmlsZXMuICBGaWxlcyBtdXN0IGJlIGluIHRoZSBQT1NJWCBmb3JtYXQKKyAgICBzcGVjaWZpZWQgaW4gSVNPL0lFQyA5OTQ1LSB3aXRoIGV4Y2VwdGlvbnMgbm90ZWQgYmVsb3cuICBFeGFjdGx5CisgICAgb25lIGxvY2FsZURhdGFGaWxlIG11c3QgYmUgc3BlY2lmaWVkLgorICAgIAorY2hhck1hcEZpbGUKKyAgICBaZXJvIG9yIG1vcmUgY2hhcmFjdGVyIG1hcHBpbmcgZmlsZXMgbWF5IGJlIHNwZWNpZmllZC4gIGNoYXJNYXBGaWxlcyBhcmUgdXNlZAorICAgIHRvIG1hcCBzeW1ib2xzIGluIHRoZSBsb2NhbGVEYXRhRmlsZSB0byBVbmljb2RlIHZhbHVlcy4gIFRoZXkgYXJlIHByb2Nlc3NlZAorICAgIGFzIGZvbGxvd3MuICBDb252ZXJ0UE9TSVhMb2NhbGUgc2VhcmNocyBmb3IgYSBsaW5lIGNvbnRhaW5pbmcgb25seSB0aGUKKyAgICB3b3JkICJDSEFSTUFQIiBhbmQgcmVhZHMgc3ltYm9sIG1hcHBpbmdzIHVudGlsIGl0IHJlYWNoZXMgYSBsaW5lCisgICAgY29udGFpbmluZyBvbmx5IHRoZSB3b3JkcyAiRU5EIENIQVJNQVAiLiAgU3ltYm9sIG1hcHBpbmdzIGhhdmUKKyAgICB0aGUgZm9ybSAiPFNZTUJPTD4gPFVoaGhoPiIgd2hlcmUgIjxTWU1CT0w+IiBpcyBhbnkgc3ltYm9sIHZhbGlkCisgICAgaW4gYSBsb2NhbGVEYXRhRmlsZSBhbmQgImhoaGgiIGlzIGZvdXIgaGV4aWRlY2ltYWwgZGlnaXRzIHJlcHJlc2VudGluZworICAgIHRoZSBVbmljb2RlIHZhbHVlIGZvciB0aGF0IHN5bWJvbC4gIFN1cnJvZ2F0ZSBwYWlycyBhcmUgbm90IHN1cHBvcnRlZAorICAgIGluIGNoYXJNYXBGaWxlcy4gQW4gZXhhbXBsZSBjaGFyTWFwRmlsZSBtaWdodCBjb250YWluIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgQ0hBUk1BUAorICAgICAgICA8U1RBUlRfT0ZfVEVYVD4gICAgICAgPFUwMDAyPgorICAgICAgICA8RT4gICAgICAgICAgICAgICAgICAgPFUwMDQ1PgorICAgICAgICA8cT4gICAgICAgICAgICAgICAgICAgPFUwMDcxPgorICAgICAgICBFTkQgQ0hBUk1BUAorCisgICAgc3BlY2lmeWluZyB0aGF0IHRoZSBzeW1ib2wgPFNUQVJUX09GX1RFWFQ+IHNob3VsZCBiZSByZXBsYWNlZCBieSAKKyAgICB0aGUgVW5pY29kZSB2YWx1ZSBvZiAweDAwMDIgd2hlcmV2ZXIgaXQgb2NjdXJzLgorICAgIAorICAgIFdoZW4gbXVsdGlwbGUgY2hhck1hcEZpbGVzIGFyZSBzcGVjaWZpZWQsIG1hcHBpbmdzIGluIGZpbGVzIGxpc3RlZCAKKyAgICBsYXRlciB0YWtlIHByZWNlZGVuY2Ugb3ZlciBlYXJsaWVyIG9uZXMuCisKKworQ29udmVyc2lvbiB0byBJQ1UgYW5kIEphdmE6CisKK2NvbGxhdGlvbnMKKyAgICBDb252ZXJ0ZWQgZnJvbSB0aGUgTENfQ09MTEFURSBzZWN0aW9uLiAgVGhlICIuLi4iIGRpcmVjdGl2ZSBpcyBpZ25vcmVkLgorICAgIFRoZSAicmVwbGFjZS1hZnRlciIgZGlyZWN0aXZlIGlzIGlnbm9yZWQuCisKK0N1cnJlbmN5RWxlbWVudHMKKyAgICBlbGVtZW50IDAgaXMgc2V0IHRvIGN1cnJlbmN5X3N5bWJvbAorICAgIGVsZW1lbnQgMSBpcyBzZXQgdG8gaW50X2N1cnJfc3ltYm9sCisgICAgZWxlbWVudCAyIGlzIHNldCB0byBtb25fZGVjaW1hbF9wb2ludAorICAgIEFsbCBvdGhlciBlbGVtZW50cyBkZWZhdWx0LgorICAgIAorTnVtYmVyRWxlbWVudHMKKyAgICBlbGVtZW50IDAgaXMgc2V0IHRvIGRlY2ltYWxfcG9pbnQKKyAgICBlbGVtZW50IDEgaXMgc2V0IHRvIHRob3VzYW5kc19zZXAKKworTW9udGhOYW1lcyBpcyBzZXQgdG8gbW9uCisKK01vbnRoQWJicmV2aWF0aW9ucyBpcyBzZXQgdG8gYWJtb24KKworRGF5TmFtZXMgaXMgc2V0IHRvIGRheQorCitEYXlBYmJyZXZpYXRpb25zIGlzIHNldCB0byBhYmRheQorCitBbVBtTWFya2VycyBpcyBzZXQgdG8gYW1fcG0KKworRGF0ZVRpbWVQYXR0ZXJucworICAgIGVsZW1lbnRzIDAgdGhyb3VnaCAzIGFyZSBzZXQgdG8gdF9mbXRfYW1wbSB3aXRoIHRoZSBwYXR0ZXJucyBjb252ZXJ0ZWQKKyAgICBlbGVtZW50cyA0IHRocm91Z2ggNyBhcmUgc2V0IHRvIGRfZm10IHdpdGggdGhlIHBhdHRlcm5zIGNvbnZlcnRlZAorCisKK0FkaXRpb24gUE9TSVggZGF0YSBtYXkgYmUgaW5jbHVkZWQgaW4gdGhlIExvY2FsZSBhcyBmb2xsb3dzOgorCitMQ19UWVBFIAorICAgIFRoaXMgc2VjdGlvbiBpcyBpZ25vcmVkIHVubGVzcyB0aGUgLUxDX0NUWVBFIG9wdGlvbiBpcworICAgIHNwZWNpZmllZC4gIElmIHRoZSAtTENfQ1RZUEUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB1cHBlciwgbG93ZXIsIGFscGhhLCBkaWdpdCwgCisgICAgc3BhY2UsIGNudHJsLCBwdW5jdCwgZ3JhcGgsIHByaW50LCB4ZGlnaXQsIGJsYW5rLCAKKyAgICB0b3VwcGVyLCB0b2xvd2VyLgorCitMQ19NRVNTQUdFUworICAgIAorTENfTU9ORVRBUlkKKyAgICAKK0xDX05VTUVSSUMKKworTENfVElNRQorICAgIElmIHRoZSAtTENfVElNRSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nCisgICAgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6CisgICAgYWJkYXksIGRheSwgYWJtb24sIG1vbiwgZF90X2ZtdCwgZF9mdG0sIHRfZm10LCBhbV9wbSwKKyAgICB0X2ZtdF9hbXBtLCBlcmEsIGVyYV95ZWFyLCBlcmFfZF9mbXQsIGFsdF9kaWdpdHMuCisKK0xDX0NPTExBVEUKKyAgICBDb252ZXJ0ZWQgdG8gY29sbGF0aW9ucyBpbiB0aGUgcmVzb3VyY2UgZmlsZS4KKyAgICAKKyAgICAKKyovCisKK3B1YmxpYyBjbGFzcyBDb252ZXJ0UE9TSVhMb2NhbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19DVFlQRSA9IDB4MDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19USU1FID0gMHgwMDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX05VTUVSSUMgPSAweDAwNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfTU9ORVRBUlkgPSAweDAwODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfTUVTU0FHRVMgPSAweDAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfMTEgPSAweDAyMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfMTIgPSAweDA0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfSUNVID0gMHgwODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0lDVTIgPSAweDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfUkFXID0gMHgyMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX1VOS05PV04gPSAweDQwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfT1BUSU9OU1tdID0geworICAgICAgICAiLUxDX0NUWVBFIiwgCisgICAgICAgICItTENfVElNRSIsIAorICAgICAgICAiLUxDX05VTUVSSUMiLCAKKyAgICAgICAgIi1MQ19NT05FVEFSWSIsCisgICAgICAgICItTENfTUVTU0FHRVMiLAorICAgICAgICAiLTExIiwgCisgICAgICAgICItMTIiLCAKKyAgICAgICAgIi1pY3UiLCAKKyAgICAgICAgIi1pY3UyIiwgCisgICAgICAgICItUkFXIiwKKyAgICAgICAgIi1lbmMiLAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0NPTlZFUlQgPSAoc2hvcnQpKE9QVF9MQ19DVFlQRSB8IE9QVF9MQ19USU1FIAorICAgICAgICAgICAgfCBPUFRfTENfTlVNRVJJQyB8IE9QVF9MQ19NT05FVEFSWSB8IE9QVF9MQ19NRVNTQUdFUyk7CisgICAgCisgICAgcHJpdmF0ZSBIYXNodGFibGUgZGF0YTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBDb252ZXJ0UE9TSVhMb2NhbGUoYXJncyk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICB0LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmtub3duIGVycm9yOiAiK3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb252ZXJ0UE9TSVhMb2NhbGUoU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICBwcm9jZXNzKGFyZ3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgICAgICAgICAvL319CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3MoU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICBzaG9ydCBvcHRpb25zID0gaWRlbnRpZnlPcHRpb25zKGFyZ3MpOworICAgICAgICBTdHJpbmcgZW5jPW51bGw7CisgICAgICAgIGlmICgoYXJncy5sZW5ndGggPCAyKSB8fCAoKG9wdGlvbnMgJiBPUFRfVU5LTk9XTikgIT0gMCkpIHsKKyAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFZlY3RvciBtYXBGaWxlcyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBudWxsOworICAgICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyB0aGlzQXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAodGhpc0FyZy5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYodGhpc0FyZy5zdGFydHNXaXRoKCItZW5jIikpeworICAgICAgICAgICAgICAgICAgICAgICAgZW5jID0gYXJnc1srK2ldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVGcm9tU3RyaW5nKHRoaXNBcmcpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IHRoaXNBcmc7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWFwRmlsZXMuYWRkRWxlbWVudCh0aGlzQXJnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihlbmM9PW51bGwpeworICAgICAgICAgICAgICAgIGVuYz0iRGVmYXVsdCI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGZpbGVOYW1lID09IG51bGwpIHx8IChsb2NhbGUgPT0gbnVsbCkgfHwgKG9wdGlvbnMgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFBvc2l4Q2hhck1hcCBtYXAgPSBuZXcgUG9zaXhDaGFyTWFwKCk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW51bWVyID0gbWFwRmlsZXMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZW51bWVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtYXBGaWxlID0gKFN0cmluZyllbnVtZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJMb2NhbGU6ICIrbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJMb2FkaW5nIGNoYXJhY3RlciBtYXAgZmlsZTogIittYXBGaWxlKTsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5sb2FkKG5ldyBGaWxlKG1hcEZpbGUpLGVuYyk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3IgbG9hZGluZyBtYXAgZmlsZTogIittYXBGaWxlKyIgICIrZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkZpbGUgc2tpcHBlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChtYXApOworICAgICAgICAgICAgICAgIEZpbGUgZGF0YUZpbGUgPSBuZXcgRmlsZShmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJMb2NhbGUgZGlyZWN0b3J5OiAiK2RhdGFGaWxlLmdldFBhcmVudCgpKTsKKyAgICAgICAgICAgICAgICBQT1NJWExvY2FsZVJlYWRlciByZWFkZXIgPSBuZXcgUE9TSVhMb2NhbGVSZWFkZXIoZGF0YUZpbGUuZ2V0UGFyZW50KCksIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJQYXJzaW5nIGZpbGU6ICIrZGF0YUZpbGUuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBkYXRhID0gcmVhZGVyLnBhcnNlKGRhdGFGaWxlLmdldE5hbWUoKSwgKGJ5dGUpKG9wdGlvbnMgJiBPUFRfQ09OVkVSVCkpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvbnZlcnRpbmcuLi4uIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMSkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEphdmExTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzEyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSmF2YUxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfSUNVMikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVTJMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfUkFXKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRVc2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogQ29udmVydFBPU0lYTG9jYWxlIFstTENfQ1RZUEVdIFstTENfVElNRV0iKworICAgICAgICAgICAgIiBbLUxDX05VTUVSSUNdIFstTENfTU9ORVRBUlldIFstTENfTUVTU0FHRVNdIFstMTFdIFstMTJdIFstaWN1XSIrIAorICAgICAgICAgICAgIiBsb2NhbGVOYW1lIGxvY2FsZURhdGFGaWxlIFtjaGFyTWFwRmlsZSAuLi5dIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc2hvcnQgaWRlbnRpZnlPcHRpb25zKFN0cmluZ1tdIG9wdGlvbnMpIHsKKyAgICAgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBvcHRpb25zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gb3B0aW9uc1tqXTsKKyAgICAgICAgICAgIGlmIChvcHRpb24uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvcHRpb25SZWNvZ25pemVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yIChzaG9ydCBpID0gMDsgaSA8IFVTRVJfT1BUSU9OUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoVVNFUl9PUFRJT05TW2ldLmVxdWFscyhvcHRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gKHNob3J0KSgxIDw8IGkpOworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uUmVjb2duaXplZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIW9wdGlvblJlY29nbml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IE9QVF9VTktOT1dOOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGVGcm9tU3RyaW5nKGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZU5hbWU7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdAJyk7CisgICAgICAgIGlmKG5keD4wKXsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCxuZHgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9FT0xUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VPTFRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMWJkZmY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9FT0xUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworCisvKioKKyAqIFRoaXMgdHJhbnNpdGlvbiBwYXJzZXMgYW4gZW5kLW9mLWxpbmUgc2VxdWVuY2UuICBUaGUgY29tbWVudCBjaGFyYWN0ZXIKKyAqIGNhbiBiZSBzZXQgdG8gYW4gYXJiaXRyYXJ5IGNoYXJhY3RlciwgYnV0IGl0IGlzIHNoYXJlZCBnbG9iYWxseS4KKyAqIEEgY29tbWVudCBtYXkgb25seSBvY2N1ciBhZnRlciBhbiBlbmQtb2YtbGluZS4KKyAqIEVPTCA6PSA8RU9GPiB8IDxFT0xfQ0hBUlM+IFsgPEVPTF9TRUdNRU5UPiBdKgorICogRU9MX1NFR01FTlQgOj0gPEVPTF9DSEFSUz4gfCA8U1BBQ0VfQ0hBUlM+IHwgPENPTU1FTlQ+CisgKiBTUEFDRV9DSEFSUyA6PSAiIFx0IjsKKyAqIEVPTF9DSEFSUyA9ICJcclxuXHUyMDI4XHUyMDI5IjsKKyAqIENPTU1FTlRfU1RSSU5HIDo9IDxDT01NRU5UX0NIQVI+IDxDT01NRU5UX0JPRFk+CisgKiBDT01NRU5UX0NIQVIgPSAiIyI7CisgKiBDT01NRU5UX0JPRFkgPSBbIH48RU9GPiAmIH48RU9MX0NIQVJTPiBdKgorICovCitwdWJsaWMgY2xhc3MgRU9MVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFT0xfQ0hBUlMgPSAiXGZcclxuXHUyMDI4XHUyMDI5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgREVGQVVMVF9DT01NRU5UX0NIQVIgPSAnIyc7CisgICAgcHVibGljIHN0YXRpYyBjaGFyIENPTU1FTlRfQ0hBUiA9IERFRkFVTFRfQ09NTUVOVF9DSEFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRU9MVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgRU9MVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICAKKyAgICAgICAgLyoqIFJlc3RvcmUgdGhlIGNvbW1lbnQgY2hhcmFjdGVyIHRvIHRoZSBkZWZhdWx0IHZhbHVlICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXREZWZhdWx0Q29tbWVudENoYXIoKSB7CisgICAgICAgIHJldHVybiBzZXRDb21tZW50Q2hhcihERUZBVUxUX0NPTU1FTlRfQ0hBUik7CisgICAgfQorICAgIAorICAgICAgICAvKiogU2V0IGEgbmV3IGNvbW1lbnQgY2hhcmFjdGVyICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXRDb21tZW50Q2hhcihjaGFyIGMpIHsKKyAgICAgICAgY2hhciByZXN1bHQgPSBDT01NRU5UX0NIQVI7CisgICAgICAgIENPTU1FTlRfQ0hBUiA9IGM7CisgICAgICAgIHN0YXRlcyA9IG51bGw7ICAvL2ZsdXNoIHN0YXRlcworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRU9MVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiAoRU9MX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPj0gMCB8fCBDT01NRU5UX0NIQVI9PWMpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChnZXRDbGFzcygpKSB7CisgICAgICAgICAgICBpZiAoc3RhdGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL2NhY2hlIHRoZSBzdGF0ZXMgc28gdGhleSBjYW4gYmUgc2hhcmVkLiAgVGhpcyBzdGF0ZXMKKyAgICAgICAgICAgICAgICAvL25lZWQgdG8gYmUgZmx1c2hlZCBhbmQgcmVidWlsdCB3aGVuIHRoZSBjb21tZW50CisgICAgICAgICAgICAgICAgLy9jaGFyYWN0ZXIgY2hhbmdlcy4KKyAgICAgICAgICAgICAgICBzdGF0ZXMgPSBuZXcgTGV4LlRyYW5zaXRpb25bXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihDT01NRU5UX0NIQVIsIExleC5JR05PUkVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX0NPTlNVTUUsIC0yKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBpbnQgVE9LRU4gPSAxOworICAgICAgICAgICAgZmluYWwgaW50IEVPRiA9IDI7CisgICAgICAgICAgICBmaW5hbCBpbnQgRU9MID0gMzsKKyAgICAgICAgICAgIGZpbmFsIGludCBSQU5HRSA9IDQ7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0YpLAorICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbihUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBSYW5nZVRyYW5zaXRpb24oUkFOR0UpLAorICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIDApCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIlxuPE5VTEw+IDB4MTI0MyAjaGVsbG8gIGtkc2pcbiI7CisgICAgICAgICAgICBTdHJpbmdSZWFkZXIgc3IgPSBuZXcgU3RyaW5nUmVhZGVyKHRleHQpOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcHIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoc3IpOworICAgICAgICAgICAgTGV4IHBhcnNlciA9IG5ldyBMZXgoc3RhdGVzLCBwcik7CisgICAgICAgICAgICBwYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBwYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IEVPTCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIHdoaWxlKHM9PVRPS0VOKXsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRXNjYXBlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Fc2NhcGVUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDJkYmFkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRXNjYXBlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEFuIGVzY2FwZSB0cmFuc2l0aW9uIHBhcnNlcyBhIFBPU0lYIGVzY2FwZSBzZXF1ZW5jZS4gIEFuIGVzY2FwZQorICogc2VxdWVuY2UgY2FuIGJlIGEgaGV4LCBvY3RhbCwgb3IgZGVjaW1hbCBjb25zdGFudCwgb3IgYW4gZXNjYXBlZAorICogY2hhcmFjdGVyLiAgVGhlIHJlc3VsdGFudCB2YWx1ZSBpcyBBTFdBWVMgb24gYnl0ZSBsb25nLiAgTG9uZ2VyCisgKiBlc2NhcGVkIHZhbHVlcyAoaWUuXHhGRjYzKSBvdmVyZmxvdyBhbmQgYXJlIHRydW5jYXRlZC4gIEFuIGVzY2FwZQorICogY2hhcmFjdGVyIGZvbGxvd2VkIGJ5IGFuIEVPTCBzZXF1ZW5jZSBpcyBzaWxlbnRseSBlYXRlbi4KKyAqLworcHVibGljIGNsYXNzIEVzY2FwZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFc2NhcGVUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBFc2NhcGVUcmFuc2l0aW9uKFNVQ0NFU1MpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIERFRkFVTFRfRVNDQVBFX0NIQVIgPSAnXFwnOworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBFU0NBUEVfQ0hBUiA9IERFRkFVTFRfRVNDQVBFX0NIQVI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ0lNQUwgPSAxOyAgIC8vZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPQ1RBTCA9IDI7ICAgICAvL29jdGFsIGVzY2FwZSBzZXF1ZW5jZSB3YXMgcGFyc2VkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFWCA9IDM7ICAgICAgIC8vaGV4IGVzY2FwZSBzZXF1ZW5jZSB3YXMgcGFyc2VkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVTQ0FQRSA9IDQ7ICAgIC8vY2hhcmFjdGVyIGVzY2FwZSBzZXF1ZW5jZSB3YXMgcGFyc2VkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVPTCA9IDU7ICAgICAgIC8vYW4gZXNjYXBlIGNoYXJhY3RlciBmb2xsb3dlZCBieSBFT0YgZWF0ZW4KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT0NUQUxfQ0hBUlMgPSAiMDEyMzQ1NjciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBERUNJTUFMX0NIQVJTID0gIjAxMjM0NTY3ODkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRVhfQ0hBUlMgPSAiMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiI7CisgICAgCisgICAgICAgIC8qKiBTZXQgdGhlIGVzY2FwZSBjaGFyYWN0ZXIgdG8gdGhlIGRlZmF1bHQgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBjaGFyIHNldERlZmF1bHRFc2NhcGVDaGFyKCkgeworICAgICAgICByZXR1cm4gc2V0RXNjYXBlQ2hhcihERUZBVUxUX0VTQ0FQRV9DSEFSKTsKKyAgICB9CisgICAgCisgICAgICAgIC8qKiBTZXQgdGhlIGVzY2FwZSBjaGFyYWN0ZXIgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBjaGFyIHNldEVzY2FwZUNoYXIoY2hhciBjKSB7CisgICAgICAgIGNoYXIgcmVzdWx0ID0gRVNDQVBFX0NIQVI7CisgICAgICAgIEVTQ0FQRV9DSEFSID0gYzsKKyAgICAgICAgdGhlU3RhdGVzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVzY2FwZVRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gRVNDQVBFX0NIQVIgPT0gKGNoYXIpYzsKKyAgICB9CisgICAgCisgICAgICAgIC8qKiBDb252ZXJ0IHRoZSBhY2NlcHRlZCB0ZXh0IGludG8gdGhlIGFwcHJvcHJpYXRlIHVuaWNvZGUgY2hhcmFjdGVyICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU3VjY2VzcyhMZXggcGFyc2VyLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzd2l0Y2ggKHBhcnNlci5nZXRTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgREVDSU1BTDoKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoKGNoYXIpcGFyc2VyLmRhdGFBc051bWJlcigxMCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT0NUQUw6CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKChjaGFyKXBhcnNlci5kYXRhQXNOdW1iZXIoOCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSEVYOgorICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgoY2hhcilwYXJzZXIuZGF0YUFzTnVtYmVyKDE2KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFU0NBUEU6CisgICAgICAgICAgICBwYXJzZXIuYXBwZW5kRGF0YVRvKG91dHB1dCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFT0w6CisgICAgICAgICAgICAvL3NpbGVudGx5IGVhdCB0aGUgRU9MIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy9zaG91bGQgbmV2ZXIgZ2V0IGhlcmUKKyAgICAgICAgICAgIHRocm93IG5ldyBMZXguUGFyc2VFeGNlcHRpb24oIkludGVybmFsIGVycm9yIHBhcnNpbmcgZXNjYXBlIHNlcXVlbmNlIik7CisvLyAgICAgICAgICBwYXJzZXIuYXBwZW5kRGF0YVRvKG91dHB1dCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIC8qKiByZXR1cm4gdGhlIHN0YXRlcyBmb3IgdGhpcyB0cmFuc2FjdGlvbiAqLworICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKGdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIGlmICh0aGVTdGF0ZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vY2FjaGUgdGhlIHN0YXRlcyBzbyB0aGV5IGNhbiBiZSBzaGFyZWQuICBUaGV5IG11c3QKKyAgICAgICAgICAgICAgICAvL2JlIHJlYnVpbHQgd2hlbiB0aGUgZXNjYXBlIGNoYXJhY3RlciBpcyBjaGFuZ2VkLgorICAgICAgICAgICAgICAgIHRoZVN0YXRlcyA9IG5ldyBMZXguVHJhbnNpdGlvbltdW10geworICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKEVTQ0FQRV9DSEFSLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIGVzY2FwZSBjaGFyYWN0ZXIiKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihPQ1RBTCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCdkJywgTGV4LklHTk9SRV9DT05TVU1FLCAtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCd4JywgTGV4LklHTk9SRV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oT0NUQUxfQ0hBUlMsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC00KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oRVNDQVBFX0NIQVIsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIEVTQ0FQRSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCBFU0NBUEUpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAyOiBoZXgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihIRVgpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEhFWF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIEhFWCkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDM6IGRlY2ltYWwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihERUNJTUFMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihERUNJTUFMX0NIQVJTLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgREVDSU1BTCkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDQ6IG9jdGFsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oT0NUQUwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKE9DVEFMX0NIQVJTLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtNCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgT0NUQUwpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhlU3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBMZXguVHJhbnNpdGlvbltdW10gdGhlU3RhdGVzID0gbnVsbDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7eyAKKyAgICAgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiYmFkIHRlc3QgaW5wdXQiKQorICAgICAgICAgICAgfX07CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9ICJcXGQxMDBcXHhBZlxcXFxcXDc3N1xcXG5cXDEyM1xceDIwMjhcXHgyMDI5IjsKKyAgICAgICAgICAgIFN0cmluZ1JlYWRlciBzciA9IG5ldyBTdHJpbmdSZWFkZXIodGV4dCk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBwciA9IG5ldyBQdXNoYmFja1JlYWRlcihzcik7CisgICAgICAgICAgICBMZXggcGFyc2VyID0gbmV3IExleChzdGF0ZXMsIHByKTsKKyAgICAgICAgICAgIC8vcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgaW50IHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXRTdGF0ZSgpKTsKKyAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UyTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTJMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMjZhNDM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UyTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIElDVTJMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBJQ1UyTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIHB1YmxpYyBJQ1UyTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbigiIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludCgiIHsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmICgiY29sbGF0aW9ucyIuZXF1YWxzKHRhZykpIHsKKyAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywoT2JqZWN0W11bXSlvKTsKKyAgICAgICAgfSBlbHNlIGlmICghKG8gaW5zdGFuY2VvZiBDb2xsYXRpb25JdGVtW10pKSB7CisgICAgICAgICAgICBzdXBlci53cml0ZSh0YWcsIG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSlvOworICAgICAgICAgICAgaWYoaXRlbXNbMF0hPW51bGwpeworICAgICAgICAgICAgICAgIHByaW50KCJTZXF1ZW5jZSIpOworICAgICAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRSdWxlU3RyaW5nKGl0ZW1zW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLmNvbW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYlRvKDMwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiLy8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGl0ZW1zW2ldLmNvbW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBPYmplY3RbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKXZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKG51bGwsIHZhbHVlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIGlzRXNjYXBlQ2hhcihmaW5hbCBjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICJcXHUiOworICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTNMb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVM0xvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMmZjOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTNMb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDIxNCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGlzIGdlbmVyYXRlZCBjb21tZW50IGVkaXQgdGhlIHRlbXBsYXRlIHZhcmlhYmxlICJ0eXBlY29tbWVudCI6CisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5UZW1wbGF0ZXMuCisgKiBUbyBlbmFibGUgYW5kIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHR5cGUgY29tbWVudHMgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIElDVTNMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBJQ1UzTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgIH0KKyAgICBwcml2YXRlIExpc3RSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgIHByb3RlY3RlZCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50bG4oIiB7Iik7CisgICAgICAgIGluZGVudCgpOworICAgIH0KKyAgICBwdWJsaWMgSUNVM0xvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIHB1YmxpYyBJQ1UzTG9jYWxlV3JpdGVyKExpc3RSZXNvdXJjZUJ1bmRsZSBidW5kbGUsUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgICAgICB0aGlzLmJ1bmRsZSA9IGJ1bmRsZTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGUoTG9jYWxlIGxvY2FsZSl7CisgICAgICAgIG9wZW4obG9jYWxlKTsKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGJ1bmRsZS5nZXRLZXlzKCk7CisgICAgICAgIHdoaWxlKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGtleXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBvID0gYnVuZGxlLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgd3JpdGUoa2V5LCBvKTsKKyAgICAgICAgfQorICAgICAgICBjbG9zZSgpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcga2V5LCBPYmplY3Qgbyl7CisgICAgICAgIGlmKGtleSE9bnVsbCkgcHJpbnQoa2V5KTsKKyAgICAgICAgaWYobyBpbnN0YW5jZW9mIFN0cmluZyl7CisgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKSBvKTsKKyAgICAgICAgfWVsc2UgaWYoIG8gaW5zdGFuY2VvZiBJbnRlZ2VyW10peworICAgICAgICAgICAgd3JpdGUoKEludGVnZXJbXSkgbyk7CisgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBieXRlW10peworICAgICAgICAgICAgd3JpdGUoKGJ5dGVbXSkgbyk7CisgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBJbnRlZ2VyKXsKKyAgICAgICAgICAgIHdyaXRlKChJbnRlZ2VyKSBvKTsKKyAgICAgICAgfWVsc2UgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgd3JpdGUoKE9iamVjdFtdW10pIG8pOworICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgd3JpdGUoKE9iamVjdFtdKSBvKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgc3RyKXsKKyAgICAgICAgcHJpbnQoInsiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcoc3RyKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShJbnRlZ2VyW10gbyl7CisgICAgICAgIHByaW50bG4oIjppbnR2ZWN0b3IgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgIGlmKG8hPW51bGwpeworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IG8ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIHByaW50KG9baV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsgICAKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgdG9IZXgoYnl0ZSBiKXsKKyAgICAgICAgaW50IGkgPShpbnQpKChjaGFyKSAoYiAmIDB4RkYpKTsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpOyAgICAKKyAgICAgICAgaWYodGVtcC5sZW5ndGgoKTwyKXsKKyAgICAgICAgICAgIHJldHVybiAiMCIrdGVtcDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICByZXR1cm4gdGVtcDsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoYnl0ZVtdIG8peworICAgICAgICBwcmludCgiOmJpbnsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICBpZihvIT1udWxsKXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPCBvLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBwcmludCh0b0hleChvW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCIgfSIpOyAKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoSW50ZWdlciBvKXsKKyAgICAgICAgcHJpbnQoIjppbnQgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgIGlmKG8hPW51bGwpeworICAgICAgICAgICAgcHJpbnQoby50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKE9iamVjdFtdIG8peworICAgICAgICBTdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgcHJpbnRsbigiOmFycmF5IHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxvLmxlbmd0aDtpKyspeworICAgICAgICAgICAgaWYob1tpXSBpbnN0YW5jZW9mIFN0cmluZyl7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoKFN0cmluZylvW2ldKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHdyaXRlKGtleSxvW2ldKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKE9iamVjdFtdW10gbyl7CisgICAgICAgIC8vU3RyaW5nIGtleSA9IG51bGw7CisgICAgICAgIHByaW50bG4oIjp0YWJsZSB7Iik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgby5sZW5ndGg7aSsrKXsKKworICAgICAgICAgICAgaWYob1tpXVsxXSBpbnN0YW5jZW9mIFN0cmluZyl7CisgICAgICAgICAgICAgICAgcHJpbnQoKFN0cmluZykgb1tpXVswXSk7CisgICAgICAgICAgICAgICAgcHJpbnQoInsiKTsKKyAgICAgICAgICAgICAgICBwcmludFN0cmluZygoU3RyaW5nKSBvW2ldWzFdKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKSBvW2ldWzBdLCBvW2ldWzFdKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9ICAgCisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8vIE9ubHkgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBzdXBlciBjbGFzcyAKKyAgICAvLy8gbm90IHJlcXVpcmVkIG90aGVyd2lzZQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgCisgICAgLy8vLy8vLyBCRUdJTiAvLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnQoIiB7ICIpOworICAgICAgICBwcmludFN0cmluZyh2YWx1ZSk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIAorCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUobnVsbCwgdmFsdWVbaV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vIEVORCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgcHJvdGVjdGVkIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgIC8vIHN1cGVyLmNsb3NlRmlsZUhhbmRsZSgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NWMwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBJQ1VMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBJQ1VMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgfQorICAgIHB1YmxpYyBJQ1VMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcHJpbnQobG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBwcmludGxuKCIgeyIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgT2JqZWN0IG8pIHsKKyAgICAgICAgaWYgKCJjb2xsYXRpb25zIi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywoT2JqZWN0W11bXSlvKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgd3JpdGUodGFnLChTdHJpbmcpbyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoIShvIGluc3RhbmNlb2YgQ29sbGF0aW9uSXRlbVtdKSkgeworICAgICAgICAgICAgc3VwZXIud3JpdGUodGFnLCBvKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pbzsKKyAgICAgICAgICAgIGlmKGl0ZW1zWzBdIT1udWxsKXsKKyAgICAgICAgICAgIHByaW50KCJTZXF1ZW5jZSIpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyhpdGVtc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLmNvbW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFiVG8oMzApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIi8vIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGl0ZW1zW2ldLmNvbW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludCgiIHsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVJbnRWZWN0b3IoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiOmludHZlY3RvciB7ICIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigiOmludHZlY3RvcnsiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwcmludFVucXVvdGVkU3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBpZih0YWcgIT1udWxsICYmIHRhZy5lcXVhbHMoIkRhdGVUaW1lRWxlbWVudHMiKSl7CisgICAgICAgICAgICB3cml0ZUludFZlY3Rvcih0YWcsdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKG51bGwsIHZhbHVlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIE9iamVjdFtdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpdmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgLy8gc3VwZXIuY2xvc2VGaWxlSGFuZGxlKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhMUxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhMUxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmNzJlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmExTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIEphdmExTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSmF2YTFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIAorICAgIHB1YmxpYyBKYXZhMUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlKExvY2FsZSBsb2NhbGUsIEhhc2h0YWJsZSBsb2NhbGVEYXRhKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBIYXNodGFibGUgdGVtcCA9IG5ldyBOZXV0cmFsVG9KMUNvbnZlcnRlcihsb2NhbGUpLmNvbnZlcnQobG9jYWxlRGF0YSk7CisgICAgICAgICAgICBzdXBlci53cml0ZShsb2NhbGUsIHRlbXApOworICAgICAgICB9IGNhdGNoIChMb2NhbGVDb252ZXJ0ZXIuQ29udmVyc2lvbkVycm9yIGUpIHsKKyAgICAgICAgICAgIGVyci5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KEhFQURFUjEpOworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50KEhFQURFUjIpOworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50bG4oSEVBREVSMyk7CisgICAgICAgIGluZGVudCgzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludCgiLCAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oIiIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICAgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZVtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV1bal0pOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoMyk7CisgICAgICAgIHByaW50KEZPT1RFUik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VwZXIuYXBwZW5kRXNjYXBlZENoYXIoYywgYnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIrIjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUjEgPSAKKyAgICAgICAgICAgICJwYWNrYWdlIGphdmEudGV4dC5yZXNvdXJjZXM7XG4iKworICAgICAgICAgICAgInB1YmxpYyBjbGFzcyBMb2NhbGVFbGVtZW50c18iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIyID0gCisgICAgICAgICAgICAiIGV4dGVuZHMgTG9jYWxlRGF0YSB7XG4iKworICAgICAgICAgICAgIiAgICBwdWJsaWMgTG9jYWxlRWxlbWVudHNfIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSMyA9IAorICAgICAgICAiKCkge1xuIisKKyAgICAgICAgIiAgICAgICAgc3VwZXIuaW5pdCh0YWJsZSk7XG4iKworICAgICAgICAiICAgIH1cbiIrCisgICAgICAgICIgICAgc3RhdGljIFN0cmluZyB0YWJsZSBbXT0iOworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9PVEVSID0gCisgICAgICAgICIgICAgfVxuIisKKyAgICAgICAgIn0iOworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmFMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMDJjODEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIEphdmFMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBKYXZhTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgIH0KKyAgICBwdWJsaWMgSmF2YUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBwcmludGxuKEhFQURFUik7CisgICAgICAgIGluZGVudCgzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgT2JqZWN0IG8pIHsKKyAgICAgICAgaWYgKCJjb2xsYXRpb25zIi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywoT2JqZWN0W11bXSlvKTsKKyAgICAgICAgfSBlbHNlIGlmICghKG8gaW5zdGFuY2VvZiBDb2xsYXRpb25JdGVtW10pKSB7CisgICAgICAgICAgICBzdXBlci53cml0ZSh0YWcsIG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSlvOworICAgICAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgICAgICBwcmludFN0cmluZygiY29sbGF0aW9ucyIpOworICAgICAgICAgICAgcHJpbnRsbigiLCAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihpdGVtc1tpXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKGl0ZW1zW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0uY29tbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiKyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGFiVG8oMzApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIi8vIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGl0ZW1zW2ldLmNvbW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiKyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnRsbigiXCJcIiIpOworICAgICAgICAgICAgcHJpbnRsbigiIH0sIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50KCIsICIpOworICAgICAgICBwcmludFN0cmluZyh2YWx1ZSk7CisgICAgICAgIHByaW50bG4oIiB9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigiIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgICAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHZhbHVlW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXVtqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCJ9LCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBPYmplY3RbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdW10geyIpOworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKXZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KDMpOworICAgICAgICBwcmludChGT09URVIpOworICAgICAgICBwcmludGxuKCIiKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyIGMsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHsKKyAgICAgICAgaWYgKGMgPCAnXHUwMDIwJyB8fCBjID09ICciJyB8fCBjID09ICdcXCcpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDA3MDApID4+IDZdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDcwKSA+PiAzXSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwMDcpXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdXBlci5hcHBlbmRFc2NhcGVkQ2hhcihjLCBidWZmZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIisiOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSID0gCisgICAgICAgICJwYWNrYWdlIGphdmEudGV4dC5yZXNvdXJjZXM7XG4iKworICAgICAgICAiaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7XG4iKworICAgICAgICAicHVibGljIGNsYXNzIFRlc3RMb2NhbGVFbGVtZW50cyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7XG4iKworICAgICAgICAiICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkge1xuIisKKyAgICAgICAgIiAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsiOworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9PVEVSID0gCisgICAgICAgICIgICAgICAgIH07XG4iKworICAgICAgICAiICAgIH1cbiIrCisgICAgICAgICJ9IjsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGV4LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xleC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmN2VjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xleC5qYXZhCkBAIC0wLDAgKzEsNDEzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSBMZXggaXMgYSBzdGF0ZSBtYWNoaW5lLiAgVHJhbnNpdGlvbnMgY2FuIGJlIGFjdGl2YXRlZAorICogYXJiaXRyYXJpbHkgYW5kIGNhbiBjb25zdW1lIGFyYml0cmFyeSBhbW91bnRzIG9mIHRleHQuCisgKiBBIHRyYW5zaXRpb24gc2ltcGx5IHNheXMgaXQgY2FuIGNvbnN1bWUgdGhlIG5leHQgY2hhcmFjdGVyCisgKiBhbmQgcmV0dXJucyB0aGUgc3RhdGUgdGhhdCB0aGUgbWFjaGluZSBzaG91bGQgdHJhbnNpdGlvbiBpbnRvLgorICogU3RhdGVzIHRoYXQgYXJlID4gMCBhcmUgZmluYWwgc3RhdGVzIGFuZCBjYXVzZSB0aGUgbmV4dFRva2VuCisgKiByb3V0aW5lIHRvIHJldHVybiBhIHZhbHVlLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTGV4IHsKKyAgICBwcml2YXRlIFRyYW5zaXRpb25bXVtdIHN0YXRlczsgIC8vZmluYWwKKyAgICBwcml2YXRlIFB1c2hiYWNrUmVhZGVyIGlucHV0OyAgIC8vZmluYWwKKyAgICBwcml2YXRlIGludCBzdGF0ZTsKKyAgICBwcml2YXRlIFN0cmluZyBkYXRhOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nQnVmZmVyIGRhdGFCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJpdmF0ZSBib29sZWFuIGRlYnVnTWVzc2FnZXNPbjsKKyAgICBwcml2YXRlIFN0cmluZyBkZWJ1Z1RhZzsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkRfT0ZfRklMRSA9IEludGVnZXIuTUFYX1ZBTFVFOworCisgICAgICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgbWFjaGluZS4gIE5PVEU6IHNldElucHV0IG11c3QgYmUKKyAgICAgICAgICogY2FsbGVkIGJlZm9yZSBuZXh0VG9rZW4gaXMgY2FsbGVkICovCisgICAgcHVibGljIExleChmaW5hbCBUcmFuc2l0aW9uW11bXSBzdGF0ZXMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZXMgPSBzdGF0ZXM7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorfQorCisgICAgICAgIC8qKiBDb25zdHJ1Y3QgYSBuZXcgbWFjaGluZS4gKi8KKyAgICBwdWJsaWMgTGV4KGZpbmFsIFRyYW5zaXRpb25bXVtdIHN0YXRlc0luLCBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dEluKSB7CisgICAgICAgIHN0YXRlcyA9IHN0YXRlc0luOworICAgICAgICBpbnB1dCA9IGlucHV0SW47CisgICAgfQorCisgICAgICAgIC8qKiBSZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0YXRlKCkgeworICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgfQorCisgICAgICAgIC8qKiBSZXR1cm4gdGhlIGRhdGEgcmVzdWx0aW5nIGZyb20gdGhlIGxhc3QgY2FsbCB0byBuZXh0VG9rZW4gKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERhdGEoKSB7CisgICAgICAgIGlmIChkYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgIGRhdGEgPSBkYXRhQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorICAgIAorICAgICAgICAvKiogUmV0dXJuIHRoZSBpbnB1dCByZWFkZXIgdXNlZCBieSB0aGlzIG1hY2hpbmUgKi8KKyAgICBwdWJsaWMgUHVzaGJhY2tSZWFkZXIgZ2V0SW5wdXQoKSB7CisgICAgICAgIHJldHVybiBpbnB1dDsKKyAgICB9CisKKyAgICAgICAgLyoqIHNldCB0aGUgaW5wdXQgcmVhZGVyIHVzZWQgYnkgdGhpcyBtYWNoaW5lICovCisgICAgcHVibGljIHZvaWQgc2V0SW5wdXQoUHVzaGJhY2tSZWFkZXIgaW5wdXQpIHsKKyAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0OworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRoZSBzdGF0ZXMgdXNlZCBieSB0aGlzIG1hY2hpbmUgKi8KKyAgICBwdWJsaWMgVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFN0YXRlcyhUcmFuc2l0aW9uW11bXSBzdGF0ZXMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZXMgPSBzdGF0ZXM7CisgICAgfQorCisgICAgICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBlcXVhbHMgdGhlCisgICAgICAgICAqIHN0cmluZyByZXR1cm5lZCBieSBnZXREYXRhKCkuICBUaGlzIHJvdXRpbmUKKyAgICAgICAgICogbWF5IGJlIGZhc3RlciB0aGFuIGNhbGxpbmcgZ2V0RGF0YSBiZWNhdXNlCisgICAgICAgICAqIGl0IGRvZXMgbm90IGNyZWF0ZSBhIHN0cmluZyBvbiB0aGUgaGVhcC4KKyAgICAgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZGF0YUVxdWFscyhmaW5hbCBTdHJpbmcgb3RoZXIpIHsKKyAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworICAgICAgICAgICAgLy9pZiBkYXRhQnVmZmVyIGhhcyBhbHJlYWR5IGJlZW4gY29udmVydGVkIHRvCisgICAgICAgICAgICAvL2Egc3RyaW5nLCBqdXN0IGNvbXBhcmUgdGhlIHN0cmluZ3MuCisgICAgICAgICAgICByZXR1cm4gZGF0YS5lcXVhbHMob3RoZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKG90aGVyLmxlbmd0aCgpICE9IGRhdGFCdWZmZXIubGVuZ3RoKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGZpbmFsIGludCBsZW4gPSBkYXRhQnVmZmVyLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChvdGhlci5jaGFyQXQoaSkgIT0gZGF0YUJ1ZmZlci5jaGFyQXQoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIHRoZSBkYXRhIHJldHVybmVkIGZyb20gZ2V0RGF0YSgpIHRvIHRoZQorICAgICAgICAgKiBzcGVjaWZpZWQgU3RyaW5nQnVmZmVyLiAgVGhpcyByb3V0aW5lIGF2b2lkcworICAgICAgICAgKiB0aGUgY3JlYXRpb24gb2YgYSBTdHJpbmcgb24gdGhlIGhlYXAuCisgICAgICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZERhdGFUbyhTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGF0YUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZGF0YSByZXR1cm5lZCBieSBnZXREYXRhKCkKKyAgICAgICAgICogc3RhcnRzIHdpdGggdGhlIHNwZWNpZmllZCBzdHJpbmcuICBUaGlzIHJvdXRpbmUgYXZvaWRzCisgICAgICAgICAqIHRoZSBjcmVhdGlvbiBvZiBhIFN0cmluZyBvbiB0aGUgaGVhcC4KKyAgICAgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZGF0YVN0YXJ0c1dpdGgoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKGRhdGFCdWZmZXIubGVuZ3RoKCkgPCBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgc0xlbmd0aCA9IHMubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNMZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChkYXRhQnVmZmVyLmNoYXJBdChpKSAhPSBzLmNoYXJBdChpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIENvbnZlcnQgdGhlIGNvbnRlbnRzIG9mIHRoZSBkYXRhIGJ1ZmZlciB0byBhbiBpbnRlZ2VyCisgICAgICAgICAqIG9mIHRoZSBzcGVjaWZpZWQgcmFkaXgKKyAgICAgICAgICovCisgICAgcHVibGljIGludCBkYXRhQXNOdW1iZXIoaW50IHJhZGl4KSB7CisgICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgIGZpbmFsIGludCBsZW4gPSBkYXRhQnVmZmVyLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlKnJhZGl4ICsgQ2hhcmFjdGVyLmRpZ2l0KGRhdGFCdWZmZXIuY2hhckF0KGkpLCByYWRpeCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uICBUaGUKKyAgICAgICAgICogZGF0YUJ1ZmZlciBpcyBjbGVhcmVkIGFuZCB0aGUgc3RhdGUgaXMgc2V0IHRvIHplcm8gYmVmb3JlCisgICAgICAgICAqIHBhcnNpbmcgYmVnaW5zLiAgUGFyc2luZyBjb250aW51ZXMgdW50aWwgYSBzdGF0ZQorICAgICAgICAgKiBncmVhdGVyIG9mIGVxdWFsIHRvIDAgcyByZWFjaGVkIG9yIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICAgICAgICAqIEFmdGVyIGVhY2ggbm9uLXRlcm1pbmFsIHRyYW5zaXRpb24sIHRoZSBzdGF0ZSBtYWNoaW5lIAorICAgICAgICAgKiB3YWxrcyB0aHJvdWdoIGFsbCB0aGUgdHJhbnNpdGlvbnMsIGluIG9yZGVyLCBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICogc3RhdGUgdW50aWwgaXQgZmluZHMgb25lIHRoYXQgd2lsbCBhY2NlcHQgdGhlIGN1cnJlbnQKKyAgICAgICAgICogaW5wdXQgY2hhcmFjdGVyIGFuZCB0aGVuIGNhbGxzIGRvQWN0aW9uIG9uIHRoYXQgdHJhbnNpdGlvbi4KKyAgICAgICAgICovCisgICAgcHVibGljIGludCBuZXh0VG9rZW4oKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzdGF0ZSA9IDA7CisgICAgICAgIGRhdGFCdWZmZXIuc2V0TGVuZ3RoKDApOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGludCBjID0gaW5wdXQucmVhZCgpOworICAgICAgICAgICAgZmluYWwgVHJhbnNpdGlvbltdIHRyYW5zaXRpb24gPSBzdGF0ZXNbLXN0YXRlXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHJhbnNpdGlvbi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uW2ldLmFjY2VwdHMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInN0YXRlWyIrIC1zdGF0ZSsiXS50cmFuc2l0aW9uWyIraSsiXSBvbiAiK2MrIiAgJyIrKGNoYXIpYysiJyB0byBzdGF0ZVsiKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSB0cmFuc2l0aW9uW2ldLmRvQWN0aW9uKGMsIGlucHV0LCBkYXRhQnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgLy9wcmludGxuKCIiICsgLXN0YXRlICsgIl0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChzdGF0ZSA8PSAwKTsKKyAgICAgICAgZGF0YSA9IG51bGw7ICAgIC8vZHVtcCB0aGUgY2FjaGVkIGRhdGEgc3RyaW5nCisgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICB9CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBHZXQgdGhlIG5leHQgdG9rZW4gYW5kIHRocm93IGFuIGFjY2VwdGlvbiBpZgorICAgICAgICAgKiB0aGUgc3RhdGUgbWFjaGluZSBpcyBub3QgaW4gdGhlIHNwZWNpZmllZCBzdGF0ZS4KKyAgICAgICAgICovCisgICAgcHVibGljIHZvaWQgYWNjZXB0KGZpbmFsIGludCBuZWVkZWRTdGF0ZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKG5lZWRlZFN0YXRlICE9IG5leHRUb2tlbigpKSB7CisgICAgICAgICAgICBFeGNlcHRpb24gZSA9IG5ldyBFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIlVuZXhwZWN0ZWQgdG9rZW4gLSAiK2dldERhdGEoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgdGhlIG5leHQgdG9rZW4gYW5kIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgICAgICogc3RhdGUgbWFjaGluZSBpcyBub3QgaW4gdGhlIHNwZWNpZmllZCBzdGF0ZSBhbmQgdGhlCisgICAgICAgICAqIHZhbHVlIHJldHVybmVkIGJ5IGdldERhdGEoKSBkb2VzIG5vdCBtYXRjaCB0aGUgCisgICAgICAgICAqIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICovCisgICAgcHVibGljIHZvaWQgYWNjZXB0KGZpbmFsIGludCBuZWVkZWRTdGF0ZSwgZmluYWwgU3RyaW5nIG5lZWRlZFZhbHVlKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBhY2NlcHQobmVlZGVkU3RhdGUpOworICAgICAgICBpZiAoIWRhdGFFcXVhbHMobmVlZGVkVmFsdWUpKSB7CisgICAgICAgICAgICBFeGNlcHRpb24gZSA9IG5ldyBFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIlVuZXhwZWN0ZWQgdG9rZW4gLSAiK2dldERhdGEoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZWJ1Zyhib29sZWFuIGRlYnVnTWVzc2FnZXNPbikgeworICAgICAgICB0aGlzLmRlYnVnTWVzc2FnZXNPbiA9IGRlYnVnTWVzc2FnZXNPbjsKKyAgICAgICAgZGVidWdUYWcgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkZWJ1Zyhib29sZWFuIGRlYnVnTWVzc2FnZXNPbiwgU3RyaW5nIHRhZykgeworICAgICAgICB0aGlzLmRlYnVnTWVzc2FnZXNPbiA9IGRlYnVnTWVzc2FnZXNPbjsKKyAgICAgICAgdGhpcy5kZWJ1Z1RhZyA9IHRhZzsKKyAgICB9CisgICAgCisvKiAgcHJpdmF0ZSB2b2lkIHByaW50KFN0cmluZyBzKSB7CisgICAgICAgIGlmIChkZWJ1Z01lc3NhZ2VzT24pIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQocyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRsbihTdHJpbmcgcykgeworICAgICAgICBpZiAoZGVidWdNZXNzYWdlc09uKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocysiICA8IitkZWJ1Z1RhZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgaW50ZXJmYWNlIGZvciBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIFRyYW5zaXRpb24geworICAgICAgICAvKiogCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSB0cmFuc2l0aW9uIGNhbiBhY2NlcHQgdGhlIGN1cnJlbnQgaW5wdXQKKyAgICAgICAgICogY2hhcmFjdGVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYyk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBQZXJmb3JtIHRoZSB0cmFuc2l0aW9uLgorICAgICAgICAgKiBAcGFyYW0gYyB0aGUgY3VycmVudCBpbnB1dCBjaGFyYWN0ZXIKKyAgICAgICAgICogQHBhcmFtIGlucHV0IHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbSwgbWludXMgdGhlIGN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyCisgICAgICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGN1cnJlbnQgb3V0cHV0IGJ1ZmZlcgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBzdGF0ZSB0aGUgbWFjaGluZSBzaG91bGQgYmUgaW4gbmV4dAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBkb0FjdGlvbihpbnQgYywgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbjsKKyAgICB9CisKKyAgICAgICAgLyogY29uc3RhbnRzIGZvciBCYXNlVHJhbnNpdGlvbnMgKi8KKyAgICAgICAgLyoqIERvbid0IGNvcHkgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHRvIHRoZSBvdXRwdXQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgSUdOT1JFID0gMHgwMTsKKyAgICAgICAgLyoqIEFwcGVuZCB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBBQ0NVTVVMQVRFID0gMHgwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJVRkZFUl9NQVNLID0gMHgwMTsKKworICAgICAgICAvKiogUmVtb3ZlIHRoZSBjdXJyZW50IGNoYXJhY3RlciBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ09OU1VNRSA9IDB4MDA7CisgICAgICAgIC8qKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHRvIHRoZSBpbnB1dCBzdHJlYW0gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgUFVUQkFDSyA9IDB4MTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBJTlBVVF9NQVNLID0gMHgxMDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSAKKyAgICAgICAgICAgIEFDQ1VNVUxBVEVfQ09OU1VNRSA9IChieXRlKShBQ0NVTVVMQVRFIHwgQ09OU1VNRSksCisgICAgICAgICAgICBJR05PUkVfQ09OU1VNRSA9IChieXRlKShJR05PUkUgfCBDT05TVU1FKSwKKyAgICAgICAgICAgIEFDQ1VNVUxBVEVfUFVUQkFDSyA9IChieXRlKShBQ0NVTVVMQVRFIHwgUFVUQkFDSyksCisgICAgICAgICAgICBJR05PUkVfUFVUQkFDSyA9IChieXRlKShJR05PUkUgfCBQVVRCQUNLKTsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZm9yIHNpbXBsZSB0cmFuc2l0aW9uIGNsYXNzZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIEJhc2VUcmFuc2l0aW9uIGltcGxlbWVudHMgVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBhZGRUb0J1ZmZlcjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIHVucmVhZElucHV0OworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBuZXh0OworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0IGEgbmV3IHRyYW5zaXRpb24uICBPbiBleGVjdXRpb24sIHRoZSAKKyAgICAgICAgICogc3BlY2lmaWVkIGFjdGlvbiBpcyBwZXJmb3JtZWQgYW5kIHRoZQorICAgICAgICAgKiBzcGVjaWZpZWQgc3RhdGUgaXMgcmV0dXJuZWQuCisgICAgICAgICAqIEBwYXJhbSBhY3Rpb24gdGhlIGFjdGlvbnMgdG8gcGVyZm9ybSB0byB0aGUgCisgICAgICAgICAqIGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycy4KKyAgICAgICAgICogQHBhcmFtIG5leHQgdGhlIG5leHQgc3RhdGUgdGhlIG1hY2hpbmUgc2hvdWxkCisgICAgICAgICAqIG1vdmUgaW50bworICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJhc2VUcmFuc2l0aW9uKGJ5dGUgYWN0aW9uLCBpbnQgbmV4dCkgeworICAgICAgICAgICAgdGhpcy5hZGRUb0J1ZmZlciA9IChhY3Rpb24gJiBCVUZGRVJfTUFTSykgPT0gQUNDVU1VTEFURTsKKyAgICAgICAgICAgIHRoaXMudW5yZWFkSW5wdXQgPSAoYWN0aW9uICYgSU5QVVRfTUFTSykgPT0gUFVUQkFDSzsKKyAgICAgICAgICAgIHRoaXMubmV4dCA9IG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gYWNjZXB0cyhpbnQgYyk7CisgICAgICAgIHB1YmxpYyBpbnQgZG9BY3Rpb24oZmluYWwgaW50IGMsIAorICAgICAgICAgICAgICAgIGZpbmFsIFB1c2hiYWNrUmVhZGVyIGlucHV0LCAKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGFkZFRvQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh1bnJlYWRJbnB1dCkgeworICAgICAgICAgICAgICAgIGlucHV0LnVucmVhZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXh0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGVuZC1vZi1maWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRU9GVHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHVibGljIEVPRlRyYW5zaXRpb24oKSB7CisgICAgICAgICAgICB0aGlzKElHTk9SRV9DT05TVU1FLCBFTkRfT0ZfRklMRSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEVPRlRyYW5zaXRpb24oaW50IG5leHQpIHsKKyAgICAgICAgICAgIHRoaXMoSUdOT1JFX0NPTlNVTUUsIG5leHQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBFT0ZUcmFuc2l0aW9uKGJ5dGUgYWN0aW9uLCBpbnQgbmV4dCkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0KTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gYyA9PSAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBhbnl0aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIERlZmF1bHRUcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwdWJsaWMgRGVmYXVsdFRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIGludCBuZXh0U3RhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgbmV4dFN0YXRlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBhbnkgY2hhcmFjdGVycyBpbiB0aGUgc3BlY2lmaWVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ1RyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGNoYXJzOworICAgICAgICBwdWJsaWMgU3RyaW5nVHJhbnNpdGlvbihTdHJpbmcgY2hhcnMsIGJ5dGUgYWN0aW9uLCBpbnQgbmV4dFN0YXRlKSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIG5leHRTdGF0ZSk7CisgICAgICAgICAgICB0aGlzLmNoYXJzID0gY2hhcnM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLmluZGV4T2YoKGNoYXIpYykgIT0gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgb25seSB0aGUgc3BlY2lmaWVkIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENoYXJUcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwcml2YXRlIGNoYXIgYzsKKyAgICAgICAgcHVibGljIENoYXJUcmFuc2l0aW9uKGNoYXIgYywgYnl0ZSBhY3Rpb24sIGludCBuZXh0U3RhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgbmV4dFN0YXRlKTsKKyAgICAgICAgICAgIHRoaXMuYyA9IGM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuYyA9PSAoY2hhciljOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueXRoaW5nLCBidXQgdGhyb3cgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gYWZ0ZXIKKyAgICAgKiBwZXJmb3JtaW5nIHRoZSBzcGVjaWZpZWQgYWN0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFeGNlcHRpb25UcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwcml2YXRlIElPRXhjZXB0aW9uIGU7CisgICAgICAgIHB1YmxpYyBFeGNlcHRpb25UcmFuc2l0aW9uKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHN1cGVyKElHTk9SRV9QVVRCQUNLLCBFTkRfT0ZfRklMRSk7IC8vc3RhdGUgaXMgaWdub3JlZAorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBFeGNlcHRpb25UcmFuc2l0aW9uKGJ5dGUgYWN0aW9uLCBJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIEVORF9PRl9GSUxFKTsgLy9zdGF0ZSBpcyBpZ25vcmVkCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGZpbmFsIGludCBkb0FjdGlvbihmaW5hbCBpbnQgYywgCisgICAgICAgICAgICAgICAgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBzdXBlci5kb0FjdGlvbihjLCBpbnB1dCwgYnVmZmVyKTsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBiYXNlIGNsYXNzIGZvciBwYXJzZSBleGNlcHRpb25zLiAgRXhjZXB0aW9ucworICAgICAgICAgKiByZXN1bHRpbmcgZnJvbSBwYXJzaW5nIGVycm9ycyBzaG91bGQgYmUgc3ViY2xhc3NlcyBvZiB0aGlzCisgICAgICAgICAqIGNsYXNzLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFBhcnNlRXhjZXB0aW9uIGV4dGVuZHMgSU9FeGNlcHRpb24geworICAgICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIHJlYXNvbjsKKyAgICAgICAgcHVibGljIFBhcnNlRXhjZXB0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5yZWFzb24gPSAidW5rb3duIjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUGFyc2VFeGNlcHRpb24oU3RyaW5nIHJlYXNvbikgeworICAgICAgICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiByZWFzb247CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgYW55dGhpbmcsIGV4ZWN1dGUgYXMgSUdOT1JFX1BVVEJBQ0ssIGFuZCB0aHJvdworICAgICAqIGEgUGFyc2VFeGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbiBpbXBsZW1lbnRzIFRyYW5zaXRpb24geworICAgICAgICBwcml2YXRlIFN0cmluZyByZWFzb247CisgICAgICAgIHB1YmxpYyBQYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oU3RyaW5nIHJlYXNvbikgeworICAgICAgICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGZpbmFsIGludCBkb0FjdGlvbihmaW5hbCBpbnQgYywgCisgICAgICAgICAgICAgICAgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBpbnB1dC51bnJlYWQoKGNoYXIpYyk7CisgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24ocmVhc29uKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xpbmVDaGFyTnVtYmVyUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xpbmVDaGFyTnVtYmVyUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE0NWNhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGluZUNoYXJOdW1iZXJSZWFkZXIuamF2YQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgTGluZUNoYXJOdW1iZXJSZWFkZXIgaXMgYSBCdWZmZXJlZFJlYWRlciB0aGF0CisgKiBrZWVwcyB0cmFjayBvZiB0aGUgbGluZSBudW1iZXIgYW5kIGNoYXJhY3RlciBvZmZzZXQKKyAqIG9uIHRoYXQgbGluZSBvZiB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0uCisgKi8KK3B1YmxpYyBjbGFzcyBMaW5lQ2hhck51bWJlclJlYWRlciBleHRlbmRzIEJ1ZmZlcmVkUmVhZGVyIHsKKyAgICBwcml2YXRlIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICBwcml2YXRlIGludCBjaGFyTnVtYmVyID0gMDsKKyAgICBwcml2YXRlIGludCBtYXJrZWRMaW5lTnVtYmVyOworICAgIHByaXZhdGUgaW50IG1hcmtlZENoYXJOdW1iZXI7CisgICAgcHJpdmF0ZSBib29sZWFuIHNraXBMRjsKKworICAgIHB1YmxpYyBMaW5lQ2hhck51bWJlclJlYWRlcihSZWFkZXIgaW4pIHsKKyAgICAgICAgc3VwZXIoaW4pOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorCisgICAgcHVibGljIExpbmVDaGFyTnVtYmVyUmVhZGVyKFJlYWRlciBpbiwgaW50IHN6KSB7CisgICAgICAgIHN1cGVyKGluLCBzeik7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRMaW5lTnVtYmVyKCkgeworICAgICAgICByZXR1cm4gbGluZU51bWJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldENoYXJOdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBjaGFyTnVtYmVyOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgaW50IGMgPSBzdXBlci5yZWFkKCk7CisgICAgICAgICAgICBjaGFyTnVtYmVyKys7CisgICAgICAgICAgICBpZiAoc2tpcExGKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgYyA9IHN1cGVyLnJlYWQoKTsKKyAgICAgICAgICAgICAgICBza2lwTEYgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnXHInOgorICAgICAgICAgICAgICAgIHNraXBMRiA9IHRydWU7CisgICAgICAgICAgICBjYXNlICdcbic6ICAgICAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlICdcdTIwMjgnOiAgICAgIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSAnXHUyMDI5JzogICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgICAgICAgICAgY2hhck51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuICdcbic7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZChjaGFyIGNidWZbXSwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBpbnQgbiA9IHN1cGVyLnJlYWQoY2J1Ziwgb2ZmLCBsZW4pOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gb2ZmOyBpIDwgb2ZmICsgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IGNidWZbaV07CisgICAgICAgICAgICAgICAgY2hhck51bWJlcisrOworICAgICAgICAgICAgICAgIGlmIChza2lwTEYpIHsKKyAgICAgICAgICAgICAgICAgICAgc2tpcExGID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdccic6CisgICAgICAgICAgICAgICAgICAgIHNraXBMRiA9IHRydWU7CisgICAgICAgICAgICAgICAgY2FzZSAnXG4nOiAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgY2FzZSAnXHUyMDI4JzogIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIGNhc2UgJ1x1MjAyOSc6ICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcisrOworICAgICAgICAgICAgICAgICAgICBjaGFyTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIFN0cmluZyBsID0gc3VwZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsICE9IG51bGwpCisgICAgICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgICAgICBjaGFyTnVtYmVyID0gMDsKKyAgICAgICAgICAgIHNraXBMRiA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4U2tpcEJ1ZmZlclNpemUgPSA4MTkyOworCisgICAgcHJpdmF0ZSBjaGFyIHNraXBCdWZmZXJbXSA9IG51bGw7CisKKyAgICBwdWJsaWMgbG9uZyBza2lwKGxvbmcgbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IG5uID0gKGludCkgTWF0aC5taW4obiwgbWF4U2tpcEJ1ZmZlclNpemUpOworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIGlmICgoc2tpcEJ1ZmZlciA9PSBudWxsKSB8fCAoc2tpcEJ1ZmZlci5sZW5ndGggPCBubikpCisgICAgICAgICAgICBza2lwQnVmZmVyID0gbmV3IGNoYXJbbm5dOworICAgICAgICAgICAgbG9uZyByID0gbjsKKyAgICAgICAgICAgIHdoaWxlIChyID4gMCkgeworICAgICAgICAgICAgaW50IG5jID0gcmVhZChza2lwQnVmZmVyLCAwLCBubik7CisgICAgICAgICAgICBpZiAobmMgPT0gLTEpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByIC09IG5jOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG4gLSByOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbWFyayhpbnQgcmVhZEFoZWFkTGltaXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgc3VwZXIubWFyayhyZWFkQWhlYWRMaW1pdCk7CisgICAgICAgICAgICBtYXJrZWRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICAgICAgICAgIG1hcmtlZENoYXJOdW1iZXIgPSBjaGFyTnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIHN1cGVyLnJlc2V0KCk7CisgICAgICAgICAgICBsaW5lTnVtYmVyID0gbWFya2VkTGluZU51bWJlcjsKKyAgICAgICAgICAgIGNoYXJOdW1iZXIgPSBtYXJrZWRDaGFyTnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZUNvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOGNjNWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVDb252ZXJ0ZXIuamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIExvY2FsZUNvbnZlcnRlciB7CisgICAgcHVibGljIEhhc2h0YWJsZSBjb252ZXJ0KEhhc2h0YWJsZSB0YWJsZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgIEhhc2h0YWJsZSByZXN1bHQgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGNvbnZlcnQocmVzdWx0LCB0YWJsZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGNvbnZlcnQoSGFzaHRhYmxlIHJlc3VsdCwgSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgIEVudW1lcmF0aW9uIGVudW1lciA9IHNvdXJjZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlbnVtZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW1lci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBzb3VyY2UuZ2V0KGtleSk7CisgICAgICAgICAgICByZXN1bHQucHV0KGtleSwgZGF0YSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb252ZXJzaW9uRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24geworICAgICAgICBwdWJsaWMgQ29udmVyc2lvbkVycm9yKCkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ29udmVyc2lvbkVycm9yKFN0cmluZyByZWFzb24pIHsKKyAgICAgICAgICAgIHN1cGVyKHJlYXNvbik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NjllNjVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDQ5OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKKy8qKgorICogQSBMb2NhbGVXcml0ZXIgdGFrZXMgbG9jYWxlIGRhdGEgaW4gc3RhbmRhcmQgZm9ybSBhbmQKKyAqIHdyaXRlcyBpdCB0byBzdGFuZGFyZCBvdXRwdXQgaW4gYSBmb3JtIHN1aXRhYmxlIGZvcgorICogbG9hZGluZyBwcm9ncmFtYXRpY2FsbHkuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBMb2NhbGVXcml0ZXIgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTkRFTlRfQ0hBUlMgPSAKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKworICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIrCisgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEVPTF9DSEFSU1tdID0geydccicsICdcbicsICdcdTIwMjgnLCAnXHUyMDI5J307CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFTlRfU0laRSA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9MSU5FX0xFTkdUSCA9IDgwOworICAgIHByaXZhdGUgaW50IGluZGVudExldmVsOworICAgIHByaXZhdGUgU3RyaW5nIGluZGVudFN0cmluZzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbmVlZHNJbmRlbnQ7CisgICAgcHJvdGVjdGVkIFN0cmluZ0J1ZmZlciBsaW5lQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIHByaXZhdGUgaW50IGxpbmVMZW5ndGg7CisgICAgcHJvdGVjdGVkIFByaW50U3RyZWFtIG91dDsKKyAgICBwcm90ZWN0ZWQgUHJpbnRTdHJlYW0gZXJyOworICAgIC8vZmluYWwgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUoICAiY252TG9jLnR4dCIpOworICAgIC8vRmlsZU91dHB1dFN0cmVhbSBvdXRGaWxlU3RyZWFtOworICAgIC8vQnVmZmVyZWRXcml0ZXIgb3V0QnVmV3JpdGU7CisgICAgLy9QcmludFdyaXRlciBteU91dDsKKyAgICAKKyAgICBwdWJsaWMgTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICB0aGlzLm91dCA9IG91dDsKKyAgICAgICAgdGhpcy5lcnIgPSBvdXQ7CisgICAgLyogICAgdHJ5eworICAgICAgICAgICAgb3V0RmlsZS5jYW5Xcml0ZSgpOworICAgICAgICAgICAgb3V0RmlsZVN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpOworICAgICAgICAgICAgb3V0QnVmV3JpdGUgPSBuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihvdXRGaWxlU3RyZWFtLCJVVEY4IikpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICovICAKKyAgICB9CisgICAgcHVibGljIExvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICB0aGlzLm91dCA9IG91dDsKKyAgICAgICAgdGhpcy5lcnIgPSBlcnI7CisgICAgICAgIC8qCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIG91dEZpbGUuY2FuV3JpdGUoKTsKKyAgICAgICAgICAgIG91dEZpbGVTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKTsKKyAgICAgICAgICAgIG91dEJ1ZldyaXRlID0gbmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3V0RmlsZVN0cmVhbSwiVVRGOCIpKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuY29kaW5nIHVuc3VwcG9ydGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgKi8gIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKExvY2FsZSBsb2NhbGUsIEhhc2h0YWJsZSBsb2NhbGVEYXRhKSB7CisgICAgICAgIG9wZW4obG9jYWxlKTsKKyAgICAgICAgICAgIC8vc29ydCB0aGUga2V5IHNvIHRoZSB0YWdzIGFyZSBpbiBvcmRlciBpbiB0aGUgcmVzb3VyY2UgZmlsZQorICAgICAgICBTb3J0ZWRWZWN0b3Igb3JkZXIgPSBuZXcgU29ydGVkVmVjdG9yKGxvY2FsZURhdGEua2V5cygpLCBuZXcgU29ydGVkVmVjdG9yLlN0cmluZ0NvbXBhcmF0b3IoKSk7CisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBvcmRlci5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGtleSA9IChTdHJpbmcpZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZmluYWwgT2JqZWN0IGRhdGEgPSBsb2NhbGVEYXRhLmdldChrZXkpOworICAgICAgICAgICAgaWYgKGlzRHVwbGljYXRlT2ZJbmhlcml0ZWRWYWx1ZShsb2NhbGUsIGtleSwgZGF0YSkpIHsKKyAgICAgICAgICAgICAgIHByaW50bG4oIi8vLyogRGlzY2FyZGluZyBkdXBsaWNhdGUgZGF0YSBmb3IgdGFnOiAiK2tleSsiICovIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHdyaXRlKGtleSwgZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBjbG9zZUZpbGVIYW5kbGUoKXsKKyAgICAgICAgIHRyeXsKKyAgICAgICAgICAgIG91dEJ1ZldyaXRlLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBleGNwKXsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJjb3VsZCBub3QgY2xvc2UgdGhlIG91dHB1dCBmaWxlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8gICAgCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgT2JqZWN0IG8pIHsKKyAgICAgICAgaWYgKG8gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgKFN0cmluZylvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgKFN0cmluZ1tdKSBvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgU3RyaW5nW11bXSkgeworICAgICAgICAgICAgd3JpdGUodGFnLCAoU3RyaW5nW11bXSlvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgT2JqZWN0W10pIHsKKyAgICAgICAgICAgIE9iamVjdFtdIGRhdGEgPSAoT2JqZWN0W10pbzsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nW2RhdGEubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBkYXRhW2ldLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3cml0ZSh0YWcsIHRlbXApOworICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKSB7CisgICAgICAgICAgICBPYmplY3RbXVtdIGRhdGEgPSAoT2JqZWN0W11bXSlvOworICAgICAgICAgICAgU3RyaW5nW11bXSB0ZW1wID0gbmV3IFN0cmluZ1tkYXRhLmxlbmd0aF1bXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBuZXcgU3RyaW5nW2RhdGFbaV0ubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlbXBbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFtpXVtqXSA9IGRhdGFbaV1bal0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3cml0ZSh0YWcsIHRlbXApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd3JpdGUodGFnLCBvLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZVswXS5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgICAgd3JpdGUyRCh0YWcsIHZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpOworCisgICAgcHJvdGVjdGVkIHZvaWQgdGFiVG8oaW50IHBvcykgeworICAgICAgICBpZiAocG9zID4gbGluZUxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGxpbmVMZW5ndGg7IGkgPCBwb3M7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50KCIgIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRvRmlsZShTdHJpbmcgc3RyKXsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgb3V0QnVmV3JpdGUud3JpdGUocHJlcGVuZEVzYyhzdHIpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIkNvdWxkIG5vdCB3cml0ZSB0byBmaWxlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludChTdHJpbmcgdmFsKSB7CisgICAgICAgIGlmIChuZWVkc0luZGVudCkgeworICAgICAgICAgICAgb3V0LnByaW50KGluZGVudFN0cmluZyk7CisgICAgICAgICAgICAvL3dyaXRlVG9GaWxlKGluZGVudFN0cmluZyk7CisgICAgICAgICAgICBsaW5lTGVuZ3RoICs9IGluZGVudFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgICAgIG5lZWRzSW5kZW50ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHR2YWwgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsKTsKKyAgICAgICAgaWYodHZhbC5sZW5ndGgoKSA8IHZhbC5sZW5ndGgoKSl7CisgICAgICAgICAgICB0dmFsPXByZXBlbmRFc2ModHZhbCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHR2YWwgIT0gbnVsbCkgeworICAgICAgICAgICAgb3V0LnByaW50KHByZXBlbmRFc2ModHZhbCkpOworICAgICAgICAgICAgLy93cml0ZVRvRmlsZSh0dmFsKTsKKyAgICAgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBFT0xfQ0hBUlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZW4gPSBNYXRoLm1heChsZW4sIHR2YWwubGFzdEluZGV4T2YoRU9MX0NIQVJTW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBsaW5lTGVuZ3RoICs9IHR2YWwubGVuZ3RoKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxpbmVMZW5ndGggPSB0dmFsLmxlbmd0aCgpIC0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgcHJlcGVuZEVzYyhTdHJpbmcgc3RyKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG15U3RyID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTxzdHIubGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzdHIuY2hhckF0KGkpOworICAgICAgICAgICAgaWYoY2ggPiAweDAwN2YgfHwgY2ggPCAweDAwMjApeworICAgICAgICAgICAgICAgIGlmKGNoIT0weDAwMDkpeworICAgICAgICAgICAgICAgICAgICBteVN0ci5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgICAgICBteVN0ci5hcHBlbmQodG9IZXhTdHJpbmcoY2gsMTYsNCkpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBteVN0ci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2V7CisgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbXlTdHIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyB0b0hleFN0cmluZyhjaGFyIGNoLCBpbnQgcmFkaXgsIGludCBwYWQpeworICAgICAgICBmaW5hbCBpbnQgTUFYX0RJR0lUUyA9IDEwOworICAgICAgICBpbnQgbGVuZ3RoID0gMDsKKyAgICAgICAgY2hhciBidWZmZXJbXSA9IG5ldyBjaGFyWzEwXTsKKyAgICAgICAgaW50IG51bSA9IDA7CisgICAgICAgIGludCBkaWdpdDsKKyAgICAgICAgaW50IGo7CisgICAgICAgIGNoYXIgdGVtcDsKKyAgICAgICAgaW50IGkgPSAoaW50KWNoOworICAgICAgICBkb3sKKyAgICAgICAgICAgIGRpZ2l0ID0gKGludCkoaSAlIHJhZGl4KTsKKyAgICAgICAgICAgIGJ1ZmZlcltsZW5ndGgrK109KGNoYXIpKGRpZ2l0PD05PygweDAwMzArZGlnaXQpOigweDAwMzArZGlnaXQrNykpOworICAgICAgICAgICAgaT0oaS9yYWRpeCk7CisgICAgICAgIH13aGlsZShpPjApOworCisgICAgICAgIHdoaWxlIChsZW5ndGggPCBwYWQpeyAgIAorICAgICAgICAgICAgYnVmZmVyW2xlbmd0aCsrXSA9ICAweDAwMzA7Lyp6ZXJvIHBhZGRpbmcgKi8KKyAgICAgICAgfQorICAgICAgICAvKiBudWxsIHRlcm1pbmF0ZSB0aGUgYnVmZmVyICovCisgICAgICAgIGlmKGxlbmd0aDxNQVhfRElHSVRTKXsKKyAgICAgICAgICAgIGJ1ZmZlcltsZW5ndGhdID0gIDB4MDAwMDsKKyAgICAgICAgfQorICAgICAgICBudW09IChwYWQ+PWxlbmd0aCkgPyBwYWQgOmxlbmd0aDsKKyAgICAgICAgICAgICAgCisgICAgICAgIC8qIFJldmVyc2VzIHRoZSBzdHJpbmcgKi8KKyAgICAgICAgZm9yIChqID0gMDsgaiA8IChudW0gLyAyKTsgaisrKXsKKyAgICAgICAgICAgIHRlbXAgPSBidWZmZXJbKGxlbmd0aC0xKSAtIGpdOworICAgICAgICAgICAgYnVmZmVyWyhsZW5ndGgtMSkgLSBqXSA9IGJ1ZmZlcltqXTsKKyAgICAgICAgICAgIGJ1ZmZlcltqXSA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZmZlciwwLGxlbmd0aCk7CisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludGxuKFN0cmluZyB2YWwpIHsKKyAgICAgICAgcHJpbnQodmFsKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICAgICAgLy93cml0ZVRvRmlsZSgiXG4iKTsKKyAgICAgICAgbGluZUxlbmd0aCA9IDA7CisgICAgICAgIG5lZWRzSW5kZW50ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludFN0cmluZyhTdHJpbmcgdmFsKSB7CisgICAgICAgIGlmICh2YWwgIT0gbnVsbCkgeworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBsaW5lQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgZmluYWwgaW50IHNpemUgPSB2YWwubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGFwcGVuZCh2YWwuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAvKmlmICghYXBwZW5kKHZhbC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGxpbmVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgIHByaW50KGxpbmVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludCgiXCJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNpYWxDaGFyKGNoYXIgY2gpeworICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYoKCgoKGNoKSA8PSAweDAwMkYpICYmICgoY2gpID49IDB4MDAyMCkpIHx8IAorICAgICAgICAgICgoKGNoKSA8PSAweDAwM0YpICYmICgoY2gpID49IDB4MDAzQSkpIHx8IAorICAgICAgICAgICgoKGNoKSA8PSAweDAwNjApICYmICgoY2gpID49IDB4MDA1QikpIHx8IAorICAgICAgICAgICgoKGNoKSA8PSAweDAwN0UpICYmICgoY2gpID49IDB4MDA3RCkpIHx8IAorICAgICAgICAgIChjaCkgPT0gMHgwMDdCKSl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludFJ1bGVTdHJpbmcoU3RyaW5nIHNyYyl7CisgICAgIFN0cmluZyB2YWwgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUoc3JjKTsKKyAgICAgaWYgKHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICBmaW5hbCBpbnQgc2l6ZSA9IHZhbC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHZhbC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYoY2g9PSdcXCcpeyAvL2VzY2FwZSBjaGFyCisgICAgICAgICAgICAgICAgICAgIGlmKCgoaSsxKSA8IHZhbC5sZW5ndGgoKSkpeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjMiA9IHZhbC5jaGFyQXQoaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbENoYXIoYzIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2NhcGUgdGhlIGVzY2FwZSBhbmQgZXNjYXBlIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgdGhlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChjMik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAvLyBkb3VibGUgZXNjYXBlIHRoZSBlc2NhcGUgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBpZihVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICBwcmludChsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQoIlwiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludFVucXVvdGVkU3RyaW5nKFN0cmluZyB2YWwpIHsKKyAgICAgICAgIGlmICh2YWwgIT0gbnVsbCkgeworICAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgIGxpbmVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgIC8vbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgZmluYWwgaW50IHNpemUgPSB2YWwubGVuZ3RoKCk7CisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgYXBwZW5kKHZhbC5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgICAvKmlmICghYXBwZW5kKHZhbC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGxpbmVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgIC8vbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgcHJpbnQobGluZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIHByaW50KCIiKTsKKyAgICAgICAgIH0KKyAgICAgfSAgICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIGFwcGVuZChmaW5hbCBjaGFyIGMpIHsKKyAgICAgICAgYm9vbGVhbiBlc2NhcGUgPSBpc0VzY2FwZUNoYXIoYyk7CisgICAgICAgIGlmIChlc2NhcGUpIHsKKyAgICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKGMsIGxpbmVCdWZmZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChsaW5lTGVuZ3RoICsgbGluZUJ1ZmZlci5sZW5ndGgoKSA8IE1BWF9MSU5FX0xFTkdUSCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIGlzRXNjYXBlQ2hhcihmaW5hbCBjaGFyIGMpIHsKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJyInOgorICAgICAgICBjYXNlICdcXCc6CisgICAgICAgIGNhc2UgJ1xuJzoKKyAgICAgICAgY2FzZSAnXHInOgorICAgICAgICBjYXNlICdcdTIwMjgnOgorICAgICAgICBjYXNlICdcdTIwMjknOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gKGMgPCAnICcpIHx8IChjID4gMHgwN0YpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGFwcGVuZEVzY2FwZWRDaGFyKGNoYXIgYywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZihjPj0weDIwICYmIGMgPCAweDdmKXsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChnZXRFc2NhcGVDaGFyKCkpOworICAgICAgICAgICAgaW50IHZhbHVlID0gKChpbnQpYykgJiAweEZGRkY7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsodmFsdWUgJiAweEYwMDApID4+IDEyXSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsodmFsdWUgJiAweDBGMDApID4+IDhdKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKHZhbHVlICYgMHgwMDBGKV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICJcXHUiOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBpbmRlbnQoKSB7CisgICAgICAgIGluZGVudCgxKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5kZW50KGludCBhbW91bnQpIHsKKyAgICAgICAgaW5kZW50TGV2ZWwgKz0gYW1vdW50OworICAgICAgICBpbmRlbnRTdHJpbmcgPSBJTkRFTlRfQ0hBUlMuc3Vic3RyaW5nKDAsIGluZGVudExldmVsKklOREVOVF9TSVpFKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgb3V0ZGVudCgpIHsKKyAgICAgICAgb3V0ZGVudCgxKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3V0ZGVudChpbnQgYW1vdW50KSB7CisgICAgICAgIGluZGVudExldmVsIC09IGFtb3VudDsKKyAgICAgICAgaW5kZW50U3RyaW5nID0gSU5ERU5UX0NIQVJTLnN1YnN0cmluZygwLCBpbmRlbnRMZXZlbCpJTkRFTlRfU0laRSk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfRElHSVQgPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywKKyAgICAgICAgICAgICAgICAgICAgICc4JywnOScsJ0EnLCdCJywnQycsJ0QnLCdFJywnRid9OworCisgICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCB0YWcgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyB0aGUgdmFsdWUgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBmb3IgdGhhdCB0YWcgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNEdXBsaWNhdGVPZkluaGVyaXRlZFZhbHVlKGZpbmFsIExvY2FsZSBsb2MsIFN0cmluZyB0YWcsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBSZXNvdXJjZUJ1bmRsZSBwYXJlbnRCdW5kbGUgPSBnZXRQYXJlbnRCdW5kbGUobG9jKTsKKyAgICAgICAgICAgIGlmIChwYXJlbnRCdW5kbGUgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgT2JqZWN0IHBhcmVudFZhbHVlID0gcGFyZW50QnVuZGxlLmdldE9iamVjdCh0YWcpOworICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwodmFsdWUsIHBhcmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBvYmplY3RzQXJlRXF1YWwoZmluYWwgT2JqZWN0IGl0ZW0sIGZpbmFsIE9iamVjdCBwYXJlbnRJdGVtKSB7CisgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0W10gJiYgcGFyZW50SXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICByZXR1cm4gYXJyYXlzQXJlRXF1YWwoKE9iamVjdFtdKWl0ZW0sIChPYmplY3RbXSlwYXJlbnRJdGVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVtLmVxdWFscyhwYXJlbnRJdGVtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gYXJyYXlzQXJlRXF1YWwoZmluYWwgT2JqZWN0W10gaXRlbSwgZmluYWwgT2JqZWN0W10gcGFyZW50SXRlbSkgeworICAgICAgICBib29sZWFuIG1hdGNoZXMgPSBpdGVtLmxlbmd0aCA9PSBwYXJlbnRJdGVtLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtLmxlbmd0aCAmJiBtYXRjaGVzOyBpKyspIHsKKyAgICAgICAgICAgIG1hdGNoZXMgPSBvYmplY3RzQXJlRXF1YWwoaXRlbVtpXSwgcGFyZW50SXRlbVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1hdGNoZXM7CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGdldFBhcmVudEJ1bmRsZShmaW5hbCBMb2NhbGUgbG9jKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgeCA9IGxvYy50b1N0cmluZygpOworICAgICAgICAgICAgZmluYWwgaW50IG5keCA9IHgubGFzdEluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgIGlmIChuZHggPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBwYXJlbnRMb2NOYW1lID0geC5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgICAgICAgICBmaW5hbCBMb2NhbGUgcGFyZW50TG9jID0gbG9jYWxlRnJvbVN0cmluZyhwYXJlbnRMb2NOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIubXlMb2NhbGVFbGVtZW50cyIsIHBhcmVudExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhyZXBsYWNlbWVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxhc3ROZHggPSAwOworICAgICAgICAgICAgaW50IG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCk7CisgICAgICAgICAgICB3aGlsZSAobmR4ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCwgbmR4KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICAgICAgbmR4ICs9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBsYXN0TmR4ID0gbmR4OworICAgICAgICAgICAgICAgIG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCwgbmR4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhsYXN0TmR4KSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTmV1dHJhbFRvSjFDb252ZXJ0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTmV1dHJhbFRvSjFDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDIzYzQxZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL05ldXRyYWxUb0oxQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgTmV1dHJhbFRvSjFDb252ZXJ0ZXIgZXh0ZW5kcyBMb2NhbGVDb252ZXJ0ZXIgeworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENvbnZlcnNpb24geworICAgICAgICBwcml2YXRlIFN0cmluZyBwcm9wTmFtZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbmR4OworICAgICAgICBwcm90ZWN0ZWQgQ29udmVyc2lvbigpIHsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29udmVyc2lvbihTdHJpbmcgcHJvcE5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMucHJvcE5hbWUgPSBwcm9wTmFtZTsKKyAgICAgICAgICAgIHRoaXMubmR4ID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbnZlcnNpb24oU3RyaW5nIHByb3BOYW1lLCBpbnQgbmR4KSB7CisgICAgICAgICAgICB0aGlzLnByb3BOYW1lID0gcHJvcE5hbWU7CisgICAgICAgICAgICB0aGlzLm5keCA9IG5keDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIHByb3BOYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgY29udmVydChIYXNodGFibGUgc291cmNlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgICAgIE9iamVjdCBzb3VyY2VEYXRhID0gc291cmNlLmdldChwcm9wTmFtZSk7CisgICAgICAgICAgICBpZiAoc291cmNlRGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlRGF0YSBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZURhdGEgPSAoKFN0cmluZ1tdKXNvdXJjZURhdGEpW25keF07CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VEYXRhIGluc3RhbmNlb2YgU3RyaW5nW11bXSkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2VEYXRhID0gKChTdHJpbmdbXVtdKXNvdXJjZURhdGEpW25keF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFN0cmluZylzb3VyY2VEYXRhOworICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VEYXRhIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBkYXRhID0gKFN0cmluZ1tdKXNvdXJjZURhdGE7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSByZXN1bHQuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGF0YVtpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbnZlcnNpb25FcnJvcigiY291bGQgbm90IGNvbnZlcnQgdGFnOiAiK3Byb3BOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENvbGxhdGlvbkNvbnZlcnNpb24gZXh0ZW5kcyBDb252ZXJzaW9uIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBjb252ZXJ0KEhhc2h0YWJsZSBzb3VyY2UpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICAgICAgT2JqZWN0W11bXSBlbGVtZW50cyA9IChPYmplY3RbXVtdKXNvdXJjZS5nZXQoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pZWxlbWVudHNbMl1bMV07CisgICAgICAgICAgICBpZiAoaXRlbXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29udmVyc2lvbltdIGNvbnZlcnNpb25zID0geworICAgICAgICBuZXcgQ29udmVyc2lvbigiTG9jYWxlU3RyaW5nIiksIC8qbG9jYWxlIGlkIGJhc2VkIG9uIGlzbyBjb2RlcyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJMb2NhbGVJRCIpLCAvKldpbmRvd3MgaWQqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiU2hvcnRMYW5ndWFnZSIpLCAvKmlzby0zIGFiYnJldiBsYW5nIG5hbWUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiU2hvcnRDb3VudHJ5IiksIC8qaXNvLTMgYWJicmV2IGNvdW50cnkgbmFtZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJMYW5ndWFnZXMiKSwgLypsYW5ndWFnZSBuYW1lcyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJDb3VudHJpZXMiKSwgLypjb3VudHJ5IG5hbWVzKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDApLCAvKmphbnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMSksIC8qZmVicnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMiksIC8qbWFyY2gqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMyksIC8qYXByaWwqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNCksIC8qbWF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDUpLCAvKmp1bmUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNiksIC8qanVseSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw3KSwgLyphdWd1c3QqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsOCksIC8qc2VwdGVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDkpLCAvKm9jdG9iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMTApLCAvKm5vdmVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDExKSwgLypkZWNlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwxMiksIC8qbW9udGggMTMgaWYgYXBwbGljYWJsZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDApLCAvKmFiYiBqYW51YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMSksIC8qYWJiIGZlYnJ1YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMiksIC8qYWJiIG1hcmNoKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMyksIC8qYWJiIGFwcmlsKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNCksIC8qYWJiIG1heSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDUpLCAvKmFiYiBqdW5lKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNiksIC8qYWJiIGp1bHkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw3KSwgLyphYmIgYXVndXN0Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsOCksIC8qYWJiIHNlcHRlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDkpLCAvKmFiYiBvY3RvYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMTApLCAvKmFiYiBub3ZlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDExKSwgLyphYmIgZGVjZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwxMiksIC8qYWJiIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDApLCAvKk1vbmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMSksIC8qVHVlc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMiksIC8qV2VkbmVzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiwzKSwgLypUaHVyc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsNCksIC8qRnJpZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiw1KSwgLypTYXR1cmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsNiksIC8qU3VuZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDApLCAvKmFiYiBNb25kYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMSksIC8qYWJiIFR1ZXNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMiksIC8qYWJiIFdlZG5lc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiwzKSwgLyphYmIgVGh1cnNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsNCksIC8qYWJiIEZyaWRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiw1KSwgLyphYmIgU2F0dXJkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsNiksIC8qYWJiIFN1bmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJBbVBtTWFya2VycyIsMCksIC8qYW0gbWFya2VyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkFtUG1NYXJrZXJzIiwxKSwgLypwbSBtYXJrZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRXJhcyIpLC8qZXJhIHN0cmluZ3MqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyUGF0dGVybnMiLDApLCAvKmRlY2ltYWwgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJQYXR0ZXJucyIsMSksIC8qY3VycmVuY3kgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJQYXR0ZXJucyIsMiksIC8qcGVyY2VudCBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwwKSwgLypkZWNpbWFsIHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMSksIC8qZ3JvdXAgKHRob3VzYW5kcykgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwyKSwgLypsaXN0IHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMyksIC8qcGVyY2VudCBzaWduKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiw0KSwgLypuYXRpdmUgMCBkaWdpdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNSksIC8qcGF0dGVybiBkaWdpdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNiksIC8qbWludXMgc2lnbiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNyksIC8qZXhwb25lbnRpYWwqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQ3VycmVuY3lFbGVtZW50cyIsMCksIC8qbG9jYWwgY3VycmVuY3kgc3ltYm9sKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkN1cnJlbmN5RWxlbWVudHMiLDEpLCAvKmludGwgY3VycmVuY3kgc3ltYm9sKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkN1cnJlbmN5RWxlbWVudHMiLDIpLCAvKm1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDApLCAvKmZ1bGwgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDEpLCAvKmxvbmcgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDIpLCAvKm1lZGl1bSB0aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsMyksIC8qc2hvcnQgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDQpLCAvKmZ1bGwgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDUpLCAvKmxvbmcgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDYpLCAvKm1lZGl1bSBkYXRlIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsNyksIC8qc2hvcnQgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDgpLCAvKmRhdGUtdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lRWxlbWVudHMiLDkpLCAvKmZpcnN0IGRheSBvZiB3ZWVrKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lRWxlbWVudHMiLDEwKSwgLyptaW4gZGF5cyBpbiBmaXJzdCB3ZWVrKi8KKyAgICAgICAgbmV3IENvbGxhdGlvbkNvbnZlcnNpb24oKSwgLypjb2xsYXRpb24gb3JkZXIqLworICAgIH07CisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworICAgIHByaXZhdGUgTG9jYWxlIHBhcmVudExvY2FsZTsKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGRlZmF1bHREYXRhOworCisgICAgcHVibGljIE5ldXRyYWxUb0oxQ29udmVydGVyKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZS50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCIiLmVxdWFscyhjb3VudHJ5KSkgeworICAgICAgICAgICAgbGFuZ3VhZ2UgPSAiIjsKKyAgICAgICAgICAgIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgfSBlbHNlIGlmICgiIi5lcXVhbHModmFyaWFudCkpIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSAiIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyZW50TG9jYWxlID0gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgICAgIGRlZmF1bHREYXRhID0KKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLm15TG9jYWxlRWxlbWVudHMiLCBwYXJlbnRMb2NhbGUpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KK30KKyAgICAKKyAgICAvKiogY29udmVydCB0aGUgc291cmNlIHRhYmxlIHRvIHRoZSByZXN1bHQgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjb252ZXJ0KEhhc2h0YWJsZSByZXN1bHQsIEhhc2h0YWJsZSBzb3VyY2UpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICBWZWN0b3IgbG9jYWxlRWxlbWVudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udmVyc2lvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZpbmFsIENvbnZlcnNpb24gY29udiA9IGNvbnZlcnNpb25zW2ldOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIG5ld1ZhbHVlID0gY29udi5jb252ZXJ0KHNvdXJjZSk7CisgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvY2FsZUVsZW1lbnRzLmFkZEVsZW1lbnQobmV3VmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVFbGVtZW50cy5hZGRFbGVtZW50KGRlZmF1bHREYXRhLmdldE9iamVjdChjb252LmdldFByb3BOYW1lKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHQucHV0KCJMb2NhbGVFbGVtZW50cyIsIGxvY2FsZUVsZW1lbnRzKTsKKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1BPU0lYTG9jYWxlUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1BPU0lYTG9jYWxlUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODExMzY3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUE9TSVhMb2NhbGVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDQwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgUE9TSVhMb2NhbGVSZWFkZXIgeworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGxvY2FsZURhdGFQYXRoOworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIGxvY2FsZTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR19UT0tFTiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VQQVJBVE9SX1RPS0VOID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFT0xfVE9LRU4gPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVPRl9UT0tFTiA9IDQ7CisKKyAgICAgICAgLy90aGVzZSBzdGF0ZXMgYXJlIHVzZWQgdG8gcGFyc2UgdGhlIGJ1bGsgb2YgdGhlCisgICAgICAgIC8vaW5wdXQgZmlsZS4gIFRoZXkgdHJhbnNsYXRlIGVzY2FwZWQgY2hhcmFjdGVycworICAgICAgICAvL2FuZCBzeW1vbGljIGNoYXJhY3RlciByZWZlcmVuY2VzIGlubGluZS4KKyAgICBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIGRhdGFTdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiBzdGFydAorICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJzsnLCBMZXguSUdOT1JFX0NPTlNVTUUsIFNFUEFSQVRPUl9UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcsJywgTGV4LklHTk9SRV9DT05TVU1FLCBTRVBBUkFUT1JfVE9LRU4pLAorICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBUb2tlblRyYW5zaXRpb24oVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0ZfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgY2hhcmFjdGVycyIpCisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBMQ1N0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IHN0YXJ0CisgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0ZfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAgIC8vZ3JhYiBmaXJzdCB3b3JkCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFRBR19UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihUQUdfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgUE9TSVhMb2NhbGVSZWFkZXIoZmluYWwgU3RyaW5nIGxvY2FsZURhdGFQYXRoLCBmaW5hbCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlRGF0YVBhdGggPSBsb2NhbGVEYXRhUGF0aDsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorfQorICAgIAorICAgIHB1YmxpYyBIYXNodGFibGUgcGFyc2UoU3RyaW5nIGZpbGVOYW1lLCBieXRlIGZsYWdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB0cnkgeworICAgICAgICAgICAgSGFzaHRhYmxlIHRhYmxlID0gcGFyc2VOYXRpdmUoZmlsZU5hbWUpOworICAgICAgICAgICAgSGFzaHRhYmxlIHJlc3VsdCA9IG5ldyBQb3NpeFRvTmV1dHJhbENvbnZlcnRlcihmbGFncywgbG9jYWxlLGZpbGVOYW1lKS5jb252ZXJ0KHRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gY2F0Y2ggKExvY2FsZUNvbnZlcnRlci5Db252ZXJzaW9uRXJyb3IgZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJJbnRlcm5hbCBlcnJvciBjb252ZXJ0aW5nIGxvY2FsZSBkYXRhIik7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgSGFzaHRhYmxlIHBhcnNlTmF0aXZlKFN0cmluZyBmaWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhciBvbGRFc2NhcGVDaGFyID0gRXNjYXBlVHJhbnNpdGlvbi5zZXREZWZhdWx0RXNjYXBlQ2hhcigpOworICAgICAgICBjaGFyIG9sZENvbW1lbnRDaGFyID0gRU9MVHJhbnNpdGlvbi5zZXREZWZhdWx0Q29tbWVudENoYXIoKTsKKyAgICAgICAgSGFzaHRhYmxlIHRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBMaW5lQ2hhck51bWJlclJlYWRlciBsaW5lcyA9IG5ldyBMaW5lQ2hhck51bWJlclJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUobG9jYWxlRGF0YVBhdGgsIGZpbGVOYW1lKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHJlYWRlciA9IG5ldyBQdXNoYmFja1JlYWRlcihsaW5lcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vU2hvdmUgYSBuZXdsaW5lIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4gIFRoaXMgaGFzIHRoZSBhZmZlY3Qgb2YgYWxsb3dpbmcKKyAgICAgICAgICAgIC8vdGhlIGZpbGUgdG8gc3RhcnQgd2l0aCBhIGNvbW1lbnQsIHNpbmNlIHRoZSBwYXJzZXIgb25seSBhbGxvd3MgY29tbWVudHMgYXMgCisgICAgICAgICAgICAvL3BhcnQgb2YgYW4gRU9MCisgICAgICAgICAgICByZWFkZXIudW5yZWFkKCdcbicpOworCisgICAgICAgICAgICBTdHJpbmcgc2VjdGlvblRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgd2hpbGUgKHNlY3Rpb25UYWcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlU2VjdGlvbih0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChMZXguUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SIHBhcnNpbmc6ICIrZS5yZWFzb24pOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICAgIExpbmU6ICIrbGluZXMuZ2V0TGluZU51bWJlcigpKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgICAgICAgICBjaGFyOiAiK2xpbmVzLmdldENoYXJOdW1iZXIoKSk7CisgICAgICAgICAgICAgICAgICAgIHNlZWtFTkQocmVhZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJTa2lwcGVkIHRvIGxpbmU6ICIrKGxpbmVzLmdldExpbmVOdW1iZXIoKSsxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNlY3Rpb25UYWcgPSBzZWVrTEMocmVhZGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIEVzY2FwZVRyYW5zaXRpb24uc2V0RXNjYXBlQ2hhcihvbGRFc2NhcGVDaGFyKTsKKyAgICAgICAgICAgIEVPTFRyYW5zaXRpb24uc2V0Q29tbWVudENoYXIob2xkQ29tbWVudENoYXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YWJsZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlU2VjdGlvbihIYXNodGFibGUgdGFibGUsIFB1c2hiYWNrUmVhZGVyIHJlYWRlciwgU3RyaW5nIHNlY3Rpb25UYWcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfQ1RZUEUiKSkgeworICAgICAgICAgICAgcGFyc2VDVFlQRSh0YWJsZSwgcmVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfQ09MTEFURSIpKSB7CisgICAgICAgICAgICBwYXJzZUNPTExBVEUodGFibGUsIHJlYWRlcik7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX01PTkVUQVJZIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX05VTUVSSUMiKSkgeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfVElNRSIpKSB7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19NRVNTQUdFUyIpKSB7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfTUVBU1VSRU1FTlQiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfQUREUkVTUyIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19QQVBFUiIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19OQU1FIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX0lERU5USUZJQ0FUSU9OIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX1RFTEVQSE9ORSIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVbnJlY29nbmlzZWQgc2VjdGlvbjoiK3NlY3Rpb25UYWcpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEZWZhdWx0IHBhcnNpbmcgYXBwbGllZC4iKTsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFB1c2hiYWNrUmVhZGVyIGNyZWF0ZVBhcnNlcklucHV0KFN0cmluZyBsb2NhbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBQdXNoYmFja1JlYWRlciByZWFkZXIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoCisgICAgICAgICAgICBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKGxvY2FsZURhdGFQYXRoLCBsb2NhbGVOYW1lKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgKTsKKyAgICAgICAgLy9TaG92ZSBhIG5ld2xpbmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLiAgVGhpcyBoYXMgdGhlIGFmZmVjdCBvZiBhbGxvd2luZworICAgICAgICAvL3RoZSBmaWxlIHRvIHN0YXJ0IHdpdGggYSBjb21tZW50LCBzaW5jZSB0aGUgcGFyc2VyIG9ubHkgYWxsb3dzIGNvbW1lbnRzIGFzIAorICAgICAgICAvL3BhcnQgb2YgYW4gRU9MCisgICAgICAgIHJlYWRlci51bnJlYWQoJ1xuJyk7CisgICAgICAgIHJldHVybiByZWFkZXI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHNlZWtMQyhQdXNoYmFja1JlYWRlciByZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBwID0gbmV3IExleChMQ1N0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIExDID0gIkxDXyI7CisgICAgICAgIGludCBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgd2hpbGUgKChzICE9IEVPRl9UT0tFTikpIHsKKyAgICAgICAgICAgIGlmIChzID09IFRBR19UT0tFTikgeworICAgICAgICAgICAgICAgIGlmIChwLmRhdGFTdGFydHNXaXRoKExDKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFnID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChzICE9IEVPTF9UT0tFTiAmJiBzICE9IEVPRl9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWc7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLmRhdGFFcXVhbHMoImVzY2FwZV9jaGFyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID09IFRBR19UT0tFTiB8fCBwLmdldERhdGEoKS5sZW5ndGgoKSAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXNjYXBlX2NoYXIgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVzY2FwZVRyYW5zaXRpb24uc2V0RXNjYXBlQ2hhcihlc2NhcGVfY2hhci5jaGFyQXQoMCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBpbiBlc2NhcGVfY2hhciBkaXJlY3RpdmUuICBEaXJlY3RpdmUgaWdub3JlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocC5kYXRhRXF1YWxzKCJjb21tZW50X2NoYXIiKSkgeworICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOIHx8IHAuZ2V0RGF0YSgpLmxlbmd0aCgpICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tZW50X2NoYXIgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbW1lbnRfY2hhci5sZW5ndGgoKSA+IDApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVPTFRyYW5zaXRpb24uc2V0Q29tbWVudENoYXIoY29tbWVudF9jaGFyLmNoYXJBdCgwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGluIGVzY2FwZV9jaGFyIGRpcmVjdGl2ZS4gIERpcmVjdGl2ZSBpZ25vcmVkLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIHNlZWtFTkQoUHVzaGJhY2tSZWFkZXIgcmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBMZXggcCA9IG5ldyBMZXgoTENTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgIGZpbmFsIFN0cmluZyBFTkQgPSAiRU5EIjsKKyAgICAgICAgaW50IHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB3aGlsZSAoKHMgIT0gRU9GX1RPS0VOKSkgeworICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuZGF0YVN0YXJ0c1dpdGgoRU5EKSkgeworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAocyAhPSBFT0xfVE9LRU4gJiYgcyAhPSBFT0ZfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUNUWVBFKEhhc2h0YWJsZSB0YWJsZSwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBMZXggcCA9IG5ldyBMZXgoZGF0YVN0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKChzID09IFRBR19UT0tFTikgJiYgcC5kYXRhRXF1YWxzKCJjb3B5IikpIHsKKyAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICBwYXJzZUNvcHkoIkxDX0NUWVBFIiwgcC5nZXREYXRhKCksIHRhYmxlKTsKKyAgICAgICAgICAgIHAuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4sICJFTkQiKTsKKyAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTiwgIkxDX0NUWVBFIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoKHMgPT0gVEFHX1RPS0VOKSAmJiAhcC5kYXRhRXF1YWxzKCJFTkQiKSkgeyAgCisgICAgICAgICAgICAgICAgLy9JR05PUkUgdGhlIENUWVBFIGRlZmluaXRpb24gLi4uIHdlIGRvbnQgbmVlZCBpdAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICB0ZW1wLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgIHAuYXBwZW5kRGF0YVRvKHRlbXApOworICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIHdoaWxlIChzID09IFNFUEFSQVRPUl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBwLmFwcGVuZERhdGFUbyh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzICE9IEVPTF9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IENvdWxkIG5vdCBwYXJzZSB0aGUgVW5leHBlY3RlZCB0b2tlbjogRXhwZWN0aW5nIEVPTCBnb3QgIitzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0YWJsZS5wdXQoa2V5LCB0ZW1wLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTiwgIkxDX0NUWVBFIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQ29weShTdHJpbmcgc2VjdGlvbiwgU3RyaW5nIHRvQ29weSwgSGFzaHRhYmxlIHQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGNoYXIgb2xkRXNjYXBlQ2hhciA9IEVzY2FwZVRyYW5zaXRpb24uc2V0RGVmYXVsdEVzY2FwZUNoYXIoKTsKKyAgICAgICAgY2hhciBvbGRDb21tZW50Q2hhciA9IEVPTFRyYW5zaXRpb24uc2V0RGVmYXVsdENvbW1lbnRDaGFyKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciByZWFkZXIgPSBjcmVhdGVQYXJzZXJJbnB1dCh0b0NvcHkpOworICAgICAgICAgICAgU3RyaW5nIHRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgd2hpbGUgKHRhZyAhPSBudWxsICYmICFzZWN0aW9uLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICAgICAgdGFnID0gc2Vla0xDKHJlYWRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwYXJzZVNlY3Rpb24odCwgcmVhZGVyLCBzZWN0aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy9oZXkge2pmfSAtIGlzIHRoaXMgYW4gZXJyb3I/CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLnNldEVzY2FwZUNoYXIob2xkRXNjYXBlQ2hhcik7CisgICAgICAgICAgICBFT0xUcmFuc2l0aW9uLnNldENvbW1lbnRDaGFyKG9sZENvbW1lbnRDaGFyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VMQyhIYXNodGFibGUgdCwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyLCBTdHJpbmcgc2VjdGlvblRhZykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTGV4IGlucHV0ID0gbmV3IExleChkYXRhU3RhdGVzLCByZWFkZXIpOworICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgaWYgKGlucHV0LmRhdGFFcXVhbHMoImNvcHkiKSkgeworICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICBwYXJzZUNvcHkoc2VjdGlvblRhZywgaW5wdXQuZ2V0RGF0YSgpLCB0KTsgICAgICAgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoKGlucHV0LmdldFN0YXRlKCkgPT0gVEFHX1RPS0VOKSAmJiAhaW5wdXQuZGF0YUVxdWFscygiRU5EIikpIHsgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgVmVjdG9yIHZhbHVlcyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkRWxlbWVudCh0ZW1wKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaW5wdXQubmV4dFRva2VuKCkgPT0gU0VQQVJBVE9SX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hZGRFbGVtZW50KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlcy5zaXplKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGRhdGEgPSBuZXcgU3RyaW5nW3ZhbHVlcy5zaXplKCldOworICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuY29weUludG8oZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIHQucHV0KGxhYmVsLCBkYXRhKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0LnB1dChsYWJlbCwgdmFsdWVzLmVsZW1lbnRBdCgwKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbnB1dC5nZXRTdGF0ZSgpICE9IEVPTF9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkV4dHJhbmVvdXMgdGV4dCBhZnRlciBsYWJlbDogIiArbGFiZWwpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTiwgc2VjdGlvblRhZyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQ09MTEFURShIYXNodGFibGUgdGFibGUsIFB1c2hiYWNrUmVhZGVyIHJlYWRlcikgCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBQb3NpeENoYXJNYXAgbWFwID0gbmV3IFBvc2l4Q2hhck1hcChTeW1ib2xUcmFuc2l0aW9uLmdldENoYXJNYXAoKSk7CisgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChtYXApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4IGlucHV0ID0gbmV3IExleChkYXRhU3RhdGVzLCByZWFkZXIpOworICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyIGJ1aWxkZXIgPSBuZXcgUG9zaXhDb2xsYXRpb25CdWlsZGVyKG1hcCk7CisKKyAgICAgICAgICAgIGludCBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBFT0xfVE9LRU4pIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFRBR19UT0tFTikgeworICAgICAgICAgICAgICAgIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJFTkQiKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoIlVOREVGSU5FRCIpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogVW5kZWZpbmVkIGNoYXJhY3RlcnMgd2lsbCBzb3J0IGxhc3QuIik7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgIT0gRU9GX1RPS0VOICYmIHMgIT0gRU9MX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoImNvcHkiKSkgeworICAgICAgICAgICAgICAgICAgICAvL2NvcHkgY29sbGF0aW9uIHJ1bGVzIGZyb20gYW5vdGhlciBsb2NhbGUKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0b0NvcHkgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBwYXJzZUNvcHkoIkxDX0NPTExBVEUiLCB0b0NvcHksIHRhYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3B5aW5nIGNvbGxhdGlvbiBydWxlcyBmcm9tICIrdG9Db3B5KyIuLi4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoIi4uLiIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vZmlsbCB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgbGFzdCBlbGVtZW50IGFuZCB0aGUgbmV4dCBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IEVsbGlwc2lzIG5vdCBzdXBwb3J0ZWQgaW4gY29sbGF0aW9uIHJ1bGVzLiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICBMaW5lIGlnbm9yZWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoInJlcGxhY2UtYWZ0ZXIiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBSZXBsYWNlLWFmdGVyIG5vdCBzdXBwb3J0ZWQgaW4gY29sbGF0aW9uIHJ1bGVzLiIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICBTa2lwcGluZyB1bnRpbCBuZXh0IHJlcGxhY2UtZW5kLiIpOworICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzICE9IEVPRl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOICYmIGlucHV0LmRhdGFFcXVhbHMoInJlcGxhY2UtZW5kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiY29sbGF0aW5nLWVsZW1lbnQiKSkgeworICAgICAgICAgICAgICAgICAgICAvL1NldmVyYWwgY2hhcmFjdGVycyBzaG91bGQgc29ydCBhcyBhIHNpbmdsZSBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsgICAgLy9nZXQgdGhlIHN5bWJvbAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOLCAiZnJvbSIpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsgICAgLy9nZXQgdGhlIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuZGVmaW5lQ29udHJhY3Rpb24oa2V5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiY29sbGF0aW5nLXN5bWJvbCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lIGEgd2VpZ2h0IHN5bWJvbC4gIFRoaXMgc3ltYm9sIGRvZXMgbm90IHJlcHJlc2VudCBhIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgICAgLy9JdCdzIG9ubHkgdXNlZCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy4gIFdlIGRlZmluZSB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIC8vdmFsdWUgZm9yIHRoaXMgY2hhcmFjdGVyIHRvIGJlIGluIHRoZSBwcml2YXRlIGFyZWEgc2luY2Ugb3VyCisgICAgICAgICAgICAgICAgICAgIC8vY29sbGF0aW9uIHN0dWZmIGRvZXNuJ3Qgc29ydCB0aGF0IGFyZWEuCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmRlZmluZVdlaWdodFN5bWJvbChpbnB1dC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoIm9yZGVyX3N0YXJ0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgVmVjdG9yIHRlbXBWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIC8vc3RhcnQgcmVhZGluZyBjb2xsYXRpb24gb3JkZXJpbmcgcnVsZXMuIAorICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFZlY3Rvci5hZGRFbGVtZW50KGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgPT0gU0VQQVJBVE9SX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWZWN0b3IuYWRkRWxlbWVudChpbnB1dC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIG9yZGVyX3N0YXJ0ID0gbmV3IFN0cmluZ1t0ZW1wVmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICAgICAgICAgIHRlbXBWZWN0b3IuY29weUludG8ob3JkZXJfc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB0YWJsZS5wdXQoInNvcnRfb3JkZXIiLCBvcmRlcl9zdGFydCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJvcmRlcl9lbmQiKSkgeworICAgICAgICAgICAgICAgICAgICAvL2J1aWxkIGEgbGlzdCBvZiBvcmRlcmVkIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgU29ydGVkVmVjdG9yIG9yZGVyID0gYnVpbGRlci5nZXRTb3J0T3JkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbXSBydWxlU291cmNlID0gCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbb3JkZXIuc2l6ZSgpXTsKKyAgICAgICAgICAgICAgICAgICAgb3JkZXIuY29weUludG8ocnVsZVNvdXJjZSk7IC8vY29weSBpbnRvIGFuIGFycmF5IHNvIHdlIGNhbiBhZGQgaXQgdG8gdGhlIG91dHB1dCB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIG9ubHkgZm9yIGluZm9ybWF0aW9uIHB1cnBvc2VzIHNvIHdlIGNhbiByZXRyaWV2ZSB0aGUgc291cmNlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy9jb2xsYXRpb25JdGVtcyB3aXRoIHRoZSB3ZWlnaHRzIGlmIHdlIHdhbnQgdGhlbSBsYXRlcgorICAgICAgICAgICAgICAgICAgICB0YWJsZS5wdXQoInBvc2l4X3NvcnRfcnVsZXMiLCBydWxlU291cmNlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvL2FkZCBhIGNvbGxhdGlvbiBpdGVtIHRvIHRoZSBsaXN0CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYWRkUnVsZShpbnB1dC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzID09IFRBR19UT0tFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy93ZSdyZSBleHBlY3Rpbmcgd2VpZ2h0cyBoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFkZFdlaWdodChpbnB1dC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gU0VQQVJBVE9SX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4sICJMQ19DT0xMQVRFIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAobWFwLmdldFBhcmVudCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENoYXJNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWVjYjIxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEKQEAgLTAsMCArMSw0OTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitwdWJsaWMgY2xhc3MgUG9zaXhDaGFyTWFwIHsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBiYWNrVGFibGUgPSBudWxsOworICAgIHByaXZhdGUgUG9zaXhDaGFyTWFwIHBhcmVudE1hcDsKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZzsKKyAgICAKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKCkgeworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKFBvc2l4Q2hhck1hcCBwYXJlbnQpIHsKKyAgICAgICAgcGFyZW50TWFwID0gcGFyZW50OworICAgIH0KKworICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB0aGlzKG5ldyBGaWxlUmVhZGVyKGZpbGVOYW1lKSk7CisgICAgfQorCisgICAgcHVibGljIFBvc2l4Q2hhck1hcChTdHJpbmcgcGF0aE5hbWUsIFN0cmluZyBmaWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdGhpcyhuZXcgRmlsZVJlYWRlcihuZXcgRmlsZShwYXRoTmFtZSwgZmlsZU5hbWUpKSk7CisgICAgfQorCisgICAgcHVibGljIFBvc2l4Q2hhck1hcChSZWFkZXIgaW5wdXRSZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvYWQobmV3IEJ1ZmZlcmVkUmVhZGVyKGlucHV0UmVhZGVyKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBQb3NpeENoYXJNYXAgZ2V0UGFyZW50KCkgeworICAgICAgICByZXR1cm4gcGFyZW50TWFwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJlbnQoUG9zaXhDaGFyTWFwIHBhcmVudCkgeworICAgICAgICBwYXJlbnRNYXAgPSBwYXJlbnQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbG9hZChTdHJpbmcgcGF0aE5hbWUsIFN0cmluZyBmaWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9hZChuZXcgRmlsZShwYXRoTmFtZSwgZmlsZU5hbWUpLCIiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgbG9hZChTdHJpbmcgcGF0aE5hbWUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGVuYyl0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGxvYWQobmV3IEZpbGUocGF0aE5hbWUsIGZpbGVOYW1lKSxlbmMpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBsb2FkKEZpbGUgZmlsZSwgU3RyaW5nIGVuYykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZW5jb2RpbmcgPWVuYzsKKyAgICAgICAgbG9hZChuZXcgQnVmZmVyZWRSZWFkZXIobmV3IEZpbGVSZWFkZXIoZmlsZSkpKTsKKyAgICB9CisgICAgLyogVGhpcyBtYXAgbXVzdCBiZSBpbiBBU0NFTkRJTkcgT1JERVIgT0YgVEhFIEVTQ0FQRSBDT0RFICovCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgY2hhcltdIFVORVNDQVBFX01BUCA9IHsKKyAgICAgICAgLyoiICAgMHgyMiwgMHgyMiAqLworICAgICAgICAvKicgICAweDI3LCAweDI3ICovCisgICAgICAgIC8qPyAgIDB4M0YsIDB4M0YgKi8KKyAgICAgICAgLypcICAgMHg1QywgMHg1QyAqLworICAgICAgICAvKmEqLyAweDYxLCAweDA3LAorICAgICAgICAvKmIqLyAweDYyLCAweDA4LAorICAgICAgICAvKmYqLyAweDY2LCAweDBjLAorICAgICAgICAvKm4qLyAweDZFLCAweDBhLAorICAgICAgICAvKnIqLyAweDcyLCAweDBkLAorICAgICAgICAvKnQqLyAweDc0LCAweDA5LAorICAgICAgICAvKnYqLyAweDc2LCAweDBiCisgICAgfTsKKyAgICAgICAgLyoqCisgICAgICogQ29udmVydCBhbiBlc2NhcGUgdG8gYSAzMi1iaXQgY29kZSBwb2ludCB2YWx1ZS4gIFdlIGF0dGVtcHQKKyAgICAgKiB0byBwYXJhbGxlbCB0aGUgaWN1NGMgdW5lc2FjcGVBdCgpIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBhbiBhcnJheSBjb250YWluaW5nIG9mZnNldCB0byB0aGUgY2hhcmFjdGVyCisgICAgICogPGVtPmFmdGVyPC9lbT4gdGhlIGJhY2tzbGFzaC4gIFVwb24gcmV0dXJuIG9mZnNldDE2WzBdIHdpbGwKKyAgICAgKiBiZSB1cGRhdGVkIHRvIHBvaW50IGFmdGVyIHRoZSBlc2NhcGUgc2VxdWVuY2UuCisgICAgICogQHJldHVybiBjaGFyYWN0ZXIgdmFsdWUgZnJvbSAwIHRvIDEwRkZGRiwgb3IgLTEgb24gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdW5lc2NhcGVBdChTdHJpbmcgcywgaW50W10gb2Zmc2V0MTYpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBtaW5EaWcgPSAwOworICAgICAgICBpbnQgbWF4RGlnID0gMDsKKyAgICAgICAgaW50IGJpdHNQZXJEaWdpdCA9IDQ7CisgICAgICAgIGludCBkaWc7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8qIENoZWNrIHRoYXQgb2Zmc2V0IGlzIGluIHJhbmdlICovCisgICAgICAgIGludCBvZmZzZXQgPSBvZmZzZXQxNlswXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHMubGVuZ3RoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEZldGNoIGZpcnN0IFVDaGFyIGFmdGVyICdcXCcgKi8KKyAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICBvZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworCisgICAgICAgIC8qIENvbnZlcnQgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIGVzY2FwZXMgKi8KKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJ3UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgbWF4RGlnID0gMjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCA4KTsKKyAgICAgICAgICAgIGlmIChkaWcgPj0gMCkgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gMzsKKyAgICAgICAgICAgICAgICBuID0gMTsgLyogQWxyZWFkeSBoYXZlIGZpcnN0IG9jdGFsIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgYml0c1BlckRpZ2l0ID0gMzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkaWc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluRGlnICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGggJiYgbiA8IG1heERpZykgeworICAgICAgICAgICAgICAgIC8vIFRFTVBPUkFSWQorICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlc3RvcmUgdGhlIGNoYXIzMi1iYXNlZCBjb2RlIHdoZW4gVUNoYXJhY3Rlci5kaWdpdAorICAgICAgICAgICAgICAgIC8vIGlzIHdvcmtpbmcgKEJ1ZyA2NikuCisKKyAgICAgICAgICAgICAgICAvL2MgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAvL2RpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgZGlnID0gQ2hhcmFjdGVyLmRpZ2l0KChjaGFyKWMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGlmIChkaWcgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0IDw8IGJpdHNQZXJEaWdpdCkgfCBkaWc7CisgICAgICAgICAgICAgICAgLy9vZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuIDwgbWluRGlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCBDLXN0eWxlIGVzY2FwZXMgaW4gdGFibGUgKi8KKyAgICAgICAgZm9yIChpPTA7IGk8VU5FU0NBUEVfTUFQLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaWYgKGMgPT0gVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVORVNDQVBFX01BUFtpKzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChjIDwgVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBubyBzcGVjaWFsIGZvcm1zIGFyZSByZWNvZ25pemVkLCB0aGVuIGNvbnNpZGVyCisgICAgICAgICAqIHRoZSBiYWNrc2xhc2ggdG8gZ2VuZXJpY2FsbHkgZXNjYXBlIHRoZSBuZXh0IGNoYXJhY3Rlci4gKi8KKyAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYWxsIGVzY2FwZXMgaW4gYSBnaXZlbiBzdHJpbmcgdXNpbmcgdW5lc2NhcGVBdCgpLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIGludmFsaWQgZXNjYXBlIGlzCisgICAgICogc2Vlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50WzFdOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IGk7CisgICAgICAgICAgICAgICAgaW50IGUgPSB1bmVzY2FwZUF0KHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuc3Vic3RyaW5nKGktMSwgTWF0aC5taW4oaSs4LCBzLmxlbmd0aCgpKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBsb2FkKFJlYWRlciBpbnB1dFJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUG9zaXhDaGFyTWFwIG9sZE1hcCA9IFN5bWJvbFRyYW5zaXRpb24uZ2V0Q2hhck1hcCgpOworICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAobnVsbCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgVE9LRU4gPSAxOworICAgICAgICAgICAgZmluYWwgaW50IEVPRiA9IDI7CisgICAgICAgICAgICBmaW5hbCBpbnQgRU9MID0gMzsKKyAgICAgICAgICAgIGZpbmFsIGludCBSQU5HRSA9IDQ7CisgICAgICAgICAgICBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzMSA9IHsKKyAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMDogc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEVPRiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICAgLy9ncmFiIGZpcnN0IHdvcmQKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNwYWNlVHJhbnNpdGlvbi5TUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCBUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCBUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlczIgPSB7CisgICAgICAgICAgICAgICAgeyAgIC8vVGhlc2Ugc3RhdGVzIG9ubHkgcmV0dXJuIDxzeW1ib2xzPi4gIEFsbAorICAgICAgICAgICAgICAgICAgICAvL290aGVyIHRleHQgaXMgaWdub3JlZC4KKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKEVPRiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKFRPS0VOKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFJhbmdlVHJhbnNpdGlvbihSQU5HRSksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgMCkKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBpbnB1dCA9IG5ldyBQdXNoYmFja1JlYWRlcihpbnB1dFJlYWRlcik7CisgICAgICAgICAgICBMZXggcCA9IG5ldyBMZXgoc3RhdGVzMSwgaW5wdXQpOworICAgICAgICAgICAgaW50IHN0YXRlOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0gd2hpbGUgKChzdGF0ZSAhPSBFT0YpICYmICFwLmRhdGFFcXVhbHMoIkNIQVJNQVAiKSk7CisgICAgICAgICAgICBwLmFjY2VwdChFT0wpOworICAgICAgICAgICAgaWYgKHN0YXRlICE9IEVPRiApIHsKKyAgICAgICAgICAgICAgICBwID0gbmV3IExleChzdGF0ZXMyLCBpbnB1dCk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIHdoaWxlIChzdGF0ZSAhPSBFT0YgKSB7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICBpZihwLmRhdGFFcXVhbHMoIkVORENIQVJNQVAiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdGF0ZSA9PSBFT0wpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHAuZGF0YUVxdWFscygiRU5EQ0hBUk1BUCIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkYXRhID0gdW5lc2NhcGUocC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGFydHNXaXRoKCI8VSIpIHx8IGRhdGEuc3RhcnRzV2l0aCgiI1UiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBudW1EYXRhID0gZGF0YS5zdWJzdHJpbmcoMixkYXRhLmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IEludGVnZXIucGFyc2VJbnQobnVtRGF0YSwgMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZU1hcHBpbmcoa2V5LCAiIisoY2hhcilkaWdpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihkYXRhLnN0YXJ0c1dpdGgoIlxceCIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gZW5jRGF0YSA9IG5ldyBieXRlWzEwMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSA9IGhleFRvQnl0ZShkYXRhLGVuY0RhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0RGF0YSA9IG5ldyBTdHJpbmcoZW5jRGF0YSwwLG51bSxlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lTWFwcGluZyhrZXksdERhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lTWFwcGluZyhrZXksYnl0ZVRvQ2hhcihkYXRhLGVuY29kaW5nKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBrZXk9cC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb21lIGhlcmUgb25seSBpZiB0aGVyZSBpcyBhIHJhbmdlIHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgIGlmKCBzdGF0ZSA9PVJBTkdFKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJlZ2luID0ga2V5OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZW5kID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkYXRhID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBlbmNEYXRhID0gbmV3IGJ5dGVbNl07CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtID0gaGV4VG9CeXRlKGRhdGEsZW5jRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdERhdGEgPSBuZXcgU3RyaW5nKGVuY0RhdGEsMCxudW0sZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1ZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHZhbCA9IGdldEludChiZWdpbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmVnaW5SYW5nZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kUmFuZ2UgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsID09IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IGdldEludCgoU3RyaW5nKXRhYmxlLmdldChiZWdpbikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbCE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luUmFuZ2UgPSB2YWxbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gZ2V0SW50KGVuZCk7ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gZ2V0SW50KChTdHJpbmcpdGFibGUuZ2V0KGVuZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbCE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFJhbmdlID0gdmFsWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1ZhbCA9IGtleS5zdWJzdHJpbmcoMCx2YWxbMF0pOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gKGludCkoY2hhcil0RGF0YS5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShiZWdpblJhbmdlIDw9IGVuZFJhbmdlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKChzdHJpbmdWYWwrYmVnaW5SYW5nZSsiPiIpLCIiKyhjaGFyKWRpZ2l0KyspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luUmFuZ2UrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAga2V5PXAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy9zdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFT0ZFeGNlcHRpb24gZSkgeworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG9sZE1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIGludFtdIGdldEludChTdHJpbmcgZGF0YSl7CisgICAgICAgIGlmKGRhdGEgPT0gbnVsbCl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpbnQgaT0wOworICAgICAgICBpbnRbXSByZXRWYWwgPSBuZXcgaW50WzJdOworICAgICAgICBpbnQgbGVuID1kYXRhLmxlbmd0aCgpOworICAgICAgICB3aGlsZShpPCBsZW4peworICAgICAgICAgICAgaWYoKGRhdGEuY2hhckF0KGkpKS0weDMwIDwgKDB4MzktMHgzMCkpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGlmKGkgPCBsZW4peworICAgICAgICAgICAgU3RyaW5nIHN1YiA9ZGF0YS5zdWJzdHJpbmcoaSxsZW4tMSk7CisgICAgICAgICAgICByZXRWYWxbMF0gPWk7CisgICAgICAgICAgICByZXRWYWxbMV09SW50ZWdlci5wYXJzZUludChzdWIsMTApOworICAgICAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgcHVibGljIGludCBoZXhUb0J5dGUoU3RyaW5nIGRhdGEsIGJ5dGVbXSByZXR2YWwpeworICAgICAgICBTdHJpbmcgdERhdGEgPSBkYXRhOworICAgICAgICBpbnQgaT0wOworICAgICAgICBmb3IoaT0wO2kgPCBkYXRhLmxlbmd0aCgpLzQ7IGkrKyl7CisgICAgICAgICAgICBpZih0RGF0YS5jaGFyQXQoMCk9PSdcXCcgJiYgdERhdGEuY2hhckF0KDEpPT0neCcpeworICAgICAgICAgICAgICAgIFN0cmluZyBudW1EYXRhID0gdERhdGEuc3Vic3RyaW5nKDIsNCk7CisgICAgICAgICAgICAgICAgcmV0dmFsW2ldID0gKGJ5dGUpIEludGVnZXIucGFyc2VJbnQobnVtRGF0YSwxNik7CisgICAgICAgICAgICAgICAgdERhdGEgPSB0RGF0YS5zdWJzdHJpbmcoNCx0RGF0YS5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgCisgICAgICAgIHJldHVybiBpOworICAgIH0gIAorICAgIHB1YmxpYyBTdHJpbmcgYnl0ZVRvQ2hhcihTdHJpbmcgZGF0YSwgU3RyaW5nIGVuY29kaW5nKSAKKyAgICAgICAgdGhyb3dzIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBieXRlW10gYnl0ZXMgPSBuZXcgYnl0ZVtkYXRhLmxlbmd0aCgpXTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8ZGF0YS5sZW5ndGgoKTsgaSsrKXsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBkYXRhLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmKGNoID4gMHhGRil7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkJ5dGVzIGluIHRoZSBzdHJpbmcgYXJlIGdyZWF0ZXIgdGhhbiAweEZGIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBieXRlc1tpXSA9IChieXRlKSBjaDsgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ5dGVzLGVuY29kaW5nKTsKKyAgICB9ICAgICAgCisgICAgcHVibGljIHZvaWQgZGVmaW5lTWFwcGluZyhTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKSB7CisgICAgICAgIHRhYmxlLnB1dChmcm9tLCB0byk7CisgICAgICAgIGJhY2tUYWJsZSA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdW5kZWZpbmVNYXBwaW5nKFN0cmluZyBmcm9tKSB7CisgICAgICAgIHRhYmxlLnJlbW92ZShmcm9tKTsKKyAgICAgICAgYmFja1RhYmxlID0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzd2FwKCkgeworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIEVudW1lcmF0aW9uIGVudW1lciA9IHRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGVudW1lci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZW51bWVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgY29kZSA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuZXdLZXkgPSB0b1N5bWJvbChjb2RlKTsKKyAgICAgICAgICAgIFN0cmluZyBuZXdDb2RlID0gdG9MaXRlcmFsKGtleSk7CisgICAgICAgICAgICBTdHJpbmcgcHJldkNvZGUgPSAoU3RyaW5nKW5ld1RhYmxlLmdldChuZXdLZXkpOworICAgICAgICAgICAgaWYgKHByZXZDb2RlID09IG51bGwgfHwgcHJldkNvZGUuY29tcGFyZVRvKG5ld0NvZGUpID4gMCkgeworICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dChuZXdLZXksIG5ld0NvZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRhYmxlID0gbmV3VGFibGU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHRvTGl0ZXJhbChTdHJpbmcgY29kZSkgeworICAgICAgICBTdHJpbmcgZGF0YSA9IGNvZGUuc3Vic3RyaW5nKDIsY29kZS5sZW5ndGgoKS0xKTsKKyAgICAgICAgaW50IGRpZ2l0ID0gSW50ZWdlci5wYXJzZUludChkYXRhLCAxNik7CisgICAgICAgIHJldHVybiAiIiArIChjaGFyKWRpZ2l0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyB0b1N5bWJvbChTdHJpbmcgY29kZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgZXNjYXBlQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKCI+Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29kZS5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSAoKGludCljb2RlLmNoYXJBdChpKSkgJiAweEZGRkY7CisgICAgICAgICAgICB3aGlsZSAoKHZhbHVlID4gMCkgfHwgKGVzY2FwZUJ1ZmZlci5sZW5ndGgoKSA8IDUpKSB7CisgICAgICAgICAgICAgICAgY2hhciBkaWdpdCA9IENoYXJhY3Rlci5mb3JEaWdpdCh2YWx1ZSAlIDE2LCAxNik7CisgICAgICAgICAgICAgICAgZXNjYXBlQnVmZmVyLmFwcGVuZChkaWdpdCk7CisgICAgICAgICAgICAgICAgdmFsdWUgPj49IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZXNjYXBlQnVmZmVyLmFwcGVuZCgiVTwiKTsKKyAgICAgICAgZXNjYXBlQnVmZmVyLnJldmVyc2UoKTsKKyAgICAgICAgcmV0dXJuIGVzY2FwZUJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkdW1wKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgZXNjYXBlQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBFbnVtZXJhdGlvbiBlbnVtZXIgPSB0YWJsZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlbnVtZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW1lci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIGNvZGUgPSAoU3RyaW5nKXRhYmxlLmdldChrZXkpOworICAgICAgICAgICAgb3V0LnByaW50KGtleSk7CisgICAgICAgICAgICBvdXQucHJpbnQoIiAgICAgICA8VSIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2RlLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSAoKGludCljb2RlLmNoYXJBdChpKSkgJiAweEZGRkY7CisgICAgICAgICAgICAgICAgZXNjYXBlQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHZhbHVlID4gMCkgfHwgKGVzY2FwZUJ1ZmZlci5sZW5ndGgoKSA8IDQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgZGlnaXQgPSBDaGFyYWN0ZXIuZm9yRGlnaXQodmFsdWUgJSAxNiwgMTYpOworICAgICAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPj49IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVzY2FwZUJ1ZmZlci5yZXZlcnNlKCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KGVzY2FwZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI+Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIG1hcEtleShmaW5hbCBTdHJpbmcga2V5KSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAoU3RyaW5nKXRhYmxlLmdldChrZXkpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRNYXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBhcmVudE1hcC5tYXBLZXkoa2V5KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0ga2V5OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgYmFja21hcFZhbHVlKGZpbmFsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBpZiAoYmFja1RhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGJhY2tUYWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudW1lciA9IHRhYmxlLmtleXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChlbnVtZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gKFN0cmluZyl0YWJsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBiYWNrVGFibGUucHV0KHZhbCwga2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKFN0cmluZyliYWNrVGFibGUuZ2V0KHZhbHVlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAocGFyZW50TWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJlbnRNYXAuYmFja21hcFZhbHVlKHZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgRW51bWVyYXRpb24ga2V5cygpIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlLmtleXMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVudW1lcmF0aW9uIGVsZW1lbnRzKCkgeworICAgICAgICByZXR1cm4gdGFibGUuZWxlbWVudHMoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUG9zaXhDaGFyTWFwIG1hcDEgPSBuZXcgUG9zaXhDaGFyTWFwKAorICAgICAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHMiLAorICAgICAgICAgICAgICAgICJJQk0tMTEyOS5VUE1BUDEwMC50eHQiKTsKKyAgICAgICAgICAgIG1hcDEuc3dhcCgpOworICAgICAgICAgICAgbWFwMS5kdW1wKFN5c3RlbS5vdXQpOworICAgICAgICAKKyAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChtYXAxKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOyBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgCisgICAgICAgICAgICAvL1Bvc2l4Q2hhck1hcCBtYXAgPSBuZXcgUG9zaXhDaGFyTWFwKCJDOlxccHJvamVjdHNcXGRhdGFcXElTTy04ODU5LTEuaHRtbCIpOworICAgICAgICAgICAgUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoCisgICAgICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwcyIsCisgICAgICAgICAgICAgICAgImlibTExMjkudHh0Iik7CisgICAgICAgICAgICBtYXAuZHVtcChTeXN0ZW0ub3V0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDb2xsYXRpb25CdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDEzOWZmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDb2xsYXRpb25CdWlsZGVyLmphdmEKQEAgLTAsMCArMSwzOTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworY2xhc3MgUG9zaXhDb2xsYXRpb25CdWlsZGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1dFSUdIVFMgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUE9TSVRJT04gPSA0OworICAgIHByaXZhdGUgc3RhdGljIGludCBuZXh0Q2hhck51bWJlciA9IDE7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgd2VpZ2h0U3ltYm9scyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBjb250cmFjdGlvbnMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgcnVsZXMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlIGxhc3RSdWxlID0gbnVsbDsKKyAgICBwcml2YXRlIFBvc2l4Q2hhck1hcCBtYXA7CisgICAgcHJpdmF0ZSBTb3J0ZWRWZWN0b3Igb3JkZXI7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IEZJUlNUX1dFSUdIVF9DSEFSID0gMHgwMDAwRjdGRjsKKyAgICBwcml2YXRlIGludCBuZXh0V2VpZ2h0Q2hhciA9IEZJUlNUX1dFSUdIVF9DSEFSOworICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZSBpZ25vcmVSdWxlOyAgIC8vcnVsZSBmb3IgdGhlIGNvbGxhdGluZy1zeW1ib2wgSUdOT1JFCisgICAgCisgICAgcHVibGljIGNsYXNzIENvbGxhdGlvblJ1bGUgeworICAgICAgICBpbnQgY2hhck51bWJlcjsKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICBpbnQgbmV4dFdlaWdodCA9IDA7CisgICAgICAgIFN0cmluZ1tdIHdlaWdodFNvdXJjZSA9IG5ldyBTdHJpbmdbTUFYX1dFSUdIVFNdOworICAgICAgICBpbnQgd2VpZ2h0W11bXSA9IG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ29sbGF0aW9uUnVsZShTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgICAgICBjaGFyTnVtYmVyPSBuZXh0Q2hhck51bWJlcisrOworICAgICAgICAgICAgdmFsdWUgPSBzeW1ib2w7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSBzeW1ib2w7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKG1hcC5iYWNrbWFwVmFsdWUoc3ltYm9sKSk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCJcdFx0Iik7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlKENvbGxhdGlvblJ1bGUgb3RoZXIsIGludCBjb21wb3NpdGlvbikgeworICAgICAgICAgICAgY2hhck51bWJlciA9IG90aGVyLmNoYXJOdW1iZXI7CisgICAgICAgICAgICB2YWx1ZSA9IG90aGVyLnZhbHVlOworICAgICAgICAgICAgbmV4dFdlaWdodCA9IG90aGVyLm5leHRXZWlnaHQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gb3RoZXIud2VpZ2h0U291cmNlW2ldOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgPiBjb21wb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSAiIitzb3VyY2UuY2hhckF0KGNvbXBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAKKyAgICAgICAvL0hleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIG15VHJhbnNsaXQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIjxVIyMjMD4iKTsKKyAgICAgICAgcHVibGljIHZvaWQgYWRkV2VpZ2h0KFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgIC8vICAgUmVwbGFjZWFibGVTdHJpbmcgdFN5bWJvbCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzeW1ib2wpOworICAgICAgICAgICAvLyBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodFN5bWJvbCk7CisgICAgICAgICAgICAgICAgLy9saW1pdCB0aGUgc2l6ZSBvZiBhIHNpbmdsZSB3ZWlnaHQKKyAgICAgICAgICAgIHN5bWJvbCA9IHVuZXNjYXBlKHN5bWJvbCk7ICAgIAorICAgICAgICAgICAgaWYgKHN5bWJvbC5sZW5ndGgoKSA+IE1BWF9DT01QT1NJVElPTikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogV2VpZ2h0cyBvZiBjb21wb3NpdGlvbiBncmVhdGVyIHRoYW4gIitNQVhfQ09NUE9TSVRJT04rIiB3ZXJlIHRydW5jYXRlZC4iKTsKKyAgICAgICAgICAgICAgICBzeW1ib2wgPSBzeW1ib2wuc3Vic3RyaW5nKDAsIE1BWF9DT01QT1NJVElPTik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9saW1pdCB0aGUgbnVtYmVyIG9mIHdlaWdodHMKKyAgICAgICAgICAgIGlmIChuZXh0V2VpZ2h0IDwgTUFYX1dFSUdIVFMpIHsKKyAgICAgICAgICAgICAgICBpZiAobmV4dFdlaWdodCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiOyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN5bWJvbC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQobWFwLmJhY2ttYXBWYWx1ZSgiIitzeW1ib2wuY2hhckF0KGkpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdlaWdodFNvdXJjZVtuZXh0V2VpZ2h0KytdID0gc3ltYm9sOworICAgICAgICAgICAgICAgIHdlaWdodCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKENvbGxhdGlvblJ1bGUgb3RoZXIpIHsKKyAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKSByZXR1cm4gY29tcGFyZShpZ25vcmVSdWxlKTsKKyAgICAgICAgICAgIHJlc29sdmVXZWlnaHRzKCk7CisgICAgICAgICAgICBvdGhlci5yZXNvbHZlV2VpZ2h0cygpOworICAgICAgICAgICAgaW50IGNvbXBhcmVTaXplID0gTWF0aC5taW4oZ2V0U2l6ZSgpLCBvdGhlci5nZXRTaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb21wYXJlU2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfV0VJR0hUUzsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWZmID0gd2VpZ2h0W2pdW2ldIC0gb3RoZXIud2VpZ2h0W2pdW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtKGkrMSk7CisgICAgICAgICAgICAgICAgICAgIH0gaWYgKGRpZmYgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSsxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGdldFNpemUoKSAtIG90aGVyLmdldFNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc011bHRpV2VpZ2h0KCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFNpemUoKSA+IDE7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXRTaXplKCkgeworICAgICAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCB3ZWlnaHRTb3VyY2UubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzaXplID0gTWF0aC5tYXgoc2l6ZSwgd2VpZ2h0U291cmNlW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb2xsYXRpb25SdWxlIGdldENvbXBvbmVudChpbnQgbmR4KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvblJ1bGUodGhpcywgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3ltYm9sKCkgeworICAgICAgICAgICAgU3RyaW5nIG5ld1ZhbHVlID0gaXNDb250cmFjdGlvbigpOworICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gaXNXZWlnaHRTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFN0cmluZyBpc0NvbnRyYWN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpY29udHJhY3Rpb25zLmdldCh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaXNXZWlnaHRTeW1ib2woKSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZyl3ZWlnaHRTeW1ib2xzLmdldCh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxhdGlvblJ1bGUgc2Vla3NUb1J1bGUoKSB7CisgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGNvbXA7CisgICAgICAgICAgICBpZiAoZ2V0U2l6ZSgpIDw9IDEpIHsKKyAgICAgICAgICAgICAgICBjb21wID0gdGhpczsgICAgLy9zYXZlIGFuIG9iamVjdCBjcmVhdGlvbgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wID0gZ2V0Q29tcG9uZW50KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG5keCA9IG9yZGVyLmluZGV4T2YoY29tcCk7CisgICAgICAgICAgICBpZiAobmR4ID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSBleHA7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBleHAgPSAoQ29sbGF0aW9uUnVsZSlvcmRlci5lbGVtZW50QXQobmR4LS0pOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5keCA+IDAgJiYgZXhwLmdldFNpemUoKSA+IDEpOworICAgICAgICAgICAgICAgIHJldHVybiBleHA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRFeHBhbnNpb24oKSB7CisgICAgICAgICAgICBpZiAoZ2V0U2l6ZSgpIDw9IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGV4cGFuc2lvbiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGdldFNpemUoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgY29tcCA9IGdldENvbXBvbmVudChqKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5keCA9IG9yZGVyLmluZGV4T2YoY29tcCk7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgZXhwOworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBleHAgPSAoQ29sbGF0aW9uUnVsZSlvcmRlci5lbGVtZW50QXQobmR4LS0pOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChuZHggPj0gMCAmJiBleHAuZ2V0U2l6ZSgpID4gMSk7CisgICAgICAgICAgICAgICAgICAgIGV4cGFuc2lvbi5hcHBlbmQoZXhwLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGFuc2lvbi50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnRvU3RyaW5nKCk7CisvKiAgICAgICAgICByZXNvbHZlV2VpZ2h0cygpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2hhck51bWJlcik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgoaXNXZWlnaHRTeW1ib2woKSAhPSBudWxsKT8iVyI6IiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1dFSUdIVFM7IGkrKykgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQod2VpZ2h0U291cmNlW2ldKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGdldFNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiWyAiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9XRUlHSFRTOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHcgPSB3ZWlnaHRbaV1bal07CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodyk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworKi8KKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIHZvaWQgcmVzb2x2ZVdlaWdodHMoKSB7CisgICAgICAgICAgICBpZiAod2VpZ2h0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB3ZWlnaHQgPSBuZXcgaW50W01BWF9DT01QT1NJVElPTl1bTUFYX1dFSUdIVFNdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFYX1dFSUdIVFM7IGorKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3ltYm9sID0gd2VpZ2h0U291cmNlW2pdOworICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9sLmxlbmd0aCgpIDw9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodFswXVtqXSA9IG9yZGluYWxpdHlPZihzeW1ib2wpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3ltYm9sLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBzeW1ib2wuY2hhckF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodFtpXVtqXSA9IG9yZGluYWxpdHlPZigiIitjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUG9zaXhDb2xsYXRpb25CdWlsZGVyKFBvc2l4Q2hhck1hcCBtYXApIHsKKyAgICAgICAgdGhpcy5tYXAgPSBtYXA7CisgICAgICAgIFN0cmluZyBpZ25vcmVTeW1ib2wgPSBkZWZpbmVXZWlnaHRTeW1ib2woIklHTk9SRSIpOworICAgICAgICBpZ25vcmVSdWxlID0gbmV3IENvbGxhdGlvblJ1bGUoaWdub3JlU3ltYm9sKTsKKyAgICAgICAgcnVsZXMucHV0KGlnbm9yZVN5bWJvbCwgaWdub3JlUnVsZSk7CisgICAgICAgIGxhc3RSdWxlID0gaWdub3JlUnVsZTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319Cit9CisKKyAgICBwdWJsaWMgU3RyaW5nIGRlZmluZVdlaWdodFN5bWJvbChTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGMgPSBuZXh0RnJlZVdlaWdodENoYXIoKTsKKyAgICAgICAgbWFwLmRlZmluZU1hcHBpbmcoc3ltYm9sLCBjKTsKKyAgICAgICAgd2VpZ2h0U3ltYm9scy5wdXQoYywgc3ltYm9sKTsKKyAgICAgICAgd2VpZ2h0U3ltYm9scy5wdXQoc3ltYm9sLCBjKTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZGVmaW5lQ29udHJhY3Rpb24oU3RyaW5nIHN5bWJvbCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGMgPSBuZXh0RnJlZVdlaWdodENoYXIoKTsKKyAgICAgICAgbWFwLmRlZmluZU1hcHBpbmcoc3ltYm9sLCBjKTsKKyAgICAgICAgY29udHJhY3Rpb25zLnB1dChjLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBuZXh0RnJlZVdlaWdodENoYXIoKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgU3RyaW5nIG1hcHBlZFNvdXJjZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgcmVzdWx0ID0gIiIrKGNoYXIpbmV4dFdlaWdodENoYXItLTsKKyAgICAgICAgICAgIG1hcHBlZFNvdXJjZSA9IG1hcC5iYWNrbWFwVmFsdWUocmVzdWx0KTsKKyAgICAgICAgfSB3aGlsZSAocmVzdWx0ICE9IG1hcHBlZFNvdXJjZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8qKgorICAgICAqIHVuZXNjYXBlIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQgPFUjIyMjPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlKFN0cmluZyBzcmMpeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbWF4RGlnID0gNDsKKyAgICAgICAgaWYoc3JjID09IG51bGwpeworICAgICAgICAgICAgcmV0dXJuIHNyYzsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3JjTGVuPSBzcmMubGVuZ3RoKCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHNyY0xlbjtpKyspeworICAgICAgICAgICAgY2hhciBjID0gc3JjLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmKGMgPT0gJzwnKXsKKyAgICAgICAgICAgICAgIGlmKHNyY0xlbiA+IGkrMSl7CisgICAgICAgICAgICAgICAgICAgY2hhciBjMiA9IHNyYy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICAgICBpZihjMiA9PSAnVScgJiYgKGkrbWF4RGlnKzEpPCBzcmNMZW4peworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHNyYy5jaGFyQXQoaSttYXhEaWcpPT0gJz4nKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3ViU3RyID0gc3JjLnN1YnN0cmluZyhpLGkrbWF4RGlnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIgdmFsID0gSW50ZWdlci52YWx1ZU9mKHN1YlN0ciwxNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIHZhbC5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN1YlN0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gbWF4RGlnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNyYy5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogVGhlIGVzY2FwZSBzZXF1ZW5jZSBpcyBub3QgdGVybWluYXRlZCBhdCAiICsgaSArIiBpbiBzdHJpbmc6ICIgKyBzcmMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjMik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIGludCBvcmRpbmFsaXR5T2YoU3RyaW5nIHN5bWJvbCkgeworLy8gICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIG5ld1RyYW5zbGl0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCk7CisvLyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgdFN5bWJvbCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzeW1ib2wpOworLy8gICAgICAgIG5ld1RyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodFN5bWJvbCk7CisgICAgICAgIHN5bWJvbCA9IHVuZXNjYXBlKHN5bWJvbCk7CisgICAgICAgIENvbGxhdGlvblJ1bGUgdyA9IChDb2xsYXRpb25SdWxlKXJ1bGVzLmdldChzeW1ib2wpOworICAgICAgICBpZiAodyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gdy5jaGFyTnVtYmVyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludCgiRVJST1I6IFdlaWdodCBzeW1ib2wgbm90IGZvdW5kOiAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IHN5bWJvbC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gc3ltYm9sLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50KCJcXHUiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50KEhFWF9ESUdJVFsoYyAmIDB4MEYwMDApID4+IDEyXSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50KEhFWF9ESUdJVFsoYyAmIDB4MEYwMCkgPj4gOF0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludChIRVhfRElHSVRbKGMgJiAweDAwRjApID4+IDRdKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oSEVYX0RJR0lUWyhjICYgMHgwMDBGKV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgICAgICAgV2VpZ2h0IGdpdmVuIG1heGltdW0gcG9zc2libGUgdmFsdWUuIik7CisgICAgICAgICAgICByZXR1cm4gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIH0KKyAgICB9CisvLyAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBteVRyYW5zbGl0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCI8VSMjIzA+Iik7CisgICAgcHVibGljIHZvaWQgYWRkUnVsZShTdHJpbmcgc3ltYm9sKSB7CisgIC8vICAgICAgUmVwbGFjZWFibGVTdHJpbmcgdFN5bWJvbCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzeW1ib2wpOworICAgLy8gICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0U3ltYm9sKTsKKyAgICAgICAgc3ltYm9sID0gdW5lc2NhcGUoc3ltYm9sKTsKKyAgICAgICAgaWYgKHN5bWJvbC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogVW5kZWZpbmVkIGVsZW1lbnQgJyIrc3ltYm9sKyInLiAgY29sbGF0aW5nLXN5bWJvbCBnZW5lcmF0ZWQuIik7CisgICAgICAgICAgICBzeW1ib2wgPSBkZWZpbmVXZWlnaHRTeW1ib2woc3ltYm9sKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBvcmRlciA9IG51bGw7CisgICAgICAgIGxhc3RSdWxlID0gbmV3IENvbGxhdGlvblJ1bGUoc3ltYm9sKTsKKyAgICAgICAgcnVsZXMucHV0KHN5bWJvbCwgbGFzdFJ1bGUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRSdWxlKENvbGxhdGlvblJ1bGUgcnVsZSkgeworICAgICAgICBvcmRlciA9IG51bGw7CisgICAgICAgIGxhc3RSdWxlID0gcnVsZTsKKyAgICAgICAgcnVsZXMucHV0KHJ1bGUudmFsdWUsIHJ1bGUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRXZWlnaHQoU3RyaW5nIHdlaWdodCkgeworICAgICAgICBpZiAod2VpZ2h0Lmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgLy9jaGVjayB0byBzZWUgaWYgaXQncyBhIGJvZ3VzIHdlaWdodCBzeW1ib2wuCisgICAgICAgICAgICB3ZWlnaHQgPSBtYXAubWFwS2V5KHdlaWdodCk7CisgICAgICAgIH0KKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBsYXN0UnVsZS5hZGRXZWlnaHQod2VpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0UnVsZXMoKSB7CisgICAgICAgIHJldHVybiBydWxlcy5lbGVtZW50cygpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IgZ2V0U29ydE9yZGVyKCkgeworICAgICAgICBpZiAob3JkZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgb3JkZXIgPSBuZXcgU29ydGVkVmVjdG9yKAorICAgICAgICAgICAgICAgIG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoZmluYWwgT2JqZWN0IGksIGZpbmFsIE9iamVjdCBqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBDb2xsYXRpb25SdWxlIG8xID0gKENvbGxhdGlvblJ1bGUpaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIENvbGxhdGlvblJ1bGUgbzIgPSAoQ29sbGF0aW9uUnVsZSlqOworICAgICAgICAgICAgICAgICAgICAgICAgaWYobzEgIT1udWxsICYmIG8yICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gdzEgPSBvMS5pc1dlaWdodFN5bWJvbCgpICE9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiB3MiA9IG8yLmlzV2VpZ2h0U3ltYm9sKCkgIT0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zb3J0IHdlaWdodHMgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodzEgJiYgIXcyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF3MSAmJiB3MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbzEuY29tcGFyZShvMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIG9yZGVyLmFkZEVsZW1lbnRzKHJ1bGVzLmVsZW1lbnRzKCkpOworICAgICAgICAgICAgICAgIC8vcmVtb3ZlIHdlaWdodCBzeW1ib2xzIGZyb20gdGhlIGxpc3QKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9yZGVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSByID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChyLmlzV2VpZ2h0U3ltYm9sKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcmRlci5yZW1vdmVFbGVtZW50cygwLCBpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXI7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfRElHSVQgPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywKKyAgICAgICAgICAgICAgICAgICAgICc4JywnOScsJ0EnLCdCJywnQycsJ0QnLCdFJywnRid9OworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4VG9OZXV0cmFsQ29udmVydGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4VG9OZXV0cmFsQ29udmVydGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzljYjBiNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIuamF2YQpAQCAtMCwwICsxLDEwNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIgZXh0ZW5kcyBMb2NhbGVDb252ZXJ0ZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19DVFlQRSAgICAgICAgICAgPSAweDAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19USU1FICAgICAgICAgICAgPSAweDAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19OVU1FUklDICAgICAgICAgPSAweDA0OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19NT05FVEFSWSAgICAgICAgPSAweDA4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19NRVNTQUdFUyAgICAgICAgPSAweDEwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19NRUFTVVJFTUVOVCAgICAgPSAweDExOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19BRERSRVNTICAgICAgICAgPSAweDEyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19QQVBFUiAgICAgICAgICAgPSAweDEzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19OQU1FICAgICAgICAgICAgPSAweDE0OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19JREVOVElGSUNBVElPTiAgPSAweDE1OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMQ19URUxFUEhPTkUgICAgICAgPSAweDE2OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBtYXNrcyA9IHsgCisgICAgICAgIExDX0NUWVBFLCBMQ19USU1FLCBMQ19OVU1FUklDLCBMQ19NT05FVEFSWSwgTENfTUVTU0FHRVMsCisgICAgICAgIExDX01FQVNVUkVNRU5ULExDX0FERFJFU1MsTENfUEFQRVIsTENfTkFNRSxMQ19JREVOVElGSUNBVElPTiwKKyAgICAgICAgTENfVEVMRVBIT05FCisgICAgICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHByb3BzID0geworICAgICAgICAvL0xDX0NUWVBFCisgICAgICAgIHsgCisgICAgICAgICAgICAidXBwZXIiLCAibG93ZXIiLCAiYWxwaGEiLCAiZGlnaXQiLCAic3BhY2UiLCAiY250cmwiLCAKKyAgICAgICAgICAgICJwdW5jdCIsICJncmFwaCIsICJwcmludCIsICJ4ZGlnaXQiLCAiYmxhbmsiLCAKKyAgICAgICAgICAgICJ0b3VwcGVyIiwgInRvbG93ZXIiIAorICAgICAgICB9LAorICAgICAgICAvL0xDX1RJTUUKKyAgICAgICAgeworICAgICAgICAgICAgImFiZGF5IiwgImRheSIsICJhYm1vbiIsICJtb24iLCAiZF90X2ZtdCIsICJkX2Z0bSIsICJ0X2ZtdCIsIAorICAgICAgICAgICAgImFtX3BtIiwgInRfZm10X2FtcG0iLCAiZXJhIiwgImVyYV95ZWFyIiwgImVyYV9kX2ZtdCIsICJhbHRfZGlnaXRzIgorICAgICAgICB9LAorICAgICAgICAvL0xDX05VTUVSSUMKKyAgICAgICAgeworICAgICAgICAgICAgImRlY2ltYWxfcG9pbnQiLCAidGhvdXNhbmRzX3NlcCIsICJncm91cGluZyIKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19NT05FVEFSWQorICAgICAgICB7CisgICAgICAgICAgICAiaW50X2N1cnJfc3ltYm9sIiwgImN1cnJlbmN5X3N5bWJvbCIsICJtb25fZGVjaW1hbF9wb2ludCIsCisgICAgICAgICAgICAibW9uX3Rob3VzYW5kc19zZXAiLCAibW9uX2dyb3VwaW5nIiwgInBvc2l0aXZlX3NpZ24iLAorICAgICAgICAgICAgIm5lZ2F0aXZlX3NpZ24iLCAiaW50X2ZyYWNfZGlnaXRzIiwgImZyYWNfZGlnaXRzIiwgInBfY3NfcHJlY2VkZXMiLAorICAgICAgICAgICAgInBfc2VwX2J5X3NwYWNlIiwgIm5fY3NfcHJlY2VkZXMiLCAibl9zZXBfYnlfc3BhY2UiLCAicF9zaWduX3Bvc24iLAorICAgICAgICB9LAorICAgICAgICAvL0xDX01FU1NBR0VTCisgICAgICAgIHsKKyAgICAgICAgICAgICJ5ZXNleHByIiwgIm5vZXhwciIKKyAgICAgICAgfSwKKyAgICAgICAgICAgCisgICAgICAgIC8vTENfTUVBU1VSRU1FTlQKKyAgICAgICAgeworICAgICAgICAgICAibWVhc3VyZW1lbnQiCisgICAgICAgIH0sCisgICAgICAgIC8vTENfQUREUkVTUworICAgICAgICB7CisgICAgICAgICAgICJjb3B5IiwicG9zdGFsX2ZtdCIsImNvdW50cnlfbmFtZSIsImNvdW50cnlfcG9zdCIsCisgICAgICAgICAgICJjb3VudHJ5X2FiMiIsImNvdW50cnlfYWIzIiwiY291bnRyeV9udW0iLCJjb3VudHJ5X2NhciIsCisgICAgICAgICAgICJjb3VudHJ5X2lzYm4iLCJsYW5nX25hbWUiLCJsYW5nX2FiIiwibGFuZ190ZXJtIiwibGFuZ19saWIiCisgICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19QQVBFUgorICAgICAgICB7CisgICAgICAgICAgICAiaGVpZ2h0Iiwid2lkdGgiLCJjb3B5IgorICAgICAgICB9LAorICAgICAgICAvL0xDX05BTUUgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAiY29weSIsIm5hbWVfZm10IiwibmFtZV9nZW4iLCJuYW1lX21pc3MiLCJuYW1lX21yIiwibmFtZV9tcnMiLCJuYW1lX21zIiAgCisgICAgICAgIH0sCisgICAgICAgIC8vTENfSURFTlRJRklDQVRJT04KKyAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIiwic291cmNlIiwiYWRkcmVzcyIsImNvbnRhY3QiLCJlbWFpbCIsInRlbCIsImZheCIsImxhbmd1YWdlIiwKKyAgICAgICAgICAgICJ0ZXJyaXRvcnkiLCJyZXZpc2lvbiAiLCJkYXRlIiAgICAgCisgICAgICAgIH0sCisgICAgICAgIC8vTENfVEVMRVBIT05FCisgICAgICAgIHsKKyAgICAgICAgICAgICJjb3B5IiwidGVsX2ludF9mbXQiLCJ0ZWxfZG9tX2ZtdCIsImludF9zZWxlY3QiLCJpbnRfcHJlZml4IiAKKyAgICAgICAgfSwKKyAgICAgICAgCisgICAgICAgICAgICAKKyAgICB9OworICAgIHByaXZhdGUgZmluYWwgYnl0ZSBmbGFnczsKKyAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBsb2NhbGU7CisgICAgcHJpdmF0ZSBmaW5hbCBMb2NhbGUgcGFyZW50TG9jYWxlOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIHNmaWxlTmFtZTsKKyAgICBwdWJsaWMgUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIoYnl0ZSBmbGFncywgZmluYWwgTG9jYWxlIGxvY2FsZSxmaW5hbCBTdHJpbmcgZmlsZU5hbWUpIHsKKyAgICAgICAgdGhpcy5mbGFncyA9IGZsYWdzOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgdGhpcy5zZmlsZU5hbWU9ZmlsZU5hbWU7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsb2NhbGUuZ2V0Q291bnRyeSgpOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCIiLmVxdWFscyhjb3VudHJ5KSkgeworICAgICAgICAgICAgbGFuZ3VhZ2UgPSAiIjsKKyAgICAgICAgICAgIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgfSBlbHNlIGlmICgiIi5lcXVhbHModmFyaWFudCkpIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSAiIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyZW50TG9jYWxlID0gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGNvbnZlcnQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSkgCisgICAgICAgICAgICB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKy8vICAgICAgICBjb252ZXJ0TUVTU0FHRVMocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIHdyaXRlUG9zaXhDb21wRGF0YShyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydE1FQVNVUkVNRU5UKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydENPVU5UUllOVU1CRVIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0Q09VTlRSWUlTQk5OVU1CRVIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0TEFOR1VBR0VMSUIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0UEFQRVJTSVpFKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydE1PTkVUQVJZKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydE5VTUVSSUMocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0VElNRShyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRDT0xMQVRFKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXNrcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKChmbGFncyAmIG1hc2tzW2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwcm9wc1tpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcHJvcCA9IHByb3BzW2ldW2pdOworICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3QgdmFsID0gc291cmNlLmdldChwcm9wKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCBwcm9wLCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdbXVtdIGNsb25lMkRBcnIoU3RyaW5nW11bXXN0cjJEYXJyYXkpeworICAgICAgICBTdHJpbmdbXVtdIG5ld1N0cjJEQXJyID0gbmV3IFN0cmluZ1tzdHIyRGFycmF5Lmxlbmd0aF1bc3RyMkRhcnJheVswXS5sZW5ndGhdOyAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3RyMkRhcnJheS5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHN0cjJEYXJyYXlbaV0ubGVuZ3RoO2orKyl7CisgICAgICAgICAgICAgICAgbmV3U3RyMkRBcnJbaV1bal0gPSBuZXcgU3RyaW5nKHN0cjJEYXJyYXlbaV1bal0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXdTdHIyREFycjsgICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBjbG9uZTJEQXJyKE9iamVjdFtdW11zdHIyRGFycmF5KXsKKyAgICAgICAgT2JqZWN0W11bXSBuZXdTdHIyREFyciA9IG5ldyBPYmplY3Rbc3RyMkRhcnJheS5sZW5ndGhdW3N0cjJEYXJyYXlbMF0ubGVuZ3RoXTsgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPHN0cjJEYXJyYXkubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzdHIyRGFycmF5W2ldLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgIG5ld1N0cjJEQXJyW2ldW2pdID0gKE9iamVjdCkobmV3IFN0cmluZygoU3RyaW5nKXN0cjJEYXJyYXlbaV1bal0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3U3RyMkRBcnI7ICAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVQb3NpeENvbXBEYXRhKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeyAgICAgICAgCisgICAgICAgIGNvbnZlcnRNRVNTQUdFUyhyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydElERU5USUZJQ0FUSU9OKHJlc3VsdCxzb3VyY2UpOworICAgICAgICBjb252ZXJ0TkFNRUZPUk1BVChyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydEFERFJFU1NGT1JNQVQocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRURUxFUEhPTkVGT1JNQVQocmVzdWx0LHNvdXJjZSk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgY29udmVydE1FU1NBR0VTKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJNZXNzYWdlcyIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15TWVzc2FnZXMgPSBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpOworCisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgieWVzZXhwciIpOworICAgICAgICAKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgIG15TWVzc2FnZXNbMF1bMV0gID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5vZXhwciIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TWVzc2FnZXNbMV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgieWVzc3RyIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlNZXNzYWdlc1syXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJub3N0ciIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TWVzc2FnZXNbM11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIk1lc3NhZ2VzIixteU1lc3NhZ2VzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRJREVOVElGSUNBVElPTihmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiSWRlbnRpZmljYXRpb24iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBteUlkZW50aWZpY2F0aW9uID0gY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoInRpdGxlIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMF1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgic291cmNlIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJhZGRyZXNzIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsyXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJjb250YWN0Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblszXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJlbWFpbCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bNF1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgidGVsIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworCisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzVdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJmYXgiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzZdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImxhbmd1YWdlIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls3XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0ZXJyaXRvcnkiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzhdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImF1ZGllbmNlIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls5XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYXBwbGljYXRpb24iKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzEwXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImFiYnJldmlhdGlvbiIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMTFdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInJldmlzaW9uIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxMl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiZGF0ZSIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMTNdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJJZGVudGlmaWNhdGlvbiIsbXlJZGVudGlmaWNhdGlvbik7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TkFNRUZPUk1BVChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiTmFtZUZvcm1hdCIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15TmFtZUZvcm1hdCA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgibmFtZV9tciIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFsyXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21pc3MiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbM11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9tcyIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFs2XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21ycyIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFs0XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX2dlbmRlciIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFsxXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX2ZtdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIHZhbHVlID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgICAgIG15TmFtZUZvcm1hdFswXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJOYW1lRm9ybWF0IixteU5hbWVGb3JtYXQpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydEFERFJFU1NGT1JNQVQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIkFkZHJlc3NGb3JtYXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBteUFkZHJlc3NGb3JtYXQgPSggY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKSk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgicG9zdGFsX2ZtdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIHZhbHVlID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgICAgIG15QWRkcmVzc0Zvcm1hdFswXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJBZGRyZXNzRm9ybWF0IixteUFkZHJlc3NGb3JtYXQpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydFRFTEVQSE9ORUZPUk1BVChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiVGVsZXBob25lRm9ybWF0Iik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlUZWxlcGhvbmVGb3JtYXQgPSBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoInRlbF9pbnRfZm10Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgdmFsdWUgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMF1bMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImRvbV9mbXQiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICB2YWx1ZSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgICAgICBteVRlbGVwaG9uZUZvcm1hdFsxXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiaW50X3NlbGVjdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15VGVsZXBob25lRm9ybWF0WzJdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImludF9wcmVmaXgiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteVRlbGVwaG9uZUZvcm1hdFszXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIlRlbGVwaG9uZUZvcm1hdCIsbXlUZWxlcGhvbmVGb3JtYXQpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydE1PTkVUQVJZKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gREVGQVVMVF9DVVJSRU5DWV9FTEVNRU5UUyA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJDdXJyZW5jeUVsZW1lbnRzIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVsZW1lbnRzID0gKFN0cmluZ1tdKURFRkFVTFRfQ1VSUkVOQ1lfRUxFTUVOVFMuY2xvbmUoKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJjdXJyZW5jeV9zeW1ib2wiKTsKKyAgICAgICAgLy9SZXBsYWNlYWJsZSB0ZW1wID0gbmV3IFJlcGxhY2VhYmxlKHZhbHVlKTsKKyAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVsZW1lbnRzWzBdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpc291cmNlLmdldCgiaW50X2N1cnJfc3ltYm9sIik7CisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICBlbGVtZW50c1sxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm1vbl9kZWNpbWFsX3BvaW50Iik7CisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICBlbGVtZW50c1syXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkN1cnJlbmN5RWxlbWVudHMiLCBlbGVtZW50cyk7CisgICAgfQorICAgIAorCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRNRUFTVVJFTUVOVChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfTUVBU1VSRU1FTlQgPShTdHJpbmcpZ2V0RGVmYXVsdCgiTWVhc3VyZW1lbnQiKTsKKyAgICAgICAgU3RyaW5nIGVsZW1lbnRzID0gKFN0cmluZylERUZBVUxUX01FQVNVUkVNRU5UOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoIm1lYXN1cmVtZW50Iik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGlmKHZhbHVlLmVxdWFscygiMSIpKQorICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gIk1ldHJpYyI7CisgICAgICAgICAgICBlbHNlIGlmKHZhbHVlLmVxdWFscygiMiIpKQorICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gIkFtZXJpY2FuIjsKKyAgICAgICAgICAgIGVsc2UgaWYodmFsdWUuZXF1YWxzKCIzIikpCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSAiT3RoZXIiOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIk1lYXN1cmVtZW50IixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0Q09VTlRSWU5VTUJFUiAoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZyBERUZBVUxUX0NPVU5UUllOVU1CRVIgPShTdHJpbmcpZ2V0RGVmYXVsdCgiQ291bnRyeU51bWJlciIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPSAoU3RyaW5nKURFRkFVTFRfQ09VTlRSWU5VTUJFUjsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJjb3VudHJ5X251bSIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50cyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIkNvdW50cnlOdW1iZXIiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRDT1VOVFJZSVNCTk5VTUJFUiAoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZyBERUZBVUxUX0NPVU5UUllOVU1CRVIgPShTdHJpbmcpZ2V0RGVmYXVsdCgiQ291bnRyeUlTQk5OdW1iZXIiKTsKKyAgICAgICAgU3RyaW5nIGVsZW1lbnRzID0gbmV3IFN0cmluZygoU3RyaW5nKURFRkFVTFRfQ09VTlRSWU5VTUJFUik7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgiY291bnRyeV9udW0iKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgZWxlbWVudHMgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJDb3VudHJ5SVNCTk51bWJlciIsZWxlbWVudHMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydExBTkdVQUdFTElCIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfTEFOR1VBR0VMSUIgPShTdHJpbmcpZ2V0RGVmYXVsdCgiTGFuZ3VhZ2VMaWJyYXJ5VXNlIik7CisgICAgICAgIFN0cmluZyBlbGVtZW50cyA9bmV3IFN0cmluZyggKFN0cmluZylERUZBVUxUX0xBTkdVQUdFTElCKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJsYW5nX2xpYiIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50cyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIkxhbmd1YWdlTGlicmFyeVVzZSIsZWxlbWVudHMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydFBBUEVSU0laRSAoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gREVGQVVMVF9QQVBFUlNJWkU9KFN0cmluZ1tdW10pIGdldERlZmF1bHQoIlBhcGVyU2l6ZSIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIGVsZW1lbnRzPWNsb25lMkRBcnIoREVGQVVMVF9QQVBFUlNJWkUpOworICAgICAgICBTdHJpbmcgdmFsdWU9KFN0cmluZykgc291cmNlLmdldCgiaGVpZ2h0Iik7CisgICAgICAgIGlmICh2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50c1swXVsxXT0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAgKFN0cmluZykgc291cmNlLmdldCgid2lkdGgiKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgZWxlbWVudHNbMV1bMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50c1syXVsxXT0oU3RyaW5nKSJtbSI7CisgICAgICAgIAorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJQYXBlclNpemUiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgCisgICAvKiBwcml2YXRlIHZvaWQgY29udmVydElERU5USUZJQ0FUSU9OKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9JREVOVElGSUNBVElPTiA9KFN0cmluZ1tdW10pIGdldERlZmF1bHQoIklkZW50aWZpY2F0aW9uIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gZWxlbWVudHMgPSAoU3RyaW5nW11bXSlERUZBVUxUX0lERU5USUZJQ0FUSU9OLmNsb2FuZSgpOworICAgICAgICAKKyAgICB9Ki8KKyAgICBwcml2YXRlIHZvaWQgY29udmVydE5VTUVSSUMoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSkgeworICAgICAgICAvL0J1aWxkIE51bWJlckVsZW1lbnRzIGRhdGEgYXJyYXkKKyAgICAgICAgZmluYWwgU3RyaW5nW10gREVGQVVMVF9OVU1CRVJfRUxFTUVOVFMgPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiTnVtYmVyRWxlbWVudHMiKTsKKyAgICAgICAgLy9TZXQgbmV3IG51bWJlciBlbGVtZW50cyB0byBhIGNvcHkgb2YgdGhlIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUgcGFyZW50LgorICAgICAgICBmaW5hbCBTdHJpbmdbXSBlbGVtZW50cyA9IChTdHJpbmdbXSlERUZBVUxUX05VTUJFUl9FTEVNRU5UUy5jbG9uZSgpOworICAgICAgICAvL3B1dCBkZWNpbWFsIHNlcGVyYXRvciBpbnRvIHRoZSBOdW1iZXJFbGVtZW50cyBhcnJheQorICAgICAgICBTdHJpbmcgZGVjaW1hbFBvaW50ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJkZWNpbWFsX3BvaW50Iik7CisgICAgICAgIGlmIChkZWNpbWFsUG9pbnQgIT0gbnVsbCkgeyAvL2lmIHdlIGhhdmUgYSBQT1NJWCB2YWx1ZSwgc3RvbXAgb24gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIGVsZW1lbnRzWzBdID0gZGVjaW1hbFBvaW50OworICAgICAgICB9CisKKyAgICAgICAgLy9wdXQgdGhvdXNhbmRzIHNlcGVyYXRvciBpbnRvIHRoZSBOdW1iZXJFbGVtZW50cyBhcnJheQorICAgICAgICBTdHJpbmcgdGhvdXNhbmRzU2VwID0gKFN0cmluZylzb3VyY2UuZ2V0KCJ0aG91c2FuZHNfc2VwIik7CisgICAgICAgIGlmICh0aG91c2FuZHNTZXAgIT0gbnVsbCkgeyAvL2lmIHdlIGhhdmUgYSBQT1NJWCB2YWx1ZSwgc3RvbXAgb24gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIGVsZW1lbnRzWzFdID0gdGhvdXNhbmRzU2VwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL0FkZCBOdW1iZXJFbGVtZW50cyB0byByZXN1bHQKKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk51bWJlckVsZW1lbnRzIiwgZWxlbWVudHMpOworCisgICAgICAgIC8vdXNlIGNhbm9uaWNhbCBkZWNpbWFsIGFuZCB0aG91c2FuZHMgc2VwZXJhdG9ycyBmb3IgcGF0dGVybnMKKyAgICAgICAgZGVjaW1hbFBvaW50ID0gIi4iOworICAgICAgICB0aG91c2FuZHNTZXAgPSAiLCI7CisgICAgICAgIAorICAgICAgICAvL051bWJlclBhdHRlcm5zCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIERFRkFVTFRfTlVNQkVSX1BBVFRFUk5TID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHBhdHRlcm5zID0gKFN0cmluZ1tdKURFRkFVTFRfTlVNQkVSX1BBVFRFUk5TLmNsb25lKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybkRpZ2l0ID0gZWxlbWVudHNbNV07CisgICAgICAgIGZpbmFsIFN0cmluZyB6ZXJvRGlnaXQgPSBlbGVtZW50c1s0XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIG5lZ2F0aXZlU2lnbiA9IGVsZW1lbnRzWzZdOworICAgICAgICBmaW5hbCBTdHJpbmcgcGVyY2VudFNpZ24gPSBlbGVtZW50c1szXTsKKworICAgICAgICBTdHJpbmcgZ3JvdXBpbmdTdHJpbmc7CisgICAgICAgIE9iamVjdCBncm91cGluZ09iaiA9IHNvdXJjZS5nZXQoImdyb3VwaW5nIik7CisgICAgICAgIGJvb2xlYW4gaXNTdHJBcnJheSA9IGdyb3VwaW5nT2JqIGluc3RhbmNlb2YgU3RyaW5nW107CisgICAgICAgIGlmIChpc1N0ckFycmF5KSB7CisgICAgICAgICAgICBncm91cGluZ1N0cmluZyA9ICgoU3RyaW5nW10pZ3JvdXBpbmdPYmopWzBdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ3JvdXBpbmdTdHJpbmcgPSAoU3RyaW5nKWdyb3VwaW5nT2JqOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZ3JvdXBpbmdTdHJpbmcgPT0gbnVsbCkgeworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSByZXBsYWNlKHBhdHRlcm5zWzBdLCBlbGVtZW50c1swXSwgIjxERUNJTUFMPiIpOworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSByZXBsYWNlKHBhdHRlcm5zWzBdLCBlbGVtZW50c1sxXSwgIjxUSE9VU0FORD4iKTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcmVwbGFjZShwYXR0ZXJuc1swXSwgIjxERUNJTUFMPiIsIGRlY2ltYWxQb2ludCk7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sICI8VEhPVVNBTkQ+IiwgdGhvdXNhbmRzU2VwKTsKKworICAgICAgICAgICAgcGF0dGVybnNbMl0gPSByZXBsYWNlKHBhdHRlcm5zWzJdLCBlbGVtZW50c1sxXSwgIjxUSE9VU0FORD4iKTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzJdID0gcmVwbGFjZShwYXR0ZXJuc1syXSwgIjxUSE9VU0FORD4iLCB0aG91c2FuZHNTZXApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBncm91cGluZzoKKyAgICAgICAgICAgICAqIERlZmluZXMgdGhlIHNpemUgb2YgZWFjaCBncm91cCBvZiBkaWdpdHMgaW4gZm9ybWF0dGVkIG1vbmV0YXJ5IAorICAgICAgICAgICAgICogcXVhbnRpdGllcy4gVGhlIG9wZXJhbmQgZm9yIHRoZSBncm91cGluZyBrZXl3b3JkIGNvbnNpc3RzIG9mIGEgCisgICAgICAgICAgICAgKiBzZXF1ZW5jZSBvZiBzZW1pY29sb24tc2VwYXJhdGVkIGludGVnZXJzLiBFYWNoIGludGVnZXIgc3BlY2lmaWVzIHRoZSAKKyAgICAgICAgICAgICAqIG51bWJlciBvZiBkaWdpdHMgaW4gYSBncm91cC4gVGhlIGluaXRpYWwgaW50ZWdlciBkZWZpbmVzIHRoZSBzaXplIG9mIAorICAgICAgICAgICAgICogdGhlIGdyb3VwIGltbWVkaWF0ZWx5IHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIGRlbGltaXRlci4gCisgICAgICAgICAgICAgKiBUaGUgZm9sbG93aW5nIGludGVnZXJzIGRlZmluZSBzdWNjZWVkaW5nIGdyb3VwcyB0byB0aGUgbGVmdCBvZiB0aGUgCisgICAgICAgICAgICAgKiBwcmV2aW91cyBncm91cC4gSWYgdGhlIGxhc3QgaW50ZWdlciBpcyBub3QgLTEsIHRoZSBzaXplIG9mIHRoZSAKKyAgICAgICAgICAgICAqIHByZXZpb3VzIGdyb3VwIChpZiBhbnkpIGlzIHVzZWQgcmVwZWF0ZWRseSBmb3IgdGhlIHJlbWFpbmRlciBvZiB0aGUgCisgICAgICAgICAgICAgKiBkaWdpdHMuIElmIHRoZSBsYXN0IGludGVnZXIgaXMgLTEsIG5vIGZ1cnRoZXIgZ3JvdXBpbmcgaXMgcGVyZm9ybWVkLgorICAgICAgICAgICAgICogR3JvdXBpbmcgVmFsdWUgICAgRm9ybWF0dGVkIFZhbHVlCisgICAgICAgICAgICAgKiAgIDM7LTEgICAgICAgICAgICAgICAxMjM0NTYnNzg5CisgICAgICAgICAgICAgKiAgIDMgICAgICAgICAgICAgICAgICAxMjMnNDU2Jzc4OQorICAgICAgICAgICAgICogICAzOzI7LTEgICAgICAgICAgICAgMTIzNCc1Nic3ODkKKyAgICAgICAgICAgICAqICAgMzsyICAgICAgICAgICAgICAgIDEyJzM0JzU2Jzc4OQorICAgICAgICAgICAgICogICAtMSAgICAgICAgICAgICAgICAgMTIzNDU2Nzg5CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vZm9yIGEgZ3JvdXBpbmcgb2YgNQorICAgICAgICAgICAgLy8jPHRob3VzYW5kc1NlcD4jIyMjMDxkZWNpbWFsUG9pbnQ+IyMjIyMKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IHNlbWlDb2xvbkluZGV4ID0gZ3JvdXBpbmdTdHJpbmcuaW5kZXhPZignOycpIDsKKyAgICAgICAgICAgIGludCBncm91cGluZyA9IDA7CisgICAgICAgICAgICBpZihzZW1pQ29sb25JbmRleCA8IDAgKXsKKyAgICAgICAgICAgICAgICBncm91cGluZyA9IEludGVnZXIucGFyc2VJbnQoZ3JvdXBpbmdTdHJpbmcpOyAgICAKKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwYXR0ZXJuRGlnaXQpOworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHRob3VzYW5kc1NlcCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IE1hdGgubWF4KDEsIGdyb3VwaW5nIC0gMSk7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoemVyb0RpZ2l0KTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChkZWNpbWFsUG9pbnQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBNYXRoLm1heCgxLCBncm91cGluZyAtIDEpOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwYXR0ZXJuRGlnaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgLyogICAgaW50IHByZXZJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgaW50W10gZ3JvdXBpbmdzID0gbmV3IGludFs0XTsKKyAgICAgICAgICAgICAgICBpbnQgaiA9MDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxncm91cGluZ1N0cmluZy5sZW5ndGgoKTsgaSsrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZ3JvdXBpbmdTdHJpbmcuY2hhckF0KGkpPT0nOycpeworICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdzW2orK10gPSBJbnRlZ2VyLnBhcnNlSW50KGdyb3VwaW5nU3RyaW5nLnN1YnN0cmluZyhwcmV2SW5kZXgsaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJldkluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSBqLTEgO2k8LTE7IGktLSl7CisgICAgICAgICAgICAgICAgICAgIGlmKGdyb3VwaW5nc1tpXSA9PSAtMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogdW5pbXBsZW1lbnRlZCBwYXR0ZXJuIHBhcnNlci4gUGF0dGVybjogIiArIGdyb3VwaW5nU3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm5TdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHBhdHRlcm5TdHJpbmcgKyAiOyIgKyBuZWdhdGl2ZVNpZ24gKyBwYXR0ZXJuU3RyaW5nOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXR0ZXJuLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh0aG91c2FuZHNTZXApOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IE1hdGgubWF4KDEsIGdyb3VwaW5nIC0gMSk7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwYXR0ZXJuRGlnaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoemVyb0RpZ2l0KTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBlcmNlbnRTaWduKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhdHRlcm5zWzJdID0gcGF0dGVybi50b1N0cmluZygpOworCisgICAgICAgICAgIC8vIGZpbmFsIFN0cmluZ1tdIGN1cnJlbmN5RWxlbWVudHMgPSAoKFN0cmluZ1tdKWdldERlZmF1bHQoIkN1cnJlbmN5RWxlbWVudHMiKSk7CisgICAgICAgICAgICBTdHJpbmcgY3VycmVuY3lfc3ltYm9sID0gKFN0cmluZylzb3VyY2UuZ2V0KCJjdXJyZW5jeV9zeW1ib2wiKTsKKyAgICAgICAgICAgIGN1cnJlbmN5X3N5bWJvbCA9IChjdXJyZW5jeV9zeW1ib2wgIT0gbnVsbCkgPyBjdXJyZW5jeV9zeW1ib2wgOiAoU3RyaW5nKXNvdXJjZS5nZXQoImludF9jdXJyX3N5bWJvbCIpOworICAgICAgICAgICAgY3VycmVuY3lfc3ltYm9sID0gKGN1cnJlbmN5X3N5bWJvbCAhPSBudWxsKSA/IGN1cnJlbmN5X3N5bWJvbCA6ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbW9uX2RlY2ltYWxfcG9pbnQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm1vbl9kZWNpbWFsX3BvaW50Iik7CisgICAgICAgICAgICBtb25fZGVjaW1hbF9wb2ludCA9IChtb25fZGVjaW1hbF9wb2ludCAhPSBudWxsKSA/IG1vbl9kZWNpbWFsX3BvaW50IDogIiI7CisKKyAgICAgICAgICAgIFN0cmluZyBtb25fdGhvdXNhbmRzX3NlcCA9IChTdHJpbmcpc291cmNlLmdldCgibW9uX3Rob3VzYW5kc19zZXAiKTsKKyAgICAgICAgICAgIG1vbl90aG91c2FuZHNfc2VwID0gKG1vbl90aG91c2FuZHNfc2VwICE9IG51bGwpID8gbW9uX3Rob3VzYW5kc19zZXAgOiAiIjsKKworICAgICAgICAgICAgU3RyaW5nIG1vbl9ncm91cGluZ19zdHJpbmc7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbW9uX2dyb3VwaW5nOgorICAgICAgICAgICAgICogCisgICAgICAgICAgICAgKiBTcGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBkZWZpbmVzIHRoZSBzaXplIG9mIGVhY2ggZ3JvdXAgb2YgZGlnaXRzIAorICAgICAgICAgICAgICogaW4gZm9ybWF0dGVkIG1vbmV0YXJ5IHF1YW50aXRpZXMuIFRoZSBvcGVyYW5kIGZvciB0aGUgCisgICAgICAgICAgICAgKiBtb25fZ3JvdXBpbmcga2V5d29yZCBjb25zaXN0cyBvZiBhIHNlcXVlbmNlIG9mIAorICAgICAgICAgICAgICogc2VtaWNvbG9uLXNlcGFyYXRlZCBpbnRlZ2Vycy4gRWFjaCBpbnRlZ2VyIHNwZWNpZmllcyB0aGUgbnVtYmVyIAorICAgICAgICAgICAgICogb2YgZGlnaXRzIGluIGEgZ3JvdXAuIFRoZSBpbml0aWFsIGludGVnZXIgZGVmaW5lcyB0aGUgc2l6ZSBvZiB0aGUKKyAgICAgICAgICAgICAqIGdyb3VwIGltbWVkaWF0ZWx5IHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIGRlbGltaXRlci4gCisgICAgICAgICAgICAgKiBUaGUgZm9sbG93aW5nIGludGVnZXJzIGRlZmluZSBzdWNjZWVkaW5nIGdyb3VwcyB0byB0aGUgbGVmdCBvZiAKKyAgICAgICAgICAgICAqIHRoZSBwcmV2aW91cyBncm91cC4gSWYgdGhlIGxhc3QgaW50ZWdlciBpcyBub3QgLTEsIHRoZSBzaXplIG9mIAorICAgICAgICAgICAgICogdGhlIHByZXZpb3VzIGdyb3VwIChpZiBhbnkpIGlzIHJlcGVhdGVkbHkgdXNlZCBmb3IgdGhlIHJlbWFpbmRlciAKKyAgICAgICAgICAgICAqIG9mIHRoZSBkaWdpdHMuIElmIHRoZSBsYXN0IGludGVnZXIgaXMgLTEsIG5vIGZ1cnRoZXIgZ3JvdXBpbmcgaXMgCisgICAgICAgICAgICAgKiBwZXJmb3JtZWQuCisgICAgICAgICAgICAgKiAKKyAgICAgICAgICAgICAqIFZhbHVlICAgIEZvcm1hdHRlZCBWYWx1ZQorICAgICAgICAgICAgICogIDM7LTEgICAgMTIzNDU2Jzc4OQorICAgICAgICAgICAgICogIDMgICAgICAgMTIzJzQ1Nic3ODkKKyAgICAgICAgICAgICAqICAzOzI7LTEgIDEyMzQnNTYnNzg5CisgICAgICAgICAgICAgKiAgMzsyICAgICAxMiczNCc1Nic3ODkKKyAgICAgICAgICAgICAqICAgLTEgICAgIDEyMzQ1Njc4OSAKKyAgICAgICAgICAgICAqLyAKKyAgICAgICAgICAgIGZpbmFsIE9iamVjdCBtb25Hcm91cGluZ09iaiA9IHNvdXJjZS5nZXQoIm1vbl9ncm91cGluZyIpOworICAgICAgICAgICAgaWYgKG1vbkdyb3VwaW5nT2JqIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgICAgICBtb25fZ3JvdXBpbmdfc3RyaW5nID0gKChTdHJpbmdbXSltb25Hcm91cGluZ09iailbMF07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1vbl9ncm91cGluZ19zdHJpbmcgPSAoU3RyaW5nKW1vbkdyb3VwaW5nT2JqOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWwgaW50IG1vbl9ncm91cGluZyA9IChtb25fZ3JvdXBpbmdfc3RyaW5nID09IG51bGwpID8gZ3JvdXBpbmcgOiBJbnRlZ2VyLnBhcnNlSW50KG1vbl9ncm91cGluZ19zdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZnJhY19kaWdpdHNfc3RyaW5nID0gKFN0cmluZylzb3VyY2UuZ2V0KCJmcmFjX2RpZ2l0cyIpOworICAgICAgICAgICAgZmluYWwgaW50IGZyYWNfZGlnaXRzID0gKGZyYWNfZGlnaXRzX3N0cmluZyA9PSBudWxsKSA/IG1vbl9ncm91cGluZyA6IEludGVnZXIucGFyc2VJbnQoZnJhY19kaWdpdHNfc3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHBvc2l0aXZlX3NpZ24gPSAoU3RyaW5nKXNvdXJjZS5nZXQoInBvc2l0aXZlX3NpZ24iKTsKKyAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24gPSAocG9zaXRpdmVfc2lnbiAhPSBudWxsKSA/IHBvc2l0aXZlX3NpZ24gOiAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5lZ2F0aXZlX3NpZ24gPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm5lZ2F0aXZlX3NpZ24iKTsKKyAgICAgICAgICAgIG5lZ2F0aXZlX3NpZ24gPSAobmVnYXRpdmVfc2lnbiAhPSBudWxsKSA/IG5lZ2F0aXZlX3NpZ24gOiAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHBfc2lnbl9wb3NuID0gKFN0cmluZylzb3VyY2UuZ2V0KCJwX3NpZ25fcG9zbiIpOworICAgICAgICAgICAgcF9zaWduX3Bvc24gPSAocF9zaWduX3Bvc24gIT0gbnVsbCkgPyBwX3NpZ25fcG9zbiA6ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbl9zaWduX3Bvc24gPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm5fc2lnbl9wb3NuIik7CisgICAgICAgICAgICBuX3NpZ25fcG9zbiA9IChuX3NpZ25fcG9zbiAhPSBudWxsKSA/IG5fc2lnbl9wb3NuIDogIiI7CisKKyAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gcF9jc19wcmVjZWRlcyA9ICEiMCIuZXF1YWxzKHNvdXJjZS5nZXQoInBfY3NfcHJlY2VkZXMiKSk7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcF9zZXBfYnlfc3BhY2UgPSAoU3RyaW5nKXNvdXJjZS5nZXQoInBfc2VwX2J5X3NwYWNlIik7CisgICAgICAgICAgICBmaW5hbCBib29sZWFuIG5fY3NfcHJlY2VkZXMgPSAhIjAiLmVxdWFscyhzb3VyY2UuZ2V0KCJuX2NzX3ByZWNlZGVzIikpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIG5fc2VwX2J5X3NwYWNlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJuX3NlcF9ieV9zcGFjZSIpOworCisgICAgICAgICAgICBwYXR0ZXJuLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIAorLyogICAgICAgICAgICAKKyAgICAgICAgICAgIHBhdHRlcm5zWzFdID0KKyAgICAgICAgICAgICAgICBjcmVhdGVQYXR0ZXJuU3RyaW5nKGN1cnJlbmN5X3N5bWJvbCwgbW9uX2RlY2ltYWxfcG9pbnQsIG1vbl90aG91c2FuZHNfc2VwLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBwb3NpdGl2ZV9zaWduLCBwX2NzX3ByZWNlZGVzLCBwX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KQorICAgICAgICAgICAgICAgICsgIjsiCisgICAgICAgICAgICAgICAgKyBjcmVhdGVQYXR0ZXJuU3RyaW5nKGN1cnJlbmN5X3N5bWJvbCwgbW9uX2RlY2ltYWxfcG9pbnQsIG1vbl90aG91c2FuZHNfc2VwLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZV9zaWduLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgbl9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KTsKKyovCisgICAgICAgICAgICAKKy8qICAgICAgICAgICAgcGF0dGVybnNbMV0gPQorICAgICAgICAgICAgICAgIGNyZWF0ZVBhdHRlcm5TdHJpbmcoY3VycmVuY3lfc3ltYm9sLCAiLiIsICIsIiwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVfc2lnbiwgcF9jc19wcmVjZWRlcywgcF9zZXBfYnlfc3BhY2UsIHBfc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCkKKyAgICAgICAgICAgICAgICArICI7IgorICAgICAgICAgICAgICAgICsgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsICIuIiwgIiwiLCBtb25fZ3JvdXBpbmcsIGZyYWNfZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZV9zaWduLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgbl9zaWduX3Bvc24sIHBhdHRlcm5EaWdpdCwgemVyb0RpZ2l0KTsKKyovCisgICAgICAgICAgICBwYXR0ZXJuc1sxXSA9CisgICAgICAgICAgICAgICAgY3JlYXRlUGF0dGVyblN0cmluZygiLiIsICIsIiwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVfc2lnbiwgcF9jc19wcmVjZWRlcywgcF9zZXBfYnlfc3BhY2UsIHBfc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCkKKyAgICAgICAgICAgICAgICArICI7IgorICAgICAgICAgICAgICAgICsgY3JlYXRlUGF0dGVyblN0cmluZygiLiIsICIsIiwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIG5fc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCk7CisKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiTnVtYmVyUGF0dGVybnMiLCBwYXR0ZXJucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyByb3V0aW5lIGNyZWF0ZXMgY3VycmVuY3kgZm9ybWF0cyBmcm9tIGFsbCB0aGUgcG9zaXggc3R1ZmYuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY3JlYXRlUGF0dGVyblN0cmluZyhTdHJpbmcgZGVjaW1hbCwgU3RyaW5nIHRob3VzYW5kcywgaW50IGdyb3VwaW5nLCBpbnQgZnJhY0RpZ2l0cywKKyAgICAgICAgICAgIFN0cmluZyBzaWduLCBib29sZWFuIHByZWNlZWRzLCBTdHJpbmcgc2VwX2J5X3NwYWNlLCBTdHJpbmcgc2lnbl9wb3NuLCBTdHJpbmcgZGlnaXQsCisgICAgICAgICAgICBTdHJpbmcgcmVxdWlyZWREaWdpdCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmaW5hbCBTdHJpbmcgY3VycmVuY3kgPSAiXHUwMEE0IjsKKyAgICAgICAgaWYgKCIyIi5lcXVhbHMoc2VwX2J5X3NwYWNlKSAmJiAoIiIuZXF1YWxzKGN1cnJlbmN5KSB8fCAiIi5lcXVhbHMoc2lnbikpKSB7CisgICAgICAgICAgICBzZXBfYnlfc3BhY2UgPSAiMCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCIxIi5lcXVhbHMoc2VwX2J5X3NwYWNlKSAmJiAiIi5lcXVhbHMoY3VycmVuY3kpKSB7CisgICAgICAgICAgICBzZXBfYnlfc3BhY2UgPSAiMCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBzaWduX2N1cnJlbmN5X3NlcGVyYXRvciA9ICgiMiIuZXF1YWxzKHNlcF9ieV9zcGFjZSkpID8gIiAiIDogIiI7CisgICAgICAgIGZpbmFsIFN0cmluZyBxdWFudGl0eV9jdXJyZW5jeV9zZXBlcmF0b3IgPSAoIjEiLmVxdWFscyhzZXBfYnlfc3BhY2UpKSA/ICIgIiA6ICIiOworICAgICAgICAKKyAgICAgICAgaWYgKCIwIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnKCcpOworICAgICAgICB9CisgICAgICAgIGlmICgiMSIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICBpZiAocHJlY2VlZHMpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocHJlY2VlZHMpIHsKKyAgICAgICAgICAgIGlmICgiMyIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjdXJyZW5jeSk7CisgICAgICAgICAgICBpZiAoIjQiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocXVhbnRpdHlfY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgCisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICBpZiAoZ3JvdXBpbmcgPiAwKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHRob3VzYW5kcyk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gZ3JvdXBpbmctMTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5hcHBlbmQocmVxdWlyZWREaWdpdCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGVjaW1hbCk7CisgICAgICAgIGlmIChmcmFjRGlnaXRzID4gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGZyYWNEaWdpdHMtMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHJlcXVpcmVkRGlnaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkaWdpdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghcHJlY2VlZHMpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocXVhbnRpdHlfY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIGlmICgiMSIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgiMyIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjdXJyZW5jeSk7CisgICAgICAgICAgICBpZiAoIjQiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgaWYgKCIyIi5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICB9CisgICAgICAgIGlmICgiMCIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJyknKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY29udmVydFRJTUUoSGFzaHRhYmxlIHJlc3VsdCwgSGFzaHRhYmxlIHNvdXJjZSkgeworICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiRGF5TmFtZXMiLCBzb3VyY2UuZ2V0KCJkYXkiKSk7CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJEYXlBYmJyZXZpYXRpb25zIiwgc291cmNlLmdldCgiYWJkYXkiKSk7CisgICAgICAgIFN0cmluZ1tdIHRlbXAgPSAoU3RyaW5nW10pc291cmNlLmdldCgiYW1fcG0iKTsKKyAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gZGVmYXVsdEFNUE0gPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiQW1QbU1hcmtlcnMiKTsKKyAgICAgICAgICAgIGlmICgiIi5lcXVhbHModGVtcFswXSkpIHRlbXBbMF0gPSBkZWZhdWx0QU1QTVswXTsKKyAgICAgICAgICAgIGlmICgiIi5lcXVhbHModGVtcFsxXSkpIHRlbXBbMV0gPSBkZWZhdWx0QU1QTVsxXTsKKyAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJBbVBtTWFya2VycyIsIHRlbXApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoIm1vbiIpOworICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICAvL2FkZCBlbXB0eSAxM3RoIG1vbnRoCisgICAgICAgICAgICBTdHJpbmdbXSBuZXdUZW1wID0gbmV3IFN0cmluZ1sxM107CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIG5ld1RlbXAsIDAsIDEyKTsKKyAgICAgICAgICAgIG5ld1RlbXBbMTJdID0gIiI7CisgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiTW9udGhOYW1lcyIsIG5ld1RlbXApOworICAgICAgICB9CisgICAgICAgIHRlbXAgPSAoU3RyaW5nW10pc291cmNlLmdldCgiYWJtb24iKTsKKyAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgeworICAgICAgICAgICAgLy9hZGQgZW1wdHkgMTN0aCBtb250aAorICAgICAgICAgICAgU3RyaW5nW10gbmV3VGVtcCA9IG5ldyBTdHJpbmdbMTNdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCBuZXdUZW1wLCAwLCAxMik7CisgICAgICAgICAgICBuZXdUZW1wWzEyXSA9ICIiOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk1vbnRoQWJicmV2aWF0aW9ucyIsIG5ld1RlbXApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgdF9mbXRfYW1wbSA9IChTdHJpbmcpc291cmNlLmdldCgidF9mbXRfYW1wbSIpOworICAgICAgICBmaW5hbCBTdHJpbmcgdF9mbXQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoInRfZm10Iik7CisgICAgICAgIGZpbmFsIFN0cmluZyBkX3RfZm10ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJkX3RfZm10Iik7CisgICAgICAgIGZpbmFsIFN0cmluZyBkX2ZtdCA9IChTdHJpbmcpc291cmNlLmdldCgiZF9mbXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIG5sbGRhdGUgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm5sbGRhdGUiKTsgICAvL25vbi1zdGFuZGFyZCBJQk0gdGhpbmcKKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBERUZBVUxUX0RBVEVUSU1FX0VMRU1FTlRTW10gPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiRGF0ZVRpbWVQYXR0ZXJucyIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBlbGVtZW50cyA9IChTdHJpbmdbXSlERUZBVUxUX0RBVEVUSU1FX0VMRU1FTlRTLmNsb25lKCk7CisgICAgICAgIGZpbmFsIFN0cmluZyBYX3BhdHRlcm4gPSBlbGVtZW50c1szXTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHhfcGF0dGVybiA9IGVsZW1lbnRzWzddOworICAgICAgICBmaW5hbCBTdHJpbmcgY19wYXR0ZXJuID0gZWxlbWVudHNbNF0gKyAiICIgKyBlbGVtZW50c1swXTsKKyAgICAgICAgCisgICAgICAgIGVsZW1lbnRzWzBdID0gKHRfZm10X2FtcG0gIT0gbnVsbCAmJiB0X2ZtdF9hbXBtLmxlbmd0aCgpID4gMCkgPyB0X2ZtdF9hbXBtIDogdF9mbXQ7CisgICAgICAgIGVsZW1lbnRzWzFdID0gKHRfZm10ICE9IG51bGwpID8gdF9mbXQgOiB0X2ZtdF9hbXBtOworICAgICAgICBlbGVtZW50c1syXSA9ICh0X2ZtdCAhPSBudWxsKSA/IHRfZm10IDogdF9mbXRfYW1wbTsKKyAgICAgICAgZWxlbWVudHNbM10gPSAodF9mbXQgIT0gbnVsbCkgPyB0X2ZtdCA6IHRfZm10X2FtcG07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgbG9uZ2lzaERhdGVGb3JtYXQgPSAobmxsZGF0ZSAhPSBudWxsKSA/IG5sbGRhdGUgOiBkX2ZtdDsKKyAgICAgICAgaWYgKGRfdF9mbXQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHRfZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL3RyeSB0byBidWlsZCBhIGRldGFpbGVkIGRhdGEgZm9ybWF0IGJ5IHRha2luZyB0aGUgCisgICAgICAgICAgICAgICAgLy9kYXRlLXRpbWUgZm9ybWF0IGFuZCByZW1vdmluZyB0aGUgdGltZSBwb3J0aW9uCisgICAgICAgICAgICAgICAgaW50IG5keCA9IGRfdF9mbXQuaW5kZXhPZih0X2ZtdCk7CisgICAgICAgICAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZHggPCAoZF90X2ZtdC5sZW5ndGgoKSAtIHRfZm10Lmxlbmd0aCgpKS8yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50c1s4XSA9ICJ7MH0gezF9IjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IHJlcGxhY2UoZF90X2ZtdCwgdF9mbXQsICIiKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSByZXBsYWNlKGxvbmdpc2hEYXRlRm9ybWF0LCAiJVoiLCAiIik7CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShsb25naXNoRGF0ZUZvcm1hdCwgIiAgIiwgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSByZXBsYWNlKGxvbmdpc2hEYXRlRm9ybWF0LCAiICAiLCAiICIpOworICAgICAgICAgICAgICAgICAgICBpZiAobG9uZ2lzaERhdGVGb3JtYXQuY2hhckF0KDApID09ICcgJykgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSBsb25naXNoRGF0ZUZvcm1hdC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQudHJpbSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbGVtZW50c1s0XSA9IGxvbmdpc2hEYXRlRm9ybWF0OworICAgICAgICBlbGVtZW50c1s1XSA9IGRfdF9mbXQ7CisgICAgICAgIGVsZW1lbnRzWzZdID0gKG5sbGRhdGUgIT0gbnVsbCkgPyBubGxkYXRlIDogZF9mbXQ7CisgICAgICAgIGVsZW1lbnRzWzddID0gZF9mbXQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50c1tpXSA9IGNvbnZlcnRGb3JtYXRzKGVsZW1lbnRzW2ldLCBYX3BhdHRlcm4sIHhfcGF0dGVybiwgY19wYXR0ZXJuKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZWxlbWVudHNbaV0gPSBERUZBVUxUX0RBVEVUSU1FX0VMRU1FTlRTW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJEYXRlVGltZVBhdHRlcm5zIiwgZWxlbWVudHMpOworICAgIH0KKyAgIAorICAgIHByaXZhdGUgU3RyaW5nIGNvbnZlcnRGb3JtYXRzKFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgWF9wYXR0ZXJuLCAKKyAgICAgICAgICAgIFN0cmluZyB4X3BhdHRlcm4sIFN0cmluZyBjX3BhdHRlcm4pIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0cGF0dGVybiA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZShwYXR0ZXJuKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBzaW5nbGVEaWdpdCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRwYXR0ZXJuLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHRwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjICE9ICclJykgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpbmdsZURpZ2l0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgIGMgPSB0cGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkVFRSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdBJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiRUVFRSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdiJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU1NIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0InOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTU1NIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2MnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNfcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOiAgIC8vKiogaGV5IHtqZn0gLSB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBjZW50dXJ5IG9ubHkuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIllZWVkiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnZCc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiZCIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImRkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnRCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm1tL2RkL3l5Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2UnOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImQiKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJkZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnSCc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiSCIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkhIIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiaCIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImhoIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnaic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkRERCIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdtJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdNJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJtIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgibW0iKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3AnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJhYSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdyJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb252ZXJ0Rm9ybWF0cygiJUk6JU06JVMgJXAiLCBYX3BhdHRlcm4sIHhfcGF0dGVybiwgY19wYXR0ZXJuKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1MnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJzcyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXHQnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnVCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydEZvcm1hdHMoIiVJOiVNOiVTIiwgWF9wYXR0ZXJuLCB4X3BhdHRlcm4sIGNfcGF0dGVybikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgid3ciKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnVyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInd3Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHhfcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFhfcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3knOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ5eSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdZJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieXl5eSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdaJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICclJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiJSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICcuJzoKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjMSA9IHRwYXR0ZXJuLmNoYXJBdChpKzEpOworICAgICAgICAgICAgICAgICAgICBpZihjMT09JzEnKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZURpZ2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyUnKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRDT0xMQVRFKEhhc2h0YWJsZSByZXN1bHQsIEhhc2h0YWJsZSBzb3VyY2UpIHsKKyAgICAgICAgU3RyaW5nW10gc29ydE9yZGVyID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoInNvcnRfb3JkZXIiKTsgICAgCisgICAgICAgIGZpbmFsIE9iamVjdFtdW10gREVGQVVMVF9DT0xMQVRJT049KE9iamVjdFtdW10pIGdldERlZmF1bHQoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgZmluYWwgT2JqZWN0W11bXSBlbGVtZW50cz0oT2JqZWN0W11bXSljbG9uZTJEQXJyKERFRkFVTFRfQ09MTEFUSU9OKTsgICAgICAgIAorICAgICAgICBpZiAoc29ydE9yZGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghImZvcndhcmQiLmVxdWFscyhzb3J0T3JkZXJbMF0pKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogVW5zdXBwb3J0ZWQgcHJpbWFyeSBzb3J0IG9yZGVyOiAiK3NvcnRPcmRlclswXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc29ydE9yZGVyLmxlbmd0aCA9PSAyICYmICEiZm9yd2FyZCIuZXF1YWxzKHNvcnRPcmRlclsxXSkgJiYgISJiYWNrd2FyZCIuZXF1YWxzKHNvcnRPcmRlclsxXSkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBVbnN1cHBvcnRlZCBzZWNvbmRhcnkgc29ydCBvcmRlcjogIitzb3J0T3JkZXJbMV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGggPT0gMyAmJiAhImZvcndhcmQiLmVxdWFscyhzb3J0T3JkZXJbMl0pKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogVW5zdXBwb3J0ZWQgdGVydGlhcnkgc29ydCBvcmRlcjogIitzb3J0T3JkZXJbMl0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGggPiAzKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBTb3J0IGxldmVscyBvZiBvcmRlciBncmVhdGVyIHRoYW4gdGhyZWUgaWdub3JlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbXSBydWxlU291cmNlID0gCisgICAgICAgICAgICAoUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbXSlzb3VyY2UuZ2V0KCJwb3NpeF9zb3J0X3J1bGVzIik7CisKKyAgICAgICAgaWYgKHJ1bGVTb3VyY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vYWxsb2NhdGUgYSBsaXN0IG9mIGNvbGxhdGlvbkl0ZW1zLiAgQWRkIGFuIGV4dHJhIGVudHJ5IGZvciBzZWNvbmRhcnkgb3JkZXJpbmcKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBydWxlcyA9IG5ldyBDb2xsYXRpb25JdGVtW3J1bGVTb3VyY2UubGVuZ3RoKzFdOworICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgcHJldlJ1bGUgPSBudWxsOworICAgICAgICAgICAgICAgIC8vYWRkIGFsbCB0aGUgcnVsZXMgZm9yIG5vbi1leHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgbmR4ID0gMDsgbmR4IDwgcnVsZVNvdXJjZS5sZW5ndGg7IG5keCsrKSB7CisgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgcnVsZSA9IHJ1bGVTb3VyY2VbbmR4XTsKKyAgICAgICAgICAgICAgICAgICAgLy9hZGQgbm9uLWV4cGFuZGluZyBjaGFyYWN0ZXJzIHRvIHRoZSBzb3J0IGxpc3QKKyAgICAgICAgICAgICAgICBpZiAocnVsZS5nZXRTaXplKCkgPD0gMSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlmZjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZSdWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgaXQncyB0aGUgZmlyc3QgcnVsZSwgZG9uJ3QgY29tcGFyZSB0byBhbnl0aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vc2VlayBiYWNrIHNvIGl0IGNhbiBiZSBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbShydWxlLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY29tcGFyZSB0byBwcmV2aW91cyBpdGVtCisgICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gcHJldlJ1bGUuY29tcGFyZShydWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0oZGlmZiwgcnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXNbaSsrXS5zZXRDb21tZW50KHJ1bGUuZ2V0U291cmNlKCkpOworICAgICAgICAgICAgICAgICAgICBwcmV2UnVsZSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vYWRkIHJ1bGVzIGZvciBleHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICAgICAgU3RyaW5nIHByZXZTZWVrID0gbnVsbDsKKyAgICAgICAgICAgIHByZXZSdWxlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IG5keCA9IDA7IG5keCA8IHJ1bGVTb3VyY2UubGVuZ3RoOyBuZHgrKykgeworICAgICAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlIHJ1bGUgPSBydWxlU291cmNlW25keF07CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0U2l6ZSgpID4gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9maW5kIG91dCB3aGF0IHRoaXMgY2hhcmFjdGVyIGV4cGFuZHMgdG8KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNlZWsgPSBydWxlLmdldEV4cGFuc2lvbigpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNlZWsuZXF1YWxzKHByZXZTZWVrKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgaXQncyBub3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlbiBzZWVrIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIGNvbXBhcmUgdG8gdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgc2Vla1J1bGUgPSBydWxlLnNlZWtzVG9SdWxlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWVrUnVsZS5jb21wYXJlKHJ1bGUpLCBydWxlLmdldFN5bWJvbCgpLCBydWxlLmdldEV4cGFuc2lvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTZWVrID0gc2VlazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2UnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pdCBleHBhbmRzIHRvIHRoZSBzYW1lIGNoYXJhY3RlcnMgYXMgdGhlIHByZXZpb3VzIGV4cGFuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NvIGNvbXBhcmUgdG8gdGhlIHByZXZpb3VzIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlJ1bGUuY29tcGFyZShydWxlKSwgcnVsZS5nZXRTeW1ib2woKSwgcHJldlJ1bGUuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVGhlIHVubGlrZWx5IGNhc2UgdGhhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2JlIGFuIGV4cGFuZGluZyBjaGFyYWN0ZXIuLi5JIGRvbid0IHRoaW5rCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIGV2ZW4gcG9zc2libGUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0ocnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXNbaSsrXS5zZXRDb21tZW50KHJ1bGUuZ2V0U291cmNlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2UnVsZSA9IHJ1bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc29ydE9yZGVyLmxlbmd0aD4wICYmICJiYWNrd2FyZCIuZXF1YWxzKHNvcnRPcmRlclswXSkpIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50c1sxXVsxXSA9ICJ0cnVlIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZWxlbWVudHNbMV1bMV0gPSAiZmFsc2UiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxlbWVudHNbMl1bMV09KE9iamVjdClydWxlczsKKyAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJjb2xsYXRpb25zIiwgZWxlbWVudHMpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVzdWx0UHV0KEhhc2h0YWJsZSByZXN1bHRUYWJsZSwgU3RyaW5nIHRhZywgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm47CisgICAgICAgIHJlc3VsdFRhYmxlLnB1dCh0YWcsIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBPYmplY3QgZ2V0RGVmYXVsdChTdHJpbmcgZGVzaXJlZFJlc291cmNlKSB7CisgICAgICAgIHJldHVybiBnZXRQYXJlbnRCdW5kbGUoKS5nZXRPYmplY3QoZGVzaXJlZFJlc291cmNlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnRCdW5kbGUoKSB7CisgICAgICAgIHJldHVybiBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5teUxvY2FsZUVsZW1lbnRzIiwgcGFyZW50TG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMocmVwbGFjZW1lbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsYXN0TmR4ID0gMDsKKyAgICAgICAgICAgIGludCBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQpOworICAgICAgICAgICAgd2hpbGUgKG5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3ROZHgsIG5keCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgICAgIG5keCArPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgbGFzdE5keCA9IG5keDsKKyAgICAgICAgICAgICAgICBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQsIG5keCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1F1b3RlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9RdW90ZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMGY4NzRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9RdW90ZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDY5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBRdW90ZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBRdW90ZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFF1b3RlVHJhbnNpdGlvbihTVUNDRVNTKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBTVFJJTkdfQ0hBUiA9ICciJzsKKyAgICAKKyAgICBwdWJsaWMgUXVvdGVUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiBTVFJJTkdfQ0hBUiA9PSAoY2hhciljOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihTVFJJTkdfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBjaGFyYWN0ZXIgaW4gcXVvdGVkIHN0cmluZyIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihTVFJJTkdfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCBTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oLTIpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDI6IGZhaWx1cmUgZnJvbSBlb2YKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bnRlcm1pbmF0ZWQgc3RyaW5nIikKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiYmFkIHRlc3QgaW5wdXQiKQorICAgICAgICAgICAgfX07CisgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLnNldEVzY2FwZUNoYXIoJy8nKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIlwiaGVsbG88XCIvPj4vZDMyd29ybGRcIlwiPG9uZT4vXG48dHdvPlwiIjsKKyAgICAgICAgICAgIFN0cmluZ1JlYWRlciBzciA9IG5ldyBTdHJpbmdSZWFkZXIodGV4dCk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBwciA9IG5ldyBQdXNoYmFja1JlYWRlcihzcik7CisgICAgICAgICAgICBMZXggcGFyc2VyID0gbmV3IExleChzdGF0ZXMsIHByKTsKKyAgICAgICAgICAgIC8vcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgaW50IHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1JhbmdlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9SYW5nZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzBhMDAxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9SYW5nZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDM5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKKworcHVibGljIGNsYXNzIFJhbmdlVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFJhbmdlVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgUmFuZ2VUcmFuc2l0aW9uKFNVQ0NFU1MpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJBTkdFX0NIQVJTID0gIi4uLiI7CisgICAgcHVibGljIFJhbmdlVHJhbnNpdGlvbihpbnQgc3VjY2Vzcyl7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKXsKKyAgICAgICAgcmV0dXJuIFJBTkdFX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPj0wOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdZ2V0U3RhdGVzKCl7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXM9IHsKKworICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oUkFOR0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgc3BhY2UgY2hhcmFjdGVyIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oUkFOR0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpCisgICAgICAgIH0sCisgICAgfTsKK30KKyAgICAgICAgICAgIAorICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NvcnRlZFZlY3Rvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc5MmI1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NvcnRlZFZlY3Rvci5qYXZhCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKy8qKgorICAgIEltcGxlbWVudHMgYSBzb3J0ZWQgdmVjdG9yLiBZb3UgY2FuIGFkZCBhbnl0aGluZyB0byBpdDsgd2hlbiB5b3UgYWNjZXNzIGFueSBlbGVtZW50LCBpdCBzb3J0cworICAgIHRoZSBhcnJheSBpbnRlcm5hbGx5IHdoZW4gbmVjZXNzYXJ5LgorICAgIDxwPkEgQ29tcGFyYXRvciBpcyB1c2VkIHRvIGNvbXBhcmUgdGhlIGVsZW1lbnRzLCBhbGxvd2luZyBhcmJpdHJhcnkgb3JkZXJpbmdzLgorICAgIElmIG5vIENvbXBhcmF0b3IgaXMgc3VwcGxpZWQsIHRoZW4gb25lIGlzIGNvbnN0cnVjdGVkIGJhc2VkIG9uIHRoZSB0eXBlCisgICAgb2YgdGhlIGZpcnN0IGVsZW1lbnQgYWRkZWQuIE9ubHkgTnVtYmVycyBhbmQgQ29tcGFyYWJsZXMgYXJlIGhhbmRsZWQuCisgICAgPHA+RHVwbGljYXRlcyBhcmUgYWxsb3dlZC4KKyovCitmaW5hbCBwdWJsaWMgY2xhc3MgU29ydGVkVmVjdG9yIHsKKyAgICAvKioKKyAgICAgICAgQ29waWVzIGVsZW1lbnRzIG9mIHZlY3RvciwgZW51bWVyYXRpb24gb3IgYXJyYXkKKyAgICAgICAgTm90ZTogdGhlIG9iamVjdHMgaW4gdGhlIHNvdXJjZSBhcmUgTk9UIGNsb25lZC4KKyAgICAgICAgRG8gbm90IGNoYW5nZSB0aGVtIG9yIHRoZSBzb3J0aW5nIHdpbGwgYmUgaW52YWxpZC4KKyAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoT2JqZWN0W10gbmV3VmFsdWVzLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319Cit9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKFZlY3RvciBuZXdWYWx1ZXMsIENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoRW51bWVyYXRpb24gbmV3VmFsdWVzLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKE9iamVjdFtdIG5ld1ZhbHVlcykgeworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihWZWN0b3IgbmV3VmFsdWVzKSB7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihFbnVtZXJhdGlvbiBuZXdWYWx1ZXMpIHsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAgICBBZGRzIG9uZSBlbGVtZW50LgorICAgICovCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudChPYmplY3QgZWxlbWVudCkgeworICAgICAgICBpZiAoY291bnQgPj0gZGF0YUFycmF5Lmxlbmd0aCkgc2V0Q2FwYWNpdHkoY291bnQqMiArIDE3KTsKKyAgICAgICAgZGF0YUFycmF5W2NvdW50KytdID0gZWxlbWVudDsKKyAgICAgICAgaXNWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAgICBBZGRzIG11bHRpcGxlIGVsZW1lbnRzLiBGYXN0ZXIgdGhhbiBhZGRpbmcgb25lIGF0IGEgdGltZS4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZEVsZW1lbnRzKE9iamVjdFtdIG5ld1ZhbHVlcykgeworICAgICAgICBpbnQgbmV3Q291bnQgPSBjb3VudCArIG5ld1ZhbHVlcy5sZW5ndGg7CisgICAgICAgIGlmIChuZXdDb3VudCA+IGRhdGFBcnJheS5sZW5ndGgpIHNldENhcGFjaXR5KG5ld0NvdW50KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGNvdW50OyBpIDwgbmV3Q291bnQ7ICsraSkKKyAgICAgICAgICAgIGRhdGFBcnJheVtpXSA9IG5ld1ZhbHVlc1tpLWNvdW50XTsKKyAgICAgICAgY291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgaXNWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEVsZW1lbnRzKFZlY3RvciBuZXdWYWx1ZXMpIHsKKyAgICAgICAgaW50IG5ld0NvdW50ID0gY291bnQgKyBuZXdWYWx1ZXMuc2l6ZSgpOworICAgICAgICBpZiAobmV3Q291bnQgPiBkYXRhQXJyYXkubGVuZ3RoKSBzZXRDYXBhY2l0eShuZXdDb3VudCk7CisgICAgICAgIGZvciAoaW50IGkgPSBjb3VudDsgaSA8IG5ld0NvdW50OyArK2kpCisgICAgICAgICAgICBkYXRhQXJyYXlbaV0gPSBuZXdWYWx1ZXMuZWxlbWVudEF0KGktY291bnQpOworICAgICAgICBjb3VudCA9IG5ld0NvdW50OworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudHMoRW51bWVyYXRpb24gbmV3VmFsdWVzKSB7CisgICAgICAgIHdoaWxlIChuZXdWYWx1ZXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGFkZEVsZW1lbnQobmV3VmFsdWVzLm5leHRFbGVtZW50KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFJlbW92ZXMgZWxlbWVudHMgYXQgaW5kaWNlcyA+PSBzdGFydEluZGV4IGFuZCA8IGVuZEluZGV4CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVFbGVtZW50cyhpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4KSB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShkYXRhQXJyYXksZW5kSW5kZXgsZGF0YUFycmF5LHN0YXJ0SW5kZXgsY291bnQgLSBlbmRJbmRleCk7CisgICAgICAgIGZvciAoaW50IGkgPSBjb3VudCAtIChlbmRJbmRleCAtIHN0YXJ0SW5kZXgpOyBpIDwgY291bnQ7KytpKQorICAgICAgICAgICAgZGF0YUFycmF5W2ldID0gbnVsbDsgICAvLyBmcmVlIHVwIHN0b3JhZ2UKKyAgICAgICAgY291bnQgLT0gKGVuZEluZGV4IC0gc3RhcnRJbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFNldHMgY29tcGFyYXRvcgorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tcGFyYXRvcihDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICAgICAgaXNWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBDb21wYXJhdG9yIGdldENvbXBhcmF0b3IoKSB7CisgICAgICAgIGlmIChjb21wYXJhdG9yID09IG51bGwpIHZhbGlkYXRlQ29tcGFyYXRvcigpOworICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAgICBHZXRzIHNpemUsIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVsZW1lbnRzLgorICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEdldHMgY2FwYWNpdHksIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgeW91IGNhbiBoYXZlIHdpdGhvdXQgZ3Jvd2luZyB0aGUgYXJyYXkuCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGNhcGFjaXR5KCkgeworICAgICAgICByZXR1cm4gZGF0YUFycmF5Lmxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgU2V0cyBjYXBhY2l0eSwgdGhlIG51bWJlciBvZiBlbGVtZW50cyB5b3UgY2FuIGhhdmUgd2l0aG91dCBncm93aW5nIHRoZSBhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhcGFjaXR5KGludCBuZXdTaXplKSB7CisgICAgICAgIE9iamVjdFtdIHRlbXAgPSBuZXcgT2JqZWN0W25ld1NpemVdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGFBcnJheSwgMCwgdGVtcCwgMCwgTWF0aC5taW4oY291bnQsbmV3U2l6ZSkpOworICAgICAgICBkYXRhQXJyYXkgPSB0ZW1wOworICAgIH0KKworICAgIC8qKgorICAgICAgICBUcmltcyB0aGUgYXJyYXkuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0cmltVG9TaXplKCkgeworICAgICAgICBzZXRDYXBhY2l0eShjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEdldHMgdGhlIGVsZW1lbnQgYXQgdGhlIGluZGV4CisgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGVsZW1lbnRBdCAoaW50IGluZGV4KSB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGluZGV4ID49IGNvdW50KSByZXR1cm4gZGF0YUFycmF5W2RhdGFBcnJheS5sZW5ndGhdOworICAgICAgICByZXR1cm4gZGF0YUFycmF5W2luZGV4XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgU2VlcyB3aGV0aGVyIHRoZSB2ZWN0b3IgY29udGFpbnMgdGhlIG9iamVjdAorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMgKE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpbnQgaW5kZXggPSBpbmRleE9mKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIChpbmRleCA+PSAwICYmIGNvbXBhcmF0b3IuY29tcGFyZSh2YWx1ZSxkYXRhQXJyYXlbaW5kZXhdKSA9PSAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyBhbiBlbnVtZXJhdGlvbgorICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGVsZW1lbnRzKCkgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybiBuZXcgQXJyYXlFbnVtZXJhdGlvbihkYXRhQXJyYXksMCxjb3VudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29weUludG8oT2JqZWN0W10gdG9GaWxsKSB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShkYXRhQXJyYXksMCx0b0ZpbGwsMCx0b0ZpbGwubGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgRmluZHMgZmlyc3QgaW5kZXggd2hvc2UgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNlYXJjaFZhbHVlCisgICAgICAgIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm5zIC0xCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGluZGV4T2YoT2JqZWN0IHNlYXJjaFZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBpbnQgaW5kZXggPSBzdGFydEluZGV4OworICAgICAgICBpZiAoMCA8PSBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVthdXhTdGFydF0pKSB7CisgICAgICAgICAgICBpbmRleCArPSBhdXhTdGFydDsKKyAgICAgICAgfQorICAgICAgICAvLyB2ZXJ5IGZhc3QsIGNvbXBsZXRlbHkgdW5yb2xsZWQgYmluYXJ5IHNlYXJjaAorICAgICAgICAvLyBlYWNoIGNhc2UgZGVsaWJlcmF0ZWx5IGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQKKyAgICAgICAgc3dpdGNoIChwb3dlcikgeworICAgICAgICBjYXNlIDMxOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMDAwMDBdKSkgaW5kZXggLT0gMHg0MDAwMDAwMDsKKyAgICAgICAgY2FzZSAzMDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMDAwMDAwXSkpIGluZGV4IC09IDB4MjAwMDAwMDA7CisgICAgICAgIGNhc2UgMjk6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwMDAwMF0pKSBpbmRleCAtPSAweDEwMDAwMDAwOworCisgICAgICAgIGNhc2UgMjg6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDAwMDAwXSkpIGluZGV4IC09IDB4ODAwMDAwMDsKKyAgICAgICAgY2FzZSAyNzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMDAwMDBdKSkgaW5kZXggLT0gMHg0MDAwMDAwOworICAgICAgICBjYXNlIDI2OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDAwMF0pKSBpbmRleCAtPSAweDIwMDAwMDA7CisgICAgICAgIGNhc2UgMjU6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwMDAwXSkpIGluZGV4IC09IDB4MTAwMDAwMDsKKworICAgICAgICBjYXNlIDI0OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODAwMDAwXSkpIGluZGV4IC09IDB4ODAwMDAwOworICAgICAgICBjYXNlIDIzOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMDAwXSkpIGluZGV4IC09IDB4NDAwMDAwOworICAgICAgICBjYXNlIDIyOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDAwXSkpIGluZGV4IC09IDB4MjAwMDAwOworICAgICAgICBjYXNlIDIxOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwMDAwXSkpIGluZGV4IC09IDB4MTAwMDAwOworCisgICAgICAgIGNhc2UgMjA6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDAwMF0pKSBpbmRleCAtPSAweDgwMDAwOworICAgICAgICBjYXNlIDE5OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMDBdKSkgaW5kZXggLT0gMHg0MDAwMDsKKyAgICAgICAgY2FzZSAxODogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMDAwXSkpIGluZGV4IC09IDB4MjAwMDA7CisgICAgICAgIGNhc2UgMTc6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwMF0pKSBpbmRleCAtPSAweDEwMDAwOworCisgICAgICAgIGNhc2UgMTY6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDAwXSkpIGluZGV4IC09IDB4ODAwMDsKKyAgICAgICAgY2FzZSAxNTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMDBdKSkgaW5kZXggLT0gMHg0MDAwOworICAgICAgICBjYXNlIDE0OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMF0pKSBpbmRleCAtPSAweDIwMDA7CisgICAgICAgIGNhc2UgMTM6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwXSkpIGluZGV4IC09IDB4MTAwMDsKKworICAgICAgICBjYXNlIDEyOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODAwXSkpIGluZGV4IC09IDB4ODAwOworICAgICAgICBjYXNlIDExOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwXSkpIGluZGV4IC09IDB4NDAwOworICAgICAgICBjYXNlIDEwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwXSkpIGluZGV4IC09IDB4MjAwOworICAgICAgICBjYXNlICA5OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwXSkpIGluZGV4IC09IDB4MTAwOworCisgICAgICAgIGNhc2UgIDg6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MF0pKSBpbmRleCAtPSAweDgwOworICAgICAgICBjYXNlICA3OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDBdKSkgaW5kZXggLT0gMHg0MDsKKyAgICAgICAgY2FzZSAgNjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwXSkpIGluZGV4IC09IDB4MjA7CisgICAgICAgIGNhc2UgIDU6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMF0pKSBpbmRleCAtPSAweDEwOworCisgICAgICAgIGNhc2UgIDQ6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4XSkpIGluZGV4IC09IDg7CisgICAgICAgIGNhc2UgIDM6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0XSkpIGluZGV4IC09IDQ7CisgICAgICAgIGNhc2UgIDI6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyXSkpIGluZGV4IC09IDI7CisgICAgICAgIGNhc2UgIDE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxXSkpIGluZGV4IC09IDE7CisKKyAgICAgICAgY2FzZSAgMDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleF0pKSBpbmRleCAtPSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PSBwcml2YXRlcyA9PT09PT09PT09PT09PT09PT0KKyAgICAvKiogT25seSBjYWxsIGlmIGNvbXBhcmF0b3IgaXMgbnVsbAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHZhbGlkYXRlQ29tcGFyYXRvcigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE9iamVjdCB0cmlhbCA9IGRhdGFBcnJheVswXTsKKyAgICAgICAgICAgIGlmICh0cmlhbCBpbnN0YW5jZW9mIEZsb2F0IHx8IHRyaWFsIGluc3RhbmNlb2YgRG91YmxlKSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBEb3VibGVDb21wYXJhdG9yKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRyaWFsIGluc3RhbmNlb2YgSW50ZWdlcikgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgSW50ZWdlckNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJpYWwgaW5zdGFuY2VvZiBOdW1iZXIpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IExvbmdDb21wYXJhdG9yKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRyaWFsIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBTdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgQ29tcGFyYWJsZUNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9IC8vIGxlYXZlIG51bGwKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGUoKSB7CisgICAgICAgIGlmIChpc1ZhbGlkKSByZXR1cm47CisgICAgICAgIC8vIGlmIHRoZSBDb21wYXJhdG9yIGlzIG51bGwsIHRoZW4gcGljayBhIHJlYXNvbmFibGUgb25lCisgICAgICAgIGlmIChjb21wYXJhdG9yID09IG51bGwpIHZhbGlkYXRlQ29tcGFyYXRvcigpOworCisgICAgICAgIC8vIGRldGVybWluZSBzZWFyY2ggcGFyYW1ldGVycworCisgICAgICAgIC8vIGZpbmQgbGVhc3QgcG93ZXIgb2YgMiBncmVhdGVyIHRoYW4gY291bnQKKyAgICAgICAgZm9yIChwb3dlciA9IGV4cDIubGVuZ3RoLTE7IHBvd2VyID4gMCAmJiBjb3VudCA8IGV4cDJbcG93ZXJdOyBwb3dlci0tKSB7fQorCisgICAgICAgIC8vIGRldGVybWluZSB0aGUgc3RhcnRpbmcgcG9pbnQKKyAgICAgICAgaWYgKGV4cDJbcG93ZXJdICE9IGNvdW50KSB7CisgICAgICAgICAgICBhdXhTdGFydCA9IGNvdW50IC0gZXhwMltwb3dlcl07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXhTdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgc3RhcnRJbmRleCA9IGV4cDJbcG93ZXJdLTE7CisKKyAgICAgICAgLy8gc2hlbGwgc29ydC4gTGF0ZXIsIG1ha2UgdGhpcyBhIFF1aWNrU29ydAorICAgICAgICBpbnQgbG8gPSAwOworICAgICAgICBpbnQgdXAgPSBjb3VudC0xOworICAgICAgICBmb3IgKGludCBzdGVwID0gdXAgLSBsbyArIDE7IHN0ZXAgPiAxOykgeworICAgICAgICAgICAgaWYgKHN0ZXAgPCA1KQorICAgICAgICAgICAgICAgIHN0ZXAgPSAxOworICAgICAgICAgICAgZWxzZSBzdGVwID0gKDUgKiBzdGVwIC0gMSkgLyAxMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSB1cCAtIHN0ZXA7IGkgPj0gbG87IC0taSkgeworICAgICAgICAgICAgICAgIE9iamVjdCB0ZW1wID0gZGF0YUFycmF5W2ldOworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgIGZvciAoaiA9IGkgKyBzdGVwOyBqIDw9IHVwICYmIDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoZGF0YUFycmF5W2pdLHRlbXApOyBqICs9IHN0ZXApCisgICAgICAgICAgICAgICAgICAgIGRhdGFBcnJheVtqLXN0ZXBdID0gZGF0YUFycmF5W2pdOworICAgICAgICAgICAgICAgIGRhdGFBcnJheVtqLXN0ZXBdID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpc1ZhbGlkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIE9iamVjdFtdIGRhdGFBcnJheSA9IG5ldyBPYmplY3RbMTZdOworICAgIHByaXZhdGUgQ29tcGFyYXRvciBjb21wYXJhdG9yOworICAgIHByaXZhdGUgaW50IGNvdW50ID0gMDsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNWYWxpZCA9IGZhbHNlOworICAgIHByaXZhdGUgaW50IGF1eFN0YXJ0OworICAgIHByaXZhdGUgaW50IHN0YXJ0SW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgcG93ZXI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGV4cDJbXSA9IHsKKyAgICAgICAgMHgxLCAweDIsIDB4NCwgMHg4LAorICAgICAgICAweDEwLCAweDIwLCAweDQwLCAweDgwLAorICAgICAgICAweDEwMCwgMHgyMDAsIDB4NDAwLCAweDgwMCwKKyAgICAgICAgMHgxMDAwLCAweDIwMDAsIDB4NDAwMCwgMHg4MDAwLAorICAgICAgICAweDEwMDAwLCAweDIwMDAwLCAweDQwMDAwLCAweDgwMDAwLAorICAgICAgICAweDEwMDAwMCwgMHgyMDAwMDAsIDB4NDAwMDAwLCAweDgwMDAwMCwKKyAgICAgICAgMHgxMDAwMDAwLCAweDIwMDAwMDAsIDB4NDAwMDAwMCwgMHg4MDAwMDAwLAorICAgICAgICAweDEwMDAwMDAwLCAweDIwMDAwMDAwLCAweDQwMDAwMDAwfTsKKworICAgIC8vIFV0aWxpdHkgQ2xhc3NlcworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBMb25nQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICBsb25nIGFhID0gKChOdW1iZXIpYSkubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICBsb25nIGJiID0gKChOdW1iZXIpYikubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gKGFhIDwgYmIgPyAtMSA6IGFhID4gYmIgPyAxIDogMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEludGVnZXJDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKChOdW1iZXIpYSkuaW50VmFsdWUoKSAtICgoTnVtYmVyKWIpLmludFZhbHVlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBEb3VibGVDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIGRvdWJsZSBhYSA9ICgoTnVtYmVyKWEpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICBkb3VibGUgYmIgPSAoKE51bWJlciliKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIChhYSA8IGJiID8gLTEgOiBhYSA+IGJiID8gMSA6IDApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBDb21wYXJhYmxlQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICByZXR1cm4gKChDb21wYXJhYmxlKWEpLmNvbXBhcmVUbyhiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgU3RyaW5nQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICByZXR1cm4gKChTdHJpbmcpYSkuY29tcGFyZVRvKChTdHJpbmcpYik7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TcGFjZVRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3BhY2VUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJkY2M0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3BhY2VUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCisKK3B1YmxpYyBjbGFzcyBTcGFjZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTcGFjZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFNwYWNlVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTUEFDRV9DSEFSUyA9ICIgXHQiOworICAgIAorICAgIHB1YmxpYyBTcGFjZVRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIFNQQUNFX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPj0gMDsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBzcGFjZSBjaGFyYWN0ZXIiKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUykKKyAgICAgICAgfSwKKyAgICB9OworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TeW1ib2xUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1N5bWJvbFRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZGIyMDEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TeW1ib2xUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgU3ltYm9sVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwcml2YXRlIHN0YXRpYyBQb3NpeENoYXJNYXAgbWFwcGluZyA9IG5ldyBQb3NpeENoYXJNYXAoKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN5bWJvbFRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFN5bWJvbFRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJNYXAoUG9zaXhDaGFyTWFwIG1hcHBpbmdJbikgeworICAgICAgICBtYXBwaW5nID0gbWFwcGluZ0luOworICAgICAgICBpZiAobWFwcGluZyA9PSBudWxsKSB7CisgICAgICAgICAgICBtYXBwaW5nID0gbmV3IFBvc2l4Q2hhck1hcCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBQb3NpeENoYXJNYXAgZ2V0Q2hhck1hcCgpIHsKKyAgICAgICAgcmV0dXJuIG1hcHBpbmc7CisgICAgfQorCisgICAgcHVibGljIFN5bWJvbFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICc8JyA9PSAoY2hhciljOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTdWNjZXNzKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBwYXJzZXIuZ2V0RGF0YSgpOworICAgICAgICBTdHJpbmcgbWFwcGVkVGV4dCA9IG1hcHBpbmcubWFwS2V5KHRleHQpOworICAgICAgICBpZiAobWFwcGVkVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKG1hcHBlZFRleHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChnZXRDbGFzcygpKSB7CisgICAgICAgICAgICBpZiAoc3RhdGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZXMgPSBuZXcgTGV4LlRyYW5zaXRpb25bXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignPCcsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIGNoYXJhY3RlcnMgaW4gc3ltYm9sIikKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcvJywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignPicsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJz4nLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcvJywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgZXNjYXBlIGNoYXJhY3RlciBpbiBzeW1ib2wiKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMzogZmFpbHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgZW5kIG9mIGxpbmUvZmlsZSIpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXM7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJiYWQgdGVzdCBpbnB1dCIpCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIC8vU3RyaW5nIHRleHQgPSAiPENBUElUQUw+PFwiPD48Ly8+PFYlPjxONj48Q1lSSUxMSUM+IjsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjxVPjxTPjxEPiAiOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgLy9wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvVG9rZW5UcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Rva2VuVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyMzM1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Rva2VuVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworCitwdWJsaWMgY2xhc3MgVG9rZW5UcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVG9rZW5UcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBUb2tlblRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VQQVJBVE9SX0NIQVJTID0gIjsiICsgU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTOworICAgIAorICAgIHB1YmxpYyBUb2tlblRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gKGMgPiAwKSAmJiAKKyAgICAgICAgICAgICFFT0xUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpICYmIAorICAgICAgICAgICAgIVNwYWNlVHJhbnNpdGlvbi5HTE9CQUwuYWNjZXB0cyhjKSAmJiAgCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgKFNFUEFSQVRPUl9DSEFSUy5pbmRleE9mKChjaGFyKWMpIDwgMCkgfHwKKyAgICAgICAgICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpIHx8CisgICAgICAgICAgICAgICAgUXVvdGVUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpIHx8CisgICAgICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5HTE9CQUwuYWNjZXB0cyhjKQorICAgICAgICAgICAgKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBRdW90ZVRyYW5zaXRpb24oLTEpLCAKKyAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCAtMiksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU0VQQVJBVE9SX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIC0zKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigtNCksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBRdW90ZVRyYW5zaXRpb24oLTEpLCAKKyAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2l0aW9uKC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTRVBBUkFUT1JfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMjogZmFpbHVyZSAtIHVuZXhwZWN0ZWQgRU9MCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBFT0wgaW4gdG9rZW4iKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMzogZmFpbHVyZQorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgc2VwZXJhdG9yIGNoYXJhY3RlciBpbiB0b2tlbiIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSA0OiBmYWlsdXJlCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBFT0YgaW4gdG9rZW4iKQorICAgICAgICB9LAorICAgIH07CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9YTElGRjJJQ1VDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg3ODE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9YTElGRjJJQ1VDb252ZXJ0ZXIuamF2YQpAQCAtMCwwICsxLDExNzQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRvb2wuVU9wdGlvbjsKK2ltcG9ydCBvcmcudzNjLmRvbS5Eb2N1bWVudDsKK2ltcG9ydCBvcmcudzNjLmRvbS5Ob2RlOworaW1wb3J0IG9yZy53M2MuZG9tLk5hbWVkTm9kZU1hcDsKK2ltcG9ydCBvcmcudzNjLmRvbS5Ob2RlTGlzdDsKK2ltcG9ydCBvcmcueG1sLnNheC5FcnJvckhhbmRsZXI7CitpbXBvcnQgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2U7CitpbXBvcnQgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlcjsKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5Eb2N1bWVudEJ1aWxkZXJGYWN0b3J5OworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgWExJRkYySUNVQ29udmVydGVyIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVzZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGdldE9wdGlvbnMoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVMUDEgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUxQMiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPVVJDRURJUiA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFU1RESVIgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUQVJHRVRPTkxZID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09VUkNFT05MWSA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BS0VfU09VUkNFX1JPT1QgPSA2OworICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVPcHRpb25bXSBvcHRpb25zID0gbmV3IFVPcHRpb25bXSB7CisgICAgICAgIFVPcHRpb24uSEVMUF9IKCksCisgICAgICAgIFVPcHRpb24uSEVMUF9RVUVTVElPTl9NQVJLKCksCisgICAgICAgIFVPcHRpb24uU09VUkNFRElSKCksCisgICAgICAgIFVPcHRpb24uREVTVERJUigpLAorICAgICAgICBVT3B0aW9uLmNyZWF0ZSgidGFyZ2V0LW9ubHkiLCAndCcsIFVPcHRpb24uT1BUSU9OQUxfQVJHKSwKKyAgICAgICAgVU9wdGlvbi5jcmVhdGUoInNvdXJjZS1vbmx5IiwgJ2MnLCBVT3B0aW9uLk9QVElPTkFMX0FSRyksCisgICAgICAgIFVPcHRpb24uY3JlYXRlKCJtYWtlLXNvdXJjZS1yb290IiwgJ3InLCBVT3B0aW9uLk5PX0FSRykKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBST09UICAgICAgICAgICAgPSAicm9vdCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU1RZUEUgICAgICAgICA9ICJyZXN0eXBlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTTkFNRSAgICAgICAgID0gInJlc25hbWUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBZRVMgICAgICAgICAgICAgPSAieWVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk8gICAgICAgICAgICAgID0gIm5vIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVFJBTlNMQVRFICAgICAgID0gInRyYW5zbGF0ZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJPRFkgICAgICAgICAgICA9ICJib2R5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR1JPVVBTICAgICAgICAgID0gImdyb3VwIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklMRVMgICAgICAgICAgID0gImZpbGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUUkFOU1VOSVQgICAgICAgPSAidHJhbnMtdW5pdCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJJTlVOSVQgICAgICAgICA9ICJiaW4tdW5pdCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJJTlNPVVJDRSAgICAgICA9ICJiaW4tc291cmNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVFMgICAgICAgICAgICAgID0gInRzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1JJR0lOQUwgICAgICAgID0gIm9yaWdpbmFsIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU09VUkNFTEFOR1VBR0UgID0gInNvdXJjZS1sYW5ndWFnZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBUkdFVExBTkdVQUdFICA9ICJ0YXJnZXQtbGFuZ3VhZ2UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQVJHRVQgICAgICAgICAgPSAidGFyZ2V0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU09VUkNFICAgICAgICAgID0gInNvdXJjZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PVEUgICAgICAgICAgICA9ICJub3RlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgWE1MTEFORyAgICAgICAgID0gInhtbDpsYW5nIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklMRSAgICAgICAgICAgID0gImZpbGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlRWRUNUT1IgICAgICAgPSAiaW50dmVjdG9yIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVJSQVlTICAgICAgICAgID0gImFycmF5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RSSU5HUyAgICAgICAgID0gInN0cmluZyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJJTiAgICAgICAgICAgICA9ICJiaW4iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlRTICAgICAgICAgICAgPSAiaW50IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFCTEUgICAgICAgICAgID0gInRhYmxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU1QT1JUICAgICAgICAgID0gImltcG9ydCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhSRUYgICAgICAgICAgICA9ICJocmVmIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVhURVJOQUxGSUxFICAgID0gImV4dGVybmFsLWZpbGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlRFUk5BTEZJTEUgICAgPSAiaW50ZXJuYWwtZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFMVFRSQU5TICAgICAgICA9ICJhbHQtdHJhbnMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDUkMgICAgICAgICAgICAgPSAiY3JjIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUxJQVMgICAgICAgICAgID0gImFsaWFzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTElORVNFUCAgICAgICAgID0gU3lzdGVtLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCT00gICAgICAgICAgICAgPSAiXHVGRUZGIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0hBUlNFVCAgICAgICAgID0gIlVURi04IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTkJSQUNFICAgICAgID0gInsiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDTE9TRUJSQUNFICAgICAgPSAifSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTE9OICAgICAgICAgICA9ICI6IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NTUEgICAgICAgICAgID0gIiwiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBRVU9URSAgICAgICAgICAgPSAiXCIiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01NRU5UU1RBUlQgICAgPSAiLyoqIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NTUVOVEVORCAgICAgID0gIiAqLyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBRyAgICAgICAgICAgICA9ICIgKiBAIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NTUVOVE1JRERMRSAgID0gIiAqICI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQQUNFICAgICAgICAgICA9ICIgIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5ERU5UICAgICAgICAgID0gIiAgICAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFTVBUWSAgICAgICAgICAgPSAiIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUQgICAgICAgICAgICAgID0gImlkIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFhMSUZGMklDVUNvbnZlcnRlciBjbnYgPSBuZXcgWExJRkYySUNVQ29udmVydGVyKCk7CisgICAgICAgIGNudi5wcm9jZXNzQXJncyhhcmdzKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgICAgc291cmNlRGlyICAgICAgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nICAgIGZpbGVOYW1lICAgICAgID0gbnVsbDsKKyAgICBwcml2YXRlIFN0cmluZyAgICBkZXN0RGlyICAgICAgICA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuICAgdGFyZ2V0T25seSAgICAgPSBmYWxzZTsKKyAgICBwcml2YXRlIFN0cmluZyAgICB0YXJnZXRGaWxlTmFtZSA9IG51bGw7IAorICAgIHByaXZhdGUgYm9vbGVhbiAgIG1ha2VTb3VyY2VSb290ID0gZmFsc2U7CisgICAgcHJpdmF0ZSBTdHJpbmcgICAgc291cmNlRmlsZU5hbWUgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiAgIHNvdXJjZU9ubHkgICAgID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NBcmdzKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgaW50IHJlbWFpbmluZ0FyZ2MgPSAwOworICAgICAgICB0cnl7CisgICAgICAgICAgICByZW1haW5pbmdBcmdjID0gVU9wdGlvbi5wYXJzZUFyZ3MoYXJncywgb3B0aW9ucyk7CisgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogIisgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoYXJncy5sZW5ndGg9PTAgfHwgb3B0aW9uc1tIRUxQMV0uZG9lc09jY3VyIHx8IG9wdGlvbnNbSEVMUDJdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICBpZihyZW1haW5pbmdBcmdjPT0wKXsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IEVpdGhlciB0aGUgZmlsZSBuYW1lIHRvIGJlIHByb2Nlc3NlZCBpcyBub3QgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVkIG9yIHRoZSBpdCBpcyBzcGVjaWZpZWQgYWZ0ZXIgdGhlIC10Ly1jIFxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uIHdoaWNoIGhhcyBhbiBvcHRpb25hbCBhcmd1bWVudC4gVHJ5IHJlYXJyYW5naW5nICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBvcHRpb25zLiIpOworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICBpZihvcHRpb25zW1NPVVJDRURJUl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBzb3VyY2VEaXIgPSBvcHRpb25zW1NPVVJDRURJUl0udmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgaWYob3B0aW9uc1tERVNURElSXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGRlc3REaXIgPSBvcHRpb25zW0RFU1RESVJdLnZhbHVlOworICAgICAgICB9CisgICAgICAgIGlmKG9wdGlvbnNbVEFSR0VUT05MWV0uZG9lc09jY3VyKXsKKyAgICAgICAgICAgIHRhcmdldE9ubHkgPSB0cnVlOworICAgICAgICAgICAgdGFyZ2V0RmlsZU5hbWUgPSBvcHRpb25zW1RBUkdFVE9OTFldLnZhbHVlOworICAgICAgICB9CisgICAgICAgIGlmKG9wdGlvbnNbU09VUkNFT05MWV0uZG9lc09jY3VyKXsKKyAgICAgICAgICAgIHNvdXJjZU9ubHkgPSB0cnVlOworICAgICAgICAgICAgc291cmNlRmlsZU5hbWUgPSBvcHRpb25zW1NPVVJDRU9OTFldLnZhbHVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihvcHRpb25zW01BS0VfU09VUkNFX1JPT1RdLmRvZXNPY2N1cil7CisgICAgICAgICAgICBtYWtlU291cmNlUm9vdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYoZGVzdERpcj09bnVsbCl7CisgICAgICAgICAgICBkZXN0RGlyID0gIi4iOworICAgICAgICB9CisgICAgICAgIGlmKHNvdXJjZU9ubHkgPT0gdHJ1ZSAmJiB0YXJnZXRPbmx5ID09IHRydWUpeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCItLXNvdXJjZS1vbmx5IGFuZCAtLXRhcmdldC1vbmx5IGFyZSBzcGVjaWZpZWQuIFBsZWFzZSBjaGVjayB0aGUgYXJndW1lbnRzIGFuZCB0cnkgYWdhaW4uIik7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlbWFpbmluZ0FyZ2M7IGkrKykgeworICAgICAgICAgICAgaW50IGxhc3RJbmRleCA9IGFyZ3NbaV0ubGFzdEluZGV4T2YoRmlsZS5zZXBhcmF0b3IsIGFyZ3NbaV0ubGVuZ3RoKCkpICsgMTsgLyogYWRkIDEgdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IgKi8KKyAgICAgICAgICAgIGZpbGVOYW1lID0gYXJnc1tpXS5zdWJzdHJpbmcobGFzdEluZGV4LCBhcmdzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIFN0cmluZyB4bWxmaWxlTmFtZSA9IGdldEZ1bGxQYXRoKGZhbHNlLGFyZ3NbaV0pOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcm9jZXNzaW5nIGZpbGU6ICIreG1sZmlsZU5hbWUpOworICAgICAgICAgICAgY3JlYXRlUkIoeG1sZmlsZU5hbWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB1c2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblVzYWdlOiBYTElGRjJJQ1VDb252ZXJ0ZXIgW09QVElPTlNdIFtGSUxFU11cblxuIisKKyAgICAgICAgICAgICJUaGlzIHByb2dyYW0gaXMgdXNlZCB0byBjb252ZXJ0IFhMSUZGIGZpbGVzIHRvIElDVSBSZXNvdXJjZUJ1bmRsZSBUWFQgZmlsZXMuXG4iKworICAgICAgICAgICAgIlBsZWFzZSByZWZlciB0byB0aGUgZm9sbG93aW5nIG9wdGlvbnMuIE9wdGlvbnMgYXJlIG5vdCBjYXNlIHNlbnNpdGl2ZS5cbiIrCisgICAgICAgICAgICAiT3B0aW9uczpcbiIrCisgICAgICAgICAgICAiLXMgb3IgLS1zb3VyY2VkaXIgICAgICAgICAgc291cmNlIGRpcmVjdG9yeSBmb3IgZmlsZXMgZm9sbG93ZWQgYnkgcGF0aCwgZGVmYXVsdCBpcyBjdXJyZW50IGRpcmVjdG9yeS5cbiIgKworICAgICAgICAgICAgIi1kIG9yIC0tZGVzdGRpciAgICAgICAgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkgdGhlIHBhdGgsIGRlZmF1bHQgaXMgY3VycmVudCBkaXJlY3RvcnkuXG4iICsKKyAgICAgICAgICAgICItaCBvciAtPyBvciAtLWhlbHAgICAgICAgICB0aGlzIHVzYWdlIHRleHQuXG4iKworICAgICAgICAgICAgIi10IG9yIC0tdGFyZ2V0LW9ubHkgICAgICAgIG9ubHkgZ2VuZXJhdGUgdGhlIHRhcmdldCBsYW5ndWFnZSB0eHQgZmlsZSwgZm9sbG93ZWQgYnkgb3B0aW9uYWwgb3V0cHV0IGZpbGUgbmFtZS5cbiIgKworICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggLS1zb3VyY2Utb25seS5cbiIrCisgICAgICAgICAgICAiLWMgb3IgLS1zb3VyY2Utb25seSAgICAgICAgb25seSBnZW5lcmF0ZSB0aGUgc291cmNlIGxhbmd1YWdlIGJ1bmRsZSBmb2xsb3dlZCBieSBvcHRpb25hbCBvdXRwdXQgZmlsZSBuYW1lLlxuIisKKyAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5ub3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIC0tdGFyZ2V0LW9ubHkuXG4iKworICAgICAgICAgICAgIi1yIG9yIC0tbWFrZS1zb3VyY2Utcm9vdCAgIHByb2R1Y2Ugcm9vdCBidW5kbGUgZnJvbSBzb3VyY2UgZWxlbWVudHMuXG4iICsKKyAgICAgICAgICAgICJleGFtcGxlOiBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIuWExJRkYySUNVQ29udmVydGVyIC10IDxvcHRpb25hbCBhcmd1bWVudD4gLXMgeHh4IC1kIHl5eSBteVJlc291cmNlcy54bGYiKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRGdWxsUGF0aChib29sZWFuIGZpbGVUeXBlLCBTdHJpbmcgZk5hbWUpeworICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICBpbnQgbGFzdEluZGV4MSA9IGZOYW1lLmxhc3RJbmRleE9mKEZpbGUuc2VwYXJhdG9yLCBmTmFtZS5sZW5ndGgoKSkgKyAxOyAvKmFkZCAxIHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yKi8KKyAgICAgICAgaW50IGxhc3RJbmRleDIgPSBmTmFtZS5sYXN0SW5kZXhPZignLicsIGZOYW1lLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGZpbGVUeXBlID09IHRydWUpIHsKKyAgICAgICAgICAgIGlmKGxhc3RJbmRleDIgPT0gLTEpeworICAgICAgICAgICAgICAgIGZOYW1lID0gZk5hbWUudHJpbSgpICsgIi50eHQiOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYoIWZOYW1lLnN1YnN0cmluZyhsYXN0SW5kZXgyKS5lcXVhbHNJZ25vcmVDYXNlKCIudHh0IikpeworICAgICAgICAgICAgICAgICAgICBmTmFtZSA9ICBmTmFtZS5zdWJzdHJpbmcobGFzdEluZGV4MSxsYXN0SW5kZXgyKSArICIudHh0IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGVzdERpciAhPSBudWxsICYmIGZOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBkZXN0RGlyICsgRmlsZS5zZXBhcmF0b3IgKyBmTmFtZS50cmltKCk7ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIikgKyBGaWxlLnNlcGFyYXRvciArIGZOYW1lLnRyaW0oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmKGxhc3RJbmRleDIgPT0gLTEpeworICAgICAgICAgICAgICAgIGZOYW1lID0gZk5hbWUudHJpbSgpICsgIi54bGYiOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYoIWZOYW1lLnN1YnN0cmluZyhsYXN0SW5kZXgyKS5lcXVhbHNJZ25vcmVDYXNlKCIueG1sIikgJiYgZk5hbWUuc3Vic3RyaW5nKGxhc3RJbmRleDIpLmVxdWFsc0lnbm9yZUNhc2UoIi54bGYiKSl7CisgICAgICAgICAgICAgICAgICAgIGZOYW1lID0gZk5hbWUuc3Vic3RyaW5nKGxhc3RJbmRleDEsbGFzdEluZGV4MikgKyAiLnhsZiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc291cmNlRGlyICE9IG51bGwgJiYgZk5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0ciA9IHNvdXJjZURpciArIEZpbGUuc2VwYXJhdG9yICsgZk5hbWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RJbmRleDEgPiAwKSB7CisgICAgICAgICAgICAgICAgc3RyID0gZk5hbWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ciA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKSArIEZpbGUuc2VwYXJhdG9yICsgZk5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cjsKKyAgICB9ICAgCisKKyAgICAvKgorICAgICAqIFV0aWxpdHkgbWV0aG9kIHRvIHRyYW5zbGF0ZSBhIFN0cmluZyBmaWxlbmFtZSB0byBVUkwuICAKKyAgICAgKgorICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIG5vdCBuZWNlc3NhcmlseSBwcm92ZW4gdG8gZ2V0IHRoZSAKKyAgICAgKiBjb3JyZWN0IFVSTCBmb3IgZXZlcnkgcG9zc2libGUga2luZCBvZiBmaWxlbmFtZTsgaXQgc2hvdWxkIAorICAgICAqIGJlIGltcHJvdmVkLiAgSXQgaGFuZGxlcyB0aGUgbW9zdCBjb21tb24gY2FzZXMgdGhhdCB3ZSd2ZSAKKyAgICAgKiBlbmNvdW50ZXJlZCB3aGVuIHJ1bm5pbmcgQ29uZm9ybWFuY2UgdGVzdHMgb24gWGFsYW4uCisgICAgICogQWxzbyBub3RlLCB0aGlzIG1ldGhvZCBkb2VzIG5vdCBoYW5kbGUgb3RoZXIgbm9uLWZpbGU6CisgICAgICogZmxhdm9ycyBvZiBVUkxzIGF0IGFsbC4KKyAgICAgKgorICAgICAqIElmIHRoZSBuYW1lIGlzIG51bGwsIHJldHVybiBudWxsLgorICAgICAqIElmIHRoZSBuYW1lIHN0YXJ0cyB3aXRoIGEgY29tbW9uIFVSSSBzY2hlbWUgKG5hbWVseSB0aGUgb25lcyAKKyAgICAgKiBmb3VuZCBpbiB0aGUgZXhhbXBsZXMgb2YgUkZDMjM5NiksIHRoZW4gc2ltcGx5IHJldHVybiB0aGUgCisgICAgICogbmFtZSBhcy1pcyAodGhlIGFzc3VtcHRpb24gaXMgdGhhdCBpdCdzIGFscmVhZHkgYSBVUkwpCisgICAgICogT3RoZXJ3aXNlIHdlIGF0dGVtcHQgKGNoZWFwbHkpIHRvIGNvbnZlcnQgdG8gYSBmaWxlOi8vLyBVUkwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZpbGVuYW1lVG9VUkwoU3RyaW5nIGZpbGVuYW1lKXsKKyAgICAgICAgLy8gbnVsbCBiZWdldHMgbnVsbCAtIHNvbWV0aGluZyBsaWtlIHRoZSBjb21tdXRhdGl2ZSBwcm9wZXJ0eQorICAgICAgICBpZiAobnVsbCA9PSBmaWxlbmFtZSl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvbid0IHRyYW5zbGF0ZSBhIHN0cmluZyB0aGF0IGFscmVhZHkgbG9va3MgbGlrZSBhIFVSTAorICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCgiZmlsZToiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgiaHR0cDoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgiZnRwOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJnb3BoZXI6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoIm1haWx0bzoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgibmV3czoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgidGVsbmV0OiIpCisgICAgICAgICAgICl7CisgICAgICAgICAgICAgICByZXR1cm4gZmlsZW5hbWU7CisgICAgICAgICAgIH0KKyAgICAgICAgCisKKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoZmlsZW5hbWUpOworICAgICAgICBTdHJpbmcgdG1wID0gbnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgLy8gVGhpcyBub3JtYWxseSBnaXZlcyBhIGJldHRlciBwYXRoCisgICAgICAgICAgICB0bXAgPSBmLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgfWNhdGNoIChJT0V4Y2VwdGlvbiBpb2UpeworICAgICAgICAgICAgLy8gQnV0IHRoaXMgY2FuIGJlIHVzZWQgYXMgYSBiYWNrdXAsIGZvciBjYXNlcyAKKyAgICAgICAgICAgIC8vICB3aGVyZSB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgZXRjLgorICAgICAgICAgICAgdG1wID0gZi5nZXRBYnNvbHV0ZVBhdGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVSTHMgbXVzdCBleHBsaWNpdGx5IHVzZSBvbmx5IGZvcndhcmQgc2xhc2hlcworICAgICAgICBpZiAoRmlsZS5zZXBhcmF0b3JDaGFyID09ICdcXCcpIHsKKyAgICAgICAgICAgIHRtcCA9IHRtcC5yZXBsYWNlKCdcXCcsICcvJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gTm90ZSB0aGUgcHJlc3VtcHRpb24gdGhhdCBpdCdzIGEgZmlsZSByZWZlcmVuY2UKKyAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHNsYXNoZXMgYXQgdGhlIAorICAgICAgICAvLyAgc3RhcnQ6IHdlIGFsd2F5cyB3YW50IDMgLy8vIGlmIGl0J3MgYWJzb2x1dGUKKyAgICAgICAgLy8gICh3aGljaCB3ZSBzaG91bGQgaGF2ZSBmb3JjZWQgYWJvdmUpCisgICAgICAgIGlmICh0bXAuc3RhcnRzV2l0aCgiLyIpKXsKKyAgICAgICAgICAgIHJldHVybiAiZmlsZTovLyIgKyB0bXA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZXsKKyAgICAgICAgICAgIHJldHVybiAiZmlsZTovLy8iICsgdG1wOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBpc1htbExhbmcgKFN0cmluZyBsYW5nKXsKKworICAgICAgICBpbnQgc3VmZml4OworICAgICAgICBjaGFyIGM7CisgICAgICAgIAorICAgICAgICBpZiAobGFuZy5sZW5ndGggKCkgPCAyKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGMgPSBsYW5nLmNoYXJBdCgxKTsKKyAgICAgICAgaWYgKGMgPT0gJy0nKSB7ICAgICAgICAKKyAgICAgICAgICAgIGMgPSBsYW5nLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmICghKGMgPT0gJ2knIHx8IGMgPT0gJ0knIHx8IGMgPT0gJ3gnIHx8IGMgPT0gJ1gnKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3VmZml4ID0gMTsKKyAgICAgICAgfSBlbHNlIGlmICgoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8IChjID49ICdBJyAmJiBjIDw9ICdaJykpIHsKKyAgICAgICAgICAgIGMgPSBsYW5nLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmICghKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1ZmZpeCA9IDI7CisgICAgICAgIH0gZWxzZXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoc3VmZml4IDwgbGFuZy5sZW5ndGggKCkpIHsKKyAgICAgICAgICAgIGMgPSBsYW5nLmNoYXJBdChzdWZmaXgpOworICAgICAgICAgICAgaWYgKGMgIT0gJy0nKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlICgrK3N1ZmZpeCA8IGxhbmcubGVuZ3RoICgpKSB7CisgICAgICAgICAgICAgICAgYyA9IGxhbmcuY2hhckF0KHN1ZmZpeCk7CisgICAgICAgICAgICAgICAgaWYgKCEoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSl7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gICgobGFuZy5sZW5ndGgoKSA9PSBzdWZmaXgpICYmIChjICE9ICctJykpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlUkIoU3RyaW5nIHhtbGZpbGVOYW1lKSB7CisgICAgICAgCisgICAgICAgIFN0cmluZyB1cmxzID0gZmlsZW5hbWVUb1VSTCh4bWxmaWxlTmFtZSk7CisgICAgICAgIERvY3VtZW50QnVpbGRlckZhY3RvcnkgZGZhY3RvcnkgPSBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisgICAgICAgIGRmYWN0b3J5LnNldE5hbWVzcGFjZUF3YXJlKHRydWUpOworICAgICAgICBkZmFjdG9yeS5zZXRWYWxpZGF0aW5nKHRydWUpOworICAgICAgICBEb2N1bWVudCBkb2MgPSBudWxsOworICAgICAgICAKKyAgICAgICAgRXJyb3JIYW5kbGVyIG51bGxIYW5kbGVyID0gbmV3IEVycm9ySGFuZGxlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdhcm5pbmcoU0FYUGFyc2VFeGNlcHRpb24gZSkgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBlcnJvcihTQVhQYXJzZUV4Y2VwdGlvbiBlKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlRoZSBYTElGRiBkb2N1bWVudCBpcyBpbnZhbGlkLCBwbGVhc2UgY2hlY2sgaXQgZmlyc3Q6ICIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiTGluZSAiK2UuZ2V0TGluZU51bWJlcigpKyIsIENvbHVtbiAiK2UuZ2V0Q29sdW1uTnVtYmVyKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmYXRhbEVycm9yKFNBWFBhcnNlRXhjZXB0aW9uIGUpIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyIGRvY0J1aWxkZXIgPSBkZmFjdG9yeS5uZXdEb2N1bWVudEJ1aWxkZXIoKTsKKyAgICAgICAgICAgIGRvY0J1aWxkZXIuc2V0RXJyb3JIYW5kbGVyKG51bGxIYW5kbGVyKTsKKyAgICAgICAgICAgIGRvYyA9IGRvY0J1aWxkZXIucGFyc2UobmV3IElucHV0U291cmNlKHVybHMpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTm9kZUxpc3Qgbmxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoRklMRVMpOworICAgICAgICAgICAgaWYobmxpc3QuZ2V0TGVuZ3RoKCk+MSl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIk11bHRpcGxlIDxmaWxlPiBlbGVtZW50cyBpbiB0aGUgWExJRkYgZmlsZSBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBvZiBzb3VyY2UtbGFuZ3VhZ2UgYXR0cmlidXRlCisgICAgICAgICAgICBTdHJpbmcgc291cmNlTGFuZyA9IGdldExhbmd1YWdlTmFtZShkb2MsIFNPVVJDRUxBTkdVQUdFKTsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgdmFsdWUgb2YgdGFyZ2V0LWxhbmd1YWdlIGF0dHJpYnV0ZQorICAgICAgICAgICAgU3RyaW5nIHRhcmdldExhbmcgPSBnZXRMYW5ndWFnZU5hbWUoZG9jLCBUQVJHRVRMQU5HVUFHRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCB0aGUgbGlzdCBvZiA8c291cmNlPiBlbGVtZW50cworICAgICAgICAgICAgTm9kZUxpc3Qgc291cmNlTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShTT1VSQ0UpOworICAgICAgICAgICAgLy8gZ2V0IHRoZSBsaXN0IG9mIHRhcmdldCBlbGVtZW50cworICAgICAgICAgICAgTm9kZUxpc3QgdGFyZ2V0TGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShUQVJHRVQpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgeGxpZmYgZmlsZSBoYXMgc291cmNlIGVsZW1lbnRzIGluIG11bHRpcGxlIGxhbmd1YWdlcworICAgICAgICAgICAgLy8gdGhlIHNvdXJjZS1sYW5ndWFnZSB2YWx1ZSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeG1sOmxhbmcgdmFsdWVzCisgICAgICAgICAgICAvLyBvZiBhbGwgdGhlIHNvdXJjZSBlbGVtZW50cy4KKyAgICAgICAgICAgIFN0cmluZyB4bWxTcmNMYW5nID0gY2hlY2tMYW5nQXR0cmlidXRlKHNvdXJjZUxpc3QsIHNvdXJjZUxhbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgeGxpZmYgZmlsZSBoYXMgdGFyZ2V0IGVsZW1lbnRzIGluIG11bHRpcGxlIGxhbmd1YWdlcworICAgICAgICAgICAgLy8gdGhlIHRhcmdldC1sYW5ndWFnZSB2YWx1ZSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeG1sOmxhbmcgdmFsdWVzCisgICAgICAgICAgICAvLyBvZiBhbGwgdGhlIHRhcmdldCBlbGVtZW50cy4KKyAgICAgICAgICAgIFN0cmluZyB4bWxUYXJnZXRMYW5nID0gY2hlY2tMYW5nQXR0cmlidXRlKHRhcmdldExpc3QsIHRhcmdldExhbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIFJlc291cmNlIGxpbmtlZCBsaXN0IHdoaWNoIHdpbGwgaG9sZCB0aGUKKyAgICAgICAgICAgIC8vIHNvdXJjZSBhbmQgdGFyZ2V0IGJ1bmRsZXMgYWZ0ZXIgcGFyc2luZworICAgICAgICAgICAgUmVzb3VyY2VbXSBzZXQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICBzZXRbMF0gPSBuZXcgUmVzb3VyY2VUYWJsZSgpOworICAgICAgICAgICAgc2V0WzFdID0gbmV3IFJlc291cmNlVGFibGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbGVuaWVudCBleHRyYWN0aW9uIG9mIHNvdXJjZSBsYW5ndWFnZQorICAgICAgICAgICAgaWYobWFrZVNvdXJjZVJvb3QgPT0gdHJ1ZSl7IAorICAgICAgICAgICAgICAgIHNldFswXS5uYW1lID0gUk9PVDsKKyAgICAgICAgICAgIH1lbHNlIGlmKHNvdXJjZUxhbmchPW51bGwpeworICAgICAgICAgICAgICAgIHNldFswXS5uYW1lID0gc291cmNlTGFuZy5yZXBsYWNlKCctJywnXycpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYoeG1sU3JjTGFuZyAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgc2V0WzBdLm5hbWUgPSB4bWxTcmNMYW5nLnJlcGxhY2UoJy0nLCdfJyk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IENvdWxkIG5vdCBmaWd1cmUgb3V0IHRoZSBzb3VyY2UgbGFuZ3VhZ2Ugb2YgdGhlIGZpbGUuIFBsZWFzZSBjaGVjayB0aGUgWExJRkYgZmlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbGVuaWVudCBleHRyYWN0aW9uIG9mIHRoZSB0YXJnZXQgbGFuZ3VhZ2UKKyAgICAgICAgICAgIGlmKHRhcmdldExhbmchPW51bGwpeworICAgICAgICAgICAgICAgIHNldFsxXS5uYW1lID0gdGFyZ2V0TGFuZy5yZXBsYWNlKCctJywnXycpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgaWYoeG1sVGFyZ2V0TGFuZyE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHNldFsxXS5uYW1lID0geG1sVGFyZ2V0TGFuZy5yZXBsYWNlKCctJywnXycpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IENvdWxkIG5vdCBmaWd1cmUgb3V0IHRoZSB0YXJnZXQgbGFuZ3VhZ2Ugb2YgdGhlIGZpbGUuIFByb2R1Y2luZyBzb3VyY2UgYnVuZGxlIG9ubHkuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIGFueSA8YWx0LXRyYW5zPiBlbGVtZW50cyBhcmUgcHJlc2VudAorICAgICAgICAgICAgTm9kZUxpc3QgYWx0VHJhbnMgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoQUxUVFJBTlMpOworICAgICAgICAgICAgaWYoYWx0VHJhbnMuZ2V0TGVuZ3RoKCk+MCl7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiA8YWx0LXRyYW5zPiBlbGVtZW50cyBpbiBmb3VuZC4gSWdub3JpbmcgYWxsIDxhbHQtdHJhbnM+IGVsZW1lbnRzLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBnZXQgYWxsIHRoZSBncm91cCBlbGVtZW50cworICAgICAgICAgICAgTm9kZUxpc3QgbGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShHUk9VUFMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBmaXJzdCBncm91cCBlbGVtZW50LiBUaGUgZmlyc3QgZ3JvdXAgZWxlbWVudCBpcyAKKyAgICAgICAgICAgIC8vIHRoZSBiYXNlIHRhYmxlIHRoYXQgbXVzdCBiZSBwYXJzZWQgcmVjdXJzaXZlbHkKKyAgICAgICAgICAgIHBhcnNlVGFibGUobGlzdC5pdGVtKDApLCBzZXQpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3cml0ZSBvdXQgdGhlIGJ1bmRsZQorICAgICAgICAgICAgd3JpdGVSZXNvdXJjZShzZXQsIHhtbGZpbGVOYW1lKTsKKyAgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBzZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogIiArIHNlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVSZXNvdXJjZShSZXNvdXJjZVtdIHNldCwgU3RyaW5nIHhtbGZpbGVOYW1lKXsKKyAgICAgICAgaWYodGFyZ2V0T25seT09ZmFsc2UpeworICAgICAgICAgICAgd3JpdGVSZXNvdXJjZShzZXRbMF0sIHhtbGZpbGVOYW1lLCBzb3VyY2VGaWxlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYoc291cmNlT25seSA9PSBmYWxzZSl7CisgICAgICAgICAgICBpZih0YXJnZXRPbmx5PT10cnVlICYmIHNldFsxXS5uYW1lID09IG51bGwpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJUaGUgIisgeG1sZmlsZU5hbWUgKyIgZG9lcyBub3QgY29udGFpbiB0cmFuc2xhdGlvblxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzZXRbMV0ubmFtZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICB3cml0ZVJlc291cmNlKHNldFsxXSwgeG1sZmlsZU5hbWUsIHRhcmdldEZpbGVOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVSZXNvdXJjZShSZXNvdXJjZSBzZXQsIFN0cmluZyBzb3VyY2VGaWxlTmFtZSwgU3RyaW5nIHRhcmdldEZpbGVOYW1lKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXRGaWxlTmFtZSA9IG51bGw7CisgICAgICAgICAgICBpZih0YXJnZXRGaWxlTmFtZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBvdXRwdXRGaWxlTmFtZSA9IGRlc3REaXIrRmlsZS5zZXBhcmF0b3IrdGFyZ2V0RmlsZU5hbWUrIi50eHQiOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgb3V0cHV0RmlsZU5hbWUgPSBkZXN0RGlyK0ZpbGUuc2VwYXJhdG9yK3NldC5uYW1lKyIudHh0IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZmlsZSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGVOYW1lKTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkT3V0cHV0U3RyZWFtIHdyaXRlciA9IG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbShmaWxlKTsKKworICAgICAgICAgICAgd3JpdGVIZWFkZXIod3JpdGVyLHNvdXJjZUZpbGVOYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9Ob3cgc3RhcnQgd3JpdGluZyB0aGUgcmVzb3VyY2U7CisgICAgICAgICAgICBSZXNvdXJjZSBjdXJyZW50ID0gc2V0OworICAgICAgICAgICAgd2hpbGUoY3VycmVudCE9bnVsbCl7CisgICAgICAgICAgICAgICAgY3VycmVudC53cml0ZSh3cml0ZXIsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgd3JpdGVyLmZsdXNoKCk7CisgICAgICAgICAgICB3cml0ZXIuY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGllKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SIDoiICsgaWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0TGFuZ3VhZ2VOYW1lKERvY3VtZW50IGRvYywgU3RyaW5nIGxhbmcpeworICAgICAgICBpZihkb2MhPW51bGwpeworICAgICAgICAgICAgTm9kZUxpc3QgbGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShGSUxFKTsKKyAgICAgICAgICAgIE5vZGUgbm9kZSA9IGxpc3QuaXRlbSgwKTsKKyAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyID0gbm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBOb2RlIG9yaWcgPSBhdHRyLmdldE5hbWVkSXRlbShsYW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYob3JpZyAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG9yaWcuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgTm9kZUxpc3QgZ3JvdXBMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKEdST1VQUyk7CisgICAgICAgICAgICAgICAgTm9kZSBncm91cCA9IGdyb3VwTGlzdC5pdGVtKDApOworICAgICAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBncm91cEF0dCA9IGdyb3VwLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgICAgICBOb2RlIGlkID0gZ3JvdXBBdHQuZ2V0TmFtZWRJdGVtKElEKTsKKyAgICAgICAgICAgICAgICBpZihpZCE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZFZhbCA9IGlkLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoIW5hbWUuZXF1YWxzKGlkVmFsKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldBUk5JTkc6IFRoZSBpZCB2YWx1ZSAhPSBsYW5ndWFnZSBuYW1lLiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxlYXNlIGNvbXBhcmUgdGhlIG91dHB1dCB3aXRoIHRoZSBvcmlnbmFsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJQ1UgUmVzb3VyY2VCdW5kbGUgYmVmb3JlIHByb2NlZWRpbmcuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoIWlzWG1sTGFuZyhuYW1lKSl7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVGhlIGF0dHJpYnV0ZSAiKyBsYW5nICsgIj1cIiIrIG5hbWUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIG9mIDxmaWxlPiBlbGVtZW50IGRvZXMgbm90IHNhdGlzZnkgUkZDIDE3NjYgY29uZGl0aW9ucy4iKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgLy8gY2hlY2sgaWYgdGhlIHhsaWZmIGZpbGUgaXMgdHJhbnNsYXRlZCBpbnRvIG11bHRpcGxlIGxhbmd1YWdlcworICAgIC8vIFRoZSBYTElGRiBzcGVjaWZpY2F0aW9uIGFsbG93cyBmb3Igc2luZ2xlIDx0YXJnZXQ+IGVsZW1lbnQKKyAgICAvLyBhcyB0aGUgY2hpbGQgb2YgPHRyYW5zLXVuaXQ+IGJ1dCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgCisgICAgLy8gPHRhcmdldD4gZWxlbWVudCBtYXkgZGlmZmVyZW50IGFjcm9zcyA8dHJhbnMtdW5pdD4gZWxlbWVudHMKKyAgICAvLyBjaGVjayBmb3IgaXQuIFNpbWlsYXIgaXMgdGhlIGNhc2Ugd2l0aCA8c291cmNlPiBlbGVtZW50cworICAgIHByaXZhdGUgU3RyaW5nIGNoZWNrTGFuZ0F0dHJpYnV0ZShOb2RlTGlzdCBsaXN0LCBTdHJpbmcgb3JpZ05hbWUpeworICAgICAgICBTdHJpbmcgb2xkTGFuZ05hbWU9b3JpZ05hbWU7CisgICAgICAgIGZvcihpbnQgaSA9IDAgO2k8bGlzdC5nZXRMZW5ndGgoKTsgaSsrKXsKKyAgICAgICAgICAgIE5vZGUgbm9kZSA9IGxpc3QuaXRlbShpKTsKKyAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyID0gbm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBOb2RlIGxhbmcgPSBhdHRyLmdldE5hbWVkSXRlbShYTUxMQU5HKTsKKyAgICAgICAgICAgIFN0cmluZyBsYW5nTmFtZSA9IG51bGw7CisgICAgICAgICAgICAvLyB0aGUgdGFyZ2V0IGVsZW1lbnQgc2hvdWxkIGFsd2F5cyBjb250YWluIHhtbDpsYW5nIGF0dHJpYnV0ZQorICAgICAgICAgICAgaWYobGFuZz09bnVsbCApeworICAgICAgICAgICAgICAgIGlmKG9yaWdOYW1lPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFbmNvdW50ZXJlZCA8dGFyZ2V0PiBlbGVtZW50IHdpdGhvdXQgeG1sOmxhbmcgYXR0cmlidXRlLiBQbGVhc2UgZml4IHRoZSBiZWxvdyBlbGVtZW50IGluIHRoZSBYTElGRiBmaWxlLlxuIisgbm9kZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsYW5nTmFtZSA9IG9yaWdOYW1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxhbmdOYW1lID0gbGFuZy5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYob2xkTGFuZ05hbWUhPW51bGwgJiYgbGFuZ05hbWUhPW51bGwgJiYgIWxhbmdOYW1lLmVxdWFscyhvbGRMYW5nTmFtZSkpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJUaGUgPHRyYW5zLXVuaXQ+IGVsZW1lbnRzIG11c3QgYmUgYmlsaW5ndWFsLCBtdWx0aWxpbmd1YWwgdHJhbmxhdGlvbnMgbm90IHN1cHBvcnRlZC4geG1sOmxhbmcgPSAiICsgb2xkTGFuZ05hbWUgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCB4bWw6bGFuZyA9ICIgKyBsYW5nTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvbGRMYW5nTmFtZSA9IGxhbmdOYW1lOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRMYW5nTmFtZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZXsKKyAgICAgICAgU3RyaW5nW10gbm90ZSA9IG5ldyBTdHJpbmdbMjBdOworICAgICAgICBpbnQgbm90ZUxlbiA9IDA7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGU7CisgICAgICAgIFN0cmluZyBjb21tZW50OworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgUmVzb3VyY2UgbmV4dDsKKyAgICAgICAgcHVibGljIFN0cmluZyBlc2NhcGVTeW50YXhDaGFycyhTdHJpbmcgdmFsKXsKKyAgICAgICAgICAgIC8vIGVzY2FwZSB0aGUgZW1iZWRkZWQgcXVvdGVzCisgICAgICAgICAgICBjaGFyW10gc3RyID0gdmFsLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c3RyLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0cltpXSl7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1x1MDAyMic6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcpOyAvL2FwcGVuZCBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyW2ldKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdoaWxlKG5leHQhPW51bGwpeworICAgICAgICAgICAgICAgIG5leHQud3JpdGUod3JpdGVyLCBudW1JbmRlbnQrMSwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlSW5kZW50KE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQpeworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8IG51bUluZGVudDsgaSsrKXsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsSU5ERU5UKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBTdHJpbmcgdmFsdWUpeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSB2YWx1ZS5nZXRCeXRlcyhDSEFSU0VUKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGUoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7CisgICAgICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlQ29tbWVudHMoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCl7CisgICAgICAgICAgICBpZihjb21tZW50IT1udWxsIHx8IHRyYW5zbGF0ZSAhPSBudWxsIHx8IG5vdGVMZW4gPiAwKXsKKyAgICAgICAgICAgICAgICAvLyBwcmludCB0aGUgc3RhcnQgb2YgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDT01NRU5UU1RBUlQrTElORVNFUCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgY29tbWVudCBpZiBhbnkKKyAgICAgICAgICAgICAgICBpZihjb21tZW50IT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENPTU1FTlRNSURETEUpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIGNvbW1lbnQpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIExJTkVTRVApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCB0aGUgdHJhbnNsYXRlIGF0dHJpYnV0ZSBpZiBhbnkKKyAgICAgICAgICAgICAgICBpZih0cmFuc2xhdGUhPW51bGwpeworICAgICAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgVEFHK1RSQU5TTEFURStTUEFDRSk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgdHJhbnNsYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgbm90ZSBlbGVtZW50cyBpZiBhbnkKKyAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxub3RlTGVuOyBpKyspeworICAgICAgICAgICAgICAgICAgICBpZihub3RlW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgVEFHK05PVEUrU1BBQ0Urbm90ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIExJTkVTRVApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHRlcm1pbmF0ZSB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENPTU1FTlRFTkQrTElORVNFUCk7CisgICAgICAgICAgICB9ICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZVN0cmluZyBleHRlbmRzIFJlc291cmNleworICAgICAgICBTdHJpbmcgdmFsOworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICBpZihiYXJlPT10cnVlKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkJhcmUgb3B0aW9uIGlzIHNldCB0byB0cnVlIGJ1dCB0aGUgcmVzb3VyY2UgaGFzIGEgbmFtZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLFFVT1RFK2VzY2FwZVN5bnRheENoYXJzKHZhbCkrUVVPVEUpOyAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbmFtZStDT0xPTitTVFJJTkdTKyBPUEVOQlJBQ0UgKyBRVU9URSArIGVzY2FwZVN5bnRheENoYXJzKHZhbCkgKyBRVU9URSsgQ0xPU0VCUkFDRSArIExJTkVTRVApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VBbGlhcyBleHRlbmRzIFJlc291cmNleworICAgICAgICBTdHJpbmcgdmFsOworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9ICAoKG5hbWU9PW51bGwpPyBFTVBUWTogbmFtZSkrQ09MT04rQUxJQVMrIE9QRU5CUkFDRStRVU9URStlc2NhcGVTeW50YXhDaGFycyh2YWwpK1FVT1RFK0NMT1NFQlJBQ0U7CisgICAgICAgICAgICBpZihiYXJlPT10cnVlKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkJhcmUgb3B0aW9uIGlzIHNldCB0byB0cnVlIGJ1dCB0aGUgcmVzb3VyY2UgaGFzIGEgbmFtZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLGxpbmUpOyAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbGluZStMSU5FU0VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlSW50IGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFN0cmluZyB2YWw7CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3cml0ZUNvbW1lbnRzKHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gICgobmFtZT09bnVsbCk/IEVNUFRZOiBuYW1lKStDT0xPTitJTlRTKyBPUEVOQlJBQ0UgKyB2YWwgK0NMT1NFQlJBQ0U7CisgICAgICAgICAgICBpZihiYXJlPT10cnVlKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkJhcmUgb3B0aW9uIGlzIHNldCB0byB0cnVlIGJ1dCB0aGUgcmVzb3VyY2UgaGFzIGEgbmFtZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLGxpbmUpOyAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbGluZStMSU5FU0VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQmluYXJ5IGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFN0cmluZyBpbnRlcm5hbDsKKyAgICAgICAgU3RyaW5nIGV4dGVybmFsOworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICBpZihpbnRlcm5hbD09bnVsbCl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSAoKG5hbWU9PW51bGwpID8gRU1QVFkgOiBuYW1lKStDT0xPTitJTVBPUlQrIE9QRU5CUkFDRStRVU9URStleHRlcm5hbCtRVU9URStDTE9TRUJSQUNFICsgKChiYXJlPT10cnVlKSA/ICBFTVBUWSA6IExJTkVTRVApOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgbGluZSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9ICgobmFtZT09bnVsbCkgPyBFTVBUWSA6IG5hbWUpK0NPTE9OK0JJTisgT1BFTkJSQUNFK2ludGVybmFsK0NMT1NFQlJBQ0UrICgoYmFyZT09dHJ1ZSkgPyAgRU1QVFkgOiBMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsbGluZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlSW50VmVjdG9yIGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFJlc291cmNlSW50IGZpcnN0OworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIG5hbWUrQ09MT04rSU5UVkVDVE9SK09QRU5CUkFDRStMSU5FU0VQKTsKKyAgICAgICAgICAgIG51bUluZGVudCsrOworICAgICAgICAgICAgUmVzb3VyY2VJbnQgY3VycmVudCA9IChSZXNvdXJjZUludCkgZmlyc3Q7CisgICAgICAgICAgICB3aGlsZShjdXJyZW50ICE9IG51bGwpeworICAgICAgICAgICAgICAgIC8vY3VycmVudC53cml0ZSh3cml0ZXIsIG51bUluZGVudCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgY3VycmVudC52YWwpOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ09NTUErTElORVNFUCk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IChSZXNvdXJjZUludCkgY3VycmVudC5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbnVtSW5kZW50LS07CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENMT1NFQlJBQ0UrTElORVNFUCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZVRhYmxlIGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFJlc291cmNlIGZpcnN0OworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIG5hbWUrQ09MT04rVEFCTEUrT1BFTkJSQUNFK0xJTkVTRVApOworICAgICAgICAgICAgbnVtSW5kZW50Kys7CisgICAgICAgICAgICBSZXNvdXJjZSBjdXJyZW50ID0gZmlyc3Q7CisgICAgICAgICAgICB3aGlsZShjdXJyZW50ICE9IG51bGwpeworICAgICAgICAgICAgICAgIGN1cnJlbnQud3JpdGUod3JpdGVyLCBudW1JbmRlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbnVtSW5kZW50LS07CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENMT1NFQlJBQ0UrTElORVNFUCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUFycmF5IGV4dGVuZHMgUmVzb3VyY2V7CisgICAgICAgIFJlc291cmNlIGZpcnN0OworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIG5hbWUrQ09MT04rQVJSQVlTK09QRU5CUkFDRStMSU5FU0VQKTsKKyAgICAgICAgICAgIG51bUluZGVudCsrOworICAgICAgICAgICAgUmVzb3VyY2UgY3VycmVudCA9IGZpcnN0OworICAgICAgICAgICAgd2hpbGUoY3VycmVudCAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50LndyaXRlKHdyaXRlciwgbnVtSW5kZW50LCB0cnVlKTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENPTU1BK0xJTkVTRVApOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBudW1JbmRlbnQtLTsKKyAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ0xPU0VCUkFDRStMSU5FU0VQKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRBdHRyaWJ1dGVWYWx1ZShOb2RlIHNOb2RlLCBTdHJpbmcgYXR0cmliTmFtZSl7CisgICAgICAgIFN0cmluZyB2YWx1ZT1udWxsOworICAgICAgICBOb2RlIG5vZGUgPSBzTm9kZTsKKworICAgICAgICBOYW1lZE5vZGVNYXAgYXR0cmlidXRlcyA9IG5vZGUuZ2V0QXR0cmlidXRlcygpOworICAgICAgICBOb2RlIGF0dHIgPSBhdHRyaWJ1dGVzLmdldE5hbWVkSXRlbShhdHRyaWJOYW1lKTsKKyAgICAgICAgaWYoYXR0ciE9bnVsbCl7CisgICAgICAgICAgICB2YWx1ZSA9IGF0dHIuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZVJlc291cmNlU3RyaW5nKE5vZGUgbm9kZSwgUmVzb3VyY2VTdHJpbmdbXSBzZXQpeworICAgICAgICBSZXNvdXJjZVN0cmluZyBjdXJyZW50U291cmNlOworICAgICAgICBSZXNvdXJjZVN0cmluZyBjdXJyZW50VGFyZ2V0OworICAgICAgICBjdXJyZW50U291cmNlID0gIHNldFswXTsKKyAgICAgICAgY3VycmVudFRhcmdldCA9ICBzZXRbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lICAgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFRSQU5TTEFURSk7CisgICAgICAgIAorICAgICAgICAvLyBsb29wIHRvIHBpY2t1cCA8c291cmNlPiwgPG5vdGU+IGFuZCA8dGFyZ2V0PiBlbGVtZW50cworICAgICAgICBmb3IoTm9kZSB0cmFuc1VuaXQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgdHJhbnNVbml0IT1udWxsOyB0cmFuc1VuaXQgPSB0cmFuc1VuaXQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gdHJhbnNVbml0LmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHRyYW5zVW5pdC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb21tZW50CisgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSAgY3VycmVudFRhcmdldC5jb21tZW50ID0gdHJhbnNVbml0LmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYoIHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKFNPVVJDRSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBzb3VyY2UgYW5kIHRhcmdldCB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS52YWwgPSBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gY3VycmVudFRhcmdldC50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBub3RlIHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoVEFSR0VUKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdGFyZ2V0IGVsZW1lbnQgcmVwbGFjZSBpdAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VSZXNvdXJjZUludChOb2RlIG5vZGUsIFJlc291cmNlSW50W10gc2V0KXsKKyAgICAgICAgUmVzb3VyY2VJbnQgY3VycmVudFNvdXJjZTsKKyAgICAgICAgUmVzb3VyY2VJbnQgY3VycmVudFRhcmdldDsKKyAgICAgICAgY3VycmVudFNvdXJjZSA9ICBzZXRbMF07CisgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAgc2V0WzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSAgID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBUUkFOU0xBVEUpOworICAgICAgICAvLyBsb29wIHRvIHBpY2t1cCA8c291cmNlPiwgPG5vdGU+IGFuZCA8dGFyZ2V0PiBlbGVtZW50cworICAgICAgICBmb3IoTm9kZSB0cmFuc1VuaXQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgdHJhbnNVbml0IT1udWxsOyB0cmFuc1VuaXQgPSB0cmFuc1VuaXQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gdHJhbnNVbml0LmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHRyYW5zVW5pdC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb21tZW50CisgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSAgY3VycmVudFRhcmdldC5jb21tZW50ID0gdHJhbnNVbml0LmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYoIHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKFNPVVJDRSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBzb3VyY2UgYW5kIHRhcmdldCB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSBjdXJyZW50VGFyZ2V0LnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS52YWwgPSBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBub3RlIHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoVEFSR0VUKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdGFyZ2V0IGVsZW1lbnQgcmVwbGFjZSBpdAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlUmVzb3VyY2VBbGlhcyhOb2RlIG5vZGUsIFJlc291cmNlQWxpYXNbXSBzZXQpeworICAgICAgICBSZXNvdXJjZUFsaWFzIGN1cnJlbnRTb3VyY2U7CisgICAgICAgIFJlc291cmNlQWxpYXMgY3VycmVudFRhcmdldDsKKyAgICAgICAgY3VycmVudFNvdXJjZSA9ICBzZXRbMF07CisgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAgc2V0WzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSAgID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBUUkFOU0xBVEUpOworICAgICAgICAvLyBsb29wIHRvIHBpY2t1cCA8c291cmNlPiwgPG5vdGU+IGFuZCA8dGFyZ2V0PiBlbGVtZW50cworICAgICAgICBmb3IoTm9kZSB0cmFuc1VuaXQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgdHJhbnNVbml0IT1udWxsOyB0cmFuc1VuaXQgPSB0cmFuc1VuaXQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gdHJhbnNVbml0LmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHRyYW5zVW5pdC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb21tZW50CisgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSAgY3VycmVudFRhcmdldC5jb21tZW50ID0gdHJhbnNVbml0LmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYoIHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKFNPVVJDRSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBzb3VyY2UgYW5kIHRhcmdldCB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSBjdXJyZW50VGFyZ2V0LnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS52YWwgPSBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBub3RlIHZhbHVlcworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoVEFSR0VUKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdGFyZ2V0IGVsZW1lbnQgcmVwbGFjZSBpdAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LnZhbCA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlUmVzb3VyY2VCaW5hcnkoTm9kZSBub2RlLCBSZXNvdXJjZUJpbmFyeVtdIHNldCl7CisgICAgICAgIFJlc291cmNlQmluYXJ5IGN1cnJlbnRTb3VyY2U7CisgICAgICAgIFJlc291cmNlQmluYXJ5IGN1cnJlbnRUYXJnZXQ7CisgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAgc2V0WzBdOworICAgICAgICBjdXJyZW50VGFyZ2V0ID0gIHNldFsxXTsKKworICAgICAgICAvLyBsb29wIHRvIHBpY2t1cCA8c291cmNlPiwgPG5vdGU+IGFuZCA8dGFyZ2V0PiBlbGVtZW50cworICAgICAgICBmb3IoTm9kZSB0cmFuc1VuaXQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgdHJhbnNVbml0IT1udWxsOyB0cmFuc1VuaXQgPSB0cmFuc1VuaXQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gdHJhbnNVbml0LmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHRyYW5zVW5pdC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb21tZW50CisgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSAgY3VycmVudFRhcmdldC5jb21tZW50ID0gdHJhbnNVbml0LmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYoIHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKEJJTlNPVVJDRSkpeworICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRvIHBpY2t1cCBpbnRlcm5hbC1maWxlL2V4dGVuYWwtZmlsZSBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgbm90ZSB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKElOVEVSTkFMRklMRSkpeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRhcmdldCBlbGVtZW50IHJlcGxhY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNyYyA9IGdldEF0dHJpYnV0ZVZhbHVlKHRyYW5zVW5pdCwgQ1JDKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vdmVyaWZ5IHRoYXQgdGhlIGJpbmFyeSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgQ1JDCisgICAgICAgICAgICAgICAgICAgIGlmKEludGVnZXIucGFyc2VJbnQoY3JjLCAxMCkgIT0gQ2FsY3VsYXRlQ1JDMzIuY29tcHV0ZUNSQzMyKHZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogQ1JDIHZhbHVlIGluY29ycmVjdCEgUGxlYXNlIGNoZWNrLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQuaW50ZXJuYWwgPSBjdXJyZW50U291cmNlLmludGVybmFsPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoRVhURVJOQUxGSUxFKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IGdldEF0dHJpYnV0ZVZhbHVlKHRyYW5zVW5pdCwgSFJFRik7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQuZXh0ZXJuYWwgPSBjdXJyZW50U291cmNlLmV4dGVybmFsID0gZmlsZU5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlVHJhbnNVbml0KE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworCisgICAgICAgIFN0cmluZyBhdHRyVHlwZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU1RZUEUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgVFJBTlNMQVRFKTsKKyAgICAgICAgaWYoYXR0clR5cGU9PW51bGwgfHwgYXR0clR5cGUuZXF1YWxzKFNUUklOR1MpKXsKKyAgICAgICAgICAgIFJlc291cmNlU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBSZXNvdXJjZVN0cmluZ1syXTsKKyAgICAgICAgICAgIHN0cmluZ3NbMF0gPSBuZXcgUmVzb3VyY2VTdHJpbmcoKTsKKyAgICAgICAgICAgIHN0cmluZ3NbMV0gPSBuZXcgUmVzb3VyY2VTdHJpbmcoKTsKKyAgICAgICAgICAgIHBhcnNlUmVzb3VyY2VTdHJpbmcobm9kZSwgc3RyaW5ncyk7CisgICAgICAgICAgICBzdHJpbmdzWzBdLnRyYW5zbGF0ZSA9IHN0cmluZ3NbMV0udHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgc2V0WzBdID0gc3RyaW5nc1swXTsKKyAgICAgICAgICAgIHNldFsxXSA9IHN0cmluZ3NbMV07CisgICAgICAgIH1lbHNlIGlmKGF0dHJUeXBlLmVxdWFscyhJTlRTKSl7CisgICAgICAgICAgICBSZXNvdXJjZUludFtdIGludHMgPSBuZXcgUmVzb3VyY2VJbnRbMl07CisgICAgICAgICAgICBpbnRzWzBdID0gbmV3IFJlc291cmNlSW50KCk7CisgICAgICAgICAgICBpbnRzWzFdID0gbmV3IFJlc291cmNlSW50KCk7CisgICAgICAgICAgICBwYXJzZVJlc291cmNlSW50KG5vZGUsIGludHMpOworICAgICAgICAgICAgaW50c1swXS50cmFuc2xhdGUgPSBpbnRzWzFdLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgIHNldFswXSA9IGludHNbMF07CisgICAgICAgICAgICBzZXRbMV0gPSBpbnRzWzFdOworICAgICAgICB9ZWxzZSBpZihhdHRyVHlwZS5lcXVhbHMoQUxJQVMpKXsKKyAgICAgICAgICAgIFJlc291cmNlQWxpYXNbXSBpbnRzID0gbmV3IFJlc291cmNlQWxpYXNbMl07CisgICAgICAgICAgICBpbnRzWzBdID0gbmV3IFJlc291cmNlQWxpYXMoKTsKKyAgICAgICAgICAgIGludHNbMV0gPSBuZXcgUmVzb3VyY2VBbGlhcygpOworICAgICAgICAgICAgcGFyc2VSZXNvdXJjZUFsaWFzKG5vZGUsIGludHMpOworICAgICAgICAgICAgaW50c1swXS50cmFuc2xhdGUgPSBpbnRzWzFdLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgIHNldFswXSA9IGludHNbMF07CisgICAgICAgICAgICBzZXRbMV0gPSBpbnRzWzFdOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQmluVW5pdChOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKyAgICAgICAgUmVzb3VyY2VCaW5hcnlbXSBiaW5zID0gbmV3IFJlc291cmNlQmluYXJ5WzJdOworICAgICAgICBiaW5zWzBdID0gbmV3IFJlc291cmNlQmluYXJ5KCk7CisgICAgICAgIGJpbnNbMV0gPSBuZXcgUmVzb3VyY2VCaW5hcnkoKTsKKyAgICAgICAgUmVzb3VyY2UgY3VycmVudFNvdXJjZSA9IGJpbnNbMF07CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRUYXJnZXQgPSBiaW5zWzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSAgID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBUUkFOU0xBVEUpOworICAgICAgICBjdXJyZW50VGFyZ2V0Lm5hbWUgPSBjdXJyZW50U291cmNlLm5hbWUgPSByZXNOYW1lOworICAgICAgICBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IGN1cnJlbnRUYXJnZXQudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICBmb3IoTm9kZSBjaGlsZCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyBjaGlsZCAhPSBudWxsOyBjaGlsZCA9IGNoaWxkLmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IGNoaWxkLmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNoaWxkLmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSBjaGlsZC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKEJJTlNPVVJDRSkpeworICAgICAgICAgICAgICAgICAgICBwYXJzZVJlc291cmNlQmluYXJ5KGNoaWxkLCBiaW5zKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub3RlID0gIGNoaWxkLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPSBub3RlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZXRbMF0gPSBiaW5zWzBdOworICAgICAgICBzZXRbMV0gPSBiaW5zWzFdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VBcnJheShOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKyAgICAgICAgaWYoc2V0WzBdPT1udWxsKXsKKyAgICAgICAgICAgIHNldFswXSA9IG5ldyBSZXNvdXJjZUFycmF5KCk7CisgICAgICAgICAgICBzZXRbMV0gPSBuZXcgUmVzb3VyY2VBcnJheSgpOworICAgICAgICB9CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRTb3VyY2UgPSBzZXRbMF07CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRUYXJnZXQgPSBzZXRbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgIGJvb2xlYW4gaXNGaXJzdCA9IHRydWU7CisgICAgICAgIAorICAgICAgICBmb3IoTm9kZSBjaGlsZCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyBjaGlsZCAhPSBudWxsOyBjaGlsZCA9IGNoaWxkLmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IGNoaWxkLmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNoaWxkLmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSBjaGlsZC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKFRSQU5TVU5JVCkpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlVHJhbnNVbml0KGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFNvdXJjZSkuZmlyc3QgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFNvdXJjZSkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRUYXJnZXQpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbm90ZSA9ICBjaGlsZC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0gbm90ZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhCSU5VTklUKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VCaW5Vbml0KGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFNvdXJjZSkuZmlyc3QgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFNvdXJjZSkuZmlyc3QubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VBcnJheSkgY3VycmVudFRhcmdldCkuZmlyc3QubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgcGFyc2VJbnRWZWN0b3IoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisgICAgICAgIGlmKHNldFswXT09bnVsbCl7CisgICAgICAgICAgICBzZXRbMF0gPSBuZXcgUmVzb3VyY2VJbnRWZWN0b3IoKTsKKyAgICAgICAgICAgIHNldFsxXSA9IG5ldyBSZXNvdXJjZUludFZlY3RvcigpOworICAgICAgICB9CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRTb3VyY2UgPSBzZXRbMF07CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRUYXJnZXQgPSBzZXRbMV07CisgICAgICAgIFN0cmluZyByZXNOYW1lID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLFRSQU5TTEFURSk7CisgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgIGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICBib29sZWFuIGlzRmlyc3QgPSB0cnVlOworICAgICAgICBmb3IoTm9kZSBjaGlsZCA9IG5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyBjaGlsZCAhPSBudWxsOyBjaGlsZCA9IGNoaWxkLmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IGNoaWxkLmdldE5vZGVUeXBlKCk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNoaWxkLmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICBpZih0eXBlID09IE5vZGUuQ09NTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLmNvbW1lbnQgPSBjdXJyZW50VGFyZ2V0LmNvbW1lbnQgPSBjaGlsZC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgIGlmKG5hbWUuZXF1YWxzKFRSQU5TVU5JVCkpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlVHJhbnNVbml0KGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZG93biBjYXN0IHNob3VsZCBiZSBzYWZlIC4uIGlmIG5vdCBzb21ldGhpbmcgaXMgdGVycmlibHkgd3JvbmchIQorICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlSW50VmVjdG9yKSBjdXJyZW50U291cmNlKS5maXJzdCA9IChSZXNvdXJjZUludCluZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlSW50VmVjdG9yKSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IChSZXNvdXJjZUludCkgbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VJbnRWZWN0b3IpIGN1cnJlbnRTb3VyY2UpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZUludFZlY3RvcikgY3VycmVudFRhcmdldCkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub3RlID0gIGNoaWxkLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPSBub3RlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgcGFyc2VUYWJsZShOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKyAgICAgICAgaWYoc2V0WzBdPT1udWxsKXsKKyAgICAgICAgICAgIHNldFswXSA9IG5ldyBSZXNvdXJjZVRhYmxlKCk7CisgICAgICAgICAgICBzZXRbMV0gPSBuZXcgUmVzb3VyY2VUYWJsZSgpOworICAgICAgICB9CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRTb3VyY2UgPSBzZXRbMF07CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRUYXJnZXQgPSBzZXRbMV07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcmVzTmFtZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSxUUkFOU0xBVEUpOworICAgICAgICBpZihyZXNOYW1lIT1udWxsICYmIGN1cnJlbnRTb3VyY2UubmFtZT09bnVsbCAmJiBjdXJyZW50VGFyZ2V0Lm5hbWU9PW51bGwpeworICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uYW1lID0gY3VycmVudFRhcmdldC5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgfQorICAgICAgICBjdXJyZW50VGFyZ2V0LnRyYW5zbGF0ZSA9IGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgZm9yKE5vZGUgY2hpbGQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0gbnVsbDsgY2hpbGQgPSBjaGlsZC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSBjaGlsZC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjaGlsZC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gY3VycmVudFRhcmdldC5jb21tZW50ID0gY2hpbGQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZih0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhHUk9VUFMpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZUdyb3VwKGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZG93biBjYXN0IHNob3VsZCBiZSBzYWZlIC4uIGlmIG5vdCBzb21ldGhpbmcgaXMgdGVycmlibHkgd3JvbmchIQorICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKFRSQU5TVU5JVCkpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlVHJhbnNVbml0KGNoaWxkLCBuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaXNGaXJzdD09dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZG93biBjYXN0IHNob3VsZCBiZSBzYWZlIC4uIGlmIG5vdCBzb21ldGhpbmcgaXMgdGVycmlibHkgd3JvbmchIQorICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRTb3VyY2UpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50VGFyZ2V0KS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5vdGUgPSAgY2hpbGQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9IG5vdGU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoQklOVU5JVCkpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlQmluVW5pdChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRvd24gY2FzdCBzaG91bGQgYmUgc2FmZSAuLiBpZiBub3Qgc29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nISEKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3QgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlR3JvdXAoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisKKyAgICAgICAgLy8gZmlndXJlIG91dCB3aGF0IGtpbmQgb2YgZ3JvdXAgdGhpcyBpcworICAgICAgICBTdHJpbmcgcmVzVHlwZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU1RZUEUpOworICAgICAgICBpZihyZXNUeXBlLmVxdWFscyhBUlJBWVMpKXsKKyAgICAgICAgICAgIHBhcnNlQXJyYXkobm9kZSwgc2V0KTsKKyAgICAgICAgfWVsc2UgaWYoIHJlc1R5cGUuZXF1YWxzKFRBQkxFKSl7CisgICAgICAgICAgICBwYXJzZVRhYmxlKG5vZGUsIHNldCk7CisgICAgICAgIH1lbHNlIGlmKCByZXNUeXBlLmVxdWFscyhJTlRWRUNUT1IpKXsKKyAgICAgICAgICAgIHBhcnNlSW50VmVjdG9yKG5vZGUsIHNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVMaW5lKE91dHB1dFN0cmVhbSB3cml0ZXIsIFN0cmluZyBsaW5lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBsaW5lLmdldEJ5dGVzKENIQVJTRVQpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlKGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlSGVhZGVyKE91dHB1dFN0cmVhbSB3cml0ZXIsIFN0cmluZyBmaWxlTmFtZSl7CisgICAgICAgIHdyaXRlQk9NKHdyaXRlcik7CisgICAgICAgIENhbGVuZGFyIGMgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID1uZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIgKyBMSU5FU0VQKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKiIgKyBMSU5FU0VQKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKiBUb29sOiBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIuWExJRkYySUNVQ29udmVydGVyLmphdmEiICsgTElORVNFUCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICogRGF0ZSAmIFRpbWU6ICIgKyBjLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChjLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKyBjLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsgIiAiICsgYy5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsgQ09MT04gKyBjLmdldChDYWxlbmRhci5NSU5VVEUpKyBMSU5FU0VQKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKiBTb3VyY2UgRmlsZTogIiArIGZpbGVOYW1lICsgTElORVNFUCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICoiICsgTElORVNFUCk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIiArIExJTkVTRVApOworICAgICAgICB3cml0ZUxpbmUod3JpdGVyLCBidWZmZXIudG9TdHJpbmcoKSk7CisKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSAgdm9pZCB3cml0ZUJPTShPdXRwdXRTdHJlYW0gYnVmZmVyKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBCT00uZ2V0Qnl0ZXMoQ0hBUlNFVCk7CisgICAgICAgICAgICBidWZmZXIud3JpdGUoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9tYW5pZmVzdC54bGlmZi5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9tYW5pZmVzdC54bGlmZi5zdHViCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZmYxODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL21hbmlmZXN0LnhsaWZmLnN0dWIKQEAgLTAsMCArMSwxNCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitDbGFzcy1QYXRoOiBpY3U0ai5qYXIKK01haW4tQ2xhc3M6IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwKKworTmFtZTogY29tL2libS9pY3UvCitTcGVjaWZpY2F0aW9uLVRpdGxlOiBYTElGRiB0byBJQ1UgY29udmVyc2lvbiB0b29sCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNAorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IFhMSUZGIHRvIElDVSBDb252ZXJ0ZXIKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNC4wCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorU2VhbGVkOiBmYWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9teUxvY2FsZUVsZW1lbnRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL215TG9jYWxlRWxlbWVudHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNzRhNDdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9teUxvY2FsZUVsZW1lbnRzLmphdmEKQEAgLTAsMCArMSw1NzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqCisgKiBUYWJsZSBvZiBKYXZhIHN1cHBsaWVkIHN0YW5kYXJkIGxvY2FsZSBlbGVtZW50cworICoKKyAqIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGphdmEgTG9jYWxlVG9vbCBMb2NhbGVFbGVtZW50cy5qYXZhCisgKgorICogRGF0ZSBDcmVhdGVkOiBXZWQgQXVnIDIxIDE1OjQ3OjU3ICAxOTk2CisgKgorICogICAgIExvY2FsZSBFbGVtZW50cyBhbmQgUGF0dGVybnM6ICBsYXN0IHVwZGF0ZSAxMC8yMy85NgorICoKKyAqCisgKi8KKworLy8gV0FSTklORyA6IHRoZSBmb3JtYXQgb2YgdGhpcyBmaWxlIHdpbGwgY2hhbmdlIGluIHRoZSBmdXR1cmUhCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIG15TG9jYWxlRWxlbWVudHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkxvY2FsZVN0cmluZyIsICJlbl9VUyIgfSwgLy8gbG9jYWxlIGlkIGJhc2VkIG9uIGlzbyBjb2RlcworICAgICAgICAgICAgeyAiTG9jYWxlSUQiLCAiMDQwOSIgfSwgLy8gV2luZG93cyBpZAorICAgICAgICAgICAgeyAiU2hvcnRMYW5ndWFnZSIsICJlbmciIH0sIC8vIGlzby0zIGFiYnJldiBsYW5nIG5hbWUKKyAgICAgICAgICAgIHsgIlNob3J0Q291bnRyeSIsICJVU0EiIH0sIC8vIGlzby0zIGFiYnJldiBjb3VudHJ5IG5hbWUKKyAgICAgICAgICAgIHsgIkxhbmd1YWdlcyIsIC8vIGxhbmd1YWdlIG5hbWVzCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdW10geworICAgICAgICAgICAgICAgICAgICB7ICJhYiIsICJBYmtoYXppYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFhIiwgIkFmYXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFmIiwgIkFmcmlrYWFucyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3EiLCAiQWxiYW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFtIiwgIkFtaGFyaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFyIiwgIkFyYWJpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaHkiLCAiQXJtZW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFzIiwgIkFzc2FtZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJheSIsICJBeW1hcmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImF6IiwgIkF6ZXJiYWlqYW5pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiYSIsICJCYXNoa2lyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJldSIsICJCYXNxdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJuIiwgIkJlbmdhbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImR6IiwgIkJodXRhbmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJoIiwgIkJpaGFyaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmkiLCAiQmlzbGFtYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYnIiLCAiQnJldG9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiZyIsICJCdWxnYXJpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm15IiwgIkJ1cm1lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJlIiwgIkJ5ZWxvcnVzc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia20iLCAiQ2FtYm9kaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjYSIsICJDYXRhbGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ6aCIsICJDaGluZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjbyIsICJDb3JzaWNhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaHIiLCAiQ3JvYXRpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImNzIiwgIkN6ZWNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJkYSIsICJEYW5pc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5sIiwgIkR1dGNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlbiIsICJFbmdsaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlbyIsICJFc3BlcmFudG8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImV0IiwgIkVzdG9uaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmbyIsICJGYWVyb2VzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZmoiLCAiRmlqaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZmkiLCAiRmlubmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZnIiLCAiRnJlbmNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmeSIsICJGcmlzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnbCIsICJHYWxpY2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia2EiLCAiR2VvcmdpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImRlIiwgIkdlcm1hbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZWwiLCAiR3JlZWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtsIiwgIkdyZWVubGFuZGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnbiIsICJHdWFyYW5pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJndSIsICJHdWphcmF0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaGEiLCAiSGF1c2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIml3IiwgIkhlYnJldyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaGkiLCAiSGluZGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImh1IiwgIkh1bmdhcmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaXMiLCAiSWNlbGFuZGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpbiIsICJJbmRvbmVzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpYSIsICJJbnRlcmxpbmd1YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaWUiLCAiSW50ZXJsaW5ndWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImlrIiwgIkludXBpYWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImdhIiwgIklyaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpdCIsICJJdGFsaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJqYSIsICJKYXBhbmVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAianciLCAiSmF2YW5lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtuIiwgIkthbm5hZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtzIiwgIkthc2htaXJpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrayIsICJLYXpha2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJ3IiwgIktpbnlhcndhbmRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJreSIsICJLaXJnaGl6IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJybiIsICJLaXJ1bmRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrbyIsICJLb3JlYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImt1IiwgIkt1cmRpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImxvIiwgIkxhb3RoaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsYSIsICJMYXRpbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibHYiLCAiTGF0dmlhbiAoTGV0dGlzaCkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImxuIiwgIkxpbmdhbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImx0IiwgIkxpdGh1YW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1rIiwgIk1hY2Vkb25pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1nIiwgIk1hbGFnYXN5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtcyIsICJNYWxheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibWwiLCAiTWFsYXlhbGFtIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtdCIsICJNYWx0ZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtaSIsICJNYW9yaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibXIiLCAiTWFyYXRoaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibW8iLCAiTW9sZGF2aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtbiIsICJNb25nb2xpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hIiwgIk5hdXJ1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuZSIsICJOZXBhbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5vIiwgIk5vcndlZ2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAib2MiLCAiT2NjaXRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAib3IiLCAiT3JpeWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm9tIiwgIk9yb21vIChBZmFuKSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicHMiLCAiUGFzaHRvIChQdXNodG8pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmYSIsICJQZXJzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJwbCIsICJQb2xpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInB0IiwgIlBvcnR1Z3Vlc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInBhIiwgIlB1bmphYmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInF1IiwgIlF1ZWNodWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJtIiwgIlJoYWV0by1Sb21hbmNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJybyIsICJSb21hbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicnUiLCAiUnVzc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic20iLCAiU2Ftb2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzZyIsICJTYW5ncm8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNhIiwgIlNhbnNrcml0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnZCIsICJTY290cyBHYWVsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNyIiwgIlNlcmJpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNoIiwgIlNlcmJvLUNyb2F0aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdCIsICJTZXNvdGhvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0biIsICJTZXRzd2FuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic24iLCAiU2hvbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNkIiwgIlNpbmRoaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2kiLCAiU2luZ2hhbGVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3MiLCAiU2lzd2F0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2siLCAiU2xvdmFrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzbCIsICJTbG92ZW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNvIiwgIlNvbWFsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZXMiLCAiU3BhbmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3UiLCAiU3VuZGFuZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdyIsICJTd2FoaWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdiIsICJTd2VkaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0bCIsICJUYWdhbG9nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ZyIsICJUYWppayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGEiLCAiVGFtaWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInR0IiwgIlRhdGFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ZSIsICJUZWx1Z3UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRoIiwgIlRoYWkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJvIiwgIlRpYmV0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRpIiwgIlRpZ3JpbnlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0byIsICJUb25nYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidHMiLCAiVHNvbmdhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ciIsICJUdXJraXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ayIsICJUdXJrbWVuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0dyIsICJUd2kiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInVrIiwgIlVrcmFpbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidXIiLCAiVXJkdSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidXoiLCAiVXpiZWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInZpIiwgIlZpZXRuYW1lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInZvIiwgIlZvbGFwdWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImN5IiwgIldlbHNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ3byIsICJXb2xvZiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAieGgiLCAiWGhvc2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImppIiwgIllpZGRpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInlvIiwgIllvcnViYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAienUiLCAiWnVsdSIgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJDb3VudHJpZXMiLCAvLyBjb3VudHJ5IG5hbWVzCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdW10geworICAgICAgICAgICAgICAgICAgICB7ICJBRiIsICJBZmdoYW5pc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUwiLCAiQWxiYW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRFoiLCAiQWxnZXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUQiLCAiQW5kb3JyYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQU8iLCAiQW5nb2xhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBSSIsICJBbmd1aWxsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVIiLCAiQXJnZW50aW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBTSIsICJBcm1lbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBVyIsICJBcnViYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVUiLCAiQXVzdHJhbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBVCIsICJBdXN0cmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBWiIsICJBemVyYmFpamFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCUyIsICJCYWhhbWFzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCSCIsICJCYWhyYWluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCRCIsICJCYW5nbGFkZXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCQiIsICJCYXJiYWRvcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlkiLCAiQmVsYXJ1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkUiLCAiQmVsZ2l1bSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQloiLCAiQmVsaXplIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCSiIsICJCZW5pbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQk0iLCAiQmVybXVkYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlQiLCAiQmh1dGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCTyIsICJCb2xpdmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCQSIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCVyIsICJCb3Rzd2FuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlIiLCAiQnJhemlsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCTiIsICJCcnVuZWkgRGFydXNzYWxhbSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkciLCAiQnVsZ2FyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJGIiwgIkJ1cmtpbmEgRmFzbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkkiLCAiQnVydW5kaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0giLCAiQ2FtYm9kaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNNIiwgIkNhbWVyb29uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDQSIsICJDYW5hZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNWIiwgIkNhcGUgVmVyZGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNGIiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEQiLCAiQ2hhZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0wiLCAiQ2hpbGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNOIiwgIkNoaW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDTyIsICJDb2xvbWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS00iLCAiQ29tb3JvcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0ciLCAiQ29uZ28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNSIiwgIkNvc3RhIFJpY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNJIiwgIkNvdGUgRCdpdm9pcmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhSIiwgIkNyb2F0aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNVIiwgIkN1YmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNZIiwgIkN5cHJ1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1oiLCAiQ3plY2ggUmVwdWJsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRLIiwgIkRlbm1hcmsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRKIiwgIkRqaWJvdXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJETSIsICJEb21pbmljYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRE8iLCAiRG9taW5pY2FuIFJlcHVibGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUUCIsICJFYXN0IFRpbW9yIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFQyIsICJFY3VhZG9yIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFRyIsICJFZ3lwdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1YiLCAiRWwgU2FsdmFkb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdRIiwgIkVxdWF0b3JpYWwgR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFUiIsICJFcml0cmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFRSIsICJFc3RvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFVCIsICJFdGhpb3BpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRkoiLCAiRmlqaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRkkiLCAiRmlubGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRlIiLCAiRnJhbmNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHRiIsICJGcmVuY2ggR3VpYW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQRiIsICJGcmVuY2ggUG9seW5lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJURiIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdBIiwgIkdhYm9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHTSIsICJHYW1iaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdFIiwgIkdlb3JnaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRFIiwgIkdlcm1hbnkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdIIiwgIkdoYW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHUiIsICJHcmVlY2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdQIiwgIkd1YWRlbG91cGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdUIiwgIkd1YXRlbWFsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR04iLCAiR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHVyIsICJHdWluZWEtQmlzc2F1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHWSIsICJHdXlhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhUIiwgIkhhaXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJITiIsICJIb25kdXJhcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSEsiLCAiSG9uZyBLb25nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJIVSIsICJIdW5nYXJ5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUyIsICJJY2VsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJTiIsICJJbmRpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSUQiLCAiSW5kb25lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUiIsICJJcmFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUSIsICJJcmFxIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJRSIsICJJcmVsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJTCIsICJJc3JhZWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklUIiwgIkl0YWx5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJKTSIsICJKYW1haWNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJKUCIsICJKYXBhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSk8iLCAiSm9yZGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLWiIsICJLYXpha2hzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLRSIsICJLZW55YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0kiLCAiS2lyaWJhdGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktQIiwgIk5vcnRoIEtvcmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLUiIsICJTb3V0aCBLb3JlYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS1ciLCAiS3V3YWl0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLRyIsICJLeXJneXpzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMQSIsICJMYW9zIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMViIsICJMYXR2aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxCIiwgIkxlYmFub24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxTIiwgIkxlc290aG8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxSIiwgIkxpYmVyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxZIiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxJIiwgIkxpZWNodGVuc3RlaW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxUIiwgIkxpdGh1YW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFUiLCAiTHV4ZW1ib3VyZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUsiLCAiTWFjZWRvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNRyIsICJNYWRhZ2FzY2FyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNWSIsICJNYWxheXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUwiLCAiTWFsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVQiLCAiTWFsdGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1RIiwgIk1hcnRpbmlxdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1SIiwgIk1hdXJpdGFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1VIiwgIk1hdXJpdGl1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWVQiLCAiTWF5b3R0ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVgiLCAiTWV4aWNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJGTSIsICJNaWNyb25lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNRCIsICJNb2xkb3ZhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNQyIsICJNb25hY28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1OIiwgIk1vbmdvbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNUyIsICJNb250c2VycmF0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNQSIsICJNb3JvY2NvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNWiIsICJNb3phbWJpcXVlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNTSIsICJNeWFubWFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOQSIsICJOYW1pYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOUCIsICJOZXBhbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkwiLCAiTmV0aGVybGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFOIiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOQyIsICJOZXcgQ2FsZWRvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOWiIsICJOZXcgWmVhbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkkiLCAiTmljYXJhZ3VhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJORSIsICJOaWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkciLCAiTmlnZXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTlUiLCAiTml1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTk8iLCAiTm9yd2F5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJPTSIsICJPbWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQSyIsICJQYWtpc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEEiLCAiUGFuYW1hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQRyIsICJQYXB1YSBOZXcgR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQWSIsICJQYXJhZ3VheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEUiLCAiUGVydSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEgiLCAiUGhpbGlwcGluZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBMIiwgIlBvbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUFQiLCAiUG9ydHVnYWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBSIiwgIlB1ZXJ0byBSaWNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJRQSIsICJRYXRhciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUk8iLCAiUm9tYW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUlUiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJSVyIsICJSd2FuZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNBIiwgIlNhdWRpIEFyYWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU04iLCAiU2VuZWdhbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1AiLCAiU2VyYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTQyIsICJTZXljaGVsbGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTTCIsICJTaWVycmEgTGVvbmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNHIiwgIlNpbmdhcG9yZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0siLCAiU2xvdmFraWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNJIiwgIlNsb3ZlbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTTyIsICJTb21hbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJaQSIsICJTb3V0aCBBZnJpY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVTIiwgIlNwYWluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMSyIsICJTcmkgTGFua2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNEIiwgIlN1ZGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTUiIsICJTdXJpbmFtZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1oiLCAiU3dhemlsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTRSIsICJTd2VkZW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNIIiwgIlN3aXR6ZXJsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTWSIsICJTeXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFciLCAiVGFpd2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUSiIsICJUYWppa2lzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUWiIsICJUYW56YW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEgiLCAiVGhhaWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRHIiwgIlRvZ28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRLIiwgIlRva2VsYXUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRPIiwgIlRvbmdhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUVCIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUTiIsICJUdW5pc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUUiIsICJUdXJrZXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRNIiwgIlR1cmttZW5pc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVUciLCAiVWdhbmRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVQSIsICJVa3JhaW5lIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBRSIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0IiLCAiVW5pdGVkIEtpbmdkb20iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVTIiwgIlVuaXRlZCBTdGF0ZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVZIiwgIlVydWd1YXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVaIiwgIlV6YmVraXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZVIiwgIlZhbnVhdHUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZBIiwgIlZhdGljYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZFIiwgIlZlbmV6dWVsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVk4iLCAiVmlldCBOYW0iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZHIiwgIkJyaXRpc2ggVmlyZ2luIElzbGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZJIiwgIlUuUy4gVmlyZ2luIElzbGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVIIiwgIldlc3Rlcm4gU2FoYXJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJZRSIsICJZZW1lbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWVUiLCAiWXVnb3NsYXZpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWlIiLCAiWmFpcmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlpNIiwgIlphbWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWlciLCAiWmltYmFid2UiIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiJSVFVVJPIiwgIkV1cm8iIH0sIC8vIEV1cm8gdmFyaWFudCBkaXNwbGF5IG5hbWUKKyAgICAgICAgICAgIHsgIkxvY2FsZU5hbWVQYXR0ZXJucyIsCisgICAgICAgICAgICAgICAgLyogRm9ybWF0cyBmb3IgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIGxvY2FsZSwgZm9yIGEgbGlzdCBvZgorICAgICAgICAgICAgICAgICAqIGl0ZW1zLCBhbmQgZm9yIGNvbXBvc2luZyB0d28gaXRlbXMgaW4gYSBsaXN0IGludG8gb25lIGl0ZW0uCisgICAgICAgICAgICAgICAgICogVGhlIGxpc3QgcGF0dGVybnMgYXJlIHVzZWQgaW4gdGhlIHZhcmlhbnQgbmFtZSBhbmQgaW4gdGhlCisgICAgICAgICAgICAgICAgICogZnVsbCBkaXNwbGF5IG5hbWUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSAoezJ9KX0iLCAvLyBEaXNwbGF5IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSx7Mn18MyN7MX0sezJ9LHszfX0iLCAvLyBMaXN0CisgICAgICAgICAgICAgICAgICAgICJ7MH0sezF9IiAvLyBMaXN0IGNvbXBvc2l0aW9uCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk1vbnRoTmFtZXMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIkphbnVhcnkiLCAvLyBqYW51YXJ5CisgICAgICAgICAgICAgICAgICAgICJGZWJydWFyeSIsIC8vIGZlYnJ1YXJ5CisgICAgICAgICAgICAgICAgICAgICJNYXJjaCIsIC8vIG1hcmNoCisgICAgICAgICAgICAgICAgICAgICJBcHJpbCIsIC8vIGFwcmlsCisgICAgICAgICAgICAgICAgICAgICJNYXkiLCAvLyBtYXkKKyAgICAgICAgICAgICAgICAgICAgIkp1bmUiLCAvLyBqdW5lCisgICAgICAgICAgICAgICAgICAgICJKdWx5IiwgLy8ganVseQorICAgICAgICAgICAgICAgICAgICAiQXVndXN0IiwgLy8gYXVndXN0CisgICAgICAgICAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAvLyBzZXB0ZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIk9jdG9iZXIiLCAvLyBvY3RvYmVyCisgICAgICAgICAgICAgICAgICAgICJOb3ZlbWJlciIsIC8vIG5vdmVtYmVyCisgICAgICAgICAgICAgICAgICAgICJEZWNlbWJlciIsIC8vIGRlY2VtYmVyCisgICAgICAgICAgICAgICAgICAgICIiIC8vIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTW9udGhBYmJyZXZpYXRpb25zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJKYW4iLCAvLyBhYmIgamFudWFyeQorICAgICAgICAgICAgICAgICAgICAiRmViIiwgLy8gYWJiIGZlYnJ1YXJ5CisgICAgICAgICAgICAgICAgICAgICJNYXIiLCAvLyBhYmIgbWFyY2gKKyAgICAgICAgICAgICAgICAgICAgIkFwciIsIC8vIGFiYiBhcHJpbAorICAgICAgICAgICAgICAgICAgICAiTWF5IiwgLy8gYWJiIG1heQorICAgICAgICAgICAgICAgICAgICAiSnVuIiwgLy8gYWJiIGp1bmUKKyAgICAgICAgICAgICAgICAgICAgIkp1bCIsIC8vIGFiYiBqdWx5CisgICAgICAgICAgICAgICAgICAgICJBdWciLCAvLyBhYmIgYXVndXN0CisgICAgICAgICAgICAgICAgICAgICJTZXAiLCAvLyBhYmIgc2VwdGVtYmVyCisgICAgICAgICAgICAgICAgICAgICJPY3QiLCAvLyBhYmIgb2N0b2JlcgorICAgICAgICAgICAgICAgICAgICAiTm92IiwgLy8gYWJiIG5vdmVtYmVyCisgICAgICAgICAgICAgICAgICAgICJEZWMiLCAvLyBhYmIgZGVjZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIiIgLy8gYWJiIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRGF5TmFtZXMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIlN1bmRheSIsIC8vIFN1bmRheQorICAgICAgICAgICAgICAgICAgICAiTW9uZGF5IiwgLy8gTW9uZGF5CisgICAgICAgICAgICAgICAgICAgICJUdWVzZGF5IiwgLy8gVHVlc2RheQorICAgICAgICAgICAgICAgICAgICAiV2VkbmVzZGF5IiwgLy8gV2VkbmVzZGF5CisgICAgICAgICAgICAgICAgICAgICJUaHVyc2RheSIsIC8vIFRodXJzZGF5CisgICAgICAgICAgICAgICAgICAgICJGcmlkYXkiLCAvLyBGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIlNhdHVyZGF5IiAvLyBTYXR1cmRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXlBYmJyZXZpYXRpb25zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJTdW4iLCAvLyBhYmIgU3VuZGF5CisgICAgICAgICAgICAgICAgICAgICJNb24iLCAvLyBhYmIgTW9uZGF5CisgICAgICAgICAgICAgICAgICAgICJUdWUiLCAvLyBhYmIgVHVlc2RheQorICAgICAgICAgICAgICAgICAgICAiV2VkIiwgLy8gYWJiIFdlZG5lc2RheQorICAgICAgICAgICAgICAgICAgICAiVGh1IiwgLy8gYWJiIFRodXJzZGF5CisgICAgICAgICAgICAgICAgICAgICJGcmkiLCAvLyBhYmIgRnJpZGF5CisgICAgICAgICAgICAgICAgICAgICJTYXQiIC8vIGFiYiBTYXR1cmRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJBbVBtTWFya2VycyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiQU0iLCAvLyBhbSBtYXJrZXIKKyAgICAgICAgICAgICAgICAgICAgIlBNIiAvLyBwbSBtYXJrZXIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRXJhcyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IC8vIGVyYSBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICJCQyIsIAorICAgICAgICAgICAgICAgICAgICAiQUQiIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJOdW1iZXJQYXR0ZXJucyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiIywjIzAuIyMjOy0jLCMjMC4jIyMiLCAvLyBkZWNpbWFsIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIiQjLCMjMC4wMDsoJCMsIyMwLjAwKSIsIC8vIGN1cnJlbmN5IHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIiMsIyMwJSIgLy8gcGVyY2VudCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk51bWJlckVsZW1lbnRzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIuIiwgLy8gZGVjaW1hbCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgIiwiLCAvLyBncm91cCAodGhvdXNhbmRzKSBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgIjsiLCAvLyBsaXN0IHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAiJSIsIC8vIHBlcmNlbnQgc2lnbgorICAgICAgICAgICAgICAgICAgICAiMCIsIC8vIG5hdGl2ZSAwIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICIjIiwgLy8gcGF0dGVybiBkaWdpdAorICAgICAgICAgICAgICAgICAgICAiLSIsIC8vIG1pbnVzIHNpZ24KKyAgICAgICAgICAgICAgICAgICAgIkUiLCAvLyBleHBvbmVudGlhbAorICAgICAgICAgICAgICAgICAgICAiXHUyMDMwIiwgLy8gcGVyIG1pbGxlCisgICAgICAgICAgICAgICAgICAgICJcdTIyMWUiLCAvLyBpbmZpbml0eQorICAgICAgICAgICAgICAgICAgICAiXHVmZmZkIiAvLyBOYU4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQ3VycmVuY3lFbGVtZW50cyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiJCIsIC8vIGxvY2FsIGN1cnJlbmN5IHN5bWJvbAorICAgICAgICAgICAgICAgICAgICAiVVNEIiwgLy8gaW50bCBjdXJyZW5jeSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgIi4iIC8vIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkRhdGVUaW1lUGF0dGVybnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgImg6bW06c3MgJ28nJycnY2xvY2snIGEgeiIsIC8vIGZ1bGwgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsIC8vIGxvbmcgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tOnNzIGEiLCAvLyBtZWRpdW0gdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tIGEiLCAvLyBzaG9ydCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIkVFRUUsIE1NTU0gZCwgeXl5eSIsIC8vIGZ1bGwgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJNTU1NIGQsIHl5eXkiLCAvLyBsb25nIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiZGQtTU1NLXl5IiwgLy8gbWVkaXVtIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiTS9kL3l5IiwgLy8gc2hvcnQgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJ7MX0gezB9IiAvLyBkYXRlLXRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXRlVGltZUVsZW1lbnRzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIxIiwgLy8gZmlyc3QgZGF5IG9mIHdlZWsKKyAgICAgICAgICAgICAgICAgICAgIjEiIC8vIG1pbiBkYXlzIGluIGZpcnN0IHdlZWsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiY29sbGF0aW9ucyIsbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlZlcnNpb24iLCIxLjAifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiT3ZlcmlkZSIsImZhbHNlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNlcXVlbmNlIiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk1lYXN1cmVtZW50IiAsIiJ9LAorICAgICAgICAgICAgeyAiQ291bnRyeU51bWJlciIgLCAiIn0sCisgICAgICAgICAgICB7ICJDb3VudHJ5SVNCTk51bWJlciIgLCAiIn0sCisgICAgICAgICAgICB7ICJMYW5ndWFnZUxpYnJhcnlVc2UiICwgIiJ9LAorICAgICAgICAgICAgeyAiUGFwZXJTaXplIiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJIZWlnaHQiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IldpZHRoIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJVbml0cyIsICIifQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAKKyAgICAgICAgICAgIHsgIk1lc3NhZ2VzIiAsIG5ldyBTdHJpbmdbXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJZZXNFeHByZXNzaW9uIiwiIn0sIC8qIHllcyBleHByZXNzaW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9FeHByZXNzaW9uIiwiIn0sICAvKiBubyBleHByZXNzaW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiWWVzU3RyIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ik5vU3RyIiwgIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkFkZHJlc3NGb3JtYXQiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlBvc3RhbEZvcm1hdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICB7Ik5hbWVGb3JtYXQiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJOYW1lUGF0dGVybiIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiR2VuZXJhbFNhbHV0YWlvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNob3J0U2FsdXRhdGlvbk1yIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2hvcnRTYWx1dGF0aW9uTWlzcyIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2hvcnRTYWx1dGF0aW9uTXJzIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJMb25nU2FsdXRhdGlvbk1yIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJMb25nU2FsdXRhdGlvbk1pc3MiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkxvbmdTYWx1dGF0aW9uTXJzIiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCAKKyAgICAgICAgICAgIHsgIklkZW50aWZpY2F0aW9uIiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVGl0bGUiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTb3VyY2UiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJBZGRyZXNzIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQ29udGFjdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkVtYWlsIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVGVsZXBob25lIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkZheCIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJMYW5ndWFnZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlRlcnJpdG9yeSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkF1ZGllbmNlIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkFwcGxpY2F0aW9uIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkFiYnJldmlhdGlvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJSZXZpc2lvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJEYXRlIiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIlRlbGVwaG9uZUZvcm1hdCIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxGb3JtYXQiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJEb21lc3RpY0Zvcm1hdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxEaWFsQ29kZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxQcmVmaXgiLCIifQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfTsKKyAgICB9Cit9CisgICAgICAgICAgICAKKyAgICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9CdWlsZERpY3Rpb25hcnlGaWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9CdWlsZERpY3Rpb25hcnlGaWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2Y2MzE2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL0J1aWxkRGljdGlvbmFyeUZpbGUuamF2YQpAQCAtMCwwICsxLDg3MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitwdWJsaWMgY2xhc3MgQnVpbGREaWN0aW9uYXJ5RmlsZSB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkKKyAgICAgICAgICAgIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gYXJnc1swXTsKKyAgICAgICAgU3RyaW5nIGVuY29kaW5nID0gIiI7CisgICAgICAgIFN0cmluZyBvdXRwdXRGaWxlID0gIiI7CisgICAgICAgIFN0cmluZyBsaXN0aW5nRmlsZSA9ICIiOworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAyKQorICAgICAgICAgICAgZW5jb2RpbmcgPSBhcmdzWzFdOworCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoID49IDMpCisgICAgICAgICAgICBvdXRwdXRGaWxlID0gYXJnc1syXTsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gNCkKKyAgICAgICAgICAgIGxpc3RpbmdGaWxlID0gYXJnc1szXTsKKworICAgICAgICBCdWlsZERpY3Rpb25hcnlGaWxlIGRpY3Rpb25hcnkgPSBuZXcgQnVpbGREaWN0aW9uYXJ5RmlsZSgpOworICAgICAgICBkaWN0aW9uYXJ5LmJ1aWxkKGZpbGVuYW1lLCBlbmNvZGluZyk7CisKKyAgICAgICAgRGF0YU91dHB1dFN0cmVhbSBvdXQgPSBudWxsOworICAgICAgICBpZiAob3V0cHV0RmlsZS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBvdXQgPSBuZXcgRGF0YU91dHB1dFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXRGaWxlKSk7CisgICAgICAgICAgICBkaWN0aW9uYXJ5LndyaXRlRGljdGlvbmFyeUZpbGUob3V0KTsKKyAgICAgICAgfQorCisgICAgICAgIFByaW50V3JpdGVyIGxpc3RpbmcgPSBudWxsOworICAgICAgICBpZiAobGlzdGluZ0ZpbGUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbGlzdGluZyA9IG5ldyBQcmludFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKGxpc3RpbmdGaWxlKSwgIlVuaWNvZGVMaXR0bGUiKSk7CisgICAgICAgICAgICBkaWN0aW9uYXJ5LnByaW50V29yZExpc3QoIiIsIDAsIGxpc3RpbmcpOworICAgICAgICAgICAgbGlzdGluZy5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEJ1aWxkRGljdGlvbmFyeUZpbGUoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnVpbGQoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcpCisgICAgICAgICAgICB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaWxlID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGluOworICAgICAgICBpZiAoZW5jb2RpbmcubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGluID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbiA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlLCBlbmNvZGluZyk7CisKKyAgICAgICAgYnVpbGRDb2x1bW5NYXAoaW4pOworCisgICAgICAgIGZpbGUgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGVuYW1lKTsKKyAgICAgICAgaWYgKGVuY29kaW5nLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBpbiA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSwgZW5jb2RpbmcpOworCisgICAgICAgIGJ1aWxkU3RhdGVUYWJsZShpbik7CisvL3ByaW50VGFibGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBidWlsZENvbHVtbk1hcChJbnB1dFN0cmVhbVJlYWRlciBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiQnVpbGRpbmcgY29sdW1uIG1hcC4uLiIpOworICAgICAgICBVbmljb2RlU2V0IGNoYXJzSW5GaWxlID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaW50IGMgPSBpbi5yZWFkKCk7CitpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgIHdoaWxlIChjID49IDApIHsKKysrdG90YWxDaGFyczsgaWYgKHRvdGFsQ2hhcnMgPiAwICYmIHRvdGFsQ2hhcnMgJSA1MDAwID09IDApIFN5c3RlbS5vdXQucHJpbnRsbigiUmVhZCAiICsgdG90YWxDaGFycyArICIgY2hhcmFjdGVycy4uLiIpOworICAgICAgICAgICAgaWYgKGMgPiAnICcpCisgICAgICAgICAgICAgICAgY2hhcnNJbkZpbGUuYWRkKChjaGFyKWMpOworICAgICAgICAgICAgYyA9IGluLnJlYWQoKTsKKyAgICAgICAgfQorLy8gICAgICAgIFRlc3QuZGVidWdQcmludGxuKGNoYXJzSW5GaWxlLnRvU3RyaW5nKCkpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wUmV2ZXJzZU1hcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgdGVtcFJldmVyc2VNYXAuYXBwZW5kKCcgJyk7CisKKyAgICAgICAgY29sdW1uTWFwID0gbmV3IENvbXBhY3RCeXRlQXJyYXkoKTsKKyAgICAgICAgaW50IG4gPSBjaGFyc0luRmlsZS5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGJ5dGUgcCA9IDE7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgc3RhcnQgPSAoY2hhcikgY2hhcnNJbkZpbGUuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGNoYXIgZW5kID0gKGNoYXIpIGNoYXJzSW5GaWxlLmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gc3RhcnQ7IGNoIDw9IGVuZDsgY2grKykgeworICAgICAgICAgICAgICAgIGlmIChjb2x1bW5NYXAuZWxlbWVudEF0KENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTWFwLnNldEVsZW1lbnRBdChDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2gpLCBDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApOworICAgICAgICAgICAgICAgICAgICBjb2x1bW5NYXAuc2V0RWxlbWVudEF0KENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCksIENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCk7CisgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJldmVyc2VNYXAuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludGxuKCJDb21wYWN0aW5nLi4uIik7CisgICAgICAgIGNvbHVtbk1hcC5jb21wYWN0KCk7CisKKy8vU3lzdGVtLm91dC5wcmludGxuKHRlbXBSZXZlcnNlTWFwLnRvU3RyaW5nKCkpOworICAgICAgICByZXZlcnNlQ29sdW1uTWFwID0gbmV3IGNoYXJbcF07CisgICAgICAgIFV0aWxpdHkuZ2V0Q2hhcnModGVtcFJldmVyc2VNYXAsIDAsIHAsIHJldmVyc2VDb2x1bW5NYXAsIDApOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidG90YWwgY29sdW1ucyA9ICIgKyBwKTsKKyAgICAgICAgbnVtQ29scyA9IHA7CisgICAgICAgIG51bUNvbEdyb3VwcyA9IChudW1Db2xzID4+IDUpICsgMTsKKworLyoKK3Nob3J0W10gaW5kZXggPSBjb2x1bW5NYXAuZ2V0SW5kZXhBcnJheSgpOworU3lzdGVtLm91dC5wcmludGxuKCJJbmRleDoiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgaW5kZXgubGVuZ3RoOyBpKyspIHsKK2lmIChpICUgMTYgPT0gMCkgeworU3lzdGVtLm91dC5wcmludGxuKCk7CitTeXN0ZW0ub3V0LnByaW50KCIgICAgIiArIEludGVnZXIudG9IZXhTdHJpbmcoaSAqIDEyOCkgKyAiOiIpOworfQorU3lzdGVtLm91dC5wcmludCgiXHQiICsgSW50ZWdlci50b0hleFN0cmluZyhpbmRleFtpXSkpOworfQorU3lzdGVtLm91dC5wcmludGxuKCk7CitieXRlW10gZGF0YSA9IGNvbHVtbk1hcC5nZXRTdHJpbmdBcnJheSgpOworU3lzdGVtLm91dC5wcmludCgiVmFsdWVzOiIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CitpZiAoaSAlIDE2ID09IDApIHsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworU3lzdGVtLm91dC5wcmludCgiICAgICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgIjoiKTsKK30KK2lmIChkYXRhW2ldID09IDApCitTeXN0ZW0ub3V0LnByaW50KCJcdC4iKTsKK2Vsc2UKK1N5c3RlbS5vdXQucHJpbnQoIlx0IiArIEludGVnZXIudG9TdHJpbmcoZGF0YVtpXSkpOworfQorU3lzdGVtLm91dC5wcmludGxuKCk7CisqLworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGJ1aWxkU3RhdGVUYWJsZShJbnB1dFN0cmVhbVJlYWRlciBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVmVjdG9yIHRlbXBUYWJsZSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdGVtcFRhYmxlLmFkZEVsZW1lbnQobmV3IGludFtudW1Db2xzICsgMV0pOworICAgICAgICBpbnQgc3RhdGUgPSAwOworCisgICAgICAgIGludCBjID0gaW4ucmVhZCgpOworICAgICAgICBpbnRbXSByb3cgPSBudWxsOworICAgICAgICBpbnQgY2hhcnNJbldvcmQgPSAwOworICAgICAgICB3aGlsZSAoYyA+PSAwKSB7CisgICAgICAgICAgICBjaGFyc0luV29yZCsrOworICAgICAgICAgICAgc2hvcnQgY29sdW1uID0gY29sdW1uTWFwLmVsZW1lbnRBdCgoY2hhciljKTsKKworICAgICAgICAgICAgcm93ID0gKGludFtdKSh0ZW1wVGFibGUuZWxlbWVudEF0KHN0YXRlKSk7CisgICAgICAgICAgICBpZiAoY29sdW1uICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAocm93W2NvbHVtbl0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByb3dbY29sdW1uXSA9IHRlbXBUYWJsZS5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgICsrcm93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICh0ZW1wVGFibGUuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFRhYmxlLmFkZEVsZW1lbnQobmV3IGludFtudW1Db2xzICsgMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcm93W2NvbHVtbl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHJvd1swXSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICByb3dbMF0gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgKytyb3dbbnVtQ29sc107CisgICAgICAgICAgICAgICAgICAgIHVuaXF1ZVdvcmRzKys7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsVW5pcXVlV29yZENoYXJzICs9IGNoYXJzSW5Xb3JkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b3RhbFdvcmRzKys7CitpZiAodG90YWxXb3JkcyAlIDUwMDAgPT0gMCkgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkICIgKyB0b3RhbFdvcmRzICsgIiB3b3JkcywgIiArIHRlbXBUYWJsZS5zaXplKCkgKyAiIHJvd3MuLi4iKTsKKyAgICAgICAgICAgICAgICBjaGFyc0luV29yZCA9IDA7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IGluLnJlYWQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGUgIT0gMCkgeworICAgICAgICAgICAgcm93ID0gKGludFtdKSh0ZW1wVGFibGUuZWxlbWVudEF0KHN0YXRlKSk7CisgICAgICAgICAgICBpZiAocm93WzBdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcm93WzBdID0gLTE7CisgICAgICAgICAgICAgICAgdW5pcXVlV29yZHMrKzsKKyAgICAgICAgICAgICAgICB0b3RhbFVuaXF1ZVdvcmRDaGFycyArPSBjaGFyc0luV29yZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvdGFsV29yZHMrKzsKKyAgICAgICAgfQorCisgICAgICAgIGNvbXByZXNzKHRlbXBUYWJsZSk7CisKKyAgICAgICAgdGFibGUgPSBuZXcgc2hvcnRbbnVtQ29scyAqIHRlbXBUYWJsZS5zaXplKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgcm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICB0YWJsZVtpICogbnVtQ29scyArIGpdID0gKHNob3J0KXJvd1tqXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjb21wcmVzcyhWZWN0b3IgdGVtcFRhYmxlKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oIkJlZm9yZSBjb21wcmVzc2lvbjoiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2Ygcm93cyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY29sdW1ucyA9ICIgKyBudW1Db2xzKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY2VsbHMgPSAiICsgdGVtcFRhYmxlLnNpemUoKSAqIG51bUNvbHMpOworICAgICAgICBkZWxldGVEdXBsaWNhdGVSb3dzKHRlbXBUYWJsZSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIkFmdGVyIHJlbW92aW5nIGR1cGxpY2F0ZSByb3dzOiIpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiByb3dzID0gIiArIHRlbXBUYWJsZS5zaXplKCkpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjb2x1bW5zID0gIiArIG51bUNvbHMpOworU3lzdGVtLm91dC5wcmludGxuKCIgIE51bWJlciBvZiBjZWxscyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpICogbnVtQ29scyk7CisgICAgICAgIHN0YWNrUm93cyh0ZW1wVGFibGUpOworaWYgKHRlbXBUYWJsZS5zaXplKCkgPiAzMjc2NykgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVG9vIG1hbnkgcm93cyBpbiB0YWJsZSEiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiQWZ0ZXIgZG91YmxpbmcgdXAgb24gcm93czoiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2Ygcm93cyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY29sdW1ucyA9ICIgKyBudW1Db2xzKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY2VsbHMgPSAiICsgdGVtcFRhYmxlLnNpemUoKSAqIG51bUNvbHMpOworICAgIH0KKworLyoKK2V4cGVyaW1lbnRhbC4uLgorICAgIHByaXZhdGUgdm9pZCBkZWxldGVEdXBsaWNhdGVSb3dzKFZlY3RvciB0ZW1wVGFibGUpIHsKKyAgICAgICAgaW50W10gcm93TnVtTWFwID0gbmV3IGludFt0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSBpOworCisgICAgICAgIGludCBuZXh0Q2xhc3MgPSBudW1Db2xzOworICAgICAgICBpbnQgY3VycmVudENsYXNzOworICAgICAgICBpbnQgbGFzdENsYXNzOworICAgICAgICBib29sZWFuIHNwbGl0OworICAgICAgICBpbnRbXSByb3cxLCByb3cyLCB0ZW1wUm93OworICAgICAgICBpbnQgdGVtcENhdDsKKworICAgICAgICBkbyB7CitTeXN0ZW0ub3V0LnByaW50bG4oIk1ha2luZyBhIHBhc3MgKCIgKyBuZXh0Q2xhc3MgKyAiIGNsYXNzZXMpLi4uIik7CisgICAgICAgICAgICBjdXJyZW50Q2xhc3MgPSAwOworICAgICAgICAgICAgbGFzdENsYXNzID0gbmV4dENsYXNzOworICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRDbGFzcyA8IG5leHRDbGFzcykgeworU3lzdGVtLm91dC5wcmludGxuKCIgICBjdXJyZW50Q2xhc3MgPSAiICsgY3VycmVudENsYXNzKTsKKyAgICAgICAgICAgICAgICBzcGxpdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHJvdzEgPSByb3cyID0gbnVsbDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wUm93W251bUNvbHNdID09IGN1cnJlbnRDbGFzcykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdzEgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzEgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzIgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHJvdzFbal0gPT0gMCkgIT0gKHJvdzJbal0gPT0gMCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvdzFbal0gPT0gLTEpICE9IChyb3cyW2pdID09IC0xKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93MltudW1Db2xzXSA9IG5leHRDbGFzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvdzFbal0gIT0gMCAmJiByb3cyW2pdICE9IDAgJiYgcm93MVtqXSAhPSAtMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcm93MltqXSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KHJvdzFbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcENhdCA9IHRlbXBSb3dbbnVtQ29sc107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQocm93MltqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcENhdCAhPSB0ZW1wUm93W251bUNvbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93MltudW1Db2xzXSA9IG5leHRDbGFzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNwbGl0KQorICAgICAgICAgICAgICAgICAgICArK25leHRDbGFzczsKKyAgICAgICAgICAgICAgICArK2N1cnJlbnRDbGFzczsKKy8vU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKGxhc3RDbGFzcyAhPSBuZXh0Q2xhc3MpOworCisgICAgICAgIGludFtdIHJlcHJlc2VudGF0aXZlcyA9IG5ldyBpbnRbbmV4dENsYXNzXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChyZXByZXNlbnRhdGl2ZXNbdGVtcFJvd1tudW1Db2xzXV0gPT0gMCkKKyAgICAgICAgICAgICAgICByZXByZXNlbnRhdGl2ZXNbdGVtcFJvd1tudW1Db2xzXV0gPSBpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IHJlcHJlc2VudGF0aXZlc1t0ZW1wUm93W251bUNvbHNdXTsKKyAgICAgICAgfQorU3lzdGVtLm91dC5wcmludGxuKCJSZW51bWJlcmluZy4uLiIpOworCisgICAgICAgIC8vIHJlbnVtYmVyIGFsbCByZW1haW5pbmcgcm93cworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlmIChyb3dOdW1NYXBbaV0gIT0gaSkKKyAgICAgICAgICAgICAgICB0ZW1wVGFibGUuc2V0RWxlbWVudEF0KG51bGwsIGkpOworICAgICAgICBpbnQgbmV3Um93TnVtID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAodGVtcFRhYmxlLmVsZW1lbnRBdChpKSAhPSBudWxsKQorICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IG5ld1Jvd051bSsrOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlmICh0ZW1wVGFibGUuZWxlbWVudEF0KGkpID09IG51bGwpCisgICAgICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gcm93TnVtTWFwW3Jvd051bU1hcFtpXV07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHRlbXBUYWJsZS5zaXplKCkgLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHRlbXBSb3cgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0ZW1wVGFibGUucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wUm93W2pdICE9IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvd1tqXSA9IHJvd051bU1hcFtqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLy9mb3IgKGludCBpID0gMTsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykgcm93TnVtTWFwW2ldID0gaTsgaW50IG5ld1Jvd051bSA9IHJvd051bU1hcC5sZW5ndGg7CisgICAgfQorKi8KKworICAgIHByaXZhdGUgdm9pZCBkZWxldGVEdXBsaWNhdGVSb3dzKFZlY3RvciB0ZW1wVGFibGUpIHsKKyAgICAgICAgVmVjdG9yIHdvcmsgPSAoVmVjdG9yKSh0ZW1wVGFibGUuY2xvbmUoKSk7CisgICAgICAgIGJvb2xlYW4gZGlkRGVsZXRlUm93ID0gdHJ1ZTsKKworICAgICAgICBWZWN0b3IgdGVtcE1hcHBpbmcgPSBuZXcgVmVjdG9yKHdvcmsuc2l6ZSgpKTsKKyAgICAgICAgaW50W10gbWFwcGluZyA9IG5ldyBpbnRbd29yay5zaXplKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hcHBpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG1hcHBpbmdbaV0gPSBpOworICAgICAgICAgICAgdGVtcE1hcHBpbmcuYWRkRWxlbWVudChuZXcgSW50ZWdlcihpKSk7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbltdIHRiZCA9IG5ldyBib29sZWFuW3dvcmsuc2l6ZSgpXTsKKworICAgICAgICB3aGlsZSAoZGlkRGVsZXRlUm93KSB7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAiICsgd29yay5zaXplKCkgKyAiIHJvd3MuLi4iKTsKK2ludCBkZWxldGVkUm93cyA9IDA7CisgICAgICAgICAgICBkaWREZWxldGVSb3cgPSBmYWxzZTsKKworICAgICAgICAgICAgc29ydFRhYmxlKHdvcmssIHRlbXBNYXBwaW5nLCBtYXBwaW5nLCAxLCB3b3JrLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdvcmsuc2l6ZSgpIC0gMTsgKSB7CitTeXN0ZW0ub3V0LnByaW50KCJEZWxldGluZywgaW5zcGVjdGluZyByb3cgIiArIGkgKyAiLCBkZWxldGVkICIgKyBkZWxldGVkUm93cyArICIgcm93cy4uLlxyIik7CisgICAgICAgICAgICAgICAgaW50IHJvd1RvRGVsZXRlID0gKChJbnRlZ2VyKSh0ZW1wTWFwcGluZy5lbGVtZW50QXQoaSArIDEpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpbnQgcm93VG9NYXBUbyA9ICgoSW50ZWdlcikodGVtcE1hcHBpbmcuZWxlbWVudEF0KGkpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyZVJvd3MoKGludFtdKXdvcmsuZWxlbWVudEF0KGkpLCAoaW50W10pd29yay5lbGVtZW50QXQoaSArIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRiZFtyb3dUb0RlbGV0ZV0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB0ZW1wVGFibGUuc2V0RWxlbWVudEF0KG51bGwsIHJvd1RvRGVsZXRlKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRiZFttYXBwaW5nW3Jvd1RvTWFwVG9dXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdbcm93VG9NYXBUb10gPSBtYXBwaW5nW21hcHBpbmdbcm93VG9NYXBUb11dOworICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW3Jvd1RvRGVsZXRlXSA9IG1hcHBpbmdbcm93VG9NYXBUb107CisgICAgICAgICAgICAgICAgICAgIGRpZERlbGV0ZVJvdyA9IHRydWU7CitkZWxldGVkUm93cysrOworICAgICAgICAgICAgICAgICAgICB3b3JrLnJlbW92ZUVsZW1lbnRBdChpICsgMSk7CisgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnJlbW92ZUVsZW1lbnRBdChpICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRiZFtpXSAmJiB0YmRbbWFwcGluZ1tpXV0pCisgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdbaV0gPSBtYXBwaW5nW21hcHBpbmdbaV1dOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IGRlY3JlbWVudEJ5ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKQorICAgICAgICAgICAgICAgIGRlY3JlbWVudEJ5Kys7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbWFwcGluZ1tpXSAtPSBkZWNyZW1lbnRCeTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hcHBpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgbWFwcGluZ1tpXSA9IG1hcHBpbmdbbWFwcGluZ1tpXV07CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IHRlbXBUYWJsZS5zaXplKCkgLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkKKyAgICAgICAgICAgICAgICB0ZW1wVGFibGUucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50W10gcm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgICAgIHJvd1tqXSA9IChyb3dbal0gPT0gLTEpID8gLTEgOiBtYXBwaW5nW3Jvd1tqXV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc29ydFRhYmxlKFZlY3RvciB0YWJsZSwgVmVjdG9yIHRlbXBNYXBwaW5nLCBpbnRbXSBtYXBwaW5nLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKK1N5c3RlbS5vdXQucHJpbnQoIlNvcnRpbmcgKCIgKyBzdGFydCArICIsICIgKyBlbmQgKyAiKS4uLlxyIik7CisgICAgICAgIGlmIChzdGFydCArIDEgPj0gZW5kKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBlbHNlIGlmIChzdGFydCArIDEwID49IGVuZCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0ICsgMTsgaSA8IGVuZDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50W10gcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBJbnRlZ2VyIHRlbXBNYXAgPSAoSW50ZWdlcil0ZW1wTWFwcGluZy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgZm9yIChqID0gaSAtIDE7IGogPj0gc3RhcnQ7IGotLSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZVJvd3MoKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKSwgcm93LCBtYXBwaW5nKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnNldEVsZW1lbnRBdCgoaW50W10pdGFibGUuZWxlbWVudEF0KGopLCBqICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQoKEludGVnZXIpdGVtcE1hcHBpbmcuZWxlbWVudEF0KGopLCBqICsgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQocm93LCBqICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcE1hcCwgaiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGogPCBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQocm93LCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnNldEVsZW1lbnRBdCh0ZW1wTWFwLCBzdGFydCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGJvdW5kYXJ5UG9zID0gKHN0YXJ0ICsgZW5kKSAvIDI7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGJvb2xlYW4gYWxsVGhlU2FtZSA9IHRydWU7CisgICAgICAgICAgICBpbnQgZmlyc3REaWZmZXJlbnQgPSAwOworCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgaW50W10gYm91bmRhcnkgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGJvdW5kYXJ5UG9zKTsKKyAgICAgICAgICAgICAgICBpID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGogPSBlbmQgLSAxOworICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IG51bGw7CisgICAgICAgICAgICAgICAgYnl0ZSBjb21wUmVzdWx0OworICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgaikgeworICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8PSBqICYmIGNvbXBhcmVSb3dzKHJvdywgYm91bmRhcnksIG1hcHBpbmcpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgICAgIGNvbXBSZXN1bHQgPSBjb21wYXJlUm93cyhyb3csIGJvdW5kYXJ5LCBtYXBwaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPD0gaiAmJiAoY29tcFJlc3VsdCA+PSAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBSZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFRoZVNhbWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdERpZmZlcmVudCA9IGo7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBqLS07CisgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICAgICAgY29tcFJlc3VsdCA9IGNvbXBhcmVSb3dzKHJvdywgYm91bmRhcnksIG1hcHBpbmcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChpIDw9IGopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQodGFibGUuZWxlbWVudEF0KGkpLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnNldEVsZW1lbnRBdChyb3csIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRlbXAgPSB0ZW1wTWFwcGluZy5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcE1hcHBpbmcuZWxlbWVudEF0KGkpLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBNYXBwaW5nLnNldEVsZW1lbnRBdCh0ZW1wLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8PSBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYWxsVGhlU2FtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRhcnlQb3MgPSBmaXJzdERpZmZlcmVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IHdoaWxlIChpIDw9IHN0YXJ0KTsKKyAgICAgICAgICAgIHNvcnRUYWJsZSh0YWJsZSwgdGVtcE1hcHBpbmcsIG1hcHBpbmcsIHN0YXJ0LCBpKTsKKyAgICAgICAgICAgIHNvcnRUYWJsZSh0YWJsZSwgdGVtcE1hcHBpbmcsIG1hcHBpbmcsIGksIGVuZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJ5dGUgY29tcGFyZVJvd3MoaW50W10gcm93MSwgaW50W10gcm93MiwgaW50W10gbWFwcGluZykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgaW50IGMxID0gKHJvdzFbaV0gPT0gLTEpID8gLTEgOiBtYXBwaW5nW3JvdzFbaV1dOworICAgICAgICAgICAgaW50IGMyID0gKHJvdzJbaV0gPT0gLTEpID8gLTEgOiBtYXBwaW5nW3JvdzJbaV1dOworICAgICAgICAgICAgaWYgKGMxIDwgYzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgZWxzZSBpZiAoYzEgPiBjMikKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwcml2YXRlIGludFtdIGJ1aWxkUm93SW5kZXgoVmVjdG9yIHRlbXBUYWJsZSkgeworICAgICAgICBpbnRbXSB0ZW1wUm93SW5kZXggPSBuZXcgaW50W3RlbXBUYWJsZS5zaXplKCldOworICAgICAgICByb3dJbmRleEZsYWdzSW5kZXggPSBuZXcgc2hvcnRbdGVtcFRhYmxlLnNpemUoKV07CisgICAgICAgIFZlY3RvciB0ZW1wUm93SW5kZXhGbGFncyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgcm93SW5kZXhTaGlmdHMgPSBuZXcgYnl0ZVt0ZW1wVGFibGUuc2l6ZSgpXTsKKworICAgICAgICAvLyBidWlsZCB0aGUgcm93IGluZGV4LiAgRWFjaCBlbnRyeSBpbiB0aGUgcm93IGluZGV4IHN0YXJ0cyBvdXQgcmVmZXJyaW5nCisgICAgICAgIC8vIHRvIHRoZSBvcmlnaW5hbCByb3cgKHNvIGl0IGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55IG1hcHBpbmcpLCBhbmQgd2Ugc2V0CisgICAgICAgIC8vIHVwIHRoZSBpbmRleCBmbGFncyB0byBzaG93IHdoaWNoIGNlbGxzIGluIHRoZSByb3cgYXJlIHBvcHVsYXRlZAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgdGVtcFJvd0luZGV4W2ldID0gaTsKKworICAgICAgICAgICAgaW50W10gcm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAocm93W251bUNvbHNdID09IDEgJiYgcm93WzBdID09IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHJvd1tqXSA9PSAwKQorICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4W2ldID0gKHNob3J0KSgtaik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBmbGFncyA9IG5ldyBpbnRbbnVtQ29sR3JvdXBzXTsKKyAgICAgICAgICAgICAgICBpbnQgbmV4dEZsYWcgPSAxOworICAgICAgICAgICAgICAgIGludCBjb2xHcm91cCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJvd1tqXSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3NbY29sR3JvdXBdIHw9IG5leHRGbGFnOworICAgICAgICAgICAgICAgICAgICBuZXh0RmxhZyA8PD0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRGbGFnID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrY29sR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RmxhZyA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sR3JvdXAgPSAwOworICAgICAgICAgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaiA8IHRlbXBSb3dJbmRleEZsYWdzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKChJbnRlZ2VyKXRlbXBSb3dJbmRleEZsYWdzLmVsZW1lbnRBdChqKSkuaW50VmFsdWUoKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3NbY29sR3JvdXBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2NvbEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbEdyb3VwID49IG51bUNvbEdyb3VwcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2xHcm91cCAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgY29sR3JvdXAgPSAwOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleFtpXSA9IChzaG9ydCkoaiAtIGNvbEdyb3VwKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY29sR3JvdXAgPCBudW1Db2xHcm91cHMpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJvd0luZGV4RmxhZ3MuYWRkRWxlbWVudChuZXcgSW50ZWdlcihmbGFnc1tjb2xHcm91cF0pKTsKKyAgICAgICAgICAgICAgICAgICAgKytjb2xHcm91cDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcm93SW5kZXhGbGFncyA9IG5ldyBpbnRbdGVtcFJvd0luZGV4RmxhZ3Muc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcm93SW5kZXhGbGFnc1tpXSA9ICgoSW50ZWdlcil0ZW1wUm93SW5kZXhGbGFncy5lbGVtZW50QXQoaSkpLmludFZhbHVlKCk7CitTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiBjb2x1bW4gZ3JvdXBzID0gIiArIG51bUNvbEdyb3Vwcyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIlNpemUgb2Ygcm93SW5kZXhGbGFncyA9ICIgKyByb3dJbmRleEZsYWdzLmxlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIHRlbXBSb3dJbmRleDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc3RhY2tSb3dzKFZlY3RvciB0ZW1wVGFibGUpIHsKKy8qCitTeXN0ZW0ub3V0LnByaW50KCJSb3c6XHQiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKQorU3lzdGVtLm91dC5wcmludChyZXZlcnNlQ29sdW1uTWFwW2ldICsgIlx0Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CitTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSkgKyAiOlx0Iik7CitpbnRbXSByb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKK2ZvciAoaW50IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKQoraWYgKHJvd1tqXSAhPSAwKSBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcocm93W2pdKSArICJcdCIpOworZWxzZSBTeXN0ZW0ub3V0LnByaW50KCIuXHQiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworfQorKi8KKworICAgICAgICBpbnRbXSB0ZW1wUm93SW5kZXggPSBidWlsZFJvd0luZGV4KHRlbXBUYWJsZSk7CisgICAgICAgIGJvb2xlYW5bXSB0YmQgPSBuZXcgYm9vbGVhblt0ZW1wVGFibGUuc2l6ZSgpXTsKKworICAgICAgICAvLyBub3cgd2UgYWN0dWFsbHkgZ28gdGhyb3VnaCBhbmQgc3RhY2sgcm93cyB0b2dldGhlcgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKK1N5c3RlbS5vdXQucHJpbnQoIlN0YWNraW5nLCBpbnNwZWN0aW5nIHJvdyAiICsgaSArICIuLi5cciIpOworLy9TeXN0ZW0ub3V0LnByaW50bG4oIlN0YWNraW5nLCBpbnNwZWN0aW5nIHJvdyAiICsgaSArICIuLi4iKTsKKworICAgICAgICAgICAgaW50W10gZGVzdFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICBib29sZWFuW10gdGVtcEZsYWdzID0gbmV3IGJvb2xlYW5bbnVtQ29sc107CisgICAgICAgICAgICBib29sZWFuW10gZmlsbGVkQ2VsbHMgPSBuZXcgYm9vbGVhbltudW1Db2xzXTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgIGZpbGxlZENlbGxzW2pdID0gZGVzdFJvd1tqXSAhPSAwOworCisgICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGRlc3RSb3dbbnVtQ29sc10gPCBudW1Db2xzICYmIGogPCB0ZW1wVGFibGUuc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodGJkW2pdKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGludFtdIHNyY1JvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgIGlmIChzcmNSb3dbbnVtQ29sc10gKyBkZXN0Um93W251bUNvbHNdID4gbnVtQ29scykKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBpbnQgbWF4TGVmdFNoaWZ0ID0gLTk5OTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4UmlnaHRTaGlmdCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBudW1Db2xzOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcEZsYWdzW2tdID0gc3JjUm93W2tdICE9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wRmxhZ3Nba10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXhMZWZ0U2hpZnQgPT0gLTk5OSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZWZ0U2hpZnQgPSAtazsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFJpZ2h0U2hpZnQgPSAobnVtQ29scyAtIDEpIC0gazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCBzaGlmdDsKKyAgICAgICAgICAgICAgICBmb3IgKHNoaWZ0ID0gbWF4TGVmdFNoaWZ0OyBzaGlmdCA8PSBtYXhSaWdodFNoaWZ0OyBzaGlmdCsrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBrOworICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbnVtQ29sczsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEZsYWdzW2tdICYmIGZpbGxlZENlbGxzW2sgKyBzaGlmdF0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGsgPj0gbnVtQ29scykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc2hpZnQgPD0gbWF4UmlnaHRTaGlmdCkgeworLy9TeXN0ZW0ub3V0LnByaW50bG4oIlBhY2tpbmcgcm93ICIgKyBqICsgIiBpbnRvIHJvdyAiICsgaSArICIgd2l0aCBzaGlmdCA9ICIgKyBzaGlmdCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbnVtQ29sczsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEZsYWdzW2tdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbGVkQ2VsbHNbayArIHNoaWZ0XSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFJvd1trICsgc2hpZnRdID0gc3JjUm93W2tdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZGVzdFJvd1tudW1Db2xzXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0YmRbal0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUm93SW5kZXhbal0gPSBpOworICAgICAgICAgICAgICAgICAgICByb3dJbmRleFNoaWZ0c1tqXSA9IChieXRlKXNoaWZ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIHdlIHNxdWVlemUgb3V0IGFsbCB0aGUgZGVsZXRlZCByb3dzCisgICAgICAgIGludCBkZWNyZW1lbnRCeSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFJvd0luZGV4Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIXRiZFtpXSkKKyAgICAgICAgICAgICAgICB0ZW1wUm93SW5kZXhbaV0gLT0gZGVjcmVtZW50Qnk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgKytkZWNyZW1lbnRCeTsKKyAgICAgICAgfQorICAgICAgICByb3dJbmRleCA9IG5ldyBzaG9ydFt0ZW1wUm93SW5kZXgubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IHRlbXBSb3dJbmRleC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkgeworICAgICAgICAgICAgICAgIHJvd0luZGV4W2ldID0gKHNob3J0KSh0ZW1wUm93SW5kZXhbdGVtcFJvd0luZGV4W2ldXSk7CisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByb3dJbmRleFtpXSA9IChzaG9ydCl0ZW1wUm93SW5kZXhbaV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRUYWJsZSgpIHsKKyAgICAgICAgc2hvcnQgY2VsbDsKKyAgICAgICAgaW50IHBvcHVsYXRlZENlbGxzID0gMDsKKy8qCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29uY2VwdHVhbCB0YWJsZToiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgUm93OiAgIGEgICBiICAgYyAgIGQgICBlICAgZiAgIGcgICBoICAgaSAgIGogICBrICAgbCAgIG0gICBuIgorICAgICAgICAgICAgICAgICsgIiAgIG8gICBwICAgcSAgIHIgICBzICAgdCAgIHUgICB2ICAgdyAgIHggICB5ICAgeiAgICcgICAjIik7CisKKyAgICAgICAgYm9vbGVhbltdIHJvd1ByaW50RmxhZ3MgPSBuZXcgYm9vbGVhbltyb3dJbmRleC5sZW5ndGhdOworICAgICAgICBwcmludENvbmNlcHR1YWxUYWJsZSgiIiwgMCwgcm93UHJpbnRGbGFncyk7CisqLworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmNlcHR1YWwgdGFibGU6Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBSb3c6Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmV2ZXJzZUNvbHVtbk1hcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICIgKyByZXZlcnNlQ29sdW1uTWFwW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIHByaW50TnVtYmVyKGksIDQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiIpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIoYXQoaSwgaiksIDQpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbignXG4nKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnRlcm5hbGx5IHN0b3JlZCB0YWJsZToiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIFJvdzoiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXZlcnNlQ29sdW1uTWFwLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgIiArIHJldmVyc2VDb2x1bW5NYXBbaV0pOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpICUgbnVtQ29scyA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIoaSAvIG51bUNvbHMsIDQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNlbGwgPSB0YWJsZVtpXTsKKyAgICAgICAgICAgIGlmIChjZWxsICE9IDApCisgICAgICAgICAgICAgICAgcG9wdWxhdGVkQ2VsbHMrKzsKKyAgICAgICAgICAgIHByaW50TnVtYmVyKGNlbGwsIDQpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbignXG4nKTsKKworU3lzdGVtLm91dC5wcmludGxuKCJSb3cgaW5kZXg6Iik7Citmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4Lmxlbmd0aDsgaSsrKSB7CisgICAgU3lzdGVtLm91dC5wcmludCgiICAgIiArIGkgKyAiIC0+ICIgKyByb3dJbmRleFtpXSk7CisgICAgaWYgKHJvd0luZGV4RmxhZ3NJbmRleFtpXSA8IDApCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgZmxhZ3MgPSAiICsgSW50ZWdlci50b0JpbmFyeVN0cmluZygoMSA8PCAoLXJvd0luZGV4RmxhZ3NJbmRleFtpXSkpKSArICIgKCIgKyByb3dJbmRleEZsYWdzSW5kZXhbaV0pOworICAgIGVsc2UKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLCBmbGFncyA9ICIgKyBJbnRlZ2VyLnRvQmluYXJ5U3RyaW5nKHJvd0luZGV4RmxhZ3Nbcm93SW5kZXhGbGFnc0luZGV4W2ldXSkgKyAiICgiICsgcm93SW5kZXhGbGFnc0luZGV4W2ldKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiksIHNoaWZ0ID0gIiArIHJvd0luZGV4U2hpZnRzW2ldKTsKK30KKy8qCisgICAgICAgIGludCB0aGVvcmV0aWNhbE1pblJvd3MgPSBwb3B1bGF0ZWRDZWxscyAvIG51bUNvbHM7CisgICAgICAgIGlmIChwb3B1bGF0ZWRDZWxscyAlIG51bUNvbHMgIT0gMCkKKyAgICAgICAgICAgIHRoZW9yZXRpY2FsTWluUm93cysrOworICAgICAgICBpbnQgb25lQ2VsbFJvd3MgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGRvdWJsZSB0ZW1wID0gTWF0aC5sb2cocm93SW5kZXhGbGFnc1tpXSkgLyBNYXRoLmxvZygyKTsKKyAgICAgICAgICAgIGlmICh0ZW1wID09IChpbnQpdGVtcCkKKyAgICAgICAgICAgICAgICBvbmVDZWxsUm93cysrOworICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCdcbicpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIHdvcmRzIGluIGlucHV0ID0gIiArIHRvdGFsV29yZHMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIHVuaXF1ZSB3b3JkcyA9ICIgKyB1bmlxdWVXb3JkcyArICIsIGNvbXByaXNpbmcgIiArCisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFVuaXF1ZVdvcmRDaGFycyArICIgY2hhcmFjdGVyc1xuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIHBvcHVsYXRlZCBjZWxscyA9ICIgKyBwb3B1bGF0ZWRDZWxscyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgbnVtYmVyIG9mIGNlbGxzID0gIiArICh0YWJsZS5sZW5ndGgpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZXNpZGVuY3kgPSAiICsgKChmbG9hdClwb3B1bGF0ZWRDZWxscyAvIHRhYmxlLmxlbmd0aCAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhdGlvIG9mIHBvcHVsYXRlZCBjZWxscyB0byB1bmlxdWUtd29yZCBjaGFyYWN0ZXJzID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoKGZsb2F0KXBvcHVsYXRlZENlbGxzIC8gdG90YWxVbmlxdWVXb3JkQ2hhcnMgKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiB0b3RhbCBjZWxscyB0byB1bmlxdWUtd29yZCBjaGFyYWN0ZXJzID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoKGZsb2F0KXRhYmxlLmxlbmd0aCAvIHRvdGFsVW5pcXVlV29yZENoYXJzICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIHJvd3MgPSAiICsgKHRhYmxlLmxlbmd0aCAvIG51bUNvbHMpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVvcmV0aWNhbCBtaW5pbXVtIG51bWJlciBvZiByb3dzID0gIiArIHRoZW9yZXRpY2FsTWluUm93cyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmF0aW8gb2YgbnVtYmVyIG9mIHJvd3MgdG8gdGhlb3JldGljYWwgbWluaW11bSA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdCkodGFibGUubGVuZ3RoIC8gbnVtQ29scykgLyB0aGVvcmV0aWNhbE1pblJvd3MgKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgY29uY2VwdHVhbCByb3dzID0gIiArIHJvd0luZGV4Lmxlbmd0aCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29uY2VwdHVhbCByb3dzIHdpdGggb25seSBvbmUgcG9wdWxhdGVkIGNlbGwgPSAiICsgb25lQ2VsbFJvd3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhdGlvIG9mIG9uZS1jZWxsIHJvd3MgdG8gdG90YWwgY29uY2VwdHVhbCByb3dzID0gIiArICgoKGZsb2F0KW9uZUNlbGxSb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgLyByb3dJbmRleC5sZW5ndGggKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBdmVyYWdlIG51bWJlciBvZiBwb3B1bGF0ZWQgY2VsbHMgaW4gbXVsdGktY2VsbCByb3dzID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoKGZsb2F0KShwb3B1bGF0ZWRDZWxscyAtIG9uZUNlbGxSb3dzKSAvIChyb3dJbmRleC5sZW5ndGggLSBvbmVDZWxsUm93cykpKTsKKworICAgICAgICBpbnQgc3RvcmFnZVVzZWQgPSB0YWJsZS5sZW5ndGggKiAyICsgcm93SW5kZXgubGVuZ3RoICogMgorICAgICAgICAgICAgICAgICAgICAgICAgKyByb3dJbmRleEZsYWdzLmxlbmd0aCAqIDQgKyByb3dJbmRleFNoaWZ0cy5sZW5ndGg7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgbnVtYmVyIG9mIGJ5dGVzIGluIHRhYmxlIChpbmNsdWRpbmcgaW5kZXhlcykgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VVc2VkKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBvZiBvdmVyaGVhZCBwZXIgdW5pcXVlLXdvcmQgY2hhcmFjdGVyID0gIiArICgoZG91YmxlKShzdG9yYWdlVXNlZAorICAgICAgICAgICAgICAgICAgICAgICAgLSAodG90YWxVbmlxdWVXb3JkQ2hhcnMgKiAyKSkgLyB0b3RhbFVuaXF1ZVdvcmRDaGFycykpOworKi8KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRDb25jZXB0dWFsVGFibGUoU3RyaW5nIGluaXRpYWxTdHJpbmcsIGludCBzdGF0ZSwgYm9vbGVhbltdIGZsYWdzKSB7CisgICAgICAgIGlmIChpbml0aWFsU3RyaW5nLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInJvb3Q6Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpbml0aWFsU3RyaW5nICsgJzonKTsKKworICAgICAgICBpZiAoIWZsYWdzW3N0YXRlXSkgeworICAgICAgICAgICAgZmxhZ3Nbc3RhdGVdID0gdHJ1ZTsKKyAgICAgICAgICAgIHByaW50TnVtYmVyKHN0YXRlLCA0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKQorICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGF0KHN0YXRlLCBpKSwgNCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0U3RhdGU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICBuZXh0U3RhdGUgPSBhdChzdGF0ZSwgaSk7CisgICAgICAgICAgICBpZiAobmV4dFN0YXRlID4gMCAmJiAhZmxhZ3NbbmV4dFN0YXRlXSkgeworICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKG5leHRTdGF0ZSwgNCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiIpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgICAgICBwcmludE51bWJlcihhdChuZXh0U3RhdGUsIGopLCA0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgbmV4dFN0YXRlID0gYXQoc3RhdGUsIGkpOworICAgICAgICAgICAgaWYgKG5leHRTdGF0ZSA+IDAgJiYgIWZsYWdzW25leHRTdGF0ZV0pIHsKKyAgICAgICAgICAgICAgICBjaGFyIG5leHRDaGFyOworICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhdGUgPT0gMjcpCisgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gJyAnOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5leHRTdGF0ZSA9PSAyNikKKyAgICAgICAgICAgICAgICAgICAgbmV4dENoYXIgPSAnXCcnOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV4dENoYXIgPSAoY2hhcikoaSArICdhJyk7CisgICAgICAgICAgICAgICAgZmxhZ3NbbmV4dFN0YXRlXSA9IHRydWU7CisgICAgICAgICAgICAgICAgcHJpbnRDb25jZXB0dWFsVGFibGUoaW5pdGlhbFN0cmluZyArIG5leHRDaGFyLCBuZXh0U3RhdGUsIGZsYWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludFdvcmRMaXN0KFN0cmluZyBwYXJ0aWFsV29yZCwgaW50IHN0YXRlLCBQcmludFdyaXRlciBvdXQpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoc3RhdGUgPT0gLTEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgICAgICBpZiAob3V0ICE9IG51bGwpCisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4ocGFydGlhbFdvcmQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoYXQoc3RhdGUsIGkpICE9IDApCisgICAgICAgICAgICAgICAgICAgIHByaW50V29yZExpc3QocGFydGlhbFdvcmQgKyByZXZlcnNlQ29sdW1uTWFwW2ldLCBhdChzdGF0ZSwgaSksIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVEaWN0aW9uYXJ5RmlsZShEYXRhT3V0cHV0U3RyZWFtIG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgb3V0LndyaXRlSW50KDApOyAgICAvLyB2ZXJzaW9uIG51bWJlcgorCisgICAgICAgIGNoYXJbXSBjb2x1bW5NYXBJbmRleGVzID0gY29sdW1uTWFwLmdldEluZGV4QXJyYXkoKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGNvbHVtbk1hcEluZGV4ZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2x1bW5NYXBJbmRleGVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlU2hvcnQoKHNob3J0KWNvbHVtbk1hcEluZGV4ZXNbaV0pOworICAgICAgICBieXRlW10gY29sdW1uTWFwVmFsdWVzID0gY29sdW1uTWFwLmdldFZhbHVlQXJyYXkoKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGNvbHVtbk1hcFZhbHVlcy5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbHVtbk1hcFZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZUJ5dGUoKGJ5dGUpY29sdW1uTWFwVmFsdWVzW2ldKTsKKworICAgICAgICBvdXQud3JpdGVJbnQobnVtQ29scyk7CisgICAgICAgIG91dC53cml0ZUludChudW1Db2xHcm91cHMpOworCisgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleC5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlU2hvcnQocm93SW5kZXhbaV0pOworCisgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleEZsYWdzSW5kZXgubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzSW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVTaG9ydChyb3dJbmRleEZsYWdzSW5kZXhbaV0pOworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXhGbGFncy5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3MubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXhGbGFnc1tpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4U2hpZnRzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhTaGlmdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVCeXRlKHJvd0luZGV4U2hpZnRzW2ldKTsKKworICAgICAgICBvdXQud3JpdGVJbnQodGFibGUubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KHRhYmxlW2ldKTsKKworICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnROdW1iZXIoaW50IHgsIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmcgcyA9IFN0cmluZy52YWx1ZU9mKHgpOworICAgICAgICBpZiAod2lkdGggPiBzLmxlbmd0aCgpKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzcGFjZXMuc3Vic3RyaW5nKDAsIHdpZHRoIC0gcy5sZW5ndGgoKSkpOworICAgICAgICBpZiAoeCAhPSAwKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgnLicpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzaG9ydCBhdChpbnQgcm93LCBjaGFyIGNoKSB7CisgICAgICAgIGludCBjb2wgPSBjb2x1bW5NYXAuZWxlbWVudEF0KGNoKTsKKyAgICAgICAgcmV0dXJuIGF0KHJvdywgY29sKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc2hvcnQgYXQoaW50IHJvdywgaW50IGNvbCkgeworICAgICAgICBpZiAoY2VsbElzUG9wdWxhdGVkKHJvdywgY29sKSkKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEF0KHJvd0luZGV4W3Jvd10sIGNvbCArIHJvd0luZGV4U2hpZnRzW3Jvd10pOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2VsbElzUG9wdWxhdGVkKGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgaWYgKHJvd0luZGV4RmxhZ3NJbmRleFtyb3ddIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBjb2wgPT0gLXJvd0luZGV4RmxhZ3NJbmRleFtyb3ddOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBmbGFncyA9IHJvd0luZGV4RmxhZ3Nbcm93SW5kZXhGbGFnc0luZGV4W3Jvd10gKyAoY29sID4+IDUpXTsKKyAgICAgICAgICAgIHJldHVybiAoZmxhZ3MgJiAoMSA8PCAoY29sICYgMHgxZikpKSAhPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBzaG9ydCBpbnRlcm5hbEF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlW3JvdyAqIG51bUNvbHMgKyBjb2xdOworICAgIH0KKworICAgIHByaXZhdGUgQ29tcGFjdEJ5dGVBcnJheSBjb2x1bW5NYXAgPSBudWxsOworICAgIHByaXZhdGUgY2hhcltdIHJldmVyc2VDb2x1bW5NYXAgPSBudWxsOworICAgIHByaXZhdGUgaW50IG51bUNvbHM7CisgICAgcHJpdmF0ZSBpbnQgbnVtQ29sR3JvdXBzOworICAgIHByaXZhdGUgc2hvcnRbXSB0YWJsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBzaG9ydFtdIHJvd0luZGV4ID0gbnVsbDsKKyAgICBwcml2YXRlIGludFtdIHJvd0luZGV4RmxhZ3MgPSBudWxsOworICAgIHByaXZhdGUgc2hvcnRbXSByb3dJbmRleEZsYWdzSW5kZXggPSBudWxsOworICAgIHByaXZhdGUgYnl0ZVtdIHJvd0luZGV4U2hpZnRzID0gbnVsbDsKKworICAgIHByaXZhdGUgaW50IHRvdGFsV29yZHMgPSAwOworICAgIHByaXZhdGUgaW50IHVuaXF1ZVdvcmRzID0gMDsKKyAgICBwcml2YXRlIGludCB0b3RhbFVuaXF1ZVdvcmRDaGFycyA9IDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3BhY2VzID0gIiAgICAgICI7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL3JlYWRtZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvcmVhZG1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY2MmE5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL3JlYWRtZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIgorIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlJFQURNRSBGb3IgUkJCSSBUb29sczwvdGl0bGU+Cis8IS0tIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICAgICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKzwvaGVhZD4KKzxib2R5PgorPGgzPldoYXQgQXJlIFRoZXNlIFRvb2xzPzwvaDM+CitUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0d28gdG9vbHMsIFdyaXRlVGFibGVzVG9GaWxlcywgd2hpY2ggY29udmVydHMKK3RoZSBKYXZhJm5ic3A7IEJyZWFrSXRlcmF0b3JzIGludG8gLmJyayBmaWxlcyBmb3IgSUNVNEMsIGFuZAorQnVpbGREaWN0aW9uYXJ5RmlsZSwgd2hpY2ggYnVpbGRzIHRoZSBiaW5hcnkgdGhlIFRoYWkgd29yZCBicmVhaworZGljdGlvbmFyeSBmcm9tIGEgVW5pY29kZSB0ZXh0IGZpbGUgY29udGFpbmluZyBhIGxpc3Qgb2YgVGhhaSB3b3Jkcy4KK1RoZSByZXN0IG9mIHRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGhvdyB0byB1c2UgdGhlc2UgdG9vbHMuPGJyPgorPGgzPkhvdyBUbyBCdWlsZCBUaGUgSUNVNEMgQnJlYWtJdGVyYXRvciBGaWxlczwvaDM+CitUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjb2RlIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgSUNVNEosIGFuZAordGhlbiBwb3J0ZWQgdG8gSUNVNEMuIEZvciB2YXJpb3VzIHJlYXNvbnMsIHRoZSBjb2RlIHdoaWNoIGNvbXBpbGVkIHRoZQorc3RhdGUgdGFibGVzIGZyb20gdGhlIHJ1bGUgdGV4dCB3YXMgaGFyZCB0byBwb3J0LiBJbnN0ZWFkIHRoZQorV3JpdGVUYWJsZXNUb0ZpbGVzIHRvb2wgd2FzIHdpcnR0ZW4gdG8gcmVhZCBpbiB0aGUgSmF2YSBkYXRhIGFuZCB3cml0ZQordGhlIC5icmsgZmlsZXMgd2hpY2ggSUNVNEMgcmVhZHMuIExhdGVyIHRoZSBSQkJJIGNvZGUgd2FzIHJlLXdyaXR0ZW4KK2ZvciBJQ1U0QywgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIGNvbXBpbGUgdGhlIHN0YXRlIHRhYmxlcyBmcm9tIHJ1bGVzCitzdG9yZWQgaW4gdGV4dCBmaWxlcy4gVGhpcyBtZWFucyB0aGF0IHRoZSBXcml0ZVRhYmxlc1RvRmlsZXMgdG9vbCBpcworbm93IG9ic29sZXRlLjxicj4KKzxicj4KKzxoMz5Ib3cgVG8gQnVpbGQgVGhlIFRoYWkgV29yZCBCcmVhayBEaWN0aW9uYXJ5PC9oMz4KK1RoZSBUaGFpIHdvcmQgYmVyYWsgY29kZSB3YXMgZGV2ZWxvcGVkIG9yaWdpbmFsbHkgZm9yIElDVTRKLCBhbmQgdGhlbgorcG9ydGVkIHRvIElDVTRDIC0gdGhlIGRpY3Rpb25hcnkgYnVpbGRlciB0b29sIHdhcyBuZXZlciBwb3J0ZWQsIHNvIHlvdQoraGF2ZSB0byB1c2UgdGhlIEphdmEgdG9vbCB0byBidWlsZCB0aGUgZGljdGlvbmFyeSBmaWxlIGZvciBJQ1U0Qy4gT24KK3RoZSBvdGhlciBoYW5kLCBhbGwgb2YgdGhlIHJlc3Qgb2YgdGhlIElDVSBsb2NhbGUgZGF0YSB3YXMgZGV2ZWxvcGVkCitvcmlnaW5hbGx5IGZvcgorSUNVNEMsIGFuZCBhIHRvb2wgd2FzIHdyaXR0ZW4gdG8gY292ZXJ0IHRoZSBJQ1U0QyBsb2NhbGUgZGF0YSB0byBKYXZhCityZXNvdXJjZSBidW5kbGVzIGZvciB1c2UgYnkgSUNVNEouIENvbnNlcXVlbnRseSwgdGhlIHByb2Nlc3Mgb2YKK2J1aWxkaW5nIHRoZSBUaGFpCit3b3JkIGJyZWFrIGRpY3Rpb25hcnkgZm9yIElDVTRDIGFuZAorSUNVNEogaXMgYSBiaXQgY29udm9sdXRlZC4gSGVyZSBhcmUgdGhlIHN0ZXBzOjxicj4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+Cis8b2w+CisgIDxsaT5Eb3dubG9hZCBhbmQgYnVpbGQgYm90aCBJQ1U0QyBhbmQgSUNVNEogb24gYSA8c3BhbgorIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPkJpZyBFbmRpYW48L3NwYW4+IG1hY2hpbmUuPGJyPgorICA8L2xpPgorICA8bGk+UnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lIHRvIGJ1aWxkIHRoZSBUaGFpIGRpY3Rpb25hcnkgZmlsZTo8YnI+CitqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRvb2wucmJiaS5CdWlsZERpY3Rpb25hcnlGaWxlCiskaWN1NGpfcm9vdC9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIFVuaWNvZGUKKyRpY3Vfcm9vdC9zb3J1Y2UvZGF0YS9icmtpdHIvdGhhaV9kaWN0LmJyazwvbGk+CisgIDxsaT5SZWJ1aWxkIHRoZSBJQ1U0QyByZXNvdXJjZXMuPC9saT4KKyAgPGxpPlJlYnVpbGQgdGhlIElDVTRKIElDVUxvY2FsZURhdGEuamFyIGZpbGUuIChTZWUgPGEKKyBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9yZWFkbWUuaHRtbCI+dGhlIElDVTRKIHJlYWRtZSBmaWxlPC9hPiBmb3IKK2luc3RydWN0aW9ucyk8L2xpPgorICA8bGk+TW92ZSBJQ1VMb2NhbGVEYXRhLmphciBmcm9tICRpY3Vfcm9vdC9zb3VyY2UvZGF0YS9sb2NhbGVzL2phdmEgdG8KKyRpY3U0al9yb290L3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGE8L2xpPgorICA8bGk+QnVpbGQgSUNVNEoncyBfcmVzb3VyY2VzIHRhcmdldCB0byB1bmphciB0aGUgbmV3IGZpbGVzLjxicj4KKyAgPC9saT4KKzwvb2w+Cis8L2Rpdj4KK0luIHRoZSBhYm92ZSwgJGljdV9yb290IGlzIHRoZSByb290IG9mIHlvdXIgSUNVNEMgc291cmNlIHRyZWUsIGZvcgorZXhhbXBsZQorIn4vZGV2L2ljdSIgYW5kICRpY3U0al9yb290IGlzIHRoZSByb290IG9mIHlvdXIgSUNVNEogc291cmNlIHRyZWUsIGZvcgorZXhhbXBsZSAifi9kZXYvaWN1NGoiLjxicj4KKzxicj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlQ2hlY2tlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVDaGVja2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNlMWQzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlQ2hlY2tlci5qYXZhCkBAIC0wLDAgKzEsMjA0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVSTEhhbmRsZXI7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlLlNlcmlhbGl6YWJsZVRlc3Q7CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmxhbmcuQ2xhc3M7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTW9kaWZpZXI7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisvKioKKyAqIFRoaXMgY2xhc3MgZXhhbWluZXMgYWxsIHRoZSBjbGFzc2VzIGluIGEgSmFyIGZpbGUgb3IgYSBkaXJlY3RvcnkKKyAqIGFuZCBsaXN0cyBhbGwgdGhvc2UgY2xhc3NlcyB0aGF0IGltcGxlbWVudCA8Y29kZT5TZXJpYWxpemFibGU8L2NvZGU+LiBJdCBhbHNvIGNoZWNrcworICogdG8gbWFrZSBzdXJlIHRoYXQgdGhvc2UgY2xhc3NlcyBoYXZlIHRoZSA8Y29kZT5zZXJpYWxWZXJzaW9uVUlEPC9jb2RlPgorICogZmllbGQgZGVmaW5lLgorICogCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJpYWxpemFibGVDaGVja2VyIGltcGxlbWVudHMgVVJMSGFuZGxlci5VUkxWaXNpdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgQ2xhc3Mgc2VyaWFsaXphYmxlOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgQ2xhc3MgdGhyb3dhYmxlOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHBhdGggPSBudWxsOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiB3cml0ZTsKKyAgICAKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlQ2hlY2tlcihTdHJpbmcgcGF0aCkKKyAgICB7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIAorICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKHBhdGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGRpci5ta2RpcnMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeyAgICAKKyAgICAgICAgICAgIHNlcmlhbGl6YWJsZSA9IENsYXNzLmZvck5hbWUoImphdmEuaW8uU2VyaWFsaXphYmxlIik7CisgICAgICAgICAgICAvL3Rocm93YWJsZSAgICA9IENsYXNzLmZvck5hbWUoImphdmEubGFuZy5UaHJvd2FibGUiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIHdlJ3JlIGluIGRlZXAgdHJvdWJsZS4uLgorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXb29wcyEgQ2FuJ3QgZ2V0IGNsYXNzIGluZm8gZm9yIFNlcmlhbGl6YWJsZSBhbmQgVGhyb3dhYmxlLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZUZpbGUoU3RyaW5nIGNsYXNzTmFtZSwgYnl0ZSBieXRlc1tdKQorICAgIHsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUocGF0aCArIEZpbGUuc2VwYXJhdG9yICsgY2xhc3NOYW1lICsgIi5kYXQiKTsKKyAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBzdHJlYW07CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cmVhbS53cml0ZShieXRlcyk7CisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAtIGNhbid0IHdyaXRlIGZpbGUhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBpeCA9IHN0ci5sYXN0SW5kZXhPZigiLmNsYXNzIik7CisgICAgICAgIAorICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9ICJjb20uaWJtLmljdSIgKyBzdHIuc3Vic3RyaW5nKDAsIGl4KS5yZXBsYWNlKCcvJywgJy4nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2tpcCB0aGluZ3MgaW4gY29tLmlibS5pY3UuZGV2OyB0aGV5J3JlIG5vdCByZWxldmFudC4KKyAgICAgICAgICAgIGlmIChjbGFzc05hbWUuc3RhcnRzV2l0aCgiY29tLmlibS5pY3UuZGV2LiIpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGMgPSBDbGFzcy5mb3JOYW1lKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgaW50ICAgbSA9IGMuZ2V0TW9kaWZpZXJzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNlcmlhbGl6YWJsZS5pc0Fzc2lnbmFibGVGcm9tKGMpIC8qJiYKKyAgICAgICAgICAgICAgICAgICAgKCEgdGhyb3dhYmxlLmlzQXNzaWduYWJsZUZyb20oYykgfHwgYy5nZXREZWNsYXJlZEZpZWxkcygpLmxlbmd0aCA+IDApKi8pIHsKKyAgICAgICAgICAgICAgICAgICAgRmllbGQgdWlkOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChjbGFzc05hbWUgKyAiICgiICsgTW9kaWZpZXIudG9TdHJpbmcobSkgKyAiKSAtICIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpZCA9IGMuZ2V0RGVjbGFyZWRGaWVsZCgic2VyaWFsVmVyc2lvblVJRCIpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgibm8gc2VyaWFsVmVyc2lvblVJRCAtICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNQdWJsaWMobSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlciBoYW5kbGVyID0gU2VyaWFsaXphYmxlVGVzdC5nZXRIYW5kbGVyKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qgb2JqZWN0c091dFtdID0gaGFuZGxlci5nZXRUZXN0T2JqZWN0cygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzSW5bXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ5dGVPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZU91dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KG9iamVjdHNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZU91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcm9yIHdyaXRpbmcgdGVzdCBvYmplY3RzOiIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKGNsYXNzTmFtZSwgYnl0ZU91dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZUluID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVPdXQudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZUluKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RzSW4gPSAoT2JqZWN0W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciByZWFkaW5nIHRlc3Qgb2JqZWN0czoiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBvYmplY3RzSW4ubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgaGFuZGxlci5oYXNTYW1lQmVoYXZpb3Iob2JqZWN0c0luW2ldLCBvYmplY3RzT3V0W2ldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9iamVjdCAiICsgaSArICIgZmFpbGVkIGJlaGF2aW9yIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJ0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgT0sgdG8gbm90IGhhdmUgdGVzdHMgZm9yIGFic3RyYWN0IGNsYXNzZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBNb2RpZmllci5pc0Fic3RyYWN0KG0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIm5vIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBwcm9jZXNzaW5nICIgKyBjbGFzc05hbWUgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24KKyAgICB7CisgICAgICAgIExpc3QgYXJnTGlzdCA9IEFycmF5cy5hc0xpc3QoYXJncyk7CisgICAgICAgIFN0cmluZyBwYXRoID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhcmdMaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgLyphbnl0aGluZz8qLykgeworICAgICAgICAgICAgU3RyaW5nIGFyZyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi13IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdGggPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNaXNzaW5nIGRpcmVjdG9yeSBuYW1lIG9uIC13IGNvbW1hbmQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL1VSTCBqYXJVUkwgID0gbmV3IFVSTCgiamFyOmZpbGU6L2Rldi9lY2xpcHNlL3dvcmtzcGFjZS9pY3U0ai9pY3U0ai5qYXIhL2NvbS9pYm0vaWN1Iik7CisgICAgICAgICAgICAgICAgICAgIC8vVVJMIGZpbGVVUkwgPSBuZXcgVVJMKCJmaWxlOi9kZXYvZWNsaXBzZS93b3Jrc3BhY2UvaWN1NGovY2xhc3Nlcy9jb20vaWJtL2ljdSIpOworICAgICAgICAgICAgICAgICAgICBVUkwgdXJsID0gbmV3IFVSTChhcmcpOworICAgICAgICAgICAgICAgICAgICBVUkxIYW5kbGVyIGhhbmRsZXIgID0gVVJMSGFuZGxlci5nZXQodXJsKTsKKyAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXphYmxlQ2hlY2tlciBjaGVja2VyID0gbmV3IFNlcmlhbGl6YWJsZUNoZWNrZXIocGF0aCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNoZWNraW5nIGNsYXNzZXMgZnJvbSAiICsgYXJnICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5ndWlkZShjaGVja2VyLCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBwcm9jZXNzaW5nIFVSTCBcIiIgKyBhcmcgKyAiXCIgLSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvQ2FsY3VsYXRlTGltaXRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0NhbGN1bGF0ZUxpbWl0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NGIwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0NhbGN1bGF0ZUxpbWl0cy5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50aW1lc2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIGNhbGN1bGF0ZXMgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIHdoaWNoIGNhbiBiZQorICogdXNlZCBhcyBhcmd1bWVudHMgdG8gPGNvZGU+dG9Mb25nPC9jb2RlPiBhbmQgPGNvZGU+ZnJvbTwvY29kZT4uCisgKiAKKyAqIE5PVEU6IElmIHlvdSBjaGFuZ2UgdGhlIHdheSBpbiB3aGljaCB0aGVzZSB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQsIGl0CisgKiBtYXkgYmUgbmVjZXNzYXJ5IHRvIGRpc2FibGUgdG8gPGNvZGU+dG9SYW5nZUNoZWNrKCk8L2NvZGU+IGFuZAorICogPGNvZGU+ZnJvbVJhbmdlQ2hlY2soKTwvY29kZT4gbWV0aG9kcyBpbiB0aGUgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPgorICogZm9yIGFsbCBvZiB0aGUgY2FsY3VsYXRpb25zIHRvIHJ1biB3aXRob3V0IHRocm93aW5nIGFuIGVycm9yLgorICogCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgKiAKKyAqIEBkcmFmdCBJQ1UgMy4yCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxjdWxhdGVMaW1pdHMgeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsY3VsYXRlTGltaXRzKCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgZmlyc3QgY2FsY3VsYXRlcyB0aGUgPGNvZGU+ZnJvbTwvY29kZT4gbGltaXRzIGJ5CisgICAgICogcGFzc2luZyA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gYW5kIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPiB0bworICAgICAqIHRoZSAoaW50ZXJuYWwpIDxjb2RlPnRvQmlnRGVjaW1hbFRydW5jKCk8L2NvZGU+IG1ldGhvZC4gQW55IHZhbHVlcyBvdXRzaWRlCisgICAgICogb2YgdGhlIHJhbmdlIG9mIGEgPGNvZGU+bG9uZzwvY29kZT4gYXJlIHBpbm5lZC4KKyAgICAgKiAKKyAgICAgKiBUaGUgbWltaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMgZm9yIDxjb2RlPnRvTG9uZzwvY29kZT4gYXJlIGNhbHVsYXRlZCBieSBwYXNzaW5nCisgICAgICogdGhlIG1pbiBhbmQgbWF4IHZhbHVlcyBjYWxjdWxhdGVkIGFib3ZlIHRvIDxjb2RlPkJpZ0RlY2ltYWxGcm9tKCk8L2NvZGU+LiBCZWNhdXNlCisgICAgICogdGhpcyBtZXRob2Qgd2lsbCByb3VuZCwgdGhlIHJldHVybmVkIHZhbHVlcyBhcmUgYWRqdXN0ZWQgdG8gdGFrZSB0aGlzIGludG8gYWNjb3VudC4KKyAgICAgKiAKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgLSB0aGUgY29tbWFuZCBsaW5lIGFydWdtZW50cworICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFRpbWVab25lIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MH1MLCB7MX1MLCB7Mn1MLCB7M31MIik7ICAgICAgICAKKyAgICAgICAgQmlnRGVjaW1hbCB1bml2ZXJzYWxNaW4gPSBuZXcgQmlnRGVjaW1hbChMb25nLk1JTl9WQUxVRSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdmVyc2FsTWF4ID0gbmV3IEJpZ0RlY2ltYWwoTG9uZy5NQVhfVkFMVUUpOworICAgICAgICBPYmplY3QgbGltaXRBcmdzW10gPSB7bnVsbCwgbnVsbCwgbnVsbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVG8sIEZyb20gbGltaXRzOiIpOworICAgICAgICAKKyAgICAgICAgLy8gZnJvbSBsaW1pdHMKKyAgICAgICAgZm9yKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW4gPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmModW5pdmVyc2FsTWluLCBzY2FsZSkubWF4KHVuaXZlcnNhbE1pbik7CisgICAgICAgICAgICBCaWdEZWNpbWFsIG1heCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyh1bml2ZXJzYWxNYXgsIHNjYWxlKS5taW4odW5pdmVyc2FsTWF4KTsKKyAgICAgICAgICAgIGxvbmcgbWluTG9uZyAgID0gbWluLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBtYXhMb25nICAgPSBtYXgubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbWl0QXJnc1syXSA9IG1pbi50b1N0cmluZygpOworICAgICAgICAgICAgbGltaXRBcmdzWzNdID0gbWF4LnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIC8vIHRvIGxpbWl0cworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW5UcnVuYyAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKG1pbiwgc2NhbGUpOworICAgICAgICAgICAgQmlnRGVjaW1hbCBtYXhUcnVuYyAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKG1heCwgc2NhbGUpOworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW5SZXNpZHVlID0gbWluVHJ1bmMuc3VidHJhY3QodW5pdmVyc2FsTWluKTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgbWF4UmVzaWR1ZSA9IHVuaXZlcnNhbE1heC5zdWJ0cmFjdChtYXhUcnVuYyk7CisgICAgICAgICAgICBsb25nIHVuaXRzICAgICAgICAgICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklUU19WQUxVRSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGhhbGYgICAgICAgPSBuZXcgQmlnRGVjaW1hbCh1bml0cyA9PSAxPyAwOiB1bml0cyAvIDIgLSAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWluID0gbWluVHJ1bmMuc3VidHJhY3QobWluUmVzaWR1ZS5taW4oaGFsZikpOworICAgICAgICAgICAgbWF4ID0gbWF4VHJ1bmMuYWRkKG1heFJlc2lkdWUubWluKGhhbGYpKTsKKyAgICAgICAgICAgIGxpbWl0QXJnc1swXSA9IG1pbi50b1N0cmluZygpOworICAgICAgICAgICAgbGltaXRBcmdzWzFdID0gbWF4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGxpbWl0QXJncykpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyByb3VuZC10cmlwIHRlc3QgdGhlIGZyb20gbGltaXRzCisgICAgICAgICAgICBpZihVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKG1pbkxvbmcsIHNjYWxlKSwgc2NhbGUpICE9IG1pbkxvbmcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9PUFM6IG1pbiBkaWRuJ3Qgcm91bmQgdHJpcCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShtYXhMb25nLCBzY2FsZSksIHNjYWxlKSAhPSBtYXhMb25nKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPT1BTOiBtYXggZGlkbid0IHJvdW5kIHRyaXAhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSB0byBsaW1pdHMgY29udmVydCB0byB0aGUgZnJvbSBsaW1pdHMKKyAgICAgICAgICAgIGlmKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcobWluLmxvbmdWYWx1ZSgpLCBzY2FsZSkgIT0gbWluTG9uZykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT09QUzogdG9Mb25nKHRvTWluKSAhPSBmcm9tTWluIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcobWF4LmxvbmdWYWx1ZSgpLCBzY2FsZSkgIT0gbWF4TG9uZykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT09QUzogdG9Mb25nKHRvTWF4KSAhPSBmcm9tTWF4Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0Vwb2NoT2Zmc2V0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9FcG9jaE9mZnNldHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE5NGM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9FcG9jaE9mZnNldHMuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudGltZXNjYWxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIFRoaXMgdG9vbCBjYWxjdWxhdGVzIHRoZSBudW1lcmljIHZhbHVlcyBvZiB0aGUgZXBvY2ggb2Zmc2V0cworICogdXNlZCBpbiBVbml2ZXJzYWxUaW1lU2NhbGUuCisgKiAKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGUKKyAqIAorICpAZHJhZnQgSUNVIDMuMiAKKyAqLworcHVibGljIGNsYXNzIEVwb2NoT2Zmc2V0cworeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRXBvY2hPZmZzZXRzKCkKKyAgICB7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0aWNrcyAgICAgICAgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWljcm9zZWNvbmRzID0gdGlja3MgKiAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbGxpc2Vjb25kcyA9IG1pY3Jvc2Vjb25kcyAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZWNvbmRzICAgICAgPSBtaWxsaXNlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWludXRlcyAgICAgID0gc2Vjb25kcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgaG91cnMgICAgICAgID0gbWludXRlcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5cyAgICAgICAgID0gaG91cnMgKiAyNDsKKyAgICAvLyBKYXZhIG1lYXN1cmVzIHRpbWUgaW4gbWlsbGlzZWNvbmRzLCBub3QgaW4gMTAwbnMgdGlja3MuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBqYXZhRGF5cyAgICAgPSBkYXlzIC8gbWlsbGlzZWNvbmRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W11bXSBlcG9jaERhdGVzID0geworICAgICAgICAgICAgeyAgIDEsIENhbGVuZGFyLkpBTlVBUlksICAgMX0sCisgICAgICAgICAgICB7MTk3MCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxfSwKKyAgICAgICAgICAgIHsxNjAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDF9LAorICAgICAgICAgICAgezE5MDQsIENhbGVuZGFyLkpBTlVBUlksICAgMX0sCisgICAgICAgICAgICB7MjAwMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxfSwKKyAgICAgICAgICAgIHsxODk5LCBDYWxlbmRhci5ERUNFTUJFUiwgMzF9LAorICAgICAgICAgICAgezE5MDAsIENhbGVuZGFyLk1BUkNILCAgICAgMX0KKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5tYWluKCk8L2NvZGU+IG1ldGhvZCBjYWxjdWxhdGVzIHRoZSBlcG9jaCBvZmZzZXRzIHVzZWQgYnkgdGhlCisgICAgICogPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPiBjbGFzcy4KKyAgICAgKiAKKyAgICAgKiBUaGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHVzaW5nIGFuIElDVSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0LiBUaGUgZmlyc3Qgc3RlcCBpcworICAgICAqIHRvIGNhbGN1bGF0ZSB0aGUgVW5pdmVyc2FsIFRpbWUgU2NhbGUncyBlcG9jaCBkYXRlLiBUaGVuIHRoZSBlcG9jaCBvZmZzZXRzIGFyZSBjYWxjdWxhdGVkCisgICAgICogYnkgY2FsY3VsYXRpbmcgZWFjaCBlcG9jaCBkYXRlLCBzdWJ0cmFjdGluZyB0aGUgdW5pdmVyc2FsIGVwb2NoIGRhdGUgZnJvbSBpdCwgYW5kIGNvbnZlcnRpbmcKKyAgICAgKiB0aGF0IHZhbHVlIHRvIHRpY2tzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBhcmdzIC0gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgdXRjID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKTsKKworICAgICAgICAvLyBKaXR0ZXJidWcgNTIxMTogLk5ldCBTeXN0ZW0uRGF0ZVRpbWUgdXNlcyB0aGUgcHJvbGVwdGljIGNhbGVuZGFyLAorICAgICAgICAvLyB3aGlsZSBJQ1UgYnkgZGVmYXVsdCB1c2VzIHRoZSBKdWxpYW4gY2FsZW5kYXIgYmVmb3JlIDE1ODIuCisgICAgICAgIC8vIE9yaWdpbmFsIGNvZGU6IENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAvLyBVc2UgYSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIGZvciAwMDAxQUQgYW5kIGxhdGVyIGJ5IHNldHRpbmcKKyAgICAgICAgLy8gdGhlIEdyZWdvcmlhbiBjaGFuZ2UgZGF0ZSBiZWZvcmUgMDAwMUFEIHdpdGggYSB2YWx1ZQorICAgICAgICAvLyB0aGF0IGlzIHNhZmVseSBiZWZvcmUgdGhhdCBkYXRlIGJ5IGFueSBtZWFzdXJlLCBpLmUuLAorICAgICAgICAvLyBtb3JlIHRoYW4gNzE5MTY0IGRheXMgYmVmb3JlIDE5NzAuCisgICAgICAgIGxvbmcgYmVmb3JlMDAwMUFEID0gLTEwMDAwMDAgKiBqYXZhRGF5czsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKGJlZm9yZTAwMDFBRCkpOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLCBkYXRlLCBmdWxsfSB7MCwgdGltZSwgZnVsbH0gPSB7MX0iKTsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0ge2NhbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVwb2NoIG9mZnNldHM6Iik7CisgICAgICAgIAorICAgICAgICAvLyBKYW51YXJ5IDEsIDAwMDEgMDA6MDA6MDAgaXMgdGhlIHVuaXZlcnNhbCBlcG9jaCBkYXRlLi4uCisgICAgICAgIGNhbC5zZXQoMSwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCwgMCwgMCk7CisKKyAgICAgICAgbG9uZyB1bml2ZXJzYWxFcG9jaCA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXBvY2hEYXRlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50W10gZGF0ZSA9IGVwb2NoRGF0ZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbC5zZXQoZGF0ZVswXSwgZGF0ZVsxXSwgZGF0ZVsyXSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhcmd1bWVudHNbMV0gPSBMb25nLnRvU3RyaW5nKChtaWxsaXMgLSB1bml2ZXJzYWxFcG9jaCkgKiBtaWxsaXNlY29uZHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm10LmZvcm1hdChhcmd1bWVudHMpKTsKKyAgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0dlbmVyYXRlQ1RpbWVTY2FsZURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvR2VuZXJhdGVDVGltZVNjYWxlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYTViOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0dlbmVyYXRlQ1RpbWVTY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJpbnRzIG91dCB0aGUgaW5pdGlhbGl6ZXJzIG5lZWRlZCB0byBpbml0aWFsaXplCisgKiB0aGUgdGltZSBzY2FsZSBkYXRhIGluIHRoZSBDIHZlcnNpb24gb2YgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPi4KKyAqIAorICogSXQganVzdCBjYWxscyA8Y29kZT5nZXRUaW1lU2NhbGVWYWx1ZSgpPC9jb2RlPiBmb3IgYWxsIGZpZWxkcyBhbmQgcHJpbnRzCisgKiB0aGUgaW5pdGlhbGl6ZXJzLiBCZWNhdXNlIHNvbWUgQyBjb21waWxlcnMgY2FuJ3QgY29tcGlsZSBhIGxpdGVyYWwgY29uc3RhbnQgZm9yCisgKiB0aGUgbWluaW11bSBhbmQgLyBvciBtYXhpbXVtIHZhbHVlcyBvZiBhbiA8Y29kZT5pbnQ2NF90PC9jb2RlPiwgdGhpcyBjb2RlIHdpbGwKKyAqIHByaW50IDxjb2RlPlVfSU5UNjRfTUlOPC9jb2RlPiBvciA8Y29kZT5VX0lOVDY0X01BWDwvY29kZT4gZm9yIHRoZXNlIHZhbHVlcy4KKyAqIAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZQorICogCisgKiBAZHJhZnQgSUNVIDMuMgorICovCitwdWJsaWMgY2xhc3MgR2VuZXJhdGVDVGltZVNjYWxlRGF0YQoreworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgR2VuZXJhdGVDVGltZVNjYWxlRGF0YSgpCisgICAgeworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdGlja3MgICAgICAgID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pY3Jvc2Vjb25kcyA9IHRpY2tzICogMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaWxsaXNlY29uZHMgPSBtaWNyb3NlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2Vjb25kcyAgICAgID0gbWlsbGlzZWNvbmRzICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbnV0ZXMgICAgICA9IHNlY29uZHMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGhvdXJzICAgICAgICA9IG1pbnV0ZXMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGRheXMgICAgICAgICA9IGhvdXJzICogMjQ7CisKKyAgICAvKgorICAgICAqIFJldHVybnMgPGNvZGU+U3RyaW5nPC9jb2RlPiB0aGF0IGlzIGEgbGl0ZXJhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICogVGhpcyB3aWxsIGVpdGhlciBiZSBhIGNhbGwgdG8gdGhlIDxjb2RlPklOVDY0X0MoKTwvY29kZT4gbWFjcm8sIG9yIHRoZSBjb25zdGFudAorICAgICAqIDxjb2RlPlVfSU5UNjRfTUlOPC9jb2RlPiBvciA8VV9JTlQ2NF9NQVg+LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBtaW5NYXhGaWx0ZXIobG9uZyB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuICJVX0lOVDY0X01JTiI7CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gTG9uZy5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAiVV9JTlQ2NF9NQVgiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gIklOVDY0X0MoIiArIExvbmcudG9TdHJpbmcodmFsdWUpICsgIikiOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBwcmludHMgdGhlIEMgaW5pdGlhbGl6ZXJzIGZvciB0aGUgdGltZSBzY2FsZSBkYXRhLgorICAgICAqIAorICAgICAqIEBwYXJhbSBhcmdzIC0gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKKyAgICAgKiAKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiJ3snezB9LCB7MX0sIHsyfSwgezN9LCB7NH0sIHs1fSwgezZ9LCB7N30sIHs4fSwgezl9LCB7MTB9fSwiKTsKKyAgICAgICAgT2JqZWN0IGNhcmdzW10gPSB7bnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQyBkYXRhOiIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgdW5pdHMgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklUU19WQUxVRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh1bml0cyA9PSB0aWNrcykgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gInRpY2tzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gbWljcm9zZWNvbmRzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWljcm9zZWNvbmRzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gbWlsbGlzZWNvbmRzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWlsbGlzZWNvbmRzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gc2Vjb25kcykgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gInNlY29uZHMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBtaW51dGVzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWludXRlcyI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09IGhvdXJzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAiaG91cnMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBkYXlzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAiZGF5cyI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gIklOVDY0X0MoIiArIExvbmcudG9TdHJpbmcodW5pdHMpICsgIikiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjYXJnc1sxXSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRVBPQ0hfT0ZGU0VUX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1syXSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzNdICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNF0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01JTl9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNV0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNl0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkVQT0NIX09GRlNFVF9QTFVTXzFfVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzddICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5FUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbOF0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s5XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUlOX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1sxMF0gPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGNhcmdzKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvU291cmNlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvU291cmNlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczZTk4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Tb3VyY2VTZXQuamF2YQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDExLzI5LzIwMDEgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKiAgIDA2LzI2LzIwMDIgIGFsaXUgICAgICAgIE1vdmVkIHRvIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5Vbmljb2RlU2V0Q2xvc3VyZTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIENsYXNzIHRoYXQgZ2VuZXJhdGVzIHNvdXJjZSBzZXQgaW5mb3JtYXRpb24gZm9yIGEgdHJhbnNsaXRlcmF0b3IuCisgKiAKKyAqIFRvIHJ1biwgdXNlOgorICogCisgKiAgIGphdmEgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuU291cmNlU2V0IExhdGluLUthdGFrYW5hIE5GRCBsb3dlcgorICogCisgKiBPdXRwdXQgaXMgcHJvZHVjZWQgaW4gdGhlIGNvbW1hbmQgY29uc29sZSwgYW5kIGEgZmlsZSB3aXRoIG1vcmUgZGV0YWlsIGlzIGFsc28gd3JpdHRlbi4KKyAqIAorICogVG8gc2VlIGlmIGl0IHdvcmtzLCB1c2U6CisgKiAKKyAqICAgamF2YSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdC5UcmFuc2xpdGVyYXRvclRlc3QgLXYgLW5vdGhyb3cgVGVzdEluY3JlbWVudGFsUHJvZ3Jlc3MKKyAqIAorICogYW5kCisgKiAgCisgKiAgIGphdmEgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQuRGVtbworICovCitwdWJsaWMgY2xhc3MgU291cmNlU2V0IHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAvLyBDb21wdXRlIGFuZCBkaXNwbGF5IHRoZSBzb3VyY2Ugc2V0cyBmb3IgYWxsIHN5c3RlbQorICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0b3JzLgorICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7IGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgIFN0cmluZyBJRCA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBzaG93U291cmNlU2V0KElELCBOb3JtYWxpemVyLk5PTkUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFVzYWdlOiBJRCBbTkZLRCB8IE5GRF0gW2xvd2VyXQorICAgICAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0gPSBOb3JtYWxpemVyLk5PTkU7CisgICAgICAgICAgICBib29sZWFuIGxvd2VyRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZEOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHNJZ25vcmVDYXNlKCJORktEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZLRDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAzKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMl0uZXF1YWxzSWdub3JlQ2FzZSgibG93ZXIiKSkgeworICAgICAgICAgICAgICAgICAgICBsb3dlckZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDMpIHsKKyAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2hvd1NvdXJjZVNldChhcmdzWzBdLCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNob3dTb3VyY2VTZXQoU3RyaW5nIElELCBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgiVW5pY29kZVNldENsb3N1cmUudHh0Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGYuZ2V0Q2Fub25pY2FsRmlsZSgpLnRvU3RyaW5nKCk7CisgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGLTgiKSk7CisgICAgICAgIG91dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIHNob3dTb3VyY2VTZXRBdXgodCwgbSwgbG93ZXJGaXJzdCwgdHJ1ZSk7CisgICAgICAgIHNob3dTb3VyY2VTZXRBdXgodC5nZXRJbnZlcnNlKCksIG0sIGxvd2VyRmlyc3QsIGZhbHNlKTsKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBQcmludFdyaXRlciBvdXQ7CisgICAgCisgICAgc3RhdGljIHZvaWQgc2hvd1NvdXJjZVNldEF1eChUcmFuc2xpdGVyYXRvciB0LCBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0LCBib29sZWFuIGZvcndhcmQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU2V0ID0gdC5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKG0gIT0gTm9ybWFsaXplci5OT05FIHx8IGxvd2VyRmlyc3QpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXRDbG9zdXJlLmNsb3NlKHNvdXJjZVNldCwgbSwgbG93ZXJGaXJzdCk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0SUQoKSArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIG91dC5wcmludGxuKCIjIE1JTklNQUwgRklMVEVSIEdFTkVSQVRFRCBGT1I6ICIgKyB0LmdldElEKCkgKyAoZm9yd2FyZCA/ICIiIDogIiBSRVZFUlNFIikpOworICAgICAgICBvdXQucHJpbnRsbigiOjogIiAKKyAgICAgICAgICAgICsgKGZvcndhcmQgPyAiIiA6ICIoICIpIAorICAgICAgICAgICAgKyBzb3VyY2VTZXQudG9QYXR0ZXJuKHRydWUpIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiApIikKKyAgICAgICAgICAgICsgIiA7Iik7CisgICAgICAgIG91dC5wcmludGxuKCIjIFVuaWNvZGU6ICIgKyBzb3VyY2VTZXQudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1RyYW5zLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDRkNDNkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhCkBAIC0wLDAgKzEsMTQwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgY29tbWFuZC1saW5lIGludGVyZmFjZSB0byB0aGUgSUNVNEogdHJhbnNsaXRlcmF0b3JzLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgVHJhbnMgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGJvb2xlYW4gaXNIVE1MID0gZmFsc2U7CisgICAgICAgIGludCBwb3MgPSAwOworCisgICAgICAgIFN0cmluZyB0cmFuc05hbWUgPSBudWxsOyAvLyBmaXJzdCB1bnRhZ2dlZCBzdHJpbmcgaXMgdGhpcworICAgICAgICBTdHJpbmcgaW5UZXh0ID0gbnVsbDsgLy8gYWxsIG90aGVyIHVudGFnZ2VkIHN0cmluZ3MgYXJlIHRoaXMKKyAgICAgICAgU3RyaW5nIGluTmFtZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBvdXROYW1lID0gbnVsbDsKKworICAgICAgICB3aGlsZSAocG9zIDwgYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChhcmdzW3Bvc10uZXF1YWxzKCItaHRtbCIpKSB7CisgICAgICAgICAgICAgICAgaXNIVE1MID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1twb3NdLmVxdWFscygiLWkiKSkgeworICAgICAgICAgICAgICAgIGlmICgrK3BvcyA9PSBhcmdzLmxlbmd0aCkgdXNhZ2UoKTsKKyAgICAgICAgICAgICAgICBpbk5hbWUgPSBhcmdzW3Bvc107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbcG9zXS5lcXVhbHMoIi1vIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKytwb3MgPT0gYXJncy5sZW5ndGgpIHVzYWdlKCk7CisgICAgICAgICAgICAgICAgb3V0TmFtZSA9IGFyZ3NbcG9zXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cmFuc05hbWUgPSBhcmdzW3Bvc107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpblRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpblRleHQgPSBhcmdzW3Bvc107CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW5UZXh0ID0gaW5UZXh0ICsgIiAiICsgYXJnc1twb3NdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrcG9zOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluVGV4dCAhPSBudWxsICYmIGluTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFuc05hbWUpOworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIGlmIChpbk5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKG5ldyBGaWxlSW5wdXRTdHJlYW0oaW5OYW1lKSwgIlVURjgiKSk7CisgICAgICAgIH0KKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbnVsbDsKKyAgICAgICAgaWYgKG91dE5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0TmFtZSksICJVVEY4IikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworICAgICAgICB9CisgICAgICAgIHRyYW5zKHRyYW5zLCBpblRleHQsIGluLCBvdXQsIGlzSFRNTCk7CisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHRyYW5zKFRyYW5zbGl0ZXJhdG9yIHRyYW5zLCBTdHJpbmcgaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluLCBQcmludFdyaXRlciBvdXQsIGJvb2xlYW4gaXNIVE1MKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBib29sZWFuIGluVGFnID0gZmFsc2U7IC8vIElmIHRydWUsIHdlIGFyZSB3aXRoaW4gYSA8dGFnPgorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICBpZiAoaW5UZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5UZXh0OworICAgICAgICAgICAgICAgIGluVGV4dCA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0hUTUwpIHsKKyAgICAgICAgICAgICAgICAvLyBQYXNzIHRhZ3MgYmV0d2VlbiA8IGFuZCA+IHVuY2hhbmdlZAorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgaW50IHJpZ2h0ID0gLTE7CisgICAgICAgICAgICAgICAgaWYgKGluVGFnKSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5pbmRleE9mKCc+Jyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5sZW5ndGgoKS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGluZS5zdWJzdHJpbmcoMCwgcmlnaHQrMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiKlM6IiArIGxpbmUuc3Vic3RyaW5nKDAsIHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5UYWcgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGVmdCA9IGxpbmUuaW5kZXhPZignPCcsIHJpZ2h0KzEpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVmdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodCA8IGxpbmUubGVuZ3RoKCktMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHJhbnMudHJhbnNsaXRlcmF0ZShsaW5lLnN1YnN0cmluZyhyaWdodCsxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUOiIgKyBsaW5lLnN1YnN0cmluZyhyaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdHJhbnNsaXRlcmF0ZWQgc2VnbWVudCByaWdodCsxLi5sZWZ0LTEKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh0cmFucy50cmFuc2xpdGVyYXRlKGxpbmUuc3Vic3RyaW5nKHJpZ2h0KzEsIGxlZnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUOiIgKyBsaW5lLnN1YnN0cmluZyhyaWdodCsxLCBsZWZ0KSk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5pbmRleE9mKCc+JywgbGVmdCsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5UYWcgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChsaW5lLnN1YnN0cmluZyhsZWZ0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiUzoiICsgbGluZS5zdWJzdHJpbmcobGVmdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChsaW5lLnN1YnN0cmluZyhsZWZ0LCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTOiIgKyBsaW5lLnN1YnN0cmluZyhsZWZ0LCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmUgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHRyYW5zLnRyYW5zbGl0ZXJhdGUobGluZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbihsaW5lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBFbWl0IHVzYWdlIGFuZCBkaWUuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IGphdmEgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuVHJhbnMgWy1odG1sXSA8dHJhbnM+ICggPGlucHV0PiB8IC1pIDxpbmZpbGU+KSBbIC1vIDxvdXRmaWxlPiBdIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPHRyYW5zPiAgIE5hbWUgb2YgdHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8aW5wdXQ+ICAgVGV4dCB0byB0cmFuc2xpdGVyYXRlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPGluZmlsZT4gIE5hbWUgb2YgaW5wdXQgZmlsZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjxvdXRmaWxlPiBOYW1lIG9mIG91dHB1dCBmaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLWh0bWwgICAgIE9ubHkgdHJhbnNsaXRlcmF0ZSB0ZXh0IG91dHNpZGUgb2YgPHRhZ3M+Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5wdXQgbWF5IGNvbWUgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIGEgZmlsZS5cbiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk91cHV0IG1heSBnbyB0byBzdGRvdXQgb3IgYSBmaWxlLlxuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc2VPdmVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3NlT3Zlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OWI0YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3NlT3Zlci5qYXZhCkBAIC0wLDAgKzEsNDY2IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogRmVicnVhcnkgMTEgMjAwMworKiBTaW5jZTogSUNVIDIuNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJvZHVjZXMgdGhlIGRhdGEgdGFibGVzIHVzZWQgYnkgdGhlIGNsb3NlT3ZlcigpIG1ldGhvZAorICogb2YgVW5pY29kZVNldC4KKyAqCisgKiBXaGVuZXZlciB0aGUgVW5pY29kZSBkYXRhYmFzZSBjaGFuZ2VzLCB0aGlzIHRvb2wgbXVzdCBiZSByZS1ydW4KKyAqIChBRlRFUiB0aGUgZGF0YSBmaWxlKHMpIHVuZGVybHlpbmcgSUNVNEogYXJlIHVkcGF0ZWQpLgorICoKKyAqIFRoZSBvdXRwdXQgb2YgdGhpcyB0b29sIHNob3VsZCB0aGVuIGJlIHBhc3RlZCBpbnRvIHRoZSBhcHByb3ByaWF0ZQorICogZmlsZXM6CisgKgorICogSUNVNEo6IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldC5qYXZhCisgKiBJQ1U0QzogL2ljdS9zb3VyY2UvY29tbW9uL3VuaXNldC5jcHAKKyAqLworY2xhc3MgVW5pY29kZVNldENsb3NlT3ZlciB7CisKKyAgICAvLyBPdXIgb3V0cHV0IGZpbGVzCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBKQVZBX09VVCAgICAgICAgICA9ICJ0b19Vbmljb2RlU2V0LmphdmEiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgSkFWQV9DSEFSUFJPUF9PVVQgPSAidG9fVUNoYXJhY3RlclByb3BlcnR5LmphdmEiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ19TRVRfT1VUICAgICAgICAgPSAidG9fdW5pc2V0LmNwcCI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDX1VDSEFSX09VVCAgICAgICA9ICJ0b191Y2hhci5jIjsKKworICAgIC8vIFNvdXJjZSBjb2RlICJkbyBub3QgZWRpdCIgd2FybmluZworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0FSTklORyA9ICJNQUNISU5FLUdFTkVSQVRFRDsgVW5pY29kZSB2ZXJzaW9uICIgKworICAgICAgICBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCkgKworICAgICAgICAiOyBETyBOT1QgRURJVDsgU2VlICIgKworICAgICAgICBVbmljb2RlU2V0Q2xvc2VPdmVyLmNsYXNzLmdldE5hbWUoKTsKKworICAgIC8vIENhc2UgZm9sZGluZyBvcHRpb25zIGZsYWcuICBUaGlzIG11c3QgY29ycmVzcG9uZCB0byB0aGUgb3B0aW9ucworICAgIC8vIHVzZWQgaW4gVW5pY29kZVNldC5jbG9zZU92ZXIoKSBpbiBKYXZhIGFuZCBDKysuCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9DQVNFX01BUCA9IHRydWU7IC8vIGZhbHNlIGZvciBUdXJraXNoCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgdG9vbCB3aWxsIGdlbmVyYXRlIHNldmVyYWwgb3V0cHV0IGZpbGVzLiAgRWFjaCBpcyBuYW1lZCBhY2NvcmRpbmciKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0aGUgdGFyZ2V0IGZpbGUuICBGb3IgZXhhbXBsZSwgdGhlIGNvbnRlbnRzIG9mIHRvX1VuaWNvZGVTZXQuamF2YSBzaG91bGQiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiZSBwYXN0ZWQgaW50byBVbmljb2RlU2V0LmphdmEuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworCisgICAgICAgIGdlbmVyYXRlQ2FzZURhdGEoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBtYXAgb2YgU3RyaW5nID0+IFNldC4gIFRoZSBTdHJpbmcgaW4gdGhpcyBjYXNlIGlzIGEKKyAgICAgKiBmb2xkZWQgc3RyaW5nIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXIuZm9sZENhc2UoZm9sZGVkLiBERUZBVUxUX0NBU0VfTUFQKS5lcXVhbHMoZm9sZGVkKS4KKyAgICAgKiBUaGUgU2V0IGNvbnRhaW5zIGFsbCBzaW5nbGUtY2hhcmFjdGVyIHN0cmluZ3MgeCBmb3Igd2hpY2gKKyAgICAgKiBVQ2hhcmFjdGVyLmZvbGRDYXNlKHgsIERFRkFVTFRfQ0FTRV9NQVApLmVxdWFscyhmb2xkZWQpLCBhcworICAgICAqIHdlbGwgYXMgZm9sZGVkIGl0c2VsZi4KKyAgICAgKi8KKyAgICBzdGF0aWMgTWFwIGNyZWF0ZUNhc2VGb2xkRXF1aXZhbGVuY3lDbGFzc2VzKCkgeworICAgICAgICBNYXAgZXF1aXZDbGFzc2VzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihpKTsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkZWQgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKGNwLCBERUZBVUxUX0NBU0VfTUFQKTsKKyAgICAgICAgICAgIGlmIChmb2xkZWQuZXF1YWxzKGNwKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGhhdmUgZGlmZmVyZW50IGNhc2UgZm9sZGluZy4gIEFkZAorICAgICAgICAgICAgLy8gdGhlIGNvZGUgcG9pbnQgYW5kIGl0cyBmb2xkZWQgZXF1aXZhbGVudCBpbnRvIHRoZQorICAgICAgICAgICAgLy8gZXF1aXZhbGVuY3kgY2xhc3MuCisgICAgICAgICAgICBUcmVlU2V0IHMgPSAoVHJlZVNldCkgZXF1aXZDbGFzc2VzLmdldChmb2xkZWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgIHMuYWRkKGZvbGRlZCk7IC8vIGFkZCB0aGUgY2FzZSBmb2xkIHJlc3VsdCBpdHNlbGYKKyAgICAgICAgICAgICAgICBlcXVpdkNsYXNzZXMucHV0KGZvbGRlZCwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVxdWl2Q2xhc3NlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbmFseXplIHRoZSBjYXNlIGZvbGQgZXF1aXZhbGVuY3kgY2xhc3Nlcy4gIEJyZWFrIHRoZW0gaW50byB0d28KKyAgICAgKiBncm91cHM6ICdwYWlycycsIGFuZCAnbm9ucGFpcnMnLiAgQ3JlYXRlIGEgdGFsbHkgb2YgdGhlIGxlbmd0aAorICAgICAqIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBub25wYWlycy4KKyAgICAgKgorICAgICAqIExlbmd0aCBjb25maWd1cmF0aW9ucyBvZiBlcXVpdmFsZW5jeSBjbGFzc2VzLCBhcyBvZiBVbmljb2RlCisgICAgICogMy4yLiAgTW9zdCBvZiB0aGUgY2xhc3NlcyAoODMlKSBoYXZlIHR3byBzaW5nbGUgY29kZXBvaW50cy4KKyAgICAgKiBIZXJlICIxMTI6MjgiIG1lYW5zIHRoZXJlIGFyZSAyOCBlcXVpdmFsZW5jeSBjbGFzc2VzIHdpdGggMgorICAgICAqIHNpbmdsZSBjb2RlcG9pbnRzIGFuZCBvbmUgc3RyaW5nIG9mIGxlbmd0aCAyLgorICAgICAqCisgICAgICogMTE6NjU2CisgICAgICogMTExOjE2CisgICAgICogMTExMTozCisgICAgICogMTEyOjI4CisgICAgICogMTEzOjIKKyAgICAgKiAxMjozMQorICAgICAqIDEzOjEyCisgICAgICogMjI6MzgKKyAgICAgKgorICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGRvZXMgbm90IGNvdW50IHRoZSBmcmVxdWVuY2llcyBvZiB0aGUKKyAgICAgKiBkaWZmZXJlbnQgbGVuZ3RoIGNvbmZpZ3VyYXRpb25zIChhcyBzaG93biBhYm92ZSBhZnRlciAnOicpOyBpdAorICAgICAqIG1lcmVseSByZWNvcmRzIHdoaWNoIGNvbmZpZ3VyYXRpb25zIG9jY3VyLgorICAgICAqCisgICAgICogQHBhcmFtIHBhaXJzIEFjY3VtdWxhdGUgZXF1aXZhbGVuY3kgY2xhc3NlcyB0aGF0IGNvbnNpc3Qgb2YKKyAgICAgKiBleGFjdGx5IHR3byBjb2RlcG9pbnRzIGhlcmUuICBUaGlzIGlzIDgzKyUgb2YgdGhlIGNsYXNzZXMuCisgICAgICogRS5nLiwgeyJhIiwgIkEifS4KKyAgICAgKiBAcGFyYW0gbm9ucGFpcnMgQWNjdW11bGF0ZSBvdGhlciBlcXVpdmFsZW5jeSBjbGFzc2VzIGhlcmUsIGFzCisgICAgICogbGlzdHMgb2Ygc3RyaW5ncy4gIEUsZywgeyJzdCIsICJcdUZCMDUiLCAiXHVGQjA2In0uCisgICAgICogQHBhcmFtIGxlbmd0aHMgQWNjdW11bGF0ZSBhIGxpc3Qgb2YgdW5pcXVlIGxlbmd0aCBzdHJ1Y3R1cmVzLAorICAgICAqIG5vdCBpbmNsdWRpbmcgcGFpcnMuICBFYWNoIGxlbmd0aCBzdHJ1Y3R1cmUgaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAqIHN0cmluZyBvZiBkaWdpdHMuICBUaGUgZGlnaXQgc3RyaW5nICIxMiIgbWVhbnMgdGhlIGVxdWl2YWxlbmN5CisgICAgICogY2xhc3MgY29udGFpbnMgYSBzaW5nbGUgY29kZSBwb2ludCBhbmQgYSBzdHJpbmcgb2YgbGVuZ3RoIDIuCisgICAgICogVHlwaWNhbCBjb250ZW50cyBvZiAnbGVuZ3Rocyc6IHsgIjExMSIsICIxMTExIiwgIjExMiIsCisgICAgICogIjExMyIsICIxMiIsICIxMyIsICIyMiIgfS4gIE5vdGUgdGhlIGFic2VuY2Ugb2YgIjExIi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBhbmFseXplQ2FzZURhdGEoTWFwIGVxdWl2Q2xhc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHBhaXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3Igbm9ucGFpcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciBsZW5ndGhzKSB7CisgICAgICAgIEl0ZXJhdG9yIGkgPSBuZXcgVHJlZVNldChlcXVpdkNsYXNzZXMua2V5U2V0KCkpLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGkubmV4dCgpOworICAgICAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKChTZXQpIGVxdWl2Q2xhc3Nlcy5nZXQoa2V5KSk7CisgICAgICAgICAgICBpZiAodi5zaXplKCkgPT0gMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBhID0gKFN0cmluZykgdi5lbGVtZW50QXQoMCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGIgPSAoU3RyaW5nKSB2LmVsZW1lbnRBdCgxKTsKKyAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgoKSA9PSAxICYmIGIubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBwYWlycy5hcHBlbmQoYSkuYXBwZW5kKGIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHBhaXJzIGFyZSBpbmNsdWRlZCBpbiAnbGVuZ3RocycKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmdbXSBhID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgICAgICB2LnRvQXJyYXkoYSk7CisgICAgICAgICAgICBub25wYWlycy5hZGQoYSk7CisgICAgICAgICAgICAvL2ludCBzaW5nbGVDb3VudCA9IDA7CisgICAgICAgICAgICAvL2ludCBzdHJpbmdDb3VudCA9IDA7CisgICAgICAgICAgICAvLyBNYWtlIGEgc3RyaW5nIG9mIHRoZSBsZW5ndGhzLCBlLmcuLCAiMTExIiBtZWFucyAzCisgICAgICAgICAgICAvLyBzaW5nbGUgY29kZSBwb2ludHM7ICIxMyIgbWVhbnMgYSBzaW5nbGUgY29kZSBwb2ludAorICAgICAgICAgICAgLy8gYW5kIGEgc3RyaW5nIG9mIGxlbmd0aCAzLgorICAgICAgICAgICAgdi5jbGVhcigpOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGEubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICB2LmFkZChuZXcgSW50ZWdlcihhW2pdLmxlbmd0aCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHYpOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajx2LnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChTdHJpbmcudmFsdWVPZih2LmVsZW1lbnRBdChqKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFsZW5ndGhzLmNvbnRhaW5zKGJ1Zi50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGxlbmd0aHMuYWRkKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGdlbmVyYXRlQ2FzZURhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIE1hcCBlcXVpdkNsYXNzZXMgPSBjcmVhdGVDYXNlRm9sZEVxdWl2YWxlbmN5Q2xhc3NlcygpOworCisgICAgICAgIC8vIEFjY3VtdWxhdGUgZXF1aXZhbGVuY3kgY2xhc3NlcyB0aGF0IGNvbnNpc3Qgb2YgZXhhY3RseQorICAgICAgICAvLyB0d28gY29kZXBvaW50cyBoZXJlLiAgVGhpcyBpcyA4MyslIG9mIHRoZSBjbGFzc2VzLgorICAgICAgICAvLyBFLmcuLCB7ImEiLCAiQSJ9LgorICAgICAgICBTdHJpbmdCdWZmZXIgcGFpcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gQWNjdW11bGF0ZSBvdGhlciBlcXVpdmFsZW5jeSBjbGFzc2VzIGhlcmUsIGFzIGxpc3RzCisgICAgICAgIC8vIG9mIHN0cmluZ3MuICBFLGcsIHsic3QiLCAiXHVGQjA1IiwgIlx1RkIwNiJ9LgorICAgICAgICBWZWN0b3Igbm9ucGFpcnMgPSBuZXcgVmVjdG9yKCk7IC8vIGNvbnRhaW5zIFN0cmluZ1tdCisgICAgICAgIFZlY3RvciBsZW5ndGhzID0gbmV3IFZlY3RvcigpOyAvLyAiMTExIiwgIjEyIiwgIjIyIiwgZXRjLgorCisgICAgICAgIGFuYWx5emVDYXNlRGF0YShlcXVpdkNsYXNzZXMsIHBhaXJzLCBub25wYWlycywgbGVuZ3Rocyk7CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIEVtaXQgSmF2YSBzb3VyY2UKKyAgICAgICAgUHJpbnRTdHJlYW0gb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKEpBVkFfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgSkFWQV9PVVQpOworCisgICAgICAgIG91dC5wcmludGxuKCIgICAgLy8gIiArIFdBUk5JTkcpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDQVNFX1BBSVJTID0iKTsKKyAgICAgICAgb3V0LnByaW50bG4oVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2UocGFpcnMudG9TdHJpbmcoKSkgKyAiOyIpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIC8vICIgKyBXQVJOSU5HKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIENBU0VfTk9OUEFJUlMgPSB7Iik7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxub25wYWlycy5zaXplKCk7ICsraikgeworICAgICAgICAgICAgU3RyaW5nW10gYSA9IChTdHJpbmdbXSkgbm9ucGFpcnMuZWxlbWVudEF0KGopOworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgICAgIHsiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxhLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgaWYgKGsgIT0gMCkgb3V0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgIG91dC5wcmludChVdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UoYVtrXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIn0sIik7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIiAgICB9OyIpOworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBFbWl0IEMrKyBzb3VyY2UKKworICAgICAgICAvLyBJbiBDKyssIHRoZSBwYWlycyBhcmUgYWdhaW4gZW1pdHRlZCBpbiBhbiBhcnJheSwgYnV0IHRoaXMKKyAgICAgICAgLy8gYXJyYXkgaXMgdGhlIGZpbmFsIHJlcHJlc2VudGF0aW9uIGZvcm0gLS0gaXQgd2lsbCBub3QgYmUKKyAgICAgICAgLy8gcmVwcm9jZXNzZWQgaW50byBhIGhhc2guICBJdCB3aWxsIGJlIGJpbmFyeSBzZWFyY2hlZCBieQorICAgICAgICAvLyBsb29raW5nIGF0IHRoZSBldmVuIGVsZW1lbnRzIFswXSwgWzJdLCBbNF0sIGV0Yy4sIGFuZAorICAgICAgICAvLyBpZ25vcmluZyB0aGUgb2RkIGVsZW1lbnRzLiAgVGhlIGV2ZW4gZWxlbWVudHMgbXVzdCBjb250YWluCisgICAgICAgIC8vIHRoZSBmb2xkZWQgbWVtYmVycyBvZiB0aGUgcGFpcnMuICBUaGF0IGlzLCBpbiB0aGUgcGFpcgorICAgICAgICAvLyB7J0EnLCAnYSd9LCB0aGUgZXZlbiBlbGVtZW50IG11c3QgYmUgJ2EnLCBub3QgJ0EnLiAgVGhlbiBhCisgICAgICAgIC8vIGNvZGUgcG9pbnQgdG8gYmUgbG9jYXRlZCBpcyBmaXJzdCBmb2xkZWQgKCdZJyA9PiAneScpIHRoZW4KKyAgICAgICAgLy8gaXQgYmluYXJ5IHNlYXJjaGVkIGFnYWluc3QgWzBdPSdBJywgWzJdPSdCJywgZXRjLiAgV2hlbiBhCisgICAgICAgIC8vIG1hdGNoIGlzIGZvdW5kIGF0IGssIHRoZSBwYWlyIGlzIFtrXSwgW2srMV0uCisKKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKENfU0VUX09VVCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIENfU0VUX09VVCk7CisKKyAgICAgICAgLy8gU29ydCB0aGUgcGFpcnMuICBUaGV5IG11c3QgYmUgb3JkZXJlZCBieSB0aGUgZm9sZGVkIGVsZW1lbnQuCisgICAgICAgIC8vIFN0b3JlIHRoZXNlIGFzIHR3by1jaGFyYWN0ZXIgc3RyaW5ncywgd2l0aCBjaGFyQXQoMCkgYmVpbmcKKyAgICAgICAgLy8gdGhlIGZvbGRlZCBtZW1iZXIgb2YgdGhlIHBhaXIuCisgICAgICAgIFRyZWVTZXQgc29ydFBhaXJzID0gbmV3IFRyZWVTZXQobmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoaW50KSAoKFN0cmluZykgYSkuY2hhckF0KDApKSAtCisgICAgICAgICAgICAgICAgICAgICAgICgoaW50KSAoKFN0cmluZykgYikuY2hhckF0KDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhaXJzLmxlbmd0aCgpOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IFN0cmluZy52YWx1ZU9mKHBhaXJzLmNoYXJBdChpKSk7CisgICAgICAgICAgICBTdHJpbmcgYiA9IFN0cmluZy52YWx1ZU9mKHBhaXJzLmNoYXJBdChpKzEpKTsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkZWQgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKGEsIERFRkFVTFRfQ0FTRV9NQVApOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGZvbGRlZCkpIHsKKyAgICAgICAgICAgICAgICBzb3J0UGFpcnMuYWRkKGEgKyBiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc29ydFBhaXJzLmFkZChiICsgYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBFbWl0IHRoZSBwYWlycworICAgICAgICBvdXQucHJpbnRsbigiLy8gIiArIFdBUk5JTkcpOworICAgICAgICBvdXQucHJpbnRsbigic3RhdGljIGNvbnN0IFVDaGFyIENBU0VfUEFJUlNbXSA9IHsiKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzb3J0UGFpcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICB3aGlsZSAobisrIDwgNSAmJiBpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAvL291dC5wcmludCgoaW50KSBzLmNoYXJBdCgwKSArICIsIiArCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIChpbnQpIHMuY2hhckF0KDEpICsgIiwiKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjB4IiArIFV0aWxpdHkuaGV4KHMuY2hhckF0KDApKSArICIsMHgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KHMuY2hhckF0KDEpKSArICIsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworICAgICAgICBvdXQucHJpbnRsbigpOworCisgICAgICAgIC8vIFRoZSBub24tcGFpcnMgYXJlIGVuY29kZWQgaW4gdGhlIGZvbGxvd2luZyB3YXkuICBBbGwgdGhlCisgICAgICAgIC8vIHNpbmdsZSBjb2RlcG9pbnRzIGluIGVhY2ggY2xhc3MgYXJlIGdyb3VwZWQgdG9nZXRoZXIKKyAgICAgICAgLy8gZm9sbG93ZWQgYnkgYSB6ZXJvLiAgVGhlbiBlYWNoIG11bHRpLWNoYXJhY3RlciBzdHJpbmcgaXMKKyAgICAgICAgLy8gYWRkZWQsIGZvbGxvd2VkIGJ5IGEgemVyby4gIEZpbmFsbHksIGFub3RoZXIgemVybyBpcyBhZGRlZC4KKyAgICAgICAgLy8gU29tZSBleGFtcGxlczoKKyAgICAgICAgLy8gIHsiaVEiLCAiUiJ9ICAgICAgICAgICA9PiAgWyAnUicsIDAsICdpJywgJ1EnLCAwLCAwIF0KKyAgICAgICAgLy8gIHsiUyIsICJEIiwgIkYiLCAiRyJ9ICA9PiAgWyAnUycsICdEJywgJ0YnLCAnRycsIDAsIDAgXQorICAgICAgICAvLyAgeyJqVyIsICJqWSJ9ICAgICAgICAgID0+ICBbIDAsICdqJywgJ1cnLCAwLCAnaicsICdZJywgMCwgMCBdCisgICAgICAgIC8vIFRoZSBlbmQtcmVzdWx0IGlzIGEgc2hvcnQsIGZsYXQgYXJyYXkgb2YgVUNoYXIgdmFsdWVzIHRoYXQKKyAgICAgICAgLy8gY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBhIFVDaGFyW10gYXJyYXkgaW4gQy4KKyAgICAgICAgCisgICAgICAgIGludCBtYXhMZW4gPSAwOyAvLyBNYXhpbXVtIGVuY29kZWQgbGVuZ3RoIG9mIGFueSBjbGFzcywgaW5jbHVkaW5nIHplcm9zCisgICAgICAgIG91dC5wcmludGxuKCIvLyAiICsgV0FSTklORyk7CisgICAgICAgIG91dC5wcmludGxuKCJzdGF0aWMgY29uc3QgQ2FzZUVxdWl2Q2xhc3MgQ0FTRV9OT05QQUlSU1tdID0geyIpOworICAgICAgICBmb3IgKGludCBqPTA7IGo8bm9ucGFpcnMuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAgICAgU3RyaW5nW10gYSA9IChTdHJpbmdbXSkgbm9ucGFpcnMuZWxlbWVudEF0KGopOworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgeyIpOworICAgICAgICAgICAgLy8gRW1pdCBzaW5nbGUgY29kZSBwb2ludHMKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxhLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFba10ubGVuZ3RoKCkgIT0gMSkgY29udGludWU7CisgICAgICAgICAgICAgICAgLy9vdXQucHJpbnQoKGludCkgYVtrXS5jaGFyQXQoMCkgKyAiLCIpOworICAgICAgICAgICAgICAgIG91dC5wcmludCgiMHgiK1V0aWxpdHkuaGV4KGFba10uY2hhckF0KDApKSArICIsIik7CisgICAgICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnQoIjAsICAiKTsgLy8gRW5kIG9mIHNpbmdsZSBjb2RlIHBvaW50cworICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICAvLyBFbWl0IG11bHRpLWNoYXJhY3RlciBzdHJpbmdzCisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8YS5sZW5ndGg7ICsraykgeworICAgICAgICAgICAgICAgIGlmIChhW2tdLmxlbmd0aCgpID09IDEpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGZvciAoaW50IG09MDsgbTxhW2tdLmxlbmd0aCgpOyArK20pIHsKKyAgICAgICAgICAgICAgICAgICAgLy9vdXQucHJpbnQoKGludCkgYVtrXS5jaGFyQXQobSkgKyAiLCIpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjB4IitVdGlsaXR5LmhleChhW2tdLmNoYXJBdChtKSkgKyAiLCIpOworICAgICAgICAgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCIwLCAiKTsgLy8gRW5kIG9mIHN0cmluZworICAgICAgICAgICAgICAgICsrbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjB9LCIpOyAvLyBFbmQgb2YgZXF1aXZhbGVuY3kgY2xhc3MKKyAgICAgICAgICAgICsrbGVuOworICAgICAgICAgICAgaWYgKGxlbiA+IG1heExlbikgbWF4TGVuID0gbGVuOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgQ2FzZUVxdWl2Q2xhc3MgZGF0YSBjYW4gZml0LgorICAgICAgICBpZiAobWF4TGVuID4gOCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIk11c3QgYWRqdXN0IENhc2VFcXVpdkNsYXNzIHRvIGFjY29tb2RhdGUgIiArIG1heExlbiArICIgVUNoYXJzIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBtYXAgaW50byB0aGlzIGFycmF5IHVzaW5nIGEKKyAgICAgICAgLy8gQ29tcGFjdEJ5dGVBcnJheS4gIFdlIGNvdWxkIGRvIHRoaXMgY2hlY2sgYWJvdmUsIGJ1dCB3ZQorICAgICAgICAvLyBrZWVwIGl0IGhlcmUsIGFkamFjZW50IHRvIHRoZSBtYXhMZW4gY2hlY2suICBXZSB1c2Ugb25lCisgICAgICAgIC8vIHZhbHVlICgtMSA9PSAyNTUpIHRvIGluZGljYXRlICJubyB2YWx1ZS4iCisgICAgICAgIGlmIChub25wYWlycy5zaXplKCkgPiAyNTUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJUb28gbWFueSBDQVNFX05PTlBBSVJTIGFycmF5IGVsZW1lbnRzIHRvIGJlIGluZGV4ZWQgYnkgYSBDb21wYWN0Qnl0ZUFycmF5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gQ2FzZS11bmlxdWUgc2V0OiAgQWxsIGNoYXJhY3RlcnMgYyBmb3Igd2hpY2ggY2xvc2VPdmVyKGMpPT1jLgorCisgICAgICAgIC8vIFVQREFURTogSW5zdGVhZCBvZiB1c2luZyB0aGlzLCB3ZSdyZSB1c2luZyB0aGUgcmVsYXRlZAorICAgICAgICAvLyBub3Rpb24gb2YgQ2FzZV9TZW5zaXRpdmUuICBTZWUgYmVsb3cuICBOb3RlIHRoYXQKKyAgICAgICAgLy8gQ2FzZV9TZW5zaXRpdmUgIT0gXkNhc2VfVW5pcXVlLgorCisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgVW5pY29kZVNldCBjYXNlVW5pcXVlID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgICAgIGlmIChlcXVpdkNsYXNzZXMuZ2V0KFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIERFRkFVTFRfQ0FTRV9NQVApKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2VVbmlxdWUuYWRkKGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG91dC5wcmludGxuKCJjYXNlVW5pcXVlID0gIiArIGNhc2VVbmlxdWUudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIFVuaWNvZGVTZXQgY2FzZVNlbnNpdGl2ZSA9IGdldENhc2VTZW5zaXRpdmUoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImNhc2VTZW5zaXRpdmUgPSAiICsgY2FzZVNlbnNpdGl2ZS50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIC8vIE5vdyBmb3IgQywgZW1pdCBhbiBhcnJheSBvZiByYW5nZXMKKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKENfVUNIQVJfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgQ19VQ0hBUl9PVVQpOworCisgICAgICAgIG91dC5wcmludGxuKCIvKiAiICsgV0FSTklORyArICIgKi8iKTsKKyAgICAgICAgZW1pdFVDaGFyUmFuZ2VzQXJyYXkob3V0LCBjYXNlU2Vuc2l0aXZlLCAiQ0FTRV9TRU5TSVRJVkVfUkFOR0VTIik7CisKKyAgICAgICAgLy8gRm9yIEphdmEsIGVtaXQgYSBzdHJpbmcgd2l0aCB0aGUgcmFuZ2VzIChlYWNoIHBhaXIgb2YgY2hhcnMKKyAgICAgICAgLy8gaW4gdGhlIHN0cmluZyBpcyBhIHJhbmdlKS4KKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKEpBVkFfQ0hBUlBST1BfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgSkFWQV9DSEFSUFJPUF9PVVQpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIC8vICIgKyBXQVJOSU5HKTsKKyAgICAgICAgZW1pdFJhbmdlc1N0cmluZyhvdXQsIGNhc2VTZW5zaXRpdmUsICJDQVNFX1NFTlNJVElWRV9SQU5HRVMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgdGhlIHNldCBvZiBjYXNlLXNlbnNpdGl2ZSBjaGFyYWN0ZXJzLiAgVGhlc2UgYXJlIGNoYXJhY3RlcnMKKyAgICAgKiB0aGF0IHBhcnRpY2lwYXRlIGluIGFueSBjYXNlIG1hcHBpbmcgb3BlcmF0aW9uIGFzIGEgc291cmNlIG9yCisgICAgICogYXMgYSBtZW1iZXIgb2YgYSB0YXJnZXQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU2V0IGdldENhc2VTZW5zaXRpdmUoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgY2FzZVNlbnNpdGl2ZSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuVVM7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UobG9jKTsKKyAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPD0gMHgxMEZGRkY7ICsrYykgeworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajw0OyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiBzID0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2MsIGNwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiBzID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2MsIGNwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAyOiBzID0gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShsb2MsIGNwLCBiaSk7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzogcyA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIERFRkFVTFRfQ0FTRV9NQVApOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNjOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8cy5sZW5ndGgoKTsgays9VVRGMTYuZ2V0Q2hhckNvdW50KGNjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2MgPSBVVEYxNi5jaGFyQXQocywgayk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChjYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPGNwLmxlbmd0aCgpOyBrKz1VVEYxNi5nZXRDaGFyQ291bnQoY2MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYyA9IFVURjE2LmNoYXJBdChjcCwgayk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChjYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBBbHNvIGRvIHRoZSBzaW5nbGUtY29kZXBvaW50IEFQSS4gIFRoaXMgc2hvdWxkbid0IGFkZCBhbnkKKyAgICAgICAgICAgIC8vIGNvZGUgcG9pbnRzLCBidXQgd2UgZG8gaXQgZm9yIGNvbXBsZXRlbmVzcy4KKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajw0OyArK2opIHsKKyAgICAgICAgICAgICAgICBpbnQgZCA9IDA7CisgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiBkID0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiBkID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAyOiBkID0gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiBkID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjLCBERUZBVUxUX0NBU0VfTUFQKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkICE9IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlU2Vuc2l0aXZlLmNvbnRhaW5zKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhY2FzZVNlbnNpdGl2ZS5jb250YWlucyhkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXYXJuaW5nOiBjb2RlIHBvaW50ICIgKyBjICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBkICsgIiBjcmVhdGVkIE5FVyBNQVBQSU5HIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGZvciBDYXNlX1NlbnNpdGl2ZSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmUuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhc2VTZW5zaXRpdmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBVbmljb2RlU2V0LCBlbWl0IGl0IGFzIGFuIGFycmF5IG9mIFVDaGFyIHBhaXJzLiAgRWFjaAorICAgICAqIHBhaXIgd2lsbCBiZSB0aGUgc3RhcnQvZW5kIG9mIGEgcmFuZ2UuICBDb2RlIHBvaW50cyA+PSBVKzEwMDAwCisgICAgICogd2lsbCBiZSByZXByZXNlbnRlZCBhcyBzdXJyb2dhdGUgcGFpcnMuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgZW1pdFVDaGFyUmFuZ2VzQXJyYXkoUHJpbnRTdHJlYW0gb3V0LCBVbmljb2RlU2V0IHNldCwgU3RyaW5nIGlkKSB7CisgICAgICAgIC8vIFN0b3JlIHRoZSBwYWlycyBpbiBhIFN0cmluZ0J1ZmZlci4gIFRoaXMgaGFuZGxlcyBzdXJyb2dhdGUKKyAgICAgICAgLy8gcmVwcmVzZW50YXRpb24uCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIHNldC5nZXRSYW5nZVN0YXJ0KGkpKTsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIHNldC5nZXRSYW5nZUVuZChpKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRW1pdCB0aGUgcGFpcnMKKyAgICAgICAgb3V0LnByaW50bG4oInN0YXRpYyBjb25zdCBVQ2hhciAiICsgaWQgKyAiW10gPSB7Iik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxidWYubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBmb3IgKGludCBuPTA7IG4rKzwxMCAmJiBpPGJ1Zi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCIweCIgKyBVdGlsaXR5LmhleChidWYuY2hhckF0KGkpLCA0KSArICcsJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworICAgICAgICBvdXQucHJpbnRsbigiI2RlZmluZSAiICsgaWQgKyAiX0xFTkdUSCAoc2l6ZW9mKCIgKyBpZCArCisgICAgICAgICAgICAgICAgICAgICIpL3NpemVvZigiICsgaWQgKyAiWzBdKSkiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIFVuaWNvZGVTZXQsIGVtaXQgaXQgYXMgYSBKYXZhIHN0cmluZy4gIFRoZSBtb3N0IGVjb25vbWljYWwKKyAgICAgKiBmb3JtYXQgaXMgbm90IHRoZSBwYXR0ZXJuLCBidXQgaW5zdGVhZCBhIHBhaXJzIGxpc3QsIHdpdGggZWFjaAorICAgICAqIHJhbmdlIHBhaXIgcmVwcmVzZW50ZWQgYXMgdHdvIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgZW1pdFJhbmdlc1N0cmluZyhQcmludFN0cmVhbSBvdXQsIFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHBhaXJzIGluIGEgU3RyaW5nQnVmZmVyLiAgVGhpcyBoYW5kbGVzIHN1cnJvZ2F0ZQorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlU3RhcnQoaSkpOworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBFbWl0IHRoZSBwYWlycworICAgICAgICBvdXQucHJpbnRsbigiICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyAiICsgaWQgKyAiID0iKTsKKyAgICAgICAgb3V0LnByaW50bG4oVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2UoYnVmLnRvU3RyaW5nKCkpICsgIjsiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc3VyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlMTkyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YQpAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKy8vaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvLyBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5Vbmljb2RlU2V0Q2xvc3VyZQorLy8gY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3JUZXN0CisKK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0Q2xvc3VyZSB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGZvbyA9ICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNl0iKTsKKyAgICAgICAgCisgICAgICAgIHRlc3QoKTsKKyAgICAgICAgaWYoZm9vPT1udWxsKXt9CisgICAgICAgIAorICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGlzIHN1cGVyY2VkZWQgYnkgQWxhbidzIHRvb2wKKyAgICAgICAgCisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJVbmljb2RlU2V0Q2xvc3VyZS50eHQiKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZi5nZXRDYW5vbmljYWxGaWxlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlbmFtZSksICJVVEYtOCIpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIG91dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICAKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1LYXRha2FuYSIsIHRydWUsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgdHJ1ZSwKKyJbJywuYS16flx1MDBERlx1MDBFNlx1MDBGMFx1MDBGOFx1MDBGRVx1MDJCRVx1MDMwMC1cdTAzNEVcdTAzNjAtXHUwMzYyXHUwNDgzLVx1MDQ4Nlx1MDU5MS1cdTA1QTFcdTA1QTMtXHUwNUI5XHUwNUJCLVx1MDVCRFx1MDVCRlx1MDVDMS1cdTA1QzJcdTA1QzRcdTA2NEItXHUwNjU1XHUwNjcwXHUwNkQ2LVx1MDZEQ1x1MDZERi1cdTA2RTRcdTA2RTctXHUwNkU4XHUwNkVBLVx1MDZFRFx1MDcxMVx1MDczMC1cdTA3NEFcdTA3QTYtXHUwN0IwXHUwOTAxLVx1MDkwMlx1MDkzQ1x1MDk0MS1cdTA5NDhcdTA5NERcdTA5NTEtXHUwOTU0XHUwOTYyLVx1MDk2M1x1MDk4MVx1MDlCQ1x1MDlDMS1cdTA5QzRcdTA5Q0RcdTA5RTItXHUwOUUzXHUwQTAyXHUwQTNDXHUwQTQxLVx1MEE0Mlx1MEE0Ny1cdTBBNDhcdTBBNEItXHUwQTREXHUwQTcwLVx1MEE3MVx1MEE4MS1cdTBBODJcdTBBQkNcdTBBQzEtXHUwQUM1XHUwQUM3LVx1MEFDOFx1MEFDRFx1MEIwMVx1MEIzQ1x1MEIzRlx1MEI0MS1cdTBCNDNcdTBCNERcdTBCNTZcdTBCODJcdTBCQzBcdTBCQ0RcdTBDM0UtXHUwQzQwXHUwQzQ2LVx1MEM0OFx1MEM0QS1cdTBDNERcdTBDNTUtXHUwQzU2XHUwQ0JGXHUwQ0M2XHUwQ0NDLVx1MENDRFx1MEQ0MS1cdTBENDNcdTBENERcdTBEQ0FcdTBERDItXHUwREQ0XHUwREQ2XHUwRTMxXHUwRTM0LVx1MEUzQVx1MEU0Ny1cdTBFNEVcdTBFQjFcdTBFQjQtXHUwRUI5XHUwRUJCLVx1MEVCQ1x1MEVDOC1cdTBFQ0RcdTBGMTgtXHUwRjE5XHUwRjM1XHUwRjM3XHUwRjM5XHUwRjcxLVx1MEY3RVx1MEY4MC1cdTBGODRcdTBGODYtXHUwRjg3XHUwRjkwLVx1MEY5N1x1MEY5OS1cdTBGQkNcdTBGQzZcdTEwMkQtXHUxMDMwXHUxMDMyXHUxMDM2LVx1MTAzN1x1MTAzOVx1MTA1OC1cdTEwNTlcdTE3QjctXHUxN0JEXHUxN0M2XHUxN0M5LVx1MTdEM1x1MThBOVx1MjBEMC1cdTIwRENcdTIwRTFcdTMwMkEtXHUzMDJGXHVGQjFFXHVGRTIwLVx1RkUyM1xcVTAwMDFEMTY3LVxcVTAwMDFEMTY5XFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS1cXFUwMDAxRDE4QlxcVTAwMDFEMUFBLVxcVTAwMDFEMUFEXSIKKyAgICAgICAgKTsKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1LYXRha2FuYSIsIGZhbHNlLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIGZhbHNlLAorIlt+XHUzMDAxLVx1MzAwMlx1MzBBMS1cdTMwQUJcdTMwQURcdTMwQUZcdTMwQjFcdTMwQjNcdTMwQjVcdTMwQjdcdTMwQjlcdTMwQkJcdTMwQkRcdTMwQkZcdTMwQzFcdTMwQzMtXHUzMEM0XHUzMEM2XHUzMEM4XHUzMENBLVx1MzBDRlx1MzBEMlx1MzBENVx1MzBEOFx1MzBEQlx1MzBERS1cdTMwRjNcdTMwRjUtXHUzMEY2XHUzMEZDLVx1MzBGRF0iCisgICAgICAgICk7CisgICAgICAgIAorICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgaWYgKHRydWUpIHJldHVybjsgLy8gc2tpcCB0aGUgc3R1ZmYgd2UndmUgZG9uZSBhbHJlYWR5CisgICAgICAgIAorICAgICAgICBnZW5lcmF0ZVNldHMoIkN5cmlsbGljLUxhdGluIiwgdHJ1ZSwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlLAorICAgICAgICAgICAgIltcdTA0MDJcdTA0MDQtXHUwNDA2XHUwNDA4LVx1MDQwQlx1MDQwRi1cdTA0MThcdTA0MUEtXHUwNDM4XHUwNDNBLVx1MDQ0Rlx1MDQ1Mlx1MDQ1NC1cdTA0NTZcdTA0NTgtXHUwNDVCXHUwNDVGXHUwNDkwLVx1MDQ5NVx1MDQ5OC1cdTA0OTlcdTA0RDQtXHUwNEQ1XHUwNEQ4LVx1MDREOV0iCisgICAgICAgICk7CisgICAgICAgIGdlbmVyYXRlU2V0cygiTGF0aW4tQ3lyaWxsaWMiLCBmYWxzZSwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlLAorICAgICAgICAgICAgIltBLVphLXpcdTAwQzZcdTAwRTZcdTAxMTAtXHUwMTExXHUwMThGXHUwMjU5XHUwMkI5LVx1MDJCQV0iCisgICAgICAgICk7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBnZW5lcmF0ZVNldHMoU3RyaW5nIGxhYmVsLCBib29sZWFuIGZvcndhcmQsIAorICAgICAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCwgU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KHJ1bGVzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHZW5lcmF0aW5nICIgKyBsYWJlbCArIChmb3J3YXJkID8gIiIgOiAiIEJBQ0tXQVJEIikpOworICAgICAgICBjbG9zZShzLCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgb3V0LnByaW50bG4oIiMgTUlOSU1BTCBGSUxURVIgR0VORVJBVEVEIEZPUjogIiArIGxhYmVsICsgKGZvcndhcmQgPyAiIiA6ICIgQkFDS1dBUkQiKSk7CisgICAgICAgIG91dC5wcmludGxuKCI6OiAiIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiggIikgCisgICAgICAgICAgICArIHMudG9QYXR0ZXJuKHRydWUpIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiApIikKKyAgICAgICAgICAgICsgIiA7Iik7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIG91dC5wcmludGxuKCJVbmljb2RlOiAiICsgcy50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2xlYW4gR0VORVJBVEUgPSBmYWxzZTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdGVzdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgiVGVzdFVuaWNvZGVTZXRDbG9zdXJlLnR4dCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIAorICAgICAgICBHRU5FUkFURSA9IHRydWU7CisgICAgICAgIHRlc3QoIls6RGV2YW5hZ2FyaTpdIik7CisgICAgICAgIC8qCisgICAgICAgIHRlc3QoIltcdTAwRTBCY10iKTsKKyAgICAgICAgdGVzdCgiW21dIik7CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIE5vcm1hbGl6ZXIuTW9kZVtdIHRlc3RNb2RlcyA9IHsKKyAgICAgICAgTm9ybWFsaXplci5OT05FLCBOb3JtYWxpemVyLk5GRCwgTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ORktDfTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gbW9kZU5hbWVzID0geworICAgICAgICAiTm9ORiIsICJORkQiLCAiTkZDIiwgIk5GS0QiLCAiTkZLQyJ9OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbltdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgZmFsc2UsIHRydWV9OworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjYXNlTmFtZXMgPSB7CisgICAgICAgICJub0xvd2VyIiwgImxvd2VyIn07CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3QoU3RyaW5nIHRlc3RTdHIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVbmljb2RlU2V0IG9yaWdpbmFsID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3RpbmcgQ2xvc3VyZSBvZjogIiArIG9yaWdpbmFsLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIG91dC5wcmludGxuKCJUZXN0aW5nIENsb3N1cmUgb2Y6ICIgKyBvcmlnaW5hbC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgVW5pY29kZVNldCByYXcgPSBuZXcgVW5pY29kZVNldChvcmlnaW5hbCk7CisgICAgICAgIG9yaWdpbmFsLmNvbXBsZW1lbnQoKTsKKyAgICAgICAgb3JpZ2luYWwuY29tcGxlbWVudCgpOworICAgICAgICBpZiAoIXJhdy5lcXVhbHMob3JpZ2luYWwpKSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiRXF1YWxzOiIgKyBvcmlnaW5hbC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdXcml0ZXIgc3dMb2cgPSBudWxsOworICAgICAgICBQcmludFdyaXRlciBsb2cgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisgICAgICAgICAgICBzd0xvZyA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBQcmludFdyaXRlcihzd0xvZyk7CisgICAgICAgICAgICBsb2cucHJpbnRsbigic3RhdGljIFVuaWNvZGVTZXRbXVtdIFVOQ0hBTkdFRCA9IHsiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSBsb2cucHJpbnRsbigiICAgIHsiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdE1vZGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQob3JpZ2luYWwpOworICAgICAgICAgICAgICAgIGNsb3NlKHRlc3QsIHRlc3RNb2Rlc1tqXSwgdGVzdENhc2VzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIlx0bmV3IFVuaWNvZGVTZXQoXCIiICsgZ2VuZXJhdGVkU2V0LnRvUGF0dGVybih0cnVlKSArICJcIiksIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGNhc2VOYW1lc1tpXSAgKyAiLCAiICsgbW9kZU5hbWVzW2pdIDsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGFiZWwpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKGxhYmVsICsgIjogIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgdGVzdC5yZW1vdmVBbGwob3JpZ2luYWwpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiXHRObyBEaWZmZXJlbmNlIGZyb20gb3JpZ2luYWwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiXHREaWZmZXJlbmNlID0gIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dC5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSBsb2cucHJpbnRsbigiICAgIH0sIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJ9OyIpOworICAgICAgICAgICAgb3V0LnByaW50KHN3TG9nLmdldEJ1ZmZlcigpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlKTsKKyAgICAgICAgICAgIHByaW50KCJORkQiLCB0ZXN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5OT19PUCwgdHJ1ZSk7CisgICAgICAgICAgICBwcmludCgiTG93ZXIiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5DT01QT1NFLCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZDIiwgdGVzdCk7CisKKyAgICAgICAgICAgIHRlc3QgPSBuZXcgVW5pY29kZVNldCh0ZXN0U3RyKTsKKyAgICAgICAgICAgIGNsb3NlKHRlc3QsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GS0QiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5DT01QT1NFX0NPTVBBVCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GS0MiLCB0ZXN0KTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgc3RhdGljIFByaW50V3JpdGVyIG91dDsKKyAgICAKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludChTdHJpbmcgbGFiZWwsIFVuaWNvZGVTZXQgdGVzdCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGFiZWwpOworICAgICAgICBvdXQucHJpbnRsbihsYWJlbCArICI6ICIgKyB0ZXN0LnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgIH0KKyAgICAqLworICAgIAorICAgIC8vIGR1bWIsIHNsb3cgaW1wbGVtZW50YXRpb25zCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBORlRvU3RyaW5nIGltcGxlbWVudHMgQ2hhcjMyVG9TdHJpbmcgeworICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgYm9vbGVhbiBsb3dlckZpcnN0OworICAgICAgICAKKyAgICAgICAgTkZUb1N0cmluZyhOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0KSB7CisgICAgICAgICAgICBtb2RlID0gbTsKKyAgICAgICAgICAgIHRoaXMubG93ZXJGaXJzdCA9IGxvd2VyRmlyc3Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBjcCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IFVURjE2LnZhbHVlT2YoY3ApOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNvdXJjZTsKKyAgICAgICAgICAgIGlmIChsb3dlckZpcnN0KSByZXN1bHQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgcmVzdWx0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHJlc3VsdCwgbW9kZSk7CisgICAgICAgICAgICBpZiAobG93ZXJGaXJzdCkgcmVzdWx0ID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMb2NhbGUuVVMsIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhzb3VyY2UpKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIAorICAgIC8qKiBSZXR1cm5zIGEgbWFwcGluZyBmcm9tIGNoYXIzMiB0byBhIHN0cmluZy4gSWYgdGhlcmUgaXMgbm8gY2hhbmdlLAorICAgICAqIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgIAorICAgIGludGVyZmFjZSBDaGFyMzJUb1N0cmluZyB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBjcCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sZWFuIEZBU1QgPSB0cnVlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZShVbmljb2RlU2V0IHMsIE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHsKKyAgICAgICAgQ2hhcjMyVG9TdHJpbmcgZiA9IG5ldyBORlRvU3RyaW5nKG0sIGxvd2VyRmlyc3QpOworICAgICAgICBpZiAoRkFTVCkgeworICAgICAgICAgICAgaW50IG1tOworICAgICAgICAgICAgZm9yIChtbSA9IDA7IDsgKyttbSkgaWYgKG0gPT0gdGVzdE1vZGVzW21tXSkgYnJlYWs7IC8vIGZpbmQgbW9kZQorICAgICAgICAgICAgY2xvc2UyKHMsIGYsIGxvd2VyRmlyc3QgPyAxIDogMCwgbW0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNsb3NlKHMsIGYpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2xvc2UoVW5pY29kZVNldCBzLCBDaGFyMzJUb1N0cmluZyBmKSB7CisgICAgICAgIGlmIChHRU5FUkFURSkgZ2VuZXJhdGVkU2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9pZiAoY3AgPT0gJ1x1MDBlNycpIHsKKyAgICAgICAgICAgICAgLy8gIFN5c3RlbS5vdXQucHJpbnRsbigiZGVidWciKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGYuZ2V0KGNwKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZWRTZXQuYWRkKGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghY29udGFpbnNTb21lKHMsIHJlc3VsdCkpIGNvbnRpbnVlOworICAgICAgICAgICAgcy5hZGQoY3ApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZTIoVW5pY29kZVNldCBzLCBDaGFyMzJUb1N0cmluZyBmLCBpbnQgbGMsIGludCBtb2RlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdW5jaGFuZ2VkID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gVU5DSEFOR0VEW2xjXVttb2RlXTsKKyAgICAgICAgaW50IGNvdW50ID0gdW5jaGFuZ2VkLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBlbmQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBmb3IgKGludCBjcCA9IHN0YXJ0OyBjcCA8PSBlbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZi5nZXQoY3ApOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiU29tZXRoaW5nIHdyb25nIC0tIHNob3VsZCBuZXZlciBoYXBwZW4iKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zU29tZShzLCByZXN1bHQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldFtdW10gVU5DSEFOR0VEID0geworICAgICAgICB7IC8vIFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjQKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNl0iKSwKKyAgICAgICAgLy8gXHUyMTJBLVx1MjEyQlx1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg1LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUEtXHUwM0IwXHUwM0NBLVx1MDNDRVx1MDNEMy1cdTAzRDRcdTA0MDAtXHUwNDAxXHUwNDAzXHUwNDA3XHUwNDBDLVx1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDc2LVx1MDQ3N1x1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQzXHUwNEQ2LVx1MDREN1x1MDREQS1cdTA0REZcdTA0RTItXHUwNEU3XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA2MjItXHUwNjI2XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMDI2XHUxRTAwLVx1MUU5OVx1MUU5Qlx1MUVBMC1cdTFFRjlcdTFGMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMS1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRFx1MjAwMC1cdTIwMDFcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUVcdTMwQUNcdTMwQUVcdTMwQjBcdTMwQjJcdTMwQjRcdTMwQjZcdTMwQjhcdTMwQkFcdTMwQkNcdTMwQkVcdTMwQzBcdTMwQzJcdTMwQzVcdTMwQzdcdTMwQzlcdTMwRDAtXHUzMEQxXHUzMEQzLVx1MzBENFx1MzBENi1cdTMwRDdcdTMwRDktXHUzMERBXHUzMERDLVx1MzBERFx1MzBGNFx1MzBGNy1cdTMwRkFcdTMwRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4LVx1MDk1Rlx1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjVDLVx1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkVcdTFGQzlcdTFGQ0JcdTFGRDNcdTFGREJcdTFGRTNcdTFGRUJcdTFGRUUtXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIzMjktXHUyMzJBXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwRERcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTMyLVx1MDEzN1x1MDEzOS1cdTAxNDBcdTAxNDMtXHUwMTQ5XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdGXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NFx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzkwXHUwM0FBLVx1MDNCMFx1MDNDQS1cdTAzQ0VcdTAzRDAtXHUwM0Q2XHUwM0YwLVx1MDNGMlx1MDQwMC1cdTA0MDFcdTA0MDNcdTA0MDdcdTA0MEMtXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NzYtXHUwNDc3XHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDNcdTA0RDYtXHUwNEQ3XHUwNERBLVx1MDRERlx1MDRFMi1cdTA0RTdcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDU4N1x1MDYyMi1cdTA2MjZcdTA2NzUtXHUwNjc4XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MUUwMC1cdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxOUEtXHUyMTlCXHUyMUFFXHUyMUNELVx1MjFDRlx1MjIwNFx1MjIwOVx1MjIwQ1x1MjIyNFx1MjIyNlx1MjIyQy1cdTIyMkRcdTIyMkYtXHUyMjMwXHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgtXHUyMjc5XHUyMjgwLVx1MjI4MVx1MjI4NC1cdTIyODVcdTIyODgtXHUyMjg5XHUyMkFDLVx1MjJBRlx1MjJFMC1cdTIyRTNcdTIyRUEtXHUyMkVEXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0RUFcdTJFOUZcdTJFRjNcdTJGMDAtXHUyRkQ1XHUzMDAwXHUzMDM2XHUzMDM4LVx1MzAzQVx1MzA0Q1x1MzA0RVx1MzA1MFx1MzA1Mlx1MzA1NFx1MzA1Nlx1MzA1OFx1MzA1QVx1MzA1Q1x1MzA1RVx1MzA2MFx1MzA2Mlx1MzA2NVx1MzA2N1x1MzA2OVx1MzA3MC1cdTMwNzFcdTMwNzMtXHUzMDc0XHUzMDc2LVx1MzA3N1x1MzA3OS1cdTMwN0FcdTMwN0MtXHUzMDdEXHUzMDk0XHUzMDlCLVx1MzA5Q1x1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVBQzAwLVx1RDdBM1x1RjkwMC1cdUZBMERcdUZBMTBcdUZBMTJcdUZBMTUtXHVGQTFFXHVGQTIwXHVGQTIyXHVGQTI1LVx1RkEyNlx1RkEyQS1cdUZBMkRcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkUzMC1cdUZFNDRcdUZFNDktXHVGRTUyXHVGRTU0LVx1RkU2Nlx1RkU2OC1cdUZFNkJcdUZFNzAtXHVGRTcyXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYwMS1cdUZGNUVcdUZGNjEtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ1x1RkZFMC1cdUZGRTZcdUZGRTgtXHVGRkVFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDEzMi1cdTAxMzNcdTAxM0YtXHUwMTQwXHUwMTQ5XHUwMTdGXHUwMUM0LVx1MDFDQ1x1MDFGMS1cdTAxRjNcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NFx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzODVcdTAzODdcdTAzRDAtXHUwM0Q2XHUwM0YwLVx1MDNGMlx1MDU4N1x1MDY3NS1cdTA2NzhcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRTMzXHUwRUIzXHUwRURDLVx1MEVERFx1MEYwQ1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTFFOUEtXHUxRTlCXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJELVx1MUZDMVx1MUZDOVx1MUZDQlx1MUZDRC1cdTFGQ0ZcdTFGRDNcdTFGREJcdTFGREQtXHUxRkRGXHUxRkUzXHUxRkVCXHUxRkVELVx1MUZFRlx1MUZGOVx1MUZGQlx1MUZGRC1cdTFGRkVcdTIwMDAtXHUyMDBBXHUyMDExXHUyMDE3XHUyMDI0LVx1MjAyNlx1MjAyRlx1MjAzMy1cdTIwMzRcdTIwMzYtXHUyMDM3XHUyMDNDXHUyMDNFXHUyMDQ4LVx1MjA0OVx1MjA3MFx1MjA3NC1cdTIwOEVcdTIwQThcdTIxMDAtXHUyMTAzXHUyMTA1LVx1MjEwN1x1MjEwOS1cdTIxMTNcdTIxMTUtXHUyMTE2XHUyMTE5LVx1MjExRFx1MjEyMC1cdTIxMjJcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzMVx1MjEzMy1cdTIxMzlcdTIxNTMtXHUyMTdGXHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDlCLVx1MzA5Q1x1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVdIiksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzMlx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRlx1MDE0MVx1MDE0M1x1MDE0NVx1MDE0N1x1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAzNDVcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM4Rlx1MDM5MS1cdTAzQTFcdTAzQTMtXHUwM0FCXHUwM0MyXHUwM0QwLVx1MDNEMVx1MDNENS1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwOUY4XHUwRjJBLVx1MEYzM1x1MTM3Q1x1MUUwMFx1MUUwMlx1MUUwNFx1MUUwNlx1MUUwOFx1MUUwQVx1MUUwQ1x1MUUwRVx1MUUxMFx1MUUxMlx1MUUxNFx1MUUxNlx1MUUxOFx1MUUxQVx1MUUxQ1x1MUUxRVx1MUUyMFx1MUUyMlx1MUUyNFx1MUUyNlx1MUUyOFx1MUUyQVx1MUUyQ1x1MUUyRVx1MUUzMFx1MUUzMlx1MUUzNFx1MUUzNlx1MUUzOFx1MUUzQVx1MUUzQ1x1MUUzRVx1MUU0MFx1MUU0Mlx1MUU0NFx1MUU0Nlx1MUU0OFx1MUU0QVx1MUU0Q1x1MUU0RVx1MUU1MFx1MUU1Mlx1MUU1NFx1MUU1Nlx1MUU1OFx1MUU1QVx1MUU1Q1x1MUU1RVx1MUU2MFx1MUU2Mlx1MUU2NFx1MUU2Nlx1MUU2OFx1MUU2QVx1MUU2Q1x1MUU2RVx1MUU3MFx1MUU3Mlx1MUU3NFx1MUU3Nlx1MUU3OFx1MUU3QVx1MUU3Q1x1MUU3RVx1MUU4MFx1MUU4Mlx1MUU4NFx1MUU4Nlx1MUU4OFx1MUU4QVx1MUU4Q1x1MUU4RVx1MUU5MFx1MUU5Mlx1MUU5NFx1MUU5Qlx1MUVBMFx1MUVBMlx1MUVBNFx1MUVBNlx1MUVBOFx1MUVBQVx1MUVBQ1x1MUVBRVx1MUVCMFx1MUVCMlx1MUVCNFx1MUVCNlx1MUVCOFx1MUVCQVx1MUVCQ1x1MUVCRVx1MUVDMFx1MUVDMlx1MUVDNFx1MUVDNlx1MUVDOFx1MUVDQVx1MUVDQ1x1MUVDRVx1MUVEMFx1MUVEMlx1MUVENFx1MUVENlx1MUVEOFx1MUVEQVx1MUVEQ1x1MUVERVx1MUVFMFx1MUVFMlx1MUVFNFx1MUVFNlx1MUVFOFx1MUVFQVx1MUVFQ1x1MUVFRVx1MUVGMFx1MUVGMlx1MUVGNFx1MUVGNlx1MUVGOFx1MUYwOC1cdTFGMEZcdTFGMTgtXHUxRjFEXHUxRjI4LVx1MUYyRlx1MUYzOC1cdTFGM0ZcdTFGNDgtXHUxRjREXHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjY4LVx1MUY2Rlx1MUY4OC1cdTFGOEZcdTFGOTgtXHUxRjlGXHUxRkE4LVx1MUZBRlx1MUZCOC1cdTFGQkNcdTFGQkVcdTFGQzgtXHUxRkNDXHUxRkQ4LVx1MUZEQlx1MUZFOC1cdTFGRUNcdTFGRjgtXHUxRkZDXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyNDYwLVx1MjQ2OFx1MjQ3NC1cdTI0N0NcdTI0ODgtXHUyNDkwXHUyNEI2LVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1RkYyMS1cdUZGM0FcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMTBcdTAxMTItXHUwMTI2XHUwMTI4LVx1MDEzMlx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNGXHUwMTQxXHUwMTQzLVx1MDE0OFx1MDE0QVx1MDE0Qy1cdTAxNTJcdTAxNTQtXHUwMTY2XHUwMTY4LVx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQjNcdTAxQjVcdTAxQjctXHUwMUI4XHUwMUJDXHUwMUM0LVx1MDFEQ1x1MDFERS1cdTAxRTRcdTAxRTYtXHUwMjFDXHUwMjFFLVx1MDIxRlx1MDIyMlx1MDIyNFx1MDIyNi1cdTAyMzNcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3RVx1MDM4NS1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNCMFx1MDNDMlx1MDNDQS1cdTAzQ0VcdTAzRDAtXHUwM0QxXHUwM0QzLVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2LVx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMS1cdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDAtXHUwNEQ0XHUwNEQ2LVx1MDREOFx1MDREQS1cdTA0RTBcdTA0RTItXHUwNEU4XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA1MzEtXHUwNTU2XHUwNjIyLVx1MDYyNlx1MDZDMFx1MDZDMlx1MDZEM1x1MDkyOVx1MDkzMVx1MDkzNFx1MDk1OC1cdTA5NUZcdTA5Q0ItXHUwOUNDXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNDhcdTBCNEItXHUwQjRDXHUwQjVDLVx1MEI1RFx1MEI5NFx1MEJDQS1cdTBCQ0NcdTBDNDhcdTBDQzBcdTBDQzctXHUwQ0M4XHUwQ0NBLVx1MENDQlx1MEQ0QS1cdTBENENcdTBEREFcdTBEREMtXHUwRERFXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTEzN0NcdTFFMDAtXHUxRTk5XHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjA3MFx1MjA3NC1cdTIwNzlcdTIwODAtXHUyMDg5XHUyMTI2XHUyMTJBLVx1MjEyQlx1MjE1My1cdTIxNUVcdTIxNjAtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgtXHUyMjc5XHUyMjgwLVx1MjI4MVx1MjI4NC1cdTIyODVcdTIyODgtXHUyMjg5XHUyMkFDLVx1MjJBRlx1MjJFMC1cdTIyRTNcdTIyRUEtXHUyMkVEXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0NjhcdTI0NzQtXHUyNDdDXHUyNDg4LVx1MjQ5MFx1MjRCNi1cdTI0RUFcdTI3NzYtXHUyNzdFXHUyNzgwLVx1Mjc4OFx1Mjc4QS1cdTI3OTJcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVcdUZGMjEtXHVGRjNBXFxVMDAwMTAzNEFcXFUwMDAxMDQwMC1cXFUwMDAxMDQyNVxcVTAwMDFEMTY1LVxcVTAwMDFEMTY2XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbQS1aXHUwMEIyLVx1MDBCM1x1MDBCNVx1MDBCOVx1MDBCQy1cdTAwQkVcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBERVx1MDEwMFx1MDEwMlx1MDEwNFx1MDEwNlx1MDEwOFx1MDEwQVx1MDEwQ1x1MDEwRVx1MDExMFx1MDExMlx1MDExNFx1MDExNlx1MDExOFx1MDExQVx1MDExQ1x1MDExRVx1MDEyMFx1MDEyMlx1MDEyNFx1MDEyNlx1MDEyOFx1MDEyQVx1MDEyQ1x1MDEyRVx1MDEzMC1cdTAxMzJcdTAxMzRcdTAxMzZcdTAxMzlcdTAxM0JcdTAxM0RcdTAxM0ZcdTAxNDFcdTAxNDNcdTAxNDVcdTAxNDdcdTAxNEFcdTAxNENcdTAxNEVcdTAxNTBcdTAxNTJcdTAxNTRcdTAxNTZcdTAxNThcdTAxNUFcdTAxNUNcdTAxNUVcdTAxNjBcdTAxNjJcdTAxNjRcdTAxNjZcdTAxNjhcdTAxNkFcdTAxNkNcdTAxNkVcdTAxNzBcdTAxNzJcdTAxNzRcdTAxNzZcdTAxNzgtXHUwMTc5XHUwMTdCXHUwMTdEXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTBcdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFBRlx1MDFCMS1cdTAxQjNcdTAxQjVcdTAxQjctXHUwMUI4XHUwMUJDXHUwMUM0LVx1MDFDRFx1MDFDRlx1MDFEMVx1MDFEM1x1MDFENVx1MDFEN1x1MDFEOVx1MDFEQlx1MDFERVx1MDFFMFx1MDFFMlx1MDFFNFx1MDFFNlx1MDFFOFx1MDFFQVx1MDFFQ1x1MDFFRVx1MDFGMS1cdTAxRjRcdTAxRjYtXHUwMUY4XHUwMUZBXHUwMUZDXHUwMUZFXHUwMjAwXHUwMjAyXHUwMjA0XHUwMjA2XHUwMjA4XHUwMjBBXHUwMjBDXHUwMjBFXHUwMjEwXHUwMjEyXHUwMjE0XHUwMjE2XHUwMjE4XHUwMjFBXHUwMjFDXHUwMjFFXHUwMjIyXHUwMjI0XHUwMjI2XHUwMjI4XHUwMjJBXHUwMjJDXHUwMjJFXHUwMjMwXHUwMjMyXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDVcdTAzNzRcdTAzN0VcdTAzODYtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM4Rlx1MDM5MS1cdTAzQTFcdTAzQTMtXHUwM0FCXHUwM0MyXHUwM0QwLVx1MDNEMVx1MDNENS1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwOTU4LVx1MDk1Rlx1MDlEQy1cdTA5RERcdTA5REZcdTA5RjhcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjVDLVx1MEI1RFx1MEYyQS1cdTBGMzNcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZCQ1x1MUZCRVx1MUZDOC1cdTFGQ0NcdTFGRDNcdTFGRDgtXHUxRkRCXHUxRkUzXHUxRkU4LVx1MUZFQ1x1MUZFRS1cdTFGRUZcdTFGRjgtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjA3MFx1MjA3NC1cdTIwNzlcdTIwODAtXHUyMDg5XHUyMTI2XHUyMTJBLVx1MjEyQlx1MjE1My1cdTIxNUVcdTIxNjAtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNDY4XHUyNDc0LVx1MjQ3Q1x1MjQ4OC1cdTI0OTBcdTI0QjYtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXHVGRjIxLVx1RkYzQVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMTBcdTAxMTItXHUwMTI2XHUwMTI4LVx1MDEzN1x1MDEzOS1cdTAxNDFcdTAxNDMtXHUwMTRBXHUwMTRDLVx1MDE1Mlx1MDE1NC1cdTAxNjZcdTAxNjgtXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFNFx1MDFFNi1cdTAyMUNcdTAyMUUtXHUwMjFGXHUwMjIyXHUwMjI0XHUwMjI2LVx1MDIzM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0IwXHUwM0MyXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0MzlcdTA0NTAtXHUwNDUxXHUwNDUzXHUwNDU3XHUwNDVDLVx1MDQ1RVx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Ni1cdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzEtXHUwNEMzXHUwNEM3XHUwNENCXHUwNEQwLVx1MDRENFx1MDRENi1cdTA0RDhcdTA0REEtXHUwNEUwXHUwNEUyLVx1MDRFOFx1MDRFQS1cdTA0RjVcdTA0RjgtXHUwNEY5XHUwNTMxLVx1MDU1Nlx1MDU4N1x1MDYyMi1cdTA2MjZcdTA2NzUtXHUwNjc4XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTEzN0NcdTFFMDAtXHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkVcdTIwMDAtXHUyMDBBXHUyMDExXHUyMDE3XHUyMDI0LVx1MjAyNlx1MjAyRlx1MjAzMy1cdTIwMzRcdTIwMzYtXHUyMDM3XHUyMDNDXHUyMDNFXHUyMDQ4LVx1MjA0OVx1MjA3MFx1MjA3NC1cdTIwOEVcdTIwQThcdTIxMDAtXHUyMTAzXHUyMTA1LVx1MjEwN1x1MjEwOS1cdTIxMTNcdTIxMTUtXHUyMTE2XHUyMTE5LVx1MjExRFx1MjEyMC1cdTIxMjJcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzMVx1MjEzMy1cdTIxMzlcdTIxNTMtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUItXHUzMDlDXHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQTBcdTAwQThcdTAwQUFcdTAwQUZcdTAwQjItXHUwMEI1XHUwMEI4LVx1MDBCQVx1MDBCQy1cdTAwQkVcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBERVx1MDEwMFx1MDEwMlx1MDEwNFx1MDEwNlx1MDEwOFx1MDEwQVx1MDEwQ1x1MDEwRVx1MDExMFx1MDExMlx1MDExNFx1MDExNlx1MDExOFx1MDExQVx1MDExQ1x1MDExRVx1MDEyMFx1MDEyMlx1MDEyNFx1MDEyNlx1MDEyOFx1MDEyQVx1MDEyQ1x1MDEyRVx1MDEzMC1cdTAxMzRcdTAxMzZcdTAxMzlcdTAxM0JcdTAxM0RcdTAxM0YtXHUwMTQxXHUwMTQzXHUwMTQ1XHUwMTQ3XHUwMTQ5LVx1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0Q2XHUwM0RBXHUwM0RDXHUwM0RFXHUwM0UwXHUwM0UyXHUwM0U0XHUwM0U2XHUwM0U4XHUwM0VBXHUwM0VDXHUwM0VFXHUwM0YwLVx1MDNGMlx1MDNGNC1cdTAzRjVcdTA0MDAtXHUwNDJGXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2XHUwNDc4XHUwNDdBXHUwNDdDXHUwNDdFXHUwNDgwXHUwNDhDXHUwNDhFXHUwNDkwXHUwNDkyXHUwNDk0XHUwNDk2XHUwNDk4XHUwNDlBXHUwNDlDXHUwNDlFXHUwNEEwXHUwNEEyXHUwNEE0XHUwNEE2XHUwNEE4XHUwNEFBXHUwNEFDXHUwNEFFXHUwNEIwXHUwNEIyXHUwNEI0XHUwNEI2XHUwNEI4XHUwNEJBXHUwNEJDXHUwNEJFXHUwNEMxXHUwNEMzXHUwNEM3XHUwNENCXHUwNEQwXHUwNEQyXHUwNEQ0XHUwNEQ2XHUwNEQ4XHUwNERBXHUwNERDXHUwNERFXHUwNEUwXHUwNEUyXHUwNEU0XHUwNEU2XHUwNEU4XHUwNEVBXHUwNEVDXHUwNEVFXHUwNEYwXHUwNEYyXHUwNEY0XHUwNEY4XHUwNTMxLVx1MDU1Nlx1MDU4N1x1MDY3NS1cdTA2NzhcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRTMzXHUwRUIzXHUwRURDLVx1MEVERFx1MEYwQ1x1MEYyQS1cdTBGMzNcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc5XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlBLVx1MUU5Qlx1MUVBMFx1MUVBMlx1MUVBNFx1MUVBNlx1MUVBOFx1MUVBQVx1MUVBQ1x1MUVBRVx1MUVCMFx1MUVCMlx1MUVCNFx1MUVCNlx1MUVCOFx1MUVCQVx1MUVCQ1x1MUVCRVx1MUVDMFx1MUVDMlx1MUVDNFx1MUVDNlx1MUVDOFx1MUVDQVx1MUVDQ1x1MUVDRVx1MUVEMFx1MUVEMlx1MUVENFx1MUVENlx1MUVEOFx1MUVEQVx1MUVEQ1x1MUVERVx1MUVFMFx1MUVFMlx1MUVFNFx1MUVFNlx1MUVFOFx1MUVFQVx1MUVFQ1x1MUVFRVx1MUVGMFx1MUVGMlx1MUVGNFx1MUVGNlx1MUVGOFx1MUYwOC1cdTFGMEZcdTFGMTgtXHUxRjFEXHUxRjI4LVx1MUYyRlx1MUYzOC1cdTFGM0ZcdTFGNDgtXHUxRjREXHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjY4LVx1MUY2Rlx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OVx1MUY3Qlx1MUY3RFx1MUY4OC1cdTFGOEZcdTFGOTgtXHUxRjlGXHUxRkE4LVx1MUZBRlx1MUZCOC1cdTFGQzFcdTFGQzgtXHUxRkNGXHUxRkQzXHUxRkQ4LVx1MUZEQlx1MUZERC1cdTFGREZcdTFGRTNcdTFGRTgtXHUxRkVGXHUxRkY4LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDlCLVx1MzA5Q1x1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgfSwKKyAgICB9OworICAgICovCisKKyAgICAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBnZW5lcmF0ZWRTZXQ7CisgICAgCisgICAgLy8gVGhlc2Ugc2hvdWxkIGJvdGggYmUgcHVibGljLCBhbmQgb24gdGhlIHJlc3BlY3RpdmUgY2xhc3NlcworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhZGRBbGwoVW5pY29kZVNldCBzLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyLGkpOworICAgICAgICAgICAgcy5hZGQoY3ApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc1NvbWUoVW5pY29kZVNldCBzLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyLGkpOworICAgICAgICAgICAgaWYgKHMuY29udGFpbnMoY3ApKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Xcml0ZUluZGljQ2hhcnRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvV3JpdGVJbmRpY0NoYXJ0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4N2ZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvV3JpdGVJbmRpY0NoYXJ0cy5qYXZhCkBAIC0wLDAgKzEsMzU3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLjdGCisgKi8KK3B1YmxpYyBjbGFzcyBXcml0ZUluZGljQ2hhcnRzIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgd3JpdGVJSUNoYXJ0cygpOworICAgIH0KKyAgIAorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgaGVhZGVyID0gICI8aHRtbD5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgIEludGVyLUluZGljIFRyYW5zbGl0ZXJhdGlvbiBDb21wYXJpc29uIGNoYXJ0IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwvaGVhZD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8Ym9keSBiZ2NvbG9yPSNGRkZGRkY+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICA8dGFibGUgYm9yZGVyPTEgd2lkdGg9MTAwJSA+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dHI+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+SW50ZXItSW5kaWM8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkxhdGluPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5EZXZhbmFnYXJpPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5CZW5nYWxpPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5HdXJtdWtoaTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+R3VqYXJhdGk8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPk9yaXlhPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5UYW1pbDwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+VGVsdWd1PC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5LYW5uYWRhPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5NYWxheWFsYW08L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPC90cj5cbiI7CisgICAgc3RhdGljIFN0cmluZyBmb290ZXIgPSAgIiAgICAgICAgICA8L3RhYmxlPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwvYm9keT5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8L2h0bWw+XG4iOworICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGRldmEgPSBuZXcgVW5pY29kZVNldCgiWzpkZXZhOl0iKTsgCisgICAgc3RhdGljIFVuaWNvZGVTZXQgYmVuZyA9IG5ldyBVbmljb2RlU2V0KCJbOmJlbmc6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IGd1anIgPSBuZXcgVW5pY29kZVNldCgiWzpndWpyOl0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCBndXJ1ID0gbmV3IFVuaWNvZGVTZXQoIls6Z3VydTpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQgb3J5YSA9IG5ldyBVbmljb2RlU2V0KCJbOm9yeWE6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IHRhbWwgPSBuZXcgVW5pY29kZVNldCgiWzp0YW1sOl0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCB0ZWx1ID0gbmV3IFVuaWNvZGVTZXQoIls6dGVsdTpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQga25kYSA9IG5ldyBVbmljb2RlU2V0KCJbOmtuZGE6XSIpOyAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBtbHltID0gbmV3IFVuaWNvZGVTZXQoIls6bWx5bTpdIik7ICAgICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGludGVyPSBuZXcgVW5pY29kZVNldCgiW1x1RTAwMC1cdUUwODJdIik7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlSUlDaGFydHMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1CZW5nYWxpIik7ICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdXJtdWtoaSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdWphcmF0aSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1Pcml5YSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UYW1pbCIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDYgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UZWx1Z3UiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ3ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtS2FubmFkYSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1NYWxheWFsYW0iKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ5ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtRGV2YW5hZ2FyaSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEwID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtTGF0aW4iKTsKKyAgICAgICAgICAgIC8vVW5pY29kZVNldEl0ZXJhdG9yIHNJdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihkZXZhKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yKGludCBpPTB4MDA7aTw9MHg4MDtpKyspeworICAgICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gIG5ldyBTdHJpbmdbMTBdOworICAgICAgICAgICAgICAgYXJyWzBdPVVURjE2LnZhbHVlT2YoaSsgMHhFMDAwKTsKKyAgICAgICAgICAgICAgIHRhYmxlLnB1dChVVEYxNi52YWx1ZU9mKGkpLGFycik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbVdyaXRlciBvcyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0oImNvbXBhcmlzb24tY2hhcnQuaHRtbCIpLCJVVEYtOCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvcy53cml0ZShoZWFkZXIpOworCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDEsMHgwOTgwLDIpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQyLDB4MEEwMCwzKTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ0LDB4MEIwMCw1KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ1LDB4MEI4MCw2KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ3LDB4MEM4MCw4KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ4LDB4MEQwMCw5KTsgCisKKyAgICAgICAgICAgIGZvcihpbnQgaT0weDAwO2k8PTB4ODA7aSsrKXsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wID0gKFN0cmluZ1tdKXRhYmxlLmdldChVVEYxNi52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHdyaXRlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yKGludCBrPTE7azx0ZW1wLmxlbmd0aCAmJiB0ZW1wW2tdIT1udWxsO2srKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdCh0ZW1wW2tdLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik8MCB8fAorICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW2tdLmluZGV4T2YoIjpVTkFTU0lHTkVEIik8MCl7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYod3JpdGUpeworICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8dGVtcC5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmFsbGJhY2s9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1bmFzc2lnbmVkPWZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdW5tYXBwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbnN1bWVkID1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVtcFtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXS5pbmRleE9mKCI6RkFMTEJBQ0siKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZGRjAwIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrKyJcIj4iK3N0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpVTkFTU0lHTkVEIik+PTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0ZW1wW2pdLnN1YnN0cmluZygwLHRlbXBbal0uaW5kZXhPZigiOiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5hc3NpZ25lZD10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpVTk1BUFBFRCIpPj0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdGVtcFtqXS5zdWJzdHJpbmcoMCx0ZW1wW2pdLmluZGV4T2YoIjoiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubWFwcGVkPXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0uaW5kZXhPZigiOkNPTlNVTUVEIik+PTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0ZW1wW2pdLnN1YnN0cmluZygwLHRlbXBbal0uaW5kZXhPZigiOiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZWQ9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWVCdWY9bmV3IFN0cmluZ0J1ZmZlcigpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGY9MDsgZjxzdHIubGVuZ3RoKCk7ZisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZj4wKXsgbmFtZUJ1Zi5hcHBlbmQoIisiKTt9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVCdWYuYXBwZW5kKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdChzdHIsZikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVCdWYudG9TdHJpbmcoKTsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmYWxsYmFjayl7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCAgd2lkdGg9OSUgYmdjb2xvcj0jQkJCQkZGIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNCQkJCRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHVubWFwcGVkKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNGRjk5OTkgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZih1bmFzc2lnbmVkKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSMwMEZGRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9IzAwRkZGRiBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIHN0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoY29uc3VtZWQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNGRkZGNTUgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0ZGRkY1NSBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiKyIiKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuaW5kZXhPZigicHJpdmF0ZSIpIT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gdDEwLnRyYW5zbGl0ZXJhdGUoc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNGRkJCQkIgIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFzLmVxdWFscyhzdHIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgIGJnY29sb3I9I0NDRUVERCBhbGlnbj1jZW50ZXI+IitzICsiPC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0NDRUVERCBhbGlnbj1jZW50ZXI+Jm5ic3A7PC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgIDx0ZCB3aWR0aD05JSA+Jm5ic3A8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgPC90cj5cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9zLndyaXRlKGZvb3Rlcik7CisgICAgICAgICAgICBvcy5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlQ2hhcnRzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtQmVuZ2FsaSIpOyAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtR3VybXVraGkiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtR3VqYXJhdGkiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtT3JpeWEiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ1ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtVGFtaWwiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ2ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtVGVsdWd1Iik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0NyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLUthbm5hZGEiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtTWFsYXlhbGFtIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLURldmFuYWdhcmkiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9Vbmljb2RlU2V0SXRlcmF0b3Igc0l0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGRldmEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGk9MHgwOTAwO2k8PTB4MDk3RjtpKyspeworICAgICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gIG5ldyBTdHJpbmdbMTBdOworICAgICAgICAgICAgICAgYXJyWzBdPVVURjE2LnZhbHVlT2YoKGkmMHhGRikgKyAweEUwMDApOworICAgICAgICAgICAgICAgdGFibGUucHV0KFVURjE2LnZhbHVlT2YoaSksYXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbSgiY29tcGFyaXNvbi1jaGFydC5odG1sIiksIlVURi04Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9zLndyaXRlKGhlYWRlcik7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgd3JpdGVDaGFydHModDEsYmVuZywxKTsgICAgICAgIAorICAgICAgICAgICAgd3JpdGVDaGFydHModDIsZ3VydSwyKTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0MyxndWpyLDMpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ0LG9yeWEsNCk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDUsdGFtbCw1KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0Nix0ZWx1LDYpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ3LGtuZGEsNyk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDgsbWx5bSw4KTsgCisgICAgICAgICAgICAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQxLDB4MDk4MCwyKTsgICAgICAgIAorICAgICAgICAgICAgd3JpdGVDaGFydHModDIsMHgwQTAwLDMpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NCwweDBCMDAsNSk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDUsMHgwQjgwLDYpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NywweDBDODAsOCk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDgsMHgwRDAwLDkpOyAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDEsMHgwOTgwLDIpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQyLDB4MEEwMCwzKTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ0LDB4MEIwMCw1KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ1LDB4MEI4MCw2KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ3LDB4MEM4MCw4KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ4LDB4MEQwMCw5KTsgCisgICAgICAgICAgICBmb3IoaW50IGk9MHgwOTAwO2k8PTB4MDk3RjtpKyspeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSAoU3RyaW5nW10pdGFibGUuZ2V0KFVURjE2LnZhbHVlT2YoaSkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JpdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGs9MTtrPHRlbXAubGVuZ3RoO2srKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdCh0ZW1wW2tdLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik8MCl7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYod3JpdGUpeworICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8dGVtcC5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmFsbGJhY2s9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlbXBbal07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXS5pbmRleE9mKCI6RkFMTEJBQ0siKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZGRjAwIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrKyJcIj4iK3N0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdChzdHIsMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZhbGxiYWNrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNCQkJCRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmluZGV4T2YoInVuYXNzaWduZWQiKSE9LTEpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGJnY29sb3I9I0NDQ0NDQyBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuaW5kZXhPZigicHJpdmF0ZSIpIT0tMSl7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZCQkJCIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+Iisgc3RyKyI8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICA8dGQ+Jm5ic3A8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgPC90cj5cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9zLndyaXRlKGZvb3Rlcik7CisgICAgICAgICAgICBvcy5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldEtleShpbnQgY3ApeworICAgICAgICBpbnQgZGVsdGEgPSBjcCAmIDB4RkY7CisgICAgICAgIGRlbHRhLT0gKGRlbHRhPjB4N2YpPyAweDgwIDogMDsKKyAgICAgICAgLy9kZWx0YSs9MHgwOTAwOworICAgICAgICByZXR1cm4gVVRGMTYudmFsdWVPZihkZWx0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUNoYXJ0cyhUcmFuc2xpdGVyYXRvciB0cmFucywgaW50IHN0YXJ0LCBpbnQgaW5kZXgpeworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHRyYW5zLmdldEludmVyc2UoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTw9MHg3ZjtpKyspeworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihzdGFydCtpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IGludmVyc2UudHJhbnNsaXRlcmF0ZShjcCk7CisgICAgICAgICAgICBTdHJpbmcgczIgPSB0cmFucy50cmFuc2xpdGVyYXRlKHMxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gKFN0cmluZ1tdKXRhYmxlLmdldChnZXRLZXkoc3RhcnQraSkpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMyKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHMxOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHMxICsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlSUlDaGFydHMoVHJhbnNsaXRlcmF0b3IgdHJhbnMsaW50IHN0YXJ0LCBpbnQgaW5kZXgpeworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHRyYW5zLmdldEludmVyc2UoKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGludGVyKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGl0ZXIubmV4dCgpKXsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9VVRGMTYudmFsdWVPZihpdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSB0cmFucy50cmFuc2xpdGVyYXRlKGNwKTsKKyAgICAgICAgICAgIFN0cmluZyBzMiA9IGludmVyc2UudHJhbnNsaXRlcmF0ZShzMSk7CisgICAgICAgICAgICBTdHJpbmdbXSBhcnIgPSAoU3RyaW5nW10pdGFibGUuZ2V0KFVURjE2LnZhbHVlT2YoaXRlci5jb2RlcG9pbnQmMHhGRikpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMxKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6VU5BU1NJR05FRCI7CisgICAgICAgICAgICB9ZWxzZSBpZihjcC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczE7CisgICAgICAgICAgICB9ZWxzZSBpZihzMS5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBpZihzMS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6Q09OU1VNRUQiOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczErICI6RkFMTEJBQ0siOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZXsKKyAgICAgICAgICAgICAgICBpZihzMi5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6Q09OU1VNRUQiOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczErICI6RkFMTEJBQ0siOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVDaGFydHMoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIFVuaWNvZGVTZXQgdGFyZ2V0LCBpbnQgaW5kZXgpeworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdEl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRhcmdldCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludmVyc2UgPSB0cmFucy5nZXRJbnZlcnNlKCk7CisgICAgICAgIHdoaWxlKHRJdGVyLm5leHQoKSl7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKHRJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUoY3ApOworICAgICAgICAgICAgU3RyaW5nIHMyID0gdHJhbnMudHJhbnNsaXRlcmF0ZShzMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIGFyciA9IChTdHJpbmdbXSl0YWJsZS5nZXQoZ2V0S2V5KHRJdGVyLmNvZGVwb2ludCkpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMyKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IGNwOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IGNwICsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9kdW1wSUNVcnVsZXMuYmF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGJmZDVlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9kdW1wSUNVcnVsZXMuYmF0CkBAIC0wLDAgKzEsNDgzIEBACitAcmVtID0gJy0tKi1QZXJsLSotLQorQGVjaG8gb2ZmCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLXggLVMgIiUwIiAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmRvZnBlcmwKKzpXaW5OVAorcGVybCAteCAtUyAiJTAiICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZG9mcGVybAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCitnb3RvIGVuZG9mcGVybAorQHJlbSAnOworIyFwZXJsCisjbGluZSAxNAorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisjIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyMgVGhpcyBwZXJsIHNjcmlwdCBjcmVhdGVzIElDVSB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCB0aGF0IGxpdmUKKyMgaW4gaWN1L2RhdGEsIGZyb20gSUNVNEogVVRGOCB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCBpbgorIyBpY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhLy4KKyMKKyMgVGhlIHRyYW5zZm9ybWF0aW9uIHRoYXQgaXMgZG9uZSBpcyB2ZXJ5IG1pbmltYWwuICBUaGUgc2NyaXB0IGFzc3VtZXMKKyMgdGhhdCB0aGUgaW5wdXQgZmlsZXMgdXNlIG9ubHkgIyBjb21tZW50cworIyBhbmQgdGhhdCB0aGV5IGZvbGxvdyBhIHJpZ2lkIGZvcm1hdC4KKyMKKyMgVGhlIG91dHB1dCBmaWxlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIElDVSBjb252ZW50aW9ucyAoc2VlIE5BTUVfTUFQCisjIGJlbG93KSBhbmQgY3JlYXRlZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBUaGV5IHNob3VsZCBiZSBtYW51YWxseQorIyBjaGVja2VkIGFuZCB0aGVuIGNvcGllZCBpbnRvIHRoZSBpY3UvZGF0YS90cmFubGl0IGRpcmVjdG9yeS4KKyMgQW4gSUNVIGJ1aWxkIG11c3QKKyMgdGhlbiBiZSBpbml0aWF0ZWQsIGFuZCB0aGUgc3RhbmRhcmQgc3VpdGUgb2YgSUNVIHRyYW5zbGl0ZXJhdG9yIHRlc3RzCisjIHNob3VsZCBiZSBydW4gYWZ0ZXIgdGhhdC4KKyMKKyMgQWxhbiBMaXUgNS8xOS8wMCAyLzI3LzAxCisKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2Ugc3RyaWN0OworCit1c2UgdmFycyBxdyglVVNFRF9GSUxFUyk7CisKK215ICRESVIgPSAiLi4vLi4vLi4vaW1wbC9kYXRhIjsKK215ICRJRCA9ICcnOworCitHZXRPcHRpb25zKCdkaXI9cycgPT4gXCRESVIsCisgICAgICAgICAgICdpZD1zJyA9PiBcJElELAorICAgICAgICAgICAnPD4nID0+IFwmdXNhZ2UpIHx8IGRpZTsKKwordXNhZ2UoKSBpZiAoQEFSR1YpOworCitteSAkSUQgPX4gcy8tL18vOworaWYgKCEgLWQgJERJUikgeworICAgIHByaW50IFNUREVSUiAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnlcbiI7CisgICAgdXNhZ2UoKTsKK30KKworc3ViIHVzYWdlIHsKKyAgICBteSAkbWUgPSAkMDsKKyAgICAkbWUgPX4gc3wuK1svXFxdfHw7CisgICAgcHJpbnQgIlVzYWdlOiAkbWUgWy1kaXIgPGRpcj5dIFstaWQgPGlkPl1cbiI7CisgICAgcHJpbnQgIiAtLWRpciA8ZGlyPiBTcGVjaWZ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiI7CisgICAgcHJpbnQgIiAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcl8qLnR4dCBmaWxlc1xuIjsKKyAgICBwcmludCAiIC0taWQgPGlkPiAgIFNwZWNpZnkgYSBzaW5nbGUgSUQgdG8gdHJhbnNmb3JtLCBlLmcuXG4iOworICAgIHByaW50ICIgICAgICAgICAgICAgRnVsbHdpZHRoLUhhbGZ3aWR0aFxuIjsKKyAgICBleGl0KDEpOworfQorCitteSAkSkFWQV9PTkxZID0gJy0nOworCitteSAkT1VURElSID0gImljdTRjIjsKK21rZGlyKCRPVVRESVIsMDc3Nyk7CisKKyMgTWFwcGluZyBmcm9tIEphdmEgZmlsZSBuYW1lcyB0byBJQ1UgZmlsZSBuYW1lcworIyBDb25zdHJhaW50cyBvbiBJQ1U0QyBmaWxlIG5hbWU6IGljdWR0MjBiXworIyB8LS05IChwcmVmaXgpLS0tfC0tLTE4KG5hbWUgd2l0aCBkaXN0aW5ndWlzaGVyLGUuZy4gInRfIiApLS0tLXwKKyMgIC0tNCAoIi4iK2V4dG4pLS18ID0gMzEgY2hhcmFjdGVycyB0b3RhbC4KKyMgVGhhdCBpcywgbXVzdCBoYXZlIGxlbmd0aCglTkFNRV9NQVB7eH0pIDw9IDE2CisKK215ICRNQVhfSUNVNENfRklMRU5BTUVfTEVOID0gMTg7CisKKyMgLS0gSElTVE9SWSAtLSBJZiBub3QgbWFya2VkLCB0aGVuIHByZSAyLjIuCisjICAgICAgICAgICAgICAgQWxsIEludGVySW5kaWMgYXJlIHByZSAyLjIuCisjIEFueV9BY2NlbnRzCisjIEFueV9QdWJsaXNoaW5nCisjIEFyYWJpY19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgQ3lyaWxsaWNfTGF0aW4KKyMgRnVsbHdpZHRoX0hhbGZ3aWR0aAorIyBHcmVla19MYXRpbgorIyBHcmVla19MYXRpbl9VTkdFR04gICAgICogMi4yIChtb3ZlZCBmcm9tIGVsLnR4dCkKKyMgSGFuX0xhdGluICAgICAgICAgICAgICAqIDIuMgorIyBIYW5fTGF0aW5fRGVmaW5pdGlvbiAgICogMi4yCisjIEhhbl9MYXRpbl9FRElDVCAgICAgICAgKiAyLjIgSiBvbmx5CisjIEhlYnJld19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgSGlyYWdhbmFfS2F0YWthbmEKKyMgSGlyYWdhbmFfTGF0aW4KKyMgTGF0aW5fSmFtbworIyBMYXRpbl9LYXRha2FuYQorIyBUaGFpTG9naWNhbF9MYXRpbiAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlMb2dpY2FsICAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlTZW1pICAgICAgICAgICogMi4yIEogb25seQorCitteSAlTkFNRV9NQVAgPSAoCisgICAgICMgQW4gSUNVIG5hbWUgb2YgIiIgbWVhbnMgdGhlIElDVSBuYW1lID09IHRoZSBJRAorCisgICAgICMgV2UgZmlsdGVyIG5hbWVzIGJhc2VkIG9uIHdoYXQgaXMgaW4gdXNlIGluIHRoZSBpbmRleCBmaWxlLgorCisgICAgICMgRmxhZyBhIHJ1bGUgYXMgSkFWQV9PTkxZIGlmIGl0IGV4aXN0cyBhbmQgd2UgdXNlIGl0IGluIEphdmEsCisgICAgICMgYnV0IHdlIGRvbid0IHVzZSBpdCBpbiBDLgorCisgICAgICMgVXNlIG9mZmljaWFsIHNjcmlwdCBhYmJyZXZpYXRpb25zIHdoZXJlIHBvc3NpYmxlLgorCisgICAjIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgICAgCisgICAjIDEyMzQ1Njc4OTAxMjM0NTYgICAgICAgICAgIDEyMzQ1Njc4OTAxMjM0NTYKKyAgICAgQW55X0FjY2VudHMgICAgICAgICAgICA9PiAiIiwKKyAgICAgQW55X1B1Ymxpc2hpbmcgICAgICAgICA9PiAiIiwKKyAgICAgQ3lyaWxsaWNfTGF0aW4gICAgICAgICA9PiAiQ3lybF9MYXRuIiwKKyAgICAgRnVsbHdpZHRoX0hhbGZ3aWR0aCAgICA9PiAiRldpZHRoX0hXaWR0aCIsCisgICAgIEdyZWVrX0xhdGluICAgICAgICAgICAgPT4gIkdyZWtfTGF0biIsCisgICAgIEhpcmFnYW5hX0thdGFrYW5hICAgICAgPT4gIkhpcmFfS2FuYSIsCisgICAgIEhpcmFnYW5hX0xhdGluICAgICAgICAgPT4gIkhpcmFfTGF0biIsCisgICAgIExhdGluX0phbW8gICAgICAgICAgICAgPT4gIkxhdG5fSmFtbyIsCisgICAgIExhdGluX0thdGFrYW5hICAgICAgICAgPT4gIkxhdG5fS2FuYSIsCisKKyAgICAgQXJhYmljX0xhdGluICAgICAgICAgICA9PiAiQXJhYl9MYXRuIiwKKyAgICAgR3JlZWtfTGF0aW5fVU5HRUdOICAgICA9PiAiR3Jla19MYXRuX1VOR0VHTiIsCisgICAgIEhhbl9MYXRpbiAgICAgICAgICAgICAgPT4gIkhhbmlfTGF0biIsCisgICAgIEhhbl9MYXRpbl9EZWZpbml0aW9uICAgPT4gIkhhbmlfTGF0bl9EZWYiLAorICAgICBIYW5fTGF0aW5fRURJQ1QgICAgICAgID0+ICJIYW5pX0xhdG5fRURJQ1QiLAorICAgICBIZWJyZXdfTGF0aW4gICAgICAgICAgID0+ICJIZWJyX0xhdG4iLAorICAgICBUaGFpTG9naWNhbF9MYXRpbiAgICAgID0+ICRKQVZBX09OTFksICMgIlRoYWlMb2dfTGF0biIsCisgICAgIFRoYWlfVGhhaUxvZ2ljYWwgICAgICAgPT4gJEpBVkFfT05MWSwgIyAiVGhhaV9UaGFpTG9nIiwKKyAgICAgVGhhaV9UaGFpU2VtaSAgICAgICAgICA9PiAkSkFWQV9PTkxZLCAjICJUaGFpX1RoYWlTZW1pIiwKKworICAgICBJbnRlckluZGljX0JlbmdhbGkgICAgID0+ICJJbnRlckluZGljX0JlbmciLAorICAgICBJbnRlckluZGljX0RldmFuYWdhcmkgID0+ICJJbnRlckluZGljX0RldmEiLAorICAgICBJbnRlckluZGljX0d1amFyYXRpICAgID0+ICJJbnRlckluZGljX0d1anIiLAorICAgICBJbnRlckluZGljX0d1cm11a2hpICAgID0+ICJJbnRlckluZGljX0d1cnUiLAorICAgICBJbnRlckluZGljX0thbm5hZGEgICAgID0+ICJJbnRlckluZGljX0tuZGEiLAorICAgICBJbnRlckluZGljX0xhdGluICAgICAgID0+ICJJbnRlckluZGljX0xhdG4iLAorICAgICBJbnRlckluZGljX01hbGF5YWxhbSAgID0+ICJJbnRlckluZGljX01seW0iLAorICAgICBJbnRlckluZGljX09yaXlhICAgICAgID0+ICJJbnRlckluZGljX09yeWEiLAorICAgICBJbnRlckluZGljX1RhbWlsICAgICAgID0+ICJJbnRlckluZGljX1RhbWwiLAorICAgICBJbnRlckluZGljX1RlbHVndSAgICAgID0+ICJJbnRlckluZGljX1RlbHUiLAorCisgICAgIEJlbmdhbGlfSW50ZXJJbmRpYyAgICAgPT4gIkJlbmdfSW50ZXJJbmRpYyIsCisgICAgIERldmFuYWdhcmlfSW50ZXJJbmRpYyAgPT4gIkRldmFfSW50ZXJJbmRpYyIsCisgICAgIEd1amFyYXRpX0ludGVySW5kaWMgICAgPT4gIkd1anJfSW50ZXJJbmRpYyIsCisgICAgIEd1cm11a2hpX0ludGVySW5kaWMgICAgPT4gIkd1cnVfSW50ZXJJbmRpYyIsCisgICAgIEthbm5hZGFfSW50ZXJJbmRpYyAgICAgPT4gIktuZGFfSW50ZXJJbmRpYyIsCisgICAgIExhdGluX0ludGVySW5kaWMgICAgICAgPT4gIkxhdG5fSW50ZXJJbmRpYyIsCisgICAgIE1hbGF5YWxhbV9JbnRlckluZGljICAgPT4gIk1seW1fSW50ZXJJbmRpYyIsCisgICAgIE9yaXlhX0ludGVySW5kaWMgICAgICAgPT4gIk9yeWFfSW50ZXJJbmRpYyIsCisgICAgIFRhbWlsX0ludGVySW5kaWMgICAgICAgPT4gIlRhbWxfSW50ZXJJbmRpYyIsCisgICAgIFRlbHVndV9JbnRlckluZGljICAgICAgPT4gIlRlbHVfSW50ZXJJbmRpYyIsCisgICAgIAorICAgICBIYW5fUGlueWluICAgICAgICAgICAgID0+ICRKQVZBX09OTFksCisgICAgIEthbmppX0VuZ2xpc2ggICAgICAgICAgPT4gJEpBVkFfT05MWSwKKyAgICAgS2FuamlfT25Sb21hamkgICAgICAgICA9PiAkSkFWQV9PTkxZLAorICAgICAKKyAgICAgTGF0aW5fTnVtZXJpY1BpbnlpbiAgICA9PiAiTGF0bl9OUGlueW4iLAorICAgICBUb25lX0RpZ2l0ICAgICAgICAgICAgID0+ICJUb25lX0RpZ2l0IiwKKyAgICAgSGFuX1NwYWNlZGhhbiAgICAgICAgICA9PiAiSGFuaV9TcEhhbiIsCisgICAgICk7CisKK215ICgkeCwkeCwkeCwkeCwkeCwkVEhJU19ZRUFSKSA9IGxvY2FsdGltZSgpOworJFRISVNfWUVBUiArPSAxOTAwOworCisjIEhlYWRlciBibG9ja3Mgb2YgdGV4dCB3cml0dGVuIGF0IHN0YXJ0IG9mIElDVSBvdXRwdXQgZmlsZXMKK215ICRIRUFERVIxID0gPDxFTkQ7CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDb3B5cmlnaHQgKGMpIDE5OTktJFRISVNfWUVBUiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworLy8gQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBUSElTIElTIEEgTUFDSElORS1HRU5FUkFURUQgRklMRQorRU5ECitteSAkSEVBREVSMiA9IDw8RU5EOworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRU5ECisKK215ICRUT09MID0gJDA7CisKKyMgQ29udmVydCB0aGUgaW5kZXggZmlyc3Q7IHRoaXMgdGVsbHMgdXMgd2hpY2ggcnVsZSBmaWxlcyBhcmUgaW4gdXNlLgorY29udmVydEluZGV4KCk7CisKKyMgcHJpbnQgIkluIHVzZTpcbiIsIGpvaW4oIlxuIiwgc29ydCBrZXlzKCVVU0VEX0ZJTEVTKSksICJcbiI7CisKKyMgSXRlcmF0ZSBvdmVyIGFsbCBKYXZhIFJCVCBydWxlIGZpbGVzCitmb3JlYWNoICg8JERJUi9UcmFuc2xpdGVyYXRvcl8qLnR4dD4pIHsKKyAgICBuZXh0IGlmICgvfiQvKTsgIyBJZ25vcmUgZW1hY3MgYmFja3VwcworICAgIG5leHQgaWYgKC9faW5kZXhcLnR4dCQvKTsgIyBUaGUgaW5kZXggZmlsZSB3YXMgcHJvY2Vzc2VkIGFib3ZlCisgICAgIyBTZWxlY3QgZWl0aGVyIHRoZSBjb21tYW5kLWxpbmUgYXJnLCBpZiB0aGVyZSB3YXMgb25lLCBvcgorICAgICMgYW55IGZpbGVzIG1lbnRpb25lZCBpbiB0aGUgaW5kZXguCisgICAgbXkgJGxlYWYgPSAkXzsKKyAgICAkbGVhZiA9fiBzfC4rWy9cXF18fDsKKyAgICBpZiAoKCRJRCAmJiAkbGVhZiA9fiAvJElELykgfHwgZXhpc3RzICRVU0VEX0ZJTEVTeyRsZWFmfSkgeworICAgICAgICBteSAoJG91dCwgJGlkKSA9IGNvbnZlcnRGaWxlTmFtZSgkXyk7CisgICAgICAgIGlmICgkb3V0KSB7CisgICAgICAgICAgICBpZiAoJG91dCBlcSAkSkFWQV9PTkxZKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIqKiogJGlkIHNraXBwZWQ6IEphdmEgb25seSAqKipcbiI7CisgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGUoJGlkLCAkXywgJG91dCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lmICghJElEKSB7CisgICAgICAgIHByaW50ICIqKiogJGxlYWYgc2tpcHBlZDogbm90IGluIHVzZSAqKipcbiI7CisgICAgfQorfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvbnZlcnQgYSBKYXZhIGZpbGUgbmFtZSB0byBDCisjIFBhcmFtOiBKYXZhIGZpbGUgbmFtZSBvZiB0aGUgZm9ybSBtfFRyYW5zbGl0ZXJhdG9yXyguKylcLnV0ZjhcLnR4dCR8CisjIFJldHVybjogQSBDIGZpbGUgbmFtZSAoZS5nLiwgbGRldmFuLnR4dCkgb3IgdGhlIGVtcHR5IHN0cmluZywKKyMgIGlmIHRoZXJlIGlzIG5vIG1hcHBpbmcsIG9yICRKQVZBX09OTFkgaWYgdGhlIGdpdmVuIGZpbGUgaXNuJ3QKKyMgIGludGVuZGVkIHRvIGJlIGluY29ycG9yYXRlZCBpbnRvIEMuCitzdWIgY29udmVydEZpbGVOYW1lIHsKKyAgICBsb2NhbCAkXyA9IHNoaWZ0OworICAgIG15ICRpZDsKKyAgICBpZiAobXxUcmFuc2xpdGVyYXRvcl8oLispXC51dGY4XC50eHQkfCB8fAorICAgICAgICBtfFRyYW5zbGl0ZXJhdG9yXyguKylcLnR4dCR8KSB7CisgICAgICAgICRpZCA9ICQxOworICAgIH0gZWxzZSB7IGRpZSAiQ2FuJ3QgcGFyc2UgSmF2YSBmaWxlIG5hbWUgJF8iOyB9CisgICAgaWYgKCFleGlzdHMgJE5BTUVfTUFQeyRpZH0pIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogJGlkIG5vdCBpbiBtYXA7IHBsZWFzZSB1cGRhdGUgJDBcbiI7CisgICAgICAgIHJldHVybiAnJzsKKyAgICB9CisgICAgbXkgJG91dCA9ICROQU1FX01BUHskaWR9OworICAgIGlmICgkb3V0IGVxICcnKSB7CisgICAgICAgICRvdXQgPSAkaWQ7CisgICAgfQorICAgIGlmICgkb3V0IG5lICRKQVZBX09OTFkpIHsKKyAgICAgICAgJG91dCA9ICd0XycgLiAkb3V0OworICAgIH0KKyAgICBpZiAobGVuZ3RoKCRvdXQpID4gJE1BWF9JQ1U0Q19GSUxFTkFNRV9MRU4pIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogSUNVNEMgZmlsZSBuYW1lIFwiJG91dFwiIHRvbyBsb25nOyBwbGVhc2UgdXBkYXRlICQwXG4iOworICAgICAgICByZXR1cm4gJyc7CisgICAgfQorICAgIHJldHVybiAoJG91dCwgJGlkKTsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb252ZXJ0IHRoZSBpbmRleCBmaWxlIGZyb20gSmF2YSB0byBDIGZvcm1hdAorc3ViIGNvbnZlcnRJbmRleCB7CisgICAgbXkgJEpBVkFfSU5ERVggPSAiVHJhbnNsaXRlcmF0b3JfaW5kZXgudHh0IjsKKyAgICBteSAkQ19JTkRFWCA9ICJ0cmFuc2xpdF9pbmRleC50eHQiOworICAgIG9wZW4oSkFWQV9JTkRFWCwgIiRESVIvJEpBVkFfSU5ERVgiKSBvciBkaWU7CisgICAgb3BlbihDX0lOREVYLCAiPiRPVVRESVIvJENfSU5ERVgiKSBvciBkaWU7CisgICAgCisgICAgaGVhZGVyKFwqQ19JTkRFWCwgJEpBVkFfSU5ERVgpOworICAgIAorICAgIHByaW50IENfSU5ERVggPDxFTkQ7CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBOLkIuOiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIG1lY2hhbmljYWxseSBmcm9tIHRoZQorLy8gY29ycmVzcG9uZGluZyBJQ1U0SiBmaWxlLCB3aGljaCBpcyB0aGUgbWFzdGVyIGZpbGUgdGhhdCByZWNlaXZlcworLy8gcHJpbWFyeSB1cGRhdGVzLiAgVGhlIGNvbG9uLWRlbGltaXRlZCBmaWVsZHMgaGF2ZSBiZWVuIHNwbGl0IGludG8KKy8vIHNlcGFyYXRlIHN0cmluZ3MuICBGb3IgJ2ZpbGUnIGFuZCAnaW50ZXJuYWwnIGxpbmVzLCB0aGUgZW5jb2RpbmcKKy8vIGZpZWxkIGhhcyBiZWVuIGRlbGV0ZWQsIHNpbmNlIHRoZSBlbmNvZGluZyBpcyBwcm9jZXNzZWQgYXQgYnVpbGQKKy8vIHRpbWUgaW4gSUNVNEMuICBDZXJ0YWluIGxhcmdlIHJ1bGUgc2V0cyBub3QgaW50ZW5kZWQgZm9yIGdlbmVyYWwKKy8vIHVzZSBoYXZlIGJlZW4gY29tbWVudGVkIG91dCB3aXRoIHRoZSBub3RhdGlvbiAiSmF2YSBvbmx5Ii4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordHJhbnNsaXRfaW5kZXggeworICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcklEcyB7CitFTkQKKyAgICAgICAgCisgICAgd2hpbGUgKDxKQVZBX0lOREVYPikgeworICAgICAgICAjIGlnbm9yZSBDVlMga2V5d29yZCBzdWJzdGl0dXRpb25zCisgICAgICAgIG5leHQgaWYgL1wkKFNvdXJjZXxSZXZpc2lvbnxEYXRlKS87CisKKyAgICAgICAgIyB3ZSBoYXZlIHByaW50ZWQgb3V0IHRoZSBjb3B5cmlnaHQgaW5mbyAuLi4gaWdub3JlIG9uZSBpbiBKYXZhIHZlcnNpb24KKyAgICAgICAgbmV4dCBpZiAvQ29weXJpZ2h0LyA7CisgICAgICAgIG5leHQgaWYgL0NvcnBvcmF0aW9uLzsKKworICAgICAgICAjIENvbW1lbnRzOyBjaGFuZ2UgIyB0byAvLworICAgICAgICBpZiAoc3xeKFxzKilcI3wkMS8vfCkgeworICAgICAgICAgICAgcHJpbnQgQ19JTkRFWDsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgIyBCbGFuayBsaW5lcworICAgICAgICBpZiAoIS9cUy8pIHsKKyAgICAgICAgICAgIHByaW50IENfSU5ERVg7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgICMgQ29udGVudCBsaW5lcworICAgICAgICBjaG9tcDsKKyAgICAgICAgbXkgJHByZWZpeCA9ICcnOworICAgICAgICAjcmVwbGFjZSBccCB3aXRoIFxccAorICAgICAgICAkXz1+IHMvXFxwL1xcXFxwL2c7CisgICAgICAgIG15IEBhID0gc3BsaXQoJzonLCAkXyk7CisgICAgICAgIGlmICgkYVsxXSBlcSAnZmlsZScgfHwgJGFbMV0gZXEgJ2ludGVybmFsJykgeworICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSBmaWxlIG5hbWUKKyAgICAgICAgICAgIG15ICRpZDsKKyAgICAgICAgICAgICMgUmVjb3JkIGZpbGUgbmFtZXMgaW4gdXNlCisgICAgICAgICAgICAkVVNFRF9GSUxFU3skYVsyXX0gPSAxOworICAgICAgICAgICAgKCRhWzJdLCAkaWQpID0gY29udmVydEZpbGVOYW1lKCRhWzJdKTsKKyAgICAgICAgICAgIGlmICgkYVsyXSBlcSAkSkFWQV9PTkxZKSB7CisgICAgICAgICAgICAgICAgJHByZWZpeCA9ICcvLyBKYXZhIG9ubHk6ICc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgRGVsZXRlIHRoZSBlbmNvZGluZyBmaWVsZAorICAgICAgICAgICAgc3BsaWNlKEBhLCAzLCAxKTsKKyAgICAgICAgfSBlbHNpZiAoJGFbMV0gZXEgJ2FsaWFzJykgeworICAgICAgICAgICAgIyBQYWQgb3V0IHdpdGggZXh0cmEgYmxhbmsgZmllbGRzIHRvIG1ha2UgdGhlCisgICAgICAgICAgICAjIDItZCBhcnJheSBzcXVhcmUKKyAgICAgICAgICAgIHB1c2ggQGEsICIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZSAkXyI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgQ19JTkRFWAorICAgICAgICAgICAgJHByZWZpeCwgInsgIiwKKyAgICAgICAgICAgIGpvaW4oIiwgIiwgbWFwKCJcIiRfXCIiLCBAYSkpLAorICAgICAgICAgICAgIiB9LFxuIjsKKyAgICB9CisKKyAgICBwcmludCBDX0lOREVYIDw8RU5EOworICB9Cit9CitFTkQKKworICAgIGNsb3NlKENfSU5ERVgpOworICAgIGNsb3NlKEpBVkFfSU5ERVgpOworICAgIHByaW50IFNUREVSUiAiJEpBVkFfSU5ERVggLT4gJENfSU5ERVhcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgT3V0cHV0IGEgaGVhZGVyCisjIFBhcmFtOiBGaWxlaGFuZGxlCitzdWIgaGVhZGVyIHsKKyAgICBteSAkb3V0ID0gc2hpZnQ7CisgICAgbXkgJGluID0gc2hpZnQ7CisgICAgcHJpbnQgJG91dCAkSEVBREVSMTsKKyAgICBwcmludCAkb3V0ICIvLyBUb29sOiAkVE9PTFxuLy8gU291cmNlOiAkaW5cbiI7CisgICAgcHJpbnQgJG91dCAiLy8gRGF0ZTogIiwgc2NhbGFyIGxvY2FsdGltZSwgIlxuIjsKKyAgICBwcmludCAkb3V0ICRIRUFERVIyOworICAgIHByaW50ICRvdXQgIlxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBQcm9jZXNzIG9uZSBmaWxlCisjIFBhcmFtOiBJRCwgZS5nLiBGdWxsd2lkdGgtSGFsZndpZHRoCisjIFBhcmFtOiBKYXZhIGlucHV0IGZpbGUgbmFtZSwgZS5nLgorIyAgZjovaWN1NGovc3JjL2NvbS9pYm0vdGV4dC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfRnVsbHdpZHRoX0hhbGZ3aWR0aC51dGY4LnR4dAorIyBQYXJhbTogSUNVIG91dHB1dCBmaWxlIG5hbWUsIGUuZy4gZnVsbGhhbGYKK3N1YiBmaWxlIHsKKyAgICBteSAkaWQgPSBzaGlmdDsKKyAgICBteSAkSU4gPSBzaGlmdDsKKyAgICBteSAkb3V0ID0gc2hpZnQ7CisKKyAgICBteSAkT1VUID0gIiRvdXQudHh0IjsKKworICAgICMgU2hvdyBpbnB1dCBzaXplLiBTaG93IG91dHB1dCBzaXplIGxhdGVyIC0tIHVzZWZ1bCBmb3IgcXVpY2sgc2FuaXR5IGNoZWNrLgorICAgIHByaW50ICIkaWQgKCIsIC1zICRJTiwgIikgLT4gJE9VVCAoIjsKKworICAgICMgT3BlbiBmaWxlLCB3cml0ZSBVVEY4IG1hcmtlciwgY2xvc2UgaXQsIGFuZCByZW9wZW4gaW4gdGV4dCBtb2RlCisgICAgb3BlbihPVVQsICI+JE9VVERJUi8kT1VUIikgb3IgZGllOworICAgIGJpbm1vZGUgT1VUOyAgICAgICAgIyBNdXN0IGRvIHRoaXMgc28gd2UgY2FuIHdyaXRlIG91ciBVVEY4IG1hcmtlcgorICAgIHByaW50IE9VVCBwYWNrKCJDMyIsIDB4RUYsIDB4QkIsIDB4QkYpOyAjIFdyaXRlIFVURjggbWFya2VyCisgICAgY2xvc2UoT1VUKTsKKworICAgIG9wZW4oT1VULCAiPj4kT1VURElSLyRPVVQiKSBvciBkaWU7CisgICAgcHJpbnQgT1VUICIgLy8gLSotIENvZGluZzogdXRmLTg7IC0qLVxuIjsKKworICAgIGhlYWRlcihcKk9VVCwgJElOKTsKKyAgICBwcmludCBPVVQgIi8vICRpZFxuIjsKKyAgICBwcmludCBPVVQgIlxuIjsKKyAgICBwcmludCBPVVQgIiRvdXQge1xuIjsKKyAgICBwcmludCBPVVQgIiAgUnVsZSB7XG4iOworCisgICAgb3BlbihJTiwgJElOKSBvciBkaWU7CisgICAgYmlubW9kZSBJTjsgICAgICAgICAgICAgICAgICMgSU4gaXMgYSBVVEY4IGZpbGUKKworICAgIG15ICRmaXJzdCA9IDE7CisgICAgbXkgJEJPTSA9IHBhY2soIkMzIiwgMjM5LCAxODcsIDE5MSk7ICMgYSBVVEY4IGJ5dGUgb3JkZXIgbWFyaworCisgICAgIyBQcm9jZXNzIGVhY2ggbGluZSBieSBjaGFuZ2luZyAjIGNvbW1lbnRzIHRvIC8vIGNvbW1lbnRzCisgICAgIyBhbmQgdGFraW5nIG90aGVyIHRleHQgYW5kIGVuY2xvc2luZyBpdCBpbiBkb3VibGUgcXVvdGVzCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgbXkgJHJhdyA9ICRfOworICAgICAgICAjIGlnbm9yZSBDVlMga2V5d29yZCBzdWJzdGl0dXRpb25zCisgICAgICAgIG5leHQgaWYgL1wkKFNvdXJjZXxSZXZpc2lvbnxEYXRlKS87CisKKyAgICAgICAgIyB3ZSBoYXZlIHByaW50ZWQgb3V0IHRoZSBjb3B5cmlnaHQgaW5mbyAuLi4gaWdub3JlIG9uZSBpbiBKYXZhIHZlcnNpb24KKyAgICAgICAgbmV4dCBpZiAvQ29weXJpZ2h0LyA7CisgICAgICAgIG5leHQgaWYgL0NvcnBvcmF0aW9uLzsKKworICAgICAgICAjIExvb2sgZm9yIGFuZCBkZWxldGUgQk9NCisgICAgICAgIGlmICgkZmlyc3QpIHsKKyAgICAgICAgICAgIHMvXiRCT00vLzsKKyAgICAgICAgICAgICRmaXJzdCA9IDA7CisgICAgICAgIH0KKworICAgICAgICAjIENsZWFuIHRoZSBlb2wganVuayB1cAorICAgICAgICBzL1tceDBEXHgwQV0rJC8vOworCisgICAgICAgICMgSWYgdGhlcmUgaXMgYSB0cmFpbGluZyBiYWNrc2xhc2gsIHRoZW4gZGVsZXRlIGl0IC0tIHdlIGRvbid0CisgICAgICAgICMgbmVlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiBDLCBzaW5jZSBhZGphY2VudCBzdHJpbmdzIGFyZQorICAgICAgICAjIGNvbmNhdGVuYXRlZC4gIENvdW50IHRyYWlsaW5nIGJhY2tzbGFzaGVzOyBpZiB0aGV5IGFyZSBvZGQsCisgICAgICAgICMgb25lIGlzIHRyYWlsaW5nLgorICAgICAgICBpZiAobXwoXFwrKSR8KSB7CisgICAgICAgICAgICBpZiAoKGxlbmd0aCgkMSkgJSAyKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3xcXCR8fDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgVHJhbnNmb3JtIGVzY2FwZWQgY2hhcmFjdGVycworICAgICAgICBoaWRlRXNjYXBlcygpOworCisgICAgICAgIGlmICgvXihccyopKFwjLiopJC8pIHsKKyAgICAgICAgICAgICMgQ29tbWVudC1vbmx5IGxpbmUKKyAgICAgICAgICAgIG15ICgkd2hpdGUsICRjbXQpID0gKCQxLCAkMik7CisgICAgICAgICAgICAkY210ID1+IHN8XCN8Ly98OworICAgICAgICAgICAgJF8gPSAkd2hpdGUgLiAkY210OworCisgICAgICAgIH0gZWxzaWYgKCEvXFMvKSB7CisgICAgICAgICAgICAjIEJsYW5rIGxpbmUgLS0gbGVhdmUgYXMtaXMKKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIyBSZW1vdmUgc2luZ2xlLXF1b3RlZCBtYXR0ZXIgCisgICAgICAgICAgICBteSBAcXVvdGVzOworICAgICAgICAgICAgbXkgJG5xdW90ZXMgPSAwOworICAgICAgICAgICAgbXkgJHggPSAkXzsKKyAgICAgICAgICAgIHdoaWxlIChzL14oW15cJ10qKShcJ1teXCddKlwnKS8kMTw8eCRucXVvdGVzPj4vKSB7CisgICAgICAgICAgICAgICAgcHVzaCBAcXVvdGVzLCAkMjsKKyAgICAgICAgICAgICAgICArKyRucXVvdGVzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIEV4dHJhY3QgY29tbWVudAorICAgICAgICAgICAgbXkgJGNtdCA9ICcnOworICAgICAgICAgICAgaWYgKHN8XCMoLiopfHwpIHsKKyAgICAgICAgICAgICAgICAkY210ID0gJy8vJyAuICQxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIEFkZCBxdW90ZXMKKyAgICAgICAgICAgIHN8XihccyopKFxTLio/KShccyopJHwkMVwiJDJcIiQzfDsKKworICAgICAgICAgICAgIyBSZXN0b3JlIHNpbmdsZS1xdW90ZWQgbWF0dGVyCisgICAgICAgICAgICBmb3IgKG15ICRpPTA7ICRpPCRucXVvdGVzOyArKyRpKSB7CisgICAgICAgICAgICAgICAgc3w8PHgkaT4+fCRxdW90ZXNbJGldfDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIyBSZXN0b3JlIGNvbW1lbnQKKyAgICAgICAgICAgICRfIC49ICRjbXQ7CisgICAgICAgIH0KKworICAgICAgICAjIFJlc3RvcmUgZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgICAgIHJlc3RvcmVFc2NhcGVzKCk7CisKKyAgICAgICAgcHJpbnQgT1VUICRfLCAiXG4iOworICAgIH0KKworICAgICMgRmluaXNoIHVwCisgICAgY2xvc2UoSU4pOworICAgIHByaW50IE9VVCAiICB9XG4iOworICAgIHByaW50IE9VVCAifVxuIjsKKyAgICBjbG9zZShPVVQpOworCisgICAgIyBXcml0ZSBvdXRwdXQgZmlsZSBzaXplIGZvciBzYW5pdHkgY2hlY2sKKyAgICBwcmludCAtcyAiJE9VVERJUi8kT1VUIiwgIilcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3N1YiBoaWRlRXNjYXBlcyB7CisgICAgIyBUcmFuc2Zvcm0gZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgc3xcXFxcfDw8YnM+PnxnOyAjIERPIFRISVMgRklSU1QgVHJhbnNmb3JtIGJhY2tzbGFzaGVzCisgICAgc3xcXHUoW2EtekEtWjAtOV17NH0pfDw8dSQxPj58ZzsgIyBUcmFuc2Zvcm0gVW5pY29kZSBlc2NhcGVzCisgICAgc3xcXFwifDw8ZHE+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggZG91YmxlIHF1b3RlCisgICAgc3xcXFwnfDw8c3E+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggc2luZ2xlIHF1b3RlCisgICAgc3xcXFwjfDw8bGI+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggcG91bmQKKyAgICBzfFxcKC4pfDw8cSQxPj58ZzsgIyBUcmFuc2Zvcm0gYmFja3NsYXNoIGVzY2FwZXMKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworc3ViIHJlc3RvcmVFc2NhcGVzIHsKKyAgICAjIFJlc3RvcmUgZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgc3w8PGJzPj58XFxcXHxnOworICAgIHN8PDxkcT4+fFxcXFxcXFwifGc7CisgICAgc3w8PHNxPj58XFxcXFxcXCd8ZzsKKyAgICBzfDw8bGI+PnxcXFxcXFxcI3xnOworICAgIHN8PDxxKC4pPj58XFxcXFxcJDF8ZzsKKyAgICBzfDw8dTAwMDA+PnxcXFxcdTAwMDB8ZzsgIyBEb3VibGUgZXNjYXBlIFUrMDAwMAorICAgIHN8PDx1KC4uLi4pPj58XFx1JDF8ZzsKK30KKworX19FTkRfXworOmVuZG9mcGVybApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODExMzEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5iYXQKQEAgLTAsMCArMSwxMjEgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworQHJlbSA9ICctLSotUGVybC0qLS0KK0BlY2hvIG9mZgoraWYgIiVPUyUiID09ICJXaW5kb3dzX05UIiBnb3RvIFdpbk5UCitwZXJsIC1XIC14IC1TICIlMCIgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKK2dvdG8gZW5kb2ZwZXJsCis6V2luTlQKK3BlcmwgLVcgLXggLVMgIiUwIiAlKgoraWYgTk9UICIlQ09NU1BFQyUiID09ICIlU3lzdGVtUm9vdCVcc3lzdGVtMzJcY21kLmV4ZSIgZ290byBlbmRvZnBlcmwKK2lmICVlcnJvcmxldmVsJSA9PSA5MDA5IGVjaG8gWW91IGRvIG5vdCBoYXZlIFBlcmwgaW4geW91ciBQQVRILgorZ290byBlbmRvZnBlcmwKK0ByZW0gJzsKKyMhcGVybAorI2xpbmUgMTQKKworIyBUaGlzIHBlcmwgc2NyaXB0IHVwZGF0ZXMgdGhlIGZpbHRlcnMgaW4gdGhlIHRyYW5zbGl0ZXJhdG9yIGluZGV4IGZpbGUuCisjIEl0IGRvZXMgc28gaW4gYSBkdW1iIHdheToKKyMKKyMgIExhdGluLVggICBORkQgbG93ZXIKKyMgIFgtTGF0aW4gICBORkQKKyMKKyMgRm9yIHRyYW5zbGl0ZXJhdG9ycyB1c2luZyBORktELCBvciBub3QgdXNpbmcgTG93ZXIgaW4gdGhpcyB3YXksIHlvdQorIyB3aWxsIGhhdmUgdG8gaGFuZC1lZGl0IHRoZSBpbmRleCBmaWxlLgorIworIyBUaGlzIHNjcmlwdCB3cml0ZXMgYSBuZXcgaW5kZXggZmlsZS4gIFRoZSBuZXcgZmlsZSBoYXMgdG8gdGhlbiBiZQorIyBoYW5kLWVkaXRlZCBhbmQgY2hlY2tlZCBiZWZvcmUgdXNlOyBpdCBjb250YWlucyBjb21tZW50cyBpbmRpY2F0aW5nCisjIG9sZCBsaW5lcyB0aGF0IHdlcmUgcmVwbGFjZWQuCisjCisjIEFsYW4gTGl1IDExLzI5LzAxCisKK3VzZSBHZXRvcHQ6Okxvbmc7CisKK215ICRESVIgPSAiLi4vLi4vdGV4dC9yZXNvdXJjZXMiOworbXkgJENMQVNTRVMgPSAiLi4vLi4vLi4vLi4vLi4vY2xhc3NlcyI7CisKKyNHZXRPcHRpb25zKCdkaXI9cycgPT4gXCRESVIsCisjICAgICAgICAgICAnaWQ9cycgPT4gXCRJRCwKKyMgICAgICAgICAgICc8PicgPT4gXCZ1c2FnZSkgfHwgZGllOworCisjdXNhZ2UoKSBpZiAoQEFSR1YpOworCisjJElEID1+IHMvLS9fLzsKK2lmICghIC1kICRESVIpIHsKKyAgICBwcmludCBTVERFUlIgIiRESVIgaXMgbm90IGEgZGlyZWN0b3J5XG4iOworICAgIHVzYWdlKCk7Cit9CisKKyNzdWIgdXNhZ2UgeworIyAgICBteSAkbWUgPSAkMDsKKyMgICAgJG1lID1+IHN8LitbL1xcXXx8OworIyAgICBwcmludCAiVXNhZ2U6ICRtZSBbLWRpciA8ZGlyPl0gWy1pZCA8aWQ+XVxuIjsKKyMgICAgcHJpbnQgIiAtLWRpciA8ZGlyPiBTcGVjaWZ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiI7CisjICAgIHByaW50ICIgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JfKi50eHQgZmlsZXNcbiI7CisjICAgIHByaW50ICIgLS1pZCA8aWQ+ICAgU3BlY2lmeSBhIHNpbmdsZSBJRCB0byB0cmFuc2Zvcm0sIGUuZy5cbiI7CisjICAgIHByaW50ICIgICAgICAgICAgICAgRnVsbHdpZHRoLUhhbGZ3aWR0aFxuIjsKKyMgICAgZGllOworI30KKworY29udmVydEluZGV4KCk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29udmVydCB0aGUgaW5kZXggZmlsZSBmcm9tIEphdmEgdG8gQyBmb3JtYXQKKyMgQXNzdW1lIGxpbmVzIGFyZSBvZiB0aGUgZm9ybToKKyMgICA8SUQ+OmFsaWFzOjxGSUxURVI+OzxSRU1BSU5ERVI+CisjIDxSRU1BSU5ERVI+IGNhbiBiZQorIyAgIExvd2VyO05GWDsuLi4KKyMgICBORlg7TG93ZXI7Li4uCisjICAgTkZYOy4uLgorc3ViIGNvbnZlcnRJbmRleCB7CisgICAgJElOID0gIlRyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dCI7CisgICAgJE9VVCA9ICIkSU4ubmV3IjsKKyAgICBvcGVuKElOLCAiJERJUi8kSU4iKSBvciBkaWU7CisgICAgb3BlbihPVVQsICI+JERJUi8kT1VUIikgb3IgZGllOworICAgIAorICAgIHdoaWxlICg8SU4+KSB7CisgICAgICAgICMgTG9vayBmb3IgbGluZXMgdGhhdCBhcmUgYWxpYXNlcyB3aXRoIE5GKgorICAgICAgICBpZiAoL14oW146XSspOmFsaWFzOihcWy4rPyk7XHMqKChORlteXHNdKj8pXHMqOy4rKSQvaSkgeworICAgICAgICAgICAgbXkgJGlkID0gJDE7CisgICAgICAgICAgICBteSAkb2xkc2V0ID0gJDI7CisgICAgICAgICAgICBteSAkcmVtYWluZGVyID0gJDM7CisgICAgICAgICAgICBteSAkTkZYRCA9ICQ0OworICAgICAgICAgICAgbXkgJGxvd2VyID0gJyc7CisgICAgICAgICAgICAjIENoZWNrIGZvciBMb3dlcgorICAgICAgICAgICAgIyBJZiBpdCBjb21lcyBiZWZvcmUgTkYqIHRoZW4gYWRqdXN0IGFjY29yZGluZ2x5CisgICAgICAgICAgICBpZiAoL14oW146XSspOmFsaWFzOihcWy4rPyk7XHMqKExvd2VyXHMqOy4rKSQvaSkgeworICAgICAgICAgICAgICAgICRsb3dlciA9ICdsb3dlcic7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCgkMikgPCBsZW5ndGgoJG9sZHNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgJG9sZHNldCA9ICQyOworICAgICAgICAgICAgICAgICAgICAkcmVtYWluZGVyID0gJDM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgU1RERVJSICIkaWQgJE5GWEQgJGxvd2VyXG4iOworICAgICAgICAgICAgbXkgJHNldCA9IGdldFNvdXJjZVNldCgkaWQsICRORlhELCAkbG93ZXIpOworICAgICAgICAgICAgJF8gPSAiJGlkOmFsaWFzOiRzZXQ7JHJlbWFpbmRlclxuIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCBPVVQ7CisgICAgfQorCisgICAgY2xvc2UoSU4pOworICAgIGNsb3NlKE9VVCk7CisgICAgcHJpbnQgU1RERVJSICJXcm90ZSAkRElSLyRPVVRcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgR2V0IHRoZSBzb3VyY2Ugc2V0IChjYWxsIG91dCB0byBKYXZhKSwgb3B0aW9uYWxseSB3aXRoIGEgY2xvc3VyZS4KK3N1YiBnZXRTb3VyY2VTZXQgeworICAgIG15ICRJRCA9IHNoaWZ0OworICAgIG15ICRORlhEID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyID0gc2hpZnQ7CisgICAgbXkgJHNldCA9IGBqYXZhIC1jbGFzc3BhdGggJENMQVNTRVMgY29tLmlibS50b29scy50cmFuc2xpdC5nZW5JbmRleEZpbHRlcnMgJElEICRORlhEICRsb3dlcmA7CisgICAgY2hvbXAoJHNldCk7CisgICAgJHNldDsKK30KKworX19FTkRfXworOmVuZG9mcGVybApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhOTZkM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEKQEAgLTAsMCArMSw2OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMjkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEFkanVuY3QgY2xhc3MgdG8gZ2V0SW5kZXhGaWx0ZXJzLmJhdC4gIEp1c3QgZ2VuZXJhdGVzIHNvdXJjZSBzZXRzCisgKiBhbmQgdGhlaXIgY2xvc3VyZXMuCisgKgorICogVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdCisgKgorICogICBqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5nZW5JbmRleEZpbHRlcnMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF0aW4tR3JlZWsgTkZEIGxvd2VyCisgKgorICogVGhlICdORkQnfCdORktEJyBhbmQgJ2xvd2VyJyBhcmdzIGFyZSBvcHRpb25hbCwgYnV0ICdsb3dlcicgY2FuCisgKiBvbmx5IGJlIHNwZWNpZmllZCBpZiAnTkZEJyBvciAnTkZLRCcgaXMuCisgKgorICogRE8gTk9UIENIQU5HRSBPVVRQVVQgRk9STUFULiAgVGhpcyB0b29sJ3Mgb3V0cHV0IGlzIHJlYWQgYnkgYSBQZXJsCisgKiBzY3JpcHQuCisgKi8KK3B1YmxpYyBjbGFzcyBnZW5JbmRleEZpbHRlcnMgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0gPSBOb3JtYWxpemVyLk5PTkU7CisgICAgICAgIGJvb2xlYW4gbG93ZXJGaXJzdCA9IGZhbHNlOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikgeworICAgICAgICAgICAgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZEIikpIHsKKyAgICAgICAgICAgICAgICBtID0gTm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZLRCIpKSB7CisgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZLRDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMykgeworICAgICAgICAgICAgaWYgKGFyZ3NbMl0uZXF1YWxzSWdub3JlQ2FzZSgibG93ZXIiKSkgeworICAgICAgICAgICAgICAgIGxvd2VyRmlyc3QgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDMpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgc2hvd1NvdXJjZVNldChhcmdzWzBdLCBtLCBsb3dlckZpcnN0KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzaG93U291cmNlU2V0KFN0cmluZyBJRCwgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXQgPSB0LmdldFNvdXJjZVNldCgpOworICAgICAgICBpZiAobSAhPSBOb3JtYWxpemVyLk5PTkUgfHwgbG93ZXJGaXJzdCkgeworICAgICAgICAgICAgVW5pY29kZVNldENsb3N1cmUuY2xvc2Uoc291cmNlU2V0LCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3MjkzYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMuYmF0CkBAIC0wLDAgKzEsMjEgQEAKK1JFTSAvKioKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorUkVNICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gKi8KKworQGVjaG8gb2ZmCitSRU0gVGhpcyBzY3JpcHQgaXMgYSBXaW5kb3dzIGxhdW5jaGVyIGZvciB0aGUgaW5kaWMucGwgc2NyaXB0LiAgRm9yIHRoaXMKK1JFTSB0byB3b3JrLCB0aGUgcGVybCBleGVjdXRhYmxlIG11c3QgYmUgb24gdGhlIHBhdGguICBXZSByZWNvbW1lbmQKK1JFTSB0aGUgQWN0aXZlU3RhdGUgYnVpbGQ7IHNlZSBodHRwOi8vd3d3LmFjdGl2ZXN0YXRlLmNvbS4gIFNlZSB0aGUKK1JFTSB0ei5wbCBzY3JpcHQgaXRzZWxmIGZvciBtb3JlIGRvY3VtZW50YXRpb24uCisKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAtdyAteCBpbmRpYy5wbCAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmQKKzpXaW5OVAorcGVybCAtdyAteCBpbmRpYy5wbCAlKgoraWYgTk9UICIlQ09NU1BFQyUiID09ICIlU3lzdGVtUm9vdCVcc3lzdGVtMzJcY21kLmV4ZSIgZ290byBlbmQKK2lmICVlcnJvcmxldmVsJSA9PSA5MDA5IGVjaG8gWW91IGRvIG5vdCBoYXZlIFBlcmwgaW4geW91ciBQQVRILgorOmVuZApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkNjE0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMucGwKQEAgLTAsMCArMSw2NjIgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworCisjIXBlcmwKKworIyBVc2FnZSAtICQwIDxyZW1hcCBmaWxlPgorIyAgZS5nLiAtIGluZGljIGluZGljLnR4dAorIyBUaGUgaW5wdXQgZmlsZSBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIFVuaWNvZGUgZGF0YSBmaWxlIGNvbnRhaW5pbmcKKyMgdGhlIGJsb2NrcyBvZiBpbnRlcmVzdC4KKyMKKyMgVGhlIHJlbWFwIGZpbGUgc2hvdWxkIGhhdmUgbGluZXMgb2YgdGhlIGZvcm0KKyMgIlx1MEQwMT5cdTBEMDI7IgorIyBpbmNsdWRpbmcgdGhlIHF1b3Rlcy4gIFRoZXNlIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgc2F5aW5nIHRoYXQgdGhlCisjIHVuZGVmaW5lZCBjb2RlIHBvaW50IFUrRDAxIChkZXJpdmVkIHZpYSBtYXBwaW5nIGZyb20gSW50ZXJJbmRpYykKKyMgY2FuIGJlIHJlbWFwcGVkIHRvIFUrRDAyLgorIyAKKyMgVGhlIHB1cnBvc2Ugb2YgdGhpcyBzY3JpcHQgaXMgdG8gcHJvY2VzcyB0aGUgSW5kaWMgc2NyaXB0IGRhdGEgaW50bworIyBhIGZvcm0gdXNhYmxlIGJ5IHRoZSBJbmRpY1RyYW5zbGl0ZXJhdG9yLCB0aGF0IGlzLCB0aGUgSW5kaWMtSW5kaWMKKyMgdHJhbnNsaXRlcmF0b3IuICBUaGUgdHJhbnNsaXRlcmF0b3IgbmVlZHMgdHdvIHRoaW5nczogQSBtYXBwaW5nIG9mCisjIHRoZSBjb2RlIHBvaW50cyBpbiBjb21tb24sIGFuZCBhIGxpc3Qgb2YgdGhlIGV4Y2VwdGlvbnMuCisKKyMgQXNzdW1lIHdlIGFyZSBsb2NhdGVkIGluIGljdTRqL3NyYy9jb20vaWJtL3Rvb2xzL3RyYW5zbGl0Ly4KKyMgV2Ugd2FudCB0aGUgVW5pY29kZSBEQiBpbiBpY3U0ai9zcmMvZGF0YS91bmljb2RlLy4KKyRVTklDT0RFX0RCID0gIi4uLy4uLy4uLy4uL2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQiOworJEVYQ0VQVElPTlNfRklMRSA9IHNoaWZ0OworCisjIEFzc3VtZSB3ZSBhcmUgbG9jYXRlZCBpbiBpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC8uCisjIFdlIHdhbnQgdG8gb3V0cHV0IGZpbGVzIHRvIGljdTRqL3NyYy9jb20vaWJtL3RleHQvcmVzb3VyY2VzLy4KKyMgT3V0cHV0IGRpcmVjdG9yeQorJE9VVERJUiA9ICIuLi8uLi90ZXh0L3Jlc291cmNlcyI7CisKKyMgVGhlIHRlbXBsYXRlIGZpbGUgc2hvdWxkIGNvbnRhaW4gamF2YSBjb2RlIHRoYXQgY2FuIGJlIHVzZWQKKyMgdG8gZ2VuZXJhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgcmVzb3VyY2UgZmlsZXMuICBUaGUgdGVtcGxhdGUKKyMgc2hvdWxkIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBlbWJlZGRlZCBzeW1ib2xzLCB3aGljaCB0aGlzIHNjcmlwdAorIyB3aWxsIHJlcGxhY2U6CisjICRUT09MIC0gbmFtZSBvZiBnZW5lcmF0aW5nIHRvb2wKKyMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyMgJFNDUklQVEZST00gLSBuYW1lIG9mIHNvdXJjZSBzY3JpcHQKKyMgJFNDUklQVFRPIC0gbmFtZSBvZiB0YXJnZXQgc2NyaXB0CisjICRSVUxFUyAtIHJ1bGVzCiskUkJUX1RFTVBMQVRFID0gJ3JidFRlbXBsYXRlLnR4dCc7CisKKyMgTmFtZSBvZiB0aGlzIHRvb2wgaW4gZ2VuZXJhdGVkIFJCVCBmaWxlcworJFJCVF9HRU5fVE9PTCA9ICdpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC9pbmRpYy5wbCc7CisKKyREVU1QID0gMDsgIyBJZiAxLCBkdW1wIG91dCBpbnRlcm5hbCBkYXRhCisKKyRET19IRVVSSVNUSUNfUkVNQVAgPSAwOyAjIElmIDEsIGRvIGF1dG9tYXRpYyBoZXVyaXN0aWMgcmVtYXBwaW5nCiskRE9fREVDT01QX1JFTUFQID0gMDsgIyBJZiAxLCBkbyBkZWNvbXAgcmVtYXBwaW5nCisKK29wZW4oVU5JQ09ERV9EQik7Cit3aGlsZSAoPFVOSUNPREVfREI+KSB7CisgICAgbmV4dCBpZiAobXxeMFswLThdfCk7ICMgU2tpcCB1cCB0byBEZXZhbmFnYXJpIGJsb2NrICgwOTAwKQorICAgIGxhc3QgaWYgKG18XjBEWzgtRl18aSk7ICMgQmFpbCBvdXQgYWZ0ZXIgTWFsYXlhbSBibG9jayAoMEQwMCkKKyAgICAjIDBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworICAgIG15IEBkYXRhID0gc3BsaXQoLzsvKTsKKyAgICBteSAkZnVsbENvZGUgPSBoZXgoJGRhdGFbMF0pOyAjIGUuZy4sIDB4MDkzRgorICAgIG15ICRjb2RlID0gJGZ1bGxDb2RlICYgMHg3RjsgIyBlLmcuLCAweDNGCisgICAgbXkgKCRzY3JpcHQsICRuYW1lKSA9ICgkZGF0YVsxXSA9fiAvKFx3KylccysoLispLyk7CisgICAgZGllICJDYW4ndCBwYXJzZSAkXyIgdW5sZXNzICgkbmFtZSk7CisgICAgIyBlLmcuLCAkY29kZS8kc2NyaXB0LyRuYW1lID0gM0YvTUFMQVlBTEFNL1ZPV0VMIFNJR04gSQorCisgICAgIyBUaXRsZWNhc2UgdGhlIHNjcmlwdAorICAgICRzY3JpcHQgPSB1Y2ZpcnN0KGxjKCRzY3JpcHQpKTsKKworICAgICMgRml4IGEgY291cGxlIGluY29uc2lzdGVuY2llcyBpbiB0aGUgMy4wIGRhdGEKKyAgICAjIFJFVklTSVQ6IElzIHRoaXMgb2theSB0byBkbz8KKyAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICBpZiAoJHNjcmlwdCBlcSAnR3VqYXJhdGknICYmICRjb2RlID49IDUgJiYgJGNvZGUgPD0gMHgxNCkgeworICAgICAgICAgICAgJG5hbWUgPX4gcy9eVk9XRUwvTEVUVEVSLzsKKyAgICAgICAgfQorICAgIH0KKworICAgICMgS2VlcCB0cmFjayBvZiBhbGwgc2NyaXB0IG5hbWVzIHdlIGVuY291bnRlci4gIFdlIGFsc28gbm90ZSB0aGUKKyAgICAjIGJhc2Ugb2YgdGhlIGJsb2NrLgorICAgIG15ICRiYXNlID0gJGZ1bGxDb2RlICYgfjB4N0Y7ICMgZS5nLiwgMHg5MDA7CisgICAgaWYgKGV4aXN0cyAkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0pIHsKKyAgICAgICAgZGllICJTY3JpcHQgYmFzZSBtaXNtYXRjaCBmb3IgJHNjcmlwdDogJGJhc2UgdnMuICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSIKKyAgICAgICAgICAgIGlmICgkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0gbmUgJGJhc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSA9ICRiYXNlOworICAgIH0KKworICAgICMgQnVpbGQgdXAgYSBtYXBwaW5nIGJ5IG5hbWUuICBGb3IgZWFjaCBuYW1lLCBrZWVwIGEgaGFzaCBrZXllZCBieQorICAgICMgY29kZSBwb2ludC4gIEZvciBlYWNoIGNvZGUgcG9pbnQsIGtlZXAgYW4gYXJyYXkgb2Ygc2NyaXB0IG5hbWVzLgorICAgICMgQWxzbyBrZWVwIGEgdG90YWwgdXNlIGNvdW50IGZvciBlYWNoIG5hbWUuCisgICAgcHVzaCBAeyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17JGNvZGV9fSwgJHNjcmlwdDsKKyAgICArKyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17Y291bnR9OworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAjICRTQ1JJUFRfTkFNRV9UT19DT0RFezxzY3JpcHQ+fXs8bmFtZT59ID0gPGNvZGU+CisgICAgIyBvciB1bmRlZiBpZiB0aGVyZSBpcyBubyBtYXBwaW5nLgorICAgICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3JpcHR9eyRuYW1lfSA9ICRjb2RlOworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyaXB0fXskY29kZX0gPSAkbmFtZTsKKworICAgICMgQW5kIGEgbWFwIGZyb20gdGhlIGZ1bGxDb2RlIHBvaW50IHRvIHRoZSBuYW1lCisgICAgJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSA9ICRuYW1lOworCisgICAgIyBNYXAgY29kZSAoMC4uN0YpIHRvIG5hbWUuICBUaGlzIGlzIHVzdWFsbHkgYSAxLTEgbWFwcGluZywgYnV0CisgICAgIyBpcyAxLW4gaW4gYSBmZXcgY2FzZXMuCisgICAgaWYgKGV4aXN0cyAkQ09ERV9UT19OQU1FeyRjb2RlfSkgeworICAgICAgICBpZiAoJG5hbWUgbmUgJENPREVfVE9fTkFNRXskY29kZX0pIHsKKyAgICAgICAgICAgICMgRm9yIG11bHRpcGxlIG5hbWVzIG9uIGEgY29kZSBvZmZzZXQsIHVzZSB0aGUgZm9ybWF0CisgICAgICAgICAgICAjIChhL2IpLCAoYS9iL2MpLCBldGMuCisgICAgICAgICAgICBsb2NhbCAkXyA9ICRDT0RFX1RPX05BTUV7JGNvZGV9OworICAgICAgICAgICAgaWYgKG18XlwofCkgeworICAgICAgICAgICAgICAgIGlmICghbXxbXChcKS9dJG5hbWVbXChcKS9dfCkgeworICAgICAgICAgICAgICAgICAgICBzfFwpJHwvJG5hbWVcKXw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkXyA9ICIoJF8vJG5hbWUpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRDT0RFX1RPX05BTUV7JGNvZGV9ID0gJF87CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSA9ICRuYW1lOworICAgIH0KK30KK2Nsb3NlKFVOSUNPREVfREIpOworCisjIFJlYWQgYW5kIHBhcnNlIHRoZSBtYW51YWwgcmVtYXBwaW5nIGZpbGUuICBUaGlzIGNvbnRhaW5zIGxpbmVzCisjIG9mIHRoZSBmb3JtOgorCisjIHwiXHUwOTU2Plx1MDk0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBEZXZhbmFnYXJpIFZvd2VsIFNpZ24gQUkgCisKKyMgVGhlIGxlZnQgaGFuZCBzaWRlIGNvbnRhaW5zIGEgbm9uLWV4aXN0ZW50IGZ1bGwgY29kZSB2YWx1ZS4gIEl0CisjIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZS4gIFRoZSByaWdodCBoYW5kIHNpZGUgY29udGFpbnMgb25lIG9yIG1vcmUKKyMgcmVhbCBmdWxsIGNvZGUgdmFsdWVzLiAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIGEgbWFwcGluZyBmcm9tIGFub3RoZXIKKyMgc2NyaXB0IGVuZHMgdXAgYXQgdGhlIG5vbi1leGlzdGVudCBjb2RlIHBvaW50IG9uIHRoZSBsZWZ0LCB0aGUKKyMgc2VxdWVuY2Ugb24gdGhlIHJpZ2h0IHNob3VsZCBiZSBzdWJzdGl0dXRlZC4gIEluIHRoaXMgZXhhbXBsZSwKKyMgRGV2YW5hZ2FyaSBoYXMgbm8gQUkgTGVuZ3RoIE1hcmsuICBTbywgaWYgdHJhbnNsaXRlcmF0aW5nIGZyb20KKyMgT3JpeWEsIHRoZW4gdGhlIGNoYXJhY3RlciAwQjU2IChPcml5YSBBSSBMZW5ndGggTWFyaykgd2lsbCByZW1hcCB0bworIyB0aGUgbm9uLWV4aXN0ZW50IDA5NTYsIGFuZCB0aGF0IHJlbWFwcyB0byAwOTQ4LCBvdXIgY2hvc2VuCisjIERldmFuYWdhcmkgZXF1aXZhbGVudC4gIEZvciBvdXIgcHVycG9zZXMsIHRoZSBsZWZ0IGhhbmQgc2lkZSBzaG91bGQKKyMgYmUgdGFrZW4gdG8gbWVhbiBpdHMgZXF1aXZhbGVudCBwb2ludCBpbiB0aGUgSW50ZXJJbmRpYyByYW5nZS4gIEluCisjIHRoaXMgZXhhbXBsZSwgd2hhdCBpdCByZWFsbHkgc2F5cyBpcyBFMDU2PjA5NDggaW4gdGhlCisjIEludGVySW5kaWMtRGV2YW5hZ2FyaSB0cmFuc2xpdGVyYXRvci4KKworaWYgKCRFWENFUFRJT05TX0ZJTEUpIHsKKyAgICBvcGVuKEVYQ0VQVElPTlNfRklMRSkgb3IgZGllOworICAgIHdoaWxlICg8RVhDRVBUSU9OU19GSUxFPikgeworICAgICAgICBpZiAobXxeXHMqXCIoW15cIl0qPylcInwpIHsKKyAgICAgICAgICAgIG15ICRsaW5lID0gJF87CisgICAgICAgICAgICAkXyA9ICQxOworICAgICAgICAgICAgaWYgKC9eKC4qKT4oLiopOyQvKSB7CisgICAgICAgICAgICAgICAgbXkgKCRyYXdGcm9tLCAkcmF3VG8pID0gKCQxLCAkMik7CisgICAgICAgICAgICAgICAgbXkgQGZyb20gPSBwYXJzZVVuaWNvZGVFc2NhcGUoJHJhd0Zyb20pOworICAgICAgICAgICAgICAgIG15IEB0byA9IHBhcnNlVW5pY29kZUVzY2FwZSgkcmF3VG8pOworICAgICAgICAgICAgICAgIG15ICRmcm9tID0gaGV4QXJyYXkoQGZyb20pOworICAgICAgICAgICAgICAgICMgU29tZSBlbnRyaWVzIGxvb2sgbGlrZSB0aGlzOgorICAgICAgICAgICAgICAgICMgfCJcdTA5NTU+XHUwOTU1OyIKKyAgICAgICAgICAgICAgICAjIHRoZXNlIGRvIG5vdGhpbmc7IGlnbm9yZSB0aGVtLgorICAgICAgICAgICAgICAgIGlmIChpbnRBcnJheXNFcXVhbChcQGZyb20sIFxAdG8pKSB7CisgICAgICAgICAgICAgICAgICAgICNwcmludCBTVERFUlIgIklnbm9yaW5nIE5PT1AgcmVtYXAgb2YgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoZXhpc3RzICRFWENFUFRJT05TeyRmcm9tfSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBEdXBsaWNhdGUgcmVtYXAgZW50cmllcyBmb3IgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoc2NhbGFyIEBmcm9tID4gMSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBJZ25vcmluZyBtdWx0aWNoYXIgcmVtYXA6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhpcyBmb3IgdmFsaWRpdHkuICBGdWxsIGNvZGUgb24gdGhlIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgTk9UIGV4aXN0LiAgRnVsbCBjb2RlIHNlcSBvbiB0aGUgcmlnaHQgc2hvdWxkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRGVUxMQ09ERV9UT19OQU1FeyRmcm9tWzBdfSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gSW52YWxpZCByZW1hcDsgbGVmdCBzaWRlIGRlZmluZWQ6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoZ3JlcCghIGV4aXN0cyAkRlVMTENPREVfVE9fTkFNRXskX30sIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJEVYQ0VQVElPTlNfRklMRSAtIEludmFsaWQgcmVtYXA7IHJpZ2h0IHNpZGUgdW5kZWZpbmVkOiAiLCBoZXhBcnJheShAZnJvbSksICItPiIsIGhleEFycmF5KEB0byksICJcbiI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkRVhDRVBUSU9OU3skZnJvbVswXX0gPSBcQHRvOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsgZGllICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gQ2FuJ3QgcGFyc2UgXCIkX1wiIGluIGxpbmUgJGxpbmUiOyB9CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UoRVhDRVBUSU9OU19GSUxFKTsKKyAgICBwcmludCBTVERFUlIgIiRFWENFUFRJT05TX0ZJTEU6IExvYWRlZCAiLCBzY2FsYXIga2V5cyAlRVhDRVBUSU9OUywgIiByZW1hcHBpbmdzXG4iOworfQorCitpZiAoJERPX0RFQ09NUF9SRU1BUCkgeworICAgICMgUmVhZCB0aGUgTmFtZXNMaXN0LnR4dCBmaWxlLiAgVGhpcyBjb250YWlucyBkZWNvbXBvc2l0aW9uIGRhdGEuCisgICAgIyBHYXRoZXIgdGhlc2UgaW50byAlREVDT01QLCB3aGljaCBtYXBzIGEgbmFtZSB0byBuMS5uMi4uLiwgd2hlcmUgbjEKKyAgICAjIGV0Yy4gYXJlIGRlY29tcG9zZWQgbmFtZXMuICBFLmcuICRERUNPTVB7J0xFVFRFUiBSUkEnfSAtPiAnTEVUVEVSCisgICAgIyBSQS5TSUdOIE5VS1RBJy4gIFRoZXJlIG1heSBiZSBkaWZmZXJlbnQgbWFwcGluZ3MgaW4gZGlmZmVyZW50IHNjcmlwdAorICAgICMgYmxvY2tzIChMRVRURVIgUlJBIGlzIG1hcHBlZCBkaWZmZXJlbnRseSBpbiBEZXZhbmFnYXJpIGFuZCBCZW5nYWxpKSwKKyAgICAjIGluIHdoaWNoIGNhc2UgdGhlIG5hbWUgZ29lcyBpbnRvICVERUNPTVBfTUlTTUFUQ0gsIGFuZCBpcyByZW1vdmVkCisgICAgIyBmcm9tICVERUNPTVAuCisgICAgJE5BTUVTID0gIk5hbWVzTGlzdC50eHQiOworICAgIG9wZW4oTkFNRVMpOworICAgIHdoaWxlICg8TkFNRVM+KSB7CisgICAgICAgICMgU2tpcCB0byBzdGFydCBvZiBERVZBTkFHQVJJIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzA5MDAvKTsKKyAgICB9CisgICAgd2hpbGUgKDxOQU1FUz4pIHsKKyAgICAgICAgIyBDb250aW51ZSB1bnRpbCBzdGFydCBvZiBTSU5IQUxBIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzBEODAvKTsKKyAgICAgICAgaWYgKC9eKFswLTlBLVpdezR9KS9pKSB7CisgICAgICAgICAgICAkY29kZSA9ICQxOworICAgICAgICB9IGVsc2lmICgvXlxzKzpccyooLispLykgeworICAgICAgICAgICAgIyBXZSd2ZSBmb3VuZCBhIG1hcHBpbmcgb2YgdGhlIGZvcm06CisgICAgICAgICAgICAjIDA5MjkgICAgREVWQU5BR0FSSSBMRVRURVIgTk5OQQorICAgICAgICAgICAgIyAgICAgKiBmb3IgdHJhbnNjcmliaW5nIERyYXZpZGlhbiBhbHZlb2xhciBuCisgICAgICAgICAgICAjICAgICA6IDA5MjggMDkzQworICAgICAgICAgICAgbXkgJGZyb20gPSAkRlVMTENPREVfVE9fTkFNRXtoZXgoJGNvZGUpfTsKKyAgICAgICAgICAgIG15IEB0byA9IG1hcCgkRlVMTENPREVfVE9fTkFNRXtoZXgoJF8pfSwgc3BsaXQoL1xzKy8sICQxKSk7CisgICAgICAgICAgICBpZiAoZXhpc3RzICRERUNPTVB7JGZyb219KSB7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkREVDT01QeyRmcm9tfTsKKyAgICAgICAgICAgICAgICBpZiAoam9pbigiLiIsIEAkYXJlZikgbmUgam9pbigiLiIsIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogRGVjb21wIG1pc21hdGNoIGZvciAkZnJvbVxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQCRhcmVmKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgJERFQ09NUF9NSVNNQVRDSHskZnJvbX0gPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJERFQ09NUHskZnJvbX0gPSBcQHRvOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGNsb3NlKE5BTUVTKTsKKyAgICAjIFJlbW92ZSBtaXNtYXRjaGVzCisgICAgZm9yZWFjaCAoa2V5cyAlREVDT01QX01JU01BVENIKSB7CisgICAgICAgIGRlbGV0ZSAkREVDT01QeyRffTsKKyAgICB9CisgICAgaWYgKCREVU1QKSB7CisgICAgICAgIGZvcmVhY2ggKGtleXMgJURFQ09NUCkgeworICAgICAgICAgICAgcHJpbnQgIiRfID0gIiwgam9pbigiICsgIiwgQHskREVDT01QeyRffX0pLCAiXG4iOworICAgICAgICB9CisgICAgfQorfQorCisjIENvdW50IHRoZSB0b3RhbCBudW1iZXIgb2Ygc2NyaXB0cworCiskU0NSSVBUX0NPVU5UID0gc2NhbGFyIGtleXMgJVNDUklQVF9UT19CQVNFOworI3ByaW50IGpvaW4oIlxuIiwgc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSksICJcbiI7CisKKyMgRHVtcCBvdXQgdGhlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBtYXAuCisKK2lmICgkRFVNUCkgeworICAgIHByaW50ICJcbkJZIE5BTUU6XG4iOworICAgIGZvcmVhY2ggbXkgJHBhc3MgKCgxLCAyKSkgeworICAgICAgICBwcmludCAiXG5CWSBOQU1FIC0gU0lOR0xFVE9OUzpcbiIgaWYgKCRwYXNzIGVxIDIpOworICAgICAgICBmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgICAgICAgICBpZiAoJHBhc3MgZXEgMSkgeworICAgICAgICAgICAgICAgIG5leHQgaWYgKDEgPj0gJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0IGlmICgxIDwgJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIiRuYW1lOiI7CisgICAgICAgICAgICBteSAkaHJlZiA9ICROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX07CisgICAgICAgICAgICBmb3JlYWNoIG15ICRjb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgICAgICAgICAgbmV4dCBpZiAoJGNvZGUgZXEgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkaHJlZi0+eyRjb2RlfTsKKyAgICAgICAgICAgICAgICBwcmludCAiICIsIGhleDIoJGNvZGUpLCAiICgiLCBmb3JtYXRTY3JpcHRMaXN0KCRhcmVmKSwgIikiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIlxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworIyBDcmVhdGUgc29tZSB0cmFuc2xpdGVyYXRvcnMsIGJhc2VkIG9uIHRoZSBzY3JpcHRzIGFuZCB0aGUgJU5BTUVfQ09ERV9UT19TQ1JJUFRTCisjIG1hcC4gIE9ubHkgdXNlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBlbnRyaWVzIHdpdGggYSBjb3VudCBvZiAyIG9yIG1vcmUsIHRoYXQgaXMsCisjIG5hbWVzIHRoYXQgb2NjdXIgaW4gdHdvIG9yIG1vcmUgc2NyaXB0cy4gIEZvciB0aG9zZSBzY3JpcHRzIHdoZXJlCisjIHRoZSBuYW1lcyBvY2N1ciwgbWFwIGJvdGggdXAgdG8gdGhlIEludGVySW5kaWMgcmFuZ2UsIGFuZCBkb3duIHRvCisjIHRoZSB0YXJnZXQgc2NyaXB0LgorCiskSU5URVJJTkRJQyA9IDB4RTAwMDsKKyRJTlRFUklORElDX0VYVFJBID0gMHhFMDgwOworJElOVEVSSU5ESUNfRVhUUkFfTkVYVCA9ICRJTlRFUklORElDX0VYVFJBOworCisjIEZvciBlYWNoIHNjcmlwdCwgY3JlYXRlIGEgaGFzaC4gIFRoZSBoYXNoIGhhcyBhIGtleSBmb3IgZWFjaAorIyBjb2RlIHBvaW50LCBlaXRoZXIgd2l0aGluIGl0cyBibG9jaywgb3IgaW4gdGhlIEludGVySW5kaWMgYmxvY2suCisjIHRoZSB2YWx1ZSBvZiB0aGUga2V5IGlzIHRoZSBtYXBwaW5nLgorCisjIFRoZSBzY3JpcHQgaGFzaGVzIGFyZSBuYW1lZCAlREVWQU5BR0FSSSwgZXRjLiwgYW5kIHJlZmVyZW5jZWQKKyMgd2l0aCBzeW1ib2xpYyByZWZzLgorCitAUkVNQVAgPSAoJ3MvXGJTSE9SVFxzKy8vaScsCisgICAgICAgICAgJ3MvXGJDQU5EUkFccysvL2knLAorICAgICAgICAgICdzL1xiUUEkL0tBL2knLAorICAgICAgICAgICdzL1xiS0hIQSQvS0hBL2knLAorICAgICAgICAgICdzL1xiR0hIQSQvR0EvaScsCisgICAgICAgICAgJ3MvXGJaQSQvSkEvaScsCisgICAgICAgICAgJ3MvXGJGQSQvUEhBL2knLAorICAgICAgICAgICdzL1xiVkEkL0JBL2knLAorICAgICAgICAgICdzL1xiTk5OQSQvTkEvaScsCisgICAgICAgICAgJ3MvXGJSUkEkL1JBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTExBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTEEvaScsCisgICAgICAgICAgJ3MvXGJMTEEkL0xBL2knLAorICAgICAgICAgICdzL15BKC4pIExFTkdUSCBNQVJLJC9WT1dFTCBTSUdOIEEkMS9pJywKKyAgICAgICAgICAncy9DQU5EUkFCSU5EVS9CSU5ESS9pJywKKyAgICAgICAgICAncy9CSU5ESS9DQU5EUkFCSU5EVS9pJywKKyAgICAgICAgICApOworCisjIERvIHRoaXMgc28gd2Ugc2VlIHplcm8gY291bnRzOgorZm9yZWFjaCBteSAkcmVtYXAgKEBSRU1BUCkgeyAkUkVNQVB7JHJlbWFwfSA9IDA7IH0KKworIyBUaGlzIGxvb3AgaXRlcmF0ZXMgb3ZlciB0aGUgbmFtZXMgaW4gdGhlIE5BTUVfQ09ERV9UT19TQ1JJUFRTIGhhc2guCisjIFRoZXNlIG5hbWVzIGFyZSB0aGluZ3MgbGlrZSAiTEVUVEVSIE5OTkEiLiAgRm9yIGVhY2ggbmFtZSwgaXQgdGhlbgorIyBjcmVhdGVzIHNjcmlwdCBtYXBwaW5ncyB1cCB0byB0aGUgSW50ZXJJbmRpYyBhcmVhLCBhbmQgYmFjayBkb3duCisjIHRvIHRoZSBzY3JpcHQgYXJlYXMuICBJZiBhIG5hbWUgbWFwcyB0byBtb3JlIHRoYW4gb25lIG9mZnNldCwKKyMgdGhlbiBpdCB1c2VzIHRoZSBJbnRlckluZGljIGV4dHJhIHJhbmdlLiAgRWl0aGVyIHdheSwgaXQgcGlja3MKKyMgYSBzaW5nbGUgSW50ZXJJbmRpYyBwb2ludCwgZWl0aGVyIGFuIG9mZnNldCBwb2ludCBvciBzb21ldGhpbmcgaW4KKyMgdGhlIGV4dHJhIHJhbmdlLCBhbmQgbWFwcyB1cCBhbmQgZG93biBmcm9tIHRoYXQgcG9pbnQuCitmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgbmV4dCBpZiAoMSA+PSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9e2NvdW50fSk7CisgICAgbXkgJGhyZWYgPSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9OworICAgICMgQ291bnQgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY29kZXMgYXNzaWduZWQgdG8gdGhpcyBuYW1lLgorICAgICMgVXN1YWxseSAxLCBidXQgMiBmb3IgYSBoYW5kZnVsIG9mIG5hbWVzLgorICAgIG15ICRjb2RlQ291bnQgPSAoa2V5cyAleyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX19KSAtIDE7ICMgbGVzcyAxOiB7Y291bnR9CisgICAgIyBJZiAkY29kZUNvdW50IGlzIDEsIHRoZW4gbWFwIGRpcmVjdGx5IHVwIHRvIHRoZSAkSU5URVJJTkRJQworICAgICMgYmFzZS4gIElmICRjb2RlQ291bnQgaXMgMiwgdGhlbiBtYXAgaW50byB1bnVzZWQgc3BvdHMgc3RhcnRpbmcKKyAgICAjIGF0ICRJTlRFUklORElDX0VYVFJBLgorICAgIG15ICRpbnRlckluZGljQ29kZTsKKyAgICBpZiAoJGNvZGVDb3VudCA+IDEpIHsKKyAgICAgICAgIyBNYXAgaW50byB0aGUgSW50ZXJJbmRpYyBleHRyYSByYW5nZQorICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQ19FWFRSQV9ORVhUKys7CisgICAgfQorICAgIG15ICVzZWVuOworICAgIGZvcmVhY2ggbXkgJGNvZGUgKHNvcnQgeyRhIG5lICdjb3VudCcgJiYgJGIgbmUgJ2NvdW50JyAmJiAkYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgIG5leHQgaWYgKCRjb2RlIGVxICdjb3VudCcpOworICAgICAgICBteSAkYXJlZiA9ICRocmVmLT57JGNvZGV9OyAjIFJlZiB0byBhcnJheSBvZiBzY3JpcHRzCisgICAgICAgIGlmICgkY29kZUNvdW50ID09IDEpIHsKKyAgICAgICAgICAgICMgTWFwIGRpcmVjdGx5CisgICAgICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQyArICRjb2RlOworICAgICAgICB9CisgICAgICAgICMgS2VlcCB0cmFjayBvZiB0aGUgbmFtZXMgb2YgdGhlIGV4dHJhIEludGVySW5kaWMgcG9pbnRzCisgICAgICAgICRJTlRFUklORElDX05BTUVfVE9fRlVMTENPREV7JG5hbWV9ID0gJGludGVySW5kaWNDb2RlOworCisgICAgICAgIGZvcmVhY2ggbXkgJHNjciAoQCRhcmVmKSB7CisgICAgICAgICAgICAkc2Vlbnskc2NyfSA9IDE7CisgICAgICAgICAgICBteSAkZnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAiOyAvLyAkbmFtZSI7CisgICAgICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gaGV4NCgkZnVsbENvZGUpIC4gIjsgLy8gJG5hbWUiOworICAgICAgICB9CisgICAgfQorICAgICMgTm93IGhhbmRsZSBJbnRlckluZGljLT5TY3JpcHQgdW5tYXBwZWQgcG9pbnRzLiAgRm9yIGVhY2ggbmFtZSwKKyAgICAjIHNvbWUgb2YgdGhlIHNjcmlwdHMgd2lsbCBiZSBsZWZ0IG91dCAtLSB3aWxsIGhhdmUgbm8gbWFwcGluZ3MKKyAgICAjIHRvIHRoYXQgbmFtZS4gIEZvciB0aGVzZSBzY3JpcHRzLCB3ZSBjYW4gZWl0aGVyIGxlYXZlIHRoZW0KKyAgICAjIHVubWFwcGVkIChzbyB0aGUgSW50ZXJJbmRpYy0+TG9jYWwgbWFwcGluZyBpcyBlbXB0eSksIG9yCisgICAgIyB0cnkgdG8gcmVtYXAuCisgdW5tYXBwZWRTY3JpcHQ6CisgICAgZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICBuZXh0IGlmICgkc2Vlbnskc2NyfSk7CisKKyAgICAgICAgaWYgKCRET19IRVVSSVNUSUNfUkVNQVApIHsKKyAgICAgICAgICAgICMgVHJ5IHRvIHJlbWFwIHRocm91Z2ggdGhlIGtub3duIGVxdWl2YWxlbmNlcyBpbiBvdXIKKyAgICAgICAgICAgICMgcmVtYXBwaW5nIHRhYmxlCisgICAgICAgICAgICBmb3JlYWNoIG15ICRyZW1hcFJFIChAUkVNQVApIHsKKyAgICAgICAgICAgICAgICBsb2NhbCAkXyA9ICRuYW1lOworICAgICAgICAgICAgICAgIGlmIChldmFsKCRyZW1hcFJFKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGludGVySW5kaWNDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkU0NSSVBUX05BTUVfVE9fQ09ERXskc2NyfXskX30pIC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgLy8gUkVNQVA6ICRuYW1lIC0+ICRfIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrJFJFTUFQeyRyZW1hcFJFfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgdW5tYXBwZWRTY3JpcHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAjIFRyeSB0byByZW1hcCB0aHJvdWdoIHRoZSBmaWxlLiAgVGhpcyBjb250YWlucyByZW1hcHBpbmdzIG9mCisgICAgICAgICMgdGhlIGZvcm0gMDk5MS0+MDk5My4gIFRoYXQgaXMsIGl0IGNvbnRhaW5zIGxvY2FsIHJlbWFwcGluZ3MKKyAgICAgICAgIyB0aGF0IHdlIGNhbiBzdWJzdGl0dXRlIGFuZCB0cnkgYWdhaW4gd2l0aC4KKyAgICAgICAgI3xHVVJNVUtISS1JbnRlckluZGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAjfC8vIDBBMDI+OyAvLyBVTk1BUFBFRCBJTlRFUk5BTDogU0lHTiBCSU5ESQorICAgICAgICAjfEludGVySW5kaWMtR1VSTVVLSEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICN8Ly8gRTAwMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBTSUdOIENBTkRSQUJJTkRVCisgICAgICAgICN8Ilx1MEEwMT5cdTBBMDI7IgorICAgICAgICAjIEluIHRoaXMgZXhhbXBsZSwgdGhlIHJlbWFwcGluZyB0ZWxscyB1cyB0aGF0IHRoZSBub24tZXhpc3RlbnQKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAxIHNob3VsZCBiZSBjb25zaWRlcmVkIGVxdWl2YWxlbnQgdG8gdGhlIHJlYWwKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAyLgorICAgICAgICAjIFdlIGltcGxlbWVudCB0aGlzIGJ5IGFkZGluZyB0d28gbWFwcGluZ3M7IG9uZSBmcm9tCisgICAgICAgICMgdGhlIEludGVySW5kaWMgZXF1aXZhbGVudCBvZiBBMDEsIHRoYXQgaXMsIEUwMDEsIHRvIEEwMiwKKyAgICAgICAgIyBhbmQgb25lIGZyb20gQTAyLCB3aGljaCBvdGhlcndpc2UgaGFzIG5vIG1hcHBpbmcsIHRvIEUwMDEuCisgICAgICAgIGlmICgkRVhDRVBUSU9OU19GSUxFICYmICRpbnRlckluZGljQ29kZSA8ICRJTlRFUklORElDX0VYVFJBKSB7CisgICAgICAgICAgICAjIFRyeSB0byBtYXAgdGhpcyBJbnRlckluZGljIGNoYXJhY3RlciBiYWNrIHRvIGEgdGhlIHNwb3QKKyAgICAgICAgICAgICMgaXQgd291bGQgb2NjdXB5IGluIHRoaXMgc2NyaXB0IGlmIGl0IGhhZCBhIG1hcHBpbmcuCisgICAgICAgICAgICBteSAkY29kZSA9ICRpbnRlckluZGljQ29kZSAmIDB4N0Y7CisgICAgICAgICAgICBteSAkcHNldWRvRnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgIGlmIChleGlzdHMgJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfSkgeworICAgICAgICAgICAgICAgIG15ICRmdWxsQ29kZUFycmF5ID0gJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfTsKKyAgICAgICAgICAgICAgICBteSAkY29tbWVudDsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRjIChAJGZ1bGxDb2RlQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgLj0gIi4iIGlmICgkY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgICRjb21tZW50IC49ICRGVUxMQ09ERV9UT19OQU1FeyRjfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGNvbW1lbnQgPSAiOyAvLyBSRU1BUCAoJEVYQ0VQVElPTlNfRklMRSk6ICIgLgorICAgICAgICAgICAgICAgICAgICBoZXg0KCRwc2V1ZG9GdWxsQ29kZSkgLiAiPiIgLiBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gIiA9ICIgLgorICAgICAgICAgICAgICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSAuICI+IiAuICRjb21tZW50OworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gJGNvbW1lbnQ7CisgICAgICAgICAgICAgICAgaWYgKHNjYWxhciBAJGZ1bGxDb2RlQXJyYXkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZUFycmF5LT5bMF19KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZXJlJ3MgYWxyZWFkeSBhIHByb3BlciBtYXBwaW5nOyBubyBuZWVkIHRvIGZpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gcmV2ZXJzZQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlQXJyYXktPlswXX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAkY29tbWVudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXh0IHVubWFwcGVkU2NyaXB0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gMTsKKyAgICAgICAgbG9jYWwgJF8gPSAiOyAvLyBVTk1BUFBFRCBJbnRlckluZGljLSRzY3I6ICRuYW1lIjsKKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfXskaW50ZXJJbmRpY0NvZGUgJiAweDdGfSkgeworICAgICAgICAgICAgbXkgJGZ1bGxDb2RlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9ICsgKCRpbnRlckluZGljQ29kZSAmIDB4N0YpOworICAgICAgICAgICAgJF8gLj0gIiAoIiAuIGhleDQoJGZ1bGxDb2RlKSAuICIgPSAiIC4gJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSAuICIpIjsKKyAgICAgICAgfQorICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gJF87CisgICAgfQorfQorCisjIEFkZCBpbiB1bm1hcHBlZCBlbnRyaWVzIGZvciBlYWNoIHNjcmlwdAorZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgIG15ICRiYXNlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9OworIHVubWFwcGVkSW50OgorICAgIGZvcmVhY2ggbXkgJGNvZGUgKGtleXMgJXskU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfX0pIHsKKyAgICAgICAgbXkgJGZ1bGxDb2RlID0gJGNvZGUgKyAkYmFzZTsKKyAgICAgICAgbmV4dCBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZX0pOworICAgICAgICBteSAkbmFtZSA9ICRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3J9eyRjb2RlfTsKKworICAgICAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICAgICAgZm9yZWFjaCBteSAkcmVtYXBSRSAoQFJFTUFQKSB7CisgICAgICAgICAgICAgICAgbG9jYWwgJF8gPSAkbmFtZTsKKyAgICAgICAgICAgICAgICBpZiAoZXZhbCgkcmVtYXBSRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0cyAkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAvLyBSRU1BUDogJG5hbWUgLT4gJF8iOworICAgICAgICAgICAgICAgICAgICAgICAgKyskUkVNQVB7JHJlbWFwUkV9OworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgTm93IHRyeSB0aGUgZGVjb21wIHRhYmxlCisgICAgICAgIGlmICgkRE9fREVDT01QX1JFTUFQICYmIGV4aXN0cyAkREVDT01QeyRuYW1lfSkgeworICAgICAgICAgICAgbXkgJHg7CisgICAgICAgICAgICBteSAkY210ID0gIjsgLy8gREVDT01QOiAkbmFtZSAtPiAiOworICAgICAgICAgICAgZm9yZWFjaCBteSAkbiAoQHskREVDT01QeyRuYW1lfX0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSkgeworICAgICAgICAgICAgICAgICAgICAkeCAuPSBoZXg0KCRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSk7CisgICAgICAgICAgICAgICAgICAgICRjbXQgLj0gJG4gLiAiICsgIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkY210ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGNtdCkgeworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAkeCAuICRjbXQ7CisgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRTQ1JJUFRfRlVMTENPREVfVE9fSVNfVU5NQVBQRUR7JHNjcn17JGZ1bGxDb2RlfSA9IDE7CisgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAiOyAvLyBVTk1BUFBFRCAkc2NyLUludGVySW5kaWM6ICRuYW1lIjsKKyAgICB9Cit9CisKKyMgR1VSCisjIEUwMEI+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgUiAiXHUwQTBCPlx1MEEzMFx1MEEzRjsiCisjIEUwMEM+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgTCAiXHUwQTBDPlx1MEEwNzsiCisjIEUwMEQ+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIENBTkRSQSBFICJcdTBBMEQ+XHUwQTEwOyIKKyMgRTAxMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgQ0FORFJBIE8gIlx1MEExMT5cdTBBMTQ7IgorIyBFMDM3PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IExFVFRFUiBTU0EgIlx1MEEzNz5cdTBBMzY7IgorIyBFMDQ1PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIEUgIlx1MEE0NT5cdTBBNDg7IgorIyBFMDQ5PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIE8gIlx1MEE0OT5cdTBBNEM7IgorIyBGaXggUUEgdG9vCisKKyMgRHVtcCBvdXQgc2NyaXB0IG1hcHMKK2ZvcmVhY2ggbXkgJHNjciAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICMjIG5leHQgdW5sZXNzICgkc2NyIGVxICdURUxVR1UnKTsgIyBEZWJ1Z2dpbmcKKyAgICBteSBAcnVsZXM7CisgICAgbXkgJGZsYWcgPSAxOworICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworICAgICAgICBpZiAoJGZsYWcgJiYgJGZ1bGxDb2RlID49ICRJTlRFUklORElDKSB7CisgICAgICAgICAgICAjIFdlIGhhdmUgdGhlIGNvbXBsZXRlIDxzY3I+LUludGVySW5kaWMgcnVsZXM7IGR1bXAKKyAgICAgICAgICAgICMgdGhlbSBvdXQuCisgICAgICAgICAgICBnZW5lcmF0ZVJCVCgkc2NyLCAiSW50ZXJJbmRpYyIsIFxAcnVsZXMsICRPVVRESVIpOworICAgICAgICAgICAgQHJ1bGVzID0gKCk7CisgICAgICAgICAgICAkZmxhZyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0ZVTExDT0RFX1RPX0lTX1VOTUFQUEVEeyRzY3J9eyRmdWxsQ29kZX0pIHsKKyAgICAgICAgICAgIHB1c2ggQHJ1bGVzLCAiLy8gIiAuIGhleDQoJGZ1bGxDb2RlKSAuICI+IiAuICQgeyRzY3J9eyRmdWxsQ29kZX07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoIEBydWxlcywgaGV4NCgkZnVsbENvZGUpIC4gIj4iIC4gJCB7JHNjcn17JGZ1bGxDb2RlfTsKKyAgICAgICAgfQorICAgIH0KKyAgICAjIE5vdyBnZW5lcmF0ZSB0aGUgSW50ZXJJbmRpYy08c2NyPiBydWxlcy4KKyAgICBnZW5lcmF0ZVJCVCgiSW50ZXJJbmRpYyIsICRzY3IsIFxAcnVsZXMsICRPVVRESVIpOworCisjICAgIHByaW50ICIkc2NyLUludGVySW5kaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICBteSAkZmxhZyA9IDE7CisjICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworIyAgICAgICAgaWYgKCRmbGFnICYmICRmdWxsQ29kZSA+PSAkSU5URVJJTkRJQykgeworIyAgICAgICAgICAgIHByaW50ICJJbnRlckluZGljLSRzY3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICAgICAgICAgICRmbGFnID0gMDsKKyMgICAgICAgIH0KKyMgICAgICAgIGlmIChleGlzdHMgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskZnVsbENvZGV9KSB7CisjICAgICAgICAgICAgcHJpbnQgIi8vICIsIGhleDQoJGZ1bGxDb2RlKSwgIj4iLCAkIHskc2NyfXskZnVsbENvZGV9LCAiXG4iOworIyAgICAgICAgfSBlbHNlIHsKKyMgICAgICAgICAgICBwcmludCBoZXg0KCRmdWxsQ29kZSksICI+IiwgJCB7JHNjcn17JGZ1bGxDb2RlfSwgIlxuIjsKKyMgICAgICAgIH0KKyMgICAgfQorfQorCisjIExpc3Qgc3VjY2Vzc2Z1bCByZW1hcHBpbmdzCitpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgIGZvcmVhY2ggbXkgJHJlbWFwIChzb3J0IGtleXMgJVJFTUFQKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiUkVNQVAgIiwgJFJFTUFQeyRyZW1hcH0sICIgeCAkcmVtYXBcbiI7CisgICAgfQorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTVUJST1VUSU5FUworCisjIFJldHVybiBhIGxpc3Rpbmcgb2YgYW4gYXJyYXkgb2Ygc2NyaXB0cworIyBQYXJhbTogYXJyYXkgcmVmCitzdWIgZm9ybWF0U2NyaXB0TGlzdCB7CisgICAgbXkgJGFyZWYgPSBzaGlmdDsKKyAgICBpZiAoJFNDUklQVF9DT1VOVCA9PSBAJGFyZWYpIHsKKyAgICAgICAgcmV0dXJuICJhbGwiOworICAgIH0gZWxzaWYgKCgkU0NSSVBUX0NPVU5UIC0gMykgPD0gQCRhcmVmKSB7CisgICAgICAgIG15ICRzID0gImFsbCBidXQiOworICAgICAgICBteSAldGVtcDsKKyAgICAgICAgZm9yZWFjaCAoQCRhcmVmKSB7ICR0ZW1weyRffSA9IDE7IH0KKyAgICAgICAgZm9yZWFjaCAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICAgICAgJHMgLj0gIiAkXyIgdW5sZXNzIGV4aXN0cyAkdGVtcHskX307CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRzOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBqb2luKCIgIiwgQCRhcmVmKTsKKyAgICB9Cit9CisKKyMgRm9ybWF0IGFzICUwMlggaGV4CitzdWIgaGV4MiB7CisgICAgc3ByaW50ZigiJTAyWCIsICRfWzBdKTsKK30KKworIyBGb3JtYXQgYXMgJTA0WCBoZXgKK3N1YiBoZXg0IHsKKyAgICBzcHJpbnRmKCJcXHUlMDRYIiwgJF9bMF0pOworfQorCisjIEZvcm1hdCBhbiBhcnJheSBhcyAlMDRYIGhleCwgZGVsaW1pdGVkIGJ5ICIuInMKK3N1YiBoZXhBcnJheSB7CisgICAgam9pbigiIiwgbWFwIHsgaGV4NCgkXyk7IH0gQF8pOworfQorCisjIFBhcnNlIGEgc3RyaW5nIG9mIHRoZSBmb3JtICJcdTBEMDEiIHRvIGFuIGFycmF5IG9mIGludGVnZXJzLgorIyBNdXN0IE9OTFkgY29udGFpbiBlc2NhcGVzLgorIyBSZXR1cm4gdGhlIGFycmF5Lgorc3ViIHBhcnNlVW5pY29kZUVzY2FwZSB7CisgICAgbG9jYWwgJF8gPSBzaGlmdDsKKyAgICBteSAkb3JpZyA9ICRfOworICAgIG15IEByZXN1bHQ7CisgICAgd2hpbGUgKGxlbmd0aCgkXykpIHsKKyAgICAgICAgaWYgKC9eXFx1KFswLTlhLWZdezR9KSguKikvaSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBoZXgoJDEpOworICAgICAgICAgICAgJF8gPSAkMjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgVW5pY29kZSBlc2NhcGUgJG9yaWdcbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKDAgPT0gQHJlc3VsdCkgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlIFVuaWNvZGUgZXNjYXBlICRvcmlnXG4iOyAgICAgICAgCisgICAgfQorICAgIEByZXN1bHQ7Cit9CisKKyMgUmV0dXJuIDEgaWYgdGhlIHR3byBhcnJheXMgb2YgaW50cyBhcmUgZXF1YWwuCisjIFBhcmFtOiByZWYgdG8gYXJyYXkgb2YgaW50cworIyBQYXJhbTogcmVmIHRvIGFycmF5IG9mIGludHMKK3N1YiBpbnRBcnJheXNFcXVhbCB7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkYiA9IHNoaWZ0OworICAgIGlmIChzY2FsYXIgQCRhID09IHNjYWxhciBAJGIpIHsKKyAgICAgICAgZm9yIChteSAkaT0wOyAkaTxAJGE7ICsrJGkpIHsKKyAgICAgICAgICAgIGlmICgkYS0+WyRpXSAhPSAkYi0+WyRpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworIyBHaXZlbiBhIHJ1bGUsIHBvc3NpYmx5IHdpdGggdHJhaWxpbmcgLy8gY29tbWVudCwKKyMgcXVvdGUgdGhlIHJ1bGUgcGFydCBhbmQgYWRkIGEgdHJhaWxpbmcgIisiIGFmdGVyCisjIGl0Lgorc3ViIHF1b3RlUnVsZSB7CisgICAgbXkgJGNtdDsKKyAgICAkY210ID0gJDEgaWYgKHN8KFxzKi8vLiopfHwpOyAjIGlzb2xhdGUgdHJhaWxpbmcgLy8gY29tbWVudAorICAgIHMvXiguKjspL1wiJDFcIisvOworICAgIHMvJC8kY210LzsKKyAgICAkXzsKK30KKworIyBHaXZlbiB0aGUgbmFtZSBvZiB0aGUgc291cmNlIHNjcmlwdCwgbmFtZSBvZiB0aGUgdGFyZ2V0IHNjcmlwdCwKKyMgYW5kIGFycmF5IG9mIHJ1bGUgc3RyaW5ncywgcmV0dXJuIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHNvdXJjZQorIyBmb3IgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBmaWxlLgorIyBQYXJhbTogc291cmNlIHNjcmlwdCBuYW1lCisjIFBhcmFtOiB0YXJnZXQgc2NyaXB0IG5hbWUKKyMgUGFyYW06IHJlZiB0byBhcnJheSBvZiBydWxlcy4gIFRoZXNlIHJ1bGVzIGFyZSB1bnF1b3RlZCwgd2l0aG91dAorIyAgY29uY2F0ZW5hdG9ycyBiZXR3ZWVuIHRoZW0sIGJ1dCBkbyBoYXZlIHRyYWlsaW5nICc7JyBzZXBhcmF0b3JzLgorIyBQYXJhbTogbmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5CitzdWIgZ2VuZXJhdGVSQlQgeworICAgICMgJFRPT0wgLSBuYW1lIG9mIGdlbmVyYXRpbmcgdG9vbAorICAgICMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyAgICAjICRTQ1JJUFRGUk9NIC0gbmFtZSBvZiBzb3VyY2Ugc2NyaXB0CisgICAgIyAkU0NSSVBUVE8gLSBuYW1lIG9mIHRhcmdldCBzY3JpcHQKKyAgICAjICRSVUxFUyAtIHJ1bGVzCisgICAgbXkgKCRzb3VyY2UsICR0YXJnZXQsICRydWxlcywgJG91dGRpcikgPSBAXzsKKyAgICBteSAkdGV4dDsKKyAgICAkb3V0ZGlyID1+IHN8Wy9cXF0kfHw7ICMgRGVsZXRlIHRyYWlsaW5nIC8gb3IgXAorICAgIG15ICRPVVQgPSAiJG91dGRpci9UcmFuc2xpdGVyYXRpb25SdWxlXyR7c291cmNlfV8kdGFyZ2V0LmphdmEiOworICAgIG9wZW4oUkJUX1RFTVBMQVRFKSBvciBkaWU7CisgICAgb3BlbihPVVQsICI+JE9VVCIpIG9yIGRpZTsKKyAgICB3aGlsZSAoPFJCVF9URU1QTEFURT4pIHsKKyAgICAgICAgd2hpbGUgKC9cJChbQS1aYS16MC05XSspLykgeworICAgICAgICAgICAgbXkgJHRhZyA9ICQxOworICAgICAgICAgICAgbXkgJHN1YjsKKyAgICAgICAgICAgIGlmICgkdGFnIGVxICdUT09MJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkUkJUX0dFTl9UT09MOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnREFURScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gbG9jYWx0aW1lOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnU0NSSVBURlJPTScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gJHNvdXJjZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR0YWcgZXEgJ1NDUklQVFRPJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkdGFyZ2V0OworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnUlVMRVMnKSB7CisgICAgICAgICAgICAgICAgIyBHZXQgYW55IHdoaXRlc3BhY2Utb25seSBpbmRlbnQgb2ZmIHRoZSBmcm9udCBvZiB0aGlzIHRhZworICAgICAgICAgICAgICAgIG15ICRpbmRlbnQ7CisgICAgICAgICAgICAgICAgJGluZGVudCA9ICQxIGlmICgvXihccyspXCQkdGFnLyk7CisKKyAgICAgICAgICAgICAgICAjIFRoZSBydWxlcyBpbiB0aGUgYXJyYXkgYXJlIG5vdCBxdW90ZWQuICBXZSBuZWVkIHRvIHF1b3RlCisgICAgICAgICAgICAgICAgIyB0aGVtIGFuZCBhZGQgJysnIG9wZXJhdG9ycyBiZXR3ZWVuIHRoZW0uICBXZSBkbyBOT1QgbmVlZAorICAgICAgICAgICAgICAgICMgdG8gYWRkICc7JyBzZXBhcmF0b3JzLiAgV2UgRE8gbmVlZCB0byBzZXBhcmF0ZSB0cmFpbGluZworICAgICAgICAgICAgICAgICMgLy8gY29tbWVudHMgYW5kIGhhbmRsZSB0aGVtLgorICAgICAgICAgICAgICAgICRzdWIgPSBqb2luKCJcbiRpbmRlbnQiLCBtYXAoJnF1b3RlUnVsZSwgQCRydWxlcykpIC4KKyAgICAgICAgICAgICAgICAgICAgIlxuJGluZGVudFwiXCIiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRSQlRfVEVNUExBVEU6IFVua25vd24gdGFnICR0YWdcbiI7CisgICAgICAgICAgICAgICAgJHN1YiA9ICJbRVJST1I6VW5rbm93biB0YWcgXCQkdGFnXSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzL1wkJHRhZy8kc3ViLzsKKyAgICAgICAgfQorICAgICAgICBwcmludCBPVVQ7CisgICAgfQorICAgIGNsb3NlKE9VVCk7CisgICAgY2xvc2UoUkJUX1RFTVBMQVRFKTsKKyAgICBwcmludCBTVERFUlIgIldyaXR0ZW46ICRPVVRcbiI7Cit9CisKK19fRU5EX18KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljRXhjZXB0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQyNmRkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0CkBAIC0wLDAgKzEsMzc3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyogUmVzZXJ2ZWQgaW4gYWxsIDkgc2NyaXB0cyAqLworCisvKgorICAgVGhlc2UgY29kZXBvaW50cyBhcmUgbWFya2VkIFJFU0VSVkVEIGluIGFsbCA5IGluZGljIHNjcmlwdHMuCisgICBUaGVyZSBzaG91bGQgbm90IGJlIGFueSB0cmFuc2xpdGVyYXRpb24gd29yayBvbiB0aGVzZSBjb2RlcG9pbnRzLCAKKyAgIGlmIHRoZXkgYXJlIGV2ZXIgZW5jb3VudGVyZWQuICBJZ25vcmUgdGhlc2UgY29kZXBvaW50cy4KKworICAgQ29tbW9uIHJlc2VydmVkIGNvZGVwb2ludHMgaW4gQUxMIDkgc2NyaXB0cyA6IChvZmZzZXQpCisgICAwMCwgMDQsIAorICAgM0EsIDNCLCAKKyAgIDRFLCA0RiwgCisgICA3QiwgN0MsIDdELCA3RSwgN0YKKyovCisKKy8qIFNjcmlwdC1zcGVjaWZpYyAqLworLyoKKyAgIFRoZXNlIGNvZGVwb2ludHMgYXJlIHNwZWNpZmljIHRvIHRoZWlyIHJlc3BlY3RpdmUgc2NyaXB0LgorICAgVHJhbnNsaXRlcmF0aW9uIG9mIHRoZXNlIGNvZGVwb2ludHMgZnJvbSBvbmUgc2NyaXB0IHRvIGFub3RoZXIgaXMgbWVhbmluZ2xlc3MuCisKKyAgIEZvciBleGFtcGxlLAorICAgICAgXHUwQjcwIChPcml5YSkgYW5kIFx1MEJGMCAoVGFtaWwpIGFyZSBub24tcmVzZXJ2ZWQgY29kZXBvaW50cyB3aXRoaW4gZWFjaCBzY3JpcHQuCisgICAgICBPbiB0cmFuc2xpdGVyYXRpbmcgXHUwQjcwIGZyb20gT3JpeWEgdG8gVGFtaWwsIHdlIHdpbGwgZ2V0IFx1MEJGMC4KKyAgICAgIEJ1dCBcdTBCNzAgaW4gT3JpeWEgcmVwcmVzZW50cyBJU1NIQVIsIHdoZXJlYXMgXHUwQkYwIGluIFRhbWlsIHJlcHJlc2VudHMgTlVNQkVSIFRFTi4KKworICAgXHUwOTcwIERldmFuYWdhcmkgYWJicmV2aWF0aW9uIHNpZ24KKworICAgXHUwOUYwIEJlbmdhbGkgbGV0dGVyIFJBIHdpdGggbWlkZGxlIGRpYWdvbmFsIChBc3NhbWVzZSkKKyAgIFx1MDlGMSBCZW5nYWxpIGxldHRlciBSQSB3aXRoIGxvd2VyIGRpYWdvbmFsIAorICAgICAgICAgICg9QmVuZ2FsaSBsZXR0ZXIgVkEgd2l0aCBsb3dlciBkaWFnb25hbCwgQXNzYW1lc2UpCisgICBcdTA5RjIgQmVuZ2FsaSBydXBlZSBtYXJrCisgICBcdTA5RjMgQmVuZ2FsaSBydXBlZSBzaWduCisgICBcdTA5RjQgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3Igb25lCisgICBcdTA5RjUgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3IgdHdvCisgICBcdTA5RjYgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3IgdGhyZWUKKyAgIFx1MDlGNyBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBmb3VyCisgICBcdTA5RjggQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3Igb25lIGxlc3MgdGhhbiB0aGUgZGVub21pbmF0b3IKKyAgIFx1MDlGOSBCZW5nYWxpIGN1cnJlbmN5IGRlbm9taW5hdG9yIHNpeHRlZW4KKyAgIFx1MDlGQSBCZW5nYWxpIGlzc2hhcgorCisgICBcdTBBNzAgR3VybXVraGkgdGlwcGkgKG5hc2FsaXphdGlvbikKKyAgIFx1MEE3MSBHdXJtdWtoaSBhZGRhayAoZG91YmxlcyBmb2xsb3dpbmcgY29uc29uYW50KQorICAgXHUwQTcyIEd1cm11a2hpIGlyaSAoYmFzZSBmb3Igdm93ZWxzKQorICAgXHUwQTczIEd1cm11a2hpIHVyYSAoYmFzZSBmb3Igdm93ZWxzKQorICAgXHUwQTc0IEd1cm11a2hpIGVrIG9ua2FyIChHb2QgaXMgT25lKQorCisgICBcdTBCNzAgT3JpeWEgaXNzaGFyCisKKyAgIFx1MEJGMCBUYW1pbCBudW1iZXIgdGVuCisgICBcdTBCRjEgVGFtaWwgbnVtYmVyIG9uZSBodW5kcmVkCisgICBcdTBCRjIgVGFtaWwgbnVtYmVyIG9uZSB0aG91c2FuZAorKi8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICBOT1RFIDogPHVua25vd24+IGNvZGUgd2lsbCBtYXAgYmFjayB0byBpdHNlbGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgdGlsbCB3ZSBmaW5kIGEgZ29vZCBtYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIERldmFuYWdhcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MDk1NT5cdTA5NTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwOTU2Plx1MDk0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBEZXZhbmFnYXJpIFZvd2VsIFNpZ24gQUkKKyJcdTA5NTc+XHUwOTRDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IERldmFuYWdhcmkgVm93ZWwgU2lnbiBBVQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQmVuZ2FsaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwOThEPlx1MDk4RDsiICAvLyA8dW5rbm93bj4gaW5kZXBlbmRlbnQgdm93ZWwgQ2FuZHJhIEUKKyJcdTA5OEU+XHUwOThGOyIgIC8vIExldHRlciBTaG9ydCBFIC0+IExldHRlciBFCisiXHUwOTkxPlx1MDk5MzsiICAvLyBMZXR0ZXIgQ2FuZHJhIE8gLT4gTGV0dGVyIE8KKyJcdTA5OTI+XHUwOTkzOyIgIC8vIExldHRlciBTaG9ydCBPIC0+IExldHRlciBPCisiXHUwOUE5Plx1MDlBODsiICAvLyBMZXR0ZXIgTk5OQSAtPiBMZXR0ZXIgTkEKKyJcdTA5QjE+XHUwOUIwOyIgIC8vIExldHRlciBSUkEgLT4gTGV0dGVyIFJBCisiXHUwOUIzPlx1MDlCMjsiICAvLyBMZXR0ZXIgTExBIC0+IExldHRlciBMQQorIlx1MDlCND5cdTA5QjI7IiAgLy8gTGV0dGVyIExMTEEgLT4gTGV0dGVyIExBCisiXHUwOUI1Plx1MDlBQzsiICAvLyBMZXR0ZXIgVkEgLT4gTGV0dGVyIEJBCisiXHUwOUJEPlx1MDlCRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTA5QzU+XHUwOUM3OyIgIC8vIFZvd2VsIENhbmRyYSBFIC0+IFZvd2VsIEUKKyJcdTA5QzY+XHUwOUM3OyIgIC8vIFZvd2VsIFNob3J0IEUgLT4gVm93ZWwgRQorIlx1MDlDOT5cdTA5Q0I7IiAgLy8gVm93ZWwgQ2FuZHJhIE8gLT4gVm93ZWwgTworIlx1MDlDQT5cdTA5Q0I7IiAgLy8gVm93ZWwgU2hvcnQgTyAtPiBWb3dlbCBPCisiXHUwOUQwPlx1MDlEMDsiICAvLyA8dW5rbm93bj4gT00gLSBEZXZhbmFnYXJpIChcdTA5NTApLCBHdWphcmF0aSAoXHUwQUQwKQorIlx1MDlEMT5cdTA5RDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTA5RDI+XHUwOUQyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwOUQzPlx1MDlEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MDlEND5cdTA5RDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTA5RDU+XHUwOUQ1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MDlENj5cdTA5Qzg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gQmVuZ2FsaSBWb3dlbCBTaWduIEFJCisiXHUwOUQ4Plx1MDk5NTsiICAvLyBMZXR0ZXIgUUEgLT4gTGV0dGVyIEtBCisiXHUwOUQ5Plx1MDk5NjsiICAvLyBMZXR0ZXIgS0hIQSAtPiBMZXR0ZXIgS0hBCisiXHUwOURBPlx1MDk5NzsiICAvLyBMZXR0ZXIgR0hIQSAtPiBMZXR0ZXIgR0EKKyJcdTA5REI+XHUwOTlDOyIgIC8vIExldHRlciBaQSAtPiBMZXR0ZXIgSkEKKyJcdTA5REU+XHUwOUFCOyIgIC8vIExldHRlciBGQSAtPiBMZXR0ZXIgUEhBCisiXHUwOUU0Plx1MDlFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwOUU1Plx1MDlFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogR3VybXVraGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQTAxPlx1MEEwMjsiCisiXHUwQTAzPlx1MEEwMzsiICAvLyA8dW5rbm93bj4gU2lnbiBWaXNhcmdhIC0gRGV2YW5hZ2FyaSAoXHUwOTAzKSAmIHRoZSByZXN0CisiXHUwQTBCPlx1MEEzMFx1MEEzRjsiCisiXHUwQTBDPlx1MEEwNzsiCisiXHUwQTBEPlx1MEExMDsiCisiXHUwQTBFPlx1MEEwRjsiCisiXHUwQTExPlx1MEExNDsiCisiXHUwQTEyPlx1MEExMzsiCisiXHUwQTI5Plx1MEEyODsiCisiXHUwQTMxPlx1MEEzMDsiCisiXHUwQTM0Plx1MEEzMzsiCisiXHUwQTM3Plx1MEEzNjsiCisiXHUwQTNEPlx1MEEzRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBBNDM+XHUwQTQzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIFIgLSBEZXZhbmFnYXJpIChcdTA5NDMpCisiXHUwQTQ0Plx1MEE0NDsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBSUiAtIERldmFuYWdhcmkgKFx1MDk0NCkKKyJcdTBBNDU+XHUwQTQ4OyIKKyJcdTBBNDY+XHUwQTQ3OyIKKyJcdTBBNDk+XHUwQTRDOyIKKyJcdTBBNEE+XHUwQTRCOyIKKyJcdTBBNTA+XHUwQTUwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwQTUxPlx1MEE1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEE1Mj5cdTBBNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBBNTM+XHUwQTUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQTU0Plx1MEE1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEE1NT5cdTBBNTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQTU2Plx1MEE0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBHdXJtdWtoaSBWb3dlbCBTaWduIEFJCisiXHUwQTU3Plx1MEE0QzsiICAvLyBBVSBMZW5ndGggTWFyayAtPiBHdXJtdWtoaSBWb3dlbCBTaWduIEFVCisiXHUwQTU4Plx1MEExNVx1MEEzQzsiCisiXHUwQTVEPlx1MEEyMlx1MEEzQzsiICAvLyBMZXR0ZXIgUkhBIC0+IEd1cm11a2hpIGxldHRlciBkZGhhIChcdTBBMjIpICsgbnVrdGEgKFx1MEEzQykKKyJcdTBBNUY+XHUwQTJGOyIKKyJcdTBBNjA+XHUwQTMwXHUwQTNGOyIKKyJcdTBBNjE+XHUwQTA4XHUwQTNDOyIKKyJcdTBBNjI+XHUwQTNGXHUwQTNDOyIKKyJcdTBBNjM+XHUwQTQwXHUwQTNDOyIKKyJcdTBBNjQ+XHUwQTY0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBBNjU+XHUwQTY1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBHdWphcmF0aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisiXHUwQThDPlx1MEFCMlx1MEFDMzsiCisiXHUwQThFPlx1MEE4RDsiCisiXHUwQTkyPlx1MEE5MTsiCisiXHUwQUE5Plx1MEFBODsiCisiXHUwQUIxPlx1MEFCMDsiCisiXHUwQUI0Plx1MEFCMzsiCisiXHUwQUM2Plx1MEFDNTsiCisiXHUwQUNBPlx1MEFDOTsiCisiXHUwQUQxPlx1MEFEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEFEMj5cdTBBRDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBBRDM+XHUwQUQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQUQ0Plx1MEFENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEFENT5cdTBBRDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQUQ2Plx1MEFDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBHdWphcmF0aSBWb3dlbCBTaWduIEFJCisiXHUwQUQ3Plx1MEFDQzsiICAvLyBBVSBMZW5ndGggTWFyayAtPiBHdWphcmF0aSBWb3dlbCBTaWduIEFVCisiXHUwQUQ4Plx1MEE5NVx1MEFCQzsiCisiXHUwQUQ5Plx1MEE5Nlx1MEFCQzsiCisiXHUwQURBPlx1MEE5N1x1MEFCQzsiCisiXHUwQURCPlx1MEE5Q1x1MEFCQzsiCisiXHUwQURDPlx1MEFBMVx1MEFCQzsiCisiXHUwQUREPlx1MEFBMlx1MEFCQzsiCisiXHUwQURFPlx1MEFBQlx1MEFCQzsiCisiXHUwQURGPlx1MEFBRlx1MEFCQzsiCisiXHUwQUUxPlx1MEFCMlx1MEFDMzsiCisiXHUwQUUyPlx1MEFCRlx1MEFCQzsiCisiXHUwQUUzPlx1MEFDMFx1MEFCQzsiCisiXHUwQUU0Plx1MEFFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQUU1Plx1MEFFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogT3JpeWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIlx1MEIwRD5cdTBCMEY7IgorIlx1MEIwRT5cdTBCMEY7IgorIlx1MEIxMT5cdTBCMTM7IgorIlx1MEIxMj5cdTBCMTM7IgorIlx1MEIyOT5cdTBCMjg7IgorIlx1MEIzMT5cdTBCMzA7IgorIlx1MEIzND5cdTBCMzM7IgorIlx1MEIzNT5cdTBCMkM7IiAgLy8gTGV0dGVyIFZBIC0+IE9yaXlhIExldHRlciBCQQorIlx1MEI0ND5cdTBCNDNcdTBCM0M7IgorIlx1MEI0NT5cdTBCNDc7IgorIlx1MEI0Nj5cdTBCNDc7IgorIlx1MEI0OT5cdTBCNEI7IgorIlx1MEI0QT5cdTBCNEI7IgorIlx1MEI1MD5cdTBCMTNcdTBCMDE7IgorIlx1MEI1MT5cdTBCNTE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBCNTI+XHUwQjUyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQjUzPlx1MEI1MzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEI1ND5cdTBCNTQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBCNTU+XHUwQjU1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEI1OD5cdTBCMTVcdTBCM0M7IgorIlx1MEI1OT5cdTBCMTZcdTBCM0M7IgorIlx1MEI1QT5cdTBCMTdcdTBCM0M7IgorIlx1MEI1Qj5cdTBCMUNcdTBCM0M7IgorIlx1MEI1RT5cdTBCMkJcdTBCM0M7IgorIlx1MEI2Mj5cdTBCNTZcdTBCM0M7IgorIlx1MEI2Mz5cdTBCNTdcdTBCM0M7IgorIlx1MEI2ND5cdTBCNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEI2NT5cdTBCNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRhbWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEI4MT5cdTBCODE7IiAgLy8gPHVua25vd24+IENhbmRyYWJpbmR1IC0gRGV2YW5hZ2FyaSAoXHUwOTAxKSAsZXRjCisiXHUwQjhCPlx1MEJCMFx1MEJCRjsiCisiXHUwQjhDPlx1MEI4NzsiCisiXHUwQjhEPlx1MEI4NjsiCisiXHUwQjkxPlx1MEI4NjsiCisiXHUwQjk2Plx1MEI5NTsiCisiXHUwQjk3Plx1MEI5NTsiCisiXHUwQjk4Plx1MEI5NTsiCisiXHUwQjlCPlx1MEI5QTsiCisiXHUwQjlEPlx1MEI5QTsiCisiXHUwQkEwPlx1MEI5RjsiCisiXHUwQkExPlx1MEI5RjsiCisiXHUwQkEyPlx1MEI5RjsiCisiXHUwQkE1Plx1MEJBNDsiCisiXHUwQkE2Plx1MEJBNDsiCisiXHUwQkE3Plx1MEJBNDsiCisiXHUwQkFCPlx1MEJBQTsiCisiXHUwQkFDPlx1MEJBQTsiCisiXHUwQkFEPlx1MEJBQTsiCisiXHUwQkI2Plx1MEJCNzsiCisiXHUwQkJDPlx1MEJCQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBCQkQ+XHUwQkJEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEJDMz5cdTBCQ0RcdTBCQjBcdTBCQkY7IgorIlx1MEJDND5cdTBCQ0RcdTBCQjBcdTBCQkY7IgorIlx1MEJDNT5cdTBCQkU7IgorIlx1MEJDOT5cdTBCQkU7IgorIlx1MEJEMD5cdTBCOTNcdTBCQUVcdTBCQ0Q7IgorIlx1MEJEMT5cdTBCRDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBCRDI+XHUwQkQyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQkQzPlx1MEJEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEJEND5cdTBCRDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBCRDU+XHUwQkQ1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEJENj5cdTBCQzg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gVGFtaWwgVm93ZWwgU2lnbiBBSQorIlx1MEJEOD5cdTBCOTU7IgorIlx1MEJEOT5cdTBCOTU7IgorIlx1MEJEQT5cdTBCOTU7IgorIlx1MEJEQj5cdTBCOUM7IgorIlx1MEJEQz5cdTBCOUY7IgorIlx1MEJERD5cdTBCOUY7IgorIlx1MEJERT5cdTBCQUE7IgorIlx1MEJERj5cdTBCQUY7IgorIlx1MEJFMD5cdTBCQjBcdTBCQkY7IgorIlx1MEJFMT5cdTBCODg7IgorIlx1MEJFMj5cdTBCRTI7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTCAtIERldmFuYWdhcmkgKFx1MDk2MikKKyJcdTBCRTM+XHUwQkUzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIExMIC0gRGV2YW5hZ2FyaSAoXHUwOTYzKQorIlx1MEJFND5cdTBCRTQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEJFNT5cdTBCRTU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKyJcdTBCRTY+XHUwMDMwOyIgIC8vIFpFUk8gLSBEaWdpdCBaRVJPCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUZWx1Z3UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBDMEQ+XHUwQzBFOyIKKyJcdTBDMTE+XHUwQzEyOyIKKyJcdTBDMjk+XHUwQzI4OyIKKyJcdTBDMzQ+XHUwQzMzOyIKKyJcdTBDM0M+XHUwQzNDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEMzRD5cdTBDM0Q7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwQzQ1Plx1MEM0NjsiCisiXHUwQzQ5Plx1MEM0QTsiCisiXHUwQzUwPlx1MEMxM1x1MEMwMjsiCisiXHUwQzUxPlx1MEM1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEM1Mj5cdTBDNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBDNTM+XHUwQzUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQzU0Plx1MEM1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEM1Nz5cdTBDNEM7IgorIlx1MEM1OD5cdTBDMTU7IgorIlx1MEM1OT5cdTBDMTY7IgorIlx1MEM1QT5cdTBDMTc7IgorIlx1MEM1Qj5cdTBDMUM7IgorIlx1MEM1Qz5cdTBDMjE7IgorIlx1MEM1RD5cdTBDMjI7IgorIlx1MEM1RT5cdTBDMkI7IgorIlx1MEM1Rj5cdTBDMkY7IgorIlx1MEM2Mj5cdTBDM0Y7IgorIlx1MEM2Mz5cdTBDNDA7IgorIlx1MEM2ND5cdTBDNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEM2NT5cdTBDNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEthbm5hZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEM4MT5cdTBDODI7IgorIlx1MEM4RD5cdTBDOEU7IgorIlx1MEM5MT5cdTBDOTI7IgorIlx1MENBOT5cdTBDQTg7IgorIlx1MENCND5cdTBDQjM7IgorIlx1MENCQz5cdTBDQkM7IiAgLy8gPHVua25vd24+IE51a3RhCisiXHUwQ0JEPlx1MENCRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBDQzU+XHUwQ0M2OyIKKyJcdTBDQzk+XHUwQ0NBOyIKKyJcdTBDRDA+XHUwQzkzXHUwQzgyOyIKKyJcdTBDRDE+XHUwQ0QxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQ0QyPlx1MENEMjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MENEMz5cdTBDRDM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBDRDQ+XHUwQ0Q0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQ0Q3Plx1MENDQzsiCisiXHUwQ0Q4Plx1MEM5NTsiCisiXHUwQ0Q5Plx1MEM5NjsiCisiXHUwQ0RBPlx1MEM5NzsiCisiXHUwQ0RCPlx1MEM5QzsiCisiXHUwQ0RDPlx1MENBMTsiCisiXHUwQ0REPlx1MENBMjsiCisiXHUwQ0RGPlx1MENBRjsiCisiXHUwQ0UyPlx1MENCRjsiCisiXHUwQ0UzPlx1MENDMDsiCisiXHUwQ0U0Plx1MENFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQ0U1Plx1MENFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTWFsYXlhbGFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwRDAxPlx1MEQwMjsiCisiXHUwRDBEPlx1MEQwNjsiCisiXHUwRDExPlx1MEQxMzsiCisiXHUwRDI5Plx1MEQyODsiCisiXHUwRDNDPlx1MEQzQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBEM0Q+XHUwRDNEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEQ0ND5cdTBENDQ7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgUlIgLSBEZXZhbmFnYXJpIChcdTA5NDQpCisiXHUwRDQ1Plx1MEQzRTsiCisiXHUwRDQ5Plx1MEQ0QjsiCisiXHUwRDUwPlx1MEQ1MDsiICAvLyA8dW5rbm93bj4gT00gLSBEZXZhbmFnYXJpIChcdTA5NTApLCBHdWphcmF0aSAoXHUwQUQwKQorIlx1MEQ1MT5cdTBENTE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBENTI+XHUwRDUyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwRDUzPlx1MEQ1MzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEQ1ND5cdTBENTQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBENTU+XHUwRDU1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEQ1Nj5cdTBENDg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gTWFsYXlhbGFtIFZvd2VsIFNpZ24gQUkKKyJcdTBENTg+XHUwRDE1OyIKKyJcdTBENTk+XHUwRDE2OyIKKyJcdTBENUE+XHUwRDE3OyIKKyJcdTBENUI+XHUwRDFDOyIKKyJcdTBENUM+XHUwRDIxOyIKKyJcdTBENUQ+XHUwRDIyOyIKKyJcdTBENUU+XHUwRDJCOyIKKyJcdTBENUY+XHUwRDJGOyIKKyJcdTBENjI+XHUwRDYyOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIEwgLSBEZXZhbmFnYXJpIChcdTA5NjIpCisiXHUwRDYzPlx1MEQ2MzsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBMTCAtIERldmFuYWdhcmkgKFx1MDk2MykKKyJcdTBENjQ+XHUwRDY0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBENjU+XHUwRDY1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3JidFRlbXBsYXRlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNTQ5YmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3JidFRlbXBsYXRlLnR4dApAQCAtMCwwICsxLDI2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqID4gVEhJUyBGSUxFIFdBUyBNQUNISU5FIEdFTkVSQVRFRCA8CisqID4gICAgICAgRE8gTk9UIEVESVQgQlkgSEFORCAgICAgICA8CisqID4gICAgICBSVU4gVE9PTCBUTyBSRUdFTkVSQVRFICAgICA8CisqIFRvb2w6ICRUT09MCisqIENyZWF0aW9uIGRhdGU6ICREQVRFCisqLworcGFja2FnZSBjb20uaWJtLnRleHQucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdGlvblJ1bGVfJFNDUklQVEZST01fJFNDUklQVFRPIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJSdWxlIiwKKyAgICAgICAgICAgICAgJFJVTEVTCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3ZhcnN1Yi5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZDM0MmM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3ZhcnN1Yi5iYXQKQEAgLTAsMCArMSw4MSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKK0ByZW0gPSAnLS0qLVBlcmwtKi0tCitAZWNobyBvZmYKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAteCAtUyAiJTAiICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Citnb3RvIGVuZG9mcGVybAorOldpbk5UCitwZXJsIC14IC1TICIlMCIgJSoKK2lmIE5PVCAiJUNPTVNQRUMlIiA9PSAiJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGNtZC5leGUiIGdvdG8gZW5kb2ZwZXJsCitpZiAlZXJyb3JsZXZlbCUgPT0gOTAwOSBlY2hvIFlvdSBkbyBub3QgaGF2ZSBQZXJsIGluIHlvdXIgUEFUSC4KK2dvdG8gZW5kb2ZwZXJsCitAcmVtICc7CisjIXBlcmwKKyNsaW5lIDE0CisKKyMgVXNhZ2U6IHBlcmwgdmFyc3ViLmJhdCBbLW58LW5yXSA8aW5maWxlPiA8b3V0ZmlsZT4KKyMKKyMgU3Vic3RpdHV0ZXMgdmFyaWFibGVzIGludG8gcnVsZXMgYW5kIGRlbGV0ZXMgdmFyaWFibGUgZGVmaW5pdGlvbgorIyBzdGF0ZW1lbnRzLiAgVmFyaWFibGVzIHRoYXQgZXhwYW5kIHRvIFVuaWNvZGVTZXRzIGFyZSBOT1QKKyMgc3Vic3RpdHV0ZWQuCisjCisjICAtbiAgIEFmdGVyd2FyZHMsIHJ1biBuYXRpdmUyYXNjaWkgLWVuY29kaW5nIFVURjgKKyMgIC1uciAgQWZ0ZXJ3YXJkcywgcnVuIG5hdGl2ZTJhc2NpaSAtZW5jb2RpbmcgVVRGOCAtcmV2ZXJzZQorCiskTjJBID0gMDsKKworJElOID0gc2hpZnQ7CitpZiAoJElOID1+IC9eLW4vKSB7CisgICAgJE4yQSA9IDE7CisgICAgJE4yQW9wdGlvbiA9ICgkSU4gZXEgJy1ucicpID8gIiAtcmV2ZXJzZSAiIDogIiI7CisgICAgJElOID0gc2hpZnQ7Cit9CiskT1VUID0gc2hpZnQ7CisKK2lmICghKCRJTiAmJiAkT1VUKSkgeworICAgIGRpZSAiVXNhZ2U6ICQwIFstbnwtbnJdIDxpbmZpbGU+IDxvdXRmaWxlPiI7Cit9CisKK29wZW4oSU4pIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkSU46ICQhIjsKK29wZW4oT1VULCAiPiRPVVQiKSBvciBkaWUgIkNhbid0IG9wZW4gJE9VVDogJCEiOworCit3aGlsZSAoPElOPikgeworICAgIGlmICgvXlxzKlwkKFthLXpBLVowLTlfXSspXHMqPVxzKihbXjtcI10rKVxzKjtccyooXCMuKik/JC8pIHsKKyAgICAgICAgIyBUaGlzIGxvb2tzIGxpa2UgYSB2YXJpYWJsZSBkZWZpbml0aW9uCisgICAgICAgIG15ICgkdmFyLCAkZGVmKSA9ICgkMSwgJDIpOworICAgICAgICAjIERvbid0IHN1YnN0aXR1dGUgVW5pY29kZVNldCB2YXJzCisgICAgICAgIGlmICgkZGVmICF+IC9eXFsvKSB7CisgICAgICAgICAgICBpZiAoZXhpc3RzICRWQVJ7JHZhcn0pIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVycm9yOiBEdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiAkdmFyXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkVkFSeyR2YXJ9ID0gJGRlZjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgIyBEbyB2YXJpYWJsZSBzdWJzdGl0dXRpb25zLCBhbmQgb3V0cHV0IGxpbmUKKyAgICBmb3JlYWNoIG15ICR2YXIgKGtleXMgJVZBUikgeworICAgICAgICBteSAkZGVmID0gJFZBUnskdmFyfTsKKyAgICAgICAgcy9cJCR2YXJcYi8kZGVmL2c7CisgICAgfQorICAgIHByaW50IE9VVDsKK30KKworY2xvc2UoT1VUKTsKK2Nsb3NlKElOKTsKKworaWYgKCROMkEpIHsKKyAgICBgbmF0aXZlMmFzY2lpIC1lbmNvZGluZyBVVEY4ICROMkFvcHRpb24gJE9VVCAkT1VULm5hdGl2ZTJhc2NpaWA7CisgICAgdW5saW5rICRPVVQ7CisgICAgcmVuYW1lICIkT1VULm5hdGl2ZTJhc2NpaSIsICRPVVQ7Cit9CisKK19fRU5EX18KKzplbmRvZnBlcmwKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXNzZXJ0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q4YjExMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vIDEuMyBjb21wYXRpYmlsaXR5IGxheWVyCitwdWJsaWMgY2xhc3MgQXNzZXJ0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZmFpbChFeGNlcHRpb24gZSkgeworICAgICAgICBmYWlsKGUudG9TdHJpbmcoKSk7IC8vIGNhbid0IHdyYXAgZXhjZXB0aW9ucyBpbiBqZGsgMS4zCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmYWlsKFN0cmluZyBtc2cpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiZmFpbHVyZSAnIiArIG1zZyArICInIik7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NydChib29sZWFuIHZhbCkgeworICAgICAgICBpZiAoIXZhbCkgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiYXNzZXJ0IGZhaWxlZCIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzcnQoU3RyaW5nIG1zZywgYm9vbGVhbiB2YWwpIHsKKyAgICAgICAgaWYgKCF2YWwpIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImFzc2VydCAnIiArIG1zZyArICInIGZhaWxlZCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGIyZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhCkBAIC0wLDAgKzEsMzc5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8cD5CaW5hcnkgT3JkZXJlZCBDb21wcmVzc2lvbiBmb3IgVW5pY29kZTwvcD4KKyAqIAorICogPHA+VXNlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCB0aGUgSUNVIHBhcGVyIG9uIAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG9jcy9wYXBlcnMvYmluYXJ5X29yZGVyZWRfY29tcHJlc3Npb25fZm9yX3VuaWNvZGUuaHRtbCI+CisgKiBCT0NVPC9hPiBiZWZvcmUgYXR0ZW1wdGluZyB0byB1c2UgdGhpcyBjbGFzcy48L3A+CisgKiAKKyAqIDxwPkJPQ1UgaXMgdXNlZCB0byBjb21wcmVzcyB1bmljb2RlIHRleHQgaW50byBhIHN0cmVhbSBvZiB1bnNpZ25lZAorICogYnl0ZXMuICBGb3IgbWFueSBraW5kcyBvZiB0ZXh0IHRoZSBjb21wcmVzc2lvbiBjb21wYXJlcyBmYXZvcmFibHkKKyAqIHRvIFVURi04LCBhbmQgZm9yIHNvbWUga2luZHMgb2YgdGV4dCAoc3VjaCBhcyBDSkspIGl0IGRvZXMgYmV0dGVyLgorICogVGhlIHJlc3VsdGluZyBieXRlcyB3aWxsIGNvbXBhcmUgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIG9yaWdpbmFsCisgKiBjb2RlIHBvaW50cy4gIFRoZSBieXRlIHN0cmVhbSBkb2VzIG5vdCBjb250YWluIHRoZSB2YWx1ZXMgMCwgMSwgb3IKKyAqIDIuPC9wPgorICogCisgKiA8cD5PbmUgZXhhbXBsZSBvZiBhIHVzZSBvZiBCT0NVIGlzIGluIHtAbGluayAKKyAqIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IjZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyl9IGZvciBhIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdCB3aXRoIAorICogY29sbGF0aW9uIHN0cmVuZ3RoIElERU5USUNBTC4gVGhlIHJlc3VsdCBDb2xsYXRpb25LZXkgd2lsbCBjb25zaXN0IG9mIHRoZSAKKyAqIGNvbGxhdGlvbiBvcmRlciBvZiB0aGUgc291cmNlIHN0cmluZyBmb2xsb3dlZCBieSB0aGUgQk9DVSByZXN1bHQgb2YgdGhlIAorICogc291cmNlIHN0cmluZy4gCisgKiA8L3A+IAorICoKKyAqIDxwPlVubGlrZSBhIFVURiBlbmNvZGluZywgQk9DVS1jb21wcmVzc2VkIHRleHQgaXMgbm90IHN1aXRhYmxlIGZvcgorICogcmFuZG9tIGFjY2Vzcy48L3A+CisgKiAKKyAqIDxwPk1ldGhvZDogU2xvcGUgRGV0ZWN0aW9uPGJyPiBSZW1lbWJlciB0aGUgcHJldmlvdXMgY29kZSBwb2ludAorICogKGluaXRpYWwgMCkuICBGb3IgZWFjaCBjb2RlIHBvaW50IGluIHRoZSBzdHJpbmcsIGVuY29kZSB0aGUKKyAqIGRpZmZlcmVuY2Ugd2l0aCB0aGUgcHJldmlvdXMgb25lLiAgU2ltaWxhciB0byBhIFVURiwgdGhlIGxlbmd0aCBvZgorICogdGhlIGJ5dGUgc2VxdWVuY2UgaXMgZW5jb2RlZCBpbiB0aGUgbGVhZCBieXRlcy4gIFVubGlrZSBhIFVURiwgdGhlCisgKiB0cmFpbCBieXRlIHZhbHVlcyBtYXkgb3ZlcmxhcCB3aXRoIGxlYWQvc2luZ2xlIGJ5dGUgdmFsdWVzLiAgVGhlCisgKiBzaWduZWRuZXNzIG9mIHRoZSBkaWZmZXJlbmNlIG11c3QgYmUgZW5jb2RlZCBhcyB0aGUgbW9zdAorICogc2lnbmlmaWNhbnQgcGFydC48L3A+CisgKgorICogPHA+V2UgZW5jb2RlIGRpZmZlcmVuY2VzIHdpdGggZmV3IGJ5dGVzIGlmIHRoZWlyIGFic29sdXRlIHZhbHVlcworICogYXJlIHNtYWxsLiAgRm9yIGNvcnJlY3Qgb3JkZXJpbmcsIHdlIG11c3QgdHJlYXQgdGhlIGVudGlyZSB2YWx1ZQorICogcmFuZ2UgLTEwZmZmZi4uKzEwZmZmZiBpbiBhc2NlbmRpbmcgb3JkZXIsIHdoaWNoIGZvcmJpZHMgZW5jb2RpbmcKKyAqIHRoZSBzaWduIGFuZCB0aGUgYWJzb2x1dGUgdmFsdWUgc2VwYXJhdGVseS4gSW5zdGVhZCwgd2Ugc3BsaXQgdGhlCisgKiBsZWFkIGJ5dGUgcmFuZ2UgaW4gdGhlIG1pZGRsZSBhbmQgZW5jb2RlIG5vbi1uZWdhdGl2ZSB2YWx1ZXMgZ29pbmcKKyAqIHVwIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgZ29pbmcgZG93bi48L3A+CisgKgorICogPHA+Rm9yIHZlcnkgc21hbGwgYWJzb2x1dGUgdmFsdWVzLCB0aGUgZGlmZmVyZW5jZSBpcyBhZGRlZCB0byBhCisgKiBtaWRkbGUgYnl0ZSB2YWx1ZSBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RlZCBkaWZmZXJlbmNlcy4gIEZvcgorICogc29tZXdoYXQgbGFyZ2VyIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMgZGl2aWRlZCBieSB0aGUKKyAqIG51bWJlciBvZiBieXRlIHZhbHVlcyBhdmFpbGFibGUsIHRoZSBtb2R1bG8gaXMgdXNlZCBmb3Igb25lIHRyYWlsCisgKiBieXRlLCBhbmQgdGhlIHJlbWFpbmRlciBpcyBhZGRlZCB0byBhIGxlYWQgYnl0ZSBhdm9pZGluZyB0aGUKKyAqIHNpbmdsZS1ieXRlIHJhbmdlLiAgRm9yIGxhcmdlIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMKKyAqIHNpbWlsYXJseSBlbmNvZGVkIGluIHRocmVlIGJ5dGVzLiAoU3luIFdlZSwgSSBuZWVkIGV4YW1wbGVzCisgKiBoZXJlLik8L3A+CisgKgorICogPHA+Qk9DVSBkb2VzIG5vdCB1c2UgYnl0ZSB2YWx1ZXMgMCwgMSwgb3IgMiwgYnV0IHVzZXMgYWxsIG90aGVyCisgKiBieXRlIHZhbHVlcyBmb3IgbGVhZCBhbmQgc2luZ2xlIGJ5dGVzLCBzbyB0aGF0IHRoZSBtaWRkbGUgcmFuZ2Ugb2YKKyAqIHNpbmdsZSBieXRlcyBpcyBhcyBsYXJnZSBhcyBwb3NzaWJsZS48L3A+CisgKgorICogPHA+Tm90ZSB0aGF0IHRoZSBsZWFkIGJ5dGUgcmFuZ2VzIG92ZXJsYXAgc29tZSwgYnV0IHRoYXQgdGhlCisgKiBzZXF1ZW5jZXMgYXMgYSB3aG9sZSBhcmUgd2VsbCBvcmRlcmVkLiBJLmUuLCBldmVuIGlmIHRoZSBsZWFkIGJ5dGUKKyAqIGlzIHRoZSBzYW1lIGZvciBzZXF1ZW5jZXMgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRoZSB0cmFpbCBieXRlcworICogZXN0YWJsaXNoIGNvcnJlY3Qgb3JkZXIuICBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBlbmNvZGUgc2xpZ2h0bHkKKyAqIGxhcmdlciByYW5nZXMgZm9yIGVhY2ggbGVuZ3RoICg+MSkgYnkgc3VidHJhY3RpbmcgdGhlIGxvd2VyIGJvdW5kCisgKiBvZiB0aGUgcmFuZ2UuIEhvd2V2ZXIsIHRoYXQgd291bGQgYWxzbyBzbG93IGRvd24gdGhlIGNhbGN1bGF0aW9uLgorICogKFN5biBXZWUsIG5lZWQgYW4gZXhhbXBsZSkuPC9wPgorICoKKyAqIDxwPkZvciB0aGUgYWN0dWFsIHN0cmluZyBlbmNvZGluZywgYW4gb3B0aW1pemF0aW9uIG1vdmVzIHRoZQorICogcHJldmlvdXMgY29kZSBwb2ludCB2YWx1ZSB0byB0aGUgbWlkZGxlIG9mIGl0cyBVbmljb2RlIHNjcmlwdCBibG9jaworICogdG8gbWluaW1pemUgdGhlIGRpZmZlcmVuY2VzIGluIHNhbWUtc2NyaXB0IHRleHQgcnVucy4gIChTeW4gV2VlLAorICogbmVlZCBhbiBleGFtcGxlLik8L3A+CisgKgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzaW5jZSByZWxlYXNlIDIuMiwgTWF5IDNyZCAyMDAyCisgKiBAZHJhZnQgMi4yIAorICovCitwdWJsaWMgY2xhc3MgQk9DVSAKK3sgICAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5FbmNvZGUgdGhlIGNvZGUgcG9pbnRzIG9mIGEgc3RyaW5nIGFzIGEgc2VxdWVuY2Ugb2YgYnl0ZXMsCisgICAgICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVyLjwvcD4KKyAgICAgKiA8cD5UaGUgbWluaW11bSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCBmb3IgdGhlIGNvbXByZXNzaW9uIGNhbiBiZSAKKyAgICAgKiBwcmVmbGlnaHRlZCBieSBnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgc291cmNlCisgICAgICogQHBhcmFtIGJ1ZmZlciBvdXRwdXQgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldCB0byBzdGFydCB3cml0aW5nIHRvCisgICAgICogQHJldHVybiBlbmQgb2Zmc2V0IHdoZXJlIHRoZSB3cml0aW5nIHN0b3BwZWQKKyAgICAgKiBAc2VlICNnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIHNpemUgb2YgYnVmZmVyIGlzIAorICAgICAqICAgICAgICAgICAgdG9vIHNtYWxsIGZvciB0aGUgb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXByZXNzKFN0cmluZyBzb3VyY2UsIGJ5dGUgYnVmZmVyW10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaW50IHByZXYgPSAwOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc291cmNlKTsKKyAgICAgICAgaW50IGNvZGVwb2ludCA9IGl0ZXJhdG9yLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYgKHByZXYgPCAweDRlMDAgfHwgcHJldiA+PSAweGEwMDApIHsKKyAgICAgICAgICAgICAgICBwcmV2ID0gKHByZXYgJiB+MHg3ZikgLSBTTE9QRV9SRUFDSF9ORUdfMV87CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVW5paGFuIFUrNGUwMC4uVSs5ZmE1OgorICAgICAgICAgICAgICAgIC8vIGRvdWJsZS1ieXRlcyBkb3duIGZyb20gdGhlIHVwcGVyIGVuZAorICAgICAgICAgICAgICAgIHByZXYgPSAweDlmZmYgLSBTTE9QRV9SRUFDSF9QT1NfMl87CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgb2Zmc2V0ID0gd3JpdGVEaWZmKGNvZGVwb2ludCAtIHByZXYsIGJ1ZmZlciwgb2Zmc2V0KTsKKyAgICAgICAgICAgIHByZXYgPSBjb2RlcG9pbnQ7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiAgYnl0ZXMgdGhhdCBjb21wcmVzcygpIHdvdWxkIHdyaXRlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBCT0NVIHJlc3VsdCAKKyAgICAgKiBAc2VlICNjb21wcmVzcyhTdHJpbmcsIGJ5dGVbXSwgaW50KQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbXByZXNzaW9uTGVuZ3RoKFN0cmluZyBzb3VyY2UpIAorICAgIHsKKyAgICAgICAgaW50IHByZXYgPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yID0gIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzb3VyY2UpOworICAgICAgICBpbnQgY29kZXBvaW50ID0gaXRlcmF0b3IubmV4dENvZGVQb2ludCgpOworICAgICAgICB3aGlsZSAoY29kZXBvaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpZiAocHJldiA8IDB4NGUwMCB8fCBwcmV2ID49IDB4YTAwMCkgeworICAgICAgICAgICAgICAgIHByZXYgPSAocHJldiAmIH4weDdmKSAtIFNMT1BFX1JFQUNIX05FR18xXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmloYW4gVSs0ZTAwLi5VKzlmYTU6CisgICAgICAgICAgICAgICAgLy8gZG91YmxlLWJ5dGVzIGRvd24gZnJvbSB0aGUgdXBwZXIgZW5kCisgICAgICAgICAgICAgICAgcHJldiA9IDB4OWZmZiAtIFNMT1BFX1JFQUNIX1BPU18yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICByZXN1bHQgKz0gbGVuZ3RoT2ZEaWZmKGNvZGVwb2ludCAtIHByZXYpOworICAgICAgICAgICAgcHJldiA9IGNvZGVwb2ludDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8vIHB1YmxpYyBnZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogRG8gbm90IHVzZSBieXRlIHZhbHVlcyAwLCAxLCAyIGJlY2F1c2UgdGhleSBhcmUgc2VwYXJhdG9ycyBpbiBzb3J0IGtleXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX01JTl8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfID0gMHhmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfTUlERExFXyA9IDB4ODE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1RBSUxfQ09VTlRfID0gU0xPUEVfTUFYXyAtIFNMT1BFX01JTl8gKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfQllURVNfID0gNDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBsZWFkIGJ5dGVzOgorICAgICAqIDEgICAgICAgIG1pZGRsZSBieXRlIGZvciAwCisgICAgICogMio4MD0xNjAgc2luZ2xlIGJ5dGVzIGZvciAhPTAKKyAgICAgKiAyKjQyPTg0ICBmb3IgZG91YmxlLWJ5dGUgdmFsdWVzCisgICAgICogMiozPTYgICAgZm9yIDMtYnl0ZSB2YWx1ZXMKKyAgICAgKiAyKjE9MiAgICBmb3IgNC1ieXRlIHZhbHVlcworICAgICAqCisgICAgICogVGhlIHN1bSBtdXN0IGJlIDw9U0xPUEVfVEFJTF9DT1VOVC4KKyAgICAgKgorICAgICAqIFdoeSB0aGVzZSBudW1iZXJzPworICAgICAqIC0gVGhlcmUgc2hvdWxkIGJlID49MTI4IHNpbmdsZS1ieXRlIHZhbHVlcyB0byBjb3ZlciAxMjgtYmxvY2tzCisgICAgICogICB3aXRoIHNtYWxsIHNjcmlwdHMuCisgICAgICogLSBUaGVyZSBzaG91bGQgYmUgPj0yMDkwMiBzaW5nbGUvZG91YmxlLWJ5dGUgdmFsdWVzIHRvIGNvdmVyIFVuaWhhbi4KKyAgICAgKiAtIEl0IGhlbHBzIENKSyBFeHRlbnNpb24gQiBzb21lIGlmIHRoZXJlIGFyZSAzLWJ5dGUgdmFsdWVzIHRoYXQgY292ZXIKKyAgICAgKiAgIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZW0gYW5kIFVuaWhhbi4KKyAgICAgKiAgIFRoaXMgYWxzbyBoZWxwcyB0byBqdW1wIGFtb25nIGRpc3RhbnQgcGxhY2VzIGluIHRoZSBCTVAuCisgICAgICogLSBGb3VyLWJ5dGUgdmFsdWVzIGFyZSBuZWNlc3NhcnkgdG8gY292ZXIgdGhlIHJlc3Qgb2YgVW5pY29kZS4KKyAgICAgKgorICAgICAqIFN5bW1ldHJpY2FsIGxlYWQgYnl0ZSBjb3VudHMgYXJlIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBXaXRoIGFuIGVxdWFsIGRpc3RyaWJ1dGlvbiBvZiBldmVuIGFuZCBvZGQgZGlmZmVyZW5jZXMgdGhlcmUgaXMgYWxzbworICAgICAqIG5vIGFkdmFudGFnZSB0byBhc3ltbWV0cmljYWwgbGVhZCBieXRlIGNvdW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU0lOR0xFXyA9IDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzJfID0gNDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX0xFQURfM18gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzRfID0gMTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3Igc2luZ2xlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzFfID0gU0xPUEVfU0lOR0xFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzFfID0gKC1TTE9QRV9TSU5HTEVfKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3IgZG91YmxlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzJfID0gCisgICAgICAgIFNMT1BFX0xFQURfMl8gKiBTTE9QRV9UQUlMX0NPVU5UXyArIFNMT1BFX0xFQURfMl8gLSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9ORUdfMl8gPSAoLVNMT1BFX1JFQUNIX1BPU18yXyAtIDEpOworCisgICAgLyoqIAorICAgICAqIFRoZSBkaWZmZXJlbmNlIHZhbHVlIHJhbmdlIGZvciAzLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzNfID0gU0xPUEVfTEVBRF8zXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKyAoU0xPUEVfTEVBRF8zXyAtIDEpCisgICAgICAgICogU0xPUEVfVEFJTF9DT1VOVF8gKworICAgICAgICAoU0xPUEVfVEFJTF9DT1VOVF8gLSAxKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzNfID0gKC1TTE9QRV9SRUFDSF9QT1NfM18gLSAxKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgbGVhZCBieXRlIHN0YXJ0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzJfID0gU0xPUEVfTUlERExFXyAKKyAgICAgICAgKyBTTE9QRV9TSU5HTEVfICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzNfID0gU0xPUEVfU1RBUlRfUE9TXzJfIAorICAgICAgICArIFNMT1BFX0xFQURfMl87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1NUQVJUX05FR18yXyA9IFNMT1BFX01JRERMRV8gKyAKKyAgICAgICAgU0xPUEVfUkVBQ0hfTkVHXzFfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TVEFSVF9ORUdfM18gPSBTTE9QRV9TVEFSVF9ORUdfMl8KKyAgICAgICAgLSBTTE9QRV9MRUFEXzJfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBwcml2YXRlIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBCT0NVKCkKKyAgICB7CisgICAgfSAgICAgICAgICAgIAorICAgIC8vL0NMT1ZFUjpPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW50ZWdlciBkaXZpc2lvbiBhbmQgbW9kdWxvIHdpdGggbmVnYXRpdmUgbnVtZXJhdG9ycworICAgICAqIHlpZWxkcyBuZWdhdGl2ZSBtb2R1bG8gcmVzdWx0cyBhbmQgcXVvdGllbnRzIHRoYXQgYXJlIG9uZSBtb3JlIHRoYW4KKyAgICAgKiB3aGF0IHdlIG5lZWQgaGVyZS4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIHdoaWNoIG9wZXJhdGlvbnMgYXJlIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEBwYXJhbSBmYWN0b3IgdGhlIGZhY3RvciB0byB1c2UgZm9yIGRpdmlzaW9uCisgICAgICogQHJldHVybiAocmVzdWx0IG9mIGRpdmlzaW9uKSA8PCAzMiB8IG1vZHVsbyAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGdldE5lZ0Rpdk1vZChpbnQgbnVtYmVyLCBpbnQgZmFjdG9yKSAKKyAgICB7CisgICAgICAgIGludCBtb2R1bG8gPSBudW1iZXIgJSBmYWN0b3I7IAorICAgICAgICBsb25nIHJlc3VsdCA9IG51bWJlciAvIGZhY3RvcjsKKyAgICAgICAgaWYgKG1vZHVsbyA8IDApIHsgCisgICAgICAgICAgICAtLSByZXN1bHQ7IAorICAgICAgICAgICAgbW9kdWxvICs9IGZhY3RvcjsgCisgICAgICAgIH0gCisgICAgICAgIHJldHVybiAocmVzdWx0IDw8IDMyKSB8IG1vZHVsbzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEVuY29kZSBvbmUgZGlmZmVyZW5jZSB2YWx1ZSAtMHgxMGZmZmYuLisweDEwZmZmZiBpbiAxLi4zIGJ5dGVzLAorICAgICAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlcgorICAgICAqIEBwYXJhbSBkaWZmCisgICAgICogQHBhcmFtIGJ1ZmZlciBieXRlIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBieXRlIGJ1ZmZlciB0byBzdGFydCBhcHBlbmRpbmcKKyAgICAgKiBAcmV0dXJuIGVuZCBvZmZzZXQgd2hlcmUgdGhlIGFwcGVuZGluZyBzdG9wcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB3cml0ZURpZmYoaW50IGRpZmYsIGJ5dGUgYnVmZmVyW10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzFfKSB7CisgICAgICAgICAgICBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMV8pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSURETEVfICsgZGlmZik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMl8pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9TVEFSVF9QT1NfMl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZGlmZiAvIFNMT1BFX1RBSUxfQ09VTlRfKSk7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18zXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBkaWZmIC89IFNMT1BFX1RBSUxfQ09VTlRfOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKShTTE9QRV9TVEFSVF9QT1NfM18gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZGlmZiAvIFNMT1BFX1RBSUxfQ09VTlRfKSk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDM7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDNdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlmZiAlIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBkaWZmIC89IFNMT1BFX1RBSUxfQ09VTlRfOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlmZiAlIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKVNMT1BFX01BWF87CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG9uZyBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICBpbnQgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18yXykgeworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfU1RBUlRfTkVHXzJfICsgZGlmZik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfM18pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMl0gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKShTTE9QRV9TVEFSVF9ORUdfM18gKyBkaWZmKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgM10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMV0gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldF0gPSBTTE9QRV9NSU5fOworICAgICAgICAgICAgICAgIG9mZnNldCArPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvZmZzZXQ7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBIb3cgbWFueSBieXRlcyB3b3VsZCB3cml0ZURpZmYoKSB3cml0ZT8gCisgICAgICogQHBhcmFtIGRpZmYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoT2ZEaWZmKGludCBkaWZmKSAKKyAgICB7CisgICAgICAgIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18xXykgeworICAgICAgICAgICAgaWYgKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzFfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMl8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzNfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzJfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfM18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzA4ODc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZUJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8gZGxmMTMgaW50ZXJuYWwgMS4zIGNvbXBhdGliaWxpdHkgb25seQorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQnl0ZUJ1ZmZlciB7CisgICAgcHJpdmF0ZSBieXRlW10gZGF0YTsKKworICAgIHByaXZhdGUgaW50IHBvczsKKworICAgIHByaXZhdGUgaW50IGxpbWl0OworCisgICAgcHJpdmF0ZSBCeXRlQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyBieXRlW10gYXJyYXkoKSB7CisgICAgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtsaW1pdF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gZGF0YVtpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgQnl0ZUJ1ZmZlciB3cmFwKGJ5dGVbXSBkYXRhKSB7CisgICAgICAgIGlmIChkYXRhID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciByZXN1bHQgPSBuZXcgQnl0ZUJ1ZmZlcigpOworICAgICAgICByZXN1bHQuZGF0YSA9IGRhdGE7CisgICAgICAgIHJlc3VsdC5wb3MgPSAwOworICAgICAgICByZXN1bHQubGltaXQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGxpbWl0KCkgeworICAgICAgICByZXR1cm4gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIGludCByZW1haW5pbmcoKSB7CisgICAgICAgIHJldHVybiBsaW1pdCAtIHBvczsKKyAgICB9CisKKyAgICBwdWJsaWMgYnl0ZSBnZXQoKSB7CisgICAgICAgIGlmIChwb3MgPCBsaW1pdCkKKyAgICAgICAgICAgIHJldHVybiBkYXRhW3BvcysrXTsKKyAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBnZXQoYnl0ZVtdIGRzdCwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyBsZW5ndGggPiBkc3QubGVuZ3RoIHx8IHBvcyArIGxlbmd0aCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGRzdFtvZmZzZXQrK10gPSBkYXRhW3BvcysrXTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJ5dGVCdWZmZXIgYWxsb2NhdGUoaW50IHNpemUpeworICAgICAgICBCeXRlQnVmZmVyIHJldCA9IG5ldyBCeXRlQnVmZmVyKCk7CisgICAgICAgIHJldC5kYXRhID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjNmMmUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEKQEAgLTAsMCArMSwxNjY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBpcyBhIGNsYXNzIHRoYXQgY2FuIHBlcmZvcm0gdGhlIGNhbGN1bGF0aW9ucyB0bworICogZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHN1biBhbmQgbW9vbiwgdGhlIHRpbWUgb2Ygc3VucmlzZSBhbmQKKyAqIHN1bnNldCwgYW5kIG90aGVyIGFzdHJvbm9teS1yZWxhdGVkIGRhdGEuICBUaGUgY2FsY3VsYXRpb25zIGl0IHBlcmZvcm1zCisgKiBhcmUgaW4gc29tZSBjYXNlcyBxdWl0ZSBjb21wbGljYXRlZCwgYW5kIHRoaXMgdXRpbGl0eSBjbGFzcyBzYXZlcyB5b3UKKyAqIHRoZSB0cm91YmxlIG9mIHdvcnJ5aW5nIGFib3V0IHRoZW0uCisgKiA8cD4KKyAqIFRoZSBtZWFzdXJlbWVudCBvZiB0aW1lIGlzIGEgdmVyeSBpbXBvcnRhbnQgcGFydCBvZiBhc3Ryb25vbXkuICBCZWNhdXNlCisgKiBhc3Ryb25vbWljYWwgYm9kaWVzIGFyZSBjb25zdGFudGx5IGluIG1vdGlvbiwgb2JzZXJ2YXRpb25zIGFyZSBvbmx5IHZhbGlkCisgKiBhdCBhIGdpdmVuIG1vbWVudCBpbiB0aW1lLiAgQWNjb3JkaW5nbHksIGVhY2ggPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPgorICogb2JqZWN0IGhhcyBhIDxjb2RlPnRpbWU8L2NvZGU+IHByb3BlcnR5IHRoYXQgZGV0ZXJtaW5lcyB0aGUgZGF0ZQorICogYW5kIHRpbWUgZm9yIHdoaWNoIGl0cyBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZC4gIFlvdSBjYW4gc2V0IGFuZAorICogcmV0cmlldmUgdGhpcyBwcm9wZXJ0eSB3aXRoIHtAbGluayAjc2V0RGF0ZSBzZXREYXRlfSwge0BsaW5rICNnZXREYXRlIGdldERhdGV9CisgKiBhbmQgcmVsYXRlZCBtZXRob2RzLgorICogPHA+CisgKiBBbG1vc3QgYWxsIG9mIHRoZSBjYWxjdWxhdGlvbnMgcGVyZm9ybWVkIGJ5IHRoaXMgY2xhc3MsIG9yIGJ5IGFueQorICogYXN0cm9ub21lciwgYXJlIGFwcHJveGltYXRpb25zIHRvIHZhcmlvdXMgZGVncmVlcyBvZiBhY2N1cmFjeS4gIFRoZQorICogY2FsY3VsYXRpb25zIGluIHRoaXMgY2xhc3MgYXJlIG1vc3RseSBtb2RlbGxlZCBhZnRlciB0aG9zZSBkZXNjcmliZWQKKyAqIGluIHRoZSBib29rCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvSVNCTj0wNTIxMzU2OTk3IiB0YXJnZXQ9Il90b3AiPgorICogUHJhY3RpY2FsIEFzdHJvbm9teSBXaXRoIFlvdXIgQ2FsY3VsYXRvcjwvYT4sIGJ5IFBldGVyIEouCisgKiBEdWZmZXR0LVNtaXRoLCBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcywgMTk5MC4gIFRoaXMgaXMgYW4gZXhjZWxsZW50CisgKiBib29rLCBhbmQgaWYgeW91IHdhbnQgYSBncmVhdGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIGNhbGN1bGF0aW9ucworICogYXJlIHBlcmZvcm1lZCBpdCBhIHZlcnkgZ29vZCwgcmVhZGFibGUgc3RhcnRpbmcgcG9pbnQuCisgKiA8cD4KKyAqIDxzdHJvbmc+V0FSTklORzo8L3N0cm9uZz4gVGhpcyBjbGFzcyBpcyB2ZXJ5IGVhcmx5IGluIGl0cyBkZXZlbG9wbWVudCwgYW5kCisgKiBpdCBpcyBoaWdobHkgbGlrZWx5IHRoYXQgaXRzIEFQSSB3aWxsIGNoYW5nZSB0byBzb21lIGRlZ3JlZSBpbiB0aGUgZnV0dXJlLgorICogQXQgdGhlIG1vbWVudCwgaXQgYmFzaWNhbGx5IGRvZXMganVzdCBlbm91Z2ggdG8gc3VwcG9ydCB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXJ9CisgKiBhbmQge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyfS4KKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckFzdHJvbm9tZXIgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzdHJvbm9taWNhbCBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc3RhbmRhcmQgaG91cnMgaW4gb25lIHNpZGVyZWFsIGRheS4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDI0LjkzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIFNJREVSRUFMX0RBWSA9IDIzLjkzNDQ2OTYwMDI3OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc2lkZXJlYWwgaG91cnMgaW4gb25lIG1lYW4gc29sYXIgZGF5LgorICAgICAqIEFwcHJveGltYXRlbHkgMjQuMDcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU09MQVJfREFZID0gIDI0LjA2NTcwOTgxNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2Ygc29sYXIgZGF5cyBmcm9tIG9uZSBuZXcgbW9vbiB0byB0aGUgbmV4dC4gIFRoaXMgaXMgdGhlIHRpbWUKKyAgICAgKiBpdCB0YWtlcyBmb3IgdGhlIG1vb24gdG8gcmV0dXJuIHRoZSBzYW1lIGVjbGlwdGljIGxvbmdpdHVkZSBhcyB0aGUgc3VuLgorICAgICAqIEl0IGlzIGxvbmdlciB0aGFuIHRoZSBzaWRlcmVhbCBtb250aCBiZWNhdXNlIHRoZSBzdW4ncyBsb25naXR1ZGUgaW5jcmVhc2VzCisgICAgICogZHVyaW5nIHRoZSB5ZWFyIGR1ZSB0byB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyOS41My4KKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX01PTlRICisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU1lOT0RJQ19NT05USCA9IDI5LjUzMDU4ODg1MzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgbW9vbiB0byByZXR1cm4gdG8gdGhlIHNhbWUgZWNsaXB0aWMgbG9uZ2l0dWRlIHJlbGF0aXZlIHRvIHRoZQorICAgICAqIHN0ZWxsYXIgYmFja2dyb3VuZC4gIFRoaXMgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIHNpZGVyZWFsIG1vbnRoLgorICAgICAqIEl0IGlzIHNob3J0ZXIgdGhhbiB0aGUgc3lub2RpYyBtb250aCBkdWUgdG8KKyAgICAgKiB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyNy4zMi4KKyAgICAgKgorICAgICAqIEBzZWUgI1NZTk9ESUNfTU9OVEgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9NT05USCA9IDI3LjMyMTY2OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBhdmVyYWdlIG51bWJlciBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgdmVybmFsIGVxdWlub3hlcy4KKyAgICAgKiBEdWUgdG8gdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MKKyAgICAgKiBheGlzLCB0aGlzIGlzIG5vdCBwcmVjaXNlbHkgdGhlIHNhbWUgYXMgdGhlIHNpZGVyZWFsIHllYXIuCisgICAgICogQXBwcm94aW1hdGVseSAzNjUuMjQKKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBUUk9QSUNBTF9ZRUFSID0gMzY1LjI0MjE5MTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgc3VuIHRvIHJldHVybiB0byB0aGUgc2FtZSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBmaXhlZCBzdGVsbGFyCisgICAgICogYmFja2dyb3VuZC4gIFRoaXMgaXMgdGhlIGR1cmF0aW9uIG9mIG9uZSBvcmJpdCBvZiB0aGUgZWFydGggYWJvdXQgdGhlIHN1bgorICAgICAqIGFzIGl0IHdvdWxkIGFwcGVhciB0byBhbiBvdXRzaWRlIG9ic2VydmVyLgorICAgICAqIER1ZSB0byB0aGUgcHJlY2Vzc2lvbiBvZiB0aGUgZWFydGgncworICAgICAqIGF4aXMsIHRoaXMgaXMgbm90IHByZWNpc2VseSB0aGUgc2FtZSBhcyB0aGUgdHJvcGljYWwgeWVhci4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDM2NS4yNS4KKyAgICAgKgorICAgICAqIEBzZWUgI1RST1BJQ0FMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9ZRUFSID0gMzY1LjI1NjM2OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGltZS1yZWxhdGVkIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBzZWNvbmQuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBTRUNPTkRfTVMgPSAxMDAwOworCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBtaW51dGUuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBNSU5VVEVfTVMgPSA2MCpTRUNPTkRfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGhvdXIuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIT1VSX01TICAgPSA2MCpNSU5VVEVfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIERBWV9NUyAgICA9IDI0KkhPVVJfTVM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIGp1bGlhbiBkYXkgbnVtYmVyaW5nIHNjaGVtZSB1c2VkIGJ5IGFzdHJvbm9tZXJzLCB3aGljaAorICAgICAqIGlzIDEvMS80NzEzIEJDIChKdWxpYW4pLCAxMjowMCBHTVQuICBUaGlzIGlzIGdpdmVuIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzCisgICAgICogc2luY2UgMS8xLzE5NzAgQUQgKEdyZWdvcmlhbiksIGEgbmVnYXRpdmUgbnVtYmVyLgorICAgICAqIE5vdGUgdGhhdCBqdWxpYW4gZGF5IG51bWJlcnMgYW5kCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBhcmUgPGVtPm5vdDwvZW0+IHRoZSBzYW1lIHRoaW5nLiAgQWxzbyBub3RlIHRoYXQKKyAgICAgKiBqdWxpYW4gZGF5cyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LCBub3QgbWlkbmlnaHQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSF9NUyA9IC0yMTA4NjY3NjAwMDAwMDBMOworICAgIAorLy8gIHN0YXRpYyB7CisvLyAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworLy8gICAgICBjYWwuY2xlYXIoKTsKKy8vICAgICAgY2FsLnNldChjYWwuRVJBLCAwKTsKKy8vICAgICAgY2FsLnNldChjYWwuWUVBUiwgNDcxMyk7CisvLyAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuSkFOVUFSWSk7CisvLyAgICAgIGNhbC5zZXQoY2FsLkRBVEUsIDEpOworLy8gICAgICBjYWwuc2V0KGNhbC5IT1VSX09GX0RBWSwgMTIpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEuNSBKYW4gNDcxMyBCQyA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisKKy8vICAgICAgY2FsLmNsZWFyKCk7CisvLyAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDIwMDApOworLy8gICAgICBjYWwuc2V0KGNhbC5NT05USCwgY2FsLkpBTlVBUlkpOworLy8gICAgICBjYWwuc2V0KGNhbC5EQVRFLCAxKTsKKy8vICAgICAgY2FsLmFkZChjYWwuREFURSwgLTEpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjAuMCBKYW4gMjAwMCA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisvLyAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyB2YWx1ZSBmb3IgMC4wIEphbnVhcnkgMjAwMCBBRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgbG9uZyBFUE9DSF8yMDAwX01TID0gOTQ2NTk4NDAwMDAwTDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzc29ydGVkIHByaXZhdGUgZGF0YSB1c2VkIGZvciBjb252ZXJzaW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gTXkgb3duIGNvcGllcyBvZiB0aGVzZSBzbyBjb21waWxlcnMgYXJlIG1vcmUgbGlrZWx5IHRvIG9wdGltaXplIHRoZW0gYXdheQorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBQSSA9IDMuMTQxNTkyNjUzNTg5NzkzMjM4NDY7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFBJMiA9IFBJICogMi4wOworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFJBRF9IT1VSID0gMTIgLyBQSTsgICAgICAgIC8vIHJhZGlhbnMgLT4gaG91cnMKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgREVHX1JBRCAgPSBQSSAvIDE4MDsgICAgICAgIC8vIGRlZ3JlZXMgLT4gcmFkaWFucworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBSQURfREVHICA9IDE4MCAvIFBJOyAgICAgICAgLy8gcmFkaWFucyAtPiBkZWdyZWVzCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcigpIHsKKyAgICAgICAgdGhpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB0aGF0IGlzIGluaXRpYWxpemVkIHRvCisgICAgICogdGhlIHNwZWNpZmllZCBkYXRlIGFuZCB0aW1lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIoRGF0ZSBkKSB7CisgICAgICAgIHRoaXMoZC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgdGltZS4gIFRoZSB0aW1lIGlzIGV4cHJlc3NlZCBhcyBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiBKYW51YXJ5IDEsIDE5NzAgQUQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlIGphdmEudXRpbC5EYXRlI2dldFRpbWUoKQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB3aXRoIHRoZSBnaXZlbgorICAgICAqIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuICBUaGUgb2JqZWN0J3MgdGltZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKKyAgICAgKiBkYXRlIGFuZCB0aW1lLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBsb25naXR1ZGUgVGhlIGRlc2lyZWQgbG9uZ2l0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+IGVhc3Qgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBHcmVlbndpY2ggbWVyaWRpYW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGUgIFRoZSBkZXNpcmVkIGxhdGl0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+LiAgUG9zaXRpdmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHZhbHVlcyBzaWduaWZ5IE5vcnRoLCBuZWdhdGl2ZSBTb3V0aC4KKyAgICAgKgorICAgICAqIEBzZWUgamF2YS51dGlsLkRhdGUjZ2V0VGltZSgpCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcihkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgbGF0aXR1ZGUpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBmTG9uZ2l0dWRlID0gbm9ybVBJKGxvbmdpdHVkZSAqIERFR19SQUQpOworICAgICAgICBmTGF0aXR1ZGUgID0gbm9ybVBJKGxhdGl0dWRlICAqIERFR19SQUQpOworICAgICAgICBmR210T2Zmc2V0ID0gKGxvbmcpKGZMb25naXR1ZGUgKiAyNCAqIEhPVVJfTVMgLyBQSTIpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIGFuZCBkYXRlIGdldHRlcnMgYW5kIHNldHRlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGFUaW1lIHRoZSBkYXRlIGFuZCB0aW1lLCBleHByZXNzZWQgYXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMS8xLzE5NzAgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXREYXRlCisgICAgICogQHNlZSAjZ2V0VGltZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWUobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdC4gIEFsbAorICAgICAqIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZCBiYXNlZCBvbiB0aGlzIHRpbWUgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIGFuZCBkYXRlLCBleHByZXNzZWQgYXMgYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWUoZGF0ZS5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGpkbiAgIHRoZSBkZXNpcmVkIHRpbWUsIGV4cHJlc3NlZCBhcyBhICJqdWxpYW4gZGF5IG51bWJlciIsCisgICAgICogICAgICAgICAgICAgIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZWxhcHNlZCBkYXlzIHNpbmNlIAorICAgICAqICAgICAgICAgICAgICAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULiAgTm90ZSB0aGF0IGp1bGlhbiBkYXkKKyAgICAgKiAgICAgICAgICAgICAgbnVtYmVycyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LiAgVG8gZ2V0IHRoZSBqZG4gZm9yCisgICAgICogICAgICAgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIG1pZG5pZ2h0LCBzdWJ0cmFjdCAwLjUuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRKdWxpYW5EYXkKKyAgICAgKiBAc2VlICNKVUxJQU5fRVBPQ0hfTVMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRKdWxpYW5EYXkoZG91YmxlIGpkbikgeworICAgICAgICB0aW1lID0gKGxvbmcpKGpkbiAqIERBWV9NUykgKyBKVUxJQU5fRVBPQ0hfTVM7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICAgICAganVsaWFuRGF5ID0gamRuOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlCisgICAgICogMS8xLzE5NzAgQUQgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0LgorICAgICAqCisgICAgICogQHNlZSAjc2V0RGF0ZQorICAgICAqIEBzZWUgI2dldFRpbWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBnZXREYXRlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUodGltZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QsCisgICAgICogZXhwcmVzc2VkIGFzIGEgImp1bGlhbiBkYXkgbnVtYmVyIiwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBlbGFwc2VkCisgICAgICogZGF5cyBzaW5jZSAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULgorICAgICAqCisgICAgICogQHNlZSAjc2V0SnVsaWFuRGF5CisgICAgICogQHNlZSAjSlVMSUFOX0VQT0NIX01TCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRKdWxpYW5EYXkoKSB7CisgICAgICAgIGlmIChqdWxpYW5EYXkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuRGF5ID0gKGRvdWJsZSkodGltZSAtIEpVTElBTl9FUE9DSF9NUykgLyAoZG91YmxlKURBWV9NUzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhpcyBvYmplY3QncyB0aW1lIGV4cHJlc3NlZCBpbiBqdWxpYW4gY2VudHVyaWVzOgorICAgICAqIHRoZSBudW1iZXIgb2YgY2VudHVyaWVzIGFmdGVyIDEvMS8xOTAwIEFELCAxMjowMCBHTVQKKyAgICAgKgorICAgICAqIEBzZWUgI2dldEp1bGlhbkRheQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0SnVsaWFuQ2VudHVyeSgpIHsKKyAgICAgICAgaWYgKGp1bGlhbkNlbnR1cnkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuQ2VudHVyeSA9IChnZXRKdWxpYW5EYXkoKSAtIDI0MTUwMjAuMCkgLyAzNjUyNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuQ2VudHVyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IEdyZWVud2ljaCBzaWRlcmVhbCB0aW1lLCBtZWFzdXJlZCBpbiBob3VycworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFRpbWUgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAgLy8gU2VlIHBhZ2UgODYgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgVVQgPSBub3JtYWxpemUoKGRvdWJsZSl0aW1lL0hPVVJfTVMsIDI0KTsKKyAgICAgICAgCisgICAgICAgICAgICBzaWRlcmVhbFRpbWUgPSBub3JtYWxpemUoZ2V0U2lkZXJlYWxPZmZzZXQoKSArIFVUKjEuMDAyNzM3OTA5LCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVGltZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBkb3VibGUgZ2V0U2lkZXJlYWxPZmZzZXQoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFQwID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGRvdWJsZSBKRCAgPSBNYXRoLmZsb29yKGdldEp1bGlhbkRheSgpIC0gMC41KSArIDAuNTsKKyAgICAgICAgICAgIGRvdWJsZSBTICAgPSBKRCAtIDI0NTE1NDUuMDsKKyAgICAgICAgICAgIGRvdWJsZSBUICAgPSBTIC8gMzY1MjUuMDsKKyAgICAgICAgICAgIHNpZGVyZWFsVDAgPSBub3JtYWxpemUoNi42OTczNzQ1NTggKyAyNDAwLjA1MTMzNipUICsgMC4wMDAwMjU4NjIqVCpULCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9jYWwgc2lkZXJlYWwgdGltZSwgbWVhc3VyZWQgaW4gaG91cnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldExvY2FsU2lkZXJlYWwoKSB7CisgICAgICAgIHJldHVybiBub3JtYWxpemUoZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSArIChkb3VibGUpZkdtdE9mZnNldC9IT1VSX01TLCAyNCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIGxvY2FsIHNpZGVyZWFsIHRpbWUgdG8gVW5pdmVyc2FsIFRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbHN0ICAgVGhlIExvY2FsIFNpZGVyZWFsIFRpbWUsIGluIGhvdXJzIHNpbmNlIHNpZGVyZWFsIG1pZG5pZ2h0CisgICAgICogICAgICAgICAgICAgIG9uIHRoaXMgb2JqZWN0J3MgY3VycmVudCBkYXRlLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBjb3JyZXNwb25kaW5nIFVuaXZlcnNhbCBUaW1lLCBpbiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMSBKYW4gMTk3MCwgR01ULiAgCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGxzdFRvVVQoZG91YmxlIGxzdCkgeworICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIG1lYW4gdGltZQorICAgICAgICBkb3VibGUgbHQgPSBub3JtYWxpemUoKGxzdCAtIGdldFNpZGVyZWFsT2Zmc2V0KCkpICogMC45OTcyNjk1NjYzLCAyNCk7CisgICAgICAgIAorICAgICAgICAvLyBUaGVuIGZpbmQgbG9jYWwgbWlkbmlnaHQgb24gdGhpcyBkYXkKKyAgICAgICAgbG9uZyBiYXNlID0gREFZX01TICogKCh0aW1lICsgZkdtdE9mZnNldCkvREFZX01TKSAtIGZHbXRPZmZzZXQ7CisgICAgICAgIAorICAgICAgICAvL291dCgiICAgIGx0ICA9IiArIGx0ICsgIiBob3VycyIpOworICAgICAgICAvL291dCgiICAgIGJhc2U9IiArIG5ldyBEYXRlKGJhc2UpKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBiYXNlICsgKGxvbmcpKGx0ICogSE9VUl9NUyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvb3JkaW5hdGUgdHJhbnNmb3JtYXRpb25zLCBhbGwgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIG9iamVjdAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXB0aWMgIEEgcG9pbnQgaW4gdGhlIHNreSBpbiBlY2xpcHRpYyBjb29yZGluYXRlcy4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHBvaW50IGluIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEVxdWF0b3JpYWwgZWNsaXB0aWNUb0VxdWF0b3JpYWwoRWNsaXB0aWMgZWNsaXB0aWMpCisgICAgeworICAgICAgICByZXR1cm4gZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsaXB0aWMubG9uZ2l0dWRlLCBlY2xpcHRpYy5sYXRpdHVkZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXBMb25nICAgICBUaGUgZWNsaXB0aWMgbG9uZ2l0dWRlCisgICAgICogQHBhcmFtIGVjbGlwTGF0ICAgICAgVGhlIGVjbGlwdGljIGxhdGl0dWRlCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwb2ludCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBFcXVhdG9yaWFsIGVjbGlwdGljVG9FcXVhdG9yaWFsKGRvdWJsZSBlY2xpcExvbmcsIGRvdWJsZSBlY2xpcExhdCkKKyAgICB7CisgICAgICAgIC8vIFNlZSBwYWdlIDQyIG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisKKyAgICAgICAgZG91YmxlIG9ibGlxID0gZWNsaXB0aWNPYmxpcXVpdHkoKTsKKyAgICAgICAgZG91YmxlIHNpbkUgPSBNYXRoLnNpbihvYmxpcSk7CisgICAgICAgIGRvdWJsZSBjb3NFID0gTWF0aC5jb3Mob2JsaXEpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIHNpbkwgPSBNYXRoLnNpbihlY2xpcExvbmcpOworICAgICAgICBkb3VibGUgY29zTCA9IE1hdGguY29zKGVjbGlwTG9uZyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgc2luQiA9IE1hdGguc2luKGVjbGlwTGF0KTsKKyAgICAgICAgZG91YmxlIGNvc0IgPSBNYXRoLmNvcyhlY2xpcExhdCk7CisgICAgICAgIGRvdWJsZSB0YW5CID0gTWF0aC50YW4oZWNsaXBMYXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhdG9yaWFsKE1hdGguYXRhbjIoc2luTCpjb3NFIC0gdGFuQipzaW5FLCBjb3NMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFzaW4oc2luQipjb3NFICsgY29zQipzaW5FKnNpbkwpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIGxvbmdpdHVkZSB0byBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogQHBhcmFtIGVjbGlwTG9uZyAgICAgVGhlIGVjbGlwdGljIGxvbmdpdHVkZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQgaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRXF1YXRvcmlhbCBlY2xpcHRpY1RvRXF1YXRvcmlhbChkb3VibGUgZWNsaXBMb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbGlwTG9uZywgMCk7ICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBIb3Jpem9uIGVjbGlwdGljVG9Ib3Jpem9uKGRvdWJsZSBlY2xpcExvbmcpCisgICAgeworICAgICAgICBFcXVhdG9yaWFsIGVxdWF0b3JpYWwgPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChlY2xpcExvbmcpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIEggPSBnZXRMb2NhbFNpZGVyZWFsKCkqUEkvMTIgLSBlcXVhdG9yaWFsLmFzY2Vuc2lvbjsgICAgIC8vIEhvdXItYW5nbGUKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5IID0gTWF0aC5zaW4oSCk7CisgICAgICAgIGRvdWJsZSBjb3NIID0gTWF0aC5jb3MoSCk7CisgICAgICAgIGRvdWJsZSBzaW5EID0gTWF0aC5zaW4oZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBjb3NEID0gTWF0aC5jb3MoZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBzaW5MID0gTWF0aC5zaW4oZkxhdGl0dWRlKTsKKyAgICAgICAgZG91YmxlIGNvc0wgPSBNYXRoLmNvcyhmTGF0aXR1ZGUpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlID0gTWF0aC5hc2luKHNpbkQqc2luTCArIGNvc0QqY29zTCpjb3NIKTsKKyAgICAgICAgZG91YmxlIGF6aW11dGggID0gTWF0aC5hdGFuMigtY29zRCpjb3NMKnNpbkgsIHNpbkQgLSBzaW5MICogTWF0aC5zaW4oYWx0aXR1ZGUpKTsKKworICAgICAgICByZXR1cm4gbmV3IEhvcml6b24oYXppbXV0aCwgYWx0aXR1ZGUpOworICAgIH0KKworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBTdW4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vCisgICAgLy8gUGFyYW1ldGVycyBvZiB0aGUgU3VuJ3Mgb3JiaXQgYXMgb2YgdGhlIGVwb2NoIEphbiAwLjAgMTk5MAorICAgIC8vIEFuZ2xlcyBhcmUgaW4gcmFkaWFucyAoYWZ0ZXIgbXVsdGlwbHlpbmcgYnkgUEkvMTgwKQorICAgIC8vCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBKRF9FUE9DSCA9IDI0NDc4OTEuNTsgLy8gSnVsaWFuIGRheSBvZiBlcG9jaAorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBTVU5fRVRBX0cgICA9IDI3OS40MDMzMDMgKiBQSS8xODA7IC8vIEVjbGlwdGljIGxvbmdpdHVkZSBhdCBlcG9jaAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX09NRUdBX0cgPSAyODIuNzY4NDIyICogUEkvMTgwOyAvLyBFY2xpcHRpYyBsb25naXR1ZGUgb2YgcGVyaWdlZQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX0UgICAgICA9ICAgMC4wMTY3MTM7ICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIC8vZG91YmxlIHN1blIwICAgICA9ICAgMS40OTU1ODVlODsgICAgICAgIC8vIFNlbWktbWFqb3IgYXhpcyBpbiBLTQorICAgIC8vZG91YmxlIHN1blRoZXRhMCA9ICAgMC41MzMxMjggKiBQSS8xODA7IC8vIEFuZ3VsYXIgZGlhbWV0ZXIgYXQgUjAKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcywgd2hpY2ggY29tcHV0ZSB0aGUgc3VuIHBhcmFtZXRlcnMKKyAgICAvLyBnaXZlbiBhYm92ZSBmb3IgYW4gYXJiaXRyYXJ5IGVwb2NoICh3aGF0ZXZlciB0aW1lIHRoZSBvYmplY3QgaXMKKyAgICAvLyBzZXQgdG8pLCBtYWtlIG9ubHkgYSBzbWFsbCBkaWZmZXJlbmNlIGFzIGNvbXBhcmVkIHRvIHVzaW5nIHRoZQorICAgIC8vIGFib3ZlIGNvbnN0YW50cy4gIEUuZy4sIFN1bnNldCB0aW1lcyBtaWdodCBkaWZmZXIgYnkgfjEyCisgICAgLy8gc2Vjb25kcy4gIEZ1cnRoZXJtb3JlLCB0aGUgZXRhLWcgY29tcHV0YXRpb24gaXMgYmVmdWRkbGVkIGJ5CisgICAgLy8gRHVmZmV0LVNtaXRoJ3MgaW5jb3JyZWN0IGNvZWZmaWNpZW50cyAocC44NikuICBJJ3ZlIGNvcnJlY3RlZAorICAgIC8vIHRoZSBmaXJzdC1vcmRlciBjb2VmZmljaWVudCBidXQgdGhlIG90aGVycyBtYXkgYmUgb2ZmIHRvbyAtIG5vCisgICAgLy8gd2F5IG9mIGtub3dpbmcgd2l0aG91dCBjb25zdWx0aW5nIGFub3RoZXIgc291cmNlLgorCisvLyAgLyoqCisvLyAgICogUmV0dXJuIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgYXQgcGVyaWdlZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuT21lZ2FHKCkgeworLy8gICAgICBkb3VibGUgVCA9IGdldEp1bGlhbkNlbnR1cnkoKTsKKy8vICAgICAgcmV0dXJuICgyODEuMjIwODQ0NCArICgxLjcxOTE3NSArIDAuMDAwNDUyNzc4KlQpKlQpICogREVHX1JBRDsKKy8vICB9CisKKy8vICAvKioKKy8vICAgKiBSZXR1cm4gdGhlIHN1bidzIGVjbGlwdGljIGxvbmdpdHVkZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuRXRhRygpIHsKKy8vICAgICAgZG91YmxlIFQgPSBnZXRKdWxpYW5DZW50dXJ5KCk7CisvLyAgICAgIC8vcmV0dXJuICgyNzkuNjk2Njc3OCArICgzNjAwMC43Njg5MiArIDAuMDAwMzAyNSpUKSpUKSAqIERFR19SQUQ7CisvLyAgICAgIC8vCisvLyAgICAgIC8vIFRoZSBhYm92ZSBsaW5lIGlzIGZyb20gRHVmZmV0dC1TbWl0aCwgYW5kIHlpZWxkcyBtYW5pZmVzdGx5IHdyb25nCisvLyAgICAgIC8vIHJlc3VsdHMuICBUaGUgYmVsb3cgY29uc3RhbnQgaXMgZGVyaXZlZCBlbXBpcmljYWxseSB0byBtYXRjaCB0aGUKKy8vICAgICAgLy8gY29uc3RhbnQgaGUgZ2l2ZXMgZm9yIHRoZSAxOTkwIEVQT0NILgorLy8gICAgICAvLworLy8gICAgICByZXR1cm4gKDI3OS42OTY2Nzc4ICsgKC0wLjMyNjI1NDE1ODI3MTgwMjQgKyAwLjAwMDMwMjUqVCkqVCkgKiBERUdfUkFEOworLy8gIH0KKworLy8gIC8qKgorLy8gICAqIFJldHVybiB0aGUgc3VuJ3MgZWNjZW50cmljaXR5IG9mIG9yYml0IGZvciB0aGUgY3VycmVudCB0aW1lLgorLy8gICAqIFNlZSBEdWZmZXR0LVNtaXRoLCBwLiA4Ni4KKy8vICAgKiBAcmV0dXJuIGRvdWJsZQorLy8gICAqLworLy8gIHByaXZhdGUgZG91YmxlIGdldFN1bkUoKSB7CisvLyAgICAgIGRvdWJsZSBUID0gZ2V0SnVsaWFuQ2VudHVyeSgpOworLy8gICAgICByZXR1cm4gMC4wMTY3NTEwNCAtICgwLjAwMDA0MTggKyAwLjAwMDAwMDEyNipUKSpUOworLy8gIH0KKworICAgIC8qKgorICAgICAqIFRoZSBsb25naXR1ZGUgb2YgdGhlIHN1biBhdCB0aGUgdGltZSBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogVGhlIGxvbmdpdHVkZSBpcyBtZWFzdXJlZCBpbiByYWRpYW5zIGFsb25nIHRoZSBlY2xpcHRpYworICAgICAqIGZyb20gdGhlICJmaXJzdCBwb2ludCBvZiBBcmllcywiIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgZWNsaXB0aWMKKyAgICAgKiBjcm9zc2VzIHRoZSBlYXJ0aCdzIGVxdWF0b3JpYWwgcGxhbmUgYXQgdGhlIHZlcm5hbCBlcXVpbm94LgorICAgICAqIDxwPgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBtZXRob2QgdXNlcyBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSB0d28tYm9keSBLZXBsZXIncworICAgICAqIGVxdWF0aW9uIGZvciB0aGUgZWFydGggYW5kIHRoZSBzdW4uICBJdCBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUKKyAgICAgKiBwZXJ0dXJiYXRpb25zIGNhdXNlZCBieSB0aGUgb3RoZXIgcGxhbmV0cywgdGhlIG1vb24sIGV0Yy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldFN1bkxvbmdpdHVkZSgpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgaWYgKHN1bkxvbmdpdHVkZSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBkb3VibGVbXSByZXN1bHQgPSBnZXRTdW5Mb25naXR1ZGUoZ2V0SnVsaWFuRGF5KCkpOworICAgICAgICAgICAgc3VuTG9uZ2l0dWRlID0gcmVzdWx0WzBdOworICAgICAgICAgICAgbWVhbkFub21hbHlTdW4gPSByZXN1bHRbMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1bkxvbmdpdHVkZTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorICAgICAqLworICAgIC8qcHVibGljKi8gZG91YmxlW10gZ2V0U3VuTG9uZ2l0dWRlKGRvdWJsZSBqdWxpYW5EYXkpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgZG91YmxlIGRheSA9IGp1bGlhbkRheSAtIEpEX0VQT0NIOyAgICAgICAvLyBEYXlzIHNpbmNlIGVwb2NoCisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBhbmd1bGFyIGRpc3RhbmNlIHRoZSBzdW4gaW4gYSBmaWN0aXRpb3VzCisgICAgICAgIC8vIGNpcmN1bGFyIG9yYml0IGhhcyB0cmF2ZWxsZWQgc2luY2UgdGhlIGVwb2NoLgorICAgICAgICBkb3VibGUgZXBvY2hBbmdsZSA9IG5vcm0yUEkoUEkyL1RST1BJQ0FMX1lFQVIqZGF5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSBlcG9jaCB3YXNuJ3QgYXQgdGhlIHN1bidzIHBlcmlnZWU7IGZpbmQgdGhlIGFuZ3VsYXIgZGlzdGFuY2UKKyAgICAgICAgLy8gc2luY2UgcGVyaWdlZSwgd2hpY2ggaXMgY2FsbGVkIHRoZSAibWVhbiBhbm9tYWx5IgorICAgICAgICBkb3VibGUgbWVhbkFub21hbHkgPSBub3JtMlBJKGVwb2NoQW5nbGUgKyBTVU5fRVRBX0cgLSBTVU5fT01FR0FfRyk7CisgICAgICAgIAorICAgICAgICAvLyBOb3cgZmluZCB0aGUgInRydWUgYW5vbWFseSIsIGUuZy4gdGhlIHJlYWwgc29sYXIgbG9uZ2l0dWRlCisgICAgICAgIC8vIGJ5IHNvbHZpbmcgS2VwbGVyJ3MgZXF1YXRpb24gZm9yIGFuIGVsbGlwdGljYWwgb3JiaXQKKyAgICAgICAgLy8gTk9URTogVGhlIDNyZCBlZC4gb2YgdGhlIGJvb2sgbGlzdHMgb21lZ2FfZyBhbmQgZXRhX2cgaW4gZGlmZmVyZW50CisgICAgICAgIC8vIGVxdWF0aW9uczsgb21lZ2FfZyBpcyB0byBiZSBjb3JyZWN0LgorICAgICAgICByZXR1cm4gbmV3IGRvdWJsZVtdIHsKKyAgICAgICAgICAgIG5vcm0yUEkodHJ1ZUFub21hbHkobWVhbkFub21hbHksIFNVTl9FKSArIFNVTl9PTUVHQV9HKSwKKyAgICAgICAgICAgIG1lYW5Bbm9tYWx5CisgICAgICAgIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYXQgdGhpcyBvYmplY3QncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUsCisgICAgICogaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRXF1YXRvcmlhbCBnZXRTdW5Qb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGdldFN1bkxvbmdpdHVkZSgpLCAwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU29sYXJMb25naXR1ZGUgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIFNvbGFyTG9uZ2l0dWRlKGRvdWJsZSB2YWwpIHsgdmFsdWUgPSB2YWw7IH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2ZXJuYWwgZXF1aW5veC4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlLCBib29sZWFuKSBnZXRTdW5UaW1lfS4gCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAidmVybmFsIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgVkVSTkFMX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKDApOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgc3VtbWVyIHNvbHN0aWNlLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldFN1blRpbWUoU29sYXJMb25naXR1ZGUsIGJvb2xlYW4pIGdldFN1blRpbWV9LgorICAgICAqIE5vdGU6IEluIHRoaXMgY2FzZSwgInN1bW1lciIgcmVmZXJzIHRvIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlJ3Mgc2Vhc29ucy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNvbGFyTG9uZ2l0dWRlIFNVTU1FUl9TT0xTVElDRSA9IG5ldyBTb2xhckxvbmdpdHVkZShQSS8yKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIGF1dHVtbmFsIGVxdWlub3guCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0U3VuVGltZShTb2xhckxvbmdpdHVkZSwgYm9vbGVhbikgZ2V0U3VuVGltZX0uCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAiYXV0dW1uIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgQVVUVU1OX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKFBJKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlLCBib29sZWFuKSBnZXRTdW5UaW1lfS4KKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJ3aW50ZXIiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBXSU5URVJfU09MU1RJQ0UgPSBuZXcgU29sYXJMb25naXR1ZGUoKFBJKjMpLzIpOworICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgdGltZSBhdCB3aGljaCB0aGUgc3VuJ3MgZWNsaXB0aWMgbG9uZ2l0dWRlIHdpbGwgaGF2ZQorICAgICAqIHRoZSBkZXNpcmVkIHZhbHVlLiAgCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0U3VuVGltZShkb3VibGUgZGVzaXJlZCwgYm9vbGVhbiBuZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRpbWVPZkFuZ2xlKCBuZXcgQW5nbGVGdW5jKCkgeyBwdWJsaWMgZG91YmxlIGV2YWwoKSB7IHJldHVybiBnZXRTdW5Mb25naXR1ZGUoKTsgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJPUElDQUxfWUVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgdGltZSBhdCB3aGljaCB0aGUgc3VuJ3MgZWNsaXB0aWMgbG9uZ2l0dWRlIHdpbGwgaGF2ZQorICAgICAqIHRoZSBkZXNpcmVkIHZhbHVlLiAgCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0U3VuVGltZShTb2xhckxvbmdpdHVkZSBkZXNpcmVkLCBib29sZWFuIG5leHQpIHsKKyAgICAgICAgcmV0dXJuIGdldFN1blRpbWUoZGVzaXJlZC52YWx1ZSwgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRpbWUgKEdNVCkgb2Ygc3VucmlzZSBvciBzdW5zZXQgb24gdGhlIGxvY2FsIGRhdGUgdG8gd2hpY2gKKyAgICAgKiB0aGlzIGNhbGVuZGFyIGlzIGN1cnJlbnRseSBzZXQuCisgICAgICoKKyAgICAgKiBOT1RFOiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIHdlbGwgaWYgdGhpcyBvYmplY3QgaXMgc2V0IHRvIGEKKyAgICAgKiB0aW1lIG5lYXIgbG9jYWwgbm9vbi4gIEJlY2F1c2Ugb2YgdmFyaWF0aW9ucyBiZXR3ZWVuIHRoZSBsb2NhbAorICAgICAqIG9mZmljaWFsIHRpbWUgem9uZSBhbmQgdGhlIGdlb2dyYXBoaWMgbG9uZ2l0dWRlLCB0aGUKKyAgICAgKiBjb21wdXRhdGlvbiBjYW4gZmxvcCBvdmVyIGludG8gYW4gYWRqYWNlbnQgZGF5IGlmIHRoaXMgb2JqZWN0CisgICAgICogaXMgc2V0IHRvIGEgdGltZSBuZWFyIGxvY2FsIG1pZG5pZ2h0LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFN1blJpc2VTZXQoYm9vbGVhbiByaXNlKQorICAgIHsKKyAgICAgICAgbG9uZyB0MCA9IHRpbWU7CisKKyAgICAgICAgLy8gTWFrZSBhIHJvdWdoIGd1ZXNzOiA2YW0gb3IgNnBtIGxvY2FsIHRpbWUgb24gdGhlIGN1cnJlbnQgZGF5CisgICAgICAgIGxvbmcgbm9vbiA9ICgodGltZSArIGZHbXRPZmZzZXQpL0RBWV9NUykqREFZX01TIC0gZkdtdE9mZnNldCArIDEyKkhPVVJfTVM7CisgICAgICAgIAorICAgICAgICBzZXRUaW1lKG5vb24gKyAobG9uZykoKHJpc2UgPyAtNiA6IDYpICogSE9VUl9NUykpOworICAgICAgICAKKyAgICAgICAgbG9uZyB0ID0gcmlzZU9yU2V0KG5ldyBDb29yZEZ1bmMoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVxdWF0b3JpYWwgZXZhbCgpIHsgcmV0dXJuIGdldFN1blBvc2l0aW9uKCk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgLjUzMyAqIERFR19SQUQsICAgICAgICAvLyBBbmd1bGFyIERpYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgMzQgLzYwLjAgKiBERUdfUkFELCAgICAvLyBSZWZyYWN0aW9uIGNvcnJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMgLyAxMik7ICAgICAgIC8vIERlc2lyZWQgYWNjdXJhY3kKKworICAgICAgICBzZXRUaW1lKHQwKTsKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBBbHRlcm5hdGUgU3VuIFJpc2UvU2V0CisvLyAgICAvLyBTZWUgRHVmZmV0dC1TbWl0aCBwLjkzCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICAvLyBUaGlzIHlpZWxkcyB3b3JzZSByZXN1bHRzIChhcyBjb21wYXJlZCB0byBVU05PIGRhdGEpIHRoYW4gZ2V0U3VuUmlzZVNldCgpLgorLy8gICAgLyoqCisvLyAgICAgKiBUT0RPIE1ha2UgdGhpcyBwdWJsaWMgd2hlbiB0aGUgZW50aXJlIGNsYXNzIGlzIHBhY2thZ2UtcHJpdmF0ZS4KKy8vICAgICAqLworLy8gICAgLypwdWJsaWMqLyBsb25nIGdldFN1blJpc2VTZXQyKGJvb2xlYW4gcmlzZSkgeworLy8gICAgICAgIC8vIDEuIENhbGN1bGF0ZSBjb29yZGluYXRlcyBvZiB0aGUgc3VuJ3MgY2VudGVyIGZvciBtaWRuaWdodAorLy8gICAgICAgIGRvdWJsZSBqZCA9IE1hdGguZmxvb3IoZ2V0SnVsaWFuRGF5KCkgLSAwLjUpICsgMC41OworLy8gICAgICAgIGRvdWJsZVtdIHNsID0gZ2V0U3VuTG9uZ2l0dWRlKGpkKTsKKy8vICAgICAgICBkb3VibGUgbGFtYmRhMSA9IHNsWzBdOworLy8gICAgICAgIEVxdWF0b3JpYWwgcG9zMSA9IGVjbGlwdGljVG9FcXVhdG9yaWFsKGxhbWJkYTEsIDApOworLy8KKy8vICAgICAgICAvLyAyLiBBZGQgLi4uIHRvIGxhbWJkYSB0byBnZXQgcG9zaXRpb24gMjQgaG91cnMgbGF0ZXIKKy8vICAgICAgICBkb3VibGUgbGFtYmRhMiA9IGxhbWJkYTEgKyAwLjk4NTY0NypERUdfUkFEOworLy8gICAgICAgIEVxdWF0b3JpYWwgcG9zMiA9IGVjbGlwdGljVG9FcXVhdG9yaWFsKGxhbWJkYTIsIDApOworLy8KKy8vICAgICAgICAvLyAzLiBDYWxjdWxhdGUgTFNUcyBvZiByaXNpbmcgYW5kIHNldHRpbmcgZm9yIHRoZXNlIHR3byBwb3NpdGlvbnMKKy8vICAgICAgICBkb3VibGUgdGFuTCA9IE1hdGgudGFuKGZMYXRpdHVkZSk7CisvLyAgICAgICAgZG91YmxlIEggPSBNYXRoLmFjb3MoLXRhbkwgKiBNYXRoLnRhbihwb3MxLmRlY2xpbmF0aW9uKSk7CisvLyAgICAgICAgZG91YmxlIGxzdDFyID0gKFBJMiArIHBvczEuYXNjZW5zaW9uIC0gSCkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBkb3VibGUgbHN0MXMgPSAocG9zMS5hc2NlbnNpb24gKyBIKSAqIDI0IC8gUEkyOworLy8gICAgICAgICAgICAgICBIID0gTWF0aC5hY29zKC10YW5MICogTWF0aC50YW4ocG9zMi5kZWNsaW5hdGlvbikpOworLy8gICAgICAgIGRvdWJsZSBsc3QyciA9IChQSTItSCArIHBvczIuYXNjZW5zaW9uICkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBkb3VibGUgbHN0MnMgPSAoSCArIHBvczIuYXNjZW5zaW9uICkgKiAyNCAvIFBJMjsKKy8vICAgICAgICBpZiAobHN0MXIgPiAyNCkgbHN0MXIgLT0gMjQ7CisvLyAgICAgICAgaWYgKGxzdDFzID4gMjQpIGxzdDFzIC09IDI0OworLy8gICAgICAgIGlmIChsc3QyciA+IDI0KSBsc3QyciAtPSAyNDsKKy8vICAgICAgICBpZiAobHN0MnMgPiAyNCkgbHN0MnMgLT0gMjQ7CisvLyAgICAgICAgCisvLyAgICAgICAgLy8gNC4gQ29udmVydCBMU1RzIHRvIEdTVHMuICBJZiBHU1QxID4gR1NUMiwgYWRkIDI0IHRvIEdTVDIuCisvLyAgICAgICAgZG91YmxlIGdzdDFyID0gbHN0VG9Hc3QobHN0MXIpOworLy8gICAgICAgIGRvdWJsZSBnc3QxcyA9IGxzdFRvR3N0KGxzdDFzKTsKKy8vICAgICAgICBkb3VibGUgZ3N0MnIgPSBsc3RUb0dzdChsc3Qycik7CisvLyAgICAgICAgZG91YmxlIGdzdDJzID0gbHN0VG9Hc3QobHN0MnMpOworLy8gICAgICAgIGlmIChnc3QxciA+IGdzdDJyKSBnc3QyciArPSAyNDsKKy8vICAgICAgICBpZiAoZ3N0MXMgPiBnc3QycykgZ3N0MnMgKz0gMjQ7CisvLworLy8gICAgICAgIC8vIDUuIENhbGN1bGF0ZSBHU1QgYXQgMGggVVQgb2YgdGhpcyBkYXRlCisvLyAgICAgICAgZG91YmxlIHQwMCA9IHV0VG9Hc3QoMCk7CisvLyAgICAgICAgCisvLyAgICAgICAgLy8gNi4gQ2FsY3VsYXRlIEdTVCBhdCAwaCBvbiB0aGUgb2JzZXJ2ZXIncyBsb25naXR1ZGUKKy8vICAgICAgICBkb3VibGUgb2Zmc2V0ID0gTWF0aC5yb3VuZChmTG9uZ2l0dWRlKjEyL1BJKTsgLy8gcC45NSBzdGVwIDY7IGhlIF9yb3VuZHNfIHRvIG5lYXJlc3QgMTUgZGVnLgorLy8gICAgICAgIGRvdWJsZSB0MDBwID0gdDAwIC0gb2Zmc2V0KjEuMDAyNzM3OTA5OworLy8gICAgICAgIGlmICh0MDBwIDwgMCkgdDAwcCArPSAyNDsgLy8gZG8gTk9UIG5vcm1hbGl6ZQorLy8gICAgICAgIAorLy8gICAgICAgIC8vIDcuIEFkanVzdAorLy8gICAgICAgIGlmIChnc3QxciA8IHQwMHApIHsKKy8vICAgICAgICAgICAgZ3N0MXIgKz0gMjQ7CisvLyAgICAgICAgICAgIGdzdDJyICs9IDI0OworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoZ3N0MXMgPCB0MDBwKSB7CisvLyAgICAgICAgICAgIGdzdDFzICs9IDI0OworLy8gICAgICAgICAgICBnc3QycyArPSAyNDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIDguCisvLyAgICAgICAgZG91YmxlIGdzdHIgPSAoMjQuMDcqZ3N0MXItdDAwKihnc3Qyci1nc3QxcikpLygyNC4wNytnc3Qxci1nc3Qycik7CisvLyAgICAgICAgZG91YmxlIGdzdHMgPSAoMjQuMDcqZ3N0MXMtdDAwKihnc3Qycy1nc3QxcykpLygyNC4wNytnc3Qxcy1nc3Qycyk7CisvLworLy8gICAgICAgIC8vIDkuIENvcnJlY3QgZm9yIHBhcmFsbGF4LCByZWZyYWN0aW9uLCBhbmQgc3VuJ3MgZGlhbWV0ZXIKKy8vICAgICAgICBkb3VibGUgZGVjID0gKHBvczEuZGVjbGluYXRpb24gKyBwb3MyLmRlY2xpbmF0aW9uKSAvIDI7CisvLyAgICAgICAgZG91YmxlIHBzaSA9IE1hdGguYWNvcyhNYXRoLnNpbihmTGF0aXR1ZGUpIC8gTWF0aC5jb3MoZGVjKSk7CisvLyAgICAgICAgZG91YmxlIHggPSAwLjgzMDcyNSAqIERFR19SQUQ7IC8vIHBhcmFsbGF4K3JlZnJhY3Rpb24rZGlhbWV0ZXIKKy8vICAgICAgICBkb3VibGUgeSA9IE1hdGguYXNpbihNYXRoLnNpbih4KSAvIE1hdGguc2luKHBzaSkpICogUkFEX0RFRzsKKy8vICAgICAgICBkb3VibGUgZGVsdGFfdCA9IDI0MCAqIHkgLyBNYXRoLmNvcyhkZWMpIC8gMzYwMDsgLy8gaG91cnMKKy8vCisvLyAgICAgICAgLy8gMTAuIEFkZCBjb3JyZWN0aW9uIHRvIEdTVHMsIHN1YnRyYWN0IGZyb20gR1NUcgorLy8gICAgICAgIGdzdHIgLT0gZGVsdGFfdDsKKy8vICAgICAgICBnc3RzICs9IGRlbHRhX3Q7CisvLworLy8gICAgICAgIC8vIDExLiBDb252ZXJ0IEdTVCB0byBVVCBhbmQgdGhlbiB0byBsb2NhbCBjaXZpbCB0aW1lCisvLyAgICAgICAgZG91YmxlIHV0ID0gZ3N0VG9VdChyaXNlID8gZ3N0ciA6IGdzdHMpOworLy8gICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKChyaXNlPyJyaXNlPSI6InNldD0iKSArIHV0ICsgIiwgZGVsdGFfdD0iICsgZGVsdGFfdCk7CisvLyAgICAgICAgbG9uZyBtaWRuaWdodCA9IERBWV9NUyAqICh0aW1lIC8gREFZX01TKTsgLy8gRmluZCBVVCBtaWRuaWdodCBvbiB0aGlzIGRheQorLy8gICAgICAgIHJldHVybiBtaWRuaWdodCArIChsb25nKSAodXQgKiAzNjAwMDAwKTsKKy8vICAgIH0KKworLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ29udmVydCBsb2NhbCBzaWRlcmVhbCB0aW1lIHRvIEdyZWVud2ljaCBzaWRlcmVhbCB0aW1lLgorLy8gICAgICogU2VjdGlvbiAxNS4gIER1ZmZldHQtU21pdGggcC4yMQorLy8gICAgICogQHBhcmFtIGxzdCBpbiBob3VycyAoMC4uMjQpCisvLyAgICAgKiBAcmV0dXJuIEdTVCBpbiBob3VycyAoMC4uMjQpCisvLyAgICAgKi8KKy8vICAgIGRvdWJsZSBsc3RUb0dzdChkb3VibGUgbHN0KSB7CisvLyAgICAgICAgZG91YmxlIGRlbHRhID0gZkxvbmdpdHVkZSAqIDI0IC8gUEkyOworLy8gICAgICAgIHJldHVybiBub3JtYWxpemUobHN0IC0gZGVsdGEsIDI0KTsKKy8vICAgIH0KKyAKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICAvKioKKy8vICAgICAqIENvbnZlcnQgVVQgdG8gR1NUIG9uIHRoaXMgZGF0ZS4KKy8vICAgICAqIFNlY3Rpb24gMTIuICBEdWZmZXR0LVNtaXRoIHAuMTcKKy8vICAgICAqIEBwYXJhbSB1dCBpbiBob3VycworLy8gICAgICogQHJldHVybiBHU1QgaW4gaG91cnMKKy8vICAgICAqLworLy8gICAgZG91YmxlIHV0VG9Hc3QoZG91YmxlIHV0KSB7CisvLyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShnZXRUMCgpICsgdXQqMS4wMDI3Mzc5MDksIDI0KTsKKy8vICAgIH0KKworLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ29udmVydCBHU1QgdG8gVVQgb24gdGhpcyBkYXRlLgorLy8gICAgICogU2VjdGlvbiAxMy4gIER1ZmZldHQtU21pdGggcC4xOAorLy8gICAgICogQHBhcmFtIGdzdCBpbiBob3VycworLy8gICAgICogQHJldHVybiBVVCBpbiBob3VycworLy8gICAgICovCisvLyAgICBkb3VibGUgZ3N0VG9VdChkb3VibGUgZ3N0KSB7CisvLyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShnc3QgLSBnZXRUMCgpLCAyNCkgKiAwLjk5NzI2OTU2NjM7CisvLyAgICB9CisKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICBkb3VibGUgZ2V0VDAoKSB7CisvLyAgICAgICAgLy8gQ29tbW9uIGNvbXB1dGF0aW9uIGZvciBVVCA8PT4gR1NUCisvLworLy8gICAgICAgIC8vIEZpbmQgSkQgZm9yIDBoIFVUCisvLyAgICAgICAgZG91YmxlIGpkID0gTWF0aC5mbG9vcihnZXRKdWxpYW5EYXkoKSAtIDAuNSkgKyAwLjU7CisvLworLy8gICAgICAgIGRvdWJsZSBzID0gamQgLSAyNDUxNTQ1LjA7CisvLyAgICAgICAgZG91YmxlIHQgPSBzIC8gMzY1MjUuMDsKKy8vICAgICAgICBkb3VibGUgdDAgPSA2LjY5NzM3NDU1OCArICgyNDAwLjA1MTMzNiArIDAuMDAwMDI1ODYyKnQpKnQ7CisvLyAgICAgICAgcmV0dXJuIHQwOworLy8gICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBBbHRlcm5hdGUgU3VuIFJpc2UvU2V0CisvLyAgICAvLyBTZWUgc2NpLmFzdHJvIEZBUQorLy8gICAgLy8gaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2FzdHJvbm9teS9mYXEvcGFydDMvc2VjdGlvbi01Lmh0bWwKKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIC8vIE5vdGU6IFRoaXMgbWV0aG9kIGFwcGVhcnMgdG8gcHJvZHVjZSBpbmZlcmlvciBhY2N1cmFjeSBhcworLy8gICAgLy8gY29tcGFyZWQgdG8gZ2V0U3VuUmlzZVNldCgpLiAKKy8vCisvLyAgICAvKioKKy8vICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorLy8gICAgICovCisvLyAgICAvKnB1YmxpYyovIGxvbmcgZ2V0U3VuUmlzZVNldDMoYm9vbGVhbiByaXNlKSB7CisvLworLy8gICAgICAgIC8vIENvbXB1dGUgZGF5IG51bWJlciBmb3IgMC4wIEphbiAyMDAwIGVwb2NoCisvLyAgICAgICAgZG91YmxlIGQgPSAoZG91YmxlKSh0aW1lIC0gRVBPQ0hfMjAwMF9NUykgLyBEQVlfTVM7CisvLworLy8gICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSBMb2NhbCBTaWRlcmVhbCBUaW1lLCBMU1Q6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIExTVCAgPSAgOTguOTgxOCAgKyAgMC45ODU2NDczNTIgKiBkICArICAvKlVUKjE1ICArICBsb25nKi8KKy8vICAgICAgICAgICAgZkxvbmdpdHVkZSpSQURfREVHOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIChlYXN0IGxvbmcuIHBvc2l0aXZlKS4gIE5vdGUgdGhhdCBMU1QgaXMgaGVyZSBleHByZXNzZWQgaW4gZGVncmVlcywKKy8vICAgICAgICAvLyB3aGVyZSAxNSBkZWdyZWVzIGNvcnJlc3BvbmRzIHRvIG9uZSBob3VyLiAgU2luY2UgTFNUIHJlYWxseSBpcyBhbiBhbmdsZSwKKy8vICAgICAgICAvLyBpdCdzIGNvbnZlbmllbnQgdG8gdXNlIG9uZSB1bml0LS0tZGVncmVlcy0tLXRocm91Z2hvdXQuCisvLworLy8gICAgICAgIC8vICAgICBDT01QVVRJTkcgVEhFIFNVTidTIFBPU0lUSU9OCisvLyAgICAgICAgLy8gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBUbyBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIFN1bidzIHJpc2Uvc2V0IHRpbWVzLCB5b3UgbmVlZCB0byBiZSBhYmxlIHRvCisvLyAgICAgICAgLy8gY29tcHV0ZSB0aGUgU3VuJ3MgcG9zaXRpb24gYXQgYW55IHRpbWUuICBGaXJzdCBjb21wdXRlIHRoZSAiZGF5CisvLyAgICAgICAgLy8gbnVtYmVyIiBkIGFzIG91dGxpbmVkIGFib3ZlLCBmb3IgdGhlIGRlc2lyZWQgbW9tZW50LiAgTmV4dCBjb21wdXRlOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSBvYmxlY2wgPSAyMy40MzkzIC0gMy41NjNFLTcgKiBkOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSB3ICA9ICAyODIuOTQwNCAgKyAgNC43MDkzNUUtNSAgICogZDsKKy8vICAgICAgICBkb3VibGUgTSAgPSAgMzU2LjA0NzAgICsgIDAuOTg1NjAwMjU4NSAqIGQ7CisvLyAgICAgICAgZG91YmxlIGUgID0gIDAuMDE2NzA5ICAtICAxLjE1MUUtOSAgICAgKiBkOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ibGlxdWl0eSBvZiB0aGUgZWNsaXB0aWMsIHBsdXMgc29tZSBvZiB0aGUgZWxlbWVudHMgb2YKKy8vICAgICAgICAvLyB0aGUgU3VuJ3MgYXBwYXJlbnQgb3JiaXQgKGkuZS4sIHJlYWxseSB0aGUgRWFydGgncyBvcmJpdCk6IHcgPQorLy8gICAgICAgIC8vIGFyZ3VtZW50IG9mIHBlcmloZWxpb24sIE0gPSBtZWFuIGFub21hbHksIGUgPSBlY2NlbnRyaWNpdHkuCisvLyAgICAgICAgLy8gU2VtaS1tYWpvciBheGlzIGlzIGhlcmUgYXNzdW1lZCB0byBiZSBleGFjdGx5IDEuMCAod2hpbGUgbm90IHN0cmljdGx5CisvLyAgICAgICAgLy8gdHJ1ZSwgdGhpcyBpcyBzdGlsbCBhbiBhY2N1cmF0ZSBhcHByb3hpbWF0aW9uKS4gIE5leHQgY29tcHV0ZSBFLCB0aGUKKy8vICAgICAgICAvLyBlY2NlbnRyaWMgYW5vbWFseToKKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgRSA9IE0gKyBlKigxODAvUEkpICogTWF0aC5zaW4oTSpERUdfUkFEKSAqICggMS4wICsgZSpNYXRoLmNvcyhNKkRFR19SQUQpICk7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gd2hlcmUgRSBhbmQgTSBhcmUgaW4gZGVncmVlcy4gIFRoaXMgaXMgaXQtLS1ubyBmdXJ0aGVyIGl0ZXJhdGlvbnMgYXJlCisvLyAgICAgICAgLy8gbmVlZGVkIGJlY2F1c2Ugd2Uga25vdyBlIGhhcyBhIHN1ZmZpY2llbnRseSBzbWFsbCB2YWx1ZS4gIE5leHQgY29tcHV0ZQorLy8gICAgICAgIC8vIHRoZSB0cnVlIGFub21hbHksIHYsIGFuZCB0aGUgZGlzdGFuY2UsIHI6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLyogICAgICByICogY29zKHYpICA9ICAqLyBkb3VibGUgQSAgPSAgTWF0aC5jb3MoRSpERUdfUkFEKSAtIGU7CisvLyAgICAgICAgLyogICAgICByICogc2luKHYpICA9ICAqLyBkb3VibGUgQiAgPSAgTWF0aC5zcXJ0KDEgLSBlKmUpICogTWF0aC5zaW4oRSpERUdfUkFEKTsKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBhbmQKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgIHIgID0gIHNxcnQoIEEqQSArIEIqQiApCisvLyAgICAgICAgZG91YmxlIHYgID0gIE1hdGguYXRhbjIoIEIsIEEgKSpSQURfREVHOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRoZSBTdW4ncyB0cnVlIGxvbmdpdHVkZSwgc2xvbiwgY2FuIG5vdyBiZSBjb21wdXRlZDoKKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgc2xvbiAgPSAgdiArIHc7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gU2luY2UgdGhlIFN1biBpcyBhbHdheXMgYXQgdGhlIGVjbGlwdGljIChvciBhdCBsZWFzdCB2ZXJ5IHZlcnkgY2xvc2UgdG8KKy8vICAgICAgICAvLyBpdCksIHdlIGNhbiB1c2Ugc2ltcGxpZmllZCBmb3JtdWxhZSB0byBjb252ZXJ0IHNsb24gKHRoZSBTdW4ncyBlY2xpcHRpYworLy8gICAgICAgIC8vIGxvbmdpdHVkZSkgdG8gc1JBIGFuZCBzRGVjICh0aGUgU3VuJ3MgUkEgYW5kIERlYyk6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgc2luKHNsb24pICogY29zKG9ibGVjbCkKKy8vICAgICAgICAvLyAgICAgdGFuKHNSQSkgID0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAvLyAgICAgICAgICAgICBjb3Moc2xvbikKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgc2luKHNEZWMpID0gIHNpbihvYmxlY2wpICogc2luKHNsb24pCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gQXMgd2FzIHRoZSBjYXNlIHdoZW4gY29tcHV0aW5nIGF6LCB0aGUgQXppbXV0aCwgaWYgcG9zc2libGUgdXNlIGFuCisvLyAgICAgICAgLy8gYXRhbjIoKSBmdW5jdGlvbiB0byBjb21wdXRlIHNSQS4KKy8vCisvLyAgICAgICAgZG91YmxlIHNSQSA9IE1hdGguYXRhbjIoTWF0aC5zaW4oc2xvbipERUdfUkFEKSAqIE1hdGguY29zKG9ibGVjbCpERUdfUkFEKSwgTWF0aC5jb3Moc2xvbipERUdfUkFEKSkqUkFEX0RFRzsKKy8vCisvLyAgICAgICAgZG91YmxlIHNpbl9zRGVjID0gTWF0aC5zaW4ob2JsZWNsKkRFR19SQUQpICogTWF0aC5zaW4oc2xvbipERUdfUkFEKTsKKy8vICAgICAgICBkb3VibGUgc0RlYyA9IE1hdGguYXNpbihzaW5fc0RlYykqUkFEX0RFRzsKKy8vCisvLyAgICAgICAgLy8gICAgIENPTVBVVElORyBSSVNFIEFORCBTRVQgVElNRVMKKy8vICAgICAgICAvLyAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRvIGNvbXB1dGUgd2hlbiBhbiBvYmplY3QgcmlzZXMgb3Igc2V0cywgeW91IG11c3QgY29tcHV0ZSB3aGVuIGl0CisvLyAgICAgICAgLy8gcGFzc2VzIHRoZSBtZXJpZGlhbiBhbmQgdGhlIEhBIG9mIHJpc2Uvc2V0LiAgVGhlbiB0aGUgcmlzZSB0aW1lIGlzCisvLyAgICAgICAgLy8gdGhlIG1lcmlkaWFuIHRpbWUgbWludXMgSEEgZm9yIHJpc2Uvc2V0LCBhbmQgdGhlIHNldCB0aW1lIGlzIHRoZQorLy8gICAgICAgIC8vIG1lcmlkaWFuIHRpbWUgcGx1cyB0aGUgSEEgZm9yIHJpc2Uvc2V0LgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRvIGZpbmQgdGhlIG1lcmlkaWFuIHRpbWUsIGNvbXB1dGUgdGhlIExvY2FsIFNpZGVyZWFsIFRpbWUgYXQgMGggbG9jYWwKKy8vICAgICAgICAvLyB0aW1lIChvciAwaCBVVCBpZiB5b3UgcHJlZmVyIHRvIHdvcmsgaW4gVVQpIGFzIG91dGxpbmVkIGFib3ZlLS0tbmFtZQorLy8gICAgICAgIC8vIHRoYXQgcXVhbnRpdHkgTFNUMC4gIFRoZSBNZXJpZGlhbiBUaW1lLCBNVCwgd2lsbCBub3cgYmU6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgIE1UICA9ICBSQSAtIExTVDAKKy8vICAgICAgICBkb3VibGUgTVQgPSBub3JtYWxpemUoc1JBIC0gTFNULCAzNjApOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIHdoZXJlICJSQSIgaXMgdGhlIG9iamVjdCdzIFJpZ2h0IEFzY2Vuc2lvbiAoaW4gZGVncmVlcyEpLiAgSWYgbmVnYXRpdmUsCisvLyAgICAgICAgLy8gYWRkIDM2MCBkZWcgdG8gTVQuICBJZiB0aGUgb2JqZWN0IGlzIHRoZSBTdW4sIGxlYXZlIHRoZSB0aW1lIGFzIGl0IGlzLAorLy8gICAgICAgIC8vIGJ1dCBpZiBpdCdzIHN0ZWxsYXIsIG11bHRpcGx5IE1UIGJ5IDM2NS4yNDIyLzM2Ni4yNDIyLCB0byBjb252ZXJ0IGZyb20KKy8vICAgICAgICAvLyBzaWRlcmVhbCB0byBzb2xhciB0aW1lLiAgTm93LCBjb21wdXRlIEhBIGZvciByaXNlL3NldCwgbmFtZSB0aGF0CisvLyAgICAgICAgLy8gcXVhbnRpdHkgSEEwOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICAgICAgICAgICAgICBzaW4oaDApICAtICBzaW4obGF0KSAqIHNpbihEZWMpCisvLyAgICAgICAgLy8gY29zKEhBMCkgID0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGNvcyhsYXQpICogY29zKERlYykKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyB3aGVyZSBoMCBpcyB0aGUgYWx0aXR1ZGUgc2VsZWN0ZWQgdG8gcmVwcmVzZW50IHJpc2Uvc2V0LiAgRm9yIGEgcHVyZWx5CisvLyAgICAgICAgLy8gbWF0aGVtYXRpY2FsIGhvcml6b24sIHNldCBoMCA9IDAgYW5kIHNpbXBsaWZ5IHRvOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICBjb3MoSEEwKSAgPSAgLSB0YW4obGF0KSAqIHRhbihEZWMpCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gSWYgeW91IHdhbnQgdG8gYWNjb3VudCBmb3IgcmVmcmFjdGlvbiBvbiB0aGUgYXRtb3NwaGVyZSwgc2V0IGgwID0gLTM1LzYwCisvLyAgICAgICAgLy8gZGVncmVlcyAoLTM1IGFyYyBtaW51dGVzKSwgYW5kIGlmIHlvdSB3YW50IHRvIGNvbXB1dGUgdGhlIHJpc2Uvc2V0IHRpbWVzCisvLyAgICAgICAgLy8gZm9yIHRoZSBTdW4ncyB1cHBlciBsaW1iLCBzZXQgaDAgPSAtNTAvNjAgKC01MCBhcmMgbWludXRlcykuCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIGgwID0gLTUwLzYwICogREVHX1JBRDsKKy8vCisvLyAgICAgICAgZG91YmxlIEhBMCA9IE1hdGguYWNvcygKKy8vICAgICAgICAgIChNYXRoLnNpbihoMCkgLSBNYXRoLnNpbihmTGF0aXR1ZGUpICogc2luX3NEZWMpIC8KKy8vICAgICAgICAgIChNYXRoLmNvcyhmTGF0aXR1ZGUpICogTWF0aC5jb3Moc0RlYypERUdfUkFEKSkpKlJBRF9ERUc7CisvLworLy8gICAgICAgIC8vIFdoZW4gSEEwIGhhcyBiZWVuIGNvbXB1dGVkLCBsZWF2ZSBpdCBhcyBpdCBpcyBmb3IgdGhlIFN1biBidXQgbXVsdGlwbHkKKy8vICAgICAgICAvLyBieSAzNjUuMjQyMi8zNjYuMjQyMiBmb3Igc3RlbGxhciBvYmplY3RzLCB0byBjb252ZXJ0IGZyb20gc2lkZXJlYWwgdG8KKy8vICAgICAgICAvLyBzb2xhciB0aW1lLiAgRmluYWxseSBjb21wdXRlOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgIFJpc2UgdGltZSAgPSAgTVQgLSBIQTAKKy8vICAgICAgICAvLyAgICBTZXQgIHRpbWUgID0gIE1UICsgSEEwCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gY29udmVydCB0aGUgdGltZXMgZnJvbSBkZWdyZWVzIHRvIGhvdXJzIGJ5IGRpdmlkaW5nIGJ5IDE1LgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIElmIHlvdSdkIGxpa2UgdG8gY2hlY2sgdGhhdCB5b3VyIGNhbGN1bGF0aW9ucyBhcmUgYWNjdXJhdGUgb3IganVzdAorLy8gICAgICAgIC8vIG5lZWQgYSBxdWljayByZXN1bHQsIGNoZWNrIHRoZSBVU05PJ3MgU3VuIG9yIE1vb24gUmlzZS9TZXQgVGFibGUsCisvLyAgICAgICAgLy8gPFVSTDpodHRwOi8vYWEudXNuby5uYXZ5Lm1pbC9BQS9kYXRhL2RvY3MvUlNfT25lWWVhci5odG1sPi4KKy8vCisvLyAgICAgICAgZG91YmxlIHJlc3VsdCA9IE1UICsgKHJpc2UgPyAtSEEwIDogSEEwKTsgLy8gaW4gZGVncmVlcworLy8KKy8vICAgICAgICAvLyBGaW5kIFVUIG1pZG5pZ2h0IG9uIHRoaXMgZGF5CisvLyAgICAgICAgbG9uZyBtaWRuaWdodCA9IERBWV9NUyAqICh0aW1lIC8gREFZX01TKTsKKy8vCisvLyAgICAgICAgcmV0dXJuIG1pZG5pZ2h0ICsgKGxvbmcpIChyZXN1bHQgKiAzNjAwMDAwIC8gMTUpOworLy8gICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhlIE1vb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25MMCA9IDMxOC4zNTE2NDggKiBQSS8xODA7ICAgLy8gTWVhbiBsb25nLiBhdCBlcG9jaAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblAwID0gIDM2LjM0MDQxMCAqIFBJLzE4MDsgICAvLyBNZWFuIGxvbmcuIG9mIHBlcmlnZWUKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25OMCA9IDMxOC41MTAxMDcgKiBQSS8xODA7ICAgLy8gTWVhbiBsb25nLiBvZiBub2RlCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uSSAgPSAgIDUuMTQ1MzY2ICogUEkvMTgwOyAgIC8vIEluY2xpbmF0aW9uIG9mIG9yYml0CisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uRSAgPSAgIDAuMDU0OTAwOyAgICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIAorICAgIC8vIFRoZXNlIGFyZW4ndCB1c2VkIHJpZ2h0IG5vdworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkEgID0gICAzLjg0NDAxZTU7ICAgICAgICAgICAvLyBzZW1pLW1ham9yIGF4aXMgKGttKQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblQwID0gICAwLjUxODEgKiBQSS8xODA7ICAgICAvLyBBbmd1bGFyIHNpemUgYXQgZGlzdGFuY2UgQQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vblBpID0gICAwLjk1MDcgKiBQSS8xODA7ICAgICAvLyBQYXJhbGxheCBhdCBkaXN0YW5jZSBBCisgICAgCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBtb29uIGF0IHRoZSB0aW1lIHNldCBvbiB0aGlzCisgICAgICogb2JqZWN0LCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBFcXVhdG9yaWFsIGdldE1vb25Qb3NpdGlvbigpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBTZWUgcGFnZSAxNDIgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgIC8vIGJ5IFBldGVyIER1ZmZldC1TbWl0aCwgZm9yIGRldGFpbHMgb24gdGhlIGFsZ29yaXRobS4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKG1vb25Qb3NpdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNvbGFyIGxvbmdpdHVkZS4gIEhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YKKyAgICAgICAgICAgIC8vIGZpbGxpbmcgaW4gIm1lYW5Bbm9tYWx5U3VuIiBhcyB3ZWxsLgorICAgICAgICAgICAgZG91YmxlIHN1bkxvbmdpdHVkZSA9IGdldFN1bkxvbmdpdHVkZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRmluZCB0aGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBlcG9jaCBvZiBvdXIgb3JiaXRhbCBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgLy8gVE9ETzogQ29udmVydCB0aGUgdGltZSBvZiBkYXkgcG9ydGlvbiBpbnRvIGVwaGVtZXJpcyB0aW1lCisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIGRheSA9IGdldEp1bGlhbkRheSgpIC0gSkRfRVBPQ0g7ICAgICAgIC8vIERheXMgc2luY2UgZXBvY2gKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtZWFuIGxvbmdpdHVkZSBhbmQgYW5vbWFseSBvZiB0aGUgbW9vbiwgYmFzZWQgb24KKyAgICAgICAgICAgIC8vIGEgY2lyY3VsYXIgb3JiaXQuICBTaW1pbGFyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNvbGFyIGNhbGN1bGF0aW9uLgorICAgICAgICAgICAgZG91YmxlIG1lYW5Mb25naXR1ZGUgPSBub3JtMlBJKDEzLjE3NjM5NjYqUEkvMTgwKmRheSArIG1vb25MMCk7CisgICAgICAgICAgICBkb3VibGUgbWVhbkFub21hbHlNb29uID0gbm9ybTJQSShtZWFuTG9uZ2l0dWRlIC0gMC4xMTE0MDQxKlBJLzE4MCAqIGRheSAtIG1vb25QMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGZvbGxvd2luZyBjb3JyZWN0aW9uczoKKyAgICAgICAgICAgIC8vICBFdmVjdGlvbjogICB0aGUgc3VuJ3MgZ3Jhdml0eSBhZmZlY3RzIHRoZSBtb29uJ3MgZWNjZW50cmljaXR5CisgICAgICAgICAgICAvLyAgQW5udWFsIEVxbjogdmFyaWF0aW9uIGluIHRoZSBlZmZlY3QgZHVlIHRvIGVhcnRoLXN1biBkaXN0YW5jZQorICAgICAgICAgICAgLy8gIEEzOiAgICAgICAgIGNvcnJlY3Rpb24gZmFjdG9yIChmb3IgPz8/KQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBldmVjdGlvbiA9IDEuMjczOSpQSS8xODAgKiBNYXRoLnNpbigyICogKG1lYW5Mb25naXR1ZGUgLSBzdW5Mb25naXR1ZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1lYW5Bbm9tYWx5TW9vbik7CisgICAgICAgICAgICBkb3VibGUgYW5udWFsICAgPSAwLjE4NTgqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlTdW4pOworICAgICAgICAgICAgZG91YmxlIGEzICAgICAgID0gMC4zNzAwKlBJLzE4MCAqIE1hdGguc2luKG1lYW5Bbm9tYWx5U3VuKTsKKworICAgICAgICAgICAgbWVhbkFub21hbHlNb29uICs9IGV2ZWN0aW9uIC0gYW5udWFsIC0gYTM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBNb3JlIGNvcnJlY3Rpb24gZmFjdG9yczoKKyAgICAgICAgICAgIC8vICBjZW50ZXIgIGVxdWF0aW9uIG9mIHRoZSBjZW50ZXIgY29ycmVjdGlvbgorICAgICAgICAgICAgLy8gIGE0ICAgICAgeWV0IGFub3RoZXIgZXJyb3IgY29ycmVjdGlvbiAoPz8/KQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFRPRE86IFNraXAgdGhlIGVxdWF0aW9uIG9mIHRoZSBjZW50ZXIgY29ycmVjdGlvbiBhbmQgc29sdmUgS2VwbGVyJ3MgZXFuPworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBjZW50ZXIgPSA2LjI4ODYqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlNb29uKTsKKyAgICAgICAgICAgIGRvdWJsZSBhNCA9ICAgICAwLjIxNDAqUEkvMTgwICogTWF0aC5zaW4oMiAqIG1lYW5Bbm9tYWx5TW9vbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyBmaW5kIHRoZSBtb29uJ3MgY29ycmVjdGVkIGxvbmdpdHVkZQorICAgICAgICAgICAgbW9vbkxvbmdpdHVkZSA9IG1lYW5Mb25naXR1ZGUgKyBldmVjdGlvbiArIGNlbnRlciAtIGFubnVhbCArIGE0OworCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQW5kIGZpbmFsbHksIGZpbmQgdGhlIHZhcmlhdGlvbiwgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgdGhlIHN1bidzCisgICAgICAgICAgICAvLyBncmF2aXRhdGlvbmFsIHB1bGwgb24gdGhlIG1vb24gdmFyaWVzIGRlcGVuZGluZyBvbiB3aGljaCBzaWRlIG9mCisgICAgICAgICAgICAvLyB0aGUgZWFydGggdGhlIG1vb24gaXMgb24KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgdmFyaWF0aW9uID0gMC42NTgzKlBJLzE4MCAqIE1hdGguc2luKDIqKG1vb25Mb25naXR1ZGUgLSBzdW5Mb25naXR1ZGUpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbW9vbkxvbmdpdHVkZSArPSB2YXJpYXRpb247CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBXaGF0IHdlJ3ZlIGNhbGN1bGF0ZWQgc28gZmFyIGlzIHRoZSBtb29uJ3MgbG9uZ2l0dWRlIGluIHRoZSBwbGFuZQorICAgICAgICAgICAgLy8gb2YgaXRzIG93biBvcmJpdC4gIE5vdyBtYXAgdG8gdGhlIGVjbGlwdGljIHRvIGdldCB0aGUgbGF0aXR1ZGUKKyAgICAgICAgICAgIC8vIGFuZCBsb25naXR1ZGUuICBGaXJzdCB3ZSBuZWVkIHRvIGZpbmQgdGhlIGxvbmdpdHVkZSBvZiB0aGUgYXNjZW5kaW5nCisgICAgICAgICAgICAvLyBub2RlLCB0aGUgcG9zaXRpb24gb24gdGhlIGVjbGlwdGljIHdoZXJlIGl0IGlzIGNyb3NzZWQgYnkgdGhlIG1vb24ncworICAgICAgICAgICAgLy8gb3JiaXQgYXMgaXQgY3Jvc3NlcyBmcm9tIHRoZSBzb3V0aGVybiB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgbm9kZUxvbmdpdHVkZSA9IG5vcm0yUEkobW9vbk4wIC0gMC4wNTI5NTM5KlBJLzE4MCAqIGRheSk7CisKKyAgICAgICAgICAgIG5vZGVMb25naXR1ZGUgLT0gMC4xNipQSS8xODAgKiBNYXRoLnNpbihtZWFuQW5vbWFseVN1bik7CisKKyAgICAgICAgICAgIGRvdWJsZSB5ID0gTWF0aC5zaW4obW9vbkxvbmdpdHVkZSAtIG5vZGVMb25naXR1ZGUpOworICAgICAgICAgICAgZG91YmxlIHggPSBNYXRoLmNvcyhtb29uTG9uZ2l0dWRlIC0gbm9kZUxvbmdpdHVkZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1vb25FY2xpcExvbmcgPSBNYXRoLmF0YW4yKHkqTWF0aC5jb3MobW9vbkkpLCB4KSArIG5vZGVMb25naXR1ZGU7CisgICAgICAgICAgICBkb3VibGUgbW9vbkVjbGlwTGF0ID0gTWF0aC5hc2luKHkgKiBNYXRoLnNpbihtb29uSSkpOworCisgICAgICAgICAgICBtb29uUG9zaXRpb24gPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChtb29uRWNsaXBMb25nLCBtb29uRWNsaXBMYXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtb29uUG9zaXRpb247CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSAiYWdlIiBvZiB0aGUgbW9vbiBhdCB0aGUgdGltZSBzcGVjaWZpZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogVGhpcyBpcyByZWFsbHkgdGhlIGFuZ2xlIGJldHdlZW4gdGhlCisgICAgICogY3VycmVudCBlY2xpcHRpYyBsb25naXR1ZGVzIG9mIHRoZSBzdW4gYW5kIHRoZSBtb29uLAorICAgICAqIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb29uUGhhc2UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldE1vb25BZ2UoKSB7CisgICAgICAgIC8vIFNlZSBwYWdlIDE0NyBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAvLworICAgICAgICAvLyBGb3JjZSB0aGUgbW9vbidzIHBvc2l0aW9uIHRvIGJlIGNhbGN1bGF0ZWQuICBXZSdyZSBnb2luZyB0byB1c2UKKyAgICAgICAgLy8gc29tZSB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdHMgY2FjaGVkIGR1cmluZyB0aGF0IGNhbGN1bGF0aW9uLgorICAgICAgICAvLworICAgICAgICBnZXRNb29uUG9zaXRpb24oKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBub3JtMlBJKG1vb25FY2xpcExvbmcgLSBzdW5Mb25naXR1ZGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGUgdGhlIHBoYXNlIG9mIHRoZSBtb29uIGF0IHRoZSB0aW1lIHNldCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiBUaGUgcmV0dXJuZWQgcGhhc2UgaXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+IGluIHRoZSByYW5nZQorICAgICAqIDxjb2RlPjAgPD0gcGhhc2UgPCAxPC9jb2RlPiwgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjAuMDA6IE5ldyBtb29uCisgICAgICogPGxpPjAuMjU6IEZpcnN0IHF1YXJ0ZXIKKyAgICAgKiA8bGk+MC41MDogRnVsbCBtb29uCisgICAgICogPGxpPjAuNzU6IExhc3QgcXVhcnRlcgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb29uQWdlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRNb29uUGhhc2UoKSB7CisgICAgICAgIC8vIFNlZSBwYWdlIDE0NyBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICByZXR1cm4gMC41ICogKDEgLSBNYXRoLmNvcyhnZXRNb29uQWdlKCkpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTW9vbkFnZSB7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgTW9vbkFnZShkb3VibGUgdmFsKSB7IHZhbHVlID0gdmFsOyB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyBhIG5ldyBtb29uLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBORVdfTU9PTiAgICAgID0gbmV3IE1vb25BZ2UoMCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIG1vb24ncyBmaXJzdCBxdWFydGVyLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBGSVJTVF9RVUFSVEVSID0gbmV3IE1vb25BZ2UoUEkvMik7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIGEgZnVsbCBtb29uLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lKE1vb25BZ2UsIGJvb2xlYW4pIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBGVUxMX01PT04gICAgID0gbmV3IE1vb25BZ2UoUEkpOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgbW9vbidzIGxhc3QgcXVhcnRlci4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRNb29uVGltZShNb29uQWdlLCBib29sZWFuKSBnZXRNb29uVGltZX0KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vb25BZ2UgTEFTVF9RVUFSVEVSICA9IG5ldyBNb29uQWdlKChQSSozKS8yKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBuZXh0IG9yIHByZXZpb3VzIHRpbWUgYXQgd2hpY2ggdGhlIE1vb24ncyBlY2xpcHRpYworICAgICAqIGxvbmdpdHVkZSB3aWxsIGhhdmUgdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGVzaXJlZCAgIFRoZSBkZXNpcmVkIGxvbmdpdHVkZS4KKyAgICAgKiBAcGFyYW0gbmV4dCAgICAgIDx0dD50cnVlPC90dD4gaWYgdGhlIG5leHQgb2NjdXJyYW5jZSBvZiB0aGUgcGhhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlzIGRlc2lyZWQsIDx0dD5mYWxzZTwvdHQ+IGZvciB0aGUgcHJldmlvdXMgb2NjdXJyYW5jZS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0TW9vblRpbWUoZG91YmxlIGRlc2lyZWQsIGJvb2xlYW4gbmV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aW1lT2ZBbmdsZSggbmV3IEFuZ2xlRnVuYygpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgZG91YmxlIGV2YWwoKSB7IHJldHVybiBnZXRNb29uQWdlKCk7IH0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTk9ESUNfTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlOVVRFX01TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBuZXh0IG9yIHByZXZpb3VzIHRpbWUgYXQgd2hpY2ggdGhlIG1vb24gd2lsbCBiZSBpbiB0aGUKKyAgICAgKiBkZXNpcmVkIHBoYXNlLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkZXNpcmVkICAgVGhlIGRlc2lyZWQgcGhhc2Ugb2YgdGhlIG1vb24uCisgICAgICogQHBhcmFtIG5leHQgICAgICA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoZSBuZXh0IG9jY3VycmFuY2Ugb2YgdGhlIHBoYXNlCisgICAgICogICAgICAgICAgICAgICAgICBpcyBkZXNpcmVkLCA8dHQ+ZmFsc2U8L3R0PiBmb3IgdGhlIHByZXZpb3VzIG9jY3VycmFuY2UuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldE1vb25UaW1lKE1vb25BZ2UgZGVzaXJlZCwgYm9vbGVhbiBuZXh0KSB7CisgICAgICAgIHJldHVybiBnZXRNb29uVGltZShkZXNpcmVkLnZhbHVlLCBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSAoR01UKSBvZiBzdW5yaXNlIG9yIHN1bnNldCBvbiB0aGUgbG9jYWwgZGF0ZSB0byB3aGljaAorICAgICAqIHRoaXMgY2FsZW5kYXIgaXMgY3VycmVudGx5IHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRNb29uUmlzZVNldChib29sZWFuIHJpc2UpCisgICAgeworICAgICAgICByZXR1cm4gcmlzZU9yU2V0KG5ldyBDb29yZEZ1bmMoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVxdWF0b3JpYWwgZXZhbCgpIHsgcmV0dXJuIGdldE1vb25Qb3NpdGlvbigpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByaXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIC41MzMgKiBERUdfUkFELCAgICAgICAgLy8gQW5ndWxhciBEaWFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgIDM0IC82MC4wICogREVHX1JBRCwgICAgLy8gUmVmcmFjdGlvbiBjb3JyZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgTUlOVVRFX01TKTsgICAgICAgICAgICAvLyBEZXNpcmVkIGFjY3VyYWN5CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJwb2xhdGlvbiBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSB0aW1lIGF0IHdoaWNoIGEgZ2l2ZW4gZXZlbnQgb2NjdXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgQW5nbGVGdW5jIHsKKyAgICAgICAgcHVibGljIGRvdWJsZSBldmFsKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgbG9uZyB0aW1lT2ZBbmdsZShBbmdsZUZ1bmMgZnVuYywgZG91YmxlIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBwZXJpb2REYXlzLCBsb25nIGVwc2lsb24sIGJvb2xlYW4gbmV4dCkKKyAgICB7CisgICAgICAgIC8vIEZpbmQgdGhlIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBhdCB0aGUgY3VycmVudCB0aW1lCisgICAgICAgIGRvdWJsZSBsYXN0QW5nbGUgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgb3V0IGhvdyBmYXIgd2UgYXJlIGZyb20gdGhlIGRlc2lyZWQgYW5nbGUKKyAgICAgICAgZG91YmxlIGRlbHRhQW5nbGUgPSBub3JtMlBJKGRlc2lyZWQgLSBsYXN0QW5nbGUpIDsKKyAgICAgICAgCisgICAgICAgIC8vIFVzaW5nIHRoZSBhdmVyYWdlIHBlcmlvZCwgZXN0aW1hdGUgdGhlIG5leHQgKG9yIHByZXZpb3VzKSB0aW1lIGF0CisgICAgICAgIC8vIHdoaWNoIHRoZSBkZXNpcmVkIGFuZ2xlIG9jY3Vycy4KKyAgICAgICAgZG91YmxlIGRlbHRhVCA9ICAoZGVsdGFBbmdsZSArIChuZXh0ID8gMCA6IC1QSTIpKSAqIChwZXJpb2REYXlzKkRBWV9NUykgLyBQSTI7CisgICAgICAgIAorICAgICAgICBkb3VibGUgbGFzdERlbHRhVCA9IGRlbHRhVDsgLy8gTGl1CisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gdGltZTsgLy8gTGl1CisgICAgICAgIAorICAgICAgICBzZXRUaW1lKHRpbWUgKyAobG9uZylkZWx0YVQpOworCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIHVudGlsIHdlIGdldCB0aGUgZXJyb3IgYmVsb3cgZXBzaWxvbi4gIFRocm91Z2hvdXQKKyAgICAgICAgLy8gdGhpcyBsb29wIHdlIHVzZSBub3JtUEkgdG8gZ2V0IHZhbHVlcyBpbiB0aGUgcmFuZ2UgLVBpIHRvIFBpLAorICAgICAgICAvLyBzaW5jZSB3ZSdyZSB1c2luZyB0aGVtIGFzIGNvcnJlY3Rpb24gZmFjdG9ycyByYXRoZXIgdGhhbiBhYnNvbHV0ZSBhbmdsZXMuCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIC8vIEV2YWx1YXRlIHRoZSBmdW5jdGlvbiBhdCB0aGUgdGltZSB3ZSd2ZSBlc3RpbWF0ZWQKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IGZ1bmMuZXZhbCgpOworCisgICAgICAgICAgICAvLyBGaW5kIHRoZSAjIG9mIG1pbGxpc2Vjb25kcyBwZXIgcmFkaWFuIGF0IHRoaXMgcG9pbnQgb24gdGhlIGN1cnZlCisgICAgICAgICAgICBkb3VibGUgZmFjdG9yID0gTWF0aC5hYnMoZGVsdGFUIC8gbm9ybVBJKGFuZ2xlLWxhc3RBbmdsZSkpOworCisgICAgICAgICAgICAvLyBDb3JyZWN0IHRoZSB0aW1lIGVzdGltYXRlIGJhc2VkIG9uIGhvdyBmYXIgb2ZmIHRoZSBhbmdsZSBpcworICAgICAgICAgICAgZGVsdGFUID0gbm9ybVBJKGRlc2lyZWQgLSBhbmdsZSkgKiBmYWN0b3I7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEhBQ0s6CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIElmIGFicyhkZWx0YVQpIGJlZ2lucyB0byBkaXZlcmdlIHdlIG5lZWQgdG8gcXVpdCB0aGlzIGxvb3AuCisgICAgICAgICAgICAvLyBUaGlzIG9ubHkgYXBwZWFycyB0byBoYXBwZW4gd2hlbiBhdHRlbXB0aW5nIHRvIGxvY2F0ZSwgZm9yCisgICAgICAgICAgICAvLyBleGFtcGxlLCBhIG5ldyBtb29uIG9uIHRoZSBkYXkgb2YgdGhlIG5ldyBtb29uLiAgRS5nLjoKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gVGhpcyByZXN1bHQgaXMgY29ycmVjdDoKKyAgICAgICAgICAgIC8vIG5ld01vb24oNzUwOChNb24gSnVsIDIzIDAwOjAwOjAwIENTVCAxOTkwLGZhbHNlKSk9CisgICAgICAgICAgICAvLyAgIFN1biBKdWwgMjIgMTA6NTc6NDEgQ1NUIDE5OTAKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gQnV0IGF0dGVtcHRpbmcgdG8gbWFrZSB0aGUgc2FtZSBjYWxsIGEgZGF5IGVhcmxpZXIgY2F1c2VzIGRlbHRhVAorICAgICAgICAgICAgLy8gdG8gZGl2ZXJnZToKKyAgICAgICAgICAgIC8vIENhbGVuZGFyQXN0cm9ub21lci50aW1lT2ZBbmdsZSgpIGRpdmVyZ2luZzogMS4zNDg1MDg3Mjc1NzU2MjVFOSAtPgorICAgICAgICAgICAgLy8gICAxLjM2NDk4Mjg1NDAyMjQwMzJFOQorICAgICAgICAgICAgLy8gbmV3TW9vbig3NTA3KFN1biBKdWwgMjIgMDA6MDA6MDAgQ1NUIDE5OTAsZmFsc2UpKT0KKyAgICAgICAgICAgIC8vICAgU3VuIEp1bCAwOCAxMzo1NjoxNSBDU1QgMTk5MAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCB3ZSBjYXRjaCB0aGlzIHNwZWNpZmljIGNvbmRpdGlvbiBhbmQKKyAgICAgICAgICAgIC8vIGFkanVzdCBvdXIgc3RhcnQgdGltZSBieSBvbmUgZWlnaHRoIHBlcmlvZCBkYXlzIChlaXRoZXIgZm9yd2FyZAorICAgICAgICAgICAgLy8gb3IgYmFja3dhcmQpIGFuZCB0cnkgYWdhaW4uCisgICAgICAgICAgICAvLyBMaXUgMTEvOS8wMAorICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhVCkgPiBNYXRoLmFicyhsYXN0RGVsdGFUKSkgeworICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSAobG9uZykgKHBlcmlvZERheXMgKiBEQVlfTVMgLyA4KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lKHN0YXJ0VGltZSArIChuZXh0ID8gZGVsdGEgOiAtZGVsdGEpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoZnVuYywgZGVzaXJlZCwgcGVyaW9kRGF5cywgZXBzaWxvbiwgbmV4dCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxhc3REZWx0YVQgPSBkZWx0YVQ7CisgICAgICAgICAgICBsYXN0QW5nbGUgPSBhbmdsZTsKKworICAgICAgICAgICAgc2V0VGltZSh0aW1lICsgKGxvbmcpZGVsdGFUKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoTWF0aC5hYnMoZGVsdGFUKSA+IGVwc2lsb24pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIENvb3JkRnVuYyB7CisgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsIGV2YWwoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBsb25nIHJpc2VPclNldChDb29yZEZ1bmMgZnVuYywgYm9vbGVhbiByaXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRpYW1ldGVyLCBkb3VibGUgcmVmcmFjdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGVwc2lsb24pCisgICAgeyAgICAgICAgCisgICAgICAgIEVxdWF0b3JpYWwgIHBvcyA9IG51bGw7CisgICAgICAgIGRvdWJsZSAgICAgIHRhbkwgICA9IE1hdGgudGFuKGZMYXRpdHVkZSk7CisgICAgICAgIGxvbmcgICAgICAgIGRlbHRhVCA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG9iamVjdCdzIHBvc2l0aW9uIGF0IHRoZSBjdXJyZW50IHRpbWUsIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgLy8gcG9zaXRpb24gdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHJpc2luZyBvciBzZXR0aW5nLiAgVGhlIHBvc2l0aW9uCisgICAgICAgIC8vIHdpbGwgYmUgZGlmZmVyZW50IGF0IHRoYXQgdGltZSwgc28gaXRlcmF0ZSB1bnRpbCB0aGUgZXJyb3IgaXMgYWxsb3dhYmxlLgorICAgICAgICAvLworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBTZWUgIlByYWN0aWNhbCBBc3Ryb25vbXkgV2l0aCBZb3VyIENhbGN1bGF0b3IsIHNlY3Rpb24gMzMuCisgICAgICAgICAgICBwb3MgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IE1hdGguYWNvcygtdGFuTCAqIE1hdGgudGFuKHBvcy5kZWNsaW5hdGlvbikpOworICAgICAgICAgICAgZG91YmxlIGxzdCA9ICgocmlzZSA/IFBJMi1hbmdsZSA6IGFuZ2xlKSArIHBvcy5hc2NlbnNpb24gKSAqIDI0IC8gUEkyOworICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBmcm9tIExTVCB0byBVbml2ZXJzYWwgVGltZS4KKyAgICAgICAgICAgIGxvbmcgbmV3VGltZSA9IGxzdFRvVVQoIGxzdCApOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWx0YVQgPSBuZXdUaW1lIC0gdGltZTsKKyAgICAgICAgICAgIHNldFRpbWUobmV3VGltZSk7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKCsrIGNvdW50IDwgNSAmJiBNYXRoLmFicyhkZWx0YVQpID4gZXBzaWxvbik7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBjb3JyZWN0aW9uIGR1ZSB0byByZWZyYWN0aW9uIGFuZCB0aGUgb2JqZWN0J3MgYW5ndWxhciBkaWFtZXRlcgorICAgICAgICBkb3VibGUgY29zRCAgPSBNYXRoLmNvcyhwb3MuZGVjbGluYXRpb24pOworICAgICAgICBkb3VibGUgcHNpICAgPSBNYXRoLmFjb3MoTWF0aC5zaW4oZkxhdGl0dWRlKSAvIGNvc0QpOworICAgICAgICBkb3VibGUgeCAgICAgPSBkaWFtZXRlciAvIDIgKyByZWZyYWN0aW9uOworICAgICAgICBkb3VibGUgeSAgICAgPSBNYXRoLmFzaW4oTWF0aC5zaW4oeCkgLyBNYXRoLnNpbihwc2kpKTsKKyAgICAgICAgbG9uZyAgZGVsdGEgID0gKGxvbmcpKCgyNDAgKiB5ICogUkFEX0RFRyAvIGNvc0QpKlNFQ09ORF9NUyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGltZSArIChyaXNlID8gLWRlbHRhIDogZGVsdGEpOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBPdGhlciB1dGlsaXR5IG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKioKKyAgICAgKiBHaXZlbiAndmFsdWUnLCBhZGQgb3Igc3VidHJhY3QgJ3JhbmdlJyB1bnRpbCAwIDw9ICd2YWx1ZScgPCByYW5nZS4KKyAgICAgKiBUaGUgbW9kdWx1cyBvcGVyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybWFsaXplKGRvdWJsZSB2YWx1ZSwgZG91YmxlIHJhbmdlKSB7CisgICAgICAgIHJldHVybiB2YWx1ZSAtIHJhbmdlICogTWF0aC5mbG9vcih2YWx1ZSAvIHJhbmdlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGFuIGFuZ2xlIHNvIHRoYXQgaXQncyBpbiB0aGUgcmFuZ2UgMCAtIDJwaS4KKyAgICAgKiBGb3IgcG9zaXRpdmUgYW5nbGVzIHRoaXMgaXMganVzdCAoYW5nbGUgJSAycGkpLCBidXQgdGhlIEphdmEKKyAgICAgKiBtb2Qgb3BlcmF0b3IgZG9lc24ndCB3b3JrIHRoYXQgd2F5IGZvciBuZWdhdGl2ZSBudW1iZXJzLi4uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBub3JtMlBJKGRvdWJsZSBhbmdsZSkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKGFuZ2xlLCBQSTIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYW4gYW5nbGUgaW50byB0aGUgcmFuZ2UgLVBJIC0gUEkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybVBJKGRvdWJsZSBhbmdsZSkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKGFuZ2xlICsgUEksIFBJMikgLSBQSTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgInRydWUgYW5vbWFseSIgKGxvbmdpdHVkZSkgb2YgYW4gb2JqZWN0IGZyb20KKyAgICAgKiBpdHMgbWVhbiBhbm9tYWx5IGFuZCB0aGUgZWNjZW50cmljaXR5IG9mIGl0cyBvcmJpdC4gIFRoaXMgdXNlcworICAgICAqIGFuIGl0ZXJhdGl2ZSBzb2x1dGlvbiB0byBLZXBsZXIncyBlcXVhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZWFuQW5vbWFseSAgIFRoZSBvYmplY3QncyBsb25naXR1ZGUgY2FsY3VsYXRlZCBhcyBpZiBpdCB3ZXJlIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgYSByZWd1bGFyLCBjaXJjdWxhciBvcmJpdCwgbWVhc3VyZWQgaW4gcmFkaWFucworICAgICAqICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHBvaW50IG9mIHBlcmlnZWUuICAKKyAgICAgKgorICAgICAqIEBwYXJhbSBlY2NlbnRyaWNpdHkgIFRoZSBlY2NlbnRyaWNpdHkgb2YgdGhlIG9yYml0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSB0cnVlIGFub21hbHkgKGxvbmdpdHVkZSkgbWVhc3VyZWQgaW4gcmFkaWFucworICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIHRydWVBbm9tYWx5KGRvdWJsZSBtZWFuQW5vbWFseSwgZG91YmxlIGVjY2VudHJpY2l0eSkKKyAgICB7CisgICAgICAgIC8vIEZpcnN0LCBzb2x2ZSBLZXBsZXIncyBlcXVhdGlvbiBpdGVyYXRpdmVseQorICAgICAgICAvLyBEdWZmZXR0LVNtaXRoLCBwLjkwCisgICAgICAgIGRvdWJsZSBkZWx0YTsKKyAgICAgICAgZG91YmxlIEUgPSBtZWFuQW5vbWFseTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgZGVsdGEgPSBFIC0gZWNjZW50cmljaXR5ICogTWF0aC5zaW4oRSkgLSBtZWFuQW5vbWFseTsKKyAgICAgICAgICAgIEUgPSBFIC0gZGVsdGEgLyAoMSAtIGVjY2VudHJpY2l0eSAqIE1hdGguY29zKEUpKTsKKyAgICAgICAgfSAKKyAgICAgICAgd2hpbGUgKE1hdGguYWJzKGRlbHRhKSA+IDFlLTUpOyAvLyBlcHNpbG9uID0gMWUtNSByYWQKKworICAgICAgICByZXR1cm4gMi4wICogTWF0aC5hdGFuKCBNYXRoLnRhbihFLzIpICogTWF0aC5zcXJ0KCAoMStlY2NlbnRyaWNpdHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLygxLWVjY2VudHJpY2l0eSkgKSApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9ibGlxdWl0eSBvZiB0aGUgZWNsaXB0aWMgKHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBlY2xpcHRpYworICAgICAqIGFuZCB0aGUgZWFydGgncyBlcXVhdG9yKSBhdCB0aGUgY3VycmVudCB0aW1lLiAgVGhpcyB2YXJpZXMgZHVlIHRvCisgICAgICogdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MgYXhpcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHRoZSBvYmxpcXVpdHkgb2YgdGhlIGVjbGlwdGljIHJlbGF0aXZlIHRvIHRoZSBlcXVhdG9yLAorICAgICAqICAgICAgICAgIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZWNsaXB0aWNPYmxpcXVpdHkoKSB7CisgICAgICAgIGlmIChlY2xpcE9ibGlxdWl0eSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBmaW5hbCBkb3VibGUgZXBvY2ggPSAyNDUxNTQ1LjA7ICAgICAvLyAyMDAwIEFELCBKYW51YXJ5IDEuNQorCisgICAgICAgICAgICBkb3VibGUgVCA9IChnZXRKdWxpYW5EYXkoKSAtIGVwb2NoKSAvIDM2NTI1OworICAgICAgICAgICAgCisgICAgICAgICAgICBlY2xpcE9ibGlxdWl0eSA9IDIzLjQzOTI5MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgLSA0Ni44MTUvMzYwMCAqIFQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMC4wMDA2LzM2MDAgKiBUKlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMC4wMDE4MS8zNjAwICogVCpUKlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGVjbGlwT2JsaXF1aXR5ICo9IERFR19SQUQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVjbGlwT2JsaXF1aXR5OworICAgIH0KKyAgICAKKyAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJpdmF0ZSBkYXRhCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCBBRAorICAgICAqIEBzZWUgamF2YS51dGlsLkRhdGUjZ2V0VGltZQorICAgICAqLworICAgIHByaXZhdGUgbG9uZyB0aW1lOworICAgIAorICAgIC8qIFRoZXNlIGFyZW4ndCB1c2VkIHlldCwgYnV0IHRoZXknbGwgYmUgbmVlZGVkIGZvciBzdW5zZXQgY2FsY3VsYXRpb25zCisgICAgICogYW5kIGVxdWF0b3JpYWwgdG8gaG9yaXpvbiBjb29yZGluYXRlIGNvbnZlcnNpb25zCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZkxvbmdpdHVkZSA9IDAuMDsKKyAgICBwcml2YXRlIGRvdWJsZSBmTGF0aXR1ZGUgID0gMC4wOworICAgIHByaXZhdGUgbG9uZyAgIGZHbXRPZmZzZXQgPSAwOworICAgIAorICAgIC8vCisgICAgLy8gVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIHVzZWQgdG8gY2FjaGUgY2FsY3VsYXRlZCByZXN1bHRzIGZvciBpbXByb3ZlZAorICAgIC8vIHBlcmZvcm1hbmNlLiAgVGhlc2UgdmFsdWVzIGFsbCBkZXBlbmQgb24gdGhlIGN1cnJlbnQgdGltZSBzZXR0aW5nCisgICAgLy8gb2YgdGhpcyBvYmplY3QsIHNvIHRoZSBjbGVhckNhY2hlIG1ldGhvZCBpcyBwcm92aWRlZC4KKyAgICAvLworICAgIHN0YXRpYyBmaW5hbCBwcml2YXRlIGRvdWJsZSBJTlZBTElEID0gRG91YmxlLk1JTl9WQUxVRTsKKyAgICAKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAganVsaWFuRGF5ICAgICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAganVsaWFuQ2VudHVyeSAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc3VuTG9uZ2l0dWRlICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbWVhbkFub21hbHlTdW4gID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbW9vbkxvbmdpdHVkZSAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbW9vbkVjbGlwTG9uZyAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgbWVhbkFub21hbHlNb29uID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgZWNsaXBPYmxpcXVpdHkgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc2lkZXJlYWxUMCAgICAgID0gSU5WQUxJRDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgICAgc2lkZXJlYWxUaW1lICAgID0gSU5WQUxJRDsKKyAgICAKKyAgICBwcml2YXRlIHRyYW5zaWVudCBFcXVhdG9yaWFsICBtb29uUG9zaXRpb24gPSBudWxsOworCisgICAgcHJpdmF0ZSB2b2lkIGNsZWFyQ2FjaGUoKSB7CisgICAgICAgIGp1bGlhbkRheSAgICAgICA9IElOVkFMSUQ7CisgICAgICAgIGp1bGlhbkNlbnR1cnkgICA9IElOVkFMSUQ7CisgICAgICAgIHN1bkxvbmdpdHVkZSAgICA9IElOVkFMSUQ7CisgICAgICAgIG1lYW5Bbm9tYWx5U3VuICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25Mb25naXR1ZGUgICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25FY2xpcExvbmcgICA9IElOVkFMSUQ7CisgICAgICAgIG1lYW5Bbm9tYWx5TW9vbiA9IElOVkFMSUQ7CisgICAgICAgIGVjbGlwT2JsaXF1aXR5ICA9IElOVkFMSUQ7CisgICAgICAgIHNpZGVyZWFsVGltZSAgICA9IElOVkFMSUQ7CisgICAgICAgIHNpZGVyZWFsVDAgICAgICA9IElOVkFMSUQ7CisgICAgICAgIG1vb25Qb3NpdGlvbiAgICA9IG51bGw7CisgICAgfQorICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgdm9pZCBvdXQoU3RyaW5nIHMpIHsKKyAgICAvLyAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgLy99CisgICAgCisgICAgLy9wcml2YXRlIHN0YXRpYyBTdHJpbmcgZGVnKGRvdWJsZSByYWQpIHsKKyAgICAvLyAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKHJhZCAqIFJBRF9ERUcpOworICAgIC8vfQorICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhvdXJzKGxvbmcgbXMpIHsKKyAgICAvLyAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKChkb3VibGUpbXMgLyBIT1VSX01TKSArICIgaG91cnMiOworICAgIC8vfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBsb2NhbChsb25nIGxvY2FsTWlsbGlzKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZShsb2NhbE1pbGxpcyAtIFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRSYXdPZmZzZXQoKSkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIGVjbGlwdGljLAorICAgICAqIHRoZSBwbGFuZSBvZiB0aGUgZWFydGgncyBvcmJpdCBhcm91bmQgdGhlIFN1bi4gCisgICAgICogVGhpcyBpcyBhIHNwaGVyaWNhbCBjb29yZGluYXRlIHN5c3RlbSBpbiB3aGljaCB0aGUgbGF0aXR1ZGUKKyAgICAgKiBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBwbGFuZSBvZiB0aGUgZWNsaXB0aWMuCisgICAgICogVGhlIGxvbmdpdHVkZSBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIGFsb25nIHRoZSBlY2xpcHRpYyBwbGFuZQorICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24gaW4gdGhlIHNreQorICAgICAqIGF0IHRoZSBWZXJuYWwgRXF1aW5veC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgRWNsaXB0aWMgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVxdWF0b3JpYWwKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5Ib3Jpem9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFY2xpcHRpYyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVjbGlwdGljIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGxhdCBUaGUgZWNsaXB0aWMgbGF0aXR1ZGUsIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBsb24gVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgbWVhc3VyZWQgaW4gcmFkaWFucy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRWNsaXB0aWMoZG91YmxlIGxhdCwgZG91YmxlIGxvbikgeworICAgICAgICAgICAgbGF0aXR1ZGUgPSBsYXQ7CisgICAgICAgICAgICBsb25naXR1ZGUgPSBsb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcobG9uZ2l0dWRlKlJBRF9ERUcpICsgIiwiICsgKGxhdGl0dWRlKlJBRF9ERUcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVjbGlwdGljIGxhdGl0dWRlLCBpbiByYWRpYW5zLiAgVGhpcyBzcGVjaWZpZXMgYW4gb2JqZWN0J3MKKyAgICAgICAgICogcG9zaXRpb24gbm9ydGggb3Igc291dGggb2YgdGhlIHBsYW5lIG9mIHRoZSBlY2xpcHRpYywKKyAgICAgICAgICogd2l0aCBwb3NpdGl2ZSBhbmdsZXMgcmVwcmVzZW50aW5nIG5vcnRoLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgbGF0aXR1ZGU7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgaW4gcmFkaWFucy4KKyAgICAgICAgICogVGhpcyBzcGVjaWZpZXMgYW4gb2JqZWN0J3MgcG9zaXRpb24gYWxvbmcgdGhlIGVjbGlwdGljIHBsYW5lCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24KKyAgICAgICAgICogaW4gdGhlIHNreSBhdCB0aGUgVmVybmFsIEVxdWlub3gsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBlYXN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQSBiaXQgb2YgdHJpdmlhOiB0aGUgZmlyc3QgcG9pbnQgb2YgQXJpZXMgaXMgY3VycmVudGx5IGluIHRoZQorICAgICAgICAgKiBjb25zdGVsbGF0aW9uIFBpc2NlcywgZHVlIHRvIHRoZSBwcmVjZXNzaW9uIG9mIHRoZSBlYXJ0aCdzIGF4aXMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGRvdWJsZSBsb25naXR1ZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gCisgICAgICogb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIHBsYW5lIG9mIHRoZSBlYXJ0aCdzIGVxdWF0b3IuIAorICAgICAqIFRoZSA8aT5SaWdodCBBc2NlbnNpb248L2k+IHNwZWNpZmllcyB0aGUgcG9zaXRpb24gZWFzdCBvciB3ZXN0CisgICAgICogYWxvbmcgdGhlIGVxdWF0b3IsIHJlbGF0aXZlIHRvIHRoZSBzdW4ncyBwb3NpdGlvbiBhdCB0aGUgdmVybmFsCisgICAgICogZXF1aW5veC4gIFRoZSA8aT5EZWNsaW5hdGlvbjwvaT4gaXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoCisgICAgICogb2YgdGhlIGVxdWF0b3JpYWwgcGxhbmUuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IEVxdWF0b3JpYWwgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVjbGlwdGljCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuSG9yaXpvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRXF1YXRvcmlhbCB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVxdWF0b3JpYWwgY29vcmRpbmF0ZSBvYmplY3QuCisgICAgICAgICAqIDxwPgorICAgICAgICAgKiBAcGFyYW0gYXNjIFRoZSByaWdodCBhc2NlbnNpb24sIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBkZWMgVGhlIGRlY2xpbmF0aW9uLCBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsKGRvdWJsZSBhc2MsIGRvdWJsZSBkZWMpIHsKKyAgICAgICAgICAgIGFzY2Vuc2lvbiA9IGFzYzsKKyAgICAgICAgICAgIGRlY2xpbmF0aW9uID0gZGVjOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdCwgd2l0aCB0aGUKKyAgICAgICAgICogYW5nbGVzIG1lYXN1cmVkIGluIGRlZ3JlZXMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcoYXNjZW5zaW9uKlJBRF9ERUcpICsgIiwiICsgKGRlY2xpbmF0aW9uKlJBRF9ERUcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0IHdpdGggdGhlIHJpZ2h0IGFzY2Vuc2lvbgorICAgICAgICAgKiBtZWFzdXJlZCBpbiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b0htc1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiByYWRUb0htcyhhc2NlbnNpb24pICsgIiwiICsgcmFkVG9EbXMoZGVjbGluYXRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJpZ2h0IGFzY2Vuc2lvbiwgaW4gcmFkaWFucy4gCisgICAgICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIGVhc3Qgb3Igd2VzdCBhbG9uZyB0aGUgZXF1YXRvcgorICAgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3VuJ3MgcG9zaXRpb24gYXQgdGhlIHZlcm5hbCBlcXVpbm94LAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgRWFzdC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGFzY2Vuc2lvbjsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGVjbGluYXRpb24sIGluIHJhZGlhbnMuCisgICAgICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBlcXVhdG9yaWFsIHBsYW5lLAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgbm9ydGguCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGRvdWJsZSBkZWNsaW5hdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBwb3NpdGlvbiBvZiBhbiAgb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gCisgICAgICogdGhlIGxvY2FsIGhvcml6b24uCisgICAgICogVGhlIDxpPkFsdGl0dWRlPC9pPiByZXByZXNlbnRzIHRoZSBvYmplY3QncyBlbGV2YXRpb24gYWJvdmUgdGhlIGhvcml6b24sCisgICAgICogd2l0aCBvYmplY3RzIGJlbG93IHRoZSBob3Jpem9uIGhhdmluZyBhIG5lZ2F0aXZlIGFsdGl0dWRlLgorICAgICAqIFRoZSA8aT5BemltdXRoPC9pPiBpcyB0aGUgZ2VvZ3JhcGhpYyBkaXJlY3Rpb24gb2YgdGhlIG9iamVjdCBmcm9tIHRoZQorICAgICAqIG9ic2VydmVyJ3MgcG9zaXRpb24sIHdpdGggMCByZXByZXNlbnRpbmcgbm9ydGguICBUaGUgYXppbXV0aCBpbmNyZWFzZXMKKyAgICAgKiBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgSG9yaXpvbiBvYmplY3RzIGFyZSBpbW11dGFibGUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZAorICAgICAqIG9uY2UgdGhleSBhcmUgY29uc3RydWN0ZWQuICBUaGlzIGFsbG93cyB0aGVtIHRvIGJlIHBhc3NlZCBhbmQgcmV0dXJuZWQgYnkKKyAgICAgKiB2YWx1ZSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3RoZXIgY29kZSB3aWxsIG1vZGlmeSB0aGVtLgorICAgICAqCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuRWNsaXB0aWMKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5FcXVhdG9yaWFsCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBIb3Jpem9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBIb3Jpem9uIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGFsdCAgVGhlIGFsdGl0dWRlLCBtZWFzdXJlZCBpbiByYWRpYW5zIGFib3ZlIHRoZSBob3Jpem9uLgorICAgICAgICAgKiBAcGFyYW0gYXppbSBUaGUgYXppbXV0aCwgbWVhc3VyZWQgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSG9yaXpvbihkb3VibGUgYWx0LCBkb3VibGUgYXppbSkgeworICAgICAgICAgICAgYWx0aXR1ZGUgPSBhbHQ7CisgICAgICAgICAgICBhemltdXRoID0gYXppbTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QsIHdpdGggdGhlCisgICAgICAgICAqIGFuZ2xlcyBtZWFzdXJlZCBpbiBkZWdyZWVzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGFsdGl0dWRlKlJBRF9ERUcpICsgIiwiICsgKGF6aW11dGgqUkFEX0RFRyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVGhlIG9iamVjdCdzIGFsdGl0dWRlIGFib3ZlIHRoZSBob3Jpem9uLCBpbiByYWRpYW5zLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGFsdGl0dWRlOworICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBUaGUgb2JqZWN0J3MgZGlyZWN0aW9uLCBpbiByYWRpYW5zIGNsb2Nrd2lzZSBmcm9tIG5vcnRoLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGF6aW11dGg7CisgICAgfQorCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIHJhZFRvSG1zKGRvdWJsZSBhbmdsZSkgeworICAgICAgICBpbnQgaHJzID0gKGludCkgKGFuZ2xlKlJBRF9IT1VSKTsKKyAgICAgICAgaW50IG1pbiA9IChpbnQpKChhbmdsZSpSQURfSE9VUiAtIGhycykgKiA2MCk7CisgICAgICAgIGludCBzZWMgPSAoaW50KSgoYW5nbGUqUkFEX0hPVVIgLSBocnMgLSBtaW4vNjAuMCkgKiAzNjAwKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBJbnRlZ2VyLnRvU3RyaW5nKGhycykgKyAiaCIgKyBtaW4gKyAibSIgKyBzZWMgKyAicyI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyByYWRUb0Rtcyhkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgaW50IGRlZyA9IChpbnQpIChhbmdsZSpSQURfREVHKTsKKyAgICAgICAgaW50IG1pbiA9IChpbnQpKChhbmdsZSpSQURfREVHIC0gZGVnKSAqIDYwKTsKKyAgICAgICAgaW50IHNlYyA9IChpbnQpKChhbmdsZSpSQURfREVHIC0gZGVnIC0gbWluLzYwLjApICogMzYwMCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSW50ZWdlci50b1N0cmluZyhkZWcpICsgIlx1MDBiMCIgKyBtaW4gKyAiJyIgKyBzZWMgKyAiXCIiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODM1NjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJDYWNoZS5qYXZhCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJDYWNoZQoreworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckNhY2hlKCkgeworICAgICAgICBtYWtlQXJyYXlzKGFycmF5U2l6ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBtYWtlQXJyYXlzKGludCBuZXdTaXplKSB7CisgICAgICAgIGtleXMgICAgPSBuZXcgbG9uZ1tuZXdTaXplXTsKKyAgICAgICAgdmFsdWVzICA9IG5ldyBsb25nW25ld1NpemVdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdTaXplOyBpKyspIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IEVNUFRZOworICAgICAgICB9CisgICAgICAgIGFycmF5U2l6ZSA9IG5ld1NpemU7CisgICAgICAgIHRocmVzaG9sZCA9IChpbnQpKGFycmF5U2l6ZSAqIDAuNzUpOworICAgICAgICBzaXplID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBsb25nIGdldChsb25nIGtleSkgeworICAgICAgICByZXR1cm4gdmFsdWVzW2ZpbmRJbmRleChrZXkpXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHB1dChsb25nIGtleSwgbG9uZyB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplID49IHRocmVzaG9sZCkgeworICAgICAgICAgICAgcmVoYXNoKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGluZGV4ID0gZmluZEluZGV4KGtleSk7CisgICAgICAgIAorICAgICAgICBrZXlzW2luZGV4XSA9IGtleTsKKyAgICAgICAgdmFsdWVzW2luZGV4XSA9IHZhbHVlOworICAgICAgICBzaXplKys7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgaW50IGZpbmRJbmRleChsb25nIGtleSkgeworICAgICAgICBpbnQgaW5kZXggPSBoYXNoKGtleSk7CisgICAgICAgIGludCBkZWx0YSA9IDA7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodmFsdWVzW2luZGV4XSAhPSBFTVBUWSAmJiBrZXlzW2luZGV4XSAhPSBrZXkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkZWx0YSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBoYXNoMihrZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXggPSAoaW5kZXggKyBkZWx0YSkgJSBhcnJheVNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVoYXNoKCkKKyAgICB7CisgICAgICAgIGludCBvbGRTaXplID0gYXJyYXlTaXplOworICAgICAgICBsb25nW10gb2xkS2V5cyA9IGtleXM7CisgICAgICAgIGxvbmdbXSBvbGRWYWx1ZXMgPSB2YWx1ZXM7CisgICAgICAgIAorICAgICAgICBpZiAocEluZGV4IDwgcHJpbWVzLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgIGFycmF5U2l6ZSA9IHByaW1lc1srK3BJbmRleF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcnJheVNpemUgPSBhcnJheVNpemUgKiAyICsgMTsKKyAgICAgICAgfQorICAgICAgICBzaXplID0gMDsKKyAgICAgICAgCisgICAgICAgIG1ha2VBcnJheXMoYXJyYXlTaXplKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRTaXplOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvbGRWYWx1ZXNbaV0gIT0gRU1QVFkpIHsKKyAgICAgICAgICAgICAgICBwdXQob2xkS2V5c1tpXSwgb2xkVmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvbGRLZXlzID0gb2xkVmFsdWVzID0gbnVsbDsgLy8gSGVscCBvdXQgdGhlIGdhcmJhZ2UgY29sbGVjdG9yCisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFByb2R1Y2UgYSB1bmlmb3JtbHktZGlzdHJpYnV0ZWQgaGFzaCB2YWx1ZSBmcm9tIGFuIGludGVnZXIga2V5LgorICAgICAqIFRoaXMgaXMgZXNzZW50aWFsbHkgYSBsaW5lYXIgY29uZ3J1ZW50aWFsIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCisgICAgICogdGhhdCB1c2VzIHRoZSBrZXkgYXMgaXRzIHNlZWQgdmFsdWUuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgaGFzaChsb25nIGtleSkKKyAgICB7CisgICAgICAgIGludCBoID0gKGludCkoKGtleSAqIDE1ODIxICsgMSkgJSBhcnJheVNpemUpOworICAgICAgICBpZiAoaCA8IDApIHsKKyAgICAgICAgICAgIGggKz0gYXJyYXlTaXplOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGludCBoYXNoMihsb25nIGtleSkgeworICAgICAgICByZXR1cm4gYXJyYXlTaXplIC0gMiAtIChpbnQpKGtleSAlIChhcnJheVNpemUtMikgKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgaW50IHByaW1lc1tdID0geyAgLy8gNSwgMTcsIDMxLCA0NywgLy8gZm9yIHRlc3RpbmcKKyAgICAgICAgNjEsIDEyNywgNTA5LCAxMDIxLCAyMDM5LCA0MDkzLCA4MTkxLCAxNjM4MSwgMzI3NDksIDY1NTIxLAorICAgICAgICAxMzEwNzEsIDI2MjEzOSwgCisgICAgfTsKKworICAgIHByaXZhdGUgaW50ICAgICBwSW5kZXggICAgICA9IDA7CisgICAgcHJpdmF0ZSBpbnQgICAgIHNpemUgICAgICAgID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgYXJyYXlTaXplICAgPSBwcmltZXNbcEluZGV4XTsKKyAgICBwcml2YXRlIGludCAgICAgdGhyZXNob2xkICAgPSAoYXJyYXlTaXplICogMykgLyA0OworICAgIAorICAgIHByaXZhdGUgbG9uZ1tdICBrZXlzICAgICAgICA9IG5ldyBsb25nW2FycmF5U2l6ZV07CisgICAgcHJpdmF0ZSBsb25nW10gIHZhbHVlcyAgICAgID0gbmV3IGxvbmdbYXJyYXlTaXplXTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgIGxvbmcgRU1QVFkgICA9IExvbmcuTUlOX1ZBTFVFOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckRhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTExMzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworCisKKy8qKgorICogVGhpcyBjbGFzcyBhYnN0cmFjdHMgYWNjZXNzIHRvIGNhbGVuZGFyIChDYWxlbmRhciBhbmQgRGF0ZUZvcm1hdCkgZGF0YS4KKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckRhdGEgeworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENhbGVuZGFyRGF0YSBmcm9tIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvYyBsb2NhbGUgdG8gdXNlLiBUaGUgJ2NhbGVuZGFyJyBrZXl3b3JkIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gdHlwZSBjYWxlbmRhciB0eXBlLiBOVUxMIGluZGljYXRlcyB0aGUgZ3JlZ29yaWFuIGNhbGVuZGFyLiAKKyAgICAgKiBObyBkZWZhdWx0IGxvb2t1cCBpcyBkb25lLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckRhdGEoVUxvY2FsZSBsb2MsIFN0cmluZyB0eXBlKSB7CisgICAgICAgIHRoaXMoKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2MpLCB0eXBlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENhbGVuZGFyRGF0YShJQ1VSZXNvdXJjZUJ1bmRsZSBiLCBTdHJpbmcgdHlwZSkgeworICAgICAgICBmQnVuZGxlID0gYjsKKyAgICAgICAgaWYoKHR5cGUgPT0gbnVsbCkgfHwgKHR5cGUuZXF1YWxzKCIiKSkgfHwgKHR5cGUuZXF1YWxzKCJncmVnb3JpYW4iKSkpIHsKKyAgICAgICAgICAgIGZNYWluVHlwZSA9ICJncmVnb3JpYW4iOworICAgICAgICAgICAgZkZhbGxiYWNrVHlwZSA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmTWFpblR5cGUgPSB0eXBlOworICAgICAgICAgICAgZkZhbGxiYWNrVHlwZSA9ImdyZWdvcmlhbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9hZCBkYXRhIGZvciBjYWxlbmRhci4gTm90ZSwgdGhpcyBvYmplY3Qgb3ducyB0aGUgcmVzb3VyY2VzLCBkbyBOT1QgY2FsbCB1cmVzX2Nsb3NlKCkhCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlIGdldChTdHJpbmcga2V5KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmTWFpblR5cGUgKyAiLyIgKyBrZXkpOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgICAgICBpZihmRmFsbGJhY2tUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmRmFsbGJhY2tUeXBlICsgIi8iICsga2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG07CisgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGRhdGEgZm9yIGNhbGVuZGFyLiBOb3RlLCB0aGlzIG9iamVjdCBvd25zIHRoZSByZXNvdXJjZXMsIGRvIE5PVCBjYWxsIHVyZXNfY2xvc2UoKSEKKyAgICAgKiBUaGVyZSBpcyBhbiBpbXBsaWNpdCBrZXkgb2YgJ2Zvcm1hdCcKKyAgICAgKiBkYXRhIGlzIGxvY2F0ZWQgaW46ICAgImNhbGVuZGFyL2tleS9mb3JtYXQvc3ViS2V5IgorICAgICAqIGZvciBleGFtcGxlLCAgY2FsZW5kYXIvZGF5TmFtZXMvZm9ybWF0L2FiYnJldmlhdGVkCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQHBhcmFtIHN1YktleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoU3RyaW5nIGtleSwgU3RyaW5nIHN1YktleSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGZCdW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJjYWxlbmRhci8iICsgZk1haW5UeXBlICsgIi8iICsga2V5ICsgIi9mb3JtYXQvIiArIHN1YktleSk7CisgICAgICAgIH0gY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG0pIHsKKyAgICAgICAgICAgIGlmKGZGYWxsYmFja1R5cGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvIiArIGZGYWxsYmFja1R5cGUgKyAiLyIgKyBrZXkgKyAiL2Zvcm1hdC8iICsgc3ViS2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG07CisgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGRhdGEgZm9yIGNhbGVuZGFyLiBOb3RlLCB0aGlzIG9iamVjdCBvd25zIHRoZSByZXNvdXJjZXMsIGRvIE5PVCBjYWxsIHVyZXNfY2xvc2UoKSEKKyAgICAgKiBkYXRhIGlzIGxvY2F0ZWQgaW46ICAgImNhbGVuZGFyL2tleS9jb250ZXh0S2V5L3N1YktleSIKKyAgICAgKiBmb3IgZXhhbXBsZSwgIGNhbGVuZGFyL2RheU5hbWVzL3N0YW5kLWFsb25lL25hcnJvdworICAgICAqCisgICAgICogQHBhcmFtIGtleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBwYXJhbSBjb250ZXh0S2V5IFJlc291cmNlIGtleSB0byBkYXRhCisgICAgICogQHBhcmFtIHN1YktleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoU3RyaW5nIGtleSwgU3RyaW5nIGNvbnRleHRLZXksIFN0cmluZyBzdWJLZXkpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvIiArIGZNYWluVHlwZSArICIvIiArIGtleSArICIvIiArIGNvbnRleHRLZXkgKyAiLyIgKyBzdWJLZXkpOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgICAgICBpZihmRmFsbGJhY2tUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmRmFsbGJhY2tUeXBlICsgIi8iICsga2V5ICsgIi8iICsgY29udGV4dEtleSArICIvIiArIHN1YktleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBtOworICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5KS5nZXRTdHJpbmdBcnJheSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5LCBTdHJpbmcgc3ViS2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5LCBzdWJLZXkpLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KFN0cmluZyBrZXksIFN0cmluZyBjb250ZXh0S2V5LCBTdHJpbmcgc3ViS2V5KSB7CisgICAgICAgIHJldHVybiBnZXQoa2V5LCBjb250ZXh0S2V5LCBzdWJLZXkpLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFzKFN0cmluZyBzdWJrZXkpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBnZXQoImVyYXMvIitzdWJrZXkpOworICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZ0FycmF5KCk7CisgICAgfQorICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFVMb2NhbGUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGZCdW5kbGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk1haW5UeXBlOworICAgIHByaXZhdGUgU3RyaW5nIGZGYWxsYmFja1R5cGU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMmRiMzMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YQpAQCAtMCwwICsxLDM2NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUcmllIGltcGxlbWVudGF0aW9uIHdoaWNoIHN0b3JlcyBkYXRhIGluIGNoYXIsIDE2IGJpdHMuCisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworCisgLy8gbm90ZSB0aGF0IGkgbmVlZCB0byBoYW5kbGUgdGhlIGJsb2NrIGNhbGN1bGF0aW9ucyBsYXRlciwgc2luY2UgY2hhcnRyaWUKKyAvLyBpbiBpY3U0YyB1c2VzIHRoZSBzYW1lIGluZGV4IGFycmF5LgorcHVibGljIGNsYXNzIENoYXJUcmllIGV4dGVuZHMgVHJpZQoreworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPkNyZWF0ZXMgYSBuZXcgVHJpZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS48L3A+CisgICAgKiA8cD5VbnNlcmlhbGl6ZSB0aGUgMzItYml0LWFsaWduZWQgaW5wdXQgc3RyZWFtIGFuZCB1c2UgdGhlIGRhdGEgZm9yIHRoZSAKKyAgICAqIHRyaWUuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGZpbGUgaW5wdXQgc3RyZWFtIHRvIGEgSUNVIGRhdGEgZmlsZSwgY29udGFpbmluZyAKKyAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIENoYXJUcmllKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCAKKyAgICAgICAgICAgICAgICAgICAgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIoaW5wdXRTdHJlYW0sIGRhdGFNYW5pcHVsYXRlKTsKKyAgICAgICAgCisgICAgICAgIGlmICghaXNDaGFyVHJpZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIGdpdmVuIGRvZXMgbm90IGJlbG9uZyB0byBhIGNoYXIgdHJpZS4iKTsKKyAgICAgICAgfQorICAgICAgICBtX2ZyaWVuZEFnZW50XyA9IG5ldyBGcmllbmRBZ2VudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgYSBkdW1teSBDaGFyVHJpZS4KKyAgICAgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAgICAgKiBiZSBsb2FkZWQuCisgICAgICoKKyAgICAgKiBUaGUgdHJpZSBhbHdheXMgcmV0dXJucyB0aGUgaW5pdGlhbFZhbHVlLAorICAgICAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAgICAgKiBUaGUgTGF0aW4tMSBwYXJ0IGlzIGFsd2F5cyBzZXQgdXAgdG8gYmUgbGluZWFyLgorICAgICAqCisgICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzCisgICAgICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhclRyaWUoaW50IGluaXRpYWxWYWx1ZSwgaW50IGxlYWRVbml0VmFsdWUsIERhdGFNYW5pcHVsYXRlIGRhdGFNYW5pcHVsYXRlKSB7CisgICAgICAgIHN1cGVyKG5ldyBjaGFyW0JNUF9JTkRFWF9MRU5HVEgrU1VSUk9HQVRFX0JMT0NLX0NPVU5UXSwgSEVBREVSX09QVElPTlNfTEFUSU4xX0lTX0xJTkVBUl9NQVNLXywgZGF0YU1hbmlwdWxhdGUpOworCisgICAgICAgIGludCBkYXRhTGVuZ3RoLCBsYXRpbjFMZW5ndGgsIGksIGxpbWl0OworICAgICAgICBjaGFyIGJsb2NrOworCisgICAgICAgIC8qIGNhbGN1bGF0ZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIGR1bW15IHRyaWUgZGF0YSAqLworCisgICAgICAgIC8qIG1heChMYXRpbi0xLCBibG9jayAwKSAqLworICAgICAgICBkYXRhTGVuZ3RoPWxhdGluMUxlbmd0aD0gSU5ERVhfU1RBR0VfMV9TSElGVF88PTggPyAyNTYgOiBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgaWYobGVhZFVuaXRWYWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICBkYXRhTGVuZ3RoKz1EQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFfPW5ldyBjaGFyW2RhdGFMZW5ndGhdOworICAgICAgICBtX2RhdGFMZW5ndGhfPWRhdGFMZW5ndGg7CisKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfPShjaGFyKWluaXRpYWxWYWx1ZTsKKworICAgICAgICAvKiBmaWxsIHRoZSBpbmRleCBhbmQgZGF0YSBhcnJheXMgKi8KKworICAgICAgICAvKiBpbmRleGVzIGFyZSBwcmVzZXQgdG8gMCAoYmxvY2sgMCkgKi8KKworICAgICAgICAvKiBMYXRpbi0xIGRhdGEgKi8KKyAgICAgICAgZm9yKGk9MDsgaTxsYXRpbjFMZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbV9kYXRhX1tpXT0oY2hhcilpbml0aWFsVmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBpZihsZWFkVW5pdFZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgIC8qIGluZGV4ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgdG8gdGhlIGJsb2NrIGFmdGVyIExhdGluLTEgKi8KKyAgICAgICAgICAgIGJsb2NrPShjaGFyKShsYXRpbjFMZW5ndGg+PklOREVYX1NUQUdFXzJfU0hJRlRfKTsKKyAgICAgICAgICAgIGk9MHhkODAwPj5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAgICAgICAgIGxpbWl0PTB4ZGMwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBmb3IoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2luZGV4X1tpXT1ibG9jazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cyAqLworICAgICAgICAgICAgbGltaXQ9bGF0aW4xTGVuZ3RoK0RBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgZm9yKGk9bGF0aW4xTGVuZ3RoOyBpPGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtX2RhdGFfW2ldPShjaGFyKWxlYWRVbml0VmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX2ZyaWVuZEFnZW50XyA9IG5ldyBGcmllbmRBZ2VudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEphdmEgZnJpZW5kIGltcGxlbWVudGF0aW9uCisgICAgICovCisgICAgcHVibGljIGNsYXNzIEZyaWVuZEFnZW50CisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogR2l2ZXMgb3V0IHRoZSBpbmRleCBhcnJheSBvZiB0aGUgdHJpZQorICAgICAgICAgKiBAcmV0dXJuIGluZGV4IGFycmF5IG9mIHRyaWUKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgY2hhcltdIGdldFByaXZhdGVJbmRleCgpIAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleF87CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEdpdmVzIG91dCB0aGUgZGF0YSBhcnJheSBvZiB0aGUgdHJpZQorICAgICAgICAgKiBAcmV0dXJuIGRhdGEgYXJyYXkgb2YgdHJpZQorICAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBjaGFyW10gZ2V0UHJpdmF0ZURhdGEoKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV87CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEdpdmVzIG91dCB0aGUgZGF0YSBvZmZzZXQgaW4gdGhlIHRyaWUKKyAgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBpbiB0aGUgdHJpZQorICAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UHJpdmF0ZUluaXRpYWxWYWx1ZSgpIAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSmF2YSBmcmllbmQgaW1wbGVtZW50YXRpb24KKyAgICAgKiBUbyBzdG9yZSB0aGUgaW5kZXggYW5kIGRhdGEgYXJyYXkgaW50byB0aGUgYXJndW1lbnQuCisgICAgICogQHBhcmFtIGZyaWVuZCBqYXZhIGZyaWVuZCBVQ2hhcmFjdGVyUHJvcGVydHkgb2JqZWN0IHRvIHN0b3JlIHRoZSBhcnJheQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEluZGV4RGF0YShVQ2hhcmFjdGVyUHJvcGVydHkgZnJpZW5kKSAKKyAgICB7CisgICAgICAgIGZyaWVuZC5zZXRJbmRleERhdGEobV9mcmllbmRBZ2VudF8pOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQuCisgICAgKiBJZiBubyB2YWx1ZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludCwgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUKKyAgICAqIHJldHVybmVkLgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0Q29kZVBvaW50VmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldDsKKworICAgICAgICAvLyBmYXN0cGF0aCBmb3IgVSswMDAwLi5VK0Q3RkYKKyAgICAgICAgaWYoMCA8PSBjaCAmJiBjaCA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgLy8gY29weSBvZiBnZXRSYXdPZmZzZXQoKQorICAgICAgICAgICAgb2Zmc2V0ID0gKG1faW5kZXhfW2NoID4+IElOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCBJTkRFWF9TVEFHRV8yX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICsgKGNoICYgSU5ERVhfU1RBR0VfM19NQVNLXyk7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisKKyAgICAgICAgLy8gaGFuZGxlIFUrRDgwMC4uVSsxMEZGRkYKKyAgICAgICAgb2Zmc2V0ID0gZ2V0Q29kZVBvaW50T2Zmc2V0KGNoKTsKKyAgICAgICAgCisgICAgICAgIC8vIHJldHVybiAtMSBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybiB0aGUgZGVmYXVsdAorICAgICAgICAvLyB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIHJldHVybiAob2Zmc2V0ID49IDApID8gbV9kYXRhX1tvZmZzZXRdIDogbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgdG8gdGhlIGRhdGEgd2hpY2ggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcG9pbnRzCisgICAgKiB0by4KKyAgICAqIFJldHVybmVkIGRhdGEgbWF5IGNvbnRhaW4gZm9sZGluZyBvZmZzZXQgaW5mb3JtYXRpb24gZm9yIHRoZSBuZXh0CisgICAgKiB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyLgorICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgZ3VhcmFudGVlIGNvcnJlY3QgcmVzdWx0cyBmb3IgdHJhaWwgc3Vycm9nYXRlcy4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gZGF0YSB2YWx1ZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0TGVhZFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgIHJldHVybiBtX2RhdGFfW2dldExlYWRPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZSBwb2ludC4KKyAgICAqIExlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywgd2l0aAorICAgICogdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIGdldExlYWRWYWx1ZSgpIHJlc3VsdHMuCisgICAgKiBAcGFyYW0gY2ggdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIEJNUCBjb2RlcG9pbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldEJNUFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRCTVBPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGxlYWQgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRTdXJyb2dhdGVWYWx1ZShjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0U3Vycm9nYXRlT2Zmc2V0KGxlYWQsIHRyYWlsKTsKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIDxwPkdldCBhIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAgICAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS48L3A+CisgICAgKiA8cD5JZiB0aGUgCisgICAgKiBAcGFyYW0gbGVhZHZhbHVlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgd2hpY2ggY29udGFpbnMKKyAgICAqICAgICAgICB0aGUgZm9sZGluZyBvZmZzZXQKKyAgICAqIEBwYXJhbSB0cmFpbCBzdXJyb2dhdGUKKyAgICAqIEByZXR1cm4gdHJpZSBkYXRhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdHJhaWwgY2hhcmFjdGVyCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRUcmFpbFZhbHVlKGludCBsZWFkdmFsdWUsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQobGVhZHZhbHVlKTsKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW2dldFJhd09mZnNldChvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSBsYXRpbiAxIGZhc3QgcGF0aCB2YWx1ZS48L3A+CisgICAgICogPHA+Tm90ZSB0aGlzIG9ubHkgd29ya3MgaWYgbGF0aW4gMSBjaGFyYWN0ZXJzIGhhdmUgdGhlaXIgb3duIGxpbmVhciAKKyAgICAgKiBhcnJheS48L3A+CisgICAgICogQHBhcmFtIGNoIGxhdGluIDEgY2hhcmFjdGVycworICAgICAqIEByZXR1cm4gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGxhdGluIGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldExhdGluMUxpbmVhclZhbHVlKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bSU5ERVhfU1RBR0VfM19NQVNLXyArIDEgKyBtX2RhdGFPZmZzZXRfICsgY2hdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllCisgICAgICogQHBhcmFtIG90aGVyIFRyaWUgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGFyZ3VtZW50IFRyaWUgaGFzIHRoZSBzYW1lIGRhdGEgYXMgdGhpcyBUcmllLCBmYWxzZQorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIAorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBzdXBlci5lcXVhbHMob3RoZXIpOworICAgICAgICBpZiAocmVzdWx0ICYmIG90aGVyIGluc3RhbmNlb2YgQ2hhclRyaWUpIHsKKyAgICAgICAgICAgIENoYXJUcmllIG90aGVydHJpZSA9IChDaGFyVHJpZSlvdGhlcjsKKyAgICAgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV8gPT0gb3RoZXJ0cmllLm1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UGFyc2VzIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHN0b3JlcyBpdHMgdHJpZSBjb250ZW50IGludG8gYSBpbmRleCBhbmQKKyAgICAqIGRhdGEgYXJyYXk8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gZGF0YSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0cmllIGRhdGEKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICBpbnQgaW5kZXhEYXRhTGVuZ3RoID0gbV9kYXRhT2Zmc2V0XyArIG1fZGF0YUxlbmd0aF87CisgICAgICAgIG1faW5kZXhfID0gbmV3IGNoYXJbaW5kZXhEYXRhTGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleERhdGFMZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIG1faW5kZXhfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFfICAgICAgICAgICA9IG1faW5kZXhfOworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gICA9IG1fZGF0YV9bbV9kYXRhT2Zmc2V0X107CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBnZXQgZm9sZCBwb3NpdGlvbiBmb3IgdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGdldExlYWRWYWx1ZShsZWFkKSk7CisKKyAgICAgICAgLy8gZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVkIGxlYWQvdHJhaWwgdW5pdHMKKyAgICAgICAgaWYgKG9mZnNldCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRSYXdPZmZzZXQob2Zmc2V0LCAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiAtMSBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybiB0aGUgZGVmYXVsdAorICAgICAgICAvLyB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCB0aGUgYXJndW1lbnQgaW5kZXguCisgICAgKiBGb3IgdXNlIGludGVybmFsbHkgaW4gVHJpZUl0ZXJhdG9yLgorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZQorICAgICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRWYWx1ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tpbmRleF07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBkZWZhdWx0IGluaXRpYWwgdmFsdWUKKyAgICAqIEByZXR1cm4gMzIgYml0IHZhbHVlIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRJbml0aWFsVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX2luaXRpYWxWYWx1ZV87CisgICAgLyoqCisgICAgKiBBcnJheSBvZiBjaGFyIGRhdGEKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX2RhdGFfW107CisgICAgLyoqCisgICAgICogQWdlbnQgZm9yIGZyaWVuZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIEZyaWVuZEFnZW50IG1fZnJpZW5kQWdlbnRfOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGM0YTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIENoYXJhY3Rlckl0ZXJhdG9yIGFuZCBpbXBsZW1lbnRzIHRoZSAKKyAqIFVDaGFyYWN0ZXJJdGVyYXRvciBwcm90b2NvbAorICogQGF1dGhvciByYW0KKyAqLworCitwdWJsaWMgY2xhc3MgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAKKyAgICBwcml2YXRlIENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIAorICAgIAorICAgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoQ2hhcmFjdGVySXRlcmF0b3IgaXRlcil7CisgICAgICAgIGlmKGl0ZXI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yICAgICA9IGl0ZXI7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjY3VycmVudCgpCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICBpbnQgYyA9IGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICAgICAgaWYoYz09Q2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0TGVuZ3RoKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIChpdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNnZXRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjbmV4dCgpCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpbnQgaSA9IGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICAgICAgaXRlcmF0b3IubmV4dCgpOworICAgICAgICBpZihpPT1DaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsgIAorICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI3ByZXZpb3VzKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICBpbnQgaSA9IGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgICAgIGlmKGk9PUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3Ijc2V0SW5kZXgoaW50KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRJbmRleChpbmRleCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3Ijc2V0VG9MaW1pdCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9MaW1pdCgpIHsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoaXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0VGV4dChjaGFyW10pCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpeworICAgICAgICBpbnQgbGVuZ3RoID1pdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpOyAKKyAgICAgICAgaW50IGN1cnJlbnRJbmRleCA9IGl0ZXJhdG9yLmdldEluZGV4KCk7CisgICAgICAgIGlmKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoY2hhciBjaCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGNoID0gaXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICBmaWxsSW5bb2Zmc2V0KytdID0gY2g7CisgICAgICAgIH0KKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGlzIGl0ZXJhdG9yLiAgQ2xvbmVzIHRoZSB1bmRlcmx5aW5nIGNoYXJhY3RlciBpdGVyYXRvci4KKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNjbG9uZSgpCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIHJlc3VsdCA9IChDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3IgPSAoQ2hhcmFjdGVySXRlcmF0b3IpdGhpcy5pdGVyYXRvci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeyAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG9ubHkgaW52b2tlZCBpZiBiYWQgdW5kZXJseWluZyBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIHB1YmxpYyBpbnQgbW92ZUluZGV4KGludCBkZWx0YSl7CisgICAgICAgIGludCBsZW5ndGggPSBpdGVyYXRvci5nZXRFbmRJbmRleCgpIC0gaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpOyAKKyAgICAgICAgaW50IGlkeCA9IGl0ZXJhdG9yLmdldEluZGV4KCkrZGVsdGE7CisgICAgICAgIAorICAgICAgICBpZihpZHggPCAwKSB7CisgICAgICAgICAgICBpZHggPSAwOworICAgICAgICB9IGVsc2UgaWYoaWR4ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBpZHggPSBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLnNldEluZGV4KGlkeCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldENoYXJhY3Rlckl0ZXJhdG9yKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIChDaGFyYWN0ZXJJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgIH0gCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI1ZDJkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQpAQCAtMCwwICsxLDQ5NyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKKy8vI2VuZGlmCisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCisvKioKKyAqIFV0aWxpdGllcyB0aGF0IG91Z2h0IHRvIGJlIG9uIGNvbGxlY3Rpb25zLCBidXQgYXJlbid0CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsZWN0aW9uVXRpbGl0aWVzIHsKKwkKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBqb2luKE9iamVjdFtdIGFycmF5LCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBqb2luKENvbGxlY3Rpb24gY29sbGVjdGlvbiwgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGNvbGxlY3Rpb24uaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgaWYgKGZpcnN0KSBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSByZXN1bHQuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGl0Lm5leHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworCS8qKgorCSAqIFV0aWxpdHkgbGlrZSBBcnJheXMuYXNMaXN0KCkKKwkgKi8KKwlwdWJsaWMgc3RhdGljIE1hcCBhc01hcChPYmplY3RbXVtdIHNvdXJjZSwgTWFwIHRhcmdldCwgYm9vbGVhbiByZXZlcnNlKSB7CisJCWludCBmcm9tID0gMCwgdG8gPSAxOworCQlpZiAocmV2ZXJzZSkgeworCQkJZnJvbSA9IDE7IHRvID0gMDsKKwkJfQorICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkgeworICAgIAkJdGFyZ2V0LnB1dChzb3VyY2VbaV1bZnJvbV0sIHNvdXJjZVtpXVt0b10pOworICAgIAl9CisgICAgCXJldHVybiB0YXJnZXQ7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiBhZGRBbGwoSXRlcmF0b3Igc291cmNlLCBDb2xsZWN0aW9uIHRhcmdldCkgeworCQl3aGlsZSAoc291cmNlLmhhc05leHQoKSkgeworCQkJdGFyZ2V0LmFkZChzb3VyY2UubmV4dCgpKTsKKwkJfQorCQlyZXR1cm4gdGFyZ2V0OyAvLyBmb3IgY2hhaW5pbmcKKwl9CisJCisJcHVibGljIHN0YXRpYyBpbnQgc2l6ZShJdGVyYXRvciBzb3VyY2UpIHsKKwkJaW50IHJlc3VsdCA9IDA7CisJCXdoaWxlIChzb3VyY2UuaGFzTmV4dCgpKSB7CisJCQlzb3VyY2UubmV4dCgpOworCQkJKytyZXN1bHQ7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJCisKKwlwdWJsaWMgc3RhdGljIE1hcCBhc01hcChPYmplY3RbXVtdIHNvdXJjZSkgeworICAgIAlyZXR1cm4gYXNNYXAoc291cmNlLCBuZXcgSGFzaE1hcCgpLCBmYWxzZSk7CisJfQorCQorCS8qKgorCSAqIFV0aWxpdHkgdGhhdCBvdWdodCB0byBiZSBvbiBNYXAKKwkgKi8KKwlwdWJsaWMgc3RhdGljIE1hcCByZW1vdmVBbGwoTWFwIG0sIENvbGxlY3Rpb24gaXRlbXNUb1JlbW92ZSkgeworCSAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlbXNUb1JlbW92ZS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJICAgIAlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkgICAgCW0ucmVtb3ZlKGl0ZW0pOworCSAgICB9CisJICAgIHJldHVybiBtOworCX0KKwkKKwlwdWJsaWMgT2JqZWN0IGdldEZpcnN0KENvbGxlY3Rpb24gYykgeworCQlJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKwkJaWYgKCFpdC5oYXNOZXh0KCkpIHJldHVybiBudWxsOworCQlyZXR1cm4gaXQubmV4dCgpOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRCZXN0KENvbGxlY3Rpb24gYywgQ29tcGFyYXRvciBjb21wLCBpbnQgZGlyZWN0aW9uKSB7CisJCUl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworCQlpZiAoIWl0Lmhhc05leHQoKSkgcmV0dXJuIG51bGw7CisJCU9iamVjdCBiZXN0U29GYXIgPSBpdC5uZXh0KCk7CisgICAgICAgIGlmIChkaXJlY3Rpb24gPCAwKSB7CisgICAgCQl3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNvbXBWYWx1ZSA9IGNvbXAuY29tcGFyZShpdGVtLCBiZXN0U29GYXIpOworICAgIAkJCWlmIChjb21wLmNvbXBhcmUoaXRlbSwgYmVzdFNvRmFyKSA8IDApIHsKKyAgICAJCQkJYmVzdFNvRmFyID0gaXRlbTsKKyAgICAgICAgICAgICAgICB9CisgICAgCQl9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNvbXBWYWx1ZSA9IGNvbXAuY29tcGFyZShpdGVtLCBiZXN0U29GYXIpOworICAgICAgICAgICAgICAgIGlmIChjb21wLmNvbXBhcmUoaXRlbSwgYmVzdFNvRmFyKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdFNvRmFyID0gaXRlbTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwkJcmV0dXJuIGJlc3RTb0ZhcjsKKwl9CisJCisJcHVibGljIGludGVyZmFjZSBPYmplY3RNYXRjaGVyIHsKKwkJLyoqCisJCSAqIE11c3QgaGFuZGxlIG51bGwsIG5ldmVyIHRocm93IGV4Y2VwdGlvbgorCQkgKi8KKwkJYm9vbGVhbiBtYXRjaGVzKE9iamVjdCBvKTsKKwl9CisJCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJbnZlcnNlTWF0Y2hlciBpbXBsZW1lbnRzIE9iamVjdE1hdGNoZXIgeworICAgIAlPYmplY3RNYXRjaGVyIG90aGVyOworICAgICAgICBwdWJsaWMgT2JqZWN0TWF0Y2hlciBzZXQoT2JqZWN0TWF0Y2hlciB0b0ludmVyc2UpIHsKKyAgICAgICAgICAgIG90aGVyID0gdG9JbnZlcnNlOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlcyhPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiAhb3RoZXIubWF0Y2hlcyh2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKwlwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gcmVtb3ZlQWxsKENvbGxlY3Rpb24gYywgT2JqZWN0TWF0Y2hlciBmKSB7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjLCBPYmplY3RNYXRjaGVyIGYpIHsKKwkJZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoIWYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc1NvbWUoQ29sbGVjdGlvbiBhLCBDb2xsZWN0aW9uIGIpIHsKKyAgICAgICAgLy8gZmFzdCBwYXRocworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCB8fCBiLnNpemUoKSA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChhID09IGIpIHJldHVybiB0cnVlOyAvLyBtdXN0IHRlc3QgYWZ0ZXIgc2l6ZSB0ZXN0LgorCisgICAgICAgIGlmIChhIGluc3RhbmNlb2YgU29ydGVkU2V0ICYmIGIgaW5zdGFuY2VvZiBTb3J0ZWRTZXQpIHsKKyAgICAgICAgICAgIFNvcnRlZFNldCBhYSA9IChTb3J0ZWRTZXQpIGE7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYmIgPSAoU29ydGVkU2V0KSBiOworICAgICAgICAgICAgYWEuY29udGFpbnNBbGwobnVsbCk7CisgICAgICAgICAgICBDb21wYXJhdG9yIGJiYyA9IGJiLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYWFjID0gYWEuY29tcGFyYXRvcigpOworICAgICAgICAgICAgaWYgKGJiYyA9PSBudWxsKSB7CisgICAgICAgICAgICAJaWYgKGFhYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYW8uY29tcGFyZVRvKGJvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGJiYy5lcXVhbHMoYSkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIE9iamVjdCBhbyA9IGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICBPYmplY3QgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFhYy5jb21wYXJlKGFvLCBibyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsID4gMCkgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgIAlmb3IgKEl0ZXJhdG9yIGl0ID0gYS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgCQlpZiAoYi5jb250YWlucyhpdC5uZXh0KCkpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc0FsbChDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICAvLyBmYXN0IHBhdGhzCisgICAgICAgIGlmIChhID09IGIpIHJldHVybiB0cnVlOworICAgICAgICBpZiAoYi5zaXplKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBTb3J0ZWRTZXQgJiYgYiBpbnN0YW5jZW9mIFNvcnRlZFNldCkgeworICAgICAgICAgICAgU29ydGVkU2V0IGFhID0gKFNvcnRlZFNldCkgYTsKKyAgICAgICAgICAgIFNvcnRlZFNldCBiYiA9IChTb3J0ZWRTZXQpIGI7CisgICAgICAgICAgICBDb21wYXJhdG9yIGJiYyA9IGJiLmNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYWFjID0gYWEuY29tcGFyYXRvcigpOworICAgICAgICAgICAgaWYgKGJiYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGFhYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICAgICAgQ29tcGFyYWJsZSBibyA9IChDb21wYXJhYmxlKSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYW8uY29tcGFyZVRvKGJvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IChDb21wYXJhYmxlKSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGJiYy5lcXVhbHMoYSkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFhLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgYmkgPSBiYi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIE9iamVjdCBhbyA9IGFpLm5leHQoKTsgLy8gdGhlc2UgYXJlIG9rLCBzaW5jZSB0aGUgc2l6ZXMgYXJlICE9IDAKKyAgICAgICAgICAgICAgICBPYmplY3QgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlbCA9IGFhYy5jb21wYXJlKGFvLCBibyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWwgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYS5jb250YWluc0FsbChiKTsKKyAgICB9CisJCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zTm9uZShDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICByZXR1cm4gIWNvbnRhaW5zU29tZShhLCBiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXNlZCBmb3IgcmVzdWx0cyBvZiBnZXRDb250YWlubWVudFJlbGF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgQUxMX0VNUFRZID0gMCwKKyAgICAgICAgTk9UX0FfU1VQRVJTRVRfQiA9IDEsCisgICAgICAgIE5PVF9BX0RJU0pPSU5UX0IgPSAyLAorICAgICAgICBOT1RfQV9TVUJTRVRfQiA9IDQsCisgICAgICAgIE5PVF9BX0VRVUFMU19CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9TVVBFUlNFVF9CLAorICAgICAgICBBX1BST1BFUl9TVUJTRVRfT0ZfQiA9IE5PVF9BX0RJU0pPSU5UX0IgfCBOT1RfQV9TVVBFUlNFVF9CLAorICAgICAgICBBX1BST1BFUl9TVVBFUlNFVF9CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9ESVNKT0lOVF9CLAorICAgICAgICBBX1BST1BFUl9PVkVSTEFQU19CID0gTk9UX0FfU1VCU0VUX0IgfCBOT1RfQV9ESVNKT0lOVF9CIHwgTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3Nlc3NlcyBhbGwgdGhlIHBvc3NpYmxlIGNvbnRhaW5tZW50IHJlbGF0aW9ucyBiZXR3ZWVuIGNvbGxlY3Rpb25zIEEgYW5kIEIgd2l0aCBvbmUgY2FsbC48YnI+CisgICAgICogUmV0dXJucyBhbiBpbnQgd2l0aCBiaXRzIHNldCwgYWNjb3JkaW5nIHRvIGEgIlZlbm4gRGlhZ3JhbSIgdmlldyBvZiBBIHZzIEIuPGJyPgorICAgICAqIE5PVF9BX1NVUEVSU0VUX0I6IGEgLSBiICE9IHt9PGJyPgorICAgICAqIE5PVF9BX0RJU0pPSU5UX0I6IGEgKiBiICE9IHt9ICAvLyAqIGlzIGludGVyc2VjdHM8YnI+CisgICAgICogTk9UX0FfU1VCU0VUX0I6IGIgLSBhICE9IHt9PGJyPgorICAgICAqIFRodXMgdGhlIGJpdHMgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBmb2xsb3dpbmcgcmVsYXRpb25zOjxicj4KKyAgICAgKiBmb3IgQV9TVVBFUlNFVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX1NVUEVSU0VUX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfU1VCU0VUX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VCU0VUX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfRVFVQUxTX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRVFVQUxTX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfRElTSk9JTlRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9CKSA9PSAwPGJyPgorICAgICAqIGZvciBBX09WRVJMQVBTX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRElTSk9JTlRfQikgIT0gMDxicj4KKyAgICAgKi8KKyAgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29udGFpbm1lbnRSZWxhdGlvbihDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCkgeworICAgICAgICAJcmV0dXJuIChiLnNpemUoKSA9PSAwKSA/IEFMTF9FTVBUWSA6IE5PVF9BX1NVUEVSU0VUX0I7CisgICAgICAgIH0gZWxzZSBpZiAoYi5zaXplKCkgPT0gMCkgeworICAgICAgICAJcmV0dXJuIE5PVF9BX1NVQlNFVF9COworICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAvLyBXQVJOSU5HOiBvbmUgbWlnaHQgdGhpbmsgdGhhdCB0aGUgZm9sbG93aW5nIGNhbiBiZSBzaG9ydC1jaXJjdWl0ZWQsIGJ5IGxvb2tpbmcgYXQKKyAgICAgICAgLy8gdGhlIHNpemVzIG9mIGEgYW5kIGIuIEhvd2V2ZXIsIHRoaXMgd291bGQgZmFpbCBpbiBnZW5lcmFsLCB3aGVyZSBhIGRpZmZlcmVudCBjb21wYXJhdG9yIGlzIGJlaW5nCisgICAgICAgIC8vIHVzZWQgaW4gdGhlIHR3byBjb2xsZWN0aW9ucy4gVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gZmFpbHNhZmUgd2F5IHRvIHRlc3QgZm9yIHRoYXQuCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhLml0ZXJhdG9yKCk7IHJlc3VsdCAhPSA2ICYmIGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoYi5jb250YWlucyhpdC5uZXh0KCkpKSA/IE5PVF9BX0RJU0pPSU5UX0IgOiBOT1RfQV9TVUJTRVRfQjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYi5pdGVyYXRvcigpOyAocmVzdWx0ICYgMykgIT0gMyAmJiBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICByZXN1bHQgfD0gKGEuY29udGFpbnMoaXQubmV4dCgpKSkgPyBOT1RfQV9ESVNKT0lOVF9CIDogTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlbW92ZShTdHJpbmcgc291cmNlLCBVbmljb2RlU2V0IHJlbW92YWxzKSB7CisJCVN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJCWludCBjcDsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCQkJY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKwkJCWlmICghcmVtb3ZhbHMuY29udGFpbnMoY3ApKSBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisJCX0KKwkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworCX0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgLyoqCisgICAgICAqIERvZXMgb25lIHN0cmluZyBjb250YWluIGFub3RoZXIsIHN0YXJ0aW5nIGF0IGEgc3BlY2lmaWMgb2Zmc2V0PworICAgICAgKiBAcGFyYW0gdGV4dAorICAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICAqIEBwYXJhbSBvdGhlcgorICAgICAgKiBAcmV0dXJuCisgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGludCBtYXRjaGVzQXQoQ2hhclNlcXVlbmNlIHRleHQsIGludCBvZmZzZXQsIENoYXJTZXF1ZW5jZSBvdGhlcikgeworICAgICAgICAgICAgaW50IGxlbiA9IG90aGVyLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgaW50IGogPSBvZmZzZXQ7CisgICAgICAgICAgICBmb3IgKDsgaSA8IGxlbjsgKytpLCArK2opIHsKKyAgICAgICAgICAgICAgICBjaGFyIHBjID0gb3RoZXIuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGNoYXIgdGMgPSB0ZXh0LmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAocGMgIT0gdGMpIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGVuZGluZyBvZmZzZXQgZm91bmQgYnkgbWF0Y2hpbmcgY2hhcmFjdGVycyB3aXRoIHRlc3RTZXQsIHVudGlsIGEgcG9zaXRpb24gaXMgZm91bmQgdGhhdCBkb2VuJ3QgbWF0Y2gKKyAgICAgICAgICogQHBhcmFtIHN0cmluZworICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0CisgICAgICAgICAqIEBwYXJhbSB0ZXN0U2V0CisgICAgICAgICAqIEByZXR1cm4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3BhbihDaGFyU2VxdWVuY2Ugc3RyaW5nLCBpbnQgb2Zmc2V0LCBVbmljb2RlU2V0IHRlc3RTZXQpIHsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IG5ld09mZnNldCA9IHRlc3RTZXQubWF0Y2hlc0F0KHN0cmluZywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAobmV3T2Zmc2V0IDwgMCkgcmV0dXJuIG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBlbmRpbmcgb2Zmc2V0IGZvdW5kIGJ5IG1hdGNoaW5nIGNoYXJhY3RlcnMgd2l0aCB0ZXN0U2V0LCB1bnRpbCBhIHBvc2l0aW9uIGlzIGZvdW5kIHRoYXQgZG9lcyBtYXRjaAorICAgICAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICAgICAqIEBwYXJhbSBvZmZzZXQKKyAgICAgICAgICogQHBhcmFtIHRlc3RTZXQKKyAgICAgICAgICogQHJldHVybgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzcGFuTm90KENoYXJTZXF1ZW5jZSBzdHJpbmcsIGludCBvZmZzZXQsIFVuaWNvZGVTZXQgdGVzdFNldCkgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgbmV3T2Zmc2V0ID0gdGVzdFNldC5tYXRjaGVzQXQoc3RyaW5nLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChuZXdPZmZzZXQgPj0gMCkgcmV0dXJuIG9mZnNldDsKKyAgICAgICAgICAgICAgICArK29mZnNldDsgLy8gdHJ5IG5leHQgY2hhcmFjdGVyIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBzdXJyb2dhdGVzIGZvciB0aGlzLgorICAgICAgICAgICAgfQorICAgICAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHR5UHJpbnQoVW5pY29kZVNldCB1c2V0LCBib29sZWFuIGNvbXByZXNzUmFuZ2VzLCBVbmljb2RlU2V0IHRvUXVvdGUsIFRyYW5zbGl0ZXJhdG9yIHF1b3RlciwgCisgICAgCQlDb21wYXJhdG9yIG9yZGVyaW5nLCBDb21wYXJhdG9yIHNwYWNlQ29tcGFyYXRvcikgeworICAgICAgICBQcmV0dHlQcmludGVyIHBwID0gbmV3IFByZXR0eVByaW50ZXIoKS5zZXRDb21wcmVzc1Jhbmdlcyhjb21wcmVzc1Jhbmdlcyk7CisgICAgICAgIGlmICh0b1F1b3RlICE9IG51bGwpIHBwLnNldFRvUXVvdGUodG9RdW90ZSk7CisgICAgICAgIGlmIChvcmRlcmluZyAhPSBudWxsKSBwcC5zZXRPcmRlcmluZyhvcmRlcmluZyk7CisgICAgICAgIGlmIChzcGFjZUNvbXBhcmF0b3IgIT0gbnVsbCkgcHAuc2V0U3BhY2VDb21wYXJhdG9yKHNwYWNlQ29tcGFyYXRvcik7CisgICAgICAgIHJldHVybiBwcC50b1BhdHRlcm4odXNldCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXVsdGlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIAorICAgICAgICBwdWJsaWMgTXVsdGlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmF0b3JzW2ldLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyBVbmljb2RlIHNldCB0byBmbGF0dGVuIHRoZSBzdHJpbmdzLiBFZyBbYWJje2RhfV0gPT4gW2FiY2RdCisgICAgICogUmV0dXJucyB0aGUgc2V0IGZvciBjaGFpbmluZy4KKyAgICAgKiBAcGFyYW0gZXhlbXBsYXIxCisgICAgICogQHJldHVybgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmbGF0dGVuKFVuaWNvZGVTZXQgZXhlbXBsYXIxKSB7CisJCVVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKwkJYm9vbGVhbiBnb3RTdHJpbmcgPSBmYWxzZTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyMSk7IGl0Lm5leHRSYW5nZSgpOykgeworCQkJaWYgKGl0LmNvZGVwb2ludCA9PSBpdC5JU19TVFJJTkcpIHsKKwkJCQlyZXN1bHQuYWRkQWxsKGl0LnN0cmluZyk7CisJCQkJZ290U3RyaW5nID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisJCQl9CisJCX0KKwkJaWYgKGdvdFN0cmluZykgZXhlbXBsYXIxLnNldChyZXN1bHQpOworCQlyZXR1cm4gZXhlbXBsYXIxOworCX0KKworCS8qKgorCSAqIEZvciBwcm9kdWNpbmcgZmlsdGVyZWQgaXRlcmF0b3JzCisJICovCisJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJlZEl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIGJhc2VJdGVyYXRvcjsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEVNUFRZID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRE9ORSA9IG5ldyBPYmplY3QoKTsKKwkJcHJpdmF0ZSBPYmplY3QgbmV4dE9iamVjdCA9IEVNUFRZOworCQlwdWJsaWMgRmlsdGVyZWRJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yKSB7CisJCQl0aGlzLmJhc2VJdGVyYXRvciA9IGJhc2VJdGVyYXRvcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiRG9lc24ndCBzdXBwb3J0IHJlbW92YWwiKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlPYmplY3QgcmVzdWx0ID0gbmV4dE9iamVjdDsKKwkJCW5leHRPYmplY3QgPSBFTVBUWTsKKwkJCXJldHVybiByZXN1bHQ7CisJCX0JCQorCQlwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworCQkJaWYgKG5leHRPYmplY3QgPT0gRE9ORSkgcmV0dXJuIGZhbHNlOworCQkJaWYgKG5leHRPYmplY3QgIT0gRU1QVFkpIHJldHVybiB0cnVlOworCQkJd2hpbGUgKGJhc2VJdGVyYXRvci5oYXNOZXh0KCkpIHsKKwkJCQluZXh0T2JqZWN0ID0gYmFzZUl0ZXJhdG9yLm5leHQoKTsKKwkJCQlpZiAoaXNJbmNsdWRlZChuZXh0T2JqZWN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCQluZXh0T2JqZWN0ID0gRE9ORTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBjbGFzcyBQcmVmaXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIFN0cmluZyBwcmVmaXg7CisJCXB1YmxpYyBQcmVmaXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBTdHJpbmcgcHJlZml4KSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMucHJlZml4ID0gcHJlZml4OworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuICgoU3RyaW5nKWl0ZW0pLnN0YXJ0c1dpdGgocHJlZml4KTsKKwkJfQorCX0KKwkKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJcHVibGljIHN0YXRpYyBjbGFzcyBSZWdleEl0ZXJhdG9yIGV4dGVuZHMgRmlsdGVyZWRJdGVyYXRvciB7CisJCXByaXZhdGUgTWF0Y2hlciBtYXRjaGVyOworCQlwdWJsaWMgUmVnZXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBNYXRjaGVyIG1hdGNoZXIpIHsKKwkJCXN1cGVyLnNldChiYXNlSXRlcmF0b3IpOworCQkJdGhpcy5tYXRjaGVyID0gbWF0Y2hlcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyBib29sZWFuIGlzSW5jbHVkZWQoT2JqZWN0IGl0ZW0pIHsKKwkJCXJldHVybiBtYXRjaGVyLnJlc2V0KChTdHJpbmcpaXRlbSkubWF0Y2hlcygpOworCQl9CisJfQorLy8jZW5kaWYKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWU3MDI5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VCaW5hcnkgCit7ICAgIAorICAgIC8vIHB1YmxpYyBpbm5lciBpbnRlcmZhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbCBpbnRlcmZhY2UgZm9yIGRhdGEgYXV0aGVudGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBBdXRoZW50aWNhdGUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXRob2QgdXNlZCBpbiBJQ1VCaW5hcnkucmVhZEhlYWRlcigpIHRvIHByb3ZpZGUgZGF0YSBmb3JtYXQKKyAgICAgICAgICogYXV0aGVudGljYXRpb24uIAorICAgICAgICAgKiBAcGFyYW0gdmVyc2lvbiB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IGRhdGEKKyAgICAgICAgICogQHJldHVybiB0cnVlIGlmIGRhdGFmb3JtYXQgaXMgYW4gYWNjZXB0YWJsZSB2ZXJzaW9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPklDVSBkYXRhIGhlYWRlciByZWFkZXIgbWV0aG9kLiAKKyAgICAqIFRha2VzIGEgSUNVIGdlbmVyYXRlZCBiaWctZW5kaWFuIGlucHV0IHN0cmVhbSwgcGFyc2UgdGhlIElDVSBzdGFuZGFyZCAKKyAgICAqIGZpbGUgaGVhZGVyIGFuZCBhdXRoZW50aWNhdGVzIHRoZW0uPC9wPgorICAgICogPHA+SGVhZGVyIGZvcm1hdDogCisgICAgKiA8dWw+CisgICAgKiAgICAgPGxpPiBIZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IE1hZ2ljIG51bWJlciAxIChieXRlKQorICAgICogICAgIDxsaT4gTWFnaWMgbnVtYmVyIDIgKGJ5dGUpCisgICAgKiAgICAgPGxpPiBSZXN0IG9mIHRoZSBoZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IFJlc2VydmVkIHdvcmQgKGNoYXIpCisgICAgKiAgICAgPGxpPiBCaWcgZW5kaWFuIGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IENoYXJhY3RlciBzZXQgZmFtaWx5IGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IFNpemUgb2YgYSBjaGFyIChieXRlKSBmb3IgYysrIGFuZCBjIHVzZQorICAgICogICAgIDxsaT4gUmVzZXJ2ZWQgYnl0ZSAoYnl0ZSkKKyAgICAqICAgICA8bGk+IERhdGEgZm9ybWF0IGlkZW50aWZpZXIgKDQgYnl0ZXMpLCBlYWNoIElDVSBkYXRhIGhhcyBpdHMgb3duCisgICAgKiAgICAgICAgICBpZGVudGlmaWVyIHRvIGRpc3Rpbmd1aXNoIHRoZW0uIFswXSBtYWpvciBbMV0gbWlub3IgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsyXSBtaWxsaSBbM10gbWljcm8gCisgICAgKiAgICAgPGxpPiBEYXRhIHZlcnNpb24gKDQgYnl0ZXMpLCB0aGUgY2hhbmdlIHZlcnNpb24gb2YgdGhlIElDVSBkYXRhCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICogICAgIDxsaT4gVW5pY29kZSB2ZXJzaW9uICg0IGJ5dGVzKSB0aGlzIElDVSBpcyBiYXNlZCBvbi4KKyAgICAqIDwvdWw+CisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAqIDxwcmU+CisgICAgKiB0cnkgeworICAgICogICAgRmlsZUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgKiAgICBJZiAoVXRpbGl0eS5yZWFkSUNVRGF0YUhlYWRlcihpbnB1dCwgZGF0YWZvcm1hdCwgZGF0YXZlcnNpb24sIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSkgeworICAgICogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVmVyaWZpZWQgZmlsZSBoZWFkZXIsIHRoaXMgaXMgYSBJQ1UgZGF0YSBmaWxlIik7CisgICAgKiAgICB9CisgICAgKiB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgKiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgbm90IGEgSUNVIGRhdGEgZmlsZSIpOworICAgICogfQorICAgICogPC9wcmU+CisgICAgKiA8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gaW5wdXQgc3RyZWFtIHRoYXQgY29udGFpbnMgdGhlIElDVSBkYXRhIGhlYWRlcgorICAgICogQHBhcmFtIGRhdGFGb3JtYXRJREV4cGVjdGVkIERhdGEgZm9ybWF0IGV4cGVjdGVkLiBBbiBhcnJheSBvZiA0IGJ5dGVzIAorICAgICogICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGF0YSBmb3JtYXQuCisgICAgKiAgICAgICAgICAgICAgICAgICAgIEUuZy4gZGF0YSBmb3JtYXQgSUQgMS4yLjMuNC4gd2lsbCBiZWNhbWUgYW4gYXJyYXkgb2YgCisgICAgKiAgICAgICAgICAgICAgICAgICAgIHsxLCAyLCAzLCA0fQorICAgICogQHBhcmFtIGF1dGhlbnRpY2F0ZSB1c2VyIGRlZmluZWQgZXh0cmEgZGF0YSBhdXRoZW50aWNhdGlvbi4gVGhpcyB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICAgICBjYW4gYmUgbnVsbCwgaWYgbm8gZXh0cmEgYXV0aGVudGljYXRpb24gaXMgbmVlZGVkLgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gaWYgdGhlcmUgaXMgYSByZWFkIGVycm9yIG9yIAorICAgICogICAgICAgICAgICB3aGVuIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlscy4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZVtdIHJlYWRIZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURFeHBlY3RlZFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0ZSBhdXRoZW50aWNhdGUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGNoYXIgaGVhZGVyc2l6ZSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIGludCByZWFkY291bnQgPSAyOworICAgICAgICAvL3JlYWRpbmcgdGhlIGhlYWRlciBmb3JtYXQKKyAgICAgICAgYnl0ZSBtYWdpYzEgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgbWFnaWMyID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBpZiAobWFnaWMxICE9IE1BR0lDMSB8fCBtYWdpYzIgIT0gTUFHSUMyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oTUFHSUNfTlVNQkVSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRF8pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnB1dC5yZWFkQ2hhcigpOyAvLyByZWFkaW5nIHNpemUKKyAgICAgICAgcmVhZGNvdW50ICs9IDI7CisgICAgICAgIGlucHV0LnJlYWRDaGFyKCk7IC8vIHJlYWRpbmcgcmVzZXJ2ZWQgd29yZAorICAgICAgICByZWFkY291bnQgKz0gMjsKKyAgICAgICAgYnl0ZSBiaWdlbmRpYW4gICAgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgY2hhcnNldCAgICAgID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBieXRlIGNoYXJzaXplICAgICA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgaW5wdXQucmVhZEJ5dGUoKTsgLy8gcmVhZGluZyByZXNlcnZlZCBieXRlCisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURbXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YUZvcm1hdElEKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIGJ5dGUgZGF0YVZlcnNpb25bXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YVZlcnNpb24pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgYnl0ZSB1bmljb2RlVmVyc2lvbltdID0gbmV3IGJ5dGVbNF07CisgICAgICAgIGlucHV0LnJlYWRGdWxseSh1bmljb2RlVmVyc2lvbik7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBpZiAoaGVhZGVyc2l6ZSA8IHJlYWRjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogSGVhZGVyIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBpbnB1dC5za2lwQnl0ZXMoaGVhZGVyc2l6ZSAtIHJlYWRjb3VudCk7CisKKyAgICAgICAgaWYgKGJpZ2VuZGlhbiAhPSBCSUdfRU5ESUFOXyB8fCBjaGFyc2V0ICE9IENIQVJfU0VUXworICAgICAgICAgICAgfHwgY2hhcnNpemUgIT0gQ0hBUl9TSVpFXworICAgICAgICAgICAgfHwgIUFycmF5cy5lcXVhbHMoZGF0YUZvcm1hdElERXhwZWN0ZWQsIGRhdGFGb3JtYXRJRCkKKyAgICAgICAgICAgIHx8IChhdXRoZW50aWNhdGUgIT0gbnVsbCAKKyAgICAgICAgICAgICAgICAmJiAhYXV0aGVudGljYXRlLmlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGRhdGFWZXJzaW9uKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihIRUFERVJfQVVUSEVOVElDQVRJT05fRkFJTEVEXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOworICAgIH0KKyAgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIE1hZ2ljIG51bWJlcnMgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhIGZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgTUFHSUMxID0gKGJ5dGUpMHhkYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE1BR0lDMiA9IChieXRlKTB4Mjc7CisgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IGF1dGhlbnRpY2F0aW9uIHZhbHVlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCSUdfRU5ESUFOXyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDSEFSX1NFVF8gPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQ0hBUl9TSVpFXyA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBFcnJvciBtZXNzYWdlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE1BR0lDX05VTUJFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0gCisgICAgICAgICAgICAgICAgICAgICAgICJJQ1UgZGF0YSBmaWxlIGVycm9yOiBOb3QgYW4gSUNVIGRhdGEgZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0KKyAgICAgICAgIklDVSBkYXRhIGZpbGUgZXJyb3I6IEhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSBhIHZhbGlkIElDVSBkYXRhIGZpbGUiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnlTdHJlYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDQ5MjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEKQEAgLTAsMCArMSw1OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgRGF0YUlucHV0U3RyZWFtIHRoYXQgaW1wbGVtZW50cyByYW5kb20tYWNjZXNzIHNlZWtpbmcuICBGb3IgdGhpcworICogdG8gd29yaywgdGhlIHNpemUgb2YgdGhlIGRhdGEgc3RyZWFtIG11c3QgYmUga25vd24gaW4gYWR2YW5jZSwgb3IKKyAqIHRoZSBkYXRhIG11c3QgYmUgc3VwcGxpZWQgYXMgYSByYXcgYnl0ZVtdIGFycmF5LgorICoKKyAqIFNlZWtpbmcgZG9lc24ndCB3b3JrIGRpcmVjdGx5IG9uIGFsbCBzdHJlYW1zLiAgSWYgYSBnaXZlbiBzdHJlYW0KKyAqIGRvZXNuJ3Qgc3VwcG9ydCBzZWVraW5nLCBleHRyYWN0IHRoZSBieXRlcyBpbnRvIGEgYnl0ZVtdIGFycmF5IGFuZAorICogdXNlIHRoZSBieXRlW10gY29uc3RydWN0b3IuCisgKi8KK2NsYXNzIElDVUJpbmFyeVN0cmVhbSBleHRlbmRzIERhdGFJbnB1dFN0cmVhbSB7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJlYW0gZnJvbSB0aGUgZ2l2ZW4gc3RyZWFtIGFuZCBzaXplLgorICAgICAqIEBwYXJhbSBzdHJlYW0gdGhlIHN0cmVhbSBvZiBkYXRhCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZQorICAgICAqIGZvciBzZWVraW5nLiAgQnl0ZXMgYmV5b25kIHRoaXMgbWF5IGJlIHJlYWQsIGJ1dCBzZWVraW5nIHdpbGwKKyAgICAgKiBub3Qgd29yayBmb3Igb2Zmc2V0ID49IHNpemUuCisgICAgICovCisgICAgcHVibGljIElDVUJpbmFyeVN0cmVhbShJbnB1dFN0cmVhbSBzdHJlYW0sIGludCBzaXplKSB7CisgICAgICAgIHN1cGVyKHN0cmVhbSk7CisgICAgICAgIG1hcmsoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyZWFtIGZyb20gdGhlIGdpdmVuIHJhdyBieXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVQmluYXJ5U3RyZWFtKGJ5dGVbXSByYXcpIHsKKyAgICAgICAgdGhpcyhuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0ocmF3KSwgcmF3Lmxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VlayB0byB0aGUgZ2l2ZW4gb2Zmc2V0LiAgT2Zmc2V0IGlzIGZyb20gdGhlIHBvc2l0aW9uIG9mIHRoZQorICAgICAqIHN0cmVhbSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCBvciBmcm9tIHRoZSBzdGFydCBvZiB0aGUKKyAgICAgKiBieXRlW10gYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VlayhpbnQgb2Zmc2V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXNldCgpOworICAgICAgICBpbnQgYWN0dWFsID0gc2tpcEJ5dGVzKG9mZnNldCk7CisgICAgICAgIGlmIChhY3R1YWwgIT0gb2Zmc2V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTa2lwKCIgKyBvZmZzZXQgKyAiKSBvbmx5IHNraXBwZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKyAiIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhbHNlKSBTeXN0ZW0ub3V0LnByaW50bG4oIihzZWVrICIgKyBvZmZzZXQgKyAiKSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q3ZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRmViIDQsIDIwMDQKKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlcjsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBQcm92aWRlcyBhY2Nlc3MgdG8gSUNVIGRhdGEgZmlsZXMgYXMgSW5wdXRTdHJlYW1zLiAgSW1wbGVtZW50cyBzZWN1cml0eSBjaGVja2luZy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElDVURhdGEgeworICAgIC8qCisgICAgICogUmV0dXJuIGEgVVJMIHRvIHRoZSBJQ1UgcmVzb3VyY2UgbmFtZXMgcmVzb3VyY2VOYW1lLiAgVGhlCisgICAgICogcmVzb3VyY2UgbmFtZSBzaG91bGQgZWl0aGVyIGJlIGFuIGFic29sdXRlIHBhdGgsIG9yIGEgcGF0aCByZWxhdGl2ZSB0bworICAgICAqIGNvbS5pYm0uaWN1LmltcGwgKGUuZy4sIG1vc3QgbGlrZWx5IGl0IGlzICdkYXRhL2ZvbycpLiAgSWYgcmVxdWlyZWQKKyAgICAgKiBpcyB0cnVlLCB0aHJvdyBhbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBudWxsIHJlc3VsdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXhpc3RzKGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgVVJMIGkgPSBudWxsOworICAgICAgICBpZiAoU3lzdGVtLmdldFNlY3VyaXR5TWFuYWdlcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGkgPSAoVVJMKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGkgPSBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzcyByb290LCBmaW5hbCBTdHJpbmcgcmVzb3VyY2VOYW1lLCBib29sZWFuIHJlcXVpcmVkKSB7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBpID0gKElucHV0U3RyZWFtKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb290LmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IHJvb3QuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNvdXJjZU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhICIgK3Jlc291cmNlTmFtZSwgcm9vdC5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpLCByZXNvdXJjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzc0xvYWRlciBsb2FkZXIsIGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUsIGJvb2xlYW4gcmVxdWlyZWQpIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IG51bGw7CisgICAgICAgIGlmIChTeXN0ZW0uZ2V0U2VjdXJpdHlNYW5hZ2VyKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgaSA9IChJbnB1dFN0cmVhbSlBY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChuZXcgUHJpdmlsZWdlZEFjdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhIiwgbG9hZGVyLnRvU3RyaW5nKCksIHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzTG9hZGVyIGxvYWRlciwgU3RyaW5nIHJlc291cmNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0obG9hZGVyLHJlc291cmNlTmFtZSwgZmFsc2UpOyAgIAorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0UmVxdWlyZWRTdHJlYW0oQ2xhc3NMb2FkZXIgbG9hZGVyLCBTdHJpbmcgcmVzb3VyY2VOYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShsb2FkZXIscmVzb3VyY2VOYW1lLCB0cnVlKTsgICAKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShJQ1VEYXRhLmNsYXNzLCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0oSUNVRGF0YS5jbGFzcywgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzIHJvb3QsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShyb290LCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShDbGFzcyByb290LCBTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0ocm9vdCwgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURlYnVnLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YzE1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VEZWJ1ZyB7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhcmFtczsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFyYW1zID0gU3lzdGVtLmdldFByb3BlcnR5KCJJQ1VEZWJ1ZyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHBhcmFtcyAhPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGVscCA9IGRlYnVnICYmIChwYXJhbXMuZXF1YWxzKCIiKSB8fCBwYXJhbXMuaW5kZXhPZigiaGVscCIpICE9IC0xKTsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGlmIChkZWJ1ZykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnPSIgKyBwYXJhbXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamF2YVZlcnNpb25TdHJpbmcgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE0T3JIaWdoZXI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbjsKKworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2VMZW5pZW50KFN0cmluZyBzKSB7CisgICAgICAgIC8vIGNsZWFuIHN0cmluZworICAgICAgICAvLyBwcmVzZXJ2ZSBvbmx5IGRpZ2l0cywgc2VwYXJhdGVkIGJ5IHNpbmdsZSAnLicgCisgICAgICAgIC8vIGlnbm9yZSBvdmVyIDQgZGlnaXQgc2VxdWVuY2VzCisgICAgICAgIC8vIGRvZXMgbm90IHRlc3QgPCAyNTUsIHZlcnkgb2RkLi4uCisKKyAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgciA9IDAsIHcgPSAwLCBjb3VudCA9IDA7CisgICAgICAgIGJvb2xlYW4gbnVtZXJpYyA9IGZhbHNlOyAvLyBpZ25vcmUgbGVhZGluZyBub24tbnVtZXJpY3MKKyAgICAgICAgd2hpbGUgKHIgPCBjaGFycy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzW3IrK107CisgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKSB7CisgICAgICAgICAgICAgICAgaWYgKG51bWVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZm91ciBkaWdpdCBzdHJpbmdzIGFsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG51bWVyaWMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbdysrXSA9ICcuJzsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWVyaWMgPSB0cnVlOworICAgICAgICAgICAgICAgIGNoYXJzW3crK10gPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlICh3ID4gMCAmJiBjaGFyc1t3LTFdID09ICcuJykgeworICAgICAgICAgICAgLS13OworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyB2cyA9IG5ldyBTdHJpbmcoY2hhcnMsIDAsIHcpOworCisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh2cyk7CisgICAgfQorCisgICAgc3RhdGljIHsKKyAgICAgICAgamF2YVZlcnNpb24gPSBnZXRJbnN0YW5jZUxlbmllbnQoamF2YVZlcnNpb25TdHJpbmcpOworCisgICAgICAgIFZlcnNpb25JbmZvIGphdmExNFZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgiMS40LjAiKTsKKworICAgICAgICBpc0pESzE0T3JIaWdoZXIgPSBqYXZhVmVyc2lvbi5jb21wYXJlVG8oamF2YTE0VmVyc2lvbikgPj0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIGRlYnVnOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlbmFibGVkKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGRlYnVnKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IHBhcmFtcy5pbmRleE9mKGFyZykgIT0gLTE7CisgICAgICAgICAgICBpZiAoaGVscCkgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnLmVuYWJsZWQoIiArIGFyZyArICIpID0gIiArIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZShTdHJpbmcgYXJnKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiZmFsc2UiOworICAgICAgICBpZiAoZGVidWcpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IHBhcmFtcy5pbmRleE9mKGFyZyk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBhcmcubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5sZW5ndGgoKSA+IGluZGV4ICYmIHBhcmFtcy5jaGFyQXQoaW5kZXgpID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAxOworICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBwYXJhbXMuaW5kZXhPZigiLCIsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyYW1zLnN1YnN0cmluZyhpbmRleCwgbGltaXQgPT0gLTEgPyBwYXJhbXMubGVuZ3RoKCkgOiBsaW1pdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gInRydWUiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGhlbHApIFN5c3RlbS5vdXQucHJpbnRsbigiXG5JQ1VEZWJ1Zy52YWx1ZSgiICsgYXJnICsgIikgPSAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gdGVzdAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICIxLjMuMCIsCisgICAgICAgICAgICAiMS4zLjBfMDIiLAorICAgICAgICAgICAgIjEuMy4xZWEiLAorICAgICAgICAgICAgIjEuNC4xYjQzIiwKKyAgICAgICAgICAgICJfX180MV9fXzUiLAorICAgICAgICAgICAgIngxLjQuNTF4eDg5ZWEuN2YiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0ZXN0c1tpXSArICIgPT4gIiArIGdldEluc3RhbmNlTGVuaWVudCh0ZXN0c1tpXSkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODk3OGMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSw2MDYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEEgbGlzdCByZXNvdXJjZSBidW5kbGUgdGhhdCBkb2VzIHJlZGlyZWN0aW9uCisgKiBiZWNhdXNlIG90aGVyd2lzZSBzb21lIG9mIG91ciByZXNvdXJjZSBjbGFzcyBmaWxlcworICogYXJlIHRvbyBiaWcgZm9yIHRoZSBqYXZhIHJ1bnRpbWUgdG8gaGFuZGxlLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitwdWJsaWMgY2xhc3MgSUNVTGlzdFJlc291cmNlQnVuZGxlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVREFUQSA9ICJJQ1VEQVRBIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JVTkRMRV9OQU1FID0gIkxvY2FsZUVsZW1lbnRzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1BBQ0tBR0VfTkFNRSA9ImNvbS5pYm0uaWN1LmltcGwuZGF0YSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVOQ09ESU5HPSJVVEYtOCI7CisKKyAgICAvKiBwYWNrYWdlICovIExvY2FsZSBpY3VMb2NhbGU7CisgICAgLyogcGFja2FnZSAqLyB2b2lkIHNldFBhcmVudFgoUmVzb3VyY2VCdW5kbGUgYikgeworICAgICAgICBzZXRQYXJlbnQoYik7CisgICAgfQorCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBpY3VMb2NhbGU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSgpIHsKKyAgICB9CisKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB2aXNpdGVkID0gbmV3IEhhc2h0YWJsZSgpOworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXJzIG11c3Qgc3RhdGljYWxseSBpbml0aWFsaXplIHRoaXMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBjb250ZW50czsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgb3VyIGNhY2hlCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3RbXVtdIHJlYWxDb250ZW50czsKKworICAgIC8qKgorICAgICAqIFNlZSBiYXNlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKXsKKyAgICAgICAgLy8gd2UgcmVwbGFjZSBhbnkgcmVkaXJlY3RlZCB2YWx1ZXMgd2l0aCByZWFsIHZhbHVlcyBpbiBhIGNsb25lZCBhcnJheQorICAgICAgICBpZiAocmVhbENvbnRlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlYWxDb250ZW50cyA9IGNvbnRlbnRzOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBuZXdWYWx1ZSA9IGdldFJlZGlyZWN0ZWRSZXNvdXJjZSgoU3RyaW5nKWNvbnRlbnRzW2ldWzBdLGNvbnRlbnRzW2ldWzFdLCAtMSk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWxDb250ZW50cyA9PSBjb250ZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbENvbnRlbnRzID0gKE9iamVjdFtdW10pY29udGVudHMuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZWFsQ29udGVudHNbaV0gPSBuZXcgT2JqZWN0W10geyBjb250ZW50c1tpXVswXSwgbmV3VmFsdWUgfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlYWxDb250ZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gbnVsbCBpZiB2YWx1ZSBpcyBhbHJlYWR5IGluIGV4aXN0aW5nIGNvbnRlbnRzIGFycmF5LCBvdGhlcndpc2UgZmV0Y2ggdGhlCisgICAgICogcmVhbCB2YWx1ZSBhbmQgcmV0dXJuIGl0LgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IGdldFJlZGlyZWN0ZWRSZXNvdXJjZShTdHJpbmcga2V5LCBPYmplY3QgdmFsdWUsIGludCBpbmRleCkgeworCisgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdFtdW10pIHsKKyAgICAgICAgICAgIE9iamVjdFtdW10gYVZhbHVlID0gKE9iamVjdFtdW10pdmFsdWU7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUoaSA8IGFWYWx1ZS5sZW5ndGgpeworICAgICAgICAgICAgICAgIGludCBqPTA7CisgICAgICAgICAgICAgICAgd2hpbGUoaiA8IGFWYWx1ZVtpXS5sZW5ndGgpeworICAgICAgICAgICAgICAgICAgICBhVmFsdWVbaV1bal0gPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2UoKFN0cmluZylhVmFsdWVbaV1bMF0sYVZhbHVlW2ldW2pdLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdFtdKXsKKyAgICAgICAgICAgIE9iamVjdFtdIGFWYWx1ZSA9IChPYmplY3RbXSkgdmFsdWU7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUoIGkgPCBhVmFsdWUubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBhVmFsdWVbaV0gPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2Uoa2V5LGFWYWx1ZVtpXSwgaSk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIEFsaWFzKXsKKyAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgY05hbWUgPSB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgdmlzaXRlZC5jbGVhcigpOworICAgICAgICAgICAgdmlzaXRlZC5wdXQoY05hbWUra2V5LCIiKTsKKyAgICAgICAgICAgIHJldHVybiAoKEFsaWFzKXZhbHVlKS5nZXRSZXNvdXJjZShjTmFtZSxrZXksaW5kZXgsIHZpc2l0ZWQpOworICAgICAgICB9ZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIFJlZGlyZWN0ZWRSZXNvdXJjZSl7CisgICAgICAgICAgICByZXR1cm4gKChSZWRpcmVjdGVkUmVzb3VyY2UpdmFsdWUpLmdldFJlc291cmNlKHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSByZWFkVG9FT1MoSW5wdXRTdHJlYW0gc3RyZWFtKSB7CisgICAgICAgIC8vIEFzIG9mIDMuMCB0aGlzIG1ldGhvZCByZWFkcyBzdHJlYW1zIG9mIGxlbmd0aCAyNjQuLjI3NDAwOAorICAgICAgICAvLyBmcm9tIHRoZSBjb3JlIGRhdGEuICBXZSBwcm9ncmVzc2l2ZWx5IGRvdWJsZSB0aGUgYnVmZmVyCisgICAgICAgIC8vIHNpemUgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb2NhdGlvbnMgcmVxdWlyZWQuCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSAweDIwMDsgLy8gc21hbGxlc3QgMl5uID49IG1pbiBzdHJlYW0gbGVuCisgICAgICAgICAgICBmaW5hbCBpbnQgTUFYTEVOR1RIID0gMHg4MDAwOworICAgICAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBidWZmZXIgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHN0cmVhbS5yZWFkKGJ1ZmZlciwgcG9zLCBsZW5ndGggLSBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IG47CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBjb3VudCArPSBwb3M7CisgICAgICAgICAgICAgICAgdmVjLmFkZChidWZmZXIpOworICAgICAgICAgICAgICAgIGlmIChwb3MgPCBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPCBNQVhMRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDw8PSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcbmNvdW50ICIgKyBjb3VudCArICIgYnl0ZXMgZnJvbSAiICsgc3RyZWFtKTsKKworICAgICAgICAgICAgYnl0ZVtdIGRhdGEgPSBuZXcgYnl0ZVtjb3VudF07CisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBieXRlW10gYnVmID0gKGJ5dGVbXSl2ZWMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGludCBsZW4gPSBNYXRoLm1pbihidWYubGVuZ3RoLCBjb3VudCAtIHBvcyk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKyAgICAgICAgICAgICAgICBwb3MgKz0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYXNzZXJ0IHBvcz09Y291bnQ7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gcmVhZFRvRU9TKElucHV0U3RyZWFtUmVhZGVyIHN0cmVhbSkgeworICAgICAgICAvLyBBcyBvZiAzLjAgdGhpcyBtZXRob2QgcmVhZHMgc3RyZWFtcyBvZiBsZW5ndGggNDE5OTAuLjQxOTk0CisgICAgICAgIC8vIGZyb20gdGhlIGNvcmUgZGF0YS4gIFRoZSBJQk0gMS40IFVURjggY29udmVydGVyIGRvZXNuJ3QKKyAgICAgICAgLy8gaGFuZGxlIGJ1ZmZlcmluZyByZWxpYWJseSAoaXQgdGhyb3dzIGFuIGV4Y2VwdGlvbikgc28gd2UKKyAgICAgICAgLy8gYXJlIGZvcmNlZCB0byByZWFkIGV2ZXJ5dGhpbmcgaW4gb25lIGNodW5rLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IDB4MTAwMDA7IC8vIHNtYWxsZXN0IDJebiA+PSBtYXggc3RyZWFtIGxlbgorICAgICAgICAgICAgZmluYWwgaW50IE1BWExFTkdUSCA9IDB4NDAwMDAwMDA7CisgICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXI7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBuID0gc3RyZWFtLnJlYWQoYnVmZmVyLCAwLCBsZW5ndGgpOworICAgICAgICAgICAgICAgIGlmIChuID49IDAgJiYgbiA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA8IE1BWExFTkdUSCkgeworICAgICAgICAgICAgICAgICAgICBzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDw8PSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIm1heGltdW0gaW5wdXQgc3RyZWFtIGxlbmd0aCBleGNlZWRlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcbmNvdW50ICIgKyBuICsgIiBjaGFycyBmcm9tICIgKyBzdHJlYW0pOworCisgICAgICAgICAgICBjaGFyW10gZGF0YSA9IG5ldyBjaGFyW25dOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIGRhdGEsIDAsIG4pOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb21wcmVzc2VkU3RyaW5nIGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIFN0cmluZyBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyBjb21wcmVzc2VkPW51bGw7CisgICAgICAgIHB1YmxpYyBDb21wcmVzc2VkU3RyaW5nKFN0cmluZyBzdHIpeworICAgICAgICAgICBjb21wcmVzc2VkPXN0cjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopeworICAgICAgICAgICAgaWYoY29tcHJlc3NlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgZXhwYW5kZWQ9IG5ldyBTdHJpbmcoVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShjb21wcmVzc2VkKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZXhwYW5kZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbXByZXNzZWRCaW5hcnkgaW1wbGVtZW50cyBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHByaXZhdGUgYnl0ZVtdIGV4cGFuZGVkPW51bGw7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGNvbXByZXNzZWQ9bnVsbDsKKyAgICAgICAgcHVibGljIENvbXByZXNzZWRCaW5hcnkoU3RyaW5nIHN0cil7CisgICAgICAgICAgIGNvbXByZXNzZWQgPSBzdHI7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKXsKKyAgICAgICAgICAgIGlmKGNvbXByZXNzZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgYnl0ZVswXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZXhwYW5kZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIGV4cGFuZGVkPSBVdGlsaXR5LlJMRVN0cmluZ1RvQnl0ZUFycmF5KGNvbXByZXNzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGV4cGFuZGVkID09bnVsbCA/IG5ldyBieXRlWzBdOiBleHBhbmRlZDsKKyAgICAgICAgfQorCisgICAgfQorICAgIHByaXZhdGUgaW50ZXJmYWNlIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlc291cmNlQmluYXJ5IGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIGJ5dGVbXSBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyByZXNOYW1lPW51bGw7CisgICAgICAgIHB1YmxpYyBSZXNvdXJjZUJpbmFyeShTdHJpbmcgbmFtZSl7CisgICAgICAgICAgICByZXNOYW1lPSJkYXRhLyIgKyBuYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgaWYoZXhwYW5kZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0U3RyZWFtKHJlc05hbWUpOworICAgICAgICAgICAgICAgIGlmKHN0cmVhbSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIC8vdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiIixvYmouZ2V0Q2xhc3MoKS5nZXROYW1lKCkscmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkID0gcmVhZFRvRU9TKHN0cmVhbSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBleHBhbmRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlc291cmNlU3RyaW5nIGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIGNoYXJbXSBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyByZXNOYW1lPW51bGw7CisgICAgICAgIHB1YmxpYyBSZXNvdXJjZVN0cmluZyhTdHJpbmcgbmFtZSl7CisgICAgICAgICAgICByZXNOYW1lPSJkYXRhLyIrbmFtZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgIGlmKGV4cGFuZGVkPT1udWxsKXsKKyAgICAgICAgICAgICAgICAvLyBSZXNvdXJjZSBzdHJpbmdzIGFyZSBhbHdheXMgVVRGLTgKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBzdHJlYW0gPSBJQ1VEYXRhLmdldFN0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBpZihzdHJlYW0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIiIsb2JqLmdldENsYXNzKCkuZ2V0TmFtZSgpLHJlc05hbWUpOworCisgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIHJlYWRlciA9ICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoc3RyZWFtLEVOQ09ESU5HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkID0gcmVhZFRvRU9TKHJlYWRlcik7CisgICAgICAgICAgICAgICAgICAgIH1jYXRjaChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDb3VsZCBvcGVuIGNvbnZlcnRlciBmb3IgZW5jb2Rpbmc6ICIgK0VOQ09ESU5HKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhleHBhbmRlZCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVNfUEFUSF9TRVBfQ0hBUiA9ICcvJzsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEFsaWFzeworICAgICAgICBwdWJsaWMgQWxpYXMoU3RyaW5nIHBhdGgpeworICAgICAgICAgICAgcGF0aFRvUmVzb3VyY2UgPSBwYXRoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN0cmluZyBwYXRoVG9SZXNvdXJjZTsKKworICAgICAgICBwcml2YXRlIE9iamVjdCBnZXRSZXNvdXJjZShTdHJpbmcgY2xhc3NOYW1lLCBTdHJpbmcgcGFyZW50S2V5LCBpbnQgaW5kZXgsIEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZT1udWxsLGJ1bmRsZU5hbWU9bnVsbCwgbG9jYWxlPW51bGwsIGtleVBhdGg9bnVsbDsKKworICAgICAgICAgICAgaWYocGF0aFRvUmVzb3VyY2UuaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUik9PTApeworICAgICAgICAgICAgICAgIGludCBpID1wYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSLDEpOworICAgICAgICAgICAgICAgIGludCBqID1wYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSLGkrMSk7CisgICAgICAgICAgICAgICAgYnVuZGxlTmFtZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoMSxpKTsKKyAgICAgICAgICAgICAgICBsb2NhbGU9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSk7CisgICAgICAgICAgICAgICAgaWYoaiE9LTEpeworICAgICAgICAgICAgICAgICAgICBsb2NhbGU9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSxqKTsKKyAgICAgICAgICAgICAgICAgICAga2V5UGF0aD1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaisxLHBhdGhUb1Jlc291cmNlLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy90aGVyZSBpcyBhIHBhdGggaW5jbHVkZWQKKyAgICAgICAgICAgICAgICBpZihidW5kbGVOYW1lLmVxdWFscyhJQ1VEQVRBKSl7CisgICAgICAgICAgICAgICAgICAgIGJ1bmRsZU5hbWUgPSBJQ1VfQlVORExFX05BTUU7CisgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VOYW1lID0gSUNVX1BBQ0tBR0VfTkFNRTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIC8vbm8gcGF0aCBzdGFydCB3aXRoIGxvY2FsZQorICAgICAgICAgICAgICAgIGludCBpID1wYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKTsKKyAgICAgICAgICAgICAgICAvL0lmIHRoaXMgaXMgYSBidW5kbGUgd2l0aCBsb2NhbGUgbmFtZSBmb2xsb3dpbmcgaXQKKyAgICAgICAgICAgICAgICAvL3RoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgPGJ1bmRsZSBuYW1lPl88bG9jYWxlPgorICAgICAgICAgICAgICAgIC8vaWYgbm90IHdlIGRvbm90IGd1YXJhbnRlZSB0aGF0IHRoaXMgd2lsbCB3b3JrCisgICAgICAgICAgICAgICAgaW50IGogPSBjbGFzc05hbWUubGFzdEluZGV4T2YoIi4iKTsKKyAgICAgICAgICAgICAgICBwYWNrYWdlTmFtZT1jbGFzc05hbWUuc3Vic3RyaW5nKDAsaik7CisgICAgICAgICAgICAgICAgaW50IHVuZGVyU2NvcmVJbmRleCA9IGNsYXNzTmFtZS5pbmRleE9mKCJfIik7CisgICAgICAgICAgICAgICAgaWYodW5kZXJTY29yZUluZGV4Pj0wKXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZT1jbGFzc05hbWUuc3Vic3RyaW5nKGorMSxjbGFzc05hbWUuaW5kZXhPZigiXyIpKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IGNsYXNzTmFtZS5zdWJzdHJpbmcoaisxLGNsYXNzTmFtZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGtleVBhdGg9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSk7CisKKyAgICAgICAgICAgICAgICBpZihpIT0tMSl7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IHBhdGhUb1Jlc291cmNlLnN1YnN0cmluZygwLGkpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2NhbGU9a2V5UGF0aDsKKyAgICAgICAgICAgICAgICAgICAga2V5UGF0aD1wYXJlbnRLZXk7CisgICAgICAgICAgICAgICAgICAgIGlmKGxvY2FsZT09bnVsbCB8fCBsb2NhbGUuZXF1YWxzKCJyb290IikpeworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXBhY2thZ2VOYW1lKyIuIitidW5kbGVOYW1lOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1wYWNrYWdlTmFtZSsiLiIrYnVuZGxlTmFtZSsiXyIrIGxvY2FsZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgICAgIC8vIGdldFJlc291cmNlQnVuZGxlIGd1YXJhbnRlZXMgdGhhdCB0aGUgQ0xBU1NQQVRIIHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgICAgICAgIC8vIGZvciBsb2FkaW5nIHRoZSByZXNvdXJjZSB3aXRoIG5hbWUgPGJ1bmRsZU5hbWU+Xzxsb2NhbGVOYW1lPi5jbGFzcworICAgICAgICAgICAgaWYobG9jYWxlPT1udWxsIHx8IGxvY2FsZS5lcXVhbHMoInJvb3QiKSl7CisgICAgICAgICAgICAgICAgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZShwYWNrYWdlTmFtZSxidW5kbGVOYW1lLCIiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGJ1bmRsZSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUocGFja2FnZU5hbWUsYnVuZGxlTmFtZSxsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmluZFJlc291cmNlKGJ1bmRsZSwgY2xhc3NOYW1lLCBwYXJlbnRLZXksIGluZGV4LCBrZXlQYXRoLCB2aXNpdGVkKTsKKyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZShPYmplY3RbXVtdIGNvbnRlbnRzLCBTdHJpbmcga2V5KXsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udGVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyBrZXkgbXVzdCBiZSBub24tbnVsbCBTdHJpbmcsIHZhbHVlIG11c3QgYmUgbm9uLW51bGwKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcEtleSA9IChTdHJpbmcpIGNvbnRlbnRzW2ldWzBdOworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbnRlbnRzW2ldWzFdOworICAgICAgICAgICAgICAgIGlmICh0ZW1wS2V5ID09IG51bGwgfHwgdmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYodGVtcEtleS5lcXVhbHMoa2V5KSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKE9iamVjdCBvICwgU3RyaW5nW10ga2V5cywgaW50IHN0YXJ0LCBpbnQgaW5kZXgpeworICAgICAgICAgICAgT2JqZWN0IG9iaiA9IG87CisgICAgICAgICAgICBpZiggc3RhcnQgPCBrZXlzLmxlbmd0aCAmJiBrZXlzW3N0YXJ0XSAhPW51bGwpeworICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2UoKE9iamVjdFtdW10pb2JqLGtleXNbc3RhcnRdKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXSAmJiBpc0luZGV4KGtleXNbc3RhcnRdKSl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9ICgoT2JqZWN0W10pb2JqKVtnZXRJbmRleChrZXlzW3N0YXJ0XSldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzdGFydCsxIDwga2V5cy5sZW5ndGggJiYga2V5c1tzdGFydCsxXSAhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2Uob2JqLGtleXMsc3RhcnQrMSwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIC8vdHJ5IHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggcmVzb3VyY2UKKyAgICAgICAgICAgICAgICBpZihpbmRleD49MCl7CisgICAgICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlKChPYmplY3RbXVtdKW9iaixJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9ICgoT2JqZWN0W10pb2JqKVtpbmRleF07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZShSZXNvdXJjZUJ1bmRsZSBidW5kbGUsIFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyByZXF1ZXN0ZWRLZXksIGludCBpbmRleCwgU3RyaW5nIGFsaWFzS2V5LCBIYXNodGFibGUgdmlzaXRlZCl7CisKKyAgICAgICAgICAgIGlmKGFsaWFzS2V5ICE9IG51bGwgJiYgdmlzaXRlZC5nZXQoY2xhc3NOYW1lK2FsaWFzS2V5KSE9bnVsbCl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ2lyY3VsYXIgQWxpYXNlcyBpbiBidW5kbGUuIixidW5kbGUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkscmVxdWVzdGVkS2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGFsaWFzS2V5PT1udWxsKXsKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgd2UgZG8gYW4gaW1wbGljaXQga2V5IGxvb2t1cAorICAgICAgICAgICAgICAgIC8vIHJldHVybiAoKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSlidW5kbGUpLmdldENvbnRlbnRzKCk7CisgICAgICAgICAgICAgICAgYWxpYXNLZXkgPSByZXF1ZXN0ZWRLZXk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZpc2l0ZWQucHV0KGNsYXNzTmFtZStyZXF1ZXN0ZWRLZXksIiIpOworCisgICAgICAgICAgICBTdHJpbmdbXSBrZXlzID0gc3BsaXQoYWxpYXNLZXksUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICAgICAgT2JqZWN0IG8gPW51bGw7CisgICAgICAgICAgICBpZihrZXlzLmxlbmd0aD4wKXsKKyAgICAgICAgICAgICAgICBvID0gYnVuZGxlLmdldE9iamVjdChrZXlzWzBdKTsKKyAgICAgICAgICAgICAgICBvID0gZmluZFJlc291cmNlKG8sIGtleXMsIDEsIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG89cmVzb2x2ZUFsaWFzZXMobyxjbGFzc05hbWUsYWxpYXNLZXksdmlzaXRlZCk7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlICBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0IG8sU3RyaW5nIGNsYXNzTmFtZSxTdHJpbmcga2V5LCBIYXNodGFibGUgdmlzaXRlZCl7CisgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgbyA9IHJlc29sdmVBbGlhc2VzKChPYmplY3RbXVtdKW8sY2xhc3NOYW1lLGtleSwgdmlzaXRlZCk7CisgICAgICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgICAgICBvID0gcmVzb2x2ZUFsaWFzZXMoKE9iamVjdFtdKW8sY2xhc3NOYW1lLGtleSwgdmlzaXRlZCk7CisgICAgICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgQWxpYXMpeworICAgICAgICAgICAgICAgIHJldHVybiAoKEFsaWFzKW8pLmdldFJlc291cmNlKGNsYXNzTmFtZSxrZXksIC0xLCB2aXNpdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgT2JqZWN0IHJlc29sdmVBbGlhc2VzKE9iamVjdFtdW10gbyxTdHJpbmcgY2xhc3NOYW1lLCBTdHJpbmcga2V5LEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGludCBpID0wOworICAgICAgICAgICAgd2hpbGUoaTxvLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgb1tpXVsxXT1yZXNvbHZlQWxpYXNlcyhvW2ldWzFdLGNsYXNzTmFtZSxrZXksdmlzaXRlZCk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0W10gbyxTdHJpbmcgY2xhc3NOYW1lLCBTdHJpbmcga2V5LEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGludCBpID0wOworICAgICAgICAgICAgd2hpbGUoaTxvLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgb1tpXT1yZXNvbHZlQWxpYXNlcyhvW2ldLGNsYXNzTmFtZSxrZXksdmlzaXRlZCk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKworCisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIHNwbGl0KFN0cmluZyBzb3VyY2UsIGNoYXIgZGVsaW1pdGVyKXsKKworICAgICAgICBjaGFyW10gc3JjID0gc291cmNlLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBudW1kZWxpbWl0PTA7CisgICAgICAgIC8vIGZpcnN0IGNvdW50IHRoZSBudW1iZXIgb2YgZGVsaW1pdGVycworICAgICAgICBmb3IoaW50IGk9MDtpPHNvdXJjZS5sZW5ndGgoKTtpKyspeworICAgICAgICAgICAgaWYoc3JjW2ldPT1kZWxpbWl0ZXIpeworICAgICAgICAgICAgICAgIG51bWRlbGltaXQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPW51bGw7CisgICAgICAgIHZhbHVlcyA9IG5ldyBTdHJpbmdbbnVtZGVsaW1pdCsyXTsKKyAgICAgICAgLy8gbm93IHNwbGl0CisgICAgICAgIGludCBvbGQ9MDsKKyAgICAgICAgZm9yKGludCBqPTA7ajxzcmMubGVuZ3RoO2orKyl7CisgICAgICAgICAgICBpZihzcmNbal09PWRlbGltaXRlcil7CisgICAgICAgICAgICAgICAgdmFsdWVzW2luZGV4KytdID0gbmV3IFN0cmluZyhzcmMsb2xkLGotb2xkKTsKKyAgICAgICAgICAgICAgICBvbGQ9aisxLyogc2tpcCBhZnRlciB0aGUgZGVsaW1pdGVyKi87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYob2xkIDxzcmMubGVuZ3RoKQorICAgICAgICAgICAgdmFsdWVzW2luZGV4KytdPW5ldyBTdHJpbmcoc3JjLG9sZCxzcmMubGVuZ3RoLW9sZCk7CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHBlcmZvcm1zIG11bHRpbGV2ZWwgZmFsbGJhY2sgZm9yIGZldGNoaW5nIGl0ZW1zIGZyb20gdGhlIGJ1bmRsZQorICAgICAqIGUuZzoKKyAgICAgKiBJZiByZXNvdXJjZSBpcyBpbiB0aGUgZm9ybQorICAgICAqIGRlX19QSE9ORUJPT0t7CisgICAgICogICAgICBjb2xsYXRpb25zeworICAgICAqICAgICAgICAgICAgICBkZWZhdWx0eyAicGhvbmVib29rIn0KKyAgICAgKiAgICAgIH0KKyAgICAgKiB9CisgICAgICogSWYgdGhlIHZhbHVlIG9mICJkZWZhdWx0IiBrZXkgbmVlZHMgdG8gYmUgYWNjZXNzZWQsIHRoZW4gZG86CisgICAgICogPGNvZGU+CisgICAgICogIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG5ldyBSZXNvdXJjZUJ1bmRsZShnZXRMb2NhbGVGcm9tU3RyaW5nKCJkZV9fUEhPTkVCT09LIikpOworICAgICAqICBPYmplY3QgcmVzdWx0ID0gbnVsbDsKKyAgICAgKiAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgKiAgICAgIHJlc3VsdCA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUpLmdldE9iamVjdFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICogIH0KKyAgICAgKiA8L2NvZGU+CisgICAgICogQHBhcmFtIHBhdGggIFRoZSBwYXRoIHRvIHRoZSByZXF1aXJlZCByZXNvdXJjZSBrZXkKKyAgICAgKiBAcmV0dXJuIE9iamVjdCByZXByZXNlbnRlZCBieSB0aGUga2V5CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IGdldE9iamVjdFdpdGhGYWxsYmFjayhTdHJpbmcgcGF0aCkgCisgICAgICAgICAgICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdbXSBrZXlzID0gc3BsaXQocGF0aCwgUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICBPYmplY3QgcmVzdWx0ID0gbnVsbDsgICAgICAKKyAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGFjdHVhbEJ1bmRsZSA9IHRoaXM7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgLy8gbm93IHJlY3VzZSB0byBwaWNrIHVwIHN1YiBsZXZlbHMgb2YgdGhlIGl0ZW1zCisgICAgICAgIHJlc3VsdCA9IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhrZXlzLCBhY3R1YWxCdW5kbGUpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYocmVzdWx0ID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHJlc291cmNlIGluICIsdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSxwYXRoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKworICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhTdHJpbmdbXSBrZXlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlKXsKKworICAgICAgICBPYmplY3Qgb2JqID0gbnVsbDsgCisgICAgICAgIAorICAgICAgICB3aGlsZShhY3R1YWxCdW5kbGUgIT0gbnVsbCl7CisgICAgICAgICAgICAvLyBnZXQgdGhlIHRvcCBsZXZlbCByZXNvdXJjZSAKKyAgICAgICAgICAgIC8vIGdldE9iamVjdCBpcyBhIG1ldGhvZCBvbiB0aGUgUmVzb3VyY2VCdW5kbGUgY2xhc3MgdGhhdAorICAgICAgICAgICAgLy8gcGVyZm9ybXMgdGhlIG5vcm1hbCBmYWxsYmFjaworICAgICAgICAgICAgb2JqID0gYWN0dWFsQnVuZGxlLmdldE9iamVjdChrZXlzWzBdLCBhY3R1YWxCdW5kbGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBub3cgZmluZCB0aGUgYnVuZGxlIGZyb20gdGhlIGFjdHVhbCBidW5kbGUgCisgICAgICAgICAgICAvLyBpZiB0aGlzIGJ1bmRsZSBkb2VzIG5vdCBjb250YWluIHRoZSB0b3AgbGV2ZWwgcmVzb3VyY2UsCisgICAgICAgICAgICAvLyB0aGVuIHdlIGNhbiBiZSBzdXJlIHRoYXQgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgc3ViIGVsZW1lbnRzCisgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2sob2JqLCBrZXlzLCAxLCAwKTsKKyAgICAgICAgICAgIC8vIGRpZCB3ZSBnZXQgdGhlIGNvbnRlbnRzPyB0aGUgYnJlYWsKKyAgICAgICAgICAgIGlmKG9iaiAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGlmIG5vdCB0cnkgdGhlIHBhcmVudCBidW5kbGUKKyAgICAgICAgICAgIGFjdHVhbEJ1bmRsZSA9IChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpIGFjdHVhbEJ1bmRsZS5wYXJlbnQ7CisgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICBwcml2YXRlIE9iamVjdCBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soT2JqZWN0IG8gLCBTdHJpbmdbXSBrZXlzLCBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgpeworICAgICAgICBPYmplY3Qgb2JqID0gbzsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAgICAgaWYoIHN0YXJ0IDwga2V5cy5sZW5ndGggJiYga2V5c1tzdGFydF0gIT1udWxsKXsKKyAgICAgICAgICAgICAgICBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKChPYmplY3RbXVtdKW9iaixrZXlzW3N0YXJ0XSk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W10gJiYgaXNJbmRleChrZXlzW3N0YXJ0XSkpeworICAgICAgICAgICAgICAgICAgICBvYmogPSAoKE9iamVjdFtdKW9iailbZ2V0SW5kZXgoa2V5c1tzdGFydF0pXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoc3RhcnQrMSA8IGtleXMubGVuZ3RoICYmIGtleXNbc3RhcnQrMV0gIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKG9iaixrZXlzLHN0YXJ0KzEsIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAvL3RyeSB0byBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IHJlc291cmNlCisgICAgICAgICAgICAgICAgaWYoaW5kZXg+PTApeworICAgICAgICAgICAgICAgICAgICBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjaygoT2JqZWN0W11bXSlvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9TdHJpbmcoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gKChPYmplY3RbXSlvYmopW2luZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE9iamVjdCBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soT2JqZWN0W11bXSBjbnRzLCBTdHJpbmcga2V5KXsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG51bGw7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBrZXkgbXVzdCBiZSBub24tbnVsbCBTdHJpbmcKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wS2V5ID0gKFN0cmluZykgY250c1tpXVswXTsKKyAgICAgICAgICAgIG9iaiA9IGNudHNbaV1bMV07CisgICAgICAgICAgICBpZih0ZW1wS2V5ICE9IG51bGwgJiYgdGVtcEtleS5lcXVhbHMoa2V5KSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBnZXRPYmplY3QoU3RyaW5nIGtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBhY3R1YWxCdW5kbGUpIHsKKyAgICAgICAgT2JqZWN0IG9iaiA9IGhhbmRsZUdldE9iamVjdChrZXkpOworICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBwID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgdGhpcy5wYXJlbnQ7CisgICAgICAgICAgICB3aGlsZSggcCE9bnVsbCl7CisgICAgICAgICAgICAgICAgb2JqID0gcC5oYW5kbGVHZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgICAgICBpZihvYmogIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGFjdHVhbEJ1bmRsZSA9IHA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcCA9IChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpIHAucGFyZW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNJbmRleChTdHJpbmcgcyl7CisgICAgICAgICBpZihzLmxlbmd0aCgpPT0xKXsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgcmV0dXJuIENoYXJhY3Rlci5pc0RpZ2l0KGMpOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0SW5kZXgoU3RyaW5nIHMpeworICAgICAgICAgaWYocy5sZW5ndGgoKT09MSl7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKENoYXJhY3Rlci5pc0RpZ2l0KGMpKXsKKyAgICAgICAgICAgICAgcmV0dXJuIEludGVnZXIudmFsdWVPZihzKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTG9jYWxlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTG9jYWxlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MzdiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEKQEAgLTAsMCArMSwzNTIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAyLTIwMDUgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGFuZCBhY2Nlc3MgdG8gcmVzb3VyY2UgYnVuZGxlcyBpbiB0aGUKKyAqIGNvbS5pYm0udGV4dC5yZXNvdXJjZXMgcGFja2FnZS4gIFVubGlrZSB0aGUgamF2YSB2ZXJzaW9uLCB0aGlzIGRvZXMKKyAqIG5vdCBpbmNsdWRlIHJlc291cmNlcyBmcm9tIGFueSBvdGhlciBsb2NhdGlvbi4gIEluIHBhcnRpY3VsYXIsIGl0CisgKiBkb2VzIG5vdCBsb29rIGluIHRoZSBib290IG9yIHN5c3RlbSBjbGFzcyBwYXRoLgorICovCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlRGF0YSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGFja2FnZSBmb3IgSUNVIGxvY2FsZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfUEFDS0FHRSA9ICJjb20uaWJtLmljdS5pbXBsLmRhdGEiOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSAoYnVuZGxlIG5hbWUpIGZvciBJQ1UgbG9jYWxlIGRhdGEuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBMT0NBTEVfRUxFTUVOVFMgPSAiTG9jYWxlRWxlbWVudHMiOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIExvY2FsZUVsZW1lbnRzIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIGluIHRoZSBkZWZhdWx0IElDVSBwYWNrYWdlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLCBvcgorICAgICAqIG51bGwgdG8gdXNlIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhlIExvY2FsZUVsZW1lbnRzIG9mIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRMb2NhbGVFbGVtZW50cyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRSZXNvdXJjZUJ1bmRsZShJQ1VfUEFDS0FHRSwgTE9DQUxFX0VMRU1FTlRTLCBsb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIExvY2FsZUVsZW1lbnRzIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIGluIHRoZSBkZWZhdWx0IElDVSBwYWNrYWdlLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiwgImVuX1VTIi4KKyAgICAgKiBAcmV0dXJuIGEgUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBMb2NhbGVFbGVtZW50cyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIG9yIG51bGwgb24gZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0TG9jYWxlRWxlbWVudHMoU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBMT0NBTEVfRUxFTUVOVFMsIGxvY2FsZU5hbWUpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGJ1bmRsZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLAorICAgICAqIGUuZy4gIkxvY2FsZUVsZW1lbnRzIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgc3RyaW5nIG5hbWUgb2YgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlCisgICAgICogdG8gcmV0cmlldmUsIGUuZy4gImVuX1VTIi4KKyAgICAgKiBAcmV0dXJuIGEgUmVzb3VyY2VCdW5kbGUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIG9yIG51bGwgb24gZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJ1bmRsZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRSZXNvdXJjZUJ1bmRsZShJQ1VfUEFDS0FHRSwgYnVuZGxlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGJ1bmRsZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLAorICAgICAqIGUuZy4gIkxvY2FsZUVsZW1lbnRzIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGJ1bmRsZSB0byByZXRyaWV2ZSwgb3IKKyAgICAgKiBudWxsIHRvIHVzZSB0aGUgZGVmYXVsdCBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIGEgUmVzb3VyY2VCdW5kbGUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIG9yIG51bGwgb24gZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJ1bmRsZU5hbWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBidW5kbGVOYW1lLCBsb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIHBhY2thZ2UsIGJhc2UgbmFtZSwgYW5kCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBwYWNrYWdlTmFtZSBhIHBhY2thZ2UgbmFtZSwgZS5nLiwgImNvbS5pYm0uaWN1LmltcGwuZGF0YSIuCisgICAgICogQHBhcmFtIGJ1bmRsZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLAorICAgICAqIGUuZy4gIkxvY2FsZUVsZW1lbnRzIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgc3RyaW5nIG5hbWUgb2YgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlCisgICAgICogdG8gcmV0cmlldmUsIGUuZy4gImVuX1VTIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yCisgICAgICogdGhlIGdpdmVuIGxvY2FsZSBmb3VuZCBpbiBlYWNoIG9mIHRoZSBwYWNrYWdlcywgb3IgbnVsbCBvbgorICAgICAqIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldFJlc291cmNlQnVuZGxlKFN0cmluZyBwYWNrYWdlTmFtZSwgU3RyaW5nIGJ1bmRsZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0aCA9IHBhY2thZ2VOYW1lICsgIi4iICsgYnVuZGxlTmFtZTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjYWxsaW5nIGluc3RhbnRpYXRlOiAiICsgcGF0aCArICJfIiArIGxvY2FsZU5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGluc3RhbnRpYXRlKHBhdGgsIGxvY2FsZU5hbWUpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oYnVuZGxlTmFtZSArICJfIiArIGxvY2FsZU5hbWUgKyAiIG5vdCBmb3VuZCBpbiAiICsgcGFja2FnZU5hbWUpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSBpbgorICAgICAqIG9uZSBvZiB0aGUgZ2l2ZW4gcGFja2FnZXMsIHRyeWluZyBlYWNoIHBhY2thZ2UgaW4gb3JkZXIuCisgICAgICogQHBhcmFtIHBhY2thZ2VzIGEgbGlzdCBvZiBvbmUgb3IgbW9yZSBwYWNrYWdlIG5hbWVzCisgICAgICogQHBhcmFtIGJ1bmRsZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLAorICAgICAqIGUuZy4gIkxvY2FsZUVsZW1lbnRzIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgc3RyaW5nIG5hbWUgb2YgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlCisgICAgICogdG8gcmV0cmlldmUsIGUuZy4gImVuX1VTIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yCisgICAgICogdGhlIGdpdmVuIGxvY2FsZSBmb3VuZCBpbiBlYWNoIG9mIHRoZSBwYWNrYWdlcywgb3IgbnVsbCBvbgorICAgICAqIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldFJlc291cmNlQnVuZGxlKFN0cmluZ1tdIHBhY2thZ2VzLCBTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcj1udWxsOworICAgICAgICBmb3IgKGludCBpPTA7IHI9PW51bGwgJiYgaTxwYWNrYWdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgciA9IGdldFJlc291cmNlQnVuZGxlKHBhY2thZ2VzW2ldLCBidW5kbGVOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSByZXNvdXJjZSBidW5kbGUgZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlIHBhdGguICBVbmxpa2UgZ2V0UmVzb3VyY2VCdW5kbGUsIHRoaXMKKyAgICAgKiByZXR1cm5zIGFuICd1bnBhcmVudGVkJyBidW5kbGUgdGhhdCBleGFjdGx5IG1hdGNoZXMgdGhlIGJ1bmRsZSBuYW1lIGFuZCBsb2NhbGUgbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGxvYWRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9hZFJlc291cmNlQnVuZGxlKGJ1bmRsZU5hbWUsIGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSByZXNvdXJjZSBidW5kbGUgZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlIHBhdGguICBVbmxpa2UgZ2V0UmVzb3VyY2VCdW5kbGUsIHRoaXMKKyAgICAgKiByZXR1cm5zIGFuICd1bnBhcmVudGVkJyBidW5kbGUgdGhhdCBleGFjdGx5IG1hdGNoZXMgdGhlIGJ1bmRsZSBuYW1lIGFuZCBsb2NhbGUgbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGxvYWRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaWYgKGxvY2FsZU5hbWUgIT0gbnVsbCAmJiBsb2NhbGVOYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVuZGxlTmFtZSA9IGJ1bmRsZU5hbWUgKyAiXyIgKyBsb2NhbGVOYW1lOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBuYW1lID0gSUNVX1BBQ0tBR0UgKyAiLiIgKyBidW5kbGVOYW1lOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigiX3poXyIpID09IC0xKSB7IC8vIERMRiB0ZW1wb3JhcnkgaGFjaworICAgICAgICAgICAgICAgIENsYXNzIHJiY2xhc3MgPSBDbGFzcy5mb3JOYW1lKG5hbWUpOworICAgICAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJiID0gKFJlc291cmNlQnVuZGxlKXJiY2xhc3MubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiIG5vdCBmb3VuZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWdub3JlLCBrZWVwIGxvb2tpbmcKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihidW5kbGVOYW1lICsgIiBub3QgZm91bmQuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09IHByaXZhdGVzID09PT09PT09PT0KKworICAgIC8vIEZsYWcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBkZWJ1Z2dpbmcgY29kZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJsb2NhbGVkYXRhIik7CisKKyAgICAvLyBDYWNoZSBmb3IgZ2V0QXZhaWxhYmxlTG9jYWxlcworICAgIHByaXZhdGUgc3RhdGljIFNvZnRSZWZlcmVuY2UgR0VUX0FWQUlMQUJMRV9DQUNIRTsKKworICAgIC8vIENhY2hlIGZvciBSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0aW9uCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBCVU5ETEVfQ0FDSEU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBsb2FkRnJvbUNhY2hlKFN0cmluZyBrZXkpIHsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IChNYXApQlVORExFX0NBQ0hFLmdldCgpOworICAgICAgICAgICAgaWYgKG0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoUmVzb3VyY2VCdW5kbGUpbS5nZXQoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZFRvQ2FjaGUoU3RyaW5nIGtleSwgUmVzb3VyY2VCdW5kbGUgYikgeworICAgICAgICBNYXAgbSA9IG51bGw7CisgICAgICAgIGlmIChCVU5ETEVfQ0FDSEUgIT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IChNYXApQlVORExFX0NBQ0hFLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgQlVORExFX0NBQ0hFID0gbmV3IFNvZnRSZWZlcmVuY2UobSk7CisgICAgICAgIH0KKyAgICAgICAgbS5wdXQoa2V5LCBiKTsKKyAgICB9CisKKyAgICAvLyByZWN1cnNpdmVseSBidWlsZCBidW5kbGUKKyAgICBwcml2YXRlIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0ZShTdHJpbmcgbmFtZSkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSBiID0gbG9hZEZyb21DYWNoZShuYW1lKTsKKyAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcGFyZW50ID0gbnVsbDsKKyAgICAgICAgICAgIGludCBpID0gbmFtZS5sYXN0SW5kZXhPZignXycpOworCisgICAgICAgICAgICAvLyBUT0RPOiBjb252ZXJ0IHRoaXMgdG8gdXNlIFVMb2NhbGUKKyAgICAgICAgICAgIGZpbmFsIExvY2FsZSByb290TG9jYWxlID0gbmV3IExvY2FsZSgiIiwgIiIsICIiKTsKKyAKKyAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcGFyZW50ID0gaW5zdGFudGlhdGUobmFtZS5zdWJzdHJpbmcoMCwgaSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gcm9vdExvY2FsZTsKKyAgICAgICAgICAgICAgICBpID0gbmFtZS5pbmRleE9mKCdfJyk7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShuYW1lLnN1YnN0cmluZyhpKzEpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgCQlDbGFzc0xvYWRlciBjbCA9IElDVUxvY2FsZURhdGEuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKKyAgICAgICAgCQlpZiAoY2wgPT0gbnVsbCkgeworICAgICAgICAJCSAgICAvLyB3ZSdyZSBvbiB0aGUgYm9vdHN0cmFwCisgICAgICAgIAkJICAgIGNsID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTsKKyAgICAgICAgCQl9CisgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gY2wubG9hZENsYXNzKG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjbHMpKSB7CisgICAgICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBieCA9IChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpY2xzLm5ld0luc3RhbmNlKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBieC5zZXRQYXJlbnRYKHBhcmVudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnguaWN1TG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgICAgICAgICBiID0gYng7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiaWN1bGlzdHJlc291cmNlYnVuZGxlOiAiICsgbmFtZSArICIgaXMgIiArIGIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGIgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUobmFtZS5zdWJzdHJpbmcoMCwgaSksIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigicmVzb3VyY2VidW5kbGU6ICIgKyBuYW1lICsgIiBpcyAiICsgYik7CisgICAgICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgICAgICBhZGRUb0NhY2hlKG5hbWUsIGIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICAgICAgaW50IGogPSBuYW1lLmluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICBpbnQgayA9IG5hbWUubGFzdEluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICAvLyBpZiBhIGJvZ3VzIGxvY2FsZSBpcyBwYXNzZWQgdGhlbiB0aGUgcGFyZW50IHNob3VsZCBiZQorICAgICAgICAgICAgICAgIC8vIHRoZSBkZWZhdWx0IGxvY2FsZSBub3QgdGhlIHJvb3QgbG9jYWxlIQorICAgICAgICAgICAgICAgIGlmKGs9PWogJiYgaiE9LTEpeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBuYW1lLnN1YnN0cmluZyhqKzEsbmFtZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWZhdWx0TmFtZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZighbG9jTmFtZS5lcXVhbHMocm9vdExvY2FsZS50b1N0cmluZygpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TmFtZS5pbmRleE9mKGxvY05hbWUpPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYnVuZGxlID0gIG5hbWUuc3Vic3RyaW5nKDAsaik7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBpbnN0YW50aWF0ZShidW5kbGUrIl8iK2RlZmF1bHROYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiID0gcGFyZW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vaWYoYj09bnVsbCl7CisgICAgICAgIC8vICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIGRhdGEgIituYW1lLCIiLCIiKTsKKyAgICAgICAgLy99CisgICAgICAgIHJldHVybiBiOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0aWxsIG5lZWQgcGVybWlzc2lvbnMgdG8gdXNlIG91ciBvd24gY2xhc3MgbG9hZGVyLCBpcyB0aGVyZSBubyB3YXkKKyAgICAgKiB0byBsb2FkIGNsYXNzIHJlc291cmNlcyBmcm9tIG5ldyBsb2NhdGlvbnMgdGhhdCBhcmVuJ3QgYWxyZWFkeSBvbiB0aGUKKyAgICAgKiBjbGFzcyBwYXRoPworICAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0ZShTdHJpbmcgbmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaWYgKGxvY2FsZU5hbWUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAiXyIgKyBsb2NhbGVOYW1lOworICAgICAgICB9CisgICAgICAgIFJlc291cmNlQnVuZGxlIGIgPSAgaW5zdGFudGlhdGUobmFtZSk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgZGF0YSAiK25hbWUsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBjcmVhdGVMb2NhbGVOYW1lU2V0KFN0cmluZyBidW5kbGVOYW1lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBpbmRleCA9IGdldFJlc291cmNlQnVuZGxlKGJ1bmRsZU5hbWUsICJpbmRleCIpOworICAgICAgICAgICAgT2JqZWN0W11bXSBsb2NhbGVTdHJpbmdzID0gKE9iamVjdFtdW10pIGluZGV4LmdldE9iamVjdCgiSW5zdGFsbGVkTG9jYWxlcyIpOworICAgICAgICAgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSBuZXcgU3RyaW5nW2xvY2FsZVN0cmluZ3MubGVuZ3RoXTsKKworICAgICAgICAgICAgLy8gYmFyZiBnYWcgY2hva2Ugc3BpdCBoYWNrLi4uCisgICAgICAgICAgICAvLyBzaW5jZSBqYXZhJ3MgTG9jYWxlICdmaXhlcycgdGhlIGxvY2FsZSBzdHJpbmcgZm9yIHNvbWUgbG9jYWxlcywKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gZml4IG91ciBuYW1lcyB0byBtYXRjaCwgb3RoZXJ3aXNlIHRoZSBMb2NhbGVbXSBsaXN0CisgICAgICAgICAgICAvLyB3b24ndCBtYXRjaCB0aGUgbG9jYWxlIG5hbWUgc2V0LiAgV2hhdCB3ZXJlIHRoZXkgdGhpbmtpbmc/IT8KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVOYW1lc1tpXSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoKFN0cmluZylsb2NhbGVTdHJpbmdzW2ldWzBdKS50b1N0cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBIYXNoU2V0IHNldCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBzZXQuYWRkQWxsKEFycmF5cy5hc0xpc3QobG9jYWxlTmFtZXMpKTsKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoc2V0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjb3VsZG4ndCBmaW5kIGluZGV4IGZvciBidW5kbGVOYW1lOiAiICsgYnVuZGxlTmFtZSk7CisgICAgICAgICAgICBUaHJlYWQuZHVtcFN0YWNrKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLkVNUFRZX1NFVDsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZVtdIGNyZWF0ZUxvY2FsZUxpc3QoU3RyaW5nIGJ1bmRsZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGluZGV4ID0gZ2V0UmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgImluZGV4Iik7CisgICAgICAgICAgICBPYmplY3RbXVtdIGxvY2FsZVN0cmluZ3MgPSAoT2JqZWN0W11bXSkgaW5kZXguZ2V0T2JqZWN0KCJJbnN0YWxsZWRMb2NhbGVzIik7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gbmV3IExvY2FsZVtsb2NhbGVTdHJpbmdzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZVN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVzW2ldID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSgoU3RyaW5nKWxvY2FsZVN0cmluZ3NbaV1bMF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiY291bGRuJ3QgZmluZCBpbmRleCBmb3IgYnVuZGxlTmFtZTogIiArIGJ1bmRsZU5hbWUpOworICAgICAgICAgICAgVGhyZWFkLmR1bXBTdGFjaygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlWzBdOworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTG9jYWxlU2VydmljZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTG9jYWxlU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjc0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSw2MTEgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIElDVUxvY2FsZVNlcnZpY2UgZXh0ZW5kcyBJQ1VTZXJ2aWNlIHsKKyAgICBwcml2YXRlIFVMb2NhbGUgZmFsbGJhY2tMb2NhbGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZmFsbGJhY2tMb2NhbGVOYW1lOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIElDVUxvY2FsZVNlcnZpY2UuCisgICAgICovCisgICAgcHVibGljIElDVUxvY2FsZVNlcnZpY2UoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIElDVUxvY2FsZVNlcnZpY2Ugd2l0aCBhIG5hbWUgKHVzZWZ1bCBmb3IgZGVidWdnaW5nKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVTG9jYWxlU2VydmljZShTdHJpbmcgbmFtZSkgeworICAgICAgICBzdXBlcihuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIGdldChVTG9jYWxlLCBpbnQsIFVMb2NhbGVbXSkgd2l0aCBLSU5EX0FOWSBmb3Iga2luZCBhbmQgbnVsbCBmb3IKKyAgICAgKiBhY3R1YWxSZXR1cm4uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldChsb2NhbGUsIExvY2FsZUtleS5LSU5EX0FOWSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiBnZXQoVUxvY2FsZSwgaW50LCBVTG9jYWxlW10pIHdpdGggYSBudWxsIGFjdHVhbFJldHVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgcmV0dXJuIGdldChsb2NhbGUsIGtpbmQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogZ2V0KFVMb2NhbGUsIGludCwgVUxvY2FsZVtdKSB3aXRoIEtJTkRfQU5ZIGZvciBraW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFVMb2NhbGUgbG9jYWxlLCBVTG9jYWxlW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIHJldHVybiBnZXQobG9jYWxlLCBMb2NhbGVLZXkuS0lORF9BTlksIGFjdHVhbFJldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgdXNlcworICAgICAqIGNyZWF0ZUtleShVTG9jYWxlLnRvU3RyaW5nKCksIGtpbmQpIHRvIGNyZWF0ZSBhIGtleSwgY2FsbHMgZ2V0S2V5LCBhbmQgdGhlbgorICAgICAqIGlmIGFjdHVhbFJldHVybiBpcyBub3QgbnVsbCwgcmV0dXJucyB0aGUgYWN0dWFsUmVzdWx0IGZyb20KKyAgICAgKiBnZXRLZXkgKHN0cmlwcGluZyBhbnkgcHJlZml4KSBpbnRvIGEgVUxvY2FsZS4gIAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCwgVUxvY2FsZVtdIGFjdHVhbFJldHVybikgeworICAgICAgICBLZXkga2V5ID0gY3JlYXRlS2V5KGxvY2FsZSwga2luZCk7CisgICAgICAgIGlmIChhY3R1YWxSZXR1cm4gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGdldEtleShrZXkpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gdGVtcCA9IG5ldyBTdHJpbmdbMV07CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBnZXRLZXkoa2V5LCB0ZW1wKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgbiA9IHRlbXBbMF0uaW5kZXhPZigiLyIpOworICAgICAgICAgICAgaWYgKG4gPj0gMCkgeworICAgICAgICAgICAgICAgIHRlbXBbMF0gPSB0ZW1wWzBdLnN1YnN0cmluZyhuKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWN0dWFsUmV0dXJuWzBdID0gbmV3IFVMb2NhbGUodGVtcFswXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIHJlZ2lzdGVyT2JqZWN0KE9iamVjdCwgVUxvY2FsZSwgaW50IGtpbmQsIGJvb2xlYW4gdmlzaWJsZSkKKyAgICAgKiBwYXNzaW5nIEtJTkRfQU5ZIGZvciB0aGUga2luZCwgYW5kIHRydWUgZm9yIHRoZSB2aXNpYmlsaXR5LgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiByZWdpc3Rlck9iamVjdChvYmosIGxvY2FsZSwgTG9jYWxlS2V5LktJTkRfQU5ZLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIHJlZ2lzdGVyT2JqZWN0KE9iamVjdCwgVUxvY2FsZSwgaW50IGtpbmQsIGJvb2xlYW4gdmlzaWJsZSkKKyAgICAgKiBwYXNzaW5nIEtJTkRfQU5ZIGZvciB0aGUga2luZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBVTG9jYWxlIGxvY2FsZSwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJldHVybiByZWdpc3Rlck9iamVjdChvYmosIGxvY2FsZSwgTG9jYWxlS2V5LktJTkRfQU5ZLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIHJlZ2lzdGVyT2JqZWN0KE9iamVjdCwgVUxvY2FsZSwgaW50IGtpbmQsIGJvb2xlYW4gdmlzaWJsZSkKKyAgICAgKiBwYXNzaW5nIHRydWUgZm9yIHRoZSB2aXNpYmlsaXR5LgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXJPYmplY3Qob2JqLCBsb2NhbGUsIGtpbmQsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzICBpbnN0YW50aWF0ZXMKKyAgICAgKiBhIFNpbXBsZUxvY2FsZUtleUZhY3RvcnksIGFuZCByZWdpc3RlcnMgdGhlIGZhY3RvcnkuCisgICAgICovCisgICAgcHVibGljIEZhY3RvcnkgcmVnaXN0ZXJPYmplY3QoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgRmFjdG9yeSBmYWN0b3J5ID0gbmV3IFNpbXBsZUxvY2FsZUtleUZhY3Rvcnkob2JqLCBsb2NhbGUsIGtpbmQsIHZpc2libGUpOworICAgICAgICByZXR1cm4gcmVnaXN0ZXJGYWN0b3J5KGZhY3RvcnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyByZXR1cm5zIHRoZSBzdGFuZGFyZAorICAgICAqIExvY2FsZSBsaXN0LCBidWlsdCBmcm9tIHRoZSBTZXQgb2YgdmlzaWJsZSBpZHMuCisgICAgICovCisgICAgcHVibGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIC8vIFRPRE8gbWFrZSB0aGlzIHdyYXAgZ2V0QXZhaWxhYmxlVUxvY2FsZXMgbGF0ZXIKKyAgICAgICAgU2V0IHZpc0lEcyA9IGdldFZpc2libGVJRHMoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHZpc0lEcy5pdGVyYXRvcigpOworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gbmV3IExvY2FsZVt2aXNJRHMuc2l6ZSgpXTsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKChTdHJpbmcpaXRlci5uZXh0KCkpOworICAgICAgICAgICAgbG9jYWxlc1tuKytdID0gbG9jOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb2NhbGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyByZXR1cm5zIHRoZSBzdGFuZGFyZAorICAgICAqIFVMb2NhbGUgbGlzdCwgYnVpbHQgZnJvbSB0aGUgU2V0IG9mIHZpc2libGUgaWRzLgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIFNldCB2aXNJRHMgPSBnZXRWaXNpYmxlSURzKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2aXNJRHMuaXRlcmF0b3IoKTsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBuZXcgVUxvY2FsZVt2aXNJRHMuc2l6ZSgpXTsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGxvY2FsZXNbbisrXSA9IG5ldyBVTG9jYWxlKChTdHJpbmcpaXRlci5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb2NhbGVzOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQSBzdWJjbGFzcyBvZiBLZXkgdGhhdCBpbXBsZW1lbnRzIGEgbG9jYWxlIGZhbGxiYWNrIG1lY2hhbmlzbS4KKyAgICAgKiBUaGUgZmlyc3QgbG9jYWxlIHRvIHNlYXJjaCBmb3IgaXMgdGhlIGxvY2FsZSBwcm92aWRlZCBieSB0aGUKKyAgICAgKiBjbGllbnQsIGFuZCB0aGUgZmFsbGJhY2sgbG9jYWxlIHRvIHNlYXJjaCBmb3IgaXMgdGhlIGN1cnJlbnQKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4gIElmIGEgcHJlZml4IGlzIHByZXNlbnQsIHRoZSBjdXJyZW50RGVzY3JpcHRvcgorICAgICAqIGluY2x1ZGVzIGl0IGJlZm9yZSB0aGUgbG9jYWxlIHByb3Blciwgc2VwYXJhdGVkIGJ5ICIvIi4gIFRoaXMKKyAgICAgKiBpcyB0aGUgZGVmYXVsdCBrZXkgaW5zdGFudGlhdGVkIGJ5IElDVUxvY2FsZVNlcnZpY2UuPC9wPgorICAgICAqCisgICAgICogPHA+Q2Fub25pY2FsaXphdGlvbiBhZGp1c3RzIHRoZSBsb2NhbGUgc3RyaW5nIHNvIHRoYXQgdGhlCisgICAgICogc2VjdGlvbiBiZWZvcmUgdGhlIGZpcnN0IHVuZGVyc3RvcmUgaXMgaW4gbG93ZXIgY2FzZSwgYW5kIHRoZSByZXN0CisgICAgICogaXMgaW4gdXBwZXIgY2FzZSwgd2l0aCBubyB0cmFpbGluZyB1bmRlcnNjb3Jlcy48L3A+IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTG9jYWxlS2V5IGV4dGVuZHMgSUNVU2VydmljZS5LZXkgeworICAgICAgICBwcml2YXRlIGludCBraW5kOworICAgICAgICBwcml2YXRlIGludCB2YXJzdGFydDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcHJpbWFyeUlEOworICAgICAgICBwcml2YXRlIFN0cmluZyBmYWxsYmFja0lEOworICAgICAgICBwcml2YXRlIFN0cmluZyBjdXJyZW50SUQ7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9BTlkgPSAtMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgTG9jYWxlS2V5IHdpdGggY2Fub25pY2FsIHByaW1hcnkgYW5kIGZhbGxiYWNrIElEcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlS2V5IGNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhTdHJpbmcgcHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsRmFsbGJhY2tJRCkgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhwcmltYXJ5SUQsIGNhbm9uaWNhbEZhbGxiYWNrSUQsIEtJTkRfQU5ZKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBMb2NhbGVLZXkgd2l0aCBjYW5vbmljYWwgcHJpbWFyeSBhbmQgZmFsbGJhY2sgSURzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBMb2NhbGVLZXkgY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKFN0cmluZyBwcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lELCBpbnQga2luZCkgeworICAgICAgICAgICAgaWYgKHByaW1hcnlJRCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJpbWFyeUlELmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBwcmltYXJ5SUQgPSAicm9vdCI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgY2Fub25pY2FsUHJpbWFyeUlEID0gVUxvY2FsZS5nZXROYW1lKHByaW1hcnlJRCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IExvY2FsZUtleShwcmltYXJ5SUQsIGNhbm9uaWNhbFByaW1hcnlJRCwgY2Fub25pY2FsRmFsbGJhY2tJRCwga2luZCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgTG9jYWxlS2V5IHdpdGggY2Fub25pY2FsIHByaW1hcnkgYW5kIGZhbGxiYWNrIElEcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlS2V5IGNyZWF0ZVdpdGhDYW5vbmljYWwoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lELCBpbnQga2luZCkgeworICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgY2Fub25pY2FsUHJpbWFyeUlEID0gbG9jYWxlLmdldE5hbWUoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYWxlS2V5KGNhbm9uaWNhbFByaW1hcnlJRCwgY2Fub25pY2FsUHJpbWFyeUlELCBjYW5vbmljYWxGYWxsYmFja0lELCBraW5kKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBQcmltYXJ5SUQgaXMgdGhlIHVzZXIncyByZXF1ZXN0ZWQgbG9jYWxlIHN0cmluZywKKyAgICAgICAgICogY2Fub25pY2FsUHJpbWFyeUlEIGlzIHRoaXMgc3RyaW5nIGluIGNhbm9uaWNhbCBmb3JtLAorICAgICAgICAgKiBmYWxsYmFja0lEIGlzIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlJ3Mgc3RyaW5nIGluCisgICAgICAgICAqIGNhbm9uaWNhbCBmb3JtLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIExvY2FsZUtleShTdHJpbmcgcHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsUHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsRmFsbGJhY2tJRCwgaW50IGtpbmQpIHsKKyAgICAgICAgICAgIHN1cGVyKHByaW1hcnlJRCk7CisKKyAgICAgICAgICAgIHRoaXMua2luZCA9IGtpbmQ7CisgICAgICAgICAgICBpZiAoY2Fub25pY2FsUHJpbWFyeUlEID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnByaW1hcnlJRCA9ICIiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aGlzLnByaW1hcnlJRCA9IGNhbm9uaWNhbFByaW1hcnlJRDsKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnN0YXJ0ID0gdGhpcy5wcmltYXJ5SUQuaW5kZXhPZignQCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRoaXMucHJpbWFyeUlEID09ICIiKSB7CisgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0lEID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbm9uaWNhbEZhbGxiYWNrSUQgPT0gbnVsbCB8fCB0aGlzLnByaW1hcnlJRC5lcXVhbHMoY2Fub25pY2FsRmFsbGJhY2tJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0lEID0gIiI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0lEID0gY2Fub25pY2FsRmFsbGJhY2tJRDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMuY3VycmVudElEID0gdmFyc3RhcnQgPT0gLTEgPyB0aGlzLnByaW1hcnlJRCA6IHRoaXMucHJpbWFyeUlELnN1YnN0cmluZygwLCB2YXJzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBwcmVmaXggYXNzb2NpYXRlZCB3aXRoIHRoZSBraW5kLCBvciBudWxsIGlmIHRoZSBraW5kIGlzIEtJTkRfQU5ZLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBwcmVmaXgoKSB7CisgICAgICAgICAgICByZXR1cm4ga2luZCA9PSBLSU5EX0FOWSA/IG51bGwgOiBJbnRlZ2VyLnRvU3RyaW5nKGtpbmQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBraW5kIGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBraW5kKCkgeworICAgICAgICAgICAgcmV0dXJuIGtpbmQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBvcmlnaW5hbCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY2Fub25pY2FsSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gcHJpbWFyeUlEOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgY3VycmVudCBJRCwgb3IgbnVsbCBpZiBubyBjdXJyZW50IGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50SUQoKSB7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudElEOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgY3VycmVudCBkZXNjcmlwdG9yLCBvciBudWxsIGlmIG5vIGN1cnJlbnQgaWQuCisgICAgICAgICAqIEluY2x1ZGVzIHRoZSBrZXl3b3Jkcywgd2hlcmVhcyB0aGUgSUQgZG9lcyBub3QgaW5jbHVkZSBrZXl3b3Jkcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY3VycmVudERlc2NyaXB0b3IoKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY3VycmVudElEKCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAiLyIgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHZhcnN0YXJ0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBwcmltYXJ5SUQuc3Vic3RyaW5nKHZhcnN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGtpbmQgIT0gS0lORF9BTlkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJlZml4KCkgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gcmV0dXJuIHRoZSBsb2NhbGUgY29ycmVzcG9uZGluZyB0byB0aGUgKGNhbm9uaWNhbCkgb3JpZ2luYWwgSUQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVUxvY2FsZSBjYW5vbmljYWxMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUocHJpbWFyeUlEKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gcmV0dXJuIHRoZSB1bG9jYWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIChjYW5vbmljYWwpIGN1cnJlbnRJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGN1cnJlbnRMb2NhbGUoKSB7CisgICAgICAgICAgICBpZiAodmFyc3RhcnQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoY3VycmVudElEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGN1cnJlbnRJRCArIHByaW1hcnlJRC5zdWJzdHJpbmcodmFyc3RhcnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGUga2V5IGhhcyBhIGZhbGxiYWNrLCBtb2RpZnkgdGhlIGtleSBhbmQgcmV0dXJuIHRydWUsCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuPC9wPgorICAgICAgICAgKgorICAgICAgICAgKiA8cD5GaXJzdCBmYWxscyBiYWNrIHRocm91Z2ggdGhlIHByaW1hcnkgSUQsIHRoZW4gdGhyb3VnaAorICAgICAgICAgKiB0aGUgZmFsbGJhY2tJRC4gIFRoZSBmaW5hbCBmYWxsYmFjayBpcyAicm9vdCIKKyAgICAgICAgICogdW5sZXNzIHRoZSBwcmltYXJ5IGlkIHdhcyAicm9vdCIsIGluIHdoaWNoIGNhc2UKKyAgICAgICAgICogdGhlcmUgaXMgbm8gZmFsbGJhY2suICAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGZhbGxiYWNrKCkgeworICAgICAgICAgICAgaW50IHggPSBjdXJyZW50SUQubGFzdEluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgIGlmICh4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKC0teCA+PSAwICYmIGN1cnJlbnRJRC5jaGFyQXQoeCkgPT0gJ18nKSB7IC8vIGhhbmRsZSB6aF9fUElOWUlOCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN1cnJlbnRJRCA9IGN1cnJlbnRJRC5zdWJzdHJpbmcoMCwgeCsxKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmYWxsYmFja0lEICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tJRC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJRCA9ICJyb290IjsKKyAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tJRCA9IG51bGw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudElEID0gZmFsbGJhY2tJRDsKKyAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tJRCA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRJRCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgYSBrZXkgY3JlYXRlZCBmcm9tIGlkIHdvdWxkIGV2ZW50dWFsbHkgZmFsbGJhY2sgdG8gbWF0Y2ggdGhlIAorICAgICAgICAgKiBjYW5vbmljYWwgSUQgb2YgdGhpcyBrZXksIHJldHVybiB0cnVlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNGYWxsYmFja09mKFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKGNhbm9uaWNhbElEKCksIGlkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgc3ViY2xhc3Mgb2YgRmFjdG9yeSB0aGF0IHVzZXMgTG9jYWxlS2V5cy4gIElmICd2aXNpYmxlJyB0aGUKKyAgICAgKiBmYWN0b3J5IHJlcG9ydHMgaXRzIElEcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIExvY2FsZUtleUZhY3RvcnkgaW1wbGVtZW50cyBGYWN0b3J5IHsKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiB2aXNpYmxlOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBWSVNJQkxFID0gdHJ1ZTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIElOVklTSUJMRSA9IGZhbHNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RvciB1c2VkIGJ5IHN1YmNsYXNzZXMuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlS2V5RmFjdG9yeShib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yIHVzZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBMb2NhbGVLZXlGYWN0b3J5KGJvb2xlYW4gdmlzaWJsZSwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEltcGxlbWVudCBzdXBlcmNsYXNzIGFic3RyYWN0IG1ldGhvZC4gIFRoaXMgY2hlY2tzIHRoZSBjdXJyZW50SUQgb2YKKyAgICAgICAgICogdGhlIGtleSBhZ2FpbnN0IHRoZSBzdXBwb3J0ZWQgSURzLCBhbmQgcGFzc2VzIHRoZSBjYW5vbmljYWxMb2NhbGUgYW5kCisgICAgICAgICAqIGtpbmQgb2ZmIHRvIGhhbmRsZUNyZWF0ZSAod2hpY2ggc3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVzS2V5KGtleSkpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGVLZXkgbGtleSA9IChMb2NhbGVLZXkpa2V5OworICAgICAgICAgICAgICAgIGludCBraW5kID0gbGtleS5raW5kKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gbGtleS5jdXJyZW50TG9jYWxlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZSh1bG9jLCBraW5kLCBzZXJ2aWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJmYWN0b3J5OiAiICsgdGhpcyArICIgZGlkIG5vdCBzdXBwb3J0IGlkOiAiICsga2V5LmN1cnJlbnRJRCgpKTsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oInN1cHBvcnRlZCBpZHM6ICIgKyBnZXRTdXBwb3J0ZWRJRHMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGhhbmRsZXNLZXkoS2V5IGtleSkgeworICAgICAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0ga2V5LmN1cnJlbnRJRCgpOworICAgICAgICAgICAgICAgIFNldCBzdXBwb3J0ZWQgPSBnZXRTdXBwb3J0ZWRJRHMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwcG9ydGVkLmNvbnRhaW5zKGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBPdmVycmlkZSBvZiBzdXBlcmNsYXNzIG1ldGhvZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworICAgICAgICAgICAgU2V0IGNhY2hlID0gZ2V0U3VwcG9ydGVkSURzKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gY2FjaGUuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChpZCwgdGhpcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlbW92ZShpZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhIGxvY2FsaXplZCBuYW1lIGZvciB0aGUgbG9jYWxlIHJlcHJlc2VudGVkIGJ5IGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgaWYgdGhlIHVzZXIgY2FsbGVkIHRoaXMgb24gdXMsIHdlIG11c3QgaGF2ZSBoYW5kbGVkIHNvbWUgZmFsbGJhY2sgb2YgdGhpcyBpZAorICAgICAgICAgICAgLy8gICAgICAgICAgaWYgKGlzU3VwcG9ydGVkSUQoaWQpKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKGlkKTsKKyAgICAgICAgICAgIHJldHVybiBsb2MuZ2V0RGlzcGxheU5hbWUobG9jYWxlKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLyoqCisgICAgICAgICAqIFV0aWxpdHkgbWV0aG9kIHVzZWQgYnkgY3JlYXRlKEtleSwgSUNVU2VydmljZSkuICBTdWJjbGFzc2VzIGNhbgorICAgICAgICAgKiBpbXBsZW1lbnQgdGhpcyBpbnN0ZWFkIG9mIGNyZWF0ZS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgbG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBpZCBpcyBvbmUgdGhlIGZhY3Rvcnkgc3VwcG9ydHMgKHZpc2libGUgb3IgCisgICAgICAgICAqIG90aGVyd2lzZSkuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc1N1cHBvcnRlZElEKFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFN1cHBvcnRlZElEcygpLmNvbnRhaW5zKGlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgc2V0IG9mIGlkcyB0aGF0IHRoaXMgZmFjdG9yeSBzdXBwb3J0cyAodmlzaWJsZSBvciAKKyAgICAgICAgICogb3RoZXJ3aXNlKS4gIFRoaXMgY2FuIGJlIGNhbGxlZCBvZnRlbiBhbmQgbWlnaHQgbmVlZCB0byBiZQorICAgICAgICAgKiBjYWNoZWQgaWYgaXQgaXMgZXhwZW5zaXZlIHRvIGNyZWF0ZS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTZXQgZ2V0U3VwcG9ydGVkSURzKCkgeworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLkVNUFRZX1NFVDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBGb3IgZGVidWdnaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgbmFtZTogIik7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgdmlzaWJsZTogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHZpc2libGUpOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBMb2NhbGVLZXlGYWN0b3J5IHRoYXQganVzdCByZXR1cm5zIGEgc2luZ2xlIG9iamVjdCBmb3IgYSBraW5kL2xvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qgb2JqOworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBpZDsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQga2luZDsKKworICAgICAgICAvLyBUT0RPOiByZW1vdmUgd2hlbiB3ZSBubyBsb25nZXIgbmVlZCB0aGlzCisgICAgICAgIHB1YmxpYyBTaW1wbGVMb2NhbGVLZXlGYWN0b3J5KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgICAgICB0aGlzKG9iaiwgbG9jYWxlLCBraW5kLCB2aXNpYmxlLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTaW1wbGVMb2NhbGVLZXlGYWN0b3J5KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlLCBTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgc3VwZXIodmlzaWJsZSwgbmFtZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMub2JqID0gb2JqOworICAgICAgICAgICAgdGhpcy5pZCA9IGxvY2FsZS5nZXRCYXNlTmFtZSgpOworICAgICAgICAgICAgdGhpcy5raW5kID0ga2luZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBzZXJ2aWNlIG9iamVjdCBpZiBraW5kL2xvY2FsZSBtYXRjaC4gIFNlcnZpY2UgaXMgbm90IHVzZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIExvY2FsZUtleSBsa2V5ID0gKExvY2FsZUtleSlrZXk7CisgICAgICAgICAgICBpZiAoa2luZCA9PSBMb2NhbGVLZXkuS0lORF9BTlkgfHwga2luZCA9PSBsa2V5LmtpbmQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXlJRCA9IGxrZXkuY3VycmVudElEKCk7CisgICAgICAgICAgICAgICAgaWYgKGlkLmVxdWFscyhrZXlJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzU3VwcG9ydGVkSUQoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pZC5lcXVhbHMoaWQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmlzaWJsZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoaWQsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVtb3ZlKGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzdXBlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgaWQ6ICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChpZCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsIGtpbmQ6ICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChraW5kKTsKKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgTG9jYWxlS2V5RmFjdG9yeSB0aGF0IGNyZWF0ZXMgYSBzZXJ2aWNlIGJhc2VkIG9uIHRoZSBJQ1UgbG9jYWxlIGRhdGEuCisgICAgICogVGhpcyBpcyBhIGJhc2UgY2xhc3MgZm9yIG1vc3QgSUNVIGZhY3Rvcmllcy4gIFN1YmNsYXNzZXMgaW5zdGFudGlhdGUgaXQKKyAgICAgKiB3aXRoIGEgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGJ1bmRsZSBuYW1lLCB3aGljaCBkZXRlcm1pbmVzIHRoZSBzdXBwb3J0ZWQKKyAgICAgKiBJRHMuICBTdWJjbGFzc2VzIHRoZW4gb3ZlcnJpZGUgaGFuZGxlQ3JlYXRlIHRvIGNyZWF0ZSB0aGUgYWN0dWFsIHNlcnZpY2UKKyAgICAgKiBvYmplY3QuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGEgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IGV4dGVuZHMgTG9jYWxlS2V5RmFjdG9yeSB7CisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgYnVuZGxlTmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVuaWVuY2UgY29uc3RydWN0b3IgdGhhdCB1c2VzIHRoZSBtYWluIElDVSBidW5kbGUgbmFtZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoKSB7CisgICAgICAgICAgICB0aGlzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgc2VydmljZSBmYWN0b3J5IGJhc2VkIG9uIElDVSByZXNvdXJjZSBkYXRhIGluIHJlc291cmNlcworICAgICAgICAgKiB3aXRoIHRoZSBnaXZlbiBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeShTdHJpbmcgYnVuZGxlTmFtZSkgeworICAgICAgICAgICAgc3VwZXIodHJ1ZSk7CisKKyAgICAgICAgICAgIHRoaXMuYnVuZGxlTmFtZSA9IGJ1bmRsZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBzdXBwb3J0ZWQgSURzLiAgVGhpcyBpcyB0aGUgc2V0IG9mIGFsbCBsb2NhbGUgbmFtZXMgZm9yIHRoZSBidW5kbGVOYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFNldCBnZXRTdXBwb3J0ZWRJRHMoKSB7CisgICAgICAgICAgICAvLyBub3RlOiAicm9vdCIgaXMgb25lIG9mIHRoZSBpZHMsIGJ1dCAiIiBpcyBub3QuICBNdXN0IGNvbnZlcnQgVUxvY2FsZS5ST09ULgorICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEZ1bGxMb2NhbGVOYW1lU2V0KGJ1bmRsZU5hbWUpOyAKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBPdmVycmlkZSBvZiBzdXBlcmNsYXNzIG1ldGhvZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworICAgICAgICAgICAgU2V0IHZpc2libGVJRHMgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KGJ1bmRsZU5hbWUpOyAvLyBvbmx5IHZpc2libGUgaWRzCisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gdmlzaWJsZUlEcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KGlkLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgdGhlIHNlcnZpY2UuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgICAgICogZm9yIHRoZSBsb2NhbGUsIGlnbm9yaW5nIGtpbmQsIGFuZCBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCBsb2MpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci50b1N0cmluZygpICsgIiwgYnVuZGxlOiAiICsgYnVuZGxlTmFtZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmYWxsYmFjayBsb2NhbGUuICBJZiBpdCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHdhcworICAgICAqIGxhc3QgYWNjZXNzZWQsIHRoZSBzZXJ2aWNlIGNhY2hlIGlzIGNsZWFyZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB2YWxpZGF0ZUZhbGxiYWNrTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIGxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZiAobG9jICE9IGZhbGxiYWNrTG9jYWxlKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jICE9IGZhbGxiYWNrTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlID0gbG9jOworICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZU5hbWUgPSBsb2MuZ2V0QmFzZU5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY2xlYXJTZXJ2aWNlQ2FjaGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbGxiYWNrTG9jYWxlTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZUtleS5jcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soaWQsIHZhbGlkYXRlRmFsbGJhY2tMb2NhbGUoKSk7CisgICAgfQorCisgICAgcHVibGljIEtleSBjcmVhdGVLZXkoU3RyaW5nIGlkLCBpbnQga2luZCkgeworICAgICAgICByZXR1cm4gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhpZCwgdmFsaWRhdGVGYWxsYmFja0xvY2FsZSgpLCBraW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShVTG9jYWxlIGwsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbChsLCB2YWxpZGF0ZUZhbGxiYWNrTG9jYWxlKCksIGtpbmQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0OWIyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhCkBAIC0wLDAgKzEsMTcxIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkV2ZW50TGlzdGVuZXI7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisvKioKKyAqIDxwPkFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIGEgbm90aWZpY2F0aW9uIGZhY2lsaXR5LiAgQ2xpZW50cyBhZGQKKyAqIEV2ZW50TGlzdGVuZXJzIHdpdGggYWRkTGlzdGVuZXIgYW5kIHJlbW92ZSB0aGVtIHdpdGggcmVtb3ZlTGlzdGVuZXIuCisgKiBOb3RpZmllcnMgY2FsbCBub3RpZnlDaGFuZ2VkIHdoZW4gdGhleSB3aXNoIHRvIG5vdGlmeSBsaXN0ZW5lcnMuCisgKiBUaGlzIHF1ZXVlcyB0aGUgbGlzdGVuZXIgbGlzdCBvbiB0aGUgbm90aWZpY2F0aW9uIHRocmVhZCwgd2hpY2gKKyAqIGV2ZW50dWFsbHkgZGVxdWV1ZXMgdGhlIGxpc3QgYW5kIGNhbGxzIG5vdGlmeUxpc3RlbmVyIG9uIGVhY2gKKyAqIGxpc3RlbmVyIGluIHRoZSBsaXN0LjwvcD4KKyAqCisgKiA8cD5TdWJjbGFzc2VzIG92ZXJyaWRlIGFjY2VwdHNMaXN0ZW5lciBhbmQgbm90aWZ5TGlzdGVuZXIgCisgKiB0byBhZGQgdHlwZS1zYWZlIG5vdGlmaWNhdGlvbi4gIEFjY2VwdHNMaXN0ZW5lciBzaG91bGQgcmV0dXJuCisgKiB0cnVlIGlmIHRoZSBsaXN0ZW5lciBpcyBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZTsgSUNVTm90aWZpZXIKKyAqIGl0c2VsZiB3aWxsIGVuc3VyZSB0aGUgbGlzdGVuZXIgaXMgbm9uLW51bGwgYW5kIHRoYXQgdGhlCisgKiBpZGVudGljYWwgbGlzdGVuZXIgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBOb3RpZmllci4KKyAqIE5vdGlmeUxpc3RlbmVyIHNob3VsZCBjYXN0IHRoZSBsaXN0ZW5lciB0byB0aGUgYXBwcm9wcmlhdGUgCisgKiB0eXBlIGFuZCBjYWxsIHRoZSBhcHByb3ByaWF0ZSBtZXRob2Qgb24gdGhlIGxpc3RlbmVyLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSUNVTm90aWZpZXIgeworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IG5vdGlmeUxvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBOb3RpZnlUaHJlYWQgbm90aWZ5VGhyZWFkOworICAgIHByaXZhdGUgTGlzdCBsaXN0ZW5lcnM7CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBsaXN0ZW5lciB0byBiZSBub3RpZmllZCB3aGVuIG5vdGlmeUNoYW5nZWQgaXMgY2FsbGVkLgorICAgICAqIFRoZSBsaXN0ZW5lciBtdXN0IG5vdCBiZSBudWxsLiBBY2NlcHRzTGlzdGVuZXIgbXVzdCByZXR1cm4KKyAgICAgKiB0cnVlIGZvciB0aGUgbGlzdGVuZXIuICBBdHRlbXB0cyB0byBjb25jdXJyZW50bHkKKyAgICAgKiByZWdpc3RlciB0aGUgaWRlbnRpY2FsIGxpc3RlbmVyIG1vcmUgdGhhbiBvbmNlIHdpbGwgYmUKKyAgICAgKiBzaWxlbnRseSBpZ25vcmVkLiAgCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgIGlmIChsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjY2VwdHNMaXN0ZW5lcihsKSkgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChub3RpZnlMb2NrKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVycyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycyA9IG5ldyBBcnJheUxpc3QoNSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWRlbnRpdHkgZXF1YWxpdHkgY2hlY2sKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxpc3RlbmVycy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyLm5leHQoKSA9PSBsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGlzdGVuZXJzLmFkZChsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkxpc3RlbmVyIGludmFsaWQgZm9yIHRoaXMgbm90aWZpZXIuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9wIG5vdGlmeWluZyB0aGlzIGxpc3RlbmVyLiAgVGhlIGxpc3RlbmVyIG11c3QKKyAgICAgKiBub3QgYmUgbnVsbC4gIEF0dGVtcHMgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCBpcworICAgICAqIG5vdCByZWdpc3RlcmVkIHdpbGwgYmUgc2lsZW50bHkgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgaWYgKGwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgc3luY2hyb25pemVkIChub3RpZnlMb2NrKSB7CisgICAgICAgICAgICBpZiAobGlzdGVuZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBpZGVudGl0eSBlcXVhbGl0eSBjaGVjaworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIubmV4dCgpID09IGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXJzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXVlIGEgbm90aWZpY2F0aW9uIG9uIHRoZSBub3RpZmljYXRpb24gdGhyZWFkIGZvciB0aGUgY3VycmVudAorICAgICAqIGxpc3RlbmVycy4gIFdoZW4gdGhlIHRocmVhZCB1bnF1ZXVlcyB0aGUgbm90aWZpY2F0aW9uLCBub3RpZnlMaXN0ZW5lcgorICAgICAqIGlzIGNhbGxlZCBvbiBlYWNoIGxpc3RlbmVyIGZyb20gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbm90aWZ5Q2hhbmdlZCgpIHsKKyAgICAgICAgaWYgKGxpc3RlbmVycyAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vdGlmeVRocmVhZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlUaHJlYWQgPSBuZXcgTm90aWZ5VGhyZWFkKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5VGhyZWFkLnNldERhZW1vbih0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRocmVhZC5zdGFydCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRocmVhZC5xdWV1ZShsaXN0ZW5lcnMudG9BcnJheSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOb3RpZnlUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBwcml2YXRlIGZpbmFsIElDVU5vdGlmaWVyIG5vdGlmaWVyOworICAgICAgICBwcml2YXRlIGZpbmFsIExpc3QgcXVldWUgPSBuZXcgTGlua2VkTGlzdCgpOworCisgICAgICAgIE5vdGlmeVRocmVhZChJQ1VOb3RpZmllciBub3RpZmllcikgeworICAgICAgICAgICAgdGhpcy5ub3RpZmllciA9IG5vdGlmaWVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFF1ZXVlIHRoZSBub3RpZmljYXRpb24gb24gdGhlIHRocmVhZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHF1ZXVlKE9iamVjdFtdIGxpc3QpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHF1ZXVlLmFkZChsaXN0KTsKKyAgICAgICAgICAgICAgICBub3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBXYWl0IGZvciBhIG5vdGlmaWNhdGlvbiB0byBiZSBxdWV1ZWQsIHRoZW4gbm90aWZ5IGFsbAorICAgICAgICAgKiBsaXN0ZW5lcnMgbGlzdGVkIGluIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICBPYmplY3RbXSBsaXN0OworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChxdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gKE9iamVjdFtdKXF1ZXVlLnJlbW92ZSgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZXIubm90aWZ5TGlzdGVuZXIoKEV2ZW50TGlzdGVuZXIpbGlzdFtpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIGltcGxlbWVudCB0aGlzIHRvIHJldHVybiB0cnVlIGlmIHRoZSBsaXN0ZW5lciBpcworICAgICAqIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpOworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBpbXBsZW1lbnQgdGhpcyB0byBub3RpZnkgdGhlIGxpc3RlbmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMTUwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YQpAQCAtMCwwICsxLDI5NyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vIFNlZSBBbGxhbiBIb2x1YidzIDE5OTkgY29sdW1uIGluIEphdmFXb3JsZCwgYW5kIERvdWcgTGVhJ3MgY29kZSBmb3IgUldMb2NrcyB3aXRoIHdyaXRlciBwcmVmZXJlbmNlLgorCisKKy8qKgorICogPHA+QSBzaW1wbGUgUmVhZGVyL1dyaXRlciBsb2NrLiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgd2lsbAorICogYmUgbGl0dGxlIHdyaXRpbmcgY29udGVudGlvbi4gIEl0IGFsc28gZG9lc24ndCBhbGxvdyAKKyAqIGFjdGl2ZSByZWFkZXJzIHRvIGFjcXVpcmUgYW5kIHJlbGVhc2UgYSB3cml0ZSBsb2NrLCBvcgorICogZGVhbCB3aXRoIHByaW9yaXR5IGludmVyc2lvbiBpc3N1ZXMuPC9wPgorICoKKyAqIDxwPkFjY2VzcyB0byB0aGUgbG9jayBzaG91bGQgYmUgZW5jbG9zZWQgaW4gYSB0cnkvZmluYWxseSBibG9jaworICogaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2sgaXMgYWx3YXlzIHJlbGVhc2VkIGluIGNhc2Ugb2YKKyAqIGV4Y2VwdGlvbnM6PGJyPjxwcmU+CisgKiB0cnkgeworICogICAgIGxvY2suYWNxdWlyZVJlYWQoKTsKKyAqICAgICAvLyB1c2Ugc2VydmljZSBwcm90ZWN0ZWQgYnkgdGhlIGxvY2sKKyAqIH0KKyAqIGZpbmFsbHkgeworICogICAgIGxvY2sucmVsZWFzZVJlYWQoKTsKKyAqIH0KKyAqIDwvcHJlPjwvcD4KKyAqCisgKiA8cD5UaGUgbG9jayBwcm92aWRlcyB1dGlsaXR5IG1ldGhvZHMgZ2V0U3RhdHMgYW5kIGNsZWFyU3RhdHMKKyAqIHRvIHJldHVybiBzdGF0aXN0aWNzIG9uIHRoZSB1c2Ugb2YgdGhlIGxvY2suPC9wPgorICovCitwdWJsaWMgY2xhc3MgSUNVUldMb2NrIHsKKyAgICBwcml2YXRlIE9iamVjdCB3cml0ZUxvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBPYmplY3QgcmVhZExvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBpbnQgd3djOyAvLyB3YWl0aW5nIHdyaXRlcnMKKyAgICBwcml2YXRlIGludCByYzsgLy8gYWN0aXZlIHJlYWRlcnMsIC0xIGlmIHRoZXJlJ3MgYW4gYWN0aXZlIHdyaXRlcgorICAgIHByaXZhdGUgaW50IHdyYzsgLy8gd2FpdGluZyByZWFkZXJzCisKKyAgICBwcml2YXRlIFN0YXRzIHN0YXRzID0gbmV3IFN0YXRzKCk7IC8vIG1heWJlIGRvbid0IGluaXQgdG8gc3RhcnQuLi4KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGNsYXNzIHVzZWQgdG8gZ2F0aGVyIHN0YXRpc3RpY3Mgb24gdGhlIFJXTG9jay4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGNsYXNzIFN0YXRzIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiB0aW1lcyByZWFkIGFjY2VzcyBncmFudGVkIChyZWFkIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3JjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgY29uY3VycmVudCByZWFkIGFjY2VzcyBncmFudGVkIChtdWx0aXBsZSByZWFkIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX21yYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIGJsb2NrZWQgZm9yIHJlYWQgKHdhaXRpbmcgcmVhZGVyIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3dyYzsgLy8gd2FpdCBmb3IgcmVhZAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgd3JpdGUgYWNjZXNzIGdyYW50ZWQgKHdyaXRlciBjb3VudCkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IF93YzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIGJsb2NrZWQgZm9yIHdyaXRlICh3YWl0aW5nIHdyaXRlciBjb3VudCkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IF93d2M7CisKKyAgICAgICAgcHJpdmF0ZSBTdGF0cygpIHsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RhdHMoaW50IHJjLCBpbnQgbXJjLCBpbnQgd3JjLCBpbnQgd2MsIGludCB3d2MpIHsKKyAgICAgICAgICAgIHRoaXMuX3JjID0gcmM7CisgICAgICAgICAgICB0aGlzLl9tcmMgPSBtcmM7CisgICAgICAgICAgICB0aGlzLl93cmMgPSB3cmM7CisgICAgICAgICAgICB0aGlzLl93YyA9IHdjOworICAgICAgICAgICAgdGhpcy5fd3djID0gd3djOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdGF0cyhTdGF0cyByaHMpIHsKKyAgICAgICAgICAgIHRoaXMocmhzLl9yYywgcmhzLl9tcmMsIHJocy5fd3JjLCByaHMuX3djLCByaHMuX3d3Yyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIGxpc3RpbmcgYWxsIHRoZSBzdGF0cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gIiByYzogIiArIF9yYyArCisgICAgICAgICAgICAgICAgIiBtcmM6ICIgKyBfbXJjICsgCisgICAgICAgICAgICAgICAgIiB3cmM6ICIgKyBfd3JjICsKKyAgICAgICAgICAgICAgICAiIHdjOiAiICsgX3djICsKKyAgICAgICAgICAgICAgICAiIHd3YzogIiArIF93d2M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgc3RhdHMuICBSZXR1cm5zIGV4aXN0aW5nIHN0YXRzLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyByZXNldFN0YXRzKCkgeworICAgICAgICBTdGF0cyByZXN1bHQgPSBzdGF0czsKKyAgICAgICAgc3RhdHMgPSBuZXcgU3RhdHMoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgc3RhdHMgKHN0b3AgY29sbGVjdGluZyBzdGF0cykuICBSZXR1cm5zIGV4aXN0aW5nIHN0YXRzLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyBjbGVhclN0YXRzKCkgeworICAgICAgICBTdGF0cyByZXN1bHQgPSBzdGF0czsKKyAgICAgICAgc3RhdHMgPSBudWxsOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgY3VycmVudCBzdGF0cy4gIFRoaXMgZG9lcyBub3QgcmVzZXQgdGhlIHN0YXRzLgorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgU3RhdHMgZ2V0U3RhdHMoKSB7CisgICAgICAgIHJldHVybiBzdGF0cyA9PSBudWxsID8gbnVsbCA6IG5ldyBTdGF0cyhzdGF0cyk7CisgICAgfQorCisgICAgLy8gdXRpbGl0aWVzCisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdvdFJlYWQoKSB7CisgICAgICAgICsrcmM7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSB7CisgICAgICAgICAgICArK3N0YXRzLl9yYzsKKyAgICAgICAgICAgIGlmIChyYyA+IDEpICsrc3RhdHMuX21yYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdldFJlYWQoKSB7CisgICAgICAgIGlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZ290UmVhZCgpOworICAgICAgICB9CisgICAgICAgICsrd3JjOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiByZXRyeVJlYWQoKSB7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSArK3N0YXRzLl93cmM7CisgICAgICAgIGlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisgICAgICAgICAgICAtLXdyYzsKKyAgICAgICAgICAgIHJldHVybiBnb3RSZWFkKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZmluaXNoUmVhZCgpIHsKKyAgICAgICAgaWYgKHJjID4gMCkgeworICAgICAgICAgICAgcmV0dXJuICgwID09IC0tcmMgJiYgd3djID4gMCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigibm8gY3VycmVudCByZWFkZXIgdG8gcmVsZWFzZSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdvdFdyaXRlKCkgeworICAgICAgICByYyA9IC0xOworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgKytzdGF0cy5fd2M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBnZXRXcml0ZSgpIHsKKyAgICAgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBnb3RXcml0ZSgpOworICAgICAgICB9CisgICAgICAgICsrd3djOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiByZXRyeVdyaXRlKCkgeworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgKytzdGF0cy5fd3djOworICAgICAgICBpZiAocmMgPT0gMCkgeworICAgICAgICAgICAgLS13d2M7CisgICAgICAgICAgICByZXR1cm4gZ290V3JpdGUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVElGWV9OT05FID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9USUZZX1dSSVRFUlMgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RJRllfUkVBREVSUyA9IDI7CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBpbnQgZmluaXNoV3JpdGUoKSB7CisgICAgICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgICAgIHJjID0gMDsKKyAgICAgICAgICAgIGlmICh3d2MgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PVElGWV9XUklURVJTOworICAgICAgICAgICAgfSBlbHNlIGlmICh3cmMgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PVElGWV9SRUFERVJTOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9USUZZX05PTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigibm8gY3VycmVudCB3cml0ZXIgdG8gcmVsZWFzZSIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5BY3F1aXJlIGEgcmVhZCBsb2NrLCBibG9ja2luZyB1bnRpbCBhIHJlYWQgbG9jayBpcworICAgICAqIGF2YWlsYWJsZS4gIE11bHRpcGxlIHJlYWRlcnMgY2FuIGNvbmN1cnJlbnRseSBob2xkIHRoZSByZWFkCisgICAgICogbG9jay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSdzIGEgd3JpdGVyLCBvciBhIHdhaXRpbmcgd3JpdGVyLCBpbmNyZW1lbnQgdGhlCisgICAgICogd2FpdGluZyByZWFkZXIgY291bnQgYW5kIGJsb2NrIG9uIHRoaXMuICBPdGhlcndpc2UKKyAgICAgKiBpbmNyZW1lbnQgdGhlIGFjdGl2ZSByZWFkZXIgY291bnQgYW5kIHJldHVybi4gIENhbGxlciBtdXN0IGNhbGwKKyAgICAgKiByZWxlYXNlUmVhZCB3aGVuIGRvbmUgKGZvciBleGFtcGxlLCBpbiBhIGZpbmFsbHkgYmxvY2spLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWNxdWlyZVJlYWQoKSB7CisgICAgICAgIGlmICghZ2V0UmVhZCgpKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChyZWFkTG9jaykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhZExvY2sud2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXRyeVJlYWQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmVsZWFzZSBhIHJlYWQgbG9jayBhbmQgcmV0dXJuLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24KKyAgICAgKiBpZiBhIHJlYWQgbG9jayBpcyBub3QgY3VycmVudGx5IGhlbGQuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhpcyBpcyB0aGUgbGFzdCBhY3RpdmUgcmVhZGVyLCBub3RpZnkgdGhlIG9sZGVzdAorICAgICAqIHdhaXRpbmcgd3JpdGVyLiAgQ2FsbCB3aGVuIGZpbmlzaGVkIHdpdGggd29yaworICAgICAqIGNvbnRyb2xsZWQgYnkgYWNxdWlyZVJlYWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbGVhc2VSZWFkKCkgeworICAgICAgICBpZiAoZmluaXNoUmVhZCgpKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHdyaXRlTG9jaykgeworICAgICAgICAgICAgICAgIHdyaXRlTG9jay5ub3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkFjcXVpcmUgdGhlIHdyaXRlIGxvY2ssIGJsb2NraW5nIHVudGlsIHRoZSB3cml0ZSBsb2NrIGlzCisgICAgICogYXZhaWxhYmxlLiAgT25seSBvbmUgd3JpdGVyIGNhbiBhY3F1aXJlIHRoZSB3cml0ZSBsb2NrLCBhbmQKKyAgICAgKiB3aGVuIGhlbGQsIG5vIHJlYWRlcnMgY2FuIGFjcXVpcmUgdGhlIHJlYWQgbG9jay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSBhcmUgbm8gcmVhZGVycyBhbmQgbm8gd2FpdGluZyB3cml0ZXJzLCBtYXJrIGFzCisgICAgICogaGF2aW5nIGFuIGFjdGl2ZSB3cml0ZXIgYW5kIHJldHVybi4gIE90aGVyd2lzZSwgYWRkIGEgbG9jayB0byB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIHdhaXRpbmcgd3JpdGVyIGxpc3QsIGFuZCBibG9jayBvbiBpdC4gIENhbGxlcgorICAgICAqIG11c3QgY2FsbCByZWxlYXNlV3JpdGUgd2hlbiBkb25lIChmb3IgZXhhbXBsZSwgaW4gYSBmaW5hbGx5CisgICAgICogYmxvY2spLjxwPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY3F1aXJlV3JpdGUoKSB7CisgICAgICAgIGlmICghZ2V0V3JpdGUoKSkgeworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUxvY2sud2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXRyeVdyaXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJlbGVhc2UgdGhlIHdyaXRlIGxvY2sgYW5kIHJldHVybi4gIEFuIGVycm9yIHdpbGwgYmUgdGhyb3duCisgICAgICogaWYgdGhlIHdyaXRlIGxvY2sgaXMgbm90IGN1cnJlbnRseSBoZWxkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZXJlIGFyZSB3YWl0aW5nIHJlYWRlcnMsIG1ha2UgdGhlbSBhbGwgYWN0aXZlIGFuZAorICAgICAqIG5vdGlmeSBhbGwgb2YgdGhlbS4gIE90aGVyd2lzZSwgbm90aWZ5IHRoZSBvbGRlc3Qgd2FpdGluZworICAgICAqIHdyaXRlciwgaWYgYW55LiAgQ2FsbCB3aGVuIGZpbmlzaGVkIHdpdGggd29yayBjb250cm9sbGVkIGJ5CisgICAgICogYWNxdWlyZVdyaXRlLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZVdyaXRlKCkgeworICAgICAgICBzd2l0Y2ggKGZpbmlzaFdyaXRlKCkpIHsKKyAgICAgICAgY2FzZSBOT1RJRllfV1JJVEVSUzoKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgd3JpdGVMb2NrLm5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTk9USUZZX1JFQURFUlM6CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHJlYWRMb2NrKSB7CisgICAgICAgICAgICAgICAgcmVhZExvY2subm90aWZ5QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOT1RJRllfTk9ORToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRlNDcxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSwxMjQ2IEBACisvLyMjaGVhZGVyCisvKgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworLy8jZWxzZQorLy8jI2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJ5dGVCdWZmZXI7CisvLyNlbmRpZgoraW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVJMSGFuZGxlci5VUkxWaXNpdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGUgZXh0ZW5kcyBVUmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIFRoZSBkYXRhIHBhdGggdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0RBVEFfUEFUSCA9ICJjb20vaWJtL2ljdS9pbXBsLyI7CisgICAgLyoqCisgICAgICogVGhlIGRhdGEgcGF0aCB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQlVORExFID0gImRhdGEvaWN1ZHQiICsgVmVyc2lvbkluZm8uSUNVX0RBVEFfVkVSU0lPTjsKKworICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgSUNVIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JBU0VfTkFNRSA9IElDVV9EQVRBX1BBVEggKyBJQ1VfQlVORExFOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiBjb2xsYXRpb24gZGF0YSB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSA9IElDVV9CQVNFX05BTUUgKyAiL2NvbGwiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgcmJiaSBkYXRhIHRvIGJlIHVzZWQgd2l0aCBnZXREYXRhIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JSS0lUUl9OQU1FID0gIi9icmtpdHIiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgcmJiaSBkYXRhIHRvIGJlIHVzZWQgd2l0aCBnZXRCdW5kbGVJbnN0YW5jZSBBUEkKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9CUktJVFJfQkFTRV9OQU1FID0gSUNVX0JBU0VfTkFNRSArIElDVV9CUktJVFJfTkFNRTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBuYW1lIG9mIHJibmYgZGF0YSB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfUkJORl9CQVNFX05BTUUgPSBJQ1VfQkFTRV9OQU1FICsgIi9yYm5mIjsKKworICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgdHJhbnNsaXRlcmF0b3IgZGF0YSB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfVFJBTlNMSVRfQkFTRV9OQU1FID0gSUNVX0JBU0VfTkFNRSArICIvdHJhbnNsaXQiOworCisgICAgLyoqCisgICAgICogVGhlIGNsYXNzIGxvYWRlciBjb25zdGFudCB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENsYXNzTG9hZGVyIElDVV9EQVRBX0NMQVNTX0xPQURFUjsKKyAgICBzdGF0aWMgeworICAgICAgICBDbGFzc0xvYWRlciBsb2FkZXIgPSBJQ1VEYXRhLmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisgICAgICAgIGlmIChsb2FkZXIgPT0gbnVsbCkgeyAvLyBib290IGNsYXNzIGxvYWRlcgorICAgICAgICAgICAgbG9hZGVyID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTsKKyAgICAgICAgfQorICAgICAgICBJQ1VfREFUQV9DTEFTU19MT0FERVIgPSBsb2FkZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGNvbnRhaW5pbmcgdGhlIGluc3RhbGxlZCBsb2NhbGVzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBJTlNUQUxMRURfTE9DQUxFUyA9ICJJbnN0YWxsZWRMb2NhbGVzIjsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yICJubyByZXNvdXJjZSIuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBzdHJpbmdzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RSSU5HID0gMDsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIGJpbmFyeSBkYXRhLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklOQVJZID0gMTsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIHRhYmxlcyBvZiBrZXktdmFsdWUgcGFpcnMuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUJMRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBhbGlhc2VzOworICAgICAqIGludGVybmFsbHkgc3RvcmVzIGEgc3RyaW5nIHdoaWNoIGlkZW50aWZpZXMgdGhlIGFjdHVhbCByZXNvdXJjZQorICAgICAqIHN0b3JpbmcgdGhlIGRhdGEgKGNhbiBiZSBpbiBhIGRpZmZlcmVudCByZXNvdXJjZSBidW5kbGUpLgorICAgICAqIFJlc29sdmVkIGludGVybmFsbHkgYmVmb3JlIGRlbGl2ZXJpbmcgdGhlIGFjdHVhbCByZXNvdXJjZSB0aHJvdWdoIHRoZSBBUEkuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBBTElBUyA9IDM7CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCB1c2Ugb25seS4KKyAgICAgKiBBbHRlcm5hdGl2ZSByZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciB0YWJsZXMgb2Yga2V5LXZhbHVlIHBhaXJzLgorICAgICAqIE5ldmVyIHJldHVybmVkIGJ5IGdldFR5cGUoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRBQkxFMzIgPSA0OworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgYSBzaW5nbGUgMjgtYml0IGludGVnZXIsIGludGVycHJldGVkIGFzCisgICAgICogc2lnbmVkIG9yIHVuc2lnbmVkIGJ5IHRoZSBnZXRJbnQoKSBmdW5jdGlvbi4KKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVCA9IDc7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBhcnJheXMgb2YgcmVzb3VyY2VzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJSQVkgPSA4OworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgdmVjdG9ycyBvZiAzMi1iaXQgaW50ZWdlcnMuCisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRfVkVDVE9SID0gMTQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUk9NX0ZBTExCQUNLID0gMSwgRlJPTV9ST09UID0gMiwgRlJPTV9ERUZBVUxUID0gMywgRlJPTV9MT0NBTEUgPSA0OworCisgICAgcHJpdmF0ZSBpbnQgbG9hZGluZ1N0YXR1cyA9IC0xOworCisgICAgcHVibGljIHZvaWQgc2V0TG9hZGluZ1N0YXR1cyhpbnQgbmV3U3RhdHVzKSB7CisgICAgICAgIGxvYWRpbmdTdGF0dXMgPSBuZXdTdGF0dXM7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvYWRpbmcgc3RhdHVzIG9mIGEgcGFydGljdWxhciByZXNvdXJjZS4gCisgICAgICogCisgICAgICogQHJldHVybiBGUk9NX0ZBTExCQUNLIGlmIHRoZSByZXNvdXJjZSBpcyBmZXRjaGVkIGZyb20gZmFsbGJhY2sgYnVuZGxlCisgICAgICogICAgICAgICBGUk9NX1JPT1QgaWYgdGhlIHJlc291cmNlIGlzIGZldGNoZWQgZnJvbSByb290IGJ1bmRsZS4KKyAgICAgKiAgICAgICAgIEZST01fREVGQVVMVCBpZiB0aGUgcmVzb3VyY2UgaXMgZmV0Y2hlZCBmcm9tIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExvYWRpbmdTdGF0dXMoKSB7CisgICAgICAgIHJldHVybiBsb2FkaW5nU3RhdHVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbm9GYWxsYmFjayBmbGFnIHNwZWNpZmllZCBpbiB0aGUgbG9hZGVkIGJ1bmRsZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBub0ZhbGxiYWNrIGZsYWcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gZ2V0Tm9GYWxsYmFjaygpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdmVyc2lvbiBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVVJlc291cmNlQnVuZGxlIGFzIGFuCisgICAgICogVmVyc2lvbkluZm8gb2JqZWN0LgorICAgICAqIEByZXR1cm4gVmVyc2lvbkluZm8gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHZlcnNpb24gb2YgdGhlIGJ1bmRsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgZnJvbSBhIHN0cmluZyByZXNvdXJjZSB0eXBlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nCisgICAgICogQHNlZSAjZ2V0QmluYXJ5CisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0SW50CisgICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGZyb20gYSBzdHJpbmcgcmVzb3VyY2UgdHlwZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB3aG9zZSB2YWx1ZXMgbmVlZHMgdG8gYmUgZmV0Y2hlZAorICAgICAqIEByZXR1cm4gYSBzdHJpbmcKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICAvLyAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworICAgIC8vICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgLy8gIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBiaW5hcnkgZGF0YSBmcm9tIGEgYmluYXJ5IHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVjayBvZiB1bnNpZ25lZCBieXRlcyB3aGljaCBsaXZlIGluIGEgbWVtb3J5IG1hcHBlZC9ETEwgZmlsZS4KKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUJ1ZmZlciBnZXRCaW5hcnkoKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBiaW5hcnkgZGF0YSBmcm9tIGEgYmluYXJ5IHJlc291cmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGJhIEVzdGFibGlzaCB0aGUgcmV0dXJuIHR5cGUgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIKKyAgICAgKiAgICAgICAgICAgIGlzIG5vdCB1c2VkOyBhIG51bGwgdmFyaWFibGUgaXMgT0suICBUaGUgdGhpbmcgdGhhdCBtYXR0ZXJzIGlzIHRoZSB0eXBlCisgICAgICogICAgICAgICAgICBvZiB0aGUgcGFyYW1ldGVyCisgICAgICogQHJldHVybiBhbiBhcnJheSB1bnNpZ25lZCBieXRlcyBjb250YWluaW5nIHRoZSBiaW5hcnkgZGF0YSBmcm9tIHRoZSByZXNvdXJjZS4KKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZSBbXSBnZXRCaW5hcnkoYnl0ZSBbXWJhKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgMzIgYml0IGludGVnZXIgYXJyYXkgZnJvbSBhIHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVuayBvZiB1bnNpZ25lZCBieXRlcyB3aGljaCBsaXZlIGluIGEgbWVtb3J5IG1hcHBlZC9ETEwgZmlsZS4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50W10gZ2V0SW50VmVjdG9yKCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc2lnbmVkIGludGVnZXIgZnJvbSBhIHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0QmluYXJ5CisgICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW50KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdW5zaWduZWQgaW50ZWdlciBmcm9tIGEgcmVzb3VyY2UuCisgICAgICogVGhpcyBpbnRlZ2VyIGlzIG9yaWdpbmFsbHkgMjggYml0IGFuZCB0aGUgc2lnbiBnZXRzIHByb3BhZ2F0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFuIGludGVnZXIgdmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRVSW50KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiBhIHJlc291cmNlLiBTaXplIGZvciBzY2FsYXIgdHlwZXMgaXMgYWx3YXlzIDEsCisgICAgICogYW5kIGZvciB2ZWN0b3IvdGFibGUgdHlwZXMgaXMgdGhlIG51bWJlciBvZiBjaGlsZCByZXNvdXJjZXMuCisgICAgICogPGJyPjxiPjxmb250IGNvbG9yPSdyZWQnPldhcm5pbmc6IDwvZm9udD48L2I+IEludGVnZXIgYXJyYXkgaXMgdHJlYXRlZCBhcyBhIHNjYWxhciB0eXBlLiBUaGVyZSBhcmUgbm8KKyAgICAgKiAgICAgICAgICBBUElzIHRvIGFjY2VzcyBpbmRpdmlkdWFsIG1lbWJlcnMgb2YgYW4gaW50ZWdlciBhcnJheS4gSXQKKyAgICAgKiAgICAgICAgICBpcyBhbHdheXMgcmV0dXJuZWQgYXMgYSB3aG9sZS4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiByZXNvdXJjZXMgaW4gYSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiBhIHJlc291cmNlLgorICAgICAqIEF2YWlsYWJsZSB0eXBlcyBhcmUge0BsaW5rICNJTlQgSU5UfSwge0BsaW5rICNBUlJBWSBBUlJBWX0sCisgICAgICoge0BsaW5rICNCSU5BUlkgQklOQVJZfSwge0BsaW5rICNJTlRfVkVDVE9SIElOVF9WRUNUT1J9LAorICAgICAqIHtAbGluayAjU1RSSU5HIFNUUklOR30sIHtAbGluayAjVEFCTEUgVEFCTEV9LgorICAgICAqCisgICAgICogQHJldHVybiB0eXBlIG9mIHRoZSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VHlwZSgpIHsKKyAgICAgICAgaW50IHR5cGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuUkVTX0dFVF9UWVBFKHJlc291cmNlKTsKKyAgICAgICAgaWYodHlwZT09VEFCTEUzMil7CisgICAgICAgICAgICByZXR1cm4gVEFCTEU7IC8vTWFzayB0aGUgdGFibGUzMidzIHJlYWwgdHlwZQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiByZXNvdXJjZS4gTm90IGFsbCB0aGUgcmVzb3VyY2VzIGhhdmUgYSBrZXkgLSBvbmx5CisgICAgICogdGhvc2UgdGhhdCBhcmUgbWVtYmVycyBvZiBhIHRhYmxlLgorICAgICAqIEByZXR1cm4gYSBrZXkgYXNzb2NpYXRlZCB0byB0aGlzIHJlc291cmNlLCBvciBOVUxMIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIGtleQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaXRlcmF0b3Igd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGlzCisgICAgICogcmVzb3VyY2UgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBnZXRJdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJlc291cmNlIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgICBhbiBpbmRleCB0byB0aGUgd2FudGVkIHJlc291cmNlLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICB0aGUgc3ViIHJlc291cmNlIFVSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBnZXRJbXBsKGluZGV4LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG9iaiA9IGhhbmRsZUdldChpbmRleCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgb2JqID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRQYXJlbnQoKTsKKyAgICAgICAgICAgIGlmIChvYmogIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGluZGV4LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbid0IGZpbmQgcmVzb3VyY2UgZm9yIGJ1bmRsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZ2V0S2V5KCksIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCksIGdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBzZXRMb2FkaW5nU3RhdHVzKG9iaiwgcmVxdWVzdGVkLmdldExvY2FsZUlEKCkpOworICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICAvLyBhYnN0cmFjdCBVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0SW50KGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcmVzb3VyY2UgaW4gYSBnaXZlbiByZXNvdXJjZSB0aGF0IGhhcyBhIGdpdmVuIGtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgICAgICAgICAgICAgICBhIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHdhbnRlZCByZXNvdXJjZQorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHJlc291cmNlIGJ1bmRsZSBvYmplY3QgcmVwcmVzZW50aW5nIHJoZSByZXNvdXJjZQorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIGdldEltcGwoa2V5LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBvYmogPSBoYW5kbGVHZXQoa2V5LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICBvYmogPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGdldFBhcmVudCgpOworICAgICAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWxsIHRoZSBnZXQgbWV0aG9kIHRvIHJlY3Vyc2l2ZWx5IGZldGNoIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGtleSwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldEJhc2VOYW1lKCksIGdldExvY2FsZUlEKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIgKyBmdWxsTmFtZSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsga2V5LCB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLCBrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldExvYWRpbmdTdGF0dXMob2JqLCByZXF1ZXN0ZWQuZ2V0TG9jYWxlSUQoKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIHJlcXVlc3RlZExvY2FsZSl7CisgICAgICAgU3RyaW5nIGxvY2FsZSA9IGJ1bmRsZS5nZXRMb2NhbGVJRCgpOyAKKyAgICAgICBpZihsb2NhbGUuZXF1YWxzKCJyb290IikpeworICAgICAgICAgICBidW5kbGUuc2V0TG9hZGluZ1N0YXR1cyhGUk9NX1JPT1QpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgIGlmKGxvY2FsZS5lcXVhbHMocmVxdWVzdGVkTG9jYWxlKSl7CisgICAgICAgICAgIGJ1bmRsZS5zZXRMb2FkaW5nU3RhdHVzKEZST01fTE9DQUxFKTsKKyAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgYnVuZGxlLnNldExvYWRpbmdTdGF0dXMoRlJPTV9GQUxMQkFDSyk7CisgICAgICAgfQorICAgIH0gCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgIGFuIGluZGV4IHRvIHRoZSB3YW50ZWQgc3RyaW5nLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHN0cmluZyB3aGljaCBsaXZlcyBpbiB0aGUgcmVzb3VyY2UuCisgICAgICogQHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGludCBpbmRleCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ZW1wID0gZ2V0KGluZGV4KTsKKyAgICAgICAgaWYgKHRlbXAuZ2V0VHlwZSgpID09IFNUUklORykgeworICAgICAgICAgICAgcmV0dXJuIHRlbXAuZ2V0U3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFyZW50IGJ1bmRsZSBvZiB0aGlzIGJ1bmRsZQorICAgICAqIEByZXR1cm4gVVJlc291cmNlQnVuZGxlIHRoZSBwYXJlbnQgb2YgdGhpcyBidW5kbGUuIFJldHVybnMgbnVsbCBpZiBub25lCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGlkIG9mIHRoaXMgYnVuZGxlIGFzIFN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIGxvY2FsZSBpZCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgZ2V0TG9jYWxlSUQoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUsIGNvbnNpZGVyaW5nIGtleXdvcmRzIGFzIHdlbGwsIGZvciB0aGUgc3BlY2lmaWVkIGtleXdvcmQuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHJlc291cmNlIHNwZWNpZmllcgorICAgICAqIEBwYXJhbSByZXNOYW1lIHRvcCBsZXZlbCByZXNvdXJjZSB0byBjb25zaWRlciAoc3VjaCBhcyAiY29sbGF0aW9ucyIpCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgdG8gY29uc2lkZXIgKHN1Y2ggYXMgImNvbGxhdGlvbiIgKQorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEBwYXJhbSBmaWxsaW5Jc0F2YWlsYWJsZSBJZiBub24tbnVsbCwgMS1lbGVtZW50IGFycmF5IG9mIGZpbGxpbiBwYXJhbWV0ZXIgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlIHdhcyBhdmFpbGFibGUuIFRoZSBsb2NhbGUgaXMgZGVmaW5lZCBhcyAnYXZhaWxhYmxlJyBpZiBpdCBwaHlzaWNhbGx5CisgICAgICogZXhpc3RzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRyZWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGJhc2VOYW1lLAorICAgICAgICAgICAgU3RyaW5nIHJlc05hbWUsIFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGxvY0lELAorICAgICAgICAgICAgYm9vbGVhbiBmaWxsaW5Jc0F2YWlsYWJsZVtdKSB7CisgICAgICAgIFN0cmluZyBrd1ZhbCA9IGxvY0lELmdldEtleXdvcmRWYWx1ZShrZXl3b3JkKTsKKyAgICAgICAgU3RyaW5nIGJhc2VMb2MgPSBsb2NJRC5nZXRCYXNlTmFtZSgpOworICAgICAgICBTdHJpbmcgZGVmU3RyID0gbnVsbDsKKyAgICAgICAgVUxvY2FsZSBwYXJlbnQgPSBuZXcgVUxvY2FsZShiYXNlTG9jKTsKKyAgICAgICAgVUxvY2FsZSBmb3VuZCA9IGxvY0lEOworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IG51bGw7IC8vIGxvY2FsZSB3aGVyZSBkZWZhdWx0IChmb3VuZCkgcmVzb3VyY2UgaXMKKyAgICAgICAgYm9vbGVhbiBsb29rRm9yRGVmYXVsdCA9IGZhbHNlOyAvLyB0cnVlIGlmIGt3VmFsIG5lZWRzIHRvIGJlIHNldAorICAgICAgICBVTG9jYWxlIGZ1bGxCYXNlID0gbnVsbDsgLy8gYmFzZSBsb2NhbGUgb2YgZm91bmQgKHRhcmdldCkgcmVzb3VyY2UKKyAgICAgICAgaW50IGRlZkRlcHRoID0gMDsgLy8gZGVwdGggb2YgJ2RlZmF1bHQnIG1hcmtlcgorICAgICAgICBpbnQgcmVzRGVwdGggPSAwOyAvLyBkZXB0aCBvZiBmb3VuZCByZXNvdXJjZTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbGxpbklzQXZhaWxhYmxlWzBdID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoa3dWYWwgPT0gbnVsbCkgfHwgKGt3VmFsLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICAgICAgfHwga3dWYWwuZXF1YWxzKERFRkFVTFRfVEFHKSkgeworICAgICAgICAgICAga3dWYWwgPSAiIjsgLy8gZGVmYXVsdCB0YWcgaXMgdHJlYXRlZCBhcyBubyBrZXl3b3JkCisgICAgICAgICAgICBsb29rRm9yRGVmYXVsdCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0b3AgbGV2ZWwgbG9jYWxlIGZpcnN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHIgPSBudWxsOworCisgICAgICAgIHIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgcGFyZW50KTsKKyAgICAgICAgZm91bmQgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghZm91bmQuZXF1YWxzKHBhcmVudCkpIHsKKyAgICAgICAgICAgICAgICBmaWxsaW5Jc0F2YWlsYWJsZVswXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIGN1cnJlbnRseSByZWxldmFudCAnZGVmYXVsdCcgaXMKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICBpZiAobG9va0ZvckRlZmF1bHQgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBrd1ZhbCA9IGRlZlN0cjsKKyAgICAgICAgICAgICAgICAgICAgbG9va0ZvckRlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVmTG9jID0gci5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCkgeworICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciBhbmQgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRlZkxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgciA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgci5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgICAgICBkZWZEZXB0aCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlICgociAhPSBudWxsKSAmJiAoZGVmTG9jID09IG51bGwpKTsKKworICAgICAgICAvLyBOb3csIHNlYXJjaCBmb3IgdGhlIG5hbWVkIHJlc291cmNlCisgICAgICAgIHBhcmVudCA9IG5ldyBVTG9jYWxlKGJhc2VMb2MpOworICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIG5hbWVkIHJlc291cmNlIGlzIGxvY2F0ZWQKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAvKiBVUmVzb3VyY2VCdW5kbGUgdXJiID0gKi9pcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICBmdWxsQmFzZSA9IGlyYi5nZXRVTG9jYWxlKCk7IAorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBnZXQoKSBjb21wbGV0ZWQsIHdlIGhhdmUgdGhlIGZ1bGwgYmFzZSBsb2NhbGUKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmZWxsIGJhY2sgdG8gYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgIGlmICgoZnVsbEJhc2UgIT0gbnVsbCkgJiYgKChyZXNEZXB0aCkgPiBkZWZEZXB0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmU3RyID0gaXJiLmdldFN0cmluZyhERUZBVUxUX1RBRyk7CisgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICBkZWZEZXB0aCA9IHJlc0RlcHRoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgLy8gSWdub3JlIGVycm9yLAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgIHJlc0RlcHRoKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisKKyAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwgJiYgLy8gQ291bGQgbm90IGZpbmQgcmVzb3VyY2UgJ2t3VmFsJworICAgICAgICAgICAgICAgIChkZWZTdHIgIT0gbnVsbCkgJiYgLy8gZGVmYXVsdCB3YXMgZGVmaW5lZAorICAgICAgICAgICAgICAgICFkZWZTdHIuZXF1YWxzKGt3VmFsKSkgeyAvLyBrd1ZhbCBpcyBub3QgZGVmYXVsdAorICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCByZXF1ZXN0ZWQgcmVzb3VyY2UuIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAga3dWYWwgPSBkZWZTdHI7IC8vIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAgcGFyZW50ID0gbmV3IFVMb2NhbGUoYmFzZUxvYyk7CisgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgICAgICByZXNEZXB0aCA9IDA7CisgICAgICAgICAgICAvLyBkZXRlcm1pbmUgaW4gd2hpY2ggbG9jYWxlIChpZiBhbnkpIHRoZSBuYW1lZCByZXNvdXJjZSBpcyBsb2NhdGVkCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gci5nZXQocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSB1cmIgPSBpcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmYWlsIGJlZm9yZSB0aGlzLi4KKyAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmZXRjaGVkIGl0ZW0gKHVyYikgaXMgaW4gYSBkaWZmZXJlbnQgbG9jYWxlIHRoYW4gb3VyIG91dGVyIGxvY2FsZSAoci9mdWxsQmFzZSkKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhcmUgaW4gYSAnZmFsbGJhY2snIHNpdHVhdGlvbi4gdHJlYXQgYXMgYSBtaXNzaW5nIHJlc291cmNlIHNpdHVhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYoIWZ1bGxCYXNlLnRvU3RyaW5nKCkuZXF1YWxzKHVyYi5nZXRMb2NhbGUoKS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSBudWxsOyAvLyBmYWxsYmFjayBjb25kaXRpb24uIExvb3AgYW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGZlbGwgYmFjayB0byBhbiBhbmNlc3RvciBvZiB0aGUgb2xkICdkZWZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgICAgICBpZiAoKGZ1bGxCYXNlICE9IG51bGwpICYmICgocmVzRGVwdGgpID4gZGVmRGVwdGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmRGVwdGggPSByZXNEZXB0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciwgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgICAgICByZXNEZXB0aCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGZpbmQgbG9jYWxlIGNvbnRhaW5pbmcgcmVxdWVzdGVkIG9yIGRlZmF1bHQga2V5d29yZC4iLAorICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBrZXl3b3JkICsgIj0iICsga3dWYWwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlZlN0ci5lcXVhbHMoa3dWYWwpIC8vIGlmIGRlZmF1bHQgd2FzIHJlcXVlc3RlZCBhbmQKKyAgICAgICAgICAgICYmIHJlc0RlcHRoIDw9IGRlZkRlcHRoKSB7IC8vIGRlZmF1bHQgd2FzIHNldCBpbiBzYW1lIGxvY2FsZSBvciBjaGlsZAorICAgICAgICAgICAgcmV0dXJuIGZ1bGxCYXNlOyAvLyBLZXl3b3JkIHZhbHVlIGlzIGRlZmF1bHQgLSBubyBrZXl3b3JkIG5lZWRlZCBpbiBsb2NhbGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShmdWxsQmFzZS50b1N0cmluZygpICsgIkAiICsga2V5d29yZCArICI9IiArIGt3VmFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgdHJlZSBwYXRoIGFuZCBrZXl3b3JkLCByZXR1cm4gYSBzdHJpbmcgZW51bWVyYXRpb24gb2YgYWxsIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhhdCBrZXl3b3JkLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSByZXNvdXJjZSBzcGVjaWZpZXIKKyAgICAgKiBAcGFyYW0ga2V5d29yZCBhIHBhcnRpY3VsYXIga2V5d29yZCB0byBjb25zaWRlciwgbXVzdCBtYXRjaCBhIHRvcCBsZXZlbCByZXNvdXJjZSBuYW1lCisgICAgICogd2l0aGluIHRoZSB0cmVlLiAoaS5lLiAiY29sbGF0aW9ucyIpCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRWYWx1ZXMoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcga2V5d29yZCkgeworICAgICAgICBTZXQga2V5d29yZHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBVTG9jYWxlIGxvY2FsZXNbXSA9IGNyZWF0ZVVMb2NhbGVMaXN0KGJhc2VOYW1lLCBJQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgLy8gZG93bmNhc3QgdG8gSUNVUmVzb3VyY2VCdW5kbGU/CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gKElDVVJlc291cmNlQnVuZGxlKSAoYi5nZXRPYmplY3Qoa2V5d29yZCkpOworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSBpcmIuZ2V0S2V5cygpOworICAgICAgICAgICAgICAgIE9iamVjdCBzOworICAgICAgICAgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocyBpbnN0YW5jZW9mIFN0cmluZykgJiYgIURFRkFVTFRfVEFHLmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgYWRkICdkZWZhdWx0JyBpdGVtcworICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuYWRkKHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiRXJyb3IgaW4gLSAiICsgbmV3IEludGVnZXIoaSkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgIC8vICsgIiAtICIgKyB0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGUgZXJyIC0ganVzdCBza2lwIHRoYXQgcmVzb3VyY2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFN0cmluZ1tdKWtleXdvcmRzLnRvQXJyYXkobmV3IFN0cmluZ1swXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbXVsdGlsZXZlbCBmYWxsYmFjayBmb3IgZmV0Y2hpbmcgaXRlbXMgZnJvbSB0aGUKKyAgICAgKiBidW5kbGUgZS5nOiBJZiByZXNvdXJjZSBpcyBpbiB0aGUgZm9ybSBkZV9fUEhPTkVCT09LeyBjb2xsYXRpb25zeworICAgICAqIGRlZmF1bHR7ICJwaG9uZWJvb2sifSB9IH0gSWYgdGhlIHZhbHVlIG9mICJkZWZhdWx0IiBrZXkgbmVlZHMgdG8gYmUKKyAgICAgKiBhY2Nlc3NlZCwgdGhlbiBkbzogPGNvZGU+CisgICAgICogIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImRlX19QSE9ORUJPT0siKTsKKyAgICAgKiAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgKiAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgKiAgICAgIHJlc3VsdCA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUpLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICogIH0KKyAgICAgKiA8L2NvZGU+CisgICAgICogCisgICAgICogQHBhcmFtIHBhdGgKKyAgICAgKiAgICAgICAgICAgIFRoZSBwYXRoIHRvIHRoZSByZXF1aXJlZCByZXNvdXJjZSBrZXkKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlIHJlcHJlc2VudGVkIGJ5IHRoZSBrZXkKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRXaXRoRmFsbGJhY2soU3RyaW5nIHBhdGgpCisgICAgICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlID0gdGhpczsKKworICAgICAgICAvLyBub3cgcmVjdXNlIHRvIHBpY2sgdXAgc3ViIGxldmVscyBvZiB0aGUgaXRlbXMKKyAgICAgICAgcmVzdWx0ID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKHBhdGgsIGFjdHVhbEJ1bmRsZSwgbnVsbCk7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDYW4ndCBmaW5kIHJlc291cmNlIGZvciBidW5kbGUgIgorICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiICsgZ2V0VHlwZSgpLAorICAgICAgICAgICAgICAgIHBhdGgsIGdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHdpbGwgdGhyb3cgdHlwZSBtaXNtYXRjaCBleGNlcHRpb24gaWYgdGhlIHJlc291cmNlIGlzIG5vdCBhIHN0cmluZworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoKSB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldFdpdGhGYWxsYmFjayhwYXRoKS5nZXRTdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgdGhlIGxvY2FsZSBuYW1lcyBzdXBwb3J0ZWQgYnkgYSBjb2xsZWN0aW9uIG9mIHJlc291cmNlCisgICAgICogYnVuZGxlcy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnVuZGxlUHJlZml4IHRoZSBwcmVmaXggb2YgdGhlIHJlc291cmNlIGJ1bmRsZXMgdG8gdXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoU3RyaW5nIGJ1bmRsZVByZWZpeCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShidW5kbGVQcmVmaXgpLmdldExvY2FsZU5hbWVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZgorICAgICAqIHJlc291cmNlIGJ1bmRsZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTZXQgZ2V0RnVsbExvY2FsZU5hbWVTZXQoKSB7CisgICAgICAgIHJldHVybiBnZXRGdWxsTG9jYWxlTmFtZVNldChJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZgorICAgICAqIHJlc291cmNlIGJ1bmRsZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGJ1bmRsZVByZWZpeCB0aGUgcHJlZml4IG9mIHRoZSByZXNvdXJjZSBidW5kbGVzIHRvIHVzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRGdWxsTG9jYWxlTmFtZVNldChTdHJpbmcgYnVuZGxlUHJlZml4KSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbEVudHJ5KGJ1bmRsZVByZWZpeCkuZ2V0RnVsbExvY2FsZU5hbWVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgdGhlIGxvY2FsZSBuYW1lcyBzdXBwb3J0ZWQgYnkgYSBjb2xsZWN0aW9uIG9mIHJlc291cmNlCisgICAgICogYnVuZGxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlTG9jYWxlTmFtZVNldChJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGluc3RhbGxlZCBpbiB0aGUgc3BlY2lmaWVkIGJ1bmRsZXMuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoU3RyaW5nIGJhc2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbEVudHJ5KGJhc2VOYW1lKS5nZXRVTG9jYWxlTGlzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIFVMb2NhbGVzIGluc3RhbGxlZCB0aGUgYmFzZSBidW5kbGUuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGluc3RhbGxlZCBpbiB0aGUgc3BlY2lmaWVkIGJ1bmRsZXMuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShiYXNlTmFtZSkuZ2V0TG9jYWxlTGlzdCgpOworICAgIH0KKworICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBpbnN0YWxsZWQgdGhlIGJhc2UgYnVuZGxlLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsRW50cnkoSUNVX0JBU0VfTkFNRSkuZ2V0TG9jYWxlTGlzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBsaXN0IG9mIFVMb2NhbGVzIHRvIGEgbGlzdCBvZiBMb2NhbGVzLiAgVUxvY2FsZXMgd2l0aCBhIHNjcmlwdCBjb2RlIHdpbGwgbm90IGJlIGNvbnZlcnRlZAorICAgICAqIHNpbmNlIHRoZXkgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzIGEgTG9jYWxlLiAgVGhpcyBtZWFucyB0aGF0IHRoZSB0d28gbGlzdHMgd2lsbCA8Yj5ub3Q8L2I+IG1hdGNoCisgICAgICogb25lLXRvLW9uZSwgYW5kIHRoYXQgdGhlIHJldHVybmVkIGxpc3QgbWlnaHQgYmUgc2hvcnRlciB0aGFuIHRoZSBpbnB1dCBsaXN0LgorICAgICAqIEBwYXJhbSB1bG9jYWxlcyBhIGxpc3Qgb2YgVUxvY2FsZXMgdG8gY29udmVydCB0byBhIGxpc3Qgb2YgTG9jYWxlcy4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGNvbnZlcnRlZCBVTG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBnZXRMb2NhbGVMaXN0KFVMb2NhbGVbXSB1bG9jYWxlcykgeworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gaWYgdGhlIFVMb2NhbGUgZG9lcyBub3QgY29udGFpbiBhIHNjcmlwdCBjb2RlCisgICAgICAgICAgICAvLyBvbmx5IHRoZW4gY29udmVydCBpdCB0byBhIExvY2FsZSBvYmplY3QKKyAgICAgICAgICAgIGlmICh1bG9jYWxlc1tpXS5nZXRTY3JpcHQoKS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGlzdC5hZGQodWxvY2FsZXNbaV0udG9Mb2NhbGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChMb2NhbGVbXSkgbGlzdC50b0FycmF5KG5ldyBMb2NhbGVbbGlzdC5zaXplKCldKTsKKyAgICB9CisgCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKSB7CisgICAgICAgIGluaXRLZXlzVmVjdG9yKCk7CisgICAgICAgIHJldHVybiBrZXlzLmVsZW1lbnRzKCk7CisgICAgfQorICAgIHByaXZhdGUgVmVjdG9yIGtleXMgPSBudWxsOworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgaW5pdEtleXNWZWN0b3IoKXsKKyAgICAgICAgaWYoa2V5cyE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy9JQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW50ID0gdGhpczsKKyAgICAgICAga2V5cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgLy93aGlsZShjdXJyZW50IT1udWxsKXsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSB0aGlzLmhhbmRsZUdldEtleXMoKTsKKyAgICAgICAgICAgIHdoaWxlKGUuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgICAgIFN0cmluZyBlbGVtID0gKFN0cmluZyllLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgaWYoIWtleXMuY29udGFpbnMoZWxlbSkpeworICAgICAgICAgICAgICAgICAgICBrZXlzLmFkZChlbGVtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgLy8gIGN1cnJlbnQgPSAoSUNVUmVzb3VyY2VCdW5kbGUpY3VycmVudC5nZXRQYXJlbnQoKTsKKyAgICAgICAgLy99CisgICAgfQorICAgIHByb3RlY3RlZCBFbnVtZXJhdGlvbiBoYW5kbGVHZXRLZXlzKCl7CisgICAgICAgIFZlY3RvciBrZXlzID0gbmV3IFZlY3RvcigpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgIGl0ZW0gPSBnZXQoaSk7CisgICAgICAgICAgICBrZXlzLmFkZChpdGVtLmdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ga2V5cy5lbGVtZW50cygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgY3JlYXRlQnVuZGxlKFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVJRCwgQ2xhc3NMb2FkZXIgcm9vdCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmNyZWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlSUQsIHJvb3QpOworICAgICAgICBpZihiPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBidW5kbGUgIisgYmFzZU5hbWUrIi8iKyBsb2NhbGVJRCsiLnJlcyIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KKworICAgIC8vPT09PT09IHByb3RlY3RlZCBtZW1iZXJzID09PT09PT09PT09PT09CisgICAgcHJvdGVjdGVkIFN0cmluZyBrZXk7CisgICAgcHJvdGVjdGVkIGludCBzaXplID0gMTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHJlc1BhdGg7CisgICAgcHJvdGVjdGVkIGxvbmcgcmVzb3VyY2UgPSBSRVNfQk9HVVM7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNUb3BMZXZlbCA9IGZhbHNlOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgUkVTX0JPR1VTID0gMHhmZmZmZmZmZjsKKworICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChpbnQgaW5kZXgsIEhhc2hNYXAgdGFibGUsCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlLiBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCBhZnRlcgorICAgICAqIGEgY2FsbCB0byBnZXRCdW5kbGUoKSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmVzb3VyY2UgYnVuZGxlIHJldHVybmVkCisgICAgICogcmVhbGx5IGNvcnJlc3BvbmRzIHRvIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG9yIGlzIGEgZmFsbGJhY2suCisgICAgICogCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBnZXRVTG9jYWxlKCkudG9Mb2NhbGUoKTsKKyAgICB9CisKKyAgICAvLyB0aGlzIG1ldGhvZCBpcyBkZWNsYXJlZCBpbiBSZXNvdXJjZUJ1bmRsZSBjbGFzcworICAgIC8vIHNvIGNhbm5vdCBjaGFuZ2UgdGhlIHNpZ25hdHVyZQorICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdldE9iamVjdEltcGwoa2V5LCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBUbyBmYWNpbGl0YXRlIFhQYXRoIHN0eWxlIGFsaWFzZXMgd2UgbmVlZCBhIHdheSB0byBwYXNzIHRoZSByZWZlcmVuY2UKKyAgICAvLyB0byByZXF1ZXN0ZWQgbG9jYWxlLiBUaGUgb25seSB3YXkgSSBjb3VsZCBmaWd1cmUgb3V0IGlzIHRvIGltcGxlbWVudAorICAgIC8vIHRoZSBsb29rIHVwIGxvZ2ljIGhlcmUuIFRoaXMgaGFzIGEgZGlzYWR2YW50YWdlIHRoYXQgaWYgdGhlIGNsaWVudAorICAgIC8vIGxvYWRzIGFuIElDVVJlc291cmNlQnVuZGxlLCBjYWxscyBSZXNvdXJjZUJ1bmRsZS5nZXRPYmplY3QgbWV0aG9kCisgICAgLy8gd2l0aCBhIGtleSB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBidW5kbGUgdGhlbiB0aGUgbG9va3VwIGlzCisgICAgLy8gZG9uZSB0d2ljZSBiZWZvcmUgdGhyb3dpbmcgYSBNaXNzaW5nUmVzb3VyY2VFeHBlY3Rpb24uCisgICAgcHJpdmF0ZSBPYmplY3QgaGFuZGxlR2V0T2JqZWN0SW1wbChTdHJpbmcga2V5LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgT2JqZWN0IG9iaiA9IHJlc29sdmVPYmplY3Qoa2V5LCByZXF1ZXN0ZWQpOworICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHBhcmVudCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgZ2V0UGFyZW50KCk7CisgICAgICAgICAgICBpZiAocGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBvYmogPSBwYXJlbnQuaGFuZGxlR2V0T2JqZWN0SW1wbChrZXksIHJlcXVlc3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JqID09IG51bGwpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNhbid0IGZpbmQgcmVzb3VyY2UgZm9yIGJ1bmRsZSAiCisgICAgICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiICsga2V5LAorICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLCBrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgcHJpdmF0ZSBPYmplY3QgcmVzb2x2ZU9iamVjdChTdHJpbmcga2V5LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKGdldFR5cGUoKSA9PSBTVFJJTkcpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBvYmogPSBoYW5kbGVHZXQoa2V5LCByZXF1ZXN0ZWQpOworICAgICAgICBpZiAob2JqICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChvYmouZ2V0VHlwZSgpID09IFNUUklORykgeworICAgICAgICAgICAgICAgIHJldHVybiBvYmouZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChvYmouZ2V0VHlwZSgpID09IEFSUkFZKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmouaGFuZGxlR2V0U3RyaW5nQXJyYXkoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChpbnQgaW5kZXgsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZ1tdIGhhbmRsZUdldFN0cmluZ0FycmF5KCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09IHByaXZhdGVzID09PT09PT09PT0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1JFU09VUkNFX0lOREVYID0gInJlc19pbmRleCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9UQUcgPSAiZGVmYXVsdCI7CisKKyAgICAvLyBGbGFnIGZvciBlbmFibGluZy9kaXNhYmxpbmcgZGVidWdnaW5nIGNvZGUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgibG9jYWxlZGF0YSIpOworCisgICAgLy8gQ2FjaGUgZm9yIGdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIEdFVF9BVkFJTEFCTEVfQ0FDSEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGNyZWF0ZVVMb2NhbGVMaXN0KFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QpIHsKKyAgICAgICAgLy8gdGhlIGNhbm5lZCBsaXN0IGlzIGEgc3Vic2V0IG9mIGFsbCB0aGUgYXZhaWxhYmxlIC5yZXMgZmlsZXMsIHRoZSBpZGVhCisgICAgICAgIC8vIGlzIHdlIGRvbid0IGV4cG9ydCB0aGVtCisgICAgICAgIC8vIGFsbC4gZ290dGEgYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMsIHNpbmNlIHRvIGFkZCBhIGxvY2FsZSB5b3UgaGF2ZQorICAgICAgICAvLyB0byB1cGRhdGUgdGhpcyBsaXN0LAorICAgICAgICAvLyBhbmQgaXQncyBlbWJlZGRlZCBpbiBvdXIgYmluYXJ5IHJlc291cmNlcy4KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBjcmVhdGVCdW5kbGUoYmFzZU5hbWUsIElDVV9SRVNPVVJDRV9JTkRFWCwgcm9vdCk7CisgICAgICAgIAorICAgICAgICBidW5kbGUgPSBidW5kbGUuZ2V0KElOU1RBTExFRF9MT0NBTEVTKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IGJ1bmRsZS5nZXRTaXplKCk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsZW5ndGhdOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yIGl0ZXIgPSBidW5kbGUuZ2V0SXRlcmF0b3IoKTsKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGxvY2FsZXNbaSsrXSA9IG5ldyBVTG9jYWxlKGl0ZXIubmV4dCgpLmdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSBudWxsOworICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBjcmVhdGVMb2NhbGVMaXN0KFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBnZXRBdmFpbEVudHJ5KGJhc2VOYW1lKS5nZXRVTG9jYWxlTGlzdCgpOworICAgICAgICByZXR1cm4gZ2V0TG9jYWxlTGlzdCh1bG9jYWxlcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY3JlYXRlTG9jYWxlTmFtZUFycmF5KFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBjcmVhdGVCdW5kbGUoIGJhc2VOYW1lLCBJQ1VfUkVTT1VSQ0VfSU5ERVgsIHJvb3QpOworICAgICAgICBidW5kbGUgPSBidW5kbGUuZ2V0KElOU1RBTExFRF9MT0NBTEVTKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IGJ1bmRsZS5nZXRTaXplKCk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlcyA9IG5ldyBTdHJpbmdbbGVuZ3RoXTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdGVyID0gYnVuZGxlLmdldEl0ZXJhdG9yKCk7CisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBsb2NhbGVzW2krK10gPSBpdGVyLm5leHQoKS5nZXRLZXkoKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSBudWxsOworICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBcnJheUxpc3QgY3JlYXRlRnVsbExvY2FsZU5hbWVBcnJheSgKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBiYXNlTmFtZSwgZmluYWwgQ2xhc3NMb2FkZXIgcm9vdCkgeworCisgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gKEFycmF5TGlzdCkgamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyCisgICAgICAgICAgICAuZG9Qcml2aWxlZ2VkKG5ldyBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlYlNwaGVyZSBjbGFzcyBsb2FkZXIgd2lsbCByZXR1cm4gbnVsbCBmb3IgYSByYXcKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlyZWN0b3J5IG5hbWUgd2l0aG91dCB0cmFpbGluZyBzbGFzaAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYm4gPSBiYXNlTmFtZS5lbmRzV2l0aCgiLyIpCisgICAgICAgICAgICAgICAgICAgICAgICA/IGJhc2VOYW1lCisgICAgICAgICAgICAgICAgICAgICAgICA6IGJhc2VOYW1lICsgIi8iOworCisgICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIHByZWJ1aWx0IGluZGljZXMgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIHMgPSByb290LmdldFJlc291cmNlQXNTdHJlYW0oYm4gKyBJQ1VfUkVTT1VSQ0VfSU5ERVggKyAiLnR4dCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihzLCAiQVNDSUkiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChsaW5lID0gYnIucmVhZExpbmUoKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSAhPSAwICYmICFsaW5lLnN0YXJ0c1dpdGgoIiMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQobGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN3YWxsb3cgaXQKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIFVSTCB1cmwgPSByb290LmdldFJlc291cmNlKGJuKTsKKyAgICAgICAgICAgICAgICAgICAgVVJMSGFuZGxlciBoYW5kbGVyID0gVVJMSGFuZGxlci5nZXQodXJsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBVUkxWaXNpdG9yIHYgPSBuZXcgVVJMVmlzaXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdChTdHJpbmcgcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocy5lbmRzV2l0aCgiLnJlcyIpICYmICEicmVzX2luZGV4LnJlcyIuZXF1YWxzKHMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LmFkZChzLnN1YnN0cmluZygwLCBzLmxlbmd0aCgpIC0gNCkpOyAvLyBzdHJpcCAnLnJlcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmd1aWRlKHYsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0IGNyZWF0ZUZ1bGxMb2NhbGVOYW1lU2V0KFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IGNyZWF0ZUZ1bGxMb2NhbGVOYW1lQXJyYXkoYmFzZU5hbWUsSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgSGFzaFNldCBzZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBpZihsaXN0PT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kICIrICBJQ1VfUkVTT1VSQ0VfSU5ERVgsICIiLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmFkZEFsbChsaXN0KTsKKyAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzZXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBjcmVhdGVMb2NhbGVOYW1lU2V0KFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nW10gbG9jYWxlcyA9IGNyZWF0ZUxvY2FsZU5hbWVBcnJheShiYXNlTmFtZSwgSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKworICAgICAgICAgICAgSGFzaFNldCBzZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgc2V0LmFkZEFsbChBcnJheXMuYXNMaXN0KGxvY2FsZXMpKTsKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoc2V0KTsKKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY291bGRuJ3QgZmluZCBpbmRleCBmb3IgYnVuZGxlTmFtZTogIiArIGJhc2VOYW1lKTsKKyAgICAgICAgICAgICAgICBUaHJlYWQuZHVtcFN0YWNrKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLkVNUFRZX1NFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIb2xkcyB0aGUgcHJlZml4LCBhbmQgbGF6aWx5IGNyZWF0ZXMgdGhlIExvY2FsZVtdIGxpc3Qgb3IgdGhlIGxvY2FsZSBuYW1lCisgICAgICogU2V0IGFzIG5lZWRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBBdmFpbEVudHJ5IHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4OworICAgICAgICBwcml2YXRlIFVMb2NhbGVbXSB1bG9jYWxlczsKKyAgICAgICAgcHJpdmF0ZSBMb2NhbGVbXSBsb2NhbGVzOworICAgICAgICBwcml2YXRlIFNldCBuYW1lU2V0OworICAgICAgICBwcml2YXRlIFNldCBmdWxsTmFtZVNldDsKKworICAgICAgICBBdmFpbEVudHJ5KFN0cmluZyBwcmVmaXgpIHsKKyAgICAgICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OworICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZVtdIGdldFVMb2NhbGVMaXN0KCkgeworICAgICAgICAgICAgaWYgKHVsb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1bG9jYWxlcyA9IGNyZWF0ZVVMb2NhbGVMaXN0KHByZWZpeCwgSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICBMb2NhbGVbXSBnZXRMb2NhbGVMaXN0KCkgeworICAgICAgICAgICAgaWYgKGxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvY2FsZXMgPSBjcmVhdGVMb2NhbGVMaXN0KHByZWZpeCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICBTZXQgZ2V0TG9jYWxlTmFtZVNldCgpIHsKKyAgICAgICAgICAgIGlmIChuYW1lU2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuYW1lU2V0ID0gY3JlYXRlTG9jYWxlTmFtZVNldChwcmVmaXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5hbWVTZXQ7CisgICAgICAgIH0KKyAgICAgICAgU2V0IGdldEZ1bGxMb2NhbGVOYW1lU2V0KCkgeworICAgICAgICAgICAgaWYgKGZ1bGxOYW1lU2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmdWxsTmFtZVNldCA9IGNyZWF0ZUZ1bGxMb2NhbGVOYW1lU2V0KHByZWZpeCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZnVsbE5hbWVTZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9yZXMgdGhlIGxvY2FsZSBpbmZvcm1hdGlvbiBpbiBhIGNhY2hlIGFjY2Vzc2VkIGJ5IGtleSAoYnVuZGxlIHByZWZpeCkuCisgICAgICogVGhlIGNhY2hlZCBvYmplY3RzIGFyZSBBdmFpbEVudHJpZXMuIFRoZSBjYWNoZSBpcyBoZWxkIGJ5IGEgU29mdFJlZmVyZW5jZQorICAgICAqIHNvIGl0IGNhbiBiZSBHQydkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEF2YWlsRW50cnkgZ2V0QXZhaWxFbnRyeShTdHJpbmcga2V5KSB7CisgICAgICAgIEF2YWlsRW50cnkgYWUgPSBudWxsOworICAgICAgICBNYXAgbGNhY2hlID0gbnVsbDsKKyAgICAgICAgaWYgKEdFVF9BVkFJTEFCTEVfQ0FDSEUgIT0gbnVsbCkgeworICAgICAgICAgICAgbGNhY2hlID0gKE1hcCkgR0VUX0FWQUlMQUJMRV9DQUNIRS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChsY2FjaGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFlID0gKEF2YWlsRW50cnkpIGxjYWNoZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhZSA9PSBudWxsKSB7CisgICAgICAgICAgICBhZSA9IG5ldyBBdmFpbEVudHJ5KGtleSk7CisgICAgICAgICAgICBpZiAobGNhY2hlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsY2FjaGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgIGxjYWNoZS5wdXQoa2V5LCBhZSk7CisgICAgICAgICAgICAgICAgR0VUX0FWQUlMQUJMRV9DQUNIRSA9IG5ldyBTb2Z0UmVmZXJlbmNlKGxjYWNoZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxjYWNoZS5wdXQoa2V5LCBhZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBJQ1VSZXNvdXJjZUJ1bmRsZSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soU3RyaW5nIHBhdGgsCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhY3R1YWxCdW5kbGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBudWxsOworICAgICAgICBpZiAocmVxdWVzdGVkID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlcXVlc3RlZCA9IGFjdHVhbEJ1bmRsZTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoYWN0dWFsQnVuZGxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocGF0aCwgIi8iKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbnQgPSBhY3R1YWxCdW5kbGU7CisgICAgICAgICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN1YktleSA9IHN0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIHN1YiA9IGN1cnJlbnQuaGFuZGxlR2V0KHN1YktleSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgICAgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzdWI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3ViICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL3dlIGZvdW5kIGl0CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYWN0dWFsQnVuZGxlLnJlc1BhdGgubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHBhdGggPSBhY3R1YWxCdW5kbGUucmVzUGF0aCArICIvIiArIHBhdGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiBub3QgdHJ5IHRoZSBwYXJlbnQgYnVuZGxlCisgICAgICAgICAgICBhY3R1YWxCdW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGFjdHVhbEJ1bmRsZS5nZXRQYXJlbnQoKTsKKworICAgICAgICB9CisgICAgICAgIGlmKHN1YiAhPSBudWxsKXsKKyAgICAgICAgICAgIHNldExvYWRpbmdTdGF0dXMoc3ViLCByZXF1ZXN0ZWQuZ2V0TG9jYWxlSUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1YjsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIgaW5zdGFuY2VvZiBJQ1VSZXNvdXJjZUJ1bmRsZSkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbyA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgb3RoZXI7CisgICAgICAgICAgICBpZiAoZ2V0QmFzZU5hbWUoKS5lcXVhbHMoby5nZXRCYXNlTmFtZSgpKQorICAgICAgICAgICAgICAgICAgICAmJiBnZXRMb2NhbGVJRCgpLmVxdWFscyhvLmdldExvY2FsZUlEKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAvLyBUaGlzIG1ldGhvZCBpcyBmb3Igc3VwZXIgY2xhc3MncyBpbnN0YW50aWF0ZUJ1bmRsZSBtZXRob2QKKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVJRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NMb2FkZXIgcm9vdCwgYm9vbGVhbiBkaXNhYmxlRmFsbGJhY2speworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYiA9IGluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCBsb2NhbGVJRCwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgYnVuZGxlICIrIGJhc2VOYW1lKyIvIisgbG9jYWxlSUQrIi5yZXMiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9CisgICAgLy8gIHJlY3Vyc2l2ZWx5IGJ1aWxkIGJ1bmRsZSAuLiBvdmVyLXJpZGUgc3VwZXIgY2xhc3MgbWV0aG9kLgorICAgIHByb3RlY3RlZCBzeW5jaHJvbml6ZWQgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVJRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QsIGJvb2xlYW4gZGlzYWJsZUZhbGxiYWNrKXsKKyAgICAgICAgVUxvY2FsZSBkZWZhdWx0TG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyBsb2NhbGVOYW1lID0gbG9jYWxlSUQ7CisgICAgICAgIGlmKGxvY2FsZU5hbWUuaW5kZXhPZignQCcpPjApeworICAgICAgICAgICAgbG9jYWxlTmFtZSA9IFVMb2NhbGUuZ2V0QmFzZU5hbWUobG9jYWxlSUQpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBmdWxsTmFtZSA9IElDVVJlc291cmNlQnVuZGxlUmVhZGVyLmdldEZ1bGxOYW1lKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlsb2FkRnJvbUNhY2hlKHJvb3QsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIGhlcmUgd2UgYXNzdW1lIHRoYXQgamF2YSB0eXBlIHJlc291cmNlIGJ1bmRsZSBvcmdhbml6YXRpb24KKyAgICAgICAgLy8gaXMgcmVxdWlyZWQgdGhlbiB0aGUgYmFzZSBuYW1lIGNvbnRhaW5zICcuJyBlbHNlIAorICAgICAgICAvLyB0aGUgcmVzb3VyY2Ugb3JnYW5pemF0aW9uIGlzIG9mIElDVSB0eXBlCisgICAgICAgIC8vIHNvIGNsaWVudHMgY2FuIGluc3RhbnRpYXRlIHJlc291cmNlcyBvZiB0aGUgdHlwZQorICAgICAgICAvLyBjb20ubXljb21wYW55LmRhdGEuTXlMb2NhbGVFbGVtZW50c19lbi5yZXMgYW5kIAorICAgICAgICAvLyBjb20ubXljb21wYW55LmRhdGEuTXlMb2NhbGVFbGVtZW50cy5yZXMKKyAgICAgICAgLy8KKyAgICAgICAgZmluYWwgU3RyaW5nIHJvb3RMb2NhbGUgPSAoYmFzZU5hbWUuaW5kZXhPZignLicpPT0tMSkgPyAicm9vdCIgOiAiIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGRlZmF1bHRJRCA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICBpZihsb2NhbGVOYW1lLmVxdWFscygiIikpeworICAgICAgICAgICAgbG9jYWxlTmFtZSA9IHJvb3RMb2NhbGU7ICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ3JlYXRpbmcgIitmdWxsTmFtZSsgIiBjdXJyZW50bHkgYiBpcyAiK2IpOworICAgICAgICBpZiAoYiA9PSBudWxsKSB7CisgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmNyZWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKERFQlVHKVN5c3RlbS5vdXQucHJpbnRsbigiVGhlIGJ1bmRsZSBjcmVhdGVkIGlzOiAiK2IrIiBhbmQgZGlzYWJsZUZhbGxiYWNrPSIrZGlzYWJsZUZhbGxiYWNrKyIgYW5kIGJ1bmRsZS5nZXROb0ZhbGxiYWNrPSIrKGIhPW51bGwgJiYgYi5nZXROb0ZhbGxiYWNrKCkpKTsKKyAgICAgICAgICAgIGlmKGRpc2FibGVGYWxsYmFjayB8fCAoYiE9bnVsbCAmJiBiLmdldE5vRmFsbGJhY2soKSkpeworICAgICAgICAgICAgICAgIGFkZFRvQ2FjaGUocm9vdCwgZnVsbE5hbWUsIGRlZmF1bHRMb2NhbGUsIGIpOworICAgICAgICAgICAgICAgIC8vIG5vIGZhbGxiYWNrIGJlY2F1c2UgdGhlIGNhbGxlciBzYWlkIHNvIG9yIGJlY2F1c2UgdGhlIGJ1bmRsZSBzYXlzIHNvCisgICAgICAgICAgICAgICAgcmV0dXJuIGI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIGxvY2FsZSBJRCBwYXJlbnQKKyAgICAgICAgICAgIGlmKGIgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgaW50IGkgPSBsb2NhbGVOYW1lLmxhc3RJbmRleE9mKCdfJyk7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBsb2NhbGVOYW1lLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgdGVtcCwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYiE9bnVsbCAmJiBiLmdldFVMb2NhbGUoKS5lcXVhbHModGVtcCkpeworICAgICAgICAgICAgICAgICAgICAgICAgYi5zZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0spOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGlmKGRlZmF1bHRJRC5pbmRleE9mKGxvY2FsZU5hbWUpPT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gKElDVVJlc291cmNlQnVuZGxlKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCBkZWZhdWx0SUQsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihiIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLnNldExvYWRpbmdTdGF0dXMoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYocm9vdExvY2FsZS5sZW5ndGgoKSE9MCl7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmNyZWF0ZUJ1bmRsZShiYXNlTmFtZSwgcm9vdExvY2FsZSwgcm9vdCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgaWYoYiE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi5zZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgcGFyZW50ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBsb2NhbGVOYW1lID0gYi5nZXRMb2NhbGVJRCgpOworICAgICAgICAgICAgICAgIGludCBpID0gbG9jYWxlTmFtZS5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGFkZFRvQ2FjaGUocm9vdCwgZnVsbE5hbWUsIGRlZmF1bHRMb2NhbGUsIGIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLnN1YnN0cmluZygwLCBpKSwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZighbG9jYWxlTmFtZS5lcXVhbHMocm9vdExvY2FsZSkpeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgcm9vdExvY2FsZSwgcm9vdCwgdHJ1ZSk7ICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKCFiLmVxdWFscyhwYXJlbnQpKXsKKyAgICAgICAgICAgICAgICAgICAgYi5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWNmNDNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEKQEAgLTAsMCArMSw3MjQgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbmRpZgorCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgLy9wcm90ZWN0ZWQgYnl0ZVtdIHZlcnNpb247CisgICAgcHJpdmF0ZSBieXRlW10gcmF3RGF0YTsKKyAgICBwcml2YXRlIGxvbmcgcm9vdFJlc291cmNlOworICAgIHByaXZhdGUgYm9vbGVhbiBub0ZhbGxiYWNrOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYWxlSUQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgYmFzZU5hbWU7CisgICAgcHJpdmF0ZSBVTG9jYWxlIHVsb2NhbGU7CisgICAgcHJpdmF0ZSBDbGFzc0xvYWRlciBsb2FkZXI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIEFTU0VSVCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqIEBwYXJhbSBiYXNlTmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVJRAorICAgICAqIEBwYXJhbSByb290CisgICAgICogQHJldHVybiB0aGUgbmV3IGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgY3JlYXRlQnVuZGxlKFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVJRCwgQ2xhc3NMb2FkZXIgcm9vdCkgeworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIHJlYWRlciA9IElDVVJlc291cmNlQnVuZGxlUmVhZGVyLmdldFJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZU5hbWUsIGxvY2FsZUlELCByb290KTsKKworICAgICAgICAvLyBjb3VsZCBub3Qgb3BlbiB0aGUgLnJlcyBmaWxlIHNvIHJldHVybiBudWxsCisgICAgICAgIGlmIChyZWFkZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwgYnVuZGxlID0gbmV3IElDVVJlc291cmNlQnVuZGxlSW1wbChyZWFkZXIsCisgICAgICAgICAgICAgICAgYmFzZU5hbWUsIGxvY2FsZUlELCByb290KTsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRCdW5kbGUoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgIH0KKworICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICByZXR1cm4gKFVSZXNvdXJjZUJ1bmRsZSkgcGFyZW50OworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldFBhcmVudChSZXNvdXJjZUJ1bmRsZSBwYXJlbnQpIHsKKyAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBub0ZhbGxiYWNrIGZsYWcgc3BlY2lmaWVkIGluIHRoZSBsb2FkZWQgYnVuZGxlLgorICAgICAqIEByZXR1cm4gVGhlIG5vRmFsbGJhY2sgZmxhZy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBnZXROb0ZhbGxiYWNrKCkgeworICAgICAgICByZXR1cm4gbm9GYWxsYmFjazsKKyAgICB9CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgaW50IHR5cGUgPSBSRVNfR0VUX1RZUEUocm9vdFJlc291cmNlKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVEFCTEUpIHsKKyAgICAgICAgICAgIFJlc291cmNlVGFibGUgdGFibGUgPSBuZXcgUmVzb3VyY2VUYWJsZShudWxsLCByb290UmVzb3VyY2UsICIiLCB0cnVlKTsKKyAgICAgICAgICAgIGlmKHRhYmxlLnNpemU9PTEpeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSB0YWJsZS5oYW5kbGVHZXQoMCwgdGFibGUpOworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtS2V5ID0gYi5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyAlJUFMSUFTIGlzIHN1Y2ggYSBoYWNrIQorICAgICAgICAgICAgICAgIGlmIChpdGVtS2V5LmVxdWFscygiJSVBTElBUyIpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBiLmdldFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhY3R1YWwgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZXNvdXJjZVRhYmxlKSBhY3R1YWw7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gVEFCTEUzMikgeworCisgICAgICAgICAgICAvLyBnZW5yYiBkb2VzIG5vdCBnZW5lcmF0ZSBUYWJsZTMyIHdpdGggJSVBTElBUworICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZVRhYmxlMzIobnVsbCwgcm9vdFJlc291cmNlLCAiIiwgdHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCBlcnJvciIpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGVJbXBsKElDVVJlc291cmNlQnVuZGxlUmVhZGVyIHJlYWRlciwgU3RyaW5nIGJhc2VOYW1lLAorICAgICAgICAgICAgU3RyaW5nIGxvY2FsZUlELCBDbGFzc0xvYWRlciBsb2FkZXIpIHsKKyAgICAgICAgdGhpcy5yYXdEYXRhID0gcmVhZGVyLmdldERhdGEoKTsKKyAgICAgICAgdGhpcy5yb290UmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgcmVhZGVyLmdldFJvb3RSZXNvdXJjZSgpOworICAgICAgICB0aGlzLm5vRmFsbGJhY2sgPSByZWFkZXIuZ2V0Tm9GYWxsYmFjaygpOworICAgICAgICB0aGlzLmJhc2VOYW1lID0gYmFzZU5hbWU7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBsb2NhbGVJRDsKKyAgICAgICAgdGhpcy51bG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlSUQpOworICAgICAgICB0aGlzLmxvYWRlciA9IGxvYWRlcjsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIGludCBSRVNfR0VUX1RZUEUobG9uZyByZXMpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpICgocmVzKSA+PiAyOEwpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkVTX0dFVF9PRkZTRVQobG9uZyByZXMpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpICgocmVzICYgMHgwZmZmZmZmZikgKiA0KTsKKyAgICB9CisgICAgLyogZ2V0IHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgZGlyZWN0bHkgZnJvbSB0aGUgUmVzb3VyY2UgaGFuZGxlICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFU19HRVRfSU5UKGxvbmcgcmVzKSB7CisgICAgICAgIHJldHVybiAoKChpbnQpICgocmVzKSA8PCA0TCkpID4+IDRMKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBSRVNfR0VUX1VJTlQobG9uZyByZXMpIHsKKyAgICAgICAgbG9uZyB0ID0gKChyZXMpICYgMHgwZmZmZmZmZkwpOworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIFJFU19HRVRfS0VZKGJ5dGVbXSByYXdEYXRhLAorICAgICAgICAgICAgaW50IGtleU9mZnNldCkgeworICAgICAgICBjaGFyIGNoID0gMHhGRkZGOyAvL3NlbnRpbmVsCisgICAgICAgIFN0cmluZ0J1ZmZlciBrZXkgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlICgoY2ggPSAoY2hhcikgcmF3RGF0YVtrZXlPZmZzZXRdKSAhPSAwKSB7CisgICAgICAgICAgICBrZXkuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIGtleU9mZnNldCsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRJbnRPZmZzZXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gKG9mZnNldCAqIDQpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q2hhck9mZnNldChpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiAob2Zmc2V0ICogMik7CisgICAgfQorICAgIHByaXZhdGUgZmluYWwgSUNVUmVzb3VyY2VCdW5kbGUgY3JlYXRlQnVuZGxlT2JqZWN0KFN0cmluZyBrZXksCisgICAgICAgICAgICBsb25nIHJlc291cmNlLCBTdHJpbmcgcmVzUGF0aCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIC8vaWYgKHJlc291cmNlICE9IFJFU19CT0dVUykgeworICAgICAgICBzd2l0Y2ggKFJFU19HRVRfVFlQRShyZXNvdXJjZSkpIHsKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VTdHJpbmcoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIEJJTkFSWSA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlQmluYXJ5KGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBBTElBUyA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmluZFJlc291cmNlKGtleSwgcmVzb3VyY2UsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBJTlQgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUludChrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgSU5UX1ZFQ1RPUiA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlSW50VmVjdG9yKGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBBUlJBWSA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlQXJyYXkoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFRBQkxFMzIgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZVRhYmxlMzIoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFRBQkxFIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VUYWJsZShrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZmF1bHQgOgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlRoZSByZXNvdXJjZSB0eXBlIGlzIHVua25vd24iKTsKKyAgICAgICAgfQorICAgICAgICAvL30KKyAgICAgICAgLy9yZXR1cm4gbnVsbDsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnQgZmluZEtleShpbnQgc2l6ZSwgaW50IGN1cnJlbnRPZmZzZXQsIFJlc291cmNlIHJlcywgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpbnQgbWlkID0gMCwgc3RhcnQgPSAwLCBsaW1pdCA9IHNpemUsIHJjOworICAgICAgICBpbnQgbGFzdE1pZCA9IC0xOworICAgICAgICAvL2ludCBteUNoYXJPZmZzZXQgPSAwLCBrZXlPZmZzZXQgPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBtaWQgPSAoKHN0YXJ0ICsgbGltaXQpIC8gMik7CisgICAgICAgICAgICBpZiAobGFzdE1pZCA9PSBtaWQpIHsgLyogSGF2ZSB3ZSBtb3ZlZD8gKi8KKyAgICAgICAgICAgICAgICBicmVhazsgLyogV2UgaGF2ZW4ndCBtb3ZlZCwgYW5kIGl0IHdhc24ndCBmb3VuZC4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RNaWQgPSBtaWQ7CisgICAgICAgICAgICBTdHJpbmcgY29tcCA9IHJlcy5nZXRLZXkoY3VycmVudE9mZnNldCwgbWlkKTsKKyAgICAgICAgICAgIHJjID0gdGFyZ2V0LmNvbXBhcmVUbyhjb21wKTsKKyAgICAgICAgICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IG1pZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmMgPiAwKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBwcml2YXRlIGludGVyZmFjZSBSZXNvdXJjZSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5KGludCBjdXJyZW50T2ZzZXQsIGludCBpbmRleCk7CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VUYWJsZSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlIGltcGxlbWVudHMgUmVzb3VyY2UgeworCisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGtleSwgbnVsbCwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgaWYoc2l6ZTw9MCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgLy8gb2Zmc2V0KzAgY29udGFpbnMgbnVtYmVyIG9mIGVudHJpZXMKKyAgICAgICAgICAgIC8vIG9mZnNldCsxIGNvbnRhaW5zIHRoZSBrZXlPZmZzZXQgIAorICAgICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQgPSAob2Zmc2V0KSArIGdldENoYXJPZmZzZXQoMSk7CisgICAgICAgICAgICAvL2ludCBrZXlPZmZzZXQgPSByYXdEYXRhLmdldENoYXIoY3VycmVudE9mZnNldCk7CisgICAgICAgICAgICAvKiBkbyBhIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBrZXkgKi8KKyAgICAgICAgICAgIGludCBmb3VuZE9mZnNldCA9IGZpbmRLZXkoc2l6ZSwgY3VycmVudE9mZnNldCwgdGhpcywga2V5KTsKKyAgICAgICAgICAgIGlmIChmb3VuZE9mZnNldCA9PSAtMSkgeworICAgICAgICAgICAgICAgIC8vdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZShiYXNlTmFtZSwgbG9jYWxlSUQpLAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlSUQsCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudE9mZnNldCArPSBnZXRDaGFyT2Zmc2V0KHNpemUgKyAofnNpemUgJiAxKSkKKyAgICAgICAgICAgICAgICAgICAgKyBnZXRJbnRPZmZzZXQoZm91bmRPZmZzZXQpOworICAgICAgICAgICAgbG9uZyByZXNvdXJjZSA9IChVTlNJR05FRF9JTlRfTUFTSykgJiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsIGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSAoaXNUb3BMZXZlbCA9PSB0cnVlKSA/IGtleSA6IHJlc1BhdGggKyAiLyIgKyBrZXk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVuZGxlT2JqZWN0KGtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVHZXQoaW5kZXgsIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXkoaW50IGN1cnJlbnRPZmZzZXQsIGludCBpbmRleCkgeworICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZ2V0Q2hhck9mZnNldChpbmRleCk7CisgICAgICAgICAgICBpbnQga2V5T2Zmc2V0ID0gZ2V0Q2hhcihyYXdEYXRhLGNoYXJPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIFJFU19HRVRfS0VZKHJhd0RhdGEsIGtleU9mZnNldCkudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICAvLyBvZmZzZXQrMCBjb250YWlucyBudW1iZXIgb2YgZW50cmllcworICAgICAgICAgICAgLy8gb2Zmc2V0KzEgY29udGFpbnMgdGhlIGtleU9mZnNldCAgCisgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IChvZmZzZXQpICsgZ2V0Q2hhck9mZnNldCgxKTsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtS2V5ID0gZ2V0S2V5KGN1cnJlbnRPZmZzZXQsIGluZGV4KTsKKyAgICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gZ2V0Q2hhck9mZnNldChzaXplICsgKH5zaXplICYgMSkpCisgICAgICAgICAgICAgICAgICAgICsgZ2V0SW50T2Zmc2V0KGluZGV4KTsKKyAgICAgICAgICAgIGxvbmcgcmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSAoaXNUb3BMZXZlbCA9PSB0cnVlKQorICAgICAgICAgICAgICAgICAgICA/IEludGVnZXIudG9TdHJpbmcoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIDogcmVzUGF0aCArICIvIiArIGluZGV4OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChpdGVtS2V5LCByZXNvdXJjZSwgcGF0aCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnRJdGVtcygpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBnZXRDaGFyKHJhd0RhdGEsb2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlVGFibGUoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMoa2V5LCByZXNvdXJjZSwgcmVzUGF0aCwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VUYWJsZShTdHJpbmcga2V5LCBsb25nIHJlc291cmNlLCBTdHJpbmcgcmVzUGF0aCwKKyAgICAgICAgICAgICAgICBib29sZWFuIGlzVG9wTGV2ZWwpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5pc1RvcExldmVsID0gaXNUb3BMZXZlbDsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IGNvdW50SXRlbXMoKTsKKyAgICAgICAgICAgIHRoaXMucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldFBhcmVudChSZXNvdXJjZUJ1bmRsZSBwYXJlbnQpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLnNldFBhcmVudChwYXJlbnQpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VUYWJsZTMyIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgaW1wbGVtZW50cyBSZXNvdXJjZSB7CisKKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmKHNpemU8PTApeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldChrZXksIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICAvLyBvZmZzZXQrMCBjb250YWlucyBudW1iZXIgb2YgZW50cmllcworICAgICAgICAgICAgLy8gb2Zmc2V0KzEgY29udGFpbnMgdGhlIGtleU9mZnNldCAgCisgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IChvZmZzZXQpICsgZ2V0SW50T2Zmc2V0KDEpOworICAgICAgICAgICAgLy9pbnQga2V5T2Zmc2V0ID0gcmF3RGF0YS5nZXRDaGFyKGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUga2V5ICovCisgICAgICAgICAgICBpbnQgZm91bmRPZmZzZXQgPSBmaW5kS2V5KHNpemUsIGN1cnJlbnRPZmZzZXQsIHRoaXMsIGtleSk7CisgICAgICAgICAgICBpZiAoZm91bmRPZmZzZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kIHJlc291cmNlICIsCisgICAgICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZShiYXNlTmFtZSwgbG9jYWxlSUQpLAorICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gZ2V0SW50T2Zmc2V0KHNpemUpICsgZ2V0SW50T2Zmc2V0KGZvdW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGxvbmcgcmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSAoaXNUb3BMZXZlbCA9PSB0cnVlKSA/IGtleSA6IHJlc1BhdGggKyAiLyIgKyBrZXk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVuZGxlT2JqZWN0KGtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVHZXQoaW5kZXgsIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXkoaW50IGN1cnJlbnRPZmZzZXQsIGludCBpbmRleCkgeworICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KGluZGV4KTsKKyAgICAgICAgICAgIGludCBrZXlPZmZzZXQgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsY2hhck9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gUkVTX0dFVF9LRVkocmF3RGF0YSwga2V5T2Zmc2V0KS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IHNpemUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIC8vIG9mZnNldCswIGNvbnRhaW5zIG51bWJlciBvZiBlbnRyaWVzCisgICAgICAgICAgICAvLyBvZmZzZXQrMSBjb250YWlucyB0aGUga2V5T2Zmc2V0ICAKKyAgICAgICAgICAgIGludCBjdXJyZW50T2Zmc2V0ID0gKG9mZnNldCkgKyBnZXRJbnRPZmZzZXQoMSkKKyAgICAgICAgICAgICAgICAgICAgKyBnZXRJbnRPZmZzZXQoaW5kZXgpOworICAgICAgICAgICAgU3RyaW5nIGl0ZW1LZXkgPSBnZXRLZXkoY3VycmVudE9mZnNldCwgMCk7CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IGdldEludE9mZnNldChzaXplKTsKKyAgICAgICAgICAgIGxvbmcgcmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSAoaXNUb3BMZXZlbCA9PSB0cnVlKQorICAgICAgICAgICAgICAgICAgICA/IEludGVnZXIudG9TdHJpbmcoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIDogcmVzUGF0aCArICIvIiArIGluZGV4OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChpdGVtS2V5LCByZXNvdXJjZSwgcGF0aCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnRJdGVtcygpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsIG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZVRhYmxlMzIoU3RyaW5nIGtleSwgbG9uZyByZXNvdXJjZSwgU3RyaW5nIHJlc1BhdGgsCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1RvcExldmVsKSB7CisgICAgICAgICAgICB0aGlzLnJlc291cmNlID0gcmVzb3VyY2U7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMuaXNUb3BMZXZlbCA9IGlzVG9wTGV2ZWw7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBjb3VudEl0ZW1zKCk7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VUYWJsZTMyKFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB0aGlzKGtleSwgcmVzb3VyY2UsIHJlc1BhdGgsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQYXJlbnQoUmVzb3VyY2VCdW5kbGUgcGFyZW50KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VTdHJpbmcgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlOworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlU3RyaW5nKFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGdldFN0cmluZ1ZhbHVlKHJlc291cmNlKTsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUludCBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRJbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gUkVTX0dFVF9JTlQocmVzb3VyY2UpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VUludCgpIHsKKyAgICAgICAgICAgIGxvbmcgcmV0ID0gUkVTX0dFVF9VSU5UKHJlc291cmNlKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSByZXQ7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZUludChTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLnJlc291cmNlID0gcmVzb3VyY2U7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQXJyYXkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmdbXSBoYW5kbGVHZXRTdHJpbmdBcnJheSgpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSBuZXcgU3RyaW5nW3NpemVdOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdGVyID0gZ2V0SXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHN0cmluZ3NbaSsrXSA9IGl0ZXIubmV4dCgpLmdldFN0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHN0cmluZ3M7CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U3RyaW5nQXJyYXkoKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0U3RyaW5nQXJyYXkoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGluZGV4LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGludCB2YWwgPSBnZXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAodmFsID4gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KHZhbCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCJDb3VsZCBub3QgZ2V0IHRoZSBjb3JyZWN0IHZhbHVlIGZvciBpbmRleDogIisgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVHZXQoaW5kZXgsIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChpbnQgaW5kZXgsIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IGl0ZW1PZmZzZXQgPSBvZmZzZXQgKyBnZXRJbnRPZmZzZXQoaW5kZXggKyAxKTsKKyAgICAgICAgICAgIGxvbmcgaXRlbVJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxpdGVtT2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkgPyBJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KSA6IHJlc1BhdGggKyAiLyIgKyBpbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCdW5kbGVPYmplY3QobnVsbCwgaXRlbVJlc291cmNlLCBwYXRoLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIGludCBjb3VudEl0ZW1zKCkgeworICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VBcnJheShTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBjb3VudEl0ZW1zKCk7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIG1ha2VDaGFyKGJ5dGUgYjEsIGJ5dGUgYjApIHsKKyAgICAgICAgcmV0dXJuIChjaGFyKSgoYjEgPDwgOCkgfCAoYjAgJiAweGZmKSk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZ2V0Q2hhcihieXRlW11kYXRhLCBpbnQgb2Zmc2V0KXsKKyAgICAgICAgcmV0dXJuIG1ha2VDaGFyKGRhdGFbb2Zmc2V0XSwgZGF0YVtvZmZzZXQrMV0pOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWFrZUludChieXRlIGIzLCBieXRlIGIyLCBieXRlIGIxLCBieXRlIGIwKSB7CisgICAgICAgIHJldHVybiAoaW50KSgoKChiMyAmIDB4ZmYpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAoKGIyICYgMHhmZikgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICgoYjEgJiAweGZmKSA8PCAgOCkgfAorICAgICAgICAgICAgICAgICAgKChiMCAmIDB4ZmYpIDw8ICAwKSkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0SW50KGJ5dGVbXSBkYXRhLCBpbnQgb2Zmc2V0KXsKKyAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJvZmZzZXQgPCBkYXRhLmxlbmd0aCIsIG9mZnNldCA8IGRhdGEubGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1ha2VJbnQoZGF0YVtvZmZzZXRdLCBkYXRhW29mZnNldCsxXSwgCisgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0KzJdLCBkYXRhW29mZnNldCszXSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VCaW5hcnkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHByaXZhdGUgYnl0ZVtdIHZhbHVlOworICAgICAgICBwdWJsaWMgQnl0ZUJ1ZmZlciBnZXRCaW5hcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gQnl0ZUJ1ZmZlci53cmFwKHZhbHVlKTsKKyAgICAgICAgfSAgICAgIAorICAgICAgICBwdWJsaWMgYnl0ZSBbXSBnZXRCaW5hcnkoYnl0ZSBbXWJhKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBieXRlW10gZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxvZmZzZXQpOworICAgICAgICAgICAgaW50IGJ5dGVPZmZzZXQgPSBvZmZzZXQgKyBnZXRJbnRPZmZzZXQoMSk7CisgICAgICAgICAgICBieXRlW10gZHN0ID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgiYnl0ZU9mZnNldCtsZW5ndGggPCByYXdEYXRhLmxlbmd0aCIsIGJ5dGVPZmZzZXQrbGVuZ3RoIDwgcmF3RGF0YS5sZW5ndGgpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyYXdEYXRhLCBieXRlT2Zmc2V0LCBkc3QsIDAsIGxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gZHN0OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBSZXNvdXJjZUJpbmFyeShTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlSW50VmVjdG9yIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcml2YXRlIGludFtdIHZhbHVlOworICAgICAgICBwdWJsaWMgaW50W10gZ2V0SW50VmVjdG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50W10gZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxvZmZzZXQpOworICAgICAgICAgICAgaW50IGludE9mZnNldCA9IG9mZnNldCArIGdldEludE9mZnNldCgxKTsKKyAgICAgICAgICAgIGludFtdIHZhbCA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgICAgIGludCBieXRlTGVuZ3RoID0gZ2V0SW50T2Zmc2V0KGxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgiKGludE9mZnNldCtieXRlTGVuZ3RoKTxyYXdEYXRhLmxlbmd0aCIsIChpbnRPZmZzZXQrYnl0ZUxlbmd0aCk8cmF3RGF0YS5sZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxsZW5ndGg7aSsrKXsKKyAgICAgICAgICAgICAgICB2YWxbaV09SUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLCBpbnRPZmZzZXQrZ2V0SW50T2Zmc2V0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB2YWw7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFJlc291cmNlSW50VmVjdG9yKFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDE7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmdWYWx1ZShsb25nIHJlc291cmNlKSB7CisgICAgICAgIGlmIChyZXNvdXJjZSA9PSAwKSB7IAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoZSBkYXRhIHN0cnVjdHVyZSBpcyBkb2N1bWVudGVkIGFzIHN1cHBvcnRpbmcgcmVzb3VyY2U9PTAgZm9yIGVtcHR5IHN0cmluZ3MuCisgICAgICAgICAgICAgKiBSZXR1cm4gYSBmaXhlZCBwb2ludGVyIGluIHN1Y2ggYSBjYXNlLgorICAgICAgICAgICAgICogVGhpcyB3YXMgZHJvcHBlZCBpbiB1cmVzZGF0YS5jIDEuMTcgYXMgcGFydCBvZiBKaXR0ZXJidWcgMTAwNSB3b3JrCisgICAgICAgICAgICAgKiBvbiBjb2RlIGNvdmVyYWdlIGZvciBJQ1UgMi4wLgorICAgICAgICAgICAgICogUmUtYWRkZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGRlc2lnbiBhbmQgd2l0aCBvdGhlciBjb2RlLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldEludChyYXdEYXRhLG9mZnNldCk7CisgICAgICAgIGludCBzdHJpbmdPZmZzZXQgPSBvZmZzZXQgKyBnZXRJbnRPZmZzZXQoMSk7CisgICAgICAgIGNoYXJbXSBkc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoIihzdHJpbmdPZmZzZXQrZ2V0Q2hhck9mZnNldChsZW5ndGgpKSA8IHJhd0RhdGEubGVuZ3RoIiwgKHN0cmluZ09mZnNldCtnZXRDaGFyT2Zmc2V0KGxlbmd0aCkpIDwgcmF3RGF0YS5sZW5ndGgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxsZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkc3RbaV09Z2V0Q2hhcihyYXdEYXRhLCBzdHJpbmdPZmZzZXQrZ2V0Q2hhck9mZnNldChpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZHN0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVNfUEFUSF9TRVBfQ0hBUiA9ICcvJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTX1BBVEhfU0VQX1NUUiA9ICIvIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVREFUQSA9ICJJQ1VEQVRBIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhZUEhFTiA9ICctJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFID0gIkxPQ0FMRSI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEluZGV4KFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID49IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnZhbHVlT2YocykuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgZmluZFJlc291cmNlKFN0cmluZyBrZXksIGxvbmcgcmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hNYXAgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgQ2xhc3NMb2FkZXIgbG9hZGVyVG9Vc2UgPSBsb2FkZXI7CisgICAgICAgIFN0cmluZyBsb2NhbGUgPSBudWxsLCBrZXlQYXRoID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWU7CisgICAgICAgIFN0cmluZyByZXNQYXRoID0gZ2V0U3RyaW5nVmFsdWUocmVzb3VyY2UpOworICAgICAgICBpZiAodGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGFibGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICB9CisgICAgICAgIGlmICh0YWJsZS5nZXQocmVzUGF0aCkgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gdGhlIHJlc291cmNlIGJ1bmRsZXMiKTsKKyAgICAgICAgfQorICAgICAgICB0YWJsZS5wdXQocmVzUGF0aCwgIiIpOworICAgICAgICBpZiAocmVzUGF0aC5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKSA9PSAwKSB7CisgICAgICAgICAgICBpbnQgaSA9IHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUiwgMSk7CisgICAgICAgICAgICBpbnQgaiA9IHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUiwgaSArIDEpOworICAgICAgICAgICAgYnVuZGxlTmFtZSA9IHJlc1BhdGguc3Vic3RyaW5nKDEsIGkpOworICAgICAgICAgICAgbG9jYWxlID0gcmVzUGF0aC5zdWJzdHJpbmcoaSArIDEpOworICAgICAgICAgICAgaWYgKGogIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSByZXNQYXRoLnN1YnN0cmluZyhpICsgMSwgaik7CisgICAgICAgICAgICAgICAga2V5UGF0aCA9IHJlc1BhdGguc3Vic3RyaW5nKGogKyAxLCByZXNQYXRoLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGhlcmUgaXMgYSBwYXRoIGluY2x1ZGVkCisgICAgICAgICAgICBpZiAoYnVuZGxlTmFtZS5lcXVhbHMoSUNVREFUQSkpIHsKKyAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gSUNVX0JBU0VfTkFNRTsKKyAgICAgICAgICAgICAgICBsb2FkZXJUb1VzZSA9IElDVV9EQVRBX0NMQVNTX0xPQURFUjsKKyAgICAgICAgICAgIH1lbHNlIGlmKGJ1bmRsZU5hbWUuaW5kZXhPZihJQ1VEQVRBKT4tMSl7CisgICAgICAgICAgICAgICAgaW50IGlkeCA9IGJ1bmRsZU5hbWUuaW5kZXhPZihIWVBIRU4pOyAKKyAgICAgICAgICAgICAgICBpZihpZHg+LTEpeworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gSUNVX0JBU0VfTkFNRStSRVNfUEFUSF9TRVBfU1RSK2J1bmRsZU5hbWUuc3Vic3RyaW5nKGlkeCsxLGJ1bmRsZU5hbWUubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBsb2FkZXJUb1VzZSA9IElDVV9EQVRBX0NMQVNTX0xPQURFUjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvL25vIHBhdGggc3RhcnQgd2l0aCBsb2NhbGUKKyAgICAgICAgICAgIGludCBpID0gcmVzUGF0aC5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKTsKKyAgICAgICAgICAgIGtleVBhdGggPSByZXNQYXRoLnN1YnN0cmluZyhpICsgMSk7CisgICAgICAgICAgICBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxvY2FsZSA9IHJlc1BhdGguc3Vic3RyaW5nKDAsIGkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSBrZXlQYXRoOworICAgICAgICAgICAgICAgIGtleVBhdGggPSBudWxsOy8va2V5UGF0aC5zdWJzdHJpbmcoaSwga2V5UGF0aC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidW5kbGVOYW1lID0gYmFzZU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gbnVsbDsKKyAgICAgICAgaWYoYnVuZGxlTmFtZS5lcXVhbHMoTE9DQUxFKSl7CisgICAgICAgICAgICBidW5kbGVOYW1lID0gYmFzZU5hbWU7CisgICAgICAgICAgICBidW5kbGUgPSByZXF1ZXN0ZWQ7CisgICAgICAgICAgICBrZXlQYXRoID0gcmVzUGF0aC5zdWJzdHJpbmcoTE9DQUxFLmxlbmd0aCgpICsgMi8qIHByZXBlbmRpbmcgYW5kIGFwcGVuZGluZyAvICovLCByZXNQYXRoLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGxvY2FsZSA9IHJlcXVlc3RlZC5nZXRMb2NhbGVJRCgpOworICAgICAgICAgICAgc3ViID0gSUNVUmVzb3VyY2VCdW5kbGUuZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKGtleVBhdGgsIHJlcXVlc3RlZCwgbnVsbCk7CisgICAgICAgICAgICBzdWIucmVzUGF0aCA9ICIvIiArIHN1Yi5nZXRMb2NhbGVJRCgpICsgIi8iICsga2V5UGF0aDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyB7ZGxmfSBtdXN0IHVzZSByZXF1ZXN0b3IncyBjbGFzcyBsb2FkZXIgdG8gZ2V0IHJlc291cmNlcyBmcm9tIHNhbWUgamFyCisgICAgICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXJUb1VzZSwgZmFsc2UpOyAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyVG9Vc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChrZXlQYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKGtleVBhdGgsICIvIik7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVudCA9IGJ1bmRsZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWJLZXkgPSBzdC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgc3ViID0gY3VycmVudC5nZXRJbXBsKHN1YktleSwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHN1YjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzdWIgcmVzb3VyY2UgaXMgbm90IGZvdW5kCisgICAgICAgICAgICAgICAgLy8gdHJ5IGZldGNoaW5nIHRoZSBzdWIgcmVzb3VyY2Ugd2l0aAorICAgICAgICAgICAgICAgIC8vIHRoZSBrZXkgb2YgdGhpcyBhbGlhcyByZXNvdXJjZQorICAgICAgICAgICAgICAgIHN1YiA9IGJ1bmRsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1Yi5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24obG9jYWxlSUQsIGJhc2VOYW1lLCBrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY5OGQzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw5OCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworCisvKioKKyAqIDxwPkNsYXNzIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBVUmVzb3VyY2VCdW5kbGUgb2JqZWN0cy4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yIGl0ZXJhdG9yID0gcmVzQi5nZXRJdGVyYXRvcigpOworICogSUNVUmVzb3VyY2VCdW5kbGUgdGVtcDsKKyAqIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAqICAgIHRlbXAgPSBpdGVyYXJ0b3IubmV4dCgpOyAgCisgKiAgICBpbnQgdHlwZSA9IHRlbXAuZ2V0VHlwZSgpOworICogICAgc3dpdGNoKHR5cGUpeworICogICAgICBjYXNlIFVSZXNvdXJjZUJ1bmRsZS5TVFJJTkc6CisgKiAgICAgICAgICBzdHIgPSB0ZW1wLmdldFN0cmluZygpOworICogICAgICAgICAgYnJlYWs7CisgKiAgICAgIGNhc2UgVVJlc291cmNlQnVuZGxlLklOVDoKKyAqICAgICAgICAgIGludGVnZXIgPSB0ZW1wLmdldEludCgpOworICogICAgICAgICAgYnJlYWs7CisgKiAgICAgLi4uLi4KKyAqICAgIH0KKyAqICAgLy8gZG8gc29tZXRoaW5nIGludGVyZXN0aW5nIHdpdGggZGF0YSBjb2xsZWN0ZWQKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciByYW0KKyAqIEBkcmFmdCBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yeworICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlOworICAgIHByaXZhdGUgaW50IGluZGV4ID0gMDsKKyAgICBwcml2YXRlIGludCBzaXplID0gMDsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZXNvdXJjZSBidW5kbGUgaXRlcmF0b3IgZm9yIHRoZQorICAgICAqIGdpdmVuIHJlc291cmNlIGJ1bmRsZQorICAgICAqIAorICAgICAqIEBwYXJhbSBibmRsIFRoZSByZXNvdXJjZSBidW5kbGUgdG8gaXRlcmF0ZSBvdmVyCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvcihJQ1VSZXNvdXJjZUJ1bmRsZSBibmRsKXsKKyAgICAgICAgYnVuZGxlID0gYm5kbDsgICAKKyAgICAgICAgc2l6ZSA9IGJ1bmRsZS5nZXRTaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IG9mIHRoaXMgaXRlcmF0b3IgaWYgdGhpcyBpdGVyYXRvciBvYmplY3QgaGFzIGF0IGxlYXN0IG9uZSBtb3JlIGVsZW1lbnQgdG8gcHJvdmlkZQorICAgICAqIEByZXR1cm4gdGhlIFVSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBAdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0KCl0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoaW5kZXg8c2l6ZSl7CisgICAgICAgICAgICByZXR1cm4gYnVuZGxlLmdldChpbmRleCsrKTsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IFN0cmluZyBvZiB0aGlzIGl0ZXJhdG9yIGlmIHRoaXMgaXRlcmF0b3Igb2JqZWN0IGhhcyBhdCBsZWFzdCBvbmUgbW9yZSBlbGVtZW50IHRvIHByb3ZpZGUKKyAgICAgKiBAcmV0dXJuIHRoZSBVUmVzb3VyY2VCdW5kbGUgb2JqZWN0CisgICAgICogQHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dFN0cmluZygpdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoaW5kZXg8c2l6ZSl7CisgICAgICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZyhpbmRleCsrKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRocm93IG5ldyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgY29udGV4dCBvZiBhIHJlc291cmNlIHNvIHRoYXQgaXRlcmF0aW9uIHN0YXJ0cyBmcm9tIHRoZSBmaXJzdCBlbGVtZW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKXsKKyAgICAgICAgLy9yZXNldCB0aGUgaW50ZXJuYWwgY29udGV4dCAgIAorICAgICAgICBpbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiByZXNvdXJjZSBoYXMgYW5vdGhlciBlbGVtZW50IHRvIGl0ZXJhdGUgb3Zlci4KKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlcmUgYXJlIG1vcmUgZWxlbWVudHMsIEZBTFNFIGlmIHRoZXJlIGlzIG5vIG1vcmUgZWxlbWVudHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKXsKKyAgICAgICAgcmV0dXJuIGluZGV4IDwgc2l6ZTsgICAKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5MTdiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEKQEAgLTAsMCArMSwzMDMgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworCisKKy8qKgorICogVGhpcyBjbGFzcyByZWFkcyB0aGUgKi5yZXMgcmVzb3VyY2UgYnVuZGxlIGZvcm1hdAorICoKKyAqIChGb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBmaWxlIGZvcm1hdCBkb2N1bWVudGF0aW9uIHNlZQorICogSUNVNEMncyBzb3VyY2UvY29tbW9uL3VyZXNkYXRhLmggZmlsZS4pCisgKgorICogRmlsZSBmb3JtYXQgZm9yIC5yZXMgcmVzb3VyY2UgYnVuZGxlIGZpbGVzIChmb3JtYXRWZXJzaW9uPTEuMikKKyAqCisgKiBBbiBJQ1U0QyByZXNvdXJjZSBidW5kbGUgZmlsZSAoLnJlcykgaXMgYSBiaW5hcnksIG1lbW9yeS1tYXBwYWJsZSBmaWxlCisgKiB3aXRoIG5lc3RlZCwgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlcy4KKyAqIEl0IHBoeXNpY2FsbHkgY29udGFpbnMgdGhlIGZvbGxvd2luZzoKKyAqCisgKiAgIFJlc291cmNlIHJvb3Q7IC0tIDMyLWJpdCBSZXNvdXJjZSBpdGVtLCByb290IGl0ZW0gZm9yIHRoaXMgYnVuZGxlJ3MgdHJlZTsKKyAqICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5LCB0aGUgcm9vdCBpdGVtIG11c3QgYmUgYSB0YWJsZSBvciB0YWJsZTMyIHJlc291cmNlIGl0ZW0KKyAqICAgaW50MzJfdCBpbmRleGVzW2luZGV4ZXNbMF1dOyAtLSBhcnJheSBvZiBpbmRleGVzIGZvciBmcmllbmRseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRpbmcgYW5kIHN3YXBwaW5nOyBzZWUgVVJFU19JTkRFWF8qIGFib3ZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGluIGZvcm1hdFZlcnNpb24gMS4xIChJQ1UgMi44KQorICogICBjaGFyIGtleXNbXTsgLS0gY2hhcmFjdGVycyBmb3Iga2V5IHN0cmluZ3MKKyAqICAgICAgICAgICAgICAgICAgIChmb3JtYXRWZXJzaW9uIDEuMDogdXAgdG8gNjVrIG9mIGNoYXJhY3RlcnM7IDEuMTogPDJHKQorICogICAgICAgICAgICAgICAgICAgKG1pbnVzIHRoZSBzcGFjZSBmb3Igcm9vdCBhbmQgaW5kZXhlc1tdKSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIGNvbnNpc3Qgb2YgaW52YXJpYW50IGNoYXJhY3RlcnMgKEFTQ0lJL0VCQ0RJQykgYW5kIGFyZSBOVUwtdGVybWluYXRlZDsKKyAqICAgICAgICAgICAgICAgICAgIHBhZGRlZCB0byBtdWx0aXBsZSBvZiA0IGJ5dGVzIGZvciA0LWFsaWdubWVudCBvZiB0aGUgZm9sbG93aW5nIGRhdGEKKyAqICAgZGF0YTsgLS0gZGF0YSBkaXJlY3RseSBhbmQgaW5kaXJlY3RseSBpbmRleGVkIGJ5IHRoZSByb290IGl0ZW07CisgKiAgICAgICAgICAgIHRoZSBzdHJ1Y3R1cmUgaXMgZGV0ZXJtaW5lZCBieSB3YWxraW5nIHRoZSB0cmVlCisgKgorICogRWFjaCByZXNvdXJjZSBidW5kbGUgaXRlbSBoYXMgYSAzMi1iaXQgUmVzb3VyY2UgaGFuZGxlIChzZWUgdHlwZWRlZiBhYm92ZSkKKyAqIHdoaWNoIGNvbnRhaW5zIHRoZSBpdGVtIHR5cGUgbnVtYmVyIGluIGl0cyB1cHBlciA0IGJpdHMgKDMxLi4yOCkgYW5kIGVpdGhlcgorICogYW4gb2Zmc2V0IG9yIGEgZGlyZWN0IHZhbHVlIGluIGl0cyBsb3dlciAyOCBiaXRzICgyNy4uMCkuCisgKiBUaGUgb3JkZXIgb2YgaXRlbXMgaXMgdW5kZWZpbmVkIGFuZCBvbmx5IGRldGVybWluZWQgYnkgd2Fsa2luZyB0aGUgdHJlZS4KKyAqIExlYXZlcyBvZiB0aGUgdHJlZSBtYXkgYmUgc3RvcmVkIGZpcnN0IG9yIGxhc3Qgb3IgYW55d2hlcmUgaW4gYmV0d2VlbiwKKyAqIGFuZCBpdCBpcyBpbiB0aGVvcnkgcG9zc2libGUgdG8gaGF2ZSB1bnJlZmVyZW5jZWQgaG9sZXMgaW4gdGhlIGZpbGUuCisgKgorICogRGlyZWN0IHZhbHVlczoKKyAqIC0gRW1wdHkgVW5pY29kZSBzdHJpbmdzIGhhdmUgYW4gb2Zmc2V0IHZhbHVlIG9mIDAgaW4gdGhlIFJlc291cmNlIGhhbmRsZSBpdHNlbGYuCisgKiAtIEludGVnZXIgdmFsdWVzIGFyZSAyOC1iaXQgdmFsdWVzIHN0b3JlZCBpbiB0aGUgUmVzb3VyY2UgaGFuZGxlIGl0c2VsZjsKKyAqICAgdGhlIGludGVycHJldGF0aW9uIG9mIHVuc2lnbmVkIHZzLiBzaWduZWQgaW50ZWdlcnMgaXMgdXAgdG8gdGhlIGFwcGxpY2F0aW9uLgorICoKKyAqIEFsbCBvdGhlciB0eXBlcyBhbmQgdmFsdWVzIHVzZSAyOC1iaXQgb2Zmc2V0cyB0byBwb2ludCB0byB0aGUgaXRlbSdzIGRhdGEuCisgKiBUaGUgb2Zmc2V0IGlzIGFuIGluZGV4IHRvIHRoZSBmaXJzdCAzMi1iaXQgd29yZCBvZiB0aGUgdmFsdWUsIHJlbGF0aXZlIHRvIHRoZQorICogc3RhcnQgb2YgdGhlIHJlc291cmNlIGRhdGEgKGkuZS4sIHRoZSByb290IGl0ZW0gaGFuZGxlIGlzIGF0IG9mZnNldCAwKS4KKyAqIFRvIGdldCBieXRlIG9mZnNldHMsIHRoZSBvZmZzZXQgaXMgbXVsdGlwbGllZCBieSA0IChvciBzaGlmdGVkIGxlZnQgYnkgMiBiaXRzKS4KKyAqIEFsbCByZXNvdXJjZSBpdGVtIHZhbHVlcyBhcmUgNC1hbGlnbmVkLgorICoKKyAqIFRoZSBzdHJ1Y3R1cmVzIChtZW1vcnkgbGF5b3V0cykgZm9yIHRoZSB2YWx1ZXMgZm9yIGVhY2ggaXRlbSB0eXBlIGFyZSBsaXN0ZWQKKyAqIGluIHRoZSB0YWJsZSBhYm92ZS4KKyAqCisgKiBOZXN0ZWQsIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmVzOiAtLS0tLS0tLS0tLS0tCisgKgorICogVGFibGUgaXRlbXMgY29udGFpbiBrZXktdmFsdWUgcGFpcnMgd2hlcmUgdGhlIGtleXMgYXJlIDE2LWJpdCBvZmZzZXRzIHRvIGNoYXIgKiBrZXkgc3RyaW5ncy4KKyAqIEtleSBzdHJpbmcgb2Zmc2V0cyBhcmUgYWxzbyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHJlc291cmNlIGRhdGEgKG9mIHRoZSByb290IGhhbmRsZSksCisgKiBpLmUuLCB0aGUgZmlyc3Qgc3RyaW5nIGhhcyBhbiBvZmZzZXQgb2YgNCAoYWZ0ZXIgdGhlIDQtYnl0ZSByb290IGhhbmRsZSkuCisgKgorICogVGhlIHZhbHVlcyBvZiB0aGVzZSBwYWlycyBhcmUgUmVzb3VyY2UgaGFuZGxlcy4KKyAqCisgKiBBcnJheSBpdGVtcyBhcmUgc2ltcGxlIHZlY3RvcnMgb2YgUmVzb3VyY2UgaGFuZGxlcy4KKyAqCisgKiBBbiBhbGlhcyBpdGVtIGlzIHNwZWNpYWwgKGFuZCBuZXcgaW4gSUNVIDIuNCk6IC0tLS0tLS0tLS0tLS0tCisgKgorICogSXRzIG1lbW9yeSBsYXlvdXQgaXMganVzdCBsaWtlIGZvciBhIFVuaWNvZGVTdHJpbmcsIGJ1dCBhdCBydW50aW1lIGl0IHJlc29sdmVzIHRvCisgKiBhbm90aGVyIHJlc291cmNlIGJ1bmRsZSdzIGl0ZW0gYWNjb3JkaW5nIHRvIHRoZSBwYXRoIGluIHRoZSBzdHJpbmcuCisgKiBUaGlzIGlzIHVzZWQgdG8gc2hhcmUgaXRlbXMgYWNyb3NzIGJ1bmRsZXMgdGhhdCBhcmUgaW4gZGlmZmVyZW50IGxvb2t1cC9mYWxsYmFjaworICogY2hhaW5zIChlLmcuLCBsYXJnZSBjb2xsYXRpb24gZGF0YSBhbW9uZyB6aF9UVyBhbmQgemhfSEspLgorICogVGhpcyBzYXZlcyBzcGFjZSAoZm9yIGxhcmdlIGl0ZW1zKSBhbmQgbWFpbnRlbmFuY2UgZWZmb3J0IChsZXNzIGR1cGxpY2F0aW9uIG9mIGRhdGEpLgorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogUmVzb3VyY2UgdHlwZXM6CisgKgorICogTW9zdCByZXNvdXJjZXMgaGF2ZSB0aGVpciB2YWx1ZXMgc3RvcmVkIGF0IGZvdXItYnl0ZSBvZmZzZXRzIGZyb20gdGhlIHN0YXJ0CisgKiBvZiB0aGUgcmVzb3VyY2UgZGF0YS4gVGhlc2UgdmFsdWVzIGFyZSBhdCBsZWFzdCA0LWFsaWduZWQuCisgKiBTb21lIHJlc291cmNlIHZhbHVlcyBhcmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvZmZzZXQgZmllbGQgb2YgdGhlIFJlc291cmNlIGl0c2VsZi4KKyAqIFNlZSBVUmVzVHlwZSBpbiB1bmljb2RlL3VyZXMuaCBmb3IgZW51bWVyYXRpb24gY29uc3RhbnRzIGZvciBSZXNvdXJjZSB0eXBlcy4KKyAqCisgKiBUeXBlIE5hbWUgICAgICAgICAgICBNZW1vcnkgbGF5b3V0IG9mIHZhbHVlcworICogICAgICAgICAgICAgICAgICAgICAgKGluIHBhcmVudGhlc2VzOiBzY2FsYXIsIG5vbi1vZmZzZXQgdmFsdWVzKQorICoKKyAqIDAgIFVuaWNvZGUgU3RyaW5nOiAgIGludDMyX3QgbGVuZ3RoLCBVQ2hhcltsZW5ndGhdLCAoVUNoYXIpMCwgKHBhZGRpbmcpCisgKiAgICAgICAgICAgICAgICAgIG9yICAoZW1wdHkgc3RyaW5nICgiIikgaWYgb2Zmc2V0PT0wKQorICogMSAgQmluYXJ5OiAgICAgICAgICAgaW50MzJfdCBsZW5ndGgsIHVpbnQ4X3RbbGVuZ3RoXSwgKHBhZGRpbmcpCisgKiAgICAgICAgICAgICAgICAgICAgICAtIHRoaXMgdmFsdWUgc2hvdWxkIGJlIDMyLWFsaWduZWQgLQorICogMiAgVGFibGU6ICAgICAgICAgICAgdWludDE2X3QgY291bnQsIHVpbnQxNl90IGtleVN0cmluZ09mZnNldHNbY291bnRdLCAodWludDE2X3QgcGFkZGluZyksIFJlc291cmNlW2NvdW50XQorICogMyAgQWxpYXM6ICAgICAgICAgICAgKHBoeXNpY2FsbHkgc2FtZSB2YWx1ZSBsYXlvdXQgYXMgc3RyaW5nLCBuZXcgaW4gSUNVIDIuNCkKKyAqIDQgIFRhYmxlMzI6ICAgICAgICAgIGludDMyX3QgY291bnQsIGludDMyX3Qga2V5U3RyaW5nT2Zmc2V0c1tjb3VudF0sIFJlc291cmNlW2NvdW50XQorICogICAgICAgICAgICAgICAgICAgICAgKG5ldyBpbiBmb3JtYXRWZXJzaW9uIDEuMS9JQ1UgMi44KQorICoKKyAqIDcgIEludGVnZXI6ICAgICAgICAgICgyOC1iaXQgb2Zmc2V0IGlzIGludGVnZXIgdmFsdWUpCisgKiA4ICBBcnJheTogICAgICAgICAgICBpbnQzMl90IGNvdW50LCBSZXNvdXJjZVtjb3VudF0KKyAqCisgKiAxNCBJbnRlZ2VyIFZlY3RvcjogICBpbnQzMl90IGxlbmd0aCwgaW50MzJfdFtsZW5ndGhdCisgKiAxNSBSZXNlcnZlZDogICAgICAgICBUaGlzIHZhbHVlIGRlbm90ZXMgc3BlY2lhbCBwdXJwb3NlIHJlc291cmNlcyBhbmQgaXMgZm9yIGludGVybmFsIHVzZS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlcmUgYXJlIDMgdHlwZXMgd2l0aCBkYXRhIHZlY3RvciB2YWx1ZXM6CisgKiAtIFZlY3RvcnMgb2YgOC1iaXQgYnl0ZXMgc3RvcmVkIGFzIHR5cGUgQmluYXJ5LgorICogLSBWZWN0b3JzIG9mIDE2LWJpdCB3b3JkcyBzdG9yZWQgYXMgdHlwZSBVbmljb2RlIFN0cmluZworICogICAgICAgICAgICAgICAgICAgICAobm8gdmFsdWUgcmVzdHJpY3Rpb25zLCBhbGwgdmFsdWVzIDAuLmZmZmYgYWxsb3dlZCEpLgorICogLSBWZWN0b3JzIG9mIDMyLWJpdCB3b3JkcyBzdG9yZWQgYXMgdHlwZSBJbnRlZ2VyIFZlY3Rvci4KKyAqCisgKgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRleworCisgICAgLyoqCisgICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgICogIlJlc0IiCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRFtdID0geyhieXRlKTB4NTIsIChieXRlKTB4NjUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDczLCAoYnl0ZSkweDQyfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfUkVTT1VSQ0VfU1VGRklYID0gIi5yZXMiOworICAgIAorICAgIC8qIGluZGV4ZXNbXSB2YWx1ZSBuYW1lczsgaW5kZXhlcyBhcmUgZ2VuZXJhbGx5IDMyLWJpdCAoUmVzb3VyY2UpIGluZGV4ZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9MRU5HVEggICAgICAgICAgID0gMDsgICAgICAgIC8qIFswXSBjb250YWlucyBVUkVTX0lOREVYX1RPUD09dGhlIGxlbmd0aCBvZiBpbmRleGVzW10gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9TVFJJTkdTX1RPUCAgICAgID0gMTsgICAgICAgIC8qIFsxXSBjb250YWlucyB0aGUgdG9wIG9mIHRoZSBzdHJpbmdzLCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgIHNhbWUgYXMgdGhlIGJvdHRvbSBvZiByZXNvdXJjZXMsIHJvdW5kZWQgdXAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9SRVNPVVJDRVNfVE9QICAgID0gMjsgICAgICAgIC8qIFsyXSBjb250YWlucyB0aGUgdG9wIG9mIGFsbCByZXNvdXJjZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9CVU5ETEVfVE9QICAgICAgID0gMzsgICAgICAgIC8qIFszXSBjb250YWlucyB0aGUgdG9wIG9mIHRoZSBidW5kbGUsICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgaW4gY2FzZSBpdCB3ZXJlIGV2ZXIgZGlmZmVyZW50IGZyb20gWzJdICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfTUFYX1RBQkxFX0xFTkdUSCA9IDQ7ICAgICAgICAvKiBbNF0gbWF4LiBsZW5ndGggb2YgYW55IHRhYmxlICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfQVRUUklCVVRFUyAgICAgICA9IDU7ICAgICAgICAvKiBbNV0gYXR0cmlidXRlcyBiaXQgc2V0LCBzZWUgVVJFU19BVFRfKiAobmV3IGluIGZvcm1hdFZlcnNpb24gMS4yKSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgICBVUkVTX0lOREVYX1RPUCAgICAgICAgICAgICAgPSA2OworCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19TVFJJTkdTX0JPVFRPTT0oMStVUkVTX0lOREVYX1RPUCkqNDsKKworICAgIC8qCisgICAgICogTm9mYWxsYmFjayBhdHRyaWJ1dGUsIGF0dHJpYnV0ZSBiaXQgMCBpbiBpbmRleGVzW1VSRVNfSU5ERVhfQVRUUklCVVRFU10uCisgICAgICogTmV3IGluIGZvcm1hdFZlcnNpb24gMS4yIChJQ1UgMy42KS4KKyAgICAgKgorICAgICAqIElmIHNldCwgdGhlbiB0aGlzIHJlc291cmNlIGJ1bmRsZSBpcyBhIHN0YW5kYWxvbmUgYnVuZGxlLgorICAgICAqIElmIG5vdCBzZXQsIHRoZW4gdGhlIGJ1bmRsZSBwYXJ0aWNpcGF0ZXMgaW4gbG9jYWxlIGZhbGxiYWNrLCBldmVudHVhbGx5CisgICAgICogYWxsIHRoZSB3YXkgdG8gdGhlIHJvb3QgYnVuZGxlLgorICAgICAqIElmIGluZGV4ZXNbXSBpcyBtaXNzaW5nIG9yIHRvbyBzaG9ydCwgdGhlbiB0aGUgYXR0cmlidXRlIGNhbm5vdCBiZSBkZXRlcm1pbmVkCisgICAgICogcmVsaWFibHkuIERlcGVuZGVuY3kgY2hlY2tpbmcgc2hvdWxkIGlnbm9yZSBzdWNoIGJ1bmRsZXMsIGFuZCBsb2FkaW5nIHNob3VsZAorICAgICAqIHVzZSBmYWxsYmFja3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVSRVNfQVRUX05PX0ZBTExCQUNLID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSAvKiBmb3JtYXRWZXJzaW9uLCAqLyBkYXRhVmVyc2lvbjsKKworICAgIHByaXZhdGUgaW50IHJvb3RSZXM7CisgICAgcHJpdmF0ZSBpbnRbXSBpbmRleGVzOworICAgIHByaXZhdGUgYm9vbGVhbiBub0ZhbGxiYWNrOyAvKiBzZWUgVVJFU19BVFRfTk9fRkFMTEJBQ0sgKi8KKworICAgIHByaXZhdGUgYnl0ZVtdIGRhdGE7CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlUmVhZGVyKElucHV0U3RyZWFtIHN0cmVhbSwgU3RyaW5nIHJlc29sdmVkTmFtZSl7CisKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBicyA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKHN0cmVhbSk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIHN0cmVhbS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgQnVmZmVyZWRJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIGJzLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBieXRlcyBhdmlhbGFibGUgaW4gc3RyZWFtIGJlZm9yZSByZWFkaW5nIHRoZSBoZWFkZXI6ICIgKyBicy5hdmFpbGFibGUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGFWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoYnMsREFUQV9GT1JNQVRfSUQsdGhpcyk7CisKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBieXRlcyBhdmFpbGFibGUgaW4gc3RyZWFtIGFmdGVyIHJlYWRpbmcgdGhlIGhlYWRlcjogIiArIGJzLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICByZWFkRGF0YShicyk7CisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGV4KXsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRGF0YSBmaWxlICIrIHJlc29sdmVkTmFtZSsgIiBpcyBjb3JydXB0LiIsIGV4KTsgICAKKy8vI2Vsc2UKKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRGF0YSBmaWxlICIrIHJlc29sdmVkTmFtZSsgIiBpcyBjb3JydXB0LiIpOyAgIAorLy8jZW5kaWYKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIGdldFJlYWRlcihTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290KXsKKyAgICAgICAgU3RyaW5nIHJlc29sdmVkTmFtZSA9IGdldEZ1bGxOYW1lKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gSUNVRGF0YS5nZXRTdHJlYW0ocm9vdCxyZXNvbHZlZE5hbWUpOworICAgICAgICAKKyAgICAgICAgaWYoc3RyZWFtPT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIHJlYWRlciA9IG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlcihzdHJlYW0sIHJlc29sdmVkTmFtZSk7CisgICAgICAgIHJldHVybiByZWFkZXI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZUludChpbnQgaSwgYnl0ZVtdIGJ5dGVzLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGJ5dGVzW29mZnNldCsrXT0oYnl0ZSkoaT4+MjQpOworICAgICAgICBieXRlc1tvZmZzZXQrK109KGJ5dGUpKGk+PjE2KTsKKyAgICAgICAgYnl0ZXNbb2Zmc2V0KytdPShieXRlKShpPj44KTsKKyAgICAgICAgYnl0ZXNbb2Zmc2V0XT0oYnl0ZSlpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZHMgPSBuZXcgRGF0YUlucHV0U3RyZWFtKHN0cmVhbSk7CisKKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIERhdGFJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIGRzLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIGF2YWlsYWJsZSBieXRlcyBpbiB0aGUgc3RyZWFtIGJlZm9yZSByZWFkaW5nIHRoZSBkYXRhOiAiK2RzLmF2YWlsYWJsZSgpKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHdpbGwgcmVhZCB0d28gaW50ZWdlcnMgYmVmb3JlIGRzLm1hcmsoKS4KKyAgICAgICAgICogTGF0ZXIsIHRoZSB0d28gaW50ZWdlcnMgbmVlZCB0byBiZSBwbGFjZWQgaW50byBkYXRhW10sCisgICAgICAgICAqIHRoZW4gZHMucmVzZXQoKSwgdGhlbiBkcy5yZWFkRnVsbHkoaW50byByZXN0IG9mIGRhdGFbXSkuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUgcmVhZExpbWl0IGZvciBkcy5tYXJrKCkKKyAgICAgICAgICogdW50aWwgd2UgaGF2ZSByZWFkIHRoZSBzZWNvbmQgaW50ZWdlciAoaW5kZXhMZW5ndGgpLgorICAgICAgICAgKi8KKyAgICAgICAgcm9vdFJlcyA9IGRzLnJlYWRJbnQoKTsKKworICAgICAgICAvLyByZWFkIHRoZSB2YXJpYWJsZS1sZW5ndGggaW5kZXhlc1tdIGFycmF5CisgICAgICAgIGludCBpbmRleExlbmd0aCA9IGRzLnJlYWRJbnQoKTsKKyAgICAgICAgZHMubWFyaygoaW5kZXhMZW5ndGgtMSkqNCk7CisKKyAgICAgICAgaW5kZXhlcyA9IG5ldyBpbnRbaW5kZXhMZW5ndGhdOworICAgICAgICBpbmRleGVzW1VSRVNfSU5ERVhfTEVOR1RIXSA9IGluZGV4TGVuZ3RoOworCisgICAgICAgIGZvcihpbnQgaT0xOyBpPGluZGV4TGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaW5kZXhlc1tpXSA9IGRzLnJlYWRJbnQoKTsgICAKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRldGVybWluZSBpZiB0aGlzIHJlc291cmNlIGJ1bmRsZSBmYWxscyBiYWNrIHRvIGEgcGFyZW50IGJ1bmRsZQorICAgICAgICAvLyBhbG9uZyBub3JtYWwgbG9jYWxlIElEIGZhbGxiYWNrCisgICAgICAgIG5vRmFsbGJhY2sgPQorICAgICAgICAgICAgaW5kZXhMZW5ndGggPiBVUkVTX0lOREVYX0FUVFJJQlVURVMgJiYKKyAgICAgICAgICAgIChpbmRleGVzW1VSRVNfSU5ERVhfQVRUUklCVVRFU10mVVJFU19BVFRfTk9fRkFMTEJBQ0spIT0wOworCisgICAgICAgIC8vIHJlYWQgdGhlIGVudGlyZSBidW5kbGUgKGFmdGVyIHRoZSBoZWFkZXIpIGludG8gZGF0YVtdCisgICAgICAgIC8vIHB1dCByb290UmVzIGFuZCBpbmRleExlbmd0aCBpbnRvIGRhdGFbMC4uN10KKyAgICAgICAgLy8gYW5kIHRoZSByZXN0IG9mIHRoZSBkYXRhIGludG8gZGF0YVs4Li5sZW5ndGgtMV0KKyAgICAgICAgaW50IGxlbmd0aCA9IGluZGV4ZXNbVVJFU19JTkRFWF9CVU5ETEVfVE9QXSo0OworICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBidW5kbGU6ICIrbGVuZ3RoKTsKKyAgICAKKyAgICAgICAgZGF0YSA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgIHdyaXRlSW50KHJvb3RSZXMsIGRhdGEsIDApOworICAgICAgICB3cml0ZUludChpbmRleExlbmd0aCwgZGF0YSwgNCk7CisKKyAgICAgICAgLy8gbm93IHJlc2V0IHRvIHRoZSBtYXJrLCB3aGljaCB3YXMgc2V0IGFmdGVyIHJlYWRpbmcgcm9vdFJlcyBhbmQgaW5kZXhMZW5ndGgKKyAgICAgICAgZHMucmVzZXQoKTsKKyAgICAgICAgZHMucmVhZEZ1bGx5KGRhdGEsIDgsIGxlbmd0aC04KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmdWxsIG5hbWUgb2YgdGhlIHJlc291cmNlIHdpdGggc3VmZml4LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZ1bGxOYW1lKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpeworICAgICAgICBpZihiYXNlTmFtZT09bnVsbCB8fCBiYXNlTmFtZS5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICBpZihsb2NhbGVOYW1lLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREZWZhdWx0KCkudG9TdHJpbmcoKStJQ1VfUkVTT1VSQ0VfU1VGRklYOyAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBpZihiYXNlTmFtZS5pbmRleE9mKCcuJyk9PS0xKXsKKyAgICAgICAgICAgICAgICBpZihiYXNlTmFtZS5jaGFyQXQoYmFzZU5hbWUubGVuZ3RoKCktMSkhPSAnLycpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWUrIi8iK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBiYXNlTmFtZSA9IGJhc2VOYW1lLnJlcGxhY2UoJy4nLCcvJyk7CisgICAgICAgICAgICAgICAgaWYobG9jYWxlTmFtZS5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZStJQ1VfUkVTT1VSQ0VfU1VGRklYOyAgIAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWUrIl8iK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFWZXJzaW9uWzBdLGRhdGFWZXJzaW9uWzFdLGRhdGFWZXJzaW9uWzJdLGRhdGFWZXJzaW9uWzNdKTsgICAKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10peworICAgICAgICAvLyB3aGlsZSBJQ1U0QyBjYW4gcmVhZCBmb3JtYXRWZXJzaW9uIDEuMCBhbmQgdXAsCisgICAgICAgIC8vIElDVTRKIHJlcXVpcmVzIDEuMSBhcyBhIG1pbmltdW0KKyAgICAgICAgLy8gZm9ybWF0VmVyc2lvbiA9IHZlcnNpb247CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IDEgJiYgdmVyc2lvblsxXSA+PSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYnl0ZVtdIGdldERhdGEoKXsKKyAgICAgICAgcmV0dXJuIGRhdGE7ICAgCisgICAgfQorICAgIHB1YmxpYyBpbnQgZ2V0Um9vdFJlc291cmNlKCkgeworICAgICAgICByZXR1cm4gcm9vdFJlczsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZ2V0Tm9GYWxsYmFjaygpIHsKKyAgICAgICAgcmV0dXJuIG5vRmFsbGJhY2s7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYTI0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSw5OTIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvL2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworCitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdEl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8cD5BIFNlcnZpY2UgcHJvdmlkZXMgYWNjZXNzIHRvIHNlcnZpY2Ugb2JqZWN0cyB0aGF0IGltcGxlbWVudCBhCisgKiBwYXJ0aWN1bGFyIHNlcnZpY2UsIGUuZy4gdHJhbnNsaXRlcmF0b3JzLiAgVXNlcnMgcHJvdmlkZSBhIFN0cmluZworICogaWQgKGZvciBleGFtcGxlLCBhIGxvY2FsZSBzdHJpbmcpIHRvIHRoZSBzZXJ2aWNlLCBhbmQgZ2V0IGJhY2sgYW4KKyAqIG9iamVjdCBmb3IgdGhhdCBpZC4gIFNlcnZpY2Ugb2JqZWN0cyBjYW4gYmUgYW55IGtpbmQgb2Ygb2JqZWN0LgorICogVGhlIHNlcnZpY2Ugb2JqZWN0IGlzIGNhY2hlZCBhbmQgcmV0dXJuZWQgZm9yIGxhdGVyIHF1ZXJpZXMsIHNvCisgKiBnZW5lcmFsbHkgaXQgc2hvdWxkIG5vdCBiZSBtdXRhYmxlLCBvciB0aGUgY2FsbGVyIHNob3VsZCBjbG9uZSB0aGUKKyAqIG9iamVjdCBiZWZvcmUgbW9kaWZ5aW5nIGl0LjwvcD4KKyAqCisgKiA8cD5TZXJ2aWNlcyAnY2Fub25pY2FsaXplJyB0aGUgcXVlcnkgaWQgYW5kIHVzZSB0aGUgY2Fub25pY2FsIGlkIHRvCisgKiBxdWVyeSBmb3IgdGhlIHNlcnZpY2UuICBUaGUgc2VydmljZSBhbHNvIGRlZmluZXMgYSBtZWNoYW5pc20gdG8KKyAqICdmYWxsYmFjaycgdGhlIGlkIG11bHRpcGxlIHRpbWVzLiAgQ2xpZW50cyBjYW4gb3B0aW9uYWxseSByZXF1ZXN0CisgKiB0aGUgYWN0dWFsIGlkIHRoYXQgd2FzIG1hdGNoZWQgYnkgYSBxdWVyeSB3aGVuIHRoZXkgdXNlIGFuIGlkIHRvCisgKiByZXRyaWV2ZSBhIHNlcnZpY2Ugb2JqZWN0LjwvcD4KKyAqCisgKiA8cD5TZXJ2aWNlIG9iamVjdHMgYXJlIGluc3RhbnRpYXRlZCBieSBGYWN0b3J5IG9iamVjdHMgcmVnaXN0ZXJlZCB3aXRoCisgKiB0aGUgc2VydmljZS4gIFRoZSBzZXJ2aWNlIHF1ZXJpZXMgZWFjaCBGYWN0b3J5IGluIHR1cm4sIGZyb20gbW9zdCByZWNlbnRseQorICogcmVnaXN0ZXJlZCB0byBlYXJsaWVzdCByZWdpc3RlcmVkLCB1bnRpbCBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LgorICogSWYgbm9uZSByZXNwb25kcyB3aXRoIGEgc2VydmljZSBvYmplY3QsIGEgZmFsbGJhY2sgaWQgaXMgZ2VuZXJhdGVkLAorICogYW5kIHRoZSBwcm9jZXNzIHJlcGVhdHMgdW50aWwgYSBzZXJ2aWNlIG9iamVjdCBpcyByZXR1cm5lZCBvciB1bnRpbAorICogdGhlIGlkIGhhcyBubyBmdXJ0aGVyIGZhbGxiYWNrcy48L3A+CisgKgorICogPHA+RmFjdG9yaWVzIGNhbiBiZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGFuZCB1bnJlZ2lzdGVyZWQgd2l0aCB0aGUKKyAqIHNlcnZpY2UuICBXaGVuIHJlZ2lzdGVyZWQsIGEgRmFjdG9yeSBpcyBpbnN0YWxsZWQgYXQgdGhlIGhlYWQgb2YKKyAqIHRoZSBmYWN0b3J5IGxpc3QsIGFuZCBzbyBnZXRzICdmaXJzdCBjcmFjaycgYXQgYW55IGtleXMgb3IgZmFsbGJhY2sKKyAqIGtleXMuICBXaGVuIHVucmVnaXN0ZXJlZCwgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzZXJ2aWNlIGFuZCBjYW4gbm8KKyAqIGxvbmdlciBiZSBsb2NhdGVkIHRocm91Z2ggaXQuICBTZXJ2aWNlIG9iamVjdHMgZ2VuZXJhdGVkIGJ5IHRoaXMKKyAqIGZhY3RvcnkgYW5kIGhlbGQgYnkgdGhlIGNsaWVudCBhcmUgdW5hZmZlY3RlZC48L3A+CisgKgorICogPHA+SUNVU2VydmljZSB1c2VzIEtleXMgdG8gcXVlcnkgZmFjdG9yaWVzIGFuZCBwZXJmb3JtCisgKiBmYWxsYmFjay4gIFRoZSBLZXkgZGVmaW5lcyB0aGUgY2Fub25pY2FsIGZvcm0gb2YgdGhlIGlkLCBhbmQKKyAqIGltcGxlbWVudHMgdGhlIGZhbGxiYWNrIHN0cmF0ZWd5LiAgQ3VzdG9tIEtleXMgY2FuIGJlIGRlZmluZWQgdGhhdAorICogcGFyc2UgY29tcGxleCBJRHMgaW50byBjb21wb25lbnRzIHRoYXQgRmFjdG9yaWVzIGNhbiBtb3JlIGVhc2lseQorICogdXNlLiAgVGhlIEtleSBjYW4gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBwYXJzaW5nIHRvIHNhdmUKKyAqIHJlcGVhdGVkIGVmZm9ydC4gIElDVVNlcnZpY2UgcHJvdmlkZXMgY29udmVuaWVuY2UgQVBJcyB0aGF0CisgKiB0YWtlIFN0cmluZ3MgYW5kIGdlbmVyYXRlIGRlZmF1bHQgS2V5cyBmb3IgdXNlIGluIHF1ZXJ5aW5nLjwvcD4KKyAqCisgKiA8cD5JQ1VTZXJ2aWNlIHByb3ZpZGVzIEFQSSB0byBnZXQgdGhlIGxpc3Qgb2YgaWRzIHB1YmxpY2x5CisgKiBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2UgKGFsdGhvdWdoIHF1ZXJpZXMgYXJlbid0IHJlc3RyaWN0ZWQgdG8KKyAqIHRoaXMgbGlzdCkuICBUaGlzIGxpc3QgY29udGFpbnMgb25seSAnc2ltcGxlJyBJRHMsIGFuZCBub3QgZnVsbHkKKyAqIHVuaXF1ZSBpZHMuICBGYWN0b3JpZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHNpbXBsZSBJRCBhbmQKKyAqIHRoZSByZXNwb25zaWJsZSBmYWN0b3J5IGNhbiBhbHNvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIGxvY2FsaXplZAorICogdmVyc2lvbiBvZiB0aGUgc2ltcGxlIElELCBmb3IgdXNlIGluIHVzZXIgaW50ZXJmYWNlcy4gIElDVVNlcnZpY2UKKyAqIGNhbiBhbHNvIHByb3ZpZGUgYSBzb3J0ZWQgY29sbGVjdGlvbiBvZiB0aGUgYWxsIHRoZSBsb2NhbGl6ZWQgdmlzaWJsZQorICogaWRzLjwvcD4KKyAqCisgKiA8cD5JQ1VTZXJ2aWNlIGltcGxlbWVudHMgSUNVTm90aWZpZXIsIHNvIHRoYXQgY2xpZW50cyBjYW4gcmVnaXN0ZXIKKyAqIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9uIHdoZW4gZmFjdG9yaWVzIGFyZSBhZGRlZCBvciByZW1vdmVkIGZyb20KKyAqIHRoZSBzZXJ2aWNlLiAgSUNVU2VydmljZSBwcm92aWRlcyBhIGRlZmF1bHQgRXZlbnRMaXN0ZW5lciBzdWJpbnRlcmZhY2UsCisgKiBTZXJ2aWNlTGlzdGVuZXIsIHdoaWNoIGNhbiBiZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UuICBXaGVuCisgKiB0aGUgc2VydmljZSBjaGFuZ2VzLCB0aGUgU2VydmljZUxpc3RlbmVyJ3Mgc2VydmljZUNoYW5nZWQgbWV0aG9kCisgKiBpcyBjYWxsZWQsIHdpdGggdGhlIHNlcnZpY2UgYXMgdGhlIG9ubHkgYXJndW1lbnQuPC9wPgorICoKKyAqIDxwPlRoZSBJQ1VTZXJ2aWNlIEFQSSBpcyBib3RoIHJpY2ggYW5kIGdlbmVyaWMsIGFuZCBpdCBpcyBleHBlY3RlZAorICogdGhhdCBtb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIHN0YXRpY2FsbHkgJ3dyYXAnIElDVVNlcnZpY2UgdG8KKyAqIHByZXNlbnQgYSBtb3JlIGFwcHJvcHJpYXRlIEFQSS0tIGZvciBleGFtcGxlLCB0byBkZWNsYXJlIHRoZSB0eXBlCisgKiBvZiB0aGUgb2JqZWN0cyByZXR1cm5lZCBmcm9tIGdldCwgdG8gbGltaXQgdGhlIGZhY3RvcmllcyB0aGF0IGNhbgorICogYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzZXJ2aWNlLCBvciB0byBkZWZpbmUgdGhlaXIgb3duIGxpc3RlbmVyCisgKiBpbnRlcmZhY2Ugd2l0aCBhIGN1c3RvbSBjYWxsYmFjayBtZXRob2QuICBUaGV5IG1pZ2h0IGFsc28gY3VzdG9taXplCisgKiBJQ1VTZXJ2aWNlIGJ5IG92ZXJyaWRpbmcgaXQsIGZvciBleGFtcGxlLCB0byBjdXN0b21pemUgdGhlIEtleSBhbmQKKyAqIGZhbGxiYWNrIHN0cmF0ZWd5LiAgSUNVTG9jYWxlU2VydmljZSBpcyBhIGN1c3RvbWl6ZWQgc2VydmljZSB0aGF0CisgKiB1c2VzIExvY2FsZSBuYW1lcyBhcyBpZHMgYW5kIHVzZXMgS2V5cyB0aGF0IGltcGxlbWVudCB0aGUgc3RhbmRhcmQKKyAqIHJlc291cmNlIGJ1bmRsZSBmYWxsYmFjayBzdHJhdGVneS48cD4KKyAqLworcHVibGljIGNsYXNzIElDVVNlcnZpY2UgZXh0ZW5kcyBJQ1VOb3RpZmllciB7CisgICAgLyoqCisgICAgICogTmFtZSB1c2VkIGZvciBkZWJ1Z2dpbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIElDVVNlcnZpY2UoKSB7CisgICAgICAgIG5hbWUgPSAiIjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgic2VydmljZSIpOworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCB3aXRoIGEgbmFtZSAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpLgorICAgICAqLworICAgIHB1YmxpYyBJQ1VTZXJ2aWNlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXNzIHRvIGZhY3RvcmllcyBpcyBwcm90ZWN0ZWQgYnkgYSByZWFkLXdyaXRlIGxvY2suICBUaGlzIGlzCisgICAgICogdG8gYWxsb3cgbXVsdGlwbGUgdGhyZWFkcyB0byByZWFkIGNvbmN1cnJlbnRseSwgYnV0IGtlZXAKKyAgICAgKiBjaGFuZ2VzIHRvIHRoZSBmYWN0b3J5IGxpc3QgYXRvbWljIHdpdGggcmVzcGVjdCB0byBhbGwgcmVhZGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIElDVVJXTG9jayBmYWN0b3J5TG9jayA9IG5ldyBJQ1VSV0xvY2soKTsKKworICAgIC8qKgorICAgICAqIEFsbCB0aGUgZmFjdG9yaWVzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIHNlcnZpY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBMaXN0IGZhY3RvcmllcyA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgIC8qKgorICAgICAqIFJlY29yZCB0aGUgZGVmYXVsdCBudW1iZXIgb2YgZmFjdG9yaWVzIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICogQ2FuIGJlIHNldCBieSBtYXJrRGVmYXVsdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkZWZhdWx0U2l6ZSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBLZXlzIGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggZmFjdG9yaWVzIHRvIGdlbmVyYXRlIGFuCisgICAgICogaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UuICBLZXlzIGRlZmluZSBob3cgaWRzIGFyZQorICAgICAqIGNhbm9uaWNhbGl6ZWQsIHByb3ZpZGUgYm90aCBhIGN1cnJlbnQgaWQgYW5kIGEgY3VycmVudAorICAgICAqIGRlc2NyaXB0b3IgdG8gdXNlIGluIHF1ZXJ5aW5nIHRoZSBjYWNoZSBhbmQgZmFjdG9yaWVzLCBhbmQKKyAgICAgKiBkZXRlcm1pbmUgdGhlIGZhbGxiYWNrIHN0cmF0ZWd5LjwvcD4KKyAgICAgKgorICAgICAqIDxwPktleXMgcHJvdmlkZSBib3RoIGEgY3VycmVudERlc2NyaXB0b3IgYW5kIGEgY3VycmVudElELgorICAgICAqIFRoZSBkZXNjcmlwdG9yIGNvbnRhaW5zIGFuIG9wdGlvbmFsIHByZWZpeCwgZm9sbG93ZWQgYnkgJy8nCisgICAgICogYW5kIHRoZSBjdXJyZW50SUQuICBGYWN0b3JpZXMgdGhhdCBoYW5kbGUgY29tcGxleCBrZXlzLAorICAgICAqIGZvciBleGFtcGxlIG51bWJlciBmb3JtYXQgZmFjdG9yaWVzIHRoYXQgZ2VuZXJhdGUgbXVsdGlwbGUKKyAgICAgKiBraW5kcyBvZiBmb3JtYXR0ZXJzIGZvciB0aGUgc2FtZSBsb2NhbGUsIHVzZSB0aGUgZGVzY3JpcHRvcgorICAgICAqIHRvIHByb3ZpZGUgYSBmdWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNlcnZpY2Ugb2JqZWN0LAorICAgICAqIHdoaWxlIHVzaW5nIHRoZSBjdXJyZW50SUQgKGluIHRoaXMgY2FzZSwgdGhlIGxvY2FsZSBzdHJpbmcpLAorICAgICAqIGFzIHRoZSB2aXNpYmxlIElEcyB0aGF0IGNhbiBiZSBsb2NhbGl6ZWQuCisgICAgICoKKyAgICAgKiA8cD4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgS2V5IGhhcyBubyBmYWxsYmFja3MgYW5kCisgICAgICogaGFzIG5vIGN1c3RvbSBkZXNjcmlwdG9ycy48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBLZXkgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0IGEga2V5IGZyb20gYW4gaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgS2V5KFN0cmluZyBpZCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgb3JpZ2luYWwgSUQgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBrZXkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGlkKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgY2Fub25pY2FsIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIElELiAgVGhpcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgKiByZXR1cm5zIHRoZSBvcmlnaW5hbCBJRCB1bmNoYW5nZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGNhbm9uaWNhbElEKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgY3VycmVudCBJRC4gIFRoaXMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICogcmV0dXJucyB0aGUgY2Fub25pY2FsIElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50SUQoKSB7CisgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsSUQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgZGVzY3JpcHRvci4gIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucworICAgICAgICAgKiB0aGUgY3VycmVudCBJRC4gIFRoZSBjdXJyZW50IGRlc2NyaXB0b3IgaXMgdXNlZCB0byBmdWxseQorICAgICAgICAgKiBpZGVudGlmeSBhbiBpbnN0YW5jZSBvZiB0aGUgc2VydmljZSBpbiB0aGUgY2FjaGUuICBBCisgICAgICAgICAqIGZhY3RvcnkgbWF5IGhhbmRsZSBhbGwgZGVzY3JpcHRvcnMgZm9yIGFuIElELCBvciBqdXN0IGEKKyAgICAgICAgICogcGFydGljdWxhciBkZXNjcmlwdG9yLiAgVGhlIGZhY3RvcnkgY2FuIGVpdGhlciBwYXJzZSB0aGUKKyAgICAgICAgICogZGVzY3JpcHRvciBvciB1c2UgY3VzdG9tIEFQSSBvbiB0aGUga2V5IGluIG9yZGVyIHRvCisgICAgICAgICAqIGluc3RhbnRpYXRlIHRoZSBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvcigpIHsKKyAgICAgICAgICAgIHJldHVybiAiLyIgKyBjdXJyZW50SUQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGUga2V5IGhhcyBhIGZhbGxiYWNrLCBtb2RpZnkgdGhlIGtleSBhbmQgcmV0dXJuIHRydWUsCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuICBUaGUgY3VycmVudCBJRCB3aWxsIGNoYW5nZSBpZiB0aGVyZQorICAgICAgICAgKiBpcyBhIGZhbGxiYWNrLiAgTm8gY3VycmVudElEcyBzaG91bGQgYmUgcmVwZWF0ZWQsIGFuZCBmYWxsYmFjaworICAgICAgICAgKiBtdXN0IGV2ZW50dWFsbHkgcmV0dXJuIGZhbHNlLiAgVGhpcyBpbXBsbWVudGF0aW9uIGhhcyBubyBmYWxsYmFja3MKKyAgICAgICAgICogYW5kIGFsd2F5cyByZXR1cm5zIGZhbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgYSBrZXkgY3JlYXRlZCBmcm9tIGlkIHdvdWxkIGV2ZW50dWFsbHkgZmFsbGJhY2sgdG8gbWF0Y2ggdGhlCisgICAgICAgICAqIGNhbm9uaWNhbCBJRCBvZiB0aGlzIGtleSwgcmV0dXJuIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsSUQoKS5lcXVhbHMoaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmFjdG9yaWVzIGdlbmVyYXRlIHRoZSBzZXJ2aWNlIG9iamVjdHMgbWFpbnRhaW5lZCBieSB0aGUKKyAgICAgKiBzZXJ2aWNlLiAgQSBmYWN0b3J5IGdlbmVyYXRlcyBhIHNlcnZpY2Ugb2JqZWN0IGZyb20gYSBrZXksCisgICAgICogdXBkYXRlcyBpZC0+ZmFjdG9yeSBtYXBwaW5ncywgYW5kIHJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBmb3IKKyAgICAgKiBhIHN1cHBvcnRlZCBpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBGYWN0b3J5IHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgc2VydmljZSBvYmplY3QgZnJvbSB0aGUga2V5LCBpZiB0aGlzIGZhY3RvcnkKKyAgICAgICAgICogc3VwcG9ydHMgdGhlIGtleS4gIE90aGVyd2lzZSwgcmV0dXJuIG51bGwuCisgICAgICAgICAqCisgICAgICAgICAqIDxwPklmIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBrZXksIHRoZW4gaXQgY2FuIGNhbGwKKyAgICAgICAgICogdGhlIHNlcnZpY2UncyBnZXRLZXkoS2V5LCBTdHJpbmdbXSwgRmFjdG9yeSkgbWV0aG9kCisgICAgICAgICAqIHBhc3NpbmcgaXRzZWxmIGFzIHRoZSBmYWN0b3J5IHRvIGdldCB0aGUgb2JqZWN0IHRoYXQKKyAgICAgICAgICogdGhlIHNlcnZpY2Ugd291bGQgaGF2ZSBjcmVhdGVkIHByaW9yIHRvIHRoZSBmYWN0b3J5J3MKKyAgICAgICAgICogcmVnaXN0cmF0aW9uIHdpdGggdGhlIHNlcnZpY2UuICBUaGlzIGNhbiBjaGFuZ2UgdGhlCisgICAgICAgICAqIGtleSwgc28gYW55IGluZm9ybWF0aW9uIHJlcXVpcmVkIGZyb20gdGhlIGtleSBzaG91bGQKKyAgICAgICAgICogYmUgZXh0cmFjdGVkIGJlZm9yZSBtYWtpbmcgc3VjaCBhIGNhbGxiYWNrLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoS2V5IGtleSwgSUNVU2VydmljZSBzZXJ2aWNlKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVXBkYXRlIHRoZSByZXN1bHQgSURzIChub3QgZGVzY3JpcHRvcnMpIHRvIHJlZmxlY3QgdGhlIElEcworICAgICAgICAgKiB0aGlzIGZhY3RvcnkgaGFuZGxlcy4gIFRoaXMgZnVuY3Rpb24gYW5kIGdldERpc3BsYXlOYW1lIGFyZQorICAgICAgICAgKiB1c2VkIHRvIHN1cHBvcnQgSUNVU2VydmljZS5nZXREaXNwbGF5TmFtZXMuICBCYXNpY2FsbHksIHRoZQorICAgICAgICAgKiBmYWN0b3J5IGhhcyB0byBkZXRlcm1pbmUgd2hpY2ggSURzIGl0IHdpbGwgcGVybWl0IHRvIGJlCisgICAgICAgICAqIGF2YWlsYWJsZSwgYW5kIG9mIHRob3NlLCB3aGljaCBpdCB3aWxsIHByb3ZpZGUgbG9jYWxpemVkCisgICAgICAgICAqIGRpc3BsYXkgbmFtZXMgZm9yLiAgSW4gbW9zdCBjYXNlcyB0aGlzIHJlZmxlY3RzIHRoZSBJRHMgdGhhdAorICAgICAgICAgKiB0aGUgZmFjdG9yeSBkaXJlY3RseSBzdXBwb3J0cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGlzIGlkIGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICAgICAqIFRoaXMgaXMgYW4gbG9jYWxpemVkIGlkLCBub3QgYSBkZXNjcmlwdG9yLiAgSWYgdGhlIGlkIGlzCisgICAgICAgICAqIG5vdCB2aXNpYmxlIG9yIG5vdCBkZWZpbmVkIGJ5IHRoZSBmYWN0b3J5LCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogSWYgbG9jYWxlIGlzIG51bGwsIHJldHVybiBpZCB1bmNoYW5nZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBmYWN0b3J5LiAgVGhpcyBwcm92aWRlcyBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb25zIGZvciBzdWJjbGFzc2VzLCBhbmQgaW1wbGVtZW50cyBhIHNpbmdsZXRvbgorICAgICAqIGZhY3RvcnkgdGhhdCBtYXRjaGVzIGEgc2luZ2xlIGlkICBhbmQgcmV0dXJucyBhIHNpbmdsZQorICAgICAqIChwb3NzaWJseSBkZWZlcnJlZC1pbml0aWFsaXplZCkgaW5zdGFuY2UuICBUaGlzIGltcGxlbWVudHMKKyAgICAgKiB1cGRhdGVWaXNpYmxlSURzIHRvIGFkZCBhIG1hcHBpbmcgZnJvbSBpdHMgSUQgdG8gaXRzZWxmCisgICAgICogaWYgdmlzaWJsZSBpcyB0cnVlLCBvciB0byByZW1vdmUgYW55IGV4aXN0aW5nIG1hcHBpbmcKKyAgICAgKiBmb3IgaXRzIElEIGlmIHZpc2libGUgaXMgZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBTaW1wbGVGYWN0b3J5IGltcGxlbWVudHMgRmFjdG9yeSB7CisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaW5zdGFuY2U7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgaWQ7CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZpc2libGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIGNvbnN0cnVjdG9yIHRoYXQgY2FsbHMgU2ltcGxlRmFjdG9yeShPYmplY3QsIFN0cmluZywgYm9vbGVhbikKKyAgICAgICAgICogd2l0aCB2aXNpYmxlIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2ltcGxlRmFjdG9yeShPYmplY3QgaW5zdGFuY2UsIFN0cmluZyBpZCkgeworICAgICAgICAgICAgdGhpcyhpbnN0YW5jZSwgaWQsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdCBhIHNpbXBsZSBmYWN0b3J5IHRoYXQgbWFwcyBhIHNpbmdsZSBpZCB0byBhIHNpbmdsZQorICAgICAgICAgKiBzZXJ2aWNlIGluc3RhbmNlLiAgSWYgdmlzaWJsZSBpcyB0cnVlLCB0aGUgaWQgd2lsbCBiZSB2aXNpYmxlLgorICAgICAgICAgKiBOZWl0aGVyIHRoZSBpbnN0YW5jZSBub3IgdGhlIGlkIGNhbiBiZSBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNpbXBsZUZhY3RvcnkoT2JqZWN0IGluc3RhbmNlLCBTdHJpbmcgaWQsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICAgICAgaWYgKGluc3RhbmNlID09IG51bGwgfHwgaWQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluc3RhbmNlIG9yIGlkIGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBzZXJ2aWNlIGluc3RhbmNlIGlmIHRoZSBmYWN0b3J5J3MgaWQgaXMgZXF1YWwgdG8KKyAgICAgICAgICogdGhlIGtleSdzIGN1cnJlbnRJRC4gIFNlcnZpY2UgaXMgaWdub3JlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgaWYgKGlkLmVxdWFscyhrZXkuY3VycmVudElEKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdmlzaWJsZSwgYWRkcyBhIG1hcHBpbmcgZnJvbSBpZCAtPiB0aGlzIHRvIHRoZSByZXN1bHQsCisgICAgICAgICAqIG90aGVyd2lzZSByZW1vdmVzIGlkIGZyb20gcmVzdWx0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmlzaWJsZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoaWQsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVtb3ZlKGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGlzLmlkIGVxdWFscyBpZCwgcmV0dXJucyBpZCByZWdhcmRsZXNzIG9mIGxvY2FsZSwKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybnMgbnVsbC4gIChUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaGFzCisgICAgICAgICAqIG5vIGxvY2FsaXplZCBpZCBpbmZvcm1hdGlvbi4pCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiAodmlzaWJsZSAmJiB0aGlzLmlkLmVxdWFscyhpZCkpID8gaWQgOiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvciBkZWJ1Z2dpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsIGlkOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaWQpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCB2aXNpYmxlOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmlzaWJsZSk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgZ2V0KFN0cmluZywgU3RyaW5nW10pLiBUaGlzIHVzZXMKKyAgICAgKiBjcmVhdGVLZXkgdG8gY3JlYXRlIGEga2V5IGZvciB0aGUgcHJvdmlkZWQgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChTdHJpbmcgZGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4gZ2V0S2V5KGNyZWF0ZUtleShkZXNjcmlwdG9yKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldChLZXksIFN0cmluZ1tdKS4gIFRoaXMgdXNlcworICAgICAqIGNyZWF0ZUtleSB0byBjcmVhdGUgYSBrZXkgZnJvbSB0aGUgcHJvdmlkZWQgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChTdHJpbmcgZGVzY3JpcHRvciwgU3RyaW5nW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIGlmIChkZXNjcmlwdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiZGVzY3JpcHRvciBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEtleShjcmVhdGVLZXkoZGVzY3JpcHRvciksIGFjdHVhbFJldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldChLZXksIFN0cmluZ1tdKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEtleShLZXkga2V5KSB7CisgICAgICAgIHJldHVybiBnZXRLZXkoa2V5LCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HaXZlbiBhIGtleSwgcmV0dXJuIGEgc2VydmljZSBvYmplY3QsIGFuZCwgaWYgYWN0dWFsUmV0dXJuCisgICAgICogaXMgbm90IG51bGwsIHRoZSBkZXNjcmlwdG9yIHdpdGggd2hpY2ggaXQgd2FzIGZvdW5kIGluIHRoZQorICAgICAqIGZpcnN0IGVsZW1lbnQgb2YgYWN0dWFsUmV0dXJuLiAgSWYgbm8gc2VydmljZSBvYmplY3QgbWF0Y2hlcworICAgICAqIHRoaXMga2V5LCByZXR1cm4gbnVsbCwgYW5kIGxlYXZlIGFjdHVhbFJldHVybiB1bmNoYW5nZWQuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBxdWVyaWVzIHRoZSBjYWNoZSB1c2luZyB0aGUga2V5J3MgZGVzY3JpcHRvciwgYW5kIGlmIG5vCisgICAgICogb2JqZWN0IGluIHRoZSBjYWNoZSBtYXRjaGVzIGl0LCB0cmllcyB0aGUga2V5IG9uIGVhY2gKKyAgICAgKiByZWdpc3RlcmVkIGZhY3RvcnksIGluIG9yZGVyLiAgSWYgbm9uZSBnZW5lcmF0ZXMgYSBzZXJ2aWNlCisgICAgICogb2JqZWN0IGZvciB0aGUga2V5LCByZXBlYXRzIHRoZSBwcm9jZXNzIHdpdGggZWFjaCBmYWxsYmFjayBvZgorICAgICAqIHRoZSBrZXksIHVudGlsIGVpdGhlciBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LCBvciB0aGUga2V5CisgICAgICogaGFzIG5vIGZhbGxiYWNrLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIGtleSBpcyBudWxsLCBqdXN0IHJldHVybnMgbnVsbC48L3A+CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRLZXkoS2V5IGtleSwgU3RyaW5nW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIHJldHVybiBnZXRLZXkoa2V5LCBhY3R1YWxSZXR1cm4sIG51bGwpOworICAgIH0KKworICAgIC8vIGRlYnVnZ2luZworICAgIC8vIE1hcCBoYXJkUmVmOworCisgICAgcHVibGljIE9iamVjdCBnZXRLZXkoS2V5IGtleSwgU3RyaW5nW10gYWN0dWFsUmV0dXJuLCBGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3Rvcmllcy5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZURlZmF1bHQoa2V5LCBhY3R1YWxSZXR1cm4pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNlcnZpY2U6ICIgKyBuYW1lICsgIiBrZXk6ICIgKyBrZXkuY2Fub25pY2FsSUQoKSk7CisKKyAgICAgICAgQ2FjaGVFbnRyeSByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGZhY3RvcnkgbGlzdCBjYW4ndCBiZSBtb2RpZmllZCB1bnRpbCB3ZSdyZSBkb25lLAorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBtaWdodCB1cGRhdGUgdGhlIGNhY2hlIHdpdGggYW4gaW52YWxpZCByZXN1bHQuCisgICAgICAgICAgICAgICAgLy8gVGhlIGNhY2hlIGhhcyB0byBzdGF5IGluIHN5bmNoIHdpdGggdGhlIGZhY3RvcnkgbGlzdC4KKyAgICAgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlUmVhZCgpOworCisgICAgICAgICAgICAgICAgTWFwIGNhY2hlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBTb2Z0UmVmZXJlbmNlIGNyZWYgPSBjYWNoZXJlZjsgLy8gY29weSBzbyB3ZSBkb24ndCBuZWVkIHRvIHN5bmMgb24gdGhpcworICAgICAgICAgICAgICAgIGlmIChjcmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNlcnZpY2UgIiArIG5hbWUgKyAiIHJlZiBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgY2FjaGUgPSAoTWFwKWNyZWYuZ2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTZXJ2aWNlICIgKyBuYW1lICsgIiBjYWNoZSB3YXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3luY2hyb25pemVkIHNpbmNlIGFkZGl0aW9ucyBhbmQgcXVlcmllcyBvbiB0aGUgY2FjaGUgbXVzdCBiZSBhdG9taWMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhleSBjYW4gYmUgaW50ZXJsZWF2ZWQsIHRob3VnaAorICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IENvbGxlY3Rpb25zLnN5bmNocm9uaXplZE1hcChuZXcgSGFzaE1hcCgpKTsKKy8vICAgICAgICAgICAgICAgICAgaGFyZFJlZiA9IGNhY2hlOyAvLyBkZWJ1ZworICAgICAgICAgICAgICAgICAgICBjcmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoY2FjaGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvciA9IG51bGw7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGNhY2hlRGVzY3JpcHRvckxpc3QgPSBudWxsOworICAgICAgICAgICAgICAgIGJvb2xlYW4gcHV0SW5DYWNoZSA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgaW50IE5EZWJ1ZyA9IDA7CisKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnRJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gZmFjdG9yaWVzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGNhY2hlUmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoZmFjdG9yeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhY3RvcnkgPT0gZmFjdG9yaWVzLmdldChpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWN0b3J5ICIgKyBmYWN0b3J5ICsgIm5vdCByZWdpc3RlcmVkIHdpdGggc2VydmljZTogIiArIHRoaXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRlcjoKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREZXNjcmlwdG9yID0ga2V5LmN1cnJlbnREZXNjcmlwdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiWyIgKyBORGVidWcrKyArICJdIGxvb2tpbmcgZm9yOiAiICsgY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoQ2FjaGVFbnRyeSljYWNoZS5nZXQoY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiIGZvdW5kIHdpdGggZGVzY3JpcHRvcjogIiArIGN1cnJlbnREZXNjcmlwdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImRpZCBub3QgZmluZDogIiArIGN1cnJlbnREZXNjcmlwdG9yICsgIiBpbiBjYWNoZSIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgdGVzdCBvZiBjYWNoZSBmYWlsZWQsIHNvIHdlJ2xsIGhhdmUgdG8gdXBkYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYWNoZSBpZiB3ZSBldmVudHVhbGx5IHN1Y2NlZWQtLSB0aGF0IGlzLCBpZiB3ZSdyZQorICAgICAgICAgICAgICAgICAgICAvLyBnb2luZyB0byB1cGRhdGUgdGhlIGNhY2hlIGF0IGFsbC4KKyAgICAgICAgICAgICAgICAgICAgcHV0SW5DYWNoZSA9IGNhY2hlUmVzdWx0OworCisgICAgICAgICAgICAgICAgICAgIC8vICBpbnQgbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSlmYWN0b3JpZXMuZ2V0KGluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInRyeWluZyBmYWN0b3J5WyIgKyAoaW5kZXgtMSkgKyAiXSAiICsgZi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBzZXJ2aWNlID0gZi5jcmVhdGUoa2V5LCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgQ2FjaGVFbnRyeShjdXJyZW50RGVzY3JpcHRvciwgc2VydmljZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgZmFjdG9yeSBzdXBwb3J0ZWQ6ICIgKyBjdXJyZW50RGVzY3JpcHRvciArICIsIGNhY2hpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZhY3RvcnkgZGlkIG5vdCBzdXBwb3J0OiAiICsgY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGFyZSB0byBsb2FkIHRoZSBjYWNoZSB3aXRoIGFsbCBhZGRpdGlvbmFsIGlkcyB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgcmVzb2x2ZSB0byByZXN1bHQsIGFzc3VtaW5nIHdlJ2xsIHN1Y2NlZWQuICBXZQorICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCB3YW50IHRvIGtlZXAgcXVlcnlpbmcgb24gYW4gaWQgdGhhdCdzIGdvaW5nIHRvCisgICAgICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBvbmUgdGhhdCBzdWNjZWVkZWQsIHdlIHdhbnQgdG8gaGl0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZSB0aGUgZmlyc3QgdGltZSBuZXh0IGdvYXJvdW5kLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVEZXNjcmlwdG9yTGlzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZURlc2NyaXB0b3JMaXN0ID0gbmV3IEFycmF5TGlzdCg1KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYWNoZURlc2NyaXB0b3JMaXN0LmFkZChjdXJyZW50RGVzY3JpcHRvcik7CisKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChrZXkuZmFsbGJhY2soKSk7CisKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHB1dEluQ2FjaGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjYWNoaW5nICciICsgcmVzdWx0LmFjdHVhbERlc2NyaXB0b3IgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUucHV0KHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlRGVzY3JpcHRvckxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjYWNoZURlc2NyaXB0b3JMaXN0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgYWRkaW5nIGRlc2NyaXB0b3I6ICciICsgZGVzYyArICInIGZvciBhY3R1YWw6ICciICsgcmVzdWx0LmFjdHVhbERlc2NyaXB0b3IgKyAiJyIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLnB1dChkZXNjLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0b21pYyB1cGRhdGUuICBXZSBoZWxkIHRoZSByZWFkIGxvY2sgYWxsIHRoaXMgdGltZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gd2Uga25vdyBvdXIgY2FjaGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBmYWN0b3J5IGxpc3QuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtaWdodCBzdG9tcCBvdmVyIGEgY2FjaGUgdGhhdCBzb21lIG90aGVyIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVidWlsdCwgYnV0IHRoYXQncyB0aGUgYnJlYWtzLiAgVGhleSdyZSBib3RoIGdvb2QuCisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZXJlZiA9IGNyZWY7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFsUmV0dXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlwIG51bGwgcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmFjdHVhbERlc2NyaXB0b3IuaW5kZXhPZigiLyIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSByZXN1bHQuYWN0dWFsRGVzY3JpcHRvci5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbFJldHVyblswXSA9IHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvdW5kIGluIHNlcnZpY2U6ICIgKyBuYW1lKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnNlcnZpY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmFjdG9yeUxvY2sucmVsZWFzZVJlYWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJub3QgZm91bmQgaW4gc2VydmljZTogIiArIG5hbWUpOworCisgICAgICAgIHJldHVybiBoYW5kbGVEZWZhdWx0KGtleSwgYWN0dWFsUmV0dXJuKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTb2Z0UmVmZXJlbmNlIGNhY2hlcmVmOworCisgICAgLy8gUmVjb3JkIHRoZSBhY3R1YWwgaWQgZm9yIHRoaXMgc2VydmljZSBpbiB0aGUgY2FjaGUsIHNvIHdlIGNhbiByZXR1cm4gaXQKKyAgICAvLyBldmVuIGlmIHdlIHN1Y2NlZWQgbGF0ZXIgd2l0aCBhIGRpZmZlcmVudCBpZC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBDYWNoZUVudHJ5IHsKKyAgICAgICAgZmluYWwgU3RyaW5nIGFjdHVhbERlc2NyaXB0b3I7CisgICAgICAgIGZpbmFsIE9iamVjdCBzZXJ2aWNlOworICAgICAgICBDYWNoZUVudHJ5KFN0cmluZyBhY3R1YWxEZXNjcmlwdG9yLCBPYmplY3Qgc2VydmljZSkgeworICAgICAgICAgICAgdGhpcy5hY3R1YWxEZXNjcmlwdG9yID0gYWN0dWFsRGVzY3JpcHRvcjsKKyAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgaGFuZGxlciBmb3IgdGhpcyBzZXJ2aWNlIGlmIG5vIGZhY3RvcnkgaW4gdGhlIGxpc3QKKyAgICAgKiBoYW5kbGVkIHRoZSBrZXkuCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVEZWZhdWx0KEtleSBrZXksIFN0cmluZ1tdIGFjdHVhbElEUmV0dXJuKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBnZXRWaXNpYmxlSURzKFN0cmluZykgdGhhdCBwYXNzZXMgbnVsbAorICAgICAqIGFzIHRoZSBmYWxsYmFjaywgdGh1cyByZXR1cm5pbmcgYWxsIHZpc2libGUgSURzLgorICAgICAqLworICAgIHB1YmxpYyBTZXQgZ2V0VmlzaWJsZUlEcygpIHsKKyAgICAgICAgcmV0dXJuIGdldFZpc2libGVJRHMobnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIGEgc25hcHNob3Qgb2YgdGhlIHZpc2libGUgSURzIGZvciB0aGlzIHNlcnZpY2UuICBUaGlzCisgICAgICogc2V0IHdpbGwgbm90IGNoYW5nZSBhcyBGYWN0b3JpZXMgYXJlIGFkZGVkIG9yIHJlbW92ZWQsIGJ1dCB0aGUKKyAgICAgKiBzdXBwb3J0ZWQgaWRzIHdpbGwsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGFsbCBhbmQgb25seQorICAgICAqIHRoZSBpZHMgaW4gdGhlIHJldHVybmVkIHNldCBhcmUgdmlzaWJsZSBhbmQgc3VwcG9ydGVkIGJ5IHRoZQorICAgICAqIHNlcnZpY2UgaW4gc3Vic2VxdWVudCBjYWxscy48L3A+CisgICAgICoKKyAgICAgKiA8cD5tYXRjaElEIGlzIHBhc3NlZCB0byBjcmVhdGVLZXkgdG8gY3JlYXRlIGEga2V5LiAgSWYgdGhlCisgICAgICoga2V5IGlzIG5vdCBudWxsLCBpdCBpcyB1c2VkIHRvIGZpbHRlciBvdXQgaWRzIHRoYXQgZG9uJ3QgaGF2ZQorICAgICAqIHRoZSBrZXkgYXMgYSBmYWxsYmFjay4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGdldFZpc2libGVJRHMoU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgU2V0IHJlc3VsdCA9IGdldFZpc2libGVJRE1hcCgpLmtleVNldCgpOworCisgICAgICAgIEtleSBmYWxsYmFja0tleSA9IGNyZWF0ZUtleShtYXRjaElEKTsKKworICAgICAgICBpZiAoZmFsbGJhY2tLZXkgIT0gbnVsbCkgeworICAgICAgICAgICAgU2V0IHRlbXAgPSBuZXcgSGFzaFNldChyZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrS2V5LmlzRmFsbGJhY2tPZihpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcC5hZGQoaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBtYXAgZnJvbSB2aXNpYmxlIGlkcyB0byBmYWN0b3JpZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgZ2V0VmlzaWJsZUlETWFwKCkgeworICAgICAgICBNYXAgaWRjYWNoZSA9IG51bGw7CisgICAgICAgIFNvZnRSZWZlcmVuY2UgcmVmID0gaWRyZWY7CisgICAgICAgIGlmIChyZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgaWRjYWNoZSA9IChNYXApcmVmLmdldCgpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChpZGNhY2hlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeyAvLyBvciBpZHJlZi1vbmx5IGxvY2s/CisgICAgICAgICAgICAgICAgaWYgKHJlZiA9PSBpZHJlZiB8fCBpZHJlZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vIG90aGVyIHRocmVhZCB1cGRhdGVkIGlkcmVmIGJlZm9yZSB3ZSBnb3QgdGhlIGxvY2ssIHNvCisgICAgICAgICAgICAgICAgICAgIC8vIGdyYWIgdGhlIGZhY3RvcnkgbGlzdCBhbmQgdXBkYXRlIGl0IG91cnNlbHZlcworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkY2FjaGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgTGlzdEl0ZXJhdG9yIGxJdGVyID0gZmFjdG9yaWVzLmxpc3RJdGVyYXRvcihmYWN0b3JpZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsSXRlci5oYXNQcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpbEl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLnVwZGF0ZVZpc2libGVJRHMoaWRjYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZGNhY2hlID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTWFwKGlkY2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWRyZWYgPSBuZXcgU29mdFJlZmVyZW5jZShpZGNhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBhbm90aGVyIHRocmVhZCB1cGRhdGVkIGlkcmVmLCBidXQgZ2MgbWF5IGhhdmUgc3RlcHBlZAorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhbmQgdW5kb25lIGl0cyB3b3JrLCBsZWF2aW5nIGlkY2FjaGUgbnVsbC4gIElmIHNvLAorICAgICAgICAgICAgICAgICAgICAvLyByZXRyeS4KKyAgICAgICAgICAgICAgICAgICAgcmVmID0gaWRyZWY7CisgICAgICAgICAgICAgICAgICAgIGlkY2FjaGUgPSAoTWFwKXJlZi5nZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaWRjYWNoZTsKKyAgICB9CisgICAgcHJpdmF0ZSBTb2Z0UmVmZXJlbmNlIGlkcmVmOworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldERpc3BsYXlOYW1lKFN0cmluZywgVUxvY2FsZSkgdGhhdAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKGlkLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSB2aXNpYmxlIGlkLCByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBpbiB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBkaXJlY3RseSBzdXBwb3J0ZWQgaWQgY29ycmVzcG9uZGluZyB0byB0aGlzIGlkLCByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBNYXAgbSA9IGdldFZpc2libGVJRE1hcCgpOworICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSltLmdldChpZCk7CisgICAgICAgIGlmIChmICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgS2V5IGtleSA9IGNyZWF0ZUtleShpZCk7CisgICAgICAgIHdoaWxlIChrZXkuZmFsbGJhY2soKSkgeworICAgICAgICAgICAgZiA9IChGYWN0b3J5KW0uZ2V0KGtleS5jdXJyZW50SUQoKSk7CisgICAgICAgICAgICBpZiAoZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGYuZ2V0RGlzcGxheU5hbWUoaWQsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQgCisgICAgICogdXNlcyB0aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZSBhcyB0aGUgbG9jYWxlLCBudWxsIGFzCisgICAgICogdGhlIGNvbXBhcmF0b3IsIGFuZCBudWxsIGZvciB0aGUgbWF0Y2hJRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcygpIHsKKyAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIG51bGwgZm9yIHRoZSBjb21wYXJhdG9yLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIG51bGwgZm9yIHRoZSBtYXRjaElELCB0aHVzIHJldHVybmluZyBhbGwgZGlzcGxheSBuYW1lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20pIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgbnVsbCBmb3IgdGhlIGNvbXBhcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBtYXRjaElEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMobG9jYWxlLCBudWxsLCBtYXRjaElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbWFwcGluZyBmcm9tIGRpc3BsYXkgbmFtZXMgdG8gdmlzaWJsZQorICAgICAqIElEcyBmb3IgdGhpcyBzZXJ2aWNlLiAgVGhpcyBzZXQgd2lsbCBub3QgY2hhbmdlIGFzIGZhY3RvcmllcworICAgICAqIGFyZSBhZGRlZCBvciByZW1vdmVkLCBidXQgdGhlIHN1cHBvcnRlZCBpZHMgd2lsbCwgc28gdGhlcmUgaXMKKyAgICAgKiBubyBndWFyYW50ZWUgdGhhdCBhbGwgYW5kIG9ubHkgdGhlIGlkcyBpbiB0aGUgcmV0dXJuZWQgbWFwIHdpbGwKKyAgICAgKiBiZSB2aXNpYmxlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2UgaW4gc3Vic2VxdWVudCBjYWxscywKKyAgICAgKiBub3IgaXMgdGhlcmUgYW55IGd1YXJhbnRlZSB0aGF0IHRoZSBjdXJyZW50IGRpc3BsYXkgbmFtZXMgbWF0Y2gKKyAgICAgKiB0aG9zZSBpbiB0aGUgc2V0LiAgVGhlIGRpc3BsYXkgbmFtZXMgYXJlIHNvcnRlZCBiYXNlZCBvbiB0aGUKKyAgICAgKiBjb21wYXJhdG9yIHByb3ZpZGVkLgorICAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlLCBDb21wYXJhdG9yIGNvbSwgU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgU29ydGVkTWFwIGRuY2FjaGUgPSBudWxsOworICAgICAgICBMb2NhbGVSZWYgcmVmID0gZG5yZWY7CisKKyAgICAgICAgaWYgKHJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICBkbmNhY2hlID0gcmVmLmdldChsb2NhbGUsIGNvbSk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoZG5jYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVmID09IGRucmVmIHx8IGRucmVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZG5jYWNoZSA9IG5ldyBUcmVlTWFwKGNvbSk7IC8vIHNvcnRlZAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgTWFwIG0gPSBnZXRWaXNpYmxlSURNYXAoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgZWkgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGVpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkgZSA9IChFbnRyeSllaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkbmNhY2hlLnB1dChmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBkbmNhY2hlID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU29ydGVkTWFwKGRuY2FjaGUpOworICAgICAgICAgICAgICAgICAgICBkbnJlZiA9IG5ldyBMb2NhbGVSZWYoZG5jYWNoZSwgbG9jYWxlLCBjb20pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlZiA9IGRucmVmOworICAgICAgICAgICAgICAgICAgICBkbmNhY2hlID0gcmVmLmdldChsb2NhbGUsIGNvbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgS2V5IG1hdGNoS2V5ID0gY3JlYXRlS2V5KG1hdGNoSUQpOworICAgICAgICBpZiAobWF0Y2hLZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGRuY2FjaGU7CisgICAgICAgIH0KKworICAgICAgICBTb3J0ZWRNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoZG5jYWNoZSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoIW1hdGNoS2V5LmlzRmFsbGJhY2tPZigoU3RyaW5nKWUuZ2V0VmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gd2UgZGVmaW5lIGEgY2xhc3Mgc28gd2UgZ2V0IGF0b21pYyBzaW11bHRhbmVvdXMgYWNjZXNzIHRvIHRoZQorICAgIC8vIGxvY2FsZSwgY29tcGFyYXRvciwgYW5kIGNvcnJlc3BvbmRpbmcgbWFwLgorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExvY2FsZVJlZiB7CisgICAgICAgIHByaXZhdGUgZmluYWwgVUxvY2FsZSBsb2NhbGU7CisgICAgICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSByZWY7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBjb207CisKKyAgICAgICAgTG9jYWxlUmVmKE1hcCBkbkNhY2hlLCBVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20pIHsKKyAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgdGhpcy5jb20gPSBjb207CisgICAgICAgICAgICB0aGlzLnJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKGRuQ2FjaGUpOworICAgICAgICB9CisKKworICAgICAgICBTb3J0ZWRNYXAgZ2V0KFVMb2NhbGUgbG9jYWxlLCBDb21wYXJhdG9yIGNvbSkgeworICAgICAgICAgICAgU29ydGVkTWFwIG0gPSAoU29ydGVkTWFwKXJlZi5nZXQoKTsKKyAgICAgICAgICAgIGlmIChtICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZS5lcXVhbHMobG9jYWxlKSAmJgorICAgICAgICAgICAgICAgICh0aGlzLmNvbSA9PSBjb20gfHwgKHRoaXMuY29tICE9IG51bGwgJiYgdGhpcy5jb20uZXF1YWxzKGNvbSkpKSkgeworCisgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIExvY2FsZVJlZiBkbnJlZjsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBmYWN0b3JpZXMuICBUaGVyZQorICAgICAqIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBsaXN0IHdpbGwgc3RpbGwgbWF0Y2ggdGhlIGN1cnJlbnQKKyAgICAgKiBmYWN0b3J5IGxpc3Qgb2YgdGhlIHNlcnZpY2Ugc3Vic2VxdWVudCB0byB0aGlzIGNhbGwuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIExpc3QgZmFjdG9yaWVzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlMaXN0KGZhY3Rvcmllcyk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseXsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNvbnZlbmllbmNlIG92ZXJyaWRlIG9mIHJlZ2lzdGVyT2JqZWN0KE9iamVjdCwgU3RyaW5nLCBib29sZWFuKQorICAgICAqIHRoYXQgZGVmYXVsdHMgdmlzaWJsZSB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXJPYmplY3Qob2JqLCBpZCwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gb2JqZWN0IHdpdGggdGhlIHByb3ZpZGVkIGlkLiAgVGhlIGlkIHdpbGwgYmUKKyAgICAgKiBjYW5vbmljYWxpemVkLiAgVGhlIGNhbm9uaWNhbGl6ZWQgSUQgd2lsbCBiZSByZXR1cm5lZCBieQorICAgICAqIGdldFZpc2libGVJRHMgaWYgdmlzaWJsZSBpcyB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFN0cmluZyBpZCwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZyBjYW5vbmljYWxJRCA9IGNyZWF0ZUtleShpZCkuY2Fub25pY2FsSUQoKTsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRmFjdG9yeShuZXcgU2ltcGxlRmFjdG9yeShvYmosIGNhbm9uaWNhbElELCB2aXNpYmxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBGYWN0b3J5LiAgUmV0dXJucyB0aGUgZmFjdG9yeSBpZiB0aGUgc2VydmljZSBhY2NlcHRzCisgICAgICogdGhlIGZhY3RvcnksIG90aGVyd2lzZSByZXR1cm5zIG51bGwuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIGFjY2VwdHMgYWxsIGZhY3Rvcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRmFjdG9yeSByZWdpc3RlckZhY3RvcnkoRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICAgICAgICAgIGZhY3Rvcmllcy5hZGQoMCwgZmFjdG9yeSk7CisgICAgICAgICAgICBjbGVhckNhY2hlcygpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2sucmVsZWFzZVdyaXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgbm90aWZ5Q2hhbmdlZCgpOworICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgZmFjdG9yeS4gIFRoZSBmaXJzdCBtYXRjaGluZyByZWdpc3RlcmVkIGZhY3Rvcnkgd2lsbAorICAgICAqIGJlIHJlbW92ZWQgZnJvbSB0aGUgbGlzdC4gIFJldHVybnMgdHJ1ZSBpZiBhIG1hdGNoaW5nIGZhY3Rvcnkgd2FzCisgICAgICogcmVtb3ZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiB1bnJlZ2lzdGVyRmFjdG9yeShGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgICAgICAgICBpZiAoZmFjdG9yaWVzLnJlbW92ZShmYWN0b3J5KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgY2xlYXJDYWNoZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgbm90aWZ5Q2hhbmdlZCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHNlcnZpY2UgdG8gdGhlIGRlZmF1bHQgZmFjdG9yaWVzLiAgVGhlIGZhY3RvcnkKKyAgICAgKiBsb2NrIGlzIGFjcXVpcmVkIGFuZCB0aGVuIHJlSW5pdGlhbGl6ZUZhY3RvcmllcyBpcyBjYWxsZWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICAgICAgICAgIHJlSW5pdGlhbGl6ZUZhY3RvcmllcygpOworICAgICAgICAgICAgY2xlYXJDYWNoZXMoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICB9CisgICAgICAgIG5vdGlmeUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWluaXRpYWxpemUgdGhlIGZhY3RvcnkgbGlzdCB0byBpdHMgZGVmYXVsdCBzdGF0ZS4gIEJ5IGRlZmF1bHQKKyAgICAgKiB0aGlzIGNsZWFycyB0aGUgbGlzdC4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHByb3ZpZGUgb3RoZXIKKyAgICAgKiBkZWZhdWx0IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmYWN0b3J5IGxpc3QuICBTdWJjbGFzc2VzIG11c3QKKyAgICAgKiBub3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseSwgYXMgaXQgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGlsZQorICAgICAqIGhvbGRpbmcgd3JpdGUgYWNjZXNzIHRvIHRoZSBmYWN0b3J5IGxpc3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVJbml0aWFsaXplRmFjdG9yaWVzKCkgeworICAgICAgICBmYWN0b3JpZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2VydmljZSBpcyBpbiBpdHMgZGVmYXVsdCBzdGF0ZS4gIFRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24gcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBubyBmYWN0b3JpZXMgcmVnaXN0ZXJlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RlZmF1bHQoKSB7CisgICAgICAgIHJldHVybiBmYWN0b3JpZXMuc2l6ZSgpID09IGRlZmF1bHRTaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGVmYXVsdCBzaXplIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiByZWdpc3RlcmVkIGZhY3Rvcmllcy4KKyAgICAgKiBVc2VkIGJ5IHN1YmNsYXNzZXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiBpc0RlZmF1bHQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgbWFya0RlZmF1bHQoKSB7CisgICAgICAgIGRlZmF1bHRTaXplID0gZmFjdG9yaWVzLnNpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBrZXkgZnJvbSBhbiBpZC4gIFRoaXMgY3JlYXRlcyBhIEtleSBpbnN0YW5jZS4KKyAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBkZWZpbmUgbW9yZSB1c2VmdWwga2V5cyBhcHByb3ByaWF0ZQorICAgICAqIHRvIHRoZSBmYWN0b3JpZXMgdGhleSBhY2NlcHQuICBJZiBpZCBpcyBudWxsLCByZXR1cm5zIG51bGwuCisgICAgICovCisgICAgcHVibGljIEtleSBjcmVhdGVLZXkoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBpZCA9PSBudWxsID8gbnVsbCA6IG5ldyBLZXkoaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGNhY2hlcyBtYWludGFpbmVkIGJ5IHRoaXMgc2VydmljZS4gIFN1YmNsYXNzZXMgY2FuCisgICAgICogb3ZlcnJpZGUgaWYgdGhleSBpbXBsZW1lbnQgYWRkaXRpb25hbCB0aGF0IG5lZWQgdG8gYmUgY2xlYXJlZAorICAgICAqIHdoZW4gdGhlIHNlcnZpY2UgY2hhbmdlcy4gU3ViY2xhc3NlcyBzaG91bGQgZ2VuZXJhbGx5IG5vdCBjYWxsCisgICAgICogdGhpcyBtZXRob2QgZGlyZWN0bHksIGFzIGl0IG11c3Qgb25seSBiZSBjYWxsZWQgd2hpbGUKKyAgICAgKiBzeW5jaHJvbml6ZWQgb24gdGhpcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbGVhckNhY2hlcygpIHsKKyAgICAgICAgLy8gd2UgZG9uJ3Qgc3luY2hyb25pemUgb24gdGhlc2UgYmVjYXVzZSBtZXRob2RzIHRoYXQgdXNlIHRoZW0KKyAgICAgICAgLy8gY29weSBiZWZvcmUgdXNlLCBhbmQgY2hlY2sgZm9yIGNoYW5nZXMgaWYgdGhleSBtb2RpZnkgdGhlCisgICAgICAgIC8vIGNhY2hlcy4KKyAgICAgICAgY2FjaGVyZWYgPSBudWxsOworICAgICAgICBpZHJlZiA9IG51bGw7CisgICAgICAgIGRucmVmID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgb25seSB0aGUgc2VydmljZSBjYWNoZS4KKyAgICAgKiBUaGlzIGNhbiBiZSBjYWxsZWQgYnkgc3ViY2xhc3NlcyB3aGVuIGEgY2hhbmdlIGFmZmVjdHMgdGhlIHNlcnZpY2UKKyAgICAgKiBjYWNoZSBidXQgbm90IHRoZSBpZCBjYWNoZXMsIGUuZy4sIHdoZW4gdGhlIGRlZmF1bHQgbG9jYWxlIGNoYW5nZXMKKyAgICAgKiB0aGUgcmVzb2x1dGlvbiBvZiBpZHMgY2hhbmdlcywgYnV0IG5vdCB0aGUgdmlzaWJsZSBpZHMgdGhlbXNlbHZlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbGVhclNlcnZpY2VDYWNoZSgpIHsKKyAgICAgICAgY2FjaGVyZWYgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlcnZpY2VMaXN0ZW5lciBpcyB0aGUgbGlzdGVuZXIgdGhhdCBJQ1VTZXJ2aWNlIHByb3ZpZGVzIGJ5IGRlZmF1bHQuCisgICAgICogSUNVU2VydmljZSB3aWxsIG5vdGlmaXkgdGhpcyBsaXN0ZW5lciB3aGVuIGZhY3RvcmllcyBhcmUgYWRkZWQgdG8KKyAgICAgKiBvciByZW1vdmVkIGZyb20gdGhlIHNlcnZpY2UuICBTdWJjbGFzc2VzIGNhbiBwcm92aWRlCisgICAgICogZGlmZmVyZW50IGxpc3RlbmVyIGludGVyZmFjZXMgdGhhdCBleHRlbmQgRXZlbnRMaXN0ZW5lciwgYW5kIG1vZGlmeQorICAgICAqIGFjY2VwdHNMaXN0ZW5lciBhbmQgbm90aWZ5TGlzdGVuZXIgYXMgYXBwcm9wcmlhdGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgU2VydmljZUxpc3RlbmVyIGV4dGVuZHMgRXZlbnRMaXN0ZW5lciB7CisgICAgICAgIHB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2Ugc2VydmljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzIGFjY2VwdGVkOyBieSBkZWZhdWx0IHRoaXMKKyAgICAgKiByZXF1aXJlcyBhIFNlcnZpY2VMaXN0ZW5lci4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIGFjY2VwdAorICAgICAqIGRpZmZlcmVudCBsaXN0ZW5lcnMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYWNjZXB0c0xpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgICAgICByZXR1cm4gbCBpbnN0YW5jZW9mIFNlcnZpY2VMaXN0ZW5lcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGxpc3RlbmVyLCB3aGljaCBieSBkZWZhdWx0IGlzIGEgU2VydmljZUxpc3RlbmVyLgorICAgICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHVzZSBhIGRpZmZlcmVudCBsaXN0ZW5lci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBub3RpZnlMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgKChTZXJ2aWNlTGlzdGVuZXIpbCkuc2VydmljZUNoYW5nZWQodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHN0YXRpc3RpY3MgZm9yIHRoaXMgc2VydmljZS4KKyAgICAgKiBUaGlzIGFsc28gcmVzZXRzIHRoZSBzdGF0aXN0aWNzLiBVc2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzdGF0cygpIHsKKyAgICAgICAgSUNVUldMb2NrLlN0YXRzIHN0YXRzID0gZmFjdG9yeUxvY2sucmVzZXRTdGF0cygpOworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRzLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJubyBzdGF0cyI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgc2VydmljZS4gVGhpcyB3aWxsIGJlIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm9uZSB3YXMgYXNzaWduZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc3VwZXIudG9TdHJpbmcsIGFwcGVuZGluZyB0aGUgbmFtZSBpbiBjdXJseSBicmFjZXMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCkgKyAieyIgKyBuYW1lICsgIn0iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODVmYzg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW1wbGljaXRDRUdlbmVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzkwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisgKiBGb3IgZ2VuZXJhdGlvbiBvZiBJbXBsaWNpdCBDRXMKKyAqIEBhdXRob3IgTWFyayBEYXZpcworICoKKyAqIENsZWFuZWQgdXAgc28gdGhhdCBjaGFuZ2VzIGNhbiBiZSBtYWRlIG1vcmUgZWFzaWx5LgorICogT2xkIHZhbHVlczoKKyMgRmlyc3QgSW1wbGljaXQ6IEUyNkE3OTJECisjIExhc3QgSW1wbGljaXQ6IEUzREM3MEMwCisjIEZpcnN0IENKSzogRTAwMzAzMDAKKyMgTGFzdCBDSks6IEUwQTlERDAwCisjIEZpcnN0IENKS19BOiBFMEE5REYwMAorIyBMYXN0IENKS19BOiBFMERFMzEwMAorQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBJbXBsaWNpdENFR2VuZXJhdG9yIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBjb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHRvcEJ5dGUgPSAweEZGMDAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBib3R0b21CeXRlID0gMHhGRkw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgZm91ckJ5dGVzID0gMHhGRkZGRkZGRkw7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfSU5QVVQgPSAweDIyMDAwMTsgLy8gMiAqIFVuaWNvZGUgcmFuZ2UgKyAyCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICAgQ0pLX0JBU0UgPSAweDRFMDAsCisgICAgICAgIENKS19MSU1JVCA9IDB4OUZGRisxLAorICAgICAgICBDSktfQ09NUEFUX1VTRURfQkFTRSA9IDB4RkEwRSwKKyAgICAgICAgQ0pLX0NPTVBBVF9VU0VEX0xJTUlUID0gMHhGQTJGKzEsCisgICAgICAgIENKS19BX0JBU0UgPSAweDM0MDAsCisgICAgICAgIENKS19BX0xJTUlUID0gMHg0REJGKzEsCisgICAgICAgIENKS19CX0JBU0UgPSAweDIwMDAwLAorICAgICAgICBDSktfQl9MSU1JVCA9IDB4MkE2REYrMTsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGludCBjcCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRpdGxlICsgIlx0IiArIFV0aWxpdHkuaGV4KGNwLCA2KSArICJcdCIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChnZXRJbXBsaWNpdEZyb21SYXcoY3ApICYgZm91ckJ5dGVzKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHRocm93RXJyb3IoU3RyaW5nIHRpdGxlLCBsb25nIGNlKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY2UgJiBmb3VyQnl0ZXMpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2hvdyhpbnQgaSkgeworICAgICAgICBpZiAoaSA+PSAwICYmIGkgPD0gTUFYX0lOUFVUKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5oZXgoaSkgKyAiXHQiICsgVXRpbGl0eS5oZXgoZ2V0SW1wbGljaXRGcm9tUmF3KGkpICYgZm91ckJ5dGVzKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFByZWNvbXB1dGVkIGJ5IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgaW50IGZpbmFsM011bHRpcGxpZXI7CisgICAgaW50IGZpbmFsNE11bHRpcGxpZXI7CisgICAgaW50IGZpbmFsM0NvdW50OworICAgIGludCBmaW5hbDRDb3VudDsKKyAgICBpbnQgbWVkaWFsQ291bnQ7CisgICAgaW50IG1pbjNQcmltYXJ5OworICAgIGludCBtaW40UHJpbWFyeTsKKyAgICBpbnQgbWF4NFByaW1hcnk7CisgICAgaW50IG1pblRyYWlsOworICAgIGludCBtYXhUcmFpbDsKKyAgICBpbnQgbWF4M1RyYWlsOworICAgIGludCBtYXg0VHJhaWw7CisgICAgaW50IG1pbjRCb3VuZGFyeTsKKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEdhcDQoKSB7CisgICAgICAgIHJldHVybiBmaW5hbDRNdWx0aXBsaWVyIC0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRHYXAzKCkgeworICAgICAgICByZXR1cm4gZmluYWwzTXVsdGlwbGllciAtIDE7CisgICAgfQorICAgIAorICAgIC8vIG9sZCBjb21tZW50CisgICAgLy8gd2UgbXVzdCBza2lwIGFsbCAwMCwgMDEsIDAyLCBGRiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MiB2YWx1ZXMKKyAgICAvLyB3ZSBtdXN0IGxlYXZlIGEgZ2FwIG9mIDAxIGJldHdlZW4gYWxsIHZhbHVlcyBvZiB0aGUgbGFzdCBieXRlLCBzbyB0aGUgbGFzdCBieXRlIGhhcyAxMjYgdmFsdWVzICgzIGJ5dGUgY2FzZSkKKyAgICAvLyB3ZSBzaGlmdCBzbyB0aGF0IEhBTiBhbGwgaGFzIHRoZSBzYW1lIGZpcnN0IHByaW1hcnksIGZvciBjb21wcmVzc2lvbi4KKyAgICAvLyBmb3IgdGhlIDQgYnl0ZSBjYXNlLCB3ZSBtYWtlIHRoZSBnYXAgYXMgbGFyZ2UgYXMgd2UgY2FuIGZpdC4KKworICAgIC8qKgorICAgICAqIFN1cHBseSBwYXJhbWV0ZXJzIGZvciBnZW5lcmF0aW5nIGltcGxpY2l0IENFcworICAgICAqLworICAgIHB1YmxpYyBJbXBsaWNpdENFR2VuZXJhdG9yKGludCBtaW5QcmltYXJ5LCBpbnQgbWF4UHJpbWFyeSkgeworICAgICAgICAvLyAxMyBpcyB0aGUgbGFyZ2VzdCA0LWJ5dGUgZ2FwIHdlIGNhbiB1c2Ugd2l0aG91dCBnZXR0aW5nIDIgZm91ci1ieXRlIGZvcm1zLgorICAgICAgICB0aGlzKG1pblByaW1hcnksIG1heFByaW1hcnksIDB4MDQsIDB4RkUsIDEsIDEpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdXAgdG8gZ2VuZXJhdGUgaW1wbGljaXRzLgorICAgICAqIEBwYXJhbSBtaW5QcmltYXJ5CisgICAgICogQHBhcmFtIG1heFByaW1hcnkKKyAgICAgKiBAcGFyYW0gbWluVHJhaWwgZmluYWwgYnl0ZQorICAgICAqIEBwYXJhbSBtYXhUcmFpbCBmaW5hbCBieXRlCisgICAgICogQHBhcmFtIGdhcDMgdGhlIGdhcCB3ZSBsZWF2ZSBmb3IgdGFpbG9yaW5nIGZvciAzLWJ5dGUgZm9ybXMKKyAgICAgKiBAcGFyYW0gcHJpbWFyaWVzM2NvdW50IG51bWJlciBvZiAzLWJ5dGUgcHJpbWFyeXMgd2UgY2FuIHVzZSAobm9ybWFsbHkgMSkKKyAgICAgKi8KKyAgICBwdWJsaWMgSW1wbGljaXRDRUdlbmVyYXRvcihpbnQgbWluUHJpbWFyeSwgaW50IG1heFByaW1hcnksIGludCBtaW5UcmFpbCwgaW50IG1heFRyYWlsLCBpbnQgZ2FwMywgaW50IHByaW1hcmllczNjb3VudCkgeworICAgICAgICAvLyBzb21lIHNpbXBsZSBwYXJhbWV0ZXIgY2hlY2tzCisgICAgICAgIGlmIChtaW5QcmltYXJ5IDwgMCB8fCBtaW5QcmltYXJ5ID49IG1heFByaW1hcnkgfHwgbWF4UHJpbWFyeSA+IDB4RkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBsZWFkIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pblRyYWlsIDwgMCB8fCBtaW5UcmFpbCA+PSBtYXhUcmFpbCB8fCBtYXhUcmFpbCA+IDB4RkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCB0cmFpbCBieXRlcyIpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmltYXJpZXMzY291bnQgPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgdGhyZWUtYnl0ZSBwcmltYXJpZXMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGhpcy5taW5UcmFpbCA9IG1pblRyYWlsOworICAgICAgICB0aGlzLm1heFRyYWlsID0gbWF4VHJhaWw7CisgICAgICAgIAorICAgICAgICBtaW4zUHJpbWFyeSA9IG1pblByaW1hcnk7CisgICAgICAgIG1heDRQcmltYXJ5ID0gbWF4UHJpbWFyeTsKKyAgICAgICAgLy8gY29tcHV0ZSBjb25zdGFudHMgZm9yIHVzZSBsYXRlci4KKyAgICAgICAgLy8gbnVtYmVyIG9mIHZhbHVlcyB3ZSBjYW4gdXNlIGluIHRyYWlsaW5nIGJ5dGVzCisgICAgICAgIC8vIGxlYXZlIHJvb20gZm9yIGVtcHR5IHZhbHVlcyBiZXR3ZWVuIEFORCBhYm92ZSwgZS5nLiBpZiBnYXAgPSAyCisgICAgICAgIC8vIHJhbmdlIDMuLjcgPT4gKzMgLTQgLTUgLTYgLTc6IHNvIDEgdmFsdWUKKyAgICAgICAgLy8gcmFuZ2UgMy4uOCA9PiArMyAtNCAtNSArNiAtNyAtODogc28gMiB2YWx1ZXMKKyAgICAgICAgLy8gcmFuZ2UgMy4uOSA9PiArMyAtNCAtNSArNiAtNyAtOCAtOTogc28gMiB2YWx1ZXMKKyAgICAgICAgZmluYWwzTXVsdGlwbGllciA9IGdhcDMgKyAxOworICAgICAgICBmaW5hbDNDb3VudCA9IChtYXhUcmFpbCAtIG1pblRyYWlsICsgMSkgLyBmaW5hbDNNdWx0aXBsaWVyOworICAgICAgICBtYXgzVHJhaWwgPSBtaW5UcmFpbCArIChmaW5hbDNDb3VudCAtIDEpICogZmluYWwzTXVsdGlwbGllcjsKKyAgICAgICAgCisgICAgICAgIC8vIG1lZGlhbHMgY2FuIHVzZSBmdWxsIHJhbmdlCisgICAgICAgIG1lZGlhbENvdW50ID0gKG1heFRyYWlsIC0gbWluVHJhaWwgKyAxKTsKKyAgICAgICAgLy8gZmluZCBvdXQgaG93IG1hbnkgdmFsdWVzIGZpdCBpbiBlYWNoIGZvcm0KKyAgICAgICAgaW50IHRocmVlQnl0ZUNvdW50ID0gbWVkaWFsQ291bnQgKiBmaW5hbDNDb3VudDsKKyAgICAgICAgLy8gbm93IGRldGVybWluZSB3aGVyZSB0aGUgMy80IGJvdW5kYXJ5IGlzLgorICAgICAgICAvLyB3ZSB1c2UgMyBieXRlcyBiZWxvdyB0aGUgYm91bmRhcnksIGFuZCA0IGFib3ZlCisgICAgICAgIGludCBwcmltYXJpZXNBdmFpbGFibGUgPSBtYXhQcmltYXJ5IC0gbWluUHJpbWFyeSArIDE7CisgICAgICAgIGludCBwcmltYXJpZXM0Y291bnQgPSBwcmltYXJpZXNBdmFpbGFibGUgLSBwcmltYXJpZXMzY291bnQ7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGludCBtaW4zQnl0ZUNvdmVyYWdlID0gcHJpbWFyaWVzM2NvdW50ICogdGhyZWVCeXRlQ291bnQ7CisgICAgICAgIG1pbjRQcmltYXJ5ID0gbWluUHJpbWFyeSArIHByaW1hcmllczNjb3VudDsKKyAgICAgICAgbWluNEJvdW5kYXJ5ID0gbWluM0J5dGVDb3ZlcmFnZTsKKyAgICAgICAgLy8gTm93IGV4cGFuZCBvdXQgdGhlIG11bHRpcGxpZXIgZm9yIHRoZSA0IGJ5dGVzLCBhbmQgcmVkby4KKyAKKyAgICAgICAgaW50IHRvdGFsTmVlZGVkID0gTUFYX0lOUFVUIC0gbWluNEJvdW5kYXJ5OworICAgICAgICBpbnQgbmVlZGVkUGVyUHJpbWFyeUJ5dGUgPSBkaXZpZGVBbmRSb3VuZFVwKHRvdGFsTmVlZGVkLCBwcmltYXJpZXM0Y291bnQpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibmVlZGVkUGVyUHJpbWFyeUJ5dGU6ICIgKyBuZWVkZWRQZXJQcmltYXJ5Qnl0ZSk7CisgICAgICAgIAorICAgICAgICBpbnQgbmVlZGVkUGVyRmluYWxCeXRlID0gZGl2aWRlQW5kUm91bmRVcChuZWVkZWRQZXJQcmltYXJ5Qnl0ZSwgbWVkaWFsQ291bnQgKiBtZWRpYWxDb3VudCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJuZWVkZWRQZXJGaW5hbEJ5dGU6ICIgKyBuZWVkZWRQZXJGaW5hbEJ5dGUpOworICAgICAgICAKKyAgICAgICAgaW50IGdhcDQgPSAobWF4VHJhaWwgLSBtaW5UcmFpbCAtIDEpIC8gbmVlZGVkUGVyRmluYWxCeXRlOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiZXhwYW5kZWRHYXA6ICIgKyBnYXA0KTsKKyAgICAgICAgaWYgKGdhcDQgPCAxKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJtdXN0IGhhdmUgbGFyZ2VyIGdhcDRzIik7CisgICAgICAgIAorICAgICAgICBmaW5hbDRNdWx0aXBsaWVyID0gZ2FwNCArIDE7CisgICAgICAgIGZpbmFsNENvdW50ID0gbmVlZGVkUGVyRmluYWxCeXRlOworICAgICAgICBtYXg0VHJhaWwgPSBtaW5UcmFpbCArIChmaW5hbDRDb3VudCAtIDEpICogZmluYWw0TXVsdGlwbGllcjsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmltYXJpZXM0Y291bnQgKiBtZWRpYWxDb3VudCAqIG1lZGlhbENvdW50ICogZmluYWw0Q291bnQgPCBNQVhfSU5QVVQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImludGVybmFsIGVycm9yIik7CisgICAgICAgIH0gCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmaW5hbDRDb3VudDogIiArIGZpbmFsNENvdW50KTsKKyAgICAgICAgICAgIGZvciAoaW50IGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgZmluYWw0Q291bnQ7ICsrY291bnRlcikgeworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG1pblRyYWlsICsgKDEgKyBjb3VudGVyKSpmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudGVyICsgIlx0IiArIHZhbHVlICsgIlx0IiArIFV0aWxpdHkuaGV4KHZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgZGl2aWRlQW5kUm91bmRVcChpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgcmV0dXJuIDEgKyAoYS0xKS9iOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIGltcGxpY2l0IENFIGludG8gcmF3IGludGVnZXIKKyAgICAgKiBAcGFyYW0gaW1wbGljaXQKKyAgICAgKiBAcmV0dXJuIC0xIGlmIGlsbGVnYWwgZm9ybWF0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYXdGcm9tSW1wbGljaXQoaW50IGltcGxpY2l0KSB7CisgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgIGludCBiMyA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMiA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMSA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMCA9IGltcGxpY2l0ICYgMHhGRjsKKworICAgICAgICAvLyBzaW1wbGUgcGFyYW1ldGVyIGNoZWNrcworICAgICAgICBpZiAoYjAgPCBtaW4zUHJpbWFyeSB8fCBiMCA+IG1heDRQcmltYXJ5CisgICAgICAgICAgICB8fCBiMSA8IG1pblRyYWlsIHx8IGIxID4gbWF4VHJhaWwpIHJldHVybiAtMTsKKyAgICAgICAgLy8gbm9ybWFsIG9mZnNldHMKKyAgICAgICAgYjEgLT0gbWluVHJhaWw7CisKKyAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHRoZSBmaW5hbCB2YWx1ZXMsIGFuZCBjb21wb3NlCisgICAgICAgIGlmIChiMCA8IG1pbjRQcmltYXJ5KSB7CisgICAgICAgICAgICBpZiAoYjIgPCBtaW5UcmFpbCB8fCBiMiA+IG1heDNUcmFpbCB8fCBiMyAhPSAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBiMiAtPSBtaW5UcmFpbDsKKyAgICAgICAgICAgIGludCByZW1haW5kZXIgPSBiMiAlIGZpbmFsM011bHRpcGxpZXI7CisgICAgICAgICAgICBpZiAocmVtYWluZGVyICE9IDApIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIwIC09IG1pbjNQcmltYXJ5OworICAgICAgICAgICAgYjIgLz0gZmluYWwzTXVsdGlwbGllcjsKKyAgICAgICAgICAgIHJlc3VsdCA9ICgoYjAgKiBtZWRpYWxDb3VudCkgKyBiMSkgKiBmaW5hbDNDb3VudCArIGIyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGIyIDwgbWluVHJhaWwgfHwgYjIgPiBtYXhUcmFpbAorICAgICAgICAgICAgICAgIHx8IGIzIDwgbWluVHJhaWwgfHwgYjMgPiBtYXg0VHJhaWwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIyIC09IG1pblRyYWlsOworICAgICAgICAgICAgYjMgLT0gbWluVHJhaWw7CisgICAgICAgICAgICBpbnQgcmVtYWluZGVyID0gYjMgJSBmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgaWYgKHJlbWFpbmRlciAhPSAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBiMyAvPSBmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgYjAgLT0gbWluNFByaW1hcnk7CisgICAgICAgICAgICByZXN1bHQgPSAoKChiMCAqIG1lZGlhbENvdW50KSArIGIxKSAqIG1lZGlhbENvdW50ICsgYjIpICogZmluYWw0Q291bnQgKyBiMyArIG1pbjRCb3VuZGFyeTsKKyAgICAgICAgfQorICAgICAgICAvLyBmaW5hbCBjaGVjaworICAgICAgICBpZiAocmVzdWx0IDwgMCB8fCByZXN1bHQgPiBNQVhfSU5QVVQpIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIGltcGxpY2l0IENFLCBmcm9tIHJhdyBpbnRlZ2VyLgorICAgICAqIExlZnQgc2hpZnRlZCB0byBwdXQgdGhlIGZpcnN0IGJ5dGUgYXQgdGhlIHRvcCBvZiBhbiBpbnQuCisgICAgICogQHBhcmFtIGNwIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIFByaW1hcnkgaW1wbGljaXQgd2VpZ2h0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbXBsaWNpdEZyb21SYXcoaW50IGNwKSB7CisgICAgICAgIGlmIChjcCA8IDAgfHwgY3AgPiBNQVhfSU5QVVQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGUgcG9pbnQgb3V0IG9mIHJhbmdlICIgKyBVdGlsaXR5LmhleChjcCkpOworICAgICAgICB9CisgICAgICAgIGludCBsYXN0MCA9IGNwIC0gbWluNEJvdW5kYXJ5OworICAgICAgICBpZiAobGFzdDAgPCAwKSB7CisgICAgICAgICAgICBpbnQgbGFzdDEgPSBjcCAvIGZpbmFsM0NvdW50OworICAgICAgICAgICAgbGFzdDAgPSBjcCAlIGZpbmFsM0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIG1lZGlhbENvdW50OworICAgICAgICAgICAgbGFzdDEgJT0gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxhc3QwID0gbWluVHJhaWwgKyBsYXN0MCpmaW5hbDNNdWx0aXBsaWVyOyAvLyBzcHJlYWQgb3V0LCBsZWF2aW5nIGdhcCBhdCBzdGFydAorICAgICAgICAgICAgbGFzdDEgPSBtaW5UcmFpbCArIGxhc3QxOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIGxhc3QyID0gbWluM1ByaW1hcnkgKyBsYXN0MjsgLy8gb2Zmc2V0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsYXN0MiA+PSBtaW40UHJpbWFyeSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIjQtYnl0ZSBvdXQgb2YgcmFuZ2U6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KGNwKSArICIsICIgKyBVdGlsaXR5LmhleChsYXN0MikpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIChsYXN0MiA8PCAyNCkgKyAobGFzdDEgPDwgMTYpICsgKGxhc3QwIDw8IDgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxhc3QxID0gbGFzdDAgLyBmaW5hbDRDb3VudDsKKyAgICAgICAgICAgIGxhc3QwICU9IGZpbmFsNENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIG1lZGlhbENvdW50OworICAgICAgICAgICAgbGFzdDEgJT0gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYXN0MyA9IGxhc3QyIC8gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICBsYXN0MiAlPSBtZWRpYWxDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFzdDAgPSBtaW5UcmFpbCArIGxhc3QwKmZpbmFsNE11bHRpcGxpZXI7IC8vIHNwcmVhZCBvdXQsIGxlYXZpbmcgZ2FwIGF0IHN0YXJ0ICAgICAgICAgICAKKyAgICAgICAgICAgIGxhc3QxID0gbWluVHJhaWwgKyBsYXN0MTsgLy8gb2Zmc2V0CisgICAgICAgICAgICBsYXN0MiA9IG1pblRyYWlsICsgbGFzdDI7IC8vIG9mZnNldAorICAgICAgICAgICAgbGFzdDMgPSBtaW40UHJpbWFyeSArIGxhc3QzOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhc3QzID4gbWF4NFByaW1hcnkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI0LWJ5dGUgb3V0IG9mIHJhbmdlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChjcCkgKyAiLCAiICsgVXRpbGl0eS5oZXgobGFzdDMpKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAobGFzdDMgPDwgMjQpICsgKGxhc3QyIDw8IDE2KSArIChsYXN0MSA8PCA4KSArIGxhc3QwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbiBJbXBsaWNpdCBmcm9tIGEgY29kZSBwb2ludC4gSW50ZXJuYWxseSwgCisgICAgICogc3dhcHMgKHdoaWNoIHByb2R1Y2VzIGEgcmF3IHZhbHVlIDAuLjIyMDAwMCwgCisgICAgICogdGhlbiBjb252ZXJ0cyByYXcgdG8gaW1wbGljaXQuCisgICAgICogQHBhcmFtIGNwCisgICAgICogQHJldHVybiBQcmltYXJ5IGltcGxpY2l0IHdlaWdodAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW1wbGljaXRGcm9tQ29kZVBvaW50KGludCBjcCkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiSW5jb21pbmc6ICIgKyBVdGlsaXR5LmhleChjcCkpOworICAgICAgICAKKyAgICAgICAgLy8gUHJvZHVjZSBSYXcgdmFsdWUKKyAgICAgICAgLy8gbm90ZSwgd2UgYWRkIDEgc28gdGhhdCB0aGUgZmlyc3QgdmFsdWUgaXMgYWx3YXlzIGVtcHR5ISEKKyAgICAgICAgY3AgPSBJbXBsaWNpdENFR2VuZXJhdG9yLnN3YXBDSksoY3ApICsgMTsKKyAgICAgICAgLy8gd2Ugbm93IGhhdmUgYSByYW5nZSBvZiBudW1iZXJzIGZyb20gMCB0byAyMjAwMDAuCisgICAgICAgICAgICAKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNKSyBzd2FwcGVkOiAiICsgVXRpbGl0eS5oZXgoY3ApKTsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0SW1wbGljaXRGcm9tUmF3KGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGdW5jdGlvbiB1c2VkIHRvOiAKKyAgICAgKiBhKSBjb2xsYXBzZSB0aGUgMiBkaWZmZXJlbnQgSGFuIHJhbmdlcyBmcm9tIFVDQSBpbnRvIG9uZSAoaW4gdGhlIHJpZ2h0IG9yZGVyKSwgYW5kCisgICAgICogYikgYnVtcCBhbnkgbm9uLUNKSyBjaGFyYWN0ZXJzIGJ5IDEwRkZGRi4KKyAgICAgKiBUaGUgcmVsZXZhbnQgYmxvY2tzIGFyZToKKyAgICAgKiBBOiAgICA0RTAwLi45RkZGOyBDSksgVW5pZmllZCBJZGVvZ3JhcGhzCisgICAgICogICAgICAgRjkwMC4uRkFGRjsgQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocworICAgICAqIEI6ICAgIDM0MDAuLjREQkY7IENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEKKyAgICAgKiAgICAgICAyMDAwMC4uWFg7ICBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBCIChhbmQgb3RoZXJzIGxhdGVyIG9uKQorICAgICAqIEFzIGxvbmcgYXMKKyAgICAgKiAgIG5vIG5ldyBCIGNoYXJhY3RlcnMgYXJlIGFsbG9jYXRlZCBiZXR3ZWVuIDRFMDAgYW5kIEZBRkYsIGFuZAorICAgICAqICAgbm8gbmV3IEEgY2hhcmFjdGVycyBhcmUgb3V0c2lkZSBvZiB0aGlzIHJhbmdlLAorICAgICAqICh2ZXJ5IGhpZ2ggcHJvYmFiaWxpdHkpIHRoaXMgc2ltcGxlIGNvZGUgd2lsbCB3b3JrLgorICAgICAqIFRoZSByZW9yZGVyZWQgYmxvY2tzIGFyZToKKyAgICAgKiBCbG9jazEgaXMgQ0pLCisgICAgICogQmxvY2syIGlzIENKS19DT01QQVRfVVNFRAorICAgICAqIEJsb2NrMyBpcyBDSktfQQorICAgICAqIChhbGwgY29udGlndW91cykKKyAgICAgKiBBbnkgb3RoZXIgQ0pLIGdldHMgaXRzIG5vcm1hbCBjb2RlIHBvaW50CisgICAgICogQW55IG5vbi1DSksgZ2V0cyArMTBGRkZGCisgICAgICogV2hlbiB3ZSByZW9yZGVyIEJsb2NrMSwgd2UgbWFrZSBzdXJlIHRoYXQgaXQgaXMgYXQgdGhlIHZlcnkgc3RhcnQsCisgICAgICogc28gdGhhdCBpdCB3aWxsIHVzZSBhIDMtYnl0ZSBmb3JtLgorICAgICAqIFdhcm5pbmc6IHRoZSB3ZSBvbmx5IHBpY2sgdXAgdGhlIGNvbXBhdGliaWxpdHkgY2hhcmFjdGVycyB0aGF0IGFyZQorICAgICAqIE5PVCBkZWNvbXBvc2VkLCBzbyB0aGF0IGJsb2NrIGlzIHNtYWxsZXIhCisgICAgICovCisgICAgCisgICAgc3RhdGljIGludCBOT05fQ0pLX09GRlNFVCA9IDB4MTEwMDAwOworICAgICAgICAKKyAgICBzdGF0aWMgaW50IHN3YXBDSksoaW50IGkpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChpID49IENKS19CQVNFKSB7CisgICAgICAgICAgICBpZiAoaSA8IENKS19MSU1JVCkgICAgICAgICAgICAgIHJldHVybiBpIC0gQ0pLX0JBU0U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0NPTVBBVF9VU0VEX0JBU0UpICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPCBDSktfQ09NUEFUX1VTRURfTElNSVQpICByZXR1cm4gaSAtIENKS19DT01QQVRfVVNFRF9CQVNFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChDSktfTElNSVQgLSBDSktfQkFTRSk7CisgICAgICAgICAgICBpZiAoaSA8IENKS19CX0JBU0UpICAgICAgICAgICAgIHJldHVybiBpICsgTk9OX0NKS19PRkZTRVQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0JfTElNSVQpICAgICAgICAgICAgcmV0dXJuIGk7IC8vIG5vbi1CTVAtQ0pLCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBpICsgTk9OX0NKS19PRkZTRVQ7ICAvLyBub24tQ0pLCisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPCBDSktfQV9CQVNFKSAgICAgICAgICAgICAgICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgCisgICAgICAgIGlmIChpIDwgQ0pLX0FfTElNSVQpICAgICAgICAgICAgICAgIHJldHVybiBpIC0gQ0pLX0FfQkFTRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoQ0pLX0xJTUlUIC0gQ0pLX0JBU0UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpOworICAgICAgICByZXR1cm4gaSArIE5PTl9DSktfT0ZGU0VUOyAvLyBub24tQ0pLCisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogQHJldHVybiBNaW5pbWFsIHRyYWlsIHZhbHVlCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5UcmFpbCgpIHsKKyAgICAgICAgcmV0dXJuIG1pblRyYWlsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gTWF4aW1hbCB0cmFpbCB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4VHJhaWwoKSB7CisgICAgICAgIHJldHVybiBtYXhUcmFpbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRDb2RlUG9pbnRGcm9tUmF3KGludCBpKSB7CisgICAgICAgIGktLTsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGlmKGkgPj0gTk9OX0NKS19PRkZTRVQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGkgLSBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgfSBlbHNlIGlmKGkgPj0gQ0pLX0JfQkFTRSkgeworICAgICAgICAgICAgcmVzdWx0ID0gaTsKKyAgICAgICAgfSBlbHNlIGlmKGkgPCBDSktfQV9MSU1JVCArIChDSktfTElNSVQgLSBDSktfQkFTRSkgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpKSB7IAorICAgICAgICAgICAgLy8gcmVzdCBvZiBDSktzLCBjb21wYWN0ZWQKKyAgICAgICAgICAgIGlmKGkgPCBDSktfTElNSVQgLSBDSktfQkFTRSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGkgKyBDSktfQkFTRTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihpIDwgKENKS19MSU1JVCAtIENKS19CQVNFKSArIChDSktfQ09NUEFUX1VTRURfTElNSVQgLSBDSktfQ09NUEFUX1VTRURfQkFTRSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBpICsgQ0pLX0NPTVBBVF9VU0VEX0JBU0UgLSAoQ0pLX0xJTUlUIC0gQ0pLX0JBU0UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBpICsgQ0pLX0FfQkFTRSAtIChDSktfTElNSVQgLSBDSktfQkFTRSkgLSAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFJhd0Zyb21Db2RlUG9pbnQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIHN3YXBDSksoaSkrMTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQwYzQyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWUuamF2YQpAQCAtMCwwICsxLDM0MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUcmllIGltcGxlbWVudGF0aW9uIHdoaWNoIHN0b3JlcyBkYXRhIGluIGludCwgMzIgYml0cy4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuVHJpZQorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMDEgMjAwMgorICovCitwdWJsaWMgY2xhc3MgSW50VHJpZSBleHRlbmRzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5DcmVhdGVzIGEgbmV3IFRyaWUgd2l0aCB0aGUgc2V0dGluZ3MgZm9yIHRoZSB0cmllIGRhdGEuPC9wPgorICAgICogPHA+VW5zZXJpYWxpemUgdGhlIDMyLWJpdC1hbGlnbmVkIGlucHV0IHN0cmVhbSBhbmQgdXNlIHRoZSBkYXRhIGZvciB0aGUgCisgICAgKiB0cmllLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBmaWxlIGlucHV0IHN0cmVhbSB0byBhIElDVSBkYXRhIGZpbGUsIGNvbnRhaW5pbmcgCisgICAgKiAgICAgICAgICAgICAgICAgICAgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyB0byBwYXJzZSB0aGUgY2hhciAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgZGF0YQorICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBJbnRUcmllKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBEYXRhTWFuaXB1bGF0ZSBkYXRhTWFuaXB1bGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN1cGVyKGlucHV0U3RyZWFtLCBkYXRhTWFuaXB1bGF0ZSk7CisgICAgICAgIGlmICghaXNJbnRUcmllKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgZ2l2ZW4gZG9lcyBub3QgYmVsb25nIHRvIGEgaW50IHRyaWUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIGEgZHVtbXkgSW50VHJpZS4KKyAgICAgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAgICAgKiBiZSBsb2FkZWQuCisgICAgICoKKyAgICAgKiBUaGUgdHJpZSBhbHdheXMgcmV0dXJucyB0aGUgaW5pdGlhbFZhbHVlLAorICAgICAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAgICAgKiBUaGUgTGF0aW4tMSBwYXJ0IGlzIGFsd2F5cyBzZXQgdXAgdG8gYmUgbGluZWFyLgorICAgICAqCisgICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzCisgICAgICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZShpbnQgaW5pdGlhbFZhbHVlLCBpbnQgbGVhZFVuaXRWYWx1ZSwgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpIHsKKyAgICAgICAgc3VwZXIobmV3IGNoYXJbQk1QX0lOREVYX0xFTkdUSCtTVVJST0dBVEVfQkxPQ0tfQ09VTlRdLCBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfLCBkYXRhTWFuaXB1bGF0ZSk7CisKKyAgICAgICAgaW50IGRhdGFMZW5ndGgsIGxhdGluMUxlbmd0aCwgaSwgbGltaXQ7CisgICAgICAgIGNoYXIgYmxvY2s7CisKKyAgICAgICAgLyogY2FsY3VsYXRlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgZHVtbXkgdHJpZSBkYXRhICovCisKKyAgICAgICAgLyogbWF4KExhdGluLTEsIGJsb2NrIDApICovCisgICAgICAgIGRhdGFMZW5ndGg9bGF0aW4xTGVuZ3RoPSBJTkRFWF9TVEFHRV8xX1NISUZUXzw9OCA/IDI1NiA6IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICBpZihsZWFkVW5pdFZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgIGRhdGFMZW5ndGgrPURBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICB9CisgICAgICAgIG1fZGF0YV89bmV3IGludFtkYXRhTGVuZ3RoXTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXz1kYXRhTGVuZ3RoOworCisgICAgICAgIG1faW5pdGlhbFZhbHVlXz1pbml0aWFsVmFsdWU7CisKKyAgICAgICAgLyogZmlsbCB0aGUgaW5kZXggYW5kIGRhdGEgYXJyYXlzICovCisKKyAgICAgICAgLyogaW5kZXhlcyBhcmUgcHJlc2V0IHRvIDAgKGJsb2NrIDApICovCisKKyAgICAgICAgLyogTGF0aW4tMSBkYXRhICovCisgICAgICAgIGZvcihpPTA7IGk8bGF0aW4xTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1fZGF0YV9baV09aW5pdGlhbFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgaWYobGVhZFVuaXRWYWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICAvKiBpbmRleGVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIHRvIHRoZSBibG9jayBhZnRlciBMYXRpbi0xICovCisgICAgICAgICAgICBibG9jaz0oY2hhcikobGF0aW4xTGVuZ3RoPj5JTkRFWF9TVEFHRV8yX1NISUZUXyk7CisgICAgICAgICAgICBpPTB4ZDgwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBsaW1pdD0weGRjMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgICAgICAgICAgZm9yKDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9pbmRleF9baV09YmxvY2s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGRhdGEgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgKi8KKyAgICAgICAgICAgIGxpbWl0PWxhdGluMUxlbmd0aCtEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgIGZvcihpPWxhdGluMUxlbmd0aDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9kYXRhX1tpXT1sZWFkVW5pdFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQuCisgICAgKiBJZiBubyB2YWx1ZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludCwgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUKKyAgICAqIHJldHVybmVkLgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRDb2RlUG9pbnRWYWx1ZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0OworCisgICAgICAgIC8vIGZhc3RwYXRoIGZvciBVKzAwMDAuLlUrRDdGRgorICAgICAgICBpZigwIDw9IGNoICYmIGNoIDwgVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBjb3B5IG9mIGdldFJhd09mZnNldCgpCisgICAgICAgICAgICBvZmZzZXQgPSAobV9pbmRleF9bY2ggPj4gSU5ERVhfU1RBR0VfMV9TSElGVF9dIDw8IElOREVYX1NUQUdFXzJfU0hJRlRfKSAKKyAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiBJTkRFWF9TVEFHRV8zX01BU0tfKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW29mZnNldF07CisgICAgICAgIH0KKworICAgICAgICAvLyBoYW5kbGUgVStEODAwLi5VKzEwRkZGRgorICAgICAgICBvZmZzZXQgPSBnZXRDb2RlUG9pbnRPZmZzZXQoY2gpOworICAgICAgICByZXR1cm4gKG9mZnNldCA+PSAwKSA/IG1fZGF0YV9bb2Zmc2V0XSA6IG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIHRvIHRoZSBkYXRhIHdoaWNoIHRoaXMgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyIHBvaW50cworICAgICogdG8uCisgICAgKiBSZXR1cm5lZCBkYXRhIG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvciB0aGUgbmV4dAorICAgICogdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIFRoaXMgbWV0aG9kIGRvZXMgbm90IGd1YXJhbnRlZSBjb3JyZWN0IHJlc3VsdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMuCisgICAgKiBAcGFyYW0gY2ggbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGRhdGEgdmFsdWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TGVhZFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRMZWFkT2Zmc2V0KGNoKV07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQk1QIGNvZGUgcG9pbnQuCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsIHdpdGgKKyAgICAqIHVuZm9sZGVkIHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBnZXRMZWFkVmFsdWUoKSByZXN1bHRzLgorICAgICogQHBhcmFtIGNoIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZXBvaW50CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEJNUFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRCTVBPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGxlYWQgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFN1cnJvZ2F0ZVZhbHVlKGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpIHx8ICFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcmFjdGVycyBkbyBub3QgZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0U3Vycm9nYXRlT2Zmc2V0KGxlYWQsIHRyYWlsKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV9bb2Zmc2V0XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiBtX2luaXRpYWxWYWx1ZV8gaWYgdGhlcmUgaXMgYW4gZXJyb3IKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCBhIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAgICAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAqIEBwYXJhbSBsZWFkdmFsdWUgdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUgdGhhdCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICBmb2xkaW5nIG9mZnNldAorICAgICogQHBhcmFtIHRyYWlsIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFpbCBjaGFyYWN0ZXIKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxWYWx1ZShpbnQgbGVhZHZhbHVlLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGxlYWR2YWx1ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRSYXdPZmZzZXQob2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgbGF0aW4gMSBmYXN0IHBhdGggdmFsdWUuPC9wPgorICAgICAqIDxwPk5vdGUgdGhpcyBvbmx5IHdvcmtzIGlmIGxhdGluIDEgY2hhcmFjdGVycyBoYXZlIHRoZWlyIG93biBsaW5lYXIgCisgICAgICogYXJyYXkuPC9wPgorICAgICAqIEBwYXJhbSBjaCBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBsYXRpbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExhdGluMUxpbmVhclZhbHVlKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bSU5ERVhfU1RBR0VfM19NQVNLXyArIDEgKyBjaF07CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZQorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gc3VwZXIuZXF1YWxzKG90aGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAmJiBvdGhlciBpbnN0YW5jZW9mIEludFRyaWUpIHsKKyAgICAgICAgICAgIEludFRyaWUgb3RoZXJ0cmllID0gKEludFRyaWUpb3RoZXI7CisgICAgICAgICAgICBpZiAobV9pbml0aWFsVmFsdWVfICE9IG90aGVydHJpZS5tX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgICAgICAgICB8fCAhQXJyYXlzLmVxdWFscyhtX2RhdGFfLCBvdGhlcnRyaWUubV9kYXRhXykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPlBhcnNlcyB0aGUgaW5wdXQgc3RyZWFtIGFuZCBzdG9yZXMgaXRzIHRyaWUgY29udGVudCBpbnRvIGEgaW5kZXggYW5kCisgICAgKiBkYXRhIGFycmF5PC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGRhdGEgaW5wdXQgc3RyZWFtIGNvbnRhaW5pbmcgdHJpZSBkYXRhCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdW5zZXJpYWxpemUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIudW5zZXJpYWxpemUoaW5wdXRTdHJlYW0pOworICAgICAgICAvLyBvbmUgdXNlZCBmb3IgaW5pdGlhbCB2YWx1ZQorICAgICAgICBtX2RhdGFfICAgICAgICAgICAgICAgPSBuZXcgaW50W21fZGF0YUxlbmd0aF9dOworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2RhdGFMZW5ndGhfOyBpICsrKSB7CisgICAgICAgICAgICBtX2RhdGFfW2ldID0gaW5wdXQucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IG1fZGF0YV9bMF07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIC8vIGdldCBmb2xkIHBvc2l0aW9uIGZvciB0aGUgbmV4dCB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQoZ2V0TGVhZFZhbHVlKGxlYWQpKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFJhd09mZnNldChvZmZzZXQsIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHZhbHVlOiBtX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleC4KKyAgICAqIEZvciB1c2UgaW50ZXJuYWxseSBpbiBUcmllSXRlcmF0b3IKKyAgICAqIEBwYXJhbSBpbmRleCB2YWx1ZSBhdCBpbmRleCB3aWxsIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUKKyAgICAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3IKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KQorICAgIHsKKyAgICAgIHJldHVybiBtX2RhdGFfW2luZGV4XTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBkZWZhdWx0IGluaXRpYWwgdmFsdWUKKyAgICAqIEByZXR1cm4gMzIgYml0IHZhbHVlIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRJbml0aWFsVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIGZvciBidWlsZGVyIHVzZQorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYXJyYXkgdG8gYmUgc2xvdHRlZCBpbnRvIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBkYXRhIHRoZSBkYXRhIGFycmF5IHRvIGJlIHNsb3R0ZWQgaW50byB0aGlzIHRyaWUKKyAgICAgKiBAcGFyYW0gaW5pdGlhbHZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGlzIHRyaWUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyB0cmllIG9wdGlvbnMgdG8gdXNlCisgICAgICogQHBhcmFtIGRhdGFtYW5pcHVsYXRlIGZvbGRpbmcgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBJbnRUcmllKGNoYXIgaW5kZXhbXSwgaW50IGRhdGFbXSwgaW50IGluaXRpYWx2YWx1ZSwgaW50IG9wdGlvbnMsCisgICAgICAgICAgICBEYXRhTWFuaXB1bGF0ZSBkYXRhbWFuaXB1bGF0ZSkKKyAgICB7CisgICAgICAgIHN1cGVyKGluZGV4LCBvcHRpb25zLCBkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgIG1fZGF0YV8gPSBkYXRhOworICAgICAgICBtX2RhdGFMZW5ndGhfID0gbV9kYXRhXy5sZW5ndGg7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IGluaXRpYWx2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZQorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9pbml0aWFsVmFsdWVfOworICAgIC8qKgorICAgICogQXJyYXkgb2YgY2hhciBkYXRhCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2RhdGFfW107Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWZjMzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDc5MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBCdWlsZGVyIGNsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQGF1dGhvciAgICAgICAgICAgICBTeW4gV2VlIFF1ZWsKKyAqLworcHVibGljIGNsYXNzIEludFRyaWVCdWlsZGVyIGV4dGVuZHMgVHJpZUJ1aWxkZXIKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZUJ1aWxkZXIoSW50VHJpZUJ1aWxkZXIgdGFibGUpCisgICAgeworICAgICAgICBzdXBlcih0YWJsZSk7CisgICAgICAgIG1fZGF0YV8gPSBuZXcgaW50W21fZGF0YUNhcGFjaXR5X107CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9kYXRhXywgMCwgbV9kYXRhXywgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IHRhYmxlLm1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgbV9sZWFkVW5pdFZhbHVlXyA9IHRhYmxlLm1fbGVhZFVuaXRWYWx1ZV87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBhbGlhc2RhdGEgZGF0YSB0byBiZSBmaWxsZWQgaW50byB0YWJsZQorICAgICAqIEBwYXJhbSBtYXhkYXRhbGVuZ3RoIG1heGltdW0gZGF0YSBsZW5ndGggYWxsb3dlZCBpbiB0YWJsZQorICAgICAqIEBwYXJhbSBpbml0aWFsdmFsdWUgaW5pdGFsIGRhdGEgdmFsdWUKKyAgICAgKiBAcGFyYW0gbGF0aW4xbGluZWFyIGlzIGxhdGluIDEgdG8gYmUgbGluZWFyCisgICAgICovCisgICAgcHVibGljIEludFRyaWVCdWlsZGVyKGludCBhbGlhc2RhdGFbXSwgaW50IG1heGRhdGFsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgbGVhZHVuaXR2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGF0aW4xbGluZWFyKSAKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIGlmIChtYXhkYXRhbGVuZ3RoIDwgREFUQV9CTE9DS19MRU5HVEggfHwgKGxhdGluMWxpbmVhciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbWF4ZGF0YWxlbmd0aCA8IDEwMjQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbWF4ZGF0YWxlbmd0aCBpcyB0b28gc21hbGwiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChhbGlhc2RhdGEgIT0gbnVsbCkgeworICAgICAgICAgICAgbV9kYXRhXyA9IGFsaWFzZGF0YTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2RhdGFfID0gbmV3IGludFttYXhkYXRhbGVuZ3RoXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcHJlYWxsb2NhdGUgYW5kIHJlc2V0IHRoZSBmaXJzdCBkYXRhIGJsb2NrIChibG9jayBpbmRleCAwKQorICAgICAgICBpbnQgaiA9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAKKyAgICAgICAgaWYgKGxhdGluMWxpbmVhcikgeworICAgICAgICAgICAgLy8gcHJlYWxsb2NhdGUgYW5kIHJlc2V0IHRoZSBmaXJzdCBibG9jayAobnVtYmVyIDApIGFuZCBMYXRpbi0xIAorICAgICAgICAgICAgLy8gKFUrMDAwMC4uVSswMGZmKSBhZnRlciB0aGF0IG1hZGUgc3VyZSBhYm92ZSB0aGF0IAorICAgICAgICAgICAgLy8gbWF4RGF0YUxlbmd0aCA+PSAxMDI0CisgICAgICAgICAgICAvLyBzZXQgaW5kZXhlcyB0byBwb2ludCB0byBjb25zZWN1dGl2ZSBkYXRhIGJsb2NrcworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIC8vIGRvIHRoaXMgYXQgbGVhc3QgZm9yIHRyaWUtPmluZGV4WzBdIGV2ZW4gaWYgdGhhdCBibG9jayBpcyAKKyAgICAgICAgICAgICAgICAvLyBvbmx5IHBhcnRseSB1c2VkIGZvciBMYXRpbi0xCisgICAgICAgICAgICAgICAgbV9pbmRleF9baSArK10gPSBqOworICAgICAgICAgICAgICAgIGogKz0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgICAgICB9IHdoaWxlIChpIDwgKDI1NiA+PiBTSElGVF8pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyA9IGo7CisgICAgICAgIC8vIHJlc2V0IHRoZSBpbml0aWFsbHkgYWxsb2NhdGVkIGJsb2NrcyB0byB0aGUgaW5pdGlhbCB2YWx1ZQorICAgICAgICBBcnJheXMuZmlsbChtX2RhdGFfLCAwLCBtX2RhdGFMZW5ndGhfLCBpbml0aWFsdmFsdWUpOworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gPSBpbml0aWFsdmFsdWU7CisgICAgICAgIG1fbGVhZFVuaXRWYWx1ZV8gPSBsZWFkdW5pdHZhbHVlOworICAgICAgICBtX2RhdGFDYXBhY2l0eV8gPSBtYXhkYXRhbGVuZ3RoOworICAgICAgICBtX2lzTGF0aW4xTGluZWFyXyA9IGxhdGluMWxpbmVhcjsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIAorICAgIC8qcHVibGljIGZpbmFsIHZvaWQgcHJpbnQoKQorICAgICAgeworICAgICAgaW50IGkgPSAwOworICAgICAgaW50IG9sZHZhbHVlID0gbV9pbmRleF9baV07CisgICAgICBpbnQgY291bnQgPSAwOworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbmRleCBsZW5ndGggIiArIG1faW5kZXhMZW5ndGhfIAorICAgICAgKyAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICB3aGlsZSAoaSA8IG1faW5kZXhMZW5ndGhfKSB7CisgICAgICBpZiAobV9pbmRleF9baV0gIT0gb2xkdmFsdWUpIHsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5kZXggaGFzICIgKyBjb3VudCArICIgY291bnRzIG9mICIgCisgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcob2xkdmFsdWUpKTsKKyAgICAgIGNvdW50ID0gMDsKKyAgICAgIG9sZHZhbHVlID0gbV9pbmRleF9baV07CisgICAgICB9CisgICAgICBjb3VudCArKzsKKyAgICAgIGkgKys7CisgICAgICB9CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluZGV4IGhhcyAiICsgY291bnQgKyAiIGNvdW50cyBvZiAiIAorICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZHZhbHVlKSk7CisgICAgICBpID0gMDsKKyAgICAgIG9sZHZhbHVlID0gbV9kYXRhX1tpXTsKKyAgICAgIGNvdW50ID0gMDsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGF0YSBsZW5ndGggIiArIG1fZGF0YUxlbmd0aF8gCisgICAgICArICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgIHdoaWxlIChpIDwgbV9kYXRhTGVuZ3RoXykgeworICAgICAgaWYgKG1fZGF0YV9baV0gIT0gb2xkdmFsdWUpIHsKKyAgICAgIGlmICgob2xkdmFsdWUgJiAweGYxMDAwMDAwKSA9PSAweGYxMDAwMDAwKSB7CisgICAgICBpbnQgdGVtcCA9IG9sZHZhbHVlICYgMHhmZmZmZmY7IAorICAgICAgdGVtcCArPSAweDMyMDsKKyAgICAgIG9sZHZhbHVlID0gMHhmMTAwMDAwMCB8IHRlbXA7CisgICAgICB9CisgICAgICBpZiAoKG9sZHZhbHVlICYgMHhmMjAwMDAwMCkgPT0gMHhmMjAwMDAwMCkgeworICAgICAgaW50IHRlbXAgPSBvbGR2YWx1ZSAmIDB4ZmZmZmZmOyAKKyAgICAgIHRlbXAgKz0gMHgxNGE7CisgICAgICBvbGR2YWx1ZSA9IDB4ZjIwMDAwMDAgfCB0ZW1wOworICAgICAgfQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkYXRhIGhhcyAiICsgY291bnQgKyAiIGNvdW50cyBvZiAiIAorICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZHZhbHVlKSk7CisgICAgICBjb3VudCA9IDA7CisgICAgICBvbGR2YWx1ZSA9IG1fZGF0YV9baV07CisgICAgICB9CisgICAgICBjb3VudCArKzsKKyAgICAgIGkgKys7CisgICAgICB9CisgICAgICBpZiAoKG9sZHZhbHVlICYgMHhmMTAwMDAwMCkgPT0gMHhmMTAwMDAwMCkgeworICAgICAgaW50IHRlbXAgPSBvbGR2YWx1ZSAmIDB4ZmZmZmZmOyAKKyAgICAgIHRlbXAgKz0gMHgzMjA7CisgICAgICBvbGR2YWx1ZSA9IDB4ZjEwMDAwMDAgfCB0ZW1wOworICAgICAgfQorICAgICAgaWYgKChvbGR2YWx1ZSAmIDB4ZjIwMDAwMDApID09IDB4ZjIwMDAwMDApIHsKKyAgICAgIGludCB0ZW1wID0gb2xkdmFsdWUgJiAweGZmZmZmZjsgCisgICAgICB0ZW1wICs9IDB4MTRhOworICAgICAgb2xkdmFsdWUgPSAweGYyMDAwMDAwIHwgdGVtcDsKKyAgICAgIH0KKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGF0YSBoYXMgIiArIGNvdW50ICsgIiBjb3VudHMgb2YgIiAKKyAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhvbGR2YWx1ZSkpOworICAgICAgfQorICAgICovICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIDMyIGJpdCBkYXRhIGZyb20gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0aGUgMzIgYml0IGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFZhbHVlKGludCBjaCkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IGNoID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUgfHwgY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tjaCA+PiBTSElGVF9dOworICAgICAgICByZXR1cm4gbV9kYXRhX1tNYXRoLmFicyhibG9jaykgKyAoY2ggJiBNQVNLXyldOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgYSAzMiBiaXQgZGF0YSBmcm9tIHRoZSB0YWJsZSBkYXRhCisgICAgICogQHBhcmFtIGNoICBjb2RlIHBvaW50IGZvciB3aGljaCBkYXRhIGlzIHRvIGJlIHJldHJpZXZlZC4KKyAgICAgKiBAcGFyYW0gaW5CbG9ja1plcm8gIE91dHB1dCBwYXJhbWV0ZXIsIGluQmxvY2taZXJvWzBdIHJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBjaGFyIG1hcHMgaW50byBibG9jayB6ZXJvLCBvdGhlcndpc2UgZmFsc2UuCisgICAgICogQHJldHVybiB0aGUgMzIgYml0IGRhdGEgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRWYWx1ZShpbnQgY2gsIGJvb2xlYW4gW10gaW5CbG9ja1plcm8pIAorICAgIHsKKyAgICAgICAgLy8gdmFsaWQsIHVuY29tcGFjdGVkIHRyaWUgYW5kIHZhbGlkIGM/CisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGNoIDwgMCkgeworICAgICAgICAgICAgaWYgKGluQmxvY2taZXJvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbkJsb2NrWmVyb1swXSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tjaCA+PiBTSElGVF9dOworICAgICAgICBpZiAoaW5CbG9ja1plcm8gIT0gbnVsbCkgeworICAgICAgICAgICAgaW5CbG9ja1plcm9bMF0gPSAoYmxvY2sgPT0gMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bTWF0aC5hYnMoYmxvY2spICsgKGNoICYgTUFTS18pXTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogU2V0cyBhIDMyIGJpdCBkYXRhIGluIHRoZSB0YWJsZSBkYXRhCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB3aGljaCBkYXRhIGlzIHRvIGJlIHNldAorICAgICAqIEBwYXJhbSB2YWx1ZSB0byBzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHNldCBpcyBzdWNjZXNzZnVsLCBvdGhlcndpc2UgCisgICAgICogICAgICAgICAgICAgIGlmIHRoZSB0YWJsZSBoYXMgYmVlbiBjb21wYWN0ZWQgcmV0dXJuIGZhbHNlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gc2V0VmFsdWUoaW50IGNoLCBpbnQgdmFsdWUpIAorICAgIHsKKyAgICAgICAgLy8gdmFsaWQsIHVuY29tcGFjdGVkIHRyaWUgYW5kIHZhbGlkIGM/IAorICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8gfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSB8fCBjaCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgYmxvY2sgPSBnZXREYXRhQmxvY2soY2gpOworICAgICAgICBpZiAoYmxvY2sgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbV9kYXRhX1tibG9jayArIChjaCAmIE1BU0tfKV0gPSB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNlcmlhbGl6ZXMgdGhlIGJ1aWxkIHRhYmxlIHdpdGggMzIgYml0IGRhdGEKKyAgICAgKiBAcGFyYW0gZGF0YW1hbmlwdWxhdGUgYnVpbGRlciByYXcgZm9sZCBtZXRob2QgaW1wbGVtZW50YXRpb24KKyAgICAgKiBAcGFyYW0gdHJpZWRhdGFtYW5pcHVsYXRlIHJlc3VsdCB0cmllIGZvbGQgbWV0aG9kCisgICAgICogQHJldHVybiBhIG5ldyB0cmllCisgICAgICovCisgICAgcHVibGljIEludFRyaWUgc2VyaWFsaXplKFRyaWVCdWlsZGVyLkRhdGFNYW5pcHVsYXRlIGRhdGFtYW5pcHVsYXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJpZS5EYXRhTWFuaXB1bGF0ZSB0cmllZGF0YW1hbmlwdWxhdGUpCisgICAgeworICAgICAgICBpZiAoZGF0YW1hbmlwdWxhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUGFyYW1ldGVycyBjYW4gbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb2xkIGFuZCBjb21wYWN0IGlmIG5lY2Vzc2FyeSwgYWxzbyBjaGVja3MgdGhhdCBpbmRleExlbmd0aCBpcyAKKyAgICAgICAgLy8gd2l0aGluIGxpbWl0cyAKKyAgICAgICAgaWYgKCFtX2lzQ29tcGFjdGVkXykgeworICAgICAgICAgICAgLy8gY29tcGFjdCBvbmNlIHdpdGhvdXQgb3ZlcmxhcCB0byBpbXByb3ZlIGZvbGRpbmcKKyAgICAgICAgICAgIGNvbXBhY3QoZmFsc2UpOworICAgICAgICAgICAgLy8gZm9sZCB0aGUgc3VwcGxlbWVudGFyeSBwYXJ0IG9mIHRoZSBpbmRleCBhcnJheQorICAgICAgICAgICAgZm9sZChkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgICAgICAvLyBjb21wYWN0IGFnYWluIHdpdGggb3ZlcmxhcCBmb3IgbWluaW11bSBkYXRhIGFycmF5IGxlbmd0aAorICAgICAgICAgICAgY29tcGFjdCh0cnVlKTsKKyAgICAgICAgICAgIG1faXNDb21wYWN0ZWRfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBpcyBkYXRhTGVuZ3RoIHdpdGhpbiBsaW1pdHM/IAorICAgICAgICBpZiAobV9kYXRhTGVuZ3RoXyA+PSBNQVhfREFUQV9MRU5HVEhfKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJEYXRhIGxlbmd0aCB0b28gc21hbGwiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjaGFyIGluZGV4W10gPSBuZXcgY2hhclttX2luZGV4TGVuZ3RoX107CisgICAgICAgIGludCBkYXRhW10gPSBuZXcgaW50W21fZGF0YUxlbmd0aF9dOworICAgICAgICAvLyB3cml0ZSB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5IGFuZCB0aGUgMzItYml0IGRhdGEgKHN0YWdlIDIpIGFycmF5CisgICAgICAgIC8vIHdyaXRlIDE2LWJpdCBpbmRleCB2YWx1ZXMgc2hpZnRlZCByaWdodCBieSBJTkRFWF9TSElGVF8gCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9pbmRleExlbmd0aF87IGkgKyspIHsKKyAgICAgICAgICAgIGluZGV4W2ldID0gKGNoYXIpKG1faW5kZXhfW2ldID4+PiBJTkRFWF9TSElGVF8pOworICAgICAgICB9CisgICAgICAgIC8vIHdyaXRlIDMyLWJpdCBkYXRhIHZhbHVlcworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fZGF0YV8sIDAsIGRhdGEsIDAsIG1fZGF0YUxlbmd0aF8pOworICAgICAgICAKKyAgICAgICAgaW50IG9wdGlvbnMgPSBTSElGVF8gfCAoSU5ERVhfU0hJRlRfIDw8IE9QVElPTlNfSU5ERVhfU0hJRlRfKTsKKyAgICAgICAgb3B0aW9ucyB8PSBPUFRJT05TX0RBVEFfSVNfMzJfQklUXzsKKyAgICAgICAgaWYgKG1faXNMYXRpbjFMaW5lYXJfKSB7CisgICAgICAgICAgICBvcHRpb25zIHw9IE9QVElPTlNfTEFUSU4xX0lTX0xJTkVBUl87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJbnRUcmllKGluZGV4LCBkYXRhLCBtX2luaXRpYWxWYWx1ZV8sIG9wdGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZWRhdGFtYW5pcHVsYXRlKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogU2VyaWFsaXplcyB0aGUgYnVpbGQgdGFibGUgdG8gYW4gb3V0cHV0IHN0cmVhbS4KKyAgICAgKiAKKyAgICAgKiBDb21wYWN0cyB0aGUgYnVpbGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4KKyAgICAgKiB3cml0ZXMgdGhlIHNlcmlhbGl6ZWQgZm9ybSBvbnRvIGFuIG91dHB1dCBzdHJlYW0uCisgICAgICogCisgICAgICogQWZ0ZXIgdGhpcywgdGhpcyBidWlsZC10aW1lIFRyaWUgY2FuIG9ubHkgYmUgc2VyaWFsaXplZCBhZ2FpbiBhbmQvb3IgY2xvc2VkOworICAgICAqIG5vIGZ1cnRoZXIgdmFsdWVzIGNhbiBiZSBhZGRlZC4KKyAgICAgKiAKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSByb3VnaCBlcXVpdmFsZW50IG9mIHV0cmllX3NlcmlhaXplKCkgaW4gSUNVNEMuCisgICAgICogCisgICAgICogQHBhcmFtIG9zIHRoZSBvdXRwdXQgc3RyZWFtIHRvIHdoaWNoIHRoZSBzZXJpYWl6ZWQgdHJpZSB3aWxsIGJlIHdyaXR0ZW4uCisgICAgICogICAgICAgICBJZiBudWwsIHRoZSBmdW5jdGlvbiBzdGlsbCByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBzZXJpYWxpemVkIFRyaWUuCisgICAgICogQHBhcmFtIHJlZHVjZVRvMTZCaXRzIElmIHRydWUsIHJlZHVjZSB0aGUgZGF0YSBzaXplIHRvIDE2IGJpdHMuICBUaGUgcmVzdWx0aW5nCisgICAgICogICAgICAgICBzZXJpYWxpemVkIGZvcm0gY2FuIHRoZW4gYmUgdXNlZCB0byBjcmVhdGUgYSBDaGFyVHJpZS4KKyAgICAgKiBAcGFyYW0gZGF0YW1hbmlwdWxhdGUgYnVpbGRlciByYXcgZm9sZCBtZXRob2QgaW1wbGVtZW50YXRpb24KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IHN0cmVhbS4KKyAgICAgKi8KKyAgICAgcHVibGljIGludCBzZXJpYWxpemUoT3V0cHV0U3RyZWFtIG9zLCBib29sZWFuIHJlZHVjZVRvMTZCaXRzLAorICAgICAgICAgICAgVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUgZGF0YW1hbmlwdWxhdGUpICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgaWYgKGRhdGFtYW5pcHVsYXRlID09IG51bGwpIHsKKyAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXJzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICAgfQorCisgICAgICAgICAvLyBmb2xkIGFuZCBjb21wYWN0IGlmIG5lY2Vzc2FyeSwgYWxzbyBjaGVja3MgdGhhdCBpbmRleExlbmd0aCBpcyAKKyAgICAgICAgIC8vIHdpdGhpbiBsaW1pdHMgCisgICAgICAgICBpZiAoIW1faXNDb21wYWN0ZWRfKSB7CisgICAgICAgICAgICAgLy8gY29tcGFjdCBvbmNlIHdpdGhvdXQgb3ZlcmxhcCB0byBpbXByb3ZlIGZvbGRpbmcKKyAgICAgICAgICAgICBjb21wYWN0KGZhbHNlKTsKKyAgICAgICAgICAgICAvLyBmb2xkIHRoZSBzdXBwbGVtZW50YXJ5IHBhcnQgb2YgdGhlIGluZGV4IGFycmF5CisgICAgICAgICAgICAgZm9sZChkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgICAgICAgLy8gY29tcGFjdCBhZ2FpbiB3aXRoIG92ZXJsYXAgZm9yIG1pbmltdW0gZGF0YSBhcnJheSBsZW5ndGgKKyAgICAgICAgICAgICBjb21wYWN0KHRydWUpOworICAgICAgICAgICAgIG1faXNDb21wYWN0ZWRfID0gdHJ1ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy8gaXMgZGF0YUxlbmd0aCB3aXRoaW4gbGltaXRzPyAKKyAgICAgICAgIGludCBsZW5ndGg7CisgICAgICAgICBpZiAocmVkdWNlVG8xNkJpdHMpIHsKKyAgICAgICAgICAgICBsZW5ndGggPSBtX2RhdGFMZW5ndGhfICsgbV9pbmRleExlbmd0aF87CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIGxlbmd0aCA9IG1fZGF0YUxlbmd0aF87CisgICAgICAgICB9CisgICAgICAgICBpZiAobGVuZ3RoID49IE1BWF9EQVRBX0xFTkdUSF8pIHsKKyAgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJEYXRhIGxlbmd0aCB0b28gc21hbGwiKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy8gIHN0cnVjdCBVVHJpZUhlYWRlciB7CisgICAgICAgICAvLyAgICAgIGludDMyX3QgICBzaWduYXR1cmU7CisgICAgICAgICAvLyAgICAgIGludDMyX3QgICBvcHRpb25zICAoYSBiaXQgZmllbGQpCisgICAgICAgICAvLyAgICAgIGludDMyX3QgICBpbmRleExlbmd0aAorICAgICAgICAgLy8gICAgICBpbnQzMl90ICAgZGF0YUxlbmd0aAorICAgICAgICAgbGVuZ3RoID0gVHJpZS5IRUFERVJfTEVOR1RIXyArIDIqbV9pbmRleExlbmd0aF87CisgICAgICAgICBpZihyZWR1Y2VUbzE2Qml0cykgeworICAgICAgICAgICAgIGxlbmd0aCs9MiptX2RhdGFMZW5ndGhfOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICBsZW5ndGgrPTQqbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgaWYgKG9zID09IG51bGwpIHsKKyAgICAgICAgICAgICAvLyBObyBvdXRwdXQgc3RyZWFtLiAgSnVzdCByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgc2VyaWFsaXplZCBUcmllLCBpbiBieXRlcy4KKyAgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICAgfQorCisgICAgICAgICBEYXRhT3V0cHV0U3RyZWFtIGRvcyA9IG5ldyBEYXRhT3V0cHV0U3RyZWFtKG9zKTsKKyAgICAgICAgIGRvcy53cml0ZUludChUcmllLkhFQURFUl9TSUdOQVRVUkVfKTsgIAorICAgICAgICAgCisgICAgICAgICBpbnQgb3B0aW9ucyA9IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF8gfCAoVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzw8VHJpZS5IRUFERVJfT1BUSU9OU19JTkRFWF9TSElGVF8pOworICAgICAgICAgaWYoIXJlZHVjZVRvMTZCaXRzKSB7CisgICAgICAgICAgICAgb3B0aW9ucyB8PSBUcmllLkhFQURFUl9PUFRJT05TX0RBVEFfSVNfMzJfQklUXzsKKyAgICAgICAgIH0KKyAgICAgICAgIGlmKG1faXNMYXRpbjFMaW5lYXJfKSB7CisgICAgICAgICAgICAgb3B0aW9ucyB8PSBUcmllLkhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS187CisgICAgICAgICB9CisgICAgICAgICBkb3Mud3JpdGVJbnQob3B0aW9ucyk7CisgICAgICAgICAKKyAgICAgICAgIGRvcy53cml0ZUludChtX2luZGV4TGVuZ3RoXyk7CisgICAgICAgICBkb3Mud3JpdGVJbnQobV9kYXRhTGVuZ3RoXyk7CisgICAgICAgICAKKyAgICAgICAgIC8qIHdyaXRlIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYW5kIHRoZSAxNi8zMi1iaXQgZGF0YSAoc3RhZ2UgMikgYXJyYXkgKi8KKyAgICAgICAgIGlmKHJlZHVjZVRvMTZCaXRzKSB7CisgICAgICAgICAgICAgLyogd3JpdGUgMTYtYml0IGluZGV4IHZhbHVlcyBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX0lOREVYX1NISUZULCBhZnRlciBhZGRpbmcgaW5kZXhMZW5ndGggKi8KKyAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bV9pbmRleExlbmd0aF87IGkrKykgeworICAgICAgICAgICAgICAgICBpbnQgdiA9IChtX2luZGV4X1tpXSArIG1faW5kZXhMZW5ndGhfKSA+Pj4gVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgICAgICAgICAgZG9zLndyaXRlQ2hhcih2KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgLyogd3JpdGUgMTYtYml0IGRhdGEgdmFsdWVzICovCisgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bV9kYXRhTGVuZ3RoXzsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGludCB2ID0gbV9kYXRhX1tpXSAmIDB4MDAwMGZmZmY7CisgICAgICAgICAgICAgICAgIGRvcy53cml0ZUNoYXIodik7CisgICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAvKiB3cml0ZSAxNi1iaXQgaW5kZXggdmFsdWVzIHNoaWZ0ZWQgcmlnaHQgYnkgVVRSSUVfSU5ERVhfU0hJRlQgKi8KKyAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bV9pbmRleExlbmd0aF87IGkrKykgeworICAgICAgICAgICAgICAgICBpbnQgdiA9IChtX2luZGV4X1tpXSkgPj4+IFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgICAgICAgICAgICAgIGRvcy53cml0ZUNoYXIodik7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIC8qIHdyaXRlIDMyLWJpdCBkYXRhIHZhbHVlcyAqLworICAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPG1fZGF0YUxlbmd0aF87IGkrKykgeworICAgICAgICAgICAgICAgICBkb3Mud3JpdGVJbnQobV9kYXRhX1tpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgIHJldHVybiBsZW5ndGg7CisKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogU2V0IGEgdmFsdWUgaW4gYSByYW5nZSBvZiBjb2RlIHBvaW50cyBbc3RhcnQuLmxpbWl0XS4KKyAgICAgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0ICZsdDs9IGMgJmx0OyBsaW1pdCB3aWxsIGdldCB0aGUgdmFsdWUgaWYKKyAgICAgKiBvdmVyd3JpdGUgaXMgdHJ1ZSBvciBpZiB0aGUgb2xkIHZhbHVlIGlzIDAuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGdldCB0aGUgdmFsdWUKKyAgICAgKiBAcGFyYW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQorICAgICAqIEBwYXJhbSBvdmVyd3JpdGUgZmxhZyBmb3Igd2hldGhlciBvbGQgbm9uLWluaXRpYWwgdmFsdWVzIGFyZSB0byBiZSAKKyAgICAgKiAgICAgICAgb3ZlcndyaXR0ZW4KKyAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGEgZmFpbHVyZSBvY2N1cnJlZCAoaWxsZWdhbCBhcmd1bWVudCBvciBkYXRhIGFycmF5IAorICAgICAqICAgICAgICAgICAgICAgb3ZlcnJ1bikKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIG92ZXJ3cml0ZSkgCisgICAgeworICAgICAgICAvLyByZXBlYXQgdmFsdWUgaW4gW3N0YXJ0Li5saW1pdFsKKyAgICAgICAgLy8gbWFyayBpbmRleCB2YWx1ZXMgZm9yIHJlcGVhdC1kYXRhIGJsb2NrcyBieSBzZXR0aW5nIGJpdCAzMSBvZiB0aGUgCisgICAgICAgIC8vIGluZGV4IHZhbHVlcyBmaWxsIGFyb3VuZCBleGlzdGluZyB2YWx1ZXMgaWYgYW55LCBpZihvdmVyd3JpdGUpCisgICAgICAgICAgICAKKyAgICAgICAgLy8gdmFsaWQsIHVuY29tcGFjdGVkIHRyaWUgYW5kIHZhbGlkIGluZGV4ZXM/CisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBzdGFydCA8IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIAorICAgICAgICAgICAgfHwgc3RhcnQgPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSB8fCBsaW1pdCA8IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFCisgICAgICAgICAgICB8fCBsaW1pdCA+IChVQ2hhcmFjdGVyLk1BWF9WQUxVRSArIDEpIHx8IHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKChzdGFydCAmIE1BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBzZXQgcGFydGlhbCBibG9jayBhdCBbc3RhcnQuLmZvbGxvd2luZyBibG9jayBib3VuZGFyeVsKKyAgICAgICAgICAgIGludCBibG9jayA9IGdldERhdGFCbG9jayhzdGFydCk7CisgICAgICAgICAgICBpZiAoYmxvY2sgPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBuZXh0U3RhcnQgPSAoc3RhcnQgKyBEQVRBX0JMT0NLX0xFTkdUSCkgJiB+TUFTS187CisgICAgICAgICAgICBpZiAobmV4dFN0YXJ0IDw9IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCBzdGFydCAmIE1BU0tfLCBEQVRBX0JMT0NLX0xFTkdUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnQ7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCBzdGFydCAmIE1BU0tfLCBsaW1pdCAmIE1BU0tfLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgb3ZlcndyaXRlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gbnVtYmVyIG9mIHBvc2l0aW9ucyBpbiB0aGUgbGFzdCwgcGFydGlhbCBibG9jaworICAgICAgICBpbnQgcmVzdCA9IGxpbWl0ICYgTUFTS187CisgICAgICAgIAorICAgICAgICAvLyByb3VuZCBkb3duIGxpbWl0IHRvIGEgYmxvY2sgYm91bmRhcnkgCisgICAgICAgIGxpbWl0ICY9IH5NQVNLXzsKKyAgICAgICAgCisgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciBhbGwtdmFsdWUgYmxvY2tzIAorICAgICAgICBpbnQgcmVwZWF0QmxvY2sgPSAwOworICAgICAgICBpZiAodmFsdWUgPT0gbV9pbml0aWFsVmFsdWVfKSB7CisgICAgICAgICAgICAvLyByZXBlYXRCbG9jayA9IDA7IGFzc2lnbmVkIGFib3ZlCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVwZWF0QmxvY2sgPSAtMTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgLy8gZ2V0IGluZGV4IHZhbHVlIAorICAgICAgICAgICAgaW50IGJsb2NrID0gbV9pbmRleF9bc3RhcnQgPj4gU0hJRlRfXTsKKyAgICAgICAgICAgIGlmIChibG9jayA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGFsbG9jYXRlZCwgZmlsbCBpbiB2YWx1ZQorICAgICAgICAgICAgICAgIGZpbGxCbG9jayhibG9jaywgMCwgREFUQV9CTE9DS19MRU5HVEgsIHZhbHVlLCBvdmVyd3JpdGUpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKG1fZGF0YV9bLWJsb2NrXSAhPSB2YWx1ZSAmJiAoYmxvY2sgPT0gMCB8fCBvdmVyd3JpdGUpKSB7CisgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSByZXBlYXRCbG9jayBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IGJsb2NrIDAgb3IgcmFuZ2UgCisgICAgICAgICAgICAgICAgLy8gYmxvY2sgCisgICAgICAgICAgICAgICAgaWYgKHJlcGVhdEJsb2NrID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV9pbmRleF9bc3RhcnQgPj4gU0hJRlRfXSA9IC1yZXBlYXRCbG9jazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYW5kIHNldCBhbmQgZmlsbCB0aGUgcmVwZWF0QmxvY2sKKyAgICAgICAgICAgICAgICAgICAgcmVwZWF0QmxvY2sgPSBnZXREYXRhQmxvY2soc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0QmxvY2sgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmVnYXRpdmUgYmxvY2sgbnVtYmVyIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgYSAKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwZWF0IGJsb2NrCisgICAgICAgICAgICAgICAgICAgIG1faW5kZXhfW3N0YXJ0ID4+IFNISUZUX10gPSAtcmVwZWF0QmxvY2s7CisgICAgICAgICAgICAgICAgICAgIGZpbGxCbG9jayhyZXBlYXRCbG9jaywgMCwgREFUQV9CTE9DS19MRU5HVEgsIHZhbHVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgc3RhcnQgKz0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN0ID4gMCkgeworICAgICAgICAgICAgLy8gc2V0IHBhcnRpYWwgYmxvY2sgYXQgW2xhc3QgYmxvY2sgYm91bmRhcnkuLmxpbWl0WworICAgICAgICAgICAgaW50IGJsb2NrID0gZ2V0RGF0YUJsb2NrKHN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaWxsQmxvY2soYmxvY2ssIDAsIHJlc3QsIHZhbHVlLCBvdmVyd3JpdGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIAorICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhX1tdOworICAgIHByb3RlY3RlZCBpbnQgbV9pbml0aWFsVmFsdWVfOyAgCisgICAgCisgICAgLy8gIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIHByaXZhdGUgaW50IG1fbGVhZFVuaXRWYWx1ZV87ICAKKyAgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgCisgICAgcHJpdmF0ZSBpbnQgYWxsb2NEYXRhQmxvY2soKSAKKyAgICB7CisgICAgICAgIGludCBuZXdCbG9jayA9IG1fZGF0YUxlbmd0aF87CisgICAgICAgIGludCBuZXdUb3AgPSBuZXdCbG9jayArIERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICBpZiAobmV3VG9wID4gbV9kYXRhQ2FwYWNpdHlfKSB7CisgICAgICAgICAgICAvLyBvdXQgb2YgbWVtb3J5IGluIHRoZSBkYXRhIGFycmF5CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhTGVuZ3RoXyA9IG5ld1RvcDsKKyAgICAgICAgcmV0dXJuIG5ld0Jsb2NrOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vIGVycm9yIGNoZWNraW5nIGZvciBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGxvb2sgZm9yCisgICAgICogQHJldHVybiAtMSBpZiBubyBuZXcgZGF0YSBibG9jayBhdmFpbGFibGUgKG91dCBvZiBtZW1vcnkgaW4gZGF0YSBhcnJheSkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXREYXRhQmxvY2soaW50IGNoKSAKKyAgICB7CisgICAgICAgIGNoID4+PSBTSElGVF87CisgICAgICAgIGludCBpbmRleFZhbHVlID0gbV9pbmRleF9bY2hdOworICAgICAgICBpZiAoaW5kZXhWYWx1ZSA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleFZhbHVlOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGFsbG9jYXRlIGEgbmV3IGRhdGEgYmxvY2sKKyAgICAgICAgaW50IG5ld0Jsb2NrID0gYWxsb2NEYXRhQmxvY2soKTsKKyAgICAgICAgaWYgKG5ld0Jsb2NrIDwgMCkgeworICAgICAgICAgICAgLy8gb3V0IG9mIG1lbW9yeSBpbiB0aGUgZGF0YSBhcnJheSAKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBtX2luZGV4X1tjaF0gPSBuZXdCbG9jazsKKyAgICAKKyAgICAgICAgLy8gY29weS1vbi13cml0ZSBmb3IgYSBibG9jayBmcm9tIGEgc2V0UmFuZ2UoKQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fZGF0YV8sIE1hdGguYWJzKGluZGV4VmFsdWUpLCBtX2RhdGFfLCBuZXdCbG9jaywgIAorICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQ0tfTEVOR1RIIDw8IDIpOworICAgICAgICByZXR1cm4gbmV3QmxvY2s7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhY3QgYSBmb2xkZWQgYnVpbGQtdGltZSB0cmllLgorICAgICAqIFRoZSBjb21wYWN0aW9uCisgICAgICogLSByZW1vdmVzIGJsb2NrcyB0aGF0IGFyZSBpZGVudGljYWwgd2l0aCBlYXJsaWVyIG9uZXMKKyAgICAgKiAtIG92ZXJsYXBzIGFkamFjZW50IGJsb2NrcyBhcyBtdWNoIGFzIHBvc3NpYmxlIChpZiBvdmVybGFwID09IHRydWUpCisgICAgICogLSBtb3ZlcyBibG9ja3MgaW4gc3RlcHMgb2YgdGhlIGRhdGEgZ3JhbnVsYXJpdHkKKyAgICAgKiAtIG1vdmVzIGFuZCBvdmVybGFwcyBibG9ja3MgdGhhdCBvdmVybGFwIHdpdGggbXVsdGlwbGUgdmFsdWVzIGluIHRoZSBvdmVybGFwIHJlZ2lvbgorICAgICAqCisgICAgICogSXQgZG9lcyBub3QKKyAgICAgKiAtIHRyeSB0byBtb3ZlIGFuZCBvdmVybGFwIGJsb2NrcyB0aGF0IGFyZSBub3QgYWxyZWFkeSBhZGphY2VudAorICAgICAqIEBwYXJhbSBvdmVybGFwIGZsYWcKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcGFjdChib29sZWFuIG92ZXJsYXApIAorICAgIHsKKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfKSB7CisgICAgICAgICAgICByZXR1cm47IC8vIG5vdGhpbmcgbGVmdCB0byBkbworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGNvbXBhY3Rpb24KKyAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgaW5kZXggbWFwIHdpdGggImJsb2NrIGlzIHVzZWQvdW51c2VkIiBmbGFncworICAgICAgICBmaW5kVW51c2VkQmxvY2tzKCk7CisgICAgICAgIAorICAgICAgICAvLyBpZiBMYXRpbi0xIGlzIHByZWFsbG9jYXRlZCBhbmQgbGluZWFyLCB0aGVuIGRvIG5vdCBjb21wYWN0IExhdGluLTEgCisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgaW50IG92ZXJsYXBTdGFydCA9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICBpZiAobV9pc0xhdGluMUxpbmVhcl8gJiYgU0hJRlRfIDw9IDgpIHsKKyAgICAgICAgICAgIG92ZXJsYXBTdGFydCArPSAyNTY7CisgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgaW50IG5ld1N0YXJ0ID0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGludCBzdGFydCA9IG5ld1N0YXJ0OyBzdGFydCA8IG1fZGF0YUxlbmd0aF87KSB7CisgICAgICAgICAgICAvLyBzdGFydDogaW5kZXggb2YgZmlyc3QgZW50cnkgb2YgY3VycmVudCBibG9jaworICAgICAgICAgICAgLy8gbmV3U3RhcnQ6IGluZGV4IHdoZXJlIHRoZSBjdXJyZW50IGJsb2NrIGlzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAvLyAgICAgICAgICAgKHJpZ2h0IGFmdGVyIGN1cnJlbnQgZW5kIG9mIGFscmVhZHktY29tcGFjdGVkIGRhdGEpCisgICAgICAgICAgICAvLyBza2lwIGJsb2NrcyB0aGF0IGFyZSBub3QgdXNlZCAKKyAgICAgICAgICAgIGlmIChtX21hcF9bc3RhcnQgPj4+IFNISUZUX10gPCAwKSB7CisgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBzdGFydCB0byB0aGUgbmV4dCBibG9jayAKKyAgICAgICAgICAgICAgICBzdGFydCArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgICAgICAvLyBsZWF2ZSBuZXdTdGFydCB3aXRoIHRoZSBwcmV2aW91cyBibG9jayEKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgYW4gaWRlbnRpY2FsIGJsb2NrCisgICAgICAgICAgICBpZiAoc3RhcnQgPj0gb3ZlcmxhcFN0YXJ0KSB7CisgICAgICAgICAgICAgICAgaSA9IGZpbmRTYW1lRGF0YUJsb2NrKG1fZGF0YV8sIG5ld1N0YXJ0LCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXAgPyBEQVRBX0dSQU5VTEFSSVRZXyA6IERBVEFfQkxPQ0tfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIGFuIGlkZW50aWNhbCBibG9jaywgc2V0IHRoZSBvdGhlciBibG9jaydzIGluZGV4IAorICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+PiBTSElGVF9dID0gaTsKKyAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBzdGFydCB0byB0aGUgbmV4dCBibG9jaworICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgICAgICAgICAgLy8gbGVhdmUgbmV3U3RhcnQgd2l0aCB0aGUgcHJldmlvdXMgYmxvY2shCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgYmxvY2sgY2FuIGJlIG92ZXJsYXBwZWQgd2l0aCB0aGUgCisgICAgICAgICAgICAvLyBlbmQgb2YgdGhlIHByZXZpb3VzIGJsb2NrCisgICAgICAgICAgICBpZihvdmVybGFwICYmIHN0YXJ0Pj1vdmVybGFwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAvKiBsb29rIGZvciBtYXhpbXVtIG92ZXJsYXAgKG1vZHVsbyBncmFudWxhcml0eSkgd2l0aCB0aGUgcHJldmlvdXMsIGFkamFjZW50IGJsb2NrICovCisgICAgICAgICAgICAgICAgZm9yKGk9REFUQV9CTE9DS19MRU5HVEgtREFUQV9HUkFOVUxBUklUWV87CisgICAgICAgICAgICAgICAgICAgIGk+MCAmJiAhZXF1YWxfaW50KG1fZGF0YV8sIG5ld1N0YXJ0LWksIHN0YXJ0LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaS09REFUQV9HUkFOVUxBUklUWV8pIHt9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGk9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgIC8vIHNvbWUgb3ZlcmxhcAorICAgICAgICAgICAgICAgIG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA9IG5ld1N0YXJ0IC0gaTsKKyAgICAgICAgICAgICAgICAvLyBtb3ZlIHRoZSBub24tb3ZlcmxhcHBpbmcgaW5kZXhlcyB0byB0aGVpciBuZXcgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgc3RhcnQgKz0gaTsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSBEQVRBX0JMT0NLX0xFTkdUSCAtIGk7IGkgPiAwOyAtLSBpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YV9bbmV3U3RhcnQgKytdID0gbV9kYXRhX1tzdGFydCArK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKG5ld1N0YXJ0IDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAvLyBubyBvdmVybGFwLCBqdXN0IG1vdmUgdGhlIGluZGV4ZXMgdG8gdGhlaXIgbmV3IHBvc2l0aW9ucworICAgICAgICAgICAgICAgIG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA9IG5ld1N0YXJ0OworICAgICAgICAgICAgICAgIGZvciAoaSA9IERBVEFfQkxPQ0tfTEVOR1RIOyBpID4gMDsgLS0gaSkgeworICAgICAgICAgICAgICAgICAgICBtX2RhdGFfW25ld1N0YXJ0ICsrXSA9IG1fZGF0YV9bc3RhcnQgKytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsgLy8gbm8gb3ZlcmxhcCAmJiBuZXdTdGFydD09c3RhcnQKKyAgICAgICAgICAgICAgICBtX21hcF9bc3RhcnQgPj4+IFNISUZUX10gPSBzdGFydDsKKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG5ld1N0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIG5vdyBhZGp1c3QgdGhlIGluZGV4IChzdGFnZSAxKSB0YWJsZQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbV9pbmRleExlbmd0aF87ICsrIGkpIHsKKyAgICAgICAgICAgIG1faW5kZXhfW2ldID0gbV9tYXBfW01hdGguYWJzKG1faW5kZXhfW2ldKSA+Pj4gU0hJRlRfXTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFMZW5ndGhfID0gbmV3U3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgc2FtZSBkYXRhIGJsb2NrCisgICAgICogQHBhcmFtIGRhdGEgYXJyYXkKKyAgICAgKiBAcGFyYW0gZGF0YUxlbmd0aAorICAgICAqIEBwYXJhbSBvdGhlckJsb2NrCisgICAgICogQHBhcmFtIHN0ZXAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZFNhbWVEYXRhQmxvY2soaW50IGRhdGFbXSwgaW50IGRhdGFMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvdGhlckJsb2NrLCBpbnQgc3RlcCkgCisgICAgeworICAgICAgICAvLyBlbnN1cmUgdGhhdCB3ZSBkbyBub3QgZXZlbiBwYXJ0aWFsbHkgZ2V0IHBhc3QgZGF0YUxlbmd0aAorICAgICAgICBkYXRhTGVuZ3RoIC09IERBVEFfQkxPQ0tfTEVOR1RIOworCisgICAgICAgIGZvciAoaW50IGJsb2NrID0gMDsgYmxvY2sgPD0gZGF0YUxlbmd0aDsgYmxvY2sgKz0gc3RlcCkgeworICAgICAgICAgICAgaWYoZXF1YWxfaW50KGRhdGEsIGJsb2NrLCBvdGhlckJsb2NrLCBEQVRBX0JMT0NLX0xFTkdUSCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGb2xkIHRoZSBub3JtYWxpemF0aW9uIGRhdGEgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgaW50bworICAgICAqIGEgY29tcGFjdCBhcmVhIG9uIHRvcCBvZiB0aGUgQk1QLXBhcnQgb2YgdGhlIHRyaWUgaW5kZXgsCisgICAgICogd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGVzIGluZGV4aW5nIHRoaXMgY29tcGFjdCBhcmVhLgorICAgICAqCisgICAgICogRHVwbGljYXRlIHRoZSBpbmRleCB2YWx1ZXMgZm9yIGxlYWQgc3Vycm9nYXRlczoKKyAgICAgKiBGcm9tIGluc2lkZSB0aGUgQk1QIGFyZWEsIHdoZXJlIHNvbWUgbWF5IGJlIG92ZXJyaWRkZW4gd2l0aCBmb2xkZWQgdmFsdWVzLAorICAgICAqIHRvIGp1c3QgYWZ0ZXIgdGhlIEJNUCBhcmVhLCB3aGVyZSB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgZm9yCisgICAgICogY29kZSBwb2ludCBsb29rdXBzLgorICAgICAqIEBwYXJhbSBtYW5pcHVsYXRlIGZvbGQgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZm9sZChEYXRhTWFuaXB1bGF0ZSBtYW5pcHVsYXRlKSAKKyAgICB7CisgICAgICAgIGludCBsZWFkSW5kZXhlc1tdID0gbmV3IGludFtTVVJST0dBVEVfQkxPQ0tfQ09VTlRfXTsKKyAgICAgICAgaW50IGluZGV4W10gPSBtX2luZGV4XzsKKyAgICAgICAgLy8gY29weSB0aGUgbGVhZCBzdXJyb2dhdGUgaW5kZXhlcyBpbnRvIGEgdGVtcG9yYXJ5IGFycmF5CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIDB4ZDgwMCA+PiBTSElGVF8sIGxlYWRJbmRleGVzLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNldCBhbGwgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlICp1bml0cyogdG8gbGVhZFVuaXRWYWx1ZQorICAgICAgICAvLyBzbyB0aGF0IGJ5IGRlZmF1bHQgcnVudGltZSBsb29rdXBzIHdpbGwgZmluZCBubyBkYXRhIGZvciBhc3NvY2lhdGVkCisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHVubGVzcyB0aGVyZSBpcyBkYXRhIGZvciBzdWNoIGNvZGUgcG9pbnRzCisgICAgICAgIC8vIHdoaWNoIHdpbGwgcmVzdWx0IGluIGEgbm9uLXplcm8gZm9sZGluZyB2YWx1ZSBiZWxvdyB0aGF0IGlzIHNldCBmb3IKKyAgICAgICAgLy8gdGhlIHJlc3BlY3RpdmUgbGVhZCB1bml0cworICAgICAgICAvLyB0aGUgYWJvdmUgc2F2ZWQgdGhlIGluZGV4ZXMgZm9yIHN1cnJvZ2F0ZSBjb2RlICpwb2ludHMqCisgICAgICAgIC8vIGZpbGwgdGhlIGluZGV4ZXMgd2l0aCBzaW1wbGlmaWVkIGNvZGUgZnJvbSB1dHJpZV9zZXRSYW5nZTMyKCkKKyAgICAgICAgaW50IGJsb2NrID0gMDsKKyAgICAgICAgaWYgKG1fbGVhZFVuaXRWYWx1ZV8gPT0gbV9pbml0aWFsVmFsdWVfKSB7CisgICAgICAgICAgICAvLyBsZWFkVW5pdFZhbHVlID09IGluaXRpYWxWYWx1ZSwgdXNlIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrCisgICAgICAgICAgICAvLyBibG9jayA9IDA7IGlmIGJsb2NrIGhlcmUgbGVmdCBlbXB0eQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNyZWF0ZSBhbmQgZmlsbCB0aGUgcmVwZWF0QmxvY2sKKyAgICAgICAgICAgIGJsb2NrID0gYWxsb2NEYXRhQmxvY2soKTsKKyAgICAgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICAvLyBkYXRhIHRhYmxlIG92ZXJmbG93CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiSW50ZXJuYWwgZXJyb3I6IE91dCBvZiBtZW1vcnkgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGxCbG9jayhibG9jaywgMCwgREFUQV9CTE9DS19MRU5HVEgsIG1fbGVhZFVuaXRWYWx1ZV8sIHRydWUpOworICAgICAgICAgICAgLy8gbmVnYXRpdmUgYmxvY2sgbnVtYmVyIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgYSByZXBlYXQgYmxvY2sKKyAgICAgICAgICAgIGJsb2NrID0gLWJsb2NrOyAKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBjID0gKDB4ZDgwMCA+PiBTSElGVF8pOyBjIDwgKDB4ZGMwMCA+PiBTSElGVF8pOyArKyBjKSB7CisgICAgICAgICAgICBtX2luZGV4X1tjXSA9IGJsb2NrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRm9sZCBzaWduaWZpY2FudCBpbmRleCB2YWx1ZXMgaW50byB0aGUgYXJlYSBqdXN0IGFmdGVyIHRoZSBCTVAgCisgICAgICAgIC8vIGluZGV4ZXMuCisgICAgICAgIC8vIEluIGNhc2UgdGhlIGZpcnN0IGxlYWQgc3Vycm9nYXRlIGhhcyBzaWduaWZpY2FudCBkYXRhLAorICAgICAgICAvLyBpdHMgaW5kZXggYmxvY2sgbXVzdCBiZSB1c2VkIGZpcnN0IChpbiB3aGljaCBjYXNlIHRoZSBmb2xkaW5nIGlzIGEgCisgICAgICAgIC8vIG5vLW9wKS4KKyAgICAgICAgLy8gTGF0ZXIgYWxsIGZvbGRlZCBpbmRleCBibG9ja3MgYXJlIG1vdmVkIHVwIG9uZSB0byBpbnNlcnQgdGhlIGNvcGllZAorICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSBpbmRleGVzLgorICAgICAgICBpbnQgaW5kZXhMZW5ndGggPSBCTVBfSU5ERVhfTEVOR1RIXzsKKyAgICAgICAgLy8gc2VhcmNoIGZvciBhbnkgaW5kZXggKHN0YWdlIDEpIGVudHJpZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgCisgICAgICAgIGZvciAoaW50IGMgPSAweDEwMDAwOyBjIDwgMHgxMTAwMDA7KSB7CisgICAgICAgICAgICBpZiAoaW5kZXhbYyA+PiBTSElGVF9dICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBpcyBkYXRhLCB0cmVhdCB0aGUgZnVsbCBibG9jayBmb3IgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgIGMgJj0gfjB4M2ZmOworICAgICAgICAgICAgICAgIC8vIGlzIHRoZXJlIGFuIGlkZW50aWNhbCBpbmRleCBibG9jaz8KKyAgICAgICAgICAgICAgICBibG9jayA9IGZpbmRTYW1lSW5kZXhCbG9jayhpbmRleCwgaW5kZXhMZW5ndGgsIGMgPj4gU0hJRlRfKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBnZXQgYSBmb2xkZWQgdmFsdWUgZm9yIFtjLi5jKzB4NDAwWyBhbmQsCisgICAgICAgICAgICAgICAgLy8gaWYgZGlmZmVyZW50IGZyb20gdGhlIHZhbHVlIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUgY29kZSAKKyAgICAgICAgICAgICAgICAvLyBwb2ludCwgc2V0IGl0IGZvciB0aGUgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0CisKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSBtYW5pcHVsYXRlLmdldEZvbGRlZFZhbHVlKGMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sgKyBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gZ2V0VmFsdWUoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXRWYWx1ZShVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRhdGEgdGFibGUgb3ZlcmZsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSB0YWJsZSBvdmVyZmxvdyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZCBub3QgZmluZCBhbiBpZGVudGljYWwgaW5kZXggYmxvY2suLi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrID09IGluZGV4TGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb3ZlIHRoZSBhY3R1YWwgaW5kZXggKHN0YWdlIDEpIGVudHJpZXMgZnJvbSB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwbGVtZW50YXJ5IHBvc2l0aW9uIHRvIHRoZSBuZXcgb25lCisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGluZGV4LCBjID4+IFNISUZUXywgaW5kZXgsIGluZGV4TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TGVuZ3RoICs9IFNVUlJPR0FURV9CTE9DS19DT1VOVF87CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyArPSAweDQwMDsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpbmRleCBhcnJheSBvdmVyZmxvdz8KKyAgICAgICAgLy8gVGhpcyBpcyB0byBndWFyYW50ZWUgdGhhdCBhIGZvbGRpbmcgb2Zmc2V0IGlzIG9mIHRoZSBmb3JtCisgICAgICAgIC8vIFVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgICAgICAgIC8vIElmIHRoZSBpbmRleCBpcyB0b28gbGFyZ2UsIHRoZW4gbj49MTAyNCBhbmQgbW9yZSB0aGFuIDEwIGJpdHMgYXJlIAorICAgICAgICAvLyBuZWNlc3NhcnkuCisgICAgICAgIC8vIEluIGZhY3QsIGl0IGNhbiBvbmx5IGV2ZXIgYmVjb21lIG49PTEwMjQgd2l0aCBjb21wbGV0ZWx5IHVuZm9sZGFibGUgCisgICAgICAgIC8vIGRhdGEgYW5kIHRoZSBhZGRpdGlvbmFsIGJsb2NrIG9mIGR1cGxpY2F0ZWQgdmFsdWVzIGZvciBsZWFkIAorICAgICAgICAvLyBzdXJyb2dhdGVzLgorICAgICAgICBpZiAoaW5kZXhMZW5ndGggPj0gTUFYX0lOREVYX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkluZGV4IHRhYmxlIG92ZXJmbG93Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbWFrZSBzcGFjZSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlIGluZGV4IGJsb2NrIGFuZCBpbnNlcnQgaXQgYmV0d2VlbiAKKyAgICAgICAgLy8gdGhlIEJNUCBpbmRleGVzIGFuZCB0aGUgZm9sZGVkIG9uZXMKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShpbmRleCwgQk1QX0lOREVYX0xFTkdUSF8sIGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBCTVBfSU5ERVhfTEVOR1RIXyArIFNVUlJPR0FURV9CTE9DS19DT1VOVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhMZW5ndGggLSBCTVBfSU5ERVhfTEVOR1RIXyk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGVhZEluZGV4ZXMsIDAsIGluZGV4LCBCTVBfSU5ERVhfTEVOR1RIXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKTsKKyAgICAgICAgaW5kZXhMZW5ndGggKz0gU1VSUk9HQVRFX0JMT0NLX0NPVU5UXzsKKyAgICAgICAgbV9pbmRleExlbmd0aF8gPSBpbmRleExlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGZpbGxCbG9jayhpbnQgYmxvY2ssIGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvdmVyd3JpdGUpIAorICAgIHsKKyAgICAgICAgbGltaXQgKz0gYmxvY2s7CisgICAgICAgIGJsb2NrICs9IHN0YXJ0OworICAgICAgICBpZiAob3ZlcndyaXRlKSB7CisgICAgICAgICAgICB3aGlsZSAoYmxvY2sgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIG1fZGF0YV9bYmxvY2sgKytdID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKGJsb2NrIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9kYXRhX1tibG9ja10gPT0gbV9pbml0aWFsVmFsdWVfKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YV9bYmxvY2tdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrIGJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnZhbGlkRm9ybWF0RXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnZhbGlkRm9ybWF0RXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY3YzJhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludmFsaWRGb3JtYXRFeGNlcHRpb24uamF2YQpAQCAtMCwwICsxLDIxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitwdWJsaWMgY2xhc3MgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgCisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA4ODgzMzI4OTA1MDg5MzQ1NzkxTDsKKyAgICAKKyAgICBwdWJsaWMgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbigpe30KKyAgICAKKyAgICBwdWJsaWMgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSl7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0pES1RpbWVab25lLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9KREtUaW1lWm9uZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OTRiZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9KREtUaW1lWm9uZS5qYXZhCkBAIC0wLDAgKzEsMjcwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBPY3RvYmVyIDIgMjAwMworKiBTaW5jZTogSUNVIDIuOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBXcmFwcGVyIGFyb3VuZCBPbHNvblRpbWVab25lIG9iamVjdC4gRHVlIHRvIHNlcmlhbHppYXRpb24gY29uc3RyYWludHMKKyAqIFNpbXBsZVRpbWVab25lIGNhbm5vdCBiZSBhIHN1YmNsYXNzIG9mIE9sc29uVGltZVpvbmUuCisgKiAKKyAqIFRoZSBjb21wbGVtZW50IG9mIHRoaXMgaXMgVGltZVpvbmVBZGFwdGVyLCB3aGljaCBtYWtlcyBhCisgKiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGxvb2sgbGlrZSBhIGphdmEudXRpbC5UaW1lWm9uZS4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBKREtUaW1lWm9uZSBleHRlbmRzIFRpbWVab25lIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0zNzI0OTA3NjQ5ODg5NDU1MjgwTDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgamF2YS51dGlsLlRpbWVab25lIHdyYXBwZWQgYnkgdGhpcyBvYmplY3QuICBNdXN0IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIC8vIGdpdmUgYWNjZXNzIHRvIFNpbXBsZVRpbWVab25lCisgICAgcHJvdGVjdGVkIHRyYW5zaWVudCBPbHNvblRpbWVab25lIHpvbmU7CisgICAgLyoqCisgICAgICogR2l2ZW4gYSBqYXZhLnV0aWwuVGltZVpvbmUsIHdyYXAgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIGFkYXB0ZXIKKyAgICAgKiBzdWJjbGFzcyBvZiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGFuZCByZXR1cm4gdGhlIGFkYXB0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSB3cmFwKGphdmEudXRpbC5UaW1lWm9uZSB0eikgeworICAgICAgICBpZiAodHogaW5zdGFuY2VvZiBUaW1lWm9uZUFkYXB0ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKFRpbWVab25lQWRhcHRlcikgdHopLnVud3JhcCgpOworICAgICAgICB9CisgICAgICAgIGlmICh0eiBpbnN0YW5jZW9mIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVUaW1lWm9uZSgoamF2YS51dGlsLlNpbXBsZVRpbWVab25lKSB0eiwgdHouZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBKREtUaW1lWm9uZSh0eik7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgSkRLVGltZVpvbmUgZ2l2ZW4gYSBqYXZhLnV0aWwuVGltZVpvbmUgcmVmZXJlbmNlCisgICAgICogd2hpY2ggbXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gdHogdGhlIHRpbWUgem9uZSB0byB3cmFwCisgICAgICogCisgICAgICogQGludGVybmFsIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBKREtUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUgdHopIHsKKyAgICAgICAgU3RyaW5nIGlkID0gdHouZ2V0SUQoKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgem9uZSA9IG5ldyBPbHNvblRpbWVab25lKGlkKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IGV4Y2VwdGlvbgorICAgICAgICB9CisgICAgICAgIHN1cGVyLnNldElEKGlkKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIEpES1RpbWVab25lKE9sc29uVGltZVpvbmUgdHopIHsKKyAgICAgICAgem9uZSA9IHR6OworICAgICAgICBzdXBlci5zZXRJRCh6b25lLmdldElEKCkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgcHJvdGVjdGVkIEpES1RpbWVab25lKCkgeworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgSUQuIFRoaXMgZG9lcyBub3QgY2hhbmdlIGFueSBvdGhlciBkYXRhIGluCisgICAgICogdGhlIHRpbWUgem9uZSBvYmplY3QuCisgICAgICogQHBhcmFtIElEIHRoZSBuZXcgdGltZSB6b25lIElELgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldElEKFN0cmluZyBJRCkgeworICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgem9uZS5zZXRJRChJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKSB7CisKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gem9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIG9jY3VyIGV4Y2VwdCAKKyAgICAgICAgLy8gd2hlbiBvbGQgb2JqZWN0IG9mIG9sZGVyIHZlcnNpb24gb2YgSkRLVGltZVpvbmUgYXJlIGRlLXNlcmlhbGl6ZWQuCisgICAgICAgIC8vIHRoZXNlIG9iamVjdHMgbWF5IGNvbnRhaW4gaWRzIHRoYXQgT2xzb25UaW1lWm9uZSBtYXkgbm90IHVuZGVyc3RhbmQgCisgICAgICAgIC8vIGluIHN1Y2ggY2FzZXMgem9uZSB3aWxsIGJlIG51bGwKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBnZXRPZmZzZXQobG9uZyBkYXRlLCBib29sZWFuIGxvY2FsLCBpbnRbXSBvZmZzZXRzKSB7CisKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICB6b25lLmdldE9mZnNldChkYXRlLCBsb2NhbCwgb2Zmc2V0cyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgc3VwZXIuZ2V0T2Zmc2V0KGRhdGUsIGxvY2FsLCBvZmZzZXRzKTsKKyAgICAgICAgfQorICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICB6b25lLnNldFJhd09mZnNldChvZmZzZXRNaWxsaXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiB6b25lLmdldFJhd09mZnNldCgpOworICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBuZXZlciBvY2N1ciBleGNlcHQgCisgICAgICAgIC8vIHdoZW4gb2xkIG9iamVjdCBvZiBvbGRlciB2ZXJzaW9uIG9mIEpES1RpbWVab25lIGFyZSBkZS1zZXJpYWxpemVkLgorICAgICAgICAvLyB0aGVzZSBvYmplY3RzIG1heSBjb250YWluIGlkcyB0aGF0IE9sc29uVGltZVpvbmUgbWF5IG5vdCB1bmRlcnN0YW5kIAorICAgICAgICAvLyBpbiBzdWNoIGNhc2VzIHpvbmUgd2lsbCBiZSBudWxsCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiB1c2VEYXlsaWdodFRpbWUoKSB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHpvbmUudXNlRGF5bGlnaHRUaW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIG9jY3VyIGV4Y2VwdCAKKyAgICAgICAgLy8gd2hlbiBvbGQgb2JqZWN0IG9mIG9sZGVyIHZlcnNpb24gb2YgSkRLVGltZVpvbmUgYXJlIGRlLXNlcmlhbGl6ZWQuCisgICAgICAgIC8vIHRoZXNlIG9iamVjdHMgbWF5IGNvbnRhaW4gaWRzIHRoYXQgT2xzb25UaW1lWm9uZSBtYXkgbm90IHVuZGVyc3RhbmQgCisgICAgICAgIC8vIGluIHN1Y2ggY2FzZXMgem9uZSB3aWxsIGJlIG51bGwKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gem9uZS5pbkRheWxpZ2h0VGltZShkYXRlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgb2NjdXIgZXhjZXB0IAorICAgICAgICAvLyB3aGVuIG9sZCBvYmplY3Qgb2Ygb2xkZXIgdmVyc2lvbiBvZiBKREtUaW1lWm9uZSBhcmUgZGUtc2VyaWFsaXplZC4KKyAgICAgICAgLy8gdGhlc2Ugb2JqZWN0cyBtYXkgY29udGFpbiBpZHMgdGhhdCBPbHNvblRpbWVab25lIG1heSBub3QgdW5kZXJzdGFuZCAKKyAgICAgICAgLy8gaW4gc3VjaCBjYXNlcyB6b25lIHdpbGwgYmUgbnVsbAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhUaW1lWm9uZSBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChvdGhlciBpbnN0YW5jZW9mIEpES1RpbWVab25lKSB7CisgICAgICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gem9uZS5oYXNTYW1lUnVsZXMoKChKREtUaW1lWm9uZSkgb3RoZXIpLnpvbmUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdXBlci5oYXNTYW1lUnVsZXMob3RoZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBKREtUaW1lWm9uZSBjbG9uZSA9IG5ldyBKREtUaW1lWm9uZSgpOworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIGNsb25lLnpvbmUgPSAoT2xzb25UaW1lWm9uZSl6b25lLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNsb25lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gem9uZS5oYXNoQ29kZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdXBlci5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1zIHRoYXQgdGhlIGNsb2NrIGlzIGFkdmFuY2VkIGR1cmluZyBEU1QuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGUgdGltZSBpcworICAgICAqIGFkdmFuY2VkIHdpdGggcmVzcGVjdCB0byBzdGFuZGFyZCB0aW1lIHdoZW4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgcnVsZXMKKyAgICAgKiBhcmUgaW4gZWZmZWN0LiBBIHBvc2l0aXZlIG51bWJlciwgdHlwaWNhbGx5IG9uZSBob3VyICgzNjAwMDAwKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERTVFNhdmluZ3MoKSB7CisgICAgICAgIGlmICh1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIHpvbmUuZ2V0RFNUU2F2aW5ncygpOworICAgICAgICAgICAgfQorCQkJcmV0dXJuIDM2MDAwMDA7CisJCX0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZihvYmogIT1udWxsKXsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB0ejEgPSB6b25lOworICAgICAgICAgICAgICAgIFRpbWVab25lIHR6MiA9ICgoSkRLVGltZVpvbmUpIG9iaikuem9uZTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGVxdWFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZih0ejEhPW51bGwgJiYgdHoyIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZXF1YWwgPSB0ejEuZXF1YWxzKHR6Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBlcXVhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiAgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJKREtUaW1lWm9uZTogIiArIHpvbmUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVPYmplY3QoamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW0gb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIG91dC53cml0ZU9iamVjdCh6b25lLmdldElEKCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG91dC53cml0ZU9iamVjdChnZXRJRCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0gaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaW4ucmVhZE9iamVjdCgpOworCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgVGltZVpvbmUgb2JqZWN0IGlmIHJlYWRpbmcgdGhlIG9sZCB2ZXJzaW9uIG9mIG9iamVjdAorICAgICAgICB0cnl7CisgICAgICAgICAgICB6b25lID0gbmV3IE9sc29uVGltZVpvbmUoaWQpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIC8vdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgfQkJCQkJCQkgCisgICAgICAgIHNldElEKGlkKTsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9MUlVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xSVU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMjFmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9MUlVNYXAuamF2YQpAQCAtMCwwICsxLDU0IEBACisvLyMjaGVhZGVyCisvKgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKKy8vI2VuZGlmCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoKKyAqIFNpbXBsZSBMUlUgKExlYXN0IFJlY2VudCBVc2VkKSBNYXAgaW1wbGVtZW50YXRpb24KKyAqLworcHVibGljIGNsYXNzIExSVU1hcCBleHRlbmRzIExpbmtlZEhhc2hNYXAgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC04MTc4MTA2NDU5MDg5NjgyMTIwTDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX01BWENBUEFDSVRZID0gNjQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfSU5JVElBTENBUEFDSVRZID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXQgREVGQVVMVF9MT0FERkFDVE9SID0gMC43NUY7CisKKyAgICBwcml2YXRlIGZpbmFsIGludCBtYXhDYXBhY2l0eTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBMUlUgbWFwIHdpdGggdGhlIGRlZmF1bHQgaW5pdGlhbAorICAgICAqIGNhcGFjaXR5KDE2KSBhbmQgdGhlIG1heGltdW0gY2FwYWNpdHkoNjQpLgorICAgICAqLworICAgIHB1YmxpYyBMUlVNYXAoKSB7CisgICAgICAgIHN1cGVyKERFRkFVTFRfSU5JVElBTENBUEFDSVRZLCBERUZBVUxUX0xPQURGQUNUT1IsIHRydWUpOworICAgICAgICBtYXhDYXBhY2l0eSA9IERFRkFVTFRfTUFYQ0FQQUNJVFk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IExSVSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGluaXRpYWwKKyAgICAgKiBjYXBhY2l0eSBhbmQgdGhlIG1heGltdW0gY2FwYWNpdHkKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaW5pdGlhbENhcGFjaXR5IGluaXRpYWwgY2FwYWNpdHkgb2YgdGhlIG1hcAorICAgICAqIEBwYXJhbSBtYXhDYXBhY2l0eSBtYXhpbXVtIGNhcGFjaXR5IG9mIHRoZSBtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgTFJVTWFwKGludCBpbml0aWFsQ2FwYWNpdHksIGludCBtYXhDYXBhY2l0eSkgeworICAgICAgICBzdXBlcihpbml0aWFsQ2FwYWNpdHksIERFRkFVTFRfTE9BREZBQ1RPUiwgdHJ1ZSk7CisgICAgICAgIHRoaXMubWF4Q2FwYWNpdHkgPSBtYXhDYXBhY2l0eTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIERlbGV0ZSB0aGUgZWxkZXN0IGVudHJ5IHdoZW4gdGhlIHNpemUgZXhjZWVkcyB0aGUgbGltaXQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiByZW1vdmVFbGRlc3RFbnRyeShNYXAuRW50cnkgZWxkZXN0KSB7CisgICAgICAgIHJldHVybiAoc2l6ZSgpID4gbWF4Q2FwYWNpdHkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xpbmtlZEhhc2hNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xpbmtlZEhhc2hNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzllNTMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTGlua2VkSGFzaE1hcC5qYXZhCkBAIC0wLDAgKzEsMTc1IEBACisvKgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8qKgorICogSkRLMS40IExpbmtlZEhhc2hNYXAgZXF1aXZhbGVudCBpbXBsZW1lbnRhdGlvbiBmb3IKKyAqIEphdmEgZm91bmRhdGlvbiBwcm9maWxlIHN1cHBvcnQuICBUaGlzIGNsYXNzIGlzIHVzZWQKKyAqIGJ5IDxjb2RlPmNvbS5pYm0uaWN1LmltcGwuTFJVTWFwPC9jb2RlPiBvbiBlY2xpcHNlCisgKiBkaXN0cmlidXRpb25zLCB3aGljaCByZXF1aXJlIEpESzEuMy9KYXZhIEZvdW5kYXRpb24KKyAqIHByb2ZpbGUgc3VwcG9ydC4KKyAqLworcHVibGljIGNsYXNzIExpbmtlZEhhc2hNYXAgZXh0ZW5kcyBIYXNoTWFwIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjQ5NzgyMzQ4MDQzNjYxODA3NUw7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gYWNjZXNzT3JkZXIgPSBmYWxzZTsKKyAgICBwcml2YXRlIExpbmtlZExpc3Qga2V5TGlzdCA9IG5ldyBMaW5rZWRMaXN0KCk7CisKKyAgICBwdWJsaWMgTGlua2VkSGFzaE1hcCgpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTGlua2VkSGFzaE1hcChpbnQgaW5pdGlhbENhcGFjaXR5KSB7CisgICAgICAgIHN1cGVyKGluaXRpYWxDYXBhY2l0eSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBMaW5rZWRIYXNoTWFwKGludCBpbml0aWFsQ2FwYWNpdHksIGZsb2F0IGxvYWRGYWN0b3IpIHsKKyAgICAgICAgc3VwZXIoaW5pdGlhbENhcGFjaXR5LCBsb2FkRmFjdG9yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTGlua2VkSGFzaE1hcChpbnQgaW5pdGlhbENhcGFjaXR5LCBmbG9hdCBsb2FkRmFjdG9yLCBib29sZWFuIGFjY2Vzc09yZGVyKSB7CisgICAgICAgIHN1cGVyKGluaXRpYWxDYXBhY2l0eSwgbG9hZEZhY3Rvcik7CisgICAgICAgIHRoaXMuYWNjZXNzT3JkZXIgPSBhY2Nlc3NPcmRlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgTGlua2VkSGFzaE1hcChNYXAgbSkgeworICAgICAgICBzdXBlcigpOworICAgICAgICBwdXRBbGwobSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIHN1cGVyLmNsZWFyKCk7CisgICAgICAgIGtleUxpc3QuY2xlYXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IHJlbW92ZShPYmplY3Qga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHN1cGVyLnJlbW92ZShrZXkpOworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gbnVsbCBtaWdodCBiZSByZXR1cm5lZCBmb3IgYSBtYXAgZW50cnkKKyAgICAgICAgICAgIC8vIGZvciBudWxsIHZhbHVlLiAgU28gd2UgbmVlZCB0byBjaGVjayBpZgorICAgICAgICAgICAgLy8gdGhlIGtleSBpcyBhY3R1YWxseSBhdmFpbGFibGUgb3Igbm90LgorICAgICAgICAgICAgLy8gSWYgdGhlIGtleSBsaXN0IGNvbnRhaW5zIHRoZSBrZXksIHRoZW4KKyAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUga2V5IGZyb20gdGhlIGxpc3QuCisgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRLZXlJbmRleChrZXkpOworICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBrZXlMaXN0LnJlbW92ZShpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgT2JqZWN0IGdldChPYmplY3Qga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHN1cGVyLmdldChrZXkpOworICAgICAgICBpZiAoYWNjZXNzT3JkZXIpIHsKKyAgICAgICAgICAgIC8vIFdoZW4gYWNjZXNzT3JkZXIgaXMgdHJ1ZSwgbW92ZSB0aGUga2V5CisgICAgICAgICAgICAvLyB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CisgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRLZXlJbmRleChrZXkpOworICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT0ga2V5TGlzdC5zaXplKCkgLSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGtleUxpc3QucmVtb3ZlKGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAga2V5TGlzdC5hZGRMYXN0KGtleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwdXRBbGwoTWFwIG0pIHsKKyAgICAgICAgU2V0IGtleVNldCA9IG0ua2V5U2V0KCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0ga2V5U2V0Lml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtLmdldChrZXkpOworICAgICAgICAgICAgcHV0KGtleSwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIE9iamVjdCBvbGRWYWx1ZSA9IHN1cGVyLnB1dChrZXksIHZhbHVlKTsKKworICAgICAgICAvLyBNb3ZlIHRoZSBrZXkgdG8gdGhlIGVuZCBvZiBrZXkgbGlzdAorICAgICAgICAvLyBpZiBpdCBleGlzdHMuICBJZiBub3QsIGFwcGVuZCB0aGUga2V5CisgICAgICAgIC8vIHRvIHRoZSBlbmQgb2Yga2V5IGxpc3QKKyAgICAgICAgaW50IGluZGV4ID0gZ2V0S2V5SW5kZXgoa2V5KTsKKyAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSBrZXlMaXN0LnNpemUoKSAtIDEpIHsKKyAgICAgICAgICAgICAgICBrZXlMaXN0LnJlbW92ZShpbmRleCk7CisgICAgICAgICAgICAgICAga2V5TGlzdC5hZGRMYXN0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBrZXlMaXN0LmFkZExhc3Qoa2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBlbGRlc3QKKyAgICAgICAgLy8gZW50cnkuCisgICAgICAgIE9iamVjdCBlbGRlc3RLZXkgPSBrZXlMaXN0LmdldEZpcnN0KCk7CisgICAgICAgIE9iamVjdCBlbGRlc3RWYWx1ZSA9IHN1cGVyLmdldChlbGRlc3RLZXkpOworICAgICAgICBNYXBFbnRyeSBlbnRyeSA9IG5ldyBNYXBFbnRyeShlbGRlc3RLZXksIGVsZGVzdFZhbHVlKTsKKyAgICAgICAgaWYgKHJlbW92ZUVsZGVzdEVudHJ5KGVudHJ5KSkgeworICAgICAgICAgICAga2V5TGlzdC5yZW1vdmVGaXJzdCgpOworICAgICAgICAgICAgc3VwZXIucmVtb3ZlKGVsZGVzdEtleSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gb2xkVmFsdWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gcmVtb3ZlRWxkZXN0RW50cnkoTWFwLkVudHJ5IGVsZGVzdCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZ2V0S2V5SW5kZXgoT2JqZWN0IGtleSkgeworICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrZXlMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgbyA9IGtleUxpc3QuZ2V0KGkpOworICAgICAgICAgICAgaWYgKG8uZXF1YWxzKGtleSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgY2xhc3MgTWFwRW50cnkgaW1wbGVtZW50cyBNYXAuRW50cnkgeworICAgICAgICBwcml2YXRlIE9iamVjdCBrZXk7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IHZhbHVlOworCisgICAgICAgIHByaXZhdGUgTWFwRW50cnkoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICAgICAgT2JqZWN0IG90aGVyS2V5ID0gKChNYXAuRW50cnkpbykuZ2V0S2V5KCk7CisgICAgICAgICAgICBPYmplY3Qgb3RoZXJWYWx1ZSA9ICgoTWFwLkVudHJ5KW8pLmdldFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoa2V5LmVxdWFscyhvdGhlcktleSkgJiYgdmFsdWUuZXF1YWxzKG90aGVyVmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFZhbHVlKCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBzZXRWYWx1ZShPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIE9iamVjdCBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm4gb2xkVmFsdWU7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg5MmIxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YQpAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBjbGFzcyB0byBob2xkIHV0aWxpdHkgZnVuY3Rpb25zIG1pc3NpbmcgZnJvbSBqYXZhLnV0aWwuTG9jYWxlLgorICovCitwdWJsaWMgY2xhc3MgTG9jYWxlVXRpbGl0eSB7CisKKyAgICAvKioKKyAgICAgKiBBIGhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgc3RyaW5nIG9mIHRoZSBmb3JtCisgICAgICogYWFfQkJfQ0MgdG8gYSBsb2NhbGUgb2JqZWN0LiAgV2h5IGlzbid0IHRoaXMgaW4gTG9jYWxlPworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlIGdldExvY2FsZUZyb21OYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9ICIiOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworCisgICAgICAgIGludCBpMSA9IG5hbWUuaW5kZXhPZignXycpOworICAgICAgICBpZiAoaTEgPCAwKSB7CisgICAgICAgICAgICBsYW5ndWFnZSA9IG5hbWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYW5ndWFnZSA9IG5hbWUuc3Vic3RyaW5nKDAsIGkxKTsKKyAgICAgICAgICAgICsraTE7CisgICAgICAgICAgICBpbnQgaTIgPSBuYW1lLmluZGV4T2YoJ18nLCBpMSk7CisgICAgICAgICAgICBpZiAoaTIgPCAwKSB7CisgICAgICAgICAgICAgICAgY291bnRyeSA9IG5hbWUuc3Vic3RyaW5nKGkxKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY291bnRyeSA9IG5hbWUuc3Vic3RyaW5nKGkxLCBpMik7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IG5hbWUuc3Vic3RyaW5nKGkyKzEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIGxvY2FsZSBzdHJpbmdzIG9mIHRoZSBmb3JtIGFhX0JCX0NDLCBhbmQKKyAgICAgKiByZXR1cm4gdHJ1ZSBpZiBwYXJlbnQgaXMgYSAnc3RyaWN0JyBmYWxsYmFjayBvZiBjaGlsZCwgdGhhdCBpcywKKyAgICAgKiBpZiBjaGlsZCA9fiAiXnBhcmVudChfLispKiIgKHJvdWdobHkpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoU3RyaW5nIHBhcmVudCwgU3RyaW5nIGNoaWxkKSB7CisgICAgICAgIGlmICghY2hpbGQuc3RhcnRzV2l0aChwYXJlbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSBwYXJlbnQubGVuZ3RoKCk7CisgICAgICAgIHJldHVybiAoaSA9PSBjaGlsZC5sZW5ndGgoKSB8fAorICAgICAgICAgICAgICAgIGNoaWxkLmNoYXJBdChpKSA9PSAnXycpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIGxvY2FsZXMsIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyZW50IGlzIGEKKyAgICAgKiAnc3RyaWN0JyBmYWxsYmFjayBvZiB0aGUgY2hpbGQgKHBhcmVudCBzdHJpbmcgaXMgYSBmYWxsYmFjaworICAgICAqIG9mIGNoaWxkIHN0cmluZykuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRmFsbGJhY2tPZihMb2NhbGUgcGFyZW50LCBMb2NhbGUgY2hpbGQpIHsKKyAgICAgICAgcmV0dXJuIGlzRmFsbGJhY2tPZihwYXJlbnQudG9TdHJpbmcoKSwgY2hpbGQudG9TdHJpbmcoKSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYWxscyBjYW5vbmljYWxMb2NhbGVTdHJpbmcoU3RyaW5nKSB3aXRoCisgICAgICogbG9jYWxlLnRvU3RyaW5nKCk7CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTG9jYWxlU3RyaW5nKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGNhbm9uaWNhbExvY2FsZVN0cmluZyhsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogWW91J2QgdGhpbmsgdGhhdCBMb2NhbGUgY2Fub25pY2FsaXplcywgc2luY2UgaXQgbXVuZ2VzIHRoZQorICAgICAqIHJlbmFtZWQgbGFuZ3VhZ2VzLCBidXQgaXQgZG9lc24ndCBxdWl0ZS4gIEl0IGZvcmNlcyB0aGUgcmVnaW9uCisgICAgICogdG8gYmUgdXBwZXIgY2FzZSBidXQgZG9lc24ndCBkbyBhbnl0aGluZyBhYm91dCB0aGUgbGFuZ3VhZ2Ugb3IKKyAgICAgKiB2YXJpYW50LiAgT3VyIGNhbm9uaWNhbCBmb3JtIGlzICdsb3dlcl9VUFBFUl9VUFBFUicuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjYW5vbmljYWxMb2NhbGVTdHJpbmcoU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChpZCAhPSBudWxsKSB7CisJCQlpbnQgeCA9IGlkLmluZGV4T2YoIl8iKTsKKwkJCWlmICh4ID09IC0xKSB7CisJCQkJaWQgPSBpZC50b0xvd2VyQ2FzZShMb2NhbGUuRU5HTElTSCk7CisJCQl9IGVsc2UgeworCQkJCVN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJCQkJYnVmLmFwcGVuZChpZC5zdWJzdHJpbmcoMCwgeCkudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpKTsKKwkJCQlidWYuYXBwZW5kKGlkLnN1YnN0cmluZyh4KS50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCkpOworCisJCQkJaW50IGxlbiA9IGJ1Zi5sZW5ndGgoKTsKKwkJCQlpbnQgbiA9IGxlbjsKKwkJCQl3aGlsZSAoLS1uID49IDAgJiYgYnVmLmNoYXJBdChuKSA9PSAnXycpIHsKKwkJCQl9CisJCQkJaWYgKCsrbiAhPSBsZW4pIHsKKwkJCQkJYnVmLmRlbGV0ZShuLCBsZW4pOworCQkJCX0KKwkJCQlpZCA9IGJ1Zi50b1N0cmluZygpOworCQkJfQorCQl9CisJCXJldHVybiBpZDsKKyAgICB9CisKKyAgICAvKioKKwkgKiBGYWxsYmFjayBmcm9tIHRoZSBnaXZlbiBsb2NhbGUgbmFtZSBieSByZW1vdmluZyB0aGUgcmlnaHRtb3N0IF8tZGVsaW1pdGVkCisJICogZWxlbWVudC4gSWYgdGhlcmUgaXMgbm9uZSwgcmV0dXJuIHRoZSByb290IGxvY2FsZSAoIiIsICIiLCAiIikuIElmIHRoaXMKKwkgKiBpcyB0aGUgcm9vdCBsb2NhbGUsIHJldHVybiBudWxsLiBOT1RFOiBUaGUgc3RyaW5nICJyb290IiBpcyBub3QKKwkgKiByZWNvZ25pemVkOyBkbyBub3QgdXNlIGl0LgorCSAqIAorCSAqIEByZXR1cm4gYSBuZXcgTG9jYWxlIHRoYXQgaXMgYSBmYWxsYmFjayBmcm9tIHRoZSBnaXZlbiBsb2NhbGUsIG9yIG51bGwuCisJICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGUgZmFsbGJhY2soTG9jYWxlIGxvYykgeworCisgICAgICAgIC8vIFNwbGl0IHRoZSBsb2NhbGUgaW50byBwYXJ0cyBhbmQgcmVtb3ZlIHRoZSByaWdodG1vc3QgcGFydAorICAgICAgICBTdHJpbmdbXSBwYXJ0cyA9IG5ldyBTdHJpbmdbXQorICAgICAgICAgICAgeyBsb2MuZ2V0TGFuZ3VhZ2UoKSwgbG9jLmdldENvdW50cnkoKSwgbG9jLmdldFZhcmlhbnQoKSB9OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPTI7IGk+PTA7IC0taSkgeworICAgICAgICAgICAgaWYgKHBhcnRzW2ldLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBwYXJ0c1tpXSA9ICIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpPDApIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBBbGwgcGFydHMgd2VyZSBlbXB0eQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKHBhcnRzWzBdLCBwYXJ0c1sxXSwgcGFydHNbMl0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVyRGF0YVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMTI4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVyRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsNDMwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworCisvKioKKyAqIEB2ZXJzaW9uICAgICAxLjAKKyAqIEBhdXRob3IgICAgICAgIFJhbSBWaXN3YW5hZGhhCisgKi8KKworICAgIC8qCisgICAgICogRGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdCBvZiB1bm9ybS5pY3UgdmVyc2lvbiAyLjEuCisgICAgICoKKyAgICAgKiBNYWluIGNoYW5nZSBmcm9tIHZlcnNpb24gMSB0byB2ZXJzaW9uIDI6CisgICAgICogVXNlIG9mIG5ldywgY29tbW9uIFRyaWUgaW5zdGVhZCBvZiBub3JtYWxpemF0aW9uLXNwZWNpZmljIHRyaWVzLgorICAgICAqIENoYW5nZSB0byB2ZXJzaW9uIDIuMTogYWRkIHRoaXJkL2F1eGlsaWFyeSB0cmllIHdpdGggYXNzb2NpYXRlZCBkYXRhLgorICAgICAqCisgICAgICogRm9yIG1vcmUgZGV0YWlscyBvZiBob3cgdG8gdXNlIHRoZSBkYXRhIHN0cnVjdHVyZXMgc2VlIHRoZSBjb2RlCisgICAgICogaW4gdW5vcm0uY3BwIChydW50aW1lIG5vcm1hbGl6YXRpb24gY29kZSkgYW5kCisgICAgICogaW4gZ2Vubm9ybS5jIGFuZCBnZW5ub3JtL3N0b3JlLmMgKGJ1aWxkLXRpbWUgZGF0YSBnZW5lcmF0aW9uKS4KKyAgICAgKgorICAgICAqIEZvciB0aGUgc2VyaWFsaXplZCBmb3JtYXQgb2YgVHJpZSBzZWUgVHJpZS5jL1RyaWVIZWFkZXIuCisgICAgICoKKyAgICAgKiAtIE92ZXJhbGwgcGFydGl0aW9uCisgICAgICoKKyAgICAgKiB1bm9ybS5pY3UgY3VzdG9tYXJpbHkgYmVnaW5zIHdpdGggYSBVRGF0YUluZm8gc3RydWN0dXJlLCBzZWUgdWRhdGEuaCBhbmQgLmMuCisgICAgICogQWZ0ZXIgdGhhdCB0aGVyZSBhcmUgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmVzOgorICAgICAqCisgICAgICogY2hhciBpbmRleGVzW0lOREVYX1RPUF07ICAgICAgICAgICAgICAgICAgIC0tIElOREVYX1RPUD0zMiwgc2VlIGVudW0gaW4gdGhpcyBmaWxlCisgICAgICoKKyAgICAgKiBUcmllIG5vcm1UcmllOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNpemUgaW4gYnl0ZXM9aW5kZXhlc1tJTkRFWF9UUklFX1NJWkVdCisgICAgICogCisgICAgICogY2hhciBleHRyYURhdGFbZXh0cmFEYXRhVG9wXTsgICAgICAgICAgICAtLSBleHRyYURhdGFUb3A9aW5kZXhlc1tJTkRFWF9VQ0hBUl9DT1VOVF0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYURhdGFbMF0gY29udGFpbnMgdGhlIG51bWJlciBvZiB1bml0cyBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ19ORktDX0Nsb3N1cmUgKGZvcm1hdFZlcnNpb24+PTIuMSkKKyAgICAgKgorICAgICAqIGNoYXIgY29tYmluaW5nVGFibGVbY29tYmluaW5nVGFibGVUb3BdOyAgLS0gY29tYmluaW5nVGFibGVUb3A9aW5kZXhlc1tJTkRFWF9DT01CSU5FX0RBVEFfQ09VTlRdCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluaW5nVGFibGVUb3AgbWF5IGluY2x1ZGUgb25lIDE2LWJpdCBwYWRkaW5nIHVuaXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBtYWtlIHN1cmUgdGhhdCBmY2RUcmllIGlzIDMyLWJpdC1hbGlnbmVkCisgICAgICoKKyAgICAgKiBUcmllIGZjZFRyaWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNpemUgaW4gYnl0ZXM9aW5kZXhlc1tJTkRFWF9GQ0RfVFJJRV9TSVpFXQorICAgICAqCisgICAgICogVHJpZSBhdXhUcmllOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzaXplIGluIGJ5dGVzPWluZGV4ZXNbSU5ERVhfQVVYX1RSSUVfU0laRV0KKyAgICAgKgorICAgICAqIGNoYXIgY2Fub25TdGFydFNldHNbY2Fub25TdGFydFNldHNUb3BdICAgLS0gY2Fub25TdGFydFNldHNUb3A9aW5kZXhlc1tJTkRFWF9DQU5PTl9TRVRfQ09VTlRdCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZCBVU2V0cywgc2VlIHVzZXQuYworICAgICAqCisgICAgICoKKyAgICAgKiBUaGUgaW5kZXhlcyBhcnJheSBjb250YWlucyBsZW5ndGhzIGFuZCBzaXplcyBvZiB0aGUgZm9sbG93aW5nIGFycmF5cyBhbmQgc3RydWN0dXJlcworICAgICAqIGFzIHdlbGwgYXMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisgICAgICogIGluZGV4ZXNbSU5ERVhfQ09NQklORV9GV0RfQ09VTlRdPWNvbWJpbmVGd2RUb3AKKyAgICAgKiAgICAgIC0tIG9uZSBtb3JlIHRoYW4gdGhlIGhpZ2hlc3QgY29tYmluaW5nIGluZGV4IGNvbXB1dGVkIGZvciBmb3J3YXJkLW9ubHktY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9DT01CSU5FX0JPVEhfQ09VTlRdPWNvbWJpbmVCb3RoVG9wLWNvbWJpbmVGd2RUb3AKKyAgICAgKiAgICAgIC0tIG51bWJlciBvZiBjb21iaW5pbmcgaW5kZXhlcyBjb21wdXRlZCBmb3IgYm90aC13YXlzLWNvbWJpbmluZyBjaGFyYWN0ZXJzCisgICAgICogIGluZGV4ZXNbSU5ERVhfQ09NQklORV9CQUNLX0NPVU5UXT1jb21iaW5lQmFja1RvcC1jb21iaW5lQm90aFRvcAorICAgICAqICAgICAgLS0gbnVtYmVyIG9mIGNvbWJpbmluZyBpbmRleGVzIGNvbXB1dGVkIGZvciBiYWNrd2FyZC1vbmx5LWNvbWJpbmluZyBjaGFyYWN0ZXJzCisgICAgICoKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9NSU5fTkYqX05PX01BWUJFXSAod2hlcmUgKj17IEMsIEQsIEtDLCBLRCB9KQorICAgICAqICAgICAgLS0gZmlyc3QgY29kZSBwb2ludCB3aXRoIGEgcXVpY2sgY2hlY2sgTkYqIHZhbHVlIG9mIE5PL01BWUJFCisgICAgICoKKyAgICAgKgorICAgICAqIC0gVHJpZXMKKyAgICAgKgorICAgICAqIFRoZSBtYWluIHN0cnVjdHVyZXMgYXJlIHR3byBUcmllIHRhYmxlcyAoImNvbXBhY3QgYXJyYXlzIiksCisgICAgICogZWFjaCB3aXRoIG9uZSBpbmRleCBhcnJheSBhbmQgb25lIGRhdGEgYXJyYXkuCisgICAgICogU2VlIFRyaWUuaCBhbmQgVHJpZS5jLgorICAgICAqCisgICAgICoKKyAgICAgKiAtIFRyaWVzIGluIHVub3JtLmljdQorICAgICAqCisgICAgICogVGhlIGZpcnN0IHRyaWUgKG5vcm1UcmllIGFib3ZlKQorICAgICAqIHByb3ZpZGVzIGRhdGEgZm9yIHRoZSBORiogcXVpY2sgY2hlY2tzIGFuZCBub3JtYWxpemF0aW9uLgorICAgICAqIFRoZSBzZWNvbmQgdHJpZSAoZmNkVHJpZSBhYm92ZSkgcHJvdmlkZXMgZGF0YSBqdXN0IGZvciBGQ0QgY2hlY2tzLgorICAgICAqCisgICAgICoKKyAgICAgKiAtIG5vcm0zMiBkYXRhIHdvcmRzIGZyb20gdGhlIGZpcnN0IHRyaWUKKyAgICAgKgorICAgICAqIFRoZSBub3JtMzJUYWJsZSBjb250YWlucyBvbmUgMzItYml0IHdvcmQgIm5vcm0zMiIgcGVyIGNvZGUgcG9pbnQuCisgICAgICogSXQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBiaXQgZmllbGRzOgorICAgICAqIDMxLi4xNiAgIGV4dHJhIGRhdGEgaW5kZXgsIEVYVFJBX1NISUZUIGlzIHVzZWQgdG8gc2hpZnQgdGhpcyBmaWVsZCBkb3duCisgICAgICogICAgICAgICAgaWYgdGhpcyBpbmRleCBpcyA8RVhUUkFfSU5ERVhfVE9QIHRoZW4gaXQgaXMgYW4gaW5kZXggaW50bworICAgICAqICAgICAgICAgICAgICBleHRyYURhdGFbXSB3aGVyZSB2YXJpYWJsZS1sZW5ndGggbm9ybWFsaXphdGlvbiBkYXRhIGZvciB0aGlzCisgICAgICogICAgICAgICAgICAgIGNvZGUgcG9pbnQgaXMgZm91bmQKKyAgICAgKiAgICAgICAgICBpZiB0aGlzIGluZGV4IGlzIDxFWFRSQV9JTkRFWF9UT1ArRVhUUkFfU1VSUk9HQVRFX1RPUAorICAgICAqICAgICAgICAgICAgICB0aGVuIHRoaXMgaXMgYSBub3JtMzIgZm9yIGEgbGVhZGluZyBzdXJyb2dhdGUsIGFuZCB0aGUgaW5kZXgKKyAgICAgKiAgICAgICAgICAgICAgdmFsdWUgaXMgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBmb2xsb3dpbmcgdHJhaWxpbmcgc3Vycm9nYXRlCisgICAgICogICAgICAgICAgICAgIGNvZGUgdW5pdCBpbiB0aGUgc2Vjb25kIHRyaWUgYWNjZXNzCisgICAgICogICAgICAgICAgaWYgdGhpcyBpbmRleCBpcyA+PUVYVFJBX0lOREVYX1RPUCtFWFRSQV9TVVJST0dBVEVfVE9QCisgICAgICogICAgICAgICAgICAgIHRoZW4gdGhpcyBpcyBhIG5vcm0zMiBmb3IgYSAic3BlY2lhbCIgY2hhcmFjdGVyLAorICAgICAqICAgICAgICAgICAgICBpLmUuLCB0aGUgY2hhcmFjdGVyIGlzIGEgSGFuZ3VsIHN5bGxhYmxlIG9yIGEgSmFtbworICAgICAqICAgICAgICAgICAgICBzZWUgRVhUUkFfSEFOR1VMIGV0Yy4KKyAgICAgKiAgICAgICAgICBnZW5lcmFsbHksIGluc3RlYWQgb2YgZXh0cmFjdGluZyB0aGlzIGluZGV4IGZyb20gdGhlIG5vcm0zMiBhbmQKKyAgICAgKiAgICAgICAgICAgICAgY29tcGFyaW5nIGl0IHdpdGggdGhlIGFib3ZlIGNvbnN0YW50cywKKyAgICAgKiAgICAgICAgICAgICAgdGhlIG5vcm1hbGl6YXRpb24gY29kZSBjb21wYXJlcyB0aGUgZW50aXJlIG5vcm0zMiB2YWx1ZQorICAgICAqICAgICAgICAgICAgICB3aXRoIE1JTl9TUEVDSUFMLCBTVVJST0dBVEVTX1RPUCwgTUlOX0hBTkdVTCBldGMuCisgICAgICoKKyAgICAgKiAxNS4uOCAgICBjb21iaW5pbmcgY2xhc3MgKGNjKSBhY2NvcmRpbmcgdG8gVW5pY29kZURhdGEudHh0CisgICAgICoKKyAgICAgKiAgNy4uNiAgICBDT01CSU5FU19BTlkgZmxhZ3MsIHVzZWQgaW4gY29tcG9zaXRpb24gdG8gc2VlIGlmIGEgY2hhcmFjdGVyCisgICAgICogICAgICAgICAgICAgIGNvbWJpbmVzIHdpdGggYW55IGZvbGxvd2luZyBvciBwcmVjZWRpbmcgY2hhcmFjdGVyKHMpCisgICAgICogICAgICAgICAgICAgIGF0IGFsbAorICAgICAqICAgICA3ICAgIENPTUJJTkVTX0JBQ0sKKyAgICAgKiAgICAgNiAgICBDT01CSU5FU19GV0QKKyAgICAgKgorICAgICAqICA1Li4wICAgIHF1aWNrIGNoZWNrIGZsYWdzLCBzZXQgZm9yICJubyIgb3IgIm1heWJlIiwgd2l0aCBzZXBhcmF0ZSBmbGFncyBmb3IKKyAgICAgKiAgICAgICAgICAgICAgZWFjaCBub3JtYWxpemF0aW9uIGZvcm0KKyAgICAgKiAgICAgICAgICAgICAgdGhlIGhpZ2hlciBiaXRzIGFyZSAibWF5YmUiIGZsYWdzOyBmb3IgTkYqRCB0aGVyZSBhcmUgbm8gc3VjaCBmbGFncworICAgICAqICAgICAgICAgICAgICB0aGUgbG93ZXIgYml0cyBhcmUgIm5vIiBmbGFncyBmb3IgYWxsIGZvcm1zLCBpbiB0aGUgc2FtZSBvcmRlcgorICAgICAqICAgICAgICAgICAgICBhcyB0aGUgIm1heWJlIiBmbGFncywKKyAgICAgKiAgICAgICAgICAgICAgd2hpY2ggaXMgKE1TQiB0byBMU0IpOiBORktEIE5GRCBORktDIE5GQworICAgICAqICA1Li40ICAgIFFDX0FOWV9NQVlCRQorICAgICAqICAzLi4wICAgIFFDX0FOWV9OTworICAgICAqICAgICAgICAgICAgICBzZWUgZnVydGhlciByZWxhdGVkIGNvbnN0YW50cworICAgICAqCisgICAgICoKKyAgICAgKiAtIEV4dHJhIGRhdGEgcGVyIGNvZGUgcG9pbnQKKyAgICAgKgorICAgICAqICJFeHRyYSBkYXRhIiBpcyByZWZlcmVuY2VkIGJ5IHRoZSBpbmRleCBpbiBub3JtMzIuCisgICAgICogSXQgaXMgdmFyaWFibGUtbGVuZ3RoIGRhdGEuIEl0IGlzIG9ubHkgcHJlc2VudCwgYW5kIG9ubHkgdGhvc2UgcGFydHMKKyAgICAgKiBvZiBpdCBhcmUsIGFzIG5lZWRlZCBmb3IgYSBnaXZlbiBjaGFyYWN0ZXIuCisgICAgICogVGhlIG5vcm0zMiBleHRyYSBkYXRhIGluZGV4IGlzIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgZXh0cmFEYXRhW10KKyAgICAgKiB0byBnZXQgdG8gYSB2ZWN0b3Igb2YgMTYtYml0IHdvcmRzIHdpdGggZGF0YSBhdCB0aGUgZm9sbG93aW5nIG9mZnNldHM6CisgICAgICoKKyAgICAgKiBbLTFdICAgICBDb21iaW5pbmcgaW5kZXggZm9yIGNvbXBvc2l0aW9uLgorICAgICAqICAgICAgICAgICAgICBTdG9yZWQgb25seSBpZiBub3JtMzImQ09NQklORVNfQU5ZIC4KKyAgICAgKiBbMF0gICAgICBMZW5ndGhzIG9mIHRoZSBjYW5vbmljYWwgYW5kIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBzdHJpbmdzLgorICAgICAqICAgICAgICAgICAgICBTdG9yZWQgb25seSBpZiB0aGVyZSBhcmUgZGVjb21wb3NpdGlvbnMsIGkuZS4sCisgICAgICogICAgICAgICAgICAgIGlmIG5vcm0zMiYoUUNfTkZEfFFDX05GS0QpCisgICAgICogICAgICAgICAgSGlnaCBieXRlOiBsZW5ndGggb2YgTkZLRCwgb3IgMCBpZiBub25lCisgICAgICogICAgICAgICAgTG93IGJ5dGU6IGxlbmd0aCBvZiBORkQsIG9yIDAgaWYgbm9uZQorICAgICAqICAgICAgICAgIEVhY2ggbGVuZ3RoIGJ5dGUgYWxzbyBoYXMgYW5vdGhlciBmbGFnOgorICAgICAqICAgICAgICAgICAgICBCaXQgNyBvZiBhIGxlbmd0aCBieXRlIGlzIHNldCBpZiB0aGVyZSBhcmUgbm9uLXplcm8KKyAgICAgKiAgICAgICAgICAgICAgY29tYmluaW5nIGNsYXNzZXMgKGNjJ3MpIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzcGVjdGl2ZQorICAgICAqICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9uLiBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGVuIHRoZSBkZWNvbXBvc2l0aW9uCisgICAgICogICAgICAgICAgICAgIGlzIHByZWNlZGVkIGJ5IGEgMTYtYml0IHdvcmQgdGhhdCBjb250YWlucyB0aGUKKyAgICAgKiAgICAgICAgICAgICAgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2Mncy4KKyAgICAgKiAgICAgICAgICAgICAgQml0cyA2Li4wIG9mIGEgbGVuZ3RoIGJ5dGUgYXJlIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICogICAgICAgICAgICAgIGRlY29tcG9zaXRpb24gc3RyaW5nLCBub3QgY291bnRpbmcgdGhlIGNjIHdvcmQuCisgICAgICogWzEuLm5dICAgTkZECisgICAgICogW24rMS4uXSAgTkZLRAorICAgICAqCisgICAgICogRWFjaCBvZiB0aGUgdHdvIGRlY29tcG9zaXRpb25zIGNvbnNpc3RzIG9mIHVwIHRvIHR3byBwYXJ0czoKKyAgICAgKiAtIFRoZSAxNi1iaXQgd29yZHMgd2l0aCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2Mncy4KKyAgICAgKiAgIFRoaXMgaXMgb25seSBzdG9yZWQgaWYgYml0IDcgb2YgdGhlIGNvcnJlc3BvbmRpbmcgbGVuZ3RoIGJ5dGUKKyAgICAgKiAgIGlzIHNldC4gSW4gdGhpcyBjYXNlLCBhdCBsZWFzdCBvbmUgb2YgdGhlIGNjJ3MgaXMgbm90IHplcm8uCisgICAgICogICBIaWdoIGJ5dGU6IGxlYWRpbmcgY2M9PWNjIG9mIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIHRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZworICAgICAqICAgTG93IGJ5dGU6IHRyYWlsaW5nIGNjPT1jYyBvZiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIHRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZworICAgICAqIC0gVGhlIGRlY29tcG9zaXRpb24gc3RyaW5nIGluIFVURi0xNiwgd2l0aCBsZW5ndGggY29kZSB1bml0cy4KKyAgICAgKgorICAgICAqCisgICAgICogLSBDb21iaW5pbmcgaW5kZXhlcyBhbmQgY29tYmluaW5nVGFibGVbXQorICAgICAqCisgICAgICogQ29tYmluaW5nIGluZGV4ZXMgYXJlIHN0b3JlZCBhdCB0aGUgWy0xXSBvZmZzZXQgb2YgdGhlIGV4dHJhIGRhdGEKKyAgICAgKiBpZiB0aGUgY2hhcmFjdGVyIGNvbWJpbmVzIGZvcndhcmQgb3IgYmFja3dhcmQgd2l0aCBhbnkgb3RoZXIgY2hhcmFjdGVycy4KKyAgICAgKiBUaGV5IGFyZSB1c2VkIGZvciAocmUpY29tcG9zaXRpb24gaW4gTkYqQy4KKyAgICAgKiBWYWx1ZXMgb2YgY29tYmluaW5nIGluZGV4ZXMgYXJlIGFycmFuZ2VkIGFjY29yZGluZyB0byB3aGV0aGVyIGEgY2hhcmFjdGVyCisgICAgICogY29tYmluZXMgZm9yd2FyZCwgYmFja3dhcmQsIG9yIGJvdGggd2F5czoKKyAgICAgKiAgICBmb3J3YXJkLW9ubHkgPCBib3RoIHdheXMgPCBiYWNrd2FyZC1vbmx5CisgICAgICoKKyAgICAgKiBUaGUgaW5kZXggdmFsdWVzIGZvciBmb3J3YXJkLW9ubHkgYW5kIGJvdGgtd2F5cyBjb21iaW5pbmcgY2hhcmFjdGVycworICAgICAqIGFyZSBpbmRleGVzIGludG8gdGhlIGNvbWJpbmluZ1RhYmxlW10uCisgICAgICogVGhlIGluZGV4IHZhbHVlcyBmb3IgYmFja3dhcmQtb25seSBjb21iaW5pbmcgY2hhcmFjdGVycyBhcmUgc2ltcGx5CisgICAgICogaW5jcmVtZW50ZWQgZnJvbSB0aGUgcHJlY2VkaW5nIGluZGV4IHZhbHVlcyB0byBiZSB1bmlxdWUuCisgICAgICoKKyAgICAgKiBJbiB0aGUgY29tYmluaW5nVGFibGVbXSwgYSB2YXJpYWJsZS1sZW5ndGggbGlzdAorICAgICAqIG9mIHZhcmlhYmxlLWxlbmd0aCAoYmFjay1pbmRleCwgY29kZSBwb2ludCkgcGFpciBlbnRyaWVzIGlzIHN0b3JlZAorICAgICAqIGZvciBlYWNoIGZvcndhcmQtY29tYmluaW5nIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFRoZXNlIGJhY2staW5kZXhlcyBhcmUgdGhlIGNvbWJpbmluZyBpbmRleGVzIG9mIGJvdGgtd2F5cyBvciBiYWNrd2FyZC1vbmx5CisgICAgICogY29tYmluaW5nIGNoYXJhY3RlcnMgdGhhdCB0aGUgZm9yd2FyZC1jb21iaW5pbmcgY2hhcmFjdGVyIGNvbWJpbmVzIHdpdGguCisgICAgICoKKyAgICAgKiBFYWNoIGxpc3QgaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBvZiBiYWNrLWluZGV4ZXMuCisgICAgICogRWFjaCBsaXN0IGlzIHRlcm1pbmF0ZWQgd2l0aCB0aGUgbGFzdCBiYWNrLWluZGV4IGhhdmluZyBiaXQgMTUgc2V0LgorICAgICAqCisgICAgICogRWFjaCBwYWlyIChiYWNrLWluZGV4LCBjb2RlIHBvaW50KSB0YWtlcyB1cCBlaXRoZXIgMiBvciAzCisgICAgICogMTYtYml0IHdvcmRzLgorICAgICAqIFRoZSBmaXJzdCB3b3JkIG9mIGEgbGlzdCBlbnRyeSBpcyB0aGUgYmFjay1pbmRleCwgd2l0aCBpdHMgYml0IDE1IHNldCBpZgorICAgICAqIHRoaXMgaXMgdGhlIGxhc3QgcGFpciBpbiB0aGUgbGlzdC4KKyAgICAgKgorICAgICAqIFRoZSBzZWNvbmQgd29yZCBjb250YWlucyBmbGFncyBpbiBiaXRzIDE1Li4xMyB0aGF0IGRldGVybWluZQorICAgICAqIGlmIHRoZXJlIGlzIGEgdGhpcmQgd29yZCBhbmQgaG93IHRoZSBjb21iaW5lZCBjaGFyYWN0ZXIgaXMgZW5jb2RlZDoKKyAgICAgKiAxNSAgIHNldCBpZiB0aGVyZSBpcyBhIHRoaXJkIHdvcmQgaW4gdGhpcyBsaXN0IGVudHJ5CisgICAgICogMTQgICBzZXQgaWYgdGhlIHJlc3VsdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICogMTMgICBzZXQgaWYgdGhlIHJlc3VsdCBpdHNlbGYgY29tYmluZXMgZm9yd2FyZAorICAgICAqCisgICAgICogQWNjb3JkaW5nIHRvIHRoZXNlIGJpdHMgMTUuLjE0IG9mIHRoZSBzZWNvbmQgd29yZCwKKyAgICAgKiB0aGUgcmVzdWx0IGNoYXJhY3RlciBpcyBlbmNvZGVkIGFzIGZvbGxvd3M6CisgICAgICogMDAgb3IgMDEgVGhlIHJlc3VsdCBpcyA8PTB4MWZmZiBhbmQgc3RvcmVkIGluIGJpdHMgMTIuLjAgb2YKKyAgICAgKiAgICAgICAgICB0aGUgc2Vjb25kIHdvcmQuCisgICAgICogMTAgICAgICAgVGhlIHJlc3VsdCBpcyAweDIwMDAuLjB4ZmZmZiBhbmQgc3RvcmVkIGluIHRoZSB0aGlyZCB3b3JkLgorICAgICAqICAgICAgICAgIEJpdHMgMTIuLjAgb2YgdGhlIHNlY29uZCB3b3JkIGFyZSBub3QgdXNlZC4KKyAgICAgKiAxMSAgICAgICBUaGUgcmVzdWx0IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICogICAgICAgICAgQml0cyA5Li4wIG9mIHRoZSBsZWFkaW5nIHN1cnJvZ2F0ZSBhcmUgaW4gYml0cyA5Li4wIG9mCisgICAgICogICAgICAgICAgdGhlIHNlY29uZCB3b3JkLgorICAgICAqICAgICAgICAgIEFkZCAweGQ4MDAgdG8gdGhlc2UgYml0cyB0byBnZXQgdGhlIGNvbXBsZXRlIHN1cnJvZ2F0ZS4KKyAgICAgKiAgICAgICAgICBCaXRzIDEyLi4xMCBvZiB0aGUgc2Vjb25kIHdvcmQgYXJlIG5vdCB1c2VkLgorICAgICAqICAgICAgICAgIFRoZSB0cmFpbGluZyBzdXJyb2dhdGUgaXMgc3RvcmVkIGluIHRoZSB0aGlyZCB3b3JkLgorICAgICAqCisgICAgICoKKyAgICAgKiAtIEZDRCB0cmllCisgICAgICoKKyAgICAgKiBUaGUgRkNEIHRyaWUgaXMgdmVyeSBzaW1wbGUuCisgICAgICogSXQgaXMgYSBmb2xkZWQgdHJpZSB3aXRoIDE2LWJpdCBkYXRhIHdvcmRzLgorICAgICAqIEluIGVhY2ggd29yZCwgdGhlIGhpZ2ggYnl0ZSBjb250YWlucyB0aGUgbGVhZGluZyBjYyBvZiB0aGUgY2hhcmFjdGVyLAorICAgICAqIGFuZCB0aGUgbG93IGJ5dGUgY29udGFpbnMgdGhlIHRyYWlsaW5nIGNjIG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogVGhlc2UgY2MncyBhcmUgdGhlIGNjJ3Mgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IGNvZGUgcG9pbnRzIGluIHRoZQorICAgICAqIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBTaW5jZSBhbGwgMTYgYml0cyBhcmUgdXNlZCBmb3IgY2MncywgbGVhZCBzdXJyb2dhdGVzIG11c3QgYmUgdGVzdGVkCisgICAgICogYnkgY2hlY2tpbmcgdGhlIGNvZGUgdW5pdCBpbnN0ZWFkIG9mIHRoZSB0cmllIGRhdGEuCisgICAgICogVGhpcyBpcyBkb25lIG9ubHkgaWYgdGhlIDE2LWJpdCBkYXRhIHdvcmQgaXMgbm90IHplcm8uCisgICAgICogSWYgdGhlIGNvZGUgdW5pdCBpcyBhIGxlYWRpbmcgc3Vycm9nYXRlIGFuZCB0aGUgZGF0YSB3b3JkIGlzIG5vdCB6ZXJvLAorICAgICAqIHRoZW4gaW5zdGVhZCBvZiBjYydzIGl0IGNvbnRhaW5zIHRoZSBvZmZzZXQgZm9yIHRoZSBzZWNvbmQgdHJpZSBsb29rdXAuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gQXV4aWxpYXJ5IHRyaWUgYW5kIGRhdGEKKyAgICAgKgorICAgICAqCisgICAgICogVGhlIGF1eGlsaWFyeSAxNi1iaXQgdHJpZSBjb250YWlucyBkYXRhIGZvciBhZGRpdGlvbmFsIHByb3BlcnRpZXMuCisgICAgICogQml0cworICAgICAqIDE1Li4xMyAgIHJlc2VydmVkCisgICAgICogICAgIDEyICAgbm90IE5GQ19Ta2lwcGFibGUgKGYpIChmb3JtYXRWZXJzaW9uPj0yLjIpCisgICAgICogICAgIDExICAgZmxhZzogbm90IGEgc2FmZSBzdGFydGVyIGZvciBjYW5vbmljYWwgY2xvc3VyZQorICAgICAqICAgICAxMCAgIGNvbXBvc2l0aW9uIGV4Y2x1c2lvbgorICAgICAqICA5Li4gMCAgIGluZGV4IGludG8gZXh0cmFEYXRhW10gdG8gRkNfTkZLQ19DbG9zdXJlIHN0cmluZworICAgICAqICAgICAgICAgIChub3QgZm9yIGxlYWQgc3Vycm9nYXRlKSwKKyAgICAgKiAgICAgICAgICBvciBsZWFkIHN1cnJvZ2F0ZSBvZmZzZXQgKGZvciBsZWFkIHN1cnJvZ2F0ZSwgaWYgOS4uMCBub3QgemVybykKKyAgICAgKiAKKyAgICAgKiBDb25kaXRpb25zIGZvciAiTkYqIFNraXBwYWJsZSIgZnJvbSBNYXJrIERhdmlzJyBjb20uaWJtLnRleHQuVUNELk5GU2tpcHBhYmxlOgorICAgICAqICh1c2VkIGluIE5vcm1hbGl6ZXJUcmFuc2xpdGVyYXRvcikKKyAgICAgKgorICAgICAqIEEgc2tpcHBhYmxlIGNoYXJhY3RlciBpcworICAgICAqIGEpIHVuYXNzaWduZWQsIG9yIEFMTCBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqIGIpIG9mIGNvbWJpbmluZyBjbGFzcyAwLgorICAgICAqIGMpIG5vdCBkZWNvbXBvc2VkIGJ5IHRoaXMgbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIEFORCBpZiBORkMgb3IgTkZLQywKKyAgICAgKiBkKSBjYW4gbmV2ZXIgY29tcG9zZSB3aXRoIGEgcHJldmlvdXMgY2hhcmFjdGVyLgorICAgICAqIGUpIGNhbiBuZXZlciBjb21wb3NlIHdpdGggYSBmb2xsb3dpbmcgY2hhcmFjdGVyLgorICAgICAqIGYpIGNhbiBuZXZlciBjaGFuZ2UgaWYgYW5vdGhlciBjaGFyYWN0ZXIgaXMgYWRkZWQuCisgICAgICogICAgRXhhbXBsZTogYS1icmV2ZSBtaWdodCBzYXRpc2Z5IGFsbCBidXQgZiwgYnV0IGlmIHlvdQorICAgICAqICAgIGFkZCBhbiBvZ29uZWsgaXQgY2hhbmdlcyB0byBhLW9nb25layArIGJyZXZlCisgICAgICoKKyAgICAgKiBhKS4uZSkgbXVzdCBiZSB0ZXN0ZWQgZnJvbSBub3JtMzIuCisgICAgICogU2luY2UgZikgaXMgbW9yZSBjb21wbGljYXRlZCwgdGhlIChub3QtKU5GQ19Ta2lwcGFibGUgZmxhZyAoZikgaXMgYnVpbHQKKyAgICAgKiBpbnRvIHRoZSBhdXhpbGlhcnkgdHJpZS4KKyAgICAgKiBUaGUgc2FtZSBiaXQgaXMgdXNlZCBmb3IgTkZDIGFuZCBORktDOyAoYykgZGlmZmVycyBmb3IgdGhlbS4KKyAgICAgKiBBcyB1c3VhbCwgd2UgYnVpbGQgdGhlICJub3Qgc2tpcHBhYmxlIiBmbGFncyBzbyB0aGF0IHVuYXNzaWduZWQKKyAgICAgKiBjb2RlIHBvaW50cyBnZXQgYSAwIGJpdC4KKyAgICAgKiBUaGlzIGJpdCBpcyBvbmx5IHZhbGlkIGFmdGVyIChhKS4uKGUpIHRlc3QgRkFMU0U7IHRlc3QgTkZEX05PIGJlZm9yZSAoZikgYXMgd2VsbC4KKyAgICAgKiBUZXN0IEhhbmd1bCBMViBzeWxsYWJsZXMgZW50aXJlbHkgaW4gY29kZS4KKyAgICAgKiAgIAorICAgICAqIAorICAgICAqIC0gRkNfTkZLQ19DbG9zdXJlIHN0cmluZ3MgaW4gZXh0cmFEYXRhW10KKyAgICAgKgorICAgICAqIFN0cmluZ3MgYXJlIGVpdGhlciBzdG9yZWQgYXMgYSBzaW5nbGUgY29kZSB1bml0IG9yIGFzIHRoZSBsZW5ndGgKKyAgICAgKiBmb2xsb3dlZCBieSB0aGF0IG1hbnkgdW5pdHMuCisgICAgICogCisgICAgICogLSBzdHJ1Y3R1cmUgaW5zaWRlIGNhbm9uU3RhcnRTZXRzW10KKyAgICAgKgorICAgICAqIFRoaXMgYXJyYXkgbWFwcyBmcm9tIGNvZGUgcG9pbnRzIGMgdG8gc2V0cyBvZiBjb2RlIHBvaW50cyAoVVNlcmlhbGl6ZWRTZXQpLgorICAgICAqIFRoZSByZXN1bHQgc2V0cyBhcmUgdGhlIGNvZGUgcG9pbnRzIHdob3NlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9ucyBzdGFydAorICAgICAqIHdpdGggYy4KKyAgICAgKgorICAgICAqIGNhbm9uU3RhcnRTZXRzW10gY29udGFpbnMgdGhlIGZvbGxvd2luZyBzdWItYXJyYXlzOgorICAgICAqCisgICAgICogaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfVE9QXQorICAgICAqICAgLSBjb250YWlucyBsZW5ndGhzIG9mIHN1Yi1hcnJheXMgZXRjLgorICAgICAqCisgICAgICogc3RhcnRTZXRzW2luZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX1NFVFNfTEVOR1RIXS1fTk9STV9TRVRfSU5ERVhfVE9QXQorICAgICAqICAgLSBjb250YWlucyBzZXJpYWxpemVkIHNldHMgKFVTZXJpYWxpemVkU2V0KSBvZiBjYW5vbmljYWwgc3RhcnRlcnMgZm9yCisgICAgICogICAgIGVudW1lcmF0aW5nIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgc3RyaW5ncworICAgICAqICAgICBpbmRleGVzW19OT1JNX1NFVF9JTkRFWF9DQU5PTl9TRVRTX0xFTkdUSF0gaW5jbHVkZXMgX05PUk1fU0VUX0lOREVYX1RPUAorICAgICAqICAgICBmb3IgZGV0YWlscyBhYm91dCB0aGUgc3RydWN0dXJlIHNlZSB1c2V0LmMKKyAgICAgKgorICAgICAqIGJtcFRhYmxlW2luZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX0JNUF9UQUJMRV9MRU5HVEhdXQorICAgICAqICAgLSBhIHNvcnRlZCBzZWFyY2ggdGFibGUgZm9yIEJNUCBjb2RlIHBvaW50cyB3aG9zZSByZXN1bHRzIGFyZQorICAgICAqICAgICBlaXRoZXIgaW5kZXhlcyB0byBVU2VyaWFsaXplZFNldHMgb3Igc2luZ2xlIGNvZGUgcG9pbnRzIGZvcgorICAgICAqICAgICBzaW5nbGUtY29kZSBwb2ludCBzZXRzOworICAgICAqICAgICBlYWNoIGVudHJ5IGlzIGEgcGFpciBvZiB7IGNvZGUgcG9pbnQsIHJlc3VsdCB9IHdpdGggcmVzdWx0PShiaW5hcnkpIHl5IHh4eHh4eCB4eHh4eHh4eAorICAgICAqICAgICBpZiB5eT09MDEgdGhlbiB0aGVyZSBpcyBhIFVTZXJpYWxpemVkU2V0IGF0IGNhbm9uU3RhcnRTZXRzK3gKKyAgICAgKiAgICAgZWxzZSBidWlsZCBhIFVTZXJpYWxpemVkU2V0IHdpdGggcmVzdWx0IGFzIHRoZSBzaW5nbGUgY29kZSBwb2ludAorICAgICAqCisgICAgICogc3VwcFRhYmxlW2luZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX1NVUFBfVEFCTEVfTEVOR1RIXV0KKyAgICAgKiAgIC0gYSBzb3J0ZWQgc2VhcmNoIHRhYmxlIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzIHdob3NlIHJlc3VsdHMgYXJlCisgICAgICogICAgIGVpdGhlciBpbmRleGVzIHRvIFVTZXJpYWxpemVkU2V0cyBvciBzaW5nbGUgY29kZSBwb2ludHMgZm9yCisgICAgICogICAgIHNpbmdsZS1jb2RlIHBvaW50IHNldHM7CisgICAgICogICAgIGVhY2ggZW50cnkgaXMgYSB0cmlwbGV0IG9mIHsgaGlnaDE2KGNwKSwgbG93MTYoY3ApLCByZXN1bHQgfQorICAgICAqICAgICBlYWNoIGNvZGUgcG9pbnQncyBoaWdoLXdvcmQgbWF5IGNvbnRhaW4gZXh0cmEgZGF0YSBpbiBiaXRzIDE1Li41OgorICAgICAqICAgICBpZiB0aGUgaGlnaCB3b3JkIGhhcyBiaXQgMTUgc2V0LCB0aGVuIGJ1aWxkIGEgc2V0IHdpdGggYSBzaW5nbGUgY29kZSBwb2ludAorICAgICAqICAgICB3aGljaCBpcyAoKChoaWdoMTYoY3ApJjB4MWYwMCk8PDgpfHJlc3VsdDsKKyAgICAgKiAgICAgZWxzZSB0aGVyZSBpcyBhIFVTZXJpYWxpemVkU2V0IGF0IGNhbm9uU3RhcnRTZXRzK3Jlc3VsdAorICAgICAqLworZmluYWwgY2xhc3MgTm9ybWFsaXplckRhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGRlYnVnID0gSUNVRGVidWcuZW5hYmxlZCgiTm9ybWFsaXplckRhdGFSZWFkZXIiKTsKKyAgICAKKyAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgdXByb3AuZGF0IGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBOb3JtYWxpemVyRGF0YVJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBpbiBpbnB1dFN0cmVhbSAiICsgaW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgdW5pY29kZVZlcnNpb24gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSUQsIHRoaXMpOworICAgICAgICAKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgbGVmdCBpbiBpbnB1dFN0cmVhbSAiICtpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICBkYXRhSW5wdXRTdHJlYW0gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgCisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gZGF0YUlucHV0U3RyZWFtICIgK2RhdGFJbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgaW50W10gcmVhZEluZGV4ZXMoaW50IGxlbmd0aCl0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGludFtdIGluZGV4ZXMgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIC8vUmVhZCB0aGUgaW5kZXhlcworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8bGVuZ3RoIDsgaSsrKSB7CisgICAgICAgICAgICAgaW5kZXhlc1tpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4ZXM7CisgICAgfSAKKyAgICAvKioKKyAgICAqIDxwPlJlYWRzIHVub3JtLmljdSwgcGFyc2UgaXQgaW50byBibG9ja3Mgb2YgZGF0YSB0byBiZSBzdG9yZWQgaW4KKyAgICAqIE5vcm1hbGl6ZXJJbXBsLjwvUAorICAgICogQHBhcmFtIG5vcm1CeXRlcworICAgICogQHBhcmFtIGZjZEJ5dGVzCisgICAgKiBAcGFyYW0gYXV4Qnl0ZXMKKyAgICAqIEBwYXJhbSBleHRyYURhdGEKKyAgICAqIEBwYXJhbSBjb21iaW5pbmdUYWJsZQorICAgICogQHBhcmFtIGNhbm9uU3RhcnRTZXRzCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVhZChieXRlW10gbm9ybUJ5dGVzLCBieXRlW10gZmNkQnl0ZXMsIGJ5dGVbXSBhdXhCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBleHRyYURhdGEsIGNoYXJbXSBjb21iaW5pbmdUYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBjYW5vblN0YXJ0U2V0cykgCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisKKyAgICAgICAgIC8vUmVhZCB0aGUgYnl0ZXMgdGhhdCBtYWtlIHVwIHRoZSBub3JtVHJpZSAgICAgCisgICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChub3JtQnl0ZXMpOworICAgICAgICAKKyAgICAgICAgIC8vbm9ybVRyaWVTdHJlYW09IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShub3JtQnl0ZXMpOworCisgICAgICAgICAvL1JlYWQgdGhlIGV4dHJhIGRhdGEKKyAgICAgICAgIGZvcihpbnQgaT0wO2k8ZXh0cmFEYXRhLmxlbmd0aDtpKyspeworICAgICAgICAgICAgIGV4dHJhRGF0YVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy9SZWFkIHRoZSBjb21iaW5pbmcgY2xhc3MgdGFibGUKKyAgICAgICAgIGZvcihpbnQgaT0wOyBpPGNvbWJpbmluZ1RhYmxlLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICBjb21iaW5pbmdUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy9SZWFkIHRoZSBmY2RUcmllCisgICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChmY2RCeXRlcyk7CisgICAgICAgICAKKyAgICAgICAgIAorICAgICAgICAgLy9SZWFkIHRoZSBBdXhUcmllICAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGF1eEJ5dGVzKTsKKyAgICAgICAgCisgICAgICAgIC8vUmVhZCB0aGUgY2Fub25pY2FsIHN0YXJ0IHNldHMKKyAgICAgICAgaW50W10gY2Fub25TdGFydFNldHNJbmRleGVzID0gbmV3IGludFtOb3JtYWxpemVySW1wbC5TRVRfSU5ERVhfVE9QXTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPGNhbm9uU3RhcnRTZXRzSW5kZXhlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgY2Fub25TdGFydFNldHNJbmRleGVzW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2hhcltdIHN0YXJ0U2V0cyA9IG5ldyBjaGFyW2Nhbm9uU3RhcnRTZXRzSW5kZXhlc1tOb3JtYWxpemVySW1wbC5TRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEhdLU5vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9UT1BdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3RhcnRTZXRzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICBzdGFydFNldHNbaV09ZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICB9CisgICAgICAgICBjaGFyW10gYm1wVGFibGUgID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9CTVBfVEFCTEVfTEVOR1RIXV07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGJtcFRhYmxlLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICBibXBUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0gICAgICAgIAorICAgICAgICBjaGFyW10gc3VwcFRhYmxlID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9TVVBQX1RBQkxFX0xFTkdUSF1dOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzdXBwVGFibGUubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIHN1cHBUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWCAgXSA9IGNhbm9uU3RhcnRTZXRzSW5kZXhlczsKKyAgICAgICAgIGNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9TVEFSVF9TRVRTX0lOREVYXSA9IHN0YXJ0U2V0czsKKyAgICAgICAgIGNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9CTVBfVEFCTEVfSU5ERVggICAgXSA9IGJtcFRhYmxlOworICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVhdID0gc3VwcFRhYmxlOyAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYnl0ZVtdIGdldERhdGFGb3JtYXRWZXJzaW9uKCl7CisgICAgICAgIHJldHVybiBEQVRBX0ZPUk1BVF9WRVJTSU9OOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMF0gCisgICAgICAgICAgICAgICAmJiB2ZXJzaW9uWzJdID09IERBVEFfRk9STUFUX1ZFUlNJT05bMl0gCisgICAgICAgICAgICAgICAmJiB2ZXJzaW9uWzNdID09IERBVEFfRk9STUFUX1ZFUlNJT05bM107CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOyAgICAKKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisKKyAgICAvKioKKyAgICAqIElDVSBkYXRhIGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBkYXRhSW5wdXRTdHJlYW07CisgICAgCisgICAgcHJpdmF0ZSBieXRlW10gdW5pY29kZVZlcnNpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICogc2VlIHN0b3JlLmMgb2YgZ2Vubm9ybSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdmFsdWVzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg0RSwgKGJ5dGUpMHg2RiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg3MiwgKGJ5dGUpMHg2RH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7KGJ5dGUpMHgyLCAoYnl0ZSkweDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDUsIChieXRlKTB4Mn07CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzkxOWFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckltcGwuamF2YQpAQCAtMCwwICsxLDM3NzYgQEAKKyAvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7ICAgIAoraW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBAdmVyc2lvbiAgICAgMS4wCisgKiBAYXV0aG9yICBSYW0gVmlzd2FuYWRoYQorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTm9ybWFsaXplckltcGwgeworICAgIC8vIFN0YXRpYyBibG9jayBmb3IgdGhlIGNsYXNzIHRvIGluaXRpYWxpemUgaXRzIG93biBzZWxmIAorICAgIHN0YXRpYyBmaW5hbCBOb3JtYWxpemVySW1wbCBJTVBMOworICAgIAorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIElNUEwgPSBuZXcgTm9ybWFsaXplckltcGwoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksICIiLCAiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9CWVRFX01BU0sgPTB4RkY7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgVU5TSUdORURfSU5UX01BU0sgPSAweGZmZmZmZmZmTDsKKyAgICAvKgorICAgICAqIFRoaXMgbmV3IGltcGxlbWVudGF0aW9uIG9mIHRoZSBub3JtYWxpemF0aW9uIGNvZGUgbG9hZHMgaXRzIGRhdGEgZnJvbQorICAgICAqIHVub3JtLmljdSwgd2hpY2ggaXMgZ2VuZXJhdGVkIHdpdGggdGhlIGdlbm5vcm0gdG9vbC4KKyAgICAgKiBUaGUgZm9ybWF0IG9mIHRoYXQgZmlsZSBpcyBkZXNjcmliZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGZpbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3Vub3JtLmljdSI7CisgICAgCisgICAgLy8gbm9ybTMyIHZhbHVlIGNvbnN0YW50cyAKKyAgICAKKyAgICAvLyBxdWljayBjaGVjayBmbGFncyAwLi4zIHNldCBtZWFuICJubyIgZm9yIHRoZWlyIGZvcm1zIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GQz0weDExOyAgICAgICAgICAvKiBub3xtYXliZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GS0M9MHgyMjsgICAgICAgICAvKiBub3xtYXliZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GRD00OyAgICAgICAgICAgICAvKiBubyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GS0Q9ODsgICAgICAgICAgICAvKiBubyAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX0FOWV9OTz0weGY7CisKKyAgICAvKiBxdWljayBjaGVjayBmbGFncyA0Li41IG1lYW4gIm1heWJlIiBmb3IgdGhlaXIgZm9ybXM7IAorICAgICAqIHRlc3QgZmxhZ3M+PVFDX01BWUJFIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX01BWUJFPTB4MTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfQU5ZX01BWUJFPTB4MzA7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRQ19NQVNLPTB4M2Y7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklORVNfRldEPTB4NDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTkVTX0JBQ0s9MHg4MDsKKyAgICBwdWJsaWMgIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklORVNfQU5ZPTB4YzA7CisgICAgLy8gVW5pY29kZURhdGEudHh0IGNvbWJpbmluZyBjbGFzcyBpbiBiaXRzIDE1LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQ19TSElGVD04OyAgICAgICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyAgc3RhdGljIGZpbmFsIGludCBDQ19NQVNLPTB4ZmYwMDsKKyAgICAvLyAxNiBiaXRzIGZvciB0aGUgaW5kZXggdG8gVUNoYXJzIGFuZCBvdGhlciBleHRyYSBkYXRhCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX1NISUZUPTE2OworICAgIC8vIHN0YXJ0IG9mIHN1cnJvZ2F0ZSBzcGVjaWFscyBhZnRlciBzaGlmdCAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSU5ERVhfVE9QPTB4ZmMwMDsgICAgICAgCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU1VSUk9HQVRFX01BU0s9MHgzZmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX1NVUlJPR0FURV9UT1A9MHgzZjA7ICAgIC8qIGhhbmd1bCBldGMuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSEFOR1VMPUVYVFJBX1NVUlJPR0FURV9UT1A7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fTD1FWFRSQV9TVVJST0dBVEVfVE9QKzE7LyogIyMjIG5vdCB1c2VkICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fVj1FWFRSQV9TVVJST0dBVEVfVE9QKzI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fVD1FWFRSQV9TVVJST0dBVEVfVE9QKzM7CisgICAgCisgICAgLyogbm9ybTMyIHZhbHVlIGNvbnN0YW50cyB1c2luZyA+MTYgYml0cyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9TUEVDSUFMICAgID0gIChsb25nKSgweGZjMDAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIFNVUlJPR0FURVNfVE9QID0gIChsb25nKSgweGZmZjAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9IQU5HVUwgICAgID0gIChsb25nKSgweGZmZjAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9KQU1PX1YgICAgID0gIChsb25nKSgweGZmZjIwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIEpBTU9fVl9UT1AgICAgID0gIChsb25nKSgweGZmZjMwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworICAgIAorICAgIAorICAgIC8qIGluZGV4ZXNbXSB2YWx1ZSBuYW1lcyAqLworICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiBub3JtYWxpemF0aW9uIHRyaWUgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX1RSSUVfU0laRSAgICAgICAgICAgPSAwOworICAgICAvKiBudW1iZXIgb2YgY2hhcnMgaW4gZXh0cmEgZGF0YSAqLyAgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9DSEFSX0NPVU5UICAgICAgICAgICA9IDE7ICAgIAorICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCB3b3JkcyBmb3IgY29tYmluaW5nIGRhdGEgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfREFUQV9DT1VOVCA9IDI7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBmb3J3YXJkICovICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfRldEX0NPVU5UICA9IDM7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBmb3J3YXJkIGFuZCBiYWNrd2FyZCAqLyAgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9DT01CSU5FX0JPVEhfQ09VTlQgPSA0OworICAgIC8qIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGNvbWJpbmUgYmFja3dhcmQgKi8gICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9CQUNLX0NPVU5UID0gNTsgICAgIAorICAgICAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZDIE5PL01BWUJFICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUlOX05GQ19OT19NQVlCRSAgID0gNjsKKyAgICAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZLQyBOTy9NQVlCRSAqLyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZLQ19OT19NQVlCRSAgPSA3OworICAgICAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZEIE5PL01BWUJFICovICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZEX05PX01BWUJFICAgPSA4OworICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORktEIE5PL01BWUJFICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORktEX05PX01BWUJFICA9IDk7ICAgICAKKyAgICAvKiBudW1iZXIgb2YgYnl0ZXMgaW4gRkNEIHRyaWUgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0ZDRF9UUklFX1NJWkUgICAgICA9IDEwOworICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiB0aGUgYXV4aWxpYXJ5IHRyaWUgKi8gICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9BVVhfVFJJRV9TSVpFICAgICAgPSAxMTsKKyAgICAvKiBudW1iZXIgb2YgdWludDE2X3QgaW4gdGhlIGFycmF5IG9mIHNlcmlhbGl6ZWQgVVNldCAqLyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NBTk9OX1NFVF9DT1VOVCAgICA9IDEyOyAgICAKKyAgICAvKiBjaGFuZ2luZyB0aGlzIHJlcXVpcmVzIGEgbmV3IGZvcm1hdFZlcnNpb24gKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX1RPUCAgICAgICAgICAgICAgICA9IDMyOyAgICAKKyAgICAKKyAgICAKKyAgICAvKiBBVVggY29uc3RhbnRzICovCisgICAgLyogdmFsdWUgY29uc3RhbnRzIGZvciBhdXhUcmllICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfVU5TQUZFX1NISUZUICAgICAgICAgICA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfQ09NUF9FWF9TSElGVCAgICAgICAgICAgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVVYX05GQ19TS0lQUEFCTEVfRl9TSElGVCA9IDEyOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfTUFYX0ZOQyAgICAgICAgICA9ICAgKChpbnQpMTw8QVVYX0NPTVBfRVhfU0hJRlQpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfVU5TQUZFX01BU0sgICAgICA9ICAgKGludCkoKDE8PEFVWF9VTlNBRkVfU0hJRlQpICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfRk5DX01BU0sgICAgICAgICA9ICAgKGludCkoKEFVWF9NQVhfRk5DLTEpICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfQ09NUF9FWF9NQVNLICAgICA9ICAgKGludCkoKDE8PEFVWF9DT01QX0VYX1NISUZUKSAmIFVOU0lHTkVEX0lOVF9NQVNLKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIEFVWF9ORkNfU0tJUF9GX01BU0sgPSAgICgoVU5TSUdORURfSU5UX01BU0smMSk8PEFVWF9ORkNfU0tJUFBBQkxFX0ZfU0hJRlQpOworICAgIAorICAgIC8qIGNhbm9uU3RhcnRTZXRzWzAuLjMxXSBjb250YWlucyBpbmRleGVzIGZvciB3aGF0IGlzIGluIHRoZSBhcnJheSAqLworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiBjYW5vbmljYWwgc3RhcnRlciBzZXRzICovCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEggICAgICAgID0gMDsKKyAgICAvKiBudW1iZXIgb2YgdWludDE2X3QgaW4gdGhlIEJNUCBzZWFyY2ggdGFibGUgKGNvbnRhaW5zIHBhaXJzKSAqLyAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9JTkRFWF9DQU5PTl9CTVBfVEFCTEVfTEVOR1RIICAgID0gMTsKKyAgICAvKiBudW1iZXIgb2YgdWludDE2X3QgaW4gdGhlIHN1cHBsZW1lbnRhcnkgc2VhcmNoIHRhYmxlKGNvbnRhaW5zIHRyaXBsZXRzKSovIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0lOREVYX0NBTk9OX1NVUFBfVEFCTEVfTEVOR1RIICA9IDI7CisgICAgLyogY2hhbmdpbmcgdGhpcyByZXF1aXJlcyBhIG5ldyBmb3JtYXRWZXJzaW9uICovIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0lOREVYX1RPUCAgICAgICAgICAgICAgICAgICAgICAgID0gMzI7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfSU5ESUNJRVNfSU5ERVggICAgICAgICAgICAgID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9TVEFSVF9TRVRTX0lOREVYICAgICAgICAgICAgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX0JNUF9UQUJMRV9JTkRFWCAgICAgICAgICAgID0gMjsKKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9TVVBQX1RBQkxFX0lOREVYICAgICAgICAgICAgPSAzOworICAgIC8qIDE0IGJpdCBpbmRleGVzIHRvIGNhbm9uaWNhbCBVU2VyaWFsaXplZFNldHMgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9NQVhfQ0FOT05fU0VUUyAgICAgICAgICAgICA9IDB4NDAwMDsgCisgICAgLyogc2luZ2xlLWNvZGUgcG9pbnQgQk1QIHNldHMgYXJlIGVuY29kZWQgZGlyZWN0bHkgaW4gdGhlIHNlYXJjaCB0YWJsZSAKKyAgICAgKiBleGNlcHQgaWYgcmVzdWx0PTB4NDAwMC4uMHg3ZmZmIAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX0JNUF9NQVNLICAgICAgICAgICAgICAgICAgICA9IDB4YzAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9CTVBfSVNfSU5ERVggICAgICAgICAgICAgICAgPSAweDQwMDA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUZGRVJfU0laRSAgICAgICAgICAgICAgICAgICAgPSAyMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBvcHRpb24gZm9yIGNtcEVxdWl2Rm9sZCgpIGZvciBkZWNvbXBvc2luZy4KKyAgICAgKiBJZiBub3Qgc2V0LCBqdXN0IGRvIHN0cmNhc2VjbXAoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9FUVVJViA9IDB4ODAwMDA7CisgICAgCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICAvKiBXcmFwcGVycyBmb3IgVHJpZSBpbXBsZW1lbnRhdGlvbnMgKi8gCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIE5vcm1UcmllSW1wbCBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGV7CisgICAgICAgIHN0YXRpYyBJbnRUcmllIG5vcm1UcmllPSBudWxsOworICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKyAgICAgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyAKKyAgICAgICAgKiAgICAgICAgIHRoZSBmb2xkaW5nIG9mZnNldAorICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgKi8KKyAgICAgICAgLyogbm9ybVRyaWU6IDMyLWJpdCB0cmllIHJlc3VsdCBtYXkgY29udGFpbiBhIHNwZWNpYWwgZXh0cmFEYXRhIGluZGV4IHdpdGggdGhlIGZvbGRpbmcgb2Zmc2V0ICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgdmFsdWUpeworICAgICAgICAgICAgcmV0dXJuICBCTVBfSU5ERVhfTEVOR1RIKworICAgICAgICAgICAgICAgICAgICAoKHZhbHVlPj4oRVhUUkFfU0hJRlQtU1VSUk9HQVRFX0JMT0NLX0JJVFMpKSYKKyAgICAgICAgICAgICAgICAgICAgKDB4M2ZmPDxTVVJST0dBVEVfQkxPQ0tfQklUUykpOyAKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIGNsYXNzIEZDRFRyaWVJbXBsIGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZXsKKyAgICAgICAgc3RhdGljIENoYXJUcmllIGZjZFRyaWU9bnVsbDsKKyAgICAgICAvKioKKyAgICAgICAgKiBDYWxsZWQgYnkgY29tLmlibS5pY3UudXRpbC5UcmllIHRvIGV4dHJhY3QgZnJvbSBhIGxlYWQgc3Vycm9nYXRlJ3MgCisgICAgICAgICogZGF0YSB0aGUgaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBkYXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcKKyAgICAgICAgKiAgICAgICAgIHRoZSBmb2xkaW5nIG9mZnNldAorICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgKi8KKyAgICAgICAgLyogZmNkVHJpZTogdGhlIGZvbGRpbmcgb2Zmc2V0IGlzIHRoZSBsZWFkIEZDRCB2YWx1ZSBpdHNlbGYgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIEF1eFRyaWVJbXBsIGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZXsKKyAgICAgICAgc3RhdGljIENoYXJUcmllIGF1eFRyaWUgPSBudWxsOworICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKyAgICAgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyAKKyAgICAgICAgKiAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqLworICAgICAgICAvKiBhdXhUcmllOiB0aGUgZm9sZGluZyBvZmZzZXQgaXMgaW4gYml0cyA5Li4wIG9mIHRoZSAxNi1iaXQgdHJpZSByZXN1bHQgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisgICAgICAgICAgICByZXR1cm4gKGludCkodmFsdWUgJkFVWF9GTkNfTUFTSyk8PFNVUlJPR0FURV9CTE9DS19CSVRTOworICAgICAgICB9CisgICAgfQorICAgICAgICAgCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgRkNEVHJpZUltcGwgZmNkVHJpZUltcGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgTm9ybVRyaWVJbXBsIG5vcm1UcmllSW1wbDsKKyAgICBwcml2YXRlIHN0YXRpYyBBdXhUcmllSW1wbCBhdXhUcmllSW1wbDsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBpbmRleGVzOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBjb21iaW5pbmdUYWJsZTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gZXh0cmFEYXRhOworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGNhbm9uU3RhcnRTZXRzOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNEYXRhTG9hZGVkOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNGb3JtYXRWZXJzaW9uXzJfMTsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRm9ybWF0VmVyc2lvbl8yXzI7CisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOworICAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworICAgIAorICAgIC8qKgorICAgICAqIEZDRCBjaGVjazogZXZlcnl0aGluZyBiZWxvdyB0aGlzIGNvZGUgcG9pbnQgaXMga25vd24gdG8gaGF2ZSBhIDAgCisgICAgICogbGVhZCBjb21iaW5pbmcgY2xhc3MgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlOX1dJVEhfTEVBRF9DQz0weDMwMDsKKworCisgICAgLyoqCisgICAgICogQml0IDcgb2YgdGhlIGxlbmd0aCBieXRlIGZvciBhIGRlY29tcG9zaXRpb24gc3RyaW5nIGluIGV4dHJhIGRhdGEgaXMKKyAgICAgKiBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZyBpcworICAgICAqIHByZWNlZGVkIGJ5IGEgMTYtYml0IHdvcmQgd2l0aCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2MKKyAgICAgKiBvZiB0aGUgZGVjb21wb3NpdGlvbiAobGlrZSBmb3IgQS11bWxhdXQpOworICAgICAqIGlmIG5vdCwgdGhlbiBib3RoIGNjJ3MgYXJlIHplcm8gKGxpa2UgZm9yIGNvbXBhdGliaWxpdHkgaWRlb2dyYXBocykuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9GTEFHX0xFTkdUSF9IQVNfQ0M9MHg4MDsKKyAgICAvKioKKyAgICAgKiBCaXRzIDYuLjAgb2YgdGhlIGxlbmd0aCBieXRlIGNvbnRhaW4gdGhlIGFjdHVhbCBsZW5ndGguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9MRU5HVEhfTUFTSz0weDdmOyAgIAorICAgIAorICAgIC8qKiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkuICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJNUF9JTkRFWF9MRU5HVEg9MHgxMDAwMD4+VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSAKKyAgICAgKiBsb29rdXBzLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0JMT0NLX0JJVFM9MTAtVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKworCisgICAvLyBwdWJsaWMgdXRpbGl0eQorICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RnJvbUluZGV4ZXNBcnIoaW50IGluZGV4KXsKKyAgICAgICAgcmV0dXJuIGluZGV4ZXNbaW5kZXhdOworICAgfQorICAgCisgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMgb3IgZGF0YSBjb3JydXB0ZWQKKyAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXplckltcGwoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAvL2RhdGEgc2hvdWxkIGJlIGxvYWRlZCBvbmx5IG9uY2UKKyAgICAgICAgaWYoIWlzRGF0YUxvYWRlZCl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGphciBhY2Nlc3MKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGkgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKERBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksREFUQV9CVUZGRVJfU0laRSk7CisgICAgICAgICAgICBOb3JtYWxpemVyRGF0YVJlYWRlciByZWFkZXIgPSBuZXcgTm9ybWFsaXplckRhdGFSZWFkZXIoYik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJlYWQgdGhlIGluZGV4ZXMgICAgICAgICAgICAKKyAgICAgICAgICAgIGluZGV4ZXMgPSByZWFkZXIucmVhZEluZGV4ZXMoTm9ybWFsaXplckltcGwuSU5ERVhfVE9QKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZVtdIG5vcm1CeXRlcyA9IG5ldyBieXRlW2luZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfVFJJRV9TSVpFXV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjb21iaW5pbmdUYWJsZVRvcCA9IGluZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfQ09NQklORV9EQVRBX0NPVU5UXTsKKyAgICAgICAgICAgIGNvbWJpbmluZ1RhYmxlID0gbmV3IGNoYXJbY29tYmluaW5nVGFibGVUb3BdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZXh0cmFEYXRhVG9wID0gaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9DSEFSX0NPVU5UXTsKKyAgICAgICAgICAgIGV4dHJhRGF0YSA9IG5ldyBjaGFyW2V4dHJhRGF0YVRvcF07CisKKyAgICAgICAgICAgIGJ5dGVbXSBmY2RCeXRlcyA9IG5ldyBieXRlW2luZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfRkNEX1RSSUVfU0laRV1dOworICAgICAgICAgICAgYnl0ZVtdIGF1eEJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9BVVhfVFJJRV9TSVpFXV07CisgICAgICAgICAgICBjYW5vblN0YXJ0U2V0cz1uZXcgT2JqZWN0W05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9NQVhfQ0FOT05fU0VUU107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZjZFRyaWVJbXBsID0gbmV3IEZDRFRyaWVJbXBsKCk7CisgICAgICAgICAgICBub3JtVHJpZUltcGwgPSBuZXcgTm9ybVRyaWVJbXBsKCk7CisgICAgICAgICAgICBhdXhUcmllSW1wbCA9IG5ldyBBdXhUcmllSW1wbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsb2FkIHRoZSByZXN0IG9mIHRoZSBkYXRhIGRhdGEgYW5kIGluaXRpYWxpemUgdGhlIGRhdGEgbWVtYmVycworICAgICAgICAgICAgcmVhZGVyLnJlYWQobm9ybUJ5dGVzLCBmY2RCeXRlcyxhdXhCeXRlcywgZXh0cmFEYXRhLCBjb21iaW5pbmdUYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBjYW5vblN0YXJ0U2V0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIE5vcm1UcmllSW1wbC5ub3JtVHJpZSA9IG5ldyBJbnRUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0obm9ybUJ5dGVzKSxub3JtVHJpZUltcGwgKTsKKyAgICAgICAgICAgIEZDRFRyaWVJbXBsLmZjZFRyaWUgICA9IG5ldyBDaGFyVHJpZSggbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGZjZEJ5dGVzKSxmY2RUcmllSW1wbCAgKTsKKyAgICAgICAgICAgIEF1eFRyaWVJbXBsLmF1eFRyaWUgICA9IG5ldyBDaGFyVHJpZSggbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGF1eEJ5dGVzKSxhdXhUcmllSW1wbCAgKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gd2UgcmVhY2hlZCBoZXJlIHdpdGhvdXQgYW55IGV4Y2VwdGlvbnMgc28gdGhlIGRhdGEgaXMgZnVsbHkgCisgICAgICAgICAgICAvLyBsb2FkZWQgc2V0IHRoZSB2YXJpYWJsZSB0byB0cnVlCisgICAgICAgICAgICBpc0RhdGFMb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBnZXQgdGhlIGRhdGEgZm9ybWF0IHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGVbXSBmb3JtYXRWZXJzaW9uID0gcmVhZGVyLmdldERhdGFGb3JtYXRWZXJzaW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlzRm9ybWF0VmVyc2lvbl8yXzEgPSggZm9ybWF0VmVyc2lvblswXT4yIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdFZlcnNpb25bMF09PTIgJiYgZm9ybWF0VmVyc2lvblsxXT49MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICBpc0Zvcm1hdFZlcnNpb25fMl8yID0oIGZvcm1hdFZlcnNpb25bMF0+MiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXRWZXJzaW9uWzBdPT0yICYmIGZvcm1hdFZlcnNpb25bMV0+PTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgdW5pY29kZVZlcnNpb24gPSByZWFkZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIAorICAgIC8qIEtvcmVhbiBIYW5ndWwgYW5kIEphbW8gY29uc3RhbnRzICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19MX0JBU0U9MHgxMTAwOyAgICAgLyogImxlYWQiIGphbW8gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX1ZfQkFTRT0weDExNjE7ICAgICAvKiAidm93ZWwiIGphbW8gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX1RfQkFTRT0weDExYTc7ICAgICAvKiAidHJhaWwiIGphbW8gKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfQkFTRT0weGFjMDA7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19MX0NPVU5UPTE5OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVl9DT1VOVD0yMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX1RfQ09VTlQ9Mjg7CisgICAgcHVibGljICBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9DT1VOVD1KQU1PX0xfQ09VTlQqSkFNT19WX0NPVU5UKkpBTU9fVF9DT1VOVDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzSGFuZ3VsV2l0aG91dEphbW9UKGNoYXIgYykgeworICAgICAgICBjLT1IQU5HVUxfQkFTRTsKKyAgICAgICAgcmV0dXJuIGM8SEFOR1VMX0NPVU5UICYmIGMlSkFNT19UX0NPVU5UPT0wOworICAgIH0KKyAgICAKKyAgICAvKiBub3JtMzIgaGVscGVycyAqLworICAgIAorICAgIC8qIGlzIHRoaXMgYSBub3JtMzIgd2l0aCBhIHJlZ3VsYXIgaW5kZXg/ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc05vcm0zMlJlZ3VsYXIobG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIG5vcm0zMjxNSU5fU1BFQ0lBTDsKKyAgICB9CisgICAgCisgICAgLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgc3BlY2lhbCBpbmRleCBmb3IgYSBsZWFkIHN1cnJvZ2F0ZT8gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gTUlOX1NQRUNJQUw8PW5vcm0zMiAmJiBub3JtMzI8U1VSUk9HQVRFU19UT1A7CisgICAgfQorICAgIAorICAgIC8qIGlzIHRoaXMgYSBub3JtMzIgd2l0aCBhIHNwZWNpYWwgaW5kZXggZm9yIGEgSGFuZ3VsIHN5bGxhYmxlIG9yIGEgSmFtbz8gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybTMySGFuZ3VsT3JKYW1vKGxvbmcgbm9ybTMyKSB7CisgICAgICAgIHJldHVybiBub3JtMzI+PU1JTl9IQU5HVUw7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogR2l2ZW4gaXNOb3JtMzJIYW5ndWxPckphbW8oKSwKKyAgICAgKiBpcyB0aGlzIGEgSGFuZ3VsIHN5bGxhYmxlIG9yIGEgSmFtbz8KKyAgICAgKi8KKyAgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljICBib29sZWFuIGlzSGFuZ3VsSmFtb05vcm0zMkhhbmd1bE9ySmFtb0wobG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIG5vcm0zMjxNSU5fSkFNT19WOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAKKyAgICAvKgorICAgICAqIEdpdmVuIG5vcm0zMiBmb3IgSmFtbyBWIG9yIFQsCisgICAgICogaXMgdGhpcyBhIEphbW8gVj8KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzSmFtb1ZUTm9ybTMySmFtb1YobG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIG5vcm0zMjxKQU1PX1ZfVE9QOworICAgIH0KKyAgICAKKyAgICAvKiBkYXRhIGFjY2VzcyBwcmltaXRpdmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBsb25nLyp1bnNpZ25lZCovIGdldE5vcm0zMihjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuICgoVU5TSUdORURfSU5UX01BU0spICYgKE5vcm1UcmllSW1wbC5ub3JtVHJpZS5nZXRMZWFkVmFsdWUoYykpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBsb25nLyp1bnNpZ25lZCovIGdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKGxvbmcgbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYzIpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogdGhlIHN1cnJvZ2F0ZSBpbmRleCBpbiBub3JtMzIgc3RvcmVzIG9ubHkgdGhlIG51bWJlciBvZiB0aGUgc3Vycm9nYXRlCisgICAgICAgICAqIGluZGV4IGJsb2NrIHNlZSBnZW5ub3JtL3N0b3JlLmMvZ2V0Rm9sZGVkTm9ybVZhbHVlKCkKKyAgICAgICAgICovCisgICAgICAgIHJldHVybiAoKFVOU0lHTkVEX0lOVF9NQVNLKSAmIAorICAgICAgICAgICAgICAgICAgICBOb3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0VHJhaWxWYWx1ZSgoaW50KW5vcm0zMiwgYzIpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGxvbmcgZ2V0Tm9ybTMyKGludCBjKXsKKyAgICAgICAgcmV0dXJuIChVTlNJR05FRF9JTlRfTUFTSyYoTm9ybVRyaWVJbXBsLm5vcm1UcmllLmdldENvZGVQb2ludFZhbHVlKGMpKSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGxvbmcgZ2V0Tm9ybTMyKGludCBjLGludCBtYXNrKXsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI9IGdldE5vcm0zMihVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpKTsKKyAgICAgICAgaWYoKChub3JtMzImbWFzayk+MCkgJiYgaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMixVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5vcm0zMjsgCisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIAorICAgIC8qCisgICAgICogZ2V0IGEgbm9ybTMyIGZyb20gdGV4dCB3aXRoIGNvbXBsZXRlIGNvZGUgcG9pbnRzCisgICAgICogKGxpa2UgZnJvbSBkZWNvbXBvc2l0aW9ucykKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nLyp1bnNpZ25lZCovIGdldE5vcm0zMihjaGFyW10gcCxpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2spIHsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI9IGdldE5vcm0zMihwW3N0YXJ0XSk7CisgICAgICAgIGlmKCgobm9ybTMyJm1hc2spPjApICYmIGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAvKiAqcCBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBwW3N0YXJ0KzFdKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldFVuaWNvZGVWZXJzaW9uKCl7CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh1bmljb2RlVmVyc2lvblswXSwgdW5pY29kZVZlcnNpb25bMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlVmVyc2lvblsyXSwgdW5pY29kZVZlcnNpb25bM10pOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgICAgZ2V0RkNEMTYoY2hhciBjKSB7CisgICAgICAgIHJldHVybiAgRkNEVHJpZUltcGwuZmNkVHJpZS5nZXRMZWFkVmFsdWUoYyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGNoYXIgZmNkMTYsIGNoYXIgYzIpIHsKKyAgICAgICAgLyogdGhlIHN1cnJvZ2F0ZSBpbmRleCBpbiBmY2QxNiBpcyBhbiBhYnNvbHV0ZSBvZmZzZXQgb3ZlciB0aGUgCisgICAgICAgICAqIHN0YXJ0IG9mIHN0YWdlIDEgCisgICAgICAgICAqICovCisgICAgICAgIHJldHVybiBGQ0RUcmllSW1wbC5mY2RUcmllLmdldFRyYWlsVmFsdWUoZmNkMTYsIGMyKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RkNEMTYoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICBGQ0RUcmllSW1wbC5mY2RUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEV4dHJhRGF0YUluZGV4KGxvbmcgbm9ybTMyKSB7CisgICAgICAgIHJldHVybiAoaW50KShub3JtMzI+PkVYVFJBX1NISUZUKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRGVjb21wb3NlQXJnc3sKKyAgICAgICAgaW50IC8qdW5zaWduZWQgYnl0ZSovIGNjOworICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gdHJhaWxDQzsKKyAgICAgICAgaW50IGxlbmd0aDsKKyAgICB9CisgICAgLyoqCisgICAgICogCisgICAgICogZ2V0IHRoZSBjYW5vbmljYWwgb3IgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIGZvciBvbmUgY2hhcmFjdGVyIAorICAgICAqIAorICAgICAqIEByZXR1cm4gaW5kZXggaW50byB0aGUgZXh0cmFEYXRhIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50LyppbmRleCovIGRlY29tcG9zZShsb25nLyp1bnNpZ25lZCovIG5vcm0zMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gcWNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncykgeworICAgICAgICBpbnQgcD0gZ2V0RXh0cmFEYXRhSW5kZXgobm9ybTMyKTsKKyAgICAgICAgYXJncy5sZW5ndGg9ZXh0cmFEYXRhW3ArK107CisgICAgCisgICAgICAgIGlmKChub3JtMzImcWNNYXNrJlFDX05GS0QpIT0wICYmIGFyZ3MubGVuZ3RoPj0weDEwMCkgeworICAgICAgICAgICAgLyogdXNlIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiwgc2tpcCBjYW5vbmljYWwgZGF0YSAqLworICAgICAgICAgICAgcCs9KChhcmdzLmxlbmd0aD4+NykmMSkrKGFyZ3MubGVuZ3RoJkRFQ09NUF9MRU5HVEhfTUFTSyk7CisgICAgICAgICAgICBhcmdzLmxlbmd0aD4+PTg7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYoKGFyZ3MubGVuZ3RoJkRFQ09NUF9GTEFHX0xFTkdUSF9IQVNfQ0MpPjApIHsKKyAgICAgICAgICAgIC8qIGdldCB0aGUgbGVhZCBhbmQgdHJhaWwgY2MncyAqLworICAgICAgICAgICAgY2hhciBib3RoQ0NzPWV4dHJhRGF0YVtwKytdOworICAgICAgICAgICAgYXJncy5jYz0oVU5TSUdORURfQllURV9NQVNLKSAmIChib3RoQ0NzPj44KTsKKyAgICAgICAgICAgIGFyZ3MudHJhaWxDQz0oVU5TSUdORURfQllURV9NQVNLKSAmIGJvdGhDQ3M7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBsZWFkIGFuZCB0cmFpbCBjYydzIGFyZSBib3RoIDAgKi8KKyAgICAgICAgICAgIGFyZ3MuY2M9YXJncy50cmFpbENDPTA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYXJncy5sZW5ndGgmPURFQ09NUF9MRU5HVEhfTUFTSzsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorICAgIAorICAgICAgIAorICAgIC8qKgorICAgICAqIGdldCB0aGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG9uZSBjaGFyYWN0ZXIgCisgICAgICogQHJldHVybiBpbmRleCBpbnRvIHRoZSBleHRyYURhdGEgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjb21wb3NlKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IHA9IGdldEV4dHJhRGF0YUluZGV4KG5vcm0zMik7CisgICAgICAgIGFyZ3MubGVuZ3RoPWV4dHJhRGF0YVtwKytdOworICAgIAorICAgICAgICBpZigoYXJncy5sZW5ndGgmREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQyk+MCkgeworICAgICAgICAgICAgLyogZ2V0IHRoZSBsZWFkIGFuZCB0cmFpbCBjYydzICovCisgICAgICAgICAgICBjaGFyIGJvdGhDQ3M9ZXh0cmFEYXRhW3ArK107CisgICAgICAgICAgICBhcmdzLmNjPShVTlNJR05FRF9CWVRFX01BU0spICYgKGJvdGhDQ3M+PjgpOworICAgICAgICAgICAgYXJncy50cmFpbENDPShVTlNJR05FRF9CWVRFX01BU0spICYgYm90aENDczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIGxlYWQgYW5kIHRyYWlsIGNjJ3MgYXJlIGJvdGggMCAqLworICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9MDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBhcmdzLmxlbmd0aCY9REVDT01QX0xFTkdUSF9NQVNLOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTmV4dENDQXJnc3sKKyAgICAgICAgY2hhcltdIHNvdXJjZTsKKyAgICAgICAgaW50IG5leHQ7CisgICAgICAgIGludCBsaW1pdDsKKyAgICAgICAgY2hhciBjOworICAgICAgICBjaGFyIGMyOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGdldCB0aGUgY29tYmluaW5nIGNsYXNzIG9mIChjLCBjMik9IGFyZ3Muc291cmNlW2FyZ3MubmV4dCsrXQorICAgICAqIGJlZm9yZTogYXJncy5uZXh0PGFyZ3MubGltaXQgIGFmdGVyOiBhcmdzLm5leHQ8PWFyZ3MubGltaXQKKyAgICAgKiBpZiBvbmx5IG9uZSBjb2RlIHVuaXQgaXMgdXNlZCwgdGhlbiBjMj09MAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkIGJ5dGUqLyBnZXROZXh0Q0MoTmV4dENDQXJncyBhcmdzKSB7CisgICAgICAgIGxvbmcgLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAKKyAgICAgICAgYXJncy5jPWFyZ3Muc291cmNlW2FyZ3MubmV4dCsrXTsKKyAgICAgICAgCisgICAgICAgIG5vcm0zMj0gZ2V0Tm9ybTMyKGFyZ3MuYyk7CisgICAgICAgIGlmKChub3JtMzIgJiBDQ19NQVNLKT09MCkgeworICAgICAgICAgICAgYXJncy5jMj0wOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZighaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgIGlmKGFyZ3MubmV4dCE9YXJncy5saW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYXJncy5jMj1hcmdzLnNvdXJjZVthcmdzLm5leHRdKSl7CisgICAgICAgICAgICAgICAgICAgICsrYXJncy5uZXh0OworICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBhcmdzLmMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHJldHVybiAoaW50KSgoVU5TSUdORURfQllURV9NQVNLKSAmIChub3JtMzI+PkNDX1NISUZUKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBQcmV2QXJnc3sKKyAgICAgICAgY2hhcltdIHNyYzsKKyAgICAgICAgaW50IHN0YXJ0OworICAgICAgICBpbnQgY3VycmVudDsKKyAgICAgICAgY2hhciBjOworICAgICAgICBjaGFyIGMyOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIHJlYWQgYmFja3dhcmRzIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAqIHN1cnJvZ2F0ZSBidXQgcmVhZCBzZWNvbmQhKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgLyp1bnNpZ25lZCovIGdldFByZXZOb3JtMzIoUHJldkFyZ3MgYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrKSB7CisgICAgICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyOworICAgIAorICAgICAgICBhcmdzLmM9YXJncy5zcmNbLS1hcmdzLmN1cnJlbnRdOworICAgICAgICBhcmdzLmMyPTA7CisgICAgCisgICAgICAgIC8qIGNoZWNrIGZvciBhIHN1cnJvZ2F0ZSBiZWZvcmUgZ2V0dGluZyBub3JtMzIgdG8gc2VlIGlmIHdlIG5lZWQgdG8gCisgICAgICAgICAqIHByZWRlY3JlbWVudCBmdXJ0aGVyIAorICAgICAgICAgKi8KKyAgICAgICAgaWYoYXJncy5jPG1pbkMpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGFyZ3MuYykpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXROb3JtMzIoYXJncy5jKTsKKyAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShhcmdzLmMpKSB7CisgICAgICAgICAgICAvKiB1bnBhaXJlZCBmaXJzdCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYoYXJncy5jdXJyZW50IT1hcmdzLnN0YXJ0ICYmIAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYXJncy5jMj1hcmdzLnNyY1thcmdzLmN1cnJlbnQtMV0pKSB7CisgICAgICAgICAgICAtLWFyZ3MuY3VycmVudDsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYXJncy5jMik7CisgICAgCisgICAgICAgICAgICBpZigobm9ybTMyJm1hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgLyogYWxsIHN1cnJvZ2F0ZSBwYWlycyB3aXRoIHRoaXMgbGVhZCBzdXJyb2dhdGUgaGF2ZSAKKyAgICAgICAgICAgICAgICAgKiBvbmx5IGlycmVsZXZhbnQgZGF0YSAKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbm9ybTMyIG11c3QgYmUgYSBzdXJyb2dhdGUgc3BlY2lhbCAqLworICAgICAgICAgICAgICAgIHJldHVybiBnZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiB1bnBhaXJlZCBzZWNvbmQgc3Vycm9nYXRlICovCisgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGdldCB0aGUgY29tYmluaW5nIGNsYXNzIG9mIChjLCBjMik9Ki0tcAorICAgICAqIGJlZm9yZTogc3RhcnQ8cCAgYWZ0ZXI6IHN0YXJ0PD1wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIGdldFByZXZDQyhQcmV2QXJncyBhcmdzKSB7CisKKyAgICAgICAgcmV0dXJuIChpbnQpKChVTlNJR05FRF9CWVRFX01BU0spJihnZXRQcmV2Tm9ybTMyKGFyZ3MsIE1JTl9XSVRIX0xFQURfQ0MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ19NQVNLKT4+Q0NfU0hJRlQpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGlzIHRoaXMgYSBzYWZlIGJvdW5kYXJ5IGNoYXJhY3RlciBmb3IgTkYqRD8KKyAgICAgKiAobGVhZCBjYz09MCkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNORkRTYWZlKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi9jY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrKSB7CisgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBjYz09MCBhbmQgbm8gZGVjb21wb3NpdGlvbjogdGhpcyBpcyBORipEIHNhZmUgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBpbnNwZWN0IGl0cyBkZWNvbXBvc2l0aW9uIC0gbWF5YmUgYSBIYW5ndWwgYnV0IG5vdCBhIHN1cnJvZ2F0ZSBoZXJlKi8KKyAgICAgICAgaWYoaXNOb3JtMzJSZWd1bGFyKG5vcm0zMikgJiYgKG5vcm0zMiZkZWNvbXBRQ01hc2spIT0wKSB7CisgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3M9bmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgICAgIC8qIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSBkYXRhICovCisgICAgICAgICAgICBkZWNvbXBvc2Uobm9ybTMyLCBkZWNvbXBRQ01hc2ssIGFyZ3MpOworICAgICAgICAgICAgcmV0dXJuIGFyZ3MuY2M9PTA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBubyBkZWNvbXBvc2l0aW9uIChvciBIYW5ndWwpLCB0ZXN0IHRoZSBjYyBkaXJlY3RseSAqLworICAgICAgICAgICAgcmV0dXJuIChub3JtMzImQ0NfTUFTSyk9PTA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBpcyB0aGlzIChvciBkb2VzIGl0cyBkZWNvbXBvc2l0aW9uIGJlZ2luIHdpdGgpIGEgInRydWUgc3RhcnRlciI/CisgICAgICogKGNjPT0wIGFuZCBORipDX1lFUykKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNUcnVlU3RhcnRlcihsb25nLyp1bnNpZ25lZCovIG5vcm0zMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrKSB7CisgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiB0aGlzIGlzIGEgdHJ1ZSBzdGFydGVyIChjb3VsZCBiZSBIYW5ndWwgb3IgSmFtbyBMKSovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogaW5zcGVjdCBpdHMgZGVjb21wb3NpdGlvbiAtIG5vdCBhIEhhbmd1bCBvciBhIHN1cnJvZ2F0ZSBoZXJlICovCisgICAgICAgIGlmKChub3JtMzImZGVjb21wUUNNYXNrKSE9MCkgeworICAgICAgICAgICAgaW50IHA7IC8qIGluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSAqLworICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzPW5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAvKiBkZWNvbXBvc2VzLCBnZXQgZXZlcnl0aGluZyBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggZXh0cmEgZGF0YSAqLworICAgICAgICAgICAgcD1kZWNvbXBvc2Uobm9ybTMyLCBkZWNvbXBRQ01hc2ssIGFyZ3MpOworICAgICAgICAgIAorICAgICAgICAgICAgaWYoYXJncy5jYz09MCkgeworICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBxY01hc2s9Y2NPclFDTWFzayZRQ19NQVNLOworICAgIAorICAgICAgICAgICAgICAgIC8qIGRvZXMgaXQgYmVnaW4gd2l0aCBORkNfWUVTPyAqLworICAgICAgICAgICAgICAgIGlmKChnZXROb3JtMzIoZXh0cmFEYXRhLHAsIHFjTWFzaykmcWNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB5ZXMsIHRoZSBkZWNvbXBvc2l0aW9uIGJlZ2lucyB3aXRoIGEgdHJ1ZSBzdGFydGVyICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyogcmVvcmRlciBVVEYtMTYgaW4tcGxhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIAorICAgIC8qKgorICAgICAqIHNpbXBsZXIsIHNpbmdsZS1jaGFyYWN0ZXIgdmVyc2lvbiBvZiBtZXJnZU9yZGVyZWQoKSAtCisgICAgICogYnViYmxlLWluc2VydCBvbmUgc2luZ2xlIGNvZGUgcG9pbnQgaW50byB0aGUgcHJlY2VkaW5nIHN0cmluZworICAgICAqIHdoaWNoIGlzIGFscmVhZHkgY2Fub25pY2FsbHkgb3JkZXJlZAorICAgICAqIChjLCBjMikgbWF5IG9yIG1heSBub3QgeWV0IGhhdmUgYmVlbiBpbnNlcnRlZCBhdCBzcmNbY3VycmVudF0uLnNyY1twXQorICAgICAqCisgICAgICogaXQgbXVzdCBiZSBwPWN1cnJlbnQrbGVuZ3Rob2YoYywgYzIpIGkuZS4gcD1jdXJyZW50KyhjMj09MCA/IDEgOiAyKQorICAgICAqCisgICAgICogYmVmb3JlOiBzcmNbc3RhcnRdLi5zcmNbY3VycmVudF0gaXMgYWxyZWFkeSBvcmRlcmVkLCBhbmQKKyAgICAgKiAgICAgICAgIHNyY1tjdXJyZW50XS4uc3JjW3BdICAgICBtYXkgb3IgbWF5IG5vdCBob2xkIChjLCBjMikgYnV0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZSBsZW5ndGggYXMgKGMsIGMyKQorICAgICAqIGFmdGVyOiBzcmNbc3RhcnRdLi5zcmNbcF0gaXMgb3JkZXJlZAorICAgICAqCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCBieXRlKi8gaW5zZXJ0T3JkZXJlZChjaGFyW10gc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3VycmVudCwgaW50IHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMsIGNoYXIgYzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCBieXRlKi8gY2MpIHsKKyAgICAgICAgaW50IGJhY2ssIHByZUJhY2s7CisgICAgICAgIGludCByOworICAgICAgICBpbnQgcHJldkNDLCB0cmFpbENDPWNjOworICAgIAorICAgICAgICBpZihzdGFydDxjdXJyZW50ICYmIGNjIT0wKSB7CisgICAgICAgICAgICAvLyBzZWFyY2ggZm9yIHRoZSBpbnNlcnRpb24gcG9pbnQgd2hlcmUgY2M+PXByZXZDQyAKKyAgICAgICAgICAgIHByZUJhY2s9YmFjaz1jdXJyZW50OworICAgICAgICAgICAgUHJldkFyZ3MgcHJldkFyZ3MgPSBuZXcgUHJldkFyZ3MoKTsKKyAgICAgICAgICAgIHByZXZBcmdzLmN1cnJlbnQgID0gY3VycmVudDsKKyAgICAgICAgICAgIHByZXZBcmdzLnN0YXJ0ICAgID0gc3RhcnQ7CisgICAgICAgICAgICBwcmV2QXJncy5zcmMgICAgICA9IHNvdXJjZTsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgcHJldkNDIAorICAgICAgICAgICAgcHJldkNDPWdldFByZXZDQyhwcmV2QXJncyk7CisgICAgICAgICAgICBwcmVCYWNrID0gcHJldkFyZ3MuY3VycmVudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoY2M8cHJldkNDKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyB3aWxsIGJlIHRoZSBsYXN0IGNvZGUgcG9pbnQsIHNvIGtlZXAgaXRzIGNjIAorICAgICAgICAgICAgICAgIHRyYWlsQ0M9cHJldkNDOworICAgICAgICAgICAgICAgIGJhY2s9cHJlQmFjazsKKyAgICAgICAgICAgICAgICB3aGlsZShzdGFydDxwcmVCYWNrKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz1nZXRQcmV2Q0MocHJldkFyZ3MpOworICAgICAgICAgICAgICAgICAgICBwcmVCYWNrPXByZXZBcmdzLmN1cnJlbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmKGNjPj1wcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJhY2s9cHJlQmFjazsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB3aGVyZSB3ZSBhcmUgcmlnaHQgbm93IHdpdGggYWxsIHRoZXNlIGluZGljaWVzOgorICAgICAgICAgICAgICAgIC8vIFtzdGFydF0uLltwUHJlQmFja10gMC4uPyBjb2RlIHBvaW50cyB0aGF0IHdlIGNhbiBpZ25vcmUKKyAgICAgICAgICAgICAgICAvLyBbcFByZUJhY2tdLi5bcEJhY2tdIDAuLjEgY29kZSBwb2ludHMgd2l0aCBwcmV2Q0M8PWNjCisgICAgICAgICAgICAgICAgLy8gW3BCYWNrXS4uW2N1cnJlbnRdIDAuLm4gY29kZSBwb2ludHMgd2l0aCA+Y2MsIG1vdmUgdXAgdG8gaW5zZXJ0IChjLCBjMikKKyAgICAgICAgICAgICAgICAvLyBbY3VycmVudF0uLltwXSAgICAgICAgIDEgY29kZSBwb2ludCAoYywgYzIpIHdpdGggY2MKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gbW92ZSB0aGUgY29kZSB1bml0cyBpbiBiZXR3ZWVuIHVwIAorICAgICAgICAgICAgICAgIHI9cDsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVstLXJdPXNvdXJjZVstLWN1cnJlbnRdOworICAgICAgICAgICAgICAgIH0gd2hpbGUoYmFjayE9Y3VycmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gaW5zZXJ0IChjLCBjMikgCisgICAgICAgIHNvdXJjZVtjdXJyZW50XT1jOworICAgICAgICBpZihjMiE9MCkgeworICAgICAgICAgICAgc291cmNlWyhjdXJyZW50KzEpXT1jMjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB3ZSBrbm93IHRoZSBjYyBvZiB0aGUgbGFzdCBjb2RlIHBvaW50IAorICAgICAgICByZXR1cm4gdHJhaWxDQzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogbWVyZ2UgdHdvIFVURi0xNiBzdHJpbmcgcGFydHMgdG9nZXRoZXIKKyAgICAgKiB0byBjYW5vbmljYWxseSBvcmRlciAob3JkZXIgYnkgY29tYmluaW5nIGNsYXNzZXMpIHRoZWlyIGNvbmNhdGVuYXRpb24KKyAgICAgKgorICAgICAqIHRoZSB0d28gc3RyaW5ncyBtYXkgYWxyZWFkeSBiZSBhZGphY2VudCwgc28gdGhhdCB0aGUgbWVyZ2luZyBpcyBkb25lIAorICAgICAqIGluLXBsYWNlIGlmIHRoZSB0d28gc3RyaW5ncyBhcmUgbm90IGFkamFjZW50LCB0aGVuIHRoZSBidWZmZXIgaG9sZGluZyB0aGUKKyAgICAgKiBmaXJzdCBvbmUgbXVzdCBiZSBsYXJnZSBlbm91Z2gKKyAgICAgKiB0aGUgc2Vjb25kIHN0cmluZyBtYXkgb3IgbWF5IG5vdCBiZSBvcmRlcmVkIGluIGl0c2VsZgorICAgICAqCisgICAgICogYmVmb3JlOiBbc3RhcnRdLi5bY3VycmVudF0gaXMgYWxyZWFkeSBvcmRlcmVkLCBhbmQKKyAgICAgKiAgICAgICAgIFtuZXh0XS4uW2xpbWl0XSAgICBtYXkgYmUgb3JkZXJlZCBpbiBpdHNlbGYsIGJ1dAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBub3QgaW4gcmVsYXRpb24gdG8gW3N0YXJ0Li5jdXJyZW50WworICAgICAqIGFmdGVyOiBbc3RhcnQuLmN1cnJlbnQrKGxpbWl0LW5leHQpWyBpcyBvcmRlcmVkCisgICAgICoKKyAgICAgKiB0aGUgYWxnb3JpdGhtIGlzIGEgc2ltcGxlIGJ1YmJsZS1zb3J0IHRoYXQgdGFrZXMgdGhlIGNoYXJhY3RlcnMgZnJvbSAKKyAgICAgKiBzcmNbbmV4dCsrXSBhbmQgaW5zZXJ0cyB0aGVtIGluIGNvcnJlY3QgY29tYmluaW5nIGNsYXNzIG9yZGVyIGludG8gdGhlIAorICAgICAqIHByZWNlZGluZyBwYXJ0IG9mIHRoZSBzdHJpbmcKKyAgICAgKgorICAgICAqIHNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG11Y2ggbGVzcyBvZnRlbiB0aGFuIHRoZSBzaW5nbGUtY29kZSBwb2ludAorICAgICAqIGluc2VydE9yZGVyZWQoKSwgaXQganVzdCB1c2VzIHRoYXQgZm9yIGVhc2llciBtYWludGVuYW5jZQorICAgICAqCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIG1lcmdlT3JkZXJlZChjaGFyW10gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc09yZGVyZWQpIHsKKyAgICAgICAgICAgIGludCByOworICAgICAgICAgICAgaW50IC8qdW5zaWduZWQgYnl0ZSovIGNjLCB0cmFpbENDPTA7CisgICAgICAgICAgICBib29sZWFuIGFkamFjZW50OworICAgICAgICAKKyAgICAgICAgICAgIGFkamFjZW50PSBjdXJyZW50PT1uZXh0OworICAgICAgICAgICAgTmV4dENDQXJncyBuY0FyZ3MgPSBuZXcgTmV4dENDQXJncygpOworICAgICAgICAgICAgbmNBcmdzLnNvdXJjZSA9IGRhdGE7CisgICAgICAgICAgICBuY0FyZ3MubmV4dCAgID0gbmV4dDsKKyAgICAgICAgICAgIG5jQXJncy5saW1pdCAgPSBsaW1pdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoc3RhcnQhPWN1cnJlbnQgfHwgIWlzT3JkZXJlZCkgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZShuY0FyZ3MubmV4dDxuY0FyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2M9Z2V0TmV4dENDKG5jQXJncyk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNjPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb2VzIG5vdCBidWJibGUgYmFjayAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFkamFjZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudD1uY0FyZ3MubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtjdXJyZW50KytdPW5jQXJncy5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5jQXJncy5jMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2N1cnJlbnQrK109bmNBcmdzLmMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzT3JkZXJlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1jdXJyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcj1jdXJyZW50KyhuY0FyZ3MuYzI9PTAgPyAxIDogMik7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbENDPWluc2VydE9yZGVyZWQoc291cmNlLHN0YXJ0LCBjdXJyZW50LCByLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZ3MuYywgbmNBcmdzLmMyLCBjYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50PXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYobmNBcmdzLm5leHQ9PW5jQXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgIC8vIHdlIGtub3cgdGhlIGNjIG9mIHRoZSBsYXN0IGNvZGUgcG9pbnQgCisgICAgICAgICAgICAgICAgcmV0dXJuIHRyYWlsQ0M7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKCFhZGphY2VudCkgeworICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBzZWNvbmQgc3RyaW5nIHBhcnQgCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVtjdXJyZW50KytdPWRhdGFbbmNBcmdzLm5leHQrK107CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUobmNBcmdzLm5leHQhPW5jQXJncy5saW1pdCk7CisgICAgICAgICAgICAgICAgICAgIG5jQXJncy5saW1pdD1jdXJyZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQcmV2QXJncyBwcmV2QXJncyA9IG5ldyBQcmV2QXJncygpOworICAgICAgICAgICAgICAgIHByZXZBcmdzLnNyYyAgID0gZGF0YTsKKyAgICAgICAgICAgICAgICBwcmV2QXJncy5zdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHByZXZBcmdzLmN1cnJlbnQgPSAgbmNBcmdzLmxpbWl0OworICAgICAgICAgICAgICAgIHJldHVybiBnZXRQcmV2Q0MocHJldkFyZ3MpOworICAgICAgICAgICAgfQorCisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkIGJ5dGUqLyBtZXJnZU9yZGVyZWQoY2hhcltdIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbmV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBsaW1pdCkgeworICAgICAgICByZXR1cm4gbWVyZ2VPcmRlcmVkKHNvdXJjZSxzdGFydCxjdXJyZW50LGRhdGEsbmV4dCxsaW1pdCx0cnVlKTsKKyAgICB9IAorCisgICAgCisgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY2hlY2tGQ0QoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworCisgICAgICAgIGNoYXIgZmNkMTYsYyxjMjsKKyAgICAgICAgaW50IHByZXZDQz0wLCBjYzsKKyAgICAgICAgaW50IGkgPXNyY1N0YXJ0LCBsZW5ndGggPSBzcmNMaW1pdDsKKyAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICBpZihpPT1sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChjPXNyY1tpKytdKTxNSU5fV0lUSF9MRUFEX0NDKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KS1jOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoZmNkMTY9Z2V0RkNEMTYoYykpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgb25lIGFib3ZlLW1pbmltdW0sIHJlbGV2YW50IGNvZGUgdW5pdCAKKyAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgIC8vIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIGZjZDE2IAorICAgICAgICAgICAgICAgIGlmKGkhPWxlbmd0aCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICBmY2QxNj1nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZDE2LCBjMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgZmNkMTY9MDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgcHJldkNDPTA7IC8qIGV4Y2x1ZGVkOiBmY2QxNj09MCAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwcmV2Q0MgaGFzIHZhbHVlcyBmcm9tIHRoZSBmb2xsb3dpbmcgcmFuZ2VzOgorICAgICAgICAgICAgLy8gMC4uMHhmZiAtdGhlIHByZXZpb3VzIHRyYWlsIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgLy8gPDAgICAgICAtdGhlIG5lZ2F0aXZlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQ7CisgICAgICAgICAgICAvLyAgICAgICAgICB0aGF0IGNvZGUgdW5pdCB3YXMgPE1JTl9XSVRIX0xFQURfQ0MgYW5kIGl0cyBnZXRGQ0QxNigpCisgICAgICAgICAgICAvLyAgICAgICAgICB3YXMgZGVmZXJyZWQgc28gdGhhdCBhdmVyYWdlIHRleHQgaXMgY2hlY2tlZCBmYXN0ZXIKKyAgICAgICAgICAgIC8vCisgICAgCisgICAgICAgICAgICAvLyBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyIAorICAgICAgICAgICAgY2M9KGludCkoZmNkMTY+PjgpOworICAgICAgICAgICAgaWYoY2MhPTApIHsKKyAgICAgICAgICAgICAgICBpZihwcmV2Q0M8MCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHdhcyA8X05PUk1fTUlOX1dJVEhfTEVBRF9DQywgCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZ2V0IGl0cyB0cmFpbCBjYyAKKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgaWYoIW54X2NvbnRhaW5zKG54LCAoaW50KS1wcmV2Q0MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCkoRkNEVHJpZUltcGwuZmNkVHJpZS5nZXRCTVBWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKS1wcmV2Q0MpJjB4ZmYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7IAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7IC8qIGV4Y2x1ZGVkOiBmY2QxNj09MCAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZXZDQz0oaW50KShmY2QxNiYweGZmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbk5vTWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcWNNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KXsKKworICAgICAgICBpbnQgY2NPclFDTWFzazsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgICAgIGNoYXIgY2MsIHByZXZDQzsKKyAgICAgICAgbG9uZyBxY05vcm0zMjsKKyAgICAgICAgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgQ29tcG9zZVBhcnRBcmdzIGFyZ3MgPSBuZXcgQ29tcG9zZVBhcnRBcmdzKCk7CisgICAgICAgIGNoYXJbXSBidWZmZXIgOworICAgICAgICBpbnQgc3RhcnQgPSBzcmNTdGFydDsKKyAgICAgICAgCisgICAgICAgIGlmKCFpc0RhdGFMb2FkZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLk1BWUJFOworICAgICAgICB9CisgICAgICAgIC8vIGluaXRpYWxpemUgCisgICAgICAgIGNjT3JRQ01hc2s9Q0NfTUFTS3xxY01hc2s7CisgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLllFUzsKKyAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQ9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChjPXNyY1tzcmNTdGFydCsrXSk+PW1pbk5vTWF5YmUgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCggbm9ybTMyPWdldE5vcm0zMihjKSkgJiBjY09yUUNNYXNrKSE9MCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgCisgICAgICAgICAgICBpZihpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8vIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAKKyAgICAgICAgICAgICAgICBpZihzcmNTdGFydCE9c3JjTGltaXQmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzcmNTdGFydF0pKSB7CisgICAgICAgICAgICAgICAgICAgICsrc3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj0wOworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgIG5vcm0zMj0wOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgdGhlIGNvbWJpbmluZyBvcmRlciAKKyAgICAgICAgICAgIGNjPShjaGFyKSgobm9ybTMyPj5DQ19TSElGVCkmMHhGRik7CisgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplci5OTzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZXZDQz1jYzsKKyAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciAibm8iIG9yICJtYXliZSIgcXVpY2sgY2hlY2sgZmxhZ3MgCisgICAgICAgICAgICBxY05vcm0zMiA9IG5vcm0zMiAmIHFjTWFzazsKKyAgICAgICAgICAgIGlmKChxY05vcm0zMiYgUUNfQU5ZX05PKT49MSkgeworICAgICAgICAgICAgICAgIHJlc3VsdD0gTm9ybWFsaXplci5OTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSBpZihxY05vcm0zMiE9MCkgeworICAgICAgICAgICAgICAgIC8vICJtYXliZSIgY2FuIG9ubHkgb2NjdXIgZm9yIE5GQyBhbmQgTkZLQyAKKyAgICAgICAgICAgICAgICBpZihhbGxvd01heWJlKXsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuTUFZQkU7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBhIHNlY3Rpb24gYXJvdW5kIGhlcmUgdG8gc2VlIGlmIGl0IGlzIHJlYWxseSAKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplZCBvciBub3QgCisgICAgICAgICAgICAgICAgICAgIGludCBwcmV2U3RhcnRlcjsKKyAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZGVjb21wUUNNYXNrPShxY01hc2s8PDIpJjB4ZjsgLy8gZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrIAorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBwcmV2aW91cyBzdGFydGVyIAorCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCBwcmV2U3RhcnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IGNoYXJhY3RlciAKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9c3JjU3RhcnQtMTsgCisgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoc3JjW3ByZXZTdGFydGVyXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNhZmUgYmVjYXVzZSB1bnBhaXJlZCBzdXJyb2dhdGVzIGRvIG5vdCByZXN1bHQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiAibWF5YmUiCisgICAgICAgICAgICAgICAgICAgICAgICAtLXByZXZTdGFydGVyOyAKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPWZpbmRQcmV2aW91c1N0YXJ0ZXIoc3JjLCBzdGFydCwgcHJldlN0YXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKW1pbk5vTWF5YmUpOworICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBuZXh0IHRydWUgc3RhcnRlciBpbiBbc3JjLi5saW1pdFsgLSBtb2RpZmllcyAKKyAgICAgICAgICAgICAgICAgICAgLy8gc3JjIHRvIHBvaW50IHRvIHRoZSBuZXh0IHN0YXJ0ZXIgCisgICAgICAgICAgICAgICAgICAgIHNyY1N0YXJ0PWZpbmROZXh0U3RhcnRlcihzcmMsc3JjU3RhcnQsIHNyY0xpbWl0LCBxY01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wUUNNYXNrLChjaGFyKSBtaW5Ob01heWJlKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vc2V0IHRoZSBhcmdzIGZvciBjb21wb3NlIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgYXJncy5wcmV2Q0MgPSBwcmV2Q0M7CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBkZWNvbXBvc2UgYW5kIHJlY29tcG9zZSBbcHJldlN0YXJ0ZXIuLnNyY1sgCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGNvbXBvc2VQYXJ0KGFyZ3MscHJldlN0YXJ0ZXIsc3JjLHNyY1N0YXJ0LHNyY0xpbWl0LG9wdGlvbnMsbngpOworICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoZSBub3JtYWxpemVkIHZlcnNpb24gd2l0aCB0aGUgb3JpZ2luYWwgCisgICAgICAgICAgICAgICAgICAgIGlmKDAhPXN0ckNvbXBhcmUoYnVmZmVyLDAsYXJncy5sZW5ndGgsc3JjLHByZXZTdGFydGVyLHNyY1N0YXJ0LCBmYWxzZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLk5POyAvLyBub3JtYWxpemF0aW9uIGRpZmZlcnMgCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBhZnRlciB0aGUgbmV4dCBzdGFydGVyIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gCisgCisgICAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCisgICAgLy8gbWFrZSBORkQgJiBORktEIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbihpbnQgYyAvKlVURi0zMiovICwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgCisgICAgICAgIGlmKCAoVU5TSUdORURfSU5UX01BU0sgJiBjKTw9MHgxMGZmZmYpIHsKKyAgICAgICAgICAgIGxvbmcgLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAgICAgICAgIGludCBxY01hc2s7CisgICAgICAgICAgICBpbnQgbWluTm9NYXliZTsKKyAgICAgICAgICAgIGludCBsZW5ndGg7CisgICAgCisgICAgICAgICAgICAvLyBpbml0aWFsaXplIAorICAgICAgICAgICAgaWYoIWNvbXBhdCkgeworICAgICAgICAgICAgICAgIG1pbk5vTWF5YmU9KGludClpbmRleGVzW0lOREVYX01JTl9ORkRfTk9fTUFZQkVdOworICAgICAgICAgICAgICAgIHFjTWFzaz1RQ19ORkQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1pbk5vTWF5YmU9KGludClpbmRleGVzW0lOREVYX01JTl9ORktEX05PX01BWUJFXTsKKyAgICAgICAgICAgICAgICBxY01hc2s9UUNfTkZLRDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKGM8bWluTm9NYXliZSkgeworICAgICAgICAgICAgICAgIC8vIHRyaXZpYWwgY2FzZSAKKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPShjaGFyKWM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGRhdGEgbG9va3VwICovCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICAgICAgaWYoKG5vcm0zMiZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgLyogc2ltcGxlIGNhc2U6IG5vIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5Pj0yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPVVURjE2LmdldExlYWRTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPVVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8qIEhhbmd1bCBzeWxsYWJsZTogZGVjb21wb3NlIGFsZ29yaXRobWljYWxseSAqLworICAgICAgICAgICAgICAgIGNoYXIgYzI7CisgICAgCisgICAgICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisgICAgCisgICAgICAgICAgICAgICAgYzI9KGNoYXIpKGMlSkFNT19UX0NPVU5UKTsKKyAgICAgICAgICAgICAgICBjLz1KQU1PX1RfQ09VTlQ7CisgICAgICAgICAgICAgICAgaWYoYzI+MCkgeworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMl09KGNoYXIpKEpBTU9fVF9CQVNFK2MyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5Pj0yKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMV09KGNoYXIpKEpBTU9fVl9CQVNFK2MlSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFswXT0oY2hhcikoSkFNT19MX0JBU0UrYy9KQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSAKKyAgICAgICAgICAgICAgICAgKiBkYXRhIAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGludCBwLCBsaW1pdDsKKyAgICAgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3MgPSBuZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICAgICAgICAgIC8qIHRoZSBpbmRleCBpbnRvIGV4dHJhIGRhdGEgYXJyYXkqLyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcD1kZWNvbXBvc2Uobm9ybTMyLCBxY01hc2ssIGFyZ3MpOworICAgICAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPD1kZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGltaXQ9cCthcmdzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0U3RhcnQrK109ZXh0cmFEYXRhW3ArK107CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUocDxsaW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGVjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQsaW50W10gb3V0VHJhaWxDQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclszXTsKKyAgICAgICAgaW50IHByZXZTcmM7CisgICAgICAgIGxvbmcgbm9ybTMyOworICAgICAgICBpbnQgY2NPclFDTWFzaywgcWNNYXNrOworICAgICAgICBpbnQgcmVvcmRlclN0YXJ0SW5kZXgsIGxlbmd0aDsKKyAgICAgICAgY2hhciBjLCBjMiwgbWluTm9NYXliZTsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCBieXRlKi8gY2MsIHByZXZDQywgdHJhaWxDQzsKKyAgICAgICAgY2hhcltdIHA7CisgICAgICAgIGludCBwU3RhcnQ7CisgICAgICAgIGludCBkZXN0SW5kZXggPSBkZXN0U3RhcnQ7CisgICAgICAgIGludCBzcmNJbmRleCA9IHNyY1N0YXJ0OworICAgICAgICBpZighY29tcGF0KSB7CisgICAgICAgICAgICBtaW5Ob01heWJlPShjaGFyKWluZGV4ZXNbSU5ERVhfTUlOX05GRF9OT19NQVlCRV07CisgICAgICAgICAgICBxY01hc2s9UUNfTkZEOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORktEX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORktEOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGluaXRpYWxpemUgKi8KKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9MDsKKyAgICAgICAgcHJldkNDPTA7CisgICAgICAgIG5vcm0zMj0wOworICAgICAgICBjPTA7CisgICAgICAgIHBTdGFydD0wOworICAgICAgICAKKyAgICAgICAgY2M9dHJhaWxDQz0tMTsvL2luaXRpYWxpemUgdG8gYm9ndXMgdmFsdWUKKyAgICAgICAgCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgLyogY291bnQgY29kZSB1bml0cyBiZWxvdyB0aGUgbWluaW11bSBvciB3aXRoIGlycmVsZXZhbnQgZGF0YSBmb3IgCisgICAgICAgICAgICAgKiB0aGUgcXVpY2sgY2hlY2sgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHByZXZTcmM9c3JjSW5kZXg7CisKKyAgICAgICAgICAgIHdoaWxlKHNyY0luZGV4IT1zcmNMaW1pdCAmJigoYz1zcmNbc3JjSW5kZXhdKTxtaW5Ob01heWJlIHx8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobm9ybTMyPWdldE5vcm0zMihjKSkmY2NPclFDTWFzayk9PTApKXsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4IT1wcmV2U3JjKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY0luZGV4LXByZXZTcmMpOworICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYyBhbHJlYWR5IGNvbnRhaW5zICpzcmMgYW5kIG5vcm0zMiBpcyBzZXQgZm9yIGl0LCBpbmNyZW1lbnQgc3JjKi8KKyAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgCisgICAgICAgICAgICAvKiBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0ICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogZ2VuZXJhbGx5LCBzZXQgcCBhbmQgbGVuZ3RoIHRvIHRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZworICAgICAgICAgICAgICogaW4gc2ltcGxlIGNhc2VzLCBwPT1OVUxMIGFuZCAoYywgYzIpIHdpbGwgaG9sZCB0aGUgbGVuZ3RoIGNvZGUgCisgICAgICAgICAgICAgKiB1bml0cyB0byBhcHBlbmQgaW4gYWxsIGNhc2VzLCBzZXQgY2MgdG8gdGhlIGxlYWQgYW5kIHRyYWlsQ0MgdG8gCisgICAgICAgICAgICAgKiB0aGUgdHJhaWwgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogdGhlIGZvbGxvd2luZyBtZXJnZS1zb3J0IG9mIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpbnRvIHRoZSAKKyAgICAgICAgICAgICAqIHByZWNlZGluZywgY2Fub25pY2FsbHkgb3JkZXJlZCByZXN1bHQgdGV4dCB3aWxsIHVzZSB0aGUgCisgICAgICAgICAgICAgKiBvcHRpbWl6ZWQgaW5zZXJ0T3JkZXJlZCgpCisgICAgICAgICAgICAgKiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBzaW5nbGUgY29kZSBwb2ludCB0byBwcm9jZXNzOworICAgICAgICAgICAgICogdGhpcyBpcyBpbmRpY2F0ZWQgd2l0aCBwPT1OVUxMLCBhbmQgKGMsIGMyKSBpcyB0aGUgY2hhcmFjdGVyIHRvIAorICAgICAgICAgICAgICogaW5zZXJ0CisgICAgICAgICAgICAgKiAoKGMsIDApIGZvciBhIEJNUCBjaGFyYWN0ZXIgYW5kIChsZWFkIHN1cnJvZ2F0ZSwgdHJhaWwgc3Vycm9nYXRlKQorICAgICAgICAgICAgICogZm9yIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIpCisgICAgICAgICAgICAgKiBvdGhlcndpc2UsIHBbbGVuZ3RoXSBpcyBtZXJnZWQgaW4gd2l0aCBfbWVyZ2VPcmRlcmVkKCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmd1bCBzeWxsYWJsZTogZGVjb21wb3NlIGFsZ29yaXRobWljYWxseSAKKyAgICAgICAgICAgICAgICAgICAgcD1idWZmZXI7CisgICAgICAgICAgICAgICAgICAgIHBTdGFydD0wOworICAgICAgICAgICAgICAgICAgICBjYz10cmFpbENDPTA7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGMtPUhBTkdVTF9CQVNFOworICAgIAorICAgICAgICAgICAgICAgICAgICBjMj0oY2hhcikoYyVKQU1PX1RfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICBjLz1KQU1PX1RfQ09VTlQ7CisgICAgICAgICAgICAgICAgICAgIGlmKGMyPjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclsyXT0oY2hhcikoSkFNT19UX0JBU0UrYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTM7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICBidWZmZXJbMV09KGNoYXIpKEpBTU9fVl9CQVNFK2MlSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyWzBdPShjaGFyKShKQU1PX0xfQkFTRStjL0pBTU9fVl9DT1VOVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgCisgICAgICAgICAgICAgICAgICAgIGlmKHNyY0luZGV4IT1zcmNMaW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY0luZGV4XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vcm0zMj0wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgZGVjb21wb3NpdGlvbiBhbmQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGV4Y2x1ZGVkOiBub3JtMzI9PTAgKi8KKyAgICAgICAgICAgICAgICAgICAgY2M9dHJhaWxDQz0wOworICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChub3JtMzImcWNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjIGRvZXMgbm90IGRlY29tcG9zZSAqLworICAgICAgICAgICAgICAgICAgICBjYz10cmFpbENDPShpbnQpKChVTlNJR05FRF9CWVRFX01BU0spICYgKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgICAgICAgICBwU3RhcnQ9LTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmcgPSBuZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICAgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICogZXh0cmEgZGF0YSAKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHBTdGFydD1kZWNvbXBvc2Uobm9ybTMyLCBxY01hc2ssIGFyZyk7CisgICAgICAgICAgICAgICAgICAgIHA9ZXh0cmFEYXRhOworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9YXJnLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgY2M9YXJnLmNjOworICAgICAgICAgICAgICAgICAgICB0cmFpbENDPWFyZy50cmFpbENDOworICAgICAgICAgICAgICAgICAgICBpZihsZW5ndGg9PTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoIGEgc2luZ2xlIGNvZGUgdW5pdCBmcm9tIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGM9cFtwU3RhcnRdOworICAgICAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBTdGFydD0tMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGFwcGVuZCB0aGUgZGVjb21wb3NpdGlvbiB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLCBhc3N1bWUgCisgICAgICAgICAgICAgKiBsZW5ndGg+MCAKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVvcmRlclNwbGl0PWRlc3RJbmRleDsKKyAgICAgICAgICAgICAgICBpZihwPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoOiBzaW5nbGUgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIChjLCBjMikgaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUgcHJlY2VkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgdGV4dCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbENDPWluc2VydE9yZGVyZWQoZGVzdCxyZW9yZGVyU3RhcnRJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlb3JkZXJTcGxpdCwgZGVzdEluZGV4LCBjLCBjMiwgY2MpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBnZW5lcmFsOiBtdWx0aXBsZSBjb2RlIHBvaW50cyAob3JkZXJlZCBieSB0aGVtc2VsdmVzKSAKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSBkZWNvbXBvc2l0aW9uIAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoY2MhPTAgJiYgY2M8cHJldkNDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgZGVjb21wb3NpdGlvbiBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICogIHByZWNlZGluZyB0ZXh0IAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9bWVyZ2VPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LHAsIHBTdGFydCxwU3RhcnQrbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtwU3RhcnQrK107CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tbGVuZ3RoPjApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAvKiBrZWVwIGluY3JlbWVudGluZyB0aGUgZGVzdEluZGV4IGZvciBwcmVmbGlnaHRpbmcgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHByZXZDQz10cmFpbENDOworICAgICAgICAgICAgaWYocHJldkNDPT0wKSB7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIG91dFRyYWlsQ0NbMF09cHJldkNDOworCisgICAgICAgIHJldHVybiBkZXN0SW5kZXggLSBkZXN0U3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qIG1ha2UgTkZDICYgTkZLQyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBOZXh0Q29tYmluaW5nQXJnc3sKKyAgICAgICAgY2hhcltdIHNvdXJjZTsKKyAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAvL2ludCBsaW1pdDsKKyAgICAgICAgY2hhciBjOworICAgICAgICBjaGFyIGMyOworICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY29tYmluaW5nSW5kZXg7CisgICAgICAgIGNoYXIgLyp1bnNpZ25lZCBieXRlKi8gY2M7CisgICAgfQorICAgIAorICAgIC8qIGdldCB0aGUgY29tcG9zaXRpb24gcHJvcGVydGllcyBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCovICAgIGdldE5leHRDb21iaW5pbmcoTmV4dENvbWJpbmluZ0FyZ3MgYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsgCisgICAgICAgIGludCBjb21iaW5lRmxhZ3M7CisgICAgICAgIC8qIGdldCBwcm9wZXJ0aWVzICovCisgICAgICAgIGFyZ3MuYz1hcmdzLnNvdXJjZVthcmdzLnN0YXJ0KytdOworICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGFyZ3MuYyk7CisgICAgICAgIAorICAgICAgICAvKiBwcmVzZXQgb3V0cHV0IHZhbHVlcyBmb3IgbW9zdCBjaGFyYWN0ZXJzICovCisgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD0wOworICAgICAgICBhcmdzLmNjPTA7CisgICAgICAgIAorICAgICAgICBpZigobm9ybTMyJihDQ19NQVNLfENPTUJJTkVTX0FOWSkpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogc2V0IGNjIGV0Yy4gYmVsb3cgKi8KKyAgICAgICAgICAgIH0gZWxzZSBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogYSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gY29udGFpbmVkIEphbW9zICovCisgICAgICAgICAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD0oaW50KSgoVU5TSUdORURfSU5UX01BU0spJigweGZmZjB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3JtMzI+PkVYVFJBX1NISUZUKSkpOworICAgICAgICAgICAgICAgIHJldHVybiAoaW50KShub3JtMzImQ09NQklORVNfQU5ZKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydCE9bGltaXQgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShhcmdzLmMyPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVthcmdzLnN0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKythcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBhcmdzLmMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGFyZ3MuYywgYXJncy5jMikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgYXJncy5jYz0gKGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweGZmKTsKKyAgICAgICAgCisgICAgICAgICAgICBjb21iaW5lRmxhZ3M9KGludCkobm9ybTMyJkNPTUJJTkVTX0FOWSk7CisgICAgICAgICAgICBpZihjb21iaW5lRmxhZ3MhPTApIHsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRFeHRyYURhdGFJbmRleChub3JtMzIpOworICAgICAgICAgICAgICAgIGFyZ3MuY29tYmluaW5nSW5kZXg9aW5kZXg+MCA/IGV4dHJhRGF0YVsoaW5kZXgtMSldIDowOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVGbGFnczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGdpdmVuIGEgY29tcG9zaXRpb24tcmVzdWx0IHN0YXJ0ZXIgKGMsIGMyKSAtIHdoaWNoIG1lYW5zIGl0cyBjYz09MCwKKyAgICAgKiBpdCBjb21iaW5lcyBmb3J3YXJkLCBpdCBoYXMgZXh0cmEgZGF0YSwgaXRzIG5vcm0zMiE9MCwKKyAgICAgKiBpdCBpcyBub3QgYSBIYW5ndWwgb3IgSmFtbywKKyAgICAgKiBnZXQganVzdCBpdHMgY29tYmluZUZ3ZEluZGV4CisgICAgICoKKyAgICAgKiBub3JtMzIoYykgaXMgc3BlY2lhbCBpZiBhbmQgb25seSBpZiBjMiE9MAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludC8qdW5zaWduZWQqLyBnZXRDb21iaW5pbmdJbmRleEZyb21TdGFydGVyKGNoYXIgYyxjaGFyIGMyKXsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7CisgICAgCisgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBjMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGV4dHJhRGF0YVsoZ2V0RXh0cmFEYXRhSW5kZXgobm9ybTMyKS0xKV07CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogRmluZCB0aGUgcmVjb21wb3NpdGlvbiByZXN1bHQgZm9yCisgICAgICogYSBmb3J3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgKiAoc3BlY2lmaWVkIHdpdGggYSBwb2ludGVyIHRvIGl0cyBwYXJ0IG9mIHRoZSBjb21iaW5pbmdUYWJsZVtdKQorICAgICAqIGFuZCBhIGJhY2t3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgKiAoc3BlY2lmaWVkIHdpdGggaXRzIGNvbWJpbmVCYWNrSW5kZXgpLgorICAgICAqCisgICAgICogSWYgdGhlc2UgdHdvIGNoYXJhY3RlcnMgY29tYmluZSwgdGhlbiBzZXQgKHZhbHVlLCB2YWx1ZTIpCisgICAgICogd2l0aCB0aGUgY29kZSB1bml0KHMpIG9mIHRoZSBjb21wb3NpdGlvbiBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBSZXR1cm4gdmFsdWU6CisgICAgICogMCAgICBkbyBub3QgY29tYmluZQorICAgICAqIDEgICAgY29tYmluZQorICAgICAqID4xICAgY29tYmluZSwgYW5kIHRoZSBjb21wb3NpdGlvbiBpcyBhIGZvcndhcmQtY29tYmluaW5nIHN0YXJ0ZXIKKyAgICAgKgorICAgICAqIFNlZSB1bm9ybWltcC5oIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb21wb3NpdGlvbiB0YWJsZSBmb3JtYXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCovIGNvbWJpbmUoY2hhcltddGFibGUsaW50IHRhYmxlU3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2luZ2VkKi8gY29tYmluZUJhY2tJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG91dFZhbHVlcykgeworICAgICAgICBpbnQvKnVuc2lnbmVkKi8ga2V5OworICAgICAgICBpbnQgdmFsdWUsdmFsdWUyOworICAgICAgICAKKyAgICAgICAgaWYob3V0VmFsdWVzLmxlbmd0aDwyKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyogc2VhcmNoIGluIHRoZSBzdGFydGVyJ3MgY29tcG9zaXRpb24gdGFibGUgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBrZXk9dGFibGVbdGFibGVTdGFydCsrXTsKKyAgICAgICAgICAgIGlmKGtleT49Y29tYmluZUJhY2tJbmRleCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFibGVTdGFydCs9ICgodGFibGVbdGFibGVTdGFydF0mMHg4MDAwKSAhPSAwKT8gMiA6IDE7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogbWFzayBvZmYgYml0IDE1LCB0aGUgbGFzdC1lbnRyeS1pbi10aGUtbGlzdCBmbGFnICovCisgICAgICAgIGlmKChrZXkmMHg3ZmZmKT09Y29tYmluZUJhY2tJbmRleCkgeworICAgICAgICAgICAgLyogZm91bmQhIGNvbWJpbmUhICovCisgICAgICAgICAgICB2YWx1ZT10YWJsZVt0YWJsZVN0YXJ0XTsKKyAgICAKKyAgICAgICAgICAgIC8qIGlzIHRoZSBjb21wb3NpdGlvbiBhIHN0YXJ0ZXIgdGhhdCBjb21iaW5lcyBmb3J3YXJkPyAqLworICAgICAgICAgICAga2V5PShpbnQpKChVTlNJR05FRF9JTlRfTUFTSykmKCh2YWx1ZSYweDIwMDApKzEpKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY29tcG9zaXRpb24gcmVzdWx0IGNvZGUgcG9pbnQgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIAorICAgICAgICAgICAgICogcmVzdWx0IHZhbHVlIAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZigodmFsdWUmMHg4MDAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYoKHZhbHVlJjB4NDAwMCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvKiBzdXJyb2dhdGUgcGFpciBjb21wb3NpdGlvbiByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgdmFsdWU9KGludCkoKFVOU0lHTkVEX0lOVF9NQVNLKSYoKHZhbHVlJjB4M2ZmKXwweGQ4MDApKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUyPXRhYmxlW3RhYmxlU3RhcnQrMV07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQk1QIGNvbXBvc2l0aW9uIHJlc3VsdCBVKzIwMDAuLlUrZmZmZiAqLworICAgICAgICAgICAgICAgICAgICB2YWx1ZT10YWJsZVt0YWJsZVN0YXJ0KzFdOworICAgICAgICAgICAgICAgICAgICB2YWx1ZTI9MDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIEJNUCBjb21wb3NpdGlvbiByZXN1bHQgVSswMDAwLi5VKzFmZmYgKi8KKyAgICAgICAgICAgICAgICB2YWx1ZSY9MHgxZmZmOworICAgICAgICAgICAgICAgIHZhbHVlMj0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0VmFsdWVzWzBdPXZhbHVlOworICAgICAgICAgICAgb3V0VmFsdWVzWzFdPXZhbHVlMjsgICAgCisgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogbm90IGZvdW5kICovCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBSZWNvbXBvc2VBcmdzeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBsaW1pdDsKKyAgICB9CisgICAgLyoKKyAgICAgKiByZWNvbXBvc2UgdGhlIGNoYXJhY3RlcnMgaW4gW3AuLmxpbWl0WworICAgICAqICh3aGljaCBpcyBpbiBORkQgLSBkZWNvbXBvc2VkIGFuZCBjYW5vbmljYWxseSBvcmRlcmVkKSwKKyAgICAgKiBhZGp1c3QgbGltaXQsIGFuZCByZXR1cm4gdGhlIHRyYWlsaW5nIGNjCisgICAgICoKKyAgICAgKiBzaW5jZSBmb3IgTkZLQyB3ZSBtYXkgZ2V0IEphbW9zIGluIGRlY29tcG9zaXRpb25zLCB3ZSBuZWVkIHRvCisgICAgICogcmVjb21wb3NlIHRob3NlIHRvbworICAgICAqCisgICAgICogbm90ZSB0aGF0IHJlY29tcG9zaXRpb24gbmV2ZXIgbGVuZ3RoZW5zIHRoZSB0ZXh0OgorICAgICAqIGFueSBjaGFyYWN0ZXIgY29uc2lzdHMgb2YgZWl0aGVyIG9uZSBvciB0d28gY29kZSB1bml0czsKKyAgICAgKiBhIGNvbXBvc2l0aW9uIG1heSBjb250YWluIGF0IG1vc3Qgb25lIG1vcmUgY29kZSB1bml0IHRoYW4gdGhlIG9yaWdpbmFsIAorICAgICAqIHN0YXJ0ZXIsIHdoaWxlIHRoZSBjb21iaW5pbmcgbWFyayB0aGF0IGlzIHJlbW92ZWQgaGFzIGF0IGxlYXN0IG9uZSBjb2RlIAorICAgICAqIHVuaXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyLyp1bnNpZ25lZCBieXRlKi8gcmVjb21wb3NlKFJlY29tcG9zZUFyZ3MgYXJncywgaW50IG9wdGlvbnMsIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgaW50ICByZW1vdmUsIHEsIHI7CisgICAgICAgIGludCAvKnVuc2lnbmVkKi8gY29tYmluZUZsYWdzOworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIGNvbWJpbmVGd2RJbmRleCwgY29tYmluZUJhY2tJbmRleDsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyByZXN1bHQsIHZhbHVlPTAsIHZhbHVlMj0wOworICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gIHByZXZDQzsKKyAgICAgICAgYm9vbGVhbiBzdGFydGVySXNTdXBwbGVtZW50YXJ5OworICAgICAgICBpbnQgc3RhcnRlcjsKKyAgICAgICAgaW50W10gb3V0VmFsdWVzID0gbmV3IGludFsyXTsKKyAgICAgICAgc3RhcnRlcj0tMTsgICAgICAgICAgICAgICAgICAgLyogbm8gc3RhcnRlciAqLworICAgICAgICBjb21iaW5lRndkSW5kZXg9MDsgICAgICAgICAgICAvKiB3aWxsIG5vdCBiZSB1c2VkIHVudGlsIHN0YXJ0ZXIhPU5VTEwgKi8KKyAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsgLyogd2lsbCBub3QgYmUgdXNlZCB1bnRpbCBzdGFydGVyIT1OVUxMICovCisgICAgICAgIHByZXZDQz0wOworICAgICAgICAKKyAgICAgICAgTmV4dENvbWJpbmluZ0FyZ3MgbmNBcmcgPSBuZXcgTmV4dENvbWJpbmluZ0FyZ3MoKTsKKyAgICAgICAgbmNBcmcuc291cmNlICA9IGFyZ3Muc291cmNlOworICAgICAgICAKKyAgICAgICAgbmNBcmcuY2MgICAgICA9MDsKKyAgICAgICAgbmNBcmcuYzIgICAgICA9MDsgICAgCisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBuY0FyZy5zdGFydCA9IGFyZ3Muc3RhcnQ7CisgICAgICAgICAgICBjb21iaW5lRmxhZ3M9Z2V0TmV4dENvbWJpbmluZyhuY0FyZyxhcmdzLmxpbWl0LG54KTsKKyAgICAgICAgICAgIGNvbWJpbmVCYWNrSW5kZXg9bmNBcmcuY29tYmluaW5nSW5kZXg7CisgICAgICAgICAgICBhcmdzLnN0YXJ0ID0gbmNBcmcuc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKCgoY29tYmluZUZsYWdzJkNPTUJJTkVTX0JBQ0spIT0wKSAmJiBzdGFydGVyIT0tMSkgeworICAgICAgICAgICAgICAgIGlmKChjb21iaW5lQmFja0luZGV4JjB4ODAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYyBpcyBhIEphbW8gVi9ULCBzZWUgaWYgd2UgY2FuIGNvbXBvc2UgaXQgd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICAgICAqIHByZXZpb3VzIGNoYXJhY3RlciAKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIC8qIGZvciB0aGUgUFJJICMyOSBmaXgsIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gaW50ZXJ2ZW5pbmcgY29tYmluaW5nIG1hcmsgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmQkVGT1JFX1BSSV8yOSkhPTAgfHwgcHJldkNDPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmU9LTE7IC8qIE5VTEwgd2hpbGUgbm8gSGFuZ3VsIGNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lRmxhZ3M9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJnLmMyPWFyZ3Muc291cmNlW3N0YXJ0ZXJdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29tYmluZUJhY2tJbmRleD09MHhmZmYyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSmFtbyBWLCBjb21wb3NlIHdpdGggcHJldmlvdXMgSmFtbyBMIGFuZCBmb2xsb3dpbmcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSmFtbyBUIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJnLmMyPShjaGFyKShuY0FyZy5jMi1KQU1PX0xfQkFTRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmNBcmcuYzI8SkFNT19MX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT1hcmdzLnN0YXJ0LTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJnLmM9KGNoYXIpKEhBTkdVTF9CQVNFKyhuY0FyZy5jMipKQU1PX1ZfQ09VTlQrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuY0FyZy5jLUpBTU9fVl9CQVNFKSkqSkFNT19UX0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydCE9YXJncy5saW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5jQXJnLmMyPShjaGFyKShhcmdzLnNvdXJjZVthcmdzLnN0YXJ0XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUpBTU9fVF9CQVNFKSk8SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2FyZ3Muc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jKz1uY0FyZy5jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlIHJlc3VsdCBpcyBhbiBMViBzeWxsYWJsZSwgd2hpY2ggaXMgYSBzdGFydGVyICh1bmxpa2UgTFZUKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGbGFncz1DT01CSU5FU19GV0Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW54X2NvbnRhaW5zKG54LCBuY0FyZy5jKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcl09bmNBcmcuYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4Y2x1ZGVkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighaXNIYW5ndWxXaXRob3V0SmFtb1QobmNBcmcuYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWFyZ3Muc3RhcnQ7IC8qIHVuZG8gdGhlICsrYXJncy5zdGFydCBmcm9tIHJlYWRpbmcgdGhlIEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYyBpcyBtb2RpZmllZCBidXQgbm90IHVzZWQgYW55IG1vcmUgLS0gYz0qKHAtMSk7IC0tIHJlLXJlYWQgdGhlIEphbW8gVi9UICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmU9YXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIE5vcm1hbGx5LCB0aGUgZm9sbG93aW5nIGNhbiBub3Qgb2NjdXI6CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBTaW5jZSB0aGUgaW5wdXQgaXMgaW4gTkZELCB0aGVyZSBhcmUgbm8gSGFuZ3VsIExWIHN5bGxhYmxlcyB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIEphbW8gVCBjb3VsZCBjb21iaW5lIHdpdGguCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBBbGwgSmFtbyBUcyBhcmUgY29tYmluZWQgYWJvdmUgd2hlbiBoYW5kbGluZyBKYW1vIFZzLgorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEhvd2V2ZXIsIGJlZm9yZSB0aGUgUFJJICMyOSBmaXgsIHRoaXMgY2FuIG9jY3VyIGR1ZSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICogYW4gaW50ZXJ2ZW5pbmcgY29tYmluaW5nIG1hcmsgYmV0d2VlbiB0aGUgSGFuZ3VsIExWIGFuZCB0aGUgSmFtbyBULgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEphbW8gVCwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEhhbmd1bCB0aGF0IGRvZXMgbm90IGhhdmUgYSBKYW1vIFQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpc0hhbmd1bFdpdGhvdXRKYW1vVChuY0FyZy5jMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzIrPW5jQXJnLmMtSkFNT19UX0JBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFueF9jb250YWlucyhueCwgbmNBcmcuYzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmU9YXJncy5zdGFydC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcl09bmNBcmcuYzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVtb3ZlIT0tMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlbW92ZSB0aGUgSmFtbyhzKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHE9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI9YXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShyPGFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbcSsrXT1hcmdzLnNvdXJjZVtyKytdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnN0YXJ0PXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmxpbWl0PXE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9MDsgLyogYzIgaGVsZCAqc3RhcnRlciB0ZW1wb3JhcmlseSAqLworCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb21iaW5lRmxhZ3MhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG5vdCBzdGFydGVyPU5VTEwgYmVjYXVzZSB0aGUgY29tcG9zaXRpb24gaXMgYSBIYW5ndWwgTFYgc3lsbGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbmQgbWlnaHQgY29tYmluZSBvbmNlIG1vcmUgKGJ1dCBvbmx5IGJlZm9yZSB0aGUgUFJJICMyOSBmaXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkb25lPyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3Muc3RhcnQ9PWFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKXByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gaXMgYSBIYW5ndWwgTFYgc3lsbGFibGUgd2hpY2ggaXMgYSBzdGFydGVyIHRoYXQgY29tYmluZXMgZm9yd2FyZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGd2RJbmRleD0weGZmZjA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3ZSBjb21iaW5lZDsgY29udGludWUgd2l0aCBsb29raW5nIGZvciBjb21wb3NpdGlvbnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIG5vdzogY2M9PTAgYW5kIHRoZSBjb21iaW5pbmcgaW5kZXggZG9lcyBub3QgaW5jbHVkZSAKKyAgICAgICAgICAgICAgICAgICAgICogImZvcndhcmQiIC0+IHRoZSByZXN0IG9mIHRoZSBsb29wIGJvZHkgd2lsbCByZXNldCBzdGFydGVyCisgICAgICAgICAgICAgICAgICAgICAqIHRvIE5VTEw7IHRlY2huaWNhbGx5LCBhIGNvbXBvc2VkIEhhbmd1bCBzeWxsYWJsZSBpcyBhIAorICAgICAgICAgICAgICAgICAgICAgKiBzdGFydGVyLCBidXQgaXQgZG9lcyBub3QgY29tYmluZSBmb3J3YXJkIG5vdyB0aGF0IHdlIGhhdmUKKyAgICAgICAgICAgICAgICAgICAgICogY29uc3VtZWQgYWxsIGVsaWdpYmxlIEphbW9zOyBmb3IgSmFtbyBWL1QsIGNvbWJpbmVGbGFncyAKKyAgICAgICAgICAgICAgICAgICAgICogZG9lcyBub3QgY29udGFpbiBfTk9STV9DT01CSU5FU19GV0QKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKAorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgc3RhcnRlciBpcyBub3QgYSBIYW5ndWwgTFYgb3IgSmFtbyBWL1QgYW5kICovCisgICAgICAgICAgICAgICAgICAgICEoKGNvbWJpbmVGd2RJbmRleCYweDgwMDApIT0wKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tYmluaW5nIG1hcmsgaXMgbm90IGJsb2NrZWQgYW5kICovCisgICAgICAgICAgICAgICAgICAgICgob3B0aW9ucyZCRUZPUkVfUFJJXzI5KSE9MCA/CisgICAgICAgICAgICAgICAgICAgICAgICAocHJldkNDIT1uY0FyZy5jYyB8fCBwcmV2Q0M9PTApIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2Q0M8bmNBcmcuY2MgfHwgcHJldkNDPT0wKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIHN0YXJ0ZXIgYW5kIHRoZSBjb21iaW5pbmcgbWFyayAoYywgYzIpIGRvIGNvbWJpbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgMCE9KHJlc3VsdD1jb21iaW5lKGNvbWJpbmluZ1RhYmxlLGNvbWJpbmVGd2RJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lQmFja0luZGV4LCBvdXRWYWx1ZXMpKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gcmVzdWx0IGlzIG5vdCBleGNsdWRlZCAqLworICAgICAgICAgICAgICAgICAgICAhbnhfY29udGFpbnMobngsIChjaGFyKXZhbHVlLCAoY2hhcil2YWx1ZTIpCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlPW91dFZhbHVlc1swXTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUyPW91dFZhbHVlc1sxXTsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSB0aGUgc3RhcnRlciB3aXRoIHRoZSBjb21wb3NpdGlvbiwgcmVtb3ZlIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICogY29tYmluaW5nIG1hcmsgCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZW1vdmU9IG5jQXJnLmMyPT0wID8gYXJncy5zdGFydC0xIDogYXJncy5zdGFydC0yOyAvKiBpbmRleCB0byB0aGUgY29tYmluaW5nIG1hcmsgKi8KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSB0aGUgc3RhcnRlciB3aXRoIHRoZSBjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT0oY2hhcil2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3RhcnRlcklzU3VwcGxlbWVudGFyeSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYm90aCBhcmUgc3VwcGxlbWVudGFyeSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3N0YXJ0ZXIrMV09KGNoYXIpdmFsdWUyOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gaXMgc2hvcnRlciB0aGFuIHRoZSBzdGFydGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtb3ZlIHRoZSBpbnRlcm1lZGlhdGUgY2hhcmFjdGVycyBmb3J3YXJkIG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcT1zdGFydGVyKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1xKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUocjxyZW1vdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbcSsrXT1hcmdzLnNvdXJjZVtyKytdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHZhbHVlMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlIGNvbXBvc2l0aW9uIGlzIGxvbmdlciB0aGFuIHRoZSBzdGFydGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG1vdmUgdGhlIGludGVybWVkaWF0ZSBjaGFyYWN0ZXJzIGJhY2sgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVySXNTdXBwbGVtZW50YXJ5PXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZW1wb3JhcmlseSBpbmNyZW1lbnQgZm9yIHRoZSBsb29wIGJvdW5kYXJ5ICovCisgICAgICAgICAgICAgICAgICAgICAgICArK3N0YXJ0ZXI7IAorICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICByPSsrcmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnRlcjxxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbLS1yXT1hcmdzLnNvdXJjZVstLXFdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcl09KGNoYXIpdmFsdWUyOworICAgICAgICAgICAgICAgICAgICAgICAgLS1zdGFydGVyOyAvKiB1bmRvIHRoZSB0ZW1wb3JhcnkgaW5jcmVtZW50ICovCisgICAgICAgICAgICAgICAgICAgIC8qIH0gZWxzZSB7IGJvdGggYXJlIG9uIHRoZSBCTVAsIG5vdGhpbmcgbW9yZSB0byBkbyAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHJlbW92ZSB0aGUgY29tYmluaW5nIG1hcmsgYnkgbW92aW5nIHRoZSBmb2xsb3dpbmcgdGV4dCAKKyAgICAgICAgICAgICAgICAgICAgICogb3ZlciBpdCAqLworICAgICAgICAgICAgICAgICAgICBpZihyZW1vdmU8YXJncy5zdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICByPWFyZ3Muc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShyPGFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnN0YXJ0PXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MubGltaXQ9cTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIHByZXZDQyBiZWNhdXNlIHdlIHJlbW92ZWQgdGhlIGNvbWJpbmluZyBtYXJrICovCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGRvbmU/ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3Muc3RhcnQ9PWFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcilwcmV2Q0M7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogaXMgdGhlIGNvbXBvc2l0aW9uIGEgc3RhcnRlciB0aGF0IGNvbWJpbmVzIGZvcndhcmQ/ICovCisgICAgICAgICAgICAgICAgICAgIGlmKHJlc3VsdD4xKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGd2RJbmRleD1nZXRDb21iaW5pbmdJbmRleEZyb21TdGFydGVyKChjaGFyKXZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpdmFsdWUyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcj0tMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiB3ZSBjb21iaW5lZDsgY29udGludWUgd2l0aCBsb29raW5nIGZvciBjb21wb3NpdGlvbnMgKi8KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogbm8gY29tYmluYXRpb24gdGhpcyB0aW1lICovCisgICAgICAgICAgICBwcmV2Q0M9bmNBcmcuY2M7CisgICAgICAgICAgICBpZihhcmdzLnN0YXJ0PT1hcmdzLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKXByZXZDQzsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGlmIChjLCBjMikgZGlkIG5vdCBjb21iaW5lLCB0aGVuIGNoZWNrIGlmIGl0IGlzIGEgc3RhcnRlciAqLworICAgICAgICAgICAgaWYobmNBcmcuY2M9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBmb3VuZCBhIG5ldyBzdGFydGVyOyBjb21iaW5lRmxhZ3M9PTAgaWYgKGMsIGMyKSBpcyBleGNsdWRlZCAqLworICAgICAgICAgICAgICAgIGlmKChjb21iaW5lRmxhZ3MmQ09NQklORVNfRldEKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBpdCBtYXkgY29tYmluZSB3aXRoIHNvbWV0aGluZywgcHJlcGFyZSBmb3IgaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYobmNBcmcuYzI9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPWFyZ3Muc3RhcnQtMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPWFyZ3Muc3RhcnQtMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb21iaW5lRndkSW5kZXg9Y29tYmluZUJhY2tJbmRleDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBpdCB3aWxsIG5vdCBjb21iaW5lIHdpdGggYW55dGhpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RhcnRlcj0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoKG9wdGlvbnMmT1BUSU9OU19DT01QT1NFX0NPTlRJR1VPVVMpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogRkNDOiBubyBkaXNjb250aWd1b3VzIGNvbXBvc2l0aW9uczsgYW55IGludGVydmVuaW5nIGNoYXJhY3RlciBibG9ja3MgKi8KKyAgICAgICAgICAgICAgICBzdGFydGVyPS0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgCisgICAgLy8gZmluZCB0aGUgbGFzdCB0cnVlIHN0YXJ0ZXIgYmV0d2VlbiBzcmNbc3RhcnRdLi4uLnNyY1tjdXJyZW50XSBnb2luZyAKKyAgICAvLyBiYWNrd2FyZHMgYW5kIHJldHVybiBpdHMgaW5kZXgKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZFByZXZpb3VzU3RhcnRlcihjaGFyW11zcmMsIGludCBzcmNTdGFydCwgaW50IGN1cnJlbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbWluTm9NYXliZSkgeyAKKyAgICAgICBsb25nIG5vcm0zMjsgCisgICAgICAgUHJldkFyZ3MgYXJncyA9IG5ldyBQcmV2QXJncygpOworICAgICAgIGFyZ3Muc3JjID0gc3JjOworICAgICAgIGFyZ3Muc3RhcnQgPSBzcmNTdGFydDsKKyAgICAgICBhcmdzLmN1cnJlbnQgPSBjdXJyZW50OworICAgICAgIAorICAgICAgIHdoaWxlKGFyZ3Muc3RhcnQ8YXJncy5jdXJyZW50KSB7IAorICAgICAgICAgICBub3JtMzI9IGdldFByZXZOb3JtMzIoYXJncywgbWluTm9NYXliZSwgY2NPclFDTWFza3xkZWNvbXBRQ01hc2spOyAKKyAgICAgICAgICAgaWYoaXNUcnVlU3RhcnRlcihub3JtMzIsIGNjT3JRQ01hc2ssIGRlY29tcFFDTWFzaykpIHsgCisgICAgICAgICAgICAgICBicmVhazsgCisgICAgICAgICAgIH0gCisgICAgICAgfSAKKyAgICAgICByZXR1cm4gYXJncy5jdXJyZW50OyAKKyAgICB9CisgICAgCisgICAgLyogZmluZCB0aGUgZmlyc3QgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyBhbmQgcmV0dXJuIHRoZSAKKyAgICAgKiBwb2ludGVyIHRvIGl0IAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludC8qaW5kZXgqLyAgICBmaW5kTmV4dFN0YXJ0ZXIoY2hhcltdIHNyYyxpbnQgc3RhcnQsaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBxY01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbWluTm9NYXliZSkgeworICAgICAgICBpbnQgcDsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7IAorICAgICAgICBpbnQgY2NPclFDTWFzazsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAKKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgCisgICAgICAgIERlY29tcG9zZUFyZ3MgZGVjb21wQXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBpZihzdGFydD09bGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogZW5kIG9mIHN0cmluZyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgYz1zcmNbc3RhcnRdOworICAgICAgICAgICAgaWYoYzxtaW5Ob01heWJlKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIGNhdGNoZXMgTlVMIHRlcm1pbmF0ZXIsIHRvbyAqLworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMihjKTsKKyAgICAgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogdHJ1ZSBzdGFydGVyICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZihpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgIGlmKChzdGFydCsxKT09bGltaXQgfHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPShzcmNbc3RhcnQrMV0pKSl7CisgICAgICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGU6IGNvdW50cyBhcyBhIHRydWUgc3RhcnRlciAqLyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKyAgICAKKyAgICAgICAgICAgICAgICBpZigobm9ybTMyJmNjT3JRQ01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB0cnVlIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiAoYywgYzIpIGlzIG5vdCBhIHRydWUgc3RhcnRlciBidXQgaXRzIGRlY29tcG9zaXRpb24gbWF5IGJlICovCisgICAgICAgICAgICBpZigobm9ybTMyJmRlY29tcFFDTWFzaykhPTApIHsKKyAgICAgICAgICAgICAgICAvKiAoYywgYzIpIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aAorICAgICAgICAgICAgICAgICAqICBleHRyYSBkYXRhICovCisgICAgICAgICAgICAgICAgcD1kZWNvbXBvc2Uobm9ybTMyLCBkZWNvbXBRQ01hc2ssIGRlY29tcEFyZ3MpOworICAgIAorICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgZmlyc3QgY2hhcmFjdGVyJ3Mgbm9ybTMyIHRvIGNoZWNrIGlmIGl0IGlzIGEgdHJ1ZSAKKyAgICAgICAgICAgICAgICAgKiBzdGFydGVyICovCisgICAgICAgICAgICAgICAgaWYoZGVjb21wQXJncy5jYz09MCAmJiAoZ2V0Tm9ybTMyKGV4dHJhRGF0YSxwLCBxY01hc2spJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIHRydWUgc3RhcnRlciAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0YXJ0Kz0gYzI9PTAgPyAxIDogMjsgLyogbm90IGEgdHJ1ZSBzdGFydGVyLCBjb250aW51ZSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBzdGFydDsKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ29tcG9zZVBhcnRBcmdzeworICAgICAgICBpbnQgcHJldkNDOworICAgICAgICBpbnQgbGVuZ3RoOyAgIC8qIGxlbmd0aCBvZiBkZWNvbXBvc2VkIHBhcnQgKi8KKyAgICB9CisgICAgICAgIAorICAgICAvKiBkZWNvbXBvc2UgYW5kIHJlY29tcG9zZSBbcHJldlN0YXJ0ZXIuLnNyY1sgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gY29tcG9zZVBhcnQoQ29tcG9zZVBhcnRBcmdzIGFyZ3MsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJldlN0YXJ0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICBpbnQgcmVjb21wb3NlTGltaXQ7CisgICAgICAgIGJvb2xlYW4gY29tcGF0ID0oKG9wdGlvbnMmT1BUSU9OU19DT01QQVQpIT0wKTsKKyAgICAgICAgCisgICAgICAgIC8qIGRlY29tcG9zZSBbcHJldlN0YXJ0ZXIuLnNyY1sgKi8KKyAgICAgICAgaW50W10gb3V0VHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclsobGltaXQtcHJldlN0YXJ0ZXIpKk1BWF9CVUZGRVJfU0laRV07CisKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIGFyZ3MubGVuZ3RoPWRlY29tcG9zZShzcmMscHJldlN0YXJ0ZXIsKHN0YXJ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCxvdXRUcmFpbENDLG54KTsKKyAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPD1idWZmZXIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBjaGFyW2FyZ3MubGVuZ3RoXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAKKyAgICAgICAgLyogcmVjb21wb3NlIHRoZSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgIHJlY29tcG9zZUxpbWl0PWFyZ3MubGVuZ3RoOworICAgICAgICAgIAorICAgICAgICBpZihhcmdzLmxlbmd0aD49MikgeworICAgICAgICAgICAgUmVjb21wb3NlQXJncyByY0FyZ3MgPSBuZXcgUmVjb21wb3NlQXJncygpOworICAgICAgICAgICAgcmNBcmdzLnNvdXJjZSAgICA9IGJ1ZmZlcjsKKyAgICAgICAgICAgIHJjQXJncy5zdGFydCAgICA9IDA7CisgICAgICAgICAgICByY0FyZ3MubGltaXQgICAgPSByZWNvbXBvc2VMaW1pdDsgCisgICAgICAgICAgICBhcmdzLnByZXZDQz1yZWNvbXBvc2UocmNBcmdzLCBvcHRpb25zLCBueCk7CisgICAgICAgICAgICByZWNvbXBvc2VMaW1pdCA9IHJjQXJncy5saW1pdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyogcmV0dXJuIHdpdGggYSBwb2ludGVyIHRvIHRoZSByZWNvbXBvc2l0aW9uIGFuZCBpdHMgbGVuZ3RoICovCisgICAgICAgIGFyZ3MubGVuZ3RoPXJlY29tcG9zZUxpbWl0OworICAgICAgICByZXR1cm4gYnVmZmVyOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGNvbXBvc2VIYW5ndWwoY2hhciBwcmV2LCBjaGFyIGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHNyYyxpbnRbXSBzcmNJbmRleCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgaW50IHN0YXJ0PXNyY0luZGV4WzBdOworICAgICAgICBpZihpc0phbW9WVE5vcm0zMkphbW9WKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qIGMgaXMgYSBKYW1vIFYsIGNvbXBvc2Ugd2l0aCBwcmV2aW91cyBKYW1vIEwgYW5kIAorICAgICAgICAgICAgICogZm9sbG93aW5nIEphbW8gVCAqLworICAgICAgICAgICAgcHJldj0oY2hhcikocHJldi1KQU1PX0xfQkFTRSk7CisgICAgICAgICAgICBpZihwcmV2PEpBTU9fTF9DT1VOVCkgeworICAgICAgICAgICAgICAgIGM9KGNoYXIpKEhBTkdVTF9CQVNFKyhwcmV2KkpBTU9fVl9DT1VOVCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYy1KQU1PX1ZfQkFTRSkpKkpBTU9fVF9DT1VOVCk7CisgICAgCisgICAgICAgICAgICAgICAgLyogY2hlY2sgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgSmFtbyBUIChub3JtYWwgb3IgCisgICAgICAgICAgICAgICAgICogY29tcGF0aWJpbGl0eSkgKi8KKyAgICAgICAgICAgICAgICBpZihzdGFydCE9bGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBuZXh0LCB0OworICAgIAorICAgICAgICAgICAgICAgICAgICBuZXh0PXNyY1tzdGFydF07CisgICAgICAgICAgICAgICAgICAgIGlmKCh0PShjaGFyKShuZXh0LUpBTU9fVF9CQVNFKSk8SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3JtYWwgSmFtbyBUICovCisgICAgICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYys9dDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvbXBhdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogaWYgTkZLQywgdGhlbiBjaGVjayBmb3IgY29tcGF0aWJpbGl0eSBKYW1vIFQgCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAoQk1QIG9ubHkpICovCisgICAgICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKG5leHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXNOb3JtMzJSZWd1bGFyKG5vcm0zMikgJiYgKChub3JtMzImUUNfTkZLRCkhPTApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHAgLyppbmRleCBpbnRvIGV4dHJhIGRhdGEgYXJyYXkqLzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGRjQXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcD1kZWNvbXBvc2Uobm9ybTMyLCBRQ19ORktELCBkY0FyZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRjQXJncy5sZW5ndGg9PTEgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0PShjaGFyKShleHRyYURhdGFbcF0tSkFNT19UX0JBU0UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEpBTU9fVF9DT1VOVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb21wYXRpYmlsaXR5IEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKz10OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoIWlzSGFuZ3VsV2l0aG91dEphbW9UKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0OyAvKiB1bmRvICsrc3RhcnQgZnJvbSByZWFkaW5nIHRoZSBKYW1vIFQgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4XT1jOworICAgICAgICAgICAgICAgIHNyY0luZGV4WzBdPXN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYoaXNIYW5ndWxXaXRob3V0SmFtb1QocHJldikpIHsKKyAgICAgICAgICAgIC8qIGMgaXMgYSBKYW1vIFQsIGNvbXBvc2Ugd2l0aCBwcmV2aW91cyBIYW5ndWwgTFYgdGhhdCBkb2VzIG5vdCAKKyAgICAgICAgICAgICAqIGNvbnRhaW4gYSBKYW1vIFQgKi8KKyAgICAgICAgICAgIGM9KGNoYXIpKHByZXYrKGMtSkFNT19UX0JBU0UpKTsKKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4XT1jOworICAgICAgICAgICAgc3JjSW5kZXhbMF09c3RhcnQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc3JjLCBjaGFyW10gZGVzdCxib29sZWFuIGNvbXBhdCwgVW5pY29kZVNldCBueCl7CisgICAgICAgIHJldHVybiBjb21wb3NlKHNyYywwLHNyYy5sZW5ndGgsZGVzdCwwLGRlc3QubGVuZ3RoLGNvbXBhdCwgbngpOworICAgIH0KKyAgICAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBvc2UoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyxVbmljb2RlU2V0IG54KSB7CisgICAgICAgIAorICAgICAgICBpbnQgcHJldlNyYywgcHJldlN0YXJ0ZXI7CisgICAgICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyOyAKKyAgICAgICAgaW50IGNjT3JRQ01hc2ssIHFjTWFzazsKKyAgICAgICAgaW50ICByZW9yZGVyU3RhcnRJbmRleCwgbGVuZ3RoOworICAgICAgICBjaGFyIGMsIGMyLCBtaW5Ob01heWJlOworICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYywgcHJldkNDOworICAgICAgICBpbnRbXSBpb0luZGV4ID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RTdGFydDsKKyAgICAgICAgaW50IHNyY0luZGV4ID0gc3JjU3RhcnQ7CisgICAgICAgIAorICAgICAgICBpZigob3B0aW9ucyZPUFRJT05TX0NPTVBBVCkhPTApIHsKKyAgICAgICAgICAgIG1pbk5vTWF5YmU9KGNoYXIpaW5kZXhlc1tJTkRFWF9NSU5fTkZLQ19OT19NQVlCRV07CisgICAgICAgICAgICBxY01hc2s9UUNfTkZLQzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1pbk5vTWF5YmU9KGNoYXIpaW5kZXhlc1tJTkRFWF9NSU5fTkZDX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORkM7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogcHJldlN0YXJ0ZXIgcG9pbnRzIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBiZWZvcmUgdGhlIGN1cnJlbnQgb25lCisgICAgICAgICAqIHRoYXQgaXMgYSAidHJ1ZSIgc3RhcnRlciB3aXRoIGNjPT0wIGFuZCBxdWljayBjaGVjayAieWVzIi4KKyAgICAgICAgICoKKyAgICAgICAgICogcHJldlN0YXJ0ZXIgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgbG9va2luZyBmb3IgYSB0cnVlIHN0YXJ0ZXIKKyAgICAgICAgICogd2hpbGUgaW5jcmVtZW50YWxseSBkZWNvbXBvc2luZyBbcHJldlN0YXJ0ZXIuLnByZXZTcmNbCisgICAgICAgICAqIGluIF9jb21wb3NlUGFydCgpLiBIYXZpbmcgYSBnb29kIHByZXZTdGFydGVyIGFsbG93cyB0byBqdXN0IGRlY29tcG9zZQorICAgICAgICAgKiB0aGUgZW50aXJlIFtwcmV2U3RhcnRlci4ucHJldlNyY1suCisgICAgICAgICAqCisgICAgICAgICAqIFdoZW4gX2NvbXBvc2VQYXJ0KCkgYmFja3Mgb3V0IGZyb20gcHJldlNyYyBiYWNrIHRvIHByZXZTdGFydGVyLAorICAgICAgICAgKiB0aGVuIGl0IGFsc28gYmFja3Mgb3V0IGRlc3RJbmRleCBieSB0aGUgc2FtZSBhbW91bnQuCisgICAgICAgICAqIFRoZXJlZm9yZSwgYXQgYWxsIHRpbWVzLCB0aGUgKHByZXZTcmMtcHJldlN0YXJ0ZXIpIHNvdXJjZSB1bml0cworICAgICAgICAgKiBtdXN0IGNvcnJlc3BvbmQgMToxIHRvIGRlc3RpbmF0aW9uIHVuaXRzIGNvdW50ZWQgd2l0aCBkZXN0SW5kZXgsCisgICAgICAgICAqIGV4Y2VwdCBmb3IgcmVvcmRlcmluZy4KKyAgICAgICAgICogVGhpcyBpcyB0cnVlIGZvciB0aGUgcWMgInllcyIgY2hhcmFjdGVycyBjb3BpZWQgaW4gdGhlIGZhc3QgbG9vcCwKKyAgICAgICAgICogYW5kIGZvciBwdXJlIHJlb3JkZXJpbmcuCisgICAgICAgICAqIHByZXZTdGFydGVyIG11c3QgYmUgc2V0IGZvcndhcmQgdG8gc3JjIHdoZW4gdGhpcyBpcyBub3QgdHJ1ZToKKyAgICAgICAgICogSW4gX2NvbXBvc2VQYXJ0KCkgYW5kIGFmdGVyIGNvbXBvc2luZyBhIEhhbmd1bCBzeWxsYWJsZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBtZWNoYW5pc20gcmVsaWVzIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGRlY29tcG9zaXRpb24gb2YgYSAKKyAgICAgICAgICogdHJ1ZSBzdGFydGVyIGFsc28gYmVnaW5zIHdpdGggYSB0cnVlIHN0YXJ0ZXIuIGdlbm5vcm0vc3RvcmUuYyBjaGVja3MgCisgICAgICAgICAqIGZvciB0aGlzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJldlN0YXJ0ZXI9c3JjSW5kZXg7CisgICAgCisgICAgICAgIGNjT3JRQ01hc2s9Q0NfTUFTS3xxY01hc2s7CisgICAgICAgIC8qZGVzdEluZGV4PSovcmVvcmRlclN0YXJ0SW5kZXg9MDsvKiAjIyMjVE9ETyMjIyMgY2hlY2sgdGhpcyAqKi8KKyAgICAgICAgcHJldkNDPTA7CisgICAgCisgICAgICAgIC8qIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzICovCisgICAgICAgIG5vcm0zMj0wOworICAgICAgICBjPTA7CisgICAgCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgLyogY291bnQgY29kZSB1bml0cyBiZWxvdyB0aGUgbWluaW11bSBvciB3aXRoIGlycmVsZXZhbnQgZGF0YSBmb3IgCisgICAgICAgICAgICAgKiB0aGUgcXVpY2sgY2hlY2sgKi8KKyAgICAgICAgICAgIHByZXZTcmM9c3JjSW5kZXg7CisKKyAgICAgICAgICAgIHdoaWxlKHNyY0luZGV4IT1zcmNMaW1pdCAmJiAoKGM9c3JjW3NyY0luZGV4XSk8bWluTm9NYXliZSB8fCAKKyAgICAgICAgICAgICAgICAgICAgICgobm9ybTMyPWdldE5vcm0zMihjKSkmY2NPclFDTWFzayk9PTApKSB7CisgICAgICAgICAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAgICAgICAgIH0KKworICAgIAorICAgICAgICAgICAgLyogY29weSB0aGVzZSBjb2RlIHVuaXRzIGFsbCBhdCBvbmNlICovCisgICAgICAgICAgICBpZihzcmNJbmRleCE9cHJldlNyYykgeworICAgICAgICAgICAgICAgIGxlbmd0aD0oaW50KShzcmNJbmRleC1wcmV2U3JjKTsKKyAgICAgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyYyxwcmV2U3JjLGRlc3QsZGVzdEluZGV4LGxlbmd0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBzZXQgcHJldlN0YXJ0ZXIgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBxdWljayBjaGVjayAKKyAgICAgICAgICAgICAgICAgKiBsb29wICovCisgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9c3JjSW5kZXgtMTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHNyY1twcmV2U3RhcnRlcl0pICYmIAorICAgICAgICAgICAgICAgICAgICBwcmV2U3JjPHByZXZTdGFydGVyICYmIAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoc3JjWyhwcmV2U3RhcnRlci0xKV0pKSB7CisgICAgICAgICAgICAgICAgICAgIC0tcHJldlN0YXJ0ZXI7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIHByZXZTcmM9c3JjSW5kZXg7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBlbmQgb2Ygc291cmNlIHJlYWNoZWQ/ICovCisgICAgICAgICAgICBpZihzcmNJbmRleD09c3JjTGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGMgYWxyZWFkeSBjb250YWlucyAqc3JjIGFuZCBub3JtMzIgaXMgc2V0IGZvciBpdCwgaW5jcmVtZW50IHNyYyovCisgICAgICAgICAgICArK3NyY0luZGV4OworICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHNvdXJjZSBidWZmZXIgcG9pbnRlcnM6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogIGFsbCBkb25lICAgICAgcXVpY2sgY2hlY2sgICBjdXJyZW50IGNoYXIgIG5vdCB5ZXQKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICJ5ZXMiIGJ1dCAgICAgKGMsIGMyKSAgICAgICBwcm9jZXNzZWQKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgIG1heSBjb21iaW5lCisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICBmb3J3YXJkCisgICAgICAgICAgICAgKiBbLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVsKKyAgICAgICAgICAgICAqIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICogc3RhcnQgICAgICAgICBwcmV2U3RhcnRlciAgIHByZXZTcmMgICAgICAgc3JjICAgICAgICAgICBsaW1pdAorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBkZXN0aW5hdGlvbiBidWZmZXIgcG9pbnRlcnMgYW5kIGluZGV4ZXM6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogIGFsbCBkb25lICAgICAgbWlnaHQgdGFrZSAgICBub3QgZmlsbGVkIHlldAorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgY2hhcmFjdGVycyBmb3IKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgIHJlb3JkZXJpbmcKKyAgICAgICAgICAgICAqIFstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVsKKyAgICAgICAgICAgICAqIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAqIGRlc3QgICAgICByZW9yZGVyU3RhcnRJbmRleCBkZXN0SW5kZXggICAgIGRlc3RDYXBhY2l0eQorICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0ICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbm9ybTMyIGlzIGZvciBjPSooc3JjLTEpLCBhbmQgdGhlIHF1aWNrIGNoZWNrIGZsYWcgaXMgIm5vIiBvciAKKyAgICAgICAgICAgICAqICJtYXliZSIsIGFuZC9vciBjYyE9MAorICAgICAgICAgICAgICogY2hlY2sgZm9yIEphbW8gVi9ULCB0aGVuIGZvciBzdXJyb2dhdGVzIGFuZCByZWd1bGFyIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAqIGMgaXMgbm90IGEgSGFuZ3VsIHN5bGxhYmxlIG9yIEphbW8gTCBiZWNhdXNlCisgICAgICAgICAgICAgKiB0aGV5IGFyZSBub3QgbWFya2VkIHdpdGggbm8vbWF5YmUgZm9yIE5GQyAmIE5GS0MoYW5kIHRoZWlyIGNjPT0wKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBjIGlzIGEgSmFtbyBWL1Q6CisgICAgICAgICAgICAgICAgICogdHJ5IHRvIGNvbXBvc2Ugd2l0aCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLCBKYW1vIFYgYWxzbyB3aXRoIAorICAgICAgICAgICAgICAgICAqIGEgZm9sbG93aW5nIEphbW8gVCwgYW5kIHNldCB2YWx1ZXMgaGVyZSByaWdodCBub3cgaW4gY2FzZSB3ZSAKKyAgICAgICAgICAgICAgICAgKiBqdXN0IGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHByZXZDQz1jYz0wOworICAgICAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKyAgICAgICAgICAgICAgICBpb0luZGV4WzBdPXNyY0luZGV4OworICAgICAgICAgICAgICAgIGlmKCAKKyAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4PjAgJiYKKyAgICAgICAgICAgICAgICAgICAgY29tcG9zZUhhbmd1bChzcmNbKHByZXZTcmMtMSldLCBjLCBub3JtMzIsc3JjLCBpb0luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0xpbWl0LCAob3B0aW9ucyZPUFRJT05TX0NPTVBBVCkhPTAsIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4PD1kZXN0TGltaXQgPyBkZXN0SW5kZXgtMTogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCkKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjSW5kZXg9aW9JbmRleFswXTsKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9c3JjSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzcmNJbmRleCA9IGlvSW5kZXhbMF07CisgICAgCisgICAgICAgICAgICAgICAgLyogdGhlIEphbW8gVi9UIGRpZCBub3QgY29tcG9zZSBpbnRvIGEgSGFuZ3VsIHN5bGxhYmxlLCBqdXN0IAorICAgICAgICAgICAgICAgICAqIGFwcGVuZCB0byBkZXN0ICovCisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1wcmV2U3JjOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSW5kZXghPXNyY0xpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjSW5kZXhdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYyBpcyBhbiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQ29tcG9zZVBhcnRBcmdzIGFyZ3MgPW5ldyBDb21wb3NlUGFydEFyZ3MoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3ZSBhcmUgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVyIChjLCBjMikgYXQgW3ByZXZTcmMuLnNyY1sgKi8KKyAgICAgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGV4Y2x1ZGVkOiBub3JtMzI9PTAgKi8KKyAgICAgICAgICAgICAgICAgICAgY2M9MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGNjPShpbnQpKChVTlNJR05FRF9CWVRFX01BU0spJihub3JtMzI+PkNDX1NISUZUKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhcltdIHA7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIGZpbmQgYXBwcm9wcmlhdGUgYm91bmRhcmllcyBhcm91bmQgdGhpcyBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAqIGRlY29tcG9zZSB0aGUgc291cmNlIHRleHQgZnJvbSBiZXR3ZWVuIHRoZSBib3VuZGFyaWVzLAorICAgICAgICAgICAgICAgICAgICAgKiBhbmQgcmVjb21wb3NlIGl0CisgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAqIHRoaXMgcHV0cyB0aGUgaW50ZXJtZWRpYXRlIHRleHQgaW50byB0aGUgc2lkZSBidWZmZXIgYmVjYXVzZQorICAgICAgICAgICAgICAgICAgICAgKiBpdCBtaWdodCBiZSBsb25nZXIgdGhhbiB0aGUgcmVjb21wb3NpdGlvbiBlbmQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgKiBvciB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG1heSBiZSB0b28gc2hvcnQgb3IgbWlzc2luZworICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgKiBub3RlIHRoYXQgZGVzdEluZGV4IG1heSBiZSBhZGp1c3RlZCBiYWNrd2FyZHMgdG8gYWNjb3VudAorICAgICAgICAgICAgICAgICAgICAgKiBmb3Igc291cmNlIHRleHQgdGhhdCBwYXNzZWQgdGhlIHF1aWNrIGNoZWNrIGJ1dCBuZWVkZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICogdGFrZSBwYXJ0IGluIHRoZSByZWNvbXBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpbnQgZGVjb21wUUNNYXNrPShxY01hc2s8PDIpJjB4ZjsgLyogZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrICovCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIGZpbmQgdGhlIGxhc3QgdHJ1ZSBzdGFydGVyIGluIFtwcmV2U3RhcnRlci4uc3JjWworICAgICAgICAgICAgICAgICAgICAgKiBpdCBpcyBlaXRoZXIgdGhlIGRlY29tcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIChhdCBwcmV2U3JjKSwKKyAgICAgICAgICAgICAgICAgICAgICogb3IgcHJldlN0YXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGlmKGlzVHJ1ZVN0YXJ0ZXIobm9ybTMyLCBDQ19NQVNLfHFjTWFzaywgZGVjb21wUUNNYXNrKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9cHJldlNyYzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFkanVzdCBkZXN0SW5kZXg6IGJhY2sgb3V0IHdoYXQgaGFkIGJlZW4gY29waWVkIHdpdGggcWMgInllcyIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleC09cHJldlNyYy1wcmV2U3RhcnRlcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBmaW5kIHRoZSBuZXh0IHRydWUgc3RhcnRlciBpbiBbc3JjLi5saW1pdFsgKi8KKyAgICAgICAgICAgICAgICAgICAgc3JjSW5kZXg9ZmluZE5leHRTdGFydGVyKHNyYywgc3JjSW5kZXgsc3JjTGltaXQsIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcFFDTWFzaywgbWluTm9NYXliZSk7CisgICAgICAgICAgICAgICAgICAgIC8vYXJncy5wcmV2U3RhcnRlciA9IHByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICBhcmdzLnByZXZDQyAgICA9IHByZXZDQzsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvL2FyZ3MuZGVzdEluZGV4ID0gZGVzdEluZGV4OworICAgICAgICAgICAgICAgICAgICBhcmdzLmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcD1jb21wb3NlUGFydChhcmdzLHByZXZTdGFydGVyLHNyYyxzcmNJbmRleCxzcmNMaW1pdCxvcHRpb25zLG54KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZihwPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBhbiBlcnJvciBvY2N1cnJlZCAob3V0IG9mIG1lbW9yeSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBwcmV2Q0MgICAgICA9IGFyZ3MucHJldkNDOworICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICA9IGFyZ3MubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogYXBwZW5kIHRoZSByZWNvbXBvc2VkIGJ1ZmZlciBjb250ZW50cyB0byB0aGUgZGVzdGluYXRpb24gCisgICAgICAgICAgICAgICAgICAgICAqIGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICAgICBpZigoZGVzdEluZGV4K2FyZ3MubGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoaTxhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPXBbaSsrXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyoga2VlcCBpbmNyZW1lbnRpbmcgdGhlIGRlc3RJbmRleCBmb3IgcHJlZmxpZ2h0aW5nICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYXBwZW5kIHRoZSBzaW5nbGUgY29kZSBwb2ludCAoYywgYzIpIHRvIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgKi8KKyAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYoY2MhPTAgJiYgY2M8cHJldkNDKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIChjLCBjMikgaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUgcHJlY2VkaW5nIAorICAgICAgICAgICAgICAgICAgICAgKiB0ZXh0ICovCisgICAgICAgICAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9IGRlc3RJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz1pbnNlcnRPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIHJlb3JkZXJTcGxpdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCwgYywgYzIsIGNjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCAoYywgYzIpICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWM7CisgICAgICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9Y2M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAvKiBrZWVwIGluY3JlbWVudGluZyB0aGUgZGVzdEluZGV4IGZvciBwcmVmbGlnaHRpbmcgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9Y2M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVzdEluZGV4IC0gZGVzdFN0YXJ0OworICAgIH0KKyAgICAvKiBtYWtlIEZDRCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50LyppbmRleCovIGZpbmRTYWZlRkNEKGNoYXJbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBmY2QxNikgeworICAgICAgICBjaGFyIGMsIGMyOworICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBmaW5kIHRoZSBmaXJzdCBwb3NpdGlvbiBpbiBbc3JjLi5saW1pdFsgYWZ0ZXIgc29tZSBjYz09MCBhY2NvcmRpbmcgCisgICAgICAgICAqIHRvIEZDRCBkYXRhCisgICAgICAgICAqCisgICAgICAgICAqIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxvb3AsIHdlIGhhdmUgZmNkMTYgZnJvbSBiZWZvcmUgc3JjCisgICAgICAgICAqCisgICAgICAgICAqIHN0b3AgYXQgcG9zaXRpb25zOgorICAgICAgICAgKiAtIGFmdGVyIHRyYWlsIGNjPT0wCisgICAgICAgICAqIC0gYXQgdGhlIGVuZCBvZiB0aGUgc291cmNlCisgICAgICAgICAqIC0gYmVmb3JlIGxlYWQgY2M9PTAKKyAgICAgICAgICovCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgLyogc3RvcCBpZiB0cmFpbCBjYz09MCBmb3IgdGhlIHByZXZpb3VzIGNoYXJhY3RlciAqLworICAgICAgICAgICAgaWYoKGZjZDE2JjB4ZmYpPT0wKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBnZXQgYz0qc3JjIC0gc3RvcCBhdCBlbmQgb2Ygc3RyaW5nICovCisgICAgICAgICAgICBpZihzdGFydD09bGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9c3JjW3N0YXJ0XTsKKyAgICAKKyAgICAgICAgICAgIC8qIHN0b3AgaWYgbGVhZCBjYz09MCBmb3IgdGhpcyBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgIGlmKGM8TUlOX1dJVEhfTEVBRF9DQyB8fCAoZmNkMTY9Z2V0RkNEMTYoYykpPT0wKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIGNhdGNoZXMgdGVybWluYXRpbmcgTlVMLCB0b28gKi8KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICBpZihmY2QxNjw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihzdGFydCsxIT1saW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzdGFydCsxXSkpKSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgZmNkMTYgKi8KKyAgICAgICAgICAgICAgICBmY2QxNj1nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZDE2LCBjMik7CisgICAgICAgICAgICAgICAgaWYoZmNkMTY8PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXJ0Kz0yOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGFuIHVucGFpcmVkIGZpcnN0IHN1cnJvZ2F0ZSwgbGVhZCBjYz09MCAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBzdGFydDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCBieXRlKi8gZGVjb21wb3NlRkNEKGNoYXJbXSBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsaW50IGRlY29tcExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRlc3RJbmRleEFyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICBjaGFyW10gcD1udWxsOworICAgICAgICBpbnQgcFN0YXJ0PS0xOworICAgICAgICAKKyAgICAgICAgbG9uZyAvKnVuc2lnbmVkIGludCovIG5vcm0zMjsKKyAgICAgICAgaW50IHJlb3JkZXJTdGFydEluZGV4OworICAgICAgICBjaGFyIGMsIGMyOworICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBwcmV2Q0M7CisgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgIGludCBkZXN0SW5kZXggPSBkZXN0SW5kZXhBcnJbMF07CisgICAgICAgIC8qCisgICAgICAgICAqIGNhbm9uaWNhbGx5IGRlY29tcG9zZSBbc3JjLi5kZWNvbXBMaW1pdFsKKyAgICAgICAgICoKKyAgICAgICAgICogYWxsIGNoYXJhY3RlcnMgaW4gdGhpcyByYW5nZSBoYXZlIHNvbWUgbm9uLXplcm8gY2MsCisgICAgICAgICAqIGRpcmVjdGx5IG9yIGluIGRlY29tcG9zaXRpb24sCisgICAgICAgICAqIHNvIHRoYXQgd2UgZG8gbm90IG5lZWQgdG8gY2hlY2sgaW4gdGhlIGZvbGxvd2luZyBmb3IgcXVpY2stY2hlY2sgCisgICAgICAgICAqIGxpbWl0cyBldGMuCisgICAgICAgICAqCisgICAgICAgICAqIHRoZXJlIF9hcmVfIF9ub18gSGFuZ3VsIHN5bGxhYmxlcyBvciBKYW1vcyBpbiBoZXJlIGJlY2F1c2UgdGhleSBhcmUgCisgICAgICAgICAqIEZDRC1zYWZlIChjYz09MCkhCisgICAgICAgICAqCisgICAgICAgICAqIHdlIGFsc28gZG8gbm90IG5lZWQgdG8gY2hlY2sgZm9yIGM9PTAgYmVjYXVzZSB3ZSBoYXZlIGFuIGVzdGFibGlzaGVkIAorICAgICAgICAgKiBkZWNvbXBMaW1pdAorICAgICAgICAgKi8KKyAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICBwcmV2Q0M9MDsKKworICAgICAgICB3aGlsZShzdGFydDxkZWNvbXBMaW1pdCkgeworICAgICAgICAgICAgYz1zcmNbc3RhcnQrK107CisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICAgICAgaWYoaXNOb3JtMzJSZWd1bGFyKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoPTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogcmVtaW5kZXI6IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggW3NyYy4uZGVjb21wTGltaXRbCisgICAgICAgICAgICAgICAgICogbm90IGNvbnRhaW5pbmcgYW55IEhhbmd1bC9KYW1vIGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgICogdGhlcmVmb3JlIHRoZSBvbmx5IHNwZWNpYWxzIGFyZSBsZWFkIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICBpZihzdGFydCE9ZGVjb21wTGltaXQgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3RhcnRdKSl7CisgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBhcmdzLmxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICBub3JtMzI9MDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBnZXQgdGhlIGRlY29tcG9zaXRpb24gYW5kIHRoZSBsZWFkIGFuZCB0cmFpbCBjYydzICovCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgIGFyZ3MuY2M9YXJncy50cmFpbENDPTA7CisgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgfSBlbHNlIGlmKChub3JtMzImUUNfTkZEKT09MCkgeworICAgICAgICAgICAgICAgIC8qIGMgZG9lcyBub3QgZGVjb21wb3NlICovCisgICAgICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm9ybTMyPj5DQ19TSElGVCkpOworICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYyBkZWNvbXBvc2VzLCBnZXQgZXZlcnl0aGluZyBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggZXh0cmEgCisgICAgICAgICAgICAgICAgICogZGF0YSAqLworICAgICAgICAgICAgICAgIHBTdGFydD1kZWNvbXBvc2Uobm9ybTMyLCBhcmdzKTsKKyAgICAgICAgICAgICAgICBwPWV4dHJhRGF0YTsKKyAgICAgICAgICAgICAgICBpZihhcmdzLmxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBmYXN0cGF0aCBhIHNpbmdsZSBjb2RlIHVuaXQgZnJvbSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGM9cFtwU3RhcnRdOworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIsIGFzc3VtZSAKKyAgICAgICAgICAgICAqIGxlbmd0aD4wICovCisgICAgICAgICAgICBpZigoZGVzdEluZGV4K2FyZ3MubGVuZ3RoKTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVvcmRlclNwbGl0PWRlc3RJbmRleDsKKyAgICAgICAgICAgICAgICBpZihwPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoOiBzaW5nbGUgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICBpZihhcmdzLmNjIT0wICYmIGFyZ3MuY2M8cHJldkNDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAoYywgYzIpIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gdGhlIHByZWNlZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICogIHRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9aW5zZXJ0T3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlb3JkZXJTcGxpdCwgZGVzdEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMsIGMyLCBhcmdzLmNjKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIChjLCBjMikgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWM7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWMyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZ2VuZXJhbDogbXVsdGlwbGUgY29kZSBwb2ludHMgKG9yZGVyZWQgYnkgdGhlbXNlbHZlcykgCisgICAgICAgICAgICAgICAgICAgICAqIGZyb20gZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBpZihhcmdzLmNjIT0wICYmIGFyZ3MuY2M8cHJldkNDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgZGVjb21wb3NpdGlvbiBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIAorICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIHByZWNlZGluZyB0ZXh0ICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWFyZ3MubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgYXJncy50cmFpbENDPW1lcmdlT3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBwLCBwU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBTdGFydCthcmdzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCB0aGUgZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPXBbcFN0YXJ0KytdOworICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWFyZ3MubGVuZ3RoPjApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAvKiBrZWVwIGluY3JlbWVudGluZyB0aGUgZGVzdEluZGV4IGZvciBwcmVmbGlnaHRpbmcgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWFyZ3MubGVuZ3RoOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHJldkNDPWFyZ3MudHJhaWxDQzsKKyAgICAgICAgICAgIGlmKHByZXZDQz09MCkgeworICAgICAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkZXN0SW5kZXhBcnJbMF09ZGVzdEluZGV4OworICAgICAgICByZXR1cm4gcHJldkNDOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBtYWtlRkNEKGNoYXJbXSBzcmMsICBpbnQgc3JjU3RhcnQsICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgcHJldlNyYywgZGVjb21wU3RhcnQ7CisgICAgICAgIGludCBkZXN0SW5kZXgsIGxlbmd0aDsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAgICAgaW50IC8qIHVuc2lnbmVkIGludCovIGZjZDE2OworICAgICAgICBpbnQgcHJldkNDLCBjYzsKKyAgICAKKyAgICAgICAgLyogaW5pdGlhbGl6ZSAqLworICAgICAgICBkZWNvbXBTdGFydD1zcmNTdGFydDsKKyAgICAgICAgZGVzdEluZGV4PWRlc3RTdGFydDsKKyAgICAgICAgcHJldkNDPTA7CisgICAgICAgIGM9MDsKKyAgICAgICAgZmNkMTY9MDsKKyAgICAgICAgaW50W10gZGVzdEluZGV4QXJyID0gbmV3IGludFsxXTsKKyAgICAgICAgZGVzdEluZGV4QXJyWzBdPWRlc3RJbmRleDsKKyAgICAgICAgCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgLyogc2tpcCBhIHJ1biBvZiBjb2RlIHVuaXRzIGJlbG93IHRoZSBtaW5pbXVtIG9yIHdpdGggaXJyZWxldmFudCAKKyAgICAgICAgICAgICAqIGRhdGEgZm9yIHRoZSBGQ0QgY2hlY2sgKi8KKyAgICAgICAgICAgIHByZXZTcmM9c3JjU3RhcnQ7CisKKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIGlmKHNyY1N0YXJ0PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGM9c3JjW3NyY1N0YXJ0XSk8TUlOX1dJVEhfTEVBRF9DQykgeworICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCktYzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGZjZDE2PWdldEZDRDE2KGMpKT09MCkgeworICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAgICAgICAgIH0KKworICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHByZXZDQyBoYXMgdmFsdWVzIGZyb20gdGhlIGZvbGxvd2luZyByYW5nZXM6CisgICAgICAgICAgICAgKiAwLi4weGZmIC0gdGhlIHByZXZpb3VzIHRyYWlsIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgICogPDAgICAgICAtIHRoZSBuZWdhdGl2ZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMgY29kZSB1bml0OworICAgICAgICAgICAgICogICAgICAgICAgIHRoYXQgY29kZSB1bml0IHdhcyA8X05PUk1fTUlOX1dJVEhfTEVBRF9DQyBhbmQgaXRzIAorICAgICAgICAgICAgICogICAgICAgICAgIGdldEZDRDE2KCkKKyAgICAgICAgICAgICAqICAgICAgICAgICB3YXMgZGVmZXJyZWQgc28gdGhhdCBhdmVyYWdlIHRleHQgaXMgY2hlY2tlZCBmYXN0ZXIKKyAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgLyogY29weSB0aGVzZSBjb2RlIHVuaXRzIGFsbCBhdCBvbmNlICovCisgICAgICAgICAgICBpZihzcmNTdGFydCE9cHJldlNyYykgeworICAgICAgICAgICAgICAgIGxlbmd0aD0oaW50KShzcmNTdGFydC1wcmV2U3JjKTsKKyAgICAgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyYyxwcmV2U3JjLGRlc3QsZGVzdEluZGV4LGxlbmd0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIHByZXZTcmM9c3JjU3RhcnQ7CisgICAgCisgICAgICAgICAgICAgICAgLyogcHJldkNDPDAgaXMgb25seSBwb3NzaWJsZSBmcm9tIHRoZSBhYm92ZSBsb29wLCBpLmUuLCBvbmx5IGlmCisgICAgICAgICAgICAgICAgICogIHByZXZTcmM8c3JjICovCisgICAgICAgICAgICAgICAgaWYocHJldkNDPDApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIHByZXZpb3VzIGNoYXJhY3RlciB3YXMgPF9OT1JNX01JTl9XSVRIX0xFQURfQ0MsIHdlIAorICAgICAgICAgICAgICAgICAgICAgKiBuZWVkIHRvIGdldCBpdHMgdHJhaWwgY2MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoIW54X2NvbnRhaW5zKG54LCAoaW50KS1wcmV2Q0MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCkoZ2V0RkNEMTYoKGludCktcHJldkNDKSYweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDQz0wOyAvKiBleGNsdWRlZDogZmNkMTY9PTAgKi8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzZXQgYSBwb2ludGVyIHRvIHRoaXMgYmVsb3ctVSswMzAwIGNoYXJhY3RlcjsKKyAgICAgICAgICAgICAgICAgICAgICogaWYgcHJldkNDPT0wIHRoZW4gaXQgd2lsbCBtb3ZlZCB0byBhZnRlciB0aGlzIGNoYXJhY3RlciAKKyAgICAgICAgICAgICAgICAgICAgICogYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGRlY29tcFN0YXJ0PXByZXZTcmMtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbm93OgorICAgICAgICAgICAgICogcHJldlNyYz09c3JjIC0gdXNlZCBsYXRlciB0byBhZGp1c3QgZGVzdEluZGV4IGJlZm9yZSAKKyAgICAgICAgICAgICAqICAgICAgICAgIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAqIHByZXZDQz49MAorICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBlbmQgb2Ygc291cmNlIHJlYWNoZWQ/ICovCisgICAgICAgICAgICBpZihzcmNTdGFydD09c3JjTGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIHNldCBhIHBvaW50ZXIgdG8gYWZ0ZXIgdGhlIGxhc3Qgc291cmNlIHBvc2l0aW9uIHdoZXJlIHByZXZDQz09MCovCisgICAgICAgICAgICBpZihwcmV2Q0M9PTApIHsKKyAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1wcmV2U3JjOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYyBhbHJlYWR5IGNvbnRhaW5zICpzcmMgYW5kIGZjZDE2IGlzIHNldCBmb3IgaXQsIGluY3JlbWVudCBzcmMgKi8KKyAgICAgICAgICAgICsrc3JjU3RhcnQ7CisgICAgCisgICAgICAgICAgICAvKiBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0ICovCisgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBmY2QxNiAqLworICAgICAgICAgICAgICAgIGlmKHNyY1N0YXJ0IT1zcmNMaW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzcmNTdGFydF0pKSB7CisgICAgICAgICAgICAgICAgICAgICsrc3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIGZjZDE2PWdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoKGNoYXIpZmNkMTYsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBmY2QxNj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIHdlIGFyZSBsb29raW5nIGF0IHRoZSBjaGFyYWN0ZXIgKGMsIGMyKSBhdCBbcHJldlNyYy4uc3JjWyAqLworICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGMsIGMyKSkgeworICAgICAgICAgICAgICAgIGZjZDE2PTA7IC8qIGV4Y2x1ZGVkOiBmY2QxNj09MCAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogY2hlY2sgdGhlIGNvbWJpbmluZyBvcmRlciwgZ2V0IHRoZSBsZWFkIGNjICovCisgICAgICAgICAgICBjYz0oaW50KShmY2QxNj4+OCk7CisgICAgICAgICAgICBpZihjYz09MCB8fCBjYz49cHJldkNDKSB7CisgICAgICAgICAgICAgICAgLyogdGhlIG9yZGVyIGlzIG9rICovCisgICAgICAgICAgICAgICAgaWYoY2M9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgZGVjb21wU3RhcnQ9cHJldlNyYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJldkNDPShpbnQpKGZjZDE2JjB4ZmYpOworICAgIAorICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIChjLCBjMikgKi8KKyAgICAgICAgICAgICAgICBsZW5ndGg9IGMyPT0wID8gMSA6IDI7CisgICAgICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWMyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGJhY2sgb3V0IHRoZSBwYXJ0IG9mIHRoZSBzb3VyY2UgdGhhdCB3ZSBjb3BpZWQgYWxyZWFkeSBidXQKKyAgICAgICAgICAgICAgICAgKiBpcyBub3cgZ29pbmcgdG8gYmUgZGVjb21wb3NlZDsKKyAgICAgICAgICAgICAgICAgKiBwcmV2U3JjIGlzIHNldCB0byBhZnRlciB3aGF0IHdhcyBjb3BpZWQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXgtPShpbnQpKHByZXZTcmMtZGVjb21wU3RhcnQpOworICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogZmluZCB0aGUgcGFydCBvZiB0aGUgc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgZGVjb21wb3NlZDsKKyAgICAgICAgICAgICAgICAgKiB0byBiZSBzYWZlIGFuZCBzaW1wbGUsIGRlY29tcG9zZSB0byBiZWZvcmUgdGhlIG5leHQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICogd2l0aCBsZWFkIGNjPT0wCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgc3JjU3RhcnQ9ZmluZFNhZmVGQ0Qoc3JjLHNyY1N0YXJ0LCBzcmNMaW1pdCwgKGNoYXIpZmNkMTYpOworICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogdGhlIHNvdXJjZSB0ZXh0IGRvZXMgbm90IGZ1bGZpbGwgdGhlIGNvbmRpdGlvbnMgZm9yIEZDRDsKKyAgICAgICAgICAgICAgICAgKiBkZWNvbXBvc2UgYW5kIHJlb3JkZXIgYSBsaW1pdGVkIHBpZWNlIG9mIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgZGVzdEluZGV4QXJyWzBdID0gZGVzdEluZGV4OworICAgICAgICAgICAgICAgIHByZXZDQz1kZWNvbXBvc2VGQ0Qoc3JjLGRlY29tcFN0YXJ0LCBzcmNTdGFydCxkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleEFycixueCk7CisgICAgICAgICAgICAgICAgZGVjb21wU3RhcnQ9c3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgZGVzdEluZGV4PWRlc3RJbmRleEFyclswXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlc3RJbmRleCAtIGRlc3RTdGFydDsKKyAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb21iaW5pbmdDbGFzcyhpbnQgYykgeworICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgbm9ybTMyPWdldE5vcm0zMihjKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSgobm9ybTMyPj5DQ19TSElGVCkmMHhGRik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihpbnQgYykgeworICAgICAgICBpZihpc0Zvcm1hdFZlcnNpb25fMl8xKSB7CisgICAgICAgICAgICBpbnQgYXV4ID1BdXhUcmllSW1wbC5hdXhUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgcmV0dXJuIChib29sZWFuKSgoYXV4ICYgQVVYX0NPTVBfRVhfTUFTSykhPTApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0Nhbm9uU2FmZVN0YXJ0KGludCBjKSB7CisgICAgICAgIGlmKGlzRm9ybWF0VmVyc2lvbl8yXzEpIHsKKyAgICAgICAgICAgIGludCBhdXggPSBBdXhUcmllSW1wbC5hdXhUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgcmV0dXJuIChib29sZWFuKSgoYXV4ICYgQVVYX1VOU0FGRV9NQVNLKT09MCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGdldENhbm9uU3RhcnRTZXQoaW50IGMsIFVTZXJpYWxpemVkU2V0IGZpbGxTZXQpIHsKKworICAgICAgICBpZihmaWxsU2V0IT1udWxsICYmIGNhbm9uU3RhcnRTZXRzIT1udWxsKSB7CisgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGJpbmFyeSBzZWFyY2ggZm9yIGMKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBUaGVyZSBhcmUgdHdvIHNlYXJjaCB0YWJsZXMsCisgICAgICAgICAgICAgKiBvbmUgZm9yIEJNUCBjb2RlIHBvaW50cyBhbmQgb25lIGZvciBzdXBwbGVtZW50YXJ5IG9uZXMuCisgICAgICAgICAgICAgKiBTZWUgdW5vcm1pbXAuaCBmb3IgZGV0YWlscy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgY2hhcltdIHRhYmxlOworICAgICAgICAgICAgaW50IGk9MCwgc3RhcnQsIGxpbWl0OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnRbXSBpbmRleGVzID0gKGludFtdKSBjYW5vblN0YXJ0U2V0c1tDQU5PTl9TRVRfSU5ESUNJRVNfSU5ERVhdOworICAgICAgICAgICAgY2hhcltdIHN0YXJ0U2V0cyA9IChjaGFyW10pIGNhbm9uU3RhcnRTZXRzW0NBTk9OX1NFVF9TVEFSVF9TRVRTX0lOREVYXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgdGFibGU9KGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX0JNUF9UQUJMRV9JTkRFWF07CisgICAgICAgICAgICAgICAgc3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdD10YWJsZS5sZW5ndGg7CisgICAgCisgICAgICAgICAgICAgICAgLyogZWFjaCBlbnRyeSBpcyBhIHBhaXIgeyBjLCByZXN1bHQgfSAqLworICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0LTIpIHsKKyAgICAgICAgICAgICAgICAgICAgaT0oY2hhcikoKChzdGFydCtsaW1pdCkvNCkqMik7IAorICAgICAgICAgICAgICAgICAgICBpZihjPHRhYmxlW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdD1pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9aTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihpKTsKKyAgICAgICAgICAgICAgICAvKiBmb3VuZD8gKi8KKyAgICAgICAgICAgICAgICBpZihjPT10YWJsZVtzdGFydF0pIHsKKyAgICAgICAgICAgICAgICAgICAgaT10YWJsZVtzdGFydCsxXTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKGkgJiBDQU5PTl9TRVRfQk1QX01BU0spPT1DQU5PTl9TRVRfQk1QX0lTX0lOREVYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXN1bHQgMDF4eHh4eHggeHh4eHh4IGNvbnRhaW5zIGluZGV4IHggdG8gYSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFVTZXJpYWxpemVkU2V0ICovCisgICAgICAgICAgICAgICAgICAgICAgICBpJj0oQ0FOT05fU0VUX01BWF9DQU5PTl9TRVRTLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGxTZXQuZ2V0U2V0KHN0YXJ0U2V0cywoaS1pbmRleGVzLmxlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogb3RoZXIgcmVzdWx0IHZhbHVlcyBhcmUgQk1QIGNvZGUgcG9pbnRzIGZvciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpbmdsZS1jb2RlIHBvaW50IHNldHMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxTZXQuc2V0VG9PbmUoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2hhciBoaWdoLCBsb3csIGgsaj0wOworICAgIAorICAgICAgICAgICAgICAgIHRhYmxlPShjaGFyW10pIGNhbm9uU3RhcnRTZXRzW0NBTk9OX1NFVF9TVVBQX1RBQkxFX0lOREVYXTsKKyAgICAgICAgICAgICAgICBzdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0PXRhYmxlLmxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICBoaWdoPShjaGFyKShjPj4xNik7CisgICAgICAgICAgICAgICAgbG93PShjaGFyKWM7CisgICAgCisgICAgICAgICAgICAgICAgLyogZWFjaCBlbnRyeSBpcyBhIHRyaXBsZXQgeyBoaWdoKGMpLCBsb3coYyksIHJlc3VsdCB9ICovCisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8bGltaXQtMykgeworICAgICAgICAgICAgICAgICAgICAvKiAoc3RhcnQrbGltaXQpLzIgYW5kIGFkZHJlc3MgdHJpcGxldHMgKi8KKyAgICAgICAgICAgICAgICAgICAgaT0oY2hhcikoKChzdGFydCtsaW1pdCkvNikqMyk7CisgICAgICAgICAgICAgICAgICAgIGo9KGNoYXIpKHRhYmxlW2ldJjB4MWYpOyAvKiBoaWdoIHdvcmQgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IHRhYmxlVmFsID0gdGFibGVbaSsxXTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxvd0ludCA9IGxvdzsKKyAgICAgICAgICAgICAgICAgICAgaWYoaGlnaDxqIHx8ICgodGFibGVWYWw+bG93SW50KSAmJiAoaGlnaD09aikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdD1pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9aTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0uZXJyLnByaW50bG4oIlx0KChoaWdoPT1qKSAmJiAodGFibGVbaSsxXT5sb3cpKSA9PSAiICsgKChoaWdoPT1qKSAmJiAodGFibGVWYWw+bG93SW50KSkgKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIEtMVURHRTogSUJNIEpJVCBpbiAxLjQuMCBpcyBzb29vIGJyb2tlbgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYmVsb3cgbGluZXMgbWFrZSBUZXN0RXhoYXVzdGl2ZSBwYXNzCisgICAgICAgICAgICAgICAgICAgIGlmKElDVURlYnVnLmVuYWJsZWQoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlx0XHQgaiA9ICIgKyBVdGlsaXR5LmhleChqLDQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHQgaSA9ICIgKyBVdGlsaXR5LmhleChpLDQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHQgaGlnaCA9ICIrIFV0aWxpdHkuaGV4KGhpZ2gpICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx0IGxvdyA9ICIgICsgVXRpbGl0eS5oZXgobG93SW50LDQpICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdCB0YWJsZVtpKzFdOiAiKyBVdGlsaXR5LmhleCh0YWJsZVZhbCw0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogZm91bmQ/ICovCisgICAgICAgICAgICAgICAgaD10YWJsZVtzdGFydF07CisKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiYzogXFxVIisgSW50ZWdlci50b0hleFN0cmluZyhjKSsiIGkgOiAiK0ludGVnZXIudG9IZXhTdHJpbmcoaSkgKyIgaCA6ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGgpKTsKKyAgICAgICAgICAgICAgICBpbnQgdGFibGVWYWwxID0gdGFibGVbc3RhcnQrMV07CisgICAgICAgICAgICAgICAgaW50IGxvd0ludCA9IGxvdzsKKworICAgICAgICAgICAgICAgIGlmKGhpZ2g9PShoJjB4MWYpICYmIGxvd0ludD09dGFibGVWYWwxKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0YWJsZVZhbDIgPSB0YWJsZVtzdGFydCsyXTsKKyAgICAgICAgICAgICAgICAgICAgaT10YWJsZVZhbDI7CisgICAgICAgICAgICAgICAgICAgIGlmKChoJjB4ODAwMCk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSByZXN1bHQgaXMgYW4gaW5kZXggdG8gYSBVU2VyaWFsaXplZFNldCAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGxTZXQuZ2V0U2V0KHN0YXJ0U2V0cywoaS1pbmRleGVzLmxlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpbmdsZS1jb2RlIHBvaW50IHNldCB7eH0gaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyaXBsZXQgeyAxMDB4eHh4eCAwMDBoaGhoaCAgbGxsbGxsbGwgbGxsbGxsbGwgIHh4eHh4eHh4IHh4eHh4eHh4IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy9pfD0oKGludCloICYgMHgxZjAwKTw8ODsgLyogYWRkIGhpZ2ggYml0cyBmcm9tIGhpZ2goYykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gKChpbnQpaCAmIDB4MWYwMCk8PDg7CisgICAgICAgICAgICAgICAgICAgICAgICBpfD10ZW1wOyAvKiBhZGQgaGlnaCBiaXRzIGZyb20gaGlnaChjKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFNldC5zZXRUb09uZSgoaW50KWkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBub3QgZm91bmQgKi8KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RkNfTkZLQ19DbG9zdXJlKGludCBjLCBjaGFyW10gZGVzdCkgeworICAgICAgICAKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eTsKKyAgICAgICAgIAorICAgICAgICBpZihkZXN0PT1udWxsICkgeworICAgICAgICAgICAgZGVzdENhcGFjaXR5PTA7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZGVzdENhcGFjaXR5ID0gZGVzdC5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBhdXggPUF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisKKyAgICAgICAgYXV4Jj0gQVVYX0ZOQ19NQVNLOworICAgICAgICBpZihhdXghPTApIHsKKyAgICAgICAgICAgIGludCBzOworICAgICAgICAgICAgaW50IGluZGV4PWF1eDsgCisgICAgICAgICAgICBpbnQgbGVuZ3RoOworICAgICAgICAgICAgCisgICAgICAgICAgICBzID1leHRyYURhdGFbaW5kZXhdOworICAgICAgICAgICAgaWYoczwweGZmMDApIHsKKyAgICAgICAgICAgICAgICAvKiBzIHBvaW50cyB0byB0aGUgc2luZ2xlLXVuaXQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxlbmd0aD1zJjB4ZmY7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKDA8bGVuZ3RoICYmIGxlbmd0aDw9ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShleHRyYURhdGEsaW5kZXgsZGVzdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qIElzIGMgYW4gTkY8bW9kZT4tc2tpcHBhYmxlIGNvZGUgcG9pbnQ/IFNlZSB1bm9ybWltcC5oLiAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05GU2tpcHBhYmxlKGludCBjLCBOb3JtYWxpemVyLk1vZGUgbW9kZSwgbG9uZyBtYXNrKSB7CisgICAgICAgIGxvbmcgLyp1bnNpZ25lZCBpbnQqLyBub3JtMzI7CisgICAgICAgIG1hc2sgPSBtYXNrICYgVU5TSUdORURfSU5UX01BU0s7CisgICAgICAgIGNoYXIgYXV4OworICAgCisgICAgICAgIC8qIGNoZWNrIGNvbmRpdGlvbnMgKGEpLi4oZSksIHNlZSB1bm9ybWltcC5oICovCisgICAgICAgIG5vcm0zMiA9IGdldE5vcm0zMihjKTsKKworICAgICAgICBpZigobm9ybTMyJm1hc2spIT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIGZhaWxzIChhKS4uKGUpLCBub3Qgc2tpcHBhYmxlICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYobW9kZSA9PSBOb3JtYWxpemVyLk5GRCB8fCBtb2RlID09IE5vcm1hbGl6ZXIuTkZLRCB8fCBtb2RlID09IE5vcm1hbGl6ZXIuTk9ORSl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogTkYqRCwgcGFzc2VkIChhKS4uKGMpLCBpcyBza2lwcGFibGUgKi8KKyAgICAgICAgfQorICAgICAgICAvKiBjaGVjayBjb25kaXRpb25zIChhKS4uKGUpLCBzZWUgdW5vcm1pbXAuaCAqLworCisgICAgICAgIC8qIE5GKkMvRkNDLCBwYXNzZWQgKGEpLi4oZSkgKi8KKyAgICAgICAgaWYoKG5vcm0zMiYgUUNfTkZEKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIG5vIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBpcyBza2lwcGFibGUgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjaGVjayBIYW5ndWwgc3lsbGFibGVzIGFsZ29yaXRobWljYWxseSAqLworICAgICAgICBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAvKiBKYW1vIHBhc3NlZCAoYSkuLihlKSBhYm92ZSwgbXVzdCBiZSBIYW5ndWwgKi8KKyAgICAgICAgICAgIHJldHVybiAhaXNIYW5ndWxXaXRob3V0SmFtb1QoKGNoYXIpYyk7IC8qIExWVCBhcmUgc2tpcHBhYmxlLCBMViBhcmUgbm90ICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogaWYobW9kZTw9VU5PUk1fTkZLQykgeyAtLSBlbmFibGUgd2hlbiBpbXBsZW1lbnRpbmcgRkNDICovCisgICAgICAgIC8qIE5GKkMsIHRlc3QgKGYpIGZsYWcgKi8KKyAgICAgICAgaWYoIWlzRm9ybWF0VmVyc2lvbl8yXzIpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm8gKGYpIGRhdGEsIHNheSBub3Qgc2tpcHBhYmxlIHRvIGJlIHNhZmUgKi8KKyAgICAgICAgfQorICAgIAorCisgICAgICAgIGF1eCA9IEF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIHJldHVybiAoYXV4JkFVWF9ORkNfU0tJUF9GX01BU0spPT0wOyAvKiBUUlVFPXNraXBwYWJsZSBpZiB0aGUgKGYpIGZsYWcgaXMgbm90IHNldCAqLworICAgIAorICAgICAgICAvKiB9IGVsc2UgeyBGQ0MsIHRlc3QgZmNkPD0xIGluc3RlYWQgb2YgdGhlIGFib3ZlIH0gKi8KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbgorICAgIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZShjb25zdCB2b2lkICpjb250ZXh0LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSkgeworICAgICAgICAvLyBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgdG8gdGhlIFVTZXQgCisgICAgICAgIHVzZXRfYWRkKChVU2V0ICopY29udGV4dCwgc3RhcnQpOworICAgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBhZGRQcm9wZXJ0eVN0YXJ0cyhVbmljb2RlU2V0IHNldCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAKKyAgICAgICAgLyogYWRkIHRoZSBzdGFydCBjb2RlIHBvaW50IG9mIGVhY2ggc2FtZS12YWx1ZSByYW5nZSBvZiBlYWNoIHRyaWUgKi8KKyAgICAgICAgLy91dHJpZV9lbnVtKCZub3JtVHJpZSwgTlVMTCwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlLCBzZXQpOworICAgICAgICBUcmllSXRlcmF0b3Igbm9ybUl0ZXIgPSBuZXcgVHJpZUl0ZXJhdG9yKE5vcm1UcmllSW1wbC5ub3JtVHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IG5vcm1SZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKG5vcm1JdGVyLm5leHQobm9ybVJlc3VsdCkpeworICAgICAgICAgICAgc2V0LmFkZChub3JtUmVzdWx0LnN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy91dHJpZV9lbnVtKCZmY2RUcmllLCBOVUxMLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIHNldCk7CisgICAgICAgIFRyaWVJdGVyYXRvciBmY2RJdGVyICA9IG5ldyBUcmllSXRlcmF0b3IoRkNEVHJpZUltcGwuZmNkVHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGZjZFJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworCisgICAgICAgIHdoaWxlKGZjZEl0ZXIubmV4dChmY2RSZXN1bHQpKXsKKyAgICAgICAgICAgIHNldC5hZGQoZmNkUmVzdWx0LnN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYoaXNGb3JtYXRWZXJzaW9uXzJfMSl7CisgICAgICAgICAgICAvL3V0cmllX2VudW0oJmF1eFRyaWUsIE5VTEwsIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZSwgc2V0KTsKKyAgICAgICAgICAgIFRyaWVJdGVyYXRvciBhdXhJdGVyICA9IG5ldyBUcmllSXRlcmF0b3IoQXV4VHJpZUltcGwuYXV4VHJpZSk7CisgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBhdXhSZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdoaWxlKGF1eEl0ZXIubmV4dChhdXhSZXN1bHQpKXsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGF1eFJlc3VsdC5zdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogYWRkIEhhbmd1bCBMViBzeWxsYWJsZXMgYW5kIExWKzEgYmVjYXVzZSBvZiBza2lwcGFibGVzICovCisgICAgICAgIGZvcihjPUhBTkdVTF9CQVNFOyBjPEhBTkdVTF9CQVNFK0hBTkdVTF9DT1VOVDsgYys9SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgc2V0LmFkZChjKzEpOworICAgICAgICB9CisgICAgICAgIHNldC5hZGQoSEFOR1VMX0JBU0UrSEFOR1VMX0NPVU5UKTsgLyogYWRkIEhhbmd1bCsxIHRvIGNvbnRpbnVlIHdpdGggb3RoZXIgcHJvcGVydGllcyAqLworICAgICAgICByZXR1cm4gc2V0OyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBBUEksIHVzZWQgaW4gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKCkuCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGMgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBtb2RlVmFsdWUgbnVtZXJpYyB2YWx1ZSBjb21wYXRpYmxlIHdpdGggTW9kZQorICAgICAqIEByZXR1cm4gbnVtZXJpYyB2YWx1ZSBjb21wYXRpYmxlIHdpdGggUXVpY2tDaGVjaworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHF1aWNrQ2hlY2soaW50IGMsIGludCBtb2RlVmFsdWUpIHsKKyAgICAgICAgZmluYWwgaW50IHFjTWFza1svKlVOT1JNX01PREVfQ09VTlQqL109eworICAgICAgICAgICAgMCwgMCwgUUNfTkZELCBRQ19ORktELCBRQ19ORkMsIFFDX05GS0MKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgbm9ybTMyPShpbnQpZ2V0Tm9ybTMyKGMpJnFjTWFza1ttb2RlVmFsdWVdOworCisgICAgICAgIGlmKG5vcm0zMj09MCkgeworICAgICAgICAgICAgcmV0dXJuIDE7IC8vIFlFUworICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZRQ19BTllfTk8pIT0wKSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLy8gTk8KKyAgICAgICAgfSBlbHNlIC8qIF9OT1JNX1FDX0FOWV9NQVlCRSAqLyB7CisgICAgICAgICAgICByZXR1cm4gMjsgLy8gTUFZQkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBBUEksIHVzZWQgYnkgY29sbGF0aW9uIGNvZGUuCisgICAgICogR2V0IGFjY2VzcyB0byB0aGUgaW50ZXJuYWwgRkNEIHRyaWUgdGFibGUgdG8gYmUgYWJsZSB0byBwZXJmb3JtCisgICAgICogaW5jcmVtZW50YWwsIHBlci1jb2RlIHVuaXQsIEZDRCBjaGVja3MgaW4gY29sbGF0aW9uLgorICAgICAqIE9uZSBwb2ludGVyIGlzIHN1ZmZpY2llbnQgYmVjYXVzZSB0aGUgdHJpZSBpbmRleCB2YWx1ZXMgYXJlIG9mZnNldAorICAgICAqIGJ5IHRoZSBpbmRleCBzaXplLCBzbyB0aGF0IHRoZSBzYW1lIHBvaW50ZXIgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIHRyaWUgCisgICAgICogZGF0YS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIENoYXJUcmllIGdldEZDRFRyaWUoKXsKKyAgICAgICAgcmV0dXJuIEZDRFRyaWVJbXBsLmZjZFRyaWU7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisKKyAgICAKKyAgIC8qIGNvbXBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyAgICAvKgorICAgICAqIENvbXBhcmUgdHdvIHN0cmluZ3MgZm9yIGNhbm9uaWNhbCBlcXVpdmFsZW5jZS4KKyAgICAgKiBGdXJ0aGVyIG9wdGlvbnMgaW5jbHVkZSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gYW5kCisgICAgICogY29kZSBwb2ludCBvcmRlciAoYXMgb3Bwb3NlZCB0byBjb2RlIHVuaXQgb3JkZXIpLgorICAgICAqCisgICAgICogSW4gdGhpcyBmdW5jdGlvbiwgY2Fub25pY2FsIGVxdWl2YWxlbmNlIGlzIG9wdGlvbmFsIGFzIHdlbGwuCisgICAgICogSWYgY2Fub25pY2FsIGVxdWl2YWxlbmNlIGlzIHRlc3RlZCwgdGhlbiBib3RoIHN0cmluZ3MgbXVzdCBmdWxmaWxsCisgICAgICogdGhlIEZDRCBjaGVjay4KKyAgICAgKgorICAgICAqIFNlbWFudGljYWxseSwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogICBzdHJjbXBbQ29kZVBvaW50T3JkZXJdKGZvbGRDYXNlKE5GRChzMSkpLCBmb2xkQ2FzZShORkQoczIpKSkKKyAgICAgKiB3aGVyZSBjb2RlIHBvaW50IG9yZGVyLCBORkQgYW5kIGZvbGRDYXNlIGFyZSBhbGwgb3B0aW9uYWwuCisgICAgICoKKyAgICAgKiBTdHJpbmcgY29tcGFyaXNvbnMgYWxtb3N0IGFsd2F5cyB5aWVsZCByZXN1bHRzIGJlZm9yZSBwcm9jZXNzaW5nIGJvdGggCisgICAgICogc3RyaW5ncyBjb21wbGV0ZWx5LgorICAgICAqIFRoZXkgYXJlIGdlbmVyYWxseSBtb3JlIGVmZmljaWVudCB3b3JraW5nIGluY3JlbWVudGFsbHkgaW5zdGVhZCBvZgorICAgICAqIHBlcmZvcm1pbmcgdGhlIHN1Yi1wcm9jZXNzaW5nIChzdHJsZW4sIG5vcm1hbGl6YXRpb24sIGNhc2UtZm9sZGluZykKKyAgICAgKiBvbiB0aGUgZW50aXJlIHN0cmluZ3MgZmlyc3QuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbHNvIHVubmVjZXNzYXJ5IHRvIG5vdCBub3JtYWxpemUgaWRlbnRpY2FsIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGluIHByaW5jaXBsZSBhcyBmb2xsb3dzOgorICAgICAqCisgICAgICogbG9vcCB7CisgICAgICogICBnZXQgb25lIGNvZGUgdW5pdCBjMSBmcm9tIHMxICgtMSBpZiBlbmQgb2Ygc291cmNlKQorICAgICAqICAgZ2V0IG9uZSBjb2RlIHVuaXQgYzIgZnJvbSBzMiAoLTEgaWYgZW5kIG9mIHNvdXJjZSkKKyAgICAgKgorICAgICAqICAgaWYoZWl0aGVyIHN0cmluZyBmaW5pc2hlZCkgeworICAgICAqICAgICByZXR1cm4gcmVzdWx0OworICAgICAqICAgfQorICAgICAqICAgaWYoYzE9PWMyKSB7CisgICAgICogICAgIGNvbnRpbnVlOworICAgICAqICAgfQorICAgICAqCisgICAgICogICAvLyBjMSE9YzIKKyAgICAgKiAgIHRyeSB0byBkZWNvbXBvc2UvY2FzZS1mb2xkIGMxL2MyLCBhbmQgY29udGludWUgaWYgb25lIGRvZXM7CisgICAgICoKKyAgICAgKiAgIC8vIHN0aWxsIGMxIT1jMiBhbmQgbmVpdGhlciBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMsIHJldHVybiByZXN1bHQKKyAgICAgKiAgIHJldHVybiBjMS1jMjsKKyAgICAgKiB9CisgICAgICoKKyAgICAgKiBXaGVuIGEgY2hhcmFjdGVyIGRlY29tcG9zZXMsIHRoZW4gdGhlIHBvaW50ZXIgZm9yIHRoYXQgc291cmNlIGNoYW5nZXMgdG8KKyAgICAgKiB0aGUgZGVjb21wb3NpdGlvbiwgcHVzaGluZyB0aGUgcHJldmlvdXMgcG9pbnRlciBvbnRvIGEgc3RhY2suCisgICAgICogV2hlbiB0aGUgZW5kIG9mIHRoZSBkZWNvbXBvc2l0aW9uIGlzIHJlYWNoZWQsIHRoZW4gdGhlIGNvZGUgdW5pdCByZWFkZXIKKyAgICAgKiBwb3BzIHRoZSBwcmV2aW91cyBzb3VyY2UgZnJvbSB0aGUgc3RhY2suCisgICAgICogKFNhbWUgZm9yIGNhc2UtZm9sZGluZy4pCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGNvbXBsaWNhdGVkIGZ1cnRoZXIgYnkgb3BlcmF0aW5nIG9uIHZhcmlhYmxlLXdpZHRoIFVURi0xNi4KKyAgICAgKiBUaGUgdG9wIHBhcnQgb2YgdGhlIGxvb3Agd29ya3Mgb24gY29kZSB1bml0cywgd2hpbGUgbG9va3VwcyBmb3IgZGVjb21wb3NpdGlvbgorICAgICAqIGFuZCBjYXNlLWZvbGRpbmcgbmVlZCBjb2RlIHBvaW50cy4KKyAgICAgKiBDb2RlIHBvaW50cyBhcmUgYXNzZW1ibGVkIGFmdGVyIHRoZSBlcXVhbGl0eS9lbmQtb2Ytc291cmNlIHBhcnQuCisgICAgICogVGhlIHNvdXJjZSBwb2ludGVyIGlzIG9ubHkgYWR2YW5jZWQgYmV5b25kIGFsbCBjb2RlIHVuaXRzIHdoZW4gdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBhY3R1YWxseSBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMuCisgICAgICoKKyAgICAgKiBJZiB3ZSB3ZXJlIG9uIGEgdHJhaWwgc3Vycm9nYXRlIHVuaXQgd2hlbiBhc3NlbWJsaW5nIGEgY29kZSBwb2ludCwKKyAgICAgKiBhbmQgdGhlIGNvZGUgcG9pbnQgZGVjb21wb3Nlcy9jYXNlLWZvbGRzLCB0aGVuIHRoZSBkZWNvbXBvc2l0aW9uL2ZvbGRpbmcKKyAgICAgKiByZXN1bHQgbXVzdCBiZSBjb21wYXJlZCB3aXRoIHRoZSBwYXJ0IG9mIHRoZSBvdGhlciBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB0bworICAgICAqIHRoaXMgc3RyaW5nJ3MgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2luY2Ugd2Ugb25seSBhc3NlbWJsZSBhIGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGEgdHJhaWwgdW5pdCB3aGVuIHRoZQorICAgICAqIHByZWNlZGluZyBsZWFkIHVuaXRzIHdlcmUgaWRlbnRpY2FsLCB3ZSBiYWNrIHVwIHRoZSBvdGhlciBzdHJpbmcgYnkgb25lIHVuaXQKKyAgICAgKiBpbiBzdWNoIGEgY2FzZS4KKyAgICAgKgorICAgICAqIFRoZSBvcHRpb25hbCBjb2RlIHBvaW50IG9yZGVyIGNvbXBhcmlzb24gYXQgdGhlIGVuZCB3b3JrcyB3aXRoCisgICAgICogdGhlIHNhbWUgZml4LXVwIGFzIHRoZSBvdGhlciBjb2RlIHBvaW50IG9yZGVyIGNvbXBhcmlzb24gZnVuY3Rpb25zLgorICAgICAqIFNlZSB1c3RyaW5nLmMgYW5kIHRoZSBjb21tZW50IG5lYXIgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQXNzdW1wdGlvbjogQSBkZWNvbXBvc2l0aW9uIG9yIGNhc2UtZm9sZGluZyByZXN1bHQgc3RyaW5nIG5ldmVyIGNvbnRhaW5zCisgICAgICogYSBzaW5nbGUgc3Vycm9nYXRlLiBUaGlzIGlzIGEgc2FmZSBhc3N1bXB0aW9uIGluIHRoZSBVbmljb2RlIFN0YW5kYXJkLgorICAgICAqIFRoZXJlZm9yZSwgd2UgZG8gbm90IG5lZWQgdG8gY2hlY2sgZm9yIHN1cnJvZ2F0ZSBwYWlycyBhY3Jvc3MKKyAgICAgKiBkZWNvbXBvc2l0aW9uL2Nhc2UtZm9sZGluZyBib3VuZGFyaWVzLgorICAgICAqIEZ1cnRoZXIgYXNzdW1wdGlvbnMgKHNlZSB2ZXJpZmljYXRpb25zIHRzdG5vcm0uY3BwKToKKyAgICAgKiBUaGUgQVBJIGZ1bmN0aW9uIGNoZWNrcyBmb3IgRkNEIGZpcnN0LCB3aGlsZSB0aGUgY29yZSBmdW5jdGlvbgorICAgICAqIGZpcnN0IGNhc2UtZm9sZHMgYW5kIHRoZW4gZGVjb21wb3Nlcy4gVGhpcyByZXF1aXJlcyB0aGF0IGNhc2UtZm9sZGluZyBkb2VzIG5vdAorICAgICAqIHVuLUZDRCBhbnkgc3RyaW5ncy4KKyAgICAgKgorICAgICAqIFRoZSBBUEkgZnVuY3Rpb24gbWF5IGFsc28gTkZEIHRoZSBpbnB1dCBhbmQgdHVybiBvZmYgZGVjb21wb3NpdGlvbi4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIHRoYXQgY2FzZS1mb2xkaW5nIGRvZXMgbm90IHVuLU5GRCBzdHJpbmdzIGVpdGhlci4KKyAgICAgKgorICAgICAqIFRPRE8gSWYgYW55IG9mIHRoZSBhYm92ZSB0d28gYXNzdW1wdGlvbnMgaXMgdmlvbGF0ZWQsCisgICAgICogdGhlbiB0aGlzIGVudGlyZSBjb2RlIG11c3QgYmUgcmUtdGhvdWdodC4KKyAgICAgKiBJZiB0aGlzIGhhcHBlbnMsIHRoZW4gYSBzaW1wbGUgc29sdXRpb24gaXMgdG8gY2FzZS1mb2xkIGJvdGggc3RyaW5ncyB1cCBmcm9udAorICAgICAqIGFuZCB0byB0dXJuIG9mZiBVTk9STV9JTlBVVF9JU19GQ0QuCisgICAgICogV2UgYWxyZWFkeSBkbyB0aGlzIHdoZW4gbm90IGJvdGggc3RyaW5ncyBhcmUgaW4gRkNEIGJlY2F1c2UgbWFrZUZDRAorICAgICAqIHdvdWxkIGJlIGEgcGFydGlhbCBORkQgYmVmb3JlIHRoZSBjYXNlIGZvbGRpbmcsIHdoaWNoIGRvZXMgbm90IHdvcmsuCisgICAgICogTm90ZSB0aGF0IGFsbCBvZiB0aGlzIGlzIG9ubHkgYSBwcm9ibGVtIHdoZW4gY2FzZS1mb2xkaW5nIF9hbmRfCisgICAgICogY2Fub25pY2FsIGVxdWl2YWxlbmNlIGNvbWUgdG9nZXRoZXIuCisgICAgICogCisgICAgICogVGhpcyBmdW5jdGlvbiBjb3VsZCBiZSBtb3ZlZCB0byBhIGRpZmZlcmVudCBzb3VyY2UgZmlsZSwgYXQgaW5jcmVhc2VkIGNvc3QKKyAgICAgKiBmb3IgY2FsbGluZyB0aGUgZGVjb21wb3NpdGlvbiBhY2Nlc3MgZnVuY3Rpb24uCisgICAgICovCisgICAgCisgICAgLy8gc3RhY2sgZWxlbWVudCBmb3IgcHJldmlvdXMtbGV2ZWwgc291cmNlL2RlY29tcG9zaXRpb24gcG9pbnRlcnMKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDbXBFcXVpdkxldmVsIHsKKyAgICAgICAgY2hhcltdIHNvdXJjZTsKKyAgICAgICAgaW50IHN0YXJ0OworICAgICAgICBpbnQgczsKKyAgICAgICAgaW50IGxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBvbmUgY29kZSBwb2ludC4KKyAgICAgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGJ1ZmZlciBvdXQtb25seSBidWZmZXIgZm9yIGFsZ29yaXRobWljIGRlY29tcG9zaXRpb25zIG9mIEhhbmd1bAorICAgICAqIEBwYXJhbSBsZW5ndGggb3V0LW9ubHksIHRha2VzIHRoZSBsZW5ndGggb2YgdGhlIGRlY29tcG9zaXRpb24sIGlmIGFueQorICAgICAqIEByZXR1cm4gaW5kZXggaW50byB0aGUgZXh0cmFEYXRhIGFycmF5LCBvciAwIGlmIG5vbmUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGRlY29tcG9zZShpbnQgYywgY2hhcltdIGJ1ZmZlcikgeworICAgICAgICAKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBsZW5ndGg9MDsKKyAgICAgICAgbm9ybTMyID0gKGxvbmcpICgoVU5TSUdORURfSU5UX01BU0spICYgTm9ybVRyaWVJbXBsLm5vcm1UcmllLmdldENvZGVQb2ludFZhbHVlKGMpKTsKKyAgICAgICAgaWYoKG5vcm0zMiAmIFFDX05GRCkhPTApIHsKKyAgICAgICAgICAgIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKiBIYW5ndWwgc3lsbGFibGU6IGRlY29tcG9zZSBhbGdvcml0aG1pY2FsbHkgKi8KKyAgICAgICAgICAgICAgICBjaGFyIGMyOworICAgIAorICAgICAgICAgICAgICAgIGMtPUhBTkdVTF9CQVNFOworICAgIAorICAgICAgICAgICAgICAgIGMyPShjaGFyKShjJUpBTU9fVF9DT1VOVCk7CisgICAgICAgICAgICAgICAgYy89SkFNT19UX0NPVU5UOworICAgICAgICAgICAgICAgIGlmKGMyPjApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyWzJdPShjaGFyKShKQU1PX1RfQkFTRStjMik7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0zOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXJbMV09KGNoYXIpKEpBTU9fVl9CQVNFK2MlSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbMF09KGNoYXIpKEpBTU9fTF9CQVNFK2MvSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBub3JtYWwgZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgIGFyZ3MgPSBuZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGRlY29tcG9zZShub3JtMzIsIGFyZ3MpOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZXh0cmFEYXRhLGluZGV4LGJ1ZmZlciwwLGFyZ3MubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJncy5sZW5ndGggOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZm9sZENhc2UoaW50IGMsIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpeworICAgICAgICBTdHJpbmcgc3JjID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgU3RyaW5nIGZvbGRlZFN0ciA9IFVDaGFyYWN0ZXIuZm9sZENhc2Uoc3JjLG9wdGlvbnMpOworICAgICAgICBjaGFyW10gZm9sZGVkQyA9IGZvbGRlZFN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBmb3IoaW50IGk9MDtpPGZvbGRlZEMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBpZihkZXN0U3RhcnQ8ZGVzdExpbWl0KXsKKyAgICAgICAgICAgICAgICBkZXN0W2Rlc3RTdGFydF09Zm9sZGVkQ1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGFsd2F5cyBpbmNyZW1lbnQgZGVzdFN0YXJ0IHNvIHRoYXQgd2UgY2FuIHJldHVybiAKKyAgICAgICAgICAgIC8vIHRoZSByZXF1aXJlZCBsZW5ndGgKKyAgICAgICAgICAgIGRlc3RTdGFydCsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoYz09VVRGMTYuY2hhckF0KGZvbGRlZFN0ciwwKSkgPyAtZGVzdFN0YXJ0IDogZGVzdFN0YXJ0OworICAgIH0KKyAgICAKKyAgICAvKgorICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZm9sZENhc2UoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpeworICAgICAgICBTdHJpbmcgc291cmNlID1uZXcgU3RyaW5nKHNyYyxzcmNTdGFydCwoc3JjTGltaXQtc3JjU3RhcnQpKTsKKyAgICAgICAgU3RyaW5nIGZvbGRlZFN0ciA9IFVDaGFyYWN0ZXIuZm9sZENhc2Uoc291cmNlLG9wdGlvbnMpOworICAgICAgICBjaGFyW10gZm9sZGVkQyA9IGZvbGRlZFN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBmb3IoaW50IGk9MDtpPGZvbGRlZEMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBpZihkZXN0U3RhcnQ8ZGVzdExpbWl0KXsKKyAgICAgICAgICAgICAgICBkZXN0W2Rlc3RTdGFydF09Zm9sZGVkQ1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGFsd2F5cyBpbmNyZW1lbnQgZGVzdFN0YXJ0IHNvIHRoYXQgd2UgY2FuIHJldHVybiAKKyAgICAgICAgICAgIC8vIHRoZSByZXF1aXJlZCBsZW5ndGgKKyAgICAgICAgICAgIGRlc3RTdGFydCsrOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3RTdGFydDsKKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjbXBFcXVpdkZvbGQoU3RyaW5nIHMxLCBTdHJpbmcgczIsaW50IG9wdGlvbnMpeworICAgICAgICByZXR1cm4gY21wRXF1aXZGb2xkKHMxLnRvQ2hhckFycmF5KCksMCxzMS5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMi50b0NoYXJBcnJheSgpLDAsczIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8vIGludGVybmFsIGZ1bmN0aW9uCisgICAgcHVibGljIHN0YXRpYyBpbnQgY21wRXF1aXZGb2xkKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsaW50IHMxTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzMiwgaW50IHMyU3RhcnQsaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgIC8vIGN1cnJlbnQtbGV2ZWwgc3RhcnQvbGltaXQgLSBzMS9zMiBhcyBjdXJyZW50CisgICAgICAgIGludCBzdGFydDEsIHN0YXJ0MiwgbGltaXQxLCBsaW1pdDI7CisgICAgICAgIGNoYXJbXSBjU291cmNlMSwgY1NvdXJjZTI7CisgICAgICAgIAorICAgICAgICBjU291cmNlMSA9IHMxOworICAgICAgICBjU291cmNlMiA9IHMyOworICAgICAgICAvLyBkZWNvbXBvc2l0aW9uIHZhcmlhYmxlcworICAgICAgICBpbnQgbGVuZ3RoOworICAgIAorICAgICAgICAvLyBzdGFja3Mgb2YgcHJldmlvdXMtbGV2ZWwgc3RhcnQvY3VycmVudC9saW1pdAorICAgICAgICBDbXBFcXVpdkxldmVsW10gc3RhY2sxID0gbmV3IENtcEVxdWl2TGV2ZWxbXXsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENtcEVxdWl2TGV2ZWwoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIENtcEVxdWl2TGV2ZWxbXSBzdGFjazIgPSBuZXcgQ21wRXF1aXZMZXZlbFtdeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgLy8gZGVjb21wb3NpdGlvbiBidWZmZXJzIGZvciBIYW5ndWwKKyAgICAgICAgY2hhcltdIGRlY29tcDEgPSBuZXcgY2hhcls4XTsKKyAgICAgICAgY2hhcltdIGRlY29tcDIgPSBuZXcgY2hhcls4XTsKKyAgICAKKyAgICAgICAgLy8gY2FzZSBmb2xkaW5nIGJ1ZmZlcnMsIG9ubHkgdXNlIGN1cnJlbnQtbGV2ZWwgc3RhcnQvbGltaXQKKyAgICAgICAgY2hhcltdIGZvbGQxID0gbmV3IGNoYXJbMzJdOworICAgICAgICBjaGFyW10gZm9sZDIgPSBuZXcgY2hhclszMl07CisgICAgCisgICAgICAgIC8vIHRyYWNrIHdoaWNoIGlzIHRoZSBjdXJyZW50IGxldmVsIHBlciBzdHJpbmcKKyAgICAgICAgaW50IGxldmVsMSwgbGV2ZWwyOworICAgIAorICAgICAgICAvLyBjdXJyZW50IGNvZGUgdW5pdHMsIGFuZCBjb2RlIHBvaW50cyBmb3IgbG9va3VwcworICAgICAgICBpbnQgYzEsIGMyOworICAgICAgICBpbnQgY3AxLCBjcDI7CisgICAgCisgICAgICAgIC8vIG5vIGFyZ3VtZW50IGVycm9yIGNoZWNraW5nIGJlY2F1c2UgdGhpcyBpdHNlbGYgaXMgbm90IGFuIEFQSQorICAgIAorICAgICAgICAvLyBhc3N1bWUgdGhhdCBhdCBsZWFzdCBvbmUgb2YgdGhlIG9wdGlvbnMgQ09NUEFSRV9FUVVJViBhbmQgCisgICAgICAgIC8vIENPTVBBUkVfSUdOT1JFX0NBU0UgaXMgc2V0CisgICAgICAgIC8vIG90aGVyd2lzZSB0aGlzIGZ1bmN0aW9uIG11c3QgYmVoYXZlIGV4YWN0bHkgYXMgdXBydl9zdHJDb21wYXJlKCkKKyAgICAgICAgLy8gbm90IGNoZWNraW5nIGZvciB0aGF0IGhlcmUgbWFrZXMgdGVzdGluZyB0aGlzIGZ1bmN0aW9uIGVhc2llcgorCisgICAgCisgICAgICAgIC8vIGluaXRpYWxpemUKKyAgICAgICAgc3RhcnQxPXMxU3RhcnQ7CisgICAgICAgIGxpbWl0MT1zMUxpbWl0OworICAgICAgICAKKyAgICAgICAgc3RhcnQyPXMyU3RhcnQ7CisgICAgICAgIGxpbWl0Mj1zMkxpbWl0OworICAgICAgICAKKyAgICAgICAgbGV2ZWwxPWxldmVsMj0wOworICAgICAgICBjMT1jMj0tMTsKKyAgICAgICAgY3AxPWNwMj0tMTsKKyAgICAgICAgLy8gY29tcGFyaXNvbiBsb29wCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgLy8gaGVyZSBhIGNvZGUgdW5pdCB2YWx1ZSBvZiAtMSBtZWFucyAiZ2V0IGFub3RoZXIgY29kZSB1bml0IgorICAgICAgICAgICAgLy8gYmVsb3cgaXQgd2lsbCBtZWFuICJ0aGlzIHNvdXJjZSBpcyBmaW5pc2hlZCIKKyAgICAKKyAgICAgICAgICAgIGlmKGMxPDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXQgbmV4dCBjb2RlIHVuaXQgZnJvbSBzdHJpbmcgMSwgcG9zdC1pbmNyZW1lbnQKKyAgICAgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoczFTdGFydD49bGltaXQxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihsZXZlbDE9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxW3MxU3RhcnRdOworICAgICAgICAgICAgICAgICAgICAgICAgKytzMVN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVhY2hlZCBlbmQgb2YgbGV2ZWwgYnVmZmVyLCBwb3Agb25lIGxldmVsCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tbGV2ZWwxOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQxPXN0YWNrMVtsZXZlbDFdLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKHN0YXJ0MT09LTEpOyAvLyMjIyMjIyBjaGVjayB0aGlzCisgICAgICAgICAgICAgICAgICAgIHMxU3RhcnQ9c3RhY2sxW2xldmVsMV0uczsKKyAgICAgICAgICAgICAgICAgICAgbGltaXQxPXN0YWNrMVtsZXZlbDFdLmxpbWl0OworICAgICAgICAgICAgICAgICAgICBjU291cmNlMT1zdGFjazFbbGV2ZWwxXS5zb3VyY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoYzI8MCkgeworICAgICAgICAgICAgICAgIC8vIGdldCBuZXh0IGNvZGUgdW5pdCBmcm9tIHN0cmluZyAyLCBwb3N0LWluY3JlbWVudAorICAgICAgICAgICAgICAgIGZvcig7OykgeyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHMyU3RhcnQ+PWxpbWl0MikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYobGV2ZWwyPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzI9LTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjMj1jU291cmNlMltzMlN0YXJ0XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHJlYWNoZWQgZW5kIG9mIGxldmVsIGJ1ZmZlciwgcG9wIG9uZSBsZXZlbAorICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWxldmVsMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Mj1zdGFjazJbbGV2ZWwyXS5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShzdGFydDI9PS0xKTsKKyAgICAgICAgICAgICAgICAgICAgczJTdGFydD1zdGFjazJbbGV2ZWwyXS5zOworICAgICAgICAgICAgICAgICAgICBsaW1pdDI9c3RhY2syW2xldmVsMl0ubGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGNTb3VyY2UyPXN0YWNrMltsZXZlbDJdLnNvdXJjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGMxIGFuZCBjMgorICAgICAgICAgICAgLy8gZWl0aGVyIHZhcmlhYmxlIGMxLCBjMiBpcyAtMSBvbmx5IGlmIHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZyAKKyAgICAgICAgICAgIC8vIGlzIGZpbmlzaGVkCisgICAgICAgICAgICBpZihjMT09YzIpIHsKKyAgICAgICAgICAgICAgICBpZihjMTwwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAgIC8vIGMxPT1jMj09LTEgaW5kaWNhdGluZyBlbmQgb2Ygc3RyaW5ncworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjMT1jMj0tMTsgICAgICAgLy8gbWFrZSB1cyBmZXRjaCBuZXcgY29kZSB1bml0cworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIGlmKGMxPDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7ICAgICAgLy8gc3RyaW5nIDEgZW5kcyBiZWZvcmUgc3RyaW5nIDIKKyAgICAgICAgICAgIH0gZWxzZSBpZihjMjwwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7ICAgICAgIC8vIHN0cmluZyAyIGVuZHMgYmVmb3JlIHN0cmluZyAxCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjMSE9YzIgJiYgYzE+PTAgJiYgYzI+PTAKKyAgICAKKyAgICAgICAgICAgIC8vIGdldCBjb21wbGV0ZSBjb2RlIHBvaW50cyBmb3IgYzEsIGMyIGZvciBsb29rdXBzIGlmIGVpdGhlciBpcyBhIAorICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICBjcDE9YzE7CisgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMSkpIHsgCisgICAgICAgICAgICAgICAgY2hhciBjOworICAgIAorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHMxU3RhcnQhPWxpbWl0MSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYz1jU291cmNlMVtzMVN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgKytzMTsgb25seSBiZWxvdyBpZiBjcDEgZGVjb21wb3Nlcy9jYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICBjcDE9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpYzEsIGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzEpICovIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHN0YXJ0MTw9KHMxU3RhcnQtMikgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGM9Y1NvdXJjZTFbKHMxU3RhcnQtMildKQorICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3AxPVVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGMsIChjaGFyKWMxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNwMj1jMjsKKyAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKCAgICBzMlN0YXJ0IT1saW1pdDIgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGM9Y1NvdXJjZTJbczJTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlICsrczI7IG9ubHkgYmVsb3cgaWYgY3AyIGRlY29tcG9zZXMvY2FzZS1mb2xkcworICAgICAgICAgICAgICAgICAgICAgICAgY3AyPVVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWMyLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisgICAgICAgICAgICAgICAgICAgIGlmKCAgICBzdGFydDI8PShzMlN0YXJ0LTIpICYmICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjPWNTb3VyY2UyW3MyU3RhcnQtMl0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjcDI9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoYywgKGNoYXIpYzIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gZ28gZG93biBvbmUgbGV2ZWwgZm9yIGVhY2ggc3RyaW5nCisgICAgICAgICAgICAvLyBjb250aW51ZSB3aXRoIHRoZSBtYWluIGxvb3AgYXMgc29vbiBhcyB0aGVyZSBpcyBhIHJlYWwgY2hhbmdlCisgICAgICAgICAgICBpZiggbGV2ZWwxPDIgJiYgKChvcHRpb25zICYgTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSE9MCkmJgorICAgICAgICAgICAgICAgIChsZW5ndGg9Zm9sZENhc2UoY3AxLCBmb2xkMSwgMCwzMixvcHRpb25zKSk+PTAKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMSBjYXNlLWZvbGRzIHRvIGZvbGQxW2xlbmd0aF0KKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBiZXlvbmQgc291cmNlIHN1cnJvZ2F0ZSBwYWlyIGlmIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZS1mb2xkcworICAgICAgICAgICAgICAgICAgICAgICAgKytzMVN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMSkgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyBpdHMgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUsIHRoZXJlZm9yZSB0aGUgbGVhZCBzdXJyb2dhdGUgbXVzdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB0aGUgc2FtZSBhcyBpbiB0aGUgb3RoZXIgc3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGlzIGRlY29tcG9zaXRpb24gd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPWNTb3VyY2UyWyhzMlN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazFbMF0uc3RhcnQ9c3RhcnQxOworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zPXMxU3RhcnQ7CisgICAgICAgICAgICAgICAgc3RhY2sxWzBdLmxpbWl0PWxpbWl0MTsKKyAgICAgICAgICAgICAgICBzdGFjazFbMF0uc291cmNlPWNTb3VyY2UxOworICAgICAgICAgICAgICAgICsrbGV2ZWwxOworICAgIAorICAgICAgICAgICAgICAgIGNTb3VyY2UxID0gZm9sZDE7CisgICAgICAgICAgICAgICAgc3RhcnQxPXMxU3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdDE9bGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisgICAgICAgICAgICAgICAgYzE9LTE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiggbGV2ZWwyPDIgJiYgKChvcHRpb25zJiBOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSAmJgorICAgICAgICAgICAgICAgIChsZW5ndGg9Zm9sZENhc2UoY3AyLCBmb2xkMiwwLDMyLCBvcHRpb25zKSk+PTAKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMiBjYXNlLWZvbGRzIHRvIGZvbGQyW2xlbmd0aF0KKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBiZXlvbmQgc291cmNlIHN1cnJvZ2F0ZSBwYWlyIGlmIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZS1mb2xkcworICAgICAgICAgICAgICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMikgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyBpdHMgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUsIHRoZXJlZm9yZSB0aGUgbGVhZCBzdXJyb2dhdGUgbXVzdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB0aGUgc2FtZSBhcyBpbiB0aGUgb3RoZXIgc3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGlzIGRlY29tcG9zaXRpb24gd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3RoZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAtLXMxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjMT1jU291cmNlMVsoczFTdGFydC0xKV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLy8gcHVzaCBjdXJyZW50IGxldmVsIHBvaW50ZXJzCisgICAgICAgICAgICAgICAgc3RhY2syWzBdLnN0YXJ0PXN0YXJ0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0ucz1zMlN0YXJ0OworICAgICAgICAgICAgICAgIHN0YWNrMlswXS5saW1pdD1saW1pdDI7CisgICAgICAgICAgICAgICAgc3RhY2syWzBdLnNvdXJjZT1jU291cmNlMjsKKyAgICAgICAgICAgICAgICArK2xldmVsMjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjU291cmNlMiA9IGZvbGQyOworICAgICAgICAgICAgICAgIHN0YXJ0Mj1zMlN0YXJ0PTA7CisgICAgICAgICAgICAgICAgbGltaXQyPWxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBnZXQgcmVhZHkgdG8gcmVhZCBmcm9tIGRlY29tcG9zaXRpb24sIGNvbnRpbnVlIHdpdGggbG9vcAorICAgICAgICAgICAgICAgIGMyPS0xOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiggbGV2ZWwxPDIgJiYgKChvcHRpb25zJkNPTVBBUkVfRVFVSVYpIT0wKSAmJgorICAgICAgICAgICAgICAgIDAhPShsZW5ndGg9ZGVjb21wb3NlKGNwMSxkZWNvbXAxKSkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMSBkZWNvbXBvc2VzIGludG8gcFtsZW5ndGhdCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgYmV5b25kIHNvdXJjZSBzdXJyb2dhdGUgcGFpciBpZiBpdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZGVjb21wb3NlcworICAgICAgICAgICAgICAgICAgICAgICAgKytzMVN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMSkgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0cyB0cmFpbCBzdXJyb2dhdGUsIHRoZXJlZm9yZSB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGhhdmUgYmVlbiB0aGUgc2FtZSBhcyBpbiB0aGUgb3RoZXIgc3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGlzIGRlY29tcG9zaXRpb24gd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3RoZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAtLXMyU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjMj1jU291cmNlMlsoczJTdGFydC0xKV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLy8gcHVzaCBjdXJyZW50IGxldmVsIHBvaW50ZXJzCisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0uc3RhcnQ9c3RhcnQxOworICAgICAgICAgICAgICAgIHN0YWNrMVtsZXZlbDFdLnM9czFTdGFydDsKKyAgICAgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5saW1pdD1saW1pdDE7CisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0uc291cmNlPWNTb3VyY2UxOworICAgICAgICAgICAgICAgICsrbGV2ZWwxOworICAgIAorICAgICAgICAgICAgICAgIC8vIHNldCBuZXh0IGxldmVsIHBvaW50ZXJzIHRvIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICBjU291cmNlMSA9IGRlY29tcDE7CisgICAgICAgICAgICAgICAgc3RhcnQxPXMxU3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdDE9bGVuZ3RoOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNldCBlbXB0eSBpbnRlcm1lZGlhdGUgbGV2ZWwgaWYgc2tpcHBlZAorICAgICAgICAgICAgICAgIGlmKGxldmVsMTwyKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrMVtsZXZlbDErK10uc3RhcnQ9LTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisgICAgICAgICAgICAgICAgYzE9LTE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiggbGV2ZWwyPDIgJiYgKChvcHRpb25zJkNPTVBBUkVfRVFVSVYpIT0wKSAmJgorICAgICAgICAgICAgICAgIDAhPShsZW5ndGg9ZGVjb21wb3NlKGNwMiwgZGVjb21wMikpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvLyBjcDIgZGVjb21wb3NlcyBpbnRvIHBbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWNvbXBvc2VzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MyU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczFTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxWyhzMVN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zdGFydD1zdGFydDI7CisgICAgICAgICAgICAgICAgc3RhY2syW2xldmVsMl0ucz1zMlN0YXJ0OworICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLmxpbWl0PWxpbWl0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zb3VyY2U9Y1NvdXJjZTI7CisgICAgICAgICAgICAgICAgKytsZXZlbDI7CisgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IG5leHQgbGV2ZWwgcG9pbnRlcnMgdG8gZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgIGNTb3VyY2UyPWRlY29tcDI7CisgICAgICAgICAgICAgICAgc3RhcnQyPXMyU3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdDI9bGVuZ3RoOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNldCBlbXB0eSBpbnRlcm1lZGlhdGUgbGV2ZWwgaWYgc2tpcHBlZAorICAgICAgICAgICAgICAgIGlmKGxldmVsMjwyKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDIrK10uc3RhcnQ9LTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisgICAgICAgICAgICAgICAgYzI9LTE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgCisgICAgICAgICAgICAvLyBubyBkZWNvbXBvc2l0aW9uL2Nhc2UgZm9sZGluZywgbWF4IGxldmVsIGZvciBib3RoIHNpZGVzOgorICAgICAgICAgICAgLy8gcmV0dXJuIGRpZmZlcmVuY2UgcmVzdWx0CisgICAgCisgICAgICAgICAgICAvLyBjb2RlIHBvaW50IG9yZGVyIGNvbXBhcmlzb24gbXVzdCBub3QganVzdCByZXR1cm4gY3AxLWNwMgorICAgICAgICAgICAgLy8gYmVjYXVzZSB3aGVuIHNpbmdsZSBzdXJyb2dhdGVzIGFyZSBwcmVzZW50IHRoZW4gdGhlIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgIC8vIHBhaXJzIHRoYXQgZm9ybWVkIGNwMSBhbmQgY3AyIG1heSBiZSBmcm9tIGRpZmZlcmVudCBzdHJpbmcgCisgICAgICAgICAgICAvLyBpbmRleGVzCisgICAgCisgICAgICAgICAgICAvLyBleGFtcGxlOiB7IGQ4MDAgZDgwMCBkYzAxIH0gdnMuIHsgZDgwMCBkYzAwIH0sIGNvbXBhcmUgYXQgCisgICAgICAgICAgICAvLyBzZWNvbmQgY29kZSB1bml0cworICAgICAgICAgICAgLy8gYzE9ZDgwMCBjcDE9MTAwMDEgYzI9ZGMwMCBjcDI9MTAwMDAKKyAgICAgICAgICAgIC8vIGNwMS1jcDI+MCBidXQgYzEtYzI8MCBhbmQgaW4gZmFjdCBpbiBVVEYtMzIgCisgICAgICAgICAgICAvLyBpdCBpcyB7IGQ4MDAgMTAwMDEgfSA8IHsgMTAwMDAgfQorICAgICAgICAgICAgLy8gdGhlcmVmb3JlIGZpeC11cCAKKyAgICAKKyAgICAgICAgICAgIGlmKCAgICAgYzE+PTB4ZDgwMCAmJiBjMj49MHhkODAwICYmIAorICAgICAgICAgICAgICAgICAgICAoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKQorICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvKiBzdWJ0cmFjdCAweDI4MDAgZnJvbSBCTVAgY29kZSBwb2ludHMgdG8gbWFrZSB0aGVtIHNtYWxsZXIgCisgICAgICAgICAgICAgICAgICogdGhhbiBzdXBwbGVtZW50YXJ5IG9uZXMgKi8KKyAgICAgICAgICAgICAgICBpZigKKyAgICAgICAgICAgICAgICAgICAgKCAgICBjMTw9MHhkYmZmICYmIHMxU3RhcnQhPWxpbWl0MSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNTb3VyY2UxW3MxU3RhcnRdKQorICAgICAgICAgICAgICAgICAgICApIAorICAgICAgICAgICAgICAgICAgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgKCAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMxKSAmJiBzdGFydDEhPShzMVN0YXJ0LTEpIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjU291cmNlMVsoczFTdGFydC0yKV0pCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIAorICAgICAgICAgICAgICAgICAgICAgKiBtYWtlIDxkODAwICovCisgICAgICAgICAgICAgICAgICAgIGMxLT0weDI4MDA7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICAgICAoICAgIGMyPD0weGRiZmYgJiYgczJTdGFydCE9bGltaXQyIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY1NvdXJjZTJbczJTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICkgCisgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAoICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpYzIpICYmIHN0YXJ0MiE9KHMyU3RhcnQtMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNTb3VyY2UyWyhzMlN0YXJ0LTIpXSkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gCisgICAgICAgICAgICAgICAgICAgICAqIG1ha2UgPGQ4MDAgKi8KKyAgICAgICAgICAgICAgICAgICAgYzItPTB4MjgwMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1cm4gYzEtYzI7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHN0ckNvbXBhcmUoY2hhcltdIHMxLCBpbnQgczFTdGFydCwgaW50IHMxTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb2RlUG9pbnRPcmRlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBzdGFydDEsIHN0YXJ0MiwgbGltaXQxLCBsaW1pdDI7CisgCisgICAgICAgIGNoYXIgYzEsIGMyOworICAgIAorICAgICAgICAvKiBzZXR1cCBmb3IgZml4LXVwICovCisgICAgICAgIHN0YXJ0MT1zMVN0YXJ0OworICAgICAgICBzdGFydDI9czJTdGFydDsKKyAgICAgICAgCisgICAgICAgIGludCBsZW5ndGgxLCBsZW5ndGgyOworICAgICAgICAKKyAgICAgICAgbGVuZ3RoMSA9IHMxTGltaXQgLSBzMVN0YXJ0OworICAgICAgICBsZW5ndGgyID0gczJMaW1pdCAtIHMyU3RhcnQ7CisgICAgICAgICAgICAKKyAgICAgICAgaW50IGxlbmd0aFJlc3VsdDsKKworICAgICAgICBpZihsZW5ndGgxPGxlbmd0aDIpIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0tMTsKKyAgICAgICAgICAgIGxpbWl0MT1zdGFydDErbGVuZ3RoMTsKKyAgICAgICAgfSBlbHNlIGlmKGxlbmd0aDE9PWxlbmd0aDIpIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0wOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICB9IGVsc2UgLyogbGVuZ3RoMT5sZW5ndGgyICovIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0xOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgyOworICAgICAgICB9CisKKyAgICAgICAgaWYoczE9PXMyKSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoUmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjaGVjayBwc2V1ZG8tbGltaXQgKi8KKyAgICAgICAgICAgIGlmKHMxU3RhcnQ9PWxpbWl0MSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGhSZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGMxPXMxW3MxU3RhcnRdOworICAgICAgICAgICAgYzI9czJbczJTdGFydF07CisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrczFTdGFydDsKKyAgICAgICAgICAgICsrczJTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIHNldHVwIGZvciBmaXgtdXAgKi8KKyAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICBsaW1pdDI9c3RhcnQyK2xlbmd0aDI7CisKKyAgICAKKyAgICAgICAgLyogaWYgYm90aCB2YWx1ZXMgYXJlIGluIG9yIGFib3ZlIHRoZSBzdXJyb2dhdGUgcmFuZ2UsIGZpeCB0aGVtIHVwICovCisgICAgICAgIGlmKGMxPj0weGQ4MDAgJiYgYzI+PTB4ZDgwMCAmJiBjb2RlUG9pbnRPcmRlcikgeworICAgICAgICAgICAgLyogc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSBzbWFsbGVyIHRoYW4KKyAgICAgICAgICAgICAqICBzdXBwbGVtZW50YXJ5IG9uZXMgKi8KKyAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICggYzE8PTB4ZGJmZiAmJiAoczFTdGFydCsxKSE9bGltaXQxICYmIAorICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShzMVsoczFTdGFydCsxKV0pCisgICAgICAgICAgICAgICAgKSB8fAorICAgICAgICAgICAgICAgICggVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMSkgJiYgc3RhcnQxIT1zMVN0YXJ0ICYmIAorICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHMxWyhzMVN0YXJ0LTEpXSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UgPGQ4MDAgKi8KKyAgICAgICAgICAgICAgICBjMS09MHgyODAwOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgKCBjMjw9MHhkYmZmICYmIChzMlN0YXJ0KzEpIT1saW1pdDIgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHMyWyhzMlN0YXJ0KzEpXSkKKyAgICAgICAgICAgICAgICApIHx8CisgICAgICAgICAgICAgICAgKCBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyKSAmJiBzdGFydDIhPXMyU3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoczJbKHMyU3RhcnQtMSldKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgIGMyLT0weDI4MDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogbm93IGMxIGFuZCBjMiBhcmUgaW4gVVRGLTMyLWNvbXBhdGlibGUgb3JkZXIgKi8KKyAgICAgICAgcmV0dXJuIChpbnQpYzEtKGludCljMjsKKyAgICB9CisKKworICAgIC8qCisgICAgICogU3RhdHVzIG9mIHRhaWxvcmVkIG5vcm1hbGl6YXRpb24KKyAgICAgKgorICAgICAqIFRoaXMgd2FzIGRvbmUgaW5pdGlhbGx5IGZvciBpbnZlc3RpZ2F0aW9uIG9uIFVuaWNvZGUgcHVibGljIHJldmlldyBpc3N1ZSA3CisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmV2aWV3LykuIFNlZSBKaXR0ZXJidWcgMjQ4MS4KKyAgICAgKiBXaGlsZSB0aGUgVVRDIGF0IG1lZXRpbmcgIzk0ICgyMDAzbWFyKSBkaWQgbm90IHRha2UgdXAgdGhlIGlzc3VlLCB0aGlzIGlzCisgICAgICogYSBwZXJtYW5lbnQgZmVhdHVyZSBpbiBJQ1UgMi42IGluIHN1cHBvcnQgb2YgSUROQSB3aGljaCByZXF1aXJlcyB0cnVlCisgICAgICogVW5pY29kZSAzLjIgbm9ybWFsaXphdGlvbi4KKyAgICAgKiAoTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zIGFyZSByb2xsZWQgaW50byBJRE5BIG1hcHBpbmcgdGFibGVzLikKKyAgICAgKgorICAgICAqIFRhaWxvcmVkIG5vcm1hbGl6YXRpb24gYXMgaW1wbGVtZW50ZWQgaGVyZSBhbGxvd3MgdG8gIm5vcm1hbGl6ZSBsZXNzIgorICAgICAqIHRoYW4gZnVsbCBVbmljb2RlIG5vcm1hbGl6YXRpb24gd291bGQuCisgICAgICogQmFzZWQgaW50ZXJuYWxseSBvbiBhIFVuaWNvZGVTZXQgb2YgY29kZSBwb2ludHMgdGhhdCBhcmUKKyAgICAgKiAiZXhjbHVkZWQgZnJvbSBub3JtYWxpemF0aW9uIiwgdGhlIG5vcm1hbGl6YXRpb24gZnVuY3Rpb25zIGxlYXZlIHRob3NlCisgICAgICogY29kZSBwb2ludHMgYWxvbmUgKCJpbmVydCIpLiBUaGlzIG1lYW5zIHRoYXQgdGFpbG9yZWQgbm9ybWFsaXphdGlvbgorICAgICAqIHN0aWxsIHRyYW5zZm9ybXMgdGV4dCBpbnRvIGEgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBmb3JtLgorICAgICAqIEl0IGRvZXMgbm90IGFkZCBkZWNvbXBvc2l0aW9ucyB0byBjb2RlIHBvaW50cyB0aGF0IGRvIG5vdCBoYXZlIGFueSBvcgorICAgICAqIGNoYW5nZSBkZWNvbXBvc2l0aW9uIHJlc3VsdHMuCisgICAgICoKKyAgICAgKiBBbnkgZnVuY3Rpb24gdGhhdCBzZWFyY2hlcyBmb3IgYSBzYWZlIGJvdW5kYXJ5IGhhcyBub3QgYmVlbiB0b3VjaGVkLAorICAgICAqIHdoaWNoIG1lYW5zIHRoYXQgdGhlc2UgZnVuY3Rpb25zIHdpbGwgYmUgb3Zlci1wZXNzaW1pc3RpYyB3aGVuCisgICAgICogZXhjbHVzaW9ucyBhcmUgYXBwbGllZC4KKyAgICAgKiBUaGlzIHNob3VsZCBub3QgbWF0dGVyIGJlY2F1c2Ugc3Vic2VxdWVudCBjaGVja3MgYW5kIG5vcm1hbGl6YXRpb25zCisgICAgICogZG8gYXBwbHkgdGhlIGV4Y2x1c2lvbnM7IG9ubHkgYSBsaXR0bGUgbW9yZSBvZiB0aGUgdGV4dCBtYXkgYmUgcHJvY2Vzc2VkCisgICAgICogdGhhbiBuZWNlc3NhcnkgdW5kZXIgZXhjbHVzaW9ucy4KKyAgICAgKgorICAgICAqIE5vcm1hbGl6YXRpb24gZXhjbHVzaW9ucyBoYXZlIHRoZSBmb2xsb3dpbmcgZWZmZWN0IG9uIGV4Y2x1ZGVkIGNvZGUgcG9pbnRzIGM6CisgICAgICogLSBjIGlzIG5vdCBkZWNvbXBvc2VkCisgICAgICogLSBjIGlzIG5vdCBhIGNvbXBvc2l0aW9uIHRhcmdldAorICAgICAqIC0gYyBkb2VzIG5vdCBjb21iaW5lIGZvcndhcmQgb3IgYmFja3dhcmQgZm9yIGNvbXBvc2l0aW9uCisgICAgICogICBleGNlcHQgdGhhdCB0aGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgSmFtbworICAgICAqIC0gYyBpcyB0cmVhdGVkIGFzIGhhdmluZyBhIGNvbWJpbmluZyBjbGFzcyBvZiAwCisgICAgICovCisgICAgIAorICAgIC8qIAorICAgICAqIENvbnN0YW50cyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlIG9wdGlvbnMgYml0IHNldCBwYXJhbWV0ZXIuIAorICAgICAqIFRoZXNlIG5lZWQgbm90IGJlIHB1YmxpYy4gCisgICAgICogQSB1c2VyIG9ubHkgbmVlZHMgdG8ga25vdyB0aGUgY3VycmVudGx5IGFzc2lnbmVkIHZhbHVlcy4gCisgICAgICogVGhlIG51bWJlciBhbmQgcG9zaXRpb25zIG9mIHJlc2VydmVkIGJpdHMgcGVyIGZpZWxkIGNhbiByZW1haW4gcHJpdmF0ZS4gCisgICAgICovIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX05YX01BU0s9MHgxZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19VTklDT0RFX01BU0s9MHhlMDsgCisgICAgcHVibGljICBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfU0VUU19NQVNLPTB4ZmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfVU5JQ09ERV9TSElGVD01OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBueENhY2hlID0gbmV3IFVuaWNvZGVTZXRbT1BUSU9OU19TRVRTX01BU0srMV07CisgICAgIAorICAgIC8qIENvbnN0YW50cyBmb3Igb3B0aW9ucyBmbGFncyBmb3Igbm9ybWFsaXphdGlvbi4qLworCisgICAgLyoqIAorICAgICAqIE9wdGlvbnMgYml0IDAsIGRvIG5vdCBkZWNvbXBvc2UgSGFuZ3VsIHN5bGxhYmxlcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjYgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5YX0hBTkdVTCA9IDE7CisgICAgLyoqIAorICAgICAqIE9wdGlvbnMgYml0IDEsIGRvIG5vdCBkZWNvbXBvc2UgQ0pLIGNvbXBhdGliaWxpdHkgY2hhcmFjdGVycy4KKyAgICAgKiBAZHJhZnQgSUNVIDIuNiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlhfQ0pLX0NPTVBBVD0yOworICAgIC8qKgorICAgICAqIE9wdGlvbnMgYml0IDgsIHVzZSBidWdneSByZWNvbXBvc2l0aW9uIGRlc2NyaWJlZCBpbgorICAgICAqIFVuaWNvZGUgUHVibGljIFJldmlldyBJc3N1ZSAjMjkKKyAgICAgKiBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCNwcmkyOQorICAgICAqCisgICAgICogVXNlZCBpbiBJRE5BIGltcGxlbWVudGF0aW9uIGFjY29yZGluZyB0byBzdHJpY3QgaW50ZXJwcmV0YXRpb24KKyAgICAgKiBvZiBJRE5BIGRlZmluaXRpb24gYmFzZWQgb24gVW5pY29kZSAzLjIgd2hpY2ggcHJlZGF0ZXMgUFJJICMyOS4KKyAgICAgKgorICAgICAqIFNlZSBJQ1U0QyB1bm9ybWltcC5oCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRUZPUkVfUFJJXzI5PTB4MTAwOworCisgICAgLyoKKyAgICAgKiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIHVzZWQgb25seSBpbiBzb21lIGNvbXBvc2l0aW9uIGZ1bmN0aW9ucy4KKyAgICAgKiBUaGV5IHVzZSBiaXRzIDEyIGFuZCB1cCB0byBwcmVzZXJ2ZSBsb3dlciBiaXRzIGZvciB0aGUgYXZhaWxhYmxlIG9wdGlvbnMKKyAgICAgKiBzcGFjZSBpbiB1bm9ybV9jb21wYXJlKCkgLQorICAgICAqIHNlZSBkb2N1bWVudGF0aW9uIGZvciBVTk9STV9DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVC4KKyAgICAgKi8KKworICAgIC8qKiBPcHRpb25zIGJpdCAxMiwgZm9yIGNvbXBhdGliaWxpdHkgdnMuIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfQ09NUEFUPTB4MTAwMDsKKyAgICAvKiogT3B0aW9ucyBiaXQgMTMsIG5vIGRpc2NvbnRpZ3VvdXMgY29tcG9zaXRpb24gKEZDQyB2cy4gTkZDKS4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0NPTVBPU0VfQ09OVElHVU9VUz0weDIwMDA7CisKKyAgICAvKiBub3JtYWxpemF0aW9uIGV4Y2x1c2lvbiBzZXRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIAorICAgIC8qCisgICAgICogTm9ybWFsaXphdGlvbiBleGNsdXNpb24gVW5pY29kZVNldHMgYXJlIHVzZWQgZm9yIHRhaWxvcmVkIG5vcm1hbGl6YXRpb247CisgICAgICogc2VlIHRoZSBjb21tZW50IG5lYXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZpbGUuCisgICAgICoKKyAgICAgKiBCeSBzcGVjaWZ5aW5nIG9uZSBvciBzZXZlcmFsIHNldHMgb2YgY29kZSBwb2ludHMsCisgICAgICogdGhvc2UgY29kZSBwb2ludHMgYmVjb21lIGluZXJ0IGZvciBub3JtYWxpemF0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVbmljb2RlU2V0IGludGVybmFsR2V0TlhIYW5ndWwoKSB7CisgICAgICAgIC8qIGludGVybmFsIGZ1bmN0aW9uLCBkb2VzIG5vdCBjaGVjayBmb3IgaW5jb21pbmcgVV9GQUlMVVJFICovCisgICAgCisgICAgICAgIGlmKG54Q2FjaGVbTlhfSEFOR1VMXT09bnVsbCkgeworICAgICAgICAgICAgIG54Q2FjaGVbTlhfSEFOR1VMXT1uZXcgVW5pY29kZVNldCgweGFjMDAsIDB4ZDdhMyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG54Q2FjaGVbTlhfSEFOR1VMXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIFVuaWNvZGVTZXQgaW50ZXJuYWxHZXROWENKS0NvbXBhdCgpIHsKKyAgICAgICAgLyogaW50ZXJuYWwgZnVuY3Rpb24sIGRvZXMgbm90IGNoZWNrIGZvciBpbmNvbWluZyBVX0ZBSUxVUkUgKi8KKyAgICAKKyAgICAgICAgaWYobnhDYWNoZVtOWF9DSktfQ09NUEFUXT09bnVsbCkgeworCisgICAgICAgICAgICAvKiBidWlsZCBhIHNldCBmcm9tIFtDSksgSWRlb2dyYXBoc10mW2hhcyBjYW5vbmljYWwgZGVjb21wb3NpdGlvbl0gKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0LCBoYXNEZWNvbXA7CisgICAgCisgICAgICAgICAgICBzZXQ9bmV3IFVuaWNvZGVTZXQoIls6SWRlb2dyYXBoaWM6XSIpOworICAgIAorICAgICAgICAgICAgLyogc3RhcnQgd2l0aCBhbiBlbXB0eSBzZXQgZm9yIFtoYXMgY2Fub25pY2FsIGRlY29tcG9zaXRpb25dICovCisgICAgICAgICAgICBoYXNEZWNvbXA9bmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGl0ZXJhdGUgb3ZlciBhbGwgaWRlb2dyYXBocyBhbmQgcmVtZW1iZXIgd2hpY2ggY2Fub25pY2FsbHkgZGVjb21wb3NlICovCisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgICAgICAgICBpbnQgc3RhcnQsIGVuZDsKKyAgICAgICAgICAgIGxvbmcgbm9ybTMyOworICAgIAorICAgICAgICAgICAgd2hpbGUoaXQubmV4dFJhbmdlKCkgJiYgKGl0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSkgeworICAgICAgICAgICAgICAgIHN0YXJ0PWl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICBlbmQ9aXQuY29kZXBvaW50RW5kOworICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyID0gZ2V0Tm9ybTMyKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKG5vcm0zMiAmIFFDX05GRCk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFzRGVjb21wLmFkZChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBoYXNEZWNvbXAgbm93IGNvbnRhaW5zIGFsbCBpZGVvZ3JhcGhzIHRoYXQgZGVjb21wb3NlIGNhbm9uaWNhbGx5ICovCisgICAgICAgICAgICAgbnhDYWNoZVtOWF9DSktfQ09NUEFUXT1oYXNEZWNvbXA7CisgICAgICAgICAKKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gbnhDYWNoZVtOWF9DSktfQ09NUEFUXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIFVuaWNvZGVTZXQgaW50ZXJuYWxHZXROWFVuaWNvZGUoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3B0aW9ucyAmPSBPUFRJT05TX1VOSUNPREVfTUFTSzsKKyAgICAgICAgaWYob3B0aW9ucz09MCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYobnhDYWNoZVtvcHRpb25zXT09bnVsbCkgeworICAgICAgICAgICAgLyogYnVpbGQgYSBzZXQgd2l0aCBhbGwgY29kZSBwb2ludHMgdGhhdCB3ZXJlIG5vdCBkZXNpZ25hdGVkIGJ5IHRoZSBzcGVjaWZpZWQgVW5pY29kZSB2ZXJzaW9uICovCisgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIHN3aXRjaChvcHRpb25zKSB7CisgICAgICAgICAgICBjYXNlIE5vcm1hbGl6ZXIuVU5JQ09ERV8zXzI6CisgICAgICAgICAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiWzpeQWdlPTMuMjpdIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBueENhY2hlW29wdGlvbnNdPXNldDsKKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gbnhDYWNoZVtvcHRpb25zXTsKKyAgICB9CisgICAgCisgICAgLyogR2V0IGEgZGVjb21wb3NpdGlvbiBleGNsdXNpb24gc2V0LiBUaGUgZGF0YSBtdXN0IGJlIGxvYWRlZC4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBpbnRlcm5hbEdldE5YKGludCBvcHRpb25zKSB7CisgICAgICAgIG9wdGlvbnMmPU9QVElPTlNfU0VUU19NQVNLOworICAgIAorICAgICAgICBpZihueENhY2hlW29wdGlvbnNdPT1udWxsKSB7CisgICAgICAgICAgICAvKiByZXR1cm4gYmFzaWMgc2V0cyAqLyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYob3B0aW9ucz09TlhfSEFOR1VMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsR2V0TlhIYW5ndWwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG9wdGlvbnM9PU5YX0NKS19DT01QQVQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXROWENKS0NvbXBhdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKG9wdGlvbnMgJiBPUFRJT05TX1VOSUNPREVfTUFTSykhPTAgJiYgKG9wdGlvbnMgJiBPUFRJT05TX05YX01BU0spPT0wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsR2V0TlhVbmljb2RlKG9wdGlvbnMpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYnVpbGQgYSBzZXQgZnJvbSBtdWx0aXBsZSBzdWJzZXRzICovCisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgb3RoZXI7CisgICAgCisgICAgICAgICAgICBzZXQ9bmV3IFVuaWNvZGVTZXQoKTsKKworICAgIAorICAgICAgICAgICAgaWYoKG9wdGlvbnMgJiBOWF9IQU5HVUwpIT0wICYmIG51bGwhPShvdGhlcj1pbnRlcm5hbEdldE5YSGFuZ3VsKCkpKSB7CisgICAgICAgICAgICAgICAgc2V0LmFkZEFsbChvdGhlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigob3B0aW9ucyZOWF9DSktfQ09NUEFUKSE9MCAmJiBudWxsIT0ob3RoZXI9aW50ZXJuYWxHZXROWENKS0NvbXBhdCgpKSkgeworICAgICAgICAgICAgICAgIHNldC5hZGRBbGwob3RoZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKG9wdGlvbnMmT1BUSU9OU19VTklDT0RFX01BU0spIT0wICYmIG51bGwhPShvdGhlcj1pbnRlcm5hbEdldE5YVW5pY29kZShvcHRpb25zKSkpIHsKKyAgICAgICAgICAgICAgICBzZXQuYWRkQWxsKG90aGVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgbnhDYWNoZVtvcHRpb25zXT1zZXQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG54Q2FjaGVbb3B0aW9uc107CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBnZXROWChpbnQgb3B0aW9ucykgeworICAgICAgICBpZigob3B0aW9ucyY9T1BUSU9OU19TRVRTX01BU0spPT0wKSB7CisgICAgICAgICAgICAvKiBpbmNvbWluZyBmYWlsdXJlLCBvciBubyBkZWNvbXBvc2l0aW9uIGV4Y2x1c2lvbnMgcmVxdWVzdGVkICovCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEdldE5YKG9wdGlvbnMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gbnhfY29udGFpbnMoVW5pY29kZVNldCBueCwgaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIG54IT1udWxsICYmIG54LmNvbnRhaW5zKGMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIG54X2NvbnRhaW5zKFVuaWNvZGVTZXQgbngsIGNoYXIgYywgY2hhciBjMikgeworICAgICAgICByZXR1cm4gbnghPW51bGwgJiYgbnguY29udGFpbnMoYzI9PTAgPyBjIDogVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoYywgYzIpKTsKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvT2xzb25UaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvT2xzb25UaW1lWm9uZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiOGY1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEKQEAgLTAsMCArMSw3NzIgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBBIHRpbWUgem9uZSBiYXNlZCBvbiB0aGUgT2xzb24gZGF0YWJhc2UuICBPbHNvbiB0aW1lIHpvbmVzIGNoYW5nZQorICogYmVoYXZpb3Igb3ZlciB0aW1lLiAgVGhlIHJhdyBvZmZzZXQsIHJ1bGVzLCBwcmVzZW5jZSBvciBhYnNlbmNlIG9mCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsIGFuZCBldmVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIGFtb3VudCBjYW4gYWxsCisgKiB2YXJ5LgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIHJlc291cmNlIGJ1bmRsZSBuYW1lZCAiem9uZWluZm8iLiAgWm9uZWluZm8gaXMgYQorICogdGFibGUgY29udGFpbmluZyBkaWZmZXJlbnQga2luZHMgb2YgcmVzb3VyY2VzLiAgSW4gc2V2ZXJhbCBwbGFjZXMsCisgKiB6b25lcyBhcmUgcmVmZXJyZWQgdG8gdXNpbmcgaW50ZWdlcnMuICBBIHpvbmUncyBpbnRlZ2VyIGlzIGEgbnVtYmVyCisgKiBmcm9tIDAuLm4tMSwgd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIHpvbmVzLCB3aXRoIHRoZSB6b25lcyBzb3J0ZWQKKyAqIGluIGxleGljb2dyYXBoaWMgb3JkZXIuCisgKgorICogMS4gWm9uZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgT2xzb24gSURzLCBlLmcuLAorICogIkFzaWEvU2hhbmdoYWkiLiAgRWFjaCByZXNvdXJjZSBkZXNjcmliZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbgorICogem9uZS4gIFpvbmVzIGNvbWUgaW4gc2V2ZXJhbCBmb3JtYXRzLCB3aGljaCBhcmUgZGlmZmVyZW50aWF0ZWQKKyAqIGJhc2VkIG9uIGxlbmd0aC4KKyAqCisgKiAgYS4gQWxpYXMgKGludCwgbGVuZ3RoIDEpLiAgQW4gYWxpYXMgem9uZSBpcyBhbiBpbnQgcmVzb3VyY2UuICBUaGUKKyAqICBpbnRlZ2VyIGlzIHRoZSB6b25lIG51bWJlciBvZiB0aGUgdGFyZ2V0IHpvbmUuICBUaGUga2V5IG9mIHRoaXMKKyAqICByZXNvdXJjZSBpcyBhbiBhbHRlcm5hdGUgbmFtZSBmb3IgdGhlIHRhcmdldCB6b25lLiAgQWxpYXNlcworICogIHJlcHJlc2VudCBPbHNvbiBsaW5rcyBhbmQgSUNVIGNvbXBhdGliaWxpdHkgSURzLgorICoKKyAqICBiLiBTaW1wbGUgem9uZSAoYXJyYXksIGxlbmd0aCAzKS4gIFRoZSB0aHJlZSBzdWJlbGVtZW50cyBhcmU6CisgKgorICogICBpLiBBbiBpbnR2ZWN0b3Igb2YgdHJhbnNpdGlvbnMuICBUaGVzZSBhcmUgZ2l2ZW4gaW4gZXBvY2gKKyAqICAgc2Vjb25kcy4gIFRoaXMgbWF5IGJlIGFuIGVtcHR5IGludmVjdG9yIChsZW5ndGggMCkuICBJZiB0aGUKKyAqICAgdHJhbnN0aW9ucyBsaXN0IGlzIGVtcHR5LCB0aGVuIHRoZSB6b25lJ3MgYmVoYXZpb3IgaXMgZml4ZWQgYW5kCisgKiAgIGdpdmVuIGJ5IHRoZSBvZmZzZXQgbGlzdCwgd2hpY2ggd2lsbCBjb250YWluIGV4YWN0bHkgb25lIHBhaXIuCisgKiAgIE90aGVyd2lzZSBlYWNoIHRyYW5zdGlvbiBpbmRpY2F0ZXMgYSB0aW1lIGFmdGVyIHdoaWNoIChpbmNsdXNpdmUpCisgKiAgIHRoZSBhc3NvY2lhdGVkIG9mZnNldCBwYWlyIGlzIGluIGVmZmVjdC4KKyAqCisgKiAgIGlpLiBBbiBpbnR2ZWN0b3Igb2Ygb2Zmc2V0cy4gIFRoZXNlIGFyZSBpbiBwYWlycyBvZiByYXcgb2Zmc2V0IC8KKyAqICAgRFNUIG9mZnNldCwgaW4gdW5pdHMgb2Ygc2Vjb25kcy4gIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3Qgb25lIHBhaXIKKyAqICAgKGxlbmd0aCA+PSAyICYmIGxlbmd0aCAlIDIgPT0gMCkuCisgKgorICogICBpaWkuIEEgYmluYXJ5IHJlc291cmNlLiAgVGhpcyBpcyBvZiB0aGUgc2FtZSBsZW5ndGggYXMgdGhlCisgKiAgIHRyYW5zaXRpb25zIHZlY3Rvciwgc28gbGVuZ3RoIG1heSBiZSB6ZXJvLiAgRWFjaCB1bnNpZ25lZCBieXRlCisgKiAgIGNvcnJlc3BvbmRzIHRvIG9uZSB0cmFuc2l0aW9uLCBhbmQgaGFzIGEgdmFsdWUgb2YgMC4ubi0xLCB3aGVyZSBuCisgKiAgIGlzIHRoZSBudW1iZXIgb2YgcGFpcnMgaW4gdGhlIG9mZnNldCB2ZWN0b3IuICBUaGlzIGZvcm1zIGEgbWFwCisgKiAgIGJldHdlZW4gdHJhbnNpdGlvbnMgYW5kIG9mZnNldCBwYWlycy4KKyAqCisgKiAgYy4gU2ltcGxlIHpvbmUgd2l0aCBhbGlhc2VzIChhcnJheSwgbGVuZ3RoIDQpLiAgVGhpcyBpcyBsaWtlIGEKKyAqICBzaW1wbGUgem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBmb3VydGggZWxlbWVudDoKKyAqCisgKiAgIGl2LiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqICBkLiBDb21wbGV4IHpvbmUgKGFycmF5LCBsZW5ndGggNSkuICBUaGlzIGlzIGxpa2UgYSBzaW1wbGUgem9uZSwKKyAqICBidXQgY29udGFpbnMgdHdvIG1vcmUgZWxlbWVudHM6CisgKgorICogICBpdi4gQSBzdHJpbmcsIGdpdmluZyB0aGUgbmFtZSBvZiBhIHJ1bGUuICBUaGlzIGlzIHRoZSAiZmluYWwKKyAqICAgcnVsZSIsIHdoaWNoIGdvdmVybnMgdGhlIHpvbmUncyBiZWhhdmlvciBiZWdpbm5pbmcgaW4gdGhlICJmaW5hbAorICogICB5ZWFyIi4gIFRoZSBydWxlIElEIGlzIGdpdmVuIHdpdGhvdXQgbGVhZGluZyB1bmRlcnNjb3JlLCBlLmcuLAorICogICAiRVUiLgorICoKKyAqICAgdi4gQW4gaW50dmVjdG9yIG9mIGxlbmd0aCAyLCBjb250YWluaW5nIHRoZSByYXcgb2Zmc2V0IGZvciB0aGUKKyAqICAgZmluYWwgcnVsZSAoaW4gc2Vjb25kcyksIGFuZCB0aGUgZmluYWwgeWVhci4gIFRoZSBmaW5hbCBydWxlCisgKiAgIHRha2VzIGVmZmVjdCBmb3IgeWVhcnMgPj0gdGhlIGZpbmFsIHllYXIuCisgKgorICogIGUuIENvbXBsZXggem9uZSB3aXRoIGFsaWFzZXMgKGFycmF5LCBsZW5ndGggNikuICBUaGlzIGlzIGxpa2UgYQorICogIGNvbXBsZXggem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBzaXh0aCBlbGVtZW50OgorICogCisgKiAgIHZpLiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqIDIuIFJ1bGVzLiAgVGhlc2UgaGF2ZSBrZXlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIE9sc29uIHJ1bGUgSURzLAorICogd2l0aCBhbiB1bmRlcnNjb3JlIHByZXBlbmRlZCwgZS5nLiwgIl9FVSIuICBFYWNoIHJlc291cmNlIGRlc2NyaWJlcworICogdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbiBydWxlIHVzaW5nIGFuIGludHZlY3RvciwgY29udGFpbmluZyB0aGUKKyAqIG9uc2V0IGxpc3QsIHRoZSBjZXNzYXRpb24gbGlzdCwgYW5kIHRoZSBEU1Qgc2F2aW5ncy4gIFRoZSBvbnNldCBhbmQKKyAqIGNlc3NhdGlvbiBsaXN0cyBjb25zaXN0IG9mIHRoZSBtb250aCwgZG93aW0sIGRvdywgdGltZSwgYW5kIHRpbWUKKyAqIG1vZGUuICBUaGUgZW5kIHJlc3VsdCBpcyB0aGF0IHRoZSAxMSBpbnRlZ2VycyBkZXNjcmliaW5nIHRoZSBydWxlCisgKiBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5IGludG8gdGhlIFNpbXBsZVRpbWVab25lIDEzLWFyZ3VtZW50CisgKiBjb25zdHJ1Y3RvciAodGhlIG90aGVyIHR3byBhcmd1bWVudHMgd2lsbCBiZSB0aGUgcmF3IG9mZnNldCwgdGFrZW4KKyAqIGZyb20gdGhlIGNvbXBsZXggem9uZSBlbGVtZW50IDUsIGFuZCB0aGUgSUQgc3RyaW5nLCB3aGljaCBpcyBub3QKKyAqIHVzZWQpLCB3aXRoIHRoZSB0aW1lcyBhbmQgdGhlIERTVCBzYXZpbmdzIG11bHRpcGxpZWQgYnkgMTAwMCB0bworICogc2NhbGUgZnJvbSBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kcy4KKyAqCisgKiAzLiBDb3VudHJpZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgMi1sZXR0ZXIgSVNPCisgKiBjb3VudHJ5IGNvZGVzLCB3aXRoIGEgcGVyY2VudCBzaWduIHByZXBlbmRlZCwgZS5nLiwgIiVVUyIuICBFYWNoCisgKiByZXNvdXJjZSBpcyBhbiBpbnR2ZWN0b3IgbGlzdGluZyB0aGUgem9uZXMgYXNzb2NpYXRlZCB3aXRoIHRoZQorICogZ2l2ZW4gY291bnRyeS4gIFRoZSBzcGVjaWFsIGVudHJ5ICIlIiBjb3JyZXNwb25kcyB0byAibm8gY291bnRyeSIsCisgKiB0aGF0IGlzLCB0aGUgY2F0ZWdvcnkgb2Ygem9uZXMgYXNzaWduZWQgdG8gbm8gY291bnRyeSBpbiB0aGUgT2xzb24KKyAqIERCLgorICoKKyAqIDQuIE1ldGFkYXRhLiAgTWV0YWRhdGEgaXMgc3RvcmVkIHVuZGVyIHRoZSBrZXkgIl8iLiAgSXQgaXMgYW4KKyAqIGludHZlY3RvciBvZiBsZW5ndGggdGhyZWUgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHpvbmVzIHJlc291cmNlcywKKyAqIHJ1bGUgcmVzb3VyY2VzLCBhbmQgY291bnRyeSByZXNvdXJjZXMuICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMKKyAqIGNvdW50LCB0aGUgbWV0YWRhdGEgZW50cnkgaXRzZWxmIGlzIGNvbnNpZGVyZWQgYSBydWxlIHJlc291cmNlLAorICogc2luY2UgaXRzIGtleSBiZWdpbnMgd2l0aCBhbiB1bmRlcnNjb3JlLgorICovCitwdWJsaWMgY2xhc3MgT2xzb25UaW1lWm9uZSBleHRlbmRzIFRpbWVab25lIHsKKworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTYyODE5NzczNjI0Nzc1MTUzNzZMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjZ2V0T2Zmc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykgeworICAgICAgICBpZiAobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1vbnRoIGlzIG5vdCBpbiB0aGUgbGVnYWwgcmFuZ2U6ICIgK21vbnRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyxNT05USF9MRU5HVEhbbW9udGggKyAoaXNMZWFwWWVhcih5ZWFyKT8xMjowKV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsaW50IGRvbSwgaW50IGRvdywgaW50IG1pbGxpcywgaW50IG1vbnRoTGVuZ3RoKXsKKworICAgICAgICBpZiAoKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpCisgICAgICAgICAgICB8fCBtb250aCA8IENhbGVuZGFyLkpBTlVBUlkKKyAgICAgICAgICAgIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIKKyAgICAgICAgICAgIHx8IGRvbSA8IDEKKyAgICAgICAgICAgIHx8IGRvbSA+IG1vbnRoTGVuZ3RoCisgICAgICAgICAgICB8fCBkb3cgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgIHx8IGRvdyA+IENhbGVuZGFyLlNBVFVSREFZCisgICAgICAgICAgICB8fCBtaWxsaXMgPCAwCisgICAgICAgICAgICB8fCBtaWxsaXMgPj0gTUlMTElTX1BFUl9EQVkKKyAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoID4gMzEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcmEgPT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgIHllYXIgPSAteWVhcjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh5ZWFyID4gZmluYWxZZWFyKSB7IC8vIFtzaWNdID4sIG5vdCA+PTsgc2VlIGFib3ZlCisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoIihmaW5hbFpvbmUgIT0gbnVsbCkiLCBmaW5hbFpvbmUgIT0gbnVsbCk7CisgICAgICAgICAgICByZXR1cm4gZmluYWxab25lLmdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkb20sIGRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXMsIG1vbnRoTGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbXB1dGUgbG9jYWwgZXBvY2ggc2Vjb25kcyBmcm9tIGlucHV0IGZpZWxkcworICAgICAgICBkb3VibGUgdGltZSA9IGZpZWxkc1RvRGF5KHllYXIsIG1vbnRoLCBkb20pICogU0VDT05EU19QRVJfREFZICsKKyAgICAgICAgICAgIE1hdGguZmxvb3IobWlsbGlzIC8gKGRvdWJsZSkgTUlMTElTX1BFUl9TRUNPTkQpOworCisgICAgICAgIGludFtdIG9mZnNldHMgPSBuZXcgaW50WzJdOworICAgICAgICBnZXRIaXN0b3JpY2FsT2Zmc2V0KHRpbWUsIHRydWUsIG9mZnNldHMpOworICAgICAgICByZXR1cm4gb2Zmc2V0c1swXSArIG9mZnNldHNbMV07CisgICAgfQorICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjc2V0UmF3T2Zmc2V0KGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICBmaW5hbFpvbmUuc2V0UmF3T2Zmc2V0KG9mZnNldE1pbGxpcyk7CisgICAgfQorICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIE9sc29uVGltZVpvbmUgb3RoZXIgPSAoT2xzb25UaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgaWYoZmluYWxab25lIT1udWxsKXsKKyAgICAgICAgICAgIGZpbmFsWm9uZS5zZXRJRChnZXRJRCgpKTsKKyAgICAgICAgICAgIG90aGVyLmZpbmFsWm9uZSA9IChTaW1wbGVUaW1lWm9uZSlmaW5hbFpvbmUuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBvdGhlci50cmFuc2l0aW9uVGltZXMgPSAoaW50W10pdHJhbnNpdGlvblRpbWVzLmNsb25lKCk7CisgICAgICAgIG90aGVyLnR5cGVEYXRhID0gKGJ5dGVbXSl0eXBlRGF0YS5jbG9uZSgpOworICAgICAgICBvdGhlci50eXBlT2Zmc2V0cyA9IChpbnRbXSl0eXBlT2Zmc2V0cy5jbG9uZSgpOworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBnZXRPZmZzZXQobG9uZyBkYXRlLCBib29sZWFuIGxvY2FsLCBpbnRbXSBvZmZzZXRzKSAgeworICAgICAgICBpbnQgcmF3b2ZmLCBkc3RvZmY7CisgICAgICAgIC8vIFRoZSBjaGVjayBhZ2FpbnN0IGZpbmFsTWlsbGlzIHdpbGwgc3VmZmljZSBtb3N0IG9mIHRoZSB0aW1lLCBleGNlcHQKKyAgICAgICAgLy8gZm9yIHRoZSBjYXNlIGluIHdoaWNoIGZpbmFsTWlsbGlzID09IERCTF9NQVgsIGRhdGUgPT0gREJMX01BWCwKKyAgICAgICAgLy8gYW5kIGZpbmFsWm9uZSA9PSAwLiAgRm9yIHRoaXMgY2FzZSB3ZSBhZGQgIiYmIGZpbmFsWm9uZSAhPSAwIi4KKyAgICAgICAgaWYgKGRhdGUgPj0gZmluYWxNaWxsaXMgJiYgZmluYWxab25lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRvdWJsZVtdIGRvdWIgPSBmbG9vckRpdmlkZShkYXRlLCAoZG91YmxlKU1JTExJU19QRVJfREFZKTsKKyAgICAgICAgICAgIGRvdWJsZSBtaWxsaXM9ZG91YlsxXTsKKyAgICAgICAgICAgIGRvdWJsZSBkYXlzPWRvdWJbMF07CisgICAgICAgICAgICBpbnRbXSB0ZW1wID0gZGF5VG9GaWVsZHMoZGF5cyk7CisgICAgICAgICAgICBpbnQgeWVhcj10ZW1wWzBdLCBtb250aD10ZW1wWzFdLCBkb209dGVtcFsyXSwgZG93PXRlbXBbM107CisgICAgICAgICAgICByYXdvZmYgPSBmaW5hbFpvbmUuZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAgICAgICAgIGlmICghbG9jYWwpIHsKKyAgICAgICAgICAgICAgICAvLyBBZGp1c3QgZnJvbSBHTVQgdG8gbG9jYWwKKyAgICAgICAgICAgICAgICBkYXRlICs9IHJhd29mZjsKKyAgICAgICAgICAgICAgICBkb3ViID0gZmxvb3JEaXZpZGUoZGF0ZSwgKGRvdWJsZSlNSUxMSVNfUEVSX0RBWSk7CisgICAgICAgICAgICAgICAgZG91YmxlIGRheXMyID0gZG91YlswXTsgCisgICAgICAgICAgICAgICAgbWlsbGlzID0gZG91YlsxXTsKKyAgICAgICAgICAgICAgICBpZiAoZGF5czIgIT0gZGF5cykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gZGF5VG9GaWVsZHMoZGF5czIpOworICAgICAgICAgICAgICAgICAgICB5ZWFyPXRlbXBbMF07CisgICAgICAgICAgICAgICAgICAgIG1vbnRoPXRlbXBbMV07CisgICAgICAgICAgICAgICAgICAgIGRvbT10ZW1wWzJdOworICAgICAgICAgICAgICAgICAgICBkb3c9dGVtcFszXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRzdG9mZiA9IGZpbmFsWm9uZS5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIHllYXIsIG1vbnRoLCBkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdywgKGludCltaWxsaXMpIAorICAgICAgICAgICAgICAgICAgICAtIHJhd29mZjsKKyAgICAgICAgICAgIG9mZnNldHNbMF09cmF3b2ZmOworICAgICAgICAgICAgb2Zmc2V0c1sxXT1kc3RvZmY7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgc2VjcyA9IE1hdGguZmxvb3IoZGF0ZSAvIE1JTExJU19QRVJfU0VDT05EKTsKKyAgICAgICAgZ2V0SGlzdG9yaWNhbE9mZnNldChzZWNzLCBsb2NhbCwgb2Zmc2V0cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlW10gZmxvb3JEaXZpZGUoZG91YmxlIGRpdmlkZW5kLCBkb3VibGUgZGl2aXNvcikgeworICAgICAgICBkb3VibGUgcmVtYWluZGVyOyAKKyAgICAgICAgZG91YmxlW10gcmV0ID0gbmV3IGRvdWJsZVsyXTsKKyAgICAgICAgLy8gT25seSBkZXNpZ25lZCB0byB3b3JrIGZvciBwb3NpdGl2ZSBkaXZpc29ycworICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImRpdmlzb3IgPiAwIiwgZGl2aXNvciA+IDApOworICAgICAgICBkb3VibGUgcXVvdGllbnQgPSBNYXRoLmZsb29yKGRpdmlkZW5kL2Rpdmlzb3IpOworICAgICAgICByZW1haW5kZXIgPSBkaXZpZGVuZCAtIChxdW90aWVudCAqIGRpdmlzb3IpOworICAgICAgICAvLyBOLkIuIEZvciBjZXJ0YWluIGxhcmdlIGRpdmlkZW5kcywgb24gY2VydGFpbiBwbGF0Zm9ybXMsIHRoZXJlCisgICAgICAgIC8vIGlzIGEgYnVnIHN1Y2ggdGhhdCB0aGUgcXVvdGllbnQgaXMgb2ZmIGJ5IG9uZS4gSWYgeW91IGRvdWJ0CisgICAgICAgIC8vIHRoaXMgdG8gYmUgdHJ1ZSwgc2V0IGEgYnJlYWtwb2ludCBiZWxvdyBhbmQgcnVuIGNpbnRsdHN0LgorICAgICAgICBpZiAocmVtYWluZGVyIDwgMCB8fCByZW1haW5kZXIgPj0gZGl2aXNvcikgeworICAgICAgICAgICAgLy8gRS5nLiA2LjczMTcwMzgyNDE0NDkzNTJlKzAyMiAvIDg2NDAwMDAwLjAgaXMgd3Jvbmcgb24gbXkKKyAgICAgICAgICAgIC8vIG1hY2hpbmUgKHRvbyBoaWdoIGJ5IG9uZSkuIDQuMTc5MjA1NzIzMTc1Mjc2MmUrMDI0IC8KKyAgICAgICAgICAgIC8vIDg2NDAwMDAwLjAgaXMgd3JvbmcgdGhlIG90aGVyIHdheSAodG9vIGxvdykuCisgICAgICAgICAgICBkb3VibGUgcSA9IHF1b3RpZW50OworICAgICAgICAgICAgcXVvdGllbnQgKz0gKHJlbWFpbmRlciA8IDApID8gLTEgOiArMTsKKyAgICAgICAgICAgIGlmIChxID09IHF1b3RpZW50KSB7CisgICAgICAgICAgICAgICAgLy8gRm9yIHF1b3RpZW50cyA+IH4yXjUzLCB3ZSB3b24ndCBiZSBhYmxlIHRvIGFkZCBvcgorICAgICAgICAgICAgICAgIC8vIHN1YnRyYWN0IG9uZSwgc2luY2UgdGhlIExTQiBvZiB0aGUgbWFudGlzc2Egd2lsbCBiZSA+CisgICAgICAgICAgICAgICAgLy8gMl4wOyB0aGF0IGlzLCB0aGUgZXhwb25lbnQgKGJhc2UgMikgd2lsbCBiZSBsYXJnZXIgdGhhbgorICAgICAgICAgICAgICAgIC8vIHRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBtYW50aXNzYS4gSW4gdGhhdCBjYXNlLCB3ZQorICAgICAgICAgICAgICAgIC8vIGNhbid0IGdpdmUgYSBjb3JyZWN0IGFuc3dlciwgc28gd2Ugc2V0IHRoZSByZW1haW5kZXIgdG8KKyAgICAgICAgICAgICAgICAvLyB6ZXJvLiBUaGlzIGhhcyB0aGUgZGVzaXJlZCBlZmZlY3Qgb2YgbWFraW5nIGV4dHJlbWUKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgZ2l2ZSBiYWNrIGFuIGFwcHJveGltYXRlIGFuc3dlciByYXRoZXIgdGhhbgorICAgICAgICAgICAgICAgIC8vIGNyYXNoaW5nLiBGb3IgZXhhbXBsZSwgVURhdGUgdmFsdWVzIGFib3ZlIGEgfjEwXjI1CisgICAgICAgICAgICAgICAgLy8gbWlnaHQgYWxsIGhhdmUgYSB0aW1lIG9mIG1pZG5pZ2h0LgorICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IGRpdmlkZW5kIC0gKHF1b3RpZW50ICogZGl2aXNvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCIwIDw9IHJlbWFpbmRlciAmJiByZW1haW5kZXIgPCBkaXZpc29yIiwgMCA8PSByZW1haW5kZXIgJiYgcmVtYWluZGVyIDwgZGl2aXNvcik7CisgICAgICAgIHJldFswXT1xdW90aWVudDsKKyAgICAgICAgcmV0WzFdPXJlbWFpbmRlcjsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNnZXRSYXdPZmZzZXQoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICBpbnRbXSByZXQgPSBuZXcgaW50WzJdOworICAgICAgICBnZXRPZmZzZXQoIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpLCBmYWxzZSwgcmV0KTsKKyAgICAgICAgcmV0dXJuIHJldFswXTsKKyAgICB9CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lI3VzZURheWxpZ2h0VGltZSgpCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworLy8gICAgICBJZiBEU1Qgd2FzIG9ic2VydmVkIGluIDE5NDIgKGZvciBleGFtcGxlKSBidXQgaGFzIG5ldmVyIGJlZW4KKyAgICAgICAgLy8gb2JzZXJ2ZWQgZnJvbSAxOTQzIHRvIHRoZSBwcmVzZW50LCBtb3N0IGNsaWVudHMgd2lsbCBleHBlY3QKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgdG8gcmV0dXJuIEZBTFNFLiAgVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICAgIC8vIERTVCBpcyBpbiB1c2UgaW4gdGhlIGN1cnJlbnQgeWVhciAoYXQgYW55IHBvaW50IGluIHRoZSB5ZWFyKQorICAgICAgICAvLyBhbmQgcmV0dXJucyBUUlVFIGlmIHNvLgorCisgICAgICAgIGRvdWJsZVtdIGR0ID0gZmxvb3JEaXZpZGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCksIChkb3VibGUpTUlMTElTX1BFUl9EQVkpOyAvLyBlcG9jaCBkYXlzCisgICAgICAgIGludCBkYXlzID0gKGludClkdFswXTsKKyAgICAgICAgaW50W10gaXQgPSBkYXlUb0ZpZWxkcyhkYXlzKTsKKworICAgICAgICBpbnQgeWVhcj1pdFswXTsgLyosIG1vbnRoPWl0WzFdLCBkb209aXRbMl0sIGRvdz1pdFszXSovCisgICAgICAgIGlmICh5ZWFyID4gZmluYWxZZWFyKSB7IC8vIFtzaWNdID4sIG5vdCA+PTsgc2VlIGFib3ZlCisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImZpbmFsWm9uZSAhPSBudWxsICYmIGZpbmFsWm9uZS51c2VEYXlsaWdodFRpbWUoKSIsIGZpbmFsWm9uZSAhPSBudWxsICYmIGZpbmFsWm9uZS51c2VEYXlsaWdodFRpbWUoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgc3RhcnQgb2YgdGhpcyB5ZWFyLCBhbmQgc3RhcnQgb2YgbmV4dCB5ZWFyCisgICAgICAgIGludCBzdGFydCA9IChpbnQpIGZpZWxkc1RvRGF5KHllYXIsIDAsIDEpICogU0VDT05EU19QRVJfREFZOyAgICAKKyAgICAgICAgaW50IGxpbWl0ID0gKGludCkgZmllbGRzVG9EYXkoeWVhcisxLCAwLCAxKSAqIFNFQ09ORFNfUEVSX0RBWTsgICAgCisKKyAgICAgICAgLy8gUmV0dXJuIFRSVUUgaWYgRFNUIGlzIG9ic2VydmVkIGF0IGFueSB0aW1lIGR1cmluZyB0aGUgY3VycmVudAorICAgICAgICAvLyB5ZWFyLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnNpdGlvbkNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uVGltZXNbaV0gPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uVGltZXNbaV0gPj0gc3RhcnQgJiYKKyAgICAgICAgICAgICAgICBkc3RPZmZzZXQodHlwZURhdGFbaV0pICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSQorICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIHRvIGJlIGFkZGVkIHRvIGxvY2FsIHN0YW5kYXJkIHRpbWUKKyAgICAgKiB0byBnZXQgbG9jYWwgd2FsbCBjbG9jayB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RFNUU2F2aW5ncygpIHsKKyAgICAJaWYoZmluYWxab25lIT1udWxsKXsKKyAgICAJCXJldHVybiBmaW5hbFpvbmUuZ2V0RFNUU2F2aW5ncygpOworICAgIAl9CisgICAgCXJldHVybiBzdXBlci5nZXREU1RTYXZpbmdzKCk7CisgICAgCQorICAgIH0KKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lI2luRGF5bGlnaHRUaW1lKGphdmEudXRpbC5EYXRlKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFsyXTsKKyAgICAgICAgZ2V0T2Zmc2V0KGRhdGUuZ2V0VGltZSgpLCBmYWxzZSwgdGVtcCk7CisgICAgICAgIHJldHVybiB0ZW1wWzFdICE9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIEdNVCswIHpvbmUgd2l0aCBubyB0cmFuc2l0aW9ucy4gIFRoaXMgaXMgZG9uZSB3aGVuIGEKKyAgICAgKiBjb25zdHJ1Y3RvciBmYWlscyBzbyB0aGUgcmVzdWx0YW50IG9iamVjdCBpcyB3ZWxsLWJlaGF2ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbnN0cnVjdEVtcHR5KCl7CisgICAgICAgIHRyYW5zaXRpb25Db3VudCA9IDA7CisgICAgICAgIHR5cGVDb3VudCA9IDE7CisgICAgICAgIHRyYW5zaXRpb25UaW1lcyA9IHR5cGVPZmZzZXRzID0gbmV3IGludFtdezAsMH07CisgICAgICAgIHR5cGVEYXRhID0gIG5ldyBieXRlWzJdOworICAgICAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGZyb20gYSByZXNvdXJjZSBidW5kbGUKKyAgICAgKiBAcGFyYW0gdG9wIHRoZSB0b3AtbGV2ZWwgem9uZWluZm8gcmVzb3VyY2UgYnVuZGxlLiAgVGhpcyBpcyB1c2VkCisgICAgICogdG8gbG9va3VwIHRoZSBydWxlIHRoYXQgYHJlcycgbWF5IHJlZmVyIHRvLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICogQHBhcmFtIHJlcyB0aGUgcmVzb3VyY2UgYnVuZGxlIG9mIHRoZSB6b25lIHRvIGJlIGNvbnN0cnVjdGVkCisgICAgICovCisgICAgcHVibGljIE9sc29uVGltZVpvbmUoSUNVUmVzb3VyY2VCdW5kbGUgdG9wLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMpeworICAgICAgICBjb25zdHJ1Y3QodG9wLCByZXMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29uc3RydWN0KElDVVJlc291cmNlQnVuZGxlIHRvcCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVzKXsKKyAgICAgICAgCisgICAgICAgIGlmICgodG9wID09IG51bGwgfHwgcmVzID09IG51bGwpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiT2xzb25UaW1lWm9uZSgiICsgcmVzLmdldEtleSgpICsiKSIpOworCisKKyAgICAgICAgLy8gVE9ETyAtLSBjbGVhbiB1cCAtLSBEb2Vzbid0IHdvcmsgaWYgcmVzIHBvaW50cyB0byBhbiBhbGlhcworICAgICAgICAvLyAgICAgICAgLy8gVE9ETyByZW1vdmUgbm9uY29uc3QgY2FzdHMgYmVsb3cgd2hlbiB1cmVzXyogQVBJIGlzIGZpeGVkCisgICAgICAgIC8vICAgICAgICBzZXRJRCh1cmVzX2dldEtleSgoVVJlc291cmNlQnVuZGxlKikgcmVzKSk7IC8vIGNhc3QgYXdheSBjb25zdAorCisgICAgICAgIC8vIFNpemUgMSBpcyBhbiBhbGlhcyBUTyBhbm90aGVyIHpvbmUgKGludCkKKyAgICAgICAgLy8gSE9XRVZFUiwgdGhlIGNhbGxlciBzaG91bGQgZGVyZWZlcmVuY2UgdGhpcyBhbmQgbmV2ZXIgcGFzcyBpdCBpbiB0byB1cworICAgICAgICAvLyBTaXplIDMgaXMgYSBwdXJlbHkgaGlzdG9yaWNhbCB6b25lIChubyBmaW5hbCBydWxlcykKKyAgICAgICAgLy8gU2l6ZSA0IGlzIGxpa2Ugc2l6ZSAzLCBidXQgd2l0aCBhbiBhbGlhcyBsaXN0IGF0IHRoZSBlbmQKKyAgICAgICAgLy8gU2l6ZSA1IGlzIGEgaHlicmlkIHpvbmUsIHdpdGggaGlzdG9yaWNhbCBhbmQgZmluYWwgZWxlbWVudHMKKyAgICAgICAgLy8gU2l6ZSA2IGlzIGxpa2Ugc2l6ZSA1LCBidXQgd2l0aCBhbiBhbGlhcyBsaXN0IGF0IHRoZSBlbmQKKyAgICAgICAgaW50IHNpemUgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICBpZiAoc2l6ZSA8IDMgfHwgc2l6ZSA+IDYpIHsKKyAgICAgICAgICAgLy8gZWMgPSBVX0lOVkFMSURfRk9STUFUX0VSUk9SOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYW5zaXRpb25zIGxpc3QgbWF5IGJlIGVtcHR5CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHIgPSByZXMuZ2V0KDApOworICAgICAgICB0cmFuc2l0aW9uVGltZXMgPSByLmdldEludFZlY3RvcigpOworICAgICAgICAKKyAgICAgICAgaWYgKCh0cmFuc2l0aW9uVGltZXMubGVuZ3RoPDAgfHwgdHJhbnNpdGlvblRpbWVzLmxlbmd0aD4weDdGRkYpICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cmFuc2l0aW9uQ291bnQgPSAoaW50KSB0cmFuc2l0aW9uVGltZXMubGVuZ3RoOworICAgICAgICAKKyAgICAgICAgLy8gVHlwZSBvZmZzZXRzIGxpc3QgbXVzdCBiZSBvZiBldmVuIHNpemUsIHdpdGggc2l6ZSA+PSAyCisgICAgICAgIHIgPSByZXMuZ2V0KCAxKTsKKyAgICAgICAgdHlwZU9mZnNldHMgPSByLmdldEludFZlY3RvcigpOworICAgICAgICBpZiAoKHR5cGVPZmZzZXRzLmxlbmd0aDwyIHx8IHR5cGVPZmZzZXRzLmxlbmd0aD4weDdGRkUgfHwgKCh0eXBlT2Zmc2V0cy5sZW5ndGgmMSkhPTApKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICB0eXBlQ291bnQgPSAoaW50KSB0eXBlT2Zmc2V0cy5sZW5ndGggPj4gMTsKKworICAgICAgICAvLyBUeXBlIGRhdGEgbXVzdCBiZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRoZSB0cmFuc2l0aW9ucyBsaXN0ICAgICAgICAKKyAgICAgICAgciA9IHJlcy5nZXQoMik7CisgICAgICAgIHR5cGVEYXRhID0gci5nZXRCaW5hcnkoKS5hcnJheSgpOworICAgICAgICBpZiAodHlwZURhdGEubGVuZ3RoICE9IHRyYW5zaXRpb25Db3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFByb2Nlc3MgZmluYWwgcnVsZSBhbmQgZGF0YSwgaWYgYW55CisgICAgICAgIGlmIChzaXplID49IDUpIHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlaWQgPSByZXMuZ2V0U3RyaW5nKDMpOworICAgICAgICAgICAgciA9IHJlcy5nZXQoNCk7CisgICAgICAgICAgICBpbnRbXSBkYXRhID0gci5nZXRJbnRWZWN0b3IoKTsKKworICAgICAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCAmJiBkYXRhLmxlbmd0aCA9PSAyKSB7CisgICAgICAgICAgICAgICAgaW50IHJhd09mZnNldCA9IGRhdGFbMF0gKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgZnJvbSB0aGUgYWN0dWFsIGZpbmFsIHllYXI7IHdlCisgICAgICAgICAgICAgICAgLy8gYWN0dWFsbHkgc3RvcmUgZmluYWwgeWVhciAtIDEsIGFuZCBjb21wYXJlCisgICAgICAgICAgICAgICAgLy8gdXNpbmcgPiByYXRoZXIgdGhhbiA+PS4gIFRoaXMgYWxsb3dzIHVzIHRvIHVzZQorICAgICAgICAgICAgICAgIC8vIElOVDMyX01BWCBhcyBhbiBleGNsdXNpdmUgdXBwZXIgbGltaXQgZm9yIGFsbAorICAgICAgICAgICAgICAgIC8vIHllYXJzLCBpbmNsdWRpbmcgSU5UMzJfTUFYLgorICAgICAgICAgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgiZGF0YVsxXSA+IEludGVnZXIuTUlOX1ZBTFVFIiwgZGF0YVsxXSA+IEludGVnZXIuTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgICAgICBmaW5hbFllYXIgPSBkYXRhWzFdIC0gMTsKKyAgICAgICAgICAgICAgICAvLyBBbHNvIGNvbXB1dGUgdGhlIG1pbGxpcyBmb3IgSmFuIDEsIDA6MDAgR01UIG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIGZpbmFsWWVhci4gIFRoaXMgcmVkdWNlcyBydW50aW1lIGNvbXB1dGF0aW9ucy4KKyAgICAgICAgICAgICAgICBmaW5hbE1pbGxpcyA9IGZpZWxkc1RvRGF5KGRhdGFbMV0sIDAsIDEpICogVGltZVpvbmUuTUlMTElTX1BFUl9EQVk7CisgICAgICAgICAgICAgICAgLy9VX0RFQlVHX1RaX01TRygoInpvbmUlc3wlczogeyVkLCVkfSwgZmluYWxZZWFyJWQsIGZpbmFsTWlsbGlzJS4xbGZcbiIsCisgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgektleSxyS2V5LCBkYXRhWzBdLCBkYXRhWzFdLCBmaW5hbFllYXIsIGZpbmFsTWlsbGlzKSk7CisgICAgICAgICAgICAgICAgciA9IGxvYWRSdWxlKHRvcCwgcnVsZWlkKTsKKworICAgICAgICAgICAgICAgIC8vIDMsIDEsIC0xLCA3MjAwLCAwLCA5LCAtMzEsIC0xLCA3MjAwLCAwLCAzNjAwCisgICAgICAgICAgICAgICAgZGF0YSA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICAgICAgaWYgKCBkYXRhLmxlbmd0aCA9PSAxMSkgeworICAgICAgICAgICAgICAgICAgICAvL1VfREVCVUdfVFpfTVNHKCgiem9uZSVzLCBydWxlJXM6IHslZCwlZCwlZCwlZCwlZCwlZCwlZCwlZCwlZCwlZCwlZH0iLCB6S2V5LCB1cmVzX2dldEtleShyKSwgCisgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICBkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdLCBkYXRhWzRdLCBkYXRhWzVdLCBkYXRhWzZdLCBkYXRhWzddLCBkYXRhWzhdLCBkYXRhWzldLCBkYXRhWzEwXSkpOworICAgICAgICAgICAgICAgICAgICBmaW5hbFpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUocmF3T2Zmc2V0LCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzNdICogTUlMTElTX1BFUl9TRUNPTkQsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzRdLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVs1XSwgZGF0YVs2XSwgZGF0YVs3XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbOF0gKiBNSUxMSVNfUEVSX1NFQ09ORCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbOV0sCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzEwXSAqIE1JTExJU19QRVJfU0VDT05EKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEZvcm1hdCIpOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgIHB1YmxpYyBPbHNvblRpbWVab25lKCl7CisgICAgICAgLyoKKyAgICAgICAgKiAKKyAgICAgICAgZmluYWxZZWFyID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGZpbmFsTWlsbGlzID0gRG91YmxlLk1BWF9WQUxVRTsKKyAgICAgICAgZmluYWxab25lID0gbnVsbDsKKyAgICAgICAgKi8KKyAgICAgICAgY29uc3RydWN0RW1wdHkoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyBPbHNvblRpbWVab25lKFN0cmluZyBpZCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBab25lTWV0YS5vcGVuT2xzb25SZXNvdXJjZShpZCk7CisgICAgICAgIGNvbnN0cnVjdCh0b3AsIHJlcyk7CisgICAgICAgIGlmKGZpbmFsWm9uZSE9bnVsbCl7CisgICAgICAgICAgICBmaW5hbFpvbmUuc2V0SUQoaWQpOworICAgICAgICB9CisgICAgICAgIHN1cGVyLnNldElEKGlkKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0SUQoU3RyaW5nIGlkKXsKKyAgICAgICAgaWYoZmluYWxab25lIT0gbnVsbCl7CisgICAgICAgICAgICBmaW5hbFpvbmUuc2V0SUQoaWQpOworICAgICAgICB9CisgICAgICAgIHN1cGVyLnNldElEKGlkKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX0JZVEVfTUFTSyA9MHhGRjsKKyAgICBwcml2YXRlIGludCBnZXRJbnQoYnl0ZSB2YWwpeworICAgIAlyZXR1cm4gKGludCkoVU5TSUdORURfQllURV9NQVNLICYgdmFsKTsgCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBnZXRIaXN0b3JpY2FsT2Zmc2V0KGRvdWJsZSB0aW1lLCBib29sZWFuIGxvY2FsLCBpbnRbXSBvZmZzZXRzKSB7CisgICAgICAgIGlmICh0cmFuc2l0aW9uQ291bnQgIT0gMCkgeworICAgICAgICAgICAgLy8gTGluZWFyIHNlYXJjaCBmcm9tIHRoZSBlbmQgaXMgdGhlIGZhc3Rlc3QgYXBwcm9hY2gsIHNpbmNlCisgICAgICAgICAgICAvLyBtb3N0IGxvb2t1cHMgd2lsbCBoYXBwZW4gYXQvbmVhciB0aGUgZW5kLgorICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yIChpID0gdHJhbnNpdGlvbkNvdW50IC0gMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGludCB0cmFuc2l0aW9uID0gdHJhbnNpdGlvblRpbWVzW2ldOworICAgICAgICAgICAgICAgIGlmIChsb2NhbCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgem9uZU9mZnNldFByZXYgPSB6b25lT2Zmc2V0KGdldEludCh0eXBlRGF0YVtpLTFdKSk7CisgICAgICAgICAgICAgICAgICAgIGludCB6b25lT2Zmc2V0Q3VyciA9IHpvbmVPZmZzZXQoZ2V0SW50KHR5cGVEYXRhW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHpvbmVPZmZzZXRQcmV2IDwgem9uZU9mZnNldEN1cnIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gKz0gem9uZU9mZnNldFByZXY7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uICs9IHpvbmVPZmZzZXRDdXJyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0aW1lID49IHRyYW5zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImk+PTAgJiYgaTx0cmFuc2l0aW9uQ291bnQiLCBpPj0wICYmIGk8dHJhbnNpdGlvbkNvdW50KTsKKworICAgICAgICAgICAgLy8gQ2hlY2sgaW52YXJpYW50cyBmb3IgR01UIHRpbWVzOyBpZiB0aGVzZSBwYXNzIGZvciBHTVQgdGltZXMKKyAgICAgICAgICAgIC8vIHRoZSBsb2NhbCBsb2dpYyBzaG91bGQgYmUgd29ya2luZyB0b28uCisgICAgICAgICAgICBpZiAoQVNTRVJUKSB7CisgICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0KCJsb2NhbCB8fCB0aW1lIDwgdHJhbnNpdGlvblRpbWVzWzBdIHx8IHRpbWUgPj0gdHJhbnNpdGlvblRpbWVzW2ldIiwgCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCB8fCB0aW1lIDwgdHJhbnNpdGlvblRpbWVzWzBdIHx8IHRpbWUgPj0gdHJhbnNpdGlvblRpbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQoImxvY2FsIHx8IGkgPT0gdHJhbnNpdGlvbkNvdW50LTEgfHwgdGltZSA8IHRyYW5zaXRpb25UaW1lc1tpKzFdIiwgCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCB8fCBpID09IHRyYW5zaXRpb25Db3VudC0xIHx8IHRpbWUgPCB0cmFuc2l0aW9uVGltZXNbaSsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIHRpbWUgaXMgYmVmb3JlIHRoZSB2ZXJ5IGZpcnN0IHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICBpbnQgZmlyc3RUcmFuc2l0aW9uID0gdHJhbnNpdGlvblRpbWVzWzBdOworICAgICAgICAgICAgICAgIGludCBpbml0aWFsUmF3T2Zmc2V0ID0gcmF3T2Zmc2V0KGdldEludCh0eXBlRGF0YVswXSkpOworICAgICAgICAgICAgICAgIGlmIChsb2NhbCkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdFRyYW5zaXRpb24gKz0gaW5pdGlhbFJhd09mZnNldDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRpbWUgPj0gZmlyc3RUcmFuc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBnaXZlbiB0aW1lIGlzIGJldHdlZW4gdGhlIGZpcnN0IGFuZCB0aGUgc2Vjb25kIHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1swXSA9IGluaXRpYWxSYXdPZmZzZXQgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IGRzdE9mZnNldChnZXRJbnQodHlwZURhdGFbMF0pKSAqIE1JTExJU19QRVJfU0VDT05EOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBnaXZlbiB0aW1lIGlzIGJlZm9yZSB0aGUgZmlyc3QgdHJhbnNpdGlvbgorICAgICAgICAgICAgICAgICAgICBvZmZzZXRzWzBdID0gaW5pdGlhbFJhd09mZnNldCAqIE1JTExJU19QRVJfU0VDT05EOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzWzFdID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGdldEludCh0eXBlRGF0YVtpXSk7CisgICAgICAgICAgICAgICAgb2Zmc2V0c1swXSA9IHJhd09mZnNldChpbmRleCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICBvZmZzZXRzWzFdID0gZHN0T2Zmc2V0KGluZGV4KSAqIE1JTExJU19QRVJfU0VDT05EOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gdHJhbnNpdGlvbnMsIHNpbmdsZSBwYWlyIG9mIG9mZnNldHMgb25seQorICAgICAgICAgICAgb2Zmc2V0c1swXSA9IHJhd09mZnNldCgwKSAqIE1JTExJU19QRVJfU0VDT05EOworICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IGRzdE9mZnNldCgwKSAqIE1JTExJU19QRVJfU0VDT05EOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgaW50IHpvbmVPZmZzZXQoaW50IGluZGV4KXsKKyAgICAgICAgaW5kZXg9aW5kZXggPDwgMTsKKyAgICAgICAgcmV0dXJuIHR5cGVPZmZzZXRzW2luZGV4XSArIHR5cGVPZmZzZXRzW2luZGV4KzFdOworICAgIH0KKyAgICBwcml2YXRlIGludCByYXdPZmZzZXQoaW50IGluZGV4KXsKKyAgICAgICAgcmV0dXJuIHR5cGVPZmZzZXRzWyhpbnQpKGluZGV4IDw8IDEpXTsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnQgZHN0T2Zmc2V0KGludCBpbmRleCl7CisgICAgICAgIHJldHVybiB0eXBlT2Zmc2V0c1soaW50KSgoaW5kZXggPDwgMSkgKyAxKV07CisgICAgfQorICAgIAorICAgIC8vIHRlbXAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgIAlTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIAlidWYuYXBwZW5kKHN1cGVyLnRvU3RyaW5nKCkpOworICAgIAlidWYuYXBwZW5kKCdbJyk7CisgICAgCWJ1Zi5hcHBlbmQoInRyYW5zaXRpb25Db3VudD0iICsgdHJhbnNpdGlvbkNvdW50KTsKKyAgICAJYnVmLmFwcGVuZCgiLHR5cGVDb3VudD0iICsgdHlwZUNvdW50KTsKKyAgICAJYnVmLmFwcGVuZCgiLHRyYW5zaXRpb25UaW1lcz0iKTsKKyAgICAJaWYgKHRyYW5zaXRpb25UaW1lcyAhPSBudWxsKSB7CisgICAgCQlidWYuYXBwZW5kKCdbJyk7CisgICAgCQlmb3IgKGludCBpID0gMDsgaSA8IHRyYW5zaXRpb25UaW1lcy5sZW5ndGg7ICsraSkgeworICAgIAkJCWlmIChpID4gMCkgeworICAgIAkJCQlidWYuYXBwZW5kKCcsJyk7CisgICAgCQkJfQorICAgIAkJCWJ1Zi5hcHBlbmQoSW50ZWdlci50b1N0cmluZyh0cmFuc2l0aW9uVGltZXNbaV0pKTsKKyAgICAJCX0KKyAgICAJCWJ1Zi5hcHBlbmQoJ10nKTsKKyAgICAJfSBlbHNlIHsKKyAgICAJCWJ1Zi5hcHBlbmQoIm51bGwiKTsKKyAgICAJfQorICAgIAlidWYuYXBwZW5kKCIsdHlwZU9mZnNldHM9Iik7CisgICAgCWlmICh0eXBlT2Zmc2V0cyAhPSBudWxsKSB7CisgICAgCQlidWYuYXBwZW5kKCdbJyk7CisgICAgCQlmb3IgKGludCBpID0gMDsgaSA8IHR5cGVPZmZzZXRzLmxlbmd0aDsgKytpKSB7CisgICAgCQkJaWYgKGkgPiAwKSB7CisgICAgCQkJCWJ1Zi5hcHBlbmQoJywnKTsKKyAgICAJCQl9CisgICAgCQkJYnVmLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKHR5cGVPZmZzZXRzW2ldKSk7CisgICAgCQl9CisgICAgCQlidWYuYXBwZW5kKCddJyk7CisgICAgCX0gZWxzZSB7CisgICAgCQlidWYuYXBwZW5kKCJudWxsIik7CisgICAgCX0KKyAgICAJYnVmLmFwcGVuZCgiLGZpbmFsWWVhcj0iICsgZmluYWxZZWFyKTsKKyAgICAJYnVmLmFwcGVuZCgiLGZpbmFsTWlsbGlzPSIgKyBmaW5hbE1pbGxpcyk7CisgICAgCWJ1Zi5hcHBlbmQoIixmaW5hbFpvbmU9IiArIGZpbmFsWm9uZSk7CisgICAgCWJ1Zi5hcHBlbmQoJ10nKTsKKyAgICAJCisgICAgCXJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIHRyYW5zaXRpb25zLCAwLi5+MzcwCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgdHJhbnNpdGlvbkNvdW50OworCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIHR5cGVzLCAxLi4yNTUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB0eXBlQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBUaW1lIG9mIGVhY2ggdHJhbnNpdGlvbiBpbiBzZWNvbmRzIGZyb20gMTk3MCBlcG9jaC4KKyAgICAgKiBMZW5ndGggaXMgdHJhbnNpdGlvbkNvdW50IGludDMyX3Qncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIHRyYW5zaXRpb25UaW1lczsgLy8gYWxpYXMgaW50byByZXM7IGRvIG5vdCBkZWxldGUKKworICAgIC8qKgorICAgICAqIE9mZnNldCBmcm9tIEdNVCBpbiBzZWNvbmRzIGZvciBlYWNoIHR5cGUuCisgICAgICogTGVuZ3RoIGlzIHR5cGVDb3VudCBpbnQzMl90J3MuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSB0eXBlT2Zmc2V0czsgLy8gYWxpYXMgaW50byByZXM7IGRvIG5vdCBkZWxldGUKKworICAgIC8qKgorICAgICAqIFR5cGUgZGVzY3JpcHRpb24gZGF0YSwgY29uc2lzdGluZyBvZiB0cmFuc2l0aW9uQ291bnQgdWludDhfdAorICAgICAqIHR5cGUgaW5kaWNlcyAoZnJvbSAwLi50eXBlQ291bnQtMSkuCisgICAgICogTGVuZ3RoIGlzIHRyYW5zaXRpb25Db3VudCBpbnQ4X3Qncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGVbXSB0eXBlRGF0YTsgLy8gYWxpYXMgaW50byByZXM7IGRvIG5vdCBkZWxldGUKKworICAgIC8qKgorICAgICAqIFRoZSBsYXN0IHllYXIgZm9yIHdoaWNoIHRoZSB0cmFuc2l0aW9ucyBkYXRhIGFyZSB0byBiZSB1c2VkCisgICAgICogcmF0aGVyIHRoYW4gdGhlIGZpbmFsWm9uZS4gIElmIHRoZXJlIGlzIG5vIGZpbmFsWm9uZSwgdGhlbiB0aGlzCisgICAgICogaXMgc2V0IHRvIElOVDMyX01BWC4gIE5PVEU6IFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHllYXIgX2JlZm9yZV8KKyAgICAgKiB0aGUgb25lIGluZGljYXRlZCBieSBmaW5hbE1pbGxpcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmaW5hbFllYXIgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIFRoZSBtaWxsaXMgZm9yIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgeWVhciBmb3Igd2hpY2ggZmluYWxab25lCisgICAgICogaXMgdG8gYmUgdXNlZCwgb3IgREJMX01BWCBpZiBmaW5hbFpvbmUgaXMgMC4gIE5PVEU6IFRoaXMgaXMKKyAgICAgKiAwOjAwIEdNVCBKYW4gMSwgPGZpbmFsWWVhciArIDE+IChub3QgPGZpbmFsTWlsbGlzPikuCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZmluYWxNaWxsaXMgPSBEb3VibGUuTUFYX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQSBTaW1wbGVUaW1lWm9uZSB0aGF0IGdvdmVybnMgdGhlIGJlaGF2aW9yIGZvciB5ZWFycyA+IGZpbmFsWWVhci4KKyAgICAgKiBJZiBhbmQgb25seSBpZiBmaW5hbFllYXIgPT0gSU5UMzJfTUFYIHRoZW4gZmluYWxab25lID09IDAuCisgICAgICovCisgICAgcHJpdmF0ZSBTaW1wbGVUaW1lWm9uZSBmaW5hbFpvbmUgPSBudWxsOyAvLyBvd25lZCwgbWF5IGJlIE5VTEwKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgib2xzb24iKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBEQVlTX0JFRk9SRSA9IG5ldyBpbnRbXSB7MCwzMSw1OSw5MCwxMjAsMTUxLDE4MSwyMTIsMjQzLDI3MywzMDQsMzM0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsMzEsNjAsOTEsMTIxLDE1MiwxODIsMjEzLDI0NCwyNzQsMzA1LDMzNX07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBNT05USF9MRU5HVEggPSBuZXcgaW50W117MzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVUxJQU5fMV9DRSAgICA9IDE3MjE0MjY7IC8vIEphbnVhcnkgMSwgMSBDRSBHcmVnb3JpYW4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOXzE5NzBfQ0UgPSAyNDQwNTg4OyAvLyBKYW51YXJ5IDEsIDE5NzAgQ0UgR3JlZ29yaWFuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTExJU19QRVJfU0VDT05EICA9IDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFQ09ORFNfUEVSX0RBWSA9IDI0KjYwKjYwOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBmaWVsZHNUb0RheShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZG9tKSB7CisgICAgICAgIGludCB5ID0geWVhciAtIDE7CisgICAgICAgIGRvdWJsZSBqdWxpYW4gPSAzNjUgKiB5ICsgbXlGbG9vckRpdmlkZSh5LCA0KSArIChKVUxJQU5fMV9DRSAtIDMpICsgLy8gSnVsaWFuIGNhbAorICAgICAgICBteUZsb29yRGl2aWRlKHksIDQwMCkgLSBteUZsb29yRGl2aWRlKHksIDEwMCkgKyAyICsgLy8gPT4gR3JlZ29yaWFuIGNhbAorICAgICAgICAgICAgREFZU19CRUZPUkVbbW9udGggKyAoaXNMZWFwWWVhcih5ZWFyKSA/IDEyIDogMCldICsgZG9tOyAvLyA9PiBtb250aC9kb20KKyAgICAKKyAgICAgICAgcmV0dXJuIGp1bGlhbiAtIEpVTElBTl8xOTcwX0NFOyAvLyBKRCA9PiBlcG9jaCBkYXkKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0xlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIC8vIHllYXImMHgzID09IHllYXIlNAorICAgICAgICByZXR1cm4gKCh5ZWFyJjB4MykgPT0gMCkgJiYgKCh5ZWFyJTEwMCAhPSAwKSB8fCAoeWVhciU0MDAgPT0gMCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGxvYWRSdWxlKElDVVJlc291cmNlQnVuZGxlIHRvcCwgU3RyaW5nIHJ1bGVpZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gdG9wLmdldCgiUnVsZXMiKTsKKyAgICAgICAgciA9IHIuZ2V0KHJ1bGVpZCk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBteUZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisgICAgaW50W10gZGF5VG9GaWVsZHMoZG91YmxlIGRheSkgeworICAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkb20sIGRvdzsKKyAgICAgICAgIGRvdWJsZSBkb3k7CisgICAgICAgICBpbnRbXSByZXQgPSBuZXcgaW50WzVdOworICAgICAgICAgCisgICAgICAgIC8vIENvbnZlcnQgZnJvbSAxOTcwIENFIGVwb2NoIHRvIDEgQ0UgZXBvY2ggKEdyZWdvcmlhbiBjYWxlbmRhcikKKyAgICAgICAgZGF5ICs9IEpVTElBTl8xOTcwX0NFIC0gSlVMSUFOXzFfQ0U7CisgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgdG8gdGhlIG11bHRpcGxlIHJhZGl4CisgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLiAgV2UgdXNlIDQwMC15ZWFyLCAxMDAteWVhciwgYW5kIDQteWVhciBjeWNsZXMuCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgNC15ZWFyIGN5Y2xlIGhhcyA0IHllYXJzICsgMSBsZWFwIGRheTsgZ2l2aW5nCisgICAgICAgIC8vIDE0NjEgPT0gMzY1KjQgKyAxIGRheXMuCisgICAgICAgIGRvdWJsZVtddGVtcCAgPSBmbG9vckRpdmlkZShkYXksIDE0NjA5Nyk7IC8vIDQwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBkb3VibGUgbjQwMCA9IHRlbXBbMF07CisgICAgICAgIGRveSAgPSB0ZW1wWzFdOworICAgICAgICB0ZW1wID0gZmxvb3JEaXZpZGUoZG95LCAzNjUyNCk7IC8vIDEwMC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBkb3VibGUgbjEwMCA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHRlbXAgPSBmbG9vckRpdmlkZShkb3ksIDE0NjEpOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGRvdWJsZSBuNCA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHRlbXAgPSBmbG9vckRpdmlkZShkb3ksIDM2NSk7CisgICAgICAgIGRvdWJsZSBuMSA9IHRlbXBbMF07CisgICAgICAgIGRveSA9IHRlbXBbMV07CisgICAgICAgIHllYXIgPSAoaW50KSggNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMSk7CisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZG95ID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ZWFyIGN5Y2xlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICArK3llYXI7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSBpc0xlYXBZZWFyKHllYXIpOworICAgICAgICAKKyAgICAgICAgLy8gR3JlZ29yaWFuIGRheSB6ZXJvIGlzIGEgTW9uZGF5LgorICAgICAgICBkb3cgPSAoaW50KSAoKGRheSArIDEpICUgNyk7CisgICAgICAgIGRvdyArPSAoZG93IDwgMCkgPyAoQ2FsZW5kYXIuU1VOREFZICsgNykgOiBDYWxlbmRhci5TVU5EQVk7CisgICAgICAgIAorICAgICAgICAvLyBDb21tb24gSnVsaWFuL0dyZWdvcmlhbiBjYWxjdWxhdGlvbgorICAgICAgICBpbnQgY29ycmVjdGlvbiA9IDA7CisgICAgICAgIGludCBtYXJjaDEgPSBpc0xlYXAgPyA2MCA6IDU5OyAvLyB6ZXJvLWJhc2VkIERPWSBmb3IgTWFyY2ggMQorICAgICAgICBpZiAoZG95ID49IG1hcmNoMSkgeworICAgICAgICAgICAgY29ycmVjdGlvbiA9IGlzTGVhcCA/IDEgOiAyOworICAgICAgICB9CisgICAgICAgIG1vbnRoID0gKGludCkoKDEyICogKGRveSArIGNvcnJlY3Rpb24pICsgNikgLyAzNjcpOyAvLyB6ZXJvLWJhc2VkIG1vbnRoCisgICAgICAgIGRvbSA9IChpbnQpKGRveSAtIERBWVNfQkVGT1JFW21vbnRoICsgKGlzTGVhcCA/IDEyIDogMCldICsgMSk7IC8vIG9uZS1iYXNlZCBET00KKyAgICAgICAgZG95Kys7IC8vIG9uZS1iYXNlZCBkb3kKKyAgICAgICAgcmV0WzBdPXllYXI7CisgICAgICAgIHJldFsxXT1tb250aDsKKyAgICAgICAgcmV0WzJdPWRvbTsKKyAgICAgICAgcmV0WzNdPWRvdzsKKyAgICAgICAgcmV0WzRdPShpbnQpZG95OworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iail7CisgICAgICAgIGlmICghc3VwZXIuZXF1YWxzKG9iaikpIHJldHVybiBmYWxzZTsgLy8gc3VwZXIgZG9lcyBjbGFzcyBjaGVjaworICAgICAgICAKKyAgICAgICAgT2xzb25UaW1lWm9uZSB6ID0gKE9sc29uVGltZVpvbmUpIG9iajsKKworICAgICAgICByZXR1cm4gKFV0aWxpdHkuYXJyYXlFcXVhbHModHlwZURhdGEsIHoudHlwZURhdGEpIHx8CisgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwb2ludGVycyBhcmUgbm90IGVxdWFsLCB0aGUgem9uZXMgbWF5IHN0aWxsCisgICAgICAgICAgICAgICAgIC8vIGJlIGVxdWFsIGlmIHRoZWlyIHJ1bGVzIGFuZCB0cmFuc2l0aW9ucyBhcmUgZXF1YWwKKyAgICAgICAgICAgICAgICAgKGZpbmFsWWVhciA9PSB6LmZpbmFsWWVhciAmJgorICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgY29tcGFyZSBmaW5hbE1pbGxpczsgaWYgZmluYWxZZWFyIGlzID09LCBzbyBpcyBmaW5hbE1pbGxpcworICAgICAgICAgICAgICAgICAgKChmaW5hbFpvbmUgPT0gbnVsbCAmJiB6LmZpbmFsWm9uZSA9PSBudWxsKSB8fAorICAgICAgICAgICAgICAgICAgIChmaW5hbFpvbmUgIT0gbnVsbCAmJiB6LmZpbmFsWm9uZSAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIGZpbmFsWm9uZS5lcXVhbHMoei5maW5hbFpvbmUpKSAmJgorICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbkNvdW50ID09IHoudHJhbnNpdGlvbkNvdW50ICYmCisgICAgICAgICAgICAgICAgICB0eXBlQ291bnQgPT0gei50eXBlQ291bnQgJiYKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuYXJyYXlFcXVhbHModHJhbnNpdGlvblRpbWVzLCB6LnRyYW5zaXRpb25UaW1lcykgJiYKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuYXJyYXlFcXVhbHModHlwZU9mZnNldHMsIHoudHlwZU9mZnNldHMpICYmCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5RXF1YWxzKHR5cGVEYXRhLCB6LnR5cGVEYXRhKQorICAgICAgICAgICAgICAgICAgKSkpOworCisgICAgfQorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAJaW50IHJldCA9ICAgKGludCkgIChmaW5hbFllYXIgXiAoZmluYWxZZWFyPj4+NCkgKworICAgIAkJCSAgIHRyYW5zaXRpb25Db3VudCBeICh0cmFuc2l0aW9uQ291bnQ+Pj42KSArCisgICAgCQkJICAgdHlwZUNvdW50IF4gKHR5cGVDb3VudD4+PjgpICsgCisgICAgCQkJICAgRG91YmxlLmRvdWJsZVRvTG9uZ0JpdHMoZmluYWxNaWxsaXMpKworICAgIAkJCSAgIChmaW5hbFpvbmUgPT0gbnVsbCA/IDAgOiBmaW5hbFpvbmUuaGFzaENvZGUoKSkgKyAKKyAgICAJCQkgICBzdXBlci5oYXNoQ29kZSgpKTsKKyAgICAJZm9yKGludCBpPTA7IGk8dHJhbnNpdGlvblRpbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAJCXJldCs9dHJhbnNpdGlvblRpbWVzW2ldXih0cmFuc2l0aW9uVGltZXNbaV0+Pj44KTsKKyAgICAJfQorCSAgICBmb3IoaW50IGk9MDsgaTx0eXBlT2Zmc2V0cy5sZW5ndGg7IGkrKyl7CisgICAgCQlyZXQrPXR5cGVPZmZzZXRzW2ldXih0eXBlT2Zmc2V0c1tpXT4+PjgpOworICAgIAl9CisJICAgIGZvcihpbnQgaT0wOyBpPHR5cGVEYXRhLmxlbmd0aDsgaSsrKXsKKyAgICAJCXJldCs9dHlwZURhdGFbaV0gJiBVTlNJR05FRF9CWVRFX01BU0s7CisgICAgCX0gCisJICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIC8qCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgIHMuZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgLy8gY3VzdG9taXplZCBkZXNlcmlhbGl6YXRpb24gY29kZQorICAgICAgIAorICAgICAgICAvLyBmb2xsb3dlZCBieSBjb2RlIHRvIHVwZGF0ZSB0aGUgb2JqZWN0LCBpZiBuZWNlc3NhcnkKKyAgICB9CisgICAgKi8KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUGF0dGVyblRva2VuaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUGF0dGVyblRva2VuaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZjFlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9QYXR0ZXJuVG9rZW5pemVyLmphdmEKQEAgLTAsMCArMSwzNzQgQEAKKy8vIyNoZWFkZXIKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgR29vZ2xlLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuRm9ybWF0UGFyc2VyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLlZhcmlhYmxlRmllbGQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworLyoqCisgKiBBIHNpbXBsZSBwYXJzaW5nIGNsYXNzIGZvciBwYXR0ZXJucyBhbmQgcnVsZXMuIEhhbmRsZXMgJy4uLicgcXVvdGF0aW9ucywgXFx1eHh4eCBhbmQgXFxVeHh4eHh4eHgsIGFuZCBzeW1wbGUgc3ludGF4LgorICogVGhlICcnICh0d28gcXVvdGVzKSBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIHF1b3RlLCBpbnNpZGUgb3Igb3V0c2lkZSBhIHF1b3RlCisgKiA8dWw+CisgKiA8bGk+QW55IGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGFyZSBpZ25vcmVkIGluIHBhcnNpbmcuPC9saT4KKyAqIDxsaT5Bbnkgc3ludGF4IGNoYXJhY3RlcnMgYXJlIGJyb2tlbiBpbnRvIHNlcGFyYXRlIHRva2VuczwvbGk+CisgKiA8bGk+UXVvdGUgY2hhcmFjdGVycyBjYW4gYmUgc3BlY2lmaWVkOiAnLi4uJywgIi4uLiIsIGFuZCBceCA8L2xpPgorICogPGxpPk90aGVyIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbHM8L2xpPgorICogPC91bD4KKyAqLworcHVibGljIGNsYXNzIFBhdHRlcm5Ub2tlbml6ZXIgeworICAgIC8vIHNldHRpbmdzIHVzZWQgaW4gdGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBwYXR0ZXJuCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGlnbm9yYWJsZUNoYXJhY3RlcnMgPSBuZXcgVW5pY29kZVNldCgpOworICAgIHByaXZhdGUgVW5pY29kZVNldCBzeW50YXhDaGFyYWN0ZXJzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgZXNjYXBlQ2hhcmFjdGVycyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgcHJpdmF0ZSBib29sZWFuIHVzaW5nU2xhc2ggPSBmYWxzZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gdXNpbmdRdW90ZSA9IGZhbHNlOworICAgIAorICAgIC8vIHRyYW5zaWVudCBkYXRhLCBzZXQgd2hlbiBuZWVkZWQuIE51bGwgaXQgb3V0IGZvciBhbnkgY2hhbmdlcyBpbiB0aGUgYWJvdmUgZmllbGRzLgorICAgIHByaXZhdGUgdHJhbnNpZW50IFVuaWNvZGVTZXQgbmVlZGluZ1F1b3RlQ2hhcmFjdGVycyA9IG51bGw7CisgICAgCisgICAgLy8gZGF0YSBhYm91dCB0aGUgY3VycmVudCBwYXR0ZXJuIGJlaW5nIHBhcnNlZC4gc3RhcnQgZ2V0cyBtb3ZlZCBhcyB3ZSBnbyBhbG9uZy4KKyAgICBwcml2YXRlIGludCBzdGFydDsKKyAgICBwcml2YXRlIGludCBsaW1pdDsKKyAgICBwcml2YXRlIENoYXJTZXF1ZW5jZSBwYXR0ZXJuOworICAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldElnbm9yYWJsZUNoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgaWdub3JhYmxlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIGlnbm9yZWQgaW4gcGFyc2luZywgZWcgbmV3IFVuaWNvZGVTZXQoIls6cGF0dGVybl93aGl0ZXNwYWNlOl0iKTsKKyAgICAgKiBAcGFyYW0gaWdub3JhYmxlQ2hhcmFjdGVycworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRJZ25vcmFibGVDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgaWdub3JhYmxlQ2hhcmFjdGVycykgeworICAgICAgICB0aGlzLmlnbm9yYWJsZUNoYXJhY3RlcnMgPSAoVW5pY29kZVNldCkgaWdub3JhYmxlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFN5bnRheENoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgc3ludGF4Q2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiAgU2V0cyB0aGUgY2hhcmFjdGVycyB0byBiZSBpbnRlcnByZXRlZCBhcyBzeW50YXggY2hhcmFjdGVycyBpbiBwYXJzaW5nLCBlZyBuZXcgVW5pY29kZVNldCgiWzpwYXR0ZXJuX3N5bnRheDpdIikKKyAgICAgKiBAcGFyYW0gc3ludGF4Q2hhcmFjdGVycworICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRTeW50YXhDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc3ludGF4Q2hhcmFjdGVycykgeworICAgICAgICB0aGlzLnN5bnRheENoYXJhY3RlcnMgPSAoVW5pY29kZVNldCkgc3ludGF4Q2hhcmFjdGVycy5jbG9uZSgpOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfSAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEVzY2FwZUNoYXJhY3RlcnMoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgZXNjYXBlQ2hhcmFjdGVycy5jbG9uZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgY2hhcmFjdGVycyB0byBiZSBlc2NhcGVkIGluIGxpdGVyYWxzLCBpbiBxdW90ZUxpdGVyYWwgYW5kIG5vcm1hbGl6ZSwgZWcgbmV3IFVuaWNvZGVTZXQoIlteXFx1MDAyMC1cXHUwMDdFXSIpOworICAgICAqIEBwYXJhbSBlc2NhcGVDaGFyYWN0ZXJzCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldEVzY2FwZUNoYXJhY3RlcnMoVW5pY29kZVNldCBlc2NhcGVDaGFyYWN0ZXJzKSB7CisgICAgICAgIHRoaXMuZXNjYXBlQ2hhcmFjdGVycyA9IChVbmljb2RlU2V0KSBlc2NhcGVDaGFyYWN0ZXJzLmNsb25lKCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1VzaW5nUXVvdGUoKSB7CisgICAgICAgIHJldHVybiB1c2luZ1F1b3RlOworICAgIH0KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRVc2luZ1F1b3RlKGJvb2xlYW4gdXNpbmdRdW90ZSkgeworICAgICAgICB0aGlzLnVzaW5nUXVvdGUgPSB1c2luZ1F1b3RlOworICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGlzVXNpbmdTbGFzaCgpIHsKKyAgICAgICAgcmV0dXJuIHVzaW5nU2xhc2g7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFVzaW5nU2xhc2goYm9vbGVhbiB1c2luZ1NsYXNoKSB7CisgICAgICAgIHRoaXMudXNpbmdTbGFzaCA9IHVzaW5nU2xhc2g7CisgICAgICAgIG5lZWRpbmdRdW90ZUNoYXJhY3RlcnMgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLy8gICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0UXVvdGVDaGFyYWN0ZXJzKCkgeworLy8gIHJldHVybiAoVW5pY29kZVNldCkgcXVvdGVDaGFyYWN0ZXJzLmNsb25lKCk7CisvLyAgfQorLy8gIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFF1b3RlQ2hhcmFjdGVycyhVbmljb2RlU2V0IHF1b3RlQ2hhcmFjdGVycykgeworLy8gIHRoaXMucXVvdGVDaGFyYWN0ZXJzID0gKFVuaWNvZGVTZXQpIHF1b3RlQ2hhcmFjdGVycy5jbG9uZSgpOworLy8gIG5lZWRpbmdRdW90ZUNoYXJhY3RlcnMgPSBudWxsOworLy8gIHJldHVybiB0aGlzOworLy8gIH0KKyAgICBwdWJsaWMgaW50IGdldExpbWl0KCkgeworICAgICAgICByZXR1cm4gbGltaXQ7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldExpbWl0KGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgaW50IGdldFN0YXJ0KCkgeworICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgfQorICAgIHB1YmxpYyBQYXR0ZXJuVG9rZW5pemVyIHNldFN0YXJ0KGludCBzdGFydCkgeworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgUGF0dGVyblRva2VuaXplciBzZXRQYXR0ZXJuKENoYXJTZXF1ZW5jZSBwYXR0ZXJuKSB7CisgICAgICAgIGlmIChwYXR0ZXJuID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluY29uc2lzdGVudCBhcmd1bWVudHMiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnN0YXJ0ID0gMDsKKyAgICAgICAgdGhpcy5saW1pdCA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgU0lOR0xFX1FVT1RFID0gJ1wnJzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgQkFDS19TTEFTSCA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IE5PX1FVT1RFID0gLTEsIElOX1FVT1RFID0gLTI7CisgICAgLyoqCisgICAgICogUXVvdGUgYSBsaXRlcmFsIHN0cmluZywgdXNpbmcgdGhlIGF2YWlsYWJsZSBzZXR0aW5ncy4gVGh1cyBzeW50YXggY2hhcmFjdGVycywgcXVvdGUgY2hhcmFjdGVycywgYW5kIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIHdpbGwgYmUgcHV0IGludG8gcXVvdGVzLgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBxdW90ZUxpdGVyYWwoQ2hhclNlcXVlbmNlIHN0cmluZykgeworICAgICAgICBpZiAobmVlZGluZ1F1b3RlQ2hhcmFjdGVycyA9PSBudWxsKSB7CisgICAgICAgICAgICBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzID0gbmV3IFVuaWNvZGVTZXQoKS5hZGRBbGwoc3ludGF4Q2hhcmFjdGVycykuYWRkQWxsKGlnbm9yYWJsZUNoYXJhY3RlcnMpOyAvLyAuYWRkQWxsKHF1b3RlQ2hhcmFjdGVycykKKyAgICAgICAgICAgIGlmICh1c2luZ1NsYXNoKSBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmFkZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgIGlmICh1c2luZ1F1b3RlKSBuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmFkZChTSU5HTEVfUVVPVEUpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBxdW90ZWRDaGFyID0gTk9fUVVPVEU7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyaW5nLCBpKTsKKyAgICAgICAgICAgIGlmIChlc2NhcGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZpeCB1cCBwcmV2aW91cyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgaWYgKHF1b3RlZENoYXIgPT0gSU5fUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZWRDaGFyID0gTk9fUVVPVEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZEVzY2FwZWQocmVzdWx0LCBjcCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChuZWVkaW5nUXVvdGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgYWxyZWFkeSBzdGFydGVkIGEgcXVvdGUKKyAgICAgICAgICAgICAgICBpZiAocXVvdGVkQ2hhciA9PSBJTl9RVU9URSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh1c2luZ1F1b3RlICYmIGNwID09IFNJTkdMRV9RVU9URSkgeyAvLyBkb3VibGUgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU0lOR0xFX1FVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIG5vdCBhbHJlYWR5IGluIHF1b3RlCisgICAgICAgICAgICAgICAgaWYgKHVzaW5nU2xhc2gpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY3ApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHVzaW5nUXVvdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IFNJTkdMRV9RVU9URSkgeyAvLyBkb3VibGUgaXQgYW5kIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVkQ2hhciA9IElOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIHVzZSBcXHUgb3IgXFxVCisgICAgICAgICAgICAgICAgYXBwZW5kRXNjYXBlZChyZXN1bHQsIGNwKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSBjcCBkb2Vzbid0IG5lZWQgcXVvdGluZworICAgICAgICAgICAgLy8gd2UgbWF5IGhhdmUgdG8gZml4IHVwIHByZXZpb3VzIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGlmIChxdW90ZWRDaGFyID09IElOX1FVT1RFKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTSU5HTEVfUVVPVEUpOworICAgICAgICAgICAgICAgIHF1b3RlZENoYXIgPSBOT19RVU9URTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhbGwgZG9uZS4gCisgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZpeCB1cCBwcmV2aW91cyBjaGFyYWN0ZXJzCisgICAgICAgIGlmIChxdW90ZWRDaGFyID09IElOX1FVT1RFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kRXNjYXBlZChTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgY3ApIHsKKyAgICAgICAgaWYgKGNwIDw9IDB4RkZGRikgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXFx1IikuYXBwZW5kKFV0aWxpdHkuaGV4KGNwLDQpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcVSIpLmFwcGVuZChVdGlsaXR5LmhleChjcCw4KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBub3JtYWxpemUoKSB7CisgICAgICAgIGludCBvbGRTdGFydCA9IHN0YXJ0OworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGludCBzdGF0dXMgPSBuZXh0KGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAoc3RhdHVzID09IERPTkUpIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG9sZFN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gU1lOVEFYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChxdW90ZUxpdGVyYWwoYnVmZmVyKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gMCwgU1lOVEFYID0gMSwgTElURVJBTCA9IDIsIEJST0tFTl9RVU9URSA9IDMsIEJST0tFTl9FU0NBUEUgPSA0LCBVTktOT1dOID0gNTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUZURVJfUVVPVEUgPSAtMSwgTk9ORSA9IDAsIFNUQVJUX1FVT1RFID0gMSwgTk9STUFMX1FVT1RFID0gMiwgU0xBU0hfU1RBUlQgPSAzLCBIRVggPSA0OworICAgIAorICAgIHB1YmxpYyBpbnQgbmV4dChTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgcmV0dXJuIERPTkU7CisgICAgICAgIGludCBzdGF0dXMgPSBVTktOT1dOOworICAgICAgICBpbnQgbGFzdFF1b3RlID0gVU5LTk9XTjsKKyAgICAgICAgaW50IHF1b3RlU3RhdHVzID0gTk9ORTsKKyAgICAgICAgaW50IGhleENvdW50ID0gMDsKKyAgICAgICAgaW50IGhleFZhbHVlID0gMDsKKyAgICAgICAgaW50IGNwOworICAgICAgICBtYWluOgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBpbiBhIHF1b3RlLCB0aGVuIGhhbmRsZSBpdC4KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHF1b3RlU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBTTEFTSF9TVEFSVDoKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjcCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlU3RhdHVzID0gSEVYOworICAgICAgICAgICAgICAgICAgICAgICAgaGV4Q291bnQgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnVSc6IAorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBIRVg7CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhDb3VudCA9IDg7CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBtYWluOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzaW5nU2xhc2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoQkFDS19TTEFTSCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWxsIHRocm91Z2ggdG8gTk9ORQorICAgICAgICAgICAgICAgIGNhc2UgSEVYOgorICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSA8PD0gNDsKKyAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgKz0gY3A7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOiBjYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6CisgICAgICAgICAgICAgICAgICAgICAgICBoZXhWYWx1ZSAtPSAnMCc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICdhJzogY2FzZSAnYic6IGNhc2UgJ2MnOiBjYXNlICdkJzogY2FzZSAnZSc6IGNhc2UgJ2YnOgorICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgLT0gJ2EnIC0gMTA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICdBJzogY2FzZSAnQic6IGNhc2UgJ0MnOiBjYXNlICdEJzogY2FzZSAnRSc6IGNhc2UgJ0YnOgorICAgICAgICAgICAgICAgICAgICAgICAgaGV4VmFsdWUgLT0gJ0EnIC0gMTA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQlJPS0VOX0VTQ0FQRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAtLWhleENvdW50OworICAgICAgICAgICAgICAgICAgICBpZiAoaGV4Q291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgaGV4VmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgY2FzZSBBRlRFUl9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGdldCBhbm90aGVyIHF1b3RlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBqdXN0IGVuZGVkIGEgcXVvdGUgQlVUIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyIGlzIHRoZSBsYXN0UXVvdGUgY2hhcmFjdGVyLCB0aGVuIHdlIGhhdmUgYSBzaXR1YXRpb24gbGlrZSAnLi4uJycuLi4nLCBzbyB3ZSByZXN0YXJ0IHRoZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICBpZiAoY3AgPT0gbGFzdFF1b3RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZVN0YXR1cyA9IE5PUk1BTF9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOworICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gZmFsbCB0aHJvdWdoIHRvIE5PTkUKKyAgICAgICAgICAgICAgICBjYXNlIFNUQVJUX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgYXQgdGhlIHZlcnkgc3RhcnQgb2YgYSBxdW90ZSwgYW5kIHdlIGhpdCBhbm90aGVyIHF1b3RlIG1hcmsgdGhlbiB3ZSBlbWl0IGEgbGl0ZXJhbCBxdW90ZSBjaGFyYWN0ZXIgYW5kIGVuZCB0aGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IGxhc3RRdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBOT05FOyAvLyBnZXQgb3V0IG9mIHF1b3RlLCB3aXRoIG5vIHRyYWNlIHJlbWFpbmluZworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBnZXQgaW50byBxdW90ZQorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlU3RhdHVzID0gTk9STUFMX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBtYWluOworICAgICAgICAgICAgICAgIGNhc2UgTk9STUFMX1FVT1RFOiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IGxhc3RRdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBBRlRFUl9RVU9URTsgLy8gZ2V0IG91dCBvZiBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpZ25vcmFibGVDaGFyYWN0ZXJzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZG8gc3ludGF4IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICBpZiAoc3ludGF4Q2hhcmFjdGVycy5jb250YWlucyhjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBVTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGkgKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNZTlRBWDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gTElURVJBTCwgc28gYmFjayB1cCBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IGlzIGEgbGl0ZXJhbDsga2VlcCBvbiBnb2luZworICAgICAgICAgICAgICAgIHN0YXR1cyA9IExJVEVSQUw7CisgICAgICAgICAgICAgICAgaWYgKGNwID09IEJBQ0tfU0xBU0gpIHsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBTTEFTSF9TVEFSVDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1c2luZ1F1b3RlICYmIGNwID09IFNJTkdMRV9RVU9URSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0UXVvdGUgPSBjcDsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGF0dXMgPSBTVEFSVF9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG5vcm1hbCBsaXRlcmFscworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gaGFuZGxlIGZpbmFsIGNsZWFudXAKKyAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgc3dpdGNoIChxdW90ZVN0YXR1cykgeworICAgICAgICBjYXNlIEhFWDoKKyAgICAgICAgICAgIHN0YXR1cyA9IEJST0tFTl9FU0NBUEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTTEFTSF9TVEFSVDoKKyAgICAgICAgICAgIGlmICh1c2luZ1NsYXNoKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gQlJPS0VOX0VTQ0FQRTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChCQUNLX1NMQVNIKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNUQVJUX1FVT1RFOiBjYXNlIE5PUk1BTF9RVU9URToKKyAgICAgICAgICAgIHN0YXR1cyA9IEJST0tFTl9RVU9URTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorICAgIAorICAgIAorfQorLy8jZW5kaWYKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9QcmV0dHlQcmludGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9QcmV0dHlQcmludGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI0NTFiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1ByZXR0eVByaW50ZXIuamF2YQpAQCAtMCwwICsxLDI1OCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIGludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzLk11bHRpQ29tcGFyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKiogUHJvdmlkZXMgbW9yZSBmbGV4aWJsZSBmb3JtYXR0aW5nIG9mIFVuaWNvZGVTZXQgcGF0dGVybnMuCisgKi8KK3B1YmxpYyBjbGFzcyBQcmV0dHlQcmludGVyIHsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IHBhdHRlcm5XaGl0ZXNwYWNlID0gKFVuaWNvZGVTZXQpIG5ldyBVbmljb2RlU2V0KCJbWzpDbjpdWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1bOnBhdHRlcm53aGl0ZXNwYWNlOl1dIikuZnJlZXplKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBzb3J0QXRFbmQgPSAoVW5pY29kZVNldCkgbmV3IFVuaWNvZGVTZXQoIltbOkNuOl1bOkNzOl1bOkNvOl1bOklkZW9ncmFwaGljOl1dIikuZnJlZXplKCk7CisJCisJcHJpdmF0ZSBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKwlwcml2YXRlIFN0cmluZ0J1ZmZlciB0YXJnZXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJcHJpdmF0ZSBpbnQgZmlyc3RDb2RlUG9pbnQgPSAtMjsKKwlwcml2YXRlIGludCBsYXN0Q29kZVBvaW50ID0gLTI7CisJcHJpdmF0ZSBib29sZWFuIGNvbXByZXNzUmFuZ2VzID0gdHJ1ZTsKKwlwcml2YXRlIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisJcHJpdmF0ZSBVbmljb2RlU2V0IHRvUXVvdGUgPSBuZXcgVW5pY29kZVNldChwYXR0ZXJuV2hpdGVzcGFjZSk7CisJcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBxdW90ZXIgPSBudWxsOworCQorCXByaXZhdGUgQ29tcGFyYXRvciBvcmRlcmluZzsKKwlwcml2YXRlIENvbXBhcmF0b3Igc3BhY2VDb21wID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5ST09UKTsKKwl7CisJCXNldE9yZGVyaW5nKENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuUk9PVCkpOworCQkoKFJ1bGVCYXNlZENvbGxhdG9yKXNwYWNlQ29tcCkuc2V0U3RyZW5ndGgoUnVsZUJhc2VkQ29sbGF0b3IuUFJJTUFSWSk7CisJfQorCQorCXB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRRdW90ZXIoKSB7CisJCXJldHVybiBxdW90ZXI7CisJfQorCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0UXVvdGVyKFRyYW5zbGl0ZXJhdG9yIHF1b3RlcikgeworCQl0aGlzLnF1b3RlciA9IHF1b3RlcjsKKwkJcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworCX0KKworCXB1YmxpYyBib29sZWFuIGlzQ29tcHJlc3NSYW5nZXMoKSB7CisJCXJldHVybiBjb21wcmVzc1JhbmdlczsKKwl9CisJCisJLyoqCisJICogQHBhcmFtIGNvbXByZXNzUmFuZ2VzIGlmIHlvdSB3YW50IGFiY2RlIGluc3RlYWQgb2YgYS1lLCBtYWtlIHRoaXMgZmFsc2UKKwkgKiBAcmV0dXJuCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0Q29tcHJlc3NSYW5nZXMoYm9vbGVhbiBjb21wcmVzc1JhbmdlcykgeworCQl0aGlzLmNvbXByZXNzUmFuZ2VzID0gY29tcHJlc3NSYW5nZXM7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgQ29tcGFyYXRvciBnZXRPcmRlcmluZygpIHsKKwkJcmV0dXJuIG9yZGVyaW5nOworCX0KKwkKKwkvKioKKwkgKiBAcGFyYW0gb3JkZXJpbmcgdGhlIHJlc3VsdGluZyAgb3JkZXJpbmcgb2YgdGhlIGxpc3Qgb2YgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybgorCSAqIEByZXR1cm4KKwkgKi8KKwlwdWJsaWMgUHJldHR5UHJpbnRlciBzZXRPcmRlcmluZyhDb21wYXJhdG9yIG9yZGVyaW5nKSB7CisJCXRoaXMub3JkZXJpbmcgPSBuZXcgTXVsdGlDb21wYXJhdG9yKG5ldyBDb21wYXJhdG9yW10ge29yZGVyaW5nLCBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLGZhbHNlLDApfSk7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgQ29tcGFyYXRvciBnZXRTcGFjZUNvbXBhcmF0b3IoKSB7CisJCXJldHVybiBzcGFjZUNvbXA7CisJfQorCQorCS8qKgorCSAqIEBwYXJhbSBzcGFjZUNvbXAgaWYgdGhlIGNvbXBhcmlzb24gcmV0dXJucyBub24temVybywgdGhlbiBhIHNwYWNlIHdpbGwgYmUgaW5zZXJ0ZWQgYmV0d2VlbiBjaGFyYWN0ZXJzCisJICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKwkgKi8KKwlwdWJsaWMgUHJldHR5UHJpbnRlciBzZXRTcGFjZUNvbXBhcmF0b3IoQ29tcGFyYXRvciBzcGFjZUNvbXApIHsKKwkJdGhpcy5zcGFjZUNvbXAgPSBzcGFjZUNvbXA7CisJCXJldHVybiB0aGlzOworCX0KKwkKKwlwdWJsaWMgVW5pY29kZVNldCBnZXRUb1F1b3RlKCkgeworCQlyZXR1cm4gdG9RdW90ZTsKKwl9CisJCisJLyoqCisJICogYSBVbmljb2RlU2V0IG9mIGV4dHJhIGNoYXJhY3RlcnMgdG8gcXVvdGUgd2l0aCBcXHVYWFhYLXN0eWxlIGVzY2FwaW5nICh3aWxsIGF1dG9tYXRpY2FsbHkgcXVvdGUgcGF0dGVybiB3aGl0ZXNwYWNlKQorCSAqIEBwYXJhbSB0b1F1b3RlCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0VG9RdW90ZShVbmljb2RlU2V0IHRvUXVvdGUpIHsKKwkJdG9RdW90ZSA9IChVbmljb2RlU2V0KXRvUXVvdGUuY2xvbmUoKTsKKwkJdG9RdW90ZS5hZGRBbGwocGF0dGVybldoaXRlc3BhY2UpOworCQl0aGlzLnRvUXVvdGUgPSB0b1F1b3RlOworCQlyZXR1cm4gdGhpczsKKwl9CisJCQorCS8qKgorCSAqIEdldCB0aGUgcGF0dGVybiBmb3IgYSBwYXJ0aWN1bGFyIHNldC4KKwkgKiBAcGFyYW0gdXNldAorCSAqIEByZXR1cm4gZm9ybWF0dGVkIFVuaWNvZGVTZXQKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIHRvUGF0dGVybihVbmljb2RlU2V0IHVzZXQpIHsKKwkJZmlyc3QgPSB0cnVlOworICAgICAgICBVbmljb2RlU2V0IHB1dEF0RW5kID0gbmV3IFVuaWNvZGVTZXQodXNldCkucmV0YWluQWxsKHNvcnRBdEVuZCk7IC8vIHJlbW92ZSBhbGwgdGhlIHVuYXNzaWduZWQgZ29ycCBmb3Igbm93CisJCS8vIG1ha2Ugc3VyZSB0aGF0IGNvbXBhcmlzb24gc2VwYXJhdGVzIGFsbCBzdHJpbmdzLCBldmVuIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgb25lcworCQlTZXQgb3JkZXJlZFN0cmluZ3MgPSBuZXcgVHJlZVNldChvcmRlcmluZyk7CisJCWZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih1c2V0KTsgaXQubmV4dFJhbmdlKCk7KSB7CisgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IGl0LklTX1NUUklORykgeworICAgICAgICAgICAgICAgIG9yZGVyZWRTdHJpbmdzLmFkZChpdC5zdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gaXQuY29kZXBvaW50OyBpIDw9IGl0LmNvZGVwb2ludEVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcHV0QXRFbmQuY29udGFpbnMoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRTdHJpbmdzLmFkZChVVEYxNi52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwkJfQorCQl0YXJnZXQuc2V0TGVuZ3RoKDApOworCQl0YXJnZXQuYXBwZW5kKCJbIik7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBvcmRlcmVkU3RyaW5ncy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlhcHBlbmRVbmljb2RlU2V0SXRlbSgoU3RyaW5nKSBpdC5uZXh0KCkpOworCQl9CisgICAgICAgIGZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihwdXRBdEVuZCk7IGl0Lm5leHQoKTspIHsgLy8gYWRkIGJhY2sgdGhlIHVuYXNzaWduZWQgZ29ycAorICAgICAgICAgICAgYXBwZW5kVW5pY29kZVNldEl0ZW0oaXQuY29kZXBvaW50KTsKKyAgICAgICAgfQorCQlmbHVzaExhc3QoKTsKKwkJdGFyZ2V0LmFwcGVuZCgiXSIpOworCQlTdHJpbmcgc3Jlc3VsdCA9IHRhcmdldC50b1N0cmluZygpOworCQkKKyAgICAgICAgLy8gZG91YmxlIGNoZWNrIHRoZSByZXN1bHRzLiBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2Ugd2UgaGF2ZSBtb3JlIHRlc3RzLgorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIFVuaWNvZGVTZXQgIGRvdWJsZUNoZWNrID0gbmV3IFVuaWNvZGVTZXQoc3Jlc3VsdCk7CisvLyAgICAgICAgICAgIGlmICghdXNldC5lcXVhbHMoZG91YmxlQ2hlY2spKSB7CisvLyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWlsdXJlIHRvIHJvdW5kLXRyaXAgaW4gcHJldHR5LXByaW50ICIgKyB1c2V0ICsgIiA9PiAiICsgc3Jlc3VsdCArICJcclxuIHNvdXJjZS1yZXN1bHQ6ICIgKyBuZXcgVW5pY29kZVNldCh1c2V0KS5yZW1vdmVBbGwoZG91YmxlQ2hlY2spICsgICJcclxuIHJlc3VsdC1zb3VyY2U6ICIgKyBuZXcgVW5pY29kZVNldChkb3VibGVDaGVjaykucmVtb3ZlQWxsKHVzZXQpKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICB0aHJvdyAoUnVudGltZUV4Y2VwdGlvbikgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRmFpbHVyZSB0byByb3VuZC10cmlwIGluIHByZXR0eS1wcmludCAiICsgdXNldCkuaW5pdENhdXNlKGUpOworLy8gICAgICAgIH0KKwkJcmV0dXJuIHNyZXN1bHQ7CisJfQorCQorCXByaXZhdGUgUHJldHR5UHJpbnRlciBhcHBlbmRVbmljb2RlU2V0SXRlbShTdHJpbmcgcykgeworCQlpbnQgY3A7CisJCWlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4ocywgMSkpIHsKKwkJCWZsdXNoTGFzdCgpOworCQkJYWRkU3BhY2Uocyk7CisJCQl0YXJnZXQuYXBwZW5kKCJ7Iik7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCQkJCWFwcGVuZFF1b3RlZChjcCA9IFVURjE2LmNoYXJBdChzLCBpKSk7CisJCQl9CisJCQl0YXJnZXQuYXBwZW5kKCJ9Iik7CisJCQlsYXN0U3RyaW5nID0gczsKKwkJfSBlbHNlIHsKKwkJCWFwcGVuZFVuaWNvZGVTZXRJdGVtKFVURjE2LmNoYXJBdChzLCAwKSk7CisJCX0KKwkJcmV0dXJuIHRoaXM7CisJfQorCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFVuaWNvZGVTZXRJdGVtKGludCBjcCkgeworICAgICAgICBpZiAoIWNvbXByZXNzUmFuZ2VzKQorICAgICAgICAJZmx1c2hMYXN0KCk7CisgICAgICAgIGlmIChjcCA9PSBsYXN0Q29kZVBvaW50ICsgMSkgeworICAgICAgICAJbGFzdENvZGVQb2ludCA9IGNwOyAvLyBjb250aW51ZSByYW5nZQorICAgICAgICB9IGVsc2UgeyAvLyBzdGFydCByYW5nZQorICAgICAgICAJZmx1c2hMYXN0KCk7CisgICAgICAgIAlmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSBjcDsKKyAgICAgICAgfQorICAgIH0KKwkvKioKKwkgKiAKKwkgKi8KKwlwcml2YXRlIHZvaWQgYWRkU3BhY2UoU3RyaW5nIHMpIHsKKwkJaWYgKGZpcnN0KSB7CisJCQlmaXJzdCA9IGZhbHNlOworCQl9IGVsc2UgaWYgKHNwYWNlQ29tcC5jb21wYXJlKHMsIGxhc3RTdHJpbmcpICE9IDApIHsKKwkJCXRhcmdldC5hcHBlbmQoJyAnKTsKKwkJfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChzLDApOworCQkJaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworCQkJaWYgKHR5cGUgPT0gVUNoYXJhY3Rlci5OT05fU1BBQ0lOR19NQVJLIHx8IHR5cGUgPT0gVUNoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykgeworCQkJCXRhcmdldC5hcHBlbmQoJyAnKTsKKwkJCX0gZWxzZSBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyLlNVUlJPR0FURSAmJiBjcCA+PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgnICcpOyAvLyBtYWtlIHN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IG1lcmdlIHR3byBzdXJyb2dhdGVzCisgICAgICAgICAgICB9CisJCX0KKwl9CisJCisJcHJpdmF0ZSB2b2lkIGZsdXNoTGFzdCgpIHsKKwkJaWYgKGxhc3RDb2RlUG9pbnQgPj0gMCkgeworCQkJYWRkU3BhY2UoVVRGMTYudmFsdWVPZihmaXJzdENvZGVQb2ludCkpOworCQkJaWYgKGZpcnN0Q29kZVBvaW50ICE9IGxhc3RDb2RlUG9pbnQpIHsKKwkJCQlhcHBlbmRRdW90ZWQoZmlyc3RDb2RlUG9pbnQpOworCQkJCXRhcmdldC5hcHBlbmQoZmlyc3RDb2RlUG9pbnQgKyAxID09IGxhc3RDb2RlUG9pbnQgPyAnICcgOiAnLScpOworCQkJfQorCQkJYXBwZW5kUXVvdGVkKGxhc3RDb2RlUG9pbnQpOworCQkJbGFzdFN0cmluZyA9IFVURjE2LnZhbHVlT2YobGFzdENvZGVQb2ludCk7CisJCQlmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSAtMjsKKwkJfQorCX0KKwlQcmV0dHlQcmludGVyIGFwcGVuZFF1b3RlZChpbnQgY29kZVBvaW50KSB7CisJCWlmICh0b1F1b3RlLmNvbnRhaW5zKGNvZGVQb2ludCkpIHsKKwkJCWlmIChxdW90ZXIgIT0gbnVsbCkgeworCQkJCXRhcmdldC5hcHBlbmQocXVvdGVyLnRyYW5zbGl0ZXJhdGUoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisJCQkJcmV0dXJuIHRoaXM7CisJCQl9CisJCQlpZiAoY29kZVBvaW50ID4gMHhGRkZGKSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgiXFxVIik7CisJCQkJdGFyZ2V0LmFwcGVuZChVdGlsaXR5LmhleChjb2RlUG9pbnQsOCkpOworCQkJfSBlbHNlIHsKKwkJCQl0YXJnZXQuYXBwZW5kKCJcXHUiKTsKKwkJCQl0YXJnZXQuYXBwZW5kKFV0aWxpdHkuaGV4KGNvZGVQb2ludCw0KSk7ICAgICAgICAJCQkKKwkJCX0KKwkJCXJldHVybiB0aGlzOworCQl9CisJCXN3aXRjaCAoY29kZVBvaW50KSB7CisJCWNhc2UgJ1snOiAvLyBTRVRfT1BFTjoKKwkJY2FzZSAnXSc6IC8vIFNFVF9DTE9TRToKKwkJY2FzZSAnLSc6IC8vIEhZUEhFTjoKKwkJY2FzZSAnXic6IC8vIENPTVBMRU1FTlQ6CisJCWNhc2UgJyYnOiAvLyBJTlRFUlNFQ1RJT046CisJCWNhc2UgJ1xcJzogLy9CQUNLU0xBU0g6CisJCWNhc2UgJ3snOgorCQljYXNlICd9JzoKKwkJY2FzZSAnJCc6CisJCWNhc2UgJzonOgorCQkJdGFyZ2V0LmFwcGVuZCgnXFwnKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJLy8gRXNjYXBlIHdoaXRlc3BhY2UKKwkJCWlmIChwYXR0ZXJuV2hpdGVzcGFjZS5jb250YWlucyhjb2RlUG9pbnQpKSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgnXFwnKTsKKwkJCX0KKwkJYnJlYWs7CisJCX0KKwkJVVRGMTYuYXBwZW5kKHRhcmdldCwgY29kZVBvaW50KTsKKwkJcmV0dXJuIHRoaXM7CisJfSAgICAgICAgCisvLwlBcHBlbmRlciBhcHBlbmQoU3RyaW5nIHMpIHsKKy8vCXRhcmdldC5hcHBlbmQocyk7CisvLwlyZXR1cm4gdGhpczsKKy8vCX0KKy8vCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisvLwlyZXR1cm4gdGFyZ2V0LnRvU3RyaW5nKCk7CisvLwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9SZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTE4YmQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsgICAgCisKKy8qKgorICogRExGIGRvY3MgbXVzdCBkZWZpbmUgYmVoYXZpb3Igd2hlbiBSZXBsYWNlYWJsZSBpcyBtdXRhdGVkIHVuZGVybmVhdGgKKyAqIHRoZSBpdGVyYXRvci4KKyAqCisgKiBUaGlzIGFuZCBJQ1VDaGFyYWN0ZXJJdGVyYXRvciBzaGFyZSBzb21lIGNvZGUsIG1heWJlIHRoZXkgc2hvdWxkIHNoYXJlCisgKiBhbiBpbXBsZW1lbnRhdGlvbiwgb3IgdGhlIGNvbW1vbiBzdGF0ZSBhbmQgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlCisgKiBtb3ZlZCB1cCBpbnRvIFVDaGFyYWN0ZXJJdGVyYXRvci4KKyAqCisgKiBXaGF0IGFyZSBmaXJzdCwgbGFzdCwgYW5kIGdldEJlZ2luSW5kZXggZG9pbmcgaGVyZT8hPyE/IQorICovCitwdWJsaWMgY2xhc3MgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IgZXh0ZW5kcyBVQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSByZXBsYWNlYWJsZSB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHJlcGxhY2VhYmxlKXsKKyAgICAgICAgaWYocmVwbGFjZWFibGU9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMucmVwbGFjZWFibGUgID0gcmVwbGFjZWFibGU7CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHVibGljIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIHN0ciB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyBzdHIpeworICAgICAgICBpZihzdHI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMucmVwbGFjZWFibGUgID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN0cik7CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHVibGljIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIGJ1ZiBidWZmZXIgb2YgdGV4dCBvbiB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZAorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmdCdWZmZXIgYnVmKXsKKyAgICAgICAgaWYoYnVmPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhidWYpOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT5vYmplY3QKKyAgICAgKiBAcmV0dXJuIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG5ldmVyIGludm9rZWQKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IFVURjE2IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgVVRGMTYgY2hhcmFjdGVyCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCl7CisgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCByZXBsYWNlYWJsZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VhYmxlLmNoYXJBdChjdXJyZW50SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnRDb2RlUG9pbnQoKXsKKyAgICAgICAgLy8gY2Fubm90IHVzZSBjaGFyQXQgZHVlIHRvIGl0IGRpZmZlcmVudCAKKyAgICAgICAgLy8gYmVoYXZpb3VyIHdoZW4gaW5kZXggaXMgcG9pbnRpbmcgYXQgYQorICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUsIGNoZWNrIGZvciBzdXJyb2dhdGVzCisgICAgICAgICAKKyAgICAgICAgaW50IGNoID0gY3VycmVudCgpOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gpKXsKKyAgICAgICAgICAgIC8vIGFkdmFuY2UgdGhlIGluZGV4IHRvIGdldCB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAvLyBkdWUgdG8gcG9zdCBpbmNyZW1lbnQgc2VtYW50aWNzIGN1cnJlbnQoKSBhZnRlciBuZXh0KCkgCisgICAgICAgICAgICAvLyBhY3R1YWxseSByZXR1cm5zIHRoZSBuZXh0IGNoYXIgd2hpY2ggaXMgd2hhdCB3ZSB3YW50CisgICAgICAgICAgICBpbnQgY2gyID0gY3VycmVudCgpOworICAgICAgICAgICAgLy8gY3VycmVudCBzaG91bGQgbmV2ZXIgY2hhbmdlIHRoZSBjdXJyZW50IGluZGV4IHNvIGJhY2sgb2ZmCisgICAgICAgICAgICBwcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpeworICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaCwoY2hhciljaDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpeworICAgICAgICByZXR1cm4gcmVwbGFjZWFibGUubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCB0aGUgCisgICAgICogY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FQ09ERVBPSU5UIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyBvZmYgdGhlIAorICAgICAqICAgICAgICAgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpeworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgcmVwbGFjZWFibGUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlYWJsZS5jaGFyQXQoY3VycmVudEluZGV4KyspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHByZXZpb3VzIFVURjE2IGNoYXJhY3RlciBhbmQgZGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyBjdXJyZW50SW5kZXggYnkgCisgICAgICogMS4gCisgICAgICogSWYgdGhlIHJlc3VsdGluZyBjdXJyZW50SW5kZXggaXMgbGVzcyB0aGFuIDAsIHRoZSBjdXJyZW50SW5kZXggaXMgcmVzZXQgdG8gMCBhbmQgYSAKKyAgICAgKiB2YWx1ZSBvZiBET05FQ09ERVBPSU5UIGlzIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyBvZmYgdGhlIAorICAgICAqICAgICAgICAgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpeworICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VhYmxlLmNoYXJBdCgtLWN1cnJlbnRJbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgY3VycmVudEluZGV4IHRvIHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IGluIHRoZSB0ZXh0IGFuZCByZXR1cm5zIHRoYXQgCisgICAgICogc2luZ2xlIFVURjE2IGNoYXJhY3RlciBhdCBjdXJyZW50SW5kZXguIAorICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggdGhlIGN1cnJlbnRJbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93biBpZiBhbiBpbnZhbGlkIGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkLiBpLmUuIGN1cnJlbnRJbmRleCBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBjdXJyZW50SW5kZXggb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIAorICAgICAqICAgICAgICAgY3VycmVudEluZGV4IGlzIGVxdWFsIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IGN1cnJlbnRJbmRleCkgdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb257CisgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCAwIHx8IGN1cnJlbnRJbmRleCA+IHJlcGxhY2VhYmxlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gY3VycmVudEluZGV4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFRleHQoY2hhcltdIGZpbGxJbiwgaW50IG9mZnNldCl7CisgICAgICAgIGludCBsZW5ndGggPSByZXBsYWNlYWJsZS5sZW5ndGgoKTsKKyAgICAgICAgaWYob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyBsZW5ndGggPiBmaWxsSW4ubGVuZ3RoKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVwbGFjZWFibGUuZ2V0Q2hhcnMoMCxsZW5ndGgsZmlsbEluLG9mZnNldCk7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfSAgICAgICAKKyAgICAgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJlcGxhY2FibGUgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZSByZXBsYWNlYWJsZTsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGN1cnJlbnRJbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IGN1cnJlbnRJbmRleDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9SZXNvdXJjZUJ1bmRsZVdyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzQ3NzU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBqdXN0IGEgd3JhcHBlciBmb3IgSmF2YSBMaXN0UmVzb3VyY2VCdW5kbGVzIGFuZCAKKyAqIEBhdXRob3IgcmFtCisgKgorICovCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VCdW5kbGVXcmFwcGVyIGV4dGVuZHMgVVJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYWxlSUQgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nIGJhc2VOYW1lID0gbnVsbDsKKyAgICBwcml2YXRlIFZlY3RvciBrZXlzPW51bGw7CisgICAgcHJpdmF0ZSBpbnQgbG9hZGluZ1N0YXR1cyA9IC0xOyAgICAKKyAgICAKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlV3JhcHBlcihSZXNvdXJjZUJ1bmRsZSBidW5kbGUpeworICAgICAgICB0aGlzLmJ1bmRsZT1idW5kbGU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TG9hZGluZ1N0YXR1cyhpbnQgbmV3U3RhdHVzKXsKKyAgICAgICAgbG9hZGluZ1N0YXR1cyA9IG5ld1N0YXR1czsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVHZXRPYmplY3QoU3RyaW5nIGtleSl7CisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBjdXJyZW50ID0gdGhpczsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG51bGw7CisgICAgICAgIHdoaWxlKGN1cnJlbnQhPW51bGwpeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIG9iaiA9IGN1cnJlbnQuYnVuZGxlLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpY3VycmVudC5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2JqID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK2Jhc2VOYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiLCBrZXkgIitrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKXsKKyAgICAgICAgcmV0dXJuIGtleXMuZWxlbWVudHMoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGluaXRLZXlzVmVjdG9yKCl7CisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBjdXJyZW50ID0gdGhpczsKKyAgICAgICAga2V5cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgd2hpbGUoY3VycmVudCE9bnVsbCl7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlID0gY3VycmVudC5idW5kbGUuZ2V0S2V5cygpOworICAgICAgICAgICAgd2hpbGUoZS5oYXNNb3JlRWxlbWVudHMoKSl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVsZW0gPSAoU3RyaW5nKWUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZigha2V5cy5jb250YWlucyhlbGVtKSl7CisgICAgICAgICAgICAgICAgICAgIGtleXMuYWRkKGVsZW0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWN1cnJlbnQuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7ICAgCisgICAgfQorIAorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKXsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRDbGFzcygpLmdldE5hbWUoKS5yZXBsYWNlKCcuJywnLycpOyAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCl7CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShsb2NhbGVJRCk7ICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCl7CisgICAgICAgIHJldHVybiAoVVJlc291cmNlQnVuZGxlKXBhcmVudDsgICAKKyAgICB9CisKKyAgICAvLyBGbGFnIGZvciBlbmFibGluZy9kaXNhYmxpbmcgZGVidWdnaW5nIGNvZGUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgicmVzb3VyY2VCdW5kbGVXcmFwcGVyIik7CisgICAgCisgICAgLy8gVGhpcyBtZXRob2QgaXMgZm9yIHN1cGVyIGNsYXNzJ3MgaW5zdGFudGlhdGVCdW5kbGUgbWV0aG9kCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QsIGJvb2xlYW4gZGlzYWJsZUZhbGxiYWNrKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGIgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlSUQsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgU3RyaW5nIHNlcGFyYXRvciA9Il8iOworICAgICAgICAgICAgaWYoYmFzZU5hbWUuaW5kZXhPZignLycpPj0wKXsKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSAiLyI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgYnVuZGxlICIrIGJhc2VOYW1lK3NlcGFyYXRvcisgbG9jYWxlSUQsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KKyAgICAvLyByZWN1cnNpdmVseSBidWlsZCBidW5kbGUgYW5kIG92ZXJyaWRlIHRoZSBzdXBlci1jbGFzcyBtZXRob2QKKyAgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlQnVuZGxlKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZUlELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjaykgeworICAgICAgICBpZiAocm9vdCA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSBvbiB0aGUgYm9vdHN0cmFwCisgICAgICAgICAgICByb290ID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBDbGFzc0xvYWRlciBjbCA9IHJvb3Q7CisgICAgICAgIFN0cmluZyBuYW1lID0gYmFzZU5hbWU7CisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyAiXyIgKyBsb2NhbGVJRDsKKyAgICAgICAgfQorCisgICAgICAgIFJlc291cmNlQnVuZGxlV3JhcHBlciBiID0gKFJlc291cmNlQnVuZGxlV3JhcHBlcilsb2FkRnJvbUNhY2hlKGNsLCBuYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIgcGFyZW50ID0gbnVsbDsKKyAgICAgICAgICAgIGludCBpID0gbG9jYWxlSUQubGFzdEluZGV4T2YoJ18nKTsKKyAgICAKKyAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBsb2NhbGVJRC5zdWJzdHJpbmcoMCwgaSk7CisgICAgICAgICAgICAgICAgcGFyZW50ID0gKFJlc291cmNlQnVuZGxlV3JhcHBlcilsb2FkRnJvbUNhY2hlKGNsLCBiYXNlTmFtZSsiXyIrbG9jTmFtZSxkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZihwYXJlbnQgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY05hbWUgLCBjbCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSBpZihsb2NhbGVJRC5sZW5ndGgoKT4wKXsKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWxvYWRGcm9tQ2FjaGUoY2wsIGJhc2VOYW1lLGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIGlmKHBhcmVudD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsICIiLCBjbCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IGNsLmxvYWRDbGFzcyhuYW1lKTsKKyAgICAgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBieCA9IChSZXNvdXJjZUJ1bmRsZSkgY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgYiA9IG5ldyBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIoYngpOworICAgICAgICAgICAgICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBiLnNldFBhcmVudChwYXJlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiLmJhc2VOYW1lPWJhc2VOYW1lOworICAgICAgICAgICAgICAgIGIubG9jYWxlSUQgPSBsb2NhbGVJRDsgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyByZXNOYW1lID0gbmFtZS5yZXBsYWNlKCcuJywgJy8nKSArICIucHJvcGVydGllcyI7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gKElucHV0U3RyZWFtKWphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoCisgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2wgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2wuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtUmVzb3VyY2VBc1N0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIGlmIChzdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgaXQgaXMgYnVmZmVyZWQKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gbmV3IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG5ldyBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIobmV3IFByb3BlcnR5UmVzb3VyY2VCdW5kbGUoc3RyZWFtKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLnNldFBhcmVudChwYXJlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYi5iYXNlTmFtZT1iYXNlTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIubG9jYWxlSUQ9bG9jYWxlSUQ7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIGlmIGEgYm9ndXMgbG9jYWxlIGlzIHBhc3NlZCB0aGVuIHRoZSBwYXJlbnQgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgLy8gdGhlIGRlZmF1bHQgbG9jYWxlIG5vdCB0aGUgcm9vdCBsb2NhbGUhCisgICAgICAgICAgICAgICAgaWYgKGI9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlZmF1bHROYW1lID0gZGVmYXVsdExvY2FsZS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCk+MCAmJiBsb2NhbGVJRC5pbmRleE9mKCdfJyk8IDAgJiYgZGVmYXVsdE5hbWUuaW5kZXhPZihsb2NhbGVJRCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWxvYWRGcm9tQ2FjaGUoY2wsYmFzZU5hbWUrIl8iK2RlZmF1bHROYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lICwgZGVmYXVsdE5hbWUsIGNsLCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlmIHN0aWxsIGNvdWxkIG5vdCBmaW5kIHRoZSBidW5kbGUgdGhlbiByZXR1cm4gdGhlIHBhcmVudAorICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBiPXBhcmVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFkZFRvQ2FjaGUoY2wsIG5hbWUsIGRlZmF1bHRMb2NhbGUsIGIpOworICAgICAgICB9CisgICAgICAgIGlmKGIhPW51bGwpeworICAgICAgICAgICAgYi5pbml0S2V5c1ZlY3RvcigpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGlmKERFQlVHKVN5c3RlbS5vdXQucHJpbnRsbigiUmV0dXJuaW5nIG51bGwgZm9yICIrYmFzZU5hbWUrIl8iK2xvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9SdWxlQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2RlNTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzNDUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBTZXB0ZW1iZXIgMjMgMjAwMworKiBTaW5jZTogSUNVIDIuOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBBbiBpdGVyYXRvciB0aGF0IHJldHVybnMgMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyBjbGFzcyBpcyBkZWxpYmVyYXRlbHkKKyAqIDxlbT5ub3Q8L2VtPiByZWxhdGVkIHRvIGFueSBvZiB0aGUgSkRLIG9yIElDVTRKIGNoYXJhY3RlciBpdGVyYXRvciBjbGFzc2VzCisgKiBpbiBvcmRlciB0byBtaW5pbWl6ZSBjb21wbGV4aXR5LgorICogQGF1dGhvciBBbGFuIExpdQorICogQHNpbmNlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciB7CisKKyAgICAvLyBUT0RPOiBJZGVhcyBmb3IgbGF0ZXIuICAoRG8gbm90IGltcGxlbWVudCBpZiBub3QgbmVlZGVkLCBsZXN0IHRoZQorICAgIC8vIGNvZGUgY292ZXJhZ2UgbnVtYmVycyBnbyBkb3duIGR1ZSB0byB1bnVzZWQgbWV0aG9kcy4pCisgICAgLy8gMS4gQWRkIGEgY29weSBjb25zdHJ1Y3RvciwgZXF1YWxzKCkgbWV0aG9kLCBjbG9uZSgpIG1ldGhvZC4KKyAgICAvLyAyLiBSYXRoZXIgdGhhbiByZXR1cm4gRE9ORSwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBlbmQKKyAgICAvLyBpcyByZWFjaGVkIC0tIHRoaXMgaXMgYW4gYWx0ZXJuYXRlIHVzYWdlIG1vZGVsLCBwcm9iYWJseSBub3QgdXNlZnVsLgorICAgIC8vIDMuIFJldHVybiBpc0VzY2FwZWQgZnJvbSBuZXh0KCkuICBJZiB0aGlzIGhhcHBlbnMsCisgICAgLy8gZG9uJ3Qga2VlcCBhbiBpc0VzY2FwZWQgbWVtYmVyIHZhcmlhYmxlLgorCisgICAgLyoqCisgICAgICogVGV4dCBiZWluZyBpdGVyYXRlZC4KKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIG9mIGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VQb3NpdGlvbiBwb3M7CisKKyAgICAvKioKKyAgICAgKiBTeW1ib2wgdGFibGUgdXNlZCB0byBwYXJzZSBhbmQgZGVyZWZlcmVuY2UgdmFyaWFibGVzLiAgTWF5IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBTeW1ib2xUYWJsZSBzeW07CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHZhcmlhYmxlIGV4cGFuc2lvbiwgb3IgbnVsbCBpZiBub25lLgorICAgICAqLworICAgIHByaXZhdGUgY2hhcltdIGJ1ZjsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIHdpdGhpbiBidWZbXS4gIE1lYW5pbmdsZXNzIGlmIGJ1ZiA9PSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGJ1ZlBvczsKKworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3YXMgcGFyc2VkIGZyb20gYW4gZXNjYXBlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0VzY2FwZWQ7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMgdG8gaXRlcmF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIG9wdGlvbiB0byBlbmFibGUgcGFyc2luZyBvZiB2YXJpYWJsZSBuYW1lcy4gIElmIChvcHRpb25zICYKKyAgICAgKiBQQVJTRV9WQVJJQUJMRVMpICE9IDAsIHRoZW4gYW4gZW1iZWRkZWQgdmFyaWFibGUgd2lsbCBiZSBleHBhbmRlZCB0bworICAgICAqIGl0cyB2YWx1ZS4gIFZhcmlhYmxlcyBhcmUgcGFyc2VkIHVzaW5nIHRoZSBTeW1ib2xUYWJsZSBBUEkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFSU0VfVkFSSUFCTEVTID0gMTsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBwYXJzaW5nIG9mIGVzY2FwZSBzZXF1ZW5jZXMuICBJZiAob3B0aW9ucyAmCisgICAgICogUEFSU0VfRVNDQVBFUykgIT0gMCwgdGhlbiBhbiBlbWJlZGRlZCBlc2NhcGUgc2VxdWVuY2Ugd2lsbCBiZSBleHBhbmRlZAorICAgICAqIHRvIGl0cyB2YWx1ZS4gIEVzY2FwZXMgYXJlIHBhcnNlZCB1c2luZyBVdGlsaXR5LnVuZXNjYXBlQXQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVJTRV9FU0NBUEVTICAgPSAyOyAgICAKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBza2lwcGluZyBvZiB3aGl0ZXNwYWNlLiAgSWYgKG9wdGlvbnMgJgorICAgICAqIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCwgdGhlbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2lsbCBiZSBzaWxlbnRseQorICAgICAqIHNraXBwZWQsIGFzIGlmIHRoZXkgd2VyZSBub3QgcHJlc2VudCBpbiB0aGUgaW5wdXQuICBXaGl0ZXNwYWNlCisgICAgICogY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBieSBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNLSVBfV0hJVEVTUEFDRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHRleHQsIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHN5bSB0aGUgc3ltYm9sIHRhYmxlLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vbmUuICBJZiBzeW0gaXMgbnVsbCwKKyAgICAgKiB0aGVuIHZhcmlhYmxlcyB3aWxsIG5vdCBiZSBkZWZlcmVuY2VkLCBldmVuIGlmIHRoZSBQQVJTRV9WQVJJQUJMRVMKKyAgICAgKiBvcHRpb24gaXMgc2V0LgorICAgICAqIEBwYXJhbSBwb3MgdXBvbiBpbnB1dCwgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byByZXR1cm4uICBJZiBhCisgICAgICogdmFyaWFibGUgaGFzIGJlZW4gZGVyZWZlcmVuY2VkLCB0aGVuIHBvcyB3aWxsIDxlbT5ub3Q8L2VtPiBpbmNyZW1lbnQgYXMKKyAgICAgKiBjaGFyYWN0ZXJzIG9mIHRoZSB2YXJpYWJsZSB2YWx1ZSBhcmUgaXRlcmF0ZWQuCisgICAgICovCisgICAgcHVibGljIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCwgU3ltYm9sVGFibGUgc3ltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCB8fCBwb3MuZ2V0SW5kZXgoKSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnN5bSA9IHN5bTsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGhhcyBubyBtb3JlIGNoYXJhY3RlcnMgdG8gcmV0dXJuLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgICAgICByZXR1cm4gYnVmID09IG51bGwgJiYgcG9zLmdldEluZGV4KCkgPT0gdGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNoYXJhY3RlciB1c2luZyB0aGUgZ2l2ZW4gb3B0aW9ucywgb3IgRE9ORSBpZiB0aGVyZQorICAgICAqIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMsIGFuZCBhZHZhbmNlIHRoZSBwb3NpdGlvbiB0byB0aGUgbmV4dAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCwgb3IgRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dChpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgYyA9IERPTkU7CisgICAgICAgIGlzRXNjYXBlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGMgPSBfY3VycmVudCgpOworICAgICAgICAgICAgX2FkdmFuY2UoVVRGMTYuZ2V0Q2hhckNvdW50KGMpKTsKKworICAgICAgICAgICAgaWYgKGMgPT0gU3ltYm9sVGFibGUuU1lNQk9MX1JFRiAmJiBidWYgPT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIChvcHRpb25zICYgUEFSU0VfVkFSSUFCTEVTKSAhPSAwICYmIHN5bSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBzeW0ucGFyc2VSZWZlcmVuY2UodGV4dCwgcG9zLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAvLyBJZiBuYW1lID09IG51bGwgdGhlcmUgd2FzIGFuIGlzb2xhdGVkIFNZTUJPTF9SRUY7CisgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGl0LiAgQ2FsbGVyIG11c3QgYmUgcHJlcGFyZWQgZm9yIHRoaXMuCisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmUG9zID0gMDsKKyAgICAgICAgICAgICAgICBidWYgPSBzeW0ubG9va3VwKG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChidWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5kZWZpbmVkIHZhcmlhYmxlOiAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlbXB0eSB2YXJpYWJsZSB2YWx1ZQorICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcgJiYgKG9wdGlvbnMgJiBQQVJTRV9FU0NBUEVTKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldFtdID0gbmV3IGludFtdIHsgMCB9OworICAgICAgICAgICAgICAgIGMgPSBVdGlsaXR5LnVuZXNjYXBlQXQobG9va2FoZWFkKCksIG9mZnNldCk7CisgICAgICAgICAgICAgICAganVtcGFoZWFkKG9mZnNldFswXSk7CisgICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZCBieSBuZXh0KCkgd2FzCisgICAgICogZXNjYXBlZC4gIFRoaXMgd2lsbCBvbmx5IGJlIHRoZSBjYXNlIGlmIHRoZSBvcHRpb24gcGFzc2VkIGluIHRvCisgICAgICogbmV4dCgpIGluY2x1ZGVkIFBBUlNFX0VTQ0FQRUQgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciB3YXMgYW4KKyAgICAgKiBlc2NhcGUgc2VxdWVuY2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFc2NhcGVkKCkgeworICAgICAgICByZXR1cm4gaXNFc2NhcGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSB3aXRoaW4gYSB2YXJpYWJsZSBleHBhbnNpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5WYXJpYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGJ1ZiAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gb2JqZWN0IHdoaWNoLCB3aGVuIGxhdGVyIHBhc3NlZCB0byBzZXRQb3MoKSwgd2lsbAorICAgICAqIHJlc3RvcmUgdGhpcyBpdGVyYXRvcidzIHBvc2l0aW9uLiAgVXNhZ2UgaWRpb206CisgICAgICoKKyAgICAgKiBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSAuLi47CisgICAgICogT2JqZWN0IHBvcyA9IGl0ZXJhdG9yLmdldFBvcyhudWxsKTsgLy8gYWxsb2NhdGUgcG9zaXRpb24gb2JqZWN0CisgICAgICogZm9yICg7OykgeworICAgICAqICAgcG9zID0gaXRlcmF0b3IuZ2V0UG9zKHBvcyk7IC8vIHJldXNlIHBvc2l0aW9uIG9iamVjdAorICAgICAqICAgaW50IGMgPSBpdGVyYXRvci5uZXh0KC4uLik7CisgICAgICogICAuLi4KKyAgICAgKiB9CisgICAgICogaXRlcmF0b3Iuc2V0UG9zKHBvcyk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gcCBhIHBvc2l0aW9uIG9iamVjdCBwcmV2aW91c2x5IHJldHVybmVkIGJ5IGdldFBvcygpLAorICAgICAqIG9yIG51bGwuICBJZiBub3QgbnVsbCwgaXQgd2lsbCBiZSB1cGRhdGVkIGFuZCByZXR1cm5lZC4gIElmCisgICAgICogbnVsbCwgYSBuZXcgcG9zaXRpb24gb2JqZWN0IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIGEgcG9zaXRpb24gb2JqZWN0IHdoaWNoIG1heSBiZSBwYXNzZWQgdG8gc2V0UG9zKCksCisgICAgICogZWl0aGVyIGBwLCcgb3IgaWYgYHAnID09IG51bGwsIGEgbmV3bHktYWxsb2NhdGVkIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UG9zKE9iamVjdCBwKSB7CisgICAgICAgIGlmIChwID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10ge2J1ZiwgbmV3IGludFtdIHtwb3MuZ2V0SW5kZXgoKSwgYnVmUG9zfX07CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gYSA9IChPYmplY3RbXSkgcDsKKyAgICAgICAgYVswXSA9IGJ1ZjsKKyAgICAgICAgaW50W10gdiA9IChpbnRbXSkgYVsxXTsKKyAgICAgICAgdlswXSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICB2WzFdID0gYnVmUG9zOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlcyB0aGlzIGl0ZXJhdG9yIHRvIHRoZSBwb3NpdGlvbiBpdCBoYWQgd2hlbiBnZXRQb3MoKQorICAgICAqIHJldHVybmVkIHRoZSBnaXZlbiBvYmplY3QuCisgICAgICogQHBhcmFtIHAgYSBwb3NpdGlvbiBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieSBnZXRQb3MoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBvcyhPYmplY3QgcCkgeworICAgICAgICBPYmplY3RbXSBhID0gKE9iamVjdFtdKSBwOworICAgICAgICBidWYgPSAoY2hhcltdKSBhWzBdOworICAgICAgICBpbnRbXSB2ID0gKGludFtdKSBhWzFdOworICAgICAgICBwb3Muc2V0SW5kZXgodlswXSk7CisgICAgICAgIGJ1ZlBvcyA9IHZbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcHMgYWhlYWQgcGFzdCBhbnkgaWdub3JlZCBjaGFyYWN0ZXJzLCBhcyBpbmRpY2F0ZWQgYnkgdGhlIGdpdmVuCisgICAgICogb3B0aW9ucy4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvb2thaGVhZCgpIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBvbmx5IGhhcyBhbiBlZmZlY3QgZm9yIFNLSVBfV0hJVEVTUEFDRS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2tpcElnbm9yZWQoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKChvcHRpb25zICYgU0tJUF9XSElURVNQQUNFKSAhPSAwKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgaW50IGEgPSBfY3VycmVudCgpOworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYSkpIGJyZWFrOworICAgICAgICAgICAgICAgIF9hZHZhbmNlKFVURjE2LmdldENoYXJDb3VudChhKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlbWFpbmRlciBvZiB0aGUgY2hhcmFjdGVycyB0byBiZQorICAgICAqIHJldHVybmVkIGJ5IHRoaXMgaXRlcmF0b3IsIHdpdGhvdXQgYW55IG9wdGlvbiBwcm9jZXNzaW5nLiAgSWYgdGhlCisgICAgICogaXRlcmF0b3IgaXMgY3VycmVudGx5IHdpdGhpbiBhIHZhcmlhYmxlIGV4cGFuc2lvbiwgdGhpcyB3aWxsIG9ubHkKKyAgICAgKiBleHRlbmQgdG8gdGhlIGVuZCBvZiB0aGUgdmFyaWFibGUgZXhwYW5zaW9uLiAgVGhpcyBtZXRob2QgaXMgcHJvdmlkZWQKKyAgICAgKiBzbyB0aGF0IGl0ZXJhdG9ycyBtYXkgaW50ZXJvcGVyYXRlIHdpdGggc3RyaW5nLWJhc2VkIEFQSXMuICBUaGUgdHlwaWNhbAorICAgICAqIHNlcXVlbmNlIG9mIGNhbGxzIGlzIHRvIGNhbGwgc2tpcElnbm9yZWQoKSwgdGhlbiBjYWxsIGxvb2thaGVhZCgpLCB0aGVuCisgICAgICogcGFyc2UgdGhlIHN0cmluZyByZXR1cm5lZCBieSBsb29rYWhlYWQoKSwgdGhlbiBjYWxsIGp1bXBhaGVhZCgpIHRvCisgICAgICogcmVzeW5jaHJvbml6ZSB0aGUgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIHJldHVybmVkIGJ5IGZ1dHVyZQorICAgICAqIGNhbGxzIHRvIG5leHQoKQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbG9va2FoZWFkKCkgeworICAgICAgICBpZiAoYnVmICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgYnVmUG9zLCBidWYubGVuZ3RoIC0gYnVmUG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgcG9zaXRpb24gYnkgdGhlIGdpdmVuIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsb29rYWhlYWQoKSBtZXRob2QuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgMTYtYml0IGNvZGUgdW5pdHMgdG8ganVtcCBvdmVyCisgICAgICovCisgICAgcHVibGljIHZvaWQganVtcGFoZWFkKGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID4gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWZQb3MgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpICsgY291bnQ7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICBpZiAoaSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCBjb25zaXN0aW5nIG9mIHRoZQorICAgICAqIGNoYXJhY3RlcnMgYmVpbmcgaXRlcmF0ZWQsIHdpdGggYSAnfCcgbWFya2luZyB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBQb3NpdGlvbiB3aXRoaW4gYW4gZXhwYW5kZWQgdmFyaWFibGUgaXMgPGVtPm5vdDwvZW0+IGluZGljYXRlZC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgaW50IGIgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKDAsIGIpICsgJ3wnICsgdGV4dC5zdWJzdHJpbmcoYik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCB3aXRob3V0IHBhcnNpbmcgZXNjYXBlcywgcGFyc2luZworICAgICAqIHZhcmlhYmxlcywgb3Igc2tpcHBpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IDMyLWJpdCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgX2N1cnJlbnQoKSB7CisgICAgICAgIGlmIChidWYgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LmNoYXJBdChidWYsIDAsIGJ1Zi5sZW5ndGgsIGJ1ZlBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgcmV0dXJuIChpIDwgdGV4dC5sZW5ndGgoKSkgPyBVVEYxNi5jaGFyQXQodGV4dCwgaSkgOiBET05FOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBwb3NpdGlvbiBieSB0aGUgZ2l2ZW4gYW1vdW50LgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIHRvIGFkdmFuY2UgcGFzdAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBfYWR2YW5jZShpbnQgY291bnQpIHsKKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID09IGJ1Zi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBidWYgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgY291bnQpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvZnRDYWNoZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMmM4MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKKworLyoqCisgKiBMUlUgaGFzaCBtYXAgdXNpbmcgc29mdGx5LXJlZmVyZW5jZWQgdmFsdWVzCisgKi8KK3B1YmxpYyBjbGFzcyBTb2Z0Q2FjaGUgeworICAgIHByaXZhdGUgZmluYWwgTFJVTWFwIG1hcDsKKyAgICBwcml2YXRlIGZpbmFsIFJlZmVyZW5jZVF1ZXVlIHF1ZXVlID0gbmV3IFJlZmVyZW5jZVF1ZXVlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTb2Z0Q2FjaGUgd2l0aCBkZWZhdWx0IGNhY2hlIHNpemUKKyAgICAgKi8KKyAgICBwdWJsaWMgU29mdENhY2hlKCkgeworICAgICAgICBtYXAgPSBuZXcgTFJVTWFwKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNvZnRDYWNoZSB3aXRoIHNlcGNpZmllZCBpbml0aWFsL21heCBzaXplCisgICAgICogCisgICAgICogQHBhcmFtIGluaXRpYWxTaXplIHRoZSBpbml0aWFsIGNhY2hlIHNpemUKKyAgICAgKiBAcGFyYW0gbWF4U2l6ZSB0aGUgbWF4aW11bSBjYWNoZSBzaXplCisgICAgICovCisgICAgcHVibGljIFNvZnRDYWNoZShpbnQgaW5pdGlhbFNpemUsIGludCBtYXhTaXplKSB7CisgICAgICAgIG1hcCA9IG5ldyBMUlVNYXAoaW5pdGlhbFNpemUsIG1heFNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhbiBvYmplY3QgdG8gdGhlIGNhY2hlCisgICAgICogQHBhcmFtIGtleSBrZXkgb2JqZWN0CisgICAgICogQHBhcmFtIHZhbHVlIHZhbHVlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIHByZXZpb3VzbHkgcHV0LCBudWxsIHdoZW4gbm90IG1hdGNoaW5nIGtleSBpcyBmb3VuZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJLZXkgYW5kIHZhbHVlIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBQcm9jZXNzUXVldWUoKTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG1hcC5wdXQoa2V5LCBuZXcgU29mdE1hcEVudHJ5KGtleSwgdmFsdWUsIHF1ZXVlKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIG9iamVjdCBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIGNhY2hlZCB2YWx1ZSwgbnVsbCB3aGVuIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKyAgICAgICAgUHJvY2Vzc1F1ZXVlKCk7CisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOworICAgICAgICBTb2Z0TWFwRW50cnkgZW50cnkgPSAoU29mdE1hcEVudHJ5KW1hcC5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG9iaiA9IGVudHJ5LmdldCgpOworICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gSXQgaXMgdW5saWtlbHkgdG8gZW50ZXIgaW50byB0aGlzIGJsb2NrLCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gUHJvY2Vzc1F1ZXVlKCkgc2hvdWxkIGFscmVhZHkgcmVtb3ZlIGEgbWFwIGVudHJpZQorICAgICAgICAgICAgICAgIC8vIHdob3NlIHZhbHVlIHdhcyBkZWxldGVkIGJ5IHRoZSBnYXJiYWdlIGNvbGxhY3Rvci4KKyAgICAgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBjYWNoZSBlbnRyeSBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIGNhY2hlIGVudHJ5IHdoaWNoIGlzIHJlbW92ZWQgZnJvbSB0aGlzIGNhY2hlLAorICAgICAqIG9yIG51bGwgd2hlbiBubyBlbnRyeSBmb3IgdGhlIGtleSB3YXMgbm8gZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKyAgICAgICAgcmV0dXJuIG1hcC5yZW1vdmUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgY2FjaGUgY29udGVudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIFByb2Nlc3NRdWV1ZSgpOworICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgbWFwIGVudHJpZXMgd2hpY2ggbm8gbG9uZ2VyIGhhdmUgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgUHJvY2Vzc1F1ZXVlKCkgeworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgU29mdE1hcEVudHJ5IGVudHJ5ID0gKFNvZnRNYXBFbnRyeSlxdWV1ZS5wb2xsKCk7CisgICAgICAgICAgICBpZiAoZW50cnkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFwLnJlbW92ZShlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIGZvciBtYXAgZW50cnkgd2l0aCBzb2Z0LXJlZmVyZW5jZWQgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTb2Z0TWFwRW50cnkgZXh0ZW5kcyBTb2Z0UmVmZXJlbmNlIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qga2V5OworCisgICAgICAgIHByaXZhdGUgU29mdE1hcEVudHJ5KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSwgUmVmZXJlbmNlUXVldWUgcXVldWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlLCBxdWV1ZSk7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvU29ydGVkU2V0UmVsYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyNjJlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE0uIERhdmlzCisqIENyZWF0ZWQ6IERlY2VtYmVyIDIwMDIgKG1vdmVkIGZyb20gVW5pY29kZVNldCkKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworLyoqCisgKiBDb21wdXRhdGlvbmFsbHkgZWZmaWNpZW50IGRldGVybWluYXRpb24gb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuCisgKiB0d28gU29ydGVkU2V0cy4KKyAqLworcHVibGljIGNsYXNzIFNvcnRlZFNldFJlbGF0aW9uIHsKKworICAgIC8qKgorICAgICAqIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gc2V0cyBBIGFuZCBCIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IGxvb2tpbmcgYXQ6CisgICAgICogQSAtIEIKKyAgICAgKiBBICYgQiAoaW50ZXJzZWN0aW9uKQorICAgICAqIEIgLSBBCisgICAgICogVGhlc2UgYXJlIHJlcHJlc2VudGVkIGJ5IGEgc2V0IG9mIGJpdHMuCisgICAgICogQml0IDIgaXMgdHJ1ZSBpZiBBIC0gQiBpcyBub3QgZW1wdHkKKyAgICAgKiBCaXQgMSBpcyB0cnVlIGlmIEEgJiBCIGlzIG5vdCBlbXB0eQorICAgICAqIEJJVCAwIGlzIHRydWUgaWYgQiAtIEEgaXMgbm90IGVtcHR5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgQV9OT1RfQiA9IDQsCisgICAgICAgIEFfQU5EX0IgPSAyLAorICAgICAgICBCX05PVF9BID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgOCBjb21iaW5hdGlvbnMgb2YgdGhlIHJlbGF0aW9uc2hpcCBiaXRzLiBUaGVzZSBjb3JyZXNwb25kIHRvCisgICAgICogdGhlIGZpbHRlcnMgKGNvbWJpbmF0aW9ucyBvZiBhbGxvd2VkIGJpdHMpIGluIGhhc1JlbGF0aW9uLiBUaGV5IGFsc28KKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBtb2RpZmljYXRpb24gZnVuY3Rpb25zLCBsaXN0ZWQgaW4gY29tbWVudHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgQU5ZID0gICAgICAgICAgICBBX05PVF9CIHwgICBBX0FORF9CIHwgICBCX05PVF9BLCAgICAvLyB1bmlvbiwgICAgICAgICAgIGFkZEFsbAorICAgICAgIENPTlRBSU5TID0gICAgICAgQV9OT1RfQiB8ICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgRElTSk9JTlQgPSAgICAgICBBX05PVF9CIHwgICAgICAgICAgICAgICBCX05PVF9BLCAgICAvLyBBIHhvciBCLCAgICAgICAgIG1pc3NpbmcgSmF2YSBmdW5jdGlvbgorICAgICAgIElTQ09OVEFJTkVEID0gICAgICAgICAgICAgICAgQV9BTkRfQiB8ICAgQl9OT1RfQSwgICAgLy8gQiAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgTk9fQiA9ICAgICAgICAgICBBX05PVF9CLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHNldERpZmYgQiwgICAgIHJlbW92ZUFsbAorICAgICAgIEVRVUFMUyA9ICAgICAgICAgICAgICAgICAgICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSBpbnRlcnNlY3QgQiwgICByZXRhaW5BbGwKKyAgICAgICBOT19BID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJfTk9UX0EsICAgIC8vIEIgc2V0RGlmZiBBLCAgICAgcmVtb3ZlQWxsCisgICAgICAgTk9ORSA9ICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudWxsICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICAKKyAgICAgICBBRERBTEwgPSBBTlksICAgICAgICAgICAgICAgIC8vIHVuaW9uLCAgICAgICAgICAgYWRkQWxsCisgICAgICAgQSA9IENPTlRBSU5TLCAgICAgICAgICAgICAgICAvLyBBICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBDT01QTEVNRU5UQUxMID0gRElTSk9JTlQsICAgIC8vIEEgeG9yIEIsICAgICAgICAgbWlzc2luZyBKYXZhIGZ1bmN0aW9uCisgICAgICAgQiA9IElTQ09OVEFJTkVELCAgICAgICAgICAgICAvLyBCICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBSRU1PVkVBTEwgPSBOT19CLCAgICAgICAgICAgIC8vIEEgc2V0RGlmZiBCLCAgICAgcmVtb3ZlQWxsCisgICAgICAgUkVUQUlOQUxMID0gRVFVQUxTLCAgICAgICAgICAvLyBBIGludGVyc2VjdCBCLCAgIHJldGFpbkFsbAorICAgICAgIEJfUkVNT1ZFQUxMID0gTk9fQTsgICAgICAgICAgLy8gQiBzZXREaWZmIEEsICAgICByZW1vdmVBbGwKKyAgICAgICAKKyAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0aGF0IGNvdWxkIGJlIG9uIFNvcnRlZFNldC4gRmFzdGVyIGltcGxlbWVudGF0aW9uIHRoYW4KKyAgICAgKiB3aGF0IGlzIGluIEphdmEgZm9yIGRvaW5nIGNvbnRhaW5zLCBlcXVhbHMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gYWxsb3cgZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgZmlsdGVyIHJlbGF0aW9uc2hpcCBpcyB0cnVlIG9yIG5vdC4KKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc1JlbGF0aW9uKFNvcnRlZFNldCBhLCBpbnQgYWxsb3csIFNvcnRlZFNldCBiKSB7CisgICAgICAgIGlmIChhbGxvdyA8IE5PTkUgfHwgYWxsb3cgPiBBTlkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJlbGF0aW9uICIgKyBhbGxvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGV4dHJhY3QgZmlsdGVyIGNvbmRpdGlvbnMKKyAgICAgICAgLy8gdGhlc2UgYXJlIHRoZSBBTExPV0VEIGNvbmRpdGlvbnMgU2V0CisgICAgICAgIAorICAgICAgICBib29sZWFuIGFuYiA9IChhbGxvdyAmIEFfTk9UX0IpICE9IDA7CisgICAgICAgIGJvb2xlYW4gYWIgPSAoYWxsb3cgJiBBX0FORF9CKSAhPSAwOworICAgICAgICBib29sZWFuIGJuYSA9IChhbGxvdyAmIEJfTk9UX0EpICE9IDA7CisgICAgICAgIAorICAgICAgICAvLyBxdWljayBjaGVjayBvbiBzaXplcworICAgICAgICBzd2l0Y2goYWxsb3cpIHsKKyAgICAgICAgICAgIGNhc2UgQ09OVEFJTlM6IGlmIChhLnNpemUoKSA8IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU0NPTlRBSU5FRDogaWYgKGEuc2l6ZSgpID4gYi5zaXplKCkpIHJldHVybiBmYWxzZTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVRVUFMUzogaWYgKGEuc2l6ZSgpICE9IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBmb3IgbnVsbCBzZXRzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYi5zaXplKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gYm5hOworICAgICAgICB9IGVsc2UgaWYgKGIuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBhbmI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBpY2sgdXAgZmlyc3Qgc3RyaW5ncywgYW5kIHN0YXJ0IGNvbXBhcmluZworICAgICAgICBJdGVyYXRvciBhaXQgPSBhLml0ZXJhdG9yKCk7CisgICAgICAgIEl0ZXJhdG9yIGJpdCA9IGIuaXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIENvbXBhcmFibGUgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsKKyAgICAgICAgQ29tcGFyYWJsZSBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBjb21wID0gYWEuY29tcGFyZVRvKGJiKTsKKyAgICAgICAgICAgIGlmIChjb21wID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFiKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFhaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBibmE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhYSA9IChDb21wYXJhYmxlKSBhaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGJiID0gKENvbXBhcmFibGUpIGJpdC5uZXh0KCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXAgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhbmIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWFpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJuYTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsgCisgICAgICAgICAgICB9IGVsc2UgIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJuYSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdGhhdCBjb3VsZCBiZSBvbiBTb3J0ZWRTZXQuIEFsbG93cyBmYXN0ZXIgaW1wbGVtZW50YXRpb24gdGhhbgorICAgICAqIHdoYXQgaXMgaW4gSmF2YSBmb3IgZG9pbmcgYWRkQWxsLCByZW1vdmVBbGwsIHJldGFpbkFsbCwgKGNvbXBsZW1lbnRBbGwpLgorICAgICAqIEBwYXJhbSBhIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSByZWxhdGlvbiB0aGUgcmVsYXRpb24gZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzZXQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBTb3J0ZWRTZXQgZG9PcGVyYXRpb24oU29ydGVkU2V0IGEsIGludCByZWxhdGlvbiwgU29ydGVkU2V0IGIpIHsKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgdGhpcyBhcyBhYm92ZQorICAgICAgICBUcmVlU2V0IHRlbXA7CisgICAgICAgIHN3aXRjaCAocmVsYXRpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQUREQUxMOgorICAgICAgICAgICAgICAgIGEuYWRkQWxsKGIpOyAKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQToKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsgLy8gbm8gYWN0aW9uCisgICAgICAgICAgICBjYXNlIEI6CisgICAgICAgICAgICAgICAgYS5jbGVhcigpOyAKKyAgICAgICAgICAgICAgICBhLmFkZEFsbChiKTsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFTU9WRUFMTDogCisgICAgICAgICAgICAgICAgYS5yZW1vdmVBbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFVEFJTkFMTDogCisgICAgICAgICAgICAgICAgYS5yZXRhaW5BbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIGlzIHRoZSBvbmx5IGNhc2Ugbm90IHJlYWxseSBzdXBwb3J0ZWQgYnkgSmF2YQorICAgICAgICAgICAgLy8gYWx0aG91Z2ggYWxsIGNvdWxkIGJlIG9wdGltaXplZAorICAgICAgICAgICAgY2FzZSBDT01QTEVNRU5UQUxMOgorICAgICAgICAgICAgICAgIHRlbXAgPSBuZXcgVHJlZVNldChiKTsKKyAgICAgICAgICAgICAgICB0ZW1wLnJlbW92ZUFsbChhKTsKKyAgICAgICAgICAgICAgICBhLnJlbW92ZUFsbChiKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQl9SRU1PVkVBTEw6CisgICAgICAgICAgICAgICAgdGVtcCA9IG5ldyBUcmVlU2V0KGIpOworICAgICAgICAgICAgICAgIHRlbXAucmVtb3ZlQWxsKGEpOworICAgICAgICAgICAgICAgIGEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgTk9ORToKKyAgICAgICAgICAgICAgICBhLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSZWxhdGlvbiAiICsgcmVsYXRpb24gKyAiIG91dCBvZiByYW5nZSIpOworICAgICAgICB9CisgICAgfSAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1ByZXBEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZDc3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIE1heSAyLCAyMDAzCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgZmlsZSBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKKworCisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nUHJlcERhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGRlYnVnID0gSUNVRGVidWcuZW5hYmxlZCgiTm9ybWFsaXplckRhdGFSZWFkZXIiKTsKKyAgICAKKyAgIC8qKgorICAgICogPHA+cHJpdmF0ZSBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcERhdGFSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgaW4gaW5wdXRTdHJlYW0gIiArIGlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIHVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lELCB0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gaW5wdXRTdHJlYW0gIiAraW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGRhdGFJbnB1dFN0cmVhbSAiICtkYXRhSW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCByZWFkKGJ5dGVbXSBpZG5hQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gbWFwcGluZ1RhYmxlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKworICAgICAgICAvL1JlYWQgdGhlIGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgaWRuYVRyaWUgIAorICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChpZG5hQnl0ZXMpOworICAgICAgICAKKyAgICAgICAgLy9SZWFkIHRoZSBleHRyYSBkYXRhCisgICAgICAgIGZvcihpbnQgaT0wO2k8bWFwcGluZ1RhYmxlLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbWFwcGluZ1RhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKXsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlszXTsKKyAgICB9CisgICAgcHVibGljIGludFtdIHJlYWRJbmRleGVzKGludCBsZW5ndGgpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpbnRbXSBpbmRleGVzID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAvL1JlYWQgdGhlIGluZGV4ZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPGxlbmd0aCA7IGkrKykgeworICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleGVzOworICAgIH0gCisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXRVbmljb2RlVmVyc2lvbigpeworICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247CisgICAgfQorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gZGF0YUlucHV0U3RyZWFtOworICAgIHByaXZhdGUgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqIHNlZSBzdG9yZS5jIG9mIGdlbm5vcm0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHZhbHVlcworICAgICovCisgICAgLy8vKiBkYXRhRm9ybWF0PSJTUFJQIiAweDUzLCAweDUwLCAweDUyLCAweDUwICAqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg1MywgKGJ5dGUpMHg1MCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg1MiwgKGJ5dGUpMHg1MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7KGJ5dGUpMHgzLCAoYnl0ZSkweDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDUsIChieXRlKTB4Mn07CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYTQ0YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIFVzZWQgYnkgQ29sbGF0aW9uLiBVQ2hhcmFjdGVySXRlcmF0b3Igb24gU3RyaW5ncy4gQ2FuJ3QgdXNlIAorICogUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IgYmVjYXVzZSBpdCBpcyBub3QgZWFzeSB0byBkbyBhIGZhc3Qgc2V0VGV4dC4gCisgKiBAYXV0aG9yIHN5bndlZQorICovCisvLyBUT0RPOiBJbnZlc3RpdmF0ZSBpZiBzZXRUZXh0IGlzIGEgZmVhdHVyZSByZXF1aXJlZCBieSB1c2VycyBzbyB0aGF0IHdlIGNhbiAKKy8vIG1vdmUgdGhpcyBtZXRob2QgdG8gdGhlIGJhc2UgY2xhc3MhCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIAoreworCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBzdHIgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGlmIChzdHIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIG1fdGV4dF8gPSBzdHI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBkZWZhdWx0IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgeworICAgICAgICBtX3RleHRfID0gIiI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdGV4dF8ubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudEluZGV4XzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IAorICAgICAqIGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCAKKyAgICAgKiB0aGUgY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3RleHRfLmNoYXJBdChtX2N1cnJlbnRJbmRleF8gKyspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHByZXZpb3VzIFVURjE2IGNoYXJhY3RlciBhbmQgZGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyAKKyAgICAgKiBjdXJyZW50SW5kZXggYnkgMS4gCisgICAgICogSWYgdGhlIHJlc3VsdGluZyBjdXJyZW50SW5kZXggaXMgbGVzcyB0aGFuIDAsIHRoZSBjdXJyZW50SW5kZXggaXMgcmVzZXQgCisgICAgICogdG8gMCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KC0tIG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgY3VycmVudEluZGV4IHRvIHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IGluIHRoZSB0ZXh0IGFuZCAKKyAgICAgKiByZXR1cm5zIHRoYXQgc2luZ2xlIFVURjE2IGNoYXJhY3RlciBhdCBjdXJyZW50SW5kZXguIAorICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggdGhlIGN1cnJlbnRJbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBjdXJyZW50SW5kZXggCisgICAgICogICAgICAgICAgICBpcyBzdXBwbGllZC4gaS5lLiBjdXJyZW50SW5kZXggaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgY3VycmVudEluZGV4KSB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IDAgfHwgY3VycmVudEluZGV4ID4gbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtX2N1cnJlbnRJbmRleF8gPSBjdXJyZW50SW5kZXg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbGxzIHRoZSBidWZmZXIgd2l0aCB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2Ugb2YgdGhlIGl0ZXJhdG9yCisgICAgICogSWYgdGhlIGJ1ZmZlciBjYXBhY2l0eSBpcyBub3QgZW5vdWdoIGEgZXhjZXB0aW9uIGlzIHRocm93bi4gVGhlIGNhcGFjaXR5CisgICAgICogb2YgdGhlIGZpbGwgaW4gYnVmZmVyIHNob3VsZCBhdCBsZWFzdCBiZSBlcXVhbCB0byBsZW5ndGggb2YgdGV4dCBpbiB0aGUgCisgICAgICogaXRlcmF0b3Igb2J0YWluZWQgYnkgY2FsbGluZyA8Y29kZT5nZXRMZW5ndGgoKTwvY29kZSkuCisgICAgICogPGI+VXNhZ2U6PC9iPgorICAgICAqIAorICAgICAqIDxjb2RlPgorICAgICAqIDxwcmU+CisgICAgICogICAgICAgICBVQ2hhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgICAqICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAqICAgICAgICAgaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAKKyAgICAgKiAgICAgICAgIE9SCisgICAgICogICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKyAgICAgKiAgICAgICAgIGludCBsZW4gPSAwOworICAgICAqICAgICAgICAgZm9yKDs7KXsKKyAgICAgKiAgICAgICAgICAgICB0cnl7CisgICAgICogICAgICAgICAgICAgICAgIGxlbiA9IGl0ZXIuZ2V0VGV4dChidWYpOworICAgICAqICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgKiAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgKiAgICAgICAgICAgICAgICAgYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICAgICAgfQorICAgICAqICAgICAgICAgfQorICAgICAqIDwvcHJlPgorICAgICAqIDwvY29kZT4KKyAgICAgKiAgICAgICAgICAgICAKKyAgICAgKiBAcGFyYW0gZmlsbEluIGFuIGFycmF5IG9mIGNoYXJzIHRvIGZpbGwgd2l0aCB0aGUgdW5kZXJseWluZyBVVEYtMTYgY29kZSAKKyAgICAgKiAgICAgICAgIHVuaXRzLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgYXJyYXkgdG8gc3RhcnQgcHV0dGluZyB0aGUgZGF0YS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBhZGRlZCB0byBmaWxsSW4sIGFzIGEgY29udmVuaWVuY2UKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZXhjZXB0aW9uIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKKyAgICAgKiAgICAgICAgICAgIHJvb20gYWZ0ZXIgb2Zmc2V0IGluIHRoZSBhcnJheSwgb3IgaWYgb2Zmc2V0ICZsdDsgMC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gbV90ZXh0Xy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICBtX3RleHRfLmdldENoYXJzKDAsIGxlbmd0aCwgZmlsbEluLCBvZmZzZXQpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHJldHVybmluZyB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UgYXMgYXMKKyAgICAgKiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBpbiB0aGUgaXRlcmF0b3IgYXMgYSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX3RleHRfOworICAgIH0gICAgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyBpdGVyYXRvciB0byBwb2ludCB0byBhIG5ldyBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgCisgICAgICogb3RoZXIgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZyBuZXcgCisgICAgICogUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgKiBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIAorICAgIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgbV90ZXh0XyA9IHRleHQ7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgICAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGV4dCBzdHJpbmcgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV90ZXh0XzsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGN1cnJlbnRJbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY3VycmVudEluZGV4XzsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGV4dFRyaWVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxNGIzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRleHRUcmllTWFwIGlzIGEgdHJpZSBpbXBsZW1lbnRhdGlvbiBmb3Igc3VwcG9ydGluZworICogZmFzdCBwcmVmaXggbWF0Y2ggZm9yIHRoZSBrZXkuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXh0VHJpZU1hcCB7CisgICAgLyoqCisgICAgICogQ29zdHJ1Y3RzIGEgVGV4dFRyaWVNYXAgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBpZ25vcmVDYXNlIHRydWUgdG8gdXNlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFRyaWVNYXAoYm9vbGVhbiBpZ25vcmVDYXNlKSB7CisgICAgICAgIHRoaXMuaWdub3JlQ2FzZSA9IGlnbm9yZUNhc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgdGV4dCBrZXkgYW5kIGl0cyBhc3NvY2lhdGVkIG9iamVjdCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbyBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBwcmV2aW91cyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWVkIHRleHQsCisgICAgICogb3IgbnVsbCBpZiB0aGVyZSB3YXMgbm8gbWFwcGluZyBmb3IgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcHV0KFN0cmluZyB0ZXh0LCBPYmplY3QgbykgeworICAgICAgICBDaGFyYWN0ZXJOb2RlIG5vZGUgPSByb290OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgbm9kZSA9IG5vZGUuYWRkQ2hpbGROb2RlKGNoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5nZXRDaGFyQ291bnQoY2gpID09IDIpIHsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0IHByZXZPYmogPSBub2RlLmdldE9iamVjdCgpOworICAgICAgICBub2RlLnNldE9iamVjdChvKTsKKyAgICAgICAgcmV0dXJuIHByZXZPYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5LgorICAgICAqIAorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQgd2l0aCBwcmVmaXhlcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHJldHVybiBnZXQocm9vdCwgdGV4dCwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5IHN0YXJ0aW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgaW5kZXggb2Ygb2YgdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQpIHsKKyAgICAgICAgcmV0dXJuIGdldChyb290LCB0ZXh0LCBzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2V0IHByZWZpeAorICAgICAqIG1hdGNoaW5nIHN0cmluZyBrZXkgdW5kZXIgdGhlIHNwZWNpZmllZCBub2RlLgorICAgICAqIAorICAgICAqIEBwYXJhbSBub2RlIFRoZSBjaGFyYWN0ZXIgbm9kZSBpbiB0aGlzIHRyaWUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBpbmRleCBUaGUgY3VycmVudCBpbmRleCB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaCB1bmRlciB0aGUgbm9kZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KENoYXJhY3Rlck5vZGUgbm9kZSwgU3RyaW5nIHRleHQsIGludCBpbmRleCkgeworICAgICAgICBPYmplY3Qgb2JqID0gbm9kZS5nZXRPYmplY3QoKTsKKyAgICAgICAgaWYgKGluZGV4IDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgTGlzdCBjaGlsZE5vZGVzID0gbm9kZS5nZXRDaGlsZE5vZGVzKCk7CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICBpbnQgY2hMZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBjaGlsZCA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkTm9kZXMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlKGNoLCBjaGlsZC5nZXRDaGFyYWN0ZXIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRtcCA9IGdldChjaGlsZCwgdGV4dCwgaW5kZXggKyBjaExlbik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgcHJpdmF0ZSBtZXRob2QgdXNlZCBmb3IgY29tcGFyaW5nIHR3byBjaGFyYWN0ZXJzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjaDEgVGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2gyIFRoZSBzZWNvbmQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG1hdGNoZXMgdGhlIHNlY29uZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZShpbnQgY2gxLCBpbnQgY2gyKSB7CisgICAgICAgIGlmIChjaDEgPT0gY2gyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpZ25vcmVDYXNlKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBUaGUgcm9vdCBub2RlIG9mIHRoaXMgdHJpZQorICAgIHByaXZhdGUgQ2hhcmFjdGVyTm9kZSByb290ID0gbmV3IENoYXJhY3Rlck5vZGUoMCk7CisKKyAgICAvLyBDaGFyYWN0ZXIgbWF0Y2hpbmcgb3B0aW9uCisgICAgYm9vbGVhbiBpZ25vcmVDYXNlOworCisgICAgLyoqCisgICAgICogSW5uZXIgY2xhc3MgcmVwcmVzZW50aW5nIGEgY2hhcmFjdGVyIG5vZGUgaW4gdGhlIHRyaWUuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBDaGFyYWN0ZXJOb2RlIHsKKyAgICAgICAgaW50IGNoYXJhY3RlcjsKKyAgICAgICAgTGlzdCBjaGlsZHJlbjsKKyAgICAgICAgT2JqZWN0IG9iajsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIG5vZGUgZm9yIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUoaW50IGNoKSB7CisgICAgICAgICAgICBjaGFyYWN0ZXIgPSBjaDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRDaGFyYWN0ZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIG9iamVjdCB0byB0aGUgbm9kZS4gIE9ubHkgYSBsZWFmIG5vZGUgaGFzCisgICAgICAgICAqIHRoZSByZWZlcmVuY2Ugb2YgYW4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIGtleS4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCBzZXQgaW4gdGhlIGxlYWYgbm9kZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE9iamVjdChPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICB0aGlzLm9iaiA9IG9iajsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBvYmplY3QgYXNzb2NpYXRlZCB0aGUgbGVhZiBub2RlLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHJldHVybiBUaGUgb2JqZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRPYmplY3QoKSB7CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYSBjaGlsZCBub2RlIGZvciB0aGUgY2hhcmFjZXIgdW5kZXIgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICogbm9kZSBpbiB0aGUgdHJpZS4gIFdoZW4gdGhlIG1hdGNoaW5nIGNoaWxkIG5vZGUgYWxyZWFkeQorICAgICAgICAgKiBleGlzdHMsIHRoZSByZWZlcmVuY2Ugb2YgdGhlIGV4aXN0aW5nIGNoaWxkIG5vZGUgaXMKKyAgICAgICAgICogcmV0dXJuZWQuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggYSBjaGlsZCBub2RlLgorICAgICAgICAgKiBAcmV0dXJuIFRoZSBjaGlsZCBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUgYWRkQ2hpbGROb2RlKGludCBjaCkgeworICAgICAgICAgICAgaWYgKGNoaWxkcmVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIG5ld05vZGUgPSBuZXcgQ2hhcmFjdGVyTm9kZShjaCk7CisgICAgICAgICAgICAgICAgY2hpbGRyZW4uYWRkKG5ld05vZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXdOb2RlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBub2RlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIGN1ciA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkcmVuLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyZShjaCwgY3VyLmdldENoYXJhY3RlcigpKSkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gY3VyOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobm9kZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbm9kZSA9IG5ldyBDaGFyYWN0ZXJOb2RlKGNoKTsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbi5hZGQobm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGNoaWxkIG5vZGVzIHVuZGVyIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGxpc3Qgb2YgY2hpbGQgbm9kZXMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTGlzdCBnZXRDaGlsZE5vZGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UaW1lWm9uZUFkYXB0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWQwYjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE9jdG9iZXIgMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmVBZGFwdGVyPC9jb2RlPiB3cmFwcyBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIHN1YmNsYXNzIHRoYXQgaXMgTk9UIGEgSkRLVGltZVpvbmUsIHRoYXQgaXMsIHRoYXQgZG9lcyBub3QgaXRzZWxmCisgKiB3cmFwIGEgamF2YS51dGlsLlRpbWVab25lLiAgSXQgaW5oZXJpdHMgZnJvbSBqYXZhLnV0aWwuVGltZVpvbmUuCisgKiBXaXRob3V0IHRoaXMgY2xhc3MsIHdlIHdvdWxkIG5lZWQgdG8gJ3BvcnQnIGphdmEudXRpbC5EYXRlIHRvCisgKiBjb20uaWJtLmljdS51dGlsIGFzIHdlbGwsIHNvIHRoYXQgRGF0ZSBjb3VsZCBpbnRlcm9wZXJhdGUgcHJvcGVybHkKKyAqIHdpdGggdGhlIGNvbS5pYm0uaWN1LnV0aWwgVGltZVpvbmUgYW5kIENhbGVuZGFyIGNsYXNzZXMuICBXaXRoIHRoaXMKKyAqIGNsYXNzLCB3ZSBjYW4gdXNlIGphdmEudXRpbC5EYXRlIHRvZ2V0aGVyIHdpdGggY29tLmlibS5pY3UudXRpbAorICogY2xhc3Nlcy4KKyAqCisgKiBUaGUgY29tcGxlbWVudCBvZiB0aGlzIGlzIEpES1RpbWVab25lLCB3aGljaCBtYWtlcyBhCisgKiBqYXZhLnV0aWwuVGltZVpvbmUgbG9vayBsaWtlIGEgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNzZXREZWZhdWx0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmVBZGFwdGVyIGV4dGVuZHMgamF2YS51dGlsLlRpbWVab25lIHsKKyAKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yMDQwMDcyMjE4ODIwMDE4NTU3TDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGFpbmVkIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKiBXZSBkZWxlZ2F0ZSBhbGwgbWV0aG9kcyB0byB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRpbWVab25lIHpvbmU7CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBqYXZhLnV0aWwuVGltZVpvbmUsIHdyYXAgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIGFkYXB0ZXIKKyAgICAgKiBzdWJjbGFzcyBvZiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGFuZCByZXR1cm4gdGhlIGFkYXB0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuVGltZVpvbmUgd3JhcChjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHR6KSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmVBZGFwdGVyKHR6KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGphdmEudXRpbC5UaW1lWm9uZSB3cmFwcGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHVud3JhcCgpIHsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBhZGFwdGVyIGZvciBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZUFkYXB0ZXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzLnpvbmUgPSB6b25lOworICAgICAgICBzdXBlci5zZXRJRCh6b25lLmdldElEKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgICAgICB6b25lLnNldElEKElEKTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhqYXZhLnV0aWwuVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIG90aGVyIGluc3RhbmNlb2YgVGltZVpvbmVBZGFwdGVyICYmCisgICAgICAgICAgICB6b25lLmhhc1NhbWVSdWxlcygoKFRpbWVab25lQWRhcHRlcilvdGhlcikuem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbGxpcykgeworICAgICAgICByZXR1cm4gem9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gem9uZS5nZXRSYXdPZmZzZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgem9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworICAgICAgICByZXR1cm4gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHJldHVybiB6b25lLmluRGF5bGlnaHRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lQWRhcHRlcigoVGltZVpvbmUpem9uZS5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiB6b25lLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBUaW1lWm9uZUFkYXB0ZXIpIHsKKyAgICAgICAgICAgIG9iaiA9ICgoVGltZVpvbmVBZGFwdGVyKSBvYmopLnpvbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHpvbmUuZXF1YWxzKG9iaik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIlRpbWVab25lQWRhcHRlcjogIiArIHpvbmUudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmUxMWEzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWUuamF2YQpAQCAtMCwwICsxLDQ4MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogPHA+QSB0cmllIGlzIGEga2luZCBvZiBjb21wcmVzc2VkLCBzZXJpYWxpemFibGUgdGFibGUgb2YgdmFsdWVzIAorICogYXNzb2NpYXRlZCB3aXRoIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBmZmZmKS48L3A+CisgKiA8cD5UaGlzIGNsYXNzIGRlZmluZXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIHRyaWUgYW5kIHByb3ZpZGVzIG1ldGhvZHMgCisgKiB0byA8Yj5yZXRyaWV2ZSB0aGUgb2Zmc2V0cyB0byB0aGUgYWN0dWFsIGRhdGE8L2I+LjwvcD4KKyAqIDxwPkRhdGEgd2lsbCBiZSB0aGUgZm9ybSBvZiBhbiBhcnJheSBvZiBiYXNpYyB0eXBlcywgY2hhciBvciBpbnQuPC9wPgorICogPHA+VGhlIGFjdHVhbCBkYXRhIGZvcm1hdCB3aWxsIGhhdmUgdG8gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyIGluIHRoZQorICogaW5uZXIgc3RhdGljIGludGVyZmFjZSBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUuPC9wPgorICogPHA+VGhpcyB0cmllIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGluZyBvZmZzZXQgd2hpbGUgd2Fsa2luZworICogZm9yd2FyZCB0aHJvdWdoIGEgVVRGLTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3MgYXJlIHRoZQorICogZnJvbUxlYWQoKSBhbmQgZnJvbU9mZnNldFRyYWlsKCkgbWV0aG9kcy4KKyAqIFRoZSBmcm9tQk1QKCkgbWV0aG9kIGFyZSBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVkOyB0aGV5IGdldCBvZmZzZXRzIGV2ZW4KKyAqIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlcG9pbnRzLCB3aGlsZSB0aGUgZnJvbUxlYWQoKSBtZXRob2QgZ2V0IHNwZWNpYWwKKyAqICJmb2xkZWQiIG9mZnNldHMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBmb2xkZWQgb2Zmc2V0cywgYW4gb2Zmc2V0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZCB0byBzdXBwbHkKKyAqIHRvIHRoZSBmcm9tT2Zmc2V0VHJhaWwoKSBtZXRob2RzLgorICogVG8gaGFuZGxlIHN1Y2ggc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzLCBzb21lIG9mZnNldCBpbmZvcm1hdGlvbiBhcmUga2VwdAorICogaW4gdGhlIGRhdGEuPC9wPgorICogPHA+TWV0aG9kcyBpbiBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUgYXJlIGNhbGxlZCB0byByZXRyaWV2ZSAKKyAqIHRoYXQgb2Zmc2V0IGZyb20gdGhlIGZvbGRlZCB2YWx1ZSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlIHVuaXQuPC9wPgorICogPHA+Rm9yIGV4YW1wbGVzIG9mIHVzZSwgc2VlIGNvbS5pYm0uaWN1LmltcGwuQ2hhclRyaWUgb3IgCisgKiBjb20uaWJtLmljdS5pbXBsLkludFRyaWUuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLkludFRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY2xhc3MgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2hhcmFjdGVyIGRhdGEgaW4gY29tLmlibS5pbXBsLlRyaWUgaGF2ZSBkaWZmZXJlbnQgdXNlci1zcGVjaWZpZWQgZm9ybWF0CisgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICogVGhpcyBpbnRlcmZhY2Ugc3BlY2lmaWVzIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gb3JkZXIgZm9yCisgICAgKiBjb20uaWJtLmltcGwuVHJpZSwgdG8gc3Vycm9nYXRlIG9mZnNldCBpbmZvcm1hdGlvbiBlbmNhcHN1bGF0ZWQgd2l0aGluIAorICAgICogdGhlIGRhdGEuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBEYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LmltcGwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEKKyAgICAgICAgKiB0aGUgaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICAgICAgICAqIEBwYXJhbSB2YWx1ZSBkYXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcgdGhlCisgICAgICAgICogICAgICAgIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqIEBkcmFmdCAyLjEKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSk7IAorICAgIH0KKworICAgIC8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCBpbXBsZW1lbnRzIERhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHRyaWUgaGFzIGEgbGluZWFyIGxhdGluIDEgYXJyYXkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB0cmllIGhhcyBhIGxpbmVhciBsYXRpbiAxIGFycmF5LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0xhdGluMUxpbmVhcigpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgVHJpZSBoYXMgdGhlIHNhbWUgZGF0YSBhcyB0aGlzIFRyaWUuCisgICAgICogQXR0cmlidXRlcyBhcmUgY2hlY2tlZCBidXQgbm90IHRoZSBpbmRleCBkYXRhLgorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGlmIChvdGhlciA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFRyaWUpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgVHJpZSBvdGhlcnRyaWUgPSAoVHJpZSlvdGhlcjsKKyAgICAgICAgcmV0dXJuIG1faXNMYXRpbjFMaW5lYXJfID09IG90aGVydHJpZS5tX2lzTGF0aW4xTGluZWFyXworICAgICAgICAgICAgICAgJiYgbV9vcHRpb25zXyA9PSBvdGhlcnRyaWUubV9vcHRpb25zXworICAgICAgICAgICAgICAgJiYgbV9kYXRhTGVuZ3RoXyA9PSBvdGhlcnRyaWUubV9kYXRhTGVuZ3RoXworICAgICAgICAgICAgICAgJiYgQXJyYXlzLmVxdWFscyhtX2luZGV4Xywgb3RoZXJ0cmllLm1faW5kZXhfKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2VyaWFsaXplZCBkYXRhIGZpbGUgc2l6ZSBvZiB0aGUgVHJpZS4gVGhpcyBpcyB1c2VkIGR1cmluZyAKKyAgICAgKiB0cmllIGRhdGEgcmVhZGluZyBmb3Igc2l6ZSBjaGVja2luZyBwdXJwb3Nlcy4gCisgICAgICogQHJldHVybiBzaXplIHNpemUgb2Ygc2VyaWFsaXplZCB0cmllIGRhdGEgZmlsZSBpbiB0ZXJtcyBvZiB0aGUgbnVtYmVyCisgICAgICogICAgICAgICAgICAgIG9mIGJ5dGVzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZXJpYWxpemVkRGF0YVNpemUoKQorICAgIHsKKyAgICAgICAgLy8gaW5jbHVkZXMgc2lnbmF0dXJlLCBvcHRpb24sIGRhdGFvZmZzZXQgYW5kIGRhdGFsZW5ndGggb3V0cHV0CisgICAgICAgIGludCByZXN1bHQgPSAoNCA8PCAyKTsKKyAgICAgICAgcmVzdWx0ICs9IChtX2RhdGFPZmZzZXRfIDw8IDEpOworICAgICAgICBpZiAoaXNDaGFyVHJpZSgpKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gKG1fZGF0YUxlbmd0aF8gPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaXNJbnRUcmllKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAobV9kYXRhTGVuZ3RoXyA8PCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIFRyaWUgY29uc3RydWN0b3IgZm9yIENoYXJUcmllIHVzZS4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbSB3aGljaCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbiB0byBwYXJzZSB0aGUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgdHJpZSBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGlucHV0IHN0cmVhbSBkb2VzIG5vdCBoYXZlIHRoZQorICAgICogICAgICAgICAgICAgICAgICAgICAgICByaWdodCBoZWFkZXIuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVHJpZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSwgCisgICAgICAgICAgICAgICAgICAgRGF0YU1hbmlwdWxhdGUgIGRhdGFNYW5pcHVsYXRlKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAvLyBNYWdpYyBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhLgorICAgICAgICBpbnQgc2lnbmF0dXJlID0gaW5wdXQucmVhZEludCgpOworICAgICAgICBtX29wdGlvbnNfICAgID0gaW5wdXQucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja0hlYWRlcihzaWduYXR1cmUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJQ1UgZGF0YSBmaWxlIGVycm9yOiBUcmllIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSB0aGUgbW9zdCB1cGRhdGVkIElDVSBkYXRhIGZpbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGRhdGFNYW5pcHVsYXRlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gZGF0YU1hbmlwdWxhdGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2RhdGFNYW5pcHVsYXRlXyA9IG5ldyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCgpOworICAgICAgICB9CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gKG1fb3B0aW9uc18gJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfKSAhPSAwOworICAgICAgICBtX2RhdGFPZmZzZXRfICAgICA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyAgICAgPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIHVuc2VyaWFsaXplKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUcmllIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkgdG8gYmUgdXNlZCBmb3IgaW5kZXgKKyAgICAqIEBwYXJhbSBvcHRpb25zIHVzZWQgYnkgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gdG8gcGFyc2UgdGhlIAorICAgICogICAgICAgICAgICAgICAgICAgICAgIHRyaWUgZGF0YQorICAgICogQGRyYWZ0IDIuMgorICAgICovCisgICAgcHJvdGVjdGVkIFRyaWUoY2hhciBpbmRleFtdLCBpbnQgb3B0aW9ucywgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpCisgICAgeworICAgICAgICBtX29wdGlvbnNfID0gb3B0aW9uczsKKyAgICAgICAgaWYoZGF0YU1hbmlwdWxhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgbV9kYXRhTWFuaXB1bGF0ZV8gPSBkYXRhTWFuaXB1bGF0ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gbmV3IERlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSAobV9vcHRpb25zXyAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18pICE9IDA7CisgICAgICAgIG1faW5kZXhfID0gaW5kZXg7CisgICAgICAgIG1fZGF0YU9mZnNldF8gPSBtX2luZGV4Xy5sZW5ndGg7CisgICAgfQorCisKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cycgaW5kZXggZGlzcGxhY2VtZW50IGluIHRoZSBpbmRleCBhcnJheS4KKyAgICAqIDB4MTAwMDAtMHhkODAwPTB4MjgwMAorICAgICogMHgyODAwID4+IElOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBMRUFEX0lOREVYX09GRlNFVF8gPSAweDI4MDAgPj4gNTsKKyAgICAvKioKKyAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfMV9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5kZXggYXJyYXkgdmFsdWVzLgorICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAqIG9mIGNvbXBhY3RhYmlsaXR5LgorICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFsaWduZWQgYnkKKyAgICAqIERBVEFfR1JBTlVMQVJJVFkuCisgICAgKiAwLi5JTkRFWF9TVEFHRV8xX1NISUZUCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TVEFHRV8yX1NISUZUXyA9IDI7CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEg9MTw8SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBNYXNrIGZvciBnZXR0aW5nIHRoZSBsb3dlciBiaXRzIGZyb20gdGhlIGlucHV0IGluZGV4LgorICAgICogREFUQV9CTE9DS19MRU5HVEggLSAxLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfM19NQVNLXyA9IERBVEFfQkxPQ0tfTEVOR1RIIC0gMTsKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9CTE9DS19CSVRTPTEwLUlOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2FtZSBhcyBudW1iZXIgb2YgaW5kZXggZW50cmllcyBmb3IgMTAyNCB0cmFpbCBzdXJyb2dhdGVzLAorICAgICAqID09MHg0MDA+PklOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0JMT0NLX0NPVU5UPSgxPDxTVVJST0dBVEVfQkxPQ0tfQklUUyk7CisgICAgLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIPTB4MTAwMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICogU3Vycm9nYXRlIG1hc2sgdG8gdXNlIHdoZW4gc2hpZnRpbmcgb2Zmc2V0IHRvIHJldHJpZXZlIHN1cHBsZW1lbnRhcnkKKyAgICAqIHZhbHVlcworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BU0tfID0gMHgzRkY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogSW5kZXggb3IgVVRGMTYgY2hhcmFjdGVycworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGNoYXIgbV9pbmRleF9bXTsKKyAgICAvKioKKyAgICAqIEludGVybmFsIFRyaWVWYWx1ZSB3aGljaCBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHRoZSBkYXRhIHZhbHVlLgorICAgICogVGhpcyBjbGFzcyBpcyB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgdXNlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYW5pcHVsYXRlIG1fZGF0YU1hbmlwdWxhdGVfOworICAgIC8qKgorICAgICogU3RhcnQgaW5kZXggb2YgdGhlIGRhdGEgcG9ydGlvbiBvZiB0aGUgdHJpZS4gQ2hhclRyaWUgY29tYmluZXMgCisgICAgKiBpbmRleCBhbmQgZGF0YSBpbnRvIGEgY2hhciBhcnJheSwgc28gdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSAKKyAgICAqIGluaXRpYWwgb2Zmc2V0IHRvIHRoZSBkYXRhIHBvcnRpb24uCisgICAgKiBOb3RlIHRoaXMgaW5kZXggYWx3YXlzIHBvaW50cyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhT2Zmc2V0XzsKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSAKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKyAgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKTsKKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleAorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCk7CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIGluZGV4IGNoIGFmdGVyIHZhcmlhYmxlIG9mZnNldAorICAgICogcG9pbnRzIHRvLgorICAgICogTm90ZSBmb3IgbG9jYXRpbmcgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgZGF0YSBvZmZzZXQsIGNhbGxpbmcKKyAgICAqIDxwPgorICAgICogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICAqIDwvcD4KKyAgICAqIHdpbGwgZG8uIE90aGVyd2lzZSBpZiBpdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGZvcm1lZCBieQorICAgICogc3Vycm9nYXRlcyBsZWFkIGFuZCB0cmFpbC4gVGhlbiB3ZSB3b3VsZCBoYXZlIHRvIGNhbGwgZ2V0UmF3T2Zmc2V0KCkKKyAgICAqIHdpdGggZ2V0Rm9sZGluZ0luZGV4T2Zmc2V0KCkuIFNlZSBnZXRTdXJyb2dhdGVPZmZzZXQoKS4KKyAgICAqIEBwYXJhbSBvZmZzZXQgaW5kZXggb2Zmc2V0IHdoaWNoIGNoIGlzIHRvIHN0YXJ0IGZyb20KKyAgICAqIEBwYXJhbSBjaCBpbmRleCB0byBiZSB1c2VkIGFmdGVyIG9mZnNldAorICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0UmF3T2Zmc2V0KGludCBvZmZzZXQsIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKG1faW5kZXhfW29mZnNldCArIChjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUXyldIAorICAgICAgICAgICAgICAgIDw8IElOREVYX1NUQUdFXzJfU0hJRlRfKSAKKyAgICAgICAgICAgICAgICArIChjaCAmIElOREVYX1NUQUdFXzNfTUFTS18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byBkYXRhIHdoaWNoIHRoZSBCTVAgY2hhcmFjdGVyIHBvaW50cyB0bworICAgICogVHJlYXRzIGEgbGVhZCBzdXJyb2dhdGUgYXMgYSBub3JtYWwgY29kZSBwb2ludC4KKyAgICAqIEBwYXJhbSBjaCBCTVAgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEJNUE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgCisgICAgICAgICAgICAgICAgJiYgY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSAKKyAgICAgICAgICAgICAgICA/IGdldFJhd09mZnNldChMRUFEX0lOREVYX09GRlNFVF8sIGNoKQorICAgICAgICAgICAgICAgIDogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsgCisgICAgICAgICAgICAgICAgLy8gdXNpbmcgYSBnZXRSYXdPZmZzZXQoY2gpIG1ha2VzIG5vIGRpZmYKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byB0aGUgZGF0YSB3aGljaCB0aGlzIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciBwb2ludHMKKyAgICAqIHRvLgorICAgICogRGF0YSBhdCB0aGUgcmV0dXJuZWQgb2Zmc2V0IG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvcgorICAgICogdGhlIG5leHQgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0TGVhZE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICAgICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICAgICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChyZXN1bHQpPV9UUklFX0dFVF9SQVcodHJpZSwgZGF0YSwgMCwgYzMyKTsgfQorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIGRhdGEgd2hpY2ggdGhlIGNvZGVwb2ludCBwb2ludHMgdG8KKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0Q29kZVBvaW50T2Zmc2V0KGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmICgoY2ggPj4gMTYpID09IDApIHNsb3dlcgorICAgICAgICBpZiAoY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGZhc3RwYXRoIGZvciB0aGUgcGFydCBvZiB0aGUgQk1QIGJlbG93IHN1cnJvZ2F0ZXMgKEQ4MDApIHdoZXJlIGdldFJhd09mZnNldCgpIHdvcmtzCisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA8IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBCTVAgY29kZXBvaW50CisgICAgICAgICAgICByZXR1cm4gZ2V0Qk1QT2Zmc2V0KChjaGFyKWNoKTsgCisgICAgICAgIH0gZWxzZSBpZiAoY2ggPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIGdldFN1cnJvZ2F0ZU9mZnNldChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5QYXJzZXMgdGhlIGlucHV0c3RyZWFtIGFuZCBjcmVhdGVzIHRoZSB0cmllIGluZGV4IHdpdGggaXQuPC9wPgorICAgICogPHA+VGhpcyBpcyBvdmVyd3JpdHRlbiBieSB0aGUgY2hpbGQgY2xhc3Nlcy4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0aGUgdHJpZSBpbmZvcm1hdGlvbgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvL2luZGV4TGVuZ3RoIGlzIGEgbXVsdGlwbGUgb2YgMTAyNCA+PiBJTkRFWF9TVEFHRV8yX1NISUZUXworICAgICAgICBtX2luZGV4XyAgICAgICAgICAgICAgPSBuZXcgY2hhclttX2RhdGFPZmZzZXRfXTsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9kYXRhT2Zmc2V0XzsgaSArKykgeworICAgICAgICAgICAgIG1faW5kZXhfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvcHRpb25zIHNwZWNpZmllcyB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGlzSW50VHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gaXNDaGFyVHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pID09IDA7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vICBzdHJ1Y3QgVVRyaWVIZWFkZXIgeworICAgIC8vICAgICAgaW50MzJfdCAgIHNpZ25hdHVyZTsKKyAgICAvLyAgICAgIGludDMyX3QgICBvcHRpb25zICAoYSBiaXQgZmllbGQpCisgICAgLy8gICAgICBpbnQzMl90ICAgaW5kZXhMZW5ndGgKKyAgICAvLyAgICAgIGludDMyX3QgICBkYXRhTGVuZ3RoCisKKyAgICAvKioKKyAgICAqIFNpemUgb2YgVHJpZSBoZWFkZXIgaW4gYnl0ZXMKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9MRU5HVEhfID0gNCAqIDQ7CisgICAgLyoqCisgICAgKiBMYXRpbiAxIG9wdGlvbiBtYXNrCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfID0gMHgyMDA7CisgICAgLyoqCisgICAgKiBDb25zdGFudCBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBieXRlIGJsb2NrCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0lHTkFUVVJFXyA9IDB4NTQ3MjY5NjU7CisgICAgLyoqCisgICAgKiBIZWFkZXIgb3B0aW9uIGZvcm1hdHRpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXyA9IDB4RjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19JTkRFWF9TSElGVF8gPSA0OworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9PUFRJT05TX0RBVEFfSVNfMzJfQklUXyA9IDB4MTAwOworICAgIAorICAgIC8qKgorICAgICogRmxhZyBpbmRpY2F0b3IgZm9yIExhdGluIHF1aWNrIGFjY2VzcyBkYXRhIGJsb2NrCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgCisgICAgLyoqCisgICAgKiA8cD5UcmllIG9wdGlvbnMgZmllbGQuPC9wPgorICAgICogPHA+b3B0aW9ucyBiaXQgZmllbGQ6PGJyPgorICAgICogOSAgMSA9IExhdGluLTEgZGF0YSBpcyBzdG9yZWQgbGluZWFybHkgYXQgZGF0YSArIERBVEFfQkxPQ0tfTEVOR1RIPGJyPgorICAgICogOCAgMCA9IDE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhPGJyPgorICAgICogNy4uNCAgSU5ERVhfU1RBR0VfMV9TSElGVCAgIC8vIDAuLklOREVYX1NUQUdFXzJfU0hJRlQ8YnI+CisgICAgKiAzLi4wICBJTkRFWF9TVEFHRV8yX1NISUZUICAgLy8gMS4uOTxicj4KKyAgICAqLworICAgIHByaXZhdGUgaW50IG1fb3B0aW9uc187CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQXV0aGVudGljYXRlcyByYXcgZGF0YSBoZWFkZXIuCisgICAgKiBDaGVja2luZyB0aGUgaGVhZGVyIGluZm9ybWF0aW9uLCBzaWduYXR1cmUgYW5kIG9wdGlvbnMuCisgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoaXMgY29udGFpbnMgdGhlIG9wdGlvbnMgYW5kIHR5cGUgb2YgYSBUcmllCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGhlYWRlciBpcyBhdXRoZW50aWNhdGVkIHZhbGlkCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tIZWFkZXIoaW50IHNpZ25hdHVyZSkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIHRoZSBzaWduYXR1cmUKKyAgICAgICAgLy8gVHJpZSBpbiBiaWctZW5kaWFuIFVTLUFTQ0lJICgweDU0NzI2OTY1KS4KKyAgICAgICAgLy8gTWFnaWMgbnVtYmVyIHRvIGF1dGhlbnRpY2F0ZSB0aGUgZGF0YS4KKyAgICAgICAgaWYgKHNpZ25hdHVyZSAhPSBIRUFERVJfU0lHTkFUVVJFXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChtX29wdGlvbnNfICYgSEVBREVSX09QVElPTlNfU0hJRlRfTUFTS18pICE9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYX1NUQUdFXzFfU0hJRlRfIHx8CisgICAgICAgICAgICAoKG1fb3B0aW9uc18gPj4gSEVBREVSX09QVElPTlNfSU5ERVhfU0hJRlRfKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBJTkRFWF9TVEFHRV8yX1NISUZUXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyOGZhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjYxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworLyoqCisgKiBCdWlsZGVyIGNsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQGF1dGhvciAgICAgICAgICAgICBTeW4gV2VlIFF1ZWsKKyAqLworcHVibGljIGNsYXNzIFRyaWVCdWlsZGVyCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIE51bWJlciBvZiBkYXRhIHZhbHVlcyBpbiBhIHN0YWdlIDIgKGRhdGEgYXJyYXkpIGJsb2NrLiAyLCA0LCA4LCAuLiwgCisgICAgICogMHgyMDAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEggPSAxIDw8IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgCisgICAgLy8gcHVibGljIGNsYXNzIGRlY2xhcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgZGF0YSBpbiBjb20uaWJtLmltcGwuVHJpZSBoYXZlIGRpZmZlcmVudCB1c2VyLXNwZWNpZmllZCBmb3JtYXQKKyAgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICAqIFRoaXMgaW50ZXJmYWNlIHNwZWNpZmllcyBtZXRob2RzIHRvIGJlIGltcGxlbWVudGVkIGluIG9yZGVyIGZvcgorICAgICAqIGNvbS5pYm0uaW1wbC5UcmllLCB0byBzdXJyb2dhdGUgb2Zmc2V0IGluZm9ybWF0aW9uIGVuY2Fwc3VsYXRlZCB3aXRoaW4gCisgICAgICogdGhlIGRhdGEuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIERhdGFNYW5pcHVsYXRlCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2VkIHdpdGggc2VyaWFsaXplKCkuCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBhIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaW5jbHVkaW5nIGEgCisgICAgICAgICAqIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIDEwMjQgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAKKyAgICAgICAgICogW3N0YXJ0Li5zdGFydCsxMDI0WyAuIAorICAgICAgICAgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYpPT0wLgorICAgICAgICAgKiBUaGUgZm9sZGluZyBvZmZzZXQgaXMgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4gCisgICAgICAgICAqIEl0IGlzIG9mZnNldD1VVFJJRV9CTVBfSU5ERVhfTEVOR1RIK24qVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UIAorICAgICAgICAgKiB3aXRoIG49MC4uMTAyMy4gCisgICAgICAgICAqIEluc3RlYWQgb2YgdGhlIG9mZnNldCBpdHNlbGYsIG4gY2FuIGJlIHN0b3JlZCBpbiAxMCBiaXRzIC0gb3IgZmV3ZXIgCisgICAgICAgICAqIGlmIGl0IGNhbiBiZSBhc3N1bWVkIHRoYXQgZmV3IGxlYWQgc3Vycm9nYXRlcyBoYXZlIGFzc29jaWF0ZWQgZGF0YS4KKyAgICAgICAgICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICogIC0gbm90IHplcm8gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YSBmb3IgdGhlIAorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgICAgICAgICAqICAtIHN1Y2ggdGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCAKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KSk9PW9mZnNldAorICAgICAgICAgKiBAcmV0dXJuIGEgZm9sZGVkIHZhbHVlLCBvciAwIGlmIHRoZXJlIGlzIG5vIHJlbGV2YW50IGRhdGEgZm9yIHRoZSAKKyAgICAgICAgICogICAgICAgICBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGVkVmFsdWUoaW50IHN0YXJ0LCBpbnQgb2Zmc2V0KTsgCisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBjaGFyYWN0ZXIgYmVsb25ncyB0byBhIHplcm8gYmxvY2sgaW4gdGhlIHRyaWUKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGluIHRoZSB6ZXJvIGJsb2NrCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNJblplcm9CbG9jayhpbnQgY2gpIAorICAgIHsKKyAgICAgICAgLy8gdmFsaWQsIHVuY29tcGFjdGVkIHRyaWUgYW5kIHZhbGlkIGM/CisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIAorICAgICAgICAgICAgfHwgY2ggPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIG1faW5kZXhfW2NoID4+IFNISUZUX10gPT0gMDsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIAorICAgIC8qKgorICAgICAqIEluZGV4IHZhbHVlcyBhdCBidWlsZC10aW1lIGFyZSAzMiBiaXRzIHdpZGUgZm9yIGVhc2llciBwcm9jZXNzaW5nLgorICAgICAqIEJpdCAzMSBpcyBzZXQgaWYgdGhlIGRhdGEgYmxvY2sgaXMgdXNlZCBieSBtdWx0aXBsZSBpbmRleCB2YWx1ZXMgCisgICAgICogKGZyb20gc2V0UmFuZ2UoKSkuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtX2luZGV4X1tdOworICAgIHByb3RlY3RlZCBpbnQgbV9pbmRleExlbmd0aF87CisgICAgcHJvdGVjdGVkIGludCBtX2RhdGFDYXBhY2l0eV87IAorICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzTGF0aW4xTGluZWFyXzsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzQ29tcGFjdGVkXzsKKyAgICAvKioKKyAgICAgKiBNYXAgb2YgYWRqdXN0ZWQgaW5kZXhlcywgdXNlZCBpbiB1dHJpZV9jb21wYWN0KCkuCisgICAgICogTWFwcyBmcm9tIG9yaWdpbmFsIGluZGV4ZXMgdG8gbmV3IG9uZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtX21hcF9bXTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgcmlnaHQgdGhlIGlucHV0IGluZGV4LiAxLi45IAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNISUZUXyA9IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYmVmb3JlIGZvbGRpbmcuCisgICAgICogTWF4aW11bSBudW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyAoMHgxMTAwMDApIHNoaWZ0ZWQgcmlnaHQgYnkgCisgICAgICogU0hJRlQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX0xFTkdUSF8gPSAoMHgxMTAwMDAgPj4gU0hJRlRfKTsKKyAgICAvKiogCisgICAgICogTGVuZ3RoIG9mIHRoZSBCTVAgcG9ydGlvbiBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5LiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIXyA9IDB4MTAwMDAgPj4gU0hJRlRfOyAgIAorICAgIC8qKgorICAgICAqIE51bWJlciBvZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2FtZSBhcyBudW1iZXIgb2YgaW5kZXhlIGVudHJpZXMgZm9yIDEwMjQgdHJhaWwgc3Vycm9nYXRlcywKKyAgICAgKiA9PTB4NDAwPj5VVFJJRV9TSElGVAorICAgICAqIDEwIC0gU0hJRlQgPT0gTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiAKKyAgICAgKiAgICAgICAgICAgICAgIGluZGV4IHRhYmxlIGxvb2t1cHMuIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9CTE9DS19DT1VOVF8gPSAxIDw8ICgxMCAtIFNISUZUXyk7CisgICAgLyoqCisgICAgICogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmcm9tIHRoZSBpbnB1dCBpbmRleC4KKyAgICAgKiBEQVRBX0JMT0NLX0xFTkdUSCAtIDEuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS18gPSBUcmllLklOREVYX1NUQUdFXzNfTUFTS187CisgICAgLyoqCisgICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5kZXggYXJyYXkgdmFsdWVzLgorICAgICAqIEluY3JlYXNlcyBwb3NzaWJsZSBkYXRhIHNpemUgd2l0aCAxNi1iaXQgaW5kZXggdmFsdWVzIGF0IHRoZSBjb3N0CisgICAgICogb2YgY29tcGFjdGFiaWxpdHkuCisgICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFsaWduZWQgYnkgVVRSSUVfREFUQV9HUkFOVUxBUklUWS4KKyAgICAgKiAwLi5VVFJJRV9TSElGVAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IElOREVYX1NISUZUXyA9IFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgLyoqCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgdGhlIHJ1bnRpbWUgZGF0YSAoc3RhZ2UgMikgYXJyYXkuCisgICAgICogTGltaXRlZCBieSAxNi1iaXQgaW5kZXggdmFsdWVzIHRoYXQgYXJlIGxlZnQtc2hpZnRlZCBieSBJTkRFWF9TSElGVF8uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0RBVEFfTEVOR1RIXyA9ICgweDEwMDAwIDw8IElOREVYX1NISUZUXyk7CisgICAgLyoqCisgICAgICogU2hpZnRpbmcgdG8gcG9zaXRpb24gdGhlIGluZGV4IHZhbHVlIGluIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0lOREVYX1NISUZUXyA9IDQ7CisgICAgLyoqIAorICAgICAqIElmIHNldCwgdGhlbiB0aGUgZGF0YSAoc3RhZ2UgMikgYXJyYXkgaXMgMzIgYml0cyB3aWRlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0RBVEFfSVNfMzJfQklUXyA9IDB4MTAwOworICAgIC8qKgorICAgICAqIElmIHNldCwgdGhlbiBMYXRpbi0xIGRhdGEgKGZvciBVKzAwMDAuLlUrMDBmZikgaXMgc3RvcmVkIGluIHRoZSBkYXRhIAorICAgICAqIChzdGFnZSAyKSBhcnJheSBhcyBhIHNpbXBsZSwgbGluZWFyIGFycmF5IGF0IGRhdGEgKyBEQVRBX0JMT0NLX0xFTkdUSC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX0xBVElOMV9JU19MSU5FQVJfID0gMHgyMDA7CisgICAgLyoqIAorICAgICAqIFRoZSBhbGlnbm1lbnQgc2l6ZSBvZiBhIHN0YWdlIDIgZGF0YSBibG9jay4gQWxzbyB0aGUgZ3JhbnVsYXJpdHkgZm9yIAorICAgICAqIGNvbXBhY3Rpb24uIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IERBVEFfR1JBTlVMQVJJVFlfID0gMSA8PCBJTkRFWF9TSElGVF87CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVHJpZUJ1aWxkZXIoKQorICAgIHsKKyAgICAgICAgbV9pbmRleF8gPSBuZXcgaW50W01BWF9JTkRFWF9MRU5HVEhfXTsKKyAgICAgICAgbV9tYXBfID0gbmV3IGludFtNQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSF8gPj4gU0hJRlRfXTsKKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSBmYWxzZTsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSBmYWxzZTsKKyAgICAgICAgbV9pbmRleExlbmd0aF8gPSBNQVhfSU5ERVhfTEVOR1RIXzsKKyAgICB9CisgICAgICAgIAorICAgIHByb3RlY3RlZCBUcmllQnVpbGRlcihUcmllQnVpbGRlciB0YWJsZSkKKyAgICB7CisgICAgICAgIG1faW5kZXhfID0gbmV3IGludFtNQVhfSU5ERVhfTEVOR1RIX107CisgICAgICAgIG1faW5kZXhMZW5ndGhfID0gdGFibGUubV9pbmRleExlbmd0aF87CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9pbmRleF8sIDAsIG1faW5kZXhfLCAwLCBtX2luZGV4TGVuZ3RoXyk7CisgICAgICAgIG1fZGF0YUNhcGFjaXR5XyA9IHRhYmxlLm1fZGF0YUNhcGFjaXR5XzsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyA9IHRhYmxlLm1fZGF0YUxlbmd0aF87CisgICAgICAgIG1fbWFwXyA9IG5ldyBpbnRbdGFibGUubV9tYXBfLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9tYXBfLCAwLCBtX21hcF8sIDAsIG1fbWFwXy5sZW5ndGgpOworICAgICAgICBtX2lzTGF0aW4xTGluZWFyXyA9IHRhYmxlLm1faXNMYXRpbjFMaW5lYXJfOworICAgICAgICBtX2lzQ29tcGFjdGVkXyA9IHRhYmxlLm1faXNDb21wYWN0ZWRfOworICAgIH0KKyAgICAgICAgCisgICAgLy8gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHNlY3Rpb25zIG9mIGFuIGFycmF5IGZvciBlcXVhbGl0eS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGJvb2xlYW4gZXF1YWxfaW50KGludFtdIGFycmF5LCBpbnQgc3RhcnQxLCBpbnQgc3RhcnQyLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIHdoaWxlKGxlbmd0aD4wICYmIGFycmF5W3N0YXJ0MV09PWFycmF5W3N0YXJ0Ml0pIHsKKyAgICAgICAgICAgICsrc3RhcnQxOworICAgICAgICAgICAgKytzdGFydDI7CisgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGVuZ3RoPT0wOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIHZhbHVlIGluIHRoZSB0cmllIGluZGV4IG1hcCB0byBpbmRpY2F0ZSB3aGljaCBkYXRhIGJsb2NrCisgICAgICogaXMgcmVmZXJlbmNlZCBhbmQgd2hpY2ggb25lIGlzIG5vdC4KKyAgICAgKiB1dHJpZV9jb21wYWN0KCkgd2lsbCByZW1vdmUgZGF0YSBibG9ja3MgdGhhdCBhcmUgbm90IHVzZWQgYXQgYWxsLgorICAgICAqIFNldAorICAgICAqIC0gMCBpZiBpdCBpcyB1c2VkCisgICAgICogLSAtMSBpZiBpdCBpcyBub3QgdXNlZAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGZpbmRVbnVzZWRCbG9ja3MoKSAKKyAgICB7CisgICAgICAgIC8vIGZpbGwgdGhlIGVudGlyZSBtYXAgd2l0aCAibm90IHVzZWQiIAorICAgICAgICBBcnJheXMuZmlsbChtX21hcF8sIDB4ZmYpOworICAgIAorICAgICAgICAvLyBtYXJrIGVhY2ggYmxvY2sgdGhhdCBfaXNfIHVzZWQgd2l0aCAwCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9pbmRleExlbmd0aF87ICsrIGkpIHsKKyAgICAgICAgICAgIG1fbWFwX1tNYXRoLmFicyhtX2luZGV4X1tpXSkgPj4gU0hJRlRfXSA9IDA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gbmV2ZXIgbW92ZSB0aGUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgMAorICAgICAgICBtX21hcF9bMF0gPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kcyB0aGUgc2FtZSBpbmRleCBibG9jayBhcyB0aGUgb3RoZXJCbG9jaworICAgICAqIEBwYXJhbSBpbmRleCBhcnJheQorICAgICAqIEBwYXJhbSBpbmRleExlbmd0aCBzaXplIG9mIGluZGV4CisgICAgICogQHBhcmFtIG90aGVyQmxvY2sKKyAgICAgKiBAcmV0dXJuIHNhbWUgaW5kZXggYmxvY2sKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmaW5kU2FtZUluZGV4QmxvY2soaW50IGluZGV4W10sIGludCBpbmRleExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG90aGVyQmxvY2spIAorICAgIHsKKyAgICAgICAgZm9yIChpbnQgYmxvY2sgPSBCTVBfSU5ERVhfTEVOR1RIXzsgYmxvY2sgPCBpbmRleExlbmd0aDsgCisgICAgICAgICAgICAgYmxvY2sgKz0gU1VSUk9HQVRFX0JMT0NLX0NPVU5UXykgeworICAgICAgICAgICAgaWYoZXF1YWxfaW50KGluZGV4LCBibG9jaywgb3RoZXJCbG9jaywgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4TGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAgICAgKiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMHgxMTAwMDAgKyBEQVRBX0JMT0NLX0xFTkdUSCArIDB4NDAwLgorICAgICAqIChOdW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgICAgICogIHBvc3NpYmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIXyA9IAorICAgICAgICAweDExMDAwMCArIERBVEFfQkxPQ0tfTEVOR1RIICsgMHg0MDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1ZmQ5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU0MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CisKKy8qKgorICogPHA+Q2xhc3MgZW5hYmxpbmcgaXRlcmF0aW9uIG9mIHRoZSB2YWx1ZXMgaW4gYSBUcmllLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyB0aGUgaW50ZXJ2YWwgb2YgY29kZXBvaW50cyB0aGF0IGhhdmUKKyAqIHRoZSBzYW1lIHZhbHVlIHR5cGUgYW5kIHRoZSB2YWx1ZSB0eXBlIGl0c2VsZi48L3A+CisgKiA8cD5UaGUgY29tcGFyaXNvbiBvZiBlYWNoIGNvZGVwb2ludCB2YWx1ZSBpcyBkb25lIHZpYSBleHRyYWN0KCksIHdoaWNoIHRoZQorICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLjwvcD4gCisgKiA8cD5NZXRob2QgZXh0cmFjdCgpIGNhbiBiZSBvdmVyd3JpdHRlbiB0byBwZXJmb3JtIG1hbmlwdWxhdGlvbnMgb24gCisgKiBjb2RlcG9pbnQgdmFsdWVzIGluIG9yZGVyIHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQgY29tcGFyaXNvbi48L3A+CisgKiA8cD5UcmllSXRlcmF0b3IgaXMgZGVzaWduZWQgdG8gYmUgYSBnZW5lcmljIGl0ZXJhdG9yIGZvciB0aGUgQ2hhclRyaWUKKyAqIGFuZCB0aGUgSW50VHJpZSwgaGVuY2UgdG8gYWNjb21tb2RhdGUgYm90aCB0eXBlcyBvZiBkYXRhLCB0aGUgcmV0dXJuIAorICogcmVzdWx0IHdpbGwgYmUgaW4gdGVybXMgb2YgaW50ICgzMiBiaXQpIHZhbHVlcy48L3A+CisgKiA8cD5TZWUgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGZvciBleGFtcGxlcyBvZiB1c2UuPC9wPgorICogPHA+Tm90ZXMgZm9yIHBvcnRpbmcgdXRyaWVfZW51bSBmcm9tIGljdTRjIHRvIGljdTRqOjxicj4KKyAqIEludGVybmFsbHksIGljdTRjJ3MgdXRyaWVfZW51bSBwZXJmb3JtcyBhbGwgaXRlcmF0aW9ucyBpbiBpdHMgYm9keS4gSW4gSmF2YQorICogc2Vuc2UsIHRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIHBhc3MgYSBvYmplY3Qgd2l0aCBhIGNhbGxiYWNrIGZ1bmN0aW9uIAorICogVVRyaWVFbnVtUmFuZ2UoY29uc3Qgdm9pZCAqY29udGV4dCwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgCisgKiB1aW50MzJfdCB2YWx1ZSkgaW50byB1dHJpZV9lbnVtLiB1dHJpZV9lbnVtIHdpbGwgdGhlbiBmaW5kIHJhbmdlcyBvZiAKKyAqIGNvZGVwb2ludHMgd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyBkZXRlcm1pbmVkIGJ5IAorICogVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4dCwgdWludDMyX3QgdmFsdWUpLiBmb3IgZWFjaCByYW5nZSwgCisgKiB1dHJpZV9lbnVtIGNhbGxzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBwZXJmb3JtIGEgdGFzay4gSW4gdGhpcyB3YXksCisgKiBpY3U0YyBwZXJmb3JtcyB0aGUgaXRlcmF0aW9uIHdpdGhpbiB1dHJpZV9lbnVtLgorICogVG8gZm9sbG93IHRoZSBKREsgbW9kZWwsIGljdTRqIGlzIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIGljdTRjLgorICogSW5zdGVhZCBvZiByZXF1ZXN0aW5nIHRoZSBjYWxsZXIgdG8gaW1wbGVtZW50IGFuIG9iamVjdCBmb3IgYSBjYWxsYmFjay4KKyAqIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGltcGxlbWVudCBhIHN1YmNsYXNzIG9mIFRyaWVJdGVyYXRvciwgZmxlc2hpbmcgb3V0CisgKiB0aGUgbWV0aG9kIGV4dHJhY3QoaW50KSAoZXF1aXZhbGVudCB0byBVVHJpZUVudW1WYWx1ZSkuIEluZGVwZW5kZW50IG9mIGljdTRqLCAKKyAqIHRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGNvZGUgaGlzIG93biBpdGVyYXRpb24gYW5kIGZsZXNoIG91dCB0aGUgdGFzayAKKyAqIChlcXVpdmFsZW50IHRvIFVUcmllRW51bVJhbmdlKSB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIGl0ZXJhdGlvbiBsb29wLgorICogPC9wPgorICogPHA+VGhlcmUgYXJlIGJhc2ljYWxseSAzIHVzYWdlIHNjZW5hcmlvcyBmb3IgcG9ydGluZzo8L3A+CisgKiA8cD4xKSBVVHJpZUVudW1WYWx1ZSBpcyB0aGUgb25seSBpbXBsZW1lbnRlZCBjYWxsYmFjayB0aGVuIGp1c3QgaW1wbGVtZW50IGEgCisgKiBzdWJjbGFzcyBvZiBUcmllSXRlcmF0b3IgYW5kIG92ZXJyaWRlIHRoZSBleHRyYWN0KGludCkgbWV0aG9kLiBUaGUgCisgKiBleHRyYWN0KGludCkgbWV0aG9kIGlzIGFuYWxvZ3VzIHRvIFVUcmllRW51bVZhbHVlIGNhbGxiYWNrLgorICogPC9wPgorICogPHA+MikgVVRyaWVFbnVtVmFsdWUgYW5kIFVUcmllRW51bVJhbmdlIGJvdGggYXJlIGltcGxlbWVudGVkIHRoZW4gaW1wbGVtZW50IAorICogYSBzdWJjbGFzcyBvZiBUcmllSXRlcmF0b3IsIG92ZXJyaWRlIHRoZSBleHRyYWN0IG1ldGhvZCBhbmQgaXRlcmF0ZSwgZS5nCisgKiA8L3A+CisgKiA8cD51dHJpZV9lbnVtKCZub3JtVHJpZSwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1ZhbHVlLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIAorICogICAgICAgICAgICAgICBzZXQpOzxicj4KKyAqIEluIEphdmEgOjxicj4KKyAqIDxwcmU+CisgKiBjbGFzcyBUcmllSXRlcmF0b3JJbXBsIGV4dGVuZHMgVHJpZUl0ZXJhdG9yeworICogICAgIHB1YmxpYyBUcmllSXRlcmF0b3JJbXBsKFRyaWUgZGF0YSl7CisgKiAgICAgICAgIHN1cGVyKGRhdGEpOworICogICAgIH0KKyAqICAgICBwdWJsaWMgaW50IGV4dHJhY3QoaW50IHZhbHVlKXsKKyAqICAgICAgICAgLy8gcG9ydCB0aGUgaW1wbGVtZW50YXRpb24gb2YgX2VudW1Qcm9wZXJ0eVN0YXJ0c1ZhbHVlIGhlcmUKKyAqICAgICB9CisgKiB9CisgKiAuLi4uIAorICogVHJpZUl0ZXJhdG9yIGZjZEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvckltcGwoZmNkVHJpZUltcGwuZmNkVHJpZSk7CisgKiB3aGlsZShmY2RJdGVyLm5leHQocmVzdWx0KSkgeworICogICAgIC8vIHBvcnQgdGhlIGltcGxlbWVudGF0aW9uIG9mIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZQorICogfQorICogPC9wcmU+CisgKiA8L3A+CisgKiA8cD4zKSBVVHJpZUVudW1SYW5nZSBpcyB0aGUgb25seSBpbXBsZW1lbnRlZCBjYWxsYmFjayB0aGVuIGp1c3QgaW1wbGVtZW50IAorICogdGhlIHdoaWxlIGxvb3AsIHdoZW4gdXRyaWVfZW51bSBpcyBjYWxsZWQKKyAqIDxwcmU+CisgKiAvLyB1dHJpZV9lbnVtKCZmY2RUcmllLCBOVUxMLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIHNldCk7CisgKiBUcmllSXRlcmF0b3IgZmNkSXRlciAgPSBuZXcgVHJpZUl0ZXJhdG9yKGZjZFRyaWVJbXBsLmZjZFRyaWUpOworICogd2hpbGUoZmNkSXRlci5uZXh0KHJlc3VsdCkpeworICogICAgIHNldC5hZGQocmVzdWx0LnN0YXJ0KTsKKyAqIH0KKyAqIDwvcD4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuVHJpZQorICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDE3IDIwMDIKKyAqLworcHVibGljIGNsYXNzIFRyaWVJdGVyYXRvciBpbXBsZW1lbnRzIFJhbmdlVmFsdWVJdGVyYXRvcgorCit7CisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogVHJpZUVudW1lcmF0aW9uIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gdHJpZSB0byBiZSB1c2VkCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvdyB3aGVuIGFyZ3VtZW50IGlzIG51bGwuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgVHJpZUl0ZXJhdG9yKFRyaWUgdHJpZSkKKyAgICB7CisgICAgICAgIGlmICh0cmllID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgdHJpZSBjYW5ub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIG1fdHJpZV8gICAgICAgICAgICAgPSB0cmllOworICAgICAgICAvLyBzeW53ZWU6IGNoZWNrIHRoYXQgZXh0cmFjdCBiZWxvbmdzIHRvIHRoZSBjaGlsZCBjbGFzcworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gICAgID0gZXh0cmFjdChtX3RyaWVfLmdldEluaXRpYWxWYWx1ZSgpKTsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UmV0dXJucyB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSAKKyAgICAqIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5UaGUgbmV4dCBzZXQgb2YgY29kZXBvaW50cyB3aXRoIHRoZSBzYW1lIHZhbHVlIHR5cGUgd2lsbCBiZSAKKyAgICAqIGNhbGN1bGF0ZWQgZHVyaW5nIHRoaXMgY2FsbCBhbmQgcmV0dXJuZWQgaW4gdGhlIGFyZ3VlbWVudCBlbGVtZW50LjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiAtIGlmIG5vIG1vcmUgZWxlbWVudHMgZXhpc3QuCisgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIG5leHQoRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG1fbmV4dENvZGVwb2ludF8gPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChtX25leHRDb2RlcG9pbnRfIDwgVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgY2FsY3VsYXRlTmV4dEJNUEVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9ICAgIAorICAgICAgICBjYWxjdWxhdGVOZXh0U3VwcGxlbWVudGFyeUVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgKiBSZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdGlvbgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IDA7CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gICAgPSAwOworICAgICAgICBtX25leHRJbmRleF8gICAgICAgID0gMDsKKyAgICAgICAgbV9uZXh0QmxvY2tfID0gbV90cmllXy5tX2luZGV4X1swXSA8PCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICBpZiAobV9uZXh0QmxvY2tfID09IDApIHsKKyAgICAgICAgICAgIG1fbmV4dFZhbHVlXyA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbmV4dFZhbHVlXyA9IGV4dHJhY3QobV90cmllXy5nZXRWYWx1ZShtX25leHRCbG9ja18pKTsKKyAgICAgICAgfQorICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgIG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfID0gVFJBSUxfU1VSUk9HQVRFX0lOREVYX0JMT0NLX0xFTkdUSF87CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENhbGxlZCBieSBuZXh0KCkgdG8gZXh0cmFjdHMgYSAzMiBiaXQgdmFsdWUgZnJvbSBhIHRyaWUgdmFsdWUKKyAgICAqIHVzZWQgZm9yIGNvbXBhcmlzb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBiZSBvdmVyd3JpdHRlbiBpZiBzcGVjaWFsIG1hbmlwdWxhdGlvbiBpcyB0byBiZSBkb25lCisgICAgKiB0byByZXRyaWV2ZSBhIHJlbGV2YW50IGNvbXBhcmlzb24uCisgICAgKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLgorICAgICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICAgICogQHJldHVybiBleHRyYWN0ZWQgdmFsdWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFNldCB0aGUgcmVzdWx0IHZhbHVlcworICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEBwYXJhbSBzdGFydCBjb2RlcG9pbnQgb2YgcmFuZ2UgCisgICAgKiBAcGFyYW0gbGltaXQgKGVuZCArIDEpIGNvZGVwb2ludCBvZiByYW5nZQorICAgICogQHBhcmFtIHZhbHVlIGNvbW1vbiB2YWx1ZSBvZiByYW5nZQorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHNldFJlc3VsdChFbGVtZW50IGVsZW1lbnQsIGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGVsZW1lbnQuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgZWxlbWVudC5saW1pdCA9IGxpbWl0OworICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRmluZGluZyB0aGUgbmV4dCBlbGVtZW50LgorICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIHJldHVybmluZyB0aGUgcmVzdWx0IG9mIAorICAgICogbmV4dCgpLgorICAgICogV2UgYWx3YXlzIHN0b3JlIHRoZSBuZXh0IGVsZW1lbnQgYmVmb3JlIGl0IGlzIHJlcXVlc3RlZC4KKyAgICAqIEluIHRoZSBjYXNlIHRoYXQgd2UgaGF2ZSB0byBjb250aW51ZSBjYWxjdWxhdGlvbnMgaW50byB0aGUgCisgICAgKiBzdXBwbGVtZW50YXJ5IHBsYW5lcywgYSBmYWxzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbmV4dCByYW5nZSBpcyBmb3VuZCwgZmFsc2UgaWYgd2UgaGF2ZSB0byBwcm9jZWVkIHRvCisgICAgKiAgICAgICAgIHRoZSBzdXBwbGVtZW50YXJ5IHJhbmdlLgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNhbGN1bGF0ZU5leHRCTVBFbGVtZW50KEVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGludCBjdXJyZW50QmxvY2sgICAgPSBtX25leHRCbG9ja187CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgICAgPSBtX25leHRWYWx1ZV87CisgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICBtX25leHRDb2RlcG9pbnRfICsrOworICAgICAgICBtX25leHRCbG9ja0luZGV4XyArKzsKKyAgICAgICAgaWYgKCFjaGVja0Jsb2NrRGV0YWlsKGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3lud2VlIGNoZWNrIHRoYXQgbmV4dCBibG9jayBpbmRleCA9PSAwIGhlcmUgCisgICAgICAgIC8vIGVudW1lcmF0ZSBCTVAgLSB0aGUgbWFpbiBsb29wIGVudW1lcmF0ZXMgZGF0YSBibG9ja3MKKyAgICAgICAgd2hpbGUgKG1fbmV4dENvZGVwb2ludF8gPCBVQ2hhcmFjdGVyLlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBtX25leHRJbmRleF8gKys7CisgICAgICAgICAgICAvLyBiZWNhdXNlIG9mIHRoZSB3YXkgdGhlIGNoYXJhY3RlciBpcyBzcGxpdCB0byBmb3JtIHRoZSBpbmRleAorICAgICAgICAgICAgLy8gdGhlIGxlYWQgc3Vycm9nYXRlIGFuZCB0cmFpbCBzdXJyb2dhdGUgY2FuIG5vdCBiZSBpbiB0aGUKKyAgICAgICAgICAgIC8vIG1pZCBvZiBhIGJsb2NrCisgICAgICAgICAgICBpZiAobV9uZXh0Q29kZXBvaW50XyA9PSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUVfKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzLAorICAgICAgICAgICAgICAgIC8vIGdvIHRvIGxlYWQgc3Vycm9nYXRlIGNvZGVwb2ludHMKKyAgICAgICAgICAgICAgICBtX25leHRJbmRleF8gPSBCTVBfSU5ERVhfTEVOR1RIXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG1fbmV4dENvZGVwb2ludF8gPT0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRV8pIHsKKyAgICAgICAgICAgICAgICAvLyBnbyBiYWNrIHRvIHJlZ3VsYXIgQk1QIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV9uZXh0Q29kZXBvaW50XyA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICBpZiAoIWNoZWNrQmxvY2soY3VycmVudEJsb2NrLCBjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gLS07ICAgLy8gc3RlcCBvbmUgYmFjayBzaW5jZSB0aGlzIHZhbHVlIGhhcyBub3QgYmVlbgorICAgICAgICBtX25leHRCbG9ja0luZGV4XyAtLTsgIC8vIHJldHJpZXZlZCB5ZXQuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEZpbmRzIHRoZSBuZXh0IHN1cHBsZW1lbnRhcnkgZWxlbWVudC4KKyAgICAqIEZvciBlYWNoIGVudHJ5IGluIHRoZSB0cmllLCB0aGUgdmFsdWUgdG8gYmUgZGVsaXZlcmVkIGlzIHBhc3NlZCB0aHJvdWdoCisgICAgKiBleHRyYWN0KCkuCisgICAgKiBXZSBhbHdheXMgc3RvcmUgdGhlIG5leHQgZWxlbWVudCBiZWZvcmUgaXQgaXMgcmVxdWVzdGVkLgorICAgICogQ2FsbGVkIGFmdGVyIGNhbGN1bGF0ZU5leHRCTVAoKSBjb21wbGV0ZXMgaXRzIHJvdW5kIG9mIEJNUCBjaGFyYWN0ZXJzLgorICAgICogVGhlcmUgaXMgYSBzbGlnaHQgZGlmZmVyZW5jZSBpbiB0aGUgdXNhZ2Ugb2YgbV9jdXJyZW50Q29kZXBvaW50XworICAgICogaGVyZSBhcyBjb21wYXJlZCB0byBjYWxjdWxhdGVOZXh0Qk1QKCkuIFRob3VnaCBib3RoIHJlcHJlc2VudHMgdGhlCisgICAgKiBsb3dlciBib3VuZCBvZiB0aGUgbmV4dCBlbGVtZW50LCBpbiBjYWxjdWxhdGVOZXh0Qk1QKCkgaXQgZ2V0cyBzZXQKKyAgICAqIGF0IHRoZSBzdGFydCBvZiBhbnkgbG9vcCwgd2hlcmUtZWxzZSwgaW4gY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnkoKQorICAgICogc2luY2UgbV9jdXJyZW50Q29kZXBvaW50XyBhbHJlYWR5IGNvbnRhaW5zIHRoZSBsb3dlciBib3VuZCBvZiB0aGUKKyAgICAqIG5leHQgZWxlbWVudCAocGFzc2VkIGRvd24gZnJvbSBjYWxjdWxhdGVOZXh0Qk1QKCkpLCB3ZSBrZWVwIGl0IHRpbGwgCisgICAgKiB0aGUgZW5kIGJlZm9yZSByZXNldHRpbmcgaXQgdG8gdGhlIG5ldyB2YWx1ZS4KKyAgICAqIE5vdGUsIGlmIHRoZXJlIGFyZSBubyBtb3JlIGl0ZXJhdGlvbnMsIGl0IHdpbGwgbmV2ZXIgZ2V0IHRvIGhlcmUuIAorICAgICogQmxvY2tlZCBvdXQgYnkgbmV4dCgpLgorICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCBvYmplY3QKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjYWxjdWxhdGVOZXh0U3VwcGxlbWVudGFyeUVsZW1lbnQoRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaW50IGN1cnJlbnRWYWx1ZSA9IG1fbmV4dFZhbHVlXzsKKyAgICAgICAgaW50IGN1cnJlbnRCbG9jayA9IG1fbmV4dEJsb2NrXzsKKyAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArKzsKKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gKys7CisgICAgICAgIAorICAgICAgICBpZiAoVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUobV9uZXh0Q29kZXBvaW50XykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSkgeyAKKyAgICAgICAgICAgIC8vIHRoaXMgcGllY2UgaXMgb25seSBjYWxsZWQgd2hlbiB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxlYWQKKyAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBibG9jaworICAgICAgICAgICAgaWYgKCFjaGVja051bGxOZXh0VHJhaWxJbmRleCgpICYmICFjaGVja0Jsb2NrRGV0YWlsKGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgaGF2ZSBjbGVhcmVkIG9uZSBibG9jaworICAgICAgICAgICAgbV9uZXh0SW5kZXhfICsrOworICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gKys7CisgICAgICAgICAgICBpZiAoIWNoZWNrVHJhaWxCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBuZXh0TGVhZCAgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKG1fbmV4dENvZGVwb2ludF8pOworICAgICAgICAvLyBlbnVtZXJhdGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAgICB3aGlsZSAobmV4dExlYWQgPCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXykgeworICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgYWNjZXNzCisgICAgICAgICAgICBpbnQgbGVhZEJsb2NrID0gCisgICAgICAgICAgICAgICAgICAgbV90cmllXy5tX2luZGV4X1tuZXh0TGVhZCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgICAgICAgICBpZiAobGVhZEJsb2NrID09IG1fdHJpZV8ubV9kYXRhT2Zmc2V0XykgeworICAgICAgICAgICAgICAgIC8vIG5vIGVudHJpZXMgZm9yIGEgd2hvbGUgYmxvY2sgb2YgbGVhZCBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0VmFsdWVfICAgICAgPSBtX2luaXRpYWxWYWx1ZV87CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrXyAgICAgID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG5leHRMZWFkICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgdG90YWwgYWZmZWN0ZWQgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzIGluIG9uZQorICAgICAgICAgICAgICAgIC8vIGJsb2NrCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgYSBzaW1wbGUgYWRkaXRpb24gb2YgCisgICAgICAgICAgICAgICAgLy8gREFUQV9CTE9DS19TVVBQTEVNRU5UQVJZX0xFTkdUSCBzaW5jZSB3ZSBuZWVkIHRvIGNvbnNpZGVyCisgICAgICAgICAgICAgICAgLy8gdGhhdCB3ZSBtaWdodCBoYXZlIG1vdmVkIHNvbWUgb2YgdGhlIGNvZGVwb2ludHMKKyAgICAgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpbmV4dExlYWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKVVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdHJpZV8ubV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBlbnVtZXJhdGUgdHJhaWwgc3Vycm9nYXRlcyBmb3IgdGhpcyBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKyAgICAgICAgICAgIGlmIChtX25leHRJbmRleF8gPD0gMCkgeworICAgICAgICAgICAgICAgIC8vIG5vIGRhdGEgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgICAgICBtX25leHRWYWx1ZV8gICAgICA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tfICAgICAgPSAwOworICAgICAgICAgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gPSAwOworICAgICAgICAgICAgICAgIGlmICghY2hlY2tUcmFpbEJsb2NrKGN1cnJlbnRCbG9jaywgY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICBuZXh0TGVhZCArKzsKKyAgICAgICAgIH0KKworICAgICAgICAgLy8gZGVsaXZlciBsYXN0IHJhbmdlCisgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxLCAKKyAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogYWZ0ZXIgdGhlIGluZGV4IG1fbmV4dEJsb2NrSW5kZXhfIHRoYXQgaGFzIHRoZSBzYW1lIHZhbHVlLgorICAgICogTm90ZSBtXypfIHZhcmlhYmxlcyBhdCB0aGlzIHBvaW50IGlzIHRoZSBuZXh0IGNvZGVwb2ludCB3aG9zZSB2YWx1ZQorICAgICogaGFzIG5vdCBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBCdXQgd2hlbiByZXR1cm5lZCB3aXRoIGZhbHNlLCBpdCB3aWxsIGJlIHRoZSBsYXN0IGNvZGVwb2ludCB3aG9zZQorICAgICogdmFsdWUgaGFzIGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50VmFsdWUgdGhlIHZhbHVlIHdoaWNoIG90aGVyIGNvZGVwb2ludHMgYXJlIHRlc3RlZCBhZ2FpbnN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHdob2xlIGJsb2NrIGhhcyB0aGUgc2FtZSB2YWx1ZSBhcyBjdXJyZW50VmFsdWUgb3IgaWYKKyAgICAqICAgICAgICAgICAgICB0aGUgd2hvbGUgYmxvY2sgaGFzIGJlZW4gY2FsY3VsYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrQmxvY2tEZXRhaWwoaW50IGN1cnJlbnRWYWx1ZSkKKyAgICB7CisgICAgICAgIHdoaWxlIChtX25leHRCbG9ja0luZGV4XyA8IERBVEFfQkxPQ0tfTEVOR1RIXykgeworICAgICAgICAgICAgbV9uZXh0VmFsdWVfID0gZXh0cmFjdChtX3RyaWVfLmdldFZhbHVlKG1fbmV4dEJsb2NrXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfKSk7CisgICAgICAgICAgICBpZiAobV9uZXh0VmFsdWVfICE9IGN1cnJlbnRWYWx1ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrIG1fbmV4dEJsb2NrSW5kZXhfOworICAgICAgICAgICAgKysgbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogdGhhdCBoYXMgdGhlIHNhbWUgdmFsdWUuIAorICAgICogV2lsbCBjYWxsIGNoZWNrQmxvY2tEZXRhaWwoKSBpZiBoaWdobGV2ZWwgY2hlY2sgZmFpbHMuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0Jsb2NrKGludCBjdXJyZW50QmxvY2ssIGludCBjdXJyZW50VmFsdWUpIAorICAgIHsKKyAgICAgICAgbV9uZXh0QmxvY2tfID0gbV90cmllXy5tX2luZGV4X1ttX25leHRJbmRleF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICBpZiAobV9uZXh0QmxvY2tfID09IGN1cnJlbnRCbG9jayAmJgorICAgICAgICAgICAgKG1fbmV4dENvZGVwb2ludF8gLSBtX2N1cnJlbnRDb2RlcG9pbnRfKSA+PSBEQVRBX0JMT0NLX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIC8vIHRoZSBibG9jayBpcyB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgb25lLCBmaWxsZWQgd2l0aCAKKyAgICAgICAgICAgIC8vIGN1cnJlbnRWYWx1ZQorICAgICAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobV9uZXh0QmxvY2tfID09IDApIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrCisgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgIG1fbmV4dFZhbHVlXyAgICAgID0gbV9pbml0aWFsVmFsdWVfOworICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEludGVybmFsIGJsb2NrIHZhbHVlIGNhbGN1bGF0aW9ucworICAgICogUGVyZm9ybXMgY2FsY3VsYXRpb25zIG9uIG11bHRpcGxlIGRhdGEgYmxvY2tzIGZvciBhIHNldCBvZiB0cmFpbCAKKyAgICAqIHN1cnJvZ2F0ZXMgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXyB0aGF0IGhhcyB0aGUgc2FtZSB2YWx1ZS4gCisgICAgKiBXaWxsIGNhbGwgY2hlY2tCbG9jaygpIGZvciBpbnRlcm5hbCBibG9jayBjaGVja3MuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1RyYWlsQmxvY2soaW50IGN1cnJlbnRCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50VmFsdWUpCisgICAgeworICAgICAgICAvLyBlbnVtZXJhdGUgY29kZSBwb2ludHMgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgd2hpbGUgKG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfIDwgVFJBSUxfU1VSUk9HQVRFX0lOREVYX0JMT0NLX0xFTkdUSF8pIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBpZiB3ZSBldmVyIHJlYWNoIGhlcmUsIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgYSBuZXcgYmxvY2sKKyAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgIC8vIGNvcHkgb2YgbW9zdCBvZiB0aGUgYm9keSBvZiB0aGUgQk1QIGxvb3AKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRUcmFpbEluZGV4T2Zmc2V0XyArKzsKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBDaGVja3MgaWYgd2UgYXJlIGJlZ2lubmluZyBhdCB0aGUgc3RhcnQgb2YgYSBpbml0aWFsIGJsb2NrLgorICAgICogSWYgd2UgYXJlIHRoZW4gdGhlIHJlc3Qgb2YgdGhlIGNvZGVwb2ludHMgaW4gdGhpcyBpbml0aWFsIGJsb2NrCisgICAgKiBoYXMgdGhlIHNhbWUgdmFsdWVzLgorICAgICogV2UgaW5jcmVtZW50IG1fbmV4dENvZGVwb2ludF8gYW5kIHJlbGV2YW50IGRhdGEgbWVtYmVycyBpZiBzby4KKyAgICAqIFRoaXMgaXMgdXNlZCBvbmx5IGluIGZvciB0aGUgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzIGJlY2F1c2UKKyAgICAqIHRoZSBvZmZzZXQgdG8gdGhlIHRyYWlsIGluZGV4ZXMgY291bGQgYmUgMC4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgaW5pdGlhbCBibG9jay4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja051bGxOZXh0VHJhaWxJbmRleCgpCisgICAgeworICAgICAgICBpZiAobV9uZXh0SW5kZXhfIDw9IDApIHsKKyAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyAtIDE7CisgICAgICAgICAgICBpbnQgbmV4dExlYWQgID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShtX25leHRDb2RlcG9pbnRfKTsKKyAgICAgICAgICAgIGludCBsZWFkQmxvY2sgPSAKKyAgICAgICAgICAgICAgICAgICBtX3RyaWVfLm1faW5kZXhfW25leHRMZWFkID4+IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgICAgIGlmIChtX3RyaWVfLm1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyAtLTsKKyAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gIERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBzdGFnZSAxIEJNUCBpbmRleGVzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAgPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAvKioKKyAgICAqIExlYWQgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUVfID0gMHhEODAwOworICAgIC8qKgorICAgICogVHJhaWwgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXyA9IDB4REMwMDsKKyAgICAvKioKKyAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRV8gPSAweERGRkY7CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgdHJhaWwgc3Vycm9nYXRlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyA9IDB4NDAwOworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHN0YWdlIDEgaW5kZXhlcyBmb3Igc3VwcGxlbWVudGFyeSBjYWxjdWxhdGlvbnMgdGhhdCBtYXBzIHRvCisgICAgKiBlYWNoIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIFNlZSBzZWNvbmQgcGFzcyBpbnRvIGdldFJhd09mZnNldCBmb3IgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiAxMCBmb3Igc2lnbmlmaWNhbnQgbnVtYmVyIG9mIGJpdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMsIDUgZm9yIHdoYXQgd2UKKyAgICAqIGRpc2NhcmQgZHVyaW5nIHNoaWZ0aW5nLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgKDEwIC0gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyk7CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgZGF0YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX0xFTkdUSF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIHN0YWdlIDIgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX1NVUFBMRU1FTlRBUllfTEVOR1RIXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQ0tfTEVOR1RIXyA8PCAxMDsKKyAgICAvKioKKyAgICAqIFRyaWUgaW5zdGFuY2UKKyAgICAqLworICAgIHByaXZhdGUgVHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICogSW5pdGlhbCB2YWx1ZSBmb3IgdHJpZSB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgaW50IG1faW5pdGlhbFZhbHVlXzsKKyAgICAvKioKKyAgICAqIE5leHQgZWxlbWVudCByZXN1bHRzIGFuZCBkYXRhLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50Q29kZXBvaW50XzsKKyAgICBwcml2YXRlIGludCBtX25leHRDb2RlcG9pbnRfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFZhbHVlXzsKKyAgICBwcml2YXRlIGludCBtX25leHRJbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0QmxvY2tfOworICAgIHByaXZhdGUgaW50IG1fbmV4dEJsb2NrSW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfOworICAgIC8qKgorICAgICogVGhpcyBpcyB0aGUgcmV0dXJuIHJlc3VsdCBlbGVtZW50CisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICBwcml2YXRlIGludCBtX2xpbWl0XzsKKyAgICBwcml2YXRlIGludCBtX3ZhbHVlXzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWIzMDAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUJpRGlQcm9wcy5qYXZhCkBAIC0wLDAgKzEsMzMzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgVUJpRGlQcm9wcy5qYXZhCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNWphbjE2CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBMb3ctbGV2ZWwgVW5pY29kZSBiaWRpL3NoYXBpbmcgcHJvcGVydGllcyBhY2Nlc3MuCisqICAgSmF2YSBwb3J0IG9mIHViaWRpX3Byb3BzLmgvLmMuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworCitwdWJsaWMgZmluYWwgY2xhc3MgVUJpRGlQcm9wcyB7CisgICAgLy8gY29uc3RydWN0b3JzIGV0Yy4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLy8gcG9ydCBvZiB1YmlkaV9vcGVuUHJvcHMoKQorICAgIHB1YmxpYyBVQmlEaVByb3BzKCkgdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBJbnB1dFN0cmVhbSBpcz1JQ1VEYXRhLmdldFN0cmVhbShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYj1uZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgNDA5NiAvKiBkYXRhIGJ1ZmZlciBzaXplICovKTsKKyAgICAgICAgcmVhZERhdGEoYik7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgaXMuY2xvc2UoKTsKKworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0U3RyZWFtPW5ldyBEYXRhSW5wdXRTdHJlYW0oaXMpOworCisgICAgICAgIC8vIHJlYWQgdGhlIGhlYWRlcgorICAgICAgICB1bmljb2RlVmVyc2lvbj1JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgRk1ULCBuZXcgSXNBY2NlcHRhYmxlKCkpOworCisgICAgICAgIC8vIHJlYWQgaW5kZXhlc1tdCisgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAgICAgY291bnQ9aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpZihjb3VudDxJWF9JTkRFWF9UT1ApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiaW5kZXhlc1swXSB0b28gc21hbGwgaW4gIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXhlcz1uZXcgaW50W2NvdW50XTsKKworICAgICAgICBpbmRleGVzWzBdPWNvdW50OworICAgICAgICBmb3IoaT0xOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZQorICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbnB1dFN0cmVhbSwgbnVsbCk7CisKKyAgICAgICAgLy8gcmVhZCBtaXJyb3JzW10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9NSVJST1JfTEVOR1RIXTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgbWlycm9ycz1uZXcgaW50W2NvdW50XTsKKyAgICAgICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIG1pcnJvcnNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCBqZ0FycmF5W10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9KR19MSU1JVF0taW5kZXhlc1tJWF9KR19TVEFSVF07CisgICAgICAgIGpnQXJyYXk9bmV3IGJ5dGVbY291bnRdOworICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGpnQXJyYXlbaV09aW5wdXRTdHJlYW0ucmVhZEJ5dGUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGltcGxlbWVudCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBJc0FjY2VwdGFibGUgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pIHsKKyAgICAgICAgICAgIGZvcm1hdFZlcnNpb249dmVyc2lvbjsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdPT0xICYmCisgICAgICAgICAgICAgICAgICAgdmVyc2lvblsyXT09VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyAmJiB2ZXJzaW9uWzNdPT1UcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVUJpRGlQcm9wcyBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQmlEaVByb3BzIGdCZHA9bnVsbDsKKworICAgIC8vIHBvcnQgb2YgdWJpZGlfZ2V0U2luZ2xldG9uKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQmlEaVByb3BzIGdldFNpbmdsZXRvbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKGdCZHA9PW51bGwpIHsKKyAgICAgICAgICAgIGdCZHA9bmV3IFVCaURpUHJvcHMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0JkcDsKKyAgICB9CisKKyAgICAvLyBVQmlEaVByb3BzIGR1bW15IHNpbmdsZXRvbgorICAgIHByaXZhdGUgc3RhdGljIFVCaURpUHJvcHMgZ0JkcER1bW15PW51bGw7CisKKyAgICBwcml2YXRlIFVCaURpUHJvcHMoYm9vbGVhbiBtYWtlRHVtbXkpIHsgLy8gaWdub3JlIG1ha2VEdW1teSwgb25seSBjcmVhdGVzIGEgdW5pcXVlIHNpZ25hdHVyZQorICAgICAgICBmb3JtYXRWZXJzaW9uPW5ldyBieXRlW10geyAxLCAwLCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfIH07CisgICAgICAgIHVuaWNvZGVWZXJzaW9uPW5ldyBieXRlW10geyAyLCAwLCAwLCAwIH07CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtJWF9UT1BdOworICAgICAgICBpbmRleGVzWzBdPUlYX1RPUDsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoMCwgMCwgbnVsbCk7IC8vIGR1bW15IHRyaWUsIGFsd2F5cyByZXR1cm5zIDAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBzaW5nbGV0b24gZHVtbXkgb2JqZWN0LCBvbmUgdGhhdCB3b3JrcyB3aXRoIG5vIHJlYWwgZGF0YS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHJlYWwgZGF0YSBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqIFVzaW5nIHRoZSBkdW1teSBjYW4gcmVkdWNlIGNoZWNrcyBmb3IgYXZhaWxhYmxlIGRhdGEgYWZ0ZXIgYW4gaW5pdGlhbCBmYWlsdXJlLgorICAgICAqIFBvcnQgb2YgdWNhc2VfZ2V0RHVtbXkoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQmlEaVByb3BzIGdldER1bW15KCkgeworICAgICAgICBpZihnQmRwRHVtbXk9PW51bGwpIHsKKyAgICAgICAgICAgIGdCZHBEdW1teT1uZXcgVUJpRGlQcm9wcyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0JkcER1bW15OworICAgIH0KKworICAgIC8vIHNldCBvZiBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgICAgIGludCBjLCBzdGFydCwgbGltaXQ7CisKKyAgICAgICAgYnl0ZSBwcmV2LCBqZzsKKworICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIHRoZSB0cmllICovCisgICAgICAgIFRyaWVJdGVyYXRvciBpdGVyPW5ldyBUcmllSXRlcmF0b3IodHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQ9bmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisKKyAgICAgICAgd2hpbGUoaXRlci5uZXh0KGVsZW1lbnQpKXsKKyAgICAgICAgICAgIHNldC5hZGQoZWxlbWVudC5zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgdGhlIGNvZGUgcG9pbnRzIGZyb20gdGhlIGJpZGkgbWlycm9yaW5nIHRhYmxlICovCisgICAgICAgIGxlbmd0aD1pbmRleGVzW0lYX01JUlJPUl9MRU5HVEhdOworICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjPWdldE1pcnJvckNvZGVQb2ludChtaXJyb3JzW2ldKTsKKyAgICAgICAgICAgIHNldC5hZGQoYywgYysxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGFkZCB0aGUgY29kZSBwb2ludHMgZnJvbSB0aGUgSm9pbmluZ19Hcm91cCBhcnJheSB3aGVyZSB0aGUgdmFsdWUgY2hhbmdlcyAqLworICAgICAgICBzdGFydD1pbmRleGVzW0lYX0pHX1NUQVJUXTsKKyAgICAgICAgbGltaXQ9aW5kZXhlc1tJWF9KR19MSU1JVF07CisgICAgICAgIGxlbmd0aD1saW1pdC1zdGFydDsKKyAgICAgICAgcHJldj0wOworICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBqZz1qZ0FycmF5W2ldOworICAgICAgICAgICAgaWYoamchPXByZXYpIHsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBwcmV2PWpnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgfQorICAgICAgICBpZihwcmV2IT0wKSB7CisgICAgICAgICAgICAvKiBhZGQgdGhlIGxpbWl0IGNvZGUgcG9pbnQgaWYgdGhlIGxhc3QgdmFsdWUgd2FzIG5vdCAwIChpdCBpcyBub3cgc3RhcnQ9PWxpbWl0KSAqLworICAgICAgICAgICAgc2V0LmFkZChsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgY29kZSBwb2ludHMgd2l0aCBoYXJkY29kZWQgcHJvcGVydGllcywgcGx1cyB0aGUgb25lcyBmb2xsb3dpbmcgdGhlbSAqLworCisgICAgICAgIC8qIChub25lIHJpZ2h0IG5vdykgKi8KKyAgICB9CisKKyAgICAvLyBwcm9wZXJ0eSBhY2Nlc3MgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1heFZhbHVlKGludCB3aGljaCkgeworICAgICAgICBpbnQgbWF4OworCisgICAgICAgIG1heD1pbmRleGVzW0lYX01BWF9WQUxVRVNdOworICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgIHJldHVybiAobWF4JkNMQVNTX01BU0spOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQOgorICAgICAgICAgICAgcmV0dXJuIChtYXgmTUFYX0pHX01BU0spPj5NQVhfSkdfU0hJRlQ7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfVFlQRToKKyAgICAgICAgICAgIHJldHVybiAobWF4JkpUX01BU0spPj5KVF9TSElGVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAtMTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldENsYXNzKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRDbGFzc0Zyb21Qcm9wcyh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc01pcnJvcmVkKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRGbGFnRnJvbVByb3BzKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyksIElTX01JUlJPUkVEX1NISUZUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1pcnJvcihpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM7CisgICAgICAgIGludCBkZWx0YTsKKworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBkZWx0YT0oKHNob3J0KXByb3BzKT4+TUlSUk9SX0RFTFRBX1NISUZUOworICAgICAgICBpZihkZWx0YSE9RVNDX01JUlJPUl9ERUxUQSkgeworICAgICAgICAgICAgcmV0dXJuIGMrZGVsdGE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBsb29rIGZvciBtaXJyb3IgY29kZSBwb2ludCBpbiB0aGUgbWlycm9yc1tdIHRhYmxlICovCisgICAgICAgICAgICBpbnQgbTsKKyAgICAgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgICAgICAgICBpbnQgYzI7CisKKyAgICAgICAgICAgIGxlbmd0aD1pbmRleGVzW0lYX01JUlJPUl9MRU5HVEhdOworCisgICAgICAgICAgICAvKiBsaW5lYXIgc2VhcmNoICovCisgICAgICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgbT1taXJyb3JzW2ldOworICAgICAgICAgICAgICAgIGMyPWdldE1pcnJvckNvZGVQb2ludChtKTsKKyAgICAgICAgICAgICAgICBpZihjPT1jMikgeworICAgICAgICAgICAgICAgICAgICAvKiBmb3VuZCBjLCByZXR1cm4gaXRzIG1pcnJvciBjb2RlIHBvaW50IHVzaW5nIHRoZSBpbmRleCBpbiBtICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRNaXJyb3JDb2RlUG9pbnQobWlycm9yc1tnZXRNaXJyb3JJbmRleChtKV0pOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPGMyKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYyBub3QgZm91bmQsIHJldHVybiBpdCBpdHNlbGYgKi8KKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNCaWRpQ29udHJvbChpbnQgYykgeworICAgICAgICByZXR1cm4gZ2V0RmxhZ0Zyb21Qcm9wcyh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpLCBCSURJX0NPTlRST0xfU0hJRlQpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzSm9pbkNvbnRyb2woaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGdldEZsYWdGcm9tUHJvcHModHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSwgSk9JTl9DT05UUk9MX1NISUZUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEpvaW5pbmdUeXBlKGludCBjKSB7CisgICAgICAgIHJldHVybiAodHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSZKVF9NQVNLKT4+SlRfU0hJRlQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRKb2luaW5nR3JvdXAoaW50IGMpIHsKKyAgICAgICAgaW50IHN0YXJ0LCBsaW1pdDsKKworICAgICAgICBzdGFydD1pbmRleGVzW0lYX0pHX1NUQVJUXTsKKyAgICAgICAgbGltaXQ9aW5kZXhlc1tJWF9KR19MSU1JVF07CisgICAgICAgIGlmKHN0YXJ0PD1jICYmIGM8bGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KWpnQXJyYXlbYy1zdGFydF0mMHhmZjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5OT19KT0lOSU5HX0dST1VQOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorICAgIHByaXZhdGUgaW50IGluZGV4ZXNbXTsKKyAgICBwcml2YXRlIGludCBtaXJyb3JzW107CisgICAgcHJpdmF0ZSBieXRlIGpnQXJyYXlbXTsKKworICAgIHByaXZhdGUgQ2hhclRyaWUgdHJpZTsKKyAgICBwcml2YXRlIGJ5dGUgZm9ybWF0VmVyc2lvbltdOworICAgIHByaXZhdGUgYnl0ZSB1bmljb2RlVmVyc2lvbltdOyAgCisKKyAgICAvLyBkYXRhIGZvcm1hdCBjb25zdGFudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRT0idWJpZGkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1RZUEU9ImljdSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FPURBVEFfTkFNRSsiLiIrREFUQV9UWVBFOworCisgICAgLyogZm9ybWF0ICJCaURpIiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgRk1UW109eyAweDQyLCAweDY5LCAweDQ0LCAweDY5IH07CisKKyAgICAvKiBpbmRleGVzIGludG8gaW5kZXhlc1tdICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX0lOREVYX1RPUD0wOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9MRU5HVEg9MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfVFJJRV9TSVpFPTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX01JUlJPUl9MRU5HVEg9MzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9KR19TVEFSVD00OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9KR19MSU1JVD01OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX01BWF9WQUxVRVM9MTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RPUD0xNjsKKworICAgIC8vIGRlZmluaXRpb25zIGZvciAxNi1iaXQgYmlkaS9zaGFwaW5nIHByb3BlcnRpZXMgd29yZCAtLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDTEFTU19TSElGVD0wLCAqLyAgICAgLyogYmlkaSBjbGFzczogNSBiaXRzICg0Li4wKSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVF9TSElGVD01OyAgICAgICAgICAgLyogam9pbmluZyB0eXBlOiAzIGJpdHMgKDcuLjUpICovCisKKyAgICAvKiBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgX1NISUZUPTgsIHJlc2VydmVkOiAyIGJpdHMgKDkuLjgpICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSk9JTl9DT05UUk9MX1NISUZUPTEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSURJX0NPTlRST0xfU0hJRlQ9MTE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVNfTUlSUk9SRURfU0hJRlQ9MTI7ICAgICAgICAgLyogJ2lzIG1pcnJvcmVkJyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSVJST1JfREVMVEFfU0hJRlQ9MTM7ICAgICAgICAvKiBiaWRpIG1pcnJvcmluZyBkZWx0YTogMyBiaXRzICgxNS4uMTMpICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0pHX1NISUZUPTE2OyAgICAgICAgICAgICAgLyogbWF4IEpHIHZhbHVlIGluIGluZGV4ZXNbTUFYX1ZBTFVFU19JTkRFWF0gYml0cyAyMy4uMTYgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTEFTU19NQVNLPSAgICAweDAwMDAwMDFmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKVF9NQVNLPSAgICAgICAweDAwMDAwMGUwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9KR19NQVNLPSAgIDB4MDBmZjAwMDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q2xhc3NGcm9tUHJvcHMoaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiBwcm9wcyZDTEFTU19NQVNLOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGdldEZsYWdGcm9tUHJvcHMoaW50IHByb3BzLCBpbnQgc2hpZnQpIHsKKyAgICAgICAgcmV0dXJuICgocHJvcHM+PnNoaWZ0KSYxKSE9MDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVNDX01JUlJPUl9ERUxUQT0tNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX01JUlJPUl9ERUxUQT0tMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX01JUlJPUl9ERUxUQT0zOworCisgICAgLy8gZGVmaW5pdGlvbnMgZm9yIDMyLWJpdCBtaXJyb3IgdGFibGUgZW50cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyogdGhlIHNvdXJjZSBVbmljb2RlIGNvZGUgcG9pbnQgdGFrZXMgMjEgYml0cyAoMjAuLjApICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JUlJPUl9JTkRFWF9TSElGVD0yMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX01JUlJPUl9JTkRFWD0weDdmZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRNaXJyb3JDb2RlUG9pbnQoaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIG0mMHgxZmZmZmY7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRNaXJyb3JJbmRleChpbnQgbSkgeworICAgICAgICByZXR1cm4gbT4+Pk1JUlJPUl9JTkRFWF9TSElGVDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwYWE5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDYXNlUHJvcHMuamF2YQpAQCAtMCwwICsxLDE0MDYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICBVQ2FzZVByb3BzLmphdmEKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1amFuMjkKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIExvdy1sZXZlbCBVbmljb2RlIGNoYXJhY3Rlci9zdHJpbmcgY2FzZSBtYXBwaW5nIGNvZGUuCisqICAgSmF2YSBwb3J0IG9mIHVjYXNlLmgvLmMuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2FzZVByb3BzIHsKKyAgICAvLyBjb25zdHJ1Y3RvcnMgZXRjLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvLyBwb3J0IG9mIHVjYXNlX29wZW5Qcm9wcygpCisgICAgcHVibGljIFVDYXNlUHJvcHMoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpcz1JQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi8iK0RBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiPW5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCA0MDk2IC8qIGRhdGEgYnVmZmVyIHNpemUgKi8pOworICAgICAgICByZWFkRGF0YShiKTsKKyAgICAgICAgYi5jbG9zZSgpOworICAgICAgICBpcy5jbG9zZSgpOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0U3RyZWFtPW5ldyBEYXRhSW5wdXRTdHJlYW0oaXMpOworCisgICAgICAgIC8vIHJlYWQgdGhlIGhlYWRlcgorICAgICAgICB1bmljb2RlVmVyc2lvbj1JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgRk1ULCBuZXcgSXNBY2NlcHRhYmxlKCkpOworCisgICAgICAgIC8vIHJlYWQgaW5kZXhlc1tdCisgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAgICAgY291bnQ9aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpZihjb3VudDxJWF9JTkRFWF9UT1ApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiaW5kZXhlc1swXSB0b28gc21hbGwgaW4gIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXhlcz1uZXcgaW50W2NvdW50XTsKKworICAgICAgICBpbmRleGVzWzBdPWNvdW50OworICAgICAgICBmb3IoaT0xOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZQorICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbnB1dFN0cmVhbSwgbnVsbCk7CisKKyAgICAgICAgLy8gcmVhZCBleGNlcHRpb25zW10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9FWENfTEVOR1RIXTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgZXhjZXB0aW9ucz1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBleGNlcHRpb25zW2ldPWlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyByZWFkIHVuZm9sZFtdCisgICAgICAgIGNvdW50PWluZGV4ZXNbSVhfVU5GT0xEX0xFTkdUSF07CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIHVuZm9sZD1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bmZvbGRbaV09aW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGltcGxlbWVudCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBJc0FjY2VwdGFibGUgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pIHsKKyAgICAgICAgICAgIGZvcm1hdFZlcnNpb249dmVyc2lvbjsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdPT0xICYmCisgICAgICAgICAgICAgICAgICAgdmVyc2lvblsyXT09VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyAmJiB2ZXJzaW9uWzNdPT1UcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVUNhc2VQcm9wcyBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQ2FzZVByb3BzIGdDc3A9bnVsbDsKKworICAgIC8vIHBvcnQgb2YgdWNhc2VfZ2V0U2luZ2xldG9uKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldFNpbmdsZXRvbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKGdDc3A9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3A9bmV3IFVDYXNlUHJvcHMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcDsKKyAgICB9CisKKyAgICAvLyBVQ2FzZVByb3BzIGR1bW15IHNpbmdsZXRvbgorICAgIHByaXZhdGUgc3RhdGljIFVDYXNlUHJvcHMgZ0NzcER1bW15PW51bGw7CisKKyAgICBwcml2YXRlIFVDYXNlUHJvcHMoYm9vbGVhbiBtYWtlRHVtbXkpIHsgLy8gaWdub3JlIG1ha2VEdW1teSwgb25seSBjcmVhdGVzIGEgdW5pcXVlIHNpZ25hdHVyZQorICAgICAgICBmb3JtYXRWZXJzaW9uPW5ldyBieXRlW10geyAxLCAwLCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfIH07CisgICAgICAgIHVuaWNvZGVWZXJzaW9uPW5ldyBieXRlW10geyAyLCAwLCAwLCAwIH07CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtJWF9UT1BdOworICAgICAgICBpbmRleGVzWzBdPUlYX1RPUDsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoMCwgMCwgbnVsbCk7IC8vIGR1bW15IHRyaWUsIGFsd2F5cyByZXR1cm5zIDAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBzaW5nbGV0b24gZHVtbXkgb2JqZWN0LCBvbmUgdGhhdCB3b3JrcyB3aXRoIG5vIHJlYWwgZGF0YS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHJlYWwgZGF0YSBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqIFVzaW5nIHRoZSBkdW1teSBjYW4gcmVkdWNlIGNoZWNrcyBmb3IgYXZhaWxhYmxlIGRhdGEgYWZ0ZXIgYW4gaW5pdGlhbCBmYWlsdXJlLgorICAgICAqIFBvcnQgb2YgdWNhc2VfZ2V0RHVtbXkoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldER1bW15KCkgeworICAgICAgICBpZihnQ3NwRHVtbXk9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3BEdW1teT1uZXcgVUNhc2VQcm9wcyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcER1bW15OworICAgIH0KKworICAgIC8vIHNldCBvZiBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCBvZiBlYWNoIHNhbWUtdmFsdWUgcmFuZ2Ugb2YgdGhlIHRyaWUgKi8KKyAgICAgICAgVHJpZUl0ZXJhdG9yIGl0ZXI9bmV3IFRyaWVJdGVyYXRvcih0cmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudD1uZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKworICAgICAgICB3aGlsZShpdGVyLm5leHQoZWxlbWVudCkpeworICAgICAgICAgICAgc2V0LmFkZChlbGVtZW50LnN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGFkZCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBwcm9wZXJ0aWVzLCBwbHVzIHRoZSBvbmVzIGZvbGxvd2luZyB0aGVtICovCisKKyAgICAgICAgLyogKG5vbmUgcmlnaHQgbm93LCBzZWUgY29tbWVudCBiZWxvdykgKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBPbWl0IGNvZGUgcG9pbnRzIHdpdGggaGFyZGNvZGVkIHNwZWNpYWxjYXNpbmcgcHJvcGVydGllcworICAgICAgICAgKiBiZWNhdXNlIHdlIGRvIG5vdCBidWlsZCBwcm9wZXJ0eSBVbmljb2RlU2V0cyBmb3IgdGhlbSByaWdodCBub3cuCisgICAgICAgICAqLworICAgIH0KKworICAgIC8vIGRhdGEgYWNjZXNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0RXhjZXB0aW9uc09mZnNldChpbnQgcHJvcHMpIHsKKyAgICAgICAgcmV0dXJuIHByb3BzPj5FWENfU0hJRlQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBwcm9wc0hhc0V4Y2VwdGlvbihpbnQgcHJvcHMpIHsKKyAgICAgICAgcmV0dXJuIChwcm9wcyZFWENFUFRJT04pIT0wOworICAgIH0KKworICAgIC8qIG51bWJlciBvZiBiaXRzIGluIGFuIDgtYml0IGludGVnZXIgdmFsdWUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGZsYWdzT2Zmc2V0Wy8qMjU2Ki9dPXsKKyAgICAgICAgMCwgMSwgMSwgMiwgMSwgMiwgMiwgMywgMSwgMiwgMiwgMywgMiwgMywgMywgNCwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMSwgMiwgMiwgMywgMiwgMywgMywgNCwgMiwgMywgMywgNCwgMywgNCwgNCwgNSwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMiwgMywgMywgNCwgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgMywgNCwgNCwgNSwgNCwgNSwgNSwgNiwgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywKKyAgICAgICAgNCwgNSwgNSwgNiwgNSwgNiwgNiwgNywgNSwgNiwgNiwgNywgNiwgNywgNywgOAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGhhc1Nsb3QoaW50IGZsYWdzLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIChmbGFncyYoMTw8aW5kZXgpKSE9MDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBzbG90T2Zmc2V0KGludCBmbGFncywgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBmbGFnc09mZnNldFtmbGFncyYoKDE8PGluZGV4KS0xKV07CisgICAgfQorCisgICAgLyoKKyAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbmFsLXZhbHVlIHNsb3Qgd2hlcmUgaGFzU2xvdChleGNXb3JkLCBpbmRleCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXhjV29yZCAoaW4pIGluaXRpYWwgZXhjZXB0aW9ucyB3b3JkCisgICAgICogQHBhcmFtIGluZGV4IChpbikgZGVzaXJlZCBzbG90IGluZGV4CisgICAgICogQHBhcmFtIGV4Y09mZnNldCAoaW4pIG9mZnNldCBpbnRvIGV4Y2VwdGlvbnNbXSBhZnRlciBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAqIEByZXR1cm4gYml0cyAzMS4uMDogc2xvdCB2YWx1ZQorICAgICAqICAgICAgICAgICAgIDYzLi4zMjogbW9kaWZpZWQgZXhjT2Zmc2V0LCBtb3ZlZCB0byB0aGUgbGFzdCBjaGFyIG9mIHRoZSB2YWx1ZSwgdXNlICsxIGZvciBiZWdpbm5pbmcgb2YgbmV4dCBzbG90IAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgbG9uZyBnZXRTbG90VmFsdWVBbmRPZmZzZXQoaW50IGV4Y1dvcmQsIGludCBpbmRleCwgaW50IGV4Y09mZnNldCkgeworICAgICAgICBsb25nIHZhbHVlOworICAgICAgICBpZigoZXhjV29yZCZFWENfRE9VQkxFX1NMT1RTKT09MCkgeworICAgICAgICAgICAgZXhjT2Zmc2V0Kz1zbG90T2Zmc2V0KGV4Y1dvcmQsIGluZGV4KTsKKyAgICAgICAgICAgIHZhbHVlPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0XTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGV4Y09mZnNldCs9MipzbG90T2Zmc2V0KGV4Y1dvcmQsIGluZGV4KTsKKyAgICAgICAgICAgIHZhbHVlPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgdmFsdWU9KHZhbHVlPDwxNil8ZXhjZXB0aW9uc1tleGNPZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiAobG9uZyl2YWx1ZXwoKGxvbmcpZXhjT2Zmc2V0PDwzMik7CisgICAgfQorCisgICAgLyogc2FtZSBhcyBnZXRTbG90VmFsdWVBbmRPZmZzZXQoKSBidXQgZG9lcyBub3QgcmV0dXJuIHRoZSBzbG90IG9mZnNldCAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFNsb3RWYWx1ZShpbnQgZXhjV29yZCwgaW50IGluZGV4LCBpbnQgZXhjT2Zmc2V0KSB7CisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0RPVUJMRV9TTE9UUyk9PTApIHsKKyAgICAgICAgICAgIGV4Y09mZnNldCs9c2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBleGNPZmZzZXQrPTIqc2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIHZhbHVlPSh2YWx1ZTw8MTYpfGV4Y2VwdGlvbnNbZXhjT2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLy8gc2ltcGxlIGNhc2UgbWFwcGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgcHVibGljIGZpbmFsIGludCB0b2xvd2VyKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19MT1dFUikpIHsKKyAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBFWENfTE9XRVIsIGV4Y09mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b3VwcGVyKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT09TE9XRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19VUFBFUikpIHsKKyAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBFWENfVVBQRVIsIGV4Y09mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b3RpdGxlKGludCBjKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT09TE9XRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgaW5kZXg7CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19USVRMRSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfVElUTEU7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVVBQRVIpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1VQUEVSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYWxsIHNpbXBsZSBjYXNlIG1hcHBpbmdzIGFuZCB0aGUgZnVsbCBjYXNlIGZvbGRpbmcgZm9yIGMgdG8gc2EsCisgICAgICogYW5kIGFsc28gYWRkcyBzcGVjaWFsIGNhc2UgY2xvc3VyZSBtYXBwaW5ncy4KKyAgICAgKiBjIGl0c2VsZiBpcyBub3QgYWRkZWQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBtYXBwaW5ncworICAgICAqIC0gZm9yIHMgaW5jbHVkZSBsb25nIHMKKyAgICAgKiAtIGZvciBzaGFycCBzIGluY2x1ZGUgc3MKKyAgICAgKiAtIGZvciBrIGluY2x1ZGUgdGhlIEtlbHZpbiBzaWduCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgYWRkQ2FzZUNsb3N1cmUoaW50IGMsIFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qCisgICAgICAgICAqIEhhcmRjb2RlIHRoZSBjYXNlIGNsb3N1cmUgb2YgaSBhbmQgaXRzIHJlbGF0aXZlcyBhbmQgaWdub3JlIHRoZQorICAgICAgICAgKiBkYXRhIGZpbGUgZGF0YSBmb3IgdGhlc2UgY2hhcmFjdGVycy4KKyAgICAgICAgICogVGhlIFR1cmtpYyBkb3RsZXNzIGkgYW5kIGRvdHRlZCBJIHdpdGggdGhlaXIgY2FzZSBtYXBwaW5nIGNvbmRpdGlvbnMKKyAgICAgICAgICogYW5kIGNhc2UgZm9sZGluZyBvcHRpb24gbWFrZSB0aGUgcmVsYXRlZCBjaGFyYWN0ZXJzIGJlaGF2ZSBzcGVjaWFsbHkuCisgICAgICAgICAqIFRoaXMgY29kZSBtYXRjaGVzIHRoZWlyIGNsb3N1cmUgYmVoYXZpb3IgdG8gdGhlaXIgY2FzZSBmb2xkaW5nIGJlaGF2aW9yLgorICAgICAgICAgKi8KKworICAgICAgICBzd2l0Y2goYykgeworICAgICAgICBjYXNlIDB4NDk6CisgICAgICAgICAgICAvKiByZWd1bGFyIGkgYW5kIEkgYXJlIGluIG9uZSBlcXVpdmFsZW5jZSBjbGFzcyAqLworICAgICAgICAgICAgc2V0LmFkZCgweDY5KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDY5OgorICAgICAgICAgICAgc2V0LmFkZCgweDQ5KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDEzMDoKKyAgICAgICAgICAgIC8qIGRvdHRlZCBJIGlzIGluIGEgY2xhc3Mgd2l0aCA8MDA2OSAwMzA3PiAoZm9yIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSB3aXRoIDwwMDQ5IDAzMDc+KSAqLworICAgICAgICAgICAgc2V0LmFkZChpRG90KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAweDEzMToKKyAgICAgICAgICAgIC8qIGRvdGxlc3MgaSBpcyBpbiBhIGNsYXNzIGJ5IGl0c2VsZiAqLworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLyogb3RoZXJ3aXNlIHVzZSB0aGUgZGF0YSBmaWxlIGRhdGEgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpIT1OT05FKSB7CisgICAgICAgICAgICAgICAgLyogYWRkIHRoZSBvbmUgc2ltcGxlIGNhc2UgbWFwcGluZywgbm8gbWF0dGVyIHdoYXQgdHlwZSBpdCBpcyAqLworICAgICAgICAgICAgICAgIGludCBkZWx0YT1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICAgICAgaWYoZGVsdGEhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjK2RlbHRhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogYyBoYXMgZXhjZXB0aW9ucywgc28gdGhlcmUgbWF5IGJlIG11bHRpcGxlIHNpbXBsZSBhbmQvb3IKKyAgICAgICAgICAgICAqIGZ1bGwgY2FzZSBtYXBwaW5ncy4gQWRkIHRoZW0gYWxsLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0MCwgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGNsb3N1cmVPZmZzZXQ7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBpbmRleCwgY2xvc3VyZUxlbmd0aCwgZnVsbExlbmd0aCwgbGVuZ3RoOworCisgICAgICAgICAgICBleGNPZmZzZXQwPWV4Y09mZnNldDsKKworICAgICAgICAgICAgLyogYWRkIGFsbCBzaW1wbGUgY2FzZSBtYXBwaW5ncyAqLworICAgICAgICAgICAgZm9yKGluZGV4PUVYQ19MT1dFUjsgaW5kZXg8PUVYQ19USVRMRTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgaW5kZXgpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4Y09mZnNldD1leGNPZmZzZXQwOworICAgICAgICAgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGdldCB0aGUgY2xvc3VyZSBzdHJpbmcgcG9pbnRlciAmIGxlbmd0aCAqLworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfQ0xPU1VSRSkpIHsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQ9ZXhjT2Zmc2V0MDsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfQ0xPU1VSRSwgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBjbG9zdXJlTGVuZ3RoPShpbnQpdmFsdWUmQ0xPU1VSRV9NQVhfTEVOR1RIOyAvKiBoaWdoZXIgYml0cyBhcmUgcmVzZXJ2ZWQgKi8KKyAgICAgICAgICAgICAgICBjbG9zdXJlT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsgLyogYmVoaW5kIHRoaXMgc2xvdCwgdW5sZXNzIHRoZXJlIGFyZSBmdWxsIGNhc2UgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2xvc3VyZUxlbmd0aD0wOworICAgICAgICAgICAgICAgIGNsb3N1cmVPZmZzZXQ9MDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYWRkIHRoZSBmdWxsIGNhc2UgZm9sZGluZyAqLworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQ9ZXhjT2Zmc2V0MDsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoPShpbnQpdmFsdWU7CisKKyAgICAgICAgICAgICAgICAvKiBzdGFydCBvZiBmdWxsIGNhc2UgbWFwcGluZyBzdHJpbmdzICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsKKworICAgICAgICAgICAgICAgIGZ1bGxMZW5ndGgmPTB4ZmZmZjsgLyogYml0cyAxNiBhbmQgaGlnaGVyIGFyZSByZXNlcnZlZCAqLworCisgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgbG93ZXJjYXNlIHJlc3VsdCBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGxMZW5ndGgmRlVMTF9MT1dFUjsKKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoPj49NDsKKworICAgICAgICAgICAgICAgIC8qIGFkZCB0aGUgZnVsbCBjYXNlIGZvbGRpbmcgc3RyaW5nICovCisgICAgICAgICAgICAgICAgbGVuZ3RoPWZ1bGxMZW5ndGgmMHhmOworICAgICAgICAgICAgICAgIGlmKGxlbmd0aCE9MCkgeworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKG5ldyBTdHJpbmcoZXhjZXB0aW9ucywgZXhjT2Zmc2V0LCBsZW5ndGgpKTsKKyAgICAgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgdXBwZXJjYXNlIGFuZCB0aXRsZWNhc2Ugc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGZ1bGxMZW5ndGg+Pj00OworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbExlbmd0aCYweGY7CisgICAgICAgICAgICAgICAgZnVsbExlbmd0aD4+PTQ7CisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsTGVuZ3RoOworCisgICAgICAgICAgICAgICAgY2xvc3VyZU9mZnNldD1leGNPZmZzZXQ7IC8qIGJlaGluZCBmdWxsIGNhc2UgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogYWRkIGVhY2ggY29kZSBwb2ludCBpbiB0aGUgY2xvc3VyZSBzdHJpbmcgKi8KKyAgICAgICAgICAgIGZvcihpbmRleD0wOyBpbmRleDxjbG9zdXJlTGVuZ3RoOyBpbmRleCs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZXhjZXB0aW9ucywgY2xvc3VyZU9mZnNldCwgZXhjZXB0aW9ucy5sZW5ndGgsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBjb21wYXJlIHMsIHdoaWNoIGhhcyBhIGxlbmd0aCwgd2l0aCB0PXVuZm9sZFt1bmZvbGRPZmZzZXQuLl0sIHdoaWNoIGhhcyBhIG1heGltdW0gbGVuZ3RoIG9yIGlzIE5VTC10ZXJtaW5hdGVkCisgICAgICogbXVzdCBiZSBzLmxlbmd0aCgpPjAgYW5kIG1heD4wIGFuZCBzLmxlbmd0aCgpPD1tYXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBzdHJjbXBNYXgoU3RyaW5nIHMsIGludCB1bmZvbGRPZmZzZXQsIGludCBtYXgpIHsKKyAgICAgICAgaW50IGkxLCBsZW5ndGgsIGMxLCBjMjsKKworICAgICAgICBsZW5ndGg9cy5sZW5ndGgoKTsKKyAgICAgICAgbWF4LT1sZW5ndGg7IC8qIHdlIHJlcXVpcmUgbGVuZ3RoPD1tYXgsIHNvIG5vIG5lZWQgdG8gZGVjcmVtZW50IG1heCBpbiB0aGUgbG9vcCAqLworICAgICAgICBpMT0wOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjMT1zLmNoYXJBdChpMSsrKTsKKyAgICAgICAgICAgIGMyPXVuZm9sZFt1bmZvbGRPZmZzZXQrK107CisgICAgICAgICAgICBpZihjMj09MCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOyAvKiByZWFjaGVkIHRoZSBlbmQgb2YgdCBidXQgbm90IG9mIHMgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMxLT1jMjsKKyAgICAgICAgICAgIGlmKGMxIT0wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGMxOyAvKiByZXR1cm4gZGlmZmVyZW5jZSByZXN1bHQgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSgtLWxlbmd0aD4wKTsKKyAgICAgICAgLyogZW5kcyB3aXRoIGxlbmd0aD09MCAqLworCisgICAgICAgIGlmKG1heD09MCB8fCB1bmZvbGRbdW5mb2xkT2Zmc2V0XT09MCkgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGVxdWFsIHRvIGxlbmd0aCBvZiBib3RoIHN0cmluZ3MgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtbWF4OyAvKiByZXR1cm4gbGVuZ2ggZGlmZmVyZW5jZSAqLworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwcyB0aGUgc3RyaW5nIHRvIHNpbmdsZSBjb2RlIHBvaW50cyBhbmQgYWRkcyB0aGUgYXNzb2NpYXRlZCBjYXNlIGNsb3N1cmUKKyAgICAgKiBtYXBwaW5ncy4KKyAgICAgKiBUaGUgc3RyaW5nIGlzIG1hcHBlZCB0byBjb2RlIHBvaW50cyBpZiBpdCBpcyB0aGVpciBmdWxsIGNhc2UgZm9sZGluZyBzdHJpbmcuCisgICAgICogSW4gb3RoZXIgd29yZHMsIHRoaXMgcGVyZm9ybXMgYSByZXZlcnNlIGZ1bGwgY2FzZSBmb2xkaW5nIGFuZCB0aGVuCisgICAgICogYWRkcyB0aGUgY2FzZSBjbG9zdXJlIGl0ZW1zIG9mIHRoZSByZXN1bHRpbmcgY29kZSBwb2ludHMuCisgICAgICogSWYgdGhlIHN0cmluZyBpcyBmb3VuZCBhbmQgaXRzIGNsb3N1cmUgYXBwbGllZCwgdGhlbgorICAgICAqIHRoZSBzdHJpbmcgaXRzZWxmIGlzIGFkZGVkIGFzIHdlbGwgYXMgcGFydCBvZiBpdHMgY29kZSBwb2ludHMnIGNsb3N1cmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyB3YXMgZm91bmQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBhZGRTdHJpbmdDYXNlQ2xvc3VyZShTdHJpbmcgcywgVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaW50IGksIGxlbmd0aCwgc3RhcnQsIGxpbWl0LCByZXN1bHQsIHVuZm9sZE9mZnNldCwgdW5mb2xkUm93cywgdW5mb2xkUm93V2lkdGgsIHVuZm9sZFN0cmluZ1dpZHRoOworCisgICAgICAgIGlmKHVuZm9sZD09bnVsbCB8fCBzPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vIHJldmVyc2UgY2FzZSBmb2xkaW5nIGRhdGEsIG9yIG5vIHN0cmluZyAqLworICAgICAgICB9CisgICAgICAgIGxlbmd0aD1zLmxlbmd0aCgpOworICAgICAgICBpZihsZW5ndGg8PTEpIHsKKyAgICAgICAgICAgIC8qIHRoZSBzdHJpbmcgaXMgdG9vIHNob3J0IHRvIGZpbmQgYW55IG1hdGNoICovCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbW9yZSBwcmVjaXNlIHdvdWxkIGJlOgorICAgICAgICAgICAgICogaWYoIXVfc3RySGFzTW9yZUNoYXIzMlRoYW4ocywgbGVuZ3RoLCAxKSkKKyAgICAgICAgICAgICAqIGJ1dCB0aGlzIGRvZXMgbm90IG1ha2UgbXVjaCBwcmFjdGljYWwgZGlmZmVyZW5jZSBiZWNhdXNlCisgICAgICAgICAgICAgKiBhIHNpbmdsZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd291bGQganVzdCBub3QgYmUgZm91bmQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgdW5mb2xkUm93cz11bmZvbGRbVU5GT0xEX1JPV1NdOworICAgICAgICB1bmZvbGRSb3dXaWR0aD11bmZvbGRbVU5GT0xEX1JPV19XSURUSF07CisgICAgICAgIHVuZm9sZFN0cmluZ1dpZHRoPXVuZm9sZFtVTkZPTERfU1RSSU5HX1dJRFRIXTsKKyAgICAgICAgLy91bmZvbGRDUFdpZHRoPXVuZm9sZFJvd1dpZHRoLXVuZm9sZFN0cmluZ1dpZHRoOworCisgICAgICAgIGlmKGxlbmd0aD51bmZvbGRTdHJpbmdXaWR0aCkgeworICAgICAgICAgICAgLyogdGhlIHN0cmluZyBpcyB0b28gbG9uZyB0byBmaW5kIGFueSBtYXRjaCAqLworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUgc3RyaW5nICovCisgICAgICAgIHN0YXJ0PTA7CisgICAgICAgIGxpbWl0PXVuZm9sZFJvd3M7CisgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0KSB7CisgICAgICAgICAgICBpPShzdGFydCtsaW1pdCkvMjsKKyAgICAgICAgICAgIHVuZm9sZE9mZnNldD0oKGkrMSkqdW5mb2xkUm93V2lkdGgpOyAvLyArMSB0byBza2lwIHRoZSBoZWFkZXIgdmFsdWVzIGFib3ZlCisgICAgICAgICAgICByZXN1bHQ9c3RyY21wTWF4KHMsIHVuZm9sZE9mZnNldCwgdW5mb2xkU3RyaW5nV2lkdGgpOworCisgICAgICAgICAgICBpZihyZXN1bHQ9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBmb3VuZCB0aGUgc3RyaW5nOiBhZGQgZWFjaCBjb2RlIHBvaW50LCBhbmQgaXRzIGNhc2UgY2xvc3VyZSAqLworICAgICAgICAgICAgICAgIGludCBjOworCisgICAgICAgICAgICAgICAgZm9yKGk9dW5mb2xkU3RyaW5nV2lkdGg7IGk8dW5mb2xkUm93V2lkdGggJiYgdW5mb2xkW3VuZm9sZE9mZnNldCtpXSE9MDsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KHVuZm9sZCwgdW5mb2xkT2Zmc2V0LCB1bmZvbGQubGVuZ3RoLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZUNsb3N1cmUoYywgc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICBsaW1pdD1pOworICAgICAgICAgICAgfSBlbHNlIC8qIHJlc3VsdD4wICovIHsKKyAgICAgICAgICAgICAgICBzdGFydD1pKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIHN0cmluZyBub3QgZm91bmQgKi8KKyAgICB9CisKKyAgICAvKiogQHJldHVybiBOT05FLCBMT1dFUiwgVVBQRVIsIFRJVExFICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUeXBlKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRUeXBlRnJvbVByb3BzKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpOworICAgIH0KKworICAgIC8qKiBAcmV0dXJuIHNhbWUgYXMgZ2V0VHlwZSgpLCBvciA8MCBpZiBjIGlzIGNhc2UtaWdub3JhYmxlICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUeXBlT3JJZ25vcmFibGUoaW50IGMpIHsKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGludCB0eXBlPWdldFR5cGVGcm9tUHJvcHMocHJvcHMpOworICAgICAgICBpZih0eXBlIT1OT05FKSB7CisgICAgICAgICAgICByZXR1cm4gdHlwZTsKKyAgICAgICAgfSBlbHNlIGlmKAorICAgICAgICAgICAgYz09MHgzMDcgfHwKKyAgICAgICAgICAgIChwcm9wcyYoRVhDRVBUSU9OfENBU0VfSUdOT1JBQkxFKSk9PUNBU0VfSUdOT1JBQkxFCisgICAgICAgICkgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiBjYXNlLWlnbm9yYWJsZSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8qIGMgaXMgbmVpdGhlciBjYXNlZCBub3IgY2FzZS1pZ25vcmFibGUgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBAcmV0dXJuIE5PX0RPVCwgU09GVF9ET1RURUQsIEFCT1ZFLCBPVEhFUl9BQ0NFTlQgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldERvdFR5cGUoaW50IGMpIHsKKyAgICAgICAgaW50IHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9wcyZET1RfTUFTSzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoZXhjZXB0aW9uc1tnZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKV0+PkVYQ19ET1RfU0hJRlQpJkRPVF9NQVNLOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNTb2Z0RG90dGVkKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXREb3RUeXBlKGMpPT1TT0ZUX0RPVFRFRDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0Nhc2VTZW5zaXRpdmUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpJlNFTlNJVElWRSkhPTA7CisgICAgfQorCisgICAgLy8gc3RyaW5nIGNhc2luZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyoKKyAgICAgKiBUaGVzZSBpbnRlcm5hbCBmdW5jdGlvbnMgZm9ybSB0aGUgY29yZSBvZiBzdHJpbmcgY2FzZSBtYXBwaW5ncy4KKyAgICAgKiBUaGV5IG1hcCBzaW5nbGUgY29kZSBwb2ludHMgdG8gcmVzdWx0IGNvZGUgcG9pbnRzIG9yIHN0cmluZ3MgYW5kIHRha2UKKyAgICAgKiBhbGwgbmVjZXNzYXJ5IGNvbmRpdGlvbnMgKGNvbnRleHQsIGxvY2FsZSBJRCwgb3B0aW9ucykgaW50byBhY2NvdW50LgorICAgICAqCisgICAgICogVGhleSBkbyBub3QgaXRlcmF0ZSBvdmVyIHRoZSBzb3VyY2Ugb3Igd3JpdGUgdG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogc28gdGhhdCB0aGUgc2FtZSBmdW5jdGlvbnMgYXJlIHVzZWZ1bCBmb3Igbm9uLXN0YW5kYXJkIHN0cmluZyBzdG9yYWdlLAorICAgICAqIHN1Y2ggYXMgaW4gYSBSZXBsYWNlYWJsZSAoZm9yIFRyYW5zbGl0ZXJhdG9yKSBvciBVVEYtOC8zMiBzdHJpbmdzIGV0Yy4KKyAgICAgKiBGb3IgdGhlIHNhbWUgcmVhc29uLCB0aGUgInN1cnJvdW5kaW5nIHRleHQiIGNvbnRleHQgaXMgcGFzc2VkIGluIGFzIGEKKyAgICAgKiBDb250ZXh0SXRlcmF0b3Igd2hpY2ggZG9lcyBub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgYWJvdXQKKyAgICAgKiB0aGUgdW5kZXJseWluZyBzdG9yYWdlLgorICAgICAqCisgICAgICogVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGhlbHBlciBmdW5jdGlvbnMgdGhhdCBjaGVjayBmb3IgY29uZGl0aW9ucworICAgICAqIGluIHRoZSBpbnB1dCB0ZXh0IHN1cnJvdW5kaW5nIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQKKyAgICAgKiBhY2NvcmRpbmcgdG8gU3BlY2lhbENhc2luZy50eHQuCisgICAgICoKKyAgICAgKiBFYWNoIGhlbHBlciBmdW5jdGlvbiBnZXRzIHRoZSBpbmRleAorICAgICAqIC0gYWZ0ZXIgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBpZiBpdCBsb29rcyBhdCBmb2xsb3dpbmcgdGV4dAorICAgICAqIC0gYmVmb3JlIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgaWYgaXQgbG9va3MgYXQgcHJlY2VkaW5nIHRleHQKKyAgICAgKgorICAgICAqIFVuaWNvZGUgMy4yIFVBWCAyMSAiQ2FzZSBNYXBwaW5ncyIgZGVmaW5lcyB0aGUgY29uZGl0aW9ucyBhcyBmb2xsb3dzOgorICAgICAqCisgICAgICogRmluYWxfU2lnbWEKKyAgICAgKiAgIEMgaXMgcHJlY2VkZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisgICAgICogICAgIGEgY2FzZWQgbGV0dGVyIGFuZCBhIGNhc2UtaWdub3JhYmxlIHNlcXVlbmNlLAorICAgICAqICAgYW5kIEMgaXMgbm90IGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2UgY29uc2lzdGluZyBvZgorICAgICAqICAgICBhbiBpZ25vcmFibGUgc2VxdWVuY2UgYW5kIHRoZW4gYSBjYXNlZCBsZXR0ZXIuCisgICAgICoKKyAgICAgKiBNb3JlX0Fib3ZlCisgICAgICogICBDIGlzIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNoYXJhY3RlcnMgb2YgY29tYmluaW5nIGNsYXNzIDIzMCAoQUJPVkUpCisgICAgICogICBpbiB0aGUgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZS4KKyAgICAgKgorICAgICAqIEFmdGVyX1NvZnRfRG90dGVkCisgICAgICogICBUaGUgbGFzdCBwcmVjZWRpbmcgY2hhcmFjdGVyIHdpdGggY29tYmluaW5nIGNsYXNzIG9mIHplcm8gYmVmb3JlIEMKKyAgICAgKiAgIHdhcyBTb2Z0X0RvdHRlZCwKKyAgICAgKiAgIGFuZCB0aGVyZSBpcyBubyBpbnRlcnZlbmluZyBjb21iaW5pbmcgY2hhcmFjdGVyIGNsYXNzIDIzMCAoQUJPVkUpLgorICAgICAqCisgICAgICogQmVmb3JlX0RvdAorICAgICAqICAgQyBpcyBmb2xsb3dlZCBieSBjb21iaW5pbmcgZG90IGFib3ZlIChVKzAzMDcpLgorICAgICAqICAgQW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgd2l0aCBhIGNvbWJpbmluZyBjbGFzcyB0aGF0IGlzIG5laXRoZXIgMCBub3IgMjMwCisgICAgICogICBtYXkgaW50ZXJ2ZW5lIGJldHdlZW4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGFuZCB0aGUgY29tYmluaW5nIGRvdCBhYm92ZS4KKyAgICAgKgorICAgICAqIFRoZSBlcnJhdHVtIGZyb20gMjAwMi0xMC0zMSBhZGRzIHRoZSBjb25kaXRpb24KKyAgICAgKgorICAgICAqIEFmdGVyX0kKKyAgICAgKiAgIFRoZSBsYXN0IHByZWNlZGluZyBiYXNlIGNoYXJhY3RlciB3YXMgYW4gdXBwZXJjYXNlIEksIGFuZCB0aGVyZSBpcyBubworICAgICAqICAgaW50ZXJ2ZW5pbmcgY29tYmluaW5nIGNoYXJhY3RlciBjbGFzcyAyMzAgKEFCT1ZFKS4KKyAgICAgKgorICAgICAqICAgKFNlZSBKaXR0ZXJidWcgMjM0NCBhbmQgdGhlIGNvbW1lbnRzIG9uIEFmdGVyX0kgYmVsb3cuKQorICAgICAqCisgICAgICogSGVscGVyIGRlZmluaXRpb25zIGluIFVuaWNvZGUgMy4yIFVBWCAyMToKKyAgICAgKgorICAgICAqIEQxLiBBIGNoYXJhY3RlciBDIGlzIGRlZmluZWQgdG8gYmUgY2FzZWQKKyAgICAgKiAgICAgaWYgaXQgbWVldHMgYW55IG9mIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWE6CisgICAgICoKKyAgICAgKiAgIC0gVGhlIGdlbmVyYWwgY2F0ZWdvcnkgb2YgQyBpcyBUaXRsZWNhc2UgTGV0dGVyIChMdCkKKyAgICAgKiAgIC0gSW4gW0NvcmVQcm9wc10sIEMgaGFzIG9uZSBvZiB0aGUgcHJvcGVydGllcyBVcHBlcmNhc2UsIG9yIExvd2VyY2FzZQorICAgICAqICAgLSBHaXZlbiBEID0gTkZEKEMpLCB0aGVuIGl0IGlzIG5vdCB0aGUgY2FzZSB0aGF0OgorICAgICAqICAgICBEID0gVUNEX2xvd2VyKEQpID0gVUNEX3VwcGVyKEQpID0gVUNEX3RpdGxlKEQpCisgICAgICogICAgIChUaGlzIHRoaXJkIGNyaXRlcml1bSBkb2VzIG5vdCBhZGQgYW55IGNoYXJhY3RlcnMgdG8gdGhlIGxpc3QKKyAgICAgKiAgICAgIGZvciBVbmljb2RlIDMuMi4gSWdub3JlZC4pCisgICAgICoKKyAgICAgKiBEMi4gQSBjaGFyYWN0ZXIgQyBpcyBkZWZpbmVkIHRvIGJlIGNhc2UtaWdub3JhYmxlCisgICAgICogICAgIGlmIGl0IG1lZXRzIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGNyaXRlcmlhOgorICAgICAqCisgICAgICogICAtIFRoZSBnZW5lcmFsIGNhdGVnb3J5IG9mIEMgaXMKKyAgICAgKiAgICAgTm9uc3BhY2luZyBNYXJrIChNbiksIG9yIEVuY2xvc2luZyBNYXJrIChNZSksIG9yIEZvcm1hdCBDb250cm9sIChDZiksIG9yCisgICAgICogICAgIExldHRlciBNb2RpZmllciAoTG0pLCBvciBTeW1ib2wgTW9kaWZpZXIgKFNrKQorICAgICAqICAgLSBDIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgCisgICAgICogICAgIFUrMDAyNyBBUE9TVFJPUEhFCisgICAgICogICAgIFUrMDBBRCBTT0ZUIEhZUEhFTiAoU0hZKQorICAgICAqICAgICBVKzIwMTkgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICogICAgICAgICAgICAodGhlIHByZWZlcnJlZCBjaGFyYWN0ZXIgZm9yIGFwb3N0cm9waGUpCisgICAgICoKKyAgICAgKiBEMy4gQSBjYXNlLWlnbm9yYWJsZSBzZXF1ZW5jZSBpcyBhIHNlcXVlbmNlIG9mCisgICAgICogICAgIHplcm8gb3IgbW9yZSBjYXNlLWlnbm9yYWJsZSBjaGFyYWN0ZXJzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogSXRlcmF0b3IgZm9yIHN0cmluZyBjYXNlIG1hcHBpbmdzLCB3aGljaCBuZWVkIHRvIGxvb2sgYXQgdGhlCisgICAgICogY29udGV4dCAoc3Vycm91bmRpbmcgdGV4dCkgb2YgYSBnaXZlbiBjaGFyYWN0ZXIgZm9yIGNvbmRpdGlvbmFsIG1hcHBpbmdzLgorICAgICAqCisgICAgICogVGhlIGl0ZXJhdG9yIG9ubHkgbmVlZHMgdG8gZ28gYmFja3dhcmQgb3IgZm9yd2FyZCBhd2F5IGZyb20gdGhlCisgICAgICogY2hhcmFjdGVyIGluIHF1ZXN0aW9uLiBJdCBkb2VzIG5vdCB1c2UgYW55IGluZGV4ZXMgb24gdGhpcyBpbnRlcmZhY2UuCisgICAgICogSXQgZG9lcyBub3Qgc3VwcG9ydCByYW5kb20gYWNjZXNzIG9yIGFuIGFyYml0cmFyeSBjaGFuZ2Ugb2YKKyAgICAgKiBpdGVyYXRpb24gZGlyZWN0aW9uLgorICAgICAqCisgICAgICogVGhlIGNvZGUgcG9pbnQgYmVpbmcgY2FzZS1tYXBwZWQgaXRzZWxmIGlzIG5ldmVyIHJldHVybmVkIGJ5CisgICAgICogdGhpcyBpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbnRleHRJdGVyYXRvciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgZm9yIGZvcndhcmQgb3IgYmFja3dhcmQgaXRlcmF0aW9uLgorICAgICAgICAgKiBAcGFyYW0gZGlyID4wOiBCZWdpbiBpdGVyYXRpbmcgZm9yd2FyZCBmcm9tIHRoZSBmaXJzdCBjb2RlIHBvaW50CisgICAgICAgICAqIGFmdGVyIHRoZSBvbmUgdGhhdCBpcyBiZWluZyBjYXNlLW1hcHBlZC4KKyAgICAgICAgICogICAgICAgICAgICA8MDogQmVnaW4gaXRlcmF0aW5nIGJhY2t3YXJkIGZyb20gdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgICAgICogYmVmb3JlIHRoZSBvbmUgdGhhdCBpcyBiZWluZyBjYXNlLW1hcHBlZC4gICAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBkaXIpOworICAgICAgICAvKioKKyAgICAgICAgICogSXRlcmF0ZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQsIG1vdmluZyBpbiB0aGUgZGlyZWN0aW9uCisgICAgICAgICAqIGRldGVybWluZWQgYnkgdGhlIHJlc2V0KCkgY2FsbC4KKyAgICAgICAgICogQHJldHVybiBOZXh0IGNvZGUgcG9pbnQsIG9yIDwwIHdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBzdHJpbmcgY2FzZSBtYXBwaW5ncywgYSBzaW5nbGUgY2hhcmFjdGVyIChhIGNvZGUgcG9pbnQpIGlzIG1hcHBlZAorICAgICAqIGVpdGhlciB0byBpdHNlbGYgKGluIHdoaWNoIGNhc2UgaW4tcGxhY2UgbWFwcGluZyBmdW5jdGlvbnMgZG8gbm90aGluZyksCisgICAgICogb3IgdG8gYW5vdGhlciBzaW5nbGUgY29kZSBwb2ludCwgb3IgdG8gYSBzdHJpbmcuCisgICAgICogQXNpZGUgZnJvbSB0aGUgc3RyaW5nIGNvbnRlbnRzLCB0aGVzZSBhcmUgaW5kaWNhdGVkIHdpdGggYSBzaW5nbGUgaW50CisgICAgICogdmFsdWUgYXMgZm9sbG93czoKKyAgICAgKgorICAgICAqIE1hcHBpbmcgdG8gc2VsZjogTmVnYXRpdmUgdmFsdWVzICh+c2VsZiBpbnN0ZWFkIG9mIC1zZWxmIHRvIHN1cHBvcnQgVSswMDAwKQorICAgICAqCisgICAgICogTWFwcGluZyB0byBhbm90aGVyIGNvZGUgcG9pbnQ6IFBvc2l0aXZlIHZhbHVlcyA+TUFYX1NUUklOR19MRU5HVEgKKyAgICAgKgorICAgICAqIE1hcHBpbmcgdG8gYSBzdHJpbmc6IFRoZSBzdHJpbmcgbGVuZ3RoICgwLi5NQVhfU1RSSU5HX0xFTkdUSCkgaXMKKyAgICAgKiByZXR1cm5lZC4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgcmVzdWx0IG1heSBpbmRlZWQgaGF2ZSB6ZXJvIGxlbmd0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfU1RSSU5HX0xFTkdUSD0weDFmOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19VTktOT1dOPTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19ST09UPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19UVVJLSVNIPTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPQ19MSVRIVUFOSUFOPTM7CisKKyAgICAvKgorICAgICAqIENoZWNrcyBhbmQgY2FjaGVzIHRoZSB0eXBlIG9mIGxvY2FsZSBJRCBhcyBpdCBpcyByZWxldmFudCBmb3IgY2FzZSBtYXBwaW5nLgorICAgICAqIElmIHRoZSBsb2NDYWNoZSBpcyBub3QgbnVsbCwgdGhlbiBpdCBtdXN0IGJlIGluaXRpYWxpemVkIHdpdGggbG9jQ2FjaGVbMF09MCAuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENhc2VMb2NhbGUoVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlKSB7CisgICAgICAgIGludCByZXN1bHQ7CisKKyAgICAgICAgaWYobG9jQ2FjaGUhPW51bGwgJiYgKHJlc3VsdD1sb2NDYWNoZVswXSkhPUxPQ19VTktOT1dOKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0PUxPQ19ST09UOworCisgICAgICAgIFN0cmluZyBsYW5ndWFnZT1sb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgaWYobGFuZ3VhZ2UuZXF1YWxzKCJ0ciIpIHx8IGxhbmd1YWdlLmVxdWFscygidHVyIikgfHwgbGFuZ3VhZ2UuZXF1YWxzKCJheiIpIHx8IGxhbmd1YWdlLmVxdWFscygiYXplIikpIHsKKyAgICAgICAgICAgIHJlc3VsdD1MT0NfVFVSS0lTSDsKKyAgICAgICAgfSBlbHNlIGlmKGxhbmd1YWdlLmVxdWFscygibHQiKSB8fCBsYW5ndWFnZS5lcXVhbHMoImxpdCIpKSB7CisgICAgICAgICAgICByZXN1bHQ9TE9DX0xJVEhVQU5JQU47CisgICAgICAgIH0KKworICAgICAgICBpZihsb2NDYWNoZSE9bnVsbCkgeworICAgICAgICAgICAgbG9jQ2FjaGVbMF09cmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkge2Nhc2UtaWdub3JhYmxlfSogY2FzZWQgID8gKGRpciBkZXRlcm1pbmVzIGxvb2tpbmcgZm9yd2FyZC9iYWNrd2FyZCkgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNGb2xsb3dlZEJ5Q2FzZWRMZXR0ZXIoQ29udGV4dEl0ZXJhdG9yIGl0ZXIsIGludCBkaXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBwcm9wczsKKworICAgICAgICBpZihpdGVyPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaXRlci5yZXNldChkaXIpOyAoYz1pdGVyLm5leHQoKSk+PTA7KSB7CisgICAgICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcykhPU5PTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogZm9sbG93ZWQgYnkgY2FzZWQgbGV0dGVyICovCisgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgzMDcgfHwgKHByb3BzJihFWENFUFRJT058Q0FTRV9JR05PUkFCTEUpKT09Q0FTRV9JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAvKiBjYXNlLWlnbm9yYWJsZSwgY29udGludWUgd2l0aCB0aGUgbG9vcCAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBpZ25vcmFibGUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm90IGZvbGxvd2VkIGJ5IGNhc2VkIGxldHRlciAqLworICAgIH0KKworICAgIC8qIElzIHByZWNlZGVkIGJ5IFNvZnRfRG90dGVkIGNoYXJhY3RlciB3aXRoIG5vIGludGVydmVuaW5nIGNjPTIzMCA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzUHJlY2VkZWRCeVNvZnREb3R0ZWQoQ29udGV4dEl0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBkb3RUeXBlOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KC0xKTsgKGM9aXRlci5uZXh0KCkpPj0wOykgeworICAgICAgICAgICAgZG90VHlwZT1nZXREb3RUeXBlKGMpOworICAgICAgICAgICAgaWYoZG90VHlwZT09U09GVF9ET1RURUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogcHJlY2VkZWQgYnkgVFlQRV9pICovCisgICAgICAgICAgICB9IGVsc2UgaWYoZG90VHlwZSE9T1RIRVJfQUNDRU5UKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBwcmVjZWRlZCBieSBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgKG5vdCBUWVBFX2kpLCBvciBpbnRlcnZlbmluZyBjYz09MjMwICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBwcmVjZWRlZCBieSBUWVBFX2kgKi8KKyAgICB9CisKKyAgICAvKgorICAgICAqIFNlZSBKaXR0ZXJidWcgMjM0NDoKKyAgICAgKiBUaGUgY29uZGl0aW9uIEFmdGVyX0kgZm9yIFR1cmtpYy1sb3dlcmNhc2luZyBvZiBVKzAzMDcgY29tYmluaW5nIGRvdCBhYm92ZQorICAgICAqIGlzIGNoZWNrZWQgaW4gSUNVIDIuMCwgMi4xLCAyLjYgYnV0IHdhcyBub3QgaW4gMi4yICYgMi40IGJlY2F1c2UKKyAgICAgKiB3ZSBtYWRlIHRob3NlIHJlbGVhc2VzIGNvbXBhdGlibGUgd2l0aCBVbmljb2RlIDMuMiB3aGljaCBoYWQgbm90IGZpeGVkCisgICAgICogYSByZWxhdGVkIGJ1ZyBpbiBTcGVjaWFsQ2FzaW5nLnR4dC4KKyAgICAgKgorICAgICAqIEZyb20gdGhlIEppdHRlcmJ1ZyAyMzQ0IHRleHQ6CisgICAgICogLi4uIHRoaXMgYnVnIGlzIGxpc3RlZCBhcyBhIFVuaWNvZGUgZXJyYXR1bQorICAgICAqIGZyb20gMjAwMi0xMC0zMSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaTJlcnJhdGEvVW5pY29kZUVycmF0YS5odG1sCisgICAgICogPHF1b3RlPgorICAgICAqIFRoZXJlIGFyZSB0d28gZXJyb3JzIGluIFNwZWNpYWxDYXNpbmcudHh0LgorICAgICAqIDEuIE1pc3Npbmcgc2VtaWNvbG9ucyBvbiB0d28gbGluZXMuIC4uLiBbaXJyZWxldmFudCBmb3IgSUNVXQorICAgICAqIDIuIEFuIGluY29ycmVjdCBjb250ZXh0IGRlZmluaXRpb24uIENvcnJlY3QgYXMgZm9sbG93czoKKyAgICAgKiA8IDAzMDc7IDsgMDMwNzsgMDMwNzsgdHIgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAqIDwgMDMwNzsgOyAwMzA3OyAwMzA3OyBheiBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICogLS0tCisgICAgICogPiAwMzA3OyA7IDAzMDc7IDAzMDc7IHRyIEFmdGVyX0k7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAqID4gMDMwNzsgOyAwMzA3OyAwMzA3OyBheiBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgKiB3aGVyZSB0aGUgY29udGV4dCBBZnRlcl9JIGlzIGRlZmluZWQgYXM6CisgICAgICogVGhlIGxhc3QgcHJlY2VkaW5nIGJhc2UgY2hhcmFjdGVyIHdhcyBhbiB1cHBlcmNhc2UgSSwgYW5kIHRoZXJlIGlzIG5vCisgICAgICogaW50ZXJ2ZW5pbmcgY29tYmluaW5nIGNoYXJhY3RlciBjbGFzcyAyMzAgKEFCT1ZFKS4KKyAgICAgKiA8L3F1b3RlPgorICAgICAqCisgICAgICogTm90ZSB0aGF0IFNwZWNpYWxDYXNpbmcudHh0IGV2ZW4gaW4gVW5pY29kZSAzLjIgZGVzY3JpYmVkIHRoZSBjb25kaXRpb24gYXM6CisgICAgICoKKyAgICAgKiAjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisgICAgICogIyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IEktZG90X2Fib3ZlCisgICAgICoKKyAgICAgKiBTZWUgYWxzbyB0aGUgZGVzY3JpcHRpb24gaW4gdGhpcyBwbGFjZSBpbiBvbGRlciB2ZXJzaW9ucyBvZiB1Y2hhci5jIChyZXZpc2lvbiAxLjEwMCkuCisgICAgICoKKyAgICAgKiBNYXJrdXMgVy4gU2NoZXJlciAyMDAzLWZlYi0xNQorICAgICAqLworCisgICAgLyogSXMgcHJlY2VkZWQgYnkgYmFzZSBjaGFyYWN0ZXIgJ0knIHdpdGggbm8gaW50ZXJ2ZW5pbmcgY2M9MjMwID8gKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNQcmVjZWRlZEJ5X0koQ29udGV4dEl0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBkb3RUeXBlOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KC0xKTsgKGM9aXRlci5uZXh0KCkpPj0wOykgeworICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBwcmVjZWRlZCBieSBJICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb3RUeXBlPWdldERvdFR5cGUoYyk7CisgICAgICAgICAgICBpZihkb3RUeXBlIT1PVEhFUl9BQ0NFTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIHByZWNlZGVkIGJ5IGRpZmZlcmVudCBiYXNlIGNoYXJhY3RlciAobm90IEkpLCBvciBpbnRlcnZlbmluZyBjYz09MjMwICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBwcmVjZWRlZCBieSBJICovCisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2M9PTIzMCA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzRm9sbG93ZWRCeU1vcmVBYm92ZShDb250ZXh0SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGRvdFR5cGU7CisKKyAgICAgICAgaWYoaXRlcj09bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGl0ZXIucmVzZXQoMSk7IChjPWl0ZXIubmV4dCgpKT49MDspIHsKKyAgICAgICAgICAgIGRvdFR5cGU9Z2V0RG90VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGRvdFR5cGU9PUFCT1ZFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIGF0IGxlYXN0IG9uZSBjYz09MjMwIGZvbGxvd2luZyAqLworICAgICAgICAgICAgfSBlbHNlIGlmKGRvdFR5cGUhPU9USEVSX0FDQ0VOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogbmV4dCBiYXNlIGNoYXJhY3Rlciwgbm8gbW9yZSBjYz09MjMwIGZvbGxvd2luZyAqLworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBubyBtb3JlIGNjPT0yMzAgZm9sbG93aW5nICovCisgICAgfQorCisgICAgLyogSXMgZm9sbG93ZWQgYnkgYSBkb3QgYWJvdmUgKHdpdGhvdXQgY2M9PTIzMCBpbiBiZXR3ZWVuKSA/ICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzRm9sbG93ZWRCeURvdEFib3ZlKENvbnRleHRJdGVyYXRvciBpdGVyKSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgZG90VHlwZTsKKworICAgICAgICBpZihpdGVyPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaXRlci5yZXNldCgxKTsgKGM9aXRlci5uZXh0KCkpPj0wOyApIHsKKyAgICAgICAgICAgIGlmKGM9PTB4MzA3KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb3RUeXBlPWdldERvdFR5cGUoYyk7CisgICAgICAgICAgICBpZihkb3RUeXBlIT1PVEhFUl9BQ0NFTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5leHQgYmFzZSBjaGFyYWN0ZXIgb3IgY2M9PTIzMCBpbiBiZXR3ZWVuICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vIGRvdCBhYm92ZSBmb2xsb3dpbmcgKi8KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcKKyAgICAgICAgaURvdD0gICAgICAgImlcdTAzMDciLAorICAgICAgICBqRG90PSAgICAgICAialx1MDMwNyIsCisgICAgICAgIGlPZ29uZWtEb3Q9ICJcdTAxMmZcdTAzMDciLAorICAgICAgICBpRG90R3JhdmU9ICAiaVx1MDMwN1x1MDMwMCIsCisgICAgICAgIGlEb3RBY3V0ZT0gICJpXHUwMzA3XHUwMzAxIiwKKyAgICAgICAgaURvdFRpbGRlPSAgImlcdTAzMDdcdTAzMDMiOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBmdWxsIGxvd2VyY2FzZSBtYXBwaW5nIGZvciBjLgorICAgICAqCisgICAgICogQHBhcmFtIGMgQ2hhcmFjdGVyIHRvIGJlIG1hcHBlZC4KKyAgICAgKiBAcGFyYW0gaXRlciBDaGFyYWN0ZXIgaXRlcmF0b3IsIHVzZWQgZm9yIGNvbnRleHQtc2Vuc2l0aXZlIG1hcHBpbmdzLgorICAgICAqICAgICAgICAgICAgIFNlZSBDb250ZXh0SXRlcmF0b3IgZm9yIGRldGFpbHMuCisgICAgICogICAgICAgICAgICAgSWYgaXRlcj09bnVsbCB0aGVuIGEgY29udGV4dC1pbmRlcGVuZGVudCByZXN1bHQgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIG91dCBJZiB0aGUgbWFwcGluZyByZXN1bHQgaXMgYSBzdHJpbmcsIHRoZW4gaXQgaXMgYXBwZW5kZWQgdG8gb3V0LgorICAgICAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElEIGZvciBsb2NhbGUtZGVwZW5kZW50IG1hcHBpbmdzLgorICAgICAqIEBwYXJhbSBsb2NDYWNoZSBJbml0aWFsaXplIGxvY0NhY2hlWzBdIHRvIDA7IG1heSBiZSB1c2VkIHRvIGNhY2hlIHRoZSByZXN1bHQgb2YgcGFyc2luZworICAgICAqICAgICAgICAgICAgICAgICB0aGUgbG9jYWxlIElEIGZvciBzdWJzZXF1ZW50IGNhbGxzLgorICAgICAqICAgICAgICAgICAgICAgICBDYW4gYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIE91dHB1dCBjb2RlIHBvaW50IG9yIHN0cmluZyBsZW5ndGgsIHNlZSBNQVhfU1RSSU5HX0xFTkdUSC4KKyAgICAgKgorICAgICAqIEBzZWUgQ29udGV4dEl0ZXJhdG9yCisgICAgICogQHNlZSAjTUFYX1NUUklOR19MRU5HVEgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IHRvRnVsbExvd2VyKGludCBjLCBDb250ZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSwgaW50W10gbG9jQ2FjaGUpIHsKKyAgICAgICAgaW50IHJlc3VsdCwgcHJvcHM7CisKKyAgICAgICAgcmVzdWx0PWM7CisgICAgICAgIHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpPj1VUFBFUikgeworICAgICAgICAgICAgICAgIHJlc3VsdD1jK2dldERlbHRhKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBleGNPZmZzZXQ9Z2V0RXhjZXB0aW9uc09mZnNldChwcm9wcyksIGV4Y09mZnNldDI7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBmdWxsOworCisgICAgICAgICAgICBleGNPZmZzZXQyPWV4Y09mZnNldDsKKworICAgICAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0NPTkRJVElPTkFMX1NQRUNJQUwpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogdXNlIGhhcmRjb2RlZCBjb25kaXRpb25zIGFuZCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgIGludCBsb2M9Z2V0Q2FzZUxvY2FsZShsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGVzdCBmb3IgY29uZGl0aW9uYWwgbWFwcGluZ3MgZmlyc3QKKyAgICAgICAgICAgICAgICAgKiAgIChvdGhlcndpc2UgdGhlIHVuY29uZGl0aW9uYWwgZGVmYXVsdCBtYXBwaW5ncyBhcmUgYWx3YXlzIHRha2VuKSwKKyAgICAgICAgICAgICAgICAgKiB0aGVuIHRlc3QgZm9yIGNoYXJhY3RlcnMgdGhhdCBoYXZlIHVuY29uZGl0aW9uYWwgbWFwcGluZ3MgaW4gU3BlY2lhbENhc2luZy50eHQsCisgICAgICAgICAgICAgICAgICogdGhlbiBnZXQgdGhlIFVuaWNvZGVEYXRhLnR4dCBtYXBwaW5ncy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiggbG9jPT1MT0NfTElUSFVBTklBTiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgLyogYmFzZSBjaGFyYWN0ZXJzLCBmaW5kIGFjY2VudHMgYWJvdmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICgoKGM9PTB4NDkgfHwgYz09MHg0YSB8fCBjPT0weDEyZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvbGxvd2VkQnlNb3JlQWJvdmUoaXRlcikpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmVjb21wb3NlZCB3aXRoIGFjY2VudCBhYm92ZSwgbm8gbmVlZCB0byBmaW5kIG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgKGM9PTB4Y2MgfHwgYz09MHhjZCB8fCBjPT0weDEyOCkpCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIExpdGh1YW5pYW4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBJbnRyb2R1Y2UgYW4gZXhwbGljaXQgZG90IGFib3ZlIHdoZW4gbG93ZXJjYXNpbmcgY2FwaXRhbCBJJ3MgYW5kIEoncworICAgICAgICAgICAgICAgICAgICAgICAgIyB3aGVuZXZlciB0aGVyZSBhcmUgbW9yZSBhY2NlbnRzIGFib3ZlLgorICAgICAgICAgICAgICAgICAgICAgICAgIyAob2YgdGhlIGFjY2VudHMgdXNlZCBpbiBMaXRodWFuaWFuOiBncmF2ZSwgYWN1dGUsIHRpbGRlIGFib3ZlLCBhbmQgb2dvbmVrKQorCisgICAgICAgICAgICAgICAgICAgICAgICAwMDQ5OyAwMDY5IDAzMDc7IDAwNDk7IDAwNDk7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgMDA0QTsgMDA2QSAwMzA3OyAwMDRBOyAwMDRBOyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEoKKyAgICAgICAgICAgICAgICAgICAgICAgIDAxMkU7IDAxMkYgMDMwNzsgMDEyRTsgMDEyRTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLCisgICAgICAgICAgICAgICAgICAgICAgICAwMENDOyAwMDY5IDAzMDcgMDMwMDsgMDBDQzsgMDBDQzsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgICAgICAgICAgICAgICAgICAwMENEOyAwMDY5IDAzMDcgMDMwMTsgMDBDRDsgMDBDRDsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgICAgICAgICAgICAgICAgICAgICAwMTI4OyAwMDY5IDAzMDcgMDMwMzsgMDEyODsgMDEyODsgbHQ7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goYykgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NDk6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHg0YTogIC8qIExBVElOIENBUElUQUwgTEVUVEVSIEogKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoakRvdCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDEyZTogLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpT2dvbmVrRG90KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4Y2M6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdEdyYXZlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4Y2Q6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdEFjdXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTI4OiAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdFRpbGRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHdpbGwgbm90IG9jY3VyICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiAjIFR1cmtpc2ggYW5kIEF6ZXJpICovCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGxvYz09TE9DX1RVUktJU0ggJiYgYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIHJ1bGVzIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgdHIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAgICAwMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyBheiAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4MzA3ICYmIGlzUHJlY2VkZWRCeV9JKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKworICAgICAgICAgICAgICAgICAgICAgICAgMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICAgIDAzMDc7IDsgMDMwNzsgMDMwNzsgYXogQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogcmVtb3ZlIHRoZSBkb3QgKGNvbnRpbnVlIHdpdGhvdXQgb3V0cHV0KSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4NDkgJiYgIWlzRm9sbG93ZWRCeURvdEFib3ZlKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gbG93ZXJjYXNpbmcsIHVubGVzcyBhbiBJIGlzIGJlZm9yZSBhIGRvdF9hYm92ZSwgaXQgdHVybnMgaW50byBhIGRvdGxlc3MgaS4KKworICAgICAgICAgICAgICAgICAgICAgICAgMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgdHIgTm90X0JlZm9yZV9Eb3Q7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgYXogTm90X0JlZm9yZV9Eb3Q7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTMxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBQcmVzZXJ2ZSBjYW5vbmljYWwgZXF1aXZhbGVuY2UgZm9yIEkgd2l0aCBkb3QuIFR1cmtpYyBpcyBoYW5kbGVkIGJlbG93LgorCisgICAgICAgICAgICAgICAgICAgICAgICAwMTMwOyAwMDY5IDAzMDc7IDAxMzA7IDAxMzA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpRG90KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKCAgYz09MHgzYTMgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNGb2xsb3dlZEJ5Q2FzZWRMZXR0ZXIoaXRlciwgMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvbGxvd2VkQnlDYXNlZExldHRlcihpdGVyLCAtMSkgLyogLTE9cHJlY2VkZWQgKi8KKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZ3JlZWsgY2FwaXRhbCBzaWdtYSBtYXBzIGRlcGVuZGluZyBvbiBzdXJyb3VuZGluZyBjYXNlZCBsZXR0ZXJzIChzZWUgU3BlY2lhbENhc2luZy50eHQpICovCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgZmluYWwgZm9ybSBvZiBzaWdtYQorCisgICAgICAgICAgICAgICAgICAgICAgICAwM0EzOyAwM0MyOyAwM0EzOyAwM0EzOyBGaW5hbF9TaWdtYTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4M2MyOyAvKiBncmVlayBzbWFsbCBmaW5hbCBzaWdtYSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vIGtub3duIGNvbmRpdGlvbmFsIHNwZWNpYWwgY2FzZSBtYXBwaW5nLCB1c2UgYSBub3JtYWwgbWFwcGluZyAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTKSkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWU9Z2V0U2xvdFZhbHVlQW5kT2Zmc2V0KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTLCBleGNPZmZzZXQpOworICAgICAgICAgICAgICAgIGZ1bGw9KGludCl2YWx1ZSZGVUxMX0xPV0VSOworICAgICAgICAgICAgICAgIGlmKGZ1bGwhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBleGNPZmZzZXQ9KGludCkodmFsdWU+PjMyKSsxOworCisgICAgICAgICAgICAgICAgICAgIC8qIHNldCB0aGUgb3V0cHV0IHBvaW50ZXIgdG8gdGhlIGxvd2VyY2FzZSBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19MT1dFUikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIEVYQ19MT1dFUiwgZXhjT2Zmc2V0Mik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKHJlc3VsdD09YykgPyB+cmVzdWx0IDogcmVzdWx0OworICAgIH0KKworICAgIC8qIGludGVybmFsICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgdG9VcHBlck9yVGl0bGUoaW50IGMsIENvbnRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXBwZXJOb3RUaXRsZSkgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBpbnQgcHJvcHM7CisKKyAgICAgICAgcmVzdWx0PWM7CisgICAgICAgIHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgIGlmKCFwcm9wc0hhc0V4Y2VwdGlvbihwcm9wcykpIHsKKyAgICAgICAgICAgIGlmKGdldFR5cGVGcm9tUHJvcHMocHJvcHMpPT1MT1dFUikgeworICAgICAgICAgICAgICAgIHJlc3VsdD1jK2dldERlbHRhKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBleGNPZmZzZXQ9Z2V0RXhjZXB0aW9uc09mZnNldChwcm9wcyksIGV4Y09mZnNldDI7CisgICAgICAgICAgICBpbnQgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIGludCBmdWxsLCBpbmRleDsKKworICAgICAgICAgICAgZXhjT2Zmc2V0Mj1leGNPZmZzZXQ7CisKKyAgICAgICAgICAgIGlmKChleGNXb3JkJkVYQ19DT05ESVRJT05BTF9TUEVDSUFMKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIHVzZSBoYXJkY29kZWQgY29uZGl0aW9ucyBhbmQgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICBpbnQgbG9jPWdldENhc2VMb2NhbGUobG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgICAgICAgICBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4NjkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVHVya2lzaCBhbmQgQXplcmkKKworICAgICAgICAgICAgICAgICAgICAgICAgIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggYW5kIEF6ZXJpCisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorCisgICAgICAgICAgICAgICAgICAgICAgICAjIFdoZW4gdXBwZXJjYXNpbmcsIGkgdHVybnMgaW50byBhIGRvdHRlZCBjYXBpdGFsIEkKKworICAgICAgICAgICAgICAgICAgICAgICAgMDA2OTsgMDA2OTsgMDEzMDsgMDEzMDsgdHI7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IGF6OyAjIExBVElOIFNNQUxMIExFVFRFUiBJCisgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDEzMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYobG9jPT1MT0NfTElUSFVBTklBTiAmJiBjPT0weDMwNyAmJiBpc1ByZWNlZGVkQnlTb2Z0RG90dGVkKGl0ZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIExpdGh1YW5pYW4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUgRE9UIEFCT1ZFIGFmdGVyICJpIiB3aXRoIHVwcGVyIG9yIHRpdGxlY2FzZQorCisgICAgICAgICAgICAgICAgICAgICAgICAwMzA3OyAwMzA3OyA7IDsgbHQgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHJlbW92ZSB0aGUgZG90IChjb250aW51ZSB3aXRob3V0IG91dHB1dCkgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBrbm93biBjb25kaXRpb25hbCBzcGVjaWFsIGNhc2UgbWFwcGluZywgdXNlIGEgbm9ybWFsIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsPShpbnQpdmFsdWUmMHhmZmZmOworCisgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldD0oaW50KSh2YWx1ZT4+MzIpKzE7CisKKyAgICAgICAgICAgICAgICAvKiBza2lwIHRoZSBsb3dlcmNhc2UgYW5kIGNhc2UtZm9sZGluZyByZXN1bHQgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbCZGVUxMX0xPV0VSOworICAgICAgICAgICAgICAgIGZ1bGw+Pj00OworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbCYweGY7CisgICAgICAgICAgICAgICAgZnVsbD4+PTQ7CisKKyAgICAgICAgICAgICAgICBpZih1cHBlck5vdFRpdGxlKSB7CisgICAgICAgICAgICAgICAgICAgIGZ1bGwmPTB4ZjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRoZSB1cHBlcmNhc2UgcmVzdWx0IHN0cmluZyAqLworICAgICAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGwmMHhmOworICAgICAgICAgICAgICAgICAgICBmdWxsPShmdWxsPj40KSYweGY7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoZnVsbCE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIG91dHB1dCBwb2ludGVyIHRvIHRoZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZighdXBwZXJOb3RUaXRsZSAmJiBoYXNTbG90KGV4Y1dvcmQsIEVYQ19USVRMRSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfVElUTEU7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVVBQRVIpKSB7CisgICAgICAgICAgICAgICAgLyogaGVyZSwgdGl0bGVjYXNlIGlzIHNhbWUgYXMgdXBwZXJjYXNlICovCisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1VQUEVSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gfmM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQ9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQyKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAocmVzdWx0PT1jKSA/IH5yZXN1bHQgOiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCB0b0Z1bGxVcHBlcihpbnQgYywgQ29udGV4dEl0ZXJhdG9yIGl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlKSB7CisgICAgICAgIHJldHVybiB0b1VwcGVyT3JUaXRsZShjLCBpdGVyLCBvdXQsIGxvY2FsZSwgbG9jQ2FjaGUsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9GdWxsVGl0bGUoaW50IGMsIENvbnRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlLCBpbnRbXSBsb2NDYWNoZSkgeworICAgICAgICByZXR1cm4gdG9VcHBlck9yVGl0bGUoYywgaXRlciwgb3V0LCBsb2NhbGUsIGxvY0NhY2hlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyogY2FzZSBmb2xkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogQ2FzZSBmb2xkaW5nIGlzIHNpbWlsYXIgdG8gbG93ZXJjYXNpbmcuCisgICAgICogVGhlIHJlc3VsdCBtYXkgYmUgYSBzaW1wbGUgbWFwcGluZywgaS5lLiwgYSBzaW5nbGUgY29kZSBwb2ludCwgb3IKKyAgICAgKiBhIGZ1bGwgbWFwcGluZywgaS5lLiwgYSBzdHJpbmcuCisgICAgICogSWYgdGhlIGNhc2UgZm9sZGluZyBmb3IgYSBjb2RlIHBvaW50IGlzIHRoZSBzYW1lIGFzIGl0cyBzaW1wbGUgKDE6MSkgbG93ZXJjYXNlIG1hcHBpbmcsCisgICAgICogdGhlbiBvbmx5IHRoZSBsb3dlcmNhc2UgbWFwcGluZyBpcyBzdG9yZWQuCisgICAgICoKKyAgICAgKiBTb21lIHNwZWNpYWwgY2FzZXMgYXJlIGhhcmRjb2RlZCBiZWNhdXNlIHRoZWlyIGNvbmRpdGlvbnMgY2Fubm90IGJlCisgICAgICogcGFyc2VkIGFuZCBwcm9jZXNzZWQgZnJvbSBDYXNlRm9sZGluZy50eHQuCisgICAgICoKKyAgICAgKiBVbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgc3BlY2lmaWVzIGZvciBpdHMgc3RhdHVzIGZpZWxkOgorCisgICAgIyBDOiBjb21tb24gY2FzZSBmb2xkaW5nLCBjb21tb24gbWFwcGluZ3Mgc2hhcmVkIGJ5IGJvdGggc2ltcGxlIGFuZCBmdWxsIG1hcHBpbmdzLgorICAgICMgRjogZnVsbCBjYXNlIGZvbGRpbmcsIG1hcHBpbmdzIHRoYXQgY2F1c2Ugc3RyaW5ncyB0byBncm93IGluIGxlbmd0aC4gTXVsdGlwbGUgY2hhcmFjdGVycyBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KKyAgICAjIFM6IHNpbXBsZSBjYXNlIGZvbGRpbmcsIG1hcHBpbmdzIHRvIHNpbmdsZSBjaGFyYWN0ZXJzIHdoZXJlIGRpZmZlcmVudCBmcm9tIEYuCisgICAgIyBUOiBzcGVjaWFsIGNhc2UgZm9yIHVwcGVyY2FzZSBJIGFuZCBkb3R0ZWQgdXBwZXJjYXNlIEkKKyAgICAjICAgIC0gRm9yIG5vbi1UdXJraWMgbGFuZ3VhZ2VzLCB0aGlzIG1hcHBpbmcgaXMgbm9ybWFsbHkgbm90IHVzZWQuCisgICAgIyAgICAtIEZvciBUdXJraWMgbGFuZ3VhZ2VzICh0ciwgYXopLCB0aGlzIG1hcHBpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG1hcHBpbmcgZm9yIHRoZXNlIGNoYXJhY3RlcnMuCisgICAgIworICAgICMgVXNhZ2U6CisgICAgIyAgQS4gVG8gZG8gYSBzaW1wbGUgY2FzZSBmb2xkaW5nLCB1c2UgdGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIEMgKyBTLgorICAgICMgIEIuIFRvIGRvIGEgZnVsbCBjYXNlIGZvbGRpbmcsIHVzZSB0aGUgbWFwcGluZ3Mgd2l0aCBzdGF0dXMgQyArIEYuCisgICAgIworICAgICMgICAgVGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIFQgY2FuIGJlIHVzZWQgb3Igb21pdHRlZCBkZXBlbmRpbmcgb24gdGhlIGRlc2lyZWQgY2FzZS1mb2xkaW5nCisgICAgIyAgICBiZWhhdmlvci4gKFRoZSBkZWZhdWx0IG9wdGlvbiBpcyB0byBleGNsdWRlIHRoZW0uKQorCisgICAgICogVW5pY29kZSAzLjIgaGFzICdUJyBtYXBwaW5ncyBhcyBmb2xsb3dzOgorCisgICAgMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKyAgICAgKiB3aGlsZSB0aGUgZGVmYXVsdCBtYXBwaW5ncyBmb3IgdGhlc2UgY29kZSBwb2ludHMgYXJlOgorCisgICAgMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgMDEzMDsgRjsgMDA2OSAwMzA3OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKworICAgICAqIFUrMDEzMCBoYXMgbm8gc2ltcGxlIGNhc2UgZm9sZGluZyAoc2ltcGxlLWNhc2UtZm9sZHMgdG8gaXRzZWxmKS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEJpdCBtYXNrIGZvciBnZXR0aW5nIGp1c3QgdGhlIG9wdGlvbnMgZnJvbSBhIHN0cmluZyBjb21wYXJlIG9wdGlvbnMgd29yZAorICAgICAqIHRoYXQgYXJlIHJlbGV2YW50IGZvciBjYXNlIGZvbGRpbmcgKG9mIGEgc2luZ2xlIHN0cmluZyBvciBjb2RlIHBvaW50KS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9MRF9DQVNFX09QVElPTlNfTUFTSyA9IDB4ZmY7CisgICAgCisgICAgLyogcmV0dXJuIHRoZSBzaW1wbGUgY2FzZSBmb2xkaW5nIG1hcHBpbmcgZm9yIGMgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGZvbGQoaW50IGMsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICBjKz1nZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgaW5kZXg7CisgICAgICAgICAgICBpZigoZXhjV29yZCZFWENfQ09ORElUSU9OQUxfRk9MRCkhPTApIHsKKyAgICAgICAgICAgICAgICAvKiBzcGVjaWFsIGNhc2UgZm9sZGluZyBtYXBwaW5ncywgaGFyZGNvZGVkICovCisgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmRk9MRF9DQVNFX09QVElPTlNfTUFTSyk9PVVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBpZihjPT0weDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ5OyBDOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIHNpbXBsZSBjYXNlIGZvbGRpbmcgZm9yIFUrMDEzMCAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBUdXJraWMgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0ZPTEQpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX0ZPTEQ7CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfTE9XRVIpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX0xPV0VSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9Z2V0U2xvdFZhbHVlKGV4Y1dvcmQsIGluZGV4LCBleGNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qCisgICAgICogSXNzdWUgZm9yIGNhbm9uaWNhbCBjYXNlbGVzcyBtYXRjaCAoVUFYICMyMSk6CisgICAgICogVHVya2ljIGNhc2Vmb2xkaW5nICh1c2luZyAiVCIgbWFwcGluZ3MgaW4gQ2FzZUZvbGRpbmcudHh0KSBkb2VzIG5vdCBwcmVzZXJ2ZQorICAgICAqIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSwgdW5saWtlIGRlZmF1bHQtb3B0aW9uIGNhc2Vmb2xkaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBJLWdyYXZlIGFuZCBJICsgZ3JhdmUgZm9sZCB0byBzdHJpbmdzIHRoYXQgYXJlIG5vdCBjYW5vbmljYWxseQorICAgICAqIGVxdWl2YWxlbnQuCisgICAgICogRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoZSBjb21tZW50IGluIHVub3JtX2NvbXBhcmUoKSBpbiB1bm9ybS5jcHAKKyAgICAgKiBhbmQgdGhlIGludGVybWVkaWF0ZSBwcm90b3R5cGUgY2hhbmdlcyBmb3IgSml0dGVyYnVnIDIwMjEuCisgICAgICogKEZvciBleGFtcGxlLCByZXZpc2lvbiAxLjEwNCBvZiB1Y2hhci5jIGFuZCAxLjQgb2YgQ2FzZUZvbGRpbmcudHh0LikKKyAgICAgKgorICAgICAqIFRoaXMgZGlkIG5vdCBnZXQgZml4ZWQgYmVjYXVzZSBpdCBhcHBlYXJzIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZpeAorICAgICAqIGl0IGZvciB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIChJLWdyYXZlIHZzLiBpLWdyYXZlKQorICAgICAqIHRvZ2V0aGVyIGluIGEgd2F5IHRoYXQgdGhleSBzdGlsbCBmb2xkIHRvIGNvbW1vbiByZXN1bHQgc3RyaW5ncy4KKyAgICAgKi8KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9GdWxsRm9sZGluZyhpbnQgYywgU3RyaW5nQnVmZmVyIG91dCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgaW50IHByb3BzOworCisgICAgICAgIHJlc3VsdD1jOworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9YytnZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpLCBleGNPZmZzZXQyOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgZnVsbCwgaW5kZXg7CisKKyAgICAgICAgICAgIGV4Y09mZnNldDI9ZXhjT2Zmc2V0OworCisgICAgICAgICAgICBpZigoZXhjV29yZCZFWENfQ09ORElUSU9OQUxfRk9MRCkhPTApIHsKKyAgICAgICAgICAgICAgICAvKiB1c2UgaGFyZGNvZGVkIGNvbmRpdGlvbnMgYW5kIG1hcHBpbmdzICovCisgICAgICAgICAgICAgICAgaWYoKG9wdGlvbnMmRk9MRF9DQVNFX09QVElPTlNfTUFTSyk9PVVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgICAgICBpZihjPT0weDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ5OyBDOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDY5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMzA7IEY7IDAwNjkgMDMwNzsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBUdXJraWMgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDEzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDEzMDsgVDsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTKSkgeworICAgICAgICAgICAgICAgIGxvbmcgdmFsdWU9Z2V0U2xvdFZhbHVlQW5kT2Zmc2V0KGV4Y1dvcmQsIEVYQ19GVUxMX01BUFBJTkdTLCBleGNPZmZzZXQpOworICAgICAgICAgICAgICAgIGZ1bGw9KGludCl2YWx1ZSYweGZmZmY7CisKKyAgICAgICAgICAgICAgICAvKiBzdGFydCBvZiBmdWxsIGNhc2UgbWFwcGluZyBzdHJpbmdzICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsKKworICAgICAgICAgICAgICAgIC8qIHNraXAgdGhlIGxvd2VyY2FzZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsJkZVTExfTE9XRVI7CisgICAgICAgICAgICAgICAgZnVsbD0oZnVsbD4+NCkmMHhmOworCisgICAgICAgICAgICAgICAgaWYoZnVsbCE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIG91dHB1dCBwb2ludGVyIHRvIHRoZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQobmV3IFN0cmluZyhleGNlcHRpb25zLCBleGNPZmZzZXQsIGZ1bGwpKTsKKworICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGggKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GT0xEKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19GT0xEOworICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0xPV0VSKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19MT1dFUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIH5jOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0PWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0Mik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKHJlc3VsdD09YykgPyB+cmVzdWx0IDogcmVzdWx0OworICAgIH0KKworICAgIC8vIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIGludCBpbmRleGVzW107CisgICAgcHJpdmF0ZSBjaGFyIGV4Y2VwdGlvbnNbXTsKKyAgICBwcml2YXRlIGNoYXIgdW5mb2xkW107CisKKyAgICBwcml2YXRlIENoYXJUcmllIHRyaWU7CisgICAgcHJpdmF0ZSBieXRlIGZvcm1hdFZlcnNpb25bXTsKKyAgICBwcml2YXRlIGJ5dGUgdW5pY29kZVZlcnNpb25bXTsgIAorCisgICAgLy8gZGF0YSBmb3JtYXQgY29uc3RhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX05BTUU9InVjYXNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9UWVBFPSJpY3UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRT1EQVRBX05BTUUrIi4iK0RBVEFfVFlQRTsKKworICAgIC8qIGZvcm1hdCAiY0FzRSIgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEZNVFtdPXsgMHg2MywgMHg0MSwgMHg1MywgMHg0NSB9OworCisgICAgLyogaW5kZXhlcyBpbnRvIGluZGV4ZXNbXSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9JTkRFWF9UT1A9MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfTEVOR1RIPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RSSUVfU0laRT0yOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9FWENfTEVOR1RIPTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1VORk9MRF9MRU5HVEg9NDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9NQVhfRlVMTF9MRU5HVEg9MTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RPUD0xNjsKKworICAgIC8vIGRlZmluaXRpb25zIGZvciAxNi1iaXQgY2FzZSBwcm9wZXJ0aWVzIHdvcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIC8qIDItYml0IGNvbnN0YW50cyBmb3IgdHlwZXMgb2YgY2FzZWQgY2hhcmFjdGVycyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRZUEVfTUFTSz0zOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkU9MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUj0xOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSPTI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElUTEU9MzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRUeXBlRnJvbVByb3BzKGludCBwcm9wcykgeworICAgICAgICByZXR1cm4gcHJvcHMmVFlQRV9NQVNLOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRU5TSVRJVkU9ICAgICA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT049ICAgICA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERPVF9NQVNLPSAgICAgIDB4MzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PX0RPVD0gICAgICAgIDA7ICAgICAgLyogbm9ybWFsIGNoYXJhY3RlcnMgd2l0aCBjYz0wICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPRlRfRE9UVEVEPSAgIDB4MTA7ICAgLyogc29mdC1kb3R0ZWQgY2hhcmFjdGVycyB3aXRoIGNjPTAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUJPVkU9ICAgICAgICAgMHgyMDsgICAvKiAiYWJvdmUiIGFjY2VudHMgd2l0aCBjYz0yMzAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVJfQUNDRU5UPSAgMHgzMDsgICAvKiBvdGhlciBhY2NlbnQgY2hhcmFjdGVyICgwPGNjIT0yMzApICovCisKKyAgICAvKiBubyBleGNlcHRpb246IGJpdHMgMTUuLjYgYXJlIGEgMTAtYml0IHNpZ25lZCBjYXNlIG1hcHBpbmcgZGVsdGEgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMVEFfU0hJRlQ9ICAgNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMVEFfTUFTSz0gICAgMHhmZmMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfREVMVEE9ICAgICAweDFmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0RFTFRBPSAgICAgKC1NQVhfREVMVEEtMSk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0RGVsdGEoaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiAoc2hvcnQpcHJvcHM+PkRFTFRBX1NISUZUOworICAgIH0KKworICAgIC8qIGNhc2UtaWdub3JhYmxlIHVzZXMgb25lIG9mIHRoZSBkZWx0YSBiaXRzLCBzZWUgZ2VuY2FzZS9zdG9yZS5jICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBU0VfSUdOT1JBQkxFPTB4NDA7CisKKyAgICAvKiBleGNlcHRpb246IGJpdHMgMTUuLjQgYXJlIGFuIHVuc2lnbmVkIDEyLWJpdCBpbmRleCBpbnRvIHRoZSBleGNlcHRpb25zIGFycmF5ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19TSElGVD0gICAgIDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19NQVNLPSAgICAgIDB4ZmZmMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0VYQ0VQVElPTlM9MHgxMDAwOworCisgICAgLyogZGVmaW5pdGlvbnMgZm9yIDE2LWJpdCBtYWluIGV4Y2VwdGlvbnMgd29yZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qIGZpcnN0IDggYml0cyBpbmRpY2F0ZSB2YWx1ZXMgaW4gb3B0aW9uYWwgc2xvdHMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0xPV0VSPTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19GT0xEPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19VUFBFUj0yOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfVElUTEU9MzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDXzQ9NDsgICAgICAgICAgIC8qIHJlc2VydmVkICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ181PTU7ICAgICAgICAgICAvKiByZXNlcnZlZCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQ0xPU1VSRT02OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfRlVMTF9NQVBQSU5HUz03OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQUxMX1NMT1RTPTg7ICAgLyogb25lIHBhc3QgdGhlIGxhc3Qgc2xvdCAqLworCisgICAgLyogZWFjaCBzbG90IGlzIDIgdWludDE2X3QgaW5zdGVhZCBvZiAxICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19ET1VCTEVfU0xPVFM9ICAgICAgICAgIDB4MTAwOworCisgICAgLyogcmVzZXJ2ZWQ6IGV4Y2VwdGlvbiBiaXRzIDExLi45ICovCisKKyAgICAvKiBFWENfRE9UX01BU0s9RE9UX01BU0s8PEVYQ19ET1RfU0hJRlQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0RPVF9TSElGVD04OworCisgICAgLyogbm9ybWFsbHkgc3RvcmVkIGluIHRoZSBtYWluIHdvcmQsIGJ1dCBwdXNoZWQgb3V0IGZvciBsYXJnZXIgZXhjZXB0aW9uIGluZGV4ZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0RPVF9NQVNLPSAgICAgICAgICAgICAgMHgzMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfTk9fRE9UPSAgICAgICAgICAgICAgICAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfU09GVF9ET1RURUQ9ICAgICAgICAgICAweDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19BQk9WRT0gICAgICAgICAgICAgICAgIDB4MjAwMDsgLyogImFib3ZlIiBhY2NlbnRzIHdpdGggY2M9MjMwICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19PVEhFUl9BQ0NFTlQ9ICAgICAgICAgIDB4MzAwMDsgLyogb3RoZXIgY2hhcmFjdGVyICgwPGNjIT0yMzApICovCisKKyAgICAvKiBjb21wbGV4L2NvbmRpdGlvbmFsIG1hcHBpbmdzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19DT05ESVRJT05BTF9TUEVDSUFMPSAgIDB4NDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0NPTkRJVElPTkFMX0ZPTEQ9ICAgICAgMHg4MDAwOworCisgICAgLyogZGVmaW5pdGlvbnMgZm9yIGxlbmd0aHMgd29yZCBmb3IgZnVsbCBjYXNlIG1hcHBpbmdzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfTE9XRVI9ICAgIDB4ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9GT0xESU5HPSAgMHhmMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9VUFBFUj0gICAgMHhmMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfVElUTEU9ICAgIDB4ZjAwMDsKKworICAgIC8qIG1heGltdW0gbGVuZ3RocyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX01BUFBJTkdTX01BWF9MRU5HVEg9NCoweGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENMT1NVUkVfTUFYX0xFTkdUSD0weGY7CisKKyAgICAvKiBjb25zdGFudHMgZm9yIHJldmVyc2UgY2FzZSBmb2xkaW5nICgidW5mb2xkIikgZGF0YSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkZPTERfUk9XUz0wOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkZPTERfUk9XX1dJRFRIPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVORk9MRF9TVFJJTkdfV0lEVEg9MjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJBcnJheUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRiMGIxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisKKy8qKgorICogQGF1dGhvciBEb3VnIEZlbHQKKyAqCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyQXJyYXlJdGVyYXRvciBleHRlbmRzIFVDaGFyYWN0ZXJJdGVyYXRvciB7CisgICAgcHJpdmF0ZSBmaW5hbCBjaGFyW10gdGV4dDsKKyAgICBwcml2YXRlIGZpbmFsIGludCBzdGFydDsKKyAgICBwcml2YXRlIGZpbmFsIGludCBsaW1pdDsKKyAgICBwcml2YXRlIGludCBwb3M7CisKKyAgICBwdWJsaWMgVUNoYXJBcnJheUl0ZXJhdG9yKGNoYXJbXSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0ID4gdGV4dC5sZW5ndGggfHwgc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic3RhcnQ6ICIgKyBzdGFydCArICIgb3IgbGltaXQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsaW1pdCArICIgb3V0IG9mIHJhbmdlIFswLCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRleHQubGVuZ3RoICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKworICAgICAgICB0aGlzLnBvcyA9IHN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyA8IGxpbWl0ID8gdGV4dFtwb3NdIDogRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIGxpbWl0IC0gc3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyAtIHN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIHBvcyA8IGxpbWl0ID8gdGV4dFtwb3MrK10gOiBET05FOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIHJldHVybiBwb3MgPiBzdGFydCA/IHRleHRbLS1wb3NdIDogRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IGxpbWl0IC0gc3RhcnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbmRleDogIiArIGluZGV4ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG91dCBvZiByYW5nZSBbMCwgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGxpbWl0IC0gc3RhcnQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBwb3MgPSBzdGFydCArIGluZGV4OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRleHQsIHN0YXJ0LCBmaWxsSW4sIG9mZnNldCwgbGVuKTsKKyAgICAgICAgcmV0dXJuIGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT5vYmplY3QKKyAgICAgKiBAcmV0dXJuIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG5ldmVyIGludm9rZWQKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhNDkwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgd3JhcHBlciBhcm91bmQgVUNoYXJhY3Rlckl0ZXJhdG9yIGFuZCBpbXBsZW1lbnRzIHRoZSAKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIHByb3RvY29sCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciBpbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yeworICAgIAorICAgIHB1YmxpYyBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyKXsKKyAgICAgICAgdGhpcy5pdGVyYXRvciA9IGl0ZXI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yOworCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRCZWdpbkluZGV4KCkgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0CisgICAgICogcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0QmVnaW5JbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKXsKKyAgICAgICAgLy9VQ2hhcmFjdGVySXRlcmF0b3IgYWx3YXlzIGl0ZXJhdGVzIGZyb20gMCB0byBsZW5ndGgKKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9TdGFydCgpOworICAgICAgICByZXR1cm4gKGNoYXIpaXRlcmF0b3IuY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIGdldEVuZEluZGV4KCktMSAoZ2V0RW5kSW5kZXgoKSBpZiB0aGUgdGV4dCBpcyBlbXB0eSkKKyAgICAgKiBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoYXQgcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIHRleHQgaXMgZW1wdHkKKyAgICAgKiBAc2VlICNnZXRFbmRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgbGFzdCgpeworICAgICAgICBpdGVyYXRvci5zZXRUb0xpbWl0KCk7CisgICAgICAgIHJldHVybiAoY2hhcilpdGVyYXRvci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiAoYXMgcmV0dXJuZWQgYnkgZ2V0SW5kZXgoKSkuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc2VlICNnZXRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpeworICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbAorICAgICAqIHRvIGdldEVuZEluZGV4KCksIHRoZSBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIGdldEVuZEluZGV4KCkgYW5kCisgICAgICogYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKXsKKyAgICAgICAgLy9wcmUtaW5jcmVtZW50CisgICAgICAgIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyBpbmRleCBieSBvbmUgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHRoZSBuZXcgaW5kZXguIElmIHRoZSBjdXJyZW50IGluZGV4IGlzIGdldEJlZ2luSW5kZXgoKSwgdGhlIGluZGV4CisgICAgICogcmVtYWlucyBhdCBnZXRCZWdpbkluZGV4KCkgYW5kIGEgdmFsdWUgb2YgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIG5ldyBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0QmVnaW5JbmRleCgpLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCl7CisgICAgICAgIC8vcHJlLWRlY3JlbWVudAorICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGUgdGV4dCBhbmQgcmV0dXJucyB0aGF0CisgICAgICogY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LiAgVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20KKyAgICAgKiBnZXRCZWdpbkluZGV4KCkgdG8gZ2V0RW5kSW5kZXgoKS4gIEFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24KKyAgICAgKiBpZiBhbiBpbnZhbGlkIHZhbHVlIGlzIHN1cHBsaWVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpcyBlcXVhbCB0byBnZXRFbmRJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgc2V0SW5kZXgoaW50IHBvc2l0aW9uKXsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgdGV4dCBiZWdpbnMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCl7CisgICAgICAgIC8vVUNoYXJhY3Rlckl0ZXJhdG9yIGFsd2F5cyBzdGFydHMgZnJvbSAwCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGVuZCBpbmRleCBvZiB0aGUgdGV4dC4gIFRoaXMgaW5kZXggaXMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCl7CisgICAgICAgIHJldHVybiBpdGVyYXRvci5nZXRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpeworICAgICAgICByZXR1cm4gaXRlcmF0b3IuZ2V0SW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciByZXN1bHQgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvciA9IChVQ2hhcmFjdGVySXRlcmF0b3IpdGhpcy5pdGVyYXRvci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeyAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIG9ubHkgaW52b2tlZCBpZiBiYWQgdW5kZXJseWluZyBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgICAgfQorICAgIH0gICAKKworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VkZTJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YQpAQCAtMCwwICsxLDE2NjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKKworLyoqCisqIEludGVybmFsIGNsYXNzIHRvIG1hbmFnZSBjaGFyYWN0ZXIgbmFtZXMuCisqIFNpbmNlIGRhdGEgZm9yIG5hbWVzIGFyZSBzdG9yZWQKKyogaW4gYW4gYXJyYXkgb2YgY2hhciwgYnkgZGVmYXVsdCBpbmRleGVzIHVzZWQgaW4gdGhpcyBjbGFzcyBpcyByZWZlcmluZyB0bworKiBhIDIgYnl0ZSBjb3VudCwgdW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQuIENhc2VzIHdoZXJlIHRoZSBpbmRleCBpcyByZWZlcmluZworKiB0byBhIGJ5dGUgY291bnQsIHRoZSBpbmRleCBpcyBoYWx2ZWQgYW5kIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBpbmRleCBpcworKiBldmVuIG9yIG9kZCwgdGhlIE1TQiBvciBMU0Igb2YgdGhlIHJlc3VsdCBjaGFyIGF0IHRoZSBoYWx2ZWQgaW5kZXggaXMKKyogcmV0dXJuZWQuIEZvciBpbmRleGVzIHRvIGFuIGFycmF5IG9mIGludCwgdGhlIGluZGV4IGlzIG11bHRpcGxpZWQgYnkgMiwKKyogcmVzdWx0IGNoYXIgYXQgdGhlIG11bHRpcGxpZWQgaW5kZXggYW5kIGl0cyBmb2xsb3dpbmcgY2hhciBpcyByZXR1cm5lZCBhcyBhbgorKiBpbnQuCisqIDxhIGhyZWY9Li4vbGFuZy9VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4gYWN0cyBhcyBhIHB1YmxpYyBmYWNhZGUgZm9yIHRoaXMgY2xhc3MKKyogTm90ZSA6IDAgLSAweDFGIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgd2l0aG91dCBuYW1lcyBpbiBVbmljb2RlIDMuMAorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugbm92MDcwMAorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIE51bWJlciBvZiBsaW5lcyBwZXIgZ3JvdXAKKyAgICAqIDEgPDwgR1JPVVBfU0hJRlRfCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FU19QRVJfR1JPVVBfID0gMSA8PCA1OworICAgIC8qKgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGdyb3VwcworICAgICAqLworICAgIHB1YmxpYyBpbnQgbV9ncm91cGNvdW50XyA9IDA7CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgVUNoYXJhY3Rlck5hbWUKKyAgICAgKiBAcmV0dXJuIG9ubHkgaW5zdGFuY2Ugb2YgVUNoYXJhY3Rlck5hbWUKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiByZWFkaW5nIG9mIG5hbWUgZGF0YSBmYWlscworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgZ2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgaWYgKElOU1RBTkNFXyA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElOU1RBTkNFXyA9IG5ldyBVQ2hhcmFjdGVyTmFtZSgpOworICAgICAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25zdHJ1Y3QgVUNoYXJhY3Rlck5hbWUuIE1pc3NpbmcgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElOU1RBTkNFXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHJpZXZlIHRoZSBuYW1lIG9mIGEgVW5pY29kZSBjb2RlIHBvaW50LgorICAgICogRGVwZW5kaW5nIG9uIDxjb2RlPmNob2ljZTwvY29kZT4sIHRoZSBjaGFyYWN0ZXIgbmFtZSB3cml0dGVuIGludG8gdGhlCisgICAgKiBidWZmZXIgaXMgdGhlICJtb2Rlcm4iIG5hbWUgb3IgdGhlIG5hbWUgdGhhdCB3YXMgZGVmaW5lZCBpbiBVbmljb2RlCisgICAgKiB2ZXJzaW9uIDEuMC4KKyAgICAqIFRoZSBuYW1lIGNvbnRhaW5zIG9ubHkgImludmFyaWFudCIgY2hhcmFjdGVycworICAgICogbGlrZSBBLVosIDAtOSwgc3BhY2UsIGFuZCAnLScuCisgICAgKgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUuCisgICAgKiBAcGFyYW0gY2hvaWNlIFNlbGVjdG9yIGZvciB3aGljaCBuYW1lIHRvIGdldC4KKyAgICAqIEByZXR1cm4gaWYgY29kZSBwb2ludCBpcyBhYm92ZSAweDFmZmYsIG51bGwgaXMgcmV0dXJuZWQKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgY2gsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAoY2ggPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8CisgICAgICAgICAgICBjaG9pY2UgPiBVQ2hhcmFjdGVyTmFtZUNob2ljZS5DSEFSX05BTUVfQ0hPSUNFX0NPVU5UKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworCisgICAgICAgIHJlc3VsdCA9IGdldEFsZ05hbWUoY2gsIGNob2ljZSk7CisKKyAgICAgICAgLy8gZ2V0dGluZyBub3JtYWwgY2hhcmFjdGVyIG5hbWUKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IHJlc3VsdC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEV4dGVuZGVkTmFtZShjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEdyb3VwTmFtZShjaCwgY2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGaW5kIGEgY2hhcmFjdGVyIGJ5IGl0cyBuYW1lIGFuZCByZXR1cm4gaXRzIGNvZGUgcG9pbnQgdmFsdWUKKyAgICAqIEBwYXJhbSBjaG9pY2Ugc2VsZWN0b3IgdG8gaW5kaWNhdGUgaWYgYXJndW1lbnQgbmFtZSBpcyBhIFVuaWNvZGUgMS4wCisgICAgKiAgICAgICAgb3IgdGhlIG1vc3QgY3VycmVudCB2ZXJzaW9uCisgICAgKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSB0byBzZWFyY2ggZm9yCisgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q2hhckZyb21OYW1lKGludCBjaG9pY2UsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2tzIGZvciBpbGxlZ2FsIGFyZ3VtZW50cworICAgICAgICBpZiAoY2hvaWNlID49IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkNIQVJfTkFNRV9DSE9JQ0VfQ09VTlQgfHwKKyAgICAgICAgICAgIG5hbWUgPT0gbnVsbCB8fCBuYW1lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRyeSBleHRlbmRlZCBuYW1lcyBmaXJzdAorICAgICAgICBpbnQgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRDaGFyKG5hbWUudG9Mb3dlckNhc2UoKSwgY2hvaWNlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB1cHBlckNhc2VOYW1lID0gbmFtZS50b1VwcGVyQ2FzZSgpOworICAgICAgICAvLyB0cnkgYWxnb3JpdGhtaWMgbmFtZXMgZmlyc3QsIGlmIGZhaWxzIHRoZW4gdHJ5IGdyb3VwIG5hbWVzCisgICAgICAgIC8vIGludCByZXN1bHQgPSBnZXRBbGdvcml0aG1DaGFyKGNob2ljZSwgdXBwZXJjYXNlbmFtZSk7CisKKyAgICAgICAgaWYgKGNob2ljZSAhPSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGlmIChtX2FsZ29yaXRobV8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvdW50ID0gbV9hbGdvcml0aG1fLmxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQgLS07IGNvdW50ID49IDA7IGNvdW50IC0tKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9hbGdvcml0aG1fW2NvdW50XS5nZXRDaGFyKHVwcGVyQ2FzZU5hbWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaG9pY2UgPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuRVhURU5ERURfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICByZXN1bHQgPSBnZXRHcm91cENoYXIodXBwZXJDYXNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFX0NIQVJfTkFNRSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsIGNob2ljZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyB0aGVzZSBhcmUgYWxsIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IgdXNlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBSZWFkcyBhIGJsb2NrIG9mIGNvbXByZXNzZWQgbGVuZ3RocyBvZiAzMiBzdHJpbmdzIGFuZCBleHBhbmRzIHRoZW0gaW50bworICAgICogb2Zmc2V0cyBhbmQgbGVuZ3RocyBmb3IgZWFjaCBzdHJpbmcuIExlbmd0aHMgYXJlIHN0b3JlZCB3aXRoIGEKKyAgICAqIHZhcmlhYmxlLXdpZHRoIGVuY29kaW5nIGluIGNvbnNlY3V0aXZlIG5pYmJsZXM6CisgICAgKiBJZiBhIG5pYmJsZTwweGMsIHRoZW4gaXQgaXMgdGhlIGxlbmd0aCBpdHNlbGYgKDAgPSBlbXB0eSBzdHJpbmcpLgorICAgICogSWYgYSBuaWJibGU+PTB4YywgdGhlbiBpdCBmb3JtcyBhIGxlbmd0aCB2YWx1ZSB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAqIG5pYmJsZS4KKyAgICAqIFRoZSBvZmZzZXRzIGFuZCBsZW5ndGhzIGFycmF5cyBtdXN0IGJlIGF0IGxlYXN0IDMzIChvbmUgbW9yZSkgbG9uZworICAgICogYmVjYXVzZSB0aGVyZSBpcyBubyBjaGVjayBoZXJlIGF0IHRoZSBlbmQgaWYgdGhlIGxhc3QgbmliYmxlIGlzIHN0aWxsCisgICAgKiB1c2VkLgorICAgICogQHBhcmFtIGluZGV4IG9mIGdyb3VwIHN0cmluZyBvYmplY3QgaW4gYXJyYXkKKyAgICAqIEBwYXJhbSBvZmZzZXRzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIG9mZnNldHMKKyAgICAqIEBwYXJhbSBsZW5ndGhzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIGxlbmd0aAorICAgICogQHJldHVybiBuZXh0IGluZGV4IG9mIHRoZSBkYXRhIHN0cmluZyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGVuZ3RocworICAgICogICAgICAgICBpbiB0ZXJtcyBvZiBieXRlIGFkZHJlc3MKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXBMZW5ndGhzKGludCBpbmRleCwgY2hhciBvZmZzZXRzW10sIGNoYXIgbGVuZ3Roc1tdKQorICAgIHsKKyAgICAgICAgY2hhciBsZW5ndGggPSAweGZmZmY7CisgICAgICAgIGJ5dGUgYiA9IDAsCisgICAgICAgICAgICBuID0gMDsKKyAgICAgICAgaW50IHNoaWZ0OworICAgICAgICBpbmRleCA9IGluZGV4ICogbV9ncm91cHNpemVfOyAvLyBieXRlIGNvdW50IG9mZnNldHMgb2YgZ3JvdXAgc3RyaW5ncworICAgICAgICBpbnQgc3RyaW5nb2Zmc2V0ID0gVUNoYXJhY3RlclV0aWxpdHkudG9JbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwaW5mb19baW5kZXggKyBPRkZTRVRfSElHSF9PRkZTRVRfXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBpbmZvX1tpbmRleCArIE9GRlNFVF9MT1dfT0ZGU0VUX10pOworCisgICAgICAgIG9mZnNldHNbMF0gPSAwOworCisgICAgICAgIC8vIGFsbCAzMiBsZW5ndGhzIG11c3QgYmUgcmVhZCB0byBnZXQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgZ3JvdXAKKyAgICAgICAgLy8gc3RyaW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTElORVNfUEVSX0dST1VQXzsgc3RyaW5nb2Zmc2V0ICsrKSB7CisgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19bc3RyaW5nb2Zmc2V0XTsKKyAgICAgICAgICAgIHNoaWZ0ID0gNDsKKworICAgICAgICAgICAgd2hpbGUgKHNoaWZ0ID49IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIG5pYmJsZQorICAgICAgICAgICAgICAgIG4gPSAoYnl0ZSkoKGIgPj4gc2hpZnQpICYgMHgwRik7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAweGZmZmYgJiYgbiA+IFNJTkdMRV9OSUJCTEVfTUFYXykgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAoY2hhcikoKG4gLSAxMikgPDwgNCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICE9IDB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhzW2ldID0gKGNoYXIpKChsZW5ndGggfCBuKSArIDEyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3Roc1tpXSA9IChjaGFyKW47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IExJTkVTX1BFUl9HUk9VUF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tpICsgMV0gPSAoY2hhcikob2Zmc2V0c1tpXSArIGxlbmd0aHNbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMHhmZmZmOworICAgICAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHNoaWZ0IC09IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmluZ29mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGdyb3VwIGluZGV4LgorICAgICogVW5pY29kZURhdGEudHh0IHVzZXMgJzsnIGFzIGEgZmllbGQgc2VwYXJhdG9yLCBzbyBubyBmaWVsZCBjYW4gY29udGFpbgorICAgICogJzsnIGFzIHBhcnQgb2YgaXRzIGNvbnRlbnRzLiBJbiB1bmFtZXMuaWN1LCBpdCBpcyBtYXJrZWQgYXMKKyAgICAqIHRva2VuWyc7J10gPT0gLTEgb25seSBpZiB0aGUgc2VtaWNvbG9uIGlzIHVzZWQgaW4gdGhlIGRhdGEgZmlsZSAtIHdoaWNoCisgICAgKiBpcyBpZmYgd2UgaGF2ZSBVbmljb2RlIDEuMCBuYW1lcyBvciBJU08gY29tbWVudHMuCisgICAgKiBTbywgaXQgd2lsbCBiZSB0b2tlblsnOyddID09IC0xIGlmIHdlIHN0b3JlIFUxLjAgbmFtZXMvSVNPIGNvbW1lbnRzCisgICAgKiBhbHRob3VnaCB3ZSBrbm93IHRoYXQgaXQgd2lsbCBuZXZlciBiZSBwYXJ0IG9mIGEgbmFtZS4KKyAgICAqIEVxdWl2YWxlbnQgdG8gSUNVNEMncyBleHBhbmROYW1lLgorICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBncm91cCBuYW1lIHN0cmluZyBpbiBieXRlIGNvdW50CisgICAgKiBAcGFyYW0gbGVuZ3RoIG9mIHRoZSBncm91cCBuYW1lIHN0cmluZworICAgICogQHBhcmFtIGNob2ljZSBvZiBVbmljb2RlIDEuMCBuYW1lIG9yIHRoZSBtb3N0IGN1cnJlbnQgbmFtZQorICAgICogQHJldHVybiBuYW1lIG9mIHRoZSBncm91cAorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRHcm91cE5hbWUoaW50IGluZGV4LCBpbnQgbGVuZ3RoLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRQorICAgICAgICAgICAgfHwgY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLklTT19DT01NRU5UXykgeworICAgICAgICAgICAgaWYgKCc7JyA+PSBtX3Rva2VudGFibGVfLmxlbmd0aCB8fCBtX3Rva2VudGFibGVfWyc7J10gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgbW9kZXJuIG5hbWUKKyAgICAgICAgICAgICAgICBpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwQnl0ZVN1YlN0cmluZyhtX2dyb3Vwc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBsZW5ndGgsIChieXRlKSc7Jyk7CisgICAgICAgICAgICAgICAgbGVuZ3RoIC09IChpbmRleCAtIG9sZGluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLklTT19DT01NRU5UXykgeworICAgICAgICAgICAgICAgICAgICAvLyBza2lwcyB0aGUgMS4wIE5hbWUgdG8gdGhlIGlzbyBjb21tZW50IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcEJ5dGVTdWJTdHJpbmcobV9ncm91cHN0cmluZ18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIGxlbmd0aCwgKGJ5dGUpJzsnKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIC09IChpbmRleCAtIG9sZGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2VtaWNvbG9uIGJ5dGUgaXMgYSB0b2tlbiBudW1iZXIsIHRoZXJlZm9yZSBvbmx5IG1vZGVybgorICAgICAgICAgICAgICAgIC8vIG5hbWVzIGFyZSBzdG9yZWQgaW4gdW5hbWVzLmRhdCBhbmQgdGhlcmUgaXMgbm8gc3VjaAorICAgICAgICAgICAgICAgIC8vIHJlcXVlc3RlZCBVbmljb2RlIDEuMCBuYW1lIGhlcmUKKyAgICAgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGJ5dGUgYjsKKyAgICAgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19baW5kZXggKyBpXTsKKyAgICAgICAgICAgICAgICBpICsrOworCisgICAgICAgICAgICAgICAgaWYgKGIgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGIgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZChiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiAmIDB4MDBmZl07CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBsZWFkIGJ5dGUgZm9yIGEgZG91YmxlLWJ5dGUgdG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gbV90b2tlbnRhYmxlX1tiIDw8IDggfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgaV0gJiAweDAwZmYpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGIgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgc2VtaWNvbG9uIGlmIHdlIGFyZSBzZWVraW5nIGV4dGVuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmFtZXMgYW5kIHRoZXJlIHdhcyBubyAyLjAgbmFtZSBidXQgdGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBhIDEuMCBuYW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpID09IDAgJiYgY2hvaWNlID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHBsaWNpdCBsZXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKChjaGFyKShiICYgMHgwMGZmKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHdyaXRlIHRva2VuIHdvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXywgbV90b2tlbnN0cmluZ18sIHRva2VuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHJpZXZlcyB0aGUgZXh0ZW5kZWQgbmFtZQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHRlbmRlZE5hbWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfQ0hBUl9OQU1FKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnZXROYW1lKGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRPcjEwTmFtZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBncm91cCBpbmRleCBmb3IgdGhlIGNvZGVwb2ludCwgb3IgdGhlIGdyb3VwIGJlZm9yZSBpdC4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBncm91cCBpbmRleCBjb250YWluaW5nIGNvZGVwb2ludCBvciB0aGUgZ3JvdXAgYmVmb3JlIGl0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXAoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIGludCBlbmRHcm91cCA9IG1fZ3JvdXBjb3VudF87CisgICAgICAgIGludCBtc2IgICAgICA9IGdldENvZGVwb2ludE1TQihjb2RlcG9pbnQpOworICAgICAgICBpbnQgcmVzdWx0ICAgPSAwOworICAgICAgICAvLyBiaW5hcnkgc2VhcmNoIGZvciB0aGUgZ3JvdXAgb2YgbmFtZXMgdGhhdCBjb250YWlucyB0aGUgb25lIGZvcgorICAgICAgICAvLyBjb2RlCisgICAgICAgIC8vIGZpbmQgdGhlIGdyb3VwIHRoYXQgY29udGFpbnMgY29kZXBvaW50LCBvciB0aGUgaGlnaGVzdCBiZWZvcmUgaXQKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IGVuZEdyb3VwIC0gMSkgeworICAgICAgICAgICAgaW50IGdpbmRleCA9IChyZXN1bHQgKyBlbmRHcm91cCkgPj4gMTsKKyAgICAgICAgICAgIGlmIChtc2IgPCBnZXRHcm91cE1TQihnaW5kZXgpKSB7CisgICAgICAgICAgICAgICAgZW5kR3JvdXAgPSBnaW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnaW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBleHRlbmRlZCBhbmQgMS4wIG5hbWUgd2hlbiB0aGUgbW9zdCBjdXJyZW50IHVuaWNvZGUgbmFtZXMKKyAgICAgKiBmYWlsCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbmFtZSBvZiBjb2RlcG9pbnQgZXh0ZW5kZWQgb3IgMS4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHRlbmRlZE9yMTBOYW1lKGludCBjaCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldE5hbWUoY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShjaCk7CisgICAgICAgICAgICAvLyBSZXR1cm4gdW5rbm93biBpZiB0aGUgdGFibGUgb2YgbmFtZXMgYWJvdmUgaXMgbm90IHVwIHRvCisgICAgICAgICAgICAvLyBkYXRlLgorICAgICAgICAgICAgaWYgKHR5cGUgPj0gVFlQRV9OQU1FU18ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9UWVBFX05BTUVfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVFlQRV9OQU1FU19bdHlwZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZCgnPCcpOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoJy0nKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKS50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgICAgIGludCB6ZXJvcyA9IDQgLSBjaFN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoemVyb3MgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgIHplcm9zIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZChjaFN0cik7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoJz4nKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBNU0IgZnJvbSB0aGUgZ3JvdXAgaW5kZXgKKyAgICAgKiBAcGFyYW0gZ2luZGV4IGdyb3VwIGluZGV4CisgICAgICogQHJldHVybiB0aGUgTVNCIG9mIHRoZSBncm91cCBpZiBnaW5kZXggaXMgdmFsaWQsIC0xIG90aGVyd2lzZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXBNU0IoaW50IGdpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChnaW5kZXggPj0gbV9ncm91cGNvdW50XykgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2dyb3VwaW5mb19bZ2luZGV4ICogbV9ncm91cHNpemVfXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBNU0Igb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBNU0Igb2YgdGhlIGNvZGVwb2ludAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvZGVwb2ludE1TQihpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvZGVwb2ludCA+PiBHUk9VUF9TSElGVF87CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBjb2RlcG9pbnQgKyAxIG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbGltaXQgY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEdyb3VwTGltaXQoaW50IG1zYikKKyAgICB7CisgICAgICAgIHJldHVybiAobXNiIDw8IEdST1VQX1NISUZUXykgKyBMSU5FU19QRVJfR1JPVVBfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbWluaW11bSBjb2RlcG9pbnQgb2YgdGhlIGdyb3VwCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0R3JvdXBNaW4oaW50IG1zYikKKyAgICB7CisgICAgICAgIHJldHVybiBtc2IgPDwgR1JPVVBfU0hJRlRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9mZnNldCB0byBhIGdyb3VwCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGEgZ3JvdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRHcm91cE9mZnNldChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvZGVwb2ludCAmIEdST1VQX01BU0tfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIGEgZ3JvdXAKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBtaW5pbXVtIGNvZGVwb2ludCBpbiB0aGUgZ3JvdXAgd2hpY2ggY29kZXBvaW50IGJlbG9uZ3MgdG8KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0R3JvdXBNaW5Gcm9tQ29kZXBvaW50KGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICByZXR1cm4gY29kZXBvaW50ICYgfkdST1VQX01BU0tfOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgQWxnb3JpdGhtIHJhbmdlIGxlbmd0aAorICAgICAqIEByZXR1cm4gQWxnb3JpdGhtIHJhbmdlIGxlbmd0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtTGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsZ29yaXRobV8ubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIGFsZ29yaXRobSByYW5nZSBzdGFydAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtU3RhcnQoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYWxnb3JpdGhtX1tpbmRleF0ubV9yYW5nZXN0YXJ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGluZGV4IGFsZ29yaXRobSBpbmRleAorICAgICAqIEByZXR1cm4gYWxnb3JpdGhtIHJhbmdlIGVuZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxnb3JpdGhtRW5kKGludCBpbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsZ29yaXRobV9baW5kZXhdLm1fcmFuZ2VlbmRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIEFsZ29yaXRobWljIG5hbWUgb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG1pYyByYW5nZSBpbmRleAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGFsZ29yaXRobWljIG5hbWUgb2YgY29kZXBvaW50CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRBbGdvcml0aG1OYW1lKGludCBpbmRleCwgaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uZGVsZXRlKDAsIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNvZGVwb2ludCwgbV91dGlsU3RyaW5nQnVmZmVyXyk7CisgICAgICAgICAgICByZXN1bHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGdyb3VwIG5hbWUgb2YgdGhlIGNoYXJhY3RlcgorICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBnZXQgdGhlIGdyb3VwIG5hbWUKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2Ugc2VsZWN0b3IgdG8gY2hvb3NlIGEgdW5pY29kZSAxLjAgb3IgbmV3ZXIgbmFtZQorICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRHcm91cE5hbWUoaW50IGNoLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgLy8gZ2V0cyB0aGUgbXNiCisgICAgICAgIGludCBtc2IgICA9IGdldENvZGVwb2ludE1TQihjaCk7CisgICAgICAgIGludCBncm91cCA9IGdldEdyb3VwKGNoKTsKKworICAgICAgICAvLyByZXR1cm4gdGhpcyBpZiBpdCBpcyBhbiBleGFjdCBtYXRjaAorICAgICAgICBpZiAobXNiID09IG1fZ3JvdXBpbmZvX1tncm91cCAqIG1fZ3JvdXBzaXplX10pIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IGdldEdyb3VwTGVuZ3Rocyhncm91cCwgbV9ncm91cG9mZnNldHNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzXyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggJiBHUk9VUF9NQVNLXzsKKyAgICAgICAgICAgIHJldHVybiBnZXRHcm91cE5hbWUoaW5kZXggKyBtX2dyb3Vwb2Zmc2V0c19bb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncm91cGxlbmd0aHNfW29mZnNldF0sIGNob2ljZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyB0aGVzZSBhcmUgdHJhbnNsaXRlcmF0b3IgdXNlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgY29kZXBvaW50IG5hbWUuCisgICAgICogRXF1aXZhbGVudCB0byB1cHJ2X2dldE1heENoYXJOYW1lTGVuZ3RoLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBjb2RlcG9pbnQgbmFtZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKQorICAgIHsKKyAgICAgICAgaWYgKGluaXROYW1lU2V0c0xlbmd0aHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fbWF4TmFtZUxlbmd0aF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBpc28gY29tbWVudHMuCisgICAgICogRXF1aXZhbGVudCB0byB1cHJ2X2dldE1heElTT0NvbW1lbnRMZW5ndGguCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW55IGNvZGVwb2ludCBuYW1lCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBpbnQgZ2V0TWF4SVNPQ29tbWVudExlbmd0aCgpCisgICAgeworICAgICAgICBpZiAoaW5pdE5hbWVTZXRzTGVuZ3RocygpKSB7CisgICAgICAgICAgICByZXR1cm4gbV9tYXhJU09Db21tZW50TGVuZ3RoXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogRmlsbHMgc2V0IHdpdGggY2hhcmFjdGVycyB0aGF0IGFyZSB1c2VkIGluIFVuaWNvZGUgY2hhcmFjdGVyIG5hbWVzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gdXBydl9nZXRDaGFyTmFtZUNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc2V0KQorICAgIHsKKyAgICAgICAgY29udmVydChtX25hbWVTZXRfLCBzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGxzIHNldCB3aXRoIGNoYXJhY3RlcnMgdGhhdCBhcmUgdXNlZCBpbiBVbmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIHVwcnZfZ2V0SVNPQ29tbWVudENoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyB2b2lkIGdldElTT0NvbW1lbnRDaGFyYWN0ZXJzKFVuaWNvZGVTZXQgc2V0KQorICAgIHsKKyAgICAgICAgY29udmVydChtX0lTT0NvbW1lbnRTZXRfLCBzZXQpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBBbGdvcml0aG1pYyBuYW1lIGNsYXNzCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgQWxnb3JpdGhtTmFtZQorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RhbnQgdHlwZSB2YWx1ZSBvZiB0aGUgZGlmZmVyZW50IEFsZ29yaXRobU5hbWUKKyAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBUWVBFXzBfID0gMDsKKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBUWVBFXzFfID0gMTsKKworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAgICAqLworICAgICAgICBBbGdvcml0aG1OYW1lKCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgaW5mb3JtYXRpb24gZm9yIGFjY2Vzc2luZyB0aGUgYWxnb3JpdGhtaWMgbmFtZXMKKyAgICAgICAgKiBAcGFyYW0gcmFuZ2VzdGFydCBzdGFydGluZyBjb2RlIHBvaW50IHRoYXQgbGllcyB3aXRoaW4gdGhpcyBuYW1lIGdyb3VwCisgICAgICAgICogQHBhcmFtIHJhbmdlZW5kIGVuZCBjb2RlIHBvaW50IHRoYXQgbGllcyB3aXRoaW4gdGhpcyBuYW1lIGdyb3VwCisgICAgICAgICogQHBhcmFtIHR5cGUgYWxnb3JpdGhtIHR5cGUuIFRoZXJlJ3MgMiBraW5kcyBvZiBhbGdvcml0aG1pYyB0eXBlLiBGaXJzdAorICAgICAgICAqICAgICAgICB3aGljaCB1c2VzIGNvZGUgcG9pbnQgYXMgcGFydCBvZiBpdHMgbmFtZSBhbmQgdGhlIG90aGVyIHVzZXMKKyAgICAgICAgKiAgICAgICAgdmFyaWFudCBwb3N0Zml4IHN0cmluZ3MKKyAgICAgICAgKiBAcGFyYW0gdmFyaWFudCBhbGdvcml0aG1pYyB2YXJpYW50CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHZhbHVlcyBhcmUgdmFsaWQKKyAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBzZXRJbmZvKGludCByYW5nZXN0YXJ0LCBpbnQgcmFuZ2VlbmQsIGJ5dGUgdHlwZSwgYnl0ZSB2YXJpYW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmFuZ2VzdGFydCA+PSBVQ2hhcmFjdGVyLk1JTl9WQUxVRSAmJiByYW5nZXN0YXJ0IDw9IHJhbmdlZW5kCisgICAgICAgICAgICAgICAgJiYgcmFuZ2VlbmQgPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICAgICAodHlwZSA9PSBUWVBFXzBfIHx8IHR5cGUgPT0gVFlQRV8xXykpIHsKKyAgICAgICAgICAgICAgICBtX3Jhbmdlc3RhcnRfID0gcmFuZ2VzdGFydDsKKyAgICAgICAgICAgICAgICBtX3JhbmdlZW5kXyA9IHJhbmdlZW5kOworICAgICAgICAgICAgICAgIG1fdHlwZV8gPSB0eXBlOworICAgICAgICAgICAgICAgIG1fdmFyaWFudF8gPSB2YXJpYW50OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgZmFjdG9yIGRhdGEKKyAgICAgICAgKiBAcGFyYW0gZmFjdG9yIEFycmF5IG9mIGZhY3RvcgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBmYWN0b3JzIGFyZSB2YWxpZAorICAgICAgICAqLworICAgICAgICBib29sZWFuIHNldEZhY3RvcihjaGFyIGZhY3RvcltdKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmFjdG9yLmxlbmd0aCA9PSBtX3ZhcmlhbnRfKSB7CisgICAgICAgICAgICAgICAgbV9mYWN0b3JfID0gZmFjdG9yOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgbmFtZSBwcmVmaXgKKyAgICAgICAgKiBAcGFyYW0gcHJlZml4CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHByZWZpeCBpcyBzZXQKKyAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBzZXRQcmVmaXgoU3RyaW5nIHByZWZpeCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBudWxsICYmIHByZWZpeC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBtX3ByZWZpeF8gPSBwcmVmaXg7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBTZXRzIHRoZSB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHBhcmFtIHN0cmluZyB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHZhbHVlcyBhcmUgc2V0CisgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gc2V0RmFjdG9yU3RyaW5nKGJ5dGUgc3RyaW5nW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGZhY3RvciBhbmQgdmFyaWFudCBzdHJpbmcgY2FuIGJlIGVtcHR5IGZvciB0aGluZ3MgbGlrZQorICAgICAgICAgICAgLy8gaGFuZ2d1bCBjb2RlIHBvaW50cworICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfID0gc3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDaGVja3MgaWYgY29kZSBwb2ludCBsaWVzIGluIEFsZ29yaXRobSBvYmplY3QgYXQgaW5kZXgKKyAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAgICAqLworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGludCBjaCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fcmFuZ2VzdGFydF8gPD0gY2ggJiYgY2ggPD0gbV9yYW5nZWVuZF87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBcHBlbmRzIGFsZ29yaXRobSBuYW1lIG9mIGNvZGUgcG9pbnQgaW50byBTdHJpbmdCdWZmZXIuCisgICAgICAgICogTm90ZSB0aGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdmFsaWRpdHkgb2YgY29kZSBwb2ludCBpbiBBbGdvcml0aG0sCisgICAgICAgICogcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBjb2RlIHBvaW50IGRvZXMgbm90IGJlbG9uZyBpbiBBbGdvcml0aG0uCisgICAgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAgICAgKiBAcGFyYW0gc3RyIFN0cmluZ0J1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgICAgKi8KKyAgICAgICAgdm9pZCBhcHBlbmROYW1lKGludCBjaCwgU3RyaW5nQnVmZmVyIHN0cikKKyAgICAgICAgeworICAgICAgICAgICAgc3RyLmFwcGVuZChtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXzoKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJlZml4IGZvbGxvd2VkIGJ5IGhleCBkaWdpdHMgaW5kaWNhdGluZyB2YXJpYW50cworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChjaCwgbV92YXJpYW50Xywgc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfOgorICAgICAgICAgICAgICAgICAgICAvLyBwcmVmaXggZm9sbG93ZWQgYnkgZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggLSBtX3Jhbmdlc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXhlc1tdID0gbV91dGlsSW50QnVmZmVyXzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlIGZhY3RvcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZhY3Rvcml6ZWQgZWxlbWVudHMgYXJlIGRldGVybWluZWQgYnkgbW9kdWxvCisgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxJbnRCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbV92YXJpYW50XyAtIDE7IGkgPiAwOyBpIC0tKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXSAmIDB4MDBGRjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0gb2Zmc2V0ICUgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBsYXN0IG1vZHVsdXMgYmVjYXVzZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvZGUgPD0gZmFjdG9yc1swXQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhlc1swXSA9IG9mZnNldDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGdldEZhY3RvclN0cmluZyhpbmRleGVzLCBtX3ZhcmlhbnRfKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgZm9yIHRoZSBhcmd1bWVudCBhbGdvcml0aG1pYyBuYW1lCisgICAgICAgICogQHJldHVybiB0aGUgYWxnb3JpdGhtaWMgY2hhciBvciAtMSBvdGhlcndpc2UuCisgICAgICAgICovCisgICAgICAgIGludCBnZXRDaGFyKFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgcHJlZml4bGVuID0gbV9wcmVmaXhfLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPCBwcmVmaXhsZW4gfHwKKyAgICAgICAgICAgICAgICAhbV9wcmVmaXhfLmVxdWFscyhuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhsZW4pKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXyA6CisgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludChuYW1lLnN1YnN0cmluZyhwcmVmaXhsZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgaXQgZml0IGludG8gdGhlIHJhbmdlPworICAgICAgICAgICAgICAgICAgICBpZiAobV9yYW5nZXN0YXJ0XyA8PSByZXN1bHQgJiYgcmVzdWx0IDw9IG1fcmFuZ2VlbmRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfIDoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwZXRpdGF0aXZlIHN1ZmZpeCBuYW1lIGNvbXBhcmlzb24gZG9uZSBoZXJlCisgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBpcyB0aGUgY2hhcmFjdGVyIGNvZGUgLSBzdGFydAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IG1fcmFuZ2VzdGFydF87IGNoIDw9IG1fcmFuZ2VlbmRfOyBjaCArKykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoIC0gbV9yYW5nZXN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleGVzW10gPSBtX3V0aWxJbnRCdWZmZXJfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZSBmYWN0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmFjdG9yaXplZCBlbGVtZW50cyBhcmUgZGV0ZXJtaW5lZCBieSBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobV91dGlsSW50QnVmZmVyXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtX3ZhcmlhbnRfIC0gMTsgaSA+IDA7IGkgLS0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3IgPSBtX2ZhY3Rvcl9baV0gJiAweDAwRkY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBvZmZzZXQgJSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBjYWxjdWxhdGUgdGhlIGxhc3QgbW9kdWx1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2Ugc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2RlIDw9IGZhY3RvcnNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzWzBdID0gb2Zmc2V0OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVGYWN0b3JTdHJpbmcoaW5kZXhlcywgbV92YXJpYW50XywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhsZW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYWxsIGNoYXJzIGluIHRoZSBzZXQgb2YgYWxnb3JpdGhtaWMgbmFtZXMgaW50byB0aGUgc2V0LgorICAgICAgICAgKiBFcXVpdmFsZW50IHRvIHBhcnQgb2YgY2FsY0FsZ05hbWVTZXRzTGVuZ3Rocy4KKyAgICAgICAgICogQHBhcmFtIHNldCBpbnQgc2V0IHRvIGFkZCB0aGUgY2hhcnMgb2YgdGhlIGFsZ29yaXRobSBuYW1lcyBpbnRvCisgICAgICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbWF4aW11bSBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggdGhhdCBpcyBlaXRoZXIgbWF4bGVuZ3RoIG9mIHRoZSBsZW5ndGggb2YgdGhpcworICAgICAgICAgKiAgICAgICAgIGFsZ29yaXRobSBuYW1lIGlmIGl0IGlzIGxvbmdlciB0aGFuIG1heGxlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgaW50IGFkZChpbnQgc2V0W10sIGludCBtYXhsZW5ndGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHByZWZpeCBsZW5ndGgKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzBfIDogeworICAgICAgICAgICAgICAgICAgICAvLyBuYW1lID0gcHJlZml4ICsgKHJhbmdlLT52YXJpYW50IHRpbWVzKSBoZXgtZGlnaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeAorICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gbV92YXJpYW50XzsKKyAgICAgICAgICAgICAgICAgICAgLyogc3lud2VlIHRvIGNoZWNrCisgICAgICAgICAgICAgICAgICAgICAqIGFkZFN0cmluZyhzZXQsIChjb25zdCBjaGFyICopKHJhbmdlICsgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJhbmdlLT52YXJpYW50OyovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFRZUEVfMV8gOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5hbWUgPSBwcmVmaXggZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNldCBhbmQgbWF4aW11bSBmYWN0b3Igc3VmZml4IGxlbmd0aCBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAvLyBmYWN0b3IKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1fdmFyaWFudF8gLSAxOyBpID4gMDsgaSAtLSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGZhY3Rvcmxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgZmFjdG9yID0gbV9mYWN0b3JfW2ldOyBmYWN0b3IgPiAwOyAtLSBmYWN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclV0aWxpdHkuZ2V0TnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gbWF4ZmFjdG9ybGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhmYWN0b3JsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSBtYXhmYWN0b3JsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuZ3RoID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBbGdvcml0aG1pYyBkYXRhIGluZm9ybWF0aW9uCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VzdGFydF87CisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VlbmRfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV90eXBlXzsKKyAgICAgICAgcHJpdmF0ZSBieXRlIG1fdmFyaWFudF87CisgICAgICAgIHByaXZhdGUgY2hhciBtX2ZhY3Rvcl9bXTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9wcmVmaXhfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV9mYWN0b3JzdHJpbmdfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFV0aWxpdHkgaW50IGJ1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyNTZdOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAqIEdldHMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBhcnJheSBpbmRleAorICAgICAgICAqIEByZXR1cm4gdGhlIGNvbWJpbmVkIHN0cmluZyBvZiB0aGUgYXJyYXkgb2YgaW5kZXh0aCBmYWN0b3Igc3RyaW5nIGluCisgICAgICAgICogICAgICAgICBmYWN0b3IgYmxvY2sKKyAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RmFjdG9yU3RyaW5nKGludCBpbmRleFtdLCBpbnQgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IG1fZmFjdG9yXy5sZW5ndGg7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBsZW5ndGggIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGludCBmYWN0b3I7CisgICAgICAgICAgICAgICAgc2l6ZSAtLTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfLCBjb3VudCwgaW5kZXhbaV0pOworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8sIG1fZmFjdG9yc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yIC0gaW5kZXhbaV0gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29tcGFyZXMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jayB3aXRoCisgICAgICAgICogdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggaW5kZXggYXJyYXkgbGVuZ3RoCisgICAgICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZSB3aXRoCisgICAgICAgICogQHBhcmFtIG9mZnNldCBvZiBzdHIgdG8gc3RhcnQgY29tcGFyaXNvbgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdHJpbmcgbWF0Y2hlcworICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZUZhY3RvclN0cmluZyhpbnQgaW5kZXhbXSwgaW50IGxlbmd0aCwgU3RyaW5nIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNpemUgPSBtX2ZhY3Rvcl8ubGVuZ3RoOworICAgICAgICAgICAgaWYgKGluZGV4ID09IG51bGwgfHwgbGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IHN0cmNvdW50ID0gb2Zmc2V0OworICAgICAgICAgICAgaW50IGZhY3RvcjsKKyAgICAgICAgICAgIHNpemUgLS07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgc3RyY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5jb21wYXJlTnVsbFRlcm1CeXRlU3ViU3RyaW5nKHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgc3RyY291bnQsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAoc3RyY291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBmYWN0b3IgLSBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cmNvdW50ICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBlYWNoIGdyb3VwcworICAgICAqLworICAgIGludCBtX2dyb3Vwc2l6ZV8gPSAwOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogU2V0cyB0aGUgdG9rZW4gZGF0YQorICAgICogQHBhcmFtIHRva2VuIGFycmF5IG9mIHRva2VucworICAgICogQHBhcmFtIHRva2Vuc3RyaW5nIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgb2YgdGhlIHRva2VucworICAgICogQHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBhIGRhdGEgZXJyb3IKKyAgICAqLworICAgIGJvb2xlYW4gc2V0VG9rZW4oY2hhciB0b2tlbltdLCBieXRlIHRva2Vuc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAodG9rZW4gIT0gbnVsbCAmJiB0b2tlbnN0cmluZyAhPSBudWxsICYmIHRva2VuLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIHRva2Vuc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fdG9rZW50YWJsZV8gPSB0b2tlbjsKKyAgICAgICAgICAgIG1fdG9rZW5zdHJpbmdfID0gdG9rZW5zdHJpbmc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXQgdGhlIGFsZ29yaXRobSBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gYWxnIEFsZ29yaXRobSBpbmZvcm1hdGlvbiBhcnJheQorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBncm91cCBzdHJpbmcgb2Zmc2V0IGhhcyBiZWVuIHNldCBjb3JyZWN0bHkKKyAgICAqLworICAgIGJvb2xlYW4gc2V0QWxnb3JpdGhtKEFsZ29yaXRobU5hbWUgYWxnW10pCisgICAgeworICAgICAgICBpZiAoYWxnICE9IG51bGwgJiYgYWxnLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICBtX2FsZ29yaXRobV8gPSBhbGc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgZ3JvdXAgYW5kIHNpemUgb2YgZWFjaCBncm91cCBpbiBudW1iZXIgb2YgY2hhcgorICAgICogQHBhcmFtIGNvdW50IG51bWJlciBvZiBncm91cHMKKyAgICAqIEBwYXJhbSBzaXplIHNpemUgb2YgZ3JvdXAgaW4gY2hhcgorICAgICogQHJldHVybiB0cnVlIGlmIGdyb3VwIHNpemUgaXMgc2V0IGNvcnJlY3RseQorICAgICovCisgICAgYm9vbGVhbiBzZXRHcm91cENvdW50U2l6ZShpbnQgY291bnQsIGludCBzaXplKQorICAgIHsKKyAgICAgICAgaWYgKGNvdW50IDw9IDAgfHwgc2l6ZSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgbV9ncm91cGNvdW50XyA9IGNvdW50OworICAgICAgICBtX2dyb3Vwc2l6ZV8gPSBzaXplOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNldHMgdGhlIGdyb3VwIG5hbWUgZGF0YQorICAgICogQHBhcmFtIGdyb3VwIGluZGV4IGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gZ3JvdXBzdHJpbmcgbmFtZSBpbmZvcm1hdGlvbiBhcnJheQorICAgICogQHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBhIGRhdGEgZXJyb3IKKyAgICAqLworICAgIGJvb2xlYW4gc2V0R3JvdXAoY2hhciBncm91cFtdLCBieXRlIGdyb3Vwc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAoZ3JvdXAgIT0gbnVsbCAmJiBncm91cHN0cmluZyAhPSBudWxsICYmIGdyb3VwLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIGdyb3Vwc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fZ3JvdXBpbmZvXyA9IGdyb3VwOworICAgICAgICAgICAgbV9ncm91cHN0cmluZ18gPSBncm91cHN0cmluZzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIERhdGEgdXNlZCBpbiB1bmFtZXMuaWN1CisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV90b2tlbnRhYmxlX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3Rva2Vuc3RyaW5nX1tdOworICAgIHByaXZhdGUgY2hhciBtX2dyb3VwaW5mb19bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV9ncm91cHN0cmluZ19bXTsKKyAgICBwcml2YXRlIEFsZ29yaXRobU5hbWUgbV9hbGdvcml0aG1fW107CisKKyAgICAvKioKKyAgICAqIEdyb3VwIHVzZQorICAgICovCisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBvZmZzZXRzX1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDFdOworICAgIHByaXZhdGUgY2hhciBtX2dyb3VwbGVuZ3Roc19bXSA9IG5ldyBjaGFyW0xJTkVTX1BFUl9HUk9VUF8gKyAxXTsKKworICAgIC8qKgorICAgICogRGVmYXVsdCBuYW1lIG9mIHRoZSBuYW1lIGRhdGFmaWxlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRV9GSUxFX05BTUVfID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VuYW1lcy5pY3UiOworICAgIC8qKgorICAgICogU2hpZnQgY291bnQgdG8gcmV0cmlldmUgZ3JvdXAgaW5mb3JtYXRpb24KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUk9VUF9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgb2Zmc2V0IGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIHdpdGhpbiBhIGdyb3VwCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPVVBfTUFTS18gPSBMSU5FU19QRVJfR1JPVVBfIC0gMTsKKyAgICAvKioKKyAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU1FX0JVRkZFUl9TSVpFXyA9IDEwMDAwMDsKKworICAgIC8qKgorICAgICogUG9zaXRpb24gb2Ygb2Zmc2V0aGlnaCBpbiBncm91cCBpbmZvcm1hdGlvbiBhcnJheQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9GRlNFVF9ISUdIX09GRlNFVF8gPSAxOworCisgICAgLyoqCisgICAgKiBQb3NpdGlvbiBvZiBvZmZzZXRsb3cgaW4gZ3JvdXAgaW5mb3JtYXRpb24gYXJyYXkKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPRkZTRVRfTE9XX09GRlNFVF8gPSAyOworICAgIC8qKgorICAgICogRG91YmxlIG5pYmJsZSBpbmRpY2F0b3IsIGFueSBuaWJibGUgPiB0aGlzIG51bWJlciBoYXMgdG8gYmUgY29tYmluZWQKKyAgICAqIHdpdGggaXRzIGZvbGxvd2luZyBuaWJibGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5HTEVfTklCQkxFX01BWF8gPSAxMTsKKworICAgIC8qCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgY2hhcmFjdGVyIG5hbWVzIChyZWd1bGFyICYgMS4wKS4KKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGludCBNQVhfTkFNRV9MRU5HVEhfID0gMDsKKyAgICAvKgorICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIElTTyBjb21tZW50cy4KKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGludCBNQVhfSVNPX0NPTU1FTlRfTEVOR1RIXyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgb2YgY2hhcnMgdXNlZCBpbiBjaGFyYWN0ZXIgbmFtZXMgKHJlZ3VsYXIgJiAxLjApLgorICAgICAqIENoYXJzIGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQgKGNhbiBiZSBFQkNESUMpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbmFtZVNldF9bXSA9IG5ldyBpbnRbOF07CisgICAgLyoqCisgICAgICogU2V0IG9mIGNoYXJzIHVzZWQgaW4gSVNPIGNvbW1lbnRzLiAocmVndWxhciAmIDEuMCkuCisgICAgICogQ2hhcnMgYXJlIHBsYXRmb3JtLWRlcGVuZGVudCAoY2FuIGJlIEVCQ0RJQykuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9JU09Db21tZW50U2V0X1tdID0gbmV3IGludFs4XTsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBpbnQgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyXTsKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIElTTyBjb21tZW50IGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4SVNPQ29tbWVudExlbmd0aF87CisgICAgLyoqCisgICAgICogTWF4aW11bSBuYW1lIGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4TmFtZUxlbmd0aF87CisgICAgLyoqCisgICAgICogU2luZ2xldG9uIGluc3RhbmNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgSU5TVEFOQ0VfID0gbnVsbDsKKyAgICAvKioKKyAgICAgKiBUeXBlIG5hbWVzIHVzZWQgZm9yIGV4dGVuZGVkIG5hbWVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRZUEVfTkFNRVNfW10gPSB7InVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cHBlcmNhc2UgbGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG93ZXJjYXNlIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlY2FzZSBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmllciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub24gc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5jbG9zaW5nIG1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21iaW5pbmcgc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVjaW1hbCBkaWdpdCBudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZXR0ZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhY2Ugc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGluZSBzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhZ3JhcGggc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhdGUgdXNlIGFyZWEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXNoIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhcnQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0b3IgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hdGggc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3VycmVuY3kgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kaWZpZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbCBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uY2hhcmFjdGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGVhZCBzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFpbCBzdXJyb2dhdGUifTsKKyAgICAvKioKKyAgICAgKiBVbmtub3duIHR5cGUgbmFtZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVTktOT1dOX1RZUEVfTkFNRV8gPSAidW5rbm93biI7CisgICAgLyoqCisgICAgICogTm90IGEgY2hhcmFjdGVyIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQ7CisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVCArIDE7CisgICAgLyoqCisgICAgKiBUcmFpbCBzdXJyb2dhdGUgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFVDaGFyYWN0ZXJDYXRlZ29yeS5DSEFSX0NBVEVHT1JZX0NPVU5UICsgMjsKKyAgICAvKioKKyAgICAqIEV4dGVuZGVkIGNhdGVnb3J5IGNvdW50CisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVEX0NBVEVHT1JZXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQgKyAzOworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciB1c2UgaW4gVUNoYXJhY3Rlci48L3A+CisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZSgpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKE5BTUVfRklMRV9OQU1FXyk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCBOQU1FX0JVRkZFUl9TSVpFXyk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIHJlYWRlciA9IG5ldyBVQ2hhcmFjdGVyTmFtZVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGFsZ29yaXRobWljIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZGV0ZXJtaW5lIG5hbWUgZm9yCisgICAgKiBAcGFyYW0gY2hvaWNlIG5hbWUgY2hvaWNlCisgICAgKiBAcmV0dXJuIHRoZSBhbGdvcml0aG1pYyBuYW1lIG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRBbGdOYW1lKGludCBjaCwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIC8vIERvIG5vdCB3cml0ZSBhbGdvcml0aG1pYyBVbmljb2RlIDEuMCBuYW1lcyBiZWNhdXNlIFVuaWhhbiBuYW1lcyBhcmUKKyAgICAgICAgLy8gdGhlIHNhbWUgYXMgdGhlIG1vZGVybiBvbmVzLCBleHRlbnNpb24gQSB3YXMgb25seSBpbnRyb2R1Y2VkIHdpdGgKKyAgICAgICAgLy8gVW5pY29kZSAzLjAsIGFuZCB0aGUgSGFuZ3VsIHN5bGxhYmxlIGJsb2NrIHdhcyBtb3ZlZCBhbmQgY2hhbmdlZAorICAgICAgICAvLyBhcm91bmQgVW5pY29kZSAxLjEuNS4KKyAgICAgICAgaWYgKGNob2ljZSAhPSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgLy8gaW5kZXggaW4gdGVybXMgaW50ZWdlciBpbmRleAorICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwgbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleCA9IG1fYWxnb3JpdGhtXy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtLSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtX1tpbmRleF0uY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNoLCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCB0aGUgdG9rZW5pemVkIGFyZ3VtZW50IG5hbWUKKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHdpdGggdGhlIHRva2VuaXplZCBhcmd1bWVudCBuYW1lIG9yIC0xIGlmIGNoYXJhY3RlcgorICAgICogICAgICAgICBpcyBub3QgZm91bmQKKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGludCBnZXRHcm91cENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF87IGkgKyspIHsKKyAgICAgICAgICAgIC8vIHBvcHVsYXRpbmcgdGhlIGRhdGEgc2V0IG9mIGdyb3VwdGFibGUKKworICAgICAgICAgICAgaW50IHN0YXJ0Z3BzdHJpbmRleCA9IGdldEdyb3VwTGVuZ3RocyhpLCBtX2dyb3Vwb2Zmc2V0c18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzXyk7CisKKyAgICAgICAgICAgIC8vIHNoaWZ0IG91dCB0byBmdW5jdGlvbgorICAgICAgICAgICAgaW50IHJlc3VsdCA9IGdldEdyb3VwQ2hhcihzdGFydGdwc3RyaW5kZXgsIG1fZ3JvdXBsZW5ndGhzXywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG1fZ3JvdXBpbmZvX1tpICogbV9ncm91cHNpemVfXSA8PCBHUk9VUF9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcGFyZXMgYW5kIHJldHJpZXZlIGNoYXJhY3RlciBpZiBuYW1lIGlzIGZvdW5kIHdpdGhpbiB0aGUgYXJndW1lbnQKKyAgICAqIGdyb3VwCisgICAgKiBAcGFyYW0gaW5kZXggaW5kZXggd2hlcmUgdGhlIHNldCBvZiBuYW1lcyByZXNpZGUgaW4gdGhlIGdyb3VwIGJsb2NrCisgICAgKiBAcGFyYW0gbGVuZ3RoIGxpc3Qgb2YgbGVuZ3RocyBvZiB0aGUgc3RyaW5ncworICAgICogQHBhcmFtIG5hbWUgY2hhcmFjdGVyIG5hbWUgdG8gc2VhcmNoIGZvcgorICAgICogQHBhcmFtIGNob2ljZSBvZiBlaXRoZXIgMS4wIG9yIHRoZSBtb3N0IGN1cnJlbnQgdW5pY29kZSBuYW1lCisgICAgKiBAcmV0dXJuIHJlbGF0aXZlIGNoYXJhY3RlciBpbiB0aGUgZ3JvdXAgd2hpY2ggbWF0Y2hlcyBuYW1lLCBvdGhlcndpc2UgaWYKKyAgICAqICAgICAgICAgbm90IGZvdW5kLCAtMSB3aWxsIGJlIHJldHVybmVkCisgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRHcm91cENoYXIoaW50IGluZGV4LCBjaGFyIGxlbmd0aFtdLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDA7CisgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgIGludCBsZW47CisgICAgICAgIGludCBuYW1lbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IG5pbmRleDsKKyAgICAgICAgaW50IGNvdW50OworCisgICAgICAgIGZvciAoaW50IHJlc3VsdCA9IDA7IHJlc3VsdCA8PSBMSU5FU19QRVJfR1JPVVBfOyByZXN1bHQgKyspIHsKKyAgICAgICAgICAgIG5pbmRleCA9IDA7CisgICAgICAgICAgICBsZW4gPSBsZW5ndGhbcmVzdWx0XTsKKworICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBvbGRpbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgIGluZGV4ICs9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBCeXRlU3ViU3RyaW5nKG1fZ3JvdXBzdHJpbmdfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuLCAoYnl0ZSknOycpOworICAgICAgICAgICAgICAgIGxlbiAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG51bWJlciBvZiB0b2tlbnMgaXMgPiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lCisgICAgICAgICAgICAvLyB3cml0ZSBlYWNoIGxldHRlciBkaXJlY3RseSwgYW5kIHdyaXRlIGEgdG9rZW4gd29yZCBwZXIgdG9rZW4KKyAgICAgICAgICAgIGZvciAoY291bnQgPSAwOyBjb3VudCA8IGxlbiAmJiBuaW5kZXggIT0gLTEgJiYgbmluZGV4IDwgbmFtZWxlbjsKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19baW5kZXggKyBjb3VudF07CisgICAgICAgICAgICAgICAgY291bnQgKys7CisKKyAgICAgICAgICAgICAgICBpZiAoYiA+PSBtX3Rva2VudGFibGVfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5jaGFyQXQobmluZGV4ICsrKSAhPSAoYiAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuaW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweEZGXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgPDwgOCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGNvdW50XSAmIDB4MDBmZildOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuY2hhckF0KG5pbmRleCArKykgIT0gKGIgJiAweEZGKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0b2tlbiB3aXRoIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbV90b2tlbnN0cmluZ18sIG5pbmRleCwgdG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZWxlbiA9PSBuaW5kZXggJiYKKyAgICAgICAgICAgICAgICAoY291bnQgPT0gbGVuIHx8IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgY291bnRdID09ICc7JykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbmRleCArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGV4dGVuZGVkIHR5cGUKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gYmUgdGVzdGVkCisgICAgKiBAcmV0dXJuIGV4dGVuZGVkIHR5cGUgaXQgaXMgYXNzb2NpYXRlZCB3aXRoCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0VHlwZShpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoVUNoYXJhY3RlclV0aWxpdHkuaXNOb25DaGFyYWN0ZXIoY2gpKSB7CisgICAgICAgICAgICAvLyBub3QgYSBjaGFyYWN0ZXIgd2UgcmV0dXJuIGEgaW52YWxpZCBjYXRlZ29yeSBjb3VudAorICAgICAgICAgICAgcmV0dXJuIE5PTl9DSEFSQUNURVJfOworICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICBpZiAocmVzdWx0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUpIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBMRUFEX1NVUlJPR0FURV87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUUkFJTF9TVVJST0dBVEVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCBleHRlbmRlZCBuYW1lIG9mIHRoZSBmb3JtIDwuLi4uPi4KKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIgdG8gYmUgZm91bmQKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmFtZSwgLTEgaWYgc3VjaCBjaGFyYWN0ZXIgaXMgbm90CisgICAgKiAgICAgICAgICAgICAgICAgICBmb3VuZCBhbmQgLTIgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhlIHNlYXJjaC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRFeHRlbmRlZENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAobmFtZS5jaGFyQXQoMCkgPT0gJzwnKSB7CisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBlbmRJbmRleCA9IG5hbWUubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgICAgIGlmIChuYW1lLmNoYXJBdChlbmRJbmRleCkgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLScpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA+PSAwKSB7IC8vIFdlJ3ZlIGdvdCBhIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnN1YnN0cmluZyhzdGFydEluZGV4LCBlbmRJbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHZhbGlkYXRlIHRoZSBjYXRlZ29yeSBuYW1lLiBXZSBjb3VsZCB1c2UgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmluYXJ5IHNlYXJjaCwgb3IgYSB0cmllLCBpZiB3ZSByZWFsbHkgd2FudGVkIHRvLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBuYW1lLnN1YnN0cmluZygxLCBzdGFydEluZGV4IC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVFlQRV9OQU1FU18ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZS5jb21wYXJlVG8oVFlQRV9OQU1FU19baV0pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldFR5cGUocmVzdWx0KSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgLy8gc2V0cyBvZiBuYW1lIGNoYXJhY3RlcnMsIG1heGltdW0gbmFtZSBsZW5ndGhzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgY29kZXBvaW50IGludG8gYSBzZXQgb2YgaW50cy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIFNFVF9BREQuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIHRvCisgICAgICogQHBhcmFtIGNoIDE2IGJpdCBjaGFyIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkKGludCBzZXRbXSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIHNldFtjaCA+Pj4gNV0gfD0gMSA8PCAoY2ggJiAweDFmKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYSBjb2RlcG9pbnQgaXMgYSBwYXJ0IG9mIGEgc2V0IG9mIGludHMuCisgICAgICogRXF1aXZhbGVudCB0byBTRVRfQ09OVEFJTlMuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gY2hlY2sgaW4KKyAgICAgKiBAcGFyYW0gY2ggMTYgYml0IGNoYXIgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZXBvaW50IGlzIHBhcnQgb2YgdGhlIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb250YWlucyhpbnQgc2V0W10sIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKHNldFtjaCA+Pj4gNV0gJiAoMSA8PCAoY2ggJiAweDFmKSkpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgY2hhcmFjdGVycyBvZiB0aGUgYXJndW1lbnQgc3RyIGFuZCBnZXRzIHRoZSBsZW5ndGgKKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNTdHJpbmdTZXRMZW5ndGguCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIGFsbCBjaGFycyBvZiBzdHIgdG8KKyAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBhZGQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkKGludCBzZXRbXSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdCAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgYWRkKHNldCwgc3RyLmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBjaGFyYWN0ZXJzIG9mIHRoZSBhcmd1bWVudCBzdHIgYW5kIGdldHMgdGhlIGxlbmd0aAorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY1N0cmluZ1NldExlbmd0aC4KKyAgICAgKiBAcGFyYW0gc2V0IHNldCB0byBhZGQgYWxsIGNoYXJzIG9mIHN0ciB0bworICAgICAqIEBwYXJhbSBzdHIgc3RyaW5nIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBhZGQoaW50IHNldFtdLCBTdHJpbmdCdWZmZXIgc3RyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBmb3IgKGludCBpID0gcmVzdWx0IC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICBhZGQoc2V0LCBzdHIuY2hhckF0KGkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYWxsIGFsZ29yaXRobWljIG5hbWVzIGludG8gdGhlIG5hbWUgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gcGFydCBvZiBjYWxjQWxnTmFtZVNldHNMZW5ndGhzLgorICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbGVuZ3RoIHRvIGNvbXBhcmUgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgcG9zc2libGUgYWxnb3JpdGhtaWMgbmFtZSBpZiBpdCBpcyA+CisgICAgICogICAgICAgICBtYXhsZW5ndGgsIG90aGVyd2lzZSBtYXhsZW5ndGggaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkQWxnb3JpdGhtTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBtX2FsZ29yaXRobV8ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2FsZ29yaXRobV9baV0uYWRkKG1fbmFtZVNldF8sIG1heGxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgbWF4bGVuZ3RoID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgZXh0ZW5kZWQgbmFtZXMgaW50byB0aGUgbmFtZSBzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBwYXJ0IG9mIGNhbGNFeHROYW1lU2V0c0xlbmd0aHMuCisgICAgICogQHBhcmFtIG1heGxlbmd0aCBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAqIEByZXR1cm4gdGhlIG1heGxlbmd0aCBvZiBhbnkgcG9zc2libGUgZXh0ZW5kZWQgbmFtZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhZGRFeHRlbmRlZE5hbWUoaW50IG1heGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSBUWVBFX05BTUVTXy5sZW5ndGggLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIGNhdGVnb3J5LCBjb3VudCB0aGUgbGVuZ3RoIG9mIHRoZSBjYXRlZ29yeSBuYW1lCisgICAgICAgICAgICAvLyBwbHVzIDkgPQorICAgICAgICAgICAgLy8gMiBmb3IgPD4KKyAgICAgICAgICAgIC8vIDEgZm9yIC0KKyAgICAgICAgICAgIC8vIDYgZm9yIG1vc3QgaGV4IGRpZ2l0cyBwZXIgY29kZSBwb2ludAorICAgICAgICAgICAgaW50IGxlbmd0aCA9IDkgKyBhZGQobV9uYW1lU2V0XywgVFlQRV9OQU1FU19baV0pOworICAgICAgICAgICAgaWYgKGxlbmd0aCA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgIG1heGxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF4bGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgbmFtZXMgb2YgYSBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY05hbWVTZXRMZW5ndGguCisgICAgICogQHBhcmFtIG9mZnNldCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICAqIEBwYXJhbSBsZW5ndGggb2YgdGhlIGdyb3VwIG5hbWUgc3RyaW5nCisgICAgICogQHBhcmFtIHRva2VubGVuZ3RoIGFycmF5IHRvIHN0b3JlIHRoZSBsZW5ndGggb2YgZWFjaCB0b2tlbgorICAgICAqIEBwYXJhbSBzZXQgdG8gYWRkIHRvCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHN0cmluZyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZ3JvdXAKKyAgICAgKiAgICAgICAgIHN0cmluZyBwYXJzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIGFkZEdyb3VwTmFtZShpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlIHRva2VubGVuZ3RoW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNldFtdKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdG5sZW5ndGggPSAwOworICAgICAgICBpbnQgcmVzdWx0cGxlbmd0aCA9IDA7CisgICAgICAgIHdoaWxlIChyZXN1bHRwbGVuZ3RoIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyIGIgPSAoY2hhcikobV9ncm91cHN0cmluZ19bb2Zmc2V0ICsgcmVzdWx0cGxlbmd0aF0gJiAweGZmKTsKKyAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICBpZiAoYiA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGIgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhZGQoc2V0LCBiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgcmVzdWx0bmxlbmd0aCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNoYXIgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweDAwZmZdOworICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICBiID0gKGNoYXIpKGIgPDwgOCB8IChtX2dyb3Vwc3RyaW5nX1tvZmZzZXQgKyByZXN1bHRwbGVuZ3RoXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIDB4MDBmZikpOworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYl07CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkKHNldCwgYik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCB0b2tlbiB3b3JkCisgICAgICAgICAgICAgICAgICAgIC8vIHVzZSBjYWNoZWQgdG9rZW4gbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGJ5dGUgdGxlbmd0aCA9IHRva2VubGVuZ3RoW2JdOworICAgICAgICAgICAgICAgICAgICBpZiAodGxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLCBtX3Rva2Vuc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxlbmd0aCA9IChieXRlKWFkZChzZXQsIG1fdXRpbFN0cmluZ0J1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5sZW5ndGhbYl0gPSB0bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKz0gdGxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1swXSA9IHJlc3VsdG5sZW5ndGg7CisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bMV0gPSByZXN1bHRwbGVuZ3RoOworICAgICAgICByZXR1cm4gbV91dGlsSW50QnVmZmVyXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIG5hbWVzIG9mIGFsbCBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIFNldHMgdGhlIGRhdGEgbWVtYmVyIG1fbWF4Kkxlbmd0aF8uCisgICAgICogTWV0aG9kIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICogRXF1aXZhbGVudCB0byBjYWxjR3JvdXBOYW1lU2V0c0xlbmd0aC4KKyAgICAgKiBAcGFyYW0gbWF4bGVuZ3RoIGxlbmd0aCB0byBjb21wYXJlIHRvCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFkZEdyb3VwTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IG1heGlzb2xlbmd0aCA9IDA7CisgICAgICAgIGNoYXIgb2Zmc2V0c1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDJdOworICAgICAgICBjaGFyIGxlbmd0aHNbXSA9IG5ldyBjaGFyW0xJTkVTX1BFUl9HUk9VUF8gKyAyXTsKKyAgICAgICAgYnl0ZSB0b2tlbmxlbmd0aHNbXSA9IG5ldyBieXRlW21fdG9rZW50YWJsZV8ubGVuZ3RoXTsKKworICAgICAgICAvLyBlbnVtZXJhdGUgYWxsIGdyb3VwcworICAgICAgICAvLyBmb3IgKGludCBpID0gbV9ncm91cGNvdW50XyAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF8gOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0R3JvdXBMZW5ndGhzKGksIG9mZnNldHMsIGxlbmd0aHMpOworICAgICAgICAgICAgLy8gZW51bWVyYXRlIGFsbCBsaW5lcyBpbiBlYWNoIGdyb3VwCisgICAgICAgICAgICAvLyBmb3IgKGludCBsaW5lbnVtYmVyID0gTElORVNfUEVSX0dST1VQXyAtIDE7IGxpbmVudW1iZXIgPj0gMDsKKyAgICAgICAgICAgIC8vICAgIGxpbmVudW1iZXIgLS0pIHsKKyAgICAgICAgICAgIGZvciAoaW50IGxpbmVudW1iZXIgPSAwOyBsaW5lbnVtYmVyIDwgTElORVNfUEVSX0dST1VQXzsKKyAgICAgICAgICAgICAgICBsaW5lbnVtYmVyICsrKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVvZmZzZXQgPSBvZmZzZXQgKyBvZmZzZXRzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBsZW5ndGhzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyByZWFkIHJlZ3VsYXIgbmFtZQorICAgICAgICAgICAgICAgIGludCBwYXJzZWRbXSA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgVW5pY29kZSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHBhcnNlZCA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgSVNPIGNvbW1lbnQKKyAgICAgICAgICAgICAgICBwYXJzZWQgPSBhZGRHcm91cE5hbWUobGluZW9mZnNldCwgbGVuZ3RoLCB0b2tlbmxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fSVNPQ29tbWVudFNldF8pOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPiBtYXhpc29sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4aXNvbGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCBnTWF4Li4uIC0gbmFtZSBsZW5ndGggbGFzdCBmb3IgdGhyZWFkaW5nCisgICAgICAgIG1fbWF4SVNPQ29tbWVudExlbmd0aF8gPSBtYXhpc29sZW5ndGg7CisgICAgICAgIG1fbWF4TmFtZUxlbmd0aF8gPSBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB1cCB0aGUgbmFtZSBzZXRzIGFuZCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG1heGltdW0gbGVuZ3Rocy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNOYW1lU2V0c0xlbmd0aHMuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGluaXROYW1lU2V0c0xlbmd0aHMoKQorICAgIHsKKyAgICAgICAgaWYgKG1fbWF4TmFtZUxlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBleHRyYSA9ICIwMTIzNDU2Nzg5QUJDREVGPD4tIjsKKyAgICAgICAgLy8gc2V0IGhleCBkaWdpdHMsIHVzZWQgaW4gdmFyaW91cyBuYW1lcywgYW5kIDw+LSwgdXNlZCBpbiBleHRlbmRlZAorICAgICAgICAvLyBuYW1lcworICAgICAgICBmb3IgKGludCBpID0gZXh0cmEubGVuZ3RoKCkgLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIGFkZChtX25hbWVTZXRfLCBleHRyYS5jaGFyQXQoaSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBhbGdvcml0aG1pYyBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkQWxnb3JpdGhtTmFtZSgwKTsKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBleHRlbmRlZCBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkRXh0ZW5kZWROYW1lKG1fbWF4TmFtZUxlbmd0aF8pOworICAgICAgICAvLyBzZXQgc2V0cyBhbmQgbGVuZ3RocyBmcm9tIGdyb3VwIG5hbWVzLCBzZXQgZ2xvYmFsIG1heGltdW0gdmFsdWVzCisgICAgICAgIGFkZEdyb3VwTmFtZShtX21heE5hbWVMZW5ndGhfKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGNoYXIgc2V0IGNzZXQgaW50byBhIFVuaWNvZGUgc2V0IHVzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBjaGFyU2V0VG9VU2V0LgorICAgICAqIEBwYXJhbSBzZXQgU2V0IG9mIDI1NiBiaXQgZmxhZ3MgY29ycmVzcG9uZGluZyB0byBhIHNldCBvZiBjaGFycy4KKyAgICAgKiBAcGFyYW0gdXNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnQoaW50IHNldFtdLCBVbmljb2RlU2V0IHVzZXQpCisgICAgeworICAgICAgICB1c2V0LmNsZWFyKCk7CisgICAgICAgIGlmICghaW5pdE5hbWVTZXRzTGVuZ3RocygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBidWlsZCBhIGNoYXIgc3RyaW5nIHdpdGggYWxsIGNoYXJzIHRoYXQgYXJlIHVzZWQgaW4gY2hhcmFjdGVyIG5hbWVzCisgICAgICAgIGZvciAoY2hhciBjID0gMjU1OyBjID4gMDsgYyAtLSkgeworICAgICAgICAgICAgaWYgKGNvbnRhaW5zKHNldCwgYykpIHsKKyAgICAgICAgICAgICAgICB1c2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5N2YxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyogSW50ZXJuYWwgY2xhc3MgY29udGFpbmluZyBzZWxlY3RvciBjb25zdGFudHMgZm9yIHRoZSB1bmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyogQ29uc3RhbnRzIHJlcHJlc2VudGluZyB0aGUgIm1vZGVybiIgbmFtZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBuYW1lIAorKiB0aGF0IHdhcyBkZWZpbmVkIGluIFVuaWNvZGUgdmVyc2lvbiAxLjAsIGJlZm9yZSB0aGUgVW5pY29kZSBzdGFuZGFyZCAKKyogbWVyZ2VkIHdpdGggSVNPLTEwNjQ2LgorKiBBcmd1bWVudHMgZm9yIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5VQ2hhcmFjdGVyTmFtZTwvYT4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDA2MDAKKyovCisKK3B1YmxpYyBpbnRlcmZhY2UgVUNoYXJhY3Rlck5hbWVDaG9pY2UKK3sKKyAgLy8gcHVibGljIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHN0YXRpYyBmaW5hbCBpbnQgVU5JQ09ERV9DSEFSX05BTUUgPSAwOworICBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfMTBfQ0hBUl9OQU1FID0gMTsKKyAgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9DSEFSX05BTUUgPSAyOworICBzdGF0aWMgZmluYWwgaW50IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQgPSAzOworICBzdGF0aWMgZmluYWwgaW50IElTT19DT01NRU5UXyA9IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzFkNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIxMyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdW5hbWUuZGF0IGNvbnRhaW5pbmcgCisqIFVuaWNvZGUgY29kZXBvaW50IG5hbWUgZGF0YS48L3A+IAorKiA8cD5UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB1bmFtZXMuaWN1LCBhdXRoZW50aWNhdGVzIHRoYXQgaXQgaXMgYSB2YWxpZAorKiBJQ1UgZGF0YSBmaWxlIGFuZCBzcGxpdCBpdHMgY29udGVudHMgdXAgaW50byBibG9ja3Mgb2YgZGF0YSBmb3IgdXNlIGluCisqIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5jb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lPC9hPi4KKyogPC9wPiAKKyogPHA+dW5hbWVzLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK2ZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQoreyAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJOYW1lUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCB0aGlzKTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgfQorICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzCisgICAgKiBhbmQgZmlsbHMgdXAgVUNoYXJhY3Rlck5hbWUuCisgICAgKiBJZiB1bnN1Y2Nlc3NmdWwgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBkYXRhIGluc3RhbmNlIG9mIGRhdGFibG9jaworICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3Rlck5hbWUgZGF0YSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkaW5nIGluZGV4CisgICAgICAgIG1fdG9rZW5zdHJpbmdpbmRleF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBtX2dyb3VwaW5kZXhfICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgbV9ncm91cHN0cmluZ2luZGV4XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIG1fYWxnbmFtZXNpbmRleF8gICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZGluZyB0b2tlbnMKKyAgICAgICAgaW50IGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGNoYXIgdG9rZW5bXSA9IG5ldyBjaGFyW2NvdW50XTsKKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIHRva2VuW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBtX2dyb3VwaW5kZXhfIC0gbV90b2tlbnN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSB0b2tlbnN0cltdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkodG9rZW5zdHIpOworICAgICAgICBkYXRhLnNldFRva2VuKHRva2VuLCB0b2tlbnN0cik7CisgICAgICAgIAorICAgICAgICAvLyByZWFkaW5nIHRoZSBncm91cCBpbmZvcm1hdGlvbiByZWNvcmRzCisgICAgICAgIGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGRhdGEuc2V0R3JvdXBDb3VudFNpemUoY291bnQsIEdST1VQX0lORk9fU0laRV8pOworICAgICAgICBjb3VudCAqPSBHUk9VUF9JTkZPX1NJWkVfOworICAgICAgICBjaGFyIGdyb3VwW10gPSBuZXcgY2hhcltjb3VudF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIGdyb3VwW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNpemUgPSBtX2FsZ25hbWVzaW5kZXhfIC0gbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSBncm91cHN0cmluZ1tdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoZ3JvdXBzdHJpbmcpOworICAgIAorICAgICAgICBkYXRhLnNldEdyb3VwKGdyb3VwLCBncm91cHN0cmluZyk7CisgICAgICAgIAorICAgICAgICBjb3VudCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYWxnW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lW2NvdW50XTsKKyAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYW4gPSByZWFkQWxnKCk7CisgICAgICAgICAgICBpZiAoYW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5hbWVzLmljdSByZWFkIGVycm9yOiBBbGdvcml0aG1pYyBuYW1lcyBjcmVhdGlvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxnW2ldID0gYW47CisgICAgICAgIH0KKyAgICAgICAgZGF0YS5zZXRBbGdvcml0aG0oYWxnKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5DaGVja2luZyB0aGUgZmlsZSBmb3IgdGhlIGNvcnJlY3QgZm9ybWF0LjwvcD4KKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0aWQKKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0dmVyc2lvbgorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBmaWxlIGZvcm1hdCB2ZXJzaW9uIGlzIGNvcnJlY3QKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhdXRoZW50aWNhdGUoYnl0ZSBkYXRhZm9ybWF0aWRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhZm9ybWF0dmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFycmF5cy5lcXVhbHMoREFUQV9GT1JNQVRfSURfLCBkYXRhZm9ybWF0aWQpICYmCisgICAgICAgICAgICAgICBBcnJheXMuZXF1YWxzKERBVEFfRk9STUFUX1ZFUlNJT05fLCBkYXRhZm9ybWF0dmVyc2lvbik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBEYXRhIGlucHV0IHN0cmVhbSBmb3IgbmFtZXMgCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBtX2RhdGFJbnB1dFN0cmVhbV87CisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBncm91cCBpbmZvcm1hdGlvbiBibG9jayBpbiBudW1iZXIgb2YgY2hhcgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1VQX0lORk9fU0laRV8gPSAzOworCisgICAgLyoqCisgICAgKiBJbmRleCBvZiB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2Vuc3RyaW5naW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBpbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICBwcml2YXRlIGludCBtX2FsZ25hbWVzaW5kZXhfOworICAgICAgCisgICAgLyoqCisgICAgKiBTaXplIG9mIGFuIGFsZ29yaXRobWljIG5hbWUgaW5mb3JtYXRpb24gZ3JvdXAKKyAgICAqIHN0YXJ0IGNvZGUgcG9pbnQgc2l6ZSArIGVuZCBjb2RlIHBvaW50IHNpemUgKyB0eXBlIHNpemUgKyB2YXJpYW50IHNpemUgKyAKKyAgICAqIHNpemUgb2YgZGF0YSBzaXplCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUxHX0lORk9fU0laRV8gPSAxMjsKKyAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiBhbmQgaWQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGJ5dGUpMHgxLCAoYnl0ZSkweDAsIChieXRlKTB4MCwgKGJ5dGUpMHgwfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NzUsIChieXRlKTB4NkUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NjEsIChieXRlKTB4NkR9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogUmVhZHMgYW4gaW5kaXZpZHVhbCByZWNvcmQgb2YgQWxnb3JpdGhtTmFtZXMKKyAgICAqIEByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgQWxnb3JpdGhOYW1lcyBpZiByZWFkIGlzIHN1Y2Nlc3NmdWwgb3RoZXJ3aXNlIG51bGwKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZmlsZSByZWFkIGVycm9yIG9jY3VycyBvciBkYXRhIGlzIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lIHJlYWRBbGcoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgcmVzdWx0ID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUNoYXJhY3Rlck5hbWUuQWxnb3JpdGhtTmFtZSgpOworICAgICAgICBpbnQgcmFuZ2VzdGFydCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGludCByYW5nZWVuZCAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZSB0eXBlICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgYnl0ZSB2YXJpYW50ICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuc2V0SW5mbyhyYW5nZXN0YXJ0LCByYW5nZWVuZCwgdHlwZSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBzaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUuVFlQRV8xXykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBmYWN0b3JbXSA9IG5ldyBjaGFyW3ZhcmlhbnRdOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YXJpYW50OyBqICsrKSB7CisgICAgICAgICAgICAgICAgZmFjdG9yW2pdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3IoZmFjdG9yKTsKKyAgICAgICAgICAgIHNpemUgLT0gKHZhcmlhbnQgPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHByZWZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciBjID0gKGNoYXIpKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpICYgMHgwMEZGKTsKKyAgICAgICAgd2hpbGUgKGMgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgcHJlZml4LmFwcGVuZChjKTsKKyAgICAgICAgICAgIGMgPSAoY2hhcikobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCkgJiAweDAwRkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQuc2V0UHJlZml4KHByZWZpeC50b1N0cmluZygpKTsKKyAgICAgICAgCisgICAgICAgIHNpemUgLT0gKEFMR19JTkZPX1NJWkVfICsgcHJlZml4Lmxlbmd0aCgpICsgMSk7CisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZSA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGUgc3RyaW5nW10gPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoc3RyaW5nKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3JTdHJpbmcoc3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTk5MjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEKQEAgLTAsMCArMSwxMjcxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorKiA8cD5JbnRlcm5hbCBjbGFzcyB1c2VkIGZvciBVbmljb2RlIGNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhYmFzZS48L3A+CisqIDxwPlRoaXMgY2xhc3NlcyBzdG9yZSBiaW5hcnkgZGF0YSByZWFkIGZyb20gdXByb3BzLmljdS4KKyogSXQgZG9lcyBub3QgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBwYXJzZSB0aGUgZGF0YSBpbnRvIG1vcmUgaGlnaC1sZXZlbAorKiBpbmZvcm1hdGlvbi4gSXQgb25seSByZXR1cm5zIGJ5dGVzIG9mIGluZm9ybWF0aW9uIHdoZW4gcmVxdWlyZWQuPC9wPgorKiA8cD5EdWUgdG8gdGhlIGZvcm0gbW9zdCBjb21tb25seSB1c2VkIGZvciByZXRyaWV2YWwsIGFycmF5IG9mIGNoYXIgaXMgdXNlZAorKiB0byBzdG9yZSB0aGUgYmluYXJ5IGRhdGEuPC9wPgorKiA8cD5VQ2hhcmFjdGVyUHJvcGVydHlEQiBhbHNvIGNvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGFjY2Vzc2luZyBpbmRleGVzIHRvCisqIHNpZ25pZmljYW50IHBvaW50cyBpbiB0aGUgYmluYXJ5IGRhdGEuPC9wPgorKiA8cD5SZXNwb25zaWJpbGl0eSBmb3IgbW9sZGluZyB0aGUgYmluYXJ5IGRhdGEgaW50byBtb3JlIG1lYW5pbmcgZm9ybSBsaWVzIG9uCisqIDxhIGhyZWY9VUNoYXJhY3Rlci5odG1sPlVDaGFyYWN0ZXI8L2E+LjwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4xLCBmZWJydWFyeSAxc3QgMjAwMgorKiBAZHJhZnQgMi4xCisqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlclByb3BlcnR5Cit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBUcmllIGRhdGEKKyAgICAqLworICAgIHB1YmxpYyBDaGFyVHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICAqIE9wdGltaXphdGlvbgorICAgICAqIENoYXJUcmllIGluZGV4IGFycmF5CisgICAgICovCisgICAgcHVibGljIGNoYXJbXSBtX3RyaWVJbmRleF87CisgICAgLyoqCisgICAgICogT3B0aW1pemF0aW9uCisgICAgICogQ2hhclRyaWUgZGF0YSBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gbV90cmllRGF0YV87CisgICAgLyoqCisgICAgICogT3B0aW1pemF0aW9uCisgICAgICogQ2hhclRyaWUgZGF0YSBvZmZzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1fdHJpZUluaXRpYWxWYWx1ZV87CisgICAgLyoqCisgICAgKiBVbmljb2RlIHZlcnNpb24KKyAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBtX3VuaWNvZGVWZXJzaW9uXzsKKyAgICAvKioKKyAgICAqIExhdGluIGNhcGl0YWwgbGV0dGVyIGkgd2l0aCBkb3QgYWJvdmUKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBMQVRJTl9DQVBJVEFMX0xFVFRFUl9JX1dJVEhfRE9UX0FCT1ZFXyA9IDB4MTMwOworICAgIC8qKgorICAgICogTGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBkb3QgYWJvdmUKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBMQVRJTl9TTUFMTF9MRVRURVJfRE9UTEVTU19JXyA9IDB4MTMxOworICAgIC8qKgorICAgICogTGF0aW4gbG93ZXJjYXNlIGkKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBMQVRJTl9TTUFMTF9MRVRURVJfSV8gPSAweDY5OworICAgIC8qKgorICAgICogQ2hhcmFjdGVyIHR5cGUgbWFzaworICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9NQVNLID0gMHgxRjsKKworICAgIC8vIHVwcm9wcy5oIGVudW0gVVByb3BlcnR5U291cmNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIC8qKiBObyBzb3VyY2UsIG5vdCBhIHN1cHBvcnRlZCBwcm9wZXJ0eS4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfTk9ORT0wOworICAgIC8qKiBGcm9tIHVjaGFyLmMvdXByb3BzLmljdSBtYWluIHRyaWUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ0hBUj0xOworICAgIC8qKiBGcm9tIHVjaGFyLmMvdXByb3BzLmljdSBwcm9wZXJ0aWVzIHZlY3RvcnMgdHJpZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19QUk9QU1ZFQz0yOworICAgIC8qKiBIYW5ndWxfU3lsbGFibGVfVHlwZSwgZnJvbSB1Y2hhci5jL3Vwcm9wcy5pY3UgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfSFNUPTM7CisgICAgLyoqIEZyb20gdW5hbWVzLmMvdW5hbWVzLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19OQU1FUz00OworICAgIC8qKiBGcm9tIHVub3JtLmNwcC91bm9ybS5pY3UgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfTk9STT01OworICAgIC8qKiBGcm9tIHVjYXNlLmMvdWNhc2UuaWN1ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX0NBU0U9NjsKKyAgICAvKiogRnJvbSB1YmlkaV9wcm9wcy5jL3ViaWRpLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19CSURJPTc7CisgICAgLyoqIEZyb20gdWNoYXIuYy91cHJvcHMuaWN1IG1haW4gdHJpZSBhcyB3ZWxsIGFzIHByb3BlcnRpZXMgdmVjdG9ycyB0cmllICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX0NIQVJfQU5EX1BST1BTVkVDPTg7CisgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGhpZ2hlc3QgVVByb3BlcnR5U291cmNlIChTUkNfKSBjb25zdGFudC4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ09VTlQ9OTsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEphdmEgZnJpZW5kcyBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4RGF0YShDaGFyVHJpZS5GcmllbmRBZ2VudCBmcmllbmRhZ2VudCkKKyAgICB7CisgICAgICAgIG1fdHJpZUluZGV4XyA9IGZyaWVuZGFnZW50LmdldFByaXZhdGVJbmRleCgpOworICAgICAgICBtX3RyaWVEYXRhXyA9IGZyaWVuZGFnZW50LmdldFByaXZhdGVEYXRhKCk7CisgICAgICAgIG1fdHJpZUluaXRpYWxWYWx1ZV8gPSBmcmllbmRhZ2VudC5nZXRQcml2YXRlSW5pdGlhbFZhbHVlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBwcm9wZXJ0eSB2YWx1ZSBhdCB0aGUgaW5kZXguCisgICAgKiBUaGlzIGlzIG9wdGltaXplZC4KKyAgICAqIE5vdGUgdGhpcyBpcyBhbGl0dGxlIGRpZmZlcmVudCBmcm9tIENoYXJUcmllIHRoZSBpbmRleCBtX3RyaWVEYXRhXworICAgICogaXMgbmV2ZXIgbmVnYXRpdmUuCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBwcm9wZXJ0eSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAqIEByZXR1cm4gcHJvcGVydHkgdmFsdWUgb2YgY29kZSBwb2ludAorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRQcm9wZXJ0eShpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgICAgICAgIHx8IChjaCA+IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICYmIGNoIDwgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICAvLyBCTVAgY29kZXBvaW50IDAwMDAuLkQ3RkYgb3IgREMwMC4uRkZGRgorICAgICAgICAgICAgLy8gb3B0aW1pemVkCisgICAgICAgICAgICB0cnkgeyAvLyB1c2luZyB0cnkgZm9yIGNoIDwgMCBpcyBmYXN0ZXIgdGhhbiB1c2luZyBhbiBpZiBzdGF0ZW1lbnQKKyAgICAgICAgICAgICAgICByZXR1cm4gbV90cmllRGF0YV9bCisgICAgICAgICAgICAgICAgICAgIChtX3RyaWVJbmRleF9bY2ggPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUX10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXykKKyAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiBUcmllLklOREVYX1NUQUdFXzNfTUFTS18pXTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fdHJpZUluaXRpYWxWYWx1ZV87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgRDgwMC4uREJGRgorICAgICAgICAgICAgcmV0dXJuIG1fdHJpZURhdGFfWworICAgICAgICAgICAgICAgICAgICAobV90cmllSW5kZXhfW1RyaWUuTEVBRF9JTkRFWF9PRkZTRVRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoY2ggPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyldCisgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICsgKGNoICYgVHJpZS5JTkRFWF9TVEFHRV8zX01BU0tfKV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDw9IFVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAxMDAwMC4uMTBGRkZGCisgICAgICAgICAgICAvLyBsb29rIGF0IHRoZSBjb25zdHJ1Y3Rpb24gb2Ygc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyB0cmFpbCBmb3JtcyB0aGUgZW5kcyBvZiBpdC4KKyAgICAgICAgICAgIHJldHVybiBtX3RyaWVfLmdldFN1cnJvZ2F0ZVZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoY2ggJiBUcmllLlNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisgICAgICAgIC8vIGNoIGlzIG91dCBvZiBib3VuZHMKKyAgICAgICAgLy8gcmV0dXJuIG1fZGF0YU9mZnNldF8gaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4KKyAgICAgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICAvLyB3ZSBjYW5ub3QgYXNzdW1lIHRoYXQgbV9pbml0aWFsVmFsdWVfIGlzIGF0IG9mZnNldCAwCisgICAgICAgIC8vIHRoaXMgaXMgZm9yIG9wdGltaXphdGlvbi4KKyAgICAgICAgcmV0dXJuIG1fdHJpZUluaXRpYWxWYWx1ZV87CisKKyAgICAgICAgLy8gdGhpcyBhbGwgaXMgYW4gaW5saW5lZCBmb3JtIG9mIHJldHVybiBtX3RyaWVfLmdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIHNpZ25lZCBudW1lcmljIHZhbHVlIG9mIGEgY2hhcmFjdGVyIGVtYmVkZGVkIGluIHRoZSBwcm9wZXJ0eQorICAgICogYXJndW1lbnQKKyAgICAqIEBwYXJhbSBwcm9wIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gc2lnbmVkIG51bWJlcmljIHZhbHVlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRTaWduZWRWYWx1ZShpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAoKHNob3J0KXByb3AgPj4gVkFMVUVfU0hJRlRfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIHVuc2lnbmVkIG51bWVyaWMgdmFsdWUgb2YgYSBjaGFyYWN0ZXIgZW1iZWRkZWQgaW4gdGhlIHByb3BlcnR5CisgICAgKiBhcmd1bWVudAorICAgICogQHBhcmFtIHByb3AgdGhlIGNoYXJhY3RlcgorICAgICogQHJldHVybiB1bnNpZ25lZCBudW1iZXJpYyB2YWx1ZQorICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFVuc2lnbmVkVmFsdWUoaW50IHByb3ApCisgICAgeworICAgICAgICByZXR1cm4gKHByb3AgPj4gVkFMVUVfU0hJRlRfKSAmIFVOU0lHTkVEX1ZBTFVFX01BU0tfQUZURVJfU0hJRlRfOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qIGludGVybmFsIG51bWVyaWMgcHNldWRvLXR5cGVzIGZvciBzcGVjaWFsIGVuY29kaW5ncyBvZiBudW1lcmljIHZhbHVlcyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5UX0ZSQUNUSU9OPTQ7IC8qID09VUNoYXJhY3Rlci5OdW1lcmljVHlwZS5DT1VOVCwgbXVzdCBub3QgY2hhbmdlIHVubGVzcyBiaW5hcnkgZm9ybWF0IHZlcnNpb24gY2hhbmdlcyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5UX0xBUkdFPTU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlRfQ09VTlQ9NjsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVuaWNvZGUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLgorICAgICAqIEMgdmVyc2lvbiBnZXRVbmljb2RlUHJvcGVydGllcy4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGNvZGVwb2ludCB3aG9zZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgaXMgdG8gYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHJldHJpZXZlZAorICAgICAqIEBwYXJhbSBjb2x1bW4KKyAgICAgKiBAcmV0dXJuIHVuaWNvZGUgcHJvcGVydGllcworICAgICAqLworICAgICAgIHB1YmxpYyBpbnQgZ2V0QWRkaXRpb25hbChpbnQgY29kZXBvaW50LCBpbnQgY29sdW1uKSB7CisgICAgICAgIGlmIChjb2x1bW4gPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eShjb2RlcG9pbnQpOworICAgICAgICB9CisgICAgICAgICAgIGlmIChjb2x1bW4gPCAwIHx8IGNvbHVtbiA+PSBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfKSB7CisgICAgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKyAgICAgICByZXR1cm4gbV9hZGRpdGlvbmFsVmVjdG9yc19bCisgICAgICAgICAgICAgICAgICAgICBtX2FkZGl0aW9uYWxUcmllXy5nZXRDb2RlUG9pbnRWYWx1ZShjb2RlcG9pbnQpICsgY29sdW1uXTsKKyAgICAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE1ZX01BU0sgPSBVQ2hhcmFjdGVyUHJvcGVydHkuVFlQRV9NQVNLCisgICAgICAgICYgKCgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgfAorICAgICAgICAgICAgKDE8PFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSKSB8CisgICAgICAgICAgICAoMTw8VUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpIHwKKyAgICAgICAgICAgICgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKSB8CisgICAgICAgICAgICAoMTw8VUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikpOworCisKKyAgICAgICAvKioKKyAgICAgKiA8cD5HZXQgdGhlICJhZ2UiIG9mIHRoZSBjb2RlIHBvaW50LjwvcD4KKyAgICAgKiA8cD5UaGUgImFnZSIgaXMgdGhlIFVuaWNvZGUgdmVyc2lvbiB3aGVuIHRoZSBjb2RlIHBvaW50IHdhcyBmaXJzdAorICAgICAqIGRlc2lnbmF0ZWQgKGFzIGEgbm9uLWNoYXJhY3RlciBvciBmb3IgUHJpdmF0ZSBVc2UpIG9yIGFzc2lnbmVkIGEKKyAgICAgKiBjaGFyYWN0ZXIuPC9wPgorICAgICAqIDxwPlRoaXMgY2FuIGJlIHVzZWZ1bCB0byBhdm9pZCBlbWl0dGluZyBjb2RlIHBvaW50cyB0byByZWNlaXZpbmcKKyAgICAgKiBwcm9jZXNzZXMgdGhhdCBkbyBub3QgYWNjZXB0IG5ld2VyIGNoYXJhY3RlcnMuPC9wPgorICAgICAqIDxwPlRoZSBkYXRhIGlzIGZyb20gdGhlIFVDRCBmaWxlIERlcml2ZWRBZ2UudHh0LjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBkb2VzIG5vdCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNvZGVwb2ludC48L3A+CisgICAgICogQHBhcmFtIGNvZGVwb2ludCBUaGUgY29kZSBwb2ludC4KKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlIHZlcnNpb24gbnVtYmVyCisgICAgICogQGRyYWZ0IElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVyc2lvbkluZm8gZ2V0QWdlKGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBpbnQgdmVyc2lvbiA9IGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAwKSA+PiBBR0VfU0hJRlRfOworICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVyc2lvbiA+PiBGSVJTVF9OSUJCTEVfU0hJRlRfKSAmIExBU1RfTklCQkxFX01BU0tfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAmIExBU1RfTklCQkxFX01BU0tfLCAwLCAwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfQ05fTUFTSyA9IGdldE1hc2soVUNoYXJhY3Rlci5VTkFTU0lHTkVEKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfQ0NfTUFTSyA9IGdldE1hc2soVUNoYXJhY3Rlci5DT05UUk9MKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfQ1NfTUFTSyA9IGdldE1hc2soVUNoYXJhY3Rlci5TVVJST0dBVEUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19aU19NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pMX01BU0sgPSBnZXRNYXNrKFVDaGFyYWN0ZXIuTElORV9TRVBBUkFUT1IpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19aUF9NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlBBUkFHUkFQSF9TRVBBUkFUT1IpOworICAgIC8qKiBNYXNrIGNvbnN0YW50IGZvciBtdWx0aXBsZSBVQ2hhckNhdGVnb3J5IGJpdHMgKFogU2VwYXJhdG9ycykuICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pfTUFTSyA9IEdDX1pTX01BU0t8R0NfWkxfTUFTS3xHQ19aUF9NQVNLOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGMgaXMgaW4KKyAgICAgKiBbXlxwe3NwYWNlfVxwe2djPUNvbnRyb2x9XHB7Z2M9U3Vycm9nYXRlfVxwe2djPVVuYXNzaWduZWR9XQorICAgICAqIHdpdGggc3BhY2U9XHB7V2hpdGVzcGFjZX0gYW5kIENvbnRyb2w9Q2MuCisgICAgICogSW1wbGVtZW50cyBVQ0hBUl9QT1NJWF9HUkFQSC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzZ3JhcGhQT1NJWChpbnQgYykgeworICAgICAgICAvKiBccHtzcGFjZX1ccHtnYz1Db250cm9sfSA9PSBccHtnYz1afVxwe0NvbnRyb2x9ICovCisgICAgICAgIC8qIGNvbXBhcmluZyA9PTAgcmV0dXJucyBGQUxTRSBmb3IgdGhlIGNhdGVnb3JpZXMgbWVudGlvbmVkICovCisgICAgICAgIHJldHVybiAoZ2V0TWFzayhVQ2hhcmFjdGVyLmdldFR5cGUoYykpJgorICAgICAgICAgICAgICAgIChHQ19DQ19NQVNLfEdDX0NTX01BU0t8R0NfQ05fTUFTS3xHQ19aX01BU0spKQorICAgICAgICAgICAgICAgPT0wOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEJpbmFyeVByb3BlcnRpZXN7CisgICAgICAgaW50IGNvbHVtbjsKKyAgICAgICBsb25nIG1hc2s7CisgICAgICAgcHVibGljIEJpbmFyeVByb3BlcnRpZXMoaW50IGNvbHVtbixsb25nIG1hc2speworICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47CisgICAgICAgICAgICAgICB0aGlzLm1hc2sgID0gbWFzazsKKyAgICAgICB9CisgICB9CisgICBCaW5hcnlQcm9wZXJ0aWVzW10gYmluUHJvcHM9eworICAgICAgIC8qCisgICAgICAgICogY29sdW1uIGFuZCBtYXNrIHZhbHVlcyBmb3IgYmluYXJ5IHByb3BlcnRpZXMgZnJvbSB1X2dldFVuaWNvZGVQcm9wZXJ0aWVzKCkuCisgICAgICAgICogTXVzdCBiZSBpbiBvcmRlciBvZiBjb3JyZXNwb25kaW5nIFVQcm9wZXJ0eSwKKyAgICAgICAgKiBhbmQgdGhlcmUgbXVzdCBiZSBleGFjbHkgb25lIGVudHJ5IHBlciBiaW5hcnkgVVByb3BlcnR5LgorICAgICAgICAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBBTFBIQUJFVElDX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgQVNDSUlfSEVYX0RJR0lUX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0JJREksICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0JJRElfQ09OVFJPTCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQklESSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfQklESV9NSVJST1JFRCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBEQVNIX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IERFUFJFQ0FURURfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBESUFDUklUSUNfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBFWFRFTkRFUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19OT1JNLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBHUkFQSEVNRV9CQVNFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgR1JBUEhFTUVfRVhURU5EX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgR1JBUEhFTUVfTElOS19QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEhFWF9ESUdJVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEhZUEhFTl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElEX0NPTlRJTlVFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSURfU1RBUlRfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBJREVPR1JBUEhJQ19QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElEU19CSU5BUllfT1BFUkFUT1JfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBJRFNfVFJJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19CSURJLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9KT0lOX0NPTlRST0wgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgTE9HSUNBTF9PUkRFUl9FWENFUFRJT05fUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0FTRSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfTE9XRVJDQVNFICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IE1BVEhfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBOT05DSEFSQUNURVJfQ09ERV9QT0lOVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFFVT1RBVElPTl9NQVJLX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgUkFESUNBTF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DQVNFLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9TT0ZUX0RPVFRFRCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBURVJNSU5BTF9QVU5DVFVBVElPTl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFVOSUZJRURfSURFT0dSQVBIX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NBU0UsICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1VQUEVSQ0FTRSAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBXSElURV9TUEFDRV9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFhJRF9DT05USU5VRV9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFhJRF9TVEFSVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DQVNFLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9DQVNFX1NFTlNJVElWRSAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMiwgICAgICAgICAgICAgICAgKCAgMSA8PCBWMl9TX1RFUk1fUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMiwgICAgICAgICAgICAgICAgKCAgMSA8PCBWMl9WQVJJQVRJT05fU0VMRUNUT1JfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfTk9STSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfTkZEX0lORVJUICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19OT1JNLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9ORktEX0lORVJUICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19OT1JNLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9ORkNfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX05GS0NfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1NFR01FTlRfU1RBUlRFUiAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMiwgICAgICAgICAgICAgICAgKCAgMSA8PCBWMl9QQVRURVJOX1NZTlRBWCkgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDIsICAgICAgICAgICAgICAgICggIDEgPDwgVjJfUEFUVEVSTl9XSElURV9TUEFDRSkgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVJfQU5EX1BST1BTVkVDLCAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX0FMTlVNICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DSEFSLCAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9QT1NJWF9CTEFOSyAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0hBUiwgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfUE9TSVhfR1JBUEggKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVIsICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX1BSSU5UICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DSEFSLCAgMCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9QT1NJWF9YRElHSVQgKi8KKyAgIH07CisKKworICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGEgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgZm9yIGEgY29kZSBwb2ludC48L3A+CisgICAgICogPHA+VW5pY29kZSwgZXNwZWNpYWxseSBpbiB2ZXJzaW9uIDMuMiwgZGVmaW5lcyBtYW55IG1vcmUgcHJvcGVydGllcworICAgICAqIHRoYW4gdGhlIG9yaWdpbmFsIHNldCBpbiBVbmljb2RlRGF0YS50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGlzIGludGVuZGVkIHRvIHJlZmxlY3QgVW5pY29kZSBwcm9wZXJ0aWVzIGFzIGRlZmluZWQgaW4KKyAgICAgKiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UgKFVDRCkgYW5kIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydHMKKyAgICAgKiAoVVRSKS48L3A+CisgICAgICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgdGhlIHByb3BlcnRpZXMgc2VlCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnLz5odHRwOi8vd3d3LnVuaWNvZGUub3JnLzwvYT4uPC9wPgorICAgICAqIDxwPkZvciBuYW1lcyBvZiBVbmljb2RlIHByb3BlcnRpZXMgc2VlIHRoZSBVQ0QgZmlsZQorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKyAgICAgKiA8cD5JbXBvcnRhbnQ6IElmIElDVSBpcyBidWlsdCB3aXRoIFVDRCBmaWxlcyBmcm9tIFVuaWNvZGUgdmVyc2lvbnMKKyAgICAgKiBiZWxvdyAzLjIsIHRoZW4gcHJvcGVydGllcyBtYXJrZWQgd2l0aCAibmV3IiBhcmUgbm90IG9yCisgICAgICogbm90IGZ1bGx5IGF2YWlsYWJsZS48L3A+CisgICAgICogQHBhcmFtIGNvZGVwb2ludCBDb2RlIHBvaW50IHRvIHRlc3QuCisgICAgICogQHBhcmFtIHByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50IGZyb20gY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHksCisgICAgICogICAgICAgIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IHByb3BlcnR5IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gdHJ1ZSBvciBmYWxzZSBhY2NvcmRpbmcgdG8gdGhlIGJpbmFyeSBVbmljb2RlIHByb3BlcnR5IHZhbHVlCisgICAgICogICAgICAgICBmb3IgY2guIEFsc28gZmFsc2UgaWYgcHJvcGVydHkgaXMgb3V0IG9mIGJvdW5kcyBvciBpZiB0aGUKKyAgICAgKiAgICAgICAgIFVuaWNvZGUgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIGRhdGEgZm9yIHRoZSBwcm9wZXJ0eSBhdCBhbGwsIG9yCisgICAgICogICAgICAgICBub3QgZm9yIHRoaXMgY29kZSBwb2ludC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5CisgICAgICogQGRyYWZ0IElDVSAyLjEKKyAgICAgKi8KKworICAgIHB1YmxpYyBib29sZWFuIGhhc0JpbmFyeVByb3BlcnR5KGludCBjb2RlcG9pbnQsIGludCBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgICBpZihwcm9wZXJ0eSA8VVByb3BlcnR5LkJJTkFSWV9TVEFSVCB8fCBVUHJvcGVydHkuQklOQVJZX0xJTUlUPD1wcm9wZXJ0eSkgeworICAgICAgICAgICAgLy8gbm90IGEga25vd24gYmluYXJ5IHByb3BlcnR5CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb25nIG1hc2s9YmluUHJvcHNbcHJvcGVydHldLm1hc2s7CisgICAgICAgICAgICBpbnQgY29sdW1uPWJpblByb3BzW3Byb3BlcnR5XS5jb2x1bW47CisgICAgICAgICAgICBpZihtYXNrIT0wKSB7CisgICAgICAgICAgICAgICAgLy8gc3lzdGVtYXRpYywgZGlyZWN0bHkgc3RvcmVkIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICByZXR1cm4gKChVTlNJR05FRF9JTlRfTUFTSyAmIGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCBjb2x1bW4pKSAmIG1hc2spIT0wOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihjb2x1bW49PVNSQ19DQVNFKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGNhc2UgbWFwcGluZyBwcm9wZXJ0aWVzICovCisgICAgICAgICAgICAgICAgICAgIFVDYXNlUHJvcHMgY3NwOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3NwID0gVUNhc2VQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNhc2VQcm9wcy5MT1dFUj09Y3NwLmdldFR5cGUoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDYXNlUHJvcHMuVVBQRVI9PWNzcC5nZXRUeXBlKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNPRlRfRE9UVEVEOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNzcC5pc1NvZnREb3R0ZWQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9TRU5TSVRJVkU6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NwLmlzQ2FzZVNlbnNpdGl2ZShjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29sdW1uPT1TUkNfTk9STSkgeworICAgICAgICAgICAgICAgICAgICAvKiBub3JtYWxpemF0aW9uIHByb3BlcnRpZXMgZnJvbSB1bm9ybS5pY3UgKi8KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzRnVsbENvbXBvc2l0aW9uRXhjbHVzaW9uKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GRF9JTkVSVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY29kZXBvaW50LCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0RfSU5FUlQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNvZGVwb2ludCwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZDX0lORVJUOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLQ19JTkVSVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY29kZXBvaW50LCBOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVI6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNDYW5vblNhZmVTdGFydChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29sdW1uPT1TUkNfQklESSkgeworICAgICAgICAgICAgICAgICAgICAvKiBiaWRpL3NoYXBpbmcgcHJvcGVydGllcyAqLworCQkJCQlVQmlEaVByb3BzIGJkcDsKKwkJCQkJdHJ5IHsKKwkJCQkJCWJkcCA9IFVCaURpUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisJCQkJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCQkJCXJldHVybiBmYWxzZTsKKwkJCQkJfQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9NSVJST1JFRDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiZHAuaXNNaXJyb3JlZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX0NPTlRST0w6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmRwLmlzQmlkaUNvbnRyb2woY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTl9DT05UUk9MOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJkcC5pc0pvaW5Db250cm9sKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19DSEFSKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5QT1NJWF9CTEFOSzoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICJob3Jpem9udGFsIHNwYWNlIgorICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29kZXBvaW50PD0weDlmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvZGVwb2ludD09OSB8fCBjb2RlcG9pbnQ9PTB4MjA7IC8qIFRBQiBvciBTUEFDRSAqLworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBacyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFR5cGUoY29kZXBvaW50KT09VUNoYXJhY3Rlci5TUEFDRV9TRVBBUkFUT1I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX0dSQVBIOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzZ3JhcGhQT1NJWChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5QT1NJWF9QUklOVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBDaGVja3MgaWYgY29kZXBvaW50IGlzIGluIFxwe2dyYXBofVxwe2JsYW5rfSAtIFxwe2NudHJsfS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgb25seSBjbnRybCBjaGFyYWN0ZXIgaW4gZ3JhcGgrYmxhbmsgaXMgVEFCIChpbiBibGFuaykuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBIZXJlIHdlIGltcGxlbWVudCAoYmxhbmstVEFCKT1acyBpbnN0ZWFkIG9mIGNhbGxpbmcgdV9pc2JsYW5rKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNvZGVwb2ludCk9PVVDaGFyYWN0ZXIuU1BBQ0VfU0VQQVJBVE9SKSB8fCBpc2dyYXBoUE9TSVgoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuUE9TSVhfWERJR0lUOgorICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hlY2sgQVNDSUkgYW5kIEZ1bGx3aWR0aCBBU0NJSSBhLWZBLUYgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlcG9pbnQ8PTB4NjYgJiYgY29kZXBvaW50Pj0weDQxICYmIChjb2RlcG9pbnQ8PTB4NDYgfHwgY29kZXBvaW50Pj0weDYxKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29kZXBvaW50Pj0weGZmMjEgJiYgY29kZXBvaW50PD0weGZmNDYgJiYgKGNvZGVwb2ludDw9MHhmZjI2IHx8IGNvZGVwb2ludD49MHhmZjQxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VHlwZShjb2RlcG9pbnQpPT1VQ2hhcmFjdGVyLkRFQ0lNQUxfRElHSVRfTlVNQkVSOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29sdW1uPT1TUkNfQ0hBUl9BTkRfUFJPUFNWRUMpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX0FMTlVNOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYyhjb2RlcG9pbnQpIHx8IFVDaGFyYWN0ZXIuaXNEaWdpdChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U291cmNlKGludCB3aGljaCkgeworICAgICAgICBpZih3aGljaDxVUHJvcGVydHkuQklOQVJZX1NUQVJUKSB7CisgICAgICAgICAgICByZXR1cm4gU1JDX05PTkU7IC8qIHVuZGVmaW5lZCAqLworICAgICAgICB9IGVsc2UgaWYod2hpY2g8VVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgeworICAgICAgICAgICAgaWYoYmluUHJvcHNbd2hpY2hdLm1hc2shPTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX1BST1BTVkVDOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmluUHJvcHNbd2hpY2hdLmNvbHVtbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKHdoaWNoPFVQcm9wZXJ0eS5JTlRfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlk6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OVU1FUklDX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19DSEFSOworCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0hTVDsKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0RfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkNfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktDX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX05PUk07CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfQklESTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX1BST1BTVkVDOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYod2hpY2g8VVByb3BlcnR5LlNUUklOR19TVEFSVCkgeworICAgICAgICAgICAgc3dpdGNoKHdoaWNoKSB7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OVU1FUklDX1ZBTFVFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfQ0hBUjsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX05PTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuU1RSSU5HX0xJTUlUKSB7CisgICAgICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFHRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX1BST1BTVkVDOworCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0JJREk7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxPV0VSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9USVRMRUNBU0VfTUFQUElORzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9VUFBFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFX01BUFBJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19DQVNFOworCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5BTUU6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VTklDT0RFXzFfTkFNRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX05BTUVTOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIEZvcm1zIGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IGZyb20gdGhlIGFyZ3VtZW50IGNoYXJhY3Rlcjxicj4KKyAgICAqIE5vdGUgdGhpcyBpcyBmb3IgaW50ZXJuYWwgdXNlIGhlbmNlIG5vIGNoZWNrcyBmb3IgdGhlIHZhbGlkaXR5IG9mIHRoZQorICAgICogc3Vycm9nYXRlIGNoYXJhY3RlcnMgYXJlIGRvbmUKKyAgICAqIEBwYXJhbSBsZWFkIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gY29kZSBwb2ludCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFJhd1N1cHBsZW1lbnRhcnkoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChsZWFkIDw8IExFQURfU1VSUk9HQVRFX1NISUZUXykgKyB0cmFpbCArIFNVUlJPR0FURV9PRkZTRVRfOworICAgIH0KKworICAgIC8qKgorICAgICogTG9hZHMgdGhlIHByb3BlcnR5IGRhdGEgYW5kIGluaXRpYWxpemUgdGhlIFVDaGFyYWN0ZXJQcm9wZXJ0eSBpbnN0YW5jZS4KKyAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHdoZW4gZGF0YSBpcyBtaXNzaW5nIG9yIGRhdGEgaGFzIGJlZW4gY29ycnVwdGVkCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVDaGFyYWN0ZXJQcm9wZXJ0eSBnZXRJbnN0YW5jZSgpCisgICAgeworICAgICAgICBpZihJTlNUQU5DRV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJTlNUQU5DRV8gPSBuZXcgVUNoYXJhY3RlclByb3BlcnR5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSU5TVEFOQ0VfOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFVuaWNvZGUgcHJvcGVydHkgbmFtZXMgYW5kIHByb3BlcnR5IHZhbHVlIG5hbWVzIGFyZSBjb21wYXJlZAorICAgICAqICJsb29zZWx5Ii4gUHJvcGVydHlbVmFsdWVdQWxpYXNlcy50eHQgc2F5OgorICAgICAqIDxxdW90ZT4KKyAgICAgKiAgICJXaXRoIGxvb3NlIG1hdGNoaW5nIG9mIHByb3BlcnR5IG5hbWVzLCB0aGUgY2FzZSBkaXN0aW5jdGlvbnMsCisgICAgICogICAgd2hpdGVzcGFjZSwgYW5kICdfJyBhcmUgaWdub3JlZC4iCisgICAgICogPC9xdW90ZT4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhpcyBmdW5jdGlvbiBkb2VzIGp1c3QgdGhhdCwgZm9yIEFTQ0lJIChjaGFyICopIG5hbWUgc3RyaW5ncy4KKyAgICAgKiBJdCBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHVjbnZfY29tcGFyZU5hbWVzKCkgYnV0IGFsc28gaWdub3JlcworICAgICAqIEFTQ0lJIFdoaXRlX1NwYWNlIGNoYXJhY3RlcnMgKFUrMDAwOS4uVSswMDBkKS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIG5hbWUxIG5hbWUgdG8gY29tcGFyZQorICAgICAqIEBwYXJhbSBuYW1lMiBuYW1lIHRvIGNvbXBhcmUKKyAgICAgKiBAcmV0dXJuIDAgaWYgbmFtZXMgYXJlIGVxdWFsLCA8IDAgaWYgbmFtZTEgaXMgbGVzcyB0aGFuIG5hbWUyIGFuZCA+IDAKKyAgICAgKiAgICAgICAgIGlmIG5hbWUxIGlzIGdyZWF0ZXIgdGhhbiBuYW1lMi4KKyAgICAgKi8KKyAgICAvKiB0byBiZSBpbXBsZW1lbnRlZCBpbiAyLjQKKyAgICAgKiBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlUHJvcGVydHlOYW1lcyhTdHJpbmcgbmFtZTEsIFN0cmluZyBuYW1lMikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgaTEgPSAwOworICAgICAgICBpbnQgaTIgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgY2hhciBjaDEgPSAwOworICAgICAgICAgICAgY2hhciBjaDIgPSAwOworICAgICAgICAgICAgLy8gSWdub3JlIGRlbGltaXRlcnMgJy0nLCAnXycsIGFuZCBBU0NJSSBXaGl0ZV9TcGFjZQorICAgICAgICAgICAgaWYgKGkxIDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjaDEgPSBuYW1lMS5jaGFyQXQoaTEgKyspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGNoMSA9PSAnLScgfHwgY2gxID09ICdfJyB8fCBjaDEgPT0gJyAnIHx8IGNoMSA9PSAnXHQnCisgICAgICAgICAgICAgICAgICAgfHwgY2gxID09ICdcbicgLy8gc3lud2VlIHdoYXQgaXMgfHwgY2gxID09ICdcdicKKyAgICAgICAgICAgICAgICAgICB8fCBjaDEgPT0gJ1xmJyB8fCBjaDE9PSdccicpIHsKKyAgICAgICAgICAgICAgICBpZiAoaTEgPCBuYW1lMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBjaDEgPSBuYW1lMS5jaGFyQXQoaTEgKyspOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2gxID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaTIgPCBuYW1lMi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNoMiA9IG5hbWUyLmNoYXJBdChpMiArKyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoY2gyID09ICctJyB8fCBjaDIgPT0gJ18nIHx8IGNoMiA9PSAnICcgfHwgY2gyID09ICdcdCcKKyAgICAgICAgICAgICAgICAgICB8fCBjaDIgPT0gJ1xuJyAvLyBzeW53ZWUgd2hhdCBpcyB8fCBjaDEgPT0gJ1x2JworICAgICAgICAgICAgICAgICAgIHx8IGNoMiA9PSAnXGYnIHx8IGNoMj09J1xyJykgeworICAgICAgICAgICAgICAgIGlmIChpMiA8IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IG5hbWUyLmNoYXJBdChpMiArKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaDIgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgd2UgcmVhY2ggdGhlIGVuZHMgb2YgYm90aCBzdHJpbmdzIHRoZW4gdGhleSBtYXRjaAorICAgICAgICAgICAgaWYgKGNoMSA9PSAwICYmIGNoMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbgorICAgICAgICAgICAgaWYgKGNoMSAhPSBjaDIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gyKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgYyBpcyB0byBiZSB0cmVhdGVkIGFzIGEgd2hpdGUgc3BhY2UgaW4gSUNVCisgICAgICogcnVsZXMuIFVzdWFsbHkgSUNVIHJ1bGUgd2hpdGUgc3BhY2VzIGFyZSBpZ25vcmVkIHVubGVzcyBxdW90ZWQuCisgICAgICogRXF1aXZhbGVudCB0byB0ZXN0IGZvciBQYXR0ZXJuX1doaXRlX1NwYWNlIFVuaWNvZGUgcHJvcGVydHkuCisgICAgICogU3RhYmxlIHNldCBvZiBjaGFyYWN0ZXJzLCB3b24ndCBjaGFuZ2UuCisgICAgICogU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXg6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjMxLworICAgICAqIEBwYXJhbSBjIGNvZGVwb2ludCB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjIGlzIGEgSUNVIHdoaXRlIHNwYWNlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUnVsZVdoaXRlU3BhY2UoaW50IGMpCisgICAgeworICAgICAgICAvKiAid2hpdGUgc3BhY2UiIGluIHRoZSBzZW5zZSBvZiBJQ1UgcnVsZSBwYXJzZXJzCisgICAgICAgICAgIFRoaXMgaXMgYSBGSVhFRCBMSVNUIHRoYXQgaXMgTk9UIERFUEVOREVOVCBPTiBVTklDT0RFIFBST1BFUlRJRVMuCisgICAgICAgICAgIFNlZSBVQVggIzMxIElkZW50aWZpZXIgYW5kIFBhdHRlcm4gU3ludGF4OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzMS8KKyAgICAgICAgICAgVSswMDA5Li5VKzAwMEQsIFUrMDAyMCwgVSswMDg1LCBVKzIwMEUuLlUrMjAwRiwgYW5kIFUrMjAyOC4uVSsyMDI5CisgICAgICAgICAgIEVxdWl2YWxlbnQgdG8gdGVzdCBmb3IgUGF0dGVybl9XaGl0ZV9TcGFjZSBVbmljb2RlIHByb3BlcnR5LgorICAgICAgICAqLworICAgICAgICByZXR1cm4gKGMgPj0gMHgwMDA5ICYmIGMgPD0gMHgyMDI5ICYmCisgICAgICAgICAgICAgICAgKGMgPD0gMHgwMDBEIHx8IGMgPT0gMHgwMDIwIHx8IGMgPT0gMHgwMDg1IHx8CisgICAgICAgICAgICAgICAgIGMgPT0gMHgyMDBFIHx8IGMgPT0gMHgyMDBGIHx8IGMgPj0gMHgyMDI4KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB0aGUgbWF4aW11bSB2YWx1ZXMgZm9yIHNvbWUgZW51bS9pbnQgcHJvcGVydGllcy4KKyAgICAgKiBAcmV0dXJuIG1heGltdW0gdmFsdWVzIGZvciB0aGUgaW50ZWdlciBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4VmFsdWVzKGludCBjb2x1bW4pCisgICAgeworICAgICAgIC8vIHJldHVybiBtX21heEJsb2NrU2NyaXB0VmFsdWVfOworCisgICAgICAgIHN3aXRjaChjb2x1bW4pIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIG1fbWF4QmxvY2tTY3JpcHRWYWx1ZV87CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiBtX21heEpUR1ZhbHVlXzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdHlwZSBtYXNrCisgICAgICogQHBhcmFtIHR5cGUgY2hhcmFjdGVyIHR5cGUKKyAgICAgKiBAcmV0dXJuIG1hc2sKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBnZXRNYXNrKGludCB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDEgPDwgdHlwZTsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFeHRyYSBwcm9wZXJ0eSB0cmllCisgICAgICovCisgICAgQ2hhclRyaWUgbV9hZGRpdGlvbmFsVHJpZV87CisgICAgLyoqCisgICAgICogRXh0cmEgcHJvcGVydHkgdmVjdG9ycywgMXN0IGNvbHVtbiBmb3IgYWdlIGFuZCBzZWNvbmQgZm9yIGJpbmFyeQorICAgICAqIHByb3BlcnRpZXMuCisgICAgICovCisgICAgaW50IG1fYWRkaXRpb25hbFZlY3RvcnNfW107CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGFkZGl0aW9uYWwgY29sdW1ucworICAgICAqLworICAgIGludCBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWVzIGZvciBibG9jaywgYml0cyB1c2VkIGFzIGluIHZlY3RvciB3b3JkCisgICAgICogMAorICAgICAqLworICAgIGludCBtX21heEJsb2NrU2NyaXB0VmFsdWVfOworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWVzIGZvciBzY3JpcHQsIGJpdHMgdXNlZCBhcyBpbiB2ZWN0b3Igd29yZAorICAgICAqIDAKKyAgICAgKi8KKyAgICAgaW50IG1fbWF4SlRHVmFsdWVfOworICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgLyoqCisgICAgICogVW5pY29kZURhdGEudHh0IHByb3BlcnR5IG9iamVjdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFVDaGFyYWN0ZXJQcm9wZXJ0eSBJTlNUQU5DRV8gPSBudWxsOworCisgICAgLyoqCisgICAgKiBEZWZhdWx0IG5hbWUgb2YgdGhlIGRhdGFmaWxlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9GSUxFX05BTUVfID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3Vwcm9wcy5pY3UiOworCisgICAgLyoqCisgICAgKiBEZWZhdWx0IGJ1ZmZlciBzaXplIG9mIGRhdGFmaWxlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRV8gPSAyNTAwMDsKKworICAgIC8qKgorICAgICogTnVtZXJpYyB2YWx1ZSBzaGlmdAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFZBTFVFX1NISUZUXyA9IDg7CisKKyAgICAvKioKKyAgICAqIE1hc2sgdG8gYmUgYXBwbGllZCBhZnRlciBzaGlmdGluZyB0byBvYnRhaW4gYW4gdW5zaWduZWQgbnVtZXJpYyB2YWx1ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX1ZBTFVFX01BU0tfQUZURVJfU0hJRlRfID0gMHhGRjsKKworICAgIC8qKgorICAgICAqCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVFlQRV9TSElGVCA9IDU7CisKKyAgICAvKioKKyAgICAqIFRvIGdldCB0aGUgbGFzdCA1IGJpdHMgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUXzVfQklUX01BU0tfID0gMHgxRjsKKworICAgIC8qKgorICAgICogU2hpZnQgNSBiaXRzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRfNV8gPSA1OworICAgIC8qKgorICAgICogU2hpZnQgMTAgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzEwXyA9IDEwOworCisgICAgLyoqCisgICAgKiBTaGlmdCB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgdG8gZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworICAgIC8qKgorICAgICogT2Zmc2V0IHRvIGFkZCB0byBjb21iaW5lZCBzdXJyb2dhdGUgcGFpciB0byBhdm9pZCBtc2tpbmcuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX09GRlNFVF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVURjE2LlNVUlJPR0FURV9NSU5fVkFMVUUgPDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQURfU1VSUk9HQVRFX1NISUZUXykgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsKKyAgICAvKioKKyAgICAqIExhdGluIHVwcGVyY2FzZSBJCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX0NBUElUQUxfTEVUVEVSX0lfID0gMHg0OTsKKyAgICAvKioKKyAgICAqIENvbWJpbmluZyBkb3QgYWJvdmUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09NQklOSU5HX0RPVF9BQk9WRV8gPSAweDMwNzsKKyAgICAvKioKKyAgICAqIExBVElOIFNNQUxMIExFVFRFUiBKCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fU01BTExfTEVUVEVSX0pfID0gMHg2YTsKKyAgICAvKioKKyAgICAqIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggT0dPTkVLCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fU01BTExfTEVUVEVSX0lfV0lUSF9PR09ORUtfID0gMHgxMmY7CisgICAgLyoqCisgICAgKiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fU01BTExfTEVUVEVSX0lfV0lUSF9USUxERV9CRUxPV18gPSAweDFlMmQ7CisgICAgLyoqCisgICAgKiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX1NNQUxMX0xFVFRFUl9JX1dJVEhfRE9UX0JFTE9XXyA9IDB4MWVjYjsKKyAgICAvKioKKyAgICAqIENvbWJpbmluZyBjbGFzcyBmb3IgY29tYmluaW5nIG1hcmsgYWJvdmUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfTUFSS19BQk9WRV9DTEFTU18gPSAyMzA7CisKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEoKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0xFVFRFUl9KXyA9IDB4NGE7CisKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9PR09ORUtfID0gMHgxMmU7CisgICAgLyoqCisgICAgKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9USUxERV8gPSAweDEyODsKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfSV9XSVRIX0dSQVZFXyA9IDB4Y2M7CisgICAgLyoqCisgICAgKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9BQ1VURV8gPSAweGNkOworICAgIC8qKgorICAgICogQ09NQklOSU5HIEdSQVZFIEFDQ0VOVAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19HUkFWRV9BQ0NFTlRfID0gMHgzMDA7CisgICAgLyoqCisgICAgKiBDT01CSU5JTkcgQUNVVEUgQUNDRU5UCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0FDVVRFX0FDQ0VOVF8gPSAweDMwMTsKKyAgICAvKioKKyAgICAqIENPTUJJTklORyBUSUxERQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19USUxERV8gPSAweDMwMzsKKyAgICAvKioKKyAgICAqIEdyZWVrIGNhcGl0YWwgbGV0dGVyIHNpZ21hCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEdSRUVLX0NBUElUQUxfTEVUVEVSX1NJR01BXyA9IDB4M2EzOworICAgIC8qKgorICAgICogR3JlZWsgc21hbGwgbGV0dGVyIHNpZ21hCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEdSRUVLX1NNQUxMX0xFVFRFUl9TSUdNQV8gPSAweDNjMzsKKyAgICAvKioKKyAgICAqIEdyZWVrIHNtYWxsIGxldHRlciByaG8KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgR1JFRUtfU01BTExfTEVUVEVSX1JIT18gPSAweDNjMjsKKyAgICAvKioKKyAgICAqIEh5cGhlbnMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU5fICAgICAgPSAweDIwMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPRlRfSFlQSEVOXyA9IDB4QUQ7CisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgY2hhcmFjdGVyIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DSEFSX01BU0tfID0gMHhGRkZGOworICAgIC8qKgorICAgICogVG8gZ2V0IHRoZSBsYXN0IGJ5dGUgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICogU2hpZnQgMTYgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzE2XyA9IDE2OworCisgICAgLy8gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkZGl0aW9uYWwgcHJvcGVydGllcyB1c2VkIGluIGludGVybmFsIHRyaWUgZGF0YQorICAgICAqLworICAgIC8qCisgICAgICogUHJvcGVydGllcyBpbiB2ZWN0b3Igd29yZCAxCisgICAgICogRWFjaCBiaXQgZW5jb2RlcyBvbmUgYmluYXJ5IHByb3BlcnR5LgorICAgICAqIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIHJlcHJlc2VudCB0aGUgYml0IG51bWJlciwgdXNlIDE8PFVQUk9QU19YWVouCisgICAgICogVVBST1BTX0JJTkFSWV8xX1RPUDw9MzIhCisgICAgICoKKyAgICAgKiBLZWVwIHRoaXMgbGlzdCBvZiBwcm9wZXJ0eSBlbnVtcyBpbiBzeW5jIHdpdGgKKyAgICAgKiBwcm9wTGlzdE5hbWVzW10gaW4gaWN1L3NvdXJjZS90b29scy9nZW5wcm9wcy9wcm9wczIuYyEKKyAgICAgKgorICAgICAqIElDVSAyLjYvdXByb3BzIGZvcm1hdCB2ZXJzaW9uIDMuMiBzdG9yZXMgZnVsbCBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgIk90aGVyXyIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX1BST1BFUlRZXyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJRElfQ09OVFJPTF9QUk9QRVJUWV8gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0xfUFJPUEVSVFlfID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFTSF9QUk9QRVJUWV8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU5fUFJPUEVSVFlfID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX01BUktfUFJPUEVSVFlfID0gNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVSTUlOQUxfUFVOQ1RVQVRJT05fUFJPUEVSVFlfID0gNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFUSF9QUk9QRVJUWV8gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVhfRElHSVRfUFJPUEVSVFlfID0gODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVNDSUlfSEVYX0RJR0lUX1BST1BFUlRZXyA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFMUEhBQkVUSUNfUFJPUEVSVFlfID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDX1BST1BFUlRZXyA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUFDUklUSUNfUFJPUEVSVFlfID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVSX1BST1BFUlRZXyA9IDEzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1dFUkNBU0VfUFJPUEVSVFlfID0gMTQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRV9QUk9QRVJUWV8gPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlRfUFJPUEVSVFlfID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0VYVEVORF9QUk9QRVJUWV8gPSAxNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfTElOS19QUk9QRVJUWV8gPSAxODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8gPSAxOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX1RSSU5BUllfT1BFUkFUT1JfUFJPUEVSVFlfID0gMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJBRElDQUxfUFJPUEVSVFlfID0gMjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIX1BST1BFUlRZXyA9IDIyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXyA9IDIzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERVBSRUNBVEVEX1BST1BFUlRZXyA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT0ZUX0RPVFRFRF9QUk9QRVJUWV8gPSAyNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9HSUNBTF9PUkRFUl9FWENFUFRJT05fUFJPUEVSVFlfID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFhJRF9TVEFSVF9QUk9QRVJUWV8gPSAyNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWElEX0NPTlRJTlVFX1BST1BFUlRZXyA9IDI4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9TVEFSVF9QUk9QRVJUWV8gICAgPSAyOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURfQ09OVElOVUVfUFJPUEVSVFlfID0gMzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0JBU0VfUFJPUEVSVFlfID0gMzE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJTkFSWV8xX1RPUF9QUk9QRVJUWV8gPSAzMjsKKworICAgIC8qKgorICAgICAqIEZpcnN0IG5pYmJsZSBzaGlmdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSVJTVF9OSUJCTEVfU0hJRlRfID0gMHg0OworICAgIC8qKgorICAgICAqIFNlY29uZCBuaWJibGUgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX05JQkJMRV9NQVNLXyA9IDB4RjsKKyAgICAvKioKKyAgICAgKiBBZ2UgdmFsdWUgc2hpZnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUdFX1NISUZUXyA9IDI0OworCisgICAgLy8gYm9vbGVhbiBwcm9wZXJ0aWVzIGluIHZlY3RvciB3b3JkIDIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVjJfU19URVJNX1BST1BFUlRZXyA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWMl9WQVJJQVRJT05fU0VMRUNUT1JfUFJPUEVSVFlfID0gMjU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFYyX1BBVFRFUk5fU1lOVEFYID0gMjY7ICAgICAgICAgICAgICAgICAgIC8qIG5ldyBpbiBJQ1UgMy40IGFuZCBVbmljb2RlIDQuMSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWMl9QQVRURVJOX1dISVRFX1NQQUNFID0gMjc7CisKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMgb3IgZGF0YSBjb3JydXB0ZWQKKyAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlclByb3BlcnR5KCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBqYXIgYWNjZXNzCisgICAgICAgIElucHV0U3RyZWFtIGlzID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShEQVRBX0ZJTEVfTkFNRV8pOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgREFUQV9CVUZGRVJfU0laRV8pOworICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIgcmVhZGVyID0gbmV3IFVDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKworICAgICAgICBtX3RyaWVfLnB1dEluZGV4RGF0YSh0aGlzKTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoKKyAgICAgKiBDb21wYXJlIGFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBzZWUgaWYgaXQgaGFzIGFyZ3VtZW50IHR5cGUKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgMzIgYml0IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBwcm9wZXJ0eSBoYXMgdHlwZQorICAgICAqLworICAgIC8qcHJpdmF0ZSBib29sZWFuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShpbnQgcHJvcGVydHksIGludCB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChwcm9wZXJ0eSAmICgxIDw8IHR5cGUpKSAhPSAwOworICAgIH0qLworCisgICAgLy8gcHJvcGVydHkgc3RhcnRzIGZvciBVbmljb2RlU2V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRBQiAgICAgPSAweDAwMDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExGICAgICAgPSAweDAwMGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZGICAgICAgPSAweDAwMGM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENSICAgICAgPSAweDAwMGQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfQSAgICAgPSAweDAwNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRiAgICAgPSAweDAwNDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfWiAgICAgPSAweDAwNWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfYSAgICAgPSAweDAwNjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfZiAgICAgPSAweDAwNjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfeiAgICAgPSAweDAwN2E7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTCAgICAgPSAweDAwN2Y7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5MICAgICAgPSAweDAwODU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5CU1AgICAgPSAweDAwYTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENHSiAgICAgPSAweDAzNGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJR1VSRVNQPSAweDIwMDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBSVJTUCAgPSAweDIwMGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXTkogICAgPSAweDIwMGM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXSiAgICAgPSAweDIwMGQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJMTSAgICAgPSAweDIwMGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5OQlNQICAgPSAweDIwMmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdKICAgICAgPSAweDIwNjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSFNXQVAgPSAweDIwNmE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTURJRyAgPSAweDIwNmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfQSAgPSAweGZmMjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfRiAgPSAweGZmMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfWiAgPSAweGZmM2E7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfYSAgPSAweGZmNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfZiAgPSAweGZmNDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVfRldfeiAgPSAweGZmNWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpXTkJTUCAgPSAweGZlZmY7CisKKyAgICAvKiBmb3IgSGFuZ3VsX1N5bGxhYmxlX1R5cGUgKi8KKyAgICBwdWJsaWMgdm9pZCB1aHN0X2FkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBwcm9wZXJ0aWVzLCBwbHVzIHRoZSBvbmVzIGZvbGxvd2luZyB0aGVtICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogQWRkIEphbW8gdHlwZSBib3VuZGFyaWVzIGZvciBVQ0hBUl9IQU5HVUxfU1lMTEFCTEVfVFlQRS4KKyAgICAgICAgICogRmlyc3QsIHdlIGFkZCBmaXhlZCBib3VuZGFyaWVzIGZvciB0aGUgYmxvY2tzIG9mIEphbW9zLgorICAgICAgICAgKiBUaGVuIHdlIGNoZWNrIGluIGxvb3BzIHRvIHNlZSB3aGVyZSB0aGUgY3VycmVudCBVbmljb2RlIHZlcnNpb24KKyAgICAgICAgICogYWN0dWFsbHkgc3RvcHMgYXNzaWduaW5nIHN1Y2ggSmFtb3MuIFdlIHN0YXJ0IGVhY2ggbG9vcAorICAgICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBwZXItSmFtby1ibG9jayBhc3NpZ25tZW50cyBpbiBVbmljb2RlIDQgb3IgZWFybGllci4KKyAgICAgICAgICogKFRoZXNlIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgVW5pY29kZSAyLikKKyAgICAgICAgICovCisgICAgICAgIGludCBjLCB2YWx1ZSwgdmFsdWUyOworCisgICAgICAgIHNldC5hZGQoMHgxMTAwKTsKKyAgICAgICAgdmFsdWU9VUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1POworICAgICAgICBmb3IoYz0weDExNWE7IGM8PTB4MTE1ZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZTI9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUpOworICAgICAgICAgICAgaWYodmFsdWUhPXZhbHVlMikgeworICAgICAgICAgICAgICAgIHZhbHVlPXZhbHVlMjsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2V0LmFkZCgweDExNjApOworICAgICAgICB2YWx1ZT1VQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5WT1dFTF9KQU1POworICAgICAgICBmb3IoYz0weDExYTM7IGM8PTB4MTFhNzsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZTI9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSk7CisgICAgICAgICAgICBpZih2YWx1ZSE9dmFsdWUyKSB7CisgICAgICAgICAgICAgICAgdmFsdWU9dmFsdWUyOworICAgICAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzZXQuYWRkKDB4MTFhOCk7CisgICAgICAgIHZhbHVlPVVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlRSQUlMSU5HX0pBTU87CisgICAgICAgIGZvcihjPTB4MTFmYTsgYzw9MHgxMWZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlMj1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT12YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZT12YWx1ZTI7CisgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIC8qIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCBvZiBlYWNoIHNhbWUtdmFsdWUgcmFuZ2Ugb2YgdGhlIG1haW4gdHJpZSAqLworICAgICAgICBUcmllSXRlcmF0b3IgcHJvcHNJdGVyID0gbmV3IFRyaWVJdGVyYXRvcihtX3RyaWVfKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcHJvcHNSZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICB3aGlsZShwcm9wc0l0ZXIubmV4dChwcm9wc1Jlc3VsdCkpeworICAgICAgICAgICAgc2V0LmFkZChwcm9wc1Jlc3VsdC5zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgY29kZSBwb2ludHMgd2l0aCBoYXJkY29kZWQgcHJvcGVydGllcywgcGx1cyB0aGUgb25lcyBmb2xsb3dpbmcgdGhlbSAqLworCisgICAgICAgIC8qIGFkZCBmb3IgdV9pc2JsYW5rKCkgKi8KKyAgICAgICAgc2V0LmFkZChUQUIpOworICAgICAgICBzZXQuYWRkKFRBQisxKTsKKworICAgICAgICAvKiBhZGQgZm9yIElTX1RIQVRfQ09OVFJPTF9TUEFDRSgpICovCisgICAgICAgIHNldC5hZGQoQ1IrMSk7IC8qIHJhbmdlIFRBQi4uQ1IgKi8KKyAgICAgICAgc2V0LmFkZCgweDFjKTsKKyAgICAgICAgc2V0LmFkZCgweDFmKzEpOworICAgICAgICBzZXQuYWRkKE5MKTsKKyAgICAgICAgc2V0LmFkZChOTCsxKTsKKworICAgICAgICAvKiBhZGQgZm9yIHVfaXNJRElnbm9yYWJsZSgpIHdoYXQgd2FzIG5vdCBhZGRlZCBhYm92ZSAqLworICAgICAgICBzZXQuYWRkKERFTCk7IC8qIHJhbmdlIERFTC4uTkJTUC0xLCBOQlNQIGFkZGVkIGJlbG93ICovCisgICAgICAgIHNldC5hZGQoSEFJUlNQKTsKKyAgICAgICAgc2V0LmFkZChSTE0rMSk7CisgICAgICAgIHNldC5hZGQoSU5IU1dBUCk7CisgICAgICAgIHNldC5hZGQoTk9NRElHKzEpOworICAgICAgICBzZXQuYWRkKFpXTkJTUCk7CisgICAgICAgIHNldC5hZGQoWldOQlNQKzEpOworCisgICAgICAgIC8qIGFkZCBuby1icmVhayBzcGFjZXMgZm9yIHVfaXNXaGl0ZXNwYWNlKCkgd2hhdCB3YXMgbm90IGFkZGVkIGFib3ZlICovCisgICAgICAgIHNldC5hZGQoTkJTUCk7CisgICAgICAgIHNldC5hZGQoTkJTUCsxKTsKKyAgICAgICAgc2V0LmFkZChGSUdVUkVTUCk7CisgICAgICAgIHNldC5hZGQoRklHVVJFU1ArMSk7CisgICAgICAgIHNldC5hZGQoTk5CU1ApOworICAgICAgICBzZXQuYWRkKE5OQlNQKzEpOworCisgICAgICAgIC8qIGFkZCBmb3IgdV9jaGFyRGlnaXRWYWx1ZSgpICovCisgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHdoZW4gVUNoYXJhY3Rlci5nZXRIYW5OdW1lcmljVmFsdWUoKSBpcyBjaGFuZ2VkIHRvIGp1c3QgcmV0dXJuCisgICAgICAgIC8vIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZXMgCisgICAgICAgIHNldC5hZGQoMHgzMDA3KTsKKyAgICAgICAgc2V0LmFkZCgweDMwMDgpOworICAgICAgICBzZXQuYWRkKDB4NGUwMCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTAxKTsKKyAgICAgICAgc2V0LmFkZCgweDRlOGMpOworICAgICAgICBzZXQuYWRkKDB4NGU4ZCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTA5KTsKKyAgICAgICAgc2V0LmFkZCgweDRlMGEpOworICAgICAgICBzZXQuYWRkKDB4NTZkYik7CisgICAgICAgIHNldC5hZGQoMHg1NmRjKTsKKyAgICAgICAgc2V0LmFkZCgweDRlOTQpOworICAgICAgICBzZXQuYWRkKDB4NGU5NSk7CisgICAgICAgIHNldC5hZGQoMHg1MTZkKTsKKyAgICAgICAgc2V0LmFkZCgweDUxNmUpOworICAgICAgICBzZXQuYWRkKDB4NGUwMyk7CisgICAgICAgIHNldC5hZGQoMHg0ZTA0KTsKKyAgICAgICAgc2V0LmFkZCgweDUxNmIpOworICAgICAgICBzZXQuYWRkKDB4NTE2Yyk7CisgICAgICAgIHNldC5hZGQoMHg0ZTVkKTsKKyAgICAgICAgc2V0LmFkZCgweDRlNWUpOworCisgICAgICAgIC8qIGFkZCBmb3IgdV9kaWdpdCgpICovCisgICAgICAgIHNldC5hZGQoVV9hKTsKKyAgICAgICAgc2V0LmFkZChVX3orMSk7CisgICAgICAgIHNldC5hZGQoVV9BKTsKKyAgICAgICAgc2V0LmFkZChVX1orMSk7CisgICAgICAgIHNldC5hZGQoVV9GV19hKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX3orMSk7CisgICAgICAgIHNldC5hZGQoVV9GV19BKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX1orMSk7CisKKyAgICAgICAgLyogYWRkIGZvciB1X2lzeGRpZ2l0KCkgKi8KKyAgICAgICAgc2V0LmFkZChVX2YrMSk7CisgICAgICAgIHNldC5hZGQoVV9GKzEpOworICAgICAgICBzZXQuYWRkKFVfRldfZisxKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX0YrMSk7CisKKyAgICAgICAgLyogYWRkIGZvciBVQ0hBUl9ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UIHdoYXQgd2FzIG5vdCBhZGRlZCBhYm92ZSAqLworICAgICAgICBzZXQuYWRkKFdKKTsgLyogcmFuZ2UgV0ouLk5PTURJRyAqLworICAgICAgICBzZXQuYWRkKDB4ZmZmMCk7CisgICAgICAgIHNldC5hZGQoMHhmZmZiKzEpOworICAgICAgICBzZXQuYWRkKDB4ZTAwMDApOworICAgICAgICBzZXQuYWRkKDB4ZTBmZmYrMSk7CisKKyAgICAgICAgLyogYWRkIGZvciBVQ0hBUl9HUkFQSEVNRV9CQVNFIGFuZCBvdGhlcnMgKi8KKyAgICAgICAgc2V0LmFkZChDR0opOworICAgICAgICBzZXQuYWRkKENHSisxKTsKKworICAgICAgICByZXR1cm4gc2V0OyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgLyogYWRkIHRoZSBzdGFydCBjb2RlIHBvaW50IG9mIGVhY2ggc2FtZS12YWx1ZSByYW5nZSBvZiB0aGUgcHJvcGVydGllcyB2ZWN0b3JzIHRyaWUgKi8KKyAgICAgICAgaWYobV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50Xz4wKSB7CisgICAgICAgICAgICAvKiBpZiBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfPT0wIHRoZW4gdGhlIHByb3BlcnRpZXMgdmVjdG9ycyB0cmllIG1heSBub3QgYmUgdGhlcmUgYXQgYWxsICovCisgICAgICAgICAgICBUcmllSXRlcmF0b3IgcHJvcHNWZWN0b3JzSXRlciA9IG5ldyBUcmllSXRlcmF0b3IobV9hZGRpdGlvbmFsVHJpZV8pOworICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgcHJvcHNWZWN0b3JzUmVzdWx0ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICAgICAgICB3aGlsZShwcm9wc1ZlY3RvcnNJdGVyLm5leHQocHJvcHNWZWN0b3JzUmVzdWx0KSl7CisgICAgICAgICAgICAgICAgc2V0LmFkZChwcm9wc1ZlY3RvcnNSZXN1bHQuc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEluY2x1c2lvbnMgbGlzdAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworICAgIC8qCisgICAgICogUmV0dXJuIGEgc2V0IG9mIGNoYXJhY3RlcnMgZm9yIHByb3BlcnR5IGVudW1lcmF0aW9uLgorICAgICAqIFRoZSBzZXQgaW1wbGljaXRseSBjb250YWlucyAweDExMDAwMCBhcyB3ZWxsLCB3aGljaCBpcyBvbmUgbW9yZSB0aGFuIHRoZSBoaWdoZXN0CisgICAgICogVW5pY29kZSBjb2RlIHBvaW50LgorICAgICAqCisgICAgICogVGhpcyBzZXQgaXMgdXNlZCBhcyBhbiBvcmRlcmVkIGxpc3QgLSBpdHMgY29kZSBwb2ludHMgYXJlIG9yZGVyZWQsIGFuZAorICAgICAqIGNvbnNlY3V0aXZlIGNvZGUgcG9pbnRzIChpbiBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIpIGluIHRoZSBzZXQgZGVmaW5lIGEgcmFuZ2UuCisgICAgICogRm9yIGVhY2ggdHdvIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMgKHN0YXJ0LCBsaW1pdCkgaW4gdGhlIHNldCwKKyAgICAgKiBhbGwgb2YgdGhlIFVDRC9ub3JtYWxpemF0aW9uIGFuZCByZWxhdGVkIHByb3BlcnRpZXMgZm9yCisgICAgICogYWxsIGNvZGUgcG9pbnRzIHN0YXJ0Li5saW1pdC0xIGFyZSBhbGwgdGhlIHNhbWUsCisgICAgICogZXhjZXB0IGZvciBjaGFyYWN0ZXIgbmFtZXMgYW5kIElTTyBjb21tZW50cy4KKyAgICAgKgorICAgICAqIEFsbCBVbmljb2RlIGNvZGUgcG9pbnRzIFUrMDAwMC4uVSsxMGZmZmYgYXJlIGNvdmVyZWQgYnkgdGhlc2UgcmFuZ2VzLgorICAgICAqIFRoZSByYW5nZXMgZGVmaW5lIGEgcGFydGl0aW9uIG9mIHRoZSBVbmljb2RlIGNvZGUgc3BhY2UuCisgICAgICogSUNVIHVzZXMgdGhlIGluY2x1c2lvbnMgc2V0IHRvIGVudW1lcmF0ZSBwcm9wZXJ0aWVzIGZvciBnZW5lcmF0aW5nCisgICAgICogVW5pY29kZVNldHMgY29udGFpbmluZyBhbGwgY29kZSBwb2ludHMgdGhhdCBoYXZlIGEgY2VydGFpbiBwcm9wZXJ0eSB2YWx1ZS4KKyAgICAgKgorICAgICAqIFRoZSBJbmNsdXNpb24gTGlzdCBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgVUNELiBJdCBpcyBnZW5lcmF0ZWQKKyAgICAgKiBieSBlbnVtZXJhdGluZyB0aGUgZGF0YSB0cmllcywgYW5kIGNvZGUgcG9pbnRzIGZvciBoYXJkY29kZWQgcHJvcGVydGllcworICAgICAqIGFyZSBhZGRlZCBhcyB3ZWxsLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgYXJlIGlkZWFzIGZvciBnZXR0aW5nIHByb3BlcnRpZXMtdW5pcXVlIGNvZGUgcG9pbnQgcmFuZ2VzLAorICAgICAqIHdpdGggcG9zc2libGUgb3B0aW1pemF0aW9ucyBiZXlvbmQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2Ugb3B0aW1pemF0aW9ucyB3b3VsZCByZXF1aXJlIG1vcmUgY29kZSBhbmQgYmUgbW9yZSBmcmFnaWxlLgorICAgICAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGdlbmVyYXRlcyBvbmUgc2luZ2xlIGxpc3QgKHNldCkgZm9yIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogVG8gZW51bWVyYXRlIHByb3BlcnRpZXMgZWZmaWNpZW50bHksIG9uZSBuZWVkcyB0byBrbm93IHJhbmdlcyBvZgorICAgICAqIHJlcGV0aXRpdmUgdmFsdWVzLCBzbyB0aGF0IHRoZSB2YWx1ZSBvZiBvbmx5IGVhY2ggc3RhcnQgY29kZSBwb2ludAorICAgICAqIGNhbiBiZSBhcHBsaWVkIHRvIHRoZSB3aG9sZSByYW5nZS4KKyAgICAgKiBUaGlzIGluZm9ybWF0aW9uIGlzIGluIHByaW5jaXBsZSBhdmFpbGFibGUgaW4gdGhlIHVwcm9wcy5pY3UvdW5vcm0uaWN1IGRhdGEuCisgICAgICoKKyAgICAgKiBUaGVyZSBhcmUgdHdvIG9ic3RhY2xlczoKKyAgICAgKgorICAgICAqIDEuIFNvbWUgcHJvcGVydGllcyBhcmUgY29tcHV0ZWQgZnJvbSBtdWx0aXBsZSBkYXRhIHN0cnVjdHVyZXMsCisgICAgICogICAgbWFraW5nIGl0IG5lY2Vzc2FyeSB0byBnZXQgcmVwZXRpdGl2ZSByYW5nZXMgYnkgaW50ZXJzZWN0aW5nCisgICAgICogICAgcmFuZ2VzIGZyb20gbXVsdGlwbGUgdHJpZXMuCisgICAgICoKKyAgICAgKiAyLiBJdCBpcyBub3QgZWNvbm9taWNhbCB0byB3cml0ZSBjb2RlIGZvciBnZXR0aW5nIHJlcGV0aXRpdmUgcmFuZ2VzCisgICAgICogICAgdGhhdCBhcmUgcHJlY2lzZSBmb3IgZWFjaCBvZiBzb21lIDUwIHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBDb21wcm9taXNlIGlkZWFzOgorICAgICAqCisgICAgICogLSBHZXQgcmFuZ2VzIHBlciB0cmllLCBub3QgcGVyIGluZGl2aWR1YWwgcHJvcGVydHkuCisgICAgICogICBFYWNoIHJhbmdlIGNvbnRhaW5zIHRoZSBzYW1lIHZhbHVlcyBmb3IgYSB3aG9sZSBncm91cCBvZiBwcm9wZXJ0aWVzLgorICAgICAqICAgVGhpcyB3b3VsZCBnZW5lcmF0ZSBjdXJyZW50bHkgZml2ZSByYW5nZSBzZXRzLCB0d28gZm9yIHVwcm9wcy5pY3UgdHJpZXMKKyAgICAgKiAgIGFuZCB0aHJlZSBmb3IgdW5vcm0uaWN1IHRyaWVzLgorICAgICAqCisgICAgICogLSBDb21iaW5lIHNldHMgb2YgcmFuZ2VzIGZvciBtdWx0aXBsZSB0cmllcyB0byBnZXQgc3VmZmljaWVudCBzZXRzCisgICAgICogICBmb3IgcHJvcGVydGllcywgZS5nLiwgdGhlIHVwcm9wcy5pY3UgbWFpbiBhbmQgYXV4aWxpYXJ5IHRyaWVzCisgICAgICogICBmb3IgYWxsIG5vbi1ub3JtYWxpemF0aW9uIHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBJZGVhcyBmb3IgcmVwcmVzZW50aW5nIHJhbmdlcyBhbmQgY29tYmluaW5nIHRoZW06CisgICAgICoKKyAgICAgKiAtIEEgVW5pY29kZVNldCBjb3VsZCBob2xkIGp1c3QgdGhlIHN0YXJ0IGNvZGUgcG9pbnRzIG9mIHJhbmdlcy4KKyAgICAgKiAgIE11bHRpcGxlIHNldHMgYXJlIGVhc2lseSBjb21iaW5lZCBieSBvci1pbmcgdGhlbSB0b2dldGhlci4KKyAgICAgKgorICAgICAqIC0gQWx0ZXJuYXRpdmVseSwgYSBVbmljb2RlU2V0IGNvdWxkIGhvbGQgZWFjaCBldmVuLW51bWJlcmVkIHJhbmdlLgorICAgICAqICAgQWxsIHJhbmdlcyBjb3VsZCBiZSBlbnVtZXJhdGVkIGJ5IHVzaW5nIGVhY2ggc3RhcnQgY29kZSBwb2ludAorICAgICAqICAgKGZvciB0aGUgZXZlbi1udW1iZXJlZCByYW5nZXMpIGFzIHdlbGwgYXMgZWFjaCBsaW1pdCAoZW5kKzEpIGNvZGUgcG9pbnQKKyAgICAgKiAgIChmb3IgdGhlIG9kZC1udW1iZXJlZCByYW5nZXMpLgorICAgICAqICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNvbWJpbmUgdHdvIHN1Y2ggc2V0cyBieSB4b3ItaW5nIHRoZW0sCisgICAgICogICBidXQgbm8gbW9yZSB0aGFuIHR3by4KKyAgICAgKgorICAgICAqIFRoZSBzZWNvbmQgd2F5IHRvIHJlcHJlc2VudCByYW5nZXMgbWF5KD8hKSB5aWVsZCBzbWFsbGVyIFVuaWNvZGVTZXQgYXJyYXlzLAorICAgICAqIGJ1dCB0aGUgZmlyc3Qgb25lIGlzIGNlcnRhaW5seSBzaW1wbGVyIGFuZCBhcHBsaWNhYmxlIGZvciBjb21iaW5pbmcgbW9yZSB0aGFuCisgICAgICogdHdvIHJhbmdlIHNldHMuCisgICAgICoKKyAgICAgKiBJdCBpcyBwb3NzaWJsZSB0byBjb21iaW5lIGFsbCByYW5nZSBzZXRzIGZvciBhbGwgdXByb3BzL3Vub3JtIHRyaWVzIGludG8gb25lCisgICAgICogc2V0IHRoYXQgY2FuIGJlIHVzZWQgZm9yIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqIEFzIGFuIG9wdGltaXphdGlvbiwgdGhlcmUgY291bGQgYmUgbGVzcy1jb21iaW5lZCByYW5nZSBzZXRzIGZvciBjZXJ0YWluCisgICAgICogZ3JvdXBzIG9mIHByb3BlcnRpZXMuCisgICAgICogVGhlIHJlbGF0aW9uc2hpcCBvZiB3aGljaCBsZXNzLWNvbWJpbmVkIHJhbmdlIHNldCB0byB1c2UgZm9yIHdoaWNoIHByb3BlcnR5CisgICAgICogZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHByb3BlcnRpZXMgYW5kIG11c3QgYmUgaGFyZGNvZGVkCisgICAgICogLSBzb21ld2hhdCBlcnJvci1wcm9uZSBhbmQgaGlnaGVyIG1haW50ZW5hbmNlIGJ1dCBjYW4gYmUgdGVzdGVkIGVhc2lseQorICAgICAqIGJ5IGJ1aWxkaW5nIHByb3BlcnR5IHNldHMgInRoZSBzaW1wbGUgd2F5IiBpbiB0ZXN0IGNvZGUuCisgICAgICoKKyAgICAgKiAtLS0KKyAgICAgKgorICAgICAqIERvIG5vdCB1c2UgYSBVbmljb2RlU2V0IHBhdHRlcm4gYmVjYXVzZSB0aGF0IGNhdXNlcyBpbmZpbml0ZSByZWN1cnNpb247CisgICAgICogVW5pY29kZVNldCBkZXBlbmRzIG9uIHRoZSBpbmNsdXNpb25zIHNldC4KKyAgICAgKgorICAgICAqIC0tLQorICAgICAqCisgICAgICogZ2V0SW5jbHVzaW9ucygpIGlzIGNvbW1lbnRlZCBvdXQgc3RhcnRpbmcgMjAwNS1mZWItMTIgYmVjYXVzZQorICAgICAqIFVuaWNvZGVTZXQgbm93IGNhbGxzIHRoZSB1eHl6X2FkZFByb3BlcnR5U3RhcnRzKCkgZGlyZWN0bHksCisgICAgICogYW5kIG9ubHkgZm9yIHRoZSByZWxldmFudCBwcm9wZXJ0eSBzb3VyY2UuCisgICAgICovCisgICAgLyoKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRJbmNsdXNpb25zKCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIE5vcm1hbGl6ZXJJbXBsLmFkZFByb3BlcnR5U3RhcnRzKHNldCk7CisgICAgICAgIGFkZFByb3BlcnR5U3RhcnRzKHNldCk7CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MTE0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YQpAQCAtMCwwICsxLDE2MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdXByb3BzLmljdSBjb250YWluaW5nIAorKiBVbmljb2RlIGNvZGVwb2ludCBkYXRhLjwvcD4gCisqIDxwPlRoaXMgY2xhc3Mgc2ltcGx5IHJlYWRzIHVwcm9wcy5pY3UsIGF1dGhlbnRpY2F0ZXMgdGhhdCBpdCBpcyBhIHZhbGlkCisqIElDVSBkYXRhIGZpbGUgYW5kIHNwbGl0IGl0cyBjb250ZW50cyB1cCBpbnRvIGJsb2NrcyBvZiBkYXRhIGZvciB1c2UgaW4KKyogPGEgaHJlZj1VQ2hhcmFjdGVyUHJvcGVydHkuaHRtbD5jb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTwvYT4uCisqIDwvcD4gCisqIDxwPnVwcm9wcy5pY3Ugd2hpY2ggaXMgaW4gYmlnLWVuZGlhbiBmb3JtYXQgaXMgamFyZWQgdG9nZXRoZXIgd2l0aCB0aGlzIAorKiBwYWNrYWdlLjwvcD4KKyoKKyogVW5pY29kZSBjaGFyYWN0ZXIgcHJvcGVydGllcyBmaWxlIGZvcm1hdCBzZWUKKyogKElDVTRDKS9zb3VyY2UvdG9vbHMvZ2VucHJvcHMvc3RvcmUuYworKgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqLworZmluYWwgY2xhc3MgVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQoreworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdIAorICAgICAgICAgICAgICAgJiYgdmVyc2lvblsyXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1syXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bM107CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3VuaWNvZGVWZXJzaW9uXyA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiA8cD5SZWFkcyB1cHJvcHMuaWN1LCBwYXJzZSBpdCBpbnRvIGJsb2NrcyBvZiBkYXRhIHRvIGJlIHN0b3JlZCBpbgorICAgICogVUNoYXJhY3RlclByb3BlcnR5LjwvUAorICAgICogQHBhcmFtIHVjaGFycHB0eSBVQ2hhcmFjdGVyUHJvcGVydHkgaW5zdGFuY2UKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkKFVDaGFyYWN0ZXJQcm9wZXJ0eSB1Y2hhcnBwdHkpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcworICAgICAgICBpbnQgY291bnQgPSBJTkRFWF9TSVpFXzsKKyAgICAgICAgbV9wcm9wZXJ0eU9mZnNldF8gICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9leGNlcHRpb25PZmZzZXRfICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9jYXNlT2Zmc2V0XyAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsT2Zmc2V0XyAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsVmVjdG9yc09mZnNldF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50XyAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9yZXNlcnZlZE9mZnNldF8gICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcygzIDw8IDIpOworICAgICAgICBjb3VudCAtPSAzOworICAgICAgICB1Y2hhcnBwdHkubV9tYXhCbG9ja1NjcmlwdFZhbHVlXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOyAvLyAxMAorICAgICAgICB1Y2hhcnBwdHkubV9tYXhKVEdWYWx1ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBjb3VudCAtLTsgLy8gMTEKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyhjb3VudCA8PCAyKTsKKworICAgICAgICAvLyByZWFkIHRoZSB0cmllIGluZGV4IGJsb2NrCisgICAgICAgIC8vIG1fcHJvcHNfaW5kZXhfIGluIHRlcm1zIG9mIGludHMKKyAgICAgICAgdWNoYXJwcHR5Lm1fdHJpZV8gPSBuZXcgQ2hhclRyaWUobV9kYXRhSW5wdXRTdHJlYW1fLCBudWxsKTsKKworICAgICAgICAvLyBza2lwIHRoZSAzMiBiaXQgcHJvcGVydGllcyBibG9jaworICAgICAgICBpbnQgc2l6ZSA9IG1fZXhjZXB0aW9uT2Zmc2V0XyAtIG1fcHJvcGVydHlPZmZzZXRfOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKHNpemUgKiA0KTsKKworICAgICAgICAvLyByZWFkcyB0aGUgMzIgYml0IGV4Y2VwdGlvbnMgYmxvY2sKKyAgICAgICAgc2l6ZSA9IG1fY2FzZU9mZnNldF8gLSBtX2V4Y2VwdGlvbk9mZnNldF87CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoc2l6ZSAqIDQpOworCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgY2FzZSBibG9jaworICAgICAgICBzaXplID0gKG1fYWRkaXRpb25hbE9mZnNldF8gLSBtX2Nhc2VPZmZzZXRfKSA8PCAxOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKHNpemUgKiAyKTsKKworICAgICAgICBpZihtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfID4gMCkgeworICAgICAgICAgICAgLy8gcmVhZHMgdGhlIGFkZGl0aW9uYWwgcHJvcGVydHkgYmxvY2sKKyAgICAgICAgICAgIHVjaGFycHB0eS5tX2FkZGl0aW9uYWxUcmllXyA9IG5ldyBDaGFyVHJpZShtX2RhdGFJbnB1dFN0cmVhbV8sIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhZGRpdGlvbmFsIHByb3BlcnRpZXMKKyAgICAgICAgICAgIHNpemUgPSBtX3Jlc2VydmVkT2Zmc2V0XyAtIG1fYWRkaXRpb25hbFZlY3RvcnNPZmZzZXRfOworICAgICAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbFZlY3RvcnNfID0gbmV3IGludFtzaXplXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgICAgIHVjaGFycHB0eS5tX2FkZGl0aW9uYWxWZWN0b3JzX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uY2xvc2UoKTsKKyAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8gPSBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgICAgICB1Y2hhcnBwdHkubV91bmljb2RlVmVyc2lvbl8gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fdW5pY29kZVZlcnNpb25fWzBdLCAoaW50KW1fdW5pY29kZVZlcnNpb25fWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV91bmljb2RlVmVyc2lvbl9bMl0sIChpbnQpbV91bmljb2RlVmVyc2lvbl9bM10pOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIEluZGV4IHNpemUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TSVpFXyA9IDE2OworICAgIAorICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIG1fZGF0YUlucHV0U3RyZWFtXzsKKyAgICAgIAorICAgIC8qKgorICAgICogT2Zmc2V0IGluZm9ybWF0aW9uIGluIHRoZSBpbmRleGVzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9wcm9wZXJ0eU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9leGNlcHRpb25PZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fY2FzZU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9hZGRpdGlvbmFsT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgIHByaXZhdGUgaW50IG1fcmVzZXJ2ZWRPZmZzZXRfOworICAgIHByaXZhdGUgYnl0ZSBtX3VuaWNvZGVWZXJzaW9uX1tdOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRGF0YSBmb3JtYXQgIlVQcm8iLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRF9bXSA9IHsoYnl0ZSkweDU1LCAoYnl0ZSkweDUwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDcyLCAoYnl0ZSkweDZGfTsKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdmVyc2lvbjsgdGhpcyBjb2RlIHdvcmtzIHdpdGggYWxsIHZlcnNpb25zIHdpdGggdGhlIHNhbWUgbWFqb3IKKyAgICAgKiB2ZXJzaW9uIG51bWJlciBhbmQgdGhlIHNhbWUgVHJpZSBiaXQgZGlzdHJpYnV0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfVkVSU0lPTl9bXSA9IHsoYnl0ZSkweDQsIChieXRlKTAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlUcmllLklOREVYX1NUQUdFXzJfU0hJRlRffTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJVdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMTBlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyVXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsMTk0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8qKgorKiBJbnRlcm5hbCBjaGFyYWN0ZXIgdXRpbGl0eSBjbGFzcyBmb3Igc2ltcGxlIGRhdGEgdHlwZSBjb252ZXJzaW9uIGFuZCBTdHJpbmcgCisqIHBhcnNpbmcgZnVuY3Rpb25zLiBEb2VzIG5vdCBoYXZlIGFuIGFuYWxvZyBpbiB0aGUgSkRLLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugc2VwMjkwMAorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJVdGlsaXR5Cit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgY29kZXBvaW50IGlzIGEgbm9uIGNoYXJhY3RlcgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiB0cnVlIGlmIGNvZGVwb2ludCBpcyBhIG5vbiBjaGFyYWN0ZXIgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb25DaGFyYWN0ZXIoaW50IGNoKSAKKyAgICB7CisgICAgICAgIGlmICgoY2ggJiBOT05fQ0hBUkFDVEVSX1NVRkZJWF9NSU5fM18wXykgPT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNoID49IE5PTl9DSEFSQUNURVJfTUlOXzNfMV8gJiYgY2ggPD0gIE5PTl9DSEFSQUNURVJfTUFYXzNfMV87CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBqb2luaW5nIDIgY2hhcnMgdG8gZm9ybSBhbiBpbnQKKyAgICAqIEBwYXJhbSBtc2MgbW9zdCBzaWduaWZpY2FudCBjaGFyCisgICAgKiBAcGFyYW0gbHNjIGxlYXN0IHNpZ25pZmljYW50IGNoYXIKKyAgICAqIEByZXR1cm4gaW50IGZvcm0KKyAgICAqLworICAgIHN0YXRpYyBpbnQgdG9JbnQoY2hhciBtc2MsIGNoYXIgbHNjKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgobXNjIDw8IDE2KSB8IGxzYyk7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogUmV0cmlldmVzIGEgbnVsbCB0ZXJtaW5hdGVkIHN1YnN0cmluZyBmcm9tIGFuIGFycmF5IG9mIGJ5dGVzLgorICAgICogU3Vic3RyaW5nIGlzIGEgc2V0IG9mIG5vbi16ZXJvIGJ5dGVzIHN0YXJ0aW5nIGZyb20gYXJndW1lbnQgc3RhcnQgdG8gdGhlIAorICAgICogbmV4dCB6ZXJvIGJ5dGUuIElmIHRoZSBmaXJzdCBieXRlIGlzIGEgemVybywgdGhlIG5leHQgYnl0ZSB3aWxsIGJlIHRha2VuIGFzCisgICAgKiB0aGUgZmlyc3QgYnl0ZS4KKyAgICAqIEBwYXJhbSBzdHIgc3RyaW5nYnVmZmVyIHRvIHN0b3JlIGRhdGEgaW4sIGRhdGEgd2lsbCBiZSBzdG9yZSB3aXRoIGVhY2gKKyAgICAqICAgICAgICAgICAgYnl0ZSBhcyBhIGNoYXIKKyAgICAqIEBwYXJhbSBhcnJheSBieXRlIGFycmF5CisgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5nIGluIGJ5dGUgY291bnQKKyAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc3Vic3RyaW5nIHdpdGhpbiB0aGUgY2hhcmFjdGVyIGFycmF5CisgICAgKi8KKyAgICBzdGF0aWMgaW50IGdldE51bGxUZXJtQnl0ZVN1YlN0cmluZyhTdHJpbmdCdWZmZXIgc3RyLCBieXRlW10gYXJyYXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgpCisgICAgeworICAgICAgICBieXRlIGIgPSAxOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGIgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IGFycmF5W2luZGV4XTsKKyAgICAgICAgICAgIGlmIChiICE9IDApIHsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKChjaGFyKShiICYgMHgwMEZGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogQ29tcGFyZXMgYSBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gaWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZQorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBzdHJpbmRleCBpbmRleCB3aXRoaW4gc3RyIHRvIHN0YXJ0IGNvbXBhcmluZworICAgICogQHBhcmFtIGFpbmRleCBhcnJheSBpbmRleCB0byBzdGFydCBpbiBieXRlIGNvdW50CisgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHN1YnN0cmluZyB3aXRoaW4gc3RyIGlmIG1hdGNoZXMgb3RoZXJ3aXNlIAorICAgICogICAgICAgICBhIC0xCisgICAgKi8KKyAgICBzdGF0aWMgaW50IGNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoU3RyaW5nIHN0ciwgYnl0ZVtdIGFycmF5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJpbmRleCwgaW50IGFpbmRleCkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDE7CisgICAgICAgIGludCBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoYiAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbYWluZGV4XTsgIAorICAgICAgICAgICAgYWluZGV4ICsrOworICAgICAgICAgICAgaWYgKGIgPT0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBhbmQgeWV0IHRoZSBhcnJheSBoYXMgbm90IAorICAgICAgICAgICAgLy8gcmVhY2hlZCB0aGUgZW5kIG9mIHRoZWlyIHN1YnN0cmluZyB5ZXQsIGFib3J0CisgICAgICAgICAgICBpZiAoc3RyaW5kZXggPT0gbGVuZ3RoIAorICAgICAgICAgICAgICAgIHx8IChzdHIuY2hhckF0KHN0cmluZGV4KSAhPSAoY2hhcikoYiAmIDB4RkYpKSkgeworICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogU2tpcCBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5ncyBmcm9tIGFuIGFycmF5IG9mIGJ5dGVzLgorICAgICogU3Vic3RyaW5nIGlzIGEgc2V0IG9mIG5vbi16ZXJvIGJ5dGVzIHN0YXJ0aW5nIGZyb20gYXJndW1lbnQgc3RhcnQgdG8gdGhlIAorICAgICogbmV4dCB6ZXJvIGJ5dGUuIElmIHRoZSBmaXJzdCBieXRlIGlzIGEgemVybywgdGhlIG5leHQgYnl0ZSB3aWxsIGJlIHRha2VuIGFzCisgICAgKiB0aGUgZmlyc3QgYnl0ZS4KKyAgICAqIEBwYXJhbSBhcnJheSBieXRlIGFycmF5CisgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5ncyBpbiBieXRlIGNvdW50CisgICAgKiBAcGFyYW0gc2tpcGNvdW50IG51bWJlciBvZiBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5ncyB0byBza2lwCisgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHN1YnN0cmluZ3Mgd2l0aGluIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgICAqLworICAgIHN0YXRpYyBpbnQgc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZyhieXRlW10gYXJyYXksIGludCBpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2tpcGNvdW50KQorICAgIHsKKyAgICAgICAgYnl0ZSBiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNraXBjb3VudDsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IDE7CisgICAgICAgICAgICB3aGlsZSAoYiAhPSAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGIgPSBhcnJheVtpbmRleF07CisgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBza2lwIHN1YnN0cmluZ3MgZnJvbSBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLCB3aGVyZSBlYWNoIGNoYXJhY3RlciBpcyBhIHNldCAKKyAgICAgKiBvZiAyIGJ5dGVzLiBzdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCAKKyAgICAgKiBzdGFydCB0byB0aGUgYnl0ZSBvZiB0aGUgYXJndW1lbnQgdmFsdWUuIHNraXBzIHVwIHRvIGEgbWF4IG51bWJlciBvZiAKKyAgICAgKiBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gaW5kZXggdG8gc3RhcnQgc3Vic3RyaW5ncyBpbiBieXRlIGNvdW50CisgICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbWF4IG51bWJlciBvZiBieXRlcyB0byBza2lwCisgICAgICogQHBhcmFtIHNraXBlbmQgdmFsdWUgb2YgYnl0ZSB0byBza2lwIHRvCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHNraXBwZWQKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IHNraXBCeXRlU3ViU3RyaW5nKGJ5dGVbXSBhcnJheSwgaW50IGluZGV4LCBpbnQgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIHNraXBlbmQpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBieXRlIGI7CisgICAgICAgIAorICAgICAgICBmb3IgKHJlc3VsdCA9IDA7IHJlc3VsdCA8IGxlbmd0aDsgcmVzdWx0ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbaW5kZXggKyByZXN1bHRdOworICAgICAgICAgICAgaWYgKGIgPT0gc2tpcGVuZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIE1pbmltdW0gc3VmZml4IHZhbHVlIHRoYXQgaW5kaWNhdGVzIGlmIGEgY2hhcmFjdGVyIGlzIG5vbiBjaGFyYWN0ZXIuCisgICAgKiBVbmljb2RlIDMuMCBub24gY2hhcmFjdGVycworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfID0gMHhGRkZFOworICAgIC8qKgorICAgICogTmV3IG1pbmltdW0gbm9uIGNoYXJhY3RlciBpbiBVbmljb2RlIDMuMQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfTUlOXzNfMV8gPSAweEZERDA7CisgICAgLyoqCisgICAgKiBOZXcgbm9uIGNoYXJhY3RlciByYW5nZSBpbiBVbmljb2RlIDMuMQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfTUFYXzNfMV8gPSAweEZERUY7CisgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICogcHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBhdm9pZCBpbml0aWFsaXNhdGlvbgorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyVXRpbGl0eSgpCisgICAgeworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVByb3BlcnR5QWxpYXNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MWUzNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE5vdmVtYmVyIDUgMjAwMgorKiBTaW5jZTogSUNVIDIuNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBXcmFwcGVyIGZvciB0aGUgcG5hbWVzLmljdSBiaW5hcnkgZGF0YSBmaWxlLiAgVGhpcyBkYXRhIGZpbGUgaXMKKyAqIGltcG9ydGVkIGZyb20gaWN1NGMuICBJdCBjb250YWlucyBwcm9wZXJ0eSBhbmQgcHJvcGVydHkgdmFsdWUKKyAqIGFsaWFzZXMgZnJvbSB0aGUgVUNEIGZpbGVzIFByb3BlcnR5QWxpYXNlcy50eHQgYW5kCisgKiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuICBUaGUgZmlsZSBpcyBidWlsdCBieSB0aGUgaWN1NGMgdG9vbAorICogZ2VucG5hbWUuICBJdCBtdXN0IGJlIGJ1aWx0IG9uIGFuIEFTQ0lJIGJpZy1lbmRpYW4gcGxhdGZvcm0gdG8gYmUKKyAqIHVzYWJsZSBpbiBpY3U0ai4KKyAqCisgKiBUaGlzIGNsYXNzIHBlcmZvcm1zIHR3byBmdW5jdGlvbnMuCisgKgorICogKDEpIEl0IGNhbiBpbXBvcnQgdGhlIGZsYXQgYmluYXJ5IGRhdGEgaW50byBhIHRyZWUgb2YgdXNhYmxlCisgKiBvYmplY3RzLgorICoKKyAqICgyKSBJdCBwcm92aWRlcyBhbiBBUEkgdG8gYWNjZXNzIHRoZSB0cmVlIG9mIG9iamVjdHMuCisgKgorICogTmVlZGxlc3MgdG8gc2F5LCB0aGlzIGNsYXNzIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgYmluYXJ5IGZvcm1hdAorICogb2YgaWN1NGMncyBwbmFtZXMuaWN1IGZpbGUuCisgKgorICogRWFjaCB0aW1lIGEgVVByb3BlcnR5QWxpYXNlcyBpcyBjb25zdHJ1Y3RlZCwgdGhlIHBuYW1lcy5pY3UgZmlsZSBpcworICogcmVhZCwgcGFyc2VkLCBhbmQgYSBkYXRhIHRyZWUgYXNzZW1ibGVkLiAgQ2xpZW50cyBzaG91bGQgY3JlYXRlIG9uZQorICogc2luZ2xldG9uIGluc3RhbmNlIGFuZCBjYWNoZSBpdC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuNAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVByb3BlcnR5QWxpYXNlcyBpbXBsZW1lbnRzIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUnVudGltZSBkYXRhLiAgVGhpcyBpcyBhbiB1bmZsYXR0ZW5lZCByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAgICAvLyBkYXRhIGluIHBuYW1lcy5pY3UuCisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBlbnVtIHZhbHVlIHRvIG5hbWVHcm91cFBvb2xbXSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGVudW1Ub05hbWU7CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBhbGlhcyB0byBwcm9wZXJ0eSBlbnVtIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBOYW1lVG9FbnVtIG5hbWVUb0VudW07CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBwcm9wZXJ0eSBlbnVtIHZhbHVlIHRvIHZhbHVlTWFwQXJyYXlbXSBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGVudW1Ub1ZhbHVlOworCisgICAgLyoqCisgICAgICogRWFjaCBlbnRyeSByZXByZXNlbnRzIGEgYmluYXJ5IG9yIGVudW1lcmF0ZWQgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIFZhbHVlTWFwIHZhbHVlTWFwQXJyYXlbXTsKKworICAgIC8qKgorICAgICAqIFBvb2wgb2YgY29uY2F0ZW5hdGVkIGludGVnZXIgcnVucy4gIEVhY2ggcnVuIGNvbnRhaW5zIG9uZQorICAgICAqIG9yIG1vcmUgZW50cmllcy4gIFRoZSBsYXN0IGVudHJ5IG9mIHRoZSBydW4gaXMgbmVnYXRpdmUuCisgICAgICogQSB6ZXJvIGVudHJ5IGluZGljYXRlcyAibi9hIiBpbiB0aGUgUHJvcGVydHkqQWxpYXNlcy50eHQuCisgICAgICogRWFjaCBlbnRyeSBpcyBhIHN0cmluZ1Bvb2xbXSBpbmRleC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cFBvb2xbXTsKKworICAgIC8qKgorICAgICAqIFBvb2wgb2Ygc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzdHJpbmdQb29sW107CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMKKworICAgIC8qKgorICAgICAqIERlYnVnIGZsYWcgKG5vdCByZWFsbHkgY29uc3RhbnQpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoInBuYW1lcyIpOworCisgICAgLyoqCisgICAgICogRmlsZSBmb3JtYXQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICAqIFNlZSBpY3U0Yy9zcmMvY29tbW9uL3Byb3BuYW1lLmguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRFtdID0geydwJywgJ24nLCAnYScsICdtJ307CisKKyAgICAvKioKKyAgICAgKiBGaWxlIHZlcnNpb24gdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICAqIFNlZSBpY3U0Yy9zcmMvY29tbW9uL3Byb3BuYW1lLmguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OID0gMTsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIGRhdGFmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3BuYW1lcy5pY3UiOworCisgICAgLyoqCisgICAgICogQnVmZmVyIHNpemUgb2YgZGF0YWZpbGUuICBUaGUgd2hvbGUgZmlsZSBpcyA8IDE2ay4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRSA9IDgxOTI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFVQcm9wZXJ0eUFsaWFzZXMgb2JqZWN0LiAgVGhlIGJpbmFyeSBmaWxlCisgICAgICogREFUQV9GSUxFX05BTUUgaXMgcmVhZCBmcm9tIHRoZSBqYXIvY2xhc3NwYXRoIGFuZCB1bmZsYXR0ZW5lZAorICAgICAqIGludG8gbWVtYmVyIHZhcmlhYmxlcyBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVVByb3BlcnR5QWxpYXNlcygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gT3BlbiB0aGUgLmljdSBmaWxlIGZyb20gdGhlIGphci9jbGFzc3BhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKERBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIERBVEFfQlVGRkVSX1NJWkUpOworICAgICAgICAvLyBSZWFkIGFuZCBkaXNjYXJkIFVuaWNvZGUgdmVyc2lvbi4uLgorICAgICAgIC8qIGJ5dGUgdW5pY29kZVZlcnNpb25bXSA9ICovSUNVQmluYXJ5LnJlYWRIZWFkZXIoYiwgREFUQV9GT1JNQVRfSUQsIHRoaXMpOworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oYik7CisKKyAgICAgICAgLy8gUmVjb3JkIHRoZSBvcmlnaW4gcG9zaXRpb24gb2YgdGhlIGZpbGUuICBLZWVwIGVub3VnaCBhcm91bmQKKyAgICAgICAgLy8gdG8gc2VlayBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgaGVhZGVyLgorICAgICAgICBkLm1hcmsoMjU2KTsKKworICAgICAgICBzaG9ydCBlbnVtVG9OYW1lX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IG5hbWVUb0VudW1fb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgZW51bVRvVmFsdWVfb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgdG90YWxfc2l6ZSA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IHZhbHVlTWFwX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IHZhbHVlTWFwX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgbmFtZUdyb3VwUG9vbF9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBuYW1lR3JvdXBQb29sX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgc3RyaW5nUG9vbF9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBzdHJpbmdQb29sX2NvdW50ID0gZC5yZWFkU2hvcnQoKTsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICJlbnVtVG9OYW1lX29mZnNldD0iICsgZW51bVRvTmFtZV9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJuYW1lVG9FbnVtX29mZnNldD0iICsgbmFtZVRvRW51bV9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJlbnVtVG9WYWx1ZV9vZmZzZXQ9IiArIGVudW1Ub1ZhbHVlX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgInRvdGFsX3NpemU9IiArIHRvdGFsX3NpemUgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJ2YWx1ZU1hcF9vZmZzZXQ9IiArIHZhbHVlTWFwX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgInZhbHVlTWFwX2NvdW50PSIgKyB2YWx1ZU1hcF9jb3VudCArICJcbiIgKworICAgICAgICAgICAgICAgIm5hbWVHcm91cFBvb2xfb2Zmc2V0PSIgKyBuYW1lR3JvdXBQb29sX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgIm5hbWVHcm91cFBvb2xfY291bnQ9IiArIG5hbWVHcm91cFBvb2xfY291bnQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJzdHJpbmdQb29sX29mZnNldD0iICsgc3RyaW5nUG9vbF9vZmZzZXQgKyAiXG4iICsKKyAgICAgICAgICAgICAgICJzdHJpbmdQb29sX2NvdW50PSIgKyBzdHJpbmdQb29sX2NvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlYWQgaXQgYWxsIChsZXNzIHRoYW4gMzJrKS4gIFNlZWtpbmcgYXJvdW5kICh1c2luZworICAgICAgICAvLyBtYXJrL3Jlc2V0L3NraXBCeXRlcykgZG9lc24ndCB3b3JrIGRpcmVjdGx5IG9uIHRoZSBmaWxlLAorICAgICAgICAvLyBidXQgaXQgd29ya3MgZmluZSBpZiB3ZSByZWFkIGV2ZXJ5dGhpbmcgaW50byBhIGJ5dGVbXSBhcnJheQorICAgICAgICAvLyBmaXJzdC4KKyAgICAgICAgYnl0ZSByYXdbXSA9IG5ldyBieXRlW3RvdGFsX3NpemVdOworICAgICAgICBkLnJlc2V0KCk7CisgICAgICAgIGQucmVhZEZ1bGx5KHJhdyk7CisgICAgICAgIGQuY2xvc2UoKTsKKworICAgICAgICBCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgQnVpbGRlcihyYXcpOworCisgICAgICAgIHN0cmluZ1Bvb2wgPSBidWlsZGVyLnJlYWRTdHJpbmdQb29sKHN0cmluZ1Bvb2xfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdQb29sX2NvdW50KTsKKworICAgICAgICBuYW1lR3JvdXBQb29sID0gYnVpbGRlci5yZWFkTmFtZUdyb3VwUG9vbChuYW1lR3JvdXBQb29sX29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUdyb3VwUG9vbF9jb3VudCk7CisKKyAgICAgICAgYnVpbGRlci5zZXR1cFZhbHVlTWFwX21hcCh2YWx1ZU1hcF9vZmZzZXQsIHZhbHVlTWFwX2NvdW50KTsKKworICAgICAgICAvLyBTb21lIG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgdG8gYmUgc2V0IHVwCisgICAgICAgIC8vIGhlcmUsIF9ub3RfIGluIEJ1aWxkZXIuICBUaGF0J3MgYmVjYXVzZSB0aGV5IGFyZSBpbnN0YW5jZXMKKyAgICAgICAgLy8gb2Ygbm9uLXN0YXRpYyBpbm5lciBjbGFzc2VzLCBhbmQgdGhleSBjb250YWluIGltcGxpY2l0CisgICAgICAgIC8vIHJlZmVyZW5jZXMgdG8gdGhpcy4KKworICAgICAgICBidWlsZGVyLnNlZWsoZW51bVRvTmFtZV9vZmZzZXQpOworICAgICAgICBlbnVtVG9OYW1lID0gbmV3IE5vbkNvbnRpZ3VvdXNFbnVtVG9TaG9ydChidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5uYW1lR3JvdXBPZmZzZXRUb0luZGV4KGVudW1Ub05hbWUub2Zmc2V0QXJyYXkpOworCisgICAgICAgIGJ1aWxkZXIuc2VlayhuYW1lVG9FbnVtX29mZnNldCk7CisgICAgICAgIG5hbWVUb0VudW0gPSBuZXcgTmFtZVRvRW51bShidWlsZGVyKTsKKworICAgICAgICBidWlsZGVyLnNlZWsoZW51bVRvVmFsdWVfb2Zmc2V0KTsKKyAgICAgICAgZW51bVRvVmFsdWUgPSBuZXcgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLnZhbHVlTWFwT2Zmc2V0VG9JbmRleChlbnVtVG9WYWx1ZS5vZmZzZXRBcnJheSk7CisKKyAgICAgICAgdmFsdWVNYXBBcnJheSA9IG5ldyBWYWx1ZU1hcFt2YWx1ZU1hcF9jb3VudF07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx2YWx1ZU1hcF9jb3VudDsgKytpKSB7CisgICAgICAgICAgICAvLyBNdXN0IHNlZWsgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggZW50cnkuCisgICAgICAgICAgICBidWlsZGVyLnNlZWsoYnVpbGRlci52YWx1ZU1hcF9tYXBbaV0pOworICAgICAgICAgICAgdmFsdWVNYXBBcnJheVtpXSA9IG5ldyBWYWx1ZU1hcChidWlsZGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1aWxkZXIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwcm9wZXJ0eSBuYW1lIGdpdmVuIGEgcHJvcGVydHkgZW51bS4gIE11bHRpcGxlCisgICAgICogbmFtZXMgbWF5IGJlIGF2YWlsYWJsZSBmb3IgZWFjaCBwcm9wZXJ0eTsgdGhlIG5hbWVDaG9pY2UKKyAgICAgKiBzZWxlY3RzIGFtb25nIHRoZW0uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIHNob3J0IG5hbWVHcm91cEluZGV4ID0gZW51bVRvTmFtZS5nZXRTaG9ydChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBjaG9vc2VOYW1lSW5Hcm91cChuYW1lR3JvdXBJbmRleCwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcHJvcGVydHkgZW51bSBnaXZlbiBvbmUgb2YgaXRzIHByb3BlcnR5IG5hbWVzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UHJvcGVydHlFbnVtKFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICAgIHJldHVybiBuYW1lVG9FbnVtLmdldEVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdmFsdWUgbmFtZSBnaXZlbiBhIHByb3BlcnR5IGVudW0gYW5kIGEgdmFsdWUgZW51bS4KKyAgICAgKiBNdWx0aXBsZSBuYW1lcyBtYXkgYmUgYXZhaWxhYmxlIGZvciBlYWNoIHZhbHVlOyB0aGUgbmFtZUNob2ljZQorICAgICAqIHNlbGVjdHMgYW1vbmcgdGhlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVOYW1lKGludCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIFZhbHVlTWFwIHZtID0gZ2V0VmFsdWVNYXAocHJvcGVydHkpOworICAgICAgICBzaG9ydCBuYW1lR3JvdXBJbmRleCA9IHZtLmVudW1Ub05hbWUuZ2V0U2hvcnQodmFsdWUpOworICAgICAgICByZXR1cm4gY2hvb3NlTmFtZUluR3JvdXAobmFtZUdyb3VwSW5kZXgsIG5hbWVDaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHZhbHVlIGVudW0gZ2l2ZW4gb25lIG9mIGl0cyB2YWx1ZSBuYW1lcyBhbmQgdGhlCisgICAgICogY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBhbGlhcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFByb3BlcnR5VmFsdWVFbnVtKGludCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgIFZhbHVlTWFwIHZtID0gZ2V0VmFsdWVNYXAocHJvcGVydHkpOworICAgICAgICByZXR1cm4gdm0ubmFtZVRvRW51bS5nZXRFbnVtKHZhbHVlQWxpYXMpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERhdGEgc3RydWN0dXJlcworCisgICAgLyoqCisgICAgICogQSBtYXAgZm9yIHRoZSBsZWdhbCB2YWx1ZXMgb2YgYSBiaW5hcnkgb3IgZW51bWVyYXRlZCBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgVmFsdWVNYXAgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNYXBzIHZhbHVlIGVudW0gdG8gaW5kZXggaW50byB0aGUgbmFtZUdyb3VwUG9vbFtdCisgICAgICAgICAqLworICAgICAgICBFbnVtVG9TaG9ydCBlbnVtVG9OYW1lOyAvLyBwb2x5bW9ycGhpYworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNYXBzIHZhbHVlIG5hbWUgdG8gdmFsdWUgZW51bS4KKyAgICAgICAgICovCisgICAgICAgIE5hbWVUb0VudW0gbmFtZVRvRW51bTsKKworICAgICAgICBWYWx1ZU1hcChCdWlsZGVyIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBzaG9ydCBlbnVtVG9OYW1lX29mZnNldCA9IGIucmVhZFNob3J0KCk7CisgICAgICAgICAgICBzaG9ydCBuY0VudW1Ub05hbWVfb2Zmc2V0ID0gYi5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIHNob3J0IG5hbWVUb0VudW1fb2Zmc2V0ID0gYi5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIGlmIChlbnVtVG9OYW1lX29mZnNldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgYi5zZWVrKGVudW1Ub05hbWVfb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBDb250aWd1b3VzRW51bVRvU2hvcnQgeCA9IG5ldyBDb250aWd1b3VzRW51bVRvU2hvcnQoYik7CisgICAgICAgICAgICAgICAgYi5uYW1lR3JvdXBPZmZzZXRUb0luZGV4KHgub2Zmc2V0QXJyYXkpOworICAgICAgICAgICAgICAgIGVudW1Ub05hbWUgPSB4OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBiLnNlZWsobmNFbnVtVG9OYW1lX29mZnNldCk7CisgICAgICAgICAgICAgICAgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IHggPSBuZXcgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KGIpOworICAgICAgICAgICAgICAgIGIubmFtZUdyb3VwT2Zmc2V0VG9JbmRleCh4Lm9mZnNldEFycmF5KTsKKyAgICAgICAgICAgICAgICBlbnVtVG9OYW1lID0geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGIuc2VlayhuYW1lVG9FbnVtX29mZnNldCk7CisgICAgICAgICAgICBuYW1lVG9FbnVtID0gbmV3IE5hbWVUb0VudW0oYik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBYnN0cmFjdCBtYXAgZnJvbSBlbnVtIHZhbHVlcyB0byBpbnRlZ2Vycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludGVyZmFjZSBFbnVtVG9TaG9ydCB7CisgICAgICAgIHNob3J0IGdldFNob3J0KGludCBlbnVtUHJvYmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWFwIGZyb20gZW51bSB2YWx1ZXMgdG8gb2Zmc2V0cy4gIEVudW0gdmFsdWVzIGFyZQorICAgICAqIGNvbnRpZ3VvdXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udGlndW91c0VudW1Ub1Nob3J0IGltcGxlbWVudHMgRW51bVRvU2hvcnQgeworICAgICAgICBpbnQgZW51bVN0YXJ0OworICAgICAgICBpbnQgZW51bUxpbWl0OworICAgICAgICBzaG9ydCBvZmZzZXRBcnJheVtdOworCisgICAgICAgIHB1YmxpYyBzaG9ydCBnZXRTaG9ydChpbnQgZW51bVByb2JlKSB7CisgICAgICAgICAgICBpZiAoZW51bVByb2JlIDwgZW51bVN0YXJ0IHx8IGVudW1Qcm9iZSA+PSBlbnVtTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVudW0uIGVudW1TdGFydCA9ICIgK2VudW1TdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGVudW1MaW1pdCA9ICIgKyBlbnVtTGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBlbnVtUHJvYmUgPSAiICsgZW51bVByb2JlICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2Zmc2V0QXJyYXlbZW51bVByb2JlIC0gZW51bVN0YXJ0XTsKKyAgICAgICAgfQorCisgICAgICAgIENvbnRpZ3VvdXNFbnVtVG9TaG9ydChJQ1VCaW5hcnlTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgICAgICBlbnVtU3RhcnQgPSBzLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGVudW1MaW1pdCA9IHMucmVhZEludCgpOworICAgICAgICAgICAgaW50IGNvdW50ID0gZW51bUxpbWl0IC0gZW51bVN0YXJ0OworICAgICAgICAgICAgb2Zmc2V0QXJyYXkgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRBcnJheVtpXSA9IHMucmVhZFNob3J0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1hcCBmcm9tIGVudW0gdmFsdWVzIHRvIG9mZnNldHMuICBFbnVtIHZhbHVlcyBuZWVkIG5vdAorICAgICAqIGJlIGNvbnRpZ3VvdXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0IGltcGxlbWVudHMgRW51bVRvU2hvcnQgeworICAgICAgICBpbnQgZW51bUFycmF5W107CisgICAgICAgIHNob3J0IG9mZnNldEFycmF5W107CisKKyAgICAgICAgcHVibGljIHNob3J0IGdldFNob3J0KGludCBlbnVtUHJvYmUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxlbnVtQXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW51bUFycmF5W2ldIDwgZW51bVByb2JlKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoZW51bUFycmF5W2ldID4gZW51bVByb2JlKSBicmVhazsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0QXJyYXlbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVudW0iKTsKKyAgICAgICAgfQorCisgICAgICAgIE5vbkNvbnRpZ3VvdXNFbnVtVG9TaG9ydChJQ1VCaW5hcnlTdHJlYW0gcykgdGhyb3dzIElPRXhjZXB0aW9uICB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IHMucmVhZEludCgpOworICAgICAgICAgICAgZW51bUFycmF5ID0gbmV3IGludFtjb3VudF07CisgICAgICAgICAgICBvZmZzZXRBcnJheSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgZW51bUFycmF5W2ldID0gcy5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0QXJyYXlbaV0gPSBzLnJlYWRTaG9ydCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwIGZyb20gbmFtZXMgdG8gZW51bSB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBOYW1lVG9FbnVtIHsKKyAgICAgICAgaW50IGVudW1BcnJheVtdOworICAgICAgICBzaG9ydCBuYW1lQXJyYXlbXTsKKworICAgICAgICBpbnQgZ2V0RW51bShTdHJpbmcgbmFtZVByb2JlKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bmFtZUFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVUHJvcGVydHlBbGlhc2VzLmNvbXBhcmUobmFtZVByb2JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1Bvb2xbbmFtZUFycmF5W2ldXSk7CisgICAgICAgICAgICAgICAgaWYgKGMgPiAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIGJyZWFrOworICAgICAgICAgICAgICAgIHJldHVybiBlbnVtQXJyYXlbaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1lUHJvYmUpOworICAgICAgICB9CisKKyAgICAgICAgTmFtZVRvRW51bShCdWlsZGVyIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IGIucmVhZEludCgpOworICAgICAgICAgICAgZW51bUFycmF5ID0gbmV3IGludFtjb3VudF07CisgICAgICAgICAgICBuYW1lQXJyYXkgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGVudW1BcnJheVtpXSA9IGIucmVhZEludCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIG5hbWVBcnJheVtpXSA9IGIuc3RyaW5nT2Zmc2V0VG9JbmRleChiLnJlYWRTaG9ydCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFJ1bnRpbWUgaW1wbGVtZW50YXRpb24KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHByb3BlcnR5IG5hbWVzLCByZXR1cm5pbmcgPDAsIDAsIG9yID4wLiAgVGhlCisgICAgICogY29tcGFyaXNvbiBpcyB0aGF0IGRlc2NyaWJlZCBhcyAibG9vc2UiIG1hdGNoaW5nIGluIHRoZQorICAgICAqIFByb3BlcnR5KkFsaWFzZXMudHh0IGZpbGVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nIHN0cmEsIFN0cmluZyBzdHJiKSB7CisgICAgICAgIC8vIE5vdGU6IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgYSBsaXRlcmFsIGNvcHkgb2YKKyAgICAgICAgLy8gdXBydl9jb21wYXJlUHJvcGVydHlOYW1lcy4gIEl0IGNhbiBwcm9iYWJseSBiZSBpbXByb3ZlZC4KKyAgICAgICAgaW50IGlzdHJhPTAsIGlzdHJiPTAsIHJjOworICAgICAgICBpbnQgY3N0cmE9MCwgY3N0cmI9MDsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgLyogSWdub3JlIGRlbGltaXRlcnMgJy0nLCAnXycsIGFuZCBBU0NJSSBXaGl0ZV9TcGFjZSAqLworICAgICAgICAgICAgd2hpbGUgKGlzdHJhPHN0cmEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjc3RyYSA9IHN0cmEuY2hhckF0KGlzdHJhKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNzdHJhKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnLSc6ICBjYXNlICdfJzogIGNhc2UgJyAnOiAgY2FzZSAnXHQnOgorICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzogY2FzZSAweGIvKlx2Ki86IGNhc2UgJ1xmJzogY2FzZSAnXHInOgorICAgICAgICAgICAgICAgICAgICArK2lzdHJhOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdoaWxlIChpc3RyYjxzdHJiLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY3N0cmIgPSBzdHJiLmNoYXJBdChpc3RyYik7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjc3RyYikgeworICAgICAgICAgICAgICAgIGNhc2UgJy0nOiAgY2FzZSAnXyc6ICBjYXNlICcgJzogIGNhc2UgJ1x0JzoKKyAgICAgICAgICAgICAgICBjYXNlICdcbic6IGNhc2UgMHhiLypcdiovOiBjYXNlICdcZic6IGNhc2UgJ1xyJzoKKyAgICAgICAgICAgICAgICAgICAgKytpc3RyYjsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoICovCisgICAgICAgICAgICBib29sZWFuIGVuZHN0cmEgPSBpc3RyYT09c3RyYS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZW5kc3RyYiA9IGlzdHJiPT1zdHJiLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGVuZHN0cmEpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kc3RyYikgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgY3N0cmEgPSAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbmRzdHJiKSB7CisgICAgICAgICAgICAgICAgY3N0cmIgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByYyA9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY3N0cmEpIC0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjc3RyYik7CisgICAgICAgICAgICBpZiAocmMgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKytpc3RyYTsKKyAgICAgICAgICAgICsraXN0cmI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhbiBpbmRleCB0byBhIHJ1biB3aXRoaW4gdGhlIG5hbWVHcm91cFBvb2xbXSwgYW5kIGEKKyAgICAgKiBuYW1lQ2hvaWNlICgwLDEsLi4uKSwgc2VsZWN0IHRoZSBuYW1lQ2hvaWNlLXRoIGVudHJ5IG9mIHRoZSBydW4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2hvb3NlTmFtZUluR3JvdXAoc2hvcnQgbmFtZUdyb3VwSW5kZXgsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIGlmIChuYW1lQ2hvaWNlIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBuYW1lIGNob2ljZSIpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChuYW1lQ2hvaWNlLS0gPiAwKSB7CisgICAgICAgICAgICBpZiAobmFtZUdyb3VwUG9vbFtuYW1lR3JvdXBJbmRleCsrXSA8IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG5hbWUgY2hvaWNlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2hvcnQgYSA9IG5hbWVHcm91cFBvb2xbbmFtZUdyb3VwSW5kZXhdOworICAgICAgICByZXR1cm4gc3RyaW5nUG9vbFsoYSA8IDApID8gLWEgOiBhXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlTWFwW10gZW50cnkgZm9yIGEgZ2l2ZW4gcHJvcGVydHkuCisgICAgICovCisgICAgcHJpdmF0ZSBWYWx1ZU1hcCBnZXRWYWx1ZU1hcChpbnQgcHJvcGVydHkpIHsKKyAgICAgICAgaW50IHZhbHVlTWFwSW5kZXggPSBlbnVtVG9WYWx1ZS5nZXRTaG9ydChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiB2YWx1ZU1hcEFycmF5W3ZhbHVlTWFwSW5kZXhdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIElDVUJpbmFyeSBBUEkKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRhIHZlcnNpb24gY2FuIGJlIHVzZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pICAgeworICAgICAgICByZXR1cm4gdmVyc2lvblswXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEJ1aWxkZXIKKworICAgIC8qKgorICAgICAqIEEgc3BlY2lhbGl6ZWQgSUNVQmluYXJ5U3RyZWFtIHRoYXQgY2FuIG1hcCBiZXR3ZWVuIG9mZnNldHMgYW5kCisgICAgICogaW5kZXggdmFsdWVzIGludG8gdmFyaW91cyBhcnJheXMgKHN0cmluZ1Bvb2wsIG5hbWVHcm91cFBvb2wsCisgICAgICogYW5kIHZhbHVlTWFwKS4gIEl0IGFsc28ga25vd3MgaG93IHRvIHJlYWQgdmFyaW91cyBzdHJ1Y3R1cmVzLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBCdWlsZGVyIGV4dGVuZHMgSUNVQmluYXJ5U3RyZWFtIHsKKworICAgICAgICAvLyBtYXBbaV0gPSBvZmZzZXQgb2Ygb2JqZWN0IGkuICBXZSBuZWVkIG1hcHMgZm9yIGFsbCBvZiBvdXIKKyAgICAgICAgLy8gYXJyYXlzLiAgVGhlIGFycmF5cyBhcmUgaW5kZXhlZCBieSBvZmZzZXQgaW4gdGhlIHJhdyBiaW5hcnkKKyAgICAgICAgLy8gZmlsZTsgd2UgbmVlZCB0byB0cmFuc2xhdGUgdGhhdCB0byBpbmRleC4KKworICAgICAgICBwcml2YXRlIHNob3J0IHN0cmluZ1Bvb2xfbWFwW107CisKKyAgICAgICAgcHJpdmF0ZSBzaG9ydCB2YWx1ZU1hcF9tYXBbXTsKKworICAgICAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cF9tYXBbXTsKKworICAgICAgICBwdWJsaWMgQnVpbGRlcihieXRlIHJhd1tdKSB7CisgICAgICAgICAgICBzdXBlcihyYXcpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSB2YWx1ZU1hcF9tYXBbXSBtdXN0IGJlIHNldHVwIGluIGFkdmFuY2UuICBUaGlzIG1ldGhvZAorICAgICAgICAgKiBkb2VzIHRoYXQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXR1cFZhbHVlTWFwX21hcChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KSB7CisgICAgICAgICAgICB2YWx1ZU1hcF9tYXAgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAvLyBTdGFydCBvZiBlYWNoIGVudHJ5LiAgRWFjaCBlbnRyeSBpcyA2IGJ5dGVzIGxvbmcuCisgICAgICAgICAgICAgICAgdmFsdWVNYXBfbWFwW2ldID0gKHNob3J0KSAob2Zmc2V0ICsgaSAqIDYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlYWQgc3RyaW5nUG9vbFtdLiAgQnVpbGQgdXAgdHJhbnNsYXRpb24gdGFibGUgZnJvbSBvZmZzZXRzCisgICAgICAgICAqIHRvIHN0cmluZyBpbmRpY2VzIChzdHJpbmdQb29sX21hcFtdKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSByZWFkU3RyaW5nUG9vbChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHNlZWsob2Zmc2V0KTsKKyAgICAgICAgICAgIC8vIEFsbG9jYXRlIG9uZSBtb3JlIHN0cmluZ1Bvb2wgZW50cnkgdGhhbiBuZWVkZWQuICBVc2UgdGhpcworICAgICAgICAgICAgLy8gdG8gc3RvcmUgYSAibm8gc3RyaW5nIiBlbnRyeSBpbiB0aGUgcG9vbCwgYXQgaW5kZXggMC4gIFRoaXMKKyAgICAgICAgICAgIC8vIG1hcHMgdG8gb2Zmc2V0IDAsIHNvIGxldCBzdHJpbmdQb29sX21hcFswXSA9IDAuCisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nUG9vbFtdID0gbmV3IFN0cmluZ1tjb3VudCArIDFdOworICAgICAgICAgICAgc3RyaW5nUG9vbF9tYXAgPSBuZXcgc2hvcnRbY291bnQgKyAxXTsKKyAgICAgICAgICAgIHNob3J0IHBvcyA9IG9mZnNldDsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBzdHJpbmdQb29sX21hcFswXSA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpPTE7IGk8PWNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBuYW1lIGlzIGludmFyaWFudC1BU0NJSQorICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSAoY2hhcikgcmVhZFVuc2lnbmVkQnl0ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RyaW5nUG9vbF9tYXBbaV0gPSBwb3M7CisgICAgICAgICAgICAgICAgc3RyaW5nUG9vbFtpXSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHBvcyArPSBzdHJpbmdQb29sW2ldLmxlbmd0aCgpICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVhZCBzdHJpbmdQb29sIHggIiArIGNvdW50ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIHN0cmluZ1Bvb2xbMV0gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nUG9vbFsyXSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdQb29sWzNdICsgIiwuLi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdQb29sOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlYWQgdGhlIG5hbWVHcm91cFBvb2xbXSwgYW5kIGJ1aWxkIHVwIHRoZSBvZmZzZXQtPmluZGV4CisgICAgICAgICAqIG1hcCAobmFtZUdyb3VwUG9vbF9tYXBbXSkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc2hvcnRbXSByZWFkTmFtZUdyb3VwUG9vbChzaG9ydCBvZmZzZXQsIHNob3J0IGNvdW50KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIC8vIFJlYWQgbmFtZUdyb3VwUG9vbFtdLiAgVGhpcyBjb250YWlucyBvZmZzZXRzIGZyb20gc3RhcnQgb2YKKyAgICAgICAgICAgIC8vIGhlYWRlci4gIFdlIHRyYW5zbGF0ZSB0aGVzZSBpbnRvIGluZGljZXMgaW50byBzdHJpbmdQb29sW10KKyAgICAgICAgICAgIC8vIG9uIHRoZSBmbHkuICBUaGUgb2Zmc2V0IDAsIHdoaWNoIGluZGljYXRlcyAibm8gZW50cnkiLCB3ZQorICAgICAgICAgICAgLy8gdHJhbnNsYXRlIGludG8gaW5kZXggMCwgd2hpY2ggY29udGFpbnMgYSBudWxsIFN0cmluZworICAgICAgICAgICAgLy8gcG9pbnRlci4KKyAgICAgICAgICAgIHNlZWsob2Zmc2V0KTsKKyAgICAgICAgICAgIHNob3J0IHBvcyA9IG9mZnNldDsKKyAgICAgICAgICAgIHNob3J0IG5hbWVHcm91cFBvb2xbXSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBuYW1lR3JvdXBfbWFwID0gbmV3IHNob3J0W2NvdW50XTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgbmFtZUdyb3VwX21hcFtpXSA9IHBvczsKKyAgICAgICAgICAgICAgICBuYW1lR3JvdXBQb29sW2ldID0gc3RyaW5nT2Zmc2V0VG9JbmRleChyZWFkU2hvcnQoKSk7CisgICAgICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInJlYWQgbmFtZUdyb3VwUG9vbCB4ICIgKyBjb3VudCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICIgKyBuYW1lR3JvdXBQb29sWzBdICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVHcm91cFBvb2xbMV0gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUdyb3VwUG9vbFsyXSArICIsLi4uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmFtZUdyb3VwUG9vbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIG9mZnNldCBpbnRvIHRoZSBzdHJpbmcgcG9vbCBpbnRvIGEgc3RyaW5nUG9vbFtdCisgICAgICAgICAqIGluZGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzaG9ydCBzdHJpbmdPZmZzZXRUb0luZGV4KHNob3J0IG9mZnNldCkgeworICAgICAgICAgICAgaW50IHByb2JlID0gb2Zmc2V0OworICAgICAgICAgICAgaWYgKHByb2JlIDwgMCkgcHJvYmUgPSAtcHJvYmU7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyaW5nUG9vbF9tYXAubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nUG9vbF9tYXBbaV0gPT0gcHJvYmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzaG9ydCkgKChvZmZzZXQgPCAwKSA/IC1pIDogaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2FuJ3QgbWFwIHN0cmluZyBwb29sIG9mZnNldCAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArICIgdG8gaW5kZXgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIG9mZnNldHMgaW50byB0aGUgc3RyaW5nIHBvb2wgaW50byBhbgorICAgICAgICAgKiBhcnJheSBvZiBzdHJpbmdQb29sW10gaW5kaWNlcy4gIE1PRElGSUVTIFRIRSBBUlJBWSBJTgorICAgICAgICAgKiBQTEFDRS4KKyAgICAgICAgICovCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHN0cmluZ09mZnNldFRvSW5kZXgoc2hvcnQgYXJyYXlbXSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBzdHJpbmdPZmZzZXRUb0luZGV4KGFycmF5W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBvZmZzZXQgaW50byB0aGUgdmFsdWUgbWFwIGludG8gYSB2YWx1ZU1hcFtdCisgICAgICAgICAqIGluZGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzaG9ydCB2YWx1ZU1hcE9mZnNldFRvSW5kZXgoc2hvcnQgb2Zmc2V0KSB7CisgICAgICAgICAgICBmb3IgKHNob3J0IGk9MDsgaTx2YWx1ZU1hcF9tYXAubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVNYXBfbWFwW2ldID09IG9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDYW4ndCBtYXAgdmFsdWUgbWFwIG9mZnNldCAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArICIgdG8gaW5kZXgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIG9mZnNldHMgaW50byB0aGUgdmFsdWUgbWFwIGFycmF5IGludG8KKyAgICAgICAgICogYW4gYXJyYXkgb2YgdmFsdWVNYXBbXSBpbmRpY2VzLiAgTU9ESUZJRVMgVEhFIEFSUkFZIElOCisgICAgICAgICAqIFBMQUNFLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHZhbHVlTWFwT2Zmc2V0VG9JbmRleChzaG9ydCBhcnJheVtdKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8YXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHZhbHVlTWFwT2Zmc2V0VG9JbmRleChhcnJheVtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBvZmZzZXQgaW50byB0aGUgbmFtZSBncm91cCBwb29sIGludG8gYQorICAgICAgICAgKiBuYW1lR3JvdXBQb29sW10gaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHNob3J0IG5hbWVHcm91cE9mZnNldFRvSW5kZXgoc2hvcnQgb2Zmc2V0KSB7CisgICAgICAgICAgICBmb3IgKHNob3J0IGk9MDsgaTxuYW1lR3JvdXBfbWFwLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVHcm91cF9tYXBbaV0gPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBtYXAgbmFtZSBncm91cCBvZmZzZXQgIiArIG9mZnNldCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGluZGV4Iik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVydCBhbiBhcnJheSBvZiBvZmZzZXRzIGludG8gdGhlIG5hbWUgZ3JvdXAgcG9vbCBpbnRvIGFuCisgICAgICAgICAqIGFycmF5IG9mIG5hbWVHcm91cFBvb2xbXSBpbmRpY2VzLiAgTU9ESUZJRVMgVEhFIEFSUkFZIElOCisgICAgICAgICAqIFBMQUNFLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIG5hbWVHcm91cE9mZnNldFRvSW5kZXgoc2hvcnQgYXJyYXlbXSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBuYW1lR3JvdXBPZmZzZXRUb0luZGV4KGFycmF5W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VSTEhhbmRsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmExYzcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVJMSGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsMjQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLm5ldC5KYXJVUkxDb25uZWN0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuamFyLkphckVudHJ5OworaW1wb3J0IGphdmEudXRpbC5qYXIuSmFyRmlsZTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFVSTEhhbmRsZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1BOQU1FID0gInVybGhhbmRsZXIucHJvcHMiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hcCBoYW5kbGVyczsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgiVVJMSGFuZGxlciIpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIE1hcCBoID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IFVSTEhhbmRsZXIuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShQUk9QTkFNRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaXMgPSBDbGFzc0xvYWRlci5nZXRTeXN0ZW1DbGFzc0xvYWRlcigpLmdldFJlc291cmNlQXNTdHJlYW0oUFJPUE5BTUUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIENsYXNzW10gcGFyYW1zID0geyBVUkwuY2xhc3MgfTsKKyAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKFN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsgbGluZSAhPSBudWxsOyBsaW5lID0gYnIucmVhZExpbmUoKSkgeworICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwIHx8IGxpbmUuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IGxpbmUuaW5kZXhPZignPScpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl4ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiYmFkIHVybGhhbmRsZXIgbGluZTogJyIgKyBsaW5lICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgaXgpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gbGluZS5zdWJzdHJpbmcoaXgrMSkudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzIGNsID0gQ2xhc3MuZm9yTmFtZSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgbSA9IGNsLmdldERlY2xhcmVkTWV0aG9kKCJnZXQiLCBwYXJhbXMpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGgucHV0KGtleSwgbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4odCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGhhbmRsZXJzID0gaDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBVUkxIYW5kbGVyIGdldChVUkwgdXJsKSB7CisgICAgICAgIGlmICh1cmwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGhhbmRsZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1ldGhvZCBtID0gKE1ldGhvZCloYW5kbGVycy5nZXQocHJvdG9jb2wpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVVJMSGFuZGxlciBoYW5kbGVyID0gKFVSTEhhbmRsZXIpbS5pbnZva2UobnVsbCwgbmV3IE9iamVjdFtdIHsgdXJsIH0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldERlZmF1bHQodXJsKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBVUkxIYW5kbGVyIGdldERlZmF1bHQoVVJMIHVybCkgeworICAgICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwuZ2V0UHJvdG9jb2woKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcm90b2NvbC5lcXVhbHMoImZpbGUiKSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlVVJMSGFuZGxlcih1cmwpOworICAgICAgICB9IGVsc2UgaWYgKHByb3RvY29sLmVxdWFscygiamFyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSmFyVVJMSGFuZGxlcih1cmwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRmlsZVVSTEhhbmRsZXIgZXh0ZW5kcyBVUkxIYW5kbGVyIHsKKyAgICAgICAgRmlsZSBmaWxlOworICAgICAgICBTdHJpbmcgcm9vdDsKKyAgICAgICAgCisgICAgICAgIEZpbGVVUkxIYW5kbGVyKFVSTCB1cmwpIHsKKyAgICAgICAgICAgIHJvb3QgPSB1cmwuZ2V0UGF0aCgpOworICAgICAgICAgICAgZmlsZSA9IG5ldyBGaWxlKHJvb3QpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiZmlsZSBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ3VpZGUoVVJMVmlzaXRvciB2LCBib29sZWFuIHJlY3Vyc2UsIGJvb2xlYW4gc3RyaXApIHsKKyAgICAgICAgICAgIGlmIChmaWxlLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzKHYsIHJlY3Vyc2UsIHN0cmlwLCAiLyIsIGZpbGUubGlzdEZpbGVzKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2LnZpc2l0KGZpbGUuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3MoVVJMVmlzaXRvciB2LCBib29sZWFuIHJlY3Vyc2UsIGJvb2xlYW4gc3RyaXAsIFN0cmluZyBwYXRoLCBGaWxlW10gZmlsZXMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZWN1cnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKHYsIHJlY3Vyc2UsIHN0cmlwLCBwYXRoICsgZi5nZXROYW1lKCkrICcvJywgZi5saXN0RmlsZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB2LnZpc2l0KHN0cmlwPyBmLmdldE5hbWUoKSA6IHBhdGggKyBmLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEphclVSTEhhbmRsZXIgZXh0ZW5kcyBVUkxIYW5kbGVyIHsKKyAgICAgICAgSmFyRmlsZSBqYXJGaWxlOworICAgICAgICBTdHJpbmcgcHJlZml4OworICAgICAgICAKKyAgICAgICAgSmFyVVJMSGFuZGxlcihVUkwgdXJsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHByZWZpeCA9IHVybC5nZXRQYXRoKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGl4ID0gcHJlZml4LmluZGV4T2YoIiEvIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGl4ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnN1YnN0cmluZyhpeCArIDIpOyAvLyB0cnVuY2F0ZSBhZnRlciAiIS8iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEphclVSTENvbm5lY3Rpb24gY29ubiA9IChKYXJVUkxDb25uZWN0aW9uKXVybC5vcGVuQ29ubmVjdGlvbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGphckZpbGUgPSBjb25uLmdldEphckZpbGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJpY3VyYiBqYXIgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJqYXIgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGd1aWRlKFVSTFZpc2l0b3IgdiwgYm9vbGVhbiByZWN1cnNlLCBib29sZWFuIHN0cmlwKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudHJpZXMgPSBqYXJGaWxlLmVudHJpZXMoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBKYXJFbnRyeSBlbnRyeSA9IChKYXJFbnRyeSllbnRyaWVzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoIWVudHJ5LmlzRGlyZWN0b3J5KCkpIHsgLy8gc2tpcCBqdXN0IGRpcmVjdG9yeSBwYXRocworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBlbnRyeS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IG5hbWUubGFzdEluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWN1cnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmlwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaXgrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi52aXNpdChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJpY3VyYiBqYXIgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBndWlkZShVUkxWaXNpdG9yIHZpc2l0b3IsIGJvb2xlYW4gcmVjdXJzZSkKKyAgICB7CisgICAgICAgIGd1aWRlKHZpc2l0b3IsIHJlY3Vyc2UsIHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBndWlkZShVUkxWaXNpdG9yIHZpc2l0b3IsIGJvb2xlYW4gcmVjdXJzZSwgYm9vbGVhbiBzdHJpcCk7CisgICAgCisgICAgcHVibGljIGludGVyZmFjZSBVUkxWaXNpdG9yIHsKKyAgICAgICAgdm9pZCB2aXNpdChTdHJpbmcgc3RyKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VTZXJpYWxpemVkU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NzU0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworLyoqCisgKiBAdmVyc2lvbiAgICAgMS4xCisgKiBAYXV0aG9yICAgICBNYXJrdXMgVy4gU2NoZXJlcgorICogUmFtOiBBZGQgZG9jdW1lbnRhdGlvbiwgcmVtb3ZlIHVud2FudGVkIG1ldGhvZHMsIGltcHJvdmUgY292ZXJhZ2UuCisgKi8KKworLyoqCisgKiBTaW1wbGUgY2xhc3MgZm9yIGhhbmRsaW5nIHNlcmlhbGl6ZWQgVVNldC9Vbmljb2RlU2V0IHN0cnVjdHVyZXMKKyAqIHdpdGhvdXQgb2JqZWN0IGNyZWF0aW9uLiBTZWUgSUNVNEMgaWN1L3NvdXJjZS9jb21tb24vdXNldC5jLgorICoKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVNlcmlhbGl6ZWRTZXQgeworICAgIC8qKgorICAgICAqIEZpbGwgaW4gdGhlIGdpdmVuIHNlcmlhbGl6ZWQgc2V0IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gc3JjIHBvaW50ZXIgdG8gc3RhcnQgb2YgYXJyYXkKKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgcG9pbnRlciB0byBzdGFydCBvZiBzZXJpYWxpemVkIGRhdGEgKGxlbmd0aCB2YWx1ZSkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGFycmF5IGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGdldFNldChjaGFyIHNyY1tdLCBpbnQgc3JjU3RhcnQpIHsKKyAgICAgICAgLy8gbGVhdmUgbW9zdCBhcmd1bWVudCBjaGVja2luZyB1cCB0byBKYXZhIGV4Y2VwdGlvbnMKKyAgICAgICAgYXJyYXk9bnVsbDsKKyAgICAgICAgYXJyYXlPZmZzZXQ9Ym1wTGVuZ3RoPWxlbmd0aD0wOworCisgICAgICAgIGxlbmd0aD1zcmNbc3JjU3RhcnQrK107CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYoKGxlbmd0aCYweDgwMDApID4wKSB7CisgICAgICAgICAgICAvKiB0aGVyZSBhcmUgc3VwcGxlbWVudGFyeSB2YWx1ZXMgKi8KKyAgICAgICAgICAgIGxlbmd0aCY9MHg3ZmZmOworICAgICAgICAgICAgaWYoc3JjLmxlbmd0aDwoc3JjU3RhcnQrMStsZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPTA7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJtcExlbmd0aD1zcmNbc3JjU3RhcnQrK107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBvbmx5IEJNUCB2YWx1ZXMgKi8KKyAgICAgICAgICAgIGlmKHNyYy5sZW5ndGg8KHNyY1N0YXJ0K2xlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm1wTGVuZ3RoPWxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBhcnJheSA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHNyY1N0YXJ0LGFycmF5LDAsbGVuZ3RoKTsKKyAgICAgICAgLy9hcnJheU9mZnNldD1zcmNTdGFydDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgVVNlcmlhbGl6ZWRTZXQgdG8gY29udGFpbiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIChhbmQgbm90aGluZworICAgICAqIGVsc2UpLgorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0VG9PbmUoaW50IGMpIHsKKyAgICAgICAgaWYoIDB4MTBmZmZmPGMpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGM8MHhmZmZmKSB7CisgICAgICAgICAgICBibXBMZW5ndGg9bGVuZ3RoPTI7CisgICAgICAgICAgICBhcnJheVswXT0oY2hhciljOworICAgICAgICAgICAgYXJyYXlbMV09KGNoYXIpKGMrMSk7CisgICAgICAgIH0gZWxzZSBpZihjPT0weGZmZmYpIHsKKyAgICAgICAgICAgIGJtcExlbmd0aD0xOworICAgICAgICAgICAgbGVuZ3RoPTM7CisgICAgICAgICAgICBhcnJheVswXT0weGZmZmY7CisgICAgICAgICAgICBhcnJheVsxXT0xOworICAgICAgICAgICAgYXJyYXlbMl09MDsKKyAgICAgICAgfSBlbHNlIGlmKGM8MHgxMGZmZmYpIHsKKyAgICAgICAgICAgIGJtcExlbmd0aD0wOworICAgICAgICAgICAgbGVuZ3RoPTQ7CisgICAgICAgICAgICBhcnJheVswXT0oY2hhcikoYz4+MTYpOworICAgICAgICAgICAgYXJyYXlbMV09KGNoYXIpYzsKKyAgICAgICAgICAgICsrYzsKKyAgICAgICAgICAgIGFycmF5WzJdPShjaGFyKShjPj4xNik7CisgICAgICAgICAgICBhcnJheVszXT0oY2hhciljOworICAgICAgICB9IGVsc2UgLyogYz09MHgxMGZmZmYgKi8geworICAgICAgICAgICAgYm1wTGVuZ3RoPTA7CisgICAgICAgICAgICBsZW5ndGg9MjsKKyAgICAgICAgICAgIGFycmF5WzBdPTB4MTA7CisgICAgICAgICAgICBhcnJheVsxXT0weGZmZmY7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGNvbnRhaW5lZCBpbiB0aGUgZ2l2ZW4gc2VyaWFsaXplZAorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gcmFuZ2VJbmRleCBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGluIHRoZSByYW5nZSA8Y29kZT4wLi4KKyAgICAgKiBnZXRTZXJpYWxpemVkUmFuZ2VDb3VudCgpLTE8L2NvZGU+CisgICAgICogQHBhcmFtIHJhbmdlIHZhcmlhYmxlIHRvIHJlY2VpdmUgdGhlIGRhdGEgaW4gdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHJhbmdlSW5kZXggaXMgdmFsaWQsIG90aGVyd2lzZSBmYWxzZQorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gZ2V0UmFuZ2UoaW50IHJhbmdlSW5kZXgsIGludFtdIHJhbmdlKSB7CisgICAgICAgIGlmKCByYW5nZUluZGV4PDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZihhcnJheT09bnVsbCl7CisgICAgICAgICAgICBhcnJheSA9IG5ldyBjaGFyWzhdOworICAgICAgICB9CisgICAgICAgIGlmKHJhbmdlPT1udWxsIHx8IHJhbmdlLmxlbmd0aCA8Mil7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgcmFuZ2VJbmRleCo9MjsgLyogYWRkcmVzcyBzdGFydC9saW1pdCBwYWlycyAqLworICAgICAgICBpZihyYW5nZUluZGV4PGJtcExlbmd0aCkgeworICAgICAgICAgICAgcmFuZ2VbMF09YXJyYXlbcmFuZ2VJbmRleCsrXTsKKyAgICAgICAgICAgIGlmKHJhbmdlSW5kZXg8Ym1wTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09YXJyYXlbcmFuZ2VJbmRleF07CisgICAgICAgICAgICB9IGVsc2UgaWYocmFuZ2VJbmRleDxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByYW5nZVsxXT0oKChpbnQpYXJyYXlbcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbcmFuZ2VJbmRleCsxXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09MHgxMTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByYW5nZVsxXS09MTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmFuZ2VJbmRleC09Ym1wTGVuZ3RoOworICAgICAgICAgICAgcmFuZ2VJbmRleCo9MjsgLyogYWRkcmVzcyBwYWlycyBvZiBwYWlycyBvZiB1bml0cyAqLworICAgICAgICAgICAgbGVuZ3RoLT1ibXBMZW5ndGg7CisgICAgICAgICAgICBpZihyYW5nZUluZGV4PGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGludCBvZmZzZXQ9YXJyYXlPZmZzZXQrYm1wTGVuZ3RoOworICAgICAgICAgICAgICAgIHJhbmdlWzBdPSgoKGludClhcnJheVtvZmZzZXQrcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXgrMV07CisgICAgICAgICAgICAgICAgcmFuZ2VJbmRleCs9MjsKKyAgICAgICAgICAgICAgICBpZihyYW5nZUluZGV4PGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICByYW5nZVsxXT0oKChpbnQpYXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXhdKTw8MTYpfGFycmF5W29mZnNldCtyYW5nZUluZGV4KzFdOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlWzFdPTB4MTEwMDAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByYW5nZVsxXS09MTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gVVNlcmlhbGl6ZWRTZXQgY29udGFpbnMgdGhlIGdpdmVuCisgICAgICogY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjIHRoZSBjaGFyYWN0ZXIgdG8gdGVzdCBmb3IKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2V0IGNvbnRhaW5zIGMKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAKKyAgICAgICAgaWYoYz4weDEwZmZmZikgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIC8qIGZpbmQgYyBpbiB0aGUgQk1QIHBhcnQgKi8KKyAgICAgICAgICAgIGZvcihpPTA7IGk8Ym1wTGVuZ3RoICYmIChjaGFyKWM+PWFycmF5W2ldOyArK2kpIHt9CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChpJjEpICE9IDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAvKiBmaW5kIGMgaW4gdGhlIHN1cHBsZW1lbnRhcnkgcGFydCAqLworICAgICAgICAgICAgY2hhciBoaWdoPShjaGFyKShjPj4xNiksIGxvdz0oY2hhciljOworICAgICAgICAgICAgZm9yKGk9Ym1wTGVuZ3RoOworICAgICAgICAgICAgICAgIGk8bGVuZ3RoICYmIChoaWdoPmFycmF5W2ldIHx8IChoaWdoPT1hcnJheVtpXSAmJiBsb3c+PWFycmF5W2krMV0pKTsKKyAgICAgICAgICAgICAgICBpKz0yKSB7fQorICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvdW50IHBhaXJzIG9mIDE2LWJpdCB1bml0cyBldmVuIHBlciBCTVAgYW5kIGNoZWNrIGlmIHRoZSBudW1iZXIgb2YgcGFpcnMgaXMgb2RkICovCisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKCgoaStibXBMZW5ndGgpJjIpIT0wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGlzam9pbnQgcmFuZ2VzIG9mIGNoYXJhY3RlcnMgY29udGFpbmVkIGluCisgICAgICogdGhlIGdpdmVuIHNlcmlhbGl6ZWQgc2V0LiAgSWdub3JlcyBhbnkgc3RyaW5ncyBjb250YWluZWQgaW4gdGhlCisgICAgICogc2V0LgorICAgICAqIEByZXR1cm4gYSBub24tbmVnYXRpdmUgaW50ZWdlciBjb3VudGluZyB0aGUgY2hhcmFjdGVyIHJhbmdlcworICAgICAqIGNvbnRhaW5lZCBpbiBzZXQKKyAgICAgKiBAZHJhZnQgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgY291bnRSYW5nZXMoKSB7CisgICAgICAgIHJldHVybiAoYm1wTGVuZ3RoKyhsZW5ndGgtYm1wTGVuZ3RoKS8yKzEpLzI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2hhciBhcnJheVtdID0gbmV3IGNoYXJbOF07CisgICAgcHJpdmF0ZSBpbnQgYXJyYXlPZmZzZXQsIGJtcExlbmd0aCwgbGVuZ3RoOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVRGMzIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VURjMyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMzOWMwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VURjMyLmphdmEKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udmVydHMgYmV0d2VlbiBhbiBhcnJheSBvZiBieXRlcyBpbiBVVEYtMzIgZW5jb2RpbmcgKEJFIG9yIExFKSBhbmQKKyAqIEphdmEgU3RyaW5ncy4KKyAqIAorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBVVEYzMgoreworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHBhY2tzIGEgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludCBpbnRvIHRoZSBieXRlIGFycmF5LiBJdCBpcworICAgICAqIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdGhhdCBpbXBsZW1lbnQgdGhlIEJFIGFuZCBMRSBlbmNvZGluZ3MuCisgICAgICogCisgICAgICogQHBhcmFtIGJ5dGVzIHRoZSBkZXN0aW5hdGlvbiBieXRlIGFycmF5CisgICAgICogQHBhcmFtIGNvZGVQb2ludCB0aGUgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBvdXQgdGhlIGRlc3RpbmF0aW9uIGluZGV4IGluIDxjb2RlPmJ5dGVzPC9jb2RlPi4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBwYWNrKGJ5dGVbXSBieXRlcywgaW50IGNvZGVQb2ludCwgaW50IG91dCk7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgdW5wYWNrcyBieXRlcyBmcm9tIHRoZSBlbmNvZGVkIGJ5dGUgYXJyYXkgaW50byBhIDMyLWJpdAorICAgICAqIFVuaWNvZGUgY29kZSBwb2ludC4gSXQgaXMgaW1wbG1lZW50ZWQgYnkgc3ViY2xhc3NlcyB0aGF0IGltcGxtZWVudCB0aGUgQkUgYW5kIExFIGVuY29kaW5ncy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIHNvdXJjZSBieXRlIGFycmF5LgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHNvdXJjZSBieXRlLgorICAgICAqIEByZXR1cm4gdGhlIDMyLWJpdCBVbmljb2RlIGNvZGUgcG9pbnQuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGludCB1bnBhY2soYnl0ZVtdIGJ5dGVzLCBpbnQgaW5kZXgpOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBKYXZhIFN0cmluZyBpbnRvIGFuIGFycmF5IG9mIFVURi0zMiBlbmNvZGVkIGJ5dGVzLiBDYWxscworICAgICAqIHRoZSA8Y29kZT5wYWNrPC9jb2RlPiBtZXRob2QgdG8gZG8gdGhlIGVuY29kaW5nLgorICAgICAqIAorICAgICAqIEBwYXJhbSB1dGYxNiB0aGUgc291cmNlIEphdmEgU3RyaW5nLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgVVRGLTMyIGVuY29kZWQgYnl0ZXMuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSB0b0J5dGVzKFN0cmluZyB1dGYxNikKKyAgICB7CisgICAgICAgIGludCBjb2RlUG9pbnRzID0gVVRGMTYuY291bnRDb2RlUG9pbnQodXRmMTYpOworICAgICAgICBieXRlW10gYnl0ZXMgPSBuZXcgYnl0ZVtjb2RlUG9pbnRzICogNF07CisgICAgICAgIGludCBvdXQgPSAwOworCisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPCBjb2RlUG9pbnRzOyBvdXQgKz0gNCkgeworICAgICAgICAgICAgaW50IGNvZGVQb2ludCA9IFVURjE2LmNoYXJBdCh1dGYxNiwgY3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYWNrKGJ5dGVzLCBjb2RlUG9pbnQsIG91dCk7CisgICAgICAgICAgICBjcCArPSBVVEYxNi5nZXRDaGFyQ291bnQoY29kZVBvaW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJ5dGVzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjb252ZXJ0cyBhIHNlcXVlbmNlIG9mIFVURi0zMiBlbmNvZGVkIGJ5dGVzIGludG8KKyAgICAgKiBhIEphdmEgU3RyaW5nLiBJdCBjYWxscyB0aGUgPGNvZGU+dW5wYWNrPC9jb2RlPiBtZXRob2QgdG8gaW1wbGVtZW50CisgICAgICogdGhlIGVuY29kaW5nLgorICAgICAqIAorICAgICAqIEBwYXJhbSBieXRlcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgc3RhcnRpbmcgb2Zmc2V0IGluIHRoZSBieXRlIGFycmF5LgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHByb2Nlc3MuCisgICAgICogQHJldHVybiB0aGUgSmF2YSBTdHJpbmcuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBmcm9tQnl0ZXMoYnl0ZVtdIGJ5dGVzLCBpbnQgb2Zmc2V0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXQgKyBjb3VudDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGNwID0gb2Zmc2V0OyBjcCA8IGxpbWl0OyBjcCArPSA0KSB7CisgICAgICAgICAgICBpbnQgY29kZVBvaW50ID0gdW5wYWNrKGJ5dGVzLCBjcCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNvZGVQb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBjb252ZXJ0cyBhbiBlbnRpcmUgYnl0ZSBhcnJheQorICAgICAqIGludG8gYSBKYXZhIFN0cmluZy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIHNvdXJjZSBieXRlIGFycmF5LgorICAgICAqIEByZXR1cm4gdGhlIEphdmEgU3RyaW5nLgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZnJvbUJ5dGVzKGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIHJldHVybiBmcm9tQnl0ZXMoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhbiBpbnN0YW5jZSB0aGF0IGltcGxlbWVudHMgVVRGLTMyQkUgZW5jb2RpbmcuCisgICAgICogCisgICAgICogQHJldHVybiB0aGUgaW5zdGFuY2UuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBVVEYzMiBnZXRCRUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmIChiZUluc3RhbmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIGJlSW5zdGFuY2UgPSBuZXcgQkUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJlSW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhbiBpbnN0YW5jZSB0aGF0IGltcGxlbW50cyB0aGUgVVRGLTMyTEUgZW5jb2RpbmcuCisgICAgICogCisgICAgICogQHJldHVybiB0aGUgaW5zdGFuY2UuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBVVEYzMiBnZXRMRUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmIChsZUluc3RhbmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxlSW5zdGFuY2UgPSBuZXcgTEUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxlSW5zdGFuY2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhbiBpbnN0YW5jZSB0aGF0IGltcGxlbWVudHMgZWl0aGVyIFVURi0zMkJFIG9yIFVURjMyLUxFLAorICAgICAqIGRlcGVuZGluZyBvbiB0aGUgZW5jb2RpbmcgbmFtZSBzdXBwbGVkLgorICAgICAqIAorICAgICAqIEBwYXJhbSBlbmNvZGluZyB0aGUgZW5jb2RpbmcgbmFtZSAtIG11c3QgYmUgPGNvZGU+IlVURi0zMkJFIjwvY29kZT4gb3IgPGNvZGU+IlVURi0zMkxFIjwvY29kZT4uCisgICAgICogQHJldHVybiB0aGUgaW5zdGFuY2UuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBVVEYzMiBnZXRJbnN0YW5jZShTdHJpbmcgZW5jb2RpbmcpCisgICAgeworICAgICAgICBpZiAoZW5jb2RpbmcuZXF1YWxzKCJVVEYtMzJCRSIpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0QkVJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZW5jb2RpbmcuZXF1YWxzKCJVVEYtMzJMRSIpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0TEVJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBzdWJsY2FzcyBpbXBsZW1lbnRzIHRoZSBVVEYtMzJCRSBlbmNvZGluZyB2aWEgdGhlCisgICAgICogPGNvZGU+cGFjazwvY29kZT4gYW5kIDxjb2RlPnVucGFjazwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgQkUgZXh0ZW5kcyBVVEYzMgorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIHBhY2tzIGEgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludCBpbnRvIHRoZSBieXRlIGFycmF5IHVzaW5nCisgICAgICAgICAqIHRoZSBVVEYtMzJCRSBlbmNvZGluZy4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBieXRlcyB0aGUgZGVzdGluYXRpb24gYnl0ZSBhcnJheQorICAgICAgICAgKiBAcGFyYW0gY29kZVBvaW50IHRoZSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50CisgICAgICAgICAqIEBwYXJhbSBvdXQgdGhlIGRlc3RpbmF0aW9uIGluZGV4IGluIDxjb2RlPmJ5dGVzPC9jb2RlPi4KKyAgICAgICAgICogCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgcGFjayhieXRlW10gYnl0ZXMsIGludCBjb2RlUG9pbnQsIGludCBvdXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDBdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+IDI0KSAmIDB4RkYpOworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgMV0gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gMTYpICYgMHhGRik7CisgICAgICAgICAgICBieXRlc1tvdXQgKyAyXSA9IChieXRlKSAoKGNvZGVQb2ludCA+PiAgOCkgJiAweEZGKTsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDNdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+ICAwKSAmIDB4RkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgdW5wYWNrcyBieXRlcyBmcm9tIHRoZSBVVEYtMzJCRSBlbmNvZGVkIGJ5dGUgYXJyYXkgaW50byBhIDMyLWJpdAorICAgICAgICAgKiBVbmljb2RlIGNvZGUgcG9pbnQuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIHNvdXJjZSBieXRlIGFycmF5LgorICAgICAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBzb3VyY2UgYnl0ZS4KKyAgICAgICAgICogQHJldHVybiB0aGUgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAgICAgICogCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCB1bnBhY2soYnl0ZVtdIGJ5dGVzLCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoYnl0ZXNbaW5kZXggKyAwXSAmIDB4RkYpIDw8IDI0IHwgKGJ5dGVzW2luZGV4ICsgMV0gJiAweEZGKSA8PCAxNiB8CisgICAgICAgICAgICAgICAgICAgKGJ5dGVzW2luZGV4ICsgMl0gJiAweEZGKSA8PCAgOCB8IChieXRlc1tpbmRleCArIDNdICYgMHhGRik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBzdWJsY2FzcyBpbXBsZW1lbnRzIHRoZSBVVEYtMzJMRSBlbmNvZGluZyB2aWEgdGhlCisgICAgICogPGNvZGU+cGFjazwvY29kZT4gYW5kIDxjb2RlPnVucGFjazwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgTEUgZXh0ZW5kcyBVVEYzMgorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIHBhY2tzIGEgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludCBpbnRvIHRoZSBieXRlIGFycmF5IHVzaW5nCisgICAgICAgICAqIHRoZSBVVEYtMzJMRSBlbmNvZGluZy4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBieXRlcyB0aGUgZGVzdGluYXRpb24gYnl0ZSBhcnJheQorICAgICAgICAgKiBAcGFyYW0gY29kZVBvaW50IHRoZSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50CisgICAgICAgICAqIEBwYXJhbSBvdXQgdGhlIGRlc3RpbmF0aW9uIGluZGV4IGluIDxjb2RlPmJ5dGVzPC9jb2RlPi4KKyAgICAgICAgICogCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgcGFjayhieXRlW10gYnl0ZXMsIGludCBjb2RlUG9pbnQsIGludCBvdXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDNdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+IDI0KSAmIDB4RkYpOworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgMl0gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gMTYpICYgMHhGRik7CisgICAgICAgICAgICBieXRlc1tvdXQgKyAxXSA9IChieXRlKSAoKGNvZGVQb2ludCA+PiAgOCkgJiAweEZGKTsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDBdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+ICAwKSAmIDB4RkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgdW5wYWNrcyBieXRlcyBmcm9tIHRoZSBVVEYtMzJMRSBlbmNvZGVkIGJ5dGUgYXJyYXkgaW50byBhIDMyLWJpdAorICAgICAgICAgKiBVbmljb2RlIGNvZGUgcG9pbnQuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIHNvdXJjZSBieXRlIGFycmF5LgorICAgICAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBzb3VyY2UgYnl0ZS4KKyAgICAgICAgICogQHJldHVybiB0aGUgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAgICAgICogCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCB1bnBhY2soYnl0ZVtdIGJ5dGVzLCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoYnl0ZXNbaW5kZXggKyAzXSAmIDB4RkYpIDw8IDI0IHwgKGJ5dGVzW2luZGV4ICsgMl0gJiAweEZGKSA8PCAxNiB8CisgICAgICAgICAgICAgICAgICAgKGJ5dGVzW2luZGV4ICsgMV0gJiAweEZGKSA8PCAgOCB8IChieXRlc1tpbmRleCArIDBdICYgMHhGRik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVVRGMzIgYmVJbnN0YW5jZSA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgVVRGMzIgbGVJbnN0YW5jZSA9IG51bGw7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTM5YjNkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YQpAQCAtMCwwICsxLDE5MDYgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisvLyBUaGlzIGNsYXNzIGNvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIHNvIHRlc3Rpbmcgbm90IG5lZWRlZAorLy8vQ0xPVkVSOk9GRgorcHVibGljIGZpbmFsIGNsYXNzIFV0aWxpdHkgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBUE9TVFJPUEhFID0gJ1wnJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEJBQ0tTTEFTSCAgPSAnXFwnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQUdJQ19VTlNJR05FRCA9IDB4ODAwMDAwMDA7CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIE9iamVjdFtdcy4KKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoT2JqZWN0W10gc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIE9iamVjdFtdKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBPYmplY3RbXSB0YXJnID0gKE9iamVjdFtdKSB0YXJnZXQ7CisgICAgICAgIHJldHVybiAoc291cmNlLmxlbmd0aCA9PSB0YXJnLmxlbmd0aAorICAgICAgICAgICAgICAgICYmIGFycmF5UmVnaW9uTWF0Y2hlcyhzb3VyY2UsIDAsIHRhcmcsIDAsIHNvdXJjZS5sZW5ndGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGludFtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoaW50W10gc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGludFtdKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBpbnRbXSB0YXJnID0gKGludFtdKSB0YXJnZXQ7CisgICAgICAgIHJldHVybiAoc291cmNlLmxlbmd0aCA9PSB0YXJnLmxlbmd0aAorICAgICAgICAgICAgICAgICYmIGFycmF5UmVnaW9uTWF0Y2hlcyhzb3VyY2UsIDAsIHRhcmcsIDAsIHNvdXJjZS5sZW5ndGgpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGRvdWJsZVtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoZG91YmxlW10gc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGRvdWJsZVtdKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBkb3VibGVbXSB0YXJnID0gKGRvdWJsZVtdKSB0YXJnZXQ7CisgICAgICAgIHJldHVybiAoc291cmNlLmxlbmd0aCA9PSB0YXJnLmxlbmd0aAorICAgICAgICAgICAgICAgICYmIGFycmF5UmVnaW9uTWF0Y2hlcyhzb3VyY2UsIDAsIHRhcmcsIDAsIHNvdXJjZS5sZW5ndGgpKTsKKyAgICB9CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKGJ5dGVbXSBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgYnl0ZVtdKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBieXRlW10gdGFyZyA9IChieXRlW10pIHRhcmdldDsKKyAgICAgICAgcmV0dXJuIChzb3VyY2UubGVuZ3RoID09IHRhcmcubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgYXJyYXlSZWdpb25NYXRjaGVzKHNvdXJjZSwgMCwgdGFyZywgMCwgc291cmNlLmxlbmd0aCkpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gT2JqZWN0W11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLCB0aGUgY29ycmVjdCBhcnJheUVxdWFscyBpcyBub3QgYmVpbmcgY2FsbGVkCisgICAgICAgIC8vIHNvIGRvIGl0IGJ5IGhhbmQgZm9yIG5vdy4KKyAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE9iamVjdFtdKQorICAgICAgICAgICAgcmV0dXJuKGFycmF5RXF1YWxzKChPYmplY3RbXSkgc291cmNlLHRhcmdldCkpOworICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgaW50W10pCisgICAgICAgICAgICByZXR1cm4oYXJyYXlFcXVhbHMoKGludFtdKSBzb3VyY2UsdGFyZ2V0KSk7CisgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBkb3VibGVbXSkKKyAgICAgICAgICAgIHJldHVybihhcnJheUVxdWFscygoaW50W10pIHNvdXJjZSx0YXJnZXQpKTsKKyAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGJ5dGVbXSkKKyAgICAgICAgICAgIHJldHVybihhcnJheUVxdWFscygoYnl0ZVtdKSBzb3VyY2UsdGFyZ2V0KSk7CisgICAgICAgIHJldHVybiBzb3VyY2UuZXF1YWxzKHRhcmdldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0uCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoT2JqZWN0W10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheUVxdWFscyhzb3VyY2VbaV0sdGFyZ2V0W2kgKyBkZWx0YV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gT2JqZWN0W11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSE9dGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqIAorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gaW50W11zLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhpbnRbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldICE9IHRhcmdldFtpICsgZGVsdGFdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gYXJyYXlzIG9mIGRvdWJsZXMuCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGRvdWJsZVtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGVbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoYnl0ZVtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgYnl0ZVtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LCBpbnQgbGVuKXsKKwkJaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworCQlpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworCQlmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworCQkJaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKwkJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwkJcmV0dXJuIHRydWU7CisJfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eS4gRG9lcyBudWxsIGNoZWNrcyBvbiBvYmplY3RzLCB0aGVuIGNhbGxzIGVxdWFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gb2JqZWN0RXF1YWxzKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICBpZiAoc291cmNlID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc291cmNlLmVxdWFscyh0YXJnZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBFU0NBUEUgY2hhcmFjdGVyIGlzIHVzZWQgZHVyaW5nIHJ1bi1sZW5ndGggZW5jb2RpbmcuICBJdCBzaWduYWxzCisgICAgICogYSBydW4gb2YgaWRlbnRpY2FsIGNoYXJzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVNDQVBFID0gJ1x1QTVBNSc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgRVNDQVBFX0JZVEUgY2hhcmFjdGVyIGlzIHVzZWQgZHVyaW5nIHJ1bi1sZW5ndGggZW5jb2RpbmcuICBJdCBzaWduYWxzCisgICAgICogYSBydW4gb2YgaWRlbnRpY2FsIGJ5dGVzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBieXRlIEVTQ0FQRV9CWVRFID0gKGJ5dGUpMHhBNTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYW4gaW50IGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogQSBjaGFyYWN0ZXIgcmVwcmVzZW50cyBpdHNlbGYsIHVubGVzcyBpdCBpcyB0aGUgRVNDQVBFIGNoYXJhY3Rlci4gIFRoZW4KKyAgICAgKiB0aGUgZm9sbG93aW5nIG5vdGF0aW9ucyBhcmUgcG9zc2libGU6CisgICAgICogICBFU0NBUEUgRVNDQVBFICAgRVNDQVBFIGxpdGVyYWwKKyAgICAgKiAgIEVTQ0FQRSBuIGMgICAgICBuIGluc3RhbmNlcyBvZiBjaGFyYWN0ZXIgYworICAgICAqIFNpbmNlIGFuIGVuY29kZWQgcnVuIG9jY3VwaWVzIDMgY2hhcmFjdGVycywgd2Ugb25seSBlbmNvZGUgcnVucyBvZiA0IG9yCisgICAgICogbW9yZSBjaGFyYWN0ZXJzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRSBhbmQgbiA8PSAweEZGRkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFLCB3ZSByZXByZXNlbnQgdGhpcyBhczoKKyAgICAgKiAgIGMgRVNDQVBFIG4tMSBjCisgICAgICogVGhlIEVTQ0FQRSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBhcnJheVRvUkxFU3RyaW5nKGludFtdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCBhLmxlbmd0aCk7CisgICAgICAgIGludCBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBmb3IgKGludCBpPTE7IGk8YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IHMgPSBhW2ldOworICAgICAgICAgICAgaWYgKHMgPT0gcnVuVmFsdWUgJiYgcnVuTGVuZ3RoIDwgMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgKytydW5MZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICAgICAgICAgIHJ1blZhbHVlID0gczsKKyAgICAgICAgICAgICAgICBydW5MZW5ndGggPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIHNob3J0IGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogQSBjaGFyYWN0ZXIgcmVwcmVzZW50cyBpdHNlbGYsIHVubGVzcyBpdCBpcyB0aGUgRVNDQVBFIGNoYXJhY3Rlci4gIFRoZW4KKyAgICAgKiB0aGUgZm9sbG93aW5nIG5vdGF0aW9ucyBhcmUgcG9zc2libGU6CisgICAgICogICBFU0NBUEUgRVNDQVBFICAgRVNDQVBFIGxpdGVyYWwKKyAgICAgKiAgIEVTQ0FQRSBuIGMgICAgICBuIGluc3RhbmNlcyBvZiBjaGFyYWN0ZXIgYworICAgICAqIFNpbmNlIGFuIGVuY29kZWQgcnVuIG9jY3VwaWVzIDMgY2hhcmFjdGVycywgd2Ugb25seSBlbmNvZGUgcnVucyBvZiA0IG9yCisgICAgICogbW9yZSBjaGFyYWN0ZXJzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRSBhbmQgbiA8PSAweEZGRkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFLCB3ZSByZXByZXNlbnQgdGhpcyBhczoKKyAgICAgKiAgIGMgRVNDQVBFIG4tMSBjCisgICAgICogVGhlIEVTQ0FQRSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBhcnJheVRvUkxFU3RyaW5nKHNob3J0W10gYSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyBmb3IgKGludCBpPTA7IGk8YS5sZW5ndGg7ICsraSkgYnVmZmVyLmFwcGVuZCgoY2hhcikgYVtpXSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIChhLmxlbmd0aCA+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSBhLmxlbmd0aCk7CisgICAgICAgIHNob3J0IHJ1blZhbHVlID0gYVswXTsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDE7CisgICAgICAgIGZvciAoaW50IGk9MTsgaTxhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzaG9ydCBzID0gYVtpXTsKKyAgICAgICAgICAgIGlmIChzID09IHJ1blZhbHVlICYmIHJ1bkxlbmd0aCA8IDB4RkZGRikgKytydW5MZW5ndGg7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICAgICAgcnVuVmFsdWUgPSBzOworICAgICAgICAgICAgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBjaGFyIGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogQSBjaGFyYWN0ZXIgcmVwcmVzZW50cyBpdHNlbGYsIHVubGVzcyBpdCBpcyB0aGUgRVNDQVBFIGNoYXJhY3Rlci4gIFRoZW4KKyAgICAgKiB0aGUgZm9sbG93aW5nIG5vdGF0aW9ucyBhcmUgcG9zc2libGU6CisgICAgICogICBFU0NBUEUgRVNDQVBFICAgRVNDQVBFIGxpdGVyYWwKKyAgICAgKiAgIEVTQ0FQRSBuIGMgICAgICBuIGluc3RhbmNlcyBvZiBjaGFyYWN0ZXIgYworICAgICAqIFNpbmNlIGFuIGVuY29kZWQgcnVuIG9jY3VwaWVzIDMgY2hhcmFjdGVycywgd2Ugb25seSBlbmNvZGUgcnVucyBvZiA0IG9yCisgICAgICogbW9yZSBjaGFyYWN0ZXJzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRSBhbmQgbiA8PSAweEZGRkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFLCB3ZSByZXByZXNlbnQgdGhpcyBhczoKKyAgICAgKiAgIGMgRVNDQVBFIG4tMSBjCisgICAgICogVGhlIEVTQ0FQRSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoY2hhcltdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgKGEubGVuZ3RoID4+IDE2KSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGEubGVuZ3RoKTsKKyAgICAgICAgY2hhciBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBmb3IgKGludCBpPTE7IGk8YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgY2hhciBzID0gYVtpXTsKKyAgICAgICAgICAgIGlmIChzID09IHJ1blZhbHVlICYmIHJ1bkxlbmd0aCA8IDB4RkZGRikgKytydW5MZW5ndGg7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIChzaG9ydClydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgICAgIHJ1blZhbHVlID0gczsKKyAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgKHNob3J0KXJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGJ5dGUgYXJyYXkuICBVc2UgcnVuLWxlbmd0aCBlbmNvZGluZy4KKyAgICAgKiBUd28gYnl0ZXMgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGNoYXIsIHdpdGggYSBzaW5nbGUgZXh0cmEgemVybyBieXRlIGF0CisgICAgICogdGhlIGVuZCBpZiBuZWVkZWQuICBBIGJ5dGUgcmVwcmVzZW50cyBpdHNlbGYsIHVubGVzcyBpdCBpcyB0aGUKKyAgICAgKiBFU0NBUEVfQllURS4gIFRoZW4gdGhlIGZvbGxvd2luZyBub3RhdGlvbnMgYXJlIHBvc3NpYmxlOgorICAgICAqICAgRVNDQVBFX0JZVEUgRVNDQVBFX0JZVEUgICBFU0NBUEVfQllURSBsaXRlcmFsCisgICAgICogICBFU0NBUEVfQllURSBuIGIgICAgICAgICAgIG4gaW5zdGFuY2VzIG9mIGJ5dGUgYgorICAgICAqIFNpbmNlIGFuIGVuY29kZWQgcnVuIG9jY3VwaWVzIDMgYnl0ZXMsIHdlIG9ubHkgZW5jb2RlIHJ1bnMgb2YgNCBvcgorICAgICAqIG1vcmUgYnl0ZXMuICBUaHVzIHdlIGhhdmUgbiA+IDAgYW5kIG4gIT0gRVNDQVBFX0JZVEUgYW5kIG4gPD0gMHhGRi4KKyAgICAgKiBJZiB3ZSBlbmNvdW50ZXIgYSBydW4gd2hlcmUgbiA9PSBFU0NBUEVfQllURSwgd2UgcmVwcmVzZW50IHRoaXMgYXM6CisgICAgICogICBiIEVTQ0FQRV9CWVRFIG4tMSBiCisgICAgICogVGhlIEVTQ0FQRV9CWVRFIHZhbHVlIGlzIGNob3NlbiBzbyBhcyBub3QgdG8gY29sbGlkZSB3aXRoIGNvbW1vbmx5CisgICAgICogc2VlbiB2YWx1ZXMuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXJyYXlUb1JMRVN0cmluZyhieXRlW10gYSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSAoYS5sZW5ndGggPj4gMTYpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgYS5sZW5ndGgpOworICAgICAgICBieXRlIHJ1blZhbHVlID0gYVswXTsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDE7CisgICAgICAgIGJ5dGVbXSBzdGF0ZSA9IG5ldyBieXRlWzJdOworICAgICAgICBmb3IgKGludCBpPTE7IGk8YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnl0ZSBiID0gYVtpXTsKKyAgICAgICAgICAgIGlmIChiID09IHJ1blZhbHVlICYmIHJ1bkxlbmd0aCA8IDB4RkYpICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCwgc3RhdGUpOworICAgICAgICAgICAgICAgIHJ1blZhbHVlID0gYjsKKyAgICAgICAgICAgICAgICBydW5MZW5ndGggPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgsIHN0YXRlKTsKKworICAgICAgICAvLyBXZSBtdXN0IHNhdmUgdGhlIGZpbmFsIGJ5dGUsIGlmIHRoZXJlIGlzIG9uZSwgYnkgcGFkZGluZworICAgICAgICAvLyBhbiBleHRyYSB6ZXJvLgorICAgICAgICBpZiAoc3RhdGVbMF0gIT0gMCkgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCAoYnl0ZSkwLCBzdGF0ZSk7CisKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhIHJ1biwgcG9zc2libHkgYSBkZWdlbmVyYXRlIHJ1biAob2YgPCA0IHZhbHVlcykuCisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBydW47IG11c3QgYmUgPiAwICYmIDw9IDB4RkZGRi4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBlbmNvZGVSdW4oU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IHZhbHVlLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA0KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAoaW50KSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIEVTQ0FQRSk7CisgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCBsZW5ndGgpOworICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOyAvLyBEb24ndCBuZWVkIHRvIGVzY2FwZSB0aGlzIHZhbHVlCisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCB2YWx1ZSkgeworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSh2YWx1ZSA+Pj4gMTYpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikodmFsdWUgJiAweEZGRkYpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBydW4sIHBvc3NpYmx5IGEgZGVnZW5lcmF0ZSBydW4gKG9mIDwgNCB2YWx1ZXMpLgorICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcnVuOyBtdXN0IGJlID4gMCAmJiA8PSAweEZGRkYuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBlbmNvZGVSdW4oU3RyaW5nQnVmZmVyIGJ1ZmZlciwgc2hvcnQgdmFsdWUsIGludCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxsZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAoaW50KSBFU0NBUEUpIGJ1ZmZlci5hcHBlbmQoRVNDQVBFKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IChpbnQpIEVTQ0FQRSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAoaW50KSBFU0NBUEUpIGJ1ZmZlci5hcHBlbmQoRVNDQVBFKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSB2YWx1ZSk7CisgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEVTQ0FQRSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSBsZW5ndGgpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgdmFsdWUpOyAvLyBEb24ndCBuZWVkIHRvIGVzY2FwZSB0aGlzIHZhbHVlCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBydW4sIHBvc3NpYmx5IGEgZGVnZW5lcmF0ZSBydW4gKG9mIDwgNCB2YWx1ZXMpLgorICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcnVuOyBtdXN0IGJlID4gMCAmJiA8PSAweEZGLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgZW5jb2RlUnVuKFN0cmluZ0J1ZmZlciBidWZmZXIsIGJ5dGUgdmFsdWUsIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBzdGF0ZSkgeworICAgICAgICBpZiAobGVuZ3RoIDwgNCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IEVTQ0FQRV9CWVRFKSBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIEVTQ0FQRV9CWVRFLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCB2YWx1ZSwgc3RhdGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSBFU0NBUEVfQllURSkgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IEVTQ0FQRV9CWVRFKSBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIEVTQ0FQRV9CWVRFLCBzdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIHZhbHVlLCBzdGF0ZSk7CisgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgRVNDQVBFX0JZVEUsIHN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgKGJ5dGUpbGVuZ3RoLCBzdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIHZhbHVlLCBzdGF0ZSk7IC8vIERvbid0IG5lZWQgdG8gZXNjYXBlIHRoaXMgdmFsdWUKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIGJ5dGUgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciwgcGFja2luZyB0d28gYnl0ZXMgaW50byBlYWNoCisgICAgICogY2hhcmFjdGVyLiAgVGhlIHN0YXRlIHBhcmFtZXRlciBtYWludGFpbnMgaW50ZXJtZWRpYXJ5IGRhdGEgYmV0d2VlbgorICAgICAqIGNhbGxzLgorICAgICAqIEBwYXJhbSBzdGF0ZSBBIHR3by1lbGVtZW50IGFycmF5LCB3aXRoIHN0YXRlWzBdID09IDAgaWYgdGhpcyBpcyB0aGUKKyAgICAgKiBmaXJzdCBieXRlIG9mIGEgcGFpciwgb3Igc3RhdGVbMF0gIT0gMCBpZiB0aGlzIGlzIHRoZSBzZWNvbmQgYnl0ZQorICAgICAqIG9mIGEgcGFpciwgaW4gd2hpY2ggY2FzZSBzdGF0ZVsxXSBpcyB0aGUgZmlyc3QgYnl0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGFwcGVuZEVuY29kZWRCeXRlKFN0cmluZ0J1ZmZlciBidWZmZXIsIGJ5dGUgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gc3RhdGUpIHsKKyAgICAgICAgaWYgKHN0YXRlWzBdICE9IDApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IChjaGFyKSAoKHN0YXRlWzFdIDw8IDgpIHwgKCgoaW50KSB2YWx1ZSkgJiAweEZGKSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgc3RhdGVbMF0gPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc3RhdGVbMF0gPSAxOworICAgICAgICAgICAgc3RhdGVbMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGFycmF5IG9mIGludHMgZnJvbSBhIHJ1bi1sZW5ndGggZW5jb2RlZCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnRbXSBSTEVTdHJpbmdUb0ludEFycmF5KFN0cmluZyBzKSB7CisgICAgICAgIGludCBsZW5ndGggPSBnZXRJbnQocywgMCk7CisgICAgICAgIGludFtdIGFycmF5ID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICBpbnQgYWkgPSAwLCBpID0gMTsKKworICAgICAgICBpbnQgbWF4SSA9IHMubGVuZ3RoKCkgLyAyOworICAgICAgICB3aGlsZSAoYWkgPCBsZW5ndGggJiYgaSA8IG1heEkpIHsKKyAgICAgICAgICAgIGludCBjID0gZ2V0SW50KHMsIGkrKyk7CisKKyAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgIGMgPSBnZXRJbnQocywgaSsrKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBjOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5MZW5ndGggPSBjOworICAgICAgICAgICAgICAgICAgICBpbnQgcnVuVmFsdWUgPSBnZXRJbnQocywgaSsrKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHJ1bkxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IHJ1blZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGFpICE9IGxlbmd0aCB8fCBpICE9IG1heEkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgaW50IGFycmF5Iik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBpbnQgZ2V0SW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICByZXR1cm4gKCgoaW50KSBzLmNoYXJBdCgyKmkpKSA8PCAxNikgfCAoaW50KSBzLmNoYXJBdCgyKmkrMSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGFycmF5IG9mIHNob3J0cyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBzaG9ydFtdIFJMRVN0cmluZ1RvU2hvcnRBcnJheShTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuZ3RoID0gKCgoaW50KSBzLmNoYXJBdCgwKSkgPDwgMTYpIHwgKChpbnQpIHMuY2hhckF0KDEpKTsKKyAgICAgICAgc2hvcnRbXSBhcnJheSA9IG5ldyBzaG9ydFtsZW5ndGhdOworICAgICAgICBpbnQgYWkgPSAwOworICAgICAgICBmb3IgKGludCBpPTI7IGk8cy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IChzaG9ydCkgYzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgcnVuTGVuZ3RoID0gKGludCkgYzsKKyAgICAgICAgICAgICAgICAgICAgc2hvcnQgcnVuVmFsdWUgPSAoc2hvcnQpIHMuY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxydW5MZW5ndGg7ICsraikgYXJyYXlbYWkrK10gPSBydW5WYWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IChzaG9ydCkgYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhaSAhPSBsZW5ndGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJCYWQgcnVuLWxlbmd0aCBlbmNvZGVkIHNob3J0IGFycmF5Iik7CisKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBhcnJheSBvZiBzaG9ydHMgZnJvbSBhIHJ1bi1sZW5ndGggZW5jb2RlZCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBjaGFyW10gUkxFU3RyaW5nVG9DaGFyQXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9ICgoKGludCkgcy5jaGFyQXQoMCkpIDw8IDE2KSB8ICgoaW50KSBzLmNoYXJBdCgxKSk7CisgICAgICAgIGNoYXJbXSBhcnJheSA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgIGludCBhaSA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MjsgaTxzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgcnVuTGVuZ3RoID0gKGludCkgYzsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBydW5WYWx1ZSA9IHMuY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxydW5MZW5ndGg7ICsraikgYXJyYXlbYWkrK10gPSBydW5WYWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWkgIT0gbGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQmFkIHJ1bi1sZW5ndGggZW5jb2RlZCBzaG9ydCBhcnJheSIpOworCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2YgYnl0ZXMgZnJvbSBhIHJ1bi1sZW5ndGggZW5jb2RlZCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBieXRlW10gUkxFU3RyaW5nVG9CeXRlQXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9ICgoKGludCkgcy5jaGFyQXQoMCkpIDw8IDE2KSB8ICgoaW50KSBzLmNoYXJBdCgxKSk7CisgICAgICAgIGJ5dGVbXSBhcnJheSA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgIGJvb2xlYW4gbmV4dENoYXIgPSB0cnVlOworICAgICAgICBjaGFyIGMgPSAwOworICAgICAgICBpbnQgbm9kZSA9IDA7CisgICAgICAgIGludCBydW5MZW5ndGggPSAwOworICAgICAgICBpbnQgaSA9IDI7CisgICAgICAgIGZvciAoaW50IGFpPTA7IGFpPGxlbmd0aDsgKSB7CisgICAgICAgICAgICAvLyBUaGlzIHBhcnQgb2YgdGhlIGxvb3AgcGxhY2VzIHRoZSBuZXh0IGJ5dGUgaW50byB0aGUgbG9jYWwKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlICdiJyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9vcC4gIEl0IGtlZXBzIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudCBjaGFyYWN0ZXIgaW4gJ2MnIGFuZCB1c2VzIHRoZSBib29sZWFuICduZXh0Q2hhcicKKyAgICAgICAgICAgIC8vIHRvIHNlZSBpZiB3ZSd2ZSB0YWtlbiBib3RoIGJ5dGVzIG91dCBvZiAnYycgeWV0LgorICAgICAgICAgICAgYnl0ZSBiOworICAgICAgICAgICAgaWYgKG5leHRDaGFyKSB7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICAgICAgYiA9IChieXRlKSAoYyA+PiA4KTsKKyAgICAgICAgICAgICAgICBuZXh0Q2hhciA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYiA9IChieXRlKSAoYyAmIDB4RkYpOworICAgICAgICAgICAgICAgIG5leHRDaGFyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhpcyBwYXJ0IG9mIHRoZSBsb29wIGlzIGEgdGlueSBzdGF0ZSBtYWNoaW5lIHdoaWNoIGhhbmRsZXMKKyAgICAgICAgICAgIC8vIHRoZSBwYXJzaW5nIG9mIHRoZSBydW4tbGVuZ3RoIGVuY29kaW5nLiAgVGhpcyB3b3VsZCBiZSBzaW1wbGVyCisgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZCBsb29rIGFoZWFkLCBidXQgd2UgY2FuJ3QsIHNvIHdlIHVzZSAnbm9kZScgdG8KKyAgICAgICAgICAgIC8vIG1vdmUgYmV0d2VlbiB0aHJlZSBub2RlcyBpbiB0aGUgc3RhdGUgbWFjaGluZS4KKyAgICAgICAgICAgIHN3aXRjaCAobm9kZSkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBpZGxlIG5vZGUKKyAgICAgICAgICAgICAgICBpZiAoYiA9PSBFU0NBUEVfQllURSkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzZWVuIG9uZSBFU0NBUEVfQllURTsgd2UgZXhwZWN0IGVpdGhlciBhIHNlY29uZAorICAgICAgICAgICAgICAgIC8vIG9uZSwgb3IgYSBydW4gbGVuZ3RoIGFuZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICBpZiAoYiA9PSBFU0NBUEVfQllURSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IEVTQ0FQRV9CWVRFOworICAgICAgICAgICAgICAgICAgICBub2RlID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bkxlbmd0aCA9IGI7CisgICAgICAgICAgICAgICAgICAgIC8vIEludGVycHJldCBzaWduZWQgYnl0ZSBhcyB1bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICBpZiAocnVuTGVuZ3RoIDwgMCkgcnVuTGVuZ3RoICs9IDB4MTAwOworICAgICAgICAgICAgICAgICAgICBub2RlID0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzZWVuIGFuIEVTQ0FQRV9CWVRFIGFuZCBsZW5ndGggYnl0ZS4gIFdlIGludGVycHJldAorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IGJ5dGUgYXMgdGhlIHZhbHVlIHRvIGJlIHJlcGVhdGVkLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxydW5MZW5ndGg7ICsraikgYXJyYXlbYWkrK10gPSBiOworICAgICAgICAgICAgICAgIG5vZGUgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5vZGUgIT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgYnl0ZSBhcnJheSIpOworCisgICAgICAgIGlmIChpICE9IHMubGVuZ3RoKCkpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJFeGNlc3MgZGF0YSBpbiBSTEUgYnl0ZSBhcnJheSBzdHJpbmciKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgTElORV9TRVBBUkFUT1IgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImxpbmUuc2VwYXJhdG9yIik7CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgYSBTdHJpbmcgZm9yIHJlcHJlc2VudGF0aW9uIGluIGEgc291cmNlIGZpbGUuICBUaGlzIGluY2x1ZGVzCisgICAgICogYnJlYWtpbmcgaXQgaW50byBsaW5lcyBhbmQgZXNjYXBpbmcgY2hhcmFjdGVycyB1c2luZyBvY3RhbCBub3RhdGlvbgorICAgICAqIHdoZW4gbmVjZXNzYXJ5IChjb250cm9sIGNoYXJhY3RlcnMgYW5kIGRvdWJsZSBxdW90ZXMpLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdEZvclNvdXJjZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIGlmIChpID4gMCkgYnVmZmVyLmFwcGVuZCgnKycpLmFwcGVuZChMSU5FX1NFUEFSQVRPUik7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCIgICAgICAgIFwiIik7CisgICAgICAgICAgICBpbnQgY291bnQgPSAxMTsKKyAgICAgICAgICAgIHdoaWxlIChpPHMubGVuZ3RoKCkgJiYgY291bnQ8ODApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICdcdCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICdccicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcciIpOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudCBjb250cm9sIGNoYXJhY3RlcnMsIGJhY2tzbGFzaCBhbmQgZG91YmxlIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2luZyBvY3RhbCBub3RhdGlvbjsgb3RoZXJ3aXNlIHRoZSBzdHJpbmcgd2UgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd29uJ3QgY29tcGlsZSwgc2luY2UgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2VzIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2VkIGJlZm9yZSB0b2tlbml6YXRpb24uCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjIDw9ICdcdTAwN0UnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweEYwMDApID4+IDEyXSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwRjAwKSA+PiA4XSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwMEYwKSA+PiA0XSk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwMDBGKV0pOworICAgICAgICAgICAgICAgICAgICBjb3VudCArPSA2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJyInKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfRElHSVQgPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywKKyAgICAgICAgICAgICAgICAgICAgICc4JywnOScsJ0EnLCdCJywnQycsJ0QnLCdFJywnRid9OworCisgICAgLyoqCisgICAgICogRm9ybWF0IGEgU3RyaW5nIGZvciByZXByZXNlbnRhdGlvbiBpbiBhIHNvdXJjZSBmaWxlLiAgTGlrZQorICAgICAqIGZvcm1hdEZvclNvdXJjZSBidXQgZG9lcyBub3QgZG8gbGluZSBicmVha2luZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQxRm9yU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ1xyJykgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHIiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnQgY29udHJvbCBjaGFyYWN0ZXJzLCBiYWNrc2xhc2ggYW5kIGRvdWJsZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAvLyB1c2luZyBvY3RhbCBub3RhdGlvbjsgb3RoZXJ3aXNlIHRoZSBzdHJpbmcgd2UgZm9ybQorICAgICAgICAgICAgICAgICAgICAvLyB3b24ndCBjb21waWxlLCBzaW5jZSBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZXMgYXJlCisgICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3NlZCBiZWZvcmUgdG9rZW5pemF0aW9uLgorICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDA3MDApID4+IDZdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwNzApID4+IDNdKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGMgPD0gJ1x1MDA3RScpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweEYwMDApID4+IDEyXSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDBGMDApID4+IDhdKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwMDBGKV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoJyInKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgY2hhcmFjdGVycyBvdXRzaWRlIHRoZSByYW5nZSBVKzAwMjAgdG8gVSswMDdGIHRvCisgICAgICogVW5pY29kZSBlc2NhcGVzLCBhbmQgY29udmVydCBiYWNrc2xhc2ggdG8gYSBkb3VibGUgYmFja3NsYXNoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGVzY2FwZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPD0gMHgwMDdGKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcXFxcIik7IC8vIFRoYXQgaXMsICJcXCIKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmb3VyID0gYyA8PSAweEZGRkY7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3VyID8gIlxcdSIgOiAiXFxVIik7CisgICAgICAgICAgICAgICAgaGV4KGMsIGZvdXIgPyA0IDogOCwgYnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyogVGhpcyBtYXAgbXVzdCBiZSBpbiBBU0NFTkRJTkcgT1JERVIgT0YgVEhFIEVTQ0FQRSBDT0RFICovCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgY2hhcltdIFVORVNDQVBFX01BUCA9IHsKKyAgICAgICAgLyoiICAgMHgyMiwgMHgyMiAqLworICAgICAgICAvKicgICAweDI3LCAweDI3ICovCisgICAgICAgIC8qPyAgIDB4M0YsIDB4M0YgKi8KKyAgICAgICAgLypcICAgMHg1QywgMHg1QyAqLworICAgICAgICAvKmEqLyAweDYxLCAweDA3LAorICAgICAgICAvKmIqLyAweDYyLCAweDA4LAorICAgICAgICAvKmUqLyAweDY1LCAweDFiLAorICAgICAgICAvKmYqLyAweDY2LCAweDBjLAorICAgICAgICAvKm4qLyAweDZFLCAweDBhLAorICAgICAgICAvKnIqLyAweDcyLCAweDBkLAorICAgICAgICAvKnQqLyAweDc0LCAweDA5LAorICAgICAgICAvKnYqLyAweDc2LCAweDBiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gZXNjYXBlIHRvIGEgMzItYml0IGNvZGUgcG9pbnQgdmFsdWUuICBXZSBhdHRlbXB0CisgICAgICogdG8gcGFyYWxsZWwgdGhlIGljdTRjIHVuZXNjYXBlQXQoKSBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgYW4gYXJyYXkgY29udGFpbmluZyBvZmZzZXQgdG8gdGhlIGNoYXJhY3RlcgorICAgICAqIDxlbT5hZnRlcjwvZW0+IHRoZSBiYWNrc2xhc2guICBVcG9uIHJldHVybiBvZmZzZXQxNlswXSB3aWxsCisgICAgICogYmUgdXBkYXRlZCB0byBwb2ludCBhZnRlciB0aGUgZXNjYXBlIHNlcXVlbmNlLgorICAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHZhbHVlIGZyb20gMCB0byAxMEZGRkYsIG9yIC0xIG9uIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHVuZXNjYXBlQXQoU3RyaW5nIHMsIGludFtdIG9mZnNldDE2KSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBpbnQgbWluRGlnID0gMDsKKyAgICAgICAgaW50IG1heERpZyA9IDA7CisgICAgICAgIGludCBiaXRzUGVyRGlnaXQgPSA0OworICAgICAgICBpbnQgZGlnOworICAgICAgICBpbnQgaTsKKyAgICAgICAgYm9vbGVhbiBicmFjZXMgPSBmYWxzZTsKKworICAgICAgICAvKiBDaGVjayB0aGF0IG9mZnNldCBpcyBpbiByYW5nZSAqLworICAgICAgICBpbnQgb2Zmc2V0ID0gb2Zmc2V0MTZbMF07CisgICAgICAgIGludCBsZW5ndGggPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKiBGZXRjaCBmaXJzdCBVQ2hhciBhZnRlciAnXFwnICovCisgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKworICAgICAgICAvKiBDb252ZXJ0IGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzICovCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnVSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBsZW5ndGggJiYgVVRGMTYuY2hhckF0KHMsIG9mZnNldCkgPT0gMHg3QiAvKnsqLykgeworICAgICAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgICAgIGJyYWNlcyA9IHRydWU7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gODsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCA4KTsKKyAgICAgICAgICAgIGlmIChkaWcgPj0gMCkgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gMzsKKyAgICAgICAgICAgICAgICBuID0gMTsgLyogQWxyZWFkeSBoYXZlIGZpcnN0IG9jdGFsIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgYml0c1BlckRpZ2l0ID0gMzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkaWc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluRGlnICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGggJiYgbiA8IG1heERpZykgeworICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBkaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGlmIChkaWcgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0IDw8IGJpdHNQZXJEaWdpdCkgfCBkaWc7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobiA8IG1pbkRpZykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChicmFjZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyAhPSAweDdEIC8qfSovKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCB8fCByZXN1bHQgPj0gMHgxMTAwMDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBJZiBhbiBlc2NhcGUgc2VxdWVuY2Ugc3BlY2lmaWVzIGEgbGVhZCBzdXJyb2dhdGUsIHNlZQorICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgYWZ0ZXIgaXQsIGVpdGhlciBhcyBhbgorICAgICAgICAgICAgLy8gZXNjYXBlIG9yIGFzIGEgbGl0ZXJhbC4gIElmIHNvLCBqb2luIHRoZW0gdXAgaW50byBhCisgICAgICAgICAgICAvLyBzdXBwbGVtZW50YXJ5LgorICAgICAgICAgICAgaWYgKG9mZnNldCA8IGxlbmd0aCAmJgorICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikgcmVzdWx0KSkgeworICAgICAgICAgICAgICAgIGludCBhaGVhZCA9IG9mZnNldCsxOworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChvZmZzZXQpOyAvLyBbc2ljXSBnZXQgMTYtYml0IGNvZGUgdW5pdAorICAgICAgICAgICAgICAgIGlmIChjID09ICdcXCcgJiYgYWhlYWQgPCBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG9bXSA9IG5ldyBpbnRbXSB7IGFoZWFkIH07CisgICAgICAgICAgICAgICAgICAgIGMgPSB1bmVzY2FwZUF0KHMsIG8pOworICAgICAgICAgICAgICAgICAgICBhaGVhZCA9IG9bMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKSBjKSkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBhaGVhZDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikgcmVzdWx0LCAoY2hhcikgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCBDLXN0eWxlIGVzY2FwZXMgaW4gdGFibGUgKi8KKyAgICAgICAgZm9yIChpPTA7IGk8VU5FU0NBUEVfTUFQLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaWYgKGMgPT0gVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVORVNDQVBFX01BUFtpKzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChjIDwgVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBNYXAgXGNYIHRvIGNvbnRyb2wtWDogWCAmIDB4MUYgKi8KKyAgICAgICAgaWYgKGMgPT0gJ2MnICYmIG9mZnNldCA8IGxlbmd0aCkgeworICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQgKyBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICByZXR1cm4gMHgxRiAmIGM7CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBubyBzcGVjaWFsIGZvcm1zIGFyZSByZWNvZ25pemVkLCB0aGVuIGNvbnNpZGVyCisgICAgICAgICAqIHRoZSBiYWNrc2xhc2ggdG8gZ2VuZXJpY2FsbHkgZXNjYXBlIHRoZSBuZXh0IGNoYXJhY3Rlci4gKi8KKyAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYWxsIGVzY2FwZXMgaW4gYSBnaXZlbiBzdHJpbmcgdXNpbmcgdW5lc2NhcGVBdCgpLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIGludmFsaWQgZXNjYXBlIGlzCisgICAgICogc2Vlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50WzFdOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IGk7CisgICAgICAgICAgICAgICAgaW50IGUgPSB1bmVzY2FwZUF0KHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuc3Vic3RyaW5nKGktMSwgTWF0aC5taW4oaSs4LCBzLmxlbmd0aCgpKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBMZWF2ZSBpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZUxlbmllbnRseShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50WzFdOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IGk7CisgICAgICAgICAgICAgICAgaW50IGUgPSB1bmVzY2FwZUF0KHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZSk7CisgICAgICAgICAgICAgICAgICAgIGkgPSBwb3NbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgY2hhciB0byA0IGhleCB1cHBlcmNhc2UgZGlnaXRzLiAgRS5nLiwgaGV4KCdhJykgPT4KKyAgICAgKiAiMDA0MSIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gaGV4KGNoLCB0ZW1wKS50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29tbWEtc2VwYXJhdGVkIGdyb3VwcyBvZiA0IGhleCB1cHBlcmNhc2UKKyAgICAgKiBkaWdpdHMuICBFLmcuLCBoZXgoJ2FiJykgPT4gIjAwNDEsMDA0MiIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIGhleChzLCB0ZW1wKS50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29tbWEtc2VwYXJhdGVkIGdyb3VwcyBvZiA0IGhleCB1cHBlcmNhc2UKKyAgICAgKiBkaWdpdHMuICBFLmcuLCBoZXgoJ2FiJykgPT4gIjAwNDEsMDA0MiIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICByZXR1cm4gaGV4KHMudG9TdHJpbmcoKSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGNoYXIgdG8gNCBoZXggdXBwZXJjYXNlIGRpZ2l0cy4gIEUuZy4sIGhleCgnYScpID0+CisgICAgICogIjAwNDEiLiAgQXBwZW5kIHRoZSBvdXRwdXQgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgaGV4KGNoYXIgY2gsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZE51bWJlcihvdXRwdXQsIGNoLCAxNiwgNCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGludGVnZXIgdG8gc2l6ZSB3aWR0aCBoZXggdXBwZXJjYXNlIGRpZ2l0cy4KKyAgICAgKiBFLmcuLCBoZXgoJ2EnLCA0LCBzdHIpID0+ICIwMDQxIi4KKyAgICAgKiBBcHBlbmQgdGhlIG91dHB1dCB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLgorICAgICAqIElmIHdpZHRoIGlzIHRvbyBzbWFsbCB0byBmaXQsIG5vdGhpbmcgd2lsbCBiZSBhcHBlbmRlZCB0byBvdXRwdXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgaGV4KGludCBjaCwgaW50IHdpZHRoLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgIHJldHVybiBhcHBlbmROdW1iZXIob3V0cHV0LCBjaCwgMTYsIHdpZHRoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgaW50ZWdlciB0byBzaXplIHdpZHRoIChtaW5pbXVtKSBoZXggdXBwZXJjYXNlIGRpZ2l0cy4KKyAgICAgKiBFLmcuLCBoZXgoJ2EnLCA0LCBzdHIpID0+ICIwMDQxIi4gIElmIHRoZSBpbnRlZ2VyIHJlcXVpcmVzIG1vcmUKKyAgICAgKiB0aGFuIHdpZHRoIGRpZ2l0cywgbW9yZSB3aWxsIGJlIHVzZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGludCBjaCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJldHVybiBhcHBlbmROdW1iZXIoYnVmLCBjaCwgMTYsIHdpZHRoKS50b1N0cmluZygpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTdXBwbGllcyBhIHplcm8tcGFkZGVkIGhleCByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnRlZ2VyICh3aXRob3V0IDB4KQorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGhleChsb25nIGksIGludCBwbGFjZXMpIHsKKyAgICAgICAgaWYgKGkgPT0gTG9uZy5NSU5fVkFMVUUpIHJldHVybiAiLTgwMDAwMDAwMDAwMDAwMDAiOworICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gaSA8IDA7CisgICAgICAgIGlmIChuZWdhdGl2ZSkgeworICAgICAgICAgICAgaSA9IC1pOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBMb25nLnRvU3RyaW5nKGksIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpIDwgcGxhY2VzKSB7CisgICAgICAgICAgICByZXN1bHQgPSAiMDAwMDAwMDAwMDAwMDAwMCIuc3Vic3RyaW5nKHJlc3VsdC5sZW5ndGgoKSxwbGFjZXMpICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGlmIChuZWdhdGl2ZSkgeworICAgICAgICAgICAgcmV0dXJuICctJyArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgobG9uZyBjaCkgeworICAgICAgICByZXR1cm4gaGV4KGNoLDQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNvbW1hLXNlcGFyYXRlZCBncm91cHMgb2YgNCBoZXggdXBwZXJjYXNlCisgICAgICogZGlnaXRzLiAgRS5nLiwgaGV4KCdhYicpID0+ICIwMDQxLDAwNDIiLiAgQXBwZW5kIHRoZSBvdXRwdXQKKyAgICAgKiB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBoZXgoU3RyaW5nIHMsIFN0cmluZ0J1ZmZlciByZXN1bHQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIGhleChzLmNoYXJBdChpKSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkaXZpZGVyIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gc3BsaXQKKyAgICAgKiBAcGFyYW0gZGl2aWRlciB0aGUgY2hhcmFjdGVyIG9uIHdoaWNoIHRvIHNwbGl0LiAgT2NjdXJyZW5jZXMgb2YKKyAgICAgKiB0aGlzIGNoYXJhY3RlciBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBvdXRwdXQKKyAgICAgKiBAcGFyYW0gb3V0cHV0IGFuIGFycmF5IHRvIHJlY2VpdmUgdGhlIHN1YnN0cmluZ3MgYmV0d2VlbgorICAgICAqIGluc3RhbmNlcyBvZiBkaXZpZGVyLiAgSXQgbXVzdCBiZSBsYXJnZSBlbm91Z2ggb24gZW50cnkgdG8KKyAgICAgKiBhY2NvbW9kYXRlIGFsbCBvdXRwdXQuICBBZGphY2VudCBpbnN0YW5jZXMgb2YgdGhlIGRpdmlkZXIKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBwbGFjZSBlbXB0eSBzdHJpbmdzIGludG8gb3V0cHV0LiAgQmVmb3JlCisgICAgICogcmV0dXJuaW5nLCBvdXRwdXQgaXMgcGFkZGVkIG91dCB3aXRoIGVtcHR5IHN0cmluZ3MuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzcGxpdChTdHJpbmcgcywgY2hhciBkaXZpZGVyLCBTdHJpbmdbXSBvdXRwdXQpIHsKKyAgICAgICAgaW50IGxhc3QgPSAwOworICAgICAgICBpbnQgY3VycmVudCA9IDA7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gZGl2aWRlcikgeworICAgICAgICAgICAgICAgIG91dHB1dFtjdXJyZW50KytdID0gcy5zdWJzdHJpbmcobGFzdCxpKTsKKyAgICAgICAgICAgICAgICBsYXN0ID0gaSsxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dHB1dFtjdXJyZW50KytdID0gcy5zdWJzdHJpbmcobGFzdCxpKTsKKyAgICAgICAgd2hpbGUgKGN1cnJlbnQgPCBvdXRwdXQubGVuZ3RoKSB7CisgICAgICAgICAgICBvdXRwdXRbY3VycmVudCsrXSA9ICIiOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gcGllY2VzIGJhc2VkIG9uIHRoZSBnaXZlbiBkaXZpZGVyIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gc3BsaXQKKyAgICAgKiBAcGFyYW0gZGl2aWRlciB0aGUgY2hhcmFjdGVyIG9uIHdoaWNoIHRvIHNwbGl0LiAgT2NjdXJyZW5jZXMgb2YKKyAgICAgKiB0aGlzIGNoYXJhY3RlciBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBvdXRwdXQKKyAgICAgKiBAcmV0dXJuIG91dHB1dCBhbiBhcnJheSB0byByZWNlaXZlIHRoZSBzdWJzdHJpbmdzIGJldHdlZW4KKyAgICAgKiBpbnN0YW5jZXMgb2YgZGl2aWRlci4gQWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoZSBkaXZpZGVyCisgICAgICogY2hhcmFjdGVyIHdpbGwgcGxhY2UgZW1wdHkgc3RyaW5ncyBpbnRvIG91dHB1dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIHNwbGl0KFN0cmluZyBzLCBjaGFyIGRpdmlkZXIpIHsKKyAgICAgICAgaW50IGxhc3QgPSAwOworICAgICAgICBpbnQgaTsKKyAgICAgICAgQXJyYXlMaXN0IG91dHB1dCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYWRkKHMuc3Vic3RyaW5nKGxhc3QsaSkpOworICAgICAgICAgICAgICAgIGxhc3QgPSBpKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0LmFkZCggcy5zdWJzdHJpbmcobGFzdCxpKSk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pIG91dHB1dC50b0FycmF5KG5ldyBTdHJpbmdbb3V0cHV0LnNpemUoKV0pOworICAgIH0KKyAgICAKKyAgICAvLy9DTE9WRVI6T04KKyAgICAKKyAgICAvKioKKyAgICAgKiBMb29rIHVwIGEgZ2l2ZW4gc3RyaW5nIGluIGEgc3RyaW5nIGFycmF5LiAgUmV0dXJucyB0aGUgaW5kZXggYXQKKyAgICAgKiB3aGljaCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc3RyaW5nIHdhcyBmb3VuZCBpbiB0aGUKKyAgICAgKiBhcnJheSwgb3IgLTEgaWYgaXQgd2FzIG5vdCBmb3VuZC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzdHJpbmcgdG8gc2VhcmNoIGZvcgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIGFycmF5IG9mIHplcm8gb3IgbW9yZSBzdHJpbmdzIGluIHdoaWNoIHRvCisgICAgICogbG9vayBmb3Igc291cmNlCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGFyZ2V0IGF0IHdoaWNoIHNvdXJjZSBmaXJzdCBvY2N1cnMsIG9yIC0xCisgICAgICogaWYgbm90IGZvdW5kCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgaW50IGxvb2t1cChTdHJpbmcgc291cmNlLCBTdHJpbmdbXSB0YXJnZXQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKHRhcmdldFtpXSkpIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBzZXF1ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgd2hpdGUgc3BhY2UgY2hhcmFjdGVycworICAgICAqIGF0IHBvcy4gIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG5vbi13aGl0ZS1zcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCBvciBhZnRlciBwb3MsIG9yIHN0ci5sZW5ndGgoKSwgaWYgdGhlcmUgaXMgbm9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBza2lwV2hpdGVzcGFjZShTdHJpbmcgc3RyLCBpbnQgcG9zKSB7CisgICAgICAgIHdoaWxlIChwb3MgPCBzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHN0ciwgcG9zKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBzZXF1ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgd2hpdGUgc3BhY2UgY2hhcmFjdGVycworICAgICAqIGF0IHBvc1swXSwgYWR2YW5jaW5nIGl0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBza2lwV2hpdGVzcGFjZShTdHJpbmcgc3RyLCBpbnRbXSBwb3MpIHsKKyAgICAgICAgcG9zWzBdID0gc2tpcFdoaXRlc3BhY2Uoc3RyLCBwb3NbMF0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgcnVsZSB3aGl0ZSBzcGFjZSBmcm9tIGEgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVJ1bGVXaGl0ZVNwYWNlKFN0cmluZyBzdHIpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHN0ci5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzaW5nbGUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyICdjaCcsIG9wdGlvbmFsbHkKKyAgICAgKiBwcmVjZWRlZCBieSB3aGl0ZXNwYWNlLgorICAgICAqIEBwYXJhbSBpZCB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCBwb3NbMF0gaXMgdGhlCisgICAgICogb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gYmUgcGFyc2VkLiAgT24gb3V0cHV0LCBwb3NbMF0KKyAgICAgKiBpcyB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgcGFyc2VkIGNoYXJhY3Rlci4gIElmIHRoZSBwYXJzZQorICAgICAqIGZhaWxzLCBwb3NbMF0gd2lsbCBiZSB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIGNoIHRoZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgdG8gYmUgcGFyc2VkLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiAnY2gnIGlzIHNlZW4gcHJlY2VkZWQgYnkgemVybyBvciBtb3JlCisgICAgICogd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBwYXJzZUNoYXIoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGNoYXIgY2gpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworICAgICAgICBza2lwV2hpdGVzcGFjZShpZCwgcG9zKTsKKyAgICAgICAgaWYgKHBvc1swXSA9PSBpZC5sZW5ndGgoKSB8fAorICAgICAgICAgICAgaWQuY2hhckF0KHBvc1swXSkgIT0gY2gpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICsrcG9zWzBdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHBhdHRlcm4gc3RyaW5nIHN0YXJ0aW5nIGF0IG9mZnNldCBwb3MuICBLZXl3b3JkcyBhcmUKKyAgICAgKiBtYXRjaGVkIGNhc2UtaW5zZW5zaXRpdmVseS4gIFNwYWNlcyBtYXkgYmUgc2tpcHBlZCBhbmQgbWF5IGJlCisgICAgICogb3B0aW9uYWwgb3IgcmVxdWlyZWQuICBJbnRlZ2VyIHZhbHVlcyBtYXkgYmUgcGFyc2VkLCBhbmQgaWYKKyAgICAgKiB0aGV5IGFyZSwgdGhleSB3aWxsIGJlIHJldHVybmVkIGluIHRoZSBnaXZlbiBhcnJheS4gIElmCisgICAgICogc3VjY2Vzc2Z1bCwgdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBub24tc3BhY2UgY2hhcmFjdGVyIGlzCisgICAgICogcmV0dXJuZWQuICBPbiBmYWlsdXJlLCAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgd2hpY2gKKyAgICAgKiB3aWxsIG1hdGNoIHRoZWlyIHVwcGVyY2FzZSBlcXVpdmFsZW50cyBhcyB3ZWxsLiAgQSBzcGFjZQorICAgICAqIGNoYXJhY3RlciBtYXRjaGVzIG9uZSBvciBtb3JlIHJlcXVpcmVkIHNwYWNlcy4gIEEgJ34nIGNoYXJhY3RlcgorICAgICAqIG1hdGNoZXMgemVybyBvciBtb3JlIG9wdGlvbmFsIHNwYWNlcy4gIEEgJyMnIGNoYXJhY3RlciBtYXRjaGVzCisgICAgICogYW4gaW50ZWdlciBhbmQgc3RvcmVzIGl0IGluIHBhcnNlZEludHMsIHdoaWNoIHRoZSBjYWxsZXIgbXVzdAorICAgICAqIGVuc3VyZSBoYXMgZW5vdWdoIGNhcGFjaXR5LgorICAgICAqIEBwYXJhbSBwYXJzZWRJbnRzIGFycmF5IHRvIHJlY2VpdmUgcGFyc2VkIGludGVnZXJzLiAgQ2FsbGVyCisgICAgICogbXVzdCBlbnN1cmUgdGhhdCBwYXJzZWRJbnRzLmxlbmd0aCBpcyA+PSB0aGUgbnVtYmVyIG9mICcjJworICAgICAqIHNpZ25zIGluICdwYXR0ZXJuJy4KKyAgICAgKiBAcmV0dXJuIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLCBvciAtMSBpZgorICAgICAqIHRoZSBwYXJzZSBmYWlsZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZVBhdHRlcm4oU3RyaW5nIHJ1bGUsIGludCBwb3MsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4sIGludFtdIHBhcnNlZEludHMpIHsKKyAgICAgICAgLy8gVE9ETyBVcGRhdGUgdGhpcyB0byBoYW5kbGUgc3Vycm9nYXRlcworICAgICAgICBpbnRbXSBwID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGludENvdW50ID0gMDsgLy8gbnVtYmVyIG9mIGludGVnZXJzIHBhcnNlZAorICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNwYXQgPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIHN3aXRjaCAoY3BhdCkgeworICAgICAgICAgICAgY2FzZSAnICc6CisgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MrKyk7CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEZBTEwgVEhST1VHSCB0byBza2lwV2hpdGVzcGFjZQorICAgICAgICAgICAgY2FzZSAnfic6CisgICAgICAgICAgICAgICAgcG9zID0gc2tpcFdoaXRlc3BhY2UocnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyMnOgorICAgICAgICAgICAgICAgIHBbMF0gPSBwb3M7CisgICAgICAgICAgICAgICAgcGFyc2VkSW50c1tpbnRDb3VudCsrXSA9IHBhcnNlSW50ZWdlcihydWxlLCBwLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgaWYgKHBbMF0gPT0gcG9zKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5bnRheCBlcnJvcjsgZmFpbGVkIHRvIHBhcnNlIGludGVnZXIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3MgPSBwWzBdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBpZiAocG9zID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyA9IChjaGFyKSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHJ1bGUuY2hhckF0KHBvcysrKSk7CisgICAgICAgICAgICAgICAgaWYgKGMgIT0gY3BhdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBwYXR0ZXJuIHN0cmluZyB3aXRoaW4gdGhlIGdpdmVuIFJlcGxhY2VhYmxlIGFuZCBhIHBhcnNpbmcKKyAgICAgKiBwYXR0ZXJuLiAgQ2hhcmFjdGVycyBhcmUgbWF0Y2hlZCBsaXRlcmFsbHkgYW5kIGNhc2Utc2Vuc2l0aXZlbHkKKyAgICAgKiBleGNlcHQgZm9yIHRoZSBmb2xsb3dpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzOgorICAgICAqCisgICAgICogfiAgemVybyBvciBtb3JlIHVwcnZfaXNSdWxlV2hpdGVTcGFjZSBjaGFycworICAgICAqCisgICAgICogSWYgZW5kIG9mIHBhdHRlcm4gaXMgcmVhY2hlZCB3aXRoIGFsbCBtYXRjaGVzIGFsb25nIHRoZSB3YXksCisgICAgICogcG9zIGlzIGFkdmFuY2VkIHRvIHRoZSBmaXJzdCB1bnBhcnNlZCBpbmRleCBhbmQgcmV0dXJuZWQuCisgICAgICogT3RoZXJ3aXNlIC0xIGlzIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBwYXQgcGF0dGVybiB0aGF0IGNvbnRyb2xzIHBhcnNpbmcKKyAgICAgKiBAcGFyYW0gdGV4dCB0ZXh0IHRvIGJlIHBhcnNlZCwgc3RhcnRpbmcgYXQgaW5kZXgKKyAgICAgKiBAcGFyYW0gaW5kZXggb2Zmc2V0IHRvIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZQorICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgYWZ0ZXIgbGFzdCBjaGFyYWN0ZXIgdG8gcGFyc2UKKyAgICAgKiBAcmV0dXJuIGluZGV4IGFmdGVyIGxhc3QgcGFyc2VkIGNoYXJhY3Rlciwgb3IgLTEgb24gcGFyc2UgZmFpbHVyZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZVBhdHRlcm4oU3RyaW5nIHBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50IGlwYXQgPSAwOworCisgICAgICAgIC8vIGVtcHR5IHBhdHRlcm4gbWF0Y2hlcyBpbW1lZGlhdGVseQorICAgICAgICBpZiAoaXBhdCA9PSBwYXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBjcGF0ID0gVVRGMTYuY2hhckF0KHBhdCwgaXBhdCk7CisKKyAgICAgICAgd2hpbGUgKGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gdGV4dC5jaGFyMzJBdChpbmRleCk7CisKKyAgICAgICAgICAgIC8vIHBhcnNlIFxzKgorICAgICAgICAgICAgaWYgKGNwYXQgPT0gJ34nKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCsraXBhdCA9PSBwYXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsgLy8gc3VjY2VzczsgYyB1bnBhcnNlZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGZhbGwgdGhydTsgcHJvY2VzcyBjIGFnYWluIHdpdGggbmV4dCBjcGF0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwYXJzZSBsaXRlcmFsCisgICAgICAgICAgICBlbHNlIGlmIChjID09IGNwYXQpIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBuOworICAgICAgICAgICAgICAgIGlwYXQgKz0gbjsKKyAgICAgICAgICAgICAgICBpZiAoaXBhdCA9PSBwYXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OyAvLyBzdWNjZXNzOyBjIHBhcnNlZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBmYWxsIHRocnU7IGdldCBuZXh0IGNwYXQKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbWF0Y2ggZmFpbHVyZSBvZiBsaXRlcmFsCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNwYXQgPSBVVEYxNi5jaGFyQXQocGF0LCBpcGF0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAtMTsgLy8gdGV4dCBlbmRlZCBiZWZvcmUgZW5kIG9mIHBhdAorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIGludGVnZXIgYXQgcG9zLCBlaXRoZXIgb2YgdGhlIGZvcm0gXGQrIG9yIG9mIHRoZSBmb3JtCisgICAgICogMHhbMC05QS1GYS1mXSsgb3IgMFswLTddKywgdGhhdCBpcywgaW4gc3RhbmRhcmQgZGVjaW1hbCwgaGV4LAorICAgICAqIG9yIG9jdGFsIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIHRvIHBhcnNlLiAgT24gb3V0cHV0LCB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBsYXN0CisgICAgICogcGFyc2VkIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZUludGVnZXIoU3RyaW5nIHJ1bGUsIGludFtdIHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgIGludCBwID0gcG9zWzBdOworICAgICAgICBpbnQgcmFkaXggPSAxMDsKKworICAgICAgICBpZiAocnVsZS5yZWdpb25NYXRjaGVzKHRydWUsIHAsICIweCIsIDAsIDIpKSB7CisgICAgICAgICAgICBwICs9IDI7CisgICAgICAgICAgICByYWRpeCA9IDE2OworICAgICAgICB9IGVsc2UgaWYgKHAgPCBsaW1pdCAmJiBydWxlLmNoYXJBdChwKSA9PSAnMCcpIHsKKyAgICAgICAgICAgIHArKzsKKyAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgIHJhZGl4ID0gODsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChwIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBkID0gVUNoYXJhY3Rlci5kaWdpdChydWxlLmNoYXJBdChwKyspLCByYWRpeCk7CisgICAgICAgICAgICBpZiAoZCA8IDApIHsKKyAgICAgICAgICAgICAgICAtLXA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgaW50IHYgPSAodmFsdWUgKiByYWRpeCkgKyBkOworICAgICAgICAgICAgaWYgKHYgPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5wdXQgZGlnaXRzLCBhdCBzb21lIHBvaW50CisgICAgICAgICAgICAgICAgLy8gdGhlIHZhbHVlIHdpbGwgZ28gbmVnYXRpdmUsIGUuZy4sIGlmIHdlIGhhdmUgc2VlbgorICAgICAgICAgICAgICAgIC8vICIweDgwMDAwMDAiIGFscmVhZHkgYW5kIHRoZXJlIGlzIGFub3RoZXIgJzAnLCB3aGVuCisgICAgICAgICAgICAgICAgLy8gd2UgcGFyc2UgdGhlIG5leHQgMCB0aGUgdmFsdWUgd2lsbCBnbyBuZWdhdGl2ZS4KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gdjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBwb3NbMF0gPSBwOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIFVuaWNvZGUgaWRlbnRpZmllciBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYXQgdGhlIGdpdmVuCisgICAgICogcG9zaXRpb24uICBSZXR1cm4gdGhlIGlkZW50aWZpZXIsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBpZGVudGlmaWVyLgorICAgICAqIEBwYXJhbSBzdHIgdGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VQVVQgcGFyYW1ldGVyLiAgT24gSU5QVVQsIHBvc1swXSBpcyB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIgdG8gZXhhbWluZS4gIEl0IG11c3QgYmUgbGVzcyB0aGFuIHN0ci5sZW5ndGgoKSwKKyAgICAgKiBhbmQgaXQgbXVzdCBub3QgcG9pbnQgdG8gYSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4gIFRoYXQgaXMsIG11c3QKKyAgICAgKiBoYXZlIHBvc1swXSA8IHN0ci5sZW5ndGgoKSBhbmQKKyAgICAgKiAhVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoVVRGMTYuY2hhckF0KHN0ciwgcG9zWzBdKSkuICBPbgorICAgICAqIE9VVFBVVCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZSBpZGVudGlmaWVyLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHZhbGlkCisgICAgICogaWRlbnRpZmllciBhdCBwb3NbMF0uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcGFyc2VVbmljb2RlSWRlbnRpZmllcihTdHJpbmcgc3RyLCBpbnRbXSBwb3MpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHBvc1swXSA8IHN0ci5sZW5ndGgoKSk7CisgICAgICAgIC8vIGFzc2VydCghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoVVRGMTYuY2hhckF0KHN0ciwgcG9zWzBdKSkpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgcCA9IHBvc1swXTsKKyAgICAgICAgd2hpbGUgKHAgPCBzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdChzdHIsIHApOworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGNoKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjaCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgY2gpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgfQorICAgICAgICBwb3NbMF0gPSBwOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJpbSB3aGl0ZXNwYWNlIGZyb20gZW5kcyBvZiBhIFN0cmluZ0J1ZmZlci4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgdHJpbShTdHJpbmdCdWZmZXIgYikgeworICAgICAgICAvLyBUT0RPIHVwZGF0ZSB0byBoYW5kbGUgc3Vycm9nYXRlcworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPTA7IGk8Yi5sZW5ndGgoKSAmJiBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGIuY2hhckF0KGkpKTsgKytpKSB7fQorICAgICAgICBiLmRlbGV0ZSgwLCBpKTsKKyAgICAgICAgZm9yIChpPWIubGVuZ3RoKCktMTsgaT49MCAmJiBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGIuY2hhckF0KGkpKTsgLS1pKSB7fQorICAgICAgICByZXR1cm4gYi5kZWxldGUoaSsxLCBiLmxlbmd0aCgpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICBzdGF0aWMgZmluYWwgY2hhciBESUdJVFNbXSA9IHsKKyAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLAorICAgICAgICAnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLCAnRycsICdIJywgJ0knLCAnSicsCisgICAgICAgICdLJywgJ0wnLCAnTScsICdOJywgJ08nLCAnUCcsICdRJywgJ1InLCAnUycsICdUJywKKyAgICAgICAgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBudW1iZXIgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciBpbiB0aGUgcmFkaXggMTAKKyAgICAgKiBnZW5lcmF0aW5nIGF0IGxlYXN0IG9uZSBkaWdpdC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgYXBwZW5kTnVtYmVyKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBuKSB7CisgICAgICAgIHJldHVybiBhcHBlbmROdW1iZXIocmVzdWx0LCBuLCAxMCwgMSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBkaWdpdHMgb2YgYSBwb3NpdGl2ZSBpbnRlZ2VyIHRvIHRoZSBnaXZlbgorICAgICAqIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4gaW4gdGhlIGdpdmVuIHJhZGl4LiBUaGlzIGlzCisgICAgICogZG9uZSByZWN1cnNpdmVseSBzaW5jZSBpdCBpcyBlYXNpZXN0IHRvIGdlbmVyYXRlIHRoZSBsb3ctCisgICAgICogb3JkZXIgZGlnaXQgZmlyc3QsIGJ1dCBpdCBtdXN0IGJlIGFwcGVuZGVkIGxhc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVzdWx0IGlzIHRoZSA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+IHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBuIGlzIHRoZSBwb3NpdGl2ZSBpbnRlZ2VyCisgICAgICogQHBhcmFtIHJhZGl4IGlzIHRoZSByYWRpeCwgZnJvbSAyIHRvIDM2IGluY2x1c2l2ZQorICAgICAqIEBwYXJhbSBtaW5EaWdpdHMgaXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyB0byBhcHBlbmQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCByZWN1cnNpdmVBcHBlbmROdW1iZXIoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFkaXgsIGludCBtaW5EaWdpdHMpCisgICAgeworICAgICAgICBpbnQgZGlnaXQgPSBuICUgcmFkaXg7CisKKyAgICAgICAgaWYgKG4gPj0gcmFkaXggfHwgbWluRGlnaXRzID4gMSkgeworICAgICAgICAgICAgcmVjdXJzaXZlQXBwZW5kTnVtYmVyKHJlc3VsdCwgbiAvIHJhZGl4LCByYWRpeCwgbWluRGlnaXRzIC0gMSk7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1tkaWdpdF0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIG51bWJlciB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyIGluIHRoZSBnaXZlbiByYWRpeC4KKyAgICAgKiBTdGFuZGFyZCBkaWdpdHMgJzAnLSc5JyBhcmUgdXNlZCBhbmQgbGV0dGVycyAnQSctJ1onIGZvcgorICAgICAqIHJhZGljZXMgMTEgdGhyb3VnaCAzNi4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHRoZSBkaWdpdHMgb2YgdGhlIG51bWJlciBhcmUgYXBwZW5kZWQgaGVyZQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIgdG8gYmUgY29udmVydGVkIHRvIGRpZ2l0czsgbWF5IGJlIG5lZ2F0aXZlLgorICAgICAqIElmIG5lZ2F0aXZlLCBhICctJyBpcyBwcmVwZW5kZWQgdG8gdGhlIGRpZ2l0cy4KKyAgICAgKiBAcGFyYW0gcmFkaXggYSByYWRpeCBmcm9tIDIgdG8gMzYgaW5jbHVzaXZlLgorICAgICAqIEBwYXJhbSBtaW5EaWdpdHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cywgbm90IGluY2x1ZGluZworICAgICAqIGFueSAnLScsIHRvIHByb2R1Y2UuICBWYWx1ZXMgbGVzcyB0aGFuIDIgaGF2ZSBubyBlZmZlY3QuICBPbmUKKyAgICAgKiBkaWdpdCBpcyBhbHdheXMgZW1pdHRlZCByZWdhcmRsZXNzIG9mIHRoaXMgcGFyYW1ldGVyLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gcmVzdWx0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgYXBwZW5kTnVtYmVyKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhZGl4LCBpbnQgbWluRGlnaXRzKQorICAgICAgICB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAocmFkaXggPCAyIHx8IHJhZGl4ID4gMzYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcmFkaXggIiArIHJhZGl4KTsKKyAgICAgICAgfQorCisKKyAgICAgICAgaW50IGFicyA9IG47CisKKyAgICAgICAgaWYgKG4gPCAwKSB7CisgICAgICAgICAgICBhYnMgPSAtbjsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIi0iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlY3Vyc2l2ZUFwcGVuZE51bWJlcihyZXN1bHQsIGFicywgcmFkaXgsIG1pbkRpZ2l0cyk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiB1bnNpZ25lZCAzMS1iaXQgaW50ZWdlciBhdCB0aGUgZ2l2ZW4gb2Zmc2V0LiAgVXNlCisgICAgICogVUNoYXJhY3Rlci5kaWdpdCgpIHRvIHBhcnNlIGluZGl2aWR1YWwgY2hhcmFjdGVycyBpbnRvIGRpZ2l0cy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBiZSBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBlbnRyeSwgcG9zWzBdIGlzIHRoZQorICAgICAqIG9mZnNldCB3aXRoaW4gdGV4dCBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBpdCBzaG91bGQgcG9pbnQKKyAgICAgKiB0byBhIHZhbGlkIGRpZ2l0LiAgT24gZXhpdCwgcG9zWzBdIGlzIHRoZSBvZmZzZXQgYWZ0ZXIgdGhlIGxhc3QKKyAgICAgKiBwYXJzZWQgY2hhcmFjdGVyLiAgSWYgdGhlIHBhcnNlIGZhaWxlZCwgaXQgd2lsbCBiZSB1bmNoYW5nZWQgb24KKyAgICAgKiBleGl0LiAgTXVzdCBiZSA+PSAwIG9uIGVudHJ5LgorICAgICAqIEBwYXJhbSByYWRpeCB0aGUgcmFkaXggaW4gd2hpY2ggdG8gcGFyc2U7IG11c3QgYmUgPj0gMiBhbmQgPD0KKyAgICAgKiAzNi4KKyAgICAgKiBAcmV0dXJuIGEgbm9uLW5lZ2F0aXZlIHBhcnNlZCBudW1iZXIsIG9yIC0xIHVwb24gcGFyc2UgZmFpbHVyZS4KKyAgICAgKiBQYXJzZSBmYWlscyBpZiB0aGVyZSBhcmUgbm8gZGlnaXRzLCB0aGF0IGlzLCBpZiBwb3NbMF0gZG9lcyBub3QKKyAgICAgKiBwb2ludCB0byBhIHZhbGlkIGRpZ2l0IG9uIGVudHJ5LCBvciBpZiB0aGUgbnVtYmVyIHRvIGJlIHBhcnNlZAorICAgICAqIGRvZXMgbm90IGZpdCBpbnRvIGEgMzEtYml0IHVuc2lnbmVkIGludGVnZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VOdW1iZXIoU3RyaW5nIHRleHQsIGludFtdIHBvcywgaW50IHJhZGl4KSB7CisgICAgICAgIC8vIGFzc2VydChwb3NbMF0gPj0gMCk7CisgICAgICAgIC8vIGFzc2VydChyYWRpeCA+PSAyKTsKKyAgICAgICAgLy8gYXNzZXJ0KHJhZGl4IDw9IDM2KTsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBpbnQgcCA9IHBvc1swXTsKKyAgICAgICAgd2hpbGUgKHAgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQodGV4dCwgcCk7CisgICAgICAgICAgICBpbnQgZCA9IFVDaGFyYWN0ZXIuZGlnaXQoY2gsIHJhZGl4KTsKKyAgICAgICAgICAgIGlmIChkIDwgMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiA9IHJhZGl4Km4gKyBkOworICAgICAgICAgICAgLy8gQVNTVU1FIHRoYXQgd2hlbiBhIDMyLWJpdCBpbnRlZ2VyIG92ZXJmbG93cyBpdCBiZWNvbWVzCisgICAgICAgICAgICAvLyBuZWdhdGl2ZS4gIEUuZy4sIDIxNDc0ODM2NCAqIDEwICsgOCA9PiBuZWdhdGl2ZSB2YWx1ZS4KKyAgICAgICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrcDsKKyAgICAgICAgfQorICAgICAgICBpZiAocCA9PSBwb3NbMF0pIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBwb3NbMF0gPSBwOworICAgICAgICByZXR1cm4gbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIE5PVCBwcmludGFibGUgQVNDSUkuICBUaGUgdGFiLAorICAgICAqIG5ld2xpbmUgYW5kIGxpbmVmZWVkIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgdW5wcmludGFibGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVW5wcmludGFibGUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICEoYyA+PSAweDIwICYmIGMgPD0gMHg3RSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXNjYXBlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgdXNpbmcgPGJhY2tzbGFzaD51eHh4eCBub3RhdGlvbgorICAgICAqIGZvciBVKzAwMDAgdG8gVStGRkZGIGFuZCA8YmFja3NsYXNoPlV4eHh4eHh4eCBmb3IgVSsxMDAwMCBhbmQKKyAgICAgKiBhYm92ZS4gIElmIHRoZSBjaGFyYWN0ZXIgaXMgcHJpbnRhYmxlIEFTQ0lJLCB0aGVuIGRvIG5vdGhpbmcKKyAgICAgKiBhbmQgcmV0dXJuIEZBTFNFLiAgT3RoZXJ3aXNlLCBhcHBlbmQgdGhlIGVzY2FwZWQgbm90YXRpb24gYW5kCisgICAgICogcmV0dXJuIFRSVUUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBjKSB7CisgICAgICAgIGlmIChpc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgaWYgKChjICYgfjB4RkZGRikgIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1UnKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjI4KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+MjQpXSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj4yMCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjE2KV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjEyKV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj44KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj40KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJmNdKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGEgc2V0LCBpZ25vcmluZyBxdW90ZWQgdGV4dC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIHN0cmluZyAiYWJjJ2hpZGUnaCIsIHRoZSAnaCcgaW4gImhpZGUiIHdpbGwgbm90IGJlCisgICAgICogZm91bmQgYnkgYSBzZWFyY2ggZm9yICJoIi4gIFVubGlrZSBTdHJpbmcuaW5kZXhPZigpLCB0aGlzIG1ldGhvZCBzZWFyY2hlcworICAgICAqIG5vdCBmb3IgYSBzaW5nbGUgY2hhcmFjdGVyLCBidXQgZm9yIGFueSBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZworICAgICAqIDxjb2RlPnNldE9mQ2hhcnM8L2NvZGU+LgorICAgICAqIEBwYXJhbSB0ZXh0IHRleHQgdG8gYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gdGV4dC5sZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIHNldE9mQ2hhcnMgc3RyaW5nIHdpdGggb25lIG9yIG1vcmUgZGlzdGluY3QgY2hhcmFjdGVycworICAgICAqIEByZXR1cm4gT2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gPGNvZGU+c2V0T2ZDaGFyczwvY29kZT4KKyAgICAgKiBmb3VuZCwgb3IgLTEgaWYgbm90IGZvdW5kLgorICAgICAqIEBzZWUgU3RyaW5nI2luZGV4T2YKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBxdW90ZWRJbmRleE9mKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZXRPZkNoYXJzKSB7CisgICAgICAgIGZvciAoaW50IGk9c3RhcnQ7IGk8bGltaXQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBCQUNLU0xBU0gpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgIHdoaWxlICgrK2kgPCBsaW1pdAorICAgICAgICAgICAgICAgICAgICAgICAmJiB0ZXh0LmNoYXJBdChpKSAhPSBBUE9TVFJPUEhFKSB7fQorICAgICAgICAgICAgfSBlbHNlIGlmIChzZXRPZkNoYXJzLmluZGV4T2YoYykgPj0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNpbWlsYXIgdG8gU3RyaW5nQnVmZmVyLmdldENoYXJzLCB2ZXJzaW9uIDEuMy4KKyAgICAqIFNpbmNlIEpESyAxLjIgaW1wbGVtZW50cyBTdHJpbmdCdWZmZXIuZ2V0Q2hhcnMgZGlmZmVyZW50bHksIHRoaXMgbWV0aG9kCisgICAgKiBpcyBoZXJlIHRvIHByb3ZpZGUgY29uc2lzdGVudCByZXN1bHRzLgorICAgICogVG8gYmUgcmVtb3ZlZCBhZnRlciBKREsgMS4yIGNlYXNlZCB0byBiZSB0aGUgcmVmZXJlbmNlIHBsYXRmb3JtLgorICAgICogQHBhcmFtIHNyYyBzb3VyY2Ugc3RyaW5nIGJ1ZmZlcgorICAgICogQHBhcmFtIHNyY0JlZ2luIG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIHNyYyB0byByZXRyaWV2ZSBmcm9tCisgICAgKiBAcGFyYW0gc3JjRW5kIG9mZnNldCB0byB0aGUgZW5kIG9mIHRoZSBzcmMgdG8gcmV0cmlldmUgZnJvbQorICAgICogQHBhcmFtIGRzdCBjaGFyIGFycmF5IHRvIHN0b3JlIHRoZSByZXRyaWV2ZWQgY2hhcnMKKyAgICAqIEBwYXJhbSBkc3RCZWdpbiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkZXN0aW5hdGlvbiBjaGFyIGFycmF5IHRvCisgICAgKiAgICAgICAgICAgICAgICAgc3RvcmUgdGhlIHJldHJpZXZlZCBjaGFycworICAgICogQGRyYWZ0IHNpbmNlIElDVTRKIDIuMAorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGdldENoYXJzKFN0cmluZ0J1ZmZlciBzcmMsIGludCBzcmNCZWdpbiwgaW50IHNyY0VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBkc3RbXSwgaW50IGRzdEJlZ2luKQorICAgIHsKKyAgICAgICAgaWYgKHNyY0JlZ2luID09IHNyY0VuZCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNyYy5nZXRDaGFycyhzcmNCZWdpbiwgc3JjRW5kLCBkc3QsIGRzdEJlZ2luKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBjaGFyYWN0ZXIgdG8gYSBydWxlIHRoYXQgaXMgYmVpbmcgYnVpbHQgdXAuICBUbyBmbHVzaAorICAgICAqIHRoZSBxdW90ZUJ1ZiB0byBydWxlLCBtYWtlIG9uZSBmaW5hbCBjYWxsIHdpdGggaXNMaXRlcmFsID09IHRydWUuCisgICAgICogSWYgdGhlcmUgaXMgbm8gZmluYWwgY2hhcmFjdGVyLCBwYXNzIGluIChpbnQpLTEgYXMgYy4KKyAgICAgKiBAcGFyYW0gcnVsZSB0aGUgc3RyaW5nIHRvIGFwcGVuZCB0aGUgY2hhcmFjdGVyIHRvCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byBhcHBlbmQsIG9yIChpbnQpLTEgaWYgbm9uZS4KKyAgICAgKiBAcGFyYW0gaXNMaXRlcmFsIGlmIHRydWUsIHRoZW4gdGhlIGdpdmVuIGNoYXJhY3RlciBzaG91bGQgbm90IGJlCisgICAgICogcXVvdGVkIG9yIGVzY2FwZWQuICBVc3VhbGx5IHRoaXMgbWVhbnMgaXQgaXMgYSBzeW50YWN0aWMgZWxlbWVudAorICAgICAqIHN1Y2ggYXMgPiBvciAkCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIHRydWUsIHRoZW4gdW5wcmludGFibGUgY2hhcmFjdGVycworICAgICAqIHNob3VsZCBiZSBlc2NhcGVkIHVzaW5nIGVzY2FwZVVucHJpbnRhYmxlKCkuICBUaGVzZSBlc2NhcGVzIHdpbGwKKyAgICAgKiBhcHBlYXIgb3V0c2lkZSBvZiBxdW90ZXMuCisgICAgICogQHBhcmFtIHF1b3RlQnVmIGEgYnVmZmVyIHdoaWNoIGlzIHVzZWQgdG8gYnVpbGQgdXAgcXVvdGVkCisgICAgICogc3Vic3RyaW5ncy4gIFRoZSBjYWxsZXIgc2hvdWxkIGluaXRpYWxseSBzdXBwbHkgYW4gZW1wdHkgYnVmZmVyLAorICAgICAqIGFuZCB0aGVyZWFmdGVyIHNob3VsZCBub3QgbW9kaWZ5IHRoZSBidWZmZXIuICBUaGUgYnVmZmVyIHNob3VsZCBiZQorICAgICAqIGNsZWFyZWQgb3V0IGJ5LCBhdCB0aGUgZW5kLCBjYWxsaW5nIHRoaXMgbWV0aG9kIHdpdGggYSBsaXRlcmFsCisgICAgICogY2hhcmFjdGVyICh3aGljaCBtYXkgYmUgLTEpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRUb1J1bGUoU3RyaW5nQnVmZmVyIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNMaXRlcmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZikgeworICAgICAgICAvLyBJZiB3ZSBhcmUgZXNjYXBpbmcgdW5wcmludGFibGVzLCB0aGVuIGVzY2FwZSB0aGVtIG91dHNpZGUKKyAgICAgICAgLy8gcXVvdGVzLiAgXFx1IGFuZCBcXFUgYXJlIG5vdCByZWNvZ25pemVkIHdpdGhpbiBxdW90ZXMuICBUaGUgc2FtZQorICAgICAgICAvLyBsb2dpYyBhcHBsaWVzIHRvIGxpdGVyYWxzLCBidXQgbGl0ZXJhbHMgYXJlIG5ldmVyIGVzY2FwZWQuCisgICAgICAgIGlmIChpc0xpdGVyYWwgfHwKKyAgICAgICAgICAgIChlc2NhcGVVbnByaW50YWJsZSAmJiBVdGlsaXR5LmlzVW5wcmludGFibGUoYykpKSB7CisgICAgICAgICAgICBpZiAocXVvdGVCdWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgcHJlZmVyIGJhY2tzbGFzaCBBUE9TVFJPUEhFIHRvIGRvdWJsZSBBUE9TVFJPUEhFCisgICAgICAgICAgICAgICAgLy8gKG1vcmUgcmVhZGFibGUsIGxlc3Mgc2ltaWxhciB0byAiKSBzbyBpZiB0aGVyZSBhcmUKKyAgICAgICAgICAgICAgICAvLyBkb3VibGUgQVBPU1RST1BIRXMgYXQgdGhlIGVuZHMsIHdlIHB1bGwgdGhlbSBvdXRzaWRlCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHF1b3RlLgorCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBxdW90ZUJ1ZiBpcyBBUE9TVFJPUEhFCisgICAgICAgICAgICAgICAgLy8gKGRvdWJsZWQpIHRoZW4gcHVsbCBpdCBvdXQuCisgICAgICAgICAgICAgICAgd2hpbGUgKHF1b3RlQnVmLmxlbmd0aCgpID49IDIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuY2hhckF0KDApID09IEFQT1NUUk9QSEUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuY2hhckF0KDEpID09IEFQT1NUUk9QSEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQkFDS1NMQVNIKS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmRlbGV0ZSgwLCAyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxhc3QgdGhpbmcgaW4gdGhlIHF1b3RlQnVmIGlzIEFQT1NUUk9QSEUKKyAgICAgICAgICAgICAgICAvLyAoZG91YmxlZCkgdGhlbiByZW1vdmUgYW5kIGNvdW50IGl0IGFuZCBhZGQgaXQgYWZ0ZXIuCisgICAgICAgICAgICAgICAgaW50IHRyYWlsaW5nQ291bnQgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZUJ1Zi5sZW5ndGgoKSA+PSAyICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdChxdW90ZUJ1Zi5sZW5ndGgoKS0yKSA9PSBBUE9TVFJPUEhFICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdChxdW90ZUJ1Zi5sZW5ndGgoKS0xKSA9PSBBUE9TVFJPUEhFKSB7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLnNldExlbmd0aChxdW90ZUJ1Zi5sZW5ndGgoKS0yKTsKKyAgICAgICAgICAgICAgICAgICAgKyt0cmFpbGluZ0NvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocXVvdGVCdWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEFQT1NUUk9QSEUpOworICAgICAgICAgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgICAgICAgICAgaWYoSUNVRGVidWcuaXNKREsxNE9ySGlnaGVyKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKHF1b3RlQnVmKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChxdW90ZUJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChBUE9TVFJPUEhFKTsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAodHJhaWxpbmdDb3VudC0tID4gMCkgeworICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChCQUNLU0xBU0gpLmFwcGVuZChBUE9TVFJPUEhFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYyAhPSAtMSkgeworICAgICAgICAgICAgICAgIC8qIFNpbmNlIHNwYWNlcyBhcmUgaWdub3JlZCBkdXJpbmcgcGFyc2luZywgdGhleSBhcmUKKyAgICAgICAgICAgICAgICAgKiBlbWl0dGVkIG9ubHkgZm9yIHJlYWRhYmlsaXR5LiAgV2UgZW1pdCBvbmUgaGVyZQorICAgICAgICAgICAgICAgICAqIG9ubHkgaWYgdGhlcmUgaXNuJ3QgYWxyZWFkeSBvbmUgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgKiBydWxlLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmIChjID09ICcgJykgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gcnVsZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDAgJiYgcnVsZS5jaGFyQXQobGVuLTEpICE9ICcgJykgeworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVzY2FwZVVucHJpbnRhYmxlIHx8ICFVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKHJ1bGUsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChydWxlLCBjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBFc2NhcGUgJyBhbmQgJ1wnIGFuZCBkb24ndCBiZWdpbiBhIHF1b3RlIGp1c3QgZm9yIHRoZW0KKyAgICAgICAgZWxzZSBpZiAocXVvdGVCdWYubGVuZ3RoKCkgPT0gMCAmJgorICAgICAgICAgICAgICAgICAoYyA9PSBBUE9TVFJPUEhFIHx8IGMgPT0gQkFDS1NMQVNIKSkgeworICAgICAgICAgICAgcnVsZS5hcHBlbmQoQkFDS1NMQVNIKS5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTcGVjaWFscyAocHJpbnRhYmxlIGFzY2lpIHRoYXQgaXNuJ3QgWzAtOWEtekEtWl0pIGFuZAorICAgICAgICAvLyB3aGl0ZXNwYWNlIG5lZWQgcXVvdGluZy4gIEFsc28gYXBwZW5kIHN0dWZmIHRvIHF1b3RlcyBpZiB3ZSBhcmUKKyAgICAgICAgLy8gYnVpbGRpbmcgdXAgYSBxdW90ZWQgc3Vic3RyaW5nIGFscmVhZHkuCisgICAgICAgIGVsc2UgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID4gMCB8fAorICAgICAgICAgICAgICAgICAoYyA+PSAweDAwMjEgJiYgYyA8PSAweDAwN0UgJiYKKyAgICAgICAgICAgICAgICAgICEoKGMgPj0gMHgwMDMwLyonMCcqLyAmJiBjIDw9IDB4MDAzOS8qJzknKi8pIHx8CisgICAgICAgICAgICAgICAgICAgIChjID49IDB4MDA0MS8qJ0EnKi8gJiYgYyA8PSAweDAwNUEvKidaJyovKSB8fAorICAgICAgICAgICAgICAgICAgICAoYyA+PSAweDAwNjEvKidhJyovICYmIGMgPD0gMHgwMDdBLyoneicqLykpKSB8fAorICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHF1b3RlQnVmLCBjKTsKKyAgICAgICAgICAgIC8vIERvdWJsZSAnIHdpdGhpbiBhIHF1b3RlCisgICAgICAgICAgICBpZiAoYyA9PSBBUE9TVFJPUEhFKSB7CisgICAgICAgICAgICAgICAgcXVvdGVCdWYuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgYXBwZW5kCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJ1bGUsIGMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiBzdHJpbmcgdG8gdGhlIHJ1bGUuICBDYWxscyB0aGUgc2luZ2xlLWNoYXJhY3RlcgorICAgICAqIHZlcnNpb24gb2YgYXBwZW5kVG9SdWxlIGZvciBlYWNoIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgLy8gT2theSB0byBwcm9jZXNzIGluIDE2LWJpdCBjb2RlIHVuaXRzIGhlcmUKKyAgICAgICAgICAgIGFwcGVuZFRvUnVsZShydWxlLCB0ZXh0LmNoYXJBdChpKSwgaXNMaXRlcmFsLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBtYXRjaGVyIHJlZmVyZW5jZSwgd2hpY2ggbWF5IGJlIG51bGwsIGFwcGVuZCBpdHMKKyAgICAgKiBwYXR0ZXJuIGFzIGEgbGl0ZXJhbCB0byB0aGUgZ2l2ZW4gcnVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbWF0Y2hlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgaWYgKG1hdGNoZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgYXBwZW5kVG9SdWxlKHJ1bGUsIG1hdGNoZXIudG9QYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgMiB1bnNpZ25lZCBpbnRlZ2VycworICAgICAqIEBwYXJhbSBzb3VyY2UgMzIgYml0IHVuc2lnbmVkIGludGVnZXIKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IDMyIGJpdCB1bnNpZ25lZCBpbnRlZ2VyCisgICAgICogQHJldHVybiAwIGlmIGVxdWFscywgMSBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCBhbmQgLTEKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvbXBhcmVVbnNpZ25lZChpbnQgc291cmNlLCBpbnQgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgc291cmNlICs9IE1BR0lDX1VOU0lHTkVEOworICAgICAgICB0YXJnZXQgKz0gTUFHSUNfVU5TSUdORUQ7CisgICAgICAgIGlmIChzb3VyY2UgPCB0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoc291cmNlID4gdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBoaWdoZXN0IGJpdCBpbiBhIHBvc2l0aXZlIGludGVnZXIuIFRoaXMgaXMgZG9uZQorICAgICAqIGJ5IGRvaW5nIGEgYmluYXJ5IHNlYXJjaCB0aHJvdWdoIHRoZSBiaXRzLgorICAgICAqCisgICAgICogQHBhcmFtIG4gaXMgdGhlIGludGVnZXIKKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGJpdCBudW1iZXIgb2YgdGhlIGhpZ2hlc3QgYml0LCB3aXRoIDAgYmVpbmcKKyAgICAgKiB0aGUgbG93IG9yZGVyIGJpdCwgb3IgLTEgaWYgPGNvZGU+bjwvY29kZT4gaXMgbm90IHBvc2l0aXZlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGhpZ2hCaXQoaW50IG4pCisgICAgeworICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBieXRlIGJpdCA9IDA7CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxNikgeworICAgICAgICAgICAgbiA+Pj0gMTY7CisgICAgICAgICAgICBiaXQgKz0gMTY7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDgpIHsKKyAgICAgICAgICAgIG4gPj49IDg7CisgICAgICAgICAgICBiaXQgKz0gODsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgNCkgeworICAgICAgICAgICAgbiA+Pj0gNDsKKyAgICAgICAgICAgIGJpdCArPSA0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAyKSB7CisgICAgICAgICAgICBuID4+PSAyOworICAgICAgICAgICAgYml0ICs9IDI7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDEpIHsKKyAgICAgICAgICAgIG4gPj49IDE7CisgICAgICAgICAgICBiaXQgKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBiaXQ7CisgICAgfQorICAgIC8qKgorICAgICAqIFV0aWxpdHkgbWV0aG9kIHRvIHRha2UgYSBpbnRbXSBjb250YWluaW5nIGNvZGVwb2ludHMgYW5kIHJldHVybgorICAgICAqIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHdpdGggY29kZSB1bml0cy4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWVPZihpbnRbXXNvdXJjZSl7CisgICAgLy8gVE9ETzogSW52ZXN0aWdhdGUgd2h5IHRoaXMgbWV0aG9kIGlzIG5vdCBvbiBVVEYxNiBjbGFzcworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzb3VyY2UubGVuZ3RoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c291cmNlLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsc291cmNlW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdG8gZHVwbGljYXRlIGEgc3RyaW5nIGNvdW50IHRpbWVzCisgICAgICogQHBhcmFtIHMKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBlYXQoU3RyaW5nIHMsIGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPD0gMCkgcmV0dXJuICIiOworICAgICAgICBpZiAoY291bnQgPT0gMSkgcmV0dXJuIHM7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgCisgICAgLy8gISEhIDEuMyBjb21wYXRpYmlsaXkKKyAgICBwdWJsaWMgc3RhdGljIGludCBpbmRleE9mKFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmluZGV4T2Yocyk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkuaW5kZXhPZihzKTsKKy8vI2VuZGlmCisgICAgfQorICAgIAorICAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIHJldHVybiBidWYubGFzdEluZGV4T2Yocyk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkubGFzdEluZGV4T2Yocyk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICAvLyAhISEgMS4zIGNvbXBhdGliaWxpeQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMsIGludCBpKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmluZGV4T2YocywgaSk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkuaW5kZXhPZihzLCBpKTsKKy8vI2VuZGlmCisgICAgfQorICAgIAorICAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgcywgaW50IGkpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIHJldHVybiBidWYubGFzdEluZGV4T2YocywgaSk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkubGFzdEluZGV4T2YocywgaSk7CisvLyNlbmRpZgorICAgIH0KKyAgIAorICAgLy8gISEhIDEuMyBjb21wYXRpYmlsaXkKKyAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNyYywgU3RyaW5nIHRhcmdldCwgU3RyaW5nIHJlcGxhY2VtZW50KSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgIHJldHVybiBzcmMucmVwbGFjZUFsbCh0YXJnZXQsIHJlcGxhY2VtZW50KTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgaW50IGkgPSBzcmMuaW5kZXhPZih0YXJnZXQpOworLy8jIyAgICAgICBpZiAoaSA9PSAtMSkgeworLy8jIyAgICAgICAgICAgcmV0dXJuIHNyYzsKKy8vIyMgICAgICAgfQorLy8jIyAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8jIyAgICAgICBpbnQgbiA9IDA7CisvLyMjICAgICAgIGRvIHsKKy8vIyMgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3JjLnN1YnN0cmluZyhuLCBpKSk7CisvLyMjICAgICAgICAgICBidWYuYXBwZW5kKHJlcGxhY2VtZW50KTsKKy8vIyMgICAgICAgICAgIG4gPSBpICsgdGFyZ2V0Lmxlbmd0aCgpOworLy8jIyAgICAgICAgICAgaSA9IHNyYy5pbmRleE9mKHRhcmdldCwgbik7CisvLyMjICAgICAgIH0gd2hpbGUgKGkgIT0gLTEpOworLy8jIyAgICAgICBpZiAobiA8IHNyYy5sZW5ndGgoKSkgeworLy8jIyAgICAgICAgICAgYnVmLmFwcGVuZChzcmMuc3Vic3RyaW5nKG4pKTsKKy8vIyMgICAgICAgfQorLy8jIyAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisvLyNlbmRpZgorICAgfQorfQorLy8vQ0xPVkVSOk9OCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDA4MGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YQpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisvKioKKyAqIEBhdXRob3IgUmFtCisgKi8KKy8vVGhpcyBjbGFzcyBjb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBzbyB0ZXN0aW5nIG5vdCBuZWVkZWQKKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBjbGFzcyBVdGlsaXR5RXh0ZW5zaW9ucyB7CisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiBzdHJpbmcgdG8gdGhlIHJ1bGUuICBDYWxscyB0aGUgc2luZ2xlLWNoYXJhY3RlcgorICAgICAqIHZlcnNpb24gb2YgYXBwZW5kVG9SdWxlIGZvciBlYWNoIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgLy8gT2theSB0byBwcm9jZXNzIGluIDE2LWJpdCBjb2RlIHVuaXRzIGhlcmUKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIHRleHQuY2hhckF0KGkpLCBpc0xpdGVyYWwsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbWF0Y2hlciByZWZlcmVuY2UsIHdoaWNoIG1heSBiZSBudWxsLCBhcHBlbmQgaXRzCisgICAgICogcGF0dGVybiBhcyBhIGxpdGVyYWwgdG8gdGhlIGdpdmVuIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGlmIChtYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFwcGVuZFRvUnVsZShydWxlLCBtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBGb3IgZGVidWdnaW5nIHB1cnBvc2VzOyBmb3JtYXQgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGZvcm0KKyAgICAgKiBhYWF7YmJifGNjY3xkZGR9ZWVlLCB3aGVyZSB0aGUge30gaW5kaWNhdGUgdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBhbmQgbGltaXQsIGFuZCB0aGUgfHwgaW5kaWNhdGUgdGhlIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXRJbnB1dChSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFwcGVuZFRvID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3JtYXRJbnB1dChhcHBlbmRUbywgaW5wdXQsIHBvcyk7CisgICAgICAgIHJldHVybiBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGFwcGVuZFRvLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXM7IGZvcm1hdCB0aGUgZ2l2ZW4gdGV4dCBpbiB0aGUgZm9ybQorICAgICAqIGFhYXtiYmJ8Y2NjfGRkZH1lZWUsIHdoZXJlIHRoZSB7fSBpbmRpY2F0ZSB0aGUgY29udGV4dCBzdGFydAorICAgICAqIGFuZCBsaW1pdCwgYW5kIHRoZSB8fCBpbmRpY2F0ZSB0aGUgc3RhcnQgYW5kIGxpbWl0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGZvcm1hdElucHV0KFN0cmluZ0J1ZmZlciBhcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKDAgPD0gcG9zLmNvbnRleHRTdGFydCAmJgorICAgICAgICAgICAgcG9zLmNvbnRleHRTdGFydCA8PSBwb3Muc3RhcnQgJiYKKyAgICAgICAgICAgIHBvcy5zdGFydCA8PSBwb3MubGltaXQgJiYKKyAgICAgICAgICAgIHBvcy5saW1pdCA8PSBwb3MuY29udGV4dExpbWl0ICYmCisgICAgICAgICAgICBwb3MuY29udGV4dExpbWl0IDw9IGlucHV0Lmxlbmd0aCgpKSB7CisKKyAgICAgICAgICAgIFN0cmluZyAgYiwgYywgZDsKKyAgICAgICAgICAgIC8vYSA9IGlucHV0LnN1YnN0cmluZygwLCBwb3MuY29udGV4dFN0YXJ0KTsKKyAgICAgICAgICAgIGIgPSBpbnB1dC5zdWJzdHJpbmcocG9zLmNvbnRleHRTdGFydCwgcG9zLnN0YXJ0KTsKKyAgICAgICAgICAgIGMgPSBpbnB1dC5zdWJzdHJpbmcocG9zLnN0YXJ0LCBwb3MubGltaXQpOworICAgICAgICAgICAgZCA9IGlucHV0LnN1YnN0cmluZyhwb3MubGltaXQsIHBvcy5jb250ZXh0TGltaXQpOworICAgICAgICAgICAgLy9lID0gaW5wdXQuc3Vic3RyaW5nKHBvcy5jb250ZXh0TGltaXQsIGlucHV0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGFwcGVuZFRvLi8vYXBwZW5kKGEpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgneycpLmFwcGVuZChiKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3wnKS5hcHBlbmQoYykuYXBwZW5kKCd8JykuYXBwZW5kKGQpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfScpCisgICAgICAgICAgICAgICAgLy8uYXBwZW5kKGUpCisgICAgICAgICAgICAgICAgOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXBwZW5kVG8uYXBwZW5kKCJJTlZBTElEIFBvc2l0aW9uIHtjcz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuY29udGV4dFN0YXJ0ICsgIiwgcz0iICsgcG9zLnN0YXJ0ICsgIiwgbD0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MubGltaXQgKyAiLCBjbD0iICsgcG9zLmNvbnRleHRMaW1pdCArICJ9IG9uICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvcm1hdElucHV0KFJlcGxhY2VhYmxlIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZm9ybWF0SW5wdXQoKFJlcGxhY2VhYmxlU3RyaW5nKSBpbnB1dCwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgZm9ybWF0SW5wdXQoU3RyaW5nQnVmZmVyIGFwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZm9ybWF0SW5wdXQoYXBwZW5kVG8sIChSZXBsYWNlYWJsZVN0cmluZykgaW5wdXQsIHBvcyk7CisgICAgfQorCit9CisvL0NMT1ZFUjpPTgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVJbmZvRXh0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lSW5mb0V4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NzU2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lSW5mb0V4dC5qYXZhCkBAIC0wLDAgKzEsNDM4IEBACisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vID4+PiBUaGlzIGRhdGEgd2FzIGdlbmVyYXRlZCBieSBab25lTWV0YUNMRFIKKy8vID4+PiBhcyBhIHRlbXBvcmFyeSBtZWFzdXJlIGZvciB0aGUgMy40IHJlbGVhc2UuCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworcHVibGljIGZpbmFsIGNsYXNzIFpvbmVJbmZvRXh0IHsKKworICAgIC8vIHRhYmxlIGlzIHNvcnRlZCBieSBjYW5vbmljYWwgdGltZSB6b25lIGlkCisgICAgLy8gYWxpYXNlcyBhcmUgbm90IHNvcnRlZAorCisgICAgLy8gWzBdIGNhbm9uaWNhbCB0aW1lIHpvbmUgaWQKKyAgICAvLyBbMV0gY291bnRyeSBjb2RlLCBvciBudWxsIGlmIG5vIGNvdW50cnkKKyAgICAvLyBbMl0gIlQiIGlmIGlzU2luZ2xlLCBudWxsIGlmIG5vdAorICAgIC8vIFtuLi4uXSBhbGlhc2VzIGZvciBjYW5vbmljYWwgdGltZSB6b25lIGlkCisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBDTERSX0lORk8gPSB7CisgICAgICAgIHsgIkFmcmljYS9BYmlkamFuIiwgIkNJIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9BY2NyYSIsICJHSCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQWRkaXNfQWJhYmEiLCAiRVQiLCAiVCIsICJFQVQiIH0sCisgICAgICAgIHsgIkFmcmljYS9BbGdpZXJzIiwgIkRaIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Bc21lcmEiLCAiRVIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0JhbWFrbyIsICJNTCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQmFuZ3VpIiwgIkNGIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CYW5qdWwiLCAiR00iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0Jpc3NhdSIsICJHVyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQmxhbnR5cmUiLCAiTVciLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0JyYXp6YXZpbGxlIiwgIkNHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CdWp1bWJ1cmEiLCAiQkkiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0NhaXJvIiwgIkVHIiwgIlQiLCAiRWd5cHQiLCAiQVJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQ2FzYWJsYW5jYSIsICJNQSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQ2V1dGEiLCAiRVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9Db25ha3J5IiwgIkdOIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9EYWthciIsICJTTiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsICJUWiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRGppYm91dGkiLCAiREoiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0RvdWFsYSIsICJDTSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRWxfQWFpdW4iLCAiRUgiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0ZyZWV0b3duIiwgIlNMIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9HYWJvcm9uZSIsICJCVyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvSGFyYXJlIiwgIlpXIiwgIlQiLCAiQ0FUIiB9LAorICAgICAgICB7ICJBZnJpY2EvSm9oYW5uZXNidXJnIiwgIlpBIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LYW1wYWxhIiwgIlVHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LaGFydG91bSIsICJTRCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvS2lnYWxpIiwgIlJXIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LaW5zaGFzYSIsICJDRCIsIG51bGwgfSwKKyAgICAgICAgeyAiQWZyaWNhL0xhZ29zIiwgIk5HIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9MaWJyZXZpbGxlIiwgIkdBIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Mb21lIiwgIlRHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9MdWFuZGEiLCAiQU8iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0x1YnVtYmFzaGkiLCAiQ0QiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9MdXNha2EiLCAiWk0iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01hbGFibyIsICJHUSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTWFwdXRvIiwgIk1aIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9NYXNlcnUiLCAiTFMiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01iYWJhbmUiLCAiU1oiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01vZ2FkaXNodSIsICJTTyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTW9ucm92aWEiLCAiTFIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05haXJvYmkiLCAiS0UiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05kamFtZW5hIiwgIlREIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9OaWFtZXkiLCAiTkUiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05vdWFrY2hvdHQiLCAiTVIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL091YWdhZG91Z291IiwgIkJGIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Qb3J0by1Ob3ZvIiwgIkJKIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9TYW9fVG9tZSIsICJTVCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvVGltYnVrdHUiLCAiTUwiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9Ucmlwb2xpIiwgIkxZIiwgIlQiLCAiTGlieWEiIH0sCisgICAgICAgIHsgIkFmcmljYS9UdW5pcyIsICJUTiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvV2luZGhvZWsiLCAiTkEiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BZGFrIiwgIlVTIiwgbnVsbCwgIkFtZXJpY2EvQXRrYSIsICJVUy9BbGV1dGlhbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BbmNob3JhZ2UiLCAiVVMiLCBudWxsLCAiU3lzdGVtVi9ZU1Q5WURUIiwgIlVTL0FsYXNrYSIsICJBU1QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQW5ndWlsbGEiLCAiQUkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BbnRpZ3VhIiwgIkFHIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJhZ3VhaW5hIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyZ2VudGluYS9Db21vZFJpdmFkYXZpYSIsICJBUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1Jpb19HYWxsZWdvcyIsICJBUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1R1Y3VtYW4iLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWEiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJ1YmEiLCAiQVciLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Bc3VuY2lvbiIsICJQWSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JhaGlhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0JhcmJhZG9zIiwgIkJCIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQmVsZW0iLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQmVsaXplIiwgIkJaIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQm9hX1Zpc3RhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0JvZ290YSIsICJDTyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JvaXNlIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiQUdUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhbWJyaWRnZV9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhbmN1biIsICJNWCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYXJhY2FzIiwgIlZFIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2F0YW1hcmNhIiwgIkFSIiwgbnVsbCwgIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYXllbm5lIiwgIkdGIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2F5bWFuIiwgIktZIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2hpY2FnbyIsICJVUyIsIG51bGwsICJDU1Q2Q0RUIiwgIlN5c3RlbVYvQ1NUNkNEVCIsICJVUy9DZW50cmFsIiwgIkNTVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DaGlodWFodWEiLCAiTVgiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ29yZG9iYSIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhIiwgIkFtZXJpY2EvUm9zYXJpbyIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Db3N0YV9SaWNhIiwgIkNSIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ3VpYWJhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0N1cmFjYW8iLCAiQU4iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9EYW5tYXJrc2hhdm4iLCAiR0wiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGF3c29uIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0Rhd3Nvbl9DcmVlayIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9EZW52ZXIiLCAiVVMiLCBudWxsLCAiTVNUN01EVCIsICJTeXN0ZW1WL01TVDdNRFQiLCAiVVMvTW91bnRhaW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGV0cm9pdCIsICJVUyIsIG51bGwsICJVUy9NaWNoaWdhbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Eb21pbmljYSIsICJETSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0VkbW9udG9uIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9Nb3VudGFpbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9FaXJ1bmVwZSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9FbF9TYWx2YWRvciIsICJTViIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0ZvcnRhbGV6YSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HbGFjZV9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR29kdGhhYiIsICJHTCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0dvb3NlX0JheSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HcmFuZF9UdXJrIiwgIlRDIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3JlbmFkYSIsICJHRCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0d1YWRlbG91cGUiLCAiR1AiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdWF0ZW1hbGEiLCAiR1QiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdWF5YXF1aWwiLCAiRUMiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdXlhbmEiLCAiR1kiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9IYWxpZmF4IiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9BdGxhbnRpYyIsICJTeXN0ZW1WL0FTVDRBRFQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSGF2YW5hIiwgIkNVIiwgIlQiLCAiQ3ViYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9IZXJtb3NpbGxvIiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmEvS25veCIsICJVUyIsIG51bGwsICJBbWVyaWNhL0tub3hfSU4iLCAiVVMvSW5kaWFuYS1TdGFya2UiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSW5kaWFuYS9NYXJlbmdvIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmEvVmV2YXkiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwgIlVTIiwgbnVsbCwgIkFtZXJpY2EvRm9ydF9XYXluZSIsICJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIiwgIkVTVCIsICJTeXN0ZW1WL0VTVDUiLCAiVVMvRWFzdC1JbmRpYW5hIiwgIklFVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9JbnV2aWsiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSXFhbHVpdCIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KYW1haWNhIiwgIkpNIiwgIlQiLCAiSmFtYWljYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KdWp1eSIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KdW5lYXUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9MYV9QYXoiLCAiQk8iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9MaW1hIiwgIlBFIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiVVMiLCBudWxsLCAiUFNUOFBEVCIsICJTeXN0ZW1WL1BTVDhQRFQiLCAiVVMvUGFjaWZpYyIsICJVUy9QYWNpZmljLU5ldyIsICJQU1QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTG91aXN2aWxsZSIsICJVUyIsIG51bGwsICJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWFjZWlvIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01hbmFndWEiLCAiTkkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NYW5hdXMiLCAiQlIiLCBudWxsLCAiQnJhemlsL1dlc3QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWFydGluaXF1ZSIsICJNUSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01hemF0bGFuIiwgIk1YIiwgbnVsbCwgIk1leGljby9CYWphU3VyIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01lbmRvemEiLCAiQVIiLCBudWxsLCAiQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NZW5vbWluZWUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWVyaWRhIiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01leGljb19DaXR5IiwgIk1YIiwgbnVsbCwgIk1leGljby9HZW5lcmFsIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01pcXVlbG9uIiwgIlBNIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTW9udGVycmV5IiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01vbnRldmlkZW8iLCAiVVkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Nb250cmVhbCIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Nb250c2VycmF0IiwgIk1TIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTmFzc2F1IiwgIkJTIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTmV3X1lvcmsiLCAiVVMiLCBudWxsLCAiRVNUNUVEVCIsICJTeXN0ZW1WL0VTVDVFRFQiLCAiVVMvRWFzdGVybiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9OaXBpZ29uIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL05vbWUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTm9yb25oYSIsICJCUiIsIG51bGwsICJCcmF6aWwvRGVOb3JvbmhhIiB9LAorICAgICAgICB7ICJBbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFuYW1hIiwgIlBBIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFuZ25pcnR1bmciLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFyYW1hcmlibyIsICJTUiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Bob2VuaXgiLCAiVVMiLCBudWxsLCAiTVNUIiwgIlN5c3RlbVYvTVNUNyIsICJVUy9Bcml6b25hIiwgIlBOVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Qb3J0LWF1LVByaW5jZSIsICJIVCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLCAiVFQiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Qb3J0b19WZWxobyIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9QdWVydG9fUmljbyIsICJQUiIsICJUIiwgIlN5c3RlbVYvQVNUNCIsICJQUlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUmFpbnlfUml2ZXIiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUmFua2luX0lubGV0IiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1JlY2lmZSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9SZWdpbmEiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwgIkNhbmFkYS9TYXNrYXRjaGV3YW4iLCAiU3lzdGVtVi9DU1Q2IiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Jpb19CcmFuY28iLCAiQlIiLCBudWxsLCAiQW1lcmljYS9Qb3J0b19BY3JlIiwgIkJyYXppbC9BY3JlIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1NhbnRpYWdvIiwgIkNMIiwgIlQiLCAiQ2hpbGUvQ29udGluZW50YWwiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU2FudG9fRG9taW5nbyIsICJETyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Nhb19QYXVsbyIsICJCUiIsIG51bGwsICJCcmF6aWwvRWFzdCIsICJCRVQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwgIkdMIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1NoaXByb2NrIiwgIlVTIiwgbnVsbCwgIk5hdmFqbyIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TdF9Kb2hucyIsICJDQSIsIG51bGwsICJDYW5hZGEvTmV3Zm91bmRsYW5kIiwgIkNOVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TdF9LaXR0cyIsICJLTiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N0X0x1Y2lhIiwgIkxDIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfVGhvbWFzIiwgIlZJIiwgIlQiLCAiQW1lcmljYS9WaXJnaW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfVmluY2VudCIsICJWQyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N3aWZ0X0N1cnJlbnQiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVGVndWNpZ2FscGEiLCAiSE4iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaHVsZSIsICJHTCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaHVuZGVyX0JheSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaWp1YW5hIiwgIk1YIiwgbnVsbCwgIkFtZXJpY2EvRW5zZW5hZGEiLCAiTWV4aWNvL0JhamFOb3J0ZSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Ub3JvbnRvIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9FYXN0ZXJuIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1RvcnRvbGEiLCAiVkciLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9WYW5jb3V2ZXIiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL1BhY2lmaWMiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvV2hpdGVob3JzZSIsICJDQSIsIG51bGwsICJDYW5hZGEvWXVrb24iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvV2lubmlwZWciLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL0NlbnRyYWwiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvWWFrdXRhdCIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9ZZWxsb3drbmlmZSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9DYXNleSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9EYXZpcyIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9NYXdzb24iLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvTWNNdXJkbyIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9QYWxtZXIiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvUm90aGVyYSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL1N5b3dhIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL1Zvc3RvayIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXJjdGljL0xvbmd5ZWFyYnllbiIsICJTSiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9BZGVuIiwgIllFIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQWxtYXR5IiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FtbWFuIiwgIkpPIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQW5hZHlyIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FxdGF1IiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FxdG9iZSIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9Bc2hnYWJhdCIsICJUTSIsICJUIiwgIkFzaWEvQXNoa2hhYmFkIiB9LAorICAgICAgICB7ICJBc2lhL0JhZ2hkYWQiLCAiSVEiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CYWhyYWluIiwgIkJIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQmFrdSIsICJBWiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0Jhbmdrb2siLCAiVEgiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CZWlydXQiLCAiTEIiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CaXNoa2VrIiwgIktHIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQnJ1bmVpIiwgIkJOIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQ2FsY3V0dGEiLCAiSU4iLCAiVCIsICJJU1QiIH0sCisgICAgICAgIHsgIkFzaWEvQ2hvaWJhbHNhbiIsICJNTiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9DaG9uZ3FpbmciLCAiQ04iLCBudWxsLCAiQXNpYS9DaHVuZ2tpbmciIH0sCisgICAgICAgIHsgIkFzaWEvQ29sb21ibyIsICJMSyIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0RhbWFzY3VzIiwgIlNZIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvRGhha2EiLCAiQkQiLCAiVCIsICJBc2lhL0RhY2NhIiwgIkJTVCIgfSwKKyAgICAgICAgeyAiQXNpYS9EaWxpIiwgIlRMIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvRHViYWkiLCAiQUUiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9EdXNoYW5iZSIsICJUSiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0dhemEiLCAiUFMiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9IYXJiaW4iLCAiQ04iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSG9uZ19Lb25nIiwgIkhLIiwgIlQiLCAiSG9uZ2tvbmciIH0sCisgICAgICAgIHsgIkFzaWEvSG92ZCIsICJNTiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9Jcmt1dHNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0pha2FydGEiLCAiSUQiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSmF5YXB1cmEiLCAiSUQiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSmVydXNhbGVtIiwgIklMIiwgIlQiLCAiQXNpYS9UZWxfQXZpdiIsICJJc3JhZWwiIH0sCisgICAgICAgIHsgIkFzaWEvS2FidWwiLCAiQUYiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9LYW1jaGF0a2EiLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvS2FyYWNoaSIsICJQSyIsICJUIiwgIlBMVCIgfSwKKyAgICAgICAgeyAiQXNpYS9LYXNoZ2FyIiwgIkNOIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0thdG1hbmR1IiwgIk5QIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvS3Jhc25veWFyc2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvS3VhbGFfTHVtcHVyIiwgIk1ZIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvS3VjaGluZyIsICJNWSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9LdXdhaXQiLCAiS1ciLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9NYWNhdSIsICJNTyIsICJUIiwgIkFzaWEvTWFjYW8iIH0sCisgICAgICAgIHsgIkFzaWEvTWFnYWRhbiIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9NYWthc3NhciIsICJJRCIsIG51bGwsICJBc2lhL1VqdW5nX1BhbmRhbmciIH0sCisgICAgICAgIHsgIkFzaWEvTWFuaWxhIiwgIlBIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvTXVzY2F0IiwgIk9NIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvTmljb3NpYSIsICJDWSIsICJUIiwgIkV1cm9wZS9OaWNvc2lhIiB9LAorICAgICAgICB7ICJBc2lhL05vdm9zaWJpcnNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL09tc2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvT3JhbCIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9QaG5vbV9QZW5oIiwgIktIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUG9udGlhbmFrIiwgIklEIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1B5b25neWFuZyIsICJLUCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1FhdGFyIiwgIlFBIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUXl6eWxvcmRhIiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1Jhbmdvb24iLCAiTU0iLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9SaXlhZGgiLCAiU0EiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9SaXlhZGg4NyIsICJTQSIsICJUIiwgIk1pZGVhc3QvUml5YWRoODciIH0sCisgICAgICAgIHsgIkFzaWEvUml5YWRoODgiLCAiU0EiLCAiVCIsICJNaWRlYXN0L1JpeWFkaDg4IiB9LAorICAgICAgICB7ICJBc2lhL1JpeWFkaDg5IiwgIlNBIiwgIlQiLCAiTWlkZWFzdC9SaXlhZGg4OSIgfSwKKyAgICAgICAgeyAiQXNpYS9TYWlnb24iLCAiVk4iLCAiVCIsICJWU1QiIH0sCisgICAgICAgIHsgIkFzaWEvU2FraGFsaW4iLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvU2FtYXJrYW5kIiwgIlVaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1Nlb3VsIiwgIktSIiwgIlQiLCAiUk9LIiB9LAorICAgICAgICB7ICJBc2lhL1NoYW5naGFpIiwgIkNOIiwgIlQiLCAiUFJDIiwgIkNUVCIgfSwKKyAgICAgICAgeyAiQXNpYS9TaW5nYXBvcmUiLCAiU0ciLCAiVCIsICJTaW5nYXBvcmUiIH0sCisgICAgICAgIHsgIkFzaWEvVGFpcGVpIiwgIlRXIiwgIlQiLCAiUk9DIiB9LAorICAgICAgICB7ICJBc2lhL1Rhc2hrZW50IiwgIlVaIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvVGJpbGlzaSIsICJHRSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1RlaHJhbiIsICJJUiIsICJUIiwgIklyYW4iIH0sCisgICAgICAgIHsgIkFzaWEvVGhpbXBodSIsICJCVCIsICJUIiwgIkFzaWEvVGhpbWJ1IiB9LAorICAgICAgICB7ICJBc2lhL1Rva3lvIiwgIkpQIiwgIlQiLCAiSmFwYW4iLCAiSlNUIiB9LAorICAgICAgICB7ICJBc2lhL1VsYWFuYmFhdGFyIiwgIk1OIiwgbnVsbCwgIkFzaWEvVWxhbl9CYXRvciIgfSwKKyAgICAgICAgeyAiQXNpYS9VcnVtcWkiLCAiQ04iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvVmllbnRpYW5lIiwgIkxBIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvVmxhZGl2b3N0b2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvWWFrdXRzayIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9ZZWthdGVyaW5idXJnIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1llcmV2YW4iLCAiQU0iLCAiVCIsICJORVQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL0F6b3JlcyIsICJQVCIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvQmVybXVkYSIsICJCTSIsICJUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9DYW5hcnkiLCAiRVMiLCBudWxsIH0sCisgICAgICAgIHsgIkF0bGFudGljL0NhcGVfVmVyZGUiLCAiQ1YiLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvRmFlcm9lIiwgIkZPIiwgIlQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL0phbl9NYXllbiIsICJTSiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvTWFkZWlyYSIsICJQVCIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvUmV5a2phdmlrIiwgIklTIiwgIlQiLCAiSWNlbGFuZCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvU291dGhfR2VvcmdpYSIsICJHUyIsICJUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9TdF9IZWxlbmEiLCAiU0giLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvU3RhbmxleSIsICJGSyIsICJUIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvQWRlbGFpZGUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1NvdXRoIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvQnJpc2JhbmUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1F1ZWVuc2xhbmQiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbCIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvWWFuY293aW5uYSIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0RhcndpbiIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvTm9ydGgiLCAiQUNUIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvSG9iYXJ0IiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9UYXNtYW5pYSIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0xpbmRlbWFuIiwgIkFVIiwgbnVsbCB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvTG9yZF9Ib3dlIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9MSEkiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9NZWxib3VybmUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1ZpY3RvcmlhIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvUGVydGgiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1dlc3QiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9TeWRuZXkiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL0FDVCIsICJBdXN0cmFsaWEvQ2FuYmVycmEiLCAiQXVzdHJhbGlhL05TVyIsICJBRVQiIH0sCisgICAgICAgIHsgIkV0Yy9HTVQiLCBudWxsLCBudWxsLCAiRXRjL0dNVCswIiwgIkV0Yy9HTVQtMCIsICJFdGMvR01UMCIsICJFdGMvR3JlZW53aWNoIiwgIkV0Yy9VQ1QiLCAiRXRjL1VUQyIsICJFdGMvVW5pdmVyc2FsIiwgIkV0Yy9adWx1IiwgIkdNVCIsICJHTVQrMCIsICJHTVQtMCIsICJHTVQwIiwgIkdyZWVud2ljaCIsICJVQ1QiLCAiVVRDIiwgIlVuaXZlcnNhbCIsICJadWx1IiB9LAorICAgICAgICB7ICJFdGMvR01UKzEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTAiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCszIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrNSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs2IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzciLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrOCIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs5IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTAiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTMiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC0zIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtNSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC02IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTciLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtOCIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC05IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvQW1zdGVyZGFtIiwgIk5MIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9BbmRvcnJhIiwgIkFEIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9BdGhlbnMiLCAiR1IiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0JlbGZhc3QiLCAiR0IiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9CZWxncmFkZSIsICJDUyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQmVybGluIiwgIkRFIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CcmF0aXNsYXZhIiwgIlNLIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CcnVzc2VscyIsICJCRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQnVjaGFyZXN0IiwgIlJPIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CdWRhcGVzdCIsICJIVSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQ2hpc2luYXUiLCAiTUQiLCAiVCIsICJFdXJvcGUvVGlyYXNwb2wiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Db3BlbmhhZ2VuIiwgIkRLIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9EdWJsaW4iLCAiSUUiLCAiVCIsICJFaXJlIiB9LAorICAgICAgICB7ICJFdXJvcGUvR2licmFsdGFyIiwgIkdJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9IZWxzaW5raSIsICJGSSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvSXN0YW5idWwiLCAiVFIiLCAiVCIsICJBc2lhL0lzdGFuYnVsIiwgIlR1cmtleSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0thbGluaW5ncmFkIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvS2lldiIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL0xpc2JvbiIsICJQVCIsICJUIiwgIlBvcnR1Z2FsIiB9LAorICAgICAgICB7ICJFdXJvcGUvTGp1YmxqYW5hIiwgIlNJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Mb25kb24iLCAiR0IiLCAiVCIsICJHQiIsICJHQi1FaXJlIiB9LAorICAgICAgICB7ICJFdXJvcGUvTHV4ZW1ib3VyZyIsICJMVSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWFkcmlkIiwgIkVTIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9NYWx0YSIsICJNVCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWFyaWVoYW1uIiwgIkFYIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9NaW5zayIsICJCWSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTW9uYWNvIiwgIk1DIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Nb3Njb3ciLCAiUlUiLCBudWxsLCAiVy1TVSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL09zbG8iLCAiTk8iLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1BhcmlzIiwgIkZSIiwgIlQiLCAiRUNUIiB9LAorICAgICAgICB7ICJFdXJvcGUvUHJhZ3VlIiwgIkNaIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9SaWdhIiwgIkxWIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Sb21lIiwgIklUIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYW1hcmEiLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYW5fTWFyaW5vIiwgIlNNIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYXJhamV2byIsICJCQSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU2ltZmVyb3BvbCIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1Nrb3BqZSIsICJNSyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU29maWEiLCAiQkciLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1N0b2NraG9sbSIsICJTRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVGFsbGlubiIsICJFRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVGlyYW5lIiwgIkFMIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Vemhnb3JvZCIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1ZhZHV6IiwgIkxJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9WYXRpY2FuIiwgIlZBIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9WaWVubmEiLCAiQVQiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1ZpbG5pdXMiLCAiTFQiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1dhcnNhdyIsICJQTCIsICJUIiwgIlBvbGFuZCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1phZ3JlYiIsICJIUiIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvWmFwb3Jvemh5ZSIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1p1cmljaCIsICJDSCIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vQW50YW5hbmFyaXZvIiwgIk1HIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9DaGFnb3MiLCAiSU8iLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0NocmlzdG1hcyIsICJDWCIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vQ29jb3MiLCAiQ0MiLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0NvbW9ybyIsICJLTSIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vS2VyZ3VlbGVuIiwgIlRGIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYWhlIiwgIlNDIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYWxkaXZlcyIsICJNViIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vTWF1cml0aXVzIiwgIk1VIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYXlvdHRlIiwgIllUIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9SZXVuaW9uIiwgIlJFIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvQXBpYSIsICJXUyIsICJUIiwgIk1JVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9BdWNrbGFuZCIsICJOWiIsICJUIiwgIk5aIiwgIk5TVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9DaGF0aGFtIiwgIk5aIiwgbnVsbCwgIk5aLUNIQVQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRWFzdGVyIiwgIkNMIiwgbnVsbCwgIkNoaWxlL0Vhc3RlcklzbGFuZCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9FZmF0ZSIsICJWVSIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0VuZGVyYnVyeSIsICJLSSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9GYWthb2ZvIiwgIlRLIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRmlqaSIsICJGSiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0Z1bmFmdXRpIiwgIlRWIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvR2FsYXBhZ29zIiwgIkVDIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL0dhbWJpZXIiLCAiUEYiLCBudWxsLCAiU3lzdGVtVi9ZU1Q5IiB9LAorICAgICAgICB7ICJQYWNpZmljL0d1YWRhbGNhbmFsIiwgIlNCIiwgIlQiLCAiU1NUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0d1YW0iLCAiR1UiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Ib25vbHVsdSIsICJVUyIsIG51bGwsICJIU1QiLCAiU3lzdGVtVi9IU1QxMCIsICJVUy9IYXdhaWkiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvSm9obnN0b24iLCAiVU0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvS2lyaXRpbWF0aSIsICJLSSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Lb3NyYWUiLCAiRk0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvS3dhamFsZWluIiwgIk1IIiwgbnVsbCwgIkt3YWphbGVpbiIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9NYWp1cm8iLCAiTUgiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTWFycXVlc2FzIiwgIlBGIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL01pZHdheSIsICJVTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9OYXVydSIsICJOUiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL05pdWUiLCAiTlUiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Ob3Jmb2xrIiwgIk5GIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTm91bWVhIiwgIk5DIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvUGFnb19QYWdvIiwgIkFTIiwgIlQiLCAiUGFjaWZpYy9TYW1vYSIsICJVUy9TYW1vYSIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9QYWxhdSIsICJQVyIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1BpdGNhaXJuIiwgIlBOIiwgIlQiLCAiU3lzdGVtVi9QU1Q4IiB9LAorICAgICAgICB7ICJQYWNpZmljL1BvbmFwZSIsICJGTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Qb3J0X01vcmVzYnkiLCAiUEciLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9SYXJvdG9uZ2EiLCAiQ0siLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9TYWlwYW4iLCAiTVAiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9UYWhpdGkiLCAiUEYiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9UYXJhd2EiLCAiS0kiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVG9uZ2F0YXB1IiwgIlRPIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVHJ1ayIsICJGTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9XYWtlIiwgIlVNIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL1dhbGxpcyIsICJXRiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1lhcCIsICJGTSIsIG51bGwgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvWm9uZU1ldGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVNZXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM4NTAxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVNZXRhLmphdmEKQEAgLTAsMCArMSw2MDYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IFNlcHRlbWJlciA0IDIwMDMKKyogU2luY2U6IElDVSAyLjgKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyBjbGFzcywgbm90IHRvIGJlIGluc3RhbnRpYXRlZCwgaW1wbGVtZW50cyB0aGUgbWV0YS1kYXRhCisgKiBtaXNzaW5nIGZyb20gdGhlIHVuZGVybHlpbmcgY29yZSBKREsgaW1wbGVtZW50YXRpb24gb2YgdGltZSB6b25lcy4KKyAqIFRoZXJlIGFyZSB0d28gbWlzc2luZyBmZWF0dXJlczogT2J0YWluaW5nIGEgbGlzdCBvZiBhdmFpbGFibGUgem9uZXMKKyAqIGZvciBhIGdpdmVuIGNvdW50cnkgKGFzIGRlZmluZWQgYnkgdGhlIE9sc29uIGRhdGFiYXNlKSwgYW5kCisgKiBvYnRhaW5pbmcgYSBsaXN0IG9mIGVxdWl2YWxlbnQgem9uZXMgZm9yIGEgZ2l2ZW4gem9uZSAoYXMgZGVmaW5lZAorICogYnkgT2xzb24gbGlua3MpLgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIGRhdGEgY2xhc3MsIFpvbmVNZXRhRGF0YSwgd2hpY2ggaXMgY3JlYXRlZCBieSB0aGUKKyAqIHRvb2wgdHoyaWN1LgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBab25lTWV0YSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+VGltZVpvbmUuZ2V0VGltZVpvbmUoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBjb3VudHJ5IGEgdHdvLWxldHRlciBJU08gMzE2NiBjb3VudHJ5IGNvZGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogdG8gcmV0dXJuIHpvbmVzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGNvdW50cnkKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBjb3VudHJ5LiAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybiBhIHplcm8tbGVuZ3RoIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICBpZighZ2V0T2xzb25NZXRhKCkpeworICAgICAgICAgICAgcmV0dXJuIEVNUFRZOworICAgICAgICB9CisgICAgICAgIHRyeXsKKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVnaW9ucyA9IHRvcC5nZXQoa1JFR0lPTlMpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSByZWdpb25zLmdldChjb3VudHJ5KTsKKwkgICAgICAgIGludFtdIHZlY3RvciA9IHRlbXAuZ2V0SW50VmVjdG9yKCk7CisJICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoInZlY3Rvci5sZW5ndGg+MCIsIHZlY3Rvci5sZW5ndGg+MCk7CisJICAgICAgICBTdHJpbmdbXSByZXQgPSBuZXcgU3RyaW5nW3ZlY3Rvci5sZW5ndGhdOworCSAgICAgICAgZm9yIChpbnQgaT0wOyBpPHZlY3Rvci5sZW5ndGg7ICsraSkgeworCSAgICAgICAgCWlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgidmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCIsIAorCSAgICAgICAgCQkJdmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCk7CisJICAgICAgICAgICAgcmV0W2ldID0gbmFtZXMuZ2V0U3RyaW5nKHZlY3RvcltpXSk7CisJICAgICAgICB9CisJICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgCS8vdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEVNUFRZOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIGlmKCFnZXRPbHNvbk1ldGEoKSl7CisgICAgICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBuYW1lcyA9IHRvcC5nZXQoa05BTUVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmV0dXJuIG5hbWVzLmdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgb2Zmc2V0KXsKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPE9MU09OX1pPTkVfQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHVuaXN0cjsKKyAgICAgICAgICAgIGlmICgodW5pc3RyPWdldElEKGkpKSE9bnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgVkVSWSBpbmVmZmljaWVudC4KKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodW5pc3RyKTsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IGJhY2sgdGhlIElEIHdlIHdhbnRlZCAoaWYgdGhlIElEIGlzCisgICAgICAgICAgICAgICAgLy8gaW52YWxpZCB3ZSBnZXQgYmFjayBHTVQpLgorICAgICAgICAgICAgICAgIGlmICh6ICE9IG51bGwgJiYgei5nZXRJRCgpLmVxdWFscyh1bmlzdHIpICYmCisgICAgICAgICAgICAgICAgICAgIHouZ2V0UmF3T2Zmc2V0KCkgPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHZlY3Rvci5hZGQodW5pc3RyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoIXZlY3Rvci5pc0VtcHR5KCkpeworICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbdmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXZlY3Rvci50b0FycmF5KHN0cmluZ3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldElEKGludCBpKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKyAgICAgICAgICAgIHJldHVybiBuYW1lcy5nZXRTdHJpbmcoaSk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBiZWhhdmUgaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcywgdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogMC4gIFRoaXMgbWVhbnMgZWl0aGVyIHRoZSBnaXZlbiBJRCBpcyBub3QgYSB2YWxpZCB6b25lLCBvciBpdAorICAgICAqIGlzIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAcGFyYW0gaWQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHpvbmVzIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cCBjb250YWluaW5nCisgICAgICogJ2lkJywgb3IgemVybyBpZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBpbnQgY291bnRFcXVpdmFsZW50SURzKFN0cmluZyBpZCkgeworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IG9wZW5PbHNvblJlc291cmNlKGlkKTsKKyAgICAgICAgaW50IHNpemUgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICBpZiAoc2l6ZSA9PSA0IHx8IHNpemUgPT0gNikgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcj1yZXMuZ2V0KHNpemUtMSk7CisgICAgICAgICAgICAvL3Jlc3VsdCA9IHVyZXNfZ2V0U2l6ZSgmcik7IC8vIGRvZXNuJ3Qgd29yaworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICByZXR1cm4gdi5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBJRCBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdCBpbmNsdWRlcyB0aGUgZ2l2ZW4KKyAgICAgKiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzIHRoYXQgYmVoYXZlCisgICAgICogaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5UaGUgZ2l2ZW4gaW5kZXggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4ubi0xLCB3aGVyZSBuIGlzIHRoZQorICAgICAqIHZhbHVlIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+LiAgRm9yCisgICAgICogc29tZSB2YWx1ZSBvZiAnaW5kZXgnLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBlcXVhbCB0byB0aGUKKyAgICAgKiBnaXZlbiBpZC4gIElmIHRoZSBnaXZlbiBpZCBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gdGltZSB6b25lLCBvcgorICAgICAqIGlmICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlLCB0aGVuIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpZCBhIHN5c3RlbSB0aW1lIHpvbmUgSUQKKyAgICAgKiBAcGFyYW0gaW5kZXggYSB2YWx1ZSBmcm9tIDAgdG8gbi0xLCB3aGVyZSBuIGlzIHRoZSB2YWx1ZQorICAgICAqIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgSUQgb2YgdGhlIGluZGV4LXRoIHpvbmUgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwCisgICAgICogY29udGFpbmluZyAnaWQnLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ2lkJyBpcyBub3QgYSB2YWxpZAorICAgICAqIHN5c3RlbSBJRCBvciAnaW5kZXgnIGlzIG91dCBvZiByYW5nZQorICAgICAqIEBzZWUgI2NvdW50RXF1aXZhbGVudElEcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZyBnZXRFcXVpdmFsZW50SUQoU3RyaW5nIGlkLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD0iIjsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gb3Blbk9sc29uUmVzb3VyY2UoaWQpOworICAgICAgICBpbnQgem9uZSA9IC0xOworICAgICAgICBpbnQgc2l6ZSA9IHJlcy5nZXRTaXplKCk7CisgICAgICAgIGlmIChzaXplID09IDQgfHwgc2l6ZSA9PSA2KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gcmVzLmdldChzaXplLTEpOworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHNpemUgJiYgZ2V0T2xzb25NZXRhKCkpIHsKKyAgICAgICAgICAgICAgICB6b25lID0gdltpbmRleF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHpvbmUgPj0gMCkgeworICAgICAgICAJSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhcmVzID0gdG9wLmdldChrTkFNRVMpOyAvLyBkZXJlZmVyZW5jZSBab25lcyBzZWN0aW9uCisgICAgICAgICAgICByZXN1bHQgPSBhcmVzLmdldFN0cmluZyh6b25lKTsKKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoZSBlcXVpdmFsZW5jeSBtYXAuCisgICAgICoKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGNyZWF0ZUVxdWl2TWFwKCkgeworICAgICAgICBFUVVJVl9NQVAgPSBuZXcgVHJlZU1hcCgpOworCisgICAgICAgIC8vIHRyeSBsZWF2aW5nIGFsbCBpZHMgYXMgdmFsaWQKKy8vICAgICAgICAgU2V0IHZhbGlkID0gZ2V0VmFsaWRJRHMoKTsKKworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsgLy8gcmV1c2UgdGhpcyBiZWxvdworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxab25lTWV0YURhdGEuRVFVSVYubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIHogPSBab25lTWV0YURhdGEuRVFVSVZbaV07CisgICAgICAgICAgICBsaXN0LmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8ei5sZW5ndGg7ICsraikgeworLy8gICAgICAgICAgICAgICAgICBpZiAodmFsaWQuY29udGFpbnMoeltqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQoeltqXSk7CisvLyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaXN0LnNpemUoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBhID0gKFN0cmluZ1tdKSBsaXN0LnRvQXJyYXkoRU1QVFkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxhLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIEVRVUlWX01BUC5wdXQoYVtqXSwgYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gZ2V0Q2Fub25pY2FsSW5mbyhTdHJpbmcgaWQpIHsKKyAgICAgICAgaWYgKGNhbm9uaWNhbE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFpvbmVJbmZvRXh0LkNMRFJfSU5GTy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNsaXN0ID0gWm9uZUluZm9FeHQuQ0xEUl9JTkZPW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyBjID0gY2xpc3RbMF07CisgICAgICAgICAgICAgICAgbS5wdXQoYywgY2xpc3QpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAzOyBqIDwgY2xpc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgbS5wdXQoY2xpc3Rbal0sIGNsaXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFpvbmVNZXRhLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgY2Fub25pY2FsTWFwID0gbTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAoU3RyaW5nW10pY2Fub25pY2FsTWFwLmdldChpZCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIE1hcCBjYW5vbmljYWxNYXAgPSBudWxsOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjYW5vbmljYWwgaWQgZm9yIHRoaXMgdHppZCwgd2hpY2ggbWlnaHQgYmUgdGhlIGlkIGl0c2VsZi4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBjYW5vbmljYWwgaWQgZm9yIGl0LCByZXR1cm4gdGhlIHBhc3NlZC1pbiBpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRDYW5vbmljYWxJRChTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGluZm9bMF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR6aWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjYW5vbmljYWwgY291bnRyeSBjb2RlIGZvciB0aGlzIHR6aWQuICBJZiB3ZSBoYXZlIG5vbmUsIG9yIGlmIHRoZSB0aW1lIHpvbmUKKyAgICAgKiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgY291bnRyeSwgcmV0dXJuIG51bGwuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q2Fub25pY2FsQ291bnRyeShTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGluZm9bMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjb3VudHJ5IGNvZGUgaWYgdGhpcyBpcyBhICdzaW5nbGUnIHRpbWUgem9uZSB0aGF0IGNhbiBmYWxsYmFjayB0byBqdXN0CisgICAgICogdGhlIGNvdW50cnksIG90aGVyd2lzZSByZXR1cm4gbnVsbC4gIChOb3RlLCBvbmUgbXVzdCBhbHNvIGNoZWNrIHRoZSBsb2NhbGUgZGF0YQorICAgICAqIHRvIHNlZSB0aGF0IHRoZXJlIGlzIGEgbG9jYWxpemF0aW9uIGZvciB0aGUgY291bnRyeSBpbiBvcmRlciB0byBpbXBsZW1lbnQKKyAgICAgKiB0ciMzNSBhcHBlbmRpeCBKIHN0ZXAgNS4pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U2luZ2xlQ291bnRyeShTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCAmJiBpbmZvWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmZvWzFdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBmYWxsYmFja3MgZm9yIGdlbmVyaWMgdGltZSAocnVsZXMgRS4uIEcpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGlzcGxheUZhbGxiYWNrKFN0cmluZyB0emlkLCBTdHJpbmcgY2l0eSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nW10gaW5mbyA9IGdldENhbm9uaWNhbEluZm8odHppZCk7CisgICAgICAgIGlmIChpbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBlcnJvcgorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnlfY29kZSA9IGluZm9bMV07CisgICAgICAgIGlmIChjb3VudHJ5X2NvZGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGVycm9yISAgIAorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBudWxsOworICAgICAgICBpZiAoY291bnRyeV9jb2RlICE9IG51bGwpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gCisgICAgICAgICAgICAgICAgKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICAgICAgaWYgKHJiLmdldExvYWRpbmdTdGF0dXMoKSAhPSByYi5GUk9NX1JPT1QgJiYgcmIuZ2V0TG9hZGluZ1N0YXR1cygpICE9IHJiLkZST01fREVGQVVMVCkgeworICAgICAgICAgICAgICAgIGNvdW50cnkgPSBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCJ4eF8iICsgY291bnRyeV9jb2RlLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvdW50cnkgPT0gbnVsbCB8fCBjb3VudHJ5Lmxlbmd0aCgpID09IDApIGNvdW50cnkgPSBjb3VudHJ5X2NvZGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFRoaXMgaXMgbm90IGJlaGF2aW9yIHNwZWNpZmllZCBpbiB0cjM1LCBidXQgYmVoYXZpb3IgYWRkZWQgYnkgTWFyay4gIAorICAgICAgICAvLyBUUjM1IHNheXMgdG8gZGlzcGxheSB0aGUgY291bnRyeSBfb25seV8gaWYgdGhlcmUgaXMgYSBsb2NhbGl6YXRpb24uCisgICAgICAgIGlmIChpbmZvWzJdICE9IG51bGwpIHsgLy8gc2luZ2xlIGNvdW50cnkKKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5UmVnaW9uKGNvdW50cnksIGxvY2FsZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2l0eSA9PSBudWxsKSB7CisgICAgICAgICAgICBjaXR5ID0gdHppZC5zdWJzdHJpbmcodHppZC5sYXN0SW5kZXhPZignLycpKzEpLnJlcGxhY2UoJ18nLCcgJyk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZmxiUGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgRkFMTEJBQ0tfRk9STUFUKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KGZsYlBhdCk7CisKKyAgICAgICAgcmV0dXJuIG1mLmZvcm1hdChuZXcgT2JqZWN0W10geyBjaXR5LCBjb3VudHJ5IH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpc3BsYXlSZWdpb24oU3RyaW5nIGNpdHlPckNvdW50cnksIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyByZWdQYXQgPSBnZXRUWkxvY2FsaXphdGlvbkluZm8obG9jYWxlLCBSRUdJT05fRk9STUFUKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHJlZ1BhdCk7CisgICAgICAgIHJldHVybiBtZi5mb3JtYXQobmV3IE9iamVjdFtdIHsgY2l0eU9yQ291bnRyeSB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBkaXNwbGF5R01UKGxvbmcgdmFsdWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyBtc2dwYXQgPSBnZXRUWkxvY2FsaXphdGlvbkluZm8obG9jYWxlLCBHTVQpOworICAgICAgICBTdHJpbmcgZHRlcGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgSE9VUik7CisgICAgICAgIAorICAgICAgICBpbnQgbiA9IGR0ZXBhdC5pbmRleE9mKCc7Jyk7CisgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAtIHZhbHVlOworICAgICAgICAgICAgICAgIGR0ZXBhdCA9IGR0ZXBhdC5zdWJzdHJpbmcobisxKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZHRlcGF0ID0gZHRlcGF0LnN1YnN0cmluZygwLCBuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGxvbmcgbXBoID0gMzYwMDAwMDsKKyAgICAgICAgZmluYWwgbG9uZyBtcG0gPSA2MDAwMDsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGR0ZXBhdCwgbG9jYWxlKTsKKyAgICAgICAgc2RmLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIFN0cmluZyByZXMgPSBzZGYuZm9ybWF0KG5ldyBMb25nKHZhbHVlKSk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChtc2dwYXQpOworICAgICAgICByZXMgPSBtZi5mb3JtYXQobmV3IE9iamVjdFtdIHsgcmVzIH0pOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nCisgICAgICAgIEhPVVIgPSAiaG91ckZvcm1hdCIsCisgICAgICAgIEdNVCA9ICJnbXRGb3JtYXQiLAorICAgICAgICBSRUdJT05fRk9STUFUID0gInJlZ2lvbkZvcm1hdCIsCisgICAgICAgIEZBTExCQUNLX0ZPUk1BVCA9ICJmYWxsYmFja0Zvcm1hdCIsCisgICAgICAgIFpPTkVfU1RSSU5HUyA9ICJ6b25lU3RyaW5ncyIsCisgICAgICAgIEZPUldBUkRfU0xBU0ggPSAiLyI7CisgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgaW5kZXgnZCB0eiBkYXR1bSBmb3IgdGhpcyBsb2NhbGUuICBJbmRleCBtdXN0IGJlIG9uZSBvZiB0aGUgCisgICAgICogdmFsdWVzIFBSRUZJWCwgSE9VUiwgR01ULCBSRUdJT05fRk9STUFULCBGQUxMQkFDS19GT1JNQVQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRUWkxvY2FsaXphdGlvbkluZm8oVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBmb3JtYXQpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShsb2NhbGUpOworICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhaT05FX1NUUklOR1MrRk9SV0FSRF9TTEFTSCtmb3JtYXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBnZXRWYWxpZElEcygpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IGxpc3Qgb2YgdGltZSB6b25lcyB0aGF0IGFyZSB2YWxpZCwgYWNjb3JkaW5nCisgICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IHVuZGVybHlpbmcgY29yZSBKREsuICBXZSBoYXZlIHRvIGRvIHRoaXMKKyAgICAgICAgLy8gYXQgcnVudGltZSBzaW5jZSB3ZSBkb24ndCBrbm93IHdoYXQgd2UncmUgcnVubmluZyBvbi4KKyAgICAgICAgU2V0IHZhbGlkID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgdmFsaWQuYWRkQWxsKEFycmF5cy5hc0xpc3QoamF2YS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpKSk7CisgICAgICAgIHJldHVybiB2YWxpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBzdHJpbmcgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRU1QVFkgPSBuZXcgU3RyaW5nWzBdOworCisKKworICAgIC8qKgorICAgICAqIEdpdmVuIGFuIElELCBvcGVuIHRoZSBhcHByb3ByaWF0ZSByZXNvdXJjZSBmb3IgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBEZXJlZmVyZW5jZSBhbGlhc2VzIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBAcGFyYW0gaWQgem9uZSBpZAorICAgICAqIEBwYXJhbSByZXMgcmVzb3VyY2UsIHdoaWNoIG11c3QgYmUgcmVhZHkgZm9yIHVzZSAoaW5pdGlhbGl6ZWQgYnV0IG5vdCBvcGVuKQorICAgICAqIEByZXR1cm4gdG9wLWxldmVsIHJlc291cmNlIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgb3Blbk9sc29uUmVzb3VyY2UoU3RyaW5nIGlkKQorICAgIHsKKyAgICAgICAgaWYoIWdldE9sc29uTWV0YSgpKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBnZXRab25lQnlOYW1lKHRvcCwgaWQpOworICAgICAgICAvLyBEZXJlZmVyZW5jZSBpZiB0aGlzIGlzIGFuIGFsaWFzLiAgRG9jcyBzYXkgcmVzdWx0IHNob3VsZCBiZSAxCisgICAgICAgIC8vIGJ1dCBpdCBpcyAwIGluIDIuOCAoPykuCisgICAgICAgICBpZiAocmVzLmdldFNpemUoKSA8PSAxICYmIGdldE9sc29uTWV0YSh0b3ApKSB7CisgICAgICAgICAgICBpbnQgZGVyZWYgPSByZXMuZ2V0SW50KCkgKyAwOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYXJlcyA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmVzID0gYXJlcy5nZXQoZGVyZWYpOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIHNwZWNpZmljIHpvbmUgYnkgbmFtZS4gIFJlcGxhY2VzIHRoZSBnZXRCeUtleSBjYWxsLiAKKyAgICAgKiBAcGFyYW0gdG9wIFRvcCB0aW1lem9uZSByZXNvdXJjZQorICAgICAqIEBwYXJhbSBpZCBUaW1lIHpvbmUgSUQKKyAgICAgKiBAcmV0dXJuIHRoZSB6b25lJ3MgYnVuZGxlIGlmIGZvdW5kLCBvciB1bmRlZmluZWQgaWYgZXJyb3IuICBSZXVzZXMgb2xkYnVuZGxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGdldFpvbmVCeU5hbWUoSUNVUmVzb3VyY2VCdW5kbGUgdG9wLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gbG9hZCB0aGUgUnVsZXMgb2JqZWN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRtcCA9IHRvcC5nZXQoa05BTUVTKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIHN0cmluZworICAgICAgICBpbnQgaWR4ID0gZmluZEluU3RyaW5nQXJyYXkodG1wLCBpZCk7CisgICAgICAgIAorICAgICAgICBpZigoaWR4ID09IC0xKSkgeworICAgICAgICAgICAgLy8gbm90IGZvdW5kIAorICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihrTkFNRVMsIHRtcC5yZXNQYXRoLCBpZCk7CisgICAgICAgICAgICAvL3VyZXNfY2xvc2Uob2xkYnVuZGxlKTsKKyAgICAgICAgICAgIC8vb2xkYnVuZGxlID0gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRtcCA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZ2V0IFpvbmVzIG9iamVjdCBmcm9tIHRvcAorICAgICAgICAgICAgdG1wID0gdG1wLmdldChpZHgpOyAvLyBnZXQgbnRoIFpvbmUgb2JqZWN0CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRtcDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJblN0cmluZ0FycmF5KElDVVJlc291cmNlQnVuZGxlIGFycmF5LCBTdHJpbmcgaWQpeworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBpbnQgbGltaXQgPSBhcnJheS5nZXRTaXplKCk7CisgICAgICAgIGludCBtaWQ7CisgICAgICAgIFN0cmluZyB1ID0gbnVsbDsKKyAgICAgICAgaW50IGxhc3RNaWQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgaWYoKGxpbWl0IDwgMSkpIHsgCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKGludCkoKHN0YXJ0ICsgbGltaXQpIC8gMik7CisgICAgICAgICAgICBpZiAobGFzdE1pZCA9PSBtaWQpIHsgICAvKiBIYXZlIHdlIG1vdmVkPyAqLworICAgICAgICAgICAgICAgIGJyZWFrOyAgLyogV2UgaGF2ZW4ndCBtb3ZlZCwgYW5kIGl0IHdhc24ndCBmb3VuZC4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RNaWQgPSBtaWQ7CisgICAgICAgICAgICB1ID0gYXJyYXkuZ2V0U3RyaW5nKG1pZCk7CisgICAgICAgICAgICBpZih1PT1udWxsKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCByID0gaWQuY29tcGFyZVRvKHUpOworICAgICAgICAgICAgaWYocj09MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYocjwwKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtaT05FSU5GTyA9ICJ6b25laW5mbyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtSRUdJT05TICA9ICJSZWdpb25zIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1pPTkVTICAgID0gIlpvbmVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1JVTEVTICAgID0gIlJ1bGVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga05BTUVTICAgID0gIk5hbWVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0RFRkFVTFQgID0gIkRlZmF1bHQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrR01UX0lEICAgPSAiR01UIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0NVU1RPTV9JRD0gIkN1c3RvbSI7ICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgem9uZUJ1bmRsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgamF2YS51dGlsLkVudW1lcmF0aW9uIGlkRW51bSAgPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIFNvZnRDYWNoZSB6b25lQ2FjaGUgPSBuZXcgU29mdENhY2hlKCk7CisgICAgLyoqCisgICAgICogVGhlIE9sc29uIGRhdGEgaXMgc3RvcmVkIHRoZSAiem9uZWluZm8iIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiBTdWItcmVzb3VyY2VzIGFyZSBvcmdhbml6ZWQgaW50byB0aHJlZSByYW5nZXMgb2YgZGF0YTogWm9uZXMsIGZpbmFsCisgICAgICogcnVsZXMsIGFuZCBjb3VudHJ5IHRhYmxlcy4gIFRoZXJlIGlzIGFsc28gYSBtZXRhLWRhdGEgcmVzb3VyY2UKKyAgICAgKiB3aGljaCBoYXMgMyBpbnRlZ2VyczogVGhlIG51bWJlciBvZiB6b25lcywgcnVsZXMsIGFuZCBjb3VudHJpZXMsCisgICAgICogcmVzcGVjdGl2ZWx5LiAgVGhlIGNvdW50cnkgY291bnQgaW5jbHVkZXMgdGhlIG5vbi1jb3VudHJ5ICdEZWZhdWx0Jy4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IE9MU09OX1pPTkVfU1RBUlQgPSAtMTsgLy8gc3RhcnRpbmcgaW5kZXggb2Ygem9uZXMKKyAgICBzdGF0aWMgaW50IE9MU09OX1pPTkVfQ09VTlQgPSAwOyAgLy8gY291bnQgb2Ygem9uZXMKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgcG9pbnRlciB0byBhbiBvcGVuICJ6b25laW5mbyIgcmVzb3VyY2UsIGxvYWQgdXAgdGhlIE9sc29uCisgICAgICogbWV0YS1kYXRhLiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZ2V0T2xzb25NZXRhKElDVVJlc291cmNlQnVuZGxlIHRvcCkgeworICAgICAgICBpZiAoT0xTT05fWk9ORV9TVEFSVCA8IDApIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IHRvcC5nZXQoa1pPTkVTKTsKKyAgICAgICAgICAgIE9MU09OX1pPTkVfQ09VTlQgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICAgICAgT0xTT05fWk9ORV9TVEFSVCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPTFNPTl9aT05FX1NUQVJUID49IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWQgdXAgdGhlIE9sc29uIG1ldGEtZGF0YS4gUmV0dXJuIHRydWUgaWYgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGdldE9sc29uTWV0YSgpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIGlmKE9MU09OX1pPTkVfU1RBUlQgPCAwKSB7CisgICAgICAgICAgICBnZXRPbHNvbk1ldGEodG9wKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKE9MU09OX1pPTkVfU1RBUlQgPj0gMCk7CisgICAgfQorICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgZ2l2ZW4gbmFtZSBpbiBvdXIgc3lzdGVtIHpvbmUgdGFibGUuICBJZiBmb3VuZCwKKyAgICAgKiBpbnN0YW50aWF0ZSBhIG5ldyB6b25lIG9mIHRoYXQgbmFtZSBhbmQgcmV0dXJuIGl0LiAgSWYgbm90CisgICAgICogZm91bmQsIHJldHVybiAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgZ2V0U3lzdGVtVGltZVpvbmUoU3RyaW5nIGlkKSB7CisgICAgICAgIFRpbWVab25lIHogPSAoVGltZVpvbmUpem9uZUNhY2hlLmdldChpZCk7CisgICAgICAgIGlmICh6ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInpvbmVpbmZvIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBvcGVuT2xzb25SZXNvdXJjZShpZCk7CisgICAgICAgICAgICAgICAgeiA9IG5ldyBPbHNvblRpbWVab25lKHRvcCwgcmVzKTsKKyAgICAgICAgICAgICAgICB6LnNldElEKGlkKTsKKyAgICAgICAgICAgICAgICB6b25lQ2FjaGUucHV0KGlkLCB6KTsKKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpei5jbG9uZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldEdNVCgpeworICAgICAgICBUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsIGtHTVRfSUQpOworICAgICAgICB6LnNldElEKGtHTVRfSUQpOworICAgICAgICByZXR1cm4gejsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGN1c3RvbSB0aW1lIHpvbmUgaWRlbnRpZmllciBhbmQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyB6b25lLgorICAgICAqIEBwYXJhbSBpZCBhIHN0cmluZyBvZiB0aGUgZm9ybSBHTVRbKy1daGg6bW0sIEdNVFsrLV1oaG1tLCBvcgorICAgICAqIEdNVFsrLV1oaC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBTaW1wbGVUaW1lWm9uZSB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgYW5kCisgICAgICogbm8gRGF5bGlnaHQgU2F2aW5ncyBUaW1lLCBvciBudWxsIGlmIHRoZSBpZCBjYW5ub3QgYmUgcGFyc2VkLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSBnZXRDdXN0b21UaW1lWm9uZShTdHJpbmcgaWQpeworCisgICAgICAgIE51bWJlckZvcm1hdCBudW1iZXJGb3JtYXQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGlkVXBwZXJjYXNlID0gaWQudG9VcHBlckNhc2UoKTsKKworICAgICAgICBpZiAoaWQubGVuZ3RoKCkgPiBrR01UX0lELmxlbmd0aCgpICYmCisgICAgICAgICAgICBpZFVwcGVyY2FzZS5zdGFydHNXaXRoKGtHTVRfSUQpKQorICAgICAgICB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKGtHTVRfSUQubGVuZ3RoKCkpOworICAgICAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IGZhbHNlOworICAgICAgICAgICAgbG9uZyBvZmZzZXQ7CisKKyAgICAgICAgICAgIGlmIChpZC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09IDB4MDAyRCAvKictJyovKQorICAgICAgICAgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgIT0gMHgwMDJCIC8qJysnKi8pCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkgKyAxKTsKKworICAgICAgICAgICAgbnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworCisgICAgICAgIAorICAgICAgICAgICAgLy8gTG9vayBmb3IgZWl0aGVyIGhoOm1tLCBoaG1tLCBvciBoaAorICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE51bWJlciBuID0gbnVtYmVyRm9ybWF0LnBhcnNlKGlkLCBwb3MpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgPSBuLmxvbmdWYWx1ZSgpOworCisgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPCBpZC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgIGlkLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgPT0gMHgwMDNBIC8qJzonKi8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gaGg6bW0KKyAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7CisgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgaW50IG9sZFBvcyA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIG4gPSBudW1iZXJGb3JtYXQucGFyc2UoaWQsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IG9sZFBvcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG4ubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGhobW0gb3IgaGgKKworICAgICAgICAgICAgICAgIC8vIEJlIHN0cmljdCBhYm91dCBpbnRlcnByZXRpbmcgc29tZXRoaW5nIGFzIGhoOyBpdCBtdXN0IGJlCisgICAgICAgICAgICAgICAgLy8gYW4gb2Zmc2V0IDwgMzAsIGFuZCBpdCBtdXN0IGJlIG9uZSBvciB0d28gZGlnaXRzLiBUaHVzCisgICAgICAgICAgICAgICAgLy8gMDAxMCBpcyBpbnRlcnByZXRlZCBhcyAwMDoxMCwgYnV0IDEwIGlzIGludGVycHJldGVkIGFzCisgICAgICAgICAgICAgICAgLy8gMTA6MDAuCisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA8IDMwICYmIChwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0KSA8PSAyKQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7IC8vIGhoLCBmcm9tIDAwIHRvIDI5OyAzMCBpcyAwMDozMAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICUgMTAwICsgb2Zmc2V0IC8gMTAwICogNjA7IC8vIGhobW0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYobmVnYXRpdmUpCisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKworICAgICAgICAgICAgVGltZVpvbmUgeiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgoaW50KShvZmZzZXQgKiA2MDAwMCksIGtDVVNUT01fSUQpOworICAgICAgICAgICAgei5zZXRJRChrQ1VTVE9NX0lEKTsKKyAgICAgICAgICAgIHJldHVybiB6OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjljZGI4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlcy5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGVmYXVsdCBicmVhay1pdGVyYXRvciBydWxlcy4gIAorICogVGhpcyByZXNvdXJjZSB0ZWxscyB3aGljaCBicmVhayBpdGVyYXRvciBjbGFzcyB0eXBlIGlzIGluc3RhbnRpYXRlZAorICogIGZvciBlYWNoIG9mIHRoZSBzdGFuZGFyZCAoYnVpbHQtaW4pIGJvdW5kYXJ5IHR5cGVzLgorICoKKyAqICBMb2NhbGVzIChUaGFpKSBuZWVkaW5nIGEgZGljdGlvbmFyeSBiYXNlZCBpdGVyYXRvciBvdmVycmlkZSB0aGlzLgorICovCisKK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gY29udGVudHM7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gY29udGVudHMgPSB7CisgICAgICAgIC8vIEJyZWFrSXRlcmF0b3JDbGFzc2VzIGxpc3RzIHRoZSBjbGFzcyBuYW1lcyB0byBpbnN0YW50aWF0ZSBmb3IgZWFjaAorICAgICAgICAvLyBidWlsdC1pbiB0eXBlIG9mIEJyZWFrSXRlcmF0b3IKKyAgICAgICAgeyAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBzZW50ZW5jZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IifSAgICAgLy8gVGl0bGUtQ2FzZSBicmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICB9CisKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzX3RoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTA2MGY2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzX3RoLmphdmEKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSdWxlc190aCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRSA9ICJkYXRhL3RoLmJyayI7CisKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBleGlzdHMgPSBJQ1VEYXRhLmV4aXN0cyhEQVRBX05BTUUpOworCisgICAgICAgIC8vIGlmIGRpY3Rpb25hcnkgd2Fzbid0IGZvdW5kLCB0aGVuIHRoaXMgcmVzb3VyY2UgYnVuZGxlIGRvZXNuJ3QgaGF2ZQorICAgICAgICAvLyBtdWNoIHRvIGNvbnRyaWJ1dGUuLi4KKyAgICAgICAgaWYgKCFleGlzdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0WzBdWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgIkJyZWFrSXRlcmF0b3JDbGFzc2VzIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAgICAgICAvLyBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgLy8gbGluZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiB9ICAgICAgICAgIC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgICAgIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCBEQVRBX05BTUUgfSwgLy8gbm93IGEgcGF0aCB0byBJQ1U0Si1zcGVjaWZpYyByZXNvdXJjZQorICAgICAgICAgICAgeyAiTGluZUJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9EYXRlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9EYXRlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNDM5NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0RhdGVEYXRhLmphdmEKQEAgLTAsMCArMSwxNjI0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgR29vZ2xlLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2NsYXNzIERhdGVEYXRhIHsgLy8gZXh0cmFjdGVkIGZyb20gQ0xEUiAxLjQKKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19hZiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJTZWtvbmRlIn0sCisgICAgIHsiZmllbGQvaG91ciIsIlV1ciJ9LAorICAgICB7ImZpZWxkL2RheSIsIkRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTWFhbmQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiSmFhciJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJUeWRzb25lIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsiZmllbGQvd2VlayIsIldlZWsifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJUeWRwZXJrIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIkRhZyB2YW4gZGllIHdlZWsifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXV0In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2FmX1pBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS9NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2FtIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJcdTEyMzBcdTEyRDNcdTEyNzUifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MTJGMFx1MTI0Mlx1MTI0MyJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MTI0MFx1MTI5NSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUxMkM4XHUxMjJEIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsIk1NTU0gZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTEyRDNcdTEyMThcdTEyNzUifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTEyMzNcdTEyMURcdTEyOTVcdTEyNzUifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTEyRDhcdTEyMThcdTEyOTUifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYW1fRVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19hciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJBIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MDYyN1x1MDY0NFx1MDY0QVx1MDY0OFx1MDY0NSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDYyN1x1MDY0NFx1MDYyRlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTA2MjdcdTA2NDRcdTA2MkFcdTA2NDhcdTA2NDJcdTA2NEFcdTA2MkEifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTA2MjdcdTA2NDRcdTA2MkJcdTA2NDhcdTA2MjdcdTA2NDZcdTA2NEEifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTA2MjdcdTA2NDRcdTA2NEFcdTA2NDhcdTA2NDUifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MDYyN1x1MDY0NFx1MDYzNFx1MDY0N1x1MDYzMSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2NDZcdTA2MjkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMzXHUwNjI4XHUwNjQ4XHUwNjM5In0sCisgICAgIHsiZmllbGQvZXJhIiwiXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjM1XHUwNjMxIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0sIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYXNfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NLCB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYmUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJkLk0ifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2JnIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vaG1tc3MiLCJoOm1tOnNzIGEifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwNDQ3XHUwNDMwXHUwNDQxIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL2htbSIsImg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MDQzN1x1MDQzRVx1MDQzRFx1MDQzMCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi95eXl5UVFRUSIsIlFRUVEgeXl5eVx1MDBBMCdcdTA0MzMnLiJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTA0MTRcdTA0MzVcdTA0M0QgXHUwNDNFXHUwNDQyIFx1MDQ0MVx1MDQzNVx1MDQzNFx1MDQzQ1x1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQzMCJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQzMCJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlx1MDQ0MVx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQzRFx1MDQzNFx1MDQzMCJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MDQxNFx1MDQzNVx1MDQzRCJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2In0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzMCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M0NcdTA0MzhcdTA0NDZcdTA0MzAifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTA0MzVcdTA0NDBcdTA0MzAifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2JuX0JEIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfYm5fSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ieW5fRVIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfY2EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2NzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NZCIsImQuTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkLiBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfY3kgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi95eU1NZGQiLCJ5eS1NTS1kZCJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLWRkIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19jeV9HQiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsInRpbWUifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTSIsIk1NTSB5eXl5In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsInVnZWRhZyJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnV0In0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiZGFndGlkIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyAgICAgeyJmaWVsZC96b25lIiwiem9uZSJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNla3VuZCJ9LAorICAgICB7ImZpZWxkL2RheSIsImRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibVx1MDBFNW5lZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTAwRTVyIn0sCisgICAgIHsicGF0dGVybi9NTU1kIiwiZC4gTU1NIn0sCisgICAgIHsiZmllbGQvd2VlayIsInVnZSJ9LAorICAgICB7ImZpZWxkL2VyYSIsInRpZCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kZSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiU3R1bmRlIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIldvY2hlbnRhZyJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlNla3VuZGUifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJUYWcifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIk1vbmF0In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiSmFociJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsiZmllbGQvd2VlayIsIldvY2hlIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiVGFnZXNoXHUwMEU0bGZ0ZSJ9LAorICAgICB7ImZpZWxkL2VyYSIsIkVwb2NoZSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGVfQVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZC4gTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTWRkIiwiZGQuTU0ueXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGVfQkUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2RlX0NIIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLWRkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2RlX0xJIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTWRkIiwiZGQuTU0ueXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZGVfTFUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NZGQiLCJkZC5NTS55eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19kdl9NViBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VsIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7ImZpZWxkL2RheSIsIlRvbW9ycm93In0sCisgICAgIHsiZmllbGQvZGF5IiwiVG9kYXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU0iLCJNTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJNL2QifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiTU1NTSBkIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJZZXN0ZXJkYXkifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJBTS9QTSJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9BVSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0JFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi9NTU1kZCIsImRkIE1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9CVyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fQlogZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0NBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTU0iLCJNTU0teXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NZCIsImQtTU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX0dCIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fSEsgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9JRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX01UIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9OWiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9QSCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NZCIsIk1NIGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fUEsgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lbl9TRyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZW5fWkEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5L01NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VuX1pXIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NZCIsImQvTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiaG9yYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiem9uYSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJkZC1NTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiZFx1MDBFRGEgZGUgbGEgc2VtYW5hIn0sCisgICAgIHsicGF0dGVybi95eU1NTSIsIk1NTS15eSJ9LAorICAgICB7InBhdHRlcm4vTU1kIiwiZC9NTSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnV0byJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNlZ3VuZG8ifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJkXHUwMEVEYSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibWVzIn0sCisgICAgIHsiZmllbGQveWVhciIsImFcdTAwRjFvIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwic2VtYW5hIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwicGVyaW9kbyBkZWwgZFx1MDBFRGEifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJlcmEifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfQVIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0JPIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19DTCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19DTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19DUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfRE8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0VDIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0VTIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfR1QgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX0hOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19NWCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfTkkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1BBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1BSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1BZIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19TViBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXNfVVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1kIiwiTU1NIGQifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiTS9kIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2VzX1VZIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19lc19WRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZXQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS55eXl5In0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2ZhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MkEifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vSEhtbVoiLCJISDptbSAoWikifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUwNjQ1XHUwNjQ2XHUwNjM3XHUwNjQyXHUwNjQ3XHUwNjU0IFx1MDYzMlx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZDQyJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJNL2QifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwNjMxXHUwNjQ4XHUwNjMyIFx1MDY0N1x1MDY0MVx1MDYyQVx1MDY0NyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU1FRUVFZCIsIkVFRUUgZCBNTU1NIHl5eXkifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJcdTA2MkZcdTA2NDJcdTA2Q0NcdTA2NDJcdTA2NDcifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTA2MkJcdTA2MjdcdTA2NDZcdTA2Q0NcdTA2NDcifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTA2MzFcdTA2NDhcdTA2MzIifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1MDY0NVx1MDYyN1x1MDY0NyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwNjMzXHUwNjI3XHUwNjQ0In0sCisgICAgIHsicGF0dGVybi95eXl5TSIsInl5eXkvTSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTA2NDdcdTA2NDFcdTA2MkFcdTA2NDcifSwKKyAgICAgeyJwYXR0ZXJuL0dHR0d5eXl5TU1NTWQiLCJkIE1NTU0geXl5eSBHR0dHIn0sCisgICAgIHsiYXBwZW5kL0RheS1PZi1XZWVrIiwiezF9IHswfSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZmkgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsInR1bnRpIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW0uc3MifSwKKyAgICAgeyJmaWVsZC96b25lIiwiYWlrYXZ5XHUwMEY2aHlrZSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1FRUVkIiwiRUVFIGQuTS55eXl5In0sCisgICAgIHsicGF0dGVybi9NZCIsImQuTSJ9LAorICAgICB7InBhdHRlcm4veXl5eVFRUVEiLCJRUVFRIHl5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5Iiwidmlpa29ucFx1MDBFNGl2XHUwMEU0In0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXV0dGkifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWt1bnRpIn0sCisgICAgIHsiZmllbGQvZGF5IiwicFx1MDBFNGl2XHUwMEU0In0sCisgICAgIHsiZmllbGQvbW9udGgiLCJrdXVrYXVzaSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkLiBNTU1NJ3RhJyJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJ2dW9zaSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNLnl5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwidmlpa2tvIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiYXAvaXAtdmFsaW50YSJ9LAorICAgICB7ImZpZWxkL2VyYSIsImFpa2FrYXVzaSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NJ3RhICd5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2ZvIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1NZCIsImQuIE1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTSIsIk1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZnIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19mcl9CRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU1NIiwiTU1NLXl5In0sCisgICAgIHsicGF0dGVybi95eU1NTUVFRWQiLCJFRUUgZCBNTU0geXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTWRkIiwiZGQtTU1NIn0sCisgICAgIHsicGF0dGVybi9NTWQiLCJkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2ZyX0NBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsInl5LU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZnJfQ0ggZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0ueXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1kIiwiZC4gTU1NIHl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2Z1ciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWNvbnQifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwib3JlIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZFx1MDBFQyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibVx1MDBFQXMifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsiZmllbGQveWVhciIsImFuIn0sCisgICAgIHsiZmllbGQvem9uZSIsInpvbmUifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJzZXRlbWFuZSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsInRvYyBkYWwgZFx1MDBFQyJ9LAorICAgICB7ImZpZWxkL2VyYSIsImVyZSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJkXHUwMEVDIGRlIHNldGVtYW5lIn0sCisgICAgIHsicGF0dGVybi9NTWQiLCJkL01NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pblx1MDBGQnQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZ2EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2dhX0lFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfZ2V6X0VSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2dlel9FVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19nbF9FUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ndV9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2d2X0dCIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19oYXdfVVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5TSIsIk0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC9NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2hlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJcdTA1RTlcdTA1RTJcdTA1RDQifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJcdTA1RDBcdTA1RDZcdTA1RDVcdTA1RTgifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwNUQ5XHUwNUQ1XHUwNUREIFx1MDVEMVx1MDVFOVx1MDVEMVx1MDVENVx1MDVFMiJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDVEM1x1MDVFN1x1MDVENCJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIlx1MDVFOVx1MDVFMFx1MDVEOSJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1MDVEOVx1MDVENVx1MDVERCJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUwNUQ3XHUwNUQ1XHUwNUQzXHUwNUU5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTA1RTlcdTA1RTBcdTA1RDQifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwNUU5XHUwNUQxXHUwNUQ1XHUwNUUyIn0sCisgICAgIHsiZmllbGQvZXJhIiwiXHUwNUVBXHUwNUU3XHUwNUQ1XHUwNUU0XHUwNUQ0In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19oaSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU1NZCIsIk1NTSBkLCB5eSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NRUVFZCIsIkVFRSwgTU1NIGQsIHl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1kZCIsImRkLU1NLXl5In0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJNTU0gZGQifSwKKyAgICAgeyJwYXR0ZXJuL0dHR0d5TU1NTUVFRUVkZCIsIkVFRUUsZGQgTU1NTSBHR0dHeSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19oaV9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2hyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS5kZCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiTU1NTSBkZCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS5NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1FRUVkIiwiRUVFIHl5Lk1NTSBkIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsInl5eXkuIE1NTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaHUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MDBGM3JhIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS5kZC4ifSwKKyAgICAgeyJmaWVsZC96b25lIiwielx1MDBGM25hIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5Lk1NIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsImhcdTAwRTl0IG5hcGphIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwicGVyYyJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsIm1cdTAwRTFzb2RwZXJjIn0sCisgICAgIHsiZmllbGQvZGF5IiwibmFwIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJoXHUwMEYzbmFwIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsIk1NTU0gZC4ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwMEU5diJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJoXHUwMEU5dCJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIm5hcHN6YWsifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTAwRTlyYSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJ5eXl5LiBNTU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2h5IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJNTU1NIGRkIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2lkX0lEIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NL3l5In0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NZCIsImQuTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkLiBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfaXQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIm9yYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoLm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoLm1tLnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJ6b25hIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEgubW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhILm1tLnNzIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsImdpb3JubyBkZWxsYSBzZXR0aW1hbmEifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJtaW51dG8ifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWNvbmRvIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZ2lvcm5vIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtZXNlIn0sCisgICAgIHsiZmllbGQveWVhciIsImFubm8ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJzZXR0aW1hbmEifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJwZXJpb2RvIGRlbCBnaW9ybm8ifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJlcmEifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2l0X0NIIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19qYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS9NTSJ9LAorICAgICB7InBhdHRlcm4vR0dHR3lNZCIsIkdHR0d5J1x1NUU3NCdNJ1x1NjcwOCdkJ1x1NjVFNScifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS9kZCJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJcdTEwRUNcdTEwRDBcdTEwREJcdTEwRDgifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NZCIsImQgTU1NLCB5eSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJcdTEwRTFcdTEwRDBcdTEwRDBcdTEwRDdcdTEwRDgifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUxMEQzXHUxMEU2XHUxMEQ0In0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTEwRDdcdTEwRDVcdTEwRDQifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTEwRUNcdTEwRDRcdTEwREFcdTEwRDgifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHUxMEQ2XHUxMEREXHUxMERDXHUxMEQwIn0sCisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NRUVFZCIsIkVFRSwgZCBNTU0sIHl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1kZCIsImRkL01NL3l5In0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTEwRDlcdTEwRDVcdTEwRDhcdTEwRTBcdTEwRDAifSwKKyAgICAgeyJwYXR0ZXJuL01NTWRkIiwiZGQgTU1NIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiXHUxMEQzXHUxMEU2XHUxMEQ4XHUxMEUxIFx1MTBERVx1MTBENFx1MTBFMFx1MTBEOFx1MTBERFx1MTBEM1x1MTBEOCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1MTBFRVx1MTBEMFx1MTBEQ1x1MTBEMCJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTEwRDlcdTEwRDVcdTEwRDhcdTEwRTBcdTEwRDhcdTEwRTEgXHUxMEQzXHUxMEU2XHUxMEQ0In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUxMEVDXHUxMEUzXHUxMEQ3XHUxMEQ4In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2trIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkgJ1x1MDQzNi4nIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa2xfR0wgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa20gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NZCIsImQvTSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vaGhtbXNzIiwiaGg6bW06c3MgYSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS95eXl5In0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19rbl9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2tvIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTU1kZCIsIk1NLiBkZCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS4gTU0ifSwKKyAgICAgeyJwYXR0ZXJuL0htcyIsIkgnXHVDMkRDJyBtJ1x1QkQ4NCcgcydcdUNEMDgnIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2tvX0tSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlRIiwieXknXHVCMTQ0XHVCM0M0IFx1QzgxQydRJ1x1QzBBQ1x1QkQ4NFx1QUUzMCcifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa29rX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa3UgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvZGF5Iiwicm9qIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHUwMEU3aXJrZSJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJzYWwifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiaGVmdGUifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1laCJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJkZW1qaW1cdTAwRUFyIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwieHVsZWsifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfa3dfR0IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbG8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NZCIsImQvTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNL3l5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2x0IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlNla3VuZFx1MDExNyJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJ2YWxhbmRhIn0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7ImZpZWxkL2RheSIsImRpZW5hIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtXHUwMTE3bnVvIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0uZGQifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwibWV0YWkifSwKKyAgICAgeyJmaWVsZC96b25lIiwianVvc3RhIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5Lk1NIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsiZmllbGQvd2VlayIsInNhdmFpdFx1MDExNyJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJNTU0tZGQifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJkaWVub3MgbWV0YXMifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJlcmEifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5Iiwic2F2YWl0XHUwMTE3cyBkaWVuYSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnV0XHUwMTE3In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX2x2IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTWQiLCJkLk0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISDptbSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEg6bW06c3MifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbWsgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NZGQiLCJkZC5NIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbWxfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19tcl9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX21zX0JOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9IbW0iLCJIOm1tIn0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkL01NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX21zX01ZIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19tdCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwiU2llZ1x1MDEyN2EifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0veXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTSIsIk1NTSB5eXl5In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXRhIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2Vrb25kYSJ9LAorICAgICB7ImZpZWxkL2RheSIsIkp1bSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiWGFoYXIifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCAndGFcdTIwMTknIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiU2VuYSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTAxMjBpbWdcdTAxMjdhIn0sCisgICAgIHsiZmllbGQvZXJhIiwiRXBva2EifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbmIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsInRpbWUifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsiZmllbGQvem9uZSIsInNvbmUifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwidWtlZGFnIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXR0In0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwic2VrdW5kIn0sCisgICAgIHsiZmllbGQvZGF5IiwiZGFnIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJtXHUwMEU1bmVkIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwMEU1ciJ9LAorICAgICB7InBhdHRlcm4veXlNTSIsIk1NLnl5In0sCisgICAgIHsiZmllbGQvd2VlayIsInVrZSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsImYubS4vZS5tLi12YWxnIn0sCisgICAgIHsiZmllbGQvZXJhIiwidGlkc2FsZGVyIn0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19uYl9OTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL0hIbW0iLCJISC5tbSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLiBNTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbXNzIiwiSEgubW0uc3MifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbmwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlV1ciJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiRGFnIHZhbiBkZSB3ZWVrIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXV0In0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiU2Vjb25kZSJ9LAorICAgICB7ImZpZWxkL2RheSIsIkRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiTWFhbmQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsiZmllbGQveWVhciIsIkphYXIifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS15eSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIkRhZ2RlZWwifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJUaWpkcGVyayJ9LAorICAgICB7InBhdHRlcm4veXlRUVFRIiwiUVFRUSB5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbmxfQkUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWQiLCJkL01NIn0sCisgICAgIHsicGF0dGVybi9NTU1kIiwiZC1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4veXlNTU0iLCJNTU0teXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfbm4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsInRpbWUifSwKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbS5zcyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgICAgIHsiZmllbGQvem9uZSIsInNvbmUifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwidmVrZWRhZyJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIm1pbnV0dCJ9LAorICAgICB7ImZpZWxkL3NlY29uZCIsInNla3VuZCJ9LAorICAgICB7ImZpZWxkL2RheSIsImRhZyJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwibVx1MDBFNW5hZCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkLiBNTU1NIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MDBFNXIifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS55eSJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJ2ZWtlIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiZi5tLi9lLm0uLXZhbCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIlx1MDBFNnJhIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19vbV9FVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19vbV9LRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19vcl9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2RheSIsIlx1MEEyNlx1MEEzRlx1MEEyOCJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTBBMzlcdTBBMkJcdTBBM0NcdTBBMjRcdTBBNDcgXHUwQTI2XHUwQTNFIFx1MEEyNlx1MEEzRlx1MEEyOCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTBBMzhcdTBBM0VcdTBBMzIifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwQTM5XHUwQTJCXHUwQTNDXHUwQTI0XHUwQTNFIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTBBMkVcdTBBMzlcdTBBNDBcdTBBMjhcdTBBM0UifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiXHUwQTE4XHUwQTcwXHUwQTFGXHUwQTNFIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MEExNlx1MEE0N1x1MEEyNFx1MEEzMCJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MEEyRVx1MEEzRlx1MEE3MFx1MEExRiJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19wYV9BcmFiIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2RheSIsIlx1MDYyRlx1MDYyNlx1MDY0NiJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHUwNjQ1XHUwNkMxXHUwNjRBXHUwNjQ2XHUwNjI3In0sCisgICAgIHsiZmllbGQvaG91ciIsIlx1MDZBRlx1MDZCRVx1MDY0Nlx1MDY3OVx1MDYyNyJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJcdTA2QzFcdTA2NDFcdTA2MkFcdTA2RDIgXHUwNjJGXHUwNjI3IFx1MDYyRlx1MDY0NiJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTA2NDhcdTA2MzFcdTA2QkVcdTA2MjcifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwNkMxXHUwNjQxXHUwNjJBXHUwNkMxIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MDY3OVx1MDY3RVx1MDZDMSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDY0NVx1MDY0Nlx1MDY3OSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19wYV9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BsIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vaGhtbSIsImhoOm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS1NTSJ9LAorICAgICB7InBhdHRlcm4vSEhtbSIsIkhIOm1tIn0sCisgICAgIHsicGF0dGVybi9ISG1tc3MiLCJISDptbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BsX1BMIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlNla3VuZGEifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwiR29kemluYSJ9LAorICAgICB7ImZpZWxkL2RheSIsIkR6aWVcdTAxNDQifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIk1pZXNpXHUwMTA1YyJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJSb2sifSwKKyAgICAgeyJmaWVsZC96b25lIiwiU3RyZWZhIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlR5ZHppZVx1MDE0NCJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJEemllXHUwMTQ0IHR5Z29kbmlhIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXRhIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3BzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU0iLCJ5eXl5L00ifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiTS9kIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIlx1MDYyRiB5eXl5IFx1MDYyRiBNTU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3B0IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTSIsIk1NTS95eXl5In0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3B0X0JSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlNlZ3VuZG8ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiQW5vIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlNlbWFuYSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJIb3JhIn0sCisgICAgIHsiZmllbGQvem9uZSIsIkZ1c28ifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJQZXJcdTAwRURvZG8gZG8gZGlhIn0sCisgICAgIHsiZmllbGQvZGF5IiwiRGlhIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIkRpYSBkYSBzZW1hbmEifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIk1cdTAwRUFzIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiTWludXRvIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3B0X1BUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS9NTSJ9LAorICAgICB7InBhdHRlcm4veXlNTU1FRUVkIiwiRUVFLCBkICdkZScgTU1NICdkZScgeXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU1NZCIsImQgJ2RlJyBNTU0gJ2RlJyB5eSJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJIb3JhIn0sCisgICAgIHsiZmllbGQvZGF5IiwiRGlhIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJNXHUwMEVBcyJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsIk1NL2RkIn0sCisgICAgIHsiZmllbGQveWVhciIsIkFubyJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJTZW1hbmEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiWm9uYSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIlBlclx1MDBFRG9kbyBkbyBkaWEifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiRGlhIGRhIHNlbWFuYSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIk1pbnV0byJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19ybyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQuTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLnl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImFwcGVuZC9Ib3VyIiwiezB9ICh7Mn06IHsxfSkifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJTZWNvbmQifSwKKyAgICAgeyJhcHBlbmQvV2VlayIsInswfSAoezJ9OiB7MX0pIn0sCisgICAgIHsiZmllbGQvaG91ciIsIkhvdXIifSwKKyAgICAgeyJwYXR0ZXJuL3l5USIsIlEgeXkifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJEYXkifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIk1vbnRoIn0sCisgICAgIHsiYXBwZW5kL0VyYSIsInswfSB7MX0ifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiWWVhciJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJab25lIn0sCisgICAgIHsiYXBwZW5kL1F1YXJ0ZXIiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImFwcGVuZC9NaW51dGUiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImFwcGVuZC9ZZWFyIiwiezB9IHsxfSJ9LAorICAgICB7ImFwcGVuZC9UaW1lem9uZSIsInswfSB7MX0ifSwKKyAgICAgeyJhcHBlbmQvU2Vjb25kIiwiezB9ICh7Mn06IHsxfSkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiV2VlayJ9LAorICAgICB7ImFwcGVuZC9EYXkiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIkRheXBlcmlvZCJ9LAorICAgICB7ImZpZWxkL2VyYSIsIkVyYSJ9LAorICAgICB7ImZpZWxkL3dlZWtkYXkiLCJEYXkgb2YgdGhlIFdlZWsifSwKKyAgICAgeyJhcHBlbmQvTW9udGgiLCJ7MH0gKHsyfTogezF9KSJ9LAorICAgICB7ImFwcGVuZC9EYXktT2YtV2VlayIsInswfSB7MX0ifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJNaW51dGUifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcnUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eVFRUVEiLCJRUVFRIHl5eXkgJ1x1MDQzMy4nIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1MDQxNFx1MDQzNVx1MDQzRFx1MDQ0QyBcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzgifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTA0MTRcdTA0MzVcdTA0M0RcdTA0NEMifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlMTExMIiwiTExMTCB5eXl5In0sCisgICAgIHsicGF0dGVybi95eU1NTUVFRWQiLCJFRUUsIGQgTU1NIHl5In0sCisgICAgIHsicGF0dGVybi9NTU1kIiwiZCBNTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfcnVfVUEgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc2FfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS15eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC1NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zZV9OTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWt1bmRhIn0sCisgICAgIHsiZmllbGQveWVhciIsImpcdTAwRTFoa2kifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwidlx1MDBFMWhra3UifSwKKyAgICAgeyJmaWVsZC9ob3VyIiwidGlpYm11In0sCisgICAgIHsiZmllbGQvem9uZSIsInNvbmUifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJiZWFpdmkifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5Iiwidlx1MDBFMWhra3ViZWFpdmkifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1cdTAwRTFubnUifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJtaW51aHR0YSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zaWQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc2sgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC5NIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwiTS55eXl5In0sCisgICAgIHsicGF0dGVybi95eVFRUVEiLCJRUVFRIHl5In0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zbCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01kIiwiZC5NIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsIk0ueXl5eSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc28gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc3EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3NyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTU1kIiwiZC4gTU1NIHl5In0sCisgICAgIHsicGF0dGVybi9oaG1tIiwiaGg6bW0gYSJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tLnNzIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiTU0tZGQifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS55eSJ9LAorICAgICB7InBhdHRlcm4vTU1NZGQiLCJkZC5NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc3JfQ3lybF9CQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS1NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5LiJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zcl9MYXRuIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXlNTWRkIiwiZGQuTU0ueXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc3JfTGF0bl9CQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL21tc3MiLCJtbTpzcyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NIiwieXl5eS1NTSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQuIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5LiJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zdiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJmaWVsZC9ob3VyIiwidGltbWUifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9tbXNzIiwibW0uc3MifSwKKyAgICAgeyJwYXR0ZXJuL2hobW1zcyIsImhoOm1tOnNzIGEifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJNTS1kZCJ9LAorICAgICB7ImZpZWxkL3pvbmUiLCJ0aWRzem9uIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJ5eXl5LU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NIiwiTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlRUVFRIiwiUVFRUScsJyB5eXl5In0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsInZlY2tvZGFnIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwibWludXQifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJzZWt1bmQifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJkYWcifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIm1cdTAwRTVuYWQifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwMEU1ciJ9LAorICAgICB7InBhdHRlcm4vTU1NZCIsImQgTU1NIn0sCisgICAgIHsiZmllbGQvd2VlayIsInZlY2thIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiZGFnc3BlcmlvZCJ9LAorICAgICB7ImZpZWxkL2VyYSIsImVyYSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc19zdl9TRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01NZCIsImQvTU0ifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1FRUVkIiwiRUVFIGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4vaGhtbSIsImhoLm1tIGEifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlRUVFRIiwiUVFRUSB5eXl5In0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaC5tbS5zcyBhIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwidGlkc3Zpc25pbmcifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfc3lyX1NZIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi95eXl5TU0iLCJNTS95eXl5In0sCisgICAgIHsicGF0dGVybi9NTU1NZGQiLCJkZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0sIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190YV9JTiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLXl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3RlX0lOIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQtTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdGggZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlx1MEUwQVx1MEUzMVx1MEU0OFx1MEUyN1x1MEU0Mlx1MEUyMVx1MEUwNyJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlx1MEU0MFx1MEUwMlx1MEUxNSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJkL00ifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwRTI3XHUwRTMxXHUwRTE5XHUwRTQzXHUwRTE5XHUwRTJBXHUwRTMxXHUwRTFCXHUwRTE0XHUwRTMyXHUwRTJCXHUwRTRDIn0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHUwRTE5XHUwRTMyXHUwRTE3XHUwRTM1In0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHUwRTI3XHUwRTM0XHUwRTE5XHUwRTMyXHUwRTE3XHUwRTM1In0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUwRTI3XHUwRTMxXHUwRTE5In0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTBFNDBcdTBFMTRcdTBFMzdcdTBFMkRcdTBFMTkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsiZmllbGQveWVhciIsIlx1MEUxQlx1MEUzNSJ9LAorICAgICB7InBhdHRlcm4veXl5eU0iLCJNL3l5eXkifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiXHUwRTJBXHUwRTMxXHUwRTFCXHUwRTE0XHUwRTMyXHUwRTJCXHUwRTRDIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiXHUwRTBBXHUwRTQ4XHUwRTI3XHUwRTA3XHUwRTI3XHUwRTMxXHUwRTE5In0sCisgICAgIHsiZmllbGQvZXJhIiwiXHUwRTJBXHUwRTIxXHUwRTMxXHUwRTIyIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190aV9FUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190aV9FVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc190aWdfRVIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eU1NIiwiTU0veXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kZCIsImRkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgICAgIHsicGF0dGVybi9NTWRkIiwiZGQvTU0ifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdHIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvaG91ciIsIlNhYXQifSwKKyAgICAgeyJwYXR0ZXJuL2hobW0iLCJoaDptbSBhIn0sCisgICAgIHsicGF0dGVybi9oaG1tc3MiLCJoaDptbTpzcyBhIn0sCisgICAgIHsiZmllbGQvem9uZSIsIlNhYXQgRGlsaW1pIn0sCisgICAgIHsicGF0dGVybi9ISG1tIiwiSEg6bW0ifSwKKyAgICAgeyJwYXR0ZXJuL0hIbW1zcyIsIkhIOm1tOnNzIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIkhhZnRhblx1MDEzMW4gR1x1MDBGQ25cdTAwRkMifSwKKyAgICAgeyJmaWVsZC9taW51dGUiLCJEYWtpa2EifSwKKyAgICAgeyJmaWVsZC9zZWNvbmQiLCJTYW5peWUifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJHXHUwMEZDbiJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiQXkifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiWVx1MDEzMWwifSwKKyAgICAgeyJmaWVsZC93ZWVrIiwiSGFmdGEifSwKKyAgICAgeyJmaWVsZC9kYXlwZXJpb2QiLCJHXHUwMEZDblx1MDBGQ24gQlx1MDBGNmxcdTAwRkNtXHUwMEZDIn0sCisgICAgIHsiZmllbGQvZXJhIiwiTWlsYWRpIERcdTAwRjZuZW0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5UVFRUSIsIlFRUVEgeXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdHRfUlUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi9tbXNzIiwibW06c3MifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTSIsIk1NLnl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NTU1kIiwiZCBNTU1NIn0sCisgICAgIHsicGF0dGVybi9IbW0iLCJIOm1tIn0sCisgICAgIHsicGF0dGVybi95eXl5TU1NTSIsIk1NTU0geXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLk1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3VrIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL2hvdXIiLCJcdTA0MTNcdTA0M0VcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzAifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHUwNDE0XHUwNDM1XHUwNDNEXHUwNDRDIFx1MDQ0Mlx1MDQzOFx1MDQzNlx1MDQzRFx1MDQ0RiJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1MDQyNVx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzMCJ9LAorICAgICB7InBhdHRlcm4vTU1NTWQiLCJkIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS55eSJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIlx1MDQyN1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzMCBcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzgifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC5NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eVFRUVEiLCJRUVFRIHl5eXkgJ1x1MDQ0MC4nIn0sCisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHUwNDIxXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDNEXHUwNDM0XHUwNDMwIn0sCisgICAgIHsiZmllbGQvZGF5IiwiXHUwNDE0XHUwNDM1XHUwNDNEXHUwNDRDIn0sCisgICAgIHsiZmllbGQvbW9udGgiLCJcdTA0MUNcdTA0NTZcdTA0NDFcdTA0NEZcdTA0NDZcdTA0NEMifSwKKyAgICAgeyJmaWVsZC95ZWFyIiwiXHUwNDIwXHUwNDU2XHUwNDNBIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1MDQyMlx1MDQzOFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0QyJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfdXpfQXJhYiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwieXl5eS9NIn0sCisgICAgIHsicGF0dGVybi9NZCIsIk0vZCJ9LAorICAgICB7InBhdHRlcm4vbW1zcyIsIm1tOnNzIn0sCisgICAgIHsicGF0dGVybi9NTU1NZCIsImQgXHUwNjQ2XHUwNjg2XHUwNkNDIE1NTU0ifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNTU1NIiwiTU1NTSB5eXl5In0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3ZpIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4veXl5eU1NIiwiTU0teXl5eSJ9LAorICAgICB7InBhdHRlcm4vTU1kZCIsImRkLU1NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3dhbF9FVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc196aCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL01kIiwiTSdcdTY3MDgnZCdcdTY1RTUnIn0sCisgICAgIHsicGF0dGVybi95eXl5TSIsInl5eXknXHU1RTc0J00nXHU2NzA4JyJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc196aF9IYW5zIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7ImZpZWxkL3NlY29uZCIsIlx1NzlEMlx1OTQ5RiJ9LAorICAgICB7ImZpZWxkL2hvdXIiLCJcdTVDMEZcdTY1RjYifSwKKyAgICAgeyJmaWVsZC9kYXkiLCJcdTY1RTUifSwKKyAgICAgeyJmaWVsZC9tb250aCIsIlx1NjcwOCJ9LAorICAgICB7ImZpZWxkL3llYXIiLCJcdTVFNzQifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHU1MzNBXHU1N0RGIn0sCisgICAgIHsiZmllbGQvd2VlayIsIlx1NTQ2OCJ9LAorICAgICB7ImZpZWxkL2RheXBlcmlvZCIsIlx1NEUwQVx1NTM0OC9cdTRFMEJcdTUzNDgifSwKKyAgICAgeyJmaWVsZC9lcmEiLCJcdTY1RjZcdTY3MUYifSwKKyAgICAgeyJmaWVsZC93ZWVrZGF5IiwiXHU1NDY4XHU1OTI5In0sCisgICAgIHsiZmllbGQvbWludXRlIiwiXHU1MjA2XHU5NDlGIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3poX0hhbnNfQ04gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsicGF0dGVybi95eXl5TSIsInl5eXktTSJ9LAorICAgICB7InBhdHRlcm4vTWQiLCJNLWQifSwKKyB9O319CisgcHVibGljIHN0YXRpYyBjbGFzcyBNeURhdGVSZXNvdXJjZXNfemhfSGFuc19TRyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgeyJwYXR0ZXJuL3l5TU0iLCJNTS95eSJ9LAorICAgICB7InBhdHRlcm4vTU1NTWRkIiwiZGQgTU1NTSJ9LAorICAgICB7InBhdHRlcm4veXl5eU1NTU0iLCJNTU1NIHl5eXkifSwKKyAgICAgeyJwYXR0ZXJuL01NZGQiLCJkZC9NTSJ9LAorIH07fX0KKyBwdWJsaWMgc3RhdGljIGNsYXNzIE15RGF0ZVJlc291cmNlc196aF9IYW50IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICB7InBhdHRlcm4vTWQiLCJNL2QifSwKKyAgICAgeyJwYXR0ZXJuL3l5eXlNIiwieXl5eS9NIn0sCisgfTt9fQorIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlEYXRlUmVzb3VyY2VzX3poX0hhbnRfVFcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgIHsiZmllbGQvc2Vjb25kIiwiXHU3OUQyIn0sCisgICAgIHsiZmllbGQvaG91ciIsIlx1NUMwRlx1NjY0MiJ9LAorICAgICB7ImZpZWxkL2RheSIsIlx1NjU3NFx1NjVFNSJ9LAorICAgICB7ImZpZWxkL21vbnRoIiwiXHU2NzA4In0sCisgICAgIHsiZmllbGQveWVhciIsIlx1NUU3NCJ9LAorICAgICB7ImZpZWxkL3dlZWsiLCJcdTkwMzEifSwKKyAgICAgeyJmaWVsZC96b25lIiwiXHU1MzQwXHU1N0RGIn0sCisgICAgIHsiZmllbGQvZGF5cGVyaW9kIiwiXHU2NUU1XHU5NTkzIn0sCisgICAgIHsiZmllbGQvZXJhIiwiXHU1RTc0XHU0RUUzIn0sCisgICAgIHsiZmllbGQvd2Vla2RheSIsIlx1OTAzMVx1NTkyOSJ9LAorICAgICB7ImZpZWxkL21pbnV0ZSIsIlx1NTIwNlx1OTQxOCJ9LAorIH07fX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjZhZTBlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgLy8gTm9ybWFsbHksIGVhY2ggSG9saWRheUJ1bmRsZSB1c2VzIHRoZSBob2xpZGF5J3MgVVMgRW5nbGlzaCBuYW1lCisgICAgLy8gYXMgdGhlIHN0cmluZyBrZXkgZm9yIGxvb2tpbmcgdXAgdGhlIGxvY2FsaXplZCBuYW1lLiAgVGhpcyBtZWFucworICAgIC8vIHRoYXQgdGhlIGtleSBpdHNlbGYgY2FuIGJlIHVzZWQgaWYgbm8gbmFtZSBpcyBmb3VuZCBmb3IgdGhlIHJlcXVlc3RlZAorICAgIC8vIGxvY2FsZS4KKyAgICAvLworICAgIC8vIEZvciBob2xpZGF5cyB3aGVyZSB0aGUga2V5IGlzIF9ub3RfIHRoZSBFbmdsaXNoIG5hbWUsIGUuZy4gaW4gdGhlCisgICAgLy8gY2FzZSBvZiBjb25mbGljdHMsIHRoZSBFbmdsaXNoIG5hbWUgbXVzdCBiZSBnaXZlbiBoZXJlLgorICAgIC8vCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiIiwgIiIgIH0sICAgICAgLy8gQ2FuJ3QgYmUgZW1wdHkhCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0Y2U3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGEuamF2YQpAQCAtMCwwICsxLDMwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlCit7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPQorICAgIHsKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICJ2XHUwMGU1YmVuaHZpbGUiIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAiaGltbWVsZmFydCIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJhbmRlbiBqdWxlZGFnIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyBFdmUiLCAgICAgICAgImp1bGVhZnRlbiIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIiLCAgICAgICAgICAgICAgICJwXHUwMGU1c2tlIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgImhlbGxpZ3RyZWtvbmdlcnNkYWciIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAibGFuZ2ZyZWRhZyIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICJhbGxlaGVsZ2Vuc2FmdGVuIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgInNrXHUwMGU2cnRvcnNkYWciIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAicGFsbWVzXHUwMGY4bmRhZyIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICJwaW5zZSIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICJodmlkZXRpcnNkYWciIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYV9ESy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhX0RLLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWQ1OWU0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYV9ESy5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kYV9ESyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVBSSUwsICAgMzAsIC1DYWxlbmRhci5GUklEQVksICJHZW5lcmFsIFByYXllciBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgNSwgICAgICAgICAgICAgICAgICAgICJDb25zdGl0dXRpb24gRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTX0VWRSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5Lk1BVU5EWV9USFVSU0RBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJob2xpZGF5cyIsICAgICAgICAgICAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1YjEwZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGUuamF2YQpAQCAtMCwwICsxLDY3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICAgICAgICAgIkFsbGVyaGVpbGlnZW4iIH0sCisgICAgICAgIHsgICAiQWxsIFNvdWxzJyBEYXkiLCAgICAgICAgICAgICAgICJBbGxlcnNlZWxlbiIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICAgICAgICAgIldhZmZlbnN0aWxsc3RhbmRzdGFnIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgICAgICAgICAiQ2hyaXN0aSBIaW1tZWxmYWhydCIgfSwKKyAgICAgICAgeyAgICJBc2ggV2VkbmVzZGF5IiwgICAgICAgICAgICAgICAgIkFzY2hlcm1pdHR3b2NoIiB9LAorICAgICAgICB7ICAgIkFzc3VtcHRpb24iLCAgICAgICAgICAgICAgICAgICAiTWFyaVx1MDBlNCBIaW1tZWxmYWhydCIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICAgICAgICAgIjIuIFdlaWhuYWNodHN0YWciIH0sCisgICAgICAgIHsgICAiQ2Fybml2YWwiLCAgICAgICAgICAgICAgICAgICAgICJLYXJuZXZhbCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICAgICAgICAgIldlaWhuYWNodHN0YWciIH0sCisgICAgICAgIHsgICAiQ2l2aWMgSG9saWRheSIsICAgICAgICAgICAgICAgICJCXHUwMGZjcmdlcmZlaWVydGFnIiB9LAorICAgICAgICB7ICAgIkNvbnN0aXR1dGlvbiBEYXkiLCAgICAgICAgICAgICAiVmVyZmFzc3VuZ3N0YWciIH0sCisgICAgICAgIHsgICAiQ29ycHVzIENocmlzdGkiLCAgICAgICAgICAgICAgICJGcm9ubGVpY2huYW0iIH0sCisgICAgICAgIHsgICAiRGF5IG9mIFByYXllciBhbmQgUmVwZW50YW5jZSIsICJCdVx1MDBkZi0gdW5kIEJldHRhZyIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICAgICAgICAgIk9zdGVybW9ubnRhZyIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgU3VuZGF5IiwgICAgICAgICAgICAgICAgIk9zdGVyc29ubnRhZyIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICAgICAgICAgIkhlaWxpZ2UgMyBLXHUwMGY2bmlnZSIgfSwKKyAgICAgICAgeyAgICJGYXRoZXIncyBEYXkiLCAgICAgICAgICAgICAgICAgIlZhdGVydGFnIiB9LAorICAgICAgICB7ICAgIkZsYWcgRGF5IiwgICAgICAgICAgICAgICAgICAgICAiSmFocmVzdGFnIGRlciBOYXRpb25hbGZsYWdnZSIgfSwKKyAgICAgICAgeyAgICJHZXJtYW4gVW5pdHkgRGF5IiwgICAgICAgICAgICAgIlRhZyBkZXIgZGV1dHNjaGVuIEVpbmhlaXQiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAgICAgICAgICJLYXJmcmVpdGFnIiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgICAgICAgICAiQWJlbmQgdm9yIEFsbGVyaGVpbGlnZW4iIH0sCisgICAgICAgIHsgICAiSW1tYWN1bGF0ZSBDb25jZXB0aW9uIiwgICAgICAgICJNYXJpXHUwMGU0IEVtcGZcdTAwZTRuZ25pcyIgfSwKKyAgICAgICAgeyAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICAgICAgICAgIlVuYWJoXHUwMGU0bmdpZ2tlaXRzdGFnIiB9LAorICAgICAgICB7ICAgIkxhYm9yIERheSIsICAgICAgICAgICAgICAgICAgICAiVGFnIGRlciBBcmJlaXQiIH0sCisgICAgICAgIHsgICAiTGliZXJhdGlvbiBEYXkiLCAgICAgICAgICAgICAgICJCZWZyZWl1bmdzdGFnIiB9LAorICAgICAgICB7ICAgIk1hcmRpIEdyYXMiLCAgICAgICAgICAgICAgICAgICAiRmFzY2hpbmdzZGllbnN0YWciIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAgICAgICAgICJHclx1MDBmY25kb25uZXJzdGFnIiB9LAorICAgICAgICB7ICAgIk1heSBEYXkiLCAgICAgICAgICAgICAgICAgICAgICAiTWFpZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgICAgICJUYWcgZGVzIEdlZGVua2VucyIgfSwKKyAgICAgICAgeyAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICAgICAgICAgIk11dHRlcnRhZyIgfSwKKyAgICAgICAgeyAgICJOYXRpb25hbCBIb2xpZGF5IiwgICAgICAgICAgICAgIk5hdGlvbmFsZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAgICAgICAgICJOZXVqYWhyIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRXZlIiwgICAgICAgICAgICAgICAiU2lsdmVzdGVyYWJlbmQiIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAgICAgICAgICJQYWxtc29ubnRhZyIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICAgICAgICAgIlBmaW5nc3RlbiIgfSwKKyAgICAgICAgeyAgICJQcmVzaWRlbnRzJyBEYXkiLCAgICAgICAgICAgICAgIlByXHUwMGU0c2lkZW50c3RhZyIgfSwKKyAgICAgICAgeyAgICJSZW1lbWJyYW5jZSBEYXkiLCAgICAgICAgICAgICAgIlZvbGtzdHJhdWVydGFnIiB9LAorICAgICAgICB7ICAgIlJldm9sdXRpb24gRGF5IiwgICAgICAgICAgICAgICAiSmFocmVzdGFnIGRlciBSZXZvbHV0aW9uIiB9LAorICAgICAgICB7ICAgIlJvc2UgTW9uZGF5IiwgICAgICAgICAgICAgICAgICAiUm9zZW5tb250YWciIH0sCisgICAgICAgIHsgICAiU3QuIFN0ZXBoZW4ncyBEYXkiLCAgICAgICAgICAgICJTdGVwaGFuaXRhZyIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICAgICAgICAgIkZhc2NoaW5nc2RpZW5zdGFnIiB9LAorICAgICAgICB7ICAgIlNwcmluZyBIb2xpZGF5IiwgICAgICAgICAgICAgICAiVGFnIGRlcyBGclx1MDBmY2hsaW5ncyIgfSwKKyAgICAgICAgeyAgICJTdW1tZXIgQmFuayBIb2xpZGF5IiwgICAgICAgICAgIkJhbmtmZWllcnRhZyIgfSwKKyAgICAgICAgeyAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICAgICAgICAgIkRhbmtmZXN0IiB9LAorICAgICAgICB7ICAgIlVuaXR5IERheSIsICAgICAgICAgICAgICAgICAgICAiRWluaGVpdHN0YWciIH0sCisgICAgICAgIHsgICAiVmV0ZXJhbnMnIERheSIsICAgICAgICAgICAgICAgICJWZXRlcmFuc3RhZyIgfSwKKyAgICAgICAgeyAgICJWaWN0b3J5IERheSIsICAgICAgICAgICAgICAgICAgIlRhZyBkZXIgQmVmcmVpdW5nIiB9LAorICAgICAgICB7ICAgIldhc2hpbmd0b24ncyBCaXJ0aGRheSIsICAgICAgICAiV2FzaGluZ3RvbnMgR2VidXJ0c3RhZyIgfSwKKyAgICAgICAgeyAgICJXaGl0IE1vbmRheSIsICAgICAgICAgICAgICAgICAgIlBmaW5nc3Rtb250YWciIH0sCisgICAgICAgIHsgICAiV2hpdCBTdW5kYXkiLCAgICAgICAgICAgICAgICAgICJQZmluZ3N0c29ubnRhZyIgfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfQVQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9BVC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlNmY3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfQVQuamF2YQpAQCAtMCwwICsxLDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGVfQVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5FUElQSEFOWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkNPUlBVU19DSFJJU1RJLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFTU1VNUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuSU1NQUNVTEFURV9DT05DRVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5TVF9TVEVQSEVOU19EQVksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMSwgIDAsICAgICAgICAgICAgICAgIk5hdGlvbmFsIEhvbGlkYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgIk5hdGlvbmFsIEhvbGlkYXkiKSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICAvLyBPbmx5IGhvbGlkYXlzIG5hbWVzIGRpZmZlcmVudCBmcm9tIHRob3NlIHVzZWQgaW4gR2VybWFueSBhcmUgbGlzdGVkIGhlcmUKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgIkNocmlzdHRhZyIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgIk5ldWphaHJzdGFnIiB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfREUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kZV9ERS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzOWZlZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfREUuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGVfREUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICAgIDE1LCAgQ2FsZW5kYXIuV0VETkVTREFZLCAgIk1lbW9yaWFsIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICAzLCAgMCwgICAgICAgICAgICAgICAgICAgIlVuaXR5IERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDE4LCAgMCwgICAgICAgICAgICAgICAgICAgIkRheSBvZiBQcmF5ZXIgYW5kIFJlcGVudGFuY2UiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5ZDc2YmE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPQorICAgIHsKKyAgICAgICAgeyAgICJBc3N1bXB0aW9uIiwgICAgICAgICAgICIxNSBcdTAzOTFcdTAzY2RcdTAzYjNcdTAzYmZcdTAzY2RcdTAzYzNcdTAzYzRcdTAzYmZcdTAzYzUiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAiXHUwMzk0XHUwM2I1XHUwM2NkXHUwM2M0XHUwM2I1XHUwM2MxXHUwM2I3IFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiMSBcdTAzYzRcdTAzY2VcdTAzYmQgXHUwM2E3XHUwM2MxXHUwM2I5XHUwM2MzXHUwM2M0XHUwM2JmXHUwM2M1XHUwM2IzXHUwM2FkXHUwM2JkXHUwM2JkXHUwM2M5XHUwM2JkIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgIlx1MDNhN1x1MDNjMVx1MDNiOVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjZFx1MDNiM1x1MDNiNVx1MDNiZFx1MDNiZFx1MDNiMSIgfSwKKyAgICAgICAgeyAgICJDbGVhbiBNb25kYXkiLCAgICAgICAgICJcdTAzOWFcdTAzYjFcdTAzYjhcdTAzYjFcdTAzYzFcdTAzYWUgXHUwMzk0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2FkXHUwM2MxXHUwM2IxIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBNb25kYXkiLCAgICAgICAgIlx1MDM5NFx1MDNiNVx1MDNjZFx1MDNjNFx1MDNiNVx1MDNjMVx1MDNiNyBcdTAzYmNcdTAzYWRcdTAzYzFcdTAzYjEgXHUwM2M0XHUwM2JmXHUwM2NkIFx1MDNhMFx1MDNhY1x1MDNjM1x1MDNjN1x1MDNiMSIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICJcdTAzODhcdTAzYzBcdTAzYjlcdTAzYzZcdTAzYWNcdTAzYmRcdTAzYjVcdTAzYjlcdTAzYjEiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAiXHUwMzljXHUwM2I1XHUwM2IzXHUwM2FjXHUwM2JiXHUwM2I3IFx1MDNhMFx1MDNiMVx1MDNjMVx1MDNiMVx1MDNjM1x1MDNiYVx1MDNiNVx1MDNjNVx1MDNhZSIgfSwKKyAgICAgICAgeyAgICJNYXkgRGF5IiwgICAgICAgICAgICAgICJcdTAzYTBcdTAzYzFcdTAzYzlcdTAzYzRcdTAzYmZcdTAzYmNcdTAzYjFcdTAzYjNcdTAzYjlcdTAzYWMiIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAiXHUwM2EwXHUwM2MxXHUwM2M5XHUwM2M0XHUwM2JmXHUwM2M3XHUwM2MxXHUwM2JmXHUwM2JkXHUwM2I5XHUwM2FjIiB9LAorICAgICAgICB7ICAgIk9jaGkgRGF5IiwgICAgICAgICAgICAgIjI4IFx1MDM4Y1x1MDNiYVx1MDNjNFx1MDNjOVx1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNSIgfSwKKyAgICAgICAgeyAgICJXaGl0IE1vbmRheSIsICAgICAgICAgICJcdTAzOTRcdTAzYjVcdTAzY2RcdTAzYzRcdTAzYjVcdTAzYzFcdTAzYjcgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIFx1MDNjNFx1MDNiZlx1MDNjZCBcdTAzYTBcdTAzYjVcdTAzYmRcdTAzYzRcdTAzYjdcdTAzYmFcdTAzYmZcdTAzYzNcdTAzYzRcdTAzYWUiIH0sCisKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsX0dSLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZTFmYWJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsX0dSLmphdmEKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VsX0dSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuRVBJUEhBTlksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFSQ0gsICAgICAyNSwgIDAsICAgICJJbmRlcGVuZGVuY2UgRGF5IiksCisKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFTU1VNUFRJT04sCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAyOCwgIDAsICAgICJPY2hpIERheSIpLAorCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzIGluIHRoZSBPcnRob2RveCBjYWxlbmRhcgorICAgICAgICBuZXcgRWFzdGVySG9saWRheSgtMiwgICB0cnVlLCAiR29vZCBGcmlkYXkiKSwKKyAgICAgICAgbmV3IEVhc3RlckhvbGlkYXkoIDAsICAgdHJ1ZSwgIkVhc3RlciBTdW5kYXkiKSwKKyAgICAgICAgbmV3IEVhc3RlckhvbGlkYXkoIDEsICAgdHJ1ZSwgIkVhc3RlciBNb25kYXkiKSwKKyAgICAgICAgbmV3IEVhc3RlckhvbGlkYXkoNTAsICAgdHJ1ZSwgIldoaXQgTW9uZGF5IiksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJob2xpZGF5cyIsICAgICAgICAgZkhvbGlkYXlzICAgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmM1MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuLmphdmEKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICAvLyBOb3JtYWxseSwgZWFjaCBIb2xpZGF5QnVuZGxlIHVzZXMgdGhlIGhvbGlkYXkncyBVUyBFbmdsaXNoIG5hbWUKKyAgICAvLyBhcyB0aGUgc3RyaW5nIGtleSBmb3IgbG9va2luZyB1cCB0aGUgbG9jYWxpemVkIG5hbWUuICBUaGlzIG1lYW5zCisgICAgLy8gdGhhdCB0aGUga2V5IGl0c2VsZiBjYW4gYmUgdXNlZCBpZiBubyBuYW1lIGlzIGZvdW5kIGZvciB0aGUgcmVxdWVzdGVkCisgICAgLy8gbG9jYWxlLgorICAgIC8vCisgICAgLy8gRm9yIGhvbGlkYXlzIHdoZXJlIHRoZSBrZXkgaXMgX25vdF8gdGhlIEVuZ2xpc2ggbmFtZSwgZS5nLiBpbiB0aGUKKyAgICAvLyBjYXNlIG9mIGNvbmZsaWN0cywgdGhlIEVuZ2xpc2ggbmFtZSBtdXN0IGJlIGdpdmVuIGhlcmUuCisgICAgLy8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICIiLCAiIiAgfSwgICAgICAvLyBDYW4ndCBiZSBlbXB0eSEKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9DQS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0NBLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGU5ZjgwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9DQS5qYXZhCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9DQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgIDE5LCAwLCAgICAgICAgICAgICAgICAgICJWaWN0b3JpYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAgMSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuYWRhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BVUdVU1QsICAgICAxLCBDYWxlbmRhci5NT05EQVksICAgICJDaXZpYyBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLlNFUFRFTUJFUiwgIDEsIENhbGVuZGFyLk1PTkRBWSwgICAgIkxhYm9yIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICA4LCBDYWxlbmRhci5NT05EQVksICAgICJUaGFua3NnaXZpbmciKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgMCwgICAgICAgICAgICAgICAgICAiUmVtZW1icmFuY2UgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0VWRSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgLy9oZXkge2pmfSAtIHdoZXJlIGFyZSB0aGVzZSBmcm9tPworLy8gICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisvLyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorLy8gICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICB7ICJMYWJvciBEYXkiLCAgIkxhYm91ciBEYXkiIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9HQi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX0dCLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWE3MTQyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9HQi5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9HQiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgIlNwcmluZyBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAgICAiU3VtbWVyIEJhbmsgSG9saWRheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgIkNocmlzdG1hcyBIb2xpZGF5IiksCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICB7ICJMYWJvciBEYXkiLCAgIkxhYm91ciBEYXkiIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9VUy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuX1VTLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTFkMTUzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9VUy5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAxNSwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJNYXJ0aW4gTHV0aGVyIEtpbmcgRGF5IiwgICAxOTg2KSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgIDE1LCBDYWxlbmRhci5NT05EQVksICAgICAgIlByZXNpZGVudHMnIERheSIsICAgICAgICAgIDE5NzYpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgIDIyLCAgICAgICAgICAgICAgICAgICAgICAgIldhc2hpbmd0b24ncyBCaXJ0aGRheSIsICAgIDE3NzYsIDE5NzUpLAorCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA4LCBDYWxlbmRhci5TVU5EQVksICAgICAgIk1vdGhlcidzIERheSIsICAgICAgICAgICAgIDE5MTQpLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMzEsIC1DYWxlbmRhci5NT05EQVksICAgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgMTk3MSksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMzAsICAgICAgICAgICAgICAgICAgICAgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgMTg2OCwgMTk3MCksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAxNSwgQ2FsZW5kYXIuU1VOREFZLCAgICAgICJGYXRoZXIncyBEYXkiLCAgICAgICAgICAgICAxOTU2KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICAgICAxNzc2KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuU0VQVEVNQkVSLCAgMSwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJMYWJvciBEYXkiLCAgICAgICAgICAgICAgICAxODk0KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAgMiwgQ2FsZW5kYXIuVFVFU0RBWSwgICAgICJFbGVjdGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAgOCwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJDb2x1bWJ1cyBEYXkiLCAgICAgICAgICAgICAxOTcxKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiAsICAzMSwgICAgICAgICAgICAgICAgICAgICAgICJIYWxsb3dlZW4iKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgICAgICAgICAgICAgICAgICAgICAgICJWZXRlcmFucycgRGF5IiwgICAgICAgICAgICAxOTE4KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAyMiwgQ2FsZW5kYXIuVEhVUlNEQVksICAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICAgICAxODYzKSwKKworICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQ5MjU2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lcy5qYXZhCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIkFsbCBTYWludHMnIERheSIsICAgICAgICAgICJUb2RvcyBsb3MgU2FudG9zIiB9LAorICAgICAgICB7ICAgIkFybWlzdGljZSBEYXkiLCAgICAgICAgICAgICJEXHUwMGVkYSBkZWwgQXJtaXN0aWNpbyIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICAgICAiQXNjZW5zaVx1MDBmM24iIH0sCisgICAgICAgIHsgICAiQmVuaXRvIEp1XHUwMGUxcmV6IERheSIsICAgICAgICAiRFx1MDBlZGEgZGUgbGEgQmVuaXRvIEp1XHUwMGUxcmV6IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgICAgICJEXHUwMGVkYSBlbiBxdWUgc2UgZGFuIEFndWluYWxkb3MgTmF2aWRlXHUwMGYxb3MiIH0sCisgICAgICAgIHsgICAiQ2FuYWRhIERheSIsICAgICAgICAgICAgICAgIkRcdTAwZWRhIGRlbCBDYW5hZFx1MDBlMSIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMgRXZlIiwgICAgICAgICAgICAiVlx1MDBFRHNwZXJhIGRlIE5hdmlkYWQiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAgICAgIk5hdmlkYWQiIH0sCisgICAgICAgIHsgICAiQ29uc3RpdHV0aW9uIERheSIsICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIENvbnN0aXR1Y2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIkRheSBvZiB0aGUgRGVhZCIsICAgICAgICAgICJEXHUwMGVkYSBkZSBsb3MgTXVlcnRvcyIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgU3VuZGF5IiwgICAgICAgICAgICAiUGFzY3VhIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBNb25kYXkiLCAgICAgICAgICAgICJQYXNjdWEgTHVuZXMiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAgICAgIkVwaWZhblx1MDBlZGEiIH0sCisgICAgICAgIHsgICAiRmF0aGVyJ3MgRGF5IiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlbCBQYWRyZSIgfSwKKyAgICAgICAgeyAgICJGbGFnIERheSIsICAgICAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgQmFuZGVyYSIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICAgICAiVmllcm5lcyBTYW50byIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICAgICAidlx1MDBlZHNwZXJhIGRlIFRvZG9zIGxvcyBTYW50b3MiIH0sCisgICAgICAgIHsgICAiSW5kZXBlbmRlbmNlIERheSIsICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIEluZGVwZW5kZW5jaWEiIH0sCisgICAgICAgIHsgICAiTGFib3IgRGF5IiwgICAgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIFRyYWJhamFkb3JlcyIgfSwKKyAgICAgICAgeyAgICJNYXVuZHkgVGh1cnNkYXkiLCAgICAgICAgICAiSnVldmVzIFNhbnRvIiB9LAorICAgICAgICB7ICAgIk1heSBEYXkiLCAgICAgICAgICAgICAgICAgICJQcmltZXJvIGRlIE1heW8iIH0sCisgICAgICAgIHsgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIFJlbWVtb3JhY2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIk1vdGhlcidzIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBNYWRyZSIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICAgICAiQVx1MDBmMW8gTnVldm8iIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAgICAgIkRvbWluZ28gZGUgUmFtb3MiIH0sCisgICAgICAgIHsgICAiUGVudGVjb3N0IiwgICAgICAgICAgICAgICAgIlBlbnRlY29zdFx1MDBlOXMiIH0sCisgICAgICAgIHsgICAiUHJlc2lkZW50cycgRGF5IiwgICAgICAgICAgIkRcdTAwZWRhIGRlIFByZXNpZGVudGVzIiB9LAorICAgICAgICB7ICAgIlJldm9sdXRpb24gRGF5IiwgICAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBSZXZvbHVjaVx1MDBmM24iIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAgICAgIk1hcnRlcyBkZSBDYXJuYXZhbCIgfSwKKyAgICAgICAgeyAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgQWNjaVx1MDBmM24gZGUgR3JhY2lhcyIgfSwKKyAgICAgICAgeyAgICJWZXRlcmFucycgRGF5IiwgICAgICAgICAgICAiRFx1MDBlZGEgZGUgVmV0ZXJhbm9zIiB9LAorICAgICAgICB7ICAgIlZpY3RvcmlhIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBWaWN0b3JpYSIgfSwKKyAgICAgICAgeyAgICJXaGl0IFN1bmRheSIsICAgICAgICAgICAgICAiUGVudGVjb3N0XHUwMGU5cyIgfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXNfTVguamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjNTJmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXNfTVguamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZXNfTVggZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuRkVCUlVBUlksICAgNSwgIDAsICAgICJDb25zdGl0dXRpb24gRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BUkNILCAgICAgMjEsICAwLCAgICAiQmVuaXRvIEp1XHUwMEUxcmV6IERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk1BWV9EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDUsICAwLCAgICAiQ2luY28gZGUgTWF5byIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICAgICAxLCAgMCwgICAgIk5hdnkgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLlNFUFRFTUJFUiwgMTYsICAwLCAgICAiSW5kZXBlbmRlbmNlIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgIDEyLCAgMCwgICAgIkRcdTAwRURhIGRlIGxhIFJhemEiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAgMiwgIDAsICAgICJEYXkgb2YgdGhlIERlYWQiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAyMCwgIDAsICAgICJSZXZvbHV0aW9uIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDEyLCAgMCwgICAgIkZsYWcgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTY0Nzc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyLmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9mciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAiVG91c3NhaW50IiB9LAorICAgICAgICB7ICAgIkFybWlzdGljZSBEYXkiLCAgICAgICAgIkpvdXIgZGUgbCdBcm1pc3RpY2UiIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAiQXNjZW5zaW9uIiB9LAorICAgICAgICB7ICAgIkJhc3RpbGxlIERheSIsICAgICAgICAgIkZcdTAwRUF0ZSBkZSBsYSBCYXN0aWxsZSIgfSwKKyAgICAgICAgeyAgICJCZW5pdG8gSnVcdTAwRTFyZXogRGF5IiwgICAgIkZcdTAwRUF0ZSBkZSBCZW5pdG8gSnVcdTAwRTFyZXoiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAiTGVuZGVtYWluIGRlIE5vXHUwMEVCbCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMgRXZlIiwgICAgICAgICJWZWlsbGUgZGUgTm9cdTAwRUJsIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgIk5vXHUwMEVCbCIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICJQXHUwMEUycXVlcyBsdW5kaSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgU3VuZGF5IiwgICAgICAgICJQXHUwMEUycXVlcyIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICJsJ1x1MDBDOXBpcGhhbmllIiB9LAorICAgICAgICB7ICAgIkZsYWcgRGF5IiwgICAgICAgICAgICAgIkZcdTAwRUF0ZSBkdSBEcmFwZWF1IiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgIlZlbmRyZWRpIFNhaW50IiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgIlZlaWxsZSBkZSBsYSBUb3Vzc2FpbnQiIH0sCisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAiVG91c3NhaW50IiB9LAorICAgICAgICB7ICAgIkluZGVwZW5kZW5jZSBEYXkiLCAgICAgIkZcdTAwRUF0ZSBJbmRcdTAwRTlwZW5kYW5jZSIgfSwKKyAgICAgICAgeyAgICJNYXVuZHkgVGh1cnNkYXkiLCAgICAgICJKZXVkaSBTYWludCIgfSwKKyAgICAgICAgeyAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgZGVzIG1cdTAwRThyZXMiIH0sCisgICAgICAgIHsgICAiTmF0aW9uYWwgRGF5IiwgICAgICAgICAiRlx1MDBFQXRlIE5hdGlvbmFsZSIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICJKb3VyIGRlIGwnYW4iIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAibGVzIFJhbWVhdXgiIH0sCisgICAgICAgIHsgICAiUGVudGVjb3N0IiwgICAgICAgICAgICAiUGVudGVjXHUwMEY0dGUiIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAiTWFyZGkgR3JhcyIgfSwKKyAgICAgICAgeyAgICJTdC4gU3RlcGhlbidzIERheSIsICAgICJTYWludC1cdTAwQzl0aWVubmUiIH0sCisgICAgICAgIHsgICAiVmljdG9yaWEgRGF5IiwgICAgICAgICAiRlx1MDBFQXRlIGRlIGxhIFZpY3RvcmlhIiB9LAorICAgICAgICB7ICAgIlZpY3RvcnkgRGF5IiwgICAgICAgICAgIkZcdTAwRUF0ZSBkZSBsYSBWaWN0b2lyZSIgfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9DQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkMzQ3NzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YQpAQCAtMCwwICsxLDM3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZnJfQ0EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpBTlVBUlksICAgIDEsICAwLCAgICAgICAgICAgICAgICAgICJOZXcgWWVhcidzIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgIDE5LCAgMCwgICAgICAgICAgICAgICAgICAiVmljdG9yaWEgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTkUsICAgICAgMjQsICAwLCAgICAgICAgICAgICAgICAgICJOYXRpb25hbCBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIkNhbmFkYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAgICAgMSwgIENhbGVuZGFyLk1PTkRBWSwgICAgIkNpdmljIEhvbGlkYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuU0VQVEVNQkVSLCAgMSwgIENhbGVuZGFyLk1PTkRBWSwgICAgIkxhYm91ciBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAgOCwgIENhbGVuZGFyLk1PTkRBWSwgICAgIlRoYW5rc2dpdmluZyIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDExLCAgMCwgICAgICAgICAgICAgICAgICAiUmVtZW1icmFuY2UgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0VWRSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9GUi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI0NGE5YjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YQpAQCAtMCwwICsxLDM2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZnJfRlIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMSwgIDAsICJMYWJvciBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgOCwgIDAsICJWaWN0b3J5IERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVUxZLCAgICAgIDE0LCAgMCwgIkJhc3RpbGxlIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFTU1VNUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTEsICAwLCAiQXJtaXN0aWNlIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMTJiZGM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9pdCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPQorICAgIHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICJPZ25pc3NhbnRpIiB9LAorICAgICAgICB7ICAgIkFybWlzdGljZSBEYXkiLCAgICAgICAgImFybWlzdGl6aW8iIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAiYXNjZW5zaW9uZSIgfSwKKyAgICAgICAgeyAgICJBc2ggV2VkbmVzZGF5IiwgICAgICAgICJtZXJjb2xlZFx1MDBlYyBkZWxsZSBjZW5lcmkiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAiU2FudG8gU3RlZmFubyIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICJuYXRhbGUiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIFN1bmRheSIsICAgICAgICAicGFzcXVhIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgIkVwaWZhbmlhIiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgInZlbmVyZFx1MDBlYyBzYW50byIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICJ2aWdpbGlhIGRpIE9nbmlzc2FudGkiIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAiZ2lvdmVkXHUwMGVjIHNhbnRvIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgImFubm8gbnVvdm8iIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAiZG9tZW5pY2EgZGVsbGUgcGFsbWUiIH0sCisgICAgICAgIHsgICAiUGVudGVjb3N0IiwgICAgICAgICAgICAiZGkgUGVudGVjb3N0ZSIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICJtYXJ0ZWRpIGdyYXNzbyIgfSwKKyAgICAgICAgeyAgICJTdC4gU3RlcGhlbidzIERheSIsICAgICJTYW50byBTdGVmYW5vIiB9LAorICAgICAgICB7ICAgIlRoYW5rc2dpdmluZyIsICAgICAgICAgIkdpb3JubyBkZWwgUmluZ3JhemlhbWVudG8iIH0sCisKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0X0lULmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTk2NDhmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0X0lULmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2l0X0lUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuRVBJUEhBTlksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFQUklMLCAgICAgIDEsICAwLCAgICAiTGliZXJhdGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMSwgIDAsICAgICJMYWJvciBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BU1NVTVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LklNTUFDVUxBVEVfQ09OQ0VQVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMjYsICAwLCAgICAiU3QuIFN0ZXBoZW5zIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19FVkUsCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICAgICAgICAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXcuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzYWI3ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXcuamF2YQpAQCAtMCwwICsxLDIwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2l3IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIiIsICIiICB9LCAgICAgIC8vIENhbid0IGJlIGVtcHR5IQorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3X0lMLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXdfSUwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDYwYjA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3X0lMLmphdmEKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXdfSUwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIEhlYnJld0hvbGlkYXkuUk9TSF9IQVNIQU5BSCwKKyAgICAgICAgSGVicmV3SG9saWRheS5ZT01fS0lQUFVSLAorICAgICAgICBIZWJyZXdIb2xpZGF5LkhBTlVLS0FILAorICAgICAgICBIZWJyZXdIb2xpZGF5LlBVUklNLAorICAgICAgICBIZWJyZXdIb2xpZGF5LlBBU1NPVkVSLAorICAgICAgICBIZWJyZXdIb2xpZGF5LlNIQVZVT1QsCisgICAgICAgIEhlYnJld0hvbGlkYXkuU0VMSUhPVCwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2phX0pQLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lN2VmOGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2phX0pQLmphdmEKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2phX0pQIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgIDExLCAgMCwgICAgIk5hdGlvbmFsIEZvdW5kYXRpb24gRGF5IiksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJob2xpZGF5cyIsICAgICAgICAgZkhvbGlkYXlzICAgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9SZXNvdXJjZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9SZXNvdXJjZVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiMmVmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Jlc291cmNlUmVhZGVyLmphdmEKQEAgLTAsMCArMSwyMjkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEEgcmVhZGVyIGZvciB0ZXh0IHJlc291cmNlIGRhdGEgaW4gdGhlIGN1cnJlbnQgcGFja2FnZSBvciB0aGUgcGFja2FnZQorICogb2YgYSBnaXZlbiBjbGFzcyBvYmplY3QuICBUaGUKKyAqIHJlc291cmNlIGRhdGEgaXMgbG9hZGVkIHRocm91Z2ggdGhlIGNsYXNzIGxvYWRlciwgc28gaXQgd2lsbAorICogdHlwaWNhbGx5IGJlIGEgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlICouY2xhc3MgZmlsZXMsIG9yCisgKiBhIGZpbGUgd2l0aGluIGEgSkFSIGZpbGUgaW4gdGhlIGNvcnJlc3BvbmRpbmcgc3ViZGlyZWN0b3J5LiAgVGhlCisgKiBmaWxlIG11c3QgYmUgYSB0ZXh0IGZpbGUgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgZW5jb2RpbmdzOyB3aGVuIHRoZQorICogcmVzb3VyY2UgaXMgb3BlbmVkIGJ5IGNvbnN0cnVjdGluZyBhIDxjb2RlPlJlc291cmNlUmVhZGVyPC9jb2RlPgorICogb2JqZWN0IHRoZSBlbmNvZGluZyBpcyBzcGVjaWZpZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VSZWFkZXIgeworICAgIHByaXZhdGUgQnVmZmVyZWRSZWFkZXIgcmVhZGVyOworICAgIHByaXZhdGUgU3RyaW5nIHJlc291cmNlTmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZzsgLy8gbnVsbCBmb3IgZGVmYXVsdCBlbmNvZGluZworICAgIHByaXZhdGUgQ2xhc3Mgcm9vdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgb25lLWJhc2VkIGxpbmUgbnVtYmVyLiBIYXMgdGhlIHNwZWNpYWwgdmFsdWUgLTEgYmVmb3JlIHRoZQorICAgICAqIG9iamVjdCBpcyBpbml0aWFsaXplZC4gSGFzIHRoZSBzcGVjaWFsIHZhbHVlIDAgYWZ0ZXIgaW5pdGlhbGl6YXRpb24KKyAgICAgKiBidXQgYmVmb3JlIHRoZSBmaXJzdCBsaW5lIGlzIHJlYWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZU5vOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVhZGVyIG9iamVjdCBmb3IgdGhlIHRleHQgZmlsZSBvZiB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIGluIHRoaXMgcGFja2FnZSwgdXNpbmcgdGhlIGdpdmVuIGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoaXMKKyAgICAgKiBwYWNrYWdlJ3MgIi5kYXRhIiBzdWJwYWNrYWdlLgorICAgICAqIEBwYXJhbSBlbmNvZGluZyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHRleHQgZmlsZTsgaWYgdW5zdXBwb3J0ZWQKKyAgICAgKiBhbiBleGNlcHRpb24gaXMgdGhyb3duCisgICAgICogQGV4Y2VwdGlvbiBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGlmCisgICAgICogPGNvZGU+ZW5jb2Rpbmc8L2NvZGU+IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpESy4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVzb3VyY2VSZWFkZXIoU3RyaW5nIHJlc291cmNlTmFtZSwgU3RyaW5nIGVuY29kaW5nKQorICAgICAgICB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMoSUNVRGF0YS5jbGFzcywgImRhdGEvIiArIHJlc291cmNlTmFtZSwgZW5jb2RpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlYWRlciBvYmplY3QgZm9yIHRoZSB0ZXh0IGZpbGUgb2YgdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBpbiB0aGlzIHBhY2thZ2UsIHVzaW5nIHRoZSBkZWZhdWx0IGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoaXMKKyAgICAgKiBwYWNrYWdlJ3MgIi5kYXRhIiBzdWJwYWNrYWdlLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHRoaXMoSUNVRGF0YS5jbGFzcywgImRhdGEvIiArIHJlc291cmNlTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVhZGVyIG9iamVjdCBmb3IgdGhlIHRleHQgZmlsZSBvZiB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIGluIHRoZSBnaXZlbiBjbGFzcydzIHBhY2thZ2UsIHVzaW5nIHRoZSBnaXZlbiBlbmNvZGluZy4KKyAgICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSB0ZXh0IGZpbGUgbG9jYXRlZCBpbiB0aGUKKyAgICAgKiBnaXZlbiBjbGFzcydzIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGVuY29kaW5nIHRoZSBlbmNvZGluZyBvZiB0aGUgdGV4dCBmaWxlOyBpZiB1bnN1cHBvcnRlZAorICAgICAqIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KKyAgICAgKiBAZXhjZXB0aW9uIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gaWYKKyAgICAgKiA8Y29kZT5lbmNvZGluZzwvY29kZT4gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSkRLLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihDbGFzcyByb290Q2xhc3MsIFN0cmluZyByZXNvdXJjZU5hbWUsIFN0cmluZyBlbmNvZGluZykKKyAgICAgICAgdGhyb3dzIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24geworICAgICAgICB0aGlzLnJvb3QgPSByb290Q2xhc3M7CisgICAgICAgIHRoaXMucmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lOworICAgICAgICB0aGlzLmVuY29kaW5nID0gZW5jb2Rpbmc7CisgICAgICAgIGxpbmVObyA9IC0xOworICAgICAgICBfcmVzZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICAgcHVibGljIFJlc291cmNlUmVhZGVyKElucHV0U3RyZWFtIGlzLCBTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgICB0aGlzLnJvb3QgPSBudWxsOworICAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSByZXNvdXJjZU5hbWU7CisgICAgICAgICB0aGlzLmVuY29kaW5nID0gbnVsbDsKKworICAgICAgICAgdGhpcy5saW5lTm8gPSAtMTsKKyAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gKGVuY29kaW5nID09IG51bGwpIAorICAgICAgICAgICAgICAgICA/IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcykKKyAgICAgICAgICAgICAgICAgOiBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsIGVuY29kaW5nKTsKKworICAgICAgICAgICAgIHRoaXMucmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgICAgICAgdGhpcy5saW5lTm89IDA7CisgICAgICAgICB9CisgICAgICAgICBjYXRjaCAoVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICB9CisgICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlYWRlciBvYmplY3QgZm9yIHRoZSB0ZXh0IGZpbGUgb2YgdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gY2xhc3MncyBwYWNrYWdlLCB1c2luZyB0aGUgZGVmYXVsdCBlbmNvZGluZy4KKyAgICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSB0ZXh0IGZpbGUgbG9jYXRlZCBpbiB0aGUKKyAgICAgKiBnaXZlbiBjbGFzcydzIHBhY2thZ2UuCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlUmVhZGVyKENsYXNzIHJvb3RDbGFzcywgU3RyaW5nIHJlc291cmNlTmFtZSkgeworICAgICAgICB0aGlzLnJvb3QgPSByb290Q2xhc3M7CisgICAgICAgIHRoaXMucmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lOworICAgICAgICB0aGlzLmVuY29kaW5nID0gbnVsbDsKKyAgICAgICAgbGluZU5vID0gLTE7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfcmVzZXQoKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgYW5kIHJldHVybiB0aGUgbmV4dCBsaW5lIG9mIHRoZSBmaWxlIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogaWYgdGhlIGVuZCBvZiB0aGUgZmlsZSBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAobGluZU5vID09IDApIHsKKyAgICAgICAgICAgIC8vIFJlbW92ZSBCT01zCisgICAgICAgICAgICArK2xpbmVObzsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gcmVhZGVyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJ1x1RkZFRicgfHwKKyAgICAgICAgICAgICAgICBsaW5lLmNoYXJBdCgwKSA9PSAnXHVGRUZGJykgeworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsaW5lOworICAgICAgICB9CisgICAgICAgICsrbGluZU5vOworICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWRMaW5lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhZCBhIGxpbmUsIGlnbm9yaW5nIGJsYW5rIGxpbmVzIGFuZCBsaW5lcyB0aGF0IHN0YXJ0IHdpdGgKKyAgICAgKiAnIycuCisgICAgICogQHBhcmFtIHRyaW0gaWYgdHJ1ZSB0aGVuIHRyaW0gbGVhZGluZyBydWxlIHdoaXRlIHNwYWNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKGJvb2xlYW4gdHJpbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSByZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gU2tpcCBvdmVyIHdoaXRlIHNwYWNlCisgICAgICAgICAgICBpbnQgcG9zID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShsaW5lLCAwKTsKKyAgICAgICAgICAgIC8vIElnbm9yZSBibGFuayBsaW5lcyBhbmQgY29tbWVudCBsaW5lcworICAgICAgICAgICAgaWYgKHBvcyA9PSBsaW5lLmxlbmd0aCgpIHx8IGxpbmUuY2hhckF0KHBvcykgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBQcm9jZXNzIGxpbmUKKyAgICAgICAgICAgIGlmICh0cmltKSBsaW5lID0gbGluZS5zdWJzdHJpbmcocG9zKTsKKyAgICAgICAgICAgIHJldHVybiBsaW5lOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgbGluZSwgaWdub3JpbmcgYmxhbmsgbGluZXMgYW5kIGxpbmVzIHRoYXQgc3RhcnQgd2l0aAorICAgICAqICcjJy4gRG8gbm90IHRyaW0gbGVhZGluZyBydWxlIHdoaXRlIHNwYWNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cyhmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvbmUtYmFzZWQgbGluZSBudW1iZXIgb2YgdGhlIGxhc3QgbGluZSByZXR1cm5lZCBieQorICAgICAqIHJlYWRMaW5lKCkgb3IgcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKCkuIFNob3VsZCBvbmx5IGJlIGNhbGxlZAorICAgICAqIGFmdGVyIGEgY2FsbCB0byBvbmUgb2YgdGhlc2UgbWV0aG9kczsgb3RoZXJ3aXNlIHRoZSByZXR1cm4KKyAgICAgKiB2YWx1ZSBpcyB1bmRlZmluZWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMaW5lTnVtYmVyKCkgeworICAgICAgICByZXR1cm4gbGluZU5vOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpcHRpb24gb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGxpbmUKKyAgICAgKiByZXR1cm5lZCBieSByZWFkTGluZSgpIG9yIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cygpLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZGVzY3JpYmVQb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHJlc291cmNlTmFtZSArICc6JyArIGxpbmVObzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyByZWFkZXIgc28gdGhhdCB0aGUgbmV4dCBjYWxsIHRvCisgICAgICogPGNvZGU+cmVhZExpbmUoKTwvY29kZT4gcmV0dXJucyB0aGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZQorICAgICAqIGFnYWluLiAgVGhpcyBpcyBhIHNvbWV3aGF0IGV4cGVuc2l2ZSBjYWxsLCBob3dldmVyLCBjYWxsaW5nCisgICAgICogPGNvZGU+cmVzZXQoKTwvY29kZT4gYWZ0ZXIgY2FsbGluZyBpdCB0aGUgZmlyc3QgdGltZSBkb2VzCisgICAgICogbm90aGluZyBpZiA8Y29kZT5yZWFkTGluZSgpPC9jb2RlPiBoYXMgbm90IGJlZW4gY2FsbGVkIGluCisgICAgICogYmV0d2Vlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIF9yZXNldCgpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIC8vIFdlIHN3YWxsb3cgdGhpcyBleGNlcHRpb24sIGlmIHRoZXJlIGlzIG9uZS4gIElmIHRoZSBlbmNvZGluZyBpcworICAgICAgICAvLyBpbnZhbGlkLCB0aGUgY29uc3RydWN0b3Igd2lsbCBoYXZlIHRocm93biB0aGlzIGV4Y2VwdGlvbiBhbHJlYWR5IGFuZAorICAgICAgICAvLyB0aGUgY2FsbGVyIHNob3VsZG4ndCB1c2UgdGhlIG9iamVjdCBhZnRlcndhcmRzLgorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRvIHRoZSBzdGFydCBieSByZWNvbnN0cnVjdGluZyB0aGUgc3RyZWFtIGFuZCByZWFkZXJzLgorICAgICAqIFdlIGNvdWxkIGFsc28gdXNlIG1hcmsoKSBhbmQgcmVzZXQoKSBvbiB0aGUgc3RyZWFtIG9yIHJlYWRlciwKKyAgICAgKiBidXQgdGhhdCB3b3VsZCBjYXVzZSB0aGVtIHRvIGtlZXAgdGhlIHN0cmVhbSBkYXRhIGFyb3VuZCBpbgorICAgICAqIG1lbW9yeS4gIFdlIGRvbid0IHdhbnQgdGhhdCBiZWNhdXNlIHNvbWUgb2YgdGhlIHJlc291cmNlIGZpbGVzCisgICAgICogYXJlIGxhcmdlLCBlLmcuLCA0MDBrLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBfcmVzZXQoKSB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChsaW5lTm8gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gSUNVRGF0YS5nZXRTdHJlYW0ocm9vdCwgcmVzb3VyY2VOYW1lKTsKKyAgICAgICAgaWYgKGlzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IG9wZW4gIiArIHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9CisgICAgICAgICAgICAoZW5jb2RpbmcgPT0gbnVsbCkgPyBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgZW5jb2RpbmcpOworICAgICAgICByZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKKyAgICAgICAgbGluZU5vID0gMDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Rva2VuSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVG9rZW5JdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MGFiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Rva2VuSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE1OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE1hcmNoIDE2IDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBBbiBpdGVyYXRvciBjbGFzcyB0aGF0IHJldHVybnMgc3VjY2Vzc2l2ZSBzdHJpbmcgdG9rZW5zIGZyb20gc29tZQorICogc291cmNlLiAgU3RyaW5nIHRva2VucyBhcmUsIGluIGdlbmVyYWwsIHNlcGFyYXRlZCBieSBydWxlIHdoaXRlCisgKiBzcGFjZSBpbiB0aGUgc291cmNlIHRlc3QuICBGdXJ0aGVybW9yZSwgdGhleSBtYXkgYmUgZGVsaW1pdGVkIGJ5CisgKiBlaXRoZXIgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXMgKG9wZW5pbmcgYW5kIGNsb3NpbmcgcXVvdGVzIG11c3QKKyAqIG1hdGNoKS4gIEVzY2FwZXMgYXJlIHByb2Nlc3NlZCB1c2luZyBzdGFuZGFyZCBJQ1UgdW5lc2NhcGluZy4KKyAqLworcHVibGljIGNsYXNzIFRva2VuSXRlcmF0b3IgeworCisgICAgcHJpdmF0ZSBSZXNvdXJjZVJlYWRlciByZWFkZXI7CisgICAgcHJpdmF0ZSBTdHJpbmcgbGluZTsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWY7CisgICAgcHJpdmF0ZSBib29sZWFuIGRvbmU7CisgICAgcHJpdmF0ZSBpbnQgcG9zOworICAgIHByaXZhdGUgaW50IGxhc3Rwb3M7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gaXRlcmF0b3Igb3ZlciB0aGUgdG9rZW5zIHJldHVybmVkIGJ5IHRoZSBnaXZlbgorICAgICAqIFJlc291cmNlUmVhZGVyLCBpZ25vcmluZyBibGFuayBsaW5lcyBhbmQgY29tbWVudCBsaW5lcyAoZmlyc3QKKyAgICAgKiBub24tYmxhbmsgY2hhcmFjdGVyIGlzICcjJykuICBOb3RlIHRoYXQgdHJhaWxpbmcgY29tbWVudHMgb24gYQorICAgICAqIGxpbmUsIGJlZ2lubmluZyB3aXRoIHRoZSBmaXJzdCB1bnF1b3RlZCAnIycsIGFyZSByZWNvZ25pemVkLgorICAgICAqLworICAgIHB1YmxpYyBUb2tlbkl0ZXJhdG9yKFJlc291cmNlUmVhZGVyIHIpIHsKKyAgICAgICAgcmVhZGVyID0gcjsKKyAgICAgICAgbGluZSA9IG51bGw7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBwb3MgPSBsYXN0cG9zID0gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuZXh0IHRva2VuIGZyb20gdGhpcyBpdGVyYXRvciwgb3IgbnVsbCBpZiB0aGUgbGFzdAorICAgICAqIHRva2VuIGhhcyBiZWVuIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHJlYWRlci5yZWFkTGluZVNraXBwaW5nQ29tbWVudHMoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsYXN0cG9zID0gcG9zOworICAgICAgICAgICAgcG9zID0gbmV4dFRva2VuKHBvcyk7CisgICAgICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBudWxsOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvbmUtYmFzZWQgbGluZSBudW1iZXIgb2YgdGhlIGxpbmUgb2YgdGhlIGxhc3QgdG9rZW4gcmV0dXJuZWQgYnkKKyAgICAgKiBuZXh0KCkuIFNob3VsZCBvbmx5IGJlIGNhbGxlZAorICAgICAqIGFmdGVyIGEgY2FsbCB0byBuZXh0KCk7IG90aGVyd2lzZSB0aGUgcmV0dXJuCisgICAgICogdmFsdWUgaXMgdW5kZWZpbmVkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGluZU51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIHJlYWRlci5nZXRMaW5lTnVtYmVyKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyBkZXNjcmlwdGlvbiBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgbGluZQorICAgICAqIHJldHVybmVkIGJ5IHJlYWRMaW5lKCkgb3IgcmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKCkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkZXNjcmliZVBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gcmVhZGVyLmRlc2NyaWJlUG9zaXRpb24oKSArICc6JyArIChsYXN0cG9zKzEpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBuZXh0IHRva2VuIGZyb20gJ3RoaXMubGluZScgYW5kIGFwcGVuZCBpdCB0bworICAgICAqICd0aGlzLmJ1ZicuICBUb2tlbnMgYXJlIHNlcGFyYXRlZCBieSBydWxlIHdoaXRlIHNwYWNlLiAgVG9rZW5zCisgICAgICogbWF5IGFsc28gYmUgZGVsaW1pdGVkIGJ5IGRvdWJsZSBvciBzaW5nbGUgcXVvdGVzLiAgVGhlIGNsb3NpbmcKKyAgICAgKiBxdW90ZSBtdXN0IG1hdGNoIHRoZSBvcGVuaW5nIHF1b3RlLiAgSWYgYSAnIycgaXMgZW5jb3VudGVyZWQsCisgICAgICogdGhlIHJlc3Qgb2YgdGhlIGxpbmUgaXMgaWdub3JlZCwgdW5sZXNzIGl0IGlzIGJhY2tzbGFzaC1lc2NhcGVkCisgICAgICogb3Igd2l0aGluIHF1b3Rlcy4KKyAgICAgKiBAcGFyYW0gcG9zIHRoZSBvZmZzZXQgaW50byB0aGUgc3RyaW5nCisgICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIG5leHQgY2hhcmFjdGVyIHRvIHJlYWQgZnJvbSBsaW5lLCBvciBpZgorICAgICAqIHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgcmVhY2hlZCB3aXRob3V0IHNjYW5uaW5nIGEgdmFsaWQgdG9rZW4sCisgICAgICogLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0VG9rZW4oaW50IHBvcykgeworICAgICAgICBwb3MgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKGxpbmUsIHBvcyk7CisgICAgICAgIGlmIChwb3MgPT0gbGluZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGludCBzdGFydHBvcyA9IHBvczsKKyAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQocG9zKyspOworICAgICAgICBjaGFyIHF1b3RlID0gMDsKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJyInOgorICAgICAgICBjYXNlICdcJyc6CisgICAgICAgICAgICBxdW90ZSA9IGM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnIyc6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaW50W10gcG9zcmVmID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKHBvcyA8IGxpbmUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGMgPSBsaW5lLmNoYXJBdChwb3MpOyAvLyAxNi1iaXQgb2sKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zcmVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zcmVmID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcG9zcmVmWzBdID0gcG9zKzE7CisgICAgICAgICAgICAgICAgaW50IGMzMiA9IFV0aWxpdHkudW5lc2NhcGVBdChsaW5lLCBwb3NyZWYpOworICAgICAgICAgICAgICAgIGlmIChjMzIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJbnZhbGlkIGVzY2FwZSBhdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLmRlc2NyaWJlUG9zaXRpb24oKSArICc6JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGMzMik7CisgICAgICAgICAgICAgICAgcG9zID0gcG9zcmVmWzBdOworICAgICAgICAgICAgfSBlbHNlIGlmICgocXVvdGUgIT0gMCAmJiBjID09IHF1b3RlKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAocXVvdGUgPT0gMCAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKytwb3M7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHF1b3RlID09IDAgJiYgYyA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zOyAvLyBkbyBOT1QgaW5jcmVtZW50CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHF1b3RlICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJVbnRlcm1pbmF0ZWQgcXVvdGUgYXQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuZGVzY3JpYmVQb3NpdGlvbigpICsgJzonICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0cG9zKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0RlZmluaXRpb24udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5ZjdiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0RlZmluaXRpb24udHh0CkBAIC0wLDAgKzEsNTU3OTggQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbnZlcnQgQ0pLIGNoYXJhY3RlcnMsIGFjY29yZGluZyB0byB0aGUgZGVmaW50aW9ucyBpbiBDRURJQ1QgYW5kIFVuaWhhbi50eHQKKyMgTm90ZTogYWRkcyBzcGFjZSBiZXR3ZWVuIHRoZW0gYW5kIGxldHRlcnMuCit7IChbOkhhbjpdKSB9IFs6TDpdID4gfCAkMSAnICc7CitbXC5cLFw/XCHvvI7vvIzvvJ/vvIHjgIHjgIJbOlBlOl1bOlBmOl1dIHsgfSBbOkw6XSA+ICcgJzsKK1s6TDpdIHsgfSBbWzpIYW46XVs6UHM6XVs6UGk6XV0+ICcgJzsKKwor6K6K5paHIDwgYVwtcG9wdWxhclwtZm9ybVwtb2ZcLW5hcnJhdGl2ZVwtbGl0ZXJhdHVyZVwtZmxvdXJpc2hpbmdcLWluXC10aGVcLXRhbmdcLWR5bmFzdHlcLVwoNjE4XC05MDdcKVwtd2l0aFwtYWx0ZXJuYXRlXC1wcm9zZVwtYW5kXC1yaHltZWRcLXBhcnRzXC1mb3JcLXJlY2l0YXRpb25cLWFuZFwtc2luZ2luZ1wtXChvZnRlblwtb25cLWJ1ZGRoaXN0aWNcLXRoZW1lc1wpOwor6YKK5bmjIDwgYm9yZGVyXC1yZWdpb25cLWN1cnJlbmN5XC1cKGNvbnNpc3RpbmdcLW9mXC10aGVcLWN1cnJlbmN5XC1ub3Rlc1wtaXNzdWVkXC1ieVwtdGhlXC1ib3JkZXJcLXJlZ2lvblwtZ292ZXJubWVudHNcLWR1cmluZ1wtdGhlXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtYW5kXC10aGVcLXdhclwtb2ZcLWxpYmVyYXRpb25cKTsKK+ebtOmAmui7iiA8IFwidGhyb3VnaFwtdHJhaW5cIlwtXChyZWZlcnNcLXRvXC10aGVcLWlkZWFcLW9mXC1yZXRhaW5pbmdcLXByZXZpb3VzXC1sZWdpc2xhdHVyZVwtYWZ0ZXJcLXRyYW5zaXRpb25cLXRvXC1jaGluZXNlXC1ydWxlXC1pblwtaG9uZ1wta29uZ1wtb3JcLW1hY2F1XCk7CivlsI/oh5/prLwgPCBkaXJ0eVwtbGl0dGxlXC1tb25zdGVyXC1cKHNwb2tlblwtYWZmZWN0aW9uYXRlbHlcLXRvXC1hXC1jaGlsZFwtd2hvXC1oYXNcLWdvdHRlblwtaGltXChoZXJcKXNlbGZcLWRpcnR5XDtcLWxpdGVyYWxseVwtXCJsaXR0bGVcLWRpcnR5XC1naG9zdFwiXCk7Civmrrrpm57ntabnjLTnnIsgPCBcImtpbGxcLWFcLWNoaWNrZW5cLWluXC1mcm9udFwtb2ZcLWFcLW1vbmtleVwiXC1cLVwtXC1tYWtlXC1hblwtZXhhbXBsZVwtb3V0XC1vZlwtc29tZW9uZVwtXChieVwtcHVuaXNoaW5nXC10aGVtXClcLXRvXC1mcmlnaHRlblwtb3RoZXJzOwor5oqx6Jaq5pWR54GrIDwgY2FycnlcLWZhZ2dvdHNcLXRvXC1wdXRcLW91dFwtYVwtZmlyZVwtXC1cLWFkb3B0XC1hXC13cm9uZ1wtbWV0aG9kXC10b1wtc2F2ZVwtYVwtc2l0dWF0aW9uXC1hbmRcLWVuZFwtdXBcLWJ5XC1tYWtpbmdcLWl0XC13b3JzZTsKK+S4jeimi+ajuuadkOS4jeiQvea3miA8IG5vdFwtc2hlZFwtYVwtdGVhclwtdW50aWxcLW9uZVwtc2Vlc1wtdGhlXC1jb2ZmaW5cLVwtXC1yZWZ1c2VcLXRvXC1iZVwtY29udmluY2VkXC11bnRpbFwtb25lXC1pc1wtZmFjZWRcLXdpdGhcLWdyaW1cLXJlYWxpdHk7CivlkIzmnJ8gPCB0aGVcLWNvcnJlc3BvbmRpbmdcLXRpbWVcLXBlcmlvZFwtXChlZ1wsXC1jb21wYXJlXC1pbmZsYXRpb25cLW5vd1wtd2l0aFwtdGhlXC1yYXRlXC1kdXJpbmdcLXRoZVwtc2FtZVwtbW9udGhcLWxhc3RcLXllYXJcKTsKK+OhjiA8IHRoZVwtbG9uZ1wtYmFuZHNcLW9yXC1yaWJib25zXC1hdHRyYWNoZWRcLXRvXC1mbGFnc1wtYW5kXC1iYW5uZXJzXC10aGVcLWZlYXRoZXJcLWRlY29yZWN0ZWRcLWNhcnJpYWdlc1wtb3JcLWRyZXNzZXM7Civpg68gPCBuYW1lXC1vZlwtYVwtc21hbGxcLWFuY2llbnRcLXByaW5jaXBhbGl0eVwtd2hpY2hcLXdhc1wtc2l0dWF0ZWRcLWluXC13aGF0XC1pc1wtbm93XC1wYXJ0XC1vZlwtc2hhbnR1bmdcLWFuZFwta2lhbmdzdTsKK+adr+awtOi7iuiWqiA8IHRyeWluZ1wtdG9cLXB1dFwtb3V0XC1hXC1idXJuaW5nXC1jYXJ0bG9hZFwtb2ZcLWZhZ2dvdHNcLXdpdGhcLWFcLWN1cFwtb2ZcLXdhdGVyXC1cLVwtYW5cLXV0dGVybHlcLWluYWRlcXVhdGVcLW1lYXN1cmU7CivkkJ4gPCB0aGVcLXRoaW5cLW1lbWJyYW5lXC1iZXR3ZWVuXC1za2luXC1hbmRcLWZsZXNoXC10aGF0XC1wcm90ZWN0c1wtaW50ZXJuYWxcLW9yZ2Fuc1wtb3JcLXRpc3N1ZXNcLWluXC10aGVcLWh1bWFuXC1ib2R5Owor5YGP5YGPIDwgXChpbmRpY2F0ZXNcLXRoYXRcLXN0aFwuXC10dXJuc1wtb3V0XC1qdXN0XC10aGVcLW9wcG9zaXRlXC1vZlwtd2hhdFwtb25lXC13b3VsZFwtZXhwZWN0XC1vclwtd2hhdFwtd291bGRcLWJlXC1ub3JtYWxcKTsKK+aVrOelnSA8IHRvXC1yZXNwZWN0ZnVsbHlcLW9mZmVyXC1cKHdyaXR0ZW5cLWF0XC10aGVcLWVuZFwtb2ZcLWxldHRlclwtZnJvbVwtc29tZW9uZVwtb2ZcLWxvd2VyXC1zdGF0dXNcLXRvXC1oaWdoZXJcLXN0YXR1c1wpOwor5Y2c6L6tIDwgb3JhY2xlXC1pbnNjcmlwdGlvbnNcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5XC1cKDE2dGhcLTExdGhcLWNlbnR1cnlcLWJjXClcLW9uXC10b3J0b2lzZXNoZWxsc1wtb3JcLWFuaW1hbFwtYm9uZXM7Civnl4XmgKXkuoLmipXphqsgPCB0dXJuXC10b1wtYW55XC1kb2N0b3JcLW9uZVwtY2FuXC1maW5kXC13aGVuXC1jcml0aWNhbGx5XC1pbGxcLVwtXC10cnlcLWFueXRoaW5nXC13aGVuXC1pblwtYVwtZGVzcGVyYXRlXC1zaXR1YXRpb247Civovq/oqLzmlr3msrsgPCBkaWFnbm9zaXNcLWFuZFwtdHJlYXRtZW50XC1iYXNlZFwtb25cLWFuXC1vdmVyYWxsXC1hbmFseXNpc1wtb2ZcLXRoZVwtaWxsbmVzc1wtYW5kXC10aGVcLXBhdGllbnQnJ3NcLWNvbmRpdGlvbjsKK+ePqiA8IGFcLWphZGVcLXRhYmxlXC1jb25mZXJyZWRcLXVwb25cLWZldWRhbFwtcHJpbmNlc1wtYnlcLXRoZVwtZW1wZXJvclwtYXNcLWFcLXN5bWJvbFwtb2ZcLWRpZ25pdHlcLWFuZFwtYXV0aG9yaXR5Owor5pWd5bia6Ieq54+NIDwgdmFsdWVcLW9uZScnc1wtb3duXC1vbGRcLWJyb29tXC1cLVwtY2hlcmlzaFwtc29tZXRoaW5nXC1vZlwtbGl0dGxlXC12YWx1ZVwtc2ltcGx5XC1iZWNhdXNlXC1pdFwtaXNcLW9uZScnc1wtb3duOwor5LiN55+l5aSp6auY5Zyw5Y6aIDwgbm90XC1rbm93XC10aGVcLWltbWVuc2l0eVwtb2ZcLWhlYXZlblwtYW5kXC1lYXJ0aFwtXC1cLWhhdmVcLWFuXC1leGFnZ2VyYXRlZFwtb3Bpbmlvblwtb2ZcLW9uZScnc1wtYWJpbGl0aWVzOwor47q6IDwgYVwtdmVyeVwtcHJlY2lvdXNcLXBpZWNlXC1vZlwtamFkZVwtd29yblwtYnlcLWFuY2llbnRcLWVtcGVyb3JzXC10b1wtbWF0Y2hcLXRhYmxlc1wtYm9ybmVcLWJ5XC10aGVcLW5vYmxlczsKK+SAmCA8IHRvXC1jb3ZlclwtdGhlXC1saW5lXC1vZlwtdmlzaW9uXC1vclwtc2lnaHRcLVwtXC10aGVcLXN0cmFpZ2h0XC1saW5lXC1iZXR3ZWVuXC1hblwtb2JqZWN0XC1hbmRcLW9uZScnc1wtZXllczsKK+WFteS4jeihgOWIgyA8IHRoZVwtZWRnZXNcLW9mXC10aGVcLXN3b3Jkc1wtbm90XC1iZWluZ1wtc3RhaW5lZFwtd2l0aFwtYmxvb2RcLVwtXC13aW5cLXZpY3RvcnlcLXdpdGhvdXRcLWZpcmluZ1wtYVwtc2hvdDsKK+OopyA8IHdvb2Rlblwtc3RpY2tcLW9yXC1iYW1ib29cLWNhbmVcLXVzZWRcLXRvXC1zdXBwb3J0XC10aGVcLWNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OUoyA8IGluXC1hbmNpZW50XC10aW1lc1wtdG9cLWZpZ2h0XC1hZ2FpbnN0XC10aGVcLWVuZW15XC1ieVwtcHVzaGluZ1wtZG93blwtdGhlXC1iaWdcLXJvY2tzXC1mcm9tXC11cFwtaGlnaDsKK+a0m+W+tyA8IFwod2luc3RvblwpXC1sb3JkXC1cKGZvcm1lclwtYXNzaXN0YW50XC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwtZm9yXC1lYXN0XC1hc2lhXC1hbmRcLXBhY2lmaWNcLWFmZmFpcnNcKTsKK+S4jeWIsOm7g+ays+W/g+S4jeatuyA8IG5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtdGhlXC1odWFuZ2hlXC1yaXZlclwtXC1cLW5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtb25lJydzXC1nb2FsOwor5b235b6oIDwgbmFtZVwtb2ZcLWFcLWNvbGxlY3Rpb25cLW9mXC1zaG9ydFwtc3Rvcmllc1wsXC1wYW5nXC1odWFuZ1wsXC1cIndhbmRlcmluZ1wtYWJvdXRcIlwsXC1ieVwtbHUzXC14dW40XC3pra/ov4U7CivkmqsgPCBvcm5hbWVudGFsXC1hcnRpY2xlc1wtbWFkZVwtb2ZcLWhvcm5zXC11c2VkXC10b1wtZGVjb3JhdGVcLXRoZVwtdG9wXC1vZlwtYVwtc3RpY2tcLW9yXC1ob3JzZXdoaXA7CivppIrlhZLpmLLogIEgPCBcKG9mXC1wYXJlbnRzXClcLXRvXC1icmluZ1wtdXBcLWNpaGxkcmVuXC1mb3JcLXRoZVwtcHVycG9zZVwtb2ZcLWJlaW5nXC1sb29rZWRcLWFmdGVyXC1pblwtb2xkXC1hZ2U7CivpmbPmr4UgPCBjaGVuXC15aVwsXC1mb3JtZXJcLW1heW9yXC1vZlwtc2hhbmdoYWlcLWFuZFwtaGlnaGVzdFwtcmFua2luZ1wtbWlsaXRhcnlcLWNvbW1hbmRlclwtaW5cLWNoaW5hOwor57a66Imy5L2zIDwgaXRoYWNhXCxcLW55XC1cKGJ1dFwtcHJvbm91bmNlZFwteWkzXC1zZTRcLWppYTFcLFwtZm9sbG93aW5nXC1hXC1taXN0YWtlXC1tYWRlXC1ieVwtaHUyXC1zaGk0XC3og6HpgalcKTsKK+eskCA8IGJhbWJvb3NcLXBsYWNlZFwtYWNyb3NzXC13b29kZW5cLWZyYW1lc1wtb25cLXdoaWNoXC1ncmFpblwtbWF5XC1iZVwtc3RvcmVkXC1pblwtZGFtcFwtY2xpbWF0ZXM7Civko54gPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlXC13aGljaFwtb2NjdXBpZWRcLXRoZVwtc2l0ZVwtb2ZcLXRoZVwtcHJlc2VudFwtcHJvdmluY2VcLW9mXC1odWJlaTsKK+SHtiA8IGFcLXNtYWxsXC1yYWZ0ZXJzXC1tYWRlXC1vZlwtYmFtYm9vXC13aGljaFwtcHJvamVjdFwtZm9ybVwtdGhlXC1lYXZlc1wtYW5kXC1zdXBwb3J0XC10aGVcLXRpbGVzOwor6Zu35bOw5aGUIDwgbGVpZmVuZ1wtcGFnb2RhXCxcLWJ5XC13ZXN0XC1sYWtlXC11bnRpbFwtaXRcLXdhc1wtZGVzdHJveWVkXC1cKGFsc29cLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+izqCA8IHRyaWJ1dGVcLXBhaWRcLWluXC1jbG90aFwtYnlcLXRoZVwtdHJpYmVzXC1pblwtc3plY2h3YW5cLWFuZFwteXVubmFuXC11bmRlclwtdGhlXC1oYW5cLWR5bmFzdHk7CivkuI3lhbHmiLTlpKkgPCB3aWxsXC1ub3RcLWxpdmVcLXVuZGVyXC10aGVcLXNhbWVcLXNreVwtXCh3aXRoXC1vbmUnJ3NcLWVuZW15XClcLVwtXC1hYnNvbHV0ZWx5XC1pcnJlY29uY2lsYWJsZTsKK+emqyA8IHNhY3JpZmljZVwtb2ZmZXJlZFwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC10aHJlZVwteWVhcnMnJ1wtbW91cm5pbmdcLXRoZVwtZGVhdGhcLW9mXC1hXC1wYXJlbnQ7CivkgqkgPCBhblwtaW5cLXNsYWJcLW9yXC1pbmtcLXN0b25lXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLXJ1YmJpbmdcLW9yXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civkgo0gPCBhXC1raW5kXC1vZlwtd2VhcG9uXC1jYXJyaWVkXC1ieVwtdGhlXC1ob25vclwtZ3VhcmRcLWJlZm9yZVwtdGhlXC1lbXBlcm9yXC1pblwtYW5jaWVudFwtdGltZXM7Civmk4rlhbbmg7DmrbggPCBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civkv53nlLLliLbluqYgPCB0aGVcLWJhb1wtamlhXC1zeXN0ZW1cLVwoYW5cLWFkbWluaXN0cmF0aXZlXC1zeXN0ZW1cLW9yZ2FuaXplZFwtb25cLWJhc2lzXC1vZlwtaG91c2Vob2xkc1wpOwor5YyF5belIDwgdW5kZXJ0YWtlXC10b1wtcGVyZm9ybVwtd29ya1wtd2l0aGluXC1hXC10aW1lXC1saW1pdFwtYW5kXC1hY2NvcmRpbmdcLXRvXC1zcGVjaWZpY2F0aW9uczsKK+mDqOmmliA8IHJhZGljYWxzXC1ieVwtd2hpY2hcLWNoYXJhY3RlcnNcLWFyZVwtYXJyYW5nZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtZGljdGlvbmFyaWVzOwor6Zy45Li7IDwgYVwtcG93ZXJmdWxcLWNoaWVmXC1vZlwtdGhlXC1wcmluY2VzXC1vZlwtdGhlXC1zcHJpbmdcLWFuZFwtYXV0dW1uXC1wZXJpb2RcLVwoNzcwXC00NzZcLWJjXCk7CivooYggPCB0aGVcLWJsb29kXC1vZlwtYVwtc2FjcmlmaWNpYWxcLWZvd2xcLXdoaWNoXC13YXNcLXNwcmlua2xlZFwtb25cLXRoZVwtZG9vcnNcLWFuZFwtdmVzc2VsczsKK+OvqSA8IHRvXC1wdXRcLXRoZVwtZ3Jvd2luZ1wtdXBcLXNpbGt3b3Jtc1wtaW5cLWRpZmZlcmVudFwtZnJhbWVzXC1hY2NvcmRpbmdcLXRvXC10aGVpclwtc2l6ZXM7CivjmrMgPCBhXC1sYWR5XC10ZWFjaGVyXC10b1wtdGVhY2hcLXRoZVwtcHJvcGVyXC1ydWxlc1wtb2ZcLWZlbWFsZVwtYmVoYXZpb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+S4jei+qOiPvem6pSA8IGJlXC11bmFibGVcLXRvXC10ZWxsXC1iZWFuc1wtZnJvbVwtd2hlYXRcLVwtXC1oYXZlXC1ub1wta25vd2xlZGdlXC1vZlwtcHJhY3RpY2FsXC1tYXR0ZXJzOwor57WlIDwgdG9cLWhhcm5lc3NcLWFcLWhvcnNlXC1hXC1ib2FyZFwtaW5cLWZyb250XC1vZlwtYVwtY2FycmlhZ2VcLWZvclwtdGhlXC1kcml2ZXJcLXRvXC1sZWFuXC1vbjsKK+SLrSA8IHRvXC13ZWF2ZVwtc2lsa1wtZmFicmljc1wtd2l0aFwtZ3JlZW5cLWNvbG9yXC1mb3JcLWxvbmdpdHVkZVwtYW5kXC13aGl0ZVwtZm9yXC1sYXRpdHVkZTsKK+OtvCA8IGFcLXJlY3RhbmdsZVwtc2hhcGVkXC1wZWdcLW9yXC1zaG9ydFwtcG9zdFwtYmV0d2VlblwtdGhlXC1iZWFuc1wtYW5kXC10aGVcLXJvb2ZcLXRpbWJlcnM7Civmga3llpznmbzosqEgPCBjb25ncmF0dWxhdGlvbnNcLWZvclwtZ2V0dGluZ1wtcmljaFwtXCh0cmFkaXRpb25hbFwtY2hpbmVzZVwtbmV3XC15ZWFyJydzXC1mdXR1cmVcLXVzZTsKK+eRhCA8IGFcLW9ybmFtZW50YWxcLXBpZWNlXC1vZlwtamFkZVwtc2V2ZXJhbFwtaW5jaGVzXC1hY3Jvc3NcLXdpdGhcLWFcLWhvbGVcLWluXC10aGVcLWNlbnRlcjsKK+eJoeS4ueWNoSA8IHBlb255XC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcKTsKK+SspCA8IHRvXC1wdXRcLXRoZVwtdGhpY2tcLXNvdXBcLW9yXC1icm90aFwtb25cLXRvcFwtb2ZcLXRoZVwtcmljZVwtdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5Zyo5pa8IDwgXCh0aGVcLXByb2JsZW1cLW9yXC1leHBsYW5hdGlvblwtb3JcLWFkdmFudGFnZVwtZXRjXC5cKVwtbGllc1wtaW5cLVwodGhlXC1mYWN0XC10aGF0XC5cLlwuXCk7Civkpa8gPCBhXC1mYXJtXC10b29sXC10b1wtY3J1c2hcLXRoZVwtY2xvZFwtb2ZcLWVhcnRoXC1pbnRvXC1waWVjZXNcLWFuZFwtbWFrZVwtdGhlXC1sYW5kXC1mbGF0Owor5I2WIDwgYVwta2luZFwtb2ZcLW5ldFwtZXF1aXB0ZWRcLXdpdGhcLXRyaWNreVwtbWFjaGluZVwtdXNlZFwtdG9cLWNhdGNoXC1iaXJkc1wtYW5kXC1iZWFzdHM7CivloZ7pn4voo6Hoq74gPCBcW2plYW5cLW1pY2hlbFxdXC1zZXZlcmlub1wtXFt3b3JsZFwtYmFua1wtdmljZVwtcHJlc2lkZW50XCxcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1xdOwor5I6tIDwgYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLW1hZGVcLW9mXC10d2lzdGVkXC10aHJvblwtc3RyaXBzXC11c2VkXC10b1wtZmxhdGVuXC10aGVcLWxhbmQ7CivmlZnoqJMgPCBcKHRlYWNoXC1zb21lb25lXC1vclwtbGVhcm5cLWFcKVwtbGVzc29uXC1cKGllXCxcLW9idGFpblwtd2lzZG9tXC1mcm9tXC1hblwtZXhwZXJpZW5jZVwpOwor5LiJ5bKU5Y+jIDwgYXRcLXRoZVwtY3Jvc3Nyb2Fkc1wsXC10aGVcLW5hbWVcLW9mXC1hXC1mYW1vdXNcLW9wZXJhXCxcLXN0b3J5XC1mcm9tXC1zaHVpXC1odVwtemh1YW47CivnrZMgPCBhXC1oYWlycGluXC1vblwtd2hpY2hcLXRoZVwtaGFpclwtaXNcLWJvdW5kXC1hdFwtdGhlXC1iYWNrXC1vZlwtdGhlXC1oZWFkXC5cLTE1XC1vZlwtYWdlOwor5p2O6Ieq5oiQIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1saVwtemlcLWNoZW5nXCxcLWxlYWRlclwtb2ZcLW1pbmdcLWR5bmFzdHlcLXBlYXNhbnRcLXJlYmVsbGlvbjsKK+acieacn+W+kuWIkSA8IGxpbWl0ZWRcLXRlcm1cLW9mXC1pbXByaXNvbm1lbnRcLVwoaWVcLFwtYW55dGhpbmdcLWxlc3NcLXRoYW5cLWxpZmVcLWltcHJpc29ubWVudFwpOwor5rGf5YWr6bueIDwgXCJqaWFuZ1wtemVtaW4nJ3NcLWVpZ2h0XC1wb2ludFwtZm9ybXVsYVwiXC1cKGZvclwtcmVzdW1pbmdcLWFcLWRpYWxvZ1wtd2l0aFwtdGFpd2FuXCk7CivphKfkuq7mtKogPCB0YW5nXC1saWFuZ1wtaG9uZ1wtXChvcHBvc2l0aW9uXC1jYW5kaWRhdGVcLWluXC1qYW5cLTE5OTZcLXNpbmdhcG9yZVwtZWxlY3Rpb25zXCk7Civplonnm67loZ7ogb0gPCBzaHV0c1wtb25lJydzXC1leWVzXC1hbmRcLXN0b3BcLXVwXC1vbmUnJ3NcLWVhcnNcLVwtXC1iZVwtb3V0XC1vZlwtdG91Y2hcLXdpdGhcLXJlYWxpdHk7CivnrKjps6XlhYjpo5sgPCBjbHVtc3lcLWJpcmRzXC1oYXZlXC10b1wtc3RhcnRcLWZseWluZ1wtZWFybHlcLVwtXC10aGVcLXNsb3dcLW5lZWRcLXRvXC1zdGFydFwtZWFybHk7CivjrrIgPCBhXC1zbWFsbFwtcmluZ1wtb3JcLWFcLXNtYWxsXC1waWVjZVwtb2ZcLWJvYXJkXC1hdHRhY2hlZFwtdG9cLXRoZVwtbXV6emxlXC1vZlwtYW5cLW94Owor6aeB5bK4IDwgYVwtbG93XC1zdG9uZVwtd2FsbFwtYnVpbHRcLWFsb25nXC10aGVcLXdhdGVyJydzXC1lZGdlXC10b1wtcHJvdGVjdFwtYW5cLWVtYmFua21lbnQ7Civnmb7ogZ7kuI3lpoLkuIDoposgPCBzZWVpbmdcLWZvclwtb25lc2VsZlwtaXNcLWFcLWh1bmRyZWRcLXRpbWVzXC1iZXR0ZXJcLXRoYW5cLWhlYXJpbmdcLWZyb21cLW90aGVyczsKK+ijnOazlSA8IHRyZWF0bWVudFwtaW52b2x2aW5nXC10aGVcLXVzZVwtb2ZcLXRvbmljc1wtdG9cLXJlc3RvcmVcLXRoZVwtcGF0aWVudCcnc1wtaGVhbHRoOwor5LW7IDwgYVwtc21hbGxcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+S4ieS4jSA8IFwidGhlXC10aHJlZVwtbm8nJ3NcIlwtXChhblwtZXhhbXBsZVwtb2ZcLWFuXC1hYmJyZXZpYXRlZFwtc2xvZ2FuXC1vclwtY2F0Y2hwaHJhc2VcKTsKK+eZveacriA8IHRoZVwtcmhpem9tZVwtb2ZcLWxhcmdlXC1oZWFkZWRcLWF0cmFjdHlsb2Rlc1wtXChhdHJhY3R5bG9kZXNcLW1hY3JvY2VwaGFpYVwpOwor5pys6I2J57ax55uuIDwgYW5cLW91dGxpbmVcLXRyZWF0aXNlXC1vZlwtbWVkaWNhbFwtaGVyYnNcLFwtY29tcGlsZWRcLWJ5XC1saTNcLXNoaTJcLXpoZW4xXC3mnY7mmYLnj407CivnjqAgPCBsYXJnZVwtamFkZVwtdGFibGV0XC11c2VkXC1ieVwtb2ZmaWNpYWxzXC1hdFwtY291cnRcLXRvXC1pbmRpY2F0ZVwtdGhlaXJcLXJhbmtzOwor5ZCD5aSn5oi2IDwgbWFzc1wtc2VpenVyZVwtb2ZcLWZvb2RcLWZyb21cLWxhbmRsb3Jkc1wtZHVyaW5nXC1mYW1pbmVzXC1iZWZvcmVcLWxpYmVyYXRpb247CivkgpwgPCByb2NreVwtZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZVwtdG9cLWNvbGxhcHNlOwor46GGIDwgYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor5p2O5pmC54+NIDwgbGlcLXNoaVwtemhlblwtXCgxNTE4XC0xNTkzXCxcLWZhbW91c1wtZG9jdG9yXCxcLWF1dGhvclwtb2ZcLWJlbjNcLWNhbzNcLWdhbmcxXC1tdTQ7CivlhbXlvLfppqzlo68gPCBzdHJvbmdcLXNvbGRpZXJzXC1hbmRcLXN0dXJkeVwtaG9yc2VzXC1cLVwtYVwtd2VsbFwtdHJhaW5lZFwtYW5kXC1wb3dlcmZ1bFwtYXJteTsKK+ijjiA8IHRvXC10YWtlXC1vZmZcLXRoZVwtY2xvdGhlc1wtYW5kXC1leHBvc2VcLXRoZVwtYm9keVwuXC10b1wtY2FycnlcLWluXC10aGVcLWdpcmRsZTsKK+mOiyA8IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXdoZWVsXC10b1wtZ292ZXJuXC1vclwtY29udHJvbFwtdGhlXC1ub2lzZVwtb2ZcLWFcLWJhcnJvdzsKK+emvea1geaEnyA8IFwiYmlyZFwtZmx1XCJcLVwoZmx1XC1jYXJyaWVkXC1ieVwtYmlyZHNcLVwtXC1mb3VuZFwtaW5cLWhvbmdcLWtvbmdcLWluXC1sYXRlXC0xOTk3XCk7CivkqpAgPCBzb21ldGhpbmdcLW1hZGVcLW9mXC1iYW1ib29cLXB1dFwtaW5cLXRoZVwtYm93XC1jYXNlXC10b1wtcHJldGVjdFwtZnJvbVwtZGFtYWdlOwor5qWt5L2Z5aSn5a24IDwgY29sbGVnZVwtZm9yXC1wZW9wbGVcLXdob1wtYXR0ZW5kXC1hZnRlclwtd29ya1wtXChsaXRcLlw6XC1zcGFyZVwtdGltZVwtY29sbGVnZVwpOwor5IetIDwgY29udGFpbmVyc1wtbWFkZVwtb2ZcLXRoaW5cLWFuZFwtbG9uZ1wtc3RyaXBcLW9mXC1iYW1ib29cLW9yXC13aWxsb3dcLWJyYW5jaGVzOwor45+sIDwgYVwtbW91bnRhaW5cLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlXC1zb3V0aHdlc3RcLW9mXC1tZW5neWluXC1jb3VudHk7CivjmqUgPCB0b1wtYmVjb21lXC1hc3NvY2lhdGVkXC13aXRoXC1lYWNoXC1vdGhlclwtaW5cLWdvb2RcLW1hbm5lcnNcLWFuZFwtcG9saXRlbmVzczsKK+Wuo+WIpCA8IHByb25vdW5jZVwtYVwtXChqdWRpY2lhbFwpXC1zZW50ZW5jZVwtXChhZnRlclwtYVwtdmVyZGljdFwtaW5cLWFcLWNvdXJ0XC1vZlwtbGF3XCk7Civokpnku6PniL4gPCBcKHdhbHRlclwpXC1tb25kYWxlXC1cKHVzXC1hbWJhc3NhZG9yXC10b1wtamFwYW5cLFwtZm9ybWVyXC11c1wtdmljZVwtcHJlc2lkZW50XCk7CivpmbPntI3lvrcgPCBcKGNsYWlyZVwpXC1jaGVubmF1bHRcLFwtY29tbWFuZGVyXC1vZlwtZmx5aW5nXC10aWdlcnNcLWR1cmluZ1wtd29ybGRcLXdhclwtaWk7Civnl4Xlj4sgPCBhXC1mcmllbmRcLW1hZGVcLWluXC1ob3NwaXRhbFwtb3JcLXBlb3BsZVwtd2hvXC1iZWNvbWVcLWZyaWVuZHNcLWluXC1ob3NwaXRhbDsKK+aNlemiqOaNieW9sSA8IGNoYXNlXC10aGVcLXdpbmRcLWFuZFwtY2x1dGNoXC1hdFwtc2hhZG93c1wtXC1cLW1ha2VcLWdyb3VuZGxlc3NcLWFjY3VzYXRpb25zOwor5bCx5pivIDwgXChlbXBoYXNpemVzXC10aGF0XC1zb21ldGhpbmdcLWlzXC1wcmVjaXNlbHlcLW9yXC1leGFjdGx5XC13aGF0XC1pc1wtc3RhdGVkXCk7CivkpJ4gPCBhXC1raW5kXC1vZlwtd2VhcG9uc1wtaGVsZFwtYnlcLXRoZVwtb2ZmaWNpYWxzXC1pblwtYXR0ZW5kYW5jZVwtaW5cLW9sZFwtdGltZXM7CivjuasgPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1nZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OzuyA8IGFcLWJhbmtcLW9mXC1lYXJ0aFwtb3JcLWFuXC1lbWJhbmttZW50XC10b1wtYmxvY2tcLXRoZVwtY3VycmVudFwtb2ZcLXRoZVwtd2F0ZXI7Civjr6IgPCBhXC1waWVjZVwtb2ZcLWNyb3NzXC13aXNlXC1ib2FyZFwtdXNlZFwtZm9yXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civntq3niL7lrrkgPCBcKGpvaGFubmVzXC1sb2Rld2lrdXNcKVwtdmlsam9lblwtXChzb3V0aFwtYWZyaWNhblwtYW1iYXNzYWRvclwtdG9cLXRhaXdhblwpOwor6JGb5rSy5aOpIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXCxcLWdlemhvdWJhXC1kYW1cLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXCxcLWluXC1zaWNodWFuOwor5IOYIDwgc2ltcGxlXC1hbmRcLWNydWRlXC10aGVcLXNvdW5kXC1vZlwtcGViYmxlc1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor47CxIDwgdG9cLXNtZWFyXC10aGVcLW1vdXRoXC13aXRoXC10aGVcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor5LiN5YiG5b285q2kIDwgbWFrZVwtbm9cLWRpc3RpbmN0aW9uXC1iZXR3ZWVuXC13aGF0JydzXC1vbmUnJ3NcLW93blwtYW5kXC13aGF0JydzXC1hbm90aGVyJydzOwor6ICB6aml5LyP5quq5b+X5Zyo5Y2D6YeMIDwgXChsaXRcLlwpXC1hblwtb2xkXC1zdGVlZFwtaW5cLXRoZVwtc3RhYmxlXC1zdGlsbFwtYXNwaXJlc1wtdG9cLWdhbGxvcFwtMTAwMFwtbGk7CivlpKfnprkgPCBkYVwteXVcLFwtbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oZXJvXC13aG9cLXN1Y2Nlc3NmdWxseVwtY29udHJvbGxlZFwtZmxvb2RzOwor542vIDwgYVwtdHJpYmVcLW9mXC1zY3l0aGlhbnNcLXdoaWNoXC1pbnZhZGVkXC1jaGluYVwtZHVyaW5nXC10aGVcLWhzaWFcLWR5bmFzdHk7CivpnpQgPCBzaWRlc1wtb3JcLXVwcGVyc1wtb2ZcLXNob2VzXC10b1wtc3RyZXRjaFwtYVwtc2tpblwtb25cLWFcLWZyYW1lXC1mb3JcLWFcLWRydW07CivooajorYkgPCBpbGxuZXNzXC10aGF0XC1oYXNcLW5vdFwtYXR0YWNrZWRcLXRoZVwtdml0YWxcLW9yZ2Fuc1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivlnIvpmpvpm7voqbHpm7vloLHoq67oqaLlp5Tlk6HmnIMgPCBpbnRlcm5hdGlvbmFsXC1jb25zdWx0YXRpdmVcLWNvbW1pdHRlZVwtZm9yXC10ZWxlcGhvbmVcLWFuZFwtdGVsZWdyYXBoOwor5LiN55+l5Yeh5bm+IDwgY2FuJyd0XC10ZWxsXC1ob3dcLW1hbnlcLXRoZXJlXC1hcmVcLVwtXC10aGVyZVwtYXJlXC1udW1lcm91c1wtc2ltaWxhclwtY2FzZXM7Civklb0gPCB0aGVcLXJob2RvZGVuZHJvblwtXC1cLVwtaXRcLWlzXC1zYWlkXC10b1wtY2F1c2VcLXNoZWVwXC10b1wtc3RhZ2dlclwtYW5kXC1kaWU7CivpvLvpn7vmr40gPCBcKG9mXC1jaGluZXNlXC1wcm9udW5jaWF0aW9uXClcLWFcLXZvd2VsXC1mb2xsb3dlZFwtYnlcLWFcLW5hc2FsXC1jb25zb25hbnQ7CivluavplpEgPCBoYW5nXC1vblwtdG9cLWFuZFwtc2VydmVcLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bFwtYnlcLWxpdGVyYXJ5XC1oYWNrXC13b3JrOwor6YOcIDwgbmFtZVwtb2ZcLWZpZWZcLWluXC1zaGFudG9uZ1wtYmVzdG93ZWRcLW9uXC10aGVcLWVsZGVzdFwtc29uXC1vZlwtd2VuXC13YW5nOwor5o+P57SFIDwgdG9cLXRyYWNlXC1vdmVyXC1yZWRcLWNoYXJhY3RlcnNcLVwoYXNcLWFcLW1ldGhvZFwtb2ZcLWxlYXJuaW5nXC10b1wtd3JpdGVcKTsKK+mHkeawuOWNlyA8IGtpbVwteW9uZ1wtbmFtXC1cKG5vcnRoXC1rb3JlYW5cLWRlcHV0eVwtcHJlbWllclwtYW5kXC1mb3JlaWduXC1taW5pc3RlclwpOwor5oqX5oiwIDwgd2FyXC1vZlwtcmVzaXN0YW5jZVwsXC1lc3BlY2lhbGx5XC10aGVcLXdhclwtYWdhaW5zdFwtamFwYW5cLVwoMTkzN1wtMTk0NVwpOwor5oqx5q6Y5a6I57y6IDwgY2hlcmlzaFwtdGhlXC1vdXRtb2RlZFwtYW5kXC1wcmVzZXJ2ZVwtdGhlXC1vdXR3b3JuXC1cLVwtYmVcLWNvbnNlcnZhdGl2ZTsKK+mWieWhnuecvOedm+aNiem6u+mbgCA8IHRyeVwtdG9cLWNhdGNoXC1zcGFycm93c1wtd2l0aFwtb25lJydzXC1leWVzXC1ibGluZGZvbGRlZFwtXC1cLWFjdFwtYmxpbmRseTsKK+SNvyA8IGFcLWtpbmRcLW9mXC1kYW5jZVwtYWNjb21wYW5pZWRcLWJ5XC1tdXNpY1wtcGVyZm9ybWVkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjJ4gPCBhXC1rbm90XC10b1wtaGFuZ1wtdGhlXC1hcHBhcmF0dXNcLW1hZGVcLW9mXC1yZWVkXC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SHiSA8IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLW9uZVwtaHVuZHJlZFwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor472IIDwgYVwtbGFyZ2VcLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47mQIDwgdG9cLXRvd1wtYVwtYm9hdFwtYWdhaW5zdFwtdGhlXC1jdXJyZW50XC1pblwtc3dpZnRcLXN0cmVhbVwtZnJvbVwtdGhlXC1iYW5rOwor5rKFIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtd2VzdGVyblwtaHVuYW5cLXRoYXRcLWZsb3dzXC1pbnRvXC1kb25ndGluZ1wtbGFrZTsKK+ewiyA8IGFcLXNxdWFyZVwtYmFza2V0XC1vZlwtYmFtYm9vXC1mb3JcLWhvbGRpbmdcLWdyYWluXC11c2VkXC1hdFwtc2FjcmlmaWNlczsKK+S4jeiyu+WQueeBsOS5i+WKmyA8IGFzXC1lYXN5XC1hc1wtYmxvd2luZ1wtb2ZmXC1kdXN0XC1cLVwtbm90XC1uZWVkaW5nXC10aGVcLXNsaWdodGVzdFwtZWZmb3J0Owor5paX5om55pS5IDwgc3RydWdnbGVcLWNyaXRpY2lzbVwtdHJhbnNmb3JtYXRpb25cLVwoY3VsdHVyYWxcLXJldm9sdXRpb25cLXNsb2dhblwpOwor6Zi/5LiN5L6G5o+QXC7pmL/kuI3pg73nhrHopb/mj5AgPCBhYmR1bGFpZGlcLWFtdWR1cmV4aXRpXC1cKGNoYWlybWFuXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor6be0IDwgc2lsdmVyXC1waGVhc2FudFwtYmFkZ2VcLXdvcm5cLWJ5XC1jaXZpbFwtb2ZmaWNpYWxzXC1vZlwtdGhlXC01dGhcLWdyYWRlOwor5Y2a5Y+k6YCa5LuKIDwgY29udmVyc2FudFwtd2l0aFwtdGhpbmdzXC1wYXN0XC1hbmRcLXByZXNlbnRcLVwtXC1lcnVkaXRlXC1hbmRcLWluZm9ybWVkOwor6J+VIDwgYVwtc3BlY2llc1wtb2ZcLXRvcnRvaXNlXC1mb3VuZFwtbmVhclwtdGhlXC1tb3V0aFwtb2ZcLXRoZVwteWVsbG93XC1yaXZlcjsKK+S7iumfsyA8IG1vZGVyblwtXChpXC5lXC5cLW5vdFwtYW5jaWVudFwpXC1wcm9udW5jaWF0aW9uXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor5pav54m55Yeh6Ku+5pmu5rSb5pavIDwgc3RlcGhhbm9wb3Vsb3NcLVwoZWdcLFwtZm9ybWVyXC1jbGludG9uXC1haWRlXC1nZW9yZ2VcLXN0ZXBoYW5vcG91bG9zXCk7CivjrIYgPCBwb3N0aHVtb3VzXC10aXRsZVwtY29uZmVycmVkXC11cG9uXC1lbXBlcm9yc1wtYW5kXC1lbWluZW50XC1vZmZpY2lhbHM7CivkuI3lhaXomY7nqbTnhInlvpfomY7lrZAgPCBob3dcLWNhblwteW91XC1jYXRjaFwtdGlnZXJcLWN1YnNcLXdpdGhvdXRcLWVudGVyaW5nXC10aGVcLXRpZ2VyJydzXC1sYWlyOwor6Z6dIDwgdGhlXC1waWVjZVwtb2ZcLWxlYXRoZXJcLXVzZWRcLWZvclwtc29sZXNcLW9uXC1jaGluZXNlXC1zaG9lc1wuXC1hXC1wYXRjaDsKK+Wkp+msp+WkqeWuriA8IFwidGhlXC1tb25rZXlcLWNyZWF0ZXNcLWhhdm9jXC1pblwtaGVhdmVuXCJcLFwtc3RvcnlcLWFib3V0XC1zdW5cLXd1XC1rb25nOwor6JSbIDwgYVwtc21hbGxcLW9yY2hpZFwtbGlrZVwtcGxhbnRcLWl0XC1iZWFyc1wtd2hpdGVcLWZsb3dlcnNcLWFcLWRlbmRyb2JpdW07Civnq6/ljYjnr4AgPCB0aGVcLWRyYWdvblwtYm9hdFwtZmVzdGl2YWxcLVwodGhlXC01dGhcLWRheVwtb2ZcLXRoZVwtNXRoXC1sdW5hclwtbW9udGhcKTsKK+SwmSA8IGFuXC1hbmNpZW50XC11bml0XC1vZlwtY2FwYWNpdHlcLXdpdGhcLXRocmVlXC1mZWV0XC1hbmRcLWFcLWJpZ1wtb3BlbmluZzsKK+SUuSA8IGFcLWZ1bmd1c1wtd2hpY2hcLWdyb3dzXC1vblwtcm90dGVuXC1wbGFudHNcLWFuZFwtaXNcLWVhdGVuXC13aGVuXC1mcmVzaDsKK+OvoyA8IGFcLWtpbmRcLW9mXC1mcmFncmFudFwtdHJlZVwtdXNlZFwtdG9cLXByb2R1Y2VcLXBlcmZ1bWVcLWJ5XC1idXJuaW5nXC1pdDsKK+OvoSA8IHRvXC1sYWNxdWVyXC1zb21lXC1raW5kXC1vZlwtYXNoZXNcLW9uXC13b29kZW5cLWFydGljYWxzXC1vclwtZnVybml0dXJlOwor5oKy5aSp5oar5Lq6IDwgYmVtb2FuXC10aGVcLXN0YXRlXC1vZlwtdGhlXC11bml2ZXJzZVwtYW5kXC1waXR5XC10aGVcLWZhdGVcLW9mXC1tYW5raW5kOwor5oOL5oOcIDwgdG9cLWZlZWxcLXNvcnJ5XC1mb3JcLWFcLXBlcnNvblwtb3Zlclwtc3RoXC10aGF0XC1zaG91bGRcLWhhdmVcLWhhcHBlbmVkOwor5bOLIDwgcmFuZ2VzXC1vZlwtaGlsbHNcLXN0cmV0Y2hpbmdcLW9uXC1iZXlvbmRcLWFub3RoZXJcLWlycmVndWxhclwtcGVha3M7CivmrYMgPCBzbWVhclwtb25lJydzXC1tb3V0aFwtd2l0aFwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7Civnmb3ojKvojKsgPCBcKG9mXC1taXN0XCxcLXNub3dcLFwtZmxvb2R3YXRlclwsXC1ldGNcKVwtYVwtdmFzdFwtZXhwYW5zZVwtb2ZcLXdoaXRlbmVzczsKK+edpeedqCA8IGxvb2tcLWF0XC1zb21lYm9keVwtZGlzZGFpbmZ1bGx5XC1vdXRcLW9mXC10aGVcLWNvcm5lclwtb2ZcLW9uZScnc1wtZXllOwor576XIDwgdHJpYmVzXC1pblwtd2VzdFwtY2hpbmFcLXN0cm9uZ1wuXC1lZHVjYXRlZFwuXC1vYnN0aW5hdGVcLlwtYVwtcGFydGljbGU7Civog6HpgakgPCBodVwtc2hpXC1cKDE4OTFcLTE5NjJcKVwsXC1vcmlnaW5hbFwtcHJvcG9uZW50XC1vZlwtYmFpMlwtaHVhNFwtd2VuMlwt55m96Kmx5paHOwor6LuN5aeUIDwgbWlsaXRhcnlcLWNvbW1pc3Npb25cLW9mXC10aGVcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+S4jeacjeawtOWcnyA8IFwob2ZcLWFcLXN0cmFuZ2VyXClcLW5vdFwtYWNjdXN0b21lZFwtdG9cLXRoZVwtY2xpbWF0ZVwtb2ZcLWFcLW5ld1wtcGxhY2U7Civmlq/kvannvoUgPCBcKGpvYW5cKVwtc3Blcm9cLVwodW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVjb25vbWljXC1hZmZhaXJzXCk7CivkuKMgPCBhbmNpZW50XC1mb3JtXC1vZlwtdGhlXC10ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivkoYUgPCBzb21ldGhpbmdcLXVzZWRcLXRvXC1iaW5kXC10aGVcLWZyYW1lXC13b3JrXC1pblwtYVwtY2FydFwtb2ZcLW9sZFwtdGltZXM7CivkmqggPCBhXC1zdHJpbmdcLWZhc3RlbmVkXC10b1wtYW5cLWFycm93XC10b1wtZHJhd1wtaXRcLWJhY2tcLWFmdGVyXC1zaG9vdGluZzsKK+SOoCA8IHRvXC10d2lzdFwtb3JcLXRvXC1jcnVtcGxlXC1iZXR3ZWVuXC1oYW5kc1wtYW5kXC1tYWtlXC1zb21ldGhpbmdcLXR1cm47Civjn7kgPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpblwtaXNcLWxvZnR5XC1hbmRcLXN0ZWVwXC1hbmRcLXByb2ZvdW5kOwor4524IDwgYVwtY29uaWNhbFwtY2FwXC13b3JuXC1vblwtY2VyZW1vbmlvdXNcLW9jY2FzaW9uc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45moIDwgdGhlXC1yb3lhbFwtZG9tYWluc1wtc2V0XC1hcGFydFwtaW5cLWFuY2llbnRcLXRpbWVzXC1mb3JcLXRoZVwtZW1wZXJvcjsKK+eHiOevgCA8IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLVwoMTV0aFwtb2ZcLWZpcnN0XC1tb250aFwtb2ZcLWx1bmFyXC1jYWxlbmRhclwpOwor6KGpIDwgdGhlXC1vcGVuXC1zZWFtXC1vZlwtYVwtZ2FybWVudFwtd2hpY2hcLWFsbG93c1wtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5bG6IDwgYVwtaGlsbFwtd2l0aFwtdHJlZXNcLW9yXC1ncmFzc1wtXC1cLXNvbWVcLWdpdmVcLXRoZVwtb3Bwb3NpdGVcLW1lYW5pbmc7CivljJfmtIsgPCB0aGVcLXFpbmdcLWR5bmFzdHlcLW5hbWVcLWZvclwtdGhlXC1jb2FzdGFsXC1wcm92aW5jZXNcLW9mXC1saWFvbmluZzsKK+WFq+aXlyA8IHRoZVwtXCJlaWdodFwtYmFubmVyc1wiXC1cKG1pbGl0YXJ5XC1vcmdhbmlzYXRpb25cLWluXC1xaW5nXC1keW5hc3R5XCk7CivktqYgPCB1cHBlclwtYW5kXC1sb3dlclwtdGVldGhcLWluXC1vcmRlclwtYW5kXC1jb3JyZXNwb25kaW5nXC1lYWNoXC1vdGhlcjsKK+SngiA8IHRvXC10dXJuXC1vdmVyXC10aGVcLWNsb2RcLW9mXC10aGVcLWVhcnRoXC13aXRoXC1hXC1zaG92ZWxcLW9yXC1hXC1zcGFkZTsKK+iXpOmHjiA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtdGVuZ1wteWVcLFwtYVwtamFwYW5lc2VcLWZyaWVuZFwtb2ZcLWx1M1wteHVuNFwt6a2v6L+FOwor6I+v6KGoIDwgbWFyYmxlXC1waWxsYXJcLVwob3JuYW1lbnRhbFwtY29sdW1uXC1pblwtZnJvbnRcLW9mXC1wbGFjZXNcLFwtdG9tYnNcKTsKK+W+healrSA8IHRvXC1hd2FpdFwtam9iXC1hc3NpZ25tZW50XC1cKHRlcm1cLXVzZWRcLW9ubHlcLWluXC1tYWlubGFuZFwtY2hpbmFcKTsKK+WkqualteaLsyA8IGFcLWtpbmRcLW9mXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtc2hhZG93Ym94aW5nXC1cKHRhaVwtY2hpXC1jaHVhblwpOwor5ZOA5YW15b+F5YudIDwgYW5cLWFybXlcLWJ1cm5pbmdcLXdpdGhcLXJpZ2h0ZW91c1wtaW5kaWduYXRpb25cLWlzXC1ib3VuZFwtdG9cLXdpbjsKK+acg+S4jeacgyA8IFwocG9zaW5nXC1hXC1xdWVzdGlvblw6XC13aGV0aGVyXC1zb21lb25lXCxcLXNvbWV0aGluZ1wpXC1jYW5cLW9yXC1ub3Q7Civmia7nm7ggPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hblwtYWN0b3JcLW9yXC1hY3RyZXNzXC1pblwtY29zdHVtZVwtb3JcLW1ha2V1cDsKK+aKseS9m+iFsyA8IGNsYXNwXC1idWRkYScnc1wtZmVldFwtXC1cLXByb2Zlc3NcLWRldm90aW9uXC1vbmx5XC13aGVuXC1pblwtdHJvdWJsZTsKK+WZniA8IHRoZVwtbW92ZW1lbnRcLW9mXC1hXC1maXNoJydzXC1tb3V0aFwtYXRcLXRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtd2F0ZXI7CivllLUgPCB1c2VkXC1pblwtYnVkZGhpc3RcLXRleHRzXC10b1wtdHJhbnNsaXRlcmF0ZVwtbm9uXC1jaGluZXNlXC1zb3VuZHM7CivkoIIgPCBuYW1lXC1vZlwtYVwtcG93ZXJmdWxcLWZldWRhbFwtc3RhdGVcLXdoaWNoXC1leGlzdGVkXC03NDBcLTMzMFwtYlwuY1wuOwor5Ja2IDwgdG9cLXJhaXNlXC11cFwtdGhlXC1ub3NlXC1pblwtb3JkZXJcLXRvXC1nZXRcLXRoZVwtYnVnc1wtaW5cLXRoZVwtZWFydGg7Civom4voirHmua8gPCBjbGVhclwtc291cFwtY29udGFpbmluZ1wtYmVhdGVuXC1lZ2dcLWFuZFwtZ3JlZW5cLWxlYWZ5XC12ZWdldGFibGU7CivkhJsgPCBzZXJ2aWNlXC1vclwtcml0ZXNcLW9mXC1vZmZlcmluZ1wtc2FjcmlmaWNlc1wtZm9yXC1kcmlua1wtYW5kXC1mb29kOwor47ywIDwgYW5cLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47iWIDwgaGlkZVwtb3JcLXRvXC1rZWVwXC1pblwtc3RvcmVcLXRoZVwtdmVnZXRhYmxlXC1pblwtY29sZFwtd2ludGVyXC1kYXlzOwor47efIDwgdG9cLXNjYWxkXC10aGVcLWJyaXN0bGVzXC1vZmZcLWFcLXBpZ1wtb3JcLXRoZVwtZmVhdGhlcnNcLW9mZlwtYVwtYmlyZDsKK+OwhyA8IHRoZVwtc3F1YXJlXC1wZWNrXC1zaGFwZWRcLWJveFwtaGFsZlwtd2F5XC11cFwtYVwtY2hpbmVzZVwtZmxhZ3N0YWZmOwor46a8IDwgYVwtd29vZGVuXC1waWxlc1wtdXNlZFwtYXNcLWFcLWNhYmxlXC10b1wtbWFrZVwtaW1tb3ZhYmxlXC1vZlwtYVwtYm9hdDsKK+OipyA8IGFcLWJvb2tcLW9yXC1wYWludGluZ1wtd2hpY2hcLWNhblwtYmVcLWVhc2lseVwtZm9sZGVkXC1vclwtcm9sbGVkXC11cDsKK+mHkeWxseWvuiA8IGppbnNoYW5cLXRlbXBsZVwsXC13aGVyZVwtZmFoYWlcLWxpdmVzXC1cKGZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+S4puiSguiTriA8IHR3aW5cLWxvdHVzXC1mbG93ZXJzXC1vblwtb25lXC1zdGFsa1wtXC1cLWFcLWRldm90ZWRcLW1hcnJpZWRcLWNvdXBsZTsKK+atpuihkyA8IHd1c2h1XCxcLW1hcnRpYWxcLWFydHNcLXN1Y2hcLWFzXC1zaGFkb3dcLWJveGluZ1wsXC1zd29yZHBsYXlcLFwtZXRjXC47CivkuK3lhbEgPCBcKGFiYnJldmlhdGlvblwtZm9yXClcLWNoaW5lc2VcLWNvbW11bmlzdFwtXChwYXJ0eVwsXC1yZWdpbWVcLFwtZXRjXC5cKTsKK+mSsiA8IGtpbmRcLW9mXC1nb25nXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLWJ5XC10cm9vcHNcLW9uXC10aGVcLW1hcmNoOwor5pS/5Y2UIDwgY3BwY2NcLVwoY2hpbmVzZVwtcGVvcGxlJydzXC1wb2xpdGljYWxcLWNvbnN1bHRhdGl2ZVwtY29tbWl0dGVlXCk7CivmjqHlj5YgPCBhZG9wdFwtb3JcLWNhcnJ5XC1vdXRcLVwobWVhc3VyZXNcLFwtcG9saWNpZXNcLFwtY291cnNlXC1vZlwtYWN0aW9uXCk7CivnmZ/kuIkgPCBhXC13cmV0Y2hlZFwtbG9va2luZ1wtdHJhbXBcLXdob1wtbGl2ZXNcLWJ5XC1iZWdnaW5nXC1vclwtc3RlYWxpbmc7CivooajlhYQgPCBtYWxlXC1jb3VzaW5cLXdpdGhcLWFcLWRpZmZlcmVudFwtc3VybmFtZVwtXChvbGRlclwtdGhhblwtb25lc2VsZlwpOwor55+b6aCt5oyH5ZCRIDwgdGFyZ2V0XC1zb21lb25lXC1vclwtc29tZXRoaW5nXC1cKGZvclwtYXR0YWNrXCxcLWNyaXRpY2lzbVwsXC1ldGNcLlwpOwor5LuZ6I2JIDwgYVwta2luZFwtb2ZcLXBsYW50XC11c2VkXC1hc1wtYVwtbWVkaWNpbmFsXC1oZXJiXC1pblwtYW5jaWVudFwtdGltZXM7CivkqrMgPCBzbGFudGVkXC1mYWNlXC1jYXVzaW5nXC1ieVwtdGhlXC1wYXJhbHl6ZWRcLW9mXC10aGVcLWZhY2lhbFwtbmVydmU7Civmnb/og6EgPCBhXC1ib3dlZFwtc3RyaW5nZWRcLWluc3RydW1lbnRcLXdpdGhcLWFcLXRoaW5cLXdvb2Rlblwtc291bmRib2FyZDsKK+SeiyA8IHRvXC1kb1wtYWxtc1wtZm9yXC10aGVcLWJ1ZGRoaXN0XC1wcmllc3RzXC1vclwtbW9ua3NcLWluXC1vbGRcLXRpbWVzOwor5JmGIDwgc2xpdHNcLW9uXC10aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ293blwtZm9yXC1mcmVlZG9tXC1vZlwtbW92ZW1lbnQ7CivkgI8gPCB0b1wtbW92ZVwtb25lJydzXC1leWVzXC10b1wtZXhwcmVzc1wtb3JcLWluZGljYXRlXC13aXRoXC1leWVzXC1kaXp6eTsKK+O/hCA8IHRoZVwtZ3JvYW5zXC1vclwtbW9hbnNcLWZyb21cLWFcLXBlcnNvblwtaW5cLWFcLWNyaXRpY2FsXC1jb25kaXRpb247Civjto8gPCBhblwtYW5jaWVudFwtbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlXC1kZW5nZmVuZ3hpYW47Civjs4cgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtamlhbmdzdVwtcHJvdmluY2VcLXlpeGluZ1wtY291bnR5Owor46uLIDwgYVwtc2lsa2VuXC1iYW5uZXJcLWhhbmdpbmdcLWZyb21cLWFcLXN0YWZmXC1iZW50XC1vdmVyXC1hdFwtdGhlXC10b3A7Civmlq/ljaHkvK/li5LnpIEgPCBzY2FyYm9yb3VnaFwtc2hvYWxcLVwocGhpbGlwcGluZXMnJ1wtbmFtZVwtZm9yXC1odWFuZ3lhblwtaXNsYW5kXCk7CivkuI3mgaXkuIvllY8gPCBub3RcLWZlZWxcLWFzaGFtZWRcLXRvXC1hc2tcLWFuZFwtbGVhcm5cLWZyb21cLW9uZScnc1wtc3Vib3JkaW5hdGVzOwor54u9IDwgYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmrZAgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1ub25cLWNoaW5lc2VcLXdvcmRzXC1zdWNoXC1hc1wtZXVyb3BlOwor5rGoIDwgbWlcLXJpdmVyXC1pblwtaHVuYW5cLXByb3ZpbmNlXC13aGVyZVwtcXVcLXl1YW5cLWRyb3duZWRcLWhpbXNlbGY7CivmsZwgPCBhXC1zdHJlYW1cLXdoaWNoXC1sZWF2ZXNcLXRoZVwtbWFpblwtYnJhbmNoXC10aGVuXC1sYXRlclwtcmV0dXJuczsKK+WNoeaLiU9LIDwga2FyYW9rZVwtXChzaW5naW5nXC10b1wtcmVjb3JkZWRcLWluc3RydW1lbnRhbFwtYWNjb21wYW5pbWVudFwpOwor5Lit5ZyL5rCR6IiqIDwgZ2VuZXJhbFwtYWRtaW5pc3RyYXRpb25cLW9mXC1jaXZpbFwtYXZpYXRpb25cLW9mXC1jaGluYVwtXChjYWFjXCk7Civoo5zppIogPCB0YWtlXC1hXC10b25pY1wtb3JcLW5vdXJpc2hpbmdcLWZvb2RcLXRvXC1idWlsZFwtdXBcLW9uZScnc1wtaGVhbHRoOwor5rKZ5Yip56eR5LuA57at5YipIDwgZ2VuZXJhbFwtc2hhbGlrYXNodmlsaVwtXChoZWFkXC1vZlwtdXNcLWpvaW50XC1jaGllZnNcLW9mXC1zdGFmZlwpOwor57CIIDwgYmFtYm9vXC1tYXRcLXVzZWRcLXRvXC1wcm90ZWN0XC1jYXJyaWFnZVwtcGFzc2VuZ2Vyc1wtZnJvbVwtZHVzdDsKK+eIvCA8IGFcLXNtYWxsXC10YWJsZVwtb3JcLXRpZXJlZFwtc3RhbmRcLWZpbGxlZFwtd2l0aFwtbWVhdFwtb2ZmZXJpbmdzOwor5LiJ5ZyL5ryU576pIDwgbmFtZVwtb2ZcLWFcLWNsYXNzaWNcLW5vdmVsXCxcLVwicm9tYW5jZVwtb2ZcLXRoZVwtdGhyZWVcLWtpbmdkb21zXCI7Civmi7zlkb0gPCB0b1wtYmVcLXJlYWR5XC10b1wtcmlza1wtb25lJydzXC1saWZlXC1cKGluXC1maWdodGluZ1wsXC13b3JrXCxcLWV0Y1wuXCk7Civog4zmsLTkuIDmiLAgPCBmaWdodFwtd2l0aFwtb25lJydzXC1iYWNrXC10b1wtdGhlXC1yaXZlclwtXC1cLWZpZ2h0XC10b1wtd2luXC1vclwtZGllOwor5LOaIDwgYVwtc29ydFwtb2ZcLW5pZ2h0aW5nYWxlXC13aGljaFwtaXNcLXNhaWRcLXRvXC1zaW5nXC1mb3JcLXRoZVwtZGF3bjsKK+ShgiA8IHRoZVwtbG9uZ1wtd29vZGVuXC1idW1wZXJcLWF0XC10aGVcLXJlYXJcLW9mXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7Civmna/lvJPom4flvbEgPCBtaXN0YWtpbmdcLXRoZVwtcmVmbGVjdGlvblwtb2ZcLWFcLWJvd1wtaW5cLXRoZVwtY3VwXC1mb3JcLWFcLXNuYWtlOwor5IO+IDwgdG9cLW9mZmVyXC1zbWFsbFwtcGlnXC1hc1wtc2FjcmlmaWNlXC13aGVuXC13YXJzaGlwXC1nb2RcLW9mXC1saWZlOwor47yqIDwgZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLXRcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47SWIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtamluYW47CivjnYkgPCBzcGFjZVwtYmV0d2VlblwtdGhlXC10aHJvbmVcLWFuZFwtdGhlXC1yZXRpcmluZ1wtcm9vbVwtYmVoaW5kXC1pdDsKK+OWqyA8IHVzZWRcLWluXC1uYW1lc1wtZm9yXC1taW5vcml0eVwtZXRobmljXC1ncm91cFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6IOM5LqV6Zui6YSJIDwgbGVhdmVcLW9uZScnc1wtbmF0aXZlXC1wbGFjZVwtXChlc3BlY2lhbGx5XC1hZ2FpbnN0XC1vbmUnJ3NcLXdpbGxcKTsKK+eCnSA8IHN0aXJcLWZyeVwtb3JcLWJvaWxcLWluXC13YXRlclwtb3JcLW9pbFwtdGhlblwtY29va1wtd2l0aFwtYVwtc2F1Y2U7CivpgbfmgJIgPCB0b1wtdGFrZVwtb25lJydzXC1hbmdlclwtb3V0XC1vblwtc2JcLVwod2hvXC1kb2VzXC1ub3RcLWRlc2VydmVcLWl0XCk7Civms6LngL7otbfkvI8gPCBvZlwtYVwtcGllY2VcLW9mXC13cml0aW5nXC13aXRoXC1vbmVcLWNsaW1heFwtZm9sbG93aW5nXC1hbm90aGVyOwor5LiN54K65bey55SaIDwgcmVmcmFpblwtZnJvbVwtZ29pbmdcLXRvXC1leHRyZW1lc1wtaW5cLW1ldGluZ1wtb3V0XC1wdW5pc2htZW50Owor5LiN57SE6ICM5ZCMIDwgdGFrZVwtdGhlXC1zYW1lXC1hY3Rpb25cLW9yXC12aWV3XC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor6aOb6JmO6ZqKIDwgZmx5aW5nXC10aWdlcnNcLVwodXNcLWFpcm1lblwtaW5cLWNoaW5hXC1kdXJpbmdcLXdvcmxkXC13YXJcLXR3b1wpOwor5o6b5aW9IDwgdG9cLWhhbmdcLXVwXC1wcm9wZXJseVwtXCh0ZWxlcGhvbmVcLFwtcGljdHVyZVwsXC1jbG90aGVzXCxcLWV0Y1wuXCk7Civmi5Tmr5IgPCBkcmF3XC1vdXRcLXB1c1wtYnlcLWFwcGx5aW5nXC1hXC1wbGFzdGVyXC10b1wtdGhlXC1hZmZlY3RlZFwtYXJlYTsKK+W8riA8IGFcLWNyb3d3Ym93XC13aGljaFwtZGlzY2hhcmdlZFwtc2V2ZXJhbFwtYm9sdHNcLWluXC1zdWNjZXNzaW9uOwor5KqZIDwgbGVhdGhlclwtd3JhcHBlZFwtY29sbGFyXC1mb3JcLWFcLWRyYWZ0XC1hbmltYWxcLW9mXC1hXC1jYXJyaWFnZTsKK+SnmiA8IHRoZVwtbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdGhlXC1zb3V0aFwtd2VzdFwtb2ZcLWhlYmVpXC1wcm92aW5jZTsKK+eVnOWKmyA8IGFuaW1hbFwtcG93ZXJlZFwtXChhc1wtb3Bwb3NlZFwtdG9cLWh1bWFuXC1vclwtbWFjaGluZVwtcG93ZXJlZFwpOwor5KGeIDwgbGVhdGhlclwtdGhhdFwtd2luZFwtcm91bmRcLW9uXC10aGVcLXNoYWZ0c1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkjZwgPCBhXC1iYXNrZXRcLW9yXC1hXC1jYWdlXC11c2VkXC10b1wta2VlcFwtd2lsZFwtYW5kXC1kb21lc3RpY1wtZm93bHM7Civkh4YgPCBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC10ZW5cLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+SChSA8IHRvXC1oYXZlXC1pbnNpZ2h0XC1vclwtdmlzaW9uXC1vZlwtYVwtc2ltcGxlXC1hbmRcLWhvbmVzdFwtcGVyc29uOwor47K9IDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtdG9kYXknJ3NcLXNvdXRod2VzdFwtb2ZcLXNoYW54aVwtcHJvdmluY2U7CivjrpAgPCBhXC1yYWNrXC1vclwtYVwtc3RhbmRcLXdpdGhcLXRocmVlXC1zdGlja3NcLXRvXC1jcm9zc1wtZWFjaFwtb3RoZXI7CivjrLggPCBhXC1raW5kXC1vZlwtc2VydmljZXNcLW9yXC1jZXJlbW9uaWVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXM7CivmmpfoirHlhZIgPCBhXC12ZWlsZWRcLWRlc2lnblwtaW5jaXNlZFwtaW5cLXBvcmNlbGFpblwtb3JcLXdvdmVuXC1pblwtZmFicmljOwor5Yaw54Kt5LiN55u45a65IDwgYXNcLWluY29tcGF0aWJsZVwtb3JcLWlycmVjb25jaWxhYmxlXC1hc1wtaWNlXC1hbmRcLWhvdFwtY29hbHM7CivluavohZQgPCB2b2NhbFwtYWNjb21wYW5pbWVudFwtaW5cLXNvbWVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1vcGVyYXM7CivlpZTllqogPCBoYXN0ZW5cLWhvbWVcLWZvclwtdGhlXC1mdW5lcmFsXC1vZlwtYVwtcGFyZW50XC1vclwtZ3JhbmRwYXJlbnQ7Civnmb3oio0gPCBcKHBlZWxlZFwpXC1yb290XC1vZlwtaGVyYmFjZW91c1wtcGVvbnlcLVwocGFlb25pYVwtbGFjdGlmbG9yYVwpOwor6YOMIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oc2llblwtaW5cLW1vZGVyblwtZ2Fuc3VcL3NoYWFueGlcLWFyZWFcLjsKK+iIiOi2oyA8IGludGVyZXN0XC1cKGRpcmVjdGVkXC10b3dhcmRzXCxcLW5vdFwtaW5oZXJlbnRcLWluXC1zb21ldGhpbmdcKTsKK+aLlOe9kOWtkCA8IGN1cHBpbmdcLXRlY2huaXF1ZVwtdXNlZFwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1tZWRpY2luZTsKK+iAsCA8IHRvb3RobGVzc1wtcmFrZVwtZm9yXC1kcmF3aW5nXC1lYXJ0aFwtb3ZlclwtbmV3bHlcLXNvd25cLWdyYWluOwor55CAIDwgZ2Vtc1wtb2ZcLXBlYXJsc1wtZm9ybWVybHlcLXB1dFwtaW50b1wtdGhlXC1tb3V0aFwtb2ZcLWFcLWNvcnBzZTsKK+aomeWFtSA8IHBhcmFkZVwtZ3VhcmRzXC1cKHVzdWFsbHlcLXNwYWNlZFwtb3V0XC1hbG9uZ1wtcGFyYWRlXC1yb3V0ZXNcKTsKK+SqgyA8IHdpbmVcLWNvbnRhaW5lclwtdXNlZFwtYnlcLW1pbm9yaXR5XC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KW3IDwgYVwtaGluZ2VkXC1zaGVhclwtb3JcLWxvbmdcLWtuaWZlXC1mb3JcLWN1dHRpbmdcLWZvZGRlclwtb3JcLWhheTsKK+SkqSA8IGFuXC1vcm5hbWVudFwtYXRcLXRoZVwtZW5kXC1vZlwtYVwtYmVsdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2qIDwgdG9cLXByb3ZpZGVcLW1vbmV5XC1vclwtZ2lmdFwtYW5kXC10b1wtY29uc3VsdFwtZm9ydHVuZVwtdGVsbGVyOwor5JmbIDwgY2VyZW1vbmlhbFwtZHJlc3NcLW9mXC10aGVcLWVtcGVyb3JcLW9yXC12ZXJ5XC1oaWdoXC1vZmZpY2lhbHM7CivkmKYgPCBhXC1raW5kXC1vZlwtaGVhZFwtZHJlc3NcLXdvcmVcLWluXC1mdW5lcmFsXC1yaXRlc1wtaW5cLW9sZFwtZGF5czsKK+SYnyA8IGtpbmRcLW9mXC1zaWxrXC13b3Zlblwtd2l0aFwtZG91YmxlXC10aHJlYWRzXC1hbmRcLXdhdGVyXC1wcm9vZjsKK+SUkSA8IGFcLXdoaXRlXC1jb2xvcmVkXC1jbHVzdGVyXC1ncm93blwtYXRcLXRoZVwtdGlwXC1vZlwtY29nb25ncmFzczsKK+SJsiA8IHRoaW5cLWFuZFwtZmxhdFwtc2xpcHNcLW9mXC1iYW1ib29cLXVzZWRcLWZvclwtd2VhdmluZ1wtcHVycG9zZTsKK+O8vSA8IGZyYWdtZW50c1wtb2ZcLWFcLXRpbGVcLWhhdmVuJyd0XC1iZWVuXC1raWxuXC1kcmllZFwtY29tcGxldGVseTsKK+O2gSA8IGFmdGVyXC1ibG9ja2luZ1wtdGhlXC13YXRlclwtZmxvd1wtdGFrZXNcLWRpZmZlcmVudFwtd2F0ZXJ3YXk7Civjr4AgPCBib25kc1wtYW5kXC1mZXR0ZXJzXC1mb3JcLWZhbGNvbnNcLWFuZFwtZG9nc1wtdXNlZFwtaW5cLWh1bnRpbmc7Civjkr4gPCBhXC1raW5kXC1vZlwtd3JhcHBlclwtdXNlZFwtdG9cLWNvdmVyXC1vdmVyXC10aGVcLWZhY2VcLWFuZFwtaGVhZDsKK+WFq+mdoueOsueTjyA8IGJlXC1zbW9vdGhcLWFuZFwtc2xpY2tcLVwoaW5cLWVzdGFibGlzaGluZ1wtc29jaWFsXC1yZWxhdGlvbnNcKTsKK+WFg+WuteevgCA8IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLFwtamFudWFyeVwtMTVcLW9uXC10aGVcLWx1bmFyXC1jYWxlbmRhcjsKK+ecvuW/l+aIkOWfjiA8IFwidW5pdHlcLW9mXC13aWxsXC1pc1wtYW5cLWltcHJlZ25hYmxlXC1zdHJvbmdob2xkXCJcLVwocHJvdmVyYlwpOwor5YCL6auU5oi2IDwgYVwtc21hbGxcLXByaXZhdGVcLWJ1c2luZXNzXC1cKHVzZWRcLWluXC1tYWlubGFuZFwtY2hpbmFcLW9ubHlcKTsKK+azlea1tyA8IG5hbWVcLW9mXC1hXC1idWRkaGlzdFwtbW9ua1wsXC1mYWhhaVwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6KCyIDwgdGhlXC1taWxsaXBlZGVcLXNvbWV0aW1lc1wtY29uZm91bmRlZFwtd2l0aFwtdGhlXC1ncm93XC13b3JtOwor6JinIDwgYVwtcGxhbnRcLXdoaWNoXC1yZXNlbWJsZXNcLXdoZWF0XC1idXRcLWhhc1wtbm9cLWVkaWJsZVwtZ3JhaW47Civmma/lvrfpjq4gPCBqaW5nXC1kZVwtemhlblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtamlhbmdcLXhpXC3msZ/opb9cLXByb3ZpbmNlXCk7Civpn4vniL7lvJfpm7fojLIgPCBcKGdlb3JnZVwpXC13ZWhyZnJpdHpcLVwoYmVpamluZ1wtYnVyZWF1XC1jaGllZlwtb2ZcLW5ld3N3ZWVrXCk7Civplbfln47ljaEgPCBncmVhdFwtd2FsbFwtY2FyZFwtXChjcmVkaXRcLWNhcmRcLWlzc3VlZFwtYnlcLWJhbmtcLW9mXC1jaGluYVwpOwor5ZOI6LKd54i+IDwgXCh3ZWJzdGVyXClcLWh1YmJlbGxcLVwoZm9ybWVyXC1hc3NvY2lhdGVcLWF0dG9ybmV5XC1nZW5lcmFsXCk7CivokKzlo73lsbEgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtbG9uZ2V2aXR5XC1oaWxsXCxcLWluXC1zdW1tZXJcLXBhbGFjZVwt6aCk5ZKM5ZySOwor5ouJ6YKj54OIIDwgXChwcmluY2VcKVwtcmFuYXJpZGRoXC1cKHNvblwtb2ZcLWtpbmdcLXNpaGFub3VrXC1vZlwtY2FtYm9kaWFcKTsKK+ShtCA8IGNhcnJpYWdlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLXRvXC10YWtlXC1lbmVteVwtcG9zaXRpb247Civkn7ogPCB3YWxrXC1zbG93bHlcLWJlY2F1c2VcLW9mXC10aGVcLXdyb25nXC1wb3NpdGlvblwtb2ZcLXRoZVwtZmVldDsKK+SJoyA8IHNsaXBzXC1vZlwtYmFtYm9vXC1wcm92aWRlZFwtZm9yXC13cml0aW5nXC1pblwtYW5jaWVudFwtdGltZXM7CivkgbkgPCB0b1wtbG9va1wtYXNrYW5jZVwtXC1cLVwtYVwtZXhwcmVzc2lvblwtb2ZcLWRpc2RhaW5cLW9yXC1kZXNwaXNlOwor47yMIDwgbG90XC1vZlwtbWVsb25zXC1ncm93aW5nXC1idXRcLXRoZVwtcm9vdFwtaXNcLXdlYWtcLWFuZFwtZmVlYmxlOwor47ugIDwgamFkZVwtaGFuZ2luZ1wtb25cLXRoZVwtc2lkZXNcLW9mXC10aGVcLWNhcFwtaW5cLWFuY2llbnRcLXRpbWVzOwor466jIDwgYVwtcGllY2VcLW9mXC13b29kXC11c2VkXC10b1wtc3RyaWtlXC1vZmZcLWdyYWluXC1pblwtYVwtbWVhc3VyZTsKK+OTpCA8IHRvXC1zdHJpcFwtdGhlXC1za2luXC1vZlwtdGhlXC1mYWNlXC1cLVwtXC1hblwtaW1taW5lbnRcLWNhbGFtaXR5Owor5YyF5bmy5Yi2IDwgYVwtc3lzdGVtXC1vZlwtcGF5bWVudFwtcGFydGx5XC1pblwta2luZFwtYW5kXC1wYXJ0bHlcLWluXC1jYXNoOwor5oqX5pel5oiw54itIDwgXChjaGluYScnc1wpXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7CivpoY/nnJ/ljb8gPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXlhblwtemhlbnFpbmdcLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civnmb3ntKDosp4gPCBcKG5hbWVcLW9mXC1hXC1wZXJzb25cKVwtYmFpXC1zdXpoZW5cLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+eggCA8IGJyaWxsaWFudGx5XC1jb2xvcmVkXC1zdG9uZVwtd2l0aFwtdmVpbmVkXC1wYXR0ZXJuc1wtaW5cLWl0Owor5b2I55C0IDwgdG9cLXBsYXlcLW9yXC1zdHJ1bVwtYVwtbHV0ZVwtb3JcLW90aGVyXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+eZvemZtiA8IHdoaXRlXC1wb3R0ZXJ5XC1cKG9mXC1zaGFuZ1wtZHluYXN0cnlcLTE2XC0xMXRoXC1jZW50dXJ5XC1iY1wpOwor5YyF5bmyIDwgYmVcLXJlc3BvbnNpYmxlXC1mb3JcLWFcLXRhc2tcLXVuaXRcLXVudGlsXC1pdFwtaXNcLWNvbXBsZXRlZDsKK+Wkp+adkOWwj+eUqCA8IHVzaW5nXC1hXC10YWxlbnRlZFwtcGVyc29uXC1pblwtYW5cLWluc2lnbmlmaWNhbnRcLXBvc2l0aW9uOwor55CzXC7miLTntq3mlq8gPCBseW5uXC1kYXZpc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLWFybXNcLWNvbnRyb2xcLWV4cGVydFwpOwor5bmz5pa5IDwgc3F1YXJlXC1cKGFzXC1pblwtc3F1YXJlXC1mb290XCxcLXNxdWFyZVwtbWlsZVwsXC1zcXVhcmVcLXJvb3RcKTsKK+iZkiA8IGFuXC1hbXBoaWJpb3VzXC1iZWFzdFwtcmVzZW1ibGluZ1wtYVwtdGlnZXJcLXdpdGhcLW9uZVwtaG9ybjsKK+etgSA8IGFcLWJhbWJvb1wtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluXC10aGVpclwtY29jb29uczsKK+S6uuawkeiLsembhOe0gOW/teeikSA8IG1vbnVtZW50XC10b1wtdGhlXC1wZW9wbGUnJ3NcLWhlcm9lc1wsXC1hdFwtdGlhbmFubWVuXC1zcXVhcmU7CivlhosgPCBhXC1kZXNlcnRcLWFcLWJvcmRlclwtcHJhaXJpZVwtdGhlXC0xc3RcLWZvcm1cLWlzXC1yYWRpY2FsXC0xMzsKK+S0tyA8IHVzZVwtdGhlXC13aG9sZVwtcGllY2VcLW9mXC1iYXJsZXlcLXRvXC1mZXJtZW50XC1mb3JcLWJyZXdpbmc7CivkrZ4gPCBhXC1raW5kXC1vZlwtc2FjcmlmaWNlc1wtb2ZmZXJlZFwtdG9cLWdvZHNcLW9yXC10aGVcLWRlY2Vhc2VkOwor5KegIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtd2hhdFwtaXNcLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkkakgPCBhXC1raW5kXC1vZlwtaW5sYW5kXC1yaXZlcnNcLXdhcnNoaXBcLXVzZWRcLWluXC1xaW5nXC1keW5hc3R5Owor5I24IDwgYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1hbmltYWxcLXdpdGhcLTRcLWVhcnNcLWFuZFwtOVwtdGFpbHM7Civkg6sgPCBhXC1zaWxpY2F0ZVwtc3Vic3RhbmNlXC1mcm9tXC10aGVcLXNhbHRcLXdlbGxzXC1pblwtc3plY2h3YW47CivjuJwgPCB0b1wtZ2V0XC10aHJvdWdoXC10aGVcLXNwYWNlXC1lbmNsb3NlZFwtYnlcLWFcLWNvbnN0ZWxsYXRpb247Civjt60gPCBhXC1jb25pY2FsXC1icmlja1wtc3RydWN0dXJlXC1pblwtd2hpY2hcLXRvXC1saWdodFwtYVwtYmVhY29uOwor5LiN6IGe5LiN5ZWPIDwgbm90XC1ib3RoZXJcLXRvXC1hc2tcLXF1ZXN0aW9uc1wtb3JcLWxpc3RlblwtdG9cLXdoYXQnJ3NcLXNhaWQ7CivkuKbooYzkuI3mgpYgPCBib3RoXC1jYW5cLWJlXC1pbXBsZW1lbnRlZFwtd2l0aG91dFwtY29taW5nXC1pbnRvXC1jb25mbGljdDsKK+atpeatpeeCuueHnyA8IGFkdmFuY2VcLWdyYWR1YWxseVwtYW5kXC1lbnRyZW5jaFwtb25lc2VsZlwtYXRcLWV2ZXJ5XC1zdGVwOwor55S+IDwgZ3JvdW5kXC10aGF0XC1oYXNcLWJlZW5cLXVuZGVyXC1jdWx0aXZhdGlvblwtZm9yXC1vbmVcLXllYXI7CivkuIDmnJvnhKHpmpsgPCBhc1wtZmFyXC1hc1wtdGhlXC1leWVcLWNhblwtc2VlXC1cKGxpdFw6XC1sb29rXC1hZmFyXC1ub1wtYm91bmRcKTsKK+S4jeimi+e2k+WCsyA8IG5vdFwtdG9cLWJlXC1mb3VuZFwtaW5cLXRoZVwtY2xhc3NpY3NcLVwtXC1ub3RcLWF1dGhvcml0YXRpdmU7CivmkqXpm7Lopovml6UgPCBkaXNwZWxcLXRoZVwtY2xvdWRzXC1hbmRcLXNlZVwtdGhlXC1zdW5cLVwtXC1yZXN0b3JlXC1qdXN0aWNlOwor5q+U5LiK5LiN6Laz5q+U5LiL5pyJ5L2ZIDwgZmFsbFwtc2hvcnRcLW9mXC10aGVcLWJlc3RcLWJ1dFwtYmVcLWJldHRlclwtdGhhblwtdGhlXC13b3JzdDsKK+eZveWGsOWGsCA8IHBhaVwtcGluZ1wtcGluZ1wtXCh3ZWxsXC1rbm93blwtdGFpd2FuXC1wZXJmb3JtaW5nXC1hcnRpc3RcKTsKK+aLieiynSA8IFwoam9oblwpXC1yYWJlXC1cKGdlcm1hblwtZXlld2l0bmVzc1wtdG9cLW5hbmppbmdcLW1hc3NhY3JlXCk7Civlt6vlsbEgPCBtdFwuXC13dVwsXC1vblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwtYnlcLXRoZVwtdGhyZWVcLWdvcmdlczsKK+emoSA8IGFcLXNhY3JpZmljZVwtYXRcLXRoZVwtYmVnaW5uaW5nXC1vZlwtYVwtbWlsaXRhcnlcLWNhbXBhaWduOwor56SuIDwgYW5jaWVudFwtYmFsbGlzdGFcLWZvclwtdGhyb3dpbmdcLWhlYXZ5XC1zdG9uZXNcLWFcLWNhbm5vbjsKK+aNleS/mCA8IGNhcHR1cmVcLWVuZW15XC1wZXJzb25uZWxcLVwoZm9yXC1pbnRlbGxpZ2VuY2VcLXB1cnBvc2VzXCk7CivkvK/mganmlq8gPCBcKG5pY2hvbGFzXClcLWJ1cm5zXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtc3Bva2VzcGVyc29uXCk7Civkr6AgPCB0aGVcLWZpdmVcLWxvd2VzdFwtcGllY2VzXC1vZlwtYm9uZVwtb2ZcLXRoZVwtc3BpbmFsXC1jb2x1bW47CivkrKYgPCBmb29kXC1pdGVtc1wtbWVyZWx5XC1hcnJhbmdlZFwtZm9yXC1kaXNwbGF5XC1wdXJwb3NlXC1vbmx5Owor5JmRIDwgYVwtcGllY2VcLW9mXC1zYWNrY2xvdGhcLXdvcm5cLW9uXC10aGVcLWJyZWFzdFwtaW5cLW1vdXJuaW5nOwor6Y+i5a6iIDwgYXJtZWRcLWVzY29ydFwtXChvZlwtdHJhdmVsbGVyc1wtb3JcLW1lcmNoYW50cycnXC1jYXJhdmFuc1wpOwor5IixIDwgYW5cLW9wZW5cLWJhbWJvb1wtYmFza2V0XC11c2VkXC10b1wtZmVlZFwtZG9tZXN0aWNcLWFuaW1hbHM7CivjqrUgPCBoYWxmXC1vZlwtYVwtdW5pdFwtb2ZcLW1lYXN1cmVtZW50XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjoYggPCB0aGVcLXJvcGVzXC1hdHRhY2hlZFwtdG9cLXRoZVwtYmllclwtYW5kXC1oZWxkXC1ieVwtbW91cm5lcnM7CivjmqQgPCBhXC1sYWR5XC1vZmZpY2VyXC1vZlwtdGhlXC1tb25hcmNoJydzXC1wYWxhY2VcLWluXC1vbGRcLXRpbWVzOwor5a6J5q2l55W26LuKIDwgd2Fsa1wtb3ZlclwtbGVpc3VyZWx5XC1pbnN0ZWFkXC1vZlwtcmlkaW5nXC1pblwtYVwtY2FycmlhZ2U7Civosp3mr40gPCB0aGVcLWJ1bGJcLW9mXC10aGVcLWZyaXRpbGxhcnlcLVwoZnJpdGlsbGFyaWFcLXRodW5iZXJnaWlcKTsKK+WQjeWLnSA8IGFcLXBsYWNlXC1mYW1vdXNcLWZvclwtaXRzXC1zY2VuZXJ5XC1vclwtaGlzdG9yaWNhbFwtcmVsaWNzOwor5rCR5qiCIDwgbXVzaWNcLFwtZXNwXC5cLWZvbGtcLW11c2ljXCxcLWZvclwtdHJhZGl0aW9uYWxcLWluc3RydW1lbnRzOwor5ZGAIDwgcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZVwtb3JcLW1pbGRcLWVtcGhhc2lzOwor6Zmd6KW/IDwgc2hhYW54aVwtcHJvdmluY2VcLFwtY2hpbmFcLVwoY2FwaXRvbFwtY2l0eVwtaXNcLXhpJydhblwt6KW/5a6JXCk7Civml6XmlrkgPCB0aGVcLWphcGFuZXNlXC1zaWRlXC1vclwtcGFydHlcLVwoaW5cLW5lZ290aWF0aW9uc1wsXC1ldGNcLlwpOwor5LiN5Yud5p6a6IiJIDwgdG9vXC1udW1lcm91c1wtdG9cLW1lbnRpb25cLWluZGl2aWR1YWxseVwtb3JcLW9uZVwtYnlcLW9uZTsKK+mdtyA8IHRoZVwtbGVhdGhlclwtYmVsdFwtdGhhdFwtY29ubmVjdHNcLWFcLWhvcnNlXC13aXRoXC1hXC1jYXJ0Owor6K28IDwgdG9cLXN1cGVydmlzZVwtdG9cLWNvbmZpbmVcLWFcLWdvdmVybm1lbnRcLWVzdGFibGlzaG1lbnQ7CivmqavmipggPCBcKGhvcml6b250YWxcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7Civopb/lrokgPCB4aScnYW5cLVwoY2l0eVwpXCxcLXRoZVwtY2FwaXRvbFwtY2l0eVwtb2ZcLXNoYWFueGlcLXByb3ZpbmNlOwor5bCP6Z2SIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14aWFvcWluZ1wsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6Ieo5pG5IDwgdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCxcLWV0Y1wuXCk7CivlnasgPCBhXC1zdGFuZFwtb25cLXdoaWNoXC10b1wtcmVwbGFjZVwtZ29ibGV0c1wtYWZ0ZXJcLWRyaW5raW5nOwor5YKZ5Y+WIDwgYmVcLW9uXC10aGVcLXdhaXRpbmdcLWxpc3RcLVwoZm9yXC1hZG1pc3Npb25cLXRvXC1hXC1zY2hvb2xcKTsKK+S0vSA8IGFcLXNtYWxsXC1yb3VuZFwtcGllY2VcLW9mXC1kaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LCOIDwgdG9cLXR3aXN0XC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqp0gPCBsZWF0aGVyXC1jb3JkXC10aGF0XC13aW5kaW5nXC1vblwtdGhlXC1oYW5kbGVcLW9mXC1hXC1rbmlmZTsKK+izk+iHs+WmguatuCA8IGd1ZXN0c1wtZmVlbFwtYXRcLWhvbWVcLVwoaW5cLWFcLWhvdGVsXCxcLWd1ZXN0aG91c2VcLFwtZXRjXC5cKTsKK+ShhyA8IHRoZVwtY3Jvc3NcLWJhclwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC1wb2xlXC1vZlwtYVwtY2FycmlhZ2U7CivknoAgPCB0b1wtZGVzaXJlXC1mb3JcLW1vcmVcLW1vbmV5XC10aGFuXC1vbmUnJ3NcLXJpZ2h0ZnVsXC1zaGFyZTsKK+SYrSA8IHRoZVwtcGxlYXRlc1wtb25cLXRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50XC1vZlwtdGhpblwtc2lsazsKK+SQiCA8IGFcLXBpZWNlXC1vZlwtb25lXC1mb290XC10d29cLWluY2hlc1wtZHJpZWRcLXNlYXNvbmVkXC1tZWF0Owor5I2FIDwgY29udGFpbmVyc1wtZm9yXC13YXRlclwtb3JcLXdpbmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SLviA8IGNvdHRvblwtYW5kXC1zaWxrXC10b1wtYmVcLWxhaWRcLWFuZFwtYXR0YWNoZWRcLWVhY2hcLW90aGVyOwor5ImQIDwgYVwtdGhpblwtYW5kXC1sb25nXC1zdHJpcFwtb2ZcLWJhbWJvb1wtZm9yXC1tYWtpbmdcLWJhc2tldHM7CivkiLsgPCBhXC1oZWF2eVwtbWF0c1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC1kZWVwXC13YXRlclwtZmlzaGluZzsKK+SHoCA8IHdyZW5jaFwtdG9cLWFkanVzdFwtdGhlXC1zdHJpbmdcLW9uXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+SEjCA8IHRvXC1wZXJmb3JtXC1yaXRpZXNcLWluXC1ob25vclwtb2ZcLXRoZVwtYW5jZXN0cmFsXC10ZW1wbGU7Civkg6YgPCBhXC1mbGF0XC1hbmRcLWdyZWF0XC1yb2NrXC1wZW9wbGVcLXNxdWF0XC1vclwtY3JvdWNoXC1vblwtaXQ7Civju4AgPCBmaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47KsIDwgaGFpclwtZGVjb3JhdGlvbnNcLW9uXC1hXC1oZWxtZXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OxryA8IGdldFwtdGhlXC11bmJvcm5cLWJhYnlcLWdvYXRcLWJ5XC1raWxsbmdcLXRoZVwtbW90aGVyXC1nb2F0Owor466wIDwgdGhlXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+OqtiA8IGFcLWRyeVwtbWVhc3VyZVwtMTBcLW9yXC01XC10aW1lc1wtdGhhdFwtb2ZcLWFcLWNoaW5lc2VcLXBlY2s7CivlsLzotavpra8gPCBcKGphd2FoYXJsYWxcKVwtbmVocnVcLVwoZmlyc3RcLXByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7Civjn5cgPCBuYW1lXC1vZlwtYVwtc21hbGxcLXByaW5jaXBhbGl0eVwtaW5cLXdoYXRcLWlzXC1ub3dcLXNoYW54aTsKK+aSpea1qum8kyA8IGFcLWRydW1cLXNoYXBlZFwtcmF0dGxlXC1cKHVzZWRcLWJ5XC1wZWRsYXJzXC1vclwtYXNcLWFcLXRveVwpOwor5bCW6Zaj5YiX5bO2IDwgc2Vua2FrdVwtaXNsYW5kc1wtXChqYXBhbmVzZVwtbmFtZVwtZm9yXC1kaWFveXVcLWlzbGFuZHNcKTsKK+acrOacqyA8IHRoZVwtd2hvbGVcLWNvdXJzZVwtb2ZcLWFuXC1ldmVudFwtZnJvbVwtYmVnaW5uaW5nXC10b1wtZW5kOwor6aCT5oyrIDwgd2l0aFwtc3luY29wYXRlZFwtY2FkZW5jZVwtXChicnVzaFwtc3Ryb2tlXC1pblwtcGFpbnRpbmdcKTsKK+e2reWQvueIvuaXjyA8IHRoZVwtdXlndXJcLVwodWlnaHVyXClcLW5hdGlvbmFsaXR5XCxcLWxpdmluZ1wtaW5cLXhpbmppYW5nOwor54mI55WrIDwgYVwtcGljdHVyZVwtcHJpbnRlZFwtZnJvbVwtYW5cLWVuZ3JhdmVkXC1vclwtZXRjaGVkXC1wbGF0ZTsKK+mBv+irsSA8IHRhYm9vXC1hZ2FpbnN0XC11c2luZ1wtdGhlXC1wZXJzb25hbFwtbmFtZXNcLW9mXC1lbXBlcm9yczsKK+aMieS4i+iRq+iYhua1rui1t+eToiA8IHNvbHZlXC1vbmVcLXByb2JsZW1cLW9ubHlcLXRvXC1maW5kXC1hbm90aGVyXC1jcm9wcGluZ1wtdXA7CivkvL0gPCB0cmFuc2NyaXB0aW9uXC1vZlwtc2Fuc2tyaXRcLScnZ2hhJydcLWluXC1idWRkaGlzdFwtdGV4dHM7CivlsaMgPCBzdHJhd1wtc2FuZGFsc1wtb3JcLXNsaXBwZXJzXC10aGF0XC1oYXZlXC1ub1wtaGVlbFwtYmFja3M7CivljJflpKfojZIgPCB0aGVcLWdyZWF0XC1ub3J0aGVyblwtd2lsZGVybmVzc1wtXChpblwtbm9ydGhlcm5cLWNoaW5hXCk7Civmrabmnb4gPCB3dXNvbmdcLFwtbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1oZXJvXC1pblwtc2h1aVwtaHVcLXpodWFuOwor5Y2B5LqU5aSnIDwgMVwtNXRoXC1wYXJ0eVwtY29uZ3Jlc3NcLVwob2ZcLWNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcKTsKK+adjuWFieiAgCA8IGxlZVwta3VhblwteWV3XC1cKGZvcm1lclwtcHJpbWVcLW1pbmlzdGVyXC1vZlwtc2luZ2Fwb3JlXCk7CivoqLHku5kgPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXh1XC14aWFuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivlhJDnm7ggPCBhdHRlbmRhbnRcLW9mXC10aGVcLWJyaWRlXC1vclwtYnJpZGVncm9vbVwtYXRcLWFcLXdlZGRpbmc7Civoo5zngIkgPCByZWluZm9yY2luZ1wtYW5kXC1yZWR1Y2luZ1wtbWV0aG9kc1wtXChpblwtYWN1cHVuY3R1cmVcKTsKK+WNl+iPr+aXqeWgsSA8IHNvdXRoXC1jaGluYVwtbW9ybmluZ1wtcG9zdFwtXChuZXdzcGFwZXJcLWluXC1ob25nXC1rb25nXCk7CivlubnkuosgPCBhZG1pbmlzdHJhdGl2ZVwtc2VjcmV0YXJ5XC1cKGluXC1jaGFyZ2VcLW9mXC1zb21ldGhpbmdcKTsKK+eXheWFpeiGj+iCkyA8IHRoZVwtZGlzZWFzZVwtaGFzXC1hdHRhY2tlZFwtdGhlXC12aXRhbHNcLVwtXC1iZXlvbmRcLWN1cmU7Civlt6vls70gPCB3dXhpYVwtZ29yZ2VcLFwtaW5cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLXRocmVlXC1nb3JnZXM7CivmvI4gPCBhXC1wbGFjZVwtd2hlcmVcLXNtYWxsXC1zdHJlYW1zXC1mbG93XC1pbnRvXC1hXC1sYXJnZVwtb25lOwor5oqY562GIDwgYWdhaW5zdFwtdGhlXC1icmlzdGxlc1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5qq+IDwgZ3Jhc3N5XC1wbGFudFwtd2l0aFwtZmlicmVzXC1mcm9tXC13aGljaFwtY2xvdGhcLWlzXC1tYWRlOwor5bCI57eaIDwgc3BlY2lhbFwtcHVycG9zZVwtcGhvbmVcLWxpbmVcLW9yXC1jb21tdW5pY2F0aW9uc1wtbGluazsKK+WcluWFiyA8IFwoZ2FyeVwtbFwuXClcLXRvb2tlclwtXChtb3Rvcm9sYVwtY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkXCk7CivksIwgPCB0b1wtYmluZFwtdGhlXC1oYWlyXC1pblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5Km1IDwgdGFubmVyXC13aG9cLW1hZGVcLXRoZVwtbGVhdGhlclwtZHJ1bVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Lq65rCR6KGM5YuV6buoIDwgcGVvcGxlJydzXC1hY3Rpb25cLXBhcnR5XC1cKHJ1bGluZ1wtcGFydHlcLWluXC1zaW5nYXBvcmVcKTsKK+SamSA8IGFcLXNwb29uXC1mb3JcLWNvb2tlZFwtcmljZVwtbWFkZVwtb2ZcLWhvcm5cLW9mXC1hblwtYW5pbWFsOwor5IyzIDwgYVwta2luZFwtb2ZcLXVucmVmaW5lZFwtb3JcLXVucG9saXNoZWRcLXNpbGtlblwtdGV4dGlsZXM7CivkirogPCBhblwtaW1wbGVtZW50XC10b1wtZHJhd1wtb3JcLXRvXC1jb2xsZWN0XC1yb3Blc1wtb3JcLWNvcmRzOwor5ImDIDwgc2xpcGVkXC1vcGVuXC1iYW1ib29cLXdpdGhcLXRoZVwtam9pbnRzXC11c2VkXC1hc1wtYW5cLW9hcjsKK+SJgCA8IHJlY3Rhbmd1bGFyXC1jaGVzdFwtb3JcLWJveFwtd292ZW5cLWZyb21cLWJhbWJvb1wtc3RyaXBzOwor5ISLIDwgdG9cLXByYXlcLWZvclwtcHJldmVudGluZ1wtb3JcLWZvcmVzdGFsbGluZ1wtY2FsYW1pdGllczsKK+SDriA8IGFcLXN0b25lXC1idWlsZFwtaHlkcmF1bGljXC1tZWFzdXJlc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor476/IDwgcm9hclwtb2ZcLWFzdGhtYVwtb3JcLWV4cGVjdG9yYXRlXC1mcm9tXC1hXC1keWluZ1wtcGVyc29uOwor47uoIDwgaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47qQIDwgZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjr4IgPCBwaWxsYXJcLW9yXC1wb3N0XC1vZlwtYVwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor45+LIDwgZGVlcFwtYW5kXC1sZXZlbFwtZ3JvdW5kXC1ndWxseVwtYXRcLXRoZVwtZm9vdFwtb2ZcLWFcLWhpbGw7CivjnqogPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC10aGVcLW1vdW50YWluXC1pc1wtZmxhdFwtYW5kXC1zbW9vdGg7CivmlpzpiaQgPCBcKGRvd253YXJkc1wtcmlnaHRcLWNvbmNhdmVcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ixjuaKmCA8IFwoZG93bndhcmRzXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6ICB5YWEIDwgJydvbGRcLWNoYXAnJ1wtXChmb3JtXC1vZlwtYWRkcmVzc1wtYmV0d2VlblwtbWFsZVwtZnJpZW5kc1wpOwor57SE57+w5ouJ6LKdIDwgam9oblwtcmFiZVwtXChnZXJtYW5cLWV5ZXdpdG5lc3NcLXRvXC1uYW5qaW5nXC1tYXNzYWNyZVwpOwor6KGFIDwgY29uc2VjcmF0ZVwtc2FjcmlmaWNpYWxcLXZlc3NlbHNcLWJ5XC1zbWVhcmluZ1wtYmxvb2Q7CivomaIgPCBuYW1lXC1vZlwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoZW54aVwtYW5kXC1odW5hbjsKK+i3keaxn+a5liA8IHRvXC1tYWtlXC1hXC1saXZpbmdcLWFzXC1hXC10cmF2ZWxsaW5nXC1wZXJmb3JtZXJcLFwtZXRjXC47CivkuqTmmJPpoY0gPCBzdW1cLW9yXC12b2x1bWVcLW9yXC1hbW91bnRcLW9mXC1idXNpbmVzc1wtdHJhbnNhY3Rpb25zOwor6b2JIDwgc3RvcHBhZ2VcLW9mXC10aGVcLW5vc2VcLXRvXC1zcGVha1wtd2l0aFwtYVwtbmFzYWxcLXR3YW5nOwor5qmr562GIDwgYnJpc3RsZXNcLWx5aW5nXC1kb3duXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivkuI3mlaLotorpm7fmsaDkuIDmraUgPCBkYXJlXC1ub3RcLWdvXC1vbmVcLXN0ZXBcLWJleW9uZFwtdGhlXC1wcmVzY3JpYmVkXC1saW1pdDsKK+aOoeizvCA8IG1ha2VcLXB1cmNoYXNlc1wtZm9yXC1hblwtb3JnYW5pemF0aW9uXC1vclwtZW50ZXJwcmlzZTsKK+ato+WcqCA8IGluXC10aGVcLXByb2Nlc3NcLW9mXC1cKGRvaW5nXC1zb21ldGhpbmdcLW9yXC1oYXBwZW5pbmdcKTsKK+ikryA8IGNoaWxkcmVuJydzXC1nYXJtZW50c1wuXC1hXC1tYXRcLWZvclwtd3JhcHBpbmdcLWdhcm1lbnRzOwor5p6X6LGQ5q2jIDwgbGluXC1mZW5nXC1jaGVuZ1wtXCh0YWl3YW5cLW1pbmlzdGVyXC1vZlwtdGhlXC1pbnRlcmlvclwpOwor5aCx5ZyLIDwgZGVkaWNhdGVcLW9uZXNlbGZcLXRvXC10aGVcLXNlcnZpY2VcLW9mXC1vbmUnJ3NcLWNvdW50cnk7CivokaPlu7roj68gPCB0dW5nXC1jaGVlXC1od2FcLVwoaG9uZ1wta29uZ1wtbGVhZGVyXC1hZnRlclwtanVseVwtMTk5N1wpOwor562G6Ke4IDwgYnJ1c2hcLXN0cm9rZVwtaW5cLWNoaW5lc2VcLXBhaW50aW5nXC1hbmRcLWNhbGxpZ3JhcGh5Owor5LiN56C05LiN56uLIDwgd2l0aG91dFwtZGVzdHJ1Y3Rpb25cLXRoZXJlXC1jYW5cLWJlXC1ub1wtY29uc3RydWN0aW9uOwor5Y2X5Lqs6LevIDwgbmFuamluZ1wtc3RcLlwsXC1sYXJnZVwtY29tbWVyY2lhbFwtc3RyZWV0XC1pblwtc2hhbmdoYWk7CivmoqAgPCBhXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+aRoyA8IGFcLWhhbmRmdWxcLlwtdG9cLXBpY2tcLXVwXC13aXRoXC10aGVcLWZpbmdlcnNcLlwtdG9cLXNlaXplOwor5aCYIDwgYVwtcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZFwtd2hpY2hcLWFjdHNcLWFzXC1hXC1keWtlOwor5LacIDwgdGhlXC1wcm9jZXNzXC10b1wtd2hpdGVuXC10aGVcLWl2b3J5XC1vclwtZWxlcGhhbnRcLXR1c2s7CivkrokgPCBob3JzZXNcLWtlcHRcLWF0XC1hXC1jb3VyaWVyXC1zdGF0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SitSA8IG5hbWVcLW9mXC1hblwtb2xkXC1jb3VudHJ5XC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+ShnyA8IGFcLXJpbmdcLW9mXC10aGVcLWhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJyaWFnZTsKK+SemyA8IGRhbmNpbmdcLW9mXC1hXC1lYXN0ZXJuXC1taW5vcml0eVwtZ3JvdXBcLWluXC1vbGRcLWNoaW5hOwor5J2MIDwgYVwtcGlnXC1zZWVrXC1mb3JcLWZvb2RcLXRocm91Z2hcLWRpZ2dpbmdcLW9uXC10aGVcLWVhcnRoOwor5JKBIDwgYVwtc21hbGxcLWJvYXRcLWNvbm5lY3RlZFwtdG9cLXRoZVwtYmFja1wtb2ZcLWFcLWJpZ1wtYm9hdDsKK+SJiyA8IGFcLXZhcmlldHlcLW9mXC1iYW1ib29cLXNob290c1wtdGhhdFwtc3Byb3V0XC1pblwtd2ludGVyOwor5IiUIDwgd2hpc3RsZVwtbWFkZVwtb2ZcLXJlZWRcLXdpdGhvdXRcLWhvbGVzXC1mb3JcLWZpbmdlcmluZzsKK+O9mSA8IG9mZmljaWFsXC1pblwtY2hhcmdlXC1vZlwtZmFybWxhbmRzXC1pblwtYW5jaWVudFwtdGltZXM7Civjs44gPCBndWlkZVwtb3JcLWxlYWRcLXRvXC1tYWtlXC10aGVcLXdhdGVyXC1mbG93aW5nXC1zbW9vdGhseTsKK+OyqiA8IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OyqCA8IGFcLWRlY29yYXRpdmVcLWZpbmVcLWJsYW5rZXRcLW9uXC10aGVcLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+OniyA8IHRvXC1sZW5ndGhlblwtYW5kXC1leHRlbnVhdGVcLVwtXC1cLWFzXC1pblwtbWFraW5nXC1ub29kbGU7CivjoJwgPCB5b3VuZ1wta2lkc1wtc21hcnRcLWFuZFwtZmFtaWxpYXJcLXdpdGhcLWh1bWFuXC1hZmZhaXJzOwor5L6/5Lq6IDwgc29tZWJvZHlcLXdob1wtaGFwcGVuc1wtdG9cLWJlXC1vblwtaGFuZFwtZm9yXC1hblwtZXJyYW5kOwor45mxIDwgZWFydGhlbndhcmVcLXVzZWRcLXRvXC1iYWtlXC1jYWtlc1wtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+isnei+myA8IGNoZWFcLXNpbVwtXChjYW1ib2RpYW5cLW5hdGlvbmFsXC1hc3NlbWJseVwtcHJlc2lkZW50XCk7CivlpJbpm7sgPCByZXBvcnRzXC1mcm9tXC1mb3JlaWduXC1cKG5vblwtY2hpbmVzZVwpXC1uZXdzXC1hZ2FuY2llczsKK+WWgSA8IHRoZVwtbW91dGhcLW9mXC1hXC1maXNoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+aPjiA8IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXN0cmV0Y2hcLW91dFwtdGhlXC1hcm1zOwor566sIDwgdGhlXC1jdXRpY2xlXC1vZlwtdGhlXC1iYW1ib29cLWFcLWJyb2FkXC1sZWF2ZWRcLWJhbWJvbzsKK+e9t+S6hiA8IGFcLW1vZGFsXC1wYXJ0aWNsZVwtaW5kaWNhdGluZ1wtXChkb24nJ3RcLW1pbmRcLWl0XCxcLW9rXCk7CivpnZzlsbEgPCBjaGVuZ1wtc2FuXC1cKGVsZWN0b3JhbFwtY29uc3RpdHVlbmN5XC1pblwtc2luZ2Fwb3JlXCk7Civlhavku5nmoYwgPCBvbGRcLWZhc2hpb25lZFwtc3F1YXJlXC10YWJsZVwtdG9cLXNlYXRcLWVpZ2h0XC1wZW9wbGU7CivljIXnlKLliLDmiLYgPCBmaXhpbmdcLW9mXC1mYXJtXC1vdXRwdXRcLXF1b3Rhc1wtZm9yXC1lYWNoXC1ob3VzZWhvbGQ7Civou74gPCBob3Jpem9udGFsXC13b29kZW5cLWJhclwtaW5cLWZyb250XC1vZlwtYVwtc2VkYW5cLWNoYWlyOwor5oqT6aOvIDwgYVwta2luZFwtb2ZcLWZvb2RcLXBvcHVsYXJcLWFtb25nXC1iZWxpZXZlcnNcLWluXC1pc2xhbTsKK+iQhiA8IHRoZVwtY2FzdG9yXC1vaWxcLXBsYW50XC1hbHNvXC11c2VkXC1mb3JcLW90aGVyXC1wbGFudHM7CivloZ7mi4nlh6EgPCBcKHNvbm55XClcLXNlcmFwaGluXC1cKGhhaXRpYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+mHkeWkp+S4rSA8IGtpbVwtZGFlXC1qdW5nXC1cKG5ld2x5XC1lbGVjdGVkXC1wcmVzaWRlbnRcLW9mXC1rb3JlYVwpOwor55m95o+PIDwgbGluZVwtZHJhd2luZ1wtaW5cLXRyYWRpdGlvbmFsXC1pbmtcLWFuZFwtYnJ1c2hcLXN0eWxlOwor57CgIDwgYW5cLWFuY2llbnRcLXZlc3NlbFwtdXNlZFwtZm9yXC1ob2xkaW5nXC1ib2lsZWRcLWdyYWluOwor6IyD5pav5Z2mIDwgXChkaWFubmVcKVwtZmVpbnN0ZWluXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1jYWxpZm9ybmlhXCk7Civpp7Hpp53npaXlrZAgPCBuYW1lXC1vZlwtYVwtbm92ZWxcLFwtbHVvXC10dW9cLXhpYW5nemlcLFwtYnlcLWxhb1wtc2hlXC3ogIHoiI07CivksrAgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1waWdlb25cLW9yXC10aGVcLXR1cnRsZVwtZG92ZTsKK+iAtuepjOWfuuedo+acq+S4luiBluW+kuaVmeacgyA8IHRoZVwtY2h1cmNoXC1vZlwtamVzdXNcLWNocmlzdFwtb2ZcLWxhdHRlclwtZGF5XC1zYWludHM7CivknaUgPCB0b1wtcm9hclwtb3JcLWhvd2xcLWZyYW50aWNcLWJhcmtzXC1vZlwtZG9nc1wtb3JcLXdvbHZlczsKK+SUpCA8IHRoZVwtbHVzaFwtYW5kXC1sdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzXC1hbmRcLWZsb3dlcnM7CivmtrLmhYvmsLQgPCBsaXF1aWRcLXdhdGVyXC1cKGFzXC1vcHBvc2VkXC10b1wtc3RlYW1cLW9yXC1pY2VcLFwtZVwuZ1wuXCk7Civjr64gPCBhXC1raW5kXC1vZlwtdHJlZVwtd2l0aFwtYmlnXC1sZWF2ZXNcLWFuZFwtaW5cLXJlZFwtY29sb3I7CivpgLzkuIrmqJHlsbEgPCBiZVwtZHJpdmVuXC10b1wtam9pblwtdGhlXC1saWFuZ3NoYW5cLW1vdW50YWluXC1yZWJlbHM7CivjlI0gPCBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyOwor6Kej5pS+6LuNIDwgcGVvcGxlJydzXC1saWJlcmF0aW9uXC1hcm15XC1cKGllXCxcLXRoZVwtY2hpbmVzZVwtYXJteVwpOwor5ZSQ5bGxIDwgdGFuZ1wtc2hhblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtaGViZWlcLeays+WMl1wtcHJvdmluY2VcKTsKK+W4uOS7u+eQhuS6i+WciyA8IHBlcm1hbmVudFwtbWVtYmVyXC1zdGF0ZVwtXChvZlwtdW5cLXNlY3VyaXR5XC1jb3VuY2lsXCk7CivnkpwgPCBhXC1zZW1pY2lyY3VsYXJcLWphZGVcLW9ybmFtZW50XC11c2VkXC1hc1wtYVwtcGVuZGFudDsKK+mBv+WrjCA8IGF2b2lkXC1kb2luZ1wtYW55dGhpbmdcLXRoYXRcLW1heVwtYXJvdXNlXC1zdXNwaWNpb247CivotpnntKvpmb0gPCB6aGFvXC16aXlhbmdcLVwoZm9ybWVyXC1jaGluZXNlXC1sZWFkZXJzaGlwXC1maWd1cmVcKTsKK+WgseW5lSA8IGFubm91bmNlXC10aGVcLWl0ZW1zXC1vblwtYVwtXCh0aGVhdHJpY2FsXClcLXByb2dyYW1tZTsKK+irrCA8IHRvXC1vcGVuXC10b1wtYmVnaW5cLXRvXC1leHBsYWluXC10b1wtaW5mb3JtXC1hXC1sZXR0ZXI7CivopqrlrrYgPCBwYXJlbnRzXC1vZlwtb25lJydzXC1kYXVnaHRlclwtaW5cLWxhd1wtb3JcLXNvblwtaW5cLWxhdzsKK+WNl+i9heWMl+i9jSA8IFwoZmlnXC5cKVwtYWN0XC1pblwtYVwtd2F5XC10aGF0XC1kZWZlYXRzXC1vbmUnJ3NcLXB1cnBvc2U7CivnjLkgPCB3aWxkXC1hbmltYWxcLW1lbnRpb25lZFwtaW5cLXNob3J0XC1zdG9yeVwtYnlcLWx1XC14dW47CivnirwgPCBhXC1maWVyY2VcLW1vbmdvbGlhblwtd29sZlwtZHJhZ29uJydzXC1oZWFkXC1vblwtcm9vZnM7CivmuZMgPCBhblwtYWZmbHVlbnRcLW9mXC10aGVcLXJpdmVyXC15YW5ndHplXC1uZWFyXC1raXVraWFuZzsKK+atmiA8IHVzZWRcLWluXC1uYW1lXC1vZlwtZmFtb3VzXC1rb3JlYW5cLXBhaW50ZXJcLWNlbmdcLXNlbjsKK+S/neWkluWwsemGqyA8IFwob2ZcLWFcLXByaXNvbmVyXClcLXJlbGVhc2VkXC1mb3JcLW1lZGljYWxcLXRyZWF0bWVudDsKK+WWnOezliA8IHN3ZWV0XC1naXZlblwtb25cLWFcLWhhcHB5XC1vY2Nhc2lvblwtXChlc3BcLlwtd2VkZGluZ1wpOwor5ouc5aO9IDwgY29uZ3JhdHVsYXRlXC1hblwtZWxkZXJseVwtcGVyc29uXC1vblwtaGlzXC1iaXJ0aGRheTsKK+iSuOiSuOaXpeS4iiA8IGJlY29taW5nXC1tb3JlXC1wcm9zcGVyb3VzXC13aXRoXC1lYWNoXC1wYXNzaW5nXC1kYXk7CivktpsgPCB0b1wtc2VwYXJhdGVcLXRoZVwtbWVhdFwtZnJvbVwtdGhlXC1ib25lc1wtd2l0aFwtdGVldGg7Civks5wgPCBhXC1raW5kXC1vZlwtYmlyZFwtd2hpY2hcLXNoYXJlc1wtaXRzXC1uZXN0XC13aXRoXC1yYXRzOwor5LKNIDwgYVwtcGVyY2hcLWxpa2VcLWZpc2hcLXdpdGhcLXdoaXRlXC1ib2R5XC1hbmRcLXJlZFwtdGFpbDsKK+SptiA8IHNhZGRsZVwtYW5kXC1yZWluXC1ldGNcLlwtZm9yXC10aGVcLWltcGVyaWFsXC1jYXJyaWFnZTsKK+eDj+mtr+acqOm9iiA8IHVydW1xaVwtXChjYXBpdGFsXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5a6J5Zyf6YeN6YG3IDwgaGF0ZVwtdG9cLWxlYXZlXC1hXC1wbGFjZVwtd2hlcmVcLW9uZVwtaGFzXC1saXZlZFwtbG9uZzsKK+SXvSA8IGFcLXNtYWxsXC1nYWRmbHlcLXRoYXRcLXN1Y2tcLWJsb29kXC1vZlwtaG9yc2VcLW9yXC1jb3c7CivkibQgPCBhXC1iYW1ib29cLXdhcmVcLXRvXC1jb2xsZWN0XC1hbmRcLWtlZXBcLXNvbWV0aGluZ1wtaW47CivkiYUgPCBzbWFsbFwtYmFtYm9vXC13aG9zZVwtam9pbnRzXC1hcmVcLXRocmVlXC1mZWV0XC1hcGFydDsKK+SEpiA8IHRvXC1wdXRcLWZvcnRoXC1lYXJzXC1hbmRcLXRvXC1ibG9zc29tXC1vZlwtdGhlXC1ncmFpbnM7CivmlL/lupzmqZ/pl5zplovmlL7ns7vntbHkupLpgKPnuL3liYcgPCBnb3Zlcm5tZW50XC1vcGVuXC1zeXN0ZW1cLWludGVyY29ubmVjdGlvblwtcHJvZmlsZTsKK+O9qSA8IGNvbm5lY3RlZFwtYmFua3NcLW9mXC1lYXJ0aFwtb3JcLXBhdGhzXC1pblwtdGhlXC1maWVsZDsKK+S4puihjCA8IGluXC1wYXJhbGxlbFwtXFtkZXZlbG9wbWVudFwsXC1pbXBsZW1lbnRhdGlvblwsXC1ldGNcXTsKK+O5gyA8IHR3b1wtYnJpbmRsZWRcLWNvd3NcLXRvXC1wbG91Z2hcLWZhY2VcLXRvXC1lYWNoXC1vdGhlcjsKK+S8r+adsCA8IFwoc2FtdWVsXClcLWJlcmdlclwtXCh1c1wtbmF0aW9uYWxcLXNlY3VyaXR5XC1hZHZpc29yXCk7Civjtp8gPCBhblwtYW5jaWVudFwtbmVtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpXC1hbmRcLWhlYmVpOwor5p2x55ufIDwgYXNlYW5cLVwoYXNzb2NpYXRpb25cLW9mXC1zb3V0aGVhc3RcLWFzaWFuXC1uYXRpb25zXCk7CivjsoggPCB0aGVcLW5hbWVcLW9mXC10aGVcLW11c2ljXC1vZlwtdGhlXC1sZWdlbmRhcnlcLWVtcGVyb3I7CivjrJAgPCBhXC1zdGF0ZVwtZHVyaW5nXC10aGVcLXBlcmlvZFwtb2ZcLXNwcmluZ1wtYW5kXC1hdXR1bW47CivjoZsgPCBuYW1lXC1mb3JcLWFcLXdvcmttYW5cLXdob1wtYXBwbHlcLWNvbG9yXC1pblwtcGFpbnRpbmc7Civlt6XllYbpioDooYwgPCBpbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwtXChpY2JjXCk7Civjn6IgPCB0aGVcLXJvY2tzXC1vblwtdGhlXC1oaWxsc1wtYXJlXC1vZlwtZGlmZmVyZW50XC1zaGFwZXM7CivjnLwgPCBjaGlsZHJlblwtb2ZcLW9uZScnc1wtYnJvdGhlclwtXC1cLVwtbmVwaGV3c1wtb3JcLW5pZWNlczsKK+abvue2kyA8IFwocmVmZXJzXC10b1wtc29tZXRoaW5nXC10aGF0XC1oYXBwZW5lZFwtcHJldmlvdXNseVwpOwor45S9IDwgYVwta2luZFwtb2ZcLXdpbmVcLXBvdFwtb3JcLWphclwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7Civjk4MgPCB0b1wtc2FjcmlmaWNlXC1ieVwtcG91cmluZ1wtb3V0XC1hXC1saWJhdGlvblwtb2ZcLXdpbmU7CivjkZ4gPCBhXC1tYWlkXC13aG9cLWFjY29tcGFuaWVzXC1hXC1icmlkZVwtdG9cLWhlclwtbmV3XC1ob21lOwor5Y+v6KaLIDwgaXRcLWNhblwtY2xlYXJseVwtYmVcLXNlZW5cLVwodGhhdFwtdGhpc1wtaXNcLXRoZVwtY2FzZVwpOwor5LqL6IiH6aGY6YGVIDwgdGhpbmdzXC1kb24nJ3RcLXR1cm5cLW91dFwtdGhlXC13YXlcLXlvdVwtd2FudFwtb3JcLXBsYW47CivmhbDllY8gPCBleHByZXNzXC1zeW1wYXRoeVwsXC1ncmVldGluZ3NcLFwtY29uc29sYXRpb25cLFwtZXRjXC47CivmtbflvrcgPCBoeWRlXC1cKGVnXCxcLWhvdXNlXC1qdWRpY2lhcnlcLWNoYWlybWFuXC1oZW5yeVwtaHlkZVwpOwor5by154eI57WQ57a1IDwgYmVcLWRlY29yYXRlZFwtd2l0aFwtbGFudGVybnNcLWFuZFwtY29sb3JlZFwtYmFubmVyczsKK+mWiemWgOaAnemBjiA8IHNodXRcLW9uZXNlbGZcLXVwXC1hbmRcLXBvbmRlclwtb3Zlclwtb25lJydzXC1taXN0YWtlczsKK+e+heaWryA8IHJvdGhcLVwoZWdcLFwtaHJ3XC1leGVjdXRpdmVcLWRpcmVjdG9yXC1rZW5uZXRoXC1yb3RoXCk7Civplonpl5zoh6rlroggPCBjbG9zZVwtdGhlXC1jb3VudHJ5XC10b1wtaW50ZXJuYXRpb25hbFwtaW50ZXJjb3Vyc2U7Civml4Hogb0gPCBiZVwtYVwtdmlzaXRvclwtXChhdFwtYVwtbWVldGluZ1wsXC1jbGFzc1wsXC10cmlhbFwsXC1ldGNcKTsKK+S6kumAmuaApyA8IGludGVyb3BlcmFiaWxpdHlcLVwob2ZcLWNvbW11bmljYXRpb25zXC1lcXVpcG1lbnRcKTsKK+eVsiA8IHRvXC1jdWx0aXZhdGVcLWxhbmRcLWJ5XC1maXJzdFwtc2V0dGluZ1wtZmlyZVwtdG9cLWl0Owor56+aIDwgcm91bmRcLW9yXC1vdmFsXC1jb3ZlcmVkXC1iYXNrZXRzXC13aXRoXC1zaG9ydFwtbGVnczsKK+aOqOi+rSA8IHRvXC1kZWNsaW5lXC1cKGFuXC1hcHBvaW50bWVudFwsXC1pbnZpdGF0aW9uXCxcLWV0Y1wuXCk7CivkuI3pgb/oibHpmqogPCBzaHJpbmtcLW9yXC1mbGluY2hcLWZyb21cLW5vXC1kaWZmaWN1bHR5XC1vclwtZGFuZ2VyOwor55m955eiIDwgZHlzZW50ZXJ5XC1jaGFyYWN0ZXJpemVkXC1ieVwtd2hpdGVcLW11Y291c1wtc3Rvb2w7Civoj6/kvZcgPCBuYW1lXC1vZlwtYVwtZmFtb3VzXC1kb2N0b3JcLWluXC1vbGRcLXRpbWVzXCxcLWh1YVwtdHVvOwor57KUIDwgY2FrZXNcLW1hZGVcLWZyb21cLXJpY2VcLWZsb3VyXC10d2lzdGVkXC1pbnRvXC1yaW5nczsKK+aIpCA8IHRvXC1pbmZyaW5nZVwtYVwtdHJhZGVcLW1hcmtcLXRvXC1wbGVkZ2VcLWFuXC1hcnRpY2xlOwor6Zi/5pe65puy5rKbIDwgbmdhd2FuZ1wtY2hvZXBlbFwtXCh0aWJldGFuXCxcLWZ1bGxicmlnaHRcLXNjaG9sYXJcKTsKK+ajkuanjCA8IHdvb2RlblwtY2x1YlwtXCh1c2VkXC10b1wtYmVhdFwtY2xvdGhlc1wtaW5cLXdhc2hpbmdcKTsKK+WFqOaWl+eFpSA8IGNodW5cLWRvb1wtaHdhblwtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor5LmkIDwgZmlyc3RcLWNoYXJhY3Rlclwtb2ZcLWtvcmVhblwtcGxhY2VcLW5hbWVcLScnaGFscGhvJyc7CivktqggPCBpblwtdGhlXC1tYW5uZXJcLWFcLXRvb3RobGVzc1wtcGVyc29uXC1jaGV3aW5nXC1mb29kOwor5K6bIDwgZXh0cmFcLWhvcnNlXC1oYXJuZXNzZWRcLWJ5XC10aGVcLXNpZGVcLW9mXC10aGVcLXRlYW07Civko6AgPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjnyA8IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkoJIgPCBjb3VydGVzeVwtb2ZcLWFcLW1pbm9yaXR5XC1ncm91cFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2wIDwgdG9cLXN0b3JlXC1vclwtdG9cLWFjY3VtdWxhdGVcLXJpY2hlc1wtb3JcLXZhbHVhYmxlczsKK+ScsSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5JOdIDwgY2hpbmVzZVwtcGVubmlzZXR1bVwpXC1wZW5uaXNldHVtXC1hbG9wZWN1cm9pZGVzXCk7Civki4kgPCBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wcmFjdGljYWxseVwtZXZlcnl0aGluZzsKK+SKoyA8IGxpZ2h0XC15ZWxsb3dcLWR1c3RcLWxpa2VcLWZ1bmdvaWRcLWdyb3d0aFwtb25cLXdpbmU7Civkh5IgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wZXJpb2RpY1wtdGVybXNcLW9yXC1ldmVudHM7Civjv5cgPCBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0XC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+O+qyA8IGhlbWlwbGVnaWFcLVwtXC1cLXBhcmFseXNpc1wtb2ZcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7Civju54gPCBmbG91cmlzaGluZ1wtYW5kXC1yYWRpYW50XC1vZlwtdGhlXC1jb2xvcmZ1bFwtamFkZXM7CivjubEgPCBuYW1lXC1vZlwtYVwtZG9nXC1pblwtdGhlXC1wZXJpb2RcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivjsqUgPCBhXC1raW5kXC1vZlwtd29vbGVuXC10ZXh0aWxlc1wtd2l0aFwtY3VydmVkXC1wYXR0ZXJuOwor4625IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjo68gPCB0aGVcLWRyZXNzZXNcLXRvc3NcLWFuZFwtZmx5aW5nXC1hYm91dFwtaW5cLXRoZVwtd2luZDsKK+OiryA8IGJvd3NcLXVzZWRcLWJ5XC10aGVcLXNvblwtb2ZcLWhlYXZlblwtXC1cLVwtdGhlXC1lbXBlcm9yOwor46GKIDwgYVwta2luZFwtb2ZcLWNhcFwtd29yblwtYnlcLWFuXC1vZmZpY2VyXC1pblwtb2xkXC1jaGluYTsKK+S6uuawkeWkp+acg+WggiA8IGdyZWF0XC1oYWxsXC1vZlwtdGhlXC1wZW9wbGVcLFwtYXRcLXRpYW5hbm1lblwtc3F1YXJlOwor45mrIDwgYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLW91dFwtZnJvbVwtdGhlXC11bmRlcmdyb3VuZDsKK+OZjSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5o6i6Lev6ICFIDwgcGF0aGZpbmRlclwtXChzcGFjZVwtY3JhZnRcLXNlbnRcLXRvXC1tYXJzXC1ieVwtbmFzYVwpOwor55Wr6JuH5re76LazIDwgcnVpblwtdGhlXC1lZmZlY3RcLWJ5XC1hZGRpbmdcLXdoYXRcLWlzXC1zdXBlcmZsdW91czsKK+W0lOS6nueQsyA8IGNoYXJsZXNcLXlhaFwtbGluXC10cmllXC1cKGFya2Fuc2FzXC1yZXN0YXVyYW50ZXVyXCk7CivljJflpKfopb/mtIvlhazntITntYTnuZQgPCB0aGVcLW5vcnRoXC1hdGxhbnRpY1wtdHJlYXR5XC1vcmdhbml6YXRpb25cLVwobmF0b1wpOwor5bCI5qGI57WEIDwgc3BlY2lhbFwtXChsZWdhbFx8anVkaWNpYWxcKVwtaW52ZXN0aWdhdGlvbnNcLWdyb3VwOwor5LuX576p5Z+36KiAIDwgc3BlYWtcLW91dFwtb25cLWFcLW1hdHRlclwtb2ZcLXByaW5jaXBsZVwtb3JcLWp1c3RpY2U7CivlhbXoh6jln47kuIsgPCB0aGVcLWF0dGFja2luZ1wtYXJteVwtaGFzXC1yZWFjaGVkXC10aGVcLWNpdHlcLWdhdGVzOwor5ZCe5ZCQIDwgdG9cLXRha2VcLWluXC1hbmRcLXNlbmRcLW91dFwtXChpblwtbGFyZ2VcLXF1YW50aXRpZXNcKTsKK+mSpyA8IHVuaXRcLW9mXC1tZWFzdXJlXC1lcXVpdmFsZW50XC10b1wtdGhpcnR5XC1jYXR0aWVzOwor5aayIDwgY29uY3ViaW5lXC1vZlwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5Owor55O0IDwgY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmdcLWFcLWxvbmdcLW5lY2tlZFwtamFyOwor5aq1IDwgYVwtbWFpZFwtd2hvXC1hY2NvbXBhbmllc1wtYnJpZGVcLXRvXC1oZXJcLW5ld1wtaG9tZTsKK+iDmSA8IG1lYXRcLW9mZmVyZWRcLWluXC1zYWNyaWZpY2VcLXRvXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ifiiA8IGFcLWZseVwtd2hpY2hcLWlzXC11c2VkXC1zaW1pbGFybHlcLXRvXC1jYW50aGFyaWRlczsKK+aWt+apiyA8IHRoZVwtYnJva2VuXC1icmlkZ2VcLVwoYXRcLXdlc3RcLWxha2VcLWluXC1oYW5nemhvdVwpOwor5aSx5pWX5piv5oiQ5Yqf5LmL5q+NIDwgXCJmYWlsdXJlXC1pc1wtdGhlXC1tb3RoZXJcLW9mXC1zdWNjZXNzXCJcLVwocHJvdmVyYlwpOwor5rCj5YqfIDwgcWlnb25nXCxcLWFcLXN5c3RlbVwtb2ZcLWRlZXBcLWJyZWF0aGluZ1wtZXhlcmNpc2VzOwor55yB57SaIDwgcHJvdmluY2lhbFwtbGV2ZWxcLVwoZWdcLFwtcHJvdmluY2lhbFwtZ292ZXJubWVudFwpOwor5q2m5omTIDwgYWNyb2JhdGljXC1maWdodGluZ1wtaW5cLWNoaW5lc2VcLW9wZXJhXC1vclwtZGFuY2U7CivmqYvmnKzpvo3lpKrpg44gPCBoYXNoaW1vdG9cLFwtcnl1dGFyb1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1qYXBhblwpOwor6aiyIDwgdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzXC1zdWNoXC1hc1wtaG9yc2VzOwor5aCx5aSxIDwgcmVwb3J0XC10aGVcLWxvc3NcLXRvXC10aGVcLWF1dGhvcml0aWVzXC1jb25jZXJuZWQ7Civkv53ppIogPCB0YWtlXC1nb29kXC1jYXJlXC1vZlwtXChvclwtY29uc2VydmVcKVwtb25lJydzXC1oZWFsdGg7CivlubPkv6EgPCBvcmRpbmFyeVwtbWFpbFwtXChhc1wtb3Bwb3NlZFwtdG9cLWFpclwtbWFpbFwsXC1ldGNcLlwpOwor5YiG5LqrIDwgb2J0YWluXC1vbmUnJ3NcLXNoYXJlXC1cKG9mXC13ZWFsdGhcLFwtcmlnaHRzXCxcLWV0Y1wuXCk7CivntIXloKEgPCByZWRcLWZvcnRcLVwoaGlzdG9yaWNcLWJ1aWxkaW5nXC1pblwtZGVsaGlcLFwtaW5kaWFcKTsKK+ePkyA8IHR3b1wtaGVtaXNwaGVyaWNhbFwtb2JqZWN0c1wtdXNlZFwtaW5cLWRpdmluYXRpb247CivlhYPlrrUgPCBzd2VldFwtZHVtcGxpbmdzXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlXC1mbG91cjsKK+iDjOWfjuWAn+S4gCA8IG1ha2VcLWFcLWxhc3RcLWRpdGNoXC1zdGFuZFwtYmVmb3JlXC10aGVcLWNpdHlcLXdhbGw7CivmlacgPCB0b1wtcGlja1wtdXBcLXRoaW5nXC13aXRoXC1jaG9wc3RpY2tzXC1vclwtcGluY2Vyc1wuOwor5omEIDwgbGFyZ2VcLXJpbmdcLW9uXC1hXC1mcm9udFwtZG9vclwtdXNlZFwtYXNcLWFcLWtub2NrZXI7Civlq48gPCB0aGVcLXBsYWNlXC13aGVyZVwtdGhlXC1zdXByZW1lXC1zdG9yZXNcLWhpc1wtYm9va3M7Civoh6jlr6sgPCB0b1wtY29weVwtXChhXC1tb2RlbFwtb2ZcLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmdcKTsKK+aciOmkhSA8IG1vb25cLWNha2VcLVwoZXNwXC5cLWZvclwtdGhlXC1taWRcLWF1dHVtblwtZmVzdGl2YWxcKTsKK+eZvuaEn+S6pOmbhiA8IGFsbFwtc29ydHNcLW9mXC1mZWVsaW5nc1wtd2VsbFwtdXBcLWluXC1vbmUnJ3NcLWhlYXJ0Owor5LGBIDwgYVwta2luZFwtb2ZcLW1lZGl1bVwtc2l6ZWRcLWZpc2hcLWdyb3duXC1pblwtdGhlXC1zZWE7CivksI8gPCBzcGFyc2VcLWhhaXJcLW9uXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkroYgPCBhXC1ob3JzZVwtd2l0aFwtbWl4ZWRcLWNvbG9yXC1vZlwteWVsbG93XC1hbmRcLXdoaXRlOwor5KmbIDwgbGVhdGhlclwtYmVsdFwtdXNlZFwtdG9cLWJpbmRcLW9yXC1yZXN0cmFpblwtYVwtY2FydDsKK+aKhOWutiA8IHRvXC1zZWFyY2hcLWFcLWhvdXNlXC1hbmRcLWNvbmZpc2NhdGVcLXBvc3Nlc3Npb25zOwor5Ka5IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjlCA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5EgPCBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4QgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KK5IDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+SiqiA8IGFcLXNsZWRnZVwtZm9yXC10cmFuc3BvcnRhdGlvblwtb3ZlclwtbXVkXC1vclwtc25vdzsKK+SfhiA8IHRvXC1rZWVwXC1wZXJzb25zXC1vZmZcLXRoZVwtcm91dGVcLW9mXC10aGVcLWVtcGVyb3I7CivmnIPoposgPCB0b1wtbWVldFwtd2l0aFwtXChzb21lb25lXC13aG9cLWlzXC1wYXlpbmdcLWFcLXZpc2l0XCk7CivkiJAgPCBhblwtYXJjaGVkXC1mcmFtZVwtbWFkZVwtb2ZcLWJhbWJvb1wtb2ZcLXdvb2RcLWJvYXJkOwor5IW/IDwgbHV4dXJpYW50XC1vclwtZXh1YmVyYW50XC1vZlwtdGhlXC1ncmFpbnNcLWZsb3dlcnk7Civkg4ggPCBtb3VudGFpblwtcm9ja3NcLWFcLWJsYWNrXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCrCA8IGJpZ1wtcm9ja3NcLW9uXC10aGVcLXJpdmVyc2lkZVwtYW5cLWFyY2hlZFwtb3BlbmluZzsKK+SBnSA8IGRlbHVkaW5nXC1hbmRcLWNhdXNpbmdcLWRpc29yZGVyXC1saWdodHNcLXNoaW5pbmc7CivjvZ8gPCB0b1wtdGlsbFwtb3JcLXRvXC1wbG91Z2hcLXRoZVwtZmllbGRzXC1hblwtZW5jbG9zdXJlOwor466EIDwgcHVibGljbHlcLXBvc3RlZFwtcm9sbFwtb2ZcLXN1Y2Nlc3NmdWxcLWV4YW1pbmVlczsKK+OtuCA8IHRoZVwtYnJhbmNoZXNcLXRvXC1zcHJlYWRcLW91dFwtaW5cLWFsbFwtZGlyZWN0aW9uczsKK+OpiSA8IHRvXC10YWtlXC1hXC1ydWJiaW5nXC1vZlwtYW5cLWluc2NyaXB0aW9uXC1vblwtc3RvbmU7Civjo4EgPCB0b1wtZXF1aXB0XC1hXC1ib3dcLXdpdGhcLXNpbGtcLWFuZFwtbXVzY3VsYXJcLWZpYnJlOwor452ZIDwgdGhlXC10aGlyZFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivplbfmspnngaMgPCBjaGV1bmdcLXNoYVwtd2FuXC1cKHBvdWx0cnlcLW1hcmtldFwtaW5cLWhvbmdcLWtvbmdcKTsKK+Wlp+eIvuW4g+iztOeJuSA8IFwobWFkZWxlaW5lXClcLWFsYnJpZ2h0XC1cKHVzXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwpOwor5q2j5bi45YyWIDwgbm9ybWFsaXphdGlvblwtXChvZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zXCxcLWV0Y1wpOwor5YW15LiN5Y6t6KmQIDwgdGhlcmVcLWNhblwtbmV2ZXJcLWJlXC10b29cLW11Y2hcLWRlY2VwdGlvblwtaW5cLXdhcjsKK+S6lOWFreWNgeatsiA8IFwoaW5cLW9uZScnc1wpXC1maWZ0aWVzXC1vclwtc2l4dGllc1wtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor6YG/6YeN5bCx6LyVIDwgYXZvaWRcLXRoZVwtaW1wb3J0YW50XC1hbmRcLWR3ZWxsXC1vblwtdGhlXC10cml2aWFsOwor5aSn6IiJIDwgY2FycnlcLW91dFwtYVwtbGFyZ2VcLXNjYWxlXC1cKG1pbGl0YXJ5XClcLW9wZXJhdGlvbjsKK+aXpea8uCA8IFwoa2VlcFwtaW5jcmVhc2luZ1wsXC1jaGFuZ2luZ1wsXC1ldGNcLlwpXC1kYXlcLWJ5XC1kYXk7CivmqJnmlrDnq4vnlbAgPCBzdGFydFwtc29tZXRoaW5nXC1uZXdcLWluXC1vcmRlclwtdG9cLWJlXC1kaWZmZXJlbnQ7CivorbDluK0gPCBzZWF0XC1pblwtYVwtcGFybGlhbWVudFwtb3JcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseTsKK+S5jiA8IGludGVycm9nYXRpdmVcLW9yXC1leGNsYW1hdG9yeVwtZmluYWxcLXBhcnRpY2xlOwor5r6EIDwgcHVyaWZ5XC13YXRlclwtYnlcLWFsbG93aW5nXC1zZWRpbWVudFwtdG9cLXNldHRsZTsKK+atnyA8IGFcLWZpbmFsXC1wYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLWFkbWlyYXRpb247CivmoqIgPCBwb2ludGVkXC10aXBcLW9mXC1zb21ldGhpbmdcLWxvbmdcLWxpa2VcLWFcLWJyYW5jaDsKK+WTkiA8IGFcLXNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivnkK4gPCBvY3RhZ29uYWxcLXBpZWNlXC1vZlwtamFkZVwtd2l0aFwtaG9sZVwtaW5cLW1pZGRsZTsKK+WUvCA8IHNwZWFraW5nXC1ldmlsXC5cLWdvYmJsaW5nXC1zb3VuZFwtbWFkZVwtYnlcLWR1Y2tzOwor5aSn5Yqf5ZGK5oiQIDwgc3VjY2Vzc2Z1bGx5XC1hY2NvbXBsaXNoZWRcLVwocHJvamVjdFwtb3JcLWdvYWxcKTsKK+mAmue3nSA8IHdhbnRlZFwtYnlcLXRoZVwtcG9saWNlXC1cKGZ1Z2l0aXZlXC1vclwtY3JpbWluYWxcKTsKK+ecn+e0jSA8IFwobW9oYW1tYWRcLWFsaVwpXC1qaW5uYWhcLVwoZm91bmRlclwtb2ZcLXBha2lzdGFuXCk7CivorJ3oo6HlpKsgPCBcKG5hd2F6XClcLXNoYXJpZlwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1wYWtpc3RhblwpOwor6a2v6LOTIDwgcnViaW5cLVwoZWdcLFwtdHJlYXN1cnlcLXNlY3JldGFyeVwtcm9iZXJ0XC1ydWJpblwpOwor5Yqb5a+2IDwgbGlwcG9cLVwoZ3JvdXBcKVwtXChpbmRvbmVzaWFuXC1idXNpbmVzc1wtY29uY2VyblwpOwor5ZCz5L2c5qOfIDwgZ29oXC1jaG9rXC10b25nXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor54Sh5omA55So5b+DIDwgZWF0XC10aHJlZVwtc3F1YXJlXC1tZWFsc1wtYVwtZGF5XC1hbmRcLWRvXC1ub1wtd29yazsKK+WBtOmLkiA8IG9ibGlxdWVcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor6YK0IDwgbmFtZVwtb2ZcLWFcLWNpdHlcLWluXC10aGVcLWFuY2llbnRcLXN0YXRlXC1vZlwtc29uZzsKK+ePremWgOW8hOaWpyA8IGRpc3BsYXlcLW9uZScnc1wtc2xpZ2h0XC1za2lsbFwtYmVmb3JlXC1hblwtZXhwZXJ0Owor5Lit5ZyL5pel5aCxIDwgY2hpbmFcLWRhaWx5XC1cKGFuXC1lbmdsaXNoXC1sYW5ndWFnZVwtbmV3c3BhcGVyXCk7CivltIfnpo4gPCBjaG9uZ3poZW5cLFwtbGFzdFwtZW1wZXJvclwtb2ZcLXRoZVwtbWluZ1wtZHluYXN0eTsKK+eZveWtlyA8IHdyb25nbHlcLXdyaXR0ZW5cLWFuZFwtbWlzcHJvbm91bmNlZFwtY2hhcmFjdGVyOwor5LiN5Y+v57WC5pelIDwgYmVcLXVuYWJsZVwtdG9cLWNhcnJ5XC1vblwtZXZlblwtZm9yXC1hXC1zaW5nbGVcLWRheTsKK+WvhOS6iOW+iOWkp+acn+acmyA8IHRvXC1wbGFjZVwtZ3JlYXRcLWhvcGVcLW9yXC1leHBlY3RhdGlvblwtb25cLVwoc3RoXCk7Civlt6Xkurrpu6ggPCB3b3JrZXJzJydcLXBhcnR5XC1cKHNpbmdhcG9yZVwtb3Bwb3NpdGlvblwtcGFydHlcKTsKK+WwjeetliA8IGNvdW50ZXJtZWFzdXJlXC1mb3JcLWRlYWxpbmdcLXdpdGhcLWFcLXNpdHVhdGlvbjsKK+S2mCA8IHRoZVwtc291bmRcLW9mXC1jaGV3aW5nXC1zb21ldGhpbmdcLWRyeVwtYW5kXC1oYXJkOwor5K6yIDwgaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvcnNcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkprwgPCB0b1wtZGlnXC1hXC1wYXNzYWdlXC10aHJvdWdoXC1hXC1tb3VudGFpblwtb3JcLWhpbGw7CivkpZEgPCBhXC1raW5kXC1vZlwtZGVjb3JhdGlvblwtb25cLXRoZVwtaGVhZFwtb2ZcLWFcLWhvcnNlOwor5KOvIDwgd2luZVwtb3JcLWFueVwtdGhpY2tcLWZsdWlkXC1vZlwtdGhlXC1iZXN0XC1xdWFsaXR5Owor5KOaIDwgbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KOZIDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KK6IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KG/IDwgZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5JyvIDwgbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5Ji/IDwgc2hpcnRcLW9yXC1hXC1qYWNrZXRcLXdpdGhvdXRcLWFueVwtZGVjb3JhdGVkXC1oZW07CivkloIgPCBhblwtZWRpYlwtbGVcLXdhdGVyXC1wbGFudFwtXC1cLVwtYnJhc2VuaWFcLXB1cnB1cmNhOwor5I+uIDwgdGhlXC1zaWRlc1wtb2ZcLXRoZVwtdHJ1bmtcLWZyb21cLWFybXBpdHNcLXRvXC1yaWJzOwor5IWNIDwgc3RyYWlnaHRcLXVwd2FyZFwtb2ZcLXRoZVwtd2hlYXRcLWFuZFwtcmljZVwtcGxhbnQ7CivkgrggPCB0b1wtc21hc2hcLW9yXC10b1wta25vY2tcLXRvXC1waWVjZXNcLW9mXC10aGVcLXN0b25lOwor562G5YqbIDwgdmlnb3VyXC1vZlwtc3Ryb2tlc1wtaW5cLWNhbGxpZ3JhcGh5XC1vclwtZHJhd2luZzsKK+e9sOmFkiA8IHRvXC1kcmlua1wtYXNcLXRoZVwtcmVzdWx0XC1vZlwtaGF2aW5nXC1sb3N0XC1hXC1iZXQ7CivjvrwgPCB0b1wtc3VmZmVyXC1hXC1zdHJva2VcLW9mXC1wYXJhbHlzaXNcLW9yXC1hcG9wbGV4eTsKK+O9qyA8IHNlZWRzXC1vZlwtdGhlXC1wbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlclwtbGlseTsKK+O4tyA8IGFcLWtpbmRcLW9mXC1jYXR0bGVcLXdpdGhcLXR3b1wtaG9ybnNcLXN0cmFpZ2h0XC11cDsKK+O2rCA8IGJyaWdodFwtbGlnaHRzXC1hbmRcLWlsbHVtaW5hdGlvbnNcLW9mXC10aGVcLWZpcmU7CivjtoYgPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtaGViZWlcLXByb3ZpbmNlXC1oZW5nc2hhbjsKK+aWr+S9qeaelyA8IHNwZWxsaW5nXC1cKGVnXCxcLXNwZWxsaW5nXC1lbnRlcnRhaW5tZW50XC1ncm91cFwpOwor466rIDwgYVwtd29vZGVuXC1hcnRpY2FsXC10b1wtYmVcLXVzZWRcLXRvXC1hZGp1c3RcLWFcLWJvdzsKK+OrjSA8IHRoZVwtc2NhbGxvcHNcLWFsb25nXC10aGVcLWxvd2VyXC1lZGdlXC1vZlwtYVwtZmxhZzsKK+OnjyA8IHRvXC1jYXJyeVwtb25cLXRoZVwtc2hvdWxkZXJzb2ZcLXR3b1wtb3JcLW1vcmVcLW1lbjsKK+aYn+mrlCA8IGNlbGVzdGlhbFwtYm9keVwtXChlZ1wsXC1wbGFuZXRcLFwtc2F0ZWxsaXRlXCxcLWV0Y1wpOwor45u2IDwgZG9cLW5vdFwtY2FyZVwtYWJvdXRcLWFwcGVhcmFuY2VcLWFuZFwtZGVwb3J0bWVudDsKK+OalCA8IGluc3RydW1lbnRcLW9mXC10b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjmYcgPCB0aGVcLWNhdHRsZVwtYW5kXC1ob3JzZXNcLXRyYW1wbGVkXC1vblwtdGhlXC1maWVsZDsKK+S4u+euoSA8IFwoYmVcKVwtcGVyc29uXC1pblwtY2hhcmdlXC1vZlwtXChhXC1wb3NpdGlvblwsXC1ldGNcLlwpOwor5Zau5qeN5Yy56aasIDwgc2luZ2xlXC1oYW5kZWRcLVwobGl0XDpcLXNpbmdsZVwtc3BlYXJcLW9uZVwtaG9yc2VcKTsKK+ebp+azsOaEmiA8IHJvaFwtdGFlXC13b29cLVwoZm9ybWVyXC1zb3V0aFwta29yZWFuXC1wcmVzaWRlbnRcKTsKK+atpemfuyA8IHRvXC13cml0ZVwtYVwtcG9lbVwtdXNpbmdcLWFub3RoZXJcLXBvZW0nJ3NcLXJoeW1lczsKK+WPo+awoyA8IFwoZnJpZW5kbHlcLW9yXC11bmZyaWVuZGx5XClcLXRvbmVcLVwob2ZcLWNvbW1lbnRzXCk7CivmraPpi5IgPCBmcm9udGFsXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+m9iueZveefsyA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWNoaW5lc2VcLWFydGlzdFwsXC1xaVwtYmFpXC1zaGk7CivkuIvkvoYgPCBcKHZlcmJcLXN1ZmZpeFwtaW5kaWNhdGluZ1wtY29udGludWF0aW9uXCxcLWV0Y1wuXCk7Civlubnpg6ggPCBhXC1jYWRyZVwtXChpZVwsXC1tYW5hZ2VyXCxcLXN0YWZmXCxcLW9mZmljZXJcLFwtZXRjXC5cKTsKK+WohSA8IG11dHVhbFwtdGVybVwtb2ZcLWFkZHJlc3NcLXVzZWRcLWJ5XC1zb25zXC1pblwtbGF3Owor5ZWG5YuZ6YOoIDwgY29tbWVyY2VcLWRlcGFydG1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+WQjeWJr+WFtuWvpiA8IG5vdFwtanVzdFwtaW5cLW5hbWVcLW9ubHlcLFwtYnV0XC1hbHNvXC1pblwtcmVhbGl0eTsKK+S4jeeVtuS4gOWbnuS6iyA8IG5vdFwtcmVnYXJkXC1hc1wtYVwtbWF0dGVyXC1cKG9mXC1hbnlcLWltcG9ydGFuY2VcKTsKK+iAgeS8tOWFkiA8IFwob2ZcLWFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZVwpXC1odXNiYW5kXC1vclwtd2lmZTsKK+S4jeaJk+S4jeebuOitmCA8IGZyb21cLWFuXC1leGNoYW5nZVwtb2ZcLWJsb3dzXC1mcmllbmRzaGlwXC1ncm93czsKK+W3tOeIvuiIjeWkq+aWr+WfuiA8IFwoY2hhcmxlbmVcKVwtYmFyc2hlZnNreVwsXC11c1wtdHJhZGVcLW5lZ290aWF0b3I7CivprqAgPCBhXC1raW5kXC1vZlwtc2hhZFwtd2l0aFwtYVwtaGVhZFwtbGlrZVwtYVwtc3R1cmdlb247CivmjqXntI0gPCBhZG1pdFwtXChpbnRvXC1tZW1iZXJzaGlwXC1vZlwtYW5cLW9yZ2FuaXphdGlvblwpOwor5Zac5paw5Y6t6IiKIDwgbGl0ZXJhbFw6XC10b1wtbGlrZVwtdGhlXC1uZXdcLFwtYW5kXC1oYXRlXC10aGVcLW9sZDsKK+aKiumiqCA8IGtlZXBcLXdhdGNoXC1cKGR1cmluZ1wtYVwtY2xhbmRlc3RpbmVcLWFjdGl2aXR5XCk7CivlgpnogJUgPCBtYWtlXC1wcmVwYXJhdGlvbnNcLWZvclwtcGxvdWdoaW5nXC1hbmRcLXNvd2luZzsKK+aSpeWGlyA8IGZpbmRcLXRpbWVcLWluXC10aGVcLW1pZHN0XC1vZlwtcHJlc3NpbmdcLWFmZmFpcnM7Civog5EgPCB0aGVcLWxpbWJzXC5cLXdpbmdzXC1vZlwtYmlyZHNcLlwtbGVnc1wtb2ZcLWFuaW1hbHM7Civnra0gPCBhblwtYW5jaWVudFwtZGV2aWNlXC1mb3JcLXdvcmtpbmdcLXdpdGhcLW51bWJlcnM7CivmooblrZDohZQgPCBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLWxvY2FsXC1vcGVyYXNcLWluXC1zaGFuZ3hpOwor5rudIDwgb25vbWF0b3BvZWljXC1mb3JcLXRoZVwtc291bmRcLW9mXC1mYWxsaW5nXC1yYWluOwor5qC96LSTIDwgdG9cLWZyYW1lXC1zb21lb25lXC1cKGJ5XC1wbGFudGluZ1wtc3RoXC1vblwtdGhlbVwpOwor5o+b5Y+WIDwgZ2l2ZVwtc29tZXRoaW5nXC1hbmRcLWdldFwtc29tZXRoaW5nXC1pblwtcmV0dXJuOwor5ouN5qGI5Y+r57WVIDwgbGl0XC5cOlwtc2xhcFwtdGhlXC10YWJsZVwtYW5kXC1zaG91dFwtd2l0aFwtcHJhaXNlOwor5YG95pu4IDwgXChmb3JnZWRcLFwtZHViaW91c1wsXC1taXNjbGFzc2lmaWVkXClcLW9sZFwtYm9va3M7CivmooXomK3oirMgPCBuYW1lXC1vZlwtYVwtdmVyeVwtZmFtb3VzXC1iZWlqaW5nXC1vcGVyYVwtYXJ0aXN0Owor57C/5YaKIDwgYm9va3NcLWZvclwtdGFraW5nXC1ub3Rlc1wtb3JcLWtlZXBpbmdcLWFjY291bnRzOwor5LO1IDwgYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkXC13aXRoXC1jb2xvcmZ1bFwtZmVhdGhlcjsKK+SzmyA8IGFcLXNtYWxsXC1icm93blwtc3BlY2tsZWRcLWJpcmRcLWxpa2VcLXRoZVwtcXVhaWw7CivkqZEgPCBob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5KaTIDwgdG9cLXdhaXRcLWZvclwtc29tZXRoaW5nXC10b2hhcHBlblwtaW1tZWRpYXRlbHk7Civko6QgPCBuYW1lXC1vZlwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KOdIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko4IgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+ShqSA8IHNvdW5kXC1vZlwtY2FydHNcLW9yXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+SggCA8IHRvXC1zaXRcLWNyb3NzXC1sZWdnZWRcLWxpa2VcLWFcLWJ1ZGRoaXN0XC1wcmllc3Q7CivknKsgPCBuYW1lXC1vZlwtYVwtdmFsbGV5XC1pblwtdG9kYXknJ3NcLWhvYmVpXC1wcm92aW5jZTsKK+ScmiA8IHRvXC1zcGVha1wtcmVja2xlc3NseVwtb3JcLXdpdGhvdXRcLWZvcmV0aG91Z2h0Owor5JOlIDwgc291bmRcLW9mXC10aGVcLXdyaWdnbGVkXC1pbnNlY3RzXC1vblwtdGhlXC1ncmFzczsKK+SQhCA8IHRoZVwtdW5zYXRpc2ZhY3Rpb25cLW9mXC1odW5nZXJcLXJlcXVpcmVzXC1tZWF0Owor5I20IDwgdG9cLXNxdWVlemVcLWFuZFwtdG9cLWNyb3dkXC1hZ2FpbnN0XC1lYWNoXC1vdGhlcjsKK+SNhiA8IGNvbnRhaW5lclwtZm9yXC1ncmFpbnNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+S4iui7iiA8IHRvXC1nZXRcLW9uXC1vclwtaW50b1wtXChhXC1idXNcLFwtdHJhaW5cLFwtY2FyXC1ldGNcLlwpOwor5IevIDwgYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtcGF0dGVybnNcLW9uXC10aGVcLWhlYWQ7CivooYzmlL/pmaIgPCBleGVjdXRpdmVcLXl1YW5cLVwoZ292ZXJubWVudFwtYm9keVwtaW5cLXRhaXdhblwpOwor47yxIDwgdG9cLW1hbmFnZVwtb3JcLXJlZ3VsYXRlXC10aGVcLWxlYXRoZXJcLW1hdGVyaWFsOwor46+KIDwgZXZlblwtbWVhc3VyaW5nXC1ib2FyZFwtZm9yXC1wZWNrc1wtYW5kXC1idXNoZWxzOwor562G5LiLIDwgdGhlXC13b3JkaW5nXC1hbmRcLXB1cnBvcnRcLW9mXC13aGF0XC1vbmVcLXdyaXRlczsKK+S+v+WHvSA8IGFuXC1pbmZvcm1hbFwtbGV0dGVyXC1zZW50XC1ieVwtYW5cLW9yZ2FuaXphdGlvbjsKK+OokCA8IHRvXC1zbGFwXC1saWdodGx5XC1vblwtdGhlXC1jbG90aGVzXC1vclwtY292ZXJsZXQ7CivjoqUgPCBhXC1iaWdcLXBpZWNlXC1vZlwtbG9nXC10b1wtam9pblwtdGhlXC10aGlja1wtcm9wZXM7CivpppbluK0gPCBjaGllZlwtXChyZXByZXNlbnRhdGl2ZVwsXC1jb3JyZXNwb25kZW50XCxcLWV0Y1wpOwor6LSF5am/IDwgc29uXC1pblwtbGF3XC1saXZpbmdcLWF0XC13aWZlJydzXC1wYXJlbnQnJ3NcLWhvdXNlOwor5p2w5L2b6IyyIDwgXChqYW1lc1wpXC1qZWZmb3Jkc1wtXCh1c1wtc2VuYXRvclwtZnJvbVwtdmVybW9udFwpOwor6JmV5pa8IDwgYmVcLVwoaW5cLXNvbWVcLXN0YXRlXCxcLXBvc2l0aW9uXCxcLW9yXC1jb25kaXRpb25cKTsKK+miqOWcn+S6uuaDhSA8IGxvY2FsXC1jb25kaXRpb25zXC1cKGh1bWFuXC1hbmRcLWVudmlyb25tZW50YWxcKTsKK+mYv+aLieWhlOaWryA8IFwoYWxpXClcLWFsYXRhc1wtXChpbmRvbmVzaWFuXC1mb3JlaWduXC1taW5pc3RlclwpOwor576F5biD5rOKIDwgbG9wXC1ub3JcLVwobnVjbGVhclwtdGVzdGluZ1wtc2l0ZVwtaW5cLXhpbmppYW5nXCk7CivmsJHpgLLpu6ggPCBkcHBcLVwoZGVtb2NyYXRpY1wtcHJvZ3Jlc3NpdmVcLXBhcnR5XCxcLXRhaXdhblwpOwor5pWX562GIDwgYVwtZmF1bHR5XC1zdHJva2VcLWluXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nOwor54+IIDwgYW5cLW9ybmFtZW50XC1hdHRhY2hlZFwtdG9cLWFcLXdvbWFuJydzXC1oYWlycGluOwor6JyDIDwgbWFyaW5lXC1tb25zdGVyXC13aGljaFwtY2FuXC1jaGFuZ2VcLWl0c1wtc2hhcGU7CivmlpsgPCBkcnlcLW1lYXN1cmVcLWVxdWFsXC10b1wtc29tZVwtZml2ZVwtb3JcLXRlblwtZG91Owor6YSvIDwgZGlzdHJpY3RcLWluXC1nYW5zdVwtZHVyaW5nXC10aGVcLXRhbmdcLWR5bmFzdHk7CivlurkgPCB0aGVcLWxlbmd0aFwtb2ZcLW9uZScnc1wtdHdvXC1vdXRzdHJldGNoZWRcLWFybXM7Civmj7IgPCB0b1wtc29ydFwtb3V0XC10aGVcLXN0YWxrc1wtdXNlZFwtaW5cLWRpdmluYXRpb247Civlh7rot68gPCBhXC13YXlcLW91dFwtXChvZlwtYVwtZGlmZmljdWx0XC1zaXR1YXRpb25cLFwtZXRjXCk7CivntITlrpros4foqIrpgJ/njocgPCBjb21taXR0ZWRcLWluZm9ycm1hdGlvblwtcmF0ZVwtXChmcmFtZVwtcmVsYXlcKTsKK+eZveiKseibhyA8IGxvbmdcLW5vc2VkXC1waXRcLXZpcGVyXC1cKGFna2lzdHJvZG9uXC1hY3V0dXNcKTsKK+S4reWFseS4reWkriA8IGNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WNmuiBnuW8t+iomCA8IGhhdmVcLXdpZGVcLWxlYXJuaW5nXC1hbmRcLWFcLXJldGVudGl2ZVwtbWVtb3J5Owor5bqm5pelIDwgc2NyYXRjaFwtb3V0XC1hXC1kaWZmaWN1bHRcLFwtbWVhZ2VyXC1leGlzdGVuY2U7CivnnL7orbDlk6EgPCBtZW1iZXJcLW9mXC10aGVcLXVzXC1ob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlczsKK+mfjSA8IGFcLWxlYXRoZXJcLWtuZWVcLXBhZFwtd29yblwtZHVyaW5nXC1zYWNyaWZpY2VzOwor5aCx5qGIIDwgcmVwb3J0XC1hXC1jYXNlXC10b1wtdGhlXC1zZWN1cml0eVwtYXV0aG9yaXRpZXM7Civpj54gPCBhXC1sYXJnZVwtYmVsbFwtdXNlZFwtYXNcLWFcLW11c2ljYWxcLWluc3RydW1lbnQ7Civou44gPCBhXC1icmFzc1wtcGFydHNcLWZvclwtYVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor5YW15rqQIDwgbWFucG93ZXJcLXJlc291cmNlc1wtXChmb3JcLW1pbGl0YXJ5XC1zZXJ2aWNlXCk7CivomYsgPCBhc3BhcmFndXNcLWFcLXZhcmlldHlcLW9mXC1yZWRcLXN0YWxrZWRcLW1pbGxldDsKK+eZvuW5tOWkp+ioiCA8IGFcLXByb2plY3RcLW9mXC12aXRhbFwtYW5kXC1sYXN0aW5nXC1pbXBvcnRhbmNlOwor6YKB56eR6KOhIDwgXChtaWtlXClcLW1jY3VycnlcLVwod2hpdGVcLWhvdXNlXC1zcG9rZXNwZXJzb25cKTsKK+aLlOiLl+WKqemVtyA8IHNwb2lsXC10aGluZ3NcLXRocm91Z2hcLWV4Y2Vzc2l2ZVwtZW50aHVzaWFzbTsKK+WgseWRiuacgyA8IHB1YmxpY1wtbGVjdHVyZVwtXCh3aXRoXC1ndWVzdFwtc3BlYWtlcnNcLFwtZXRjXCk7CivliKnkvK/mm7wgPCBcKGNvbm5lY3RpY3V0XC1zZW5hdG9yXC1qb3NlcGhcLWlcLlwpXC1saWViZXJtYW47Civogq/mma7ntKLmgakgPCBcKGRpcmtcKVwta2VtcHRob3JuZVwtXCh1c1wtc2VuYXRvclwtZnJvbVwtaWRhaG9cKTsKK+W7niA8IHRvXC1wcmVwYXJlXC1ob3JzZXNcLWFuZFwtY2hhcmlvdHNcLWZvclwtYmF0dGxlOwor5amXIDwgYVwtbmV3XC1ib3JuXC1jaGlsZFwtdGhlXC13aGltcGVyXC1vZlwtYW5cLWluZmFudDsKK+WmuiA8IHdpZmVcLW9mXC10aGVcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC14aWFcLWR5bmFzdHk7CivlmaAgPCBzb3VuZFwtbWFkZVwtdG9cLWdldFwtYVwtaG9yc2VcLXRvXC1tb3ZlXC1mb3J3YXJkOwor5aSW5a2r5aWz5YWSIDwgZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtZGF1Z2hlclwpOwor5pyJ6Zu7IDwgXChvZlwtYVwtZHdlbGxpbmdcKVwtc3VwcGxpZWRcLXdpdGhcLWVsZWN0cmljaXR5Owor55m+5oqY5LiN5pKTIDwga2VlcFwtb25cLWZpZ2h0aW5nXC1pblwtc3BpdGVcLW9mXC1hbGxcLXNldGJhY2tzOwor56We5aWz5bOwIDwgbmFtZVwtb2ZcLWFcLXBlYWtcLWJ5XC1jaGFuZ2ppYW5nXC10aHJlZVwtZ29yZ2VzOwor5LiCIDwgb2JzdHJ1Y3Rpb25cLW9mXC1icmVhdGhcLWFzXC1pdFwtc2Vla3NcLXJlbGVhc2U7Civos4Hoh6ggPCBcKG9mXC1kaXN0aW5ndWlzaGVkXC1ndWVzdHNcKVwtaG9ub3VyXC1teVwtaG91c2U7CivksL8gPCBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2hcLWdyb3duXC1pblwtZnJlc2hcLXdhdGVyOwor5a6J6Lqr56uL5ZG9IDwgc2V0dGxlXC1kb3duXC1hbmRcLWdldFwtb25cLXdpdGhcLW9uZScnc1wtcHVyc3VpdDsKK+SivyA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivkoYggPCB0aGVcLWNyb3NzXC1iYXJcLWF0XC10aGVcLXNpZGVzXC1vZlwtYVwtY2Fycml0YWdlOwor5JSJIDwgc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkXC1vZlwtZ3Jhc3NcLWFuZFwtdHJlZXM7CivkkZIgPCBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JCjIDwgc291cFwtbWFkZVwtb2ZcLWN1dHRlZFwtbWVhdFwtbWl4ZWRcLXdpdGhcLWJsb29kOwor5IyuIDwgc2lsa1wtZmFicmljc1wtd2l0aFwtdGhlXC1jb2xvclwtb2ZcLW5ld1wtbGVhdmVzOwor5ISoIDwgZ3JhaW5zXC1wcm9kdWNpbmdcLW5laXRoZXJcLWZsb3dlclwtbm9yXC1mcnVpdDsKK+SEnSA8IHNob3dcLW5vXC1yZXNwZWN0XC10b1wtdGhlXC1zZXJ2aWNlXC1vZlwtd29yc2hpcDsKK+O8rSA8IHRvXC1zdGVhZHlcLWJ5XC1wdXR0aW5nXC1zb21ldGhpbmdcLXVuZGVybmVhdGg7Civju7IgPCBhXC1yaXRlXC1vclwtc2VydmljZVwtZm9yXC1iZWdpbm5pbmdcLW9mXC1hdXR1bW47CivpgIblkJHmk4HloZ7pgJrnn6UgPCBiYWNrd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+e2k+eHn+euoeeQhuWSjOe2reittyA8IG9wZXJhdGlvbnNcLWFkbWluaXN0cmF0aW9uXC1hbmRcLW1haW50ZW5hbmNlOwor46qqIDwgdG9cLXVzZVwtYVwtd29vZGVuXC1wb2xlXC10b1wtc3VwcG9ydFwtc29tZXRoaW5nOwor46KmIDwgd29vZGVuXC1wb3N0XC1vclwtcGlsZVwtZm9yXC10ZXRoZXJpbmdcLWFuaW1hbHM7CivjnKIgPCBhXC1iYWRcLXRlcm1cLWJ5XC13aGljaFwtb25lXC1hZGRyZXNzZXNcLWFcLXdvbWFuOwor45qSIDwgY29uY2VhbGVkXC10aGVcLXN0b2xlblwtZ29vZHNcLWluXC1vbmUnJ3NcLWRyZXNzOwor55m95puJ54eVIDwgcGFpXC1oc2lhb1wteWVuXC1cKGRhdWdodGVyXC1vZlwtcGFpXC1waW5nXC1waW5nXCk7CivkuI3ntpPkuIDkuovkuI3plbfkuIDmmbogPCB5b3VcLWNhbicndFwtZ2Fpblwta25vd2xlZGdlXC13aXRob3V0XC1wcmFjdGljZTsKK+advuS4iyA8IG1hdHN1c2hpdGFcLVwoamFwYW5lc2VcLWVsZWN0cm9uaWNzXC1jb21wYW55XCk7CivkuI3lppkgPCBcKG9mXC1hXC10dXJuXC1vZlwtZXZlbnRzXClcLW5vdFwtdG9vXC1lbmNvdXJhZ2luZzsKK+i4oyA8IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGxcLXByb25lXC1zdGlmZlwtaW5cLWRlYXRoOwor6bu8IDwgZW1icm9pZGVyZWRcLW9mZmljaWFsXC1vclwtc2FjcmlmaWNpYWxcLXJvYmU7Civls4QgPCBhXC1yYW5nZVwtb2ZcLXBlYWtzXC1pblwtc2hhbmRvbmdcLWFuZFwtamlhbmdzdTsKK+WLieW8tyA8IG1hbmFnZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpXC13aXRoXC1kaWZmaWN1bHR5Owor5Yil54ShIDwgaGF2ZVwtbm9cLW90aGVyXC1cKGNob2ljZVwsXC1hbHRlcm5hdGl2ZVwsXC1ldGNcKTsKK+S4jeWPr+S4gOS4liA8IGNvbnNpZGVyXC1vbmVzZWxmXC11bmV4Y2VsbGVkXC1pblwtdGhlXC13b3JsZDsKK+mHkeaXpeaIkCA8IGtpbVwtaWxcLXN1bmdcLVwoZm9ybWVyXC1ub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+WFrOe0hCA8IGNvbnZlbnRpb25cLVwoaWVcLFwtaW50ZXJuYXRpb25hbFwtYWdyZWVtZW50XCk7Civpl5cgPCBhXC1mcm9udGllclwtcGFzc1wtb3JcLWdhdGVcLXRvXC1zaHV0XC1vclwtY2xvc2U7Civpgr4gPCBhXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtYlwuY1wuNzAwXC00Njk7CivlpKrmpbXlio0gPCBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXN3b3JkXC1wbGF5Owor5bm05bqmIDwgeWVhclwtXChlZ1wsXC1zY2hvb2xcLXllYXJcLFwtZmlzY2FsXC15ZWFyXCxcLWV0Y1wpOwor57WV5bCN5pW45a2XIDwgYWJzb2x1dGVcLVwoYXNcLW9wcG9zZWRcLXRvXC1yZWxhdGl2ZVwpXC1udW1iZXI7CivolqkgPCB0cmFuc2xpdGVyYXRpb25cLW9mXC0nJ3NhdCcnXC1pblwtJydib2RoaXNhdHR2YTsKK+ethumghiA8IG9yZGVyXC1vZlwtc3Ryb2tlc1wtb2JzZXJ2ZWRcLWluXC1jYWxsaWdyYXBoeTsKK+iGsCA8IHRvXC1jb29rXC1tZWF0XC1mb3JcLWFcLXNhY3JpZmljZVwtb3JcLW9mZmVyaW5nOwor5omO6YedIDwgdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtYWN1cHVuY3R1cmVcLXRyZWF0bWVudDsKK+WPuOazlemDqCA8IGp1c3RpY2VcLWRlcGFybWVudFwtXChvZlwtdGhlXC11c1wtZ292ZXJubWVudFwpOwor55GMIDwgYVwtd2hpdGVcLW9wYXF1ZVwtcXVhcnR6XC11c2VkXC1mb3JcLW9ybmFtZW50czsKK+a9nyA8IGxhbmRcLWltcHJlZ25hdGVkXC13aXRoXC1zYWx0XC1mcm9tXC10aGVcLXRpZGU7Civoo73lipEgPCBcKGNoZW1pY2FsXC1vclwtcGhhcm1hY2V1dGljYWxcKVwtcHJlcGFyYXRpb247Civpq5TmnIMgPCBrbm93XC1cKHRocm91Z2hcLWxlYXJuaW5nXC1vclwtYnlcLWV4cGVyaWVuY2VcKTsKK+WBveaJmCA8IGZha2luZ1wtYVwtbW9kZXJuXC1vYmplY3RcLWFzXC1hblwtYW5jaWVudFwtb25lOwor5bqr57SN5Y2XIDwgXChhbmRyZXdcKVwtY3VuYW5hblwtXChhbGxlZ2VkXC1zZXJpYWxcLWtpbGxlclwpOwor5rW36ZecIDwgY3VzdG9tc1wtXChpZVwsXC1ib3JkZXJcLWNyb3NzaW5nXC1pbnNwZWN0aW9uXCk7CivmirHpoK3pvKDnq4QgPCBjb3ZlclwtdGhlXC1oZWFkXC1hbmRcLXNuZWFrXC1hd2F5XC1saWtlXC1hXC1yYXQ7Civpu4Plu7rljZcgPCBqb2huXC1odWFuZ1wtXChkZW1vY3JhdGljXC1wYXJ0eVwtZnVuZHJhaXNlclwpOwor5LWeIDwgYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXRhdHRvb2luZ1wtdGhlXC1mYWNlOwor5LG5IDwgYVwtY29uZGltZW50XC1tYWRlXC1mcm9tXC1taW5jZWRcLWZpc2hcLXNhbHRlZDsKK+SvsCA8IHVzZVwtYVwtaGFpclwtcGluXC10b1wtc2V0XC1hbmRcLWRyZXNzXC10aGVcLWhhaXI7CivkrK8gPCB0b1wtaGF2ZVwtY29uZ2VlXC13aXRoXC1mcmllbmRzXC1pblwtb2xkXC10aW1lczsKK+ShiyA8IGRlY29yYXRpb25cLW9uXC10aGVcLW5hdmVcLW9yXC1odWJcLW9mXC1hXC13aGVlbDsKK+SegyA8IHRvXC1yZWxpZXZlXC1vclwtZ2l2ZVwtYWlkXC10b1wtdGhlXC1kaXN0cmVzc2VkOwor5JivIDwgdGhlXC1sYXBlbFwtb3JcLWNvbGxhclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor5JikIDwgYVwtc3dvcmRcLWNvdmVyaW5nXC10b1wtcHJvdGVjdFwtdGhlXC1zY2FiYmFyZDsKK+SRjCA8IGx3aGF0XC1pc1wtbGVmdFwtb3Zlclwtb2ZcLXRoZVwtZm9vZFwtXC1vdmVycmlwZTsKK+SLpyA8IG9ybmFtZW5udHNcLWZvclwtdGhlXC1mcm9udGFsXC1wYXJ0XC1vZlwtc2hvZXM7Civki6MgPCBkZWNvcmF0aW9uc1wtcHV0XC1vblwtdGhlXC1tYW5lXC1vclwtaG9yc2VoYWlyOwor5IiVIDwgdGhlXC1tZXRhbFwtdG9uZ3VlXC1pblwtdGhlXC1yZWVkXC1pbnN0cnVtZW50czsKK+SDtCA8IGFcLXdoZXRzdG9uZVwtdXNlZFwtdG9cLWdyaW5kXC1wcmVjaW91c1wtc3RvbmU7CivkgbwgPCB0b1wtbG9va1wtYnV0XC1zZWVcLW5vdGhpbmdcLVwtXC1cLWFic2VudFwtbWluZGVkOwor47+GIDwgZGFtYWdlXC1ieVwtdGhlXC1wZXN0c1wtdG9cLXRoZVwtcmljZVwtc2VlZGxpbmc7Civju7YgPCBhXC1qYWRlXC10dWJlXC13aXRoXC13aGl0ZVwtYW5kXC1uYXR1cmVcLWNvbG9yczsKK+O7sCA8IGRlY29yYXRlZFwtamFkZVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7Civju6EgPCBhXC1qYWRlXC1yaW5nXC13aXRoXC1hXC1zbWFsbFwtc2VnbWVudFwtY3V0XC1vZmY7CivjroYgPCBlYXZlc1wtc3Byb3V0aW5nXC1mcm9tXC10aGVcLXN0dW1wXC1vZlwtYVwtdHJlZTsKK+OrlCA8IG9uZVwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivjqrsgPCBhXC1raW5kXC1vZlwtdXRlbnNpbFwtdXNlZFwtdG9cLWxhZGxlXC1vdXRcLXdpbmU7CivjqYogPCB0b1wtcHVsbFwtdXBcLXRoZVwtc2xlZXZlc1wtYW5kXC1zaG93XC10aGVcLWFybXM7Civjp60gPCB0b1wtZ2V0XC1zb21ldGhpbmdcLXdpdGhcLWJvdGhcLXJhaXNpbmdcLWhhbmRzOwor46eaIDwgdGhlXC1nZXN0dXJlXC1vZlwtdXNpbmdcLWFuXC1pbmRlbnRlZFwtY29udGFpbjsKK+OnhiA8IHRvXC1jb3Zlclwtc29tZXRoaW5nXC13aXRoXC1hXC1waWVjZVwtb2ZcLWNsb3RoOwor55m+5bui5L+x6IiIIDwgYWxsXC1uZWdsZWN0ZWRcLXRhc2tzXC1hcmVcLWJlaW5nXC11bmRlcnRha2VuOwor46GLIDwgYVwta2luZFwtb2ZcLWhlYWRkcmVzc1wtZm9yXC1tYW5cLWluXC1vbGRcLWNoaW5hOwor46C4IDwgdGhlXC1sYXBlbFwtb3JcLWNvbGxvclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor45yaIDwgYVwtbG9jYWxcLWdvdmVybm1lbnRcLXBvc3RcLWluXC1hbmNpZW50XC10aW1lczsKK+OZnyA8IGxvd1wtbHlpbmdcLW9uXC10aGVcLXNpZGVcLW9mXC1hXC1yaXZlclwtb3JcLWxha2U7Civpgb/lr6blsLHomZsgPCBzdGF5XC1jbGVhclwtb2ZcLXRoZVwtZW5lbXknJ3NcLW1haW5cLWZvcmNlXC1hbmQ7CivkuI3msYLnlJrop6MgPCBub3RcLXNlZWtcLXRvXC11bmRlcnN0YW5kXC10aGluZ3NcLXRob3JvdWdobHk7CivnopHoqJggPCBhXC1yZWNvcmRcLW9mXC1ldmVudHNcLWluc2NyaWJlZFwtb25cLWFcLXRhYmxldDsKK+S4reWkruWFqOacgyA8IHBsZW5hcnlcLXNlc3Npb25cLW9mXC10aGVcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WMhei+piA8IHRha2VcLWNhcmVcLW9mXC1ldmVyeXRoaW5nXC1jb25jZXJuaW5nXC1hXC1qb2I7Civlj6TmnbDmi4nniL4gPCBcKGlcLlwta1wuXClcLWd1anJhbFwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1pbmRpYVwpOwor6buD5bKp5bO2IDwgaHVhbmd5YW5cLWlzbGFuZFwtXChpblwtdGhlXC1zb3V0aFwtY2hpbmFcLXNlYVwpOwor5qmf6Zec5aCxIDwgb2ZmaWNpYWxcLVwoZ292ZXJubWVudFwtb3BlcmF0ZWRcKVwtbmV3c3BhcGVyOwor5YmN5ZCR5pOB5aGe6YCa55+lIDwgZm9yd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+WHuumdoiA8IGFjdFwtaW5cLWFcLVwob2ZmaWNpYWxcLW9yXC1wZXJzb25hbFwpXC1jYXBhY2l0eTsKK+WWjyA8IHJlc3BlY3RmdWxcLXJlcGx5XC1vZlwtYXNzZW50XC10b1wtc3VwZXJpb3JzOwor56yPIDwgdGFibGV0XC1oZWxkXC1ieVwtc29tZW9uZVwtaGF2aW5nXC1hdXRob3JpdHk7CivotrwgPCBjYWxsb3VzXC1za2luXC1vblwtaGFuZHNcLW9yXC1mZWV0XC5cLWJsaXN0ZXJzOwor55u46ZqUIDwgYmVcLXNlcGFyYXRlZFwtYnlcLVwoZGlzdGFuY2VcLW9yXC10aW1lXCxcLWV0Y1wpOwor576O5ZyL5buj5pKt5YWs5Y+4IDwgYWJjXC1cKGFtZXJpY2FuXC1icm9hZGNhc3RpbmdcLWNvcnBvcmF0aW9uXCk7CivmmYLloLEgPCBcInRpbWVzXCJcLVwobmV3c3BhcGVyXCxcLWVnXCxcLW5ld1wteW9ya1wtdGltZXNcKTsKK+mAmuiIqiA8IGNvbm5lY3RlZFwtYnlcLWFpclx8c2VhXC10cmFmZmljXC1vclwtc2VydmljZTsKK+aguOatpuWZqOeglOijveioiOWKgyA8IG51Y2xlYXJcLXdlYXBvbnNcLVwobWFudWZhY3R1cmluZ1wpXC1wcm9ncmFtOwor5Ya35reh6Zec5L+CIDwgY29sZFwtcmVsYXRpb25zXC1cKGVcLmdcLlwtYmV0d2VlblwtY291bnRyaWVzXCk7CivkuI3kuobkuobkuYsgPCBzZXR0bGVcLWFcLW1hdHRlclwtYnlcLWxlYXZpbmdcLWl0XC11bnNldHRsZWQ7CivpgbflsYUgPCB0b1wtbW92ZVwtXChmcm9tXC1vbmVcLXJlc2lkZW5jZVwtdG9cLWFub3RoZXJcKTsKK+mlnSA8IHRvXC1mZWVkXC1hblwtaW5mYW50XC1ieVwtaGFuZFwtc3RlYW1lZFwtYnJlYWQ7CivkuI3ljbPkuI3pm6IgPCBiZVwtbmVpdGhlclwtdG9vXC1mYW1pbGlhclwtbm9yXC10b29cLWRpc3RhbnQ7CivnuL3mlL/msrvpg6ggPCBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXBvbGl0aWNhbFwtZGVwYXJ0bWVudDsKK+WTiOijoeajruWPsuWvhueJuSA8IGhhcnJpc29uXC1zY2htaXR0XC1cKGFwb2xsb1wtMVwtN1wtYXN0cm9uYXV0XCk7CivlhaXlrbjnjocgPCBwZXJjZW50YWdlXC1vZlwtY2hpbGRyZW5cLXdob1wtZW50ZXJcLXNjaG9vbDsKK+ijjSA8IGFcLWJvcmRlclwtb3JcLWJhbmRcLW9uXC10aGVcLWVkZ2VcLW9mXC1hXC1kcmVzczsKK+W5tOS7oyA8IGFcLWRlY2FkZVwtb2ZcLWFcLWNlbnR1cnlcLVwoZWdcLFwtdGhlXC1zaXh0aWVzXCk7CivnlaLlhbblip/kuo7kuIDlvbkgPCBhY2NvbXBsaXNoXC10aGVcLXdob2xlXC10YXNrXC1hdFwtb25lXC1zdHJva2U7CivljYrot6/lh7rlrrYgPCBzd2l0Y2hcLXRvXC1hXC1qb2JcLW9uZVwtd2FzXC1ub3RcLXRyYWluZWRcLWZvcjsKK+exqiA8IGFcLXdlaXJcLW9mXC1iYW1ib29cLXRvXC1jYXRjaFwtZmlzaFwtb3JcLWNyYWJzOwor55iyIDwgc3Bhc21zXC1vclwtY29udnVsc2lvbnNcLWluXC15b3VuZ1wtY2hpbGRyZW47CivnkbIgPCB0aW5rbGluZ1wtc291bmRcLXRpbmtsaW5nXC1vZlwtcGVuZGFudFwtZ2VtczsKK+eXheavkuWtuOWutiA8IHZpcm9sb2dpc3RcLVwocGVyc29uXC13aG9cLXN0dWRpZXNcLXZpcnVzZXNcKTsKK+W7uueri+ato+W8j+WkluS6pOmXnOS/giA8IGZvcm1hbGx5XC1lc3RhYmxpc2hcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+iMheiHuumFkiA8IG1hb3RhaVwtb3JcLW1haXRhaVwtXChjaGluZXNlXC1zdHJvbmdcLWRyaW5rXCk7CivntZDnpL7oh6rnlLEgPCBcKGNvbnN0aXR1dGlvbmFsXClcLWZyZWVkb21cLW9mXC1hc3NvY2lhdGlvbjsKK+W8nSA8IHRoZVwtcGFydFwtb2ZcLWFcLWJvd1wtZ3Jhc3BlZFwtd2hlblwtc2hvb3Rpbmc7Civllqznn7MgPCBxaWFvXC1zaGlcLVwoY2hpbmVzZVwtbGVhZGVyc2hpcFwtY29udGVuZGVyXCk7CivosY7piaQgPCBcKHN0cmFpZ2h0XC1kb3duXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivkpZwgPCBwcm90ZWN0aXZlXC1tZXRhbFwtb25cLXRoZVwtYXhpc1wtb2ZcLWFcLXdoZWVsOwor5oiQ5pysIDwgXChtYW51ZmFjdHVyaW5nXCxcLXByb2R1Y3Rpb25cLFwtZXRjXC5cKVwtY29zdHM7CivkmZYgPCBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaWluZmFudFwtb25cLXRoZVwtYmFjazsKK+eOi+e+suS5iyA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civkj6sgPCBpblwtYmV0d2Vlblwtb2ZcLXRoZVwtYWJkb21lblwtYW5kXC10aGVcLXNwaW5lOwor5I2JIDwgdHJhY2VzXC1vclwtbWFya3NcLW9mXC1pbmNvbXBsZXRlXC1vclwtZGFtYWdlOwor5Iy4IDwgZmluZVwtc2lsa1wtZmFicmljXC1vZlwtYnJpZ2h0XC13aGl0ZVwtY29sb3VyOwor6YKK6KeS56eRIDwgbGVmdG92ZXJcLWJpdHNcLWFuZFwtcGllY2VzXC1cKG9mXC1pbmR1c3RyaWFsOwor5Iu/IDwgYVwtZGVjb3JhdGl2ZVwta25vdFwtbWFkZVwtb2ZcLWNvbG9yZnVsXC1zaWxrOwor5IicIDwgYVwtdGhyZWFkXC11c2VkXC1ieVwtY2FycGVudGVyc1wtZm9yXC1tYXJraW5nOwor5IiGIDwgYVwtc2hhbGxvd1wtYW5kXC1sb25nXC1zaGFwZWRcLWJhbWJvb1wtYmFza2V0Owor5Luj55CGIDwgYWN0aW5nXC1cKHRlbXBvcmFyaWx5XC1maWxsaW5nXC1hXC1wb3NpdGlvblwpOwor47+5IDwganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzXC1vclwtdGhlXC1jdXRpY2xlOwor47yrIDwgZWFydGhlbndhcmVcLW9yXC1wb3R0ZXJ5XC13aXRoXC1iaWdcLW9wZW5pbmc7CivjtbsgPCB0b1wtcGVyc3BpcmVcLWZyb21cLWVtYmFycmFzc21lbnRcLW9yXC1zaGFtZTsKK+iUk+W7tuWFqOWciyA8IHRvXC1zcHJlYWRcLXRocm91Z2hvdXRcLXRoZVwtZW50aXJlXC1jb3VudHJ5Owor462pIDwgYVwta2luZFwtb2ZcLXRyZWVcLWNhblwtYmVcLXVzZWRcLWFzXC1keWVcLXN0dWZmOwor46OZIDwgdG9cLXdhbGtcLWluXC1hblwtZWFzeVwtYW5kXC1sZWlzdXJlbHlcLW1hbm5lcjsKK+OiqiA8IHRvXC1kcmF3XC1hXC1mdWxsXC1ib3dcLXRvXC1haW1cLWF0XC10aGVcLXRhcmdldDsKK+WuouW7syA8IGRyYXdpbmdcLXJvb21cLVwocm9vbVwtZm9yXC1hcnJpdmluZ1wtZ3Vlc3RzXCk7CivjmIogPCB0aGVcLWFicnVwdFwtYW5kXC1oYXN0eVwtc291bmRcLW9mXC10aGVcLWNyb3dkOwor45auIDwgYW5cLWludGVyamVjdGlvblwtdXNlZFwtaW5cLXBvZW1zXC1hbmRcLXNvbmdzOwor45SuIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtd2hpY2hcLWxvb2tzXC1saWtlXC1hXC1yYXQ7Civok67pnKcgPCB3YXhcLWFwcGxlXC1cKGFcLXJlZGRpc2hcLXBlYXJcLXNoYXBlZFwtZnJ1aXRcKTsKK+mhjOewvSA8IHRvXC13cml0ZVwtdGhlXC10aXRsZVwtb2ZcLWFcLWJvb2tcLW9uXC1hXC1sYWJlbDsKK+eZvuaAneS4jeinoyA8IHJlbWFpblwtcHV6emxlZFwtYWZ0ZXJcLXBvbmRlcmluZ1wtb3Zlclwtc3RoOwor5Y2K5Yue5YuV5YqbIDwgb25lXC1hYmxlXC10b1wtZG9cLWxpZ2h0XC1tYW51YWxcLWxhYm91clwtb25seTsKK+e4veW+jOWLpOmDqCA8IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtbG9naXN0aWNzXC1kZXBhcnRtZW50Owor5LiA5ZyL5YWp5Yi2IDwgb25lXC1jb3VudHJ5XCxcLXR3b1wtc3lzdGVtc1wtXChjaGluYVwtdGFpd2FuXCk7Civmk7rkuovlr6borJvpgZPnkIYgPCBwcmVzZW50XC10aGVcLWZhY3RzXC1hbmRcLXJlYXNvblwtdGhpbmdzXC1vdXQ7CivogIHkuowgPCB0aGVcLXNlY29uZFwtY2hpbGRcLW9yXC1icm90aGVyXC1cKG9yXC1zaXN0ZXJcKTsKK+S4reWNlyA8IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmFcLVwtXC1zb3V0aFwtYWZyaWNhOwor6Zi/5piM5pePIDwgdGhlXC1hY2hhbmdcLW5hdGlvbmFsaXR5XC1saXZpbmdcLWluXC15dW5uYW47CivniYjmrKEgPCB0aGVcLW9yZGVyXC1pblwtd2hpY2hcLWVkaXRpb25zXC1hcmVcLXByaW50ZWQ7CivllacgPCBpbnRlcmplY3Rpb25cLW9mXC1hcHByb3ZhbFwtb3JcLWFkbWlyYXRpb247CivmjbogPCB0b1wtcHJlc3NcLWRvd25cLWhlYXZpbHlcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+WCoyA8IHRoZVwtZGFpXC1taW5vcml0eVwtbGl2aW5nXC1pblwtc291dGhcLWNoaW5hOwor6bipIDwgYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+a3nSA8IG5hbWVcLW9mXC1hblwtYWZmbHVlbnRcLW9mXC10aGVcLXBveWFuZ1wtbGFrZTsKK+mDhSA8IHRvXC1nb1wtdXBcLXRvXC5cLWZsb3VyaXNoaW5nXC1hXC1zdXBlcmxhdGl2ZTsKK+i9qyA8IGFcLWJsb2NrXC10aGF0XC1rZWVwc1wtYVwtd2hlZWxcLWZyb21cLW1vdmluZzsKK+W2tyA8IGFcLXJhbmdlXC1vZlwtbW91bnRhaW5zXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6ayyIDwgdHlwZVwtb2ZcLWNhbGRyb25cLXdpdGhcLXRocmVlXC1ob2xsb3dcLWxlZ3M7CivliJYgPCBjdXR0aW5nXC1vZmZcLWZlZXRcLWFzXC1mb3JtXC1vZlwtcHVuaXNobWVudDsKK+epuCA8IHRoZVwtZ2xvb21cLW9mXC10aGVcLWdyYXZlXC1hXC10b21iXC1vclwtZ3JhdmU7CivomIUgPCBhXC1mcmFncmFudFwtcGxhbnRcLXRoZVwtcm9vdFwtaXNcLW1lZGljaW5hbDsKK+eZvemgreirp+iAgSA8IGxpdmVcLXRvXC1yaXBlXC1vbGRcLWFnZVwtaW5cLWNvbmp1Z2FsXC1ibGlzczsKK+WPl+WCtyA8IHN1ZmZlclwtaW5qdXJpZXNcLVwoaW5cLWFuXC1hY2NpZGVudFwsXC1ldGNcLlwpOwor6KiC56uLIDwgYWdyZWVcLXRvXC1cKHRyZWF0eVwsXC1jb250cmFjdFwsXC1hZ3JlZW1lbnRcKTsKK+Wkj+abhiA8IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWx1bmFyXC1jYWxlbmRhcjsKK+aIkOWNg+S4iuiQrCA8IGJ5XC10aGVcLXRob3VzYW5kc1wtYW5kXC10ZW5zXC1vZlwtdGhvdXNhbmRzOwor5bir56+EIDwgbm9ybWFsXC1cKGVnXCxcLWJlaWppbmdcLW5vcm1hbFwtdW5pdmVyc2l0eVwpOwor5L2p5rSb6KW/IDwgXChuYW5jeVwpXC1wZWxvc2lcLVwobWVtYmVyXC1vZlwtdXNcLWNvbmdyZXNzXCk7CivpqYYgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1idWRkaGlzdFwtYm9va3M7Civpp48gPCBvZmZzcHJpbmdcLW9mXC1hXC1zdGFsbGlvblwtYW5kXC1hXC1zaGVcLW11bGU7Civlu6PloLQgPCBhXC1wdWJsaWNcLXNxdWFyZVwtXChlZ1wsXC10aWFuYW5tZW5cLXNxdWFyZVwpOwor6YmMIDwgdGhlXC1iZWxsc1wtb25cLXRoZVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6KOc56WoIDwgYnV5XC1vbmUnJ3NcLXRpY2tldFwtYWZ0ZXJcLXRoZVwtbm9ybWFsXC10aW1lOwor55m854eSIDwgaGF2ZVwtYVwtaGlnaFwtdGVtcGVyYXR1cmVcLVwoZnJvbVwtaWxsbmVzc1wpOwor6KmnIDwgdG9cLWV4YW1pbmVcLWludG9cLWp1ZGljaWFsbHlcLXRvXC1maW5kXC1vdXQ7CivntrMgPCBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaW5mYW50XC1vblwtdGhlXC1iYWNrOwor57aWIDwgdGhlXC1oYW5naW5nXC1mbGFwXC1pblwtdGhlXC1mcm9udFwtb2ZcLWFcLWhhdDsKK+elqyA8IHRyaWVubmlhbFwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civnm4blnLAgPCBiYXNpblwtXChsb3dcLWx5aW5nXC1nZW9ncmFwaGljYWxcLWZlYXR1cmVcKTsKK+ejuyA8IGFcLXRyaWJ1dGFyeVwtb2ZcLXRoZVwtd2VpXC1yaXZlclwtaW5cLXNoYW54aTsKK+aJi+i3oSA8IHNiXC4nJ3NcLW9yaWdpbmFsXC1oYW5kd3JpdGluZ1wtb3JcLXBhaW50aW5nOwor55Kn6YKEIDwgcmV0dXJuXC1cKGFcLWJvcnJvd2VkXC1vYmplY3RcKVwtd2l0aFwtdGhhbmtzOwor5LiN5a6j6ICM5oiwIDwgb3BlblwtaG9zdGlsaXRpZXNcLXdpdGhvdXRcLWRlY2xhcmluZ1wtd2FyOwor5ZyL6Zqb6Zu75L+h6IGv55ufIDwgaW50ZXJuYXRpb25hbFwtdGVsZWNvbW11bmljYXRpb25zXC11bmlvbjsKK+S4jemBoOWNg+mHjCA8IG1ha2VcLWxpZ2h0XC1vZlwtdHJhdmVsbGluZ1wtYVwtdGhvdXNhbmRcLWxpOwor5pa0IDwgdGhlXC1zb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nXC1hbW9uZ1wtcm9ja3M7CivlronlsYXmqILmpa0gPCBsaXZlXC1hbmRcLXdvcmtcLWluXC1wZWFjZVwtYW5kXC1jb250ZW50bWVudDsKK+ihqOWmuSA8IGZlbWFsZVwtY291c2luXC13aXRoXC1hXC1kaWZmZXJlbnRcLXN1cm5hbWU7CivltJEgPCBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nXC1zdVwtcHJvdmluY2VcLjsKK+aLhuaVoyA8IHRvXC1icmVha1wtdXBcLVwoYVwtbWFycmlhZ2VcLFwtZmFtaWx5XCxcLWV0Y1wuXCk7CivlkJDpra/nlaogPCB0aGVcLXR1cmZhblwtYmFzaW5cLFwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+WCmeWTgSA8IG1hY2hpbmVcLXBhcnRzXC1vclwtdG9vbHNcLWtlcHRcLWluXC1yZXNlcnZlOwor5LCYIDwgdG9cLWtpbGxcLWJ5XC1oYW5naW5nXC1vclwtdG9cLXN0cmFuZ3VsYXRpb247CivkrpcgPCB3aGl0ZVwtZnJvbVwtZm9yZWhlYWRcLXRvXC1saXBzXC1vZlwtYVwtaG9yc2U7CivkqrIgPCBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtc2hhdmluZ1wtdGhlXC1oZWFkOwor5Km4IDwgZmluZVwtd29vbGVuXC1ibGFua2V0XC1vblwtdG9wXC1vZlwtYVwtc2FkZGxlOwor5KmrIDwgYVwtdW5pdFwtdG9cLWNvdW50XC1zaG9lc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5KaFIDwgYVwta2luZFwtb2ZcLXdlYXBvblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KWQIDwgY29va2luZ1wtdXRlbnNpbHNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SihyA8IGFcLXNvblwtd2hvXC1pc1wtbm90XC1zb1wtZ29vZFwtYXNcLWhpc1wtZmF0aGVyOwor5JuXIDwgdG9cLXByeVwtaW50b1wtb3JcLWV4cG9zZVwtYW5vdGhlcicnc1wtc2VjcmV0Owor5JqFIDwgdG9cLWxvb2tcLWFmdGVyXC1ob21lXC1vclwtZG9tZXN0aWNcLWFmZmFpcnM7CivkmKggPCBzaG9ydFwtbGVnZ2luZ3NcLWRyYXduXC1vdmVyXC10aGVcLXRyb3VzZXJzOwor5Ja/IDwgYVwta2luZFwtb2ZcLWNsYW1cLXdpdGhcLXRoaWNrXC13aGl0ZVwtc2hlbGxzOwor5JWwIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXJoaXpvbWVcLW9mXC13aW5kXC13ZWVkOwor5JOtIDwgd2VlZFwtb3JcLWdyYXNzXC13aXRoXC1uYXJyb3dcLXRoaWNrXC1nbGFkZXM7CivljYrohKvnlKIgPCBwYXJ0bHlcLXJlbGVhc2VkXC1mcm9tXC1wcm9kdWN0aXZlXC1sYWJvdXI7CivkjbsgPCB5b3VuZ1wtZ29hdFwtb2ZcLXNoZWVwXC11bmRlclwtb25lXC15ZWFyXC1vbGQ7CivkjaYgPCBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjLkgPCBhXC1nYXJtZW50XC1vZlwtb25lXC1jb2xvdXJcLXdpdGhcLW5vXC1saW5pbmc7CivkuI3lj6/lkIzml6XogIzoqp4gPCBjYW5ub3RcLWJlXC1tZW50aW9uZWRcLWluXC10aGVcLXNhbWVcLWJyZWF0aDsKK+SEqiA8IGhhbmdpbmdcLWRvd25cLW9mXC10aGVcLWVhcnNcLW9mXC10aGVcLWdyYWluczsKK+SEjSA8IHllYXJcLWVuZFwtc2FjcmlmaWNlXC1vZlwtdGhlXC16aG91XC1keW5hc3R5Owor472gIDwgY29ubmVjdGlvblwtb2ZcLXRoZVwtZGl0Y2hlc1wtb3JcLXdhdGVyd2F5czsKK+O8riA8IHRvXC1ydWJcLW91dFwtdGhlXC1maWx0aFwtd2l0aFwtYnJva2VuXC10aWxlczsKK+OrqSA8IHRoZVwtZmlyc3RcLW9mXC10aGVcLWZvdXJcLXNlYXNvblwtXC1cLVwtc3ByaW5nOwor46SdIDwgcGFscGl0YXRpb25cLW9yXC1mbHV0dGVyaW5nXC1vZlwtdGhlXC1oZWFydDsKK+OfjCA8IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor45SvIDwgYVwtbGFyZ2VcLWJhc2tldFwtZm9yXC1ob2xkaW5nXC1jb29rZWRcLXJpY2U7Civpppbku7sgPCBmaXJzdFwtcGVyc29uXC10b1wtYmVcLWFwcG9pbnRlZFwtdG9cLWFcLXBvc3Q7CivnuL3mm7joqJggPCBnZW5lcmFsXC1zZWNyZXRhcnlcLVwob2ZcLWNvbW11bmlzdFwtcGFydHlcKTsKK+mDqOmVtyA8IGhlYWRcLW9mXC1hXC1cKGdvdmVybm1lbnRcLFwtZXRjXClcLWRlcGFydG1lbnQ7Civmr5Tph48gPCB0YWtlXC1yb3VnaFwtbWVhc3VyZW1lbnRzXC1cKHdpdGhcLXRoZVwtaGFuZDsKK+mBjemrlOmxl+WCtyA8IGNvdmVyZWRcLWFsbFwtb3Zlclwtd2l0aFwtY3V0c1wtYW5kXC1icnVpc2VzOwor56yZIDwgc21hbGxcLWdvdXJkXC1zaGFwZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civmu5UgPCBhblwtYW5jaWVudFwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivplZsgPCBsYXJnZVwtYmVsbFwtdXNlZFwtYXNcLW11c2ljYWxcLWluc3RydW1lbnQ7CivorrUgPCBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1leHByZXNzXC1zdXJwcmlzZTsKK+azlCA8IHdhdGVyXC1mcm9tXC13YXNoaW5nXC1yaWNlXC10b1wtYm9pbFwtdGhpY2s7CivnmJAgPCB0b1wtZGllXC1pblwtcHJpc29uXC1mcm9tXC1jb2xkXC1hbmRcLWh1bmdlcjsKK+ajvCA8IGJlYW1zXC1pblwtdGhlXC1yb29mXC1vZlwtYVwtaG91c2VcLWNvbmZ1c2VkOwor5pWZ5o6I55Wi56uf5piv5pWZ5o6IIDwgcHJvZmVzc29yc1wtYXJlXC1cKGFmdGVyXC1hbGxcKVwtcHJvZmVzc29yczsKK+eZvui2s+S5i+ifsuatu+iAjOS4jeWDtSA8IGFcLWNlbnRpcGVkZVwtZGllc1wtYnV0XC1uZXZlclwtZmFsbHNcLWRvd247CivljZrmhJsgPCB1bml2ZXJzYWxcLWZyYXRlcm5pdHlcLVwob3JcLWJyb3RoZXJob29kXCk7CivmlZfngasgPCByZWxpZXZlXC1pbmZsYW1tYXRpb25cLW9yXC1pbnRlcm5hbFwtaGVhdDsKK+e2k+eHnyA8IGVuZ2FnZVwtaW5cLVwoYVwtYnVzaW5lc3NcLWFjdGl2aXR5XCxcLWV0Y1wuXCk7Civpm4bmiJAgPCBpbnRlZ3JhdGVkXC1cKGFzXC1pblwtaW50ZWdyYXRlZFwtY2lyY3VpdFwpOwor6bqFIDwgYVwtc21hbGxcLXNwb3R0ZWRcLWRlZXJcLWZvdW5kXC1pblwtblwuY2hpbmE7Civlhafmh67lpJbmgqMgPCBkb21lc3RpY1wtc3RyaWZlXC1hbmRcLWZvcmVpZ25cLWFncmVzc2lvbjsKK+WuieWFqOiIh+S6pOaPm+WnlOWToeacgyA8IHNlY3VyaXRpZXNcLWFuZFwtZXhjaGFuZ2VcLWNvbW11bmljYXRpb247CivmlL/lp5QgPCBwb2xpdGljYWxcLWNvbW1pc3NhclwtXCh3aXRoaW5cLXRoZVwtYXJteVwpOwor5rKI5ZyL5pS+IDwgY2hpbmVzZVwtZm9yZWlnblwtbWluaXN0cnlcLXNwb2tlc3BlcnNvbjsKK+e3qOWwjiA8IHdyaXRlXC1hbmRcLWRpcmVjdFwtXChhXC1wbGF5XCxcLWZpbG1cLFwtZXRjXC5cKTsKK+ihjOmnmyA8IFwodmVoaWNsZXNcLFwtZXRjXC5cKVwtdHJhdmVsXC1hbG9uZ1wtYVwtcm91dGU7CivlhbXnqK4gPCBcKG1pbGl0YXJ5XClcLWJyYW5jaFwtb2ZcLXRoZVwtYXJtZWRcLWZvcmNlczsKK+mYvCA8IHRoZVwtc3RlcHNcLWxlYWRpbmdcLXRvXC10aGVcLWVhc3Rlcm5cLWRvb3I7CivpgLzlrq4gPCBmb3JjZVwtdGhlXC1raW5nXC1vclwtZW1wZXJvclwtdG9cLWFiZGljYXRlOwor6LyXIDwgYVwtY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLWFcLWNhcnJpYWdlXC1wb2xlOwor6Iiq6KGMIDwgc2FpbFwtb3JcLWZseVwtXChpblwtYWlyXCxcLXdhdGVyXCxcLW9yXC1zcGFjZVwpOwor6KmOIDwgaW50ZXJqZWN0aW9uXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2U7CivnvIwgPCBjb2Fyc2VcLWNvdHRvblwtY2xvdGhcLXVzZWRcLWZvclwtbW91cm5pbmc7CivnoZwgPCB0aGVcLXNvdW5kXC1vZlwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civnm7jkv6EgPCBiZVwtY29udmluY2VkXC1cKHRoYXRcLXNvbWV0aGluZ1wtaXNcLXRydWVcKTsKK+eKiSA8IGFuXC1veFwtd2l0aFwteWVsbG93XC1oYWlyXC1hbmRcLWJsYWNrXC1saXBzOwor5ouU56enIDwgcHVsbFwtdXBcLXNlZWRsaW5nc1wtXChmb3JcLXRyYW5zcGxhbnRpbmdcKTsKK+eFnSA8IHR3aXN0ZWRcLXBhcGVyXC1mb3JcLWxpZ2h0aW5nXC1jaWdhcmV0dGVzOwor5omL6KOhIDwgXChhXC1zaXR1YXRpb25cLWlzXClcLWluXC1cKHNvbWVvbmUnJ3NcKVwtaGFuZHM7CivmjZXmkoggPCBmaXNoXC1mb3JcLVwoYXF1YXRpY1wtYW5pbWFsc1wtYW5kXC1wbGFudHNcKTsKK+ephuahguiLsSA8IG11XC1ndWlcLXlpbmdcLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivnsL3lkI0gPCB0b1wtc2lnblwtXChvbmUnJ3NcLW5hbWVcLXdpdGhcLWFcLXBlblwsXC1ldGNcLlwpOwor5r+f5Y2XIDwgamknJ25hblwtXChjYXBpdGFsXC1vZlwtc2hhbmRvbmdcLXByb3ZpbmNlXCk7CivluKwgPCB0aGVcLXNraXJ0XC1vZlwtYVwtbGFkeScnc1wtZHJlc3NcLXBldHRpY29hdDsKK+W1oCA8IGFcLXZhbGxleVwtd2l0aFwtYVwtc3RyZWFtXC1pblwtaXRcLlwtYVwtZ29yZ2U7CivomZvmk6zpgJrpgZPmqJnoqoznrKYgPCB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor5bGP5qKdIDwgc2V0XC1vZlwtXCh1c3VhbGx5XC1mb3VyXClcLWhhbmdpbmdcLXNjcm9sbHM7CivlravlpbPlhZIgPCBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1zb25cKTsKK+eptuernyA8IGFmdGVyXC1hbGxcLVwod2hlblwtYWxsXC1pc1wtc2FpZFwtYW5kXC1kb25lXCk7Civpjq7msZ8gPCB6aGVuamlhbmdcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+SxlyA8IGFcLWxvbmdcLW5hcnJvd1wtZmlzaFwtdHJpY2hpdXJ1c1wtYXJtYXR1czsKK+SxlCA8IGFcLWxvbmdcLW5hcnJvd1wtYW5kXC1zaWx2ZXJcLWNvbG9yZWRcLWZpc2g7CivkqpMgPCBhXC1tZXRhbFwtb3JuYW1lbnRcLW9uXC1zb21lXC1raW5kXC1vZlwtYmVsdDsKK+SomSA8IHRvXC1yYWluXC1jYXRzXC1hbmRcLWRvZ3NcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiiA8IGFuXC1hcHBsaWFuY2VcLWZvclwtd2Fsa2luZ1wtb25cLXRoZVwtc2FuZHM7CivkpYIgPCB0aGVcLXNoYXJwXC1lZGdlXC1vZlwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7CivkoZUgPCB0aGVcLXJlYXJcLXBsYXRmb3JtXC1vZlwtYVwtbGlnaHRcLWNhcnJpYWdlOwor5JyUIDwgdG9cLXNwZWFrXC1vblwtdGhlXC1pZGVhc1wtb2ZcLXNvbWVvbmVcLWVsc2U7Civmsrvnl4XmlZHkurogPCBjdXJlXC10aGVcLXNpY2tuZXNzXC10b1wtc2F2ZVwtdGhlXC1wYXRpZW50Owor5JagIDwgYVwta2luZFwtb2ZcLWxpemFyZFwtZm91bmRcLWluXC1kYW1wXC1wbGFjZXM7CivklpwgPCB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtbWFkZVwtYnlcLXR3b1wtdGlnZXJzOwor5pyJ5b+X6ICF5LqL56uf5oiQIDwgd2hlcmVcLXRoZXJlXC1pc1wtYVwtd2lsbFwsXC10aGVyZVwtaXNcLWFcLXdheTsKK+SOkiA8IGZseWluZ1wtcXVpY2tseVwtYW5kXC10b1wtYXR0YWNrXC1zdWRkZW5seTsKK+SLiiA8IGRlY29yYXRpb25zXC1vZlwtdGhlXC1lbXBlcm9yJydzXC1jYXJyaWFnZTsKK+SAmyA8IHRvXC1sb29rXC1mYXJcLXdpdGhcLXRoZVwtZXllc1wtaGFsZlwtY2xvc2VkOwor47yoIDwgYVwtd2F0ZXJcLWphclwtd2l0aFwtZWFyc1wtZm9yXC1jYXJyeWluZ1wtaXQ7Civju44gPCBhXC1sYXJnZVwtaG9yaXpvbnRhbFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+O6qiA8IGFuXC11bmNhcnZlZFwtb2ZcLXVucG9saXNoZWRcLWphZGVcLW9yXC1nZW07Civjtb8gPCBlbmRsZXNzbHlcLWxvbmdcLW9yXC12YXN0XC13YXRlclwtY3VycmVudHM7CivjtKkgPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor46+YIDwgYVwtc21hbGxcLXdvb2Rlblwtc3RhbmRcLWhhdmluZ1wtZm91clwtbGVnczsKK+OkjSA8IG5ldmVyXC1yZXZlYWxcLW9uZScnc1wtZmVlbGluZ1wtb3JcLWVtb3Rpb247Civjo6AgPCBhXC1yb3BlXC1kZWNvcmF0ZWRcLXdpdGhcLWJyb256ZVwtb3JuYW1lbnQ7CivjoZEgPCBhbmNpZW50XC1tb3VybmluZ1wtdHVyYmFuXC13b3JuXC1ieVwtd29tZW47CivjoJEgPCBoaWdoXC1tb3VudGFpblwtc3RlZXBcLXJ1Z2dlZFwtYW5kXC11bmV2ZW47CivjoIQgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC15dW5uYW5cLXByb3ZpbmNlOwor46CBIDwgaXJyZWd1bGFyXC1vdXRsaW5lXC1vZlwtYVwtcmFuZ2VcLW9mXC1oaWxsczsKK+OfmiA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjmrYgPCB3aWZlXC1vZlwtb25lJydzXC1odXNiYW5kJydzXC1lbGRlclwtYnJvdGhlcjsKK+OYiCA8IGFibGVcLXRvXC10YWtlXC1hXC1jb3JyZWN0XC12aWV3XC1vZlwtdGhpbmdzOwor45ewIDwgdGhlXC1jaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247Civjkr8gPCBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+S4u+enkSA8IHJlcXVpcmVkXC1jb3Vyc2VzXC1pblwtdGhlXC1tYWpvclwtc3ViamVjdDsKK+WwmuaFleadsCA8IGphbWVzXC1zYXNzZXJcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1jaGluYVwpOwor5ZOA6bS76YGN6YeOIDwgYVwtbGFuZFwtc3dhcm1pbmdcLXdpdGhcLWRpc2FzdGVyXC12aWN0aW1zOwor55eF5b6e5Y+j5YWlIDwgaWxsbmVzc1wtZmluZHNcLWl0c1wtd2F5XC1pblwtYnlcLXRoZVwtbW91dGg7Civnj63lupUgPCBvcmRpbmFyeVwtbWVtYmVyc1wtb2ZcLXRoZWF0cmljYWxcLXRyb3VwZTsKK+mHkee8vSA8IFwoZ29sZFwpXC1hbG1zXC1ib3dsXC1cKG9mXC1hXC1idWRkaGlzdFwtbW9ua1wpOwor5aGe54i+5Y2XIDwgXChldWdlbmVcKVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor6IGv5ZCNIDwgam9pbnRseVwtXChzaWduZWRcLFwtZGVjbGFyZWRcLFwtc3BvbnNvcmVkXCk7CivnuL3lj4PorIDpg6ggPCBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXN0YWZmXC1oZWFkcXVhcnRlcnM7CivkuIvmprsgPCBzdGF5XC1hdFwtXChhXC1ob3RlbFwsXC1ldGNcLlwtZHVyaW5nXC1hXC10cmlwXCk7CivlubTnlavlhZIgPCBuZXdcLXllYXJcLVwob3JcLXNwcmluZ1wtZmVzdGl2YWxcKVwtcGljdHVyZTsKK+mQtemjr+eilyA8IFwiaXJvblwtcmljZVwtYm93bFwiXC1cLVwtXC1zZWN1cmVcLWVtcGxveW1lbnQ7Civoga/pgqboqr/mn6XlsYAgPCBmYmlcLVwoZmVkZXJhbFwtYnVyZWF1XC1vZlwtaW52ZXN0aWdhdGlvblwpOwor6IOh5b+X5piOIDwgaG9cLWNoaVwtbWluaFwtXCh2aWV0bmFtZXNlXC1sZWFkZXJcLFwtY2l0eVwpOwor6KiY6L+wIDwgbWFrZVwtYVwtZGVzY3JpcHRpdmVcLXJlY29yZFwtXChvZlwtZXZlbnRzXCk7CivmkqXntYPmqILlmaggPCBwbHVja2VkXC1zdHJpbmdcLW9yXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+W8gSA8IGNvbmljYWxcLWNhcFwtd29yblwtZHVyaW5nXC16aG91XC1keW5hc3R5Owor6YWJIDwgdGVudGhcLW9mXC10aGVcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7Civml4wgPCBiYW5uZXJcLW9yXC1mbGFnXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+ihriA8IGNlcmVtb25pYWxcLWRyZXNzXC13b3JuXC1ieVwtdGhlXC1lbXBlcm9yOwor5rqnIDwgcml2ZXJcLWluXC1hbmh1aVwtYW5kXC1qaWFuZ3N1XC1wcm92aW5jZXM7Civns40gPCBmb29kXC1tYWRlXC1vZlwtY3J1c2hlZFwtYW5kXC1jb29rZWRcLXJpY2U7CivmrpsgPCB0b1wtcHV0XC10b1wtZGVhdGhcLXRvXC1pbXByaXNvblwtZm9yXC1saWZlOwor54uNIDwgc3BlY2llc1wtb2ZcLWRlZXJcLWZvdW5kXC1pblwtbm9ydGhcLWNoaW5hOwor57uCIDwgcmliYm9uXC1vclwtY29yZFwtdXNlZFwtYXR0YWNoXC1vcm5hbWVudHM7Civno4kgPCB0aGVcLXN0b25lXC1iYXNlXC1vclwtcGxpbnRoXC1vZlwtYVwtcGlsbGFyOwor6JW5IDwgaXBvbW9lYVwtYXF1YXRpY2FcLXVzZWRcLWFzXC1hXC12ZWdldGFibGU7CivmmpflgrcgPCBpbnRlcm5hbFwtXChpbnZpc2libGVcKVwtaW5qdXJ5XC1cKGRhbWFnZVwpOwor5qqU5qGI6L2J6YCB5a2Y5Y+W5Y+K566h55CGIDwgZmlsZVwtdHJhbnNmZXJcLFwtYWNjZXNzXC1hbmRcLW1hbmFnZW1lbnQ7CivlpKrmuZYgPCB0YWlcLWh1XC1sYWtlXCxcLWFcLWJpZ1wtbGFrZVwtYnlcLXd1eGlcLWNpdHk7CivmqavpiaQgPCBcKGhvcml6b250YWxcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+WMl+WuiyA8IHRoZVwtbm9ydGhlcm5cLXNvbmdcLWR5bmFzdHlcLVwoOTYwXC0xMTI3XCk7CivpvYggPCBjb2xkXC1pblwtdGhlXC1oZWFkXC1jYXRhcnJoXC1vZlwtdGhlXC1ub3NlOwor6bm7IDwgaW1wdXJlXC1jYXJib25hdGVcLW9mXC1zb2RpdW1cLW9mXC1uYXRyb247CivphInkuIsgPCBjb3VudHJ5XC1cKGFzXC1vcHBvc2VkXC10b1wtdG93blwtb3JcLWNpdHlcKTsKK+m2oiA8IGFcLWJpcmRcLXdoaWNoXC1mcmVxdWVudHNcLXRoZVwtc2VhXC1zaG9yZTsKK+WIpeWFt+S4gOagvCA8IGhhdmluZ1wtYVwtdW5pcXVlXC1vclwtZGlzdGluY3RpdmVcLXN0eWxlOwor57C96KiCIDwgdG9cLWFncmVlXC10b1wtYW5kXC1zaWduXC1cKGFcLXRyZWF0eVwsXC1ldGNcKTsKK+mDqiA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+W+kOaCsum0uyA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLXBhaW50ZXJcLFwteHVcLWJlaWhvbmc7CivovZ4gPCBhXC12ZWhpY2xlXC1mb3JcLXRyYW5zcG9ydGluZ1wtcHJpc29uZXJzOwor6Ly5IDwgdHdvXC1waWVjZXNcLW9mXC13b29kXC11bmRlcm5lYXRoXC1hXC1jYXJ0Owor6K6A6LOj5paw6IGeIDwgeW9taXVyaVwtc2hpbWJ1blwtXChqYXBhbmVzZVwtbmV3c3BhcGVyXCk7Civlop7lgLwgPCBhcHByZWNpYXRpb25cLVwob2ZcLWFcLWNhclwsXC1ob3VzZVwsXC1ldGNcLlwpOwor5LiA5Lmd5Zub5Lmd5bm0IDwgdGhlXC15ZWFyXC0xOTQ5XC1cKGNvbW11bmlzdFwtcmV2b2x1dGlvblwpOwor6Iq/IDwgZ3Jhc3NcLXdoaWNoXC1oYXNcLWJlZW5cLWN1dFwtYW5kXC1yZWdyb3duOwor6IOsIDwgYVwtZGlzZWFzZScnc1wtbmFtZVwtaW5cLWNoaW5lc2VcLW1lZGljaW5lOwor56aKIDwgc2VtaVwtYW5udWFsXC1jZXJlbW9ueVwtb2ZcLXB1cmlmaWNhdGlvbjsKK+WFteWutiA8IG1pbGl0YXJ5XC1zdHJhdGVnaXN0XC1pblwtYW5jaWVudFwtY2hpbmE7Civoi7HlsLogPCBcKGVuZ2xpc2hcKVwtZm9vdFwtXCh1bml0XC1vZlwtbWVhc3VyZW1lbnRcKTsKK+Wci+mam+aomea6lue1hOe5lCA8IGludGVybmF0aW9uYWxcLXN0YW5kYXJkc1wtb3JnYW5pemF0aW9uOwor5omN55aP5a245re6IDwgaGF2ZVwtbGl0dGxlXC10YWxlbnRcLWFuZFwtbGVzc1wtbGVhcm5pbmc7Civmt6rpmbcgPCBcKHRlcnJpdG9yeVwpXC1mYWxsXC10b1wtZW5lbXlcLW9jY3VwYXRpb247CivmiKUgPCBhXC1zbWFsbFwtc3RlZWx5YXJkXC1mb3JcLXdlaWdoaW5nXC1tb25leTsKK+iKseacqOiYrSA8IGh1YVwtbXVcLWxhblwtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+aJk+S4jemBjiA8IG5vdFwtdG9cLWJlXC1hYmxlXC10b1wtYmVhdFwtb3JcLWRlZmVhdFwtc2JcLjsKK+S4lueVjOaAp+WPpOiAgeWVj+mhjCA8IGFcLXByb2JsZW1cLWFzXC1vbGRcLWFzXC10aGVcLXdvcmxkXC1pdHNlbGY7Civpgb/lnZHokL3kupUgPCBkb2RnZVwtYVwtcGl0XC1vbmx5XC10b1wtZmFsbFwtaW50b1wtYVwtd2VsbDsKK+WvjSA8IHVzZWRcLWFzXC1hXC10ZXJtXC1vZlwtY29tcGFyaXNvblw6XC1yYXRoZXI7CivkurrpgbggPCBwZXJzb25cKHNcKVwtc2VsZWN0ZWRcLVwoZm9yXC1hXC1qb2JcLFwtZXRjXC5cKTsKK+eZvOS6huiogCA8IFwoXCJwYXN0XC10ZW5zZVwiXC1vZlwtXDrnmbzoqIBcKVwtc3Bva2VcLXB1YmxpY2x5Owor5ZKXIDwgdmVyYmFsXC1wYXJ0aWNsZVwtb2ZcLXBlcmZlY3RpdmVcLWFzcGVjdDsKK+iuiua6q+WLleeJqSA8IHBvaWtpbG90aGVybWFsXC1cKGNvbGRcLWJsb29kZWRcKVwtYW5pbWFsOwor5pyD6ZW3IDwgcHJlc2lkZW50XC1vZlwtYVwtY2x1YlwsXC1jb21taXR0ZWVcLFwtZXRjXC47CivkuLEgPCBjaGlsZCcnc1wtaGFpcnN0eWxlXC1ib3VuZFwtaW5cLXR3b1wtdHVmdHM7CivkuI3oh6rph48gPCBub3RcLXRha2VcLWFcLXByb3BlclwtbWVhc3VyZVwtb2ZcLW9uZXNlbGY7CivkrqQgPCBvbmVcLW9mXC10aGVcLTM2XC1nYXJkZW5zXC1pblwtaGFuXC1keW5hc3R5Owor5KytIDwgbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtZmVyb2Npb3VzXC1hbmltYWw7CivkqpQgPCBjcm9zc1wtYmFyXC1vZlwtd29vZFwtdW5kZXJcLXRoZVwtY2FycmlhZ2U7Civkp6QgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkpIwgPCBhXC1raW5kXC1vZlwtd2luZVwtYmVcLWJyZXdlZFwtZnJvbVwtZ3JhaW5zOwor5KC3IDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtaGVpZ2h0XC1pblwtYVwtcGVyc29uOwor5KCFIDwgaGFuZHNcLWFuZFwtZmVldFwtY2hhcHBlZFwtZnJvbVwtdGhlXC1jb2xkOwor5J2kIDwgYVwtcHJpbWl0aXZlXC10cmliZVwtaW5cLXNvdXRod2VzdFwtY2hpbmE7CivknZ8gPCBhXC1maWVyY2VcLW1hblwtZWF0aW5nXC1hbmltYWxcLWluXC1sZWdlbmQ7CivknZ0gPCBhblwtZXhjbGFtYXRpb25cLWluZGljYXRpbmdcLWFkbWlyYXRpb247Civkm5MgPCBhblwtb2ZmaWNpYWxcLXBvc2l0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SamCA8IHRoZVwtbG9uZ1wtYW5kXC11cHJpZ2h0XC1ob3Juc1wtb2ZcLWNhdHRsZTsKK+SWkiA8IGVhcnRoZW53YXJlXC13aXRoXC10aGVcLXNoYXBlXC1vZlwtYVwtYmVhbjsKK+SVjiA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLXBlcmVubmlhbDsKK+STkSA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLWR1Y2t3ZWVkczsKK+SRlyA8IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkkLEgPCB0b1wtcGlja1wtdGhlXC1tZWF0XC1pblwtYmV0d2Vlblwtb2ZcLWJvbmVzOwor5I+BIDwgdW5hYmxlXC10b1wtaGVhclwtZGlzdGluY3RseVwtb3JcLWNsZWFybHk7Civlr6vmiJAgPCB0b1wtY29tcGlsZVwtXChmYXNoaW9uXC10aHJvdWdoXC13cml0aW5nXCk7CivkiqAgPCB0b1wtZ2l2ZVwtYVwtc3VwcGx5XC1mXC1ncmFpblwtZm9yXC1yYXRpb25zOwor5ImfIDwgYVwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5IiwIDwgYVwtYnJ1c2hcLWZvclwtd2FzaGluZ1wta2l0Y2hlblwtdXRlbnNpbHM7Civkh7wgPCBhXC1iYW1ib29cLXZlc3NlbFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivlkJ7ph5EgPCB0b1wtY29tbWl0XC1zdWljaWRlXC1ieVwtc3dhbGxvd2luZ1wtZ29sZDsKK+SEqyA8IGFcLWtpbmRcLW9mXC1zb3JnaHVtXC13aXRoXC13aGl0ZVwtc3Byb3V0czsKK+SEiCA8IHNhY3JpZmljZVwtdG9cLWhhcHBpbmVzc1wtYW5kXC1nb29kXC1sdWNrOwor5IOkIDwgYmxhY2tcLWNvbG9yZWRcLWdyaW5kc3RvbmVcLW9yXC13aGVzdG9uZTsKK+SDjiA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtXC1zbWFsbFwtcGllY2VcLW9mXC1jb2FsOwor5IK5IDwgc291bmRcLW9mXC10aGVcLWZhbGxpbmdcLXBpZWNlc1wtb2ZcLXJvY2tzOwor5IG2IDwgdG9cLWxvb2tcLWF0XC1zb21ldGhpbmdcLXdpdGhvdXRcLXdpbmtpbmc7CivkgbUgPCBuZXdib3JuXC1iYWJ5XC13aXRoXC10aGVcLWV5ZWxpZHNcLWNsb3NlZDsKK+adv+ecvCA8IG1lYXN1cmVcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbXVzaWM7CivjvYUgPCB2ZXNzZWxcLWZvclwtY2VyZW1vbnlcLWluXC1hbmNpZW50XC10aW1lczsKK+O4uSA8IGNhdHRsZVwtd2l0aFwtd2hpdGVcLXN0cmlwZVwtb25cLXRoZVwtYmFjazsKK+O4lyA8IG5vdFwtYVwtcmVhbFwtZmF0aGVyXC1vclwtYVwtbmF0dXJlXC1mYXRoZXI7Civjs5ggPCBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtZmxvd3NcLWRvd253YXJkczsKK+OuryA8IHdob2xlXC1waWVjZVwtb2ZcLW9yXC11bmJyb2tlblwtZmlyZXdvb2RzOwor466cIDwgYVwtYmxvY2tzXC1lbmdyYXZlZFwtZm9yXC1ob2xkaW5nXC10aGluZ3M7Civjn7wgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivpppblupwgPCBjYXBpdGFsXC1jaXR5XC1vZlwtYW5cLWF1dG9ub21vdXNcLXJlZ2lvbjsKK+OelCA8IHRoZVwtdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtYVwtZG9vcjsKK+OdniA8IHByZXRlbmRcLXRvXC1iZVwtZGVsaWNhdGVcLWFuZFwtYmVhdXRpZnVsOwor45y5IDwgbmFtZVwtb2ZcLWFcLWZvbGtcLXNvbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+OagSA8IHRoZVwtbG9uZ1wtdGFpbFwtZmVhdGhlcnNcLXdoaWNoXC1jdXJsXC11cDsKK+ePreasoSA8IG9yZGVyXC1vZlwtY2xhc3Nlc1wtb3JcLWdyYWRlc1wtYXRcLXNjaG9vbDsKK+aKhOW+jOi3ryA8IHRvXC1vdXRmbGFua1wtYW5kXC1hdHRhY2tcLWZyb21cLXRoZVwtcmVhcjsKK+e3qOW5tOmrlCA8IGFubmFsaXN0aWNcLXN0eWxlXC1cKGluXC1oaXN0b3Jpb2dyYXBoeVwpOwor5a626YSJ6ZueIDwgJydob21lXC10b3duXC1jaGlja2VuJydcLVwoYVwtdHlwZVwtb2ZcLWRpc2hcKTsKK+eroOWtneWatCA8IGpvaG5cLWNoYW5nXC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+iytOW3niA8IG5hbWVcLW9mXC1hXC1wcm92aW5jZVwtaW5cLWNoaW5hXCxcLWd1aXpob3U7Civok4vojKggPCBcKGJpbGxcKVwtZ2F0ZXNcLVwoY2hhaXJtYW5cLW9mXC1taWNyb3NvZnRcKTsKK+WQuOW8lSA8IGF0dHJhY3RcLVwoaW50ZXJlc3RcLFwtaW52ZXN0bWVudFwsXC1ldGNcLlwpOwor5L6G5LiN5Y+KIDwgdGhlcmUnJ3NcLW5vdFwtZW5vdWdoXC10aW1lXC1cKHRvXC1kb1wtc3RoXC5cKTsKK+aal+WovCA8IHVubGljZW5zZWRcLVwodW5yZWdpc3RlcmVkXClcLXByb3N0aXR1dGU7CivpnZ7lsI3nqLHlvI/mlbjmk5rnlKjmiLbnt5ogPCBhc3ltbWV0cmljYWxcLWRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7CivpnLjnjosgPCB4aWFuZzR5dTNcLVwoMjMyXC0yMDJcLWJjXClcLXRoZVwtY29ucXVlcm9yOwor5aO956auIDwgYmlydGhkYXlcLXByZXNlbnRcLVwoZm9yXC1hblwtb2xkXC1wZXJzb25cKTsKK+mYriA8IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnRcOlwtc3VybmFtZTsKK+WWlCA8IGRlc2NyaXB0aXZlXC1vZlwtY3J5aW5nXC1vclwtb2ZcLWNyb3dpbmc7CivnkI8gPCB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor6YKVIDwgZm9ybWVyXC1vclwtbGl0ZXJhcnlcLW5hbWVcLWZvclwtbmFubmluZzsKK+mtkSA8IGFcLW1vdW50YWluXC1kZW1vblwtcmVzZW1ibGluZ1wtYVwtdGlnZXI7CivmmLYgPCBhXC1sb25nXC1kYXlcLlwtYnJpZ2h0XC5cLWV4dGVuZGVkXC5cLWNsZWFyOwor57ynIDwgYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7Civonq0gPCBhXC1kcmFnb25cLXdob3NlXC1ob3Juc1wtaGF2ZVwtbm90XC1ncm93bjsKK+m+gCA8IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6IKcIDwgdG9cLXNhY3JpZmljZVwtb25cLXR3b1wtc3VjY2Vzc2l2ZVwtZGF5czsKK+mClyA8IGFuXC1hbmNpZW50XC1wbGFjZVwtaW5cLXRoZVwtc3RhdGVcLW9mXC13dTsKK+iQrOe4oyA8IHdhbnhpYW5cLWNvdW50eVwsXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivmrbvkuI3kuoYgPCBwb3J0dWxhY2FcLXN1bmRpYWxcLVwoYVwtdHlwZVwtb2ZcLXBsYW50XCk7CivlpKfkuK3lrbjnlJ8gPCB1bml2ZXJzaXR5XC1hbmRcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudHM7Civov47mmKXoirEgPCB3aW50ZXJcLWphc21pbmVcLFwtamFzbWludW1cLW51ZGlmbG9ydW07CivntITnv7Dlhafmlq/loKEgPCBqb2hhbm5lc2J1cmdcLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+S4u+S6uue/gSA8IG1hc3RlclwtXChvZlwtb25lJydzXC1vd25cLWRlc3RpbnlcLFwtZXRjXC5cKTsKK+WIhuS9iOW8j+eSsOWigyA8IGRpc3RyaWJ1dGVkXC1cKGNvbXB1dGluZ1wpXC1lbnZpcm9ubWVudDsKK+WFtemDqCA8IHRoZVwtbWluaXN0cnlcLW9mXC13YXJcLWluXC1mZXVkYWxcLWNoaW5hOwor5YyX5ZGoIDwgdGhlXC1ub3J0aGVyblwtemhvdVwtZHluYXN0eVwtXCg1NTdcLTU4MVwpOwor5a6J5YiG5a6I5bexIDwgYWJpZGVcLWJ5XC10aGVcLWxhd1wtYW5kXC1iZWhhdmVcLW9uZXNlbGY7CivljJfkuqwgPCBiZWlqaW5nXC1cKGNhcGl0YWxcLW9mXC1tYWlubGFuZFwtY2hpbmFcKTsKK+Wkp+mhr+i6q+aJiyA8IGZ1bGx5XC1kaXNwbGF5aW5nXC1vbmUnJ3NcLWNhcGFiaWxpdGllczsKK+mbu+S/oeacjeWLmeS+m+aHieWVhiA8IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZVwtcHJvdmlkZXI7Civlk4jlr4bnk5wgPCBoYW1pXC1tZWxvblwtXChhXC12YXJpZXR5XC1vZlwtbXVza21lbG9uXCk7CivpkKQgPCBodWdlXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+iyv+aYk+mhjSA8IHZvbHVtZVwtb2ZcLXRyYWRlXC1cKGJldHdlZW5cLWNvdW50cmllc1wpOwor6I2J5qGIIDwgZHJhZnRcLVwobGVnaXNsYXRpb25cLFwtcHJvcG9zYWxcLFwtZXRjXC5cKTsKK+imquaEmyA8IGRlYXJcLVwuXC5cLlwtXCh3YXlcLW9mXC1zdGFydGluZ1wtYVwtbGV0dGVyXCk7Civop60gPCBvbmVcLXR1cm5pbmdcLXVwXC1hbmRcLW9uZVwtdHVybmluZ1wtZG93bjsKK+ijnOeZvSA8IGZpbGxlclwtXChpblwtYVwtbmV3c3BhcGVyXC1vclwtbWFnYXppbmVcKTsKK+iksSA8IHRvXC1jYXJyeVwtaW5cLXRoZVwtYm9zb21cLW9yXC10aGVcLXNsZWV2ZTsKK+azoueAvuWjr+mXiiA8IHN1cmdpbmdcLWZvcndhcmRcLXdpdGhcLWdyZWF0XC1tb21lbnR1bTsKK+iIieihjCA8IHRvXC1ob2xkXC1cKGFcLW1lZXRpbmdcLFwtY2VyZW1vbnlcLFwtZXRjXC5cKTsKK+WbnuatuOS4reWciyA8IHRvXC1yZXR1cm5cLXRvXC1jaGluYVwtXChlXC5nXC5cLWhvbmdcLWtvbmdcKTsKK+iJnCA8IGFcLWxvbmdcLW5hcnJvd1wtdmVzc2VsXC13aXRoXC10d29cLW1hc3RzOwor57i95YuV5ZOhIDwgZ2VuZXJhbFwtbW9iaWxpemF0aW9uXC1cKGZvclwtd2FyXCxcLWV0Y1wpOwor6Ie/IDwgdG9cLXNlcGFyYXRlXC10aGVcLWdyYWluXC1mcm9tXC10aGVcLWh1c2s7CivntbAgPCB3aGl0ZVwtaGVtcGVuXC1jbG90aFwtd29yblwtYnlcLW1vdXJuZXJzOwor5L+d6YCBIDwgcmVjb21tZW5kXC1cKGZvclwtYWRtaXNzaW9uXC10b1wtc2Nob29sXCk7CivmhJvojqvog73liqkgPCB3aWxsaW5nXC10b1wtaGVscFwtYnV0XC11bmFibGVcLXRvXC1kb1wtc287CivnoqogPCBzdG9uZVwtc2xhYlwtdXNlZFwtZm9yXC13YXNoaW5nXC1jbG90aGVzOwor6L2J5bizIDwgdHJhbnNmZXJcLW1vbmV5XC1mcm9tXHxpbnRvXC1hblwtYWNjb3VudDsKK+W4reS9jSA8IHBhcmxpYW1lbnRhcnlcLW9yXC1jb25ncmVzc2lvbmFsXC1zZWF0Owor55uHIDwgd2h5XC1ub3RcP1wtd291bGRcLWl0XC1ub3RcLWJlXC1iZXR0ZXJcLXRvXD87CivluIPku4AgPCBcKGdlb3JnZVwpXC1idXNoXC1cKGZvcm1lclwtdXNcLXByZXNpZGVudFwpOwor5bSp6b6N5pePIDwgdGhlXC1iZW5nbG9uZ1wtXChwZW5nbHVuZ1wpXC1uYXRpb25hbGl0eTsKK+a7qyA8IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtYm9pbGVkOwor6Z2e5pS/5bqc57WE57mUIDwgbm9uXC1nb3Zlcm5tZW50YWxcLW9yZ2FuaXphdGlvblwtXChuZ29cKTsKK+WvqeioiiA8IGFcLVwoanVkaWNpYWxcKVwtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0cm9vbVwpOwor5qqRIDwgbG9nc1wtcm9sbGVkXC1kb3duXC1pblwtZGVmZW5zZVwtb2ZcLWNpdHk7Civmo7MgPCBzbWFsbFwtcGlsbGFyc1wtdGhhdFwtc3VwcG9ydFwtdGhlXC1yb29mOwor5biXIDwgYVwtbXVsdGljb2xvcmVkXC1wcm9wXC11c2VkXC1pblwtZGFuY2luZzsKK+e2nOWQiOacjeWLmeaVuOS9jee2sue1oSA8IGludGVncmF0ZWRcLXNlcnZpY2VzXC1kaWdpdGFsXC1uZXR3b3JrOwor5ZigIDwgdGhlXC1jaGlycGluZ1wtb2ZcLWJpcmRzXC1sb3VkXC1sYXVnaHRlcjsKK+ethuahvyA8IHRoZVwtc2hhZnRcLW9mXC1hXC1wZW5cLW9yXC13cml0aW5nXC1icnVzaDsKK+eXheWLoiA8IGRlZ3JlZVwtb2ZcLXNlcmlvdXNuZXNzXC1vZlwtYW5cLWlsbG5lc3M7CivllIQgPCBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb25cLXBhdGhha2E7CivlgLsgPCBwaG9uZXRpY1wtdXNlZFwtaW5cLWtvcmVhblwtcGxhY2VcLW5hbWVzOwor5LW6IDwgYm91bmRhcnlcLWJldHdlZW5cLWFncmljdWx0dXJhbFwtbGFuZHM7CivktbkgPCBpbnNlY3RzXC10aGF0XC1hcmVcLWluanVyaW91c1wtdG9cLWNyb3BzOwor5K2NIDwgdG9cLWxpdmVcLXdpdGhcLWFub3RoZXJcLWF0XC1oaXNcLWV4cGVuc2U7CivkrKUgPCBjb29rZWRcLWZvb2RcLXdoaWNoXC1oYXNcLWJlY29tZVwtbW91bGR5Owor5KyZIDwgdG9cLWRhbmNlXC1hbmRcLXRvc3NcLWFib3V0XC1pblwtdGhlXC13aW5kOwor5Li76L6mIDwgaG9zdFwtXChhXC1jb25mZXJlbmNlXC1vclwtc3BvcnRzXC1ldmVudFwpOwor5KCrIDwgdG9cLXN1Y2N1bWJcLXRvXC10aGVcLWVmZmVjdFwtb2ZcLWFsY29ob2w7CivknaYgPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1sb29rc1wtbGlrZVwtbGVvcGFyZDsKK+ScoCA8IGxhbmd1YWdlXC1vZlwtdGhlXC1zYXZhZ2VcLW9yXC1iYXJiYXJpYW47CivklrogPCBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JK8IDwgYVwtYmFtYm9vXC10cmF5XC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SRsyA8IGFcLWhvcml6b250YWxcLWJhclwtaW5cLWZyb250XC1vZlwtYVwtYm9hdDsKK+SQpyA8IHRvXC1yZXdhcmRcLW9yXC1jaGVlclwtdHJvb3BzXC13aXRoXC1mb29kOwor5I6wIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkjZ8gPCBhXC1raW5kXC1vZlwtZmlzaFwtbmV0XC13aXRoXC1maW5lXC1tZXNoZXM7Civkh6ggPCBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1mb29kXC1jb250YWluZXJzOwor6Zy4546L6Z6tIDwgYVwtcmF0dGxlXC1zdGlja1wtdXNlZFwtaW5cLWZvbGtcLWRhbmNpbmc7CivmnKzojYkgPCBhXC1ib29rXC1vblwtY2hpbmVzZVwtXChoZXJiYWxcKVwtbWVkaWNpbmU7Civkho4gPCBncmFzc1wtYW5kXC1ncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5IS7IDwgYVwtc2Vjb25kXC10aW1lXC1ncm93aW5nXC1vZlwtcmljZVwtcGxhbnQ7CivkgJogPCB0b1wtbGlmdFwtdXBcLXRoZVwtZXllc1wtYW5kXC1sb29rXC1hcm91bmQ7Civjv5YgPCBjYXJidW5jbGVcLXVzZWRcLWluXC1uYW1pbmdcLW9mXC1hXC1wbGFjZTsKK+O6myA8IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor47eIIDwgZW1iZXJzXC1rZXB0XC1mb3JcLXN0YXJ0aW5nXC1hXC1uZXdcLWZpcmU7CivjtYEgPCB2YXN0XC1hbmRcLWJvdW5kbGVzc1wtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47OVIDwgd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC13YXNoZWQ7Civjr6ogPCBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtcmFpbGluZ3M7CivkurrniakgPCBjaGFyYWN0ZXJzXC1cKGluXC1hXC1wbGF5XCxcLW5vdmVsXCxcLWV0Y1wuXCk7CivorbDplbcgPCBzcGVha2VyXC1cKG9mXC1hXC1sZWdpc2xhdGl2ZVwtYXNzZW1ibHlcKTsKK+OgmSA8IGFcLW1vdW50YWluXC1wYXRoc1wtbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor6Kq/5p+l57WQ5p6cIDwgcmVzdWx0c1wtXChvZlwtYW5cLWludmVzdGlnYXRpb25cLFwtcG9sbFwpOwor45OtIDwgdG9cLW1ha2VcLXJlYWR5XC10aGVcLWxlYXRoZXJcLWZvclwtc2hvZXM7CivjkLcgPCBhXC1raW5kXC1vZlwtcHVuaXNobWVudFwtaW5cLWhhblwtZHluYXN0eTsKK+eZvuerr+W+heiIiSA8IGFcLXRob3VzYW5kXC10aGluZ3NcLXJlbWFpblwtdG9cLWJlXC1kb25lOwor5a6J5Y2XIDwgXFtrb2ZpXF1cLWFubmFuXC1cW3VuXC1zZWNyZXRhcnlcLWdlbmVyYWxcXTsKK+WMhemjryA8IGdldFwtb3JcLXN1cHBseVwtbWVhbHNcLWF0XC1hXC1maXhlZFwtcmF0ZTsKK+acieawtCA8IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC13YXRlcjsKK+eZveaureigtiA8IHRoZVwtbGFydmFcLW9mXC1zaWxrd29ybVwtd2l0aFwtYmF0cnl0aXM7CivoqbHpoYwgPCBzdWJqZWN0XC1cKG9mXC1hXC10YWxrXC1vclwtY29udmVyc2F0aW9uXCk7Civkuovli5kgPCBcKHBvbGl0aWNhbFwsXC1lY29ub21pY1wsXC1ldGNcLlwpXC1hZmZhaXJzOwor5ZKx5YCRIDwgd2VcLVwoaW5jbHVkaW5nXC10aGVcLXBlcnNvblwtc3Bva2VuXC10b1wpOwor5bCk6YeR5aGe54i+5Y2XIDwgZXVnZW5lXC1jZXJuYW5cLVwoYXBvbGxvXC0xN1wtYXN0cm9uYXV0XCk7CivnjoflhYggPCB0YWtlXC10aGVcLWxlYWRcLVwoc2hvd2luZ1wtaW5pdGl0YXRpdmVcKTsKK+ebruWJjemChOS4jea4healmiA8IGF0XC1wcmVzZW50XC1pdFwtaXNcLXN0aWxsXC11bmNsZWFyXC1cLlwuXC5cLjsKK+eni+mrmOawo+eIvSA8IGNsZWFyXC1hbmRcLXJlZnJlc2hpbmdcLWF1dHVtblwtd2VhdGhlcjsKK+WMheennyA8IHJlbnRcLWxhbmRcLW9yXC1hXC1ob3VzZVwtZm9yXC1zdWJsZXR0aW5nOwor5piO5paHIDwgXChsYXdzXCxcLXJ1bGVzXCxcLWV0Y1wpXC1zdGF0ZVwtaW5cLXdyaXRpbmc7CivoorEgPCBhXC1waWVjZVwtb2ZcLWNsb3RoXC11c2VkXC13cmFwXC1idW5kbGVzOwor5oyyIDwgdG9cLWZlZWxcLW9yXC1mb25kbGVcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+evkSA8IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+iCkyA8IHJlZ2lvblwtYmV0d2VlblwtaGVhcnRcLWFuZFwtZGlhcGhyYWdtOwor5rumIDwgcml2ZXJcLWFuZFwtY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YOXIDwgY2l0eVwtdW5kZXJcLXRoZVwtY2hvdVwtZHluXC5cLWFcLXN1cm5hbWU7Civnj48gPCB0d29cLXBpZWNlc1wtb2ZcLWphZGVcLWpvaW5lZFwtdG9nZXRoZXI7CivntqYgPCBkYXJrXC1ncmV5XC5cLXZhcmllZ2F0ZWRcLlwtc3VwZXJsYXRpdmU7CivpuocgPCBnZW5lcmFsXC1uYW1lXC1mb3JcLXRoZVwtaG9ybmxlc3NcLWRlZXI7Civnko4gPCBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7Civmjr4gPCBhXC1nZW5lcmFsXC1kZXNpZ25hdGlvblwtb2ZcLW9mZmljaWFsczsKK+mDhyA8IGFuXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hhYW54aTsKK+mAj+imliA8IHRvXC1leGFtaW5lXC1ieVwtZmx1b3Jvc2NvcGVcLW9yXC14XC1yYXk7CivloLHoraYgPCByZXBvcnRcLVwoYW5cLWluY2lkZW50XClcLXRvXC10aGVcLXBvbGljZTsKK+eikeW4liA8IGFcLXJ1YmJpbmdcLWZyb21cLWFcLXN0b25lXC1pbnNjcmlwdGlvbjsKK+eJm+W5tCA8IHllYXJcLW9mXC10aGVcLW94XC1cKGluXC1jaGluZXNlXC16b2RpYWNcKTsKK+ewoeWWrue2sue1oeeuoeeQhuWNlOitsCA8IHNpbXBsZVwtbmV0d29ya1wtbWFuYWdlbWVudFwtcHJvdG9jb2w7Civoh6jmmYLnmoTmnKzlnLDnrqHnkIbmjqXlj6MgPCBpbnRlcmltXC1sb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor5YyF5buCIDwgYm94XC1cKGluXC1hXC10aGVhdHJlXC1vclwtY29uY2VydFwtaGFsbFwpOwor6L2J6K6TIDwgdHJhbnNmZXJcLVwodGVjaG5vbG9neVwsXC1nb29kc1wsXC1ldGNcLlwpOwor5Yaw5raI55Om6KejIDwgbWVsdFwtbGlrZVwtaWNlXC1hbmRcLWJyZWFrXC1saWtlXC10aWxlczsKK+m+mCA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLWRyYWdvblwtd2Fsa2luZzsKK+WNiuaWpOWFq+WFqSA8IG5vdFwtbXVjaFwtdG9cLWNob29zZVwtYmV0d2VlblwtdGhlXC10d287CivptL0gPCBhXC1zcGVjaWVzXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtcXVhaWw7Civnm5zniYggPCBwaXJhdGVcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCxcLWVcLmdcLlwpOwor5q2l5Lq65b6M5aG1IDwgZm9sbG93XC1pblwtb3RoZXJcLXBlb3BsZScnc1wtZm9vdHN0ZXBzOwor6YSrIDwgc3RhdGVcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YSHIDwgYVwtbmFtZVwtb2ZcLWFcLXRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7Civov78gPCB0b1wtYmVcLXRoZVwtZmlyc3RcLXRvXC1iZWdpblwtYVwtcXVhcnJlbDsKK+i9lSA8IGdyZWF0XC1hcnJheVwtb2ZcLXNwZWFyc1wtYW5kXC1jaGFyaW90czsKK+i8oCA8IGdyZWFzZVwtcG90XC1odW5nXC11bmRlclwtYXhsZVwtb2ZcLWNhcnQ7Civpvo3po5vps7PoiJ4gPCBsaXRcLlw6XC1kcmFnb25cLWZsaWVzXCxcLXBob2VuaXhcLWRhbmNlczsKK+e3o+S7vSA8IGZhdGVcLVwod2hpY2hcLWJyaW5nc1wtcGVvcGxlXC10b2dldGhlcjsKK+W5s+WjpCA8IHB5b25neWFuZ1wtXChjYXBpdGFsXC1vZlwtbm9ydGhcLWtvcmVhXCk7CivlnIvpmpvopovogZ4gPCBpbnRlcm5hdGlvbmFsXC1iYWNrZ3JvdW5kXC1rbm93bGVkZ2U7Civmk5Tku7sgPCBob2xkXC1hXC1nb3Zlcm5tZW50YWxcLW9mZmljZVwtb3JcLXBvc3Q7CivohrIgPCB0aGVcLXRocmVlXC1kaXZpc2lvbnNcLW9mXC10aGVcLXZpc2NlcmE7CivlhYvmnI0gPCBcKHRyeVwtdG9cKVwtb3ZlcmNvbWVcLVwoaGFyZHNoaXBzXCxcLWV0Y1wpOwor5oqE6YCBIDwgdG9cLW1ha2VcLWFcLWNvcHlcLVwoYW5kXC1zZW5kXC1pdFwtdG9cLXNiXCk7CivkuI3lpLHngrogPCBjYW5cLXN0aWxsXC1iZVwtY29uc2lkZXJlZFwtXCh0b1wtYmVcLlwuXC5cKTsKK+e0liA8IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlXC1vclwtaG9yc2U7CivmnIDmg6DlnIsgPCBtb3N0XC1mYXZvcmVkXC1uYXRpb25cLVwodHJhZGVcLXN0YXR1c1wpOwor56yuIDwgYm9hcmRzXC13aGljaFwtc3VwcG9ydFwtdGlsZXNcLW9uXC1yb29mOwor5qGI6amXIDwgaW52ZXN0aWdhdGVcLXRoZVwtZXZpZGVuY2VcLW9mXC1hXC1jYXNlOwor5omY6YGLIDwgdG9cLWJvb2tcLW9yXC1jaGVja1wtdGhyb3VnaFwtXChiYWdnYWdlXCk7CivnoIUgPCBjcm9zc1wtc3RyZWFtXC1ieVwtc3RlcHBpbmdcLW9uXC1zdG9uZXM7CivlnIvli5nlp5Tlk6EgPCBtZW1iZXJcLW9mXC1zdGF0ZVwtY291bmNpbFwtXChpblwtY2hpbmFcKTsKK+aItumDqCA8IGZldWRhbFwtY2hpbmVzZVwtbWluaXN0cnlcLW9mXC1yZXZlbnVlOwor55KJIDwgYVwtdmVzc2VsXC11c2VkXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor5qKhIDwgdHJheVwtZm9yXC1jYXJyeWluZ1wtc2FjcmlmaWNpYWxcLW1lYXQ7Civlj6/np7vmpI3mgKcgPCBwb3J0YWJpbGl0eVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+aOqOWLlSA8IHRvXC1wdXNoXC1cKGZvclwtYWNjZXB0YW5jZVwtb2ZcLWFcLXBsYW5cKTsKK+W5tSA8IGV2ZW5cLWxldmVsXC5cLXRvXC1yYWlzZVwtaW5cLWJvdGhcLWhhbmRzOwor5auEIDwgYW5cLWFuY2llbnRcLWVtcGVyb3InJ3NcLW1vdGhlcicnc1wtbmFtZTsKK+aVtOmrlOaVuOS9jeacjeWLmee2sui3ryA8IGludGVncmF0ZWRcLXNlcnZpY2VcLWRpZ2l0YWxcLW5ldHdvcms7Civlm7cgPCByb3VuZFwtc2hhcGVkXC1zdG9yYWdlXC1iaW5cLWZvclwtZ3JhaW47Civkup7ou40gPCBzZWNvbmRcLXBsYWNlXC1cKGluXC1hXC1zcG9ydHNcLWNvbnRlc3RcKTsKK+WRvOWSjOa1qeeJuSA8IGhvaGhvdFwtXChjYXBpdGFsXC1vZlwtaW5uZXJcLW1vbmdvbGlhXCk7Civln7rph5HmnIMgPCBhXC1mb3VuZGF0aW9uXC1cKGllXCxcLWFuXC1vcmdhbml6YXRpb25cKTsKK+S0mSA8IGFcLWtpbmRcLW9mXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWR1Y2s7CivksoMgPCBhXC1jYXJwXC1saWtlXC1maXNoXC13aXRoXC1jaGlja2VuXC1mZWV0Owor6aGP6auUIDwgeWFuXC1zdHlsZVwtXChpblwtY2hpbmVzZVwtY2FsbGlncmFwaHlcKTsKK+S5hemBlSA8IFwoaGF2ZW4nJ3RcLWRvbmVcLXN0aFwpXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkqZcgPCB0b1wtcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor5KKVIDwgYVwtZ3JvdXBcLW9mXC1wZW9wbGVcLXdhbGtpbmdcLXRvZ2V0aGVyOwor5JqhIDwgYm9uZXNcLWluXC1hXC1ob3JuXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7CivkmawgPCBwbGFpdHNcLW9uXC10aGVcLXNpZGVzXC1vZlwtYVwtcGV0dGljb2F0Owor5JCAIDwgdG9cLWRpc21lbWJlclwtYm9keVwtb2ZcLXRoZVwtbGl2ZXN0b2NrOwor5I6OIDwgdG9cLWdsaWRlXC1vclwtdG9cLWhvdmVyXC11cFwtaW5cLXRoZVwtYWlyOwor5I2KIDwgY2xheVwtbWFkZVwtYmxvd2luZ1wtd2luZFwtaW5zdHJ1bWVudHM7CivkiL8gPCBiZWx0XC1vZlwtdGhlXC1jYW52YXNcLXRvcFwtb25cLXZlaGljbGVzOwor5IeuIDwgYVwtYmFtYm9vXC1tYXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+Wwj+mhjOWkp+WBmiA8IG1ha2VcLWFcLWJpZ1wtZnVzc1wtb3ZlclwtYVwtbWlub3JcLWlzc3VlOwor5IWaIDwgY2xvc2VseVwtZ3Jvd2luZ1wtb2ZcLXRoZVwtcmljZVwtcGxhbnRzOwor5IS2IDwgcmljZVwtcGxhbnRcLWdyb3dpbmdcLXRoZVwtc2Vjb25kXC10aW1lOwor5IG+IDwgcmVkXC1hbmRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1leWVcLXNvY2tldDsKK+SBqCA8IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O9myA8IG5hcnJvd1wtdHJhaWxcLW9mXC1wYXRoXC1pblwtdGhlXC1maWVsZHM7CivjupEgPCBkb2dzXC13b3JtZWRcLXRocm91Z2hcLWFcLW5hcnJvd1wtcGxhY2U7CivjuaIgPCBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdlc3Rlcm5cLWNoaW5hOwor47mcIDwgdHdvXC1kb2dzXC1hcmVcLWJhcmtpbmdcLXRvXC1lYWNoXC1vdGhlcjsKK+O5iSA8IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC10aHJlZVwtZmVldDsKK+O2gCA8IGRlZXBcLWFuZFwtdmFzdFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivmiZPpjK/kuoYgPCBcInlvdVwtaGF2ZVwtZGlhbGVkXC10aGVcLXdyb25nXC1udW1iZXJcIjsKK+OwtiA8IHRvXC13cmlua2xlXC10aGVcLW5vc2VcLXdpdGhcLXNvcnJvd2Z1bDsKK+OtsiA8IGFcLXdvb2RlblwtZnJhbWVcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+eXheWMheWFkiA8IGFcLXBlcnNvblwtd2hvXC1pc1wtYWx3YXlzXC1mYWxsaW5nXC1pbGw7CivjoaEgPCBzY3JlZW5cLXRvXC1tYWtlXC1hXC10ZW1wb3JhcnlcLWtpdGNoZW47CivjoL8gPCBhXC1raW5kXC1vZlwtZGVsaWNhdGVcLWFuZFwtZmluZVwtZmFicmljOwor45y6IDwgbmljZVwtd2hpdGVcLWNvbG9yXC1hbmRcLWxvb2tzXC1zb1wtZ29vZDsKK+OctSA8IHdpdGhcLWFcLWNoYXJtaW5nXC1zcHJpZ2h0bHlcLWNhcnJpYWdlOwor45mIIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mmmeWxsSA8IGZyYWdyYW5jZVwtaGlsbFwtXChhXC1wYXJrXC1pblwtYmVpamluZ1wpOwor45ahIDwgdGhlXC1iaXJkc1wtc2luZ2luZ1wtZHVyaW5nXC10aGVcLW5pZ2h0Owor45W6IDwgbG9va3NcLWJpZ1wtb3V0c2lkZVwtYnV0XC1lbXB0eVwtaW5zaWRlOwor45WEIDwgdG9cLWFwcGx5XC1rbm93bGVkZ2VcLXRvXC1maW5hbFwtY2F1c2VzOwor5LiN6Jmb5q2k6KGMIDwgdGhlXC10cmlwXC1oYXNcLW5vdFwtYmVlblwtbWFkZVwtaW5cLXZhaW47Civpirfmr4AgPCB0b1wtZGVzdHJveVwtXChieVwtbWVsdGluZ1wtb3JcLWJ1cm5pbmdcKTsKK+aLieiOq+aWryA8IFwocGhpbGlwcGluZVwtcHJlc2lkZW50XC1maWRlbFwpXC1yYW1vczsKK+avlOWLkumZgOWIqeS6niA8IHByZXRvcmlhXC1cKGNhcGl0YWxcLW9mXC1zb3V0aFwtYWZyaWNhXCk7CivljJfprY8gPCB0aGVcLW5vcnRoZXJuXC13ZWlcLWR5bmFzdHlcLVwoMzg2XC01MzRcKTsKK+iogOirluiHqueUsSA8IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLXNwZWVjaDsKK+aatOeXhSA8IHN1ZGRlblwtYXR0YWNrXC1vZlwtYVwtc2VyaW91c1wtaWxsbmVzczsKK+S6uuWkpyA8IFwoY2hpbmFcKVwtbmF0aW9uYWxcLXBlb3BsZScnc1wtY29uZ3Jlc3M7CivnhrHprKcgPCBidXN0bGluZ1wtd2l0aFwtbm9pc2VcLWFuZFwtZXhjaXRlbWVudDsKK+WRiOaWhyA8IHBldGl0aW9uXC1cKHN1Ym1pdHRlZFwtdG9cLWFcLXN1cGVyaW9yXCk7CivmmKXnr4AgPCBzcHJpbmdcLWZlc3RpdmFsXC1cKGNoaW5lc2VcLW5ld1wteWVhclwpOwor6ZaL55m855Kw5aKDIDwgZGV2ZWxvcG1lbnRcLWVudmlyb25tZW50XC1cKGNvbXB1dGVyXCk7CivkuI3orZjmmYLli5kgPCBzaG93XC1ub1wtdW5kZXJzdGFuZGluZ1wtb2ZcLXRoZVwtdGltZXM7CivwoLy7IDwgYVwtcGFydGljbGVcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247Civog6Hlv5flvLcgPCBqYXNvblwtaHVcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5paw55aGIDwgeGluamlhbmdcLVwodXlndXJcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5bmr5YCS5b+ZIDwgYmVcLW1vcmVcLW9mXC1hXC1oaW5kcmFuY2VcLXRoYW5cLWFcLWhlbHA7Civkv7HmqILpg6ggPCBjbHViXC1cKGllXCxcLWFcLWdyb3VwXC1vclwtb3JnYW5pemF0aW9uXCk7CivnpL4gPCBnb2RcLW9mXC10aGVcLXNvaWxcLWFuZFwtYWx0YXJzXC10b1wtaGltOwor55GfIDwgbGFyZ2VcLXN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5qWeIDwgdXNlZFwtZm9yXC1jZXlsb25cLWluXC1idWRkaGlzdFwtdGV4dHM7Civllr0gPCB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivlmoUgPCB0YWxrXC1pbmRpc3RpbmN0bHlcLWFuZFwtZmFsdGVyaW5nbHk7Civoo7EgPCB0b1wtbW91bnRcLW1hcHNcLW9yXC1zY3JvbGxzXC10b1wtcGFzdGU7CivnjKIgPCBhXC1raW5kXC1vZlwtbW9ua2V5XC1mb3VuZFwtaW5cLXdcLmNoaW5hOwor6JyuIDwgYVwtZmFidWxvdXNcLWNyZWF0dXJlXC1saWtlXC1hXC10dXJ0bGU7CivnoqEgPCBzdG9uZVwtcm9sbGVyXC11c2VkXC10b1wtbGV2ZWxcLWZpZWxkczsKK+mEoyA8IG5hbWVcLW9mXC1hbmNpZW50XC1jaXR5XC1pblwtblwuamlhbmdzdTsKK+eyoiA8IGdyYWluXC1vZmZlcmVkXC1pblwtcml0dWFsXC1zYWNyaWZpY2U7CivnsKYgPCBsYXJnZVwtdW1icmVsbGFcLXdpdGhcLWFcLWxvbmdcLWhhbmRsZTsKK+iekyA8IGFcLXNtYWxsXC1jaWNhZGFcLXdpdGhcLWFcLXNxdWFyZVwtaGVhZDsKK+S4jeaZguS5i+mcgCA8IGFcLXBvc3NpYmxlXC1wZXJpb2RcLW9mXC13YW50XC1vclwtbmVlZDsKK+WFrOWFseS6pOaPm+mbu+ipsee2sui3ryA8IHB1YmxpY1wtc3dpdGNoZWRcLXRlbGVwaG9uZVwtbmV0d29yazsKK+e2sue1oSA8IFwoY29tcHV0ZXJcLFwtdGVsZWNvbVwsXC1ldGNcLlwpXC1uZXR3b3JrOwor5Lul54mZ6YKE54mZIDwgYVwtdG9vdGhcLWZvclwtYVwtdG9vdGhcLVwocmV0YWxpYXRpb25cKTsKK+WjgeavryA8IHRhcGVzdHJ5XC1cKHVzZWRcLWFzXC1hXC13YWxsXC1oYW5naW5nXCk7Civmk6bmvqEgPCBydWJcLW9uZXNlbGZcLWRvd25cLXdpdGhcLWFcLXdldFwtdG93ZWw7Civoqo3lrpogPCBtYWludGFpblwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7Civnmb7miLDnmb7li50gPCBlbWVyZ2VcLXZpY3RvcmlvdXNcLWluXC1ldmVyeVwtYmF0dGxlOwor6a2KIDwgYVwtbXl0aGljYWxcLWNyZWF0dXJlXC1zYWlkXC1odXJsXC1zYW47CivliIbmracgPCBkaWZmZXJlbmNlXC1cKG9mXC1vcGluaW9uXCxcLXBvc2l0aW9uXCk7Civli57li5Xnr4AgPCBpbnRlcm5hdGlvbmFsXC1sYWJvclwtZGF5XC1cKG1heVwtZGF5XCk7Civpn5AgPCBrbmVlXC1wYWRcLW1hZGVcLW9mXC1yZWRcLWR5ZWRcLWxlYXRoZXI7CivpgKPmiLAgPCBsaWVuXC1jaGFuXC1cKHRhaXdhblwtdmljZVwtcHJlc2lkZW50XCk7CivmirHnspfohb8gPCBsYXRjaFwtb25cLXRvXC10aGVcLXJpY2hcLWFuZFwtcG93ZXJmdWw7CivliLbluqYgPCBcKHBvbGl0aWNhbFwpXC1zeXN0ZW1cLW9yXC1pbnN0aXR1dGlvbjsKK+ijnOe/kiA8IHRha2VcLWxlc3NvbnNcLWFmdGVyXC1zY2hvb2xcLW9yXC13b3JrOwor55Sx5q2k5Y+v6KaLIDwgZnJvbVwtdGhpc1wsXC1pdFwtY2FuXC1iZVwtc2VlblwtdGhhdFwuXC5cLjsKK+iBr+mCpumbu+S/oeS6pOmAmuWnlOWToeacgyA8IGZlZGVyYWxcLWNvbW11bmljYXRpb25zXC1jb21taXNzaW9uOwor5bu65LqkIDwgdG9cLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor6LuPIDwgY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLXBvbGVzXC1vZlwtY2FydDsKK+eBq+eBvSA8IGZpcmVcLVwodGhhdFwtYnVybnNcLWJ1aWxkaW5nc1wsXC1ldGNcLlwpOwor5YKZ6KqyIDwgXChvZlwtYVwtdGVhY2hlclwpXC10b1wtcHJlcGFyZVwtbGVzc29uczsKK+mHkeato+aXpSA8IGtpbVwtam9uZ1wtaWxcLVwobm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivplovmvJQgPCBcKG9mXC1hXC1wbGF5XCxcLW1vdmllXCxcLWV0Y1wuXClcLXRvXC1iZWdpbjsKK+WCmeiNkiA8IHByZXBhcmVcLWFnYWluc3RcLW5hdHVyYWxcLWRpc2FzdGVyczsKK+iWgCA8IHRoZVwtaGlwcHVyaXNcLW9yXC1tYXJlJydzXC10YWlsXC1wbGFudDsKK+S4jeaRuOmgrSA8IG5vdFwtYWNxdWFpbnRlZFwtd2l0aFwtdGhlXC1zaXR1YXRpb247CivlhajmnIMgPCBwbGVuYXJ5XC1zZXNzaW9uXC1cKGF0XC1hXC1jb25mZXJlbmNlXCk7CivprY/kuqznlJ8gPCB3ZWlcLWppbmdzaGVuZ1wtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+iBnSA8IHRvXC1jdXRcLXRoZVwtbGVmdFwtZWFyc1wtb2ZcLXRoZVwtc2xhaW47CivogJQgPCB0b1wtaG9lXC11cFwtdGhlXC1lYXJ0aFwtYXJvdW5kXC1wbGFudHM7Civkvr/pm6MgPCByZXRvcnRcLXdpdGhcLWNoYWxsZW5naW5nXC1xdWVzdGlvbnM7CivnrZTovq8gPCB0b1wtcmVwbHlcLVwodG9cLWFuXC1hY2N1c2F0aW9uXCxcLWVcLmdcLlwpOwor57CrIDwgbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+ewqCA8IGFcLWJlYW1cLWZvclwtaGFuZ2luZ1wtYmVsbHNcLW9yXC1kcnVtczsKK+eksyA8IG5hbWVcLW9mXC1wbGFjZVwtaW5cLXNoYW5cLXhpXC1wcm92aW5jZTsKK+WvuOiNieS4jeeUnyA8IFwibm90XC1ldmVuXC1hXC1ibGFkZVwtb2ZcLWdyYXNzXC1ncm93c1wiOwor56KrIDwgY29hcnNlXC1zdG9uZVwtXCh1c2VkXC1mb3JcLXdoZXRzdG9uZVwpOwor55KvIDwgamFkZVwtb3JuYW1lbnRcLWluXC10aGVcLXNlYW1zXC1vZlwtY2FwOwor55CvIDwgYVwtamFkZVwtdHViZVwtdXNlZFwtYXNcLWFuXC1pbnN0cnVtZW50Owor546BIDwgYVwtZG9nXC13aXRoXC1hXC1sb25nXC1zbm91dFwtb3JcLW11enpsZTsKK+WcluabuCA8IGJvb2tzXC1cKGluXC1hXC1saWJyYXJ5XC1vclwtYm9va3N0b3JlXCk7CivlrrbplbcgPCB0aGVcLXBhcmVudFwtb3JcLWd1YXJkaWFuXC1vZlwtYVwtY2hpbGQ7Civlm57mrbggPCB0b1wtcmV0dXJuXC1cKHRvXC1wcmV2aW91c1wtY29uZGl0aW9uXCk7Civmk6bkuq7nnLznnZsgPCByZW1vdmVcLXRoZVwtc2NhbGVzXC1mcm9tXC1vbmUnJ3NcLWV5ZXM7Civoo5zlgY/mlZHlvIogPCByZW1lZHlcLWRlZmVjdHNcLWFuZFwtcmVjdGlmeVwtZXJyb3JzOwor5qOfIDwgdGhlXC1tYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtYVwtaG91c2U7Civpqqjms5UgPCBib25lXC1cKHByb3BlcnR5XC1vZlwtYVwtYnJ1c2hcLXN0cm9rZVwpOwor55m+5bed5q245rW3IDwgYWxsXC10aGluZ3NcLXRlbmRzXC1pblwtb25lXC1kaXJlY3Rpb247CivoqpPkuI3lj43mgpQgPCB0b1wtdm93XC1ub3RcLXRvXC1icmVha1wtb25lJydzXC1wcm9taXNlOwor5ZCD5LiN5LiKIDwgYmVcLXVuYWJsZVwtdG9cLWdldFwtc29tZXRoaW5nXC10b1wtZWF0Owor5oigIDwgYVwtc3dvcmRcLlwtcG90dGVyJydzXC1jbGF5XC5cLXRvXC1nYXRoZXI7Civnp5Hlrbjnt6jovK8gPCBzY2llbmNlXC1lZGl0b3JcLVwob2ZcLWFcLXB1YmxpY2F0aW9uXCk7CivmmILpppbpl4rmraUgPCBzdHJpZGVcLWZvcndhcmRcLXdpdGhcLW9uZScnc1wtY2hpblwtdXA7Civml6XntpPmjIfmlbggPCBuaWtrZWlcLWluZGV4XC1cKG9mXC1qYXBhbmVzZVwtc3RvY2tzXCk7Civnp5HpmoYgPCBjb2xvZ25lXCxcLWdlcm1hbnlcLW9yXC1jb2xvblwsXC1wYW5hbWE7CivmiZPmtoggPCBkaXNwZWxcLVwoZG91YnRzXCxcLW1pc2dpdmluZ3NcLFwtZXRjXC5cKTsKK+WRrSA8IGZpbmFsXC1wYXJ0aWNsZVwtZXhwcmVzc2luZ1wtY29uc2VudDsKK+WRoSA8IHRoZVwtY29ybmVyc1wtb2ZcLXRoZVwtbW91dGhcLXRoZVwtbGlwczsKK+eWvueXhemgkOmYsuS4reW/gyA8IFwodVwuc1wuXClcLWNlbnRlclwtZm9yXC1kaXNlYXNlXC1jb250cm9sOwor5LasIDwgaGFyZFwtZmluc1wtb25cLXRoZVwtYmFja1wtb2ZcLWFcLWRyYWdvbjsKK+S2hSA8IGFcLW1hcm1vdFwtbGlrZVwtcmF0XC13aXRoXC1hXC1iaWdcLWhlYWQ7CivktJMgPCBnZW5lcmFsXC10ZXJtXC1mb3JcLXNtYWxsXC1iaXJkXC1ncm91cDsKK+SslyA8IGJsb3duXC1vclwtdG9zc2VkXC1hYm91dFwtYnlcLXRoZVwtd2luZDsKK+SniSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLWhhblwtZHluYXN0eTsKK+SltiA8IGNvb2tpbmdcLXV0ZW5zaWxcLXVzZWRcLWluXC1vbGRcLXRpbWVzOwor5KWsIDwgYVwtbXVzaWNhbFwtaW5zdHJ1bWVudFwtaW5cLW9sZFwtdGltZXM7Civko5wgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4wgPCByZXNpZGVuY2VcLW9mXC1hXC1wcmluY2VcLW9yXC1ub2JpbGl0eTsKK+ShnSA8IGFcLXJlYXJcLWNvdmVyaW5nXC1vZlwtYVwtYmlnXC1jYXJyaWFnZTsKK+ShiiA8IHRoZVwtcHJvdHJ1ZGVkXC1zaWRlc1wtb2ZcLWFcLWNhcnJpYWdlOwor5KCaIDwgdG9cLXN0ZXBcLW9uXC10aGVcLWdyb3VuZFwtd2l0aFwtYVwtYmFuZzsKK+SWgyA8IHRoZVwtd2F0ZXJcLWlzXC13YXZpbmdcLWluXC10aGVcLWJyZWV6ZTsKK+SSpyA8IGFcLXZlc3NlbFwtb3JcLXV0ZW5zaWxcLW1hZGVcLW9mXC1zdHJhdzsKK+SNsiA8IGFcLWtpbmRcLW9mXC1zaGVlcFwtd2l0aFwtY3VybGVkXC1oYWlyczsKK+SLuCA8IGJhY2tcLWNlbnRlclwtc3V0dXJlXC1vZlwtdGhlXC1jbG90aGVzOwor5IubIDwgdGhlXC1jbHVzdGVyZWRcLWVtYnJvaWRlcnlcLXBhdHRlcm5zOwor5IqWIDwgdG9cLWVhdFwtcmljZVwtZ3J1ZWxcLW1peGVkXC13aXRoXC1tZWF0Owor5IaFIDwgdG9cLWFjY3VtdWxhdGVcLW9yXC10b1wtc3RvcmVcLXVwXC1yaWNlOwor5IKnIDwgcm9ja3NcLWNsdXN0ZXJlZFwtcGlsZVwtdXBcLXRvZ2V0aGVyczsKK+SAvyA8IHRvXC1oYXZlXC1hXC1jYXN1YWxcLWFuZFwtc2hvcnRcLWdsYW5jZTsKK+aJvuWIsCA8IGZpbmRcLVwod2hhdFwtb25lXC13YXNcLXNlYXJjaGluZ1wtZm9yXCk7Civlj6zplosgPCBjb252ZW5lXC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1tZWV0aW5nXCk7CivjuZcgPCBjYXR0bGVcLWFuZFwtc2hlZXBcLWhhdmVcLW5vXC1jaGlsZHJlbjsKK+O2siA8IG1lYXN1cmluZ1wtdW5pdFwtZm9yXC10aGVybW9keW5hbWljczsKK+O1uiA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1hbmNpZW50XC10aW1lczsKK+O1kCA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+O1iyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+OxkiA8IHRvXC1zY29sZFwtb3JcLWJsYW1lXC1pblwtYVwtbG91ZFwtdm9pY2U7Civjrr4gPCBhXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivjrIggPCB0aGVcLXN1blwtd2FzXC1zaGluaW5nXC1hbmRcLWl0JydzXC13YXJtOwor46qKIDwgaW5mZXN0ZWRcLXdpdGhcLWJhbmRpdHNcLWFuZFwtcm9iYmVyczsKK+OomCA8IHRvXC1ibG93XC10aGVcLW5vc2VcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+OfviA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLWNvdW50eVwtamlhbjsKK+OfuCA8IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLWFuY2llbnRcLWNoaW5hOwor45+CIDwgbmFtZVwtb2ZcLWNhcGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivlkbznsbIgPCBjYWxsXC1vblwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor45qqIDwgdG9cLW1ha2VcLWFcLWRlY2VwdGl2ZVwtc2hvd1wtb2ZcLXBvd2VyOwor6Zu76IWm6LyU5Yqp6Kit6KiI6IiH57mq5ZyWIDwgY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ25cLWFuZFwtZHJhd2luZzsKK+OSjSA8IHV0dGVybHlcLXdlYXJ5XC1pblwtYm9keVwtYW5kXC1zcGlyaXRzOwor45CMIDwgYVwtdHJpYmVcLW9mXC1zYXZhZ2VzXC1pblwtc291dGhcLWNoaW5hOwor56eR54i+IDwgXChoZWxtdXRcKVwta29obFwtXChnZXJtYW5cLWNoYW5jZWxsb3JcKTsKK+m9i+aciCA8IHJhbWFkYW5cLVwobXVzbGltXC1tb250aFwtb2ZcLWZhc3RpbmdcKTsKK+W+l+WvuOmAsuWwuiA8IGxpdGVyYWxcOlwtZ2V0XC1hblwtaW5jaFwsXC13YW50XC1hXC1mb290Owor6LW35L6GIDwgYmVnaW5uaW5nXC1vclwtY29udGludWluZ1wtYW5cLWFjdGlvbjsKK+WMl+m9iiA8IHRoZVwtbm9ydGhlcm5cLXFpXC1keW5hc3R5XC1cKDU1MFwtNTU3XCk7CivljJfmtIvou43plqUgPCB0aGVcLW5vcnRoZXJuXC13YXJsb3Jkc1wtXCgxOTEyXC0xOTI3XCk7CivlkJDnqZcgPCB0b1wtaGF2ZVwtdGhlXC1lYXJzXC1vZlwtZ3JhaW5cLWNvbWVcLXVwOwor5aSn5oOR5LiN6KejIDwgZG9cLW5vdFwtdW5kZXJzdGFuZFwtYVwtY2VydGFpblwtdGhpbmc7Civoq4vpoZggPCBwZXRpdGlvblwtXChmb3JcLWFjdGlvblwtdG9cLWJlXC10YWtlblwpOwor5Y2K5pel5Yi25a245qChIDwgaGFsZlwtZGF5XC1cKG9yXC1kb3VibGVcLXNoaWZ0XC1zY2hvb2xcKTsKK+aYjuaWh+imj+WumiA8IGV4cHJlc3NseVwtc3RpcHVsYXRlZFwtXChpblwtd3JpdGluZ1wpOwor5Lqr5Y+XIDwgdG9cLWVuam95XC1cKHJpZ2h0c1wsXC1iZW5lZml0c1wsXC1ldGNcLlwpOwor5aSn5bqt5buj55y+IDwgcHVibGljXC1wbGFjZVwtd2l0aFwtbnVtZXJvdXNcLXBlb3BsZTsKK+eZvueEoeS4gOWksSA8IG5vXC1kYW5nZXJcLW9mXC1hbnl0aGluZ1wtZ29pbmdcLXdyb25nOwor5LiJ5bO9IDwgdGhlXC10aHJlZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLWdvcmdlczsKK+WPluaaliA8IHRvXC13YXJtXC1vbmVzZWxmXC1cKGJ5XC1hXC1maXJlXCxcLWV0Y1wuXCk7CivkurrmrIrop4Dlr58gPCBodW1hblwtcmlnaHRzXC13YXRjaFwtXChvcmdhbml6YXRpb25cKTsKK+mZoumVtyA8IHByZXNpZGVudFwtXChvZlwtYVwtdW5pdmVyc2l0eVwsXC1ldGNcLlwpOwor5qqi5a+f5a6YIDwgdGhlXC1wcm9zZWN1dGlvblwtXChpblwtYVwtY291cnRcLWNhc2VcKTsKK+WCmeiAjOS4jeeUqCA8IGhhdmVcLXNvbWV0aGluZ1wtcmVhZHlcLWp1c3RcLWluXC1jYXNlOwor6KiA6KuWIDwgZXhwcmVzc2lvblwtb2ZcLVwocG9saXRpY2FsXClcLW9waW5pb247Civmh4nnlKjnqIvlvI/ku4vpnaIgPCBhcHBsaWNhdGlvblwtcHJvZ3JhbW1pbmdcLWludGVyZmFjZTsKK+aNuyA8IHRvXC10d2lzdFwtb3JcLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor5oiMIDwgZWxldmVudGhcLW9mXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivmkJMgPCB0b1wtcnViXC1vclwtcm9sbFwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+WwpyA8IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WptiA8IHdpZmVcLW9mXC1mYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivmjqwgPCB0b1wtZ3Jhc3BcLW9yXC1ob2xkXC13aXRoXC1ib3RoXC1oYW5kczsKK+W5myA8IHNjcm9sbFwtb2ZcLXNpbGtcLW9yXC1jbG90aFwtcHJlc2VudGU7Civmo4IgPCBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtc2lsbHM7CivmsLIgPCBsaWZlXC1naXZpbmdcLWluZmx1ZW5jZXNcLW9mXC1uYXR1cmU7Civomp0gPCBoYWlyeVwtYW5kXC1wb2lzb25vdXNcLWNhdGVycGlsbGFyczsKK+a+pyA8IHJpdmVyXC1pblwtbm9ydGhlcm5cLWh1bmFuXC1wcm92aW5jZTsKK+etriA8IGRpdmluYXRpb25cLXdpdGhcLXN0YWxrc1wtb2ZcLXBsYW50czsKK+esqiA8IGFcLWNvYXJzZVwtbWF0XC1vZlwtcnVzaGVzXC1vclwtYmFtYm9vOwor6aaTIDwgZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+eukCA8IHRvXC1kcmF3XC1hXC1iYW1ib29cLWJvd1wtb3JcLWNyb3NzYm93Owor5omDIDwgYVwtZG9vclwtYmFyXC1wbGFjZWRcLW91dHNpZGVcLWFcLWRvb3I7Civku4kgPCBzdXJuYW1lXC1vZlwtdGhlXC1tb3RoZXJcLW9mXC1tZW5jaXVzOwor56+A5aSW55Sf5p6dIDwgbmV3XC1wcm9ibGVtc1wtY29tcGxpY2F0ZVwtYW5cLWlzc3VlOwor6by76Z2S6IeJ6IWrIDwgYVwtYmxvb2R5XC1ub3NlXC1hbmRcLWFcLXN3b2xsZW5cLWZhY2U7CivmlL/nlYwgPCBwb2xpdGljYWxcLWFuZFwtZ292ZXJubWVudFwtY2lyY2xlczsKK+aAp+WIpSA8IGRpc3Rpbmd1aXNoaW5nXC1iZXR3ZWVuXC10aGVcLXNleGVzOwor6YGV56aBIDwgdG9cLXZpb2xhdGVcLWFcLXByb2hpYnRpdGlvblwtb3JcLWJhbjsKK+mFrOWSjCA8IHRvXC1yZXNwb25kXC10b1wtYVwtcG9lbVwtd2l0aFwtYVwtcG9lbTsKK+WgseiAgyA8IGVudGVyXC1vbmVzZWxmXC1mb3JcLWFuXC1leGFtaW5hdGlvbjsKK+WMl+WciyA8IHRoZVwtbm9ydGhlcm5cLXBhcnRcLW9mXC10aGVcLWNvdW50cnk7CivkvIHmpa3nrqHnkIYgPCBidXNpbmVzc1wtbWFuYWdlbWVudFwtXChhc1wtYVwtc3R1ZHlcKTsKK+WkluWtqyA8IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtZGF1Z2h0ZXJcKTsKK+WFiee6luWIhuS9iOW8j+aVuOaTmuS7i+mdoiA8IGZpYmVyXC1kaXN0cmlidXRlZFwtZGF0YVwtaW50ZXJmYWNlOwor5Z6D5Zy+6LuKIDwgZ2FyYmFnZVwtdHJ1Y2tcLVwob3JcLW90aGVyXC12ZWhpY2xlXCk7CivlpKflnIsgPCBhXC1wb3dlclwtXChpZVwsXC1hXC1kb21pbmFudFwtY291bnRyeVwpOwor6aq+IDwgYW55XC1vYmplY3RcLXRoYXRcLXN0aWNrc1wtaW5cLXRocm9hdDsKK+aOouimqiA8IHRvXC1nb1wtaG9tZVwtdG9cLXZpc2l0XC1vbmUnJ3NcLWZhbWlseTsKK+W4g+azlee+hSA8IGJ1ZmZhbG9cLVwoY2l0eVwtaW5cLW5ld1wteW9ya1wtc3RhdGVcKTsKK+WFq+acg+eptCA8IHRoZVwtZWlnaHRcLXN0cmF0ZWdpY1wtbmVydmVcLXBvaW50czsKK+mbo+S7pSA8IGhhcmRcLXRvXC1cKHByZWRpY3RcLFwtaW1hZ2luZVwsXC1ldGNcLlwpOwor5aCx5pWIIDwgcmVuZGVyXC1zZXJ2aWNlXC10b1wtcmVwYXlcLWtpbmRuZXNzOwor6Ya8IDwgb2ZmZXJcLWZvb2RcLWFuZFwtd2luZVwtb25lJydzXC1ndWVzdHM7CivovKcgPCBjdXJ0YWluZWRcLWNhcnJpYWdlXC11c2VkXC1ieVwtd29tZW47Civou5kgPCBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWVcLXRvXC1hcnJhbmdlOwor6Kaq5oiaIDwgXChhXClcLXJlbGF0aXZlXC1cKGllXCxcLWZhbWlseVwtbWVtYmVyXCk7CivngrrmnJ8gPCBcKHRvXC1iZVwtZG9uZVwpXC1ieVwtXChhXC1jZXJ0YWluXC1kYXRlXCk7CivovrLmm4YgPCB0aGVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1jYWxlbmRhcjsKK+i0gSA8IHRvXC1kZWZlYXRcLXRvXC1zcG9pbFwtb3JcLWJlXC1zcG9pbGVkOwor6LOPIDwgcGVhcmxzXC1vclwtc2hlbGxzXC1zdHJ1bmdcLXRvZ2V0aGVyOwor6KuKIDwgdG9cLW1ha2VcLWFcLWp1ZGljaWFsXC1pbnZlc3RpZ2F0aW9uOwor5oyJ6KqqIDwgaW5cLXRoZVwtb3JkaW5hcnlcLWNvdXJzZVwtb2ZcLWV2ZW50czsKK+mAo+S7uyA8IGNvbnRpbnVlXC1pblwtXChhXC1wb2xpdGljYWxcKVwtb2ZmaWNlOwor55+u5a2Q6KOh5ouU5bCH6LuNIDwgY2hvb3NlXC10aGVcLWJlc3RcLXBlcnNvblwtYXZhaWxhYmxlOwor6IeJ6K2cIDwgdHlwZXNcLW9mXC1mYWNpYWxcLW1ha2V1cFwtaW5cLW9wZXJhczsKK+e6mSA8IHN0cmluZ1wtb25cLXdoaWNoXC1jb2luc1wtYXJlXC1zdHJ1bmc7CivnrbQgPCB0eXBlXC1vZlwtZ3Jhc3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor6ZaL5bqtIDwgYmVnaW5cLWFcLVwoanVkaWNpYWxcKVwtY291cnRcLXNlc3Npb247Civlhazlr6kgPCBwdWJsaWNcLXRyaWFsXC1cKGluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor55CHIDwgY29hcnNlXC12YXJpZXR5XC1vZlwtamFzcGVyXC1vclwtamFkZTsKK+S9humhmCA8IGlmXC1vbmx5XC1cKGl0XC13ZXJlXC1wb3NzaWJsZVwtdG9cLlwuXC5cKTsKK+mWi+aZruaVpiA8IGNhcGVcLXRvd25cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+i2iuS+hui2iuWatOmHjSA8IHRvXC1iZWNvbWVcLW1vcmVcLXNlcmlvdXNcLWV2ZXJ5XC1kYXk7CivkuI3orIDogIzlkIggPCBhZ3JlZVwtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+aNqOW+lyA8IHRvXC1iZVwtd2lsbGluZ1wtdG9cLXBhcnRcLXdpdGhcLVwoc3RoXCk7Civmo6sgPCB0aG9ybnlcLXNocnViXC13aXRoXC15ZWxsb3dcLWZsb3dlcnM7CivopovkuI3lvpcgPCBtYXlcLW5vdFwtYmVcLXNlZW5cLWJ5XC1vclwtZXhwb3NlZFwtdG87Civml5MgPCBzZXJyYXRlZFwtZWRnZXNcLW9uXC1hXC1jaGluZXNlXC1mbGFnOwor5oyB5pyJIDwgaG9sZFwtXChlZ1wsXC1wYXNzcG9ydFwsXC12aWV3c1wsXC1ldGNcLlwpOwor5oqX54itIDwgbWFrZVwtYVwtc3RhbmRcLWFuZFwtZmlnaHRcLVwoYWdhaW5zdFwpOwor6L+R5LmO5ZCM5q2l5pW45L2N6ZqO5bGkIDwgcGxlc2lvY2hyb25vdXNcLWRpZ2l0YWxcLWhpZXJhcmNoeTsKK+aMieWFteS4jeWLlSA8IG5vdFwtdGhyb3dcLXRoZVwtdHJvb3BzXC1pbnRvXC1iYXR0bGU7CivltrIgPCBhXC1uYW1lXC1vZlwtYW5cLW9sZFwtdG93blwtaW5cLXNpY2h1YW47Civnr6blrZAgPCBhXC1kb3VibGVcLWVkZ2VkXC1maW5lXC10b290aGVkXC1jb21iOwor5oqV5qmfIDwgYmVcLWFcLXNwZWN1bGF0b3JcLVwocHJvZml0XC1zZWVraW5nXCk7CivlobEgPCBwbGFjZVwtbmFtZVwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivliaggPCBzb3VuZFwtb2ZcLXNvbWV0aGluZ1wtYmVpbmdcLXNtYXNoZWQ7CivmjKrlgJ8gPCB0b1wtYm9ycm93XC1tb25leVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+WusOebuCA8IHByaW1lXC1taW5pc3RlclwtXChpblwtZmV1ZGFsXC1jaGluYVwpOwor5LiA5Lit5LiA6Ie6IDwgXCJvbmVcLWNoaW5hXCxcLW9uZVwtdGFpd2FuXCJcLVwocG9saWN5XCk7CivktawgPCBibGFja1wtc291bmRcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5LSNIDwgYVwta2luZFwtb2ZcLXN0cmFuZ2VcLWFuZFwtd2VpcmRcLWJpcmQ7CivktIkgPCBnZW5lcmFsXC10ZXJtXC1mb3JcLWFcLWdyb3VwXC1vZlwtYmlyZDsKK+SzsCA8IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtd2lsZFwtZ29vc2U7CivksZkgPCBhXC1zbWFsbFwta2luZFwtb2ZcLXR1bmFcLW9yXC1zdHVyZ2VvbjsKK+SwlCA8IGRyZXNzZWRcLWhhaXJcLWluXC1hXC1ob3Jpem9udGFsXC13YXk7CivkqqwgPCBzb3VuZFwtb2ZcLXByZXNzaW5nXC1zb21ldGhpbmdcLWRvd247CivkqawgPCBhblwtb3JuYW1lbnRhbFwtaXRlbVwtb25cLWFcLXNjYWJiYXJkOwor5Ke1IDwgYVwtYmlyZFwtbGlrZVwtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+SmjiA8IGFcLW1lY2hhbmljYWxcLWRldmljZVwtZm9yXC1sZWFkXC1vcmU7Civkpb4gPCB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpZkgPCBhXC1zcGVjdWx1bVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KS3IDwgYVwtbGFuY2VcLXdpdGhcLXRocmVlXC1vclwtdHdvXC1wb2ludHM7CivkuK3ml6Xpn5PotoogPCBjaGluYVwsXC1qYXBhblwsXC1rb3JlYVwsXC1hbmRcLXZpZXRuYW07Civko6IgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SdgSA8IGFcLWtpbmRcLW9mXC13aWxkXC1sZWd1bWlub3VzXC1wbGFudHM7Civkm7YgPCB3cml0aW5nc1wtZXVsb2dpemluZ1wtYWRlYWRcLXBlcnNvbjsKK+iZm+iFlSA8IGVtcHR5XC13cmlzdFwtXChtZXRob2RcLW9mXC1wYWludGluZ1wpOwor5JekIDwgYVwta2luZFwtb2ZcLXdvcm1cLXByb2R1Y2VkXC1pblwtd2F0ZXI7Civlj5blvpflpKflrbjlrbjkvY0gPCB0b1wtb2J0YWluXC1hXC11bml2ZXJzaXR5XC1lZHVjYXRpb247CivkjbAgPCBhXC1wbGFndWVcLW9yXC1hXC1wZXN0aWxlbmNlXC1vZlwtZ29hdDsKK+SKiiA8IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtcmljZVwtZ3J1ZWw7CivkiYggPCBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47Civkh4ggPCB0b1wtcHV0XC1pbnRvXC1hXC1jdXBib2FyZFwtb3JcLWNsb3NldDsKK+SHgCA8IG9ybmFtZW50c1wtb2ZcLWZpbmVcLWZlYXRoZXJcLW9yXC1mdXI7CivkhbkgPCBhXC1raW5kXC1vZlwtZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+SFqSA8IGNyb29rZWRcLWFuZFwtd2luZGluZ1wtb2ZcLXRoZVwtZ3Jhc3M7CivkhLcgPCBhXC1tZWFzdXJlbWVudFwtZXF1YWxcLXRvXC0xMjBcLWNhdHR5Owor5IOqIDwgYVwtcGxhdGZvcm1cLWZvclwtc2FjcmlmaWNpYWxcLXJpdGVzOwor5IKeIDwgYVwtdGhvcm55XC10cmVlXC1hYm91dFwtMTVcLWZlZXRcLWhpZ2g7CivlibXovqbkurogPCBmb3VuZGVyXC1cKG9mXC1hblwtaW5zdGl0dXRpb25cLFwtZXRjXCk7CivjupwgPCBmaWVyY2VcLWRvZ1wtd2l0aFwtbG9uZ1wtc2hhZ2d5XC1oYWlyOwor47qJIDwgYVwtZmllcmNlXC1hbmltYWxcLW9mXC10aGVcLWRvZ1wtdHJpYmU7CivkuI3oq5YgPCBub1wtbWF0dGVyXC1cKHdoYXRcLFwtd2hvXCxcLWhvd1wsXC1ldGNcLlwpOwor47mhIDwgYVwtcnVzaFwtYW5kXC1pbXBhdGllbnRcLWRpc3Bvc2l0aW9uOwor47ihIDwgYm9hcmRcLXRvXC1ibG9ja1wtdGhlXC13YXRlclwtY3VycmVudDsKK+O4miA8IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtYW5kXC1jbGVhcjsKK+O0rSA8IGltbWVhc3VyYWJsZVwtZGVwdGhcLW9yXC1wcm9mdW5kaXR5Owor47GoIDwgdG9cLXByZXBhcmVcLWFcLWJvZHlcLWZvclwtdGhlXC1jb2ZmaW47Civkv53kv64gPCBndWFyYW50ZWVcLXRvXC1rZWVwXC1pblwtZ29vZFwtcmVwYWlyOwor46yHIDwgbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtYW5jaWVudFwtY2hpbmE7Civjqb0gPCBicmFuY2hlc1wtdG9cLWJlXC1hXC1wYXJhc2l0ZVwtYVwtdHJlZTsKK+OokiA8IHRvXC1jdXRcLW9wZW5cLWFuZFwtY2xlYW5cLVwtXC1cLWFzXC1maXNoOwor6YeR6YKKIDwgcGhub21cLXBlbmhcLVwoY2FwaXRhbFwtb2ZcLWNhbWJvZGlhXCk7CivjorIgPCB0aGVcLTV0aFwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC3lhavljaY7Civjn6ggPCBhXC1mb3VudGFpblwtaW5cLXRoZVwtc2lkZVwtb2ZcLWFcLWhpbGw7Civjm40gPCB0b1wtaGF2ZVwtb25lJydzXC1hbWJpdGlvblwtZnVsZmlsbGVkOwor45qhIDwgc3RhbmRpbmdcLXdpdGhvdXRcLWFcLXN0cmFpZ2h0XC1iYWNrOwor45qJIDwgdG9cLW1ha2VcLWFcLXByb2ZpdFwtb25cLXNlbGxcLWFuZFwtYnV5Owor5L615L2UIDwgdG9cLWludmFkZVwtYW5kXC1vY2N1cHlcLVwodGVycml0b3J5XCk7CivjlaMgPCBhXC1tYXJzaFwtYXRcLXRoZVwtZm9vdFwtb2ZcLXRoZVwtaGlsbHM7Civmn6/lr4YgPCBrZXJtaXRcLVwoY29tbXVuaWNhdGlvbnNcLXByb3RvY29sXCk7CivkuqvmnIkgPCBlbmpveVwtXChyaWdodHNcLFwtcHJpdmlsZWdlc1wsXC1ldGNcLlwpOwor56au54KuIDwgYVwtZ3VuXC1zYWx1dGVcLVwoZWdcLFwtMjFcLWd1blwtc2FsdXRlXCk7CivnqoHljqUgPCB0dXJraWNcLVwobWlub3JpdHlcLWdyb3VwXC1pblwtY2hpbmFcKTsKK+aIiOeIvuW3tOWWrOWkqyA8IFwoZm9ybWVyXC1zb3ZpZXRcLWxlYWRlclwpXC1nb3JiYWNoZXY7CivpgLzkvpvkv6EgPCBvYnRhaW5cLWNvbmZlc3Npb25zXC1ieVwtY29tcHVsc2lvbjsKK+WuieS/nSA8IFwoYWJicmV2aWF0aW9uXClcLW1haW50YWluXC1zZWN1cml0eTsKK+Wjvem6tSA8IGJpcnRoZGF5XC1ub29kbGVzXC1cKGZvclwtbG9uZ2V2aXR5XCk7CivmtbTlrqQgPCBiYXRocm9vbVwtXChyb29tXC11c2VkXC1mb3JcLWJhdGhpbmdcKTsKK+S7pOS6uiA8IGNhdXNlXC1zb21lb25lXC10b1wtXChiZVwsXC1mZWVsXCxcLWV0Y1wpOwor5b2i5b2x5LiN6ZuiIDwgaW5zZXBhcmFibGVcLVwoYXNcLWZvcm1cLWFuZFwtc2hhZG93XCk7CivllYbmpa3niYjmnKwgPCBjb21tZXJjaWFsXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwpOwor55m+6K6A5LiN5Y6tIDwgYmVcLXdvcnRoXC1yZWFkaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+mZpOmdniA8IG9ubHlcLWlmXC1cKFwuXC5cLlwsXC1vclwtb3RoZXJ3aXNlXCxcLVwuXC5cLlwpOwor5q2n6KaWIDwgZGlzY3JpbWluYXRpb25cLVwoYWdhaW5zdFwtc29tZW9uZVwpOwor5pWX6JC9IDwgZGVjbGluZVwtXChpblwtd2VhbHRoXC1hbmRcLXBvc2l0aW9uXCk7CivnhKHpjKsgPCB3dXhpXC1cKGNpdHlcKVwsXC1pblwtamlhbmdzdVwtcHJvdmluY2U7CivliIbms6LlpJrlt6UgPCB3YXZlbGVuZ3RoXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5b+F55Sx5LmL6LevIDwgdGhlXC1yb2FkXC1vbmVcLW11c3RcLWZvbGxvd1wtb3JcLXRha2U7Civku6wgPCBhZGp1bmN0XC1wcm9ub3VuXC1pbmRpY2F0ZVwtcGx1cmFsOwor5ZGiIDwgaW50ZXJyb2dhdGl2ZVwtb3JcLWVtcGhhdGljXC1maW5hbDsKK+alvCA8IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+iNryA8IGxlYWZcLW9mXC1kYWh1cmlhblwtYW5nZWxpY2FcLXBsYW50Owor6b2OIDwgdGFrZVwtaW5cLWJvdGhcLWhhbmRzXC1hbmRcLW9mZmVyXC10bzsKK+S4iCA8IHVuaXRcLW9mXC1sZW5ndGhcLWVxdWFsXC0zXC4zXC1tZXRlcnM7CivmjJEgPCBhXC1sb2FkXC1jYXJyaWVkXC1vblwtdGhlXC1zaG91bGRlcnM7CivnpZ0gPCBwcmF5XC1mb3JcLWhhcHBpbmVzc1wtb3JcLWJsZXNzaW5nczsKK+adiSA8IHZhcmlvdXNcLXNwZWNpZXNcLW9mXC1waW5lXC1hbmRcLWZpcjsKK+acpyA8IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor6Zy4IDwgcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor566qIDwgc21hbGxcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWhvbGRpbmc7CivphqQgPCBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor54KVIDwgdGhlXC1icmlja1wtYmVkXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor5LqlIDwgbGFzdFwtb2ZcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7CivnsqQgPCBndWFuZ2RvbmdcLWFuZFwtZ3Vhbmd4aVwtcHJvdmluY2VzOwor57K9IDwgZHVtcGxpbmdcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2U7CivpmYcgPCBtb3VudGFpblwtbG9jYXRlZFwtYmV0d2Vlblwtc2hhbnhpOwor6Ze+IDwgdmlsbGFnZVwtb2ZcLXR3ZW50eVwtZml2ZVwtZmFtaWxpZXM7Civpg6YgPCBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivpnoUgPCBsZWF0aGVyXC1zdHJhcFwtb3ZlclwtaG9yc2UnJ3NcLW5lY2s7Civpk6EgPCBzaWNrbGVcLWZvclwtY3V0dGluZ1wtZ3Jhc3NcLW9yXC1oYXk7CivpqqcgPCBnYWxsb3BcLWFib3V0XC13aXRoXC1oZWFkXC11cGxpZnRlZDsKK+mqoiA8IGhvcnNlXC13aXRoXC1hXC1ibHVpc2hcLXdoaXRlXC1jb2xvcjsKK+ibsyA8IGtpbmRcLW9mXC1zbmFpbFwtd2l0aFwtc3BpcmFsXC1zaGVsbDsKK+mCsyA8IGFcLWRlcGFydG1lbnRcLWluXC10aGVcLXN0YXRlXC1vZlwtbHU7Civpg6IgPCBzdGF0ZVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivpqpYgPCB0d29cLW91dHNpZGVcLW9uZXNcLWluXC10aHJlZVwtaG9yc2U7CivovbggPCBjcm9zc1wtYm9hcmRcLWF0XC1yZWFyXC1vZlwtY2FycmlhZ2U7CivnrpwgPCBhbmNpZW50XC1zdHJpbmdcLW11c2ljXC1pbnN0cnVtZW50Owor6YOQIDwgc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6L25IDwgcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7CivmoJ0gPCBhXC1idWlsZGVyJydzXC1mcmFtZVwtZm9yXC1tZWFzdXJpbmc7CivnjY0gPCBhblwtYW5pbWFsXC13aGljaFwtZWF0c1wtaXRzXC1tb3RoZXI7CivosqDosqzkurogPCBwZXJzb25cLWluXC1jaGFyZ2VcLVwob2ZcLXNvbWV0aGluZ1wpOwor5aeQ5aSrIDwgYnJvdGhlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivljYHkuInntpMgPCB0aGVcLXRoaXJ0ZWVuXC1jb25mdWNpYW5cLWNsYXNzaWNzOwor5a+m5pmC5pON5L2c55Kw5aKDIDwgcmVhbFwtdGltZVwtb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+eJueWNgCA8IHNwZWNpYWxcLVwoYWRtaW5pc3RyYXRpdmVcKVwtcmVnaW9uOwor5pel5ZyTIDwgamFwYW5lc2VcLXllblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+eXheifsuWusyA8IHBsYW50XC1kaXNlYXNlc1wtYW5kXC1pbnNlY3RcLXBlc3RzOwor5Lqo54m55rOw576FIDwgaHVudGVyXC10eWxvXC1cKGhvbGx5d29vZFwtYWN0cmVzc1wpOwor5aOB5qulIDwgYVwtYnVpbHRcLWluXC13YXJkcm9iZVwtb3JcLWN1cGJvYXJkOwor6ZaJ6ZaA6YCg6LuKIDwgbWFrZVwtYVwtY2FydFwtYmVoaW5kXC1jbG9zZWRcLWRvb3JzOwor6YG/5pqRIDwgYmVcLWF3YXlcLWZvclwtdGhlXC1zdW1tZXJcLWhvbGlkYXlzOwor5q2l5pCWIDwgZGFuZ2xpbmdcLW9ybmFtZW50XC13b3JuXC1ieVwtd29tZW47CivlnIvpmpvllYbmpa3mqZ/lmaggPCBpbnRlcm5hdGlvbmFsXC1idXNpbmVzc1wtbWFjaGluZXM7CivpvJcgPCBzbWFsbFwtcmV2b2x2aW5nXC1kcnVtXC13aXRoXC1rbm9iczsKK+m8kiA8IGxhcmdlXC10cmlwb2RcLWNhbGRyb25cLXdpdGhcLXNtYWxsOwor6baWIDwgbGFyZ2VcLXdhdGVyZm93bFwtd2l0aFwtbmFrZWRcLWhlYWQ7CivpqIQgPCBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1zd2lmdFwtaG9yc2U7CivppJYgPCBmb29kXC1pdGVtXC1zZXRcLW91dFwtZm9yXC1zaG93XC1vbmx5Owor6aCjIDwgdG9cLXZpZXdcLW90aGVyc1wtd2l0aFwtcmFpc2VkXC1leWVzOwor6YKm5LqkIDwgcmVsYXRpb25zXC1iZXR3ZWVuXC10d29cLWNvdW50cmllczsKK+mEtCA8IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhvbmFuXC1wcm92aW5jZTsKK+mEmiA8IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlYmVpXC1wcm92aW5jZTsKK+mDlCA8IHBsYWNlXC1uYW1lXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YK9IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWhhblwtZHluYXN0eTsKK+i7qCA8IGxhdHRpY2VcLXdvcmtcLW9uXC1mcm9udFwtYW5kXC1zaWRlczsKK+i4iyA8IHRoZVwtZm9vdFwtb3JcLWZlZXRcLWNhc3RcLW9mXC1hXC1wbGF5Owor5pW45pOa6Y+I6Lev6YCj5o6l6K2Y5Yil56K8IDwgZGF0YVwtbGlua1wtY29ubmVjdGlvblwtaWRlbnRpZmllcjsKK+ilrSA8IHR1Y2tcLXVwXC1oZW1cLW9mXC1nYXJtZW50XC1hbmRcLXdyYXA7Civoo4sgPCBjb3R0b25cLWNsb3RoZXNcLW9mXC1hXC1ib3lcLXNlcnZhbnQ7CivoobogPCBzbGl0XC1pblwtZ2FybWVudFwtdG9cLWFpZFwtbW92ZW1lbnQ7CivooKggPCBhXC1raW5kXC1vZlwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6J6jIDwgbXl0aG9sb2dpY2FsXC13aW5nbGVzc1wtZHJhZ29uXC1vZjsKK+aPkOeFiSA8IHRvXC1leHRyYWN0XC1cKG9yZVwsXC1taW5lcmFsc1wsXC1ldGNcKTsKK+iLpCA8IGJyYXNzaWNhXC1jYW1wZXN0cmlzXC1zdWJzcFwuXC1yYXBhOwor5qmL5o6lIDwgYnJpZGdpbmdcLVwoaW5cLWNvbXB1dGVyXC1uZXR3b3Jrc1wpOwor6ImVIDwgdHdvXC1ib2F0c1wtZmFzdGVuZWRcLXNpZGVcLWJ5XC1zaWRlOwor5YWr5pa5IDwgdGhlXC1laWdodFwtcG9pbnRzXC1vZlwtdGhlXC1jb21wYXNzOwor6IarIDwgdGhlXC1mYXRcLWNvdmVyaW5nXC10aGVcLWludGVzdGluZXM7CivmgrLllpzkuqTpm4YgPCBtaXhlZFwtZmVlbGluZ3NcLW9mXC1ncmllZlwtYW5kXC1qb3k7CivlhafmlL8gPCBpbnRlcm5hbFwtYWZmYWlyc1wtXChvZlwtYVwtY291bnRyeVwpOwor57iXIDwgc2Fja2Nsb3RoXC13b3JuXC1vblwtYnJlYXN0XC1kdXJpbmc7Civov6vkvb8gPCBmb3JjZVwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor56+qIDwgYVwtYmFtYm9vXC1mbHV0ZVwtd2l0aFwtc2V2ZW5cLWhvbGVzOwor5ZCD5LiN5pyNIDwgbm90XC1iZVwtYWNjdXN0b21lZFwtdG9cLWVhdGluZ1wtc3RoOwor6ZW35buKIDwgdGhlXC1sb25nXC1jb3JyaWRvclwtYXRcLXlpXC1oZVwteXVhbjsKK+eeliA8IGFcLWNhdGFyYWN0XC1vclwtZmlsbVwtb3ZlclwtdGhlXC1leWU7CivkuI3kv67pgorluYUgPCBub3RcLWNhcmVcLWFib3V0XC1vbmUnJ3NcLWFwcGVhcmFuY2U7CivnlaQgPCBwbGFjZVwtZm9yXC13b3JzaGlwcGluZ1wtdGhlXC1oYXZlbjsKK+WFg+W4pSA8IGFcLW1hcnNoYWxcLVwoaW5cLXRoZVwtYXJtZWRcLWZvcmNlc1wpOwor55SXIDwgZWFydGhlbndhcmVcLXZlc3NlbFwtaW5cLXR3b1wtcGFydHM7CivnrKblkIjnvo7lnIvliKnnm4ogPCBpblwtbGluZVwtd2l0aFwtYW1lcmljYW5cLWludGVyZXN0czsKK+Wkp+W/q+S6uuW/gyA8IHRvXC10aGVcLXNhdGlzZmFjdGlvblwtb2ZcLWV2ZXJ5b25lOwor5qCh6ZW3IDwgXChjb2xsZWdlXCxcLXVuaXZlcnNpdHlcKVwtcHJlc2lkZW50Owor54OzIDwgdG9cLXRyYXZlbFwtYnlcLXRoZVwtbGlnaHRcLW9mXC10b3JjaDsKK+eBlSA8IHNob3J0XC1uYW1lXC1mb3JcLWd1YW5neGlcLXByb3ZpbmNlOwor6aas5bC85ouJIDwgbWFuaWxhXC1cKGNhcGl0YWxcLW9mXC1waGlsaXBwaW5lc1wpOwor6ZaL5YiAIDwgdG9cLXBlcmZvcm1cLW9yXC1oYXZlXC1hblwtb3BlcmF0aW9uOwor5rK0IDwgZm91bFwtYW5kXC1wb2lzb25vdXNcLWluXC1jb25mdXNpb247CivmqJAgPCBhXC1sb29rb3V0XC10dXJyZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor5qO7IDwga2luZFwtb2ZcLXdvb2RcLWZyb21cLXdoaWNoXC1wZXJmdW1lOwor6Lyp5YiGIDwgc2VuaW9yaXR5XC1pblwtdGhlXC1mYW1pbHlcLW9yXC1jbGFuOwor5p6MIDwgdmFyaWV0eVwtb2ZcLWVsbVwtd2l0aFwtc21hbGxcLXNlZWRzOwor6Z6t6ZW36I6r5Y+KIDwgYmV5b25kXC10aGVcLXJlYWNoXC1vZlwtb25lJydzXC1wb3dlcjsKK+S4jeWtuOeEoeihkyA8IGhhdmVcLW5laXRoZXJcLWxlYXJuaW5nXC1ub3JcLXNraWxsOwor5oeJ6Kmy6KqqIDwgaXRcLXNob3VsZFwtYmVcLW1lbnRpb25lZFwtdGhhdFwtXC5cLlwuOwor5LiN5b6X5LiNIDwgaGF2ZVwtbm9cLWNob2ljZVwtb3JcLW9wdGlvblwtYnV0XC10bzsKK+S4jeWvkuiAjOaFhCA8IHNoaXZlclwtYWxsXC1vdmVyXC10aG91Z2hcLW5vdFwtY29sZDsKK+WwvueJmSA8IGFcLXllYXJcLWVuZFwtZGlubmVyXC1mb3JcLWVtcGxveWVlczsKK+ePrei8qiA8IHJlZ3VsYXJcLXBhc3Nlbmdlclwtb3JcLWNhcmdvXC1zaGlwOwor5Z6fIDwgY2xheVwtc2hlZXBcLWJ1cmllZFwtd2l0aFwtdGhlXC1kZWFkOwor5oqo5pOKIDwgYXR0YWNrXC1cKHZlcmJhbGx5XC1vclwtaW5cLXdyaXRpbmdcKTsKK+iInuWPsCA8IFwodGhlYXRyaWNhbFwtb3JcLXBvbGl0aWNhbFwpXC1zdGFnZTsKK+WSoCA8IHRvXC13aGlzcGVyXC5cLXRvXC1ibGFtZVwtdG9cLXNsYW5kZXI7Civlj6cgPCB0b1wtY3V0XC1tZWF0XC1vZmZcLWF3YXlcLWZyb21cLWJvbmVzOwor5YaUIDwgY2FwXC13b3JuXC1kdXJpbmdcLXRoZVwteWluXC1keW5hc3R5Owor5Lq8IDwgdG9cLWFzc2VtYmxlXC5cLXRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor5LmEIDwgc2hpbWVcOlwtdG9cLWZpbmRcLWFcLXBsYWNlXC10b1wtZHdlbGw7CivktbggPCB0aGVcLXRvYWRcLXRoYXRcLWxpdmVzXC1pblwtdGhlXC1tb29uOwor5LOhIDwgYVwta2luZFwtb2ZcLWJpcmRcLWluXC1hbmNpZW50XC1ib29rczsKK+WMl+S8kOi7jSA8IHRoZVwtbm9ydGhlcm5cLWV4cGVkaXRpb25hcnlcLWFybXk7Civksp4gPCBhXC1zZWNvbmRcLWdlbmVyYWxcLW5hbWVcLWZvclwtcGVyY2g7CivksYwgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1nbG9iZWZpc2g7CivksJ0gPCBhXC1sYXJnZVwtZWFydGhlblwtcG90XC1mb3JcLWNvb2tpbmc7CivksIAgPCBkcmVzc2VkXC1oYWlyXC1vZlwtYVwtY2hpbmVzZVwtd29tYW47CivkrrggPCB0b1wtbW92ZVwtc2xvd2x5XC1hbmRcLXRoZW5cLXN3aWZ0bHk7CivkrLsgPCB0b1wtZW50ZXJ0YWluXC1hXC1kZXBhcnRpbmdcLWZyaWVuZDsKK+SqviA8IHRvXC1kZWFsXC13aXRoXC1hZmZhaXJzXC1jYXV0aW91c2x5Owor5KqNIDwgYVwtY29udGFpbmVyXC1mb3JcLWJvd3NcLWFuZFwtYXJyb3dzOwor5KijIDwgbGVhdGhlclwtdG9cLWJlXC1tb2lzdGVuZWRcLWJ5XC1yYWluOwor6Luf6auU5Ye654mI5Y2U5pyDIDwgc29mdHdhcmVcLXB1Ymxpc2hlcnNcLWFzc29jaWF0aW9uOwor5KOjIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1uYW1lXC1vZlwtYVwtcGxhY2U7Civkn5ogPCB0b1wtc2l0XC13aXRoXC10aGVcLWxlZ3NcLXNwcmVhZFwtb3V0Owor5Jy3IDwgZmVybWVudGVkXC1hbmRcLXNlYXNvbmVkXC1zb3liZWFuczsKK+ScqiA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLW9sZFwtdGltZXM7Civkm4AgPCByZWFzb25hYmxlXC1hdXRob3JpdHlcLXN0YXRlbWVudHM7CivkmIUgPCBhXC1zbWFsbFwtZ2FkZmxpZXNcLWFuZFwtbW9zcXVpdG9lczsKK+WPr+enu+akjSA8IHBvcnRhYmxlXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5JCDIDwgZmF0XC1pblwtdGhlXC1hYmRvbWVuXC1vclwtaW50ZXN0aW5lOwor5I2bIDwgYVwta2luZFwtb2ZcLXRvb2xcLXVzZWRcLXRvXC1nZXRcLWZpc2g7CivkiqQgPCB2ZWdldGFibGVcLW1peGVkXC13aXRoXC10aGlja1wtc291cDsKK+SCsiA8IHN0YW5kYXJkXC13ZWlnaHRzXC11c2VkXC1pblwtc2NhbGVzOwor5IGwIDwgdG9cLWxvb2tcLWluXC1hXC1ldmlsXC1vclwtd2lja2VkXC13YXk7CivjvJYgPCBnb3VyZFwtdXNlZFwtYXNcLWFcLWxhZGxlXC1vclwtZGlwcGVyOwor47urIDwgYVwtZ2VtXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+eMm+i3jCA8IGRyb3BcLXNoYXJwbHlcLVwoZWdcLFwtc3RvY2tcLXByaWNlc1wpOwor5bGk5Ye65LiN56quIDwgdG9cLWNvbWVcLW91dFwtb25lXC1hZnRlclwtdGhlXC1vdGhlcjsKK+S/oeS7tiA8IGFcLWxldHRlclwtXChpZVwsXC1zZW50XC1pblwtdGhlXC1tYWlsXCk7CivjrLkgPCB0ZW5kb25zXC1vZlwtdGhlXC1oZWVsXC1vZlwtdGhlXC1mb290Owor46yBIDwgdGhlXC1zdW5cLWlzXC1zaGluaW5nXC1vblwtdGhlXC13YXRlcjsKK+OlhiA8IGluZHVsZ2VudFwtYW5kXC13aXRob3V0XC1yZXN0cmFpbnQ7CivlhavntJrlt6Xos4fliLYgPCBlaWdodFwtZ3JhZGVcLXdhZ2VcLXNjYWxlXC1cKHN5c3RlbVwpOwor45eYIDwgdG9cLWJpdGVcLXRoZVwtaGFyZFwtYW5kXC1zb2xpZFwtZm9vZDsKK+S9v+WRvSA8IGFcLVwoZGlwbG9tYXRpY1wtb3JcLW90aGVyXClcLW1pc3Npb247Civjk6IgPCB0b1wtY3V0XC10aGVcLWZsZXNoXC1mcm9tXC10aGVcLWJvbmVzOwor45OUIDwgZmFkZWRcLWFuZFwtZmFsbGVuXC1cLVwtXC1hc1wtYmxvc3NvbXM7CivjkrsgPCB0b1wtZ29cLWZvcndhcmRcLXdpdGhcLWV5ZXNcLWNvdmVyZWQ7CivkuLnnmq4gPCB0aGVcLXJvb3RcLWJhcmtcLW9mXC10aGVcLXBlb255XC10cmVlOwor5a6a5YGaIDwgdG9cLWhhdmVcLXNvbWV0aGluZ1wtbWFkZVwtdG9cLW9yZGVyOwor5Zyo5a+G5YiH5rOo5oSPIDwgdG9cLXBheVwtY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivlronmsJHlkYrnpLogPCBhXC1ub3RpY2VcLXRvXC1yZWFzc3VyZVwtdGhlXC1wdWJsaWM7Civmnb7kuIvpm7vmsKPlt6Xmpa0gPCBtYXRzdXNoaXRhXC1lbGVjdHJvbmljc1wtaW5kdXN0cnk7Civph43nlKggPCB0b1wtcHV0XC1pblwtYW5cLWltcG9ydGFudFwtcG9zaXRpb247CivntLDoj4zmrablmaggPCBiaW9sb2dpY2FsXC13ZWFwb25cLVwodXNpbmdcLWdlcm1zXCk7Civmr5Tos70gPCBcW2F0aGxldGljXC1vclwtb3RoZXJcXVwtY29tcGV0aXRpb247CivliKXplovnlJ/pnaIgPCBzdGFydFwtc29tZXRoaW5nXC1uZXdcLW9yXC1vcmlnaW5hbDsKK+aVmOi/sCA8IHJlbGF0ZVwtXChhXC1zdG9yeVwtb3JcLWluZm9ybWF0aW9uXCk7CivliqDph40gPCBiZWNvbWVcfG1ha2VcLW1vcmVcLXNlcmlvdXNcfGdyYXZlcjsKK+iUmueCuiA8IHRvXC1hZmZvcmRcLVwoYVwtdmlld1wtb2ZcLXN0aFwsXC1lXC5nXC5cKTsKK+e2k+a/n+WtuCA8IGVjb25vbWljc1wtXChhc1wtYVwtZmllbGRcLW9mXC1zdHVkeVwpOwor6Zu76Ie6IDwgcmFkaW9cLVwob3JcLWJyb2FkY2FzdGluZ1wpXC1zdGF0aW9uOwor5aaC6aOi5Ly85ri0IDwgdGhpcnN0aW5nXC1vclwtaHVuZ2VyaW5nXC1mb3JcLXN0aFwuOwor6ZaL5ZyL5YWD5YubIDwgZm91bmRpbmdcLWZhdGhlcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+eikeaelyA8IHRoZVwtZm9yZXN0XC1vZlwtc3RlbGVzXC1cKGluXC14aScnYW5cKTsKK+W5uSA8IHRydW5rXC1vZlwtdHJlZVwtb3JcLW9mXC1odW1hblwtYm9keTsKK+WwuiA8IGNoaW5lc2VcLW1lYXN1cmVcLWFwcHJveFwuXC0nJ2Zvb3QnJzsKK+exsyA8IGh1bGxlZFwtb3JcLWh1c2tlZFwtdW5jb29rZWRcLXJpY2U7CivpuY8gPCBmYWJ1bG91c1wtYmlyZFwtb2ZcLWVub3Jtb3VzXC1zaXplOwor5ZaCIDwgaW50ZXJqZWN0aW9uXC10b1wtY2FsbFwtYXR0ZW50aW9uOwor5r2HIDwgc291bmRcLW9mXC1iZWF0aW5nXC13aW5kXC1hbmRcLXJhaW47CivnprkgPCBsZWdlbmRhcnlcLWhzaWFcLWR5bmFzdHlcLWZvdW5kZXI7Civmlp8gPCB0b1wtcG91clwtd2luZVwtb3JcLXRlYVwtaW50b1wtYVwtY3VwOwor6JC8IDwgdGhlXC1zdGVtXC1hbmRcLWNhbHl4XC1vZlwtYVwtZmxvd2VyOwor6ZiAIDwgcG93ZXJmdWxcLWFuZFwtaW5mbHVlbnRpYWxcLWdyb3VwOwor5qW3IDwgbW9kZWxcLXN0eWxlXC1vZlwtY2hpbmVzZVwtd3JpdGluZzsKK+i+hCA8IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2hlcmVcLXdlYXBvbnM7Civkv5EgPCB3b29kZW5cLWZpZ3VyZVwtYnVyaWVkXC13aXRoXC1kZWFkOwor5Zi5IDwgdXNlZFwtZGVzY3JpYmVcLWNsYXJpdHlcLW9mXC12b2ljZTsKK+i9vCA8IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnQ7CivpppEgPCB0aW1lXC1vZlwtZmFtaW5lXC1vclwtY3JvcFwtZmFpbHVyZTsKK+S8pSA8IGdob3N0XC1vZlwtb25lXC1kZXZvdXJlZFwtYnlcLXRpZ2VyOwor57u2IDwgc2lsa1wtcmliYm9uXC1hdHRhY2hlZFwtYXNcLWFcLXNlYWw7CivprIggPCBmaW5lXC1ncm93dGhcLW9mXC1oYWlyXC1jdXJseVwtaGFpcjsKK+ejlCA8IGRvd253YXJkXC1zdHJva2VcLXNsYW50aW5nXC1yaWdodDsKK+ijoiA8IGZvbGRpbmdcLXB1cnNlXC1pbnNlcnRlZFwtaW5cLWJlbHQ7CivmnrggPCBraW5kXC1vZlwtYXNwZW5cLWZvdW5kXC1pblwtc2ljaHVhbjsKK+iKiiA8IGV4dWJlcmFudFwtYW5kXC12aWdvcm91c1wtZm9saWFnZTsKK+mEhCA8IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNoYW5kb25nOwor6by5IDwgYVwta2luZFwtb2ZcLWluc2VjdGl2b3JvdXNcLXJvZGVudDsKK+iOvCA8IGFuXC1lZGlibGVcLXdhdGVyXC1wbGFudFwtYnJhc2VuaWE7CivlnKwgPCBwbGFzdGVyXC1vdmVyXC13aXRoXC1sYXllclwtb2ZcLW11ZDsKK+iOqSA8IG1lbWJyYW5lXC1saW5pbmdcLWluc2lkZVwtb2ZcLXJlZWQ7Civor7YgPCBhblwtZXhjbGFtYXRpb25cLW9mXC1jb25maXJtYXRpb247CivopJkgPCBwYXBlclwtb3JcLWNsb3RoXC1wYXN0ZWRcLXRvZ2V0aGVyOwor55u05o6l5pW45pOaIDwgZGF0YVwtZGlyZWN0XC1cKGluXC1sYW5cLWVtdWxhdGlvblwpOwor5aSW54GYIDwgd2FpdGFuXC1cKHRoZVwtYnVuZFwpXCxcLWluXC1zaGFuZ2hhaTsKK+itieWvpiA8IGNvbmZpcm1cLVwoc29tZXRoaW5nXC10b1wtYmVcLXRydWVcKTsKK+aEm+mdouWtkCA8IGJlXC1jb25jZXJuZWRcLWFib3V0XC1mYWNlXC1zYXZpbmc7CivorbDlk6EgPCBtZW1iZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1ib2R5XCk7CivloLHooaggPCBmb3Jtc1wtZm9yXC1yZXBvcnRpbmdcLXN0YXRpc3RpY3M7CivmmI7loLEgPCBtaW5nXC1wYW9cLW5ld3NwYXBlclwtXChob25nXC1rb25nXCk7CivliY3nqIsgPCBmdXR1cmVcLVwoY2FyZWVyXCxcLWV0Y1wpXC1wcm9zcGVjdHM7CivnmbvploAgPCBwYXlcLWFcLXZpc2l0XC10b1wtc29tZW9uZScnc1wtaG91c2U7CivpgormsJEgPCBwZW9wbGVcLWxpdmluZ1wtb25cLXRoZVwtZnJvbnRpZXJzOwor6YKj5pyrIDwgaWZcLXRoYXQnJ3NcLXRoZVwtY2FzZVwsXC10aGVuXC1cKFwuXC5cLlwpOwor5pWI5oeJIDwgZWZmZWN0XC1cKGVnXCxcLWdyZWVuaG91c2VcLWVmZmVjdFwpOwor5aKo54i+57y9IDwgbWVsYm91cm5lXC1cKGFuXC1hdXN0cmFsaWFuXC1jaXR5XCk7CivmrbnlvpIgPCBldmlsXC1wZXJzb25cLXdob1wtY29tbWl0c1wtY3JpbWVzOwor5pS25b6pIDwgcmVjb3ZlclwtXChsb3N0XC10ZXJyaXRvcnlcLFwtZXRjXC5cKTsKK+WCsumqqCA8IGxvZnR5XC1hbmRcLXVueWllbGRpbmdcLWNoYXJhY3RlcjsKK+aWt+S6pCA8IGJyZWFrXC1vZmZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+mbu+iFpuiIh+mbu+ipseezu+e1seaVtOWQiCA8IGNvbXB1dGVyXC10ZWxlcGhvbnlcLWludGVncmF0aW9uOwor6baLIDwgYVwtc2VhXC1iaXJkXC13aXRoXC1hXC13aGl0ZVwtYnJlYXN0Owor6a+PIDwgYVwtZGlhbGVjdFwuXC5cLlwuXC5cLlwuXC5cLW5hbWVcLW9mXC1maXNoOwor6aWBIDwgY2FycnlcLW1lYWxcLXRvXC13b3JrZXJzXC1pblwtZmllbGQ7Civml6XmnKzpm7vloLHpm7voqbHlhazlj7ggPCBuaXBwb25cLXRlbGVncmFwaFwtYW5kXC10ZWxlcGhvbmU7CivpjqsgPCBvcm5hbWVudFwtb3ZlclwtdGhlXC1ob3JzZScnc1wtaGVhZDsKK+WCs+e1semGq+iXpSA8IFwoY2hpbmVzZVwpXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7CivotZkgPCBnaWZ0XC1vZlwtbW9uZXlcLWhlbHBcLXBheVwtZnVuZXJhbDsKK+acieWPsuS7peS+hiA8IHNpbmNlXC10aGVcLWJlZ2lubmluZ1wtb2ZcLWhpc3Rvcnk7CivluLPmiLYgPCBcKGJhbmtcLFwtY29tcHV0ZXJcLFwtZXRjXC5cKVwtYWNjb3VudDsKK+ippCA8IHRvXC1tYWtlXC13aWxkXC1zdGF0ZW1lbnRzXC10b1wtbGllOwor5qC45aiB5oe+5pS/562WIDwgcG9saWN5XC1vZlwtbnVjbGVhclwtaW50aW1pZGF0aW9uOwor6Ji0IDwgeW91bmdcLXNob290c1wtb2ZcLXRoZVwtcmFwZXR1cm5pcDsKK+iOnSA8IHRvXC1jaG9wXC1zdHJhd1wtZmluZVwtZm9yXC1hbmltYWxzOwor57Si5p2w57SNIDwgc29qb3VybmVyXC1cKG1hcnRpYW5cLWxhbmRcLXJvdmVyXCk7CivohaAgPCBiZXR3ZWVuXC10aGVcLXNraW5cLWFuZFwtdGhlXC1mbGVzaDsKK+WMheayu+eZvueXhSA8IGd1YXJhbnRlZVwtdG9cLWN1cmVcLWFsbFwtZGlzZWFzZXM7Civnv78gPCBzdHJlYW1lclwtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7CivnraUgPCByb3VuZFwtc2hhcGVkXC1iYW1ib29cLWJhc2tldFwtZm9yOwor5Zu654S2IDwgYWRtaXR0ZWRseVwtXChpdCcnc1wtdHJ1ZVwtdGhhdFwuXC5cLlwpOwor55eEIDwgc2Nyb2Z1bG91c1wtc3dlbGxpbmdzXC1hbmRcLXNvcmVzOwor5Lit6I+v5Lq65rCR5YWx5ZKM5ZyLIDwgdGhlXC1wZW9wbGUnJ3NcLXJlcHVibGljXC1vZlwtY2hpbmE7CivnjqQgPCBhXC1raW5kXC1vZlwtZ2VtXC1pbmZlcmlvclwtdG9cLWphZGU7CivmnI3li5nlu6PlkYrljZTorbAgPCBzZXJ2aWNlXC1hZHZlcnRpc2VtZW50XC1wcm90b2NvbDsKK+eFoCA8IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWxcLlwtdG9cLXNjYWxkOwor6Ie6542oIDwgdGFpd2FuXC1pbmRlcGVuZGVuY2VcLVwobW92ZW1lbnRcKTsKK+a9jyA8IGZhcmVzaGFyZVwtcmVjbGFpbWVkXC1mcm9tXC1yaXZlcjsKK+a8vCA8IGhhdmluZ1wtdGhlXC1hcHBlYXJhbmNlXC1vZlwtZGVwdGg7Civkv53oi5cgPCBrZWVwXC1hXC1mdWxsXC1zdGFuZFwtb2ZcLXNlZWRsaW5nczsKK+asniA8IHRoZVwtbGF0dGljZVwtb2ZcLWFcLXdpbmRvd1wtYVwtc2lsbDsKK+aMiemcgOWIhumFjSA8IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtbmVlZDsKK+S4luiyv+e1hOe5lCA8IHd0b1wtXCh3b3JsZFwtdHJhZGVcLW9yZ2FuaXphdGlvblwpOwor5puaIDwgdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VuXC1yaXNlczsKK+aykuacieS7gOm6vCA8IHRoZXJlJydzXC1ub3RoaW5nXC1cKFwuXC5cLlwtYWJvdXRcLWl0XCk7CivmlpogPCBhXC1zbWFsbFwtY3VwXC1vZlwtc3RvbmVcLXdpdGhcLWVhcnM7CivmjInli57liIbphY0gPCBkaXN0cmlidXRpb25cLWFjY29yZGluZ1wtdG9cLXdvcms7Civot6/nlLEgPCByb3V0aW5nXC1cKGluXC1jb21wdXRlclwtbmV0d29ya3NcKTsKK+Wwjee+jiA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWFtZXJpY2E7CivmjIfmlbggPCBcKG51bWVyaWNhbFwsXC1zdGF0aXN0aWNhbFwpXC1pbmRleDsKK+ethueVqyA8IHN0cm9rZXNcLW9mXC1hXC1jaGluZXNlXC1jaGFyYWN0ZXI7CivmiYogPCB1cHJpZ2h0XC1iYXJcLWZvclwtZmFzdGVuaW5nXC1kb29yOwor5oWcIDwgbmFtZVwtb2ZcLWFcLW1vbmtcLWluXC10YW5nXC1keW5hc3R5Owor56m66KWyIDwgXChtaWxpdGFyeVwpXC1hdHRhY2tcLWZyb21cLXRoZVwtYWlyOwor5bSgIDwgcGxhY2VcLW5hbWVcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+ihqOWgsSA8IHN0YXRpc3RpY2FsXC10YWJsZXNcLWFuZFwtcmVwb3J0czsKK+WynSA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW5kb25nOwor5ouY5oq8IDwgXChhcnJlc3RcLWFuZFwpXC10YWtlXC1pbnRvXC1jdXN0b2R5Owor6KuH5b6X5L6GIDwgYWJsZVwtdG9cLXRhbGtcLXRvXC1vclwtZ2V0XC1vblwtd2l0aDsKK+WgrSA8IGFcLWRyeVwtbW9hdFwtb3V0c2lkZVwtYVwtY2l0eVwtd2FsbDsKK+WgjiA8IGNoYXJhY3RlclwtdXNlZFwtZm9yXC1wbGFjZVwtbmFtZXM7CivlmrkgPCBhXC1wYXJ0aWNsZVwtaW1wbHlpbmdcLWNvbXBsZXRpb247CivpmL/mi4nmnKjlnJYgPCBhbG1hdHlcLVwoY2FwaXRhbFwtb2ZcLWthemFraHN0YW5cKTsKK+WMsyA8IGxhZGllc1wtdG9pbGV0XC1jYXNlXC13aXRoXC1taXJyb3I7CivliLUgPCBwdW5pc2htZW50XC1ieVwtY3V0dGluZ1wtb2ZmXC1lYXJzOwor5bCa5pu4IDwgaGlnaFwtb2ZmaWNpYWxcLWluXC1hbmNpZW50XC1jaGluYTsKK+SygSA8IGdlbmVyYWxcLXRlcm1cLW9mXC1hXC1raW5kXC1vZlwtZmlzaDsKK+S4g+WxpOaetuaniyA8IHNldmVuXC1sYXllclwtYXJjaGl0ZWN0dXJlXC1cKG9zaVwpOwor5LCaIDwgdGhlXC10b3BcLXBhcnRcLW9mXC10aGVcLXJpY2VcLWdydWVsOwor5K+1IDwgaGFpclwtc3R5bGVcLWZvclwtbGl0dGxlXC1jaGlsZHJlbjsKK+SvpCA8IGJvbmV3YXJlXC11c2VkXC10b1wtY29tYlwtdGhlXC1oYWlyOwor5K+SIDwgdGhlXC11cHBlclwtcGFydFwtb2ZcLXRoZVwtc2hpbmJvbmU7CivkrpQgPCBhXC15b3VuZ1wtYW5kXC1mbGVldFwtZm9vdGVkXC1ob3JzZTsKK+StuiA8IGFcLWhvcnNlXC10b1wtcmFpc2VcLWl0c1wtaGVhZFwtaGlnaDsKK+SrriA8IHRvXC1iZW5kXC1vclwtbG93ZXJcLW9mXC1vbmUnJ3NcLWhlYWQ7Civkq4YgPCB0aGVcLWZyb250XC1hbmRcLWJhY2tcLW9mXC10aGVcLW5lY2s7Civkp5IgPCBzdGVwc1wtbGVhZGluZ1wtdXBcLXRvXC1hXC1idWlsZGluZzsKK+SkmyA8IGNvbXBvbmVudFwtcGFydHNcLW9mXC1hXC1jcm9zc1wtYm93Owor5KO5IDwgdG9cLWJyZXdcLTEwXC1wZXJjZW50XC1vZlwtdGhlXC13aW5lOwor5KO1IDwgdG9cLWJyZXdcLXRoZVwtd2luZVwtYVwtc2Vjb25kXC10aW1lOwor5KOsIDwgdGhlXC1zaGlueVwtY29sb3JmdWxcLW9mXC10aGVcLXdpbmU7CivogbPnq4sgPCB0b1wtdG93ZXJcLWFib3ZlXC1cKG9uXC10b3BcLW9mXC1zdGhcKTsKK+SiviA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc21hbGxcLXN0YXRlOwor5KGDIDwgYVwtdG9vbFwtZm9yXC1icnVzaGluZ1wtdGhlXC10aHJlYWQ7CivknLIgPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLW9sZFwtY2hpbmE7Civnj63ntYQgPCB0ZWFtc1wtYW5kXC1ncm91cHNcLVwoaW5cLWZhY3RvcmllczsKK+SYkyA8IHRoaWNrXC1ibG9vZFwtb2ZcLWNhdHRsZVwtYW5kXC1nb2F0Owor5JO/IDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWxvdHVzXC1mbG93ZXI7Civkk7kgPCB0b1wtc3R1ZmZcLWZ1bGxcLWFuZFwtdG9cLWd1bHBcLWRvd247CivkjYEgPCB0aGVcLWhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7Civki7QgPCBzaWxrXC1mYWJyaWNzXC13aXRoXC1taXhlZFwtY29sb3JzOwor5IuzIDwgY2xvdGhcLW9yXC1wYXBlclwtcGFzdGVkXC10b2dldGhlcjsKK+S8r+avjSA8IHdpZmVcLW9mXC1mYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5ImkIDwgYVwtYmFtYm9vXC13YXJlXC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZsgPCBiYW1ib29cLWJhc2tldFwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImTIDwgbWF0dHJlc3NcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SHrCA8IHRoaW5cLWJhbWJvb1wtbGF0aHNcLWtuaXR0ZWRcLXNhaWw7Civkh6cgPCB0b1wtZmlsbFwtYW5cLW9wZW5pbmdcLXdpdGhcLWJhbWJvbzsKK+SEoSA8IG5vcnRoZXJuXC1taW5vcml0eVwtZXRobmljXC1ncm91cDsKK+SDtiA8IHJ1Z2dlZFwtYW5kXC11bmV2ZW5cLW9mXC10aGVcLXJvY2tzOwor5IOaIDwgcnVnZ2VkXC1sYW5kXC1vZlwtc2FuZFwtYW5kXC1wZWJibGU7Civkg4IgPCBkdWxsXC1zb3VuZFwtb2ZcLXRoZVwtdG9sbGluZ1wtYmVsbDsKK+O8oSA8IGFcLXNtYWxsXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O1tyA8IHR1cmJ1bGVudFwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivkuK3ol6UgPCBcKHRyYWRpdGlvbmFsXClcLWNoaW5lc2VcLW1lZGljaW5lOwor6Kqe6Z+z6YCa6KiK6YCa6YGTIDwgdm9pY2VcLVwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+OyuSA8IHRoZVwtZHJ5XC1zb2lsXC1vblwtdGhlXC1yaXZlclwtc2lkZTsKK+OynSA8IGZpbmVcLWhhaXJcLW9mXC1iaXJkc1wtYW5kXC1hbmltYWxzOwor46+FIDwgdGhlXC1icmFuY2hlc1wtZ3Jvd2luZ1wtZG93bndhcmRzOwor466CIDwgYW5cLWFwcGxpYW5jZVwtdXNlZFwtdG9cLWxpZnRcLWZvb2Q7CivjrKQgPCB3ZXRcLWNsb3RoZXNcLW5vdFwtY29tcGxldGVseVwtZHJ5Owor46q+IDwgdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lOwor46iZIDwgdG9cLWNsYXNwXC1vclwtaG9sZFwtdW5kZXJcLXRoZVwtYXJtOwor46ayIDwgYVwtcGFydGljbGVcLWV4cHJlc3NpbmdcLXN1cnByaXNlOwor46WLIDwgc291bmRcLW9mXC10aGVcLWFuZ3Vpc2hcLW9mXC1zb3Jyb3c7CivjpK8gPCBjbGV2ZXJcLW9yXC1zbWFydFwtaW5cLWFcLXNtYWxsXC13YXk7CivjpJQgPCB0b1wtY29uY2VkZVwtb3JcLXN1Ym1pdFwtd2lsbGluZ2x5Owor46OHIDwgYVwta2luZFwtb2ZcLWJlYXN0XC13aXRoXC1sb25nXC1oYWlyOwor46GeIDwgYVwtc2Fja1wtdXNlZFwtdG9cLWZlZWRcLXRoZVwtaG9yc2VzOwor46CjIDwgYVwtbW91bnRhaW5cLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+OeryA8IHRoZVwtdHVybmluZ1wtYXJlYVwtb2ZcLWFcLW1vdW50YWluOwor54+t5Li75Lu7IDwgYVwtdGVhY2hlclwtaW5cLWNoYXJnZVwtb2ZcLWFcLWNsYXNzOwor45yGIDwgY29tbW9ubHlcLWtub3duXC1hc1wtbW90aGVyXC1pblwtd3U7CivjmZogPCByZWRcLWNvbG9yZWRcLWhhcmRcLWFuZFwtc29saWRcLW11ZDsKK+OYniA8IHllbGxpbmdcLXNvdW5kXC1vZlwtdG93aW5nXC1hXC1ib2F0Owor45SpIDwgaGFpclwtb3JubWVudHNcLXVzZWRcLWluXC1vbGRcLXRpbWU7CivjlIAgPCB0b1wtYnJhbmRcLWNyaW1pbmFsc1wtb25cLXRoZVwtZmFjZTsKK+aal+iiiyA8IGNhbWVyYVwtYmFnXC1cKGZvclwtY2hhbmdpbmdcLWZpbG1cKTsKK+WPr+mBuOaTh+S4n+ajhCA8IGRpc2NhcmRcLWVsaWdpYmxlXC1cKGZyYW1lXC1yZWxheVwpOwor6JmV5rG6IDwgZXhlY3V0ZVwtXChhXC1jb25kZW1uZWRcLWNyaW1pbmFsXCk7Civmh4nmnInnm6HmnIkgPCBldmVyeXRoaW5nXC1cKG9uZVwtY291bGRcLWltYWdpbmVcKTsKK+aWsOmuriA8IGZyZXNoXC1cKGV4cGVyaWVuY2VcLFwtZm9vZFwsXC1ldGNcLlwpOwor5bCO6Iiq5ZOhIDwgbmF2aWdhdG9yXC1cKG9uXC1hXC1wbGFuZVwtb3JcLWJvYXRcKTsKK+WPq+iBsiA8IHllbGxpbmdcLVwoc291bmRcLW1hZGVcLWJ5XC1wZXJzb25cKTsKK+ePreW4qyA8IHdpdGhkcmF3XC10cm9vcHNcLWZyb21cLXRoZVwtZnJvbnQ7Civlk4DmgrwgPCBncmlldmVcLVwobW91cm5cKVwtb3Zlclwtc2InJ3NcLWRlYXRoOwor56eR5oGpIDwgY29oZW5cLVwodVwuc1wuXC1kZWZlbmNlXC1zZWNyZXRhcnlcKTsKK+aVl+mZoyA8IGJlXC1kZWZlYXRlZFwtb25cLXRoZVwtYmF0dGxlZmllbGQ7CivnnL7orbDpmaIgPCBob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlc1wtXCh1c2FcKTsKK+WMheizoCA8IGd1YXJhbnRlZVwtdG9cLXBheVwtY29tcGVuc2F0aW9uczsKK+WQjeasoSA8IHBvc2l0aW9uXC1pblwtYVwtcmFua2luZ1wtb2ZcLW5hbWVzOwor5auC5auCIDwgc2lzdGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+WlieihjCA8IHRvXC1wdXJzdWVcLVwoYVwtY291cnNlXCxcLWFcLXBvbGljeVwpOwor6Z2S5bGx57ag5rC0IDwgdmVyZGFudFwtaGlsbHNcLWFuZFwtZ3JlZW5cLXdhdGVyczsKK+WRvOWWmiA8IGNhbGxcLW91dFwtXChzb21lb25lJydzXC1uYW1lXCxcLWV0Y1wpOwor8KCAgSA8IHRoZVwtb3JpZ2luYWxcLWZvcm1cLWZvclwt5LiDXC11XCs0ZTAzOwor8KCAgCA8IHRoZVwtc291bmRcLW1hZGVcLWJ5XC1icmVhdGhpbmdcLWluOwor6Jm55qmL5qmf5aC0IDwgaG9uZ3FpYW9cLWFpcnBvcnRcLVwoaW5cLXNoYW5naGFpXCk7CivntbHkuIDmi5vnlJ8gPCBuYXRpb25hbFwtdW5pZmllZFwtZW50cmFuY2VcLWV4YW07CivnpLrlqIEgPCBob2xkXC1hXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+adsemDqOaZgumWkyA8IFwodVwuc1wuXClcLWVhc3Rlcm5cLVwoc3RhbmRhcmRcKVwtdGltZTsKK+eVtuS6i+S6uiA8IHBlcnNvbnNcLWludm9sdmVkXC1vclwtaW1wbGljYXRlZDsKK+aZguWkp+aZguWwjyA8IHNvbWV0aW1lc1wtYmlnXCxcLXNvbWV0aW1lc1wtc21hbGw7CivluLjopo/pioXpm7voqbHnt5ogPCBvcmRpbmFyeVwtY29wcGVyXC10ZWxlcGhvbmVcLWxpbmU7Civov6YgPCBjaGFyYWN0ZXJcLWZvclwtdHJhbnNsaXRlcmF0aW9uOwor5bq1IDwgYnVkZGhpc3RcLW1vbmFzdGVyeVwtb3JcLW51bm5lcnk7CivlupogPCBzZXZlbnRoXC1vZlwtdGVuXC1jeWNsaWNhbFwtc3RlbXM7CivotqMgPCB3aGF0XC1hdHRyYWN0c1wtb25lJydzXC1hdHRlbnRpb247CivnlZQgPCBib3VuZGFyeVwtcGF0aFwtZGl2aWRpbmdcLWZpZWxkczsKK+WkviA8IGJlXC13ZWRnZWRcLW9yXC1pbnNlcnRlZFwtYmV0d2VlbjsKK+i+hiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor5oCUIDwgYVwtZGlzZWFzZVwtcmVzZW1ibGluZ1wtbmV1cm9zaXM7CivpmYwgPCBmb290XC1wYXRoXC1iZXR3ZWVuXC1yaWNlXC1maWVsZHM7CivpqoYgPCBhXC13aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor5qWjIDwgY3Jvc3NiZWFtXC1hYm92ZVwtb3JcLXVuZGVyXC1nYXRlOwor55KnIDwgcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtaXQ7CivohrsgPCByYW5rXC1vZG9yXC1cKG9mXC1zaGVlcFwtb3JcLWdvYXRzXCk7CivnjpEgPCBwZWFybFwtdGhhdFwtaXNcLW5vdFwtcXVpdGVcLXJvdW5kOwor5ZSiIDwgZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpYIgPCBhXC1yYWZ0XC5cLXRvXC1oZXdcLlwtdG9cLWZlbGxcLXRyZWVzOwor54qSIDwgZW50ZXJ0YWluXC12aWN0b3Jpb3VzXC1zb2xkaWVyczsKK+efjSA8IGxvb2tcLWFib3V0XC1pblwtZnJpZ2h0XC1vclwtYWxhcm07Civmk6QgPCB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC1maW5nZXJzOwor6IqhIDwgcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJsaWx5Owor57G8IDwgbm9uXC1nbHV0aW5vdXNcLWxvbmdcLWdyYWluXC1yaWNlOwor5qGhIDwgYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+m7uyA8IHNwZWNpYWxcLXBhdHRlcm5cLW9mXC1lbWJyb2lkZXJ5Owor5bWdIDwgZ291bG91XC1tb3VudGFpblwtcGVha1wtaW5cLWh1bmFuOwor5Z6tIDwgY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor56GWIDwgXDxhcmNoXD5cLXRvd25cLWluXC1oZWJlaVwtcHJvdmluY2U7CivpgqEgPCBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaWNodWFuOwor6K6gIDwgc2ltcGxpZmllZFwta2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivlmbsgPCBjaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eWrCA8IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor6JSfIDwgZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor5Z6nIDwgdmFyaWFibGVcLXVuaXRcLW9mXC1sYW5kXC1tZWFzdXJlOwor6ayPIDwgYVwtY29pZmZ1cmVcLW9uXC10b3BcLW9mXC10aGVcLWhlYWQ7CivnrZggPCBcKGFcLW1lYXN1cmVcLW9mXC13aWR0aFwtb2ZcLWNsb3RoXCk7CivnvJEgPCBjb3JkXC1iaW5kaW5nXC1vblwtaGlsdFwtb2ZcLXN3b3JkOwor57CWIDwgYmFtYm9vXC10cmFwXC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5bqLIDwgYVwtY3VwYm9hcmRcLW9yXC1wYW50cnlcLXRvXC1zdG9yZTsKK+eUjSA8IHJhZnRlcnNcLXN1cHBvcnRpbmdcLXJvb2ZcLXRpbGVzOwor5ZCD5YiAIDwgcGVuZXRyYXRpb25cLW9mXC1hXC1jdXR0aW5nXC10b29sOwor5ZCE5L2NIDwgZXZlcnlib2R5XC1cKGFcLXRlcm1cLW9mXC1hZGRyZXNzXCk7Civpn5PlnJMgPCBrb3JlYW5cLXdvblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+S4jei+reiAjOWIpSA8IGxlYXZlXC13aXRob3V0XC1zYXlpbmdcLWdvb2RcLWJ5ZTsKK+eZvuiBveS4jeWOrSA8IHdvcnRoXC1oZWFyaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+S9jumajuiqnuiogCA8IGxvd1wtbGV2ZWxcLVwoY29tcHV0ZXJcKVwtbGFuZ3VhZ2U7CivkuI3otrPngrroqJMgPCBub3RcLXRvXC1iZVwtdGFrZW5cLWFzXC1hblwtZXhhbXBsZTsKK+WgseekviA8IGdlbmVyYWxcLW9mZmljZVwtb2ZcLWFcLW5ld3NwYXBlcjsKK+eZvOi3oSA8IHRvXC1yaXNlXC10b1wtcG93ZXJcLWFuZFwtcG9zaXRpb247CivmlK/mj7QgPCBwcm92aWRlXC1hc3Npc3RhbmNlXC1vclwtYmFja2luZzsKK+ingOa4rCA8IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtb2JzZXJ2YXRpb247CivpgZXlv4MgPCBhZ2FpbnN0XC1vbmVzXC13aWxsXC1vclwtZmVlbGluZ3M7Civpp7kgPCBibGFja1wtaG9yc2VcLXdpdGhcLWFcLXdoaXRlXC1mYWNlOwor6aWOIDwgd2luZVwtYW5kXC1mb29kXC1lYXRlblwtd2l0aFwtd2luZTsKK+WQjOatpeaVuOS9jemajuWxpCA8IHN5bmNocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7Civmi7zpn7MgPCBwaW55aW5cLVwoY2hpbmVzZVwtcm9tYW5pemF0aW9uXCk7CivlpKflkLnlpKfmk4IgPCBtYWtlXC1hblwtZXhoaWJpdGlvblwtb2ZcLW9uZXNlbGY7Civph4QgPCB3aW5lXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YeBIDwgc21lYXJcLXdpdGhcLWJsb29kXC1pblwtc2FjcmlmaWNlOwor5aKD5aSWIDwgb3V0c2lkZVwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7CivkuIrmtbfmiLLlioflrbjpmaIgPCBzaGFuZ2hhaVwtdGhlYXRyaWNhbFwtaW5zdGl0dXRlOwor6L+nIDwgYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lXC1hcnJhbmdlOwor6L2YIDwgdGVhclwtYXN1bmRlclwtYmV0d2VlblwtY2hhcmlvdHM7CivovJkgPCBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdlcmVcLXdlYXBvbnM7Civmi4zpnaIgPCBub29kbGVzXC1zZXJ2ZWRcLXdpdGhcLXNveVwtc2F1Y2U7Civnm7TmjqUgPCBkaXJlY3RcLVwob3Bwb3NpdGVcLW9mXC1pbmRpcmVjdFwpOwor6KmAIDwgZ2FycnVsb3VzXC10b1wtd2hpc3BlclwuXC10b1wtam9rZTsKK+iouSA8IHRvXC1iZWd1aWxlXC13aXRoXC1mYWxzZVwtc3RvcmllczsKK+iXiiA8IGFcLWtpbmRcLW9mXC1iZWFuXC13aXRoXC1mbGF0XC1wb2RzOwor5a6J5LmL6Iul57SgIDwgYmVhclwtaGFyZHNoaXBcLXdpdGhcLWVxdWFuaW1pdHk7CivoiKAgPCBsb25nXC1uYXJyb3dcLWtuaWZlXC1zaGFwZWRcLWJvYXQ7Civpj6HpoK0gPCBjYW1lcmFcLXNob3RcLVwoaW5cLWFcLW1vdmllXCxcLWV0Y1wpOwor57+jIDwgZmVhdGhlcnNcLXVzZWRcLWRlY29yYXRlXC1jb2ZmaW47CivojqvkuI0gPCB0aGVyZVwtaXNcLW5vXC1vbmVcLVwod2hvXC1kb2VzbicndFwpOwor6YCB5Lq6IDwgdG9cLXNlZVwtXChvclwtd2Fsa1wpXC1zb21lb25lXC1ob21lOwor55m95paHIDwgdGhlXC10ZXh0XC1vZlwtYW5cLWFubm90YXRlZFwtYm9vazsKK+e4kyA8IG9yYW5nZVwtb3JcLXJlZGRpc2hcLXllbGxvd1wtc2lsazsKK+ilv+WTiOWKquWFiyA8IFwoa2luZ1wpXC1zaWhhbm91a1wtXChvZlwtY2FtYm9kaWFcKTsKK+Wwh+mgmCA8IGhpZ2hcLXJhbmtpbmdcLW1pbGl0YXJ5XC1vZmZpY2VyOwor5q665Lq65qGI5Lu2IDwgXChjYXNlXC1vZlwsXC1pbmNpZGVudFwtb2ZcKVwtbXVyZGVyOwor57OPIDwgcmljZVwtZ3JpdHNcLWxlZnRcLWFmdGVyXC1odWxsaW5nOwor56+YIDwgYVwtdXRlbnNpbFwtdXNlZFwtdG9cLWZpbHRlclwtd2luZTsKK+e0hee2oOeHiCA8IFwocmVkXC1hbmRcLWdyZWVuXClcLXRyYWZmaWNcLWxpZ2h0Owor5o6M5qyKIDwgd2llbGRcLVwocG9saXRpY2FsXCxcLWV0Y1wuXClcLXBvd2VyOwor5L+D6YCyIDwgdG9cLXByb21vdGVcLVwoYW5cLWlkZWFcLW9yXC1jYXVzZVwpOwor55+wIDwgYXJyb3dcLXdpdGhcLWF0dGFjaGVkXC1zaWxrXC1jb3JkOwor5YWs5a6JIDwgXChtaW5pc3RyeVwtb2ZcKVwtcHVibGljXC1zZWN1cml0eTsKK+eOgyA8IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd1wuXC1jaGluYTsKK+eMhyA8IHRoZVwtc2NyZWFtXC1vclwtcm9hclwtb2ZcLWFcLXRpZ2VyOwor54m4IDwgdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzOwor6IOM6YGT6ICM6aazIDwgcnVuXC1pblwtdGhlXC1vcHBvc2l0ZVwtZGlyZWN0aW9uOwor5ruZIDwgd2F0ZXJzXC1jb252ZXJnaW5nXC10b1wtb25lXC1zcG90Owor5YKz6Ly45o6n5Yi25Y2U5a6aIDwgdHJhbnNtaXNzaW9uXC1jb250cm9sXC1wcm90b2NvbDsKK+eXheaguSA8IGFuXC1pbmNvbXBsZXRlbHlcLWN1cmVkXC1pbGxuZXNzOwor6KOc5aCxIDwgbWFrZVwtYVwtcmVwb3J0XC1hZnRlclwtdGhlXC1ldmVudDsKK+mHjeikh+evgCA8IHJlcGVhdGVkXC1zZWdtZW50XC1cKG5ldHdvcmtpbmdcKTsKK+akiiA8IHRvXC1maXRcLWFcLWhhbmRsZVwtaW50b1wtYVwtc29ja2V0Owor5LiN5ZCN5LiA5paHIDwgd2l0aG91dFwtYVwtcGVubnlcLXRvXC1vbmUnJ3NcLW5hbWU7CivkuI3nhKHlsI/oo5wgPCBub3RcLWJlXC13aXRob3V0XC1zb21lXC1hZHZhbnRhZ2U7CivlsI3oh7ogPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC10YWl3YW47Civmnb/pvJMgPCBhXC1zbWFsbFwtZHJ1bVwtZm9yXC1tYXJraW5nXC10aW1lOwor5pqQIDwgdGhlXC1icmlnaHRcLXNoaW5pbmdcLW9mXC10aGVcLXN1bjsKK+aYsyA8IHRoZVwtZGVjbGluaW5nXC1zdW5cLWluXC10aGVcLXdlc3Q7CivnibnliKXooYzmlL/ljYAgPCBzcGVjaWFsXC1hZG1pbmlzdHJhdGl2ZVwtcmVnaW9uOwor6LSF6L+wIDwgdG9cLXNheVwtbW9yZVwtdGhhblwtaXNcLW5lY2Vzc2FyeTsKK+aNrCA8IHByZXNzXC1kb3duXC1oZWF2aWx5XC13aXRoXC1oYW5kczsKK+aKlCA8IHRha2VcLW9yXC1ob2xkXC11cFwtaW5cLWJvdGhcLWhhbmRzOwor5a+m6IKYIDwgZnVsbFwtYXJtXC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7Civmt5jph5EgPCBwYW5uaW5nXC1cKGZvclwtcHJlY2lvdXNcLW1ldGFsc1wpOwor5bS+IDwgcGxhY2VcLW5hbWVcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5bOrIDwgbW91bnRhaW5cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civlp4UgPCB3b21hblwtYXRcLXRpbWVcLW9mXC1tZW5zdHJ1YXRpb247Civlo7wgPCBwYWxhY2VcLWNvcnJpZG9yXC1vclwtcGFzc2FnZXdheTsKK+WjjSA8IG1vYXRcLWFyb3VuZFwtYVwtY2l0eVwuXC1hXC1jaGFubmVsOwor5Yqg5by3566h5Yi2IDwgdG9cLXRpZ2h0ZW5cLWNvbnRyb2xcLVwob3Zlclwtc3RoXCk7CivllakgPCBwYXJ0aWNsZVwtaW1wbHlpbmdcLXByb2JhYmlsaXR5Owor5Y+QIDwgdG9cLXByaWNrXC1hXC1kb2dcLXRvXC1tYWtlXC1oaW1cLWdvOwor5Y2QIDwgc3dhc3Rpa2FcLWZvdXJ0aFwtb2ZcLWF1c3BpY2lvdXM7CivmiIjniL4gPCBcKGFsXClcLWdvcmVcLVwodXNcLXZpY2VcLXByZXNpZGVudFwpOwor5LaVIDwgaXJyZWd1bGFyXC1hbmRcLXByb21pbmVudFwtdGVldGg7CivktZggPCBkb3NlbicndFwtdFwtc3RpY2tcLXRvXC1lYWNoXC1vdGhlcjsKK+SytSA8IGFcLWdlbmVyYWxcLW5hbWVcLW9mXC1zbWFsbFwtYmlyZHM7CivkuoLoqqogPCB0b1wtbWFrZVwtaXJyZXNwb25zaWJsZVwtcmVtYXJrczsKK+SvhiA8IHNtYWxsXC1hbmRcLXRoaW5cLXBpZWNlXC1vZlwtYm9uZXM7CivkurrmsJHml6XloLEgPCByZW5taW5cLXJpYmFvXC1cKHBlb3BsZScnc1wtZGFpbHlcKTsKK+SrsiA8IHRoaW5cLWFuZFwtc2lja2x5XC1pblwtYXBwZWFyYW5jZTsKK+SrpCA8IGJldHdlZW5cLXRoZVwtZXllYnJvd3NcLWFuZFwtZXllczsKK+SroSA8IGFcLWxvbmdcLXNoYXBlXC1vZlwtaGVhZFwtYW5kXC1mYWNlOwor5KuLIDwgZmVtYWxlXC1hdHRlbmRhbnRzXC1vclwtc2VydmFudHM7Civplovlp4vku6XliY0gPCBiZWZvcmVcLXRoZVwtYmVnaW5uaW5nXC1cKG9mXC1zdGhcKTsKK+SnkCA8IGFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+SloyA8IGFuXC1pbnN0cnVtZW50XC1mb3JcLWJvcmluZ1wtd29vZDsKK+SliSA8IHRoZVwtY3VydmVkXC1pcm9uXC1wYXJ0XC1vZlwtYVwtaG9lOwor5KSSIDwgd2luZVwtbWFkZVwtZnJvbVwtZ2x1dGlub3VzXC1yaWNlOwor5KSNIDwgcm90dGVuXC1wYXN0ZVwtb3JcLXNveWJlYW5cLXNhdWNlOwor5LiN6K2Y5aSn6auUIDwgZmFpbFwtdG9cLXNlZVwtdGhlXC1sYXJnZXJcLWlzc3VlczsKK+SgvSA8IGhlaWdodFwtb3JcLXN0YXR1cmVcLW9mXC1hXC1wZXJzb247CivkoLEgPCB0b1wtd2Fsa1wtc2xvd2x5XC1hbmRcLWNhdXRpb3VzbHk7Civkn6cgPCBzb3VuZFwtb2ZcLXRyZWFkaW5nXC1vclwtc3RlcHBpbmc7CivknocgPCBnaWZ0c1wtdG9cLXN1cGVyaW9yc1wtb3JcLWZyaWVuZHM7Civknb0gPCBuYW1lXC1vZlwtYVwtcGVyc29uXC1pblwtb2xkXC1jaGluYTsKK+WFteW3peW7oCA8IG11bml0aW9uc1wtb3JcLW9yZG5hbmNlXC1mYWN0b3J5Owor5J2ZIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivknIggPCB0b1wtc3BlYWtcLW9uXC1iZWhhbGZcLW9mXC1hbm90aGVyOwor5JizIDwgYVwtZ2FybWVudFwtb2ZcLXNpbmdsZVwtdGhpY2tuZXNzOwor5I+8IDwgd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2Q7CivkuI3miZPoh6rmi5sgPCBjb25mZXNzXC13aXRob3V0XC1iZWluZ1wtcHJlc3NlZDsKK+SOoiA8IHRvXC1tZWFzdXJlXC1ieVwtcGludHNcLWFuZFwtcGVja3M7CivkjpEgPCBmbHlpbmdcLW92ZXJcLXRoZVwtd2F0ZXJcLXN1cmZhY2U7Civkja4gPCB5b3VuZ1wtZ29hdFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2CIDwgdG9vbHNcLXRvXC1kcmF3XC13YXRlclwtb3JcLWxpcXVpZDsKK+SMvyA8IHRoZVwtYnJlYWR0aFwtb2ZcLWNsb3RoXC1vclwtcGFwZXI7CivkjJcgPCB0aGVcLWxlZnRcLW92ZXJcLW9mXC1kcmF3aW5nXC1zaWxrOwor5IyIIDwgdG9cLWdldFwtc29tZXRoaW5nXC13aXRoXC1hXC1sYXNzbzsKK+S4gOiIieWFqeW+lyA8IGtpbGxcLXR3b1wtYmlyZHNcLXdpdGhcLW9uZVwtc3RvbmU7CivkuI3ou4wgPCBhZ2FpbnN0XC10aGVcLWxhd1wtb3JcLWRpc2NpcGxpbmU7CivkiaUgPCBhXC1zbWFsbFwtYmFza2V0XC1mb3JcLWNob3BzdGlja3M7CivljYrouqvlg48gPCBoYWxmXC1sZW5ndGhcLXBob3RvXC1vclwtcG9ydHJhaXQ7CivkhrogPCB3aGlybGluZ1wtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivkhaIgPCBtYXR1cmVcLW9yXC1yaXBlblwtb2ZcLXRoZVwtZ3JhaW5zOwor5L+d5ZWGIDwgcHJlc2VydmF0aW9uXC1vZlwtc29pbFwtbW9pc3R1cmU7Civjv7YgPCB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZVwtb3JcLWd1dHRlcjsKK+O9sCA8IGNhcnZlZFwtd2luZG93XC1mcmFtZVwtb25cLWFcLWRvb3I7CivkvZzmiLAgPCBjb25kdWN0XC1cKG1pbGl0YXJ5XC1vcGVyYXRpb25zXCk7CivjuYIgPCB1bnRhbWVkXC1hbmRcLWluZG9jaWxpdHlcLWNhdHRsZTsKK+O0hCA8IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWluXC1hXC10dXJuZWQ7CivkuJbooYwgPCBcW2FiYnJldmlhdGlvblwtZm9yXF1cLXdvcmxkXC1iYW5rOwor47CJIDwgdGhlXC1oYXplbFwtbnV0XC1vclwtZmlsYmVydFwtdHJlZTsKK+S4reiPryA8IGNoaW5hXC1cKGFsdGVybmF0ZVwtZm9ybWFsXC1uYW1lXCk7CivjrZ8gPCB0b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civjq5AgPCBkaXN0YW50XC1hbmRcLWluZGlzdGluZ3Vpc2hhYmxlOwor46G7IDwgbmFtZVwtb2ZcLWFcLXNtYWxsXC1hbmNpZW50XC1zdGF0ZTsKK+S+teWFpSA8IHRvXC1tYWtlXC1cKG1pbGl0YXJ5XClcLWluY3Vyc2lvbnM7CivnkIPmqq8gPCB0YWJsZVwtXChmb3JcLWdhbWVzXC11c2luZ1wtYmFsbHNcKTsKK+ObkCA8IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyJydzXC1icm90aGVyOwor45qGIDwgdG9cLWRvXC1zb21ldGhpbmdcLWluXC1hblwtb2xkXC13YXk7Civjlp8gPCB0b1wtZGVsaXZlclwtb3ZlclwtdG9cLXBlcnNvbmFsbHk7CivkuIvoh7ogPCBzdGVwXC1kb3duXC1cKGZyb21cLW9mZmljZVwsXC1ldGNcLlwpOwor6LKq5rGhIDwgXChwb2xpdGljYWxcLFwtbW9yYWxcKVwtY29ycnVwdGlvbjsKK+S4ree0miA8IG1pZGRsZVwtbGV2ZWxcLVwoaW5cLWFcLWhpZXJhcmNoeVwpOwor5pyJ55qEIDwgXCh0aGVyZVwtYXJlXClcLXNvbWVcLVwod2hvXC1hcmVcLlwuXC5cKTsKK+iTi+mjryA8IHJpY2VcLXdpdGhcLW1lYXRcLWFuZFwtdmVnaXRhYmxlczsKK+S4jemAn+S5i+WuoiA8IHVuaW52aXRlZFwtb3JcLXVuZXhwZWN0ZWRcLWd1ZXN0Owor5LiL54+tIDwgdG9cLWNvbWVcLW9yXC1nb1wtb3JcLWdldFwtb2ZmXC13b3JrOwor55m86Zu76YePIDwgXChnZW5lcmF0ZWRcKVwtZWxlY3RyaWNhbFwtZW5lcmd5Owor5LiN5b6X6KaB6aCYIDwgZmFpbFwtdG9cLWdyYXNwXC10aGVcLW1haW5cLXBvaW50czsKK+WMhemKtyA8IGhhdmVcLWV4Y2x1c2l2ZVwtc2VsbGluZ1wtcmlnaHRzOwor6YCy6KGM6Kq/5p+lIDwgdG9cLWNhcnJ5XC1vdXRcLWFuXC1pbnZlc3RpZ2F0aW9uOwor6K6T55CDIDwgdG9cLWNvbmNlZGVcLXBvaW50c1wtXChpblwtYVwtZ2FtZVwpOwor5pu45oi/IDwgc3R1ZHlcLVwoaVwuZVwuXC10aGVcLWtpbmRcLW9mXC1yb29tXCk7CivpgJrnlKjos4fmupDorZjliKXomZ8gPCB1bml2ZXJzYWxcLXJlc291cmNlXC1pZGVudGlmaWVyOwor6KqN6K2YIDwgYmVcLWFjcXVhaW50ZWRcLXdpdGhcLVwoYVwtcGVyc29uXCk7Civljbvnl4UgPCB0b1wtcHJldmVudFwtb3JcLXRyZWF0XC1hXC1kaXNlYXNlOwor6YGy6YGyIDwgXChiZVwpXC1sYXRlXC1cKHdpdGhcLWFcLXRhc2tcLFwtZXRjXC5cKTsKK+Wkp+ihl+Wwj+W3tyA8IGxhcmdlXC1zdHJlZXRzXC1hbmRcLXNtYWxsXC1sYW5lczsKK/CggIUgPCBhblwtYWx0ZXJuYXRlXC1mb3JtXC1vZlwtdVwrNGVhNVwt5LqlOwor5b6354+tIDwgZHVyYmFuXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7Civkv53lronml48gPCB0aGVcLWJhb2FuXC1cKHBhb2FuXClcLW5hdGlvbmFsaXR5Owor5pO66LyqIDwgYmFsYW5jZVwtXChvZlwtYVwtd2F0Y2hcLW9yXC1jbG9ja1wpOwor5pO66KitIDwgZnVybmlzaFwtYW5kXC1kZWNvcmF0ZVwtXChhXC1yb29tXCk7CivmsZ/mvqTmsJEgPCBqaWFuZ1wtemVtaW5cLVwoY2hpbmVzZVwtcHJlbWllclwpOwor54ax57eaIDwgaG90bGluZVwtXChjb21tdW5pY2F0aW9uc1wtbGlua1wpOwor5rOV5Yi2IDwgbGVnYWxcLXN5c3RlbVwtYW5kXC1pbnN0aXR1dGlvbnM7Civku7YgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1hcnRpY2xlOwor5ZCXIDwgZmluYWxcLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6bq9IDwgaW50ZXJyb2dhdGl2ZVwtZmluYWxcLXBhcnRpY2xlOwor55+jIDwgcGFydGljbGVcLW9mXC1jb21wbGV0ZWRcLWFjdGlvbjsKK+S5kiA8IHVzZWRcLXdpdGhcLXBvbmdcLWZvclwtcGluZ1wtcG9uZzsKK+S5kyA8IHVzZWRcLXdpdGhcLXBpbmdcLWZvclwtcGluZ1wtcG9uZzsKK+WSmiA8IHVzZWRcLWFzXC1kZXNjcmlwdGlvblwtb2ZcLXNvdW5kOwor55CFIDwgYVwtdmFyaWV0eVwtb2ZcLXdoaXRlXC1jYXJuZWxpYW47CivlrbAgPCB3aG9cP1wtd2hpY2hcP1wtd2hhdFw/XC13aGljaFwtb25lXD87CivmiIogPCBmaWZ0aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+a4siA8IGFkZFwtcmVwZWF0ZWRcLXdhc2hlc1wtb2ZcLWNvbG9yOwor5ZKrIDwgZm9vdFwtbWVhc3VyZVwtb2ZcLXpob3VcLWR5bmFzdHk7CivppbcgPCByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+axtiA8IGFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5Y+BIDwgYmFua1wtZm9ybVwtb2ZcLW51bWVyYWxcLScndGhyZWUnJzsKK+WjrCA8IG5pbnRoXC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5p+pIDwgY29mZmluXC13aGljaFwtY29udGFpbnNcLWNvcnBzZTsKK+ahoCA8IHRoZVwtZm9ya2luZ1wtYnJhbmNoXC1vZlwtYVwtdHJlZTsKK+eUjyA8IGFcLXNxdWF0XC1qYXJcLWZvclwtaG9sZGluZ1wtd2luZTsKK+esniA8IGJhbWJvb1wtcm9kXC11c2VkXC1mb3JcLWJlYXRpbmdzOwor6ZiXIDwgYVwtcGxhY2VcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7Civpk4kgPCBkZXZpY2VcLWZvclwtY2FycnlpbmdcLWFcLXRyaXBvZDsKK+inpSA8IGFcLWN1cFwtbWFkZVwtb2ZcLWhvcm5cLW9ic3RpbmF0ZTsKK+ijoyA8IGRyYXdcLW9uZScnc1wtaGFuZHNcLWludG9cLXNsZWV2ZTsKK+W0gyA8IG1vdW50YWluXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivnvZggPCBzY3JlZW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+awhyA8IHRoaWNrXC1yb3VnaFwtc2VyZ2VcLWZyb21cLXRpYmV0Owor5Z+0IDwgc29pbFwtd2l0aFwtbGFyZ2VcLWNsYXlcLWNvbnRlbnQ7CivmmLQgPCBvbmVcLW9mXC10aGVcLTI4XC1jb25zdGVsbGF0aW9uczsKK+iPuSA8IHNhbHRlZFwtb3JcLXBpY2tsZWRcLXZlZ2V0YWJsZXM7CivlkITlpKfou43ljYAgPCBcInRoZVwtZ3JlYXRlclwtbWlsaXRhcnlcLWFyZWFzXCI7CivmsLTlubMgPCBsZXZlbFwtXChvZlwtYWNoaWV2ZW1lbnRcLFwtZXRjXC5cKTsKK+Wkq+asiiA8IGF1dGhvcml0eVwtb3ZlclwtdGhlXC1ob3VzZWhvbGQ7CivljbDlsLwgPCBcKGFiYnJldmlhdGlvblwtZm9yXClcLWluZG9uZXNpYTsKK+iuiuWDuSA8IGFwcHJhaXNlXC1hdFwtdGhlXC1jdXJyZW50XC1yYXRlOwor5bm05aSc6aOvIDwgbmV3XC15ZWFyJydzXC1ldmVcLWZhbWlseVwtZGlubmVyOwor5aa55aSrIDwgYnJvdGhlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpgLLogIwgPCBhbmRcLXRoZW5cLVwod2hhdFwtZm9sbG93c1wtbmV4dFwpOwor5p2O55m76LydIDwgbGVlXC10ZW5nXC1odWlcLVwodGFpd2FuXC1sZWFkZXJcKTsKK+mZo+e3miA8IGFcLWZyb250XC1cKGllXCxcLW1pbGl0YW50XC1ncm91cFwpOwor5ZG857Gy576O5ZyLIDwgdG9cLWNhbGxcLW9uXC10aGVcLXVuaXRlZFwtc3RhdGVzOwor5YKz57Wx5Lit5ZyL6Yar6JelIDwgY2hpbmVzZVwtdHJhZGl0aW9uYWxcLW1lZGljaW5lOwor5q2y5pyIIDwgdGhlXC15ZWFyc1wtb2ZcLWFcLXBlcnNvbicnc1wtbGlmZTsKK+ixkOiho+i2s+mjnyA8IGhhdmVcLWFtcGxlXC1mb29kXC1hbmRcLWNsb3RoaW5nOwor5LiN55+l5aW95q25IDwgbm90XC1rbm93XC13aGF0JydzXC1nb29kXC1mb3JcLW9uZTsKK+atuOWxrCA8IGJlXC11bmRlclwtdGhlXC1qdXJpc2RpY3Rpb25cLW9mOwor5Zyo6YeOIDwgYmVcLW91dFwtb2ZcLVwocG9saXRpY2FsXClcLW9mZmljZTsKK+W7oOaIvyA8IGFcLWJ1aWxkaW5nXC11c2VkXC1hc1wtYVwtZmFjdG9yeTsKK+WIpOaxuiA8IGp1ZGdtZW50XC1cKGJ5XC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor5Zuw6ZujIDwgXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtZGlmZmljdWx0eTsKK+m1rSA8IGFcLXNtYWxsXC1iaXJkXC13aXRoXC1ibGFja1wtbmVjazsKK+Wkp+iHqueEtiA8IG5hdHVyZVwtXChhc1wtaW5cLW1vdGhlclwtbmF0dXJlXCk7CivntrLnrqHmjqXlj6MgPCBuZXR3b3JrXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivpmpIgPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpbjsKK+aOm+iZnyA8IHRvXC1yZWdpc3RlclwtXChhXC1sZXR0ZXJcLFwtZXRjXC5cKTsKK+ijnOiLlyA8IGZpbGxcLXRoZVwtZ2Fwc1wtd2l0aFwtc2VlZGxpbmdzOwor5qC55pOa5LiK6KGoIDwgYWNjb3JkaW5nXC10b1wtdGhlXC1hYm92ZVwtdGFibGU7CivmrablipsgPCBcKG1ha2VcLXVzZVwtb2ZcKVwtbWlsaXRhcnlcLWZvcmNlOwor5pS+5YGHIDwgdG9cLWhhdmVcLWFcLWhvbGlkeVwtb3JcLXZhY2F0aW9uOwor6YaBIDwgYVwta2luZFwtb2ZcLWdyZWVuXC1jb2xvcmVkXC13aW5lOwor6IiJ6YeNIDwgXCh0aGVcLXNwb3J0XC1vZlwpXC13ZWlnaHRsaWZ0aW5nOwor6YK/IDwgYVwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivovZYgPCBmcmFtZXdvcmtcLW9mXC1sYXR0aWNlXC1vblwtY2FydDsKK+WatOipniA8IFwoY3JpdGljaXplXCxcLWV0Y1wuXClcLWZvcmNlZnVsbHk7Civop7UgPCBhXC1jdXBcLW1hZGVcLW9mXC1jb3JuXC1vYnN0aW5hdGU7Civoj6/nm5vpoJPmmYLloLEgPCB3YXNoaW5ndG9uXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+Wig+WFpyA8IHdpdGhpblwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7Civoj6/kurogPCBldGhuaWNcLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5qmL5pysIDwgXChqYXBhbmVzZVwtc3VybmFtZVwpXC1oYXNoaW1vdG87CivlnLDnmq4gPCBsb3RcLFwtc2VjdGlvblwtb2ZcLWxhbmRcLFwtZ3JvdW5kOwor56uL5pa557GzIDwgY3ViaWNcLW1ldGVyXC1cKHVuaXRcLW9mXC12b2x1bWVcKTsKK+i9ieapnyA8IFwodGFrZVwtYVwpXC10dXJuXC1mb3JcLXRoZVwtYmV0dGVyOwor5Zu65a6a6Jmb5pOs6YCj5o6lIDwgcGVybWFuZW50XC12aXJ0dWFsXC1jb25uZWN0aW9uOwor5bi45aeUIDwgbWVtYmVyXC1vZlwtc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+WQg+S4jea2iCA8IGJlXC11bmFibGVcLXRvXC1zdGFuZFwtXChleGVydGlvbjsKK+aKleelqOermSA8IHBvbGxpbmdcLXN0YXRpb25cLVwoZm9yXC1hXC12b3RlXCk7CivogIcgPCB3cmlua2xlZFwtZmFjZVwtb2ZcLXRoZVwtZWxkZXJseTsKK+e+tCA8IHJhbmtcLW9kb3VyXC1vZlwtc2hlZXBcLW9yXC1nb2F0czsKK+W+l+elqOeOhyA8IHBlcmNlbnRhZ2VcLW9mXC12b3Rlc1wtb2J0YWluZWQ7CivntYMgPCBzdHJpbmdcLW9uXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5ZyL6Ziy5Yip55uKIDwgXChuYXRpb25hbFwpXC1kZWZlbmNlXC1pbnRlcmVzdHM7CivplovmlL7ns7vntbHkupLpgKMgPCBvcGVuXC1zeXN0ZW1zXC1pbnRlcmNvbm5lY3Rpb247CivnrbsgPCBwbGFjZVwtbmFtZVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+ermiA8IHN0YW5kXC1hbmRcLXdhaXRcLWZvclwtbG9uZ1wtdGltZTsKK+i1t+mjmyA8IHRvXC10YWtlXC1vZmZcLVwoaW5cLWFuXC1haXJwbGFuZVwpOwor6ZaL5bmVIDwgdG9cLW9wZW5cLVwoYVwtY29uZmVyZW5jZVwsXC1lXC5nXC5cKTsKK+aJk+mHnSA8IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWluamVjdGlvbjsKK+edmSA8IHRvXC1yb2xsXC10aGVcLWV5ZWJhbGxzXC10b1wtbG9vazsKK+eRgiA8IFwoc3RvbmVcLXdoaWNoXC1yZXNlbWJsZXNcLWphZGVcKTsKK+acrOacq+WAkue9riA8IHRha2VcLXRoZVwtYnJhbmNoXC1mb3JcLXRoZVwtcm9vdDsKK+eHuiA8IHRoZVwtZHJ5XC1hdFwtdGhlXC1maXJlXC10b1wtcm9hc3Q7CivngJQgPCByaXZlclwtbmFtZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+aKsemgreeXm+WTrSA8IGNyeVwtb25cLWVhY2hcLW90aGVyJydzXC1zaG91bGRlcjsKK+axpyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5nZG9uZzsKK+eSp+isnSA8IGRlY2xpbmVcLVwoYVwtZ2lmdFwpXC13aXRoXC10aGFua3M7CivmqbUgPCB3b29kXC1wbGFjZWRcLXVuZGVyXC1yb29mXC10aWxlczsKK+WwjeiPryA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWNoaW5hOwor5LiN5LiA6ICM6LazIDwgYnlcLW5vXC1tZWFuc1wtYW5cLWlzb2xhdGVkXC1jYXNlOwor5puIIDwgdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VucmlzZTsKK+aXnyA8IGFuXC1taWxpdGFyeVwtZmxhZ1wtb2FcLXN0YW5kYXJkOwor5YSA5ZmoIDwgXChzY2llbnRpZmljXCxcLWV0Y1wpXC1pbnN0cnVtZW50Owor5Y6f5a2Q56eR5a245a626YCa5aCxIDwgam91cm5hbFwtb2ZcLWF0b21pY1wtc2NpZW50aXN0czsKK+eptui+piA8IHRvXC1pbnZlc3RpZ2F0ZVwtYW5kXC1kZWFsXC13aXRoOwor5ZCD5LiN5L2PIDwgYmVcLXVuYWJsZVwtdG9cLWJlYXJcLW9yXC1zdXBwb3J0Owor5omoIDwgcGlja1wtdXBcLXdpdGhcLWZvcmtcLW9yXC1waW5jZXJzOwor5bmwIDwgY3VydGFpblwtYXRcLWZyb250XC1vZlwtY2FycmlhZ2U7CivlqIAgPCBuYW1lXC1vZlwtYVwtY29uY3ViaW5lXC1vZlwtZGlcLWt1Owor55m957SZ6buR5a2XIDwgXCh3cml0dGVuXClcLWluXC1ibGFja1wtYW5kXC13aGl0ZTsKK+WfhCA8IHdoaXJsaW5nXC1vZlwtZHVzdFwtaW5cLXRoZVwtd2luZDsKK+Wumue9qiA8IGNvbnZpY3RcLVwoc29tZW9uZVwtb2ZcLWFcLWNyaW1lXCk7CivmnKzpoYwgPCB0aGVcLXN1YmplY3RcLXVuZGVyXC1kaXNjdXNzaW9uOwor6IOM57CNIDwgYVwtYmFza2V0XC1jYXJyaWVkXC1vblwtdGhlXC1iYWNrOwor5YyX5Lqs6Jed6KGT5a246ZmiIDwgYmVpamluZ1wtYWNhZGVteVwtb2ZcLWZpbmVcLWFydHM7CivkuI3noo7njrvnkoMgPCBzaGF0dGVycHJvb2ZcLW9yXC1zYWZldHlcLWdsYXNzOwor5pyJ6ZecIDwgdG9cLWhhdmVcLXNvbWV0aGluZ1wtdG9cLWRvXC13aXRoOwor5L6G5rqQIDwgc291cmNlXC1cKG9mXC1pbmZvcm1hdGlvblwsXC1ldGNcKTsKK+S1oCA8IHJ1c2hlc1wtdXNlZFwtZm9ybVwtbWFraW5nXC1tYXRzOwor5LONIDwgYVwta2luZFwtb2ZcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor542y6YeLIDwgb2J0YWluXC1yZWxlYXNlXC1cKGZyb21cLXByaXNvblwpOwor5LGxIDwgYVwta2luZFwtb2ZcLXNsaXBwZXJ5XC1sb25nXC1maXNoOwor5K6HIDwgYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtdGhpZ2g7CivlsI3ml6UgPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1qYXBhbjsKK+SsoCA8IHRoZVwtZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+SqrSA8IGFcLWtpbmRcLW9mXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KqJIDwgbWV0YWxcLWRlY29yYXRpb25cLW9uXC1hXC1oYWx0ZXI7CivkqaEgPCBhXC1raW5kXC1vZlwtYm9vdHNcLWluXC1vbGRcLXRpbWVzOwor6I6r6KG35LiA5pivIDwgY2Fubm90XC1kZWNpZGVcLXdoaWNoXC1pc1wtcmlnaHQ7CivkppwgPCBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KW6IDwgbmFtZVwtb2ZcLWFcLWRvdWJsZVwtZWRnZWRcLXN3b3JkOwor5KWVIDwgdGhlXC1ibGFkZVwtb3JcLWVkZ2VcLW9mXC1hXC1zcGFkZTsKK+SkiSA8IGVtcHRpZWRcLXRoZVwtZHJpbmtcLWNvbXBsZXRlbHk7Civko6EgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1vbGRcLXRpbWVzOwor5KGRIDwgdGhlXC1yaW1cLW9yXC1mZWxsb2VcLW9mXC1hXC13aGVlbDsKK+SgtCA8IHdpdGhcLWFcLXN5bW1ldHJpY1wtd2VsbFwtZm9ybWVkOwor5J21IDwgdG9cLXRoYW5rXC13aXRoXC1tb25leVwtb3JcLWdpZnRzOwor5JmXIDwgYVwtc3dhZGRsaW5nXC1jbG90aFwtZm9yXC1pbmZhbnQ7CivkmLsgPCBjdXJ0YWluXC1vblwtYVwtY2FycmlhZ2VcLW9yXC1jYXI7CivkmLogPCBhXC1zZWFtXC13aGljaFwtaGFzXC1jb21lXC11bnNld247CivkmLUgPCBoaXNzaW5nXC1zb3VuZFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SUmyA8IGZpYnJvdXNcLXBsYW50XC1vZlwtd2hpY2hcLWNsb3RoOwor5JG5IDwgYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtc2hpcHM7CivkjaAgPCB0dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMiyA8IGFcLWhlcmNoaWVmXC1odW5nXC1hdFwtdGhlXC13YWlzdDsKK+SLqSA8IHByZXR0eVwtYW5kXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IuPIDwgdGhpY2tcLWFuZFwtYmlnXC1yb3Blc1wtb3JcLWNvcmRzOwor5IuLIDwgYVwta2luZFwtb2ZcLXNwcmluZ1wtZmlzaGluZ1wtbmV0Owor5YWr5ZyL6IGv6LuNIDwgdGhlXC1laWdodFwtcG93ZXJcLWFsbGllZFwtZm9yY2U7CivkhrYgPCBub2lzZVwtb2ZcLWFcLW1vdXNlXC1pblwtdGhlXC1jYXZlOwor5IWzIDwgc3RhbGtcLW9mXC10aGVcLXBhbmljbGVkXC1taWxsZXQ7Civkha0gPCBhXC12YXJpZXR5XC1vZlwtcGFuaWNsZWRcLW1pbGxldDsKK+SFjCA8IHN0YWxrXC1vZlwtd2hlYXRcLW9yXC1yaWNlXC1wbGFudDsKK+SDiyA8IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IK1IDwgc291bmRcLW9mXC1idW1waW5nXC1vclwtc3RyaWtpbmc7CivkgqsgPCBub2lzZVwtb2ZcLXN0b25lc1wtcm9sbGluZ1wtZG93bjsKK+SAsyA8IG5vdFwtdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor4760IDwgdGhlXC1lcnl0aGVtYVwtb2ZcLWFjbmVcLXJvc2FjZWE7CivlpJrlubTku6XkvoYgPCBmb3JcLW1hbnlcLXllYXJzXC1cKGluXC10aGVcLXBhc3RcKTsKK+O5pSA8IGFcLXllbGxvd1wtZG9nXC13aXRoXC1ibGFja1wtaGVhZDsKK+O5gSA8IGdlbmVyYWxseVwtY2FsbGVkXC10aGVcLWFuaW1hbHM7CivjtbUgPCBzd2lmdFwtY3VycmVudHNcLW9mXC10aGVcLXN0cmVhbTsKK+O1jiA8IGFcLW1vdW50YWluXC1zdHJlYW1cLW9yXC10b3JyZW50Owor47SaIDwgdGhlXC1zbWFsbFwtZGl0Y2hcLWluXC10aGVcLWZpZWxkOwor55+l6K2Y55Si5qyKIDwgaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eVwtcmlnaHRzOwor5oaL5rCjIDwgZmVlbFwtc3VmZm9jYXRlZFwtb3JcLW9wcHJlc3NlZDsKK+OwhiA8IGFuXC1pbnN0cnVtZW50XC10b1wtYmxvd1wtYVwtZmlyZTsKK+OwgSA8IGFcLXRyZWVcLXdpdGhcLXNsYW50ZWRcLWJyYW5jaGVzOwor46+zIDwgYVwta2luZFwtb2ZcLXRvb2xcLXRvXC1hZGp1c3RcLWJvdzsKK+OlnCA8IHVuc3VjY2Vzc2Z1bFwtaW5cLW9uZScnc1wtY2FyZWVyOwor46GxIDwgdG9cLWNhdXRlcml6ZVwtYnlcLWJ1cm5pbmdcLW1veGE7CivjoLEgPCB0b1wtc2V0XC13aXRoXC10aGVcLWxlZ3NcLWNsb3NzZWQ7CivjnIwgPCBhXC1kaWZmZXJlbnRcLW5hbWVcLWZvclwtYnJlYXN0czsKK+OZviA8IGhpbGxzXC13aXRoXC1sb3RzXC1vZlwtYmlnXC1yb2NrczsKK+OZmyA8IGFcLXBlcnNvbicnc1wtbmFtZVwtaW5cLW9sZFwtdGltZXM7Civjl74gPCB0b1wtZ2l2ZVwtdmVudFwtdG9cLXRoZVwtZmVlbGluZ3M7Civjl4YgPCBzb3VuZFwtb2ZcLXRoZVwtcmluZ2VkXC1waGVhc2FudDsKK+OTsyA8IHVzZVwta25pZmVcLXRvXC1zcGxpdFwtc29tZXRoaW5nOwor45GfIDwgaW5zaW5jZXJlXC1hbmRcLWN1bm5pbmdcLXBlcnNvbjsKK+iHquayu+WNgCA8IGF1dG9ub21vdXNcLXJlZ2lvblwtXChpblwtY2hpbmFcKTsKK+WQjOiDniA8IGZlbGxvd1wtY2l0aXplblwtb3JcLWNvdW50cnltYW47CivljL7poY0gPCBhXC1ob3Jpem9udGFsXC1pbnNjcmliZWRcLWJvYXJkOwor5buj5pKt5ZKM5pyq55+l5pyN5YuZ5ZmoIDwgYnJvYWRjYXN0XC1hbmRcLXVua25vd25cLXNlcnZlcjsKK+eiuuiouiA8IHRvXC1tYWtlXC1hXC1kZWZpbml0ZVwtZGlhZ25vc2lzOwor5by157SU5aaCIDwgXChhbWVyaWNhblwtYXV0aG9yXClcLWlyaXNcLWNoYW5nOwor5a6D5YCRIDwgdGhleVwtXChmb3JcLWluYW5pbWF0ZVwtb2JqZWN0c1wpOwor54++5aC0IDwgc2NlbmVcLVwob2ZcLWV2ZW50XC1vclwtaW5jaWRlbnRcKTsKK+aEm+aDhSA8IGxvdmVcLVwoYmV0d2VlblwtbWFuXC1hbmRcLXdvbWFuXCk7Civorornr4AgPCBtYWtlXC1hXC1wb2xpdGljYWxcLXJlY2FudGF0aW9uOwor6KqT5q275LiN6ZmNIDwgdG9cLXZvd1wtdG9cLWZpZ2h0XC10b1wtdGhlXC1kZWF0aDsKK+aykuacieW/heimgSA8IHRoZXJlXC1pc1wtbm9cLW5lZWRcLXRvXC1cKGRvXC1zdGhcKTsKK+a2ieWrjCA8IHRvXC1iZVwtYVwtc3VzcGVjdFwtXChpblwtYVwtY3JpbWVcKTsKK+ePreWLmeacgyA8IGFcLXJvdXRpbmVcLW1lZXRpbmdcLW9mXC1hXC1zcXVhZDsKK+aWsOW+t+ijoSA8IG5ld1wtZGVsaGlcLVwoY2FwaXRhbFwtb2ZcLWluZGlhXCk7Civlj43lsI3pu6ggPCBvcHBvc2l0aW9uXC1cKHBvbGl0aWNhbFwpXC1wYXJ0eTsKK+Wksei2syA8IHRvXC10YWtlXC1hXC13cm9uZ1wtc3RlcFwtaW5cLWxpZmU7CivkuK3mloflu6Pmkq0gPCBjaGluZXNlXC1cKGxhbmd1YWdlXClcLWJyb2FkY2FzdDsKK+enu+auluaJi+ihkyA8IFwob3JnYW5cKVwtdHJhbnNwbGFudFwtb3BlcmF0aW9uOwor54qn54myIDwgc2FjcmlmaWNlXC1cKG9uZScnc1wtbGlmZVwsXC1ldGNcLlwpOwor5Lqe5LyvIDwgYWJlXC1cKHNob3J0XC1mb3JtXC1mb3JcLWFicmFoYW1cKTsKK+eMnOW/jCA8IGJlXC1zdXNwaWNpb3VzXC1hbmRcLWplYWxvdXNcLW9mOwor6buo5YWnIDwgd2l0aGluXC10aGVcLVwoY29tbXVuaXN0XClcLXBhcnR5Owor6Kqq5piO5pu4IDwgc3lub3BzaXNcLVwob2ZcLWFcLXBsYXlcLW9yXC1maWxtXCk7Civli5XolakgPCBcKHNvY2lhbFwtb3JcLXBvbGl0aWNhbFwpXC11bnJlc3Q7CivnjovkuLkgPCB3YW5nXC1kYW5cLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7Civlj5vkuoLnvaogPCB0aGVcLWNyaW1lXC1vZlwtYXJtZWRcLXJlYmVsbGlvbjsKK+a1quWtkOWbnumgrSA8IHRoZVwtcmV0dXJuXC1vZlwtYVwtcHJvZGlnYWxcLXNvbjsKK+W3ruW+l+WkmiA8IGZhbGxcLXNob3J0XC1ieVwtYVwtbGFyZ2VcLWFtb3VudDsKK+S4jeaApeS5i+WLmSA8IGFcLW1hdHRlclwtb2ZcLW5vXC1ncmVhdFwtdXJnZW5jeTsKK+mbu+ejgeW5suaTviA8IGVsZWN0cm9tYWduZXRpY1wtaW50ZXJmZXJlbmNlOwor5Y+w54Gj6KmxIDwgdGFpd2FuZXNlXC1jaGluZXNlXC1cKGxhbmd1YWdlXCk7CivllaYgPCBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb247Civnu7wgPCBhcnJhbmdlXC10aHJlYWRzXC1mb3JcLXdlYXZpbmc7Civmi60gPCB3aXBlXC1hd2F5XC1zdGFpbnNcLXdpdGhcLWNsb3RoOwor5Y+uIDwgZXhob3J0XC1vclwtZW5qb2luXC1yZXBlYXRlZGx5Owor5oifIDwgaGFsYmVyZFwtd2l0aFwtY3Jlc2NlbnRcLWJsYWRlOwor5YebIDwgdG9cLXNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7CivmoIsgPCBtYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtaG91c2U7Civpq6YgPCBmbG93aW5nXC1oYWlyXC1vZlwteW91bmdcLWNoaWxkOwor562dIDwgc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkuJkgPCB0aGlyZFwtb2ZcLXRoZVwtaGVhdmVubHlcLXN0ZW1zOwor5rKCIDwgcml2ZXJcLWluXC1zb3V0aGVhc3RcLXNoYW5kb25nOwor56yIIDwgYmFtYm9vXC1ib3hcLXVzZWRcLWNhcnJ5XC1ib29rczsKK+eToiA8IGxhZGxlXC1tYWRlXC1mcm9tXC1kcmllZFwtZ291cmQ7CivnsKcgPCByZWVkXC1vZlwtd29vZHdpbmRcLWluc3RydW1lbnQ7Civom58gPCBzY2FseVwtZHJhZ29uXC13aXRoXC1mb3VyXC1sZWdzOwor5pWVIDwgYW5cLWltcGVyaWFsXC1vcmRlclwtb3JcLWRlY3JlZTsKK+ijnyA8IGFcLWNhc3NvY2tcLW9yXC1yb2JlXC1vZlwtYVwtbW9uazsKK+eitCA8IGNoaXBwZWRcLWVkZ2VcLW9mXC1hXC1jb250YWluZXI7CivnmLQgPCBtYWxhcmlhXC1wZXN0aWxlbnRpYWxcLXZhcG9yczsKK+e6tiA8IGdyZWVuXC1zaWxrXC10aHJlYWRcLW9yXC10YXNzZWw7CivnvaEgPCB0aGVcLW5hbWVcLW9mXC1hXC1jZXJ0YWluXC1zdGFyczsKK+eZuCA8IGxhc3RcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmqYcgPCBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb247CivnmosgPCB0aGVcLWhpZ2hcLWxhbmRcLWFsb25nXC1hXC1yaXZlcjsKK+a9jSA8IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+a0mSA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nOwor542gIDwgdG9cLWh1bnRcLWF0XC1uaWdodFwtYnlcLXRvcmNoZXM7CivpupIgPCBsZWdlbmRhcnlcLWF1c3BpY2lvdXNcLWFuaW1hbDsKK+ePqSA8IHRoZVwtdG9wXC1nZW1cLW9mXC10aGVcLXBlbmRhbnRzOwor6LClIDwgdG9cLWNvbmZlclwtcG9zdGh1bW91c1wtdGl0bGVzOwor56erIDwgZ2x1dGlub3VzXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor56u9IDwgYW5jaWVudFwtd29vZHdpbmRcLWluc3RydW1lbnQ7CivltK4gPCBcKGVsZW1lbnRcLWluXC1tb3VudGFpblwtbmFtZXNcKTsKK+aEgCA8IHRvXC1jaGFuZ2VcLW9uZScnc1wtY291bnRlbmFuY2U7CivphKIgPCBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1ob25hbjsKK+eZjSA8IHVuaGVhbHRoeVwtbWFya3NcLW9uXC10aGVcLXNraW47CivphJ4gPCBjb3VudHlcLWluXC16aGVqaWFuZ1wtcHJvdmluY2U7Civpm5IgPCBibGFja1wtaG9yc2VcLXdpdGhcLXdoaXRlXC1tYW5lOwor5peSIDwgZnJpbmdlc1wtb2ZcLXBlYXJsc1wtb25cLWNyb3duczsKK+eQiiA8IGFcLXBsYWNlXC1pblwtZWFzdGVyblwtc2hhbmRvbmc7CivomqggPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWJlZXRsZVwtY2FzaDsKK+avsyA8IGZpbmVcLWhhaXJcLW9yXC1mdXJcLW9uXC1hbmltYWxzOwor55ilIDwgdG9cLXJlY292ZXJcLWZyb21cLWFueVwtZGlzZWFzZTsKK+a1iCA8IHJpdmVyXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WYpyA8IFwocGhvbmV0aWNcKVwtYXNcLWluXC1weXJpbWlkaW5lOwor5LiN5piT5LmL6KuWIDwgcGVyZmVjdGx5XC1zb3VuZFwtcHJvcG9zaXRpb247CivkvLzkuY7lvojlronlhaggPCB0b1wtYXBwZWFyXC1cKHRvXC1iZVwpXC12ZXJ5XC1zYWZlOwor5rG65a6aIDwgdG9cLWRlY2lkZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpOwor5aeK5aa5IDwgXChvbGRlclwtYW5kXC15b3VuZ2VyXClcLXNpc3RlcnM7CivpgLzogpYgPCBiZWFyXC1hXC1jbG9zZVwtcmVzZW1ibGFuY2VcLXRvOwor6JGJ5Yip5qy9IDwgXChydXNzaWFuXC1wcmVzaWRlbnRcKVwteWVsdHNpbjsKK+W+qeWvqSA8IHJlZXhhbWluZVwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor5YWl6ZaAIDwgaW50cm9kdWN0aW9uXC1cKHRvXC1hXC1zdWJqZWN0XCk7Civnmb3pnLIgPCB3aGl0ZVwtZGV3XC1cKDE1dGhcLXNvbGFyXC10ZXJtXCk7CivlkITnqK7lkITmqKMgPCB2YXJpb3VzXC1zb3J0c1wtYW5kXC12YXJpZXRpZXM7Civoo5zpq5QgPCBjb21wbGVtZW50XC1cKGluXC1ibG9vZFwtc2VydW1cKTsKK+ipleavlCA8IHRvXC1ldmFsdWF0ZVwtXChieVwtY29tcGFyaXNvblwpOwor5LiN6YGV6L6y5pmCIDwgbm90XC1taXNzXC10aGVcLWZhcm1pbmdcLXNlYXNvbjsKK+m7g+a1puaxnyA8IGh1YW5ncHVcLXJpdmVyXC1cKGluXC1zaGFuZ2hhaVwpOwor6L2J6LqrIDwgXChvZlwtYVwtcGVyc29uXClcLXRvXC10dXJuXC1yb3VuZDsKK+eIquWThyA8IGphdmFcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivmlYjlv6AgPCB2b3dcLWxveWFsdHlcLWFuZFwtZGV2b3Rpb25cLXRvOwor5LqC5L2c5rG65a6aIDwgdG9cLW1ha2VcLWFyYml0cmFyeVwtZGVjaXNpb25zOwor5o6h6L6mIDwgYnV5XC1vblwtYVwtY29uc2lkZXJhYmxlXC1zY2FsZTsKK+W8n+WmuSA8IHNpc3RlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpmbfmlrwgPCBjYXVnaHRcLWluXC1cKGFcLWJhZFwtc2l0dWF0aW9uXCk7Civptb4gPCBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWNyYW5lOwor5aSW5YyvIDwgZm9yZWlnblwtXChjdXJyZW5jeVwpXC1leGNoYW5nZTsKK+Wkp+WZqOaZmuaIkCA8IGdyYW5kXC10YWxlbnRzXC1tYXR1cmVcLXNsb3dseTsKK+aRmOeUsSA8IGhpZ2hcLXBvaW50c1wtXChvZlwtYVwtZG9jdW1lbnRcKTsKK+muqCA8IGVwaW5lcGhlbHVzXC1zZXB0ZW1mYXNjaWF0dXM7Civpo6YgPCB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLWdydWVsOwor6ZuKIDwgdGhlXC1jcm93XC1vZlwtYVwtbWFsZVwtcGhlYXNhbnQ7CivpmrogPCBhXC1iaXJkXC1mbHlpbmdcLWhpZ2hcLWFtYml0aW9uOwor6IOM5YyF6KKxIDwgaGF2ZVwtYVwtd2VpZ2h0XC1vblwtb25lJydzXC1taW5kOwor5oyJ5q2l5bCx54+tIDwgZm9sbG93XC10aGVcLXByZXNjcmliZWRcLW9yZGVyOwor5aSW5Lqk6YOo6ZW3IDwgbWluaXN0ZXJcLW9mXC1mb3JlaWduXC1hZmZhaXJzOwor6YaxIDwgdG9cLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7CivphZYgPCB3aW5lXC13aXRoXC1iaXJkXC1wb2lzb25cLWFkZGVkOwor55m+5bC65p2G6aCt5pu055uh5LiA5q2lIDwgbWFrZVwtc3RpbGxcLWZ1cnRoZXJcLXByb2dyZXNzOwor6YS/IDwgY291bnR5XC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6YSNIDwgYVwtdG93blwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i5miA8IHRyZWFkXC10aHJvdWdoXC1tdWRcLWFuZFwtd2F0ZXI7CivkuK3lpK7mg4XloLHlsYAgPCBjZW50cmFsXC1pbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+WBtOi6uiA8IHRvXC1saWVcLWRvd25cLVwob25cLW9uZScnc1wtc2lkZVwpOwor5aCx5oi25Y+jIDwgYXBwbHlcLWZvclwtYVwtcmVzaWRlbnRcLXBlcm1pdDsKK+ikmCA8IGNlcmVtb25pYWxcLWdvd25zXC1vZlwtYVwtcXVlZW47Civon7AgPCBzbWFsbFwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6JuVIDwgdGhlXC1jb21tb25cLWludGVzdGluYWxcLXdvcm1zOwor5pyN5YuZ5o+Q5L6b5ZWGIDwgXChpbnRlcm5ldFwpXC1zZXJ2aWNlXC1wcm92aWRlcjsKK+aQnOaNlSA8IGh1bnRcLWFuZFwtYXJyZXN0XC1cKGZ1Z2l0aXZlc1wpOwor5o+55pu4IDwgcmVjaXRlXC1hXC1sZXNzb25cLWZyb21cLW1lbW9yeTsKK+W5uOWFjSA8IG5hcnJvd2x5XC1hbmRcLWx1Y2tpbHlcLWVzY2FwZTsKK+S4jeeZu+Wkp+mbheS5i+WggiA8IG5vdFwtYXBwZWFsXC10b1wtcmVmaW5lZFwtdGFzdGU7CivogrcgPCBhcmVhXC1iZXR3ZWVuXC13YWlzdFwtYW5kXC1oaXBzOwor6IiJ5LiW55+a55uuIDwgYXR0cmFjdFwtd29ybGR3aWRlXC1hdHRlbnRpb247CivnjajmlrflsIjooYwgPCBhY3RcLWluXC1hblwtYXJiaXRyYXJ5XC1mYXNoaW9uOwor57GEIDwgYVwtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+Wci+mam+e0miA8IFwoYXRcLWFuXClcLWludGVybmF0aW9uYWxcLWxldmVsOwor562OIDwgdGhpblwtb3V0c2lkZVwtc2tpblwtb2ZcLWJhbWJvbzsKK+eepCA8IHRvXC1ibGlua1wtb3JcLXR3aXRjaFwtdGhlXC1leWVzOwor566h55CG5L+h5oGv5bqrIDwgbWFuYWdlbWVudFwtaW5mb3JtYXRpb25cLWJhc2U7Civoj6/nm5vpoJPpg7XloLEgPCB3YXNoaW5ndG9uXC1wb3N0XC1cKG5ld3NwYXBlclwpOwor5ZyL5qiZIDwgZ3VvYmlhb1wtXChlbmNvZGluZ1wtc3RhbmRhcmRcKTsKK+S+v+ihgCA8IGhhdmluZ1wtYmxvb2RcLWluXC1vbmUnJ3NcLXN0b29sOwor5regIDwgbHV4dXJpYW50XC1cKG9mXC13YXRlclwtcGxhbnRzXCk7CivmtbAgPCBhdHRlbmRcLVwob2ZmaWNpYWxcLWZ1bmN0aW9uc1wpOwor55eF5qmfIDwgaW50ZXJwcmV0YXRpb25cLW9mXC10aGVcLWNhdXNlOwor5rORIDwgdGhlXC12aXRyZW91c1wtZ2xhemVcLW9uXC1jaGluYTsKK+auqCA8IHRvXC1vcGVuXC1hc1wtYW5cLXVsY2VyXC1vclwtc29yZTsKK+aJjeiPryA8IGxpdGVyYXJ5XC1vclwtYXJ0aXN0aWNcLXRhbGVudDsKK+aMh+azlSA8IGZpbmdlclwtbWV0aG9kXC1cKGluXC1wYWludGluZ1wpOwor5a+26JePIDwgcHJlY2lvdXNcLVwobWluZXJhbFwpXC1kZXBvc2l0czsKK+aPkOWJjSA8IHRvXC1zaGlmdFwtdG9cLWFuXC1lYXJsaWVyXC1kYXRlOwor6Lyp5Ye6IDwgY29tZVwtZm9ydGhcLWluXC1sYXJnZVwtbnVtYmVyczsKK+aejyA8IGFcLXZhcmlldHlcLW9mXC1ldmVyZ3JlZW5cLXRyZWU7Civmnb/ptKggPCBwcmVzc2VkXC1cKGRyaWVkXClcLXNhbHRlZFwtZHVjazsKK+aLlOa1tyA8IGVsZXZhdGlvblwtXChhYm92ZVwtc2VhXC1sZXZlbFwpOwor6aGY5oSP5LiN6aGY5oSPIDwgd2hldGhlclwtb25lXC13YW50c1wtdG9cLW9yXC1ub3Q7CivlkIPkuI3kvoYgPCBub3RcLWJlXC1mb25kXC1vZlwtY2VydGFpblwtZm9vZDsKK+aQhyA8IHRvXC1wcmVzc1wtZG93blwtd2l0aFwtdGhlXC1oYW5kOwor5pOa5aCx5bCOIDwgYWNjb3JkaW5nXC10b1wtXChuZXdzXClcLXJlcG9ydHM7CivotoXmlofku7blgrPovLjljZTlrpogPCBoeXBlcnRleHRcLXRyYW5zZmVyXC1wcm90b2NvbDsKK+W8uCA8IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor5begIDwgc3RyZWFtc1wtcnVubmluZ1wtdW5kZXJncm91bmQ7CivltJkgPCBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivlgKvmlaYgPCBsb25kb25cLVwoY2FwaXRhbFwtb2ZcLWVuZ2xhbmRcKTsKK+WgsyA8IGxhbmRcLWFsbG90bWVudFwtZmV1ZGFsXC1ub2JsZTsKK+WMl+S6rOiqnuiogOWtuOmZoiA8IGJlaWppbmdcLWxhbmd1YWdlc1wtaW5zdGl0dXRlOwor5ZmVIDwgdG9cLXNwZWFrXC1mYWxzZWx5XC1vclwtd3JvbmdseTsKK+aineasviA8IGNsYXVzZVwtXChvZlwtY29udHJhY3RcLW9yXC1sYXdcKTsKK+eXheS+iyA8IFxbbWVkaWNhbFxdXC1jYXNlXC1cW29mXC1pbGxuZXNzXF07CivlmajlrpggPCBvcmdhblwtXChwYXJ0XC1vZlwtYm9keVwtdGlzc3VlXCk7CivkuKkgPCB0b1wtam9pblwtb3JcLWNvbm5lY3RcLXRoZVwtdmluZTsKK+S4kiA8IHRoZVwtcGVyaW9kXC1mcm9tXC0xXC10b1wtM1wtYVwubVwuOwor5LWFIDwgdG9cLWV4dHJhY3RcLWJ5XC1hcHBseWluZ1wtaGVhdDsKK+S0syA8IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7Civks54gPCBiaXJkc1wtZmx5aW5nXC1hbGxcLWRpcmVjdGlvbnM7Civks4ogPCBhXC13aWxkXC1kdWNrXC1saWtlXC13YXRlclwtYmlyZDsKK+SzgyA8IGFcLWtpbmRcLW9mXC1waG9lbml4XC1saWtlXC1iaXJkOwor5Kq3IDwgdG9cLXRvaWxcLW9yXC1sYWJvclwtc2VkdWxvdXNseTsKK+SqhyA8IGN1c2hpb25lZFwtc2VhdFwtb25cLWFcLXZlaGljbGU7Civkqb8gPCBhXC1iaWdcLWRydW1cLXVzZWRcLWluXC10aGVcLWFybXk7Civkp5ggPCBhXC1sb3dcLXdhbGxcLW9uXC10aGVcLXJvYWRcLXNpZGU7CivkprIgPCBlYXZlc1wtb2ZcLWFcLWFuY2VzdHJhbFwtdGVtcGxlOwor5KS7IDwgaGVhdnlcLWlyb25cLXBhcnRcLW9mXC1hXC1wbG91Z2g7Civko7IgPCB0b1wtaGVhdFwtdGhlXC13aW5lXC1vdmVyXC1uaWdodDsKK+SiryA8IHRvXC1jaG9vc2VcLW9yXC1zZWxlY3RcLWNhcmVmdWw7CivkoIsgPCBiZWxsXC1zaGFwZWRcLXdpdGhcLWxhcmdlXC1iYXNlOwor5J+uIDwgdG9cLWNyYXdsXC1vblwtaGFuZHNcLWFuZFwta25lZXM7CivknLggPCBzbWFsbFwtcGllY2VzXC1vZlwtYmVhblwtc3RhbGtzOwor5JyHIDwgdG9cLXNwZWFrXC1ub3RcLWluXC1hXC1jbGVhclwtd2F5Owor54+t57SaIDwgY2xhc3Nlc1wtb3JcLWdyYWRlc1wtaW5cLXNjaG9vbDsKK+SaoyA8IGNyb29rZWRcLWhvcm5zXC1vZlwtdGhlXC1hbmltYWw7CivkmpwgPCBjYXR0bGVcLXdpdGhcLWNyb3Nzd2lzZVwtaG9ybnM7CivkmaMgPCByYWdnZWRcLWdhcm1lbnRzXC1vclwtY2xvdGhpbmc7CivkmZUgPCBjbG90aGVzXC10aGF0XC1oYXZlXC1ub1wtbGluaW5nOwor5JmUIDwgY2xvdGhlc1wtbWFkZVwtb2ZcLXBvb3JcLWZhYnJpYzsKK+SZkyA8IHRoZVwtbG93ZXJcLXBhcnRcLW9mXC1hXC1nYXJtZW50Owor5JilIDwgdGhlXC1mcm9udFwtb2ZcLWFcLWNoaW5lc2VcLWdvd247CivkmIEgPCBhXC1ibHVlXC1ncmVlblwtY29sb3JlZFwtY2ljYWRhOwor5Je1IDwgYVwtZGlzZWFzZVwtYXR0YWNrZWRcLXNpbGt3b3JtOwor5JWuIDwgZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JSlIDwgY29tbW9uXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor5JSfIDwgc2hha2VcLWFuZFwtd2F2ZVwtb2ZcLXRoZVwtZ3Jhc3M7Civnl4Xmr5LlrbggPCB2aXJvbG9neVwtXChzdHVkeVwtb2ZcLXZpcnVzZXNcKTsKK+SQvCA8IHRoaW5cLW1lbWJyYW5lXC1vZlwtdGhlXC10aHJvYXQ7CivkkK8gPCB1Z2x5XC1hcHBlYXJhbmNlXC1vZlwtYVwtcGVyc29uOwor5JCRIDwgdGhpblwtY3V0XC1vZlwtdGhlXC1zbGljZWRcLW1lYXQ7CivkjbogPCBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWJlYXN0Owor5Iy8IDwgYVwta2luZFwtb2ZcLWZpbmVcLXNpbGtcLWZhYnJpY3M7CivkjIQgPCBhXC1yb3BlXC1mb3JcLWRyYXdpbmdcLXVwXC13YXRlcjsKK+engeS6uumRsOWMmSA8IHByaXZhdGVcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor5IqeIDwgdG9cLXJvbGxcLXJvdW5kXC13aXRoXC10aGVcLWhhbmQ7CivkibogPCBkZXRlcmlvcmF0ZWRcLWFuZFwtYmVjb21lXC1yZWQ7CivkibkgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJuCA8IHNsaXBzXC1vZlwtYmFtYm9vXC1mb3JcLXdyaXRpbmc7CivkiLIgPCBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1maXNoaW5nOwor5Ie6IDwgYmVhbnNcLWFuZFwtcGVhc1wtY29sbGVjdGl2ZWx5Owor5Ie1IDwgb25lXC1vZlwtdGhlXC13aW5kXC1pbnN0cnVtZW50czsKK+aGsuazlSA8IGNvbnN0aXR1dGlvblwtXChvZlwtYVwtY291bnRyeVwpOwor5IWqIDwgZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydDsKK+SEsCA8IGZvcnR5XC1idW5kbGVzXC1vZlwtcmljZVwtcGxhbnQ7Civkg4cgPCBpbmtcLWZvclwtaW1wcmludGluZ1wtb2ZcLXNlYWxzOwor5ICRIDwgdG9cLWdvdWdlXC1vdXRcLWFuXC1leWVcLW9yXC1leWVzOwor472OIDwgdGhlXC1wcm9mdW5kaXR5XC1vZlwtdGhlXC1oYXJlbTsKK+O8oCA8IGFcLWNyb2NrXC13aXRoXC1uYXJyb3dcLW9wZW5pbmc7CivjuqwgPCBhXC1sYXJnZVwtcGllY2VcLW9mXC1qYWRlXC1zdG9uZTsKK+O6kiA8IGJhcmtpbmdcLW9mXC1hXC1mcmlnaHRlbmVkXC1kb2c7CivkuI3oq7EgPCB3aXRob3V0XC1jb25jZWFsaW5nXC1hbnl0aGluZzsKK+O5liA8IHRvXC1mZWVkXC1hbmltYWxzXC13aXRoXC1ncmFpbnM7CivjuJIgPCB0b1wtYWJzdXJkXC1wdXJzdWl0XC1vclwtZGVzaXJlOwor5Zyw5Z2A6Kej5p6Q5Y2U6K2wIDwgYWRkcmVzc1wtcmVzb2x1dGlvblwtcHJvdG9jb2w7CivjroAgPCB0b29sXC10b1wtY2xlYXJcLW91dFwtdGhlXC13YXRlcjsKK+OtlSA8IGFcLWJvYXJkXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7CivjqYYgPCB0b1wtYmVcLWluXC1mdWxsXC1wb3NzZXNzaW9uXC1vZjsKK+iAjOS4jemcgCA8IHdpdGhvdXRcLW5lZWRpbmdcLVwodG9cLXNvXC1zdGhcKTsKK+OnlSA8IHRvXC1mZWVsXC1vclwtdG91Y2hcLXdpdGhcLWhhbmRzOwor46eCIDwgYVwtY2F2ZVwtYVwtaG9sZFwtaW5cLXRoZVwtZ3JvdW5kOwor46aQIDwgYVwtc3RyYWlnaHRmb3J3YXJkXC1jaGFyYWN0ZXI7Civlronmj5IgPCBwbGFjZVwtaW5cLWFcLWNlcnRhaW5cLXBvc2l0aW9uOwor46W0IDwgZG9cLW5vdFwtY2FyZVwtYWJvdXRcLXNvbWV0aGluZzsKK+S6pOaPm+apnyA8IHN3aXRjaFwtXCh0ZWxlY29tbXVuaWNhdGlvbnNcKTsKK++kmiA8IHdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivjobUgPCByb29mXC1vZlwtdGhlXC1ob3VzZVwtY29ubmVjdGVkOwor46CfIDwgYVwtbW91bnRhaW5cLWluXC1hbmNpZW50XC10aW1lczsKK+WPpOi5nyA8IHBsYWNlc1wtb2ZcLWhpc3RvcmljXC1pbnRlcmVzdDsKK+ObvSA8IHRvXC13YWxrXC1zbG93bHlcLWxpa2VcLWFcLXdvbWFuOwor45uuIDwgd2lmZVwtb2ZcLW9uZScnc1wtZWxkZXJcLWJyb3RoZXI7Civjk4ggPCBzb3VuZFwtb2ZcLWZseWluZ1wtb3JcLXNwZWVkaW5nOwor45KrIDwgY2hva2VkXC1hbmRcLXVuYWJsZVwtdG9cLWJyZWF0aDsKK+OSliA8IHRoZVwtcm9vdFwtc3RvY2tcLW9mXC10aGVcLWxvdHVzOwor5rCj6auUIDwgZ2FzXC1cKGllXCxcLWdhc2VvdXNcLXN1YnN0YW5jZVwpOwor5aSn6Zm46KmxIDwgbWFpbmxhbmRcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+Wtq+WtkCA8IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtc29uXCk7CivlpZTpqLAgPCBcKG9mXC13YXZlc1wpXC10b1wtc3VyZ2VcLWZvcndhcmQ7CivljbvkuYvkuI3mga0gPCB0b1wtcmVmdXNlXC13b3VsZFwtYmVcLWltcG9saXRlOwor5Lqk5o+b5ZmoIDwgXCh0ZWxlY29tXC1vclwtbmV0d29ya1wpXC1zd2l0Y2g7CivpgJroqIrnpL4gPCBhXC1uZXdzXC1zZXJ2aWNlXC1cKGVnXCxcLXhpbmh1YVwpOwor6YO16Zu7IDwgcG9zdFwtYW5kXC10ZWxlY29tbXVuaWNhdGlvbnM7CivllY/lgJkgPCBnaXZlXC1zb21lb25lXC1vbmUnJ3NcLXJlc3BlY3RzOwor56WW54i2IDwgZ3JhbmRmYXRoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7CivmhJvlpb3ogIUgPCBsb3ZlclwtXChvZlwtYXJ0XCxcLXNwb3J0c1wsXC1ldGNcKTsKK+axuuetliA8IFwobWFrZVwtYVwpXC1zdHJhdGVnaWNcLWRlY2lzaW9uOwor56WW5q+NIDwgZ3JhbmRtb3RoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7CivlnIvpmpvosqjluaPln7rph5HntYTnuZQgPCBpbnRlcm5hdGlvbmFsXC1tb25ldGFyeVwtZnVuZDsKK+mmrOWkquemj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWF0dGhldzsKK+mHneeBuCA8IGFjdXB1bmN0dXJlXC1hbmRcLW1veGlidXN0aW9uOwor6Zu76Kmx5pyD6K2wIDwgXCh0ZWxlcGhvbmVcKVwtY29uZmVyZW5jZVwtY2FsbDsKK+S4gOaXpiA8IGluXC1jYXNlXC1cKHNvbWV0aGluZ1wtaGFwcGVuc1wpOwor5aO96L6wIDwgYmlydGhkYXlcLVwob2ZcLWFuXC1vbGRcLXBlcnNvblwpOwor5LiN6JC956qg6Ie8IDwgbm90XC1mb2xsb3dcLXRoZVwtYmVhdGVuXC10cmFjazsKK+aMieeFp+ioiOWKgyA8IGFjY29yZGluZ1wtdG9cLVwodGhlXClcLXBsYW5cLVwuXC5cLjsKK+WFrOWuiemDqCA8IG1pbmlzdHJ5XC1vZlwtcHVibGljXC1zZWN1cml0eTsKK+aKseS4jeW5syA8IGJlXC1vdXRyYWdlZFwtYnlcLWFuXC1pbmp1c3RpY2U7Civkuovmg4XopoHlgZogPCB0aGluZ1wtdGhhdFwtbmVlZHNcLXRvXC1iZVwtZG9uZTsKK+W+qeeUpiA8IHJlY292ZXJ5XC1cKGhlYWx0aFwsXC1lY29ub21pY1wpOwor5pmC5pyfIDwgYVwtcGVyaW9kXC1pblwtdGltZVwtb3JcLWhpc3Rvcnk7CivlkITlnLAgPCBpblwtYWxsXC1wYXJ0c1wtb2ZcLVwoYVwtY291bnRyeVwpOwor55S35a2Q5ryiIDwgbWFuXC1cKGlcLmVcLlwtbWFubHlcLFwtbWFzY3VsaW5lXCk7CivnlaYgPCBzZWN0aW9uc1wtaW5cLXZlZ2V0YWJsZVwtZmFybTsKK+eUuiA8IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor5ZuBIDwgbW92ZVwtbGlwc1wtYXNcLXdoZW5cLXNwZWFraW5nOwor5LymIDwgbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK+WYmyA8IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivokKggPCBidWRkaGlzdFwtZ29kc1wtb3JcLWltbW9ydGFsczsKK+ahkCA8IG5hbWVcLWFwcGxpZWRcLXZhcmlvdXNcLXRyZWVzOwor6JKCIDwgcGVkdW5jbGVcLW9yXC1zdGVtXC1vZlwtcGxhbnRzOwor57S6IDwgZGFya1wtYmx1ZVwtb3JcLXJlZGRpc2hcLWNvbG9yOwor5qO1IDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdHJlZXM7CivmhosgPCB0b1wtc3VwcHJlc3NcLWlubmVyXC1mZWVsaW5nczsKK+WtnCA8IGJlXC1hc1wtZGlsaWdlbnRcLWFzXC1wb3NzaWJsZTsKK+eysSA8IGJldHRlclwtdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5bOSIDwgbW91bnRhaW5cLWluXC1nYW5zdVwtcHJvdmluY2U7CivmpqggPCB0b1wtcHJlc3NcLW9yXC1leHRyYWN0XC1qdWljZXM7CivphLEgPCBjb3VudHlcLWFuZFwtbGFrZVwtaW5cLWppYW5neGk7Civoj6AgPCBzcGluYWNoXC1hbmRcLXNpbWlsYXJcLWdyZWVuczsKK+a3niA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWppYW5nc3U7Civmt4QgPCByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+aCsSA8IHRvXC1iZVwtZGVzaXJvdXNcLW9mXC1zcGVha2luZzsKK+a8ryA8IHJpdmVyXC1pblwtbm9ydGhlcm5cLXNoYW5kb25nOwor6JWZIDwgc3BlY2llc1wtb2ZcLWZyYWdyYW50XC1vcmNoaWQ7Civmu4EgPCBkaXN0cmljdFwtaW5cLWFuaHVpXC1wcm92aW5jZTsKK+eLgSA8IGFcLXRyaWJlXC1vZlwtc2N5dGhpYW5cLW5vbWFkczsKK+mFoiA8IHRvYXN0XC1vbmUnJ3NcLWhvc3RcLXdpdGhcLXdpbmU7Civoob8gPCBjb2xsYXJcLW9yXC1sYXBlbFwtb2ZcLWdhcm1lbnQ7Civltp0gPCBwYXRoXC1sZWFkaW5nXC11cFwtYVwtbW91bnRhaW47Civml4MgPCBzaWxrXC1iYW5uZXJcLXdpdGhcLWJlbnRcLXBvbGU7CivpvZEgPCBicmVha1wtb3JcLXNtYXNoXC1pbnRvXC1waWVjZXM7CivohJggPCBpbnRlcm5hbFwtY2F2aXR5XC1vZlwtc3RvbWFjaDsKK+mVkiA8IG1lYXN1cmVcLW9mXC13ZWlnaHRcLWZvclwtZ29sZDsKK+ecrSA8IGV2aWxcLWxvb2tcLW9mXC1kZWVwXC1zZXRcLWV5ZXM7CivplJYgPCB0aGVcLWNvbG9yXC1vZlwtdGhlXC1hXC1taW5lcmFsOwor6YKZIDwgbW91bnRhaW5cLWluXC1oZW5hblwtcHJvdmluY2U7CivmlasgPCBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6JCRIDwgZ3Jhc3NcLXVzZWRcLWZvclwtbWFraW5nXC1tYXRzOwor6KevIDwgd2luZVwtZ29ibGV0XC1tYWRlXC1mcm9tXC1ob3JuOwor6IijIDwgdG9cLW1vb3JcLWFcLWJvYXRcLXRvXC10aGVcLWJhbms7CivnopHmlocgPCBhblwtaW5zY3JpcHRpb25cLW9uXC1hXC10YWJsZXQ7Civlt7TlhZLni5cgPCBwZWtpbmdlc2VcLVwoYVwtYnJlZWRcLW9mXC1kb2dcKTsKK+S4gOi3r+W5s+WuiSA8IHRvXC1oYXZlXC1hXC1wbGVhc2FudFwtam91cm5leTsKK+e0kOe0hOaZguWgsSA8IG5ld1wteW9ya1wtdGltZXNcLVwobmV3c3BhcGVyXCk7Civlj7DljJcgPCB0YWlwZWlcLVwoY2FwaXRhbFwtb2ZcLXRhaXdhblwpOwor5bi45ZWP5ZWP6aGMIDwgZnJlcXVlbnRseVwtYXNrZWRcLXF1ZXN0aW9uczsKK+eZvuWtlOWNg+eYoSA8IHJpZGRsZWRcLXdpdGhcLWdhcGluZ1wtd291bmRzOwor5YW16YCj56aN57WQIDwgcmF2YWdlZFwtYnlcLXN1Y2Nlc3NpdmVcLXdhcnM7CivmsrPlhacgPCBoYW5vaVwtXChjYXBpdGFsXC1vZlwtdmlldG5hbVwpOwor6YeP5YqbIDwgdG9cLWVzdGltYXRlXC1vbmUnJ3NcLXN0cmVuZ3RoOwor5pys5Zyw566h55CG55WM6Z2iIDwgbG9jYWxcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+mVt+acn+S7peS+hiA8IGV2ZXJcLXNpbmNlXC1hXC1sb25nXC10aW1lXC1hZ287CivlrZjou4romZUgPCBwYXJraW5nXC1sb3RcLVwoZm9yXC1iaWN5Y2xlc1wpOwor5pah5peLIDwgbWVkaWF0ZVwtXChhXC1jb25mbGljdFwsXC1ldGNcLlwpOwor55m85bGV5qC45q2m5ZmoIDwgdG9cLWRldmVsb3BcLW51Y2xlYXJcLXdlYXBvbnM7CivlronlrrbokL3miLYgPCBtYWtlXC1vbmUnJ3NcLWhvbWVcLWluXC1hXC1wbGFjZTsKK+WFpeacqOS4ieWIhiA8IHdyaXR0ZW5cLWluXC1hXC1mb3JjZWZ1bFwtaGFuZDsKK+eJjOWMviA8IGJvYXJkXC1cKGF0dGFjaGVkXC10b1wtYVwtd2FsbFwpOwor5YuV5omLIDwgdG9cLWhpdFwtd2l0aFwtaGFuZHNcLW9yXC1maXN0czsKK+m8u+eJm+WFkiA8IGhhcmRlbmVkXC1tdWN1c1wtaW5cLW5vc3RyaWxzOwor5q2l5pyIIDwgdG9cLXN0cm9sbFwtYmVuZWF0aFwtdGhlXC1tb29uOwor55Ww5q2l5YKz6Ly45qih5byPIDwgYXN5bmNocm9ub3VzXC10cmFuc2ZlclwtbW9kZTsKK+iqk+W4qyA8IHRvXC12b3dcLWJlZm9yZVwtb25lJydzXC10cm9vcHM7Civpg6jlp5QgPCBtaW5pc3RyaWVzXC1hbmRcLWNvbW1pc3Npb25zOwor6Zuj5oCqIDwgXChpdCcnc1wpXC1ub1wtd29uZGVyXC1cKHRoYXRcLlwuXC5cKTsKK+WHjee1kCA8IFwobG9hblwsXC13YWdlXCxcLXByaWNlXClcLWZyZWV6ZTsKK+aWveWKoCA8IGV4ZXJ0XC1cKGVmZm9ydFwtb3JcLXByZXNzdXJlXCk7CivoppbnqpcgPCB3aW5kb3dzXC1cKG9wZXJhdGluZ1wtc3lzdGVtXCk7Civlt6jokZcgPCBtb251bWVudGFsXC1cKGxpdGVyYXJ5XClcLXdvcms7CivliIbmmYLlpJrlt6UgPCB0aW1lXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5Yuf5YyWIDwgdG9cLWNvbGxlY3RcLWFsbXNcLVwoYnVkZGhpc21cKTsKK+aguea3seiSguWbuiA8IGRlZXBcLXJvb3RlZFwtXChwcm9ibGVtXCxcLWV0Y1wpOwor5Y+b6K6K55qE55yB5Lu9IDwgcmVuZWdhZGVcLXByb3ZpbmNlXC1cKHRhaXdhblwpOwor6YOo5LiLIDwgdHJvb3BzXC11bmRlclwtb25lJydzXC1jb21tYW5kOwor6aa1IDwgaG9yc2VcLXdpdGhcLXdoaXRlXC1iYWNrXC1sZWdzOwor6aOjIDwgZGlzcGxheVwtZm9vZFwtZm9yXC1zaG93XC1vbmx5Owor5pif5bO25pel5aCxIDwgc2luZ1wtdGFvXC1kYWlseVwtXChuZXdzcGFwZXJcKTsKK+mXkiA8IHVwcGVyXC1zdG9yeVwtZG9vclwtb3JcLXdpbmRvdzsKK+WFqOeoiyA8IFwoZHVyaW5nXC1hblwpXC1lbnRpcmVcLWpvdXJuZXk7Civplbfnr4cgPCBsZW5ndGh5XC1cKHJlcG9ydFwtb3JcLXNwZWVjaFwpOwor6Zu76IWm6LyU5Yqp5pWZ5p2QIDwgY29tcHV0ZXJcLWFpZGVkXC1pbnN0cnVjdGlvbjsKK+ilv+a5liA8IHRoZVwtd2VzdFwtbGFrZVwsXC1pblwtaGFuZ3pob3U7CivlrqLmiLbmqZ/mnI3li5nlmajnkrDlooMgPCBjbGllbnRcLXNlcnZlclwtZW52aXJvbmVtZW50Owor6YqBIDwgYVwtd2VpZ2h0XC1vZlwtdGhpcnR5XC1jYXR0aWNzOwor6YaKIDwgdG9cLXBvdXJcLXdpbmVcLWluXC1hXC1saWJhdGlvbjsKK+mDvyA8IGNvdW50eVwtaW5cLXNoYWFueGlcLXByb3ZpbmNlOwor6YOzIDwgc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg6AgPCBwbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDmiA8IHRvd25zXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6LykIDwgYVwtcGFsbFwtdG9cLWNvdmVyXC10aGVcLWhlYXJzZTsKK+aSpeW8hCA8IG1vdmVcLXRvXC1hbmRcLWZyb1wtXCh3aXRoXC1oYW5kOwor6KGo6KiYIDwgc29tZXRoaW5nXC1naXZlblwtYXNcLWFcLXRva2VuOwor6LiSIDwgdG9cLXNsaXBcLWFuZFwtc3ByYWluXC1hXC1ibGltYjsKK+ihqOijoSA8IHRoZVwtb3V0c2lkZVwtYW5kXC10aGVcLWluc2lkZTsKK+imkCA8IGFcLXNsZWVwXC10b1wtcmVhbGl6ZVwtdG9cLWZlZWw7CivmoYPoirHpgYsgPCBsdWNrXC13aXRoXC10aGVcLW9wcG9zaXRlXC1zZXg7Civpm7vkv6HmnI3li5kgPCB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2U7CivpgLzlgrUgPCBwcmVzc1wtZm9yXC1wYXltZW50XC1vZlwtZGVidHM7CivlhazplovpkbDljJkgPCBwdWJsaWNcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor6JmhIDwgc3VwcG9ydFwtc3RydWN0dXJlXC1mb3JcLWJlbGw7Civolr4gPCBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWZsb3dlcjsKK+W8l+WhnuWlhyA8IHZlcnNhY2VcLVwoZmFzaGlvblwtZGVzaWduZXJcKTsKK+iMiCA8IGFcLXBsYW50XC15aWVsZGluZ1wtYVwtcmVkXC1keWU7Civmma7pgJroqbEgPCBtYW5kYXJpblwtXChjb21tb25cLWxhbmd1YWdlXCk7Civpm7vkv6HntrLot68gPCB0ZWxlY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivohoYgPCB0aGVcLWNvcnBcLW9mXC1hXC1iaXJkXC1vclwtZm93bDsKK+mbu+iFpui8lOWKqeW3peeoiyA8IGNvbXB1dGVyXC1haWRlZFwtZW5naW5lZXJpbmc7CivmhJ/mn5PkurrmlbggPCBudW1iZXJcLW9mXC1pbmZlY3RlZFwtcGVyc29uczsKK+ethumLkiA8IHRoZVwtdGlwXC1vZlwtYVwtd3JpdGluZ1wtYnJ1c2g7CivloLHliIogPCBuZXdzcGFwZXJzXC1hbmRcLXBlcmlvZGljYWxzOwor55m+5q2l56m/5qWKIDwgc2hvb3RcLXdpdGhcLWdyZWF0XC1wcmVjaXNpb247Civnva0gPCBkcmFnXC1uZXRcLW1hZGVcLW9mXC1maW5lXC1tZXNoOwor572PIDwgZWFydGhlblwtc3RhbmRcLWZvclwtd2luZVwtanVnOwor572NIDwgbGFyZ2VcLWVhcnRoZW53YXJlXC13aW5lXC1qYXI7CivmvJTorJsgPCBcKGdpdmVcKVwtYVwtc3BlZWNoXC1vclwtbGVjdHVyZTsKK+e5uCA8IGhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7CivlnIvniLYgPCBmYXRoZXJcfGZvdW5kZXJcLW9mXC1hXC1uYXRpb247Civnr58gPCBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWJhbWJvbzsKK+S+nemdoCA8IHJlbHlcLW9uXC1cKGZvclwtc3VwcG9ydFwsXC1ldGNcKTsKK+aJgOmVtyA8IGhlYWRcLW9mXC1hblwtaW5zdGl0dXRlXCxcLWV0Y1wuOwor56qGIDwgdG9cLXB1dFwtYVwtY29mZmluXC1pblwtYVwtZ3JhdmU7CivnpbIgPCBvbWlub3VzXC1vclwtc2luaXN0ZXJcLXNwaXJpdDsKK+W5vuW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC1zZXZlcmFsXC15ZWFyczsKK+iLpeW5siA8IGFcLWNlcnRhaW5cLW51bWJlclx8YW1vdW50XC1vZjsKK+eZlSA8IGxvc3NcLW9mXC10aGVcLXNlbnNlXC1vZlwtc21lbGw7CivpoKTlkozlnJIgPCBzdW1tZXJcLXBhbGFjZVwtXChpblwtYmVpamluZ1wpOwor56u26YG4IDwgcnVuXC1mb3JcLVwoZWxlY3RvcmFsXClcLW9mZmljZTsKK+aQtuWFiCA8IHRvXC1ydXNoXC1cKHRvXC1kb1wtc3RoXC11cmdlbnRcKTsKK+ePmyA8IHF1aWNrbHlcLWRldGVyaW9yYXRpbmdcLWphZGU7CivlgZznlZkgPCBzdGF5XC1zb21ld2hlcmVcLXRlbXBvcmFyaWx5Owor5r63IDwgd2F0ZXJcLW92ZXJmbG93aW5nXC1kaWZmdXNlZDsKK+WHuuePvuaEj+WkliA8IFwodG9cLWFwcGVhclwpXC11bmV4cGVjdGVkXChseVwpOwor5q+pIDwgYVwtbGVhdGhlclwtYmFsbFwtZm9yXC1raWNraW5nOwor55eF5qCqIDwgZGlzZWFzZWRcLW9yXC1pbmZlY3RlZFwtcGxhbnQ7Civkv5fnqLEgPCBiZVwtY29tbW9ubHlcLXJlZmVycmVkXC10b1wtYXM7Civmj7kgPCBjYXJyeVwtdGhpbmdzXC1vblwtb25lJydzXC1iYWNrOwor5o+BIDwgc291bmRcLW9mXC1zZXR0aW5nXC11cFwtYVwta290bzsKK+S4gOinuOWNs+eZvCA8IGNvdWxkXC1oYXBwZW5cLWF0XC1hbnlcLW1vbWVudDsKK+ihjOWwhyA8IGJlXC1hYm91dFwtdG9cLVwoZG9cLXNvbWV0aGluZ1wpOwor6Laz55CDIDwgZm9vdGJhbGxcLVwoYnJpdGlzaFwtZW5nbGlzaFwpOwor57qW6Iqv55u05b6RIDwgY29yZVwtZGlhbWV0ZXJcLVwob2ZcLWFcLWZpYmVyXCk7CivlqqcgPCBteXRob2xvZ2ljYWxcLXNuYWlsXC1nb2RkZXNzOwor6IOM6ISKIDwgdGhlXC1iYWNrXC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+WbiSA8IGV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivlrqLmiLbmnI3li5nlmajntZDmp4sgPCBjbGllbnRcLXNlcnZlclwtYXJjaGl0ZWN0dXJlOwor5Zi3IDwgdGhlXC1yb2FyaW5nXC1vZlwtd2lsZFwtYmVhc3RzOwor6YCy6KGM5Lqk5piTIDwgdG9cLWNhcnJ5XC1vdXRcLWFcLXRyYW5zYWN0aW9uOwor5oqX5pOKIDwgcmVzaXN0XC1cKGFcLW1pbGl0YXJ5XC1hdHRhY2tcKTsKK+WJniA8IGNhcnZpbmdcLW9yXC1lbmdyYXZpbmdcLWtuaWZlOwor6aas5L6G5Lq6IDwgbWFsYXlzaWFuXC1wZXJzb25cLW9yXC1wZW9wbGU7Civlho8gPCBhYnV0aWxvblwtYXZpY2VubmFlXC1cKHBsYW50XCk7CivliKXlh7rlv4Poo4EgPCBhZG9wdFwtYW5cLW9yaWdpbmFsXC1hcHByb2FjaDsKK+Wwi+apnyA8IHRvXC1sb29rXC1mb3JcLWFuXC1vcHBvcnR1bml0eTsKK+S5qyA8IHVzZWRcLWluXC1rb3JlYW5cLXBsYWNlXC1uYW1lczsKK+WvpuazgSA8IHdoYXRcLWlzXC1hY3R1YWxseVwtaGFwcGVuaW5nOwor5LWGIDwgZ3JhaW5zXC1mcm9tXC10aGVcLWRpc3RpbGxlcnk7Civksq8gPCBhXC1raW5kXC1vZlwtYmxhY2tcLXNtYWxsXC1iaXJkOwor5K+TIDwgdGhlXC1oZWFkXC1ib25lXC1vZlwtbGl2ZXN0b2NrOwor5K62IDwgZmxvY2tcLW9mXC1ob3JzZXNcLXN0YW1wZWRpbmc7CivkrqMgPCBhXC15ZWxsb3dcLXdpdGhcLWFcLXdoaXRlXC10YWlsOwor5aqS6auU5o6l5Y+j6YCj5o6l5ZmoIDwgbWVkaXVtXC1pbnRlcmZhY2VcLWNvbm5lY3RvcjsKK+W6leeJueW+iyA8IGRldHJvaXRcLVwoYVwtY2l0eVwtaW5cLXRoZVwtdXNcKTsKK+SssSA8IGNvYXJzZVwtZ3JhaW5zXC1zdWNoXC1hc1wtY29ybjsKK+S4reWci+enkeWtuOmZoiA8IGNoaW5lc2VcLWFjYWRhbXlcLW9mXC1zY2llbmNlOwor5KmyIDwgYVwtdG9vbFwtdXNlZFwtdG9cLWN1dFwtbGVhdGhlcjsKK+SpmiA8IHRvXC1tZW5kXC10aGVcLXNvbGVzXC1vZlwtc2hvZXM7Civnmb7nmbznmb7kuK0gPCBldmVyeVwtc2hvdFwtaGl0c1wtdGhlXC10YXJnZXQ7CivkuIHpm7IgPCBkaW5nXC15dW5cLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+iZm+aTrOmAmumBk+mAo+aOpSA8IHZpcnR1YWxcLWNoYW5uZWxcLWNvbm5lY3Rpb247CivkoaYgPCB0aGVcLWVtcHR5XC1zcGFjZVwtb2ZcLWFcLXdoZWVsOwor5qGI5p2/IDwga25lYWRpbmdcLW9yXC1jaG9wcGluZ1wtYm9hcmQ7CivkoIkgPCB0b1wtcnVuXC1hd2F5XC1vclwtZXNjYXBlXC1mcm9tOwor5J6RIDwgYVwtcmVkXC1zd2VsbGluZ1wtb2ZcLXRoZVwtc2tpbjsKK+S/neWuiCA8IFwocG9saXRpY2FsbHlcKVwtY29uc2VydmF0aXZlOwor5JuvIDwgdGhlXC1yZWFzb25hYmxlXC1vZlwtc3BlZWtpbmc7CivkloUgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSFIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC10cmVlczsKK+SSsSA8IHR3aWdzXC1vZlwtaGVtcFwtdXNlZFwtZm9cLWZ1ZWw7CivkjrcgPCBhblwtb2xkXC1tYW5cLXdpdGhcLXdoaXRlXC1oYWlyOwor5LiN6YCBIDwgZG9uJyd0XC1ib3RoZXJcLXRvXC1zZWVcLW1lXC1vdXQ7CivkjKAgPCBob2xkXC1vblwtdG9cLW9uZScnc1wtb3duXC12aWV3czsKK+mdouWaruWwjeixoeeahOaKgOihkyA8IG9iamVjdFwtb3JpZW50ZWRcLXRlY2hub2xvZ3k7CivnpZ7pgZMgPCBzaGludG9cLVwoamFwYW5lc2VcLXJlbGlnaW9uXCk7Civki4AgPCBzaG9lc1wtbWFkZVwtb2ZcLWhlbXBcLW9yXC1oYWlyOwor5IquIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFpbjsKK+SJgiA8IGFcLWJhc2tldFwtZm9yXC1lYXJ0aFwtb3JcLXNvaWw7Civkh5YgPCByb3BlXC1tYWRlXC1vZlwtYmFtYm9vXC1zdHJpcHM7CivkhoAgPCB0b1wtY29ycnVwdFwtb3JcLWJlXC1jb3JydXB0ZWQ7Civkhb4gPCBzdGFydGluZ1wtdG9cLXB1dFwtZm9ydGhcLWVhcnM7CivkhawgPCBzbWFsbFwtYnVuZGxlXC1vZlwtcmljZVwtcGxhbnQ7CivlsIflsLEgPCBhY2NlcHRcLVwoYVwtYml0XC1yZWx1Y3RhbnRseVwpOwor5LiN5Lqi5LiN5Y2RIDwgbmVpdGhlclwtaGF1Z2h0eVwtbm9yXC1odW1ibGU7CivkgY4gPCB0b1wtbWFrZVwtYVwtY2xvc2VcLWluc3BlY3Rpb247CivkgIogPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWNvbnRhaW5lcnM7Civmh7fmirEgPCBcKHdpdGhpblwtc29tZW9uZScnc1wpXC1lbWJyYWNlOwor47ypIDwgY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmc7CivnlKjmiLbnq6/oqK3lgpkgPCBjdXN0b21lclwtcHJlbWlzZVwtZXF1aXBtZW50Owor5oOF5rOB5LiLIDwgdW5kZXJcLVwodGhpc1wpXC1jaXJjdW1zdGFuY2VzOwor47qgIDwgYVwtYmxhY2tcLWFwZVwtd2l0aFwtbG9uZ1wtdGFpbDsKK+O6lSA8IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1vZlwtZG9nczsKK+O5miA8IHNvdW5kXC1vZlwtY2FsbGluZ1wtdG9cLWFcLWNhbGY7Civjt7YgPCB0b1wtZHJ5XC1vclwtd2FybVwtbmVhclwtYVwtZmlyZTsKK+a6q+WTpeiPryA8IHZhbmNvdXZlclwtXChjaXR5XC1pblwtY2FuYWRhXCk7Civjt4MgPCBmaXJlXC1idXJuc1wtZm9yXC1hXC1sb25nXC10aW1lOwor47SUIDwgdGhlXC1ub2lzZVwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47SLIDwgZGVlcFwtYW5kXC1jbGVhclwtXC10b1wtdXJpbmF0ZTsKK+OzpyA8IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWZyb21cLVwuXC5cLjsKK+OxvSA8IHRvXC1oaXRcLW9yXC10b1wtc3RyaWtlaGVhdmlseTsKK+OxuyA8IGRpc2Vhc2VzXC1vZlwtZHVtYlwtY3JlYXR1cmVzOwor47GhIDwgdGhlXC1zb3VsXC1vdXRcLW9mXC1vbmUnJ3NcLWJvZHk7CivjsZQgPCBhXC1zbWFsbFwtcXVhbnRpdHlcLW9yXC1udW1iZXI7Civjr58gPCBmb290XC1vZlwtYVwtaGlsbFwtb3JcLW1vdW50YWluOwor462uIDwgYVwta2luZFwtb2ZcLWxpcXVvclwtY29udGFpbmVyOwor5Y+z6YKKIDwgcmlnaHRcLVwoYXNcLW9wcG9zZWRcLXRvXC1sZWZ0XCk7CivkuI3nrYnlg7nkuqTmj5sgPCBleGNoYW5nZVwtb2ZcLXVuZXF1YWxcLXZhbHVlczsKK+eZvemgree/gSA8IHJvb3RcLW9mXC1jaGluZXNlXC1wdWxzYXRpbGxhOwor76iMIDwgZHVwbGljYXRlXC1vZlwtYmlnXC1maXZlXC1hNDYxOwor55m95aOB54Sh55GVIDwgaW1wZWNjYWJsZVwtbW9yYWxcLWludGVncml0eTsKK+OmgyA8IHBlcmZlY3RcLXBlcnNvbmFsXC1jaGFyYWN0ZXI7CivnpL7oq5YgPCBlZGl0b3JpYWxcLVwoaW5cLWFcLW5ld3NwYXBlclwpOwor5a625bi4IDwgdGhlXC1kYWlseVwtbGlmZVwtb2ZcLWFcLWZhbWlseTsKK+OljSA8IHRvXC1iZWFyXC1qZWFsb3VzXC1oYXRyZWRcLWZvcjsKK+OkrCA8IGZ1bGxcLW9mXC1hbmdlclwtYW5kXC12ZXhhdGlvbjsKK+OkjiA8IGFcLW1vZGVsXC1vclwtdHlwaWNhbFwtZXhhbXBsZTsKK+OkhCA8IHJhZ2luZ1wtYW5pbW9zaXR5XC1vclwtaGF0cmVkOwor46OnIDwgdGhlXC1zdWNjZXNzaW9uXC1pblwtYVwtZmFtaWx5Owor46OjIDwgdG9cLXdhbGtcLWluXC1hblwtdW5zdGVhZHlcLXdheTsKK+OiuCA8IGRldmljZVwtZm9yXC1yZWd1bGF0aW5nXC1ib3dzOwor46KSIDwgYW5cLWFsbW9zdFwtY29sbGFwc2luZ1wtaG91c2U7Civmm7jogZYgPCBhXC1ncmVhdFwtY2FsbGlncmFwaHlcLW1hc3RlcjsKK+OcqiA8IG5hbWVcLW9mXC1hXC1mYW1pbHlcLW9yXC1hXC1jbGFuOwor45yVIDwgcmVsYXRpdmVzXC10aHJvdWdoXC1tYXJyaWFnZTsKK+ObsiA8IHRoZVwtaGFpclwtb25cLXRoZVwtaHVtYW5cLWhlYWQ7Civjmr8gPCBhXC1nb2RkZXNzJydzXC1uYW1lXC1pblwtbGVnZW5kOwor45mhIDwgYVwta2luZFwtb2ZcLWVhdGFibGVcLW11c2hyb29tOwor45i5IDwgdG9cLXNwcmVhZFwtc29pbFwtb25cLXRoZVwtcm9hZDsKK+S4reaWh+eJiCA8IGNoaW5lc2VcLVwobGFuZ3VhZ2VcKVwtdmVyc2lvbjsKK+OYpCA8IGNpcmNsZVwtb2ZcLXRoZVwtbW92aW5nXC13YXRlcjsKK+OWqCA8IGluZGlzdGluY3RcLW5hc2FsXC11dHRlcmFuY2U7Civjkr0gPCBhXC1raW5kXC1vZlwtY2FwXC1mb3JcLWNoaWxkcmVuOwor6auY5Lit55SfIDwgc2VuaW9yXC1oaWdoXC1zY2hvb2xcLXN0dWRlbnQ7CivjkJYgPCBhXC10cmFuc2xhdGVkXC1uYW1lXC1vZlwtaW5kaWE7Civos4fmnKwgPCBjYXBpdGFsXC1cKGFzXC1pblwtY2FwaXRhbGlzbVwpOwor5p2/576955CDIDwgYmF0dGxlZG9yZVwtYW5kXC1zaHV0dGxlY29jazsKK+miqOeQtCA8IG9yZ2FuXC1cKG11c2ljYWxcLWluc3RydW1lbnRcKTsKK+Wtl+W4liA8IGNvcHlib29rXC1cKGZvclwtY2FsbGlncmFwaHlcKTsKK+aVl+WtkOWbnumgrSA8IHJldHVyblwtb2ZcLXRoZVwtcHJvZGlnYWxcLXNvbjsKK+ioquWVj+e+juWciyA8IHRvXC12aXNpdFwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+S4jeWkseaZguapnyA8IHNlaXplXC10aGVcLW9wcG9ydHVuZVwtbW9tZW50Owor5a6J5YiGIDwgbm90XC1nb1wtYmV5b25kXC1vbmUnJ3NcLWJvdW5kczsKK+aal+eskSA8IGxhdWdoXC1pblwtXCh1cFwpXC1vbmUnJ3NcLXNsZWV2ZTsKK+WwjuW9iOa9m+iJhyA8IFwoZ3VpZGVkXClcLW1pc3NpbGVcLXN1Ym1hcmluZTsKK+e+jueOsiA8IG1laVwtbGluZ1wtXChhXC1wZXJzb24nJ3NcLW5hbWVcKTsKK+eip+ihgCA8IGJsb29kXC1zaGVkXC1pblwtYVwtanVzdFwtY2F1c2U7Civlj4PlhanpmaIgPCBib3RoXC1ob3VzZXNcLW9mXC11c1wtY29uZ3Jlc3M7CivmtKrmo64gPCBodW5cLXNlblwtXChjYW1ib2RpYW5cLWxlYWRlclwpOwor56if5ZGKIDwgcmVwb3J0XC1cKHRvXC1vbmUnJ3NcLXN1cGVyaW9yXCk7Civpgbrpq5QgPCByZW1haW5zXC1cKG9mXC1hXC1kZWFkXC1wZXJzb25cKTsKK+mBv+miqCA8IHRha2VcLXNoZWx0ZXJcLWZyb21cLXRoZVwtd2luZDsKK+emj+W7uiA8IGZ1amlhblwtXChwcm92aW5jZVwtb2ZcLWNoaW5hXCk7CivlronlpoLms7DlsbEgPCBhc1wtc2VjdXJlXC1hc1wtbW91bnRcLXRhaXNoYW47Civli5joqqQgPCB0b1wtY29ycmVjdFwtcHJpbnRpbmdcLWVycm9yczsKK+WNh+e0miA8IHRvXC1lc2NhbGF0ZVwtXChpblwtaW50ZW5zaXR5XCk7CivlvLfoqr8gPCB0b1wtZW1waGFzaXplXC1cKGFcLXN0YXRlbWVudFwpOwor6ICM5LiUIDwgbm90XC1vbmx5XC1cLlwuXC5cLWJ1dFwtYWxzb1wtXC5cLlwuXC47Civpgbfpg70gPCB0b1wtbW92ZVwtdGhlXC1jYXBpdG9sXC1cKGNpdHlcKTsKK+S4jee+qeS5i+iyoSA8IGlsbFwtZ290dGVuXC13ZWFsdGhcLW9yXC1nYWluczsKK+mHjeimgeeahOaYryA8IGl0XC1pc1wtaW1wb3J0YW50XC1cKHRoYXRcKVwtXC5cLlwuOwor5LiN5L2GIDwgbm90XC1vbmx5XC1cKFwuXC5cLlwtYnV0XC1hbHNvXC5cLlwuXCk7CivljIXnlKIgPCBtYWtlXC1hXC1wcm9kdWN0aW9uXC1jb250cmFjdDsKK+eZn+ieuueXpyA8IGNob2xlcmFcLVwod2l0aFwtZGVoeWRyYXRpb25cKTsKK+WxiiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRpbWU7CivosIEgPCB3aG9cP1wtd2hvbVw/XC13aG9zZVw/XC1hbnlvbmVcPzsKK+mYvyA8IHByZWZpeFwtZm9yXC1wZW9wbGUnJ3NcLW5hbWVzOwor6I6iIDwgcG9kc1wtb2ZcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+eLhCA8IHRyaWJlXC1mcm9tXC1ub3J0aGVyblwtY2hpbmE7CivnubAgPCB0b1wtcmVlbFwtc2lsa1wtZnJvbVwtY29jb29uczsKK+a8kyA8IHJpdmVyXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7CivlkosgPCBxdWVzdGlvblwtZm9ybWluZ1wtcGFydGljbGU7Civpup8gPCBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor5ritIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor6IqcIDwgbHV4dXJpb3VzXC1ncm93dGhcLW9mXC13ZWVkczsKK+e7jiA8IHRvXC11bnJhdmVsXC1vclwtdW5yZWVsXC1zaWxrOwor55KQIDwgYmVhdXRpZnVsXC12YXJpZXR5XC1vZlwtamFkZTsKK+mftiA8IG11c2ljXC1vZlwtdGhlXC1lbXBlcm9yXC1zaHVuOwor6ayfIDwgZHJlc3NcLWhhaXJcLWluXC1jb2lsZWRcLWtub3Q7CivnvYIgPCBsb25nXC1uZWNrZWRcLWphclwtb3JcLWJvdHRsZTsKK+mdsyA8IHN0cmFwXC1vblwtYVwtaG9yc2UnJ3NcLWJyZWFzdDsKK+a3piA8IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7CivmkKEgPCB0b1wtcHVzaFwtb3Zlclwtb3JcLXB1c2hcLWJhY2s7Civoia4gPCBzZXZlbnRoXC1vZlwtZWlnaHRcLWRpYWdyYW1zOwor5rmfIDwgcml2ZXJcLWluXC1xaW5naGFpXC1wcm92aW5jZTsKK+eMsSA8IGFcLW1vbmtleVwtd2l0aFwteWVsbG93XC1oYWlyOwor5raqIDwgcml2ZXJcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+S6syA8IG5hbWVcLW9mXC1kaXN0cmljdFwtaW5cLWFuaHVpOwor6JS6IDwgcnVzaFwtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7CivnkKwgPCB0aGVcLXZpcnR1ZVwtb2ZcLWFcLWdlbnRsZW1hbjsKK+eMlyA8IGV4Y2xhbWF0aW9uXC1vZlwtYWRtaXJhdGlvbjsKK+m8mSA8IGRydW1cLWNhcnJpZWRcLW9uXC1ob3JzZWJhY2s7CivolbIgPCB2YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhXC1zZWVrOwor55OeIDwgeW91bmdcLW1lbG9uc1wtanVzdFwtZm9ybWluZzsKK+i+gSA8IGNhcnRcLXdoZWVsXC13aXRoXC1ub1wtc3Bva2VzOwor6YWGIDwgbmFtZVwtb2ZcLXpob3VcLXBlcmlvZFwtc3RhdGU7CivljJfmnJ0gPCB0aGVcLW5vcnRoZXJuXC1keW5hc3RpZXNcLVwoYTsKK+i2heaWh+acrOaomeiomOiqnuiogCA8IGh5cGVydGV4dFwtbWFya3VwXC1sYW5ndWFnZTsKK+awuOS5heiZm+mbu+i3ryA8IHBlcm1hbmVudFwtdmlydHVhbFwtY2lyY3VpdDsKK+WMheaUrCA8IHVuZGVydGFrZVwtdGhlXC13aG9sZVwtdGhpbmc7Civli57mlZkgPCByZWVkdWNhdGlvblwtdGhyb3VnaFwtbGFib3I7CivljYrloLQgPCBoYWxmXC1vZlwtYVwtZ2FtZVwtb3JcLWNvbnRlc3Q7CivpgJrkv6HmioDooZMgPCBjb21tdW5pY2F0aW9uc1wtdGVjaG5vbG9neTsKK+eZvOmBlCA8IGRldmVsb3BlZFwtXChjb3VudHJ5XCxcLWV0Y1wuXCk7CivloZ7niL7ntq3kup7lhYvnvoXlnLDkup7oqp4gPCBzZXJib1wtY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+eAiemcsiA8IHRvXC1sZWFrXC1vdXRcLVwoaW5mb3JtYXRpb25cKTsKK+atsuaVuCA8IGFnZVwtXChudW1iZXJcLW9mXC15ZWFyc1wtb2xkXCk7CivlpJbljK/lhLLlgpkgPCBmb3JlaWduXC1leGNoYW5nZVwtcmVzZXJ2ZXM7CivplovoqK0gPCBvZmZlclwtXChnb29kc1wtb3JcLXNlcnZpY2VzXCk7Civlu6PmnbEgPCBndWFuZ2RvbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor5pS+5b+DIDwgdG9cLXNldFwtb25lJydzXC1taW5kXC1hdFwtcmVzdDsKK+mtr+i/hSA8IG5hbWVcLW9mXC1hblwtYXV0aG9yXCxcLWx1XC14dW47CivpgZnmnJsgPCB0b1wtbG9va1wtaW50b1wtdGhlXC1kaXN0YW5jZTsKK+mbu+WtkOmDteS7tuWCs+mAgeacjeWLmSA8IFwoZVwtXCltYWlsXC1kZWxpdmVyeVwtc2VydmljZTsKK+ijnOi2syA8IGJyaW5nXC11cFwtdG9cLWZ1bGxcLXN0cmVuZ3RoOwor6YCP6YCa5oCnIDwgdHJhbnNwYXJlbmN5XC1cKG5ldHdvcmtpbmdcKTsKK+eGrOWknCA8IHN0YXlcLXVwXC1sYXRlXC1vclwtYWxsXC1uaWdodDsKK+mwvCA8IHRoZVwtd2VhdGhlclwtb3JcLWRvam9cLWxvYWNoOwor6auU6amXIDwgdG9cLWV4cGVyaWVuY2VcLWZvclwtb25lc2VsZjsKK+aSleavgCA8IHRlYXJcLXVwXC1cKGFcLWNvbnRyYWN0XCxcLWV0Y1wpOwor5YK+6Yq3IDwgdG9cLWR1bXBcLVwoZ29vZHNcLFwtcHJvZHVjdHNcKTsKK+mflCA8IGFcLXdyYXBwZXJcLW9yXC1jYXNlXC1mb3JcLWJvdzsKK+eci+azlSA8IHdheVwtb2ZcLWxvb2tpbmdcLWF0XC1hXC10aGluZzsKK+mZlyA8IGFcLXN0ZWVwXC1oaWxsXC5cLXByZWNpcGl0b3VzOwor54ef5qWt6aGNIDwgc3VtXC1vclwtdm9sdW1lXC1vZlwtYnVzaW5lc3M7Civpj74gPCB0aGVcLXRyaWdnZXJcLW9mXC1hXC1jcm9zc2JvdzsKK+mXnOazqCA8IGZvbGxvd1wtXChhblwtaXNzdWVcKVwtY2xvc2VseTsKK+mEoCA8IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivphI4gPCBhXC1wbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+WJneWVhCA8IHRhcFwtXChvblwtYVwtZG9vclwtb3JcLXdpbmRvd1wpOwor6L6o5p6QIDwgZGlmZmVyZW50aWF0ZVwtYW5kXC1hbmFseXNlOwor5LiN6L6t6L6b6IumIDwgbWFrZVwtbm90aGluZ1wtb2ZcLWhhcmRzaGlwczsKK+eoi+W8j+eQhuWToSA8IHByb2dyYW1cLW1hbmFnZXJcLVwod2luZG93c1wpOwor6Ke3IDwgdG9cLXByb2Nlc3NcLW9yXC1jYXJ2ZVwtaG9ybnM7CivmsJHkuLvpu6jkurogPCBhXC1kZW1vY3JhdGljXC1wYXJ0eVwtbWVtYmVyOwor6J2wIDwgdmlwZXJhXC1ydXNzZWxpaVwtc2lhbWVuc2lzOwor5Y2B5YSE5L2N5YWD5Lul5aSq57ay57Wh6IGv55ufIDwgZ2lnYWJpdFwtZXRoZXJuZXRcLWFsbGlhbmNlOwor6JG2IDwgZHJhYmFcLW5lbWVyb3NhXC1iZWJlXC1jYXJwYTsKK+iKlCA8IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6IalIDwgZWdnc1wtb2ZcLWJpcmRzXC1vclwtcmVwdGlsZXM7CivkuInljYHlubTkvoYgPCBmb3JcLXRoZVwtcGFzdFwtdGhpcnR5XC15ZWFyczsKK+aKgOihk+eZvOWxlSA8IHRlY2hub2xvZ2ljYWxcLWRldmVsb3BtZW50Owor5ZyL55SiIDwgbWFkZVwtaW5cLW9uZScnc1wtb3duXC1jb3VudHJ5Owor6auY562J5a245qChIDwgY29sbGVnZXNcLWFuZFwtdW5pdmVyc2l0aWVzOwor55m95pePIDwgdGhlXC1iYWlcLVwocGFpXClcLW5hdGlvbmFsaXR5Owor57qRIDwgdG9cLXNvZnRlblwtaGVtcFwtYnlcLWJvaWxpbmc7Civljp/lm6DlvojnsKHllq4gPCB0aGVcLXJlYXNvblwtaXNcLXZlcnlcLXNpbXBsZTsKK+exqSA8IGJhbWJvb1wtY29udGFpbmVyXC1mb3JcLWZvb2Q7CivnsZ0gPCBhXC10dWJlXC10b1wtaG9sZFwtY2hvcHN0aWNrczsKK+W6t+a2heeLhOagvCA8IGNvbm5lY3RpY3V0XC1cKHN0YXRlXC1pblwtdXNcKTsKK+esjiA8IGJhbWJvb1wtd2l0aFwtYmxhY2tcLXBhdGNoZXM7Civllq7pgKPmjqXnq5kgPCBzaW5nbGVcLWF0dGFjaG1lbnRcLXN0YXRpb247CivnppggPCBpbXBlcmlhbFwtYW5jZXN0b3JcLXdvcnNoaXA7Civnn67lgIvlhZIgPCBhXC1wZXJzb25cLW9mXC1zaG9ydFwtc3RhdHVyZTsKK+eXheeZkiA8IHJlY292ZXJcLVwoZnJvbVwtYW5cLWlsbG5lc3NcKTsKK+ekhCA8IHBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7Civlr6zpmZAgPCBleHRlbmRcLVwoYVwtZGVhZGxpbmVcLFwtZXRjXC5cKTsKK+eSqiA8IHBlYXJsXC1wZW5kYW50c1wtb25cLWNvcm9uZXQ7Civnkb0gPCB0aW5rbGluZ1wtb2ZcLWphZGVcLXBlbmRhbnRzOwor54yyIDwgc21va2VcLW9yXC1mbGFtZXNcLWZyb21cLWZpcmU7CivnrKblkIjmqJnmupYgPCB0b1wtY29tcGx5XC13aXRoXC1hXC1zdGFuZGFyZDsKK+ekuuWogemBiuihjCA8IGFcLVwocHJvdGVzdFwpXC1kZW1vbnN0cmF0aW9uOwor5rOcIDwgYVwtcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civms5IgPCBhXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+axrSA8IGNvbmZsdWVuY2VcLW9mXC10d29cLXN0cmVhbXM7Civmq70gPCBzaGFwZVwtd29vZFwtYnlcLXVzZVwtb2ZcLWhlYXQ7CivmmawgPCBmaXJzdFwtYmlydGhkYXlcLW9mXC1hXC1jaGlsZDsKK+ihqOaFiyA8IG1ha2VcLWtub3duXC1vbmUnJ3NcLXBvc2l0aW9uOwor5a6j6KqTIDwgc3dlYXJcLWFuXC1vYXRoXC1cKG9mXC1vZmZpY2VcKTsKK+Wkp+aVteeVtuWJjSA8IGNvbmZyb250XC1hXC1wb3dlcmZ1bFwtZW5lbXk7CivmgoogPCB3aXNlXC5cLXRvXC1rbm93XC1pbnR1aXRpdmVseTsKK+aLnOacmyA8IGNhbGxcLXRvXC1wYXlcLW9uZScnc1wtcmVzcGVjdDsKK+W9jSA8IHRvXC1kcmF3XC1hXC1ib3dcLXRvXC10aGVcLWZ1bGw7CivmoLjlpKflnIsgPCBhXC1udWNsZWFyXC1wb3dlclwtXChjb3VudHJ5XCk7CivluoUgPCBhblwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivnoJToo73pgY7nqIsgPCBtYW51ZmFjdHVyaW5nXC1lbnZpcm9ubWVudDsKK+evh+W5hSA8IFwodGFrZVwtdXBcLW9yXC1kZXZvdGVcKVwtc3BhY2U7Civlj43llIfnm7jorY8gPCBhbnN3ZXJcLWJhY2tcLXNhcmNhc3RpY2FsbHk7CivmoLjovZ/ngrjmqZ8gPCBudWNsZWFyXC1ib21iZXJcLVwoYWlyY3JhZnRcKTsKK+W4jOiHmOiqniA8IFwobW9kZXJuXClcLWdyZWVrXC1cKGxhbmd1YWdlXCk7Civpppbnm7ggPCBcKGphcGFuZXNlXClcLXByaW1lXC1taW5pc3RlcjsKK+aZgumWk+WFpyA8IHdpdGhpblwtXChhXC1wZXJpb2RcLW9mXC10aW1lXCk7CivntrLntaHnrqHnkIbns7vntbEgPCBuZXR3b3JrXC1tYW5hZ2VtZW50XC1zeXN0ZW07CivmiorlvI8gPCBwZXJzb25cLXNraWxsZWRcLWluXC1hXC10cmFkZTsKK+S1tSA8IHllbGxvd2lzaFwtYmxhY2tcLWFuZFwtd2hpdGU7CivktasgPCBsaWdodFwtcmVkXC15ZWxsb3dpc2hcLWJsYWNrOwor5LSbIDwgdG9cLW1ha2VcLWRlY29jdGlvblwtb2ZcLXNhbHQ7Civks7cgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY2hpY2tlbjsKK+SzhiA8IGFcLWtpbmRcLW9mXC1zcGVjaWVzXC1vZlwtbXluYTsKK+SwgiA8IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K6VIDwgaG9yc2VcLXdpdGhcLXdoaXRlXC1mb3JlaGVhZDsKK+StqCA8IHdpbmVcLXBvdXJlZFwtaW5cLWFcLWxpYmF0aW9uOwor5KuAIDwgdGhlXC1sb3dlclwtZW5kXC1vZlwtdGhlXC1qYXdzOwor5KmdIDwgdG9cLXRhblwtYW5kXC1zb2Z0ZW5cLWxlYXRoZXI7CivkuI3lvpfkurrlv4MgPCBub3RcLWVuam95XC1wb3B1bGFyXC1zdXBwb3J0Owor5reY57GuIDwgYmFza2V0XC1cKGZvclwtd2FzaGluZ1wtcmljZVwpOwor5KSCIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXZpbmVnYXI7CivnlKXlpbMgPCBuaWVjZVwtXChzaXN0ZXInJ3NcLWRhdWdodGVyXCk7Civko7QgPCB0b1wtbG9zZVwtdGVtcGVyXC13aGVuXC1kcnVuazsKK+SjhiA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1nYW9taTsKK+SisiA8IHRvXC1nb1wtYWxsXC10aGVcLXdheVwtZm9yd2FyZDsKK+SiriA8IHJhcGlkXC1tYXJjaGluZ1wtb3JcLXJ1bm5pbmc7CivkoqEgPCB0b1wtc3RhbXBcLXRoZVwtZm9vdFwtZm9yd2FyZDsKK+ShuSA8IHRoZVwtbG93XC1yZWFyXC1vZlwtYVwtY2hhcmlvdDsKK+ShryA8IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoaEgPCB0b1wtZ2V0XC11cFwtaW50b1wtYVwtY2FycmlhZ2U7Civnm7ToqIDkuI3oq7EgPCBzcGVha1wtZnJhbmtseVwtYW5kXC1ibHVudGx5Owor5pmv5bGx5YWs5ZySIDwgbmFtZVwtb2ZcLWFcLXBhcmtcLWluXC1iZWlqaW5nOwor5Ji4IDwgdGhlXC1sb3dlclwtZnJvbnRcLW9mXC1hXC1yb2JlOwor5JiSIDwgYm95JydzXC1yZXByb2R1Y3RpdmVcLW9yZ2FuczsKK+SVhCA8IG1lYXRcLWluXC10aGVcLWZvcm1cLW9mXC1wYXN0ZTsKK+STiyA8IGVsbVwtc2VlZHNcLVwtXC1cLXVzZWRcLWFzXC1mb29kOwor5JGiIDwgYVwta25pZmVcLXNoYXBlZFwtc21hbGxcLWJvYXQ7CivkkYggPCBtZWF0XC10b1wtb2ZmZXJcLWZvclwtd29yc2hpcDsKK+a8ouS6uiA8IGhhblwtY2hpbmVzZVwtcGVyc29uXHxwZW9wbGU7Civkja8gPCBnYW90XC13aXRoXC1kaWZmZXJlbnRcLWhvcm5zOwor5I2iIDwgbmV0dGVkXC12ZWluZWRcLXdpbmRvd1wtc2lsbDsKK+SLnyA8IHRoZVwtd2VpZ2h0XC1vblwtYVwtc3RlZWx5YXJkOwor5Iq2IDwgYVwtcm9wZVwtZm9yXC1sZWFkaW5nXC1jYXR0bGU7CivkuJbnlYzooZvnlJ/ntYTnuZQgPCB3b3JsZFwtaGVhbHRoXC1vcmdhbml6YXRpb247CivkvLrmqZ8gPCB0b1wtd2F0Y2hcLWZvclwtb25lJydzXC1jaGFuY2U7CivkiZcgPCBhXC1yZWNlcHRhY2xlXC1vclwtY29udGFpbmVyOwor5IS4IDwgZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEkiA8IHJpcGVuaW5nXC1vZlwtcGFkZHlcLW9yXC1yaWNlOwor5IOBIDwgdW5ldmVuXC1vclwtcnVnZ2VkXC10ZXJyYWluczsKK+SBlCA8IGJpZ1wtZXllc1wtcHJvdHViZXJhbnRcLWV5ZXM7Civjv7AgPCBkdXJhYmxlXC1hbmRcLXNvbGlkXC1sZWF0aGVyOwor6aC46YOoIDwgdGhlXC1uZWNrXC1hcmVhXC1vZlwtdGhlXC1ib2R5Owor47+CIDwgb2JzdHJhY3Rpb25cLW9mXC10aGVcLWJvd2VsczsKK+O+tSA8IGFcLWRhcmtcLWNvbG9yZWRcLWJpcnRoXC1tYXJrOwor476cIDwgd2Vha1wtYnJlYXRoXC1vZlwtYVwtc2lja1wtbWFuOwor472+IDwgYVwta2luZFwtb2ZcLXdvbWFuJydzXC1kaXNlYXNlOwor6YCa6KiK6Ieq5YuV5YyWIDwgY29tbXVuaWNhdGlvbnNcLWF1dG9tYXRpb247CivjuLIgPCBhXC1raW5kXC1vZlwtbW91bnRhaW5cLWNhdHRsZTsKK+O3ryA8IHNtb2tlXC1hbmRcLWR1c3RcLWV2ZXJ5d2hlcmU7CivjtrogPCB0aGVcLWxpZ2h0XC1vclwtZ2xvd1wtb2ZcLWZpcmU7Civjtb0gPCB0aGVcLXN0cmVuZ3RoXC1vZlwtYVwtY3VycmVudDsKK+OxpSA8IHRoZVwtZXZpbFwtc3Bpcml0c1wtY29tZVwtb3V0Owor47CmIDwgdG9cLWJyZWF0aFwtd2l0aFwtbW91dGhcLW9wZW47CivjsJQgPCBhXC1raW5kXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+OwjiA8IGFcLXdvb2RlblwtcGVzdGxlXC1vclwtcmFtbWVyOwor462bIDwgYVwta2luZFwtb2ZcLWNsaW1iaW5nXC1wbGFudHM7CivjqaAgPCBhXC1maWVyY2VcLW9yXC1ibG9vZHlcLWJhdHRsZTsKK+OmmyA8IHRvXC13YWxrXC1pblwtYVwtY29tcG9zZWRcLXdheTsKK+mdouiHqOWbsOmboyA8IHRvXC1iZVwtZmFjZWRcLXdpdGhcLXByb2JsZW1zOwor6IOM5b2xIDwgYVwtdmlld1wtb2ZcLXNvbWVib2R5JydzXC1iYWNrOwor46CdIDwgbG9mdHlcLWFuZFwtc3RlZXBcLW1vdW50YWluczsKK+OgkCA8IGhpZ2hcLWFuZFwtcG9pbnRlZFwtbW91bnRhaW47CivjnpogPCB0b1wtcGlsZVwtdXBcLWxheWVyXC1ieVwtbGF5ZXI7CivjnK8gPCBhXC13b3JkXC10b1wtZGVzaWduYXRlXC13b21hbjsKK+OcriA8IHRvXC1nb1wtYmV5b25kXC1ub3JtYWxcLWxpbWl0Owor5LiN5YuZ5q2j5qWtIDwgbm90XC1lbmdhZ2VcLWluXC1ob25lc3RcLXdvcms7CivjmpMgPCB0aWVcLWJlYW1zXC1vZlwtYVwtc21hbGxcLWJvYXQ7Civni6Hos7QgPCB0b1wtZGVueVwtXCh0aHJvdWdoXC1zb3BoaXNtXCk7CivjmIwgPCB0b1wtbGF1Z2hcLXdpdGhvdXRcLXN0b3BwaW5nOwor45emIDwgYVwtbG91ZFwtYW5kXC1jb25mdXNlZFwtbm9pc2U7Civjl5ogPCB2ZXhpbmdseVwtdmVyYm9zZVwtb3JcLXdvcmR5Owor45eVIDwgdGhlXC1jcm93aW5nXC1vZlwtYVwtcGhlYXNhbnQ7CivjloQgPCBzb3VuZFwtb2ZcLWNhbGxpbmdcLWNoaWNrZW5zOwor45WaIDwgY2xhd3NcLW9mXC1iaXJkc1wtb3JcLWFuaW1hbHM7CivmhJvnkIbkuI3nkIYgPCBsb29rXC1jb2xkXC1hbmRcLWluZGlmZmVyZW50Owor45CzIDwgaGlnaFwtYW5kXC1sZXZlbFwtb25cLXRoZVwtdG9wOwor6K6K6LOjIDwgc2VsbFwtb2ZmXC1cKG9uZScnc1wtcHJvcGVydHlcKTsKK+S4i+W3peWkqyA8IHRvXC1wdXRcLWluXC10aW1lXC1hbmRcLWVuZXJneTsKK+axuuizvSA8IGZpbmFsc1wtXChvZlwtYVwtY29tcGV0aXRpb25cKTsKK+adv+abuCA8IHdyaXRpbmdcLW9uXC10aGVcLWJsYWNrYm9hcmQ7Civnj4Dmlq8gPCBwZXJ0aFwtXChjaXR5XC1pblwtYXVzdHJhbGlhXCk7CivmlLnlloTpgJroqIogPCB0b1wtaW1wcm92ZVwtY29tbXVuaWNhdGlvbnM7CivnuL3lj4PorIDplbcgPCBcKG1pbGl0YXJ5XClcLWNoaWVmXC1vZlwtc3RhZmY7CivmhJvmhpAgPCBzaG93XC10ZW5kZXJcLWFmZmVjdGlvblwtZm9yOwor5pq05ryyIDwgcmlzZVwtc3VkZGVubHlcLWFuZFwtc2hhcnBseTsKK+mMhOWFsSA8IHRvXC10YWtlXC1kb3duXC1hXC1jb25mZXNzaW9uOwor5pys5a62IDwgYVwtbWVtYmVyXC1vZlwtdGhlXC1zYW1lXC1jbGFuOwor6Z2i6IeoIDwgYmVcLWZhY2VkXC13aXRoXC1cKGFcLXByb2JsZW1cKTsKK+iDjOS/oeajhOe+qSA8IGJyZWFrXC1mYWl0aFwtd2l0aFwtc29tZWJvZHk7CivlgLzlvpfms6jmhI/nmoTmmK8gPCBpdCcnc1wtd29ydGhcLW5vdGluZ1wtdGhhdFwuXC5cLjsKK+i3qOWci+WFrOWPuCA8IHRyYW5zbmF0aW9uYWxcLWNvcnBvcmF0aW9uOwor5pel5pys5Lq6IDwgamFwYW5lc2VcLXBlcnNvblwtb3JcLXBlb3BsZTsKK+WFseWSjOm7qOS6uiA8IGFcLXJlcHVibGljYW5cLXBhcnR5XC1tZW1iZXI7CivmsaDmua8gPCBsYXJnZVwtcG9vbFwtaW5cLWFcLWJhdGhob3VzZTsKK+eEoemZkOacnyA8IHVubGltaXRlZFwtXCh0aW1lXClcLWR1cmF0aW9uOwor542O5Yu1IDwgcmV3YXJkXC1cKGFzXC1lbmNvdXJhZ2VtZW50XCk7CivpoIblt64gPCBcKHRyYWRlXC1vclwtYnVkZ2V0XClcLXN1cnBsdXM7CivnkrDnkIPlrprkvY3ns7vntbEgPCBnbG9iYWxcLXBvc2l0aW9uaW5nXC1zeXN0ZW07CivliJ3pgbggPCBcKHVzXClcLXByaW1hcmllc1wtXChlbGVjdGlvblwpOwor5biV6Jit5Y2hIDwgcGFsYW5rYVwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor5aCx6Yq3IDwgc3VibWl0XC1hblwtZXhwZW5zZVwtYWNjb3VudDsKK+icgCA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivmtJsgPCByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civlj5QgPCBmYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivntbkgPCBraW5kXC1vZlwtdGhpY2tcLXN0aWZmXC1zaWxrOwor572pIDwgYmFza2V0XC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5aS3IDwgYW5jaWVudFwtYmFyYmFyaWFuXC10cmliZXM7CivnoLAgPCBzb3VuZFwtb2ZcLWNyYXNoaW5nXC1zdG9uZXM7Civlk44gPCBpbnRlcmplY3Rpb25cLW9mXC1zdXJwcmlzZTsKK+aclCA8IGZpcnN0XC1kYXlcLW9mXC1sdW5hclwtbW9udGg7Civmj6MgPCBwdXRcLXRoaW5nc1wtdW5kZXJcLWNsb3RoZXM7CivltYsgPCBvbWVpXC1tb3VudGFpblwtaW5cLXNpY2h1YW47CivnvIkgPCB0b1wtc2V3XC1pblwtY2xvc2VcLXN0aXRjaGVzOwor5Zm2IDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7CivmjrAgPCB0b1wtYnJlYWtcLXdpdGhcLWJvdGhcLWhhbmRzOwor6ZyGIDwgYVwtc3VkZGVuXC1wZWFsXC1vZlwtdGh1bmRlcjsKK+a8syA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuOwor5bezIDwgc2l4dGhcLW9mXC10d2VsdmVcLWJyYW5jaGVzOwor5ZedIDwgY2Fja2xpbmdcLW9mXC1mb3dsc1wtdG9cLWdhZzsKK+WnmCA8IGlsbGljaXRcLXNleHVhbFwtcmVsYXRpb25zOwor6ZyPIDwgZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+mDuCA8IGNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+WRpiA8IHRoZVwtYmxlYXRpbmdcLW9mXC10aGVcLWRlZXI7Civmjq4gPCB0b1wtYmVhclwtb25cLXRoZVwtc2hvdWxkZXJzOwor6I6GIDwgYVwta2luZFwtb2ZcLWxlZ2VuZGFyeVwtdHJlZTsKK+mYoSA8IGZvb3RwYXRoc1wtYmV0d2VlblwtZmllbGRzOwor6biqIDwgc3BlY2llc1wtb2ZcLXRhaXdhblwtcGlnZW9uOwor5rCQIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC10cmliZTsKK+WRpCA8IHB1cmluZVwtaW5cLWNoZW1cLlwtY29tcG91bmQ7CivlrJcgPCBzdWNjZXNzaW9uXC10b1wtdGhlXC10aHJvbmU7Civop48gPCBtZWV0XC1vclwtc2VlXC11bmV4cGVjdGVkbHk7Civmv64gPCBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpg7QgPCBjb3VudHlcLWluXC1odW5hblwtcHJvdmluY2U7Civovb4gPCBsb3dcLXJlYXJcLXBvcnRpb25cLW9mXC1jYXJ0Owor56ieIDwgZ3JhaW5cLXJlYWR5XC1mb3JcLWdyaW5kaW5nOwor6YOnIDwgY291bnR5XC1pblwtaHViZWlcLXByb3ZpbmNlOwor6Lm8IDwgd2ViYmVkXC1mZWV0XC1vZlwtd2F0ZXJmb3dsOwor55SRIDwgYm9pbGVyXC1mb3JcLXN0ZWFtaW5nXC1yaWNlOwor5aaXIDwgd2lmZVwtb2ZcLW1vdGhlcicnc1wtYnJvdGhlcjsKK+a1oCA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpOwor6bOUIDwgc3dpbW1pbmdcLWJsYWRkZXJcLW9mXC1maXNoOwor56+MIDwgYW5jaWVudFwtbXVzaWNcLWluc3RydW1lbnQ7Civnp5UgPCBlbXB0eVwtZ3JhaW5cLW9yXC1yaWNlXC1odXNrOwor55CaIDwgb3JuYW1lbnRhbFwtZ2Vtc1wtZm9yXC1iZWx0Owor6bK1IDwgY3J5cHRvYnJhbmNodXNcLWphcG9uaWN1czsKK+iJqCA8IGxvbmdcLWFuZFwtbmFycm93XC13YXJcLWJvYXQ7CivmtpEgPCByaXZlclwtaW5cLXNoYW5zaVwtcHJvdmluY2U7Civpm6kgPCBvZmZlclwtc2FjcmlmaWNlXC1mb3JcLXJhaW47Civkvb4gPCBhXC1yb3dcLW9yXC1maWxlXC1vZlwtZGFuY2VyczsKK+e8giA8IHRoZVwtd29vZlwtb2ZcLWFcLXdvdmVuXC1pdGVtOwor6Im0IDwgdGhlXC1jb3VudGVuYW5jZVwtY2hhbmdpbmc7Civmu48gPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZWJlaTsKK+S6uuawkeW5oyA8IGNoaW5lc2VcLXVuaXRcLW9mXC1jdXJyZW5jeTsKK+mmrOWPr+emj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWFyazsKK+a1geawk+e9qiA8IHRoZVwtY3JpbWVcLW9mXC1ob29saWdhbmlzbTsKK+WfjumXnCA8IGFyZWFcLW91dHNpZGVcLWFcLWNpdHlcLWdhdGU7CivpjITpn7PmqZ8gPCBcKHRhcGVcKVwtcmVjb3JkaW5nXC1tYWNoaW5lOwor6YGL566XIDwgXChtYXRoZW1hdGljYWxcKVwtb3BlcmF0aW9uOwor5bee6ZW3IDwgZ292ZXJub3JcLVwob2ZcLWFcLXVzXC1zdGF0ZVwpOwor5q+P5bm05LiA5bqmIDwgb25jZVwtYVwteWVhclwtXChldmVyeVwteWVhclwpOwor5Z+f5ZCN6Ki75YaKIDwgZG9tYWluXC1uYW1lXC1yZWdpc3RyYXRpb247Civku6PkuYvku6UgPCBcKGhhc1wtYmVlblwpXC1yZXBsYWNlZFwtd2l0aDsKK+mDqOWxrCA8IGFmZmlsaWF0ZWRcLXRvXC1hXC1taW5pc3RyeTsKK+W8leaTjiA8IGVuZ2luZVwtXCh0cmFuc2xpdGVyYXRpb25cKTsKK+WFteiytOelnumAnyA8IHNwZWVkXC1pc1wtcHJlY2lvdXNcLWluXC13YXI7CivorormiLLms5UgPCBwZXJmb3JtXC1jb25qdXJpbmdcLXRyaWNrczsKK+WkmumCiuWQiOS9nCA8IG11bHRpbGF0ZXJhbFwtY29vcGVyYXRpb247CivnmbzooYzpoY0gPCBcKHBlcmlvZGljYWxcKVwtY2lyY3VsYXRpb247CivnmbvoqJggPCB0b1wtcmVnaXN0ZXJcLVwob25lJydzXC1uYW1lXCk7CivljYHkuInml6UgPCB0aGlydGlldGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5bmA6aaW5a6a55WM56ymIDwgc3RhcnRcLW9mXC1mcmFtZVwtZGVsaW1pdGVyOwor5oqV5pS+5biC5aC0IDwgdG9cLXB1dFwtc3RoXC1vblwtdGhlXC1tYXJrZXQ7CivmqZ/ntYQgPCBmbGlnaHRcLWNyZXdcLVwob25cLWFcLXBsYW5lXCk7Civpt54gPCB0aGVcLXR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+S4i+WNiui6qyA8IGxvd2VyXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor6bWBIDwgbXljdGljb3JheFwtcHJhc2lub3NjZWxlczsKK+iNkueEoeS6uueFmSA8IGRlc29sYXRlXC1hbmRcLXVuaW5oYWJpdGVkOwor6a6wIDwgYVwtc21hbGxcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mBvOWvpyA8IGxpYW9uaW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+mroCA8IHNoYXZlXC1oZWFkXC1hc1wtcHVuaXNobWVudDsKK+molSA8IG5hbWVcLW9mXC1hXC1mYWJ1bG91c1wtaG9yc2U7CivnhafluLggPCBcKGJ1c2luZXNzXCxcLWV0Y1wpXC1hc1wtdXN1YWw7Civpn4IgPCBhXC1zYWRkbGVcLWZsYXBcLlwtdHJhcHBpbmdzOwor5Zug54m557ay5o+Q5L6b5ZWGIDwgaW50ZXJuZXRcLXNldmljZVwtcHJvdmlkZXI7CivntITnv7Dnpo/pn7MgPCBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLWpvaG47CivpmbQgPCBhXC1wYXJhcGV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+mXpCA8IHdhbGxcLWFyb3VuZFwtbWFya2V0XC1wbGFjZTsKK+WNsOatkOiqnuiogCA8IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7CivmkqvmkbggPCBnZW50bHlcLWNhcmVzc1wtYW5kXC1zdHJva2U7CivliIfmlrcgPCBjdXRcLW9mZlwtXChhXC1zdXBwbHlcLFwtZXRjXC5cKTsKK+e2sue1oeaTjeS9nOezu+e1sSA8IG5ldHdvcmtcLW9wZXJhdGluZ1wtc3lzdGVtOwor57+S5Lul54K65bi4IDwgYmVcLWFjY3VzdG9tZWRcLW9yXC11c2VkXC10bzsKK+WFteiNkummrOS6giA8IHR1cm1vaWxcLWFuZFwtY2hhb3NcLW9mXC13YXI7Civlu7rliLYgPCBvcmdhbml6YXRpb25hbFwtc3RydWN0dXJlOwor5LiN5om/6KqN5Li7576pIDwgcG9saWN5XC1vZlwtbm9ucmVjb2duaXRpb247CivpgIDlvbkgPCByZXRpcmVcLWZyb21cLXRoZVwtbWlsaXRhcnk7CivpgZXlj40gPCB0b1wtdmlvbGF0ZVwtXChhXC1sYXdcLFwtZVwuZ1wuXCk7Civluavlu5ogPCBoZWxwXC1pblwtdGhlXC1tZXNzXC1raXRjaGVuOwor5LiN5YuV6IGy6ImyIDwgbWFpbnRhaW5cLW9uZScnc1wtY29tcG9zdXJlOwor5rWu6bue6YGL566XIDwgZmxvYXRpbmdcLXBvaW50XC1vcGVyYXRpb247CivotJEgPCBcPGFiYnJ2XD5cLWppYW5neGlcLXByb3ZpbmNlOwor6KOc56iFIDwgcGF5XC1hXC10YXhcLW9uZVwtaGFzXC1ldmFkZWQ7CivoqKEgPCB0b1wtY2hhbnRcLXRvXC1tb2FuXC10b1wtc2lnaDsKK+ilsuaTiiA8IFwobWFrZVwtYVwpXC1zdXJwcmlzZVwtYXR0YWNrOwor5YWn5pS/6YOo6ZW3IDwgbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yOwor55m95reoIDwgXChvZlwtc2tpblwpXC1mYWlyXC1hbmRcLWNsZWFyOwor6JuBIDwgcG9tcG9uaWFcLW1hY3VsYXRpb2NvbGxpczsKK+W3oeafpSA8IHRvXC1nb1wtYXJvdW5kXC1hbmRcLWluc3BlY3Q7CivomIAgPCBmYWxsaW5nXC1sZWF2ZXNcLWFuZFwtYmFya3M7Civol7ogPCBydXNoXC11c2VkXC1pblwtbWFraW5nXC1tYXRzOwor5YW15pu4IDwgYVwtYm9va1wtb25cLXRoZVwtYXJ0XC1vZlwtd2FyOwor6I+0IDwgc21hbGxcLWJ1ZGRoaXN0XC1tb25hc3Rlcnk7CivpvLvph53nmYLms5UgPCBub3NlXC1hY3VwdW5jdHVyZVwtdGhlcmFweTsKK+iOlCA8IGZyaXRpbGxhcmlhXC12ZXJ0aWNpbGxhdGE7CivojLwgPCBjaHJ5c2FudGhlbXVtXC1jb3JvbmFyaXVtOwor6ImlIDwgYW5cLW9hclwtb3JcLXBhZGRsZVwuXC10b1wtcm93Owor55Si6Yq3IDwgcHJvZHVjdGlvblwtYW5kXC1tYXJrZXRpbmc7CivohpkgPCBjYWxsb3VzXC1za2luXC1vblwtdGhlXC1mZWV0Owor6IWcIDwgcXVpY2tlbmluZ1wtb2ZcLXRoZVwtZm9ldHVzOwor6IKzIDwgdGhlXC1jb3JuZXJzXC1vZlwtdGhlXC1tb3V0aDsKK+mXjOWwviA8IGFwcGVuZGl4XC1cKGluXC1odW1hblwtYm9keVwpOwor57+bIDwgbG9va1wtb2ZcLXJ1bXBsZWRcLWZlYXRoZXJzOwor572dIDwgbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXRzOwor5bmF5ZOhIDwgYVwtY291bnRyeScnc1wtc3VyZmFjZVwtYXJlYTsKK+iZm+aTrOeSsOWigyA8IHRoZW9yaGV0aWNhbFwtZW52aXJvbm1lbnQ7CivmkqXku5ggPCBhcHByb3ByaWF0ZVwtc3VtXC1vZlwtbW9uZXk7Civnt4wgPCB0YXNzZWxzXC1oYW5naW5nXC1mcm9tXC1oYXQ7Civlr4bliIfms6jmhI8gPCBjbG9zZVwtYXR0ZW50aW9uXC1cKHRvXC1zdGhcKTsKK+Wci+eHnyA8IHN0YXRlXC1ydW5cLVwoY29tcGFueVwsXC1ldGNcKTsKK+WcluWDj+eUqOaItuS7i+mdoiA8IGdyYXBoaWNhbFwtdXNlclwtaW50ZXJmYWNlOwor5624IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtaG9uYW47CivpnaLlmq7lsI3osaHoqp7oqIAgPCBvYmplY3RcLW9yaWVudGVkXC1sYW5ndWFnZTsKK+aQjeWksSA8IGFcLVwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWxvc3M7CivovqblhawgPCBoYW5kbGVcLW9mZmljaWFsXC1idXNpbmVzczsKK+aliueZvue/sOWkp+WtuCA8IGJyaWdoYW1cLXlvdW5nXC11bml2ZXJzaXR5Owor55KgIDwgYVwtcGllY2VcLW9mXC1wcmVjaW91c1wtamFkZTsKK+eOtiA8IG5hbWVcLW9mXC1vbmVcLWtpbmRcLW9mXC1qYWRlOwor542eIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1kb2c7CivkuI3mi5jkuIDmoLwgPCBub3RcLXN0aWNrXC10b1wtb25lXC1wYXR0ZXJuOwor5L2Z6ZyHIDwgXChlYXJ0aHF1YWtlXClcLWFmdGVyc2hvY2tzOwor55Wa566VIDwgYVwtYmFtYm9vXC1vclwtd2lja2VyXC1zY29vcDsKK+eBqCA8IHRoZVwtcml2ZXJcLWdhblwtaW5cLWppYW5neGk7Civmv7IgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hbjsKK+WujOWFqOaHguW+lyA8IHRvXC11bmRlcnN0YW5kXC1jb21wbGV0ZWx5Owor56qB6aGvIDwgbWFrZVwtc29tZXRoaW5nXC1zdGFuZFwtb3V0Owor5LiN5bmz5YmH6bO0IDwgd2hlcmVcLXRoZXJlXC1pc1wtaW5qdXN0aWNlOwor5rSnIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaG9uYW47CivmoLjkuI3mk7TmlaMgPCBudWNsZWFyXC1ub25wcm9saWZlcmF0aW9uOwor5o+h5YqbIDwgXChzdHJlbmd0aFwtb2ZcLW9uZScnc1wpXC1ncmlwOwor5qinIDwgemFudGhveHlsdW1cLWFpbGFudGhvaWRlczsKK+ampCA8IHBlcmNoXC1mb3JcLWZvd2xzXC1yb29zdFwtb247CivlhafmlL/pg6ggPCBtaW5pc3RyeVwtb2ZcLXRoZVwtaW50ZXJpb3I7CivlhbHlkIzplpjpgZPku4vpnaIgPCBjb21tb25cLWdhdGV3YXlcLWludGVyZmFjZTsKK+aTuuiEq+WNseapnyA8IHRvXC1icmVha1wtb3V0XC1vZlwtYVwtY3Jpc2lzOwor5qCCIDwgYVwta2luZFwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+WvjOW4g+iztOeJuSA8IGZ1bGxicmlnaHRcLVwoc2Nob2xhcnNoaXBcKTsKK+aXoSA8IGNob2tlXC1vblwtc29tZXRoaW5nXC1lYXRlbjsKK+mmrOijoSA8IG1hbGlcLVwobmFtZVwtb2ZcLWFcLWNvdW50cnlcKTsKK+aSiyA8IHRvXC1ydWJcLWJldHdlZW5cLXRoZVwtaGFuZHM7Civnl4XmhYsgPCBtb3JiaWRcLW9yXC1hYm5vcm1hbFwtc3RhdGU7CivmjqfliLYgPCB0b1wtXChoYXZlXClcLWNvbnRyb2xcLVwob3ZlclwpOwor5pKl5LqC5Y+N5q2jIDwgYnJpbmdcLW9yZGVyXC1vdXRcLW9mXC1jaGFvczsKK+aDjCA8IHRvXC1iZWFyXC1hXC1ncnVkZ2VcLWFnYWluc3Q7CivkvbPog70gPCBjYW5vblwtXChqYXBhbmVzZVwtY29tcGFueVwpOwor55eF5a62IDwgYVwtcGF0aWVudFwtYW5kXC1oaXNcLWZhbWlseTsKK+eWkeaDkSA8IFwoYVwtc2Vuc2VcLW9mXClcLXVuY2VydGFpbnR5Owor5bS2IDwgbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtaGlsbDsKK+W0gSA8IGFcLXBsYWNlXC1pblwtdGFpd2FuXC10YWluYW47CivlsJ4gPCBmdWVsXC11c2VkXC1mb3JcLXNhY3JpZmljZXM7CivnhKHpu6jmtL4gPCBwb2xpdGljYWxseVwtdW5hZmZpbGlhdGVkOwor5omT54mMIDwgdG9cLXBsYXlcLW1haGpvbmdcLW9yXC1jYXJkczsKK+WlniA8IHRoZVwtc3RyaWRlXC1tYWRlXC1ieVwtYVwtbWFuOwor5aSXIDwgdG9cLXR1cm5cLW92ZXJcLXdoZW5cLWFzbGVlcDsKK+iuiumbu+ermSA8IFwodHJhbnNmb3JtZXJcKVwtc3Vic3RhdGlvbjsKK+WBmuWuoiA8IHRvXC1iZVwtYVwtZ3Vlc3RcLW9yXC12aXNpdG9yOwor5a6J56ys5pav5bGxIDwgdGhlXC1hbmRlc1wtbW91bnRhaW5cLXJhbmdlOwor5YecIDwgc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK+WDsCA8IGFuY2llbnRcLWFib3JpZ2luYWxcLXRyaWJlOwor55m+54WJ5oiQ6Yu8IDwgYmVcLXRlbXBlcmVkXC1pbnRvXC1hXC1zdGVlbDsKK+ihjOS9vyA8IGV4ZXJjaXNlXC1cKGFcLXJpZ2h0XCxcLWV0Y1wuXCk7CivnrYbmjLogPCBcKHN0YW5kaW5nXClcLXZlcnlcLXN0cmFpZ2h0Owor5YiG5L2I5byP57WQ5qeLIDwgZGlzdHJpYnV0ZWRcLWFyY2hpdGVjdHVyZTsKK+WuieelniA8IGNhbG1cLVwoc29vdGhlXClcLXRoZVwtbmVydmVzOwor6IGz6IKpIDwgdG9cLXNocnVnXC1vbmUnJ3NcLXNob3VsZGVyczsKK+S6gyA8IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtYW5pbWFsOwor5Lm6IDwgcGFpbnRpbmdcLXRvb2xcLXBsYWNlXC1uYW1lOwor5Lm2IDwga29yZWFuXC1wbGFjZVwtbmFtZVwtcGhvbGhhOwor5LWCIDwgdG9cLWdyaW5kXC13aGVhdFwtdG9cLXBvd2RlcjsKK+SysyA8IGJpcmRzXC1mbHlpbmdcLXVwXC1hbmRcLWRvd247CivlnIvli5nmrKHljb8gPCB1bmRlclwtc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivkspsgPCBhblwtYW5jaWVudFwtbmFtZVwtZm9yXC10dW5hOwor5LKEIDwgYVwta2luZFwtb2ZcLWZpaXNoXC1pblwtb2NlYW47CivksI0gPCBhXC1raW5kXC1vZlwtZGFya1wtcmVkXC1wYWludDsKK+SwhiA8IGJlYXV0aWZ1bFwtYW5kXC1oYWlyeVwtbWFuZTsKK+SvliA8IHRoZVwtbXVzY2xlc1wtb2ZcLXRoZVwtdGhpZ2g7CivljYrkv6HljYrnlpEgPCBoYWxmXC1iZWxpZXZlXCxcLWhhbGZcLWRvdWJ0Owor5KyzIDwgY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SrryA8IHRvXC10YWtlXC1hXC1jYXN1YWxcLWxvb2tcLWF0Owor5rex56m6IDwgZGVlcFwtc3BhY2VcLVwob3V0ZXJcLXNwYWNlXCk7CivkqoAgPCBrbm93blwtdG9nZXRoZXJcLWFzXC1zYWRkbGU7CivkqJIgPCBzb3VuZFwtb2ZcLXRoZVwtd2F0ZXJcLWRyb3BzOwor5ZSQ57SNIDwgdGFubmVyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+SmqCA8IGFcLWRvb3JcLWN1cnRhaW5cLW9yXC1zY3JlZW47CivkpK8gPCBjb250YWluZXJcLWZvclwtdGhpY2tcLXNvdXA7CivmnKjkuYPkvIogPCBtdW1teVwtXChwcmVzZXJ2ZWRcLWNvcnBzZVwpOwor5KGNIDwgdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtc2hlZWw7Civkn5cgPCB0b1wtc3RhbmRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SfgyA8IHRvXC1tb3ZlXC1vclwtbWFyY2hcLXN3aWZ0bHk7CivkmrYgPCB0b1wtc2NvbGRcLWluXC1hXC1sb3VkXC12b2ljZTsKK+SZnCA8IGxlZ2VuZGFyeVwtbW91bnRhaW5cLWRlaXR5Owor5JmIIDwgYVwtbG9vc2VcLWdhcm1lbnRcLW9yXC1jbG9hazsKK+SZhyA8IGNsb3RoZXNcLW9mXC1jb2Fyc2VcLWZhYnJpYzsKK+SXgiA8IGRpZW15Y3R5bHVzXC1weXJyaG9nYXN0ZXI7CivklKMgPCBhXC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JO0IDwgZWRpYmxlXC1mdW5ndXNcLWZyb21cLXRyZWVzOwor5JGOIDwgc291cFwtb2ZcLXBpZycnc1wtaW50ZXN0aW5lczsKK+SQuyA8IGJpZ1wtcGllY2VzXC1vZlwtZHJpZWRcLW1lYXQ7CivkkLkgPCBwZXJzZXJ2ZWRcLWFuZFwtZHJpZWRcLW1lYXQ7CivkkLAgPCB0b1wtb2ZmZXJcLWZvb2RcLWFzXC10cmlidXRlOwor5aSW5Lqk6YOoIDwgZm9yZWlnblwtYWZmYWlyc1wtbWluaXN0cnk7CivkkIIgPCBmYXRcLW9mXC1hbmltYWxzXC1vclwtcGxhbnRzOwor5I61IDwgdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5IqQIDwgZmx1ZmZ5XC1zdHVmZmVkXC1kdW1wbGluZ3M7Civkio0gPCB0aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7CivmjIHkuI3lkIzmlL/oposgPCBcKHBvbGl0aWNhbGx5XClcLWRpc3NlbnRpbmc7Civkh48gPCB0b1wtcGlsZVwtb25lXC11cG9uXC1hbm90aGVyOwor5IScIDwgaGFwcGluZXNzXC1hbmRcLXdlbGxcLWJlaW5nOwor5ISWIDwgdXNlZFwtaW5cLW5hbWVcLW9mXC1hXC1wZXJzb247Civkg6IgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWxvZnR5Owor5IGHIDwgdG9cLWxvb2tcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivkgKsgPCBuYXJyb3dcLWFuZFwtZGltXC1leWVcLXNpZ2h0Owor47+6IDwganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzOwor5ZGI6KuLIDwgdG9cLXN1Ym1pdFwtXCh0b1wtc3VwZXJpb3JzXCk7CivjvZIgPCB0aGVcLWNoaWxkcmVuXC1vZlwtYVwtc2lzdGVyOwor47y/IDwgdGhlXC1icmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivjvJsgPCBsb25nXC1uZWNrZWRcLXdpbmVcLXZlc3NlbHM7Civju6ogPCBhXC1raW5kXC1vZlwtamFkZVwtZmluZVwtamFkZTsKK+O2hSA8IGRyaWVkXC11cFwtbW91bnRhaW5cLWNyZWVrczsKK+S4iuiotCA8IGFwcGVhbFwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor47WiIDwgYVwtbWFyc2hcLWluXC1hbmNpZW50XC10aW1lczsKK+O0sCA8IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civmh7flv7UgPCB0b1wtY2hlcmlzaFwtdGhlXC1tZW1vcnlcLW9mOwor47ONIDwgYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OziiA8IHRoZVwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivjsoogPCB0b1wtdW5kZXJzdGFuZFwtdGhvcm91Z2hseTsKK+OwviA8IHNvbmdzXC1vZlwtdGhlXC1wZW9wbGVcLW9mXC3mpZo7CivjsL0gPCB0b1wtZXhlcnRcLW9uZXNlbGZcLXRvXC15ZWxsOwor46+rIDwgYVwtd2F0dGxlXC1vclwtYmFtYm9vXC1mZW5jZTsKK+OupiA8IGJyYW5jaGVzXC1ncm93aW5nXC11cHdhcmRzOwor54m56bueIDwgY2hhcmFjdGVyaXN0aWNcLVwoZmVhdHVyZVwpOwor5a2X5q+NIDwgbGV0dGVyXC1cKG9mXC10aGVcLWFscGhhYmV0XCk7CivjqpsgPCB0b1wtcG91bmRcLXJvY2tzXC10b1wtcGllY2VzOwor46qZIDwgdG9cLWdvXC10b1wtdGhlXC12ZXJ5XC1zb3VyY2U7Civjqa0gPCB0b1wtZGlzdHVyYlwtb3JcLXRvXC1hZ2l0YXRlOwor5ouU54Gr572Q5YWSIDwgZGV0YWNoYWJsZVwtc3RvdmVcLWNoaW1uZXk7CivlkIzorIAgPCB0b1wtY29uc3BpcmVcLXdpdGhcLXNvbWVvbmU7CivjoaogPCB0aGVcLXZhcm5pc2hcLW9uXC10aGVcLWZsb29yOwor46GnIDwgdG9cLXN0cmV0Y2hcLW9wZW5cLXBhaW50aW5nOwor46CHIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1yaWRnZTsKK+ahg+WckiA8IHRhb3l1YW5cLVwoY2l0eVwtaW5cLXRhaXdhblwpOwor45y/IDwgbmFtZVwtb2ZcLWFcLWZpc2hcLWluXC1sZWdlbmQ7CivmsZ/pnaIgPCB0aGVcLXN1cmZhY2VcLW9mXC10aGVcLXJpdmVyOwor45epIDwgc291bmRcLW9mXC1lbmR1cmVcLWNvbGRuZXNzOwor45enIDwgdG9cLXNjb2xkXC13aXRoXC1sb3VkXC12b2ljZTsKK+WPpOW4jOiHmOiqniA8IGFuY2llbnRcLWdyZWVrXC1cKGxhbmd1YWdlXCk7Civjk6EgPCB0aGVcLW1pZGRsZVwtcGFydFwtb2ZcLWFcLWJvdzsKK+OQqCA8IGFcLWtpbmRcLW9mXC1maXNoXC1pblwtbGVnZW5kOwor6YGy5rWp55SwIDwgY2hpbmVzZVwtZGVmZW5zZVwtbWluaXN0ZXI7CivnopHpoY0gPCB0aGVcLXRvcFwtcGFydFwtb2ZcLWFcLXRhYmxldDsKK+S8tOWljyA8IHRvXC1hY2NvbXBhbnlcLVwobXVzaWNhbGx5XCk7CivljJfmuqvluLYgPCB0aGVcLW5vcnRoXC10ZW1wZXJhdGVcLXpvbmU7CivmiZPpm7voqbEgPCB0b1wtbWFrZVwtYVwtdGVsZXBob25lXC1jYWxsOwor5Y+z57+8IDwgXChwb2xpdGljYWxseVwpXC1yaWdodFwtd2luZzsKK+a1meaxnyA8IHpoZWppYW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+S6uuawkeino+aUvui7jSA8IHBlb3BsZScnc1wtbGliZXJhdGlvblwtYXJteTsKK+itmOimiyA8IGtub3dsZWRnZVwtYW5kXC1leHBlcmllbmNlOwor6LK35bizIDwgdG9cLXNob3dcLXJlc3BlY3RcLVwoZm9yXC1zYlwpOwor5pqX566tIDwgYXR0YWNrXC1ieVwtYVwtaGlkZGVuXC1lbmVteTsKK+a3seWcsyA8IHNoZW56aGVuXC1cKGNpdHlcLWluXC1jaGluYVwpOwor56iL5bqmIDwgZGVncmVlXC1cKGxldmVsXC1vclwtZXh0ZW50XCk7CivlpKfpl5wgPCBcKHJlYWNoXC1hXClcLWNyaXRpY2FsXC1wb2ludDsKK+W+nuWkluihqOS+hueciyA8IGxvb2tpbmdcLWZyb21cLXRoZVwtb3V0c2lkZTsKK+mgreeJiCA8IFwobmV3c3BhcGVyJydzXClcLWZyb250XC1wYWdlOwor5Y2D57Wy6JCs57i3IDwgbGlua2VkXC1pblwtY291bnRsZXNzXC13YXlzOwor5pil6IGvIDwgc3ByaW5nXC1mZXN0aXZlbFwtY291cGxldHM7CivlhaznnL7pm7vkv6HntrLot68gPCBwdWJsaWNcLXRlbGVwaG9uZVwtbmV0d29yazsKK+S6pOaPm+iZm+mbu+i3ryA8IHN3aXRjaGVkXC12aXJ0dWFsXC1jaXJjdWl0Owor5Lul5L6GIDwgc2luY2VcLVwoYVwtcHJldmlvdXNcLWV2ZW50XCk7Civok67oirEgPCBsb3R1c1wtXChjb21wdXRlclwtY29tcGFueVwpOwor5LiN5pelIDwgd2l0aGluXC10aGVcLW5leHRcLWZld1wtZGF5czsKK+irkuinoyA8IFwocmVhY2hcKVwtYW5cLXVuZGVyc3RhbmRpbmc7CivnoLTlnJ/lhbjnpq4gPCBncm91bmRcLWJyZWFraW5nXC1jZXJlbW9ueTsKK+aVmeWtuOapn+aniyA8IGVkdWNhdGlvbmFsXC1vcmdhbml6YXRpb247CivkuI3pgbrkvZnlipsgPCBzcGFyZVwtbm9cLXBhaW5zXC1vclwtZWZmb3J0Owor6KGo56S65pWs5oSPIDwgcmVzcGVjdGZ1bFwsXC1zaG93XC1yZXNwZWN0Owor6JOL56ugIDwgdG9cLWFmZml4XC1hXC1zZWFsXC1cKHRvXC1zdGhcKTsKK+atoueXm+azlSA8IG1ldGhvZFwtb2ZcLXJlbGlldmluZ1wtcGFpbjsKK+inuOmbuyA8IHRvXC1nZXRcLWFuXC1lbGVjdHJpY1wtc2hvY2s7CivkuLvli5UgPCBcKHRvXC10YWtlXC10aGVcKVwtaW5pdGlhdGl2ZTsKK+i3r+WKoOemj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbHVrZTsKK+iotOiqqiA8IHRlbGxcLVwodG9cLWFub3RoZXJcLXBlcnNvblwpOwor57i957WxIDwgcHJlc2lkZW50XC1cKG9mXC1hXC1jb3VudHJ5XCk7CivloLHpoK0gPCBtYXN0aGVhZFwtXChvZlwtYVwtbmV3c3BhcGVyOwor5Y2X5rKZIDwgbmFuc2hhXC1cKHNwcmF0bHlcKVwtaXNsYW5kczsKK+mAmumBkyA8IFwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+aUv+e4viA8IFwocG9saXRpY2FsXClcLWFjaGlldmVtZW50czsKK+eepSA8IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5beeIDwgYWRtaW5pc3RyYXRpdmVcLWRpdmlzaW9uOwor5ZCnIDwgZW1waGF0aWNcLWZpbmFsXC1wYXJ0aWNsZTsKK+afkCA8IGNlcnRhaW5cLXRoaW5nXC1vclwtcGVyc29uOwor56WoIDwgc2xpcFwtb2ZcLXBhcGVyXC1vclwtYmFtYm9vOwor6IC2IDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+WOmCA8IHRob3VzYW5kdGhcLXBhcnRcLW9mXC10YWVsOwor5b2tIDwgbmFtZVwtb2ZcLWFuY2llbnRcLWNvdW50cnk7CivogrQgPCBjb29rZWRcLW9yXC1wcmVwYXJlZFwtbWVhdDsKK+S/jiA8IGNob3BwaW5nXC1ib2FyZFwtb3JcLWJsb2NrOwor5reuIDwgcml2ZXJcLWluXC1hbmh1aVwtcHJvdmluY2U7Civlk6YgPCBvaFw/XC1yZWFsbHlcP1wtaXNcLXRoYXRcLXNvXD87CivplKQgPCBiYWxhbmNlXC13ZWlnaHRcLW9uXC1zY2FsZTsKK+S7niA8IGFuY2llbnRcLXVuaXRcLW9mXC1tZWFzdXJlOwor6IqtIDwgcGxhbnRhaW5cLW9yXC1iYW5hbmFcLXBhbG07Civno4ogPCBwaWxlXC1vZlwtcm9ja3NcLW9yXC1zdG9uZXM7CivlkbggPCBleHByZXNzaW9uXC1vZlwtcmVwcmltYW5kOwor5ou3IDwgdG9ydHVyZVwtYW5kXC1pbnRlcnJvZ2F0ZTsKK+aKvyA8IHB1Y2tlclwtdXBcLWxpcHNcLWluXC1zbWlsZTsKK+WNiSA8IGdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6au7IDwgaGFpclwtcm9sbGVkXC11cFwtaW5cLWFcLWJ1bjsKK+ijhiA8IGNyb3RjaFwtb3JcLXNlYXRcLW9mXC1wYW50czsKK+iYkSA8IHR5cGVcLW9mXC1lZGlibGVcLW11c2hyb29tOwor5ZK/IDwgZGVzY3JpcHRpdmVcLW9mXC1jcmVha2luZzsKK+evviA8IGJhbWJvb1wtc3BsaW50c1wtb3JcLXNsYXRzOwor5reHIDwgcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7Civok5EgPCByYWluXC1jb2F0XC1tYWRlXC1vZlwtc3RyYXc7CivmqqwgPCB0eXBlXC1vZlwtbG9jdXN0XC1vcmFjYWNpYTsKK+a3mSA8IGd1cmdsaW5nXC1zb3VuZFwtb2ZcLXdhdGVyOwor5q6TIDwgZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivnkKUgPCBqZXdlbFwtaW5cLXNoYXBlXC1vZlwtdGlnZXI7CivmvZ4gPCByaXZlclwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+mGjSA8IGVzc2VudGlhbFwtb2lsXC1vZlwtYnV0dGVyOwor5aavIDwgd2l2ZXNcLW9mXC1vbmUnJ3NcLWJyb3RoZXJzOwor5biPIDwgY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7Civnk5IgPCBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor55GXIDwgbGFyZ2VcLXJpbmdcLW9mXC1maW5lXC1qYWRlOwor5raeIDwgcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivniLsgPCBkaWFncmFtc1wtZm9yXC1kaXZpbmF0aW9uOwor6ZSfIDwgYW5jaWVudFwtdHJlYXN1cmVkXC1zd29yZDsKK+iKlyA8IGZyYWdyYW50XC1zbWVsbFwtb2ZcLWdyYWluOwor5qWmIDwgYVwtbGFzdFwtZm9yXC1tYWtpbmdcLXNob2VzOwor6IiBIDwgY2FycnlcLW9uXC1vbmUnJ3NcLXNob3VsZGVyOwor5rugIDwgcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civlv4zmgaggPCBoYXRlXC1cKGR1ZVwtdG9cLWVudnlcLFwtZXRjXCk7Civpm7nngb0gPCBkaXNhc3RlclwtY2F1c2VkXC1ieVwtaGFpbDsKK+WHuuioqiA8IHZpc2l0XC1hXC1mb3JlaWduXC1jb3VudHJ5Owor5qC45q2m5Zmo5p2Q5paZIDwgbnVjbGVhclwtd2VhcG9uXC1tYXRlcmlhbDsKK+mAmuioiuihjOalrSA8IGNvbW11bmljYXRpb25zXC1pbmR1c3RyeTsKK+WMl+WNiueQgyA8IHRoZVwtbm9ydGhlcm5cLWhlbWlzcGhlcmU7Civpm5nntZ7nt5ogPCB1bnNoaWVsZGVkXC10d2lzdGVkXC1wYWl0Owor55m85L2I5paw6Luf5Lu2IDwgdG9cLXJlbGVhc2VcLW5ld1wtc29mdHdhcmU7CivmlpHmlpEgPCBmdWxsXC1vZlwtc3RhaW5zXC1vclwtc3BvdHM7Civopb/oo50gPCBcKHdlc3Rlcm5cLXN0eWxlXClcLWNsb3RoZXM7CivliqDmsrkgPCB0b1wtbWFrZVwtYW5cLWV4dHJhXC1lZmZvcnQ7Civli5/mjZAgPCB0b1wtc29saWN0XC1jb250cmlidXRpb25zOwor5bCI5bGs57aT5r+f5Y2AIDwgZXhjbHVzaXZlXC1lY29ub21pY1wtem9uZTsKK+eatOijgiA8IGNoYXBcLVwobGlwc1wsXC1za2luXCxcLWV0Y1wuXCk7CivopovogZ4gPCB3aGF0XC1vbmVcLXNlZXNcLWFuZFwtaGVhcnM7CivljIXmib/liLYgPCByZXNwb25zaWJsZVwtY3Jld1wtc3lzdGVtOwor5Y2X5LqsIDwgbmFuamluZ1wtXChjaXR5XC1pblwtY2hpbmFcKTsKK+imj+e0hCA8IHRlcm1zXC1cKG9mXC1hblwtYWdyZWVtZW50XCk7Civmrbjlv4MgPCBjb252ZXJ0ZWRcLXRvXC1cKHJlbGlnaW9uXCk7CivpgLzmrbsgPCBob3VuZFwtc29tZWJvZHlcLXRvXC1kZWF0aDsKK+acrOS9jeS4u+e+qSA8IHNlbGZpc2hcLWRlcGFydG1lbnRhbGlzbTsKK+eCuuaJgOassueCuiA8IGRvXC13aGF0ZXZlclwtb25lXC1wbGVhc2VzOwor5Lq65rCR5rOV6ZmiIDwgcGVvcGxlJydzXC1jb3VydFwtXChvZlwtbGF3XCk7CivllYbmpa3mqZ/mp4sgPCBjb21tZXJjaWFsXC1vcmdhbml6YXRpb247CivpvI8gPCBjb3Zlclwtb2ZcLXRyaXBvZFwtY2FsZHJvbjsKK+m7sCA8IHlvdW5nXC1naXJsJydzXC1oYWlyXC1zdHlsZTsKK+e1seayuyA8IFwocG9saXRpY2FsXClcLXJ1bGVcLVwob3ZlclwpOwor6KOc6KqyIDwgbWFrZVwtdXBcLWFcLW1pc3NlZFwtbGVzc29uOwor6YCZ5qijIDwgdGhpc1wtXChraW5kXC1vZlwsXC1zb3J0XC1vZlwpOwor5pKt5pS+5qmfIDwgcGxheWVyXC1cKGVcLmdcLlwtY2RcLXBsYXllclwpOwor6YGU5oiQIDwgdG9cLXJlYWNoXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+eZvuiIrCA8IGluXC1odW5kcmVkXC1hbmRcLW9uZVwtd2F5czsKK+msgiA8IHRoZVwtaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+emgeatouaguOatpuWZqOippumpl+ainee0hCA8IG51Y2xlYXJcLXRlc3RcLWJhblwtdHJlYXR5Owor6aeuIDwgYVwta2luZFwtb2ZcLWZpZXJjZVwtYW5pbWFsOwor5LiN57+86ICM6aObIDwgZGlzYXBwZWFyXC13aXRob3V0XC10cmFjZTsKK+aOiOioiCA8IHRvXC1jb25maWRlXC1hXC1wbGFuXC10b1wtc2I7CivnlaLmga3nlaLmlawgPCByZXZlcmVudFwtYW5kXC1yZXNwZWN0ZnVsOwor56eR56CU5Lq65ZOhIDwgXChzY2llbnRpZmljXClcLXJlc2VhcmNoZXI7CivloLHmm4kgPCBoZXJhbGRcLXRoZVwtYnJlYWtcLW9mXC1kYXk7Civmk5rntbHoqIggPCBhY2NvcmRpbmdcLXRvXC1zdGF0aXN0aWNzOwor6YCP6Zyy5raI5oGvIDwgdG9cLWRpc2Nsb3NlXC1pbmZvcm1hdGlvbjsKK+S4reWci+aZguWgsSA8IGNoaW5hXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+mEviA8IHBsYWNlXC1pblwtaHViZWlcLXByb3ZpbmNlOwor6YSsIDwgcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivphJggPCBzdGF0ZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+WIqeW4giA8IFwibGFpXC1zZWVcIlwtXChsdWNreVwtbW9uZXlcKTsKK+mDsCA8IGJpcnRocGxhY2VcLW9mXC1jb25mdWNpdXM7CivpgqcgPCB0b3duXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WBtOmHjSA8IHBsYWNlXC1leHRyYVwtZW1waGFzaXNcLW9uOwor5aCx5oGpIDwgcGF5XC1hXC1kZWJ0XC1vZlwtZ3JhdGl0dWRlOwor55WZ5a2455SfIDwgc3R1ZGVudFwtc3R1ZHlpbmdcLWFicm9hZDsKK+WogeW7ieaWr+WgoSA8IHdpbGxpYW1zYnVyZ1wtXCh2aXJnaW5pYVwpOwor5L6/5a6c6KGM5LqLIDwgYWN0XC1hdFwtb25lJydzXC1kaXNjcmV0aW9uOwor5bmr5a2QIDwgb3V0ZXJcLVwob2ZcLWNhYmJhZ2VcLFwtZXRjXCk7Civoh6rosaogPCBcKGZlZWxcLWFcLXNlbnNlXC1vZlwpXC1wcmlkZTsKK+WPjeiJpuiJh+W3oeiIquWwjuW9iCA8IGFudGlcLXNoaXBcLWNydWlzZVwtbWlzc2xlOwor6Jq7IDwgc21hbGxcLXNwZWNpZXNcLW9mXC1jaWNhZGE7CivokrEgPCBnYW1ibGluZ1wtZ2FtZVwtd2l0aFwtZGljZTsKK+iRpyA8IGhlbGVvY2hhcmlzXC1wbGFudGFnaW5lYTsKK+a1geS6oeWcqOa1t+WkliA8IHRvXC1iZVwtaW5cLWV4aWxlXC1vdmVyc2VhczsKK+mYsuWLmSA8IFwocGVydGFpbmluZ1wtdG9cKVwtZGVmZW5zZTsKK+alree4viA8IG91dHN0YW5kaW5nXC1hY2hpZXZlbWVudDsKK+iIsiA8IHNtYWxsXC1ib2F0XC13aXRoXC13aW5kb3dzOwor5ZWG5qWt566h55CGIDwgYnVzaW5lc3NcLWFkbWluaXN0cmF0aW9uOwor55WZ6KiAIDwgdG9cLWxlYXZlXC1vbmUnJ3NcLWNvbW1lbnRzOwor576rIDwgdGhlXC1za2VsZXRvblwtb2ZcLWFcLXNoZWVwOwor5bm05L6GIDwgb3ZlclwtdGhlXC1sYXN0XC1cLlwuXC5cLXllYXJzOwor5729IDwgYVwta2luZFwtb2ZcLXdvb2xlblwtZmFicmljOwor6ZaL5ouNIDwgYmVnaW5cLXNob290aW5nXC1cKGFcLWZpbG1cKTsKK+WIhuS5iyA8IFwoaW5kaWNhdGluZ1wtYVwtZnJhY3Rpb25cKTsKK+eyuiA8IHBvbGlzaGVkXC1yaWNlXC1vclwtbWlsbGV0Owor5aSa5bm05L6GIDwgZm9yXC10aGVcLXBhc3RcLW1hbnlcLXllYXJzOwor56+nIDwgY3JlZWxcLWZvclwtdHJhcHBpbmdcLWZpc2g7Civnr5sgPCBjdXRpY2xlXC1vZlwtYmFtYm9vXC1wbGFudDsKK+WfuuekjumAn+eOhyA8IGJhc2ljXC1yYXRlXC1cKGFzXC1pblwtaXNkblwpOwor562U6KydIDwgdG9cLWV4cHJlc3NcLW9uZScnc1wtdGhhbmtzOwor56WUIDwgd29yc2hpcFwtb25lJydzXC1hbmNlc3RvcnM7CivnrYboq4cgPCBjb252ZXJzYXRpb25cLWJ5XC13cml0aW5nOwor55Gq6bqXIDwgbWFsaVwtXChhXC1wZXJzb24nJ3MnJ1wtbmFtZVwpOwor552WIDwgdG9cLXN0YXJlXC1zdHJhaWdodFwtYWhlYWQ7CivnnKIgPCBleWVzXC13aXRob3V0XC1icmlnaHRuZXNzOwor55eH54uAIDwgc3ltcHRvbVwtXChvZlwtYW5cLWlsbG5lc3NcKTsKK+eVviA8IGZpZWxkc1wtZGl2aWRlZFwtYnlcLWRpa2VzOwor55KyIDwgcGVuZGFudFwtZ2lyZGxlXC1vcm5hbWVudDsKK+eRvyA8IGFcLWJsYWNrXC1zdG9uZVwtbGlrZVwtamFkZTsKK+eRryA8IGtpbmRcLW9mXC13aGl0ZVwtY29ybmVsaWFuOwor55GiIDwgZ2VtXC1vcm5hbWVudHNcLWZvclwtYmVsdHM7Civnj7YgPCB3aGl0ZVwtamFkZVwtd29yblwtb25cLWJlbHQ7CivkuK3np4vnr4AgPCB0aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbDsKK+eOlSA8IGluZmVyaW9yXC12YXJpZXR5XC1vZlwtZ2VtOwor5L2U6aCYIDwgdG9cLW9jY3VweVwtXChhXC10ZXJyaXRvcnlcKTsKK+eMiCA8IGRvZ1wtd2l0aFwtc2hvcnRcLXNoaW5ib25lOwor5omL5a+r6K2Y5YilIDwgaGFuZHdyaXRpbmdcLXJlY29nbml0aW9uOwor5r6JIDwgdG9cLXdhc2hcLW5hbWVcLW9mXC1hXC1wbGFjZTsKK+a9liA8IG5hbWVcLW9mXC1hXC1jZXJ0YWluXC1yaXZlcjsKK+mdnuebiOWIqeeahOe1hOe5lCA8IG5vblwtcHJvZml0XC1vcmdhbml6YXRpb247CivmrpkgPCB0b1wtZGllXC1ieVwtdGFraW5nXC1wb2lzb247CivmrYEgPCB1bnNhdGlzZmllZFwtXChvZlwtZWF0aW5nXCk7CivmrKggPCB0b1wtYmxvd1wtb3JcLWJyZWF0aGVcLXVwb247CivmrI8gPCB0cmVlXC10aGVcLWhvcnNlXC1jaGVzdG51dDsKK+aqhyA8IHdvb2RlblwtcmFtbWVyXC1vclwtcGVzdGxlOwor5qmUIDwgYVwtd29vZGVuXC1jaG9wcGluZ1wtYmxvY2s7CivoqIrmga/omZXnkIbns7vntbEgPCBtZXNzYWdlXC1oYW5kbGluZ1wtc3lzdGVtOwor5YKZ5paZIDwgZ2V0XC10aGVcLW1hdGVyaWFsc1wtcmVhZHk7CivlnablhYsgPCB0YW5rXC1cKG1pbGl0YXJ5XC12ZWhpY2xlXCk7Civppqzot6/lj6MgPCBpbnRlcnNlY3Rpb25cLVwob2ZcLXJvYWRzXCk7Civlm5vlt50gPCBzaWNodWFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+aAuCA8IGNuc1wtMlwtMmE0MFwtaXNcLWRpZmZlcmVudDsKK+avlOavlOeahuaYryA8IGNhblwtYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5LiN5oq15oqX5Li7576pIDwgcG9saWN5XC1vZlwtbm9ucmVzaXN0YW5jZTsKK+iyqemBiyA8IHRvXC10cmFuc3BvcnRcLVwoZm9yXC1zYWxlXCk7CivlooQgPCB0aGVcLXN0ZXBzXC1vZlwtYVwtc3RhaXJ3YXk7CivmlbjlrZfoqILos7znt5rot68gPCBkaWdpdGFsXC1zdWJzY3JpYmVyXC1saW5lOwor5qOE6IiK5o+b5pawIDwgdG9cLXR1cm5cLW92ZXJcLWFcLW5ld1wtbGVhZjsKK+S7iuitryA8IG1vZGVyblwtbGFuZ3VhZ2VcLXZlcnNpb247CivkuI3mg4XkuYvoq4sgPCBteVwtcHJlc3VtcHR1b3VzXC1yZXF1ZXN0Owor5ZWrIDwgaW50ZXJqZWN0aW9uXC1vZlwtd2FybmluZzsKK+aKleaUviA8IHRvXC1wdXRcLWluXC1cKGNpcmN1bGF0aW9uXCk7CivlkJogPCB1c2VkXC10b1wtcmVwcmVzZW50XC1zb3VuZDsKK+WMgSA8IGphcGFuZXNlXC11bml0XC1vZlwtd2VpZ2h0Owor55eF5YCSIDwgYmVcLWRvd25cLXdpdGhcLWFuXC1pbGxuZXNzOwor5ou35ZWPIDwgdG9cLXF1ZXN0aW9uXC12aWFcLXRvcnR1cmU7Civku74gPCB0b1wtaGFuZ1wtb3JcLWJvd1wtdGhlXC1oZWFkOwor5LadIDwgZ3Jvd2luZ1wtaXJyZWd1bGFyXC10ZWV0aDsKK+S1iCA8IHVuc21lbHRlZFwtaGVtcFwtYW5kXC1zaWxrOwor5LWAIDwgY29hcnNlXC1jcnVtYnNcLW9mXC1iYXJsZXk7CivktJEgPCBhXC1sZWdlbmRhcnlcLXdlaXJlZFwtYmlyZDsKK+S0hyA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1jcmFuZTsKK+S0gSA8IGFcLWtpbmRcLW9mXC1yYXRcLWxpa2VcLWJpcmQ7Civks7IgPCBhXC1zd2FybVwtb2ZcLWZseWluZ1wtYmlyZHM7CivksrQgPCBhXC1raW5kXC1vZlwtdmVub21vdXNcLWJpcmQ7Civksb4gPCBhXC1jYXJwXC1saWtlXC1zYXZvcnlcLWZpc2g7CivksKsgPCBuaW1ibGVcLWFuZFwtYWN0aXZlXC1naG9zdDsKK+mbmemAo+aOpeermSA8IGR1YWxcLWF0dGFjaG1lbnRcLXN0YXRpb247CivkrYcgPCB0b1wtYmVcLWNob2NrZWRcLXdpdGhcLWZvb2Q7CivkrYYgPCBzbWFsbFwtY2hpbGRyZW5cLWVhdFwtbGVzczsKK+SssiA8IHRvXC1lYXRcLXRvXC10aGVcLWhhbGZcLWZ1bGw7CivkrKogPCBhXC1raW5kXC1vZlwtY29va2VkXC1ub29kbGU7CivkrJsgPCB0aGVcLXJvYXJpbmdcLW9mXC10aGVcLXdpbmQ7CivmgqPpm6MgPCB0cmlhbHNcLWFuZFwtdHJpYnVsYXRpb25zOwor5KiXIDwgZXhjZXNzaXZlXC1yYWluXC1hbmRcLXNub3c7CivkqIUgPCBzbWFsbFwtYmlyZHNcLVwtXC1cLXRoZVwtd3JlbjsKK+mNm+eFiSA8IHRvXC1kb1wtcGh5c2ljYWxcLXRyYWluaW5nOwor5KWWIDwgc2lsdmVyXC1vZlwtZ29sZFwtZmlsYWdyZWU7CivkpY8gPCB1bmZpdHRlZFwtZm9yXC1lYWNoXC1vdGhlcjsKK+SkpSA8IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+SinCA8IHRoZVwtbWFycmlhZ2VcLW9mXC1hXC13b21hbjsKK+ShvSA8IHRoZVwtc2hhZnRzXC1vZlwtYVwtdmVoaWNsZTsKK+ShuiA8IHRoZVwtZW5kXC1vZlwtYW5cLWF4bGVcLXRyZWU7CivkoaMgPCBhXC1waWVjZVwtb2ZcLWN1cnZlZFwtYm9hcmQ7CivkoKMgPCBuZXRcLXRvXC10cmFwXC10aGVcLWFuaW1hbHM7CivknYggPCBhXC1iaWdcLWFuZFwtc3RyZW51b3VzXC1waWc7CivkmpAgPCBnZXR0aW5nXC1yZWRcLWluXC10aGVcLWV5ZXM7CivkmoogPCB0b1wtbG9va1wtZnJvbVwtYVwtZGlzdGFuY2U7CivkmZAgPCBmdXJzXC1hbmRcLWxpbmVuXC1nYXJtZW50czsKK+SYhiA8IGFcLXNlY29uZFwtZm9ybVwtZWFydGh3b3JtOwor5JegIDwgdGhlXC1sYXJ2YVwtb2ZcLW1vc3F1aXRvZXM7Civkl5QgPCBhXC1ob3VzZVwtbGl6YXJkXC1vclwtZ2Vja287CivklrEgPCBsYXJnZVwtc2hyaW1wXC1pblwtdGhlXC1zZWE7CivklL4gPCBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLWhlcmI7Civkk7EgPCBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivmiLTntq3mlq8gPCBkYXZpc1wtXChlbmdsaXNoXC1zdXJuYW1lXCk7Civoo5zliqnntYTnuZQgPCBhdXhpbGlhcnlcLW9yZ2FuaXphdGlvbnM7CivkkKQgPCBkcmllZFwtYW5kXC1zZWFzb25lZFwtbWVhdDsKK+SQkCA8IGN1cnZlZFwtcGFydFwtb2ZcLXRoZVwta25lZTsKK+SPmSA8IGJyaW5lXC1mcm9tXC1waWNrbGVkXC1tZWF0Owor5I+VIDwgdG9cLWNvb2tcLWZvb2RcLXRob3JvdWdobHk7CivntIXmqJPlpKIgPCBhXC1kcmVhbVwtb2ZcLXJlZFwtbWFuc2lvbnM7CivkjbkgPCBvZG9yXC1vZlwtYVwtc2hlZXBcLW9yXC1nb2F0Owor5I2ZIDwgbmV0c1wtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivkjZggPCBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLW5ldHM7CivkjZMgPCBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdDsKK+SLqyA8IHRvXC13aW5kXC1yb3VuZFwtdGhlXC1yb3BlczsKK+SLqCA8IHRvXC1zZXRcLWluXC1vcmRlclwtdGhlXC1vbGQ7CivkirQgPCBmb29kXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7CivkiqogPCBjb2Fyc2VcLXJpY2VcLVwtXC1cLXVuaHVsbGVkOwor5ImcIDwgeW91bmdcLWFuZFwtdGVuZGVyXC1iYW1ib287CivkiZYgPCBmcmFtZXdvcmtcLW9mXC1hXC1jYXJyaWFnZTsKK+SHlyA8IGJhbWJvb1wtd2l0aFwtbG9uZ1wtam9pbnRzOwor5IeRIDwgYVwtc3RhbmRpbmdcLXNob3J0XC1wZXJzb247CivkhoogPCB1bmh1c2tlZFwtZ2x1dGlub3VzXC1yaWNlOwor5IaJIDwgdGhlXC1zd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor6JuZ5rOzIDwgXChzd2ltbWluZ1wpXC1icmVhc3RzdHJva2U7Civkg4kgPCBhXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+aAjum6vCA8IFwoaW50ZXJyb2dhdGl2ZVwtcHJvbm91blwpOwor5IGMIDwgdG9cLXNlZVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+O+gCA8IHRvXC1iZVwtd2Vha2VkXC1ieVwtZGlzZWFzZTsKK+O9uCA8IGRpc2Vhc2VzXC1vZlwtdGhlXC1hYmRvbWVuOwor5Zyo5LuK5bm05bm05bqVIDwgYXRcLXRoZVwtZW5kXC1vZlwtdGhpc1wteWVhcjsKK+O8pyA8IHRpbGVzXC1pblwtY3lsaW5kZXJcLXNoYXBlOwor6YGO5LiN5Y67IDwgbWFrZVwtbGlmZVwtZGlmZmljdWx0XC1mb3I7CivjubIgPCBhXC1mcmlnaHRlbmVkXC1waWdcLW9yXC1kb2c7Civjua4gPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1cLXRhcGlyOwor47mdIDwgYVwtbGVnZW5kYXJ5XC13aWxkXC1hbmltYWw7CivjuZEgPCBhXC1mb3VyXC15ZWFyc1wtb2xkXC1jYXR0bGU7CivjuYogPCBhXC1jYXR0bGVcLW9mXC13aGl0ZVwtY29sb3I7CivjuYYgPCB0aGVcLWNvdWx0ZXJcLW9mXC1hXC1wbG91Z2g7Civlm57poafmrbflj7IgPCB0b1wtbG9va1wtYmFja1wtYXRcLWhpc3Rvcnk7CivpgJroqIrljZTlrpogPCBjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2w7CivjuIsgPCBtZWF0c1wtdXNlZFwtaW5cLXNhY3JpZmljZTsKK+O3riA8IHNjb3JjaGVkXC1vclwtYnVybmVkXC13b29kOwor47erIDwgZmlyZVwtY2F1c2luZ1wtYnlcLWRyeW5lc3M7CivjtpIgPCB0aGVcLWN1cnJlbnRcLW9mXC1hXC1zdHJlYW07CivjtLIgPCBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWU7CivjtJEgPCB0b1wtdHJhY2VcLXVwXC10b1wtYVwtc291cmNlOwor47SPIDwgdGhlXC1wb25kXC13YXRlclwtaXNcLXN0aWxsOwor47K/IDwgZXh0ZW5zaXZlXC1ib2R5XC1vZlwtd2F0ZXI7CivjsoQgPCB1bmJ1cm50XC1icmlja3NcLW9yXC10aWxlczsKK+OxrCA8IGNhbm5vdFwtcmVjb2duaXplXC1wZW9wbGU7Civjr5kgPCB0aGVcLWJ1Y2t0aG9yblwtb3JcLWp1anViZTsKK+mnkOWuiCA8IFwobWFuXC1hXC1wb3N0XC1hbmRcKVwtZGVmZW5kOwor462+IDwgdG9cLWN1dFwtdGhlXC10aW1iZXJcLWFwYXJ0Owor5rqr5ZKMIDwgbW9kZXJhdGVcLVwocG9saWN5XCxcLWV0Y1wuXCk7CivjrYMgPCB0aGVcLWxhcmdlXC1yb3BlXC1vZlwtYVwtbmV0Owor462CIDwgaGVpZ2h0XC1vZlwtdGhlXC1lbmRcLXBvaW50Owor46y7IDwgaW5cLWJldHdlZW5cLW9mXC10aGVcLWZsZXNoOwor5ZCm6KqNIDwgdG9cLWRlY2xhcmVcLXRvXC1iZVwtdW50cnVlOwor46evIDwgYVwtYnVja2V0XC1tYWRlXC1vZlwtd2lsbG93Owor46elIDwgdG9cLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor46a9IDwgd2l0aFwtZWxlZ2FudFwtYXBwZWFyYW5jZTsKK+aDheWgseiZlSA8IHNvdXJjZVwtXChvZlwtaW5mb3JtYXRpb25cKTsKK+OmuiA8IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK+OmhyA8IGFcLXBlYWNlZnVsXC1vclwtZWFzeVwtbW9vZDsKK+OlhSA8IHVzZWRcLWluXC1hXC1wZXJzb24nJ3NcLW5hbWU7CivjpIwgPCB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtb3duOwor46O7IDwgdG9cLXJlbWVkeVwtYnlcLXB1bmlzaG1lbnQ7Civjo6ogPCB0b1wtd2Fsa1wtd2l0aFwtc2xvd1wtc3RlcHM7Civjo4YgPCB0b1wtbG9vc2VcLXRoZVwtYm93XC1zdHJpbmc7Civjor4gPCB0aGVcLWN1cnZlZFwtZW5kXC1vZlwtYVwtYm93Owor46K1IDwgcG93ZXJmdWxcLWFuZFwtc3Ryb25nXC1ib3c7CivjobkgPCB0b1wtcmVseVwtdXBvblwtZWFjaFwtb3RoZXI7CivjoZIgPCBhXC1jYWxpY29cLXNhY2tcLWZvclwtZ3JhaW47CivjoY8gPCB0b1wtY3V0XC1hXC1zdHJpcFwtb2ZcLWNsb3RoOwor4568IDwgdG9cLXJlc3BlY3RmdWxseVwtcmVjZWl2ZTsKK+OarCA8IGFcLWxhZHlcLXN0YXJ0XC10b1wtZG9sbFwtdXA7CivjmpYgPCB0b1wtY29tZVwtb3V0XC10b1wtdGhlXC1vcGVuOwor45mKIDwgYW5cLWFyZWFcLW9mXC1sZXZlbFwtZ3JvdW5kOwor45W4IDwgc291bmRcLW9mXC1yb2xsaW5nXC1hXC1ib2F0Owor45SkIDwgdG9cLWV4ZXJ0XC1vbmUnJ3NcLXN0cmVuZ3RoOwor6IWQ5pWX572qIDwgdGhlXC1jcmltZVwtb2ZcLWNvcnJ1cHRpb247CivjkqQgPCB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtd29uOwor45KZIDwgdG9cLWhhbmRcLW9yXC1ib3dcLXRoZVwtaGVhZDsKK+atpeWxpee2reiJsSA8IGhhdmVcLWRpZmZpY3VsdHlcLXdhbGtpbmc7CivlhbHlkIznr6npgbggPCBjb2xsYWJvcmF0aXZlXC1maWx0ZXJpbmc7Civnmb3om4flgrMgPCB0YWxlXC1vZlwtdGhlXC13aGl0ZVwtc25ha2U7CivlpKfpqZrlsI/mgKogPCBtdWNoXC1mdXNzXC1hYm91dFwtbm90aGluZzsKK+i+r+iovOWUr+eJqeS4u+e+qSA8IGRpYWxlY3RpY2FsXC1tYXRlcmlhbGlzbTsKK+axn+ilvyA8IGppYW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5oSb5pKrIDwgdG9cLXNob3dcLXRlbmRlclwtY2FyZVwtZm9yOwor5Y+D6IiHIDwgdG9cLXBhcnRpY2lwYXRlXC1cKGluXC1zdGhcKTsKK+a4r+S6uiA8IGhvbmdcLWtvbmdcLXBlcnNvblx8cGVvcGxlOwor6buD5rKzIDwgeWVsbG93XC1yaXZlclwtXChodWFuZ1wtaGVcKTsKK+axn+iYhyA8IGppYW5nc3VcLXByb3ZpbmNlXCxcLWNoaW5hOwor5Lu75ZG9IDwgdG9cLWFwcG9pbnRcLWFuZFwtbm9taW5hdGU7Civlhazlronlrpjlk6EgPCBwdWJsaWNcLXNhZmV0eVwtb2ZmaWNpYWxzOwor6aSF5a2QIDwgbWFpemVcLW9yXC1taWxsZXRcLXBhbmNha2U7CivmnJ/mlLcgPCBlbmRcLW9mXC10ZXJtXC1leGFtaW5hdGlvbjsKK+e4vemhjSA8IHRvdGFsXC1cKGFtb3VudFwtb3JcLXZhbHVlXCk7CivorILoqp4gPCBcKGdyYW1tYXRpY2FsXClcLXByZWRpY2F0ZTsKK+WNiuaIkOWTgSA8IHNlbWlcLW1hbnVmYWN0dXJlZFwtZ29vZHM7CivkuK3ml6wgPCBtaWRkbGVcLXRoaXJkXC1vZlwtYVwtbW9udGg7CivkuIvml6wgPCBsYXN0XC10aGlyZFwtb2ZcLXRoZVwtbW9udGg7CivlgrPovLjmioDooZMgPCB0cmFuc21pc3Npb25cLXRlY2hub2xvZ3k7Civosp3lhYsgPCBiYWtlclwtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivkuoLlkIMgPCB0b1wtZWF0XC1pbmRpc2NyaW1pbmFudGx5Owor5aWU6aCt5YWSIDwgc29tZXRoaW5nXC10b1wtc3RyaXZlXC1mb3I7CivlhrDlpKnpm6rlnLAgPCBhXC13b3JsZFwtb2ZcLWljZVwtYW5kXC1zbm93Owor5pS/5bqc5qmf5qeLIDwgZ292ZXJubWVudFwtb3JnYW5pemF0aW9uOwor5Lit6L2J56uZIDwgaHViXC1cKG5ldHdvcmtcLWVxdWlwbWVudFwpOwor5oGp5oCoIDwgXChmZWVsaW5nXC1vZlwpXC1yZXNlbnRtZW50Owor5LiN5aSWIDwgbm90XC1iZXlvbmRcLXRoZVwtc2NvcGVcLW9mOwor5pyN5YiRIDwgc2VydmVcLWFcLXByaXNvblwtc2VudGVuY2U7CivojqvpnZ4gPCBjYW5cLWl0XC1iZVwtcG9zc2libGVcLXRoYXQ7Civlu6Popb8gPCBndWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+S4jeWPr+eQhuWWuyA8IGJlXC1pbXBlcnZpb3VzXC10b1wtcmVhc29uOwor5aWU54CJIDwgXChvZlwtdG9ycmVudHNcKVwtcnVzaFwtZG93bjsKK+S5iCA8IGludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6KKrIDwgcGFzc2l2ZVwtaW5kaWNhdG9yXC0nJ2J5Jyc7CivnlLMgPCB0b1wtc3RhdGVcLXRvXC1hXC1zdXBlcmlvcjsKK+WyoSA8IHJpZGdlXC1vclwtY3Jlc3RcLW9mXC1oaWxsOwor55C0IDwgY2hpbmVzZVwtbHV0ZVwtb3JcLWd1aXRhcjsKK+WsjCA8IHNlZHVjdGl2ZVwtYW5kXC1sb3ZlYWJsZTsKK+e9lyA8IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivmkbggPCBnZW50bHlcLXRvdWNoXC13aXRoXC1oYW5kOwor5LuwIDwgcmFpc2VcLXRoZVwtaGVhZFwtdG9cLWxvb2s7Civoh40gPCBhYmRvbWluYWxcLWFyZWFcLW9mXC1jcmFiOwor6YORIDwgc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW47CivotK8gPCBhXC1zdHJpbmdcLW9mXC0xMDAwXC1jb2luczsKK+errSA8IHB1dFwtZm9ydGhcLWdyZWF0XC1lZmZvcnQ7Civnp5IgPCBiZWFyZFwtb2ZcLWdyYWluXC1vclwtY29ybjsKK+WlmiA8IHdoZXJlXD9cLXdoYXRcP1wtaG93XD9cLXdoeVw/Owor55uPIDwgc21hbGxcLWN1cFwtb3JcLWNvbnRhaW5lcjsKK+iQnSA8IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivmoqcgPCBzdGVyY3VsaWFcLXBsYXRhbmlmb2xpYTsKK+WSpiA8IGV4cHJlc3Npb25cLW9mXC1zdXJwcmlzZTsKK+etkCA8IGJhbWJvb1wtYmFza2V0XC1vclwtY2hlc3Q7CivosI0gPCBhblwtaW50ZWxsaWdlbmNlXC1yZXBvcnQ7Civnr7EgPCBiYW1ib29cLW9yXC13b29kZW5cLWZlbmNlOwor55C2IDwgZ3VpdGFyXC1saWtlXC1pbnN0cnVtZW50Owor5r26IDwgc291bmRcLW9mXC1mbG93aW5nXC13YXRlcjsKK+WdsyA8IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor5Z+CIDwgZGl0Y2hlc1wtZm9yXC1pcnJpZ2F0aW9uOwor5YCMIDwgYXNzaXN0YW50XC1pblwtd2luZVwtc2hvcDsKK+mcgSA8IHRvXC1jbGVhclwtdXBcLWFmdGVyXC1yYWluOwor6YKvIDwgY2l0eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eykSA8IHRzYW1iYVwtXChmb29kXC1pblwtdGliZXRcKTsKK+ibgCA8IGluc2VjdHNcLXRoYXRcLWVhdFwtYm9va3M7Civlq6YgPCBuYW1lXC1vZlwtYVwtbW9vblwtZ29kZGVzczsKK+i1iiA8IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor5byRIDwgdG9cLWtpbGxcLW9uZScnc1wtc3VwZXJpb3I7CivmkYEgPCB0b1wtcHJlc3NcLXdpdGhcLXRoZVwtaGFuZDsKK+eVuSA8IGFcLWZpZWxkXC1vZlwtMjBcLW9yXC0zMFwtbXU7Civop5AgPCBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivorqYgPCBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor5peEIDwgYVwta2luZFwtb2ZcLWFuY2llbnRcLWZsYWc7CivotrUgPCBub2lzZVwtb2ZcLXRyYW1waW5nXC1mZWV0Owor6YW5IDwgdG9cLXBvdXJcLW91dFwtYVwtbGliYXRpb247CivlrbMgPCBicmVlZFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5aGEIDwgZWxldmF0ZWRcLWJhbmtcLWluXC1maWVsZDsKK+ieiCA8IGRpZW15ZWxpbHVzXC1weXJvZ2FzdGVyOwor56qsIDwgYVwtc21hbGxcLWRvb3JcLW9yXC13aW5kb3c7CivnrLEgPCBhXC1iYXNrZXRcLXRyYXBcLWZvclwtZmlzaDsKK+eJvyA8IHNoZWRcLW9yXC1wZW5cLWZvclwtY2F0dGxlOwor6JuYIDwgYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivnlY4gPCBhXC1kcmFpblwtYmV0d2VlblwtZmllbGRzOwor6IG35qWt5Lit5a24IDwgdm9jYXRpb25hbFwtaGlnaFwtc2Nob29sOwor57ay6Lev56+A6bue5LuL6Z2iIDwgbmV0d29ya1wtbm9kZVwtaW50ZXJmYWNlOwor5q2j5Zyo5Lit5ZyL6Kiq5ZWPIDwgZHVyaW5nXC1hXC10cmlwXC10b1wtY2hpbmE7CivpgbrnlZkgPCBcKGxlYXZlXC1vclwtYmVcLWFcKVwtbGVnYWN5Owor5bi46KaPIDwgY29udmVudGlvbmFsXC1cKHdlYXBvbnNcKTsKK+iHqumjn+WFtuaenCA8IHJlYXBcLXdoYXRcLW9uZVwtaGFzXC1zb3duOwor6K2J5Yi4IDwgXChmaW5hbmNpYWxcKVwtc2VjdXJpdGllczsKK+S4jemcsuiBsuiJsiA8IG5vdFwtc2hvd1wtb25lJydzXC1mZWVsaW5nOwor5oWV6YGT5Y+LIDwgcmVsaWdpb3VzXC1pbnZlc3RpZ2F0b3I7CivlvoDluLggPCBoYWJpdHVhbGx5XC1pblwtdGhlXC1wYXN0Owor5aSn54We6aKo5pmvIDwgZGFtcGVuaW5nXC1vbmUnJ3NcLXNwaXJpdDsKK+WJneaOoeavlCA8IHN0cmlwcGluZ1wtdG9cLW9yZVwtcmF0aW87CivnvoXmm7zoqp7ml48gPCByb21hbmNlXC1sYW5ndWFnZVwtZ3JvdXA7CivlrbDog73nlJ/lt6cgPCBwcmFjdGljZVwtbWFrZXNcLXBlcmZlY3Q7CivlppblhrYgPCBwcmV0dHlcLWFuZFwtZmxpcnRhdGlvdXM7Civpnanlkb0gPCBcKHBvbGl0aWNhbFwpXC1yZXZvbHV0aW9uOwor6KuW5aOHIDwgZm9ydW1cLVwoZm9yXC1kaXNjdXNzaW9uXCk7Civlo5/mlrcgPCBlbmpveVwtbWFya2V0XC1kb21pbmFuY2U7CivniaHkuLkgPCBwZW9ueVwtXCh0eXBlXC1vZlwtZmxvd2VyXCk7CivloLHnqIUgPCBkZWNsYXJlXC1kdXRpYWJsZVwtZ29vZHM7Civnm67nmoTlnLAgPCBkZXN0aW5hdGlvblwtXChsb2NhdGlvblwpOwor5YWs6KqNIDwgcHVibGljbHlcLWtub3duXC1cKHRvXC1iZVwpOwor5Ze35Ze35b6F5ZO6IDwgY3J5XC1waXRlb3VzbHlcLWZvclwtZm9vZDsKK+eZvOihqCA8IHRvXC1pc3N1ZVwtXChhXC1zdGF0ZW1lbnRcKTsKK+S4jeeXm+S4jeeXkiA8IHNjcmF0Y2hpbmdcLXRoZVwtc3VyZmFjZTsKK+Wci+WLmemZoiA8IHN0YXRlXC1kZXBhcnRtZW50XC1cKHVzYVwpOwor6b2vIDwgdGVldGhcLWdyb3duXC1pblwtb2xkXC1hZ2U7Civpm7vlmaggPCBcKGVsZWN0cmljYWxcKVwtYXBwbGlhbmNlOwor6bmjIDwgZmFidWxvdXNcLW15dGhpY2FsXC1iaXJkOwor5q635YukIDwgcG9saXRlbHlcLFwtc29saWNpdG91c2x5Owor5Y2B5LqU5YSEIDwgb25lXC1hbmRcLWFcLWhhbGZcLWJpbGxpb247CivpsIYgPCBzY29tYmVyb21vcnVzXC1zaW5lbnNpczsKK+mukyA8IG1pbmNlZFwtYW5kXC1zYWx0ZWRcLWZpc2g7CivntIXnh5LogokgPCByZWRcLWNvb2tlZFwtXChwb3JrXClcLW1lYXQ7CivliLDmnJ8gPCBiZWNvbWVcLWR1ZVwtXChlZ1wsXC1sb2Fuc1wpOwor6amMIDwgbmFtZVwtb2ZcLWFcLWZhbW91c1wtaG9yc2U7CivlhazlronlsYAgPCBwdWJsaWNcLXNlY3VyaXR5XC1idXJlYXU7Civnl4XpmaIgPCBhXC1zcGVjaWFsaXplZFwtaG9zcGl0YWw7Civoga/ntrLnkrDlooMgPCBuZXR3b3JraW5nXC1lbnZpcm9ubWVudDsKK+mfuSA8IG11c2ljXC1vZlwtYmVsbFwtYW5kXC1kcnVtOwor6Kej6YeL5Z+36KGMIDwgaW50ZXJwcmV0ZWRcLVwoY29tcHV0ZXJcKTsKK+WFq+Wwj+aZguW3peS9nOWItiA8IGVpZ2h0XC1ob3VyXC13b3JraW5nXC1kYXk7Civmtojmga/pnYjpgJrkurrlo6sgPCBhXC13ZWxsXC1pbmZvcm1lZFwtc291cmNlOwor6ZuYIDwgZHllXC1tYWRlXC1mcm9tXC1yZWRcLXNvaWw7CivpmIcgPCBhXC1idWRkaGlzdFwtaGlnaFwtcHJpZXN0Owor5LiN6L+R5Lq65oOFIDwgbm90XC1hbWVuYWJsZVwtdG9cLXJlYXNvbjsKK+mRkCA8IGJvbHRcLW9mXC1hXC1jaGluZXNlXC1sb2NrOwor5pS/5rK75qmf5qeLIDwgcG9saXRpY2FsXC1vcmdhbml6YXRpb247CivpjIYgPCB0aGVcLWNvbG9yXC1vZlwtYVwtbWluZXJhbDsKK+mEkCA8IHRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7CivpgbAgPCBncnVudGluZ1wtc291bmRcLW9mXC1waWdzOwor6L6lIDwgdmFyaWV0eVwtb2ZcLW1hcnNoXC1ncmFzczsKK+eXheixoSA8IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+aXpeacrOe2k+a/n+aWsOiBniA8IGphcGFuZXNlXC1lY29ub21pY1wtbmV3czsKK+asuuWHjCA8IHRvXC1idWxseVwtYW5kXC1odW1pbGlhdGU7CivpgY3lj4ogPCB0b1wtZXh0ZW5kXC1cKGV2ZXJ5d2hlcmVcKTsKK+iwgiA8IGNvbnN1bHRcLWNhcmVmdWxseVwtd2l0aDsKK+ewvee9siA8IHRvXC1zaWduXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+ipqiA8IGRpZmZpY3VsdHlcLWluXC1zcGVha2luZzsKK+WgseWwjiA8IHRvXC1jb3ZlclwtXChyZXBvcnRcKVwtbmV3czsKK+invyA8IGFcLWJvZGtpblwtbWFkZVwtb2ZcLWl2b3J5Owor5biD5pyXIDwgZW5nbGlzaFwtc3VybmFtZVwsXC1icm93bjsKK+imgCA8IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xNDY7CivopJ8gPCBpbm5lclwtc2hpcnRcLW9yXC1zaW5nbGV0Owor6KGtIDwgdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnQ7CivooaYgPCBzbW9vdGhcLW91dFwtdGhlXC1jbG90aGVzOwor5qiZ5rqWIDwgXChhblwtb2ZmaWNpYWxcKVwtc3RhbmRhcmQ7CivoqIrmga/lgrPpgZ7kuK3ku4sgPCBtZXNzYWdlXC10cmFuc2ZlclwtYWdlbnQ7Civlj6bnnLznm7jnnIsgPCB0b1wtdmlld1wtaW5cLWFcLW5ld1wtbGlnaHQ7CivolZUgPCBjYXJ5b3B0ZXJpc1wtZGl2YXJpY2F0YTsKK+iUryA8IGFcLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivokLQgPCBtZWRpY2luYWxcLXBvaXNvblwtcGxhbnQ7Civoj7YgPCBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor5L+h5oGv5oqA6KGTIDwgaW5mb3JtYXRpb25cLXRlY2hub2xvZ3k7CivohKQgPCByYXdcLW1lYXRcLWZvclwtc2FjcmlmaWNlOwor55m855eF546HIDwgaW5jaWRlbmNlXC1vZlwtYVwtZGlzZWFzZTsKK+iArCA8IGRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivnlpHllY/lj6UgPCBpbnRlcnJvZ2F0aXZlXC1zZW50YW5jZTsKK+iAgiA8IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xMjU7CivpgIDkvJEgPCByZXRpcmVtZW50XC1cKGZyb21cLXdvcmtcKTsKK+e5piA8IHN0cmluZ1wtb2ZcLWNvcHBlclwtY29pbnM7Civkvoblm57kvobljrvlnLAgPCBiYWNrd2FyZHNcLWFuZFwtZm9yd2FyZHM7CivlronlhajogIPmha4gPCBzZWN1cml0eVwtY29uc2lkZXJhdGlvbjsKK+e3hSA8IHNpbGtcLW9mXC1wdXJwbGlzaFwtY29sb3I7CivotqjpmYQgPCB0b1wtaW5ncmF0aWF0aW9uXC1vbnNlbGY7CivmraTkuIDmmYIgPCB0aGF0XC13YXNcLW9uZVwtc2l0dWF0aW9uOwor56+iIDwgdGhlXC1uYW1lXC1vZlwtYmFtYm9vXC1oYXQ7CivnrYbot6EgPCBhXC1wZXJzb24nJ3NcLWhhbmR3cml0aW5nOwor5L+h5oGv566h55CGIDwgaW5mb3JtYXRpb25cLW1hbmFnZW1lbnQ7Civnm6HlipsgPCBkb1wtb25lJydzXC1iZXN0XC1cKGVmZm9ydFwpOwor57ay57Wh5bGk5Y2U6K2wIDwgbmV0d29ya1wtbGF5ZXJcLXByb3RvY29sOwor562G6KiYIDwgdGFrZVwtZG93blwtXChpblwtd3JpdGluZ1wpOwor5LiN5aW95oO5IDwgbm90XC10b1wtYmVcLXRyaWZsZWRcLXdpdGg7CivopKXlrZAgPCBjb3R0b25cLXBhZGRlZFwtbWF0dHJlc3M7CivnmYogPCBhXC1kaXNlYXNlXC1vZlwtdGhlXC1oZWFydDsKK+eRsSA8IGFcLWdlbVwtdXNlZFwtYXNcLWVhclwtcGx1ZzsKK+i5pui5pui3s+i3syA8IGJvdW5jaW5nXC1hbmRcLXZpdmFjaW91czsKK+ePoyA8IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtamFkZTsKK+eOvCA8IGJlYXV0aWZ1bFwtY29sb3JcLW9mXC1nZW07CivnibcgPCBjb3dcLW9yXC1veFwtb2ZcLW9uZVwtY29sb3I7CivlhJjlv6sgPCBhc1wtcXVpY2tseVwtYXNcLXBvc3NpYmxlOwor6YCa5L+h5a+G5bqmIDwgY29tbXVuaWNhdGlvbnNcLWRlbnNpdHk7CivkuI3lvpflt7IgPCBhY3RcLWFnYWluc3RcLW9uZScnc1wtd2lsbDsKK+eEhCA8IHJpc2luZ1wtZmxhbWVzXC1vclwtZnVtZXM7Civng5YgPCBjYWxhbWl0aWVzXC1mcm9tXC1oZWF2ZW47CivmspLmnInlt67liKUgPCB0aGVyZVwtaXNcLW5vXC1kaWZmZXJlbmNlOwor5r+A5piCIDwgYXJvdXNlZFwtdG9cLWluZGlnbmF0aW9uOwor5LiN6KiA6ICM5Za7IDwgaXRcLWdvZXNcLXdpdGhvdXRcLXNheWluZzsKK+W3pealreWMluWci+WutiA8IGluZHVzdHJpYWxpemVkXC1jb3VudHJ5Owor5q2l6Kq/5LiA6Ie0IDwgdG9cLWJlXC11bml0ZWRcLWluXC1hY3Rpb247Civnq6XoqbEgPCBjaGlsZHJlbicnc1wtZmFpcnlcLXRhbGVzOwor5q6iIDwgYmVcLWluXC1ncmVhdFwtZGlmZmljdWx0eTsKK+ansSA8IGZpcmV3b29kXC1mb3JcLXNhY3JpZmljZTsKK+S4iuWNiuW5tCA8IGZpcnN0XC1oYWxmXC1cKG9mXC1hXC15ZWFyXCk7CivkuI3opoHoh4kgPCBoYXZlXC1ub1wtc2Vuc2VcLW9mXC1zaGFtZTsKK+iDjOWcsOmiqCA8IGJlaGluZFwtc29tZWJvZHknJ3NcLWJhY2s7CivnlKjmiLbliLDntrLntaHnmoTmjqXlj6MgPCB1c2VyXC1uZXR3b3JrXC1pbnRlcmZhY2U7CivmnI8gPCBsaWdodFwtb2ZcLWNyZXNjZW50XC1tb29uOwor5peQIDwgYW5cLWVtYnJvaWRlcmVkXC1wZW5uYW50Owor5pSZIDwgdG9cLWdpdmVcLWFcLWhlbHBpbmdcLWhhbmQ7Civmj5DkuqQgPCBzdWJtaXRcLVwoYVwtcmVwb3J0XCxcLWV0Y1wpOwor5pGwIDwgdG9cLXNlaXplXC13aXRoXC10aGVcLWhhbmQ7CivkvpvogbcgPCBob2xkXC1hblwtb2ZmaWNlXC1vclwtcG9zdDsKK+aRgCA8IHRvXC1jb3Zlclwtd2l0aFwtdGhlXC1oYW5kOwor5pC+IDwgdG9cLWNydXNoXC13aXRoXC10aGVcLWhhbmQ7Civkvoboh6ogPCB0b1wtY29tZVwtZnJvbVwtXChhXC1wbGFjZVwpOwor5a6a6KqeIDwgYXR0cmlidXRpdmVcLVwobW9kaWZpZXJcKTsKK+i/keW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC1mZXdcLXllYXJzOwor5oC5IDwgYVwtcG9saXRlXC12ZXJzaW9uXC1vZlwtaGU7CivmvILmtYEgPCBjYXJyaWVkXC1ieVwtdGhlXC1jdXJyZW50Owor5bqIIDwgdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZXM7CivltbYgPCBsb3dcLXBhcnRcLW9mXC1hXC1tb3VudGFpbjsKK+WtkiA8IGxhcnZhZVwtb2ZcLXRoZVwtbW9zcXVpdG87Civmo4TmrIogPCB0b1wtYWJzdGFpblwtZnJvbVwtdm90aW5nOwor5o2P5ZCIIDwgdG9cLWFjdFwtYXNcLWFcLWdvXC1iZXR3ZWVuOwor5aOWIDwgb3Blblwtc3BhY2VcLWFsb25nXC13YXRlcjsKK+eUsuadvyA8IGRlY2tcLVwob2ZcLWFcLWJvYXRcLFwtZXRjXC5cKTsKK+WFtuiHqui6qyA8IG9uZScnc1wtb3duXC1cKHJlc3BlY3RpdmVcKTsKK+aVmee+qeWSjOiBlue0hCA8IGRvY3RyaW5lXC1hbmRcLWNvdmVuYW50czsKK+WZgCA8IHNwaXJ0XC1vdXRcLW9mXC10aGVcLW1vdXRoOwor5qKF5rS+IDwgdGhlXC1tZWlcLWxhbmZhbmdcLXNjaG9vbDsKK+eBq+eEsOWxsSA8IHRoZVwtbW91bnRhaW5cLW9mXC1mbGFtZXM7CivmtonpgY4gPCBmb3JkXC1cKGFcLXN0cmVhbVwsXC1yaXZlclwpOwor5Y+dIDwgdG9cLXJlc3BlY3RmdWxseVwtaW5mb3JtOwor5bel5L2c56uZIDwgXChjb21wdXRlclwpXC13b3Jrc3RhdGlvbjsKK+mrlOWFpyA8IGludGVybmFsXC1cKHRvXC10aGVcLWJvZHlcKTsKK+S8riA8IHRvXC1tYWtlXC1hXC1ncmVhdFwtZWZmb3J0Owor6YCa6KiK6YCa6YGTIDwgY29tbXVuaWNhdGlvbnNcLWNoYW5uZWw7CivktqUgPCB1bmV2ZW5seVwtZml0dGluZ1wtdGVldGg7CivktqQgPCBzb3VuZFwtb2ZcLWNoZXdpbmdcLWJvbmVzOwor5LaCIDwgYVwtc3F1aXJyZWxcLWxpa2VcLWFuaW1hbDsKK+SzriA8IHRvXC1sb29rXC1hdFwtaW5cLXN1cnByaXNlOwor5LKaIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXNoYWQ7CivmjqHoqKroqJjogIUgPCBpbnZlc3RpZ2F0aXZlXC1yZXBvcnRlcjsKK+SwtSA8IGxvb2tzXC1saWtlXC1jb21tb25cLWNhcnA7CivksLAgPCBkcmVhcnlcLWNyaWVzXC1vZlwtZ2hvc3RzOwor5K66IDwgbHV4dXJpYW50XC1vZlwtdGhlXC1ncmFzczsKK+SuqiA8IHRvXC1nZWxkXC1hXC1ob3JzZVwtb3JcLWFzczsKK+SpvCA8IHN0aXRjaGVzXC1vblwtYVwtY292ZXJsZXQ7CivkqY0gPCB0b1wtbG9va1wtcGFsZVwtb3JcLXBhbGxpZDsKK+SotSA8IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KaIIDwgdG9cLXNpZ2hcLWluXC1sYW1lbnRhdGlvbjsKK+SlnyA8IGFcLW1ldGFsXC1tYXJraW5nXC1cLXN0YWtlOwor6ISK5qSOIDwgYmFja1wtXChvZlwtYVwtdmVydGlicmF0ZVwpOwor5Lyv54i2IDwgZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+SijiA8IGluZGljYXRpbmdcLWV4Y2xhbWF0aW9uOwor5KG1IDwgZGVjb3JhdGlvblwtb25cLWNhcnJpYWdlOwor5KGwIDwgc3Ryb25nXC1hbmRcLWR1cmFibGVcLWh1YjsKK+ShrCA8IGNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2U7CivkoYEgPCBub3RcLXdlbGxcLWZvcm1lZFwtZmlndXJlOwor5J+9IDwgc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkOwor5J6YIDwgdG9cLWdvXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SdoiA8IGFuXC1hbmltYWxcLWluXC1vbGRcLXRpbWVzOwor5L+d5a6JIDwgZW5zdXJlXC1wdWJsaWNcLXNlY3VyaXR5Owor5J2TIDwgbG9uZ1wtYmVhcmRcLW9yXC13aGlza2VyczsKK+ScuiA8IGh1c2tpbmdcLWJlYW5zXC1mb3JcLWNha2U7CivknKEgPCB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbnRzOwor5JuZIDwgdG9cLXNtZWxsXC10aGVcLWZyYWdyYW5jZTsKK+SaniA8IHRoZVwtbWlkZGxlXC1vZlwtdGhlXC1ob3JuOwor5Y2w5q2Q5Lq6IDwgaW5kb1wtZXVyb3BlYW5cLVwocGVyc29uXCk7CivkmYQgPCBjbG90aGVzXC13aXRoXC10aGlja1wtaGVtOwor5Ji9IDwgY2xvdGhpbmdcLWFuZFwtb3JuYW1lbnRzOwor5JW0IDwgYVwtc2Vjb25kXC1mb3JcLW1vbmtzaG9vZDsKK+SUoCA8IHRoaW5cLXJvb3RcLW9mXC10aGVcLWxvdHVzOwor5I+pIDwgdG9cLXNocnVnXC10aGVcLXNob3VsZGVyczsKK+SNsSA8IHRoZVwtd2lsZFwtZ29hdFwtb3JcLXNoZWVwOwor5IuqIDwgZmluZVwtYW5kXC1kZWxpY2F0ZVwtc2lsazsKK+SKjyA8IG1peGluZ1wtcmljZVwtd2l0aFwtYnJvdGg7CivkiIQgPCBhXC1raW5kXC1vZlwtc29saWRcLWJhbWJvbzsKK+S4iui6qyA8IHVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1ib2R5Owor5IejIDwgYmFtYm9vXC13aXRoXC13aGl0ZVwtYmFyazsKK+SEoCA8IHRvXC1zYWNyaWZpY2VcLXRvXC1oZWF2ZW47Civkg6cgPCBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5ICEIDwgY29udGFpbmVyXC1mdWxsXC1vZlwtZm9vZDsKK+O/iyA8IGFcLWtpbmRcLW9mXC1za2luXC1kaXNlYXNlOwor47yeIDwgamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGg7Civjup4gPCB0b1wtc2lnblwtaW5cLWxhbWVudGF0aW9uOwor5Z2m5YWL6LuKIDwgdGFua1wtXChhcm1vcmVkXC12ZWhpY2xlXCk7CivjuK8gPCBhXC1maW5lXC1icmVlZFwtb2ZcLWNhdHRsZTsKK+avlOi8g+iAjOiogCA8IGNvbXBhcmF0aXZlbHlcLXNwZWFraW5nOwor47WvIDwgc291bmRcLW9mXC13YXRlclwtZmxvd2luZzsKK+OzryA8IGdvZGRlc3NcLW9mXC1hblwtaW5rXC1zbGFiOwor47GGIDwgdG9cLXNtaWxlXC1hdFwtZWFjaFwtb3RoZXI7CivjsKggPCB0b1wtdGFrZVwtYnJlYXRoXC1vclwtcmVzdDsKK+OukSA8IHNvdW5kXC1vZlwtYnJva2VuXC1zdGlja3M7Civjra8gPCB0cmVlXC13aXRoXC1zbWFsbFwtbGVhdmVzOwor5a2X5q61IDwgXChudW1lcmljXCxcLWRhdGRhXClcLWZpZWxkOwor46uKIDwgZmx1dHRlcmluZ1wtb2ZcLXRoZVwtZmxhZzsKK+OqoyA8IGFcLXBsYWNlXC1pblwtaGFuXC1keW5hc3R5Owor46qfIDwgdG9cLXJlZ2FyZFwtYXNcLWltcG9ydGFudDsKK+OqniA8IHRvXC1iZVwtaGVsZFwtYnlcLXRoZVwtaGFuZDsKK+OpuiA8IGFcLWNyYWNrXC1vblwtdGhlXC11dGVuc2lsOwor46mcIDwgdG9cLWJlXC1pblwtcG9zc2Vzc2lvblwtb2Y7CivjqY4gPCB0b1wtcHJlc3NcLXdpdGhcLWFcLWZpbmdlcjsKK+OntiA8IHRoZVwtamluZ2xpbmdcLW9mXC1tZXRhbHM7Civjp5kgPCB0b1wtZ2l2ZVwtYVwtcGxheWZ1bFwtYmxvdzsKK+OngyA8IHRvXC1yZWNlaXZlXC13aGF0XC1pc1wtZHVlOwor46ajIDwgdG9cLXRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor46aEIDwgaGFyZFwtdG9cLXNheVwtb3JcLXByZWRpY3Q7CivjpIogPCBjaGVlcmZ1bFwtYW5kXC1leHViZXJhbnQ7CivkuKboiIkgPCBkZXZlbG9wXC1zaW11bHRhbmVvdXNseTsKK+OiiSA8IGFcLXJvb21cLXdpdGhcLW9wZW5cLXNwYWNlOwor5LiA6JmfIDwgZmlyc3RcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivjoJQgPCBzaGFwZXNcLW9mXC10aGVcLW1vdW50YWluOwor45+7IDwgdGhlXC1tb2F0XC1hcm91bmRcLWFcLWNpdHk7Civpm6LplovmlYXphIkgPCB0b1wtbGVhdmVcLW9uZScnXC1ob21lbGFuZDsKK+ObsyA8IGFuXC1hYm5vbWFsXC11bmJvcm5cLWJhYnk7CivjmrcgPCB0aGVcLWJyZWFzdHNcLW9mXC1hXC13b21hbjsKK+OZsyA8IHJ1Z2dlZG5lc3NcLW9mXC10aGVcLXJvYWQ7CivjmaQgPCBhXC1jcmFja1wtaW5cLWVhcnRoZW53YXJlOwor45mYIDwgdXNlZFwtaW5cLW5hbWluZ1wtYVwtcGxhY2U7Civjl4IgPCB0b1wta2VlcFwtdGhlXC1tb3V0aFwtc2h1dDsKK+OWkCA8IHNvdW5kXC1vZlwtY2FsbGluZ1wtZHVja3M7CivjlLQgPCBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudDsKK+OTuSA8IGFcLXNoYXJwXC1wb2ludGVkXC13ZWFwb247Civjk6YgPCB0b1wtZGVsaWJlcmF0ZVwtYW5kXC1wbGFuOwor45OYIDwgamFkZVwtd2l0aFwtc29tZVwtZGVmZWN0czsKK+S4jeWDj+aooyA8IGluXC1ub1wtc2hhcGVcLXRvXC1iZVwtc2VlbjsKK+WvqeWIpCA8IHB1dFwtXChzb21lb25lXClcLXRvXC10cmlhbDsKK+WQkOiVgyA8IGFuY2llbnRcLW5hbWVcLWZvclwtdGliZXQ7CivmuKzlrpogPCB0b1wtc3VydmV5XC1hbmRcLWV2YWx1YXRlOwor5rOw576FIDwgXChlbmdsaXNoXC1zdXJuYW1lXClcLXR5bG87CivlkJ7ogbIgPCB0b1wtc3dhbGxvd1wtb25lJydzXC1jcmllczsKK+iuiuWIhuazlSA8IGNhbGN1bHVzXC1vZlwtdmFyaWF0aW9uczsKK+iyoeacgyA8IGZpbmFuY2VcLWFuZFwtYWNjb3VudGluZzsKK+mAmuS/oee2sue1oSA8IGNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor5Lqk5piTIDwgXChidXNpbmVzc1wpXC10cmFuc2FjdGlvbjsKK+ilv+mBiuiomCA8IHBpbGdyaW1hZ2VcLXRvXC10aGVcLXdlc3Q7CivmlbjlrZfpgJrkv6EgPCBkaWdpdGFsXC1jb21tdW5pY2F0aW9uczsKK+ePvuW9uSA8IFwobWlsaXRhcnlcKVwtYWN0aXZlXC1kdXR5Owor5YWx55Si6buo5ZOhIDwgY29tbXVuaXN0XC1wYXJ0eVwtbWVtYmVyOwor5rCR6YG4IDwgZGVtb2NyYXRpY2FsbHlcLWVsZWN0ZWQ7Civmtbfmi5QgPCBoZWlnaHRcLWFib3ZlXC1zZWFcLWxldmVsOwor57ay6Lev5p625qeLIDwgbmV0d29ya1wtaW5mcmFzdHJ1Y3R1cmU7Civnp5HmioAgPCBzY2llbmNlXC1hbmRcLXRlY2hub2xvZ3k7Civku7vlhY0gPCB0b1wtYXBwb2ludFwtYW5kXC1kaXNtaXNzOwor55Wi5qWt55SfIDwgZ3JhZHVhdGVcLVwob2ZcLWFcLXNjaG9vbFwpOwor5LqC5a+rIDwgdG9cLXdyaXRlXC13aXRob3V0XC1iYXNpczsKK+mbtumMoiA8IGNoYW5nZVwtXChzYWlkXC1vZlwtbW9uZXlcKTsKK+S4jeacjSA8IG5vdFwtYWNjZXB0XC1cKHNvbWV0aGluZ1wpOwor6by75YWSIDwgYVwtaG9sZVwtaW5cLWFuXC1pbXBsZW1lbnQ7CivmhJ/lmIYgPCB0b1wtc2lnaFwtXCh3aXRoXC1mZWVsaW5nXCk7CivljJboo50gPCBcKG9mXC1hY3RvcnNcKVwtdG9cLW1ha2VcLXVwOwor5LqR5Y2XIDwgeXVubmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acjeWujCA8IHNlcnZlXC1vdXRcLVwoYVwtc2VudGVuY2VcKTsKK+m7g+WxsSA8IG10XC5cLWh1YW5nXC1cKGh1YW5nXC1zaGFuXCk7Civlj6Tms6IgPCBndWJvXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivnjJzmi7MgPCBhXC1maW5nZXJcLWd1ZXNzaW5nXC1nYW1lOwor576O5ZyL5LmL6Z+zIDwgdm9pY2VcLW9mXC1hbWVyaWNhXC1yYWRpbzsKK+iDjOm7kemNiyA8IHRvXC1iZVwtbWFkZVwtYVwtc2NhcGVnb2F0Owor5Yqp6KmeIDwgcGFydGljbGVcLVwoZ3JhbW1hdGljYWxcKTsKK+mdiOaVj+W6piA8IFwobGV2ZWxcLW9mXClcLXNlbnNpdGl2aXR5Owor5qiZ5rqW57WE57mUIDwgc3RhbmRhcmRzXC1vcmdhbml6YXRpb247CivnjajmlKzluILloLQgPCB0b1wtbW9ub3BvbGl6ZVwtYVwtbWFya2V0Owor6KeJIDwgdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+eSsCA8IGphZGVcLXJpbmdcLW9yXC1icmFjZWxldDsKK+WIkiA8IHRvXC1yb3dcLW9yXC1wYWRkbGVcLWJvYXQ7CivloKogPCBhZGVxdWF0ZWx5XC1jYXBhYmxlXC1vZjsKK+WQtCA8IG5hbWVcLW9mXC13YXJyaW5nXC1zdGF0ZTsKK+mztCA8IGNyeVwtb2ZcLWJpcmRcLW9yXC1hbmltYWw7CivlkYkgPCBvbmVcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivpprMgPCBnb1wtcXVpY2tseVwtb3JcLXN3aWZ0bHk7Civmpo4gPCBzbWFsbFwtZXZlcmdyZWVuXC1zaHJ1YjsKK+WnuyA8IHJlbGF0aXZlc1wtYnlcLW1hcnJpYWdlOwor562SIDwgdGhpY2tcLXBpZWNlXC1vZlwtYmFtYm9vOwor5biYIDwgZmxhZ1wtc2lnblwtb2ZcLWFcLXRhdmVybjsKK+eouyA8IHJpY2VcLWdyb3dpbmdcLWluXC1maWVsZDsKK+emsCA8IG9uZScnc1wtZGVjZWFzZWRcLWZhdGhlcjsKK+WJgiA8IG1lZGljaW5hbFwtcHJlcGFyYXRpb247Civnj4IgPCBpbmZlcmlvclwta2luZFwtb2ZcLWphZGU7CivlmJ8gPCBzb3VuZFwtb2ZcLWhvcm5cLXRvb3Rpbmc7CivnkZwgPCBmbGF3bGVzc1wtZ2VtXC1vclwtamV3ZWw7Civnj5EgPCBhXC1nZW1cLWN1dFwtbGlrZVwtZHJhZ29uOwor6K+sIDwgbWFrZVwtZmFsc2VcLWFjY3VzYXRpb247Civlq5YgPCBwYXRyb25pemVcLXByb3N0aXR1dGVzOwor6aOSIDwgdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+mUoiA8IHJ1blwtbWV0YWxcLWludG9cLWNyYWNrczsKK+aOliA8IHN1cHBvcnRcLXdpdGhcLXRoZVwtYXJtczsKK+ajoyA8IGtlcnJpYVwtamFwb25pY2FcLXBsYW50Owor6I+BIDwgZmxvd2VyXC1vZlwtbGVla1wtZmFtaWx5Owor5ZKpIDwgdGhlXC1ibGVhdGluZ1wtb2ZcLXNoZWVwOwor54+JIDwgc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7Civpko4gPCB0b29sXC1mb3JcLWJvcmluZ1wtaG9sZXM7Civmip8gPCByb2xsXC1hcm91bmRcLXdpdGhcLWhhbmQ7CivotrggPCBzZWxsXC1vclwtYnV5XC13aG9sZXNhbGU7CivlpqMgPCBvbmUnJ3NcLWRlY2Vhc2VkXC1tb3RoZXI7CivltYogPCBkaXN0cmljdFwtaW5cLXNoYW9oc2luZzsKK+esuCA8IGZsYXRcLWJhc2tldFwtZm9yXC1ncmFpbjsKK+iCqyA8IHRoZVwtZ2l6emFyZFwtb2ZcLWFcLWZvd2w7Civoi6sgPCBydXNoXC1vclwtc3RyYXdcLW1hdHRpbmc7Civls6QgPCBoaWdoXC1wb2ludGVkXC1tb3VudGFpbjsKK+enrSA8IG9uZVwtdGhvdXNhbmRcLW1pbGxpb25zOwor5aeSIDwgd2lmZVwtb2ZcLWVsZGVyXC1icm90aGVyOwor6JOwIDwgdG9cLWluY3JlYXNlXC1maXZlXC1mb2xkOwor6JKMIDwgYXJ0ZW1pc2lhXC1zdGVsbGVyaWFuYTsKK+mFgyA8IHRoZVwtc3Bpcml0XC1vZlwtYVwtYmVpbmc7Civns5cgPCBwYXJjaGVkXC13aGVhdFwtb3JcLXJpY2U7CivovosgPCBleHRlcmlvclwtcmltXC1vZlwtd2hlZWw7Civpq6sgPCBjaGlsZHJlbicnc1wtaGFpclwtc3R5bGU7CivombogPCBsYXJnZVwtcG9pc29ub3VzXC1zbmFrZTsKK+mGtSA8IGNvbnRyaWJ1dGVcLWZvclwtZHJpbmtzOwor6JqsIDwgYVwtdmFyaWV0eVwtb2ZcLWJpdmFsdmVzOwor6KO8IDwgdG9cLXRha2VcLW9mZlwtb25lJydzXC10b3A7CivnnLUgPCBleWVzXC1kaXNlYXNlZFwtYW5kXC1kaW07CivmnrUgPCBob2xsb1wtc3R1bXBcLW9mXC1hXC10cmVlOwor6JipIDwgYXJ0ZW1pc2lhXC1zdGVsbGFyaWFuYTsKK+iuk+WdkCA8IHRvXC1naXZlXC11cFwtb25lJydzXC1zZWF0Owor5b2s5b2s5pyJ56auIDwgcmVmaW5lZFwtYW5kXC1jb3VydGVvdXM7CivntrLntaHnrqHnkIblk6EgPCBuZXR3b3JrXC1hZG1pbmlzdHJhdG9yOwor5rK55YO5IDwgb2lsXC1cKHBldHJvbGV1bVwpXC1wcmljZTsKK+i7n+ehrOS7tiA8IHNvZnR3YXJlXC1hbmRcLWhhcmR3YXJlOwor5beo6aGNIDwgYVwtaHVnZVwtc3VtXC1cKG9mXC1tb25leVwpOwor5aWU5pS+IDwgYm9sZFwtYW5kXC11bnJlc3RyYWluZWQ7CivlvpfmhI8gPCBcKGJlXClcLXByb3VkXC1vZlwtb25lc2VsZjsKK+WujOWFqOWFvOWuuSA8IGNvbXBsZXRlbHlcLWNvbXBhdGlibGU7CivnhrHploDosqggPCBnb29kc1wtaW5cLWdyZWF0XC1kZW1hbmQ7CivpgJrkv6Hph48gPCBjb21tdW5pY2F0aW9uc1wtdm9sdW1lOwor5aWU5b+ZIDwgYmVcLWJ1c3lcLXJ1c2hpbmdcLWFib3V0Owor6KeA5ris6KGb5pifIDwgb2JzZXJ2YXRpb25cLXNhdGVsbGl0ZTsKK+WJm+ebtCA8IHVwcmlnaHRcLWFuZFwtb3V0c3Bva2VuOwor5beh6YKPIDwgYmVcLW9uXC1cKHBvbGljZVwpXC1wYXRyb2w7CivnpZ3os4DoqZ4gPCBjb25ncmF0dWxhdG9yeVwtc3BlZWNoOwor6Zu76IWm6LyU5Yqp6Kit6KiIIDwgY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ247CivpmY3npo8gPCBibGVzc2luZ3NcLWZyb21cLWhlYXZlbjsKK+eCuOiXpSA8IGV4cGxvc2l2ZVwtXChzdWJzdGFuY2VcKTsKK+W5vuWNgeW5tCA8IHNldmVyYWxcLXRlbnNcLW9mXC15ZWFyczsKK+WkouaDsyA8IHRvXC1kcmVhbVwtb2ZcLVwoaW5cLXZhaW5cKTsKK+mYsuepuiA8IGFudGlcLWFpcmNyYWZ0XC1kZWZlbnNlOwor5LiJ6JCs5LiD5Y2DIDwgdGhpcnR5XC1zZXZlblwtdGhvdXNhbmQ7CivlhYjpgLIgPCBhZHZhbmNlZFwtXCh0ZWNobm9sb2d5XCk7CivlpKfotablnIvpmpsgPCBhbW5lc3R5XC1pbnRlcm5hdGlvbmFsOwor5oOF5aCx5a6Y5ZOhIDwgaW50ZWxsaWdlbmNlXC1vZmZpY2lhbDsKK+WllOWRvSA8IHJ1c2hcLWFib3V0XC1vblwtZXJyYW5kczsKK+avlOaWueiqqiA8IHRvXC1tYWtlXC1hblwtYW5hbG9neVwuXC5cLjsKK+mbu+ejgeWZquiBsiA8IGVsZWN0cm9tYWduZXRpY1wtbm9pc2U7CivplbfpgJTntrLot68gPCBsb25nXC1kaXN0YW5jZVwtbmV0d29yazsKK+iKneWKoOWTpeWkp+WtuCA8IHVuaXZlcnNpdHlcLW9mXC1jaGljYWdvOwor6Kej5rG6IDwgdG9cLXNldHRsZVwtXChhXC1kaXNwdXRlXCk7CivpvIMgPCB0aGVcLWVkaWJsZVwtd2F0ZXJcLWZyb2c7CivpuqXoir3ns5YgPCBtYWx0b3NlXC1cKHN3ZWV0XC1zeXJ1cFwpOwor6beAIDwgdGhlXC1maXNoaW5nXC1jb3Jtb3JhbnQ7Civnvo7oga/npL4gPCBhc3NvY2lhdGVkXC1wcmVzc1wtXChhcFwpOwor6bSgIDwgYVwta2luZFwtb2ZcLW5pZ2h0aW5nYWxlOwor6Ziy5rK7IDwgXChwcmV2ZW50aW9uXC1hbmRcKVwtY3VyZTsKK+mwpCA8IHNlcmlvbGFcLXFpbnF1ZXJhZGlhdGE7Civmr5ToibLliIbmnpAgPCBjb2xvcmltZXRyaWNcLWFuYWx5c2lzOwor6a+EIDwgbGVwaWRvdHJpZ2xhXC1zdHJhdWNoaTsKK+mriCA8IGRlZmluZWRcLWFzXC10aGVcLXBlbHZpczsKK+aOqOiWpuS/oSA8IHJlY29tbWVuZGF0aW9uXC1sZXR0ZXI7CivluqvniL7lvrfkurogPCBrdXJkaXNoXC1wZXJzb25cfHBlb3BsZTsKK+W+rui7n+WFrOWPuCA8IG1pY3Jvc29mdFwtY29ycG9yYXRpb247CivliIbmqZ8gPCBcKHRlbGVwaG9uZVwpXC1leHRlbnNpb247CivporggPCBjb29sXC1icmVlemVcLW9mXC1hdXR1bW47CivnnL7mnJsgPCBwZW9wbGUnJ3NcLWV4cGVjdGF0aW9uczsKK+S4jeitmOaKrOiIiSA8IGZhaWxcLXRvXC1hcHByZWNpYXRlXC1zYjsKK+eZveezliA8IFwocmVmaW5lZFwpXC13aGl0ZVwtc3VnYXI7Civmk4HmiLQgPCB0b1wtc3VwcG9ydFwtXChhXC1wZXJzb25cKTsKK+W4reWNt+S6nua0siA8IHRvXC1zd2VlcFwtdGhyb3VnaFwtYXNpYTsKK+ihqOmBlCA8IHRvXC12b2ljZVwtXChhblwtb3BpbmlvblwpOwor5bm+5aSp5L6GIDwgZm9yXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+WgseaZgiA8IGdpdmVcLXRoZVwtY29ycmVjdFwtdGltZTsKK+maqOWSjCA8IGFtaWFibGVcLVwoZGlzcG9zaXRpb25cKTsKK+S9nOalreeSsOWigyA8IG9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivphY4gPCBkb3VibGVcLWZlcm1lbnRlZFwtd2luZTsKK+WHveaOiCA8IGNvcnJlc3BvbmRlbmNlXC1jb3Vyc2U7Civov7fmiIAgPCB0b1wtYmVcLWluZmF0dWF0ZWRcLXdpdGg7CivpmbjmtbfnqbrkuInou40gPCBhcm15XCxcLW5hdnlcLFwtYWlyXC1mb3JjZTsKK+aKleS6huelqCA8IHBhc3RcLXRlbnNlXC1vZlwtdG9cLXZvdGU7Civogq/lsLzov6ogPCBrZW5uZWR5XC1cKHByb3BlclwtbmFtZVwpOwor5ouX6Zm3IDwgZ2VvbG9naWNhbFwtZGVwcmVzc2lvbjsKK+WFjeeWqyA8IGltbXVuaXR5XC1cKHRvXC1kaXNlYXNlXCk7CivlhaznhLYgPCBcKGRvXC1zb21ldGhpbmdcKVwtb3Blbmx5Owor5pm65oWn55Si5qyKIDwgaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eTsKK+iwuiA8IHRoZVwtbW91dGhcLW9mXC1hXC12YWxsZXk7CivloIXmjIEgPCB0b1wtY29udGludWVcLXVwaG9sZGluZzsKK+WHuuW3riA8IGJlXC1vblwtYVwtYnVzaW5lc3NcLXRyaXA7CivooLggPCBhdWxhY29waG9yYVwtZmVtb3JhbGlzOwor5ry46YCyIDwgcHJvZ3Jlc3NcLXN0ZXBcLWJ5XC1zdGVwOwor6Jy6IDwgcmVmbGVjdGlvblwtb2ZcLXJhaW5ib3c7CivmnKzlnJ/ljJbou5/ku7YgPCBzb2Z0d2FyZVwtbG9jYWxpemF0aW9uOwor6JiYIDwgYVwta2luZFwtb2ZcLXdpbGRcLWdpbmdlcjsKK+mZkOWItiA8IFwoaW1wb3NlXClcLXJlc3RyaWN0aW9uczsKK+iVmiA8IHRoZVwtY2FseXhcLW9mXC1hXC1mbG93ZXI7Civkv53orbfljYAgPCBjb25zZXJ2YXRpb25cLWRpc3RyaWN0Owor6JG5IDwga2luZFwtb2ZcLWNocnlzYW50aGVtdW07CivokLsgPCBzbWFsbFwtYnVkZGhpc3RcLXRlbXBsZTsKK+W5tOWInSA8IGJlZ2lubmluZ1wtb2ZcLXRoZVwteWVhcjsKK+iImiA8IHRvXC1wdXRcLW91dFwtdGhlXC10b25ndWU7Civlpaflvrfos70gPCB0aGVcLW9keXNzZXlcLFwtYnlcLWhvbWVyOwor6auY57Sa5a6Y5ZOhIDwgaGlnaFwtcmFua2luZ1wtb2ZmaWNpYWw7CivljYrlpJzkuInmm7QgPCBpblwtdGhlXC1kZXB0aFwtb2ZcLW5pZ2h0Owor562G6YyEIDwgcHV0XC1kb3duXC1cKGluXC13cml0aW5nXCk7CivmjInohIggPCBmZWVsXC1cKHRha2VcKVwtdGhlXC1wdWxzZTsKK+e5tCA8IGFcLWtpbmRcLW9mXC1maXNoaW5nXC1uZXQ7Civnq7wgPCBiYW1ib29cLWNvdmVyXC1mb3JcLWJvYXQ7Civlj5bmtojnpoHku6QgPCB0b1wtbGlmZVwtYVwtcHJvaGliaXRpb247CivnpqggPCBwcmF5XC1mb3JcLWdvb2RcLWZvcnR1bmU7Civmi5vogZggPCB0YWtlXC1qb2JcLWFwcGxpY2F0aW9uczsKK+i2iuWNl+iqniA8IHZpZXRuYW1lc2VcLVwobGFuZ3VhZ2VcKTsKK+eZpSA8IG9ic3RydWN0aW9uXC1vZlwtYm93ZWxzOwor55ePIDwgYVwtYnJ1aXNlXC1vclwtY29udHVzaW9uOwor5oyB5LiN5ZCM5pS/6KaL6ICFIDwgXChwb2xpdGljYWxcKVwtZGlzc2lkZW50Owor5YWJ5beeIDwga3dhbmdqdVwtXChzb3V0aFwta29yZWFcKTsKK+Wvpumam+aHieeUqCA8IHByYWN0aWNhbFwtYXBwbGljYXRpb247CivnkqEgPCBqYWRlXC1sb29rXC1hbGlrZVwtc3RvbmU7Civlt6XllYYgPCBpbmR1c3RyeVwtYW5kXC1jb21tZXJjZTsKK+a+s+a0siA8IGF1c3RyYWxpYVwtXChjb250aW5lbnRcKTsKK+eUn+eUouiDveWKmyA8IG1hbnVmYWN0dXJpbmdcLWFiaWxpdHk7CivnuL3ntbHpgbjoiIkgPCBwcmVzaWRlbnRpYWxcLWVsZWN0aW9uOwor55qu5YWSIDwgXChkb3VnaFwsXC1ldGNcLlwpd3JhcHBlcnM7CivmvoIgPCBjbGVhclwtYW5kXC1zdGlsbFwtd2F0ZXI7CivnlJjogoUgPCBnYW5zdVwtcHJvdmluY2VcLFwtY2hpbmE7CivkuI3mk4fmiYvmrrUgPCBieVwtZmFpclwtbWVhbnNcLW9yXC1mb3VsOwor5recIDwgcm9hclwtb2ZcLWRhc2hpbmdcLXdhdmVzOwor5rKHIDwgZmxvd2luZ1wtYW5kXC1lbmd1bGZpbmc7CivlronplpIgPCBwZWFjZWZ1bFwtYW5kXC1jYXJlZnJlZTsKK+iJseW3qCA8IHZlcnlcLWRpZmZpY3VsdFwtXCh0YXNrXCk7CivooLvmqasgPCBydWRlXC1hbmRcLXVucmVhc29uYWJsZTsKK+ewveWtlyA8IHRvXC1zaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor5pqOIDwgc3VuXC1iZWdpbm5pbmdcLWRlY2xpbmU7CivlronpgakgPCBxdWlldFwtYW5kXC1jb21mb3J0YWJsZTsKK+Wci+mam+aomea6liA8IGludGVybnRpb25hbFwtc3RhbmRhcmQ7Civph5HpmbXlpKflrbggPCB1bml2ZXJzaXR5XC1vZlwtbmFua2luZzsKK+eVsOizque2sui3ryA8IGhldGVyb2dlbmVvdXNcLW5ldHdvcms7Civnmb3miYvotbflrrYgPCBidWlsZFwtdXBcLWZyb21cLW5vdGhpbmc7CivltbwgPCB3aW5kaW5nXC1tb3VudGFpblwtcGF0aDsKK+iRoeiQhOeJmeiqniA8IHBvcnR1Z3Vlc2VcLVwobGFuZ3VhZ2VcKTsKK+a4rOiJryA8IHRvXC1zdXJ2ZXlcLWFuZFwtbWVhc3VyZTsKK+izh+aWmeWCs+mAgeacjeWLmSA8IGRhdGFcLWRlbGl2ZXJ5XC1zZXJ2aWNlOwor54+t6LuKIDwgcmVndWxhclwtYnVzXC1cKHNlcnZpY2VcKTsKK+WftSA8IGhhcmRlbmVkXC1kaXJ0XC1vclwtY2xheTsKK+WXuyA8IHRvXC1zY3JlZW5cLlwtbG9xdWFjaW91czsKK+ahiOeUsSA8IG1haW5cLXBvaW50c1wtb2ZcLWFcLWNhc2U7CivosrborKsgPCBiYW5pc2hcLWZyb21cLXRoZVwtY291cnQ7Civpu4PprZogPCB5ZWxsb3dcLWNyb2FrZXJcLVwoZmlzaFwpOwor6Lqr5LiWIDwgb25lJydzXC1saWZlXC1leHBlcmllbmNlOwor5oqx5oGoIDwgaGF2ZVwtYVwtZ25hd2luZ1wtcmVncmV0Owor5YyfIDwgZGl2YW5cLWZvclwtdHdvXC1wZXJzb25zOwor5Ym+IDwgdG9cLXBpY2tcLXVwXC13aXRoXC1rbmlmZTsKK+Wbm+W5tOWJjSA8IGZvdXJcLXllYXJzXC1wcmV2aW91c2x5Owor6Ieq5Y+kIDwgXChzaW5jZVwpXC1hbmNpZW50XC10aW1lczsKK+S1lyA8IHRvXC1jbGVhblwtdGhlXC13aXRoZXJlZDsKK+S1hCA8IHRvXC1ib2lsXC1vclwtc3Rld1wtd2hlYXQ7Civks7kgPCBhXC1raW5kXC1kb3ZlXC1saWtlXC1iaXJkOwor5LOdIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkczsKK+SxnyA8IGFcLWtpbmRcLW9mXC1zaWx2ZXJcLWZpc2g7Civku4vos6roqKrllY/mjqfliLYgPCBtZWRpdW1cLWFjY2Vzc1wtY29udHJvbDsKK+SvryA8IGhhbmdcLWRvd25cLW9mXC10aGVcLWhhaXI7Civkr60gPCBvZlwtbmljZVwtYW5kXC1nb29kXC1oYWlyOwor5K6EIDwgYW5cLW9uZVwteWVhclwtb2xkXC1ob3JzZTsKK+eshuaWlyA8IHJvdW5kXC1ib3R0b21lZFwtYmFza2V0Owor5LiA6IeC5LmL5YqbIDwgXChsZW5kXClcLWFcLWhlbHBpbmdcLWhhbmQ7CivkqqUgPCBzaGFsbG90c1wtb3JcLXNjYWxsaW9uczsKK+SpqSA8IGFcLW1lYXN1cmVcLW9mXC1jYXBhY2l0eTsKK+SmvSA8IGFuXC1lYXN0XC1hbmRcLXdlc3RcLXdhbGw7Civoo73pgKDllYYgPCBtYW51ZmFjdHVyaW5nXC1jb21wYW55Owor5KaaIDwgd2lkZVwtb3Blblwtb2ZcLXRoZVwtZG9vcjsKK+SmjCA8IHRoZVwtZG9vclwtaXNcLXdpZGVcLW9wZW47CivkuozomZ8gPCAyXC1uZFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+SliCA8IHRoZVwtc3ltYm9sXC1mb3JcLWNvYmFsdDsKK+S4jeWAq+S4jemhniA8IG5laXRoZXJcLWZpc2hcLW5vclwtZm93bDsKK+SklyA8IHRhc3RlXC1vZlwtc3Ryb25nXC1kcmluazsKK+SiqSA8IHRvXC1mb3JiaWRcLXRvXC1wcm9oaWJpdDsKK+ShtiA8IHZlaGljbGVzXC1hbmRcLWdhcm1lbnRzOwor5J6aIDwgdG9cLWhhbmdcLW9uXC1hXC1iaWdcLXRyZWU7CivknZYgPCByZXB0aWxlc1wtd2l0aG91dFwtZmVldDsKK+SbsSA8IHRvXC10YWxrXC11bnJlbWl0dGluZ2x5Owor5JuKIDwgY2hlZXJmdWxcLWFsbFwtdGhlXC10aW1lOwor5JuDIDwgdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+SYkCA8IHRoZVwtYmxlZWRcLWF0XC10aGVcLW5vc2U7Civkl4kgPCBhXC1zbWFsbFwtc29saXRhcnlcLXdhc3A7Civln7rmnKzljp/nkIYgPCBmdW5kYW1lbnRhbFwtcHJpbmNpcGxlOwor5JaUIDwgYVwta2luZFwtb2ZcLXdoaXRlXC10aWdlcjsKK+SWjSA8IHRvXC1hY3RcLXdpdGhcLXJldmVyZW5jZTsKK+SUtSA8IGZyYWdyYW50XC10aG9yb3VnaHdvcnQ7CivosqHntpMgPCBmaW5hbmNlXC1hbmRcLWVjb25vbWljczsKK+SUiiA8IGRlbnNlXC1ncm93dGhcLW9mXC1ncmFzczsKK+STkiA8IHNjaXJwdXNcLWN5cGVyaW51c1wtdmFyOwor5pKr6aSK5oiQ5Lq6IDwgdG9cLWJyaW5nXC11cFwtXChhXC1jaGlsZFwpOwor5JKmIDwgZ3Jhc3NcLWZsb2F0c1wtb25cLXdhdGVyOwor5JKEIDwgZnVsbHlcLWxhZGVuXC1vZlwtYVwtYm9hdDsKK+SRnSA8IGFcLXNtYWxsXC1jdXBcLXdpdGhcLWVhcnM7Civkj6QgPCB0b3BcLW9mXC10aGVcLWh1bWFuXC1oZWFkOwor5Li76KqeIDwgXChncmFtbWF0aWNhbFwpXC1zdWJqZWN0Owor5I62IDwgb2ZmZXJpbmdcLWJsb29kXC10b1wtZ29kOwor6YCa5L+h5pyN5YuZIDwgY29tbXVuaWNhdGlvblwtc2VydmljZTsKK+SOmiA8IHRoZVwtZW5kXC1vZlwtYmlyZFwtd2luZ3M7CivkjpYgPCBzb2FyaW5nXC11cFwtaW5cLXRoZVwtc2t5Owor5IynIDwgYVwta2luZFwtb2ZcLXNpbGtcLWZhYnJpYzsKK+SMnyA8IHRvXC13ZWF2ZVwtc2lsa1wtcmliYm9uczsKK+WYluWYliA8IHRvXC1jbGlja1wtb25lJydzXC10b25ndWU7Civki4IgPCBkcmVzc2VzXC1mb3JcLXRoZVwtYnJpZGU7CivkiKcgPCBza2luXC1vZlwtYmFtYm9vXC1zaG9vdHM7CivkiJ4gPCBhbmNpZW50XC1uYW1lXC1vZlwtaW5kaWE7Civkh74gPCBhXC1mbHV0ZVwtd2l0aFwtMjNcLXR1YmVzOwor5IewIDwgYVwtYmFtYm9vXC1iaW5kZWRcLXRvcmNoOwor5IehIDwgdGhlXC1zaHV0dGxlXC1vZlwtYVwtbG9vbTsKK+SGoCA8IGFcLWdvdmVybm1lbnRcLW9mZmljaWFsOwor5IabIDwgc29tZXRoaW5nXC1pblwtdGhlXC1jYXZlOwor6by756WWIDwgdGhlXC1lYXJsaWVzdFwtYW5jZXN0b3I7CivkhZcgPCBmb3VyXC1idW5kbGVcLW9mXC1ncmFpbnM7Civlj43pnanlkb0gPCBjb3VudGVyXC1yZXZvbHV0aW9uYXJ5Owor5IGtIDwgdG9cLWdpdmVcLWFuXC1hbmdyeVwtbG9vazsKK+SBmiA8IGFcLWtpbmRcLW9mXC1leWVcLWRpc2Vhc2U7CivkgL0gPCB0b1wtbG9va1wtYXRcLWVhY2hcLW90aGVyOwor5ICgIDwgYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lOwor5ICTIDwgdG9cLXR1cm5cLW9uZScnc1wtZXllc1wtdG87Civjv7QgPCB3aWRlXC1waWVjZVwtb2ZcLWxlYXRoZXI7Civjv6sgPCB0b1wtc3BsaXRcLXRhbmdsZWRcLWhlbXA7Civjv48gPCBwYXJhbHlzaXNcLW9mXC10aGVcLWJvZHk7Civjvr4gPCBkaXNlYXNlXC1vZlwtdGhlXC10aHJvYXQ7CivjvLIgPCBzb3VuZFwtb2ZcLWJyb2tlblwtdGlsZXM7CivmiIDmhJsgPCB0b1wtaGF2ZVwtYVwtbG92ZVwtYWZmYWlyOwor47yQIDwgYVwta2luZFwtb2ZcLXdoaXRlXC1tZWxvbjsKK+O5tiA8IGFcLWtpbmRcLW9mXC13aWxkXC1hbmltYWw7CivjuaYgPCBkb2dcLXdpdGhcLWFcLXNob3J0XC10YWlsOwor47mUIDwgY2F0dGxlXC13aXRoXC1sb25nXC1iYWNrOwor5pq06LeMIDwgc3RlZXBcLWZhbGxcLVwoaW5cLXByaWNlXCk7CivjtaggPCBhXC1kcnlcLWxhbmRcLWluXC1hXC1yaXZlcjsKK+OziCA8IGFcLWdyZWF0XC1mbG93XC1vZlwtd2F0ZXI7CivorpPplosgPCB0b1wtZ2V0XC1vdXRcLW9mXC10aGVcLXdheTsKK+OxnyA8IHRvXC1yaXBcLW9wZW5cLXRoZVwtZmxlc2g7CivjsIQgPCBhXC1zbWFsbFwtY2hlc3RudXRcLXRyZWU7CivjrpcgPCB0aGVcLWhhbmRsZVwtb2ZcLWFcLXNwZWFyOwor462NIDwgY2FwaXRhbFwtZm9ybVwtb2ZcLXNldmVuOwor46ygIDwgdG9cLWV4cG9zZVwtdG9cLXN1bmxpZ2h0Owor5qqU5qGI5YiG6YWN5Y2AIDwgZmlsZVwtYWxsb2NhdGlvblwtdGFibGU7CivjqZ8gPCB0b1wtc2V3XC1zb21lXC1vcm5hbWVudHM7CivjqIwgPCB0b1wtbWlsa1wtYVwtY293XC1vclwtZ29hdDsKK+WwseS+vyA8IGF0XC1cKHlvdXJcKVwtY29udmVuaWVuY2U7Civlj6/ouqsgPCB0b1wtZml0XC13ZWxsXC1cKGNsb3RoZXNcKTsKK+enkeeglCA8IFwoc2NpZW50aWZpY1wpXC1yZXNlYXJjaDsKK+OgiyA8IGFcLWxvZnR5XC1tb3VudGFpblwtcGVhazsKK+OfniA8IHByZWNpcGl0b3VzXC1hbmRcLWxvZnR5Owor45+dIDwgdG9cLWJhbmtcLXVwXC13aXRoXC1lYXJ0aDsKK+OfnCA8IHNoYXBlXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfliA8IGFcLWRpYWxlY3RcLW9mXC1taW5vcml0eTsKK+OfjiA8IGFcLWxvbmdcLW1vdW50YWluXC1yaWRnZTsKK+OegSA8IGNhblwtbm90XC13YWxrXC1ub3JtYWxseTsKK+OYsCA8IG5hbWVcLW9mXC1hXC1vbGRcLWNvdW50cnk7CivjmKEgPCBhXC1wZW5cLWZvclwtd2lsZFwtYmVhc3RzOwor45iWIDwgdG9cLW1ha2VcLWFcLWRpc3R1cmJhbmNlOwor6ICB5YWp5Y+jIDwgYW5cLW9sZFwtbWFycmllZFwtY291cGxlOwor45eBIDwgdGhlXC1yb29mXC1vZlwtdGhlXC1tb3V0aDsKK+OWlyA8IGhpZ2hcLXJpZGdlc1wtb2ZcLWNsaWZmczsKK+WcsOWwjeepuuWwjuW9iCA8IGdyb3VuZFwtdG9cLWFpclwtbWlzc2lsZTsKK+OVoiA8IHByb2ZvdW5kXC1zaWduaWZpY2FuY2U7Civlj6/orIIgPCBpdFwtY291bGRcLWV2ZW5cLWJlXC1zYWlkOwor6K6T6LevIDwgdG9cLW1ha2VcLXdheVwtXChmb3JcLXN0aFwpOwor45KGIDwgdG9cLWdhdGhlclwtdGhlXC1oYXJ2ZXN0Owor5oi25Li7IDwgaGVhZFwtb2ZcLXRoZVwtaG91c2Vob2xkOwor6aCS6KGMIDwgaXNzdWVcLWZvclwtZW5mb3JjZW1lbnQ7CivlnIvnh5/kvIHmpa0gPCBuYXRpb25hbGl6ZWRcLWluZHVzdHJ5Owor5LqM5Y2B5YWr6JmfIDwgMjh0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+a5luWNlyA8IGh1bmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acrOWbuuaeneamriA8IHdoZW5cLXRoZVwtcm9vdFwtaXNcLWZpcm07CivlgrPovLjoqK3lgpkgPCB0cmFuc21pc3Npb25cLWZhY2lsaXR5Owor6aSY5pW4IDwgXChudW1lcmljYWxcKVwtcmVtYWluZGVyOwor5LiN566hIDwgbm9cLW1hdHRlclwtXCh3aGF0XCxcLWhvd1wpOwor54mI6Z2iIDwgc3BhY2VcLW9mXC1hXC13aG9sZVwtcGFnZTsKK+S4jeaYr+WRs+WFkiA8IG5vdFwtdGhlXC1yaWdodFwtZmxhdm91cjsKK+S4jeemgSA8IGNhbicndFwtaGVscFwtXChkb2luZ1wtc3RoOwor6Zqo5qmf5pmC6ZaTIDwgcmFuZG9tXC1wZXJpb2RcLW9mXC10aW1lOwor5piP6L+3IDwgdG9cLWxvc2VcLWNvbnNjaW91c25lc3M7CivlkJDnta4gPCB0aGVcLW9wZW5pbmdcLW9mXC1hXC1ib2xsOwor6Yuq5bmzIDwgc3ByZWFkXC1vdXRcLVwobWF0ZXJpYWxcKTsKK+WCs+i8uOi3nemboiA8IHRyYW5zbWlzc2lvblwtZGlzdGFuY2U7Civmi5zmiorlrZAgPCBiZWNvbWVcLXN3b3JuXC1icm90aGVyczsKK+WMl+WvkuW4tiA8IHRoZVwtbm9ydGhcLWZyaWdpZFwtem9uZTsKK+S4jeeQhiA8IHJlZnVzZVwtdG9cLWFja25vd2xlZGdlOwor6K6K6IeJIDwgc3VkZGVubHlcLXR1cm5cLWhvc3RpbGU7CivljbDluqblsLzopb/kup7oqp4gPCBpbmRvbmVzaWFuXC1cKGxhbmd1YWdlXCk7Civmtbfmlq8gPCBoYXllc1wtXChtaWNyb2NvbXB1dGVyXCk7CivmnbHlvrcgPCBcKGZvcm1lclwpXC1lYXN0XC1nZXJtYW55Owor5pqX56SBIDwgc3VibWVyZ2VkXC1yZWVmXC1cKHJvY2tcKTsKK+iyt+WlvSA8IHRvXC1pbmdyYXRpYXRlXC1vbmVzZWxmOwor5YWr6Lev6LuNIDwgdGhlXC1laWdodGhcLXJvdXRlXC1hcm15Owor5pqX55a+IDwgdW5tZW50aW9uYWJsZVwtZGlzZWFzZTsKK+iBs+WLlSA8IHRvXC1jcmVhdGVcLWFcLXNlbnNhdGlvbjsKK+WPpui1t+eIkOeBtiA8IHRvXC1zdGFydFwtZnJvbVwtc2NyYXRjaDsKK+mmluiFpuacg+itsCA8IGxlYWRlcnNoaXBcLWNvbmZlcmVuY2U7Civmnb/lh7MgPCB3b29kZW5cLWJlbmNoXC1vclwtc3Rvb2w7CivkuI3mmocgPCBoYXZlXC1ub1wtdGltZVwtXChmb3JcLXN0aDsKK+aCsuaGpCA8IGdyaWVmXC1hbmRcLWluZGlnbmF0aW9uOwor5LiN5L+h5Lu75oqV56WoIDwgdm90ZVwtb2ZcLW5vXC1jb25maWRlbmNlOwor5Y2X5YyX5qW1IDwgc291dGhcLWFuZFwtbm9ydGhcLXBvbGVzOwor5aaC5Ye65LiA6L2NIDwgYmVcLXByZWNpc2VseVwtdGhlXC1zYW1lOwor6JGj5LqL6ZW3IDwgY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkOwor5pys5Lq655qE6KeA6bueIDwgXChvbmUnJ3NcKVwtcGVyc29uYWxcLXZpZXc7CivnibnnlKIgPCBzcGVjaWFsXC1sb2NhbFwtcHJvZHVjdDsKK+iVreainSA8IFwoZWNvbm9taWNcKVwtZGVwcmVzc2lvbjsKK+S4jeihjOS6hiA8IG9uXC10aGVcLXBvaW50XC1vZlwtZGVhdGg7Civnn67mnYblk4HnqK4gPCBzaG9ydFwtc3RhbGtlZFwtdmFyaWV0eTsKK+aur+iRrCA8IGZ1bmVyYWxcLWFuZFwtaW50ZXJtZW50Owor5ZG95LukIDwgXChhblwpXC1vcmRlclwtb3JcLWNvbW1hbmQ7CivmtYHkuqEgPCB0b1wtXChmb3JjZVwtaW50b1wpXC1leGlsZTsKK+e1nueboeiFpuaxgSA8IHRvXC13cmFja1wtb25lJydzXC1icmFpbnM7CivlhYnno4Hnop/mqZ8gPCBtYWduZXRvXC1vcHRpY2FsXC1kcml2ZTsKK+WNoeilv+WwvCA8IGNhc3NpbmlcLVwocHJvcGVyXC1uYW1lXCk7CivljZHmsaEgPCBkZXNwaWNhYmxlXC1hbmRcLWZpbHRoeTsKK+Wci+acieS8gealrSA8IG5hdGlvbmFsaXplZFwtYnVzaW5lc3M7CivmmrTljZIgPCBkaWVcLW9mXC1zdWRkZW5cLWlsbG5lc3M7CivpgLzoppYgPCBsb29rXC1hdFwtZnJvbVwtY2xvc2VcLXVwOwor5pe65pyIIDwgYnVzeVwtXChidXNpbmVzc1wpXC1tb250aDsKK+S7gCA8IGZpbGVcLW9mXC10ZW5cLXNvbGRpZXJzOwor6LKsIDwgb25lJydzXC1yZXNwb25zaWJpbGl0eTsKK+eItSA8IGZldWRhbFwtdGl0bGVcLW9yXC1yYW5rOwor5ZWKIDwgZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5qWaIDwgbmFtZVwtb2ZcLWZldWRhbFwtc3RhdGU7CivmiZggPCB0b1wtaG9sZFwtdXBcLXdpdGhcLXBhbG07CivmsbIgPCBkcmF3XC13YXRlclwtZnJvbVwtd2VsbDsKK+mthSA8IGtpbmRcLW9mXC1mb3Jlc3RcLWRlbW9uOwor5LyKIDwgdGhpcmRcLXBlcnNvblwtcHJvbm91bjsKK+m4vyA8IHNwZWNpZXNcLW9mXC13aWxkXC1zd2FuOwor5aelIDwgbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor5o2nIDwgaG9sZFwtdXBcLWluXC10d29cLWhhbmRzOwor5LmZIDwgc2Vjb25kXC1oZWF2ZW4nJ3NcLXN0ZW07CivlkIEgPCBpbnRlcmplY3Rpb25cLScnYWxhc1whJyc7Civlp6ggPCBtb3RoZXJcL3dpZmUnJ3NcLXNpc3RlcjsKK+S6qSA8IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7Civlg7UgPCBzdGlmZlwtYW5kXC1tb3Rpb25sZXNzOwor5ouxIDwgZm9sZFwtaGFuZHNcLW9uXC1icmVhc3Q7Civnpr4gPCBncmFpblwtc3RpbGxcLW9uXC1zdGFsazsKK+WXoSA8IHNvdW5kXC1vZlwtZmx5aW5nXC1iZWVzOwor54ypIDwgc3BlY2llc1wtb2ZcLW9yYW5ndXRhbjsKK+eLniA8IGZlcm9jaW91c1wtYXBwZWFyYW5jZTsKK+aLiCA8IHBpY2tcLXVwXC13aXRoXC1maW5nZXJzOwor6ZmbIDwgc3RlcHNcLWxlYWRpbmdcLXRocm9uZTsKK+m4ryA8IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7Civlja8gPCB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+eGoCA8IGJyaWdodFwtYW5kXC1zcGFya2xpbmc7CivpmIIgPCBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor5reFIDwgd2F0ZXJcLXVzZWRcLXdhc2hcLXJpY2U7CivkvZogPCBpbmR1bGdlXC1pblwtcGxlYXN1cmVzOwor6L6aIDwgcnVtYmxpbmdcLW9mXC12ZWhpY2xlczsKK+W3vSA8IHRoXC1vZlwtdGhlXC04XC10cmlncmFtczsKK+iohyA8IHRoZVwtc291bmRcLW9mXC1hXC1jcmFzaDsKK+eLuiA8IHRoZVwtc25hcmxpbmdcLW9mXC1kb2dzOwor5rWUIDwgc3RlZXBcLWJhbmtcLWJ5XC1zdHJlYW07Civok4ogPCBsdXh1cmlhbnRcLXZlZ2V0YXRpb247Civok6AgPCBncmFjaWxhcmlhXC12ZXJydWNvc2E7Civoj4AgPCBsdXh1cmlhbmNlXC1vZlwtZ3Jvd3RoOwor6IOXIDwgcHVzdHVsZXNcLW9mXC1hbnlcLWtpbmQ7CivpooMgPCBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+WehiA8IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5qiXIDwgYWlsYW50aHVzXC1nbGFuZHVsb3NhOwor6JqnIDwgYVwtcmVkXC1zcG90dGVkXC1saXphcmQ7CivnvLYgPCBlYXJ0aGVuXC1jcm9ja1wtb3JcLWphcjsKK+ixsyA8IGFcLXpob3VcLWR5bmFzdHlcLXN0YXRlOwor6L26IDwgc21hbGxcLWxpZ2h0XC1jYXJyaWFnZTsKK+mAryA8IGxlYXZlXC13aXRob3V0XC1yZWFzb247CivliJfou4ogPCB0cmFpblwtXChyYWlsd2F5XC10ZXJtXCk7Civlj4vlpb0gPCBmcmllbmRseVwtXChyZWxhdGlvbnNcKTsKK+arg+mCiiA8IHRvXC1saWVcLW9uXC1vbmUnJ3NcLXNpZGU7CivliLboo4EgPCBcKGVjb25vbWljXClcLXNhbmN0aW9uczsKK+ekvuS6pCA8IFwoc29jaWFsXClcLWludGVyYWN0aW9uOwor5pON6KGMIDwgXChzdHVkZW50JydzXClcLWJlaGF2aW9yOwor5YWJ56OB56KfIDwgbWFnbmV0b1wtb3B0aWNhbFwtZGlzazsKK+e3qOe1hCA8IG9yZ2FuaXplXC1pbnRvXC1ncm91cHM7Civopqrov5EgPCBnZXRcLWNsb3NlXC10b1wtc29tZW9uZTsKK+WNmuimveacgyA8IFwoaW50ZXJuYXRpb25hbFwpXC1mYWlyOwor5aSa56iu6Kqe6KiA5pSv5oyBIDwgbXVsdGlsaW5ndWFsXC1zdXBwb3J0Owor57WQ6KuWIDwgXChyZWFjaFwtYVwpXC1jb25jbHVzaW9uOwor6Zeh6L+wIDwgZXhwb3VuZFwtXChhXC1wb3NpdGlvblwpOwor57at5ZC+54i+5Lq6IDwgdWlnaHVyXC1wZXJzb25cfHBlb3BsZTsKK+mWi+mZpOWtuOexjSA8IHRvXC1leHBlbFwtZnJvbVwtc2Nob29sOwor5b+D5a+SIDwgYmVcLXZlcnlcLWRpc2FwcG9pbnRlZDsKK+e1hOijnSA8IGFzc2VtYmxlXC1hbmRcLWluc3RhbGw7CivoqpPmrbsgPCB0b1wtcGxlZGdlXC1vbmUnJ3NcLWxpZmU7CivkuIDoiKzmgKcgPCBcKGluXClcLWdlbmVyYWxcLVwodGVybXNcKTsKK+WfjumEiSA8IGNpdHlcLWFuZFwtY291bnRyeXNpZGU7CivljZTlrpogPCBcKHJlYWNoXC1hblwpXC1hZ3JlZW1lbnQ7CivpgIvpgIPol6ogPCByZWZ1Z2VcLWZvclwtZnVnaXRpdmVzOwor6aaW5bit5Luj6KGoIDwgY2hpZWZcLXJlcHJlc2VudGF0aXZlOwor5rC05Z+fIDwgXCh0ZXJyaXRvcmlhbFwpXC13YXRlcnM7Civli7vmlbQgPCBuZWF0XC1hbmRcLXdlbGxcLXNwYWNlZDsKK+eZveecvOePoCA8IHRoZVwtd2hpdGVcLW9mXC10aGVcLWV5ZTsKK+eJqeeQhue1kOaniyA8IHBoeXNpY2FsXC1jb21wb3NpdGlvbjsKK+WFp+mWoyA8IFwoZ292ZXJubWVudFwpXC1jYWJpbmV0Owor5bug54mMIDwgYnJhbmRcLVwob2ZcLWFcLXByb2R1Y3RcKTsKK+WltuWltiA8IHBhdGVybmFsXC1ncmFuZG1vdGhlcjsKK+e3qOasoSA8IG9yZGVyXC1vZlwtYXJyYW5nZW1lbnQ7CivlnIvmnIPorbDplbcgPCBzcGVha2VyXC1vZlwtdGhlXC1ob3VzZTsKK+aHieeUqOW5s+WPsCA8IGFwcGxpY2F0aW9uXC1wbGF0Zm9ybTsKK+aVmeaOiCA8IHVuaXZlcnNpdHlcLXByb2Zlc3NvcjsKK+WLouW/hSA8IGlzXC1ib3VuZFwtdG9cLVwoaGFwcGVuXCk7CivloqjmsYEgPCBwcmVwYXJlZFwtY2hpbmVzZVwtaW5rOwor5aSn5bCHIDwgYVwtZ2VuZXJhbFwtb3JcLWFkbWlyYWw7CivmsKPkurogPCB0b1wtZ2V0XC1zb21lb25lXC1hbmdyeTsKK+WMheWgtCA8IGJvb2tcLWFcLXdob2xlXC10aGVhdHJlOwor5YWt6JmfIDwgNnRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5YyI54mZ5Yip6KqeIDwgaHVuZ2FyaWFuXC1cKGxhbmd1YWdlXCk7CivoqZ7lvZkgPCBcKGxpc3RcLW9mXClcLXZvY2FidWxhcnk7Civou5/pq5TphY3pgIHogIUgPCBzb2Z0d2FyZVwtZGlzdHJpYnV0b3I7CivkuI3kv6Hku7vmoYggPCBub1wtY29uZmlkZW5jZVwtbW90aW9uOwor6b2eIDwgdG9cLWRpc3BsYXlcLXRoZVwtdGVldGg7CivpvIggPCBhXC1mcmVzaFwtd2F0ZXJcLXR1cnRsZTsKK+m8giA8IGFcLWtpbmRcLW9mXC1zZWFcLXR1cnRsZTsKK+aNleifsuiRiSA8IGluc2VjdFwtY2F0Y2hpbmdcLWxlYWY7CivpuIcgPCBraW5kXC1vZlwtYmlyZFwtb2ZcLXByZXk7CivmlJ3lvbEgPCB0b1wtdGFrZVwtYVwtcGhvdG9ncmFwaDsKK+m4giA8IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+m3qyA8IHR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+m3gSA8IGZpc2hoYXdrXC1ib3dcLW9yXC1wcm93Owor5pS55ZaE6Zec5L+CIDwgdG9cLWltcHJvdmVcLXJlbGF0aW9uczsKK+i+r+eZvSA8IG9mZmVyXC1hblwtZXhwbGFuYXRpb247CivpsJwgPCBiaWdcLW1vdXRoZWRcLWZsb3VuZGVyOwor6au6IDwgdGhlXC1oYWlyXC1kaXNoZXZlbGxlZDsKK+aOoeioqiA8IGNvdmVyXC1cKGFcLW5ld3NcLXN0b3J5XCk7CivpqqMgPCBob3JzZVwtd2l0aG91dFwtc2FkZGxlOwor5YGc54Gr5Y2U6K2wIDwgY2Vhc2VcLWZpcmVcLWFncmVlbWVudDsKK+mkvSA8IG1ha2VcLXByZXNlbnRcLW9mXC1mb29kOwor5YW156uZIDwgYXJteVwtc2VydmljZVwtc3RhdGlvbjsKK+mfsSA8IHdpbGRcLW9uaW9uc1wtb3JcLWxlZWtzOwor6LuN6LK7IDwgbWlsaXRhcnlcLWV4cGVuZGl0dXJlOwor5LqM5Y2B5LqM6JmfIDwgMjJcLW5kXC1kYXlcLW9mXC1hXC1tb250aDsKK+mcgyA8IGxvbmdcLWNvbnRpbnVlZFwtcmFpbnM7Civmk5rmgokgPCBhY2NvcmRpbmdcLXRvXC1yZXBvcnRzOwor5YmN5bm0IDwgdGhlXC15ZWFyXC1iZWZvcmVcLWxhc3Q7Civpl40gPCB0b3dlclwtb3ZlclwtY2l0eVwtZ2F0ZTsKK+ijnOiJsiA8IGNvbXBsZW1lbnRhcnlcLWNvbG91cjsKK+aUu+WLoiA8IFwobWlsaXRhcnlcKVwtb2ZmZW5zaXZlOwor56K65pyJ5YW25LqLIDwgXChjb25maXJtXC10b1wtYmVcKVwtdHJ1ZTsKK+Wkp+Wei+S8gealrSA8IGxhcmdlXC1zY2FsZVwtaW5kdXN0cnk7CivliIbmk5QgPCBzaGFyZVwtcmVzcG9uc2liaWxpdHk7CivpjbEgPCB0aGluXC1wbGF0ZXNcLW9mXC1tZXRhbDsKK+S9v+W+kuihjOWCsyA8IGFjdHNcLW9mXC10aGVcLWFwb3N0bGVzOwor6Ym2IDwgc2FjcmlmaWNpYWxcLWNhdWxkcm9uOwor6ZaL55m8IDwgZXhwbG9pdFwtXChhXC1yZXNvdXJjZVwpOwor5q235LujIDwgc3VjY2Vzc2l2ZVwtZHluYXN0aWVzOwor6YawIDwgYml0dGVyXC10YXN0ZVwtaW5cLXdpbmU7Civov5Hml6UgPCBpblwtdGhlXC1wYXN0XC1mZXdcLWRheXM7Civlm57oqKogPCBcKHBheVwtYVwpXC1yZXR1cm5cLXZpc2l0Owor5b+F5LiN5Y+v5bCRIDwgYWJzb2x1dGVseVwtbmVjZXNzYXJ5Owor55eF6K6KIDwgcGF0aG9sb2dpY2FsXC1jaGFuZ2VzOwor5YeM5pmoIDwgZWFybHlcLWluXC10aGVcLW1vcm5pbmc7CivotoIgPCB0b1wtdGFrZVwtYWR2YW50YWdlXC1vZjsKK+S4jembheingCA8IG9mZmVuc2l2ZVwtdG9cLXRoZVwtZXllOwor5o6l5pS25Zmo6Z2I5pWP5bqmIDwgcmVjZWl2ZXJcLXNlbnNpdGl2aXR5Owor5LiN5Zyo6Kmx5LiLIDwgYmVcLW5vdGhpbmdcLWRpZmZpY3VsdDsKK+mZs+i/sOWPpSA8IGRlY2xhcmF0aXZlXC1zZW50ZW5jZTsKK+ilrCA8IGxvd2VyXC1wYXJ0XC1vZlwtYVwtcm9iZTsKK+mAmeWAi+aciCA8IHRoaXNcLVwoY3VycmVudFwpXC1tb250aDsKK+iisyA8IHNwcmVhZFwtb25lJydzXC1jbG90aGVzOwor5q235L6G5pyA5L2O6bueIDwgYWxsXC10aW1lXC1sb3dcLVwocG9pbnRcKTsKK+WAjemgu+WZqCA8IGZyZXF1ZW5jeVwtbXVsdGlwbGllcjsKK+ans+eLgCA8IGNlcnRpZmljYXRlXC1vZlwtbWVyaXQ7CivonJsgPCBoeWRyb3BoaWx1c1wtY29nbmF0dXM7Civom5ogPCBjeXJ0b3hpcGh1c1wtcml0c2VtYWU7CivmsJHml4/kuLvnvqnmg4Xnt5IgPCBuYXRpb25hbGlzdFwtZmVlbGluZ3M7CivpoJjlsI7mrIogPCBsZWFkZXJzaGlwXC1hdXRob3JpdHk7CivolqIgPCB3b29keVwtY2xpbWJpbmdcLXBsYW50Owor5YCa6YeNIDwgdG9cLXJlbHlcLWhlYXZpbHlcLXVwb247CivntIDlv7Xml6UgPCBkYXlcLW9mXC1jb21tZW1vcmF0aW9uOwor6IyAIDwgb3Zlcmdyb3duXC13aXRoXC1ncmFzczsKK+iKhCA8IG1ldGFwbGV4aXNcLXN0YXVudG9uaTsKK+aHieeUqOi7n+S7tiA8IGFwcGxpY2F0aW9uXC1zb2Z0d2FyZTsKK+iIuiA8IHBsYWNlXC1uYW1lXC1pblwtdGFpd2FuOwor6IShIDwgc3RyaXBzXC1vZlwtZHJpZWRcLW1lYXQ7CivmiorphZIgPCByYWlzZVwtb25lJydzXC13aW5lXC1jdXA7Civou43nlKggPCBcKGZvclwpXC1taWxpdGFyeVwtXCh1c2VcKTsKK+S6pOaPm+aKgOihkyA8IHN3aXRjaGluZ1wtdGVjaG5vbG9neTsKK+exs+W+t+eIvuS8r+ijoSA8IG1pZGRsZWJ1cnlcLVwoY29sbGVnZVwpOwor5L+d6YeNIDwgdGFrZVwtY2FyZVwtb2ZcLW9uZXNlbGY7CivloLHku4cgPCB0b1wtcmV2ZW5nZVwtXChvbmVzZWxmXCk7CivmioTouqsgPCB0b1wtc2VhcmNoXC1cKGFcLXBlcnNvblwpOwor57KDIDwgZW1wdHlcLWh1c2tzXC1vZlwtZ3JhaW47CivnqIvlvI/oqp7oqIAgPCBwcm9ncmFtbWluZ1wtbGFuZ3VhZ2U7Civnmb3mo4nntJkgPCBzdGVuY2lsXC10aXNzdWVcLXBhcGVyOwor56qjIDwgdG9cLXJ1c2hcLW91dFwtb2ZcLWFcLWRlbjsKK+ephyA8IHBhbmljdW1cLWZydW1lbnRhY2V1bTsKK+ajieilliA8IGNvdHRvblwtcGFkZGVkXC1qYWNrZXQ7Civno5IgPCB0b1wtZmFsbFwtZnJvbVwtb3JcLWludG87CivlhJjml6kgPCBhc1wtZWFybHlcLWFzXC1wb3NzaWJsZTsKK+efkSA8IHRoZVwtcHVwaWxcLW9mXC10aGVcLWV5ZTsKK+edjSA8IHRvXC1sb29rXC1hdFwtZmVhcmZ1bGx5Owor5Z+55L+uIDwgdG9cLXJlcGFpclwtZWFydGh3b3JrczsKK+WwiumHjSA8IHRvXC12YWx1ZVwtXChzb21ldGhpbmdcKTsKK+eUvSA8IGRyYWluXC1iZXR3ZWVuXC1maWVsZHM7CivnlIMgPCBicmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivnmbzooajogbLmmI4gPCB0b1wtaXNzdWVcLWFcLXN0YXRlbWVudDsKK+eQliA8IGNhcnZlZFwtamFkZVwtd2luZVwtY3VwOwor546mIDwgYnJva2VuXC1waWVjZVwtb2ZcLWphZGU7Civnl4XngbYgPCBmb2N1c1wtXChvZlwtaW5mZWN0aW9uXCk7Civlhanpu57ljYHkuZ3liIYgPCAyXC1cOjFcLTlcLVwodGltZVwtb2ZcLWRheVwpOwor5L616KWyIDwgdG9cLWludmFkZVwtYW5kXC1hdHRhY2s7CivngLMgPCB0b1wtYXJyaXZlXC1cKG9mXC13YXRlclwpOwor6Zu75a2Q5bel5qWtIDwgZWxlY3Ryb25pY3NcLWluZHVzdHJ5Owor5r6sIDwgdG9cLXJhaW5cLWNvbnRpbnVvdXNseTsKK+ewoeactCA8IHNpbXBsZVwtYW5kXC11bmFkb3JuZWQ7Civpp4HpgYsgPCB0cmFuc3BvcnRcLWJ5XC1saWdodGVyOwor5oyq56qp5YWSIDwgdG9cLW1vdmVcLVwodG9cLWFcLWhvdXNlXCk7Civlj6zplovmnIPorbAgPCB0b1wtY2FsbFwtYVwtY29uZmVyZW5jZTsKK+a0pCA8IGFcLWZvdW50YWluXC1vclwtc3ByaW5nOwor5L6L6KiAIDwgaW50cm9kdWN0b3J5XC1yZW1hcmtzOwor5YKZ5p+lIDwgZm9yXC1mdXR1cmVcLXJlZmVyZW5jZTsKK+anviA8IHBhc3RlXC13YWxsXC13aXRoXC1kaXJ0Owor5b635ZyL5Lq6IDwgZ2VybWFuXC1wZXJzb25cfHBlb3BsZTsKK+ajqCA8IHRhbGx5XC1vclwtd29vZGVuXC1wYXNzOwor5qGsIDwgcGVhclwtYW5kXC1vdGhlclwtdHJlZXM7CivlronpgLggPCBlYXN5XC1hbmRcLWNvbWZvcnRhYmxlOwor5pWzIDwgdG9cLWdvdmVyblwtZm9yY2VmdWxseTsKK+aVgSA8IHRvXC13ZWlnaFwtaW5cLXRoZVwtaGFuZDsKK+eXheaIvyA8IHdhcmRcLVwob2ZcLWFcLWhvc3BpdGFsXCk7Civnmb7kuovpgJogPCBrbm93bGVkZ2VhYmxlXC1wZXJzb247CivooajlvbAgPCBjaXRlXC1cKGluXC1kaXNwYXRjaGVzXCk7CivmkI4gPCB0b1wtcnViXC13aXRoXC10aGVcLWhhbmQ7CivkuI3mrbvlv4MgPCB1bndpbGxpbmdcLXRvXC1naXZlXC11cDsKK+ekpuazieawtCA8IG1pbmVyYWxcLXNwcmluZ1wtd2F0ZXI7CivlkIPkuI3kuIsgPCBub3RcLWZlZWxcLWxpa2VcLWVhdGluZzsKK+W5gOaqoumpl+W6j+WIlyA8IGZyYW1lXC1jaGVja1wtc2VxdWVuY2U7CivokKzntq3ntrIgPCB3b3JsZFwtd2lkZVwtd2ViXC1cKHd3d1wpOwor5ZWG5qWt5oeJ55SoIDwgYnVzaW5lc3NcLWFwcGxpY2F0aW9uOwor5q+P5rOB5oSI5LiLIDwgc3RlYWRpbHlcLWRldGVyaW9yYXRlOwor5ouc5pyDIDwgcGF5XC1hblwtb2ZmaWNpYWxcLWNhbGw7CivlsIjnqIsgPCBzcGVjaWFsXC1wdXJwb3NlXC10cmlwOwor5aqS6auU6Kiq5ZWP5o6n5Yi2IDwgbWVkaWFcLWFjY2Vzc1wtY29udHJvbDsKK+WBveW5oyA8IGNvdW50ZXJmZWl0XC1jdXJyZW5jeTsKK+i7jeS6i+apn+aniyA8IG1pbGl0YXJ5XC1pbnN0aXR1dGlvbjsKK+W1jyA8IGFcLW1vdW50YWluXC1pblwtc2hlbnhpOwor5omN55WlIDwgYWJpbGl0eVwtYW5kXC1zYWdhY2l0eTsKK+WtrSA8IHRvXC1jYXJyeVwtb25cLXRoZVwtYmFjazsKK+Wbm+W5tOWItueahOWkp+WtuCA8IGZvdXJcLXllYXJcLXVuaXZlcnNpdHk7CivlsaTmrKEgPCBhcnJhbmdlbWVudFwtb2ZcLWlkZWFzOwor5Yik6JmV5q275YiRIDwgdG9cLXNlbnRhbmNlXC10b1wtZGVhdGg7Civlq4sgPCBzbGVuZGVyXC1hbmRcLWRlbGljYXRlOwor5amjIDwgbWFycmlhZ2VcLWNvbm5lY3Rpb25zOwor562G5rOVIDwgdGVjaG5pcXVlXC1vZlwtd3JpdGluZzsKK+WvpumrlOWxpCA8IHBoeXNpY2FsXC1sYXllclwtXChvc2lcKTsKK+WbrCA8IHRvXC1yZXR1cm5cLXRvXC1vclwtZnJvbTsKK+S6pOmAmiA8IFwoYXV0b21vYmlsZVwpXC10cmFmZmljOwor54++6ZqO5q61IDwgYXRcLXRoZVwtcHJlc2VudFwtc3RhZ2U7CivosqjluaPosrblgLwgPCBjdXJyZW5jeVwtZGV2YWx1YXRpb247Civlj5vlnIvnvaogPCB0aGVcLWNyaW1lXC1vZlwtdHJlYXNvbjsKK+aMieeFp+azleW+iyA8IGFjY29yZGluZ1wtdG9cLXRoZVwtbGF3Owor5YqCIDwgY2hpc2VsXC1mb3JcLWVuZ3JhdmluZzsKK+WVn+eoiyA8IHNldFwtb3V0XC1vblwtYVwtam91cm5leTsKK+S4jeWujOWFqOS4reeriyA8IGltcGVyZmVjdFwtbmV1dHJhbGl0eTsKK+eVq+WgsSA8IHBpY3RvcmlhbFwtXChtYWdhemluZVwpOwor5YyX5Zue5q2457eaIDwgdGhlXC10cm9waWNcLW9mXC1jYW5jZXI7CivlhYvph4zmlq/miZjlvJcgPCBcKHdhcnJlblwpXC1jaHJpc3RvcGhlcjsKK+mbu+WtkOWFg+S7tiA8IGVsZWN0cm9uaWNcLWNvbXBvbmVudDsKK+e2k+a/n+ihsOmAgCA8IFwoZWNvbm9taWNcKVwtcmVjZXNzaW9uOwor5LaZIDwgc3dlbGxpbmdcLW9mXC10aGVcLWd1bXM7CivktoogPCB0b1wtYmxlZWRcLWF0XC10aGVcLW5vc2U7CivlhYnkuozmpbXnrqEgPCBsaWdodFwtZW1pdHRpbmdcLWRpb2RlOwor5LSfIDwgYW5cLW9uZVwteWVhclwtb2xkXC1kZWVyOwor5LOzIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkOwor5LORIDwgYVwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7CivksrEgPCBhXC1raW5kXC1vZlwtYmxhY2tcLWJpcmQ7CivkspUgPCB0aGVcLXlhbmd0emVcLXBvcnBvaXNlOwor5LGQIDwgYVwta2luZFwtb2ZcLWJsYWNrXC1maXNoOwor5LGAIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1maXNoOwor5L615pO+IDwgdG9cLWludmFkZVwtYW5kXC1oYXJhc3M7CivlsY/luZUgPCBcKHR2XC1vclwtbW92aWVcKVwtc2NyZWVuOwor5K6hIDwgYVwtc3VwZXJuYXR1cmFsXC1ob3JzZTsKK+SugiA8IGhvcnNlXC13aXRoXC1sb25nXC1oYWlyOwor5K23IDwgaG9yc2VcLXdpdGhcLWxvbmdcLW1hbmU7CivkrKkgPCB0b1wtYWJzdGFpblwtZnJvbVwtbWVhdDsKK+SsoyA8IGFcLXNhY3JpZmljaWFsXC12aWN0aW07Civkq6AgPCBzaG9ydFwtaGFpclwtYW5kXC1iZWFyZDsKK+mMpuaomeizvSA8IGNoYW1waW9uc2hpcFwtY29udGVzdDsKK+SpvSA8IGFcLXF1aXZlclwtb25lXC1hXC1ob3JzZTsKK+SpgiA8IHRvXC1jb21lXC10b1wtdGhlXC1mcm9udDsKK+eQg+e2siA8IG5ldFwtXChmb3JcLWJhbGxcLWdhbWVzXCk7Civkp5cgPCBtb3VudGFpbnNcLWNvbGxhcHNpbmc7CivkpqYgPCBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWkIDwgdGhlXC1uZWNrXC1vZlwtYVwtcGVzdGxlOwor5KWEIDwgdG9cLXBsYXN0ZXJcLXdpdGhcLWdvbGQ7CivkpLggPCBzaG9ydFwtc3BlYXJcLW9yXC1sYW5jZTsKK+S4jeepqeW5s+ihoSA8IHVuc3RhYmxlXC1lcXVpbGlicml1bTsKK+a8ouWMliA8IGNoaW5lc2VcLWxvY2FsaXphdGlvbjsKK+SgkSA8IGJldHdlZW5cLXRoZVwtYnV0dG9ja3M7CivkoIggPCBoYXJkXC10b1wtbW92ZVwtZm9yd2FyZDsKK+SfqSA8IGhhcmRcLW9mXC13YWxrXC1mb3J3YXJkOwor5J6ZIDwgdG9cLXdhbGtcLWluXC1odXJyaWVkbHk7CivknZEgPCBhXC1sb2NhbFwtcHJvZHVjZWRcLXBpZzsKK+ScpyA8IHRvXC1pbnN1bHRcLXdpdGhcLXdvcmRzOwor5JyTIDwgYVwtc2xpcFwtb2ZcLXRoZVwtdG9uZ3VlOwor5JuMIDwgdG9cLXByb3Zva2VcLW9yXC1hcm91c2U7Civkma4gPCBzdHJpcFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SYviA8IGxlZ3NcLW9mXC10aGVcLXRyb3VzZXJzOwor5L+h5oGv6LOH5rqQIDwgaW5mb3JtYXRpb25cLXJlc291cmNlOwor5JWrIDwgYVwtb25lXC1sZWdnZWRcLW1vbnN0ZXI7CivklIggPCBsdXNoXC1ncm93dGhcLW9mXC1ncmFzczsKK+WFreWNgeS6lOatsiA8IHNpeHR5XC1maXZlXC15ZWFyc1wtb2xkOwor5JGgIDwgbG9uZ1wtYW5kXC1uYXJyb3dcLWJvYXQ7CivkkLggPCB0aGVcLWJhY2tcLW9mXC10aGVcLWtuZWU7Civkj78gPCB0aGVcLWNhbGZcLW9mXC10aGVcLWxlZ3M7Civkj6EgPCB1bmNvb2tlZFwtb3JcLXJhd1wtbWVhdDsKK+SKsyA8IHRvXC1icmVha1wtaW50b1wtcGllY2VzOwor5IqyIDwgdG9cLWh1bGxcLXJpY2VcLXJvdWdobHk7CivkioIgPCBwb29yXC1xdWFsaXR5XC1vZlwtcmljZTsKK+WwjeWzmSA8IG11dHVhbFwtY29uZnJvbnRhdGlvbjsKK+SJkSA8IGJsYWNrXC1za2lubmVkXC1iYW1ib287CivkiKYgPCBhXC1jdXJ2ZWRcLWJhbWJvb1wtd2hpcDsKK+SIkSA8IHRvb2xzXC10b1wtdW5yZWVsXC1zaWxrOwor5IiBIDwgdG9vbHNcLXVzZWRcLW9uXC1hXC1ib2F0Owor5IeYIDwgdG9vbFwtdG9cLWNvbGxlY3RcLXJvcGU7CivkhqMgPCBhYm9kZVwtb2ZcLXRoZVwtZW1wZXJvcjsKK+SGjyA8IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SFriA8IGFcLWZ1bGxcLWhlYWRcLW9mXC1ncmFpbjsKK+SFkyA8IGN1cnZlZFwtcGllY2VcLW9mXC13b29kOwor5IWPIDwgcmljZVwtYm9pbGVkXC10b1wtZ3J1ZWw7CivkhK8gPCB0ZW5cLWhhbmRsZVwtb2ZcLWdyYWluczsKK+e+jui7jSA8IHVzXC1hcm15XHxhcm1lZFwtZm9yY2VzOwor5ISCIDwgdG9cLXByYXlcLWFuZFwtdG9cLWN1cnNlOwor5IOwIDwgYnJpY2tcLW9yXC1zdG9uZVwtc3RlcHM7CivkgpIgPCBzaG9ydFwtdG9cLWN1cnJ5XC1mYXZvcjsKK+SCgiA8IHRvXC1nYXplXC1hdFwtaW5cLXRlcnJvcjsKK+SBrCA8IHRvXC1hY3RcLXByZXRlbnRpb3VzbHk7CivkgLcgPCB0b1wtaGF2ZVwtcXVpY2tcLWdsYW5jZTsKK+SAsiA8IGRpc2Vhc2VzXC1pblwtdGhlXC1leWVzOwor5L2N5pa8IDwgYmVcLXNpdHVhdGVkXC1cKGluXCxcLWF0XCk7Civjv7ggPCB0b1wtY2FzdFwtb2ZmXC10aGVcLXNraW47Civjv54gPCBhblwtb2xkXC1tYW5cLW9mXC1laWdodHk7CivjvaQgPCBhXC1zbWFsbFwtcGxvdFwtb2ZcLWxhbmQ7CivjvaIgPCB0b1wtcGxvdWdoXC10aGVcLWZpZWxkczsKK+O9lSA8IG5ld1wtYnJhbmNoZXNcLWdyb3dpbmc7CivjvYMgPCBhXC1iaWdcLXBpZWNlXC1vZlwtYnJpY2s7CivjvKIgPCBicmlja3NcLWFuXC1lYXRoZW5cLWphcjsKK+O8iSA8IGdyZWVuXC1jb2xvcmVkXC1tZWxvbnM7Civju64gPCBicmlnaHRcLWFuZFwtYnJpbGxpYW50Owor47quIDwgZmluZVwtc3RvbmVcLWxpa2VcLWphZGU7CivjuoIgPCBiaWdcLWFuZFwtc3Ryb25nXC1zaGVlcDsKK+O5mCA8IHNoaW5ib25lXC1vZlwtYVwtY2F0dGxlOwor47iqIDwgYW5cLW94XC13YWxraW5nXC1zbG93bHk7CivororpoLsgPCBmcmVxdWVuY3lcLWNvbnZlcnNpb247Civnq7bniK3lipsgPCBjb21wZXRpdGl2ZVwtc3RyZW5ndGg7Civjt5kgPCB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor47aUIDwgc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O1niA8IGJlbGxpZWRcLWluXC13YXRlclwtZ2FzOwor47O8IDwgYnViYmxpbmdcLW9mXC1mb3VudGFpbjsKK+OzmiA8IGZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47OUIDwgdG9cLXNvYWtcLW9yXC1iZVwtc29ha2VkOwor47KrIDwgaGFpclwta25vdHNcLWluXC1hXC1tZXNzOwor47CLIDwgYVwta2luZFwtb2ZcLWZydWl0XC10cmVlOwor46+MIDwgdG9cLW9wZXJhdGVcLW9yXC1tYW5hZ2U7Civmmbrog73lpKfmqJMgPCBpbnRlbGxpZ2VudFwtYnVpbGRpbmc7CivlsJHmlbjmsJHml48gPCBtaW5vcml0eVwtbmF0aW9uYWxpdHk7Civllq7lrZcgPCBpbmRpdmlkdWFsXC1jaGFyYWN0ZXI7CivjrZ4gPCBhXC1raW5kXC1pbmZlcmlvclwtd29vZDsKK+OtkiA8IGFcLWZhcm1pbmdcLWluc3RydW1lbnQ7CivjqbsgPCBydWdnZWRcLW1vdW50YWluXC1wYXRoOwor46mUIDwgYVwtdG9vbFwtdG9cLW1ha2VcLWFcLWJvdzsKK+OnuSA8IHRvXC1zdHJpa2VcLXdpdGhcLWZpc3RzOwor6IOM5b+DIDwgYVwtc2xlZXZlbGVzc1wtZ2FybWVudDsKK+aItuWPoyA8IHJlZ2lzdGVyZWRcLXJlc2lkZW5jZTsKK+OhmSA8IGN1cnRhaW5cLWZvclwtY2FycmlhZ2U7CivmnKznp5EgPCB1bmRlcmdyYWR1YXRlXC1jb3Vyc2U7CivjoJcgPCBkZWVwXC1pblwtdGhlXC1tb3VudGFpbjsKK+OenyA8IHNhdmluZ3NcLWFuZFwtcmVzZXJ2ZXM7CivjmaMgPCB0b1wtcGlsZVwtYVwtc2FuZFwtaGlsbHM7Civkvr/kuK0gPCBhdFwtb25lJydzXC1jb252ZW5pZW5jZTsKK+OZkSA8IHRoZVwtY2Fub3B5XC1vZlwtaGVhdmVuOwor45iOIDwgdGhlXC1yb2Fyc1wtb2ZcLWFcLXRpZ2VyOwor6ZGS5a6a5aeU5ZOh5pyDIDwgZXZhbHVhdGlvblwtY29tbWl0dGVlOwor45iFIDwgdG9cLWhvbGRcLWluXC10aGVcLW1vdXRoOwor5a+25YqNIDwgYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7CivjlaEgPCB0aGVcLWJlZFwtb2ZcLWFcLXRvcnJlbnQ7CivjlYwgPCB0b1wtcmFpc2VcLXRoZVwtY3VydGFpbjsKK+OUiyA8IGN1dFwtaW50b1wtdGhpblwtc2xpY2VzOwor45KFIDwgdG9cLXVuYmluZFwtdGhlXC1jb2xsYXI7CivjkYkgPCBjYW5ub3RcLXN0cmFpZ2h0ZW5cLXVwOwor6Yae6YeAIDwgbXVsbFwtb3ZlclwtXChhblwtaXNzdWVcKTsKK+WFqOmdouemgeatoiA8IGNvbXBsZXRlXC1wcm9oaWJpdGlvbjsKK+aal+iZnyA8IHNlY3JldFwtc2lnbmFsXC1cKHNpZ25cKTsKK+iAgeeIuiA8IG1hdGVybmFsXC1ncmFuZGZhdGhlcjsKK+ePreacnyA8IHNjaGVkdWxlXC1cKGZvclwtZmxpZ2h0Owor6LK35pa5IDwgYnV5ZXJcLVwoaW5cLWNvbnRyYWN0c1wpOwor5a6J5aicIDwgYW5uYVwtXChwZXJzb24nJ3NcLW5hbWVcKTsKK+movummrOWkp+i7iiA8IG11bGVcLWFuZFwtaG9yc2VcLWNhcnRzOwor57aT5r+f55m85bGVIDwgZWNvbm9taWNcLWRldmVsb3BtZW50Owor6YCa6KiK57O757WxIDwgY29tbXVuaWNhdGlvblwtc3lzdGVtOwor6LKs5oiQIDwgZ2l2ZVwtc29tZWJvZHlcLWFcLXRhc2s7CivkuI3kuozms5XploAgPCB0aGVcLW9uZVwtYW5kXC1vbmx5XC13YXk7Civpgo/ovK/pj4jot6/mjqfliLYgPCBsb2dpY2FsXC1saW5rXC1jb250cm9sOwor5aSa6bq8IDwgaG93XC1cKHdvbmRlcmZ1bFwsXC1ldGNcKTsKK+mFrOisnSA8IHRvXC10aGFua1wtd2l0aFwtYVwtZ2lmdDsKK+eEoeWDueePjeePoCA8IHBlYXJsXC1vZlwtZ3JlYXRcLXByaWNlOwor5b6A6L+UIDwgdG9cLWdvXC1iYWNrXC1hbmRcLWZvcnRoOwor5YyF6YeRIDwgY292ZXJcLXdpdGhcLWdvbGRcLWxlYWY7CivmnKrmiJDlubTogIUgPCBtaW5vclwtXChub3RcLWFuXC1hZHVsdFwpOwor5pqR54axIDwgaG90XC1cKHN1bW1lclwpXC13ZWF0aGVyOwor5beh6L+05YiG5p6Q56uv5Y+jIDwgcm92aW5nXC1hbmFseXNpc1wtcG9ydDsKK+S8iuaWr+iYreWgoSA8IGlzbGFtYWJhZFwtXChwYWtpc3RhblwpOwor6YGL5YuV5pyDIDwgYVwtc3BvcnRzXC1jb21wZXRpdGlvbjsKK+S4jeabviA8IG5ldmVyXC1cKGhhdmVcLWRvbmVcLXN0aDsKK+e4vemDqCA8IGdlbmVyYWxcLWhlYWRxdWFydGVyczsKK+iytuWAvCA8IHRvXC1iZWNvbWVcLWRldmFsdWF0ZWQ7CivpgbrpqrggPCBcKGRlYWRcKVwtaHVtYW5cLXJlbWFpbnM7CivkuozljYHlm5vomZ8gPCAyNFwtdGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor6aGe5o6oIDwgdG9cLXJlYXNvblwtYnlcLWFuYWxvZ3k7CivlpKflpLHmiYDmnJsgPCBncmVhdGx5XC1kaXNzYXBvaW50ZWQ7Civlkozlpb0gPCB0b1wtYmVjb21lXC1yZWNvbmNpbGVkOwor5pys5ZyfIDwgb25lJydzXC1uYXRpdmVcLWNvdW50cnk7Civkup7lgKsgPCBhYXJvblwtXChhXC1tYW4nJ3NcLW5hbWVcKTsKK+e+nuaBpSA8IFwoYVwtZmVlbGluZ1wtb2ZcKVwtc2hhbWU7Civlk4jkvZsgPCBoYXJ2YXJkXC1cKHVuaXZlcnNpdHlcKTsKK+aakeacnyA8IHN1bW1lclwtdmFjYXRpb25cLXRpbWU7CivkvIHmpa3pm4blnJggPCBpbmR1c3RyeVwtYXNzb2NpYXRpb247CivnrqHnkIbmjqXlj6MgPCBtYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivlkbzlloogPCBzaG91dFwtXChzbG9nYW5zXCxcLWV0Y1wpOwor57m957SbIDwgaW5cLXJpb3RvdXNcLXByb2Z1c2lvbjsKK+WRiOWgsSA8IHRvXC1cKHN1Ym1pdFwtYVwpXC1yZXBvcnQ7CivnlJ/nlKLoqK3lgpkgPCBwcm9kdWN0aW9uXC1lcXVpcG1lbnQ7CivljYrnmb0gPCBmaWZ0eVwtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor8KCBpSA8IHRoZVwtaG9ybnNcLW9mXC1hXC1zaGVlcDsKK+i3kem+jeWllyA8IHRvXC1wbGF5XC1hXC1zbWFsbFwtcm9sZTsKK+aYgueEtiA8IHVwcmlnaHRcLWFuZFwtdW5hZnJhaWQ7CivpgoToqqogPCB0b1wtYWRkXC1cKGluXC1zcGVha2luZ1wpOwor5pu05YqgIDwgbW9yZVwtXCh0aGFuXC1zdGhcLWVsc2VcKTsKK+W+t+mbt+eIviA8IFwoanVuZVwtdGV1ZmVsXClcLWRyZXllcjsKK+e+qeWLmeaVmeiCsiA8IGN1bXB1bHNvcnlcLWVkdWNhdGlvbjsKK+eIuueIuiA8IHBhdGVybmFsXC1ncmFuZGZhdGhlcjsKK+WCs+i8uOaOp+WItiA8IHRyYW5zbWlzc2lvblwtY29udHJvbDsKK+S4jeWLnSA8IGNhbm5vdFwtYmVhclwtb3JcLXN0YW5kOwor5pWX6IODIDwgc3BvaWxcLW9uZScnc1wtYXBwZXRpdGU7Civororlv4MgPCBjZWFzZVwtdG9cLWJlXC1mYWl0aGZ1bDsKK+S4jeaHt+WlveaEjyA8IGhhcmJvdXJcLWV2aWxcLWRlc2lnbnM7CivkuIrlgIsgPCBmaXJzdFwtXChvZlwtdHdvXC1wYXJ0c1wpOwor5Y+q5LiN6YGO5bm+5bm05YmNIDwgb25seVwtYVwtZmV3XC15ZWFyc1wtYWdvOwor5bm+IDwgaG93XC1tYW55XD9cLWhvd1wtbXVjaFw/Owor5aWPIDwgbWVtb3JpYWxpemVcLWVtcGVyb3I7CivmgqggPCBob25vcmlmaWNcLWZvclwtJyd5b3UnJzsKK+WQjyA8IGdvdmVybm1lbnRcLW9mZmljaWFsOwor5YWAIDwgdG9cLWN1dFwtb2ZmXC10aGVcLWZlZXQ7Civog7QgPCB0aGVcLWxhcmdlXC1pbnRlc3RpbmU7Civnp6YgPCBmZXVkYWxcLXN0YXRlXC1vZlwtcWluOwor5qGBIDwgY3Jvc3NcLWJlYW1zXC1vZlwtcm9vZjsKK+iOjiA8IGtpbmRcLW9mXC1zZWRnZVwtZ3Jhc3M7CivolpsgPCBraW5kXC1vZlwtbWFyc2hcLWdyYXNzOwor57WjIDwgdG9cLWJhc3RlXC1mb3JcLXNld2luZzsKK+aCliA8IGJlXC1jb250cmFkaWN0b3J5XC10bzsKK+iKkiA8IG1pc2NhbnRodXNcLXNpbmVuc2lzOwor5Zi2IDwgbmVpZ2hpbmdcLW9mXC1hXC1ob3JzZTsKK+WPvSA8IHNpZ2hcLWluXC1kaXNhcHByb3ZhbDsKK+WOpSA8IHBlcnNvbmFsXC1wcm9ub3VuXC1oZTsKK+WcrSA8IGphZGVcLXBvaW50ZWRcLWF0XC10b3A7CivlvpggPCB3YWxrXC1iYWNrXC1hbmRcLWZvcnRoOwor5pmkIDwgaGF2ZVwtaW50ZXJ2aWV3XC13aXRoOwor6Ii3IDwgdGhlXC1zaWRlc1wtb2ZcLWFcLWJvYXQ7CivpgqwgPCB2YXJpb3VzXC1wbGFjZVwtbmFtZXM7CivopJAgPCBjb2Fyc2VcLXdvb2xlblwtY2xvdGg7CivppoggPCBvZmZlclwtZm9vZFwtc3VwZXJpb3I7CivllKcgPCBjaGlycGluZ1wtb2ZcLWluc2VjdHM7CivlkpQgPCB1c2VkXC1pblwtdHJhbnNsYXRpb247CivngbggPCBjYXV0ZXJpemVcLXdpdGhcLW1veGE7CivpqbcgPCB0ZWFtXC1vZlwtZm91clwtaG9yc2VzOwor57K8IDwgY2xlYXJcLVwoYXNcLW9mXC13YXRlclwpOwor576aIDwgc3BlY2llc1wtb2ZcLWFudGVsb3BlOwor5ZGTIDwgdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7Civnr5kgPCBwb2xlXC11c2VkXC1wdW50XC1ib2F0Owor5rmNIDwgcmFwaWRcLXdhdGVyXC1jdXJyZW50Owor6ISNIDwgbWluY2VkXC1tZWF0XC1vclwtZmlzaDsKK+mPliA8IHRvXC1maWdodFwtdG9cLXRoZVwtZW5kOwor6IK9IDwgYVwtY2hlbWljYWxcLWNvbXBvdW5kOwor6YquIDwgYmVsbHNcLWh1bmdcLW9uXC1ob3JzZTsKK+essyA8IGFcLXJlZWRcLWxlYWZcLXdoaXN0bGU7Civolo8gPCBzZWVkXC1vZlwtam9iJydzXC10ZWFyczsKK+aCnSA8IHRvXC1sYXVnaFwtYXRcLXRvXC1waXR5Owor6LGHIDwgYVwtc21hbGxcLWtpZG5leVwtYmVhbjsKK+ahiSA8IGV1Y2FseXB0dXNcLWdsb2J1bHVzOwor6LmBIDwgdG9cLXdhbGtcLXdpdGhcLWFcLWxpbXA7CivohYggPCBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civonp8gPCBraW5kXC1vZlwtY2F0ZXJwaWxsYXI7Civms64gPCB6aG91XC1keW5hc3R5XC1zY2hvb2w7CivpsrMgPCB0aGVcLXNpbHZlcnlcLXBvbWZyZXQ7CivpnKogPCBsb25nXC1hbmRcLWhlYXZ5XC1yYWluOwor5p6YIDwgdGhlXC1oYW5kbGVcLW9mXC10b29sczsKK+a7uSA8IHRoZVwtYmFua1wtb2ZcLWFcLXN0ZWFtOwor5b2zIDwgc3RlcFwtd2l0aFwtbGVmdFwtZm9vdDsKK+S6jSA8IHRvXC10YWtlXC1zbWFsbFwtc3RlcHM7CivnoJggPCBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+agjiA8IGNoZXN0bnV0XC1sZWF2ZWRcLW9hazsKK+m5hyA8IHRoZVwtc2lsdmVyXC1waGVhc2FudDsKK+iLjCA8IGF2ZXJyaG9yYVwtY2FyYW1ib2xhOwor6YObIDwgb3V0ZXJcLXdhbGxzXC1vZlwtY2l0eTsKK+mGoiA8IG1pbmNlZFwtcGlja2xlZFwtbWVhdDsKK+ecmiA8IGRpc2Vhc2VcLW9mXC10aGVcLWV5ZXM7Civoo4kgPCBzXC1zZWFtXC1pblwtYVwtZ2FybWVudDsKK+W0piA8IGFcLW1vdW50YWluXC1pblwta2Fuc3U7CivlhZUgPCBhXC1mZW1hbGVcLXJoaW5vY2Vyb3M7CivoqLrmlrflip/og70gPCBkaWFnbm9zdGljXC1mdW5jdGlvbjsKK+iyoeaUv+mDqCA8IG1pbmlzdHJ5XC1vZlwtZmluYW5jZTsKK+WllOa1gSA8IGZsb3dcLWF0XC1ncmVhdFwtc3BlZWQ7Civlu6PlkYrllYYgPCBhZHZlcnRpc2luZ1wtY29tcGFueTsKK+S4gOeZvuS6lOWNgeWkmuW5tCA8IG1vcmVcLXRoYW5cLTE1MFwteWVhcnM7Civml6XmlocgPCBqYXBhbmVzZVwtXChsYW5ndWFnZVwpOwor6aas5L6G6KW/5Lqe6KqeIDwgbWFsYXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+aSnuimiyA8IHRvXC1tZWV0XC1ieVwtYWNjaWRlbnQ7Civlt67poY0gPCBiYWxhbmNlXC1cKGZpbmFuY2lhbFwpOwor5Y2K5oiqIDwgaGFsZlwtXChvZlwtYVwtc2VjdGlvblwpOwor5Ymb57qUIDwgXChqdXN0XClcLWFcLW1vbWVudFwtYWdvOwor5oWw5a6J5ammIDwgY29tZm9ydFwtd29tYW5cfHdvbWVuOwor5oqY5bCE546HIDwgaW5kZXhcLW9mXC1yZWZyYWN0aW9uOwor5bug56SmIDwgZmFjdG9yaWVzXC1hbmRcLW1pbmVzOwor5YKz6Ly45aqS6auUIDwgdHJhbnNtaXNzaW9uXC1tZWRpdW07Civotbfmrbvlm57nlJ8gPCBhcmlzZVwtZnJvbVwtdGhlXC1kZWFkOwor54ax54OIIDwgd2FybVwtXCh3ZWxjb21lXCxcLWV0Y1wpOwor6auY6ZqO6Kqe6KiAIDwgaGlnaFwtbGV2ZWxcLWxhbmd1YWdlOwor5bm05Luj5YidIDwgYmVnaW5uaW5nXC1vZlwtYW5cLWFnZTsKK+S6nua0suiIh+WkquW5s+a0i+WcsOWNgCA8IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+i+r+ittyA8IHNwZWFrXC1pblwtZGVmZW5jZVwtb2Y7Civnvo7lnIvkurrmsJEgPCB0aGVcLWFtZXJpY2FuXC1wZW9wbGU7Civlk6XlgKvmr5Tkup7lpKflrbggPCBjb2x1bWJpYVwtdW5pdmVyc2l0eTsKK+mYsuempuaApyA8IGRlZmVuc2l2ZVwtXCh3ZWFwb25zXCk7CivpgY7kuobkupTliIbpkJggPCBmaXZlXC1taW51dGVzXC1wYXNzZWQ7CivmiZPmqavngq4gPCBzcGVha1wtdW53YXJyYW50ZWRseTsKK+Wkp+aJuSA8IGxhcmdlXC1xdWFudGl0aWVzXC1vZjsKK+mdouWarumAo+aOpSA8IGNvbm5lY3Rpb25cLW9yaWVudGVkOwor5bCI5qWt5Lq65omNIDwgZXhwZXJ0XC1cKGluXC1hXC1maWVsZFwpOwor54Sh57ir6YCj5o6lIDwgc2VhbWxlc3NcLWNvbm5lY3Rpb247CivntoHnpaggPCBraWRuYXBcLVwoZm9yXC1yYW5zb21cKTsKK+eZvemKhSA8IGNvcHBlclwtbmlja2VsXC1hbGxveTsKK+WFi+e+heWcsOS6nuiqniA8IGNyb2F0aWFuXC1cKGxhbmd1YWdlXCk7CivntbHnqLEgPCBjb2xsZWN0aXZlbHlcLWNhbGxlZDsKK+eZvOiogOasiiA8IHRoZVwtcmlnaHRcLW9mXC1zcGVlY2g7Civlu6LmsKMgPCB3YXN0ZVwtXChleGhhdXN0XClcLWdhczsKK+iojuirlueahOitsOmhjCA8IHRvcGljXC1vZlwtZGlzY3Vzc2lvbjsKK+WMheWtkCA8IHN0ZWFtZWRcLXN0dWZmZWRcLWJ1bjsKK+e0heiRiSA8IHJlZFwtYXV0dW1uYWxcLWxlYXZlczsKK+WxpOimi+i/reWHuiA8IHRvXC1vY2N1clwtZnJlcXVlbnRseTsKK+eZvuiyqCA8IGdlbmVyYWxcLW1lcmNoYW5kaXNlOwor6ayi6auuIDwgaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+e+juWci+S7peWkliA8IG91dHNpZGVcLW9mXC10aGVcLXVcLnNcLjsKK+WEmOmHjyA8IGFzXC1tdWNoXC1hc1wtcG9zc2libGU7Civouqvpq5ggPCBcKGFcLXBlcnNvbicnc1wpXC1oZWlnaHQ7CivmlZnlrbggPCB0ZWFjaGVyXC1hbmRcLXN0dWRlbnQ7CivphJnkurogPCB5b3VyXC1odW1ibGVcLXNlcnZhbnQ7CivlnLDlnYDnmoTovYnmj5sgPCBhZGRyZXNzXC10cmFuc2xhdGlvbjsKK+aVheWuriA8IHRoZVwtaW1wZXJpYWxcLXBhbGFjZTsKK+aUv+WxgCA8IHBvbGl0aWNhbFwtc2l0dWF0aW9uOwor552/5pm6IDwgd2lzZVwtYW5kXC1mYXJzaWdodGVkOwor6Ieq5YuV5Zyw5bel5L2cIDwgYXV0b21hdGljXC1vcGVyYXRpb247CivmraTmmYLmraTliLsgPCBhdFwtdGhpc1wtdmVyeVwtbW9tZW50Owor6biSIDwgdGhlXC1lYXN0ZXJuXC1qYWNrZGF3Owor6bayIDwgc2liZXJpYW5cLWZseWNhdGNoZXI7CivlubTkuYvkuYUgPCBwZXJpb2RcLW9mXC1cLlwuXC5cLXllYXJzOwor6KOc6KeSIDwgc3VwcGxlbWVudGFyeVwtYW5nbGU7CivpsLYgPCBrb25vc2lydXNcLXB1bmN0YXR1czsKK+mvpSA8IHBvbWF0b211c1wtc2FsdGF0cml4Owor6a+VIDwgY29yeXBoYWVuYVwtaGlwcHVydXM7CivprrYgPCBzZWJhc3RvZGVzXC1ndW50aGVyaTsKK+mAsuaUuyA8IGF0dGFja1wtXChtaWxpdGFyaWx5XCk7Civmk7rlvIQgPCBtb3ZlXC1iYWNrXC1hbmRcLWZvcnRoOwor5LiN5Lit5oSPIDwgbm90XC10b1wtb25lJydzXC1saWtpbmc7Civpo4IgPCB3aW5kXC1pblwtaGlnaFwtcGxhY2VzOwor6aK+IDwgYmxvd2luZ1wtb2ZcLXRoZVwtd2luZDsKK+mgjSA8IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor6Z+YIDwgYXJjaGVyJydzXC10aHVtYlwtcmluZzsKK+merCA8IGFcLXF1aXZlclwtb25cLWFcLWhvcnNlOwor6LK/5piT5L+d6K235Li7576pIDwgdHJhZGVcLXByb3RlY3Rpb25pc207CivpgY3luIMgPCBiZVwtZm91bmRcLWV2ZXJ5d2hlcmU7CivlpJrpu6jpgbjoiIkgPCBtdWx0aXBhcnR5XC1lbGVjdGlvbjsKK+mctiA8IGRvd25wb3VyaW5nXC1vZlwtcmFpbjsKK+mcriA8IGRlbnNlbmVzc1wtb2ZcLWNsb3VkczsKK+WFiee6luihsOa4myA8IG9wdGljYWxcLWF0dGVudWF0aW9uOwor5pS55ZCNIDwgdG9cLWNoYW5nZVwtb25lc1wtbmFtZTsKK+mRtCA8IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivkuI3li57ogIznjbIgPCByZWFwXC13aXRob3V0XC1zb3dpbmc7CivpjoQgPCBpcmlkaXVtXC1laW5zdGVpbml1bTsKK+aKgOihk+aomea6liA8IHRlY2hub2xvZ3lcLXN0YW5kYXJkOwor6KOc6ICDIDwgbWFrZVwtdXBcLWV4YW1pbmF0aW9uOwor6ZaL55m86YGO56iLIDwgZGV2ZWxvcG1lbnRcLXByb2Nlc3M7Civnmb7liIbliLYgPCBodW5kcmVkXC1tYXJrXC1zeXN0ZW07CivpiIMgPCBhbmNpZW50XC13aW5lXC12ZXNzZWw7CivphacgPCB0b1wtcGxlZGdlXC13aXRoXC13aW5lOwor5YiG5p6Q5a62IDwgXChwb2xpdGljYWxcKVwtYW5hbHlzdDsKK+aSreW8hCA8IG9yZGVyXC1zdWJqZWN0XC1hYm91dDsKK+W5tOW6lSA8IHRoZVwtZW5kXC1vZlwtdGhlXC15ZWFyOwor57SE5quDIDwgYXJrXC1vZlwtdGhlXC1jb3ZlbmFudDsKK+W5q+W3pSA8IGhlbHBcLXdpdGhcLWZhcm1cLXdvcms7CivloLHlu6IgPCByZXBvcnRcLWFzXC13b3J0aGxlc3M7CivpgJrkv6HosqDovIkgPCBjb21tdW5pY2F0aW9uc1wtbG9hZDsKK+W4uOimj+atpuWZqCA8IGNvbnZlbnRpb25hbFwtd2VhcG9uOwor57Wx6KiI57WQ5p6cIDwgc3RhdGlzdGljYWxcLXJlc3VsdHM7Civlj7jnqbropovmhaMgPCBhXC1jb21tb25cLW9jY3VycmVuY2U7Civnq4vms5XmnIMgPCBsZWdpc2xhdGl2ZVwtY291bmNpbDsKK+Wft+aOjCA8IHdpZWxkXC1cKHBvd2VyXCxcLWV0Y1wuXCk7CivopbQgPCBhXC1vbmVcLXBpZWNlXC1nYXJtZW50Owor6KSDIDwgYVwtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivlvJXlipvloLQgPCBncmF2aXRhdGlvbmFsXC1maWVsZDsKK+WFteasiiA8IG1pbGl0YXJ5XC1sZWFkZXJzaGlwOwor6KCwIDwgY2VyYW1ieXhcLXJ1Z2ljb2xsaXM7Civon6ggPCB0aGVcLXNpYmVyaWFuXC1qZXJib2E7CivonZ0gPCB0aGVcLWxhcnZhXC1vZlwtbG9jdXN0Owor5LqM5Y2B5LiD6JmfIDwgMjd0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivpgLzkvpsgPCBleHRvcnRcLWFcLWNvbmZlc3Npb247CivoppbogIzkuI3oposgPCB0dXJuXC1hXC1ibGluZFwtZXllXC10bzsKK+S/neWuieiHquWLleWMliA8IHNlY3VyaXR5XC1hdXRvbWF0aW9uOwor6JSKIDwgbmFzdHVydGl1bVwtbW9udGFudW07Civok4cgPCBmb2xsaWNsZXNcLW9mXC1wbGFudHM7CivokYcgPCBlbHNob2x0cmlhXC1wYWx0cmluaTsKK+iOlSA8IG55bXBob2lkZXNcLXBlbHRhdHVtOwor6IyzIDwgY3lwZXJ1c1wtbWFsYWNjZW5zaXM7Civoi7MgPCBwZXRhc2l0ZXNcLWphcG9uaWN1czsKK+iJqyA8IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor5raI6ICX6YePIDwgcmF0ZVwtb2ZcLWNvbnN1bXB0aW9uOwor6Zu75a2Q5paH5Lu2IDwgZWxlY3Ryb25pY1wtZG9jdW1lbnQ7CivplovmlL4gPCBsaWZ0XC1cKHJlc3RyaWN0aW9uc1wpOwor55m75pyIIDwgZ29cLVwodXBcKVwtdG9cLXRoZVwtbW9vbjsKK+e+oiA8IGZpbmVcLXdvb2xlblwtZmFicmljczsKK+aguOmbu+ermSA8IG51Y2xlYXJcLXBvd2VyXC1wbGFudDsKK+e+kSA8IGFcLWd1aWRlXC10b1wtZ29vZG5lc3M7CivntZDmp4vliqnoqZ4gPCBzdHJ1Y3R1cmFsXC1wYXJ0aWNsZTsKK+Wtl+aWn+WPpemFjCA8IHdlaWdoaW5nXC1ldmVyeVwtd29yZDsKK+e5siA8IHRvXC13b3JrXC1hc1wtYVwtdGFpbG9yOwor5bmj5YC8IDwgdmFsdWVcLW9mXC1hXC1jdXJyZW5jeTsKK+e2gCA8IGFcLWtpbmRcLW9mXC1zYWNrY2xvdGg7CivmlL/msrvpl5zkv4IgPCBwb2xpdGljYWxcLXJlbGF0aW9uczsKK+WGsOWgtCA8IHNrYXRpbmdcLW9yXC1pY2VcLXJpbms7Civnm7jkupLlhbzlrrkgPCBtdXR1YWxseVwtY29tcGF0aWJsZTsKK+Wwi+S6i+eUn+mdniA8IHRvXC1sb29rXC1mb3JcLXRyb3VibGU7Civnq5EgPCBiZVwtdmFzdFwtYW5kXC1lbmRsZXNzOwor56aTIDwgdG9cLWRyaXZlXC1vdXRcLWRlbW9uczsKK+elkCA8IGRpdmluZVwtaW50ZXJ2ZW50aW9uOwor55uu5YmNIDwgYXRcLXRoZVwtcHJlc2VudFwtdGltZTsKK+ihqOmdouWMliA8IGNvbWVcLXRvXC10aGVcLXN1cmZhY2U7CivnrYbora8gPCB3cml0dGVuXC10cmFuc2xhdGlvbjsKK+ethuippiA8IHdyaXR0ZW5cLWV4YW1pbmF0aW9uOwor55+UIDwgYnJpbGxpYW50XC1cKG9mXC1leWVzXCk7Civpl5zliIcgPCBiZVwtZGVlcGx5XC1jb25jZXJuZWQ7CivlsI/lr6vlrZfmr40gPCBsb3dlcmNhc2VcLVwobGV0dGVyc1wpOwor556VIDwgY2F0YXJhY3RcLWluXC10aGVcLWV5ZTsKK+i1sOmWiyA8IGdldFwtb3V0XC1vZlwtdGhlXC13YXlcITsKK+imhuS6oSA8IGZhbGxcLVwob2ZcLWFuXC1lbXBpcmVcKTsKK+mbu+ipseapnyA8IHRlbGVwaG9uZVwtZXF1aXBtZW50Owor6KOB5pa3IDwgY29uc2lkZXJcLWFuZFwtZGVjaWRlOwor57i957Wx5bqcIDwgcHJlc2lkZW50aWFsXC1wYWxhY2U7CivntIDlhYMgPCBiZWdpbm5pbmdcLW9mXC1hblwtZXJhOwor5YW15ZyYIDwgbGFyZ2VcLW1pbGl0YXJ5XC11bml0Owor6L6m5LqLIDwgdG9cLWhhbmRsZVwtXChhZmZhaXJzXCk7Civns77lgY8gPCB0b1wtY29ycmVjdFwtYW5cLWVycm9yOwor5omN6K2YIDwgYWJpbGl0eVwtYW5kXC1pbnNpZ2h0Owor5oyJ55CGIDwgYWNjb3JkaW5nXC10b1wtcmVhc29uOwor6LyU5bmjIDwgZnJhY3Rpb25hbFwtY3VycmVuY3k7CivmkK3kvLQgPCB0cmF2ZWxcLXdpdGhcLWFub3RoZXI7CivlnKjmn5DnqK7nqIvluqbkuIogPCB0b1wtYVwtY2VydGFpblwtZXh0ZW50Owor5ZyL5peXIDwgZmxhZ1wtXChvZlwtYVwtY291bnRyeVwpOwor6LuN5pS/IDwgYXJteVwtYW5kXC1nb3Zlcm5tZW50Owor55eF5rOBIDwgc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+WIhuS9iOW8j+e2sue1oSA8IGRpc3RyaWJ1dGVkXC1uZXR3b3JrOwor566h55CG5Yqf6IO9IDwgbWFuYWdlbWVudFwtZnVuY3Rpb247CivovYnlkJEgPCBjaGFuZ2VcLW9mXC1kaXJlY3Rpb247CivmqYvmjqXlmaggPCBicmlkZ2VcLVwobmV0d29ya2luZ1wpOwor55m95Y23IDwgYmxhbmtcLWV4YW1pbmVcLXBhcGVyOwor5pu85b655pav54m557eo56K8IDwgbWFuY2hlc3RlclwtZW5jb2Rpbmc7Civlhavku5kgPCB0aGVcLWVpZ2h0XC1pbW1vcnRhbHM7CivovIPlpKcgPCBjb21wYXJhdGl2ZWx5XC1sYXJnZTsKK+ethueulyA8IGRvXC1hXC1zdW1cLWluXC13cml0aW5nOwor5qGqIDwgbXl0aGljYWxcLWdpYW50XC10cmVlOwor5o+Q5Ye6IDwgdG9cLXJhaXNlXC1cKGFuXC1pc3N1ZVwpOwor55m95Lq6IDwgd2hpdGVcLW1hblwtYW5kXC13b21hbjsKK+afriA8IGZsYXRcLXBpZWNlc1wtb2ZcLXdvb2Q7CivlgZrms5UgPCB3YXlcLW9mXC1kb2luZ1wtdGhpbmdzOwor5pq1IDwgZHJ5XC1ieVwtZXhwb3NpbmdcLXN1bjsKK+aKveeFmSA8IHNtb2tlXC1cKGFcLWNpZ2FyZXR0ZVwpOwor5padIDwgc21hbGxcLWphZGVcLXdpbmVcLWN1cDsKK+ihqOaDhSA8IFwoZmFjaWFsXClcLWV4cHJlc3Npb247Civoo5zliqkgPCBcKGZpbmFuY2lhbFwpXC1zdWJzaWR5Owor5pWEIDwgdG9cLXB1dFwtZm9ydGhcLWVmZm9ydDsKK+iGoOeJhyA8IFwocGhvdG9ncmFwaGljXClcLWZpbG07Civmko0gPCB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK+S4jeacn+eEtuiAjOeEtiA8IGhhcHBlblwtdW5leHBlY3RlZGx5Owor5o+VIDwgcm9sbFwtdXBcLXRoZVwtc2xlZXZlczsKK+aflOmBkyA8IFwodGhlXC1zcG9ydFwtb2ZcKVwtanVkbzsKK+WKoOWAvOWei+e2sui3ryA8IHZhbHVlXC1hZGRlZFwtbmV0d29yazsKK+aOoeWItiA8IGNvbGxlY3RcLWFuZFwtcHJvY2VzczsKK+S4jeW+l+S6hiA8IGRlc3BlcmF0ZWx5XC1zZXJpb3VzOwor5oqE542yIDwgdG9cLXNlYXJjaFwtYW5kXC1zZWl6ZTsKK+ihqOWnkCA8IG9sZGVyXC1mZW1hbGVcLWNvdXNpbjsKK+WIhuS9iOaOp+WItiA8IGRpc3RyaWJ1dGVkXC1jb250cm9sOwor5bCXIDwgeW91bmdlclwtb2ZcLWJyb3RoZXJzOwor6Luf5Lu2IDwgXChjb21wdXRlclwpXC1zb2Z0d2FyZTsKK+WjkCA8IHRoZVwtaW1wZXJpYWxcLXNpZ25ldDsKK+aLm+W+hSA8IHRvXC1yZWNlaXZlXC1cKGd1ZXN0c1wpOwor5p2/5qKB5qmLIDwgcGxhdGVcLWdpcmRlclwtYnJpZGdlOwor5Z6VIDwgdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+aLnOW5tCA8IHBheVwtYVwtbmV3XC15ZWFyXC1jYWxsOwor5qC96Lef6aCtIDwgdG9cLXN1ZmZlclwtYVwtc2V0YmFjazsKK+WUmiA8IHZvbWl0aW5nXC1vZlwtYW5pbWFsczsKK+aguOW3peeoiyA8IG51Y2xlYXJcLWVuZ2luZWVyaW5nOwor5Zug54m557ay6IGv6YCaIDwgaW50ZXJuZXRcLWNvbm5lY3Rpb247CivlkbogPCB2b2ljZVwtb2ZcLWFuZ2VyXC12YXN0Owor5LqS6YCaIDwgdG9cLWludGVyY29tbXVuaWNhdGU7Civnp5HlrbjnmoTkuqTmtYEgPCBzY2llbnRpZmljXC1leGNoYW5nZTsKK+WuieeQhuacgyA8IHVuXC1zZWN1cml0eVwtY291bmNpbDsKK+e2sue1oeaHieeUqCA8IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor5YGYIDwgYW5jaWVudFwtZmFtaWx5XC1uYW1lOwor56+h5L2NIDwgdG9cLXNlaXplXC10aGVcLXRocm9uZTsKK+apn+aisOe/u+itryA8IG1hY2hpbmVcLXRyYW5zbGF0aW9uOwor57236bucIDwgZGlzbWlzc1wtZnJvbVwtb2ZmaWNlOwor5LavIDwgdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivktpIgPCBvdXRzdGFuZGluZ1wtYWJpbGl0eTsKK+S2jCA8IGFcLXB1c3R1bGVcLW9yXC1waW1wbGU7CivktoQgPCBzdHJpcGVkXC1tb3R0bGVkXC1yYXQ7CivktbEgPCByZWRcLWFuZFwtYmxhY2tcLWNvbG9yOwor5LWUIDwgdG9cLXR1cm5cLW9uXC10aGVcLWhlZWw7CivktKogPCBhXC1mYWJ1bG91c1wtY3JlYXR1cmU7CivktKAgPCBhXC15b3VuZ1wtdGFpbGVkXC1kZWVyOwor5bGs5a+mIDwgdHVyblwtb3V0XC10b1wtYmVcLXRydWU7CivksacgPCBhXC1raW5kXC1vZlwtZmlzaFwtZWVsczsKK+SwnCA8IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivkrrcgPCBtb3ZlbWVudFwtb2ZcLWFcLWhvcnNlOwor5K6DIDwgdG9cLWdvXC1iZWZvcmVcLW90aGVyczsKK+a0vumBoyA8IHNlbmRcLVwob25cLWFcLW1pc3Npb25cKTsKK+SrsSA8IGFcLXBhcnRcLW9mXC10aGVcLXNrdWxsOwor5KupIDwgdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7Civkqr8gPCB0aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqvSA8IGhvYXJ5XC1oYWlyZWRcLXBlcnNvbjsKK+SptyA8IHRoZVwtc2lkZXNcLW9mXC1hXC1zaG9lOwor5KmnIDwgdG9cLXRpZVwtdXBcLWh1cnJpZWRseTsKK+SpjCA8IHRvXC1oYXZlXC1hXC13b3JuXC1sb29rOwor5KeUIDwgdG9cLW1lZXRcLWF0XC10aGVcLWJhbms7CivkppkgPCBhXC1nb3Zlcm5tZW50XC1hZ2VuY3k7CivkpacgPCBhXC1maW5lXC1raW5kXC1vZlwtamFkZTsKK+ioiuahhuWCs+mAgeacjeWLmSA8IGZyYW1lXC1yZWxheVwtc2VydmljZTsKK+SkhiA8IGFcLWtpbmRcLW9mXC1yaWNlXC13aW5lOwor5KSBIDwgY29va2VkXC1vclwtd2VsbFwtZG9uZTsKK+SiiyA8IGFcLW1hcnNoYWxcLW9yXC1oZXJhbGQ7CivkuKbph40gPCBsYXlcLWVxdWFsXC1zdHJlc3NcLW9uOwor6Luf5Lu25oqA6KGTIDwgc29mdHdhcmVcLXRlY2hub2xvZ3k7Civkn6MgPCBhblwtYW5pbWFsXC1pblwtbGVnZW5kOwor5J6zIDwgdG9cLXN0dW1ibGVcLWFuZFwtZmFsbDsKK+SdoCA8IGFcLWtpbmRcLW9mXC13aWxkXC1ib2FyOwor5JyBIDwgdG9cLWFidXNlXC1hbmRcLWluc3VsdDsKK+SZkiA8IHRvXC1zdG9yZVwtb3JcLXNhdmVcLXVwOwor5JmPIDwgc2hvcnRcLXNsZWV2ZXNcLXNoaXJ0Owor5JmBIDwgY2hpbGRyZW4nJ3NcLWdhcm1lbnRzOwor5JiqIDwgY2xvdGhlc1wtd2l0aG91dFwtaGVtOwor5JaiIDwgZmlyc3RcLWJvcm5cLXNpbGt3b3JtOwor5JaWIDwgdG9cLXNob3dcLWZhbWlsaWFyaXR5Owor5JW+IDwgYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SVmCA8IGFcLXZhcmlldHlcLW9mXC1mdW5ndXM7CivklYMgPCB0aGVcLXNoYWRlXC1vZlwtYVwtdHJlZTsKK+STtyA8IG55bXBob2lkZXNcLXBlbHRhbHVtOwor5JONIDwgY3J1Y2lmZXJvdXNcLWZsb3dlcnM7CivkkoggPCBzaWRlXC1iZWFtXC1vZlwtYVwtYm9hdDsKK+SSgCA8IHNob3J0XC1hbmRcLWRlZXBcLWJvYXQ7CivkkYcgPCBtZWRpY2luZVwtZm9yXC1hXC1zb3JlOwor5JCtIDwgYVwtZGlzY2hhcmdlXC1vclwtZmx1eDsKK+SPuSA8IHRvXC13YXRjaFwtc3RlYWx0aGlseTsKK+SPqCA8IHRvXC1zd2VsbFwtdXBcLWdyZWF0bHk7Civkj4YgPCBidXp6aW5nXC1pblwtdGhlXC1lYXJzOwor5I23IDwgdG9cLWNoYXNlXC1lYWNoXC1vdGhlcjsKK+SLuSA8IGJyZWFkdGhcLW9mXC1tYXRlcmlhbDsKK+SLsCA8IHRvXC1iaW5kXC1vclwtcmVzdHJhaW47CivmiY3lrbggPCB0YWxlbnRcLWFuZFwtbGVhcm5pbmc7CivogJXogJggPCBwbG93aW5nXC1hbmRcLXdlZWRpbmc7Civmk7rploDpnaIgPCBrZWVwXC11cFwtYXBwZWFyYW5jZXM7CivoqIrmoYblgrPpgIHntrLot68gPCBmcmFtZVwtcmVsYXlcLW5ldHdvcms7Civkh70gPCBhXC1jb2Fyc2VcLWJhbWJvb1wtbWF0Owor5IavIDwgYVwtc2hvcnRcLXNoYXBlZFwtZmFjZTsKK+SFryA8IGFcLXZhcmlldHlcLW9mXC1taWxsZXQ7CivkhZ8gPCB2YXJpZXRpZXNcLW9mXC1taWxsZXQ7CivkhZIgPCBhXC1zaGFycFwtZWRnZWRcLWdyYXNzOwor5oWI56WlIDwgXChhXClcLWtpbmRseVwtXChwZXJzb25cKTsKK+SBiyA8IHdpdGhcLW9uZVwtZXllXC1jbG9zZWQ7CivkgYMgPCB0b1wtbG9va1wtYXR0ZW50aXZlbHk7CivkgKQgPCBpbnNpZ2h0XC1vZlwtamVhbG91c3k7CivkgKMgPCB0b1wtbG9va1wtc3RlYWRpbHlcLWF0Owor5aW25rK56I+c6IqxIDwgY3JlYW1lZFwtY2F1bGlmbG93ZXI7Civjv5MgPCBkaXNlYXNlXC1vZlwtdGhlXC1ob29mOwor5YWJ55m86YCB5ZmoIDwgb3B0aWNhbFwtdHJhbnNtaXR0ZXI7CivjvrsgPCBub3RcLWFueVwtcHJvZ3Jlc3NpdmU7CivjvrYgPCBkaXNlYXNlXC1vZlwtdGhlXC1rbmVlOwor5a6J5qiCIDwgcGVhY2VcLWFuZFwtaGFwcGluZXNzOwor476iIDwgYVwtbWFsaWduYW50XC1kaXNlYXNlOwor472tIDwgdmFjYW50XC1sb3RcLW9yXC1zcGFjZTsKK+O9jCA8IHRoZVwtcmlkZ2VcLW9mXC1hXC1yb29mOwor472CIDwgYVwtY3JhY2tlZFwtY29udGFpbmVyOwor47yZIDwgYnJpY2t3b3JrXC1vZlwtYVwtd2VsbDsKK+O8kiA8IGFcLWtpbmRcLW9mXC1iaWdcLW1lbG9uOwor57ay57Wh55Kw5aKDIDwgbmV0d29ya1wtZW52aXJvbm1lbnQ7CivmhJvkurrlpoLlt7EgPCBsb3ZlXC1vdGhlcnNcLWFzXC1zZWxmOwor47i2IDwgY29sb3JcLW9mXC10aGVcLW94dGFpbDsKK+O4tSA8IHRoZVwtbG93aW5nXC1vZlwtYW5cLW94Owor47ilIDwgaG91c2Vob2xkXC1yZWdpc3RlcnM7CivjuKIgPCBjcm9zc1wtYmVhbVwtb2ZcLWFcLWJlZDsKK+O4niA8IGJsb2Nrc1wtZm9yXC1wcmludGluZzsKK+O4kyA8IHRvXC1oYXZlXC1kaXNhcHBlYXJlZDsKK+O4gCA8IGJsYWNrZW5lZFwtd2l0aFwtc29vdDsKK+O3pCA8IHJvc3lcLWNsb3Vkc1wtb2ZcLWRhd247CivpqJnlj5YgPCB0b1wtZ2FpblwtYnlcLWNoZWF0aW5nOwor47KHIDwgdGhlXC1yYXR0bGVcLW9mXC1kcnVtczsKK+OxviA8IGFcLWtpbmRcLW9mXC1vcm5hbWVudHM7CivjsbkgPCB0b1wtZGllXC1mcm9tXC1kaXNlYXNlOwor47GrIDwgZGVzdHJveWVkXC1vclwtcnVpbmVkOwor47GqIDwgc3R1cGlkXC1hbmRcLWNvbmZ1c2VkOwor47GKIDwgYXN0aG1hdGljXC1icmVhdGhpbmc7CivjsYkgPCBtb3ZpbmdcLW9mXC10aGVcLW1vdXRoOwor47C0IDwgdG9cLWdyYXRlXC1vblwtdGhlXC1lYXI7CivjsK8gPCB0aGVcLXdheVwtb2ZcLXNwZWFraW5nOwor6Lev6YCP56S+IDwgcmV1dGVyc1wtbmV3c1wtYWdlbmN5Owor5ra854i9IDwgY29vbFwtYW5kXC1yZWZyZXNoaW5nOwor6buo57WEIDwgbGVhZGluZ1wtcGFydHlcLWdyb3VwOwor5L6L5aSWIDwgXChtYWtlXC1hblwpXC1leGNlcHRpb247Civjq68gPCBpblwtY29udHJhdmVudGlvblwtb2Y7Civos4fmupAgPCBcKG5hdHVyYWxcKVwtcmVzb3VyY2VzOwor5ZWG5pyDIDwgY2hhbWJlclwtb2ZcLWNvbW1lcmNlOwor6LWk5a2XIDwgXChmaW5hbmNpYWxcKVwtZGVmaWNpdDsKK+OppiA8IHRvXC1sZWFkXC1ieVwtdGhlXC1oYW5kOwor46mYIDwgdG9cLW1vb3JcLXRvXC10aGVcLWJhbms7CivjqJ0gPCB0aGVcLXZlcnlcLWhhcmRcLXN0dWZmOwor46eFIDwgdG9cLXR1cm5cLXVwc2lkZVwtZG93bjsKK+OmkyA8IGRpZmZpY3VsdFwtaW50ZW50aW9uOwor46WdIDwgdG9cLWFyb3VzZVwtdG9cLWFjdGlvbjsKK+mYv+aLieW3tOmmrCA8IGFsYWJhbWFcLVwodVwuc1wuc3RhdGVcKTsKK+OiiiA8IHRvXC1zZXRcLXNpZGVcLWJ5XC1zaWRlOwor46KCIDwgb2ZcLWhpZ2hseVwtc3RyYXRlZ2ljOwor6Yuw6Zui5a2Q6Zu75rGgIDwgbGl0aGl1bVwtaW9uXC1iYXR0ZXJ5Owor57WC6bue5Zyw5Z2AIDwgZGVzdGluYXRpb25cLWFkZHJlc3M7Civjn7EgPCBzaGFwZVwtb2ZcLWFcLW1vdW50YWluOwor45+TIDwgbG9mdHlcLWFuZFwtZGFuZ2Vyb3VzOwor45+SIDwgbW91bnRhaW5zXC1hZGpvaW5pbmc7CivkuKboga8gPCBwYXJhbGxlbFwtY29ubmVjdGlvbjsKK+OYqyA8IHRvXC1mYWxsXC1pbnRvXC1hXC13ZWxsOwor6LKh5rqQIDwgZmluYW5jaWFsXC1yZXNvdXJjZXM7Civjl7YgPCB0b1wtZXhwZWxcLXRoZVwtYnJlYXRoOwor56eR5a246ZmiIDwgYWNhZGVteVwtb2ZcLXNjaWVuY2VzOwor45aqIDwgc291bmRcLW9mXC1zdXJwcmlzaW5nOwor45S5IDwgYVwtc3VycGx1c1wtb3JcLWV4Y2VzczsKK+OTtyA8IHRvXC1jdXRcLW9mZlwtdGhlXC1ub3NlOwor45KEIDwgYnJpdHRsZVwtYW5kXC1mcmlhYmxlOwor45KDIDwgY2FwaXRhbFwtZm9ybVwtb2ZcLXR3bzsKK+mHj+iuiiA8IHF1YW50aXRhdGl2ZVwtY2hhbmdlOwor6ICQ54WpIDwgcGF0aWVudFwtXChhZGplY3RpdmVcKTsKK+S4mee2uCA8IHBvbHlwcm9weWxlbmVcLWZpYnJlOwor5LqM5Y2B5YWt6JmfIDwgMjZ0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivmraXpgLLliLYgPCBzdGVwXC1ieVwtc3RlcFwtc3lzdGVtOwor5YmN6JiH6IGvIDwgZm9ybWVyXC1zb3ZpZXRcLXVuaW9uOwor5LiN5Zyo5oSPIDwgcGF5XC1ub1wtYXR0ZW50aW9uXC10bzsKK+axuuitsCA8IFwocGFzc1wtYVwpXC1yZXNvbHV0aW9uOwor6Yyv5a2XIDwgaW5jb3JyZWN0XC1jaGFyYWN0ZXI7CivkuK3lnIvnlbblsYAgPCBjaGluZXNlXC1hdXRob3JpdGllczsKK+S8tOWUsSA8IHZvY2FsXC1hY2NvbXBhbmltZW50Owor6K2Y6LKoIDwgdG9cLWtub3dcLXdoYXQnJ3NcLXdoYXQ7CivnqJ/mgKcgPCBuYXR1cmFsXC1kaXNwb3NpdGlvbjsKK+mgkOe/kiA8IHRvXC1wcmVwYXJlXC1hXC1sZXNzb247CivlkIjmg4XlkIjnkIYgPCByZWFzb25hYmxlXC1hbmRcLWZhaXI7CivmtYHmtL4gPCBzY2hvb2xcLVwob2ZcLXRob3VnaHRcKTsKK+eZvuS+neeZvumghiA8IGRvY2lsZVwtYW5kXC1vYmVkaWVudDsKK+WNiuiHquiAlei+siA8IHNlbWlcLXRlbmFudFwtcGVhc2FudDsKK+WTgOaGkCA8IGZlZWxcLWNvbXBhc3Npb25cLWZvcjsKK+WPjeW9iOWwjuW9iCA8IGFudGltaXNzaWxlXC1taXNzaWxlOwor6LKh5a+2IDwgbW9uZXlcLWFuZFwtdmFsdWFibGVzOwor55Sf55Si6Kit5pa9IDwgcHJvZHVjdGlvblwtZmFjaWxpdHk7CivokaHokITniZnkurogPCBwb3J0dWd1ZXNlXC1cKHBlcnNvblwpOwor5LqL5a6cIDwgXChtYWtlXClcLWFycmFuZ2VtZW50czsKK+aVl+mhniA8IHNjdW1cLW9mXC1hXC1jb21tdW5pdHk7CivkuI3ntZXlpoLnuLcgPCBoYW5naW5nXC1ieVwtYVwtdGhyZWFkOwor5peX6KKNIDwgY2hpbmVzZVwtc3R5bGVcLWRyZXNzOwor6ZW35pyf56mp5a6a5oCnIDwgbG9uZ1wtdGVybVwtc3RhYmlsaXR5Owor5oqA6KGT55+l6K2YIDwgdGVjaG5pY2FsXC1rbm93bGVkZ2U7CivlvpDooYwgPCB3YWxrXC1zbG93bHlcLFwtc3Ryb2xsOwor6JeP5pePIDwgdGliZXRhblwtbmF0aW9uYWxpdHk7CivmqJPlrofoh6rli5XljJYgPCBidWlsZGluZ1wtYXV0b21hdGlvbjsKK+WkluWtq+WlsyA8IGRhdWdodGVyJydzXC1kYXVnaHRlcjsKK+WGsOmGi+mFuCA8IGdsYWNpYWxcLWFjZXRpY1wtYWNpZDsKK+e+juWci+i7jeS6uiA8IGFtZXJpY2FuXC1zZXJ2aWNlbWFuOwor6Zi/5q+U6KW/5bC85Lqe5Lq6IDwgYWJ5c3NpbmlhblwtXChwZXJzb25cKTsKK+a2iOeCjuiXpSA8IGFudGliaW90aWNcLW1lZGljaW5lOwor54Wn6aGnIDwgdGFrZVwtXChnb29kXClcLWNhcmVcLW9mOwor5aeU5ZOh6ZW3IDwgaGVhZFwtb2ZcLWFcLWNvbW1pdHRlZTsKK+imlueql+WKoOmAn+WZqCA8IHdpbmRvd3NcLWFjY2VsYXJhdG9yOwor6K6T5q2lIDwgXChtYWtlXC1hXClcLWNvbmNlc3Npb247CivpgorpgaAgPCBmYXJcLWZyb21cLXRoZVwtY2VudGVyOwor6I+v54i+6KGX5pel5aCxIDwgd2FsbFwtc3RyZWV0XC1qb3VybmFsOwor5pO66ZeKIDwgcGFyYWRlXC1vbmUnJ3NcLXdlYWx0aDsKK+aDheWgseWxgCA8IGludGVsbGlnZW5jZVwtYWdlbmN5Owor5pm05pyXIDwgc3VubnlcLWFuZFwtY2xvdWRsZXNzOwor5oKy5aOvIDwgc29sZW1uXC1hbmRcLXN0aXJyaW5nOwor5ZyL6Zqb6LK/5piTIDwgaW50ZXJuYXRpb25hbFwtdHJhZGU7CivnvbfluIIgPCBzaG9wa2VlcGVyJydzXC1zdHJpa2U7CivkuI3lpqggPCB0aGVyZVwtaXNcLW5vXC1oYXJtXC1pbjsKK+S6uumAoOiqnuiogCA8IGFydGlmaWNpYWxcLWxhbmd1YWdlOwor5Lqe5aSq57aT5ZCI57WE57mUIDwgYXBlY1wtXChvcmdhbml6YXRpb25cKTsKK+S4ueWPgyA8IHNhbHZpYVwtbWlsdGlvcnJoaXphOwor6Zu26JC9IDwgd2l0aGVyZWRcLWFuZFwtZmFsbGVuOwor5YyF6Lqr5belIDwgaW5kZW50dXJlZFwtbGFib3VyZXI7Civlvpfnn6UgPCBcKGZpbmRcLW91dFwtYW5kXClcLWtub3c7CivorormlYUgPCBhblwtdW5mb3Jlc2VlblwtZXZlbnQ7CivkuI3mlZfkuYvlnLAgPCBpbnZpbmNpYmxlXC1wb3NpdGlvbjsKK+aBkOaAlSA8IFwoaScnbVwpXC1hZnJhaWRcLVwodGhhdFwpOwor6Ieq6Lqr5Yip55uKIDwgb25lJydzXC1vd25cLWludGVyZXN0czsKK+W7oOimjyA8IGZhY3RvcnlcLXJlZ3VsYXRpb25zOwor6aCQ5a6aIDwgc2NoZWR1bGVcLWluXC1hZHZhbmNlOwor5LiN5YehIDwgb3V0XC1vZlwtdGhlXC1vcmRpbmFyeTsKK+ertueIreeUouWTgSA8IGNvbXBldGl0aXZlXC1wcm9kdWN0Owor5pWX57i+IDwgYmVcLXV0dGVybHlcLWRlZmVhdGVkOwor5pq05YipIDwgc3VkZGVuXC1odWdlXC1wcm9maXRzOwor6Z2e5qC45ZyL5a62IDwgbm9uXC1udWNsZWFyXC1jb3VudHJ5Owor572q5ZCNIDwgYVwtXChjcmltaW5hbFwpXC1jaGFyZ2U7CivkuI3kuY8gPCB0aGVyZVwtaXNcLW5vXC1sYWNrXC1vZjsKK+WQiOWQjCA8IFwoYnVzaW5lc3NcKVwtY29udHJhY3Q7CivljJfkuqzkurogPCBwZXJzb25cLWZyb21cLWJlaWppbmc7CivmsKPlgJnni4Dms4EgPCBjbGltYXRpY1wtY29uZGl0aW9uczsKK+eOliA8IGJsYWNrXC1jb2xvcmVkXC1qYWRlOwor5ZOqIDwgd2hpY2hcP1wtd2hlcmVcP1wtaG93XD87CivnibIgPCBzYWNyaWZpY2lhbFwtYW5pbWFsOwor5ryiIDwgdGhlXC1jaGluZXNlXC1wZW9wbGU7CivmvJUgPCB0cmFuc3BvcnRcLWJ5XC13YXRlcjsKK+mYtCA8ICcnZmVtYWxlJydcLXByaW5jaXBsZTsKK+S7mSA8IHRhb2lzdFwtc3VwZXJcLWJlaW5nOwor6am7IDwgdG9cLWJlXC1zdGF0aW9uZWRcLWF0Owor6IWuIDwgbG93ZXJcLXBhcnRcLW9mXC1mYWNlOwor5ouSIDwgd2FyZFwtb2ZmXC13aXRoXC1oYW5kOwor5qGCIDwgY2Fzc2lhXC1vclwtY2lubmFtb247CivmnLUgPCBjbHVzdGVyXC1vZlwtZmxvd2VyczsKK+abuSA8IG1pbmlzdHJ5XC1vZmZpY2lhbHM7CivnvY4gPCBhblwtZWFydGhlbndhcmVcLWphcjsKK+S4uCA8IHNtYWxsXC1yb3VuZFwtb2JqZWN0Owor55+pIDwgY2FycGVudGVyJydzXC1zcXVhcmU7CivohYogPCB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+m+nyA8IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor6YK4IDwgb2ZmaWNpYWxcLXJlc2lkZW5jZTsKK+S+gyA8IHVwcmlnaHRcLWFuZFwtc3Ryb25nOwor6YKCIDwgdW5leHBlY3RlZFwtbWVldGluZzsKK+aAryA8IGxhY2tpbmdcLWluXC1jb3VyYWdlOwor55S4IDwgc3VidXJic1wtb2ZcLWNhcGl0YWw7CivmjZ4gPCBzY29vcFwtb3V0XC1vZlwtd2F0ZXI7CivmiZsgPCBjYXJyeVwtb25cLXNob3VsZGVyczsKK+iZlCA8IGFjdFwtd2l0aFwtcmV2ZXJlbmNlOwor6ZyWIDwgbG9uZ1wtc3BlbGxcLW9mXC1yYWluOwor6Z+nIDwgc3Ryb25nXC1hbmRcLXBsaWFibGU7Civnkb4gPCBicmlsbGlhbmNlXC1vZlwtZ2VtczsKK+ahlCA8IGNoaW5lc2VcLWJlbGxmbG93ZXI7CivpuLMgPCBtYWxlXC1tYW5kYXJpblwtZHVjazsKK+mSlyA8IG9ybmFtZW50YWxcLWhhaXJwaW47Civlt4UgPCBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+aoqCA8IG9zbWFudGh1c1wtZnJhZ3JhbnM7CivooKEgPCB3b29kXC1ib3JpbmdcLWluc2VjdDsKK+i5giA8IHRyYW1wbGVcLXVuZGVyXC1mb290Owor6aqlIDwgdGhvcm91Z2hicmVkXC1ob3JzZTsKK+WUgSA8IGV4cHJlc3NcLWNvbmRvbGVuY2U7CivpqoUgPCBhblwtZXhjZWxsZW50XC1ob3JzZTsKK+eiiSA8IHJvb21cLW1hZGVcLW9mXC1zdG9uZTsKK+eWnyA8IGludGVybWl0dGVudFwtZmV2ZXI7CivnuqMgPCBuYW1lXC1vZlwtYW5cLWVtcGVyb3I7Civno6wgPCBtdXNpY2FsXC1pbnN0cnVtZW50Owor54i/IDwgaGFsZlwtb2ZcLXRyZWVcLXRydW5rOwor5peOIDwgZmx1dHRlcmluZ1wtb2ZcLWZsYWc7CivlpJQgPCBvbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+aujSA8IHRvXC1zdGFydmVcLXRvXC1kZWF0aDsKK+mqiiA8IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+a5jiA8IGZsdXNoZWRcLXdpdGhcLWRyaW5rOwor5Za1IDwgdGhlXC1tZXdcLW9mXC10aGVcLWNhdDsKK+eEmSA8IGRyeVwtb3Zlclwtc2xvd1wtZmlyZTsKK+e7viA8IHRvXC1zdHJpbmdcLXRvZ2V0aGVyOwor55ymIDwgY29ybmVyXC1vZlwtdGhlXC1leWVzOwor55GBIDwgZmluZVwtcGllY2VcLW9mXC1qYWRlOwor57KzIDwgbm9uXC1nbHV0aW5vdXNcLXJpY2U7CivppK4gPCBhXC1sZWdlbmRhcnlcLWFuaW1hbDsKK+axiiA8IGFcLWJyYW5jaGluZ1wtc3RyZWFtOwor57yDIDwgbGlnaHRcLXllbGxvd1wtY29sb3I7CivmqqkgPCB0aGVcLWJvbGVcLW9mXC1hXC10cmVlOwor5aWBIDwgbGFkeScnc1wtdmFuaXR5XC1jYXNlOwor5qW4IDwgbWFsbG90dXNcLWphcG9uaWN1czsKK+mquiA8IHRpcFwtb2ZcLWFcLWxvbmdcLWJvbmU7Civol78gPCBsb3BoYW50aHVzXC1ydWdvc3VzOwor5qi+IDwgdGhlXC1zaGFkZVwtb2ZcLXRyZWVzOwor6YWkIDwgdG9cLWRlYWxcLWluXC1zcGlyaXRzOwor6IeMIDwgZHJvcHNpY2FsXC1zd2VsbGluZzsKK+i3qyA8IHNvdW5kXC1vZlwtZm9vdHN0ZXBzOwor57auIDwgZW1icm9pZGVyZWRcLWJhbm5lcjsKK+insyA8IGFuXC1hbmNpZW50XC1tZWFzdXJlOwor5p2MIDwgdGhlXC1zdHVtcFwtZlwtYVwtdHJlZTsKK+W1qyA8IGFcLWhpbGxcLWluXC1zaGFudHVuZzsKK+aTlyA8IHRvXC1iZWF0XC10aGVcLWJyZWFzdDsKK+iElCA8IHNtYWxsXC1sdW1wXC1vZlwtbWVhdDsKK+mGhSA8IHVuc3RyYWluZWRcLXNwaXJpdHM7CivnvrAgPCBjYXJib255bFwtXChyYWRpY2FsXCk7Civom7ggPCBsb25nXC1sZWdnZWRcLXNwaWRlcjsKK+eegCA8IHRvXC1sb29rXC1hdFwtY2xvc2VseTsKK+ausyA8IG5hbWVcLW9mXC1vbGRcLXdlYXBvbjsKK+W0niA8IG1vdW50YWluXC1pblwtc2hhbnhpOwor5Z6yIDwgaGlnaFwtYW5kXC1kcnlcLXBsYWNlOwor6Jm/IDwgYVwta2luZFwtb2ZcLXNjb3JwaW9uOwor55azIDwgY2hpbGRob29kXC1kaXNlYXNlczsKK+e9viA8IGFcLWxhcmdlXC1zcXVhcmVcLW5ldDsKK+eNrCA8IGFcLWZhYnVsb3VzXC1tb25zdGVyOwor6LKg6LKs5Lu7IDwgcmVzcG9uc2liaWxpdHlcLWZvcjsKK+W5q+i+piA8IGFzc2lzdFwtaW5cLW1hbmFnaW5nOwor6YWs5oeJIDwgc29jaWFsXC1pbnRlcmFjdGlvbjsKK+eEoeirliA8IG5vXC1tYXR0ZXJcLXdoYXRcfGhvdzsKK+WOn+WumiA8IG9yaWdpbmFsbHlcLXBsYW5uZWQ7CivpgJrooYwgPCBsaWNlbmNlXC1cKGNvbXB1dGVyXCk7CivnkrDlvaLntZDmp4sgPCByaW5nXC1jb25maWd1cmF0aW9uOwor5Y+45LukIDwgY29tbWFuZGluZ1wtb2ZmaWNlcjsKK+ezvumbhiA8IHRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor6YCB6KGMIDwgdG9cLXNlZVwtc29tZW9uZVwtb2ZmOwor6KW/54+t54mZ6KqeIDwgc3BhbmlzaFwtXChsYW5ndWFnZVwpOwor6YGV57SEIDwgdG9cLWJyZWFrXC1hXC1wcm9taXNlOwor5Y2x5bGAIDwgcGVyaWxvdXNcLXNpdHVhdGlvbjsKK+S4gOiIrOS+huiqqiA8IGdlbmVyYWxseVwtc3BlYWtpbmc7Civou5/ku7bplovnmbzkurrlk6EgPCBzb2Z0d2FyZVwtZGV2ZWxvcGVyOwor5pKl6JmfIDwgZGlhbFwtXChhXC10ZWxlcGhvbmVcKTsKK+Wci+awkem7qOi7jemaiiA8IG5hdGlvbmFsaXN0XC1mb3JjZXM7CivpppbohabmnIPmmaQgPCBsZWFkZXJzaGlwXC1tZWV0aW5nOwor6K6K5L+uIDwgYmVjb21lXC1yZXZpc2lvbmlzdDsKK+mBleeroCA8IHRvXC1icmVha1wtdGhlXC1ydWxlczsKK+mHjeimgeWVj+mhjCA8IGFuXC1pbXBvcnRhbnRcLWlzc3VlOwor57ay566hIDwgbmV0d29ya1wtbWFuYWdlbWVudDsKK+iSmeaWhyA8IG1vbmdvbGlhblwtbGFuZ3VhZ2U7CivmgKfkuqQgPCBzZXh1YWxcLWludGVyY291cnNlOwor5Lit5bGx6KOdIDwgY2hpbmVzZVwtdHVuaWNcLXN1aXQ7Civnt6znlLjoqp4gPCBidXJtZXNlXC1cKGxhbmd1YWdlXCk7CivmlL/msrvniq8gPCBwb2xpdGljYWxcLXByaXNvbmVyOwor5bm05Lul5L6GIDwgc2luY2VcLXRoZVwteWVhclwtXC5cLlwuOwor5paw6I+v56S+IDwgeGluaHVhXC1uZXdzXC1hZ2VuY3k7CivkuI3kuK3nlKggPCB1bmZpdFwtZm9yXC1hbnl0aGluZzsKK+S4gOWwj+aZguS7peW+jCA8IGFcLXNob3J0XC10aW1lXC1sYXRlcjsKK+mgmOWFiOWcsOS9jSA8IGxlYWRcKGluZ1wpXC1wb3NpdGlvbjsKK+mAsuS4gOatpSA8IFwob25lXC1zdGVwXClcLWZ1cnRoZXI7Civnianlg7kgPCBcKGNvbW1vZGl0eVwpXC1wcmljZXM7Civkv6Hmga/ns7vntbEgPCBpbmZvcm1hdGlvblwtc3lzdGVtOwor5b6M5aSpIDwgZGF5XC1hZnRlclwtdG9tb3Jyb3c7Civmj5DkvpvllYYgPCBwcm92aWRlclwtXChjb21wYW55XCk7CivlpKrlubMgPCBwZWFjZVwtYW5kXC1zZWN1cml0eTsKK+efmuacmyA8IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+WNlOWKqSA8IHByb3ZpZGVcLWFzc2lzdGFuY2U7CivmjqHpoqggPCBjb2xsZWN0XC1mb2xrXC1zb25nczsKK+eoruaXj+a4hea0lyA8IFwiZXRobmljXC1jbGVhbnNpbmdcIjsKK+aPj+mHkSA8IHRvXC1vdXRsaW5lXC1pblwtZ29sZDsKK+WKqeaVmSA8IHRlYWNoaW5nXC1hc3Npc3RhbnQ7CivlpKvlqaYgPCBhXC1cKG1hcnJpZWRcKVwtY291cGxlOwor5LmS5LmT55CD5qqvIDwgdGFibGVcLXRlbm5pc1wtdGFibGU7Civoi7Hoqp4gPCBlbmdsaXNoXC1cKGxhbmd1YWdlXCk7CivpgYvmsKMgPCBsdWNrXC1cKGdvb2RcLW9yXC1iYWRcKTsKK+mdnuW4uOWatOWOsiA8IHRvXC1wdW5pc2hcLXNldmVyZWx5Owor5Y6f6JiH6IGvIDwgZm9tZXJcLXNvdmlldFwtdW5pb247CivmjqHpjIQgPCBjb2xsZWN0XC1hbmRcLXJlY29yZDsKK+eGiuaOjCA8IGJlYXJcLXBhd1wtXChhc1wtZm9vZFwpOwor5YWn6YOo57WQ5qeLIDwgaW50ZXJuYWxcLXN0cnVjdXRyZTsKK+aWsOWFtSA8IG5ld1wtXChhcm15XClcLXJlY3J1aXQ7Civmlbjmk5rpgJrkv6EgPCBkYXRhXC1jb21tdW5pY2F0aW9uOwor5aSp5a6J6ZaAIDwgdGlhbmFubWVuXC1cKHNxdWFyZVwpOwor6Z2e5bi45oSf6KydIDwgZXh0cmVtZWx5XC1ncmF0ZWZ1bDsKK+m+liA8IGZsaWdodFwtb2ZcLWFcLWRyYWdvbjsKK+aWg+WRvSA8IG1lZXRcLXZpb2xlbnRcLWRlYXRoOwor6bicIDwgYVwtc3BlY2llc1wtb2ZcLW15bmFoOwor6be9IDwgb3JpZW50YWxcLWJ1bGxmaW5jaDsKK+WFi+mahuaKgOihkyA8IGNsb25pbmdcLXRlY2hub2xvZ3k7Civpm7vlrZDntrLntaEgPCBlbGVjdHJvbmljXC1uZXR3b3JrOwor6bSXIDwgYWxjZWRvXC1iZW5nYWxlbnNpczsKK+mxtSA8IGh5cG9yaGFtcHVzXC1zYWp1cmk7CivlpLHkuosgPCBcKGhhdmVcLWFuXClcLWFjY2lkZW50Owor5LiN5Y+X55CGIDwgcmVqZWN0XC1hXC1jb21wbGFpbnQ7CivprKAgPCB0b1wtbWFrZVwtYVwtdG9wXC1rbm90Owor55m86YGU5ZyLIDwgZGV2ZWxvcGluZ1wtY291bnRyeTsKK+eZvem6teabuOeUnyA8IHBhbGVcLWZhY2VkXC1zY2hvbGFyOwor6LeR6K2m5aCxIDwgdG9cLXJ1blwtZm9yXC1zaGVsdGVyOwor6aS8IDwgc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+mbu+S/oSA8IHRlbGVjb21tdW5pY2F0aW9uczsKK+aNqOi6qyA8IHRvXC1naXZlXC1vbmUnJ3NcLWxpZmU7CivpoJQgPCBnb29kXC1hbmRcLWJlYXV0aWZ1bDsKK+iKneiYrSA8IGlyaXNlc1wtYW5kXC1vcmNoaWRzOwor6LKh5YuZ6Luf5Lu2IDwgZmluYW5jaWFsXC1zb2Z0d2FyZTsKK+aUueWPoyA8IHRvXC1jb3JyZWN0XC1vbmVzZWxmOwor55m96ZaL5rC0IDwgcGxhaW5cLWJvaWxlZFwtd2F0ZXI7CivmlL/li5kgPCBnb3Zlcm5tZW50XC1hZmZhaXJzOwor5YWn56eRIDwgbWVkaWNhbFwtZGVwYXJ0bWVudDsKK+WFg+e0oCA8IFwoY2hlbWljYWxcKVwtZWxlbWVudDsKK+WKoOWFpSA8IHRvXC1iZWNvbWVcLWFcLW1lbWJlcjsKK+aLm+W+heacgyA8IFwocHJlc3NcKVwtY29uZmVyZW5jZTsKK+mBuOWNgCA8IGVsZWN0b3JhbFwtZGlzdHJpY3Q7Civph5IgPCBrYW5neGlcLXJhZGljYWxcLTE2NzsKK+mEriA8IGFuY2llbnRcLXBsYWNlXC1uYW1lOwor5Zyf6JGXIDwgbmF0aXZlXCxcLWFib3JpZ2luYWw7Civmh7fkv4TmmI4gPCB3eW9taW5nXC1cKHVzXC1zdGF0ZVwpOwor5Y2h5ouJ5aWHIDwga2FyYWNoaVwtXChwYWtpc3RhblwpOwor5pON5a6IIDwgcGVyc29uYWxcLWludGVncml0eTsKK+i9mSA8IHJpbmdzXC1vblwtdGhlXC15b2tlczsKK+WCsuimliA8IHR1cm5cLXVwXC1vbmUnJ3NcLW5vc2U7Civou7AgPCBhXC1yb3dcLW9mXC1jYXJyaWFnZXM7CivljYropo/nrqEgPCBzZW1pY2lyY3VsYXJcLWNhbmFsOwor6aas5L6G6KqeIDwgbWFsYXlzaWFuXC1sYW5ndWFnZTsKK+WPpOWFuOiqnuiogCA8IGNsYXNzaWNhbFwtbGFuZ3VhZ2U7CivosL0gPCBhXC1tb3V0aFwtb3JcLW9wZW5pbmc7CivojqvlpoIgPCBpdFwtd291bGRcLWJlXC1iZXR0ZXI7CivntZDluLMgPCB0b1wtc2V0dGxlXC1hY2NvdW50czsKK+Wbm+iZlSA8IGFsbFwtb3ZlclwtdGhlXC1wbGFjZTsKK+avlOS4jeS4iiA8IGNhbicndFwtY29tcGFyZVwtd2l0aDsKK+e2sui3r+mAo+aOpeWxpCA8IG5ldHdvcmtcLWxpbmtcLWxheWVyOwor6KiBIDwga2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivopbUgPCBhXC1wbGVhdFwtaW5cLWFcLXNraXJ0Owor6KSwIDwgbGlmdFwtdXBcLXRoZVwtc2tpcnRzOwor5Z2m546HIDwgZnJhbmtcLVwoZGlzY3Vzc2lvblwpOwor6YGL5L2cIDwgdGhyZWFkXC1cKGNvbXB1dGluZ1wpOwor5aSa57Gz5bC85Yqg5YWx5ZKM5ZyLIDwgZG9taW5pY2FuXC1yZXB1YmxpYzsKK+mAseWIiiA8IHdlZWtseVwtcHVibGljYXRpb247CivomrkgPCBldWxvdGFcLXBlbGlvbXBoYWxhOwor6Ja3IDwgZWxzaG90cmlhXC1wYWx0cmluaTsKK+S/nemnlSA8IGVzY29ydFwtdGhlXC1lbXBlcm9yOwor6JW6IDwgaG91dHR1eW5pYVwtY29yZGF0YTsKK+iTtCA8IGVkaWJsZVwtd2F0ZXJcLXBsYW50Owor5YWp5YCL5Lit5ZyLIDwgdHdvXC1jaGluYVwtXChwb2xpY3lcKTsKK+iRtCA8IHBoeXNhbGlzXC1hbGtla2VuZ2k7CivlhbHmnIkgPCB0b1wtaGF2ZVwtYWx0b2dldGhlcjsKK+WgseWWnCA8IGFubm91bmNlXC1nb29kXC1uZXdzOwor6LeR6Zu7IDwgZWxlY3RyaWNhbFwtbGVha2FnZTsKK+iNhSA8IGFuc3dlclw6XC1zbWFsbFwtYmVhbjsKK+iMliA8IGFsbGl1bVwtdmljdG9yaWFsaXM7CivlnIvpmLLpg6ggPCBkZWZlbnNlXC1kZXBhcnRtZW50Owor6IqjIDwgbWVkaWNpbmFsXC1wbGFudGFnbzsKK+aSpeWIuiA8IHNwbGFzaFwtXChvZlwtYVwtZmlzaFwpOwor5ouc6KaLIDwgcGF5XC1hXC1mb3JtYWxcLXZpc2l0Owor5aSW5L6G5oqV6LOHIDwgZm9yZWlnblwtaW52ZXN0bWVudDsKK+i2leS4jeS4iiA8IGNhbicndFwta2VlcFwtdXBcLXdpdGg7Civnv68gPCBnbGlzdGVuaW5nXC1wbHVtYWdlOwor57+WIDwga3NjXC1leHRlbnNpb25cLTMxMDg7CivliJ3kuK0gPCBqdW5pb3JcLWhpZ2hcLXNjaG9vbDsKK+e+pyA8IGNhcmJveHlsXC1cKHJhZGljYWxcKTsKK+Wcn+iAs+WFtuiqniA8IHR1cmtpc2hcLVwobGFuZ3VhZ2VcKTsKK+S4jeato+S5i+miqCA8IHVuaGVhbHRoeVwtdGVuZGVuY3k7CivmioTpgZMgPCB0b1wtdGFrZVwtYVwtc2hvcnRjdXQ7CivmvJToqqogPCBcKGRlbGl2ZXJcLWFcKVwtc3BlZWNoOwor6KaB5ZywIDwgc3RyYXRlZ2ljXC1sb2NhdGlvbjsKK+i+puWgsSA8IHRvXC1ydW5cLWFcLW5ld3NwYXBlcjsKK+mbhuaIkOmbu+i3ryA8IGludGVncmF0ZWRcLWNpcmN1aXQ7Civns5IgPCBmb29kXC1mb3JcLWFcLWpvdXJuZXk7Civlh7rku7sgPCBzdGFydFwtaW5cLWFcLW5ld1wtam9iOwor6ZaJ6Zec5pS/562WIDwgY2xvc2VkXC1kb29yXC1wb2xpY3k7Civlhafmg4UgPCBpbnNpZGVcLWluZm9ybWF0aW9uOwor5ou/5Li75oSPIDwgdG9cLW1ha2VcLWFcLWRlY2lzaW9uOwor57ay57Wh5oqA6KGTIDwgbmV0d29ya1wtdGVjaG5vbG9neTsKK+W4uOWnlOacgyA8IHN0YW5kaW5nXC1jb21taXR0ZWU7CivkuK3lnIvmlL/lupwgPCBjaGluZXNlXC1nb3Zlcm5tZW50Owor6ZaL5bGVIDwgXChiZWdpblwtdG9cKVwtZGV2ZWxvcDsKK+S7pOeJjOeSsOe2siA8IHRva2VuXC1yaW5nXC1uZXR3b3JrOwor55qqIDwgbHVzdGVyXC1cKG9mXC1wZWFybHNcKTsKK+Wkp+aYjum8jum8jiA8IGFcLWdyYW5kXC1yZXB1dGF0aW9uOwor55ecIDwgYVwtc2NhYmJ5XC1iYWxkXC1oZWFkOwor5aSn5a2455SfIDwgdW5pdmVyc2l0eVwtc3R1ZGVudDsKK+eUvyA8IGZhcm1pbmdcLXBvcHVsYXRpb247Civosr/mmJPntYTnuZQgPCB0cmFkZVwtb3JnYW5pemF0aW9uOwor55SLIDwgYVwtamFyXC13aXRob3V0XC1lYXJzOwor55CkIDwgamFkZVwtb2ZcLWphZGVcLWJlaW5nOwor546YIDwgY291cnRcLWRyZXNzXC1qZXdlbHM7CivpgY3lnLDplovoirEgPCBibG9zc29tXC1ldmVyeXdoZXJlOwor542zIDwgZmllcmNlXC1kb2dcLWxvb2tpbmc7Civkv4Toqp4gPCBydXNzaWFuXC1cKGxhbmd1YWdlXCk7CivlsbHohbMgPCBmb290XC1vZlwtYVwtbW91bnRhaW47CivnhY0gPCB0b1wtY29sb3VyXC1ieVwtc21va2U7Civpq5jpgJ/ntrLntaEgPCBoaWdoXC1zcGVlZFwtbmV0d29yazsKK+eBpSA8IGFcLWdyb3VwXC1vZlwtc3ByaW5nczsKK+W6t+WliOeIvuWkp+WtuCA8IGNvcm5lbGxcLXVuaXZlcnNpdHk7Civlhazlj7ggPCBcKGJ1c2luZXNzXClcLWNvbXBhbnk7Civmi4nnpaggPCBjYW1wYWlnblwtZm9yXC12b3RlczsKK+aJi+ihkyA8IHN1cmdpY2FsXC1vcGVyYXRpb247CivlhavljaYgPCB0aGVcLWVpZ2h0XC1kaWFncmFtczsKK+eAj+imveWZqCA8IGJyb3dzZXJcLVwoc29mdHdhcmVcKTsKK+mrlOa6qyA8IFwoYm9keVwpXC10ZW1wZXJhdHVyZTsKK+abuOmdouioseWPryA8IHdyaXR0ZW5cLXBlcm1pc3Npb247Civms7IgPCBraW5kXC1vZlwtd2hpdGVcLXdpbmU7CivkuJbntIDmnKsgPCBlbmRcLW9mXC10aGVcLWNlbnR1cnk7CivmsI0gPCBmaW5lXC13b29sbGVuXC1jbG90aDsKK+a8guenuyA8IGRyaWZ0XC1cKGVsZWN0cmljYWxcKTsKK+iBr+WQiOWFrOWgsSA8IGpvaW50XC1hbm5vdW5jZW1lbnQ7CivnoJTnqbbmqZ/mp4sgPCByZXNlYXJjaFwtaW5zdGl0dXRlOwor5L2b6Jit6IqS6KqeIDwgZmxlbWlzaFwtXChsYW5ndWFnZVwpOwor5YGc5ruvIDwgYmVcLWF0XC1hXC1zdGFuZHN0aWxsOwor5ZyL5pyD6K2w5ZOhIDwgbWVtYmVyXC1vZlwtY29uZ3Jlc3M7CivmnIDov5Hlub7lubQgPCB0aGVcLWxhc3RcLWZld1wteWVhcnM7Civnsr7nsKHplovmlK8gPCB0b1wtcmVkdWNlXC1zcGVuZGluZzsKK+afuiA8IGFuXC1vbGRcLW1hbicnc1wtc3RhZmY7CivmnbsgPCBsaWd1c3RydW1cLXNpbmVuZXNlOwor5p2ZIDwgYVwtdGlueVwtd29vZGVuXC1wb3N0Owor5LiN572u5Y+v5ZCmIDwgZGVjbGluZVwtdG9cLWNvbW1lbnQ7Civou43lrpggPCBcKG1pbGl0YXJ5XClcLW9mZmljZXI7CivmmLcgPCB0b1wtZmVlZFwtYVwtcHJpc29uZXI7Civml7wgPCBnZW50bGVcLWFuZFwtYWZmYWJsZTsKK+WhnueIvue2reS6nuiqniA8IHNlcmJpYW5cLVwobGFuZ3VhZ2VcKTsKK+aTrSA8IHRyYXBcLWNhdGNoXC1hbmltYWxzOwor5LiJ6KeS6IW55bi2IDwgYXRobGV0aWNcLXN1cHBvcnRlcjsKK+ethuebtCA8IHBlcmZlY3RseVwtc3RyYWlnaHQ7CivnlKLnlJ8gPCB0b1wtY29tZVwtaW50b1wtYmVpbmc7Civpp5Doj68gPCBzdGF0aW9uZWRcLWluXC1jaGluYTsKK+aWr+eTpuW4jOijoeiqniA8IHN3YWhpbGlcLVwobGFuZ3VhZ2VcKTsKK+aOiOWPlyA8IHRvXC1naXZlXC1hbmRcLWFjY2VwdDsKK+eWq+aDhSA8IGVwaWRlbWljXC1zaXR1YXRpb247Civmt7HpgKAgPCBhZHZhbmNlZFwtXChzdHVkaWVzXCk7CivooZvnlJ/oqK3lgpkgPCBzYW5pdGFyeVwtZXF1aXBtZW50Owor6YCg5oiQ5ZWP6aGMIDwgdG9cLWNyZWF0ZVwtYW5cLWlzc3VlOwor5b2EIDwgbm9ja1wtYXRcLWVuZFwtb2ZcLWJvdzsKK+aNqOWRvSA8IHRvXC1yaXNrXC1vbmUnJ3NcLWxpZmU7Civmk4HorbfogIUgPCBzdXBwb3J0ZXJcLVwocGVyc29uXCk7CivlnIvli5nljb8gPCBzZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+W2qCA8IGJpZ1wtcm9ja3lcLW1vdW50YWluOwor6KOB5LimIDwgY3V0XC1kb3duXC1hbmRcLW1lcmdlOwor5bWWIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5L2/56+AIDwgXChkaXBsb21hdGljXClcLWVudm95Owor5ZyL5a625qiZ5rqW56K8IDwgZ2JcLVwoZ3VvXC1iaWFvXClcLWNvZGU7CivljYrovKnlrZAgPCBoYWxmXC1vZlwtYVwtbGlmZXRpbWU7CivmnKzliJ3lrZDljYjnt5ogPCB0aGVcLWZpcnN0XC1tZXJpZGlhbjsKK+WutuW6rea2iOiyu+iAhSA8IGhvdXNlaG9sZFwtY29uc3VtZXI7Civlo5wgPCBlYXJ0aGVuXC1qYXJcLW9yXC1qdWc7Civoh7PlsJEgPCBcKHRvXC1zYXlcLXRoZVwpXC1sZWFzdDsKK+WikCA8IHRvXC1idWlsZFwtd2l0aFwtc29pbDsKK+ermeeuoeeQhiA8IHN0YXRpb25cLW1hbmFnZW1lbnQ7Civosrfos6MgPCBidXlpbmdcLWFuZFwtc2VsbGluZzsKK+WZiyA8IHRvXC1zd2FsbG93XC1oYXN0aWx5Owor5ris57mqIDwgdG9cLXN1cnZleVwtYW5kXC1kcmF3Owor6IOM57SEIDwgYnJlYWtcLWFuXC1hZ3JlZW1lbnQ7CivoibLmg4XlsI/oqqogPCBwb3Jub2dyYXBoaWNcLW5vdmVsOwor5ZOwIDwgaW5jb2hlcmVudFwtY2hhdHRlcjsKK+iKrOiYreiqniA8IGZpbm5pc2hcLVwobGFuZ3VhZ2VcKTsKK+iytOWmg+mGiemFkiA8IHRoZVwtZHJ1bmtlblwtYmVhdXR5Owor6K6K5rOV5YWSIDwgdHJ5XC1kaWZmZXJlbnRcLXdheXM7Civmtbfnqbrou40gPCBuYXZ5XC1hbmRcLWFpclwtZm9yY2U7Civpm7vlrZDkv6HnrrEgPCBlbGVjdHJvbmljXC1tYWlsYm94Owor6Lev5b6RIDwgcm91dGVcLVwobmV0d29ya2luZ1wpOwor5L23IDwgdG9cLWFjdFwtY29udHJhcnlcLXRvOwor6IiJ5L6LIDwgdG9cLWdpdmVcLWFuXC1leGFtcGxlOwor5pKS5ZOI5ouJ5Lul5Y2X6Z2e5rSyIDwgc3ViXC1zYWhhcmFuXC1hZnJpY2E7CivkuZEgPCBzdGFuZFwtc2lkZVwtYnlcLXNpZGU7CivmiY3mmbogPCBhYmlsaXR5XC1hbmRcLXdpc2RvbTsKK+S2oyA8IHRvXC1ncmluZFwtdGhlXC10ZWV0aDsKK+S2nyA8IHRvXC1nbmFzaFwtdGhlXC10ZWV0aDsKK+S1lSA8IGFcLXZhcmlldHlvZlwtbWlsbGV0Owor5LSxIDwgY2FrZXNcLWFuZFwtYmlzY3VpdHM7Civks6ggPCB0aGVcLWZlbWFsZVwtcGhvZW5peDsKK+SzlCA8IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SxsyA8IGFcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+SxoyA8IGFcLWxvbmdcLW5hcnJvd1wtZmlzaDsKK+SwqiA8IG1pc2NoaWV2b3VzXC1zcGlyaXQ7Civkr7EgPCB0aGVcLWhhaXJcLXN0YW5kc1wtdXA7Civkr48gPCB0aGVcLXNob3VsZGVyXC1ibGFkZTsKK+SupSA8IGNvbG9yXC1vZlwtdGhlXC1ob3JzZTsKK+e0sOiPjOaIsCA8IGJpb2xvZ2ljYWxcLXdhcmZhcmU7CivkrbAgPCBzdHJvbmdcLXN3ZWV0XC1zbWVsbDsKK+StiyA8IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrYMgPCB0b1wtZWF0XC10b1wtdGhlXC1mb29sOwor5Ky0IDwgZm9kZGVyXC1mb3JcLWFuaW1hbHM7CivkrKcgPCByb3VuZFwtc2hhcGVkXC1jYWtlczsKK+aJk+aLsyA8IHRvXC1kb1wtc2hhZG93Ym94aW5nOwor6ISI5qyCIDwgYmVhdGluZ1wtXChvZlwtaGVhcnRcKTsKK+SrkCA8IHRvXC1iZW5kXC1vbmUnJ3NcLWhlYWQ7CivkqowgPCBjdXNoaW9uXC1mb3JcLXNhZGRsZTsKK+SohiA8IGFcLWtpbmRcLW9mXC1waGVhc2FudDsKK+SnvCA8IHRoZVwtdGhlXC1zbm93XC1nb29zZTsKK+SnpiA8IG5hbWVcLW9mXC1hXC1oaWxsc2lkZTsKK+aWsOWKoOWdoeS6uiA8IHNpbmdhcG9yZWFuXC1wZXJzb247Civkpq4gPCBkb29yXC1vZlwtdGhlXC1jZW50ZXI7Civoh6rkuLsgPCB0b1wtYWN0XC1mb3JcLW9uZXNlbGY7CivkppIgPCB0aGVcLWRvb3JcLWlzXC1jbG9zZWQ7CivkppAgPCB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor5pyf6LKoIDwgZnV0dXJlc1wtXChvblwtZ29vZHNcKTsKK+SlsyA8IGFcLWNoZW1pY2FsXC1lbGVtZW50Owor5KWeIDwgdG9cLWN1dFwtd2l0aFwtc2hlYXJzOwor5KWdIDwgZGVzcGVyYXRlXC1maWdodGluZzsKK+S+teaIqiA8IHRvXC1oYWNrXC1cKGNvbXB1dGVyXCk7Civko7ogPCBmaWx0cmF0ZWRcLXRoZVwtd2luZTsKK+mgremrriA8IGhhaXJcLVwob25cLXRoZVwtaGVhZFwpOwor5KGgIDwgc3Ryb25nXC1hbmRcLWR1cmFibGU7CivkoZsgPCBuYW1lXC1vZlwtYVwtY2FycmlhZ2U7CivkoKcgPCBoYXJkXC10b1wtZ29cLWZvcndhcmQ7Civkn50gPCB0b1wtd2Fsa1wtcmlnaHRcLWludG87CivknZ4gPCBuYW1lXC1vZlwtYVwtaW1tb3J0YWw7Civkm4kgPCB0b1wtaW5kdWNlXC1ieVwtd29yZHM7CivkmqcgPCBjdXJ2ZWRcLXdpdGhcLWFuZ2xlczsKK+Wkp+WKm+eZvOWxlSA8IHZpZ29yb3VzXC1leHBhbnNpb247CivkmYMgPCBzbGVldmVsZXNzXC1jbG90aGVzOwor6LOq55aRIDwgY2FsbFwtaW50b1wtcXVlc3Rpb247Civkl7sgPCBhXC1raW5kXC1vZlwtc2VhXC1jcmFiOwor5JeoIDwgbGVwc2ltYVwtc2FjY2hhcmluYTsKK+SXoyA8IGluc2VjdFwtb2ZcLW11bGJlcnJ5Owor5pyN5YuZ6KaP56ugIDwgc2VydmljZVwtcmVndWxhdGlvbjsKK+SWpyA8IGFcLXBvaXNvbm91c1wtaW5zZWN0Owor5JaTIDwgb2ZcLWFcLXdhbGtpbmdcLXRpZ2VyOwor5JWqIDwgdGhlXC13YXRlclwtcGxhbnRhaW47CivklLwgPCBzb3VuZFwtb2ZcLXRoZVwtZ3Jhc3M7CivklIMgPCBjb3JkYXRlXC1ob3V0dHV5bmlhOwor5JOoIDwgbG9uZ1wtbmVja2VkXC1ib3R0bGU7Civkk5YgPCBjbmlkaXVtXC1vZmZpY2luYWxlOwor5JODIDwgbWVsYW5jaG9seVwtYW5kXC1zYWQ7Civkkp0gPCByb290XC1vZlwtdGhlXC10aGF0Y2g7CivpppbmrKEgPCBmb3JcLXRoZVwtZmlyc3RcLXRpbWU7CivkkZkgPCBwdXRcLW91dFwtdGhlXC10b25ndWU7CivkkYYgPCBmZWVsXC1saWtlXC12b21pdGluZzsKK+WcqOWCs+i8uOmBjueoi+S4rSA8IHdoaWxlXC10cmFuc21pdHRpbmc7CivkkJQgPCBtdXNjbGVcLW9mXC10aGVcLWNhbGY7Civkjr4gPCBiaWdcLWFuZFwtcm91bmRcLWV5ZXM7Civln5/lkI3mnI3li5nlmaggPCBkb21haW5cLW5hbWVcLXNlcnZlcjsKK+SOtCA8IGFcLWxlZ2VuZGFyeVwtc3Bpcml0Owor5I6qIDwgdGhlXC1zdGFsa1wtb2ZcLWdyYWluOwor5qKG5a2QIDwgd2F0Y2htYW4nJ3NcLWNsYXBwZXI7CivkjpQgPCBmaW5lXC1hbmRcLXNvZnRcLWhhaXI7Civkjo8gPCB5b3VuZ1wtYmlyZHNcLWZseWluZzsKK+ayuemkhSA8IGRlZXBcLWZyaWVkXC1wYW5jYWtlOwor5I2pIDwgdG9cLW9mZmVyXC1wcm92aXNpb247CivkjaMgPCBhXC1raW5kXC1vZlwtZmlzaFwtbmV0Owor5IyNIDwgZmluZVwtd292ZW5cLXBhdHRlcm47CivkjIkgPCB0aGVcLWxhcmdlXC1vZlwtYVwtbmV0Owor5rOE6ZyyIDwgbGVha1wtXChpbmZvcm1hdGlvblwpOwor5IuIIDwgdG9cLWJpbmRcLWxvb3NlXC1oZW1wOwor5ImsIDwgY29hcnNlXC1iYW1ib29cLW1hdHM7CivkiK4gPCBhXC13b3ZlblwtaW5zdHJ1bWVudDsKK+SHsyA8IGFcLW1lbW9yYWR1bVwtdGFibGV0Owor5IaqIDwgY29sb3JcLW9mXC10aGVcLWxpZ2h0Owor5IalIDwgdG9cLXBpZXJjZVwtdGhyb3VnaGo7CivkhpEgPCBhXC1saXR0bGVcLXByb3RydWRlZDsKK+aKleWFpSA8IHB1dFwtaW50b1wtb3BlcmF0aW9uOwor5IW9IDwgZnJhZ3JhbmNlXC1vclwtYXJvbWE7CivkhacgPCBmaW5lXC1yaWNlXC1zZWVkbGluZzsKK+SFnCA8IHRvXC1zdG9yZVwtdXBcLWdyYWluczsKK+SEmiA8IHRvXC13b3JzaGlwXC10aGVcLWdvZDsKK+SDnCA8IGFcLWZpbmVcLWJsYWNrXC1zdG9uZTsKK+SBiiA8IGRhcmtcLWFuZFwtZGVlcFwtZXllZDsKK+SAniA8IHdpdGhcLWhlYXZ5XC1leWVsaWRzOwor5ICXIDwgdG9cLWxvb2tcLWFza2FuY2VcLWF0Owor5p6Q55aRIDwgdG9cLXJlc29sdmVcLWFcLWRvdWJ0Owor47+MIDwgbHVtcFwtaW5cLXRoZVwtdGhyb2F0Owor56ut55uh5YWo5YqbIDwgdG9cLXNwYXJlXC1ub1wtZWZmb3J0Owor55Ge5YW46KqeIDwgc3dlZGlzaFwtXChsYW5ndWFnZVwpOwor47yjIDwgYnJpY2tzXC1vZlwtdGhlXC13ZWxsOwor47yHIDwgZmluZVwtamFkZVwtb3JcLWFnYXRlOwor5raJ5auM5Lq6IDwgXChjcmltaW5hbFwpXC1zdXNwZWN0Owor47uXIDwgYVwtc3RyaW5nXC1vZlwtcGVhcmxzOwor47uKIDwgYVwtcmVkXC1jb2xvcmVkXC1qYWRlOwor47uFIDwgamFkZVwtZGVjb3JhdGVkXC1jYXA7Civol4/oqp4gPCB0aWJldGFuXC1cKGxhbmd1YWdlXCk7CivkuI3mipjkuI3miaMgPCBhXC1odW5kcmVkXC1wZXJcLWNlbnQ7CivjuqcgPCBhXC13aGl0ZVwteWVsbG93XC1kb2c7CivjuL0gPCBhXC10d29cLXllYXJzXC1vbGRcLW94Owor5pyo6ICzIDwgZWRpYmxlXC10cmVlXC1mdW5ndXM7CivjuIggPCBzY29yY2hlZFwtb3JcLWJ1cm5lZDsKK+O3syA8IGNvbG9yXC1vZlwtdGhlXC1mbGFtZTsKK+WWmOaBryA8IHRvXC1nYXNwXC1mb3JcLWJyZWF0aDsKK+ajhOS4liA8IHRvXC1sZWF2ZVwtdGhpc1wtd29yZDsKK+O3oiA8IGJ1bmRsZVwtb2ZcLWNoYXJjb2FsOwor47egIDwgYVwtd2lsbFwtbycnXC10aGVcLXdpc3A7CivjtZMgPCB0aGVcLXdhdGVyXC1pc1wtY2xlYXI7CivjtL4gPCBzd2VsbGluZ1wtb3JcLXJpc2luZzsKK+S9teaNsuapnyA8IHJpYmJvblwtbGFwXC1tYWNoaW5lOwor5Yil5YuV6ZqKIDwgc3BlY2lhbFwtZGV0YWNobWVudDsKK+OzgiA8IHRvXC1mb2xsb3dcLWFcLWNvdXJzZTsKK+OyoSA8IHRoaWNrXC1jb2F0XC1vZlwtaGFpcjsKK+OylyA8IHRvXC1zbW9vdGhcLXRoZVwtaGFpcjsKK+aEm+eosSA8IHRlcm1cLW9mXC1lbmRlYXJtZW50Owor56eR56CU5qij5qmfIDwgcmVzZWFyY2hcLXByb3RvdHlwZTsKK+OvtiA8IHRoZVwtY29pclwtcGFsbVwtdHJlZTsKK+OvsiA8IGFcLXdvb2RlblwtZnJhbWV3b3JrOwor46+bIDwgZ291cmRcLXNoYXBlZFwtZGF0ZXM7CivjrrsgPCB0b1wtc2NyYXRjaFwtbGlnaHRseTsKK+WNgOWfn+e2sui3ryA8IGxvY2FsXC1hcmVhXC1uZXR3b3JrOwor466NIDwgYW1lbW9yYW5kdW1cLXRhYmxldDsKK+OtqCA8IHRoZVwtY29jb2FcLW51dFwtcGFsbTsKK+OtnSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvbjsKK+eZvOmAgeWKn+eOhyA8IHRyYW5zbWlzc2lvblwtcG93ZXI7CivjrLQgPCB0aGVcLW1vb25cLWlzXC1kaW1tZWQ7CivjrJIgPCB0aGVcLXN1blwtYXJlXC1kaW1tZWQ7CivjrI4gPCBtb3Rlc1wtaW5cLWFcLXN1bmJlYW07CivmlL/lupzorablkYogPCBnb3Zlcm5tZW50XC13YXJuaW5nOwor46umIDwgb2ZcLWxvb2tcLW9mXC10aGVcLXN1bjsKK+OquCA8IHRvXC1maWxsXC1hXC1jdXBcLXdpdGg7CivjqYMgPCB0b1wtdGFrZVwtb3JcLWNhcHR1cmU7CivjqL0gPCB0b1wtY3V0XC1vclwtcmlwXC1vcGVuOwor46ihIDwgdG9cLXB1c2hcLXdpdGhcLWhhbmRzOwor46icIDwgdG9cLWhlbHBcLWVhY2hcLW90aGVyOwor5qC46IO95oqA6KGTIDwgbnVjbGVhclwtdGVjaG5vbG9neTsKK+W5tOi8leWMliA8IG1ha2VcLW1vcmVcLXlvdXRoZnVsOwor5bCI5ZOhIDwgYXNzaXN0YW50XC1kaXJlY3RvcjsKK+OluCA8IHRvXC1zeW1wYXRoaXplXC13aXRoOwor46WoIDwgdW5oYXBweVwtZGlzcGxlYXNlZDsKK+OkqiA8IHRvXC1maW5kXC1mYXVsdFwtd2l0aDsKK+OjjCA8IHRvXC1qb2luXC10d29cLXRoaW5nczsKK+OhryA8IHdhbGxcLW9mXC1hXC1idWlsZGluZzsKK+mgk+i2syA8IHN0YW1wXC1cKG9uZScnc1wtZmVldFwpOwor5Yqg6YCf5ZmoIDwgYWNjZWxlcmF0b3JcLVwoY29tcFwpOwor45izIDwgYVwtaGlsbG9ja1wtb3JcLW1vdW5kOwor45ixIDwgdG9cLWZhbGxcLWludG9cLXJ1aW5zOwor5oSP5aSn5Yip6KqeIDwgaXRhbGlhblwtXChsYW5ndWFnZVwpOwor45icIDwgYVwta2luZFwtb2ZcLXNpbGt3b3JtOwor45aFIDwgc291bmRcLW9mXC1hXC13aGlzdGxlOwor45aDIDwgdG9cLXJvYXJcLW9mXC1hbmltYWxzOwor45SiIDwgdG9cLWJyZWFrXC1zb21ldGhpbmc7CivkuI3nrYnomZ8gPCBzaWduXC1vZlwtaW5lcXVhbGl0eTsKK+ePvuaciSA8IGN1cnJlbnRseVwtZXhpc3Rpbmc7Civopb/ljYrnkIMgPCB3ZXN0ZXJuXC1oZW1pc3BoZXJlOwor6by75qiRIDwgYnJpZGdlXC1vZlwtdGhlXC1ub3NlOwor5Y+D6LSKIDwgZGlwbG9tYXRpY1wtb2ZmaWNlcjsKK+S4pueriyA8IGV4aXN0XC1zaWRlXC1ieVwtc2lkZTsKK+iyv+aYkyA8IFwoY29tbWVyY2lhbFwpXC10cmFkZTsKK+Wkmuerr+S4ree5vOWZqCA8IG11bHRpcG9ydFwtcmVwZWF0ZXI7CivljJfkuqzlpKflrbggPCBiZWlqaW5nXC11bml2ZXJzaXR5Owor5aCx5YuZ5ZOhIDwgdGVsZWdyYXBoXC1vcGVyYXRvcjsKK+mFrOmFoiA8IHRvXC1leGNoYW5nZVwtdG9hc3RzOwor5rWq5raMIDwgXChlbGVjdHJpY2FsXClcLXN1cmdlOwor5L2U5YWIIDwgdG9cLXRha2VcLXByZWNlZGVuY2U7Civog4zlhYkgPCBiZVwtaW5cLWFcLXBvb3JcLWxpZ2h0Owor5YWJ5rOi6ZW3IDwgb3B0aWNhbFwtd2F2ZWxlbmd0aDsKK+a3seWknCA8IHZlcnlcLWxhdGVcLWF0XC1uaWdodDsKK+WWieaTpumfsyA8IGd1dHR1cmFsXC1mcmljYXRpdmU7CivlhavntJrlt6UgPCBlaWdodFwtZ3JhZGVcLXdvcmtlcjsKK+S9m+iSmeeJuSA8IHZlcm1vbnRcLVxbdXNcLXN0YXRlXF07CivpnLLpnaIgPCBhcHBlYXJcLVwoaW5cLXB1YmxpY1wpOwor5ZWG5YuZIDwgY29tbWVyY2lhbFwtYWZmYWlyczsKK+iBr+mCpuaUv+W6nCA8IGZlZGVyYWxcLWdvdmVybm1lbnQ7CivnjJznlpEgPCBoYXJib3VyXC1zdXNwaWNpb25zOwor55Sf5rS75b+F6ZyA5ZOBIDwgbGlmZScnc1wtbmVjZXNzaXRpZXM7CivosrTlp5MgPCB3aGF0XC1pc1wteW91clwtbmFtZVw/Owor54yZ542wIDwgbWVhblwtYW5kXC1mZXJvY2lvdXM7CivpgLLooYznt6jnqIsgPCBleGVjdXRhYmxlXC1wcm9ncmFtOwor5ray5aOTIDwgaHlkcmF1bGljXC1wcmVzc3VyZTsKK+euoeeQhuermSA8IG1hbmFnZW1lbnRcLXN0YXRpb247CivpvLvloZ4gPCBoYXZlXC1hXC1zdHVmZnlcLW5vc2U7CivomZvmk6zpgKPmjqUgPCB2aXJ0dWFsXC1jb25uZWN0aW9uOwor6bue5b+DIDwgbGlnaHRcLXJlZnJlc2htZW50czsKK+WuouaItuaHieeUqCA8IGNsaWVudFwtYXBwbGljYXRpb247CivkuI3pmqjmhI/ogowgPCBpbnZvbHVudGFyeVwtbXVzY2xlOwor6Kqq5LiN5a6aIDwgY2FuJyd0XC1zYXlcLWZvclwtc3VyZTsKK+azouaWr+iqniA8IGJvc25pYW5cLVwobGFuZ3VhZ2VcKTsKK+a1t+WfnyA8IHRlcnJpdG9yaWFsXC13YXRlcnM7Civmr5ToqaYgPCBoYXZlXC1hXC1jb21wZXRpdGlvbjsKK+aOoeWPluaOquaWvSA8IHRvXC1hZG9wdFwtYVwtbWVhc3VyZTsKK+WEmOWPr+iDvSA8IGFzXC1mYXJcLWFzXC1wb3NzaWJsZTsKK+WTiOS9m+Wkp+WtuCA8IGhhcnZhcmRcLXVuaXZlcnNpdHk7Civpm7vot68gPCBcKGVsZWN0cmljXClcLWNpcmN1aXQ7CivkuK3lsIcgPCBsaWV1dGVuYW50XC1nZW5lcmFsOwor5YyF5om/57WEIDwgXChyZXNwb25zaWJsZVwpXC1jcmV3Owor55m+6JGJ566xIDwgdGhlcm1vbWV0ZXJcLXNjcmVlbjsKK+aal+e3muWFieitnCA8IGRhcmtcLWxpbmVcLXNwZWN0cnVtOwor5paH6JedIDwgbGl0ZXJhdHVyZVwtYW5kXC1hcnQ7CivniYjnqIUgPCByb3lhbHR5XC1cKG9uXC1ib29rc1wpOwor6Zu76KaW56+A55uuIDwgdGVsZXZpc2lvblwtcHJvZ3JhbTsKK+aDheWgsSA8IFwoc3B5XClcLWludGVsbGlnZW5jZTsKK+e3qOmBoyA8IHJlb3JnYW5pemVcLVwodHJvb3BzOwor6YG/6Zu35ZmoIDwgbGlnaHRuaW5nXC1hcnJlc3RlcjsKK+W/heS4jeWPr+Wwkee1hOaIkCA8IGFic29sdXRlXC1uZWNlc3NpdHk7Civms7DlsbEgPCB0YWlzaGFuXC1cKG1vdW50YWluXCk7CivmgonlsLwgPCBzeWRuZXlcLVwoYXVzdHJhbGlhXCk7CivmiLDprKXmqZ8gPCBmaWdodGVyXC1cKGFpcmNyYWZ0XCk7CivoloTmg4UgPCBpbmNvbnN0YW50XC1pblwtbG92ZTsKK+awkeeUqCA8IFwoZm9yXClcLWNpdmlsaWFuXC11c2U7Civnt6jora8gPCB0cmFuc2xhdGVcLWFuZFwtZWRpdDsKK+emj+WIqSA8IFwobWF0ZXJpYWxcKVwtd2VsZmFyZTsKK+ewoeefreS7i+e0uSA8IGJyaWVmXC1pbnRyb2R1Y3Rpb247CivmtbfngaPmiLDniK0gPCBcKHBlcnNpYW5cKVwtZ3VsZlwtd2FyOwor5Zyw55CD5aSn5rCjIDwgZWFydGgnJ3NcLWF0bW9zcGhlcmU7CivlkIzlrbggPCBcKGZlbGxvd1wpXC1jbGFzc21hdGU7CivkuI3lkowgPCBub3RcLWdldFwtYWxvbmdcLXdlbGw7CivkuI3ljq0gPCBub3RcLW1pbmRcLWRvaW5nXC1zdGg7Civlj43mhJ8gPCBcKHN0cm9uZ2x5XClcLWRpc2xpa2U7Civph53lsI0gPCBpblwtY29ubmVjdGlvblwtd2l0aDsKK+acjeWLmeizqumHjyA8IHF1YWxpdHlcLW9mXC1zZXJ2aWNlOwor5Y+m5a+EIDwgdG9cLW1haWxcLXNlcGFyYXRlbHk7CivororlubsgPCBjaGFuZ2VcLWlycmVndWxhcmx5Owor5aCx6ZecIDwgZGVjbGFyZVwtYXRcLWN1c3RvbXM7CivnvbLlkI0gPCBzaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor6YGK6Ka9IDwgdG9cLWdvXC1zaWdodFwtc2VlaW5nOwor5LiN5pS76Ieq56C0IDwgY29sbGFwc2VcLW9mXC1pdHNlbGY7CivmlofljJblgrPntbEgPCBjdWx0dXJhbFwtdHJhZGl0aW9uOwor6aGv56S65ZmoIDwgbW9uaXRvclwtXChjb21wdXRlclwpOwor55q/IDwgc2hhbGxvd1wtY29udGFpbmVyOwor5bGTIDwgZ2lnYW50aWNcLXN0cmVuZ3RoOwor5rS+IDwgc2Nob29sXC1vZlwtdGhvdWdodDsKK+WnkyA8IG9uZScnc1wtZmFtaWx5XC1uYW1lOwor54WOIDwgZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor6KWBIDwgc3dhZGRsaW5nXC1jbG90aGVzOwor5ZOIIDwgc291bmRcLW9mXC1sYXVnaHRlcjsKK+m4miA8IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivmrKcgPCB0cmFuc2xpdFwuXDpcLWV1cm9wZTsKK+iuoiA8IGRyYXdcLXVwXC1hZ3JlZW1lbnQ7CivlgY8gPCBpbmNsaW5lZFwtb25lXC1zaWRlOwor5q2UIDwgYmxvd1wtdGhyb3VnaFwtbm9zZTsKK+WfuSA8IGJhbmtcLXVwXC13aXRoXC1kaXJ0Owor5ryrIDwgb3ZlcmZsb3dcLW9mXC13YXRlcjsKK+S+oCA8IGNoaXZhbHJvdXNcLXBlcnNvbjsKK+WnhiA8IGNoaWxkJydzXC1nb3Zlcm5lc3M7Civnm5IgPCBzbWFsbFwtYm94XC1vclwtY2FzZTsKK+WEkiA8IGNvbmZ1Y2lhblwtc2Nob2xhcjsKK+mYqiA8IGhpbGxzaWRlXC1mYXJtbGFuZDsKK+i/iCA8IHRha2VcLWFcLWJpZ1wtc3RyaWRlOwor5o2PIDwgcGlja1wtd2l0aFwtZmluZ2VyczsKK+a1mSA8IHpoZWppYW5nXC1wcm92aW5jZTsKK+etpyA8IGJhbWJvb1wtd2F0ZXJcLXBpcGU7CivoiZggPCBjb3VudGVyXC1mb3JcLXNoaXBzOwor6LaBIDwgdGFrZVwtYWR2YW50YWdlXC1vZjsKK+mJoiA8IGVhcnRoZW53YXJlXC1iYXNpbjsKK+iTrCA8IHR5cGVcLW9mXC1yYXNwYmVycnk7CivovpYgPCBsaW5jaHBpblwtb2ZcLXdoZWVsOwor6YCFIDwgbWVldFwtdW5leHBlY3RlZGx5Owor6YWjIDwgZW5qb3lcLWludG94aWNhbnRzOwor6aW6IDwgc3R1ZmZlZFwtZHVtcGxpbmdzOwor5ZKPIDwgc2luZ1wtc29uZ1wtb3JcLXBvZW07CivmkIAgPCBnaXZlXC1oZWxwaW5nXC1oYW5kOwor5o22IDwgc3RyaWtlXC13aXRoXC1zdGljazsKK+WIqCA8IGNhcnBlbnRlcicnc1wtcGxhbmU7CivooJUgPCBldW1lbmVzXC1wb2xpZm9taXM7CivltIYgPCBrb25ndG9uZ1wtbW91bnRhaW47Civnm4UgPCBzbWFsbFwtY3VwXC1vclwtYm93bDsKK+aihiA8IHdhdGNobWFuJydzXC1yYXR0bGU7CivltYcgPCBtb3VudGFpblwtaW5cLWhlbmFuOwor6IC3IDwgZWFyc1wtaGFuZ2luZ1wtZG93bjsKK+e+jCA8IHFpYW5nXC1uYXRpb25hbGl0eTsKK+iLniA8IGFcLXZhcmlldHlcLW9mXC1ydXNoOwor6JecIDwgY2hlbm9wb2RpdW1cLWFsYnVtOwor6ImEIDwgc3Rlcm5cLW9mXC1hXC12ZXNzZWw7Civls4EgPCB5ZWxsb3dcLWRpcnRcLW1vdW50Owor6ZWUIDwgaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+myqyA8IGNhcmFzc2l1c1wtYXVyYXR1czsKK+m+hyA8IHRvXC1zaG93XC10aGVcLXRlZXRoOwor5rKtIDwgcml2ZXJcLWluXC1zaGFudHVuZzsKK+amqyA8IG1vcnRpc2VcLWFuZFwtdGVub247CivokIsgPCBsdXh1cmlhbnRcLWZvbGlhZ2U7Civphq4gPCByZWxpZ2lvdXNcLXNlcnZpY2U7CivniZ0gPCBmZW1hbGVcLW9mXC1zcGVjaWVzOwor5pu3IDwgd2h5XD9cLXdoYXRcP1wtd2hlcmVcPzsKK+eRtyA8IGZpbmVcLXF1YWxpdHlcLWphZGU7CivogKYgPCBwbG93XC1zaWRlXC1ieVwtc2lkZTsKK+m4tiA8IHRoZVwtZWFzdGVyblwtZWdyZXQ7Civnr6YgPCBmaW5lXC10b290aGVkXC1jb21iOwor5aaBIDwgYWN0XC1hc1wtZ29cLWJldHdlZW47CivojaUgPCBhXC1jb3VudHlcLWluXC1oZW5hbjsKK+aIvSA8IHRvXC1iYWxlXC1vdXRcLXdhdGVyOwor5p6zIDwgdHJpZm9saWF0ZVwtb3JhbmdlOwor5qSQIDwgemVsa293YVwtYWN1bWluYXRhOwor6a2JIDwgYVwta2luZFwtb2ZcLW1vbnN0ZXI7Civpop4gPCB0aGVcLXRlbXBvcmFsXC1ib25lOwor6ICpIDwgdG9cLXBsb3VnaFwuXC10b1wtc293Owor5buoIDwgZ292ZXJubWVudFwtb2ZmaWNlOwor6J+uIDwgdHlwZVwtb2ZcLWVhcnRod29ybTsKK+ibsSA8IGtpbmRcLW9mXC1idXR0ZXJmbHk7CivnprMgPCBwcmF5XC1vclwtc2FjcmlmaWNlOwor556iIDwgZXllc2lnaHRcLW9ic2N1cmVkOwor6JS4IDwgY291bnRlclwtZm9yXC1wbGFudDsKK+iehSA8IFwoaW50ZXN0aW5hbFwtd29ybVwpOwor56WnIDwgYW5cLWFuY2VzdHJhbFwtaGFsbDsKK+iggyA8IHRoZVwtc29saXRhcnlcLXdhc3A7CivogYMgPCBlYXJzXC13aXRob3V0XC1yaW1zOwor6ICcIDwgc3BhZGVcLXNoYXBlZFwtdG9vbDsKK+aFnSA8IGRvXC1ldmlsXC1pblwtc2VjcmV0Owor5bqzIDwgYVwtbG93XC1idWlsdFwtaG91c2U7CivpvKIgPCBhXC12YXJpZXR5XC1vZlwtbW9sZTsKK+iauiA8IGFcLWJvYVwtY29uc3RyaWN0b3I7CivnoYcgPCBhXC1raW5kXC1vZlwtbWluZXJhbDsKK+ehrSA8IGFcLWNydWRlXC1zYWx0cGV0cmU7Civog6ggPCBhXC1raW5kXC1vZlwtcHJvdGVpbjsKK+WklueVjCA8IHRoZVwtb3V0c2lkZVwtd29ybGQ7CivororlpKkgPCBjaGFuZ2VcLW9mXC13ZWF0aGVyOwor5q+U5r+VIDwgc3BlY2lmaWNcLWh1bWlkaXR5Owor5Y+v6KGM5oCn56CU56m2IDwgZmVhc2liaWxpdHlcLXN0dWR5Owor57ay57Wh6YG356e7IDwgbmV0d29ya1wtbWlncmF0aW9uOwor6Zu76IWm6Luf5Lu2IDwgY29tcHV0ZXJcLXNvZnR3YXJlOwor5b+F5L+u6KqyIDwgYVwtcmVxdWlyZWRcLWNvdXJzZTsKK+W+t+aWhyA8IGdlcm1hblwtXChsYW5ndWFnZVwpOwor5YOF5qyh5LqOIDwgc2Vjb25kXC1vbmx5XC10b1wuXC5cLjsKK+acnemuruiqniA8IGtvcmVhblwtXChsYW5ndWFnZVwpOwor6LOH5paZ5YKz6Ly4IDwgZGF0YVwtdHJhbnNtaXNzaW9uOwor5Y2R5oCvIDwgbWVhblwtYW5kXC1jb3dhcmRseTsKK+WFtemmrCA8IHRyb29wc1wtYW5kXC1ob3JzZXM7Civmlbjmk5rluqvou5/ku7YgPCBkYXRhYmFzZVwtc29mdHdhcmU7Civnoqnlo6sgPCBtYXN0ZXInJ3NcLVwoZGVncmVlXCk7Civopb/oo6HniL7lrZfmr40gPCBjeXJpbGxpY1wtYWxwaGFiZXQ7CivlnIvpmLLpg6jplbcgPCBkZWZlbmNlXC1zZWNyZXRhcnk7Civnmb3pqqggPCBib25lc1wtb2ZcLXRoZVwtZGVhZDsKK+W3qOWkp+Wjk+WKmyA8IGVub3Jtb3VzXC1wcmVzc3VyZTsKK+eFp+ebuCA8IHRha2VcLWFcLXBob3RvZ3JhcGg7Civnmb3po68gPCBwbGFpblwtY29va2VkXC1yaWNlOwor5pel5a2QIDwgYVwtXChjYWxlbmRhclwpXC1kYXRlOwor5bu656+J5qWtIDwgYnVpbGRpbmdcLWluZHVzdHJ5Owor5pS/5rK75rCj5YCZIDwgcG9saXRpY2FsXC1jbGltYXRlOwor5buj5Z+f57ay6LevIDwgd2lkZVwtYXJlYVwtbmV0d29yazsKK+aVmeWPi+Wkp+acgyA8IGNodXJjaFwtY29uZmVyZW5jZTsKK+e+juWci+iIquepuuWFrOWPuCA8IGFtZXJpY2FuXC1haXJsaW5lczsKK+aVmeadkCA8IHRlYWNoaW5nXC1tYXRlcmlhbDsKK+mEsOWciyA8IGJvcmRlcmluZ1wtY291bnRyeTsKK+apn+ijvSA8IG1hY2hpbmVcLXByb2Nlc3NlZDsKK+mVt+mBlCA8IGV4dGVuZFwtYXNcLWxvbmdcLWFzOwor5YyW5aadIDwgdG9cLXB1dFwtb25cLW1ha2VcLXVwOwor6Zuj5o2xIDwgdHJ5aW5nXCxcLWRpZmZpY3VsdDsKK+Wkp+WxgCA8IGdlbmVyYWxcLXNpdHVhdGlvbjsKK+aSkui/puWIqeS6nuabuCA8IGJvb2tcLW9mXC16ZWNoYXJpYWg7CivmlY/mhJ8gPCBzZW5zaXRpdmVcLVwoaXNzdWVcKTsKK+e0oee5lCA8IHNwaW5uaW5nXC1cKHRocmVhZFwpOwor5aSn5aSaIDwgZm9yXC10aGVcLW1vc3RcLXBhcnQ7CivlvpLliJEgPCBcKHByaXNvblwpXC1zZW50ZW5jZTsKK+i7jeS6i+WKm+mHjyA8IG1pbGl0YXJ5XC1zdHJlbmd0aDsKK+azouWjq+mgk+Wkp+WtuCA8IGJvc3RvblwtdW5pdmVyc2l0eTsKK+aUr+aMgSA8IHRvXC1iZVwtaW5cLWZhdm9yXC1vZjsKK+e0m+e0myA8IG9uZVwtYWZ0ZXJcLWFub3RoZXI7CivpuqXlhYvntq0gPCBcKHRpbW90aHlcKVwtbWN2ZWlnaDsKK+aHieeUqOWxpCA8IGFwcGxpY2F0aW9uXC1sYXllcjsKK+ahjOWIpeaelyA8IFwoY2hhcmxpZVwpXC1jaGFwbGluOwor6Zu76Kmx5pyN5YuZIDwgdGVsZXBob25lXC1zZXJ2aWNlOwor6JOL54i+6KqeIDwgZ2FlbGljXC1cKGxhbmd1YWdlXCk7CivkuqTmj5vku6XlpKrntrLntaEgPCBzd2l0Y2hlZFwtZXRoZXJuZXQ7CivlpJblnIsgPCBmb3JlaWduXC1cKGNvdW50cnlcKTsKK+mYv+aLieS8r+iqniA8IGFyYWJpY1wtXChsYW5ndWFnZVwpOwor5o2V6aOfIDwgY2F0Y2hcLWFuZFwtZmVlZFwtb247CivmlK/mn7HnlKLmpa0gPCBtYWluc3RheVwtaW5kdXN0cnk7CivnhKHmiYDorIIgPCB0b1wtYmVcLWluZGlmZmVyZW50Owor5aSa56uZ5Zyw5Z2AIDwgbXVsdGljYXN0XC1hZGRyZXNzOwor6b2EIDwgcmVkXC1zb3Jlc1wtb25cLW5vc2U7CivntpPmv5/lronlhaggPCBlY29ub21pY1wtc2VjdXJpdHk7Civpu58gPCBibGFja1wtYW5kXC1zaGluaW5nOwor6bmBIDwgc3BlY2llc1wtb2ZcLXBpZ2VvbjsKK+i8lOiqsiA8IHN1YnNpZGlhcnlcLWNvdXJzZTsKK+WkluS6pOmiqOazoiA8IGRpcGxvbWF0aWNcLWNyaXNpczsKK+m1tSA8IHNjb3BzXC1zZW1pdG9ycXVlczsKK+WFq+iCoSA8IGVpZ2h0XC1cLXBhcnRcLWVzc2F5Owor5bmz5rCRIDwgXChvcmRpbmFyeVwpXC1wZW9wbGU7Civpg4rljYAgPCBzdWJ1cmJhblwtZGlzdHJpY3Q7CivlhanogIUgPCBib3RoXC1zaWRlc1x8dGhpbmdzOwor6a64IDwgc2NpYWVuYVwtYWxiaWZsb3JhOwor6a2rIDwgdGhlXC15b3VuZ1wtb2ZcLWZpc2g7Civpg6jku70gPCBwYXJ0XC1cKG9mXC1hXC13aG9sZVwpOwor6au9IDwgdG9cLWRyZXNzXC10aGVcLWhhaXI7Civpm7voqbHntrLot68gPCB0ZWxlcGhvbmVcLW5ldHdvcms7Civnmb3ogokgPCBwbGFpblwtYm9pbGVkXC1wb3JrOwor6aWpIDwgc2FjcmZpY2lhbFwtdmljdGltOwor6YKK5aGeIDwgZnJvbnRpZXJcLWZvcnRyZXNzOwor6aSCIDwgdG9cLW9idGFpblwtYnlcLWhvb2s7Civnn7PliLsgPCBzdG9uZVwtaW5zY3JpcHRpb247CivpnrggPCBsZWF0aGVyXC1hcm1cLWd1YXJkOwor6Z2/IDwgdGhlXC1sZWdcLW9mXC1hXC1ib290Owor57eK5a+GIDwgaW5zZXBhcmFibHlcLWNsb3NlOwor6Zq4IDwgYmVcLXN1YnNlcnZpZW50XC10bzsKK+apn+WZqOS6uiA8IG1lY2hhbmljYWxcLXBlcnNvbjsKK+mWqiA8IHRvXC1sb3NlXC1sb3N0XC1pdGVtOwor6YKK5Y2hIDwgYm9yZGVyXC1jaGVja3BvaW50Owor57ep5ZKMIDwgdG9cLWVhc2VcLVwodGVuc2lvblwpOwor5Y+N6YGO5L6G6KqqIDwgb25cLXRoZVwtb3RoZXJcLWhhbmQ7Civntq3mjIHosrsgPCBtYWludGVuYW5jZVwtY29zdHM7CivpiqAgPCByaG9kaXVtXC1ydXRoZW5pdW07Civnt6jljbAgPCBjb21waWxlXC1hbmRcLXByaW50Owor6YmVIDwgcHJvbWV0aGl1bVwtYnJvbnplOwor6L6m5YWs6Ieq5YuV5YyWIDwgb2ZmaWNlXC1hdXRvbWF0aW9uOwor6YizIDwgY29sdW1iaXVtXC1uaW9iaXVtOwor5Yex5peLIDwgcmV0dXJuXC10cml1bXBoYW50Owor5q2Q5rSy6Kqe6KiAIDwgZXVyb3BlYW5cLWxhbmd1YWdlOwor54CJ6IKaIDwgdG9cLWhhdmVcLWRpYXJyaG9lYTsKK+mGrSA8IG1vdWxkc1wtb25cLWxpcXVpZHM7CivphpEgPCB0b1wtc3RyYWluXC1zcGlyaXRzOwor6YW6IDwgZHJpbmtcLXdpdGhcLW90aGVyczsKK+e2sue1oeioreWCmSA8IG5ldHdvcmtcLWVxdWlwbWVudDsKK+eZveecvCA8IHN1cGVyY2lsaW91c1wtbG9vazsKK+adv+aTpuWFkiA8IGJsYWNrYm9hcmRcLWVyYXNlcjsKK+aXpeebiuWinuWKoCA8IHRvXC1pbmNyZWFzZVwtZGFpbHk7Civoso0gPCBhXC1mb3hcLWxpa2VcLWFuaW1hbDsKK+ecvOWwliA8IHRvXC1oYXZlXC1nb29kXC1leWVzOwor6LGLIDwgY2VyZW1vbmlhbFwtdmVzc2VsOwor5aCx5bizIDwgcmVuZGVyXC1hblwtYWNjb3VudDsKK+e2k+a/n+WKm+mHjyA8IGVjb25vbWljXC1zdHJlbmd0aDsKK+imvCA8IGV4cGxhaW5cLWluXC1kZXRhaWw7CivlkIzmgKfmiIAgPCBob21vc2V4dWFsXC1cKGxvdmVcKTsKK+ijnOeZvCA8IHN1cHBseVwtYWdhaW5cLVwoc3RoOwor6K6K5pys5Yqg5Y6yIDwgYmVjb21lXC1hZ2dyYXZhdGVkOwor5LiN5Y+K54mp5YuV6KmeIDwgaW50cmFuc2l0aXZlXC12ZXJiOwor5YWJ57qW5o6l5Y+jIDwgb3B0aWNhbFwtaW50ZXJmYWNlOwor6Ku+6LKd54i+5ZKM5bmz542OIDwgbm9iZWxcLXBlYWNlXC1wcml6ZTsKK+iclCA8IGlubGFpZFwtc2hlbGxcLXdvcms7CivmiorpoK0gPCBsYWJvdXJcLWNvbnRyYWN0b3I7CivllYbmpa3ooYzngrogPCBidXNpbmVzc1wtYWN0aXZpdHk7Civou43osrvplovmlK8gPCBtaWxpdGFyeVwtc3BlbmRpbmc7CivomLUgPCBwaHlzYWxpc1wtYW5ndWxhdGE7CivmgKfpqLfmk74gPCBzZXh1YWxcLWhhcmFzc21lbnQ7Civol6ggPCBraW5kXC1vZlwtcmFzcGJlcnJ5Owor6JW4IDwgd2F0ZXJcLWxpbHknJ3NcLWxlYWY7CivolZEgPCB2YWxlcmlhbmFcLXZpbGxvc2E7Civou5/ku7blubPoh7ogPCBzb2Z0d2FyZVwtcGxhdGZvcm07CivokY4gPCBodW11bHVzXC1qYXBvbmljdXM7CivlsY/pmpwgPCBwcm90ZWN0aXZlXC1zY3JlZW47Civoj6MgPCBhcnRlbWlzaWFcLWFwaWFjZWE7CivojpsgPCBzdGFsa3NcLW9mXC1ncmFzc2VzOwor54Gr5pifIDwgbWFyc1wtXCh0aGVcLXBsYW5ldFwpOwor6IyNIDwgdG9cLWJlXC1jaXJjdW1zcGVjdDsKK+mojummrCA8IHJpZGVcLW9uXC1ob3JzZWJhY2s7CivmqavmlrfniakgPCB0cmFuc3ZlcnNlXC1vYmplY3Q7CivmioTpjIQgPCB0b1wtbWFrZVwtYVwtY29weVwtb2Y7Civmj63mm4kgPCBhbm5vdW5jZVwtcHVibGljbHk7CivnvZsgPCBsYXJnZVwtZmlzaGluZ1wtbmV0Owor55m95bGI6I+cIDwgZ3JlYXRlclwtY2VsYW5kaW5lOwor57iwIDwgYmFuZFwtZm9yXC10aGVcLWhhaXI7Civnto4gPCBzaWxrXC1icmFpZGVkXC1jb3JkOwor5oyJ5ZyW57Si6amlIDwgdHJ5XC10b1wtbG9jYXRlXC1zdGg7CivntKwgPCBraW5kXC1vZlwtdGhpblwtc2lsazsKK+eXheeoiyA8IGNvdXJzZVwtb2ZcLWRpc2Vhc2U7CivlgrPovLjnjocgPCB0cmFuc21pc3Npb25cLXJhdGU7CivnsbggPCBwb3dkZXJ5XC1zdWJzdGFuY2U7CivluIzkvK/kvoboqp4gPCBoZWJyZXdcLVwobGFuZ3VhZ2VcKTsKK+exkyA8IGJpZ1wtd2lubm93XC1iYXNrZXQ7CivplovnmbzpgLHmnJ8gPCBkZXZlbG9wbWVudFwtY3ljbGU7Civnr6ggPCBjb2Fyc2VcLWJhbWJvb1wtbWF0Owor55Sz6Ki0IDwgdG9cLWFwcGVhbFwtXCh0b1wtc2JcKTsKK+S8uuacjeWZqCA8IHNlcnZlclwtXChjb21wdXRlclwpOwor5L6b6ZyAIDwgc3VwcGx5XC1hbmRcLWRlbWFuZDsKK+WcsOauvCA8IHRoZVwtZWFydGgnJ3NcLWNydXN0Owor6ZaJ5bmVIDwgdGhlXC1jdXJ0YWluXC1mYWxsczsKK+eliiA8IHJpdmVyXC1pblwtc2hhbmRvbmc7Civnm5vlkI0gPCBmYW1vdXNcLXJlcHV0YXRpb247Civlt6Xlp5QgPCB3b3JraW5nXC1jb21taXR0ZWU7CivmiLDnlaXlpKXkvLQgPCBzdHJhdGVnaWNcLXBhcnRuZXI7CivnrYboqr8gPCBcKG9mXC13cml0aW5nXClcLXRvbmU7CivlsZXopr0gPCB0b1wtcHV0XC1vblwtZGlzcGxheTsKK+eZveW4gyA8IHBsYWluXC13aGl0ZVwtY2xvdGg7CivpnZzohIjlkLjmr5IgPCBpbnRyYXZlbmVvdXNcLWRydWc7CivnmLUgPCBhXC13YXN0aW5nXC1kaXNlYXNlOwor54Sh5pyf5b6S5YiRIDwgbGlmZVwtaW1wcmlzb25tZW50Owor5bel5ZywIDwgY29uc3RydWN0aW9uXC1zaXRlOwor55KrIDwgcGVuZGFudFwtb3JuYW1lbnRzOwor55m+5YiG5LmL55m+IDwgYVwtaHVuZHJlZFwtcGVyY2VudDsKK+ajleiJsiA8IGJyb3duXC1cKHRoZVwtY29sb3JcKTsKK+evh+ebriA8IHRhYmxlXC1vZlwtY29udGVudHM7Civnjp4gPCBhblwtaW5mZXJpb3JcLWFnYXRlOwor6Iad5LiK5Z6L6Zu76IWmIDwgbGFwdG9wXC1cKGNvbXB1dGVyXCk7CivokIrmuqvmlq/ln7ogPCBcKG1vbmljYVwpXC1sZXdpbnNreTsKK+eGgCA8IHRoZVwtYmxhemVcLW9mXC1maXJlOwor5L2P6ZmiIDwgdG9cLWJlXC1pblwtaG9zcGl0YWw7CivlgrPovLjmnI3li5kgPCB0cmFuc3BvcnRcLXNlcnZpY2U7CivmkI/li5UgPCBiZWF0XC1yaHl0aG1pY2FsbHk7CivmjqXlvoUgPCByZWNlaXZlXC1cKGFcLXZpc2l0XCk7CivngY4gPCBtb3ZlbWVudFwtb2ZcLXdhdGVyOwor5YWs5YuZIDwgb2ZmaWNpYWxcLWJ1c2luZXNzOwor5riwIDwgZm9ybWluZ1wtb3JcLXJpc2luZzsKK+aLmOeVmSA8IGRldGFpblwtXChwcmlzb25lclwpOwor5rS2IDwgdGhlXC1ydXNoXC1vZlwtd2F0ZXI7CivntpzlkIjluIPnt5ogPCBpbnRlZ3JhdGVkXC13aXJpbmc7CivlnIvpmpvms5UgPCBpbnRlcm5hdGlvbmFsXC1sYXc7CivlhazkvYggPCBwdWJsaWNseVwtYW5ub3VuY2U7CivlhafkuoIgPCBpbnRlcm5hbFwtZGlzb3JkZXI7CivooZvmmJ8gPCBcKHNwYWNlXClcLXNhdGVsbGl0ZTsKK+aLjeeFpyA8IHRvXC10YWtlXC1hXC1waWN0dXJlOwor55eF5pWFIDwgZGllXC1vZlwtYW5cLWlsbG5lc3M7CivooZ3mk4ogPCBcKGJlXC11bmRlclwpXC1hdHRhY2s7CivplbfkuYUgPCBcKGZvclwtYVwpXC1sb25nXC10aW1lOwor5pygIDwgY29sb3JcLW9mXC10aGVcLW1vb247CivlgrPovLjpgJrpgZMgPCB0cmFuc3BvcnRcLWNoYW5uZWw7CivmlL/lupzpg6jploAgPCBnb3Zlcm5tZW50XC1icmFuY2g7CivmmpQgPCBuYW1lXC1vZlwtYVwtY291bnRyeTsKK+mMhOmfsyA8IFwoc291bmRcKVwtcmVjb3JkaW5nOwor5paw6IGe6YCx5YiKIDwgbmV3c3dlZWtcLW1hZ2F6aW5lOwor5pSwIDwgdG90YWxseVwtZXhoYXVzdGVkOwor5L+d56WQIDwgYmxlc3NcLWFuZFwtcHJvdGVjdDsKK+aOqyA8IGJlXC1vblwtbmlnaHRcLXdhdGNoOwor5o235aCxIDwgcmVwb3J0XC1vZlwtc3VjY2VzczsKK+aNpSA8IHRvXC1iZW5kXC10aGVcLXdyaXN0Owor5ZyY5ZyTIDwgdG9cLWhhdmVcLWFcLXJldW5pb247Civnm7TmjqXnq7bniK0gPCBkaXJlY3RcLWNvbXBldGl0b3I7CivkuK3lpK7lp5Tlk6HmnIMgPCBjZW50cmFsXC1jb21taXR0ZWU7CivphqvnmYLntpPpqZcgPCBtZWRpY2FsXC1leHBlcnRpc2U7Civlu6Pmkq3lnLDlnYAgPCBicm9hZGNhc3RcLWFkZHJlc3M7CivmhLAgPCBjbGVhcm5lc3NcLW9mXC1taW5kOwor5o6I5YubIDwgdG9cLWF3YXJkXC1hblwtaG9ub3I7Civlk4Dps7QgPCBhXC1wbGFpbnRpdmVcLXdoaW5lOwor55Sf54mp5q2m5ZmoIDwgYmlvbG9naWNhbFwtd2VhcG9uOwor5byWIDwgcGhvbmV0aWNcLWZvclwtJyd0ZScnOwor5oeC6KGMIDwgdG9cLWtub3dcLXRoZVwtcm9wZXM7Civou43ljYAgPCBhXC1taWxpdGFyeVwtcmVnaW9uOwor5L+d54i+IDwgXChhXC1wZXJzb25hbFwtbmFtZVwpOwor6LKh6ZalIDwgZmluYW5jaWFsXC1tYWduYXRlOwor5pqX54Sh5aSp5pelIDwgY29tcGxldGVcLWRhcmtuZXNzOwor5bCoIDwgc2hhZ2d5XC1oYWlyZWRcLWRvZzsKK+aLjeaUnSA8IFwoc2hvb3RcLWFcKVwtcGljdHVyZTsKK+S+teaIquiAhSA8IFwoY29tcHV0ZXJcKVwtaGFja2VyOwor6ICD6amXIDwgXChwdXRcLXRvXC10aGVcKVwtdGVzdDsKK+S/nea6qyA8IGhlYXRcLXByZXNlcnZhdGlvbjsKK+mrmOe0mueglOeptiA8IGFkdmFuY2VkXC1yZXNlYXJjaDsKK+Wxj+awoyA8IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor6Ieq5Li757O757WxIDwgYXV0b25vbW91c1wtc3lzdGVtOwor55m96YeR5ryi5a6uIDwgYnVja2luZ2hhbVwtcGFsYWNlOwor6YGL6KGM54uA5rOBIDwgb3BlcmF0aW9uYWxcLXN0YXRlOwor5aSKIDwga2FuZ3hpXC1yYWRpY2FsXC0zNTsKK+WbsOmbo+WcqOaWvCA8IHRoZVwtcHJvYmxlbVwtaXNcLlwuXC47Civml6XogLPmm7zoqp4gPCBnZXJtYW5pY1wtbGFuZ3VhZ2U7CivnqJ/os6YgPCBuYXR1cmFsXC1lbmRvd21lbnQ7Civnl4XljbEgPCBiZVwtY3JpdGljYWxseVwtaWxsOwor5YKz6Ly45Y2U5a6aIDwgdHJhbnNmZXJcLXByb3RvY29sOwor5Za/IDwgY2hpcnBpbmdcLW9mXC1iaXJkczsKK+WWvCA8IHVzZWRcLXBob25ldGljYWxseTsKK+WWuSA8IGNoZW1pY2FsXC1jb21wb3VuZDsKK+S9teeZvCA8IGJlXC1jb21wbGljYXRlZFwtYnk7Civlk7UgPCB0aGVcLWNyeVwtb2ZcLWFcLWJpcmQ7Civlk7QgPCBjcnlpbmdcLW9mXC1pbmZhbnRzOwor6LKh6LK/IDwgZmluYW5jZVwtYW5kXC10cmFkZTsKK+Wkp+WIgOmXiuaWpyA8IGJvbGRcLWFuZFwtZGVjaXNpdmU7CivnibnliKXlvoXpgYcgPCBzcGVjaWFsXC10cmVhdG1lbnQ7CivlkKIgPCB2b21pdGluZ1wtb2ZcLWFcLWRvZzsKK+WIneWtuOiAhSA8IGJlZ2lubmluZ1wtc3R1ZGVudDsKK+WwiOeUqOe2sui3ryA8IGRlZGljYXRlZFwtbmV0d29yazsKK+ilv+eOi+avjSA8IG5hbWVcLW9mXC1hXC1nb2RkZXNzOwor5LqU6KeS5aSn5qiT5a6Y5ZOhIDwgcGVudGFnb25cLW9mZmljaWFsOwor5pWY5Yip5Lqe5paHIDwgc3lyaWFjXC1cKGxhbmd1YWdlXCk7CivmvKLlrZcgPCBjaGluZXNlXC1jaGFyYWN0ZXI7CivlronnqakgPCBzbW9vdGhcLWFuZFwtc3RlYWR5Owor5YCIIDwgdG9cLWluZHVjZVwtdG9cLWNvbWU7Civkv4ggPCB0b1wtaW5mb3JtXC1xdWlja2x5Owor5Yiw6YKj5YCL5pmC5YCZIDwgdW50aWxcLXRoaXNcLW1vbWVudDsKK+S7giA8IHN1cnBsdXNcLW9yXC1leGNlc3M7CivlnKjpoK3niYggPCBvblwtdGhlXC1mcm9udFwtcGFnZTsKK+WwiOalrSA8IHNwZWNpYWxpemVkXC1maWVsZDsKK+S5qiA8IGFcLWJlbmRcLWluXC1hXC1yaXZlcjsKK+i2qOaZgiA8IHRvXC1mb2xsb3dcLWZhc2hpb247CivktrAgPCBmZWF0aGVyXC1vcm5hbWVudHM7CivktpYgPCBkaXNlYXNlXC1vZlwtdG9uZ3VlOwor5LWcIDwgdG9cLXBsb3VnaFwtYW5kXC1zb3c7CivktIogPCB0aGVcLWNyb3dcLXBoZWFzYW50Owor5LuN6IiKIDwgc3RpbGxcLVwocmVtYWluaW5nXCk7Civks6QgPCBhXC1raW5kXC1vZlwtc3RyYW5nZTsKK+SzmSA8IGFcLWVncmV0XC1saWtlXC1iaXJkOwor5ouX5Y+jIDwgaGFyZFwtdG9cLXByb25vdW5jZTsKK+SvpSA8IHdpdGhcLWFcLWhpZ2hcLXNrdWxsOwor5K+iIDwgcGFydGlhbFwtcGFyYWx5c2lzOwor5K6rIDwgYVwtYmlnXC1tdWxlXC1hblwtYXNzOwor5K6aIDwgZGlzZWFzZXNcLW9mXC1ob3JzZTsKK+SukCA8IGluXC1nb29kXC1jb25kaXRpb247CivkrZQgPCBzdGVhbWVkXC1kdW1wbGluZ3M7CivkrLAgPCBsaWdodFwtcmVmcmVzaG1lbnQ7CivkrJUgPCBzb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+SsjSA8IHRoZVwtc291bmRcLW9mXC13aW5kOwor5KyGIDwgYVwtYmx1c3RlcmluZ1wtZ2FsZTsKK+SrpiA8IHRoZVwtbG93ZXJcLWphd2JvbmU7Civkq58gPCBmYWNpYWxcLWNvbXBsZXhpb247Civkq40gPCB0b1wtYm93XC1vbmUnJ3NcLWhlYWQ7Civkq4kgPCBmYWNpYWxcLWFwcGVhcmFuY2U7CivkuI3mraHogIzmlaMgPCBwYXJ0XC1vblwtYmFkXC10ZXJtczsKK+SolSA8IHBvdXJpbmdcLXdpdGhcLXJhaW47CivkuK3oj6/msJHlnIsgPCByZXB1YmxpY1wtb2ZcLWNoaW5hOwor5Ke6IDwgdGhlXC1tYWxlXC1vZlwtYmlyZHM7CivkpqogPCBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+WWmOawoyA8IHRvXC1icmVhdGhlXC1kZWVwbHk7CivkpoMgPCB0b1wtZGlnXC13aXRoXC1hXC1ob2U7Civko7sgPCBjb2xvclwtb2ZcLXRoZVwtd2luZTsKK+aLnOWAkiA8IHByb3N0cmF0ZVwtb25lc2VsZjsKK+azouiYreiqniA8IHBvbGlzaFwtXChsYW5ndWFnZVwpOwor5KKdIDwgdGhlXC1uZXh0XC1pblwtb3JkZXI7CivkobcgPCBub2lzZVwtb2ZcLXZlaGljbGVzOwor5KGqIDwgZmFuXC1vZlwtYVwtY2FycmlhZ2U7CivkoZkgPCBhblwtYXJtZWRcLWNhcnJpYWdlOwor5J6VIDwgY29sb3JcLW9mXC10aGVcLWZpcmU7CivknoIgPCBmYWlybHlcLXByb3NwZXJvdXM7CivmiY3mgJ0gPCBpbWFnaW5hdGl2ZVwtcG93ZXI7CivknbogPCB0b1wtcGllcmNlXC10aHJvdWdoOwor5J2zIDwgdG9cLWtpbGxcLWZvclwtbW9uZXk7CivknbIgPCBmYXJld2VsbFwtcHJlc2VudHM7CivkuKbpp5XpvYrpqYUgPCBydW5cLW5lY2tcLWFuZFwtbmVjazsKK+azoumfsyA8IGJvZWluZ1wtXChhaXJjcmFmdFwpOwor6L2f54K45qmfIDwgYm9tYmVyXC1cKGFpcmNyYWZ0XCk7CivknKIgPCBjcnVlbFwtYW5kXC12aW9sZW50Owor6Zuj5Lul5oeJ5LuYIDwgaGFyZFwtdG9cLWRlYWxcLXdpdGg7CivkmqAgPCB1bmJyb2tlblwtZmlyZXdvb2Q7Civkmp0gPCBuZXdcLWdyb3dpbmdcLWhvcm5zOwor5JqaIDwgaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkmpEgPCB0b1wtc3RlYWxcLWFcLWdsYW5jZTsKK+SagCA8IHRvXC1zZWVcLXN0ZWFsdGhpbHk7CivkmbQgPCB0b1wtc29hclwtYXNcLWFcLWJpcmQ7CivkmaogPCBhXC1sb29wXC1mb3JcLWJ1dHRvbjsKK+a0m+adieejr+aZguWgsSA8IGxvc1wtYW5nZWxlc1wtdGltZXM7CivkmI4gPCBuYW1lXC1vZlwtYW5cLWluc2VjdDsKK+ehrOS7tuW5s+iHuiA8IGhhcmR3YXJlXC1wbGF0Zm9ybTsKK+SXuSA8IGhhaXJ5XC1jYXRlcnBpbGxhcjsKK+S9nOalrSA8IHNjaG9vbFwtYXNzaWdubWVudDsKK+WumOaWueiqnuiogCA8IG9mZmljaWFsXC1sYW5ndWFnZTsKK+m8k+iIniA8IGhlYXJ0ZW5pbmdcLVwobmV3c1wpOwor5JWnIDwgeml6YW5pYVwtbGF0aWZvbGlhOwor5JWGIDwgcm91bmRcLXN0cmF3XC1xdWlsdDsKK+mGq+WtuOWutiA8IG1lZGljYWxcLXNjaWVudGlzdDsKK+STmyA8IG1vbGVjdWxhclwtZm9ybXVsYTsKK+SSvSA8IGlsbGljaXVtXC1hbmlzYXR1bTsKK+SSkCA8IGRpc3R1cmJlZFwtaW5cLW1pbmQ7CivkkbwgPCBvY2VhblwtZ29pbmdcLWxpbmVyOwor5YyX5Lqs6L+R6YOKIDwgc3VidXJiXC1vZlwtYmVpamluZzsKK+SQoCA8IGJldHdlZW5cLXRoZVwtZmxlc2g7CivkkJggPCB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor5I+wIDwgYVwta2luZFwtb2ZcLWluc2VjdHM7Civoj6/nm5vpoJMgPCB3YXNoaW5ndG9uXC1cKGRcLmNcLlwpOwor5I2tIDwgYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2HIDwgZmxhdFwtYm90dG9tXC1jcm9jazsKK+SMqCA8IHRoaW5cLXNpbGtcLWZhYnJpY3M7Civki7sgPCB0b1wtc3BpblwtYW5kXC13ZWF2ZTsKK+SLuiA8IGFcLXN3aW5nXC1hXC1jcnVwcGVyOwor5IuYIDwgdG9cLWhhbmRcLWJ5XC1hXC1yb3BlOwor5paH5YyW55qE5Lqk5rWBIDwgY3VsdHVyYWxcLWV4Y2hhbmdlOwor5IqvIDwgZ3JhaW5zXC13aXRoXC1iZWFyZDsKK+SJjCA8IGNydWRlXC1iYW1ib29cLW1hdHM7CivkiKAgPCBib29rc1wtYW5kXC12b2x1bWVzOwor5pav5rSb5LyQ5YWL6KqeIDwgc2xvdmFrXC1cKGxhbmd1YWdlXCk7CivmoYjmg4UgPCBkZXRhaWxzXC1vZlwtYVwtY2FzZTsKK+S4n+mjr+eilyA8IHRvXC1sb3NlXC1vbmUnJ3NcLWpvYjsKK+SEiSA8IGFcLXJpdGVcLW9yXC1zZXJ2aWNlOwor6LKh56WeIDwgdGhlXC1nb2RcLW9mXC13ZWFsdGg7CivkgYQgPCB0b1wtY2xvc2VcLXRoZVwtZXllczsKK+SAuSA8IHRvXC13aW5rXC1leWVsYXNoZXM7Civmr5TovIPmlrAgPCBjb21wYXJhdGl2ZWx5XC1uZXc7Civjv4MgPCBhblwtb3hcLWhlYWRlZFwtYm9pbDsKK+O+sSA8IGluY3VyYWJsZVwtZGlzZWFzZTsKK+O9jSA8IGFuXC1lYXJ0aGVuXC12ZXNzZWw7Civjur8gPCBhXC1qYWRlXC1saWtlXC1zdG9uZTsKK+WkluWci+aXhemBiuiAhSA8IGZvcmVpZ25cLXRyYXZlbGxlcjsKK+ePvueLgCA8IGN1cnJlbnRcLXNpdHVhdGlvbjsKK+Wwj+WgsSA8IHRhYmxvaWRcLW5ld3NwYXBlcjsKK+O2vyA8IHRoZVwtc21va2VcLXdlbnRcLXVwOwor47a0IDwgYVwtdmVyeVwtZ3JlYXRcLWZpcmU7CivkuIDoiKzljp/liYcgPCBnZW5lcmFsXC1wcmluY2lwbGU7CivjtasgPCB3YXRlclwtZ3VzaGluZ1wtb3V0Owor47WNIDwgZmlsbGVkXC13aXRoXC13YXRlcjsKK+O1hCA8IG5hbWVcLW9mXC1hXC1keW5hc3R5Owor5pyd6IGWIDwgbWFrZVwtYVwtcGlsZ3JpbWFnZTsKK+OznCA8IHRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsrIgPCBmaW5lXC1jb3R0b25cLWNsb3RoOwor47KYIDwgZmluZVwtd29vbGVuXC1jbG90aDsKK+OyiyA8IGFcLWtpbmRcLW9mXC1hbmltYWxzOwor47KDIDwgc21vb3RoXC1hbmRcLWN1cnZlZDsKK+S/neWBpSA8IGhlYWx0aFwtcHJvdGVjdGlvbjsKK+OvvyA8IGhhbmRsZVwtb2ZcLWFcLWxhZGxlOwor46+mIDwgdGhlXC1nYW1lXC1vZlwtY2hlc3M7Civmt6vmsLQgPCBzZXh1YWxcLXNlY3JldGlvbnM7CivjrrUgPCBjb21tb25cLXNhbmRhbHdvb2Q7CivjrqggPCBjb2RpdW1cLW1hY3JvbmF0dW07CivjrpogPCB0aGVcLWNoZXN0bnV0XC10cmVlOwor46ybIDwgdG9cLWRyeVwtaW5cLXRoZVwtc3VuOwor5bCE6aC75bmy5pO+IDwgcmFkaW9cLWludGVyZmVyZWNlOwor46muIDwgdG9cLWxpZnRcLXVwXC1vclwtb2ZmOwor46mpIDwgdG9cLWNvbWVcLXRvXC1hblwtZW5kOwor46mZIDwgYVwtY29ya1wtb3JcLXN0b3BwZXI7CivjqKIgPCB0b1wtcmlwXC1vcGVuXC1mbGVzaDsKK+mbu+S/oeiZnyA8IGVsZWN0cmljYWxcLXNpZ25hbDsKK+Wwi+WRsyA8IHRvXC10aGlua1wtc3RoXC1vdmVyOwor5p2/54WZIDwgcGx1Z1wtXChvZlwtdG9iYWNjb1wpOwor5rOo6KaWIDwgd2F0Y2hcLWF0dGVudGl2ZWx5Owor46OiIDwgdG9cLXJlc3RcLWZyb21cLXdvcms7Civjo5MgPCBsaXRlcmFyeVwtaW5cLXRhc3RlOwor46ONIDwgYVwtcmFpc2VkXC1wbGF0Zm9ybTsKK+OiriA8IHRvXC11bnN0cmluZ1wtYVwtYm93Owor46KRIDwgYVwtY29sbGFwc2VkXC1ob3VzZTsKK+OihCA8IGFcLWtpbmRcLW9mXC11dGVuc2lsOwor5rOV6KqeIDwgZnJlbmNoXC1cKGxhbmd1YWdlXCk7CivjoZ8gPCBiZWRcLW1hdHNcLWZvclwtYmFieTsKK+OgtyA8IGFcLXZlc3NlbFwtZm9yXC1yaWNlOwor46ClIDwgcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OftCA8IGx1bXBcLW9uXC10aGVcLWhpbGxzOwor45+kIDwgemh1YW5nXC1pblwtZ3Vhbmd4aTsKK+OfgyA8IHRvXC1oYXZlXC1jaGFyZ2VcLW9mOwor456tIDwgbmFtZVwtb2ZcLWFuXC1pc2xhbmQ7Civlm5vpnaLlhavmlrkgPCBpblwtYWxsXC1kaXJlY3Rpb25zOwor452MIDwgcHJvbG9uZ2VkXC1pbGxuZXNzOwor45u0IDwgdG9cLWFuZ2VyXC10b1wtYW5ub3k7CivjmoUgPCB0b1wtd29yc2hpcFwtb2ZcLWdvZDsKK+OZqSA8IGFuXC1lbmNsb3NpbmdcLXdhbGw7CivjmKYgPCB3YWxsXC1tYWRlXC1vZlwtc29pbDsKK+OYmiA8IGFuZ3J5XC1haXJcLW9mXC1sb29rOwor45e8IDwgZWF0aW5nXC1vclwtdGFsa2luZzsKK+OXpSA8IHNvdW5kXC1vZlwtc3RyaWtpbmc7CivjlqcgPCBjYW5cLW5vdFwtc2VlXC1jbGVhcjsKK+OUnSA8IHN0cm9uZ1wtcmVzaXN0YW5jZTsKK+OTviA8IHRvXC13b3VuZFwtdGhlXC1za2luOwor542o56uLIDwgdG9cLWJlXC1pbmRlcGVuZGVudDsKK+ORnSA8IHRvXC1tYWtlXC1hXC1mb29sXC1vZjsKK+ORjyA8IHRvXC1zdGFuZFwtYW5kXC13YWl0Owor45GKIDwgYVwta2luZFwtb2ZcLWRpc2Vhc2U7Civnp5jmm7jplbcgPCBzZWNyZXRhcnlcLWdlbmVyYWw7CivotbDlh7ogPCB0b1wtbW92ZVwtYXdheVwtZnJvbTsKK+iBsuaPtCA8IHN1cHBvcnRcLVwoYVwtY2F1c2VcKTsKK+ekpuiXjyA8IG1pbmVyYWxcLXJlc291cmNlczsKK+Wvq+S/oSA8IHRvXC13cml0ZVwtYVwtbGV0dGVyOwor5LiJ57atIDwgdGhyZWVcLWRpbWVuc2lvbmFsOwor56m05bGFIDwgdG9cLWxpdmVcLWluXC1hXC1jYXZlOwor54uA6KqeIDwgYWR2ZXJiaWFsXC1hZGp1bmN0Owor5Zyo5aSn5aSa5pW45oOF5rOB5LiLIDwgaW5cLW1vc3RcLWluc3RhbmNlczsKK+mFrOmHkSA8IFwobW9uZXRhcnlcKVwtcmV3YXJkOwor5ZyL5a625a6J5YWoIDwgbmF0aW9uYWxcLXNlY3VyaXR5Owor6LKh5pS/IDwgZmluYW5jZXNcLVwocHVibGljXCk7CivmtbfmtIvmuqvluqYgPCBvY2VhblwtdGVtcGVyYXR1cmU7CivntrLpmpvljZTlrpogPCBpbnRlcm5ldFwtcHJvdG9jb2w7CivlpJbkuqTpl5zkv4IgPCBmb3JlaWduXC1yZWxhdGlvbnM7CivlronljbEgPCBzYWZldHlcLWFuZFwtZGFuZ2VyOwor5be05YWL5aSP6LGsIDwgYmVya3NoaXJlXC1cKHN3aW5lXCk7CivlkI3nqLEgPCBuYW1lXC1cKG9mXC1hXC10aGluZ1wpOwor54mp6LOqIDwgXChwaHlzaWNhbFwpXC1tYXR0ZXI7CivlkIPnqb8gPCBmb29kXC1hbmRcLWNsb3RoaW5nOwor6KiK5qGG5YKz6YCB6KuW5aOHIDwgZnJhbWVcLXJlbGF5XC1mb3J1bTsKK+eptOS9jSA8IGFjdXB1bmN0dXJlXC1wb2ludDsKK+WtuOS9jSA8IGVkdWNhdGlvbmFsXC1sZXZlbDsKK+WQhOeVjCA8IGFsbFwtd2Fsa3NcLW9mXC1saWZlOwor6ICz5a2QIDwgaGFuZGxlXC1cKG9uXC1hXC1wb3RcKTsKK+atkOa0suS6uiA8IGV1cm9wZWFuXC1cKHBlcnNvblwpOwor5oCd57atIDwgXChsaW5lXC1vZlwpXC10aG91Z2h0Owor6KGb55Sf6YOoIDwgaGVhbHRoXC1kZXBhcnRtZW50Owor5qWt55WM5qiZ5rqWIDwgaW5kdXN0cnlcLXN0YW5kYXJkOwor5Lul5YWNIDwgaW5cLW9yZGVyXC10b1wtYXZvaWQ7CivkuIDljYPkuIPnmb7okKwgPCBzZXZlbnRlZW5cLW1pbGxpb247Civkuovlr6YgPCBcKHRoZVwpXC1mYWN0XC1cKHRoYXRcKTsKK+acrOaApyA8IG5hdHVyYWxcLWluc3RpbmN0czsKK+mbo+mhjCA8IGRpZmZpY3VsdFwtcHJvYmxlbTsKK+WnlOWToeacg+acg+itsCA8IGNvbW1pdHRlZVwtbWVldGluZzsKK+iuiuebuCA8IGluXC1kaXNndWlzZWRcLWZvcm07CivosqHli5kgPCBmaW5hbmNpYWxcLWFmZmFpcnM7CivmnI3lvbkgPCBzZXJ2ZVwtaW5cLXRoZVwtYXJteTsKK+mGq+eZgiA8IG1lZGljYWxcLXRyZWF0bWVudDsKK+mZuOWfuuWwjuW9iCA8IGxhbmRcLWJhc2VkXC1taXNzbGU7Civmlazph40gPCB0b1wtcmVzcGVjdFwtZGVlcGx5Owor5pqX5rKzIDwgdW5kZXJncm91bmRcLXJpdmVyOwor6aC45qSOIDwgY2VydmljYWxcLXZlcnRpYnJhOwor57ay6bueIDwgbm9kZVwtaW5cLWFcLW5ldHdvcms7Civpu5HlrqIgPCBoYWNrZXJcLVwoY29tcHV0ZXJcKTsKK+e6luiKryA8IGNvcmVcLVwob2ZcLWFcLWZpYmVyXCk7Civnt6jpmoogPCBmb3JtXC1pbnRvXC1jb2x1bW5zOwor5pWX6YCAIDwgcmV0cmVhdFwtaW5cLWRlZmVhdDsKK+acrOWciyA8IG9uZScnc1wtb3duXC1jb3VudHJ5Owor5aSq5bmz5rSLIDwgdGhlXC1wYWNpZmljXC1vY2VhbjsKK+WOn+WboOaYryA8IHRoZVwtcmVhc29uXC1pc1wtXC5cLlwuOwor6KiI566X5qmf5bel5qWtIDwgY29tcHV0ZXJcLWluZHVzdHJ5Owor6KW/55Wq6ZuF5pu4IDwgYm9va1wtb2ZcLXplcGhhbmlhaDsKK+iqnuiogCA8IFwoc3Bva2VuXClcLWxhbmd1YWdlOwor5LiA5bm05Y2KIDwgYVwteWVhclwtYW5kXC1hXC1oYWxmOwor5bCI5a626KmV6KuWIDwgZXhwZXJ0XC1jb21tZW50YXJ5Owor6Zi/54i+5be05bC85Lqe5Lq6IDwgYWxiYW5pYW5cLVwocGVyc29uXCk7CivkuI3lsZEgPCBkaXNkYWluXC10b1wtZG9cLXN0aDsKK+Wah+W+l+eZvOaKliA8IHRyZW1ibGVcLXdpdGhcLWZlYXI7CivljYrnpaggPCBoYWxmXC1wcmljZVwtdGlja2V0Owor542o5ZSxIDwgXChpblwtc2luZ2luZ1wpXC1zb2xvOwor5LiN55SY5b+DIDwgbm90XC1yZWNvbmNpbGVkXC10bzsKK+Wbm+mWgOi9jui7iiA8IHNlZGFuXC1cKG1vdG9yXC1jYXJcKTsKK+engeS6uiA8IHByaXZhdGVcLVwoY2l0aXplblwpOwor542y5YeGIDwgb2J0YWluXC1wZXJtaXNzaW9uOwor5a6i5oi25qmfIDwgY2xpZW50XC1cKGNvbXB1dGVyXCk7CivmrIrpkbAgPCBrZXlzXC1vZlwtYXV0aG9yaXR5Owor5aSx5qWt546HIDwgdW5lbXBsb3ltZW50XC1yYXRlOwor54iG566hIDwgY2FydHJpZGdlXC1pZ25pdGVyOwor56Sm5bqKIDwgXChtaW5lcmFsXClcLWRlcG9zaXQ7CivmhJvkuI3ph4vmiYsgPCBmb25kbGVcLWFkbWlyaW5nbHk7CivmraLooYAgPCBzdGFuY2hcLVwoYmxlZWRpbmdcKTsKK+WQjeWtlyA8IFwoYVwtcGVyc29uJydzXClcLW5hbWU7Civorablr5/lsYAgPCBwb2xpY2VcLWRlcGFydG1lbnQ7Civlj7DluaMgPCBuZXdcLXRhaXdhblwtZG9sbGFyOwor6aGn5Y+KIDwgdGFrZVwtaW50b1wtYWNjb3VudDsKK+atuOW/g+iAhSA8IHJlbGlnaW91c1wtY29udmVydDsKK+aykumXnOS/giA8IGl0XC1kb2VzbicndFwtbWF0dGVyOwor5LiL5Y67IDwgZ29cLWRvd25cLVwoZGVzY2VuZFwpOwor5b6e6aCt5Yiw6IWzIDwgZnJvbVwtaGVhZFwtdG9cLWZvb3Q7Civli7vnqLEgPCB3ZWxsXC1wcm9wb3J0aW9uZWQ7CivkuI3lipsgPCBub3RcLWRvXC1vbmUnJ3NcLWJlc3Q7CivpgZPorJ0gPCB0b1wtZXhwcmVzc1wtdGhhbmtzOwor56Gd54WZIDwgc21va2VcLVwoZnJvbVwtZ3Vuc1wpOwor6Jed5Lq6IDwgcGVyZm9ybWluZ1wtYXJ0aXN0Owor5YyF5ZyS5YWSIDwgYnV5XC10aGVcLXdob2xlXC1sb3Q7CivmlZnnt7QgPCBcKGF0aGxldGUnJ3NcKVwtY29hY2g7Civlh7rpmaIgPCB0b1wtbGVhdmVcLWhvc3BpdGFsOwor6Zi/6YeMIDwgYWxpXC1cKHByb3BlclwtbmFtZVwpOwor5LiA6Lqr5rGXIDwgc3dlYXRpbmdcLWFsbFwtb3ZlcjsKK+mZhOi/kSA8IFwoaW5cLXRoZVwpXC12aWNpbml0eTsKK+W7o+aSree2sui3ryA8IGJyb2FkY2FzdFwtbmV0d29yazsKK+esqOWPo+aLmeiIjCA8IGF3a3dhcmRcLWluXC1zcGVlY2g7CivniYzmqJMgPCBkZWNvcmF0ZWRcLWFyY2h3YXk7Civlt7Tmlq/lhYvoqp4gPCBiYXNxdWVcLVwobGFuZ3VhZ2VcKTsKK+eItuavjSA8IGZhdGhlclwtYW5kXC1tb3RoZXI7Civoj6/ljJflubPljp8gPCBub3J0aFwtY2hpbmFcLXBsYWluOwor5pWR5oGp6KiI5YqDIDwgcGxhblwtb2ZcLXNhbHZhdGlvbjsKK+S4qiA8IG51bWVyYXJ5XC1hZGp1bmN0Owor6YeMIDwgdW5pdFwtb2ZcLWRpc3RhbmNlOwor6ZizIDwgJydtYWxlJydcLXByaW5jaXBsZTsKK+ionSA8IGV4cHJlc3NcLXN1cnByaXNlOwor6buNIDwgZ2x1dGlub3VzXC1taWxsZXQ7CivliacgPCB0aGVhdHJpY2FsXC1wbGF5czsKK+iYgiA8IHN0YW1lblwtb3JcLXBpc3RpbDsKK+aMuiA8IHRvXC1zdGFuZFwtdXByaWdodDsKK+ehgCA8IGZvdW5kYXRpb25cLXN0b25lOwor6IiFIDwgbW90aGVyJydzXC1icm90aGVyOwor6JCnIDwgY29tbW9uXC1hcnRlbWlzaWE7Civkv7ogPCBwZXJzb25hbFwtcHJvbm91bjsKK+eOsiA8IHRpbmtsaW5nXC1vZlwtamFkZTsKK+aNqSA8IHR3aXN0XC13aXRoXC1oYW5kczsKK+m7myA8IGJsYWNrZW5cLWV5ZWJyb3dzOwor5aaGIDwgdG9cLWFkb3JuXC1vbmVzZWxmOwor5bmiIDwgY2FycmlhZ2VcLWN1cnRhaW47Civmoq0gPCB3ZWF2ZXInJ3NcLXNodXR0bGU7CivmvKogPCByaXBwbGVzXC1vblwtd2F0ZXI7CivnnLcgPCB0YWtlXC1pbnRlcmVzdFwtaW47Civli4sgPCBtZXJpdG9yaW91c1wtZGVlZDsKK+eUrSA8IHRoZXJlXC1pc1wtbm9cLW5lZWQ7CivnpaAgPCBhbmNlc3RyYWxcLXRlbXBsZTsKK+iIlCA8IGxpY2tcLXdpdGhcLXRvbmd1ZTsKK+iViiA8IHVub3BlbmVkXC1mbG93ZXJzOwor6LWjIDwgamlhbmd4aVwtcHJvdmluY2U7Civot7cgPCByYWlzZVwtb25lJydzXC1mb290Owor5YmBIDwgY2hvcFwtYnlcLXBvdW5kaW5nOwor6JawIDwgYVwtbWVkaWNpbmFsXC1oZXJiOwor5Y+8IDwgaG9sZGluZ1wtaW5cLW1vdXRoOwor6I28IDwgYml0dGVyXC12ZWdldGFibGU7CivlvpkgPCBtb3ZlXC1vbmUnJ3NcLWFib2RlOwor5raUIDwgcml2ZXJcLWluXC1zaGFhbnhpOwor5r2iIDwgZXhwYW5zZVwtb2ZcLXdhdGVyOwor56e4IDwgc3RhbGtzXC1vZlwtbWlsbGV0Owor6KKIIDwgYnVkZGhpc3RcLWNhc3NvY2s7Civnj54gPCBraW5kXC1vZlwtbmVja2xhY2U7Civllb4gPCB3YWlsaW5nXC1vZlwtY2hpbGQ7CivkursgPCByYWRpY2FsXC1udW1iZXJcLTk7CivlpJkgPCBlYXJseVwtaW5cLW1vcm5pbmc7CivpuZggPCBhXC1raW5kXC1vZlwtcGlnZW9uOwor5aipIDwgZ2l2ZVwtYmlydGhcLWNoaWxkOwor5aedIDwgYVwtYmVhdXRpZnVsXC1naXJsOwor5oeRIDwgYmVcLXNpY2tcLWF0XC1oZWFydDsKK+mUiSA8IGNhcnBlbnRlcicnc1wtZmlsZTsKK+a0sSA8IGFcLWxha2VcLWluXC15dW5uYW47CivonYggPCBzbWFsbFwtZ3JlZW5cLWZyb2c7CivluLwgPCB3b21lbicnc1wtaGVhZGdlYXI7Civni44gPCBiZVwtZmFtaWxpYXJcLXdpdGg7Civog6ogPCBhcnJhbmdlXC1pblwtb3JkZXI7CivosaIgPCBkb21lc3RpY1wtYW5pbWFsczsKK+echyA8IGJsaW5kXC1pblwtb25lXC1leWU7Civnvr8gPCBsZWdlbmRhcnlcLWFyY2hlcjsKK+iKqSA8IHNhbHRcLW1hcnNoXC1wbGFudDsKK+iMrSA8IGFuXC1hcXVhdGljXC1ncmFzczsKK+iTliA8IGNhc3Rvclwtb2lsXC1wbGFudDsKK+WCpyA8IGVudGVydGFpblwtZ3Vlc3RzOwor6JacIDwgZXZlcmdyZWVuXC1zaHJ1YnM7CivotrogPCBzaXRcLWNyb3NzXC1sZWdnZWQ7CivmpLkgPCBhXC1jaG9wcGluZ1wtYm9hcmQ7CivpnIggPCB0b3JyZW50aWFsXC1yYWluczsKK+abqSA8IGluXC1hbmNpZW50XC10aW1lczsKK+agjCA8IHN1cHBvcnRpbmdcLWJsb2NrOwor5ZOaIDwgY2hlbWljYWxcLWVsZW1lbnQ7CivnrYwgPCBiYW1ib29cLWZpc2hcLXRyYXA7CivmtY0gPCBpcnJpZ2F0aW9uXC1kaXRjaDsKK+eMgSA8IGFcLWtpbmRcLW9mXC1tb25rZXk7CivllbYgPCBcLWRcLVwrXC1pbmVcLVwoY2hlbVwuXCk7CivprK8gPCBzYWNyaWZpY2lhbFwtd2luZTsKK+mytyA8IHBhZ3Jvc29tdXNcLW1ham9yOwor6IGxIDwgYmVudFwtYW5kXC10d2lzdGVkOwor5YqiIDwgcHV0XC1mb3J0aFwtZWZmb3J0Owor6J+qIDwgYVwta2luZFwtb2ZcLWNpY2FkYTsKK+i1hiA8IGZhcmV3ZWxsXC1wcmVzZW50Owor5Z+vIDwgY292ZXJcLXdpdGhcLWVhcnRoOwor6bKUIDwga2luZFwtb2ZcLXN0dXJnZW9uOwor572oIDwgbWVkaWNhbFwtY29tcHJlc3M7Civlq5wgPCBodXNiYW5kJydzXC1wYXJlbnQ7CivmvKQgPCBtYXJpbmF0ZVwtaW5cLXNhbHQ7CivlmoYgPCBnaXZlXC1mb3J0aFwtc291bmQ7CivolrkgPCBjeXBlcnVzXC1yb3R1bmR1czsKK+iMhiA8IHNwZWNpZXNcLW9mXC1ncmFzczsKK+ejqOWtkCA8IG1pbGxcLFwtbWlsbHN0b25lczsKK+WFseeUoum7qOmDqOmaiiA8IGNvbW11bmlzdFwtZm9yY2VzOwor5ZCO5Lq6IDwgbGF0ZXJcLWdlbmVyYXRpb247CivoiKrnqbrmr43oiaYgPCBhaXJjcmFmdFwtY2FycmllcjsKK+itmOWtlyA8IHRvXC1sZWFyblwtdG9cLXJlYWQ7CivkuK3lnIvlpKfpmbggPCBjaGluZXNlXC1tYWlubGFuZDsKK+W9seWDj+acg+itsCA8IHZpZGVvXC1jb25mZXJlbmNlOwor5b+D5b6XIDwga25vd2xlZGdlXC1nYWluZWQ7CivmgrLmraHpm6LlkIggPCBqb3lzXC1hbmRcLXNvcnJvd3M7Civnmb7ph4zmjJHkuIAgPCBvbmVcLWluXC1hXC1odW5kcmVkOwor55m957Sw6IOeIDwgd2hpdGVcLWJsb29kXC1jZWxsOwor6Kqe5rOV6KGT6KqeIDwgZ3JhbW1hdGljYWxcLXRlcm07CivmsYLlqZogPCBwcm9wb3NlXC1tYXJyaWFnZTsKK+e3qOebriA8IG1ha2VcLWFcLWNhdGFsb2d1ZTsKK+mbu+a1gSA8IGVsZWN0cmljXC1jdXJyZW50Owor5Z+O6Y6uIDwgY2l0aWVzXC1hbmRcLXRvd25zOwor5aeU5ZOhIDwgY29tbWl0dGVlXC1tZW1iZXI7Civlo4HnlasgPCBtdXJhbFwtXChwYWludGluZ1wpOwor5aeT5ZCNIDwgbmFtZVwtYW5kXC1zdXJuYW1lOwor5piv5ZCmIDwgd2hldGhlclwtXChvclwtbm90XCk7CivnuL3mqZ8gPCBjZW50cmFsXC1leGNoYW5nZTsKK+mBjueoiyA8IGNvdXJzZVwtb2ZcLWV2ZW50czsKK+eGiueMtCA8IGFzc2FtZXNlXC1tYWNhcXVlOwor5aSn5pyDIDwgZ2VuZXJhbFwtYXNzZW1ibHk7Civln7roqr8gPCBcKHNwZWVjaFwpXC1rZXlub3RlOwor6Kqk5pyDIDwgdG9cLW1pc3VuZGVyc3RhbmQ7Civmm7Tpq5jmgKfog70gPCBoaWdoXC1wZXJmb3JtYW5jZTsKK+i2hemrmOmAn+S5meWkque2sui3ryA8IGdpZ2FiaXRcLWV0aGVybmV0Owor6KiC56WoIDwgdG9cLWlzc3VlXC10aWNrZXRzOwor5aO95qGDIDwgYmlydGhkYXlcLXBlYWNoZXM7Civou43kuovnp5HlrbggPCBtaWxpdGFyeVwtc2NpZW5jZTsKK+acjeWLmeaPkOS+m+iAhSA8IHNlcnZpY2VcLXByb3ZpZGVyOwor5Zmo5a6Y56e75q6WIDwgb3JnYW5cLXRyYW5zcGxhbnQ7Civnp7vli5XlvI/pm7voqbEgPCBtb2JpbGVcLXRlbGVwaG9uZTsKK+W3tOixhiA8IFwocHVyZ2luZ1wpXC1jcm90b247Civlo73mmJ8gPCBnb2RcLW9mXC1sb25nZXZpdHk7CivlvbHlg4/omZXnkIYgPCBpbWFnZVwtcHJvY2Vzc2luZzsKK+WFpei/tyA8IHRvXC1iZVwtZmFzY2luYXRlZDsKK+aYjuS7oyA8IHRoZVwtbWluZ1wtZHluYXN0eTsKK+aAp+mXnOS/giA8IHNleHVhbFwtcmVsYXRpb25zOwor5Lq65LqL6YOo6ZaAIDwgcGVyc29ubmVsXC1vZmZpY2U7CivpgIDnpaggPCBib3VuY2VcLVwoYVwtY2hlY2tcKTsKK+a9m+WcqOWogeiEhSA8IHBvdGVudGlhbFwtdGhyZWF0Owor5q6v5YSA6aSoIDwgdGhlXC11bmRlcnRha2VyJydzOwor57Wx6KiI5pW45pOaIDwgc3RhdGlzdGljYWxcLWRhdGE7CivnuYPlrZAgPCBlbWJyb2lkZXJ5XC1mcmFtZTsKK+W+l+WHuiA8IG9idGFpblwtXChyZXN1bHRzXCk7CivlhY3osrsgPCBmcmVlXC1cKG9mXC1jaGFyZ2VcKTsKK+mBsuaariA8IHBhc3RcLW9uZScnc1wtcHJpbWU7CivnoJToqI7mnIMgPCBkaXNjdXNzaW9uXC1mb3J1bTsKK+S4jeWIhumdkue0heeagueZvSA8IGluZGlzY3JpbWluYXRlbHk7CivnibnlrprlkKvnvqkgPCBzcGVjaWZpY1wtbWVhbmluZzsKK+mHkeiejeezu+e1sSA8IGZpbmFuY2lhbFwtc3lzdGVtOwor5bCO6Ie05q275LqhIDwgdG9cLWxlYWRcLXRvXC1kZWF0aDsKK+adv+S4iumHmOmHmCA8IHRoYXRcLWNsaW5jaGVzXC1pdDsKK+e2suapiyA8IFwobmV0d29ya1wpXC1icmlkZ2U7CivliJfngrogPCBiZVwtY2xhc3NpZmllZFwtYXM7CivlqZrlpJbmgKfmjqXop7ggPCBleHRyYW1hcml0YWxcLXNleDsKK+Wci+mYsiA8IG5hdGlvbmFsXC1kZWZlbmNlOwor5pWF5bGFIDwgZm9ybWVyXC1yZXNpZGVuY2U7Civms6Lnvo7mr5Tph43oqIggPCBiYXVtZVwtaHlkcm9tZXRlcjsKK+m9mSA8IHByb2plY3RpbmdcLXRlZXRoOwor6bm2IDwgc2FsdHlcLWFuZFwtYml0dGVyOwor5Ym95oKNIDwgc3dpZnRcLWFuZFwtZmllcmNlOwor5q2m5a6YIDwgbWlsaXRhcnlcLWF0dGFjaGU7CivkuI3nrYnpgorkuInop5LlvaIgPCBzY2FsZW5lXC10cmlhbmdsZTsKK+mBleaGsiA8IHVuY29uc3RpdHV0aW9uYWw7Civpr4YgPCB0aGVcLXNrYXRlXC1vclwtcmF5Owor5Yue5YuVIDwgXChwaHlzaWNhbFwpXC1sYWJvcjsKK+eCuueUnyA8IHRvXC1tYWtlXC1hXC1saXZpbmc7Civpm7vohabkvIHmpa0gPCBjb21wdXRlclwtY29tcGFueTsKK+WFrOe+iiA8IHJhbVwtXChtYWxlXC1zaGVlcFwpOwor6Ii56ZqKIDwgZmxlZXRcLVwob2ZcLXNoaXBzXCk7CivprawgPCBzb2xlXC1vclwtZmxvdW5kZXI7Civlu6Plt54gPCBndWFuZ3pob3VcLVwoY2l0eVwpOwor5ZSJ6IGy5ZiG5rCjIDwgaGVhdmVcLWRlZXBcLXNpZ2hzOwor5LiN5aW95oSP5oCdIDwgZmVlbFwtZW1iYXJyYXNzZWQ7Civpm7vlipsgPCBlbGVjdHJpY2FsXC1wb3dlcjsKK+ijnOihgCA8IGVucmljaFwtdGhlXC1ibG9vZDsKK+mqtCA8IGFcLXB1dHJpZFwtY2FyY2FzZTsKK+WkluWci+aKleizh+iAhSA8IGZvcmVpZ25cLWludmVzdG9yOwor6aaYIDwgY3V0XC1vZmZcLWxlZnRcLWVhcjsKK+W3tOW4g+S6nuaWsOW5vuWFp+S6niA8IHBhcGF1XC1uZXdcLWd1aW5lYTsKK+izh+aWmemHjyA8IHF1YW50aXR5XC1vZlwtZGF0YTsKK+e3qOi8r+WupCA8IGVkaXRvcmlhbFwtb2ZmaWNlOwor6aOAIDwgc291Z2hpbmdcLW9mXC13aW5kOwor54eI5YWJIDwgXChzdGFnZVwpXC1saWdodGluZzsKK+mfnSA8IGxlYXRoZXJcLWFybVwtYmFuZDsKK+mfiiA8IGFcLWNhc2VcLWZvclwtYVwtYm93Owor6Z62IDwgYmlnXC1sZWF0aGVyXC1iZWx0Owor6YCP5pSvIDwgXChiYW5rXClcLW92ZXJkcmFmdDsKK+ato+W4uOW3peS9nCA8IG5vcm1hbFwtb3BlcmF0aW9uOwor6ZuXIDwgYVwtd2hpdGVcLXBoZWFzYW50Owor6ZqkIDwgdG9cLWZhbGxcLWluXC1ydWluczsKK+WCs+ecn+eZvOmAgSA8IGZheFwtdHJhbnNtaXNzaW9uOwor6ZegIDwgZ2F0ZVwtb2ZcLWFcLW1hcmtldDsKK+eVsOaAp+aAp+aOpeinuCA8IGhldGVyb3NleHVhbFwtc2V4Owor6L+05peLIDwgbWFuZXV2ZXJpbmdcLXJvb207Civmi4nkuIHoqp4gPCBsYXRpblwtXChsYW5ndWFnZVwpOwor5pON5L2c57O757WxIDwgb3BlcmF0aW5nXC1zeXN0ZW07CivpirsgPCBhbnRpbW9ueVwtc3RpYml1bTsKK+mKpyA8IHBvaW50XC1vZlwtYVwtc3dvcmQ7CivpiYAgPCBwb3Rhc3NpdW1cLWthbGl1bTsKK+eZveejtyA8IHdoaXRlXC1waG9zcGhvcnVzOwor6YGp6YWN5bGkIDwgYWRhcHRhdGlvblwtbGF5ZXI7Civlh7rpoqjpoK0gPCB0b1wtY3JlYXRlXC1hXC1zdGlyOwor5aCx5o23IDwgcmVwb3J0XC1hXC1zdWNjZXNzOwor6Kiq5ZWPIDwgcGF5XC1hXC12aXNpdFwtXCh0b1wpOwor5YKz6Ly45aqS55WMIDwgdHJhbnNwb3J0XC1tZXRob2Q7CivpmaTlpJUgPCBcKG5ld1wteWVhcicnc1wpXC1ldmU7CivourcgPCBvZlwtc2hvcnRcLXN0YXR1cmU7CivoubEgPCB0b1wtc3RhZ2dlclwtYWxvbmc7CivouZAgPCB0YWtlXC1zaG9ydFwtc3RlcHM7CivmoYzkuIrlnovpm7vohaYgPCBkZXNrdG9wXC1jb21wdXRlcjsKK+i+puahiCA8IHRvXC1oYW5kbGVcLWFcLWNhc2U7Civos5kgPCBnaXZlXC1mb3JcLWNoYXJpdHk7Civotorph47ou4ogPCBvZmZcLXJvYWRcLXZlaGljYWw7CivosY8gPCBoYWxmXC1ncm93blwtYmVhbnM7CivntrLntaHnm7TlvpEgPCBuZXR3b3JrXC1kaWFtZXRlcjsKK+ioguWWriA8IFwocHVyY2hhc2VcKVwtb3JkZXI7CivmiJDnvqTntZDpmoogPCBpblwtbGFyZ2VcLW51bWJlcnM7CivpganphY3lmaggPCBhZGFwdGVyXC1cKGRldmljZVwpOwor5Ymv5Li75bitIDwgdmljZVwtY2hhaXJwZXJzb247Civoj6/lg5EgPCBvdmVyc2Vhc1wtY2hpbmVzZTsKK+iqlSA8IHRvXC1iZWFyXC1jaGlsZHJlbjsKK+a7kem8oCA8IG1vdXNlXC1cKGNvbXB1dGVyXCk7CivopoIgPCB0b1wtdGhyb3dcLWFcLXJpZGVyOwor6KWxIDwgbGVnc1wtb2ZcLXRyb3VzZXJzOwor6KObIDwgdG9cLXdyYXBcLWFuZFwtYmluZDsKK+iilyA8IHVubGluZWRcLWdhcm1lbnRzOwor54Sh5omA5LiN6LOjIDwgdG9cLXNlbGxcLWFueXRoaW5nOwor6KGOIDwgdG9cLWdpdmVcLXBsZWFzdXJlOwor6J+/IDwgYWNyaWRhXC1jaGluZW5zaXM7CivonosgPCBzcGlkZXJcLW1pbGxpcGVkZTsKK+iduyA8IGltbWF0dXJlXC1sb2N1c3RzOwor55eF6I+MIDwgaGFybWZ1bFwtYmFjdGVyaWE7CivoqJjogIXmi5vlvoXmnIMgPCBwcmVzc1wtY29uZmVyZW5jZTsKK+aNt+WFi+iqniA8IGN6ZWNoXC1cKGxhbmd1YWdlXCk7CivomaUgPCBzdHJpcGVkXC13aWxkXC1jYXQ7CivnrYblupXkuIsgPCBhYmlsaXR5XC10b1wtd3JpdGU7CivpgLLkv64gPCBhZHZhbmNlZFwtc3R1ZGllczsKK+iXpiA8IGVkaWJsZVwtbXVzaHJvb21zOwor6ZW35rGfIDwgY2hhbmdqaWFuZ1wtcml2ZXI7Civol4sgPCBzYW1idWN1XC1qYXZpbmljYTsKK+iWgyA8IGN5cGVydXNcLWFtdXJpY3VzOwor6YCa55So6Zu75ZmoIDwgZ2VuZXJhbFwtZWxlY3RyaWM7CivolIcgPCBsdXh1cmlhbnRcLWdyb3d0aDsKK+W5vuWNgyA8IHNldmVyYWxcLXRob3VzYW5kOwor5pyd6a6u5Y2K5bO2IDwga29yZWFuXC1wZW5pbnN1bGE7CivokZkgPCBjZWxvc2lhXC1hcmdlbnRlYTsKK+iPiSA8IHRoZVwtZ3JlZW5cLWJhbWJvbzsKK+iKmCA8IG1hbHZhXC1zeWx2ZXN0cmlzOwor5Yiw5LqGIDwgaW5cLVwoYVwtcGFzdFwtdGltZVwpOwor5qC45Y6f5paZIDwgbnVjbGVhclwtbWF0ZXJpYWw7CivmnInpl5zkurrlo6sgPCBwZXJzb25zXC1pbnZvbHZlZDsKK+WgseWQjSA8IGVudGVyXC1vbmUnJ3NcLW5hbWU7Civlh7rlkI0gPCB3ZWxsXC1rbm93blwtXChmb3JcKTsKK+aOiOeNjiA8IHRvXC1hd2FyZFwtYVwtcHJpemU7Civpq5TogrIgPCBwaHlzaWNhbFwtY3VsdHVyZTsKK+iAtuWIqeexs+abuCA8IGJvb2tcLW9mXC1qZXJlbWlhaDsKK+iAvCA8IGVhcnNcLXdpdGhvdXRcLXJpbTsKK+S4jeeIreawoyA8IGJlXC1kaXNhcHBvaW50aW5nOwor5ryi6KqeIDwgY2hpbmVzZVwtbGFuZ3VhZ2U7Civph5Hono3luILloLQgPCBmaW5hbmNpYWxcLW1hcmtldDsKK+e2tSA8IHZhcmljb2xvcmVkXC1zaWxrOwor57S9IDwgYVwtc3RyYW5kXC1vZlwtc2lsazsKK+eztSA8IGZlcm1lbnRpbmdcLWdyYWluOwor57OIIDwgc2FjcmlmaWNpYWxcLXJpY2U7CivlhbXlvbkgPCBtaWxpdGFyeVwtc2VydmljZTsKK+expyA8IGNydWRlXC1iYW1ib29cLW1hdDsKK+WMl+WGsOa0iyA8IHRoZVwtYXJjdGljXC1vY2VhbjsKK+WFqeWyuOWwjeipsSA8IGJpbGF0ZXJpYWxcLXRhbGtzOwor566vIDwgYmFtYm9vXC1wYWxhbnF1aW47CivnroogPCBiYW1ib29cLXdpdGhcLXRoaW47Civnp7cgPCBzb3VuZFwtb2ZcLXJlYXBpbmc7Civno6UgPCBhXC1oZWFwXC1vZlwtc3RvbmVzOwor576F5a+G5q2Q6IiH5pyx6bqX6JGJIDwgcm9tZW9cLWFuZFwtanVsaWV0Owor56CrIDwgYW5jZXN0cmFsXC10YWJsZXQ7CivnnpggPCBkZWVwbHlcLXN1bmtcLWV5ZXM7CivnnosgPCBnbGFyZVwtd2l0aFwtYW5nZXI7CivnlaLogpYgPCByZXNlbWJsZVwtY2xvc2VseTsKK+ednCA8IHRvXC1vcGVuXC10aGVcLWV5ZXM7CivkuI3ntpPkuYvoq4cgPCBhYnN1cmRcLXN0YXRlbWVudDsKK+W0qea8jyA8IHV0ZXJpbmVcLWJsZWVkaW5nOwor55umIDwgbGlkXC1vZlwtYVwtY2FsZHJvbjsKK+eZiSA8IHRvXC1oYXRlXC1iaXR0ZXJseTsKK+WGl+WToSA8IGV4Y2Vzc1wtcGVyc29ubmVsOwor5YW15aOrIDwgb3JkaW5hcnlcLXNvbGRpZXI7CivopoHkurogPCBpbXBvcnRhbnRcLXBlcnNvbjsKK+aOoeaThyA8IHNlbGVjdFwtYW5kXC1hZG9wdDsKK+i4qee3miA8IHN0ZXBcLW9uXC10aGVcLWxpbmU7Civnk58gPCB0aGVcLWJvdHRsZVwtZ291cmQ7CivnjLggPCBhXC1raW5kXC1vZlwtYW5pbWFsOwor5Y+I5L6G5LqGIDwgaGVyZVwtd2VcLWdvXC1hZ2FpbjsKK+eZseWtkCA8IHBhcmFseXplZFwtcGVyc29uOwor54u7IDwgYVwtZmFidWxvdXNcLWJlYXN0Owor5beo5YygIDwgbWFzdGVyXC1jcmFmdHNtYW47CivplrHlhbUgPCB0b1wtcmV2aWV3XC10cm9vcHM7CivlgrLmsKMgPCBhaXJcLW9mXC1hcnJvZ2FuY2U7Civng5wgPCBsaWdodFwtb2ZcLXRoZVwtc3VuOwor5L6/6KGjIDwgY2l2aWxpYW5cLWNsb3RoZXM7CivntrLpmpvntrLot6/ljZTmnIMgPCBpbnRlcm5ldFwtc29jaWV0eTsKK+i3r+eUseWNlOWumiA8IHJvdXRpbmdcLXByb3RvY29sOwor5r6mIDwgcGxhY2VcLWluXC1zaWNodWFuOwor5r6lIDwgYVwtYmxvY2tlZFwtc3RyZWFtOwor5r6UIDwgcmFkaWFuY2VcLW9mXC1nZW1zOwor5bCL6KiqIDwgdG9cLWlucXVpcmVcLWFmdGVyOwor5a+26LKdIDwgdHJlYXN1cmVkXC1vYmplY3Q7CivplrHkuJYgPCB0b1wtc2VlXC10aGVcLXdvcmxkOwor5rirIDwgYmVhdGluZ1wtb2ZcLW9jZWFuOwor57Ch5piOIDwgc2ltcGxlXC1hbmRcLWNsZWFyOwor57ay6Lev5bmz5Y+wIDwgbmV0d29ya1wtcGxhdGZvcm07CivlronpoJMgPCBmaW5kXC1hXC1wbGFjZVwtZm9yOwor5YWs5YWsIDwgaHVzYmFuZCcnc1wtZmF0aGVyOwor5L6L6KqeIDwgZXhhbXBsZVwtc2VudGFuY2U7Civmr64gPCB0b1wtcHVsbFwtb3V0XC1oYWlyOwor5q+qIDwgc2VyZ2VcLWZyb21cLXRpYmV0Owor5qibIDwgYmVuZGluZ1wtYnJhbmNoZXM7CivploPkuq4gPCBicmlsbGlhbnRcLFwtc2hpbnk7CivlhYnmqqLmuKzlmaggPCBvcHRpY2FsXC1kZXRlY3RvcjsKK+aesiA8IG1hbGVcLW5ldHRsZVwtaGVtcDsKK+mbu+iFpue2sui3ryA8IGNvbXB1dGVyXC1uZXR3b3JrOwor5p6SIDwgdGhlXC1jb2NvbnV0XC10cmVlOwor5rOi54i+5aSa5rayIDwgYm9yZGVhdXhcLW1peHR1cmU7CivmlrUgPCB0b1wtY3V0XC10b1wtcGllY2VzOwor5paeIDwgYVwtc3RhY2tcLW9mXC1ncmFpbjsKK+aSmiA8IHR3aXJsXC1pblwtZmluZ2VyczsKK+WOn+WtkOenkeWtuOWutiA8IGF0b21pY1wtc2NpZW50aXN0Owor5Z2H5YuiIDwgYmFsYW5jZVwtb2ZcLXBvd2VyOwor55m86YGU5ZyL5a62IDwgZGV2ZWxvcGVkXC1uYXRpb247CivljYHlpJrlhIQgPCBvdmVyXC1vbmVcLWJpbGxpb247Civlt7LntpPpgLLooYwgPCBhbHJlYWR5XC11bmRlcndheTsKK+WCs+mAgeacjeWLmSA8IGRlbGl2ZXJ5XC1zZXJ2aWNlOwor5oy3IDwgdG9cLXByb3BlbFwtYVwtYm9hdDsKK+S/neeVmSA8IGNvbnRpbnVlXC10b1wtaGF2ZTsKK+S6uumgrSA8IG51bWJlclwtb2ZcLXBlb3BsZTsKK+aOpeS6uiA8IHRvXC1tZWV0XC1hXC1wZXJzb247CivoroDogIXkvobkv6EgPCByZWFkZXInJ3NcLWxldHRlcnM7CivlvLMgPCBjaXJjdWxhclwtbWVhc3VyZTsKK+W7tSA8IHRvXC1nb1wtb25cLWNpcmN1aXQ7CivkuIDkuIvlrZAgPCBpblwtYVwtc2hvcnRcLXdoaWxlOwor5ZOI5be06LC35pu4IDwgYm9va1wtb2ZcLWhhYmFra3VrOwor5qC46Kit5pa9IDwgbnVjbGVhclwtZmFjaWxpdHk7CivlnIvlipsgPCBhXC1uYXRpb24nJ3NcLXBvd2VyOwor55m95aOB5b6u55GVIDwgYVwtc2xpZ2h0XC1ibGVtaXNoOwor5Y2B5bm+5YCL5pyIIDwgdGVuXC1tb250aHNcLW9yXC1zbzsKK+mdnuaUv+W6nCA8IG5vblwtZ292ZXJubWVudGFsOwor5Li75bm557eaIDwgYmFja2JvbmVcLVwoY2FibGVcKTsKK+WsjiA8IHRvXC1iZWFyXC1tdWx0aXBsZTsKK+mbu+imluapnyA8IHRlbGV2aXNpb25cLVwoc2V0XCk7CivlqqQgPCBodXNiYW5kJydzXC1mYW1pbHk7Civmia7mvJQgPCBwbGF5XC10aGVcLXBhcnRcLW9mOwor5rWB6KGM55eFIDwgZXBpZGVtaWNcLWRpc2Vhc2U7Civnl4Xlm6AgPCBjYXVzZVwtb2ZcLWRpc2Vhc2U7Civou43kuosgPCBtaWxpdGFyeVwtYWZmYWlyczsKK+S9lOe3miA8IGJ1c3lcLVwodGVsZXBob25lXCk7CivlsbHmnZEgPCBtb3VudGFpblwtdmlsbGFnZTsKK+S/oeeUqOitiSA8IGxldHRlclwtb2ZcLWNyZWRpdDsKK+S4jeWKoOaAnee0oiA8IHdpdGhvdXRcLXRoaW5raW5nOwor5ZuNIDwgZG91YmxlXC1oYXBwaW5lc3M7CivlmrMgPCBteXRoaWNhbFwtZW1wZXJvcjsKK+WtuOihk+eVjCA8IGFjYWRlbWljXC1jaXJjbGVzOwor5ouQ5b2OIDwgdG9cLXR1cm5cLWFcLWNvcm5lcjsKK+iBmuiuiiA8IFwobnVjbGVhclwpXC1mdXNpb247CivooajlhoogPCBzdGF0aXN0aWNhbFwtZm9ybTsKK+WYhSA8IHNvdW5kXC1vZlwtc2lnaGluZzsKK+WWruaooeWFiee6liA8IHNpbmdsZW1vZGVcLWZpYmVyOwor5pyA5aSn6IO95YqbIDwgbWF4aW11bVwtY2FwYWNpdHk7CivooZvmmJ/ln44gPCBcInNhdGVsbGl0ZVwiXC10b3duOwor5ZeeIDwgdG9cLWNvbnN1bHRcLWFib3V0Owor5Za6IDwgdG9cLWJlXC1sb2NhdGVkXC1hdDsKK+WvqeeQhiA8IHRvXC1oZWFyXC1cKGFcLWNhc2VcKTsKK+aKhOacrCA8IGhhbmR3cml0dGVuXC1jb3B5Owor6IiU5ZCuIDwgdG9cLWxpY2tcLWFuZFwtc3VjazsKK+eahOS4gOeoriA8IGlzXC1vbmVcLVwoa2luZFwtb2ZcKTsKK+abvOW+t+aLiSA8IFwobmVsc29uXClcLW1hbmRlbGE7CivmnInnt5rpm7voppYgPCBjYWJsZVwtdGVsZXZpc2lvbjsKK+WNsOWcsOiqniA8IGhpbmRpXC1cKGxhbmd1YWdlXCk7Civkvr/mqYsgPCB0ZW1wb3JhcnlcLWJyaWRnZTsKK+W3pealreWMliA8IHRvXC1pbmR1c3RyaWFsaXplOwor5YaTIDwgYVwtc2VjbHVkZWRcLXBsYWNlOwor5LiN6K6K6LOH5pysIDwgY29uc3RhbnRcLWNhcGl0YWw7CivlhIogPCByb3VnaFwtYW5kXC1ydWdnZWQ7CivlgpwgPCBhXC1taW5vcml0eVwtdHJpYmU7CivnrYbmiLAgPCB3cml0dGVuXC1wb2xlbWljczsKK+S+v+acjSA8IGV2ZXJ5ZGF5XC1jbG90aGVzOwor5oSf6KydIDwgXChleHByZXNzXClcLXRoYW5rczsKK+S2sSA8IGFcLWtpbmRcLW9mXC10dXJ0bGU7CivktaQgPCB0b1wtY3JhY2tcLW9yXC1jaGFwOwor5LWjIDwgd2hpdGVcLXdpdGhcLWJsYWNrOwor5LWDIDwgYVwta2luZFwtb2ZcLWJhcmxleTsKK+S0rCA8IGNydW1ic1wtb2ZcLWJhcmxleTsKK+WHuueJiOekviA8IHB1Ymxpc2hpbmdcLWhvdXNlOwor5LiL6aasIDwgZGlzbW91bnRcLWFcLWhvcnNlOwor5LSFIDwgYVwtbGVnZW5kYXJ5XC1iaXJkOwor5rKW57mp5bO2IDwgb2tpbmF3YVwtXChpc2xhbmRcKTsKK+SzoiA8IHNtYWxsXC13aWxkXC1nb29zZTsKK+SzkCA8IGFuXC1vd2xcLWxpa2VcLWJpcmQ7CivlronnnKAgPCBzbGVlcFwtcGVhY2VmdWxseTsKK+SysiA8IGFcLWhhd2tcLWxpa2VcLWJpcmQ7CivlsaTlsaQgPCBsYXllclwtdXBvblwtbGF5ZXI7CivksIMgPCBkaXNoZXZlbGxlZFwtaGFpcjsKK+SvsyA8IGxvb3NlbHlcLWFycmFuZ2VkOwor562G5bi9IDwgdGhlXC1jYXBcLW9mXC1hXC1wZW47Civkr4cgPCB0b1wtZXhlcnRcLW9uZXNlbGY7CivkrrQgPCB1bnN0YWJsZVwtd2Fsa2luZzsKK+SusyA8IHRvXC1naXZlXC1iaXJ0aFwtdG87CivkroEgPCBhXC1wYWlyXC1vZlwtaG9yc2VzOwor5KuMIDwgYm93ZWRcLW9uZScnc1wtaGVhZDsKK+SqjiA8IHN0cmluZ3NcLW9mXC1hXC1jYXA7CivkqaUgPCBhXC1iZWx0XC1mb3JcLWhvcnNlOwor5Ki7IDwgcm9hclwtb2ZcLXRodW5kZXJzOwor5Ki0IDwgZ2F0aGVyaW5nXC1jbG91ZHM7CivkqLMgPCB0aGVcLXJhaW5cLXN0b3BwZWQ7CivkqI8gPCBzb3VuZFwtb2ZcLXJhaW5pbmc7CivkqIogPCBhXC1mbG9ja1wtb2ZcLWJpcmRzOwor5KehIDwgYVwtZm9ydGlmaWVkXC13YWxsOwor6LK2576pIDwgZGVyb2dhdG9yeVwtc2Vuc2U7Civkp4QgPCBuYW1lXC1vZlwtYVwtcGVyc29uOwor5KaVIDwgYmFuZ1wtb2ZcLXRoZVwtZG9vcjsKK+SlmyA8IGFcLWtpbmRcLW9mXC1zaWNrbGU7CivplbfluqbmjIfnpLrnrKYgPCBsZW5ndGhcLWluZGljYXRvcjsKK+S9nOazlSA8IGNvdXJzZVwtb2ZcLWFjdGlvbjsKK+SjriA8IHNtZWxsXC1vZlwtYWxjb2hvbDsKK+SjqyA8IHNvdXJlZFwtYmVhblwtY3VyZDsKK+SiniA8IHJvd3NcLWFuZFwtY29sdW1uczsKK+ShriA8IHRyYWNlXC1vZlwtYVwtd2hlZWw7CivkoaIgPCBhXC1zbWFsbFwtY2FycmlhZ2U7CivmvJTlk6EgPCBhY3Rvclwtb3JcLWFjdHJlc3M7CivkoLsgPCB0b1wtYmVuZFwtdGhlXC1ib2R5Owor6ZGS5YilIDwgdG9cLWRpZmZlcmVudGlhdGU7Civkn4sgPCB0b1wtcHJlc3NcLWZvcndhcmQ7Civkv53lr4YgPCBtYWludGFpblwtc2VjcmVjeTsKK+SejCA8IHRvXC1sb3NlXC1pblwtdHJhZGU7CivknYsgPCBhXC1saXR0bGVcLW9mXC1waWdzOwor5J2HIDwgZ3J1bnRpbmdcLW9mXC1waWdzOwor5JuPIDwgdG9cLWNhbGxcLXNvbWVib2R5Owor5JuOIDwgdG9cLXNob3V0XC1pblwtcmFnZTsKK+SbgiA8IHRvXC1zZXBhcmF0ZVwtZnJvbTsKK+SalCA8IHRvXC1sb29rXC1zdWRkZW5seTsKK+SakiA8IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqDIDwgdG9cLXJlYWxpemVcLWZ1bGx5Owor5YCf5YqpIDwgdG9cLWdldFwtaGVscFwtZnJvbTsKK+SZrSA8IHRvXC1saWZ0XC1vclwtcmFpc2U7Civpm7voqbHkv6HomZ8gPCB0ZWxlcGhvbmVcLXNpZ25hbDsKK+SYiyA8IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivmsJHkuLvpu6ggPCBkZW1vY3JhdGljXC1wYXJ0eTsKK+SXjyA8IG5hbWVcLW9mXC1hXC1pbnNlY3Q7Civklq8gPCBwb2lzb25vdXNcLWluc2VjdDsKK+SWkCA8IHNvdW5kXC1vZlwtYVwtdGlnZXI7CivnlJjlnLAgPCBcKG1haGF0bWFcKVwtZ2FuZGhpOwor5Lu/55yf5pyN5YuZ5ZmoIDwgZW11bGF0aW9uXC1zZXJ2ZXI7CivkkqMgPCBsdXNoXC1vclwtZGVsaWNhdGU7CivkkbggPCBhXC1ncm91cFwtb2ZcLWJvYXRzOwor5JGFIDwgZGl6enlcLWFuZFwtc2xlZXB5Owor5JCoIDwgYmFja1wtb2ZcLXRoZVwtZm9vdDsKK+SPkiA8IGhhbGZcLW9mXC10aGVcLWJvZHk7Civkj48gPCBzaWduc1wtYW5kXC1ncm9hbnM7Civkjq8gPCB3aW50ZXJcLXBsb3VnaGluZzsKK+SOgiA8IGNvbG9yZnVsXC1mZWF0aGVyOwor6Zu76KaW5YqHIDwgdHZcLWRyYW1hXC1wcm9ncmFtOwor5IukIDwgcGxhaW5cLXdoaXRlXC1zaWxrOwor5IuUIDwgdG9cLWJhbmRcLXRvZ2V0aGVyOwor5Im3IDwgYVwtZmVhdGhlclwtc2NyZWVuOwor5ImJIDwgYVwtd3JpdGluZ1wtdGFibGV0Owor5IiZIDwgYmFtYm9vXC10b1wtd2l0aGVyOwor5IiIIDwgYVwta2luZFwtb2ZcLWJhbWJvbzsKK+azqOmHjSA8IHBheVwtYXR0ZW50aW9uXC10bzsKK+SGvyA8IHRvXC10YWxrXC1pblwtc2xlZXA7CivkhrIgPCBhXC1zcGFjaW91c1wtaG91c2U7CivkhoggPCB5b3VuZ1wtYW5kXC10ZW5kZXI7CivkhbwgPCBhXC1raW5kXC1vZlwtZ3JhaW5zOwor5IW6IDwgZ3JhaW5cLWluXC10aGVcLWVhcjsKK+i8u+WwhOazoiA8IHJhZGlhdGlvblwtXCh3YXZlXCk7Civmh7jmjpsgPCBcKGNhclwpXC1zdXNwZW5zaW9uOwor5IKqIDwgaGFyZFwtYmFycmVuXC1sYW5kOwor5ICDIDwgYVwta2luZFwtb2ZcLXZlc3NlbDsKK+O+piA8IHNjYWJcLW92ZXJcLWFcLXNvcmU7CivjvoEgPCB3YWxraW5nXC1saWtlXC1tYWQ7Civjva4gPCBhXC1wb2ludFwtb2ZcLWxpZ2h0Owor472KIDwgY3JhY2tpbmdcLW9mXC10aWxlOwor47uSIDwgcmVkXC1jb2xvcmVkXC1qYWRlOwor47uBIDwgYVwta2luZFwtb2ZcLWphc3BlcjsKK+S4jeisnSA8IGRvbicndFwtbWVudGlvblwtaXQ7CivjurUgPCBibGFja1wtamFkZVwtc3RvbmU7CivjurQgPCBuYW1lXC1vZlwtYVwtc3Bpcml0Owor47qmIDwgYVwtcnVubmluZ1wtYW5pbWFsOwor47m6IDwgZG9nXC10b1wtdGFrZVwtZm9vZDsKK+O5hyA8IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuKMgPCBpblwtYW5jaWVudFwtY2hpbmE7CivmnKznvqkgPCBvcmlnaW5hbFwtbWVhbmluZzsKK+O2viA8IHRvdWdoXC1hbmRcLWhvbmVzdDsKK+O2jSA8IG5hbWVcLW9mXC1hXC1zdHJlYW07CivkvLTmmJ8gPCBjb21wYW5pb25cLVwoc3RhclwpOwor5L+d5YWoIDwgc2F2ZVwtZnJvbVwtZGFtYWdlOwor47SnIDwgb2ZcLWZsb3dpbmdcLXdhdGVyOwor5aiB54i+5aOr6KqeIDwgd2Vsc2hcLVwobGFuZ3VhZ2VcKTsKK+aKhOS7tiA8IGR1cGxpY2F0ZVwtXChjb3B5XCk7Civjs70gPCBhXC13YXRlcnlcLWV4cGFuc2U7CivjsbYgPCBhXC1zd2VsbGVuXC1jb3Jwc2U7Civjsa0gPCBhblwtaW5mZXJ0aWxlXC1lZ2c7CivjsKQgPCB0b1wtbGF1Z2hcLWhlcnRpbHk7CivjsJsgPCBuYW1lXC1vZlwtYVwtY291bnR5Owor47CFIDwgZWF2ZXNcLW9mXC1hXC1ob3VzZTsKK+OvlSA8IHN0aWNrc1wtb3JcLWZyYW1lczsKK+OvgyA8IHRoZVwtdmFybmlzaFwtdHJlZTsKK+eUt+WtkOexg+eQgyA8IG1lbicnc1wtYmFza2V0YmFsbDsKK+OukyA8IGFuXC1leHRyZW1lXC1saW1pdDsKK+OtuiA8IHRoZVwtY2hlcnJ5XC1hcHBsZTsKK+iBr+mCpuWkp+aokyA8IGZlZGVyYWxcLWJ1aWxkaW5nOwor46qtIDwgdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qWIDwgc291bmRcLW9mXC1iZWF0aW5nOwor5pmu6YCa5ZWP6aGMIDwgY29tbW9uXC1xdWVzdGlvbnM7CivjqLwgPCB0b1wtdGFrZVwtYnlcLWZvcmNlOwor57236KqyIDwgc3R1ZGVudCcnc1wtc3RyaWtlOwor46e6IDwgYVwtZmluZ2VyXC13cmFwcGVyOwor6Ly46YCB5aqS5LuLIDwgdHJhbnNwb3J0XC1tZWRpdW07CivjppwgPCB0b1wtbW92ZVwtdGhlXC1taW5kOwor5oeJ5oiwIDwgZmFjZVwtYVwtY2hhbGxlbmdlOwor5qC45aiBIDwgbnVjbGVhclwtc3RyZW5ndGg7CivjorAgPCB0b1wtc3RyZXRjaFwtYVwtYm93Owor6Jmc542yIDwgY2FwdHVyZVwtXChwZW9wbGVcKTsKK+OhvSA8IGRlcHJhdmVkXC10YWxraW5nOwor46GJIDwgYVwta2luZFwtb2ZcLWZhYnJpYzsKK+OgpyA8IGFcLWxpdHRsZVwtc2xhbnRlZDsKK+OgjiA8IGFcLWxvZnR5XC1tb3VudGFpbjsKK+acrOelqCA8IGNhc2hpZXInJ3NcLWNoZXF1ZTsKK+mYsuihm+atpuWZqCA8IGRlZmVuc2l2ZVwtd2VhcG9uOwor452rIDwgc2hhcGVcLW9mXC10aGVcLXNreTsKK+OdqiA8IGFcLXNsYW50aW5nXC1ob3VzZTsKK+OdqSA8IHNwYWNpb3VzbHlcLXJvb21zOwor6YGO5Lu957Ch5Zau5YyWIDwgb3ZlcnNpbXBsaWNhdGlvbjsKK+OctCA8IGRhcmtcLWFuZFwtb2JzY3VyZTsKK+OcnSA8IHRvXC1jaGVyaXNoXC1hbmdlcjsKK+OciCA8IGFcLWJlYXVnaWZ1bFwtZmFjZTsKK+mrlOiCsuS5i+eqlyA8IHdpbmRvd1wtb25cLXNwb3J0czsKK+abuOWvq+iqnuiogCA8IHdyaXR0ZW5cLWxhbmd1YWdlOwor45qcIDwgd2l0aFwtZ3JlYXRcLXBvd2VyOwor45qXIDwgd2l0aFwtYVwtYmlnXC1tb3V0aDsKK+OahyA8IGRyYXdcLXRoZVwtZmVldFwtdXA7CivjmZ4gPCBhXC1zbWFsbFwtbW91bnRhaW47CivjmY4gPCBicmVhY2hcLW9mXC1hXC10YW5rOwor45mFIDwgYVwtd2FsbGVkXC12aWxpYWdlOwor45mAIDwgYVwtdmVnZXRhYmxlXC1wbG90Owor45e7IDwgYmFieScnc1wtYW5zd2VyaW5nOwor45eZIDwgdG9cLXNob3V0XC1vclwtYmF3bDsKK+OVrSA8IHRvXC1iYXJrXC1hc1wtYVwtZG9nOwor45WpIDwgc291bmRcLW9mXC10YXBwaW5nOwor5a6J5b69IDwgYW5odWlcLVwocHJvdmluY2VcKTsKK+OVhyA8IHJvY2tzXC1jb2xsYXBzaW5nOwor45SRIDwgYW5cLWluY2lzZWRcLXdvdW5kOwor5ZWG5qWt5YyWIDwgdG9cLWNvbW1lcmNpYWxpemU7Civjkq0gPCBhblwtZWxkZXJcLWJyb3RoZXI7CivjkoEgPCBvZlwtZ3JlYXRcLXN0YXR1cmU7Civnq5nlj7AgPCByYWlsd2F5XC1wbGF0Zm9ybTsKK+WFseS6q+W4tuWvrCA8IHNoYXJlZFwtYmFuZHdpZHRoOwor45CAIDwgaGlsbG9ja1wtb3JcLW1vdW5kOwor5paH5YyW6Zqc56SZIDwgY3VsdHVyYWxcLWJhcnJpZXI7Civnm7TmjqXlvbHpn78gPCBkaXJlY3RcLWluZmx1ZW5jZTsKK+iIh+atpOWQjOaZgiA8IGF0XC10aGVcLXNhbWVcLXRpbWU7CivkuLvopoHkvobmupAgPCBwcmluY2lwbGVcLXNvdXJjZTsKK+S6uuawkeWFrOekviA8IHBlb3BsZScnc1wtY29tbXVuZTsKK+eNsuebiiA8IG9idGFpblwtYVwtYmVuZWZpdDsKK+S4i+mdouiri+eciyA8IHBsZWFzZVwtc2VlXC1iZWxvdzsKK+S7iuaYlCA8IHBhc3RcLWFuZFwtcHJlc2VudDsKK+adv+aglyA8IGNoaW5lc2VcLWNoZXN0bnV0Owor5ZC4566hIDwgXChkcmlua2luZ1wpXC1zdHJhdzsKK+WutuWLmSA8IGhvdXNlaG9sZFwtZHV0aWVzOwor6YeR6J6N6aKo5rOiIDwgZmluYW5jaWFsXC1jcmlzaXM7CivplovluZXlvI8gPCBvcGVuaW5nXC1jZXJlbW9ueTsKK+Wvpue/kueUnyA8IGludGVyblwtXChzdHVkZW50XCk7CivmsJHplpMgPCBhbW9uZ1wtdGhlXC1wZW9wbGU7CivlqZrnpq4gPCB3ZWRkaW5nXC1jZXJlbW9ueTsKK+itpuihmyA8IFwoc2VjdXJpdHlcKVwtZ3VhcmQ7Civnn6XorZjlt6XnqIvluKsgPCBrbm93bGVkZ2VcLXdvcmtlcjsKK+Wci+izk+mkqCA8IHN0YXRlXC1ndWVzdGhvdXNlOwor5Lm+5p2vIDwgdG9cLWRyaW5rXC1hXC10b2FzdDsKK+eMv+eMtCA8IGFwZXNcLWFuZFwtbW9ua2V5czsKK+e2sue1oeWNlOitsCA8IG5ldHdvcmtcLXByb3RvY29sOwor5Lim5r+AIDwgc2h1bnRcLWV4Y2l0YXRpb247Civph4/ntrEgPCBkaW1lbnNpb25cLVwodW5pdFwpOwor6LOq5ZWPIDwgXChhc2tcLWFcKVwtcXVlc3Rpb247CivokpDpm4YgPCB0b1wtZ2F0aGVyXC1cKGRhdGFcKTsKK+S4ieWNg+WIsOS6lOWNg+iQrCA8IDMwXC10b1wtNTBcLW1pbGxpb247CivkuI3oh7PmlrwgPCBjYW5ub3RcLWdvXC1zb1wtZmFyOwor5pqR55ifIDwgdHJvcGljYWxcLWRpc2Vhc2U7CivljZropr0gPCByZWFkXC1leHRlbnNpdmVseTsKK+a3seWFpSA8IHBlbmV0cmF0ZVwtZGVlcGx5Owor5Li55qGCIDwgb3JhbmdlXC1vc21hbnRodXM7Civmnb/lo4EgPCB3b29kZW5cLXBhcnRpdGlvbjsKK+afkOS6uiA8IGFcLWNlcnRhaW5cLXBlcnNvbjsKK+aciOabhiA8IG1vbnRobHlcLWNhbGVuZGFyOwor5rK755eFIDwgdHJlYXRcLWFuXC1pbGxuZXNzOwor5Y2B6KqhIDwgdGVuXC1jb21tYW5kbWVudHM7Civnmb3ooaPmiLDlo6sgPCB3YXJyaW9yXC1pblwtd2hpdGU7CivlronlpoLno5Dnn7MgPCBhc1wtc29saWRcLWFzXC1yb2NrOwor5aSW6ZW3IDwgZm9yZWlnblwtbWluaXN0ZXI7Civnmb7liIbpu54gPCBwZXJjZW50YWdlXC1wb2ludDsKK+mFjeiXpSA8IGRpc3BlbnNlXC1cKGRydWdzXCk7Civlip/og73pm4YgPCBmdW5jdGlvblwtbGlicmFyeTsKK+Wtl+S4siA8IGNoYXJhY3Rlclwtc3RyaW5nOwor5pWF6Zqc5o6S6ZmkIDwgZmF1bHRcLXJlc29sdXRpb247Civph5Hono3mlLnpnakgPCBmaW5hbmNpYWxcLXJlZm9ybTsKK+S4gOWAi+S4reWci+aUv+etliA8IG9uZVwtY2hpbmFcLXBvbGljeTsKK+WMluWtuOaIsCA8IGNoZW1pY2FsXC13YXJmYXJlOwor5aSn5aSa5pW4IDwgXChncmVhdFwpXC1tYWpvcml0eTsKK+Wkp+mBuCA8IGdlbmVyYWxcLWVsZWN0aW9uOwor5ZSQ5LujIDwgdGhlXC10YW5nXC1keW5hc3R5Owor5oCn55eFIDwgdmVuZXJlYWxcLWRpc2Vhc2U7CivlkJvmrIogPCBtb25hcmNoaWFsXC1wb3dlcjsKK+mbjOaAp+aOpeWPoyA8IGZlbWFsZVwtY29ubmVjdG9yOwor6JeP5paHIDwgdGliZXRhblwtbGFuZ3VhZ2U7Civlv4Poh5/np7vmrpYgPCBoZWFydFwtdHJhbnNwbGFudDsKK+iPj+iYreiqniA8IGR1dGNoXC1cKGxhbmd1YWdlXCk7CivkuIDlubTlpJogPCBtb3JlXC10aGFuXC1hXC15ZWFyOwor6YGZ5o6n5pON5L2cIDwgcmVtb3RlXC1vcGVyYXRpb247CivnsKHllq7nmoToqqogPCB0b1wtcHV0XC1pdFwtc2ltcGx5Owor5YWJ5o6l5pS25ZmoIDwgb3B0aWNhbFwtcmVjZWl2ZXI7CivmqZ/morDoqp7oqIAgPCBtYWNoaW5lXC1sYW5ndWFnZTsKK+iDoeW/l+aYjuW4giA8IGhvXC1jaGlcLW1pbmhcLWNpdHk7CivoroDniakgPCByZWFkaW5nXC1tYXRlcmlhbDsKK+mCiumYsiA8IGZyb250aWVyXC1kZWZlbmNlOwor5YWx5ZKM6buoIDwgcmVwdWJsaWNhblwtcGFydHk7CivohJbpoLjlhZIgPCBiYWNrXC1vZlwtdGhlXC1uZWNrOwor5ZCR5p2xIDwgdG93YXJkc1wtdGhlXC1lYXN0Owor5aSn54Sh55WPIDwgdXR0ZXJseVwtZmVhcmxlc3M7Civpm4bpjKYgPCBiZXN0XC1vZlwtdGhlXC1iZXN0Owor57235pWZIDwgdGVhY2hlcicnc1wtc3RyaWtlOwor5aSW6KqeIDwgZm9yZWlnblwtbGFuZ3VhZ2U7CivoqrLooaggPCBzY2hvb2xcLXRpbWV0YWJsZTsKK+iqpOinoyA8IG1pc3VuZGVyc3RhbmRpbmc7CivkuI3nn6XmiYDkupEgPCBub3RcLWtub3dcLXdoYXRcLXNiOwor5LiN5b+ZIDwgdGhlcmUnJ3NcLW5vXC1odXJyeTsKK+i2hemrmOmAnyA8IHVsdHJhXC1oaWdoXC1zcGVlZDsKK+mbhumDtSA8IHN0YW1wXC1jb2xsZWN0aW5nOwor5bug6ZW3IDwgZmFjdG9yeVwtZGlyZWN0b3I7Civororms5UgPCBwb2xpdGljYWxcLXJlZm9ybTsKK+azouaKmCA8IHR3aXN0c1wtYW5kXC10dXJuczsKK+e+pOWztiA8IGdyb3VwXC1vZlwtaXNsYW5kczsKK+WkqumZveW+ruezu+e1seWFrOWPuCA8IHN1blwtbWljcm9zeXN0ZW1zOwor6IGv5bit5pyD6K2wIDwgam9pbnRcLWNvbmZlcmVuY2U7CivkuqTmj5vntrLot68gPCBzd2l0Y2hlZFwtbmV0d29yazsKK+eKr+azlSA8IHRvXC1icmVha1wtdGhlXC1sYXc7CivkuI3lsJEgPCBub3RcLVwoanVzdFwpXC1hXC1mZXc7CivlubTpvaEgPCBcKGFcLXBlcnNvbicnc1wpXC1hZ2U7CivmgKfmjqXop7ggPCBzZXh1YWxcLWVuY291bnRlcjsKK+avlOe/vCA8IGZseVwtd2luZ1wtdG9cLXdpbmc7CivpqqjlubnntrLot68gPCBiYWNrYm9uZVwtbmV0d29yazsKK+i7n+S7tuS8gealrSA8IHNvZnR3YXJlXC1jb21wYW55Owor5ou/5omL6I+cIDwgc3BlY2lhbHR5XC1cKGRpc2hcKTsKK+aWvea0l+e0hOe/sCA8IGpvaG5cLXRoZVwtYmFwdGlzdDsKK+elnuWlhyA8IG1hZ2ljYWxcLW15c3RpY2FsOwor56aB5ZOBIDwgY29udHJhYmFuZFwtZ29vZHM7CivlsLzluIznsbPoqJggPCBib29rXC1vZlwtbmVoZW1pYWg7CivloLHntJnloLHlsI4gPCBuZXdzcGFwZXJcLXJlcG9ydDsKK+acgOWFiCA8IFwodGhlXClcLXZlcnlcLWZpcnN0Owor5piO5reoIDwgYnJpZ2h0XC1hbmRcLWNsZWFuOwor6YeN5oW2IDwgY2hvbmdxaW5nXC1cKGNpdHlcKTsKK+WphuWphiA8IGh1c2JhbmQnJ3NcLW1vdGhlcjsKK+S6kuaTjeaApyA8IGludGVyb3BlcmFiaWxpdHk7CivlkIPlrowgPCB0b1wtZmluaXNoXC1lYXRpbmc7CivpgLzov5EgPCBwcmVzc1wtb25cLXRvd2FyZHM7CivloLHppKggPCBuZXdzcGFwZXJcLW9mZmljZTsKK+mbu+e6nCA8IFwoZWxlY3RyaWNcKVwtY2FibGU7Civlip/og73nvqQgPCBmdW5jdGlvbmFsXC1ncm91cDsKK+eLgOaFiyA8IHN0YXRlXC1vZlwtYWZmYWlyczsKK+S4reS7iyA8IGFnZW50XC1cKGNvbXB1dGVyXCk7CivkuI3lhYkgPCBub3RcLXRoZVwtb25seVwtb25lOwor5pqR5aSpIDwgaG90XC1cKHN1bW1lclwpXC1kYXk7Civlj43lsI0gPCB0b1wtZmlnaHRcLWFnYWluc3Q7CivkuI3kuYUgPCBub3RcLWxvbmdcLVwoYWZ0ZXJcKTsKK+mboumWi+WMl+S6rCA8IHRvXC1sZWF2ZVwtYmVpamluZzsKK+S4gOi8qeWtkCA8IFwoZm9yXClcLWFcLWxpZmV0aW1lOwor552oIDwgbG9va1wtYXNrYW5jZVwtYXQ7CivmgI4gPCB3aGF0XD9cLXdoeVw/XC1ob3dcPzsKK+aUtiA8IGdhdGhlclwtdG9nZXRoZXI7CivlhZogPCBwb2xpdGljYWxcLXBhcnR5Owor54mIIDwgcHJpbnRpbmdcLWJsb2NrczsKK+WtoyA8IHF1YXJ0ZXJcLW9mXC15ZWFyOwor54mhIDwgbWFsZVwtb2ZcLWFuaW1hbHM7CivoqLogPCBleGFtaW5lXC1wYXRpZW50Owor5aeRIDwgZmF0aGVyJydzXC1zaXN0ZXI7CivopJMgPCBzd2FkZGxpbmdcLWNsb3RoOwor6aaGIDwgcHVibGljXC1idWlsZGluZzsKK+a8vyA8IGFueVwtdGhpY2tcLWZsdWlkOwor6ZuEIDwgbWFsZVwtb2ZcLXNwZWNpZXM7Civkur8gPCBodW5kcmVkXC1taWxsaW9uOwor5Zu6IDwgdG9cLWJlY29tZVwtc29saWQ7CivmuqogPCBtb3VudGFpblwtc3RyZWFtOwor6JmeIDwgY29uY2VybmVkXC1hYm91dDsKK+WXmiA8IHNvdW5kXC1vZlwtY3J5aW5nOwor6JaHIDwgb3NtdW5kYVwtcmVnYWxpczsKK+aIjyA8IHRoZWF0cmljYWxcLXBsYXk7Civlj6wgPCBpbXBlcmlhbFwtZGVjcmVlOwor55GeIDwgZmVsaWNpdG91c1wtb21lbjsKK+msoiA8IGhhaXJcLW9uXC10ZW1wbGVzOwor5YOnIDwgYnVkZGhpc3RcLXByaWVzdDsKK+aqnCA8IGNoaW5lc2VcLWN5cHJlc3M7Civmqo4gPCBzbWFsbFwtcmVkXC1hcHBsZTsKK+mphSA8IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+iHnyA8IGludGVybmFsXC1vcmdhbnM7CivlnLMgPCBmdXJyb3dcLWluXC1maWVsZDsKK+e5uyA8IGZpbmVcLXNpbGtcLWd1YXplOwor5a2fIDwgZmlyc3RcLWluXC1zZXJpZXM7CivnuIsgPCBjbGltYlwtZG93blwtcm9wZTsKK+mWpCA8IHNtYWxsXC1zaWRlXC1kb29yOwor5paOIDwgdmVnZXRhcmlhblwtZGlldDsKK+ebryA8IHJpdmV0XC1nYXplXC11cG9uOwor57KfIDwgdW5odXNrZWRcLW1pbGxldDsKK+exkCA8IGNsaW1iaW5nXC1wbGFudHM7CivmjrsgPCBzY3JhdGNoXC1saWdodGx5Owor5L+YIDwgcHJpc29uZXJcLW9mXC13YXI7CivmjL4gPCBjbGFzcFwtdW5kZXJcLWFybTsKK+WqsyA8IGRhdWdodGVyXC1pblwtbGF3Owor5a6ZIDwgdGltZVwtYXNcLWNvbmNlcHQ7CivljZwgPCBmb3J0dW5lXC10ZWxsaW5nOwor5biWIDwgaW52aXRhdGlvblwtY2FyZDsKK+mAniA8IGluZHVsZ2VcLW9uZXNlbGY7Civmj6ogPCBncmFzcFwtd2l0aFwtaGFuZDsKK+S7kSA8IGxvZ2ljYWxcLXJlYXNvbnM7CivnhZ4gPCBtYWxpZ25hbnRcLWRlaXR5Owor6bOMIDwgaHVnZVwtc2VhXC10dXJ0bGU7CivnnqkgPCB3YXRjaFwtY2FyZWZ1bGx5Owor55aaIDwgY2hyb25pY1wtZGlzZWFzZTsKK+iUkyA8IGNyZWVwaW5nXC1wbGFudHM7Civpqo8gPCBleGNlbGxlbnRcLWhvcnNlOwor6Ze9IDwgZnVqaWFuXC1wcm92aW5jZTsKK+iihSA8IGN1cmxpbmdcLXVwd2FyZHM7CivovpAgPCBzcG9rZXNcLW9mXC13aGVlbDsKK+eQiSA8IHNwYXJrbGluZ1wtc3RvbmU7CivoiJwgPCBsZWdlbmRhcnlcLXJ1bGVyOwor6L2nIDwgY3J1c2hcLWJ5XC13ZWlnaHQ7Civmu4cgPCB5dW5uYW5cLXByb3ZpbmNlOwor5qGTIDwgdmFyaWV0eVwtb2ZcLXRyZWU7Civmo6AgPCBjcmFiXC1hcHBsZVwtdHJlZTsKK+WQriA8IHN1Y2tcLXdpdGhcLW1vdXRoOwor6Jy3IDwgY3JlZXBcLWxpa2VcLXdvcm07CivmnrcgPCBjYW5ndWVcLXNjYWZmb2xkOwor576yIDwgYW5jaWVudFwtZW1wZXJvcjsKK+WtmiA8IGJyb29kXC1vdmVyXC1lZ2dzOwor55qRIDwgYnJpbGxpYW50XC13aGl0ZTsKK+e8pSA8IGxpZ2h0XC1ibHVlXC1zaWxrOwor6K+MIDwgcGxheVwtd2l0aFwtd29yZHM7Civms74gPCBuYW1lXC1vZlwtYVwtcml2ZXI7Civop44gPCBkZXNpcmVcLXN0cm9uZ2x5Owor5466IDwgaW1wZXJpYWxcLXNpZ25ldDsKK+WNniA8IHRvXC1iZVwtaW1wYXRpZW50Owor6L6UIDwgYnJpZGxlXC1vZlwtaG9yc2U7CivotpQgPCBub3RcLXByb2dyZXNzaW5nOwor5b6cIDwgd2Fsa2luZ1wtYW5kXC1mcm87CivojaAgPCB3YXRlclwtY2hlc3RudXRzOwor5rGeIDwgZWxlbWVudFwtbWVyY3VyeTsKK+eVvyA8IGltcGVyaWFsXC1kb21haW47CivoiIIgPCBncmluZFwtaW5cLW1vcnRhcjsKK+extCA8IHB1cmNoYXNlXC1ncmFpbnM7CivnqbAgPCBzdGFsa3NcLW9mXC1ncmFpbjsKK+WXhCA8IGhvYXJzZVwtb2ZcLXZvaWNlOwor5riaIDwgc21hbGxcLXNhbmRcLWJhbms7CivnoJ0gPCBiYWxhbmNlXC13ZWlnaHRzOwor5p28IDwgc2h1dHRsZVwtb2ZcLWxvb207CivpvoMgPCBpcnJlZ3VsYXJcLXRlZXRoOwor5YuQIDwgaW1wZXJpYWxcLWRlZ3JlZTsKK+efuCA8IGFcLXJvY2tcLW9yXC1jbGlmZjsKK+iVqCA8IHB0ZXJpc1wtYXF1aWxpbmE7CivosYkgPCBmZXJtZW50ZWRcLWJlYW5zOwor5b6tIDwgY29uc2NyaXB0XC1sYWJvcjsKK+m6iCA8IHNwZWNpZXNcLW9mXC1kZWVyOwor6JWkIDwgZHJvb3BpbmdcLWxlYXZlczsKK+e7oSA8IHJhd1wtc2lsa1wtZmFicmljOwor6IqoIDwgbmFtZVwtb2ZcLWFcLXBsYW50Owor6IujIDwga2luZFwtb2ZcLWxldHR1Y2U7CivnopsgPCBzYW5kXC1hbmRcLWdyYXZlbDsKK+iOkiA8IGhlbXBcLWxpa2VcLXBsYW50Owor6JCBIDwga2luZFwtb2ZcLWdyYXNzZXM7CivnnIQgPCB0b1wtbG9va1wtYXNrYW5jZTsKK+WbnyA8IHRvcFwtb2ZcLXRoZVwtaGVhZDsKK+WyoyA8IGFcLWhpbGxcLWluXC1odW5hbjsKK+WXviA8IHRvXC1zZXRcLWFcLWRvZ1wtb247CivojZwgPCBzcGVjaWVzXC1vZlwtYmVhbjsKK+ezgSA8IGFcLWdyYWluXC1vZlwtcmljZTsKK+eynSA8IHVucG9saXNoZWRcLXJpY2U7Civoo7AgPCB0b1wtbWVuZFwtY2xvdGhlczsKK+iWqCA8IGRlYXRoXC1vZlwtcHJpbmNlOwor6IyRIDwgdGhlXC1jb252b3Z1bHZ1czsKK+e/riA8IHN0ZW1cLW9mXC1mZWF0aGVyOwor6ImfIDwgYW5jaWVudFwtd2Fyc2hpcDsKK+m8ryA8IGZseWluZ1wtc3F1aXJyZWw7CivnoKkgPCBuYW1lXC1vZlwtYVwtc3RvbmU7CivngrsgPCBhXC1raW5kXC1vZlwtY2hpbmE7CivmqqsgPCBzYXNzYWZyYXNcLXR6dW11Owor54u0IDwgYVwta2luZFwtb2ZcLXRhcGlyOwor6auY5pWI546HIDwgaGlnaFwtZWZmaWNpZW5jeTsKK+WkqeeItiA8IGhlYXZlbmx5XC1mYXRoZXI7Civlub7kuY7lrozlhaggPCBhbG1vc3RcLWVudGlyZWx5Owor54m55b61IDwgY2hhcmFjdGVyaXN0aWNzOwor5L+h5oGv5pmC5LujIDwgaW5mb3JtYXRpb25cLWFnZTsKK+aakeWBhyA8IHN1bW1lclwtdmFjYXRpb247Civmk7rohKsgPCBicmVha1wtYXdheVwtZnJvbTsKK+WNiuaVuCA8IGhhbGZcLXRoZVwtbnVtYmVyOwor5Yaw6ZycIDwgbW9yYWxcLWludGVncml0eTsKK+WLu+a6nCA8IGV2ZW5cLWFuZFwtc21vb3RoOwor5Y6f5aeUIDwgdGhlXC13aG9sZVwtc3Rvcnk7CivnlKLlk4HntpPnkIYgPCBwcm9kdWN0XC1tYW5hZ2VyOwor6LOH5paZ6Y+I57WQ5bGkIDwgZGF0YVwtbGlua1wtbGF5ZXI7Civou43kuovlqIHohIUgPCBtaWxpdGFyeVwtdGhyZWF0Owor54m55a+rIDwgZmVhdHVyZVwtYXJ0aWNsZTsKK+aYpeWkqSA8IHNwcmluZ1wtXChzZWFzb25cKTsKK+e2sui3r+acjeWLmSA8IG5ldHdvcmtcLXNlcnZpY2U7CivnoJTnqbbkuK3lv4MgPCByZXNlYXJjaFwtY2VudGVyOwor5q2i55ebIDwgdG9cLXJlbGlldmVcLXBhaW47CivliY3kuI3kuYUgPCBub3RcLWxvbmdcLWJlZm9yZTsKK+WPm+S6giA8IGFybWVkXC1yZWJlbGxpb247CivmlofmqpQgPCBcKGNvbXB1dGVyXClcLWZpbGU7CivltIfmi5zlhIDlvI8gPCB3b3JzaGlwXC1zZXJ2aWNlOwor57es55S4IDwgbXlhbm1hclwtXChidXJtYVwpOwor5pa56IiI5pyq6Im+IDwgdG9cLWJlXC11bmZvbGRpbmc7Civpm5npgorosr/mmJMgPCBiaWxhdGVyYWxcLXRyYWRlOwor5aSx5pybIDwgYmVcLWRpc2FwcG9pbnRlZDsKK+i7jeS6i+mDqOmWgCA8IG1pbGl0YXJ5XC1icmFuY2g7CivntrLnq5kgPCBuZXR3b3JrXC1zdGF0aW9uOwor6Zmk5q2k5LmL5aSWIDwgYXBhcnRcLWZyb21cLXRoaXM7CivlpKrpmb3lhazlj7ggPCBzdW5cLWNvcnBvcmF0aW9uOwor5aSW5ZyL6LOH5pysIDwgZm9yZWlnblwtY2FwaXRhbDsKK+mWi+mWgCA8IG9wZW5cLVwodGhlXClcLWRvb3I7CivnlJ/nlKLpmoogPCBwcm9kdWN0aW9uXC10ZWFtOwor57aT566hIDwgYmVcLWluXC1jaGFyZ2VcLW9mOwor55So5oi257eaIDwgc3Vic2NyaWJlclwtbGluZTsKK+e+juWci+S6uiA8IGFtZXJpY2FuXC1wZXJzb247CivljYrlpKkgPCBoYWxmXC1vZlwtdGhlXC1kYXk7Civoqp7ml48gPCBsYW5ndWFnZVwtYnJhbmNoOwor5b6A5bm0IDwgaW5cLWZvcm1lclwteWVhcnM7Civml6XloLEgPCBkYWlseVwtbmV3c3BhcGVyOwor5YWJ6Zu7IDwgb3B0b1wtZWxlY3RyaWNhbDsKK+eZvemQtSA8IGdhbHZhbml6ZWRcLWlyb247Civpm4XmrYwgPCBzb25nXC1vZlwtc29sb21vbjsKK+W9vOWyuCA8IHRoZVwtb3RoZXJcLXNob3JlOwor6YWN5ZCIIDwgY29vcmRpbmF0ZVwtd2l0aDsKK+WgseezuyA8IG5ld3NwYXBlclwtY2hhaW47CivosZDlr4zlpJrlvakgPCByaWNobHlcLWNvbG9yZnVsOwor5qiZ6YePIDwgc2NhbGFyXC1xdWFudGl0eTsKK+WNl+WMlyA8IG5vcnRoXC1hbmRcLXNvdXRoOwor5q+U5a65IDwgc3BlY2lmaWNcLXZvbHVtZTsKK+eci+S4iuWOuyA8IGl0XC13b3VsZFwtYXBwZWFyOwor55uI6JmnIDwgcHJvZml0XC1hbmRcLWxvc3M7Civli7jlsI4gPCB0cnlcLXRvXC1jb252aW5jZTsKK+mZo+eHnyA8IGdyb3VwXC1vZlwtcGVvcGxlOwor5bm+55m+IDwgc2V2ZXJhbFwtaHVuZHJlZDsKK+Wkp+WvqyA8IGNhcGl0YWxcLWxldHRlcnM7CivpgY7mtLsgPCBsaXZlXC1vbmUnJ3NcLWxpZmU7CivniYzkvY0gPCBtZW1vcmlhbFwtdGFibGV0Owor5pep5LqbIDwgXChhXC1iaXRcKVwtZWFybGllcjsKK+iqsuWkliA8IGV4dHJhY3VycmljdWxhcjsKK+mbtuetieW+heeLgOaFiyA8IHplcm9cLXdhaXRcLXN0YXRlOwor5pS25ou+IDwgdG9cLXB1dFwtaW5cLW9yZGVyOwor5LiN55m95LmL5YakIDwgdW5yaWdodGVkXC13cm9uZzsKK+e2suautSA8IG5ldHdvcmtcLXNlZ21lbnQ7CivlvJ/lvJ8gPCB5b3VuZ2VyXC1icm90aGVyOwor6YGy5pepIDwgc29vbmVyXC1vclwtbGF0ZXI7CivmiJLlgpnmo67lmrQgPCBoZWF2aWx5XC1ndWFyZGVkOwor55+u5bCPIDwgc2hvcnRcLWFuZFwtc21hbGw7CivljYrpgJTogIzlu6IgPCBnaXZlXC11cFwtaGFsZndheTsKK+avlOWDuSA8IHByaWNlXC1yZWxhdGlvbnM7CivpvpEgPCBoaWdoXC1hbmRcLWJyaWdodDsKK+aWsOS7uyA8IG5ld2x5XC1hcHBvaW50ZWQ7CivpnLjkvZQgPCBmb3JjaWJseVwtb2NjdXB5Owor6byVIDwgcmF0dGxlXC1vZlwtZHJ1bXM7Civlub7ljYHlhIQgPCBzZXZlcmFsXC1iaWxsaW9uOwor55eF6a2UIDwgc2VyaW91c1wtaWxsbmVzczsKK+W4uOeUqCA8IGluXC1jb21tb25cLXVzYWdlOwor5Yaw56OaIDwgaWNlXC1jcmVhbVwtYnJpY2s7CivptJIgPCBzcGVjaWVzXC1vZlwtbGFyazsKK+eZveiPnCA8IGNoaW5lc2VcLWNhYmJhZ2U7CivptIIgPCB0aGVcLXRhaWxvclwtYmlyZDsKK+mzuyA8IHRoZVwtd2lsZFwtcGlnZW9uOwor6bOTIDwgY2hpbmVzZVwtaGVycmluZzsKK+mxoSA8IHRoZVwtY3V0dGxlXC1maXNoOwor6bGFIDwgYVwta2luZFwtb2ZcLXRlbmNoOwor5LiN5b6F6KqqIDwgbmVlZGxlc3NcLXRvXC1zYXk7Civmibnph4/nlJ/nlKIgPCB0b1wtbWFzc1wtcHJvZHVjZTsKK+mtsCA8IHRoZVwtZmx5aW5nXC1maXNoOwor5Zyo5b6I5aSa5pa56Z2iIDwgaW5cLW1hbnlcLWFzcGVjdHM7Civpq74gPCB0YWlsXC1vZlwtYVwtY29tZXQ7Civpq7QgPCBkaXNoZXZlbGVkXC1oYWlyOwor5pON5L2c6YCf546HIDwgb3BlcmF0aW5nXC1zcGVlZDsKK+W8t+WKoCA8IGltcG9zZVwtYnlcLWZvcmNlOwor6aiYIDwgYVwtcGllYmFsZFwtaG9yc2U7CivppYcgPCB0b1wtZWF0XC10b29cLW11Y2g7CivporsgPCBmbG9hdGluZ1wtaW5cLWFpcjsKK+miriA8IHN0b3JtXC13aGlybHdpbmQ7CivlpJbkuosgPCBmb3JlaWduXC1hZmZhaXJzOwor6IGv5ZCI55m86KGoIDwgam9pbnRcLXN0YXRlbWVudDsKK+mCiuWcsCA8IGJvcmRlclwtZGlzdHJpY3Q7Civpn54gPCBhblwtb3JhbmdlXC1jb2xvcjsKK+metCA8IHNhZGRsZVwtdXBcLWhvcnNlOwor6Z24IDwgYVwtY2hpbGQnJ3NcLXNob2VzOwor6ZuxIDwgc25vd2luZ1wtaGVhdmlseTsKK+iIjOmdoiA8IGJsYWRlXC1vZlwtdG9uZ3VlOwor5Ym16KiY6YyEIDwgdG9cLXNldFwtYVwtcmVjb3JkOwor6JGX5L2cIDwgYVwtbGl0ZXJhcnlcLXdvcms7Civnmb3nsbMgPCBcKHBvbGlzaGVkXClcLXJpY2U7CivngJXoh6ggPCBvblwtdGhlXC12ZXJnZVwtb2Y7CivkuI3lrozlhajokYkgPCBpbmNvbXBsZXRlXC1sZWFmOwor6YG45ZauIDwgXChzb2Z0d2FyZVwpXC1tZW51Owor5Z+35rOVIDwgbGF3XC1lbmZvcmNlbWVudDsKK+mOpCA8IHNvdW5kXC1vZlwtYVwtYmVsbDsKK+S4jeWQjeaVuCA8IGFic3RyYWN0XC1udW1iZXI7CivpgLLlsZUgPCB0b1wtbWFrZVwtaGVhZHdheTsKK+eCuuatpCA8IGZvclwtdGhpc1wtcmVhc29uOwor6Ya+IDwgdW5maWx0ZXJlZFwtd2luZTsKK+aguOWPjeaHieWghiA8IG51Y2xlYXJcLXJlYWN0b3I7CivntpPmv5/mlLnpnakgPCBlY29ub21pY1wtcmVmb3JtOwor6YS5IDwgbmFtZVwtb2ZcLWFcLXN0YXRlOwor5bug5Y+yIDwgZmFjdG9yeVwtaGlzdG9yeTsKK+WFieejgSA8IG1hZ25ldG9cLW9wdGljYWw7Civpmpjlj6MgPCBcKG1vdW50YWluXClcLXBhc3M7CivntrLlnYAgPCBcKGludGVybmV0XClcLXNpdGU7CivnlavpnaIgPCBcKHBpY3R1cmVcKVwtZnJhbWU7Civoj5zlnLAgPCB2ZWdldGFibGVcLWZpZWxkOwor55Wc6aGeIDwgZG9tZXN0aWNcLWFuaW1hbDsKK+i6gCA8IHRvXC1zdHVtYmxlXC1vdmVyOwor57i957aT55CGIDwgZ2VuZXJhbFwtbWFuYWdlcjsKK+i2riA8IGVhc2lseVwtcHJvdm9rZWQ7CivljYrlo4HmsZ/lsbEgPCBoYWxmXC1vZlwtY291bnRyeTsKK+aKsemkiiA8IGFkb3B0XC1cKGFcLWNoaWxkXCk7Civln47mqJMgPCBjaXR5XC1nYXRlXC10b3dlcjsKK+iroSA8IHBvc3RodW1vdXNcLW5hbWU7CivmjqHnqK4gPCBzZWVkXC1jb2xsZWN0aW5nOwor5L+E5be05bqV5Lqe5pu4IDwgYm9va1wtb2ZcLW9iYWRpYWg7CivoqJIgPCBoZXNpdGF0ZVwtdG9cLXNheTsKK+WPpOWFuOmfs+aogiA8IGNsYXNzaWNhbFwtbXVzaWM7CivoirHnmb0gPCBncml6emxlZFwtXChoYWlyXCk7CivkuI3lj6/lpJrlvpcgPCBoYXJkXC10b1wtY29tZVwtYnk7CivopbwgPCAnJ2tpbW9ubycnXC1zbGVldmU7CivopYwgPCB1bmxpbmVkXC1nYXJtZW50Owor6KSnIDwgdW5saW5lZFwtY2xvdGhlczsKK+mHjeaWsOmWi+WniyA8IHJlc3VtZVwsXC1yZXN0YXJ0Owor5bGN6auUIDwgXChsaWZlbGVzc1wpXC1ib2R5Owor5ZyW57C9IDwgXChjb21wdXRlclwpXC1pY29uOwor5be05pybIDwgbG9va1wtZm9yd2FyZFwtdG87CivonpogPCBlcmlzdGFsaXNcLXRlbmF4Owor5bGk6ZuyIDwgc3RyYXR1c1wtXChjbG91ZFwpOwor5pW455m+6JCsIDwgc2V2ZXJhbFwtbWlsbGlvbjsKK+aLvOi1t+S+hiA8IHRvXC1wdXRcLXRvZ2V0aGVyOwor57GM56K8IDwgYmFyZ2FpbmluZ1wtY2hpcDsKK+iXtiA8IGFcLWtpbmRcLW9mXC1wbGFudDsKK+iVoiA8IGVkaWJsZVwtYW1hcmFudGg7CivolY0gPCBhbGlzbWFcLXBsYW50YWdzOwor6JS+IDwga2luZFwtb2ZcLWJyYW1ibGU7CivokqggPCBsdXNoXC12ZWdldGF0aW9uOwor6JKTIDwgYW5cLWVkaWJsZVwtd2F0ZXI7Civpm7vlrZDpg7Xku7YgPCBlbGVjdHJvbmljXC1tYWlsOwor6ZmN5YO5IDwgcHJpY2VcLXJlZHVjdGlvbjsKK+iRkSA8IHRoZVwtcmFwZVwtdHVybmlwOwor57Gz57KJ6IKJIDwgcmljZVwtZmxvdXJcLW1lYXQ7CivmqJnmqIEgPCBcKG1hcmtpbmdcKVwtc3Rha2U7CivplonmnIMgPCBjbG9zZVwtYVwtbWVldGluZzsKK+iJhSA8IGFcLWRlc3BhdGNoXC1ib2F0Owor57SU5bGsIDwgcHVyZVwtYW5kXC1zaW1wbGU7CivlhYnmpq4gPCBob25vclwtYW5kXC1nbG9yeTsKK+iFoiA8IHRoZVwtY29sbGFyXC1ib25lOwor6L6m5a24IDwgdG9cLXJ1blwtYVwtc2Nob29sOwor5qiZ5p2GIDwgc3VydmV5b3InJ3NcLXBvbGU7CivluaPliLYgPCBjdXJyZW5jeVwtc3lzdGVtOwor5aCx5YiwIDwgcmVwb3J0XC1mb3JcLWR1dHk7Civnvb8gPCBuZXRcLWNhdGNoXC1iaXJkczsKK+e2k+a/n+WJjemAlCA8IGVjb25vbWljXC1mdXR1cmU7CivlubTku70gPCBwYXJ0aWN1bGFyXC15ZWFyOwor5bel6K6A5a245qChIDwgdGhlXC1yZWZvcm1hdG9yeTsKK+WfuuWcsCA8IFwobWlsaXRhcnlcKVwtYmFzZTsKK+WatOmHjemXnOWIhyA8IHNlcmlvdXNcLWNvbmNlcm47CivlhYnmmI4gPCBicmlnaHRcLVwoZnV0dXJlXCk7Civpq5jmioDooZMgPCBoaWdoXC10ZWNobm9sb2d5Owor5L+d6YeLIDwgcmVsZWFzZVwtb25cLWJhaWw7CivntY0gPCB0b1wtbGF5XC10aGVcLXdhcnA7CivntpPmv5/ljbHmqZ8gPCBlY29ub21pY1wtY3Jpc2lzOwor5bCE6aC7IDwgcmFkaW9cLWZyZXF1ZW5jeTsKK+WLleaFi+WKqeipniA8IGFzcGVjdFwtcGFydGljbGU7Civplonpn7Pnr4AgPCBjbG9zZWRcLXN5bGxhYmxlOwor57CUIDwgYVwtY29hdFwtcmFpbmNvYXQ7Civnr7AgPCBhXC1iYW1ib29cLWJhc2tldDsKK+mspeeIrSA8IHN0cnVnZ2xlXC1cKHdpdGhcKTsKK+ijoeaguSA8IFwocm9uYWxkXClcLXJlYWdhbjsKK+ephCA8IHBhbmljbGVkXC1taWxsZXQ7CivnposgPCBvZmZlclwtc2FjcmlmaWNlOwor56OqIDwgYVwtaGlnaFwtbW91bnRhaW47CivmmrTot7PlpoLpm7cgPCBzdGFtcFwtd2l0aFwtZnVyeTsKK+aKl+ihoSA8IGNvbnRlbmRcLWFnYWluc3Q7CivntJrliKUgPCBcKG1pbGl0YXJ5XClcLXJhbms7CivnrYboqqQgPCBhXC1zbGlwXC1vZlwtYVwtcGVuOwor5YWr5a+2IDwgZWlnaHRcLXRyZWFzdXJlczsKK+eZvuW5tCA8IGFcLWh1bmRyZWRcLXllYXJzOwor5Lul6KW/57WQ5pu4IDwgYm9va1wtb2ZcLWV6ZWtpZWw7CivmkZjlgJ8gPCB0b1wtYm9ycm93XC1tb25leTsKK+WMluWtuOatpuWZqCA8IGNoZW1pY2FsXC13ZWFwb247CivnmIggPCBwcm9sb25nZWRcLWZldmVyOwor55iDIDwgc29yZXNcLWZyb21cLWNvbGQ7Civnl74gPCBjaHJvbmljXC1pbGxuZXNzOwor55e1IDwgYVwtaGVhcnRcLXN5bXB0b207Civnl64gPCBhXC1zd2VsbGVkXC1iZWxseTsKK+eXoCA8IGFjaGluZ1wtb2ZcLWxpbWJzOwor55eBIDwgY2hyb25pY1wtbWFsYXJpYTsKK+eVrCA8IHJlY2xhaW1lZFwtZmllbGQ7CivplbflrpggPCBzZW5pb3JcLW9mZmljaWFsOwor6Jmb6Zu76LevIDwgdmlydHVhbFwtY2lyY3VpdDsKK+eZu+iomOeUqOaItiA8IHJlZ2lzdGVyZWRcLXVzZXI7CivnqK7ml4/kuLvnvqnogIUgPCByYWNpc3RcLVwocGVyc29uXCk7CivnkK0gPCBqYWRlXC1saWtlXC1zdG9uZTsKK+W+nuWOu+W5tCA8IHNpbmNlXC1sYXN0XC15ZWFyOwor54+nIDwgbW90aGVyXC1vZlwtcGVhcmw7CivlhaXlooMgPCBlbnRlclwtYVwtY291bnRyeTsKK+ePhyA8IGNhcnZpbmdcLW9uXC1qYWRlOwor5Zq06YeN5ZWP6aGMIDwgc2VyaW91c1wtcHJvYmxlbTsKK+iHgue0lyA8IFwoYmxhY2tcKVwtYXJtYmFuZDsKK+eOnyA8IHN0cmVha3NcLWluXC1qYWRlOwor55W25YuZ5LmL5oClIDwgdXJnZW50XC1wcmlvcml0eTsKK+eNsSA8IGFcLWtpbmRcLW9mXC1vdHRlcjsKK+i7jeagoSA8IG1pbGl0YXJ5XC1zY2hvb2w7Civni6sgPCBuYW1lXC1vZlwtYVwtdHJpYmU7Civou5/ku7bns7vntbEgPCBzb2Z0d2FyZVwtc3lzdGVtOwor54mEIDwgdG9cLXdhbGtcLXJhcGlkbHk7CivnhpMgPCB0aGVcLWJhbmtcLWFcLWZpcmU7CivnhLUgPCB0b1wtdGVtcGVyXC1zdGVlbDsKK+aKiuiItSA8IGhvbGRcLXRoZVwtcnVkZGVyOwor6I+y5b6L6LOTIDwgdGhlXC1waGlsaXBwaW5lczsKK+iiq+aNlSA8IGJlXC11bmRlclwtYXJyZXN0Owor54CeIDwgcG9vbFwtaW5cLWFcLXJpdmVyOwor5r2ZIDwgcml2ZXJcLWluXC1zaGFueGk7CivntrLntaHngI/opr3lmaggPCBuZXR3b3JrXC1icm93c2VyOwor5ruOIDwgY291bnR5XC1pblwtaGVuYW47CivmnKzml4/oqp4gPCBuYXRpdmVcLWxhbmd1YWdlOwor5rOpIDwgcmlzaW5nXC1vZlwtd2F0ZXI7Civos7zniankuK3lv4MgPCBzaG9wcGluZ1wtY2VudGVyOwor5rKaIDwgaXNsZXRcLWluXC1zdHJlYW07Civnmb7ljYEgPCBhXC1odW5kcmVkXC1vclwtc287CivlnZDlpb0gPCB0b1wtc2l0XC1wcm9wZXJseTsKK+e1huiFs+efsyA8IHN0dW1ibGluZ1wtYmxvY2s7CivmhJ/mn5PogIUgPCBpbmZlY3RlZFwtcGVyc29uOwor5aSa5qij5YyWIDwgZGl2ZXJzaWZpY2F0aW9uOwor5qahIDwgcXVlcmN1c1wtZGVudGF0YTsKK+WjgeWjmOajruWatCA8IGNsb3NlbHlcLWd1YXJkZWQ7CivmpLogPCBiZWFtXC1vZlwtYVwtaG91c2U7CivntrLnrqHlk6EgPCBuZXR3b3JrXC1tYW5hZ2VyOwor5biW5pKS576F5bC86L+m5b6M5pu4IDwgMlwtdGhlc3NhbG9uaWFuczsKK+mMpumbniA8IGdvbGRlblwtcGhlYXNhbnQ7Civmn44gPCBjYWx5eFwtb2ZcLWZsb3dlcjsKK+afgSA8IGxhcmdlXC10aWVcLWJlYW1zOwor5p6sIDwgYW5cLWV2ZW5cLWdyYWluZWQ7Civoh6rmrrogPCB0b1wta2lsbFwtb25lc2VsZjsKK+acoyA8IHRoZVwtcmlzaW5nXC1tb29uOwor55Gq5ouJ5Z+65pu4IDwgYm9va1wtb2ZcLW1hbGFjaGk7Civpq5jmmIIgPCBpblwtaGlnaFwtc3Bpcml0czsKK+iyv+aYk+WkpeS8tCA8IHRyYWRpbmdcLXBhcnRuZXI7Civnqb/pgY4gPCB0b1wtcGFzc1wtdGhyb3VnaDsKK+WCmeaIsCA8IHByZXBhcmVcLWZvclwtd2FyOwor5pyI5Lu95pyD6K2wIDwgbW9udGhseVwtbWVldGluZzsKK+aRuyA8IGFcLWRlbGljYXRlXC1oYW5kOwor5a6J6LqrIDwgbWFrZVwtb25lJydzXC1ob21lOwor5ri46KqqIDwgZHJ1bVwtdXBcLXN1cHBvcnQ7Civoh7PmlrwgPCBnb1wtc29cLWZhclwtYXNcLXRvOwor5oiEIDwgdG9cLWJlXC1pblwtYXdlXC1vZjsKK+eglOeptuWgseWRiiA8IHJlc2VhcmNoXC1yZXBvcnQ7CivlhYjpgLLmrablmaggPCBhZHZhbmNlZFwtd2VhcG9uOwor55Sf54mpIDwgbGl2aW5nXC1jcmVhdHVyZTsKK+aItuexjSA8IGNlbnN1c1wtcmVnaXN0ZXI7CivlpKfnmbzpm7fpnIYgPCBleHRyZW1lbHlcLWFuZ3J5Owor5b6sIDwgdG9cLXdhbmRlclwtYWJvdXQ7CivlvLQgPCByZWRcLWxhY3F1ZXJcLWJvdzsKK+e+juWci+aUv+W6nCA8IHVcLnNcLlwtZ292ZXJubWVudDsKK+agoeiIjSA8IHNjaG9vbFwtYnVpbGRpbmc7Civlt7kgPCBudXB0aWFsXC13aW5lY3VwOwor5LiN5bmy5raJIDwgbm9uaW50ZXJmZXJlbmNlOwor5ZaE6ImvIDwgZ29vZFwtYW5kXC1ob25lc3Q7CivltY4gPCBtb3VudGFpblwtcmVjZXNzOwor5Lqe54i+55m85ZKM5aWn57Gz5YqgIDwgYWxwaGFcLWFuZFwtb21lZ2E7Civls54gPCBoaWdoXC1hbmRcLXVuZXZlbjsKK+WhnueIvueJueiqniA8IGNlbHRpY1wtbGFuZ3VhZ2U7CivmoLjmrabluqsgPCBudWNsZWFyXC1hcnNlbmFsOwor5a6i5oi25qmf6Luf5Lu2IDwgY2xpZW50XC1zb2Z0d2FyZTsKK+aOqui+reW8t+ehrCA8IHN0cm9uZ2x5XC13b3JkZWQ7Civou43lgpkgPCBcKG1pbGl0YXJ5XClcLWFybXM7CivpppbohaYgPCBoZWFkXC1cKG9mXC1zdGF0ZVwpOwor5a6J6JGsIDwgYnVyeVwtXCh0aGVcLWRlYWRcKTsKK+iHquWLleWUruiyqOapnyA8IHZlbmRpbmdcLW1hY2hpbmU7CivlpLIgPCBhZHZhbmNlXC1xdWlja2x5Owor5Lit576O5rSyIDwgY2VudHJhbFwtYW1lcmljYTsKK+alteWKmyA8IGRvXC1hdFwtYWxsXC1jb3N0czsKK+i3keatpSA8IHRvXC13YWxrXC1xdWlja2x5Owor5Z20IDwgYVwtY2xvZFwtb2ZcLWVhcnRoOwor5ZajIDwgdG9cLWJyZWF0aGVcLXVwb247CivllLIgPCBmb3JjZWRcLWxhdWdodGVyOwor5YWs5Y+45pyD6K2wIDwgY29tcGFueVwtbWVldGluZzsKK+iytuipniA8IGRlcm9nYXRvcnlcLXRlcm07CivkupLpgKMgPCBpbnRlcmNvbm5lY3Rpb247CivljpwgPCBhXC1tb3VudGFpblwtcGVhazsKK+WkqeS4u+aVmSA8IGNhdGhvbGljXC1jaHVyY2g7CivljIkgPCBub2lzZVwtb2ZcLXdhdGVyczsKK+WMhCA8IHRvXC1iZWdcLWZvclwtYWxtczsKK+aUueiuiuW9ouWDjyA8IHRyYW5zZmlndXJhdGlvbjsKK+WKmCA8IG1ha2VcLWludG9cLW1pbmNlOwor5oKy6bO0IDwgdXR0ZXJcLXNhZFwtY2FsbHM7Civmu7/mhI8gPCB0b1wtYmVcLXNhdGlzZmllZDsKK+a1t+mBiyA8IHNoaXBwaW5nXC1ieVwtc2VhOwor55WZ5a24IDwgdG9cLXN0dWR5XC1hYnJvYWQ7Civph5Hoo6HlpYcgPCBcKG5ld3RcKVwtZ2luZ3JpY2g7Civkvr/mop0gPCBcKGluZm9ybWFsXClcLW5vdGU7Civlgr0gPCB0ZXJyb3JcLXN0cmlja2VuOwor55Sa5oiWIDwgc29cLW11Y2hcLXNvXC10aGF0Owor5L2UIDwgb2NjdXB5XC1ieVwtZm9yY2U7CivlsbHls7AgPCBcKG1vdW50YWluXClcLXBlYWs7Civmuqvmn5QgPCBnZW50bGVcLWFuZFwtc29mdDsKK+S5uCA8IGZlbWluaW5lXC1zdWZmaXg7Civpq5jkuK0gPCBoaWdoXC1hbmRcLW1pZGRsZTsKK+eZvuWFkuWFq+WNgSA8IGFib3V0XC1hXC1odW5kcmVkOwor5biW5pKS576F5bC86L+m5YmN5pu4IDwgMVwtdGhlc3NhbG9uaWFuczsKK+S2oSA8IHNvdW5kXC1vZlwtYml0aW5nOwor5LaOIDwgc291bmRcLW9mXC1icmVhdGg7Civog4Pnl4UgPCBzdG9tYWNoXC10cm91YmxlOwor5LS+IDwgdG9cLWdyaW5kXC1iYXJsZXk7CivktK4gPCBjYWtlc1wtcGZcLWxlYXZlbjsKK+WkmuaooeWFiee6liA8IG11bHRpbW9kZVwtZmliZXI7CivlkIzpvaEgPCBvZlwtdGhlXC1zYW1lXC1hZ2U7Civou5/ku7bluILloLQgPCBzb2Z0d2FyZVwtbWFya2V0Owor5qCh5ZyS6aqo5bm5IDwgY2FtcHVzXC1iYWNrYm9uZTsKK+SvhCA8IGFcLXBpZWJhbGtcLWhvcnNlOwor5K69IDwgYml0XC1mb3JcLWFcLWhvcnNlOwor5K61IDwgbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6xIDwgYVwta2luZFwtb2ZcLWJlYXN0Owor5K6nIDwgbG9uZ1wtaGFpclwtaG9yc2U7CivkrqIgPCBhXC13YWxraW5nXC1ob3JzZTsKK+SujiA8IGFcLXJ1bm5pbmdcLWhvcnNlOwor5K28IDwgZGFya1wtYmx1ZVwtaG9yc2U7CivkrKsgPCBjbGFyZmllZFwtYnV0dGVyOwor5KyBIDwgYVwtbGlnaHRcLWN5Y2xvbmU7CivlkLjpn7MgPCBzb3VuZFwtYWJzb3JiaW5nOwor5rKS5pyJ6IGv57mrIDwgdG9cLWJlXC11bnJlbGF0ZWQ7Civkqq4gPCBiZWF1dGlmdWxcLXNvdW5kOwor5KqVIDwgdG9cLXdyYXBcLW9yXC1iYW5kOwor5Km5IDwgdG9cLXJlcGFpclwtc2hvZXM7CivkqZIgPCBkcmVzc2VkXC1sZWF0aGVyOwor6bq76YaJIDwgdG9cLWFuYWVzdGhldGl6ZTsKK+SphCA8IHRvXC1mYWNlXC10b1wtZmFjZTsKK+SooiA8IGFcLXBhc3NpbmdcLWNsb3VkOwor5KiWIDwgdG9cLXN0b3BcLXJhaW5pbmc7CivkqIAgPCB0b1wtbGF5XC1pblwtZ3JhaW47Civkp68gPCBuYW1lXC1vZlwtYVwtcGxhY2U7CivntrLntaHopo/lioPkurrlk6EgPCBuZXR3b3JrXC1wbGFubmVyOwor5KarIDwgaW5zaWRlXC10aGVcLWRvb3I7CivmipXlpZQgPCB0b1wtc2Vla1wtc2hlbHRlcjsKK+SllyA8IGFcLWJyYW5kaW5nXC1pcm9uOwor5KSxIDwgYVwtc29sZW1uXC1wbGVkZ2U7Civko7YgPCB1bnN0cmFpbmVkXC13aW5lOwor5L6L5pyDIDwgcmVndWxhclwtbWVldGluZzsKK+WFseeUoum7qCA8IGNvbW11bmlzdFwtcGFydHk7CivkoqYgPCB0b1wtbGVhZFwtdGhlXC13YXk7CivkopYgPCB0b1wtYmVcLXNjYXR0ZXJlZDsKK+SigSA8IHRpcmVcLW9mXC1hXC13aGVlbDsKK+ShuyA8IHNoYWtlXC1vZlwtYVwtY2FydDsKK+ShqCA8IGNvbm5lY3RlZFwtY2FydHM7CivppIXogqUgPCBjYWtlXC1mZXJ0aWxpemVyOwor5KGQIDwgdG9cLW1vdmVcLXN3aWZ0bHk7CivkuJbnlYzmnIDlpKcgPCB3b3JsZCcnc1wtbGFyZ2VzdDsKK+SgtSA8IHRvXC13ZWFyXC1jbG90aGVzOwor5KCoIDwgd2Fsa2luZ1wtcmFwaWRseTsKK+WwlumKs+aJueiplSA8IHNoYXJwXC1jcml0aWNpc207CivkuI3opovlvpcgPCBub3RcLW5lY2Vzc2FyaWx5Owor5J2vIDwgdG9cLWNoYW5nZVwtaGFuZHM7CivknZAgPCBhXC1jYXN0cmF0ZWRcLWhvZzsKK+SchCA8IHNsb3dcLW9uXC10YWxraW5nOwor5Ju1IDwgdG9cLXRlYWNoXC1vcmFsbHk7Civkm58gPCB3aWxkXC1zdGF0ZW1lbnRzOwor5JuUIDwgdG9cLWhvbGRcLWluXC1oYW5kOwor5pq06ZuoIDwgdG9ycmVudGlhbFwtcmFpbjsKK+SapiA8IHNsYW50ZWRcLWNvcm5lcnM7CivkmqUgPCB0b1wtYWRqdXN0XC1hXC1ib3c7CivkmbsgPCB0b1wtc3RlYWxcLWFcLWxvb2s7CivkmaggPCB0b1wtd3JhcFwtb3JcLWJpbmQ7CivkmZ0gPCB1bmRlclwtZ2Fycm1lbnRzOwor5Je+IDwgY29yYmljdWxhXC1sZWFuYTsKK+SWvCA8IHRoZVwtZHVuZ1wtYmVldGxlOwor5JaZIDwgYVwtcmVzdGluZ1wtdGlnZXI7CivklokgPCB0b1wtcm9hclwtb3JcLWhvd2w7CivklZkgPCB0b1wtc2V0XC1pblwtb3JkZXI7CivkkowgPCBkYXJrXC1ibHVlXC1jb2xvcjsKK+SPsiA8IHByb3RydWRlZFwtYm9uZXM7Civkvr/lrrQgPCBpbmZvcm1hbFwtZGlubmVyOwor5I6zIDwgbG9zZVwtb2ZcLXRoZVwtZWFyOwor5I6JIDwgdG9cLXdhbGtcLXN3aWZ0bHk7CivkuIrov7AgPCBhYm92ZVwtbWVudGlvbmVkOwor5Iu3IDwgYVwta2luZFwtb2ZcLXRoaWNrOwor5Iq1IDwgeW91bmdcLWFuZFwtc21hbGw7CivkipcgPCBhXC1raW5kXC1vZlwtZ3JhaW47CivkiokgPCBwcmVzZXJ2ZWRcLWZydWl0Owor5ImnIDwgc291bmRcLW9mXC1iYW1ib287Civos4DlubTniYcgPCBuZXdcLXllYXInJ3NcLWNhcmQ7CivkhbcgPCBhblwtZWFyXC1vZlwtZ3JhaW47CivkhbAgPCBhXC1raW5kXC1vZlwtZ3Jhc3M7CivmqJnmupbljJYgPCBzdGFuZGFyZGl6YXRpb247CivkhK4gPCBkYXJrXC1yaWNlXC1wbGFudDsKK+SElSA8IGdvZFwtb2ZcLXRoZVwtbGFuZDsKK+mbu+iFpuezu+e1sSA8IGNvbXB1dGVyXC1zeXN0ZW07Civkg7cgPCBhXC1raW5kXC1vZlwtc3RvbmU7Civkg5IgPCBwb29yXC1hbmRcLWJhcnJlbjsKK+SBtCA8IGtlZXBcLW9uXC1sb29raW5nOwor5IGzIDwgdG9cLWxvc2VcLW9uZVwtZXllOwor5a+m5b2IIDwgbGl2ZVwtYW1tdW5pdGlvbjsKK+iyqOW5o+WNseapnyA8IG1vbmV0YXJ5XC1jcmlzaXM7CivkgIkgPCBmb29kXC1jb250YWluZXJzOwor47+xIDwgZHJ5XC1hbmRcLWRlY2F5ZWQ7CivjvqkgPCBtYWxpZ25hbnRcLWJvaWxzOwor5YWx5Lqr5Lul5aSq57ay57WhIDwgc2hhcmVkXC1ldGhlcm5ldDsKK+eUouWAvCA8IHZhbHVlXC1vZlwtb3V0cHV0Owor5pqX6YCB56eL5rOiIDwgbWFrZVwtZXllc1wtYXRcLXNiOwor5L2/5ru/5oSPIDwgdG9cLW1ha2VcLWNvbnRlbnQ7CivnpZ3os4AgPCB0b1wtY29uZ3JhdHVsYXRlOwor47yVIDwgcHVscFwtb2ZcLWFcLW1lbG9uOwor47yUIDwgYVwta2luZFwtb2ZcLW1lbG9uOwor5LiN6Y+96Yu8IDwgc3RhaW5sZXNzXC1zdGVlbDsKK+O8giA8IGFcLWNyYWNrXC1pblwtamFkZTsKK+O7jSA8IG5hbWVcLW9mXC1hXC1zd29yZDsKK+O6jCA8IGVuZGxlc3NcLWJhcmtpbmc7Civku6XngrogPCBjb25zaWRlclwtXCh0aGF0XCk7CivjuacgPCBmb3hcLWxpa2VcLWFuaW1hbDsKK+O4sSA8IGhvcm5sZXNzXC1jYXR0bGU7CivjuKkgPCB0b1wtZGVzaXN0XC1hblwtb3g7CivmoLjlvYggPCBudWNsZWFyXC13YXJoZWFkOwor47iRIDwgYVwtY29va2luZ1wtc3RvdmU7CivljbDluqbkurogPCBpbmRpYW5cLVwocGVyc29uXCk7CivkuIroqrIgPCB0b1wtYXR0ZW5kXC1jbGFzczsKK+Wlp+mBi+adkSA8IG9seW1waWNcLXZpbGxhZ2U7Civjt40gPCBhXC1jaGVtaWNhbFwtdGVybTsKK+espuWQiCA8IGluXC1rZWVwaW5nXC13aXRoOwor5oqA5YCGIDwgdHJpY2t5XC1tYW5ldXZlcjsKK+aal+mBqeaHiSA8IGRhcmtcLWFkYXB0YXRpb247CivmlbjkvY3ntrLot68gPCBkaWdpdGFsXC1uZXR3b3JrOwor47O/IDwgcm9sbGluZ1wtYmlsbG93czsKK+OzlyA8IGJhbmtcLW9mXC1hXC1yaXZlcjsKK+OylCA8IHdvb2xlblwtdGV4dGlsZXM7CivjsY4gPCBjYW5ub3RcLWJlXC1rbm93bjsKK+OwrCA8IHNob3J0d2luZGVkbmVzczsKK+OwlyA8IGFcLWtpbmRcLW9mXC1tYXBsZTsKK+OwiCA8IG5pY2VcLWFuZFwtcHJldHR5Owor46+xIDwgYW5cLWVubGFyZ2VkXC1iYWc7Civjr6QgPCB0aGVcLWp1anViZVwtdHJlZTsKK+OvlCA8IHRvXC1odWxsXC1oZWF2aWx5Owor5rOw6KqeIDwgdGhhaVwtXChsYW5ndWFnZVwpOwor466hIDwgdG9cLWxpZ2h0XC1hXC1maXJlOwor5a+15aOeIDwgc3BvaWxcLVwoYVwtY2hpbGRcKTsKK+OtpCA8IHRoZVwtY29udm9sdnVsdXM7CivkuqTnlYwgPCBjb21tb25cLWJvdW5kYXJ5Owor6Jmb5pOs57ay57WhIDwgdmlydHVhbFwtbmV0d29yazsKK+WFieaYjuaXpeWgsSA8IGd1YW5nbWluZ1wtZGFpbHk7Civjq6AgPCBhXC1raW5kXC1vZlwtd2F0ZXI7CivjqqsgPCB3aXNlXC1hbmRcLWNsZXZlcjsKK+att+WPsuS5hemBoCA8IGFuY2llbnRcLWhpc3Rvcnk7Civjp44gPCBmb3JrZWRcLWJyYW5jaGVzOwor6ICB55m+5aeTIDwgb3JkaW5hcnlcLXBlb3BsZTsKK+OlniA8IHRvXC10aGlua1wtZGVlcGx5Owor46WbIDwgd2l0aFwtZXhwZWRpdGlvbjsKK+OiniA8IHJvb21zXC1jb25uZWN0ZWQ7Civjoo0gPCBhXC1sb25nXC12ZXJhYmRhaDsKK+Wkq+Wmu+W6lyA8IGZhbWlseVwtcnVuXC1zaG9wOwor46GyIDwgdGlsZXNcLW9uXC1hXC1yb29mOwor46GAIDwgcmFnZ2VkXC1jbG90aGluZzsKK+OflCA8IHN0ZWVwXC1hbmRcLWxvZnR5Owor452lIDwgaGF2ZVwtYVwtbmlnaG1hcmU7CivkuInokKwgPCB0aGlydHlcLXRob3VzYW5kOwor452FIDwgdG9cLWdpdmVcLXN1Y2tcLXRvOwor45yyIDwgdG9cLWhhdmVcLXN1cnBsdXM7CivosqjmupAgPCBzdXBwbHlcLW9mXC1nb29kczsKK+ObsCA8IHRvXC1tYXJyeVwtYVwtd2lmZTsKK+OapiA8IGFcLWNoYXJtaW5nXC1naXJsOwor45m8IDwgYVwtbWlsaXRhcnlcLXdhbGw7CivnqpfluJggPCB3aW5kb3dcLWN1cnRhaW5zOwor45mXIDwgYVwtbHVtcFwtb2ZcLWVhcnRoOwor45i6IDwgY3VsdGl2YXRlZFwtbGFuZDsKK+acn+elqCA8IHByb21pc3NvcnlcLW5vdGU7Civjl78gPCB0b1wtbGF1Z2hcLWxvdWRseTsKK+OVsiA8IHRvXC1nYWdcLW9yXC1icmliZTsKK+OVmCA8IHRvXC10YWtlXC1wYXJ0XC1pbjsKK+OSnyA8IHdpdGhcLWFcLWNoYXJtaW5nOwor5Y+j6KqeIDwgc3Bva2VuXC1sYW5ndWFnZTsKK+aWr+aLieWkq+iqniA8IHNsYXZpY1wtbGFuZ3VhZ2U7Civnp4Hnh58gPCBwcml2YXRlbHlcLW93bmVkOwor5aSW5ZyL5YWs5Y+4IDwgZm9yZWlnblwtY29tcGFueTsKK+WvkuWBhyA8IHdpbnRlclwtdmFjYXRpb247Civlk4DmrYwgPCBhXC1tb3VybmZ1bFwtc29uZzsKK+WFkuWMlumfuyA8IHJldHJvZmxleFwtZmluYWw7Civnib3pgKMgPCBcKGJlXClcLWltcGxpY2F0ZWQ7CivmgKfooYwgPCBzZXh1YWxcLWFjdGl2aXR5Owor5a245aOrIDwgYmFjaGVsb3JcLWRlZ3JlZTsKK+iyoOaTlCA8IFwoYmVhclwtYVwpXC1idXJkZW47CivllYbmpa3kuK3lv4MgPCBidXNpbmVzc1wtY2VudGVyOwor5LiA56eYIDwgZmlyc3RcLXNlY3JldGFyeTsKK+iXpeeTtiA8IG1lZGljaW5lXC1ib3R0bGU7CivmhZrmhKcgPCBcKHRvXC1iZVwpXC1hc2hhbWVkOwor5Lq65omNIDwgdGFsZW50ZWRcLXBlcnNvbjsKK+S4jeeUmCA8IHVucmVjb25jaWxlZFwtdG87CivkuI3nm7jkuIrkuIsgPCBlcXVhbGx5XC1tYXRjaGVkOwor54+t5a2QIDwgb3JnYW5pemVkXC1ncm91cDsKK+avj+malCA8IGF0XC1pbnRlcnZhbHNcLW9mOwor5oSb5oi0IDwgbG92ZVwtYW5kXC1lc3RlZW07CivmhJvmiIAgPCBiZVwtaW5cLWxvdmVcLXdpdGg7CivmqZ/lr4bmlofku7YgPCBzZWNyZXRcLWRvY3VtZW50Owor5p2t5beeIDwgaGFuZ3pob3VcLVwoY2l0eVwpOwor5ZWP5LiWIDwgdG9cLWJlXC1wdWJsaXNoZWQ7CivmgrLms6MgPCB3ZWVwXC13aXRoXC1ncmllZjsKK+azleeQhiA8IGxlZ2FsXC1wcmluY2lwbGU7Civnp6nluo8gPCBvcmRlclwtXChvcmRlcmx5XCk7CivntrLntaHmiZPljbDmqZ8gPCBuZXR3b3JrXC1wcmludGVyOwor5ZCN54mHIDwgXChidXNpbmVzc1wpXC1jYXJkOwor5peF6LK7IDwgdHJhdmVsXC1leHBlbnNlczsKK+iyoeWcmCA8IGZpbmFuY2lhbFwtZ3JvdXA7Civmspnnn7MgPCBzYW5kXC1hbmRcLXN0b25lczsKK+emgeaenCA8IGZvcmJpZGRlblwtZnJ1aXQ7Civpg7XpgZ4gPCB0b1wtc2VuZFwtYnlcLW1haWw7Civmnb/mnb/lha3ljYHlm5sgPCB1bmFjY29tbW9kYXRpbmc7CivmnpDlh7ogPCB0b1wtc2VwZXJhdGVcLW91dDsKK+esrOS4gOWAi+WxpOasoSA8IHRoZVwtZmlyc3RcLXN0YWdlOwor5YW36auU6KiI5YqDIDwgYVwtY29uY3JldGVcLXBsYW47CivlpZTopbIgPCBsb25nXC1yYW5nZVwtcmFpZDsKK+adv+WItyA8IHNjcnViYmluZ1wtYnJ1c2g7CivmnI3lvp4gPCBvYmV5XC1cKGFuXC1vcmRlclwpOwor5pa96KGMIDwgdG9cLXB1dFwtaW5cLXBsYWNlOwor6I6r5bC85Y2h6JCK5rqr5pav5Z+6IDwgbW9uaWNhXC1sZXdpbnNreTsKK+aWh+abuOiZleeQhiA8IHdvcmRcLXByb2Nlc3Npbmc7CivnvbDmrL4gPCBcKGltcG9zZVwtYVwpXC1maW5lOwor6ZuM6ZuEIDwgbWFsZVwtYW5kXC1mZW1hbGU7Civpgorpn7MgPCBsYXRlcmFsXC1cKHNvdW5kXCk7Civmr43opqogPCBtb3RoZXJcLVwoZm9ybWFsXCk7CivmnInoga/nuasgPCB0b1wtYmVcLWNvbm5lY3RlZDsKK+ejgeebpCA8IFwoY29tcHV0ZXJcKVwtZGlzazsKK+mgkOmYsuaOquaWvSA8IHByb3RlY3RpdmVcLXN0ZXA7CivnpKbmpa0gPCBtaW5pbmdcLWluZHVzdHJ5Owor5YWs54S26KGo56S6IDwgdG9cLXN0YXRlXC1vcGVubHk7CivmtYHlpLEgPCBiZVwtZHJhaW5lZFwtYXdheTsKK+W8lei1tyA8IHRvXC1naXZlXC1yaXNlXC10bzsKK/CjjrQgPCBzdHVtcFwtb2ZcLWFcLXRyZWU7CivorYnniakgPCBleGhpYml0XC1cKGxlZ2FsXCk7CivnuKvoo5wgPCBkYXJuXC1cKGNsb3RoaW5nXCk7Civnt6jpgbggPCBzZWxlY3RcLWFuZFwtZWRpdDsKK+iyoOWCtee6jee6jSA8IGhlYXZpbHlcLWluXC1kZWJ0Owor5a+p5Yik6ZW3IDwgcHJlc2lkaW5nXC1qdWRnZTsKK+S4iuWtuCA8IHRvXC1nb1wtdG9cLXNjaG9vbDsKK+mgu+W4tiA8IGZyZXF1ZW5jeVwtcmFuZ2U7CivmlL/oposgPCBwb2xpdGljYWxcLXZpZXdzOwor5oKy5ZiGIDwgc2lnaFwtbW91cm5mdWxseTsKK+WNiueUnyA8IGhhbGZcLWFcLWxpZmV0aW1lOwor5Y2a54mpIDwgbmF0dXJhbFwtc2NpZW5jZTsKK+e2k+a/n+mrlOWItiA8IGVjb25vbWljXC1zeXN0ZW07CivkuI3pgY7niL7niL4gPCBtZXJlbHlcLW1lZGlvY3JlOwor55uc54mI6ICFIDwgc29mdHdhcmVcLXBpcmF0ZTsKK+Wkp+mDqOS7vSA8IFwoaW5cKVwtbGFyZ2VcLXBhcnQ7CivmtYHmhJ/nl4Xmr5IgPCBpbmZsdWVuemFcLXZpcnVzOwor6YO156WoIDwgXChwb3N0YWdlXClcLXN0YW1wOwor5oGw5aW9IDwgYXNcLWl0XC10dXJuc1wtb3V0Owor5rCj5rqrIDwgYWlyXC10ZW1wZXJhdHVyZTsKK+efruiDliA8IHNob3J0XC1hbmRcLXN0b3V0Owor6Kqe57O7IDwgbGFuZ3VhZ2VcLXN5c3RlbTsKK+iuiuW9oiA8IGJlXC1vdXRcLW9mXC1zaGFwZTsKK+WNl+a1tyA8IHNvdXRoXC1jaGluYVwtc2VhOwor5Ya35rCj5qmfIDwgYWlyXC1jb25kaXRpb25lcjsKK+e+juWFgyA8IGFtZXJpY2FuXC1kb2xsYXI7CivkuJbkurogPCBcKGNvbW1vblwpXC1wZW9wbGU7CivlkI3llq4gPCBsaXN0XC1cKG9mXC1uYW1lc1wpOwor6Zu756OBIDwgZWxlY3Ryb21hZ25ldGljOwor5rCR5qyKIDwgY2l2aWxcLWxpYmVydGllczsKK+aTmuiqqiA8IGl0XC1pc1wtc2FpZFwtdGhhdDsKK+WOn+aApyA8IG9yaWdpbmFsXC1uYXR1cmU7CivooZvnlJ/lrpjlk6EgPCBoZWFsdGhcLW9mZmljaWFsOwor6LqFIDwgd2Fsa1wtY2FyZWZ1bGx5Owor5be0IDwgZ3JlYXRseVwtZGVzaXJlOwor5pyfIDwgcGVyaW9kXC1vZlwtdGltZTsKK+WPuCA8IHRha2VcLWNoYXJnZVwtb2Y7CivnlKUgPCBzaXN0ZXInJ3NcLWNoaWxkOwor5bGPIDwgZm9sZGluZ1wtc2NyZWVuOwor54uQIDwgc3BlY2llc1wtb2ZcLWZveDsKK+axiSA8IGNoaW5lc2VcLXBlb3BsZTsKK+WmuSA8IHlvdW5nZXJcLXNpc3RlcjsKK+S8gSA8IHBsYW5cLWFcLXByb2plY3Q7CivopZYgPCBvdXRlclwtZ2FybWVudHM7Civlo4EgPCBwYXJ0aXRpb25cLXdhbGw7Civpn6YgPCB0YW5uZWRcLWxlYXRoZXI7CivmvbAgPCBmbG9vZGluZ1wtcml2ZXI7Civnj6AgPCBwcmVjaW91c1wtc3RvbmU7CivplIsgPCBwb2ludFwtb2ZcLXNwZWFyOwor5L+XIDwgc29jaWFsXC1jdXN0b21zOwor5qqQIDwgZWF2ZXNcLW9mXC1ob3VzZTsKK+mqkSA8IHJpZGVcLWhvcnNlYmFjazsKK+WHvSA8IGNvcnJlc3BvbmRlbmNlOwor6a2PIDwga2luZ2RvbVwtb2ZcLXdlaTsKK+aemiA8IHN0YWxrXC1vZlwtc2hydWI7Civku7IgPCBtaWRkbGVcLWJyb3RoZXI7CivnkLMgPCBiZWF1dGlmdWxcLWphZGU7Civlh5EgPCBwaWVjZVwtdG9nZXRoZXI7Civpg4EgPCBzd2VldFwtc21lbGxpbmc7Civoiq8gPCBwaXRoXC1mcm9tXC1ydXNoOwor57ieIDwgd2hpdGVcLXJhd1wtc2lsazsKK+aXrCA8IHRlblwtZGF5XC1wZXJpb2Q7CivntrogPCBmaW5lXC10aGluXC1zaWxrOwor5aaoIDwgaW50ZXJmZXJlXC13aXRoOwor6aqEIDwgc3Bpcml0ZWRcLWhvcnNlOwor5o60IDwgYm94XC1vbmUnJ3NcLWVhcnM7Civll68gPCBmaW5hbFwtcGFydGljbGU7Civlsq0gPCBtb3VudGFpblwtcmlkZ2U7CivmuZggPCBodW5hblwtcHJvdmluY2U7CivpioMgPCBhbmNpZW50XC13ZWFwb247Civpk64gPCBjbGFuZ2luZ1wtc291bmQ7CivojrkgPCBsdXN0ZXJcLW9mXC1nZW1zOwor5YO7IDwgb3V0XC1vZlwtdGhlXC13YXk7CivmuLogPCBlbmRsZXNzbHlcLWxvbmc7CivkvaMgPCBjb21taXNzaW9uXC1mZWU7CivlkZsgPCBjaG9rZVwtYnlcLXNtb2tlOwor5YewIDwgZmVtYWxlXC1waG9lbml4Owor6Ze6IDwgc21hbGxcLWVudHJhbmNlOwor57yAIDwgcGF0Y2hcLXRvZ2V0aGVyOwor55KLIDwgamFkZVwtcGxheXRoaW5nOwor5ou0IDwgYmluZFwtd2l0aFwtcm9wZTsKK+enpyA8IHJpY2VcLXNlZWRsaW5nczsKK+iVgyA8IGZvcmVpZ25cLXRoaW5nczsKK+mEgiA8IGh1YmVpXC1wcm92aW5jZTsKK+ajsSA8IHNxdWFyZWRcLXRpbWJlcjsKK+ailyA8IHN0ZW1cLW9mXC1mbG93ZXI7Civoj7EgPCB3YXRlclwtY2hlc3RudXQ7CivplZEgPCBwb3VuZFwtc3Rlcmxpbmc7CivmoKkgPCBzcGVjaWVzXC1vZlwtb2FrOwor55KeIDwgdW5wb2xpc2hlZFwtZ2VtOwor6ZuvIDwgY2xvdWRcLXBhdHRlcm5zOwor6K63IDwgc2xvd1wtb2ZcLXNwZWVjaDsKK+eLsCA8IGZpZXJjZVwtbG9va2luZzsKK+WzpiA8IG1vdW50YWluXC1yYW5nZTsKK+a5gyA8IHNvdW5kXC1vZlwtd2F2ZXM7CivonZcgPCBraW5kXC1vZlwtbG9jdXN0Owor55qWIDwgYW5odWlcLXByb3ZpbmNlOwor6YWLIDwgY2hpZWZcLW9mXC10cmliZTsKK+WjkSA8IGJlZFwtb2ZcLXRvcnJlbnQ7Civns68gPCBnbHV0aW5vdXNcLXJpY2U7CivnqLcgPCBnb2RcLW9mXC1jZXJlYWxzOwor5aG+IDwgdmlsbGFnZVwtc2Nob29sOwor54upIDwgd2ludGVyXC1odW50aW5nOwor5oiNIDwgZGVmZW5kXC1ib3JkZXJzOwor55KAIDwgbHVzdHJlXC1vZlwtZ2VtczsKK+eJjSA8IHdyaXRpbmdcLXRhYmxldDsKK+mVjCA8IGVuZ3JhdmluZ1wtdG9vbDsKK+mlryA8IGZhcmV3ZWxsXC1wYXJ0eTsKK+m5giA8IGNoaW5lc2VcLW9yaW9sZTsKK+WboSA8IG9uZScnc1wtZGF1Z2h0ZXI7Civmup8gPCBkcml6emxpbmdcLXJhaW47CivplI8gPCBraW5kXC1vZlwtcmFwaWVyOwor5bGZIDwgdG9cLWVhc2VcLW5hdHVyZTsKK+eOsyA8IHRvcnRvaXNlXC1zaGVsbDsKK+eRrSA8IGFcLWtpbmRcLW9mXC1qYWRlOwor5p2IIDwgZm9ya1wtb2ZcLWFcLXRyZWU7CivljJAgPCBmYWxsXC1wcm9zdHJhdGU7CivnoKMgPCBhXC1zdG9uZVwtcm9sbGVyOwor6ZOiIDwgdW5pdFwtb2ZcLXdlaWdodDsKK+mqiCA8IHRlYW1cLW9mXC1ob3JzZXM7CivlmbEgPCBsYXVnaFwtaGVhcnRpbHk7Civnm7EgPCB3aWRlXC1vcGVuXC1leWVzOwor6ICEIDwgZWxkZXJseVwtcGVyc29uOwor5qaUIDwgYmV0ZWxcLW51dFwtdHJlZTsKK+ivpCA8IHRvXC1leHBvc3R1bGF0ZTsKK+idriA8IHZlbm9tb3VzXC1zbmFrZTsKK+mijSA8IHJpdmVyXC1pblwtYW5odWk7CivmpZ0gPCBtZWxpYVwtamFwb25pY2E7CivonbwgPCBhXC1tb2xlXC1jcmlja2V0Owor6I2qIDwgYXJvbWF0aWNcLWdyYXNzOwor5aiMIDwgYnJvdGhlcicnc1wtd2lmZTsKK+aZtyA8IHNoYWRvd3NcLW9mXC1zdW47Civll7UgPCB1c2VkXC1mb3JcLXNvdW5kOwor6LiFIDwgdG9cLXdhbGtcLWFyb3VuZDsKK+aPhiA8IHByaW1lXC1taW5pc3RlcjsKK+eMlSA8IG1hY2FjdXNcLW1vbmtleTsKK+WOnSA8IGN1dFwtb3JcLWVuZ3JhdmU7CivokZogPCBtdWxiZXJyeVwtZnJ1aXQ7CivogJIgPCBoYW5kbGVcLW9mXC1wbG93Owor5L+FIDwgb3JuYW1lbnRhbFwtY2FwOwor6I+9IDwgYmVhbnNcLWFuZFwtcGVhczsKK+meryA8IHNhZGRsZVwtYmxhbmtldDsKK+m8kCA8IGluY2Vuc2VcLXRyaXBvZDsKK+iwsCA8IGFjY3VzZVwtZmFsc2VseTsKK+mqsSA8IGpvaW50XC1vZlwtYm9uZXM7CivorKYgPCB0XC1zcGVha1wtc29mdGx5Owor56O0IDwgc3RlcHNcLW9uXC1sZWRnZTsKK+WpuiA8IG5hbWVcLW9mXC1hXC1zdGFyOwor5aCNIDwgc2lkZVwtb2ZcLWJyaWRnZTsKK+ahqyA8IGhvcnNlXC1jaGVzdG51dDsKK+a8tiA8IGluZGVjaXBoZXJhYmxlOwor5a2lIDwgb25lJydzXC1jaGlsZHJlbjsKK+a6sSA8IHJpdmVyXC1pblwtaGVuYW47Civpu6UgPCB0YXR0b29pbmdcLWZhY2U7CivoupAgPCB0b1wtc3RyaWRlXC1vdmVyOwor6LmvIDwgcGF3c1wtb2ZcLWFuaW1hbDsKK+ebjSA8IHdoYXRcP1wtd2h5XC1ub3RcPzsKK+a6hiA8IHJpdmVyXC1pblwtaHVuYW47Civno7IgPCB0cmlkYWNuYVwtZ2lnYXM7CivmmJ0gPCBhXC1kdWFsXC1wcm9ub3VuOwor5p+9IDwgdHlwZVwtb2ZcLXdpbGxvdzsKK+e8rCA8IHBhdHRlcm5lZFwtc2lsazsKK+mpuiA8IG1vdW50ZWRcLWVzY29ydDsKK+mYiiA8IGdhdGVcLW9mXC1oZWF2ZW47CivojakgPCBhXC1raW5kXC1vZlwtd2VlZDsKK+iKjiA8IGFcLWtpbmRcLW9mXC1oZXJiOwor6YuIIDwgc2lsdmVyXC1wbGF0aW5nOwor6b6FIDwgdGVldGhcLXByb3RydWRlOwor5pmhIDwgbGF0ZVwtYWZ0ZXJub29uOwor5qqgIDwgc3RhbmRcLWZvclwtbGFtcDsKK+mArSA8IHRvXC1lc2NhcGVcLWZyb207Civmk43oqrIgPCBtaWxpdGFyeVwtZHJpbGw7CivkvIrnlLjlnJIgPCBnYXJkZW5cLW9mXC1lZGVuOwor5oiQ5ZOh5ZyLIDwgbWVtYmVyXC1jb3VudHJ5Owor5YW36auU5ZWP6aGMIDwgY29uY3JldGVcLWlzc3VlOwor5Y2U5pyDIDwgYW5cLWFzc29jaWF0aW9uOwor5paH54mpIDwgY3VsdHVyYWxcLXJlbGljOwor6YCa6KiKIDwgY29tbXVuaWNhdGlvbnM7CivljbHmiL8gPCBkZWNyZXBpdFwtaG91c2U7Civnibnlt6UgPCBzZWNyZXRcLXNlcnZpY2U7Civpm7vnh4ggPCBlbGVjdHJpY1wtbGlnaHQ7Civph6PprZroh7ogPCBkaWFveXVcLWlzbGFuZHM7CivljJfmpbUgPCB0aGVcLW5vcnRoXC1wb2xlOwor6KSH6Z+75q+NIDwgY29tcG91bmRcLWZpbmFsOwor6aCQ5LuYIDwgcGF5XC1pblwtYWR2YW5jZTsKK+Wci+mYsumgkOeulyA8IGRlZmVuY2VcLWJ1ZGdldDsKK+auuuawoyA8IG11cmRlcm91c1wtbG9vazsKK+ejgeWgtCA8IG1hZ25ldGljXC1maWVsZDsKK+ijgea4m+i7jeWCmSA8IGFybXNcLXJlZHVjdGlvbjsKK+eJmeW6iiA8IGFsdmVvbGFyXC1yaWRnZTsKK+WPg+WKoCA8IHRvXC1wYXJ0aWNpcGF0ZTsKK+awkeaEjyA8IHB1YmxpY1wtb3BpbmlvbjsKK+WHuuWPo+WVhuWTgSA8IGV4cG9ydFwtcHJvZHVjdDsKK+W+gOaXpSA8IGluXC1mb3JtZXJcLWRheXM7Civli5jmuKwgPCB0b1wtaW52ZXN0aWdhdGU7CivlhrDph4sgPCBcKG9mXC1taXNnaXZpbmdzOwor5aSn5qiTIDwgbGFyZ2VcLWJ1aWxkaW5nOwor5pS56Z2p6YCy56iLIDwgcmVmb3JtXC1wcm9jZXNzOwor5YWo55CD6LOH6KiK57ayIDwgd29ybGRcLXdpZGVcLXdlYjsKK+iWhOiDjueTt+WZqCA8IGVnZ3NoZWxsXC1jaGluYTsKK+aAquS6uiA8IHN0cmFuZ2VcLXBlcnNvbjsKK+eHn+alrSA8IHRvXC1kb1wtYnVzaW5lc3M7CivloZHohqAgPCBwbGFzdGljXC1jZW1lbnQ7CivmmZrkuIogPCBpblwtdGhlXC1ldmVuaW5nOwor5pWj5q2lIDwgdG9cLXRha2VcLWFcLXdhbGs7CivorZjliKUgPCB0b1wtZGlzdGluZ3Vpc2g7CivluYDlpKrplbcgPCBvdmVyc2l6ZVwtZnJhbWU7Civmk7rolanlkIrnkrAgPCBzd2luZ2luZ1wtcmluZ3M7CivlhajnkIPmsKPlgJkgPCBnbG9iYWxcLWNsaW1hdGU7CivlpLHmjqcgPCBvdXRcLW9mXC1jb250cm9sOwor5pW45pyIIDwgc2V2ZXJhbFwtbW9udGhzOwor5b6A5b6pIDwgdG9cLXJlY2lwcm9jYXRlOwor5bCN5aSW5pS/562WIDwgZm9yZWlnblwtcG9saWN5Owor6Z225aC0IDwgc2hvb3RpbmdcLXJhbmdlOwor57OW6YaLIDwgc3dlZXRcLWFuZFwtc291cjsKK+S8tOeUn+awoyA8IGFzc29jaWF0ZWRcLWdhczsKK+W4s+iZnyA8IGFjY291bnRcLW51bWJlcjsKK+eIquWtkCA8IFwoYW5pbWFsJydzXClcLXBhdzsKK+WIpeeuoSA8IG5vXC1tYXR0ZXJcLVwod2hvOwor6YCy6KGM6YCa5L+hIDwgdG9cLWNvbW11bmljYXRlOwor5Yio56iLIDwgcGxhbmluZ1wtbGVuZ3RoOwor57Sg6I+cIDwgdmVnZXRhYmxlXC1kaXNoOwor5LiN5ZKO5pei5b6AIDwgbm90XC1jZW5zdXJlXC1zYjsKK+mWi+i7iiA8IHRvXC1kcml2ZVwtYVwtY2FyOwor54WZ54GrIDwgc21va2VcLWFuZFwtZmlyZTsKK+i9iemBiyA8IHRyYW5zcG9ydGF0aW9uOwor5beh6K2mIDwgcG9saWNlXC1vZmZpY2VyOwor5qCh5ZyS57ay57WhIDwgY2FtcHVzXC1uZXR3b3JrOwor5pW45L2N5L+h6JmfIDwgZGlnaXRhbFwtc2lnbmFsOwor5pS+5pigIDwgc2hvd1wtXChhXC1tb3ZpZVwpOwor54mp55CG5bGkIDwgcGh5c2ljYWxcLWxheWVyOwor6IGv5ZCI5ZyLIDwgdW5pdGVkXC1uYXRpb25zOwor6KO96YCgIDwgdG9cLW1hbnVmYWN0dXJlOwor5Yip546HIDwgaW50ZXJlc3RcLXJhdGVzOwor6Iux5ZyL5Lq6IDwgYnJpdGlzaFwtcGVyc29uOwor55Sf6ZW35r+A57SgIDwgZ3Jvd3RoXC1ob3Jtb25lOwor55m954ax5YyWIDwgdHVyblwtd2hpdGVcLWhvdDsKK+W8seWwjyA8IHNtYWxsXC1hbmRcLXdlYWs7CivmlZ3lsaMgPCB3b3JuXC1vdXRcLXNob2VzOwor5Y2B5LiA5pyIIDwgZWxldmVudGhcLW1vbnRoOwor5oyH5o+u5Lit5b+DIDwgY29tbWFuZFwtY2VudGVyOwor55+u5a2QIDwgYVwtc2hvcnRcLXBlcnNvbjsKK+WOn+WtkOaguCA8IGF0b21pY1wtbnVjbGV1czsKK+aKiuWFhOW8nyA8IHN3b3JuXC1icm90aGVyczsKK+mAn+axuiA8IHF1aWNrXC1kZWNpc2lvbjsKK+mXnOeohSA8IFwoY3VzdG9tc1wpXC1kdXR5Owor55m96JiHIDwgY29tbW9uXC1wZXJpbGxhOwor5q+U5YC8IDwgc3BlY2lmaWNcLXZhbHVlOwor6Zu76Kmx57ea6LevIDwgdGVsZXBob25lXC1saW5lOwor5Z+6552jIDwgamVzdXNcLVwoY2hyaXN0XCk7CivmjqLot68gPCB0b1wtZmluZFwtYVwtcGF0aDsKK+mBmeaOpyA8IHJlbW90ZVwtY29udHJvbDsKK+WMl+aWl+aYnyA8IHRoZVwtYmlnXC1kaXBwZXI7CivplovnjqnnrJEgPCB0b1wtcGxheVwtYVwtam9rZTsKK+m4jiA8IHRoZVwtbWFuZ29cLWJpcmQ7CivptpcgPCBhXC1raW5kXC1vZlwtaGF3azsKK+S7peWkque2sue1oeW5gCA8IGV0aGVybmV0XC1mcmFtZTsKK+mBmeaEnyA8IHJlbW90ZVwtc2Vuc2luZzsKK+eZveiJsiA8IHdoaXRlXC1cKGNvbG91clwpOwor6a6nIDwgdGhlXC1zaGVhdFwtZmlzaDsKK+aSpeasviA8IGFsbG9jYXRlXC1mdW5kczsKK+msmCA8IGJlYXV0aWZ1bFwtaGFpcjsKK+mslyA8IGhlYWRcLW9ybmFtZW50czsKK+W7oOW3pSA8IGZhY3RvcnlcLXdvcmtlcjsKK+iqnuawo+WKqeipniA8IG1vZGFsXC1wYXJ0aWNsZTsKK+mrhiA8IHNob3VsZGVyXC1ibGFkZTsKK+ato+WlvSA8IGp1c3RcLVwoaW5cLXRpbWVcKTsKK+e0hOabuOS6nuiomCA8IGJvb2tcLW9mXC1qb3NodWE7CivmjqLoppYgPCBwYXlcLWFcLXZpc2l0XC10bzsKK+mojCA8IGFcLWhvcnNlJydzXC1tYW5lOwor6aShIDwgcGFzdHJ5XC1maWxsaW5nOwor6aSXIDwgZm9vZFwtaW5cLXRyaXBvZDsKK+W8leWSjiA8IHRha2VcLXRoZVwtYmxhbWU7Civlr6nliKTluK0gPCBqdWRnZW1lbnRcLXNlYXQ7Civnmb3nsonnl4UgPCBwb3dkZXJ5XC1taWxkZXc7Civlo4HloLEgPCB3YWxsXC1uZXdzcGFwZXI7CivmlLnlloQgPCB0b1wtbWFrZVwtYmV0dGVyOwor57aT5r+f5pyJ5pWIIDwgY29zdFwtZWZmZWN0aXZlOwor5aCF5rG65ZCm6KqNIDwgdG9cLWZpcm1seVwtZGVueTsKK+mAoOaIkCA8IHRvXC1icmluZ1wtYWJvdXQ7CivluavmnIMgPCBzZWNyZXRcLXNvY2lldHk7CivplKogPCBhXC1raW5kXC1vZlwtdG9vbDsKK+aTjeW/gyA8IHRvXC13b3JyeVwtYWJvdXQ7Civpj7QgPCB0b1wtcGx1Z1wtYVwtaG9sZTsKK+mOqSA8IG1vdWx0XC1zYW1hcml1bTsKK+abuOWvq+espuiZnyA8IHdyaXRpbmdcLXN5bWJvbDsKK+eZveeoriA8IHRoZVwtd2hpdGVcLXJhY2U7CivpjYYgPCBtZFwtbWVuZGVsZXZpdW07Civpi6kgPCBwb2ludFwtb2ZcLXN3b3JkOwor6YuDIDwgbG9ja1wtbGFudGhhbnVtOwor6KOc57y6IDwgZmlsbFwtYVwtdmFjYW5jeTsKK+WPpOW4jOiHmCA8IGFuY2llbnRcLWdyZWVjZTsKK+ilv+atkCA8IHdlc3Rlcm5cLWV1cm9wZTsKK+S4reWci+S6uiA8IGNoaW5lc2VcLXBlcnNvbjsKK+mAleW6rSA8IHZlcnlcLWRpZmZlcmVudDsKK+WNoee0jee2reaLieeIvuinkiA8IGNhcGVcLWNhbmF2ZXJhbDsKK+ijnOe2tCA8IG1lbmRcLVwoY2xvdGhlc1wpOwor5LiN55+l5q275rS7IDwgYWN0XC1yZWNrbGVzc2x5Owor55uj552j5Lq6IDwgc3VwZXJpbnRlbmRlbnQ7Civpm4bkuK0gPCB0b1wtY29uY2VudHJhdGU7CivpgKkgPCB0b1wtcnVuXC1xdWlja2x5Owor6YGy5YiwIDwgdG9cLWFycml2ZVwtbGF0ZTsKK+i8tiA8IGxpZ2h0XC1jYXJyaWFnZTsKK+azoue+heeahOa1tyA8IHRoZVwtYmFsdGljXC1zZWE7CivotrkgPCBraWNrXC13aXRoXC1ob29mOwor5aCx5b6pIDwgbWFrZVwtcmVwcmlzYWxzOwor55yf5oOFIDwgcmVhbFwtc2l0dWF0aW9uOwor5qGM6Z2i57O757WxIDwgZGVza3RvcFwtc3lzdGVtOwor5p2x5Y2X5Lqe5ZyLIDwgc291dGhlYXN0XC1hc2lhOwor5beo5rWBIDwgc3Ryb25nXC1jdXJyZW50Owor6LGjIDwgcGlnXC1vZlwtM1wteWVhcnM7CivosZYgPCBhXC1zaGFja2xlZFwtcGlnOwor6YCA5a24IDwgdG9cLXF1aXRcLXNjaG9vbDsKK+iuhSA8IGtub3dcLWluXC1kZXRhaWw7Civlu4nlg7kgPCBjaGVhcGx5XC1wcmljZWQ7CivlsI/lnovkvIHmpa0gPCBzbWFsbFwtYnVzaW5lc3M7CivoqaggPCBraW5kXC1vZlwtY2ljYWRhOwor6aCG5bqP5pW4IDwgb3JkaW5hbFwtbnVtYmVyOwor55eF6JmfIDwgc2lja1wtcGVyc29ubmVsOwor5ZyY57WQIDwgXChob2xkXC1hXClcLXJhbGx5Owor6KSJIDwgc2hvcnRcLWdhcm1lbnRzOwor5ZyN57meIDwgcmV2b2x2ZVwtYXJvdW5kOwor6L+R5bm0IDwgcmVjZW50XC15ZWFyXChzXCk7CivooYIgPCB0b1wtYmVcLWRlZmVhdGVkOwor6KCCIDwgcG9kaXNtYVwtbWlrYWRvOwor6J+zIDwgYVwta2luZFwtb2ZcLWNyYWI7Civon60gPCB2ZXJ5XC1zbWFsbFwtYnVnOwor5YCS6ZaJIDwgdG9cLWdvXC1iYW5rcnVwdDsKK+ierCA8IGdydWJzXC1pblwtZnJ1aXQ7CivlhrfmiLAgPCBcKHRoZVwpXC1jb2xkXC13YXI7CivonI4gPCBtb3NxdWl0b1wtbGFydmE7Civos4fmlpnku4vpnaIgPCBkYXRhXC1pbnRlcmZhY2U7CivomYAgPCBtaW5jZWRcLXBpY2tsZXM7CivolrMgPCBuYW1lXC1vZlwtYVwtaGVyYjsKK+iWmCA8IHBsYW50YWdvXC1tYWpvcjsKK+WDueebriA8IFwobWFya2VkXClcLXByaWNlOwor6JOvIDwgbWVkaWNpbmFsXC1oZXJiOwor6JOPIDwgZnJ1aXRcLW9mXC1wbGFudDsKK+iRpSA8IHJ1YnVzXC1wYWxtYXR1czsKK+eXheiEiCA8IGFibm9ybWFsXC1wdWxzZTsKK+S4jeaAjum6vOaooyA8IG5vdFwtdXBcLXRvXC1tdWNoOwor5ry46K6KIDwgZ3JhZHVhbFwtY2hhbmdlOwor6IyeIDwgZnJhZ3JhbnRcLXBsYW50Owor6Z2e5bi46YeN6KaBIDwgdmVyeVwtaW1wb3J0YW50Owor57SA5b+1IDwgdG9cLWNvbW1lbW9yYXRlOwor6ZaL5pyDIDwgaGF2ZVwtYVwtbWVldGluZzsKK+mGq+WtuOWwiOWutiA8IG1lZGljYWxcLWV4cGVydDsKK+iKiCA8IGJsZWF0XC1vZlwtc2hlZXA7CivlhYjpgLLmsLTlubMgPCBhZHZhbmNlZFwtbGV2ZWw7CivljYDln5/ntrLot6/mioDooZMgPCBsYW5cLXRlY2hub2xvZ3k7Civlhajmma8gPCBwYW5vcmFtaWNcLXZpZXc7CivliIDlj4kgPCBrbmlmZVwtYW5kXC1mb3JrOwor6ISmIDwgdXNlZFwtaW5cLScnbGVkZScnOwor6YCj6Y6W5Y+N5oeJIDwgY2hhaW5cLXJlYWN0aW9uOwor54m55Yil5oSf6KydIDwgc3BlY2lhbFwtdGhhbmtzOwor5Lq65aO95L+d6ZqqIDwgbGlmZVwtaW5zdXJhbmNlOwor5biD5bibIDwgY2xvdGhcLWFuZFwtc2lsazsKK+aJvumMoiA8IHRvXC1naXZlXC1jaGFuZ2U7Civoo5zmtrIgPCBmbHVpZFwtaW5mdXNpb247Civotbfpu54gPCBzdGFydGluZ1wtcG9pbnQ7CivlsLHmmK/oqqogPCBpblwtb3RoZXJcLXdvcmRzOwor5aCx5YiGIDwgY2FsbFwtdGhlXC1zY29yZTsKK+aVmeiCsueVjCA8IGFjYWRlbWljXC13b3JsZDsKK+aMuueriyA8IHRvXC1zdGFuZFwtZXJlY3Q7CivkuI3lubPnrYnmop3ntIQgPCB1bmVxdWFsXC10cmVhdHk7CivlhavmiJAgPCBlaWdodHlcLXBlcmNlbnQ7CivlhanmiYsgPCBkb3VibGVcLXRhY3RpY3M7CivntZwgPCBhXC1tYXJraW5nXC1saW5lOwor5o6h5rK5IDwgb2lsXC1leHRyYWN0aW9uOwor57S+IDwgdHVybnNcLW9yXC10d2lzdDsKK+ezuiA8IHRvXC1jb2xsYWJvcmF0ZTsKK+i3qOi2iiA8IHRvXC1zdGVwXC1hY3Jvc3M7Civot5HpgZMgPCBhdGhsZXRpY1wtdHJhY2s7CivkuI3mlaLnlbYgPCB5b3VcLWZsYXR0ZXJcLW1lOwor57GrIDwgYmFtYm9vXC11dGVuc2lsOwor562sIDwgcmVlZFwtb2ZcLWFcLWxvb207CivllpjkuI3pgY7msKPkvoYgPCBjYW5ub3RcLWJyZWF0aGU7Civmj6Hmi7MgPCB0b1wtbWFrZVwtYVwtZmlzdDsKK+WJr+e4vee1sSA8IHZpY2VcLXByZXNpZGVudDsKK+eUmuiHs+aWvCA8IHNvXC1tdWNoXC1cKHRoYXRcKTsKK+aPoeaJiyA8IHRvXC1zaGFrZVwtaGFuZHM7CivnqK0gPCBzdGFsa1wtb2ZcLWdyYWluOwor57K+5bmyIDwgY3JhY2tcLVwodHJvb3BzXCk7CivplbflvoEgPCB0aGVcLWxvbmdcLW1hcmNoOwor55eF55ebIDwgc2xpZ2h0XC1pbGxuZXNzOwor5LiN5bmz6KGhIDwgZGlzZXF1aWxpYnJpdW07CivnoKIgPCBwaWxlXC1vZlwtc3RvbmVzOwor55+JIDwgYW5cLWFuZ3J5XC1nbGFyZTsKK+edsSA8IHRvXC1nYXplXC1zbG93bHk7Civnna8gPCB0b1wtYmVcLWFnb25pemVkOwor6Iux5a+4IDwgXChlbmdsaXNoXClcLWluY2g7CivnnKMgPCBwcm9taW5lbnRcLWV5ZXM7CivmjqHmlLbnjocgPCByZWNvdmVyeVwtcmF0aW87Civoh6rnlLHljJYgPCBsaWJlcmFsaXphdGlvbjsKK+aomeWwuiA8IHN1cnZleW9yJydzXC1yb2Q7CivolqnpgZTlp4bkvq/os73lm6AgPCBzYWRkYW1cLWh1c3NlaW47CivnkrggPCBqYWRlJydzXC1zdHJlYWtzOwor55KYIDwgbHVzdGVyXC1vZlwtamFkZTsKK+Wwh+i7jSA8IFwoYXJteVwpXC1nZW5lcmFsOwor546lIDwgbXlzdGVyaW91c1wtZ2VtOwor54uoIDwgaGFwYWxlXC1qYWNjaHVzOwor5YWp5ZyLIDwgYm90aFwtY291bnRyaWVzOwor5YWo5ZyLIDwgZW50aXJlXC1jb3VudHJ5Owor54qoIDwgcGFudGluZ1wtb2ZcLWNvdzsKK+S4jemBqeeUqCA8IG5vdFwtYXBwbGljYWJsZTsKK+S9huS7peeQhuabuCA8IGJvb2tcLW9mXC1kYW5pZWw7Civnh4kgPCBoZWF0XC13aXRoXC1maXJlOwor54eAIDwgdG9cLW1ha2VcLWFcLWZpcmU7CivnhokgPCBcKHllbGxvd1wtY29sb3JcKTsKK+i8qeWtkCA8IGFsbFwtb25lJydzXC1saWZlOwor6ZW35Z+OIDwgdGhlXC1ncmVhdFwtd2FsbDsKK+ihqOaxuiA8IGRlY2lkZVwtYnlcLXZvdGU7CivmiJDpg70gPCBjaGVuZ2R1XC1cKGNpdHlcKTsKK+mspeaZuiA8IGJhdHRsZVwtb2ZcLXdpdHM7CivlhavljYMgPCBlaWdodFwtdGhvdXNhbmQ7CivmupsgPCB0b1wtZm9ybVwtaG9sbG93Owor5rmxIDwgc291bmRcLW9mXC13YXRlcjsKK+aNt+WFi+WFseWSjOWciyA8IGN6ZWNoXC1yZXB1YmxpYzsKK+eXheattyA8IG1lZGljYWxcLXJlY29yZDsKK+a4oiA8IHBsZWFzYW50XC1zb3VuZDsKK+a2rCA8IHdhdGVyeVwtZXhwYW5zZTsKK+ewoeWWruWMliA8IHNpbXBsaWZpY2F0aW9uOwor5Ly46ZaLIDwgdG9cLXN0cmV0Y2hcLW91dDsKK+a0vyA8IHN0YWduYW50XC13YXRlcjsKK+i/q+S4jeW+l+W3siA8IGhhdmVcLW5vXC1jaG9pY2U7CivoqZXlg7nliIbpoZ4gPCByYW5rXCxcLWNsYXNzaWZ5Owor5rOCIDwgY2xlYXJcLWFuZFwtZGVlcDsKK+a8lOekuiA8IHRvXC1kZW1vbnN0cmF0ZTsKK+aytyA8IHRvXC1yZW1vdmVcLWV2aWw7Civlvp7kuovnoJTnqbYgPCB0b1wtZG9cLXJlc2VhcmNoOwor5q6tIDwgYVwtc3RpZmZcLWNvcnBzZTsKK+S7peizveS6nuabuCA8IGJvb2tcLW9mXC1pc2FpYWg7Civpub3muZbln44gPCBzYWx0XC1sYWtlXC1jaXR5Owor5qqWIDwgd2lsZFwtcGVhclwtdHJlZTsKK+apvyA8IHF1ZXJjdXNcLWdsYXVjYTsKK+WCs+aSrSA8IHRvXC1kaXNzZW1pbmF0ZTsKK+WFpeS8jSA8IGVudGVyXC10aGVcLWFybXk7Civpppbpg70gPCBjYXBpdGFsXC1cKGNpdHlcKTsKK+amviA8IHBpZWNlc1wtb2ZcLXdvb2Q7CivmpqAgPCBjaGluZXNlXC1xdWluY2U7CivmppYgPCBwYXBlclwtbXVsYmVycnk7CivmpKogPCBtYWNoaWx1c1wtbmFubXU7CivmvZTmt6ggPCBjbGVhbnNlXC1cKHNpbnNcKTsKK+ajkCA8IHNwZWNpZXNcLW9mXC15ZXc7CivmooogPCBzcXVlZXplXC1vdXRcLW9mOwor5Y2K5pW45Lul5LiKIDwgbW9yZVwtdGhhblwtaGFsZjsKK+afviA8IHN0cmFpZ2h0XC1ncmFpbjsKK+afgyA8IGV1cnlhXC1qYXBvbmljYTsKK+iIjOaguSA8IGJhY2tcLW9mXC10b25ndWU7CivmqpTmoYjlsazmgKcgPCBmaWxlXC1hdHRyaWJ1dGU7Civmm48gPCBvbmNlXC11cG9uXC10aW1lOwor6KGM5pS/IDwgYWRtaW5pc3RyYXRpb247CivooYDoo73lk4EgPCBibG9vZFwtcHJvZHVjdHM7CivmmaIgPCBsaWdodFwtb2ZcLXN0YXJzOwor5bCP6IGyIDwgaW5cLWFcLWxvd1wtdm9pY2U7CivmmLAgPCB2YXJcLW9mXC0nJ3RvXC1iZScnOwor56+h5pS5IDwgdG9cLXRhbXBlclwtd2l0aDsKK+aIquiHsyA8IHVwXC10b1wtXChhXC10aW1lXCk7CivmlIIgPCB0b1wtYmVhdFwtYVwtZHJ1bTsKK+i1t+iNiSA8IGRyYWZ0XC1cKGFcLWJpbGxcKTsKK+aMqOaJkyA8IHRha2VcLWFcLWJlYXRpbmc7CivlsaTnkIYgPCBzdHJhdGlmaWNhdGlvbjsKK+eQg+meiyA8IGF0aGxldGljXC1zaG9lczsKK+mNi+iyvCA8IGZyaWVkXC1kdW1wbGluZzsKK+WHuemdoumPoSA8IGNvbmNhdmVcLW1pcnJvcjsKK+aOiOWRvSA8IHRvXC1naXZlXC1vcmRlcnM7Civplovlv4PmnpwgPCBwaXN0YWNoaW9cLW51dHM7Civlvp7kvobmspLmnIkgPCBoYXZlXHxoYXNcLW5ldmVyOwor5Lul5pav5biW6KiYIDwgYm9va1wtb2ZcLWVzdGhlcjsKK+acgOS9s+WIqeebiiA8IGJlc3RcLWludGVyZXN0czsKK+S4lueVjOiqniA8IHdvcmxkXC1sYW5ndWFnZTsKK+aDoeaAp+W+queSsCA8IHZpY2lvdXNcLWNpcmNsZTsKK+aguOiDvSA8IG51Y2xlYXJcLWVuZXJneTsKK+a1rum7niA8IGZsb2F0aW5nXC1wb2ludDsKK+W5sSA8IG9mZmljaWFsXC1kcmVzczsKK+S4jeecgeS6uuS6iyA8IGJlXC11bmNvbnNjaW91czsKK+W3nyA8IGFcLXdhdGVyeVwtd2FzdGU7Civnmb7nhKHogYros7QgPCBib3JlZFwtdG9cLWRlYXRoOwor6KGM5pif6ZqbIDwgaW50ZXJwbGFuZXRhcnk7CivkuK3lv4Poqp4gPCBxdWFsaWZpZWRcLXdvcmQ7Civlj4PorIDplbcgPCBjaGllZlwtb2ZcLXN0YWZmOwor6Ieq5b6eIDwgc2luY2VcLVwoYVwtdGltZVwpOwor5qOE5qu7IDwgYWJhbmRvbmVkXC1iYWJ5Owor55Si5qyKIDwgcHJvcGVydHlcLXJpZ2h0Owor6b2S6LyqIDwgXChtYWNoaW5lXClcLWdlYXI7CivkvrXniq8gPCB0b1wtaW5mcmluZ2VcLW9uOwor6Yar5a245Lit5b+DIDwgbWVkaWNhbFwtY2VudGVyOwor6KGA5aOTIDwgYmxvb2RcLXByZXNzdXJlOwor6YyE5YOP5qmfIDwgdmlkZW9cLXJlY29yZGVyOwor5aGVIDwgYVwtZ3VzdFwtb2ZcLXdpbmQ7Civln4cgPCBuYW1lXC1vZlwtYnJpZGdlOwor5YWJ5L+h6JmfIDwgb3B0aWNhbFwtc2lnbmFsOwor57ac5ZCI5aCx5bCOIDwgc3VtbWFyeVwtcmVwb3J0Owor5Zm5IDwgc291bmRcLW9mXC1iZWxsczsKK+WYkyA8IGd1cmdsaW5nXC1zb3VuZDsKK+a4m+iCpSA8IHRvXC1sb3NlXC13ZWlnaHQ7Civku6PooaggPCByZXByZXNlbnRhdGl2ZTsKK+Wkp+WQjOWwj+eVsCA8IGFsbW9zdFwtc2ltaWxhcjsKK+WVjCA8IGFuaW1hbFwtZGlzZWFzZTsKK+eVq+WxlSA8IGFydFwtZXhoaWJpdGlvbjsKK+eUn+aViCA8IHRvXC10YWtlXC1lZmZlY3Q7CivmoLjmrablmaggPCBudWNsZWFyXC13ZWFwb247CivpgZTkuI3liLAgPCBjYW5ub3RcLWFjaGlldmU7CivmiY3msKMgPCBsaXRlYXJ5XC10YWxlbnQ7CivljoMgPCB0b1wtbG9va1wtdXB3YXJkOwor5Y2tIDwgaGlnaFwuXC10b1wtcmFpc2U7CivljYIgPCB0b1wtZmx5XC1yYXBpZGx5Owor5Y2R6Lqs5bGI56+AIDwgYm93XC1hbmRcLXNjcmFwZTsKK+aBreizgOaWsOempyA8IGhhcHB5XC1uZXdcLXllYXI7CivlsIjmrIQgPCBzcGVjaWFsXC1jb2x1bW47CivlrbjnsY0gPCBzY2hvb2xcLXJvbGxcKHNcKTsKK+emgemjnyA8IGZhc3RcLVwobm90XC1lYXRcKTsKK+WFi+ael+mgkyA8IFwoYmlsbFwpXC1jbGludG9uOwor5LyVIDwgY29tbW9uXC1sYWJvcmVyOwor5LqHIDwga3d1a3llbFwtaGFtbWVyOwor5LaUIDwgcHJvbWluZW50XC1ndW1zOwor5LaQIDwgdG9cLXRha2VcLWJyZWF0aDsKK+S2gCA8IHNvdW5kXC1vZlwtZHJ1bXM7CivktbYgPCBhXC1raW5kXC1vZlwtZnJvZzsKK+S1jCA8IHJlZGRpc2hcLXllbGxvdzsKK+S0tCA8IGFcLWtpbmRcLW9mXC1jYWtlOwor5LSpIDwgYVwta2luZFwtb2ZcLWRlZXI7CivktJggPCBhXC1raW5kXC1vZlwtYmlyZDsKK+SzuCA8IHRoZVwtd2lsZFwtZ29vc2U7Civks6sgPCBhXC1zbWFsbFwtcGlnZW9uOwor5LKiIDwgYVwta2luZFwtb2ZcLWZpc2g7Civmn5DnqK4gPCBzb21lXC1raW5kXC1cKG9mXCk7CivksLkgPCB0aGVcLWN1dHRsZWZpc2g7CivksLQgPCBhXC13YWZ0aW5nXC1maXNoOwor5LChIDwgYVwtZmllcmNlXC1naG9zdDsKK+Wwh+acgyA8IHdpbGxcLFwtZ29pbmdcLXRvOwor5K+bIDwgdGhlXC1rbmVlXC1ib25lczsKK+SuuSA8IGFuXC1hbmdyeVwtaG9yc2U7Civkrq4gPCBhXC1raW5kXC1vZlwtbXVsZTsKK+StuyA8IGFcLXN3aWZ0eVwtaG9yc2U7Civkra0gPCB0aGVcLWVsZGVzdFwtc29uOwor5K2pIDwgdG9cLWZlZWRcLWFcLWJhYnk7CivliY3nlJ/lj6zllpogPCBmb3Jlb3JkaW5hdGlvbjsKK+StgSA8IHN0aW5raW5nXC1zbWVsbDsKK+SsuiA8IHNhbWVcLWFzXC11XCs0YjUwOwor5KyYIDwgdGhlXC13aW5kXC1ibG93czsKK+SskiA8IHRvXC1ibG93XC1jaGlsbHk7CivosY7otbcgPCBob2xkXC11cFwtXChoaWdoXCk7CivntrLpmpvpm7voqbEgPCBpbnRlcm5ldFwtcGhvbmU7Civkq6sgPCBodW1hblwtc2tlbGV0b247CivkqrwgPCB0aGVcLWNoZWVrXC1ib25lOwor5KqIIDwgYVwtbGVhdGhlclwtYmVsdDsKK+SpkCA8IHRpZVwtaXRcLXRpZ2h0bHk7CivkqKUgPCBhXC1wb3VyaW5nXC1yYWluOwor5KenIDwgaGlnaFwtbW91bnRhaW5zOwor5a+25pu4IDwgdHJlYXN1cmVkXC1ib29rOwor5Ka6IDwgbmFtZVwtb2ZcLWFcLWhpbGw7CivkpqQgPCBzZWVkXC1vZlwtZ3JhaW5zOwor5KaRIDwgd2l0aG91dFwtYVwtZG9vcjsKK+SmjyA8IHdpbmdcLW9mXC1hXC1kb29yOwor6IGW6KqV56+AIDwgY2hyaXN0bWFzXC10aW1lOwor5KSWIDwgYVwta2luZFwtb2ZcLXdpbmU7Civko44gPCBuYW1lXC1vZlwtY291bnR5Owor55m95Luk5rW3IDwgdGhlXC1iZXJpbmdcLXNlYTsKK+SiqCA8IHRvXC13YWxrXC1zbG93bHk7Civkob4gPCBoaWdoXC1jYXJ0bG9hZHM7CivkobIgPCByaW1cLW9mXC1hXC13aGVlbDsKK+aRqemWgOe2kyA8IGJvb2tcLW9mXC1tb3Jtb247CivkoYkgPCBhXC1raW5kXC1vZlwtY2FydDsKK+iYi+aenOmbu+iFpiA8IGFwcGxlXC1jb21wdXRlcjsKK+ScvSA8IGFcLWtpbmRcLW9mXC1iZWFuOwor5JycIDwgd29yZHNcLW9mXC1hbmdlcjsKK+SboCA8IHVuYWJsZVwtdG9cLXRhbGs7CivlkIPpqZogPCB0b1wtYmVcLXN0YXJ0bGVkOwor5JqWIDwgbW91bnRhaW5cLWRlaXR5Owor5JqEIDwgdG9cLW1ha2VcLWZ1blwtb2Y7CivkmbMgPCBzcGl0aW5nXC1mbGFtZXM7CivkmaYgPCB1cHBlclwtZ2FybWVudHM7CivkmKIgPCBvbGRcLWFuZFwtc2hhYmJ5Owor5Je3IDwgYVwta2luZFwtb2ZcLXdhc3A7Civkl6ogPCBhXC1raW5kXC1vZlwtd29ybTsKK+SXmiA8IGVnZ3NcLW9mXC1tYW50aXM7Civkl5IgPCBhXC1raW5kXC1vZlwtY2xhbTsKK+SWsCA8IGFcLWtpbmRcLW9mXC1nbmF0Owor5pKe5pOK5byP5Y2w6KGo5qmfIDwgaW1wYWN0XC1wcmludGVyOwor5JWaIDwgYVwtc3RyYXdcLWJhc2tldDsKK+SUlSA8IGNoaWNrZW5cLWJyZWFzdDsKK+SUiyA8IGFcLWtpbmRcLW9mXC10cmVlOwor5bCO5b2IIDwgZ3VpZGVkXC1taXNzaWxlOwor5JSCIDwgdmVnZXRhYmxlXC1zb3VwOwor5riF54i9IDwgZnJlc2hcLWFuZFwtY29vbDsKK+SToSA8IGFcLW1lZGljYWxcLWhlcmI7CivkkpMgPCB0b1wtZG9cLXZpb2xlbmNlOwor5JKHIDwgbmFtZVwtb2ZcLWFcLXNoaXA7CivkkoUgPCBiZWF1dGlmdWxcLWV5ZXM7CivkkbYgPCBzcHJpZ2h0bHlcLWJvYXQ7CivkkasgPCB0b29sc1wtZm9yXC1ib2F0Owor5JGjIDwgYVwtc2FpbGluZ1wtYm9hdDsKK+SRnCA8IHRvXC1lYXRcLWhlYXZpbHk7CivkupLoga8gPCBpbnRlcmNvbm5lY3RlZDsKK+SQlSA8IG9pbFwtYW5kXC1ncmVhc2U7CivkkI0gPCBleGNlbGxlbnRcLWZvb2Q7CivkjaEgPCBzbWFsbFwtZmlzaFwtbmV0Owor5I2RIDwgYVwtbmV0XC1vclwtc25hcmU7CivkjY0gPCB1bmJ1cm50XC1icmlja3M7CivllLHniYcgPCBcKHZpbnlsXClcLXJlY29yZDsKK+SMtSA8IGxhcGVsXC1hbmRcLWJlbHQ7CivkjLAgPCBjb25uZWN0ZWRcLXNpbGs7CivkjKUgPCB0b1wtc2V3XC1jbG90aGVzOwor5IyhIDwgdG9cLXdpbmRcLWFyb3VuZDsKK+S6jOiAhSA8IGJvdGhcLVxbb2ZcLXRoZW1cXTsKK+SLvSA8IGhlbXBlblwtc2FuZGFsczsKK+SLryA8IGNydWNpYWxcLXBvaW50czsKK+SLoiA8IHRvXC10d2lzdFwtcm9wZXM7CivkirwgPCBtZWFzdXJpbmdcLXVuaXQ7CivmiY3lrZAgPCBnaWZ0ZWRcLXNjaG9sYXI7CivkvrXlrrMgPCB0b1wtZW5jcm9hY2hcLW9uOwor5IqoIDwgc3RvcmluZ1wtZ3JhaW5zOwor5Ii3IDwgYVwtYmFtYm9vXC1mZW5jZTsKK+SImiA8IGFcLWJhbWJvb1wtc2hvb3Q7CivkuI3ohJvogIzotbAgPCBnZXRcLXJvdW5kXC1mYXN0Owor5IerIDwgYmFtYm9vXC1zcGxpbnRzOwor5IeFIDwgdG9cLXN0YW5kXC1zdGlsbDsKK+S4iei8qui7iuS8lSA8IHBlZGljYWJcLWRyaXZlcjsKK+WvtuW6qyA8IHRyZWFzdXJlXC1ob3VzZTsKK+S/neWWriA8IGd1YXJhbnRlZVwtc2xpcDsKK+mjvee2k+miqOmcnCA8IHdlYXRoZXJcLWJlYXRlbjsKK+SFpSA8IHJpcGVuaW5nXC1jcm9wczsKK+Wwj+WtuCA8IHByaW1hcnlcLXNjaG9vbDsKK+S7lOeVnCA8IG5ld2Jvcm5cLWFuaW1hbDsKK+SDuSA8IGphZGVcLWFuZFwtc3RvbmU7Civkg6EgPCBhXC1zbWFsbFwtcGViYmxlOwor5pys6ImyIDwgbmF0dXJhbFwtY29sb3VyOwor5IOPIDwgYVwta2luZFwtb2ZcLXJvY2s7Civkg4wgPCByb2NreVwtbW91bnRhaW47CivkvoblvoAgPCB0b1wtY29tZVwtYW5kXC1nbzsKK+SCjCA8IGFcLXNob3J0XC13ZWFwb247Civlhajlv4PlhajmhI8gPCBoZWFydFwtYW5kXC1zb3VsOwor5IGkIDwgbW9pc3RlbmVkXC1leWVzOwor5IGPIDwgZmFyc2lnaHRlZG5lc3M7CivkgLogPCBzcXVpbnRpbmdcLWV5ZXM7Civlt6Xmpa3nmoTlt6jpoK0gPCBpbmR1c3RyeVwtbW9nb2w7CivjvaYgPCByZWNsYWltZWRcLWxhbmQ7CivjvaUgPCBmZXJ0aWxlXC1maWVsZHM7CivjvYsgPCBhXC1raW5kXC1vZlwtdGlsZTsKK+O9hCA8IGFuXC1lYXJ0aGVuXC1qYXI7CivpoYzot4sgPCBzaG9ydFwtY29tbWVudHM7CivjuKsgPCBjYXN0cmF0ZWRcLWJ1bGw7CivjuKQgPCBicm9rZW5cLWxlYXRoZXI7CivjuIogPCBmaWVyY2VcLW9mXC1maXJlOwor47agIDwgd2F0ZXJcLWN1cnJlbnRzOwor5LiN6KejIDwgbm90XC11bmRlcnN0YW5kOwor5rOw57Gz54i+6KqeIDwgdGFtaWxcLWxhbmd1YWdlOwor47WYIDwgZ3JlYXRcLWN1cnJlbnRzOwor5oeu5oWuIDwgXChmZWVsXClcLWFueGlldHk7CivjtLggPCBzd2lmdFwtY3VycmVudHM7Civniq/kuI3okZcgPCBub3RcLXdvcnRod2hpbGU7CivjtJkgPCB3YXRlclwtZHJpcHBpbmc7Civjs4MgPCB0b1wtdGVtcGVyXC1pcm9uOwor47KPIDwgZmx5aW5nXC1mZWF0aGVyOwor5L2Z5oK4IDwgbGluZ2VyaW5nXC1mZWFyOwor47GPIDwgdGhlXC1yaWdodFwtc2lkZTsKK+aIkOWwsSA8IGFjY29tcGxpc2htZW50Owor4627IDwgdGhlXC1jcmFiXC1hcHBsZTsKK+S4jeeUqOisnSA8IHlvdScncmVcLXdlbGNvbWU7CivjrY8gPCBhXC1raW5kXC1vZlwtd29vZDsKK+OthCA8IGFcLWtpbmdcLW9mXC10cmVlOwor5a655b+NIDwgdG9cLXB1dFwtdXBcLXdpdGg7Civjq48gPCBhXC1raW5kXC1vZlwtZmxhZzsKK+OrgiA8IHRvXC1jaG9wXC1vclwtY3V0Owor57236KuWIDwgYWJhbmRvbmVkXC1pZGVhOwor5oKj6JmVIDwgYWZmbGljdGVkXC1wYXJ0Owor46iHIDwgdG9cLXN3ZWVwXC1jbGVhbjsKK+OluiA8IHRvXC1ibG93XC1hXC1maXJlOwor5LiN5pyf6ICM6YGHIDwgbWVldFwtYnlcLWNoYW5jZTsKK+OliSA8IGFcLWxpdHRsZVwtYW5ncnk7CivjpYcgPCB0b1wtYmVcLXBlcnZlcnNlOwor46S+IDwgbm90XC1kb2luZ1wtd2VsbDsKK+OkliA8IHRvXC1oYXZlXC13aXNkb207Civjo6YgPCBhXC13aW5kaW5nXC1wYXRoOwor5p625qeLIDwgaW5mcmFzdHJ1Y3R1cmU7CivnqbTmkq0gPCBidW5jaFwtcGxhbnRpbmc7CivljYroh6rli5UgPCBzZW1pXC1hdXRvbWF0aWM7CivjoZwgPCByYWdnZWRcLWNsb3RoZXM7Civmh7flrZUgPCB0b1wtYmVcLXByZWduYW50Owor46CoIDwgbWlzdHlcLW1vdW50YWluOwor46ChIDwgaGlnaFwtYW5kXC1sb2Z0eTsKK+OfvyA8IGhpZ2hcLWFuZFwtc3RlZXA7Civogbfmpa0gPCBqb2JcLW9jY3VwYXRpb247Civlhafokpnlj6QgPCBpbm5lclwtbW9uZ29saWE7CivpgIDkvJHph5EgPCByZXRpcmVtZW50XC1wYXk7CivnlZnoqIDnsL8gPCB2aXNpdG9yJydzXC1ib29rOwor456pIDwgbW91bnRhaW5cLXZhcG9yOwor456XIDwgdGhlXC1tYWxlXC1vcmdhbjsKK+S7u+acnyA8IHRlcm1cLW9mXC1vZmZpY2U7CivjnoogPCB1bmFibGVcLXRvXC13YWxrOwor452wIDwgdW5hYmxlXC10b1wtbWVldDsKK+OdmyA8IGFoYWx0aW5nXC1wbGFjZTsKK+OcpCA8IGZvb2xpbmdcLWFyb3VuZDsKK+OckSA8IGFuXC1vbGRlclwtd29tYW47Civov5HkuY7lkIzmraUgPCBwbGVzaW9jaHJvbm91czsKK+ObqSA8IHNpc3RlcnNcLWluXC1sYXc7Civjm4IgPCB3ZWFrXC1hbmRcLXNtYWxsOwor45qDIDwgdG9cLXRha2VcLWFcLWhpbnQ7CivjmbcgPCBsb3dcLWx5aW5nXC1hcmVhOwor5LiN6IiIIDwgb3V0XC1vZlwtZmFzaGlvbjsKK+OWoiA8IHRvXC1yZWplY3RcLWZvb2Q7CivjlaQgPCBhXC1wcm91ZFwtdGVtcGVyOwor55CD5qOSIDwgXChiYXNlYmFsbFwpXC1iYXQ7CivjlJkgPCBncmVhdFwtc3RyZW5ndGg7CivjkpsgPCB0b1wtc3RhbmRcLWFsb25lOwor45KAIDwgZG9cLW5vdFwtZmVhclwtdG87Civos4fmoLwgPCBxdWFsaWZpY2F0aW9uczsKK+adsea1tyA8IGVhc3RcLWNoaW5hXC1zZWE7CivmrbvkuqHnjocgPCBtb3J0YWxpdHlcLXJhdGU7Civlk6XmnKzlk4jmoLkgPCBjb3BlbmhhZ2VuXC1cP1w/XD87CivmnbHmrZAgPCBlYXN0ZXJuXC1ldXJvcGU7Civku7vmhpEgPCBub1wtbWF0dGVyXC13aGF0Owor5LuK5pydIDwgYXRcLXRoZVwtcHJlc2VudDsKK+S9nOWTgSA8IHdvcmtzXC1cKG9mXC1hcnRcKTsKK+aGi+aCtiA8IGZlZWxcLW9wcHJlc3NlZDsKK+mjvOanvSA8IGZlZWRpbmdcLXRyb3VnaDsKK+itpui7iiA8IHBvbGljZVwtdmVoaWNsZTsKK+WvkuWGtyA8IGNvbGRcLVwoY2xpbWF0ZVwpOwor5ZOI6Kmy5pu4IDwgYm9va1wtb2ZcLWhhZ2dhaTsKK+WuieWlvSA8IHNhZmVcLWFuZFwtc291bmQ7CivmtrLmmbYgPCBsaXF1aWRcLWNyeXN0YWw7Civlj4Pop4AgPCB0b1wtbG9va1wtYXJvdW5kOwor6Zi/5LyP5Ly95b63576F5a6a5b6LIDwgYXZvZ2Fkcm8nJ3NcLWxhdzsKK+aTuuaUpOWtkCA8IHNldFwtdXBcLWFcLXN0YWxsOwor5Y+v6IO9IDwgbWlnaHRcLVwoaGFwcGVuXCk7CivpppblhYggPCBmaXJzdFwtXChvZlwtYWxsXCk7CivnkZ7lo6vkurogPCBzd2lzc1wtXChwZXJzb25cKTsKK+avj+err+WPo+WDueagvCA8IHByaWNlXC1wZXJcLXBvcnQ7CivmtrLmhYsgPCBsaXF1aWRcLVwoc3RhdGVcKTsKK+WtleWppiA8IHByZWduYW50XC13b21hbjsKK+S5mOazlSA8IG11bHRpcGxpY2F0aW9uOwor5beu5LiN5aSaIDwgYWxtb3N0XCxcLW5lYXJseTsKK+WumuWDuSA8IHRvXC1zZXRcLWFcLXByaWNlOwor5ous5byn6KOhIDwgaW5cLXBhcmVudGhlc2VzOwor5pqX566xIDwgY2FtZXJhXC1iZWxsb3dzOwor5rib5YiRIDwgcmVkdWNlXC1wZW5hbHR5Owor55m+57Gz6LO96LeRIDwgMTAwXC1tZXRyZVwtZGFzaDsKK+S/oeiZn+iHuiA8IHNpZ25hbFwtc3RhdGlvbjsKK+S4lueVjOS4iiA8IFwob2ZcLXRoZVwpXC13b3JsZDsKK+iqv+afpeWgseWRiiA8IG1lbW9pclwsXC1yZXBvcnQ7CivlnJPnj6DnrYYgPCBiYWxsXC1wb2ludFwtcGVuOwor5Lit5q2QIDwgY2VudHJhbFwtZXVyb3BlOwor5YWo55CD5rCj5YCZ5Y2H5rqrIDwgZ2xvYmFsXC13YXJtaW5nOwor54qv572qIDwgXChjb21taXRcKVwtY3JpbWU7Civku73lhZIgPCBkZWdyZWVcLFwtZXh0ZW50Owor6LeR6IW/5YWSIDwgdG9cLXJ1blwtZXJyYW5kczsKK+S4jeato+W4uOeLgOazgSA8IGFibm9ybWFsXC1zdGF0ZTsKK+eJueiJsiA8IGNoYXJhY3RlcmlzdGljOwor5Lit5pa3IDwgdG9cLWRpc2NvbnRpbnVlOwor56eV5a2QIDwgYmxpZ2h0ZWRcLWdyYWluOwor5LiW55WM57aT5r+fIDwgZ2xvYmFsXC1lY29ub215Owor5pyJ5b6FIDwgbm90XC15ZXRcLVwoZG9uZVwpOwor6aGM5p2QIDwgc3ViamVjdFwtbWF0dGVyOwor56Sm5rOJIDwgbWluZXJhbFwtc3ByaW5nOwor6YCa55So5rG96LuKIDwgZ2VuZXJhbFwtbW90b3JzOwor5q+b6KGjIDwgXCh3b29sXClcLXN3ZWF0ZXI7Civosqzku7sgPCByZXNwb25zaWJpbGl0eTsKK+WMl+S6rOmAseWgsSA8IGJlaWppbmdcLXJldmlldzsKK+WNiuiBtyA8IHBhcnRcLXRpbWVcLXdvcms7Civms6Lni4DnhrEgPCB1bmR1bGFudFwtZmV2ZXI7Civpoa/lvpcgPCBhcHBlYXJcLVwodG9cLWJlXCk7CivkuI3lv40gPCBjYW5ub3RcLWJlYXJcLXRvOwor55+l6K2Y5bqrIDwga25vd2xlZGdlXC1iYXNlOwor5rqQ6bue5Zyw5Z2AIDwgc291cmNlXC1hZGRyZXNzOwor6YCZ5qyh5Y2x5qmfIDwgcHJlc2VudFwtY3Jpc2lzOwor5aSa5bel6YGL5L2cIDwgbXVsdGl0aHJlYWRpbmc7Civlqr3lkqogPCBtdW1teVwtXChtb3RoZXJcKTsKK+azouaBqSA8IGJvbm5cLVwoZ2VybWFueVwpOwor5pWX6Ki0IDwgbG9zZVwtYVwtbGF3c3VpdDsKK+mbu+S/oeWxgCA8IGNlbnRyYWxcLW9mZmljZTsKK+WjveihoyA8IGJ1cmlhbFwtY2xvdGhlczsKK+ilv+WNl+S6niA8IHNvdXRod2VzdFwtYXNpYTsKK+S6jOawp+WMlueisyA8IGNhcmJvblwtZGlveGlkZTsKK+aTuumQmCA8IHBlbmR1bHVtXC1jbG9jazsKK+aSpeiZn+ebpCA8IHRlbGVwaG9uZVwtZGlhbDsKK+WMl+e3ryA8IG5vcnRoXC1sYXRpdHVkZTsKK+WPiuagvCA8IHRvXC1wYXNzXC1hXC10ZXN0Owor5rOV5bqtIDwgY291cnRcLVwob2ZcLWxhd1wpOwor6YCZ6aGeIDwgdGhpc1wta2luZFwtXChvZlwpOwor57ay57Wh6Kit6KiIIDwgbmV0d29ya1wtZGVzaWduOwor5b6M5YWp6ICFIDwgdGhlXC1sYXR0ZXJcLXR3bzsKK+S4u+S/riA8IFwoc2Nob29sXClcLW1ham9yOwor6K6K5oiQIDwgdG9cLWNoYW5nZVwtaW50bzsKK+W7oOemruaLnCA8IGRheVwtb2ZmXC1cKHdvcmtcKTsKK+S4jeWQiCA8IG5vdFwtY29uZm9ybVwtdG87CivplovmlL7lvI/ns7vntbEgPCBvcGVuXC1zeXN0ZW1cKHNcKTsKK+aWkeeruSA8IG1vdHRsZWRcLWJhbWJvbzsKK+S4jeWPiiA8IG5vdFwtYXNcLWdvb2RcLWFzOwor5YiG6aGeIDwgY2xhc3NpZmljYXRpb247Civlhannmb7lhIQgPCB0d2VudHlcLWJpbGxpb247CivnhKHpgKPmjqUgPCBjb25uZWN0aW9ubGVzczsKK+mHjeW7uiA8IHJlY29uc3RydWN0aW9uOwor54yc6KyO5YWSIDwgZ3Vlc3NcLWFcLXJpZGRsZTsKK+iri+eciyA8IHBsZWFzZVwtc2VlXC1cLlwuXC47CivkupTlubToqIjlioMgPCBmaXZlXC15ZWFyXC1wbGFuOwor5rCr5rCjIDwgaHlkcm9nZW5cLVwoZ2FzXCk7CivluILloLTntpPmv58gPCBtYXJrZXRcLWVjb25vbXk7CivmqpTmoYjln7fooYwgPCBmaWxlXC1leGVjdXRpb247CivkupLli5Xpm7voppYgPCBpbnRlcmFjdGl2ZVwtdHY7Civnvo7lt67kuosgPCBhXC10ZXJyaWZpY1wtam9iOwor5pW456iuIDwgbnVtZXJvdXNcLXR5cGVzOwor5Yaw6bueIDwgZnJlZXppbmdcLXBvaW50Owor5q2Q5rSy6IGv55ufIDwgZXVyb3BlYW5cLXVuaW9uOwor6I+v6KOUIDwgZXRobmljXC1jaGluZXNlOwor5LiN5LuBIDwgbm90XC1iZW5ldm9sZW50Owor5pS26IG9IDwgdG9cLWxpc3RlblwtXCh0b1wpOwor57uPIDwgY2xhc3NpY1wtd29ya3M7CivlvJ8gPCB5b3VuZ1wtYnJvdGhlcjsKK+W7uyA8IGNpcmNsZVwtYXJvdW5kOwor5YWzIDwgZnJvbnRpZXJcLXBhc3M7CivluJ0gPCBzdXByZW1lXC1ydWxlcjsKK+eVqiA8IHRvXC10YWtlXC10dXJuczsKK+eVpSA8IGFwcHJveGltYXRlbHk7CivlhbEgPCB0b2dldGhlclwtd2l0aDsKK+S5iSA8IHJpZ2h0XC1jb25kdWN0Owor5auCIDwgc2lzdGVyXC1pblwtbGF3Owor5ZOlIDwgZWxkZXJcLWJyb3RoZXI7CivlqaYgPCBtYXJyaWVkXC13b21lbjsKK+iooyA8IHRha2VcLWxlYXZlXC1vZjsKK+aXjyA8IGFcLWZhbWlseVwtY2xhbjsKK+WlqiA8IHRha2VcLWJ5XC1mb3JjZTsKK+eslCA8IHdyaXRpbmdcLWJydXNoOwor6KK3IDwgbGluZWRcLWdhcm1lbnQ7CivngKwgPCBzd2lmdFwtY3VycmVudDsKK+S8ryA8IG9sZGVyXC1icm90aGVyOwor5ryyIDwgcmlzZVwtaW5cLXByaWNlOwor56S8IDwgc29jaWFsXC1jdXN0b207CivlmKkgPCBydXNoaW5nXC1zb3VuZDsKK+WVoyA8IGhvbGRcLWluXC1tb3V0aDsKK+aziiA8IGFuY2hvclwtdmVzc2VsOwor5rK/IDwgZm9sbG93XC1jb3Vyc2U7CivlkoQgPCBub2lzZVwtb2ZcLXJhZ2U7Civoj4ogPCBjaHJ5c2FudGhlbXVtOwor5bKzIDwgbW91bnRhaW5cLXBlYWs7CivljLkgPCBib2x0XC1vZlwtY2xvdGg7CivpoocgPCBsZWFuXC1vbmVcLXNpZGU7CivmmaggPCBlYXJseVwtbW9ybmluZzsKK+aSniA8IGtub2NrXC1hZ2FpbnN0Owor5oSIIDwgbW9yZVwtYW5kXC1tb3JlOwor5qeHIDwgdGlwXC1vZlwtYVwtdHJlZTsKK+mnhSA8IHJlbGF5XC1zdGF0aW9uOwor6aWFIDwgc3RlYW1lZFwtYnJlYWQ7CivngrggPCB0b1wtZnJ5XC1pblwtb2lsOwor6ISIIDwgYmxvb2RcLXZlc3NlbHM7Civnu6ogPCBlbmRcLW9mXC10aHJlYWQ7Civpo7wgPCByYWlzZVwtYW5pbWFsczsKK+aikyA8IGNhdGFscGFcLW92YXRhOwor6IKMIDwgbXVzY2xlXC10aXNzdWU7CivkvakgPCBiZWx0XC1vcm5hbWVudDsKK+e9siA8IHB1YmxpY1wtb2ZmaWNlOwor5pCtIDwgam9pblwtdG9nZXRoZXI7CivmoJcgPCBjaGVzdG51dFwtdHJlZTsKK+ahkSA8IG11bGJlcnJ5XC10cmVlOwor6Z6EIDwgdG9cLXdvcmtcLWhpZGVzOwor5p2TIDwgaGFuZGxlXC1vZlwtY3VwOwor5L2DIDwgdGVuYW50XC1mYXJtZXI7CivotKEgPCBvZmZlclwtdHJpYnV0ZTsKK+abhyA8IGJlY29tZVwtY2xvdWR5Owor5LqZIDwgZXh0ZW5kXC1hY3Jvc3M7Civor54gPCBiZWFyXC1jaGlsZHJlbjsKK+aZtCA8IGNsZWFyXC13ZWF0aGVyOwor5aGRIDwgbW9kZWxcLWluXC1jbGF5Owor5rWmIDwgYmFua1wtb2ZcLXJpdmVyOwor57GUIDwgYmFtYm9vXC1iYXNrZXQ7CivmhY4gPCBhY3RcLXdpdGhcLWNhcmU7CivojokgPCB3aGl0ZVwtamFzbWluZTsKK+aNlyA8IG1ha2VcLXByb2dyZXNzOwor5aGMIDwgZmFsbFwtaW5cLXJ1aW5zOwor56uWIDwgcGVycGVuZGljdWxhcjsKK+mZlSA8IG1vdW50YWluXC1wYXNzOwor5oOaIDwgYWJzZW50XC1taW5kZWQ7Civmt4AgPCBzaGFsbG93XC13YXRlcjsKK+a3mCA8IHdhc2hcLWluXC1zaWV2ZTsKK+eRsCA8IGV4dHJhb3JkaW5hcnk7CivlnqsgPCBhZHZhbmNlXC1tb25leTsKK+eBtiA8IGtpdGNoZW5cLXJhbmdlOwor5q+TIDwgZ2l2ZVwtYmlydGhcLXRvOwor5ZKnIDwgc3RyZXRjaFwtbW91dGg7CivlpY4gPCBzdHJpZGVcLW9mXC1tYW47CivmtL0gPCB0b1wtYmxlbmRcLXdpdGg7CivnkbYgPCBwcmVjaW91c1wtamFkZTsKK+mSsCA8IHJhcmVcLXRyZWFzdXJlOwor55GbIDwgbHVzdGVyXC1vZlwtZ2VtOwor5q6JIDwgZGllXC1mb3JcLWNhdXNlOwor5ZSsIDwgdG9cLWludGltaWRhdGU7CivnmKogPCBzaHJpdmVsbGVkXC11cDsKK+WUhiA8IG1ha2VcLW1pc2NoaWVmOwor5bKaIDwgbW91bnRhaW5cLW1pc3Q7CivmoaYgPCB0eXBlXC1vZlwtYmlyY2g7Civmtp8gPCBmbG93aW5nXC13YXRlcjsKK+mjlSA8IHNvdW5kXC1vZlwtd2luZDsKK+WdtyA8IGNsb2RcLW9mXC1lYXJ0aDsKK+mRqyA8IHVzZWRcLWluXC1uYW1lczsKK+esiyA8IGJhbWJvb1wtc2hvb3RzOwor6I2DIDwgYXJvbWF0aWNcLWhlcmI7CivppoQgPCBkdW1wbGluZ1wtc291cDsKK+epuSA8IGhpZ2hcLWFuZFwtdmFzdDsKK+W8iCA8IGNoaW5lc2VcLWNoZXNzOwor6amuIDwgY2FycnlcLW9uXC1iYWNrOwor6IqlIDwgbXVzdGFyZFwtcGxhbnQ7CivngpwgPCBicmlsbGlhbnRcLXJlZDsKK+WynCA8IHJvY2tcLW1vdW50YWluOwor57qrIDwgdGhyZWFkXC1uZWVkbGU7CivmoYAgPCBjaGlja2VuXC1yb29zdDsKK+aLriA8IGxhYm9yaW5nXC1oYXJkOwor57qlIDwgaW5mZXJpb3JcLXNpbGs7Civlv6QgPCBpbnN1Ym9yZGluYXRlOwor6bi+IDwgZmFidWxvdXNcLWJpcmQ7CivlmIEgPCB0b1wtYmVcLWdyaWV2ZWQ7Civovo4gPCBhXC1zdXBwbHlcLWNhcnQ7CivoiqsgPCBkYXBobmVcLWdlbmt3YTsKK+S8pyA8IHZ1bGdhclwtcGVyc29uOwor5rOgIDwgbmljZVwtYW5kXC1jb29sOwor57i7IDwgaGFsdGVyXC1mb3JcLW94Owor6Li9IDwgdG9cLXdhbGtcLWFsb25lOwor6LWtIDwgcmVkZGlzaFwtYnJvd247CivpooAgPCB0YWxsXC1hbmRcLXNsaW07Civmn5ggPCBhXC10aG9ybnlcLXRyZWU7CivosJQgPCBob25lc3RcLXNwZWVjaDsKK+mqkyA8IHBpZWJhbGRcLWhvcnNlOwor5bSnIDwgaGlnaFwtbW91bnRhaW47CivphZogPCBjYXJib2xpY1wtYWNpZDsKK+WkpCA8IGRpc3RhbnRcLXBsYWNlOwor5pqMIDwgaW5cLW9wcG9zaXRpb247CivmgI0gPCB0b1wtYmVcLWFzaGFtZWQ7CivotL0gPCBnaWZ0XC1zdXBlcmlvcjsKK+avliA8IGd1YXJkXC1hZ2FpbnN0Owor6L+TIDwgdG9cLWdvXC10b1wtbWVldDsKK+avtSA8IGxvbmdcLWZlYXRoZXJzOwor552aIDwgY29ybmVyXC1vZlwtZXllOwor5q+9IDwgYVwtc2h1dHRsZWNvY2s7Civlg7MgPCBtaW5vcml0eVwtbmFtZTsKK+i+jyA8IGh1YnNcLW9mXC13aGVlbDsKK+aXhiA8IGZsYWdcLW9ybmFtZW50Owor6I2HIDwgYVwtd2F0ZXJcLXBsYW50Owor5Y2uIDwgbWVhc3VyaW5nXC1jdXA7Civpq6EgPCB0b1wtc2hlYXJcLXRyZWU7Civps5wgPCBtYW5kYXJpblwtZmlzaDsKK+m8jSA8IGxhcmdlXC1yZXB0aWxlOwor56yrIDwgcGxhbmtzXC1vZlwtYmVkOwor57yhIDwgYVwtYnJpZGFsXC12ZWlsOwor57uoIDwgY29hcnNlXC1wb25nZWU7CivoirAgPCB3YXRlclwtY2FsdHJvcDsKK+mtgyA8IGRyb3VnaHRcLWRlbW9uOwor6IizIDwgc3Rlcm5cLW9mXC1zaGlwOwor5bGmIDwgc3RyYXdcLXNhbmRhbHM7Civok5AgPCBzdHJhd1wtYmVkXC1tYXQ7Civpio4gPCBleWVcLW9mXC1hblwtYXhlOwor6YajIDwgY2FyYm9oeWRyYXRlczsKK+ibkSA8IGFcLW1hcmluZVwtY3JhYjsKK+akoCA8IHdvb2RlblwtdGFibGV0Owor5aq4IDwgYW5cLXVnbHlcLXdvbWFuOwor6aaHIDwgc3RpclwtYW5kXC1jb29rOwor55SZIDwgc3VnYXJcLXByb2R1Y3Q7CivolqQgPCBhbGxpdW1cLWJha2VyaTsKK+WhpSA8IGRyeVwtY2xheVwtbHVtcDsKK+aqlOahiOi9iemAgSA8IGZpbGVcLXRyYW5zZmVyOwor6Ku+6LKd54i+IDwgbm9iZWxcLVwocHJpemVcKTsKK+iPsuiPsiA8IHZlcnlcLWZyYWdyYW50Owor5piC5o+aIDwgaGlnaFwtc3Bpcml0ZWQ7Civkv53orYnph5EgPCBlYXJuZXN0XC1tb25leTsKK+ejgeW4tiA8IG1hZ25ldGljXC10YXBlOwor6Kej6Kq/IDwgdG9cLWRlbW9kdWxhdGU7CivljJfmtbcgPCB0aGVcLW5vcnRoXC1zZWE7CivoloTliKkgPCBzbWFsbFwtcHJvZml0czsKK+aOkuWxseWAkua1tyA8IGVhcnRoXC1zaGFraW5nOwor5pma5aCxIDwgZXZlbmluZ1wtcGFwZXI7CivmmJ/luqcgPCBjb25zdGVsbGF0aW9uOwor5r+A5YWJ5omT5byV5qmfIDwgbGFzZXJcLXByaW50ZXI7CivlhrDpnosgPCBza2F0aW5nXC1ib290czsKK+aOm+iZn+itiSA8IHJlZ2lzdGVyXC1jYXJkOwor5bug57WyIDwgZmlsYXR1cmVcLXNpbGs7Civnn5vnm74gPCBjb250cmFkaWN0b3J5Owor5Ye66LOjIDwgdG9cLXNlbGxcLVwob2ZmXCk7CivliLDomZUgPCBpblwtYWxsXC1wbGFjZXM7CivntpPnh5/osrvnlKggPCBidXNpbmVzc1wtY29zdDsKK+WOn+WtkOiDvSA8IGF0b21pY1wtZW5lcmd5Owor5Y+k5LujIDwgYW5jaWVudFwtdGltZXM7CivmlrDmnIggPCBjcmVzY2VudFwtbW9vbjsKK+e0gOW/temkqCA8IG1lbW9yaWFsXC1oYWxsOwor5Zau6Z+75q+NIDwgc2ltcGxlXC1maW5hbHM7CivljbPlsIcgPCBvblwtdGhlXC1ldmVcLW9mOwor5Y2R5b6uIDwgcGV0dHlcLWFuZFwtbG93Owor5Y2x5a6zIDwgdG9cLWplb3BhcmRpemU7Civnm7TmiKrkuobnlbYgPCBwbGFpblwtdGFsa2luZzsKK+WGt+aIsOS7peW+jCA8IHBvc3RcLWNvbGRcLXdhcjsKK+acieWPr+iDvSA8IGl0JydzXC1wb3NzaWJsZTsKK+WIqOiKsSA8IHdvb2RcLXNoYXZpbmdzOwor6I6o6I+qIDwgYmxhY2tcLWhlbmJhbmU7Civoqr/mn6UgPCBpbnZlc3RpZ2F0aW9uOwor57aB6IW/IDwgbGVnXC13cmFwcGluZ3M7CivliJfoiIkgPCBcKG1ha2VcLWFcKVwtbGlzdDsKK+mBqeeUqCA8IGJlXC1hcHBsaWNhYmxlOwor5pGY6KiYIDwgdG9cLXRha2VcLW5vdGVzOwor5YWD6aaWIDwgaGVhZFwtb2ZcLXN0YXRlOwor5pyq5o+Q5Y+KIDwgbm90XC1tZW50aW9uZWQ7CivmlrnlvI8gPCB3YXlcLVwob2ZcLWxpZmVcKTsKK+aXpeWknCA8IGRheVwtYW5kXC1uaWdodDsKK+iKnem6uyA8IHNlc2FtZVwtXChzZWVkXCk7CivmnKznlJ/nh4ggPCBidW5zZW5cLWJ1cm5lcjsKK+eJjOWdiiA8IG1lbW9yaWFsXC1hcmNoOwor5b+D6Ief55eFIDwgaGVhcnRcLWRpc2Vhc2U7CivliY3nlJ8gPCBwcmVcLWV4aXN0ZW5jZTsKK+WLouWcqOW/heihjCA8IGJlXC1pbXBlcmF0aXZlOwor5piH5YC8IDwgcmlzZVwtaW5cLXZhbHVlOwor5Y2B5LqU5bm0IDwgZmlmdGVlblwteWVhcnM7CivnsbPpo68gPCBcKGNvb2tlZFwpXC1yaWNlOwor6YSn5bCP5bmzIDwgZGVuZ1wteGlhb3Bpbmc7CivovYnpgZMgPCBtYWtlXC1hXC1kZXRvdXI7CivoiIrntITlhajmm7ggPCBvbGRcLXRlc3RhbWVudDsKK+mVt+mAlCA8IGxvbmdcLWRpc3RhbmNlOwor5pel5YmNIDwgdGhlXC1vdGhlclwtZGF5Owor5bm+5YCL5bCP5pmCIDwgc2V2ZXJhbFwtaG91cnM7CivpgqPptLvmm7ggPCBib29rXC1vZlwtbmFodW07CivntrLntaHlsaQgPCBuZXR3b3JrXC1sYXllcjsKK+WinOavgCA8IFwocGxhbmVcKVwtY3Jhc2g7Civpm5nmiYsgPCBwYWlyXC1vZlwtaGFuZHM7Civlk6XmnpflpJrlvozmm7ggPCAyXC1jb3JpbnRoaWFuczsKK+WNl+S6niA8IHNvdXRoZXJuXC1hc2lhOwor5YiK55m7IDwgY2FycnlcLWFcLXN0b3J5Owor6KqH5by1IDwgdG9cLWV4YWdnZXJhdGU7Civpm6Plv5ggPCB1bmZvcmdldHRhYmxlOwor5aSq5aSqIDwgbWFycmllZFwtd29tYW47CivmkqXnlKggPCBhcHByb3ByaWF0aW9uOwor5a+p5Yik5qyEIDwganVkZ2VtZW50XC1iYXI7CivlooPms4EgPCBjaXJjdW1zdGFuY2VzOwor5rCR5LqLIDwgY2l2aWxcLW1hdHRlcnM7CivlpbPkvaMgPCBcKGZlbWFsZVwpXC1tYWlkOwor5LiN5Y+v57y65bCRIDwgaW5kaXNwZW5zYWJsZTsKK+WLmOWvnyA8IHJlY29ubmFpc2FuY2U7CivnsYzpm4YgPCBjb2xsZWN0XC1tb25leTsKK+aTjea8lCA8IGRlbW9uc3RyYXRpb247Civnmb3oirHoirEgPCBzaGluaW5nXC13aGl0ZTsKK+W7uuevieWtuCA8IGFyY2hpdGVjdHVyYWw7Civoppbnqpfln7rmupYgPCB3aW5kb3dzXC1iYXNlZDsKK+mbu+mDteS9jee9riA8IGVtYWlsXC1hZGRyZXNzOwor5bm754eIIDwgbGF0ZXJuXC1zbGlkZXM7CivnoJTnqbbpoJjln58gPCByZXNlYXJjaFwtYXJlYTsKK+S4reWci+W8jyA8IGNoaW5lc2VcLXN0eWxlOwor5Yqg5b+rIDwgdG9cLWFjY2VsZXJhdGU7CivlhrDns5YgPCBjcnlzdGFsXC1zdWdhcjsKK+Wci+mamyA8IGludGVybmF0aW9uYWw7CivljYrlpLHmpa0gPCBzZW1pXC1lbXBsb3llZDsKK+mspembniA8IGNvY2tcLWZpZ2h0aW5nOwor6YGO5pmCIDwgb2xkXC1mYXNoaW9uZWQ7CivpgLLmjqXmnI3li5kgPCBhY2Nlc3NcLXNlcnZlcjsKK+maqOaEjyA8IGFzXC1vbmVcLXdpc2hlczsKK+WkseWIqSA8IHN1ZmZlclwtZGVmZWF0Owor6KGo5rG65qyKIDwgcmlnaHRcLXRvXC12b3RlOwor56m66ZaT56uZIDwgc3BhY2VcLXN0YXRpb247CivmkI3ogJcgPCB3ZWFyXC1hbmRcLXRlYXI7Civnm7jnlbYgPCBlcXVpdmFsZW50XC10bzsKK+mAkOatpSA8IHByb2dyZXNzaXZlbHk7CivptakgPCBvd2xcLWxpa2VcLWJpcmQ7CivlpKflhazlj7ggPCBsYXJnZVwtY29tcGFueTsKK+S4jeiomOWQjeaKleelqCA8IHNlY3JldFwtYmFsbG90Owor5LqM5qyh5aSn5oiwIDwgd29ybGRcLXdhclwtdHdvOwor5bm+5qyhIDwgc2V2ZXJhbFwtdGltZXM7Civlt6jntLAgPCBiaWdcLWFuZFwtc21hbGw7Civlub7mqKMgPCBzZXZlcmFsXC1raW5kczsKK+Wkp+S9vyA8IGFuXC1hbWJhc3NhZG9yOwor57eo5a+pIDwgcmVhZFwtYW5kXC1lZGl0Owor5by35YyWIDwgdG9cLXN0cmVuZ3RoZW47Civpgb/lrZUgPCBjb250cmFjZXB0aW9uOwor6auDIDwgc2hvdWxkZXJcLWJvbmU7CivkuI3liJfpoZvoq7jls7YgPCBicml0aXNoXC1pc2xlczsKK+mqqiA8IGNyb29rZWRcLWJvbmVzOwor5aSn5a656YePIDwgaGlnaFwtY2FwYWNpdHk7CivlpKfkuosgPCBhXC1tYWpvclwtZXZlbnQ7CivmpYrnmb7nv7AgPCBicmlnaGFtXC15b3VuZzsKK+Wkp+WVj+mhjCA8IGdyZWF0XC1wcm9ibGVtOwor6aajIDwgZnJhZ3JhbnRcLW9kb3I7CivmlZnlj4sgPCBjaHVyY2hcLW1lbWJlcjsKK+WFieWKn+eOhyA8IG9wdGljYWxcLXBvd2VyOwor6YCf5pWIIDwgcXVpY2tcLXJlc3VsdHM7CivppJogPCBwcmVwYXJlZFwtbWVhdDsKK+asiuWogeaApyA8IGF1dGhvcml0YXRpdmU7CivliKnmlrwgPCBiZVwtYmVuZWZpY2lhbDsKK+WIneacnyA8IGluaXRpYWxcLXN0YWdlOwor5aWz5pyL5Y+LIDwgZmVtYWxlXC1mcmllbmQ7Civln7rmnKzmpoLlv7UgPCBiYXNpY1wtY29uY2VwdDsKK+S4jeWRqOW7tiA8IHVuZGlzdHJpYnV0ZWQ7Civpnq4gPCBsZWF0aGVyXC1zaG9lczsKK+ipouWVjyA8IGlucXVpcmVcLWFib3V0Owor6ZydIDwgZHJvcHNcLW9mXC1yYWluOwor5pGB6Yem5YWSIDwgc25hcFwtZmFzdGVuZXI7CivmrbvliJEgPCBkZWF0aFwtcGVuYWx0eTsKK+mTliA8IHBlcnNvbicnc1wtbmFtZTsKK+eZveearuadviA8IGxhY2ViYXJrXC1waW5lOwor6YyhIDwgYVwta2luZFwtb2ZcLXBlbjsKK+WFteeXniA8IGFybXlcLXJpZmZyYWZmOwor5a2Y5YSy5ZmoIDwgbWVtb3J5XC1cKHVuaXRcKTsKK+iyv+aYk+mghuW3riA8IHRyYWRlXC1zdXJwbHVzOwor5b2M6L+m5pu4IDwgYm9va1wtb2ZcLW1pY2FoOwor6YiEIDwgYVwtd2luZVwtZmxhZ29uOwor5q2m5Zmo57O757WxIDwgd2VhcG9uXC1zeXN0ZW07Civph60gPCB0aXJlXC1vZlwtd2hlZWw7CivphqggPCBkcmVnc1wtb2ZcLXdpbmU7Civpq5Tph40gPCBcKGJvZHlcKVwtd2VpZ2h0Owor55m956CSIDwgd2hpdGVcLWFyc2VuaWM7CivmooXloZ7ov6rmlq/lpZTpprMgPCBtZXJjZWRlc1wtYmVuejsKK+ebuOaetiA8IHBpY3R1cmVcLWZyYW1lOwor6L6hIDwgcmVjcmltaW5hdGlvbjsKK+WutueUqOmbu+iFpiA8IGhvbWVcLWNvbXB1dGVyOwor54++5Luj5YyWIDwgbW9kZXJuaXphdGlvbjsKK+i9jyA8IHNsZWVwaW5nXC1jYXJ0Owor5YW154efIDwgbWlsaXRhcnlcLWNhbXA7CivkuLvnprHmlocgPCBsb3JkJydzXC1wcmF5ZXI7CivluILmsJEgPCBjaXR5XC1yZXNpZGVudDsKK+W6reWckiA8IGZsb3dlclwtZ2FyZGVuOwor6LeuIDwgaGFzdHlcLXdhbGtpbmc7CivovZ/ngrggPCBcKGRyb3BcLWFcKVwtYm9tYjsKK+mBjuWOuyA8IFwoaW5cLXRoZVwpXC1wYXN0Owor6LOuIDwgZmFyZXdlbGxcLWdpZnQ7CivoiaboiYcgPCBuYXZhbFwtdmVzc2VsczsKK+Wkp+WFrOeEoeengSA8IGp1c3RcLWFuZFwtZmFpcjsKK+WTpeael+WkmuWJjeabuCA8IDFcLWNvcmludGhpYW5zOwor5Yaw5pyfIDwgZ2xhY2lhbFwtZXBvY2g7Civpl5zmlrwgPCBwZXJ0YWluaW5nXC10bzsKK+WJm+WJmyA8IGp1c3RcLXJlY2VudGx5Owor5bug5Li7IDwgZmFjdG9yeVwtb3duZXI7Civlho3mrKEgPCBvbmVcLW1vcmVcLXRpbWU7CivorI0gPCBodW1taW5nXC1zb3VuZDsKK+aWsOe0hOWFqOabuCA8IG5ld1wtdGVzdGFtZW50Owor6Ka2IDwgdG9cLWxvb2tcLWFib3V0Owor6KaUIDwgdG9cLXNlYXJjaFwtZm9yOwor6KWaIDwgZ3JhdmVcLWNsb3RoZXM7CivmrIrlipsgPCBcKHdpZWxkXClcLXBvd2VyOwor6KC1IDwgbGFyZ2VcLXR1cnRsZXM7CivnsL/nsY0gPCBhY2NvdW50XC1ib29rczsKK+ieviA8IHRoZVwtZWFydGh3b3JtOwor6J6lIDwgdGhlXC1ob3VzZVwtZmx5Owor6J6ZIDwgZ3J1YnNcLWluXC13b29kOwor6JuFIDwgYVwtY2F0ZXJwaWxsYXI7CivmqavmjoMgPCB0b1wtc3dlZXBcLWF3YXk7CivluqblgYcgPCBnb1wtb25cLWhvbGlkYXk7CivomK8gPCB0b1wtdG9zc1wtYWJvdXQ7CivnlbDos6ogPCBoZXRlcm9nZW5lb3VzOwor6LuK56uZIDwgXChidXNcKVwtc3RhdGlvbjsKK+S6nua0suWci+WutiA8IGFzaWFuXC1jb3VudHJ5Owor5pq06aKo6amf6ZuoIDwgdmlvbGVudFwtc3Rvcm07CivolI4gPCB0aGVhXC1zaW5lbnNpczsKK+WCmeiHsyA8IHRvXC10aGVcLXV0bW9zdDsKK+iRvSA8IHR5cGVcLW9mXC1ncmFpbjsKK+iPvCA8IHJ1c2hcLW9yXC1zZWRnZTsKK+iPuiA8IGFsdGhhZWFcLXJvc2VhOwor6LeR6Z6LIDwgcnVubmluZ1wtc2hvZXM7Civoj5EgPCB0b1wtd2VlZFwtZ3Jhc3M7CivloLHllq4gPCB0YXhhdGlvblwtZm9ybTsKK+iOpyA8IGVkaWJsZVwtZ3JlZW5zOwor6IylIDwgcnVidXNcLXRva2t1cmE7CivpkZLos54gPCB0b1wtYXBwcmVjaWF0ZTsKK+iLmCA8IGluZGlhblwtbWFsbG93Owor6YCZ5L2NIDwgdGhpc1wtXChwZXJzb25cKTsKK+WbsOeqmCA8IGVtYmFycmFzc21lbnQ7CivpmY3kuJYgPCBjb21lXC10b1wtZWFydGg7CivohKUgPCBwZWx2aWNcLWNhdml0eTsKK+S+v+mjryA8IGFcLXNpbXBsZVwtbWVhbDsKK+iDsiA8IGh5ZHJveHlsYW1pbmU7CivovLvmop0gPCBcKHdoZWVsXClcLXNwb2tlOwor5aW95bm+5bm0IDwgc2V2ZXJhbFwteWVhcnM7CivnvbMgPCB3b29kZW5cLXNjcmVlbjsKK+e8hyA8IHJlZGRpc2hcLWNvbG9yOwor5omT6ZaLIDwgdG9cLWJyZWFrXC1vcGVuOwor5ZSu56Wo6JmVIDwgdGlja2V0XC1vZmZpY2U7Civnmbzmj64gPCBicmluZ1wtdG9cLWJlYXI7Civns60gPCByaWNlXC1kdW1wbGluZzsKK+aNieWPluWcluWDjyA8IGNhcHR1cmVcLWltYWdlOwor57G+IDwgdW5odWxsZWRcLXJpY2U7CivnsZwgPCBiYW1ib29cLXNoZWF0aDsKK+WFrem7nuWNiiA8IGhhbGZcLXBhc3RcLXNpeDsKK+mWi+W/gyA8IHRvXC1mZWVsXC1oYXBweTsKK+eEoeaEj+itmCA8IHVuY29uc2Npb3VzbHk7Civlr6bpqZcgPCB0b1wtZXhwZXJpbWVudDsKK+estSA8IGFcLWJhbWJvb1wtZm9ybTsKK+esrSA8IGJhbWJvb1wtc2NyZWVuOwor6L2J5b2OIDwgdHVyblwtXChhcm91bmRcKTsKK+ahiOmgrSA8IG9uXC1vbmUnJ3NcLWRlc2s7Civmi5zph5HkuLvnvqkgPCBtb25leVwtd29yc2hpcDsKK+awuOS5heWSjOW5syA8IGxhc3RpbmdcLXBlYWNlOwor56CeIDwgdG9cLXNtYXNoXC1yb2NrOwor55+eIDwgYm9yZVwtd2l0aFwtYXdsOwor6L6o5YilIDwgZGlmZmVyZW50aWF0ZTsKK+aKhOilsiA8IHRvXC1wbGFnaWFyaXplOwor6L6m5YiwIDwgdG9cLWFjY29tcGxpc2g7CivlhYjlvowgPCBpblwtc3VjY2Vzc2lvbjsKK+eVnOiCpSA8IGFuaW1hbFwtbWFudXJlOwor5o6o5YuV5YqbIDwgZHJpdmluZ1wtZm9yY2U7Civmi4nnvo4gPCBsYXRpblwtYW1lcmljYTsKK+aguOmbuyA8IG51Y2xlYXJcLXBvd2VyOwor6LaK6YeOIDwgY3Jvc3NcLWNvdW50cnk7CivnkoIgPCBqYWRlXC1vcm5hbWVudDsKK+eQlSA8IHR5cGVcLW9mXC1wZWFybDsKK+eNmSA8IGRpZVwtdmlvbGVudGx5Owor5YWs5ZySIDwgYVwtcHVibGljXC1wYXJrOwor55m+5aeTIDwgY29tbW9uXC1wZW9wbGU7Civlk4jolqnlhYvkurogPCBrYXpha2hcLXBlcnNvbjsKK+eBveWNgCA8IGRpc2FzdGVyXC1hcmVhOwor6YG/6aKo6JmVIDwgbGVlXCxcLXdpbmRzdG9wOwor54mBIDwgbW9vcmluZ1wtc3Rha2U7Civmp4vmiJAgPCB0b1wtY29uc3RpdHV0ZTsKK+eGsCA8IGdyZWF0XC1kcm91Z2h0Owor5L+d6JePIDwga2VlcFwtaW5cLXN0b3JlOwor55Ge6aaZIDwgd2ludGVyXC1kYXBobmU7Civmi4znqK4gPCBzZWVkXC1kcmVzc2luZzsKK+exjOaOqiA8IHJhaXNlXC1cKG1vbmV5XCk7Civmo4Tnva4gPCB0b1wtdGhyb3dcLWF3YXk7Civkvb/nlKjph48gPCB2b2x1bWVcLW9mXC11c2U7Civos6Ppu54gPCBzZWxsaW5nXC1wb2ludDsKK+eYpuW8sSA8IHRoaW5cLWFuZFwtd2VhazsKK+a1rCA8IG5hdXRpY2FsXC1taWxlOwor55m95YyqIDwgd2hpdGVcLWJhbmRpdHM7Civogonpq5QgPCBwaHlzaWNhbFwtYm9keTsKK+astSA8IHRvXC10cmVhdFwtd2VsbDsKK+askyA8IGFcLWNyb3NzXC1waWVjZTsKK+WNiuWwjumrlCA8IHNlbWljb25kdWN0b3I7CivlgpnmoYggPCBwdXRcLW9uXC1yZWNvcmQ7Civmq4wgPCBhXC1raW5kXC1vZlwtaG9lOwor5qquIDwgYmxvY2tcLW9mXC13b29kOwor5beh6Iiq5bCO5b2IIDwgY3J1aXNlXC1taXNzbGU7CivkuI3lj6/og73nmoTkuosgPCBpbXBvc3NpYmlsaXR5Owor5qaMIDwgd29vZGVuXC1sYWRkZXI7Civnmb7liIbkuYvkupTljYEgPCBmaWZ0eVwtcGVyY2VudDsKK+mspeW/lyA8IHdpbGxcLXRvXC1maWdodDsKK+aJgeiNsyA8IGh5YWNpbnRoXC1iZWFuOwor55m+5YCNIDwgYVwtaHVuZHJlZGZvbGQ7CivmpZkgPCBuYW1lXC1vZlwtcGxhbnQ7CivnrYbnrZIgPCBwZW5cLWNvbnRhaW5lcjsKK+aiuSA8IHRoZVwtYXJlY2FcLW51dDsKK+WvtuiXjSA8IHNhcHBoaXJlXC1ibHVlOwor5qKOIDwgc2lja2xlXC1oYW5kbGU7CivmoLAgPCBhXC1iYW1ib29cLXJhZnQ7Civmu7LnorMgPCBjYXJidXJpemF0aW9uOwor5pq05Yqb54qv572qIDwgdmlvbGVudFwtY3JpbWU7CivmnKkgPCBrd3VreWVsXDpcLXJhbms7CivmuKHpgY4gPCB0b1wtY3Jvc3NcLW92ZXI7CivlrZfpm4YgPCBjaGFyYWN0ZXJcLXNldDsKK+mngeauvOanjSA8IG1hdXNlclwtcGlzdG9sOwor5L2V6KW/6Zi/5pu4IDwgYm9va1wtb2ZcLWhvc2VhOwor56m66YGLIDwgYWlyXC10cmFuc3BvcnQ7CivlpaflhYvmi4nojbfppqzluIIgPCBva2xhaG9tYVwtY2l0eTsKK+aQoiA8IHRvXC1zdGlja1wtaW50bzsKK+aOrSA8IHRvXC1tYW5pcHVsYXRlOwor5oy2IDwgaG9sZFwtaW5cLWhhbmRzOwor5ouVIDwgdG9cLWRyYWdcLWFmdGVyOwor5oqDIDwgdG9cLWNsYXBcLWhhbmRzOwor5LiN5oiQ5paH5rOVIDwgdW53cml0dGVuXC1sYXc7CivmiLogPCBzdG9uZVwtYm9hcmRlcjsKK+aIuSA8IGluXC1kaWZmaWN1bHR5Owor6auY6YCf5LmZ5aSq57ay6LevIDwgZmFzdFwtZXRoZXJuZXQ7CivkuI3mlrnkvr8gPCBpbmNvbnZlbmllbmNlOwor5rKS57aT6amXIDwgaW5leHBlcmllbmNlZDsKK+ihqOWxpCA8IHN1cmZhY2VcLWxheWVyOwor5oC+IDwgbW91bnRhaW5cLW5hbWU7CivlnJPlkaggPCBjaXJjdW1mZXJlbmNlOwor5b29IDwgZ29cLXRvXC1hbmRcLWZybzsKK+W9siA8IHllbGxvd1wtZHJhZ29uOwor5b2UIDwgdG9cLWNhcnZlXC13b29kOwor5Li75pel5a24IDwgc3VuZGF5XC1zY2hvb2w7Civnl4XlrrMgPCBwbGFudFwtZGlzZWFzZTsKK+W3sCA8IGFuXC1hdG9tXC1ncm91cDsKK+WUruiyqCA8IHRvXC1zZWxsXC1nb29kczsKK+WzgiA8IG5hbWVcLW9mXC1wbGFjZTsKK+acieWKqeS6jiA8IGNvbnRyaWJ1dGVcLXRvOwor5a+AIDwgZmV1ZGFsXC1lc3RhdGU7CivoiIzlsJYgPCB0aXBcLW9mXC10b25ndWU7CivmoYjnqLEgPCBjb3VudGVyXC1zY2FsZTsKK+WqoiA8IGJlXC1qZWFsb3VzXC1vZjsKK+a2iOmYsiA8IGZpcmVcLWZpZ2h0aW5nOwor5ZaJ57WQIDwgYWRhbScncycnXC1hcHBsZTsKK+WztuWciyA8IGlzbGFuZFwtbmF0aW9uOwor6ayn5LqLIDwgY2F1c2VcLXRyb3VibGU7Civkuqzpg70gPCBreW90b1wtXChqYXBhblwpOwor5Zub5Y2DIDwgZm91clwtdGhvdXNhbmQ7CivnlbblubQgPCBpblwtdGhvc2VcLWRheXM7CivlnrsgPCBhblwtZW1iYW5rbWVudDsKK+iyoei/tyA8IG1vbmV5XC1ncnViYmVyOwor5LiJ5Y2B5YSEIDwgdGhyZWVcLWJpbGxpb247CivnkIbop6MgPCB0b1wtY29tcHJlaGVuZDsKK+WamiA8IGFyZ3VtZW50YXRpdmU7CivkuI3lh43muK8gPCBpY2VcLWZyZWVcLXBvcnQ7CivmraXoqbHmqZ8gPCB3YWxraWVcLXRhbGtpZTsKK+WvhueivCA8IFwoc2VjcmV0XClcLWNvZGU7Civnr4nln44gPCBmb3J0aWZpY2F0aW9uOwor5ZKhIDwgc2lkZVwtb2ZcLW1vdXRoOwor6KGb5YW1IDwgXChib2R5XClcLWd1YXJkXCk7Civoib7mu4vnl4Xmipfpq5QgPCBhaWRzXC1hbnRpYm9keTsKK+mbhue3muWZqCA8IGh1YlwtXChuZXR3b3JrXCk7CivnlpHllY8gPCBpbnRlcnJvZ2F0aW9uOwor5YefIDwgdG9cLWJlXC1ydWRlXC10bzsKK+WWieeXpyA8IHNjYXJsZXRcLWZldmVyOwor5YCL5oCnIDwgaW5kaXZpZHVhbGl0eTsKK+WEuSA8IHRvXC1hY2N1bXVsYXRlOwor5YSyIDwgdG9cLXNhdmVcLW1vbmV5Owor5YSbIDwgdG9cLXNraXBcLWFib3V0Owor5LiN6IiS6YGpIDwgdW5jb21mb3J0YWJsZTsKK+WCkiA8IHBlcnNvbmFsXC1uYW1lOwor5YWp5Y2D5bm0IDwgdGhlXC15ZWFyXC0yMDAwOwor5qiZ5pys6J+yIDwgc3BpZGVyXC1iZWV0bGU7CivllZ/npLogPCBlbmxpZ2h0ZW5tZW50Owor6YCy5Ye65Y+jIDwgaW1wb3J0XHxleHBvcnQ7CivkuI3lj6/kvrXniq/mrIogPCBpbnZpb2xhYmlsaXR5Owor5L6CIDwgdG9cLWNvbW1pc3Npb247CivlkJHopb/ljZcgPCBzb3V0aHdlc3R3YXJkOwor6Ie05Ye9IDwgc2VuZFwtYVwtbGV0dGVyOwor5LmoIDwgdGhlXC1iZWdpbm5pbmc7CivktpogPCBkZWNheWVkXC10b290aDsKK+S2iCA8IGFcLWtpbmRcLW9mXC1yYXQ7Civktb8gPCBhXC1zaWxlbnRcLWRydW07CivktYEgPCBkZWNheWVkXC1kb3VnaDsKK+S0sCA8IGFcLWZhbWlseVwtbmFtZTsKK+SyuiA8IGJpcmRzXC1zaW5naW5nOwor5LKFIDwgdGhlXC1nbG9iZWZpc2g7CivksLsgPCB0b1wtY2F0Y2hcLWZpc2g7CivmhI/orZggPCBjb25zY2lvdXNuZXNzOwor5LCxIDwgbmFtZVwtb2ZcLWFcLWdvZDsKK+WUruelqOWToSA8IHRpY2tldFwtc2VsbGVyOwor5K+FIDwgYVwtc3dpZnRcLWhvcnNlOwor5K6IIDwgdG9cLWdvXC1zd2lmdGx5Owor5Ku/IDwgYVwtY29vbFwtYnJlZXplOwor5Ku0IDwgd2Vha1wtYW5kXC1kdWxsOwor6IGv57WhIDwgY29tbXVuaWNhdGlvbjsKK+WUruelqOWPoyA8IHRpY2tldFwtd2luZG93Owor5omB5pOUIDwgY2FycnlpbmdcLXBvbGU7Civkq4EgPCB0aGVcLWZpcnN0XC1zb247CivkqqsgPCBhbmNpZW50XC1tdXNpYzsKK+SqkiA8IGxlYXRoZXJcLXBhbnRzOwor5Km+IDwgaGVyYlwtbWVkaWNpbmU7CivkqaQgPCB0b1wtbGVhZFwtYW5cLW94Owor5KmjIDwgc2hvZVwtY3VzaGlvbnM7CivkqZ4gPCBhXC1zYWRkbGVcLWZsYXA7CivkqI4gPCBkZWVwXC1hbmRcLWRhcms7CivlronlrprljJYgPCBzdGFiaWxpemF0aW9uOwor5KeWIDwgYVwtc21hbGxcLW1vdW5kOwor5Ka0IDwgb3BlblwtdGhlXC1kb29yOwor5KazIDwgYmV0d2Vlblwtc3RlcHM7CivkuqTmj5vnq68gPCBzd2l0Y2hlZFwtcG9ydDsKK+WTgOiZnyA8IGNyeVwtcGl0ZW91c2x5Owor5KahIDwgYVwtZG9vclwta2VlcGVyOwor5KWpIDwgaG9va3NcLXRvXC1oYW5nOwor5KS1IDwgYVwtdGlueVwtbmVlZGxlOwor5KSOIDwgc295YmVhblwtc2F1Y2U7CivkpIMgPCBkcnVua2VuXC1zb3VuZDsKK+SjsCA8IHRvXC1wb29sXC1tb25leTsKK+SipyA8IHRvXC1nb1wtZm9yd2FyZDsKK+SimiA8IGFcLW5hcnJvd1wtcGF0aDsKK+SigyA8IHRvXC1hZG1pbmlzdGVyOwor5KGlIDwgYVwtbW92aW5nXC1jYXJ0Owor5J+YIDwgdG9cLXN0cmFpZ2h0ZW47Civkn4ogPCBzaG9ydFwtc3RyaWRlczsKK+ahguaelyA8IGd1aWxpblwtXChjaXR5XCk7CivknoEgPCBjb3JyZXNwb25kaW5nOwor5J22IDwgdG9cLWxldnlcLXRheGVzOwor5J2sIDwgYVwtd2VhbHRoeVwtbWFuOwor6YeR6buDIDwgZ29sZGVuXC15ZWxsb3c7Civkm74gPCBmYW1pbGlhclwtd2l0aDsKK+S4jeebuOW5siA8IGJlXC1pcnJlbGV2YW50Owor55uu5qiZ5biC5aC0IDwgdGFyZ2V0XC1tYXJrZXQ7Civkm5AgPCBhblwtZXhwcmVzc2lvbjsKK+WkqeabieW+lyA8IGhlYXZlblwta25vd3NcITsKK+SalSA8IHRvXC1zZWFyY2hcLW91dDsKK+SZuSA8IHRvXC12b21pdFwtbWlsazsKK+SZpSA8IHNoaW55XC1kcmVzc2VzOwor5JmiIDwgc2hvcnRcLXRcLXNoaXJ0Owor5JmgIDwgc2hvcnRcLWNsb3RoZXM7CivkmZ8gPCBoZWF2eVwtY2xvdGhlczsKK+SZniA8IHdvb2xlblwtc3RyaW5nOwor5JmFIDwgdGhlXC13YWlzdGxpbmU7Civot6jlnIsgPCB0cmFuc25hdGlvbmFsOwor5JeXIDwgdGhlXC1taWxsaXBlZGU7CivklqkgPCBhXC1raW5kXC1vZlwtYmVlOwor5JaRIDwgYVwtd2hpdGVcLXRpZ2VyOwor5JaHIDwgZnJhZ3JhbnRcLWhlcmI7CivmvJTlh7ogPCBcKGFjdGluZ1wpXC1wbGF5Owor5ZCD6aOvIDwgdG9cLWVhdFwtYVwtbWVhbDsKK+SSjiA8IHdpdGhvdXRcLWNvbG9yOwor5JGyIDwgdG9cLXJvd1wtYVwtYm9hdDsKK+SRpSA8IGFcLW1vdmluZ1wtYm9hdDsKK+SQsiA8IGhhbGZcLXJhd1wtbWVhdDsKK+SQmSA8IHRoZVwtZGlhcGhyYWdtOwor5I+YIDwgYVwtYmlnXC1hYmRvbWVuOwor5I+EIDwgbm90XC10b1wtbGlzdGVuOwor5LiN6YCaIDwgYmVcLW9ic3RydWN0ZWQ7CivmnIDpq5jms5XpmaIgPCBzdXByZW1lXC1jb3VydDsKK+SNvSA8IGFcLWZpZXJjZVwtZ29hdDsKK+SNvCA8IHNhbHRlZFwtbXV0dG9uOwor5I2qIDwgY2FzdHJhdGVkXC1yYW07CivkjaQgPCB0b1wtc3RyYWluXC1vdXQ7CivmiJLmjIcgPCBcKGZpbmdlclwpXC1yaW5nOwor5pyA5b6M5pu05pawIDwgbGF0ZXN0XC11cGRhdGU7CivkjJkgPCBoYW5rXC1vZlwtcm9wZXM7CivkjIUgPCBhXC10aGlja1wtcm9wZXM7Civki6YgPCByYXZlbGxlZFwtc2lsazsKK+SLnSA8IGFcLXRocm9hdFwtYmFuZDsKK+adj+S7geixhuiFkCA8IGFsbW9uZFwtanVua2V0Owor5Iq9IDwgYVwtZmluZVwtdGhyZWFkOwor5IqUIDwgcG9saXNoZWRcLXJpY2U7CivkiakgPCBhXC1iYW1ib29cLXdhcmU7CivkiaggPCBiYW1ib29cLWpvaW50czsKK+SIviA8IG1vdmVcLWFcLWxpdHRsZTsKK+SIsyA8IGFcLXdpbmRvd1wtbGVhZjsKK+WwkeWwhyA8IG1ham9yXC1nZW5lcmFsOwor5IaaIDwgdG9cLWdvXC10aHJvdWdoOwor5p2c57WVIDwgcHV0XC1hblwtZW5kXC10bzsKK+SFmyA8IGh1c2tzXC1vZlwtcmljZTsKK+SDsyA8IGZhbGxpbmdcLXN0b25lOwor5IK2IDwgdGhlXC1jcnVzdGFjZWE7CivkgpcgPCB0b1wtYmVcLWNhcmVmdWw7Civkgo4gPCBhXC1zaG9ydFwtc3BlYXI7CivkgoEgPCBhblwtYW5ncnlcLWxvb2s7CivkgZkgPCBlbG9xdWVudFwtZXllczsKK+SAriA8IHNpZ2h0XC1ibHVycmVkOwor5ICtIDwgd2l0aFwtYmlnXC1leWVzOwor5ICWIDwgdG9cLWxvb2tcLXVwXC10bzsKK+SAlSA8IGFuZ3J5XC1nbGFuY2VzOwor5pqX6Y6WIDwgYnVpbHRcLWluXC1sb2NrOwor47+sIDwgbmFzYWxcLWRpc2Vhc2U7Civjvr0gPCBzd2VsbGluZ1wtZmVldDsKK+O9siA8IGdyaXBpbmdcLWNvbGljOwor472HIDwgdW5idXJudFwtdGlsZXM7CivjvLUgPCBhXC1zbWFsbFwtYmFzaW47CivjvJ8gPCBhXC10aWxlZFwtaG91c2U7CivjvI4gPCBhXC1zbWFsbFwtbWVsb247Civju74gPCBqYWRlXC1hcnRpY2xlczsKK+WQjOebn+WciyA8IGNvbmZlZGVyYXRpb247CivjuoggPCB0b1wtZ29cLWh1bnRpbmc7CivjubkgPCBhXC1raW5kXC1vZlwtZG9nOwor47m1IDwgYVwtaHVudGluZ1wtZG9nOwor47mzIDwgYVwta2luZFwtb2ZcLWFwZTsKK+aHsuaIkiA8IHRvXC1kaXNjaXBsaW5lOwor6YCZ56iu5pa55byPIDwgXChpblwpXC10aGlzXC13YXk7CivkuIvoqrIgPCBjbGFzc1wtaXNcLW92ZXI7CivkuI3oqbMgPCBub3RcLWluXC1kZXRhaWw7CivjuIQgPCBhXC1yYWdpbmdcLWZpcmU7Civjt74gPCBibGF6ZVwtb2ZcLWZpcmU7Civlj43pn78gPCByZXBlcmN1c3Npb25zOwor47eWIDwgdG9cLXNoaW5lXC11cG9uOwor47eVIDwgaGVhcmluZ1wtc291bmQ7Civjt5IgPCB0b1wtY29va1wtbWVhbHM7CivjtpggPCBmdWxsXC1vZlwtd2F0ZXI7CivlpafpgYvmnIMgPCBvbHltcGljXC1nYW1lczsKK+O1syA8IGNyeXN0YWxcLWNsZWFyOwor47WgIDwgdG9cLWd1c2hcLWZvcnRoOwor47S9IDwgd2F0ZXJcLWN1cnJlbnQ7CivjtKsgPCBncmVhdFwtZmxvd2luZzsKK+O0piA8IHRvXC13YXNoXC1oYW5kczsKK+O0pSA8IGdyZWF0XC1iaWxsb3dzOwor47SQIDwgZ3JlYXRcLWN1cnJlbnQ7Civkv53orbfkuLvnvqkgPCBwcm90ZWN0aW9uaXNtOwor47KbIDwgaGFpcnlcLWFuaW1hbHM7CivlnKjmnKrkvoYgPCBpblwtdGhlXC1mdXR1cmU7Civlrr/mgKggPCBhblwtb2xkXC1ncnVkZ2U7CivjsLsgPCBhc3Nlc1wtYnJheWluZzsKK+OwjyA8IGFcLWJhbWJvb1wtcG9sZTsKK+OwjCA8IHRvXC1tb25vcG9saXplOwor462/IDwgb2JsaXF1ZVwtYW5nbGU7Civllq7lrZAgPCBsaXN0XC1vZlwtaXRlbXM7CivjrZMgPCBhXC1waWxsYXJcLWFyY2g7CivosqLnjbsgPCB0b1wtY29udHJpYnV0ZTsKK+OspSA8IHRvXC1zdW5cLXRvXC1haXI7Civlj6vphpIgPCB0b1wtY2FsbFwtYXdha2U7CivjrIQgPCB3YXJtXC1hbmRcLWRhbXA7Civjq58gPCBkYXlcLWFmdGVyXC1kYXk7CivljZfnvo7mtLIgPCBzb3V0aFwtYW1lcmljYTsKK+e+juihkyA8IHRoZVwtZmluZVwtYXJ0czsKK+OppSA8IGRlbGljYXRlXC1oYW5kOwor46ieIDwgdG9cLWZlZWxcLWFib3V0Owor46e8IDwgdG9cLWRpc3RyaWJ1dGU7Civjp7cgPCB0b1wtd2lwZVwtdGVhcnM7CivjpqsgPCBsYXhcLWFuZFwtY3J1ZGU7CivjpowgPCBrZWVuXC1vclwtc2hhcnA7CivjpbwgPCB0b1wtYmVcLW5lYXJcLXRvOwor46O/IDwgcGFpbmZ1bGx5XC1zYWQ7Civjo6QgPCB0b1wtdHJlYWRcLXVwb247CivjorsgPCB0b1wtZHJhd1wtYVwtYm93Owor46KWIDwgYVwtc3RvcmVcLWhvdXNlOwor5LiD55m+6JCsIDwgc2V2ZW5cLW1pbGxpb247CivjoLQgPCBhXC1waWxsb3dcLWNhc2U7CivjoJsgPCBuYW1lXC1hXC1jb3VudHk7CivmnIjnkIPooajpnaIgPCBsdW5hclwtc3VyZmFjZTsKK+OfrSA8IHRoZVwtbWluXC1yaXZlcjsKK+iDveWkoCA8IGJlXC1jYXBhYmxlXC1vZjsKK+OerCA8IGNsb3NlXC1vclwtbmVhcjsKK+OeiyA8IHNvZnRcLWFuZFwtbWVlazsKK+WutuWxrCA8IGZhbWlseVwtbWVtYmVyOwor4527IDwgYmFyZWx5XC1lbm91Z2g7CivjnYMgPCB0b1wtYmVhclwtYVwtc29uOwor5Zyw5pa55YGc6LuKIDwgcGFya2luZ1wtcGxhY2U7Civjm5IgPCBjYW5cLW5vdFwtc3BlYWs7CivjmrQgPCBhXC1wcmV0dHlcLWdpcmw7CivpvLvmt7UgPCBuYXNvc2ludXNpdGlzOwor5oeC5b6XIDwgdG9cLXVuZGVyc3RhbmQ7CivjmJsgPCBhXC1kZWVwXC12YWxsZXk7CivmnInoia/lv4MgPCBjb25zY2llbnRpb3VzOwor45iTIDwgcHJvbGl4XC1zcGVlY2g7CivjmIkgPCB0b1wtbWFrZVwtc291bmQ7Civjl7QgPCBkb2dzXC1maWdodGluZzsKK+OVsCA8IHNvdW5kXC1hbmdyaWx5Owor45WqIDwgYmlyZHMnJ1wtY2hpcnBzOwor45WZIDwgYVwtd2lseVwtcmFiYml0Owor45WJIDwgdG9cLWRpZ1wtYVwtaG9sZTsKK+OUpSA8IGZ1bGxcLW9mXC1hbmdlcjsKK+OTtCA8IHRvXC1jdXRcLWluXC10d287CivljYrpu54gPCB0aGVcLWxlYXN0XC1iaXQ7Civjk5YgPCBiaXR0ZXJseVwtY29sZDsKK+S7peWkque2sue1oeerr+WPoyA8IGV0aGVybmV0XC1wb3J0Owor45GlIDwgZGlzcmVzcGVjdGZ1bDsKK+mJm+ethiA8IFwobGVhZFwpXC1wZW5jaWw7Civllq7lkJEgPCB1bmRpcmVjdGlvbmFsOwor45CwIDwgdG9cLWJlbGlldmVcLWluOwor5Y+X6LOEIDwgYWNjZXB0XC1icmliZXM7CivpvLvpo7zms5UgPCBuYXNhbFwtZmVlZGluZzsKK+efpeWQjeS6uuWjqyA8IHB1YmxpY1wtZmlndXJlOwor57SE5ou/5pu4IDwgYm9va1wtb2ZcLWpvbmFoOwor5L6L5YGHIDwgbGVnYWxcLWhvbGlkYXk7CivmsLTpnaIgPCB3YXRlclwtc3VyZmFjZTsKK+atpeihjOifsiA8IGdyb3VuZFwtYmVldGxlOwor56e75q6WIDwgdG9cLXRyYW5zcGxhbnQ7CivotbfkvI8gPCB1cHNcLWFuZFwtZG93bnM7Civororoqr8gPCBtb2RpZmllZFwtdG9uZTsKK+WPi+iqvCA8IGNvbXBhbmlvbnNoaXA7Civnvo7lnIvlnIvmnIMgPCB1XC5zXC5cLWNvbmdyZXNzOwor5ZOA5qiCIDwgZnVuZXJhbFwtbXVzaWM7CivkuI3lubjnmoTmmK8gPCB1bmZvcnR1bmF0ZWx5Owor5a+M5LqOIDwgdG9cLWJlXC1mdWxsXC1vZjsKK+S+v+atpei1sCA8IG1hcmNoXC1hdFwtZWFzZTsKK+iBsuW4tiA8IHZvY2FsXC1jb3JkXChzXCk7CivkuI3nn6UgPCB1bmtub3dpbmdcKGx5XCk7CivlravlpbMgPCBncmFuZGRhdWdodGVyOwor5YWJ57qW6Zu757qcIDwgb3B0aWNhbFwtZmliZXI7CivnpL7kuqToqp7oqIAgPCBsaW5ndWFcLWZyYW5jYTsKK+a2vOW/qyA8IG5pY2VcLWFuZFwtY29sZDsKK+S4ieeZviA8IHRocmVlXC1odW5kcmVkOwor6YCj5o6l6IezIDwgdG9cLWNvbm5lY3RcLXRvOwor5Lqs5oiyIDwgYmVpamluZ1wtb3BlcmE7CivkvY7kuo4gPCBiZVwtbG93ZXJcLXRoYW47Civps7blsL7oirEgPCBpcmlzXC1cKGZsb3dlclwpOwor5Y2X6YOoIDwgc291dGhlcm5cLXBhcnQ7CivororoibIgPCBjaGFuZ2VcLWNvbG91cjsKK+WNiuWumOaWuSA8IHNlbWlcLW9mZmljaWFsOwor5YyX6Z2iIDwgbm9ydGhlcm5cLXNpZGU7CivkuIrnj60gPCB0b1wtZ29cLXRvXC13b3JrOwor55m+56eR5YWo5pu4IDwgZW5jeWNsb3BhZWRpYTsKK+WQhOeoriA8IGV2ZXJ5XC1raW5kXC1vZjsKK+iyneW9qyA8IHNoZWxsXC1jYXJ2aW5nOwor5pel6LuNIDwgamFwYW5lc2VcLWFybXk7Civlip/njofmg6HljJYgPCBwb3dlclwtcGVuYWx0eTsKK+WNl+i2iiA8IHNvdXRoXC12aWV0bmFtOwor5oSb5oaOIDwgbG92ZVwtYW5kXC1oYXRlOwor6IG35ZOhIDwgb2ZmaWNlXC13b3JrZXI7CivmtIvmuqIgPCBicmltbWluZ1wtd2l0aDsKK+S4jeWPr+aKl+WKmyA8IGZvcmNlXC1tYWpldXJlOwor5Y2U6Kq/IDwgdG9cLWNvb3JkaW5hdGU7CivlpKfpmKogPCBvc2FrYVwtXChqYXBhblwpOwor6ICD5oWuIDwgdG9cLXRoaW5rXC1vdmVyOwor55Sf5ZG955qE6YG66LehIDwgdHJhY2VcLW9mXC1saWZlOwor5YyX6YOoIDwgbm9ydGhlcm5cLXBhcnQ7CivlhbzlrrnmgKcgPCBjb21wYXRpYmlsaXR5Owor6Kej5aOT57iuIDwgdG9cLWRlY29tcHJlc3M7CivmnKzmhI8gPCBvcmlnaW5hbFwtaWRlYTsKK+WQuOavkiA8IHRvXC10YWtlXC1kcnVnczsKK+S4reWci+mKgOihjCA8IGJhbmtcLW9mXC1jaGluYTsKK+azs+axoCA8IHN3aW1taW5nXC1wb25kOwor5LiA5q2lIDwgXChzaW5nbGVcKVwtc3RlcDsKK+WMl+i2iiA8IG5vcnRoXC12aWV0bmFtOwor6Z+/5oeJ5pmC6ZaTIDwgcmVzcG9uc2VcLXRpbWU7Civpm5zpoIUgPCBtaXNjZWxsYW5lb3VzOwor5YKz6Ly45qih5byPIDwgdHJhbnNmZXJcLW1vZGU7CivmjqHmo4nmqZ8gPCBjb3R0b25cLXBpY2tlcjsKK+WklumDqCA8IGV4dGVybmFsXC1wYXJ0Owor6IGe5Lq6IDwgZmFtb3VzXC1wZXJzb247CivliY3miYDmnKrmnIkgPCB1bnByZWNlZGVudGVkOwor5ZKM5bCaIDwgYnVkZGhpc3RcLW1vbms7CivomIflt54gPCBzdXpob3VcLVwoY2l0eVwpOwor56Sm5rC0IDwgbWluZXJhbFwtd2F0ZXI7CivmmpHmsKMgPCBcKHN1bW1lclwpXC1oZWF0Owor5LiA5Lmd5Lmd5LiD5bm0IDwgdGhlXC15ZWFyXC0xOTk3Owor5ZOA5ZGKIDwgYmVnXC1waXRlb3VzbHk7CivlpJbosr8gPCBmb3JlaWduXC10cmFkZTsKK+mBv+mboyA8IFxbdGFrZVxdXC1yZWZ1Z2U7CivljIXoorEgPCBjbG90aFwtd3JhcHBlcjsKK+aEn+WGkiA8IHRvXC1jYXRjaFwtY29sZDsKK+W9qeiajCA8IHBhaW50ZWRcLXNoZWxsOwor6Iqt6JWJ5omHIDwgcGFsbVwtbGVhZlwtZmFuOwor56au5aCCIDwgYXNzZW1ibHlcLWhhbGw7CivnuL3oqIggPCBcKGdyYW5kXClcLXRvdGFsOwor5aib5qiCIDwgZW50ZXJ0YWlubWVudDsKK+S4reWtuCA8IG1pZGRsZVwtc2Nob29sOwor5LqU5LiAIDwgNVwtMVwtXChtYXlcLTFzdFwpOwor56OB54mHIDwgbWFnbmV0aWNcLWRpc2s7CivmnIPloLQgPCBtZWV0aW5nXC1wbGFjZTsKK+WqvuWSjCA8IHRvXC1tYWtlXC1wZWFjZTsKK+WFrOWFg+WJjSA8IGJlZm9yZVwtY2hyaXN0Owor5LiK5biCIDwgb25cLXRoZVwtbWFya2V0Owor6Kiq5ZWP5pa55byPIDwgYWNjZXNzXC1tZXRob2Q7CivmqpTmoYjlu7rnq4sgPCBmaWxlXC1jcmVhdGlvbjsKK+engeWIqSA8IHBlcnNvbmFsXC1nYWluOwor6YGy6YiNIDwgc2xvd1wtXCh3aXR0ZWRcKTsKK+azoue+juW6piA8IGJhdW1lXC1kZWdyZWVzOwor5YyX576OIDwgbm9ydGhcLWFtZXJpY2E7CivntpPpqZcgPCB0b1wtZXhwZXJpZW5jZTsKK+WHuueUn+aXpeacnyA8IGRhdGVcLW9mXC1iaXJ0aDsKK+S4jeWPr+aAneitsCA8IGluY29uY2VpdmFibGU7CivmoLzlrZDoirHlkaIgPCBwbGFpZFwsXC10YXJ0YW47CivmsbLmsLQgPCB0b1wtZHJhd1wtd2F0ZXI7CivnjbLli50gPCBiZVwtdmljdG9yaW91czsKK+ingOm7niA8IHBvaW50XC1vZlwtdmlldzsKK+WNiuW+qeizvSA8IGVpZ2h0aFwtZmluYWxzOwor5rC054mbIDwgd2F0ZXJcLWJ1ZmZhbG87Civpm5nnlJ/lhYTlvJ8gPCB0d2luXC1icm90aGVyczsKK+WQjOW5tCA8IHRoZVwtc2FtZVwteWVhcjsKK+acgOWkp+mAn+eOhyA8IG1heGltdW1cLXNwZWVkOwor6K6K5pifIDwgdmFyaWFibGVcLXN0YXI7CivpgornlYznt5ogPCBib3VuZGFyeVwtbGluZTsKK+iYh+S/hCA8IHNvdmlldFwtcnVzc2lhOwor54++5a+m5oOF5rOBIDwgY3VycmVudFwtc3RhdGU7CivmraXooYwgPCB0b1wtZ29cLW9uXC1mb290Owor5pOF6ZW3IDwgdG9cLWJlXC1nb29kXC1hdDsKK+S4jeWVuyA8IG5vdFwtbGVzc1wtdGhhbjsKK+eJjOeFpyA8IGxpY2Vuc2VcLXBsYXRlOwor5pSv5oyB546HIDwgc3VwcG9ydFwtbGV2ZWw7CivoqabkuIDoqaYgPCB0b1wtaGF2ZVwtYVwtdHJ5Owor5pqX5a6zIDwga2lsbFwtc2VjcmV0bHk7CivljIXnvoXokKzosaEgPCBhbGxcLWVtYnJhY2luZzsKK+WLg+iIiCA8IHJpc2VcLXN1ZGRlbmx5Owor6K6K5oWLIDwgbWV0YW1vcnBob3NpczsKK+aAp+aFviA8IHNleHVhbFwtZGVzaXJlOwor5Yyv546HIDwgZXhjaGFuZ2VcLXJhdGU7CivmsrvlrokgPCBsYXdcLWFuZFwtb3JkZXI7CivoppbpoLvnr4Dnm64gPCB2aWRlb1wtcHJvZ3JhbTsKK+mbjOiKsSA8IGZlbWFsZVwtZmxvd2VyOwor5YWo5LiW55WM56ys5LiAIDwgd29ybGQnJ3NcLWZpcnN0Owor5aSa56iuIDwgbWFueVwta2luZHNcLW9mOwor5ZC45YWlIDwgdG9cLWJyZWF0aGVcLWluOwor6K6K5belIDwgZXhjaGFuZ2VcLXdvcms7CivkuIvoh7PkuIogPCBib3R0b21cLXRvXC10b3A7Civlj5flrrMgPCB0b1wtYmVcLWluanVyZWQ7Civmib7kuI3liLAgPCBjb3VsZG4nJ3RcLWZpbmQ7Civmsbrlv4MgPCBkZXRlcm1pbmF0aW9uOwor5LiL5LukIDwgZ2l2ZVwtYW5cLW9yZGVyOwor6I6r6YCGIDwgdmVyeVwtZnJpZW5kbHk7CivnvoXppqzlrZfmr40gPCByb21hblwtbGV0dGVyczsKK+avlOeGsSA8IHNwZWNpZmljXC1oZWF0Owor5LiN5Y+v5ZCN54uAIDwgaW5kZXNjcmliYWJsZTsKK+eesyA8IHB1cGlsXC1vZlwtZXllOwor5LiHIDwgdGVuXC10aG91c2FuZDsKK+W4gyA8IGNvdHRvblwtY2xvdGg7CivpgJogPCBwYXNzXC10aHJvdWdoOwor5o+QIDwgaG9sZFwtaW5cLWhhbmQ7CivkuqwgPCBjYXBpdGFsXC1jaXR5Owor55SaIDwgZ3JlYXRcLWV4dGVudDsKK+WRqCA8IHpob3VcLWR5bmFzdHk7CivlsLsgPCBlbmRcLW9mXC1zcGluZTsKK+WutCA8IHRvXC1lbnRlcnRhaW47CivlrrAgPCB0b1wtc2xhdWdodGVyOwor54qvIDwgY29tbWl0XC1jcmltZTsKK+WpoiA8IHNlcnZhbnRcLWdpcmw7Civlj4IgPCB0YWtlXC1wYXJ0XC1pbjsKK+aOjCA8IHBhbG1cLW9mXC1oYW5kOwor5ae/IDwgb25lJydzXC1tYW5uZXI7Civlp4kgPCBlbGRlclwtc2lzdGVyOwor5paXIDwgY2hpbmVzZVwtcGVjazsKK+WRvCA8IGJyZWF0aGVcLXNpZ2g7CivooZ0gPCBydXNoXC1hZ2FpbnN0Owor6J66IDwgc3BpcmFsXC1zaGVsbDsKK+WdiiA8IG5laWdoYm9yaG9vZDsKK+WwvCA8IGJ1ZGRoaXN0XC1udW47CivpvL4gPCBzbm9yZVwtbG91ZGx5Owor5Y+2IDwgdG9cLWhhcm1vbml6ZTsKK+mHjiA8IG9wZW5cLWNvdW50cnk7Civnp7sgPCBjaGFuZ2VcLXBsYWNlOwor5ZSQIDwgdGFuZ1wtZHluYXN0eTsKK+engCA8IGVhclwtb2ZcLWdyYWluOwor6JKyIDwgdHlwZVwtb2ZcLXJ1c2g7CivluoYgPCBjb25ncmF0dWxhdGU7Civokp8gPCBiZXRlbFwtcGVwcGVyOwor5rGXIDwgcGVyc3BpcmF0aW9uOwor5oucIDwgZG9cLW9iZWlzYW5jZTsKK+iZkSA8IGJlXC1jb25jZXJuZWQ7CivlrosgPCBzb25nXC1keW5hc3R5Owor6IOGIDwgZ2FsbFwtYmxhZGRlcjsKK+WJliA8IHNwbGl0XC1pblwtdHdvOwor5YekIDwgbWFsZVwtcGhvZW5peDsKK+ivoiA8IGlucXVpcmVcLWludG87CivnrZEgPCBhbmNpZW50XC1sdXRlOwor5YG2IDwgYWNjaWRlbnRhbGx5Owor6aO9IDwgZWF0XC1oZWFydGlseTsKK+iDjiA8IHVuYm9yblwtY2hpbGQ7Civmgp8gPCB0b1wtYXBwcmVoZW5kOwor6IKFIDwgcGF5XC1yZXNwZWN0czsKK+S+mCA8IGRpc2FwcG9pbnRlZDsKK+elrSA8IHNhY3JpZmljZVwtdG87CivlrqogPCBjb25zdGl0dXRpb247CivnopEgPCBzdG9uZVwtdGFibGV0Owor5piMIDwgbGlnaHRcLW9mXC1zdW47CivmkLogPCBsZWFkXC1ieVwtaGFuZDsKK+WOpiA8IGJpZ1wtYnVpbGRpbmc7Civku4YgPCBmYWxsXC1mb3J3YXJkOwor5aalIDwgc2F0aXNmYWN0b3J5Owor5p2tIDwgY3Jvc3NcLXN0cmVhbTsKK+i1oCA8IGdpdmVcLXByZXNlbnQ7CivohZQgPCBjaGVzdFwtY2F2aXR5Owor5a2dIDwgZmlsaWFsXC1waWV0eTsKK+esuSA8IHNtYWxsXC1iYW1ib287CivnrJsgPCBiYW1ib29cLWZsdXRlOwor5q2nIDwgZm9ya1wtb2ZcLXJvYWQ7CivpiZsgPCBsZWFkXC1wbHVtYnVtOwor5ZaDIDwga2VlcFwtdGFsa2luZzsKK+iIsSA8IGhvbGRcLW9mXC1zaGlwOwor6YacIDwgdWdseVwtbG9va2luZzsKK+ijmCA8IGZ1clwtZ2FybWVudHM7CivmoL0gPCB0b1wtY3VsdGl2YXRlOwor6K+nIDwgYmVcLXN1cnByaXNlZDsKK+mYjiA8IHZpbGxhZ2VcLWdhdGU7CivmhKMgPCBiZVwtaW5cLWFcLWRhemU7CivnkKogPCB0eXBlXC1vZlwtamFkZTsKK+WopSA8IGJlXC1iZWF1dGlmdWw7CivlkqogPCBzb3VuZFwtb2ZcLWNhdDsKK+a4lyA8IHNvYWtcLXRocm91Z2g7CivokasgPCBib3R0bGVcLWdvdXJkOwor5Z2qIDwgbGV2ZWxcLWdyb3VuZDsKK+WdniA8IGVudHJlbmNobWVudDsKK+apoSA8IGNoZXN0bnV0XC1vYWs7Civnta4gPCB3YXN0ZVwtY290dG9uOwor6LeEIDwgd2Fsa1wtcmFwaWRseTsKK+WxuSA8IHRvXC1yaXNlXC1oaWdoOwor5oOYIDwgZGlzY29uY2VydGVkOwor5o+pIDwgcnViXC1hbmRcLXdpcGU7CivmpaAgPCBuYW1lXC1vZlwtdHJlZTsKK+m6kyA8IGZvb3RcLW9mXC1oaWxsOwor5oG7IDwgZmVlbFwtYW5ndWlzaDsKK+ahhSA8IG1hc3RcLW9mXC1zaGlwOwor6aqLIDwgZ2FsbG9wXC1ob3JzZTsKK+i5kiA8IHRvXC1qdW1wXC1vdmVyOwor56WAIDwgdG9cLXNhY3JpZmljZTsKK+WvsCA8IGdyZWF0XC1kb21haW47CivmlpMgPCBtdWx0aWNvbG9yZWQ7CivkvKsgPCBsb29rXC10b3dhcmRzOwor6LqPIDwgdHJhbXBsZVwtZG93bjsKK+ayvSA8IGJ1eVwtYW5kXC1zZWxsOwor54+lIDwgZWFyXC1vcm5hbWVudDsKK+eshiA8IGJhbWJvb1wtZmVuY2U7CivomawgPCB5b3VuZ1wtZHJhZ29uOwor5oOsIDwgYmVcLXNhdGlzZmllZDsKK+e8qCA8IGFcLWNoaW5cLXN0cmFwOwor5Yq+IDwgZXhhbWluZVwtaW50bzsKK+WYpCA8IHNlZWtcLWZyaWVuZHM7Civor4MgPCBzY29sZFwtbG91ZGx5Owor5Ya9IDwgY29sZFwtYW5kXC1yYXc7Civpo6ggPCBob3N0XC1iYW5xdWV0Owor5oCPIDwgZGlzY29udGVudGVkOwor5YaiIDwgYnVyaWFsXC1tb3VuZDsKK+WXsyA8IGludGVyamVjdGlvbjsKK+WulSA8IHN0b25lXC1xdWFycnk7CivogIYgPCBtYW5cLW9mXC1zaXh0eTsKK+mdkyA8IG1ha2VcLXVwXC1mYWNlOwor6JuwIDwgdG9cLWhpYmVybmF0ZTsKK+aOvCA8IHRocm93XC1ncm91bmQ7Civlm6QgPCBncmFpblwtYmFza2V0Owor562xIDwgZHdhcmZcLWJhbWJvbzsKK+aonyA8IGNhbXBob3JcLXRyZWU7CivpsqUgPCByZWV2ZXMnJ1wtc2hhZDsKK+mAtSA8IHRob3JvdWdoZmFyZTsKK+WytyA8IG1pblwtbW91bnRhaW47CivmnrAgPCBzbW9vdGhcLWJvYXJkOwor5bGQIDwgd29vZGVuXC1zaG9lczsKK+iDmyA8IHRoZVwtc2hvdWxkZXI7CivpuZ4gPCBzcGFycm93XC1oYXdrOwor54qEIDwgYW5pbWFsXC1ob3JuczsKK+i3uSA8IHdhbmRlclwtYWJvdXQ7CivmmLEgPCBicmlnaHRcLWxpZ2h0Owor5rmEIDwgd2F0ZXInJ3NcLWVkZ2U7Civoj4UgPCBjb2Fyc2VcLWdyYXNzOwor57u7IDwgYWZmZWN0aW9uYXRlOwor56+BIDwgYmFtYm9vXC1ncm92ZTsKK+i1hSA8IHByZXBhcmVkXC1mb3I7CivmpIEgPCBvdXRlclwtY29mZmluOwor57qwIDwgc3BvaWxlZFwtc2lsazsKK+m8iyA8IGxhcmdlXC10dXJ0bGU7CivphpAgPCBwdXJlc3RcLWNyZWFtOwor6b6JIDwgdW5ldmVuXC10ZWV0aDsKK+iLuyA8IGtpbmRcLW9mXC1oZXJiOwor6ayjIDwgaG9yc2UnJ3NcLW1hbmU7CivnvJcgPCBmaXNoaW5nXC1saW5lOwor5rmrIDwgYVwtc21hbGxcLXBvbmQ7Civku58gPCBvbmVcLXRob3VzYW5kOwor6Jq2IDwga2luZFwtb2ZcLWNsYW07Civom4QgPCBtb2xlXC1jcmlja2V0Owor5q+CIDwgaHViXC1vZlwtd2hlZWw7CivnlZogPCBzdHJhd1wtYmFza2V0Owor5rSEIDwgYVwtYmFja1wtd2F0ZXI7Civpo6cgPCBldmVuaW5nXC1tZWFsOwor6YaqIDwgdW5jbGVhclwtd2luZTsKK+mqnSA8IGZhbW91c1wtaG9yc2U7CivpqpIgPCBtb3RoZXJcLWhvcnNlOwor5oeUIDwgYmVcLWFmcmFpZFwtb2Y7CivlipMgPCBjdXRcLW9mZlwtbm9zZTsKK+i4lCA8IHRvXC1nZXRcLWFoZWFkOwor6aKhIDwgdGhlXC1mb3JlaGVhZDsKK+a9siA8IGRyaXZpbmdcLXJhaW47CivnvK8gPCBzaWxrXC1mYWJyaWNzOwor55STIDwgZ2xhemVkXC10aWxlczsKK+iNrCA8IGFcLXBsYW50XC1uYW1lOwor5p+SIDwgbnVtYmVyXC1zZXZlbjsKK+eYsyA8IHRvXC1iZVwtaGVhbGVkOwor6LCHIDwgc3BlYWtcLWlsbFwtb2Y7CivkuYcgPCB0b1wtZGVwZW5kXC1vbjsKK+WFtuS7lueahOS6uiA8IG90aGVyXC1wZW9wbGU7CivliqDnt4ogPCB0b1wtaW50ZW5zaWZ5Owor6JCs5LqL6YGUIDwgbWFzdGVyXChjYXJkXCk7CivnnaHoprogPCB0b1wtZ29cLXRvXC1iZWQ7Civml6nmnJ8gPCBlYXJseVwtcGVyaW9kOwor57SE54+l5pu4IDwgYm9va1wtb2ZcLWpvZWw7CivlqpLpq5TloLHlsI4gPCBtZWRpYVwtcmVwb3J0Owor55u46ZecIDwgaW50ZXJyZWxhdGVkOwor6Im+5ruL55eF5oKj6ICFIDwgYWlkc1wtcGF0aWVudDsKK+eBq+m+jSA8IGZpZXJ5XC1kcmFnb247CivlkIjkvZwgPCB0b1wtY29vcGVyYXRlOwor6LOg5YSf6YeRIDwgY29tcGVuc2F0aW9uOwor57C/6KiY566h55CG5ZOhIDwgY29tbWlzc2FyaWFuOwor5pm65YqbIDwgaW50ZWxsaWdlbmNlOwor56S65aiB6ICFIDwgZGVtb25zdHJhdG9yOwor5piU5bm0IDwgZm9ybWVyXC15ZWFyczsKK+WSjOW5s+ainee0hCA8IHBlYWNlXC10cmVhdHk7Civmr5vkuLvluK0gPCBjaGFpcm1hblwtbWFvOwor56Sm5LqVIDwgbWluZVwtXChzaGFmdFwpOwor54af55+lIDwgYWNxdWFpbnRhbmNlOwor5pSv56WoIDwgXChiYW5rXClcLWNoZWNrOwor5bu656+J54mpIDwgXChhXClcLWJ1aWxkaW5nOwor5aeQ5aeQIDwgb2xkZXJcLXNpc3RlcjsKK+iCoeelqOW4guWgtCA8IHN0b2NrXC1tYXJrZXQ7CivplrHopr3lrqQgPCByZWFkaW5nXC1yb29tOwor6K2m5aCxIDwgXChmaXJlXClcLWFsYXJtOwor5b6M5p6cIDwgY29uc2VxdWVuY2VzOwor5LiN5ZCN6K29IDwgZGlzcmVwdXRhYmxlOwor5pS255ukIDwgbWFya2V0XC1jbG9zZTsKK+WfjumYsiA8IGNpdHlcLWRlZmVuY2U7CivpoILkvY8gPCB0b1wtd2l0aHN0YW5kOwor6KW/6YOoIDwgd2VzdGVyblwtcGFydDsKK+WlveaEnyA8IGdvb2RcLW9waW5pb247CivmqZ/morDnorwgPCBtYWNoaW5lXC1jb2RlOwor5aSx5qWtIDwgdW5lbXBsb3ltZW50Owor5pOF6IeqIDwgdW5hdXRob3JpemVkOwor5aSn6ama5aSx6ImyIDwgYXBwcmVoZW5zaXZlOwor6auY5bGk5peF6aSoIDwgbHV4dXJ5XC1ob3RlbDsKK+mAleiHqiA8IG9uXC1vbmUnJ3NcLW93bjsKK+i/keimliA8IHNob3J0c2lnaHRlZDsKK+atpeeKgSA8IHdhbGtpbmdcLXBsb3c7CivkuI3miJDlip8gPCB1bnN1Y2Nlc3NmdWw7CivmsLTmu7jlgrMgPCB3YXRlclwtbWFyZ2luOwor5LiN6YeN6KaWIDwgaW5kaWZmZXJlbmNlOwor6ZaL6ZecIDwgcG93ZXJcLXN3aXRjaDsKK+WOu+S4liA8IHRvXC1wYXNzXC1hd2F5Owor5Lqe5rSy6IiH5aSq5bmz5rSLIDwgYXNpYVwtcGFjaWZpYzsKK+WNgeS5neatsiA8IDE5XC15ZWFyc1wtb2xkOwor6Z2I55qE5LiW55WMIDwgc3Bpcml0XC13b3JsZDsKK+WkmuaWuSA8IGluXC1tYW55XC13YXlzOwor5pC26LO8IDwgcGFuaWNcLWJ1eWluZzsKK+W3oei/tCA8IHRvXC1nb1wtYXJvdW5kOwor6YCZ56iuIDwgdGhpc1wta2luZFwtb2Y7CivlpKfmhI8gPCBnZW5lcmFsXC1pZGVhOwor5Y2K5paH55uyIDwgc2VtaWxpdGVyYXRlOwor5Yil56ixIDwgYW5vdGhlclwtbmFtZTsKK+atpeatpSA8IHN0ZXBcLWJ5XC1zdGVwOwor5Y2U5ZWGIDwgY29uc3VsdFwtd2l0aDsKK+efruaYnyA8IGR3YXJmXC1cKHN0YXJcKTsKK+aguOatpuWZqOippumplyA8IG51Y2xlYXJcLXRlc3Q7CivkuJnng6/phbggPCBhY3J5bGljXC1hY2lkOwor5Y2K54af57e0IDwgc2VtaVwtc2tpbGxlZDsKK+mCo+aZgiA8IGF0XC10aGF0XC10aW1lOwor5ZCD5LiN6ZaLIDwgYmVcLXVucG9wdWxhcjsKK+Wkp+W4qyA8IGdyZWF0XC1tYXN0ZXI7CivntYTnuZQgPCBvcmdhbml6YXRpb247Civlh7rkuY7poJDmlpkgPCB1bmV4cGVjdGVkbHk7CivpgJrnlKggPCBjb21tb25cLVwodXNlXCk7CivlpJrlt6UgPCB0b1wtbXVsdGlwbGV4Owor57O+6JGbIDwgZW50YW5nbGVtZW50Owor6Kmm5o6iIDwgdG9cLXNvdW5kXC1vdXQ7CivlpKvlprsgPCBtYW5cLWFuZFwtd2lmZTsKK+WcsOaWueS4u+e+qSA8IFwibG9jYWxcLVwtaXNtXCI7CivpgZPmrYkgPCB0b1wtYXBvbG9naXplOwor5pWF5oSPIDwgZGVsaWJlcmF0ZWx5Owor6KuL5ZWPIDwgbWF5XC1pXC1hc2tcLlwuXC47Civmv4DlhYnllLHniYcgPCBjb21wYWN0XC1kaXNrOwor5LqM5Y2B5LiA5LiW57SAIDwgMjFzdFwtY2VudHVyeTsKK+WHuueZvCA8IHRvXC1zdGFydFwtb3V0Owor57iu5a+rIDwgYWJicmV2aWF0aW9uOwor5Lit5aSu6YqA6KGMIDwgY2VudHJhbFwtYmFuazsKK+WjgeaOmyA8IHdhbGxcLWhhbmdpbmc7Civnhp/mgokgPCB0b1wta25vd1wtd2VsbDsKK+eGn+aAnSA8IGRlbGliZXJhdGlvbjsKK+aVtOWkqSA8IGFsbFwtZGF5XC1sb25nOwor6bGJ55SyIDwgdHVydGxlXC1zaGVsbDsKK+i6q+mrlCA8IFwoaHVtYW5cKVwtYm9keTsKK+aWr+Wvhue0hOeRnyA8IGpvc2VwaFwtc21pdGg7Civns77nuo8gPCBiZVwtZW50YW5nbGVkOwor5LiN5ZCI55CGIDwgdW5yZWFzb25hYmxlOwor55uu5YmN5LiW55WMIDwgbW9kZXJuXC13b3JsZDsKK+ikh+ijvSA8IHRvXC1kdXBsaWNhdGU7Civpmorml5cgPCB0ZWFtXC1wZW5uYW50Owor5Yqg5by3IDwgdG9cLXJlaW5mb3JjZTsKK+WHuueNhCA8IGxlYXZlXC1wcmlzb247CivkuI3mhInlv6sgPCBkaXNhZ3JlZWFibGU7Civoq4fliKQgPCB0b1wtbmVnb3RpYXRlOwor55yL55eFIDwgc2VlXC1hXC1kb2N0b3I7CivmsJHmhI/oqr/mn6UgPCBvcGluaW9uXC1wb2xsOwor5b6I5LiNIDwgdmVyeVwtdW5cLVwuXC5cLlwuOwor5q+F5YqbIDwgcGVyc2V2ZXJhbmNlOwor6JC95a+mIDwgdG9cLWltcGxlbWVudDsKK+aUr+W6lyA8IGJyYW5jaFwtc3RvcmU7CivpvYYgPCBzdHVmZmVkXC1ub3plOwor6by9IDwgY2xvZ2dlZFwtbm9zZTsKK+eZveiWryA8IHN3ZWV0XC1wb3RhdG87CivntrXml5cgPCBjb2xvcmVkXC1mbGFnOwor6aSK6Zue5aC0IDwgY2hpY2tlblwtZmFybTsKK+m6lSA8IG11bnRqYWNcLWRlZXI7Civnj77ku6Ppn7PmqIIgPCBtb2Rlcm5cLW11c2ljOwor5Zue6aGnIDwgdG9cLWxvb2tcLWJhY2s7Civmrq3ljJYgPCBiZWNvbWVcLXJpZ2lkOwor6bOQIDwgdGhlXC1uYXV0aWx1czsKK+mxkSA8IHRoZVwtc3R1cmdlb247CivpsYIgPCBuYW1lXC1vZlwtZmlzaDsKK+ijvemAoOalreiAhSA8IG1hbnVmYWN0dXJlcjsKK+iGneS4iuWeiyA8IGxhcHRvcFwtXChhZGpcKTsKK+eAj+imvSA8IHRvXC1za2ltXC1vdmVyOwor5b+D55CG5a245a62IDwgcHN5Y2hvbG9naXN0Owor6a2mIDwgc2hhcmtcLWZhbWlseTsKK+mstSA8IGJpZ1wtaXJvblwtcG90Owor6ayFIDwgdW5rZW1wdFwtaGFpcjsKK+iqsuS9mSA8IGFmdGVyXC1zY2hvb2w7Civou4rpgZMgPCB0cmFmZmljXC1sYW5lOwor5q2j5aaCIDwgYmVcLWp1c3RcLWxpa2U7CivpqYggPCBibGFja1wtaG9yc2VzOwor6aiGIDwgZGl2aW5lXC1ob3JzZTsKK+mnnCA8IHN0cm9uZ1wtaG9yc2U7Civpp5cgPCBjaGF0dGVyXC1tYXJrOwor5pyJ5qKd5pyJ55CG5ZywIDwgbWV0aG9kaWNhbGx5Owor5LiN5piv546p5YWS55qEIDwgaXQnJ3NcLW5vXC1qb2tlOwor5a+m6Zqb5oCnIDwgcHJhY3RpY2FsaXR5Owor5Y2B5LiA5bm0IDwgZWxldmVuXC15ZWFyczsKK+mkgCA8IHRhaW50ZWRcLWZvb2Q7CivkuI3og73mirXmipcgPCBpcnJlc2lzdGlibGU7Civpoq0gPCBzd2F5XC1pblwtd2luZDsKK+e0meeJjCA8IHBsYXlpbmdcLWNhcmQ7CivpnqYgPCBsZWF0aGVyXC1zdGFwOwor6YGO5aKD57C96Ki8IDwgdHJhbnNpdFwtdmlzYTsKK+mckSA8IGJlXC1tb2lzdGVuZWQ7CivpmYEgPCBhXC1zdGVlcFwtYmFuazsKK+eZvOe0hSA8IGZsdXNoXC1cKGZhY2VcKTsKK+mbhuWQiCA8IGNvbmdyZWdhdGlvbjsKK+mAn+aIkCA8IGNyYXNoXC1jb3Vyc2U7Civpl5EgPCB0aGVcLWRvb3JzaWxsOwor5YWJ57eaIDwgb3B0aWNhbFwtbGluZTsKK+mVqCA8IHByYXNlb2R5bWl1bTsKK+WKquWKmyA8IGdyZWF0XC1lZmZvcnQ7CivlvJXlhaUgPCB0b1wtZHJhd1wtaW50bzsKK+W7oOWdgCA8IGZhY3RvcnlcLXNpdGU7Civpj7cgPCBwcm90YWN0aW5pdW07Civnm7jkvLzmgKcgPCByZXNzZW1ibGFuY2U7CivpnZ7lkIzmraUgPCBhc3luY2hyb25vdXM7CivpjYogPCBzbWVsdFwtbWV0YWxzOwor6YyIIDwgdG9cLWJlbmRcLWlyb247CivlgrPpgZPmm7ggPCBlY2NsZXNpYXN0ZXM7CivpmqjlkIwgPCBhY2NvbXBhbnlpbmc7CivogLbnqYzln7rnnaMgPCBqZXN1c1wtY2hyaXN0Owor54aS5YWJIDwgZmxvdXJlc2NlbmNlOwor6KiY6ICF5aCx5bCOIDwgcHJlc3NcLXJlcG9ydDsKK+mHqiA8IGFuXC1hbG1zXC1ib3dsOwor5buj5ZGKIDwgdG9cLWFkdmVydGlzZTsKK+mGvSA8IGtpbmRcLW9mXC13aW5lOwor5oyo6L+RIDwgZ2V0XC1jbG9zZVwtdG87Civnt6jliocgPCB3cml0ZVwtYVwtcGxheTsKK+Wjk+WAkiA8IG92ZXJ3aGVsbWluZzsKK+aOoeiEgiA8IHRyZWVcLXRhcHBpbmc7Civpg5kgPCB0b1wtYmVcLWV4aWxlZDsKK+mCsiA8IGdvb2RcLWxvb2tpbmc7Civov6MgPCB0b1wtbGVhcFwtb3ZlcjsKK+mAn+WvqyA8IHF1aWNrXC1za2V0Y2g7CivlpJrlt6XkvZzmpa0gPCBtdWx0aXRha3Npbmc7CivnmbzoqIDkurogPCBzcG9rZXNwZXJzb247CivouLwgPCB0b1wtZmFsbFwtZmxhdDsKK+i4pCA8IGJ1dHRcLWFnYWluc3Q7Civpm4bkuK3lmaggPCBjb25jZW50cmF0b3I7CivkuI3lpKfpm6LlhZIgPCBwcmV0dHlcLWNsb3NlOwor6YCx5ZyNIDwgc3Vycm91bmRpbmdzOwor5r++57SZIDwgZmlsdGVyXC1wYXBlcjsKK+iziSA8IHRvXC1naXZlXC1hbG1zOwor6LKGIDwgc21hbGxcLWJhZGdlcjsKK+ixtiA8IGNhc3RyYXRlXC1waWc7CivotrPnkIPov7cgPCBmb290YmFsbFwtZmFuOwor5pys5L6G6Z2i55uuIDwgdHJ1ZVwtY29sb3VyczsKK+ioquS/hCA8IHZpc2l0XC1ydXNzaWE7Civmi5TpjKggPCB3ZWlnaFwtYW5jaG9yOwor5qiZ54eIIDwgYmVhY29uXC1saWdodDsKK+WGsOaZtiA8IGljZVwtY3J5c3RhbHM7Civoqr4gPCBzcGVha1wtZ2VudGx5Owor5bm+5aSpIDwgc2V2ZXJhbFwtZGF5czsKK+aOiOeyviA8IGluc2VtaW5hdGlvbjsKK+mrkuipsSA8IGJhZFwtbGFuZ3VhZ2U7Civlh7nlsrggPCBjb25jYXZlXC1iYW5rOwor6KWbIDwgZmluZVwtY2xvdGhlczsKK+ilhiA8IGhvb2RcLW9yXC1jb3dsOwor6YGO5L6GIDwgdG9cLWNvbWVcLW92ZXI7Civmk43li54gPCB0b1wtd29ya1wtaGFyZDsKK+mCo+aoo+eahCA8IHRoYXRcLWtpbmRcLW9mOwor5YWJ5rqQIDwgbGlnaHRcLXNvdXJjZTsKK+eyl+S/l+eahOmajue0miA8IHZ1bGdhclwtY2xhc3M7CivpgJ/lh40gPCBxdWlja1wtZnJlZXplOwor57ay6Lev56+A6bueIDwgbmV0d29ya1wtbm9kZTsKK+WdkOeJoiA8IGltcHJpc29ubWVudDsKK+ijnOeJmSA8IGZpbGxcLWFcLXRvb3RoOwor5Yio5YiAIDwgcGxhbmluZ1wtdG9vbDsKK+aKiumXnCA8IGd1YXJkXC1hXC1wYXNzOwor5omT5Y2w5pyN5YuZ5ZmoIDwgcHJpbnRcLXNlcnZlcjsKK+S4jeWPr+aUtuaLviA8IGlycmVtZWRpYWJsZTsKK+WNiumCiuWkqSA8IGhhbGZcLXRoZVwtc2t5Owor6JGcIDwgc21pbGF4XC1jaGluYTsKK+iQqSA8IHNjYW5kZW50XC1ob3A7CivokJggPCBuYXBodGhhbmxlbmU7Civoh6rooZsgPCBzZWxmXC1kZWZlbnNlOwor6LOT6KW/5rOV5bC85LqeIDwgcGVubnN5bHZhbmlhOwor6I6mIDwganVuZ2xlXC1ncmFzczsKK+Wci+Wutuapn+WvhiA8IHN0YXRlXC1zZWNyZXQ7CivpmZvkuIsgPCB5b3VyXC1tYWplc3R5Owor5YWr5pyIIDwgZWlnaHRoXC1tb250aDsKK+iKmiA8IGdyZWVuXC1zcHJvdXQ7CivlgpnogIMgPCBcKGFuXC1hcHBlbmRpeDsKK+iKkSA8IHdoaXRlXC1taWxsZXQ7CivlubTliY0gPCBcLlwuXC55ZWFyc1wtYWdvOwor6IaXIDwgdWdseVwtYW5kXC1mYXQ7CivplovmlK8gPCBleHBlbmRpdHVyZXM7CivmjY/nqY0gPCBjaGlyb3ByYWN0aWM7CivokaHokITphZIgPCBcKGdyYXBlXClcLXdpbmU7CivogpkgPCBhXC1zbWFsbFwtd29ybTsKK+e+gCA8IGZpc2hpbmdcLXRyYXA7Civoqr/mn6Xkurrlk6EgPCBpbnZlc3RpZ2F0b3I7Civmraboo53pg6jpmoogPCBhcm1lZFwtZm9yY2VzOwor5aCx5YO5IDwgcXVvdGVkXC1wcmljZTsKK+i/t+S/oSA8IHN1cGVyc3RpdGlvbjsKK+e6gSA8IHNoYWRlXC1vZlwtcmVkOwor57mZIDwgdG9cLWludGVycHJldDsKK+e4lSA8IHRhbmdsZWRcLWhlbXA7CivovYnmj5sgPCB0b1wtdHJhbnNmb3JtOwor5pCs5a62IDwgbW92ZVwtXChob3VzZVwpOwor5oi26aCtIDwgYmFua1wtYWNjb3VudDsKK+i+suS9nOeJqSA8IFwoZmFybVwpXC1jcm9wczsKK+exryA8IGJhbWJvb1wtY2hlc3Q7Civlm5vljYHlpJogPCBtb3JlXC10aGFuXC00MDsKK+imquS/oSA8IHRydXN0ZWRcLWFpZGU7CivnraQgPCB5b3VuZ1wtYmFtYm9vOwor6KGM56iLIDwgdHJhdmVsXC1yb3V0ZTsKK+etjSA8IGJhbWJvb1wtc2hvb3Q7CivnrYUgPCBiYW1ib29cLWJydXNoOwor5Zq056ujIDwgdGlnaHRcLnN0cmljdDsKK+itieWvpuemriA8IGNvbmZpcm1hdGlvbjsKK+WQjemMhOacjeWLmSA8IG5hbWVcLXNlcnZpY2U7Civnp6wgPCBibGFja1wtbWlsbGV0Owor55yL5L2cIDwgbG9va1wtdXBvblwtYXM7Civoqp7pn7Pkv6HomZ8gPCB2b2ljZVwtc2lnbmFsOwor5a+n6aGYIDwgd291bGRcLXJhdGhlcjsKK+elmCA8IHRvXC1jYWxjdWxhdGU7Civno6AgPCBzYWxcLWFtbW9uaWFjOwor56K2IDwgYVwtZmxvb2RcLWdhdGU7CivmjqXmnp0gPCBcKHRyZWVcKVwtZ3JhZnQ7CivmjojmrIogPCB0b1wtYXV0aG9yaXplOwor55+8IDwgc3RvbmVcLWJyaWRnZTsKK+mWi+WtuCA8IHNjaG9vbFwtb3BlbnM7CivnnZIgPCB0b1wtZ2xhbmNlXC1hdDsKK+S/neitiSA8IHRvXC1ndWFyYW50ZWU7CivmibnoqZUgPCB0b1wtY3JpdGljaXplOwor5a6H6Iiq5bGAIDwgc3BhY2VcLWFnZW5jeTsKK+eapiA8IGJyaWdodFwtd2hpdGU7Civku6TkurrpqZrnlbAgPCBzdXJwcmlzaW5nbHk7CivnmLogPCBhbmFsXC1maXN0dWxhOwor5Y675ZyL5aSWIDwgdG9cLWdvXC1hYnJvYWQ7Civnlr8gPCBwcmlja2x5XC1oZWF0Owor5ouU57WyIDwgd2lyZVwtZHJhd2luZzsKK+aJk+izrSA8IFwobWFrZVwtYVwpXC1iZXQ7CivlhKrmg6AgPCBwcmVmZXJlbnRpYWw7CivnrKzkuozkvY0gPCBzZWNvbmRcLXBsYWNlOwor5YWs5aCxIDwgYW5ub3VuY2VtZW50Owor5Z+656SO6Kit5pa9IDwgYmFzZVwtc3RhdGlvbjsKK+WvhumbhiA8IGNvbmNlbnRyYXRlZDsKK+aOiOaZgiA8IHRpbWVcLXNlcnZpY2U7CivlnKjml4EgPCBieVwtXChhXC1wbGFjZVwpOwor5ZCM5pmC5LujIDwgY29udGVtcG9yYXJ5Owor546NIDwgaWxsXC10ZW1wZXJlZDsKK+aLvOebpCA8IGNvbGRcLXBsYXR0ZXI7Civni4YgPCBwZWtpbmVzZVwtZG9nOwor54mCIDwgZmVtYWxlXC1zaGVlcDsKK+aNkOasviA8IGRvbmF0ZVwtbW9uZXk7Civlia/nuL3nkIYgPCB2aWNlXC1wcmVtaWVyOwor5ZyL5pyJIDwgbmF0aW9uYWxpemVkOwor57O75LiKIDwgdG9cLWJ1Y2tsZVwtdXA7Civog4zpm6IgPCBkZXZpYXRlXC1mcm9tOwor5oyJ54WnIDwgYWNjb3JkaW5nXC10bzsKK+WBtueEtiA8IGluY2lkZW50YWxseTsKK+WWiemPoSA8IGxhcnluZ29zY29wZTsKK+iDjOmZsCA8IGluXC10aGVcLXNoYWRlOwor55Sf5ZG96Leh6LGhIDwgc2lnblwtb2ZcLWxpZmU7CivlhanljYMgPCB0d29cLXRob3VzYW5kOwor5ruKIDwgYVwtcml2ZXJcLW5hbWU7Civot6/lvpfoqJggPCBib29rXC1vZlwtcnV0aDsKK+aPkuWcliA8IGlsbHVzdHJhdGlvbjsKK+azliA8IHN0aWxsXC13YXRlcnM7Civnn6XorZjliIblrZAgPCBpbnRlbGxlY3R1YWw7CivnrqHnkIYgPCB0b1wtc3VwZXJ2aXNlOwor5LiJ5ZCI5LiAIDwgdGhyZWVcLWluXC1vbmU7Civmr4ggPCBmZXJ0aWxlXC1lZ2dzOwor5q6cIDwgaGFsZlwtc2l0dGluZzsKK+Wbm+eZvuiQrCA8IGZvdXJcLW1pbGxpb247CivmooXoirEgPCBwbHVtXC1ibG9zc29tOwor6Zi/5pGp5Y+45pu4IDwgYm9va1wtb2ZcLWFtb3M7CivnlbbnhLYgPCBvbmx5XC1uYXR1cmFsOwor5qmSIDwgd29vZFwtc3RyZWFrczsKK+mrmOizqumHjyA8IGhpZ2hcLXF1YWxpdHk7CivmqJnlg7kgPCBtYXJrXC1hXC1wcmljZTsKK+anuyA8IHplbGtvdmFcLXRyZWU7Civmo5LnoasgPCByb2xsXC1zdWxwaHVyOwor5qeUIDwgd2F0ZXJcLXB1bGxleTsKK+Wkoua4uOeXhyA8IHRvXC1zbGVlcHdhbGs7CivogLbliKnnsbPlk4DmrYwgPCBsYW1lbnRhdGlvbnM7CivppYXpoK0gPCBzdGVhbWVkXC1yb2xsOwor5L+d566hIDwgdGFrZVwtY2FyZVwtb2Y7CivnlKjmiLblrprnvqkgPCB1c2VyXC1kZWZpbmVkOwor5Z6C5LiLIDwgdG9cLWhhbmdcLWRvd247CivmiJDlkInmgJ3msZcgPCBnZW5naGlzXC1raGFuOwor5pGZIDwgdG9cLXRyYW5zcG9ydDsKK+ijgeWToSA8IHRvXC1jdXRcLXN0YWZmOwor5riF6YaSIDwgY2xlYXJcLWhlYWRlZDsKK+ijnOWFhSA8IHRvXC1yZXBsZW5pc2g7CivkuI3ntZDnm58gPCBub25hbGlnbm1lbnQ7Civmj5EgPCB0b1wtZmFicmljYXRlOwor5YWr57Sa6aKoIDwgZm9yY2VcLThcLXdpbmQ7CivmiIkgPCBhXC1iYXR0bGVcLWF4ZTsKK+S+v+enmCA8IGNvbnN0aXBhdGlvbjsKK+eXheW6iiA8IGhvc3BpdGFsXC1iZWQ7CivlubzlhZLlnJIgPCBraW5kZXJnYXJ0ZW47CivmoZTlrZDmsLQgPCBvcmFuZ2VcLWp1aWNlOwor5p6Y6ZG/IDwgaW5jb21wYXRpYmxlOwor5Li75bm557ay6LevIDwgY29yZVwtbmV0d29yazsKK+W7uSA8IHRvXC1wZXJzZWN1dGU7CivlibXpgKDmgKcgPCBjcmVhdGl2ZW5lc3M7Civlmq7lvoAgPCB0b1wteWVhcm5cLWZvcjsKK+iHquaLlCA8IGZyZWVcLW9uZXNlbGY7CivluKggPCBoYW5ka2VyY2hpZWY7CivltqIgPCBoaWdoXC1vclwtdGFsbDsKK+WxmCA8IHRoZVwteW91bmdlc3Q7CivoiKrlpKkgPCBzcGFjZVwtZmxpZ2h0Owor6auY5a+GIDwgaGlnaFwtZGVuc2l0eTsKK+ihqOWcnyA8IHN1cmZhY2VcLXNvaWw7Civmrbfku6Plv5fkuIsgPCAyXC1jaHJvbmljbGVzOwor5q235Luj5b+X5LiKIDwgMVwtY2hyb25pY2xlczsKK+WrsiA8IGdyYW5kXC1tb3RoZXI7Civos57orZggPCBhcHByZWNpYXRpb247CivmtojpmaQgPCB0b1wtZWxpbWluYXRlOwor55Ge6ImyIDwgbG92ZWx5XC1jb2xvcjsKK+iBveiqqiA8IHRvXC1oZWFyXC10b2xkOwor5ZGo57i955CGIDwgcHJlbWllclwtemhvdTsKK+Wft+aUv+m7qCA8IHJ1bGluZ1wtcGFydHk7Civnlbblv4MgPCB0b1wtdGFrZVwtY2FyZTsKK+eVsOaApyA8IGhldGVyb3NleHVhbDsKK+S6pOmLkiA8IGNyb3NzXC1zd29yZHM7CivoiIjlpa4gPCBcKGJlXClcLWV4Y2l0ZWQ7CivmjIfku6TlkI3lrZcgPCBjb21tYW5kXC1uYW1lOwor56a96aGeIDwgYmlyZFwtc3BlY2llczsKK+avjeimquevgCA8IG1vdGhlcicnc1wtZGF5Owor5ZatIDwgY29uZG9sZVwtd2l0aDsKK+S4gOWwj+mDqOWIhiA8IGFcLXNtYWxsXC1wYXJ0Owor5YG95ZaEIDwgaHlwb2NyaXRpY2FsOwor5oqx5oSnIDwgZmVlbFwtYXNoYW1lZDsKK+WRuSA8IHRvXC1lYXRcLWdyYXNzOwor5LiA5LiL5YWSIDwgYVwtbGl0dGxlXC1iaXQ7CivosqDosqwgPCBpblwtY2hhcmdlXC1vZjsKK+ePvuihjCA8IGJlXC1pblwtZWZmZWN0Owor5bGI5pyNIDwgdG9cLXN1cnJlbmRlcjsKK+WOtyA8IHRoZVwtZm9yZVwtYXJtOwor5rib57epIDwgdG9cLXNsb3dcLWRvd247Civli6MgPCBhY2hpZXZlbWVudHM7CivkuIvpvZIgPCBib3R0b21cLXRlZXRoOwor5aqS6auUIDwgXChuZXdzXClcLW1lZGlhOwor5Ym3IDwgdG9cLWxldmVsXC1vZmY7CivpqZrmhJUgPCBhc3RvbmlzaG1lbnQ7CivnlbbloLQgPCBhdFwtdGhlXC1zY2VuZTsKK+ikh+ijveWTgSA8IHJlcHJvZHVjdGlvbjsKK+WElyA8IGNvbXBhcmVcLXdpdGg7Civlj7jms5XmrIogPCBqdXJpc2RpY3Rpb247CivlqZrpvaEgPCBtYXJyeWluZ1wtYWdlOwor5oqx5bGIIDwgZmVlbFwtd3JvbmdlZDsKK+S9lOS+v+WunCA8IGFkdmVudGFnZW91czsKK+S9rSA8IHVuc3VibWlzc2l2ZTsKK+mjn+itnCA8IGNvb2tlcnlcLWJvb2s7CivkuLwgPCBib3dsXC1vZlwtZm9vZDsKK+S4pumdniA8IHJlYWxseVwtaXNuJyd0Owor56qB56C0IDwgYnJlYWt0aHJvdWdoOwor6by75Lit6ZqUIDwgbmFzYWxcLXNlcHR1bTsKK+aWsOiBnuiZlSA8IG5ld3NcLXNlcnZpY2U7CivkvrXmmaggPCB0b3dhcmRzXC1kYXduOwor5LS8IDwgdG9cLWV4dGlycGF0ZTsKK+S0lSA8IGFcLXdvb2RwZWNrZXI7CivmvKLln44gPCBzZW91bFwsXC1rb3JlYTsKK+SzliA8IGZseWluZ1wtYmlyZHM7CivkspwgPCBsb3RzXC1vZlwtZmlzaDsKK+SxiiA8IHJvZVwtb3JcLXNwYXduOwor5K+2IDwgZmFpclwtb2ZcLWhhaXI7Civkr6cgPCBhXC1zbWFsbFwtaGFsbDsKK+mBi+WLlemeiyA8IHNwb3J0c1wtc2hvZXM7Civkrp8gPCBiaWdcLWFuZFwtdGFsbDsKK+WwkeaVuCA8IHNtYWxsXC1udW1iZXI7CivkrpEgPCBhXC1ncmF5XC1ob3JzZTsKK+StmCA8IHdlbGxcLXN0YWNrZWQ7CivkrZYgPCBhbmltYWxcLWZlZWRzOwor5ouM5ZKMIDwgbWl4XC1hbmRcLXN0aXI7CivkrYkgPCBtYXNoZWRcLWJlYW5zOwor5KycIDwgZXZpbFwtc3Bpcml0czsKK+SsmiA8IHRvXC1tb3ZlXC1mYXN0Owor5KyLIDwgdmlvbGVudFwtd2luZDsKK+a1gemAmiA8IHRvXC1jaXJjdWxhdGU7Civkq6ggPCB0YWxsXC1hbmRcLWJpZzsKK+SrmiA8IHNob3J0XC1oZWFkZWQ7Civkq5UgPCBzbWFsbFwtaGVhZGVkOwor5ZKo6KmiIDwgY29uc3VsdGF0aXZlOwor5KuHIDwgdGhlXC13aGlza2VyczsKK+aJkuaLiSA8IHB1c2hcLWxpZ2h0bHk7CivkqrkgPCBhXC1sYXJnZVwtZmFjZTsKK+SqoSA8IHRvXC1mYWxsXC1kb3duOwor5KqLIDwgc2lsa1wtY29yZGFnZTsKK+SpjyA8IGFcLXNtYWxsXC1mYWNlOwor5KmLIDwgYVwtZ3JlZW5cLWZhY2U7CivkqYcgPCBhXC1zbWFsbFwtaGVhZDsKK+WwiOaUvyA8IGRpY3RhdG9yc2hpcDsKK+SotiA8IHRodW5kZXJzdG9ybTsKK+SosiA8IGFcLXNtYWxsXC1oYXJlOwor5KiqIDwgYVwtZHVzdFwtc3Rvcm07CivkqJ0gPCBhXC1wdXJlXC13b21hbjsKK+SoiCA8IGFcLXNtYWxsXC1iaXJkOwor6aO86I2JIDwgZm9yYWdlXC1ncmFzczsKK+SnoiA8IGFcLXJvdWdoXC1yb2FkOwor5KeZIDwgYVwtaGlnaFwtbW91bmQ7CivpvLvohZQgPCBuYXNhbFwtY2F2aXR5Owor5qC46L2f54K4IDwgbnVjbGVhclwtYm9tYjsKK+a1tOihgCA8IGJsb29kXC1zb2FrZWQ7CivkpYMgPCBhXC1iaWdcLWhhbW1lcjsKK+SkrCA8IGFcLXNtYWxsXC1nb25nOwor5KSjIDwgYVwtbWV0YWxcLXJpbmc7CivkpIsgPCB5ZWxsb3dcLWZhY2VkOwor5KO+IDwgY2hlZXNlXC1kcmVnczsKK+SjvCA8IG1peGVkXC1zdGFyY2g7CivlsazlnIsgPCB2YXNzYWxcLXN0YXRlOwor5KCUIDwgZmFyXC1hbmRcLWRlZXA7Civkn78gPCB0b1wtcmV2ZXJlbmNlOwor5J+5IDwgdG9cLWhvcFwtYWJvdXQ7CivovYnos6zljaEgPCBhXC1kZWJpdFwtY2FyZDsKK+mLvOethiA8IGZvdW50YWluXC1wZW47Civkn5UgPCB0b1wtc3RlcFwtdXBvbjsKK+SesSA8IHRvXC1mYWxsXC1vdmVyOwor5J6nIDwgaGFyZFwtdG9cLXdhbGs7CivlgYnkurogPCBncmVhdFwtcGVyc29uOwor5a6J54efIDwgcGl0Y2hcLWFcLWNhbXA7Civlkozop6MgPCBjb25jaWxpYXRvcnk7CivpnaLlsI3pnaIgPCBmYWNlXC10b1wtZmFjZTsKK+SaqiA8IGN1cnZlZFwtaG9ybnM7Civmop3lrZAgPCBhXC1zaG9ydFwtbm90ZTsKK+aPrumcjeeEoeW6piA8IGV4dHJhdmFnYW5jZTsKK+agueacrCA8IFwobm90XClcLWF0XC1hbGw7CivkmIQgPCBjaWNhZGFcLWZhbWl5Owor5JiAIDwgZ3Jhc3Nob3BwZXJzOwor5JenIDwgbGliZWxsdWxpZGFlOwor56iu56iuIDwgYWxsXC1raW5kc1wtb2Y7Civklp4gPCBhXC1zZWFcLWluc2VjdDsKK+SVuyA8IHRvXC1hZGhlcmVcLXRvOwor5JW6IDwgZGVuc2VcLWdyb3d0aDsKK+SVnSA8IG1lZGljYWxcLWhlcmI7CivklYsgPCBvZlwtZWxtXC1ncm91cDsKK+STryA8IHdhdGVyXC1wZXBwZXI7CivnmbvpmbjmnIjnkIMgPCBtb29uXC1sYW5kaW5nOwor6KSH5a+r57SZIDwgY2FyYm9uXC1wYXBlcjsKK+SRvSA8IGFcLWxhcmdlXC1ib2F0Owor5JG1IDwgYVwtc21hbGxcLWJvYXQ7Civms5XpmaIgPCBjb3VydFwtb2ZcLWxhdzsKK+SQhSA8IHRoZVwtYnV0dG9ja3M7Civkj4AgPCBpbmhhcm1vbmlvdXM7CivkjpggPCBiaXJkc1wtZmx5aW5nOwor5rKz6aasIDwgaGlwcG9wb3RhbXVzOwor55Sf5ZG9IDwgbGlmZVwtXChmb3JjZVwpOwor5I2EIDwgYW5cLWluZGVudHVyZTsKK+SMtiA8IFwpXC1ibGFja1wtc2lsazsKK+SMhyA8IGFcLXRoaWNrXC1yb3BlOwor5Li76KeSIDwgbGVhZGluZ1wtcm9sZTsKK+a3q+eMpSA8IGFib21pbmF0aW9uczsKK+eUouWNtSA8IGxheVwtXChhblwtZWdnXCk7Civmnpznmq4gPCBcKGZydWl0XClcLXBlZWw7CivkioUgPCB0b1wtc29ha1wtcmljZTsKK+SJryA8IGRyaWVkXC1iYW1ib287CivkiZUgPCBhXC1iYW1ib29cLWhhdDsKK+SJlCA8IGJhbWJvb1wtc2xpcHM7CivkiJ8gPCBicm9rZW5cLXNvdW5kOwor5Ie4IDwgYVwtYmFtYm9vXC1tYXQ7Civkh50gPCB0b1wtYnJlYWtcLW9mZjsKK+SGoiA8IHRvXC1wZW5ldHJhdGU7Civkhp8gPCBjb3Jlc3BvbmRpbmc7Civkho0gPCBjdXR0ZWRcLWNyb3BzOwor5LiN6LazIDwgaW5zdWZmaWNpZW50Owor5IWBIDwgdG9cLWh1c2tcLXJpY2U7CivmiZPlrZTlmaggPCBob2xlXC1wdW5jaGVyOwor5IOyIDwgYVwtZ3JlYXRcLXJvY2s7Civkg68gPCBzbWFsbFwtc3RvbmVzOwor5IOdIDwgcnVnZ2VkXC1yb2NrczsKK+SCkCA8IHNob3J0XC1zdHVwaWQ7CivkgacgPCB0b1wtb3Blblwtd2lkZTsKK+WutuaUvyA8IGhvdXNla2VlcGluZzsKK+S4jeiysiA8IGltbWVhc3VyYWJsZTsKK+SAgSA8IGFcLXNtYWxsXC1ib3dsOwor47+1IDwgc29mdFwtbGVhdGhlcjsKK+O/siA8IGFcLWZpZXJjZVwtZG9nOwor47+qIDwgc2tpblwtZGlzZWFzZTsKK+O/iiA8IHZlcnlcLXBhaW5mdWw7CivjvpQgPCBsb25nXC1pbGxuZXNzOwor5LuA6bq85pivIDwgd2hhdFwtaXNcLVwuXC5cLlw/Owor6LuN5LqL5o+05YqpIDwgbWlsaXRhcnlcLWFpZDsKK+WHuemAj+mPoSA8IGNvbmNhdmVcLWxlbnM7CivjvIsgPCB0aGVcLWN1Y3VtYmVyOwor5pys5pys5Li7576pIDwgYm9va1wtd29yc2hpcDsKK+O6liA8IGRvZ3NcLWJhcmtpbmc7Civjuo4gPCBmaWVyY2VcLWJlYXN0Owor5LqU6KeS5aSn5qiTIDwgdGhlXC1wZW50YWdvbjsKK+O4viA8IHRvXC1maWxsZWRcLXVwOwor47itIDwgdGhlXC1vcHBvc2l0ZTsKK+O3uSA8IGludGVuc2VcLWhlYXQ7CivjtpUgPCB0b1wtd2FzaFwtcmljZTsKK+S9nOaEmyA8IHRvXC1tYWtlXC1sb3ZlOwor47WKIDwgbW92aW5nXC1pbWFnZTsKK+O0lSA8IHRvXC1ib2lsXC1hd2F5Owor47OeIDwgZGVlcFwtYW5kXC1mYXI7Civjs5EgPCB0b1wtZmxvd1wtb3ZlcjsKK+OwtyA8IHJlc3VycmVjdGlvbjsKK+OvoCA8IGFcLWNyb3NzXC1iZWFtOwor46+cIDwgZGVjYXllZFwtd29vZDsKK+OuriA8IGFcLXdlbGxcLXN3ZWVwOwor466sIDwgYVwtZnJ1aXRcLXRyZWU7CivomIfoga8gPCBzb3ZpZXRcLXVuaW9uOwor46y1IDwgdGhlXC1zaGluYm9uZTsKK+aRqeilv+W+i+azlSA8IGxhd1wtb2ZcLW1vc2VzOwor46uSIDwgaGFuZHNcLWpvaW5lZDsKK+Wus+aAlSA8IHRvXC1iZVwtYWZyYWlkOwor46uDIDwgZmxhZ3NcLWZseWluZzsKK+OrgSA8IHRvXC1jdXRcLWFwYXJ0Owor5pma6ZaTIDwgZXZlbmluZ1wtdGltZTsKK+S6lOeZviA8IGZpdmVcLWh1bmRyZWQ7Civjp7QgPCB0b1wtcnViXC1oYW5kczsKK+OmjiA8IGNhbnRhbmtlcm91czsKK+OltSA8IHRvXC1kaXNob25vdXI7CivjpKcgPCBjb25jaWxpYXRpb247Civjo5IgPCBoYWlyXC1yYWlzaW5nOwor46ORIDwgZG91YmxlXC1pbWFnZTsKK+i/hemAn+iUk+W7tiA8IHJhcGlkXC1zcHJlYWQ7CivjopcgPCBhXC1oaWdoXC1ob3VzZTsKK+OhlCA8IG9pbGVkXC1jYWxpY287CivjoYUgPCBzdG9yYWdlXC1yb29tOwor6K2J6amXIDwgcmVhbFwtcmVzdWx0czsKK+OgviA8IGFcLWRpc2hcLWNsb3RoOwor5oeK5oKUIDwgZmVlbFwtcmVtb3JzZTsKK+OgkiA8IG1vdW50YWluXC10b3A7Civjn5AgPCBiaWdcLWFuZFwtaGlnaDsKK+OfhyA8IGFcLWxhbmRcLXNsaWRlOwor456iIDwgdG9cLWFycml2ZVwtYXQ7CivjnpsgPCByZWRcLXNsaXBwZXJzOwor456FIDwgbm90XC1zdHJhaWdodDsKK+WPpOe+hemmrCA8IGFuY2llbnRcLXJvbWU7CivjnJcgPCBjb3ZldG91c25lc3M7Civjm7wgPCB0b1wtaW50ZXJydXB0Owor5L+E5LitIDwgcnVzc2lhXC1jaGluYTsKK+ObpSA8IHRvXC1wcm9zdHJhdGU7Civjm4ogPCB0b1wtc3BlY3VsYXRlOwor5LqM5Y2B6JCsIDwgMjAwXC10aG91c2FuZDsKK+OYoiA8IGFcLXJvdW5kXC1jYXZlOwor45iNIDwgc291bmRcLW9mXC1yYXQ7CivororpgJ8gPCBzcGVlZFwtY2hhbmdlOwor45a3IDwgYmlyZFwtc2luZ2luZzsKK+W5tOi8leS6uiA8IHlvdW5nXC1wZW9wbGU7CivjlqAgPCBhblwtYXV4aWxpYXJ5Owor45WvIDwgc2xvd1wtdG9uZ3VlZDsKK+WuieW/gyA8IGZlZWxcLWF0XC1lYXNlOwor45WSIDwgYVwtbG9mdHlcLXBlYWs7CivjlKwgPCB0b1wtZXN0YWJsaXNoOwor45SmIDwgdG9cLWVuY291cmFnZTsKK+OUlSA8IHdpdGhcLXB1cnBvc2U7CivjlIMgPCB0b1wtY3V0XC1zaG9ydDsKK+OToyA8IHRvXC1zaW5rXC1pbnRvOwor5Lq65rCRIDwgXCh0aGVcKVwtcGVvcGxlOwor5bCH5L6GIDwgXCh0aGVcKVwtZnV0dXJlOwor45GqIDwgYVwtZ2VuZXJhdGlvbjsKK+ORlCA8IGFsbFwtdG9nZXRoZXI7CivjkLggPCB0b1wtb3duXC1tb25leTsKK+OQtCA8IHRvXC1kcmFnXC1kb3duOwor6aGM6IqxIDwgdGl0bGVcLWRlc2lnbjsKK+WPr+ingCA8IGNvbnNpZGVyYWJsZTsKK+S6uuasiiA8IGh1bWFuXC1yaWdodHM7CivkuZLkuZPnkIMgPCB0YWJsZVwtdGVubmlzOwor6ZqO57Sa5byPIDwgaGllcmFyY2hpY2FsOwor5Lul5pav5ouJ6KiYIDwgYm9va1wtb2ZcLWV6cmE7CivotpXkuIogPCBrZWVwXC11cFwtd2l0aDsKK+iBveiqqumBjiA8IHRvXC1oZWFyXC1zYWlkOwor6ZeM5bC+54KOIDwgYXBwZW5kaWNpdGlzOwor56e75rCRIDwgdG9cLWltbWlncmF0ZTsKK+S7iuaZqCA8IHRoaXNcLW1vcm5pbmc7Civlr4blj4sgPCBjbG9zZVwtZnJpZW5kOwor5Y2X6Z2eIDwgc291dGhcLWFmcmljYTsKK+S4jeespiA8IGluY29uc2lzdGVudDsKK+mWi+aUvuW8j+e2sui3ryA8IG9wZW5cLW5ldHdvcms7CivkuLnnlLAgPCBwdWJpY1wtcmVnaW9uOwor5Y2K6Z+/IDwgaGFsZlwtdGhlXC1kYXk7CivkuLvnkrAgPCBwcmltYXJ5XC1yaW5nOwor5aSn5LiA5LqbIDwgYVwtYml0XC1iaWdnZXI7CivkvaDlgJEgPCB5b3VcLVwocGx1cmFsXCk7CivkuIDnm7QgPCBjb250aW51b3VzbHk7CivnlJ/nianmiLAgPCBnZXJtXC13YXJmYXJlOwor5LiN55+l5omA5o6qIDwgYmVcLWF0XC1hXC1sb3NzOwor5pqX566XIDwgcGxvdFwtYWdhaW5zdDsKK+W7uuioreaApyA8IGNvbnN0cnVjdGl2ZTsKK+S6ruW6piA8IGlsbHVtaW5hdGlvbjsKK+WPg+iAgyA8IGNvbnN1bHRhdGlvbjsKK+WWieWhnumfsyA8IGdsb3R0YWxcLXN0b3A7Civlo6/pupcgPCBtYWduaWZpY2VuY2U7Civpu6jmlL8gPCBwYXJ0eVwtcG9saWN5Owor5qqU5qGI5pyN5YuZIDwgZmlsZVwtc2Vydm9jZTsKK+iZkOW+hSA8IG1pc3RyZWF0bWVudDsKK+aEn+aBqSA8IHRoYW5rc2dpdmluZzsKK+Wkp+mDveacgyA8IG1ldHJvcG9saXRhbjsKK+e9sOeQgyA8IHBlbmFsdHlcLXNob3Q7Civosrvln44gPCBwaGlsYWRlbHBoaWE7CivmnIDkvY7pu54gPCBsb3dlc3RcLXBvaW50Owor5rK555WrIDwgb2lsXC1wYWludGluZzsKK+e+jua0siA8IHRoZVwtYW1lcmljYXM7Civosqflm7AgPCBpbXBvdmVyaXNoZWQ7CivpmY3okL3lnLDpu54gPCBsYW5kaW5nXC1zaXRlOwor5Z+6552j5pWZIDwgY2hyaXN0aWFuaXR5Owor5aSn6YePIDwgZ3JlYXRcLWFtb3VudDsKK+mggueUqCA8IHRvXC1iZVwtb2ZcLXVzZTsKK+WuieecoOmFriA8IG1ldGhhcXVhbG9uZTsKK+aal+eBmCA8IGhpZGRlblwtc2hvYWw7Civol6XmlrkgPCBwcmVzY3JpcHRpb247CivoqabpqZfmgKcgPCBleHBlcmltZW50YWw7CivkuLvmjIEgPCBwcmVzaWRlXC1vdmVyOwor6YqA5bmVIDwgbW92aWVcLXNjcmVlbjsKK+iAgeWutiA8IG5hdGl2ZVwtcGxhY2U7Civmmpfmva4gPCB1bmRlcmN1cnJlbnQ7Civosrflg7kgPCBidXlpbmdcLXByaWNlOwor5aSa6YKKIDwgbXVsdGlsYXRlcmFsOwor54++5LujIDwgbW9kZXJuXC10aW1lczsKK+S7luS6uiA8IG90aGVyXC1wZXJzb247CivkuYvlvowgPCBhZnRlclwod2FyZHNcKTsKK+aFo+S+iyA8IGNvbnZlbnRpb25hbDsKK+S4puaOkiA8IHNpZGVcLWJ5XC1zaWRlOwor6ICV5ZywIDwgYXJpYWJsZVwtbGFuZDsKK+iytOaXj+WMliA8IGFyaXN0b2NyYXRpYzsKK+a1tOWgtCA8IGJhdGhpbmdcLXNwb3Q7CivkupTnmb7okKwgPCBmaXZlXC1taWxsaW9uOwor6JOL6I+cIDwgbGVhZlwtbXVzdGFyZDsKK+WGsOa0suefsyA8IGljZWxhbmRcLXNwYXI7CivmoLjou43lgpkgPCBudWNsZWFyXC1hcm1zOwor5LiN5ouYIDwgbm90XC1zdGlja1wtdG87CivkuInljYHkupTlhIQgPCAzXC1cLjVcLWJpbGxpb247Civpnq3noLIgPCBmaXJlY3JhY2tlcnM7CivkuozljYHlha3mrbIgPCAyNlwteWVhcnNcLW9sZDsKK+aEn+WLlSA8IHRvXC1tb3ZlXC1cKHNiXCk7CivmhI/lkbMgPCBzaWduaWZpY2FuY2U7CivpgJ/oqJjlk6EgPCBzdGVub2dyYXBoZXI7Civnmb3msLTms6UgPCB3aGl0ZVwtY2VtZW50Owor5LiN5oSnIDwgYmVcLXdvcnRoeVwtb2Y7CivpnbbntJkgPCB0YXJnZXRcLXNoZWV0Owor5pW45pOa57ay57WhIDwgZGF0YVwtbmV0d29yazsKK+m+kOeEtuWkp+eJqSA8IGh1Z2VcLW1vbnN0ZXI7CivosaHogbLoqZ4gPCBvbm9tYXRvcG9laWE7CivmhIjliqAgPCBhbGxcLXRoZVwtbW9yZTsKK+mBoOmboiA8IHJlbW92ZWRcLWZyb207CivlkozlloQgPCBnb29kXC1uYXR1cmVkOwor6KqN6K2JIDwgYXV0aGVudGljYXRlOwor5Yio6b2SIDwgZ2Vhclwtc2hhcGluZzsKK+azqOaEjyA8IHRha2VcLW5vdGVcLW9mOwor6aKo5ZGzIDwgbG9jYWxcLWZsYXZvcjsKK+e5oeiKsSA8IHRvXC1lbWJyb2lkZXI7CivmmpfmjqIgPCBzZWNyZXRcLWFnZW50Owor5pq05oCSIDwgdmlvbGVudFwtcmFnZTsKK+S4jeWuuSA8IG5vdFwtdG9sZXJhdGU7CivkuI3lrpwgPCBub3RcLXN1aXRhYmxlOwor54qv5q+SIDwgaWxsZWdhbFwtZHJ1ZzsKK+S4lueVjOefpeWQjSA8IHdvcmxkXC1mYW1vdXM7CivluYDmoLzlvI8gPCBmcmFtZVwtZm9ybWF0Owor5aSn6Ie0IDwgbW9yZVwtb3JcLWxlc3M7CivkuI3lpoIgPCBub3RcLWVxdWFsXC10bzsKK+W+l+elqCA8IHZvdGVcLWdldHRpbmc7CivmtL7liKUgPCBkZW5vbWluYXRpb247Civnt5rou7ggPCB0aHJlYWRcLXNwb29sOwor5pyJ5YipIDwgYWR2YW50YWdlb3VzOwor6KGb55Sf57SZIDwgdG9pbGV0XC1wYXBlcjsKK+iogumWsSA8IHN1YnNjcmlwdGlvbjsKK+aBouW+qSA8IHRvXC1yZWluc3RhdGU7CivpgJnpoIUgPCB0aGlzXC1cKHRoaW5nXCk7Civlv6vpgJ/nmbzlsZUgPCByYXBpZFwtZ3Jvd3RoOwor5aSa56iu6Kqe6KiAIDwgbXVsdGlsaW5ndWFsOwor5Y+v5oOcIDwgaXRcLWlzXC1hXC1waXR5Owor55W25pmC55qEIDwgb2ZcLXRoYXRcLXRpbWU7CivlqZrlpJYgPCBleHRyYW1hcml0YWw7CivkuI3llq4gPCBub3RcLXRoZVwtb25seTsKK+WuieWFqOWVj+mhjCA8IHNhZmV0eVwtaXNzdWU7CivkuYvkuIAgPCBvbmVcLW9mXC1cKHN0aFwpOwor5aKD6YGHIDwgY2lyY3Vtc3RhbmNlOwor6YeO5b+DIDwgd2lsZFwtc2NoZW1lczsKK+WNu+atpSA8IHRvXC1zdGVwXC1iYWNrOwor5Lit5L+EIDwgY2hpbmFcLXJ1c3NpYTsKK+WNseauhiA8IGdyYXZlXC1kYW5nZXI7CivkuK3kup4gPCBjZW50cmFsXC1hc2lhOwor6K6K5oCnIDwgZGVuYXR1cmF0aW9uOwor5Y6f5paZIDwgcmF3XC1tYXRlcmlhbDsKK+a2iOmYsuagkyA8IGZpcmVcLWh5ZHJhbnQ7CivkuI3liKkgPCB1bmZhdm91cmFibGU7CivpgI/mmI7luqYgPCB0cmFuc3BhcmVuY3k7CivniIbnmbwgPCB0b1wtYnJlYWtcLW91dDsKK+WkmuermSA8IG11bHRpc3RhdGlvbjsKK+awp+awoyA8IG94eWdlblwtXChnYXNcKTsKK+W/teaXpSA8IG1lbW9yaWFsXC1kYXk7CivlkITlnIsgPCBlYWNoXC1jb3VudHJ5Owor5LiN5L6/IDwgaW5jb252ZW5pZW50Owor5pmC5oWLIDwgXCh2ZXJiXClcLXRlbnNlOwor576F5YiXIDwgdG9cLXNwZWFkXC1vdXQ7CivkuIDlhIQgPCAxXC0wMFwtbWlsbGlvbjsKK+aatOWLlSA8IGluc3VycmVjdGlvbjsKK+mdtuapnyA8IHRhcmdldFwtZHJvbmU7CivpgYvooYwgPCBiZVwtaW5cLW1vdGlvbjsKK+e3qOiIniA8IGNob3Jlb2dyYXBoeTsKK+S6jOWNgeS4gyA8IHR3ZW50eVwtc2V2ZW47Civku6UgPCBieVwtbWVhbnNcLW9mOwor6L6yIDwgYWdyaWN1bHR1cmU7CivlvoQgPCBuYXJyb3dcLXBhdGg7Civlh6AgPCBzbWFsbFwtdGFibGU7Civkvr8gPCBjb252ZW5pZW5jZTsKK+eUtSA8IGVsZWN0cmljaXR5Owor55m+IDwgb25lXC1odW5kcmVkOwor6LejIDwgYmFyZVwtZm9vdGVkOwor6LSFIDwgdW5uZWNlc3Nhcnk7Civlip8gPCBhY2hpZXZlbWVudDsKK+axnyA8IGxhcmdlXC1yaXZlcjsKK+azqCA8IGNvbmNlbnRyYXRlOwor54mnIDwgdGVuZFwtY2F0dGxlOwor5amaIDwgZ2V0XC1tYXJyaWVkOwor5YiKIDwgcHVibGljYXRpb247Civnhp8gPCB3ZWxsXC1jb29rZWQ7Civppa0gPCBjb29rZWRcLXJpY2U7CivlpaIgPCBleHRyYXZhZ2FudDsKK+afpSA8IGludmVzdGlnYXRlOwor56ugIDwgY29tcG9zaXRpb247CivmjIkgPCBwdXRcLWhhbmRcLW9uOwor6J2gIDwga2luZFwtb2ZcLWJhdDsKK+idlSA8IG5pYmJsZVwtYXdheTsKK+WbsCA8IHRvXC1zdXJyb3VuZDsKK+mZqSA8IG5hcnJvd1wtcGFzczsKK+e7gyA8IHRvXC1wcmFjdGljZTsKK+a6ryA8IGdvXC11cHN0cmVhbTsKK+a4iSA8IGZvcmRcLXN0cmVhbTsKK+i0pSA8IGJlXC1kZWZlYXRlZDsKK+e6tyA8IGluXC1kaXNvcmRlcjsKK+e8uiA8IGJlXC1zaG9ydFwtb2Y7Civpga0gPCBjb21lXC1hY3Jvc3M7CivmiLQgPCB3ZWFyXC1vblwtdG9wOwor5YukIDwgaW5kdXN0cmlvdXM7Civpq4QgPCBib25lXC1tYXJyb3c7CivlirkgPCBlZmZpY2FjaW91czsKK+iyjCA8IGNvdW50ZW5hbmNlOwor57mBIDwgY29tcGxpY2F0ZWQ7Civmn7MgPCB3aWxsb3dcLXRyZWU7Civlh4QgPCBiaXR0ZXJcLWNvbGQ7CivpnJ4gPCByb3N5XC1jbG91ZHM7Civpo7QgPCBzd2VldFwtbWVhdHM7CivogaogPCBpbnRlbGxpZ2VudDsKK+WApiA8IGJlXC10aXJlZFwtb2Y7CivmkZQgPCBmYWxsXC1ncm91bmQ7CivphokgPCBpbnRveGljYXRlZDsKK+a2myA8IGxhcmdlXC13YXZlczsKK+mUhSA8IGNvb2tpbmdcLXBvdDsKK+S7lCA8IHNtYWxsXC10aGluZzsKK+acgyA8IHRvXC1hc3NlbWJsZTsKK+aLhiA8IHRvXC1icmVha1wtdXA7Civnv6AgPCBjb2xvclwtZ3JlZW47CivmmZUgPCBoYWxvXC1pblwtc2t5Owor6L6oIDwgZGlzdGluZ3Vpc2g7CivokZsgPCBlZGlibGVcLWJlYW47Civovb8gPCBzZWRhblwtY2hhaXI7CivmlKsgPCBzbmF0Y2hcLWF3YXk7CivpjZsgPCBmb3JnZVwtbWV0YWw7CivljpUgPCBtaW5nbGVcLXdpdGg7Civnq78gPCBiYW1ib29cLXBvbGU7CivliLggPCBjZXJ0aWZpY2F0ZTsKK+epiSA8IHlvdW5nXC1ncmFpbjsKK+mpsyA8IHZhcmljb2xvcmVkOwor5oaUIDwgYmVcLXdvcm5cLW91dDsKK+eyniA8IGdyb3VuZFwtcmljZTsKK+mBgiA8IGNvbXBseVwtd2l0aDsKK+matiA8IHN1YnNlcnZpZW50Owor57y4IDwgZWFydGhlblwtanVnOwor6IKiIDwgaHVtYW5cLWxpbWJzOwor5bC0IDwgZW1iYXJyYXNzZWQ7CivlkZAgPCByYWlzZVwtdm9pY2U7CivpopYgPCByaWNlXC10YXNzZWw7CivnoKUgPCBhXC13aGV0c3RvbmU7CivlrZUgPCBiZVwtcHJlZ25hbnQ7Civpkp4gPCBwYXBlclwtbW9uZXk7CivnkKIgPCBwb2xpc2hcLWphZGU7Civnu70gPCByaXBwZWRcLXNlYW07CivlpaAgPCBwYXlcLXJlc3BlY3Q7CivmvpwgPCBvdmVyZmxvd2luZzsKK+aDlSA8IGJlXC1jYXV0aW91czsKK+i2tCA8IGx5aW5nXC1wcm9uZTsKK+maiyA8IHN1aVwtZHluYXN0eTsKK+eehCA8IHRha2VcLWFpbVwtYXQ7CivnpZ8gPCBldmlsXC1zcGlyaXQ7Civll5QgPCBiZVwtYW5ncnlcLWF0Owor5aWVIDwgaW5cLXNlcXVlbmNlOwor5qa0IDwgcG9tZWdyYW5hdGU7Civmo5ggPCBqdWp1YmVcLXRyZWU7Civls5kgPCBzdGFuZFwtZXJlY3Q7CivnoIwgPCBzdG9uZVwtc3RlcHM7Civmp5AgPCBsb2N1c3RcLXRyZWU7Civps54gPCBmaXNoXC1zY2FsZXM7Civngr0gPCBidXJuaW5nXC1ob3Q7Civov4IgPCBkb2N0cmluYWlyZTsKK+e8qiA8IHdpbmRcLWFyb3VuZDsKK+WHiyA8IGJlXC13aXRoZXJlZDsKK+e8pCA8IGZsb3VyaXNoaW5nOwor6ZuzIDwgdGh1bmRlcmNsYXA7CivpqbggPCBleHRyYVwtaG9yc2U7Civll7cgPCBsb3VkXC1jbGFtb3I7CivngpYgPCBzdGV3XC1zbG93bHk7CivosI8gPCByZW1vbnN0cmF0ZTsKK+evhiA8IHNlYWxcLXNjcmlwdDsKK+WupiA8IG9mZmljaWFsZG9tOwor55OuIDwgZWFydGhlblwtamFyOwor5pyVIDwgcHJvbm91blwtJydpJyc7CivpmJEgPCBkb29yXC1zY3JlZW47CivljaQgPCBzYWxpbmVcLXNvaWw7CivllI8gPCB3ZWVwXC1vclwtc29iOwor5rGpIDwgcnVuXC1zd2lmdGx5Owor5qaVIDwgYmFueWFuXC10cmVlOwor6ZewIDwgaW50ZXJjYWxhcnk7CivmmIogPCBzdW1tZXJcLXRpbWU7CivnjrcgPCBmbGF3XC1pblwtZ2VtOwor6ZiZIDwgd2F0Y2hcLXRvd2VyOwor5rOMIDwgdG9cLXNlZXBcLW91dDsKK+eDvSA8IHNpZ25hbFwtZmlyZTsKK+WttSA8IHNpdFwtb25cLWVnZ3M7CivmpK0gPCBvdmFsXC1zaGFwZWQ7Civnl4kgPCBjb252dWxzaW9uczsKK+WMnSA8IGZ1bGxcLWNpcmNsZTsKK+mlqiA8IGNvb2tlZFwtZm9vZDsKK+W2mSA8IHByZWNpcGl0b3VzOwor6aKnIDwgY2hlZWtcLWJvbmVzOwor6ZWXIDwgYm9yaW5nXC10b29sOwor5o+2IDwgbWFrZVwtZnVuXC1vZjsKK+eCtyA8IGNhbmRsZVwtd2ljazsKK+i0siA8IGZvcmdlXC1haGVhZDsKK+iasSA8IGdyYXNzaG9wcGVyOwor55eoIDwgY29uc3VtcHRpb247Civmv4IgPCBhXC13YXRlcmZhbGw7CivmsZAgPCBuaWdodFwtdGlkZXM7CivnraAgPCBiYW1ib29cLXNraW47CivmsKQgPCBoYW5naW5nXC1mb2c7Civnl5QgPCBoZW1vcnJob2lkczsKK+i2vyA8IHRvXC10cmVhZFwtb247Civop54gPCB3aW5lXC12ZXNzZWw7CivmjLkgPCB0b1wtYmFsZVwtb3V0Owor6IaRIDwgdGhlXC1rbmVlY2FwOwor5ZSzIDwgY3J5XC1vZlwtYmlyZDsKK+ekhSA8IHN0b25lXC1ibG9jazsKK+eulCA8IHJlZWRcLXNjcmVlbjsKK+ixuCA8IHJhZGljYWxcLTE1MzsKK+eDgyA8IGh5ZHJvY2FyYm9uOwor56CtIDwgc3RvbmVcLXByb2JlOwor5r6NIDwgdGltZWx5XC1yYWluOwor6b6LIDwgdG9vdGhcLWRlY2F5Owor57yxIDwgYXR0YWNoZWRcLXRvOwor5aWCIDwgYmVcLW51bWVyb3VzOwor6bupIDwgdG9cLWRpc2hvbm9yOwor5aOFIDwgdG9cLW9ic3RydWN0Owor5r62IDwgc3RpbGxcLXdhdGVyOwor6aSNIDwgYmVcLXNhdGlhdGVkOwor5p6lIDwgdHlwZVwtb2ZcLW9hazsKK+ahlSA8IHRhbGxvd1wtdHJlZTsKK+myoiA8IHNpbHZlclwtY2FycDsKK+i2sSA8IGdvXC1pblwtaHVycnk7CivlpqsgPCBmYW1pbHlcLW5hbWU7Civmmr4gPCBtb3JuaW5nXC1zdW47CivojaYgPCBicmluZGxlZFwtb3g7CivpgpsgPCBpblwtZGlzdHJlc3M7CivmiKIgPCB0b1wtcHV0XC1hd2F5Owor5qanIDwgdHlwZVwtb2ZcLXlldzsKK+WghyA8IHllbGxvd1wtbG9hbTsKK+WKrCA8IGJlXC1kaWxpZ2VudDsKK+mtiCA8IG1pc2NoZXZpb3VzOwor6Y2qIDwgYW5cLWlyb25cLXBhbjsKK+icoyA8IGR1bmdcLWJlZXRsZTsKK+eXpiA8IFwoZmxhdFwpXC1tb2xlOwor5oisIDwgZXh0ZXJtaW5hdGU7Civll4kgPCBiaXJkJydzXC1jcm9wOwor5YSLIDwgYVwtc21hbGxcLWphcjsKK+ianCA8IHBsYW50XC1sb3VzZTsKK+eynCA8IHNlbGxcLWdyYWluczsKK+aUriA8IHRvXC1mZW5kXC1vZmY7Civoi44gPCBjaGluYVwtZ3Jhc3M7CivlnakgPCBlYXJ0aGVud2FyZTsKK+amiSA8IHR5cGVcLW9mXC1lbG07CivnjqIgPCBwb3JwaHlyaXRlczsKK+e7gSA8IHRvXC1jb250cmFjdDsKK+a9hiA8IHRpbnlcLXN0cmVhbTsKK+mruSA8IHJlZFwtbGFjcXVlcjsKK+inliA8IHRvXC1sb25nXC1mb3I7CivonrUgPCBhXC1jaHJ5c2FsaXM7CivmnaogPCB0aXBcLW9mXC10d2lnOwor5bmCIDwgY292ZXJcLWNsb3RoOwor56GXIDwgYmFycmVuXC1sYW5kOwor6ISeIDwgbWluY2VkXC1tZWF0Owor6L21IDwgZW5kXC1vZlwtYXhsZTsKK+allyA8IGJhclwtb2ZcLWRvb3I7CivmoYQgPCBhXC1jb2lyXC1wYWxtOwor5aCgIDwgYmF0dGxlbWVudHM7Civkv5wgPCB0b1wtdHJ1c3RcLXRvOwor5aOT57iuIDwgdG9cLWNvbXByZXNzOwor5aSn6KaP5qihIDwgbGFyZ2VcLXNjYWxlOwor5bqm6YeP6KGhIDwgbWVhc3VyZW1lbnQ7CivoiKrnqbrooZMgPCBhZXJvbmF1dGljczsKK+ioquiPryA8IHZpc2l0XC1jaGluYTsKK+iqjeefpSA8IGFja25vd2xlZGdlOwor5Y+r5ZaKIDwgZXhjbGFtYXRpb247CivoqKrllY/ogIUgPCBpbnRlcnZpZXdlcjsKK+ayiemHjeaJk+aTiiA8IHRvXC1oaXRcLWhhcmQ7CivpgKPoqZ4gPCBjb25qdW5jdGlvbjsKK+Wlveaci+WPiyA8IGdvb2RcLWZyaWVuZDsKK+Wbm+mdoumrlCA8IHRldHJhaGVkcm9uOwor6Ieq54S26ICM54S2IDwgaW52b2x1bnRhcnk7CivlvIrnq68gPCBtYWxwcmFjdGljZTsKK+mdnuaguCA8IG5vblwtbnVjbGVhcjsKK+aLlOmHmOmMmCA8IGNsYXdcLWhhbW1lcjsKK+eUs+WRveiomCA8IGRldXRlcm9ub215Owor5pS256mrIDwgYWNxdWlzaXRpb247CivmiY3lpJbmtYEgPCBicmFpblwtZHJhaW47CivmsJHml48gPCBuYXRpb25hbGl0eTsKK+S4jei0iuS4gOipniA8IGtlZXBcLXNpbGVudDsKK+aal+S6lSA8IGJsaW5kXC1zaGFmdDsKK+aal+S4rSA8IGluXC10aGVcLWRhcms7Civnn5rnm64gPCB0b1wtZm9jdXNcLW9uOwor5biD6Z6LIDwgY2xvdGhcLXNob2VzOwor5Lq66auU5Zmo5a6YIDwgaHVtYW5cLW9yZ2FuOwor5Z+L6aCtIDwgc3RlYW1lZFwtYnVuOwor5Ym15L2c5YqbIDwgb3JpZ2luYWxpdHk7Civnmb3nn67mmJ8gPCB3aGl0ZVwtZHdhcmY7CivliKTomZUgPCB0b1wtc2VudGFuY2U7CivmsJHml4/kuLvnvqkgPCBuYXRpb25hbGlzbTsKK+WIu+iLpiA8IGhhcmR3b3JraW5nOwor5qiZ6bueIDwgcHVuY3R1YXRpb247Civnmb3purUgPCB3aGVhdFwtZmxvdXI7CivlhpLpmqogPCB0YWtlXC1hXC1yaXNrOwor55m96ba0IDwgd2hpdGVcLWNyYW5lOwor5LiN6LSK5oiQIDwgZGlzYXBwcm92YWw7CivlvoDmmJQgPCBpblwtdGhlXC1wYXN0Owor5Y2K5pyI5YiKIDwgc2VtaW1vbnRobHk7CivpgornloYgPCBib3JkZXJcLWFyZWE7CivorpPkvY0gPCB0b1wtYWJkaWNhdGU7CivmgKrlg7sgPCBwZWN1bGlhcml0eTsKK+W+geaUtiA8IGxldnlcLVwoZmluZVwpOwor5q+N5p2/IDwgbW90aGVyYm9hcmQ7CivpnIDmsYIgPCByZXF1aXJlbWVudDsKK+Wkp+alrSA8IGdyZWF0XC1jYXVzZTsKK+aXuuWtoyA8IGJ1c3lcLXNlYXNvbjsKK+WCmeeUqOeSsCA8IGJhY2t1cFwtcmluZzsKK+W/heWumiA8IGJlXC1ib3VuZFwtdG87CivljYrlubQgPCBoYWxmXC1hXC15ZWFyOwor6Kqy5qGMIDwgc2Nob29sXC1kZXNrOwor5ru0562U6IGyIDwgdGlja1wtXCh0b2NrXCk7CivplpPpmpQgPCBjb21wYXJ0bWVudDsKK+mBsueWkSA8IHRvXC1oZXNpdGF0ZTsKK+mdiOaEnyA8IGluc3BpcmF0aW9uOwor57K+5a2Q5a+G5bqmIDwgc3Blcm1cLWNvdW50Owor5rqr5bqm6KiIIDwgdGhlcm1vZ3JhcGg7CivpgbflsYXnp7vmsJEgPCBpbW1pZ3JhdGlvbjsKK+S4jemHjeimgSA8IHVuaW1wb3J0YW50Owor6YeO55Sf5YuV54mpIDwgd2lsZFwtYW5pbWFsOwor6Kqq5pyNIDwgdG9cLXBlcnN1YWRlOwor5Yi257SEIDwgdG9cLXJlc3RyaWN0Owor5pyJ5b2x6Z+/IDwgaW5mbHVlbnRpYWw7Civpno/lm7ogPCBjb25zb2xpZGF0ZTsKK+eZvOmbu+W7oCA8IHBvd2VyXC1wbGFudDsKK+iBluiqleiAgeS6uiA8IHNhbnRhXC1jbGF1czsKK+WMheaLrCA8IHRvXC1jb21wcmlzZTsKK+WmpeWWhCA8IGFwcHJvcHJpYXRlOwor6L6v6Ki8IDwgZGlhbGVjdGljYWw7CivmtarmvKvkuLvnvqkgPCByb21hbnRpY2lzbTsKK+afj+ael+eJhiA8IGJlcmxpblwtd2FsbDsKK+eAiem5vSA8IGVwc29tXC1zYWx0czsKK+S4jeWPr+efpeirliA8IGFnbm9zdGljaXNtOwor5LiN5YiH5a+m6ZqbIDwgdW5yZWFsaXN0aWM7CivlhbjlnovnlKjpgJQgPCB0eXBpY2FsXC11c2U7Civlr4zmlrzmg7Plg48gPCBpbWFnaW5hdGl2ZTsKK+W3oemCj+iJhyA8IHBhdHJvbFwtYm9hdDsKK+S4jeWQq+eziiA8IHVuYW1iaWd1b3VzOwor5pys5Zyf5YyWIDwgdG9cLWxvY2FsaXplOwor5Y2z5Yi7IDwgaW1tZWRpYXRlbHk7Civlronlhajnh4ggPCBzYWZldHlcLWxhbXA7Civli5jmjqIgPCBleHBsb3JhdGlvbjsKK+acieaEj+aAnSA8IGludGVyZXN0aW5nOwor5Y2a5Y+WIDwgdHJ5XC10b1wtZ2FpbjsKK+eql+eOu+eSgyA8IHdpbmRvd1wtcGFuZTsKK+aUvuajhCA8IHRvXC1yZW5vdW5jZTsKK+WGsOibiyA8IGZyb3plblwtZWdnczsKK+mDteWxgCA8IHBvc3RcLW9mZmljZTsKK+mbmeaVuCA8IGV2ZW5cLW51bWJlcjsKK+iSkOWwiyA8IHRvXC1sb29rXC1mb3I7Civnmb3pgZMgPCBtb29uJydzXC1wYXRoOwor5YuV5oWLIDwgZGV2ZWxvcG1lbnQ7CivmsLjkuYUgPCBldmVybGFzdGluZzsKK+eZvOmAgSA8IHRvXC10cmFuc21pdDsKK+mFjeWCmSA8IHRvXC1hbGxvY2F0ZTsKK+aWsOilv+iYrSA8IG5ld1wtemVhbGFuZDsKK+avlOWmgiA8IGZvclwtZXhhbXBsZTsKK+Wci+S6i+ioquWVjyA8IHN0YXRlXC12aXNpdDsKK+WFi+ijoeWnhuael+WuriA8IHRoZVwta3JlbWxpbjsKK+WkmuWxsSA8IG1vdW50YWlub3VzOwor5Y2K5Y2K5ouJ5ouJIDwgaW5jb21wbGV0ZWQ7Civpm7vlt6UgPCBlbGVjdHJpY2lhbjsKK+e0heiJsiA8IHJlZFwtXChjb2xvclwpOwor5o+P6L+wIDwgdG9cLWRlc2NyaWJlOwor5Y2B5YSEIDwgb25lXC1iaWxsaW9uOwor5LiN5Y+v5YiG6ZuiIDwgaW5zZXBhcmFibGU7CivlhbXon7sgPCBzb2xkaWVyXC1hbnQ7Civmr4Dlo54gPCBkZXN0cnVjdGlvbjsKK+WJiua4myA8IHRvXC1jdXRcLWRvd247Civml6XkuK0gPCBqYXBhblwtY2hpbmE7Civpm7vnupzoqr/liLbop6Poqr/lmaggPCBjYWJsZVwtbW9kZW07CivpmqjmmYIgPCBhdFwtYW55XC10aW1lOwor5LiA5Y2D6Zu25LqU5Y2B5YSEIDwgMTA1XC1iaWxsaW9uOwor6ZW36KuHIDwgYVwtbG9uZ1wtdGFsazsKK+ijnOmBuCA8IGJ5XC1lbGVjdGlvbjsKK+aVl+ihgOeXhyA8IHNlcHRpY2FlbWlhOwor54Sh55Si6ZqO57SaIDwgcHJvbGV0YXJpYXQ7CivokL3lvowgPCBmYWxsXC1iZWhpbmQ7CivliIbkvYjlvI8gPCBkaXN0cnVidXRlZDsKK+WkseWOu+aEj+itmCA8IHVuY29uc2Npb3VzOwor5o6o6YGyIDwgdG9cLXBvc3Rwb25lOwor55m+6JCs5a+M57+BIDwgbWlsbGlvbmFpcmU7CivosrTml4/npL7mnIMgPCBhcmlzdG9jcmFjeTsKK+aTjeazlSA8IGRyaWxsXC1ydWxlczsKK+i7jemaiiA8IGFybXlcLXRyb29wczsKK+aoueiRiSA8IHRyZWVcLWxlYXZlczsKK+WJm+aetiA8IHJpZ2lkXC1mcmFtZTsKK+irh+WIsCA8IHRvXC1yZWZlclwtdG87Civlho3ogIUgPCBmdXJ0aGVybW9yZTsKK+iqv+WItiA8IHRvXC1tb2R1bGF0ZTsKK+WfuuefsyA8IGNvcm5lcnN0b25lOwor5b6A5LqLIDwgcGFzdFwtZXZlbnRzOwor6bqAIDwgZmVtYWxlXC1kZWVyOwor5aSn5YqfIDwgZ3JlYXRcLW1lcml0Owor5pyJ5Lqb5Lq6IDwgc29tZVwtcGVvcGxlOwor6KOB6LuNIDwgZGlzYXJtYW1lbnQ7CivoqqHlkb0gPCBjb21tYW5kbWVudDsKK+m4jyA8IHRyb3BpY1wtYmlyZDsKK+WFp+iHoyA8IGNoYW1iZXJsYWluOwor5rOi5aSa6buO5ZCEIDwgcHVlcnRvXC1yaWNvOwor6bS6IDwgdGhlXC1wZWxpY2FuOwor56uL5rOV5qmf6ZecIDwgbGVnaXNsYXR1cmU7CivpsaAgPCBtaW5jZWRcLWZpc2g7CivprJkgPCBtYXR0ZWRcLWhhaXI7CivlnabolakgPCBtYWduYW5pbW91czsKK+S4jeWQkOawoyA8IHVuYXNwaXJhdGVkOwor5Li76KaB5Y6f5ZugIDwgbWFpblwtcmVhc29uOwor5aKe5by3IDwgdG9cLWluY3JlYXNlOwor6amUIDwgYmxhY2tcLWhvcnNlOwor6amHIDwgaGVhdnlcLWhvcnNlOwor5pyJ57aT6amXIDwgZXhwZXJpZW5jZWQ7CivpmZDmlrwgPCByZXN0cmljdFwtYXQ7CivplonntpMgPCBhbWVub3JyaG9lYTsKK+iqjeWHuiA8IHJlY29nbml0aW9uOwor5YWN6IG3IDwgZGVncmFkYXRpb247Civlt6XnqIsgPCBlbmdpbmVlcmluZzsKK+iomOW+lyA8IHRvXC1yZW1lbWJlcjsKK+aTuuW4gyA8IG9yZGVyXC1hYm91dDsKK+mgiyA8IHRvXC1jYXJlXC1mb3I7CivpgI/mmI4gPCB0cmFuc3BhcmVudDsKK+WKm+WcliA8IHRyeVwtaGFyZFwtdG87CivmnInnlJ/ku6XkvoYgPCBzaW5jZVwtYmlydGg7CivpnqsgPCBpbnRlcnJvZ2F0ZTsKK+iyneWKoOeIvua5liA8IGxha2VcLWJhaWthbDsKK+WFuOemriA8IGNlbGVicmF0aW9uOwor5YiR5pyfIDwgcHJpc29uXC10ZXJtOwor57K+57ChIDwgdG9cLXNpbXBsaWZ5Owor5ZKM5bmz5pyD6KuHIDwgcGVhY2VcLXRhbGtzOwor6Iqx6Iy2IDwgc2NlbnRlZFwtdGVhOwor5pWj5L2IIDwgZGlzc2VtaW5hdGU7CivnsL/oqJggPCBib29ra2VlcGluZzsKK+WkquW5s+a0i+mAsemCiiA8IHBhY2lmaWNcLXJpbTsKK+inuOaAkiA8IHByb3ZvY2F0aW9uOwor5pSq5ZKMIDwgdG9cLW1peFwtXCh1cFwpOwor6YCx5bm0IDwgYW5uaXZlcnNhcnk7CivntZXmnJsgPCBkZXNwZXJhdGlvbjsKK+aVl+S7lyA8IGxvc3RcLWJhdHRsZTsKK+S4jeiuiuWDueagvCA8IGZpeGVkXC1wcmljZTsKK+mQpiA8IGNhbGlmb3JuaXVtOwor57WQ5p2fIDwgdGVybWluYXRpb247CivnhKHmhI8gPCBpbmFkdmVydGFudDsKK+mPuyA8IHBob3NwaG9uaXVtOwor55S35pyL5Y+LIDwgbWFsZVwtZnJpZW5kOwor55u45q+UIDwgY29tcGFyZWRcLXRvOwor6KaG5rKSIDwgYW5uaWhpbGF0ZWQ7Civnmb3nmq7mm7ggPCB3aGl0ZVwtcGFwZXI7CivpjZAgPCBhXC1oZWFkc3RhbGw7CivnnInmoqIgPCB0aXBcLW9mXC1icm93Owor5YiH5o+bIDwgdG9cLWN1dFwtb3ZlcjsKK+e/u+itr+iAhSA8IGludGVycHJldGVyOwor5YWp55m+IDwgdHdvXC1odW5kcmVkOwor5aWz57m85om/5Lq6IDwgaW5oZXJpdHJlc3M7CivlgYfoqK3oqp7msKMgPCBzdWJqdW5jdGl2ZTsKK+WcsOW/g+WQuOWKmyA8IGdyYXZpdGF0aW9uOwor6Ya5IDwgc3Ryb25nXC13aW5lOwor6YaTIDwgc2FsdGVkXC1tZWF0Owor5LiN5rOo5oSPIDwgdGhvdWdodGxlc3M7CivoqZXlg7kgPCB0b1wtZXZhbHVhdGU7CivphY8gPCBtaWxsZXRcLXdpbmU7Civkv53kuI3kvY8gPCBtb3N0XC1saWtlbHk7CivltKnoo4IgPCBidXJzdFwtYXBhcnQ7Civlt7Tlk4jppqwgPCB0aGVcLWJhaGFtYXM7Civmv4DlhYnkuozmpbXnrqEgPCBsYXNlclwtZGlvZGU7CivnmbzpgIHlmaggPCB0cmFuc21pdHRlcjsKK+WKoOS7pSA8IGluXC1hZGRpdGlvbjsKK+aMiemIlSA8IHB1c2hcLWJ1dHRvbjsKK+i/iiA8IHRvXC1nb1wtcm91bmQ7CivloLHmh4kgPCByZXRyaWJ1dGlvbjsKK+W5vuW5tCA8IGFcLWZld1wteWVhcnM7Civnm7zmnJsgPCB0b1wtaG9wZVwtZm9yOwor6ZqK5ZOhIDwgdGVhbVwtbWVtYmVyOwor6KGM6LmkIDwgd2hlcmVhYm91dHM7CivmlK/ku5ggPCBwYXlcLVwobW9uZXlcKTsKK+esrOS4gOeroCA8IGNoYXB0ZXJcLW9uZTsKK+mBi+iyqOmmrOi7iiA8IGNhcmdvXC13YWdvbjsKK+ihqOiqniA8IHByZWRpY2F0aXZlOwor6LymIDwgYVwtaGFuZFwtY2FydDsKK+iou+WGiiA8IHRvXC1yZWdpc3RlcjsKK+mZhOWxrCA8IHN1Ym9yZGluYXRlOwor6YCj55Kw5ZyWIDwgY29taWNcLXN0cmlwOwor5YG96LuNIDwgcHVwcGV0XC1hcm15Owor5YSq56eAIDwgb3V0c3RhbmRpbmc7CivotJcgPCBjb3VudGVyZmVpdDsKK+iymCA8IHRoZVwtcGFudGhlcjsKK+mrlOiyvCA8IGNvbnNpZGVyYXRlOwor6LGmIDwgYVwtd2lsZFwtYm9hcjsKK+ixmCA8IGFcLXNtYWxsXC1waWc7Civln7fmlL8gPCBiZVwtaW5cLXBvd2VyOwor5Zyo5Zyw5LiLIDwgdW5kZXJncm91bmQ7CivnrKzkuInkuJbnlYwgPCB0aGlyZFwtd29ybGQ7CivprZrnq78gPCBmaXNoaW5nXC1yb2Q7CivnhKHpl5znt4ropoEgPCBpbmRpZmZlcmVudDsKK+W4jOacmyA8IHJvXC13aXNoXC1mb3I7CivntITmnIMgPCBhcHBvaW50bWVudDsKK+mrlOiqjSA8IHJlYWxpemF0aW9uOwor5bm45aW9IDwgZm9ydHVuYXRlbHk7CivmjojnsokgPCBwb2xsaW5hdGlvbjsKK+insSA8IHRhcnRhclwtaG9ybjsKK+iktSA8IGJyaWRhbFwtdmVpbDsKK+ijveeJhyA8IG1vdmllbWFraW5nOwor5YKz55yf5qmfIDwgZmF4XC1tYWNoaW5lOwor5qmf5pyDIDwgb3Bwb3J0dW5pdHk7Civpl5zmirwgPCBwdXRcLWluXC1qYWlsOwor5aSn5L6/5Lm+54elIDwgY29uc3RpcGF0ZWQ7Civoo53nlLLou4ogPCBhcm1vcmVkXC1jYXI7CivooIsgPCBjYXRlcnBpbGxhcjsKK+S4jeWBj+S4jeWAmiA8IGV2ZW5cLWhhbmRlZDsKK+ifmyA8IGFcLWxhbmRcLWNyYWI7CivngYzmuokgPCB0b1wtaXJyaWdhdGU7CivpgJrlkYogPCB0b1wtYW5ub3VuY2U7CivonZsgPCB0aGVcLXNvd1wtYnVnOwor6J2NIDwgYVwtY2VudGlwZWRlOwor6amV6Zm9IDwgYmxhemluZ1wtc3VuOwor5YmN5Lu7IDwgcHJlZGVjZXNzb3I7Civol5ogPCB3YXRlclwtcGxhbnQ7CivliIbmlaPms6jmhI8gPCB0b1wtZGlzdHJhY3Q7Civol4QgPCBlZGlibGVcLWZlcm47Civou5/nop8gPCBmbG9wcHlcLWRpc2s7Civok6ogPCBwYXBlclwtcGxhbnQ7Civok4IgPCBsdWNreVwtcGxhY2U7Civokq0gPCB0b1wtY3V0Z3Jhc3M7CivokJAgPCBsdWNreVwtcGxhbnQ7Civoj6IgPCB0b1wtaW5jdWJhdGU7CivnjbLnm4rogIUgPCBiZW5lZmljaWFyeTsKK+Wxj+mWgCA8IHNjcmVlblwtZG9vcjsKK+aLnOioqiA8IHBheVwtYVwtdmlzaXQ7CivljYrpgI/mmI4gPCB0cmFuc2x1Y2VudDsKK+iJlyA8IGJvd1wtb2ZcLWp1bms7CivpgIDlh7ogPCB0b1wtd2l0aGRyYXc7CivmjqHnhaQgPCBjb2FsXC1taW5pbmc7CivnrKzkuIDmtYEgPCBmaXJzdFwtY2xhc3M7CivlubPlh6EgPCBjb21tb25wbGFjZTsKK+isgOauuuahiCA8IG11cmRlclwtY2FzZTsKK+aLrOiZnyA8IHBhcmVudGhlc2lzOwor6IOUIDwgcm90dGVuXC1tZWF0Owor6IKIIDwgdG9cLWNvbW1lbmNlOwor6IGmIDwgdGhlXC1oZWFyaW5nOwor6ICRIDwgc3BlY2lhbGl6ZWQ7CivnvpYgPCBhXC1ibGFja1wtcmFtOwor542O5a246YeRIDwgc2Nob2xhcnNoaXA7CivnvbEgPCBmaXNoaW5nXC1uZXQ7Civmu7LpgI8gPCB0b1wtcGVybWVhdGU7CivnvaAgPCBhbmltYWxcLXRyYXA7CivnvZIgPCByYWRpY2FsXC0xMjI7Civlgbfogb0gPCB0b1wtZXZlc2Ryb3A7Civlh7rlhbUgPCBzZW5kXC10cm9vcHM7Civln7nlnJ8gPCB0b1wtZWFydGhcLXVwOwor6ZaL5oiwIDwgc3RhcnRcLWFcLXdhcjsKK+WIhuS9iCA8IGRpc3RyaWJ1dGVkOwor6L+35Lq6IDwgZmFzY2luYXRpbmc7CivkuI3li5XnlKIgPCByZWFsXC1lc3RhdGU7Civns6IgPCByaWNlXC1zbmFja3M7Civlh7rkvoYgPCB0b1wtY29tZVwtb3V0Owor5L+h6YGTIDwgc2lnbmFsXC1wYXRoOwor5ZWf56S66YyEIDwgcmV2ZWxhdGlvbnM7CivnsLkgPCB0YWxsXC1iYW1ib287CivnsLUgPCBmaW5lXC1iYW1ib287CivnsLAgPCBiYW1ib29cLXJhZnQ7CivprZTms5UgPCBlbmNoYW50bWVudDsKK+eUs+iriyA8IGFwcGx5XC1cKGZvclwpOwor56ys5LiJ5pa5IDwgdGhpcmRcLXBhcnR5Owor562pIDwgYmFtYm9vXC1waXBlOwor562KIDwgYmFtYm9vXC1yb3BlOwor562HIDwgYmFtYm9vXC1uYW1lOwor6LeR6LuKIDwgcmFjaW5nXC1iaWtlOwor56yvIDwgYVwtYmlyZFwtY2FnZTsKK+ihqOiSmeWtkCA8IHdhdGNoXC1nbGFzczsKK+aTuuaetuWtkCA8IHB1dFwtb25cLWFpcnM7CivnqrggPCBmYWludFwtc291bmQ7CivkuI3norrlrpogPCB1bmNlcnRhaW50eTsKK+WFq+W5tCA8IGVpZ2h0XC15ZWFyczsKK+eptSA8IGRlZXBcLWhvbGxvdzsKK+i2hee0muW4guWgtCA8IHN1cGVybWFya2V0Owor56O5IDwgc3RvbmVcLXdlZGdlOwor56KUIDwgXC8yXC1wclwtc3RvbmU7CivnsYzmrL4gPCBmdW5kcmFpc2luZzsKK+Wfn+WQjSA8IGRvbWFpblwtbmFtZTsKK+eggyA8IHdoaXRlXC1zdG9uZTsKK+eetSA8IHRvXC1zdGFyZVwtYXQ7Civlj6TlhbjmtL4gPCBjbGFzc2ljaXN0czsKK+WFq+WtlyA8IGNoYXJhY3RlclwtODsKK+ebuOS8vCA8IHRvXC1yZXNlbWJsZTsKK+aMqueUqCA8IHRvXC1lbWJlenpsZTsKK+WPr+ihjOaApyA8IGZlYXNpYmlsaXR5Owor55ylIDwgZXllXC1zb2NrZXRzOwor55yRIDwgc3Vua2VuXC1leWVzOwor55yKIDwgZGltXC1zaWdodGVkOwor55iaIDwgdG9cLWhpY2NvdWdoOwor55ezIDwgcG9ja1wtbWFya2VkOwor55etIDwgbWVub3JyaGFnaWE7Civnl4MgPCBpbmRpZ2VzdGlvbjsKK+ijneaJriA8IGRyZXNzXC11cFwtYXM7Civln47ljYAgPCBjaXR5XC1wcm9wZXI7Civmup3pgJogPCBjb21tdW5pY2F0ZTsKK+eCuuS6hiA8IGluXC1vcmRlclwtdG87Civnmb3lrq4gPCB3aGl0ZVwtaG91c2U7CivlkIjms5XljJYgPCB0b1wtbGVnYWxpemU7CivlhqDlhpUgPCByb3lhbFwtY3Jvd247Civnj70gPCBqYWRlXC10YWJsZXQ7Civlg4/mqKMgPCBwcmVzZW50YWJsZTsKK+W3p+WQiCA8IGNvaW5jaWRlbmNlOwor54uiIDwgYW5pbWFsXC1uYW1lOwor5oiw6LuKIDwgd2FyXC1jaGFyaW90Owor5o6i54Wn54eIIDwgc2VhcmNobGlnaHQ7Civlronlr6fniYcgPCBtZXByb2JhbWF0ZTsKK+eZveWknCA8IHdoaXRlXC1uaWdodDsKK+aYr+S4jeaYryA8IGlzXC1vclwtaXNuJyd0Owor6Iqx5bqXIDwgZmxvd2VyXC1zaG9wOwor5L6/6Ka9IDwgYnJpZWZcLWd1aWRlOwor54eWIDwgcmVoZWF0XC1mb29kOwor6IiK54mIIDwgb2xkXC12ZXJzaW9uOwor5aSa5bel5ZmoIDwgbXVsdGlwbGV4ZXI7CivnhZ8gPCBicmlnaHRcLXJvb207CivnhY8gPCBkcnlcLWJ5XC1maXJlOwor54WGIDwgcmFnaW5nXC1maXJlOwor5Zug5q2kIDwgdGhhdFwtaXNcLXdoeTsKK+a9viA8IGNsZWFyXC13YXRlcjsKK+WLnuWLleWKmyA8IGxhYm9yXC1mb3JjZTsKK+iqnuiogOWtuCA8IGxpbmd1aXN0aWNzOwor5r2gIDwgdG9cLWJsb3dcLW91dDsKK+a7tyA8IHRoaWNrXC1ncmF2eTsKK+WIhuacn+S7mOasviA8IGluc3RhbGxtZW50Owor55Ge6ZuqIDwgdGltZWx5XC1zbm93Owor5rifIDwgbm90XC1mbG93aW5nOwor5YWs5YWDIDwgXCh5ZWFyXClcLWFcLmRcLjsKK+a1oSA8IGJ1cnN0XC1mb3J0aDsKK+W5uOmBi+WFkiA8IGFcLWx1Y2t5XC1ndXk7CivmsrAgPCB0b1wtbGV0XC1kcm9wOwor6Imy5oOFIDwgcG9ybm9ncmFwaHk7CivmnKzos6rkuIogPCBlc3NlbnRpYWxseTsKK+WcsOS4i+awtCA8IGdyb3VuZHdhdGVyOwor55Sz6KuL5pu4IDwgYXBwbGljYXRpb247CivmrrAgPCBhblwtYWJvcnRpb247Civnmb3liIMgPCBuYWtlZFwtc3dvcmQ7Civnmbzlh7ogPCB0b1wtc2VuZFwtb3V0Owor5pWZ6IKy5oCnIDwgaW5zdHJ1Y3RpdmU7CivlsLHogbcgPCB0YWtlXC1vZmZpY2U7Civnubzmib/mrIogPCBpbmhlcml0YW5jZTsKK+anoiA8IGFcLWhhcmRcLXdvb2Q7Civmi5Tnh58gPCBzdHJpa2VcLWNhbXA7CivmiornqakgPCB0cnVzdHdvcnRoeTsKK+aimCA8IGJhbWJvb1wtdHViZTsKK+ailiA8IGFcLXBhbG1cLXRyZWU7CivmooQgPCBhXC1zb2Z0XC13b29kOwor5LiW55WM6LK/5piTIDwgd29ybGRcLXRyYWRlOwor6IiS5pyNIDwgY29tZm9ydGFibGU7CivmmJwgPCB0b1wtb3Blblwtb3V0Owor5piJIDwgYnJpZ2h0XC1kYXduOwor5peJIDwgdG9cLXN0YXRlXC10bzsKK+aJi+e6jCA8IGZvcm1hbGl0aWVzOwor5oyJ5pyfIDwgb25cLXNjaGVkdWxlOwor5pGOIDwgdG9cLXN0cmFuZ2xlOwor5pWX5a625a2QIDwgc3BlbmR0aHJpZnQ7CivouKnmsLQgPCB0cmVhZFwtd2F0ZXI7CivlrqPoqIAgPCBkZWNsYXJhdGlvbjsKK+iOjuWjq+avlOS6niA8IHNoYWtlc3BlYXJlOwor5bGA6ZmQ5oCnIDwgbGltaXRhdGlvbnM7CivmhYkgPCB0b1wtYnJpbmdcLXVwOwor5ZSu6LKo5ZOhIDwgc2FsZXNwZXJzb247Civlj6/lsIrmlawgPCByZXNwZWN0YWJsZTsKK+WBt+aHtiA8IHRvXC1nb29mXC1vZmY7CivpvLvpn7MgPCBuYXNhbFwtc291bmQ7CivpnZ7mlbjlrZcgPCBub25cLW51bWVyaWM7CivlvrsgPCBhXC13aWRlXC1yb29tOwor5Zuw5aKDIDwgcHJlZGljYW1lbnQ7CivniIbnsbPoirEgPCBwdWZmZWRcLXJpY2U7CivkuInljYHlpKkgPCB0aGlydHlcLWRheXM7Civmu7Lmv74gPCBwZXJjb2xhdGlvbjsKK+W8sCA8IGVuZHNcLW9mXC1ib3c7Civlm5vliIbkuYvkuIAgPCBvbmVcLXF1YXJ0ZXI7Civnl4XlrrkgPCBzaWNrbHlcLWxvb2s7CivmiJDnuL4gPCBwZXJmb3JtYW5jZTsKK+S6uumWkyA8IG1hbicnc1wtd29ybGQ7Civnq6/nq5kgPCBlbmRcLXN0YXRpb247CivojIXlsYvpoIIgPCB0aGF0Y2hcLXJvb2Y7CivooY3lsIQgPCBkaWZmcmFjdGlvbjsKK+W0qiA8IHJvY2t5XC1wZWFrczsKK+WbnuWgsSA8IFwoaW5cKVwtcmV0dXJuOwor5LiJ5Y2B5ZubIDwgdGhpcnR5XC1mb3VyOwor5bGwIDwgZGlzb2JlZGllbnQ7CivlsZ0gPCBzdHJhd1wtc2hvZXM7CivlsJwgPCBhXC1jaGlsZFwtdG95Owor5Zmo5a6Y5o2Q54276ICFIDwgb3JnYW5cLWRvbm9yOwor6KiK5qGG5YKz6YCBIDwgZnJhbWVcLXJlbGF5Owor5oCn5Ly05L62IDwgc2V4XC1wYXJ0bmVyOwor5ayUIDwgYmFieVwtcmFiYml0Owor5oiW56ixIDwgYWxzb1wtY2FsbGVkOwor5Lmz55m96ImyIDwgbWlsa3lcLXdoaXRlOwor55Wr5o+S5ZyW6ICFIDwgaWxsdXN0cmF0b3I7CivnrKzkuozmrKHkuJbnlYzlpKfmiLAgPCB3b3JsZFwtd2FyXC0yOwor6auY5aOTIDwgaGlnaFwtaGFuZGVkOwor5aG/IDwgc21hbGxcLW1vdW5kOwor5Luy6KOBIDwgYXJiaXRyYXRpb247CivloIogPCB3aGl0ZVwtZWFydGg7Civlnp0gPCBkaWxhcGlkYXRlZDsKK+WelCA8IHRvXC1yZXN0cmFpbjsKK+WAvOW+lyA8IHRvXC1iZVwtd29ydGg7CivnlbDluLggPCBleGNlcHRpb25hbDsKK+mRveWtlCA8IGJvcmVcLWFcLWhvbGU7Civok4vnhLbmgKcgPCBwcm9iYWJpbGl0eTsKK+aWh+S7tuacjeWLmeWZqCA8IGZpbGVcLXNlcnZlcjsKK+eVtuWxgCA8IGF1dGhvcml0aWVzOwor5ZaOIDwgYVwtd3J5XC1tb3V0aDsKK+mrmOWUsSA8IHNpbmdcLWxvdWRseTsKK+i2iuWNl+aIsOeIrSA8IHZpZXRuYW1cLXdhcjsKK+WUuSA8IHRvXC1zbWlsZVwtYXQ7Civku4voqZ4gPCBwcmVwb3NpdGlvbjsKK+WPr+iDveaApyA8IHBvc3NpYmlsaXR5Owor5ZKFIDwgdG9cLXNwaXRcLW91dDsKK+iInuWKhyA8IGRhbmNlXC1kcmFtYTsKK+WPuyA8IHBsYWNlXC1uYW1lczsKK+WOviA8IGxpZ2h0bHlcLXRhcDsKK+WCkeWHuiA8IGlsbHVzdHJpb3VzOwor55aG5aC0IDwgYmF0dGxlZmllbGQ7CivnmbvlsbHlrrYgPCBtb3VudGFpbmVlcjsKK+S/oeacjSA8IHRvXC1jb252aW5jZTsKK+WMryA8IGFcLWNvbmNvdXJzZTsKK+WLoCA8IGpvaW5cLWZvcmNlczsKK+eEoeaJgOS4jeWcqCA8IG9tbmlwcmVzZW50Owor5Yq8IDwgYmVcLWRpc2NyZWV0Owor6IS+5rCjIDwgdGVtcGVyYW1lbnQ7CivkuI3lh7rmiYDmlpkgPCBhc1wtZXhwZWN0ZWQ7CivkuIrpvZIgPCB1cHBlclwtdGVldGg7CivmhbDol4kgPCBjb25zb2xhdGlvbjsKK+WJpiA8IHRvXC1jYXN0cmF0ZTsKK+adv+imjyA8IHBsYXRlXC1nYXVnZTsKK+WHqSA8IHdpbnRyeVwtd2luZDsKK+eXheS6uiA8IHNpY2tcLXBlcnNvbjsKK+mRkuWumiA8IHRvXC1hcHByYWlzZTsKK+S4lueVjOWSjOW5syA8IHdvcmxkXC1waWVjZTsKK+WCmeS7tiA8IHNwYXJlXC1wYXJ0czsKK+WTsuWtuOWutiA8IHBoaWxvc29waGVyOwor55Sf5oiQIDwgYmVcLXByb2R1Y2VkOwor5L6/5qG2IDwgY2hhbWJlclwtcG90Owor5YKPIDwgdG9cLXdhcmRcLW9mZjsKK+iEq+awpyA8IGRlb3hpZGF0aW9uOwor5oOF6aGYIDwgd2lsbGluZ25lc3M7CivnlJ/mhYsgPCB3YXlcLW9mXC1saWZlOwor5oyH5Ye6IDwgdG9cLWluZGljYXRlOwor5L+bIDwgbWFrZVwtZWZmb3J0Owor57O75YiX54mHIDwgZmlsbVwtc2VyaWVzOwor6Zi/5a+M5rGXIDwgYWZnaGFuaXN0YW47CivkvbkgPCBkZXBlbmRcLXVwb247CivmtJvmnYnno68gPCBsb3NcLWFuZ2VsZXM7CivmiYHmoYMgPCBhbG1vbmRcLXRyZWU7Civot4vmiYggPCBkb21pbmVlcmluZzsKK+S2qiA8IHNoYXJwXC10ZWV0aDsKK+mZsOa2vOiZlSA8IHNoYWR5XC1wbGFjZTsKK+S/ruW+qSA8IHJlc3RvcmF0aW9uOwor5LW0IDwgYmxhY2tcLWNvbG9yOwor5LWzIDwgbGlnaHRcLWJsYWNrOwor5LWpIDwgZGFya1wteWVsbG93Owor562G5b+DIDwgcGVuY2lsXC1sZWFkOwor5LK7IDwgdGhlXC1zd2FsbG93Owor5L+h5oGvIDwgaW5mb3JtYXRpb247Civksb0gPCB0aGVcLXBvbWZyZXQ7CivksbogPCBhXC1tYWxlXC1jcmFiOwor5LGSIDwgc2FsdGVkXC1maXNoOwor6L2J5L6G6L2J5Y67IDwgcm92ZVwtYXJvdW5kOwor5LiN6aGnIDwgaW5cLXNwaXRlXC1vZjsKK+SumCA8IHlvdW5nXC1ob3JzZTsKK+eri+azlSA8IGxlZ2lzbGF0aW9uOwor5bCN5pa5IDwgY291bnRlcnBhcnQ7Civnqbrnmb0gPCBibGFua1wtc3BhY2U7CivnlLflpbMgPCBtYWxlXC1mZW1hbGU7Civkq7MgPCBodW1hblwtc2t1bGw7Civkq7AgPCBzcGFyc2VcLWhhaXI7Civkq60gPCBiYWxkXC1oZWFkZWQ7Civph53pi5Lnm7jlsI0gPCB0aXRcLWZvclwtdGF0Owor5KuEIDwgYmV0dGVyXC10aGFuOwor5Kq0IDwgdGhlXC1vY2NpcHV0Owor5Ly457iu5oCnIDwgZmxleGliaWxpdHk7CivkqoQgPCBncmVhdFwtYmxhemU7CivkqbsgPCB0b1wtYmVcLWNoaWVmOwor5KmcIDwgZGVzY2VuZGFudHM7CivplonmnIPnpYjnprEgPCBiZW5lZGljdGlvbjsKK+SosSA8IHNwaWx0XC13YXRlcjsKK+SnkyA8IGFcLWJpZ1wtbW91bmQ7CivkprcgPCB0b1wtc3RydWdnbGU7CivnlbblgZogPCB0b1wtdHJlYXRcLWFzOwor5KaYIDwgYVwtdGhyZXNob2xkOwor6ZaJ5YWD6Z+zIDwgY2xvc2VcLXZvd2VsOwor5KWAIDwgdG9cLXB1bGxcLW91dDsKK+SkrSA8IHRvXC1vcm5hbWVudDsKK+SkhSA8IHNvdXRoZXJ3b29kOwor6Leb5a2QIDwgbGFtZVwtcGVyc29uOwor5LiN5Y+v5Lyw6YePIDwgaW5lc3RpbWFibGU7CivkupTokKwgPCA1MFwtdGhvdXNhbmQ7CivkoJ0gPCB0b1wtc3RhbmRcLXVwOwor5KCNIDwgYXRcLXRoZVwtZmVldDsKK+acgOWkp+WMliA8IHRvXC1tYXhpbWl6ZTsKK+SfhSA8IHRvXC1nb1wtYWhlYWQ7Civkn4EgPCBhXC1mb290XC1yYWNlOwor5J69IDwgdG9cLWxpZVwtZmxhdDsKK+SeqCA8IGhhbGZcLWFcLXBhY2U7CivknoQgPCB0b1wtZGlzcGVyc2U7CivknYAgPCBnYXJkZW5cLXBlYXM7CivknLAgPCBkZWVwXC12YWxsZXk7Civkv53lrZggPCB0b1wtY29uc2VydmU7CivknJcgPCBhbmdyeVwtd29yZHM7CivknIYgPCBoYXN0eVwtd29yZHM7Civkm5ggPCB0b1wtdGhpbmtcLW9mOwor5JqzIDwgZG9cLW5vdFwta25vdzsKK+SasiA8IHRvXC1sYXVnaFwtYXQ7Civmt5jnpZ4gPCB0cm91Ymxlc29tZTsKK+SZviA8IHRvXC13YWl0XC1mb3I7CivkmbEgPCBhXC1sb25nXC1jb2F0Owor5JmwIDwgbmV3XC1mZWF0aGVyOwor5JmCIDwgc2hvcnRcLXBhbnRzOwor562G5aKoIDwgcGVuXC1hbmRcLWluazsKK+SXliA8IHRoZVwtcmFpbmJvdzsKK+iWkemkhSA8IGdpbmdlcmJyZWFkOwor56ys5Y2B5LiDIDwgc2V2ZW50ZWVudGg7CivklbggPCB3aGVhdFwtc3RyYXc7CivmuqvluqYgPCB0ZW1wZXJhdHVyZTsKK+SUvyA8IGx1c2hcLWdyb3d0aDsKK+i3keWjmCA8IGJhc2VydW5uaW5nOwor6ZaL5pS+57O757WxIDwgb3Blblwtc3lzdGVtOwor6Jyc5qGDIDwgaG9uZXlcLXBlYWNoOwor6ZGS5LqOIDwgaW5cLWxpZ2h0XC1vZjsKK+SSiyA8IGFpclwtY3VycmVudDsKK+WPr+mpmiA8IGFzdG9uaXNoaW5nOwor5pyJ6ZmQ5YWs5Y+4IDwgY29ycG9yYXRpb247CivnqbrplpPmjqLmuKwgPCBzcGFjZVwtcHJvYmU7CivkkJogPCBnb29kXC1ncmFjZXM7Civkj7YgPCB0aGVcLXN0b21hY2g7Civkj5QgPCB0b1wtZWF0XC1tZWF0Owor5L6/5a6cIDwgaW5leHBlbnNpdmU7Civlk7LlrbjkuIogPCBwaGlsb3NvcGhpYzsKK+WQpuacieaViCA8IGluZWZmaWNpZW50Owor5LiN6L+tIDwgY2Fubm90XC1jb3BlOwor5YyX5pyd6a6uIDwgbm9ydGhcLWtvcmVhOwor5IyqIDwgdG9cLWNvbnRpbnVlOwor5IymIDwgZ3JlZW5cLWNvbG9yOwor5ZCJ54i+5ZCJ5pav5pav5Z2mIDwga2lyZ2hpenN0YW47CivmiYvlr6sgPCBoYW5kd3JpdGluZzsKK+SKrSA8IHRvXC1vdmVydHVybjsKK+SKqyA8IGNvYXJzZVwtcmljZTsKK+SKoiA8IHRoaWNrXC1mbHVpZDsKK+SKkyA8IHRvXC1wYXN0ZVwtdXA7CivkuIvovIkgPCB0b1wtZG93bmxvYWQ7CivkiZ0gPCBiYW1ib29cLXdhcmU7CivkiLggPCBhXC1iaWdcLWNoZXN0Owor6LiP5LiKIDwgc2V0XC1mb290XC1vbjsKK+SGsyA8IGZhclwtZGlzdGFudDsKK+SGmCA8IGFjdXB1bmN0dXJlOwor5IaWIDwgYVwtYmlnXC1ob3VzZTsKK+SFhCA8IGxvbmdcLWdyYWluczsKK+SEvSA8IGNvbW1vblwtcmljZTsKK+SDrSA8IGFcLXN0b25lXC1ib3g7CivnkrDlvaIgPCByaW5nXC1zaGFwZWQ7CivkgrEgPCB0b1wtd2Vhclwtb3V0Owor5IKTIDwgcmVndWxhdGlvbnM7CivkgbsgPCBwcmV0dHlcLWV5ZXM7CivkgbcgPCBicmlnaHRcLWV5ZXM7CivkgbEgPCBob2xsb3dcLWV5ZWQ7CivkvYjmma8gPCBcKHN0YWdlXClcLXNldDsKK+SAgiA8IGFcLWJpZ1wtYmFzaW47Civln7rnpI7llY/poYwgPCBiYXNpY1wtaXNzdWU7Civjv6MgPCB3aGl0ZVwtY29sb3I7Civjv5ggPCB0b1wtZ2V0XC1zaWNrOwor4766IDwgZXllXC1kaXNlYXNlOwor476dIDwgdG9cLWxlYWtcLW91dDsKK+mot+WLlSA8IGRpc3R1cmJhbmNlOwor476IIDwgaHVuY2hiYWNrZWQ7CivjvoMgPCBodW1wXC1iYWNrZWQ7CivjvaogPCBwYWRkeVwtZmllbGQ7CivmgrLop4AgPCBwZXNzaW1pc3RpYzsKK+WPo+mmmeezliA8IGNoZXdpbmdcLWd1bTsKK+O8mCA8IG9mXC1tb3VudGFpbjsKK+O8kyA8IG1lbG9uXC1zZWVkczsKK+ilv+S5g+WxsSA8IG1vdW50XC1zaW5haTsKK+O7kyA8IGFcLWZpbmVcLWphZGU7Civnvo7osowgPCBnb29kbG9va2luZzsKK+m6u+iXpSA8IGFuYWVzdGhldGljOwor47mgIDwgYVwtc21hbGxcLWJpZzsKK+mCgemYv+WvhueBmCA8IG1pYW1pXC1iZWFjaDsKK+O4oCA8IHRoaWNrXC1zdGljazsKK+Wwj+WeiyA8IHNtYWxsXC1zY2FsZTsKK+O1pCA8IHRvXC1vdmVyZmxvdzsKK+O0mCA8IHRvXC1vb3plXC1vdXQ7Civph5Hlsazmnb8gPCBtZXRhbFwtcGxhdGU7CivjsrAgPCBhXC1oYWlyeVwtZG9nOwor47CyIDwgdG9cLWJsb3dcLW9mZjsKK+OviCA8IHNtYWxsXC10cmVlczsKK+mhjOipniA8IGluc2NyaXB0aW9uOwor466dIDwgYW5nbGVcLXN0ZWVsOwor4620IDwgdGhlXC1vc2NpbmVzOwor462OIDwgYVwtdGFsbFwtdHJlZTsKK+i2o+WRsyA8IHRvXC1pbnRlcmVzdDsKK+S/oeS7sCA8IGZpcm1cLWJlbGllZjsKK+OsqSA8IGFcLXRpbnlcLXN0YXI7CivogqHmnbEgPCBzdG9ja2hvbGRlcjsKK+mOruWjkyA8IHN1cHByZXNzaW9uOwor46uYIDwgZGlzYXBwZWFyZWQ7Civmnb/niZkgPCBmcm9udFwtdG9vdGg7Civms7PopLIgPCBzd2ltXC10cnVua3M7CivlkIzos6ogPCBob21vZ2VuZW91czsKK+OphSA8IHRvXC1kcmF3XC1vdXQ7Civlhannmb7okKwgPCB0d29cLW1pbGxpb247CivjqLUgPCB0b1wtY3V0XC1hd2F5Owor46i0IDwgdG9cLXR1cm5vdmVyOwor46iVIDwgdG9cLXNob3VsZGVyOwor55Kw5aKDIDwgZW52aXJvbm1lbnQ7Civjp5QgPCB0b1wtZGlzdHVyYmU7Civkv67nkIblu6AgPCByZXBhaXJcLXNob3A7CivjppIgPCB0b1wtZGVjZWl2ZWQ7CivjpKEgPCB0b1wtc3VycHJpc2U7CivjpJUgPCBtZWxhbmNob2xveTsKK+OkgSA8IHRvXC1kaXNncmFjZTsKK+OjviA8IGRvXC1ub3RcLWNhcmU7Civjo7UgPCB0b1wtcnVuXC1hd2F5Owor46OlIDwgdG9cLXN0b3JlXC11cDsKK+OikyA8IHRvXC1zZXBhcmF0ZTsKK+aenOaxgSA8IGZydWl0XC1qdWljZTsKK+iAleeVnCA8IGZhcm1cLWFuaW1hbDsKK+WinumVt+eOhyA8IGdyb3d0aFwtcmF0ZTsKK+mHjei/lCA8IHJldHVyblwtXCh0b1wpOwor5Lif6IeJIDwgaHVtaWxpYXRpb247CivjnbQgPCBhXC1yb3VuZFwtb2ZmOwor452UIDwgZGVlcFwtYm90dG9tOwor5oiR5ZyLIDwgb3VyXC1jb3VudHJ5Owor45yjIDwgYVwtbGFzdFwtbmFtZTsKK+OcjiA8IHNsYXZlXC1naXJsczsKK+ObkSA8IHRocmVlXC13b21lbjsKK+OaviA8IHRvXC1oYXZlXC1mdW47CivnjrvmhI/ogLPlrprlvosgPCBib3lsZScnc1wtbGF3Owor45i2IDwgYVwtaGVuXC1yb29zdDsKK+i6q+W/g+eIveW/qyA8IHJlZnJlc2htZW50Owor45ilIDwgdG9cLWludmVpZ2xlOwor5L2I5bGAIDwgYXJyYW5nZW1lbnQ7Civku5blgJHpg70gPCBhbGxcLW9mXC10aGVtOwor6K6K6YCaIDwgYmVcLWZsZXhpYmxlOwor6by75raVIDwgbmFzYWxcLW11Y3VzOwor45a9IDwgdG9cLWNhbGxcLW91dDsKK+iyuOasviA8IFwoYmFua1wpXC1sb2FuOwor45aRIDwgdG9cLXNob3V0XC1hdDsKK+OUvCA8IHRvXC1maXRcLWludG87CivjlLYgPCBhXC1zbWFsbFwtY3VwOwor45SPIDwgdG9cLWN1dFwtb3BlbjsKK+OTqSA8IGhvcm5lZFwtaGFpcjsKK+a6luWCmSA8IHByZXBhcmF0aW9uOwor45KoIDwgYW5cLWltbW9ydGFsOwor5a6J5bq3IDwgZ29vZFwtaGVhbHRoOwor6aCQ6KiIIDwgdG9cLWZvcmVjYXN0Owor56Wt5Y+45qyK6KGTIDwgcHJpZXN0Y3JhZnQ7CivpoZ7kvLzpu54gPCByZXNlbWJsYW5jZTsKK+mHj+ipniA8IG1lYXVyZVwtd29yZDsKK+mbmeS6uuaIvyA8IGRvdWJsZVwtcm9vbTsKK+WQjeiRlyA8IG1hc3RlcnBpZWNlOwor576O6KGT6aSoIDwgYXJ0XC1nYWxsZXJ5Owor5Lu75oSPIDwgYXJiaXRyYXJpbHk7CivlronlrrYgPCBzZXR0bGVcLWRvd247CivppZLmgZUgPCBmb3JnaXZlbmVzczsKK+Wuh+WumSA8IG91dGVyXC1zcGFjZTsKK+eRnuWjqyA8IHN3aXR6ZXJsYW5kOwor5Zyo6YCZ5pyf6ZaTIDwgZHVyaW5nXC10aW1lOwor5ZaH5Y+tIDwgbG91ZHNwZWFrZXI7CivntITkvK/oqJggPCBib29rXC1vZlwtam9iOwor54Sh5rOV5b+N5Y+XIDwgaW50b2xlcmFibGU7CivmgrLllpzliocgPCB0cmFnaWNvbWVkeTsKK+mngeWAkiA8IGRlbW9saXNoXC1zYjsKK+WNiuWwgeW7uiA8IHNlbWlcLWZldWRhbDsKK+a1tOaxoCA8IHB1YmxpY1wtYmF0aDsKK+WPjeWLleWIhuWtkCA8IHJlYWN0aW9uYXJ5Owor5a+m6LOq5oCnIDwgc3Vic3RhbnRpdmU7Civororlo5PlmaggPCB0cmFuc2Zvcm1lcjsKK+S9v+eUqOaWueS+vyA8IGVhc3lcLXRvXC11c2U7CivlpZTpprMgPCBydW5cLXF1aWNrbHk7Civnj77lubQgPCBjdXJyZW50XC1hZ2U7CivnhKHms5XlvaLlrrkgPCB1bnNwZWFrYWJsZTsKK+iYi+aenOaxgSA8IGFwcGxlXC1qdWljZTsKK+ekuuevhCA8IGRlbW9uc3RyYXRlOwor5Lqk5o+bIDwgdG9cLWV4Y2hhbmdlOwor6Jel54mpIDwgbWVkaWNhbWVudHM7CivmnInlkIzmg4Xlv4MgPCBzeW1wYXRoZXRpYzsKK+aal+iomOWFkiA8IHNlY3JldFwtbWFyazsKK+mEmemZiyA8IHN1cGVyZmljaWFsOwor5aSc6bavIDwgbmlnaHRpbmdhbGU7CivppJDlu7MgPCBkaW5pbmdcLWhhbGw7CivlqIHohIUgPCB0b1wtdGhyZWF0ZW47CivnqbrliY0gPCB1bnByZWNlZGVudDsKK+mgkOe0hCA8IHJlc2VydmF0aW9uOwor56Kw6KaLIDwgdG9cLXJ1blwtaW50bzsKK+afpeWHuiA8IHRvXC1maW5kXC1vdXQ7CivljYrpgoogPCBoYWxmXC1vZlwtc3RoOwor5pqX56S6IDwgZHJvcFwtYVwtaGludDsKK+S6pOW+gCA8IGFzc29jaWF0aW9uOwor6YWN6YCB6ICFIDwgZGlzdHJpYnV0b3I7Civmm7jms5UgPCBjYWxsaWdyYXBoeTsKK+mHkemKgOiKsSA8IGhvbmV5c3Vja2xlOwor5YWD6ICB6ZmiIDwgdXBwZXJcLWhvdXNlOwor5Y2T6LaKIDwgZGlzdGluY3Rpb247CivogqHlg7kgPCBzdG9ja1wtcHJpY2U7CivkuZ3mnIggPCBuaW50aFwtbW9udGg7CivkuLvmrIogPCBzb3ZlcmVpZ250eTsKK+WPr+aDs+WDjyA8IGNvbmNlaXZhYmxlOwor5aSa6aSYIDwgc3VwZXJmbHVvdXM7Civogb3lj5YgPCBoZWFyXC1cKG5ld3NcKTsKK+aEn+aApyA8IHNlbnNpYmlsaXR5Owor5ZWG5Lq6IDwgYnVzaW5lc3NtYW47CivnpoHmraIgPCB0b1wtcHJvaGliaXQ7Civnp4nmib8gPCB0YWtlXC1vcmRlcnM7CivllK7lg7kgPCB0b1wtc2VsbFwtZm9yOwor5ayM5aqaIDwgZmxpcnRhdGlvdXM7CivpoIHnorwgPCBwYWdlXC1udW1iZXI7CivkuqTlqr4gPCB0b1wtaGF2ZVwtc2V4Owor5LiK5rWBIDwgdXBwZXJcLWNsYXNzOwor5L+h55So5Y2hIDwgY3JlZGl0XC1jYXJkOwor6Zy46YGTIDwgb3ZlcmJlYXJpbmc7Civms6LngL4gPCBncmVhdFwtd2F2ZXM7CivkuI3mraIgPCBpbmNlc3NhbnRseTsKK+eIreitsCA8IGNvbnRyb3ZlcnN5Owor5Lit5p2xIDwgbWlkZGxlXC1lYXN0Owor5aWz566h5a62IDwgaG91c2VrZWVwZXI7CivkuIDljYPlm5vnmb7lhIQgPCAxNDBcLWJpbGxpb247CivkuLnmlrkgPCBmb2xrXC1yZW1lZHk7Civph43nloogPCBvdmVybGFwcGluZzsKK+S4reaXpSA8IGNoaW5hXC1qYXBhbjsKK+iHqueUsemBuOaTh+asiiA8IGZyZWVcLWFnZW5jeTsKK+WWnOatoeWQteaetiA8IHF1YXJyZWxzb21lOwor5pyJ5a6z55qEIDwgZGVzdHJ1Y3RpdmU7Civph43nj74gPCB0b1wtcmVhcHBlYXI7CivmqKHns4rpgo/ovK8gPCBmdXp6eVwtbG9naWM7CivpnbboiLkgPCB0YXJnZXRcLXNoaXA7CivljYPokKwgPCB0ZW5cLW1pbGxpb247CivkuIDmnIggPCBmaXJzdFwtbW9udGg7Civniq/nl4UgPCB0b1wtZmFsbFwtaWxsOwor5ZCM5q2lIDwgc3luY2hyb25vdXM7Civlk7rkubMgPCBicmVhc3RcLWZlZWQ7CivkuLvlvLUgPCB0b1wtYWR2b2NhdGU7CivlqZrmnJ8gPCB3ZWRkaW5nXC1kYXk7CivmmpfmrrogPCBhc3Nhc3NpbmF0ZTsKK+S4u+W4rSA8IGNoYWlycGVyc29uOwor5Y2x56+kIDwgZGVhdGhseVwtaWxsOwor5LqS5YuVIDwgaW50ZXJhY3RpdmU7CivlpKnnhLbmsKMgPCBuYXR1cmFsXC1nYXM7CivkvpvooYDogIUgPCBibG9vZFwtZG9ub3I7CivkuK3lubQgPCBtaWRkbGVcLWFnZWQ7Civnh5/ppIrlk4EgPCBub3VyaXNobWVudDsKK+iyneS4mCA8IHNoZWxsXC1tb3VuZDsKK+aEj+WQkSA8IGRpc3Bvc2l0aW9uOwor6YGp5oeJ5oCnIDwgc3VpdGFiaWxpdHk7CivmsojmvrEgPCBwcmVjaXBpdGF0ZTsKK+WkqeaWh+WPsCA8IG9ic2VydmF0b3J5Owor6ZG/55+z5aC0IDwgcm9ja1wtcXVhcnJ5Owor5bCx77mN6ICM6KiAIDwgY29uc2lkZXJpbmc7CivkuInlubQgPCB0aHJlZVwteWVhcnM7Civwob2xIDwgYVwtaGlnaFwtaGlsbDsKK+S4iuWxpCA8IHVwcGVyXC1sYXllcjsKK+Wjr+ingCA8IHNwZWN0YWN1bGFyOwor5pyJ6YG46IiJ5qyKIDwgY29uc3RpdHVlbnQ7CivmlL/oroogPCBjb3VwXC1kJydldGF0Owor56We5a24IDwgdGhlb2xvZ2ljYWw7CivmuKzpqZfntZDmnpwgPCB0ZXN0XC1yZXN1bHQ7CivlkIjlvbEgPCBqb2ludFwtcGhvdG87CivlpoLnlasgPCBwaWN0dXJlc3F1ZTsKK+S4jeWgqiA8IGNhbm5vdFwtYmVhcjsKK+e1gum7niA8IGRlc3RpbmF0aW9uOwor54iG56u5IDwgZmlyZWNyYWNrZXI7CivnrqHlrrbogbfli5kgPCBzdGV3YXJkc2hpcDsKK+Wwj+axvei7iiA8IGNvbXBhY3RcLWNhcjsKK+eJueasiiA8IHByZXJvZ2F0aXZlOwor6J6657Wy5YiAIDwgc2NyZXdkcml2ZXI7Civni5fkuqTlqr7oiKwgPCBkb2dneVwtc3R5bGU7CivliIbpm6IgPCB0b1wtc2VwZXJhdGU7Civlia/kvZznlKggPCBzaWRlXC1lZmZlY3Q7CivnpoHku6QgPCBwcm9oaWJpdGlvbjsKK+S4jeWFjSA8IHVuYXZvaWRhYmxlOwor6KqT57SEIDwgaG9ub3JcLWJvdW5kOwor6K2J5pu4IDwgY3JlZGVudGlhbHM7CivmsojmgJ0gPCBjb250ZW1wbGF0ZTsKK+ino+mHiyA8IGV4cGxhbmF0aW9uOwor56SB5bO2IDwgcmVlZlwtaXNsYW5kOwor5qau542y6Ku+6LKd54i+542OIDwgbm9iZWxcLXByaXplOwor5LqM5Y2B5YSEIDwgdHdvXC1iaWxsaW9uOwor6L+O6aKoIDwgaW5cLXRoZVwtd2luZDsKK+enu+akjeaApyA8IHBvcnRhYmlsaXR5Owor5aaC5q2kIDwgaW5cLXRoaXNcLXdheTsKK+aCoOS5hSA8IGVzdGFibGlzaGVkOwor5bCI5pyJ5ZCN6KmeIDwgcHJvcGVyXC1ub3VuOwor5LiK5LiLIDwgdXBcLWFuZFwtZG93bjsKK+S6jOWNgeS6lCA8IHR3ZW50eVwtZml2ZTsKK+aci+avlOeCuuWluCA8IHRvXC1jb25zcGlyZTsKK+aQrOW8hOaYr+mdniA8IHNvd1wtZGlzY29yZDsKK+eahCA8IHBvc3Nlc3NpdmU7CivovrwgPCBjcm93ZFwtaW50bzsKK+i+uyA8IGNyb3Nzcm9hZHM7Civog70gPCB0b1wtYmVcLWFibGU7Civpg70gPCBtZXRyb3BvbGlzOwor5paHIDwgbGl0ZXJhdHVyZTsKK+i9jSA8IHdhZ29uXC1ydXRzOwor6LypIDwgZ2VuZXJhdGlvbjsKK+ecqSA8IHRvXC1jb25mdXNlOwor55ygIDwgY2xvc2VcLWV5ZXM7CivovJ0gPCBicmlnaHRuZXNzOwor5byQIDwgbnVtYmVyXC10d287CivogIUgPCB0aGF0XC13aGljaDsKK+S4miA8IHByb2Zlc3Npb247CivlupwgPCBwcmVmZWN0dXJlOwor5pS/IDwgZ292ZXJubWVudDsKK+S6pyA8IGdpdmVcLWJpcnRoOwor5Zy6IDwgb3Blblwtc3BhY2U7Civmr5QgPCB0b1wtY29tcGFyZTsKK+eWsiA8IGZlZWxcLXRpcmVkOwor55S7IDwgYVwtcGFpbnRpbmc7CivmnJsgPCB0b1wtbG9va1wtYXQ7Civos7ogPCBtYWtlXC1tb25leTsKK+WFrSA8IG51bWJlclwtc2l4Owor5bGhIDwgZnJlcXVlbnRseTsKK+WwpCA8IGVzcGVjaWFsbHk7CivlsIggPCBtb25vcG9saXplOwor5Z+6IDwgZm91bmRhdGlvbjsKK+WPjCA8IHNldFwtb2ZcLXR3bzsKK+WtqyA8IGdyYW5kY2hpbGQ7CivlrKogPCBjb3VydFwtbGFkeTsKK+emuyA8IHJhcmVcLWJlYXN0Owor5aqSIDwgZ29cLWJldHdlZW47CivoqowgPCB3cml0ZVwtZG93bjsKK+iqhyA8IGV4YWdnZXJhdGU7Civlk40gPCBtYWtlXC1zb3VuZDsKK+WpvyA8IHNvblwtaW5cLWxhdzsKK+eIrSA8IHRvXC1kaXNwdXRlOwor5ZmoIDwgcmVjZXB0YWNsZTsKK+eHnyA8IGVuY2FtcG1lbnQ7CivlppkgPCBteXN0ZXJpb3VzOwor6IOhIDwgcmVja2xlc3NseTsKK+WmkyA8IHByb3N0aXR1dGU7CivopaYgPCBzaG9ydFwtY29hdDsKK+WjsSA8IG51bWJlclwtb25lOwor6YOtIDwgb3V0ZXJcLXBhcnQ7CivorqggPCB0b1wtZGlzY3VzczsKK+a7hSA8IGV4dGluZ3Vpc2g7CivomZwgPCB0b1wtY2FwdHVyZTsKK+enryA8IGFjY3VtdWxhdGU7Civoj5wgPCB2ZWdldGFibGVzOwor5ZejIDwgdG9cLWNvbm5lY3Q7Civll5wgPCBiZVwtZm9uZFwtb2Y7Civku4sgPCBmb3JlcnVubmVyOwor57SiIDwgbGFyZ2VcLXJvcGU7CivkuIEgPCBtYWxlXC1hZHVsdDsKK+mBjSA8IGV2ZXJ5d2hlcmU7CivokpQgPCB0cmFuc3BsYW50Owor5oeCIDwgdW5kZXJzdGFuZDsKK+mHiiA8IGludGVycHJldGU7CivnurUgPCBpbmR1bGdlXC1pbjsKK+attCA8IHRha2VcLXBsYWNlOwor5LuBIDwgaHVtYW5lbmVzczsKK+aqgCA8IHNhbmRhbHdvb2Q7CivliYogPCBzY3JhcGVcLW9mZjsKK+WIkSA8IHB1bmlzaG1lbnQ7CivlsoIgPCBob3dcP1wtd2hhdFw/Owor6ZqGIDwgcHJvc3Blcm91czsKK+WIgyA8IGVkZ2VkXC10b29sOwor5p6QIDwgc3BsaXRcLXdvb2Q7CivohbggPCBpbnRlc3RpbmVzOwor5qWTIDwgbWFwbGVcLXRyZWU7CivppIUgPCByaWNlXC1jYWtlczsKK+WCjSA8IGJ5XC1zaWRlXC1vZjsKK+agkyA8IHdvb2RlblwtcGVnOwor5YevIDwgdHJpdW1waGFudDsKK+aBrSA8IHJlc3BlY3RmdWw7CivnpbggPCBtaXNmb3J0dW5lOwor56aFIDwgbWVkaXRhdGlvbjsKK+afryA8IGF4ZVwtaGFuZGxlOwor5o2QIDwgY29udHJpYnV0ZTsKK+i4qiA8IGZvb3RwcmludHM7CivlsYEgPCBicmVha1wtd2luZDsKK+iwiiA8IGZyaWVuZHNoaXA7CivlgqggPCBzYXZlXC1tb25leTsKK+mbgSA8IHdpbGRcLWdvb3NlOwor5pGKIDwgc3ByZWFkXC1vdXQ7CivlkKggPCBtZXRyaWNcLXRvbjsKK+S5jSA8IGZpcnN0XC10aW1lOwor6ZmAIDwgc3RlZXBcLWJhbms7Civntr8gPCBjb3R0b25cLXdhZDsKK+e2sSA8IGhlYXZ5XC1yb3BlOwor5oqRIDwgcHJlc3NcLWRvd247CivlvawgPCBjdWx0aXZhdGVkOwor5pKuIDwgbGl0dGxlXC1iaXQ7CivnsqUgPCByaWNlXC1ncnVlbDsKK+ibriA8IGJhcmJhcmlhbnM7CivnrrggPCBjaG9wc3RpY2tzOwor5621IDwgYmFtYm9vXC1tYXQ7CivoiYcgPCBzbWFsbFwtYm9hdDsKK+aNjCA8IGJyZWFrXC1vcGVuOwor56ygIDwgYmFtYm9vXC1oYXQ7Civlup4gPCBkaXNvcmRlcmx5Owor56udIDwgdG9cLWNvbWJpbmU7CivmiYkgPCBkb29yXC1wYW5lbDsKK+WdnSA8IGVtYmFua21lbnQ7CivmhqcgPCBpcnJlc29sdXRlOwor55SpIDwgdGhyb3dcLWF3YXk7CivphYwgPCBzZXJ2ZVwtd2luZTsKK+ejkCA8IGxhcmdlXC1yb2NrOwor6L6FIDwgY2hlZWtcLWJvbmU7CivmjaEgPCB0b1wtcGlja1wtdXA7CivouYggPCBzdGFtcFwtZmVldDsKK+aZkiA8IGRyeVwtaW5cLXN1bjsKK+atvCA8IGFubmloaWxhdGU7CivmtqkgPCBhc3RyaW5nZW50Owor6ZyOIDwgbGlnaHRcLXJhaW47Civnu7ggPCBzaWxrXC1jbG90aDsKK+ecryA8IGJlXC1ibGluZGVkOwor5a+FIDwgdG9cLXJlc3BlY3Q7CivnnLYgPCBleWVcLXNvY2tldDsKK+einyA8IHNtYWxsXC1kaXNoOwor6JW0IDwgdG9cLWNvbGxlY3Q7Civov60gPCByZXBlYXRlZGx5Owor5petIDwgcmlzaW5nXC1zdW47Civmgo0gPCBjb3VyYWdlb3VzOwor5p6iIDwgZG9vclwtaGluZ2U7Civot4sgPCBnb1wtYnlcLWZvb3Q7CivlnKogPCBcKHBob25ldGljXCk7CivmkJQgPCB0b1wtc2NyYXRjaDsKK+WajiA8IGNyeVwtbG91ZGx5Owor5rGbIDwgaGlnaFwtd2F0ZXI7CivohK8gPCBkcmllZFwtbWVhdDsKK+WXkiA8IHRvXC1kZXNwYWlyOwor5aKfIDwgaGlnaFwtbW91bmQ7CivpposgPCBnbHV0dG9ub3VzOwor6LmtIDwgdG9cLXNodWZmbGU7CivmvoggPCB0aG9yb3VnaGx5Owor57ytIDwgd2luZFwtcm91bmQ7CivllrMgPCB3aGlzcGVyaW5nOwor5bynIDwgd29vZGVuXC1ib3c7Civmg4YgPCBkaXN0cmVzc2VkOwor5pK1IDwgZHJpdmVcLWF3YXk7CivovbYgPCBydXNoXC1mb3J0aDsKK+eqvyA8IG1pbmVcLXNoYWZ0Owor5qi1IDwgd29vZGN1dHRlcjsKK+eKgCA8IHJoaW5vY2Vyb3M7Civnu5ogPCB2YXJpZWdhdGVkOwor6JeVIDwgbG90dXNcLXJvb3Q7CivmkZ4gPCB0b1wtcGlsZVwtdXA7Civmu6QgPCBzdHJhaW5cLW91dDsKK+e8iCA8IGluZGlzdGluY3Q7CivogqogPCBhbmltYWxcLWZhdDsKK+eUhCA8IHRvXC1leGFtaW5lOwor6ZObIDwgZnJ5aW5nXC1wYW47Civlq6EgPCBsZWdhbFwtd2lmZTsKK+ejtyA8IHBob3NwaG9ydXM7Civnv6EgPCBraW5nZmlzaGVyOwor6ZytIDwgY2xvdWR5XC1za3k7CivoiKsgPCBmYW5jeVwtYm9hdDsKK+e6qCA8IHdoaXRlXC1zaWxrOwor5qa3IDwgZm9vdGJyaWRnZTsKK+iUlyA8IHN1Z2FyXC1jYW5lOwor5b2XIDwgYnJvb21zdGljazsKK+WWnyA8IGhlYXZlXC1zaWdoOwor5ZaRIDwgdG9cLWJlXC1kdW1iOwor6bG/IDwgY3V0dGxlZmlzaDsKK+WAnCA8IHJhaXNlXC1oaWdoOwor5ruCIDwgdG9ycmVudGlhbDsKK+W/uyA8IGRlbGlnaHRmdWw7Civnh6cgPCBmbGludHN0b25lOwor56iUIDwgcmlwZVwtZ3JhaW47CivpookgPCBmbHlcLXVwd2FyZDsKK+iIuCA8IGxhcmdlXC1ib2F0Owor55yZIDwgdG9cLWdhemVcLWF0Owor55iAIDwgYVwtaGVtYXRvbWE7CivlpK8gPCBoZWF2eVwtbG9hZDsKK+myoCA8IGZpc2hcLWJvbmVzOwor6IyPIDwgdGFsbFwtZ3Jhc3M7CivojK8gPCBjaGluYVwtcm9vdDsKK+mypyA8IGdpYW50XC1maXNoOwor6YCmIDwgbWVhbmRlcmluZzsKK+mqnCA8IHdpbGRcLWhvcnNlOwor5qy5IDwgZmllcmNlXC1kb2c7CivnvJsgPCBkZWNvcmF0aXZlOwor6IuVIDwgcnVzaFwtcGxhbnQ7CivpobggPCBsYXJnZVwtZmFjZTsKK+e8piA8IHBsYWluXC1zaWxrOwor5biZIDwgYm9va1wtY292ZXI7Civps4MgPCBmaXNoXC1naWxsczsKK+mGtCA8IHN3ZWV0XC13aW5lOwor6L6KIDwgdHVyblwtcm91bmQ7CivlspggPCBzdGVlcFwtaGlsbDsKK+WArCA8IG5vdGljZWFibGU7Civpsp4gPCBkcmllZFwtZmlzaDsKK+e8gSA8IGJsYWNrXC1zaWxrOwor566nIDwgcmF0dGFuXC1ib3g7CivlooEgPCB0b1wtcGxhc3RlcjsKK+e9tCA8IGJyb3duXC1iZWFyOwor54iwIDwgbGVhZFwtb25cLXRvOwor5p2yIDwgYnJpZ2h0XC1zdW47CivnmZQgPCBoeXN0ZXJpY2FsOwor6I6cIDwgYXZlbmFcLW51ZGE7Civln5kgPCBpbnN0cnVtZW50Owor542+IDwgdGhlXC1iYWRnZXI7Civpg6sgPCBwbGFjZVwtbmFtZTsKK+ibjyA8IHJhem9yXC1jbGFtOwor5biRIDwgYVwtdHJlYXN1cnk7Civmj6AgPCB0b1wtcHVsbFwtdXA7CivotpEgPCBjYW4nJ3RcLW1vdmU7CivpmI0gPCBnYXRla2VlcGVyOwor5o6KIDwgdG9cLWV4dHJhY3Q7CivplZ0gPCBkeXNwcm9zaXVtOwor56CXIDwgZ2lhbnRcLWNsYW07Civlq6sgPCB1Z2x5XC13b21hbjsKK+i3lyA8IHRoZVwtaW5zdGVwOwor5rW8IDwgdG9cLXJlcXVlc3Q7Civll4wgPCB0aGVcLXRocm9hdDsKK+axhiA8IHRvXC1wYXJib2lsOwor5YitIDwgY3V0XC10aHJvYXQ7Civpq4IgPCB0aGVcLXBlbHZpczsKK+mSvCA8IG1vbHliZGVudW07Civmhp0gPCB0b1wtZGlzbGlrZTsKK+eChSA8IGJyaWxsaWFuY2U7CivpmrMgPCB0b1wtZGVzdHJveTsKK+iMmyA8IHJhbnVuY3VsdXM7Civns4cgPCBkcmllZFwtcmljZTsKK+mShiA8IGdhZG9saW5pdW07CivmvowgPCB0b1wtZXhoYXVzdDsKK+W6gCA8IHRvXC1wcmVwYXJlOwor54q0IDwgYVwtd2lsZFwtZG9nOwor5Z+PIDwgYVwtYm91bmRhcnk7CivosK4gPCB0b1wtc2xhbmRlcjsKK+e4ruefrSA8IHRvXC1jdXJ0YWlsOwor5pS557WEIDwgcmVvcmdhbml6ZTsKK+aykuWVj+mhjCA8IG5vXC1wcm9ibGVtOwor56ys5LqU6aGeIDwgY2F0ZWdvcnlcLTU7Civmk4HorbcgPCB0b1wtZW5kb3JzZTsKK+mAsuihjCA8IHRvXC1hZHZhbmNlOwor5aWU5rOiIDwgcnVzaFwtYWJvdXQ7Civlvozmr40gPCBzdGVwbW90aGVyOwor5pWj55m8IDwgZGlzdHJpYnV0ZTsKK+WkseeBqyA8IGNhdGNoXC1maXJlOwor6KqV55SfIDwgdG9cLWJlXC1ib3JuOwor5aSa54i+IDwgXChib2JcKVwtZG9sZTsKK+W3tOaer+Wvp+S4u+e+qSA8IGJha3VuaW5pc207CivlvbzmraQgPCBlYWNoXC1vdGhlcjsKK+mgkOWFiCA8IGJlZm9yZWhhbmQ7Civpl5zploAgPCBjbG9zZVwtZG93bjsKK+mBleiDjCA8IHRvXC12aW9sYXRlOwor5Yaw5p+T5p+T5paZIDwgYXpvaWNcLWR5ZXM7CivntbHoqIggPCBzdGF0aXN0aWNzOwor5Ye96LO8IDwgbWFpbFwtb3JkZXI7Civlo4Hnq4sgPCBcKG9mXC1jbGlmZnM7CivmmKXlraMgPCBzcHJpbmd0aW1lOwor6aCS5L2IIDwgcHJvbXVsZ2F0ZTsKK+avj+asoSA8IGV2ZXJ5XC10aW1lOwor57eo56iLIDwgdG9cLXByb2dyYW07CivliIboqZ4gPCBwYXJ0aWNpcGxlOwor5b6M5pyfIDwgbGF0ZVwtc3RhZ2U7CivmlYjnlKggPCB1c2VmdWxuZXNzOwor57On6aOfIDwgZm9vZHN0dWZmczsKK+iNkumHjiA8IHdpbGRlcm5lc3M7CivmkpLorIogPCB0ZWxsXC1hXC1saWU7Civnh4Pnh5IgPCBjb21idXN0aW9uOwor5byE55u0IDwgc3RyYWlnaHRlbjsKK+mBt+enuyA8IHRvXC1taWdyYXRlOwor6Z2e5a6Y5pa5IDwgdW5vZmZpY2lhbDsKK+Wkp+awoyA8IGF0bW9zcGhlcmU7Civoqo3ngrogPCB0b1wtYmVsaWV2ZTsKK+mZjeiQvSA8IHRvXC1kZXNjZW5kOwor5YmN6ICFIDwgdGhlXC1mb3JtZXI7CivmlYjnjocgPCBlZmZpY2llbmN5Owor6Z225b+DIDwgYnVsbCcnc1wtZXllOwor5ZyL5rCR6buoIDwga3VvbWludGFuZzsKK+WLg+eEtiA8IGFnaXRhdGVkbHk7CivorJvluKsgPCBpbnN0cnVjdG9yOwor5Y+W5LujIDwgc3Vic3RpdHV0ZTsKK+aWsOaVmSA8IHByb3Rlc3RhbnQ7CivlpJrmrKEgPCBtYW55XC10aW1lczsKK+Wlh+aVuCA8IG9kZFwtbnVtYmVyOwor5b+F5bCHIDwgaW5ldml0YWJseTsKK+mZsOeyviA8IHNleFwtZmx1aWRzOwor55m96Imy6auUIDwgbGV1Y29wbGFzdDsKK+WmluWsiCA8IGVuY2hhbnRpbmc7CivkuI3ogJDnhakgPCBpbXBhdGllbmNlOwor55m+5YiG546HIDwgcGVyY2VudGFnZTsKK+e5vOaJvyA8IHRvXC1pbmhlcml0Owor5Luk54mM55KwIDwgdG9rZW5cLXJpbmc7Civmk43nuLEgPCB0b1wtb3BlcmF0ZTsKK+WFqOmdoiA8IGFsbFwtYXJvdW5kOwor5Zub5YCL5bCP5pmCIDwgZm91clwtaG91cnM7CivljpjljYcgPCBjZW50aWxpdGVyOwor6Kq/5pW0IDwgYWRqdXN0bWVudDsKK+iNkuisrCA8IHJpZGljdWxvdXM7Civoh6rnmb3mm7ggPCBjb25mZXNzaW9uOwor5bGV6Ka95pyDIDwgZXhoaWJpdGlvbjsKK+eZvemgrSA8IGhvYXJ5XC1oZWFkOwor5aSp5paH5a245a62IDwgYXN0cm9ub21lcjsKK+axuuS4jSA8IG5vdFwtYXRcLWFsbDsKK+iqquaYjiA8IHRvXC1leHBsYWluOwor55y86Iqx57ma5LqCIDwgYmVcLWRhenpsZWQ7Civpra/kvZvniL7lrq4gPCB0aGVcLWxvdXZyZTsKK+WHuuiJsiA8IHJlbWFya2FibGU7CivkuI3loKrlv43lj5cgPCB1bmJlYXJhYmxlOwor6auY6YCf546HIDwgaGlnaFwtc3BlZWQ7CivlhY3pmaQgPCB0b1wtcHJldmVudDsKK+WmpeWNlCA8IGNvbXByb21pc2U7Civlt6jovKogPCBsYXJnZVwtc2hpcDsKK+eFp+eJhyA8IHBob3RvZ3JhcGg7CivpmYTnrYYgPCBwb3N0c2NyaXB0Owor6Kaq6IeqIDwgcGVyc29uYWxseTsKK+iqquS4jeWHuuipseS+hiA8IHNwZWVjaGxlc3M7CivlqJvmqILkuK3lv4MgPCByZWNyZWF0aW9uOwor5pS55q2jIDwgdG9cLWNvcnJlY3Q7CivlpKfln47luIIgPCBtYWpvclwtY2l0eTsKK+iHqueUseiyv+aYkyA8IGZyZWVcLXRyYWRlOwor5Y2K5ZyTIDwgc2VtaWNpcmNsZTsKK+eIreWlqiA8IGZpZ2h0XC1vdmVyOwor55+t5pyfIDwgc2hvcnRcLXRlcm07Civmr4/lubQgPCBldmVyeVwteWVhcjsKK+WWrOayu+aVpiA8IGdlb3JnZXRvd247CivkuInliIbkuYvkuowgPCB0d29cLXRoaXJkczsKK+WCs+mBk+iAhSA8IG1pc3Npb25hcnk7CivmlbXmiYsgPCBhbnRhZ29uaXN0Owor5Y2w5YOPIDwgaW1wcmVzc2lvbjsKK+S4jeWPr+iDvSA8IGltcG9zc2libGU7Civnsr7pgJogPCBwcm9maWNpZW50Owor5b6I5aSnIDwgdHJlbWVuZG91czsKK+eZvemFkiA8IHNwaXJpdFwtdXN1Owor6YyE6Z+z5bi2IDwgYXVkaW9cLXRhcGU7CivojYnojpMgPCBzdHJhd2JlcnJ5Owor6Yyr5a6J5bGxIDwgbW91bnRcLXppb247CivloZTlkInlhYvmlq/lnaYgPCB0YWppa2lzdGFuOwor5aCx56ugIDwgbmV3c3BhcGVyczsKK+WkmuW5tCA8IG1hbnlcLXllYXJzOwor6Kqe5b2ZIDwgdm9jYWJ1bGFyeTsKK+aXqeWFiCA8IHByZXZpb3VzbHk7CivnuL3ntbHku7vmnJ8gPCBwcmVzaWRlbmN5Owor54mM5YO5IDwgbGlzdFwtcHJpY2U7Civlt6vooZMgPCB3aXRjaGNyYWZ0Owor6YGO5rihIDwgdHJhbnNpdGlvbjsKK+aOoumaqiA8IHRvXC1leHBsb3JlOwor5aSn5a24IDwgdW5pdmVyc2l0eTsKK+eEoeeQhiA8IGlycmF0aW9uYWw7CivljYrlg7kgPCBoYWxmXC1wcmljZTsKK+WNgOWIpSA8IGRpZmZlcmVuY2U7Civpl5zoga8gPCBiZVwtcmVsYXRlZDsKK+ehrOejgeebpCA8IGhhcmRcLWRyaXZlOwor5Zyw6ZyHIDwgZWFydGhxdWFrZTsKK+ingOecviA8IHNwZWN0YXRvcnM7CivmjpLpmoogPCB0b1wtbGluZVwtdXA7CivmlKrmk74gPCB0b1wtZGlzdHVyYjsKK+S4jeWPr+mAvui2iiA8IGltcGFzc2FibGU7CivmlbjlrbggPCBtYXRoZW1hdGljOwor54ax5b+DIDwgZW50aHVzaWFzbTsKK+WKoOWIqeemj+WwvOS6niA8IGNhbGlmb3JuaWE7Civmrbflj7LkuIogPCBoaXN0b3JpY2FsOwor6KiY5biz5ZOhIDwgYm9va2tlZXBlcjsKK+mbu+WtkCA8IGVsZWN0cm9uaWM7Civnmb3oqbEgPCB2ZXJuYWN1bGFyOwor54K457OVIDwgZnJpZWRcLWNha2U7CivmlaPlsIQgPCBzY2F0dGVyaW5nOwor6JOL5LiWIDwgdW5yaXZlbGxlZDsKK+e3qOaOkiA8IHRvXC1hcnJhbmdlOwor5o2V6a2aIDwgY2F0Y2hcLWZpc2g7CivlhYHoq74gPCB0b1wtcHJvbWlzZTsKK+iqv+WSjCA8IGhhcm1vbmlvdXM7CivlvozkvoYgPCBhZnRlcndhcmRzOwor5L2/5aSx5pybIDwgZGlzYXBwb2ludDsKK+Wkp+WWnCA8IGV4dWx0YXRpb247CivoqK3mlr0gPCBmYWNpbGl0aWVzOwor5pa55L6/IDwgY29udmVuaWVudDsKK+atpOW+jCA8IGFmdGVyXC10aGlzOwor5bqn5qiZIDwgY29vcmRpbmF0ZTsKK+e2k+attyA8IGV4cGVyaWVuY2U7CivmqILop4AgPCBvcHRpbWlzdGljOwor5aSq5Y+kIDwgaW1tZW1vcmlhbDsKK+mbouWpmiA8IHRvXC1kaXZvcmNlOwor5pWZ5aCC5aKT5ZywIDwgY2h1cmNoeWFyZDsKK+m+oiA8IGluXC1oYXJtb255Owor54eI5aGUIDwgbGlnaHRob3VzZTsKK+WHuueJiCA8IHRvXC1wdWJsaXNoOwor5YW16Ii5IDwgbWFuXC1vZlwtd2FyOwor6KGM5pS/6ZW35a6YIDwgbWFnaXN0cmF0ZTsKK+m8pyA8IHRoZVwtbWFybW90Owor6byEIDwgdGhlXC1zcGlkZXI7Civpu7kgPCBlbWJyb2lkZXJ5Owor6buyIDwgZ3JleVwtYmxhY2s7Civpu6QgPCBibHVlXC1ibGFjazsKK+WCt+miqCA8IGNhdGNoXC1jb2xkOwor5pS+5bCEIDwgdG9cLXJhZGlhdGU7Civmr5TkvosgPCBwcm9wb3J0aW9uOwor6bi6IDwgaG9ybmVkXC1vd2w7CivpmqjlvowgPCBzb29uXC1hZnRlcjsKK+WJjeaZryA8IGZvcmVncm91bmQ7Civpgbflu7YgPCBsb25nXC1kZWxheTsKK+ijnOiqniA8IGNvbXBsZW1lbnQ7CivptZIgPCBteW5haFwtYmlyZDsKK+m0tyA8IHdvb2RwZWNrZXI7CivliqDlr4YgPCB0b1wtZW5jcnlwdDsKK+aVtOWQiCA8IHRvXC1jb25mb3JtOwor5om/5YyF5Lq6IDwgY29udHJhY3RvcjsKK+mBleaKlyA8IHRvXC1kaXNvYmV5Owor55uj552jIDwgdG9cLWNvbnRyb2w7Civps7IgPCB0dXJ0bGVkb3ZlOwor5paH5YW3IDwgc3RhdGlvbmVyeTsKK+avj+S6uiA8IHBlclwtcGVyc29uOwor54mp6LOq5LiKIDwgbWF0ZXJpYWxseTsKK+mysCA8IHNtYWxsXC1maXNoOwor6Ziy5rC0IDwgd2F0ZXJwcm9vZjsKK+mxhyA8IGFuZ2xlcmZpc2g7CivosrTml4/oq5bogIUgPCBhcmlzdG9jcmF0Owor5Y2K5YWs6ZaLIDwgc2VtaVwtb3ZlcnQ7Civkvb/lhY3pmaQgPCBnZXRcLXJpZFwtb2Y7Civmm7TooaPlrqQgPCBjaGFuZ2Vyb29tOwor6a6BIDwgdGhlXC1ib25pdG87CivpgIDmraUgPCBkZWdlbmVyYXRlOwor6YGp5bqmIDwgbW9kZXJhdGVseTsKK+mtmyA8IHRoZVwtbXVsbGV0Owor6YGg5b6BIDwgZXhwZWRpdGlvbjsKK+msqCA8IGJvaXN0ZXJvdXM7CivprJwgPCB0b1wtZ29cLWJhbGQ7Civnmb3oh4kgPCB3aGl0ZVwtZmFjZTsKK+e4veWFsSA8IGFsdG9nZXRoZXI7Civpq6MgPCBzaW1pbGFyXC10bzsKK+mrgSA8IHRoaWdoXC1ib25lOwor6Kej5p6QIDwgdG9cLWFuYWx5emU7CivpqJcgPCB0b1wtc3dpbmRsZTsKK+moiyA8IHRhbGxcLWhvcnNlOwor6aiJIDwgZmluZVwtaG9yc2U7Civpp7AgPCBncmV5XC1ob3JzZTsKK+mmuSA8IHBvc3RcLWhvcnNlOwor6Kmm5ZyWIDwgdG9cLWF0dGVtcHQ7CivoiabovIkgPCBzaGlwXC1iYXNlZDsKK+efpeWQjSA8IHdlbGxcLWtub3duOwor5aSa5LqLIDwgbWVkZGxlc29tZTsKK+WGsOeQgyA8IGljZVwtaG9ja2V5Owor6Kej5pS+IDwgbGliZXJhdGlvbjsKK+meoSA8IGxlZ1wtd2FybWVyOwor6Z2dIDwgdGhlXC1oZWF2ZW47Civlgb3poIIgPCBmYWxzZVwtcm9vZjsKK+mrmOmajiA8IGhpZ2hcLWxldmVsOwor5o2P6YCgIDwgdG9cLW1ha2VcLXVwOwor6ZquIDwgdGlcLXJpc2VcLXVwOwor6Zm7IDwgc21hbGxcLWhpbGw7CivmlrDogZ7oqJjogIUgPCBqb3VybmFsaXN0Owor5pOB5oqxIDwgdG9cLWVtYnJhY2U7Civpm7bkuIsgPCBiZWxvd1wtemVybzsKK+mXnyA8IHBlYWNlZnVsbHk7Civpnq3pl6LlhaXoo6EgPCBwZW5ldHJhdGVkOwor6LaF5aqS6auUIDwgaHlwZXJtZWRpYTsKK+mVmiA8IHNtYWxsXC1jb2luOwor6ZSsIDwgbG9uZ1wtc3BlYXI7CivkuI3mmI7norogPCBpbmRlZmluaXRlOwor6ZK3IDwgcHJvbWV0aGl1bTsKK+aUvuWHuiA8IHRvXC1sZXRcLW9mZjsKK+mQtiA8IG1ldGFsXC1yaW5nOwor6ZCaIDwgc29mdFwtc3RlZWw7Civlhaznn7MgPCBoZWN0b2xpdGVyOwor6ZCSIDwgbGF3cmVuY2l1bTsKK+mQgCA8IGFcLWN1cGJvYXJkOwor5LiN5pmv5rCjIDwgZGVwcmVzc2lvbjsKK+S7luWAkeiHquW3sSA8IHRoZW1zZWx2ZXM7Civos4fmnKzlrrYgPCBjYXBpdGFsaXN0Owor6Y6qIDwgdG9cLWVuZ3JhdmU7CivpjpsgPCBsYXJnZVwtYmVsbDsKK+WgseaVuCA8IG51bWJlclwtb2ZmOwor6Y2AIDwgdGVjaG5ldGl1bTsKK+aUtuWFpSA8IHRvXC10YWtlXC1pbjsKK+ipnuWFuCA8IGRpY3Rpb25hcnk7CivoqK3lnKggPCBsb2NhdGVkXC1hdDsKK+mZkOW6piA8IGxpbWl0YXRpb247Civoo7Hns4ogPCB3YWxsXC1wYXBlcjsKK+mIiiA8IGNhZG9saW5pdW07CivphqEgPCB3aW5lXC1wcmVzczsKK+mGnSA8IHdoaXRlXC13aW5lOwor5qqi5p+lIDwgaW5zcGVjdGlvbjsKK+mFhSA8IHJhaXNlXC1mZWV0Owor6Zi/5aGe5ouc55aGIDwgYXplcmJhaWphbjsKK+eAhuiBtyA8IHdyb25nZG9pbmc7Civluoflu5UgPCBcKG9mXC1hXC10cmVlOwor5LqM5omL6LKoIDwgc2Vjb25kaGFuZDsKK+mZsOWkqSA8IGNsb3VkeVwtZGF5Owor57WC5pa8IDwgZXZlbnR1YWxseTsKK+ioguWpmiA8IGVuZ2FnZW1lbnQ7Civpmbjln7ogPCBsYW5kXC1iYXNlZDsKK+mCj+i8r+eCuOW9iCA8IGxvZ2ljXC1ib21iOwor5bua5Y+4IDwgY29va1wsXC1jaGVmOwor5YKz6KqqIDwgaXRcLWlzXC1zYWlkOwor5Yi25a6aIDwgdG9cLWRyYXdcLXVwOwor5piT5o6l6L+RIDwgYWNjZXNzaWJsZTsKK+mArCA8IHRvXC1zY2F0dGVyOwor6YCf5bCEIDwgcmFwaWRcLWZpcmU7CivpgbrlgrMgPCBoZXJlZGl0YXJ5Owor6IiJ6L6mIDwgdG9cLWNvbmR1Y3Q7CivliKnlrrMgPCBmb3JtaWRhYmxlOwor6LqpIDwgdGFrZVwtcXVpY2s7CivlhaXnjYQgPCBnb1wtdG9cLWphaWw7CivnsbPnsokgPCByaWNlXC1mbG91cjsKK+Wcluino+iqquaYjiA8IGlsbHVzdHJhdGU7CivkuI3lsYjkuI3mkpMgPCB1bnlpZWxkaW5nOwor6LinIDwgdW5lYXNpbmVzczsKK+i4nCA8IHRvXC1zdHVtYmxlOwor6LiWIDwgdHJhbXBsZVwtb247CivovrLmnZEgPCBydXJhbFwtYXJlYTsKK+aDs+WDj+WKmyA8IGNvbmNlcHRpb247Civot5AgPCB0b1wtdHJhbXBsZTsKK+WJr+WIiiA8IHN1cHBsZW1lbnQ7CivmnInmsbrlv4MgPCBkZXRlcm1pbmVkOwor5qmE5qyW5qi5IDwgb2xpdmVcLXRyZWU7Civmk43loLQgPCBwbGF5Z3JvdW5kOwor5Z+65pa8IDwgYmVjYXVzZVwtb2Y7CivooY3oroogPCB0b1wtZGV2ZWxvcDsKK+WFqOeEtiA8IGNvbXBsZXRlbHk7CivlpKfohabmrbvkuqEgPCBicmFpblwtZGVhZDsKK+WcmOiBmiA8IHRvXC1yZXVuaXRlOwor6LGAIDwgdG9cLXF1YXJyZWw7CivniK3oq5bpu54gPCBjb250ZW50aW9uOwor55m954uQIDwgYXJjdGljXC1mb3g7Civmk4HloZ4gPCBjb25nZXN0aW9uOwor6KiO5Y6tIDwgZGlzZ3VzdGluZzsKK+isqiA8IHRvXC1jb25zdWx0Owor55m954a+IDwgd2hpdGVcLWhlYXQ7CivopIfpm5zmgKcgPCBjb21wbGV4aXR5Owor55m954aKIDwgcG9sYXJcLWJlYXI7Civnmb3nhaQgPCBhbnRocmFjaXRlOwor5YCa6Z2gIDwgdG9cLWxlYW5cLW9uOwor5bm85aWzIDwgeW91bmdcLWdpcmw7Civop4Dlr58gPCB0b1wtb2JzZXJ2ZTsKK+S9v+eUqOiAheS4reS7iyA8IHVzZXJcLWFnZW50Owor5YW15rOVIDwgYXJ0XC1vZlwtd2FyOwor55W26YG4IDwgYmVcLWVsZWN0ZWQ7CivoprggPCBzdGVhbFwtbG9vazsKK+ebo+aOpyA8IHRvXC1tb25pdG9yOwor57WQ5bGAIDwgY29uY2x1c2lvbjsKK+ijqiA8IHRoZVwtc2xlZXZlOwor5qyg5L2zIDwgc3Vib3B0aW1hbDsKK+mAseWIsCA8IHRob3VnaHRmdWw7Civopo/lvosgPCBkaXNjaXBsaW5lOwor6J+rIDwgc2lsdmVyZmlzaDsKK+ifoyA8IGxvdXNlXC1lZ2dzOwor566h6L2EIDwgYWRtaW5pc3RlcjsKK+ifgSA8IGFcLW1vc3F1aXRvOwor6IOh5oCd5LqC5oOzIDwgaW1hZ2luaW5nczsKK+WltueJm+WgtCA8IGRhaXJ5XC1mYXJtOwor5qi55qiBIDwgdHJlZVwtc3R1bXA7Civopa/miZggPCB0b1wtc2V0XC1vZmY7Civom5wgPCB3b29kXC1sb3VzZTsKK+aTjeWFuCA8IGRyaWxsXC1ib29rOwor6LeR6aasIDwgaG9yc2VcLXJhY2U7CivolqcgPCBkcmllZFwtZm9vZDsKK+aqouWvnyA8IHRvXC1pbnNwZWN0Owor6JWhIDwgaGVtcFwtc2VlZHM7Civlt6jmmJ8gPCBnaWFudFwtc3RhcjsKK+Wtl+evgOaVuCA8IGJ5dGVcLWNvdW50Owor6JO3IDwgbW90aGVyd29ydDsKK+mZhOWKoCA8IGFkZGl0aW9uYWw7Civokr0gPCBhbnRocmFjZW5lOwor6JKmIDwgdG9cLW1lYXN1cmU7CivokpYgPCBwbGFudFwtbmFtZTsKK+S4gOWIh+S6i+eJqSA8IGV2ZXJ5dGhpbmc7Civoka8gPCBvcnJpc1wtcm9vdDsKK+atjOe+heilv+abuCA8IGNvbG9zc2lhbnM7Civnm7jlsI0gPCByZWxhdGl2ZWx5Owor54Sh5YO5IDwgaW52YWx1YWJsZTsKK+aQj+aWlyA8IHRvXC13cmVzdGxlOwor6I21IDwgcG9sZW1vbml1bTsKK+WHuueUn+WcsCA8IGJpcnRocGxhY2U7CivkuI3nlLHoh6rkuLsgPCBjYW4nJ3RcLWhlbHA7Civmi5zoqJcgPCByZXF1ZXN0XC1zYjsKK+aOkueQgyA8IHZvbGxleWJhbGw7CivlupfkuLsgPCBzaG9wXC1vd25lcjsKK+S4jeS4i+S6jiA8IGFzXC1tYW55XC1hczsKK+eTtumguCA8IGJvdHRsZW5lY2s7CivluavliqkgPCBhc3Npc3RhbmNlOwor6ISqIDwgZXJ5c2lwZWxhczsKK+iElyA8IGNvaW5jaWRpbmc7Civluavlh7YgPCBhY2NvbXBsaWNlOwor5YWs5pKuIDwgbWlsbGlsaXRlcjsKK+iCpiA8IGxhcmdlXC1oZWFkOwor57GD55CDIDwgYmFza2V0YmFsbDsKK+aKseiyoCA8IGFzcGlyYXRpb247Civmm7zlvrnmlq/nibkgPCBtYW5jaGVzdGVyOwor5Ly96aas5bCE57eaIDwgZ2FtbWFcLXJheXM7CivlpKflqpLpq5QgPCBtYWNyb21lZGlhOwor566X6KGTIDwgYXJpdGhtZXRpYzsKK+aOqOa4rCA8IGNvbmplY3R1cmU7CivopoHloZ4gPCBzdHJvbmdob2xkOwor55m95peXIDwgd2hpdGVcLWZsYWc7Civmu7/otrMgPCB0b1wtc2F0aXNmeTsKK+mphemAkCA8IGJhbmlzaG1lbnQ7CivmpbXngrrpvpDlpKcgPCBtb251bWVudGFsOwor57mQIDwgZmluZVwtY2xvdGg7Civlgpnlv5jpjIQgPCBtZW1vcmFuZHVtOwor57iHIDwgZGVjb3JhdGlvbjsKK+ihqOekuiA8IHRvXC1leHByZXNzOwor5oyo5YCL5YWSIDwgb25lXC1ieVwtb25lOwor6L6y5ZySIDwgcGxhbnRhdGlvbjsKK+WFhOW8n+acgyA8IGZyYXRlcm5pdHk7CivnlZnogbLmqZ8gPCBncmFtb3Bob25lOwor57W6IDwgZmluZVwtbGluZW47CivmnInliKnlj6/lnJYgPCBwcm9maXRhYmxlOwor57WbIDwgc2lsa1wtYnJhaWQ7CivntZYgPCBmaW5lXC1zaWxrczsKK+e1kyA8IG9ic3RydWN0ZWQ7CivmipXos4cgPCBpbnZlc3RtZW50Owor57K7IDwgcHJvdmlzaW9uczsKK+eEoeaJgOS4jeiDvSA8IG9tbmlwb3RlbnQ7CivnnIvliLAgPCBzZWVcLVwodGhhdFwpOwor5o+Q5piHIDwgdG9cLXByb21vdGU7Civlk4jolqnlhYvmlq/lnaYgPCBrYXpha2hzdGFuOwor57ClIDwgbGFyZ2VcLXBpcGU7CivliIbpm6LkuLvnvqkgPCBzZXBhcmF0aXNtOwor5YWM5o+bIDwgdG9cLWNvbnZlcnQ7CivkuJbnlYzpioDooYwgPCB3b3JsZFwtYmFuazsKK+m7keiOk+WtkCA8IGJsYWNrYmVycnk7Civnr4sgPCByYXR0b25cLWJveDsKK+euoCA8IGhvcnNlXC13aGlwOwor566aIDwgYnJpZWZcLW5vdGU7CivlhazlvJUgPCBoZWN0b21ldGVyOwor56qwIDwgYnJpY2tcLWtpbG47CivlsIjploAgPCBzcGVjaWFsaXN0Owor56mtIDwgd2lsZFwtZ3JhaW47CivnnIvkvoYgPCBhcHBhcmVudGx5Owor6IeJ6ImyIDwgY29tcGxleGlvbjsKK+iNieWPoiA8IHVuZGVyYnJ1c2g7CivlhbzlrrkgPCBjb21wYXRpYmxlOwor5Zyo5LiL6Z2iIDwgdW5kZXJuZWF0aDsKK+elhSA8IGNhbGFtaXRpZXM7CivkuI3ororljJYgPCBpbnZhcmlhYmx5Owor6LuN5rivIDwgbmF2YWxcLXBvcnQ7CivmjInnq4sgPCBvcmRpbmF0aW9uOwor55Sf6KiIIDwgbGl2ZWxpaG9vZDsKK+ejkSA8IHN0b25lXC1taWxsOwor5o6M5quDIDwgc2hvcGtlZXBlcjsKK+ihqOePviA8IGV4cHJlc3Npb247CivlhanlsrggPCBiaWxhdGVyaWFsOwor56GDIDwgYVwtcmVkXC1tb2xlOwor5YWx5a2YIDwgdG9cLWNvZXhpc3Q7CivnnZ8gPCBjbGVhclwtZXllZDsKK+WbmueKryA8IGFcLXByaXNvbmVyOwor5YGJ57i+IDwgZ3JlYXRcLWFjdHM7CivooY3nlJ8gPCBkZXJ2aWF0aXZlOwor5Yaw5YiAIDwgaWNlXC1za2F0ZXM7CivmjqXmlLYgPCB0b1wtcmVjZWl2ZTsKK+aKgOihkyA8IHRlY2hub2xvZ3k7CivnlpUgPCBoZWFkXC1zb3JlczsKK+eVkyA8IHJpY2VcLWZpZWxkOwor55WBIDwgdG9cLWdpdmVcLXRvOwor5a6/6aGMIDwgYXNzaWdubWVudDsKK+mZjOeUn+S6uiA8IGFcLXN0cmFuZ2VyOwor546UIDwgZ3JlZW5cLWphZGU7CivprZrmjpIgPCBmaXNoXC1zdGVhazsKK+eEoeaJgOS4jeefpSA8IG9tbmlzY2llbnQ7CivmjIfnlLIgPCBmaW5nZXJuYWlsOwor6ZaL5pyD56WI56axIDwgaW52b2NhdGlvbjsKK+WtuOm9oSA8IHNjaG9vbFwtYWdlOwor54qbIDwgYVwtYmxhY2tcLW94Owor5LiN6YGp55W2IDwgaW5hZGVxdWF0ZTsKK+aNqOajhCA8IHRvXC1naXZlXC11cDsKK+mbu+imluiHuiA8IHR2XC1zdGF0aW9uOwor54mPIDwgcHJpdnlcLWhvbGU7CivniKsgPCByYWRpY2FsXC04NzsKK+S9v+mGiSA8IGludG94aWNhdGU7Civmi5jnpoEgPCBjb25zdHJhaW50Owor54aFIDwgc21vb3RoXC1vdXQ7CivlnIvmnIMgPCBwYXJsaWFtZW50Owor6aCY5bCO6IO95YqbIDwgbGVhZGVyc2hpcDsKK+i2hei2iiA8IHRvXC1zdXJwYXNzOwor54G6IDwgY2FuZGxlXC1lbmQ7CivngZIgPCB0b1wtc3BhdHRlcjsKK+aOqOW7oyA8IHBvcHVsYXJpemU7CivkuLvlipvoiaYgPCBiYXR0bGVzaGlwOwor5r+ZIDwgdG9cLXJldm9sdmU7Civmv4YgPCByaXZlclwtYmFuazsKK+S9o+mHkSA8IGNvbW1pc3Npb247Civnmb3llokgPCBkaXBodGhlcmlhOwor5o6I5oSPIDwgdG9cLWluc3BpcmU7CivlhazliIYgPCBjZW50aW1ldGVyOwor562G6ICFIDwgdGhlXC1hdXRob3I7Civms4YgPCBsaWNlbnRpb3VzOwor5L+d6IKyIDwgY2hpbGRcLWNhcmU7Civnmb3ljYAgPCB3aGl0ZVwtYXJlYTsKK+aPueWCtSA8IGJlXC1pblwtZGVidDsKK+a8q+eVqyA8IGNhcmljYXR1cmU7CivooYzkuI3pgJogPCB3b24nJ3RcLXdvcms7CivlgZzngasgPCBjZWFzZVwtZmlyZTsKK+ertueIreiAhSA8IGNvbXBldGl0b3I7Civoia/lv4MgPCBjb25zY2llbmNlOwor5qu+IDwgdGhlXC1wb21lbG87Civllq7oqr8gPCBtb25vdG9ub3VzOwor5qq8IDwgcmlkZ2VcLXBvbGU7CivooajmmI4gPCBtYWtlXC1rbm93bjsKK+acieezu+e1sSA8IHN5c3RlbWF0aWM7CivmspLkurrkvY8gPCB1bm9jY3VwaWVkOwor5qa8IDwgd2luZVwtZ2xhc3M7CivmpqYgPCB0cmVlXC10cnVuazsKK+WLleeJqeWtuCA8IHpvb2xvZ2ljYWw7CivmpLUgPCBwb21wZWxtb3VzOwor5qSzIDwgdGhlXC1waXZvdHM7CivmqKHku78gPCB0b1wtaW1pdGF0ZTsKK+aEj+imi+S4jeWQiCA8IGRpc3NlbnNpb247Civnm6fmo67loKEgPCBsdXhlbWJvdXJnOwor55m85L2IIDwgdG9cLXJlbGVhc2U7CivnrKzkuIPljYEgPCBzZXZlbnRpZXRoOwor5qCbIDwgdGhlXC1saWNoZWU7CivmoJggPCBmcnVpdFwtdHJlZTsKK+ainee0hCA8IHRyZWF0eXBhY3Q7CivlsI7oiKogPCBuYXZpZ2F0aW9uOwor5o6S5aSWIDwgeGVub3Bob2JpYzsKK+WwjuiHtCA8IHRvXC1sZWFkXC10bzsKK+WxleekuiA8IHRvXC1vcGVuXC11cDsKK+WGsOWHneWZqCA8IGNyeW9waG9ydXM7CivlsIvoiIsgPCB0b1wtcHJvdm9rZTsKK+adoiA8IHdvb2R3b3JrZXI7CivlhYjkvosgPCBhbnRlY2VkZW50Owor6LOT6aSoIDwgZ3Vlc3Rob3VzZTsKK+aok+S4iyA8IGRvd25zdGFpcnM7CivmlqIgPCB0b1wtcGx1bmRlcjsKK+aJk+e1kCA8IHRpZVwtYVwta25vdDsKK+Wtn+WKoOaLieWciyA8IGJhbmdsYWRlc2g7Civoh4bmuKwgPCBhc3N1bXB0aW9uOwor5b+D55CG5a24IDwgcHN5Y2hvbG9neTsKK+aTqiA8IHRvXC10dWNrXC1pbjsKK+aSsSA8IHRvXC1zaG9ydGVuOwor5rCj5ZaY5ZaYIDwgYnJlYXRobGVzczsKK+aLlOaysyA8IHR1Z1wtb2ZcLXdhcjsKK+esrOS4gOS+iyA8IGZpcnN0XC1jYXNlOwor55Sf55SiIDwgdG9cLXByb2R1Y2U7Civoo5zlhJ8gPCBjb21wZW5zYXRlOwor5o6xIDwgcGlja3BvY2tldDsKK+aOjiA8IGRyYWdcLWFzaWRlOwor5Lq66auUIDwgaHVtYW5cLWJvZHk7Civog57ooaMgPCBhZnRlcmJpcnRoOwor5oyW5o6YIDwgZXhjYXZhdGlvbjsKK+Wbm+W5tCA8IGZvdXJcLXllYXJzOwor55m+5YiG5LmL5Lmd5Y2BIDwgOTBcLXBlcmNlbnQ7CivmiaEgPCBkcmFnXC1hbG9uZzsKK+mkkOmkqCA8IHJlc3RhdXJhbnQ7CivogZbpnYggPCBob2x5XC1naG9zdDsKK+aGuCA8IHRvXC1mbGF0dGVyOwor5oyH5o6nIDwgYWNjdXNhdGlvbjsKK+aGjSA8IGJlXC1oYXVnaHR5Owor5oaAIDwgdG9cLXJlbHlcLW9uOwor5byV5Lq65rOo5oSPIDwgYXR0cmFjdGl2ZTsKK+aJi+eovyA8IG1hbnVzY3JpcHQ7CivmirnmsrkgPCB0b1wtYW5ub2ludDsKK+aEkyA8IHByb2ZsaWdhdGU7CivooajlsLogPCByZWFyXC1zaWdodDsKK+aDjyA8IGF2YXJpY2lvdXM7CivmkanlpKnmkZ8gPCBza3lzY3JhcGVyOwor55Wi5qWtIDwgZ3JhZHVhdGlvbjsKK+aBmyA8IGRpc29yZGVyZWQ7Civlm7rln7cgPCBwZXJzaXN0ZW50Owor5oCyIDwgYmVcLWFueGlvdXM7Civlvb8gPCByZXNlbWJsaW5nOwor5p+l6KmiIDwgdG9cLWlucXVpcmU7CivlvIcgPCBjb3Zlclwtb3ZlcjsKK+W7gCA8IHRvXC1jb25jZWFsOwor5b+Y5oGp6LKg576pIDwgdW5ncmF0ZWZ1bDsKK+eWkeaFriA8IGhlc2l0YXRpb247CivllonoiIwgPCBtb3V0aHBpZWNlOwor6IGv6YCaIDwgY29ubmVjdGlvbjsKK+W+l+S4jeWIsCA8IGNhbm5vdFwtZ2V0Owor6aeQ57SuIDwgdG9cLXN0YXRpb247CivnsL3lh7ogPCB0b1wtbG9nXC1vZmY7CivlsYQgPCB0aGVcLXZhZ2luYTsKK+mHjeimgeaApyA8IGltcG9ydGFuY2U7CivppIXpkLogPCBiYWtpbmdcLXBhbjsKK+WuvCA8IHR5cmFubmljYWw7CivmioDooZPlk6EgPCB0ZWNobmljaWFuOwor6Y6X566hIDwgZ3VuXC1iYXJyZWw7Civlqp8gPCBsdXN0XC1hZnRlcjsKK+mQteadvyA8IGlyb25cLXBhbmVsOwor6Y+I55KwIDwgY2hhaW5cLWxpbms7Civnm7jlkIzlkI3lrZcgPCBsaWtlXC1uYW1lZDsKK+erreeboSA8IGV4aGF1c3Rpb247Civou43kurogPCBzZXJ2aWNlbWFuOwor5L2/5Lq65L+h5pyNIDwgY29udmluY2luZzsKK+iAgemgrSA8IG9sZFwtZmVsbG93Owor5ZGo5oGp5L6GIDwgemhvdVwtZW5sYWk7Civnj77osaEgPCBhcHBlYXJhbmNlOwor6Y6u55ebIDwgYW5hbGdlc2lhYzsKK+WggyA8IGNvbXBsaWFuY2U7CivmnInoiIjotqMgPCBpbnRlcmVzdGVkOwor6Ieq5bCKIDwgc2VsZlwtcHJpZGU7CivlrprnvqkgPCBkZWZpbml0aW9uOwor5ZymIDwgd2F0ZXJcLWdhdGU7Civlm4wgPCBsb3F1YWNpb3VzOwor5ZqyIDwgcmVhZFwtYWxvdWQ7CivkuI3ntpPmhI8gPCBjYXJlbGVzc2x5Owor56u254itIDwgdG9cLWNvbXBldGU7CivmiZPlrZfmqZ8gPCB0eXBld3JpdGVyOwor5ZS9IDwgdG9cLXR3aXR0ZXI7Civlr6bnj74gPCB0b1wtYWNoaWV2ZTsKK+WCt+S6oSA8IGNhc3VhbHRpZXM7CivlkbQgPCBicmVhdGhlXC1vbjsKK+WAjeWinuWZqCA8IG11bHRpcGxpZXI7Civmpa3kvZkgPCBzcGFyZVwtdGltZTsKK+mHkeWxrOe3miA8IG1ldGFsXC13aXJlOwor6KGM5YiXIDwgcHJvY2Vzc2lvbjsKK+WNnSA8IGhhaXJcLXN0eWxlOwor55eF5YGHIDwgc2lja1wtbGVhdmU7CivmnJ/pmZAgPCB0aW1lXC1saW1pdDsKK+WKjyA8IHRvXC1idXRjaGVyOwor6Zu75a2Q56m66ZaTIDwgY3liZXJzcGFjZTsKK+WGmCA8IHRvXC1tb3ZlXC1vbjsKK+itmOWIpeiZnyA8IGlkZW50aWZpZXI7CivmiormiLIgPCBhY3JvYmF0aWNzOwor55Sf5pyJ5qyKIDwgYmlydGhyaWdodDsKK+WBrSA8IHRyYW5zZ3Jlc3M7CivlgZ0gPCBub3RcLWZhY2luZzsKK+a2iOiyuyA8IHRvXC1jb25zdW1lOwor5oyB5Y2h5Lq6IDwgY2FyZGhvbGRlcjsKK+ihjOS6uiA8IHBlZGVzdHJpYW47CivlgIAgPCBiZXdpbGRlcmVkOwor5q+b5r6k5p2xIDwgbWFvXC16ZWRvbmc7Civmm7jpnaIgPCBpblwtd3JpdGluZzsKK+WFreWNgeS6lCA8IHNpeHR5XC1maXZlOwor5Ly3IDwgZGVzY2VuZGVudDsKK+WkmuWqkumrlCA8IG11bHRpbWVkaWE7Civnr4DliLYgPCB0ZW1wZXJhbmNlOwor5oq15oqX5YqbIDwgcmVzaXN0YW5jZTsKK+iFkOaVlyA8IGNvcnJ1cHRpb247CivktqsgPCBmaW5lXC10ZWV0aDsKK+S2iSA8IGd1aW5lYVwtcGlnOwor5LWqIDwgcHVyZVwtYmxhY2s7CivktZ0gPCBkYXJrXC1ibGFjazsKK+eNuOmGqyA8IHZldGVyaW5hcnk7Civlvq7kuI3otrPpgZMgPCBuZWdsaWdpYmxlOwor5YGa5Ye6IDwgdG9cLXB1dFwtb3V0Owor5L2c54K6IDwgYWNjb21wbGlzaDsKK+SzlSA8IHRoZVwtcGlnZW9uOwor5LOMIDwgdGhlXC1jdWNrb287CivmipjlsIQgPCByZWZyYWN0aW9uOwor5LGdIDwgYmxhY2tcLWNhcnA7CivksYQgPCBhXC1mbGF0ZmlzaDsKK+WWieeCjiA8IGxhcnluZ2l0aXM7CivksKwgPCB3aWxkXC1naG9zdDsKK+S/oeW/gyA8IGNvbmZpZGVuY2U7CivksIQgPCBzaG9ydFwtaGFpcjsKK+SvlCA8IHRvXC1pbmNsaW5lOwor5K+MIDwgdGhlXC1zYWNydW07Civnj43ol48gPCBjb2xsZWN0aW9uOwor5aSn5Li75pWZIDwgYXJjaGJpc2hvcDsKK+SujSA8IGN1cmxpbmdcLXVwOwor5K24IDwgYVwtc3RhbGxpb247CivoqabnrpfooaggPCBzcGVhZHNoZWV0Owor5Ky3IDwgd2VsbFwtZmVlZFwuOwor6IGW6IG3IDwgcHJpZXN0aG9vZDsKK+SrpSA8IGFcLXdyeVwtbmVjazsKK+mBlOiztOWWh+WYmyA8IGRhbGFpXC1sYW1hOwor5Kq6IDwgdGVldGhyaWRnZTsKK+SqoCA8IHB1bHZlcml6ZWQ7CivpjLbnm6QgPCBkaWFsXC1wbGF0ZTsKK+SpsSA8IGFcLXNjYWJiYXJkOwor5qGD5qi5IDwgcGVhY2hcLXRyZWU7Civnmb3lj6PpkLUgPCB3aGl0ZVwtaXJvbjsKK+SpgSA8IHRoaW5cLWhhaXJzOwor5Zau5qihIDwgc2luZ2xlbW9kZTsKK+SovSA8IHRvXC1yZXNvbHZlOwor5KipIDwgdGhlXC1zcGlyaXQ7CivkuI3mj6PlhpLmmKcgPCB2ZW50dXJlXC10bzsKK+SnvyA8IHRoZVwtbWFncGllOwor5KejIDwgdG9cLXN0b3BcLXVwOwor5oOz6LGhIDwgdG9cLWltYWdpbmU7Civkpq8gPCB2ZXJ5XC1kZW5zZTsKK+S4i+mZjSA8IHRvXC1kZWNsaW5lOwor5KaNIDwgdG9cLWluY2x1ZGU7CivkpL4gPCB0b1wtY29udGFpbjsKK+SkvSA8IGZhcm1cLXRvb2xzOwor5bGk5aOTIDwgbGFtaW5hdGlvbjsKK+esrOWNgeWFqyA8IGVpZ2h0ZWVudGg7CivlkajpgJ8gPCBjeWNsZVwtdGltZTsKK+aatOmiqCA8IHN0b3JtXC13aW5kOwor5a+m6amX5a6kIDwgbGFib3JhdG9yeTsKK+ShpyA8IGFcLWNhcnJpYWdlOwor5KGaIDwgaW1wbGVtZW50czsKK+WxrOWcsCA8IGRlcGVuZGVuY3k7CivkoY4gPCBhXC13aW5kbGFzczsKK+SguCA8IG9ic2VxdWlvdXM7CivkoLYgPCB0b1wtcHJvamVjdDsKK+SgqSA8IHRvXC11cmluYXRlOwor5KCfIDwgdG9cLXRyaXBcLXVwOwor5ryy5YO5IDwgYXBwcmVjaWF0ZTsKK+SgmCA8IG9uZVwtbGVnZ2VkOwor6IGW57aTIDwgaG9seVwtYmlibGU7Civku7/nnJ8gPCB0b1wtZW11bGF0ZTsKK+ecgeeVpeespuiZnyA8IGFwb3N0cm9waGU7CivkuI3lsI3norTlhZIgPCBub3RcLXByb3BlcjsKK+S7i+e0uSA8IHRvXC1wcmVzZW50Owor5J+ZIDwgdG9cLXN0YWdnZXI7Civkn4QgPCBpblwtYVwtaHVycnk7Civknb8gPCBob25vdXJhYmVsOwor5J23IDwgc2VjdXJpdGllczsKK+SdsSA8IHRvXC10cm91YmxlOwor5JyZIDwgbm90XC1jbGV2ZXI7CivknIsgPCB0b1wtc3VzcGVuZDsKK+e8uum7niA8IHdlYWtcLXBvaW50Owor5JuyIDwgdG9cLWRlY2VpdmU7Civkm6YgPCBsaXRpZ2F0aW9uOwor5JuEIDwgdG9cLWNvbnNvbGU7CivmnKzooYwgPCBvbmUnJ3NcLWxpbmU7Civmu7LlnZEgPCBzZXdhZ2VcLXBpdDsKK+ertuaKgCA8IHRvdXJuYW1lbnQ7CivnrKzljYHkuZ0gPCBuaW5ldGVlbnRoOwor5JazIDwgamVsbHlcLWZpc2g7CivpkLXljKAgPCBibGFja3NtaXRoOwor5Lu755SoIDwgdG9cLWFwcG9pbnQ7Civmnb/ntJkgPCBwYXBlcmJvYXJkOwor56ys5Y2B5LiJIDwgdGhpcnRlZW50aDsKK+SVoSA8IGNvbXBvc2l0YWU7CivmqZ/pl5zou4ogPCBsb2NvbW90aXZlOwor5L+d5r2U566xIDwgbGl0dGVyXC1iaW47CivklJggPCBmaXNoXC1wYXN0ZTsKK+iAgeW5tOS6uiA8IG9sZFwtcGVvcGxlOwor5JO1IDwgdG9cLWJsb3Nzb207Civms6LplbcgPCB3YXZlbGVuZ3RoOwor5JOkIDwgdmVnZXRhdGlvbjsKK+WwiOW/gyA8IGFic29ycHRpb247Civkk4YgPCB0b1wtY3V0XC10aGU7CivkkqIgPCBzd2VldFwtZmxhZzsKK+eZvOiBsuazlSA8IGludG9uYXRpb247Civkka0gPCB3YXJcLXZlc3NlbDsKK+SRjSA8IHRvXC1zd2FsbG93Owor5JCiIDwgdG9cLXdyaW5rbGU7Civkj60gPCB0aGVcLWNoZWVrczsKK+SPjCA8IHRvXC12aWJyYXRlOwor5I6fIDwgdG9cLWZhd25cLW9uOwor5YCL5YilIDwgaW5kaXZpZHVhbDsKK+acg+ioiCA8IGFjY291bnRhbnQ7CivkjbUgPCB5b3VuZ1wtZ29hdDsKK+SNniA8IGFcLWRyYWdcLW5ldDsKK+SNlyA8IHRvXC1oYW5nXC11cDsKK+SNlCA8IGFcLWZ1bGxcLW5ldDsKK+aEj+aDs+S4jeWIsCA8IHVuZXhwZWN0ZWQ7CivmtYHooYAgPCBzaGVkXC1ibG9vZDsKK+iCieeJhyA8IG1lYXRcLXNsaWNlOwor5IuxIDwgYVwtd2lsZFwteWFrOwor5Yaw5LiK6YGL5YuVIDwgaWNlXC1zcG9ydHM7CivlhazplovoqI7oq5bmnIMgPCBvcGVuXC1mb3J1bTsKK+SKqSA8IHJpY2VcLWdyYXZ5Owor5rqr5a6kIDwgZ3JlZW5ob3VzZTsKK+e+juS5g+a7i+mGrCA8IG1heW9ubmFpc2U7CivkuI3lubPlh6EgPCBtYXJ2ZWxsb3VzOwor5oqR5Yi2IDwgdG9cLWluaGliaXQ7Civkh44gPCB0b1wtc3RhcnRsZTsKK+S9nOaWmSA8IGNvbmRpbWVudHM7Civkh4cgPCB0aGVcLXBlb3BsZTsKK+SGiyA8IHRoZVwtYXV0dW1uOwor5IWUIDwgZGVhZFwtY3JvcHM7CivltJHltJnlsbEgPCBtdFwuXC1rdW5sdW47Civkvr/lo7ogPCBiZWRcLXVyaW5hbDsKK+SEnyA8IHRvXC13b3JzaGlwOwor5L2/5oCSIDwgZXhhc3BlcmF0ZTsKK+S+neWxrCA8IGRlcGVuZGVuY2U7CivkgZ4gPCBhXC1wcm92aW5jZTsKK+SBgSA8IHN0cmFiaXNtdXM7CivnrYnliLAgPCB3YWl0XC11bnRpbDsKK+Wwj+WnkCA8IHlvdW5nXC1sYWR5Owor5Luj6KGo5ZyYIDwgZGVsZWdhdGlvbjsKK+O9qCA8IGZyYWdtZW50ZWQ7CivjvaMgPCBhXC1mcm9udGllcjsKK+O9mCA8IGJvcmRlcmxhbmQ7CivmoYzluIMgPCB0YWJsZWNsb3RoOwor47y5IDwgZWFydGVud2FyZTsKK+iDjOaZryA8IGJhY2tncm91bmQ7CivkuI3oroogPCB1bmNoYW5naW5nOwor5LiA6LKrIDwgY29uc2lzdGVudDsKK+O6syA8IGJsYWNrXC1taWNhOwor47qFIDwgdGhlXC1tb25rZXk7Civmibnlh4YgPCB0b1wtYXBwcm92ZTsKK+O4qCA8IGFcLWJpZ1wtYnVsbDsKK+O4jCA8IHRvXC10d2lua2xlOwor47e3IDwgdGhpY2tcLXNvdXA7Civjtq0gPCBhbG1vc3RcLWRyeTsKK+O2nCA8IGRlZXBcLXdhdGVyOwor56eR57O7IDwgZGVwYXJ0bWVudDsKK+O1gCA8IHdhdGVyXC1mbG93Owor5oSB57eSIDwgbWVsYW5jaG9seTsKK+elnuipsSA8IGZhaXJ5XC10YWxlOwor5L2P5omAIDwgaGFiaXRhdGlvbjsKK+W9seWDj+aqlCA8IGltYWdlXC1maWxlOwor47KvIDwgbG9uZ1wtaGFpcnk7CivpoZvopoYgPCBzdWJ2ZXJzaW9uOwor47KMIDwgZG9nJydzXC1oYWlyOwor47KJIDwgZWdnXC1zaGVsbHM7CivjsaYgPCB0b1wtZGlzY2FyZDsKK+OxnCA8IHBlc3RpbGVuY2U7CivmoYjlrZAgPCBsb25nXC10YWJsZTsKK+OvhyA8IGFcLXN0b2NrYWRlOwor5bGF5L2P6ICFIDwgaW5oYWJpdGFudDsKK+OssSA8IHRvXC1yZXBsYWNlOwor46yqIDwgdG9cLWZvbGRcLXVwOwor46ukIDwgYVwtbG9uZ1wtZGF5Owor46qMIDwgdG9cLWxlYWRcLW9uOwor46m5IDwgdG9cLXBpbGVcLW9uOwor46meIDwgdG9cLWJhY2tcLXVwOwor46ivIDwgdG9cLWVubGFyZ2U7CivjqK4gPCB0b1wtbGlmdFwtdXA7Civmt5jmsbAgPCB0b1wtZGllXC1vdXQ7CivogqXmlpkgPCBmZXJ0aWxpemVyOwor46aCIDwgY29uc3RhbnRseTsKK+OltiA8IHRvXC1maWxsXC11cDsKK+OloyA8IHRvXC1iZW5lZml0Owor46S3IDwgdG9cLWRlYmF1Y2g7CivjpJAgPCBkaXNoYXJtb255Owor54uh6L6vIDwgdG9cLXF1aWJibGU7Civjo70gPCB0b1wtZm9yZ2l2ZTsKK+OjhSA8IGJvd1wtc3RyaW5nOwor46OAIDwgdG9cLXJlYm91bmQ7Civjoq0gPCBhXC1ib3dcLWNhc2U7CivjopogPCBhXC1jb3JyaWRvcjsKK+OijyA8IGFcLWNlc3Nwb29sOwor46GlIDwgdG9cLWN1cmxcLXVwOwor5pq06KGMIDwgc2F2YWdlXC1hY3Q7Civlm5vnmb7lhIQgPCA0MFwtYmlsbGlvbjsKK+WvpuWcqCA8IGluXC1yZWFsaXR5Owor6Im+5ruL55eF55eF5q+SIDwgYWlkc1wtdmlydXM7CivjnqAgPCBtYWxlXC1vcmdhbjsKK+mZuOi7jeS4reWwiSA8IGxpZXV0ZW5hbnQ7Civjno4gPCBib2R5XC13YXN0ZTsKK+OdryA8IHRvXC1zb2pvdXJuOwor45qgIDwgZnVsbFwtZ3Jvd247CivjmbogPCBjcm9zc1wtcm9hZDsKK+i2heWNhyA8IGV4YWx0YXRpb247Civlj5vou40gPCByZWJlbFwtYXJteTsKK+OYpyA8IHByZWNlZGVuY2U7CivnjbjnqbQgPCBhbmltYWxcLWRlbjsKK+OXrCA8IHRoaWNrXC1saXBzOwor45erIDwgdG9cLXdoaXNwZXI7CivlvarlvaLlpKfmvKIgPCBidXJseVwtY2hhcDsKK+itpumQmCA8IGFsYXJtXC1iZWxsOwor45aGIDwgdG9cLWNvbmRlbW47Civog5blrZAgPCBmYXRcLXBlcnNvbjsKK+OVjSA8IHRvXC1oZWFwXC11cDsKK+OVhiA8IGZpbmVcLXN0b25lOwor45S3IDwgdG9cLXNlY3JldGU7CivjlJggPCB0b1wtZGVncmFkZTsKK+OUkyA8IHRvXC1zdGFtbWVyOwor45SMIDwgdG9cLWN1dFwtb2ZmOwor45O6IDwgY2FzdHJhdGlvbjsKK+WtmOaUviA8IHRvXC1kZXBvc2l0Owor6aST5q27IDwgc3RhcnZhdGlvbjsKK+OStyA8IHRvXC1wcm9zcGVyOwor45CkIDwgdG9cLWltcGxvcmU7CivokKzkuovpgZTljaEgPCBtYXN0ZXJjYXJkOwor5L215ZCeIDwgc3dhbGxvd1wtdXA7CivlrbjlvpIgPCBhcHByZW50aWNlOwor5p2/5qiBIDwgc2hlZXRcLXBpbGU7CivlkKbmsbrmrIogPCB2ZXRvXC1wb3dlcjsKK+aIkOWIhiA8IGluZ3JlZGllbnQ7CivltIfmi5zogIUgPCB3b3JzaGlwcGVyOwor5oKU572qIDwgY29udmljdGlvbjsKK+iDveWKmyA8IGNhcGFiaWxpdHk7CivmiLLliofljJYgPCB0aGVhdHJpY2FsOwor5b+F6aCIIDwgdG9cLWhhdmVcLXRvOwor6IKv5a6aIDwgdG9cLWJlXC1zdXJlOwor5Lu75oCnIDwgY2FwcmljaW91czsKK+eOi+eJjCA8IHRydW1wXC1jYXJkOwor5paw6IGe5aqS6auUIDwgbmV3c1wtbWVkaWE7CivloIXlrprkuI3np7sgPCB1bnN3ZXJ2aW5nOwor6Z2e55uI5YipIDwgbm9uXC1wcm9maXQ7CivljZfpnaIgPCBzb3V0aFwtc2lkZTsKK+S9v+WuueaYkyA8IGZhY2lsaXRhdGU7CivnoJTnqbblk6EgPCByZXNlYXJjaGVyOwor6JaE6I23IDwgZmllbGRcLW1pbnQ7CivppqzlipsgPCBob3JzZXBvd2VyOwor5pyI55CDIDwgXCh0aGVcKVwtbW9vbjsKK+ePvuaIkCA8IHJlYWR5XC1tYWRlOwor6K2w6KuWIDwgdG9cLWNvbW1lbnQ7Civpoqjmv5UgPCByaGV1bWF0aXNtOwor576k55y+IDwgdGhlXC1tYXNzZXM7CivkuInmnIjkuozljYHkuInomZ8gPCBtYXJjaFwtMjNyZDsKK+atpOaZguS7peWJjSA8IGhlcmV0b2ZvcmU7Civku4HmhYggPCBiZW5ldm9sZW50Owor55uu5pOK6ICFIDwgZXlld2l0bmVzczsKK+S7iuW+jCA8IGhlbmNlZm9ydGg7CivomZvmk6wgPCBmaWN0aXRpb3VzOwor5bCI6ZaA5YyWIDwgc3BlY2lhbGl6ZTsKK+Wkmum7qCA8IG11bHRpcGFydHk7CivkuI3nlbYgPCB1bnN1aXRhYmxlOwor5rKI6JC9IDwgc2lua1wsXC1mYWxsOwor6Kyb6L+wIDwgdGFsa1wtYWJvdXQ7CivlrqPkvYggPCB0b1wtZGVjbGFyZTsKK+aRqeaJmOi7iiA8IG1vdG9yY3ljbGU7CivmnJ3prq7miLDniK0gPCBrb3JlYW5cLXdhcjsKK+m8k+aOjCA8IHRvXC1hcHBsYXVkOwor5Lul5aSWIDwgYXBhcnRcLWZyb207CivoqILos7zogIUgPCBzdWJzY3JpYmVyOwor54iG6Z+zIDwgc29uaWNcLWJvb207CivlpKfpq5QgPCBpblwtZ2VuZXJhbDsKK+mjn+aMhyA8IGZvcmVmaW5nZXI7CivnibTop7ggPCBjb250cmFkaWN0Owor56iL5bqPIDwgcHJvY2VkdXJlczsKK+aYjuiogCA8IHByb25vdW5jZWQ7Civpoa/lvq7pj6EgPCBtaWNyb3Njb3BlOwor5pys5pyIIDwgdGhpc1wtbW9udGg7Civljp/nlJ/os6ogPCBwcm90b3BsYXNtOwor5aSa5pa56Z2iIDwgbWFueVwtc2lkZWQ7Civlk7LlrbggPCBwaGlsb3NvcGh5Owor5rCj6LGhIDwgbWV0ZW9yb2xneTsKK+S6kuaDoCA8IHJlY2lwcm9jYWw7CivlkKvnh5AgPCBwaG9zcGhvcmljOwor5pu05q2jIDwgY29ycmVjdGlvbjsKK+m7keadvyA8IGJsYWNrYm9hcmQ7CivmlrDogZ7lrbggPCBqb3VybmFsaXNtOwor5LiN5a6a6KmeIDwgaW5maW5pdGl2ZTsKK+mgkOefpSA8IGFudGljaXBhdGU7Civku6Xlj4ogPCBhc1wtd2VsbFwtYXM7CivkuLvmoLwgPCBub21pbmF0aXZlOwor6YyE5Y+WIDwgdG9cLXJlY3J1aXQ7CivmlrDpg44gPCBicmlkZWdyb29tOwor6ICM5b6MIDwgYWZ0ZXJcLXRoYXQ7CivmgrLmrYwgPCBzYWRcLW1lbG9keTsKK+S6uuWdhyA8IHBlclwtY2FwaXRhOwor5Y+v55aRIDwgc3VzcGljaW91czsKK+iAjOW3siA8IHRoYXQnJ3NcLWFsbDsKK+mbo+S7pee9ruS/oSA8IGluY3JlZGlibGU7CivmtbTlt74gPCBiYXRoXC10b3dlbDsKK+WQiueHiCA8IGNoYW5kZWxpZXI7CivlhbHlkozmlL/pq5QgPCByZXB1YmxpY2FuOwor6IGy5YO5IDwgcmVwdXRhdGlvbjsKK+S4jeewoeWWriA8IG5vdFwtc2ltcGxlOwor5Y+X5YK35a6zIDwgYmVcLWluanVyZWQ7Civnq6/ns7vntbEgPCBlbmRcLXN5c3RlbTsKK+iWhOeJhyA8IHRoaW5cLXNsaWNlOwor5pu05pawIDwgdXBcLXRvXC1kYXRlOwor6aGr5qCXIDwgdG9cLXRyZW1ibGU7Civpm4bpq5QgPCBjb2xsZWN0aXZlOwor5aSW5Lqk5omL6IWVIDwgZGlwbG9tYXRpYzsKK+aVl+mcsiA8IFwob2ZcLWFcLXBsb3Q7CivoqabpqZcgPCBleHBlcmltZW50Owor5Lq65Y+jIDwgcG9wdWxhdGlvbjsKK+S4ieeZvuWEhCA8IDMwXC1iaWxsaW9uOwor5q246aCGIDwgc3VibWlzc2lvbjsKK+Wksei5pCA8IGJlXC1taXNzaW5nOwor6aO95ZKMIDwgc2F0dXJhdGlvbjsKK+atoemosCA8IGp1YmlsYXRpb247Civlvozoo5QgPCBkZXNjZW5kYW50Owor6YeR54mMIDwgZ29sZFwtbWVkYWw7CivpnZ7lsI3nqLEgPCBhc3ltbWV0cmljOwor5LiN5pyDIDwgaW1wcm9iYWJsZTsKK+S4iuaciCA8IGxhc3RcLW1vbnRoOwor5Y2K5rG66LO9IDwgc2VtaWZpbmFsczsKK+eip+e2oCA8IGRhcmtcLWdyZWVuOwor6ICB5aWXIDwgb2xkXC10aGluZ3M7Civlj4rniakgPCB0cmFuc2l0aXZlOwor6I6r6aCI5pyJIDwgZ3JvdW5kbGVzczsKK+S4jeiyt+izrCA8IG5vdFwtYnV5XC1pdDsKK+ejgeebpOmpheWLleWZqCA8IGRpc2xcLWRyaXZlOwor6Zu76LuKIDwgdHJvbGxleWJ1czsKK+mhp+aFriA8IG1pc2dpdmluZ3M7Civlj6/mr5QgPCBjb21wYXJhYmxlOwor6IWT56uL5q+U5pu4IDwgcGhpbGlwaWFuczsKK+S6i+WFiCA8IGluXC1hZHZhbmNlOwor6K2m54qsIDwgcG9saWNlXC1kb2c7CivliZvpq5QgPCByaWdpZFwtYm9keTsKK+aZr+awoyA8IHByb3NwZXJpdHk7CivljZznra4gPCBkaXZpbmF0aW9uOwor5aWz6KOd6KOB57ir5birIDwgZHJlc3NtYWtlcjsKK+S4jeW/qyA8IGJlXC11bmhhcHB5Owor5aWz5a2455SfIDwgc2Nob29sZ2lybDsKK+aUuemAsiA8IHRvXC1pbXByb3ZlOwor6Zu76KaWIDwgdGVsZXZpc2lvbjsKK+W+jOiAhSA8IHRoZVwtbGF0dGVyOwor57qP57meIDwgaW50ZXJ0d2luZTsKK+WKoOmAnyA8IGFjY2VsZXJhdGU7Civoq7Pnt7QgPCBjb252ZXJzYW50Owor5LiL5YCL5pyIIDwgbmV4dFwtbW9udGg7CivpqI7lo6vpoqjmoLwgPCBrbmlnaHRob29kOwor6Y+I6Lev5bGkIDwgbGlua1wtbGF5ZXI7CivkuIDluqYgPCBmb3JcLWFcLXRpbWU7CivmraHov44gPCB0b1wtd2VsY29tZTsKK+WMluWmneiInuacgyA8IG1hc3F1ZXJhZGU7Civloqjpj6EgPCBzdW5nbGFzc2VzOwor5Ymd6ZuiIDwgXChvZlwtdGlzc3VlOwor5b2I6JelIDwgYW1tdW5pdGlvbjsKK+a6q+WSjOaApyA8IHRlbmRlcm5lc3M7CivkuI3lrokgPCBpbnRyYW5xdWlsOwor5pyf5YiKIDwgcGVyaW9kaWNhbDsKK+efpeimuiA8IHBlcmNlcHRpb247CivmiYDmnInogIUgPCBwcm9wcmlldG9yOwor5ZCM5oOFIDwgY29tcGFzc2lvbjsKK+mBqemFjSA8IGFkYXB0YXRpb247CivlkIjmhI8gPCBhY2NlcHRhYmxlOwor5aSn6IejIDwgY2hhbmNlbGxvcjsKK+WQjOaApyA8IGhvbW9zZXh1YWw7Civml6Xnm4ogPCBkYXlcLWJ5XC1kYXk7CivljYrnqbrkuK0gPCBpblwtbWlkXC1haXI7CivmnKzku70gPCBvbmUnJ3NcLWR1dHk7CivlpbPmnI3nianlk6EgPCBzdGV3YXJkZXNzOwor5rKS5pyJ55+l6Ka6IDwgaW5zZW5zaWJsZTsKK+S4jeetieW8jyA8IGluZXF1YWxpdHk7CivmnIPlj4sgPCBtZW1iZXJzaGlwOwor5pqX6ZaT5YWSIDwgaW5uZXJcLXJvb207Civoh6rli5XljJYgPCBhdXRvbWF0aW9uOwor5LiN5aSgIDwgbm90XC1lbm91Z2g7Civllq7mlrnpnaIgPCB1bmlsYXRlcmFsOwor56eB5LiLIDwgaW5cLXByaXZhdGU7Civms6Lls7AgPCB3YXZlXC1jcmVzdDsKK+S4ieWkqSA8IHRocmVlXC1kYXlzOwor5Y+N5pelIDwgYW50aVwtamFwYW47Civlu7rorbAgPCB0b1wtcHJvcG9zZTsKK+S9m+aVmeW+kiA8IGFcLWJ1ZGRoaXN0Owor5rOi5bCOIDwgd2F2ZVwtZ3VpZGU7CivlqaLlpbMgPCBzbGF2ZVwtZ2lybDsKK+aykuaUtiA8IGNvbmZpc2NhdGU7Civlv6vmtLsgPCBnYXlcLFwtaGFwcHk7Civlj6/mgrIgPCBsYW1lbnRhYmxlOwor6KmV6Ki7IDwgY29tbWVudGFyeTsKK+W/heeEtiA8IGluZXZpdGFibGU7CivljYrnkIMgPCBoZW1pc3BoZXJlOwor6Z+/5oeJIDwgcmVzcG9uZFwtdG87CivlpKfntrEgPCBtYWluXC1wb2ludDsKK+awo+WLoua0tua0tiA8IGFnZ3Jlc3NpdmU7Civng6TptKggPCByb2FzdFwtZHVjazsKK+atjOipniA8IHNvbmdcLWx5cmljOwor5Lim5YWlIDwgbWVyZ2VcLWludG87CivlvLHohIggPCB3ZWFrXC1wdWxzZTsKK+aTjeiIteWupCA8IHBpbG90aG91c2U7Civljp/mnKwgPCBvcmlnaW5hbGx5Owor5ZC45ZCuIDwgdG9cLXN1Y2tcLWluOwor54iG56C0IDwgdG9cLWJsb3dcLXVwOwor6YGT6LOAIDwgY29tcGxpbWVudDsKK+WPluW+lyA8IHRvXC1hY3F1aXJlOwor5LiK5Y2KIDwgZmlyc3RcLWhhbGY7CivmlZnogrIgPCB0b1wtZWR1Y2F0ZTsKK+S4jeWLlSA8IG1vdGlvbmxlc3M7CivkuIPljYHlubTku6MgPCB0aGVcLTE5NzAnJ3M7Civopb/pu54gPCB3ZXN0XC1wb2ludDsKK+aWl+ecvCA8IGNyb3NzXC1leWVkOwor55y86Y+hIDwgc3BlY3RhY2xlczsKK+S4jeWCmSA8IHVucHJlcGFyZWQ7CivmgavlmocgPCBpbnRpbWlkYXRlOwor5aWJ5427IDwgY29uc2VjcmF0ZTsKK+S4jeS+nSA8IG5vdFwtY29tcGx5Owor6Zu75ZSx5qmfIDwgcGhvbm9ncmFwaDsKK+aWh+ebsiA8IGlsbGl0ZXJhdGU7CivmmI7mmbogPCBub3RcLXVud2lzZTsKK+a1geeoi+WcliA8IGZsb3dcLWNoYXJ0Owor55uj552j6ICFIDwgc3VwZXJ2aXNvcjsKK+S4gOeZvuS6lOWNgeWEhCA8IDE1XC1iaWxsaW9uOwor5pKe6YedIDwgZmlyaW5nXC1waW47CivljZfmpbUgPCBzb3V0aFwtcG9sZTsKK+aJgOacieeJqSA8IGJlbG9uZ2luZ3M7CivoppbnqpfmlrDmioAgPCB3aW5kb3dzXC1udDsKK+S6jOWNgeS4gCA8IHR3ZW50eVwtb25lOwor5LqGIDwgdG9cLWZpbmlzaDsKK+WtkCA8IG9mZnNwcmluZzsKK+W+uSA8IHBlbmV0cmF0ZTsKK+imgSA8IG5lY2Vzc2FyeTsKK+i+sSA8IGh1bWlsaWF0ZTsKK+edgCA8IG1ha2VcLW1vdmU7CivmiJAgPCBjb21wbGV0ZWQ7CivnnaMgPCBzdXBlcnZpc2U7CivovK8gPCBnYXRoZXJcLXVwOwor5bylIDwgZXh0ZW5zaXZlOwor576OIDwgYmVhdXRpZnVsOwor5buCIDwgc2lkZVwtcm9vbTsKK+mXriA8IGFza1wtYWJvdXQ7Civluq0gPCBjb3VydHlhcmQ7CivnmYIgPCBiZVwtaGVhbGVkOwor55e6IDwgcGFyYWx5c2lzOwor5beuIDwgdG9cLWRpZmZlcjsKK+maviA8IGRpZmZpY3VsdDsKK+i2hSA8IGp1bXBcLW92ZXI7CivnlbAgPCBkaWZmZXJlbnQ7CivkurIgPCByZWxhdGl2ZXM7CivnlasgPCBkZWxpbmVhdGU7CivnlZwgPCBsaXZlc3RvY2s7CivnlZEgPCBkcnlcLWZpZWxkOwor55SYIDwgc3dlZXRuZXNzOwor6K6kIDwgcmVjb2duaXplOwor6LK0IDwgZXhwZW5zaXZlOwor6LKdIDwgc2VhXC1zaGVsbDsKK+i+viA8IGFycml2ZVwtYXQ7CivkvJcgPCBtdWx0aXR1ZGU7CivlgJIgPCBmYWxsXC1vdmVyOwor546pIDwgcGxheVwtd2l0aDsKK+WDjyA8IGFcLXBpY3R1cmU7CivlroUgPCByZXNpZGVuY2U7Civmja4gPCB0b1wtb2NjdXB5Owor6K2vIDwgdHJhbnNsYXRlOwor6K2rIDwgdGFsa2F0aXZlOwor6YCgIDwgY29uc3RydWN0Owor5aq8IDwgb2xkXC13b21hbjsKK+eKoCA8IHNhY3JpZmljZTsKK+eJkiA8IGRvY3VtZW50czsKK+eJjCA8IHNpZ25ib2FyZDsKK+eIkCA8IGZpcmVwbGFjZTsKK+S5hSA8IGxvbmdcLXRpbWU7Civlpr4gPCBjb25jdWJpbmU7CivliJ0gPCBiZWdpbm5pbmc7CivpmaQgPCBlbGltaW5hdGU7CivlhrUgPCBjb25kaXRpb247CivkubEgPCBjb25mdXNpb247CivliJsgPCBlc3RhYmxpc2g7Civnpo8gPCBoYXBwaW5lc3M7CivlgYcgPCBmYWxzZWhvb2Q7Civpob4gPCBsb29rXC1iYWNrOwor6KC2IDwgc2lsa3dvcm1zOwor5riQIDwgZ3JhZHVhbGx5Owor556nIDwgZ2xhbmNlXC1hdDsKK+WfkiA8IGVuY2xvc3VyZTsKK+WfgyA8IGZpbmVcLWR1c3Q7CivonqIgPCBnbG93XC13b3JtOwor6YCAIDwgc3RlcFwtYmFjazsKK+icuyA8IGRyYWdvbmZseTsKK+e/uyA8IGZsaXBcLW92ZXI7CivlnI8gPCB0b1wtY2lyY2xlOwor5pmuIDwgdW5pdmVyc2FsOwor6Ju5IDwgY2hyeXNhbGlzOwor5Li0IDwgZHJhd1wtbmVhcjsKK+WNjyA8IGJlXC11bml0ZWQ7Civmua8gPCBob3RcLXdhdGVyOwor5L6LIDwgcHJlY2VkZW50Owor5rSyIDwgY29udGluZW50Owor5p2+IDwgcGluZVwtdHJlZTsKK+S8mSA8IGNvbXBhbmlvbjsKK+avqyA8IGZpbmVcLWhhaXI7CivolY4gPCBidWNrd2hlYXQ7CivovpMgPCB0cmFuc3BvcnQ7CivmipggPCBicmVha1wtb2ZmOwor5rGwIDwgZXhjZXNzaXZlOwor5ZCbIDwgc292ZXJlaWduOwor5Y2xIDwgZGFuZ2Vyb3VzOwor5qaCIDwgZ2VuZXJhbGx5Owor5Y6EIDwgYWR2ZXJzaXR5Owor5rGHIDwgY29uY291cnNlOwor5Y6JIDwgd2hldHN0b25lOwor6ZmEIDwgYWRoZXJlXC10bzsKK+iCqSA8IHNob3VsZGVyczsKK+mtmCA8IG5pZ2h0bWFyZTsKK+iNkiA8IHdhc3RlbGFuZDsKK+mssSA8IGx1eHVyaWFudDsKK+WMoCA8IGNyYWZ0c21hbjsKK+WMgiA8IGZyYWdyYW5jZTsKK+WLuCA8IHJlY29tbWVuZDsKK+mjmCA8IHdoaXJsd2luZDsKK+eCriA8IGxhcmdlXC1ndW47Civpg44gPCBnZW50bGVtYW47CivpmaogPCBhY2NvbXBhbnk7Civlh50gPCBjb2FndWxhdGU7CivliakgPCBsZWZ0b3ZlcnM7CivppZIgPCBib3VudGlmdWw7CivogpggPCB0aGVcLWVsYm93Owor6IKWIDwgbG9va1wtbGlrZTsKK+aYqCA8IHllc3RlcmRheTsKK+aagiA8IHRlbXBvcmFyeTsKK+mAkiA8IGhhbmRcLW92ZXI7CivnpaUgPCBnb29kXC1sdWNrOwor5YC5IDwgdGVtcGVyYXRlOwor5LuXIDwgcmVseVwtdXBvbjsKK+afvyA8IHBlcnNpbW1vbjsKK+mUriA8IGRvb3JcLWJvbHQ7Civmnq8gPCBkcmllZFwtb3V0Owor6I6xIDwgZ29vc2Vmb290Owor6LWUIDwgaW5kZW1uaWZ5Owor6YCiIDwgY29tZVwtdXBvbjsKK+edgSA8IG9wZW5cLWV5ZXM7CivlmL8gPCBiZVwtc2lsZW50Owor6LSqIDwgYmVcLWdyZWVkeTsKK+mAnSA8IHBhc3NcLWF3YXk7Civoib4gPCBhcnRlbWlzaWE7Civooo0gPCBsb25nXC1nb3duOwor5YakIDwgZ3JpZXZhbmNlOwor6L+qIDwgZW5saWdodGVuOwor5ZiJIDwgZXhjZWxsZW50Owor6Za+IDwgdGhyZXNob2xkOwor57a+IDwgdGhpblwtc2lsazsKK+iGgCA8IHVwcGVyXC1hcm07Civpob0gPCBvYnN0aW5hdGU7CivmrYkgPCBkZWZpY2llbnQ7CivluIUgPCBjb21tYW5kZXI7Civmhr4gPCB0b1wtcmVncmV0Owor5YqIIDwgY3V0XC1hcGFydDsKK+aLgiA8IHNoYWtlXC1vZmY7CivnrYggPCBhcnJvd1wtZW5kOwor54asIDwgY29va1wtZG93bjsKK+eovCA8IHNvd1wtZ3JhaW47CivmgY0gPCBzZWVtaW5nbHk7Civnu6MgPCBlbWJyb2lkZXI7Civmh4MgPCBjb3VydGVvdXM7CivooawgPCB1bmRlcndlYXI7CivmhYogPCB0b1wtcmVzZW50Owor5r2tIDwgZGVlcFwtcG9vbDsKK+ehnSA8IHNhbHRwZXRlcjsKK+mqpCA8IHByb2NlZHVyZTsKK+W/vyA8IGdldFwtYW5ncnk7CivlnaAgPCBmYWxsXC1kb3duOwor6J22IDwgYnV0dGVyZmx5Owor54SJIDwgdGhlcmV1cG9uOwor56aAIDwgcmVwb3J0XC10bzsKK+aMqyA8IHB1c2hcLWRvd247Civps4QgPCBhbGxpZ2F0b3I7CivosJAgPCBoYXJtb25pemU7CivlsY4gPCBleGNyZW1lbnQ7CivokbEgPCBzY2FsbGlvbnM7CivmnqMgPCBkYXRlXC10cmVlOwor6LC0IDwgcmVwcmltYW5kOwor5rG5IDwgdHVyYnVsZW50Owor5rO7IDwgZHJhaW5cLW9mZjsKK+eAkSA8IHdhdGVyZmFsbDsKK+aoiiA8IGFcLXJhaWxpbmc7CivmlZsgPCBkcmF3XC1iYWNrOwor6Iy1IDwgYVwtY3VzaGlvbjsKK+ajlSA8IGhlbXBcLXBhbG07CivovpcgPCB0dXJuXC1vdmVyOwor5oGkIDwgc2hvd1wtcGl0eTsKK+S+iCA8IGx1eHVyaW91czsKK+aygSA8IHNvYWtcLWludG87CivljKMgPCBzbWFsbFwtYm94Owor5o2OIDwgdG9cLXNlbGVjdDsKK+eXniA8IGR5c3BlcHNpYTsKK+edkCA8IHNxdWludFwtYXQ7CivlnqYgPCBjdWx0aXZhdGU7CivmtZIgPCByaXZlcmJhbms7CivokbUgPCBzdW5mbG93ZXI7CivnnasgPCBleWVsYXNoZXM7Civlk7ogPCBjaGV3XC1mb29kOwor56ujIDwgdGVybWluYXRlOwor5ZuUIDwgbXV0dGVyaW5nOwor6JeQIDwgZGlzcmVnYXJkOwor5Z+gIDwgcG9ydFwtY2l0eTsKK+iNpCA8IG1lYXRcLWRpZXQ7CivonJIgPCBtaWxsaXBlZGU7Civoj4cgPCBtdXNocm9vbXM7CivosZogPCBzbWFsbFwtcGlnOwor5rKTIDwgY29ubmVjdGVkOwor5bypIDwgY3Jvc3NcLWJvdzsKK+auhyA8IGRpZVwteW91bmc7CivmoIggPCB3YXJlaG91c2U7CivphrogPCBnZXRcLWRydW5rOwor6JyIIDwgY2VudGlwZWRlOwor5oSrIDwgZ3VpbGVsZXNzOwor6LCZIDwgdmVyc2VkXC1pbjsKK+eGuSA8IGRpbVwtbGlnaHQ7CivmgIIgPCBpbnN0aWdhdGU7CivpgZsgPCB0YWtlXC13YWxrOwor6bq+IDwgYVwtcGVubmFudDsKK+WqsiA8IG1hcnJ5XC1vZmY7CivplYEgPCBtYWduZXNpdW07CivmpLAgPCBwYWxtXC10cmVlOwor55eiIDwgZHlzZW50ZXJ5Owor5ZeRIDwgZWF0XC1zZWVkczsKK+iaryA8IGVhcnRod29ybTsKK+icmiA8IGNvY2tyb2FjaDsKK+mYhiA8IGhpZ2hcLWRvb3I7Civmk4AgPCByb2xsXC1mbGF0Owor6KKkIDwgbG9uZ2l0dWRlOwor6bqdIDwgbXVza1wtZGVlcjsKK+S9uyA8IGZyaXZvbG91czsKK+mSviA8IHBvdGFzc2l1bTsKK+WtkSA8IHJlbWFpbmluZzsKK+aqhCA8IGNhbGxcLWFybXM7Civpmo0gPCBkcnlcLWRpdGNoOwor6K+/IDwgcGFzc1wtYnVjazsKK+mAhCA8IGFcLXN1cm5hbWU7Civmoo8gPCBoYW5kY3VmZnM7CivpkrogPCBicm9hZFwtYXhlOwor5p+RIDwgdGFuZ2VyaW5lOwor5LmcIDwgdG9cLXNxdWludDsKK+WosiA8IGFcLWdvZGRlc3M7Civlv50gPCBkaXNncmFjZWQ7Civor64gPCBjcml0aWNpemU7Civps48gPCBodWdlXC1maXNoOwor6JyHIDwgamVsbHlmaXNoOwor5YqtIDwgZW5jb3VyYWdlOwor55mjIDwgcmluZ3dvcm1zOwor57umIDwgc2lsa1wtY29yZDsKK+mSuCA8IHBsdXRvbml1bTsKK+mmlyA8IGNoZWVrYm9uZTsKK+mUsCA8IG1hbmdhbmVzZTsKK+S+qiA8IGFcLWNvbXBhbnk7Civlh6sgPCB3aWxkXC1kdWNrOwor55exIDwgaGVhdFwtcmFzaDsKK+eXiCA8IGNhcmJ1bmNsZTsKK+aCjCA8IGJyb3RoZXJseTsKK+WGvCA8IFwoc3VybmFtZVwpOwor6bmnIDwgcGFydHJpZGdlOwor5oKSIDwgc29ycm93ZnVsOwor5oCDIDwgcmVncmV0ZnVsOwor5aKSIDwgd2V0XC10aWx0aDsKK+ioviA8IGJhZFwtbW91dGg7CivlnK4gPCBkZXN0cm95ZWQ7CivpsoggPCBzZWFcLXBlcmNoOwor5pSJIDwgdG9cLWJlY2tvbjsKK+myhyA8IHNoZWF0ZmlzaDsKK+iGiCA8IGRpYXBocmFnbTsKK+eKjSA8IGFcLWJ1bGxvY2s7CivplJcgPCBnZXJtYW5pdW07Civpjo8gPCBwdXJlXC1nb2xkOwor6ZWFIDwgYW1lcmljaXVtOwor6L6CIDwgYVwtY2hhcmlvdDsKK+i3uCA8IGNsZWFyXC13YXk7CivnhbMgPCBiZVwtYnVybmVkOwor54m+IDwgdG9cLW9wcG9zZTsKK+aYgCA8IHN1blwtbGlnaHQ7CivkuakgPCB0b1wtZGl2aW5lOwor576fIDwgaHlkcm94aWRlOwor6I29IDwgY29yaWFuZGVyOwor57ugIDwgd2VsbFwtcm9wZTsKK+WTkyA8IGdhcnJ1bG91czsKK+iErCA8IGFcLWJsYWRkZXI7CivmiKEgPCBzdWJqdWdhdGU7CivovocgPCBoYW5kXC1jYXJ0Owor6bmaIDwgY29ybW9yYW50Owor6ZWeIDwgYXJyb3doZWFkOwor6I+wIDwgd2lsZFwtcmljZTsKK+igliA8IGluY2hcLXdvcm07Civpk6sgPCBsYXJnZVwtaG9lOwor5rCYIDwgZGV1dGVyaXVtOwor6bu+IDwgdG9cLXN0cml2ZTsKK+mVpyA8IGxhbnRoYW51bTsKK+WeoSA8IHBsb3dcLXNvaWw7CivngpQgPCBhY2V0eWxlbmU7CivplbEgPCB5dHRlcmJpdW07CivpkpUgPCBuZW9keW1pdW07Civlv60gPCBkZWxpZ2h0ZWQ7Civoi7QgPCBzYWNrY2xvdGg7CivosLMgPCB0b1wtZGVjaWRlOwor6ZKvIDwgcGFsbGFkaXVtOwor56KyIDwgdGVsbHVyaXVtOwor55KpIDwgamFkZVwtcmluZzsKK+mlqyA8IHN1cmZlaXRlZDsKK+aSmSA8IGVjb25vbWl6ZTsKK+iTvCA8IHNtYXJ0d2VlZDsKK+mllCA8IGJyZWFrZmFzdDsKK+mUtiA8IHN0cm9udGl1bTsKK+aYgyA8IGFmdGVybm9vbjsKK+WUqiA8IHRvXC1yZWNpdGU7CivlhIcgPCBpbmdlbmlvdXM7CivpsrQgPCBmaXNoXC1ndXRzOwor6bKFIDwgZmlzaFwtbmFtZTsKK+mTjSA8IGJlcnlsbGl1bTsKK+eGsyA8IHRvXC1zcHJlYWQ7Civog40gPCBndWFuaWRpbmU7CivpspAgPCBnbG9iZWZpc2g7CivphZAgPCBhbmh5ZHJpZGU7CivooYQgPCBlcGlzdGF4aXM7Civnn6cgPCBtdWNoXC1tb3JlOwor5oKrIDwgc2luY2VyaXR5Owor6IamIDwgcGhvc3BoaW5lOwor57yjIDwgZmluZVwtc2lsazsKK+WuhCA8IGFcLXRyYWl0b3I7CivpmIwgPCB3ZW5cLXhpYW5nOwor6YWeIDwgcGh0aGFsZWluOwor5pS257iuIDwgcHVsbFwtYmFjazsKK+WkmueWkSA8IHNrZXB0aWNhbDsKK+WQiOWKmyA8IGNvb3BlcmF0ZTsKK+eIhueCuCA8IGV4cGxvc2lvbjsKK+e4ruWwj+aooeWeiyA8IG1pbmlhdHVyZTsKK+WJsuiNiSA8IG1vd1wtZ3Jhc3M7CivororlpY8gPCB2YXJpYXRpb247CivpoJjlj5cgPCB0b1wtYWNjZXB0Owor5Lul5byX5omA5pu4IDwgZXBoZXNpYW5zOwor5YuV55uqIDwgY29tbW90aW9uOwor5Y+v5ZOAIDwgbWlzZXJhYmx5Owor5rKS5pyJ5b2i54uAIDwgc2hhcGVsZXNzOwor6I+g6Ji/IDwgcGluZWFwcGxlOwor56mp5a6a5oCnIDwgc3RhYmlsaXR5Owor5Y6a5bqmIDwgdGhpY2tuZXNzOwor6YCf6KiYIDwgc2hvcnRoYW5kOwor55So5oi25pW45pOaIDwgdXNlclwtZGF0YTsKK+W+kOatpSA8IHRvXC1zdHJvbGw7Civopb/pnaIgPCB3ZXN0XC1zaWRlOwor6YCj5o6l5ZmoIDwgY29ubmVjdG9yOwor5pGY6ZmkIDwgdG9cLWV4Y2lzZTsKK+itpuWumCA8IGNvbnN0YWJsZTsKK+mWi+eZvOS6uuWToSA8IGRldmVsb3BlcjsKK+WQjeS6uiA8IHBlcnNvbmFnZTsKK+iUk+W7tiA8IHRvXC1leHRlbmQ7CivlnLDos6rlrbjlrrYgPCBnZW9sb2dpc3Q7CivlkIzkuosgPCBjb2xsZWFndWU7CivlvaLlrrnovq0gPCBhZGplY3RpdmU7CivljYrml5cgPCBoYWxmXC1tYXN0Owor6YeR5YygIDwgZ29sZHNtaXRoOwor5ZCM5LiAIDwgaWRlbnRpY2FsOwor5Y+v5b6X5YiwIDwgYXZhaWxhYmxlOwor56Kw5benIDwgYnlcLWNoYW5jZTsKK+enkeWtuOWutiA8IHNjaWVudGlzdDsKK+aZruWPiiA8IHdpZGVzcGVhZDsKK+ioree9riA8IHRvXC1zZXRcLXVwOwor5b+X6aGY6ICFIDwgdm9sdW50ZWVyOwor54eS54esIDwgYnVyblwtZG93bjsKK+aYjuW5tCA8IG5leHRcLXllYXI7Civmk6bpgornkIMgPCBlZGdlXC1iYWxsOwor5Y+k5YW4IDwgY2xhc3NpY2FsOwor5Y+r5YGaIDwgYmVcLWNhbGxlZDsKK+e2oOiMtiA8IGdyZWVuXC10ZWE7CivmgI7purzmqKMgPCBob3dcLWFib3V0Owor5omA5pyJ5qyKIDwgb3duZXJzaGlwOwor5Yil6JmVIDwgZWxzZXdoZXJlOwor6L+w6KqeIDwgcHJlZGljYXRlOwor55m95aCx57SZIDwgbmV3c3ByaW50Owor6Ziy6KGbIDwgdG9cLWRlZmVuZDsKK+iojuirluacgyA8IHN5bXBvc2l1bTsKK+aVmeeItiA8IGdvZGZhdGhlcjsKK+WPl+WDsSA8IG1lcmNlbmFyeTsKK+iqnua6kCA8IGV0eW1vbG9neTsKK+iqquazlSA8IHN0YXRlbWVudDsKK+WfjumWgCA8IGNpdHlcLWdhdGU7CivmjqXlj5fogIUgPCByZWNpcGllbnQ7CivnlJ/nianlrbjlrrYgPCBiaW9sb2dpc3Q7CivpnYjmlY8gPCBzZW5zaXRpdmU7CivliqnnkIYgPCBhc3Npc3RhbnQ7Civmr4/lgIvkurogPCBldmVyeWJvZHk7CivkuI3ogrLmgKcgPCBzdGVyaWxpdHk7CivmqqLmn6Xlk6EgPCBpbnNwZWN0b3I7Civoq5bmlrcgPCBpbmZlcmVuY2U7Civlj5fkuosgPCByZWNlcGllbnQ7CivnhqznhY4gPCBzdWZmZXJpbmc7CivliIbomZ8gPCBzZW1pY29sb247Civljp/lkYogPCBjb21wbGFpbnQ7Civnmb3prZogPCB3aGl0ZWZpc2g7Civooajnj77lnosgPCBwaGVub3R5cGU7CivlpJrmqKMgPCBkaXZlcnNpdHk7CivlpJrmqKEgPCBtdWx0aW1vZGU7CivnhKHog70gPCBpbmFiaWxpdHk7Civnmb3pq5QgPCBsZWFuXC10eXBlOwor5qiZ6auYIDwgZWxldmF0aW9uOwor5aaW5aqaIDwgc2VkdWN0aXZlOwor54Sh6IGyIDwgbm9pc2VsZXNzOwor5Y2B5bm0IDwgdGVuXC15ZWFyczsKK+WNiuWztiA8IHBlbmluc3VsYTsKK+S4jeWPr+ejqOa7hSA8IGluZGVsaWJsZTsKK+mAo+e6jCA8IGNvbnRpbm91czsKK+WOn+WJhyA8IHByaW5jaXBsZTsKK+earumei+WMoCA8IHNob2VtYWtlcjsKK+mYv+avlOilv+WwvOS6niA8IGFieXNzaW5pYTsKK+mEreW3niA8IHpoZW5nemhvdTsKK+ioiOetliA8IHN0cmF0YWdlbTsKK+W6lee3miA8IHVuZGVybGluZTsKK+mWg+mbuyA8IGxpZ2h0bmluZzsKK+W8lea4oSA8IGV4dHJhZGl0ZTsKK+S/neitt+iAhSA8IHByb3RlY3RvcjsKK+aVmeavjSA8IGdvZG1vdGhlcjsKK+aWh+aYjiA8IGNpdmlsaXplZDsKK+WBveWQm+WtkCA8IGh5cG9jcnl0ZTsKK+ebtOimuiA8IGludHVpdGlvbjsKK+WjgeeHiCA8IHdhbGxcLWxhbXA7Civnmbzpn7MgPCBwcm9ub3VuY2U7CivljpjlhYsgPCBjZW50aWdyYW07CivppqzouYTpkLUgPCBob3JzZXNob2U7Civmk5TmnrbluoogPCBzdHJldGNoZXI7CivnhKHnsZ8gPCBzY291bmRyZWw7CivliqDmt7EgPCB0b1wtZGVlcGVuOwor5Z+36KGMIDwgaW1wbGVtZW50Owor6Zu55pq0IDwgaGFpbHN0b3JtOwor56K65L+hIDwgY29uZmlkZW50Owor6YKj5qijIDwgdGhhdFwta2luZDsKK+WFrOmHjCA8IGtpbG9tZXRlcjsKK+iqoOaRryA8IHNpbmNlcmVseTsKK+W3rui3nSA8IGRpc3Bhcml0eTsKK+S4jeS6puaoguS5jiA8IGV4dHJlbWVseTsKK+ilr+ijmSA8IHBldHRpY29hdDsKK+mwvuiGoCA8IGlzaW5nbGFzczsKK+aMieeFp+Wtl+mdoiA8IGxpdGVyYWxseTsKK+itieS7tiA8IHBhcGVyd29yazsKK+e0sOiPjCA8IGJhY3RlcmlhbDsKK+iSvOWkqSA8IGZpcm1hbWVudDsKK+S4ieWIhuS5i+S4gCA8IG9uZVwtdGhpcmQ7Civnt6nmspYgPCB0b1wtYnVmZmVyOwor6YG45rS+IDwgc2V0XC1hcGFydDsKK+S4jeWujOWWhCA8IGltcGVyZmVjdDsKK+Wkp+W/lyA8IGhpZ2hcLWFpbXM7CivovJTpn7MgPCBjb25zb25hbnQ7CivlvLXmj5ogPCBwdWJsaWNpemU7Civop6PnorwgPCB0b1wtZGVjb2RlOwor5pKt56iuIDwgc293XC1zZWVkczsKK+WMluWtuCA8IGNoZW1pc3RyeTsKK+Wgsee0mSA8IG5ld3NwYXBlcjsKK+eEoeefpSA8IGlnbm9yYW5jZTsKK+aOpemngSA8IHRvXC1hY2Nlc3M7CivkuI3lj6/mlZHol6UgPCBpbmN1cmFibGU7CivlvojlpJogPCB2ZXJ5XC1tYW55Owor6IC26Lev5pKS5Ya3IDwgamVydXNhbGVtOwor6ZuZ5pa5IDwgYmlsYXRlcmFsOwor5pm06Zuo6KGoIDwgYmFyb21ldGVyOwor5Y2D56an5bm0IDwgbWlsbGVuaXVtOwor6ZW36YGgIDwgbG9uZ1wtdGVybTsKK+WNg+WRqCA8IGtpbG9oZXJ0ejsKK+mBjua/viA8IHRvXC1maWx0ZXI7CivopLvngIbnmoToqbEgPCBibGFzcGhlbXk7CivlpYflppkgPCBmYW50YXN0aWM7CivlhrDok4sgPCBpY2VcLXNoZWV0Owor5ZyL5YWn5oiw54itIDwgY2l2aWxcLXdhcjsKK+WNseWcsOmmrOaLiSA8IGd1YXRhbWFsYTsKK+mBmea4rCA8IHRlbGVtZXRyeTsKK+aOpeePreS6uiA8IHN1Y2Nlc3NvcjsKK+i+suiIjSA8IGZhcm1ob3VzZTsKK+WJquiyvOewvyA8IHNjcmFwYm9vazsKK+WBieaZtuWyqSA8IHBlZ21hdGl0ZTsKK+e0heiTriA8IHJlZFwtbG90dXM7CivmjIfnpLrnrKYgPCBpbmRpY2F0b3I7CivlhbHorZggPCBjb25zZW5zdXM7CivliqDlr4blvoznmoQgPCBlbmNyeXB0ZWQ7CivmnInmlLvmk4rmgKcgPCBvZmZlbnNpdmU7CivlpKflsI8gPCBkaW1lbnNpb247Civmg6HlkI3mmK3lvbAgPCBub3RvcmlvdXM7Civkv53mg6DluKsgPCBjb21mb3J0ZXI7CivlpKflrrYgPCBhdXRob3JpdHk7CivniK3lj5YgPCBmaWdodFwtZm9yOwor5q+P5aSpIDwgZXZlcnlcLWRheTsKK+e2k+a/n+WtuOWutiA8IGVjb25vbWlzdDsKK+aUu+aTiiA8IHRvXC1hdHRhY2s7CivntIXojLYgPCBibGFja1wtdGVhOwor5paH5a2XIDwgY2hhcmFjdGVyOwor5bi457agIDwgZXZlcmdyZWVuOwor5q6Y5buiIDwgZGVmb3JtaXR5Owor6Zqx5pmmIDwgb2JzY3VyaXR5Owor5bu656+J5birIDwgYXJjaGl0ZWN0Owor54Wn5qijIDwgYXNcLWJlZm9yZTsKK+aWueWQkSA8IGRpcmVjdGlvbjsKK+eEsOeBqyA8IGZpcmV3b3JrczsKK+aVkeaBqSA8IHNhbHZhdGlvbjsKK+mYv+epuuWKoOeTnCA8IGFjb25jYWd1YTsKK+WKoOaLieWkquabuCA8IGdhbGF0aWFuczsKK+W+jOWLpCA8IGxvZ2lzdGljczsKK+WnlOWToeacgyA8IGNvbW1pdHRlZTsKK+e2sumam+iJsuaDhSA8IGN5YmVycG9ybjsKK+i+pue9qiA8IHRvXC1wdW5pc2g7CivopoHnt4ogPCBpbXBvcnRhbnQ7CivmsJHkuLsgPCBkZW1vY3JhY3k7Civli5nlr6YgPCBwcmFnbWF0aWM7CivmjqjpircgPCB0b1wtbWFya2V0Owor5b2Z5aCxIDwgdG9cLXJlcG9ydDsKK+imgee0oCA8IGVzc2VudGlhbDsKK+iIqua1t+iAhSA8IG5hdmlnYXRvcjsKK+WkouWigyA8IGRyZWFtbGFuZDsKK+iqsuWggiA8IGNsYXNzcm9vbTsKK+WgseeVjCA8IHRoZVwtcHJlc3M7CivljYHkuIMgPCBzZXZlbnRlZW47Civngavol6UgPCBndW5wb3dkZXI7CivoqLrmlrcgPCBkaWFnbm9zaXM7Civmr6vlhYsgPCBtaWxsaWdyYW07Civlia/mnKwgPCBkdXBsaWNhdGU7CivoirHnsonpgY7mlY8gPCBoYXlcLWZldmVyOwor5buj5pKtIDwgYnJvYWRjYXN0Owor5pWX5bGAIDwgbG9zdFwtZ2FtZTsKK+mDiuWkliA8IG91dHNraXJ0czsKK+eZveignyA8IHdoaXRlXC13YXg7Civlh7rnj74gPCB0b1wtYXBwZWFyOwor5Yaw57OVIDwgaWNlXC1jcmVhbTsKK+WFgeiosSA8IHRvXC1wZXJtaXQ7CivlsI/lkIPlupcgPCBzbmFja1wtYmFyOwor5b6M5LujIDwgcG9zdGVyaXR5Owor57at5aOr5Y2hIDwgdmlzYVwtY2FyZDsKK+eCuuaZgumBjuaXqSA8IHByZW1hdHVyZTsKK+iBr+WQiOe1hOe5lCA8IHN5bmRpY2F0ZTsKK+ani+mAoCA8IHN0cnVjdHVyZTsKK+m9syA8IHRvb3RobGVzczsKK+m9rSA8IHRvb3RoYWNoZTsKK+WlveWlh+W/gyA8IGN1cmlvc2l0eTsKK+WLvuWKgyA8IHRvXC1za2V0Y2g7Civkurrnianmj4/lr6sgPCBwb3J0cmF5YWw7Civlop7mj7QgPCByZWluZm9yY2U7CivnhKHmr5QgPCBtYXRjaGxlc3M7CivmlZnlo6sgPCBjaHVyY2htYW47CivmrKHmlbggPCBmcmVxdWVuY3k7CivlpKflipsgPCBlbmVyZ2V0aWM7CivmlL/msrvmgKcgPCBwb2xpdGljYWw7Civmu5HpvKDlooogPCBtb3VzZVwtcGFkOwor5aOv5aSnIDwgdG9cLWV4cGFuZDsKK+m3viA8IGFcLXN3YWxsb3c7Civpt60gPCB3YXRlclwtaGVuOwor5ouc54mp5pWZIDwgZmV0aXNoaXNtOwor6YG15b6qIDwgdG9cLWZvbGxvdzsKK+m3pSA8IHRoZVwtZWdyZXQ7CivpganmhI8gPCBhZ3JlZWFibGU7Civpt48gPCBiaXJkXC1uYW1lOwor6bahIDwgY3Jvc3NiaWxsOwor6Kq/5YGcIDwgcmVjb25jaWxlOwor6bW3IDwgY29cLXdvcmtlcjsKK+W5sua2iSA8IGludGVyZmVyZTsKK+mzoiA8IHNuYWtlaGVhZDsKK+ekvuacg+S4u+e+qeiAhSA8IHNvY2lhbGlzdDsKK+S9jumAn+eOhyA8IGxvd1wtc3BlZWQ7Civpso4gPCBraW5nXC1jcmFiOwor6bG3IDwgY3JvY29kaWxlOwor5Yuk5YuJIDwgZGlsaWdlbmNlOwor5qy+5b6FIDwgZW50ZXJ0YWluOwor5Luk5Lq65qy95L2pIDwgYWRtaXJhYmxlOwor6a+gIDwgdG9cLWNvbmZlcjsKK+eZvOiKvSA8IGdlcm1pbmF0ZTsKK+mupiA8IHNuYWtlZmlzaDsKK+aSpeatoyA8IHNldFwtcmlnaHQ7CivprZ4gPCBmaXNoXC10cmFwOwor6Zi/5aWH6YeM5pavIDwgYWVzY2h5bHVzOwor5aO95ZG9IDwgbGlmZVwtc3BhbjsKK+msliA8IHdpbGRcLWhhaXI7Civpq6cgPCBsb25nXC1oYWlyOwor6auXIDwgdGhlXC1za3VsbDsKK+aPkOaRqeWkquWQjuabuCA8IDJcLXRpbW90aHk7Civpqq0gPCBzaGluXC1ib25lOwor5pS/5rK75bGAIDwgcG9saXRidXJvOwor57aT5paHIDwgc2NyaXB0dXJlOwor6Zu25ZSu5ZWGIDwgdHJhZGVzbWFuOwor5pWy5YWlIDwgdG9cLWtleVwtaW47CivpmorlvaIgPCBmb3JtYXRpb247CivpqKcgPCB0YW5cLWhvcnNlOwor6aiQIDwgdG9cLXZlcml0eTsKK+WkqeS4iiA8IGNlbGVzdGlhbDsKK+mnuCA8IGdhbGxvcGluZzsKK+aUv+ayu+WutiA8IHN0YXRlc21hbjsKK+mloCA8IHJpY2VcLWNha2U7CivovqbnkIYgPCB0b1wtaGFuZGxlOwor6aSxIDwgZHJ5XC1nb29kczsKK+WuieWFqOW4tiA8IHNlYXRcLWJlbHQ7CivlrZ/liqDmi4noqp4gPCBiZW5nYWxlc2U7CivoqLvlrpogPCBiZVwtZG9vbWVkOwor54Sh5pW4IDwgY291bnRsZXNzOwor5pS25ZueIDwgdG9cLXJlZ2FpbjsKK+WkluS6pCA8IGRpcGxvbWFjeTsKK+mBjuW6piA8IGV4Y2VlZGluZzsKK+aTjeaMgSA8IHRvXC1tYW5hZ2U7Civnmbvlu6PlkYogPCBhZHZlcnRpc2U7CivmqqLmuKwgPCB0b1wtZGV0ZWN0Owor55+u5YezIDwgbG93XC1zdG9vbDsKK+majuWxpCA8IGhpZXJhcmNoeTsKK+mdqiA8IHRvXC1jb2JibGU7CivpppnmqrPphZIgPCBjaGFtcGFnbmU7CivpnacgPCB3YXNoXC1mYWNlOwor6Iez6auYIDwgcGFyYW1vdW50Owor6Z2AIDwgZHJpenpsaW5nOwor5o6S6KGMIDwgc2VuaW9yaXR5Owor6ZyCIDwgZmluZVwtcmFpbjsKK+WJjeW+gCA8IGxlYXZlXC1mb3I7CivmlZnlhIAgPCBvcmRpbmFuY2U7CivmqZ/morDoo53nva4gPCBtYWNoaW5lcnk7CivpmoMgPCB0b1wtZXhjZWVkOwor5aKz5aKTIDwgc2VwdWxjaGVyOwor57ac5ZCI5oCnIDwgc3ludGhlc2lzOwor5YWs56eJIDwga2lsb2xpdGVyOwor6Zi75pKTIDwgdG9cLXRod2FydDsKK+WCs+mAgSA8IHRvXC1jb252ZXk7CivplrogPCBsb29rXC1kb3duOwor6YG65ZuRIDwgdGVzdGFtZW50Owor5q2h5ZG8IDwgY2hlZXJcLWZvcjsKK+mUqyA8IGJlcmtlbGl1bTsKK+mUhiA8IHppcmNvbml1bTsKK+mStiA8IGNvbHVtYml1bTsKK+mBiuWuoiA8IHRyYXZlbGxlcjsKK+mSjCA8IHJ1dGhlbml1bTsKK+aRgemHmOWFkiA8IHRodW1idGFjazsKK+mSgSA8IGFcLW1hdHRvY2s7CivmloflhbfllYYgPCBzdGF0aW9uZXI7CivmlrDliqDlnaEgPCBzaW5nYXBvcmU7Civln47niYYgPCBjaXR5XC13YWxsOwor5YWn56K8IDwgdG9cLWVuY29kZTsKK+mQuyA8IGRydW1zdGljazsKK+aRp+aumCA8IHRvXC1yYXZhZ2U7Civmkp7mk4ogPCB0b1wtc3RyaWtlOwor5Yqg5YqHIDwgYWdncmF2YXRlOwor6Y+bIDwgdG9cLXBvbGlzaDsKK+mYu+aKlyA8IGltcGVkYW5jZTsKK+aNkOi0iCA8IHRvXC1kb25hdGU7Civoh6rpoZggPCB2b2x1bnRhcnk7Civpjr8gPCBuZXB0dW5pdW07CivmqLnnmq4gPCB0cmVlXC1iYXJrOwor6Y6eIDwgcGxvd3NoYXJlOwor6Zqo5ZOhIDwgYXR0ZW5kYW50Owor5YWJ562GIDwgbGlnaHRcLXBlbjsKK+WgseaUpCA8IG5ld3NzdGFuZDsKK+WHuuaWvCA8IGJlXC1kdWVcLXRvOwor54Sh5b2iIDwgaW52aXNpYmxlOwor6KOd572uIDwgZXF1aXBtZW50Owor6YiMIDwgdG9cLXBpZXJjZTsKK+aVheS6iyA8IG5hcnJhdGl2ZTsKK+WFseeUoiA8IGNvbW11bmlzdDsKK+aOqOe/uyA8IG92ZXJ0aHJvdzsKK+mgmOS6i+mkqCA8IGNvbnN1bGF0ZTsKK+WckuiXnSA8IGdhcmRlbmluZzsKK+WKg+WIhiA8IHRvXC1kaXZpZGU7CivlgrPoqJggPCBiaW9ncmFwaHk7Civov7fmg5EgPCB0b1wtcHV6emxlOwor5Yqg5LiKIDwgdG9cLXB1dFwtaW47CivovJggPCBhXC1jYXJcLXJ1dDsKK+mAmuWutSA8IG92ZXJuaWdodDsKK+i7hCA8IHRvXC1nb3Zlcm47CivoupQgPCBmb2xsb3dcLWluOwor5buj5YKzIDwgcHJvcGFnYXRlOwor55m855SfIDwgdG9cLWhhcHBlbjsKK+i3qSA8IHRvXC13YWRkbGU7CivotoXoga/ntZAgPCBoeXBlcmxpbms7Civotp0gPCB0b1wtcHVyc3VlOwor6LW/IDwgbGF0ZVwtc2xvdzsKK+e1hOaIkCA8IGNvbXBvbmVudDsKK+aOpeeuoSA8IHRha2VcLW92ZXI7CivosbUgPCB5b3VuZ1wtcGlnOwor57i95pyD5pyD6ZW3IDwgcHJlc2lkZW50Owor6ZqG5YasIDwgbWlkd2ludGVyOwor5Ye55bqmIDwgY29uY2F2aXR5Owor5ryr6ZW3IDwgdmVyeVwtbG9uZzsKK+eVjOmdoiA8IGludGVyZmFjZTsKK+WJteS9nCA8IHRvXC1jcmVhdGU7CivliLDnm67liY3ngrrmraIgPCB1bnRpbFwtbm93Owor6K2KIDwgd3JhbmdsaW5nOwor6K2FIDwgd3JpZ2dsaW5nOwor6KudIDwga25vd2xlZGdlOwor5q+r54Sh55aR5ZWPIDwgY2VydGFpbnR5Owor57ac5ZCIIDwgY29tcG9zaXRlOwor5oqr6ZyyIDwgdG9cLXJldmVhbDsKK+eci+W+hSA8IGxvb2tcLXVwb247CivpmbflhaUgPCBzaW5rXC1pbnRvOwor6KGw6JC9IDwgZGVjb21wb3NlOwor5pKl5aWPIDwgcGl6emljYXRvOwor6L+r5a6zIDwgcGVyc2VjdXRlOwor6YCy5YyWIDwgZXZvbHV0aW9uOwor5rWB6KGM5oCn5oSf5YaSIDwgaW5mbHVlbnphOwor6KOyIDwgd2Fpc3Rjb2F0Owor6L6v5omNIDwgZWxvcXVlbmNlOwor6Ieq6LKgIDwgY29uY2VpdGVkOwor6J6MIDwgYVwtc3RyaXBlZDsKK+W4guaUvyA8IG11bmljaXBhbDsKK+WEvOeEtiA8IGp1c3RcLWxpa2U7Civkv53nmofpu6ggPCByb3lhbGlzdHM7CivntZXlppkgPCBleHF1aXNpdGU7CivmnbHljJfmlrkgPCBub3J0aGVhc3Q7CivmipXpmY0gPCBzdXJyZW5kZXI7CivnsL3nq6AgPCBzaWduYXR1cmU7CivomJ4gPCB3aWxkXC12aW5lOwor57aB5YyqIDwga2lkbmFwcGVyOwor54Sh5YqbIDwgcG93ZXJsZXNzOwor5aW96JCK5aGiIDwgaG9sbHl3b29kOwor5pOU5L+dIDwgZ3VhcmFudGVlOwor5o6o55CGIDwgcmVhc29uaW5nOwor6JWXIDwgbGV1Y2FjZW5lOwor5Zug6ICMIDwgdGhlcmVmb3JlOwor6YCG5ZCRIDwgYmFja3dhcmRzOwor6JOGIDwgc3RyYXdcLW1hdDsKK+aMieiaiiA8IGFub3BoZWxlczsKK+aoo+apnyA8IHByb3RvdHlwZTsKK+iSoiA8IGhlZHlzYXJ1bTsKK+WIqOWGsCA8IHdhdGVyXC1pY2U7CivluLblr6wgPCBiYW5kd2lkdGg7CivokZMgPCB2ZWdldGFibGU7CivnlbDorbAgPCBvYmplY3Rpb247Civopo/lrpogPCBwcm92aXNpb247CivlsZXplosgPCB0b1wtdW5mb2xkOwor6Lyq5rWBIDwgYWx0ZXJuYXRlOwor5oyB5LmF5oCnIDwgY29uc3RhbmN5Owor5YKz57WxIDwgdHJhZGl0aW9uOwor5YGP6KaLIDwgcHJlanVkaWNlOwor55m96KGA55eFIDwgbGV1a2FlbWlhOwor5YWo5LiW55WMIDwgd29ybGR3aWRlOwor5Zyw55CGIDwgZ2VvZ3JhcGh5Owor5Zyw55CDIDwgdGhlXC1lYXJ0aDsKK+iLmSA8IGFcLXBpZ1wtc3R5Owor6Iq8IDwgdG9cLWNob29zZTsKK+mZjeS9jiA8IHRvXC1yZWR1Y2U7Civkv53pmqogPCBpbnN1cmFuY2U7Civkv53pmpwgPCB0b1wtZW5zdXJlOwor6ImjIDwgc3Rlcm5cLW9hcjsKK+WgtOWQiCA8IHNpdHVhdGlvbjsKK+iJjiA8IGZhc3RcLWJvYXQ7CivloLHlkYogPCB0b1wtaW5mb3JtOwor6IidIDwgbGluY2hcLXBpbjsKK+iImCA8IGFcLW1hbnNpb247Civoh68gPCB0b1wtcHJhaXNlOwor5r6z5aSn5Yip5LqeIDwgYXVzdHJhbGlhOwor5YWs5paXIDwgZGVjYWxpdGVyOwor6L+U5ZueIDwgcmV0dXJuXC10bzsKK+Wkp+Wvq+mOluWumiA8IGNhcHNcLWxvY2s7CivliIblibIgPCB0b1wtY3V0XC11cDsKK+iDpiA8IHRoZVwtbmF2ZWw7CivmiYHpqqggPCBmbGF0XC1ib25lOwor6IClIDwgZmFybVwtdG9vbDsKK+e+tiA8IHJhbmtcLW9kb3I7Civkv53pj6IgPCBib2R5Z3VhcmQ7Civot5HpjLYgPCBzdG9wd2F0Y2g7CivntJnlpL4gPCBwYXBlcmNsaXA7CivnvYEgPCBhXC1jaXN0ZXJuOwor55m85piOIDwgdG9cLWludmVudDsKK+aooeaTrCA8IGltaXRhdGlvbjsKK+WNiuW3peWNiuiugCA8IHBhcnRcLXdvcms7Civmv4DnmbwgPCB0b1wtYXJvdXNlOwor5YaN5bqmIDwgb25jZVwtbW9yZTsKK+ezvuWvnyA8IHRvXC1waWNrZXQ7Civmi7foirEgPCB0b1wtZW1ib3NzOwor5oiR5YCR6Ieq5bexIDwgb3Vyc2VsdmVzOwor5r2b6ImHIDwgc3VibWFyaW5lOwor6L+35L2PIDwgZmFzY2luYXRlOwor6Im+54K3IDwgbW94YVwtY29uZTsKK+WbmuemgSA8IGNhcHRpdml0eTsKK+e3pSA8IHN3YWRkbGluZzsKK+e+heW+ueaWr+eJuSA8IHJvY2hlc3RlcjsKK+S+v+mWgCA8IHNpZGVcLWRvb3I7CivmipforbDogIUgPCBwcm90ZXN0ZXI7CivooaPluL3plpMgPCBjbG9ha3Jvb207CivkuIDljLnppqwgPCBvbmVcLWhvcnNlOwor5pyJ5pmC5YCZIDwgc29tZXRpbWVzOwor57OwIDwgcmljZVwtYmFsbDsKK+eznSA8IHNjYXR0ZXJlZDsKK+WAmemBuOS6uiA8IGNhbmRpZGF0ZTsKK+euoeW8puaoguWcmCA8IG9yY2hlc3RyYTsKK+WQkeWMl+WcsCA8IG5vcnRod2FyZDsKK+exqCA8IHRyb3Vzc2VhdTsKK+S4i+axuuW/gyA8IGRldGVybWluZTsKK+imj+WLuCA8IHRvXC1hZHZpc2U7Civooajnmq4gPCBlcGlkZXJtaXM7Civooajnmb0gPCB2aW5kaWNhdGU7Civnmb3ml6XlgZrlpKIgPCBkYXlcLWRyZWFtOwor56uVIDwgZGVjaWxpdGVyOwor5L+d6K2J5Lq6IDwgZ3VhcmFudG9yOwor56uGIDwgZXhoYXVzdGVkOwor55yL5YGaIDwgcmVnYXJkXC1hczsKK+eqiyA8IGluXC1hXC1ob2xlOwor56isIDwgZ2x1dGlub3VzOwor5LiK5pif5pyfIDwgbGFzdFwtd2VlazsKK+WFh+aJiyA8IGFzc2FpbGFudDsKK+WvrOmguyA8IGJyb2FkYmFuZDsKK+ilv+WNlyA8IHNvdXRod2VzdDsKK+ilv+WMlyA8IG5vcnRod2VzdDsKK+ekvSA8IGJsZXNzaW5nczsKK+ekniA8IFwobWluZXJhbFwpOwor57K+5benIDwgZWxhYm9yYXRlOwor56ys5LqM5Y2BIDwgdHdlbnRpZXRoOwor5baE5pawIDwgYnJhbmRcLW5ldzsKK+eihiA8IGFycm93XC10aXA7CivmiZPpgLIgPCB0b1wtYnJlYWNoOwor56CsIDwgYmlnXC1zdG9uZTsKK+WFrOWvuCA8IGRlY2ltZXRlcjsKK+WFrOWvkyA8IGFwYXJ0bWVudDsKK+W4uOS7uyA8IHBlcm1hbmVudDsKK+WFieW9qSA8IGhvbm9yYWJsZTsKK+edoemBjumgrSA8IG92ZXJzbGVlcDsKK+aMh+ekuiA8IHBvaW50XC1vdXQ7CivnnJUgPCByZXN0cmFpbnQ7Civnl4XnkIYgPCBwYXRob2xvZ3k7Civku7vkvZXlhbbku5YgPCBhbnlcLW90aGVyOwor6L6b5YueIDwgbGFib3Jpb3VzOwor5pCN5aOeIDwgdG9cLWRhbWFnZTsKK+eYrSA8IGFcLXdoaXRsb3c7CivnmJwgPCBhXC1wb2x5cHVzOwor5be05YuS5pav5Z2mIDwgcGFsZXN0aW5lOwor55ehIDwgYVwtZGlzZWFzZTsKK+WIqeacquiomCA8IGxldml0aWN1czsKK+erpeWtkOi7jSA8IGJveVwtc2NvdXQ7CivnlbEgPCB0b1wtZGV0YWluOwor5ZiJ6KixIDwgZmF2b3JhYmxlOwor55WLIDwgdGlsbFwtbGFuZDsKK+WFq+WkqSA8IGVpZ2h0XC1kYXk7CivnlKYgPCBiZVwtcmVib3JuOwor55O4IDwgaGVjdG9ncmFtOwor5ouS57WVIDwgdG9cLXJlZnVzZTsKK+imgeS4jSA8IG90aGVyd2lzZTsKK+eSvyA8IGZpbmVcLWphZGU7CivmqJnlrpogPCBkZW1hcmNhdGU7CivnkbQgPCB0d2luXC1nZW1zOwor55GjIDwgZnJhZ21lbnRzOwor6Ly75bCEIDwgcmFkaWF0aW9uOwor5Zub5Y2B5YWtIDwgZm9ydHlcLXNpeDsKK+aOkuaUviA8IGRpc2NoYXJnZTsKK+mrlOePviA8IHRvXC1lbWJvZHk7CivoobDmuJsgPCB0b1wtd2Vha2VuOwor57GD5p2/IDwgYmFja2JvYXJkOwor5Zyo77mN5peB6YKKIDwgYWxvbmdzaWRlOwor6aas6Z6tIDwgaG9yc2V3aGlwOwor542AIDwgdG9cLWdhdGhlcjsKK+esrOS5neWNgSA8IG5pbmV0aWV0aDsKK+eLsyA8IGFybWFkaWxsbzsKK+eHtiA8IHRvXC1zY29yY2g7CivnlaLnq58gPCBhZnRlclwtYWxsOwor54a/IDwgYnJpbGxpYW50Owor5YWI6KaL5LmL5piOIDwgZm9yZXNpZ2h0Owor5L2O6ZqOIDwgbG93XC1sZXZlbDsKK+aJgOisgiA8IHNvXC1jYWxsZWQ7CivmvbDniJsgPCB0b1wtZmVzdGVyOwor5YSy5a2YIDwgc3RvY2twaWxlOwor6LuK5YmN54eIIDwgaGVhZGxpZ2h0Owor5r+pIDwgcG91clwtZG93bjsKK+aOm+W/tSA8IGNvbmNlcm5lZDsKK+Wuh+iIquWToSA8IGFzdHJvbmF1dDsKK+i9n+WLlSA8IHNlbnNhdGlvbjsKK+iHuueHiCA8IGRlc2tcLWxhbXA7Civkvb/lm7DnqpggPCBlbWJhcnJhc3M7CivmubwgPCBibGFja1wtbXVkOwor5rmFIDwgYm9pbFwtc2lsazsKK+a3qSA8IHBhc3NcLW92ZXI7Civlr6bos6ogPCBzdWJzdGFuY2U7CivpmqjkuYvogIzlvowgPCBmcm9tXC10aGF0Owor5ra3IDwgcmFpbnN0b3JtOwor5rSRIDwgd2hpcmxwb29sOwor5ben5YWL5YqbIDwgY2hvY29sYXRlOwor5pyJ6ZuE5b+DIDwgYW1iaXRpb3VzOwor5q6IIDwgaW5mZXJ0aWxlOwor5qyVIDwgdHJlZVwtbmFtZTsKK+akjeeJqSA8IGJvdGFuaWNhbDsKK+epuumYsiA8IGFpclwtZm9yY2U7CivlhaXkvrUgPCB0b1wtaW52YWRlOwor6JmV55CG5ZmoIDwgcHJvY2Vzc29yOwor5Li7566h5Lq65ZOhIDwgZXhlY3V0aXZlOwor5qmaIDwgdGFsbFwtdHJlZTsKK+WFrOS4iCA8IGRlY2FtZXRlcjsKK+i8uOWHuiA8IHRvXC1leHBvcnQ7CivmpqogPCBoZWFkYm9hcmQ7Civnn6Xmm7Tps6UgPCByZWRicmVhc3Q7CivllZ/npLrogIUgPCByZXZlbGF0b3I7CivovLjlhaUgPCB0b1wtaW1wb3J0Owor562J562JIDwgZXRcLWNldGVyYTsKK+esrOS4ieWNgSA8IHRoaXJ0aWV0aDsKK+ajliA8IGRvb3JcLXN0b3A7CivmopwgPCBjaG9wc3RpY2s7Civmv4DmgJIgPCBpbmZ1cmlhdGU7CivmoLEgPCBsYXJnZVwtcGVnOwor5qCtIDwga2luZ1wtcG9zdDsKK+agkiA8IGNyb3NzXC1iYXI7CivlgZzms4ogPCBhbmNob3JhZ2U7Civmn4ggPCBjb250YWluZXI7CivmnpkgPCB0cmVlXC1rbm90Owor55m96Y6i56SmIDwgc2NoZWVsaXRlOwor5pyeIDwgZnVsbFwteWVhcjsKK+aJi+aPkOWMhSA8IFwoaGFuZFwpYmFnOwor5oqA6KGT5oCnIDwgdGVjaG5pY2FsOwor5ryy5r2uIDwgaGlnaFwtdGlkZTsKK+aajSA8IHN1bnN0cm9rZTsKK+WutuitnCA8IGdlbmVhbG9neTsKK+mpmueVsCA8IGFtYXplbWVudDsKK+i8lOWKqSA8IHRvXC1hc3Npc3Q7Civml6ogPCB1bml0ZWRcLWluOwor5o+Q5L6bIDwgdG9cLXN1cHBseTsKK+S4jeiqoOWvpiA8IGRpc2hvbmVzdDsKK+ixjOixhueypSA8IHBlYVwtZ3J1ZWw7CivorormtYHlmaggPCBjb252ZXJ0ZXI7CivmlIsgPCB0b1wtY2x1dGNoOwor5pSDIDwgcHJlY2VkaW5nOwor5pOQIDwgdG9cLXB1dFwtb247Civpq5Tmk40gPCBneW1uYXN0aWM7Civmkb0gPCB0aHJvd1wtb3V0Owor5o+Q5pGp5aSq5YmN5pu4IDwgMVwtdGltb3RoeTsKK+aRriA8IHRvXC1yYXR0bGU7Civmj6UgPCBzY3JhdGNoZXI7Civkvr/nrosgPCBub3RlcGFwZXI7CivogZbppJAgPCBzYWNyYW1lbnQ7CivosqHli5nnp5jmm7ggPCB0cmVhc3VyZXI7CivmibnnmbwgPCB3aG9sZXNhbGU7CivotpXnt4ogPCBodXJyaWVkbHk7CivmibPpgZPlk6EgPCBwb2ludHNtYW47CivmiaQgPCB0b1wtdGhydXN0Owor6aqo5p62IDwgZnJhbWV3b3JrOwor5oicIDwgdG9cLXNjcmFwZTsKK+WBteaOoiA8IGRldGVjdGl2ZTsKK+WFqeaYn+acnyA8IGZvcnRuaWdodDsKK+aMkeaIsCA8IGNoYWxsZW5nZTsKK+agvOW8j+WMliA8IHRvXC1mb3JtYXQ7CivooqvlkYogPCBkZWZlbmRhbnQ7Civms6LliKnlsLzopb/kup4gPCBwb2x5bmVzaWE7CivmgoEgPCBpcnJpdGFibGU7CivmgZEgPCB0b1wtY2hhbmdlOwor5oC6IDwgdG9cLWVuZHVyZTsKK+aAniA8IHRvXC1ncmlldmU7CivmgJcgPCBvYnNlcnZhbnQ7CivmjqHnn7PloLQgPCBzdG9uZVwtcGl0Owor5Yqg5YuS5q+UIDwgY2FyaWJiZWFuOwor6Zu75aCx5qmfIDwgdGVsZWdyYXBoOwor6LKd6aGeIDwgc2hlbGxmaXNoOwor5Zyo5YWnIDwgaW5jbHVkaW5nOwor5ou/5omLIDwgZXhwZXJ0XC1pbjsKK+W3peS9nOihqCA8IHdvcmtzaGVldDsKK+aatOmiqOmbqiA8IHNub3dzdG9ybTsKK+eriuiBvSA8IGVhdmVzZHJvcDsKK+W7viA8IHR3b1wtaGFuZHM7CivluokgPCBhXC12aWxsYWdlOwor5bmpIDwgdHJhcHBpbmdzOwor5bmZIDwgYVwtY3VydGFpbjsKK+Wuv+iIjSA8IGRvcm1pdG9yeTsKK+WxseawtCA8IGxhbmRzY2FwZTsKK+Wbm+WkqSA8IGZvdXJcLWRheXM7CivmjLrlpb0gPCB2ZXJ5XC1nb29kOwor57C95YWlIDwgdG9cLWxvZ1wtb247Civppqzog4wgPCBob3JzZWJhY2s7CivpqZXmsKMgPCBhcnJvZ2FuY2U7CivnlpHlv4MgPCBzdXNwaWNpb247CivmuLrojKsgPCB1bmNlcnRhaW47Civlr70gPCBhXC1oYW5kZnVsOwor5paH5a2X5qqUIDwgdGV4dFwtZmlsZTsKK+WvmCA8IHB1dFwtYXNpZGU7Civmv4Dli5UgPCB0b1wtZXhjaXRlOwor5aubIDwgY29tcGxpYW50Owor5aqsIDwgZ292ZXJuZXNzOwor5aqVIDwgdW5kZWNpZGVkOwor5re76KOcIDwgZmlsbFwtXCh1cFwpOwor6LK/5piT5oiwIDwgdHJhZGVcLXdhcjsKK+WlieaJv+iAhSA8IGZsYXR0ZXJlcjsKK+eUn+iCsuiDveWKmyA8IGZlcnRpbGl0eTsKK+S/ruatoyA8IHRvXC1yZXZpc2U7CivmjIfmj67ogIUgPCBjb25kdWN0b3I7CivlpIwgPCB0b1wtZGF3ZGxlOwor5p+Q6JmVIDwgc29tZXdoZXJlOwor5aGdIDwgZmxhdFwtYmFuazsKK+WPg+iAg+abuCA8IHJlZmVyZW5jZTsKK+WFseS6q+i7n+mrlCA8IHNoYXJld2FyZTsKK+iyqOi8qiA8IGZyZWlnaHRlcjsKK+WNiuihsOacnyA8IGhhbGZcLWxpZmU7CivlnIogPCByZXN0XC1yb29tOwor6auU5ZyYIDwgY29tbXVuaXR5Owor5oq15oqXIDwgdG9cLXJlc2lzdDsKK+S4jeWPl+atoei/jiA8IHVud2VsY29tZTsKK+WZgSA8IG5hc3RpbmVzczsKK+misemiqCA8IGh1cnJpY2FuZTsKK+WYkSA8IHRvXC1tZW5hY2U7Civmi4nmlpDnibkgPCBsYWZheWV0dGU7CivotJbnvaogPCBhdG9uZW1lbnQ7Civlr7XniakgPCBob3VzZVwtcGV0Owor6IGW6KqVIDwgY2hyaXN0bWFzOwor5ZOrIDwgdG9cLWNham9sZTsKK+WStSA8IHRvXC1yZXZpbGU7CivkuI3ntZDmnpwgPCBmcnVpdGxlc3M7CivlkacgPCB0b1wtcmVidWtlOwor5YGH5a6aIDwgdG9cLWFzc3VtZTsKK+eUs+iri+S6uiA8IGFwcGxpY2FudDsKK+ihjOWLlSA8IG9wZXJhdGlvbjsKK+S4u+mrlCA8IG1haW5cLXBhcnQ7CivmiYvms5UgPCB0ZWNobmlxdWU7CivmtojpgaMgPCBhbXVzZW1lbnQ7Civlh7rniYjogIUgPCBwdWJsaXNoZXI7Civlj4UgPCB0b1wtY291bmVsOwor5Y6TIDwgcHJlY2lwaWNlOwor5Ye55Ye45Y2w5Yi3IDwgZW1ib3NzaW5nOwor5bCx5qWtIDwgZ2V0XC1hXC1qb2I7Civnlobln58gPCB0ZXJyaXRvcnk7CivmnKzmmJ/mnJ8gPCB0aGlzXC13ZWVrOwor5YyYIDwgdGhlXC1icmFpbjsKK+WLqSA8IHdvcmtcLWhhcmQ7CivmgKrkuI3lvpcgPCBub1wtd29uZGVyOwor5pKS6YO96Kmy5Lq6IDwgc2FkZHVjZWVzOwor5om/5pOUIDwgdW5kZXJ0YWtlOwor5YiUIDwgc2Nvb3BcLW91dDsKK+iGveWwjyA8IGNvd2FyZGljZTsKK+WHtyA8IGRpcnRcLWNsb2Q7Civlh5kgPCBhblwtaWNpY2xlOwor5Ym16YCg5YqbIDwgaW5nZW51aXR5Owor5bGs5oCnIDwgYXR0cmlidXRlOwor5YWHIDwgYXRyb2Npb3VzOwor5Li76aCBIDwgaG9tZVwtcGFnZTsKK+WPr+WuueW/jSA8IHRvbGVyYWJsZTsKK+acg+mdoiA8IG1lZXRcLXdpdGg7CivlgrogPCB0b1wtaGluZGVyOwor5oiQ54K6IDwgdG9cLWJlY29tZTsKK+S6pOiqvCA8IGNvbW11bmlvbjsKK+WcluabuOeuoeeQhuWToSA8IGxpYnJhcmlhbjsKK+WfuuacrOS4iiA8IGJhc2ljYWxseTsKK+S+jiA8IHRvXC1zb290aGU7CivkvLsgPCBtZXNzZW5nZXI7CivkvIsgPCBkZWNlcHRpdmU7CivmvZvlipsgPCBwb3RlbnRpYWw7CivnqLvojYnkurogPCBzY2FyZWNyb3c7Civlrbjnq6UgPCBzY2hvb2xib3k7CivlpJrnlKjmiLYgPCBtdWx0aXVzZXI7Civoh6rli5UgPCBhdXRvbWF0aWM7CivlhbHnlKLkuLvnvqkgPCBjb21tdW5pc207CivktrMgPCB0b1wtbG9va3VwOwor5LaRIDwgdG9cLXNuZWV6ZTsKK+igleWLlSA8IHRvXC13aWdnbGU7CivmiZPmlZcgPCB0b1wtZGVmZWF0Owor6LGq6LGsIDwgcG9yY3VwaW5lOwor5LiN5Lul54K654S2IDwgb2JqZWN0XC10bzsKK+SzuiA8IHRoZVwtcXVhaWw7CivmtYHph48gPCBmbG93XC1yYXRlOwor5LKoIDwgd2lsZFwtc3dhbjsKK+ekvuacg+S4u+e+qSA8IHNvY2lhbGlzbTsKK+SxiCA8IGZpc2hcLXB1bHA7CivksKUgPCBhXC1jeWNsb25lOwor6LOc57WmIDwgdG9cLWJlc3RvdzsKK+icnOaciOWBh+acnyA8IGhvbmV5bW9vbjsKK+SvpiA8IHRpbnlcLWJvbmU7CivkrpwgPCB0b1wtZ2FsbG9wOwor5oub5YufIDwgdG9cLXJlY3VpdDsKK+StrCA8IHRvXC1rb3d0b3c7CivlsI3mlrwgPCByZWdhcmRpbmc7CivkrZsgPCB0YXN0ZWxlc3M7CivkrZEgPCBpbmNvcnJ1cHQ7CivlkIznj63lkIzlrbggPCBjbGFzc21hdGU7CivkrLYgPCB0b1wtc3RyYXZlOwor5Ku7IDwgYVwtdHlwaG9vbjsKK+SrlCA8IGFcLXNlcnZhbnQ7CivkuIrpnaIgPCBvblwtdG9wXC1vZjsKK+e+veavm+eQgyA8IGJhZG1pbnRvbjsKK+SppiA8IHRoZVwtcmVpbnM7CivkupTomZ8gPCB0aGVcLWZpZnRoOwor5KitIDwgdGhlXC1za2llczsKK+SojSA8IGRlZXBcLXBvbmQ7CivkprUgPCBpbmNhcGFibGU7CivkpqwgPCBhXC12YWNhbmN5Owor5KaGIDwgYVwtYmlnXC1ob2U7Civmi4bljbggPCB0b1wtdW5sb2FkOwor5pWR6K236LuKIDwgYW1idWxhbmNlOwor6JuL55m9IDwgZWdnXC13aGl0ZTsKK+esrOWNgeWFrSA8IHNpeHRlZW50aDsKK+SisSA8IHRvXC1zbGlnaHQ7Civkop8gPCB0b1wtdHJhdmVsOwor5ZCe6aOfIDwgdG9cLWRldm91cjsKK+SijSA8IHRvXC1oYXN0ZW47Civkvb/nlJ/msKMgPCBkaXNwbGVhc2U7Civog4Pngo4gPCBnYXN0cml0aXM7CivlsI3mipcgPCB3aXRoc3RhbmQ7CivkoLIgPCB0b1wtbGlzdGVuOwor5KCvIDwgdG9cLWFzY2VuZDsKK+SgriA8IHRvXC1wcmFuY2U7Civkn7sgPCBiYXJlXC1mZWV0Owor5J+eIDwgdG9cLWZhbHRlcjsKK+S4jeWFrOatoyA8IGluanVzdGljZTsKK+iEq+aOiSA8IHN0cmlwXC1vZmY7CivpppnmuK8gPCBob25nXC1rb25nOwor5J+MIDwgZGl2ZXJnaW5nOwor5J68IDwgdG9cLWVzY2FwZTsKK+SekiA8IHJlZFwtY29sb3I7CivknpAgPCBwbGVudGlmdWw7CivknokgPCBhXC1zdXJwbHVzOwor5JytIDwgdG9cLWRyZWRnZTsKK+WvpuaZgiA8IHJlYWxcLXRpbWU7Civogrrngo4gPCBwbmV1bW9uaWE7CivknJ8gPCB0b1wtdmVyaWZ5Owor5YWJ5bCE57eaIDwgbGlnaHRcLXJheTsKK+SbuyA8IHRvXC1pbmR1Y2U7Civkm7kgPCB0b1wtYWNjdXNlOwor5JuzIDwgdG9cLW1hbGlnbjsKK+SbrCA8IGJhYnlcLXRhbGs7Civkm6ogPCBsb3F1YWNpdHk7Civkm4sgPCB0b1wtc2NoZW1lOwor5JuBIDwgdG9cLW11cm11cjsKK+aFtuelnSA8IGNlbGVicmF0ZTsKK+SZuCA8IHRvXC1vYnRhaW47CivlpJblnIvkurogPCBmb3JlaWduZXI7CivkmLwgPCBzdG9ja2luZ3M7CivlrrDmrrogPCBzbGF1Z2h0ZXI7CivnrKzljYHkupQgPCBmaWZ0ZWVudGg7CivkmJEgPCB0aGVcLXB1bHNlOwor5JWpIDwgZHJ5XC1mcnVpdDsKK+a1quiVqSA8IHRvXC1sb2l0ZXI7CivklLMgPCBjaGlja2xpbmc7Civkk7AgPCBhYnNpbnRoaW47Civmn5DniakgPCBzb21ldGhpbmc7CivkkoogPCBhXC1wYXRpZW50Owor5JGqIDwgYVwtc2FpbGluZzsKK+SRkyA8IGFcLWxvb2tvdXQ7CivmtKXosrwgPCBhbGxvd2FuY2U7CivkkLogPCBkZWxpY2lvdXM7CivkkJsgPCB0b1wtbG9vc2VuOwor5JCGIDwgYmlnXC1iZWxseTsKK+SPvSA8IG1lYXRcLXB1bHA7Civkj6wgPCB0aGVcLXNwaW5lOwor5I+gIDwgbWVhdFwtc291cDsKK+SPniA8IHRoZVwtYmVsbHk7Civogp3ngo4gPCBoZXBhdGl0aXM7CivkjqEgPCB0b1wtc2hyaW5rOwor5raI6ICXIDwgdG9cLXVzZVwtdXA7CivkjoMgPCBmaW5lXC1kb3duOwor6Zi/5qC55bu3IDwgYXJnZW50aW5hOwor5I2OIDwgYVwtc3BpbmRsZTsKK+SMsiA8IGxpZ2h0XC1yZWQ7CivkjJsgPCBlbnRvdXJhZ2U7Civki6AgPCB0b1wtcmVwYWlyOwor5IqwIDwgZm9vZHN0dWZmOwor5IqcIDwgZHVtcGxpbmdzOwor5Im8IDwgbWF0ZXJpYWxzOwor5LiK6LyJIDwgdG9cLXVwbG9hZDsKK+iYreiKsSA8IGN5bWJpZGl1bTsKK+abuOiomCA8IHNlY3JldGFyeTsKK+a1quiIuSA8IHN3aW5nYm9hdDsKK+WBveWWhOiAhSA8IGh5cG9jcml0ZTsKK+SHkCA8IHRvXC1hcnJpdmU7CivlsI/lr6sgPCBsb3dlcmNhc2U7CivkhpAgPCBhXC1jb3VudHJ5Owor6J665peL5qezIDwgcHJvcGVsbGVyOwor55So5YW3IDwgYXBwbGlhbmNlOwor5Y+k6aKoIDwgYW50aXF1aXR5Owor5IWDIDwgbGF0ZVwtY3JvcDsKK+WuieathyA8IGdvXC10b1wtYmVkOwor5IOpIDwgYVwtbWluZXJhbDsKK+WutuaXjyA8IGhvdXNlaG9sZDsKK+SDlSA8IHN0b25ld2FyZTsKK+iHquWLleaok+airyA8IGVzY2FsYXRvcjsKK+e3iuaApeS6i+S7tiA8IGVtZXJnZW5jeTsKK+SDgCA8IG1pbGxzdG9uZTsKK+S9leaVhSA8IHdoZXJlZm9yZTsKK+iFs+WNsCA8IGZvb3RwcmludDsKK+eTt+WZqCA8IGNoaW5hd2FyZTsKK+iyr+awtOiZlSA8IHJlc2Vydm9pcjsKK+SBkCA8IGRlZXBcLWV5ZWQ7Civnq6XlubQgPCBjaGlsZGhvb2Q7CivljbDluqblsLzopb/kup4gPCBpbmRvbmVzaWE7CivljYrmtYHpq5QgPCBzZW1pZmx1aWQ7CivkgKwgPCB0b1wtZ2xhbmNlOwor5IChIDwgdG9cLXNweVwtb247CivkgJAgPCB0b1wtcmVnYXJkOwor6LW35bqKIDwgdG9cLWdldFwtdXA7Civjv78gPCB3aW5lXC1jdXBzOwor5rCR5Li75Li7576p6ICFIDwgZGVtb2NyYXRzOwor47+fIDwgaGVcLWJyaWdodDsKK+W+geacjeiAhSA8IGNvbnF1ZXJvcjsKK+O+pSA8IGJlbGx5YWNoZTsKK+O+oyA8IHRvXC1zaGl2ZXI7Civku4rnlJ8gPCB0aGlzXC1saWZlOwor5o2V6byg5ZmoIDwgbW91c2V0cmFwOwor472eIDwgdG9cLXJlbWFpbjsKK+O9iSA8IGFcLWJpZ1wtamFyOwor47y6IDwgcG9yY2VsYWluOwor6K6K6Imy6b6NIDwgY2hhbWVsZW9uOwor47yaIDwgZWFydGh3YXJlOwor5bCN5oqX6ICFIDwgYWR2ZXJzYXJ5Owor5pys6IG3IDwgb25lJydzXC1qb2I7CivpgIDpu5Hmv4DntKAgPCBtZWxhdG9uaW47Civog4zmlpwgPCBhbnRpY2xpbmU7CivmmrTouoEgPCBpcmFzY2libGU7CivmsaDpub0gPCBsYWtlXC1zYWx0Owor6JaE5rK55bGkIDwgb2lsXC1zaGVldDsKK+S4jeiosSA8IG5vdFwtYWxsb3c7CivllYbmqJkgPCB0cmFkZW1hcms7Civpo6/nopcgPCByaWNlXC1ib3dsOwor54Sh55+l6Ka6IDwgc2Vuc2VsZXNzOwor5pmk6Z2iIDwgaW50ZXJ2aWV3Owor6YeN6ZaLIDwgdG9cLXJlb3BlbjsKK+O1lCA8IG5vdFwtY2xlYXI7CivororpnakgPCB0cmFuc2Zvcm07CivjtIEgPCB0b1wtYWRkXC10bzsKK+eZveS6keavjSA8IG11c2Nvdml0ZTsKK+OzqCA8IHRvXC1zcGxhc2g7CivmiKrlpaogPCBpbnRlcmNlcHQ7CivlvavliLvlk4EgPCBzY3VscHR1cmU7Civmt7HmsLQgPCBkZWVwd2F0ZXI7CivjsJYgPCB0aGVcLW9saXZlOwor46+6IDwgYVwtY2FiaW5ldDsKK+iuiueEpui3nemPoemgrSA8IHpvb21cLWxlbnM7Civjr68gPCBzbWFsbFwtY3VwOwor46+dIDwgcGF1bG93bmlhOwor466ZIDwgYVwtcGl0ZmFsbDsKK+OtoiA8IG1lY2hhbmljczsKK+i1t+WniyA8IG9yaWdpbmF0ZTsKK+OsvyA8IG1vb25saWdodDsKK+elh+iugCA8IHJlYWRcLW9ubHk7CivjrKsgPCBjbGVhclwtc2t5Owor5LiA5Y2D5Zm4IDwgMTAwMFwtdG9uczsKK+S4jeimj+WJhyA8IGlycmVndWxhcjsKK+azoueLgOmbsiA8IHVuZHVsYXR1czsKK+WtuOacgyA8IGluc3RpdHV0ZTsKK+OqiCA8IHRvXC1sZXRcLWdvOwor46mSIDwgdG9cLWFycmVzdDsKK+OphyA8IHRoZVwtdGh1bWI7CivjqLYgPCB0b1wtdGhyZXNoOwor46iJIDwgdG9cLXNtb290aDsKK+OnqSA8IHRvXC1kaXNwZWw7Civjp5cgPCB0b1wtY2xhdGNoOwor76a7IDwgb2ZmaWNpYWxzOwor46avIDwgYVwtY2VydGFpbjsKK+OmliA8IHJlc2VudGZ1bDsKK+OlviA8IG1vcnRpZmllZDsKK+OlsyA8IHRvXC1zdXJ2ZXk7CivjpaYgPCBzYXRpc2ZpZWQ7CivjpYAgPCBleGNsdXNpdmU7CivjpLUgPCBjb3Bhc3Npb247CivmnKvnq68gPCBleHRyZW1pdHk7CivjpIcgPCB0ZXJyaWZpZWQ7CivjpIYgPCBuYXVzZWF0ZWQ7Civjo7ogPCB0aGVcLWhlYXJ0Owor55Oc5YiGIDwgcGFydGl0aW9uOwor46KhIDwgdG9cLWV4aG9ydDsKK+OhvCA8IGFcLWdyYW5hcnk7CivjobogPCBhXC1jb3R0YWdlOwor46GXIDwgcmVkXC1wYXBlcjsKK+OgmCA8IGFuXC1pc2xhbmQ7Civmtoznj74gPCBzcHJpbmdcLXVwOwor56au56+AIDwgZXRpcXVldHRlOwor6K6K6YacIDwgZGlzZmlndXJlOwor45y7IDwgdG9cLWFkbWlyZTsKK+icguW3oiA8IGhvbmV5Y29tYjsKK+OcmCA8IGRlbGljYXRlZDsKK+OcjyA8IGxhc3RcLW5hbWU7CivkuK3nvo4gPCBjaGluYVwtdXNhOwor45u+IDwgbm90XC1jbGVhbjsKK+aal+iqniA8IGNvZGVcLXdvcmQ7Civmk7Tpn7PlmaggPCBtZWdhcGhvbmU7CivkuI3opovkuoYgPCBkaXNhcHBlYXI7CivjmrAgPCBhblwtZW1icnlvOwor45qbIDwgY29ycHVsZW50Owor45qYIDwgYVwtcGFydG5lcjsKK+mHjei5iCA8IHRvXC1yZXBlYXQ7CivjmKMgPCBjb21wYXNzZXM7Civjl7MgPCBmb3JnZXRmdWw7CivkuZ3mnIjku70gPCBzZXB0ZW1iZXI7CivotoXmlofmnKwgPCBoeXBlcnRleHQ7Civln7rnnaPmlZnlvpIgPCBjaHJpc3RpYW47CivjlbkgPCBhXC1idWNrbGVyOwor45WVIDwgZGVjZXB0aW9uOwor45WRIDwgYVwta2l0Y2hlbjsKK+S8keaIsCA8IGFybWlzdGljZTsKK+OViyA8IHJvY2tcLWxhbmQ7CivjlYggPCB0b1wtbGluZ2VyOwor45SnIDwgdG9cLWluY2l0ZTsKK+iugOabuOS6uiA8IGFcLXNjaG9sYXI7Civjk4sgPCB0b1wtZnJlZXplOwor45OEIDwgdG9cLXBsb3VnaDsKK+WPm+izoyA8IHRvXC1iZXRyYXk7CivjkacgPCBwZXJ0dXJiZWQ7CivjkYQgPCB0b1wtaW5zdWx0Owor45CvIDwgdG9cLWVtcGxveTsKK+S8uOWxlSA8IGV4dGVuc2lvbjsKK+S4gOiHtCA8IHVuYW5pbW91czsKK+W8leeUqOWPpSA8IHF1b3RhdGlvbjsKK+iAgeeJjCA8IG9sZFwtYnJhbmQ7CivlppbpoqggPCBldmlsXC13aW5kOwor6Yy25bi2IDwgd2F0Y2hiYW5kOwor5rib5bCRIDwgdG9cLWxlc3NlbjsKK+acieebiiA8IHdob2xlc29tZTsKK+eri+WIuyA8IGZvcnRod2l0aDsKK+WFq+WAjemrlCA8IG9jdG9wbG9pZDsKK+a3seaAnSA8IHRvXC1wb25kZXI7Civph47ooLsgPCBiYXJiYXJvdXM7CivosqHmnbEgPCBzaG9wb3duZXI7CivomZvmp4sgPCBpbWFnaW5hcnk7CivooqvnpoHmraIgPCBmb3JiaWRkZW47Civoga/mg7MgPCBhc3NvY2lhdGU7CivmtbjmspIgPCBpbW1lcnNpb247Civmt5LmhZggPCBtaXNlcmFibGU7CivkuIDnr4cgPCBvbmVcLXNpZGVkOwor5LuL6LOq6Kiq5ZWP5o6n5Yi25bGkIDwgbWFjXC1sYXllcjsKK+S4jeiHqueEtiA8IHVubmF0dXJhbDsKK+acn+a7vyA8IHRvXC1leHBpcmU7CivoraboprogPCB2aWdpbGFuY2U7Civljp/oq5IgPCB0b1wtZXhjdXNlOwor5a625L+xIDwgZnVybml0dXJlOwor6auY56eR5oqAIDwgaGlnaFwtdGVjaDsKK+aEn+afkyA8IGluZmVjdGlvbjsKK+WtlOWtkCA8IGNvbmZ1Y2l1czsKK+S6nuagvOmWgOi+siA8IGFnYW1lbW5vbjsKK+WutuS6iyA8IGhvdXNld29yazsKK+aAqueJqeS8vCA8IG1vbnN0cm91czsKK+WGsOajjeWFkiA8IGljZVwtbG9sbHk7Civku4rlubQgPCB0aGlzXC15ZWFyOwor55m954+t5YWSIDwgZGF5XC1zaGlmdDsKK+S4gOeZviA8IGFcLWh1bmRyZWQ7Civku7LlpI8gPCBtaWRzdW1tZXI7CivorYnoqZ4gPCB0ZXN0aW1vbnk7CivkuI3pgJ7kuYvlvpIgPCBkZXNwZXJhZG87CivnqoHlh7ogPCBwcm9taW5lbnQ7CivmmJ/mnJ/kuIkgPCB3ZWRuZXNkYXk7Civmg6Hmr5IgPCBtYWxpY2lvdXM7Civph47ooLvkurogPCBiYXJiYXJpYW47CivljYHlrZfou40gPCBjcnVzYWRlcnM7CivpnLLpn5MgPCB0b1wtZXhwb3NlOwor5rOV5ZyL5Lq6IDwgZnJlbmNobWFuOwor5LqU5Y2D5Zm4IDwgNTAwMFwtdG9uczsKK+W9semfvyA8IGluZmx1ZW5jZTsKK+aatOeZvCA8IGJyZWFrXC1vdXQ7Civmh4nku5ggPCBkZWFsXC13aXRoOwor5pyJ5q+SIDwgcG9pc29ub3VzOwor5byx6bm8IDwgd2Vha1wtYmFzZTsKK+axveiIuSA8IHN0ZWFtYm9hdDsKK+mBh+mbo+iIuSA8IHNoaXB3cmVjazsKK+WPr+eskSA8IGxhdWdoYWJsZTsKK+WNiui8iSA8IGhhbGZcLWxvYWQ7Civlvq7ou58gPCBtaWNyb3NvZnQ7Civku5nlooMgPCBmYWlyeWxhbmQ7Civml6jotqMgPCBvYmplY3RpdmU7CivlpKfpoZ4gPCBtYWluXC10eXBlOwor5pys5paHIDwgdGhpc1wtdGV4dDsKK+e+iuearue0mSA8IHBhcmNobWVudDsKK+aGpOaGpOS4jeW5syA8IGluZGlnbmFudDsKK+eHn+mkiiA8IG51dHJpdGlvbjsKK+WPjeiJpuiJhyA8IGFudGlcLXNoaXA7CivljZTorbAgPCBhZ3JlZW1lbnQ7CivpgqPpurwgPCBzb1wtXChtdWNoXCk7Civlv4XpnIDlk4EgPCBuZWNlc3NpdHk7Civnoqfol40gPCBkYXJrXC1ibHVlOwor5b6F6YGHIDwgdHJlYXRtZW50Owor5LiL5YCL5pif5pyfIDwgbmV4dFwtd2VlazsKK+WQiOeQhiA8IHJhdGlvbmFsZTsKK+eOqeW8hCA8IHJlc29ydFwtdG87Civml4Hot68gPCB0b1wtYnlwYXNzOwor5aSc6ZaTIDwgbmlnaHR0aW1lOwor5q+U6YSwIDwgbmVpZ2hib3VyOwor5pu45p62IDwgYm9va3NoZWxmOwor5pyJ5pWIIDwgZWZmZWN0aXZlOwor57y955uCIDwgYWxtc1wtYm93bDsKK+efs+eBsOefsyA8IGxpbWVzdG9uZTsKK+izh+WKqSA8IHN1YnNpZGl6ZTsKK+att+WPsuWtuOWutiA8IGhpc3RvcmlhbjsKK+S/rumBk+mZoiA8IG1vbmFzdGVyeTsKK+S4iuasoSA8IGxhc3RcLXRpbWU7CivmnJvpgaDpj6EgPCB0ZWxlc2NvcGU7Civmk7roqK3lhZIgPCBvcm5hbWVudHM7CivkupTlpKkgPCBmaXZlXC1kYXlzOwor5b+D6Z2I5LiKIDwgc3Bpcml0dWFsOwor5peB6KeAIDwgc3BlY3RhdG9yOwor5aCF5b+N5LiN5ouUIDwgZm9ydGl0dWRlOwor5LuL5YWlIDwgaW50ZXJ2ZW5lOwor5Lul5LiKIDwgbW9yZVwtdGhhbjsKK+efm+mgrSA8IHNwZWFyaGVhZDsKK+WkoumBuiA8IHdldFwtZHJlYW07CivlpKnmloflrbggPCBhc3Ryb25vbXk7Civlt7Tmr5TlpqUgPCBiYXJiaXRvbmU7Civms6LmrrUgPCB3YXZlXC1iYW5kOwor6Zui6ZaLIDwgdG9cLWRlcGFydDsKK+WvpuizquS4iiA8IHZpcnR1YWxseTsKK+WQkOawoyA8IGFzcGlyYXRlZDsKK+adseWNlyA8IHNvdXRoZWFzdDsKK+Wlh+ingCA8IHNwZWN0YWNsZTsKK+aUuemdqSA8IHRvXC1yZWZvcm07CivmhJvlnIsgPCBwYXRyaW90aWM7CivkuI3mlrcgPCB1bmNlYXNpbmc7CivmnKrlqZogPCB1bm1hcnJpZWQ7CivlvLHphbggPCB3ZWFrXC1hY2lkOwor5LmY5a6iIDwgcGFzc2VuZ2VyOwor6YWN572uIDwgdG9cLWRlcGxveTsKK+WkseiqvyA8IGltYmFsYW5jZTsKK+acrOWjmCA8IGhvbWVcLWJhc2U7CivkurrkuosgPCBwZXJzb25uZWw7CivmnInmhI/orZggPCBjb25zY2lvdXM7Civmm7jlupcgPCBib29rc3RvcmU7Civlj5flrrPogIUgPCBjYXN1bHRpZXM7CivkuI3lroznvo4gPCBkZWZlY3RpdmU7Civlj7jmqZ8gPCBjaGF1ZmZldXI7CivmnbHkup4gPCBlYXN0XC1hc2lhOwor5ZCI5qC8IDwgcXVhbGlmaWVkOwor5oOF57eS5YyWIDwgZW1vdGlvbmFsOwor6ICQ5YqbIDwgZW5kdXJhbmNlOwor5pSv5oyB6ICFIDwgc3VwcG9ydGVyOwor5piO56K6IDwgY2xlYXJcLWN1dDsKK+S4jeaDnCA8IG5vdFwtc3RpbnQ7CivlgJ/mm7jllq4gPCBib29rXC1zbGlwOwor5Li75ammIDwgaG91c2V3aWZlOwor6KGo5oSP5paH5a2XIDwgaWRlb2dyYXBoOwor6YCa6LKo6Iao6IS5IDwgaW5mbGF0aW9uOwor546p5YW3IDwgcGxheXRoaW5nOwor6Zu76KmxIDwgdGVsZXBob25lOwor5pa96IKlIDwgZmVydGlsaXplOwor56ys5YWr5Y2BIDwgZWlnaHRpZXRoOwor6YeM56iL56KRIDwgbWlsZXN0b25lOwor5LiN5beyIDwgZW5kbGVzc2x5Owor6Zuc6LKoIDwgZ3JvY2VyaWVzOwor5pyo5YygIDwgY2FycGVudGVyOwor6Yas5rK5IDwgc295XC1zYXVjZTsKK+S4jeaDhemhmCA8IHVud2lsbGluZzsKK+inuOmsmiA8IHRlbnRhY2xlczsKK+S4i+Wumue+qSA8IHRvXC1kZWZpbmU7Civmk6bpn7MgPCBmcmljYXRpdmU7CivlkajlnI0gPCBlbmNvbXBhc3M7CivlsI3kuI3otbcgPCBpJydtXC1zb3JyeTsKK+S4jeWwjSA8IGluY29ycmVjdDsKK+W/g+ebriA8IG1lbnRhbGl0eTsKK+WPr+aVrCA8IHZlbmVyYWJsZTsKK+Wkp+iNsyA8IHNveWFcLWJlYW47CivwoqWeIDwgc2FtZVwtYXNcLeW/oTsKK+WBh+ixoeeJmSA8IGNlbGx1bG9pZDsKK+mZjeiQveWCmCA8IHBhcmFjaHV0ZTsKK+azouW5hSA8IGFtcGxpdHVkZTsKK+WPs+aJiyA8IHJpZ2h0aGFuZDsKK+a1geWFpSA8IGZsb3dcLWludG87Civms6jlsIQgPCBpbmplY3Rpb247Civnoaznm6QgPCBoYXJkXC1kaXNrOwor5Yqf6KqyIDwgY2xhc3N3b3JrOwor6YCx6ZW3IDwgcGVyaW1ldGVyOwor6LO86LK36ICFIDwgcHVyY2hhc2VyOwor5aSn5pWZ5aCCIDwgY2F0aGVkcmFsOwor57WE57mU6ICFIDwgb3JnYW5pemVyOwor5ama5ae7IDwgbWF0cmltb255Owor5LiN5ZyoIDwgbm90XC1iZVwtaW47CivkuJnnqK7lsITnt5ogPCBnYW1tYVwtcmF5Owor6Z6t5q+bIDwgZmxhZ2VsbHVtOwor5pKr6aSKIDwgdG9cLWZvc3RlcjsKK+WIqumZpCA8IHRvXC1kZWxldGU7CivpgaDotrMgPCBleGN1cnNpb247CivnhKHpmZAgPCB1bmxpbWl0ZWQ7CivpoJHlvLcgPCB0ZW5hY2lvdXM7CivnhKHpl5wgPCB1bnJlbGF0ZWQ7CivokrjnmbwgPCBldmFwb3JhdGU7Civlj6TmgKogPCBlY2NlbnRyaWM7CivlvpfnlbYgPCBleHBlZGllbnQ7CivmsrnluIMgPCB0YXJwYXVsaW47CivkuIvllIcgPCBsb3dlclwtbGlwOwor5LiK5ZSHIDwgdXBwZXJcLWxpcDsKK+iBlui/reWTpSA8IHNhblwtZGllZ287CivpoIHlv4MgPCB0eXBlXC1wYWdlOwor5rGh5p+TIDwgcG9sbHV0aW9uOwor5oSP5rCj55u45oqVIDwgY29uZ2VuaWFsOwor6ZW35pa55b2iIDwgcmVjdGFuZ2xlOwor5YmN6YCUIDwgcHJvc3BlY3RzOwor54aK6JyCIDwgYnVtYmxlYmVlOwor57i957WQIDwgc3VtbWFyaXplOwor5ZC45Y+WIDwgdG9cLWFic29yYjsKK+mAsemCiiA8IHBlcmlwaGVyeTsKK+W5tOmZkCA8IGFnZVwtbGltaXQ7CivkuIvliJcgPCBmb2xsb3dpbmc7CivpoYzlkI0gPCBhdXRvZ3JhcGg7CivlpJrnq68gPCBtdWx0aXBvcnQ7CivmlYjog70gPCBlZmZpY2llbnQ7CivngbDnjbXniqwgPCBncmV5aG91bmQ7CivnjbLmmrTliKnogIUgPCBwcm9maXRlZXI7CivkuI3lgZwgPCBpbmNlc3NhbnQ7CivlpKfnoLIgPCBhcnRpbGxlcnk7CivkuI3lgLwgPCBub3RcLXdvcnRoOwor5rKZ5bKpIDwgc2FuZHN0b25lOwor5rOi5Y+KIDwgc3ByZWFkXC10bzsKK+W+ruazoiA8IG1pY3Jvd2F2ZTsKK+eEoei+nCA8IGlubm9jZW5jZTsKK+asoeimgSA8IHNlY29uZGFyeTsKK+S4jeS6iCA8IG5vdFwtZ3JhbnQ7CivljrvlubQgPCBsYXN0XC15ZWFyOwor5LiN5LqGIDwgdW5hYmxlXC10bzsKK+mfjOaApyA8IHRvdWdobmVzczsKK+eJiOasiiA8IGNvcHlyaWdodDsKK+WQkeWNlyA8IHNvdXRod2FyZDsKK+awkeatjCA8IGZvbGtcLXNvbmc7CivljbPmmYIgPCBpbW1lZGlhdGU7Civnv5LmhaPmgKcgPCBjdXN0b21hcnk7CivlubjpgYsgPCBmb3J0dW5hdGU7Civnvo7kuK0gPCB1c2FcLWNoaW5hOwor54af57e0IDwgcHJhY3RpY2VkOwor5b+1IDwgdGhpbmtcLW9mOwor5LyaIDwgYXNzZW1ibGU7CivlraYgPCBsZWFybmluZzsKK+W+kiA8IGRpc2NpcGxlOwor552mIDwgZnJpZW5kbHk7Civml6AgPCBuZWdhdGl2ZTsKK+aWuSA8IGFcLXNxdWFyZTsKK+WJjSA8IGluXC1mcm9udDsKK+eciSA8IGV5ZWJyb3dzOwor55yBIDwgcHJvdmluY2U7Civnm7QgPCBzdHJhaWdodDsKK+W7oiA8IGFicm9nYXRlOwor55ubIDwgYWJ1bmRhbnQ7Civou5IgPCBjYXJyaWFnZTsKK+WFqCA8IG1haW50YWluOwor5buKIDwgY29ycmlkb3I7CivnmrogPCB3cmlua2xlczsKK+W6tyA8IHBlYWNlZnVsOwor6Ze0IDwgbWlkcG9pbnQ7CivouoogPCBoZXNpdGF0ZTsKK+esrCA8IHNlcXVlbmNlOwor5bm7IDwgaWxsdXNpb247CivnmYcgPCBlcGlsZXBzeTsKK+WxsSA8IG1vdW50YWluOwor5be+IDwga2VyY2hpZWY7Civlt6cgPCBza2lsbGZ1bDsKK+i3nSA8IGRpc3RhbmNlOwor55WMIDwgYm91bmRhcnk7Civku7sgPCB0cnVzdFwtdG87Civlj7AgPCBwbGF0Zm9ybTsKK+ixoSA8IGVsZXBoYW50Owor6aKYIDwgZm9yZWhlYWQ7Civos6IgPCB2aXJ0dW91czsKK+izhyA8IHByb3BlcnR5Owor6LK8IDwgcGFzdGVcLXRvOwor6LK7IDwgZXhwZW5zZXM7CivlsaUgPCBmb290d2VhcjsKK+atpiA8IG1pbGl0YXJ5Owor55CyIDwgbmVja2xhY2U7CivlsKAgPCB2ZXJ5XC1mZXc7CivlrowgPCBjb21wbGV0ZTsKK+WNsyA8IHByb21wdGx5Owor5a+1IDwgZmF2b3JpdGU7Civor60gPCBsYW5ndWFnZTsKK+ePjSA8IHByZWNpb3VzOwor5ZWGIDwgY29tbWVyY2U7Civlrp0gPCB0cmVhc3VyZTsKK+WNgyA8IHRob3VzYW5kOwor5a6cIDwgc3VpdGFibGU7CivlrpggPCBvZmZpY2lhbDsKK+ermSA8IHN0YW5kXC11cDsKK+itrCA8IG1ldGFwaG9yOwor6aaZIDwgZnJhZ3JhbnQ7CivkvLwgPCByZXNlbWJsZTsKK+WsoiA8IHRyb3VibGVkOwor6Jm9IDwgYWx0aG91Z2g7CivkuJQgPCBtb3Jlb3ZlcjsKK+iwgyA8IHRyYW5zZmVyOwor5auJIDwgamVhbG91c3k7Civni4MgPCB0b1wtY292ZXQ7Civlq4EgPCB0b1wtbWFycnk7CivlqpogPCBjaGFybWluZzsKK+iqmCA8IHBlcnN1YWRlOwor6KqEIDwgZXVsb2dpemU7CivoqbMgPCBkZXRhaWxlZDsKK+ipsCA8IHF1ZXN0aW9uOwor5oOKIDwgZnJpZ2h0ZW47CivmlK8gPCBkaXNwZXJzZTsKK+eqgSA8IHN1ZGRlbmx5Owor6KmVIDwgYXBwcmFpc2U7CivlqKAgPCBwcmVnbmFudDsKK+WPpSA8IHNlbnRlbmNlOwor5pi+IDwgbWFuaWZlc3Q7Civlop4gPCBpbmNyZWFzZTsKK+aWmSA8IGNvbnNpZGVyOwor5aaKIDwgY29uY2VpdmU7Civnu60gPCBjb250aW51ZTsKK+eCrSA8IGNoYXJjb2FsOwor5Zu0IDwgc3Vycm91bmQ7Civngb0gPCBjYWxhbWl0eTsKK+WhmiA8IGNlbWV0ZXJ5Owor54CVIDwgYXBwcm9hY2g7Civmv7ogPCBzcHJpbmtsZTsKK+a/ryA8IHdhc2hcLW91dDsKK+WeoyA8IGxvd1wtd2FsbDsKK+S5oCA8IHByYWN0aWNlOwor5Z6CIDwgbGV0XC1kb3duOwor5Z2CIDwgaGlsbHNpZGU7CivnpZYgPCBhbmNlc3RvcjsKK+S8mCA8IHN1cGVyaW9yOwor5ruvIDwgYmxvY2tcLXVwOwor5rqiIDwgb3ZlcmZsb3c7CivmuKkgPCBsdWtld2FybTsKK+iaiiA8IG1vc3F1aXRvOwor6bm4IDwgYWxrYWxpbmU7CivlmaogPCBiZVwtbm9pc3k7CivlmLIgPCByaWRpY3VsZTsKK+a4myA8IGRlY3JlYXNlOwor5ZiUIDwgdG9cLXZvbWl0Owor5oGpIDwga2luZG5lc3M7CivohLEgPCB0YWtlXC1vZmY7CivmtrggPCBkcmllZFwtdXA7CivllqogPCBtb3VybmluZzsKK+WllCA8IHJ1blwtZmFzdDsKK+a2jCA8IHN1cmdlXC11cDsKK+emgSA8IHJlc3RyaWN0Owor5rWuIDwgdG9cLWZsb2F0Owor5LqSIDwgbXV0dWFsbHk7CivmkJ4gPCB0b1wtY2xlYXI7CivmnLEgPCBjaW5uYWJhcjsKK+WfnyA8IGRpc3RyaWN0Owor5p2QIDwgbWF0ZXJpYWw7CivlgbcgPCB0b1wtc3RlYWw7Civok4kgPCBoaWJpc2N1czsKK+aKvSA8IGRyYXdcLW91dDsKK+S7qiA8IGNlcmVtb255Owor5Y24IDwgbGF5XC1kb3duOwor5b+GIDwgcmVtZW1iZXI7CivpmpQgPCBzZXBhcmF0ZTsKK+WNkyA8IHByb2ZvdW5kOwor5o2fIDwgZGltaW5pc2g7CivojIQgPCBlZ2dwbGFudDsKK+WLvyA8IG11c3RcLW5vdDsKK+mrrSA8IG11c3RhY2hlOwor6YGlIDwgZmFyXC1hd2F5Owor5qubIDwgY29tYlwtb3V0Owor5biBIDwgY3VycmVuY3k7Civli4kgPCBlbmRlYXZvcjsKK+mquCA8IHNrZWxldG9uOwor5YqqIDwgdG9cLWV4ZXJ0Owor6JCNIDwgZHVja3dlZWQ7CivmqIUgPCBmaXJcLXRyZWU7CivnvKkgPCBjb250cmFjdDsKK+iHpSA8IGxpZVwtZG93bjsKK+aFlSA8IGxvbmdcLWZvcjsKK+iHoyA8IG1pbmlzdGVyOwor5oyhIDwgb2JzdHJ1Y3Q7CivohpwgPCBtZW1icmFuZTsKK+ammyA8IGhhemVsbnV0Owor5L+KIDwgdGFsZW50ZWQ7Civmnp0gPCBicmFuY2hlczsKK+mZtyA8IHN1Ym1lcmdlOwor5YuSIDwgc3RyYW5nbGU7CivogYogPCBzb21ld2hhdDsKK+mjviA8IGRlY29yYXRlOwor5pacIDwgc2xhbnRpbmc7CivmlpAgPCBncmFjZWZ1bDsKK+ainyA8IG93bFwtdGh1czsKK+WCmCA8IHVtYnJlbGxhOwor5LqtIDwgcGF2aWxpb247Civms5sgPCB0b1wtZHJpZnQ7CivnrKYgPCBpXC5kXC5cLXRhZzsKK+WFgSA8IHRvXC1ncmFudDsKK+i3qCA8IHN0cmFkZGxlOwor5o6pIDwgdG9cLWNvdmVyOwor6aCDIDwgYVwtbW9tZW50Owor5p+0IDwgZmlyZXdvb2Q7Civkv68gPCBib3dcLWRvd247Civkv6UgPCByaWNrc2hhdzsKK+mCuyA8IG5laWdoYm9yOwor6am+IDwgdG9cLWRyaXZlOwor576eIDwgZGlzZ3JhY2U7Civoo6QgPCB0cm91c2VyczsKK+S8sCA8IG1lcmNoYW50Owor6Z6YIDwgc2NhYmJhcmQ7CivlkpAgPCBpbnN0cnVjdDsKK+aBkiA8IGNvbnN0YW50Owor57OfIDwgc2VkaW1lbnQ7Civmia4gPCBkcmVzc1wtdXA7Civmm5wgPCBnbG9yaW91czsKK+aaoiA8IHNtb290aGx5Owor5oq8IDwgbW9ydGdhZ2U7CivmiJogPCByZWxhdGl2ZTsKK+ephiA8IG1hamVzdGljOwor5Zi7IDwgbWlydGhmdWw7CivkuKYgPCBlcXVhbFwtdG87CivmmJQgPCBmb3JtZXJseTsKK+mXmCA8IHN0cnVnZ2xlOwor556qIDwgc3RhcmVcLWF0Owor5palIDwgdG9cLXNjb2xkOwor5YmqIDwgc2Npc3NvcnM7Civlp5ogPCBoYW5kc29tZTsKK+aOjyA8IHRha2VcLW91dDsKK+mWkyA8IGludGVydmFsOwor5oO5IDwgaXJyaXRhdGU7CivnsL8gPCByZWdpc3RlcjsKK+iKtyA8IGFuZ2VsaWNhOwor56OBIDwgbWFnbmV0aWM7Civmr4UgPCByZXNvbHV0ZTsKK+espSA8IGFcLWhhbXBlcjsKK+aLmCA8IHJlc3RyYWluOwor5LyQIDwgY3V0XC1kb3duOwor56uKIDwgc2VjcmV0bHk7CivpipggPCBpbnNjcmliZTsKK+aEiSA8IHBsZWFzYW50Owor56qcIDwgcnVuXC1hd2F5Owor5a+oIDwgc3RvY2thZGU7CivmiLsgPCBwZXJ2ZXJzZTsKK+ayqiA8IHNoYW5naGFpOwor6YecIDwgY2F1bGRyb247Civll6QgPCBsYXVnaFwtYXQ7CivlqLEgPCBwbGVhc3VyZTsKK+emhCA8IGJsZXNzaW5nOwor5oSVIDwgc3RhcnRsZWQ7CivllaEgPCBtb3JwaGluZTsKK+WbmiA8IHByaXNvbmVyOwor6LSmIDwgYWNjb3VudHM7Civnk7cgPCBjcm9ja2VyeTsKK+iFpSA8IHJhd1wtbWVhdDsKK+WSuCA8IHRvZ2V0aGVyOwor55arIDwgZXBpZGVtaWM7CivllaogPCBzeWxsYWJsZTsKK+iGqCA8IHRvXC1zd2VsbDsKK+WQsSA8IGNoaXJwaW5nOwor6I+MIDwgbXVzaHJvb207CivnkJAgPCB0cmlmbGluZzsKK+iLnyA8IGNhcmVsZXNzOwor5bSbIDwgdG93ZXJpbmc7Civlh7ggPCBwcm90cnVkZTsKK+WYgCA8IGJhY2tiaXRlOwor6ZOQIDwgc2hhY2tsZXM7CivosJUgPCBwcm9jbGFpbTsKK+i/uCA8IGd1c2hcLW91dDsKK+WJlCA8IHBpY2tcLW91dDsKK+WGgCA8IGhvcGVcLWZvcjsKK+egmiA8IGlua3N0b25lOwor5o2NIDwgd2FyZFwtb2ZmOwor6IeAIDwgYnV0dG9ja3M7CivlgJQgPCBzdHViYm9ybjsKK+WlhCA8IGVyZVwtbG9uZzsKK+S+pSA8IGJlXC1sdWNreTsKK+aitSA8IGJ1ZGRoaXN0Owor6KSlIDwgbWF0dHJlc3M7CivmmZYgPCBzdW5zaGluZTsKK+eVtCA8IGZhcm1sYW5kOwor556fIDwgZ2xhcmVcLWF0Owor55i4IDwgbGFtZW5lc3M7Civmvo4gPCBzcGxhdHRlcjsKK+a9piA8IHRvXC1mbG9vZDsKK+WBjiA8IGNsaW5nXC10bzsKK+idjiA8IHNjb3JwaW9uOwor57C4IDwgd2lubm93ZXI7CivlurYgPCBudW1lcm91czsKK+aSgiA8IHB1dFwtZG93bjsKK+aZlyA8IHByZVwtZGF3bjsKK+i5iiA8IGZvb3RwYXRoOwor6ZiJIDwgY2FzdHJhdGU7Civmt4YgPCBjb25mdXNlZDsKK+iQpiA8IGVudGFuZ2xlOwor5qaGIDwgZWxtXC10cmVlOwor54ydIDwgYWJydXB0bHk7Civmm6YgPCBzdW5saWdodDsKK+a4pCA8IHN3ZWxsaW5nOwor6L6YIDwgd2luZGxhc3M7Civpk50gPCBhbHVtaW51bTsKK+aNiyA8IHRvXC1wbHVjazsKK+iZuyA8IGhvcnNlZmx5Owor556MIDwgZG96ZVwtb2ZmOwor5LqfIDwgdXJnZW50bHk7CivlvqggPCBkb3VidGZ1bDsKK+WVkCA8IHRvXC10YXN0ZTsKK+mVryA8IGJyYWNlbGV0Owor5Yi9IDwgYW1wdXRhdGU7Civol7sgPCBzcGxlbmRpZDsKK+aDsCA8IGluZG9sZW50Owor54eUIDwgdG9cLXJvYXN0Owor5radIDwgaW51bmRhdGU7Civnu5sgPCBkZWVwXC1yZWQ7CivmsK8gPCBjaGxvcmluZTsKK+WdjSA8IGNvbGxhcHNlOwor5b+QIDwgdGltb3JvdXM7CivmrqEgPCBlbmNvZmZpbjsKK+aYtSA8IGludGltYXRlOwor5L+fIDwgd2FpdFwtZm9yOwor5qGiIDwgaGFyZHdvb2Q7Civpu48gPCBzdGlja1wtdG87Civnl5ggPCBzbWFsbHBveDsKK+annyA8IGJldGVsbnV0Owor6Z+tIDwgc2NhbGxpb247CivolKsgPCB3aXRoZXJlZDsKK+iGgiA8IGJhY2tib25lOwor6IOrIDwgc2hpbmJvbmU7Civoh4MgPCBzd2VsbFwtdXA7CivlsowgPCBwZXJpbG91czsKK+eOjiA8IGppbmdsaW5nOwor6Zq8IDwgYXF1aWxpbmU7CivpmbIgPCBmcm9udGllcjsKK+iwtiA8IHByb3BoZWN5Owor5YG7IDwgaHVtcGJhY2s7Civpk4IgPCBwbGF0aW51bTsKK+e6myA8IGFcLWJhbm5lcjsKK+mTrCA8IGNocm9taXVtOwor6IOwIDwgcGFuY3JlYXM7CivopoMgPCByZWFjaFwtdG87Civnnb4gPCB0ZXN0aWNsZTsKK+WAqCA8IGFycm9nYW50Owor6K6jIDwgb2JpdHVhcnk7CivpkpsgPCB0aXRhbml1bTsKK+a1gyA8IHNhdHVyYXRlOwor5peWIDwgcm9tYW50aWM7CivnvJkgPCByZWRcLXNpbGs7Civoob4gPCBjb3ZlcmxldDsKK+WuuCA8IGltcGVyaWFsOwor5L2eIDwgZmxhdHRlcnk7Civom5QgPCB0YXBld29ybTsKK+awhSA8IG92ZXJjb2F0Owor5rCfIDwgZmx1b3JpbmU7CivmsLAgPCBjeWFub2dlbjsKK+mynyA8IHN0dXJnZW9uOwor56GSIDwgc2VsZW5pdW07CivoiKggPCBhXC1zYW1wYW47Civng4ogPCB0b1wtc21lbHQ7CivokLEgPCBkYXlcLWxpbHk7CivnlrggPCBqYXVuZGljZTsKK+mTiiA8IHRoYWxsaXVtOwor6K+CIDwgZXhlZ2VzaXM7Civpm4kgPCBwaGVhc2FudDsKK+mioiA8IGx1bWlub3VzOwor5qCAIDwgZ2FyZGVuaWE7Civor5IgPCBiZXF1ZWF0aDsKK+minyA8IGRhd2RsaW5nOwor6IuLIDwgYW1hcmFudGg7CivngKMgPCBzZWFcLW1pc3Q7Civnrp0gPCB0d2VlemVyczsKK+alriA8IG11bGJlcnJ5Owor6YGEIDwgdG9cLWh1cnJ5Owor6ZKSIDwgdmFuYWRpdW07Civoi7cgPCBsaWNvcmljZTsKK+mSqCA8IHR1bmdzdGVuOwor5Z+4IDwgYVwtYm9yZGVyOwor5auSIDwgZGF1Z2h0ZXI7CivnmZwgPCBlcnl0aGVtYTsKK+m4uSA8IHRoZVwtY3JvdzsKK+abmyA8IHR3aWxpZ2h0Owor6aqYIDwgc3RhbGxpb247CivlnbsgPCBhblwtaXNsZXQ7Civop6sgPCB0b1wtc3RhcnQ7Civpk7UgPCBhbW1vbml1bTsKK+awqSA8IGFyZ29uaXVtOwor5Y2jIDwgd2luZVwtcG90Owor6ZSRIDwgYW50aW1vbnk7CivphpsgPCBhbGRlaHlkZTsKK+mSvSA8IHRhbnRhbHVtOwor56C8IDwgY29uY3JldGU7CivnhpggPCB0b1wtc3RlYW07CivnqqggPCBhXC1jZWxsYXI7CivmoLIgPCBtYW5ncm92ZTsKK+myoyA8IHNraXBqYWNrOwor6ZO3IDwgcnViaWRpdW07Civpk5UgPCBldXJvcGl1bTsKK+mSiyA8IHBvbG9uaXVtOwor56CRIDwgdG9cLWdyaW5kOwor5rSrIDwgdG9cLWRpdGNoOwor5Z+aIDwgY3J1Y2libGU7CivlnqQgPCBhbnRcLWhpbGw7CivljbogPCB3aW5lY3VwczsKK+WYjyA8IGZlbGljaXR5Owor6bK9IDwgZmxhdGZpc2g7Civpsq0gPCBtYWNrZXJlbDsKK+mSqiA8IHNjYW5kaXVtOwor6ZKrIDwgZnJhbmNpdW07CivpkpAgPCBzYW1hcml1bTsKK+elkyA8IGV4b3JjaXNlOwor5qCzIDwgYVwtYmFza2V0Owor5ZCyIDwgc21pbGVcLWF0Owor6I6wIDwgY2FtcGhhbmU7CivoirQgPCBmbHVvcmVuZTsKK+i1nCA8IGFic3RydXNlOwor5pS557eoIDwgdG9cLWFkYXB0Owor55m95YWn6ZqcIDwgY2F0YXJhY3Q7Civlo5Pnt4ogPCBjb21wcmVzczsKK+mGq+WtuCA8IG1lZGljaW5lOwor5ZCe5L21IDwgdG9cLWFubmV4Owor6Z2I5rS7IDwgZmxleGlibGU7CivlpKfnr7fou4ogPCBzY2hvb25lcjsKK+aWh+eNuyA8IGRvY3VtZW50Owor5aSW55SoIDwgZXh0ZXJuYWw7Civnm6PorbfkurogPCBndWFyZGlhbjsKK+mCiue3miA8IHNpZGVsaW5lOwor5q2j57WxIDwgb3J0aG9kb3g7Civmlq/mtJvkvJDlhYsgPCBzbG92YWtpYTsKK+mgu+S7jSA8IGZyZXF1ZW50Owor57ev57eaIDwgbGF0aXR1ZGU7CivkuI3lkIjpgakgPCBpbXByb3BlcjsKK+eEoeiqpCA8IHZlcmlmaWVkOwor5pel5puGIDwgY2FsZW5kYXI7CivliZ3okL0gPCBwZWVsXC1vZmY7CivpoJDljZwgPCBmb3JldGVsbDsKK+isueaFjiA8IGNhdXRpb3VzOwor6Iy26aSoIDwgdGVhaG91c2U7CivkvIHmpa3plpPntrLot68gPCBleHRyYW5ldDsKK+ingOWvn+iAhSA8IG9ic2VydmVyOwor6bOl57GgIDwgYmlyZGNhZ2U7Civlu7rnr4kgPCBidWlsZGluZzsKK+iXpeWKkeWjqyA8IGRydWdnaXN0Owor5LiN5L+h5Lu7IDwgbWlzdHJ1c3Q7Civlu7rnq4sgPCBjcmVhdGlvbjsKK+WboOeJuee2siA8IGludGVybmV0Owor5b+D5omLIDwgbmV3XC1oYW5kOwor5Yaw6ZqZIDwgY3JldmFzc2U7CivpnLjmrIogPCBoZWdlbW9ueTsKK+WNseaApSA8IGNyaXRpY2FsOwor6ZqZ57irIDwgYXBlcnR1cmU7CivlsI3nqLHmgKcgPCBzeW1tZXRyeTsKK+imqui6qyA8IHBlcnNvbmFsOwor56K65a6aIDwgZGVmaW5pdGU7CivmqqLmuKzlmaggPCBkZXRlY3RvcjsKK+e1gui6qyA8IGxpZmVsb25nOwor6a2U6KGT5birIDwgbWFnaWNpYW47CivoqJjogIUgPCByZXBvcnRlcjsKK+imj+mBvyA8IHRvXC1ldmFkZTsKK+eJp+W4qyA8IGNoYXBsYWluOwor5pS255uKIDwgZWFybmluZ3M7CivlubPooYwgPCBwYXJhbGxlbDsKK+W/oOWvpiA8IGZhaXRoZnVsOwor5q2l55m8IDwgZm9vdHdvcms7CivliIboo4IgPCBzcGxpdFwtdXA7CivmlrDmm7ggPCBuZXdcLWJvb2s7CivkuI3mnL3nmoQgPCBpbW1vcnRhbDsKK+WPo+S6pCA8IG9yYWxcLXNleDsKK+WJteeriyA8IHRvXC1mb3VuZDsKK+eFpOeusSA8IGNvYWxcLWJveDsKK+ayueeCuOWciOmkhSA8IGRvdWdobnV0Owor57y65LmPIDwgc2hvcnRhZ2U7Civml6XlvowgPCBzb21ldGltZTsKK+att+WPsuaApyA8IGhpc3RvcmljOwor5Zug77mN5LmL5pWFIDwgaW5hc211Y2g7Civngb3pm6MgPCBkaXNhc3RlcjsKK+W+ueW6lSA8IHRob3JvdWdoOwor5qq45qqs5rC0IDwgbGVtb25hZGU7CivpsYnoo5kgPCBjYWxpcGFzaDsKK+itpuWPpSA8IGFwaG9yaXNtOwor5pep5beyIDwgbG9uZ1wtYWdvOwor56C05puJIDwgZGF5YnJlYWs7Civpm6jmu7QgPCByYWluZHJvcDsKK+S7peWkque2siA8IGV0aGVybmV0Owor5piO5aSpIDwgdG9tb3Jyb3c7Civlppblrb0gPCBldmlsZG9lcjsKK+mbu+awoyA8IGVsZWN0cmljOwor6YWs5aCxIDwgdG9cLXJlcGF5Owor6LKg6YeN5pOUIDwgYnVyZGVuZWQ7CivpgbrnlKIgPCBoZXJpdGFnZTsKK+ehrOW6piA8IGhhcmRuZXNzOwor54Sh6IGKIDwgbm9uc2Vuc2U7CivmqavpgY4gPCB0cmF2ZXJzZTsKK+mbjeWuueWkp+W6piA8IGdlbmVyb3VzOwor5b6B5oiwIDwgY2FtcGFpZ247CivoqrLmnKwgPCB0ZXh0Ym9vazsKK+WHi+isnSA8IGxhbmd1aXNoOwor5Y2B5LqM5pyIIDwgZGVjZW1iZXI7CivoqIjnrpcgPCB0b1wtY291bnQ7CivplovpmaQgPCB0b1wtZXhwZWw7Civnupblt6cgPCBkZWxpY2F0ZTsKK+aTpue2sueQgyA8IG5ldFwtYmFsbDsKK+eEoee4qyA8IHNlYW1sZXNzOwor5Yag6LuNIDwgY2hhbXBpb247Civlh4boqLEgPCB0b1wtYWxsb3c7Civpm7vmoq8gPCBlbGV2YXRvcjsKK+iTi+WxpCA8IGNhcFwtcm9jazsKK+mdouWwjSA8IGNvbmZyb250Owor54Sh57eaIDwgd2lyZWxlc3M7CivogZbkv53nvoUgPCBzdFwuXC1wYXVsOwor6YCa57SFIDwgdmVyeVwtcmVkOwor5YyF5oqEIDwgb3V0Zmxhbms7Civovqjoqo0gPCBpZGVudGlmeTsKK+WOn+S+hiA8IG9yaWdpbmFsOwor5aW95aW95YWS5ZywIDwgcHJvcGVybHk7CivlpJrmlbggPCBtYWpvcml0eTsKK+eJqeWTgSA8IGFydGljbGVzOwor5pS/5rK7IDwgcG9saXRpY3M7CivljYrlpJwgPCBtaWRuaWdodDsKK+aWsOW5tCA8IG5ld1wteWVhcjsKK+aXheWuoiA8IHRyYXZlbGVyOwor6YC855yfIDwgbGlmZWxpa2U7CivpqI7lo6vmsKPmpoIgPCBjaGl2YWxyeTsKK+ilv+ijoeeIviA8IGN5cmlsbGljOwor5YWs6YeQIDwgZGVjaWdyYW07CivmrrrmiK4gPCBtYXNzYWNyZTsKK+iJvuW+t+iVvuW+tyA8IGFkZWxhaWRlOwor5Yqb5rCjIDwgc3RyZW5ndGg7Civlhafpg6ggPCBpbnRlcmlvcjsKK+e5oeW4tyA8IHRhcGVzdHJ5Owor5aSq5b+ZIDwgdG9vXC1idXN5Owor552h55ygIDwgc2xlZXBpbmc7CivljYHlm5sgPCBmb3VydGVlbjsKK+W4uOWdkOaxvei7iuiAhSA8IG1vdG9yaXN0Owor5bmz562JIDwgZXF1YWxpdHk7CivljIXlsaQgPCBjbGFkZGluZzsKK+axvei7iuWxleimveacgyA8IGNhclwtc2hvdzsKK+WGjeimiyA8IGdvb2RcLWJ5ZTsKK+WPr+aTpuWvqyA8IGVyYXNhYmxlOwor5YWN6LK76Luf5Lu2IDwgZnJlZXdhcmU7CivljbHkuqEgPCBhdFwtc3Rha2U7Civlt6foqIggPCBtYW5ldXZlcjsKK+iRl+aJiyA8IGNvbW1lbmNlOwor5qGD6Iqx5b+D5pyoIDwgbWFob2dhbnk7Civnm7LohbggPCBhcHBlbmRpeDsKK+eJp+e+iuiAhSA8IHNoZXBoZXJkOwor5pSv5p+xIDwgbWFpbnN0YXk7CivlvaLlrrkgPCBkZXNjcmliZTsKK+eEoeeWkSA8IG5vXC1kb3VidDsKK+W8t+aCjSA8IHZhbGxpYW50Owor57KX6YeOIDwgaW5zb2xlbnQ7CivooovpvKAgPCBrYW5nYXJvbzsKK+i7n+mrlCA8IHNvZnR3YXJlOwor5paw5Z6LIDwgbmV3XC10eXBlOwor5Z+56IKyIDwgdG9cLXRyYWluOwor54Wk5rK5IDwga2Vyb3NlbmU7CivliqDmmYIgPCBvdmVydGltZTsKK+aomea6luimj+agvCA8IHN0YW5kYXJkOwor5YWJ6LydIDwgcmFkaWFuY2U7CivlvqnlhYMgPCByZWNvdmVyeTsKK+WNgeWFqyA8IGVpZ2h0ZWVuOwor5aSa5bCRIDwgaG93XC1tdWNoOwor5Y2B5YWLIDwgZGVjYWdyYW07CivlnLDpm7cgPCBsYW5kbWluZTsKK+WmguS7iiA8IG5vd2FkYXlzOwor6YKq5oOhIDwgc2luaXN0ZXI7CivnhKHoq5bkvZXmmYIgPCB3aGVuZXZlcjsKK+ingOeciyA8IHRvXC13YXRjaDsKK+W+l+WIhiA8IHRvXC1zY29yZTsKK+ethuiomOacrCA8IG5vdGVib29rOwor6LuA6auUIDwgdGhlXC1ib2R5Owor56Gs5Lu2IDwgaGFyZHdhcmU7CivlpKnloIIgPCBwYXJhZGlzZTsKK+iWsOiho+iNiSA8IGxhdmVuZGVyOwor5Y2B5LmdIDwgbmluZXRlZW47CivlhYnorZwgPCBzcGVjdHJ1bTsKK+ijnOmBuiA8IGFkZGVuZHVtOwor6YGg5p2xIDwgZmFyXC1lYXN0Owor5bm+5LmO5rKS5pyJIDwgc2NhcmNlbHk7CivljYHkuIkgPCB0aGlydGVlbjsKK+S4jeW/heimgSA8IG5lZWRsZXNzOwor5qmf6IO9IDwgZnVuY3Rpb247Civokpnlj6QgPCBtb25nb2xpYTsKK+eJp+W4q+S5i+iBtyA8IG1pbmlzdHJ5Owor6YGg5pmvIDwgcHJvc3BlY3Q7CivntJDntIQgPCBuZXdcLXlvcms7Civmj5DorbAgPCBwcm9wb3NhbDsKK+mAsuatpSA8IHByb2dyZXNzOwor6Zu75aCxIDwgdGVsZWdyYW07Civoq4vpoZjmm7ggPCBwZXRpdGlvbjsKK+i7iumWkyA8IHdvcmtzaG9wOwor5b6A5L6GIDwgZGVhbGluZ3M7CivlvJXlsI4gPCB0b1wtZ3VpZGU7CivpvpMgPCBhXC1oYWx0ZXI7Civoo53osqggPCBzaGlwcGluZzsKK+WKm+W6piA8IGR5bmFtaXNtOwor5oqV6LOH6ICFIDwgaW52ZXN0b3I7CivpgY7mlrwgPCB0b29cLW11Y2g7CivpvJogPCBkcnVtbWluZzsKK+ebo+emgSA8IGltcHJpc29uOwor5Yaw56qWIDwgaWNlaG91c2U7CivloILnmocgPCBpbXBvc2luZzsKK+m6riA8IHBvcnJpZGdlOwor55yB55WlIDwgb21pc3Npb247Civlha3ljYHlm5vokKwgPCA2NFwtMFwtMDAwOwor5a+E55Sf54mpIDwgcGFyYXNpdGU7Civogq/loZTln7ogPCBrZW50dWNreTsKK+avjeS/giA8IG1hdGVybmFsOwor5p+s5Z+U5a+oIDwgY2FtYm9kaWE7CivptZkgPCBhXC1zaHJpa2U7CivmjqHosrcgPCBwdXJjaGFzZTsKK+i8leimliA8IGNvbnRlbXB0Owor57K+6Ie0IDwgZGVsaWNhY3k7Civps64gPCBjaGlja2VuczsKK+mBsuW7tiA8IHRvXC1kZWxheTsKK+myuiA8IGNhdFwtZmlzaDsKK+aUnOW4tiA8IHRvXC1jYXJyeTsKK+W7tuWxlSA8IHRvXC1zY2FsZTsKK+mvuiA8IGJsb3dmaXNoOwor5LiA5bCP5pmCIDwgb25lXC1ob3VyOwor6YOo5L2NIDwgcG9zaXRpb247CivokpnmiZjnvoXmi4kgPCBtb3Rvcm9sYTsKK+S6uuihjOmBkyA8IHNpZGV3YWxrOwor6ayLIDwgZm9yZWxvY2s7CivprIAgPCB0b1wtc2hhdmU7Civpq7UgPCB3aGlza2VyczsKK+WFp+e9riA8IGludGVybmFsOwor6ZmQ5pyfIDwgZGVhZGxpbmU7CivlronlhajmgKcgPCBzZWN1cml0eTsKK+mrjiA8IGhpcFwtYm9uZTsKK+iomOaGtiA8IG1lbW9yaWVzOwor6YG35bCxIDwgdG9cLXlpZWxkOwor5by35YuBIDwgcG93ZXJmdWw7CivmrrrkurogPCBob21pY2lkZTsKK+WGjeS/neiovCA8IHJlYXNzdXJlOwor6aemIDwgdG9cLW1vdW50Owor6aapIDwgYXJvbWF0aWM7Civkurrlt6XmtYHnlKIgPCBhYm9ydGlvbjsKK+WJm+aApyA8IHJpZ2lkaXR5Owor6aSrIDwgZHVtcGxpbmc7CivppKkgPCBoaWNjb3VnaDsKK+mknyA8IGxpYmF0aW9uOwor6aSZIDwgdG9cLWFkb3JuOwor6aKxIDwgdGFpcGhvb247Civli4Pli4MgPCB0aHJpdmluZzsKK+aTgeaToCA8IHRvXC1jcm93ZDsKK+aOiOiqsiA8IHRvXC10ZWFjaDsKK+ino+aVoyA8IGRpc3NvbHZlOwor6Z+hIDwgZ29yZ2VvdXM7Civpn6AgPCBrbmVlXC1wYWQ7CivpmbDmgKcgPCBmZW1pbmluZTsKK+mduiA8IHN0b2NraW5nOwor5YuV5L2cIDwgbW92ZW1lbnQ7Civpm57lsL7phZIgPCBjb2NrdGFpbDsKK+aVpuS/gyA8IHRvXC1wcmVzczsKK+mcqCA8IGNsb3VkaW5nOwor5qmE5qyW55CDIDwgZm9vdGJhbGw7Civpm4flk6EgPCBlbXBsb3llZTsKK+eAieiXpSA8IGxheGF0aXZlOwor5o+b572uIDwgZGlzcGxhY2U7CivlubPlupXpjYsgPCBzYXVjZXBhbjsKK+e0gOW/teeikSA8IG1vbnVtZW50Owor5ZyW6KyAIDwgY29uc3BpcmU7CivokaPkuosgPCBkaXJlY3RvcjsKK+WLleS6uiA8IHRvdWNoaW5nOwor6Zi4IDwgZGlzdHJlc3M7CivpmLvmk4ogPCB0b1wtY2hlY2s7Civoo5zoirEgPCBhcHBsaXF1ZTsKK+mVpSA8IGx1dGV0aXVtOwor5aGX5oq5IDwgdG9cLXNtZWFyOwor6KOd6Ii5IDwgc2hpcG1lbnQ7CivmrLrlo5MgPCB0b1wtYnVsbHk7CivojZLmtrwgPCBkZXNvbGF0ZTsKK+WHueadvyA8IGludGFnbGlvOwor5Yqj5YuiIDwgaW5mZXJpb3I7Civlloflj63msLTku5kgPCBkYWZmb2RpbDsKK+WIhuaVuCA8IGZyYWN0aW9uOwor5aOT5YqbIDwgcHJlc3N1cmU7CivpgqPlgIsgPCB0aGF0XC1vbmU7CivnhKHmg4UgPCBwaXRpbGVzczsKK+aTpuWvqyA8IHRvXC1lcmFzZTsKK+Wjk+WItiA8IHN1cHByZXNzOwor57K+56K6IDwgYWNjdXJhdGU7CivpjakgPCBub2JlbGl1bTsKK+mNmiA8IGZyb250bGV0Owor5L615YWl6ICFIDwgaW50cnVkZXI7CivntpPluLggPCBldmVyeWRheTsKK+mMkiA8IGFjdGluaXVtOwor5pS56Z2p6ICFIDwgcmVmb3JtZXI7CivmraXlhbUgPCBpbmZhbnRyeTsKK+mKjSA8IGFcLXNpY2tsZTsKK+W5s+aIvyA8IGJ1bmdhbG93Owor5Yaw5ra8IDwgaWNlXC1jb2xkOwor5LyB5qWt5YWn57ay6LevIDwgaW50cmFuZXQ7Civlubvmg7MgPCBkZWx1c2lvbjsKK+W6j+W5lSA8IHByb2xvZ3VlOwor6YaGIDwgd2luZVwtY3VwOwor6YaDIDwgbWFyaW5hdGU7CivphbIgPCBoYW5nb3ZlcjsKK+mEiCA8IHNsaXBwZXJzOwor6YG/5YWNIDwgdG9cLWF2ZXJ0Owor5aC05omAIDwgbG9jYXRpb247CivpgoUgPCBoZXNpdGFudDsKK+mbh+S4uyA8IGVtcGxveWVyOwor5o+t55m8IDwgZGlzY2xvc2U7Civov7sgPCB0b1wtc2hpZnQ7CivlgrPoqIogPCBzdWJwb2VuYTsKK+ipleS8sCA8IGV2YWx1YXRlOwor5omL5o+Q566xIDwgc3VpdGNhc2U7Civlgb3pgKAgPCB0b1wtZm9yZ2U7CivngavniYYgPCBmaXJld2FsbDsKK+i9iiA8IGF4bGVcLXRpcDsKK+i8rCA8IGFcLWhlYXJzZTsKK+WHtuaJiyA8IG11cmRlcmVyOwor5LiN5ZCM5oSPIDwgZGlzYWdyZWU7CivlhbHlkozlnIsgPCByZXB1YmxpYzsKK+eEoeWusyA8IGhhcm1sZXNzOwor6Luf6IaPIDwgb2ludG1lbnQ7Civoub4gPCB0b1wtc3F1YXQ7CivmjozogbIgPCBhcHBsYXVzZTsKK+ihqOingCA8IGFwcGFyZW50Owor6LmnIDwgdG9cLXNwb2lsOwor5Z+L5rKSIDwgb2JsaXZpb247CivlubPluLggPCBvcmRpbmFyeTsKK+i4piA8IHRoZVwtc2hpbjsKK+aLlOmZpCA8IHB1bGxcLW91dDsKK+WinuWKoCA8IHRvXC1yYWlzZTsKK+i3giA8IGNyZWVwaW5nOwor54Sh6KuW5L2V5LqLIDwgYW55dGhpbmc7Civmkanmk6YgPCBmcmljdGlvbjsKK+imuuW+lyA8IHRvXC10aGluazsKK+mrmOiytCA8IGdyYW5kZXVyOwor5qOS56Oo5qmfIDwgcm9kXC1taWxsOwor5YWF55W2IDwgc2VydmVcLWFzOwor54K65pmCIDwgdGltZXdpc2U7CivpgZTliLAgPCB0b1wtcmVhY2g7CivosY4gPCB2ZXJ0aWNhbDsKK+ilv+aWuSA8IHRoZVwtd2VzdDsKK+eyvuWKm+WFheaymyA8IHZpZ29yb3VzOwor6K25IDwgdG9cLXNob3V0Owor6YCa5aCxIDwgYnVsbGV0aW47CivmkqXlrZAgPCBwbGVjdHJ1bTsKK+aKl+mrlCA8IGFudGlib2R5Owor6Ieo6L+RIDwgY2xvc2VcLXRvOwor6I6r5aSnIDwgZ3JlYXRlc3Q7Civlk6XlgKvluIPntIAgPCBjb2x1bWJ1czsKK+WIh+WvpiA8IGZlYXNpYmxlOwor6KuGIDwgdG9cLWNoZWF0Owor6KmLIDwgdG9cLWN1cnNlOwor6KmKIDwgcGxlYXNpbmc7CivliIblrZAgPCBtb2xlY3VsZTsKK+ebuOaHiSA8IHJlbGV2YW50Owor5bem6Lyq5omL5qeNIDwgcmV2b2x2ZXI7CivpmLvloZ4gPCB0b1wtYmxvY2s7CivopbYgPCBpZ25vcmFudDsKK+e1leWwjSA8IGFic29sdXRlOwor6KWrIDwgcmFpbmNvYXQ7CivliIblqKkgPCBkZWxpdmVyeTsKK+euoemBkyA8IHBpcGVsaW5lOwor5ZOl5YCr5q+U5LqeIDwgY29sb21iaWE7CivpgYrkvLQgPCBwbGF5bWF0ZTsKK+W3pealrSA8IGluZHVzdHJ5Owor5Yaw5o6SIDwgaWNlXC1yYWZ0Owor6YCy5YWlIDwgdG9cLWVudGVyOwor5bCP5aSc5puyIDwgc2VyZW5hZGU7CivlsI/mqJnpoYwgPCBzdWJ0aXRsZTsKK+i3r+mdoiA8IHBhdmVtZW50Owor6J2fIDwgaGVkZ2Vob2c7CivonY8gPCBcKGluc2VjdFwpOwor5pKS5q+N6ICz6KiY5LiLIDwgMlwtc2FtdWVsOwor5pKS5q+N6ICz6KiY5LiKIDwgMVwtc2FtdWVsOwor5pyJ5qmf6auUIDwgb3JnYW5pc207Civnm7TlvpEgPCBkaWFtZXRlcjsKK+eEoeWQjSA8IG5hbWVsZXNzOwor5aC15aGeIDwgYmxvY2thZ2U7CivmkqTlm54gPCB3aXRoZHJhdzsKK+iasyA8IGFudFwtZWdnczsKK+e2k+WFuCA8IGNsYXNzaWNzOwor5q276KGa6KGVIDwgZGVhZFwtZW5kOwor6aiw6aiwIDwgc3RlYW1pbmc7CivkuqTpn7/mm7IgPCBzeW1waG9ueTsKK+mAvOS6uiA8IHByZXNzaW5nOwor54Sh5YqpIDwgaGVscGxlc3M7CivmjqHnlKggPCB0b1wtYWRvcHQ7Civlt7LmlYUgPCB0aGVcLWxhdGU7CivnmbzmsZcgPCB0b1wtc3dlYXQ7CivlnIvnq4sgPCBuYXRpb25hbDsKK+aZgumWk+ihqCA8IHNjaGVkdWxlOwor6JSJIDwgZWFydGhcLXVwOwor56606KiAIDwgcHJvdmVyYnM7Civoo5zniJAgPCBmZXR0bGluZzsKK+iHquijvSA8IGhvbWVtYWRlOwor6JGWIDwgZm9sbGljbGU7CivpoK3lkJHliY0gPCBoZWFkbG9uZzsKK+mYu+WKmyA8IG9ic3RhY2xlOwor5o6i6Zqq6ICFIDwgZXhwbG9yZXI7CivooJXooJUgPCB3aWdnbGluZzsKK+iJqSA8IHRob2xlcGluOwor6YCB5YilIDwgZmFyZXdlbGw7CivoiYwgPCB0b1wtY2F1bGs7CivnhKHkurogPCB1bm1hbm5lZDsKK+WFrOaWpCA8IGtpbG9ncmFtOwor5ZCb5Li75pS/5rK7IDwgbW9uYXJjaHk7Civlj5fpm6PogIUgPCBzdWZmZXJlcjsKK+aKveixoSA8IGFic3RyYWN0Owor5Ye65Y+jIDwgdG9cLXNwZWFrOwor6ISwIDwgdGhlXC1uZWNrOwor6Kaq5ZaEIDwgZ29vZHdpbGw7CivoiIjoh7QgPCBpbnRlcmVzdDsKK+mAlOS4rSA8IGVuXC1yb3V0ZTsKK+iCjyA8IGNvcHVsYXRlOwor6ZaT5o6lIDwgaW5kaXJlY3Q7CivpkLXot68gPCByYWlscm9hZDsKK+aQrOW8hCA8IG1vdmVcLXN0aDsKK+W3tOaLieWcrSA8IHBhcmFndWF5Owor5qiZ5pysIDwgc3BlY2ltZW47CivnrKzkuIDmraUgPCBzdGVwXC1vbmU7Civoqr/lkbPmsYEgPCBkcmVzc2luZzsKK+mAgOS9jSA8IGFiZGljYXRlOwor572HIDwgYVwtZ29ibGV0Owor6YCD5LqhIDwgZnVnaXRpdmU7CivmiLDprKUgPCB0b1wtZmlnaHQ7CivntbHkuIAgPCB0b1wtdW5pZnk7CivliJHkuosgPCBjcmltaW5hbDsKK+aVuOaTmuW6qyA8IGRhdGFiYXNlOwor57i/IDwgc3RyZWFtZXI7CivnuLQgPCB0b3dcLWxpbmU7CivlgrXmrIrkurogPCBjcmVkaXRvcjsKK+ihneeqgSA8IGNvbmZsaWN0Owor6L+95LiKIDwgb3ZlcnRha2U7Civntq8gPCB0b1wtYnJhaWQ7CivntqogPCBkYXJrXC1yZWQ7CivoiKrnqbogPCBhdmlhdGlvbjsKK+S/rui+rSA8IHJoZXRvcmljOwor5r++5rayIDwgZmlsdHJhdGU7Civkurrlj6PnqKDlr4YgPCBwb3B1bG91czsKK+e0niA8IGFcLWZyaW5nZTsKK+WwjemdoiA8IG9wcG9zaXRlOwor5Ye95Lu2IDwgbGV0dGVyZXM7CivlvJ/lhYTlgJEgPCBicmV0aHJlbjsKK+Wwj+iqquWutiA8IG5vdmVsaXN0Owor57GjIDwgYm93XC1jYXNlOwor57CsIDwgXChiYW1ib29cKTsKK+mmtOm5vyA8IHJlaW5kZWVyOwor6ama6KidIDwgY29uZm91bmQ7CivmjZXnjbIgPCB0b1wtY2F0Y2g7CivmjqHmqKMgPCBzYW1wbGluZzsKK+e0lOWTgSA8IHN0ZXJsaW5nOwor6L+R5L6GIDwgcmVjZW50bHk7Civnp48gPCB0b1wtd2FzdGU7CivnrKzkupTljYEgPCBmaWZ0aWV0aDsKK+S4ieaYjuayuyA8IHNhbmR3aWNoOwor5a+66ZmiIDwgY2xvaXN0ZXI7CivnrZToqbEgPCB0b1wtcmVwbHk7CivlgqzljJblipEgPCBjYXRhbHlzdDsKK+eBq+WxsSA8IHZvbGNhbmljOwor5YW25a+mIDwgYWN0dWFsbHk7CivnlJ/oqZ4gPCBuZXdcLXdvcmQ7Civno58gPCBtZWRpb2NyZTsKK+aiteiqniA8IHNhbnNrcml0Owor56KPIDwgY29sb3VyZWQ7Civkvr/pgZMgPCBzaG9ydGN1dDsKK+a2iOiyu+iAhSA8IGNvbnN1bWVyOwor5a+n6Z2cIDwgdHJhbnF1aWw7CivnoLkgPCBhc3RhdGluZTsKK+efiyA8IHRvXC1zdGFyZTsKK+WwgemOliA8IGJsb2NrYWRlOwor5L+v6KaWIDwgb3Zlcmxvb2s7CivnnpMgPCB0b1wtc2xlZXA7CivnnY8gPCBiZVwtdGlyZWQ7CivlvJXkurrms6jnm64gPCBzdHJpa2luZzsKK+edhSA8IGJpZ1wtZXllZDsKK+a/leawoyA8IG1vaXN0dXJlOwor55usIDwgc2FsdFwtcGl0Owor6Zi/5aWH5q235pavIDwgYWNoaWxsZXM7Civnsr7lr4YgPCBhY2N1cmFjeTsKK+iMtuWMmSA8IHRlYXNwb29uOwor5YWE5byfIDwgYnJvdGhlcnM7CivnmZIgPCBnZXRcLXdlbGw7CivnmYMgPCB3ZWFrbmVzczsKK+eYvCA8IHNpY2tuZXNzOwor55i2IDwgdG9cLWNvdWdoOwor55iwIDwgc2Nyb2Z1bGE7CivoiIjnm5sgPCBmbG91cmlzaDsKK+WAmOiLpSA8IHByb3ZpZGVkOwor6Zec5L+CIDwgcmVsYXRpb247CivnmbzlsIQgPCB0b1wtc2hvb3Q7Civnk6kgPCBraWxvd2F0dDsKK+eQqyA8IG9ybmFtZW50Owor5o6h5o6YIDwgZXhjYXZhdGU7CivotorpgY4gPCB0b1wtY3Jvc3M7Civnj7cgPCBcLzJcLXByXC1zdDsKK+WFteWZqCA8IHdlYXBvbnJ5Owor5ouU56+AIDwgam9pbnRpbmc7CivmvJTnv5IgPCBleGVyY2lzZTsKK+Wlp+W+t+S/ruaWryA8IG9keXNzZXVzOwor57SK5LqCIDwgZGlzb3JkZXI7Civot7PoiJ4gPCB0b1wtZGFuY2U7Civnio4gPCB0aGVcLXplYnU7CivnibMgPCBcKGJvdmluZVwpOwor56+E55aHIDwgY2F0ZWdvcnk7CivlhbXlk6EgPCBzb2xkaWVyczsKK+a7suiJsiA8IGJsZWVkaW5nOwor54akIDwgXChwZXJzb25cKTsKK+ibi+m7gyA8IGVnZ1wteW9sazsKK+eEjCA8IHRvXC1saWdodDsKK+eCpCA8IGlsbHVtaW5lOwor6IOM6Z2iIDwgdGhlXC1iYWNrOwor54ChIDwgc2xpcHBlcnk7CivlnabmoZHlsLzkup4gPCB0YW56YW5pYTsKK+i8lOWwjiA8IHRvXC1jb2FjaDsKK+WvtuiytCA8IHZhbHVhYmxlOwor5r2OIDwgcmlwcGxpbmc7CivlhaXlj6MgPCBlbnRyYW5jZTsKK+a5oiA8IGJhdGhyb29tOwor6ZaL5Ym1IDwgaW5pdGlhdGU7CivkvrXonZUgPCB0b1wtZXJvZGU7CivmiYHon7IgPCBmbGF0d29ybTsKK+e2k+mZuOi3ryA8IG92ZXJsYW5kOwor5a656YePIDwgY2FwYWNpdHk7Civmj4/lnJYgPCB0b1wtdHJhY2U7Civlm5vmnIjljYHkuIPomZ8gPCBhcHJpbFwtMTc7CivotaTotrMgPCBiYXJlZm9vdDsKK+azkCA8IHRvXC13cml0ZTsKK+ayjSA8IGZyZWV6aW5nOwor5Zyo5oi25aSWIDwgb3V0ZG9vcnM7CivmsIkgPCByZXN0bGVzczsKK+avviA8IGFcLWNvYXJzZTsKK+avuyA8IHRvXC1tb3VsdDsKK+S4jemhp+S4gOWIhyA8IHJlY2tsZXNzOwor5q69IDwgbWl4ZWRcLXVwOwor6KO95ZOBIDwgcHJvZHVjdHM7CivlhbHkuqsgPCB0b1wtc2hhcmU7CivmrJsgPCBhXC1oYW5kbGU7Civmk6bmo5LnkIMgPCBmb3VsXC10aXA7Civmq4MgPCBjdXBib2FyZDsKK+WFrOS4uyA8IHByaW5jZXNzOwor5o+Q5ZCNIDwgbm9taW5hdGU7Civlm5vmlrkgPCBmb3VyXC13YXk7CivkuK3kuJbntIAgPCBtZWRpZXZhbDsKK+aomiA8IGFcLXB1bGxleTsKK+eyl+WOsiA8IGFicmFzaXZlOwor5YK+6IG96ICFIDwgbGlzdGVuZXI7CivmpIQgPCB0b1wtZ3JhZnQ7CivmorEgPCBkb29yc2lsbDsKK+aOpeaUtuWZqCA8IHJlY2VpdmVyOwor5Yui5aaC56C056u5IDwgc3dlZXBpbmc7Civoh6rmsrsgPCBhdXRvbm9teTsKK+mrmOaetiA8IG92ZXJoZWFkOwor5Zuw5oORIDwgYmV3aWxkZXI7Civmn6QgPCBoYXd0aG9ybjsKK+aeuyA8IGxvbmdcLW9hcjsKK+eskeiBsiA8IGxhdWdodGVyOwor6L6y5a625bqt6ZmiIDwgZmFybXlhcmQ7Civmnb7pvKAgPCBzcXVpcnJlbDsKK+WutuW6reS9nOalrSA8IGhvbWV3b3JrOwor5YWI5LukIDwgc2hpbGxpbmc7CivmuKDpgZMgPCBjaGFubmVsczsKK+aYoSA8IGxvbmdcLWRheTsKK+agoeiogiA8IHJldmlzaW9uOwor5peYIDwgYVwtcGVubm9uOwor5qOS55CDIDwgYmFzZWJhbGw7CivlhKrlhYggPCBwcmlvcml0eTsKK+aVqiA8IHRvXC13ZWlnaDsKK+aUniA8IHRvXC1zcGxpdDsKK+aTqSA8IHRvXC1zdGFpbjsKK+WZtOaziSA8IGZvdW50YWluOwor5pG3IDwgdG9cLWtub2NrOwor5pC1IDwgd2lwZVwtb2ZmOwor5pCyIDwgdG9cLXNlaXplOwor5pCLIDwgdG9cLXRodW1wOwor5o+wIDwgcG9rZVwtb3V0Owor5o+cIDwgY292ZXJcLXVwOwor6LuN5aOrIDwgc2VyZ2VhbnQ7Civmj4wgPCB0b1wtc2hha2U7CivooaPlu5ogPCB3YXJkcm9iZTsKK+aLkSA8IHRvXC1jbGFtcDsKK+S7vemHjyA8IHF1YW50aXR5Owor5omFIDwgZ2F0ZVwtYmFyOwor5oeJ6KmyIDwgb3VnaHRcLXRvOwor5o6h5YWJIDwgbGlnaHRpbmc7Civmh5UgPCBzYXRpYXRlZDsKK+aGqiA8IGNvbXBvc2VkOwor6JGh6JCE54mZIDwgcG9ydHVnYWw7Civoo4HliKQgPCBqdWRnbWVudDsKK+WNs+Wwh+S+huiHqCA8IGltbWluZW50Owor5oWrIDwgdG9cLWFsYXJtOwor5oWFIDwgYWdpdGF0ZWQ7CivmhYEgPCBkaXNob25vcjsKK+S6uumhniA8IGh1bWFuaXR5Owor5Lyw6KiIIDwgZXN0aW1hdGU7Civmg5QgPCBjaGVlcmZ1bDsKK+WdkOS4iyA8IHNpdFwtZG93bjsKK+WbnuWutiA8IGhvbWV3YXJkOwor5L2/6ICFIDwgZW1pc3Nhcnk7CivmgZ0gPCBjYXJlZnJlZTsKK+aJk+egtCA8IHRvXC1icmVhazsKK+aBjCA8IHRvXC13b3JyeTsKK+WBh+acnyA8IHZhY2F0aW9uOwor5LiN5q2j5bi4IDwgYWJub3JtYWw7CivooaPlrZAgPCBjb3ZlcmluZzsKK+mfs+aoguWFieeinyA8IG11c2ljXC1jZDsKK+i7vOS6iyA8IGFuZWNkb3RlOwor5bukIDwgdG9cLXBsYWNlOwor5oqx5q2JIDwgYmVcLXNvcnJ5Owor5qW15aW9IDwgZmFidWxvdXM7CivmpbXlpKcgPCBlbm9ybW91czsKK+eVjOaomSA8IGxhbmRtYXJrOwor5LiN6YCP5rCjIDwgYWlydGlnaHQ7CivkupTlvanos5PntJsgPCBjb2xvcmZ1bDsKK+W4tSA8IHJlbW5hbnRzOwor56+A5oW2IDwgZmVzdGl2YWw7CivmmpbmsKPmqZ8gPCByYWRpYXRvcjsKK+W2rSA8IGVsZXZhdGVkOwor6Zi/6IKv6ImyIDwgYXJrYW5zYXM7CivnpZ7lrbjnoJTnqbbmiYAgPCBzZW1pbmFyeTsKK+msp+WNgCA8IGRvd250b3duOwor5bKKIDwgZm9vdGhpbGw7CivpvJPlkLnogIUgPCBhZHZvY2F0ZTsKK+S+teeVpSA8IGludmFzaW9uOwor5L2157SXIDwgZG91Ymxpbmc7Civnl4XlpKsgPCBzaWNrXC1tYW47CivmjojkuoggPCB0b1wtYXdhcmQ7CivlnLDkuIvlrqQgPCBiYXNlbWVudDsKK+Wci+WFpyA8IGRvbWVzdGljOwor5a6sIDwgYXJjaGl2ZXM7CivlrKwgPCBtaXN0cmVzczsKK+ewoeWMliA8IHNpbXBsaWZ5Owor5ryi5a+G54i+6aCTIDwgaGFtaWx0b247CivosrfpgJogPCB0b1wtYnJpYmU7CivlhpLniq/ogIUgPCBvZmZlbmRlcjsKK+WnpiA8IGFkdWx0ZXJ5Owor56+h5aWqIDwgdG9cLXVzdXJwOwor6Ieo5bqKIDwgY2xpbmljYWw7Civkv53nnJ/luqYgPCBmaWRlbGl0eTsKK+agveeoriA8IHRvXC1wbGFudDsKK+aIsOeVpSA8IHN0cmF0ZWd5Owor5ZyS5LiBIDwgZ2FyZGVuZXI7CivmnKzpq5QgPCBub3VtZW5vbjsKK+S6uumAoCA8IG1hblwtbWFkZTsKK+iqnuiogOWtuOWutiA8IGxpbmd1aXN0Owor5bGF5rCRIDwgcmVzaWRlbnQ7CivohbPmraUgPCBmb290c3RlcDsKK+WfvCA8IGhlYWRsYW5kOwor5ou85a2XIDwgc3BlbGxpbmc7CivmnbHpg6ggPCB0aGVcLWVhc3Q7CivkuI3pq5TpnaIgPCBzaGFtZWZ1bDsKK+mrmOWcsCA8IGhpZ2hsYW5kOwor5Zu65Lu2IDwgZmlybXdhcmU7Civpvo3poK3ogIHlpKcgPCBiaWdcLWJvc3M7CivohZPliKnploDmm7ggPCBwaGlsZW1vbjsKK+mRsuW1jCA8IHRvXC1pbmxheTsKK+alreWLmSA8IGJ1c2luZXNzOwor5YCN5pW4IDwgbXVsdGlwbGU7CivlsI3nhacgPCBjb250cmFzdDsKK+WbriA8IGludmVpZ2xlOwor6IKp6IaAIDwgc2hvdWxkZXI7Civouqvku70gPCBpZGVudGl0eTsKK+WXgyA8IHRvXC1mbHV0ZTsKK+WwseatpCA8IGFuZFwtdGh1czsKK+Wfg+WhnuS/hOavlOS6niA8IGV0aGlvcGlhOwor5ZWHIDwgdG9cLXN0YWxrOwor562G5p62IDwgcGVuXC1yYWNrOwor5ZSlIDwgYVwtYnVuZGxlOwor55Sf5pelIDwgYmlydGhkYXk7CivlkaAgPCB0b1wtc3B1cnQ7CivpkJjmk7ogPCBwZW5kdWx1bTsKK+Wwj+ihneeqgSA8IHNraXJtaXNoOwor5Y+SIDwgb2JlZGllbnQ7CivljrUgPCBhXC1zcHJpbmc7CivmirHmgKggPCBjb21wbGFpbjsKK+WNvCA8IHVuc3RlYWR5Owor5Y25IDwgc3ltcGF0aHk7Civlrbjnv5IgPCB0b1wtbGVhcm47CivmipjmiaMgPCBkaXNjb3VudDsKK+WLjCA8IHRvXC1sYWJvcjsKK+WKuyA8IGZsdXJyaWVkOwor5oe455aRIDwgc3VzcGVuc2U7CivlipkgPCBhXC1kaXZpZGU7Civmh7fnlpEgPCB0b1wtZG91YnQ7CivnlbblpKkgPCB0aGF0XC1kYXk7CivliZ8gPCB0b1wtcHJpY2s7CivpjbXnm6QgPCBrZXlib2FyZDsKK+WHpSA8IHRvXC1kd2VsbDsKK+WGhyA8IGhhdmVcLW5vdDsKK+aOkuawtOa4oCA8IGRyYWluYWdlOwor5be05Z+65pav5Z2mIDwgcGFraXN0YW47CivpurvphonlipEgPCBuYXJjb3RpYzsKK+WDgyA8IHByZXBhcmVkOwor5a6255SoIDwgaG9tZVwtdXNlOwor5L20IDwgYVwtc2Vjb25kOwor6KKr5L615a6zIDwgc3RyaWNrZW47Civoh7TlipsgPCB3b3JrXC1mb3I7CivkupTop5IgPCBwZW50YWdvbjsKK+S2siA8IHRoZVwtZWRnZTsKK+S1siA8IHJhd1wtaGVtcDsKK+S1miA8IGthb2xpYW5nOwor5LWTIDwgdGhlXC1tb2xlOwor5LWJIDwgYWJ1dGlsb247CivktLsgPCBkcnlcLWZvb2Q7CivktKsgPCBhbnRlbG9wZTsKK+aIv+adsSA8IGxhbmRsb3JkOwor5LSaIDwgc2FsdHBvbmQ7Civks7sgPCBhblwtZWFnbGU7Civkv67lu7ogPCB0b1wtYnVpbGQ7CivkspYgPCBiaWdcLWZpc2g7CivoqIjnrpfmqZ8gPCBjb21wdXRlcjsKK+eqgeeZvCA8IG91dGJ1cnN0Owor5LCfIDwgdGhlXC1zb3VsOwor5K+qIDwgYmlnXC1oZWFkOwor5L+h5b6SIDwgYmVsaWV2ZXI7Civkr5ogPCB0aGVcLXJpYnM7Civkr4kgPCB0b1wtY2hva2U7Civnmb3mnKjogLMgPCB0cmVtZWxsYTsKK+aJk+aOgyA8IHRvXC1jbGVhbjsKK+aKgOW3pSA8IG1lY2hhbmljOwor5oyB5LmFIDwgZHVyYXRpb247CivkrbEgPCBhXC1saXR0bGU7Civpoqjou4ogPCB3aW5kbWlsbDsKK+eNqOijgeiAhSA8IGRpY3RhdG9yOwor5KyJIDwgaG90XC13aW5kOwor5Ku3IDwgdGhlXC1qb3dsOwor5omL5o+QIDwgcG9ydGFibGU7CivkuI3pnYggPCBub3RcLXdvcms7Civkq4MgPCB0aGVcLWxpcHM7CivkqrYgPCB0aGVcLWNoaW47CivkqqkgPCB0b1wtY2hhbnQ7CivkqpwgPCBhXC1zaGllbGQ7CivkqpEgPCB0b1wtc3RpY2s7CivkqoUgPCBhXC1xdWl2ZXI7CivkqaAgPCBhXC1naXJkbGU7CivkqYkgPCB0aGVcLWZhY2U7CivkqYggPCBhXC1wbHVtcHk7CivkqLwgPCBkeWVzdHVmZjsKK+eUn+WtmCA8IHRvXC1leGlzdDsKK+izpueohSA8IHRheGF0aW9uOwor5KerIDwgYVwtdHJlbmNoOwor5KeBIDwgdG9cLWxlYXZlOwor5rW06KGjIDwgYmF0aHJvYmU7CivkuIDpnaIgPCBvbmVcLXNpZGU7Civkpa0gPCBldmlkZW5jZTsKK+aBkOm+jSA8IGRpbm9zYXVyOwor6KiY6YyE5ZOhIDwgcmVjb3JkZXI7CivkpL8gPCB0b1wtY2FydmU7CivkpLYgPCBhXC1oYW1tZXI7CivkpLMgPCBhXC1taXJyb3c7Civlt7Tlt7TlpJrmlq8gPCBiYXJiYWRvczsKK+SkqyA8IGFcLWNoaXNlbDsKK+SkkCA8IHRvXC1kcmluazsKK+eVq+WDjyA8IHBvcnRyYWl0Owor55W25L2cIDwgdHJlYXRcLWFzOwor56au6LKMIDwgY291cnRlc3k7CivkopAgPCB0b1wtZ29cLXRvOwor6JiH5qC86JitIDwgc2NvdGxhbmQ7Civkv6HlsIEgPCBlbnZlbG9wZTsKK+SgviA8IHRvXC1kb2RnZTsKK+SgrCA8IGluc29tbmlhOwor5KCeIDwgd3JpbmtsZWQ7CivogbLnqLEgPCB0b1wtY2xhaW07CivkoIEgPCB0b1wtZ29cLXVwOwor5J+4IDwgdGhlXC1jYWxmOwor5bCN5omLIDwgb3Bwb25lbnQ7Civkv6HlroggPCBhYmlkZVwtYnk7Civknq4gPCB0b1wtY3Jhd2w7CivogZbntIQgPCBjb3ZlbmFudDsKK+agoeatoyA8IHJlZ3VsYXRlOwor5J2CIDwgdG9cLWVyZWN0Owor5JysIDwgYVwtY2F2ZXJuOwor5JyYIDwgdG9cLWd1YXJkOwor5JyQIDwgdG9cLWxpYmVsOwor5JyDIDwgdG9cLWJsYW1lOwor5JuSIDwgdG9cLWFyZ3VlOwor6YeN6bueIDwgZW1waGFzaXM7Civkm4cgPCB0b1wtbGF1Z2g7CivkmrcgPCB0b1wtdHJlYXQ7Civkmq8gPCB0b1wtcXVlbGw7Civogb3nnL4gPCBhdWRpZW5jZTsKK+iRoeiQhOWckiA8IHZpbmV5YXJkOwor5JirIDwgb2xkXC1yYWdzOwor5JicIDwgYVwtbmFwa2luOwor5JiJIDwgc2lsa3dvcm07CivpqI7luKsgPCBob3JzZW1hbjsKK+enp+iLlyA8IHNlZWRsaW5nOwor5JeYIDwgYVwtd2VldmlsOwor5JeIIDwgYVwtZ2FkZmx5Owor5L2/6IiI5aWuIDwgZXhjaXRpbmc7Civkl4cgPCB0aGVcLXRvYWQ7CivklrsgPCBlcGhlbWVyYTsKK+SWpCA8IHRvXC1jcmVlcDsKK+SWmyA8IG9mXC10aWdlcjsKK+esrOWNgeS4gCA8IGVsZXZlbnRoOwor5oGt6aCGIDwgZGVmZXJlbnQ7CivpjbXmp70gPCBrZXlcLXNsb3Q7Civos7zniakgPCBzaG9wcGluZzsKK+WWruaTmiA8IHJlY2VpcHRzOwor5pyD6K6KIDwgdmFyaWFibGU7Civkk5UgPCBwb2x5Z2FsYTsKK+SSsyA8IGFcLWZsb3dlcjsKK+WwkeW5tCA8IGp1dmVuaWxlOwor6aiZ5a2QIDwgc3dpbmRsZXI7Civoga/nm58gPCBhbGxpYW5jZTsKK+SRmCA8IHRvXC1wb3VuZDsKK+SRgyA8IGRpbVwtbW9vbjsKK+SQkiA8IG5vdFwtZmluZTsKK+aWueeoi+W8jyA8IGVxdWF0aW9uOwor6Lev5Y+jIDwgY3Jvc3Npbmc7Civkj58gPCBmYXRcLW1lYXQ7CivomZXnvbAgPCBwZW5hbGl6ZTsKK+SPiSA8IHRvXC13YXZlcjsKK+SPiCA8IHRvXC11bml0ZTsKK+mHkemtmiA8IGdvbGRmaXNoOwor5I6yIDwgZWFyXC1sb2JlOwor5I6jIDwgYVwtcGxvdWdoOwor5b2r5Yi75a62IDwgc2N1bHB0b3I7CivkjLcgPCBhXC10aHJlYWQ7CivkjK8gPCBhXC10cnViYW47CivkjKsgPCBhXC1oYXdzZXI7CivlkKvph48gPCBjb250ZW50czsKK+SMgyA8IHJhd1wtc2lsazsKK+mYv+aJmOWTgSA8IGF0cm9waW5lOwor5IuhIDwgdG9cLXJlbGF4Owor5IuDIDwgc3Rpbmdpbmc7CivkirggPCB0b1wtdHdpc3Q7Civkip0gPCB0b1wtZXhpbGU7CivnlKjlip8gPCBkaWxpZ2VudDsKK+SKgSA8IGxlYXZpbmdzOwor5Im7IDwgcmVkXC1yaWNlOwor5ImxIDwgYVwtY3JhZGxlOwor5ImSIDwgYVwtd2lubm93Owor5Ii2IDwgYW5cLWFycm93Owor5Zyw5Y2A5oCnIDwgcmVnaW9uYWw7Civkh4wgPCB0b1wtc3RhbmQ7CivkhrggPCBzcGFjaW91czsKK+ethuWQjSA8IHBlblwtbmFtZTsKK+S9m+aVmSA8IGJ1ZGRoaXNtOwor5Y+v6Z2gIDwgcmVsaWFibGU7CivkuInop5LlvaIgPCB0cmlhbmdsZTsKK+Wvk+aJgCA8IGR3ZWxsaW5nOwor5IORIDwgc3BlY2tsZXM7CivkgaUgPCB0b1wtYmxpbms7CivkgZwgPCBiaWdcLWV5ZXM7CivnlLHkvZkgPCBvd2luZ1wtdG87CivkgIggPCBhXC12ZXNzZWw7Civjv6IgPCB0b1wtc2hpbmU7Civjv6EgPCBhXC1oZWxtZXQ7Civjv4ggPCBhblwtdWxjZXI7Civjv4UgPCByaW5nd29ybTsKK+O+uCA8IGFcLXNjYWJieTsKK+mggemdoiA8IHdlYlwtcGFnZTsKK+O+jSA8IGRpc2Vhc2VzOwor4725IDwgdG9cLWZhaW50Owor5ri05pybIDwgZGVzaXJvdXM7CivmnKzog70gPCBpbnN0aW5jdDsKK+WXnOWlvSA8IGZvbmRuZXNzOwor57WC56uv55So5oi2IDwgZW5kXC11c2VyOwor5aKo5rC055O25p62IDwgaW5rc3RhbmQ7CivjupogPCBhblwtb3R0ZXI7Civoqpjmi5DogIUgPCBhYmR1Y3RvcjsKK+e8uumZtyA8IGFcLWRlZmVjdDsKK+O6hyA8IGFcLXdhcmRlbjsKK+O5uCA8IHRoZVwtbGlvbjsKK+ibi+auvCA8IGVnZ3NoZWxsOwor5oiy5YqH5oCnIDwgZHJhbWF0aWM7Civmh7LnvbDmgKcgPCBwdW5pdGl2ZTsKK+O4nSA8IGFcLXNob3ZlbDsKK+WFq+inkualkyA8IGFsYW5naXVtOwor47eAIDwgc29saXRhcnk7CivjtrwgPCB2ZXJ5XC1ob3Q7CivjtLYgPCB0b1wtd2F0ZXI7Civmu5HlhrAgPCB0b1wtc2thdGU7CivjtIogPCBhblwtYWJ5c3M7Civjs6sgPCByZXBlYXRlZDsKK+OzkiA8IHN0YXR1dGVzOwor5YyX5rW36YGTIDwgaG9ra2FpZG87CivjsrcgPCBuaXRyb2dlbjsKK+OysyA8IHRvXC10b3VjaDsKK+Wul+aVmSA8IHJlbGlnaW9uOwor5L2O5oiQ5pysIDwgbG93XC1jb3N0Owor47G/IDwgdGhlXC1odXNrOwor47G6IDwgdGhlXC1za2luOwor47GiIDwgdGhlXC1kZWFkOwor47GXIDwgYVwtYnJlYXRoOwor5ZG96ISIIDwgbGlmZWxpbmU7CivkuYPoh7MgPCBhbmRcLWV2ZW47Civnp5/nqIUgPCBsYW5kXC10YXg7CivkuI3ooYwgPCB3b24nJ3RcLWRvOwor5a6I5pmCIDwgcHVuY3R1YWw7Civjrq0gPCBhXC1jYXNrZXQ7CivmmpfovYkgPCBibGFja291dDsKK+aJk+WNsCA8IHRvXC1wcmludDsKK+OspyA8IGFcLWNvbGxhcjsKK+aYjuS/oeeJhyA8IHBvc3RjYXJkOwor5pWR6LSW5Li7IDwgcmVkZWVtZXI7Civjq70gPCBkYXJrbmVzczsKK+OqkCA8IHVuc3RhYmxlOwor6LKC55quIDwgbWlua1wtZnVyOwor46moIDwgdG9cLWNyYWNrOwor46mTIDwgdG9cLXdvdW5kOwor6Yar6ZmiIDwgaG9zcGl0YWw7CivjqJMgPCB0b1wtY2xvc2U7CivjqIEgPCB0b1wtdGhyb3c7Civjp7UgPCB0b1wtZXhhY3Q7Civjp7EgPCB0b1wtYnJpbmc7Civms7PooaMgPCBzd2ltc3VpdDsKK+OmvyA8IGFcLXdpbmRvdzsKK+a3muawtCA8IHRlYXJkcm9wOwor55Sf5ZG95YqbIDwgdml0YWxpdHk7CivjpbAgPCBtb3VybmZ1bDsKK+OlgSA8IG1vcmFsaXR5Owor46SuIDwgYW5cLWVycm9yOwor46SPIDwgZ3JpZXZvdXM7CivogonmoYIgPCBjaW5uYW1vbjsKK+OjqyA8IHRoZVwtaGVlbDsKK+a4m+aOiSA8IHN1YnRyYWN0Owor46OeIDwgdG9cLXdhbGtpOwor6by754KOIDwgcmhpbml0aXM7CivjoLkgPCBhXC10dXJiYW47CivnlKLph4/lpJogPCBmcnVpdGZ1bDsKK+eci+WuiOiAhSA8IHdhdGNobWFuOwor46CKIDwgYVwtcnVnZ2VkOwor5rOV5Yip6LO95Lq6IDwgcGhhcmlzZWU7CivjnrcgPCBsdXh1aWFudDsKK+WQkeilvyA8IHdlc3R3YXJkOwor5Y+b6YCGIDwgdG9cLXJlYmVsOwor456RIDwgdGhlXC10YWlsOwor456JIDwgYmlnXC1mb290Owor452tIDwgdG9cLWF3YWtlOwor452YIDwgaGFybW9ub3k7CivjnLYgPCBhXC1jb3VwbGU7CivmiLDljYAgPCB3YXJcLXpvbmU7Civlj7HosqwgPCByZXByb2FjaDsKK+S9lOmgmOiAhSA8IG9jY3VwYW50Owor56eR576F5ouJ5aSaIDwgY29sb3JhZG87Civosp7mvZQgPCBjaGFzdGl0eTsKK+OZoiA8IGFcLXRyb3dlbDsKK+OZgyA8IGFcLWNhdml0eTsKK+agl+WtkCA8IGNoZXN0bnV0Owor45iZIDwgdG9cLWdyb2FuOwor45iAIDwgdG9cLXNvdW5kOwor5Lit57m8IDwgdG9cLXJlbGF5Owor45eqIDwgbW91dGhmdWw7Civjl5wgPCB0b1wtc21lbGw7Civjl4kgPCBpbmNpc2l2ZTsKK+OWqSA8IG5vdFwtcHVyZTsKK+OVvCA8IHRvXC1icmF3bDsKK+mOruWNgCA8IHRvd25zaGlwOwor45WbIDwgYVwtZnJpZW5kOwor45WQIDwgaW5jbGluZWQ7CivjlYogPCB0b1wtc2xhbnQ7Civmnb/msrkgPCBsZWFmXC1mYXQ7CivljKrlvpLpm4blnJggPCBnYW5nc3RlcjsKK+OTkyA8IHRoaW5cLWljZTsKK+OSuSA8IHRvXC11cHNldDsKK+aHuOWegiA8IG92ZXJoYW5nOwor5bCE6aC75Zmq6Z+zIDwgcmZcLW5vaXNlOwor6YWS6ay8IDwgZHJ1bmthcmQ7CivkuI3ogpYgPCB1bndvcnRoeTsKK+ePreapnyA8IGFpcmxpbmVyOwor45CcIDwgYW5cLWVuZW15Owor5L2/5ZCD6amaIDwgYXN0b25pc2g7CivnqpflrZAgPCBjYXNlbWVudDsKK+aHieWwjSA8IHJlc3BvbnNlOwor5Lqk5rWBIDwgZXhjaGFuZ2U7Civlj5voroogPCByZW5lZ2FkZTsKK+aIsOS6iyA8IGZpZ2h0aW5nOwor5bm45a2Y6ICFIDwgc3Vydml2b3I7CivkurrpgZPkuLvnvqkgPCBodW1hbmlzbTsKK+S4gOW/g+S4gOaEjyA8IGludGVudGx5Owor5qu76Iqx6I2JIDwgcHJpbXJvc2U7CivmoLjlh4YgPCBzYW5jdGlvbjsKK+aYn+acn+WbmyA8IHRodXJzZGF5Owor5rG65a6a5oCnIDwgZGVjaXNpdmU7Civml6XogLPmm7wgPCBnZXJtYW5pYzsKK+ittOiyrCA8IGRlbm91bmNlOwor5qGI5Lu2IDwgbGF3XC1jYXNlOwor5bm+5L2V5a24IDwgZ2VvbWV0cnk7Civlp7vopqogPCBhZmZpbml0eTsKK+adkeawkSA8IHZpbGxhZ2VyOwor5oW35oWoIDwgdmVoZW1lbnQ7Civoq5bpu54gPCBhcmd1bWVudDsKK+WCvuWQkeaWvCA8IHByb25lXC10bzsKK+m7g+eTnCA8IGN1Y3VtYmVyOwor5pqX6IeqIDwgaW53YXJkbHk7Civmh4rllqogPCBkZWplY3RlZDsKK+eogOaciSA8IHVuY29tbW9uOwor6aOb5qmfIDwgYWlycGxhbmU7CivlrqTlj4sgPCByb29tbWF0ZTsKK+iytuaKkSA8IGJlbGl0dGxlOwor6IOM5YyFIDwga25hcHNhY2s7Civnsr7npZ7pjK/kuoIgPCBpbnNhbml0eTsKK+m7qOa0viA8IHBhcnRpc2FuOwor5a2Q5bGkIDwgc3VibGF5ZXI7Civpo7LmlpkgPCBiZXZlcmFnZTsKK+S4ieaciOS6jOWNgeS4gOiZnyA8IG1hcmNoXC0yMTsKK+S6uuaJiyA8IG1hbnBvd2VyOwor5pif5pyf5YWtIDwgc2F0dXJkYXk7CivpmLLlrojogIUgPCBkZWZlbmRlcjsKK+S6jOaciCA8IGZlYnJ1YXJ5Owor5rKS6JC9IDwgZG93bmZhbGw7CivlkKvnorMgPCBjYXJib25pYzsKK+WYieW5tOiPr+acgyA8IGNhcm5pdmFsOwor5pyA54K6IDwgdGhlXC1tb3N0Owor5Y2a6Iyo55Om57SNIDwgYm90c3dhbmE7CivkuI3nlKggPCBuZWVkXC1ub3Q7CivpoqjmsLQgPCBmZW5nc2h1aTsKK+awtOi3ryA8IHdhdGVyd2F5Owor5a2Q5aWzIDwgY2hpbGRyZW47CivkuovmlYUgPCBhY2NpZGVudDsKK+WIuua/gOeJqSA8IHN0aW11bHVzOwor5aOf5pa36LKp6LOjIDwgbW9ub3BvbHk7CivkuI3njaggPCBub3RcLW9ubHk7CivlpaflhYvmi4nojbfppqwgPCBva2xhaG9tYTsKK+WtteWMliA8IGJyZWVkaW5nOwor6Z6t6J+yIDwgd2hpcHdvcm07CivkuI3niL0gPCBub3RcLXdlbGw7Civkv53liqDliKnkup4gPCBidWxnYXJpYTsKK+aHguS6iyA8IHNlbnNpYmxlOwor6aOf5oW+IDwgYXBwZXRpdGU7CivpnIfpqZogPCB0b1wtc2hvY2s7CivlkLjnhZkgPCB0b1wtc21va2U7CivorJ3orJ0gPCB0b1wtdGhhbms7CivkuI3mv58gPCBub3RcLWdvb2Q7CivpoK3nl5sgPCBoZWFkYWNoZTsKK+aal+ebkiA8IG1hZ2F6aW5lOwor5Lit5q2iIDwgdG9cLWNlYXNlOwor6Kyb6KmxIDwgYVwtc3BlZWNoOwor5p6X5ZywIDwgd29vZGxhbmQ7Civmnrbli6IgPCBhdHRpdHVkZTsKK+iytOaXj+i6q+S7vSA8IGxvcmRzaGlwOwor5LiN5L+h55SoIDwgZGlzdHJ1c3Q7CivlpKrplbcgPCBvdmVyc2l6ZTsKK+WLoumgrSA8IG1vbWVudHVtOwor5oSa5byEIDwgZGVyaXNpb247CivlvoDpgoQgPCBjb250YWN0czsKK+ekpueUoiA8IG1pbmVyYWxzOwor5o+Q5L6b6Ku4IDwgcHJvdmlkZXI7CivniJDpgoogPCBmaXJlc2lkZTsKK+iCjOiCieeZvOmBlCA8IG11c2N1bGFyOwor5bel56iL5birIDwgZW5naW5lZXI7CivorornqK4gPCBtdXRhdGlvbjsKK+S4ree5vOWZqCA8IHJlcGVhdGVyOwor6KuW6L+wIDwgdHJlYXRpc2U7CivmtIvnkLXnkLYgPCBtYW5kb2xpbjsKK+iBluWMliA8IHNhbmN0aWZ5Owor5oOh5L2c5YqHIDwgbWlzY2hpZWY7Civph43nlLMgPCByZWFmZmlybTsKK+aatOa0qiA8IGFcLXN1ZGRlbjsKK+WtkOWNiOe3miA8IG1lcmlkaWFuOwor6KO95L2c6ICFIDwgcHJvZHVjZXI7CivkuI3lnKjkuY4gPCBub3RcLW1pbmQ7CivppKHlhZIgPCBzdHVmZmluZzsKK+mfs+aoguWutiA8IG11c2ljaWFuOwor5L2/6bq755e6IDwgcGFyYWx5emU7CivljYPlrZfnr4AgPCBraWxvYnl0ZTsKK+iuiumYu+WZqCA8IHRoZW9zdGF0Owor5rWB5oSf55ar6IuXIDwgZmx1XC1zaG90Owor5rW35aSWIDwgb3ZlcnNlYXM7CivnjovlrrYgPCBwcmluY2VseTsKK+WTqOWFtSA8IHNlbnRpbmVsOwor5oOz5a62IDwgaG9tZXNpY2s7CivosrfkuLsgPCBjdXN0b21lcjsKK+mgkOa4rCA8IGZvcmVjYXN0Owor576O5pelIDwgdXNcLWphcGFuOwor6LKg5YK1IDwgaW5kZWJ0ZWQ7Civpm6jph48gPCByYWluZmFsbDsKK+WPuOazlSA8IGp1ZGljaWFsOwor5aWz5oi/5p2xIDwgbGFuZGxhZHk7Civlt6XkvZzpgY7luqYgPCBvdmVyd29yazsKK+WKoOmVtyA8IGxlbmd0aGVuOwor5ZCQ5qOEIDwgdG9cLXNwdXJuOwor6JmV5YiGIDwgZGlzcG9zYWw7Civml6Xnvo4gPCBqYXBhblwtdXM7Civlop7pq5ggPCBoZWlnaHRlbjsKK+mBsumgkyA8IGluYWN0aXZlOwor6LKh5Li7IDwgcmljaFwtbWFuOwor5aSi6KmxIDwgZGF5ZHJlYW07Civmj5DkvpvogIUgPCBzdXBwbGllcjsKK+S4jeaHiCA8IHVudGlyaW5nOwor5pyA5bCRIDwgc21hbGxlc3Q7CivloIXlm7rmgKcgPCBmaXJtbmVzczsKK+itt+eFpyA8IHBhc3Nwb3J0Owor5Li75a6wIDwgZG9taW5hdGU7CivlpKLoposgPCB0b1wtZHJlYW07CivkuI3mgJUgPCBmZWFybGVzczsKK+aylua0lyA8IHRvXC1yaW5zZTsKK+S4jeW+iCA8IG5vdFwtdmVyeTsKK+eZveWMlueXhSA8IGFsYmluaXNtOwor5Ym36ZmkIDwgcm9vdFwtb3V0Owor56We5oCnIDwgZGl2aW5pdHk7CivnuL3oo4EgPCBjaGFpcm1hbjsKK+ayiea1uCA8IHBlcm1lYXRlOwor56ys5YWt5Y2BIDwgc2l4dGlldGg7Civnvo7lvrcgPCBhXC12aXJ0dWU7Civpm4Tovq8gPCBlbG9xdWVudDsKK+m7nuWQjSA8IHJvbGxjYWxsOwor6LGq5L+gIDwgY2F2YWxpZXI7CivmlofmmI7ljJYgPCBjaXZpbGl6ZTsKK+WkluiZnyA8IG5pY2tuYW1lOwor5rW35LiKIDwgbWFyaXRpbWU7CivnhrHoqqAgPCBkZXZvdGlvbjsKK+WQiOaIkCA8IGNvbXBvdW5kOwor5aSW5Lqk5a6YIDwgZGlwbG9tYXQ7CivlkIzmhI8gPCB0b1wtYWdyZWU7CivlkJHlvowgPCBiYWNrd2FyZDsKK+acjeWLmSA8IHRvXC1zZXJ2ZTsKK+awkeecviA8IHBvcHVsYWNlOwor5aiB5pybIDwgcHJlc3RpZ2U7CivmtLvli5UgPCBhY3Rpdml0eTsKK+WPm+aVmSA8IGFwb3N0YWN5Owor55m96Zuy55+zIDwgZG9sb21pdGU7CivlpKfog70gPCBhbG1pZ2h0eTsKK+aZguapnyA8IG9jY2FzaW9uOwor5Y+N5pigIDwgcmVhY3Rpb247CivmlofogbcgPCBjaXZpbGlhbjsKK+WpmuWrgSA8IG1hcnJpYWdlOwor5ZCb5a2QIDwgbm9ibGVtYW47CivnibnmtL4gPCBkaXNwYXRjaDsKK+S9v+e/kuaFoyA8IGFjY3VzdG9tOwor5LiA5ZyYIDwgcmVnaW1lbnQ7Civmkq3pn7MgPCB0cmFuc21pdDsKK+WPsOW6pyA8IHBlZGVzdGFsOwor6YGO6LyJIDwgb3ZlcmxvYWQ7CivnpZblnIsgPCBob21lbGFuZDsKK+azsOWciyA8IHRoYWlsYW5kOwor6Kej6ZaLIDwgdG9cLXVudGllOwor5oSb5Zug5pav5Z2mIDwgZWluc3RlaW47CivmmpflrqQgPCBkYXJrcm9vbTsKK+WltueJmyA8IG1pbGtcLWNvdzsKK+WGsOaZtuefsyA8IGNyeW9saXRlOwor5bm06Z2SIDwgeW91dGhmdWw7CivkuIDlkaggPCBvbmVcLXdlZWs7CivkuIDlkJEgPCBhbGxcLWxvbmc7Civmm53lhYkgPCBleHBvc3VyZTsKK+S4jeWwj+W/gyA8IGhlZWRsZXNzOwor57SN56iF5Lq6IDwgdGF4cGF5ZXI7CivnhKHoq5bkvZXomZUgPCBhbnl3aGVyZTsKK+WGjeWHuuePviA8IHJlYXBwZWFyOwor5LiA5YyZIDwgc3Bvb25mdWw7CivnoJTnqbYgPCByZXNlYXJjaDsKK+aAoOaDsCA8IGlkbGVuZXNzOwor5YyF55quIDwgd3JhcHBpbmc7CivpnaDog4zmpIUgPCBhcm1jaGFpcjsKK+WlieePviA8IG9mZmVyaW5nOwor5LiN5YCmIDwgdGlyZWxlc3M7Civmk43kvZzogIUgPCBvcGVyYXRvcjsKK+ioguizvCA8IHRvXC1vcmRlcjsKK+e1sueLgOeJqSA8IGZpbGFtZW50Owor5paR55m9IDwgZ3JpenpsZWQ7CivmmrTlipsgPCB2aW9sZW5jZTsKK+itpuaDlSA8IHZpZ2lsYW50Owor5rOi5YuVIDwgdW5kdWxhdGU7CivlpYfnibkgPCBwZWN1bGlhcjsKK+W/oOaWvCA8IGxveWFsXC10bzsKK+eZvOaYjuWutiA8IGludmVudG9yOwor6YG46IiJIDwgdG9cLWVsZWN0Owor5aSn6KW/5rSLIDwgYXRsYW50aWM7Civpn4zluLYgPCBsaWdhbWVudDsKK+i/tyA8IGJld2l0Y2g7Civov7AgPCBuYXJyYXRlOwor6L+lIDwgZGlzdGFudDsKK+S4rSA8IGNlbnRyYWw7Civlv5cgPCBwdXJwb3NlOwor6L+OIDwgcmVjZWl2ZTsKK+W/jCA8IGplYWxvdXM7CivlkowgPCBoYXJtb255Owor6L6vIDwgZGlzcHV0ZTsKK+WOuyA8IGdvXC1hd2F5Owor5a+5IDwgY29ycmVjdDsKK+eeoCA8IGxvb2tcLWF0Owor5b6LIDwgc3RhdHV0ZTsKK+W9uSA8IHNlcnZpY2U7CivlvLUgPCBzdHJldGNoOwor5beyIDwgYWxyZWFkeTsKK+W8mCA8IGVubGFyZ2U7CivlvJUgPCB0b1wtcHVsbDsKK+W8lCA8IGNvbmRvbGU7CivovIMgPCBjb21wYXJlOwor5oSPIDwgdGhvdWdodDsKK+i/myA8IGFkdmFuY2U7Civnm6EgPCBleGhhdXN0Owor5buJIDwgdXByaWdodDsKK+aDhSA8IGZlZWxpbmc7CivnmrAgPCBwaW1wbGVzOwor5bqWIDwga2l0Y2hlbjsKK+i6kyA8IHN0dW1ibGU7CivluoQgPCB2aWxsYWdlOwor5bm2IDwgY29tYmluZTsKK+i5oCA8IHN0ZXBcLW9uOwor55mWIDwgY3JhdmluZzsKK+W5lSA8IGN1cnRhaW47Civku6MgPCByZXBsYWNlOwor5birIDwgdGVhY2hlcjsKK+aAuyA8IGNvbGxlY3Q7Civnl7QgPCBmb29saXNoOwor5Y2OIDwgZmxvd2VyeTsKK+eXhyA8IGRpc2Vhc2U7Civnl4UgPCBpbGxuZXNzOwor5Y+NIDwgcmV2ZXJzZTsKK+eWjiA8IG5lZ2xlY3Q7CivliqEgPCBhZmZhaXJzOwor5bSpIDwgcnVwdHVyZTsKK+eJuSA8IHNwZWNpYWw7CivmnI0gPCBjbG90aGVzOwor6LO9IDwgY29tcGV0ZTsKK+izkSA8IHJlbGlldmU7Civnp5EgPCBzZWN0aW9uOwor6LGrIDwgcmVsYXhlZDsKK+iBlCA8IGNvbm5lY3Q7Civkv50gPCBwcm90ZWN0Owor6Z2pIDwgbGVhdGhlcjsKK+WwiiA8IHJlc3BlY3Q7Civlk4EgPCBhcnRpY2xlOwor5bCJIDwgb2ZmaWNlcjsKK+WjqyA8IHNjaG9sYXI7Civph48gPCBtZWFzdXJlOwor56iLIDwgam91cm5leTsKK+WvqSA8IGV4YW1pbmU7CivmnoEgPCBleHRyZW1lOwor5LukIDwgY29tbWFuZDsKK+acqiA8IG5vdFwteWV0Owor5oyBIDwgc3VzdGFpbjsKK+WOhiA8IGhpc3Rvcnk7CivlrqMgPCBkZWNsYXJlOwor5a6XIDwgbGluZWFnZTsKK+iuriA8IGNvbnN1bHQ7CivnjocgPCB0b1wtbGVhZDsKK+WnlCA8IGFwcG9pbnQ7CivlhbUgPCBzb2xkaWVyOwor5a2UIDwgb3BlbmluZzsKK+isuSA8IHBydWRlbnQ7CivorJsgPCBleHBsYWluOwor5qC8IDwgcGF0dGVybjsKK+iruCA8IHNldmVyYWw7Civoq6YgPCBjYXJlZnVsOwor5oCVIDwgdG9cLWZlYXI7Civni6EgPCBjdW5uaW5nOwor5YeGIDwgYXBwcm92ZTsKK+eyviA8IGVzc2VuY2U7Civnq58gPCBmaW5hbGx5Owor6KqgIDwgc2luY2VyZTsKK+aVtCA8IG9yZGVybHk7CivlqYkgPCBhbWlhYmxlOwor5aSHIDwgcHJlcGFyZTsKK+WPpiA8IGFub3RoZXI7CivpmYggPCBleGhpYml0Owor5pWFIDwgYW5jaWVudDsKK+iomyA8IHN3aW5kbGU7CivoqJcgPCBlbnRydXN0Owor6KiKIDwgaW5xdWlyZTsKK+eIhiA8IGNyYWNrbGU7CivmibkgPCBjb21tZW50Owor6YCBIDwgc2VlXC1vZmY7CivlpYcgPCBzdHJhbmdlOwor54eVIDwgc3dhbGxvdzsKK+eHiCA8IGxhbnRlcm47CivmuLggPCB0b1wtc3dpbTsKK+S7vSA8IHBvcnRpb247CivmlaIgPCB0b1wtZGFyZTsKK+eFvSA8IHN0aXJcLXVwOwor5pydIDwgZHluYXN0eTsKK+iCsiA8IHByb2R1Y2U7Civlm74gPCBkaWFncmFtOwor5YiYIDwgc3VybmFtZTsKK+WklSA8IGV2ZW5pbmc7Civmib8gPCBpbmhlcml0Owor5LmhIDwgY291bnRyeTsKK+ijgSA8IGN1dFwtb3V0Owor5ryUIDwgcGVyZm9ybTsKK+iigiA8IHNsZWV2ZXM7CivoobAgPCBkZWNsaW5lOwor5aGeIDwgc3RvcFwtdXA7Civmma8gPCBzY2VuZXJ5Owor6KCiIDwgd3JpZ2dsZTsKK+S+nSA8IHJlbHlcLW9uOwor54CdIDwgdHJpY2tsZTsKK+iDnCA8IHZpY3Rvcnk7Civmv6EgPCBpbW1lcnNlOwor5r+fIDwgdG9cLWhlbHA7Civon4sgPCBjcmlja2V0Owor5ryGIDwgdmFybmlzaDsKK+a8gSA8IHRvXC1maXNoOwor5pWjIDwgc2NhdHRlcjsKK+ibhiA8IG1hZ2dvdHM7Civmm7IgPCBjcm9va2VkOwor5rq2IDwgdG9cLW1lbHQ7CivljoIgPCBmYWN0b3J5Owor6IKvIDwgd2lsbGluZzsKK+aKkyA8IHNjcmF0Y2g7CivomasgPCBpbnNlY3RzOwor5rmnIDwgd2VsbFwtdXA7CivpnaAgPCBsZWFuXC1vbjsKK+aOiCA8IGdpdmVcLXRvOwor5riHIDwgdGhpcnN0eTsKK+a3uiA8IHNoYWxsb3c7Civmt6sgPCBvYnNjZW5lOwor6beEIDwgY2hpY2tlbjsKK+WXhyA8IG1pc2VybHk7CivmirEgPCBlbWJyYWNlOwor552bIDwgZXllYmFsbDsKK+aLrCA8IGluY2x1ZGU7CivpmY0gPCBkZXNjZW5kOwor56eBIDwgcHJpdmF0ZTsKK+iUkSA8IGRpc2RhaW47Civms6EgPCBidWJibGVzOwor6Ze5IDwgcXVhcnJlbDsKK+mGkiA8IHdha2VcLXVwOwor5rKMIDwgY2hhb3RpYzsKK+aatCA8IHZpb2xlbnQ7CivmiqIgPCBwbHVuZGVyOwor56+HIDwgY2hhcHRlcjsKK+mxiCA8IGNvZGZpc2g7Civor7ggPCB2YXJpb3VzOwor5Y+tIDwgdHJ1bXBldDsKK+WPmSA8IGV4cHJlc3M7Civljq0gPCBkaXNsaWtlOwor6ZuFIDwgZWxlZ2FudDsKK+mbtyA8IHRodW5kZXI7Civnq54gPCBjb250ZW5kOwor5pONIDwgY29uZHVjdDsKK+ivuiA8IHByb21pc2U7CivljIYgPCBoYXN0aWx5Owor5qyFIDwgemVsa292YTsKK+iLuiA8IGJlcnJpZXM7Civoi5cgPCBzcHJvdXRzOwor56KwIDwgY29sbGlkZTsKK+iLkSA8IHBhc3R1cmU7Civku78gPCBpbWl0YXRlOwor5qmfIDwgbWFjaGluZTsKK+agjyA8IHJhaWxpbmc7CivliIggPCBjdXRcLW9mZjsKK+eLoCA8IHZpY2lvdXM7CivmmKAgPCBwcm9qZWN0Owor5b+gIDwgbG95YWx0eTsKK+aJjiA8IHB1bGxcLXVwOwor6IW5IDwgc3RvbWFjaDsKK+iIkiA8IG9wZW5cLXVwOwor5Ye2IDwgY3VscHJpdDsKK+aFsCA8IGNvbWZvcnQ7CivppJggPCBzdXJwbHVzOwor5pKSIDwgcmVsZWFzZTsKK+aEgSA8IGFueGlldHk7CivmlqQgPCBhXC1jYXR0eTsKK+WDkSA8IHNvam91cm47CivmibYgPCBzdXBwb3J0Owor5q+BIDwgZGVzdHJveTsKK+aisCA8IHdlYXBvbnM7Civov50gPCBkaXNvYmV5Owor5LiiIDwgZGlzY2FyZDsKK+iChiA8IGluZHVsZ2U7Civnu5UgPCBlbnR3aW5lOwor6IGzIDwgdXJnZVwtb247CivoiLAgPCB3YXJzaGlwOwor5oG8IDwgYW5nZXJlZDsKK+i+oyA8IHBlcHBlcnk7Civml4sgPCByZXZvbHZlOwor5YCJIDwgZ3JhbmFyeTsKK+e9miA8IHBlbmFsdHk7Civmi74gPCBwaWNrXC11cDsKK+aBoiA8IHJlc3RvcmU7Civnv4EgPCBvbGRcLW1hbjsKK+e+vSA8IGZlYXRoZXI7CivmipYgPCB0cmVtYmxlOwor5L6vIDwgbWFycXVpczsKK+aDkSA8IGNvbmZ1c2U7Civpm5UgPCBlbmdyYXZlOwor5a+/IDwgb2xkXC1hZ2U7CivplKYgPCBicm9jYWRlOwor5p2PIDwgYXByaWNvdDsKK+aFjCA8IG5lcnZvdXM7CivlsaAgPCBidXRjaGVyOwor5p+PIDwgY3lwcmVzczsKK+mcjSA8IHF1aWNrbHk7CivpmbYgPCBwb3R0ZXJ5Owor5pGEIDwgdGFrZVwtaW47Civpl68gPCBydXNoXC1pbjsKK+aJsCA8IGRpc3R1cmI7Civpm4AgPCBzcGFycm93Owor6ZiBIDwgY2hhbWJlcjsKK+WNoiA8IGNvdHRhZ2U7Civmn5wgPCBjYWJpbmV0Owor5pqHIDwgbGVpc3VyZTsKK+aEpyA8IGFzaGFtZWQ7CivmmbYgPCBjcnlzdGFsOwor5pmdIDwgZGF5dGltZTsKK+etiyA8IG11c2NsZXM7CivmkpEgPCBwcm9wXC11cDsKK+WhqyA8IGZpbGxcLWluOwor5pe6IDwgcHJvc3BlcjsKK+iAlyA8IGNvbnN1bWU7CivmgqYgPCBwbGVhc2VkOwor5paRIDwgbW90dGxlZDsKK+i3tSA8IHRyYW1wbGU7Civmg7YgPCBmZWFyZnVsOwor57C+IDwgYVwtYmxpbmQ7CivotKkgPCBwZWRkbGVyOwor5oiIIDwgaGFsYmVyZDsKK+mQkCA8IGZldHRlcnM7CivombkgPCByYWluYm93Owor5a+hIDwgd2lkb3dlZDsKK+mDiiA8IHN1YnVyYnM7Civlvr0gPCBhXC1iYWRnZTsKK+myjSA8IGFiYWxvbmU7CivnrIQgPCBoYWlycGluOwor5rK+IDwgbW9pc3RlbjsKK+eekiA8IGRlY2VpdmU7Civnq4MgPCBmdXJuYWNlOwor6KOUIDwgcHJvZ2VueTsKK+WMqiA8IGJhbmRpdHM7CivmppwgPCBwbGFjYXJkOwor5p6JIDwgdXNlbGVzczsKK+mqhyA8IHRlcnJpZnk7CivmkrAgPCBjb21wb3NlOwor5Z6DIDwgZ2FyYmFnZTsKK+mpvCA8IGFcLWNhbWVsOwor6LG5IDwgbGVvcGFyZDsKK+e8tCA8IGRlbGl2ZXI7Civlk6ggPCB3aGlzdGxlOwor5Zq8IDwgcHJhdHRsZTsKK+aYpyA8IG9ic2N1cmU7Civml7EgPCBkcm91Z2h0Owor6IGCIDwgd2hpc3BlcjsKK+iOvSA8IHRoaWNrZXQ7Civljq4gPCBzZXJ2YW50Owor6IyoIDwgY2FsdHJvcDsKK+eymCA8IHZpc2NvdXM7CivmnL0gPCBkZWNheWVkOwor54SVIDwgc2hpbmluZzsKK+eGhCA8IHB1dFwtb3V0Owor6YC+IDwgZ29cLW92ZXI7CivphosgPCB2aW5lZ2FyOwor5paMIDwgcmVmaW5lZDsKK+aBlSA8IGZvcmdpdmU7CivmsqYgPCBiZVwtbG9zdDsKK+WysSA8IGRhaXNoYW47CivorrMgPCBjb25jZWFsOwor5bKUIDwgZGl2ZXJnZTsKK+WekiA8IHJhbXBhcnQ7Civnv5ggPCB0dXJuXC11cDsKK+inkSA8IHBlZXBcLWF0Owor5ouOIDwgdG9cLWhhdWw7CivlmZwgPCB2ZXJib3NlOwor5Ye5IDwgY29uY2F2ZTsKK+aSqSA8IGxpZnRcLXVwOwor5bS9IDwgYVwtY2hpbGQ7CivmtoUgPCBibGFja2VuOwor57CMIDwgZmFsbGluZzsKK+ivmyA8IGV4ZWN1dGU7CivmjrMgPCBjYXB0dXJlOwor6aaFIDwgZmlsbGluZzsKK+ehhSA8IHNpbGljb247CivmiqggPCBpbXBlYWNoOwor6IK+IDwga2lkbmV5czsKK+mUrSA8IHNwaW5kbGU7CivojKwgPCBoYXJ2ZXN0Owor6LCkIDwgc2xhbmRlcjsKK+mSsyA8IHBpbmNlcnM7Civnnb0gPCBzdGFyaW5nOwor6ZixIDwgcGl0ZmFsbDsKK+axgCA8IHNhbmRiYXI7Civnp6QgPCBiYWxhbmNlOwor5pm+IDwgYWlyXC1kcnk7Civot5ogPCBzdGFnZ2VyOwor6I6eIDwgc21pbGluZzsKK+m4pSA8IHNlYWd1bGw7CivokYYgPCByZXNlcnZlOwor5rCiIDwgYW1tb25pYTsKK+W4pyA8IHBpY3R1cmU7Civkva8gPCBwcmV0ZW5kOwor54OsIDwgY2luZGVyczsKK+iajCA8IG95c3RlcnM7CivosIYgPCBwYXRpZW50Owor55meIDwgbGVwcm9zeTsKK+WVhCA8IHRvXC1wZWNrOwor54eOIDwgdG9cLWJ1cm47Civov7MgPCBwYXNzXC1ieTsKK+aBuCA8IHNhZG5lc3M7CivlkoIgPCB0b1wtc3VjazsKK+ebuSA8IHRvXC1kb3plOwor5L++IDwgc29cLXRoYXQ7CivosJogPCBwcm92ZXJiOwor5o64IDwgdG9cLWR1c3Q7CivljK4gPCB0b1wtbGFjazsKK+W5oSA8IHBlbm5hbnQ7Civlm7EgPCBjaGltbmV5Owor5bSCIDwgbGFvc2hhbjsKK+idjCA8IHRhZHBvbGU7Civpk4AgPCB1cmFuaXVtOwor5oybIDwgdGFuZ2xlZDsKK+e7ryA8IHNjYXJsZXQ7CivpuKggPCBidXN0YXJkOwor6JyXIDwgYVwtc25haWw7CivmgasgPCBpblwtcGFpbjsKK+iwgCA8IGZsYXR0ZXI7CivouK4gPCB0aXBcLXRvZTsKK+mmiiA8IHNwb2lsZWQ7CivpkpkgPCBjYWxjaXVtOwor5o2xIDwgcHV0XC1vZmY7Civokr8gPCBtdWd3b3J0Owor6YW2IDwgZW56eW1lczsKK+ihoiA8IGhpZ2h3YXk7Civno7ogPCBzdWxwaHVyOwor6LmpIDwgdG9cLWxpbXA7CivmtaMgPCB0b1wtd2FzaDsKK+eWuSA8IG1lYXNsZXM7CivpnaUgPCBkaW1wbGVzOwor5oSGIDwgYVwtZmF1bHQ7CivpuLUgPCBvc3RyaWNoOwor56qVIDwgc2xlbmRlcjsKK+i/qSA8IGJlXC1uZWFyOwor5L2wIDwgaHVuZHJlZDsKK+mSuSA8IGN5bWJhbHM7CivpnbwgPCB0YXJ0YXJzOwor54WyIDwgdG9cLWhlYXQ7CivnjZAgPCByb2VidWNrOwor5L2dIDwgcmlja2V0czsKK+iTnyA8IGNpcmNpdW07Civpu5wgPCBkaXNtaXNzOwor5pGIIDwgZXhjbHVkZTsKK+mjkyA8IGN5Y2xvbmU7Civog7EgPCBibGFkZGVyOwor6aW9IDwgZmVycnVsZTsKK+mmjyA8IGRpc3RpbGw7Civoi68gPCBiZW56ZW5lOwor5re8IDwgYVwtZmxvb2Q7Civpk7EgPCBpcmlkaXVtOwor6JGpIDwgZmxvd2VyczsKK+mAoSA8IHJldHJlYXQ7CivpgLYgPCB3aW5kaW5nOwor6JC4IDwgZG9nd29vZDsKK+aMnSA8IHRvXC1iZWF0Owor54a1IDwgZW50cm9weTsKK+eFqCA8IHRvXC1zdGV3Owor56CSIDwgYXJzZW5pYzsKK+aZgSA8IG1vcm5pbmc7Civlh4cgPCBkZXdkcm9wOwor5ZmYIDwgcG91dGluZzsKK+WUoyA8IGNoYXR0ZXI7CivpqqAgPCBjaGFyZ2VyOwor5oCEIDwgYW5ub3llZDsKK+mUgiA8IGxpdGhpdW07CivnlqUgPCBzY2FiaWVzOwor56iXIDwgZGFybmVsczsKK+a0riA8IGNsZWFuc2U7Civpha4gPCBrZXRvbmVzOwor6IWaIDwgYnV0dG9jazsKK+iFsSA8IHRlbmRvbnM7CivpppQgPCB0b1wtZmVlZDsKK+aQoCA8IHRvXC1kYXViOwor6YWhIDwgZmx1c2hlZDsKK+WRkiA8IHVuY2xlYXI7Civnl6cgPCBjaG9sZXJhOwor56ykIDwgYVwtYnJvb207Civpn6sgPCBzZWNyZXRlOwor5oCbIDwgZ3JpZXZlZDsKK+eatCA8IGNoYXBwZWQ7CivnnaIgPCBnYXplXC1hdDsKK+WhrCA8IHBsYXRlYXU7Civonq8gPCBuaXBwZXJzOwor542SIDwgbWFzdGlmZjsKK+ayhiA8IGFcLWZlcnJ5Owor5biUIDwgYVwtc2tpcnQ7CivoloUgPCB0b1wtd2VlZDsKK+iOtCA8IGxldHR1Y2U7Civmja0gPCB0b1wtb3BlbjsKK+iRrSA8IGJ1bHJ1c2g7CivlgKUgPCBib29yaXNoOwor5rq0IDwgYnJvbWluZTsKK+W7myA8IGFcLXN0b3JlOwor5o+4IDwgaGFuZGZ1bDsKK+S7tSA8IHNpbWlsYXI7Civpq4sgPCBoaXBib25lOwor6IKxIDwgZm9yZWFybTsKK+iajSA8IG11c3NlbHM7CivplZMgPCBnYWxsaXVtOwor6ZOLIDwgYmlzbXV0aDsKK+iDnSA8IGNhbGxvdXM7CivotY0gPCBwcmVzZW50Owor57+lIDwgdG9cLXNvYXI7CivonJ4gPCBncmFwc3VzOwor6LCgIDwgY291bnNlbDsKK+efrCA8IGFcLWR3YXJmOwor5rqyIDwgdXJpbmF0ZTsKK+iVuyA8IGJ1ZGRpbmc7CivpuYggPCBwZWxpY2FuOwor6ZWJIDwgY2FkbWl1bTsKK+ishyA8IHN0dXR0ZXI7CivmhrcgPCBwYWluZnVsOwor6LChIDwgcmlzZVwtdXA7CivopIogPCBjcmFtcGVkOwor6ZKNIDwgdGhvcml1bTsKK+awqiA8IGtyeXB0b247Civov64gPCB0b1wtcmlzZTsKK+iTjSA8IG1pbGZvaWw7Civonr0gPCBrYXR5ZGlkOwor5YmAIDwgc2hhcnBlbjsKK+i5gCA8IHRvXC1za2lwOwor6ZSOIDwgY2Flc2l1bTsKK+mShyA8IHl0dHJpdW07CivmsJogPCB0cml0aXVtOwor54q4IDwgbWFtbW90aDsKK+iPuCA8IHRvXC1mYWRlOwor6bKxIDwgaGVycmluZzsKK+i6niA8IHRvXC13YWxrOwor6ZOMIDwgbmlvYml1bTsKK+eVgCA8IHRvXC1naXZlOwor6YGYIDwgdG9cLW1lZXQ7Civms7cgPCByYWluaW5nOwor6JKhIDwgYnVyZG9jazsKK+mrjCA8IGtuZWVjYXA7Civps5kgPCBiaWdoZWFkOwor57W3IDwgY29uZmluZTsKK+eupiA8IGJlZFwtbWF0Owor55iYIDwgZmlzdHVsYTsKK+mVhCA8IGZlcm1pdW07CivnpYYgPCBvcm1hemRhOwor5augIDwgYVwtd2lkb3c7CivmkLQgPCBleHRyYWN0Owor5YOmIDwgdG9cLWhlaXI7Civnib3mia8gPCBpbnZvbHZlOwor55yL5b6X6KaLIDwgdmlzaWJsZTsKK+WpmuS6iyA8IHdlZGRpbmc7CivmqqLplrEgPCBpbnNwZWN0Owor6Ki06IumIDwgZ3J1bWJsZTsKK+acieizh+agvCA8IGVudGl0bGU7CivmmqvlgZwgPCBzdXNwZW5kOwor5q2h6L+O5YWJ6IeoIDwgd2VsY29tZTsKK+inuOinkiA8IGFudGVubmE7CivlnJPnn7PpoK0gPCBib3VsZGVyOwor57235LyRIDwgZ2l2ZVwtdXA7CivlpaflnLDliKkgPCBhdXN0cmlhOwor6KqN55yfIDwgZWFybmVzdDsKK+aZguWwmiA8IGZhc2hpb247CivniYjmnKwgPCB2ZXJzaW9uOwor5bqH6K23IDwgc2hlbHRlcjsKK+mFuOaApyA8IGFjaWRpdHk7Civnt6jnuoIgPCBjb21waWxlOwor5ZCb5Li7IDwgbW9uYXJjaDsKK+e4veeQhiA8IHByZW1pZXI7CivlpKnnhLYgPCBuYXR1cmFsOwor552h6KGjIDwgcGFqYW1hczsKK+aVtOeQhiA8IGFycmFuZ2U7CivnhZnojYkgPCB0b2JhY2NvOwor54em54ibIDwgZ2xpdHRlcjsKK+WPr+WLlSA8IG1vdmFibGU7CivmsLTmiYsgPCBtYXJpbmVyOwor5YKz6YGT6YOoIDwgbWlzc2lvbjsKK+WPo+WQgyA8IHN0YW1tZXI7CivlibXkuJbntIAgPCBnZW5lc2lzOwor6I+P6JitIDwgaG9sbGFuZDsKK+iPoOiPnCA8IHNwaW5hY2g7CivljYHmnIggPCBvY3RvYmVyOwor5Y2D5L2N5YWDIDwga2lsb2JpdDsKK+aPmuiBsuWZqCA8IHNwZWFrZXI7Civmr5vmr68gPCBibGFua2V0Owor566h55CG5ZOhIDwgbWFuYWdlcjsKK+mZveiHuiA8IGJhbGNvbnk7Civni4LllpwgPCBlY3N0YXN5Owor5rC45oGGIDwgZXRlcm5hbDsKK+iri+axgiA8IHJlcXVlc3Q7Civmtbfou43nuL3lj7jku6QgPCBhZG1pcmFsOwor5Ye66LWwIDwgdG9cLWZsZWU7CivogIHos4fmoLwgPCB2ZXRlcmFuOwor5pWI55uKIDwgYmVuZWZpdDsKK+mHjeWKmyA8IGdyYXZpdHk7Civph5HpioDloYogPCBidWxsaW9uOwor56K85a2XIDwgbnVtZXJhbDsKK+W8hOeijiA8IGNydW1ibGU7CivmspnkuIHprZogPCBzYXJkaW5lOwor5aeQ5aa5IDwgc2lzdGVyczsKK+ebrumMhCA8IGNhdGFsb2c7Civlv4PmhJsgPCBiZWxvdmVkOwor5byE55+tIDwgc2hvcnRlbjsKK+eEoeiZlSA8IG5vd2hlcmU7CivororljpogPCB0aGlja2VuOwor5aaW5oCqIDwgbW9uc3RlcjsKK+e3iue3iiA8IGNsb3NlbHk7CivpmrHnp4EgPCBwcml2YWN5Owor6Zec6Y21IDwgY3J1Y2lhbDsKK+Wnv+WLoiA8IHBvc3R1cmU7Civlronmj5Dnk5zls7YgPCBhbnRpZ3VhOwor5Zaq5b+D55eF54uCIDwgbHVuYXRpYzsKK+W8t+eDiCA8IGludGVuc2U7Civlpb3miLAgPCB3YXJsaWtlOwor5byE55q6IDwgY3J1bXBsZTsKK+ebuOmAoyA8IHRvXC1saW5rOwor5paH5rOVIDwgZ3JhbW1hcjsKK+WPpOS+hiA8IG9sZHRpbWU7CivlpKnmsKMgPCB3ZWF0aGVyOwor6YWS5bugIDwgYnJld2VyeTsKK+W+geacjSA8IGNvbnF1ZXI7CivntKLpgZMgPCByb3Bld2F5Owor6Zm457qMIDwgaW5cLXR1cm47CivpmrHnnp4gPCB0b1wtaGlkZTsKK+Wklua1gSA8IG91dGZsb3c7Civlt6XpoK0gPCBmb3JlbWFuOwor6YGg56uvIDwgZmFyXC1lbmQ7Civlh7rntI3lk6EgPCBjYXNoaWVyOwor5Yqg55ScIDwgc3dlZXRlbjsKK+mfs+S/oSA8IG1lc3NhZ2U7CivpmpznpJkgPCBiYXJyaWVyOwor6K2m5ZGKIDwgdG9cLXdhcm47CivnhLbogIwgPCBob3dldmVyOwor5aSn5qaCIDwgcm91Z2hseTsKK+aEm+mBiueOqSA8IHBsYXlmdWw7CivmoLzlrZDmo4nluIMgPCBnaW5naGFtOwor6Yu855C05a62IDwgcGlhbmlzdDsKK+mbu+axoCA8IGJhdHRlcnk7Civmr5TmlrkgPCBhbmFsb2d5Owor6KiI5pW46ICFIDwgY291bnRlcjsKK+mAgOiQvSA8IHN1YnNpZGU7CivororkuoIgPCB0dXJtb2lsOwor54ax5r2uIDwgdXBzdXJnZTsKK+ino+WJluWtuCA8IGFuYXRvbXk7CivmrLrnnp4gPCB0b1wtZm9vbDsKK+acieWtuOWVjyA8IGxlYXJuZWQ7CivorbDlg7kgPCBiYXJnYWluOwor57qW5byxIDwgZnJhZ2lsZTsKK+imi+itiSA8IHdpdG5lc3M7CivliqDnhrEgPCBoZWF0aW5nOwor5Y2K5ZCK5a2QIDwgZGFiYmxlcjsKK+mdnuW4uCA8IHVudXN1YWw7Civli4fmsKMgPCBjb3VyYWdlOwor5aSx5pWIIDwgdG9cLWZhaWw7CivlhYjpqYUgPCBwaW9uZWVyOwor54qv5Lq6IDwgY29udmljdDsKK+mbo+awkSA8IHJlZnVnZWU7CivpgbrniakgPCByZW1uYW50Owor5q+S5omTIDwgYmVhdFwtdXA7CivphpzkuosgPCBzY2FuZGFsOwor6ZmN57SaIDwgZGVncmFkZTsKK+eEpuezliA8IGNhcmFtZWw7CivmkZjopoEgPCBzdW1tYXJ5Owor6YCy56iLIDwgcHJvY2VzczsKK+aRlOinkiA8IHdyZXN0bGU7CivljIXmiY4gPCB3cmFwXC11cDsKK+W7oueJqSA8IHJ1YmJpc2g7CivlpKnoirHmnb8gPCBjZWlsaW5nOwor5q6Y5qCqIDwgc3R1YmJsZTsKK+WlveWlhyA8IGN1cmlvdXM7CivnmbvpmbggPCB0b1wtbGFuZDsKK+ebo+imliA8IG92ZXJzZWU7CivlvaLmiJAgPCB0b1wtZm9ybTsKK+e4veaVuCA8IGFcLXRvdGFsOwor5b635ZyLIDwgZ2VybWFueTsKK+e1see1sSA8IHRvdGFsbHk7CivlpKfnm6TlrZAgPCBwbGF0dGVyOwor54Sh56quIDwgZW5kbGVzczsKK+efruaelyA8IGNvcHBpY2U7CivlooPnlYwgPCBib3VuZHJ5Owor5LiN6IO95LiNIDwgaGF2ZVwtdG87CivlvITmraogPCBkaXN0b3J0Owor5Yaw6KKLIDwgaWNlXC1iYWc7Civlh7rlhaXlj6MgPCBnYXRld2F5Owor5raI6Ziy6ZqK5ZOhIDwgZmlyZW1hbjsKK+i1t+eauue0iyA8IHNocml2ZWw7CivplrHoroAgPCB0b1wtcmVhZDsKK+mDteW3riA8IHBvc3RtYW47CivpnaLlmq4gPCB0b1wtZmFjZTsKK+inuOeZvCA8IHRyaWdnZXI7CivngJ3pnZIgPCBhc3BoYWx0Owor5Y2z5L6/IDwgZXZlblwtaWY7CivlpKflu4ggPCBlZGlmaWNlOwor55m86YW1IDwgZmVybWVudDsKK+W5uOemjyA8IGJsZXNzZWQ7CivnhKHnm4ogPCBub1wtZ29vZDsKK+mYsuempiA8IGRlZmVuc2U7CivmrbfmmYIgPCB0b1wtbGFzdDsKK+aJmOWFkuaJgCA8IG51cnNlcnk7CivoibfntIXoibIgPCBjcmltc29uOwor54m56Kix54uAIDwgY2hhcnRlcjsKK+aLluabs+apnyA8IHRyYWN0b3I7CivniYjliLsgPCBjYXJ2aW5nOwor6YWN5YG2IDwgY29uc29ydDsKK+mgkOiogOWutiA8IHByb3BoZXQ7CivmlZHmj7QgPCB0b1wtc2F2ZTsKK+aXpeWHuiA8IHN1bnJpc2U7CivmsKPlgJkgPCBjbGltYXRlOwor57mD5bi2IDwgYmFuZGFnZTsKK+mAl+eVmSA8IHN0YXlcLWF0Owor5Yip55SoIDwgZXhwbG9pdDsKK+WNgOWNgCA8IHRyaXZpYWw7Civog4zlj5vogIUgPCB0cmFpdG9yOwor5b6u5YWJIDwgZ2xpbW1lcjsKK+avj+WknCA8IG5pZ2h0bHk7CivpgZXms5UgPCBpbGxlZ2FsOwor5Ye656efIDwgdG9cLXJlbnQ7Civpm4DmlpEgPCBmcmVja2xlOwor5aSn5L2/6aSoIDwgZW1iYXNzeTsKK+Wkp+iNieWOnyA8IHByYWlyaWU7CivniannkIblrbggPCBwaHlzaWNzOwor5pS25pOaIDwgcmVjZWlwdDsKK+WNgeWFrSA8IHNpeHRlZW47CivnuarlnJYgPCB0b1wtZHJhdzsKK+efpeaCiSA8IHRvXC1rbm93Owor54ax5oOFIDwgY29yZGlhbDsKK+WNgeWAjSA8IHRlbmZvbGQ7CivliZvmr5sgPCBicmlzdGxlOwor5qmr6IelIDwgcmVjbGluZTsKK+WIuua/gCA8IHByb3Zva2U7CivntpPmv58gPCBlY29ub215Owor57Sw56+AIDwgZGV0YWlsczsKK+aJs+S4jeWAkuWFkiA8IHR1bWJsZXI7CivmqILotqMgPCBkZWxpZ2h0Owor54is6J+y5YuV54mpIDwgcmVwdGlsZTsKK+e0oummrOijoSA8IHNvbWFsaWE7CivljYHkupQgPCBmaWZ0ZWVuOwor5aSa5aSnIDwgaG93XC1iaWc7CivlhbHomZUgPCBjb2V4aXN0Owor5pSq5ouMIDwgdG9cLXN0aXI7CivovJXovJUgPCBsaWdodGx5Owor5buj5pKt57ayIDwgbmV0d29yazsKK+W3tOagvOmBlCA8IGJhZ2hkYWQ7CivliKnmvaQgPCBwcm9maXRzOwor5aSW56eR6Yar55SfIDwgc3VyZ2VvbjsKK+ijnei8iSA8IHRvXC1sb2FkOwor5YyF5ZCrIDwgY29udGFpbjsKK+aTr+ajhCA8IGFiYW5kb247CivlnKjvuY3kuYvplpMgPCBiZXR3ZWVuOwor55m86KGMIDwgcHVibGlzaDsKK+eZveifuyA8IHRlcm1pdGU7CivpgbjmiYsgPCBhdGhsZXRlOwor5aSx5Y67IDwgdG9cLWxvc2U7CivovKroqaIgPCB0b1wtcG9sbDsKK+iKseiyuyA8IGV4cGVuc2U7CivokYnlrZAgPCBmb2xpYWdlOwor6I2J56i/IDwgb3V0bGluZTsKK+atpuW6qyA8IGFyc2VuYWw7CivpioDooYzmpa0gPCBiYW5raW5nOwor5byE5bmzIDwgZmxhdHRlbjsKK+WItuatoiA8IHRvXC1jdXJiOwor54Wn5pCsIDwgdG9cLWNvcHk7CivpvqEgPCB0b1wtYmxvdzsKK+ijnOiyvCA8IHN1YnNpZHk7CivpvbAgPCB0b1wtYml0ZTsKK+m9qSA8IHRvXC1jaGV3Owor5q2j5bi4IDwgcmVndWxhcjsKK+m8tyA8IGFcLW1vdXNlOwor5paH5YyWIDwgY3VsdHVyZTsKK+W0qemZtyA8IGZhbGxcLWluOwor6biRIDwgYVwtbGFyZ2U7Civlt7TntZAgPCBmYXduXC1vbjsKK+m3nyA8IHBob2VuaXg7CivptrogPCB3YWd0YWlsOwor6ba5IDwgdGhlXC1vd2w7CivmiYvmjqjou4ogPCB0cm9sbGV5Owor55q657SLIDwgd3JpbmtsZTsKK+asiuadliA8IHNjZXB0ZXI7Civnmb7okKwgPCBtaWxsaW9uOwor5aSa5Y2KIDwgY2hpZWZseTsKK+mAseacqyA8IHdlZWtlbmQ7CivptKsgPCBhXC1zbmlwZTsKK+WIneatpSA8IGluaXRpYWw7Civli57li5XogIUgPCBsYWJvcmVyOwor54Wp5oOxIDwgYWdvbml6ZTsKK+mymiA8IGFuY2hvdnk7CivnhanmgrYgPCBhbmd1aXNoOwor5bmr5rS+IDwgZmFjdGlvbjsKK+e+jua0suixuSA8IHBhbnRoZXI7CivooajpnaIgPCBzdXJmYWNlOwor57Of57OVIDwgdG9vXC1iYWQ7CivnuL3liYcgPCBwcm9maWxlOwor6Zqq5bO7IDwgYXJkdW91czsKK+WItuacjSA8IHVuaWZvcm07Civlg4/pioAgPCBzaWx2ZXJ5Owor6a2cIDwgbWVybWFpZDsKK+WJjeaPkCA8IHByZW1pc2U7Civntq3mjIEgPCB0b1wta2VlcDsKK+aOpeinuCA8IGNvbnRhY3Q7CivoirHltJfnn7MgPCBncmFuaXRlOwor5aSl5Ly0IDwgcGFydG5lcjsKK+mqqyA8IGJlXC1iZW50Owor6aqJIDwgcnVubmluZzsKK+aTgeaciSA8IHRvXC1oYXZlOwor5Zyo5YW25LitIDwgdGhlcmVpbjsKK+mpmSA8IFwoaG9yc2VcKTsKK+mpkiA8IGRhcHBsZWQ7CivmraTlpJYgPCBiZXNpZGVzOwor5by35Yi2IDwgZW5mb3JjZTsKK+i7iui8myA8IHZlaGljbGU7CivoiqzomK0gPCBmaW5sYW5kOwor5pW45L2NIDwgZGlnaXRhbDsKK+WNgeWEhOS9jeWFgyA8IGdpZ2FiaXQ7CivpoqsgPCBhXC1zdG9ybTsKK+Wft+eFpyA8IGxpY2Vuc2U7CivnhKHmlYggPCBpblwtdmFpbjsKK+mfoyA8IGJvd1wtYmFnOwor6Z+FIDwgaGFybmVzczsKK+e0meeFmSA8IGNpZ2FyZXQ7CivnnLrmnJsgPCBsb29rb3V0Owor6Zec54WnIDwgY29uY2VybjsKK+mbmiA8IGFcLWhlcm9uOwor5Yaw54mHIDwgYm9ybmVvbDsKK+WKh+WgtCA8IHRoZWF0ZXI7CivnhrHliIcgPCBmZXJ2ZW50Owor6Zm+IDwgaW5cLWZpbGU7CivkupTmnIjljYHkupTomZ8gPCBtYXlcLTFcLTU7CivpmZ4gPCBwcm9tb3RlOwor6Zi75pSUIDwgdG9cLXN0b3A7CivpmKcgPCBzbG9waW5nOwor5byf5YWEIDwgYnJvdGhlcjsKK+ecieavmyA8IGV5ZWJyb3c7CivooqvopKUgPCBiZWRkaW5nOwor5pO65a2QIDwgbWFsYXJpYTsKK+aTlOW/gyA8IGFueGlvdXM7Civouqvpq5TpmpzlrrMgPCBjcmlwcGxlOwor5YWs56S+IDwgY29tbXVuZTsKK+mTvSA8IHRlcmJpdW07Civpk7wgPCByaGVuaXVtOwor6ZOqIDwgaGFmbml1bTsKK+mTpSA8IHRodWxpdW07Civpk5EgPCByaG9kaXVtOwor6ZKsIDwgaG9sbWl1bTsKK+e1kOaenCA8IG91dGNvbWU7CivmrbLlhaUgPCByZXZlbnVlOwor5aKK5a2QIDwgY3VzaGlvbjsKK+ebo+a4rCA8IG1vbml0b3I7CivmorXluJ3lsqEgPCB2YXRpY2FuOwor5ZCM576p5a2XIDwgc3lub255bTsKK+mMtiA8IGFcLXdhdGNoOwor6ayi6KeSIDwgdGVtcGxlczsKK+mMgCA8IFwobWV0YWxcKTsKK+aPreekuiA8IHRvXC1zaG93Owor6YuKIDwgYVwtcG9rZXI7Civpi4IgPCBiaXRcLWN1cDsKK+eXlei3oSA8IHZlc3RpZ2U7CivliZ3lpaogPCBkZXByaXZlOwor6L6y5rCRIDwgcGVhc2FudDsKK+aEm+Wci+iAhSA8IHBhdHJpb3Q7Civlu6DllYYgPCBjb21wYW55Owor5aWz5Li75Lq6IDwgaG9zdGVzczsKK+eZveamtOefsyA8IGxldWNpdGU7CivkvaDoh6rlt7EgPCB0aHlzZWxmOwor5YaS54WZIDwgc21va2luZzsKK+ewoeimgSA8IGNvbmNpc2U7CivntIXmtbcgPCByZWRcLXNlYTsKK+WGsOaysyA8IGdsYWNpYWw7CivntJTmraMgPCBnZW51aW5lOwor5Yio5belIDwgcGxhbmluZzsKK+a0vue1puW3peS9nCA8IHRvXC10YXNrOwor5bm75b2xIDwgcGhhbnRvbTsKK+iHqueUsea0viA8IGxpYmVyYWw7Civmi5TpoIIgPCB0b3BwaW5nOwor55a+6LWwIDwgc2NhbXBlcjsKK+i9kiA8IGNoYXJpb3Q7Civlt7Lmu4UgPCBleHRpbmN0Owor57Gg572pIDwgZW52ZWxvcDsKK+i7siA8IGFcLXdoZWVsOwor6LuYIDwgd2FyXC1jYXI7CivonqLngavon7IgPCBmaXJlZmx5Owor6LqmIDwgdG9cLWp1bXA7Civoup0gPCB0b1wtcGFzczsKK+eZvuWIhuS5iyA8IHBlcmNlbnQ7CivprIbnt4rluLYgPCBlbGFzdGljOwor6JaU6JaH6Iqx6JW+IDwgcm9zZWJ1ZDsKK+mZhOWvhCA8IGVuY2xvc2U7CivnhKHoq5bkvZXkurogPCB3aG9ldmVyOwor6LesIDwgdG9cLXN0ZXA7Civlr4Tlrr/nlJ8gPCBib2FyZGVyOwor6LeVIDwgc2h1ZmZsZTsKK+i2tyA8IHRvXC1qb2x0Owor57Wo5biDIDwgZmxhbm5lbDsKK+WEmOeuoSA8IGRlc3BpdGU7CivpmLvlsLwgPCBkYW1waW5nOwor55Sc6bueIDwgZGVzc2VydDsKK+eZvOePviA8IHRvXC1maW5kOwor6LSHIDwgYWZmYWJsZTsKK+i0gyA8IHRvXC1lYXJuOwor6ZaD54iNIDwgZmxpY2tlcjsKK+iho+ijnSA8IGdhcm1lbnQ7Civos50gPCBwcmVpb3VzOwor5YKZ6Ki7IDwgcmVtYXJrczsKK+mXoeaYjiA8IGNsYXJpZnk7Civlj5fmraHov44gPCBwb3B1bGFyOwor6LGXIDwgY2xhbW91cjsKK+WIsOWgtCA8IHNob3dcLXVwOwor55ub5pyDIDwgcGFnZWFudDsKK+iujCA8IGFcLWZlYXN0Owor6KyzIDwgdG9cLXNpbmc7CivorIYgPCBiZWd1aWxlOwor6aOb5qmf5aC0IDwgYWlycG9ydDsKK+ipviA8IG5vaXNpbHk7Civlgb3orYkgPCBwZXJqdXJ5Owor6KmrIDwgdG9cLWJyYWc7CivoqYUgPCB0b1wtc2VsbDsKK+eFp+S6riA8IGxpZ2h0ZW47CivpmbPliJcgPCBkaXNwbGF5Owor6Zi/54i+5Y+K5Yip5LqeIDwgYWxnZXJpYTsKK+inoSA8IGFudGxlcnM7Civpmb3lgpggPCBwYXJhc29sOwor5bGx6aCCIDwgaGlsbHRvcDsKK+aOjOeuoSA8IGNvbnRyb2w7CivopZwgPCBmbHV0dGVyOwor6KWDIDwgY29tbWVuZDsKK+iklCA8IGNvbXBsZXg7CivoorogPCBob2xkXC11cDsKK+aToOWFpSA8IGludHJ1ZGU7CivoobUgPCBjaGVtaXNlOwor5qyK5YipIDwgYVwtcG93ZXI7CivoirHnkrAgPCBnYXJsYW5kOwor5YWs5rCRIDwgY2l0aXplbjsKK+W3tOaelyA8IGJhaHJhaW47Civlgb3oo50gPCB0b1wtZmFrZTsKK+WgheW8tyA8IHN0YXVuY2g7Civmlq/nk6bluIzoo6EgPCBzd2FoaWxpOwor6Iiq56m66YO15Lu2IDwgYWlybWFpbDsKK+S6nueJueiYreWkpyA8IGF0bGFudGE7CivpgLLpgIDlhanpm6MgPCBkaWxlbW1hOwor5bmz5Z2HIDwgYXZlcmFnZTsKK+Wvpumam+S4iiA8IGluXC1mYWN0Owor5Yi65YiAIDwgYmF5b25ldDsKK+ewuOeulSA8IGR1c3RwYW47CivlhYXmu78gPCBmdWxsXC1vZjsKK+W4s+W4mCA8IGRyYXBlcnk7Civolr0gPCBcKGdyYXNzXCk7CivolrYgPCB0b1wtYnVyeTsKK+WPjeaHieWghiA8IHJlYWN0b3I7CivolpMgPCBnaW5zZW5nOwor5r+A57SgIDwgaG9ybW9uZTsKK+ino+WJliA8IGRpc3NlY3Q7CivojorlmrQgPCBzdGF0ZWx5Owor5bmz5Y+wIDwgdGVycmFjZTsKK+iPqiA8IGhlbmJhbmU7Civoj6cgPCBzdGliZW5lOwor5ouN6LOjIDwgYXVjdGlvbjsKK+a7i+mkiiA8IG5vdXJpc2g7Civop6Plg7EgPCB0b1wtZmlyZTsKK+iOgCA8IHRvXC1mYXJtOwor5Yiw5L6GIDwgYXJyaXZhbDsKK+W6iuWBtCA8IGJlZHNpZGU7CivmqJnmp40gPCBqYXZlbGluOwor55ar6IuXIDwgdmFjY2luZTsKK+i2hem9oSA8IHRvb1wtb2xkOwor5Zug57SgIDwgZWxlbWVudDsKK+WGsOW3nSA8IGdsYWNpZXI7Civpl4rluqYgPCBicmVhZHRoOwor6IiTIDwgdG9cLWxpY2s7Civoh50gPCBiZVwtYmFyZTsKK+i9n+aTiiA8IGJvbWJhcmQ7CivohZYgPCBwZXB0b25lOwor5Yaw5bO2IDwgaWNlbGFuZDsKK+eVsOaVmeW+kiA8IGhlYXRoZW47CivlnJbnlasgPCBkcmF3aW5nOwor6ISdIDwgZGlzdGVuZDsKK+WIhuaekOS6uuWjqyA8IGFuYWx5c3Q7CivlhrDlsbEgPCBpY2ViZXJnOwor5aSW6YKm5Lq6IDwgZ2VudGlsZTsKK+enu+awkeiAhSA8IG1pZ3JhbnQ7CivkuI3lkInliKkgPCBvbWlub3VzOwor572WIDwga3d1a3llbDsKK+acgOS9jumZkOW6piA8IG1pbmltdW07CivnvLIgPCB0b1wtcmVlbDsKK+eZguazlSA8IHRoZXJhcHk7CivlibXpgKDogIUgPCBjcmVhdG9yOwor5bCW6aCCIDwgc3RlZXBsZTsKK+iFuemDqCA8IGFiZG9tZW47CivnmbzmlL4gPCBwcm92aWRlOwor55iL54uCIDwgbWFkbmVzczsKK+e3gSA8IHRvXC1qb2luOwor5o+S5puyIDwgZXBpc29kZTsKK+e1qiA8IG1hdHRpbmc7CivlhYvku4DnsbPniL4gPCBrYXNobWlyOwor5aWz6Iux6ZuEIDwgaGVyb2luZTsKK+a0u+WLleaIv+WxiyA8IHRyYWlsZXI7Civku4DkuIDlpYnnjbsgPCB0aXRoaW5nOwor5YWn576F55WiIDwgbmFpcm9iaTsKK+aKl+itsCA8IHByb3Rlc3Q7CivluLbli5UgPCB0b1wtc3B1cjsKK+WFrOW8jyA8IGZvcm11bGE7CivnrJMgPCB0b1wtY29tYjsKK+WiqOilv+WTpeS6uiA8IG1leGljYW47Civngb3lrrMgPCBzY291cmdlOwor6Iqx5p2fIDwgYm91cXVldDsKK+W3suWpmiA8IG1hcnJpZWQ7Civnl5Lnl5IgPCB0b1wtaXRjaDsKK+S9v+mrmOiytCA8IGRpZ25pZnk7CivkvovpoYwgPCBleGFtcGxlOwor56iHIDwgdG9cLWJpbmQ7CivlhKrmlrwgPCBzdXJwYXNzOwor57WC5LqOIDwgYXRcLWxhc3Q7CivliqDmpq7ogIDmlrwgPCBnbG9yaWZ5Owor56aCIDwgdG9cLXByYXk7Civkv6Hos7QgPCBjb25maWRlOwor6Iql5pyrIDwgbXVzdGFyZDsKK+WcsOizquWtuCA8IGdlb2xvZ3k7CivlhrfljbsgPCBjb29saW5nOwor5qGM6Z2iIDwgZGVza3RvcDsKK+WxpeihjCA8IGZ1bGZpbGw7CivnmofluJ0gPCBlbXBlcm9yOwor56KDIDwgXChzdG9uZVwpOwor56+H56ugIDwgd3JpdGluZzsKK+efnyA8ICcnXC1sYW5jZTsKK+eeryA8IHRvXC1wZWVwOwor5LiN5bmy5LiN5reoIDwgdW5jbGVhbjsKK+WvrOmXiiA8IGV4cGFuc2U7Civpl5zpjbXoqZ4gPCBrZXl3b3JkOwor5YWn5a65IDwgY29udGVudDsKK+ecvSA8IHRvXC1nYXplOwor55y0IDwgZGF6emxlZDsKK+S4ieS9jeS4gOmrlCA8IHRyaW5pdHk7CivlgrLnhLYgPCBsb2Z0aWx5Owor5be05p2+566hIDwgYmFzc29vbjsKK+WboOeCuiA8IGJlY2F1c2U7CivmqLXlpKsgPCB3b29kbWFuOwor5biD6ZqG6L+qIDwgYnVydW5kaTsKK+eVkCA8IHRvXC1maWxsOwor6Ieq56eBIDwgc2VsZmlzaDsKK+WFuOWeiyA8IHR5cGljYWw7CivojLblhbcgPCB0ZWFcLXNldDsKK+eUlCA8IGJpZ1wtamFyOwor57OK5aGXIDwgbXVkZGxlZDsKK+eTmyA8IHNjYXB0cmU7CivnkrogPCBhXC1jcmFjazsKK+eSiiA8IHJlZGRpc2g7CivokpnlpKfmi78gPCBtb250YW5hOwor5425IDwgYVwtaG91bmQ7Civngq3nlr3nl4UgPCBhbnRocmF4Owor542aIDwgc3BhbmllbDsKK+WFrOebiuS6i+alrSA8IHV0aWxpdHk7Civnr4Dnm64gPCBwcm9ncmFtOwor6ZG955+zIDwgZGlhbW9uZDsKK+WckuaelyA8IGdhcmRlbnM7Civni4kgPCBmb3hcLWN1YjsKK+i7jOaelSA8IHNsZWVwZXI7Civoi7HlnIsgPCBlbmdsYW5kOwor6aaW6aO+IDwgamV3ZWxyeTsKK+aXpeW4uOW3peS9nCA8IHJvdXRpbmU7Civlt6XljKAgPCBhcnRpc2FuOwor54avIDwgYnlcLWZpcmU7Civkv5jomZwgPCBjYXB0aXZlOwor54W7IDwgdG9cLXdhcm07Civoh4Lnq6AgPCBhcm1iYW5kOwor6Ieq55SxIDwgZnJlZWRvbTsKK+WPsuWvhueJuSA8IHNjaG1pdHQ7CivngbQgPCB0b1wtYmFrZTsKK+W4g+S4gSA8IHB1ZGRpbmc7CivngLkgPCB0b1wtYm9pbDsKK+WcjeaUuyA8IGJlc2llZ2U7Civllp3ph4cgPCBhY2NsYWltOwor5r6QIDwgYmlsbG93czsKK+eUn+iCsiA8IHRvXC1iZWFyOwor6LWk6YGTIDwgZXF1YXRvcjsKK+a9rCA8IGFcLXJhcGlkOwor5a+M5aOr6YCaIDwgZnVqaXRzdTsKK+eUt+aAp+imquWxrCA8IGtpbnNtYW47CivmuqYgPCBkcml6emxlOwor6ZaA5Y+jIDwgZG9vcndheTsKK+eDueiqv+ihkyA8IGNvb2tlcnk7CivosqjnianpgYvovLggPCBmcmVpZ2h0Owor5pCN5YK3IDwgdG9cLWhhcm07CivmuLwgPCByaXBwbGVzOwor5rinIDwgdG9cLWRyb3A7CivouqvmnZAgPCBzdGF0dXJlOwor6Iux5YuHIDwgYnJhdmVyeTsKK+WNsOWIt+iAhSA8IHByaW50ZXI7Civmt7flkIjniakgPCBtaXh0dXJlOwor6Zi/5YWL5YCrIDwgYWNoZXJvbjsKK+a2tiA8IHRvXC1zcGl0Owor5raSIDwgbWVhbmRlcjsKK+a0uCA8IHNwYXJrbGU7CivniZnnp5HphqvnlJ8gPCBkZW50aXN0Owor5ZWP6aGMIDwgcHJvYmxlbTsKK+WvhOmAgSA8IHRvXC1zZW5kOwor5YK+5pacIDwgaW5jbGluZTsKK+mDoeayu+WuieWumCA8IHNoZXJpZmY7CivnhKHnpZ7oq5YgPCBhdGhlaXNtOwor5rGLIDwgdG9cLXBvdXI7CivkuI3li5XmkJYgPCB1bm1vdmVkOwor5rC8IDwgdG9cLXNpbms7Civlm7Dmk74gPCBwZXJwbGV4Owor5rCVIDwgcHJvdGl1bTsKK+aKvOaymem+jSA8IGFic2Fsb207CivmioTntrIgPCBkaXBcLW5ldDsKK+atnCA8IGZ1cmlvdXM7CivlmrTmraMgPCBzdGVybmx5Owor5YKs55yg5puyIDwgbHVsbGFieTsKK+S6nuS8r+aLiee9lSA8IGFicmFoYW07CivmiJboqLEgPCBwZXJoYXBzOwor5qau5bm4IDwgaG9ub3JlZDsKK+WFi+e+heWcsOS6niA8IGNyb2F0aWE7CivppqzouawgPCBzdGlycnVwOwor5qmGIDwgd2l0aG91dDsKK+WVhumaiiA8IGNhcmF2YW47CivniZvpoK3niqwgPCBidWxsZG9nOwor5a246ZmiIDwgY29sbGVnZTsKK+WDteWxgCA8IGltcGFzc2U7CivmjZXmiYsgPCBjYXRjaGVyOwor5qaiIDwgYVwtZnJhbWU7CivmipXnpaggPCB0b1wtdm90ZTsKK+S9v+mtlOazlSA8IGNvbmp1cmU7CivlhajnpZ7ngYzms6ggPCByYXB0dXJlOwor5qSXIDwgXChwbGFudFwpOwor5a6J5LmD6L+RIDwgYW5hbGdpbjsKK+ibi+eZveizqiA8IHByb3RlaW47CivlsIjnp5HpmaLmoKEgPCBhY2FkZW15Owor6KGM5p2OIDwgbHVnZ2FnZTsKK+aPkOWIsCA8IG1lbnRpb247CivpqZXnn5wgPCBoYXVnaHR5Owor6Iqd5Yqg5ZOlIDwgY2hpY2FnbzsKK+WFq+W4tumtmiA8IG9jdG9wdXM7CivmtJfooaPlupcgPCBsYXVuZHJ5Owor5L+h566xIDwgbWFpbGJveDsKK+aevCA8IGFcLXRhYmxlOwor5p6TIDwgY2FwaXRhbDsKK+aduCA8IHRvXC1raWxsOwor5py+IDwgdG9cLWJ1bXA7CivmpoLlv7UgPCBjb25jZXB0Owor5LiN5b6X5YuBIDwgYXdrd2FyZDsKK+WcsOWdgCA8IGFkZHJlc3M7CivlrZTpm4AgPCBwZWFjb2NrOwor5ruR56i9IDwgY29taWNhbDsKK+aVviA8IHRvXC1ydWxlOwor5pWvIDwgdG9cLWRlZnk7CivmlZwgPCBmaWxsXC11cDsKK+S9juiqvyA8IGxvd1wta2V5Owor5pO4IDwgdG9cLWhvbGQ7CivmjInmmYIgPCBvblwtdGltZTsKK+aRoCA8IGdlbmVyYWw7CivplbfpoLjpub8gPCBnaXJhZmZlOwor5omT566XIDwgdG9cLXBsYW47Civmjq8gPCBvcHByZXNzOwor5bCP57WEIDwgYVwtZ3JvdXA7CivmjI0gPCBjb2xsYXRlOwor5aWz6auY6Z+zIDwgc29wcmFubzsKK+aMieaRqSA8IG1hc3NhZ2U7CivmioggPCB0b1wtYmVuZDsKK+aJvSA8IHRvXC1tb3ZlOwor6LOq6YePIDwgcXVhbGl0eTsKK+evgOaXpSA8IGhvbGlkYXk7Civmr5TliKnmmYIgPCBiZWxnaXVtOwor5LiN6Kq/5ZKMIDwgZGlzY29yZDsKK+aHsCA8IGJlXC1nbGFkOwor5oerIDwgZW5yYWdlZDsKK+aciemZsOW9sSA8IHNoYWRvd3k7Civmh5sgPCBhbGFybWVkOwor5oeFIDwgYmFzaGZ1bDsKK+eUoueJqSA8IHByb2R1Y3Q7CivkvpvntaYgPCBmdXJuaXNoOwor5oOjIDwgb3ZlcmFsbDsKK+aDhyA8IGJlXC1raW5kOwor6Iie5byEIDwgdG9cLXdhdmU7CivmjIfpl5znr4AgPCBrbnVja2xlOwor5omT56KOIDwgc2hhdHRlcjsKK+aBiSA8IG1lYW5pbmc7CivlnKjliY0gPCBmb3J3YXJkOwor57Wm6IiH6LOH5qC8IDwgcXVhbGlmeTsKK+S4g+aciOS4ieWNgeiZnyA8IGp1bHlcLTMwOwor5p2O6bWsIDwgbGlcLXBlbmc7CivlronoqK0gPCBpbnN0YWxsOwor6LKs6ZujIDwgY2Vuc3VyZTsKK+WztuW2vCA8IGlzbGFuZHM7Civmn6Xoqr8gPCBpbnF1aXJ5Owor5L6/55uGIDwgYmVkXC1wYW47CivooLHmg5EgPCBlbmNoYW50Owor5buMIDwgdW5pY29ybjsKK+a7sua8jyA8IHNlZXBhZ2U7CivlubPluLjml6UgPCB3ZWVrZGF5Owor6IGv6YKmIDwgZmVkZXJhbDsKK+a8guaziiA8IGRyaWZ0ZXI7CivlhLLol4/lrqQgPCBzdG9yYWdlOwor5Zm45pW4IDwgdG9ubmFnZTsKK+WMiOeJmeWIqSA8IGh1bmdhcnk7CivllYboqI4gPCBkaXNjdXNzOwor6aaZ6I+cIDwgcGFyc2xleTsKK+a1t+muriA8IHNlYWZvb2Q7Civoh6XmiL8gPCBiZWRyb29tOwor5Y2w5Zyw5a6J6YKjIDwgaW5kaWFuYTsKK+WDpeWAliA8IGx1Y2tpbHk7CivlgrPllq4gPCBsZWFmbGV0Owor5LiN5b6X6ICM55+lIDwgdW5rbm93bjsKK+Wik+iqjOmKmCA8IGVwaXRhcGg7CivpppnohbggPCBzYXVzYWdlOwor6Iiq56m65YWs5Y+4IDwgYWlybGluZTsKK+WqniA8IGF0XC1lYXNlOwor6LWw56eBIDwgc211Z2dsZTsKK+acieiAkOS5heWKmyA8IGR1cmFibGU7CivkuIDmnIPlhZIgPCBhXC13aGlsZTsKK+S4jemBk+W+tyA8IGltbW9yYWw7Civpvo3onaYgPCBsb2JzdGVyOwor54OP5YWL6JitIDwgdWtyYWluZTsKK+WkqumZvem7keWtkCA8IHN1bnNwb3Q7CivlnKjlrqTlhacgPCBpbmRvb3JzOwor5aSjIDwgYVwtZHJlYW07Civlo50gPCBhXC1tb3VuZDsKK+W4jOS8r+S+huabuCA8IGhlYnJld3M7CivloZMgPCBwbGFzdGVyOwor5qSw5a2QIDwgY29jb251dDsKK+mRkuaIkiA8IHdhcm5pbmc7CivloIQgPCBwYXJhcGV0Owor5Luj6KmeIDwgcHJvbm91bjsKK+WflyA8IGFcLXdoYXJmOwor5Li56bqlIDwgZGVubWFyazsKK+S4jembouWFkiA8IG5vdFwtYmFkOwor5ZyVIDwgbGlicmFyeTsKK+WcgiA8IHBpZ1wtc3R5Owor55Wr5buKIDwgZ2FsbGVyeTsKK+eZveibi+eZvSA8IGFsYnVtaW47CivlmoogPCB0b1wtcGFudDsKK+S4u+W4reiHuiA8IHJvc3RydW07CivooZ3lipsgPCBpbXB1bHNlOwor6aGe5Zu66YaHIDwgc3Rlcm9pZDsKK+WWpSA8IGFcLXBsYWNlOwor5a6M576OIDwgcGVyZmVjdDsKK+WxleacmyA8IG91dGxvb2s7CivoqZXorbDmnIMgPCBjb3VuY2lsOwor5pyJ5biM5pybIDwgaG9wZWZ1bDsKK+eriuebnCA8IGJ1cmdsYXI7CivllJ4gPCB0b1wtZ2FzcDsKK+WUhSA8IGFcLXNvdW5kOwor5a6256a9IDwgcG91bHRyeTsKK+WCt+WvkueXhyA8IHR5cGhvaWQ7Civlkr4gPCBhXC1ub2lzZTsKK+WSiSA8IGFuXC1lY2hvOwor5aWn5p6X5Yy55YWLIDwgb2x5bXBpYzsKK+WIsOmCo+ijoSA8IHRoaXRoZXI7Civlkb8gPCB0b1wteWF3bjsKK+WRrCA8IHRvXC1yZXN0Owor5Lqe5Yip5qGR6YKjIDwgYXJpem9uYTsKK+WRjCA8IHRvXC1jYWxsOwor56m657y6IDwgdmFjYW5jeTsKK+acgOmrmCA8IGhpZ2hlc3Q7CivnlavlrrYgPCBwYWludGVyOwor6aSK6ICB6YeRIDwgcGVuc2lvbjsKK+eWsuWLniA8IGZhdGlndWU7CivljbIgPCBlbWluZW50Owor5YynIDwgYVwtdHJ1bms7CivkuI3pvZIgPCBkZXNwaXNlOwor5oqV5omLIDwgcGl0Y2hlcjsKK+a1t+mCiiA8IHNlYXNpZGU7Civok4vkuJblpKrkv50gPCBnZXN0YXBvOwor5ZmB5b+DIDwgdG9cLWhhdGU7CivlsIvmsYIgPCB0b1wtc2VlazsKK+WEtiA8IHZhbGlhbnQ7CivlsI/lhorlrZAgPCBib29rbGV0Owor5YSmIDwgbWlsbGluZzsKK+WEpCA8IG9uXC1kdXR5Owor5pyq5q2m6KOdIDwgdW5hcm1lZDsKK+WZtOWiqCA8IGlua1wtamV0Owor5pyJ6ZmQIDwgbGltaXRlZDsKK+aJmOaetiA8IGJyYWNrZXQ7CivkvocgPCBhXC1jbGFzczsKK+S8gCA8IGV4Y2l0ZWQ7CivmnIDplbcgPCBsb25nZXN0Owor5Lm/IDwgdG9cLWN1cmU7CivkuawgPCB0b1wtaGFuZzsKK+aJs+aJiyA8IHNwYW5uZXI7Civkvr/mlrwgPCBlYXN5XC10bzsKK+a1t+ixmiA8IGRvbHBoaW47CivmhJvorbcgPCBjaGVyaXNoOwor5LapIDwgdG9cLWduYXc7CivmhJvlsYvlj4rng48gPCBsb3ZlXC1tZTsKK+evgOWEiSA8IHRocmlmdHk7CivnpZ7pq5QgPCBnb2RoZWFkOwor5LSnIDwgdmVuaXNvbjsKK+S4remWkyA8IGJldHdpeHQ7Civksp0gPCBwb21mcmV0Owor5LKUIDwgYVwtd2hhbGU7CivmhJ/oprogPCB0b1wtZmVlbDsKK+acieW5q+WKqSA8IGhlbHBmdWw7CivksYkgPCB0aGVcLWVlbDsKK+SwniA8IHRvXC1jb29rOwor5a2k56uLIDwgaXNvbGF0ZTsKK+SuvCA8IHBpZWJhbGQ7CivnlbbliY0gPCBjdXJyZW50Owor5K6mIDwgdW50YW1lZDsKK+WxpOWtkCA8IHN0cmF0dW07CivkraAgPCBhXC1zbmFjazsKK+eUqOWtlyA8IGRpY3Rpb247CivkrI4gPCBob3RcLWFpcjsKK+mYv+aLieS8ryA8IGFyYWJpYW47Civkq5ggPCBoZWFsdGh5Owor5L+D5oiQIDwgcHJvY3VyZTsKK+WuieeTvyA8IGFtcG91bGU7CivkqqMgPCBzbWFzaGVkOwor6Iez5LiKIDwgc3VwcmVtZTsKK+SpsyA8IHRhbm5pbmc7CivkqZQgPCB0aGVcLWhlbTsKK+S7pemmrOWFp+WIqSA8IGVtYW51ZWw7CivkqJ4gPCB0b1wtcmFpbjsKK+S4gOmghSA8IGFuXC1pdGVtOwor5KiCIDwgYVwtY2hpY2s7Civkp58gPCB0b1wtc2tpbjsKK+mYv+aLieS4gSA8IGFsYWRkaW47CivkuI3oprrlr58gPCB1bmF3YXJlOwor5riF55yfIDwgaXNsYW1pYzsKK+SmiyA8IHRvXC1ncm93Owor5Zac5q2hIDwgdG9cLWxpa2U7CivnlJjol43oj5wgPCBjYWJiYWdlOwor5KSfIDwgYVwtc3BhZGU7CivkuIrploAgPCBkcm9wXC1pbjsKK+SitiA8IGFcLXN0YXRlOwor5a2455SfIDwgc3R1ZGVudDsKK+Wls+S/rumBkyA8IGNvbnZlbnQ7CivkopkgPCB0b1wtcnVpbjsKK+eNjumHkSA8IHByZW1pdW07Civopo/lioPkurrlk6EgPCBwbGFubmVyOwor5KC8IDwgdG9cLXdlYXI7CivkurrnvqQgPCBhXC1jcm93ZDsKK+WBh+S9vyA8IHN1cHBvc2U7Civnmbznj77niakgPCBmaW5kaW5nOwor5pu06YGgIDwgZmFydGhlcjsKK+WcqOS4i+aWuSA8IGJlbmVhdGg7CivpqZrlmocgPCBob3JyaWZ5Owor5JyWIDwgdG9cLXRhbGs7CivknIkgPCB0b1wtamVzdDsKK+SbtyA8IHRvXC1vYmV5Owor5JuwIDwgc2tldGNoeTsKK+iSuOaxveapnyA8IHN0ZWFtZXI7CivkmrEgPCBob25lc3R5Owor5JquIDwgdGhpY2tlcjsKK+SalyA8IHRvXC1saWZ0Owor5JqPIDwgdG9cLWxvdmU7CivkuJnpha4gPCBhY2V0b25lOwor5bCP54CR5biDIDwgY2FzY2FkZTsKK+aFiOWWhOapn+aniyA8IGNoYXJpdHk7CivnlLfmgKflsIrnqLEgPCBlc3F1aXJlOwor5JixIDwgd2VhbHRoeTsKK+SYoCA8IGdyZWF2ZXM7CivkmJ0gPCBhXC1zaGlydDsKK+esrOWNgeS6jCA8IHR3ZWxmdGg7CivkuI3kuInkuI3lm5sgPCBkdWJpb3VzOwor5omN5bmyIDwgYWJpbGl0eTsKK+mmmeawtCA8IHBlcmZ1bWU7CivpppnmsKMgPCBpbmNlbnNlOwor5JaaIDwgYVwtdGlnZXI7CivmiJDmlocgPCB3cml0dGVuOwor5JS6IDwgaGVhZGluZzsKK+WQkOmcsiA8IHRvXC10ZWxsOwor5pyq5rG65a6aIDwgcGVuZGluZzsKK+i2leW/qyA8IGF0XC1vbmNlOwor5pyD6K2wIDwgbWVldGluZzsKK+mjm+iIuSA8IGFpcnNoaXA7Civmm7zosLcgPCBiYW5na29rOwor5JK2IDwgdGhlXC1za3k7CivliJfnjovntIDkuIsgPCAyXC1raW5nczsKK+WIl+eOi+e0gOS4iiA8IDFcLWtpbmdzOwor5JGnIDwgYVwtc2hvcnQ7CivkkL8gPCBnaXp6YXJkOwor5JC3IDwgcGF1bmNoeTsKK+SQtCA8IGx1bWJhZ287CivkkKsgPCBvYmVzaXR5Owor5I+WIDwgYVwtd291bmQ7Civkj4cgPCB0b1wtaGVhcjsKK+SOqSA8IHRvXC10aWxsOwor5peF6YGK6ICFIDwgdG91cmlzdDsKK+S4u+ipniA8IHN1YmplY3Q7Civmsonpu5ggPCBzaWxlbmNlOwor5omT5a2XIDwgdG9cLXR5cGU7Civlj5foqJfkurogPCB0cnVzdGVlOwor5IyYIDwgdG9cLWtuaXQ7CivkjJQgPCB0b1wtc29hazsKK+SMgSA8IGFcLXBsZWF0Owor5IuOIDwgdG9cLW1lbmQ7Civkip8gPCBhZG9ybmVkOwor5IqYIDwgYVwtZ3JhaW47CivkiaIgPCBhXC1zaWV2ZTsKK+SJjiA8IGFcLWNvdmVyOwor5IisIDwgYVwtc21hbGw7CivlrrTmnIMgPCBiYW5xdWV0Owor5IeUIDwgYXRyb3BoeTsKK+SHjSA8IHRvXC13YWl0Owor6aCY6ZqKIDwgY2FwdGFpbjsKK+aciOidlSA8IGVjbGlwc2U7CivkhI8gPCBiaXphcnJlOwor5YCJ5L+DIDwgaHVycmllZDsKK+iCpeaygyA8IGZlcnRpbGU7CivkgoAgPCB0b1wtd2luazsKK+WPrOmbhiA8IGNvbnZlbmU7CivkgZsgPCB0b1wtbG9vazsKK+elnui3oSA8IG1pcmFjbGU7Civkvb/lvpIgPCBhcG9zdGxlOwor4763IDwgdG9cLWFjaGU7CivjvqAgPCBhXC1mZXZlcjsKK+O+nyA8IHJlbGFwc2U7CivjvpggPCBhaWxtZW50Owor476VIDwgYVwtY2hpbGw7CivjvoYgPCBlY2R5c2lzOwor476FIDwgZGVmZWN0czsKK+mZuOi7jeS4iuagoSA8IGNvbG9uZWw7CivjvZYgPCBhXC1odW1hbjsKK+O8vCA8IGFcLWxhZGxlOwor47y3IDwgYVwtYmFzaW47CivohLnlpKcgPCBzd29sbGVuOwor47yXIDwgYVwtYnJpY2s7CivomZvmp4vlsI/oqqogPCBmaWN0aW9uOwor5a+25a+2IDwgZGFybGluZzsKK+O6siA8IGJ1dHRvbnM7CivjuoogPCBhXC1iZWFzdDsKK+O5niA8IHRvXC1iYXJrOwor47mbIDwgYVwtdGFtZWQ7CivnrYnlgJkgPCB3YWl0aW5nOwor6LeM5YiwIDwgdG9cLWZhbGw7Civmh7rmgpQgPCBjb25mZXNzOwor47eTIDwgYVwtdG9yY2g7Civjt4kgPCB0b1wtaXJvbjsKK+aItuWkliA8IG91dGRvb3I7Civnn7PljZflsawgPCBoZWF0aGVyOwor5a+s5a65IDwgbGVuaWVudDsKK+O1kiA8IGJvaWxpbmc7CivjtYwgPCB0b1wtZmxvdzsKK+O1hSA8IGFcLXJpdmVyOwor6IO95bm5IDwgY2FwYWJsZTsKK+S4jeimiyA8IG5vdFwtc2VlOwor47SHIDwgdG9cLXdhZGU7Civjs60gPCBzcGl0dGxlOwor47OsIDwgYW5cLWVkZHk7CivkvY/miL8gPCBob3VzaW5nOwor47OZIDwgYVwtYnJvb2s7CivmiLDlo6sgPCBmaWdodGVyOwor47KCIDwgdG9cLXB1c2g7CivjsZYgPCB0b1wtc3RheTsKK+OxjCA8IHRvXC10YWtlOwor57+h57+gIDwgZW1lcmFsZDsKK+WwiuWatCA8IGRpZ25pdHk7CivoloTng6TppIUgPCBwYW5jYWtlOwor46+TIDwgYVwtY291Y2g7Civjr5AgPCB0dWJ1bGFyOwor46+LIDwgYVwtY2hlc3Q7Civlr4bluqYgPCBkZW5zaXR5Owor466bIDwgYVwtc3Bvb247CivjraogPCBhXC1zaHJ1YjsKK+avkuiNieWQjSA8IGhlbWxvY2s7Civjq7QgPCB0b1wtcm9hcjsKK+OrnSA8IHRoZVwtc3VuOwor5Zyw5bmz57eaIDwgaG9yaXpvbjsKK+WwluWPqyA8IHNjcmVlY2g7CivjqbAgPCB0b1wtc3RhYjsKK+WlueiHquW3sSA8IGhlcnNlbGY7CivlronmkqsgPCBwbGFjYXRlOwor46i3IDwgdG9cLXdpcGU7CivpoILph50gPCB0aGltYmxlOwor46iwIDwgdG9cLXR1cm47CivmoLjlrZAgPCBudWNsZWFyOwor5LyR5pyDIDwgYWRqb3VybjsKK+iyoueJqSA8IHRyaWJ1dGU7Civjp7sgPCBhXC10aG9ybjsKK+OmuSA8IGFcLXNwZWFyOwor46atIDwgdG9cLXBpdHk7Civpo5vnm6QgPCBmcmlzYmVlOwor5reY5rCjIDwgbmF1Z2h0eTsKK+OlkiA8IGNvcnJ1cHQ7CivpqI7lhbUgPCBjYXZhbHJ5Owor46S6IDwgYmx1cnJlZDsKK+OjtyA8IHdhbGtpbmc7Civnn67lo6/ntKAgPCBjeWNvY2VsOwor5aSW56eR5omL6KGTIDwgc3VyZ2VyeTsKK+OhuCA8IGFcLWhvdXNlOwor56ys5LiDIDwgc2V2ZW50aDsKK+OhqCA8IGFcLWxhYmVsOwor46GYIDwgc2NyZWVuczsKK+OhkyA8IGRyYXdlcnM7CivjoYIgPCByZW1haW5zOwor5L+D5L2/IDwgc3B1clwtb247CivpoqjnrrEgPCBiZWxsb3dzOwor45+nIDwgYVwtY2xpZmY7CivmtbTnm4YgPCBiYXRodHViOwor4566IDwgYVwtdHJpYmU7CivnvqToirEgPCBibG9zc29tOwor5ZCE6Imy5ZCE5qijIDwgZGl2ZXJzZTsKK+S9m+e+heijoemBlCA8IGZsb3JpZGE7CivppqzlrZAgPCBjb21tb2RlOwor6LaK5Y2XIDwgdmlldG5hbTsKK+WQkeS9leiZlSA8IHdoaXRoZXI7CivjnJMgPCB3b21hbmx5Owor56m65oiwIDwgYWlyXC13YXI7CivmiJDlnIggPCB3cmVhdGhlOwor45yHIDwgdW5oYXBweTsKK+aHieW+lyA8IGRlc2VydmU7CivmiLDli50gPCBwcmV2YWlsOwor45qiIDwgYVwtc2xhdmU7CivkuI3oi58gPCBub3RcLWxheDsKK+exg+adv+eQgyA8IHJlYm91bmQ7CivkvY/lrr8gPCBsb2RnaW5nOwor45mUIDwgYVwtZmVuY2U7CivjmY8gPCBjYXZlcm5zOwor6K6K6YG3IDwgY2hhbmdlczsKK+OYqSA8IHRvXC1tYXRlOwor45eDIDwgdGhlXC1saXA7CivlsIHlhaUgPCBpbmNsb3NlOwor6aas5YWL5oCd5Li7576pIDwgbWFyeGlzbTsKK+OVnyA8IHRvXC1zaWduOwor45WeIDwgYVwtYnJ1c2g7CivjlL8gPCBhXC10YWxseTsKK+OUoSA8IGdyZWF0bHk7CivjlIIgPCB0b1wtcGFyZTsKK+OTsCA8IHRvXC1yaXZlOwor45OfIDwgdG9cLXBlZWw7CivjkrQgPCB0b1wtY29tZTsKK+OSpiA8IHB1cHBldHM7Civogb3lvpfoposgPCBhdWRpYmxlOwor6YeO6LKTIDwgd2lsZGNhdDsKK+OSlSA8IHVueWllbGQ7CivjkpEgPCBncm93XC11cDsKK+S7o+abvyA8IGluc3RlYWQ7CivjkYUgPCB0b1wtbWFrZTsKK+ahiOWNtyA8IHJlY29yZHM7Civnmb7mhZXlpKcgPCBiZXJtdWRhOwor5Luj5pW4IDwgYWxnZWJyYTsKK+acieainee0iyA8IHN0cmlwZWQ7CivmnKjnk6YgPCBzaGluZ2xlOwor5oiQ5YqfIDwgc3VjY2VzczsKK+WuieaBr+aXpSA8IHNhYmJhdGg7CivkuK3nq4sgPCBuZXV0cmFsOwor5LiW57SAIDwgY2VudHVyeTsKK+S9juWcsCA8IGxvd2xhbmQ7CivmtbfmvqEgPCBzZWF3ZWVkOwor5LuK5pmaIDwgdG9uaWdodDsKK+ijgee0meapnyA8IHRyaW1tZXI7Civlk4DmsYIgPCBlbnRyZWF0Owor5rSX56auIDwgYmFwdGlzbTsKK+Wmk+mZoiA8IGJyb3RoZWw7CivkuI3nrYkgPCB0b1wtdmFyeTsKK+WFrOeIteWkq+S6uiA8IGR1Y2hlc3M7CivlkI3nvqkgPCB0aXR1bGFyOwor5raI5qW1IDwgcGFzc2l2ZTsKK+awtOmKgCA8IG1lcmN1cnk7CivmmojoiLkgPCBzZWFzaWNrOwor5oe35pW15oSPIDwgaG9zdGlsZTsKK+iBt+W3pSA8IHdvcmtlcnM7CivlrZ/lrZAgPCBtZW5jaXVzOwor5a6Y5Y+4IDwgbGF3c3VpdDsKK+mdnumboyA8IHJlcHJvb2Y7CivmsLjpgaAgPCBmb3JldmVyOwor6YWs6LyJIDwgcGF5bG9hZDsKK+iBveWvqyA8IGRpY3RhdGU7CivomafmkI0gPCBkZWZpY2l0Owor6bq754WpIDwgdHJvdWJsZTsKK+mYv+eIvuW3tOWwvOS6niA8IGFsYmFuaWE7Civlvbzlvpflvozmm7ggPCAyXC1wZXRlcjsKK+WJteeri+iAhSA8IGZvdW5kZXI7Civntq3ku5blkb0gPCB2aXRhbWluOwor6K2P6KqaIDwgY3luaWNhbDsKK+eiuuiqjSA8IGNvbmZpcm07Civoo53nva7niakgPCBmaXh0dXJlOwor546L5qyKIDwgcm95YWx0eTsKK+eOu+WIqee2reS6niA8IGJvbGl2aWE7CivkvIHlnJYgPCBhdHRlbXB0Owor5Y+D6K2w5ZOhIDwgc2VuYXRvcjsKK+e+heebpCA8IGNvbXBhc3M7CivmmJ/mnJ/kuowgPCB0dWVzZGF5Owor54++5a+mIDwgcmVhbGl0eTsKK+izquWcsCA8IHRleHR1cmU7Civpn7PmqILmnIMgPCBjb25jZXJ0Owor6LSK5YqpIDwgc3BvbnNvcjsKK+W/oOiqoCA8IGRldm90ZWQ7Civpq5TogrLloLQgPCBzdGFkaXVtOwor6YSt6YeNIDwgc2VyaW91czsKK+WNsOWDj+a3seWIuyA8IGltcHJlc3M7CivljYrpgJQgPCBoYWxmd2F5Owor5aW96L2JIDwgaW1wcm92ZTsKK+aDoeajjSA8IHZpbGxhaW47CivmhJvniL7omK0gPCBpcmVsYW5kOwor6YCD5Lqh6ICFIDwgcnVuYXdheTsKK+m8u+WtlCA8IG5vc3RyaWw7Civlk4DmgJ0gPCBwZW5zaXZlOwor5oyH5bCO5pWZ5o6IIDwgYWR2aXNlcjsKK+eMlueNlyA8IHJhbXBhbnQ7CivmnpzlnJIgPCBvcmNoYXJkOwor5peB6YKKIDwgbGF0ZXJhbDsKK+WSr+WSr+eskSA8IGNodWNrbGU7CivnlJ/nianlrbggPCBiaW9sb2d5Owor6aOb5b2IIDwgbWlzc2lsZTsKK+iBveWKmyA8IGhlYXJpbmc7Civkvb/mhqTmhaggPCBvdXRyYWdlOwor5pel6KqMIDwgam91cm5hbDsKK+WxheS9j+aWvCA8IGluaGFiaXQ7CivlpJbpnaIgPCBvdXRzaWRlOwor6ZuE6buDIDwgcmVhbGdhcjsKK+acg+acnyA8IHNlc3Npb247CivkuI3ms5UgPCBsYXdsZXNzOwor5LiN55+l5L2V5pWFIDwgc29tZWhvdzsKK+a3oeWFiSA8IHNoaW1tZXI7CivlvYzos73kup4gPCBtZXNzaWFoOwor5rKS55Sa6bq8IDwgbm90aGluZzsKK+Wkp+mMryA8IGJsdW5kZXI7CivogIHlubQgPCBlbGRlcmx5Owor6K6K56GsIDwgc3RpZmZlbjsKK+a1t+WyuCA8IGNvYXN0YWw7CivnhZnngbDnvLggPCBhc2h0cmF5Owor56Sm54mpIDwgbWluZXJhbDsKK+iRl+mZuCA8IGxhbmRpbmc7CivkuI3lnKjkuoYgPCBiZVwtZGVhZDsKK+e0oee5lOWTgSA8IHRleHRpbGU7Civnp5HlrbggPCBzY2llbmNlOwor5ray5YyWIDwgbGlxdWlmeTsKK+mYv+WPuOWMueaelyA8IGFzcGlyaW47CivmlrnoqIAgPCBkaWFsZWN0Owor5Y+k54mpIDwgYW50aXF1ZTsKK+aXpeiQvSA8IHN1bmRvd247Civph5HlhYnploPniI0gPCBzcGFuZ2xlOwor6YO16LK7IDwgcG9zdGFnZTsKK+abluaYpyA8IGlsbGljaXQ7CivkuI3kurrpgZMgPCBpbmh1bWFuOwor6ZuE6ZueIDwgcm9vc3RlcjsKK+aUvumWiyA8IHVubGVhc2g7CivooqvmspLmlLYgPCBmb3JmZWl0Owor5aW06Zq45Yi25bqmIDwgc2xhdmVyeTsKK+e+qOaFlSA8IGVudmlvdXM7Civot6/opb/lvJcgPCBsdWNpZmVyOwor5YyW5a245a62IDwgY2hlbWlzdDsKK+mkheS5viA8IGJpc2N1aXQ7CivmnInlrrMgPCBoYXJtZnVsOwor6YWS57K+IDwgYWxjb2hvbDsKK+ekvuacgyA8IHNvY2lldHk7CivmmrTmlL8gPCB0eXJhbm55Owor546L5ZyLIDwga2luZ2RvbTsKK+aYk+eijiA8IGJyaXR0bGU7Civph5jmrbsgPCBjcnVjaWZ5Owor6KiT57e06ICFIDwgdHJhaW5lcjsKK+a4hea9lOWZqCA8IGNsZWFuZXI7Civpoaflv4wgPCBzY3J1cGxlOwor5oSI5ZCIIDwgdG9cLWhlYWw7CivoqbPov7AgPCByZWNvdW50Owor6aGY5oSPIDwgdG9cLXdpc2g7CivmhJvlvrfnjrIgPCBhZGVsaW5lOwor6L+r5YiH5oCnIDwgdXJnZW5jeTsKK+eOqeWFkiA8IHRvXC1wbGF5Owor5aWz5ryU5ZOhIDwgYWN0cmVzczsKK+S4reWtkCA8IG5ldXRyb247Civph5HmqZggPCBrdW1xdWF0Owor6ZyA6KaBIDwgdG9cLW5lZWQ7CivmgpTmgaggPCByZW1vcnNlOwor5pyA5aSnIDwgYmlnZ2VzdDsKK+acgOWkmiA8IGF0XC1tb3N0Owor6ICV5L2cIDwgZmFybWluZzsKK+aApea1gSA8IHRvcnJlbnQ7Civlt7Tmr5TlgKsgPCBiYWJ5bG9uOwor6ICB5YWsIDwgaHVzYmFuZDsKK+WssOWFkuacnyA8IGluZmFuY3k7Civnmb7okYnnqpcgPCBzaHV0dGVyOwor6YG/5b2I5Z2RIDwgZm94aG9sZTsKK+mmrOS+huilv+S6niA8IG1hbGFzaWE7CivlsbHog6HmoYPmnKggPCBoaWNrb3J5Owor6ISr6KGj5pyNIDwgdW5kcmVzczsKK+S5j+WRsyA8IHRlZGlvdXM7CivwoZyxIDwgdG9cLWVudnk7CivlkbzlkLggPCBicmVhdGhlOwor54yc5bqmIDwgc3VybWlzZTsKK+WRu+WQnyA8IHRvXC1tb2FuOwor5b285b6X5YmN5pu4IDwgMVwtcGV0ZXI7CivpgbTpgbggPCB0b1wtcGljazsKK+Wls+elniA8IGdvZGRlc3M7Civmg7Plg48gPCBpbWFnaW5lOwor5qWt6aSY6ICFIDwgYW1hdGV1cjsKK+WQjOW/lyA8IGNvbXJhZGU7CivmspLmnIkgPCBoYXZlbicndDsKK+WNl+eTnCA8IHB1bXBraW47CivorormmpYgPCB3YXJtaW5nOwor6YeR5a2X5aGUIDwgcHlyYW1pZDsKK+awo+eQgyA8IGJhbGxvb247Civni4LmmrQgPCBmcmFudGljOwor5LuW6Ieq5bexIDwgaGltc2VsZjsKK+WQiuW6iiA8IGhhbW1vY2s7Civlj4rmmYIgPCBpblwtdGltZTsKK+mDqOe9siA8IGRpc3Bvc2U7CivkuZ/kuI0gPCBuZWl0aGVyOwor5Y+v5oaQIDwgcGl0aWZ1bDsKK+Wls+eahyA8IGVtcHJlc3M7CivlrprlsYXogIUgPCBzZXR0bGVyOwor5LiA5aSpIDwgb25lXC1kYXk7CivkuozljYHlpJogPCBvdmVyXC0yMDsKK+aUueijnSA8IHJlbW9kZWw7CivpmL/po5sgPCBob29kbHVtOwor5Y+v5oGoIDwgaGF0ZWZ1bDsKK+aUtueVmeaJgCA8IGJhcnJhY2s7Civms5XlrpggPCBhXC1qdWRnZTsKK+e+juWciyA8IGFtZXJpY2E7CivmnIDkvbMgPCBvcHRpbXVtOwor5bm96Z2IIDwgc3BlY3RlcjsKK+mBi+i9iSA8IHRvXC13b3JrOwor6YGL6Ly4IDwgdHJhbnNpdDsKK+aCsuWKhyA8IHRyYWdlZHk7Civmm7jkv6EgPCBlcGlzdGxlOwor5YqN6KGTIDwgZmVuY2luZzsKK+WwseWvouaZgumWkyA8IGJlZHRpbWU7Civnt5LoqIAgPCBwcmVmYWNlOwor6KqH6ICAIDwgcHJvdWRseTsKK+e8uuW4rSA8IGFic2VuY2U7CivkuIDlj6MgPCByZWFkaWx5Owor5LiD5Y2BIDwgc2V2ZW50eTsKK+eHlem6peeypSA8IG9hdG1lYWw7CivmlrDnlJ8gPCBuZXdib3JuOwor5LiN5YaNIDwgbm9cLW1vcmU7Civkup7mi4nlt7TppqwgPCBhbGFiYW1hOwor5LiW5L+XIDwgcHJvZmFuZTsKK+W5tOmRkSA8IGFsbWFuYWM7Civmr5TnlasgPCBnZXN0dXJlOwor6YeP5a2QIDwgcXVhbnR1bTsKK+eMv+S6uiA8IGFwZVwtbWFuOwor5Y+r5aW9IDwgYXBwbGF1ZDsKK+iHquihjOi7iiA8IGJpY3ljbGU7CivpgJDpgIAgPCByZXB1bHNlOwor5rCR5pW46KiYIDwgbnVtYmVyczsKK+Wwj+aWkem7niA8IHNwZWNrbGU7Civms6jlhaUgPCBwb3VyXC1pbjsKK+ato+e+qSA8IGp1c3RpY2U7Civkvb/ljq3nhakgPCBkaXNndXN0Owor6Im+6L+q55SfIDwgYWRkaXNvbjsKK+aYryA8IGluZGVlZDsKK+i/qyA8IGNvZXJjZTsKK+W/nCA8IHNob3VsZDsKK+W/mCA8IGZvcmdldDsKK+WbvSA8IG5hdGlvbjsKK+i/lCA8IHJldHVybjsKK+W/jSA8IGVuZHVyZTsKK+i/hCA8IGV4dGVuZDsKK+W/hSA8IHN1cmVseTsKK+WHuiA8IGdvXC1vdXQ7Civovr8gPCBmb2xsb3c7CivnnrwgPCBleWVsaWQ7CivlvpcgPCBvYnRhaW47CivovrcgPCBzbW9vdGg7CivlvrQgPCBzdW1tb247CivlvrMgPCB2aXJ0dWU7Civnnq0gPCBicmlnaHQ7CivovpsgPCBiaXR0ZXI7CivlvpAgPCBzbG93bHk7CivlvowgPCBiZWhpbmQ7CivlvoogPCBsaW5nZXI7CivlvbEgPCBzaGFkb3c7CivkuosgPCBhZmZhaXI7CivovZ8gPCBydW1ibGU7CivlvYggPCBwZWxsZXQ7CivkuLsgPCBtYXN0ZXI7CivlvLcgPCBzdHJvbmc7CivlvJsgPCBsb29zZW47CivmsJEgPCBwZW9wbGU7CivnnIwgPCBjb3VudHk7CivnjrAgPCBhcHBlYXI7CivliIYgPCBkaXZpZGU7CivkupsgPCBsaXR0bGU7Civnm7ggPCBtdXR1YWw7CivnkIYgPCByZWFzb247Civnm4ogPCBwcm9maXQ7Civor50gPCBzcGVlY2g7CivlkJEgPCB0b3dhcmQ7CivlrpogPCBkZWNpZGU7CivluqsgPCBhcm1vcnk7CivluqYgPCBkZWdyZWU7CivlupUgPCBib3R0b207CivmiZMgPCBzdHJpa2U7CivkvY0gPCB0aHJvbmU7Civluo8gPCBzZXJpZXM7CivlubwgPCBpbmZhbnQ7CivlubIgPCBvcHBvc2U7CivlhoUgPCBpbnNpZGU7CivnmaogPCBzcGFzbXM7CivliqAgPCBhZGRcLXRvOwor5YyWIDwgY2hhbmdlOwor55mMIDwgY2FuY2VyOwor5bi4IDwgY29tbW9uOwor6LiwIDwgZXhjZWVkOwor5biCIDwgbWFya2V0Owor5omNIDwgdGFsZW50Owor5L2PIDwgcmVzaWRlOwor5ZGYIDwgbWVtYmVyOwor5be7IDwgc2Nyb2xsOwor5oCnIDwgbmF0dXJlOwor5oqlIDwgcmVwb3J0Owor56WeIDwgc3Bpcml0Owor5pWwIDwgbnVtYmVyOwor6LehIDwgc2VhcmNoOwor5Y6fIDwgc291cmNlOwor5behIDwgcGF0cm9sOwor5bedIDwgc3RyZWFtOwor55aKIDwgcmVwZWF0Owor57O7IDwgc3lzdGVtOwor55WgIDwgZ2FyZGVuOwor6K6wIDwgcmVjb3JkOwor5p6XIDwgZm9yZXN0Owor57ufIDwgZ292ZXJuOwor5a2XIDwgbGV0dGVyOwor5bO2IDwgaXNsYW5kOwor6LOqIDwgbWF0dGVyOwor6K66IDwgZGViYXRlOwor6LKwIDwgYm9ycm93Owor5oyHIDwgZmluZ2VyOwor6LKhIDwgd2VhbHRoOwor6IqxIDwgZmxvd2VyOwor5bGkIDwgc3RvcmV5Owor5p2hIDwgY2xhdXNlOwor5bGNIDwgY29ycHNlOwor5bGAIDwgYnVyZWF1Owor5YqeIDwgbWFuYWdlOwor6LC3IDwgdmFsbGV5Owor5Z+OIDwgY2FzdGxlOwor54i2IDwgZmF0aGVyOwor5bCOIDwgZGlyZWN0Owor5a+nIDwgcmVwb3NlOwor6buEIDwgeWVsbG93Owor5b63IDwgZXRoaWNzOwor5a6zIDwgaW5qdXJlOwor5a6uIDwgcGFsYWNlOwor5Y+LIDwgZnJpZW5kOwor5a6IIDwgZGVmZW5kOwor6K6DIDwgcHJhaXNlOwor6ZmFIDwgYm9yZGVyOwor5Y2VIDwgc2luZ2xlOwor5a2kIDwgb3JwaGFuOwor5qChIDwgc2Nob29sOwor542EIDwgcHJpc29uOwor54y+IDwgY3JhZnR5Owor6KyZIDwgaHVtYmxlOwor6KyOIDwgcmlkZGxlOwor54u5IDwgbmFycm93Owor5q+NIDwgbW90aGVyOwor54uZIDwgYW5cLWFwZTsKK+WboiA8IHNwaGVyZTsKK+eLgiA8IGluc2FuZTsKK+iqsiA8IGxlc3NvbjsKK+aLmyA8IGJlY2tvbjsKK+WFtCA8IHRocml2ZTsKK+e6piA8IHRyZWF0eTsKK+ipqSA8IHBvZXRyeTsKK+e7nSA8IHRvXC1jdXQ7CivpgIkgPCBjaG9vc2U7CivmmJ8gPCBhXC1zdGFyOwor6Ki0IDwgYWNjdXNlOwor54ibIDwgcm90dGVuOwor5raIIDwgdmFuaXNoOwor54etIDwgY2FuZGxlOwor5aerIDwgYmVhdXR5Owor5p2oIDwgd2lsbG93Owor5LilIDwgc3RyaWN0Owor54aKIDwgYVwtYmVhcjsKK+WmhCA8IGFic3VyZDsKK+iLjyA8IHJldml2ZTsKK+etlCA8IGFuc3dlcjsKK+WlriA8IHN0cml2ZTsKK+eFqSA8IGJvdGhlcjsKK+ilpCA8IHJhZ2dlZDsKK+S+myA8IHN1cHBseTsKK+WkriA8IGNlbnRlcjsKK+WIlyA8IGFcLWxpbmU7CivnhKYgPCBidXJuZWQ7CivpvpkgPCBkcmFnb247CivlpI8gPCBzdW1tZXI7CivmmKUgPCBzcHJpbmc7CivmgIEgPCBtYW5uZXI7CivoopYgPCBzbGVldmU7CivooosgPCBwb2NrZXQ7Civlia8gPCBhc3Npc3Q7CivlpJ8gPCBlbm91Z2g7CivooZcgPCBzdHJlZXQ7Civmv4AgPCBhcm91c2U7Civpk7YgPCBzaWx2ZXI7CivpmLUgPCBjb2x1bW47CivnroAgPCBzaW1wbGU7Civmr5IgPCBwb2lzb247CivmuZYgPCBhXC1sYWtlOwor6J2JIDwgY2ljYWRhOwor6L+9IDwgcHVyc3VlOwor6bysIDwgd2Vhc2VsOwor57ucIDwgZW5tZXNoOwor5rygIDwgZGVzZXJ0Owor6JyYIDwgc3BpZGVyOwor5Y2gIDwgZGl2aW5lOwor5ZyTIDwgY2lyY2xlOwor5YWwIDwgb3JjaGlkOwor6Zi2IDwgc3RhaXJzOwor6buZIDwgc2lsZW50Owor5L2bIDwgYnVkZGhhOwor5pWIIDwgcmVzdWx0Owor5pS7IDwgYXR0YWNrOwor562WIDwgc2NoZW1lOwor6IKhIDwgdGhpZ2hzOwor6I6rIDwgZG9cLW5vdDsKK+WYmCA8IGV4aGFsZTsKK+eqlyA8IHdpbmRvdzsKK+a3uyA8IGFwcGVuZDsKK+a3tyA8IHRvXC1taXg7Civpt7IgPCBjb25kb3I7CivljZogPCBnYW1ibGU7Civol6QgPCByYXR0YW47CivmmbogPCB3aXNkb207CivmipcgPCByZXNpc3Q7CivllrAgPCB0b1wtZWF0Owor5ZanIDwgbGl2ZWx5Owor5ZaJIDwgdGhyb2F0Owor5rWaIDwgZHJlZGdlOwor6YCDIDwgZXNjYXBlOwor5ZS4IDwgcmVjaXRlOwor6Z2WIDwgcGFjaWZ5Owor56eYIDwgc2VjcmV0Owor5qyyIDwgZGVzaXJlOwor5b6BIDwgaW52YWRlOwor56eLIDwgYXV0dW1uOwor5ZC4IDwgaW5oYWxlOwor6bOpIDwgcGlnZW9uOwor5oKyIDwgc29ycm93Owor5qGlIDwgYnJpZGdlOwor6JK7IDwgcnVzaGVzOwor6JGhIDwgZ3JhcGVzOwor5rGaIDwgZmlsdGh5Owor6IO4IDwgYnJlYXN0Owor6YKuIDwgcG9zdGFsOwor5ZCdIDwgc3Rpbmd5Owor5qiqIDwgYWNyb3NzOwor6JCOIDwgd2l0aGVyOwor6I+rIDwgY2VsZXJ5Owor5oupIDwgc2VsZWN0Owor5oGoIDwgaGF0cmVkOwor56u5IDwgYmFtYm9vOwor6I+TIDwgZnJ1aXRzOwor5peXIDwgYmFubmVyOwor5q67IDwgY2FzaW5nOwor56izIDwgc3RhYmxlOwor6L+5IDwgdHJhY2VzOwor6ZKIIDwgbmVlZGxlOwor5qu7IDwgY2hlcnJ5Owor5byDIDwgcmVqZWN0Owor57SrIDwgcHVycGxlOwor5ouUIDwgdXByb290Owor6IqdIDwgc2VzYW1lOwor6LWPIDwgcmV3YXJkOwor5o+SIDwgaW5zZXJ0Owor6amiIDwgZG9ua2V5Owor5YasIDwgd2ludGVyOwor5ompIDwgZXhwYW5kOwor5qmYIDwgb3JhbmdlOwor6YC8IDwgY29tcGVsOwor6ai3IDwgaGFyYXNzOwor5Yi5IDwgdGVtcGxlOwor6ZWcIDwgbWlycm9yOwor5qiZIDwgYVwtbWFyazsKK+iIjCA8IHRvbmd1ZTsKK+anvSA8IHRyb3VnaDsKK+iHvCA8IG1vcnRhcjsKK+S8jyA8IGNyb3VjaDsKK+aEpCA8IHJlc2VudDsKK+S/hCA8IHN1ZGRlbjsKK+WHjSA8IGZyZWV6ZTsKK+anjCA8IGhhbW1lcjsKK+mYuyA8IGltcGVkZTsKK+mlkSA8IHN0YXJ2ZTsKK+iFkSA8IGJvd2VsczsKK+WFjiA8IHJhYmJpdDsKK+iFiyA8IGFybXBpdDsKK+WEmCA8IHV0bW9zdDsKK+W0hyA8IGVzdGVlbTsKK+mkkyA8IGh1bmdyeTsKK+ajuiA8IGNvZmZpbjsKK+eyiSA8IHBvd2RlcjsKK+ebviA8IHNoaWVsZDsKK+mjoiA8IGh1bmdlcjsKK+aNlSA8IGFycmVzdDsKK+airyA8IGxhZGRlcjsKK+iBmCA8IGVuZ2FnZTsKK+aigyA8IGFcLWNsdWI7CivpoasgPCBzaGl2ZXI7Civpl7cgPCBnbG9vbXk7CivmgpQgPCByZXBlbnQ7CivpgoAgPCBpbnZpdGU7CivpoKwgPCBjaGVla3M7CivmgqMgPCBzdWZmZXI7CivkuJAgPCBiZWdnYXI7Civmn7EgPCBwaWxsYXI7Civmn5ogPCBwb21lbG87Civmn4QgPCBoYW5kbGU7Civkvq4gPCBpbnN1bHQ7Civpk5wgPCBjb3BwZXI7CivmnpUgPCBwaWxsb3c7CivmnbUgPCBwZXN0bGU7Civmia8gPCByaXBcLXVwOwor6LaLIDwgaGFzdGVuOwor5LiyIDwgc3RyaW5nOwor6ZuyIDwgY2xvdWRzOwor6ZuMIDwgZmVtYWxlOwor6ZuHIDwgZW1wbG95Owor6ZqFIDwgY29ybmVyOwor57mVIDwgcmVwYWlyOwor5qOJIDwgY290dG9uOwor57ibIDwgdG9cLXRpZTsKK+iwhSA8IGV4Y3VzZTsKK+WRiCA8IHN1Ym1pdDsKK+e3miA8IHRocmVhZDsKK+aVtyA8IHNwcmVhZDsKK+iEviA8IHNwbGVlbjsKK+e0syA8IGdpcmRsZTsKK+m5sCA8IGZhbGNvbjsKK+aEmiA8IHN0dXBpZDsKK+ezniA8IG1hbnVyZTsKK+eypyA8IHRvaWxldDsKK+aOoSA8IGdhdGhlcjsKK+W4lSA8IHR1cmJhbjsKK+S4qyA8IGZvcmtlZDsKK+aLkCA8IGtpZG5hcDsKK+WAqiA8IGZlZWJsZTsKK+mMkCA8IGdpbWxldDsKK+evriA8IGJhc2tldDsKK+S+hCA8IG5lcGhldzsKK+WPiSA8IGNyb3RjaDsKK+aAliA8IHRlcnJvcjsKK+migSA8IGNvbmZlcjsKK+WSlSA8IG11bWJsZTsKK+iItSA8IHJ1ZGRlcjsKK+aDqSA8IHB1bmlzaDsKK+WSliA8IGNvZmZlZTsKK+a3syA8IGhvbmVzdDsKK+eMtCA8IG1vbmtleTsKK+mciSA8IG1pbGRldzsKK+aCvCA8IGdyaWV2ZTsKK+mAjSA8IHJhbWJsZTsKK+iAjSA8IGZyb2xpYzsKK+aNhiA8IHRpZVwtdXA7CivpgYogPCB3YW5kZXI7Civlu78gPCB0d2VudHk7CivohbsgPCBncmVhc3k7CivnvIYgPCBoYXdzZXI7CivpnpEgPCB0YXRhcnM7CivmhbcgPCBhcmRlbnQ7Civnr7cgPCBhd25pbmc7CivojYYgPCB0aG9ybnM7Civoho8gPCBncmVhc2U7Civpno0gPCBzYWRkbGU7CivnnawgPCBub3RpY2U7Civnu6UgPCBzb290aGU7CivmsKcgPCBveHlnZW47CivlqbcgPCBwcmV0dHk7Civlh78gPCBjaGlzZWw7Civlt6sgPCB3aXphcmQ7Civomb4gPCBzaHJpbXA7CivkvLYgPCBsb25lbHk7CivmpJIgPCBwZXBwZXI7Civmj5YgPCBzYWx1dGU7CivlhokgPCB0ZW5kZXI7CivouLEgPCBzdHJvbGw7CivnjKwgPCB2dWxnYXI7CivopIIgPCBqYWNrZXQ7Civns5kgPCBjb2Fyc2U7Civpl7ggPCBzbHVpY2U7CivpopMgPCBydWluZWQ7CivlsYkgPCBkcmF3ZXI7CivliIEgPCB0cmlja3k7CivmtLwgPCBob2xsb3c7CivokpwgPCBnYXJsaWM7CivmuKMgPCByZWZ1c2U7CivmhZEgPCBhZnJhaWQ7Civlv48gPCByZWdyZXQ7Civnor4gPCByb2xsZXI7CivnlpkgPCBwaW1wbGU7CivmvIkgPCBmaWx0ZXI7CivpmqcgPCB0dW5uZWw7CivphaUgPCBidXR0ZXI7Civpkq4gPCBidXR0b247CivmvLEgPCBnYXJnbGU7Civnm5QgPCBoZWxtZXQ7Civno4sgPCBwb2xpc2g7CivolYkgPCBiYW5hbmE7Civnl7AgPCBwaGxlZ207CivnvoEgPCBoYWx0ZXI7Civor48gPCBkZWNyZWU7CivpnbYgPCB0YXJnZXQ7CivphZ0gPCBsaXF1b3I7CivkurUgPCBzbGlnaHQ7CivosoIgPCBtYXJ0ZW47CivogYYgPCBsaXN0ZW47Civpn6wgPCBzaGVhdGg7CivpuYogPCBtYWdwaWU7CivljYUgPCB0aGlydHk7CivnorMgPCBjYXJib247CivnoasgPCBzdWxmdXI7CivplbAgPCBzaWNrbGU7Civmto4gPCBzYWxpdmE7Civlo5UgPCB0cmVuY2g7CivplJogPCBhbmNob3I7CivpkqAgPCBzb2RpdW07Civnnb8gPCBzaHJld2Q7CivojrogPCBvcmlvbGU7Civog68gPCBwZWx2aXM7Civot7sgPCBhc2NlbmQ7Civps5YgPCB0dXJ0bGU7CivohbwgPCBtb2Rlc3Q7CivlqJMgPCBjb21wbHk7CivliI4gPCBiZWhlYWQ7CivouZkgPCB1cmdlbnQ7Civog5ogPCBlbWJyeW87CivojZQgPCBsaWNoZWU7CivplLUgPCB0aW5rbGU7CivojKcgPCBjb2Nvb247Civon5IgPCBweXRob247CivpuYMgPCBjdWNrb287CivnjZcgPCB1bnJ1bHk7Civokq8gPCBhXC1ydXNoOwor5rKPIDwgaW5mdXNlOwor5ZqPIDwgc25lZXplOwor56C+IDwgZ3JhdmVsOwor5L2fIDwgYVwtbmFtZTsKK+iMnCA8IG1hZGRlcjsKK+aJiCA8IGVzY29ydDsKK+WSmyA8IGVuam9pbjsKK+azlyA8IG11Y291czsKK+mUuSA8IHNob3ZlbDsKK+m5lyA8IG9zcHJleTsKK+WEoSA8IHB1cHBldDsKK+iegiA8IG1hbnRpczsKK+iLkyA8IGZ1bmd1czsKK+WPtSA8IGNhbm5vdDsKK+WvriA8IHNoYW50eTsKK+eKtyA8IGZpZXJjZTsKK+aysSA8IHJpdmVyczsKK+eWoSA8IHVsY2VyczsKK+W+lSA8IGluZHVjZTsKK+mqmyA8IGdhbGxvcDsKK+W+iSA8IHdvbmRlcjsKK+iwqiA8IGNoYXJnZTsKK+S/miA8IHJ1c3RpYzsKK+S/qiA8IHNwb3VzZTsKK+iHviA8IG1vbWVudDsKK+WstCA8IHRvXC13aW47Civng6kgPCByYWdvdXQ7Civpk6QgPCBpbmdvdHM7CivojIEgPCBzcHJvdXQ7CivoiKIgPCBzYW1wYW47CivnopwgPCBncml0dHk7Civlg60gPCBhc3N1bWU7CivnopggPCBpb2RpbmU7Civng68gPCBhbGtlbmU7Civlm78gPCBwZW5cLXVwOwor5ZurIDwgZW50aXJlOwor6ZWNIDwgbmlja2VsOwor5qmQIDwgYVwtc2FjazsKK+adtyA8IGxvcXVhdDsKK+iBkiA8IGNsYW1vcjsKK+e+ryA8IHdldGhlcjsKK+enoyA8IGZvZGRlcjsKK+aovSA8IGdvYmxldDsKK+eEliA8IHNpbW1lcjsKK+i9syA8IHB1bGxleTsKK+mVrSA8IHJhZGl1bTsKK+auhCA8IHRvXC1lbmQ7Civor7AgPCBpbmZvcm07CivojoUgPCBhdHRlbmQ7CivorqsgPCBmaW5pc2g7Civmt6wgPCB0ZW1wZXI7CivlmKwgPCB0b1wtbGFwOwor54O3IDwgYWxrYW5lOwor6JuOIDwgb3lzdGVyOwor54SxIDwgZmxhbWVzOwor6JylIDwgbGl6YXJkOwor6JG6IDwgdGhhdGNoOwor5oG9IDwgZGV2aXNlOwor6JO/IDwgY2xvdmVyOwor55iMIDwgc2V2ZXJlOwor5ZaxIDwgZ3JhbW1lOwor6ZK0IDwgY29iYWx0Owor6LKJIDwgYmFkZ2VyOwor6JyJIDwgbWF5Zmx5Owor6bKRIDwgc2FsbW9uOwor5aiIIDwgbG92ZWx5Owor6I2oIDwgbmV0dGxlOwor56umIDwgcmV2ZXJlOwor54uSIDwgYmFib29uOwor6Ji8IDwgbWlsbGV0Owor6Iy0IDwgZmVubmVsOwor6bKmIDwgbWlubm93Owor5riMIDwgc3RyYWluOwor6ZiaIDwgZ2xhbmNlOwor54+QIDwgZW5hbWVsOwor6Z2bIDwgaW5kaWdvOwor6bunIDwgYVwtZGFyazsKK+igkyA8IG1pZGdlczsKK+apvCA8IGNpdHJ1czsKK+mtjSA8IGRlbW9uczsKK+e/iiA8IGZseWluZzsKK+mVjyA8IGRpc3RpbDsKK+iDvCA8IGNhbGx1czsKK+eKjyA8IHlha1wtb3g7CivnopogPCBzdWJ1cmI7Civoha0gPCBwYWxhdGU7Civps58gPCBiYXJiZWw7CivmroIgPCB0b1wtZGllOwor562aIDwgd2lja2VyOwor55adIDwgaGVybmlhOwor6aqAIDwgYW5cLW9sZDsKK+iSlyA8IFwoaGVyYlwpOwor6I+fIDwgZG9kZGVyOwor6ZmJIDwgZGVmaWxlOwor55agIDwgYVwtc29yZTsKK+aXsCA8IHN1bnNldDsKK+iBjSA8IGVhcndheDsKK+mUhyA8IG9zbWl1bTsKK+mSoSA8IGJhcml1bTsKK+iluyA8IGFcLWxvb3A7Civpk5IgPCBlcmJpdW07Civpk4ggPCBjZXJpdW07CivmpLQgPCBwb3BsYXI7Civoi6EgPCBiYXJsZXk7CivoiIQgPCBhXC1zaG9lOwor6birIDwgdGhydXNoOwor6ZSUIDwgY3VyaXVtOwor6ZOfIDwgaW5kaXVtOwor55yNIDwgc3Vua2VuOwor5qG3IDwgcmFmdGVyOwor6IuEIDwgYmVuenlsOwor6ZmUIDwgYVwtc3RlcDsKK+mqtiA8IGNvY2N5eDsKK+myuyA8IG11bGxldDsKK+ieqCA8IGluc2VjdDsKK+iZvCA8IGFcLWZsZWE7CivnmJUgPCBhc3RobWE7CivplZggPCB0cm93ZWw7Civog4IgPCBhcnNpbmU7Civoj5QgPCB0dXJuaXA7Civlvp7mraQgPCB0aGVuY2U7Civps6Xnvr0gPCBwaW5pb247Civnt6jogIUgPCBlZGl0b3I7CivoqqTnlKggPCBtaXN1c2U7CivlvLfnm5wgPCBiYW5kaXQ7Civoqannr4cgPCBwc2FsbXM7Civmlrnms5UgPCBtZXRob2Q7CivmlL/nrZYgPCBwb2xpY3k7Civlk7rkubPli5XniakgPCBtYW1tYWw7CivkvIrlsLzkvIrlvrcgPCBhZW5laWQ7Civorablr58gPCBwb2xpY2U7Civlo6vluKvoqJggPCBqdWRnZXM7Civnmbzpm7vmqZ8gPCBkeW5hbW87CivnvarkurogPCBzaW5uZXI7CivlpKfngq4gPCBjYW5ub247CivlpKfngb0gPCBwbGFndWU7CivloZ7niL7ntq3kup4gPCBzZXJiaWE7CivlkInku5YgPCBndWl0YXI7Civmr4Dmu4UgPCBwZXJpc2g7CivnqYbmlq/mnpcgPCBtdXNsaW07Civplovou4rkurogPCBkcml2ZXI7CivluLbph6YgPCBidWNrbGU7Civli5XniakgPCBhbmltYWw7Civkvb/vuY3osZDlr4wgPCBlbnJpY2g7Civnt4rnuK4gPCByZWR1Y2U7Civnh5LnhKYgPCBzY29yY2g7CivpoJjkuosgPCBjb25zdWw7CivlmLbllZ7ogbIgPCBob2Fyc2U7CivlpKfmtaogPCBiaWxsb3c7CivnnaHokZcgPCBhc2xlZXA7CivmsKPmga8gPCBicmVhdGg7Civmk7Hnva4gPCBzaGVsdmU7CivmlbTmvZQgPCBuZWF0bHk7CivlvIrnl4UgPCBtYWxhZHk7CivpgbjnpaggPCBhXC12b3RlOwor5Ym956uKIDwgcGlyYXRlOwor57eo56K8IDwgY29kaW5nOwor5ouU5bCW5YWSIDwgdGlwdG9wOwor5beo6aCtIDwgdHljb29uOwor6aCC5LqLIDwgdXNlZnVsOwor5pKV6KOCIDwgbWFuZ2xlOwor6ZmE6JGXIDwgYWRoZXJlOwor5LyK5bC85Lqe5pavIDwgYWVuZWFzOwor5q2j55W2IDwgdGltZWx5Owor5oCS5ZC8IDwgYmVsbG93Owor5aWH5pmvIDwgbWFydmVsOwor54mI5byPIDwgZm9ybWF0Owor6amF6YCQ5Ye65aKDIDwgZGVwb3J0Owor6YGg56iLIDwgcmVtb3RlOwor5Y2K5b6RIDwgcmFkaXVzOwor6ZmN6IeoIDwgYmVmYWxsOwor566h55CG5Lq6IDwga2VlcGVyOwor6Yac5YyWIDwgZGVmYW1lOwor54uC5Lq6IDwgbWFkbWFuOwor5aSn5qG2IDwgYmFycmVsOwor5pyJ5Lq65oOFIDwgaHVtYW5lOwor6KW/57SF5p+/IDwgdG9tYXRvOwor55yL6KaLIDwgdG9cLXNlZTsKK+ino+iEqyA8IHJlbGllZjsKK+egtOaVlyA8IGJlYXRlbjsKK+aXl+W5nyA8IGVuc2lnbjsKK+awtOWjuiA8IGtldHRsZTsKK+auluawkSA8IGNvbG9ueTsKK+aXi+W+iyA8IG1lbG9keTsKK+WLleapnyA8IG1vdGl2ZTsKK+WOreWApiA8IGRyZWFyeTsKK+WFp+mZuCA8IGlubGFuZDsKK+W3pemMoiA8IHNhbGFyeTsKK+WFrOmWiyA8IHB1YmxpYzsKK+WOn+WFiCA8IGZvcm1lcjsKK+WFq+mWiyA8IG9jdGF2bzsKK+eGiueGiiA8IHJhZ2luZzsKK+efreatjCA8IGJhbGxhZDsKK+WNmuWjqyA8IGRvY3RvcjsKK+W/oOWRiiA8IGFkdmljZTsKK+egsuaJiyA8IGd1bm5lcjsKK+WkmuaYnyA8IHN0YXJyeTsKK+W+i+W4qyA8IGxhd3llcjsKK+WFq+WIhumfs+espiA8IHF1YXZlcjsKK+W+ruWmmSA8IHN1YnRsZTsKK+WlveWlvSA8IG5pY2VseTsKK+e4veaYryA8IGFsd2F5czsKK+mWi+mOliA8IHVubG9jazsKK+atpea4rCA8IHBhY2luZzsKK+eHn+aVkSA8IHJlc2N1ZTsKK+aVrOacjSA8IGFkbWlyZTsKK+WkqeeruueJoeS4uSA8IGRhaGxpYTsKK+W+l+WunCA8IHByb3BlcjsKK+WInee0miA8IGp1bmlvcjsKK+i8lemshiA8IGdlbnRsZTsKK+eIkOW6iiA8IGhlYXJ0aDsKK+isiuWgsSA8IHRvXC1saWU7Civnorrkv50gPCBlbnN1cmU7Civpm6LlpYfmnInotqMgPCBxdWFpbnQ7CivpgYvnlKggPCB0b1wtdXNlOwor57Wy57WoIDwgdmVsdmV0Owor54mI5ZyWIDwgZG9tYWluOwor5pS/5qyKIDwgcmVnaW1lOwor5b6I5bCRIDwgc2VsZG9tOwor54i15aOrIDwga25pZ2h0Owor6KWv6KOhIDwgbGluaW5nOwor6KyZ5ZKMIDwgbWVla2x5Owor57ay55CDIDwgdGVubmlzOwor6I2S6JWqIDwgYmFycmVuOwor6Zu75b2x6ZmiIDwgY2luZW1hOwor5aSp5oCnIDwgaW5ib3JuOwor5bCP5aaW57K+IDwgZ29ibGluOwor6YeR57Wy6ZuAIDwgY2FuYXJ5Owor5q2Q5rSyIDwgZXVyb3BlOwor5Yu+5byVIDwgc2VkdWNlOwor54ax5pybIDwgYXNwaXJlOwor57K+6YG4IDwgY2hvc2VuOwor6KqY5ouQIDwgYWJkdWN0Owor6Kqg5oeHIDwgaGVhcnR5Owor5YuV5ZCN6KmeIDwgZ2VydW5kOwor6YCa55+lIDwgbm90aWZ5Owor5Yi655ebIDwgdGluZ2xlOwor5b615Y+sIDwgZW5saXN0Owor5q2h5qiCIDwgZ2FpZXR5Owor56u26LO96ICFIDwgcGxheWVyOwor5YWI6YuSIDwgaGVyYWxkOwor57eo5bm05Y+yIDwgYW5uYWxzOwor5pW15oSPIDwgZW5taXR5Owor5be06KW/IDwgYnJhemlsOwor57y65rCn55eHIDwgYW5veGlhOwor54mp5Lu2IDwgb2JqZWN0Owor5Y245LiLIDwgdW5sb2FkOwor5YyF5a65IDwgcGFyZG9uOwor6KqY5oORIDwgZW50aWNlOwor54mn5Lq6IDwgcGFzdG9yOwor5aSn5Zyw5rSeIDwgY2F2ZXJuOwor5aSW5b2iIDwgZmlndXJlOwor6Zqo5qmfIDwgcmFuZG9tOwor5YW16K6KIDwgbXV0aW55Owor55m85ZiO5ZiO6IGyIDwgcmF0dGxlOwor5pWP5o23IDwgbmltYmxlOwor54mb5LuUIDwgY293Ym95Owor5o+Q6YaSIDwgcmVtaW5kOwor6Ke454qvIDwgb2ZmZW5kOwor5aWq5Y+WIDwgc25hdGNoOwor5aSr5a2QIDwgcGVkYW50Owor5aSq5a2QIDwgcHJpbmNlOwor55yf56m6IDwgdmFjdVw6bTsKK+auuuWusyA8IG11cmRlcjsKK+aumOW/jSA8IGJsb29keTsKK+mWkuipsSA8IGdvc3NpcDsKK+i+reiBtyA8IHJlc2lnbjsKK+e3muainSA8IHN0cmVhazsKK+a7kee/lOapnyA8IGdsaWRlcjsKK+W+kuWLniA8IGZ1dGlsZTsKK+W+l+WIsCA8IHRvXC1nZXQ7CivluIzoh5ggPCBncmVlY2U7Civmv7rplosgPCBzcGxhc2g7CivpgYrmrbcgPCB0cmF2ZWw7Civlvqnku4cgPCBhdmVuZ2U7CivmrpjppJjniakgPCBsaXR0ZXI7Civlo5PmiYEgPCBzcXVhc2g7CivoqanmhI8gPCBwb2V0aWM7CivmlJ3mlL8gPCByZWdlbnQ7CivmqJnoqp4gPCBzbG9nYW47CivkuI3lj6/lkYrkurogPCBoaWRkZW47CivnmbzoqpMgPCB0b1wtdm93Owor5qmh6IagIDwgcnViYmVyOwor5Yqb6Laz5Lul5YGaIDwgYWZmb3JkOwor5Zyo77mN5pyf6ZaTIDwgZHVyaW5nOwor5Zyw6ZC1IDwgc3Vid2F5Owor5Y2B5LiAIDwgZWxldmVuOwor5b6e5LqLIDwgZ29cLWZvcjsKK+eGseW4tiA8IHRyb3BpYzsKK+acieiyrOS7uyA8IGxpYWJsZTsKK+mbnOW3pSA8IHBvcnRlcjsKK+WHuueUoiA8IG91dHB1dDsKK+WlouS+iCA8IGx1eHVyeTsKK+aOm+mJpCA8IGNvdXBsZTsKK+e0lOeyuSA8IHB1cmVseTsKK+eoruaXj+S4u+e+qSA8IHJhY2lzbTsKK+WtqeWtkOawoyA8IGJveWlzaDsKK+Wwj+eJneeJmyA8IGhlaWZlcjsKK+i3keatpeiAhSA8IHJ1bm5lcjsKK+mcsuWHuiA8IGV4cG9zZTsKK+aUgOaYhyA8IHJpc2luZzsKK+ino+a4tCA8IHF1ZW5jaDsKK+atjOaJiyA8IHNpbmdlcjsKK+WQkOe2rOmbniA8IHR1cmtleTsKK+W3oeiIqiA8IGNydWlzZTsKK+W4g+e3miA8IHdpcmluZzsKK+ato+W8jyA8IGZvcm1hbDsKK+WGsOeusSA8IGljZWJveDsKK+eEoeazlSA8IHVuYWJsZTsKK+mAlea1gSA8IHJ1bm9mZjsKK+Wkp+WQgyA8IGdvYmJsZTsKK+avq+S4jSA8IGhhcmRseTsKK+mBk+aVmSA8IHRhb2lzbTsKK+m9tSA8IHVuZXZlbjsKK+iouuaJgCA8IGNsaW5pYzsKK+mBuuaBqCA8IGdydWRnZTsKK+m8qyA8IG1hcm1vdDsKK+m8lCA8IGFcLWRydW07CivprIbppIUgPCBtdWZmaW47CivliqDltJkgPCBnYWxsb247CivpuaggPCBhbnRodXM7Civot6jmjqXlmaggPCBqdW1wZXI7CivmlZnloIIgPCBjaHVyY2g7Civpt4cgPCBjaGlja3M7Civptr0gPCBhXC1oYXdrOwor6ba4IDwgc2lza2luOwor6Kme5bC+IDwgc3VmZml4Owor6bWAIDwgaG9vcG9lOwor6YCx5pyfIDwgcGVyaW9kOwor6bSiIDwgXChkdWNrXCk7CivosqDmk5TogIUgPCBiZWFyZXI7Civpm7bllK4gPCByZXRhaWw7CivptIMgPCBzaHJpa2U7CivlnKjou4ogPCBhYm9hcmQ7CivlvpLmraXml4XooYwgPCBoaWtpbmc7CivpsY4gPCBcKGZpc2hcKTsKK+mxhiA8IHBvdWxwZTsKK+iMtueilyA8IHRlYWN1cDsKK+e3nuW4tiA8IHJpYmJvbjsKK+WIhua0viA8IGFzc2lnbjsKK+WQiOWUseWcmCA8IGNob3J1czsKK+mYu+apiCA8IHRod2FydDsKK+aQluexgyA8IGNyYWRsZTsKK+mgmOWwjuiAhSA8IGxlYWRlcjsKK+iRl+WQjSA8IGZhbW91czsKK+W8t+WLoiA8IG1pZ2h0eTsKK+e0rueHnyA8IGVuY2FtcDsKK+mpqyA8IGhvcnNlczsKK+WHuea0niA8IGNhdml0eTsKK+W8seWMliA8IHdlYWtlbjsKK+mZsOaItiA8IHZhZ2luYTsKK+aTiuaVlyA8IGRlZmVhdDsKK+mAsuaOpSA8IGFjY2VzczsKK+mmvyA8IGFuXC1hc3M7CivntZXmsKMgPCBleHBpcmU7Civmm7Lmo43nkIMgPCBob2NrZXk7CivoqLzlr6YgPCB2ZXJpZnk7CivppKQgPCBpbmNpdGU7CivpgKPmk4ogPCBiYXR0ZXI7CivmlZnljYAgPCBwYXJpc2g7Civngavnrq0gPCByb2NrZXQ7CivpmrHlo6sgPCBoZXJtaXQ7Civot6/nlLHlmaggPCByb3V0ZXI7Civnn63lio0gPCBkYWdnZXI7CivpoZIgPCBzb2xlbW47CivlvLflgaUgPCBzdHVyZHk7CivkuIDnr4BcKOipqVwpIDwgc3RhbnphOwor5q2m5ZmoIDwgd2VhcG9uOwor6Z6aIDwgYnJpZGxlOwor54Wk5bGRIDwgY2luZGVyOwor5bmz5p2/IDwgdGFibGV0Owor5Ye55qe9IDwgc29ja2V0Owor5Yiu5o6JIDwgc2NyYXBlOwor6auY6ZuFIDwgZGFpbnR5Owor6ZuCIDwgXChiaXJkXCk7CivniLbmr43opqogPCBwYXJlbnQ7CivmraHllpwgPCBqb3lmdWw7CivliIbmnp0gPCBicmFuY2g7CivmraXlk6ggPCBzZW50cnk7CivlgrPpgZQgPCBjb252ZXk7CivljJblpp3lk4EgPCBtYWtldXA7CivmgKXkv4PogbIgPCBwYXR0ZXI7Civpl4kgPCBjdXJ2ZWQ7CivooaHph48gPCB3ZWlnaHQ7Civkvb/noazljJYgPCBoYXJkZW47Civpqqjpq5MgPCBtYXJyb3c7Civpk68gPCBjZXNpdW07CivmkJTnmaIgPCB0aWNrbGU7Civpm5Xlg48gPCBzdGF0dWU7CivpkZ4gPCBzb2xkZXI7CivmraPljYggPCBtaWRkYXk7CivpkYAgPCBpb25pdW07CivpkJ0gPCBhXC1waWNrOwor6Y6SIDwgdG9cLWhvZTsKK+S6pOaYk+iAhSA8IGRlYWxlcjsKK+mOhSA8IHRvXC1zYXc7CivmkqvmirEgPCBjYXJlc3M7CivpjKkgPCB2ZXNzZWw7CivmlZHkuLsgPCBzYXZpb3I7CivnspjnspggPCBzdGlja3k7Civml6Xlhafnk6YgPCBnZW5ldmE7Civpi5kgPCBtaXNmaXQ7Civlt7TniL4gPCBiYWx0aWM7CivnmoTnorogPCByZWFsbHk7Civpi4UgPCB6aW5jdW07CivpgY7lpLEgPCBkZWZlY3Q7CivpioDooYzlrrYgPCBiYW5rZXI7CivmpI3nianlrbggPCBib3Rhbnk7CivntIDlv7XnjY4gPCB0cm9waHk7CivphbQgPCBsZWF2ZW47Civplbfnn60gPCBsZW5ndGg7CivluavmiYsgPCBoZWxwZXI7Civlgb3pgKDnmoQgPCBmb3JnZWQ7Civml4XooYzoo53lgpkgPCBvdXRmaXQ7CivpmYTlurggPCB2YXNzYWw7CivpganlkIggPCB0b1wtZml0Owor56ys5LqM5qyhIDwgc2Vjb25kOwor6auY6YGUIDwgYXR0YWluOwor6bWd5Y2155+zIDwgcGViYmxlOwor5pyJ5rCj5rS+IDwgbG9yZGx5Owor5YK15YuZ5Lq6IDwgZGVidG9yOwor6Iqx57KJIDwgcG9sbGVuOwor6YCMIDwgcGxlYXNlOwor6L+NIDwgZmFsdGVyOwor6L2cIDwgaGVhcnNlOwor55m955e0IDwgaWRpb2N5Owor5bO96LC3IDwgY2FueW9uOwor6LqnIDwgc2FuZGFsOwor6KGo6KaqIDwgY291c2luOwor6KeA5b+1IDwgbm90aW9uOwor6LihIDwgY3VybGVkOwor6KOB57irIDwgdGFpbG9yOwor5o6h57SNIDwgYWNjZXB0Owor6KOc56iuIDwgcmVzZWVkOwor5bCP56Kf5a2QIDwgc2F1Y2VyOwor6LKqIDwgZ3JlZWR5Owor5Yaw5p+xIDwgaWNpY2xlOwor6Iie6LmI5a62IDwgZGFuY2VyOwor6Zi/5aeoIDwgYXVudGllOwor57ea5LiKIDwgb25saW5lOwor6K2GIDwgc2NyZWFtOwor6Ku1IDwgbXV0dGVyOwor6ama6aetIDwgZnJpZ2h0Owor57Sg5o+PIDwgc2tldGNoOwor6ZaS5re3IDwgbG9pdGVyOwor6Km7IDwgb3JkZXJzOwor6KmXIDwgdG9cLXNweTsKK+aRn+aKsSA8IHRvXC1odWc7Civoh6rouqsgPCBpdHNlbGY7CivpgLLlj6MgPCBpbXBvcnQ7CivmjqHnpKYgPCBtaW5pbmc7Civopa4gPCBjb2xsYXI7Civmk77kuoIgPCBpbmZlc3Q7CivntZDlsL4gPCBlbmRpbmc7CivplqPmqJMgPCBnYXJyZXQ7CivoirHnlJ8gPCBwZWFudXQ7CivoopogPCBncmVhdmU7CivpgY7ku70gPCB1bmR1bHk7CivpqZ/pm6ggPCBzaG93ZXI7CivluYPluZUgPCBzY3JlZW47Civkvb/mv5XpgI8gPCBkcmVuY2g7CivooKkgPCBhXC10b2FkOwor6KCBIDwgbGFydmFlOwor5aiB5aOr5b+M6YWSIDwgd2hpc2t5Owor5YWJ5r6kIDwgbHVzdGVyOwor6YCd5Y67IDwgZWxhcHNlOwor6JujIDwgYmVldGxlOwor6JuMIDwgY3JpY2tlOwor5YWJ5ruRIDwgZ2xvc3N5Owor6YCV5ZCRIDwgcmFkaWFsOwor6JmWIDwgdG9cLWNyeTsKK+aJueipleWutiA8IGNyaXRpYzsKK+ebuOW3riA8IGRpZmZlcjsKK+iWkSA8IGdpbmdlcjsKK+mXnOW/gyA8IGNhcmluZzsKK+WcqOa3seiZlSA8IGRlZXBseTsKK+iUlCA8IHJhZGlzaDsKK+iTmiA8IG94YWxpYzsKK+iSjiA8IHBpbmFuZTsKK+aKtemBlCA8IGFycml2ZTsKK+WLneWIqeiAhSA8IHZpY3RvcjsKK+WcsOeUoiA8IGVzdGF0ZTsKK+mAo+Wtl+espuiZnyA8IGh5cGhlbjsKK+iPhiA8IGp1bmdsZTsKK+W7oumZpOi7jeWCmSA8IGRpc2FybTsKK+WxgOmdoiA8IGFzcGVjdDsKK+iMoiA8IHNlZGdlczsKK+i5uui5uuadvyA8IHNlZXNhdzsKK+a+seeyiSA8IHN0YXJjaDsKK+aomeamnCA8IGZsYXVudDsKK+iJoiA8IGFcLW1hc3Q7Civmu5Hpm6ogPCB0b1wtc2tpOwor5Zue57WVIDwgcmVidWZmOwor6KWq5bi2IDwgZ2FydGVyOwor57aB5L2PIDwgZmFzdGVuOwor55y85YWJIDwgdmlzaW9uOwor56Oo5Z2K5Li7IDwgbWlsbGVyOwor5qij5pysIDwgc2FtcGxlOwor54OI5aOrIDwgbWFydHlyOwor57K+5piOIDwgYXN0dXRlOwor6IWz6ZCQIDwgZmV0dGVyOwor6IO5IDwgY29va2VkOwor55m95p6cIDwgZ2lua2dvOwor5biG5biDIDwgY2FudmFzOwor6Lez6YCyIDwgcGx1bmdlOwor5pyJ6Zec6YCjIDwgcmVsYXRlOwor5aSa5qi55pyoIDwgd29vZGVkOwor6ZmE5LiKIDwgYXR0YWNoOwor5oqs6LW3IDwgdXBsaWZ0Owor6aGb5YCS6YGO5L6GIDwgaW52ZXJ0Owor6ICkIDwgcGxvdWdoOwor5ZCx5ZCx6IGyIDwgc3F1ZWFrOwor5bm+5LmOIDwgYWxtb3N0Owor54CJ5rmWIDwgbGFnb29uOwor572rIDwgaGluZGVyOwor572lIDwgaW1wZXRlOwor57Ch55u0IDwgc2ltcGx5Owor5pyq5a6M5oiQIDwgdW5kb25lOwor57moIDwgYVwta25vdDsKK+WFieaYryA8IHNvbGVseTsKK+e4hiA8IGFcLXJvcGU7CivntabkuoggPCBhY2NvcmQ7CivkuIPmnIjkuIDomZ8gPCBqdWx5XC0xOwor6KSH5pW4IDwgcGx1cmFsOwor55m95pCtIDwgbm9cLXVzZTsKK+mtlOizveWFiyA8IG1vc2FpYzsKK+iIqueoiyA8IGZsaWdodDsKK+e0qSA8IHRvXC1zZXc7CivntJ8gPCBhXC1zYXNoOwor57SDIDwgYVwtY29yZDsKK+aPtOaJiyA8IHN1Y2NvcjsKK+W4neWciyA8IGVtcGlyZTsKK+iMtuWjuiA8IHRlYXBvdDsKK+S8r+S7suWPlOWtoyA8IGVsZGVzdDsKK+exsiA8IGFwcGVhbDsKK+ebn+WciyA8IGFsbGllczsKK+ewiSA8IGRlcHV0eTsKK+ijgeaxuiA8IHJ1bGluZzsKK+evpSA8IGJ1bGdsZTsKK+WvpumrlCA8IGVudGl0eTsKK+eumSA8IHF1aXZlcjsKK+eDj+W5sumBlCA8IHVnYW5kYTsKK+e0ouWPliA8IHRvXC1hc2s7CivluK3ljbcgPCBlbmd1bGY7CivkuI3norrlr6YgPCB1bnRydWU7CivlnLDmr68gPCBjYXJwZXQ7Civnq4kgPCBhXC1ob2xlOwor5YWr5bqmIDwgb2N0YXZlOwor55So6KqeIDwgc3ludGF4Owor6by75Y+j6YOo5YiGIDwgbXV6emxlOwor5bCW6IGy5ZW85ZOtIDwgc3F1ZWFsOwor56+A57SEIDwgZnJ1Z2FsOwor56WPIDwgc2hyaW5lOwor6L6m5YWs5a6kIDwgb2ZmaWNlOwor5om/6Ku+IDwgZWZmb3J0Owor6KGb55SfIDwgaGVhbHRoOwor6KOc5pWRIDwgcmVtZWR5Owor5L+u6KiCIDwgcmV2aXNlOwor576F6aas5pu4IDwgcm9tYW5zOwor6L+E5LuKIDwgc29cLWZhcjsKK+WvpumamyA8IGFjdHVhbDsKK+edqiA8IHNweVwtb247CivnnL4gPCBtYXNzZXM7CivlmJfoqaYgPCB0b1wtdHJ5Owor5Z6C5bmVIDwgY2Fub3B5Owor6KCf562GIDwgY3JheW9uOwor5pyN5YuZ5ZOhIDwgd2FpdGVyOwor5ZG96YGL6Ki75a6aIDwgb3JkYWluOwor5Lq66aCt542F6LqrIDwgc3BoaW54Owor55qAIDwga2VybmVsOwor5LiN5bm45LmL5LqLIDwgbWlzaGFwOwor6JyY6Jub57ayIDwgY29id2ViOwor55aDIDwgaGFtbGV0Owor5Z+35LqLIDwgZGVhY29uOwor55W9IDwgZ3JvdW5kOwor5oiQ6ZW3IDwgbWF0dXJlOwor5rqd6YGTIDwgZ3Jvb3ZlOwor6Zi/57Gz5be0IDwgYW1vZWJhOwor6L6y5Lq6IDwgZmFybWVyOwor5ru+6JC9IDwgdHVtYmxlOwor6J6N6KejIDwgbW9sdGVuOwor5ZyW5qGIIDwgZGVzaWduOwor6IWU6Kq/IDwgYWNjZW50Owor5L+u6KOc5YygIDwgdGlua2VyOwor6LWw6YyvIDwgYXN0cmF5Owor54+UIDwgXChqYWRlXCk7CivnjpMgPCBwZWFybHk7Civnr4DnnIEgPCBzYXZpbmc7CivnjLogPCBqYWNrYWw7Civkv6HomZ8gPCBzaWduYWw7CivlsI/ospMgPCBraXR0ZW47CivooYzngrogPCBhY3Rpb247CivlpKfnkIbnn7MgPCBtYXJibGU7CivlnKjvuY3kuYvml4EgPCBiZXNpZGU7CivmjIHmnInkurogPCBob2xkZXI7CivnhYMgPCByZW1vdmU7CivmkpLlk4jmi4kgPCBzYWhhcmE7CivlpKfpkK7liIAgPCBzY3l0aGU7Civln4vkvI8gPCBhbWJ1c2g7CivntITnv7Dkuozmm7ggPCAyXC1qb2huOwor5bCN6KmxIDwgZGlhbG9nOwor56ym6JmfIDwgc3ltYm9sOwor54CMIDwgcGxlbnR5Owor6IO46YedIDwgYnJvb2NoOwor5r+1IDwgYVwtYmFuazsKK+aQreS5mCA8IGVtYmFyazsKK+a+vCA8IGJsZWFjaDsKK+Wom+aoguWgtCA8IHJlc29ydDsKK+WFq+WNgSA8IGVpZ2h0eTsKK+ewuOaPmiA8IHdpbm5vdzsKK+ajkuezliA8IHN1Y2tlcjsKK+eul+ebpCA8IGFiYWN1czsKK+mGg+m7g+eTnCA8IHBpY2tsZTsKK+a4qCA8IGFcLWNvdmU7Civmt58gPCB0dXJiaWQ7Civnsr7lipsgPCBlbmVyZ3k7CivmlLblibLogIUgPCByZWFwZXI7CivlgrPmn5MgPCBpbmZlY3Q7Civlt6XkurogPCB3b3JrZXI7CivmtJ8gPCBzbml2ZWw7Civms60gPCBhXC1yYWZ0Owor5rCrIDwgYW1vbmlhOwor6LW36Ki0IDwgdG9cLXN1ZTsKK+idl+ifsiA8IGxvY3VzdDsKK+WCs+aVmSA8IHByZWFjaDsKK+i8g+WlvSA8IGJldHRlcjsKK+iKseWciCA8IHdyZWF0aDsKK+apsCA8IGFcLXNwYXI7CivohY7oh58gPCBraWRuZXk7CivmqaQgPCBzdGFtZW47CivmqZwgPCBhXC1wb3N0Owor5qmVIDwgYVwtcHJvcDsKK+aosiA8IGp1anViZTsKK+i3r+eoiyA8IGNvdXJzZTsKK+WFiOWJjSA8IGJlZm9yZTsKK+aGgumssSA8IHN1bGxlbjsKK+ieuuaXi+mJlyA8IHdyZW5jaDsKK+WPg+itsOmZoiA8IHNlbmF0ZTsKK+epl+mjviA8IHRhc3NlbDsKK+aloiA8IHRpbmRlcjsKK+eRnumHkSA8IHJ1aWppbjsKK+aKseeXhSA8IGJlXC1pbGw7CivlgrPmjoggPCBpbXBhcnQ7Civou4rluqsgPCBnYXJhZ2U7CivmuKzph48gPCBzdXJ2ZXk7CivlrZfpppYgPCBwcmVmaXg7CivprZrlpKsgPCBmaXNoZXI7CivmpKcgPCBndXR0ZXI7Civmo4MgPCBhXC1wZWFyOwor5qGyIDwgcXVpbmNlOwor6Iqx5ZOoIDwgZ2FyaXNoOwor6LyV5ZKsIDwgbmliYmxlOwor5qKd57SLIDwgc3RyaXBlOwor6Ie05q27IDwgZGVhZGx5Owor5Lu75L2V5Lq6IDwgYW55b25lOwor6LSW6YeRIDwgcmFuc29tOwor6KGM5pifIDwgcGxhbmV0Owor5puAIDwgc3Rvcm15Owor5Zue5oa2IDwgcmVjYWxsOwor56mA6aGeIDwgY2VyZWFsOwor5YG15p+lIDwgZGV0ZWN0Owor5pe7IDwgaGVhdmVuOwor5a656KixIDwgcGVybWl0Owor5pWhIDwgcmVidWtlOwor5pWCIDwgZGVkdWN0Owor5Y2B5Zub6KGM6KmpIDwgc29ubmV0Owor5pOTIDwgdG9cLXJ1YjsKK+aciemBk+W+tyA8IGNoYXN0ZTsKK+a8o+a8qiA8IHJpcHBsZTsKK+S6jOiAheS5i+S4gCA8IGVpdGhlcjsKK+aNvSA8IGNsdXRjaDsKK+Wci+WkliA8IGFicm9hZDsKK+a2sumrlCA8IGxpcXVpZDsKK+iXneihk+WutiA8IGFydGlzdDsKK+W0juW2hyA8IHJ1Z2dlZDsKK+mkkemkkSA8IHBhc3RyeTsKK+mkkOmjsiA8IHJlcGFzdDsKK+S9v+iGqOiEuSA8IGRpbGF0ZTsKK+S9leiZlSA8IHdoZW5jZTsKK+S/oeeUqCA8IGNyZWRpdDsKK+e0hOe/sOS4ieabuCA8IDNcLWpvaG47CivlsI/mj5DnkLQgPCBmaWRkbGU7Civlm6DlrZAgPCBmYWN0b3I7CivmgZ8gPCBzY2FyZWQ7Civmi7Pmk4ogPCBib3hpbmc7Civou5/ljJYgPCBzb2Z0ZW47CivlronoqbMgPCBzZXJlbmU7Civmh7bmtIvmtIsgPCBsYXppbHk7CivntITnv7DkuIDmm7ggPCAxXC1qb2huOwor5omj55WZIDwgZGV0YWluOwor5p2+6ZueIDwgZ3JvdXNlOwor5byjIDwgbWlkZGxlOwor6auY5bqmIDwgaGVpZ2h0Owor5buGIDwgYVwtcm9vbTsKK+eVsOaVmSA8IGhlcmVzeTsKK+W3pCA8IGFcLW1hbmU7Civlt5ggPCBzdW1taXQ7CivltpMgPCBib3NoYW47CivltL8gPCBjbGlmZnM7CivlnLDkuLsgPCBhXC1ob3N0Owor6aas5oiy5ZyYIDwgY2lyY3VzOwor6auY5bGxIDwgYWxwaW5lOwor55Sf5ravIDwgY2FyZWVyOwor5L2c6ICFIDwgYXV0aG9yOwor5oyq5aiBIDwgbm9yd2F5Owor5bCFIDwgc3ViZHVlOwor5bCL55qEIDwgaG9taW5nOwor5a+OIDwgZHJvd3N5Owor6aas6Yi06JavIDwgcG90YXRvOwor5a2+IDwgYVwtYmFieTsKK+S9v+i9ieWQkSA8IGRpdmVydDsKK+aykuacieS6uiA8IG5vYm9keTsKK+WsgyA8IHNpc3RlcjsKK+WrqiA8IGhhbmtlcjsKK+WpvCA8IHBlcnNvbjsKK+WNmueJqemkqCA8IG11c2V1bTsKK+WokiA8IG1hdHJvbjsKK+aci+m7qCA8IGNsaXF1ZTsKK+emruaLnOWggiA8IGNoYXBlbDsKK+a3t+ihgCA8IGh5YnJpZDsKK+i3i+a2iSA8IHRydWRnZTsKK+WkrCA8IHBhcnRlZDsKK+WDheWDhSA8IGJhcmVseTsKK+a8j+aWlyA8IGZ1bm5lbDsKK+S4jemAj+aYjiA8IG9wYXF1ZTsKK+WgpyA8IGFkam9pbjsKK+S5s+mgrSA8IG5pcHBsZTsKK+eQhuirliA8IHRoZW9yeTsKK+S7i+izqiA8IG1lZGl1bTsKK+WavyA8IGFcLWx1bXA7CivnlLHmlrwgPCBkdWVcLXRvOwor5ZmaIDwgZmF0aG9tOwor5ZKM6aKoIDwgYnJlZXplOwor5ZaGIDwgYVwtc2FnZTsKK+aJtuakjSA8IGZvc3RlcjsKK+eSsOeQgyA8IGdsb2JhbDsKK+WUqyA8IHRvXC1odW07CivpmaTkuobkuYvlpJYgPCBleGNlcHQ7CivllIggPCB0b1wtc29iOwor5ZOkIDwgamFyZ29uOwor5L6/5rGgIDwgdXJpbmFsOwor5ZGuIDwgdG9cLXNpdDsKK+WOjiA8IHNldHRsZTsKK+Wuo+eosSA8IGFzc2VydDsKK+WTgOi+rSA8IGxhbWVudDsKK+aJgeahg+mrlCA8IHRvbnNpbDsKK+WLhCA8IGFjdGl2ZTsKK+S5vumFqiA8IGNoZWVzZTsKK+abtOmrmCA8IGhpZ2hlcjsKK+WBjOWkpyA8IHNvXC1iaWc7CivmraPmlrnlvaIgPCBzcXVhcmU7CivogozogokgPCBtdXNjbGU7CivpqZrmgZAgPCBhcHBhbGw7Civlj6/kv6Hku7sgPCB0cnVzdHk7CivmloflrbjlrrYgPCB3cml0ZXI7CivmiYvmp40gPCBwaXN0b2w7Civlg6wgPCBjbGV2ZXI7Civlgo4gPCB0b3BwbGU7Civnp7vli5XlvI8gPCBtb2JpbGU7CivlrrbnlZwgPCBjYXR0bGU7Civnpo/pn7MgPCBnb3NwZWw7CivotbfmupAgPCBvcmlnaW47CivlgIMgPCBkYW1hZ2U7CivkuoLot7MgPCBib3VuY2U7CivliLDmraTomZUgPCBoaXRoZXI7Civohr3lpKcgPCBkYXJpbmc7Civku5ogPCB0b1wtZmx5Owor6KO96Zm25bel5Lq6IDwgcG90dGVyOwor5YGl5YWoIDwgcm9idXN0Owor5LaBIDwgbm9pc2VzOwor5LWnIDwgdG9cLWR5ZTsKK+S0pSA8IGFcLXN0YWc7Civks74gPCBhblwtb3dsOwor5ouM5Zi0IDwgYmlja2VyOwor5omT5pOKIDwgdG9cLWhpdDsKK+SzhyA8IHBhcnJvdDsKK+esqOaLmSA8IGNsdW1zeTsKK+SyuSA8IG9zcGVyeTsKK+S6uuWPo+iqv+afpSA8IGNlbnN1czsKK+SyjCA8IGFcLWZpc2g7CivksZUgPCBsYWJydXM7CivksKMgPCBhblwtZWxmOwor55GV55a1IDwgc3RpZ21hOwor5K+oIDwgdG9cLXJhcDsKK+SvgSA8IGFcLW11bGU7Civloqjopb/lk6UgPCBtZXhpY287CivmuIXnnJ/lr7ogPCBtb3NxdWU7CivkraogPCBncmFpbnM7CivkraUgPCBhXC1iYWl0Owor5K2MIDwgY29uZ2VlOwor5Ky4IDwgYVwtbWVhbDsKK+SskSA8IGFcLWdhbGU7Civkq6wgPCB0b1wtYm93Owor5rW36KOhIDwgbWFyaW5lOwor5ZGz6YGTIDwgZmxhdm9yOwor5Ki6IDwgY2xvdWR5Owor5KifIDwgcHVkZGxlOwor5KiHIDwgYVwtcGFpcjsKK+eEoeirluWmguS9lSA8IGFueWhvdzsKK+SntCA8IGFcLWJpcmQ7Civkp5EgPCBhXC1kaWtlOwor5Ye65Z+D5Y+K6KiYIDwgZXhvZHVzOwor5a6J5ZOl5ouJIDwgYW5nb2xhOwor5pyJ6Jel55mu6ICFIDwgYWRkaWN0Owor5KWqIDwgdG9cLWN1cDsKK+SlqCA8IGFcLWZpbGU7CivkpY0gPCBhXC13aGlwOwor5Lul6Imy5YiXIDwgaXNyYWVsOwor56eB6KqeIDwgbXVybXVyOwor6Yej6a2a55So5YW3IDwgdGFja2xlOwor5pyA6L+RIDwgcmVjZW50Owor5KOYIDwgYVwtaGFsbDsKK+a4heeYpiA8IG1lYWdlcjsKK+SjiCA8IGFcLWxhbmU7Civph5jmm7jph50gPCBzdGFwbGU7CivlsrjkuIogPCBhc2hvcmU7Civnhafnm7jmqZ8gPCBjYW1lcmE7CivkoLAgPCBjb2lsZWQ7CivkoKQgPCB0b2RkbGU7CivntKHnuZTogIUgPCB3ZWF2ZXI7CivkuK3pgJQgPCBtaWR3YXk7Civmlq/mi4nlpKsgPCBzbGF2aWM7CivknZwgPCBhXC1saW9uOwor5J2EIDwgY293cGVhOwor5L+E576F5pavIDwgcnVzc2lhOwor5JyeIDwgYVwtZG9zZTsKK+acqOijvSA8IHdvb2RlbjsKK+WuieeEtiA8IHNhZmVseTsKK+mjouiNkiA8IGZhbWluZTsKK+SYsCA8IGFcLWhvb2Q7Civotr7lsJYgPCB0aXB0b2U7CivkmKwgPCBhcm1vdXI7CivkmIwgPCBnYWRmbHk7Civkl6sgPCBhXC1mcm9nOwor5Ja5IDwgd2VldmlsOwor5L+h5aWJIDwgYmVsaWVmOwor5oiQ5pWIIDwgZWZmZWN0Owor5JSvIDwgc2FsdGVkOwor55O25a2QIDwgYm90dGxlOwor5JSiIDwgY2F0aGF5Owor5JSPIDwgYVwtbHVzaDsKK+S4iemHjSA8IHRyZWJsZTsKK+STpiA8IGFcLXJ1bGU7CivlrqLmsKMgPCBwb2xpdGU7Civkk4QgPCBncmFzc3k7Civmta7okZcgPCBhZmxvYXQ7Civororpu5EgPCBkYXJrZW47CivkkokgPCBhXC1sb25nOwor5JKCIDwgYW5cLW9hcjsKK+W8k+eureaJiyA8IGFyY2hlcjsKK+SRuiA8IGFcLXNhaWw7CivkkbQgPCBhXC1ib2F0Owor5rWu6I+vIDwgdmFuaXR5Owor5JCmIDwgc2xlZXB5Owor5JClIDwgc3Rpbmt5Owor6aeB5palIDwgcmVmdXRlOwor5LiN6YGpIDwgdW53ZWxsOwor5I+qIDwgdGVuZG9uOwor576e6L6xIDwgYmFmZmxlOwor55WZ5LiLIDwgcmVtYWluOwor5I+jIDwgbWFnZ290Owor5LiK6YKKIDwgdXBzaWRlOwor5I6xIDwgYVwtZHJhZzsKK+iDoeahgyA8IHdhbG51dDsKK+SNgyA8IGFcLXZhc2U7CivlsIHlu7ogPCBmZXVkYWw7Civlkozol7kgPCBraW5kbHk7Civki5AgPCBmYWJyaWM7CivkiqcgPCBhXC1mYXJ0Owor5aGe54i+54m5IDwgY2VsdGljOwor5IqbIDwgc2hyZWRzOwor56m/5rSeIDwgcGllcmNlOwor5Ii0IDwgYVwtY2FnZTsKK+SIjiA8IGFcLWxlYWY7Civkh5ogPCB0b1wtdGFwOwor5IeBIDwgYVwtY2F2ZTsKK+SGvCA8IGFcLW5lc3Q7Civkhq4gPCB0b1wtZGlwOwor5IaZIDwgYVwta2lsbjsKK+WuouajpyA8IHRhdmVybjsKK+WPqemgrSA8IGtvd3RvdzsKK+aIv+WuoiA8IHRlbmFudDsKK+esrOWbmyA8IGZvdXJ0aDsKK+SEuSA8IGFcLXllYXI7Civph47ppJAgPCBwaWNuaWM7CivkhJggPCBhXC1yaXRlOwor5IOlIDwgc3RvbmVzOwor5bCI5a62IDwgZXhwZXJ0Owor5IK3IDwgYnJva2VuOwor5L2/5b6XIDwgdXNhYmxlOwor47+8IDwgYVwtYm93bDsKK+O/uyA8IGFcLXRyYXk7CivmiZPlrZflk6EgPCB0eXBpc3Q7Civjv60gPCBjcmFja3M7Civjv6cgPCBmaWVsZHM7CivonIPmma8gPCBtaXJhZ2U7Civjv5QgPCBhXC13YXJ0Owor5Y+N6aeBIDwgcmV0b3J0Owor5bCR5aWzIDwgbWFpZGVuOwor4723IDwgZHJvcHN5Owor47y+IDwgYnJpY2tzOwor5rW357a/IDwgc3BvbmdlOwor5pif5pyf5pelIDwgc3VuZGF5Owor47yEIDwgcGVhcmxzOwor55So5LqOIDwgdXNlXC1pbjsKK+O4vyA8IGFcLWNhbGY7CivmmZrpo68gPCBzdXBwZXI7Civjt4sgPCBlbWJlcnM7CivokaHokITkub4gPCByYWlzaW47Civos63ms6ggPCBzdGFrZXM7CivjtqQgPCB0b1wtZnJ5Owor47aIIDwgY3JlZWtzOwor56We6KutIDwgb3JhY2xlOwor47WdIDwgbW92aW5nOwor5LiN6KaBIDwgZG9uJyd0XCE7CivjtJ4gPCBmbHVlbnQ7CivmiJHoh6rlt7EgPCBteXNlbGY7CivmnZDnqY0gPCB2b2x1bWU7CivmiYHlnJMgPCBvYmxhdGU7Civjs4wgPCBtYXJzaHk7CivjsZ4gPCBkYW5nZXI7CivjsY0gPCB0b1wtb3dlOwor5Y+u6Yi0IDwgamluZ2xlOwor47CDIDwgYVwtdHJlZTsKK+Wkp+atpei1sCA8IHN0cmlkZTsKK+esrOWFqyA8IGVpZ2h0aDsKK+S4iuihqyA8IGJsb3VzZTsKK+OuliA8IHRvXC1sYXk7CivjrbEgPCBhXC1jYXNlOwor5q+U6LyD5Zac5q2hIDwgcHJlZmVyOwor5a+25aGUIDwgcGFnb2RhOwor46u6IDwgYnlnb25lOwor5LiN5YWs5bmzIDwgdW5mYWlyOwor5a6i5oi2IDwgY2xpZW50Owor46uFIDwgYVwtZmxhZzsKK+OquSA8IHRvXC1yb2I7CivjqbIgPCBhXC1maXN0Owor6Iqt6JW+6IieIDwgYmFsbGV0Owor46i+IDwgYVwtdHlwZTsKK+OnpyA8IGFcLWNvbWI7Civlrrbluq0gPCBmYW1pbHk7Civmn4/mnpcgPCBiZXJsaW47CivjppQgPCBzaWxrbHk7CivmnInnvaogPCBndWlsdHk7CivjpoogPCBsYXZpc2g7CivjpoUgPCB1bmVhc3k7CivpjbXluL0gPCBrZXljYXA7CivlsI/ljIUgPCBwYWNrZXQ7CivkuqjnibkgPCBodW50ZXI7CivmiZPlgrcgPCBicnVpc2U7CivpoIHpgoogPCBtYXJnaW47CivmiYvlhoogPCBtYW51YWw7CivjoYEgPCBhXC1yb2JlOwor46CyIDwgcmlwcGVkOwor54mZ6b2SIDwgZGVudGFsOwor5ZCN6KiAIDwgc2F5aW5nOwor4525IDwgYVwtaGFyZTsKK+iAgOecvCA8IGRhenpsZTsKK+S8r+WIqeiMsiA8IGJlbGl6ZTsKK+a4r+W9jiA8IGhhcmJvcjsKK+iDjOW4tiA8IGJyYWNlczsKK+ieuuaXi+W9oiA8IHNwaXJhbDsKK+OavCA8IGFcLWdpcmw7CivjmrsgPCBzb2RvbXk7CivjmowgPCBhXC1iYW5kOwor45m5IDwgYVwtZGFtcDsKK+avlOi8g+WwkSA8IGxlc3NlcjsKK+eKr+mMryA8IHRvXC1lcnI7CivlnKjmraTomZUgPCBoZXJlaW47CivmmrTomZAgPCBicnV0YWw7CivooqvlrrPkurogPCB2aWN0aW07CivpmL/lpJrlsLzmlq8gPCBhZG9uaXM7Civms6LomK0gPCBwb2xhbmQ7CivjlLogPCBhblwtYWdlOwor45SJIDwgdG9cLWRpZzsKK+OTtSA8IHN3b3JkczsKK+OToCA8IGFcLWZsYXc7Civjk4UgPCBmcm96ZW47CivmmJ/pm7IgPCBuZWJ1bGE7Civmtbfni7ggPCBiZWF2ZXI7CivpmL/ms6LnvoUgPCBhcG9sbG87Civkvp3lgY4gPCBuZXN0bGU7Civmh6blpKsgPCBjb3dhcmQ7Civkvb/ogLPogb4gPCBkZWFmZW47CivkvJHmg5wgPCByZWNlc3M7Civok6zprIYgPCBmbHVmZnk7Civno4HpkLUgPCBtYWduZXQ7CivmoKHlnJIgPCBjYW1wdXM7Civororos6ogPCBnb1wtYmFkOwor576p6LOj5pyDIDwgYmF6YWFyOwor576K6IKJIDwgbXV0dG9uOwor5bel5L2c5a6kIDwgc3R1ZGlvOwor5ZCK6JGXIDwgZGFuZ2xlOwor57Sr576F6Jit6ImyIDwgdmlvbGV0Owor6ZaA5aSW5ryiIDwgbGF5bWFuOwor5oaO5oOhIDwgbG9hdGhlOwor6YCP5Y2w54mI5Y2w5Yi3IDwgb2Zmc2V0Owor5Zyo6ZmE6L+RIDwgbmVhcmJ5Owor5oaO5oGoIDwgZGV0ZXN0Owor5aGX5rK55pa8IDwgYW5vaW50Owor6Zuc6LKo5ZWGIDwgZ3JvY2VyOwor5Zac5YqHIDwgY29tZWR5Owor5a+S5YasIDwgd2ludHJ5Owor6LK25palIDwgZGVtb3RlOwor5Zau5L2NIDwgYVwtdW5pdDsKK+eQg+aLjSA8IHJhY2tldDsKK+e2reWQvueIviA8IHVpZ2h1cjsKK+iLsembhOW8jyA8IGhlcm9pYzsKK+WtkOW9iCA8IGJ1bGxldDsKK+eQhumrruW4qyA8IGJhcmJlcjsKK+WCreS6uumgmOePrSA8IGJ1dGxlcjsKK+WuieWfuSA8IGFtcGVyZTsKK+mjn+anvSA8IG1hbmdlcjsKK+iDjOWPmyA8IGJldHJheTsKK+i0luWbniA8IHJlZGVlbTsKK+eNqOeJuSA8IHVuaXF1ZTsKK+avm+e5lOmBi+WLleihqyA8IGplcnNleTsKK+mHkeiJsiA8IGdvbGRlbjsKK+i1t+azoeayqyA8IHNlZXRoZTsKK+S4jeaIsOS4jeWSjCA8IG5vXC13YXI7CivlrqTlhacgPCBpbmRvb3I7Civos5PlrqIgPCBndWVzdHM7CivnkZ7lhbggPCBzd2VkZW47CivotIrlkIwgPCBhc3NlbnQ7CivoloTntJkgPCB0aXNzdWU7CivmgrbnhrEgPCBzdWx0cnk7CivmmJ/mnJ/kupQgPCBmcmlkYXk7CivmmJ/mnJ/kuIAgPCBtb25kYXk7Civnj77lrZggPCBleHRhbnQ7CivppJDlt74gPCBuYXBraW47Civku6XlpKogPCBldGhlclwtOwor5be054i+5bmyIDwgYmFsa2FuOwor55Gj5LqLIDwgdHJpZmxlOwor5qC85qC856yRIDwgZ2lnZ2xlOwor6aCQ566XIDwgYnVkZ2V0Owor5a2f5Yqg5ouJIDwgYmVuZ2FsOwor6Z2S6YqFIDwgYnJvbnplOwor6aCR56ulIDwgdXJjaGluOwor5pyD5q27IDwgbW9ydGFsOwor5LiN54S2IDwgbm90XC1zbzsKK+iugOiAhSA8IHJlYWRlcjsKK+a0quawtCA8IGRlbHVnZTsKK+eZveiYreWcsCA8IGJyYW5keTsKK+acqOaWmSA8IGx1bWJlcjsKK+aEm+W+t+iPryA8IGVkd2FyZDsKK+a3seWMliA8IGRlZXBlbjsKK+ePvuWcqCA8IG1vZGVybjsKK+iYh+agvOiYreW4vSA8IGJvbm5ldDsKK+iuiue0hSA8IHJlZGRlbjsKK+a4m+S9jumAn+W6piA8IHJldGFyZDsKK+eMlueLgiA8IHNhdmFnZTsKK+a3qOWMliA8IHB1cmlmeTsKK+W+jOmAgCA8IHJlY29pbDsKK+mYv+aLieaWr+WKoCA8IGFsYXNrYTsKK+eJh+iqniA8IHBocmFzZTsKK+a1geaYnyA8IG1ldGVvcjsKK+aCsuatjiA8IGJld2FpbDsKK+WtmOWEsiA8IG1lbW9yeTsKK+S9v+WFt+mrlOWMliA8IGVtYm9keTsKK+WFuOeNhOmVtyA8IHdhcmRlbjsKK+eci+S4jeimiyA8IHVuc2VlbjsKK+S9v+S9nOWYlCA8IHNpY2tlbjsKK+ixoeW+tSA8IGVtYmxlbTsKK+S4jeavlCA8IHVubGlrZTsKK+Wkp+mMmCA8IHNsZWRnZTsKK+acgOaWsCA8IGxhdGVzdDsKK+S4u+aVmSA8IGJpc2hvcDsKK+aBkOawtOeXhSA8IHJhYmllczsKK+iZleWlsyA8IHZpcmdpbjsKK+izo+S4uyA8IHNlbGxlcjsKK+e+iuavmyA8IGZsZWVjZTsKK+WQq+awtCA8IHdhdGVyeTsKK+WKoO+5jeaWvCA8IGltcG9zZTsKK+iZleWigyA8IHBsaWdodDsKK+itsOeoiyA8IGFnZW5kYTsKK+aDoeaEjyA8IG1hbGljZTsKK+acrOW3niA8IGhvbnNodTsKK+apoeearuaQvSA8IGVyYXNlcjsKK+aVuOmHjyA8IGFtb3VudDsKK+aWt+iogCA8IGFmZmlybTsKK+a1quWtkCA8IGxvYWZlcjsKK+acieaEjyA8IGludGVuZDsKK+azouWjq+mgkyA8IGJvc3RvbjsKK+WQjea1gSA8IGdlbnRyeTsKK+WPsOeBoyA8IHRhaXdhbjsKK+S4jeaZuiA8IHVud2lzZTsKK+aVhemanCA8IGdsaXRjaDsKK+WQiOazlSA8IGxhd2Z1bDsKK+WQjeawoyA8IHJlcHV0ZTsKK+Wkp+i3ryA8IGF2ZW51ZTsKK+a1t+WgsSA8IHBvc3RlcjsKK+S6puWNsyA8IG5hbWVseTsKK+e2k+e0gOS6uiA8IGJyb2tlcjsKK+e0heiYv+iUlCA8IGNhcnJvdDsKK+aChOaChOWcsCA8IGdlbnRseTsKK+aaluawoyA8IGhlYXRlcjsKK+S9v++5jeiDveWkoCA8IGVuYWJsZTsKK+WQuOaUtiA8IGFic29yYjsKK+aEj+WcliA8IGludGVudDsKK+e3o+mjviA8IGZyaW5nZTsKK+mBv+mbo+aJgCA8IHJlZnVnZTsKK+WRqOW5tCA8IGFubnVhbDsKK+eZvem6teWFkiA8IGhlcm9pbjsKK+WPo+a4tCA8IHRoaXJzdDsKK+mHneazlSA8IHN0aXRjaDsKK+a2iOWMliA8IGRpZ2VzdDsKK+ato+mWgCA8IHBvcnRhbDsKK+a1t+WToSA8IHNhaWxvcjsKK+WQkOaguSA8IGlwZWNhYzsKK+mbmemHjSA8IGRvdWJsZTsKK+mdkuiLlCA8IGxpY2hlbjsKK+WkmuiuiiA8IGZpY2tsZTsKK+mJi+W6iiA8IHBsYW5lcjsKK+mjvOmkiuiAhSA8IGZlZWRlcjsKK+WQjeacmyA8IHJlbm93bjsKK+WPlua2iCA8IGNhbmNlbDsKK+mCo+mCiiA8IHlvbmRlcjsKK+W3tOaWr+WFiyA8IGJhc3F1ZTsKK+WKiOmWiyA8IGNsZWF2ZTsKK+mFkueqqSA8IGRpbXBsZTsKK+WLleitsCA8IG1vdGlvbjsKK+aUvumAkCA8IGJhbmlzaDsKK+mFjeeosSA8IHdvcnRoeTsKK+a0u+WhniA8IHBpc3RvbjsKK+iOq+aWr+enkSA8IG1vc2NvdzsKK/ClnIwgPCBhXC1jb2F0Owor5p2P5LuBIDwgYWxtb25kOwor5pyI5qGC5qi5IDwgbGF1cmVsOwor6aCQ5pyfIDwgZXhwZWN0Owor56eJ5YWsIDwganVzdGx5Owor56ax5ZGKIDwgcHJheWVyOwor5pu05aSnIDwgYmlnZ2VyOwor5Lmd5Y2BIDwgbmluZXR5Owor56C06IiKIDwgc2hhYmJ5Owor5LiA5bi2IDwgcmVnaW9uOwor56Kn546JIDwgamFzcGVyOwor5b6u6JaE55qEIDwgbWVhZ3JlOwor5Y+q5pivIDwgbWVyZWx5Owor5bCP5reY5rCjIDwgcmFzY2FsOwor5oOh5YyWIDwgd29yc2VuOwor5LiA5bGAIDwgaW5uaW5nOwor54Sh5rOV54Sh5aSpIDwgb3V0bGF3Owor5pyq5L6GIDwgZnV0dXJlOwor6YSJ57SzIDwgc3F1aXJlOwor6Kmt6KiIIDwgZGVjZWl0Owor6LGB5YWNIDwgZXhlbXB0Owor5b+D55CGIDwgbWVudGFsOwor54mi54miIDwgZmlybWx5Owor6aKo5L+XIDwgY3VzdG9tOwor8KCAiSA8IGFcLWhpbGw7CivlibXovqYgPCBsYXVuY2g7CivpgY7ph48gPCBleGNlc3M7CivotbfoqLTogIUgPCBzdWl0b3I7CivnhpTop6MgPCBmdXNpb247Civnn7Poi7EgPCBxdWFydHo7Civlt7Tmi7/ppqwgPCBwYW5hbWE7CivljIXnrqEgPCBhc3N1cmU7Civli5XohIggPCBhcnRlcnk7CivmnIDkvY4gPCBsb3dlc3Q7Civnpa3lj7ggPCBwcmllc3Q7CivnibnmraQgPCBoZXJlYnk7Civpm4zolYogPCBwaXN0aWw7CivlubLpoJAgPCBtZWRkbGU7CivljJbnn7MgPCBmb3NzaWw7CivmjZXpr6joiLkgPCB3aGFsZXI7CivmsLTms6UgPCBjZW1lbnQ7CivmsLTms6EgPCBidWJibGU7CivmvJToqqrogIUgPCBvcmF0b3I7Civok4vniL4gPCBnYWVsaWM7CivliY3ovKkgPCBzZW5pb3I7Civmk7rmqKPlrZAgPCBkb1wtc3RoOwor5Ymv6KmeIDwgYWR2ZXJiOwor5Y2x5qmfIDwgY3Jpc2lzOwor5LiN5YWsIDwgdW5qdXN0Owor5rOV5ZyLIDwgZnJhbmNlOwor5rKJ5oCdIDwgcG9uZGVyOwor5pqX5aChIDwgYnVua2VyOwor54uX5bGLIDwga2VubmVsOwor5pq05ZCbIDwgdHlyYW50Owor5rOi5pav5bC85LqeIDwgYm9zbmlhOwor5LiJ5YCNIDwgdHJpcGxlOwor6Zyc55m9IDwgZnJvc3R5Owor5ZCm5YmHIDwgaWZcLW5vdDsKK+WIhumQmCA8IG1pbnV0ZTsKK+iRrOemriA8IGJ1cmlhbDsKK+awtOahtiA8IGJ1Y2tldDsKK+aSpOmKtyA8IHJlcGVhbDsKK+WKoOaLv+WkpyA8IGNhbmFkYTsKK+WPjeWwhCA8IHJlZmxleDsKK+S4jeS4uSA8IGJodXRhbjsKK+mdnua0siA8IGFmcmljYTsKK+WJneidlSA8IGRlbnVkZTsKK+S4gOS4siA8IHN0cmFuZDsKK+e6luavmyA8IGNpbGl1bTsKK+efsyA8IHN0b25lOwor55+tIDwgc2hvcnQ7Civlv6sgPCByYXBpZDsKK+WcqCA8IGJlXC1hdDsKK+S7liA8IG90aGVyOwor55+iIDwgYXJyb3c7CivliLAgPCBnb1wtdG87Civor7QgPCBzcGVhazsKK+i/hSA8IHF1aWNrOwor5ZywIDwgZWFydGg7Civlv4MgPCBoZWFydDsKK+S4iyA8IHVuZGVyOwor6L6tIDwgd29yZHM7Civlvq4gPCBzbWFsbDsKK+WutiA8IGhvdXNlOwor5b6hIDwgZHJpdmU7CivlkI4gPCBxdWVlbjsKK+W+hSA8IHRyZWF0Owor6L+YIDwgc3RpbGw7Civlj5EgPCBpc3N1ZTsKK+W9qyA8IGNhcnZlOwor5oOzIDwgdGhpbms7CivnnaEgPCBzbGVlcDsKK+i9iSA8IHNoaWZ0Owor5omAIDwgcGxhY2U7CivovKogPCB3aGVlbDsKK+S4iSA8IHRocmVlOwor6LyVIDwgbGlnaHQ7CivlvI8gPCBzdHlsZTsKK+agtyA8IHNoYXBlOwor5bu6IDwgYnVpbGQ7Civlu7YgPCBkZWxheTsKK+ebsiA8IGJsaW5kOwor5bujIDwgYnJvYWQ7Civlo7AgPCBzb3VuZDsKK+W3pSA8IGxhYm9yOwor55uGIDwgYmFzaW47Civnm4MgPCBnbGFzczsKK+atoyA8IHJpZ2h0Owor5bq4IDwgdXN1YWw7CivlpbMgPCB3b21hbjsKK+WKmyA8IHBvd2VyOwor6LqRIDwgd2F2ZXI7Civlm6AgPCBjYXVzZTsKK+mHjSA8IGhlYXZ5Owor55qHIDwgcm95YWw7CivluocgPCBjb3ZlcjsKK+asoSA8IG9yZGVyOwor5Y+jIDwgbW91dGg7Civnmb0gPCB3aGl0ZTsKK+W5vSA8IHF1aWV0Owor5pWZIDwgdGVhY2g7Civlho0gPCBhZ2FpbjsKK+awlCA8IHN0ZWFtOwor5L+hIDwgdHJ1c3Q7CivljJcgPCBub3J0aDsKK+i5siA8IHNxdWF0Owor6LmfIDwgdHJhY2U7CivluYUgPCBwaWVjZTsKK+WFpSA8IGVudGVyOwor5YWIIDwgZmlyc3Q7CivmsLQgPCB3YXRlcjsKK+W3tyA8IGFsbGV5Owor56yRIDwgc21pbGU7Civnq4sgPCBzdGFuZDsKK+i3qiA8IGtuZWVsOwor6amsIDwgaG9yc2U7Civlt6ggPCBsYXJnZTsKK+eWkSA8IGRvdWJ0Owor5YipIDwgZ2FpbnM7CivmnpwgPCBmcnVpdDsKK+i1pyA8IGJsdXNoOwor6IezIDwgcmVhY2g7CivmuIUgPCBjbGVhcjsKK+eJqSA8IHRoaW5nOwor5bWMIDwgaW5sYXk7CivnlLIgPCBhcm1vcjsKK+eUsCA8IGZpZWxkOwor6K64IDwgYWxsb3c7CivlhasgPCBlaWdodDsKK+W0liA8IGNsaWZmOwor5bSOIDwgcm91Z2g7CivljZcgPCBzb3V0aDsKK+iJsiA8IGNvbG9yOwor55OcIDwgbWVsb247CivnrpcgPCBjb3VudDsKK+iziiA8IHRoaWVmOwor6LKvIDwgc3RvcmU7CivosqggPCBnb29kczsKK+avjyA8IGV2ZXJ5Owor5bGsIDwgY2xhc3M7CivosaogPCBicmF2ZTsKK+ixhiA8IGJlYW5zOwor5LiDIDwgc2V2ZW47CivlsJYgPCBzaGFycDsKK+WwhCA8IHNob290Owor56m6IDwgZW1wdHk7CivmioAgPCBza2lsbDsKK+WvuiA8IGNvdXJ0Owor5a+rIDwgd3JpdGU7Civoi7EgPCBwZXRhbDsKK+WvhiA8IGRlbnNlOwor6ZKxIDwgbW9uZXk7CivlrrkgPCBsb29rczsKK+WutSA8IG5pZ2h0Owor5aeLIDwgYmVnaW47CivlrqIgPCBndWVzdDsKK+eJhyA8IHNsaWNlOwor56CUIDwgZ3JpbmQ7Civml6kgPCBlYXJseTsKK+eNuyA8IG9mZmVyOwor5426IDwgb3R0ZXI7CivnjbggPCBiZWFzdDsKK+eNqCA8IGFsb25lOwor6K2mIDwgZ3VhcmQ7CivlrZggPCBleGlzdDsKK+itiSA8IHByb29mOwor6KydIDwgdGhhbms7CivnjJwgPCBndWVzczsKK+WsiSA8IGVuam95Owor6buRIDwgYmxhY2s7CivorIEgPCB2aXNpdDsKK+WJkSA8IHN3b3JkOwor5LmQIDwgaGFwcHk7CivnuqcgPCBsZXZlbDsKK+S4viA8IHJhaXNlOwor6K+BIDwgcHJvdmU7CivnhacgPCBzaGluZTsKK+iqkyA8IHN3ZWFyOwor576kIDwgZ3JvdXA7CivoqoIgPCB0ZW1wdDsKK+S8pCA8IHdvdW5kOwor5patIDwgc2V2ZXI7Civku7cgPCBwcmljZTsKK+iEkSA8IGJyYWluOwor6KeEIDwgcnVsZXM7CivlqJEgPCBkYW5jZTsKK+egtCA8IGJyZWFrOwor5rO9IDwgbWFyc2g7Civnh7sgPCBzbW9rZTsKK+e0pyA8IHRlbnNlOwor6Ke4IDwgdG91Y2g7Civoo4UgPCBkcmVzczsKK+aysyA8IHJpdmVyOwor6KGAIDwgYmxvb2Q7CivmipUgPCB0aHJvdzsKK+WltCA8IHNsYXZlOwor5YiAIDwga25pZmU7CivopZ8gPCBsYXBlbDsKK+WWnSA8IGRyaW5rOwor6KSqIDwgc3RyaXA7CivlpKIgPCBkcmVhbTsKK+mUmSA8IGVycm9yOwor5qGIIDwgdGFibGU7CivljbAgPCBwcmludDsKK+WjkyA8IHByZXNzOwor54OIIDwgZmllcnk7Civlo4cgPCBhbHRhcjsKK+ijgiA8IHNwbGl0Owor6KK0IDwgcGFudHM7CivlopMgPCBncmF2ZTsKK+eCjiA8IGZsYW1lOwor54GwIDwgYXNoZXM7CivloZcgPCBzbWVhcjsKK+aVjCA8IGVuZW15Owor5aGUIDwgdG93ZXI7CivmgIAgPCBib3NvbTsKK+e9qiA8IGNyaW1lOwor6J+yIDwgd29ybXM7Civmv7EgPCBiZWFjaDsKK+aRmCA8IHBsdWNrOwor5pa9IDwgZ3JhbnQ7CivmqKEgPCBtb2RlbDsKK+iNiSA8IGdyYXNzOwor5r+DIDwgdGhpY2s7Civmv4EgPCBtdWRkeTsKK+S/riA8IHN0dWR5Owor5ZGzIDwgdGFzdGU7Civnu4cgPCB3ZWF2ZTsKK+m+lSA8IG5pY2hlOwor6J2/IDwgZmxpZXM7CivlhY0gPCBzcGFyZTsKK+azoiA8IHdhdmVzOwor5r2UIDwgY2xlYW47CivmtIsgPCBvY2VhbjsKK+WdhyA8IGVxdWFsOwor5aWWIDwgcHJpemU7Civpob8gPCBwYXVzZTsKK+a8giA8IGZsb2F0Owor5YikIDwganVkZ2U7Civmi4UgPCBjYXJyeTsKK+advyA8IHBsYW5rOwor6ZKfIDwgY2xvY2s7Civpu5AgPCBzdGljazsKK+ibhyA8IHNuYWtlOwor5p6EIDwgZnJhbWU7CivmurogPCBkcm93bjsKK+m6piA8IHdoZWF0Owor5rqdIDwgZGl0Y2g7CivmupwgPCBzbGlkZTsKK+iCiSA8IGZsZXNoOwor57q4IDwgcGFwZXI7CivomZogPCBmYWxzZTsKK+iZjiA8IHRpZ2VyOwor5ZmMIDwgc2NvbGQ7CivmnYIgPCBtaXhlZDsKK+aAkiA8IGFuZ2VyOwor56i/IDwgZHJhZnQ7CivmuKYgPCBzd2lybDsKK+a4oSA8IGNyb3NzOwor572iIDwgY2Vhc2U7Civpt7ogPCBoZXJvbjsKK+m3uSA8IGVhZ2xlOwor6JepIDwgZmVuY2U7Civol6UgPCBkcnVnczsKK+mynCA8IGZyZXNoOwor5ZeFIDwgc21lbGw7Civol4EgPCBzdHJhdzsKK+m2tCA8IGNyYW5lOwor5p6qIDwgc3BlYXI7Civmtq8gPCBzaG9yZTsKK+a2mSA8IHRlYXJzOwor6YWNIDwgbWF0Y2g7CivmtbQgPCBiYXRoZTsKK+WNhyA8IGFyaXNlOwor5rWcIDwgY3JlZWs7CivolK0gPCBzaGFkZTsKK+a0pSA8IGZlcnJ5Owor6ay8IDwgZ2hvc3Q7Civok64gPCBsb3R1czsKK+mBvyA8IGF2b2lkOwor5LqhIDwgZGVhdGg7Civpl6ogPCBmbGFzaDsKK+mchyA8IHNoYWtlOwor5ZKzIDwgY291Z2g7Civnu78gPCBncmVlbjsKK+WSjiA8IGZhdWx0Owor57qzIDwgYWRtaXQ7CivlkaogPCBjdXJzZTsKK+erpSA8IGNoaWxkOwor5LyfIDwgZ3JlYXQ7CivmsYEgPCBqdWljZTsKK+iNoyA8IGdsb3J5Owor5ZCQIDwgdm9taXQ7CivpsIwgPCBsb2FjaDsKK+WWiiA8IHNob3V0Owor5ZCJIDwgbHVja3k7CivpgJAgPCBjaGFzZTsKK+WPqSA8IGtub2NrOwor5qOAIDwgY2hlY2s7Civmj6EgPCBncmFzcDsKK+eJmSA8IHRvb3RoOwor5q6WIDwgYnJlZWQ7Civljb8gPCBub2JsZTsKK+atryA8IHRlZXRoOwor5q2qIDwgc2xhbnQ7Civmo4sgPCBjaGVzczsKK+mtlCA8IGRlbW9uOwor6IWwIDwgd2Fpc3Q7CivmooUgPCBwbHVtczsKK+mSoiA8IHN0ZWVsOwor6Iy5IDwgcm9vdHM7CivmrLogPCBjaGVhdDsKK+msmiA8IGJlYXJkOwor5YyZIDwgc3Bvb247CivljI0gPCBjcmF3bDsKK+iMhSA8IHJlZWRzOwor57SvIDwgdGlyZWQ7CivmnKsgPCBmaW5hbDsKK+eziiA8IHBhc3RlOwor56iOIDwgdGF4ZXM7Civmg68gPCBoYWJpdDsKK+WAviA8IHVwc2V0Owor6LS4IDwgdHJhZGU7CivmiasgPCBzd2VlcDsKK+WQkyA8IHNjYXJlOwor5YmDIDwgc2hhdmU7CivliLcgPCBicnVzaDsKK+e+iiA8IHNoZWVwOwor5omRIDwgcG91bmQ7CivlgI0gPCB0aW1lczsKK+WGtiA8IHNtZWx0Owor6IazIDwgbWVhbHM7CivlhbwgPCB1bml0ZTsKK+meiyA8IHNob2VzOwor5oykIDwgY3Jvd2Q7CivpopcgPCBncmFpbjsKK+aDoCA8IGZhdm9yOwor6IWVIDwgd3Jpc3Q7CivmoYMgPCBwZWFjaDsKK+WdoSA8IHNsb3BlOwor5YSfIDwgcmVwYXk7CivmpI0gPCBwbGFudDsKK+iEiiA8IHNwaW5lOwor5qSFIDwgY2hhaXI7CivogpogPCBiZWxseTsKK+ajsiA8IHBlcmNoOwor6IKdIDwgbGl2ZXI7Civnlq8gPCBjcmF6eTsKK+iAuyA8IHNoYW1lOwor5L6NIDwgc2VydmU7CivooasgPCBzaGlydDsKK+mSuyA8IGRyaWxsOwor5bOhIDwgZ29yZ2U7Civpn7sgPCByaHltZTsKK+S4kSA8IGNsb3duOwor5r6zIDwgaW5sZXQ7CivnlrwgPCBhY2hlczsKK+ahoyA8IHNoZWxmOwor546bIDwgYWdhdGU7CivpnbQgPCBib290czsKK+WCsiA8IHByb3VkOwor6ZycIDwgZnJvc3Q7CivlkLUgPCBhcmd1ZTsKK+mCqiA8IHdyb25nOwor6ISGIDwgY3Jpc3A7Civmm7MgPCB0cmFpbDsKK+mboiA8IGxlYXZlOwor5Y+bIDwgcmViZWw7Civnv7wgPCB3aW5nczsKK+eUnCA8IHN3ZWV0Owor6ZqZIDwgY3JhY2s7CivlgoUgPCB0dXRvcjsKK+WWtyA8IHNwdXJ0Owor5ai2IDwgbWFycnk7Civpl4cgPCBjbG9zZTsKK+ezliA8IHN1Z2FyOwor54+KIDwgY29yYWw7CivnoLggPCBzbWFzaDsKK+e1niA8IHR3aXN0Owor6L2oIDwgdHJhY2s7CivnsZYgPCB0YWxseTsKK+aTkiA8IGNhdGNoOwor5o+DIDwgc2hlYXI7CivnrpIgPCBicm9vbTsKK+mNriA8IGJyYXNzOwor5ZeTIDwgdm9pY2U7CivllaUgPCB3aGF0XD87CivonJwgPCBob25leTsKK+mLjyA8IHRvbmdzOwor6IK/IDwgc3dlbGw7Civoo5kgPCBza2lydDsKK+WwvyA8IHVyaW5lOwor6YCuIDwgc2VpemU7CivlgKEgPCBndWlkZTsKK+WFnCA8IHBvdWNoOwor6a2EIDwgdmlnb3I7Civns5UgPCBjYWtlczsKK+eomiA8IHlvdW5nOwor6YiNIDwgYmx1bnQ7Civnpr0gPCBiaXJkczsKK+aGuiA8IHBlYWNlOwor6ZO+IDwgY2hhaW47CivmhqwgPCByb3VzZTsKK+WHsyA8IGJlbmNoOwor6YWsIDwgdG9hc3Q7Civngb8gPCB2aXZpZDsKK+aUgCA8IGNsaW1iOwor5rKrIDwgZnJvdGg7CivprYEgPCBjaGllZjsKK+a7pSA8IGZsb29kOwor5oizIDwgcHJpY2s7CivmoakgPCBzdGFrZTsKK+iCuiA8IGx1bmdzOwor57qxIDwgZ2F1emU7CivpmaEgPCBzdGVlcDsKK+eDqyA8IHNjYWxkOwor6bmFIDwgZ29vc2U7CivmlZ4gPCByb29teTsKK+WzqCA8IGxvZnR5Owor6JmQIDwgY3J1ZWw7CivovqsgPCBicmFpZDsKK+aApiA8IGVhZ2VyOwor5rWHIDwgc3ByYXk7CivohpsgPCBjaGVzdDsKK+mXtSA8IG1vdXJuOwor6KKcIDwgc29ja3M7CivotL8gPCBicmliZTsKK+WihSA8IHZpbGxhOwor56e9IDwgZGlydHk7CivlkbsgPCBncm9hbjsKK+aLpyA8IHBpbmNoOwor5p2gIDwgbGV2ZXI7CivnvI4gPCBzYXRpbjsKK+aDriA8IGRyZWFkOwor5ZmXIDwgYnVyc3Q7Civnn7YgPCBqZXR0eTsKK+ewhyA8IHN3YXJtOwor5oeKIDwgdmV4ZWQ7Civmi4cgPCB0aHVtYjsKK+mTsiA8IHNwYWRlOwor5ZO9IDwgY2hva2U7CivlhpUgPCBjcm93bjsKK+eWriA8IHR1bW9yOwor6LWDIDwgYm9vdHk7CivlqYogPCB3aG9yZTsKK+mUryA8IGFcLXNhdzsKK+WYiCA8IG5vaXN5Owor57ywIDwgcmVpbnM7CivorqogPCBhYnVzZTsKK+W/oSA8IGFcLXNhZDsKK+mmjSA8IGJyZWFkOwor6aKFIDwgc2t1bGw7Civng5kgPCBicmFuZDsKK+WflCA8IHBsYWluOwor6ZicIDwgbW91bmQ7CivngqwgPCB0b3JjaDsKK+eCmSA8IHJvYXN0Owor5amqIDwgY292ZXQ7CivouZEgPCB0cmVhZDsKK+eruiA8IGluZGlhOwor5YmMIDwgc2xhc2g7CivnrZsgPCBzaWV2ZTsKK+evoSA8IHVzdXJwOwor6bK4IDwgd2hhbGU7CivmiqEgPCBzd2luZzsKK+a2riA8IHJpbnNlOwor6YW1IDwgeWVhc3Q7CivmqYQgPCBvbGl2ZTsKK+mbjyA8IGNoaWNrOwor5ranIDwgYnJvb2s7CivohbogPCBnbGFuZDsKK+W/sSA8IHRydXRoOwor6Jy/IDwgY3JlZXA7CivplYAgPCBwbGF0ZTsKK+iDrSA8IHJvdWdlOwor6LWzIDwgZ3JhbmQ7Civns6AgPCBjaGFmZjsKK+W4myA8IHNpbGtzOwor6bKoIDwgc2hhcms7CivouJ0gPCBhbmtsZTsKK+eciCA8IGdsb2F0Owor5YCtIDwgZHdhcmY7CivplZAgPCBzdG92ZTsKK+iZsSA8IGxvdXNlOwor5pCQIDwgY3JhbXA7CivmiJsgPCBsYW5jZTsKK+WRgyA8IGJlbGNoOwor5qatIDwga2lvc2s7CivphaogPCBjcmVhbTsKK+WtgCA8IHdpZG93Owor5a2qIDwgdHdpbnM7CivnnrAgPCB3YXRjaDsKK+awriA8IHhlbm9uOwor55ejIDwgc3BvdHM7CivmkZIgPCBleHBlbDsKK+S/uCA8IHdhZ2VzOwor5oSgIDwgYW5ncnk7CivmiaogPCBzdG9rZTsKK+e7iSA8IGNyZXBlOwor54+AIDwgYW1iZXI7Civor6kgPCBib2FzdDsKK+iKjSA8IHBlb255Owor6KS2IDwgcGxlYXQ7CivphZcgPCBkcnVuazsKK+afoCA8IGxlbW9uOwor6K+ZIDwgdGVhc2U7Civnu7ogPCBza2VpbjsKK+mHiSA8IGdsYXplOwor5a2bIDwgY29tZXQ7CivmpL0gPCBiZWFtczsKK+mipiA8IGZyb3duOwor5reWIDwgc2x1c2g7CivojqAgPCB3ZWVkczsKK+apmyA8IGFcLXBlZzsKK+iSuiA8IGZ1cnplOwor57+VIDwgYWdyZWU7CivpnL4gPCBtaXN0eTsKK+egpyA8IGFudmlsOwor6IO6IDwgYW1pbmU7Civom60gPCBsZWVjaDsKK+ivqCA8IGpva2VzOwor5oCrIDwgc29ycnk7CivmpZQgPCB3ZWRnZTsKK+eWvSA8IHVsY2VyOwor5qGkIDwgYWxkZXI7Civpk4YgPCByaXZldDsKK+aSuiA8IGh1cnJ5Owor6IKEIDwgbGVhcm47CivlraIgPCBzcG9yZTsKK+mysiA8IHNwYXduOwor6ZOoIDwgd2VpZ2g7CivosZUgPCBhXC1waWc7CivnrIogPCBsYWRsZTsKK+WblyA8IGVyZWN0Owor6ZOpIDwgbW91bHQ7CivpuZEgPCBxdWFpbDsKK+WVgSA8IGNoaXJwOwor6YaaIDwgZXRoZXI7CivnkLAgPCBqZXdlbDsKK+i/qCA8IHVudGlsOwor6bmsIDwgc25pcGU7CivlgoggPCB0cmliZTsKK+mTsCA8IGhpbmdlOwor56G8IDwgYm9yYXg7Civpha8gPCBlc3RlcjsKK+mVqiA8IGNvaW5zOwor5ommIDwgcHJvYmU7CivmurcgPCBwcml2eTsKK+S/syA8IGFjdG9yOwor6JiWIDwgc3R1bXA7CivlooAgPCBwb3JjaDsKK+WWiCA8IG11c2ljOwor5ZChIDwgYmxhbWU7CivnmIogPCB3YXJ0czsKK+WOoyA8IHNoZWxsOwor57OFIDwgYmxlbmQ7CivpmI8gPCBibG9jazsKK+mygiA8IGJyZWFtOwor5rq9IDwgbW9pc3Q7CivnsI8gPCBhXC1ib3g7Civoo6UgPCBmb2xkczsKK+e8syA8IG5vb3NlOwor6b6gIDwgZmx1dGU7CivonaQgPCBsYXJ2YTsKK+WfrSA8IGFcLWRhbTsKK+mytiA8IHNoZWF0Owor6ZSeIDwgaW5nb3Q7CivmsKEgPCByYWRvbjsKK+anrSA8IG1hcGxlOwor5b2YIDwgc3dpbmU7CivlvZYgPCBhXC1ob2c7Civmu5cgPCBkcmFpbjsKK+W7kSA8IGFcLWh1dDsKK+WMjyA8IGdvdXJkOwor56+8IDwgc2VkYW47Civom54gPCBzbmFpbDsKK+eSgSA8IFwoZ2VtXCk7Civnu5cgPCBiYXN0ZTsKK+WfmCA8IHJvb3N0Owor5be06buOIDwgcGFyaXM7Civku6PnkIbkurogPCBhZ2VudDsKK+mBiuiVqSA8IHN0cmF5Owor5byE57OfIDwgc3BvaWw7CivmganlhbggPCBncmFjZTsKK+Wkp+eIuiA8IHVuY2xlOwor5pel5pysIDwgamFwYW47Civlj6/lj68gPCBjb2NvYTsKK+WPr+WPoyA8IHRhc3R5Owor5bu257epIDwgZGVmZXI7Civlp6rlpbMgPCBuaWVjZTsKK+mZt+iQvSA8IHNsdW1wOwor54mb5o6SIDwgc3RlYWs7CivpmrHntIQgPCB2YWd1ZTsKK+WQiOS9tSA8IGFubmV4Owor6K235aOrIDwgbnVyc2U7Civms4rkvY0gPCBiZXJ0aDsKK+eNqOacqOiInyA8IGNhbm9lOwor5qKd5p2/566xIDwgY3JhdGU7CivpmbPliJfoh7ogPCBzdGFsbDsKK+mBiuiJhyA8IGJhcmdlOwor6Zmw6I6WIDwgcGVuaXM7CivmmbrliKkgPCBjaGlsZTsKK+Wjk+eijiA8IGNydXNoOwor5q+P5q+PIDwgb2Z0ZW47Civpn5PlnIsgPCBrb3JlYTsKK+efs+eLgCA8IHN0b255Owor55S35L+u6YGT6Zmi6ZW3IDwgYWJib3Q7CivliKXomZ8gPCBhbGlhczsKK+W8leeUqCA8IHF1b3RlOwor5biC6ZW3IDwgbWF5b3I7CivniJDmnrYgPCBncmF0ZTsKK+apn+mXnCA8IG9yZ2FuOwor5rOl5rC05YygIDwgbWFzb247CivptInniYcgPCBvcGl1bTsKK+akjeeJqee+pCA8IGZsb3JhOwor5Zyo6auY6JmVIDwgYWxvZnQ7CivmkpDnq7/ot7MgPCB2YXVsdDsKK+aUvueJpyA8IGdyYXplOwor5q+P5pelIDwgZGFpbHk7CivlpZfmiL8gPCBzdWl0ZTsKK+mBleekmSA8IHRhYm9vOwor5YSq6bueIDwgbWVyaXQ7CivlvpjlvoogPCBob3ZlcjsKK+imluimuiA8IHNpZ2h0Owor5pWY5Yip5LqeIDwgc3lyaWE7CivliIDokYkgPCBibGFkZTsKK+aRqeilvyA8IG1vc2VzOwor6Jmb5by16IGy5YuiIDwgYmx1ZmY7Civoqr/liLbop6Poqr/lmaggPCBtb2RlbTsKK+mdkuW5tCA8IHlvdXRoOwor5qiZ6aGMIDwgdGl0bGU7CivmsKjln7ogPCBhbWlubzsKK+apn+i7uCA8IGFyYm9yOwor6YaS5L6GIDwgd2FrZW47CivploDploIgPCBsYXRjaDsKK+mdiOW3pyA8IGhhbmR5Owor5YWD6Z+zIDwgdm93ZWw7CivlhYvpmoYgPCBjbG9uZTsKK+aVtOaVtCA8IHdob2xlOwor5Yyv5a+EIDwgcmVtaXQ7CivliYHnoo4gPCBtaW5jZTsKK+iqv+aDhSA8IGZsaXJ0Owor5pyq5oiQ5bm05Lq6IDwgbWlub3I7CivljIblv5kgPCBoYXN0eTsKK+avm+W3viA8IHRvd2VsOwor6Iqz6aaZIDwgYmFsbXk7CivlubTntJogPCBncmFkZTsKK+e0q+S4gemmmSA8IGxpbGFjOwor5pWj5paHIDwgcHJvc2U7CivkuI3mlrDprq4gPCBzdGFsZTsKK+ilv+iXjyA8IHRpYmV0Owor5aSn6L6y5aC0IDwgcmFuY2g7Civngavou4ogPCB0cmFpbjsKK+atu+advyA8IHJpZ2lkOwor55+b5p+EIDwgc2hhZnQ7Civplbfph5ggPCBzcGlrZTsKK+atpeanjSA8IHJpZmxlOwor5Yi755eVIDwgbm90Y2g7CivpgbjmsJEgPCB2b3RlcjsKK+mtlOmsvCA8IGRldmlsOwor5paw5aiYIDwgYnJpZGU7CivorKDlgrMgPCBydW1vcjsKK+aWsOWlhyA8IG5vdmVsOwor54Wk5rijIDwgc2xhY2s7CivoirHplosgPCBibG9vbTsKK+eJqeS4uyA8IG93bmVyOwor5b2I5byTIDwgc2xpbmc7CivlpJrmsLTliIYgPCBqdWljeTsKK+WgseeqqSA8IGJyb29kOwor6bq15YyF5bir5YKFIDwgYmFrZXI7Civpm7vlvbEgPCBtb3ZpZTsKK+aRuOe0oiA8IGdyb3BlOwor6YCf546HIDwgc3BlZWQ7CivnoLTlo54gPCB3cmVjazsKK+e0hOiOqyA8IGFib3V0Owor5aOB5p62IDwgbGVkZ2U7Civlkbzlj6vlmaggPCBwYWdlcjsKK+majuautSA8IHN0YWdlOwor5Y2B5YiGIDwgZnVsbHk7CivlnLDpnaIgPCBmbG9vcjsKK+irt+WIuiA8IGlyb255Owor55m96LK7IDwgd2FzdGU7CivpgYvmsrMgPCBjYW5hbDsKK+WFq+inkiA8IGFuaXNlOwor6Zmw5ra8IDwgc2hhZHk7Civmk6bmtJcgPCBzY291cjsKK+eGseW/sSA8IGFyZG9yOwor57ag5rSyIDwgb2FzaXM7CivkuIvmsLTpgZMgPCBzZXdlcjsKK+WbuumrlCA8IHNvbGlkOwor5YOn6ZmiIDwgYWJiZXk7CivmjqjpgbggPCBlbGVjdDsKK+aOqOmAsiA8IGltcGVsOwor6Zec56+AIDwgam9pbnQ7Civlvp7kvobkuI0gPCBuZXZlcjsKK+iJpumaiiA8IGZsZWV0Owor5q+U5YiGIDwgc2NvcmU7CivliZvmnpwgPCBjb25nbzsKK+eBq+iKsSA8IHNwYXJrOwor5b2x5YOPIDwgaW1hZ2U7Civnm5znq4ogPCBzdGVhbDsKK+m6uiA8IGZsb3VyOwor6bqYIDwgc2NlbnQ7Civpub4gPCBzYWx0eTsKK+m4siA8IG15bmFoOwor5LqM5qW1566hIDwgZGlvZGU7CivnnaHmpIUgPCBjb3VjaDsKK+ertuaKgOWgtCA8IGFyZW5hOwor5Yqg5a+sIDwgd2lkZW47CivptKogPCBzd29vcDsKK+WPr+aTpuWvq+WPr+e3qOeoi+elh+iugOWtmOWEsuWZqCA8IGVwcm9tOwor6Kqq5Ye6IDwgdXR0ZXI7CivmvrPploAgPCBhb21lbjsKK+aOqOirliA8IGluZmVyOwor57Oi57OKIDwgZm9nZ3k7CivpsJ4gPCBzcXVpZDsKK+WLleWQkSA8IHRyZW5kOwor5aSp5L2/IDwgYW5nZWw7CivopJDoibIgPCBicm93bjsKK+mshumWiyA8IGxvb3NlOwor5qu45pyoIDwgYmVlY2g7Civpg6jku7YgPCBwYXJ0czsKK+i7jOmBkyA8IG9yYml0Owor6ayOIDwgZmF2dXM7CivploPogIAgPCBnbGludDsKK+iHrem8rCA8IHNrdW5rOwor6auzIDwgc3RhdGU7Civpq7IgPCBhXC13aWc7Civnlr7poqggPCBibGFzdDsKK+aUpOWtkCA8IGJvb3RoOwor5aSn5Lq6IDwgYWR1bHQ7CivpuqXpmL/lr4YgPCBtaWFtaTsKK+WHuuaykiA8IGhhdW50Owor6aeeIDwgY2FtZWw7CivpgZPlvrcgPCBtb3JhbDsKK+eZvOiBsiA8IHZvY2FsOwor6ZW36ICBIDwgZWxkZXI7CivkvJHmga/lrqQgPCBsb2JieTsKK+aoueexrCA8IGhlZGdlOwor6aWYIDwgZ3J1ZWw7CivnkIPni4DniakgPCBnbG9iZTsKK+mkqiA8IGZlYXN0Owor6aSmIDwgY2FuZHk7CivluJ3njosgPCByZWdhbDsKK+W8t+WFiSA8IGdsYXJlOwor6aO2IDwgb2RvdXI7Civpo5EgPCBzdG9ybTsKK+i7jOi3oSA8IGxvY3VzOwor6LuM6LedIDwgZ2F1Z2U7Civoo5zol6UgPCB0b25pYzsKK+WwjeaVteiAhSA8IHJpdmFsOwor5bm95pqXIDwgZ2xvb207Civmk5Tmh64gPCB3b3JyeTsKK+amruitvSA8IGhvbm9yOwor6a2U6KGTIDwgbWFnaWM7CivpnoMgPCBib2FyZDsKK+mdpiA8IHRpbWlkOwor6ZyxIDwgY2xvdWQ7CivpnJkgPCBzbGVldDsKK+mWi+erryA8IHN0YXJ0Owor6Zue5YagIDwgY3Jlc3Q7CivpmbwgPCBpc2xldDsKK+mYuSA8IGFcLXBlbjsKK+WIh+acmyA8IGNyYXZlOwor5Yas6Z2S5qi5IDwgaG9sbHk7CivmqJnnsaQgPCBsYWJlbDsKK+mVnyA8IGxhdGhlOwor54S25b6MIDwgYWZ0ZXI7CivpgqPlhZIgPCB0aGVyZTsKK+mSgyA8IG1ldGFsOwor5ZyW6KGoIDwgY2hhcnQ7CivlnI3oo5kgPCBhcHJvbjsKK+eyl+ezmSA8IGNydWRlOwor5p6c5a2Q5YeNIDwgamVsbHk7CivlpKflnLDlnJYgPCBhdGxhczsKK+WJquWgsSA8IHNjcmFwOwor6KaP5qihIDwgc2NhbGU7CivpgqPkupsgPCB0aG9zZTsKK+mIhyA8IGFuXC1heDsKK+i+puazlSA8IG1lYW5zOwor6Ii56LKoIDwgY2FyZ287CivmrYzliocgPCBvcGVyYTsKK+eDj+acqCA8IGVib255Owor6ZuF5ZCE5pu4IDwgamFtZXM7CivnsonnrYYgPCBjaGFsazsKK+e1leaKgCA8IHN0dW50Owor6IeJ6aCwIDwgY2hlZWs7Civnmb3nmaEgPCBpZGlvdDsKK+inkuW6piA8IGFuZ2xlOwor55m855eFIDwgb25zZXQ7CivmhJ/ljJbppIXkub4gPCB3YWZlcjsKK+WfuuacrCA8IGJhc2ljOwor54Gr54SwIDwgYmxhemU7CivmjqLntKIgPCBxdWVzdDsKK+Whq+WhniA8IHN0dWZmOwor57OW5ry/IDwgc3lydXA7Civnsonnoo4gPCBjcmFzaDsKK+iLseS7o+eIviA8IGludGVsOwor6LKkIDwgc3RlcHM7CivoiInotbcgPCBoZWF2ZTsKK+ixlCA8IHBsdW1wOwor6YCZ5aSpIDwgdG9kYXk7CivorpkgPCBjaGVlcjsKK+itgSA8IG5vaXNlOwor5bC86b6NIDwgbnlsb247Civmr5vojLjojLggPCBoYWlyeTsKK+maiuS8jSA8IHJhbmtzOwor6KeUIDwgY2F0dHk7CivluYXluqYgPCB3aWR0aDsKK+apoeacqCA8IG9ha2VuOwor57K+5rayIDwgc2VtZW47Civluorllq4gPCBzaGVldDsKK+WJg+WIgCA8IHJhem9yOwor6KCXIDwgXChhcGVcKTsKK+WwvOaXpeeIviA8IG5pZ2VyOwor6J+iIDwgY2F1bGs7Civlh7PlrZAgPCBzdG9vbDsKK+iGvemHjyA8IG5lcnZlOwor6J2YIDwgZ2Vja287Civlho3mnIMgPCBhZGlldTsKK+aqs+WtkCA8IGJpbnppOwor5YWp5qyhIDwgdHdpY2U7Civkv67po74gPCBhZG9ybjsKK+e0ouW8lSA8IGluZGV4Owor5YO156GsIDwgc3Rhcms7CivomJMgPCB0aHltZTsKK+iYiyA8IGFwcGxlOwor5bel5pyDIDwgdW5pb247Civoo4Lnl5UgPCBjaGFzbTsKK+e0sOWwjyA8IHBldHR5Owor6amF6ZmkIDwgcmVwZWw7CivmqLnmnpcgPCB3b29kczsKK+a9m+ihjCA8IHNuZWFrOwor5Z6C5q27IDwgZHlpbmc7CivmqLrmnKggPCBiaXJjaDsKK+iOvyA8IHRob3JuOwor5YWs5pyDIDwgZ3VpbGQ7Civoi7YgPCB3ZWFyeTsKK+aUtumfs+apnyA8IHJhZGlvOwor5pCT5o+JIDwga25lYWQ7Civoh70gPCBhXC1waXQ7Civoh7IgPCBqdW1weTsKK+iHmyA8IGJyb3RoOwor6YCZ5LqbIDwgdGhlc2U7CivluofkvZEgPCBibGVzczsKK+WBh+ijnSA8IGZlaWduOwor6L6u5a2QIDwgcGxhaXQ7CivpmY3kuIsgPCBsb3dlcjsKK+iFoSA8IGxpbmVzOwor5qiT5qKvIDwgc3RhaXI7CivnrKzkuInmrKEgPCB0aGlyZDsKK+mrmOiBsiA8IGFsb3VkOwor5bCK6a2aIDwgdHJvdXQ7CivogpUgPCB0b3VnaDsKK+WbnuetlCA8IHJlcGx5Owor6ICeIDwgZmxhaWw7Civmi5vlvoXlk6EgPCB1c2hlcjsKK+ewoeefrSA8IGJyaWVmOwor57+9IDwgd2hpcnI7Civlm6TnqY0gPCBob2FyZDsKK+e/hCA8IHdpbmRzOwor6ae/6aasIDwgc3RlZWQ7CivnvYkgPCBhXC1wb3Q7CivoibLni7wgPCBzYXR5cjsKK+e6uyA8IHJhbWllOwor6L2J5pKtIDwgcmVsYXk7Civmibnph48gPCBiYXRjaDsKK+e4jyA8IHB1cnNlOwor57aMIDwgY2xvdGg7Civnmq7luLYgPCBzdHJhcDsKK+aSkuS9hiA8IHNhdGFuOwor5Yaw5aGUIDwgc2VyYWM7Civnso4gPCBtZXRyZTsKK+eumyA8IGJ1Z2xlOwor6LyV5p+TIDwgdGluZ2U7CivnrbAgPCBjYWJsZTsKK+etpiA8IGFcLWtleTsKK+erlCA8IGxpdHJlOwor5oub6Ie0IDwgaW5jdXI7CivkuIDnt5rlvq7lhYkgPCBnbGVhbTsKK+eppyA8IHNoZWFmOwor5qCX6bygIDwgYnVubnk7Civlt6vlqYYgPCB3aXRjaDsKK+mWgOW7iiA8IHN0b29wOwor56S2IDwgYVwtanVnOwor5oSP5aSn5YipIDwgaXRhbHk7Civno4ggPCByb2NreTsKK+eDmOS5viA8IHBhcmNoOwor5rC05bmz6Z2iIDwgcGxhbmU7CivlhazlsLogPCBtZXRlcjsKK+efkyA8IGZhaW50Owor556PIDwgcm91bmQ7Civkup7purvluIMgPCBsaW5lbjsKK+ecuSA8IHB1cGlsOwor5LqU6Iqx5YWr6ZaAIDwgbXlyaWQ7Civnm47lj7ggPCBvdW5jZTsKK+eavSA8IHNjdXJmOwor6aiO6LuKIDwgY3ljbGU7Civnsr7lrZAgPCBzcGVybTsKK+eZoSA8IHNpbGx5Owor5YeM5LqCIDwgY2hhb3M7Civkv5roqp4gPCBzbGFuZzsKK+e0heWIqSA8IGJvbnVzOwor5rqc5Yaw6Z6LIDwgc2thdGU7CivnlI4gPCBicmljazsKK+S9nOWTvOiBsiA8IHNub3J0Owor5Z+D5Y+KIDwgZWd5cHQ7Civoo73pgKDogIUgPCBtYWtlcjsKK+eRlCA8IFwoamFkZTsKK+ePliA8IGNhcmF0Owor56ym6KiYIDwgdG9rZW47CivllqrpkJggPCBrbmVsbDsKK+iEuei1tyA8IGJ1bGdlOwor5YWs5Zm4IDwgdG9ubmU7CivnhKHnlJ/lkb0gPCBpbmVydDsKK+eJnCA8IGFuXC1veDsKK+eJlCA8IGdhYmxlOwor6YWq6L6y5qWtIDwgZGFpcnk7CivnlJ/oi5QgPCBtb3NzeTsKK+momeihkyA8IHRyaWNrOwor5omT6KO9IDwgZm9yZ2U7CivngaMgPCBhXC1iYXk7CivohZDonZUgPCBydXN0eTsKK+awtOiSuOawoyA8IHZhcG9yOwor5YWt5Y2BIDwgc2l4dHk7CivlhazljYcgPCBsaXRlcjsKK+S8vOmbqiA8IHNub3d5Owor55eF5q+SIDwgdmlydXM7CivmjqjltIcgPCB2YWx1ZTsKK+i3r+e3miA8IHJvdXRlOwor5beo5Lq6IDwgZ2lhbnQ7Civlg4/niYfnsL8gPCBhbGJ1bTsKK+aJi+iXnSA8IGNyYWZ0Owor6LSI6IiH6ICFIDwgZ2l2ZXI7CivmlpzntIvou5/lkaIgPCB0d2VlZDsKK+axsyA8IGhlbmFuOwor5b635YWL6Jap5pavIDwgdGV4YXM7CivppqzpgZQgPCBtb3RvcjsKK+Wbm+aciCA8IGFwcmlsOwor5q6RIDwgc3dvb247CivlhbbkuK0gPCBhbW9uZzsKK+atiCA8IHNvbmdzOwor5qy4IDwgc2lnaHM7Civmu5Hnv5QgPCBnbGlkZTsKK+WkqeiXjeiJsiA8IGF6dXJlOwor6KGw5pWXIDwgZGVjYXk7Civoi5vliLsgPCBoYXJzaDsKK+aqqCA8IG1hbmdvOwor56m66ZaTIDwgc3BhY2U7CivmqJUgPCBzaHJ1YjsKK+aOoOWlqiA8IGhhcnJ5Owor5a+f6Ka6IDwgYXdhcmU7CivlsYvnsLcgPCBlYXZlczsKK+agvOiogCA8IG1heGltOwor5qWFIDwgYnVhcmQ7Civnk6PohpwgPCB2YWx2ZTsKK+akiCA8IGNlZGFyOwor5qOBIDwgam9pc3Q7CivlnI3lt74gPCBzY2FyZjsKK+Wvk+iogCA8IGZhYmxlOwor6KKr5a2QIDwgcXVpbHQ7CivmoI0gPCBhXC1sb3Q7CivlsI/oiIwgPCB1dnVsYTsKK+Wwsee3kiA8IHJlYWR5Owor6LuA5bm5IDwgdHJ1bms7CivmiYvogpggPCBlbGJvdzsKK+Wuoui7iiA8IGNvYWNoOwor6Im+5aesIDwgYWdnaWU7Civpo5vooYzlk6EgPCBwaWxvdDsKK+WcqOWkliA8IG91dGVyOwor5bSH5oucIDwgYWRvcmU7CivlhYXku70gPCBhbXBsZTsKK+mrmOaYjiA8IHNtYXJ0Owor55eb5oGoIDwgYWJob3I7Civnl5vlv6sgPCBqb2xseTsKK+aNkOi0iOiAhSA8IGRvbm9yOwor5pWUIDwgZ2F2ZWw7Civopb/nj63niZkgPCBzcGFpbjsKK+eUt+eItSA8IGJhcm9uOwor5Zu65a6aIDwgZml4ZWQ7CivlsJbntLAgPCB0YXBlcjsKK+iKseS/jyA8IGZhbmN5Owor6LWr6IyyIDwgaGVydHo7CivmjIwgPCBmaWdodDsKK+aPkOWkmuabuCA8IHRpdHVzOwor5ZyN5Z+OIDwgc2llZ2U7CivmiaIgPCBjYXBlcjsKK+iHtOaVrCA8IGdyZWV0Owor6LuN5ZyYIDwgY29ycHM7CivmhIMgPCByZWxheDsKK+aOkuWIlyA8IGFycmF5Owor5L+P55quIDwgc2F1Y3k7CivoiJ7lvIogPCBmcmF1ZDsKK+aCviA8IG5haXZlOwor6KOc5LiBIDwgcGF0Y2g7CivnlJ/purXns7AgPCBkb3VnaDsKK+a7v+i6q+WhteWfgyA8IGR1c3R5Owor5ry/5p6cIDwgYmVycnk7CivpmL/mi4nmkakgPCBhbGFtbzsKK+mtheWKmyA8IGNoYXJtOwor5ryC5ri4IDwgZHJpZnQ7CivlvZEgPCBzbm91dDsKK+iqv+WRs+iCieaxgSA8IGdyYXZ5Owor5r2R5o6JIDwgc3BpbGw7CivluJIgPCBhXC1iYWc7Civos4fph5EgPCBmdW5kczsKK+eUt+mrmOmfsyA8IHRlbm9yOwor5LiA6bue5YWSIDwgYVwtYml0Owor5baeIDwgcmlkZ2U7Civoh6rmiJEgPCBzZWxmXC07CivmnpzphZIgPCBjaWRlcjsKK+W0miA8IGhpbGx5Owor5o235YWLIDwgY3plY2g7CivnlKjms5UgPCB1c2FnZTsKK+WtmOiyqCA8IHN0b2NrOwor6auY5bCaIDwgbm9ibHk7Civmi43mk4ogPCBzbWFjazsKK+WrmiA8IHNjb3JuOwor5bCP5qi55p6XIDwgZ3JvdmU7CivluIPokIrniL4gPCBibGFpcjsKK+WcqO+5jeS5i+S4iyA8IGJlbG93Owor5Zyo77mN5LmL5LiKIDwgYWJvdmU7Civmv4DlhYkgPCBsYXNlcjsKK+WuieiPryA8IGFud2FyOwor5ouC5o6DIDwgd2hpc2s7CivoiLnlj6ogPCBzaGlwczsKK+WjhiA8IHN0aWZmOwor5aK6IDwgd2FsbHM7Civloo0gPCBwYWludDsKK+WhmSA8IHRydWx5Owor5Zub5Y2BIDwgZm9ydHk7CivlnbAgPCB3aWxkczsKK+aSpeeBq+ajjSA8IHBva2VyOwor5Zm6IDwgc3Rvcnk7Civll5AgPCBhbGFzXCE7CivmtYHpq5QgPCBmbHVpZDsKK+WWtCA8IGhlbGxvOwor5ZWyIDwgYVwtZmV3Owor5ZWNIDwgY3JlYWs7Civlk7YgPCBibGVhdDsKK+WSjSA8IGxhdWdoOwor5ZCwIDwgY2xhbmc7Civnr4TlnI0gPCByYW5nZTsKK+WOuiA8IHRvXC1nbzsKK+WOliA8IGJ1bGt5Owor5LiJ6Imy57Sr576F6JitIDwgcGFuc3k7Civkv67mlLkgPCBhbWVuZDsKK+aciemiqCA8IHdpbmR5Owor6ama5oWMIDwgcGFuaWM7CivlnKjml4HpgoogPCBhc2lkZTsKK+WGpyA8IGFcLWJ1ZDsKK+S4u+mhjCA8IHRoZW1lOwor54ef5qWt5ZOhIDwgY2xlcms7Civlk6roo6EgPCB3aGVyZTsKK+Wci+mam+mbu+Wgsembu+ipseWSqOipouWnlOWToeacgyA8IGNjaXR0Owor6K2m5aCx5ZmoIDwgc2lyZW47CivnlbblnLAgPCBsb2NhbDsKK+WAieW6qyA8IGRlcG90Owor5L26IDwgZmFpcnk7CivkvIrntKIgPCBhZXNvcDsKK+WLleaFi+W9seWDjyA8IHZpZGVvOwor5LiJ6KeS5rSyIDwgZGVsdGE7CivnrJHmnpcgPCBodW1vcjsKK+WogeeIvuWjqyA8IHdhbGVzOwor5qOa5a2QIDwgc2hhY2s7CivktocgPCBhXC1yYXQ7Civogq/lsLzkup4gPCBrZW55YTsKK+eUt+WtkCA8IGFcLW1hbjsKK+iCoeelqCA8IHNoYXJlOwor5LOxIDwgZHVja3M7CivpurXljIXnmq4gPCBjcnVzdDsKK+iCpeeiqSA8IHN0b3V0Owor5K+NIDwgYm9uZXM7Civnn7PljZfmqLkgPCBoZWF0aDsKK+aLtOS9jyA8IGhpdGNoOwor6KCi5LqLIDwgZm9sbHk7CivkqrsgPCBhXC1jYXA7CivkqZUgPCBjbG9nczsKK+S4i+mbqCA8IHJhaW55Owor6ama5aWHIDwgYW1hemU7CivkqLkgPCBzd2lmdDsKK+WZtOWHuiA8IHNwb3V0Owor5KeqIDwgc2lzc3k7Civkpp4gPCBleHRyYTsKK+SlkyA8IGFcLWhvZTsKK+SkmSA8IGRyZWdzOwor6IWx5a2QIDwgc2luZXc7Civmm7TpgbIgPCBsYXRlcjsKK+m7keiygiA8IHNhYmxlOwor5J2SIDwgYVwtc293Owor5JqfIDwgaG9ybnM7CivonrrntbLph5ggPCBzY3JldzsKK+SaiSA8IG9cLXNlZTsKK+aymem+jSA8IHNhbG9uOwor5JeVIDwgYmVuZHM7Civkv53lp4YgPCBuYW5ueTsKK+WUseipqeePrSA8IGNob2lyOwor5ouJ5LiBIDwgbGF0aW47CivkkYEgPCBmYXR0eTsKK+acg+irhyA8IHRhbGtzOwor6ISI5pCPIDwgcHVsc2U7Civkj7MgPCBvbGVpbjsKK+SPryA8IG1vbGVzOwor5I2lIDwgc21va3k7Civph5Hpq64gPCBibG9uZDsKK+SNjCA8IGFcLWphcjsKK+S4ieWNg+S6lOeZviA8IDNcLTUwMDsKK+SMkSA8IHRpZ2h0Owor5IyQIDwgcm9wZXM7CivkirsgPCBzaWxreTsKK+Wwj+WxiyA8IGNhYmluOwor5IiJIDwgYVwtZmFuOwor5ZiO5ZiOIDwgcXVhY2s7CivkhKUgPCBhXC1nb2Q7CivkhKIgPCBwaW91czsKK+S+v+WjqyA8IHBlbm55Owor6IC256mMIDwgamVzdXM7Civkg5kgPCByb2NrczsKK+mLvOeQtCA8IHBpYW5vOwor6aiO5aOrIDwgcmlkZXI7CivmiYvlpZcgPCBnbG92ZTsKK+i3n+WJjSA8IGZyb250Owor5L+u5YmqIDwgcHJ1bmU7CivjvpogPCBpdGNoeTsKK+mmmeaWmSA8IHNwaWNlOwor5Ly65pyNIDwgc2Vydm87Civnp5/ntIQgPCBsZWFzZTsKK+O8jyA8IGFcLWJhZDsKK+WwluWhlCA8IHNwaXJlOwor5Ze25ZiwIDwgc2VyZ2U7CivmsaHpu54gPCBzdGFpbjsKK+azlemDjiA8IGZyYW5jOwor5rS76JGXIDwgYWxpdmU7CivjuoMgPCBhXC1kb2c7CivjubsgPCBwdXBweTsKK+O5iyA8IGFcLWNvdzsKK+iChea4hSA8IHB1cmdlOwor47iDIDwgYVwtZG90Owor55m854mi6ai3IDwgd2hpbmU7Civmt7nmspIgPCBmbHVzaDsKK+esrOWNgSA8IHRlbnRoOwor5pmC6aumIDwgdm9ndWU7CivmiZPlkbwgPCBzbm9yZTsKK+OwvCA8IGdyZWVkOwor6aSY54e8IDwgZW1iZXI7Civjr7cgPCBkYXRlczsKK+esrOWFrSA8IHNpeHRoOwor466lIDwgc2FpbHM7Civnvr3ojpYgPCBxdWlsbDsKK+WwgeWcsCA8IG1hbm9yOwor6aGM6KejIDwgbm90ZXM7CivplbfpoLjnk7YgPCBmbGFzazsKK+S4gOihjCA8IHBhcnR5Owor46iXIDwgYWxlcnQ7CivjqIMgPCBhXC1yb3c7CivlsI/lkIMgPCBzbmFjazsKK+WuieWFqOeQhuS6i+acgyA8IHRoZVwtdTsKK+OnjSA8IGFsaWtlOwor54+N54+gIDwgcGVhcmw7CivpvLvnhZkgPCBzbnVmZjsKK+a0i+iUpSA8IG9uaW9uOwor56S65aiB6YGL5YuVIDwgcmFsbHk7CivotqPliocgPCBmYXJjZTsKK+S9juW7iSA8IGNoZWFwOwor5ZOA55ebIDwgZ3JpZWY7CivnrKzkupQgPCBmaWZ0aDsKK+esrOS5nSA8IG5pbnRoOwor46G2IDwgZHdlbGw7CivjoZAgPCBmbGFnczsKK+OhjCA8IGFcLWhhdDsKK+OhhyA8IGNvbGFyOwor5pyJ57eaIDwgd2lyZWQ7Civjnr4gPCBhXC1udW47CivjnpUgPCBjaGlwczsKK+OekiA8IGx1c3R5Owor5oiy5YqHIDwgZHJhbWE7CivovInosqjmsb3ou4ogPCBsb3JyeTsKK+e9qeihqyA8IHNtb2NrOwor45akIDwgd3JhdGg7CivjlY4gPCBjYXZlczsKK+eauueciemgrSA8IHNjb3dsOwor45OdIDwgYVwtbGF3Owor45OBIDwgYVwtbmV0Owor45KpIDwgbmFrZWQ7CivjkowgPCBhbG9uZzsKK+eOh+ebtCA8IGZyYW5rOwor45CxIDwgYnVzaHk7Civmma/osaEgPCBzY2VuZTsKK+ixoeeJmSA8IGl2b3J5Owor5Zad5Y+xIDwgY2hpZGU7CivnkLTlvKYgPCBjaG9yZDsKK+eNjueroCA8IG1lZGFsOwor5a2Q5oi/IDwgb3Zhcnk7CivmgKroqpUgPCBmcmVhazsKK+a3seW6piA8IGRlcHRoOwor5Y2I6aSQIDwgbHVuY2g7CivnjbXniqwgPCBob3VuZDsKK+eQhuaDsyA8IGlkZWFsOwor6IC95pOxIDwgdGFycnk7Civml4XppKggPCBob3RlbDsKK+mmrOS+hiA8IG1hbGF5Owor6aas5LyVIDwgZ3Jvb207CivlpKfpub8gPCBtb29zZTsKK+iBluW+kiA8IHNhaW50Owor5LiW55WMIDwgd29ybGQ7CivkvIrmlq/omK3mlZkgPCBpc2xhbTsKK+a4m+WOuyA8IG1pbnVzOwor5Lq65oCnIDwgaHVtYW47CivmhYjmgrIgPCBtZXJjeTsKK+irlumhjCA8IHRvcGljOwor5Y2h6LuKIDwgdHJ1Y2s7CivnvYznsp8gPCBwb3BweTsKK+aWkemmrCA8IHplYnJhOwor5aWX6ZCYIDwgY2hpbWU7CivlrojlgJkgPCBhYmlkZTsKK+adv+WyqSA8IHNsYXRlOwor6aCt55quIDwgc2NhbHA7CivljZHos6QgPCBsb3dseTsKK+WNh+i1tyA8IGhvaXN0Owor5rWB5rWq6ICFIDwgcm92ZXI7Civosp3lr6cgPCBiZW5pbjsKK+aXi+i9iSA8IHdoaXJsOwor54GM5pyo5Y+iIDwgc2NydWI7Civml6XoqJggPCBkaWFyeTsKK+S5g+aYryA8IHRvXC1iZTsKK+aWsOi/kSA8IG5ld2x5Owor5ZC45rCjIDwgc25pZmY7CivoqpjpmbcgPCBzbmFyZTsKK+adk+WtkCA8IHNjb29wOwor5oSf5a6YIDwgc2Vuc2U7CivmnKzlvbEgPCB1bWJyYTsKK+S6uuWToSA8IHN0YWZmOwor57qM6KiCIDwgcmVuZXc7Civmm7TmlLkgPCBhbHRlcjsKK+WQieaZruizveS6uiA8IGd5cHN5Owor5pS26aSKIDwgYWRvcHQ7CivmgKrnlbAgPCB3ZWlyZDsKK+iyk+WSqiA8IGtpdHR5Owor5rK85r6kIDwgZ2xhZGU7Civnoo7luIPmop0gPCBzaHJlZDsKK+axoeepoiA8IG5hc3R5Owor5LiJ5pyIIDwgbWFyY2g7CivlhaflnKjnmoQgPCBpbm5lcjsKK+mbu+mDtSA8IGVtYWlsOwor5Yud6YGOIDwgZXhjZWw7CivorYnnq6AgPCBiYWRnZTsKK+a1t+WcsCA8IGhhaXRpOwor6Zu36YGUIDwgcmFkYXI7CivprLHph5HpppkgPCB0dWxpcDsKK+WkseiqpCA8IGxhcHNlOwor6YKK6ZqbIDwgbGltaXQ7Civni4LnhrEgPCBjcmF6ZTsKK+S6lOWNgSA8IGZpZnR5Owor6Zuq6IyE54WZIDwgY2lnYXI7CivmnbHkuqwgPCB0b2t5bzsKK+avkuibhyA8IHZpcGVyOwor6aCM5q2MIDwgY2Fyb2w7CivlkpXlmpUgPCBncnVudDsKK+S4gOaJkyA8IGRvemVuOwor6Kmm6YeRIDwgYXNzYXk7CivpoK3mmoggPCBkaXp6eTsKK+WQueesm+iAhSA8IHBpcGVyOwor5LiA5be05o6MIDwgc3Bhbms7CivnhKbpu54gPCBmb2N1czsKK+e1seayu+iAhSA8IHJ1bGVyOwor57qW57atIDwgZmliZXI7Civkuovku7YgPCBldmVudDsKK+mAl+m7niA8IGNvbW1hOwor5ZKG5ZOuIDwgZ3Jvd2w7Civlkbzlj6vogbIgPCB3aG9vcDsKK+mCj+i8ryA8IGxvZ2ljOwor5pu05aOeIDwgd29yc2U7Civluqflj7PpipggPCBtb3R0bzsKK+S4ieeonOmPoSA8IHByaXNtOwor5Lit5ZyLIDwgY2hpbmE7CivlpJrokYkgPCBsZWFmeTsKK+S4gOWxpCA8IGxheWVyOwor54e76IKJIDwgYmFjb247Civmk6LpmZ4gPCBleGFsdDsKK+aEm+WFi+aWr+WFiSA8IHhcLXJheTsKK+Wkp+iFvyA8IHRoaWdoOwor5pys5Lq6IDwgaVwtXChtZTsKK+mfu+aWhyA8IHZlcnNlOwor54aK6LKTIDwgcGFuZGE7CivmlpHnvpogPCBnb3JhbDsKK+efruWiqeWiqSA8IHB1ZGd5Owor6JGh6JCEIDwgZ3JhcGU7CivnjY7lk4EgPCBhd2FyZDsKK+m7j+S9jyA8IGNsaW5nOwor5Y+v5oCVIDwgYXdmdWw7CivpgY7pgZMgPCBhaXNsZTsKK+ekpuW3pSA8IG1pbmVyOwor5q2M6KygIDwgY2hhbnQ7Civmspnmi4kgPCBzYWxhZDsKK+aWl+evtyA8IGNsb2FrOwor5pyI5Lu9IDwgbW9udGg7Civpm5voj4ogPCBkYWlzeTsKK+WMheepgCA8IG1haXplOwor6Zi/54i+5rOVIDwgYWxwaGE7CivpgLzov6sgPCBmb3JjZTsKK+WqkuS7iyA8IG1lZGlhOwor5ZOq5LiA5YCLIDwgd2hpY2g7CivmlZnnvqkgPCBjcmVlZDsKK+WQiOiCoee3miA8IHR3aW5lOwor6aCB5bKpIDwgc2hhbGU7CivnkZ7lhbjkurogPCBzd2VkZTsKK+WOreaDoSA8IGxvYXRoOwor5L2/576e5oSnIDwgYWJhc2g7CivmmI/mmpcgPCBkdXNreTsKK+avlOeOhyA8IHJhdGlvOwor6ZyO55y8IDwgYmxpbms7CivmmbTlpKkgPCBzdW5ueTsKK+eUt+WtkOawoyA8IG1hbmx5Owor5L2/5aib5qiCIDwgYW11c2U7CivmnIkgPCBoYXZlOwor55+lIDwga25vdzsKK+i/mSA8IHRoaXM7Civnn5wgPCBwaXR5Owor5b+ZIDwgYnVzeTsKK+adpSA8IGNvbWU7Civov5EgPCBuZWFyOwor6YGTIDwgcGF0aDsKK+S5nyA8IGFsc287Civml7YgPCB0aW1lOwor5bm0IDwgeWVhcjsKK+eeuyA8IGxvb2s7CivovrogPCBlZGdlOwor5bCxIDwganVzdDsKK+mCoyA8IHRoYXQ7CivnlJ8gPCBsaWZlOwor6IeqIDwgc2VsZjsKK+eerCA8IHdpbms7Civov4cgPCBwYXNzOwor5b6qIDwgb2JleTsKK+W+niA8IGZyb207CivlpJogPCBtdWNoOwor5aW9IDwgZ29vZDsKK+i1tyA8IHJpc2U7Civlj6ogPCBvbmx5Owor5L2cIDwgbWFrZTsKK+W9kyA8IGJlYXI7CivlvaIgPCBmb3JtOwor5byAIDwgb3BlbjsKK+aJiyA8IGhhbmQ7CivlvLEgPCB3ZWFrOwor5pysIDwgcm9vdDsKK+WktCA8IGhlYWQ7CivnnJ8gPCByZWFsOwor6Z2iIDwgZmFjZTsKK+WFrCA8IGZhaXI7CivlkIwgPCBzYW1lOwor5YqoIDwgbW92ZTsKK+mVvyA8IGxvbmc7CivovIkgPCBsb2FkOwor5bCGIDwgd2lsbDsKK+i6qyA8IGJvZHk7Civpq5ggPCBoaWdoOwor5oqKIDwgaG9sZDsKK+ebpSA8IHdhc2g7CivmnIggPCBtb29uOwor56eNIDwgc2VlZDsKK+i7jSA8IGFybXk7Civou4ogPCBjYXJ0Owor6YOoIDwgcGFydDsKK+WQjSA8IG5hbWU7Civnmq4gPCBza2luOwor5py6IDwgZGVzazsKK+e7mSA8IGdpdmU7CivnrYkgPCByYW5rOwor5bqnIDwgc2VhdDsKK+W+iCA8IHZlcnk7CivmnIAgPCBtb3N0Owor5bqXIDwgc2hvcDsKK+i6jSA8IHNraXA7CivotbAgPCB3YWxrOwor5ZubIDwgZm91cjsKK+mXqCA8IGdhdGU7CivkuJwgPCBlYXN0Owor5bqBIDwgaGFsbDsKK+ilvyA8IHdlc3Q7CivlubMgPCBmbGF0Owor5ZCsIDwgaGVhcjsKK+W5uCA8IGx1Y2s7CivoubQgPCBraWNrOwor5LqUIDwgZml2ZTsKK+W4tyA8IHRlbnQ7CivluLYgPCBiZWx0Owor5biMIDwgcmFyZTsKK+i4iiA8IGxlYXA7CivkuaYgPCBib29rOwor5LmdIDwgbmluZTsKK+i3syA8IGp1bXA7Civot68gPCByb2FkOwor55epIDwgdGhpbjsKK+a0uyA8IGxpdmU7Civlt6YgPCBsZWZ0Owor5bejIDwgbmVzdDsKK+ihqCA8IHNob3c7Civot58gPCBoZWVsOwor55ebIDwgcGFpbjsKK+eXlSA8IHNjYXI7Civnl5IgPCBpdGNoOwor5oSfIDwgZmVlbDsKK+i2syA8IGZvb3Q7Civph5EgPCBnb2xkOwor5L2VIDwgd2hhdDsKK+abtCA8IG1vcmU7CivnlosgPCByb2xsOwor5YGaIDwgd29yazsKK+iuoSA8IHBsYW47CivnjosgPCBraW5nOwor5ZCEIDwgZWFjaDsKK+eVmSA8IHN0b3A7CivnlY8gPCBmZWFyOwor55S3IDwgbWFsZTsKK+mjjiA8IHdpbmQ7CivltJcgPCBwb3N0Owor5q+bIDwgaGFpcjsKK+WzsCA8IHBlYWs7CivniLEgPCBsb3ZlOwor55OmIDwgdGlsZTsKK+izoyA8IHNlbGw7Civos4MgPCByZW50Owor6LK4IDwgbGVuZDsKK+WyuCA8IGJhbms7Civnu5MgPCBrbm90Owor5bKsIDwgY2FwZTsKK+a1gSA8IGZsb3c7CivosqcgPCBwb29yOwor6Z2SIDwgYmx1ZTsKK+euoSA8IHBpcGU7Civov54gPCBqb2luOwor6ZifIDwgdGVhbTsKK+WxkSA8IGJpdHM7CivpooYgPCBuZWNrOwor5bGIIDwgYmVuZDsKK+WwviA8IHRhaWw7CivljYogPCBoYWxmOwor5YCZIDwgd2FpdDsKK+atpSA8IHN0ZXA7Civmt7EgPCBkZWVwOwor5Yy6IDwgYXJlYTsKK+WwiyA8IHNlZWs7CivnkIMgPCBiYWxsOwor5ZGKIDwgdGVsbDsKK+WvuCA8IGluY2g7Civmu6EgPCBmaWxsOwor5p2OIDwgcGx1bTsKK+aBryA8IHJlc3Q7Civlr5IgPCBjb2xkOwor5a+EIDwgc2VuZDsKK+WPliA8IHRha2U7CivlrqQgPCByb29tOwor5a6bIDwgc2VlbTsKK+WtqSA8IGJhYnk7Civlub8gPCB3aWRlOwor546JIDwgamFkZTsKK+eBqyA8IGZpcmU7CivoroAgPCByZWFkOwor6K29IDwgZmFtZTsKK+WImSA8IHJ1bGU7CivlpLEgPCBsb3NlOwor5YyFIDwgd3JhcDsKK+eMtiA8IGxpa2U7CivokL0gPCBmYWxsOwor5rWOIDwgaGVscDsKK+isoSA8IHNpbmc7CivnvJYgPCBrbml0Owor6LCIIDwgdGFsazsKK+aLiSA8IHB1bGw7Civni7wgPCB3b2xmOwor5p2AIDwga2lsbDsKK+WrjCA8IGhhdGU7CivlhYsgPCBncmFtOwor5YayIDwgc29hcjsKK+aOqCA8IHB1c2g7Civnp7AgPCBjYWxsOwor6KmmIDwgdGVzdDsKK+WPtyA8IG1hcms7CivkupogPCBhc2lhOwor5rivIDwgcG9ydDsKK+iIrCA8IHNvcnQ7CivniKogPCBjbGF3Owor5YiaIDwgaGFyZDsKK+mZhiA8IGxhbmQ7Civnoa4gPCBzdXJlOwor5YW3IDwgdG9vbDsKK+WogSA8IHBvbXA7Civnur8gPCBsaW5lOwor6KemIDwgYnV0dDsKK+inkiA8IGhvcm47Civnh5IgPCBidXJuOwor5aa7IDwgd2lmZTsKK+mcgCA8IG5lZWQ7CivphZIgPCB3aW5lOwor6ZOBIDwgaXJvbjsKK+imlyA8IHBlZWs7CivljLsgPCBjdXJlOwor6KWyIDwgcmFpZDsKK+eFriA8IGNvb2s7CivlnJ8gPCBzb2lsOwor6L2vIDwgc29mdDsKK+eFpCA8IGNvYWw7CivlpZcgPCBjYXNlOwor5oi3IDwgZG9vcjsKK+iDjCA8IGJhY2s7CivmmpcgPCBkYXJrOwor6aG7IDwgbXVzdDsKK+ijuCA8IGJhcmU7CivmoJEgPCB0cmVlOwor5rKJIDwgc2luazsKK+iBjCA8IGR1dHk7Civnu4YgPCBmaW5lOwor6KOcIDwgbWVuZDsKK+iioiA8IHJvYmU7Civml4EgPCBzaWRlOwor5aG1IDwgZHVzdDsKK+WhqSA8IHNhbHQ7CivmrYwgPCBzb25nOwor54GMIDwgcG91cjsKK+WhgCA8IHdhbGw7CivloKQgPCBkaWtlOwor5oG2IDwgZXZpbDsKK+WghiA8IGhlYXA7CivmhaIgPCBzbG93Owor5aCAIDwgY2F2ZTsKK+ifuyA8IGFudHM7Civol48gPCBoaWRlOwor5Z+LIDwgYnVyeTsKK+a+uSA8IGNhbG07CivlnqIgPCBkaXJ0Owor6J6NIDwgbWVsdDsKK+a9riA8IHRpZGU7CivmlZEgPCBzYXZlOwor5LidIDwgc2lsazsKK+m9iiA8IGV2ZW47CivpvLsgPCBub3NlOwor5rysIDwgc29hazsKK+m8kyA8IGRydW07CivmvI8gPCBsZWFrOwor5b2VIDwgY29weTsKK+mBhyA8IG1lZXQ7CivoiLkgPCBzaGlwOwor6bu0IDwgbW9sZDsKK+a7tCA8IGRyaXA7Civpm6ggPCByYWluOwor6JuZIDwgZnJvZzsKK+a7kSA8IHNsaXA7CivpursgPCBoZW1wOwor6JqkIDwgZmxlYTsKK+m5vyA8IGRlZXI7CivmspkgPCBzYW5kOwor5ZmbIDwgYml0ZTsKK+aLjSA8IGNsYXA7CivmjokgPCB0dXJuOwor5ZOtIDwgd2VlcDsKK+WYhiA8IHNpZ2g7CivljYggPCBub29uOwor5Y2hIDwgY2FyZDsKK+mbqiA8IHNub3c7Civmt7UgPCBndWxmOwor5ra8IDwgY29vbDsKK+WIuiA8IHN0YWI7CivolqogPCBmdWVsOwor6bG8IDwgZmlzaDsKK+WWmCA8IHBhbnQ7Civnm5ggPCB0cmF5Owor6JaUIDwgcm9zZTsKK+aetiA8IHJhY2s7CivmrL4gPCBpdGVtOwor5rWqIDwgd2F2ZTsKK+iVqSA8IHBvbmQ7CivmtKogPCB2YXN0Owor6ZWHIDwgdG93bjsKK+a1hCA8IHB1cmU7Civml4UgPCB0cmlwOwor5ZS+IDwgc3BpdDsKK+mqqCA8IGJvbmU7CivllJYgPCBkdW1iOwor6bSJIDwgY3JvdzsKK+WUhyA8IGxpcHM7Civms7MgPCBkaXZlOwor5ZOyIDwgd2lzZTsKK+WTqSA8IG1pbGU7CivlnKMgPCBob2x5Owor6bOlIDwgYmlyZDsKK+aZkyA8IGRhd247CivmsrwgPCBsYWtlOwor6IW/IDwgbGVnczsKK+aOoiA8IGZpbmQ7CivokaYgPCByZWVkOwor5rGgIDwgcG9vbDsKK+iRiSA8IGxlYWY7CivmnZ8gPCBiaW5kOwor5ZGGIDwgZHVsbDsKK+WQuyA8IGtpc3M7CivlkLkgPCBibG93Owor5rCPIDwgY2xhbjsKK+etviA8IHNpZ247CivmsIggPCBmZWx0Owor5aW2IDwgbWlsazsKK+iPqSA8IGhlcmI7Civlj6IgPCBidXNoOwor5oyCIDwgaGFuZzsKK+iIqiA8IHNhaWw7Civmi7MgPCBmaXN0Owor5LmYIDwgcmlkZTsKK+WdgCA8IHNpdGU7Civmr4YgPCBiZWF0Owor6a2CIDwgc291bDsKK+S5lCA8IHRhbGw7Civnsq4gPCBmb29kOwor5pWPIDwgZmFzdDsKK+iMjiA8IHN0ZW07Civpm7YgPCB6ZXJvOwor5Yu+IDwgaG9vazsKK+S5gyA8IHRoZW47CivmiqwgPCBsaWZ0Owor6IuUIDwgbW9zczsKK+WGkiA8IHJpc2s7CivmqqMgPCBtYXN0Owor6ZetIDwgc2h1dDsKK+eilyA8IGJvd2w7CivliaUgPCBwZWVsOwor6JuLIDwgZWdnczsKK+S/gyA8IHVyZ2U7CivmnbAgPCBoZXJvOwor6IifIDwgYm9hdDsKK+i/nyA8IGxhdGU7CivotZYgPCByZWx5Owor6aeSIDwgY29sdDsKK+mmtCA8IHRhbWU7Civohp0gPCBrbmVlOwor5ouWIDwgZHJhZzsKK+aYjyA8IGR1c2s7CivmiJIgPCB3YXJuOwor6aG1IDwgcGFnZTsKK+S6lSA8IHdlbGw7CivohIcgPCByaWJzOwor5LmPIDwgbGFjazsKK+iDniA8IHdvbWI7CivmoqggPCBwZWFyOwor6YW4IDwgdGFydDsKK+ahtiA8IHBhaWw7Civnu6kgPCBzcGluOwor5pOmIDwgd2lwZTsKK+autyA8IG1hbnk7CivogJUgPCBwbG93Owor5pqWIDwgd2FybTsKK+mUgSA8IGxvY2s7CivnoI0gPCBoYWNrOwor5oWIIDwga2luZDsKK+e+uSA8IHNvdXA7Civpnq0gPCB3aGlwOwor576oIDwgZW52eTsKK+aSpCA8IG9taXQ7CivnrbkgPCBjaGlwOwor5p2WIDwgY2FuZTsKK+mcsCA8IGhhaWw7Civmu4sgPCBncm93Owor6LCxIDwgbGlzdDsKK+S4mCA8IGhpbGw7CivmnYYgPCBwb2xlOwor6ZqIIDwgY292ZTsKK+e6giA8IGVkaXQ7CivllIkgPCBhbGFzOwor56y8IDwgY2FnZTsKK+e5qiA8IGRyYXc7CivnuakgPCByb3BlOwor55+/IDwgbWluZTsKK+mVliA8IGRhcnQ7CivlhYYgPCBvbWVuOwor5oqrIDwgd2VhcjsKK+WAuiA8IGRlYnQ7CivloKEgPCBmb3J0Owor6aKCIDwgbGF1ZDsKK+e1hiA8IGxvb3A7CivpkokgPCBuYWlsOwor5ZOEIDwgY29heDsKK+mTgyA8IGJlbGw7CivlpZEgPCBkZWVkOwor5oeSIDwgbGF6eTsKK+eMjiA8IGh1bnQ7CivmkbogPCBmb2xkOwor566LIDwgbm90ZTsKK+aNsiA8IGN1cmw7Civnp4MgPCBiYWxkOwor6bitIDwgZHVjazsKK+WQvCA8IHJvYXI7CivnqrogPCBwZWVwOwor5Y+gIDwgcGlsZTsKK+mKkSA8IG1pbGw7CivpgLggPCBmbGVlOwor6LSxIDwgbWVhbjsKK+eLriA8IGxpb247Civlpq4gPCBtYWlkOwor56qRIDwga2lsbjsKK+aFviA8IGx1c3Q7CivnpbcgPCBwcmF5Owor6LmEIDwgaG9vZjsKK+eDpCA8IGJha2U7CivlsKwgPCBsaW1wOwor6YCxIDwgd2VlazsKK+aAoCA8IGlkbGU7Civog7YgPCBnbHVlOwor5qKzIDwgY29tYjsKK+WVpCA8IGJlZXI7Civphb8gPCBicmV3Owor5o2jIDwgaHVsbDsKK+WZoiA8IG1vYW47Civnqp8gPCBob2xlOwor5YWRIDwgY2FzaDsKK+ayuCA8IGJvaWw7CivnmL4gPCByYXNoOwor5aaeIDwgZ2lybDsKK+W4nCA8IGZsYWc7Civolb4gPCBidWRzOwor6ZOFIDwgbGVhZDsKK+mUoyA8IGdvbmc7Civll6YgPCBzdWNrOwor6L20IDwgYXhsZTsKK+a2lSA8IHRlYXI7CivlkIYgPCBiYXdsOwor6IGLIDwgZGVhZjsKK+WLnyA8IGxldnk7CivnmoIgPCBzb2FwOwor6J+5IDwgY3JhYjsKK+WUoCA8IGNoYXQ7CivllYMgPCBnbmF3Owor576UIDwgbGFtYjsKK+mUiCA8IHJ1c3Q7CivohZMgPCBjYWxmOwor6aqhIDwgbXVsZTsKK+mGhyA8IHJpY2g7CivnuqwgPCB3b29mOwor6JukIDwgY2xhbTsKK+WRsSA8IHdhaWw7CivmiI4gPCBhcm1zOwor6JS8IDwgbHVzaDsKK+ekgSA8IHJlZWY7Civpl6kgPCBib2x0Owor6LebIDwgbGFtZTsKK+WBjCA8IHRodXM7Civnro0gPCBob29wOwor6J+gIDwgY29pbDsKK+aOgiA8IGhlZnQ7CivpgZAgPCBhZmFyOwor5ZCgIDwgYmFyazsKK+ibviA8IG1vdGg7CivogJggPCB3ZWVkOwor6J++IDwgdG9hZDsKK+etjyA8IHJhZnQ7CivpsqQgPCBjYXJwOwor6IqLIDwgdGFybzsKK+m5qiA8IHdyZW47CivonJUgPCBtb2x0Owor54SKIDwgd2VsZDsKK+iAmSA8IHJha2U7CivnvIQgPCBzZWFsOwor5rypIDwgZWRkeTsKK+mltSA8IGJhaXQ7CivosJEgPCBqZWVyOwor6aKPIDwgY2hpbjsKK+iKriA8IHRpbnk7CivnkqggPCBnZW1zOwor5rO1IDwgcHVtcDsKK+ixjCA8IHBlYXM7CivloJEgPCBtb2F0Owor55a1IDwgZmxhdzsKK+amiCA8IHBhbG07CivprIMgPCBtYW5lOwor5ZKdIDwgaGlzczsKK+mCiyA8IHJhZ3M7Civog6QgPCBoZWlyOwor57KVIDwgbGVlczsKK+aMniA8IGZsb2c7CivplasgPCBsYW1wOwor6ZiEIDwgbG90czsKK+mUjCA8IHppbmM7CivllpkgPCBiZWFrOwor6IKbIDwgYW51czsKK+eXgiA8IHNjYWI7CivpuKIgPCBraXRlOwor6L2tIDwgeW9rZTsKK+a0tSA8IHRydWU7Civms4UgPCBzd2ltOwor55++IDwgYWx1bTsKK+iaqSA8IHdvcm07CivpuLcgPCBoYXdrOwor6ICLIDwgYWdlZDsKK+WdqCA8IGx1bXA7CivnlrEgPCBhY25lOwor54ioIDwgb3ZlbjsKK+aLiiA8IHNsYXA7Civpqp8gPCBnZWxkOwor5Zy5IDwgdG9tYjsKK+m+iCA8IGd1bXM7CivpmIsgPCBmZXVkOwor6YWwIDwgYWN5bDsKK+eWoyA8IHdhcnQ7CivnqZEgPCBmYXJtOwor56S7IDwgY3VsdDsKK+S9pCA8IGthd2E7CivpurggPCBicmFuOwor6I+WIDwgaXJpczsKK+WrsSA8IGxhZHk7CivosJ0gPCBicmFnOwor5rCWIDwgbmVvbjsKK+i3liA8IHNvbGU7CivomosgPCBnbmF0Owor5YG+IDwgcnVpbjsKK+eWkiA8IHNpY2s7CivlmY0gPCBjaGV3Owor5rSzIDwgZGFtcDsKK+eCsSA8IHNvb3Q7CivohqogPCBwb3JrOwor57uyIDwgY29yZDsKK+WugCA8IHJvb2Y7CivluLbpnLIgPCBkZXd5Owor6JaE5ZG9IDwgXCh1c3U7Civlip/nuL4gPCBmZWF0Owor5pq05LqCIDwgcmlvdDsKK+eIm+azpSA8IG9vemU7Civml6XmnJ8gPCBkYXRlOwor5aeo5aq9IDwgYXVudDsKK+S8iuaLieWFiyA8IGlyYXE7Civlub3osLcgPCBkZWxsOwor5pWZ55qHIDwgcG9wZTsKK+WQkeS4iyA8IGRvd247CivpgJ/ooYwgPCBydXNoOwor5pyJ6IO95YqbIDwgYWJsZTsKK+mAmeijoSA8IGhlcmU7CivnvLrlj6MgPCBuaWNrOwor5Y6f5a2QIDwgYXRvbTsKK+eLguWQoCA8IGhvd2w7Civlv4Pmg4UgPCBtb29kOwor6YeO5YWUIDwgaGFyZTsKK+WfuumHkSA8IGZ1bmQ7Civln4PnsbPniL4gPCBlbWlyOwor55+z54mHIDwgc2xhYjsKK+WSluWVoemkqCA8IGNhZmU7CivlhrDpjq4gPCBpY2VkOwor54a+54axIDwgZ2xvdzsKK+efs+eBsCA8IGxpbWU7Civnmq7pnq0gPCBsYXNoOwor5Ya36YW3IDwgZ3JpbTsKK+ehrOW5oyA8IGNvaW47Civlh53oppYgPCBnYXplOwor5pWZ5rS+IDwgc2VjdDsKK+WFrOmbniA8IGNvY2s7Civop5LoibIgPCByb2xlOwor57qW5bqmIDwgc2l6ZTsKK+WlieaJvyA8IGZhd247CivpnLLpvZLogIznrJEgPCBncmluOwor6Kqy5paHIDwgdGV4dDsKK+mVt+mdtCA8IGJvb3Q7CivniaLlm7ogPCBmaXJtOwor55m+6Z2IIDwgbGFyazsKK+mAmuihjOeohSA8IHRvbGw7CivnjononIDpu40gPCBjb3JuOwor6YCP57SFIDwgcm9zeTsKK+aVuOaTmiA8IGRhdGE7CivoqanmrYwgPCBwb2VtOwor5bCP5q+b6J+yIDwgc2x1ZzsKK+aogumaiiA8IGJhbmQ7CivmsKPlkbMgPCBvZG9yOwor54Sh56auIDwgcnVkZTsKK+mDveW4giA8IGNpdHk7Civopb/oloQgPCBjYWtlOwor5pyA5Li76KaBIDwgbWFpbjsKK+mbquaSrCA8IHNsZWQ7CivpgajmuLggPCByb2FtOwor5q+S5a6zIDwgYmFuZTsKK+eMtuS7luW3niA8IHV0YWg7CivntLDog54gPCBjZWxsOwor5Y2R5YqjIDwgYmFzZTsKK+W+qeWOnyA8IGhlYWw7CivliKXnmoQgPCBlbHNlOwor5YWs6LGsIDwgYm9hcjsKK+iqv+WtkCA8IHR1bmU7CivnnLznnIsgPCBzb29uOwor6Z2i5YW3IDwgbWFzazsKK+W8p+W9oiA8IGFyY2g7Civkvb/lj5flgrcgPCBodXJ0Owor55im6ZW3IDwgc2xpbTsKK+iKsemCiiA8IGxhY2U7Civloavmu78gPCBjcmFtOwor6Ku+5LqeIDwgbm9haDsKK+WkluWllyA8IGNvYXQ7CivplbfopaogPCBob3NlOwor56uL5pa56auUIDwgY3ViZTsKK+mVt+iijSA8IGdvd247CivlvLflp6YgPCByYXBlOwor54Wn5paZIDwgdGVuZDsKK+aOoemCkSA8IGZpZWY7CivmjqDpgY4gPCBmbGl0Owor54Gw6ImyIDwgZ3JheTsKK+eZvemqqOmggiA8IGNvb3Q7CivntLDnnIsgPCBwZWVyOwor6bu2IDwgbW9sZTsKK+ikquiJsiA8IGZhZGU7CivpupogPCBidWNrOwor6YGp5oeJIDwgc3VpdDsKK+m6jCA8IHN0YWc7CivpuoMgPCB0aWxsOwor6bmGIDwgbXluYTsKK+S4gOinkumKgOW5oyA8IGRpbWU7CivliZ3mjokgPCBwYXJlOwor6YO15Lu2IDwgbWFpbDsKK+eekeaDsyA8IG11c2U7CivpgYrmiLIgPCBnYW1lOwor56+A6bueIDwgbm9kZTsKK+moryA8IGxvdWQ7Civpp70gPCBncmV5Owor5o2y6Lu4IDwgcmVlbDsKK+mljCA8IGZlZWQ7CivmlaPlh7ogPCBzaGVkOwor6aOhIDwgbWVhbDsKK+W3oueptCA8IGxhaXI7CivmtIvlqIPlqIMgPCBkb2xsOwor6Zi/5pu8IDwgb21hbjsKK+W7oOWtkCA8IHlhcmQ7CivourLpgb8gPCBzaHVuOwor54ax5YqbIDwgaGVhdDsKK+mYniA8IHZlaW47CivkuIvkuIDmrKEgPCBuZXh0Owor5re66buD6ImyIDwgYnVmZjsKK+mXhiA8IGJvc3M7CivnsL3oqLwgPCB2aXNhOwor6bO05Y+rIDwgaG9vdDsKK+mVqSA8IHBpY2s7CivplZUgPCBmdXNlOwor6ZGiIDwgZmlsZTsKK+mQqSA8IGxlbnM7CivmlLblibIgPCByZWFwOwor57ay5a2UIDwgbWVzaDsKK+mbnOS6giA8IG1lc3M7CivmjonokL0gPCBmbG9wOwor6aOy6aOf55mC6aSKIDwgZGlldDsKK+ipqeS6uiA8IGJhcmQ7CivlpKfooovlrZAgPCBzYWNrOwor6KGo6LGhIDwgaWRlYTsKK+iIkumBqSA8IGNvenk7Civoi7HnlZ0gPCBhY3JlOwor5q2l5LyQIDwgcGFjZTsKK+i9lyA8IGZhaWw7CivmjqXnuKsgPCBzZWFtOwor5YWs54mbIDwgYnVsbDsKK+eyl+eggiA8IGdyaXQ7CivlhazniLUgPCBkdWtlOwor6Le8IDwgYmVudDsKK+WHuuenn+i7iiA8IHRheGk7Civot7IgPCBob29kOwor6I+c5ZauIDwgbWVudTsKK+apq+aokSA8IGJlYW07Civos7UgPCBnaWZ0Owor6KGT6KqeIDwgdGVybTsKK+WJm+WLgSA8IGJvbGQ7CivooZrooZUgPCBsYW5lOwor6Im+57WoIDwgbW94YTsKK+iqpyA8IGh1Z2U7Civop50gPCBnb3JlOwor5YWI6KaL6ICFIDwgc2VlcjsKK+iKseeTtiA8IHZhc2U7CivooK0gPCBiZWVzOwor5qmf5pm6IDwgdGFjdDsKK+WCvuiBvSA8IGhhcms7CivonokgPCB3YXNwOwor6ZCY6aCtIDwgaG91cjsKK+iYkiA8IFw6MTQzOwor6JefIDwgdmluZTsKK+eCuOW9iCA8IGJvbWI7Civlm57ogbIgPCBlY2hvOwor6JOrIDwgZG9jazsKK+ino+WHjSA8IHRoYXc7CivokJwgPCBjNWg4Owor6I++IDwgYmVldDsKK+mVt+anjSA8IHBpa2U7Civlha3mnIggPCBqdW5lOwor5YOx55SoIDwgaGlyZTsKK+Wck+ebpCA8IGRpc2s7CivlnLDnjYQgPCBoZWxsOwor54i15aOr6IieIDwgamF6ejsKK+mYv+WAkSA8IGFtZW47CivohbYgPCBtZWF0Owor6ISyIDwgdXJlYTsKK+i3r+mCiiA8IGN1cmI7CivoppblnJYgPCB2aWV3Owor5pKH5Y67IDwgc2tpbTsKK+i+suWltCA8IHNlcmY7Civoib7mu4vnl4UgPCBhaWRzOwor5biz5ZauIDwgYmlsbDsKK+iNieWdqiA8IGxhd247CivmkLblpaogPCBzbmFwOwor6Zu754eI5rOhIDwgYnVsYjsKK+ergSA8IGJvcmU7CivnqZwgPCByaWNlOwor56a4IDwgcnVtcDsKK+WDueasviA8IGNvc3Q7CivmqKPlvI8gPCB0eXBlOwor5pCN5a6zIDwgaGFybTsKK+aooeW8jyA8IG1vZGU7Civnm5/lj4sgPCBhbGx5Owor55+7IDwgdG9pbDsKK+eWvOeXmyA8IGFjaGU7CivmqJPlu4IgPCBsb2Z0Owor55uu556q5Y+j5ZGGIDwgc3R1bjsKK+WxgeipsSA8IHNoaXQ7Civpj4jot68gPCBsaW5rOwor54y25aSn5pu4IDwganVkZTsKK+S9jumfsyA8IGJhc3M7CivnlKjohrMgPCBkaW5lOwor56yR6KmxIDwgam9rZTsKK+Wxsee+iiA8IGdvYXQ7Civnq7bos70gPCByYWNlOwor56yo6JuLIDwgZm9vbDsKK+WyqeefsyA8IHJvY2s7CivnlaXnorwgPCBjb2RlOwor5ra0IDwgZGF1YjsKK+i8g+WwkSA8IGxlc3M7Civnmb7lkIggPCBsaWx5Owor6IWw6IKJIDwgbG9pbjsKK+WcsOW4tiA8IHpvbmU7CivplqPkuIsgPCBzaXJlOwor6b6N6aqoIDwga2VlbDsKK+Wkp+mgremHmCA8IHRhY2s7Civkv53nvoUgPCBwYXVsOwor6Imy5b2pIDwgdGludDsKK+aqjSA8IGlsZXg7Civmp7kgPCBzcGFyOwor5o2y5bi2IDwgdGFwZTsKK+akkSA8IG92YWw7CivpjY3ph5EgPCBnaWxkOwor5oyH5qiZIDwgbm9ybTsKK+ihneaSniA8IGRhc2g7Civmn6MgPCBzaWxsOwor5bKp5ry/IDwgbGF2YTsKK+afgiA8IGhlbG07Civmj6HkvY8gPCBncmlwOwor5pyYIDwgd2FuZTsKK+Wck+Wxi+mggiA8IGRvbWU7Civmk6sgPCB0dWNrOwor562W55WlIDwgcGxvdDsKK+aRsiA8IHJhemU7CivmkJggPCBwcm9wOwor5Lqe6bq7IDwgZmxheDsKK+aOniA8IGVhc3k7CivlnIjlpZcgPCB0cmFwOwor6ZuZ6IOe6IOOIDwgdHdpbjsKK+exg+WciCA8IHJpbmc7Civohr3msYEgPCBnYWxsOwor5oawIDwgd2lseTsKK+aAsyA8IHdpbGQ7CivmjqHkvJAgPCBmZWxsOwor5LiA5aGK6bq1IDwgbG9hZjsKK+mbu+apn+WPiumbu+WtkOWtuOW3peeoi+W4q+iBr+WQiOacgyA8IGllZWU7CivlgJ/mrL4gPCBsb2FuOwor5Yiw77mN5LmL5LiKIDwgb250bzsKK+iiluWPoyA8IGN1ZmY7Civlhajpq5Tkurrlk6EgPCBjcmV3Owor5L2/55So6ICFIDwgdXNlcjsKK+enmOmtryA8IHBlcnU7Civlg6fkvrYgPCBtb25rOwor5a27IDwgbGFzdDsKK+aLluaLiSA8IGhhdWw7CivlqoogPCBzdGFyOwor5ai4IDwgdWdseTsKK+mBoOeoi+ebo+aOpyA8IHJtb247CivlnKjvuY3kuYvkuK0gPCBhbWlkOwor5ZyN5L2PIDwgZ2lyZDsKK+WnpCA8IG1hdGU7Civmo43mo5IgPCBjbHViOwor5ouN5omTIDwgZmxhcDsKK+mjvumHmCA8IHN0dWQ7CivlgY/lt64gPCBiaWFzOwor6aqw5a2QIDwgZGljZTsKK+iBluipqSA8IGh5bW47CivlpJblsI/ohb8gPCBzaGluOwor6Yuq6KitIDwgcGF2ZTsKK+WQvSA8ICcnb20nJzsKK+ibi+eZveefsyA8IG9wYWw7Civmnq/okI4gPCB3aWx0Owor5YicIDwgY2hvcDsKK+WIkyA8IHRyaW07CivkuIDliIbpjKIgPCBjZW50Owor55ay5YCmIDwgdGlyZTsKK+izouiDvSA8IHNhZ2U7Civmtbfou40gPCBuYXZ5Owor6Iet5ZGzIDwgZnVtZTsKK+S+nCA8IGxpZXM7CivkvLEgPCB0aG91Owor5YG25YOPIDwgaWRvbDsKK+Wwj+i1t+mHjeapnyA8IGphY2s7Civot6jluqYgPCBzcGFuOwor5LO8IDwgZ3VsbDsKK+aenOiCiSA8IHB1bHA7CivksbQgPCB0dW5hOwor5K+VIDwgYm9ueTsKK+WRvemBiyA8IGZhdGU7CivlrZfnr4AgPCBieXRlOwor576F6aasIDwgcm9tZTsKK+iAg+ippiA8IGV4YW07Civkp7sgPCBkb3ZlOwor5YCN5aGUIDwgYmV0YTsKK+Wck+mMkOmrlCA8IGNvbmU7CivmgqDplpIgPCBlYXNlOwor5Lyv54i1IDwgZWFybDsKK+WRqOmBiiA8IHRvdXI7CivkoYAgPCBudWRlOwor5KCPIDwgZmVldDsKK+SavSA8IG5ld3M7CivnkLXnkLYgPCBsdXRlOwor5JmKIDwgYXJpZDsKK+iGoOWNtyA8IGZpbG07Civklq0gPCBncnViOwor5bCI55So6ZuG5oiQ6Zu76LevIDwgYXNpYzsKK+SSuiA8IGNsYXk7Civlk4HohKsgPCBwaW50Owor5bCP5bO2IDwgaXNsZTsKK+iWhOmcpyA8IG1pc3Q7CivkvZXmmYIgPCB3aGVuOwor5Y+j6aCtIDwgb3JhbDsKK+S7pOeLgCA8IHdyaXQ7CivkgYYgPCBleWVzOwor5IGFIDwgcmFnZTsKK+iVqOmhniA8IGZlcm47CivkgIAgPCBjdXBzOwor47+ZIDwgZnVsbDsKK+O+uSA8IGxlYW47CivmipPkvY8gPCBncmFiOwor6JyC6Jyc6YWSIDwgbWVhZDsKK+aguOW/gyA8IGNvcmU7CivmsbrprKUgPCBkdWVsOwor6LGG6IWQIDwgdG9mdTsKK+WSkue9tSA8IGRhbW47CivjsrsgPCBzdW5rOwor47K0IDwgbWluZDsKK+OynCA8IHJ1Z3M7CivjsKsgPCBnbGFkOwor47CfIDwgaG9wZTsKK+OupCA8IHBpbmU7CivonILmiL8gPCBoaXZlOwor466SIDwgd29vZDsKK+OrsSA8IG1pbGQ7Civppqzlu4QgPCBiYXJuOwor5Lqe55W2IDwgYWRhbTsKK+e/heiGgCA8IHdpbmc7Civph5HlsazoloTniYcgPCBmb2lsOwor5LyK5pyXIDwgaXJhbjsKK+S4u+e+qSA8IFwtaXNtOwor6bql6Iq9IDwgbWFsdDsKK+eLueiwtyA8IGdsZW47CivniaHpub8gPCBoYXJ0Owor5Zyo5LmL5LiKIDwgb3ZlcjsKK+WQjeipniA8IG5vdW47CivlrZjmoLkgPCBzdHViOwor6aCt6IWm5riF5qWaIDwgc2FuZTsKK+OapyA8IGFnaWw7Civlj7LoqakgPCBlcGljOwor6LK05amm5Lq6IDwgZGFtZTsKK+WutuWckiA8IGhvbWU7CivniZvpo7IgPCBndWxwOwor6LO65b6XIDwgZWFybjsKK+ixjueQtCA8IGhhcnA7CivkuIDnvqQgPCBnYW5nOwor6Z+z6Kq/IDwgdG9uZTsKK+adv+ainSA8IGxhdGg7CivosrTml48gPCBsb3JkOwor5ZOI5qygIDwgeWF3bjsKK+ixrOayuSA8IGxhcmQ7CivpjKvlrokgPCB6aW9uOwor542154mpIDwgcHJleTsKK+e0heWvtuefsyA8IHJ1Ynk7Civniq/opo8gPCBmb3VsOwor6Luf5pyo5aGeIDwgY29yazsKK+ayueiGjyA8IGJhbG07Civnj63miL8gPCBqYWlsOwor5paR6bueIDwgc3BvdDsKK+a1ruaomSA8IGJ1b3k7CivlrrbkvJkgPCBjaGFwOwor5b6M6Z2iIDwgcmVhcjsKK+Wkqem1nSA8IHN3YW47CivmlbTpvYogPCB0aWR5Owor5Zyo5rC05q2l6KGMIDwgd2FkZTsKK+avjemmrCA8IG1hcmU7CivlrZflnosgPCBmb250Owor5a6J5YWoIDwgc2FmZTsKK+eyiee0heiJsiA8IHBpbms7CivlraTllq4gPCBsb25lOwor5pyo5qG2IDwgY2FzazsKK+mjvuW4tiA8IHNhc2g7CivogIHmkr4gPCBsYW9zOwor5pym5pynIDwgYmx1cjsKK+iqsumhjCA8IHRhc2s7Civnj6DlrZAgPCBiZWFkOwor5ZG85ZG86IGyIDwgd2hpcjsKK+W/q+atpei3kSA8IHRyb3Q7Civms6LnibkgPCBiYXVkOwor6YeO56a9IDwgZm93bDsKK+aaiOecqSA8IGRhemU7CivoqqrorIrogIUgPCBsaWFyOwor5p+Q5LqbIDwgc29tZTsKK+W8t+miqCA8IGdhbGU7CivpurvmnKggPCBudW1iOwor6Zmq5a+p5ZyYIDwganVyeTsKK+mfgee5qSA8IHJlaW47CivlkKbmsbogPCB2ZXRvOwor5rKZ55m8IDwgc29mYTsKK+S7luWAkSA8IHRoZXk7Civms6HmsqsgPCBmb2FtOwor54mb6IKJIDwgYmVlZjsKK+S4g+aciCA8IGp1bHk7CivkuIDmnI0gPCBkb3NlOwor6LGG5a2QIDwgYmVhbjsKK+WqveWqvSA8IG1hbWE7CivmlY/pirMgPCBrZWVuOwor5rK55rK5IDwgb2lseTsKK+WMheijnSA8IHBhY2s7CivmsaHnl5UgPCBibG90Owor54yb5pKeIDwgc2xhbTsKK+mdoue9qSA8IHZlaWw7Civpnq3nl5UgPCB3ZWx0Owor5Lqe5LiBIDwgYWRlbjsKK+eNqOWljyA8IHNvbG87CivmspDmtbQgPCBiYXRoOwor5pyA5aW9IDwgYmVzdDsKK+iqk+ipniA8IG9hdGg7Civli5XoqZ4gPCB2ZXJiOwor6auY54i+5aSr55CDIDwgZ29sZjsKK+aatOW+kiA8IHRodWc7Civmsb3msLQgPCBzb2RhOwor55+t6KWqIDwgc29jazsKK+W8leitiSA8IGNpdGU7CivpiJXluLYgPCBib25kOwor5YmN6Z2iIDwgZm9yZTsKK+mZo+miqCA8IGd1c3Q7Civmg6HliqMgPCB2aWxlOwor5q+b57eaIDwgeWFybjsKK+WMl+e0hCA8IG5hdG87Civph43mk4ogPCBiYW5nOwor5q2l6Kq/IDwgZ2FpdDsKK+mAmumiqCA8IGFpcnk7Civorormj5sgPCB2YXJ5Owor6JK855m9IDwgcGFsZTsKK+awtOa7tCA8IGRyb3A7CivnuZTluIPmqZ8gPCBsb29tOwor6Zu76Kmx6Yi06IGyIDwgYnV6ejsKK+aUtuiXjyA8IGtlZXA7Civpm7vnt5ogPCB3aXJlOwor5LiA5ZC5IDwgcHVmZjsKK+avm+eariA8IHBlbHQ7CivpgYvosrsgPCBmYXJlOwor5aOB6JmxIDwgdGljazsKK+aSpemWiyA8IHBva2U7Civov7fpmaMgPCBtYXplOwor6Jel5Li4IDwgcGlsbDsKK+WFiee6luWIhuS9iOaVuOaTmuaOpeWPoyA8IGZkZGk7CivpnLLnh58gPCBjYW1wOwor5q+S54mpIDwgcGVzdDsKK+S4gCA8IG9uZTsKK+S6uiA8IG1hbjsKK+aIkSA8IG91cjsKK+WkpyA8IGJpZzsKK+S4iiA8IHRvcDsKK+S9oCA8IHlvdTsKK+WPryA8IG1heTsKK+WluSA8IHNoZTsKK+WkqSA8IHNreTsKK+iAjCA8IGFuZDsKK+eEtiA8IHllczsKK+ayoSA8IG5vdDsKK+aXpSA8IHN1bjsKK+W9qSA8IGh1ZTsKK+WNgSA8IHRlbjsKK+eUqCA8IHVzZTsKK+ecvCA8IGV5ZTsKK+ingSA8IHNlZTsKK+iAgSA8IG9sZDsKK+S4pCA8IHR3bzsKK+WkliA8IG91dDsKK+azlSA8IGxhdzsKK+eCuSA8IGRvdDsKK+ebnCA8IHJvYjsKK+WFtiA8IGhpczsKK+WEvyA8IHNvbjsKK+aWsCA8IG5ldzsKK+W6iiA8IGJlZDsKK+eahiA8IGFsbDsKK+a1tyA8IHNlYTsKK+WwkSA8IGZldzsKK+W4vSA8IGhhdDsKK+WPqyA8IGNyeTsKK+atuyA8IGRpZTsKK+aUviA8IHB1dDsKK+S7iiA8IG5vdzsKK+i1pCA8IHJlZDsKK+eVoiA8IGVuZDsKK+aImCA8IHdhcjsKK+izvCA8IGJ1eTsKK+eTtiA8IGp1ZzsKK+ivtyA8IGFzazsKK+S6pCA8IG1peDsKK+WQgyA8IGVhdDsKK+i/kCA8IHJ1bjsKK+e9kSA8IG5ldDsKK+mjniA8IGZseTsKK+eMvyA8IGFwZTsKK+eMqyA8IGNhdDsKK+eMqiA8IHBpZzsKK+WdkCA8IHNpdDsKK+isgiA8IHNheTsKK+eLlyA8IGRvZzsKK+WIhyA8IGN1dDsKK+iqpCA8IGVycjsKK+eDrSA8IGhvdDsKK+eJmyA8IGNvdzsKK+S9jiA8IGxvdzsKK+S7jSA8IHlldDsKK+iEmiA8IGxlZzsKK+WliCA8IGJ1dDsKK+aOkiA8IHJvdzsKK+WjniA8IGJhZDsKK+a5viA8IGJheTsKK+WiqCA8IGluazsKK+ihkyA8IGFydDsKK+a/mCA8IG11ZDsKK+a/lSA8IHdldDsKK+mcsiA8IGRldzsKK+m9oiA8IGFnZTsKK+idmSA8IGJhdDsKK+idiyA8IHdheDsKK+m8oCA8IHJhdDsKK+icgiA8IGJlZTsKK+aRhyA8IHdhZzsKK+ayuSA8IG9pbDsKK+iXiSA8IG1hdDsKK+a2siA8IHNhcDsKK+iWryA8IHlhbTsKK+iAsyA8IGVhcjsKK+WWiyA8IG5hZzsKK+WVnCA8IHNpcDsKK+WTgCA8IHNhZDsKK+WGsCA8IGljZTsKK+adryA8IGN1cDsKK+awoyA8IGFpcjsKK+iQjCA8IGJ1ZDsKK+mAlCA8IHdheTsKK+iMtiA8IHRlYTsKK+WNtSA8IGVnZzsKK+aSrSA8IHNvdzsKK+iHgiA8IGFybTsKK+astyA8IHNvYjsKK+WMmiA8IGJveDsKK+aRqSA8IHJ1YjsKK+WGoCA8IGNhcDsKK+iKuCA8IHJ1ZTsKK+e8mCA8IGhlbTsKK+afkyA8IGR5ZTsKK+iGvyA8IHB1czsKK+amuyA8IGNvdDsKK+WGhiA8IHllbjsKK+iFkCA8IHJvdDsKK+iEgiA8IGZhdDsKK+aPtCA8IGFpZDsKK+WTvCA8IGh1bTsKK+WBtSA8IHNweTsKK+mhjiA8IGphdzsKK+e9kCA8IGphcjsKK+aNtyA8IHdpbjsKK+mcpyA8IGZvZzsKK+S5viA8IGRyeTsKK+e8nSA8IHNldzsKK+aKmiA8IHBhdDsKK+aMliA8IGRpZzsKK+aJhyA8IGZhbjsKK+S5niA8IGJlZzsKK+i1jCA8IGJldDsKK+asoCA8IG93ZTsKK+awmyA8IGdhczsKK+e3oCA8IHRpZTsKK+eCkiA8IGZyeTsKK+mUoSA8IHRpbjsKK+WdkSA8IHBpdDsKK+aSlSA8IHJpcDsKK+ejlSA8IGhpdDsKK+iwjiA8IGxpZTsKK+mKnCA8IGJpdDsKK+i1iyA8IHRheDsKK+WbiiA8IGJhZzsKK+aQgiA8IGh1ZzsKK+W8kyA8IGJvdzsKK+W6kCA8IGh1dDsKK+avryA8IHJ1ZzsKK+mSpSA8IGtleTsKK+aWpyA8IGF4ZTsKK+i5piA8IGhvcDsKK+i/oiA8IGZhcjsKK+iagiA8IGFudDsKK+mUhCA8IGhvZTsKK+aNhSA8IGphYjsKK+ahqCA8IG9hcjsKK+eLuCA8IGZveDsKK+eMliA8IG1hZDsKK+i2viA8IHRvZTsKK+iYuCA8IGRpcDsKK+eQpiA8IGdlbTsKK+eVuCA8IG9kZDsKK+WdryA8IGRhbTsKK+mznSA8IGVlbDsKK+aAqSA8IHNoeTsKK+m7oCA8IHNseTsKK+mUmyA8IGFkejsKK+m6iyA8IGVsazsKK+mzjSA8IGZpbjsKK+WIjSA8IG1vdzsKK+afniA8IG9hazsKK+meoyA8IHRhbjsKK+WDliA8IGpveTsKK+e+nSA8IHJhbTsKK+WfpCA8IGFkZDsKK+epuueZvem7niA8IGdhcDsKK+axguaEmyA8IHdvbzsKK+WQjOS9jSA8IHBhcjsKK+eCuueUmum6vCA8IHdoeTsKK+WPl+WIsCA8IGdldDsKK+WPr+S7pSA8IGNhbjsKK+mFkuW7iiA8IGJhcjsKK+eUt+WtqeWtkCA8IGJveTsKK+a2suaZtumhr+ekuiA8IGxjZDsKK+egtOW4gyA8IHJhZzsKK+W8t+aLiSA8IHR1ZzsKK+eEoeiKseaenCA8IGZpZzsKK+e2k+eUsSA8IHZpYTsKK+ioreazlSA8IHRyeTsKK+WmguS9lSA8IGhvdzsKK+ecvOeVjCA8IGtlbjsKK+W5vOeNuCA8IGN1YjsKK+mbouWtkCA8IGlvbjsKK+iyk+WPq+iBsiA8IG1ldzsKK+eEpuayuSA8IHRhcjsKK+mAgOa9riA8IGViYjsKK+m9oyA8IGFjdDsKK+eBq+iFvyA8IGhhbTsKK+m5iyA8IGVtdTsKK+mZsOaalyA8IGRpbTsKK+e4veWSjCA8IHN1bTsKK+m0niA8IG93bDsKK+mylSA8IHJvZTsKK+mstyA8IHBvdDsKK+mshiA8IGxheDsKK+mroiA8IHdpZzsKK+egjeS8kCA8IGhldzsKK+WIuuaOoiA8IHByeTsKK+W4uOaYpeiXpCA8IGl2eTsKK+mRryA8IGF3bDsKK+eDj+WQiOS5i+ecviA8IG1vYjsKK+WJjeWklSA8IGV2ZTsKK+WgheaenCA8IG51dDsKK+i9kSA8IHJ1dDsKK+i4tiA8IHBhdzsKK+WFiOeUnyA8IHNpcjsKK+ashOWciCA8IHBlbjsKK+Wwj+eyvumdiCA8IGVsZjsKK+imquWxrCA8IGtpbjsKK+e0ouWFt+ijnee9riA8IHJpZzsKK+aLlui7iiA8IHRvdzsKK+Whq+WFhSA8IHBhZDsKK+WFrOWFseaxvei7iiA8IGJ1czsKK+iStCA8IHBvZDsKK+iAgeWkqeeIuiA8IGdvZDsKK+mbtum7nuWFrSA8IDBcLjY7CivmqIXmqLkgPCBmaXI7CivnlJzphZIgPCBydW07CivnvocgPCBpbm47Civlh7rlg7kgPCBiaWQ7CivlgrPnnJ8gPCBmYXg7Civoi6bmg7EgPCBhaWw7Civlha3pu57lha0gPCA2XC42Owor6aqo572IIDwgdXJuOwor6Luf5q+bIDwgZnVyOwor56CyIDwgZ3VuOwor55mZIDwgaWxsOwor6LyV5omTIDwgdGFwOwor5bCP6LK7IDwgdGlwOwor5qaG5qi5IDwgZWxtOwor5r2aIDwgZ2F5Owor5bel5L2cIDwgam9iOwor6IKL6aqoIDwgcmliOwor5qWOIDwgcGVnOwor5qKpIDwgaG9kOwor6auU6IKy6aSoIDwgZ3ltOwor5p2FIDwgdHViOwor5LiD6bue5LqUIDwgN1wuNTsKK+S4g+m7nuS6jCA8IDdcLjI7CivlnLDlnJYgPCBtYXA7CivmlLUgPCByYXA7Civli5XnianlnJIgPCB6b287CivprIblvJsgPCBzYWc7CivppKHppIUgPCBwaWU7CivlnJblg4/kupLmj5vmoLzlvI8gPCBnaWY7CivlsITnt5ogPCByYXk7Civpi7jplosgPCBzYXc7CivmnpzphqwgPCBqYW07CivlnI3lhZwgPCBiaWI7CivlrJsgPCBhcHQ7CivnjLblpKrkurogPCBqZXc7Civmi5bmioogPCBtb3A7CivkuYjpu54gPCBhY2U7CivlsI/ni5cgPCBwdXA7Civosqjou4ogPCB2YW47CivlnJPlvaLmnKjmnZAgPCBsb2c7Civpu57poK0gPCBub2Q7CivlsI3mupYgPCBhaW07CivlmbTlsIQgPCBqZXQ7CivlgqLkvJkgPCBndXk7CivkuaIgPCBsaWQ7CivpqaLlrZAgPCBhc3M7Civpo5von7IgPCBidWc7CivnrYblsJYgPCBuaWI7CivkoZwgPCBjYXI7CivpuqXphZIgPCBhbGU7Civkv67lpbMgPCBudW47CivknYYgPCBob2c7CivmnIPosrsgPCBkdWU7Civkub7ojYkgPCBoYXk7CivkjKIgPCByYXc7Civki54gPCB3ZWI7CivkipEgPCBwYXk7CivlsaLliqAgPCBwbHk7CivkuZ3kuIPlubQgPCAnJzk3Owor5ZyT5b2i6bq15YyFIDwgYnVuOwor5a6J5pS+IDwgbGF5Owor45y4IDwgc2luOwor6KiI5LmY6LuKIDwgY2FiOwor6aCM6KmeIDwgb2RlOwor6ISr5rCn5qC457OW5qC46YW4IDwgZG5hOwor5p2c5p2+5a2Q6YWSIDwgZ2luOwor5L2V5Lq6IDwgd2hvOwor54eV6bqlIDwgb2F0Owor5q+N6ZueIDwgaGVuOwor56Sm55+zIDwgb3JlOwor5oCV576eIDwgY295Owor5Lu75L2VIDwgYW55Owor5rWB5oSfIDwgZmx1Owor5ZOO5ZayIDwgaGV5Owor5pa56IifIDwgYXJrOwor54iG6IGyIDwgcG9wOwor5pS26LK7IDwgZmVlOwor5q+N576KIDwgZXdlOwor5bCP5LyZ5a2QIDwgbGFkOwor5Yil6YedIDwgcGluOwor5bmz6Y2LIDwgcGFuOwor5LiNIDwgbm87CivkuLogPCBkbzsKK+S5iyA8ICcnczsKK+W+gyA8IGdvOwor5LqOIDwgaW47CivlpoIgPCBpZjsKK+aIliA8IG9yOwor5a6DIDwgaXQ7CivlkrEgPCB1czsKK+WTnyA8IGFoOwor5ZeoIDwgaGk7CivlvZ0gPCB5aTsKK+mUsSA8IG96Owor6ZKUIDwgbWQ7CivkvLIgPCB3ZTsKK+mVpCA8IHBhOwor6ZWOIDwgbnA7Civpk7kgPCBscjsKK+WQkeS4iuWcsCA8IHVwOwor6ZS/IDwgZXM7CivplJ0gPCB0YzsKK+mUlSA8IGFjOwor5YWJ56KfIDwgY2Q7CivnuYQgPCBiZTsKK+ezjiA8IG1tOwor57KoIDwgaG07CivnsoEgPCBrbTsKK+extSA8IGRtOwor5ZqH6IGyIDwgaG87CivnpYIgPCBoZTsKK+aIkeeahCA8IG15Owor5ZeIIDwgb2g7CivlkoEgPCBzbzsKK+WFoSA8IGhnOwor5YWeIDwgbWc7CivlhZ0gPCBkZzsKK+aWp+mgrSA8IGF4Owor5L2ZIDwgaTsKK+aotiA8IGM7CivkuIDlgIsgPCBhOwor5pS/5bqc5qmf6Zec6ZaL5pS+57O757Wx5LqS6YCj57i95YmHID4gZ292ZXJubWVudFwtb3Blblwtc3lzdGVtXC1pbnRlcmNvbm5lY3Rpb25cLXByb2ZpbGU7Civpm7vmqZ/lj4rpm7vlrZDlrbjlt6XnqIvluKvoga/lkIjmnIMgPiBpZWVlOwor5ZyL6Zqb6Zu76Kmx6Zu75aCx6Kuu6Kmi5aeU5ZOh5pyDID4gaW50ZXJuYXRpb25hbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcLWZvclwtdGVsZXBob25lXC1hbmRcLXRlbGVncmFwaDsKK+mYv+S4jeS+huaPkFwu6Zi/5LiN6YO954ax6KW/5o+QID4gYWJkdWxhaWRpXC1hbXVkdXJleGl0aVwtXChjaGFpcm1hblwtb2ZcLXhpbmppYW5nXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+WPr+aTpuWvq+WPr+e3qOeoi+elh+iugOWtmOWEsuWZqCA+IGVwcm9tOwor5ZyL6Zqb6Zu75aCx6Zu76Kmx5ZKo6Kmi5aeU5ZOh5pyDID4gY2NpdHQ7CivogLbnqYzln7rnnaPmnKvkuJbogZblvpLmlZnmnIMgPiB0aGVcLWNodXJjaFwtb2ZcLWplc3VzXC1jaHJpc3RcLW9mXC1sYXR0ZXJcLWRheVwtc2FpbnRzOwor5Y2B5YSE5L2N5YWD5Lul5aSq57ay57Wh6IGv55ufID4gZ2lnYWJpdFwtZXRoZXJuZXRcLWFsbGlhbmNlOwor5qqU5qGI6L2J6YCB5a2Y5Y+W5Y+K566h55CGID4gZmlsZVwtdHJhbnNmZXJcLFwtYWNjZXNzXC1hbmRcLW1hbmFnZW1lbnQ7CivpnZ7lsI3nqLHlvI/mlbjmk5rnlKjmiLbnt5ogPiBhc3ltbWV0cmljYWxcLWRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7Civoh6jmmYLnmoTmnKzlnLDnrqHnkIbmjqXlj6MgPiBpbnRlcmltXC1sb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor6IGv6YKm6Zu75L+h5Lqk6YCa5aeU5ZOh5pyDID4gZmVkZXJhbFwtY29tbXVuaWNhdGlvbnNcLWNvbW1pc3Npb247Civpm7vohabovJTliqnoqK3oqIjoiIfnuarlnJYgPiBjb21wdXRlclwtYWlkZWRcLWRlc2lnblwtYW5kXC1kcmF3aW5nOwor5YWJ57qW5YiG5L2I5byP5pW45pOa5LuL6Z2iID4gZmliZXJcLWRpc3RyaWJ1dGVkXC1kYXRhXC1pbnRlcmZhY2U7CivlhYnnupbliIbmlaPlvI/os4fmlpnku4vpnaIgPiBmaWJlclwtZGlzdHJpYnV0ZWRcLWRhdGFcLWludGVyZmFjZTsKK+aVuOaTmumPiOi3r+mAo+aOpeitmOWIpeeivCA+IGRhdGFcLWxpbmtcLWNvbm5lY3Rpb25cLWlkZW50aWZpZXI7Civpm7vohaboiIfpm7voqbHns7vntbHmlbTlkIggPiBjb21wdXRlclwtdGVsZXBob255XC1pbnRlZ3JhdGlvbjsKK+WhnueIvue2reS6nuWFi+e+heWcsOS6nuiqniA+IHNlcmJvXC1jcm9hdGlhblwtXChsYW5ndWFnZVwpOwor56aB5q2i5qC45q2m5Zmo6Kmm6amX5qKd57SEID4gbnVjbGVhclwtdGVzdFwtYmFuXC10cmVhdHk7CivogIHpqaXkvI/mq6rlv5flnKjljYPph4wgPiBcKGxpdFwuXClcLWFuXC1vbGRcLXN0ZWVkXC1pblwtdGhlXC1zdGFibGVcLXN0aWxsXC1hc3BpcmVzXC10b1wtZ2FsbG9wXC0xMDAwXC1saTsKK+S4jeWFpeiZjueptOeEieW+l+iZjuWtkCA+IGhvd1wtY2FuXC15b3VcLWNhdGNoXC10aWdlclwtY3Vic1wtd2l0aG91dFwtZW50ZXJpbmdcLXRoZVwtdGlnZXInJ3NcLWxhaXI7Civmr5TkuIrkuI3otrPmr5TkuIvmnInkvZkgPiBmYWxsXC1zaG9ydFwtb2ZcLXRoZVwtYmVzdFwtYnV0XC1iZVwtYmV0dGVyXC10aGFuXC10aGVcLXdvcnN0Owor5YyX5aSn6KW/5rSL5YWs57SE57WE57mUID4gdGhlXC1ub3J0aFwtYXRsYW50aWNcLXRyZWF0eVwtb3JnYW5pemF0aW9uXC1cKG5hdG9cKTsKK+S4jee2k+S4gOS6i+S4jemVt+S4gOaZuiA+IHlvdVwtY2FuJyd0XC1nYWluXC1rbm93bGVkZ2VcLXdpdGhvdXRcLXByYWN0aWNlOwor5bu656uL5q2j5byP5aSW5Lqk6Zec5L+CID4gZm9ybWFsbHlcLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor55m+6Laz5LmL6J+y5q276ICM5LiN5YO1ID4gYVwtY2VudGlwZWRlXC1kaWVzXC1idXRcLW5ldmVyXC1mYWxsc1wtZG93bjsKK+WuieWFqOiIh+S6pOaPm+WnlOWToeacgyA+IHNlY3VyaXRpZXNcLWFuZFwtZXhjaGFuZ2VcLWNvbW11bmljYXRpb247CivntpzlkIjmnI3li5nmlbjkvY3ntrLntaEgPiBpbnRlZ3JhdGVkXC1zZXJ2aWNlc1wtZGlnaXRhbFwtbmV0d29yazsKK+aVtOmrlOacjeWLmeaVuOS9jee2sui3ryA+IGludGVncmF0ZWRcLXNlcnZpY2VzXC1kaWdpdGFsXC1uZXR3b3JrOwor57Ch5Zau57ay57Wh566h55CG5Y2U6K2wID4gc2ltcGxlXC1uZXR3b3JrXC1tYW5hZ2VtZW50XC1wcm90b2NvbDsKK+aVtOmrlOaVuOS9jeacjeWLmee2sui3ryA+IGludGVncmF0ZWRcLXNlcnZpY2VcLWRpZ2l0YWxcLW5ldHdvcms7CivlhazlhbHkuqTmj5vpm7voqbHntrLot68gPiBwdWJsaWNcLXN3aXRjaGVkXC10ZWxlcGhvbmVcLW5ldHdvcms7Civov5HkuY7lkIzmraXmlbjkvY3pmo7lsaQgPiBwbGVzaW9jaHJvbm91c1wtZGlnaXRhbFwtaGllcmFyY2h5Owor5pel5pys6Zu75aCx6Zu76Kmx5YWs5Y+4ID4gbmlwcG9uXC10ZWxlZ3JhcGhcLWFuZFwtdGVsZXBob25lOwor5buj5pKt5ZKM5pyq55+l5pyN5YuZ5ZmoID4gYnJvYWRjYXN0XC1hbmRcLXVua25vd25cLXNlcnZlcjsKK+eZvuWwuuadhumgreabtOeboeS4gOatpSA+IG1ha2VcLXN0aWxsXC1mdXJ0aGVyXC1wcm9ncmVzczsKK+Wci+mam+iyqOW5o+WfuumHkee1hOe5lCA+IGludGVybmF0aW9uYWxcLW1vbmV0YXJ5XC1mdW5kOwor5a6i5oi25qmf5pyN5YuZ5Zmo55Kw5aKDID4gY2xpZW50XC1zZXJ2ZXJcLWVudmlyb25lbWVudDsKK+mbu+WtkOmDteS7tuWCs+mAgeacjeWLmSA+IFwoZVwtXCltYWlsXC1kZWxpdmVyeVwtc2VydmljZTsKK+eUqOaItuWIsOe2sue1oeeahOaOpeWPoyA+IHVzZXJcLW5ldHdvcmtcLWludGVyZmFjZTsKK+S6nua0suiIh+WkquW5s+a0i+WcsOWNgCA+IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+WNgeWEhOS9jeWFg+S7peWkque2sue1oSA+IGdpZ2FiaXRcLWV0aGVybmV0Owor5YWJ57qW5YiG5L2I5pW45pOa5o6l5Y+jID4gZmRkaTsKK+S4jeimi+ajuuadkOS4jeiQvea3miA+IG5vdFwtc2hlZFwtYVwtdGVhclwtdW50aWxcLW9uZVwtc2Vlc1wtdGhlXC1jb2ZmaW5cLVwtXC1yZWZ1c2VcLXRvXC1iZVwtY29udmluY2VkXC11bnRpbFwtb25lXC1pc1wtZmFjZWRcLXdpdGhcLWdyaW1cLXJlYWxpdHk7CivkuI3liLDpu4PmsrPlv4PkuI3mrbsgPiBub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLXRoZVwtaHVhbmdoZVwtcml2ZXJcLVwtXC1ub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLW9uZScnc1wtZ29hbDsKK+mWieWhnuecvOedm+aNiem6u+mbgCA+IHRyeVwtdG9cLWNhdGNoXC1zcGFycm93c1wtd2l0aFwtb25lJydzXC1leWVzXC1ibGluZGZvbGRlZFwtXC1cLWFjdFwtYmxpbmRseTsKK+aWr+eJueWHoeirvuaZrua0m+aWryA+IHN0ZXBoYW5vcG91bG9zXC1cKGVnXCxcLWZvcm1lclwtY2xpbnRvblwtYWlkZVwtZ2VvcmdlXC1zdGVwaGFub3BvdWxvc1wpOwor5Lq65rCR6Iux6ZuE57SA5b+156KRID4gbW9udW1lbnRcLXRvXC10aGVcLXBlb3BsZScnc1wtaGVyb2VzXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+aMieS4i+iRq+iYhua1rui1t+eToiA+IHNvbHZlXC1vbmVcLXByb2JsZW1cLW9ubHlcLXRvXC1maW5kXC1hbm90aGVyXC1jcm9wcGluZ1wtdXA7CivkuI3mlaLotorpm7fmsaDkuIDmraUgPiBkYXJlXC1ub3RcLWdvXC1vbmVcLXN0ZXBcLWJleW9uZFwtdGhlXC1wcmVzY3JpYmVkXC1saW1pdDsKK+adseWNl+S6nuWci+WutuiBr+ebnyA+IGFzZWFuXC1cKGFzc29jaWF0aW9uXC1vZlwtc291dGhlYXN0XC1hc2lhblwtbmF0aW9uc1wpOwor5aSx5pWX5piv5oiQ5Yqf5LmL5q+NID4gXCJmYWlsdXJlXC1pc1wtdGhlXC1tb3RoZXJcLW9mXC1zdWNjZXNzXCJcLVwocHJvdmVyYlwpOwor57aT54ef566h55CG5ZKM57at6K23ID4gb3BlcmF0aW9uc1wtYWRtaW5pc3RyYXRpb25cLWFuZFwtbWFpbnRlbmFuY2U7CivmoLjmrablmajnoJToo73oqIjlioMgPiBudWNsZWFyXC13ZWFwb25zXC1cKG1hbnVmYWN0dXJpbmdcKVwtcHJvZ3JhbTsKK+aVmeaOiOeVouern+aYr+aVmeaOiCA+IHByb2Zlc3NvcnNcLWFyZVwtXChhZnRlclwtYWxsXClcLXByb2Zlc3NvcnM7CivomZvmk6zpgJrpgZPmqJnoqoznrKYgPiB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor5LiW55WM5oCn5Y+k6ICB5ZWP6aGMID4gYVwtcHJvYmxlbVwtYXNcLW9sZFwtYXNcLXRoZVwtd29ybGRcLWl0c2VsZjsKK+mbu+S/oeacjeWLmeS+m+aHieWVhiA+IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZVwtcHJvdmlkZXI7CivlhaznlKjkuqTmj5vpm7voqbHntrIgPiBwdWJsaWNcLXN3aXRjaGVkXC10ZWxlcGhvbmVcLW5ldHdvcms7CivkuK3oj6/kurrmsJHlhbHlkozlnIsgPiB0aGVcLXBlb3BsZScnc1wtcmVwdWJsaWNcLW9mXC1jaGluYTsKK+mAmueUqOizh+a6kOitmOWIpeiZnyA+IHVuaXZlcnNhbFwtcmVzb3VyY2VcLWlkZW50aWZpZXI7Civljp/lrZDnp5HlrbjlrrbpgJrloLEgPiBqb3VybmFsXC1vZlwtYXRvbWljXC1zY2llbnRpc3RzOwor6LaF5paH5Lu25YKz6Ly45Y2U5a6aID4gaHlwZXJ0ZXh0XC10cmFuc2ZlclwtcHJvdG9jb2w7CivotoXmlofmnKzlgrPovLjljZTlrpogPiBoeXBlcnRleHRcLXRyYW5zZmVyXC1wcm90b2NvbDsKK+WuouaItuacjeWLmeWZqOe1kOaniyA+IGNsaWVudFwtc2VydmVyXC1hcmNoaXRlY3R1cmU7CivlqpLpq5TmjqXlj6PpgKPmjqXlmaggPiBtZWRpdW1cLWludGVyZmFjZVwtY29ubmVjdG9yOwor6Z2i5Zqu5bCN6LGh55qE5oqA6KGTID4gb2JqZWN0XC1vcmllbnRlZFwtdGVjaG5vbG9neTsKK+mdnuWQjOatpeWCs+i8uOaooeW8jyA+IGFzeW5jaHJvbm91c1wtdHJhbnNmZXJcLW1vZGU7CivotoXmlofmnKzmqJnoqJjoqp7oqIAgPiBoeXBlcnRleHRcLW1hcmt1cFwtbGFuZ3VhZ2U7Civlj43oiaboiYflt6HoiKrlsI7lvYggPiBhbnRpXC1zaGlwXC1jcnVpc2VcLW1pc3NsZTsKK+eUqOaItuWIsOe2sue1oeaOpeWPoyA+IHVzZXJcLW5ldHdvcmtcLWludGVyZmFjZTsKK+S6nua0suWkquW5s+a0i+WcsOWNgCA+IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+Wkmuexs+WwvOWKoOWFseWSjOWciyA+IGRvbWluaWNhblwtcmVwdWJsaWM7CivmkpLlk4jmi4nku6XljZfpnZ7mtLIgPiBzdWJcLXNhaGFyYW5cLWFmcmljYTsKK+WcqOWkp+WkmuaVuOaDheazgeS4iyA+IGluXC1tb3N0XC1pbnN0YW5jZXM7CivotoXpq5jpgJ/kuZnlpKrntrLot68gPiBnaWdhYml0XC1ldGhlcm5ldDsKK+W3tOW4g+S6nuaWsOW5vuWFp+S6niA+IHBhcGF1XC1uZXdcLWd1aW5lYTsKK+e+heWvhuatkOiIh+acsem6l+iRiSA+IHJvbWVvXC1hbmRcLWp1bGlldDsKK+WkqumZveW+ruezu+e1seWFrOWPuCA+IHN1blwtbWljcm9zeXN0ZW1zOwor5biW5pKS576F5bC86L+m5b6M5pu4ID4gMlwtdGhlc3NhbG9uaWFuczsKK+S6nueIvueZvOWSjOWlp+exs+WKoCA+IGFscGhhXC1hbmRcLW9tZWdhOwor5biW5pKS576F5bC86L+m5YmN5pu4ID4gMVwtdGhlc3NhbG9uaWFuczsKK+iOq+WwvOWNoeiQiua6q+aWr+WfuiA+IG1vbmljYVwtbGV3aW5za3k7CivpmL/kvI/kvL3lvrfnvoXlrprlvosgPiBhdm9nYWRybycnc1wtbGF3Owor6Zu757qc6Kq/5Yi26Kej6Kq/5ZmoID4gY2FibGVcLW1vZGVtOwor56ys5LqM5qyh5LiW55WM5aSn5oiwID4gd29ybGRcLXdhclwtMjsKK+S7i+izquioquWVj+aOp+WItuWxpCA+IG1hY1wtbGF5ZXI7CivkuI3nn6XlpKnpq5jlnLDljpogPiBub3RcLWtub3dcLXRoZVwtaW1tZW5zaXR5XC1vZlwtaGVhdmVuXC1hbmRcLWVhcnRoXC1cLVwtaGF2ZVwtYW5cLWV4YWdnZXJhdGVkXC1vcGluaW9uXC1vZlwtb25lJydzXC1hYmlsaXRpZXM7Civnmb7ogZ7kuI3lpoLkuIDoposgPiBzZWVpbmdcLWZvclwtb25lc2VsZlwtaXNcLWFcLWh1bmRyZWRcLXRpbWVzXC1iZXR0ZXJcLXRoYW5cLWhlYXJpbmdcLWZyb21cLW90aGVyczsKK+S4jeiyu+WQueeBsOS5i+WKmyA+IGFzXC1lYXN5XC1hc1wtYmxvd2luZ1wtb2ZmXC1kdXN0XC1cLVwtbm90XC1uZWVkaW5nXC10aGVcLXNsaWdodGVzdFwtZWZmb3J0Owor5rKZ5Yip56eR5LuA57at5YipID4gZ2VuZXJhbFwtc2hhbGlrYXNodmlsaVwtXChoZWFkXC1vZlwtdXNcLWpvaW50XC1jaGllZnNcLW9mXC1zdGFmZlwpOwor5a+E5LqI5b6I5aSn5pyf5pybID4gdG9cLXBsYWNlXC1ncmVhdFwtaG9wZVwtb3JcLWV4cGVjdGF0aW9uXC1vblwtXChzdGhcKTsKK+W3tOeIvuiIjeWkq+aWr+WfuiA+IFwoY2hhcmxlbmVcKVwtYmFyc2hlZnNreVwsXC11c1wtdHJhZGVcLW5lZ290aWF0b3I7CivntITlrpros4foqIrpgJ/njocgPiBjb21taXR0ZWRcLWluZm9ycm1hdGlvblwtcmF0ZVwtXChmcmFtZVwtcmVsYXlcKTsKK+mAhuWQkeaTgeWhnumAmuefpSA+IGJhY2t3YXJkXC1leHBsaWNpdFwtY29uZ2VzdGlvblwtbm90aWZpY2F0aW9uOwor5YmN5ZCR5pOB5aGe6YCa55+lID4gZm9yd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+e+juWci+W7o+aSreWFrOWPuCA+IGFiY1wtXChhbWVyaWNhblwtYnJvYWRjYXN0aW5nXC1jb3Jwb3JhdGlvblwpOwor5ZOI6KOh5qOu5Y+y5a+G54m5ID4gaGFycmlzb25cLXNjaG1pdHRcLVwoYXBvbGxvXC0xXC03XC1hc3Ryb25hdXRcKTsKK+eVouWFtuWKn+S6juS4gOW9uSA+IGFjY29tcGxpc2hcLXRoZVwtd2hvbGVcLXRhc2tcLWF0XC1vbmVcLXN0cm9rZTsKK+aTuuS6i+Wvpuism+mBk+eQhiA+IHByZXNlbnRcLXRoZVwtZmFjdHNcLWFuZFwtcmVhc29uXC10aGluZ3NcLW91dDsKK+Wci+mam+mbu+S/oeiBr+ebnyA+IGludGVybmF0aW9uYWxcLXRlbGVjb21tdW5pY2F0aW9uc1wtdW5pb247CivkuI3lj6/lkIzml6XogIzoqp4gPiBjYW5ub3RcLWJlXC1tZW50aW9uZWRcLWluXC10aGVcLXNhbWVcLWJyZWF0aDsKK+acieW/l+iAheS6i+ern+aIkCA+IHdoZXJlXC10aGVyZVwtaXNcLWFcLXdpbGxcLFwtdGhlcmVcLWlzXC1hXC13YXk7CivlnIvpmpvmqJnmupbntYTnuZQgPiBpbnRlcm5hdGlvbmFsXC1zdGFuZGFyZHNcLW9yZ2FuaXphdGlvbjsKK+ebruWJjemChOS4jea4healmiA+IGF0XC1wcmVzZW50XC1pdFwtaXNcLXN0aWxsXC11bmNsZWFyXC1cLlwuXC5cLjsKK+eWvueXhemgkOmYsuS4reW/gyA+IFwodVwuc1wuXClcLWNlbnRlclwtZm9yXC1kaXNlYXNlXC1jb250cm9sOwor5oeJ55So56iL5byP5LuL6Z2iID4gYXBwbGljYXRpb25cLXByb2dyYW1taW5nXC1pbnRlcmZhY2U7Civnn67lrZDoo6Hmi5TlsIfou40gPiBjaG9vc2VcLXRoZVwtYmVzdFwtcGVyc29uXC1hdmFpbGFibGU7Civlj5blvpflpKflrbjlrbjkvY0gPiB0b1wtb2J0YWluXC1hXC11bml2ZXJzaXR5XC1lZHVjYXRpb247Civlr6bmmYLmk43kvZznkrDlooMgPiByZWFsXC10aW1lXC1vcGVyYXRpbmdcLWVudmlyb25tZW50Owor5ZyL6Zqb5ZWG5qWt5qmf5ZmoID4gaW50ZXJuYXRpb25hbFwtYnVzaW5lc3NcLW1hY2hpbmVzOwor56ym5ZCI576O5ZyL5Yip55uKID4gaW5cLWxpbmVcLXdpdGhcLWFtZXJpY2FuXC1pbnRlcmVzdHM7Civou5/pq5Tlh7rniYjljZTmnIMgPiBzb2Z0d2FyZVwtcHVibGlzaGVyc1wtYXNzb2NpYXRpb247Civmnb7kuIvpm7vmsKPlt6Xmpa0gPiBtYXRzdXNoaXRhXC1lbGVjdHJvbmljc1wtaW5kdXN0cnk7CivmnI3li5nlu6PlkYrljZTorbAgPiBzZXJ2aWNlXC1hZHZlcnRpc2VtZW50XC1wcm90b2NvbDsKK+iqnumfs+mAmuioiumAmumBkyA+IHZvaWNlXC1cKGNvbW11bmljYXRpb25zXClcLWNoYW5uZWw7CivkuJbnlYzosr/mmJPntYTnuZQgPiB3dG9cLVwod29ybGRcLXRyYWRlXC1vcmdhbml6YXRpb25cKTsKK+W4uOimj+mKhembu+ipsee3miA+IG9yZGluYXJ5XC1jb3BwZXJcLXRlbGVwaG9uZVwtbGluZTsKK+WQjOatpeaVuOS9jemajuWxpCA+IHN5bmNocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7CivkuIrmtbfmiLLlioflrbjpmaIgPiBzaGFuZ2hhaVwtdGhlYXRyaWNhbFwtaW5zdGl0dXRlOwor5YKz6Ly45o6n5Yi25Y2U5a6aID4gdHJhbnNtaXNzaW9uXC1jb250cm9sXC1wcm90b2NvbDsKK+WCs+e1seS4reWci+mGq+iXpSA+IGNoaW5lc2VcLXRyYWRpdGlvbmFsXC1tZWRpY2luZTsKK+WbuuWumuiZm+aTrOmAo+aOpSA+IHBlcm1hbmVudFwtdmlydHVhbFwtY29ubmVjdGlvbjsKK+mWi+aUvuezu+e1seS6kumAoyA+IG9wZW5cLXN5c3RlbXNcLWludGVyY29ubmVjdGlvbjsKK+WMl+S6rOiXneihk+WtuOmZoiA+IGJlaWppbmdcLWFjYWRlbXlcLW9mXC1maW5lXC1hcnRzOwor5LiN55m75aSn6ZuF5LmL5aCCID4gbm90XC1hcHBlYWxcLXRvXC1yZWZpbmVkXC10YXN0ZTsKK+WMl+S6rOiqnuiogOWtuOmZoiA+IGJlaWppbmdcLWxhbmd1YWdlc1wtaW5zdGl0dXRlOwor5Zyw5Z2A6Kej5p6Q5Y2U6K2wID4gYWRkcmVzc1wtcmVzb2x1dGlvblwtcHJvdG9jb2w7CivmnKzlnLDnrqHnkIbnlYzpnaIgPiBsb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor55Ww5q2l5YKz6Ly45qih5byPID4gYXN5bmNocm9ub3VzXC10cmFuc2ZlclwtbW9kZTsKK+mbu+iFpui8lOWKqeaVmeadkCA+IGNvbXB1dGVyXC1haWRlZFwtaW5zdHJ1Y3Rpb247Civpm7vohabovJTliqnlt6XnqIsgPiBjb21wdXRlclwtYWlkZWRcLWVuZ2luZWVyaW5nOwor6Jmb5pOs6YCa6YGT6YCj5o6lID4gdmlydHVhbFwtY2hhbm5lbFwtY29ubmVjdGlvbjsKK+e2sue1oeeuoeeQhuezu+e1sSA+IG5ldHdvcmtcLW1hbmFnZW1lbnRcLXN5c3RlbTsKK+S4lueVjOihm+eUn+e1hOe5lCA+IHdvcmxkXC1oZWFsdGhcLW9yZ2FuaXphdGlvbjsKK+WAvOW+l+azqOaEj+eahOaYryA+IGl0JydzXC13b3J0aFwtbm90aW5nXC10aGF0XC5cLlwuOwor55Kw55CD5a6a5L2N57O757WxID4gZ2xvYmFsXC1wb3NpdGlvbmluZ1wtc3lzdGVtOwor5Zug54m557ay5o+Q5L6b5ZWGID4gaW50ZXJuZXRcLXNldmljZVwtcHJvdmlkZXI7CivntrLntaHmk43kvZzns7vntbEgPiBuZXR3b3JrXC1vcGVyYXRpbmdcLXN5c3RlbTsKK+WcluWDj+eUqOaItuS7i+mdoiA+IGdyYXBoaWNhbFwtdXNlclwtaW50ZXJmYWNlOwor6Z2i5Zqu5bCN6LGh6Kqe6KiAID4gb2JqZWN0XC1vcmllbnRlZFwtbGFuZ3VhZ2U7CivlhbHlkIzplpjpgZPku4vpnaIgPiBjb21tb25cLWdhdGV3YXlcLWludGVyZmFjZTsKK+e2sui3r+S9nOalreezu+e1sSA+IG5ldHdvcmtcLW9wZXJhdGluZ1wtc3lzdGVtOwor5YWs55y+6Zu75L+h57ay6LevID4gcHVibGljXC10ZWxlcGhvbmVcLW5ldHdvcms7CivpnZ7nm4jliKnnmoTntYTnuZQgPiBub25cLXByb2ZpdFwtb3JnYW5pemF0aW9uOwor6KiK5oGv6JmV55CG57O757WxID4gbWVzc2FnZVwtaGFuZGxpbmdcLXN5c3RlbTsKK+aVuOWtl+ioguizvOe3mui3ryA+IGRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7Civovq/oqLzllK/niankuLvnvqkgPiBkaWFsZWN0aWNhbFwtbWF0ZXJpYWxpc207CivntrLot6/nr4Dpu57ku4vpnaIgPiBuZXR3b3JrXC1ub2RlXC1pbnRlcmZhY2U7CivmraPlnKjkuK3lnIvoqKrllY8gPiBkdXJpbmdcLWFcLXRyaXBcLXRvXC1jaGluYTsKK+WFq+Wwj+aZguW3peS9nOWItiA+IGVpZ2h0XC1ob3VyXC13b3JraW5nXC1kYXk7Civmtojmga/pnYjpgJrkurrlo6sgPiBhXC13ZWxsXC1pbmZvcm1lZFwtc291cmNlOwor5pel5pys57aT5r+f5paw6IGeID4gamFwYW5lc2VcLWVjb25vbWljXC1uZXdzOwor6KiK5oGv5YKz6YGe5Lit5LuLID4gbWVzc2FnZVwtdHJhbnNmZXJcLWFnZW50Owor6Zu76IWm6LyU5Yqp6Kit6KiIID4gY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ247CivmjIHkuI3lkIzmlL/opovogIUgPiBcKHBvbGl0aWNhbFwpXC1kaXNzaWRlbnQ7Civos4fmlpnlgrPpgIHmnI3li5kgPiBkYXRhXC1kZWxpdmVyeVwtc2VydmljZTsKK+S7i+izquioquWVj+aOp+WItiA+IG1lZGl1bVwtYWNjZXNzXC1jb250cm9sOwor5Y2w5bqm5bC86KW/5Lqe6KqeID4gaW5kb25lc2lhblwtXChsYW5ndWFnZVwpOwor5aSa56iu6Kqe6KiA5pSv5oyBID4gbXVsdGlsaW5ndWFsXC1zdXBwb3J0Owor5o6l5pS25Zmo6Z2I5pWP5bqmID4gcmVjZWl2ZXJcLXNlbnNpdGl2aXR5Owor5rCR5peP5Li7576p5oOF57eSID4gbmF0aW9uYWxpc3RcLWZlZWxpbmdzOwor5aqS6auU6Kiq5ZWP5o6n5Yi2ID4gbWVkaWFcLWFjY2Vzc1wtY29udHJvbDsKK+Wbm+W5tOWItueahOWkp+WtuCA+IGZvdXJcLXllYXJcLXVuaXZlcnNpdHk7Civpgo/ovK/pj4jot6/mjqfliLYgPiBsb2dpY2FsXC1saW5rXC1jb250cm9sOwor6JCs57at5aSp576F5Zyw57ayID4gd29ybGRcLXdpZGVcLXdlYlwtXCh3d3dcKTsKK+W3oei/tOWIhuaekOerr+WPoyA+IHJvdmluZ1wtYW5hbHlzaXNcLXBvcnQ7Civlj6rkuI3pgY7lub7lubTliY0gPiBvbmx5XC1hXC1mZXdcLXllYXJzXC1hZ287CivkuIDnmb7kupTljYHlpJrlubQgPiBtb3JlXC10aGFuXC0xNTBcLXllYXJzOwor5ZOl5YCr5q+U5Lqe5aSn5a24ID4gY29sdW1iaWFcLXVuaXZlcnNpdHk7Civosr/mmJPkv53orbfkuLvnvqkgPiB0cmFkZVwtcHJvdGVjdGlvbmlzbTsKK+WcqOafkOeorueoi+W6puS4iiA+IHRvXC1hXC1jZXJ0YWluXC1leHRlbnQ7Civmm7zlvrnmlq/nibnnt6jnorwgPiBtYW5jaGVzdGVyXC1lbmNvZGluZzsKK+ioiuahhuWCs+mAgeacjeWLmSA+IGZyYW1lXC1yZWxheVwtc2VydmljZTsKK+ioiuahhuWCs+mAgee2sui3ryA+IGZyYW1lXC1yZWxheVwtbmV0d29yazsKK+mYv+avlOilv+WwvOS6nuS6uiA+IGFieXNzaW5pYW5cLVwocGVyc29uXCk7Civkup7lpKrntpPlkIjntYTnuZQgPiBhcGVjXC1cKG9yZ2FuaXphdGlvblwpOwor6Luf5Lu26ZaL55m85Lq65ZOhID4gc29mdHdhcmVcLWRldmVsb3BlcjsKK+WcqOWCs+i8uOmBjueoi+S4rSA+IHdoaWxlXC10cmFuc21pdHRpbmc7Civlv4XkuI3lj6/lsJHntYTmiJAgPiBhYnNvbHV0ZVwtbmVjZXNzaXR5Owor576O5ZyL6Iiq56m65YWs5Y+4ID4gYW1lcmljYW5cLWFpcmxpbmVzOwor5Lqk5o+b5Lul5aSq57ay57WhID4gc3dpdGNoZWRcLWV0aGVybmV0Owor6Ku+6LKd54i+5ZKM5bmz542OID4gbm9iZWxcLXBlYWNlXC1wcml6ZTsKK+S6lOinkuWkp+aok+WumOWToSA+IHBlbnRhZ29uXC1vZmZpY2lhbDsKK+ioiuahhuWCs+mAgeirluWjhyA+IGZyYW1lXC1yZWxheVwtZm9ydW07CivpmL/niL7lt7TlsLzkup7kurogPiBhbGJhbmlhblwtXChwZXJzb25cKTsKK+S4jeWIhumdkue0heeagueZvSA+IGluZGlzY3JpbWluYXRlbHk7CivkuI3nrYnpgorkuInop5LlvaIgPiBzY2FsZW5lXC10cmlhbmdsZTsKK+e2sumam+e2sui3r+WNlOacgyA+IGludGVybmV0XC1zb2NpZXR5Owor5LiJ5Y2D5Yiw5LqU5Y2D6JCsID4gMzBcLXRvXC01MFwtbWlsbGlvbjsKK+S4gOWAi+S4reWci+aUv+etliA+IG9uZVwtY2hpbmFcLXBvbGljeTsKK+e2sue1oeimj+WKg+S6uuWToSA+IG5ldHdvcmtcLXBsYW5uZXI7CivlhbHkuqvku6XlpKrntrLntaEgPiBzaGFyZWRcLWV0aGVybmV0Owor5Y2h57SN57at5ouJ54i+6KeSID4gY2FwZVwtY2FuYXZlcmFsOwor5Y2A5Z+f57ay6Lev5oqA6KGTID4gbGFuXC10ZWNobm9sb2d5Owor6Jap6YGU5aeG5L6v6LO95ZugID4gc2FkZGFtXC1odXNzZWluOwor5pKe5pOK5byP5Y2w6KGo5qmfID4gaW1wYWN0XC1wcmludGVyOwor5pKe5pOK5byP5omT5Y2w5qmfID4gaW1wYWN0XC1wcmludGVyOwor5YWo55CD5rCj5YCZ5Y2H5rqrID4gZ2xvYmFsXC13YXJtaW5nOwor5qKF5aGe6L+q5pav5aWU6aazID4gbWVyY2VkZXNcLWJlbno7CivlpaflhYvmi4nojbfppqzluIIgPiBva2xhaG9tYVwtY2l0eTsKK+mrmOmAn+S5meWkque2sui3ryA+IGZhc3RcLWV0aGVybmV0Owor5b+r6YCf5Lul5aSq57ay57WhID4gZmFzdFwtZXRoZXJuZXQ7Civku6XlpKrntrLntaHnq6/lj6MgPiBldGhlcm5ldFwtcG9ydDsKK+S6nua0suiIh+WkquW5s+a0iyA+IGFzaWFcLXBhY2lmaWM7CivkuIDljYPpm7bkupTljYHlhIQgPiAxMDVcLWJpbGxpb247CivlkInniL7lkInmlq/mlq/lnaYgPiBraXJnaGl6c3RhbjsKK+amrueNsuirvuiyneeIvueNjiA+IG5vYmVsXC1wcml6ZTsKK+S4ieaciOS6jOWNgeS4ieiZnyA+IG1hcmNoXC0yM3JkOwor5rKS5pyJ55Sf6IKy6IO95YqbID4gaW5mZXJ0aWxlOwor5ZyL6Zqb5LqS6IGv57ay57WhID4gaW50ZXJuZXQ7CivkuInmnIjkuozljYHkuIDomZ8gPiBtYXJjaFwtMjE7CivlsIjnlKjpm4bmiJDpm7vot68gPiBhc2ljOwor5ZyW5YOP5LqS5o+b5qC85byPID4gZ2lmOwor6ISr5rCn5qC457OW5qC46YW4ID4gZG5hOwor5q666Zue57Wm54y055yLID4gXCJraWxsXC1hXC1jaGlja2VuXC1pblwtZnJvbnRcLW9mXC1hXC1tb25rZXlcIlwtXC1cLVwtbWFrZVwtYW5cLWV4YW1wbGVcLW91dFwtb2ZcLXNvbWVvbmVcLVwoYnlcLXB1bmlzaGluZ1wtdGhlbVwpXC10b1wtZnJpZ2h0ZW5cLW90aGVyczsKK+eXheaApeS6guaKlemGqyA+IHR1cm5cLXRvXC1hbnlcLWRvY3Rvclwtb25lXC1jYW5cLWZpbmRcLXdoZW5cLWNyaXRpY2FsbHlcLWlsbFwtXC1cLXRyeVwtYW55dGhpbmdcLXdoZW5cLWluXC1hXC1kZXNwZXJhdGVcLXNpdHVhdGlvbjsKK+aWr+WNoeS8r+WLkuekgSA+IHNjYXJib3JvdWdoXC1zaG9hbFwtXChwaGlsaXBwaW5lcycnXC1uYW1lXC1mb3JcLWh1YW5neWFuXC1pc2xhbmRcKTsKK+WGsOeCreS4jeebuOWuuSA+IGFzXC1pbmNvbXBhdGlibGVcLW9yXC1pcnJlY29uY2lsYWJsZVwtYXNcLWljZVwtYW5kXC1ob3RcLWNvYWxzOwor6Z+L54i+5byX6Zu36IyyID4gXChnZW9yZ2VcKVwtd2VocmZyaXR6XC1cKGJlaWppbmdcLWJ1cmVhdVwtY2hpZWZcLW9mXC1uZXdzd2Vla1wpOwor55CzXC7miLTntq3mlq8gPiBseW5uXC1kYXZpc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLWFybXNcLWNvbnRyb2xcLWV4cGVydFwpOwor5Lq65rCR6KGM5YuV6buoID4gcGVvcGxlJydzXC1hY3Rpb25cLXBhcnR5XC1cKHJ1bGluZ1wtcGFydHlcLWluXC1zaW5nYXBvcmVcKTsKK+W4uOS7u+eQhuS6i+WciyA+IHBlcm1hbmVudFwtbWVtYmVyXC1zdGF0ZVwtXChvZlwtdW5cLXNlY3VyaXR5XC1jb3VuY2lsXCk7CivkurrmsJHlpKfmnIPloIIgPiBncmVhdFwtaGFsbFwtb2ZcLXRoZVwtcGVvcGxlXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+api+acrOm+jeWkqumDjiA+IGhhc2hpbW90b1wsXC1yeXV0YXJvXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLWphcGFuXCk7CivlpafniL7luIPos7TnibkgPiBcKG1hZGVsZWluZVwpXC1hbGJyaWdodFwtXCh1c1wtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcKTsKK+S4jeeVtuS4gOWbnuS6iyA+IG5vdFwtcmVnYXJkXC1hc1wtYVwtbWF0dGVyXC1cKG9mXC1hbnlcLWltcG9ydGFuY2VcKTsKK+S4jeaJk+S4jeebuOitmCA+IGZyb21cLWFuXC1leGNoYW5nZVwtb2ZcLWJsb3dzXC1mcmllbmRzaGlwXC1ncm93czsKK+iBr+mCpuiqv+afpeWxgCA+IGZiaVwtXChmZWRlcmFsXC1idXJlYXVcLW9mXC1pbnZlc3RpZ2F0aW9uXCk7CivkuIDkuZ3lm5vkuZ3lubQgPiB0aGVcLXllYXJcLTE5NDlcLVwoY29tbXVuaXN0XC1yZXZvbHV0aW9uXCk7CivntITnv7Dlhafmlq/loKEgPiBqb2hhbm5lc2J1cmdcLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+WIhuS9iOW8j+eSsOWigyA+IGRpc3RyaWJ1dGVkXC1cKGNvbXB1dGluZ1wpXC1lbnZpcm9ubWVudDsKK+mdnuaUv+W6nOe1hOe5lCA+IG5vblwtZ292ZXJubWVudGFsXC1vcmdhbml6YXRpb25cLVwobmdvXCk7CivlsKTph5HloZ7niL7ljZcgPiBldWdlbmVcLWNlcm5hblwtXChhcG9sbG9cLTE3XC1hc3Ryb25hdXRcKTsKK+avlOWLkumZgOWIqeS6niA+IHByZXRvcmlhXC1cKGNhcGl0YWxcLW9mXC1zb3V0aFwtYWZyaWNhXCk7CivljYrml6XliLblrbjmoKEgPiBoYWxmXC1kYXlcLVwob3JcLWRvdWJsZVwtc2hpZnRcLXNjaG9vbFwpOwor6LaK5L6G6LaK5Zq06YeNID4gdG9cLWJlY29tZVwtbW9yZVwtc2VyaW91c1wtZXZlcnlcLWRheTsKK+aIiOeIvuW3tOWWrOWkqyA+IFwoZm9ybWVyXC1zb3ZpZXRcLWxlYWRlclwpXC1nb3JiYWNoZXY7CivlhavntJrlt6Xos4fliLYgPiBlaWdodFwtZ3JhZGVcLXdhZ2VcLXNjYWxlXC1cKHN5c3RlbVwpOwor5Zyo5a+G5YiH5rOo5oSPID4gdG9cLXBheVwtY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivmoLjlqIHmh77mlL/nrZYgPiBwb2xpY3lcLW9mXC1udWNsZWFyXC1pbnRpbWlkYXRpb247Civlj6/pgbjmk4fkuJ/mo4QgPiBkaXNjYXJkXC1lbGlnaWJsZVwtXChmcmFtZVwtcmVsYXlcKTsKK+eJueWIpeihjOaUv+WNgCA+IHNwZWNpYWxcLWFkbWluaXN0cmF0aXZlXC1yZWdpb247Civoj6/nm5vpoJPmmYLloLEgPiB3YXNoaW5ndG9uXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+S8vOS5juW+iOWuieWFqCA+IHRvXC1hcHBlYXJcLVwodG9cLWJlXClcLXZlcnlcLXNhZmU7CivkuK3lpK7mg4XloLHlsYAgPiBjZW50cmFsXC1pbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+acjeWLmeaPkOS+m+WVhiA+IFwoaW50ZXJuZXRcKVwtc2VydmljZVwtcHJvdmlkZXI7CivnrqHnkIbkv6Hmga/luqsgPiBtYW5hZ2VtZW50XC1pbmZvcm1hdGlvblwtYmFzZTsKK+iPr+ebm+mgk+mDteWgsSA+IHdhc2hpbmd0b25cLXBvc3RcLVwobmV3c3BhcGVyXCk7CivpoZjmhI/kuI3poZjmhI8gPiB3aGV0aGVyXC1vbmVcLXdhbnRzXC10b1wtb3JcLW5vdDsKK+eZvOWxleaguOatpuWZqCA+IHRvXC1kZXZlbG9wXC1udWNsZWFyXC13ZWFwb25zOwor5Y+b6K6K55qE55yB5Lu9ID4gcmVuZWdhZGVcLXByb3ZpbmNlXC1cKHRhaXdhblwpOwor5Lit5ZyL56eR5a246ZmiID4gY2hpbmVzZVwtYWNhZGFteVwtb2ZcLXNjaWVuY2U7CivnlKjmiLbnq6/oqK3lgpkgPiBjdXN0b21lclwtcHJlbWlzZVwtZXF1aXBtZW50Owor5LiN562J5YO55Lqk5o+bID4gZXhjaGFuZ2VcLW9mXC11bmVxdWFsXC12YWx1ZXM7CivmsLjkuYXomZvpm7vot68gPiBwZXJtYW5lbnRcLXZpcnR1YWxcLWNpcmN1aXQ7Civljp/lm6DlvojnsKHllq4gPiB0aGVcLXJlYXNvblwtaXNcLXZlcnlcLXNpbXBsZTsKK+mAmuioiuiHquWLleWMliA+IGNvbW11bmljYXRpb25zXC1hdXRvbWF0aW9uOwor5bmA6aaW5a6a55WM56ymID4gc3RhcnRcLW9mXC1mcmFtZVwtZGVsaW1pdGVyOwor5LiN5om/6KqN5Li7576pID4gcG9saWN5XC1vZlwtbm9ucmVjb2duaXRpb247CivmpYrnmb7nv7DlpKflrbggPiBicmlnaGFtXC15b3VuZ1wtdW5pdmVyc2l0eTsKK+WIhuS9iOW8j+e1kOaniyA+IGRpc3RyaWJ1dGVkXC1hcmNoaXRlY3R1cmU7CivmjIHkuI3lkIzmlL/oposgPiBcKHBvbGl0aWNhbGx5XClcLWRpc3NlbnRpbmc7CivkurrmsJHop6PmlL7ou40gPiBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXk7Civlvp7lpJbooajkvobnnIsgPiBsb29raW5nXC1mcm9tXC10aGVcLW91dHNpZGU7CivkuqTmj5vomZvpm7vot68gPiBzd2l0Y2hlZFwtdmlydHVhbFwtY2lyY3VpdDsKK+aguOatpuWZqOadkOaWmSA+IG51Y2xlYXJcLXdlYXBvblwtbWF0ZXJpYWw7CivnmbzkvYjmlrDou5/ku7YgPiB0b1wtcmVsZWFzZVwtbmV3XC1zb2Z0d2FyZTsKK+WwiOWxrOe2k+a/n+WNgCA+IGV4Y2x1c2l2ZVwtZWNvbm9taWNcLXpvbmU7CivmtYHkuqHlnKjmtbflpJYgPiB0b1wtYmVcLWluXC1leGlsZVwtb3ZlcnNlYXM7CivkuI3mirXmipfkuLvnvqkgPiBwb2xpY3lcLW9mXC1ub25yZXNpc3RhbmNlOwor5Zyo5LuK5bm05bm05bqVID4gYXRcLXRoZVwtZW5kXC1vZlwtdGhpc1wteWVhcjsKK+S+huWbnuS+huWOu+WcsCA+IGJhY2t3YXJkc1wtYW5kXC1mb3J3YXJkczsKK+e2sue1oeWxpOWNlOitsCA+IG5ldHdvcmtcLWxheWVyXC1wcm90b2NvbDsKK+W3pealreWMluWci+WutiA+IGluZHVzdHJpYWxpemVkXC1jb3VudHJ5Owor5pWZ576p5ZKM6IGW57SEID4gZG9jdHJpbmVcLWFuZFwtY292ZW5hbnRzOwor57ay57Wh566h55CG5ZOhID4gbmV0d29ya1wtYWRtaW5pc3RyYXRvcjsKK+iKneWKoOWTpeWkp+WtuCA+IHVuaXZlcnNpdHlcLW9mXC1jaGljYWdvOwor6Zm45rW356m65LiJ6LuNID4gYXJteVwsXC1uYXZ5XCxcLWFpclwtZm9yY2U7CivmnKzlnJ/ljJbou5/ku7YgPiBzb2Z0d2FyZVwtbG9jYWxpemF0aW9uOwor5qqU5qGI5YiG6YWN5Y2AID4gZmlsZVwtYWxsb2NhdGlvblwtdGFibGU7CivlnLDlsI3nqbrlsI7lvYggPiBncm91bmRcLXRvXC1haXJcLW1pc3NpbGU7CivkuI3kv6Hku7vmipXnpaggPiB2b3RlXC1vZlwtbm9cLWNvbmZpZGVuY2U7CivmnKzkurrnmoTop4Dpu54gPiBcKG9uZScnc1wpXC1wZXJzb25hbFwtdmlldzsKK+i7n+mrlOmFjemAgeiAhSA+IHNvZnR3YXJlXC1kaXN0cmlidXRvcjsKK+att+S+huacgOS9jum7niA+IGFsbFwtdGltZVwtbG93XC1cKHBvaW50XCk7CivnsbPlvrfniL7kvK/oo6EgPiBtaWRkbGVidXJ5XC1cKGNvbGxlZ2VcKTsKK+WFqem7nuWNgeS5neWIhiA+IDJcLVw6MVwtOVwtXCh0aW1lXC1vZlwtZGF5XCk7CivluYDmqqLpqZfluo/liJcgPiBmcmFtZVwtY2hlY2tcLXNlcXVlbmNlOwor5LiN5a6M5YWo5Lit56uLID4gaW1wZXJmZWN0XC1uZXV0cmFsaXR5Owor5YWL6YeM5pav5omY5byXID4gXCh3YXJyZW5cKVwtY2hyaXN0b3BoZXI7CivpkZLlrprlp5Tlk6HmnIMgPiBldmFsdWF0aW9uXC1jb21taXR0ZWU7Civppqzkvobopb/kup7oqp4gPiBtYWxhc2lhblwtXChsYW5ndWFnZVwpOwor6YGO5LqG5LqU5YiG6ZCYID4gZml2ZVwtbWludXRlc1wtcGFzc2VkOwor5YWL576F5Zyw5Lqe6KqeID4gY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+iojuirlueahOitsOmhjCA+IHRvcGljXC1vZlwtZGlzY3Vzc2lvbjsKK+WcsOWdgOeahOi9ieaPmyA+IGFkZHJlc3NcLXRyYW5zbGF0aW9uOwor6Ieq5YuV5Zyw5bel5L2cID4gYXV0b21hdGljXC1vcGVyYXRpb247Civkv53lronoh6rli5XljJYgPiBzZWN1cml0eVwtYXV0b21hdGlvbjsKK+WIhuS9iOW8j+e2sue1oSA+IGRpc3RyaWJ1dGVkXC1uZXR3b3JrOwor5LiN5pyf54S26ICM54S2ID4gaGFwcGVuXC11bmV4cGVjdGVkbHk7CivliqDlgLzlnovntrLot68gPiB2YWx1ZVwtYWRkZWRcLW5ldHdvcms7Civlm6DnibnntrLoga/pgJogPiBpbnRlcm5ldFwtY29ubmVjdGlvbjsKK+enkeWtuOeahOS6pOa1gSA+IHNjaWVudGlmaWNcLWV4Y2hhbmdlOwor6Yuw6Zui5a2Q6Zu75rGgID4gbGl0aGl1bVwtaW9uXC1iYXR0ZXJ5Owor6ZW35pyf56mp5a6a5oCnID4gbG9uZ1wtdGVybVwtc3RhYmlsaXR5Owor5qiT5a6H6Ieq5YuV5YyWID4gYnVpbGRpbmdcLWF1dG9tYXRpb247CivoppbnqpfliqDpgJ/lmaggPiB3aW5kb3dzXC1hY2NlbGFyYXRvcjsKK+iPr+eIvuihl+aXpeWgsSA+IHdhbGxcLXN0cmVldFwtam91cm5hbDsKK+Wci+awkem7qOi7jemaiiA+IG5hdGlvbmFsaXN0XC1mb3JjZXM7CivkuIDlsI/mmYLku6XlvowgPiBhXC1zaG9ydFwtdGltZVwtbGF0ZXI7CivntrLot6/pgKPmjqXlsaQgPiBuZXR3b3JrXC1saW5rXC1sYXllcjsKK+W6t+WliOeIvuWkp+WtuCA+IGNvcm5lbGxcLXVuaXZlcnNpdHk7CivloZ7niL7ntq3kup7oqp4gPiBzZXJiaWFuXC1cKGxhbmd1YWdlXCk7Civmlq/nk6bluIzoo6Hoqp4gPiBzd2FoaWxpXC1cKGxhbmd1YWdlXCk7CivlnIvlrrbmqJnmupbnorwgPiBnYlwtXChndW9cLWJpYW9cKVwtY29kZTsKK+acrOWIneWtkOWNiOe3miA+IHRoZVwtZmlyc3RcLW1lcmlkaWFuOwor5a625bqt5raI6LK76ICFID4gaG91c2Vob2xkXC1jb25zdW1lcjsKK+Wfn+WQjeacjeWLmeWZqCA+IGRvbWFpblwtbmFtZVwtc2VydmVyOwor55m85bGV5Lit5ZyL5a62ID4gZGV2ZWxvcGluZ1wtY291bnRyeTsKK+Wkmuerr+S4ree5vOWZqCA+IG11bHRpcG9ydFwtcmVwZWF0ZXI7CivnmbzlsZXnmoTlnIvlrrYgPiBkZXZlbG9waW5nXC1jb3VudHJ5Owor55Sf5rS75b+F6ZyA5ZOBID4gbGlmZScnc1wtbmVjZXNzaXRpZXM7Civlj6/ooYzmgKfnoJTnqbYgPiBmZWFzaWJpbGl0eVwtc3R1ZHk7Civmlbjmk5rluqvou5/ku7YgPiBkYXRhYmFzZVwtc29mdHdhcmU7Civopb/oo6HniL7lrZfmr40gPiBjeXJpbGxpY1wtYWxwaGFiZXQ7CivmkpLov6bliKnkup7mm7ggPiBib29rXC1vZlwtemVjaGFyaWFoOwor5rOi5aOr6aCT5aSn5a24ID4gYm9zdG9uXC11bml2ZXJzaXR5Owor6L6m5YWs6Ieq5YuV5YyWID4gb2ZmaWNlXC1hdXRvbWF0aW9uOwor5LiN5Y+K54mp5YuV6KmeID4gaW50cmFuc2l0aXZlXC12ZXJiOwor6Iad5LiK5Z6L6Zu76IWmID4gbGFwdG9wXC1cKGNvbXB1dGVyXCk7CivkuK3lpK7lp5Tlk6HmnIMgPiBjZW50cmFsXC1jb21taXR0ZWU7CivliLDpgqPlgIvmmYLlgJkgPiB1bnRpbFwtdGhpc1wtbW9tZW50Owor5rSb5p2J56Ov5pmC5aCxID4gbG9zXC1hbmdlbGVzXC10aW1lczsKK+aWh+WMlueahOS6pOa1gSA+IGN1bHR1cmFsXC1leGNoYW5nZTsKK+aWr+a0m+S8kOWFi+iqniA+IHNsb3Zha1wtXChsYW5ndWFnZVwpOwor5aSW5ZyL5peF6YGK6ICFID4gZm9yZWlnblwtdHJhdmVsbGVyOwor5LiA5Y2D5LiD55m+6JCsID4gc2V2ZW50ZWVuXC1taWxsaW9uOwor5aeU5ZOh5pyD5pyD6K2wID4gY29tbWl0dGVlXC1tZWV0aW5nOwor6KiI566X5qmf5bel5qWtID4gY29tcHV0ZXJcLWluZHVzdHJ5Owor5YWx55Si6buo6YOo6ZqKID4gY29tbXVuaXN0XC1mb3JjZXM7CivmnI3li5nmj5DkvpvogIUgPiBzZXJ2aWNlXC1wcm92aWRlcjsKK+enu+WLleW8j+mbu+ipsSA+IG1vYmlsZVwtdGVsZXBob25lOwor5ama5aSW5oCn5o6l6Ke4ID4gZXh0cmFtYXJpdGFsXC1zZXg7Civms6Lnvo7mr5Tph43oqIggPiBiYXVtZVwtaHlkcm9tZXRlcjsKK+WkluWci+aKleizh+iAhSA+IGZvcmVpZ25cLWludmVzdG9yOwor55Ww5oCn5oCn5o6l6Ke4ID4gaGV0ZXJvc2V4dWFsXC1zZXg7CivmoYzkuIrlnovpm7vohaYgPiBkZXNrdG9wXC1jb21wdXRlcjsKK+iomOiAheaLm+W+heacgyA+IHByZXNzXC1jb25mZXJlbmNlOwor5Y6f5a2Q56eR5a245a62ID4gYXRvbWljXC1zY2llbnRpc3Q7CivplbfluqbmjIfnpLrnrKYgPiBsZW5ndGhcLWluZGljYXRvcjsKK+S7v+ecn+acjeWLmeWZqCA+IGVtdWxhdGlvblwtc2VydmVyOwor6KiI566X5qmf57ay57WhID4gY29tcHV0ZXJcLW5ldHdvcms7CivpgY7ku73nsKHllq7ljJYgPiBvdmVyc2ltcGxpY2F0aW9uOwor55+l6K2Y5bel56iL5birID4ga25vd2xlZGdlXC13b3JrZXI7Civos4fmlpnpj4jntZDlsaQgPiBkYXRhXC1saW5rXC1sYXllcjsKK+mbtuetieW+heeLgOaFiyA+IHplcm9cLXdhaXRcLXN0YXRlOwor5Zyo5b6I5aSa5pa56Z2iID4gaW5cLW1hbnlcLWFzcGVjdHM7Civkv4Tlt7TlupXkup7mm7ggPiBib29rXC1vZlwtb2JhZGlhaDsKK+aVuOaTmumPiOi3r+WxpCA+IGRhdGFcLWxpbmtcLWxheWVyOwor56iu5peP5Li7576p6ICFID4gcmFjaXN0XC1cKHBlcnNvblwpOwor57ay57Wh54CP6Ka95ZmoID4gbmV0d29ya1wtYnJvd3NlcjsKK+WuouaItuapn+i7n+S7tiA+IGNsaWVudFwtc29mdHdhcmU7Civoh6rli5XllK7osqjmqZ8gPiB2ZW5kaW5nXC1tYWNoaW5lOwor57ay57Wh5omT5Y2w5qmfID4gbmV0d29ya1wtcHJpbnRlcjsKK+adv+adv+WFreWNgeWbmyA+IHVuYWNjb21tb2RhdGluZzsKK+esrOS4gOWAi+WxpOasoSA+IHRoZVwtZmlyc3RcLXN0YWdlOwor5YWo55CD6LOH6KiK57ayID4gd29ybGRcLXdpZGVcLXdlYjsKK+S7peWkque2sue1oeW5gCA+IGV0aGVybmV0XC1mcmFtZTsKK+S4jeW5s+etieainee0hCA+IHVuZXF1YWxcLXRyZWF0eTsKK+WWmOS4jemBjuawo+S+hiA+IGNhbm5vdFwtYnJlYXRoZTsKK+aNt+WFi+WFseWSjOWciyA+IGN6ZWNoXC1yZXB1YmxpYzsKK+W3pealreeahOW3qOmgrSA+IGluZHVzdHJ5XC1tb2dvbDsKK+avj+err+WPo+WDueagvCA+IHByaWNlXC1wZXJcLXBvcnQ7CivkuI3mraPluLjni4Dms4EgPiBhYm5vcm1hbFwtc3RhdGU7CivplovmlL7lvI/ns7vntbEgPiBvcGVuXC1zeXN0ZW1cKHNcKTsKK+S4lueVjOeahOiqnuiogCA+IHdvcmxkXC1sYW5ndWFnZTsKK+a/gOWFieaJk+W8leapnyA+IGxhc2VyXC1wcmludGVyOwor5ZOl5p6X5aSa5b6M5pu4ID4gMlwtY29yaW50aGlhbnM7CivkuI3oqJjlkI3mipXnpaggPiBzZWNyZXRcLWJhbGxvdDsKK+S4jeWIl+mhm+iruOWztiA+IGJyaXRpc2hcLWlzbGVzOwor5ZOl5p6X5aSa5YmN5pu4ID4gMVwtY29yaW50aGlhbnM7CivkuI3lj6/og73nmoTkuosgPiBpbXBvc3NpYmlsaXR5Owor55m+5YiG5LmL5LqU5Y2BID4gZmlmdHlcLXBlcmNlbnQ7Civoib7mu4vnl4Xmipfpq5QgPiBhaWRzXC1hbnRpYm9keTsKK+S4jeWPr+S+teeKr+asiiA+IGludmlvbGFiaWxpdHk7CivpkLPlsITljbDooajmqZ8gPiBsYXNlclwtcHJpbnRlcjsKK+eUn+WRveeahOmBuui3oSA+IHRyYWNlXC1vZlwtbGlmZTsKK+S4gOS5neS5neS4g+W5tCA+IHRoZVwteWVhclwtMTk5NzsKK+WFqOS4lueVjOesrOS4gCA+IHdvcmxkJydzXC1maXJzdDsKK+aZrumAmuiAgeeZvuWnkyA+IGNvbW1vblwtcGVvcGxlOwor6Im+5ruL55eF5oKj6ICFID4gYWlkc1wtcGF0aWVudDsKK+ewv+iomOeuoeeQhuWToSA+IGNvbW1pc3NhcmlhbjsKK+aguOatpuWZqOippumplyA+IG51Y2xlYXJcLXRlc3Q7CivkuozljYHkuIDkuJbntIAgPiAyMXN0XC1jZW50dXJ5Owor5pyJ5qKd5pyJ55CG5ZywID4gbWV0aG9kaWNhbGx5Owor5LiN5piv546p5YWS55qEID4gaXQnJ3NcLW5vXC1qb2tlOwor57KX5L+X55qE6ZqO57SaID4gdnVsZ2FyXC1jbGFzczsKK+aJk+WNsOacjeWLmeWZqCA+IHByaW50XC1zZXJ2ZXI7Civos5Popb/ms5XlsLzkup4gPiBwZW5uc3lsdmFuaWE7CivogLbliKnnsbPlk4DmrYwgPiBsYW1lbnRhdGlvbnM7CivlhavkuZ3kuI3pm6LljYEgPiBwcmV0dHlcLWNsb3NlOwor6ZaL5pS+5byP57ay6LevID4gb3BlblwtbmV0d29yazsKK+WFi+ijoeWnhuael+WuriA+IHRoZVwta3JlbWxpbjsKK+WkquW5s+a0i+mAsemCiiA+IHBhY2lmaWNcLXJpbTsKK+a/gOWFieS6jOalteeuoSA+IGxhc2VyXC1kaW9kZTsKK+WZqOWumOaNkOeNu+iAhSA+IG9yZ2FuXC1kb25vcjsKK+aWh+S7tuacjeWLmeWZqCA+IGZpbGVcLXNlcnZlcjsKK+eOu+aEj+iAs+WumuW+iyA+IGJveWxlJydzXC1sYXc7CivkuIDljYPlm5vnmb7lhIQgPiAxNDBcLWJpbGxpb247Civoh6rnlLHpgbjmk4fmrIogPiBmcmVlXC1hZ2VuY3k7Civlt7Tmnq/lr6fkuLvnvqkgPiBiYWt1bmluaXNtOwor6Kqq5LiN5Ye66Kmx5L6GID4gc3BlZWNobGVzczsKK+WhlOWQieWFi+aWr+WdpiA+IHRhamlraXN0YW47CivliqDliKnnpo/lsLzkup4gPiBjYWxpZm9ybmlhOwor5L2/55So6ICF5Lit5LuLID4gdXNlclwtYWdlbnQ7Civlk4jolqnlhYvmlq/lnaYgPiBrYXpha2hzdGFuOwor55m+5YiG5LmL5Lmd5Y2BID4gOTBcLXBlcmNlbnQ7CivlhazplovoqI7oq5bmnIMgPiBvcGVuXC1mb3J1bTsKK+iJvua7i+eXheeXheavkiA+IGFpZHNcLXZpcnVzOwor5Zyw5pa55a6Y6IG35L2NID4gcHJlZmVjdHVyZTsKK+ejgeebpOmpheWLleWZqCA+IGRpc2xcLWRyaXZlOwor5aWz6KOd6KOB57ir5birID4gZHJlc3NtYWtlcjsKK+mVt+WtkOeahOWQjeS7vSA+IGJpcnRocmlnaHQ7CivkuIDnmb7kupTljYHlhIQgPiAxNVwtYmlsbGlvbjsKK+mYv+avlOilv+WwvOS6niA+IGFieXNzaW5pYTsKK+ekvuacg+S4u+e+qeiAhSA+IHNvY2lhbGlzdDsKK+aPkOaRqeWkquWQjuabuCA+IDJcLXRpbW90aHk7CivliLDnm67liY3ngrrmraIgPiB1bnRpbFwtbm93Owor5rWB6KGM5oCn5oSf5YaSID4gaW5mbHVlbnphOwor5LiN56mp5a6a5rCj5rWBID4gdHVyYnVsZW50Owor5o+Q5pGp5aSq5YmN5pu4ID4gMVwtdGltb3RoeTsKK+azouWIqeWwvOilv+S6niA+IHBvbHluZXNpYTsKK+WcluabuOeuoeeQhuWToSA+IGxpYnJhcmlhbjsKK+WNsOW6puWwvOilv+S6niA+IGluZG9uZXNpYTsKK+awkeS4u+S4u+e+qeiAhSA+IGRlbW9jcmF0czsKK+iuiueEpui3nemPoemgrSA+IHpvb21cLWxlbnM7CivkvIHmpa3plpPntrLot68gPiBleHRyYW5ldDsKK+W4uOWdkOaxvei7iuiAhSA+IG1vdG9yaXN0Owor5rG96LuK5bGV6Ka95pyDID4gY2FyXC1zaG93Owor5LyB5qWt5YWn57ay6LevID4gaW50cmFuZXQ7CivmkpLmr43ogLPoqJjkuIsgPiAyXC1zYW11ZWw7CivmkpLmr43ogLPoqJjkuIogPiAxXC1zYW11ZWw7Civlm5vmnIjljYHkuIPomZ8gPiBhcHJpbFwtMTc7CivnpZ7lrbjnoJTnqbbmiYAgPiBzZW1pbmFyeTsKK+Wfg+WhnuS/hOavlOS6niA+IGV0aGlvcGlhOwor5aWn5YWL5ouJ6I236aasID4gb2tsYWhvbWE7CivkuI3lkI3orb3kuovniakgPiBkaXNob25vcjsKK+a1t+i7jee4veWPuOS7pCA+IGFkbWlyYWw7CivkupTmnIjljYHkupTomZ8gPiBtYXlcLTFcLTU7CivpmL/niL7lj4rliKnkup4gPiBhbGdlcmlhOwor5LiD5pyI5LiJ5Y2B6JmfID4ganVseVwtMzA7CivppqzlhYvmgJ3kuLvnvqkgPiBtYXJ4aXNtOwor6Zi/54i+5be05bC85LqeID4gYWxiYW5pYTsKK+S4gOevgFwo6KmpXCkgPiBzdGFuemE7CivpgI/ljbDniYjljbDliLcgPiBvZmZzZXQ7Civmr5vnuZTpgYvli5XooasgPiBqZXJzZXk7CivnlLfkv67pgZPpmaLplbcgPiBhYmJvdDsKK+iqv+WItuino+iqv+WZqCA+IG1vZGVtOwor5LiJ6Imy57Sr576F6JitID4gcGFuc3k7CivlronlhajnkIbkuovmnIMgPiB0aGVcLXU7CivmirHolqrmlZHngasgPiBjYXJyeVwtZmFnZ290c1wtdG9cLXB1dFwtb3V0XC1hXC1maXJlXC1cLVwtYWRvcHRcLWFcLXdyb25nXC1tZXRob2RcLXRvXC1zYXZlXC1hXC1zaXR1YXRpb25cLWFuZFwtZW5kXC11cFwtYnlcLW1ha2luZ1wtaXRcLXdvcnNlOwor5p2v5rC06LuK6JaqID4gdHJ5aW5nXC10b1wtcHV0XC1vdXRcLWFcLWJ1cm5pbmdcLWNhcnRsb2FkXC1vZlwtZmFnZ290c1wtd2l0aFwtYVwtY3VwXC1vZlwtd2F0ZXJcLVwtXC1hblwtdXR0ZXJseVwtaW5hZGVxdWF0ZVwtbWVhc3VyZTsKK+i+r+iovOaWveayuyA+IGRpYWdub3Npc1wtYW5kXC10cmVhdG1lbnRcLWJhc2VkXC1vblwtYW5cLW92ZXJhbGxcLWFuYWx5c2lzXC1vZlwtdGhlXC1pbGxuZXNzXC1hbmRcLXRoZVwtcGF0aWVudCcnc1wtY29uZGl0aW9uOwor5pWd5bia6Ieq54+NID4gdmFsdWVcLW9uZScnc1wtb3duXC1vbGRcLWJyb29tXC1cLVwtY2hlcmlzaFwtc29tZXRoaW5nXC1vZlwtbGl0dGxlXC12YWx1ZVwtc2ltcGx5XC1iZWNhdXNlXC1pdFwtaXNcLW9uZScnc1wtb3duOwor5YW15LiN6KGA5YiDID4gdGhlXC1lZGdlc1wtb2ZcLXRoZVwtc3dvcmRzXC1ub3RcLWJlaW5nXC1zdGFpbmVkXC13aXRoXC1ibG9vZFwtXC1cLXdpblwtdmljdG9yeVwtd2l0aG91dFwtZmlyaW5nXC1hXC1zaG90Owor6aSK5YWS6Ziy6ICBID4gXChvZlwtcGFyZW50c1wpXC10b1wtYnJpbmdcLXVwXC1jaWhsZHJlblwtZm9yXC10aGVcLXB1cnBvc2VcLW9mXC1iZWluZ1wtbG9va2VkXC1hZnRlclwtaW5cLW9sZFwtYWdlOwor5LiN5YWx5oi05aSpID4gd2lsbFwtbm90XC1saXZlXC11bmRlclwtdGhlXC1zYW1lXC1za3lcLVwod2l0aFwtb25lJydzXC1lbmVteVwpXC1cLVwtYWJzb2x1dGVseVwtaXJyZWNvbmNpbGFibGU7Civmk4rlhbbmg7DmrbggPiBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civpgb/lhbbpirPmsKMgPiBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civkv53nlLLliLbluqYgPiB0aGVcLWJhb1wtamlhXC1zeXN0ZW1cLVwoYW5cLWFkbWluaXN0cmF0aXZlXC1zeXN0ZW1cLW9yZ2FuaXplZFwtb25cLWJhc2lzXC1vZlwtaG91c2Vob2xkc1wpOwor5LiN6L6o6I+96bqlID4gYmVcLXVuYWJsZVwtdG9cLXRlbGxcLWJlYW5zXC1mcm9tXC13aGVhdFwtXC1cLWhhdmVcLW5vXC1rbm93bGVkZ2VcLW9mXC1wcmFjdGljYWxcLW1hdHRlcnM7Civmga3llpznmbzosqEgPiBjb25ncmF0dWxhdGlvbnNcLWZvclwtZ2V0dGluZ1wtcmljaFwtXCh0cmFkaXRpb25hbFwtY2hpbmVzZVwtbmV3XC15ZWFyJydzXC1mdXR1cmVcLXVzZTsKK+Whnumfi+ijoeirviA+IFxbamVhblwtbWljaGVsXF1cLXNldmVyaW5vXC1cW3dvcmxkXC1iYW5rXC12aWNlXC1wcmVzaWRlbnRcLFwtZWFzdFwtYXNpYVwtYW5kXC1wYWNpZmljXF07CivmnInmnJ/lvpLliJEgPiBsaW1pdGVkXC10ZXJtXC1vZlwtaW1wcmlzb25tZW50XC1cKGllXCxcLWFueXRoaW5nXC1sZXNzXC10aGFuXC1saWZlXC1pbXByaXNvbm1lbnRcKTsKK+mWieebruWhnuiBvSA+IHNodXRzXC1vbmUnJ3NcLWV5ZXNcLWFuZFwtc3RvcFwtdXBcLW9uZScnc1wtZWFyc1wtXC1cLWJlXC1vdXRcLW9mXC10b3VjaFwtd2l0aFwtcmVhbGl0eTsKK+esqOmzpeWFiOmjmyA+IGNsdW1zeVwtYmlyZHNcLWhhdmVcLXRvXC1zdGFydFwtZmx5aW5nXC1lYXJseVwtXC1cLXRoZVwtc2xvd1wtbmVlZFwtdG9cLXN0YXJ0XC1lYXJseTsKK+acrOiNiee2seebriA+IGFuXC1vdXRsaW5lXC10cmVhdGlzZVwtb2ZcLW1lZGljYWxcLWhlcmJzXCxcLWNvbXBpbGVkXC1ieVwtbGkzXC1zaGkyXC16aGVuMVwt5p2O5pmC54+NOwor5YW15by36aas5aOvID4gc3Ryb25nXC1zb2xkaWVyc1wtYW5kXC1zdHVyZHlcLWhvcnNlc1wtXC1cLWFcLXdlbGxcLXRyYWluZWRcLWFuZFwtcG93ZXJmdWxcLWFybXk7Civmpa3kvZnlpKflrbggPiBjb2xsZWdlXC1mb3JcLXBlb3BsZVwtd2hvXC1hdHRlbmRcLWFmdGVyXC13b3JrXC1cKGxpdFwuXDpcLXNwYXJlXC10aW1lXC1jb2xsZWdlXCk7CivmjZXpoqjmjYnlvbEgPiBjaGFzZVwtdGhlXC13aW5kXC1hbmRcLWNsdXRjaFwtYXRcLXNoYWRvd3NcLVwtXC1tYWtlXC1ncm91bmRsZXNzXC1hY2N1c2F0aW9uczsKK+S4jeWIhuW9vOatpCA+IG1ha2VcLW5vXC1kaXN0aW5jdGlvblwtYmV0d2Vlblwtd2hhdCcnc1wtb25lJydzXC1vd25cLWFuZFwtd2hhdCcnc1wtYW5vdGhlcicnczsKK+S4jeefpeWHoeW5viA+IGNhbicndFwtdGVsbFwtaG93XC1tYW55XC10aGVyZVwtYXJlXC1cLVwtdGhlcmVcLWFyZVwtbnVtZXJvdXNcLXNpbWlsYXJcLWNhc2VzOwor5oqx5q6Y5a6I57y6ID4gY2hlcmlzaFwtdGhlXC1vdXRtb2RlZFwtYW5kXC1wcmVzZXJ2ZVwtdGhlXC1vdXR3b3JuXC1cLVwtYmVcLWNvbnNlcnZhdGl2ZTsKK+WNmuWPpOmAmuS7iiA+IGNvbnZlcnNhbnRcLXdpdGhcLXRoaW5nc1wtcGFzdFwtYW5kXC1wcmVzZW50XC1cLVwtZXJ1ZGl0ZVwtYW5kXC1pbmZvcm1lZDsKK+Wkp+msp+WkqeWuriA+IFwidGhlXC1tb25rZXlcLWNyZWF0ZXNcLWhhdm9jXC1pblwtaGVhdmVuXCJcLFwtc3RvcnlcLWFib3V0XC1zdW5cLXd1XC1rb25nOwor5oKy5aSp5oar5Lq6ID4gYmVtb2FuXC10aGVcLXN0YXRlXC1vZlwtdGhlXC11bml2ZXJzZVwtYW5kXC1waXR5XC10aGVcLWZhdGVcLW9mXC1tYW5raW5kOwor5LiN5pyN5rC05ZyfID4gXChvZlwtYVwtc3RyYW5nZXJcKVwtbm90XC1hY2N1c3RvbWVkXC10b1wtdGhlXC1jbGltYXRlXC1vZlwtYVwtbmV3XC1wbGFjZTsKK+WTgOWFteW/heWLnSA+IGFuXC1hcm15XC1idXJuaW5nXC13aXRoXC1yaWdodGVvdXNcLWluZGlnbmF0aW9uXC1pc1wtYm91bmRcLXRvXC13aW47Civnn5vpoK3mjIflkJEgPiB0YXJnZXRcLXNvbWVvbmVcLW9yXC1zb21ldGhpbmdcLVwoZm9yXC1hdHRhY2tcLFwtY3JpdGljaXNtXCxcLWV0Y1wuXCk7CivkuI3mgaXkuIvllY8gPiBub3RcLWZlZWxcLWFzaGFtZWRcLXRvXC1hc2tcLWFuZFwtbGVhcm5cLWZyb21cLW9uZScnc1wtc3Vib3JkaW5hdGVzOwor5Y2h5ouJT0sgPiBrYXJhb2tlXC1cKHNpbmdpbmdcLXRvXC1yZWNvcmRlZFwtaW5zdHJ1bWVudGFsXC1hY2NvbXBhbmltZW50XCk7CivkuK3lnIvmsJHoiKogPiBnZW5lcmFsXC1hZG1pbmlzdHJhdGlvblwtb2ZcLWNpdmlsXC1hdmlhdGlvblwtb2ZcLWNoaW5hXC1cKGNhYWNcKTsKK+S4ieWci+a8lOe+qSA+IG5hbWVcLW9mXC1hXC1jbGFzc2ljXC1ub3ZlbFwsXC1cInJvbWFuY2VcLW9mXC10aGVcLXRocmVlXC1raW5nZG9tc1wiOwor6IOM5rC05LiA5oiwID4gZmlnaHRcLXdpdGhcLW9uZScnc1wtYmFja1wtdG9cLXRoZVwtcml2ZXJcLVwtXC1maWdodFwtdG9cLXdpblwtb3JcLWRpZTsKK+adr+W8k+ibh+W9sSA+IG1pc3Rha2luZ1wtdGhlXC1yZWZsZWN0aW9uXC1vZlwtYVwtYm93XC1pblwtdGhlXC1jdXBcLWZvclwtYVwtc25ha2U7Civog4zkupXpm6LphIkgPiBsZWF2ZVwtb25lJydzXC1uYXRpdmVcLXBsYWNlXC1cKGVzcGVjaWFsbHlcLWFnYWluc3RcLW9uZScnc1wtd2lsbFwpOwor5rOi54C+6LW35LyPID4gb2ZcLWFcLXBpZWNlXC1vZlwtd3JpdGluZ1wtd2l0aFwtb25lXC1jbGltYXhcLWZvbGxvd2luZ1wtYW5vdGhlcjsKK+S4jeeCuuW3sueUmiA+IHJlZnJhaW5cLWZyb21cLWdvaW5nXC10b1wtZXh0cmVtZXNcLWluXC1tZXRpbmdcLW91dFwtcHVuaXNobWVudDsKK+S4jee0hOiAjOWQjCA+IHRha2VcLXRoZVwtc2FtZVwtYWN0aW9uXC1vclwtdmlld1wtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+WFq+mdoueOsueTjyA+IGJlXC1zbW9vdGhcLWFuZFwtc2xpY2tcLVwoaW5cLWVzdGFibGlzaGluZ1wtc29jaWFsXC1yZWxhdGlvbnNcKTsKK+ecvuW/l+aIkOWfjiA+IFwidW5pdHlcLW9mXC13aWxsXC1pc1wtYW5cLWltcHJlZ25hYmxlXC1zdHJvbmdob2xkXCJcLVwocHJvdmVyYlwpOwor5oqX5pel5oiw54itID4gXChjaGluYScnc1wpXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7CivlpKfmnZDlsI/nlKggPiB1c2luZ1wtYVwtdGFsZW50ZWRcLXBlcnNvblwtaW5cLWFuXC1pbnNpZ25pZmljYW50XC1wb3NpdGlvbjsKK+S4jeiBnuS4jeWVjyA+IG5vdFwtYm90aGVyXC10b1wtYXNrXC1xdWVzdGlvbnNcLW9yXC1saXN0ZW5cLXRvXC13aGF0JydzXC1zYWlkOwor5Lim6KGM5LiN5oKWID4gYm90aFwtY2FuXC1iZVwtaW1wbGVtZW50ZWRcLXdpdGhvdXRcLWNvbWluZ1wtaW50b1wtY29uZmxpY3Q7CivmraXmraXngrrnh58gPiBhZHZhbmNlXC1ncmFkdWFsbHlcLWFuZFwtZW50cmVuY2hcLW9uZXNlbGZcLWF0XC1ldmVyeVwtc3RlcDsKK+S4gOacm+eEoemamyA+IGFzXC1mYXJcLWFzXC10aGVcLWV5ZVwtY2FuXC1zZWVcLVwobGl0XDpcLWxvb2tcLWFmYXJcLW5vXC1ib3VuZFwpOwor5LiN6KaL57aT5YKzID4gbm90XC10b1wtYmVcLWZvdW5kXC1pblwtdGhlXC1jbGFzc2ljc1wtXC1cLW5vdFwtYXV0aG9yaXRhdGl2ZTsKK+aSpembsuimi+aXpSA+IGRpc3BlbFwtdGhlXC1jbG91ZHNcLWFuZFwtc2VlXC10aGVcLXN1blwtXC1cLXJlc3RvcmVcLWp1c3RpY2U7CivlronmraXnlbbou4ogPiB3YWxrXC1vdmVyXC1sZWlzdXJlbHlcLWluc3RlYWRcLW9mXC1yaWRpbmdcLWluXC1hXC1jYXJyaWFnZTsKK+S4jeWLneaemuiIiSA+IHRvb1wtbnVtZXJvdXNcLXRvXC1tZW50aW9uXC1pbmRpdmlkdWFsbHlcLW9yXC1vbmVcLWJ5XC1vbmU7Civos5Poh7PlpoLmrbggPiBndWVzdHNcLWZlZWxcLWF0XC1ob21lXC1cKGluXC1hXC1ob3RlbFwsXC1ndWVzdGhvdXNlXCxcLWV0Y1wuXCk7CivlsJbplqPliJfls7YgPiBzZW5rYWt1XC1pc2xhbmRzXC1cKGphcGFuZXNlXC1uYW1lXC1mb3JcLWRpYW95dVwtaXNsYW5kc1wpOwor57at5ZC+54i+5pePID4gdGhlXC11eWd1clwtXCh1aWdodXJcKVwtbmF0aW9uYWxpdHlcLFwtbGl2aW5nXC1pblwteGluamlhbmc7CivljZfoj6/ml6nloLEgPiBzb3V0aFwtY2hpbmFcLW1vcm5pbmdcLXBvc3RcLVwobmV3c3BhcGVyXC1pblwtaG9uZ1wta29uZ1wpOwor55eF5YWl6IaP6IKTID4gdGhlXC1kaXNlYXNlXC1oYXNcLWF0dGFja2VkXC10aGVcLXZpdGFsc1wtXC1cLWJleW9uZFwtY3VyZTsKK+e0hOe/sOaLieiynSA+IGpvaG5cLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+S4jeegtOS4jeeriyA+IHdpdGhvdXRcLWRlc3RydWN0aW9uXC10aGVyZVwtY2FuXC1iZVwtbm9cLWNvbnN0cnVjdGlvbjsKK+WMheeUouWIsOaItiA+IGZpeGluZ1wtb2ZcLWZhcm1cLW91dHB1dFwtcXVvdGFzXC1mb3JcLWVhY2hcLWhvdXNlaG9sZDsKK+mnsemnneelpeWtkCA+IG5hbWVcLW9mXC1hXC1ub3ZlbFwsXC1sdW9cLXR1b1wteGlhbmd6aVwsXC1ieVwtbGFvXC1zaGVcLeiAgeiIjTsKK+mAvOS4iuaokeWxsSA+IGJlXC1kcml2ZW5cLXRvXC1qb2luXC10aGVcLWxpYW5nc2hhblwtbW91bnRhaW5cLXJlYmVsczsKK+WNl+i9heWMl+i9jSA+IFwoZmlnXC5cKVwtYWN0XC1pblwtYVwtd2F5XC10aGF0XC1kZWZlYXRzXC1vbmUnJ3NcLXB1cnBvc2U7Civkv53lpJblsLHphqsgPiBcKG9mXC1hXC1wcmlzb25lclwpXC1yZWxlYXNlZFwtZm9yXC1tZWRpY2FsXC10cmVhdG1lbnQ7Civokrjokrjml6XkuIogPiBiZWNvbWluZ1wtbW9yZVwtcHJvc3Blcm91c1wtd2l0aFwtZWFjaFwtcGFzc2luZ1wtZGF5Owor54OP6a2v5pyo6b2KID4gdXJ1bXFpXC1cKGNhcGl0YWxcLW9mXC14aW5qaWFuZ1wtYXV0b25vbW91c1wtcmVnaW9uXCk7CivlronlnJ/ph43pgbcgPiBoYXRlXC10b1wtbGVhdmVcLWFcLXBsYWNlXC13aGVyZVwtb25lXC1oYXNcLWxpdmVkXC1sb25nOwor5bel5ZWG6YqA6KGMID4gaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcLVwoaWNiY1wpOwor5LqL6IiH6aGY6YGVID4gdGhpbmdzXC1kb24nJ3RcLXR1cm5cLW91dFwtdGhlXC13YXlcLXlvdVwtd2FudFwtb3JcLXBsYW47CivlvLXnh4jntZDntrUgPiBiZVwtZGVjb3JhdGVkXC13aXRoXC1sYW50ZXJuc1wtYW5kXC1jb2xvcmVkXC1iYW5uZXJzOwor6ZaJ6ZaA5oCd6YGOID4gc2h1dFwtb25lc2VsZlwtdXBcLWFuZFwtcG9uZGVyXC1vdmVyXC1vbmUnJ3NcLW1pc3Rha2VzOwor6ZaJ6Zec6Ieq5a6IID4gY2xvc2VcLXRoZVwtY291bnRyeVwtdG9cLWludGVybmF0aW9uYWxcLWludGVyY291cnNlOwor5LiN6YG/6Imx6ZqqID4gc2hyaW5rXC1vclwtZmxpbmNoXC1mcm9tXC1ub1wtZGlmZmljdWx0eVwtb3JcLWRhbmdlcjsKK+mYv+aXuuabsuaymyA+IG5nYXdhbmdcLWNob2VwZWxcLVwodGliZXRhblwsXC1mdWxsYnJpZ2h0XC1zY2hvbGFyXCk7Civnlavom4fmt7votrMgPiBydWluXC10aGVcLWVmZmVjdFwtYnlcLWFkZGluZ1wtd2hhdFwtaXNcLXN1cGVyZmx1b3VzOwor5LuX576p5Z+36KiAID4gc3BlYWtcLW91dFwtb25cLWFcLW1hdHRlclwtb2ZcLXByaW5jaXBsZVwtb3JcLWp1c3RpY2U7CivlhbXoh6jln47kuIsgPiB0aGVcLWF0dGFja2luZ1wtYXJteVwtaGFzXC1yZWFjaGVkXC10aGVcLWNpdHlcLWdhdGVzOwor6IOM5Z+O5YCf5LiAID4gbWFrZVwtYVwtbGFzdFwtZGl0Y2hcLXN0YW5kXC1iZWZvcmVcLXRoZVwtY2l0eVwtd2FsbDsKK+eZvuaEn+S6pOmbhiA+IGFsbFwtc29ydHNcLW9mXC1mZWVsaW5nc1wtd2VsbFwtdXBcLWluXC1vbmUnJ3NcLWhlYXJ0Owor5YW15LiN5Y6t6KmQID4gdGhlcmVcLWNhblwtbmV2ZXJcLWJlXC10b29cLW11Y2hcLWRlY2VwdGlvblwtaW5cLXdhcjsKK+S6lOWFreWNgeatsiA+IFwoaW5cLW9uZScnc1wpXC1maWZ0aWVzXC1vclwtc2l4dGllc1wtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor6YG/6YeN5bCx6LyVID4gYXZvaWRcLXRoZVwtaW1wb3J0YW50XC1hbmRcLWR3ZWxsXC1vblwtdGhlXC10cml2aWFsOwor5qiZ5paw56uL55WwID4gc3RhcnRcLXNvbWV0aGluZ1wtbmV3XC1pblwtb3JkZXJcLXRvXC1iZVwtZGlmZmVyZW50Owor5aSn5Yqf5ZGK5oiQID4gc3VjY2Vzc2Z1bGx5XC1hY2NvbXBsaXNoZWRcLVwocHJvamVjdFwtb3JcLWdvYWxcKTsKK+eEoeaJgOeUqOW/gyA+IGVhdFwtdGhyZWVcLXNxdWFyZVwtbWVhbHNcLWFcLWRheVwtYW5kXC1kb1wtbm9cLXdvcms7Civnj63ploDlvITmlqcgPiBkaXNwbGF5XC1vbmUnJ3NcLXNsaWdodFwtc2tpbGxcLWJlZm9yZVwtYW5cLWV4cGVydDsKK+S4reWci+aXpeWgsSA+IGNoaW5hXC1kYWlseVwtXChhblwtZW5nbGlzaFwtbGFuZ3VhZ2VcLW5ld3NwYXBlclwpOwor5LiN5Y+v57WC5pelID4gYmVcLXVuYWJsZVwtdG9cLWNhcnJ5XC1vblwtZXZlblwtZm9yXC1hXC1zaW5nbGVcLWRheTsKK+mjvemjn+e1guaXpSA+IGVhdFwtdGhyZWVcLXNxdWFyZVwtbWVhbHNcLWFcLWRheVwtYW5kXC1kb1wtbm9cLXdvcms7Civllq7mp43ljLnppqwgPiBzaW5nbGVcLWhhbmRlZFwtXChsaXRcOlwtc2luZ2xlXC1zcGVhclwtb25lXC1ob3JzZVwpOwor5ZCN5Ymv5YW25a+mID4gbm90XC1qdXN0XC1pblwtbmFtZVwtb25seVwsXC1idXRcLWFsc29cLWluXC1yZWFsaXR5Owor5Zac5paw5Y6t6IiKID4gbGl0ZXJhbFw6XC10b1wtbGlrZVwtdGhlXC1uZXdcLFwtYW5kXC1oYXRlXC10aGVcLW9sZDsKK+aLjeahiOWPq+e1lSA+IGxpdFwuXDpcLXNsYXBcLXRoZVwtdGFibGVcLWFuZFwtc2hvdXRcLXdpdGhcLXByYWlzZTsKK+miqOWcn+S6uuaDhSA+IGxvY2FsXC1jb25kaXRpb25zXC1cKGh1bWFuXC1hbmRcLWVudmlyb25tZW50YWxcKTsKK+mYv+aLieWhlOaWryA+IFwoYWxpXClcLWFsYXRhc1wtXChpbmRvbmVzaWFuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5Lit5YWx5Lit5aSuID4gY2hpbmVzZVwtY29tbXVuaXN0XC1wYXJ0eVwtY2VudHJhbFwtY29tbWl0dGVlOwor5Y2a6IGe5by36KiYID4gaGF2ZVwtd2lkZVwtbGVhcm5pbmdcLWFuZFwtYVwtcmV0ZW50aXZlXC1tZW1vcnk7Civnmb7lubTlpKfoqIggPiBhXC1wcm9qZWN0XC1vZlwtdml0YWxcLWFuZFwtbGFzdGluZ1wtaW1wb3J0YW5jZTsKK+aLlOiLl+WKqemVtyA+IHNwb2lsXC10aGluZ3NcLXRocm91Z2hcLWV4Y2Vzc2l2ZVwtZW50aHVzaWFzbTsKK+iCr+aZrue0ouaBqSA+IFwoZGlya1wpXC1rZW1wdGhvcm5lXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1pZGFob1wpOwor5aSW5a2r5aWz5YWSID4gZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtZGF1Z2hlclwpOwor55m+5oqY5LiN5pKTID4ga2VlcFwtb25cLWZpZ2h0aW5nXC1pblwtc3BpdGVcLW9mXC1hbGxcLXNldGJhY2tzOwor5a6J6Lqr56uL5ZG9ID4gc2V0dGxlXC1kb3duXC1hbmRcLWdldFwtb25cLXdpdGhcLW9uZScnc1wtcHVyc3VpdDsKK+S4jeWPr+S4gOS4liA+IGNvbnNpZGVyXC1vbmVzZWxmXC11bmV4Y2VsbGVkXC1pblwtdGhlXC13b3JsZDsKK+e1leWwjeaVuOWtlyA+IGFic29sdXRlXC1cKGFzXC1vcHBvc2VkXC10b1wtcmVsYXRpdmVcKVwtbnVtYmVyOwor5oqx6aCt6byg56uEID4gY292ZXJcLXRoZVwtaGVhZFwtYW5kXC1zbmVha1wtYXdheVwtbGlrZVwtYVwtcmF0Owor55m+5bui5L+x6IiIID4gYWxsXC1uZWdsZWN0ZWRcLXRhc2tzXC1hcmVcLWJlaW5nXC11bmRlcnRha2VuOwor6YG/5a+m5bCx6JmbID4gc3RheVwtY2xlYXJcLW9mXC10aGVcLWVuZW15JydzXC1tYWluXC1mb3JjZVwtYW5kOwor5LiN5rGC55Sa6KejID4gbm90XC1zZWVrXC10b1wtdW5kZXJzdGFuZFwtdGhpbmdzXC10aG9yb3VnaGx5Owor5Lit5aSu5YWo5pyDID4gcGxlbmFyeVwtc2Vzc2lvblwtb2ZcLXRoZVwtY2VudHJhbFwtY29tbWl0dGVlOwor5Y+k5p2w5ouJ54i+ID4gXChpXC5cLWtcLlwpXC1ndWpyYWxcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtaW5kaWFcKTsKK+WGt+a3oemXnOS/giA+IGNvbGRcLXJlbGF0aW9uc1wtXChlXC5nXC5cLWJldHdlZW5cLWNvdW50cmllc1wpOwor5LiN5LqG5LqG5LmLID4gc2V0dGxlXC1hXC1tYXR0ZXJcLWJ5XC1sZWF2aW5nXC1pdFwtdW5zZXR0bGVkOwor5LiN5Y2z5LiN6ZuiID4gYmVcLW5laXRoZXJcLXRvb1wtZmFtaWxpYXJcLW5vclwtdG9vXC1kaXN0YW50Owor57i95pS/5rK76YOoID4gXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1wb2xpdGljYWxcLWRlcGFydG1lbnQ7CivljYrot6/lh7rlrrYgPiBzd2l0Y2hcLXRvXC1hXC1qb2JcLW9uZVwtd2FzXC1ub3RcLXRyYWluZWRcLWZvcjsKK+eXheavkuWtuOWutiA+IHZpcm9sb2dpc3RcLVwocGVyc29uXC13aG9cLXN0dWRpZXNcLXZpcnVzZXNcKTsKK+e1kOekvuiHqueUsSA+IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLWFzc29jaWF0aW9uOwor6JST5bu25YWo5ZyLID4gdG9cLXNwcmVhZFwtdGhyb3VnaG91dFwtdGhlXC1lbnRpcmVcLWNvdW50cnk7Civnmb7mgJ3kuI3op6MgPiByZW1haW5cLXB1enpsZWRcLWFmdGVyXC1wb25kZXJpbmdcLW92ZXJcLXN0aDsKK+WNiuWLnuWLleWKmyA+IG9uZVwtYWJsZVwtdG9cLWRvXC1saWdodFwtbWFudWFsXC1sYWJvdXJcLW9ubHk7CivnuL3lvozli6Tpg6ggPiBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLWxvZ2lzdGljc1wtZGVwYXJ0bWVudDsKK+S4gOWci+WFqeWItiA+IG9uZVwtY291bnRyeVwsXC10d29cLXN5c3RlbXNcLVwoY2hpbmFcLXRhaXdhblwpOwor55m96aCt6Kun6ICBID4gbGl2ZVwtdG9cLXJpcGVcLW9sZFwtYWdlXC1pblwtY29uanVnYWxcLWJsaXNzOwor5oiQ5Y2D5LiK6JCsID4gYnlcLXRoZVwtdGhvdXNhbmRzXC1hbmRcLXRlbnNcLW9mXC10aG91c2FuZHM7CivkuI3lrqPogIzmiLAgPiBvcGVuXC1ob3N0aWxpdGllc1wtd2l0aG91dFwtZGVjbGFyaW5nXC13YXI7CivkuI3pgaDljYPph4wgPiBtYWtlXC1saWdodFwtb2ZcLXRyYXZlbGxpbmdcLWFcLXRob3VzYW5kXC1saTsKK+WuieWxheaogualrSA+IGxpdmVcLWFuZFwtd29ya1wtaW5cLXBlYWNlXC1hbmRcLWNvbnRlbnRtZW50Owor6YGN6auU6bGX5YK3ID4gY292ZXJlZFwtYWxsXC1vdmVyXC13aXRoXC1jdXRzXC1hbmRcLWJydWlzZXM7Civlhafmh67lpJbmgqMgPiBkb21lc3RpY1wtc3RyaWZlXC1hbmRcLWZvcmVpZ25cLWFncmVzc2lvbjsKK+ayu+eXheaVkeS6uiA+IGN1cmVcLXRoZVwtc2lja25lc3NcLXRvXC1zYXZlXC10aGVcLXBhdGllbnQ7Civlk4DptLvpgY3ph44gPiBhXC1sYW5kXC1zd2FybWluZ1wtd2l0aFwtZGlzYXN0ZXJcLXZpY3RpbXM7Civnl4Xlvp7lj6PlhaUgPiBpbGxuZXNzXC1maW5kc1wtaXRzXC13YXlcLWluXC1ieVwtdGhlXC1tb3V0aDsKK+e4veWPg+isgOmDqCA+IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtc3RhZmZcLWhlYWRxdWFydGVyczsKK+aSpee1g+aoguWZqCA+IHBsdWNrZWRcLXN0cmluZ1wtb3JcLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5Yil5YW35LiA5qC8ID4gaGF2aW5nXC1hXC11bmlxdWVcLW9yXC1kaXN0aW5jdGl2ZVwtc3R5bGU7CivoroDos6PmlrDogZ4gPiB5b21pdXJpXC1zaGltYnVuXC1cKGphcGFuZXNlXC1uZXdzcGFwZXJcKTsKK+aJjeeWj+WtuOa3uiA+IGhhdmVcLWxpdHRsZVwtdGFsZW50XC1hbmRcLWxlc3NcLWxlYXJuaW5nOwor6YG/5Z2R6JC95LqVID4gZG9kZ2VcLWFcLXBpdFwtb25seVwtdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7Civorormuqvli5XniakgPiBwb2lraWxvdGhlcm1hbFwtXChjb2xkXC1ibG9vZGVkXClcLWFuaW1hbDsKK+Wkp+S4reWtuOeUnyA+IHVuaXZlcnNpdHlcLWFuZFwtaGlnaFwtc2Nob29sXC1zdHVkZW50czsKK+WuieWIhuWuiOW3sSA+IGFiaWRlXC1ieVwtdGhlXC1sYXdcLWFuZFwtYmVoYXZlXC1vbmVzZWxmOwor5aSn6aGv6Lqr5omLID4gZnVsbHlcLWRpc3BsYXlpbmdcLW9uZScnc1wtY2FwYWJpbGl0aWVzOwor5rOi54C+5aOv6ZeKID4gc3VyZ2luZ1wtZm9yd2FyZFwtd2l0aFwtZ3JlYXRcLW1vbWVudHVtOwor5Zue5q245Lit5ZyLID4gdG9cLXJldHVyblwtdG9cLWNoaW5hXC1cKGVcLmdcLlwtaG9uZ1wta29uZ1wpOwor5oSb6I6r6IO95YqpID4gd2lsbGluZ1wtdG9cLWhlbHBcLWJ1dFwtdW5hYmxlXC10b1wtZG9cLXNvOwor6Kq/5p+l57WQ5p6cID4gcmVzdWx0c1wtXChvZlwtYW5cLWludmVzdGlnYXRpb25cLFwtcG9sbFwpOwor55m+56uv5b6F6IiJID4gYVwtdGhvdXNhbmRcLXRoaW5nc1wtcmVtYWluXC10b1wtYmVcLWRvbmU7Civnp4vpq5jmsKPniL0gPiBjbGVhclwtYW5kXC1yZWZyZXNoaW5nXC1hdXR1bW5cLXdlYXRoZXI7CivlhrDmtojnk6bop6MgPiBtZWx0XC1saWtlXC1pY2VcLWFuZFwtYnJlYWtcLWxpa2VcLXRpbGVzOwor5Y2K5pak5YWr5YWpID4gbm90XC1tdWNoXC10b1wtY2hvb3NlXC1iZXR3ZWVuXC10aGVcLXR3bzsKK+atpeS6uuW+jOWhtSA+IGZvbGxvd1wtaW5cLW90aGVyXC1wZW9wbGUnJ3NcLWZvb3RzdGVwczsKK+m+jemjm+mzs+iIniA+IGxpdFwuXDpcLWRyYWdvblwtZmxpZXNcLFwtcGhvZW5peFwtZGFuY2VzOwor5ZyL6Zqb6KaL6IGeID4gaW50ZXJuYXRpb25hbFwtYmFja2dyb3VuZFwta25vd2xlZGdlOwor5ZyL5YuZ5aeU5ZOhID4gbWVtYmVyXC1vZlwtc3RhdGVcLWNvdW5jaWxcLVwoaW5cLWNoaW5hXCk7Civlj6/np7vmpI3mgKcgPiBwb3J0YWJpbGl0eVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+WRvOWSjOa1qeeJuSA+IGhvaGhvdFwtXChjYXBpdGFsXC1vZlwtaW5uZXJcLW1vbmdvbGlhXCk7CivlsI/poYzlpKflgZogPiBtYWtlXC1hXC1iaWdcLWZ1c3NcLW92ZXJcLWFcLW1pbm9yXC1pc3N1ZTsKK+S4jeiZm+atpOihjCA+IHRoZVwtdHJpcFwtaGFzXC1ub3RcLWJlZW5cLW1hZGVcLWluXC12YWluOwor6KiA6KuW6Ieq55SxID4gXChjb25zdGl0dXRpb25hbFwpXC1mcmVlZG9tXC1vZlwtc3BlZWNoOwor6ZaL55m855Kw5aKDID4gZGV2ZWxvcG1lbnRcLWVudmlyb25tZW50XC1cKGNvbXB1dGVyXCk7CivkuI3orZjmmYLli5kgPiBzaG93XC1ub1wtdW5kZXJzdGFuZGluZ1wtb2ZcLXRoZVwtdGltZXM7CivkuI3mmYLkuYvpnIAgPiBhXC1wb3NzaWJsZVwtcGVyaW9kXC1vZlwtd2FudFwtb3JcLW5lZWQ7Civku6XniZnpgoTniZkgPiBhXC10b290aFwtZm9yXC1hXC10b290aFwtXChyZXRhbGlhdGlvblwpOwor55m+5oiw55m+5YudID4gZW1lcmdlXC12aWN0b3Jpb3VzXC1pblwtZXZlcnlcLWJhdHRsZTsKK+eUseatpOWPr+imiyA+IGZyb21cLXRoaXNcLFwtaXRcLWNhblwtYmVcLXNlZW5cLXRoYXRcLlwuXC47Civlr7jojYnkuI3nlJ8gPiBcIm5vdFwtZXZlblwtYVwtYmxhZGVcLW9mXC1ncmFzc1wtZ3Jvd3NcIjsKK+aTpuS6ruecvOedmyA+IHJlbW92ZVwtdGhlXC1zY2FsZXNcLWZyb21cLW9uZScnc1wtZXllczsKK+ijnOWBj+aVkeW8iiA+IHJlbWVkeVwtZGVmZWN0c1wtYW5kXC1yZWN0aWZ5XC1lcnJvcnM7Civnmb7lt53mrbjmtbcgPiBhbGxcLXRoaW5nc1wtdGVuZHNcLWluXC1vbmVcLWRpcmVjdGlvbjsKK+iqk+S4jeWPjeaClCA+IHRvXC12b3dcLW5vdFwtdG9cLWJyZWFrXC1vbmUnJ3NcLXByb21pc2U7Civnp5Hlrbjnt6jovK8gPiBzY2llbmNlXC1lZGl0b3JcLVwob2ZcLWFcLXB1YmxpY2F0aW9uXCk7CivmmILpppbpl4rmraUgPiBzdHJpZGVcLWZvcndhcmRcLXdpdGhcLW9uZScnc1wtY2hpblwtdXA7Civml6XntpPmjIfmlbggPiBuaWtrZWlcLWluZGV4XC1cKG9mXC1qYXBhbmVzZVwtc3RvY2tzXCk7Civlvpflr7jpgLLlsLogPiBsaXRlcmFsXDpcLWdldFwtYW5cLWluY2hcLFwtd2FudFwtYVwtZm9vdDsKK+WMl+a0i+i7jemWpSA+IHRoZVwtbm9ydGhlcm5cLXdhcmxvcmRzXC1cKDE5MTJcLTE5MjdcKTsKK+Wkp+aDkeS4jeinoyA+IGRvXC1ub3RcLXVuZGVyc3RhbmRcLWFcLWNlcnRhaW5cLXRoaW5nOwor5piO5paH6KaP5a6aID4gZXhwcmVzc2x5XC1zdGlwdWxhdGVkXC1cKGluXC13cml0aW5nXCk7CivlpKfluq3lu6PnnL4gPiBwdWJsaWNcLXBsYWNlXC13aXRoXC1udW1lcm91c1wtcGVvcGxlOwor55m+54Sh5LiA5aSxID4gbm9cLWRhbmdlclwtb2ZcLWFueXRoaW5nXC1nb2luZ1wtd3Jvbmc7CivkurrmrIrop4Dlr58gPiBodW1hblwtcmlnaHRzXC13YXRjaFwtXChvcmdhbml6YXRpb25cKTsKK+WCmeiAjOS4jeeUqCA+IGhhdmVcLXNvbWV0aGluZ1wtcmVhZHlcLWp1c3RcLWluXC1jYXNlOwor56+A5aSW55Sf5p6dID4gbmV3XC1wcm9ibGVtc1wtY29tcGxpY2F0ZVwtYW5cLWlzc3VlOwor6by76Z2S6IeJ6IWrID4gYVwtYmxvb2R5XC1ub3NlXC1hbmRcLWFcLXN3b2xsZW5cLWZhY2U7CivkvIHmpa3nrqHnkIYgPiBidXNpbmVzc1wtbWFuYWdlbWVudFwtXChhc1wtYVwtc3R1ZHlcKTsKK+S4jeisgOiAjOWQiCA+IGFncmVlXC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5oyJ5YW15LiN5YuVID4gbm90XC10aHJvd1wtdGhlXC10cm9vcHNcLWludG9cLWJhdHRsZTsKK+S4gOS4reS4gOiHuiA+IFwib25lXC1jaGluYVwsXC1vbmVcLXRhaXdhblwiXC1cKHBvbGljeVwpOwor5Lit5pel6Z+T6LaKID4gY2hpbmFcLFwtamFwYW5cLFwta29yZWFcLFwtYW5kXC12aWV0bmFtOwor5b2i5b2x5LiN6ZuiID4gaW5zZXBhcmFibGVcLVwoYXNcLWZvcm1cLWFuZFwtc2hhZG93XCk7CivllYbmpa3niYjmnKwgPiBjb21tZXJjaWFsXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwpOwor55m+6K6A5LiN5Y6tID4gYmVcLXdvcnRoXC1yZWFkaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+WIhuazouWkmuW3pSA+IHdhdmVsZW5ndGhcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7Civlv4XnlLHkuYvot68gPiB0aGVcLXJvYWRcLW9uZVwtbXVzdFwtZm9sbG93XC1vclwtdGFrZTsKK+S6qOeJueazsOe+hSA+IGh1bnRlclwtdHlsb1wtXChob2xseXdvb2RcLWFjdHJlc3NcKTsKK+mWiemWgOmAoOi7iiA+IG1ha2VcLWFcLWNhcnRcLWJlaGluZFwtY2xvc2VkXC1kb29yczsKK+aCsuWWnOS6pOmbhiA+IG1peGVkXC1mZWVsaW5nc1wtb2ZcLWdyaWVmXC1hbmRcLWpveTsKK+S4jeS/rumCiuW5hSA+IG5vdFwtY2FyZVwtYWJvdXRcLW9uZScnc1wtYXBwZWFyYW5jZTsKK+Wkp+W/q+S6uuW/gyA+IHRvXC10aGVcLXNhdGlzZmFjdGlvblwtb2ZcLWV2ZXJ5b25lOwor6Z6t6ZW36I6r5Y+KID4gYmV5b25kXC10aGVcLXJlYWNoXC1vZlwtb25lJydzXC1wb3dlcjsKK+S4jeWtuOeEoeihkyA+IGhhdmVcLW5laXRoZXJcLWxlYXJuaW5nXC1ub3JcLXNraWxsOwor5LiN5a+S6ICM5oWEID4gc2hpdmVyXC1hbGxcLW92ZXJcLXRob3VnaFwtbm90XC1jb2xkOwor5bGk5Ye65LiN56quID4gdG9cLWNvbWVcLW91dFwtb25lXC1hZnRlclwtdGhlXC1vdGhlcjsKK+WuieawkeWRiuekuiA+IGFcLW5vdGljZVwtdG9cLXJlYXNzdXJlXC10aGVcLXB1YmxpYzsKK+e0sOiPjOatpuWZqCA+IGJpb2xvZ2ljYWxcLXdlYXBvblwtXCh1c2luZ1wtZ2VybXNcKTsKK+WIpemWi+eUn+mdoiA+IHN0YXJ0XC1zb21ldGhpbmdcLW5ld1wtb3JcLW9yaWdpbmFsOwor5aaC6aOi5Ly85ri0ID4gdGhpcnN0aW5nXC1vclwtaHVuZ2VyaW5nXC1mb3JcLXN0aFwuOwor6ZaL5ZyL5YWD5YubID4gZm91bmRpbmdcLWZhdGhlcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+ebtOaOpeaVuOaTmiA+IGRhdGFcLWRpcmVjdFwtXChpblwtbGFuXC1lbXVsYXRpb25cKTsKK+WCs+e1semGq+iXpSA+IFwoY2hpbmVzZVwpXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7CivmnInlj7Lku6XkvoYgPiBzaW5jZVwtdGhlXC1iZWdpbm5pbmdcLW9mXC1oaXN0b3J5Owor5YyF5rK755m+55eFID4gZ3VhcmFudGVlXC10b1wtY3VyZVwtYWxsXC1kaXNlYXNlczsKK+aMiemcgOWIhumFjSA+IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtbmVlZDsKK+S4luiyv+e1hOe5lCA+IHd0b1wtXCh3b3JsZFwtdHJhZGVcLW9yZ2FuaXphdGlvblwpOwor5rKS5pyJ5LuA6bq8ID4gdGhlcmUnJ3NcLW5vdGhpbmdcLVwoXC5cLlwuXC1hYm91dFwtaXRcKTsKK+aMieWLnuWIhumFjSA+IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtd29yazsKK+mYv+aLieacqOWcliA+IGFsbWF0eVwtXChjYXBpdGFsXC1vZlwta2F6YWtoc3RhblwpOwor5LiD5bGk5p625qeLID4gc2V2ZW5cLWxheWVyXC1hcmNoaXRlY3R1cmVcLVwob3NpXCk7Civmh4nmnInnm6HmnIkgPiBldmVyeXRoaW5nXC1cKG9uZVwtY291bGRcLWltYWdpbmVcKTsKK+mdkuWxsee2oOawtCA+IHZlcmRhbnRcLWhpbGxzXC1hbmRcLWdyZWVuXC13YXRlcnM7CivombnmqYvmqZ/loLQgPiBob25ncWlhb1wtYWlycG9ydFwtXChpblwtc2hhbmdoYWlcKTsKK+e1seS4gOaLm+eUnyA+IG5hdGlvbmFsXC11bmlmaWVkXC1lbnRyYW5jZVwtZXhhbTsKK+adsemDqOaZgumWkyA+IFwodVwuc1wuXClcLWVhc3Rlcm5cLVwoc3RhbmRhcmRcKVwtdGltZTsKK+aZguWkp+aZguWwjyA+IHNvbWV0aW1lc1wtYmlnXCxcLXNvbWV0aW1lc1wtc21hbGw7CivkuI3ovq3ogIzliKUgPiBsZWF2ZVwtd2l0aG91dFwtc2F5aW5nXC1nb29kXC1ieWU7Civnmb7ogb3kuI3ljq0gPiB3b3J0aFwtaGVhcmluZ1wtYVwtaHVuZHJlZFwtdGltZXM7CivkvY7pmo7oqp7oqIAgPiBsb3dcLWxldmVsXC1cKGNvbXB1dGVyXClcLWxhbmd1YWdlOwor5LiN6Laz54K66KiTID4gbm90XC10b1wtYmVcLXRha2VuXC1hc1wtYW5cLWV4YW1wbGU7CivlpKflkLnlpKfmk4IgPiBtYWtlXC1hblwtZXhoaWJpdGlvblwtb2ZcLW9uZXNlbGY7CivlronkuYvoi6XntKAgPiBiZWFyXC1oYXJkc2hpcFwtd2l0aFwtZXF1YW5pbWl0eTsKK+ilv+WTiOWKquWFiyA+IFwoa2luZ1wpXC1zaWhhbm91a1wtXChvZlwtY2FtYm9kaWFcKTsKK+auuuS6uuahiOS7tiA+IFwoY2FzZVwtb2ZcLFwtaW5jaWRlbnRcLW9mXClcLW11cmRlcjsKK+iDjOmBk+iAjOmmsyA+IHJ1blwtaW5cLXRoZVwtb3Bwb3NpdGVcLWRpcmVjdGlvbjsKK+S9jue0muiqnuiogCA+IGxvd1wtbGV2ZWxcLVwoY29tcHV0ZXJcKVwtbGFuZ3VhZ2U7CivkuI3lkI3kuIDmlocgPiB3aXRob3V0XC1hXC1wZW5ueVwtdG9cLW9uZScnc1wtbmFtZTsKK+S4jeeEoeWwj+ijnCA+IG5vdFwtYmVcLXdpdGhvdXRcLXNvbWVcLWFkdmFudGFnZTsKK+WKoOW8t+euoeWItiA+IHRvXC10aWdodGVuXC1jb250cm9sXC1cKG92ZXJcLXN0aFwpOwor5Lq65rCR5pel5aCxID4gcmVubWluXC1yaWJhb1wtXChwZW9wbGUnJ3NcLWRhaWx5XCk7Civplovlp4vku6XliY0gPiBiZWZvcmVcLXRoZVwtYmVnaW5uaW5nXC1cKG9mXC1zdGhcKTsKK+S4jeitmOWkp+mrlCA+IGZhaWxcLXRvXC1zZWVcLXRoZVwtbGFyZ2VyXC1pc3N1ZXM7CivkuI3miZPoh6rmi5sgPiBjb25mZXNzXC13aXRob3V0XC1iZWluZ1wtcHJlc3NlZDsKK+S4gOiIieWFqeW+lyA+IGtpbGxcLXR3b1wtYmlyZHNcLXdpdGhcLW9uZVwtc3RvbmU7CivkuI3pgJ/kuYvlrqIgPiB1bmludml0ZWRcLW9yXC11bmV4cGVjdGVkXC1ndWVzdDsKK+S4jeW+l+imgemgmCA+IGZhaWxcLXRvXC1ncmFzcFwtdGhlXC1tYWluXC1wb2ludHM7CivpgLLooYzoqr/mn6UgPiB0b1wtY2FycnlcLW91dFwtYW5cLWludmVzdGlnYXRpb247CivlpKfooZflsI/lt7cgPiBsYXJnZVwtc3RyZWV0c1wtYW5kXC1zbWFsbFwtbGFuZXM7CivlkITlpKfou43ljYAgPiBcInRoZVwtZ3JlYXRlclwtbWlsaXRhcnlcLWFyZWFzXCI7CivlkbznsbLnvo7lnIsgPiB0b1wtY2FsbFwtb25cLXRoZVwtdW5pdGVkXC1zdGF0ZXM7CivosZDooaPotrPpo58gPiBoYXZlXC1hbXBsZVwtZm9vZFwtYW5kXC1jbG90aGluZzsKK+S4jeefpeWlveatuSA+IG5vdFwta25vd1wtd2hhdCcnc1wtZ29vZFwtZm9yXC1vbmU7CivntrLnrqHmjqXlj6MgPiBuZXR3b3JrXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivmoLnmk5rkuIrooaggPiBhY2NvcmRpbmdcLXRvXC10aGVcLWFib3ZlXC10YWJsZTsKK+Wci+mYsuWIqeebiiA+IFwobmF0aW9uYWxcKVwtZGVmZW5jZVwtaW50ZXJlc3RzOwor5pys5pyr5YCS572uID4gdGFrZVwtdGhlXC1icmFuY2hcLWZvclwtdGhlXC1yb290Owor5oqx6aCt55eb5ZOtID4gY3J5XC1vblwtZWFjaFwtb3RoZXInJ3NcLXNob3VsZGVyOwor5LiN5LiA6ICM6LazID4gYnlcLW5vXC1tZWFuc1wtYW5cLWlzb2xhdGVkXC1jYXNlOwor55m957SZ6buR5a2XID4gXCh3cml0dGVuXClcLWluXC1ibGFja1wtYW5kXC13aGl0ZTsKK+S4jeeijueOu+eSgyA+IHNoYXR0ZXJwcm9vZlwtb3JcLXNhZmV0eVwtZ2xhc3M7CivojqvoobfkuIDmmK8gPiBjYW5ub3RcLWRlY2lkZVwtd2hpY2hcLWlzXC1yaWdodDsKK+WFq+Wci+iBr+i7jSA+IHRoZVwtZWlnaHRcLXBvd2VyXC1hbGxpZWRcLWZvcmNlOwor5aSa5bm05Lul5L6GID4gZm9yXC1tYW55XC15ZWFyc1wtXChpblwtdGhlXC1wYXN0XCk7Civnn6XorZjnlKLmrIogPiBpbnRlbGxlY3R1YWxcLXByb3BlcnR5XC1yaWdodHM7CivoqpPmrbvkuI3pmY0gPiB0b1wtdm93XC10b1wtZmlnaHRcLXRvXC10aGVcLWRlYXRoOwor5rKS5pyJ5b+F6KaBID4gdGhlcmVcLWlzXC1ub1wtbmVlZFwtdG9cLVwoZG9cLXN0aFwpOwor5Lit5paH5buj5pKtID4gY2hpbmVzZVwtXChsYW5ndWFnZVwpXC1icm9hZGNhc3Q7Civnp7vmrpbmiYvooZMgPiBcKG9yZ2FuXClcLXRyYW5zcGxhbnRcLW9wZXJhdGlvbjsKK+a1quWtkOWbnumgrSA+IHRoZVwtcmV0dXJuXC1vZlwtYVwtcHJvZGlnYWxcLXNvbjsKK+S4jeaApeS5i+WLmSA+IGFcLW1hdHRlclwtb2ZcLW5vXC1ncmVhdFwtdXJnZW5jeTsKK+mbu+ejgeW5suaTviA+IGVsZWN0cm9tYWduZXRpY1wtaW50ZXJmZXJlbmNlOwor5LiN5piT5LmL6KuWID4gcGVyZmVjdGx5XC1zb3VuZFwtcHJvcG9zaXRpb247CivlkITnqK7lkITmqKMgPiB2YXJpb3VzXC1zb3J0c1wtYW5kXC12YXJpZXRpZXM7CivkuI3pgZXovrLmmYIgPiBub3RcLW1pc3NcLXRoZVwtZmFybWluZ1wtc2Vhc29uOwor5LqC5L2c5rG65a6aID4gdG9cLW1ha2VcLWFyYml0cmFyeVwtZGVjaXNpb25zOwor5aSn5Zmo5pma5oiQID4gZ3JhbmRcLXRhbGVudHNcLW1hdHVyZVwtc2xvd2x5Owor5oyJ5q2l5bCx54+tID4gZm9sbG93XC10aGVcLXByZXNjcmliZWRcLW9yZGVyOwor5aSW5Lqk6YOo6ZW3ID4gbWluaXN0ZXJcLW9mXC1mb3JlaWduXC1hZmZhaXJzOwor6IiJ5LiW55+a55uuID4gYXR0cmFjdFwtd29ybGR3aWRlXC1hdHRlbnRpb247CivnjajmlrflsIjooYwgPiBhY3RcLWluXC1hblwtYXJiaXRyYXJ5XC1mYXNoaW9uOwor56eB5Lq66ZGw5YyZID4gcHJpdmF0ZVwta2V5XC1cKGluXC1lbmNyeXB0aW9uXCk7CivljbvkuYvkuI3mga0gPiB0b1wtcmVmdXNlXC13b3VsZFwtYmVcLWltcG9saXRlOwor6aas5aSq56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1tYXR0aGV3Owor6Zu76Kmx5pyD6K2wID4gXCh0ZWxlcGhvbmVcKVwtY29uZmVyZW5jZVwtY2FsbDsKK+S4jeiQveeqoOiHvCA+IG5vdFwtZm9sbG93XC10aGVcLWJlYXRlblwtdHJhY2s7CivmjInnhafoqIjlioMgPiBhY2NvcmRpbmdcLXRvXC1cKHRoZVwpXC1wbGFuXC1cLlwuXC47Civkuovmg4XopoHlgZogPiB0aGluZ1wtdGhhdFwtbmVlZHNcLXRvXC1iZVwtZG9uZTsKK+S4gOi3r+W5s+WuiSA+IHRvXC1oYXZlXC1hXC1wbGVhc2FudFwtam91cm5leTsKK+e0kOe0hOaZguWgsSA+IG5ld1wteW9ya1wtdGltZXNcLVwobmV3c3BhcGVyXCk7CivluLjllY/llY/poYwgPiBmcmVxdWVudGx5XC1hc2tlZFwtcXVlc3Rpb25zOwor55m+5a2U5Y2D55ihID4gcmlkZGxlZFwtd2l0aFwtZ2FwaW5nXC13b3VuZHM7CivlhbXpgKPnpo3ntZAgPiByYXZhZ2VkXC1ieVwtc3VjY2Vzc2l2ZVwtd2FyczsKK+mVt+acn+S7peS+hiA+IGV2ZXJcLXNpbmNlXC1hXC1sb25nXC10aW1lXC1hZ287CivlronlrrbokL3miLYgPiBtYWtlXC1vbmUnJ3NcLWhvbWVcLWluXC1hXC1wbGFjZTsKK+WFpeacqOS4ieWIhiA+IHdyaXR0ZW5cLWluXC1hXC1mb3JjZWZ1bFwtaGFuZDsKK+WIhuaZguWkmuW3pSA+IHRpbWVcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7CivmoLnmt7HokoLlm7ogPiBkZWVwXC1yb290ZWRcLVwocHJvYmxlbVwsXC1ldGNcKTsKK+aYn+WztuaXpeWgsSA+IHNpbmdcLXRhb1wtZGFpbHlcLVwobmV3c3BhcGVyXCk7Civpm7vkv6HmnI3li5kgPiB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2U7CivlhazplovpkbDljJkgPiBwdWJsaWNcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor6Zu75L+h57ay6LevID4gdGVsZWNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor5oSf5p+T5Lq65pW4ID4gbnVtYmVyXC1vZlwtaW5mZWN0ZWRcLXBlcnNvbnM7Civnmb7mraXnqb/mpYogPiBzaG9vdFwtd2l0aFwtZ3JlYXRcLXByZWNpc2lvbjsKK+WHuuePvuaEj+WkliA+IFwodG9cLWFwcGVhclwpXC11bmV4cGVjdGVkXChseVwpOwor5LiA6Ke45Y2z55m8ID4gY291bGRcLWhhcHBlblwtYXRcLWFueVwtbW9tZW50Owor57qW6Iqv55u05b6RID4gY29yZVwtZGlhbWV0ZXJcLVwob2ZcLWFcLWZpYmVyXCk7CivpgLLooYzkuqTmmJMgPiB0b1wtY2FycnlcLW91dFwtYVwtdHJhbnNhY3Rpb247CivliKXlh7rlv4Poo4EgPiBhZG9wdFwtYW5cLW9yaWdpbmFsXC1hcHByb2FjaDsKK+eZvueZvOeZvuS4rSA+IGV2ZXJ5XC1zaG90XC1oaXRzXC10aGVcLXRhcmdldDsKK+S4jeS6ouS4jeWNkSA+IG5laXRoZXJcLWhhdWdodHlcLW5vclwtaHVtYmxlOwor55m95aOB54Sh55GVID4gaW1wZWNjYWJsZVwtbW9yYWxcLWludGVncml0eTsKK+aVl+WtkOWbnumgrSA+IHJldHVyblwtb2ZcLXRoZVwtcHJvZGlnYWxcLXNvbjsKK+ioquWVj+e+juWciyA+IHRvXC12aXNpdFwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+S4jeWkseaZguapnyA+IHNlaXplXC10aGVcLW9wcG9ydHVuZVwtbW9tZW50Owor5bCO5b2I5r2b6ImHID4gXChndWlkZWRcKVwtbWlzc2lsZVwtc3VibWFyaW5lOwor5a6J5aaC5rOw5bGxID4gYXNcLXNlY3VyZVwtYXNcLW1vdW50XC10YWlzaGFuOwor5LiN576p5LmL6LKhID4gaWxsXC1nb3R0ZW5cLXdlYWx0aFwtb3JcLWdhaW5zOwor6YeN6KaB55qE5pivID4gaXRcLWlzXC1pbXBvcnRhbnRcLVwodGhhdFwpXC1cLlwuXC47CivpgJrkv6HmioDooZMgPiBjb21tdW5pY2F0aW9uc1wtdGVjaG5vbG9neTsKK+WkluWMr+WEsuWCmSA+IGZvcmVpZ25cLWV4Y2hhbmdlXC1yZXNlcnZlczsKK+WLnuWLleaVmemkiiA+IHJlZWR1Y2F0aW9uXC10aHJvdWdoXC1sYWJvcjsKK+S4jei+rei+m+iLpiA+IG1ha2VcLW5vdGhpbmdcLW9mXC1oYXJkc2hpcHM7CivnqIvlvI/nkIblk6EgPiBwcm9ncmFtXC1tYW5hZ2VyXC1cKHdpbmRvd3NcKTsKK+awkeS4u+m7qOS6uiA+IGFcLWRlbW9jcmF0aWNcLXBhcnR5XC1tZW1iZXI7CivkuInljYHlubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtdGhpcnR5XC15ZWFyczsKK+aKgOihk+eZvOWxlSA+IHRlY2hub2xvZ2ljYWxcLWRldmVsb3BtZW50Owor6auY562J5a245qChID4gY29sbGVnZXNcLWFuZFwtdW5pdmVyc2l0aWVzOwor5bq35raF54uE5qC8ID4gY29ubmVjdGljdXRcLVwoc3RhdGVcLWluXC11c1wpOwor5Zau6YCj5o6l56uZID4gc2luZ2xlXC1hdHRhY2htZW50XC1zdGF0aW9uOwor56ym5ZCI5qiZ5rqWID4gdG9cLWNvbXBseVwtd2l0aFwtYVwtc3RhbmRhcmQ7CivnpLrlqIHpgYrooYwgPiBhXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+Wkp+aVteeVtuWJjSA+IGNvbmZyb250XC1hXC1wb3dlcmZ1bFwtZW5lbXk7CivnoJToo73pgY7nqIsgPiBtYW51ZmFjdHVyaW5nXC1lbnZpcm9ubWVudDsKK+WPjeWUh+ebuOitjyA+IGFuc3dlclwtYmFja1wtc2FyY2FzdGljYWxseTsKK+aguOi9n+eCuOapnyA+IG51Y2xlYXJcLWJvbWJlclwtXChhaXJjcmFmdFwpOwor5LiN5b6X5Lq65b+DID4gbm90XC1lbmpveVwtcG9wdWxhclwtc3VwcG9ydDsKK+ebtOiogOS4jeirsSA+IHNwZWFrXC1mcmFua2x5XC1hbmRcLWJsdW50bHk7Civmma/lsbHlhazlnJIgPiBuYW1lXC1vZlwtYVwtcGFya1wtaW5cLWJlaWppbmc7CivpnaLoh6jlm7Dpm6MgPiB0b1wtYmVcLWZhY2VkXC13aXRoXC1wcm9ibGVtczsKK+S4jeWLmeato+alrSA+IG5vdFwtZW5nYWdlXC1pblwtaG9uZXN0XC13b3JrOwor5oSb55CG5LiN55CGID4gbG9va1wtY29sZFwtYW5kXC1pbmRpZmZlcmVudDsKK+aUueWWhOmAmuioiiA+IHRvXC1pbXByb3ZlXC1jb21tdW5pY2F0aW9uczsKK+e4veWPg+isgOmVtyA+IFwobWlsaXRhcnlcKVwtY2hpZWZcLW9mXC1zdGFmZjsKK+iDjOS/oeajhOe+qSA+IGJyZWFrXC1mYWl0aFwtd2l0aFwtc29tZWJvZHk7Civot6jlnIvlhazlj7ggPiB0cmFuc25hdGlvbmFsXC1jb3Jwb3JhdGlvbjsKK+WFseWSjOm7qOS6uiA+IGFcLXJlcHVibGljYW5cLXBhcnR5XC1tZW1iZXI7Civppqzlj6/npo/pn7MgPiBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLW1hcms7Civmr4/lubTkuIDluqYgPiBvbmNlXC1hXC15ZWFyXC1cKGV2ZXJ5XC15ZWFyXCk7Civln5/lkI3oqLvlhoogPiBkb21haW5cLW5hbWVcLXJlZ2lzdHJhdGlvbjsKK+WFteiytOelnumAnyA+IHNwZWVkXC1pc1wtcHJlY2lvdXNcLWluXC13YXI7CivlpJrpgorlkIjkvZwgPiBtdWx0aWxhdGVyYWxcLWNvb3BlcmF0aW9uOwor5oqV5pS+5biC5aC0ID4gdG9cLXB1dFwtc3RoXC1vblwtdGhlXC1tYXJrZXQ7CivojZLnhKHkurrnhZkgPiBkZXNvbGF0ZVwtYW5kXC11bmluaGFiaXRlZDsKK+e0hOe/sOemj+mfsyA+IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtam9objsKK+WNsOatkOiqnuiogCA+IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7Civnv5Lku6XngrrluLggPiBiZVwtYWNjdXN0b21lZFwtb3JcLXVzZWRcLXRvOwor5YW16I2S6aas5LqCID4gdHVybW9pbFwtYW5kXC1jaGFvc1wtb2ZcLXdhcjsKK+S4jeWLleiBsuiJsiA+IG1haW50YWluXC1vbmUnJ3NcLWNvbXBvc3VyZTsKK+a1rum7numBi+eulyA+IGZsb2F0aW5nXC1wb2ludFwtb3BlcmF0aW9uOwor5YWn5pS/6YOo6ZW3ID4gbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yOwor6by76Yed55mC5rOVID4gbm9zZVwtYWN1cHVuY3R1cmVcLXRoZXJhcHk7CivomZvmk6znkrDlooMgPiB0aGVvcmhldGljYWxcLWVudmlyb25tZW50Owor5a+G5YiH5rOo5oSPID4gY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivkuI3mi5jkuIDmoLwgPiBub3RcLXN0aWNrXC10b1wtb25lXC1wYXR0ZXJuOwor5a6M5YWo5oeC5b6XID4gdG9cLXVuZGVyc3RhbmRcLWNvbXBsZXRlbHk7CivkuI3lubPliYfps7QgPiB3aGVyZVwtdGhlcmVcLWlzXC1pbmp1c3RpY2U7CivmoLjkuI3mk7TmlaMgPiBudWNsZWFyXC1ub25wcm9saWZlcmF0aW9uOwor5pO66ISr5Y2x5qmfID4gdG9cLWJyZWFrXC1vdXRcLW9mXC1hXC1jcmlzaXM7Civlr4zluIPos7TnibkgPiBmdWxsYnJpZ2h0XC1cKHNjaG9sYXJzaGlwXCk7CivmkqXkuoLlj43mraMgPiBicmluZ1wtb3JkZXJcLW91dFwtb2ZcLWNoYW9zOwor5a6J56ys5pav5bGxID4gdGhlXC1hbmRlc1wtbW91bnRhaW5cLXJhbmdlOwor55m+54WJ5oiQ6Yu8ID4gYmVcLXRlbXBlcmVkXC1pbnRvXC1hXC1zdGVlbDsKK+Wci+WLmeasoeWNvyA+IHVuZGVyXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+WNiuS/oeWNiueWkSA+IGhhbGZcLWJlbGlldmVcLFwtaGFsZlwtZG91YnQ7Civmi5TngavnvZDlhZIgPiBkZXRhY2hhYmxlXC1zdG92ZVwtY2hpbW5leTsKK+WPpOW4jOiHmOiqniA+IGFuY2llbnRcLWdyZWVrXC1cKGxhbmd1YWdlXCk7CivljYPntbLokKznuLcgPiBsaW5rZWRcLWluXC1jb3VudGxlc3NcLXdheXM7CivnoLTlnJ/lhbjnpq4gPiBncm91bmRcLWJyZWFraW5nXC1jZXJlbW9ueTsKK+aVmeWtuOapn+aniyA+IGVkdWNhdGlvbmFsXC1vcmdhbml6YXRpb247CivkuI3pgbrkvZnlipsgPiBzcGFyZVwtbm9cLXBhaW5zXC1vclwtZWZmb3J0Owor6KGo56S65pWs5oSPID4gcmVzcGVjdGZ1bFwsXC1zaG93XC1yZXNwZWN0Owor6Lev5Yqg56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1sdWtlOwor6YCa6KiK6KGM5qWtID4gY29tbXVuaWNhdGlvbnNcLWluZHVzdHJ5Owor5pys5L2N5Li7576pID4gc2VsZmlzaFwtZGVwYXJ0bWVudGFsaXNtOwor54K65omA5qyy54K6ID4gZG9cLXdoYXRldmVyXC1vbmVcLXBsZWFzZXM7CivkurrmsJHms5XpmaIgPiBwZW9wbGUnJ3NcLWNvdXJ0XC1cKG9mXC1sYXdcKTsKK+WVhualreapn+aniyA+IGNvbW1lcmNpYWxcLW9yZ2FuaXphdGlvbjsKK+S4jee/vOiAjOmjmyA+IGRpc2FwcGVhclwtd2l0aG91dFwtdHJhY2U7CivnlaLmga3nlaLmlawgPiByZXZlcmVudFwtYW5kXC1yZXNwZWN0ZnVsOwor56eR56CU5Lq65ZOhID4gXChzY2llbnRpZmljXClcLXJlc2VhcmNoZXI7CivpgI/pnLLmtojmga8gPiB0b1wtZGlzY2xvc2VcLWluZm9ybWF0aW9uOwor5Lit5ZyL5pmC5aCxID4gY2hpbmFcLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5aiB5buJ5pav5aChID4gd2lsbGlhbXNidXJnXC1cKHZpcmdpbmlhXCk7Civkvr/lrpzooYzkuosgPiBhY3RcLWF0XC1vbmUnJ3NcLWRpc2NyZXRpb247CivllYbmpa3nrqHnkIYgPiBidXNpbmVzc1wtYWRtaW5pc3RyYXRpb247Civln7rnpI7pgJ/njocgPiBiYXNpY1wtcmF0ZVwtXChhc1wtaW5cLWlzZG5cKTsKK+aJi+Wvq+itmOWIpSA+IGhhbmR3cml0aW5nXC1yZWNvZ25pdGlvbjsKK+aJi+Wvq+i+r+itmCA+IGhhbmR3cml0aW5nXC1yZWNvZ25pdGlvbjsKK+avlOavlOeahuaYryA+IGNhblwtYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5qOE6IiK5o+b5pawID4gdG9cLXR1cm5cLW92ZXJcLWFcLW5ld1wtbGVhZjsKK+S4jeaDheS5i+iriyA+IG15XC1wcmVzdW1wdHVvdXNcLXJlcXVlc3Q7Civpm5npgKPmjqXnq5kgPiBkdWFsXC1hdHRhY2htZW50XC1zdGF0aW9uOwor6KOc5Yqp57WE57mUID4gYXV4aWxpYXJ5XC1vcmdhbml6YXRpb25zOwor5Zue6aGn5q235Y+yID4gdG9cLWxvb2tcLWJhY2tcLWF0XC1oaXN0b3J5Owor6YCa6KiK5Y2U5a6aID4gY29tbXVuaWNhdGlvbnNcLXByb3RvY29sOwor5q2l5bGl57at6ImxID4gaGF2ZVwtZGlmZmljdWx0eVwtd2Fsa2luZzsKK+WFseWQjOevqemBuCA+IGNvbGxhYm9yYXRpdmVcLWZpbHRlcmluZzsKK+Wkp+mpmuWwj+aAqiA+IG11Y2hcLWZ1c3NcLWFib3V0XC1ub3RoaW5nOwor6YCa5L+h5Y2U5a6aID4gY29tbXVuaWNhdGlvbnNcLXByb3RvY29sOwor5YWs5a6J5a6Y5ZOhID4gcHVibGljXC1zYWZldHlcLW9mZmljaWFsczsKK+WCs+i8uOaKgOihkyA+IHRyYW5zbWlzc2lvblwtdGVjaG5vbG9neTsKK+WGsOWkqembquWcsCA+IGFcLXdvcmxkXC1vZlwtaWNlXC1hbmRcLXNub3c7CivmlL/lupzmqZ/mp4sgPiBnb3Zlcm5tZW50XC1vcmdhbml6YXRpb247CivkuI3lj6/nkIbllrsgPiBiZVwtaW1wZXJ2aW91c1wtdG9cLXJlYXNvbjsKK+iBt+alreS4reWtuCA+IHZvY2F0aW9uYWxcLWhpZ2hcLXNjaG9vbDsKK+iHqumjn+WFtuaenCA+IHJlYXBcLXdoYXRcLW9uZVwtaGFzXC1zb3duOwor5LiN6Zyy6IGy6ImyID4gbm90XC1zaG93XC1vbmUnJ3NcLWZlZWxpbmc7CivlpKfnhZ7poqjmma8gPiBkYW1wZW5pbmdcLW9uZScnc1wtc3Bpcml0Owor576F5pu86Kqe5pePID4gcm9tYW5jZVwtbGFuZ3VhZ2VcLWdyb3VwOwor5a2w6IO955Sf5benID4gcHJhY3RpY2VcLW1ha2VzXC1wZXJmZWN0Owor5Ze35Ze35b6F5ZO6ID4gY3J5XC1waXRlb3VzbHlcLWZvclwtZm9vZDsKK+S4jeeXm+S4jeeXkiA+IHNjcmF0Y2hpbmdcLXRoZVwtc3VyZmFjZTsKK+iBr+e2sueSsOWigyA+IG5ldHdvcmtpbmdcLWVudmlyb25tZW50Owor6Kej6YeL5Z+36KGMID4gaW50ZXJwcmV0ZWRcLVwoY29tcHV0ZXJcKTsKK+S4jei/keS6uuaDhSA+IG5vdFwtYW1lbmFibGVcLXRvXC1yZWFzb247CivmlL/msrvmqZ/mp4sgPiBwb2xpdGljYWxcLW9yZ2FuaXphdGlvbjsKK+WPpuecvOebuOeciyA+IHRvXC12aWV3XC1pblwtYVwtbmV3XC1saWdodDsKK+S/oeaBr+aKgOihkyA+IGluZm9ybWF0aW9uXC10ZWNobm9sb2d5Owor5a6J5YWo6ICD5oWuID4gc2VjdXJpdHlcLWNvbnNpZGVyYXRpb247Civkv6Hmga/nrqHnkIYgPiBpbmZvcm1hdGlvblwtbWFuYWdlbWVudDsKK+i5pui5pui3s+i3syA+IGJvdW5jaW5nXC1hbmRcLXZpdmFjaW91czsKK+mAmuS/oeWvhuW6piA+IGNvbW11bmljYXRpb25zXC1kZW5zaXR5Owor5rKS5pyJ5beu5YilID4gdGhlcmVcLWlzXC1ub1wtZGlmZmVyZW5jZTsKK+S4jeiogOiAjOWWuyA+IGl0XC1nb2VzXC13aXRob3V0XC1zYXlpbmc7CivmraXoqr/kuIDoh7QgPiB0b1wtYmVcLXVuaXRlZFwtaW5cLWFjdGlvbjsKK+mAmuioiumAmumBkyA+IGNvbW11bmljYXRpb25zXC1jaGFubmVsOwor5o6h6Kiq6KiY6ICFID4gaW52ZXN0aWdhdGl2ZVwtcmVwb3J0ZXI7Civmr5TovIPogIzoqIAgPiBjb21wYXJhdGl2ZWx5XC1zcGVha2luZzsKK+mboumWi+aVhemEiSA+IHRvXC1sZWF2ZVwtb25lJydcLWhvbWVsYW5kOwor6YCa5L+h57ay57WhID4gY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivmlbjlrZfpgJrkv6EgPiBkaWdpdGFsXC1jb21tdW5pY2F0aW9uczsKK+WFseeUoum7qOWToSA+IGNvbW11bmlzdFwtcGFydHlcLW1lbWJlcjsKK+e2sui3r+aetuaniyA+IG5ldHdvcmtcLWluZnJhc3RydWN0dXJlOwor5oqA6KGT5oOF5aCxID4gaW5mb3JtYXRpb25cLXRlY2hub2xvZ3k7Civnvo7lnIvkuYvpn7MgPiB2b2ljZVwtb2ZcLWFtZXJpY2FcLXJhZGlvOwor5qiZ5rqW57WE57mUID4gc3RhbmRhcmRzXC1vcmdhbml6YXRpb247CivnjajmlKzluILloLQgPiB0b1wtbW9ub3BvbGl6ZVwtYVwtbWFya2V0Owor5b2s5b2s5pyJ56auID4gcmVmaW5lZFwtYW5kXC1jb3VydGVvdXM7CivlrozlhajlhbzlrrkgPiBjb21wbGV0ZWx5XC1jb21wYXRpYmxlOwor6KeA5ris6KGb5pifID4gb2JzZXJ2YXRpb25cLXNhdGVsbGl0ZTsKK+S4ieiQrOS4g+WNgyA+IHRoaXJ0eVwtc2V2ZW5cLXRob3VzYW5kOwor5aSn6LWm5ZyL6ZqbID4gYW1uZXN0eVwtaW50ZXJuYXRpb25hbDsKK+aDheWgseWumOWToSA+IGludGVsbGlnZW5jZVwtb2ZmaWNpYWw7Civpm7vno4HlmarogbIgPiBlbGVjdHJvbWFnbmV0aWNcLW5vaXNlOwor6ZW36YCU57ay6LevID4gbG9uZ1wtZGlzdGFuY2VcLW5ldHdvcms7Civmr5ToibLliIbmnpAgPiBjb2xvcmltZXRyaWNcLWFuYWx5c2lzOwor5bqr54i+5b635Lq6ID4ga3VyZGlzaFwtcGVyc29uXHxwZW9wbGU7Civlvq7ou5/lhazlj7ggPiBtaWNyb3NvZnRcLWNvcnBvcmF0aW9uOwor5LiN6K2Y5oqs6IiJID4gZmFpbFwtdG9cLWFwcHJlY2lhdGVcLXNiOwor5bit5Y235Lqe5rSyID4gdG9cLXN3ZWVwXC10aHJvdWdoXC1hc2lhOwor5L2c5qWt55Kw5aKDID4gb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+aZuuaFp+eUouasiiA+IGludGVsbGVjdHVhbFwtcHJvcGVydHk7Civpq5jntJrlrpjlk6EgPiBoaWdoXC1yYW5raW5nXC1vZmZpY2lhbDsKK+WNiuWknOS4ieabtCA+IGluXC10aGVcLWRlcHRoXC1vZlwtbmlnaHQ7Civlj5bmtojnpoHku6QgPiB0b1wtbGlmZVwtYVwtcHJvaGliaXRpb247Civlr6bpmpvmh4nnlKggPiBwcmFjdGljYWxcLWFwcGxpY2F0aW9uOwor55Sf55Si6IO95YqbID4gbWFudWZhY3R1cmluZ1wtYWJpbGl0eTsKK+e4vee1semBuOiIiSA+IHByZXNpZGVudGlhbFwtZWxlY3Rpb247CivkuI3mk4fmiYvmrrUgPiBieVwtZmFpclwtbWVhbnNcLW9yXC1mb3VsOwor5ZyL6Zqb5qiZ5rqWID4gaW50ZXJudGlvbmFsXC1zdGFuZGFyZDsKK+mHkemZteWkp+WtuCA+IHVuaXZlcnNpdHlcLW9mXC1uYW5raW5nOwor55Ww6LOq57ay6LevID4gaGV0ZXJvZ2VuZW91c1wtbmV0d29yazsKK+eZveaJi+i1t+WutiA+IGJ1aWxkXC11cFwtZnJvbVwtbm90aGluZzsKK+iRoeiQhOeJmeiqniA+IHBvcnR1Z3Vlc2VcLVwobGFuZ3VhZ2VcKTsKK+S4gOiHguS5i+WKmyA+IFwobGVuZFwpXC1hXC1oZWxwaW5nXC1oYW5kOwor5LiN5YCr5LiN6aGeID4gbmVpdGhlclwtZmlzaFwtbm9yXC1mb3dsOwor5Z+65pys5Y6f55CGID4gZnVuZGFtZW50YWxcLXByaW5jaXBsZTsKK+aSq+mkiuaIkOS6uiA+IHRvXC1icmluZ1wtdXBcLVwoYVwtY2hpbGRcKTsKK+mAmuS/oeacjeWLmSA+IGNvbW11bmljYXRpb25cLXNlcnZpY2U7CivlnIvnh5/kvIHmpa0gPiBuYXRpb25hbGl6ZWRcLWluZHVzdHJ5Owor5LqM5Y2B5YWr6JmfID4gMjh0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+acrOWbuuaeneamriA+IHdoZW5cLXRoZVwtcm9vdFwtaXNcLWZpcm07CivlgrPovLjoqK3lgpkgPiB0cmFuc21pc3Npb25cLWZhY2lsaXR5Owor5LiN5piv5ZGz5YWSID4gbm90XC10aGVcLXJpZ2h0XC1mbGF2b3VyOwor5pON5L2c55Kw5aKDID4gb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+maqOapn+aZgumWkyA+IHJhbmRvbVwtcGVyaW9kXC1vZlwtdGltZTsKK+WCs+i8uOi3nemboiA+IHRyYW5zbWlzc2lvblwtZGlzdGFuY2U7Civlj6botbfniJDngbYgPiB0b1wtc3RhcnRcLWZyb21cLXNjcmF0Y2g7CivpppbohabmnIPorbAgPiBsZWFkZXJzaGlwXC1jb25mZXJlbmNlOwor5aaC5Ye65LiA6L2NID4gYmVcLXByZWNpc2VseVwtdGhlXC1zYW1lOwor55+u5p2G5ZOB56iuID4gc2hvcnRcLXN0YWxrZWRcLXZhcmlldHk7CivpgYvnrpfnkrDlooMgPiBvcGVyYXRpbmdcLWVudmlyb25tZW50Owor57We55uh6IWm5rGBID4gdG9cLXdyYWNrXC1vbmUnJ3NcLWJyYWluczsKK+WFieejgeein+apnyA+IG1hZ25ldG9cLW9wdGljYWxcLWRyaXZlOwor5ZyL5pyJ5LyB5qWtID4gbmF0aW9uYWxpemVkXC1idXNpbmVzczsKK+e2reWQvueIvuS6uiA+IHVpZ2h1clwtcGVyc29uXHxwZW9wbGU7CivplovpmaTlrbjnsY0gPiB0b1wtZXhwZWxcLWZyb21cLXNjaG9vbDsKK+mmluW4reS7o+ihqCA+IGNoaWVmXC1yZXByZXNlbnRhdGl2ZTsKK+eJqeeQhue1kOaniyA+IHBoeXNpY2FsXC1jb21wb3NpdGlvbjsKK+Wci+acg+itsOmVtyA+IHNwZWFrZXJcLW9mXC10aGVcLWhvdXNlOwor5oeJ55So5bmz5Y+wID4gYXBwbGljYXRpb25cLXBsYXRmb3JtOwor5YyI54mZ5Yip6KqeID4gaHVuZ2FyaWFuXC1cKGxhbmd1YWdlXCk7CivkuI3kv6Hku7vmoYggPiBub1wtY29uZmlkZW5jZVwtbW90aW9uOwor5pS55ZaE6Zec5L+CID4gdG9cLWltcHJvdmVcLXJlbGF0aW9uczsKK+WBnOeBq+WNlOitsCA+IGNlYXNlXC1maXJlXC1hZ3JlZW1lbnQ7CivkuozljYHkuozomZ8gPiAyMlwtbmRcLWRheVwtb2ZcLWFcLW1vbnRoOwor56K65pyJ5YW25LqLID4gXChjb25maXJtXC10b1wtYmVcKVwtdHJ1ZTsKK+Wkp+Wei+S8gealrSA+IGxhcmdlXC1zY2FsZVwtaW5kdXN0cnk7Civkvb/lvpLooYzlgrMgPiBhY3RzXC1vZlwtdGhlXC1hcG9zdGxlczsKK+W/heS4jeWPr+WwkSA+IGFic29sdXRlbHlcLW5lY2Vzc2FyeTsKK+S4jeWcqOipseS4iyA+IGJlXC1ub3RoaW5nXC1kaWZmaWN1bHQ7Civmh4nnlKjou5/ku7YgPiBhcHBsaWNhdGlvblwtc29mdHdhcmU7CivkuqTmj5vmioDooZMgPiBzd2l0Y2hpbmdcLXRlY2hub2xvZ3k7CivnqIvlvI/oqp7oqIAgPiBwcm9ncmFtbWluZ1wtbGFuZ3VhZ2U7CivnmbzooajogbLmmI4gPiB0b1wtaXNzdWVcLWFcLXN0YXRlbWVudDsKK+mbu+iFpuiqnuiogCA+IHByb2dyYW1taW5nXC1sYW5ndWFnZTsKK+mbu+WtkOW3pealrSA+IGVsZWN0cm9uaWNzXC1pbmR1c3RyeTsKK+WPrOmWi+acg+itsCA+IHRvXC1jYWxsXC1hXC1jb25mZXJlbmNlOwor5ZWG5qWt5oeJ55SoID4gYnVzaW5lc3NcLWFwcGxpY2F0aW9uOwor5q+P5rOB5oSI5LiLID4gc3RlYWRpbHlcLWRldGVyaW9yYXRlOwor6LuN5LqL5qmf5qeLID4gbWlsaXRhcnlcLWluc3RpdHV0aW9uOwor5Yik6JmV5q275YiRID4gdG9cLXNlbnRhbmNlXC10b1wtZGVhdGg7CivosqjluaPosrblgLwgPiBjdXJyZW5jeVwtZGV2YWx1YXRpb247CivmjInnhafms5XlvosgPiBhY2NvcmRpbmdcLXRvXC10aGVcLWxhdzsKK+WMl+WbnuatuOe3miA+IHRoZVwtdHJvcGljXC1vZlwtY2FuY2VyOwor6Zu75a2Q5YWD5Lu2ID4gZWxlY3Ryb25pY1wtY29tcG9uZW50Owor57aT5r+f6KGw6YCAID4gXChlY29ub21pY1wpXC1yZWNlc3Npb247CivlhYnkuozmpbXnrqEgPiBsaWdodFwtZW1pdHRpbmdcLWRpb2RlOwor5LiN56mp5bmz6KGhID4gdW5zdGFibGVcLWVxdWlsaWJyaXVtOwor5L+h5oGv6LOH5rqQID4gaW5mb3JtYXRpb25cLXJlc291cmNlOwor5YWt5Y2B5LqU5q2yID4gc2l4dHlcLWZpdmVcLXllYXJzXC1vbGQ7Civmmbrog73lpKfmqJMgPiBpbnRlbGxpZ2VudFwtYnVpbGRpbmc7CivlsJHmlbjmsJHml48gPiBtaW5vcml0eVwtbmF0aW9uYWxpdHk7CivlhajpnaLnpoHmraIgPiBjb21wbGV0ZVwtcHJvaGliaXRpb247CivpqL7ppqzlpKfou4ogPiBtdWxlXC1hbmRcLWhvcnNlXC1jYXJ0czsKK+e2k+a/n+eZvOWxlSA+IGVjb25vbWljXC1kZXZlbG9wbWVudDsKK+mAmuioiuezu+e1sSA+IGNvbW11bmljYXRpb25cLXN5c3RlbTsKK+S4jeS6jOazlemWgCA+IHRoZVwtb25lXC1hbmRcLW9ubHlcLXdheTsKK+eEoeWDueePjeePoCA+IHBlYXJsXC1vZlwtZ3JlYXRcLXByaWNlOwor5pyq5oiQ5bm06ICFID4gbWlub3JcLVwobm90XC1hblwtYWR1bHRcKTsKK+S8iuaWr+iYreWgoSA+IGlzbGFtYWJhZFwtXChwYWtpc3RhblwpOwor5LqM5Y2B5Zub6JmfID4gMjRcLXRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+Wkp+WkseaJgOacmyA+IGdyZWF0bHlcLWRpc3NhcG9pbnRlZDsKK+S8gealrembhuWcmCA+IGluZHVzdHJ5XC1hc3NvY2lhdGlvbjsKK+euoeeQhuaOpeWPoyA+IG1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+aHieeUqOi7n+mrlCA+IGFwcGxpY2F0aW9uXC1zb2Z0d2FyZTsKK+eUn+eUouioreWCmSA+IHByb2R1Y3Rpb25cLWVxdWlwbWVudDsKK+e+qeWLmeaVmeiCsiA+IGN1bXB1bHNvcnlcLWVkdWNhdGlvbjsKK+WCs+i8uOaOp+WItiA+IHRyYW5zbWlzc2lvblwtY29udHJvbDsKK+S4jeaHt+WlveaEjyA+IGhhcmJvdXJcLWV2aWxcLWRlc2lnbnM7CivoqLrmlrflip/og70gPiBkaWFnbm9zdGljXC1mdW5jdGlvbjsKK+WCs+i8uOWqkumrlCA+IHRyYW5zbWlzc2lvblwtbWVkaXVtOwor6LW35q275Zue55SfID4gYXJpc2VcLWZyb21cLXRoZVwtZGVhZDsKK+mrmOmajuiqnuiogCA+IGhpZ2hcLWxldmVsXC1sYW5ndWFnZTsKK+e+juWci+S6uuawkSA+IHRoZVwtYW1lcmljYW5cLXBlb3BsZTsKK+mdouWarumAo+aOpSA+IGNvbm5lY3Rpb25cLW9yaWVudGVkOwor5bCI5qWt5Lq65omNID4gZXhwZXJ0XC1cKGluXC1hXC1maWVsZFwpOwor54Sh57ir6YCj5o6lID4gc2VhbWxlc3NcLWNvbm5lY3Rpb247CivlgrPovLjlqpLos6ogPiB0cmFuc21pc3Npb25cLW1lZGl1bTsKK+WxpOimi+i/reWHuiA+IHRvXC1vY2N1clwtZnJlcXVlbnRseTsKK+e+juWci+S7peWkliA+IG91dHNpZGVcLW9mXC10aGVcLXVcLnNcLjsKK+atpOaZguatpOWIuyA+IGF0XC10aGlzXC12ZXJ5XC1tb21lbnQ7CivlpJrpu6jpgbjoiIkgPiBtdWx0aXBhcnR5XC1lbGVjdGlvbjsKK+WFiee6luihsOa4myA+IG9wdGljYWxcLWF0dGVudWF0aW9uOwor5LiN5Yue6ICM542yID4gcmVhcFwtd2l0aG91dFwtc293aW5nOwor5oqA6KGT5qiZ5rqWID4gdGVjaG5vbG9neVwtc3RhbmRhcmQ7CivplovnmbzpgY7nqIsgPiBkZXZlbG9wbWVudFwtcHJvY2VzczsKK+mAmuS/oeiyoOi8iSA+IGNvbW11bmljYXRpb25zXC1sb2FkOwor5bi46KaP5q2m5ZmoID4gY29udmVudGlvbmFsXC13ZWFwb247CivntbHoqIjntZDmnpwgPiBzdGF0aXN0aWNhbFwtcmVzdWx0czsKK+WPuOepuuimi+aFoyA+IGFcLWNvbW1vblwtb2NjdXJyZW5jZTsKK+S6jOWNgeS4g+iZnyA+IDI3dGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor6KaW6ICM5LiN6KaLID4gdHVyblwtYVwtYmxpbmRcLWV5ZVwtdG87Civpm7vlrZDmlofku7YgPiBlbGVjdHJvbmljXC1kb2N1bWVudDsKK+e1kOani+WKqeipniA+IHN0cnVjdHVyYWxcLXBhcnRpY2xlOwor5a2X5paf5Y+l6YWMID4gd2VpZ2hpbmdcLWV2ZXJ5XC13b3JkOwor5pS/5rK76Zec5L+CID4gcG9saXRpY2FsXC1yZWxhdGlvbnM7Civnm7jkupLlhbzlrrkgPiBtdXR1YWxseVwtY29tcGF0aWJsZTsKK+Wwi+S6i+eUn+mdniA+IHRvXC1sb29rXC1mb3JcLXRyb3VibGU7CivlsI/lr6vlrZfmr40gPiBsb3dlcmNhc2VcLVwobGV0dGVyc1wpOwor566h55CG5Yqf6IO9ID4gbWFuYWdlbWVudFwtZnVuY3Rpb247Civpq5jntJroqp7oqIAgPiBoaWdoXC1sZXZlbFwtbGFuZ3VhZ2U7CivliIbkvYjmjqfliLYgPiBkaXN0cmlidXRlZFwtY29udHJvbDsKK+e2sue1oeaHieeUqCA+IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor5qmf5qKw57+76K2vID4gbWFjaGluZVwtdHJhbnNsYXRpb247Civou5/ku7bmioDooZMgPiBzb2Z0d2FyZVwtdGVjaG5vbG9neTsKK+WltuayueiPnOiKsSA+IGNyZWFtZWRcLWNhdWxpZmxvd2VyOwor5YWJ55m86YCB5ZmoID4gb3B0aWNhbFwtdHJhbnNtaXR0ZXI7CivntrLntaHnkrDlooMgPiBuZXR3b3JrXC1lbnZpcm9ubWVudDsKK+aEm+S6uuWmguW3sSA+IGxvdmVcLW90aGVyc1wtYXNcLXNlbGY7CivpmL/mi4nlt7TppqwgPiBhbGFiYW1hXC1cKHVcLnNcLnN0YXRlXCk7CivntYLpu57lnLDlnYAgPiBkZXN0aW5hdGlvblwtYWRkcmVzczsKK+e2sui3r+aHieeUqCA+IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor55uu5qiZ5Zyw5Z2AID4gZGVzdGluYXRpb25cLWFkZHJlc3M7CivkuozljYHlha3omZ8gPiAyNnRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+S4reWci+eVtuWxgCA+IGNoaW5lc2VcLWF1dGhvcml0aWVzOwor5ZCI5oOF5ZCI55CGID4gcmVhc29uYWJsZVwtYW5kXC1mYWlyOwor55m+5L6d55m+6aCGID4gZG9jaWxlXC1hbmRcLW9iZWRpZW50Owor5Y2K6Ieq6ICV6L6yID4gc2VtaVwtdGVuYW50XC1wZWFzYW50Owor57ay6Lev55Kw5aKDID4gbmV0d29ya1wtZW52aXJvbm1lbnQ7Civlj43lvYjlsI7lvYggPiBhbnRpbWlzc2lsZVwtbWlzc2lsZTsKK+eUn+eUouioreaWvSA+IHByb2R1Y3Rpb25cLWZhY2lsaXR5Owor6JGh6JCE54mZ5Lq6ID4gcG9ydHVndWVzZVwtXChwZXJzb25cKTsKK+S4jee1leWmgue4tyA+IGhhbmdpbmdcLWJ5XC1hXC10aHJlYWQ7CivmioDooZPnn6XorZggPiB0ZWNobmljYWxcLWtub3dsZWRnZTsKK+e+juWci+i7jeS6uiA+IGFtZXJpY2FuXC1zZXJ2aWNlbWFuOwor5ZyL6Zqb6LK/5piTID4gaW50ZXJuYXRpb25hbFwtdHJhZGU7CivkurrpgKDoqp7oqIAgPiBhcnRpZmljaWFsXC1sYW5ndWFnZTsKK+S4jeaVl+S5i+WcsCA+IGludmluY2libGVcLXBvc2l0aW9uOwor6Ieq6Lqr5Yip55uKID4gb25lJydzXC1vd25cLWludGVyZXN0czsKK+ertueIreeUouWTgSA+IGNvbXBldGl0aXZlXC1wcm9kdWN0Owor6Z2e5qC45ZyL5a62ID4gbm9uXC1udWNsZWFyXC1jb3VudHJ5Owor5rCj5YCZ54uA5rOBID4gY2xpbWF0aWNcLWNvbmRpdGlvbnM7CivnkrDlvaLntZDmp4sgPiByaW5nXC1jb25maWd1cmF0aW9uOwor6KW/54+t54mZ6KqeID4gc3BhbmlzaFwtXChsYW5ndWFnZVwpOwor5LiA6Iis5L6G6KqqID4gZ2VuZXJhbGx5XC1zcGVha2luZzsKK+mmluiFpuacg+aZpCA+IGxlYWRlcnNoaXBcLW1lZXRpbmc7Civph43opoHllY/poYwgPiBhblwtaW1wb3J0YW50XC1pc3N1ZTsKK+mgmOWFiOWcsOS9jSA+IGxlYWRcKGluZ1wpXC1wb3NpdGlvbjsKK+S/oeaBr+ezu+e1sSA+IGluZm9ybWF0aW9uXC1zeXN0ZW07CivnqK7ml4/muIXmtJcgPiBcImV0aG5pY1wtY2xlYW5zaW5nXCI7CivkuZLkuZPnkIPmqq8gPiB0YWJsZVwtdGVubmlzXC10YWJsZTsKK+mdnuW4uOWatOWOsiA+IHRvXC1wdW5pc2hcLXNldmVyZWx5Owor5YWn6YOo57WQ5qeLID4gaW50ZXJuYWxcLXN0cnVjdXRyZTsKK+aVuOaTmumAmuS/oSA+IGRhdGFcLWNvbW11bmljYXRpb247CivpnZ7luLjmhJ/orJ0gPiBleHRyZW1lbHlcLWdyYXRlZnVsOwor5YWL6ZqG5oqA6KGTID4gY2xvbmluZ1wtdGVjaG5vbG9neTsKK+mbu+WtkOe2sue1oSA+IGVsZWN0cm9uaWNcLW5ldHdvcms7Civnmb3purXmm7jnlJ8gPiBwYWxlXC1mYWNlZFwtc2Nob2xhcjsKK+iyoeWLmei7n+S7tiA+IGZpbmFuY2lhbFwtc29mdHdhcmU7Civopb/nj63niZnmlocgPiBzcGFuaXNoXC1cKGxhbmd1YWdlXCk7Civlj6Tlhbjoqp7oqIAgPiBjbGFzc2ljYWxcLWxhbmd1YWdlOwor5YWp5YCL5Lit5ZyLID4gdHdvXC1jaGluYVwtXChwb2xpY3lcKTsKK+WkluS+huaKleizhyA+IGZvcmVpZ25cLWludmVzdG1lbnQ7CivlnJ/ogLPlhbboqp4gPiB0dXJraXNoXC1cKGxhbmd1YWdlXCk7CivkuI3mraPkuYvpoqggPiB1bmhlYWx0aHlcLXRlbmRlbmN5Owor6ZuG5oiQ6Zu76LevID4gaW50ZWdyYXRlZFwtY2lyY3VpdDsKK+mWiemXnOaUv+etliA+IGNsb3NlZFwtZG9vclwtcG9saWN5Owor57ay57Wh5oqA6KGTID4gbmV0d29ya1wtdGVjaG5vbG9neTsKK+S4reWci+aUv+W6nCA+IGNoaW5lc2VcLWdvdmVybm1lbnQ7Civku6TniYznkrDntrIgPiB0b2tlblwtcmluZ1wtbmV0d29yazsKK+Wkp+aYjum8jum8jiA+IGFcLWdyYW5kXC1yZXB1dGF0aW9uOwor6LK/5piT57WE57mUID4gdHJhZGVcLW9yZ2FuaXphdGlvbjsKK+mBjeWcsOmWi+iKsSA+IGJsb3Nzb21cLWV2ZXJ5d2hlcmU7CivntrLntaHnrqHnkIYgPiBuZXR3b3JrXC1tYW5hZ2VtZW50Owor6auY6YCf57ay57WhID4gaGlnaFwtc3BlZWRcLW5ldHdvcms7Civmm7jpnaLoqLHlj68gPiB3cml0dGVuXC1wZXJtaXNzaW9uOwor6IGv5ZCI5YWs5aCxID4gam9pbnRcLWFubm91bmNlbWVudDsKK+eglOeptuapn+aniyA+IHJlc2VhcmNoXC1pbnN0aXR1dGU7CivkvZvomK3oipLoqp4gPiBmbGVtaXNoXC1cKGxhbmd1YWdlXCk7CivlnIvmnIPorbDlk6EgPiBtZW1iZXJcLW9mXC1jb25ncmVzczsKK+acgOi/keW5vuW5tCA+IHRoZVwtbGFzdFwtZmV3XC15ZWFyczsKK+eyvuewoemWi+aUryA+IHRvXC1yZWR1Y2VcLXNwZW5kaW5nOwor5LiN572u5Y+v5ZCmID4gZGVjbGluZVwtdG9cLWNvbW1lbnQ7CivkuInop5LohbnluLYgPiBhdGhsZXRpY1wtc3VwcG9ydGVyOwor6KGb55Sf6Kit5YKZID4gc2FuaXRhcnlcLWVxdWlwbWVudDsKK+mAoOaIkOWVj+mhjCA+IHRvXC1jcmVhdGVcLWFuXC1pc3N1ZTsKK+e4veeahOS+huiqqiA+IGdlbmVyYWxseVwtc3BlYWtpbmc7CivoibLmg4XlsI/oqqogPiBwb3Jub2dyYXBoaWNcLW5vdmVsOwor6LK05aaD6YaJ6YWSID4gdGhlXC1kcnVua2VuXC1iZWF1dHk7Civpm7vlrZDkv6HnrrEgPiBlbGVjdHJvbmljXC1tYWlsYm94Owor5paw5Yqg5Z2h5Lq6ID4gc2luZ2Fwb3JlYW5cLXBlcnNvbjsKK+mpmua/pOmnrea1qiA+IHBlcmlsb3VzXC1zaXR1YXRpb247CivlpKflipvnmbzlsZUgPiB2aWdvcm91c1wtZXhwYW5zaW9uOwor5pyN5YuZ6KaP56ugID4gc2VydmljZVwtcmVndWxhdGlvbjsKK+erreeboeWFqOWKmyA+IHRvXC1zcGFyZVwtbm9cLWVmZm9ydDsKK+S4jeaKmOS4jeaJoyA+IGFcLWh1bmRyZWRcLXBlclwtY2VudDsKK+enkeeglOaoo+apnyA+IHJlc2VhcmNoXC1wcm90b3R5cGU7CivljYDln5/ntrLot68gPiBsb2NhbFwtYXJlYVwtbmV0d29yazsKK+eZvOmAgeWKn+eOhyA+IHRyYW5zbWlzc2lvblwtcG93ZXI7CivmlL/lupzorablkYogPiBnb3Zlcm5tZW50XC13YXJuaW5nOwor5qC46IO95oqA6KGTID4gbnVjbGVhclwtdGVjaG5vbG9neTsKK+aEj+Wkp+WIqeiqniA+IGl0YWxpYW5cLVwobGFuZ3VhZ2VcKTsKK+WMl+S6rOWkp+WtuCA+IGJlaWppbmdcLXVuaXZlcnNpdHk7CivljYDln5/ntrLntaEgPiBsb2NhbFwtYXJlYVwtbmV0d29yazsKK+e2sue1oeenkeaKgCA+IG5ldHdvcmtcLXRlY2hub2xvZ3k7Civoga/pgqbmlL/lupwgPiBmZWRlcmFsXC1nb3Zlcm5tZW50Owor6Zu76IWm5qWt6ICFID4gc29mdHdhcmVcLWRldmVsb3BlcjsKK+mAsuihjOe3qOeoiyA+IGV4ZWN1dGFibGVcLXByb2dyYW07CivomZvmk6zpgKPmjqUgPiB2aXJ0dWFsXC1jb25uZWN0aW9uOwor5a6i5oi25oeJ55SoID4gY2xpZW50XC1hcHBsaWNhdGlvbjsKK+S4jemaqOaEj+iCjCA+IGludm9sdW50YXJ5XC1tdXNjbGU7CivmjqHlj5bmjqrmlr0gPiB0b1wtYWRvcHRcLWFcLW1lYXN1cmU7Civlk4jkvZvlpKflrbggPiBoYXJ2YXJkXC11bml2ZXJzaXR5Owor57ay566h57O757WxID4gbmV0d29ya1wtbWFuYWdlbWVudDsKK+aal+e3muWFieitnCA+IGRhcmtcLWxpbmVcLXNwZWN0cnVtOwor6Zu76KaW56+A55uuID4gdGVsZXZpc2lvblwtcHJvZ3JhbTsKK+S4reWci+S6uuawkSA+IHRoZVwtY2hpbmVzZVwtcGVvcGxlOwor57Ch55+t5LuL57S5ID4gYnJpZWZcLWludHJvZHVjdGlvbjsKK+a1t+eBo+aIsOeIrSA+IFwocGVyc2lhblwpXC1ndWxmXC13YXI7CivlnLDnkIPlpKfmsKMgPiBlYXJ0aCcnc1wtYXRtb3NwaGVyZTsKK+ewoeimgeS7i+e0uSA+IGJyaWVmXC1pbnRyb2R1Y3Rpb247CivmnI3li5nos6rph48gPiBxdWFsaXR5XC1vZlwtc2VydmljZTsKK+S4jeaUu+iHquegtCA+IGNvbGxhcHNlXC1vZlwtaXRzZWxmOwor5paH5YyW5YKz57WxID4gY3VsdHVyYWxcLXRyYWRpdGlvbjsKK+e2sue1oemBt+enuyA+IG5ldHdvcmtcLW1pZ3JhdGlvbjsKK+mbu+iFpui7n+S7tiA+IGNvbXB1dGVyXC1zb2Z0d2FyZTsKK+izh+aWmeWCs+i8uCA+IGRhdGFcLXRyYW5zbWlzc2lvbjsKK+Wci+mYsumDqOmVtyA+IGRlZmVuY2VcLXNlY3JldGFyeTsKK+W3qOWkp+Wjk+WKmyA+IGVub3Jtb3VzXC1wcmVzc3VyZTsKK+aVuOaTmuWCs+i8uCA+IGRhdGFcLXRyYW5zbWlzc2lvbjsKK+aUv+ayu+awo+WAmSA+IHBvbGl0aWNhbFwtY2xpbWF0ZTsKK+W7o+Wfn+e2sui3ryA+IHdpZGVcLWFyZWFcLW5ldHdvcms7CivmlZnlj4vlpKfmnIMgPiBjaHVyY2hcLWNvbmZlcmVuY2U7Civou43kuovlipvph48gPiBtaWxpdGFyeVwtc3RyZW5ndGg7Civpm7voqbHmnI3li5kgPiB0ZWxlcGhvbmVcLXNlcnZpY2U7CivpmL/mi4nkvK/oqp4gPiBhcmFiaWNcLVwobGFuZ3VhZ2VcKTsKK+aUr+afseeUoualrSA+IG1haW5zdGF5XC1pbmR1c3RyeTsKK+WkmuermeWcsOWdgCA+IG11bHRpY2FzdFwtYWRkcmVzczsKK+e2k+a/n+WuieWFqCA+IGVjb25vbWljXC1zZWN1cml0eTsKK+WkluS6pOmiqOazoiA+IGRpcGxvbWF0aWNcLWNyaXNpczsKK+mbu+ipsee2sui3ryA+IHRlbGVwaG9uZVwtbmV0d29yazsKK+WPjemBjuS+huiqqiA+IG9uXC10aGVcLW90aGVyXC1oYW5kOwor5q2Q5rSy6Kqe6KiAID4gZXVyb3BlYW5cLWxhbmd1YWdlOwor57ay57Wh6Kit5YKZID4gbmV0d29ya1wtZXF1aXBtZW50Owor5pel55uK5aKe5YqgID4gdG9cLWluY3JlYXNlXC1kYWlseTsKK+e2k+a/n+WKm+mHjyA+IGVjb25vbWljXC1zdHJlbmd0aDsKK+iuiuacrOWKoOWOsiA+IGJlY29tZVwtYWdncmF2YXRlZDsKK+WFiee6luaOpeWPoyA+IG9wdGljYWxcLWludGVyZmFjZTsKK+WVhualreihjOeCuiA+IGJ1c2luZXNzXC1hY3Rpdml0eTsKK+i7jeiyu+mWi+aUryA+IG1pbGl0YXJ5XC1zcGVuZGluZzsKK+i7n+S7tuW5s+iHuiA+IHNvZnR3YXJlXC1wbGF0Zm9ybTsKK+aMieWclue0oumppSA+IHRyeVwtdG9cLWxvY2F0ZVwtc3RoOwor5biM5Lyv5L6G6KqeID4gaGVicmV3XC1cKGxhbmd1YWdlXCk7CivplovnmbzpgLHmnJ8gPiBkZXZlbG9wbWVudFwtY3ljbGU7CivpmL/mi4nkvK/mlocgPiBhcmFiaWNcLVwobGFuZ3VhZ2VcKTsKK+aIsOeVpeWkpeS8tCA+IHN0cmF0ZWdpY1wtcGFydG5lcjsKK+mdnOiEiOWQuOavkiA+IGludHJhdmVuZW91c1wtZHJ1ZzsKK+eEoeacn+W+kuWIkSA+IGxpZmVcLWltcHJpc29ubWVudDsKK+eZvuWIhuS5i+eZviA+IGFcLWh1bmRyZWRcLXBlcmNlbnQ7CivokIrmuqvmlq/ln7ogPiBcKG1vbmljYVwpXC1sZXdpbnNreTsKK+WCs+i8uOacjeWLmSA+IHRyYW5zcG9ydFwtc2VydmljZTsKK+e2nOWQiOW4g+e3miA+IGludGVncmF0ZWRcLXdpcmluZzsKK+WCs+i8uOmAmumBkyA+IHRyYW5zcG9ydFwtY2hhbm5lbDsKK+aUv+W6nOmDqOmWgCA+IGdvdmVybm1lbnRcLWJyYW5jaDsKK+aWsOiBnumAseWIiiA+IG5ld3N3ZWVrXC1tYWdhemluZTsKK+ebtOaOpeertueIrSA+IGRpcmVjdFwtY29tcGV0aXRvcjsKK+mGq+eZgue2k+mplyA+IG1lZGljYWxcLWV4cGVydGlzZTsKK+W7o+aSreWcsOWdgCA+IGJyb2FkY2FzdFwtYWRkcmVzczsKK+eUn+eJqeatpuWZqCA+IGJpb2xvZ2ljYWxcLXdlYXBvbjsKK+aal+eEoeWkqeaXpSA+IGNvbXBsZXRlXC1kYXJrbmVzczsKK+mrmOe0mueglOeptiA+IGFkdmFuY2VkXC1yZXNlYXJjaDsKK+iHquS4u+ezu+e1sSA+IGF1dG9ub21vdXNcLXN5c3RlbTsKK+eZvemHkea8ouWuriA+IGJ1Y2tpbmdoYW1cLXBhbGFjZTsKK+mBi+ihjOeLgOazgSA+IG9wZXJhdGlvbmFsXC1zdGF0ZTsKK+WbsOmbo+WcqOaWvCA+IHRoZVwtcHJvYmxlbVwtaXNcLlwuXC47Civml6XogLPmm7zoqp4gPiBnZXJtYW5pY1wtbGFuZ3VhZ2U7CivlgrPovLjljZTlrpogPiB0cmFuc2ZlclwtcHJvdG9jb2w7CivlpKfliIDpl4rmlqcgPiBib2xkXC1hbmRcLWRlY2lzaXZlOwor54m55Yil5b6F6YGHID4gc3BlY2lhbFwtdHJlYXRtZW50Owor5bCI55So57ay6LevID4gZGVkaWNhdGVkXC1uZXR3b3JrOwor5pWY5Yip5Lqe5paHID4gc3lyaWFjXC1cKGxhbmd1YWdlXCk7CivlgrPovLjpgJ/njocgPiB0cmFuc21pc3Npb25cLXJhdGU7CivkuI3mraHogIzmlaMgPiBwYXJ0XC1vblwtYmFkXC10ZXJtczsKK+S4reiPr+awkeWciyA+IHJlcHVibGljXC1vZlwtY2hpbmE7CivkuKbpp5XpvYrpqYUgPiBydW5cLW5lY2tcLWFuZFwtbmVjazsKK+mbo+S7peaHieS7mCA+IGhhcmRcLXRvXC1kZWFsXC13aXRoOwor56Gs5Lu25bmz6Ie6ID4gaGFyZHdhcmVcLXBsYXRmb3JtOwor5a6Y5pa56Kqe6KiAID4gb2ZmaWNpYWxcLWxhbmd1YWdlOwor5YyX5Lqs6L+R6YOKID4gc3VidXJiXC1vZlwtYmVpamluZzsKK+S4gOiIrOWOn+WJhyA+IGdlbmVyYWxcLXByaW5jaXBsZTsKK+WwhOmgu+W5suaTviA+IHJhZGlvXC1pbnRlcmZlcmVjZTsKK+Wbm+mdouWFq+aWuSA+IGluXC1hbGxcLWRpcmVjdGlvbnM7CivlnIvlrrblronlhaggPiBuYXRpb25hbFwtc2VjdXJpdHk7CivmtbfmtIvmuqvluqYgPiBvY2VhblwtdGVtcGVyYXR1cmU7CivntrLpmpvljZTlrpogPiBpbnRlcm5ldFwtcHJvdG9jb2w7CivlpJbkuqTpl5zkv4IgPiBmb3JlaWduXC1yZWxhdGlvbnM7Civlt7TlhYvlpI/osawgPiBiZXJrc2hpcmVcLVwoc3dpbmVcKTsKK+S4jeayu+S5i+eXhyA+IGluY3VyYWJsZVwtZGlzZWFzZTsKK+alreeVjOaomea6liA+IGluZHVzdHJ5XC1zdGFuZGFyZDsKK+mZuOWfuuWwjuW9iCA+IGxhbmRcLWJhc2VkXC1taXNzbGU7Civopb/nlarpm4Xmm7ggPiBib29rXC1vZlwtemVwaGFuaWFoOwor5bCI5a626KmV6KuWID4gZXhwZXJ0XC1jb21tZW50YXJ5Owor5ZqH5b6X55m85oqWID4gdHJlbWJsZVwtd2l0aFwtZmVhcjsKK+Wbm+mWgOi9jui7iiA+IHNlZGFuXC1cKG1vdG9yXC1jYXJcKTsKK+aEm+S4jemHi+aJiyA+IGZvbmRsZVwtYWRtaXJpbmdseTsKK+W+numgreWIsOiFsyA+IGZyb21cLWhlYWRcLXRvXC1mb290Owor6LuN5LqL5a+m5YqbID4gbWlsaXRhcnlcLXN0cmVuZ3RoOwor5buj5pKt57ay6LevID4gYnJvYWRjYXN0XC1uZXR3b3JrOwor56yo5Y+j5ouZ6IiMID4gYXdrd2FyZFwtaW5cLXNwZWVjaDsKK+W3tOaWr+WFi+iqniA+IGJhc3F1ZVwtXChsYW5ndWFnZVwpOwor6I+v5YyX5bmz5Y6fID4gbm9ydGhcLWNoaW5hXC1wbGFpbjsKK+aVkeaBqeioiOWKgyA+IHBsYW5cLW9mXC1zYWx2YXRpb247CivoiKrnqbrmr43oiaYgPiBhaXJjcmFmdFwtY2FycmllcjsKK+S4reWci+Wkp+mZuCA+IGNoaW5lc2VcLW1haW5sYW5kOwor5b2x5YOP5pyD6K2wID4gdmlkZW9cLWNvbmZlcmVuY2U7CivmgrLmraHpm6LlkIggPiBqb3lzXC1hbmRcLXNvcnJvd3M7Civnmb7ph4zmjJHkuIAgPiBvbmVcLWluXC1hXC1odW5kcmVkOwor6Kqe5rOV6KGT6KqeID4gZ3JhbW1hdGljYWxcLXRlcm07Civmm7Tpq5jmgKfog70gPiBoaWdoXC1wZXJmb3JtYW5jZTsKK+i7jeS6i+enkeWtuCA+IG1pbGl0YXJ5XC1zY2llbmNlOwor5Zmo5a6Y56e75q6WID4gb3JnYW5cLXRyYW5zcGxhbnQ7CivlvbHlg4/omZXnkIYgPiBpbWFnZVwtcHJvY2Vzc2luZzsKK+S6uuS6i+mDqOmWgCA+IHBlcnNvbm5lbFwtb2ZmaWNlOwor5r2b5Zyo5aiB6ISFID4gcG90ZW50aWFsXC10aHJlYXQ7CivntbHoqIjmlbjmk5ogPiBzdGF0aXN0aWNhbFwtZGF0YTsKK+eJueWumuWQq+e+qSA+IHNwZWNpZmljXC1tZWFuaW5nOwor6YeR6J6N57O757WxID4gZmluYW5jaWFsXC1zeXN0ZW07CivlsI7oh7TmrbvkuqEgPiB0b1wtbGVhZFwtdG9cLWRlYXRoOwor5p2/5LiK6YeY6YeYID4gdGhhdFwtY2xpbmNoZXNcLWl0Owor6Zu76IWm5LyB5qWtID4gY29tcHV0ZXJcLWNvbXBhbnk7CivllInogbLlmIbmsKMgPiBoZWF2ZVwtZGVlcFwtc2lnaHM7CivkuI3lpb3mhI/mgJ0gPiBmZWVsXC1lbWJhcnJhc3NlZDsKK+ato+W4uOW3peS9nCA+IG5vcm1hbFwtb3BlcmF0aW9uOwor5YKz55yf55m86YCBID4gZmF4XC10cmFuc21pc3Npb247Civmk43kvZzns7vntbEgPiBvcGVyYXRpbmdcLXN5c3RlbTsKK+WCs+i8uOWqkueVjCA+IHRyYW5zcG9ydFwtbWV0aG9kOwor56e75YuV6Zu76KmxID4gbW9iaWxlXC10ZWxlcGhvbmU7CivntrLntaHnm7TlvpEgPiBuZXR3b3JrXC1kaWFtZXRlcjsKK+aIkOe+pOe1kOmaiiA+IGluXC1sYXJnZVwtbnVtYmVyczsKK+eEoeaJgOS4jeizoyA+IHRvXC1zZWxsXC1hbnl0aGluZzsKK+mAmueUqOmbu+WZqCA+IGdlbmVyYWxcLWVsZWN0cmljOwor5pyd6a6u5Y2K5bO2ID4ga29yZWFuXC1wZW5pbnN1bGE7CivmnInpl5zkurrlo6sgPiBwZXJzb25zXC1pbnZvbHZlZDsKK+iAtuWIqeexs+abuCA+IGJvb2tcLW9mXC1qZXJlbWlhaDsKK+mHkeiejeW4guWgtCA+IGZpbmFuY2lhbFwtbWFya2V0Owor5YWp5bK45bCN6KmxID4gYmlsYXRlcmlhbFwtdGFsa3M7CivkuI3ntpPkuYvoq4cgPiBhYnN1cmRcLXN0YXRlbWVudDsKK+i3r+eUseWNlOWumiA+IHJvdXRpbmdcLXByb3RvY29sOwor57ay6Lev5bmz5Y+wID4gbmV0d29ya1wtcGxhdGZvcm07CivlhYnmqqLmuKzlmaggPiBvcHRpY2FsXC1kZXRlY3RvcjsKK+mbu+iFpue2sui3ryA+IGNvbXB1dGVyXC1uZXR3b3JrOwor5rOi54i+5aSa5rayID4gYm9yZGVhdXhcLW1peHR1cmU7CivnmbzpgZTlnIvlrrYgPiBkZXZlbG9wZWRcLW5hdGlvbjsKK+W3sue2k+mAsuihjCA+IGFscmVhZHlcLXVuZGVyd2F5Owor5YKz6YCB5pyN5YuZID4gZGVsaXZlcnlcLXNlcnZpY2U7CivoroDogIXkvobkv6EgPiByZWFkZXInJ3NcLWxldHRlcnM7Civlk4jlt7TosLfmm7ggPiBib29rXC1vZlwtaGFiYWtrdWs7Civnmb3lo4Hlvq7nkZUgPiBhXC1zbGlnaHRcLWJsZW1pc2g7CivljYHlub7lgIvmnIggPiB0ZW5cLW1vbnRoc1wtb3JcLXNvOwor5LiN5Yqg5oCd57SiID4gd2l0aG91dFwtdGhpbmtpbmc7Civllq7mqKHlhYnnupYgPiBzaW5nbGVtb2RlXC1maWJlcjsKK+acgOWkp+iDveWKmyA+IG1heGltdW1cLWNhcGFjaXR5Owor5pyJ57ea6Zu76KaWID4gY2FibGVcLXRlbGV2aXNpb247CivkuI3ororos4fmnKwgPiBjb25zdGFudFwtY2FwaXRhbDsKK+mbu+ipseS/oeiZnyA+IHRlbGVwaG9uZVwtc2lnbmFsOwor5aiB54i+5aOr6KqeID4gd2Vsc2hcLVwobGFuZ3VhZ2VcKTsKK+eUt+WtkOexg+eQgyA+IG1lbicnc1wtYmFza2V0YmFsbDsKK+iBr+mCpuWkp+aokyA+IGZlZGVyYWxcLWJ1aWxkaW5nOwor5pmu6YCa5ZWP6aGMID4gY29tbW9uXC1xdWVzdGlvbnM7CivovLjpgIHlqpLku4sgPiB0cmFuc3BvcnRcLW1lZGl1bTsKK+mYsuihm+atpuWZqCA+IGRlZmVuc2l2ZVwtd2VhcG9uOwor5L2c5qWt57O757WxID4gb3BlcmF0aW5nXC1zeXN0ZW07Civpq5TogrLkuYvnqpcgPiB3aW5kb3dcLW9uXC1zcG9ydHM7Civmm7jlr6voqp7oqIAgPiB3cml0dGVuXC1sYW5ndWFnZTsKK+WFseS6q+W4tuWvrCA+IHNoYXJlZFwtYmFuZHdpZHRoOwor5paH5YyW6Zqc56SZID4gY3VsdHVyYWxcLWJhcnJpZXI7Civnm7TmjqXlvbHpn78gPiBkaXJlY3RcLWluZmx1ZW5jZTsKK+iIh+atpOWQjOaZgiA+IGF0XC10aGVcLXNhbWVcLXRpbWU7CivkuLvopoHkvobmupAgPiBwcmluY2lwbGVcLXNvdXJjZTsKK+S6uuawkeWFrOekviA+IHBlb3BsZScnc1wtY29tbXVuZTsKK+S4i+mdouiri+eciyA+IHBsZWFzZVwtc2VlXC1iZWxvdzsKK+mHkeiejemiqOazoiA+IGZpbmFuY2lhbFwtY3Jpc2lzOwor57ay57Wh5Y2U6K2wID4gbmV0d29ya1wtcHJvdG9jb2w7Civnmb3ooaPmiLDlo6sgPiB3YXJyaW9yXC1pblwtd2hpdGU7CivlronlpoLno5Dnn7MgPiBhc1wtc29saWRcLWFzXC1yb2NrOwor5pWF6Zqc5o6S6ZmkID4gZmF1bHRcLXJlc29sdXRpb247Civph5Hono3mlLnpnakgPiBmaW5hbmNpYWxcLXJlZm9ybTsKK+ihjOWLlembu+ipsSA+IG1vYmlsZVwtdGVsZXBob25lOwor6ZuM5oCn5o6l5Y+jID4gZmVtYWxlXC1jb25uZWN0b3I7Civlv4Poh5/np7vmrpYgPiBoZWFydFwtdHJhbnNwbGFudDsKK+mBmeaOp+aTjeS9nCA+IHJlbW90ZVwtb3BlcmF0aW9uOwor57Ch5Zau55qE6KqqID4gdG9cLXB1dFwtaXRcLXNpbXBseTsKK+WFieaOpeaUtuWZqCA+IG9wdGljYWxcLXJlY2VpdmVyOwor5qmf5qKw6Kqe6KiAID4gbWFjaGluZVwtbGFuZ3VhZ2U7Civog6Hlv5fmmI7luIIgPiBob1wtY2hpXC1taW5oXC1jaXR5Owor5LiN55+l5omA5LqRID4gbm90XC1rbm93XC13aGF0XC1zYjsKK+mbu+iFpuWFrOWPuCA+IGNvbXB1dGVyXC1jb21wYW55Owor6IGv5bit5pyD6K2wID4gam9pbnRcLWNvbmZlcmVuY2U7CivkuqTmj5vntrLot68gPiBzd2l0Y2hlZFwtbmV0d29yazsKK+mqqOW5uee2sui3ryA+IGJhY2tib25lXC1uZXR3b3JrOwor6Luf5Lu25LyB5qWtID4gc29mdHdhcmVcLWNvbXBhbnk7Civlipvph4/lnYfooaEgPiBiYWxhbmNlXC1vZlwtcG93ZXI7Civmlr3mtJfntITnv7AgPiBqb2huXC10aGVcLWJhcHRpc3Q7CivlsLzluIznsbPoqJggPiBib29rXC1vZlwtbmVoZW1pYWg7CivloLHntJnloLHlsI4gPiBuZXdzcGFwZXJcLXJlcG9ydDsKK+mHkeiejeWNseapnyA+IGZpbmFuY2lhbFwtY3Jpc2lzOwor6Zui6ZaL5YyX5LqsID4gdG9cLWxlYXZlXC1iZWlqaW5nOwor5bm+5LmO5a6M5YWoID4gYWxtb3N0XC1lbnRpcmVseTsKK+S/oeaBr+aZguS7oyA+IGluZm9ybWF0aW9uXC1hZ2U7CivnlKLlk4HntpPnkIYgPiBwcm9kdWN0XC1tYW5hZ2VyOwor6LuN5LqL5aiB6ISFID4gbWlsaXRhcnlcLXRocmVhdDsKK+e2sui3r+acjeWLmSA+IG5ldHdvcmtcLXNlcnZpY2U7CivnoJTnqbbkuK3lv4MgPiByZXNlYXJjaFwtY2VudGVyOwor5bSH5ouc5YSA5byPID4gd29yc2hpcFwtc2VydmljZTsKK+aWueiIiOacquiJviA+IHRvXC1iZVwtdW5mb2xkaW5nOwor6ZuZ6YKK6LK/5piTID4gYmlsYXRlcmFsXC10cmFkZTsKK+i7jeS6i+mDqOmWgCA+IG1pbGl0YXJ5XC1icmFuY2g7CivpmaTmraTkuYvlpJYgPiBhcGFydFwtZnJvbVwtdGhpczsKK+WkqumZveWFrOWPuCA+IHN1blwtY29ycG9yYXRpb247CivlpJblnIvos4fmnKwgPiBmb3JlaWduXC1jYXBpdGFsOwor6LGQ5a+M5aSa5b2pID4gcmljaGx5XC1jb2xvcmZ1bDsKK+S4jeeZveS5i+WGpCA+IHVucmlnaHRlZFwtd3Jvbmc7CivmiJLlgpnmo67lmrQgPiBoZWF2aWx5XC1ndWFyZGVkOwor5Y2K6YCU6ICM5buiID4gZ2l2ZVwtdXBcLWhhbGZ3YXk7Civmibnph4/nlJ/nlKIgPiB0b1wtbWFzc1wtcHJvZHVjZTsKK+aTjeS9nOmAn+eOhyA+IG9wZXJhdGluZ1wtc3BlZWQ7Civoga/lkIjnmbzooaggPiBqb2ludFwtc3RhdGVtZW50Owor5LiN5a6M5YWo6JGJID4gaW5jb21wbGV0ZVwtbGVhZjsKK+aguOWPjeaHieWghiA+IG51Y2xlYXJcLXJlYWN0b3I7CivntpPmv5/mlLnpnakgPiBlY29ub21pY1wtcmVmb3JtOwor5Y2K5aOB5rGf5bGxID4gaGFsZlwtb2ZcLWNvdW50cnk7Civlj6Tlhbjpn7PmqIIgPiBjbGFzc2ljYWxcLW11c2ljOwor5LiN5Y+v5aSa5b6XID4gaGFyZFwtdG9cLWNvbWVcLWJ5Owor6YeN5paw6ZaL5aeLID4gcmVzdW1lXCxcLXJlc3RhcnQ7Civpm7vlrZDpg7Xku7YgPiBlbGVjdHJvbmljXC1tYWlsOwor57aT5r+f5YmN6YCUID4gZWNvbm9taWNcLWZ1dHVyZTsKK+W3peiugOWtuOagoSA+IHRoZVwtcmVmb3JtYXRvcnk7CivlmrTph43pl5zliIcgPiBzZXJpb3VzXC1jb25jZXJuOwor57aT5r+f5Y2x5qmfID4gZWNvbm9taWNcLWNyaXNpczsKK+WLleaFi+WKqeipniA+IGFzcGVjdFwtcGFydGljbGU7CivmmrTot7PlpoLpm7cgPiBzdGFtcFwtd2l0aFwtZnVyeTsKK+S7peilv+e1kOabuCA+IGJvb2tcLW9mXC1lemVraWVsOwor5YyW5a245q2m5ZmoID4gY2hlbWljYWxcLXdlYXBvbjsKK+eZu+iomOeUqOaItiA+IHJlZ2lzdGVyZWRcLXVzZXI7CivlmrTph43llY/poYwgPiBzZXJpb3VzXC1wcm9ibGVtOwor55W25YuZ5LmL5oClID4gdXJnZW50XC1wcmlvcml0eTsKK+i7n+S7tuezu+e1sSA+IHNvZnR3YXJlXC1zeXN0ZW07Civos7zniankuK3lv4MgPiBzaG9wcGluZ1wtY2VudGVyOwor5aOB5aOY5qOu5Zq0ID4gY2xvc2VseVwtZ3VhcmRlZDsKK+eRquaLieWfuuabuCA+IGJvb2tcLW9mXC1tYWxhY2hpOwor6LK/5piT5aSl5Ly0ID4gdHJhZGluZ1wtcGFydG5lcjsKK+aciOS7veacg+itsCA+IG1vbnRobHlcLW1lZXRpbmc7CivnoJTnqbbloLHlkYogPiByZXNlYXJjaFwtcmVwb3J0Owor5YWI6YCy5q2m5ZmoID4gYWR2YW5jZWRcLXdlYXBvbjsKK+Wkp+eZvOmbt+mchiA+IGV4dHJlbWVseVwtYW5ncnk7Civnvo7lnIvmlL/lupwgPiB1XC5zXC5cLWdvdmVybm1lbnQ7CivloZ7niL7nibnoqp4gPiBjZWx0aWNcLWxhbmd1YWdlOwor5o6q6L6t5by356GsID4gc3Ryb25nbHlcLXdvcmRlZDsKK+WFrOWPuOacg+itsCA+IGNvbXBhbnlcLW1lZXRpbmc7CivmlLnororlvaLlg48gPiB0cmFuc2ZpZ3VyYXRpb247Civnmb7lhZLlhavljYEgPiBhYm91dFwtYVwtaHVuZHJlZDsKK+WkmuaooeWFiee6liA+IG11bHRpbW9kZVwtZmliZXI7Civou5/ku7bluILloLQgPiBzb2Z0d2FyZVwtbWFya2V0Owor5qCh5ZyS6aqo5bm5ID4gY2FtcHVzXC1iYWNrYm9uZTsKK+aykuacieiBr+e5qyA+IHRvXC1iZVwtdW5yZWxhdGVkOwor5LiW55WM5pyA5aSnID4gd29ybGQnJ3NcLWxhcmdlc3Q7CivlsJbpirPmibnoqZUgPiBzaGFycFwtY3JpdGljaXNtOwor6Zu76IWm57O757WxID4gY29tcHV0ZXJcLXN5c3RlbTsKK+iyqOW5o+WNseapnyA+IG1vbmV0YXJ5XC1jcmlzaXM7CivmmpfpgIHnp4vms6IgPiBtYWtlXC1leWVzXC1hdFwtc2I7CivmlbjkvY3ntrLot68gPiBkaWdpdGFsXC1uZXR3b3JrOwor5YWo5Yqb5Lul6LW0ID4gZG9cLWF0XC1hbGxcLWNvc3RzOwor6Jmb5pOs57ay57WhID4gdmlydHVhbFwtbmV0d29yazsKK+WFieaYjuaXpeWgsSA+IGd1YW5nbWluZ1wtZGFpbHk7Civmrbflj7LkuYXpgaAgPiBhbmNpZW50XC1oaXN0b3J5Owor5pav5ouJ5aSr6KqeID4gc2xhdmljXC1sYW5ndWFnZTsKK+WkluWci+WFrOWPuCA+IGZvcmVpZ25cLWNvbXBhbnk7CivllYbmpa3kuK3lv4MgPiBidXNpbmVzc1wtY2VudGVyOwor5LiN55u45LiK5LiLID4gZXF1YWxseVwtbWF0Y2hlZDsKK+apn+WvhuaWh+S7tiA+IHNlY3JldFwtZG9jdW1lbnQ7Civlhbfpq5ToqIjlioMgPiBhXC1jb25jcmV0ZVwtcGxhbjsKK+aWh+abuOiZleeQhiA+IHdvcmRcLXByb2Nlc3Npbmc7CivpoJDpmLLmjqrmlr0gPiBwcm90ZWN0aXZlXC1zdGVwOwor5YWs54S26KGo56S6ID4gdG9cLXN0YXRlXC1vcGVubHk7CivosqDlgrXnuo3nuo0gPiBoZWF2aWx5XC1pblwtZGVidDsKK+e2k+a/n+mrlOWItiA+IGVjb25vbWljXC1zeXN0ZW07CivkuI3pgY7niL7niL4gPiBtZXJlbHlcLW1lZGlvY3JlOwor5rWB5oSf55eF5q+SID4gaW5mbHVlbnphXC12aXJ1czsKK+ihm+eUn+WumOWToSA+IGhlYWx0aFwtb2ZmaWNpYWw7Civlhbfpq5TllY/poYwgPiBjb25jcmV0ZVwtaXNzdWU7CivlnIvpmLLpoJDnrpcgPiBkZWZlbmNlXC1idWRnZXQ7Civoo4HmuJvou43lgpkgPiBhcm1zXC1yZWR1Y3Rpb247Civlh7rlj6PllYblk4EgPiBleHBvcnRcLXByb2R1Y3Q7CivmlLnpnanpgLLnqIsgPiByZWZvcm1cLXByb2Nlc3M7CivoloTog47nk7flmaggPiBlZ2dzaGVsbFwtY2hpbmE7Civmk7rolanlkIrnkrAgPiBzd2luZ2luZ1wtcmluZ3M7CivlhajnkIPmsKPlgJkgPiBnbG9iYWxcLWNsaW1hdGU7CivlsI3lpJbmlL/nrZYgPiBmb3JlaWduXC1wb2xpY3k7CivpgLLooYzpgJrkv6EgPiB0b1wtY29tbXVuaWNhdGU7CivkuI3lko7ml6LlvoAgPiBub3RcLWNlbnN1cmVcLXNiOwor5qCh5ZyS57ay57WhID4gY2FtcHVzXC1uZXR3b3JrOwor5pW45L2N5L+h6JmfID4gZGlnaXRhbFwtc2lnbmFsOwor55Sf6ZW35r+A57SgID4gZ3Jvd3RoXC1ob3Jtb25lOwor5oyH5o+u5Lit5b+DID4gY29tbWFuZFwtY2VudGVyOwor6Zu76Kmx57ea6LevID4gdGVsZXBob25lXC1saW5lOwor6Kqe5rCj5Yqp6KmeID4gbW9kYWxcLXBhcnRpY2xlOwor57SE5pu45Lqe6KiYID4gYm9va1wtb2ZcLWpvc2h1YTsKK+e2k+a/n+acieaViCA+IGNvc3RcLWVmZmVjdGl2ZTsKK+WgheaxuuWQpuiqjSA+IHRvXC1maXJtbHlcLWRlbnk7Civmm7jlr6vnrKbomZ8gPiB3cml0aW5nXC1zeW1ib2w7CivkuI3nn6XmrbvmtLsgPiBhY3RcLXJlY2tsZXNzbHk7Civms6LnvoXnmoTmtbcgPiB0aGVcLWJhbHRpY1wtc2VhOwor5qGM6Z2i57O757WxID4gZGVza3RvcFwtc3lzdGVtOwor5p2x5Y2X5Lqe5ZyLID4gc291dGhlYXN0XC1hc2lhOwor5bCP5Z6L5LyB5qWtID4gc21hbGxcLWJ1c2luZXNzOwor6LOH5paZ5LuL6Z2iID4gZGF0YVwtaW50ZXJmYWNlOwor5LiN5oCO6bq85qijID4gbm90XC11cFwtdG9cLW11Y2g7CivpnZ7luLjph43opoEgPiB2ZXJ5XC1pbXBvcnRhbnQ7CivphqvlrbjlsIjlrrYgPiBtZWRpY2FsXC1leHBlcnQ7CivlhYjpgLLmsLTlubMgPiBhZHZhbmNlZFwtbGV2ZWw7Civmlbjmk5rmjqXlj6MgPiBkYXRhXC1pbnRlcmZhY2U7CivpgKPpjpblj43mh4kgPiBjaGFpblwtcmVhY3Rpb247CivnibnliKXmhJ/orJ0gPiBzcGVjaWFsXC10aGFua3M7Civkurrlo73kv53pmqogPiBsaWZlXC1pbnN1cmFuY2U7Civmlbjmk5rku4vpnaIgPiBkYXRhXC1pbnRlcmZhY2U7CivkvYbku6XnkIbmm7ggPiBib29rXC1vZlwtZGFuaWVsOwor6L+r5LiN5b6X5beyID4gaGF2ZVwtbm9cLWNob2ljZTsKK+ipleWDueWIhumhniA+IHJhbmtcLFwtY2xhc3NpZnk7Civlvp7kuovnoJTnqbYgPiB0b1wtZG9cLXJlc2VhcmNoOwor5Lul6LO95Lqe5pu4ID4gYm9va1wtb2ZcLWlzYWlhaDsKK+WNiuaVuOS7peS4iiA+IG1vcmVcLXRoYW5cLWhhbGY7CivmqpTmoYjlsazmgKcgPiBmaWxlXC1hdHRyaWJ1dGU7Civlvp7kvobmspLmnIkgPiBoYXZlXHxoYXNcLW5ldmVyOwor5Lul5pav5biW6KiYID4gYm9va1wtb2ZcLWVzdGhlcjsKK+acgOS9s+WIqeebiiA+IGJlc3RcLWludGVyZXN0czsKK+aDoeaAp+W+queSsCA+IHZpY2lvdXNcLWNpcmNsZTsKK+S4jeecgeS6uuS6iyA+IGJlXC11bmNvbnNjaW91czsKK+eZvueEoeiBiuiztCA+IGJvcmVkXC10b1wtZGVhdGg7CivphqvlrbjkuK3lv4MgPiBtZWRpY2FsXC1jZW50ZXI7Civnmb3oibLkurrnqK4gPiB0aGVcLXdoaXRlXC1yYWNlOwor57ac5ZCI5aCx5bCOID4gc3VtbWFyeVwtcmVwb3J0Owor5aSn5ZCM5bCP55WwID4gYWxtb3N0XC1zaW1pbGFyOwor5Y2R6Lqs5bGI56+AID4gYm93XC1hbmRcLXNjcmFwZTsKK+aBreizgOaWsOempyA+IGhhcHB5XC1uZXdcLXllYXI7CivliY3nlJ/lj6zllpogPiBmb3Jlb3JkaW5hdGlvbjsKK+e2sumam+mbu+ipsSA+IGludGVybmV0XC1waG9uZTsKK+iYi+aenOmbu+iFpiA+IGFwcGxlXC1jb21wdXRlcjsKK+S4jeiEm+iAjOi1sCA+IGdldFwtcm91bmRcLWZhc3Q7CivkuInovKrou4rkvJUgPiBwZWRpY2FiXC1kcml2ZXI7Civpo73ntpPpoqjpnJwgPiB3ZWF0aGVyXC1iZWF0ZW47Civlhajlv4PlhajmhI8gPiBoZWFydFwtYW5kXC1zb3VsOwor5rOw57Gz54i+6KqeID4gdGFtaWxcLWxhbmd1YWdlOwor5LiN5pyf6ICM6YGHID4gbWVldFwtYnlcLWNoYW5jZTsKK+i/keS5juWQjOatpSA+IHBsZXNpb2Nocm9ub3VzOwor5ZOl5pys5ZOI5qC5ID4gY29wZW5oYWdlblwtXD9cP1w/Owor55m+57Gz6LO96LeRID4gMTAwXC1tZXRyZVwtZGFzaDsKK+iqv+afpeWgseWRiiA+IG1lbW9pclwsXC1yZXBvcnQ7CivmlbjlrZfkv6HomZ8gPiBkaWdpdGFsXC1zaWduYWw7CivkuJbnlYzntpPmv58gPiBnbG9iYWxcLWVjb25vbXk7CivpgJrnlKjmsb3ou4ogPiBnZW5lcmFsXC1tb3RvcnM7CivljJfkuqzpgLHloLEgPiBiZWlqaW5nXC1yZXZpZXc7CivmupDpu57lnLDlnYAgPiBzb3VyY2VcLWFkZHJlc3M7CivpgJnmrKHljbHmqZ8gPiBwcmVzZW50XC1jcmlzaXM7Civlh7rlj6PnlKLlk4EgPiBleHBvcnRcLXByb2R1Y3Q7CivlpJrlt6XpgYvkvZwgPiBtdWx0aXRocmVhZGluZzsKK+S6jOawp+WMlueisyA+IGNhcmJvblwtZGlveGlkZTsKK+e2sue1oeioreioiCA+IG5ldHdvcmtcLWRlc2lnbjsKK+S6lOW5tOioiOWKgyA+IGZpdmVcLXllYXJcLXBsYW47CivluILloLTntpPmv58gPiBtYXJrZXRcLWVjb25vbXk7CivmqpTmoYjln7fooYwgPiBmaWxlXC1leGVjdXRpb247CivkupLli5Xpm7voppYgPiBpbnRlcmFjdGl2ZVwtdHY7CivlhaznnL7mhI/oposgPiBwdWJsaWNcLW9waW5pb247CivmrZDmtLLoga/nm58gPiBldXJvcGVhblwtdW5pb247CivmqpTmoYjovYnpgIEgPiBmaWxlXC10cmFuc2ZlcjsKK+aOkuWxseWAkua1tyA+IGVhcnRoXC1zaGFraW5nOwor57aT54ef6LK755SoID4gYnVzaW5lc3NcLWNvc3Q7Civnm7TmiKrkuobnlbYgPiBwbGFpblwtdGFsa2luZzsKK+WGt+aIsOS7peW+jCA+IHBvc3RcLWNvbGRcLXdhcjsKK+WLouWcqOW/heihjCA+IGJlXC1pbXBlcmF0aXZlOwor6IiK57SE5YWo5pu4ID4gb2xkXC10ZXN0YW1lbnQ7Civlub7lgIvlsI/mmYIgPiBzZXZlcmFsXC1ob3VyczsKK+S4jeWPr+e8uuWwkSA+IGluZGlzcGVuc2FibGU7Civoppbnqpfln7rmupYgPiB3aW5kb3dzXC1iYXNlZDsKK+mbu+mDteS9jee9riA+IGVtYWlsXC1hZGRyZXNzOwor56CU56m26aCY5Z+fID4gcmVzZWFyY2hcLWFyZWE7CivpgLLmjqXmnI3li5kgPiBhY2Nlc3NcLXNlcnZlcjsKK+S6jOasoeWkp+aIsCA+IHdvcmxkXC13YXJcLXR3bzsKK+WfuuacrOamguW/tSA+IGJhc2ljXC1jb25jZXB0Owor6LK/5piT6aCG5beuID4gdHJhZGVcLXN1cnBsdXM7Civmrablmajns7vntbEgPiB3ZWFwb25cLXN5c3RlbTsKK+WutueUqOmbu+iFpiA+IGhvbWVcLWNvbXB1dGVyOwor5aSn5YWs54Sh56eBID4ganVzdFwtYW5kXC1mYWlyOwor5paw57SE5YWo5pu4ID4gbmV3XC10ZXN0YW1lbnQ7Civkup7mtLLlnIvlrrYgPiBhc2lhblwtY291bnRyeTsKK+aatOmiqOmpn+mbqCA+IHZpb2xlbnRcLXN0b3JtOwor5o2J5Y+W5ZyW5YOPID4gY2FwdHVyZVwtaW1hZ2U7Civmi5zph5HkuLvnvqkgPiBtb25leVwtd29yc2hpcDsKK+awuOS5heWSjOW5syA+IGxhc3RpbmdcLXBlYWNlOwor5ZOI6Jap5YWL5Lq6ID4ga2F6YWtoXC1wZXJzb247Civlt6HoiKrlsI7lvYggPiBjcnVpc2VcLW1pc3NsZTsKK+aatOWKm+eKr+e9qiA+IHZpb2xlbnRcLWNyaW1lOwor5L2V6KW/6Zi/5pu4ID4gYm9va1wtb2ZcLWhvc2VhOwor5LiN5oiQ5paH5rOVID4gdW53cml0dGVuXC1sYXc7Civkup7lpKrlnIvlrrYgPiBhc2lhblwtY291bnRyeTsKK+ebruaomeW4guWgtCA+IHRhcmdldFwtbWFya2V0Owor5pyA6auY5rOV6ZmiID4gc3VwcmVtZVwtY291cnQ7CivmnIDlvozmm7TmlrAgPiBsYXRlc3RcLXVwZGF0ZTsKK+adj+S7geixhuiFkCA+IGFsbW9uZFwtanVua2V0Owor6YCZ56iu5pa55byPID4gXChpblwpXC10aGlzXC13YXk7Civkv53orbfkuLvnvqkgPiBwcm90ZWN0aW9uaXNtOwor5pyI55CD6KGo6Z2iID4gbHVuYXJcLXN1cmZhY2U7CivlnLDmlrnlgZzou4ogPiBwYXJraW5nXC1wbGFjZTsKK+efpeWQjeS6uuWjqyA+IHB1YmxpY1wtZmlndXJlOwor576O5ZyL5ZyL5pyDID4gdVwuc1wuXC1jb25ncmVzczsKK+S4jeW5uOeahOaYryA+IHVuZm9ydHVuYXRlbHk7CivlhYnnupbpm7vnupwgPiBvcHRpY2FsXC1maWJlcjsKK+ekvuS6pOiqnuiogCA+IGxpbmd1YVwtZnJhbmNhOwor6LaK5L6G6LaK5aSaID4gbW9yZVwtYW5kXC1tb3JlOwor55m+56eR5YWo5pu4ID4gZW5jeWNsb3BhZWRpYTsKK+WKn+eOh+aDoeWMliA+IHBvd2VyXC1wZW5hbHR5Owor5LiN5Y+v5oqX5YqbID4gZm9yY2VcLW1hamV1cmU7CivkuK3lnIvpioDooYwgPiBiYW5rXC1vZlwtY2hpbmE7Civpn7/mh4nmmYLplpMgPiByZXNwb25zZVwtdGltZTsKK+WCs+i8uOaooeW8jyA+IHRyYW5zZmVyXC1tb2RlOwor5LiN55+l5LiN6Ka6ID4gdW5jb25zY2lvdXNseTsKK+WJjeaJgOacquaciSA+IHVucHJlY2VkZW50ZWQ7CivoqKrllY/mlrnlvI8gPiBhY2Nlc3NcLW1ldGhvZDsKK+aqlOahiOW7uueriyA+IGZpbGVcLWNyZWF0aW9uOwor5Ye655Sf5pel5pyfID4gZGF0ZVwtb2ZcLWJpcnRoOwor5LiN5Y+v5oCd6K2wID4gaW5jb25jZWl2YWJsZTsKK+agvOWtkOiKseWRoiA+IHBsYWlkXCxcLXRhcnRhbjsKK+mbmeeUn+WFhOW8nyA+IHR3aW5cLWJyb3RoZXJzOwor5pyA5aSn6YCf546HID4gbWF4aW11bVwtc3BlZWQ7Civnj77lr6bmg4Xms4EgPiBjdXJyZW50XC1zdGF0ZTsKK+WMhee+heiQrOixoSA+IGFsbFwtZW1icmFjaW5nOwor6KaW6aC756+A55uuID4gdmlkZW9cLXByb2dyYW07CivnvoXppqzlrZfmr40gPiByb21hblwtbGV0dGVyczsKK+S4jeWPr+WQjeeLgCA+IGluZGVzY3JpYmFibGU7Civlhbbku5bnmoTkurogPiBvdGhlclwtcGVvcGxlOwor5aqS6auU5aCx5bCOID4gbWVkaWFcLXJlcG9ydDsKK+WSjOW5s+ainee0hCA+IHBlYWNlXC10cmVhdHk7CivogqHnpajluILloLQgPiBzdG9ja1wtbWFya2V0Owor5aSn6ama5aSx6ImyID4gYXBwcmVoZW5zaXZlOwor6auY5bGk5peF6aSoID4gbHV4dXJ5XC1ob3RlbDsKK+mdiOeahOS4lueVjCA+IHNwaXJpdFwtd29ybGQ7Civlh7rkuY7poJDmlpkgPiB1bmV4cGVjdGVkbHk7CivlnLDmlrnkuLvnvqkgPiBcImxvY2FsXC1cLWlzbVwiOwor5r+A5YWJ5ZSx54mHID4gY29tcGFjdFwtZGlzazsKK+S4reWkrumKgOihjCA+IGNlbnRyYWxcLWJhbms7Civmlq/lr4bntITnkZ8gPiBqb3NlcGhcLXNtaXRoOwor55uu5YmN5LiW55WMID4gbW9kZXJuXC13b3JsZDsKK+awkeaEj+iqv+afpSA+IG9waW5pb25cLXBvbGw7Civnj77ku6Ppn7PmqIIgPiBtb2Rlcm5cLW11c2ljOwor6KO96YCg5qWt6ICFID4gbWFudWZhY3R1cmVyOwor5b+D55CG5a245a62ID4gcHN5Y2hvbG9naXN0Owor5LiN6IO95oq15oqXID4gaXJyZXNpc3RpYmxlOwor6YGO5aKD57C96Ki8ID4gdHJhbnNpdFwtdmlzYTsKK+iAtuepjOWfuuedoyA+IGplc3VzXC1jaHJpc3Q7CivoqJjogIXloLHlsI4gPiBwcmVzc1wtcmVwb3J0Owor5aSa5bel5L2c5qWtID4gbXVsdGl0YWtzaW5nOwor5LiN5aSn6Zui5YWSID4gcHJldHR5XC1jbG9zZTsKK+acrOS+humdouebriA+IHRydWVcLWNvbG91cnM7CivntrLot6/nr4Dpu54gPiBuZXR3b3JrXC1ub2RlOwor5LiN5Y+v5pS25ou+ID4gaXJyZW1lZGlhYmxlOwor5ZyL5a625qmf5a+GID4gc3RhdGVcLXNlY3JldDsKK+iqv+afpeS6uuWToSA+IGludmVzdGlnYXRvcjsKK+atpuijnemDqOmaiiA+IGFybWVkXC1mb3JjZXM7CivnlJ/nlKLkvIHmpa0gPiBtYW51ZmFjdHVyZXI7CivlkI3pjITmnI3li5kgPiBuYW1lXC1zZXJ2aWNlOwor6Kqe6Z+z5L+h6JmfID4gdm9pY2VcLXNpZ25hbDsKK+S7pOS6uumpmueVsCA+IHN1cnByaXNpbmdseTsKK+WfuuekjuioreaWvSA+IGJhc2VcLXN0YXRpb247CivnlJ/lkb3ot6HosaEgPiBzaWduXC1vZlwtbGlmZTsKK+efpeitmOWIhuWtkCA+IGludGVsbGVjdHVhbDsKK+mYv+aRqeWPuOabuCA+IGJvb2tcLW9mXC1hbW9zOwor55So5oi25a6a576pID4gdXNlclwtZGVmaW5lZDsKK+aIkOWQieaAneaxlyA+IGdlbmdoaXNcLWtoYW47CivkuLvlubnntrLot68gPiBjb3JlXC1uZXR3b3JrOwor5rCR5oSP5ris6amXID4gb3BpbmlvblwtcG9sbDsKK+att+S7o+W/l+S4iyA+IDJcLWNocm9uaWNsZXM7Civmrbfku6Plv5fkuIogPiAxXC1jaHJvbmljbGVzOwor5oyH5Luk5ZCN5a2XID4gY29tbWFuZFwtbmFtZTsKK+S4gOWwj+mDqOWIhiA+IGFcLXNtYWxsXC1wYXJ0Owor5Li75bm557ay57WhID4gY29yZVwtbmV0d29yazsKK+aPrumcjeeEoeW6piA+IGV4dHJhdmFnYW5jZTsKK+eZu+mZuOaciOeQgyA+IG1vb25cLWxhbmRpbmc7Civou43kuovmj7TliqkgPiBtaWxpdGFyeVwtYWlkOwor5pys5pys5Li7576pID4gYm9va1wtd29yc2hpcDsKK+S6lOinkuWkp+aokyA+IHRoZVwtcGVudGFnb247Civmkanopb/lvovms5UgPiBsYXdcLW9mXC1tb3NlczsKK+i/hemAn+iUk+W7tiA+IHJhcGlkXC1zcHJlYWQ7Civku6Xmlq/mi4noqJggPiBib29rXC1vZlwtZXpyYTsKK+S4jeefpeaJgOaOqiA+IGJlXC1hdFwtYVwtbG9zczsKK+W9ouW9ouiJsuiJsiA+IGFsbFwta2luZHNcLW9mOwor5qqU5qGI5pyN5YuZID4gZmlsZVwtc2Vydm9jZTsKK+mZjeiQveWcsOm7niA+IGxhbmRpbmdcLXNpdGU7CivkuInljYHkupTlhIQgPiAzXC1cLjVcLWJpbGxpb247CivkuozljYHlha3mrbIgPiAyNlwteWVhcnNcLW9sZDsKK+aVuOaTmue2sue1oSA+IGRhdGFcLW5ldHdvcms7CivpvpDnhLblpKfniakgPiBodWdlXC1tb25zdGVyOwor5LiW55WM55+l5ZCNID4gd29ybGRcLWZhbW91czsKK+efpeitmOS7veWtkCA+IGludGVsbGVjdHVhbDsKK+W/q+mAn+eZvOWxlSA+IHJhcGlkXC1ncm93dGg7CivlpJrnqK7oqp7oqIAgPiBtdWx0aWxpbmd1YWw7CivlronlhajllY/poYwgPiBzYWZldHlcLWlzc3VlOwor5rKJ6YeN5omT5pOKID4gdG9cLWhpdFwtaGFyZDsKK+iHqueEtuiAjOeEtiA+IGludm9sdW50YXJ5Owor5LiN6LSK5LiA6KmeID4ga2VlcFwtc2lsZW50Owor5Lq66auU5Zmo5a6YID4gaHVtYW5cLW9yZ2FuOwor5rCR5peP5Li7576pID4gbmF0aW9uYWxpc207Civnsr7lrZDlr4bluqYgPiBzcGVybVwtY291bnQ7CivpgbflsYXnp7vmsJEgPiBpbW1pZ3JhdGlvbjsKK+mHjueUn+WLleeJqSA+IHdpbGRcLWFuaW1hbDsKK+iBluiqleiAgeS6uiA+IHNhbnRhXC1jbGF1czsKK+a1qua8q+S4u+e+qSA+IHJvbWFudGljaXNtOwor5LiN5Y+v55+l6KuWID4gYWdub3N0aWNpc207CivkuI3liIflr6bpmpsgPiB1bnJlYWxpc3RpYzsKK+WFuOWei+eUqOmAlCA+IHR5cGljYWxcLXVzZTsKK+WvjOaWvOaDs+WDjyA+IGltYWdpbmF0aXZlOwor5ZyL5LqL6Kiq5ZWPID4gc3RhdGVcLXZpc2l0Owor5Y2K5Y2K5ouJ5ouJID4gaW5jb21wbGV0ZWQ7CivkuI3lj6/liIbpm6IgPiBpbnNlcGFyYWJsZTsKK+eEoeeUoumajue0miA+IHByb2xldGFyaWF0Owor5aSx5Y675oSP6K2YID4gdW5jb25zY2lvdXM7Civnmb7okKzlr4znv4EgPiBtaWxsaW9uYWlyZTsKK+iytOaXj+ekvuacgyA+IGFyaXN0b2NyYWN5Owor5rOi5aSa6buO5ZCEID4gcHVlcnRvXC1yaWNvOwor56uL5rOV5qmf6ZecID4gbGVnaXNsYXR1cmU7CivkuLvopoHljp/lm6AgPiBtYWluXC1yZWFzb247CivmnInnlJ/ku6XkvoYgPiBzaW5jZVwtYmlydGg7Civosp3liqDniL7muZYgPiBsYWtlXC1iYWlrYWw7CivlkozlubPmnIPoq4cgPiBwZWFjZVwtdGFsa3M7CivkuI3ororlg7nmoLwgPiBmaXhlZFwtcHJpY2U7CivlpbPnubzmib/kurogPiBpbmhlcml0cmVzczsKK+WBh+ioreiqnuawoyA+IHN1Ymp1bmN0aXZlOwor5Zyw5b+D5ZC45YqbID4gZ3Jhdml0YXRpb247CivpgYvosqjppqzou4ogPiBjYXJnb1wtd2Fnb247CivnrKzkuInkuJbnlYwgPiB0aGlyZFwtd29ybGQ7CivnhKHpl5znt4ropoEgPiBpbmRpZmZlcmVudDsKK+Wkp+S+v+S5vueHpSA+IGNvbnN0aXBhdGVkOwor5LiN5YGP5LiN5YCaID4gZXZlblwtaGFuZGVkOwor5YiG5pWj5rOo5oSPID4gdG9cLWRpc3RyYWN0Owor5LiN5q+b5LmL5ZywID4gYmFycmVuXC1sYW5kOwor6LaF57Sa5biC5aC0ID4gc3VwZXJtYXJrZXQ7Civlv4XopoHmop3ku7YgPiByZXF1aXJlbWVudDsKK+WIhuacn+S7mOasviA+IGluc3RhbGxtZW50Owor6IiJ5L6L5L6G6KqqID4gZm9yXC1leGFtcGxlOwor5LiW55WM6LK/5piTID4gd29ybGRcLXRyYWRlOwor6I6O5aOr5q+U5LqeID4gc2hha2VzcGVhcmU7Civlm5vliIbkuYvkuIAgPiBvbmVcLXF1YXJ0ZXI7CivoqIrmoYblgrPpgIEgPiBmcmFtZVwtcmVsYXk7Civnlavmj5LlnJbogIUgPiBpbGx1c3RyYXRvcjsKK+i2iuWNl+aIsOeIrSA+IHZpZXRuYW1cLXdhcjsKK+eEoeaJgOS4jeWcqCA+IG9tbmlwcmVzZW50Owor5LiN5Ye65omA5paZID4gYXNcLWV4cGVjdGVkOwor5LiW55WM5ZKM5bmzID4gd29ybGRcLXBpZWNlOwor5LiN5ZCM5Yeh6Z+/ID4gb3V0c3RhbmRpbmc7Civmh4nnlKjnqIvlvI8gPiBhcHBsaWNhdGlvbjsKK+i9ieS+hui9ieWOuyA+IHJvdmVcLWFyb3VuZDsKK+mHnemLkuebuOWwjSA+IHRpdFwtZm9yXC10YXQ7CivplonmnIPnpYjnprEgPiBiZW5lZGljdGlvbjsKK+S4jeWPr+S8sOmHjyA+IGluZXN0aW1hYmxlOwor6ZaL5pS+57O757WxID4gb3Blblwtc3lzdGVtOwor5pyJ6ZmQ5YWs5Y+4ID4gY29ycG9yYXRpb247CivnqbrplpPmjqLmuKwgPiBzcGFjZVwtcHJvYmU7Civln7rnpI7llY/poYwgPiBiYXNpY1wtaXNzdWU7CivpgoHpmL/lr4bngZggPiBtaWFtaVwtYmVhY2g7Civouqvlv4PniL3lv6sgPiByZWZyZXNobWVudDsKK+elreWPuOasiuihkyA+IHByaWVzdGNyYWZ0Owor5oGw5aaC5YW25Lu9ID4gYXBwcm9wcmlhdGU7CivlnKjpgJnmnJ/plpMgPiBkdXJpbmdcLXRpbWU7CivnhKHms5Xlv43lj5cgPiBpbnRvbGVyYWJsZTsKK+WPjeWLleWIhuWtkCA+IHJlYWN0aW9uYXJ5Owor5L2/55So5pa55L6/ID4gZWFzeVwtdG9cLXVzZTsKK+eEoeazleW9ouWuuSA+IHVuc3BlYWthYmxlOwor5pyJ5ZCM5oOF5b+DID4gc3ltcGF0aGV0aWM7CivpgLLooYzmgKfkuqQgPiB0b1wtaGF2ZVwtc2V4Owor5Zac5q2h5ZC15p62ID4gcXVhcnJlbHNvbWU7CivmqKHns4rpgo/ovK8gPiBmdXp6eVwtbG9naWM7CivlsLHvuY3ogIzoqIAgPiBjb25zaWRlcmluZzsKK+aciemBuOiIieasiiA+IGNvbnN0aXR1ZW50Owor5ris6amX57WQ5p6cID4gdGVzdFwtcmVzdWx0Owor566h5a626IG35YuZID4gc3Rld2FyZHNoaXA7Civni5fkuqTlqr7oiKwgPiBkb2dneVwtc3R5bGU7CivlsIjmnInlkI3oqZ4gPiBwcm9wZXJcLW5vdW47CivmnIvmr5TngrrlpbggPiB0b1wtY29uc3BpcmU7CivmkKzlvITmmK/pnZ4gPiBzb3dcLWRpc2NvcmQ7CivlhrDmn5Pmn5PmlpkgPiBhem9pY1wtZHllczsKK+Wbm+WAi+Wwj+aZgiA+IGZvdXJcLWhvdXJzOwor5aSp5paH5a245a62ID4gYXN0cm9ub21lcjsKK+ecvOiKsee5muS6giA+IGJlXC1kYXp6bGVkOwor6a2v5L2b54i+5a6uID4gdGhlXC1sb3V2cmU7CivkuI3loKrlv43lj5cgPiB1bmJlYXJhYmxlOwor5aib5qiC5Lit5b+DID4gcmVjcmVhdGlvbjsKK+iHqueUseiyv+aYkyA+IGZyZWVcLXRyYWRlOwor5LiJ5YiG5LmL5LqMID4gdHdvXC10aGlyZHM7CivnuL3ntbHku7vmnJ8gPiBwcmVzaWRlbmN5Owor5LiN5Y+v6YC+6LaKID4gaW1wYXNzYWJsZTsKK+aVmeWgguWik+WcsCA+IGNodXJjaHlhcmQ7CivooYzmlL/plbflrpggPiBtYWdpc3RyYXRlOwor6LK05peP6KuW6ICFID4gYXJpc3RvY3JhdDsKK+aWsOiBnuiomOiAhSA+IGpvdXJuYWxpc3Q7Civpnq3pl6LlhaXoo6EgPiBwZW5ldHJhdGVkOwor5LuW5YCR6Ieq5bexID4gdGhlbXNlbHZlczsKK+mYv+WhnuaLnOeWhiA+IGF6ZXJiYWlqYW47Civpgo/ovK/ngrjlvYggPiBsb2dpY1wtYm9tYjsKK+Wcluino+iqquaYjiA+IGlsbHVzdHJhdGU7CivkuI3lsYjkuI3mkpMgPiB1bnlpZWxkaW5nOwor5aSn6IWm5q275LqhID4gYnJhaW5cLWRlYWQ7Civog6HmgJ3kuoLmg7MgPiBpbWFnaW5pbmdzOwor5LiA5YiH5LqL54mpID4gZXZlcnl0aGluZzsKK+atjOe+heilv+abuCA+IGNvbG9zc2lhbnM7CivkuI3nlLHoh6rkuLsgPiBjYW4nJ3RcLWhlbHA7Civmm7zlvrnmlq/nibkgPiBtYW5jaGVzdGVyOwor5Ly96aas5bCE57eaID4gZ2FtbWFcLXJheXM7CivmpbXngrrpvpDlpKcgPiBtb251bWVudGFsOwor5pyJ5Yip5Y+v5ZyWID4gcHJvZml0YWJsZTsKK+eEoeaJgOS4jeiDvSA+IG9tbmlwb3RlbnQ7CivliIbpm6LkuLvnvqkgPiBzZXBhcmF0aXNtOwor5LiW55WM6YqA6KGMID4gd29ybGRcLWJhbms7CivnhKHmiYDkuI3nn6UgPiBvbW5pc2NpZW50Owor6ZaL5pyD56WI56axID4gaW52b2NhdGlvbjsKK+mgmOWwjuiDveWKmyA+IGxlYWRlcnNoaXA7CivmhI/opovkuI3lkIggPiBkaXNzZW5zaW9uOwor5a2f5Yqg5ouJ5ZyLID4gYmFuZ2xhZGVzaDsKK+W8leS6uuazqOaEjyA+IGF0dHJhY3RpdmU7Civlv5jmganosqDnvqkgPiB1bmdyYXRlZnVsOwor55u45ZCM5ZCN5a2XID4gbGlrZVwtbmFtZWQ7Civkvb/kurrkv6HmnI0gPiBjb252aW5jaW5nOwor5Y+W6ICM5Luj5LmLID4gc3Vic3RpdHV0ZTsKK+mbu+WtkOepuumWkyA+IGN5YmVyc3BhY2U7Civlvq7kuI3otrPpgZMgPiBuZWdsaWdpYmxlOwor6YGU6LO05ZaH5ZibID4gZGFsYWlcLWxhbWE7CivkuI3mj6PlhpLmmKcgPiB2ZW50dXJlXC10bzsKK+ecgeeVpeespuiZnyA+IGFwb3N0cm9waGU7CivkuI3lsI3norTlhZIgPiBub3RcLXByb3BlcjsKK+aEj+aDs+S4jeWIsCA+IHVuZXhwZWN0ZWQ7CivlhrDkuIrpgYvli5UgPiBpY2VcLXNwb3J0czsKK+e+juS5g+a7i+mGrCA+IG1heW9ubmFpc2U7Civpmbjou43kuK3lsIkgPiBsaWV1dGVuYW50Owor5b2q5b2i5aSn5ryiID4gYnVybHlcLWNoYXA7CivokKzkuovpgZTljaEgPiBtYXN0ZXJjYXJkOwor6YGO5rih5pmC5pyfID4gdHJhbnNpdGlvbjsKK+aWsOiBnuWqkumrlCA+IG5ld3NcLW1lZGlhOwor5aCF5a6a5LiN56e7ID4gdW5zd2VydmluZzsKK+atpOaZguS7peWJjSA+IGhlcmV0b2ZvcmU7CivmnJ3prq7miLDniK0gPiBrb3JlYW5cLXdhcjsKK+mbo+S7pee9ruS/oSA+IGluY3JlZGlibGU7CivlhbHlkozmlL/pq5QgPiByZXB1YmxpY2FuOwor5aSW5Lqk5omL6IWVID4gZGlwbG9tYXRpYzsKK+eVoualreWFuOemriA+IGdyYWR1YXRpb247CivohZPnq4vmr5Tmm7ggPiBwaGlsaXBpYW5zOwor6aiO5aOr6aKo5qC8ID4ga25pZ2h0aG9vZDsKK+WMluWmneiInuacgyA+IG1hc3F1ZXJhZGU7CivlpbPmnI3nianlk6EgPiBzdGV3YXJkZXNzOwor5rKS5pyJ55+l6Ka6ID4gaW5zZW5zaWJsZTsKK+aWkemnrumZuOmboiA+IHZhcmllZ2F0ZWQ7CivmsKPli6LmtLbmtLYgPiBhZ2dyZXNzaXZlOwor5LiD5Y2B5bm05LujID4gdGhlXC0xOTcwJydzOwor5b6e5LuK5Lul5b6MID4gaGVuY2Vmb3J0aDsKK+imlueql+aWsOaKgCA+IHdpbmRvd3NcLW50Owor57iu5bCP5qih5Z6LID4gbWluaWF0dXJlOwor5Lul5byX5omA5pu4ID4gZXBoZXNpYW5zOwor5rKS5pyJ5b2i54uAID4gc2hhcGVsZXNzOwor55So5oi25pW45pOaID4gdXNlclwtZGF0YTsKK+mWi+eZvOS6uuWToSA+IGRldmVsb3BlcjsKK+WcsOizquWtuOWutiA+IGdlb2xvZ2lzdDsKK+eUn+eJqeWtuOWutiA+IGJpb2xvZ2lzdDsKK+S4jeWPr+ejqOa7hSA+IGluZGVsaWJsZTsKK+S4jeS6puaoguS5jiA+IGV4dHJlbWVseTsKK+aMieeFp+Wtl+mdoiA+IGxpdGVyYWxseTsKK+S4ieWIhuS5i+S4gCA+IG9uZVwtdGhpcmQ7CivkuI3lj6/mlZHol6UgPiBpbmN1cmFibGU7CivogLbot6/mkpLlhrcgPiBqZXJ1c2FsZW07CivopLvngIbnmoToqbEgPiBibGFzcGhlbXk7CivlnIvlhafmiLDniK0gPiBjaXZpbFwtd2FyOwor5Y2x5Zyw6aas5ouJID4gZ3VhdGFtYWxhOwor5Yqg5a+G5b6M55qEID4gZW5jcnlwdGVkOwor5pyJ5pS75pOK5oCnID4gb2ZmZW5zaXZlOwor5oOh5ZCN5pit5b2wID4gbm90b3Jpb3VzOwor57aT5r+f5a245a62ID4gZWNvbm9taXN0Owor6Zi/56m65Yqg55OcID4gYWNvbmNhZ3VhOwor5Yqg5ouJ5aSq5pu4ID4gZ2FsYXRpYW5zOwor57ay6Zqb6Imy5oOFID4gY3liZXJwb3JuOwor6Iqx57KJ6YGO5pWPID4gaGF5XC1mZXZlcjsKK+eCuuaZgumBjuaXqSA+IHByZW1hdHVyZTsKK+iBr+WQiOe1hOe5lCA+IHN5bmRpY2F0ZTsKK+acieWJtemAoOWKmyA+IGluZ2VuaW91czsKK+S6uueJqeaPj+WvqyA+IHBvcnRyYXlhbDsKK+S7pOS6uuasveS9qSA+IGFkbWlyYWJsZTsKK+mYv+Wlh+mHjOaWryA+IGFlc2NoeWx1czsKK+Wtn+WKoOaLieiqniA+IGJlbmdhbGVzZTsKK+apn+aisOijnee9riA+IG1hY2hpbmVyeTsKK+aWkee/heWxsem2iSA+IHBhcnRyaWRnZTsKK+S4jeWPr+WLneaVuCA+IGNvdW50bGVzczsKK+e4veacg+acg+mVtyA+IHByZXNpZGVudDsKK+avq+eEoeeWkeWVjyA+IGNlcnRhaW50eTsKK+a+s+Wkp+WIqeS6niA+IGF1c3RyYWxpYTsKK+Wkp+Wvq+mOluWumiA+IGNhcHNcLWxvY2s7CivljYrlt6XljYroroAgPiBwYXJ0XC13b3JrOwor5oiR5YCR6Ieq5bexID4gb3Vyc2VsdmVzOwor576F5b655pav54m5ID4gcm9jaGVzdGVyOwor566h5bym5qiC5ZyYID4gb3JjaGVzdHJhOwor55m95pel5YGa5aSiID4gZGF5XC1kcmVhbTsKK+S7u+S9leWFtuS7liA+IGFueVwtb3RoZXI7Civlt7Tli5Lmlq/lnaYgPiBwYWxlc3RpbmU7CivlnKjvuY3ml4HpgoogPiBhbG9uZ3NpZGU7CivlhYjopovkuYvmmI4gPiBmb3Jlc2lnaHQ7CivpmqjkuYvogIzlvowgPiBmcm9tXC10aGF0Owor5LiK5YCL5pif5pyfID4gbGFzdFwtd2VlazsKK+awkeS4u+aUv+ayuyA+IGRlbW9jcmFjeTsKK+S4u+euoeS6uuWToSA+IGV4ZWN1dGl2ZTsKK+iyoeWLmeenmOabuCA+IHRyZWFzdXJlcjsKK+eUn+iCsuiDveWKmyA+IGZlcnRpbGl0eTsKK+WFseS6q+i7n+mrlCA+IHNoYXJld2FyZTsKK+S4jeWPl+atoei/jiA+IHVud2VsY29tZTsKK+WHueWHuOWNsOWItyA+IGVtYm9zc2luZzsKK+aSkumDveipsuS6uiA+IHNhZGR1Y2VlczsKK+WFseeUouS4u+e+qSA+IGNvbW11bmlzbTsKK+S4jeS7peeCuueEtiA+IG9iamVjdFwtdG87CivnpL7mnIPkuLvnvqkgPiBzb2NpYWxpc207CivonJzmnIjlgYfmnJ8gPiBob25leW1vb247CivlkIznj63lkIzlrbggPiBjbGFzc21hdGU7CivlhbfmnInkuLvmrIogPiBzb3ZlcmVpZ247Civoh6rli5XmqJPmoq8gPiBlc2NhbGF0b3I7Civnt4rmgKXkuovku7YgPiBlbWVyZ2VuY3k7CivpgIDpu5Hmv4DntKAgPiBtZWxhdG9uaW47CivkuI3oqIjlhbbmlbggPiBjb3VudGxlc3M7Civln7rnnaPmlZnlvpIgPiBjaHJpc3RpYW47Civlh7nlh7jou4voirEgPiBlbWJvc3Npbmc7CivkuI3nhLbnmoToqbEgPiBvdGhlcndpc2U7Civkup7moLzploDovrIgPiBhZ2FtZW1ub247CivkuI3pgJ7kuYvlvpIgPiBkZXNwZXJhZG87Civnva7kuYvluqblpJYgPiBkaXNyZWdhcmQ7CivmhqTmhqTkuI3lubMgPiBpbmRpZ25hbnQ7CivkuIvlgIvmmJ/mnJ8gPiBuZXh0XC13ZWVrOwor5q235Y+y5a245a62ID4gaGlzdG9yaWFuOwor5aCF5b+N5LiN5ouUID4gZm9ydGl0dWRlOwor5YWo5aC05LiA6Ie0ID4gdW5hbmltb3VzOwor576F5YiH5pav54m5ID4gcm9jaGVzdGVyOwor6KGo5oSP5paH5a2XID4gaWRlb2dyYXBoOwor6YCa6LKo6Iao6IS5ID4gaW5mbGF0aW9uOwor6K6K5o+b6Kit5YKZID4gY29udmVydGVyOwor57aT5r+f5a246ICFID4gZWNvbm9taXN0Owor5LiZ56iu5bCE57eaID4gZ2FtbWFcLXJheTsKK+aEj+awo+ebuOaKlSA+IGNvbmdlbmlhbDsKK+eNsuaatOWIqeiAhSA+IHByb2ZpdGVlcjsKK+aWr+a0m+S8kOWFiyA+IHNsb3Zha2lhOwor5rK554K45ZyI6aSFID4gZG91Z2hudXQ7Civlm6DvuY3kuYvmlYUgPiBpbmFzbXVjaDsKK+mbjeWuueWkp+W6piA+IGdlbmVyb3VzOwor5aW95aW95YWS5ZywID4gcHJvcGVybHk7CivpqI7lo6vmsKPmpoIgPiBjaGl2YWxyeTsKK+iJvuW+t+iVvuW+tyA+IGFkZWxhaWRlOwor5YWN6LK76Luf5Lu2ID4gZnJlZXdhcmU7Civku6XlpKrntrLntaEgPiBldGhlcm5ldDsKK+ahg+iKseW/g+acqCA+IG1haG9nYW55Owor5qiZ5rqW6KaP5qC8ID4gc3RhbmRhcmQ7CivnhKHoq5bkvZXmmYIgPiB3aGVuZXZlcjsKK+W5vuS5juaykuaciSA+IHNjYXJjZWx5Owor54mn5bir5LmL6IG3ID4gbWluaXN0cnk7Civlha3ljYHlm5vokKwgPiA2NFwtMFwtMDAwOwor6JKZ5omY576F5ouJID4gbW90b3JvbGE7Civkurrlt6XmtYHnlKIgPiBhYm9ydGlvbjsKK+WWh+WPreawtOS7mSA+IGRhZmZvZGlsOwor5ZyL6Zqb57ay57WhID4gaW50ZXJuZXQ7CivnhKHoq5bkvZXkuosgPiBhbnl0aGluZzsKK+eyvuWKm+WFheaymyA+IHZpZ29yb3VzOwor5ZOl5YCr5biD57SAID4gY29sdW1idXM7Civlt6bovKrmiYvmp40gPiByZXZvbHZlcjsKK+WTpeWAq+avlOS6niA+IGNvbG9tYmlhOwor5ZCb5Li75pS/5rK7ID4gbW9uYXJjaHk7Civkurrlj6PnqKDlr4YgPiBwb3B1bG91czsKK+W8leS6uuazqOebriA+IHN0cmlraW5nOwor6Zi/5aWH5q235pavID4gYWNoaWxsZXM7Civlpaflvrfkv67mlq8gPiBvZHlzc2V1czsKK+WdpuahkeWwvOS6niA+IHRhbnphbmlhOwor5LiN6aGn5LiA5YiHID4gcmVja2xlc3M7Civli6LlpoLnoLTnq7kgPiBzd2VlcGluZzsKK+i+suWutuW6remZoiA+IGZhcm15YXJkOwor5a625bqt5L2c5qWtID4gaG9tZXdvcms7CivljbPlsIfkvoboh6ggPiBpbW1pbmVudDsKK+mfs+aoguWFieeinyA+IG11c2ljXC1jZDsKK+S6lOW9qeizk+e0myA+IGNvbG9yZnVsOwor5ryi5a+G54i+6aCTID4gaGFtaWx0b247Civoqp7oqIDlrbjlrrYgPiBsaW5ndWlzdDsKK+m+jemgreiAgeWkpyA+IGJpZ1wtYm9zczsKK+iFk+WIqemWgOabuCA+IHBoaWxlbW9uOwor6Zu76IWm57ay57WhID4gaW50ZXJuZXQ7CivmkanmiZjnvoXmi4kgPiBtb3Rvcm9sYTsKK+W3tOWfuuaWr+WdpiA+IHBha2lzdGFuOwor5be05be05aSa5pavID4gYmFyYmFkb3M7Civnq7bpgbjmtLvli5UgPiBjYW1wYWlnbjsKK+e1guerr+eUqOaItiA+IGVuZFwtdXNlcjsKK+WiqOawtOeTtuaetiA+IGlua3N0YW5kOwor57ay6Zqb57ay6LevID4gaW50ZXJuZXQ7CivnhKHkurrpp5Xpp5sgPiB1bm1hbm5lZDsKK+azleWIqeizveS6uiA+IHBoYXJpc2VlOwor56eR576F5ouJ5aSaID4gY29sb3JhZG87CivljKrlvpLpm4blnJggPiBnYW5nc3RlcjsKK+WwhOmgu+WZqumfsyA+IHJmXC1ub2lzZTsKK+S6uumBk+S4u+e+qSA+IGh1bWFuaXNtOwor5LiA5b+D5LiA5oSPID4gaW50ZW50bHk7CivntrLpmpvntrLntaEgPiBpbnRlcm5ldDsKK+eyvuelnumMr+S6giA+IGluc2FuaXR5Owor5ZiJ5bm06I+v5pyDID4gY2Fybml2YWw7CivljZrojKjnk6bntI0gPiBib3Rzd2FuYTsKK+Wjn+aWt+iyqeizoyA+IG1vbm9wb2x5Owor5L+d5Yqg5Yip5LqeID4gYnVsZ2FyaWE7CivosrTml4/ouqvku70gPiBsb3Jkc2hpcDsKK+iCjOiCieeZvOmBlCA+IG11c2N1bGFyOwor5rWB5oSf55ar6IuXID4gZmx1XC1zaG90Owor5bel5L2c6YGO5bqmID4gb3Zlcndvcms7CivkuZnlpKrntrLot68gPiBldGhlcm5ldDsKK+mqqOmgreaetuWtkCA+IHNrZWxldG9uOwor5oSb5Zug5pav5Z2mID4gZWluc3RlaW47CivnhKHoq5bkvZXomZUgPiBhbnl3aGVyZTsKK+WFrOmWi+aMh+iyrCA+IGRlbm91bmNlOwor5q2h6L+O5YWJ6IeoID4gd2VsY29tZTsKK+WuieaPkOeTnOWztiA+IGFudGlndWE7Civllqrlv4Pnl4Xni4IgPiBsdW5hdGljOwor5qC85a2Q5qOJ5biDID4gZ2luZ2hhbTsKK+iQrOacieW8leWKmyA+IGdyYXZpdHk7CivmtojpmLLpmorlk6EgPiBmaXJlbWFuOwor5omz5LiN5YCS5YWSID4gdHVtYmxlcjsKK+eIrOifsuWLleeJqSA+IHJlcHRpbGU7CivpgIDkvI3ou43kurogPiB2ZXRlcmFuOwor5aSW56eR6Yar55SfID4gc3VyZ2VvbjsKK+WcqO+5jeS5i+mWkyA+IGJldHdlZW47CivljYHlhITkvY3lhYMgPiBnaWdhYml0Owor6Lqr6auU6Zqc5a6zID4gY3JpcHBsZTsKK+mYv+aRqeWwvOS6niA+IGFtbW9uaWE7CivooJXli5XliY3pgLIgPiB3cmlnZ2xlOwor5rS+57Wm5bel5L2cID4gdG9cLXRhc2s7CivolpTolofoirHolb4gPiByb3NlYnVkOwor54Sh6KuW5L2V5Lq6ID4gd2hvZXZlcjsKK+aWr+eTpuW4jOijoSA+IHN3YWhpbGk7CivoiKrnqbrpg7Xku7YgPiBhaXJtYWlsOwor5Lqe54m56Jit5aSnID4gYXRsYW50YTsKK+mAsumAgOWFqemboyA+IGRpbGVtbWE7CivkuI3nqILkuI3ojqAgPiB1c2VsZXNzOwor5YiG5p6Q5Lq65aOrID4gYW5hbHlzdDsKK+acgOS9jumZkOW6piA+IG1pbmltdW07CivlhYvku4DnsbPniL4gPiBrYXNobWlyOwor5rS75YuV5oi/5bGLID4gdHJhaWxlcjsKK+S7gOS4gOWlieeNuyA+IHRpdGhpbmc7Civloqjopb/lk6XkurogPiBtZXhpY2FuOwor5Yqg5qau6ICA5pa8ID4gZ2xvcmlmeTsKK+S4jeW5suS4jea3qCA+IHVuY2xlYW47CivkuInkvY3kuIDpq5QgPiB0cmluaXR5Owor5aWz55So5YWn6KGjID4gY2hlbWlzZTsKK+WFrOebiuS6i+alrSA+IHV0aWxpdHk7Civml6XluLjlt6XkvZwgPiByb3V0aW5lOwor55S35oCn6Kaq5bGsID4ga2luc21hbjsKK+iyqOeJqemBi+i8uCA+IGZyZWlnaHQ7CivniZnnp5HphqvnlJ8gPiBkZW50aXN0Owor6YOh5rK75a6J5a6YID4gc2hlcmlmZjsKK+S6nuS8r+aLiee9lSA+IGFicmFoYW07CivlhYvnvoXlnLDkup4gPiBjcm9hdGlhOwor5YWo56We54GM5rOoID4gcmFwdHVyZTsKK+WwiOenkemZouagoSA+IGFjYWRlbXk7Civpq5jpgJ/lhazot68gPiBoaWdod2F5Owor57Wm6IiH6LOH5qC8ID4gcXVhbGlmeTsKK+WNsOWcsOWuiemCoyA+IGluZGlhbmE7CivkuI3lvpfogIznn6UgPiB1bmtub3duOwor6Iiq56m65YWs5Y+4ID4gYWlybGluZTsKK+acieiAkOS5heWKmyA+IGR1cmFibGU7CivlpKrpmb3pu5HlrZAgPiBzdW5zcG90Owor5biM5Lyv5L6G5pu4ID4gaGVicmV3czsKK+Wlp+ael+WMueWFiyA+IG9seW1waWM7Civkup7liKnmoZHpgqMgPiBhcml6b25hOwor6JOL5LiW5aSq5L+dID4gZ2VzdGFwbzsKK+WWi+WWi+S4jeS8kSA+IGNoYXR0ZXI7CivmhJvlsYvlj4rng48gPiBsb3ZlXC1tZTsKK+e2k+a/n+WItuW6piA+IGVjb25vbXk7Civku6XppqzlhafliKkgPiBlbWFudWVsOwor6KaP5YqD5Lq65ZOhID4gcGxhbm5lcjsKK+aFiOWWhOapn+aniyA+IGNoYXJpdHk7CivnlLfmgKflsIrnqLEgPiBlc3F1aXJlOwor5LiN5LiJ5LiN5ZubID4gZHViaW91czsKK+WIl+eOi+e0gOS4iyA+IDJcLWtpbmdzOwor5YiX546L57SA5LiKID4gMVwta2luZ3M7Civpmbjou43kuIrmoKEgPiBjb2xvbmVsOwor6Jmb5qeL5bCP6KqqID4gZmljdGlvbjsKK+WkluenkeaJi+ihkyA+IHN1cmdlcnk7CivlkIToibLlkITmqKMgPiBkaXZlcnNlOwor5L2b576F6KOh6YGUID4gZmxvcmlkYTsKK+WFrOeIteWkq+S6uiA+IGR1Y2hlc3M7CivmnInlpb3lpYflv4MgPiBjdXJpb3VzOwor5b285b6X5b6M5pu4ID4gMlwtcGV0ZXI7CivnjrvliKnntq3kup4gPiBib2xpdmlhOwor5bCP5Z6L5quD5qulID4gY2FiaW5ldDsKK+WNsOWDj+a3seWIuyA+IGltcHJlc3M7CivmjIflsI7mlZnmjoggPiBhZHZpc2VyOwor5LiN55+l5L2V5pWFID4gc29tZWhvdzsKK+mYv+WPuOWMueaelyA+IGFzcGlyaW47Civph5HlhYnploPniI0gPiBzcGFuZ2xlOwor5LqS6IGv57ay57WhID4gbmV0d29yazsKK+WltOmauOWItuW6piA+IHNsYXZlcnk7CivmgaLlvqnljp/ni4AgPiByZXN0b3JlOwor6aas5L6G6KW/5LqeID4gbWFsYXNpYTsKK+WxseiDoeahg+acqCA+IGhpY2tvcnk7CivlvbzlvpfliY3mm7ggPiAxXC1wZXRlcjsKK+WwseWvouaZgumWkyA+IGJlZHRpbWU7Civlm5vovKrppqzou4ogPiBjaGFyaW90Owor5Lqe5ouJ5be06aasID4gYWxhYmFtYTsKK+W9iOmBk+WwjuW9iCA+IG1pc3NpbGU7CivmnInnsr7npZ7nl4UgPiBpbnNhbmU7Civlk7rkubPli5XniakgPiBtYW1tYWw7CivkvIrlsLzkvIrlvrcgPiBhZW5laWQ7CivloZ7niL7ntq3kup4gPiBzZXJiaWE7Civkvb/vuY3osZDlr4wgPiBlbnJpY2g7CivkvIrlsLzkup7mlq8gPiBhZW5lYXM7CivpqYXpgJDlh7rlooMgPiBkZXBvcnQ7CivlhavliIbpn7PnrKYgPiBxdWF2ZXI7CivlpKnnq7rniaHkuLkgPiBkYWhsaWE7Civpm6LlpYfmnInotqMgPiBxdWFpbnQ7CivnmbzlmI7lmI7ogbIgPiByYXR0bGU7CivotoXpgY7pmZDluqYgPiBleGNlZWQ7CivkuI3lj6/lkYrkurogPiBoaWRkZW47CivlipvotrPku6XlgZogPiBhZmZvcmQ7CivlnKjvuY3mnJ/plpMgPiBkdXJpbmc7CivnqK7ml4/kuLvnvqkgPiByYWNpc207CivlvpLmraXml4XooYwgPiBoaWtpbmc7Civml4XooYzoo53lgpkgPiBvdXRmaXQ7CivlnLDkuIvpkLXot68gPiBzdWJ3YXk7CivlqIHlo6vlv4zphZIgPiB3aGlza3k7CivpgKPlrZfnrKbomZ8gPiBoeXBoZW47Civlu6LpmaTou43lgpkgPiBkaXNhcm07CivpoZvlgJLpgY7kvoYgPiBpbnZlcnQ7CivkuIPmnIjkuIDomZ8gPiBqdWx5XC0xOwor6bue6aCt5oub5ZG8ID4gYmVja29uOwor5Lyv5Luy5Y+U5a2jID4gZWxkZXN0Owor6by75Y+j6YOo5YiGID4gbXV6emxlOwor5bCW6IGy5ZW85ZOtID4gc3F1ZWFsOwor5ZG96YGL6Ki75a6aID4gb3JkYWluOwor5Lq66aCt542F6LqrID4gc3BoaW54Owor5LiN5bm45LmL5LqLID4gbWlzaGFwOwor5Zyo77mN5LmL5peBID4gYmVzaWRlOwor57SE57+w5LqM5pu4ID4gMlwtam9objsKK+i9n+i9n+eDiOeDiCA+IHN0cm9uZzsKK+WNgeWbm+ihjOipqSA+IHNvbm5ldDsKK+S6jOiAheS5i+S4gCA+IGVpdGhlcjsKK+e0hOe/sOS4ieabuCA+IDNcLWpvaG47CivntITnv7DkuIDmm7ggPiAxXC1qb2huOwor576O5rSy5YWA6be5ID4gY29uZG9yOwor5LqU5YiG576O6YeRID4gbmlja2VsOwor6Zmk5LqG5LmL5aSWID4gZXhjZXB0Owor6KO96Zm25bel5Lq6ID4gcG90dGVyOwor5Lq65Y+j6Kq/5p+lID4gY2Vuc3VzOwor54Sh6KuW5aaC5L2VID4gYW55aG93Owor5Ye65Z+D5Y+K6KiYID4gZXhvZHVzOwor5pyJ6Jel55mu6ICFID4gYWRkaWN0Owor6Yej6a2a55So5YW3ID4gdGFja2xlOwor5q+U6LyD5Zac5q2hID4gcHJlZmVyOwor6Zi/5aSa5bC85pavID4gYWRvbmlzOwor6YCD5LmL5aSt5aStID4gZXNjYXBlOwor57Sr576F6Jit6ImyID4gdmlvbGV0Owor5YKt5Lq66aCY54+tID4gYnV0bGVyOwor5LiN5oiw5LiN5ZKMID4gbm9cLXdhcjsKK+iYh+agvOiYreW4vSA+IGJvbm5ldDsKK+a4m+S9jumAn+W6piA+IHJldGFyZDsKK+mYv+aLieaWr+WKoCA+IGFsYXNrYTsKK+S9v+WFt+mrlOWMliA+IGVtYm9keTsKK+mFkueyvumjsuaWmSA+IGxpcXVvcjsKK+i3keWgguWFkueahCA+IHdhaXRlcjsKK+S9v++5jeiDveWkoCA+IGVuYWJsZTsKK+eUn+awo+WLg+WLgyA+IGxpdmVseTsKK+eEoeazleeEoeWkqSA+IG91dGxhdzsKK+azouaWr+WwvOS6niA+IGJvc25pYTsKK+iZm+W8teiBsuWLoiA+IGJsdWZmOwor5pyq5oiQ5bm05Lq6ID4gbWlub3I7CivpurXljIXluKvlgoUgPiBiYWtlcjsKK+aEn+WMlumkheS5viA+IHdhZmVyOwor6Z2e5bi45a6z5oCVID4gZHJlYWQ7CivkuIDnt5rlvq7lhYkgPiBnbGVhbTsKK+S6lOiKseWFq+mWgCA+IG15cmlkOwor5pac57SL6Luf5ZGiID4gdHdlZWQ7CivlvrflhYvolqnmlq8gPiB0ZXhhczsKK+a7v+i6q+WhteWfgyA+IGR1c3R5Owor6Kq/5ZGz6IKJ5rGBID4gZ3Jhdnk7CivmqJnmupblsLrlr7ggPiBnYXVnZTsKK+WcqO+5jeS5i+S4iyA+IGJlbG93Owor5Zyo77mN5LmL5LiKID4gYWJvdmU7Civon7Lps6Xlj6vogbIgPiBjaGlycDsKK+WLleaFi+W9seWDjyA+IHZpZGVvOwor5LiJ5Y2D5LqU55m+ID4gM1wtNTAwOwor56S65aiB6YGL5YuVID4gcmFsbHk7CivovInosqjmsb3ou4ogPiBsb3JyeTsKK+W4g+W4m+iPveeynyA+IGNsb3RoOwor56We57aT6YGO5pWPID4ganVtcHk7CivkvIrmlq/omK3mlZkgPiBpc2xhbTsKK+aEgeecieiLpuiHiSA+IGZyb3duOwor5ZCJ5pmu6LO95Lq6ID4gZ3lwc3k7CivmhJvlhYvmlq/lhYkgPiB4XC1yYXk7Civlrrbluq3mlZnluKsgPiB0dXRvcjsKK+mcsum9kuiAjOeskSA+IGdyaW47Civlvp7lrrnkuI3ov6sgPiBjYWxtOwor5LiA6KeS6YqA5bmjID4gZGltZTsKK+mjsumjn+eZgumkiiA+IGRpZXQ7Civnm67nnqrlj6PlkYYgPiBzdHVuOwor5pO66b6N6ZaA6ZmjID4gY2hhdDsKK+WIsO+5jeS5i+S4iiA+IG9udG87Civlhajpq5Tkurrlk6EgPiBjcmV3Owor6YGg56iL55uj5o6nID4gcm1vbjsKK+WcqO+5jeS5i+S4rSA+IGFtaWQ7CivlsI/otbfph43mqZ8gPiBqYWNrOwor6LyV6ICM5piT6IiJID4gZWFzeTsKK+mHkeWxrOiWhOeJhyA+IGZvaWw7CivpoK3ohabmuIXmpZogPiBzYW5lOwor5Zyo5rC05q2l6KGMID4gd2FkZTsKK+WHuuenn+axvei7iiA+IHRheGk7Civpq5jniL7lpKvnkIMgPiBnb2xmOwor6Zu76Kmx6Yi06IGyID4gYnV6ejsKK+a2suaZtumhr+ekuiA+IGxjZDsKK+eDj+WQiOS5i+ecviA+IG1vYjsKK+e0ouWFt+ijnee9riA+IHJpZzsKK+WFrOWFseaxvei7iiA+IGJ1czsKK+iOq+WQjeWFtuWmmSA+IG9kZDsKK+Wck+W9ouacqOadkCA+IGxvZzsKK+S4jeWIhuWLneiyoCA+IHRpZTsKK+iho+acjee4q+mCiiA+IGhlbTsKK+Wck+W9oum6teWMhSA+IGJ1bjsKK+adnOadvuWtkOmFkiA+IGdpbjsKK+WcqO+5jeS5i+WFpyA+IGluOwor55u06YCa6LuKID4gXCJ0aHJvdWdoXC10cmFpblwiXC1cKHJlZmVyc1wtdG9cLXRoZVwtaWRlYVwtb2ZcLXJldGFpbmluZ1wtcHJldmlvdXNcLWxlZ2lzbGF0dXJlXC1hZnRlclwtdHJhbnNpdGlvblwtdG9cLWNoaW5lc2VcLXJ1bGVcLWluXC1ob25nXC1rb25nXC1vclwtbWFjYXVcKTsKK+Wwj+iHn+msvCA+IGRpcnR5XC1saXR0bGVcLW1vbnN0ZXJcLVwoc3Bva2VuXC1hZmZlY3Rpb25hdGVseVwtdG9cLWFcLWNoaWxkXC13aG9cLWhhc1wtZ290dGVuXC1oaW1cKGhlclwpc2VsZlwtZGlydHlcO1wtbGl0ZXJhbGx5XC1cImxpdHRsZVwtZGlydHlcLWdob3N0XCJcKTsKK+e2uuiJsuS9syA+IGl0aGFjYVwsXC1ueVwtXChidXRcLXByb25vdW5jZWRcLXlpM1wtc2U0XC1qaWExXCxcLWZvbGxvd2luZ1wtYVwtbWlzdGFrZVwtbWFkZVwtYnlcLWh1Mlwtc2hpNFwt6IOh6YGpXCk7Civpm7fls7DloZQgPiBsZWlmZW5nXC1wYWdvZGFcLFwtYnlcLXdlc3RcLWxha2VcLXVudGlsXC1pdFwtd2FzXC1kZXN0cm95ZWRcLVwoYWxzb1wtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZVwpOwor54mh5Li55Y2hID4gcGVvbnlcLWNhcmRcLVwoY3JlZGl0XC1jYXJkXC1pc3N1ZWRcLWJ5XC1pbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwpOwor5LiJ5bKU5Y+jID4gYXRcLXRoZVwtY3Jvc3Nyb2Fkc1wsXC10aGVcLW5hbWVcLW9mXC1hXC1mYW1vdXNcLW9wZXJhXCxcLXN0b3J5XC1mcm9tXC1zaHVpXC1odVwtemh1YW47CivmnY7oh6rmiJAgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLWxpXC16aVwtY2hlbmdcLFwtbGVhZGVyXC1vZlwtbWluZ1wtZHluYXN0eVwtcGVhc2FudFwtcmViZWxsaW9uOwor5rGf5YWr6bueID4gXCJqaWFuZ1wtemVtaW4nJ3NcLWVpZ2h0XC1wb2ludFwtZm9ybXVsYVwiXC1cKGZvclwtcmVzdW1pbmdcLWFcLWRpYWxvZ1wtd2l0aFwtdGFpd2FuXCk7CivphKfkuq7mtKogPiB0YW5nXC1saWFuZ1wtaG9uZ1wtXChvcHBvc2l0aW9uXC1jYW5kaWRhdGVcLWluXC1qYW5cLTE5OTZcLXNpbmdhcG9yZVwtZWxlY3Rpb25zXCk7CivlkIPlpKfmiLYgPiBtYXNzXC1zZWl6dXJlXC1vZlwtZm9vZFwtZnJvbVwtbGFuZGxvcmRzXC1kdXJpbmdcLWZhbWluZXNcLWJlZm9yZVwtbGliZXJhdGlvbjsKK+adjuaZguePjSA+IGxpXC1zaGlcLXpoZW5cLVwoMTUxOFwtMTU5M1wsXC1mYW1vdXNcLWRvY3RvclwsXC1hdXRob3JcLW9mXC1iZW4zXC1jYW8zXC1nYW5nMVwtbXU0Owor56a95rWB5oSfID4gXCJiaXJkXC1mbHVcIlwtXChmbHVcLWNhcnJpZWRcLWJ5XC1iaXJkc1wtXC1cLWZvdW5kXC1pblwtaG9uZ1wta29uZ1wtaW5cLWxhdGVcLTE5OTdcKTsKK+iSmeS7o+eIviA+IFwod2FsdGVyXClcLW1vbmRhbGVcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1qYXBhblwsXC1mb3JtZXJcLXVzXC12aWNlXC1wcmVzaWRlbnRcKTsKK+mZs+e0jeW+tyA+IFwoY2xhaXJlXClcLWNoZW5uYXVsdFwsXC1jb21tYW5kZXJcLW9mXC1mbHlpbmdcLXRpZ2Vyc1wtZHVyaW5nXC13b3JsZFwtd2FyXC1paTsKK+e2reeIvuWuuSA+IFwoam9oYW5uZXNcLWxvZGV3aWt1c1wpXC12aWxqb2VuXC1cKHNvdXRoXC1hZnJpY2FuXC1hbWJhc3NhZG9yXC10b1wtdGFpd2FuXCk7CivokZvmtLLlo6kgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtZ2V6aG91YmFcLWRhbVwtb25cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLFwtaW5cLXNpY2h1YW47CivpvLvpn7vmr40gPiBcKG9mXC1jaGluZXNlXC1wcm9udW5jaWF0aW9uXClcLWFcLXZvd2VsXC1mb2xsb3dlZFwtYnlcLWFcLW5hc2FsXC1jb25zb25hbnQ7Civph5HmsLjljZcgPiBraW1cLXlvbmdcLW5hbVwtXChub3J0aFwta29yZWFuXC1kZXB1dHlcLXByZW1pZXJcLWFuZFwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+aWl+aJueaUuSA+IHN0cnVnZ2xlXC1jcml0aWNpc21cLXRyYW5zZm9ybWF0aW9uXC1cKGN1bHR1cmFsXC1yZXZvbHV0aW9uXC1zbG9nYW5cKTsKK+err+WNiOevgCA+IHRoZVwtZHJhZ29uXC1ib2F0XC1mZXN0aXZhbFwtXCh0aGVcLTV0aFwtZGF5XC1vZlwtdGhlXC01dGhcLWx1bmFyXC1tb250aFwpOwor55m96Iyr6IyrID4gXChvZlwtbWlzdFwsXC1zbm93XCxcLWZsb29kd2F0ZXJcLFwtZXRjXClcLWFcLXZhc3RcLWV4cGFuc2VcLW9mXC13aGl0ZW5lc3M7Civmlq/kvannvoUgPiBcKGpvYW5cKVwtc3Blcm9cLVwodW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVjb25vbWljXC1hZmZhaXJzXCk7CivlpKrmpbXmi7MgPiBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXNoYWRvd2JveGluZ1wtXCh0YWlcLWNoaVwtY2h1YW5cKTsKK+acg+S4jeacgyA+IFwocG9zaW5nXC1hXC1xdWVzdGlvblw6XC13aGV0aGVyXC1zb21lb25lXCxcLXNvbWV0aGluZ1wpXC1jYW5cLW9yXC1ub3Q7CivmirHkvZvohbMgPiBjbGFzcFwtYnVkZGEnJ3NcLWZlZXRcLVwtXC1wcm9mZXNzXC1kZXZvdGlvblwtb25seVwtd2hlblwtaW5cLXRyb3VibGU7Civom4voirHmua8gPiBjbGVhclwtc291cFwtY29udGFpbmluZ1wtYmVhdGVuXC1lZ2dcLWFuZFwtZ3JlZW5cLWxlYWZ5XC12ZWdldGFibGU7Civph5HlsbHlr7ogPiBqaW5zaGFuXC10ZW1wbGVcLFwtd2hlcmVcLWZhaGFpXC1saXZlc1wtXChmcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlXCk7CivkuKbokoLok64gPiB0d2luXC1sb3R1c1wtZmxvd2Vyc1wtb25cLW9uZVwtc3RhbGtcLVwtXC1hXC1kZXZvdGVkXC1tYXJyaWVkXC1jb3VwbGU7Civpo5vomY7pmoogPiBmbHlpbmdcLXRpZ2Vyc1wtXCh1c1wtYWlybWVuXC1pblwtY2hpbmFcLWR1cmluZ1wtd29ybGRcLXdhclwtdHdvXCk7CivmmpfoirHlhZIgPiBhXC12ZWlsZWRcLWRlc2lnblwtaW5jaXNlZFwtaW5cLXBvcmNlbGFpblwtb3JcLXdvdmVuXC1pblwtZmFicmljOwor5ouU572Q5a2QID4gY3VwcGluZ1wtdGVjaG5pcXVlXC11c2VkXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW1lZGljaW5lOwor5YWD5a6156+AID4gdGhlXC1sYW50ZXJuXC1mZXN0aXZhbFwsXC1qYW51YXJ5XC0xNVwtb25cLXRoZVwtbHVuYXJcLWNhbGVuZGFyOwor5YCL6auU5oi2ID4gYVwtc21hbGxcLXByaXZhdGVcLWJ1c2luZXNzXC1cKHVzZWRcLWluXC1tYWlubGFuZFwtY2hpbmFcLW9ubHlcKTsKK+aZr+W+t+mOriA+IGppbmdcLWRlXC16aGVuXC1cKGFcLWNoaW5lc2VcLWNpdHlcLWluXC1qaWFuZ1wteGlcLeaxn+ilv1wtcHJvdmluY2VcKTsKK+mVt+WfjuWNoSA+IGdyZWF0XC13YWxsXC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtYmFua1wtb2ZcLWNoaW5hXCk7Civlk4josp3niL4gPiBcKHdlYnN0ZXJcKVwtaHViYmVsbFwtXChmb3JtZXJcLWFzc29jaWF0ZVwtYXR0b3JuZXlcLWdlbmVyYWxcKTsKK+iQrOWjveWxsSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwsXC1sb25nZXZpdHlcLWhpbGxcLFwtaW5cLXN1bW1lclwtcGFsYWNlXC3poKTlkozlnJI7Civmi4npgqPng4ggPiBcKHByaW5jZVwpXC1yYW5hcmlkZGhcLVwoc29uXC1vZlwta2luZ1wtc2loYW5vdWtcLW9mXC1jYW1ib2RpYVwpOwor5YyF5bmy5Yi2ID4gYVwtc3lzdGVtXC1vZlwtcGF5bWVudFwtcGFydGx5XC1pblwta2luZFwtYW5kXC1wYXJ0bHlcLWluXC1jYXNoOwor6aGP55yf5Y2/ID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC15YW5cLXpoZW5xaW5nXCxcLWFcLWZhbW91c1wtY2FsbGlncmFwaGVyOwor55m957Sg6LKeID4gXChuYW1lXC1vZlwtYVwtcGVyc29uXClcLWJhaVwtc3V6aGVuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7Civnmb3lhrDlhrAgPiBwYWlcLXBpbmdcLXBpbmdcLVwod2VsbFwta25vd25cLXRhaXdhblwtcGVyZm9ybWluZ1wtYXJ0aXN0XCk7CivkvK/mganmlq8gPiBcKG5pY2hvbGFzXClcLWJ1cm5zXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtc3Bva2VzcGVyc29uXCk7CivlsLzotavpra8gPiBcKGphd2FoYXJsYWxcKVwtbmVocnVcLVwoZmlyc3RcLXByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7CivmkqXmtarpvJMgPiBhXC1kcnVtXC1zaGFwZWRcLXJhdHRsZVwtXCh1c2VkXC1ieVwtcGVkbGFyc1wtb3JcLWFzXC1hXC10b3lcKTsKK+WMl+Wkp+iNkiA+IHRoZVwtZ3JlYXRcLW5vcnRoZXJuXC13aWxkZXJuZXNzXC1cKGluXC1ub3J0aGVyblwtY2hpbmFcKTsKK+WNgeS6lOWkpyA+IDFcLTV0aFwtcGFydHlcLWNvbmdyZXNzXC1cKG9mXC1jaGluZXNlXC1jb21tdW5pc3RcLXBhcnR5XCk7CivmnY7lhYnogIAgPiBsZWVcLWt1YW5cLXlld1wtXChmb3JtZXJcLXByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor6LeR5rGf5rmWID4gdG9cLW1ha2VcLWFcLWxpdmluZ1wtYXNcLWFcLXRyYXZlbGxpbmdcLXBlcmZvcm1lclwsXC1ldGNcLjsKK+S6pOaYk+mhjSA+IHN1bVwtb3JcLXZvbHVtZVwtb3JcLWFtb3VudFwtb2ZcLWJ1c2luZXNzXC10cmFuc2FjdGlvbnM7CivmnpfosZDmraMgPiBsaW5cLWZlbmdcLWNoZW5nXC1cKHRhaXdhblwtbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yXCk7CivokaPlu7roj68gPiB0dW5nXC1jaGVlXC1od2FcLVwoaG9uZ1wta29uZ1wtbGVhZGVyXC1hZnRlclwtanVseVwtMTk5N1wpOwor5Y2X5Lqs6LevID4gbmFuamluZ1wtc3RcLlwsXC1sYXJnZVwtY29tbWVyY2lhbFwtc3RyZWV0XC1pblwtc2hhbmdoYWk7Civlhavku5nmoYwgPiBvbGRcLWZhc2hpb25lZFwtc3F1YXJlXC10YWJsZVwtdG9cLXNlYXRcLWVpZ2h0XC1wZW9wbGU7CivloZ7mi4nlh6EgPiBcKHNvbm55XClcLXNlcmFwaGluXC1cKGhhaXRpYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+mHkeWkp+S4rSA+IGtpbVwtZGFlXC1qdW5nXC1cKG5ld2x5XC1lbGVjdGVkXC1wcmVzaWRlbnRcLW9mXC1rb3JlYVwpOwor6IyD5pav5Z2mID4gXChkaWFubmVcKVwtZmVpbnN0ZWluXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1jYWxpZm9ybmlhXCk7CivmtrLmhYvmsLQgPiBsaXF1aWRcLXdhdGVyXC1cKGFzXC1vcHBvc2VkXC10b1wtc3RlYW1cLW9yXC1pY2VcLFwtZVwuZ1wuXCk7Civop6PmlL7ou40gPiBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXlcLVwoaWVcLFwtdGhlXC1jaGluZXNlXC1hcm15XCk7CivotpnntKvpmb0gPiB6aGFvXC16aXlhbmdcLVwoZm9ybWVyXC1jaGluZXNlXC1sZWFkZXJzaGlwXC1maWd1cmVcKTsKK+S6kumAmuaApyA+IGludGVyb3BlcmFiaWxpdHlcLVwob2ZcLWNvbW11bmljYXRpb25zXC1lcXVpcG1lbnRcKTsKK+WFqOaWl+eFpSA+IGNodW5cLWRvb1wtaHdhblwtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor5o6i6Lev6ICFID4gcGF0aGZpbmRlclwtXChzcGFjZVwtY3JhZnRcLXNlbnRcLXRvXC1tYXJzXC1ieVwtbmFzYVwpOwor5bSU5Lqe55CzID4gY2hhcmxlc1wteWFoXC1saW5cLXRyaWVcLVwoYXJrYW5zYXNcLXJlc3RhdXJhbnRldXJcKTsKK+WwiOahiOe1hCA+IHNwZWNpYWxcLVwobGVnYWxcfGp1ZGljaWFsXClcLWludmVzdGlnYXRpb25zXC1ncm91cDsKK+mVt+aymeeBoyA+IGNoZXVuZ1wtc2hhXC13YW5cLVwocG91bHRyeVwtbWFya2V0XC1pblwtaG9uZ1wta29uZ1wpOwor5q2j5bi45YyWID4gbm9ybWFsaXphdGlvblwtXChvZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zXCxcLWV0Y1wpOwor6Kyd6KOh5aSrID4gXChuYXdhelwpXC1zaGFyaWZcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtcGFraXN0YW5cKTsKK+WQs+S9nOajnyA+IGdvaFwtY2hva1wtdG9uZ1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1zaW5nYXBvcmVcKTsKK+W3peS6uum7qCA+IHdvcmtlcnMnJ1wtcGFydHlcLVwoc2luZ2Fwb3JlXC1vcHBvc2l0aW9uXC1wYXJ0eVwpOwor5pav5L2p5p6XID4gc3BlbGxpbmdcLVwoZWdcLFwtc3BlbGxpbmdcLWVudGVydGFpbm1lbnRcLWdyb3VwXCk7Civnm6fms7DmhJogPiByb2hcLXRhZVwtd29vXC1cKGZvcm1lclwtc291dGhcLWtvcmVhblwtcHJlc2lkZW50XCk7CivpvYrnmb3nn7MgPiBuYW1lXC1vZlwtYVwtZmFtb3VzXC1jaGluZXNlXC1hcnRpc3RcLFwtcWlcLWJhaVwtc2hpOwor5ZWG5YuZ6YOoID4gY29tbWVyY2VcLWRlcGFydG1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+iAgeS8tOWFkiA+IFwob2ZcLWFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZVwpXC1odXNiYW5kXC1vclwtd2lmZTsKK+aihuWtkOiFlCA+IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtbG9jYWxcLW9wZXJhc1wtaW5cLXNoYW5neGk7CivmooXomK3oirMgPiBuYW1lXC1vZlwtYVwtdmVyeVwtZmFtb3VzXC1iZWlqaW5nXC1vcGVyYVwtYXJ0aXN0Owor6KGM5pS/6ZmiID4gZXhlY3V0aXZlXC15dWFuXC1cKGdvdmVybm1lbnRcLWJvZHlcLWluXC10YWl3YW5cKTsKK+adsOS9m+iMsiA+IFwoamFtZXNcKVwtamVmZm9yZHNcLVwodXNcLXNlbmF0b3JcLWZyb21cLXZlcm1vbnRcKTsKK+e+heW4g+aziiA+IGxvcFwtbm9yXC1cKG51Y2xlYXJcLXRlc3RpbmdcLXNpdGVcLWluXC14aW5qaWFuZ1wpOwor5rCR6YCy6buoID4gZHBwXC1cKGRlbW9jcmF0aWNcLXByb2dyZXNzaXZlXC1wYXJ0eVwsXC10YWl3YW5cKTsKK+eZveiKseibhyA+IGxvbmdcLW5vc2VkXC1waXRcLXZpcGVyXC1cKGFna2lzdHJvZG9uXC1hY3V0dXNcKTsKK+ecvuitsOWToSA+IG1lbWJlclwtb2ZcLXRoZVwtdXNcLWhvdXNlXC1vZlwtcmVwcmVzZW50YXRpdmVzOwor6YKB56eR6KOhID4gXChtaWtlXClcLW1jY3VycnlcLVwod2hpdGVcLWhvdXNlXC1zcG9rZXNwZXJzb25cKTsKK+WgseWRiuacgyA+IHB1YmxpY1wtbGVjdHVyZVwtXCh3aXRoXC1ndWVzdFwtc3BlYWtlcnNcLFwtZXRjXCk7CivliKnkvK/mm7wgPiBcKGNvbm5lY3RpY3V0XC1zZW5hdG9yXC1qb3NlcGhcLWlcLlwpXC1saWViZXJtYW47CivpuqXnp5Hoo6EgPiBcKG1pa2VcKVwtbWNjdXJyeVwtXCh3aGl0ZVwtaG91c2VcLXNwb2tlc3BlcnNvblwpOwor56We5aWz5bOwID4gbmFtZVwtb2ZcLWFcLXBlYWtcLWJ5XC1jaGFuZ2ppYW5nXC10aHJlZVwtZ29yZ2VzOwor55m95puJ54eVID4gcGFpXC1oc2lhb1wteWVuXC1cKGRhdWdodGVyXC1vZlwtcGFpXC1waW5nXC1waW5nXCk7Civph5Hml6XmiJAgPiBraW1cLWlsXC1zdW5nXC1cKGZvcm1lclwtbm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivlpKrmpbXlio0gPiBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXN3b3JkXC1wbGF5Owor5Y+45rOV6YOoID4ganVzdGljZVwtZGVwYXJtZW50XC1cKG9mXC10aGVcLXVzXC1nb3Zlcm5tZW50XCk7CivluqvntI3ljZcgPiBcKGFuZHJld1wpXC1jdW5hbmFuXC1cKGFsbGVnZWRcLXNlcmlhbFwta2lsbGVyXCk7Civpu4Plu7rljZcgPiBqb2huXC1odWFuZ1wtXChkZW1vY3JhdGljXC1wYXJ0eVwtZnVuZHJhaXNlclwpOwor6buD5bKp5bO2ID4gaHVhbmd5YW5cLWlzbGFuZFwtXChpblwtdGhlXC1zb3V0aFwtY2hpbmFcLXNlYVwpOwor5qmf6Zec5aCxID4gb2ZmaWNpYWxcLVwoZ292ZXJubWVudFwtb3BlcmF0ZWRcKVwtbmV3c3BhcGVyOwor5YWl5a24546HID4gcGVyY2VudGFnZVwtb2ZcLWNoaWxkcmVuXC13aG9cLWVudGVyXC1zY2hvb2w7CivojIXoh7rphZIgPiBtYW90YWlcLW9yXC1tYWl0YWlcLVwoY2hpbmVzZVwtc3Ryb25nXC1kcmlua1wpOwor546L576y5LmLID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1mYW1vdXNcLWNhbGxpZ3JhcGhlcjsKK+mCiuinkuenkSA+IGxlZnRvdmVyXC1iaXRzXC1hbmRcLXBpZWNlc1wtXChvZlwtaW5kdXN0cmlhbDsKK+mYv+aYjOaXjyA+IHRoZVwtYWNoYW5nXC1uYXRpb25hbGl0eVwtbGl2aW5nXC1pblwteXVubmFuOwor5L2p5rSb6KW/ID4gXChuYW5jeVwpXC1wZWxvc2lcLVwobWVtYmVyXC1vZlwtdXNcLWNvbmdyZXNzXCk7CivlkJDpra/nlaogPiB0aGVcLXR1cmZhblwtYmFzaW5cLFwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+WNiuiEq+eUoiA+IHBhcnRseVwtcmVsZWFzZWRcLWZyb21cLXByb2R1Y3RpdmVcLWxhYm91cjsKK+e4veabuOiomCA+IGdlbmVyYWxcLXNlY3JldGFyeVwtXChvZlwtY29tbXVuaXN0XC1wYXJ0eVwpOwor5rKI5ZyL5pS+ID4gY2hpbmVzZVwtZm9yZWlnblwtbWluaXN0cnlcLXNwb2tlc3BlcnNvbjsKK+ephuahguiLsSA+IG11XC1ndWlcLXlpbmdcLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivlravlpbPlhZIgPiBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1zb25cKTsKK+WwmuaFleadsCA+IGphbWVzXC1zYXNzZXJcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1jaGluYVwpOwor5aGe54i+5Y2XID4gXChldWdlbmVcKVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor5bm055Wr5YWSID4gbmV3XC15ZWFyXC1cKG9yXC1zcHJpbmdcLWZlc3RpdmFsXClcLXBpY3R1cmU7CivpkLXpo6/nopcgPiBcImlyb25cLXJpY2VcLWJvd2xcIlwtXC1cLVwtc2VjdXJlXC1lbXBsb3ltZW50Owor6IOh5b+X5piOID4gaG9cLWNoaVwtbWluaFwtXCh2aWV0bmFtZXNlXC1sZWFkZXJcLFwtY2l0eVwpOwor5b6Q5oKy6bS7ID4gbmFtZVwtb2ZcLWFcLWZhbW91c1wtcGFpbnRlclwsXC14dVwtYmVpaG9uZzsKK+iKseacqOiYrSA+IGh1YVwtbXVcLWxhblwtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+aJk+S4jemBjiA+IG5vdFwtdG9cLWJlXC1hYmxlXC10b1wtYmVhdFwtb3JcLWRlZmVhdFwtc2JcLjsKK+eZvOS6huiogCA+IFwoXCJwYXN0XC10ZW5zZVwiXC1vZlwtXDrnmbzoqIBcKVwtc3Bva2VcLXB1YmxpY2x5Owor5LiN6Ieq6YePID4gbm90XC10YWtlXC1hXC1wcm9wZXJcLW1lYXN1cmVcLW9mXC1vbmVzZWxmOwor5oqE5b6M6LevID4gdG9cLW91dGZsYW5rXC1hbmRcLWF0dGFja1wtZnJvbVwtdGhlXC1yZWFyOwor57eo5bm06auUID4gYW5uYWxpc3RpY1wtc3R5bGVcLVwoaW5cLWhpc3RvcmlvZ3JhcGh5XCk7CivlrrbphInpm54gPiAnJ2hvbWVcLXRvd25cLWNoaWNrZW4nJ1wtXChhXC10eXBlXC1vZlwtZGlzaFwpOwor56ug5a2d5Zq0ID4gam9oblwtY2hhbmdcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5L6G5LiN5Y+KID4gdGhlcmUnJ3NcLW5vdFwtZW5vdWdoXC10aW1lXC1cKHRvXC1kb1wtc3RoXC5cKTsKK+atu+S4jeS6hiA+IHBvcnR1bGFjYVwtc3VuZGlhbFwtXChhXC10eXBlXC1vZlwtcGxhbnRcKTsKK+i/juaYpeiKsSA+IHdpbnRlclwtamFzbWluZVwsXC1qYXNtaW51bVwtbnVkaWZsb3J1bTsKK+S4u+S6uue/gSA+IG1hc3RlclwtXChvZlwtb25lJydzXC1vd25cLWRlc3RpbnlcLFwtZXRjXC5cKTsKK+WTiOWvhueTnCA+IGhhbWlcLW1lbG9uXC1cKGFcLXZhcmlldHlcLW9mXC1tdXNrbWVsb25cKTsKK+iyv+aYk+mhjSA+IHZvbHVtZVwtb2ZcLXRyYWRlXC1cKGJldHdlZW5cLWNvdW50cmllc1wpOwor57i95YuV5ZOhID4gZ2VuZXJhbFwtbW9iaWxpemF0aW9uXC1cKGZvclwtd2FyXCxcLWV0Y1wpOwor5bSp6b6N5pePID4gdGhlXC1iZW5nbG9uZ1wtXChwZW5nbHVuZ1wpXC1uYXRpb25hbGl0eTsKK+mcuOeOi+merSA+IGFcLXJhdHRsZVwtc3RpY2tcLXVzZWRcLWluXC1mb2xrXC1kYW5jaW5nOwor55m95q6t6KC2ID4gdGhlXC1sYXJ2YVwtb2ZcLXNpbGt3b3JtXC13aXRoXC1iYXRyeXRpczsKK+S4jeWkseeCuiA+IGNhblwtc3RpbGxcLWJlXC1jb25zaWRlcmVkXC1cKHRvXC1iZVwuXC5cLlwpOwor5pyA5oOg5ZyLID4gbW9zdFwtZmF2b3JlZFwtbmF0aW9uXC1cKHRyYWRlXC1zdGF0dXNcKTsKK+WfuumHkeacgyA+IGFcLWZvdW5kYXRpb25cLVwoaWVcLFwtYW5cLW9yZ2FuaXphdGlvblwpOwor5omT6Yyv5LqGID4gXCJ5b3VcLWhhdmVcLWRpYWxlZFwtdGhlXC13cm9uZ1wtbnVtYmVyXCI7Civnl4XljIXlhZIgPiBhXC1wZXJzb25cLXdob1wtaXNcLWFsd2F5c1wtZmFsbGluZ1wtaWxsOwor5ouJ6I6r5pavID4gXChwaGlsaXBwaW5lXC1wcmVzaWRlbnRcLWZpZGVsXClcLXJhbW9zOwor6IOh5b+X5by3ID4gamFzb25cLWh1XC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+W5q+WAkuW/mSA+IGJlXC1tb3JlXC1vZlwtYVwtaGluZHJhbmNlXC10aGFuXC1hXC1oZWxwOwor5L+x5qiC6YOoID4gY2x1YlwtXChpZVwsXC1hXC1ncm91cFwtb3JcLW9yZ2FuaXphdGlvblwpOwor5Yue5YuV56+AID4gaW50ZXJuYXRpb25hbFwtbGFib3JcLWRheVwtXChtYXlcLWRheVwpOwor5oqx57KX6IW/ID4gbGF0Y2hcLW9uXC10b1wtdGhlXC1yaWNoXC1hbmRcLXBvd2VyZnVsOwor6YeR5q2j5pelID4ga2ltXC1qb25nXC1pbFwtXChub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+S4jeaRuOmgrSA+IG5vdFwtYWNxdWFpbnRlZFwtd2l0aFwtdGhlXC1zaXR1YXRpb247CivprY/kuqznlJ8gPiB3ZWlcLWppbmdzaGVuZ1wtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+WQg+S4jeS4iiA+IGJlXC11bmFibGVcLXRvXC1nZXRcLXNvbWV0aGluZ1wtdG9cLWVhdDsKK+aqouWvn+WumCA+IHRoZVwtcHJvc2VjdXRpb25cLVwoaW5cLWFcLWNvdXJ0XC1jYXNlXCk7CivlnoPlnL7ou4ogPiBnYXJiYWdlXC10cnVja1wtXChvclwtb3RoZXJcLXZlaGljbGVcKTsKK+W4g+azlee+hSA+IGJ1ZmZhbG9cLVwoY2l0eVwtaW5cLW5ld1wteW9ya1wtc3RhdGVcKTsKK+WFq+acg+eptCA+IHRoZVwtZWlnaHRcLXN0cmF0ZWdpY1wtbmVydmVcLXBvaW50czsKK+mWi+aZruaVpiA+IGNhcGVcLXRvd25cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+imi+S4jeW+lyA+IG1heVwtbm90XC1iZVwtc2VlblwtYnlcLW9yXC1leHBvc2VkXC10bzsKK+WJtei+puS6uiA+IGZvdW5kZXJcLVwob2ZcLWFuXC1pbnN0aXR1dGlvblwsXC1ldGNcKTsKK+mAvOS+m+S/oSA+IG9idGFpblwtY29uZmVzc2lvbnNcLWJ5XC1jb21wdWxzaW9uOwor6LKg6LKs5Lq6ID4gcGVyc29uXC1pblwtY2hhcmdlXC1cKG9mXC1zb21ldGhpbmdcKTsKK+WNgeS4iee2kyA+IHRoZVwtdGhpcnRlZW5cLWNvbmZ1Y2lhblwtY2xhc3NpY3M7Civnl4Xon7LlrrMgPiBwbGFudFwtZGlzZWFzZXNcLWFuZFwtaW5zZWN0XC1wZXN0czsKK+WQg+S4jeacjSA+IG5vdFwtYmVcLWFjY3VzdG9tZWRcLXRvXC1lYXRpbmdcLXN0aDsKK+mmrOWwvOaLiSA+IG1hbmlsYVwtXChjYXBpdGFsXC1vZlwtcGhpbGlwcGluZXNcKTsKK+aHieipsuiqqiA+IGl0XC1zaG91bGRcLWJlXC1tZW50aW9uZWRcLXRoYXRcLVwuXC5cLjsKK+S4jeW+l+S4jSA+IGhhdmVcLW5vXC1jaG9pY2VcLW9yXC1vcHRpb25cLWJ1dFwtdG87CivljJfkvJDou40gPiB0aGVcLW5vcnRoZXJuXC1leHBlZGl0aW9uYXJ5XC1hcm15Owor5Y+v56e75qSNID4gcG9ydGFibGVcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivntpPmv5/lrbggPiBlY29ub21pY3NcLVwoYXNcLWFcLWZpZWxkXC1vZlwtc3R1ZHlcKTsKK+aEm+mdouWtkCA+IGJlXC1jb25jZXJuZWRcLWFib3V0XC1mYWNlXC1zYXZpbmc7CivloqjniL7nvL0gPiBtZWxib3VybmVcLVwoYW5cLWF1c3RyYWxpYW5cLWNpdHlcKTsKK+e0ouadsOe0jSA+IHNvam91cm5lclwtXChtYXJ0aWFuXC1sYW5kXC1yb3ZlclwpOwor6KuH5b6X5L6GID4gYWJsZVwtdG9cLXRhbGtcLXRvXC1vclwtZ2V0XC1vblwtd2l0aDsKK+ePreS4u+S7uyA+IGFcLXRlYWNoZXJcLWluXC1jaGFyZ2VcLW9mXC1hXC1jbGFzczsKK+WwjuiIquWToSA+IG5hdmlnYXRvclwtXChvblwtYVwtcGxhbmVcLW9yXC1ib2F0XCk7CivnnL7orbDpmaIgPiBob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlc1wtXCh1c2FcKTsKK+eVtuS6i+S6uiA+IHBlcnNvbnNcLWludm9sdmVkXC1vclwtaW1wbGljYXRlZDsKK+e0hee2oOeHiCA+IFwocmVkXC1hbmRcLWdyZWVuXClcLXRyYWZmaWNcLWxpZ2h0Owor6YeN6KSH56+AID4gcmVwZWF0ZWRcLXNlZ21lbnRcLVwobmV0d29ya2luZ1wpOwor5YW15bel5bugID4gbXVuaXRpb25zXC1vclwtb3JkbmFuY2VcLWZhY3Rvcnk7CivljYrouqvlg48gPiBoYWxmXC1sZW5ndGhcLXBob3RvXC1vclwtcG9ydHJhaXQ7Civnmbzpm7vph48gPiBcKGdlbmVyYXRlZFwpXC1lbGVjdHJpY2FsXC1lbmVyZ3k7Civkv53lronml48gPiB0aGVcLWJhb2FuXC1cKHBhb2FuXClcLW5hdGlvbmFsaXR5Owor5rGf5r6k5rCRID4gamlhbmdcLXplbWluXC1cKGNoaW5lc2VcLXByZW1pZXJcKTsKK+W5tOWknOmjryA+IG5ld1wteWVhcicnc1wtZXZlXC1mYW1pbHlcLWRpbm5lcjsKK+adjueZu+i8nSA+IGxlZVwtdGVuZ1wtaHVpXC1cKHRhaXdhblwtbGVhZGVyXCk7CivlpKfoh6rnhLYgPiBuYXR1cmVcLVwoYXNcLWluXC1tb3RoZXJcLW5hdHVyZVwpOwor56uL5pa557GzID4gY3ViaWNcLW1ldGVyXC1cKHVuaXRcLW9mXC12b2x1bWVcKTsKK+WQg+S4jea2iCA+IGJlXC11bmFibGVcLXRvXC1zdGFuZFwtXChleGVydGlvbjsKK+aKleelqOermSA+IHBvbGxpbmdcLXN0YXRpb25cLVwoZm9yXC1hXC12b3RlXCk7CivlvpfnpajnjocgPiBwZXJjZW50YWdlXC1vZlwtdm90ZXNcLW9idGFpbmVkOwor5ZCD5LiN5L2PID4gYmVcLXVuYWJsZVwtdG9cLWJlYXJcLW9yXC1zdXBwb3J0Owor6Ieq5rK75Y2AID4gYXV0b25vbW91c1wtcmVnaW9uXC1cKGluXC1jaGluYVwpOwor5by157SU5aaCID4gXChhbWVyaWNhblwtYXV0aG9yXClcLWlyaXNcLWNoYW5nOwor54+t5YuZ5pyDID4gYVwtcm91dGluZVwtbWVldGluZ1wtb2ZcLWFcLXNxdWFkOwor5paw5b636KOhID4gbmV3XC1kZWxoaVwtXChjYXBpdGFsXC1vZlwtaW5kaWFcKTsKK+WPjeWwjem7qCA+IG9wcG9zaXRpb25cLVwocG9saXRpY2FsXClcLXBhcnR5Owor6Kqq5piO5pu4ID4gc3lub3BzaXNcLVwob2ZcLWFcLXBsYXlcLW9yXC1maWxtXCk7Civlj5vkuoLnvaogPiB0aGVcLWNyaW1lXC1vZlwtYXJtZWRcLXJlYmVsbGlvbjsKK+W3ruW+l+WkmiA+IGZhbGxcLXNob3J0XC1ieVwtYVwtbGFyZ2VcLWFtb3VudDsKK+WPsOeBo+ipsSA+IHRhaXdhbmVzZVwtY2hpbmVzZVwtXChsYW5ndWFnZVwpOwor6JGJ5Yip5qy9ID4gXChydXNzaWFuXC1wcmVzaWRlbnRcKVwteWVsdHNpbjsKK+m7g+a1puaxnyA+IGh1YW5ncHVcLXJpdmVyXC1cKGluXC1zaGFuZ2hhaVwpOwor6IOM5YyF6KKxID4gaGF2ZVwtYVwtd2VpZ2h0XC1vblwtb25lJydzXC1taW5kOwor5aCx5oi25Y+jID4gYXBwbHlcLWZvclwtYVwtcmVzaWRlbnRcLXBlcm1pdDsKK+Wci+mam+e0miA+IFwoYXRcLWFuXClcLWludGVybmF0aW9uYWxcLWxldmVsOwor5ZCD5LiN5L6GID4gbm90XC1iZVwtZm9uZFwtb2ZcLWNlcnRhaW5cLWZvb2Q7Civmk5rloLHlsI4gPiBhY2NvcmRpbmdcLXRvXC1cKG5ld3NcKVwtcmVwb3J0czsKK+eXheavkuWtuCA+IHZpcm9sb2d5XC1cKHN0dWR5XC1vZlwtdmlydXNlc1wpOwor6ICM5LiN6ZyAID4gd2l0aG91dFwtbmVlZGluZ1wtXCh0b1wtc29cLXN0aFwpOwor5Lqk5o+b5qmfID4gc3dpdGNoXC1cKHRlbGVjb21tdW5pY2F0aW9uc1wpOwor5aSn6Zm46KmxID4gbWFpbmxhbmRcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+S6pOaPm+WZqCA+IFwodGVsZWNvbVwtb3JcLW5ldHdvcmtcKVwtc3dpdGNoOwor6YCa6KiK56S+ID4gYVwtbmV3c1wtc2VydmljZVwtXChlZ1wsXC14aW5odWFcKTsKK+aEm+WlveiAhSA+IGxvdmVyXC1cKG9mXC1hcnRcLFwtc3BvcnRzXCxcLWV0Y1wpOwor5YWs5a6J6YOoID4gbWluaXN0cnlcLW9mXC1wdWJsaWNcLXNlY3VyaXR5Owor5oqx5LiN5bmzID4gYmVcLW91dHJhZ2VkXC1ieVwtYW5cLWluanVzdGljZTsKK+eUt+WtkOa8oiA+IG1hblwtXChpXC5lXC5cLW1hbmx5XCxcLW1hc2N1bGluZVwpOwor5be05YWS54uXID4gcGVraW5nZXNlXC1cKGFcLWJyZWVkXC1vZlwtZG9nXCk7CivlrZjou4romZUgPiBwYXJraW5nXC1sb3RcLVwoZm9yXC1iaWN5Y2xlc1wpOwor6by754mb5YWSID4gaGFyZGVuZWRcLW11Y3VzXC1pblwtbm9zdHJpbHM7CivmoYPoirHpgYsgPiBsdWNrXC13aXRoXC10aGVcLW9wcG9zaXRlXC1zZXg7CivlvJfloZ7lpYcgPiB2ZXJzYWNlXC1cKGZhc2hpb25cLWRlc2lnbmVyXCk7Civmma7pgJroqbEgPiBtYW5kYXJpblwtXChjb21tb25cLWxhbmd1YWdlXCk7Civlub7lubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtc2V2ZXJhbFwteWVhcnM7CivpoKTlkozlnJIgPiBzdW1tZXJcLXBhbGFjZVwtXChpblwtYmVpamluZ1wpOwor6aas5L6G5Lq6ID4gbWFsYXlzaWFuXC1wZXJzb25cLW9yXC1wZW9wbGU7CivlupXnibnlvosgPiBkZXRyb2l0XC1cKGFcLWNpdHlcLWluXC10aGVcLXVzXCk7Civmg4Xms4HkuIsgPiB1bmRlclwtXCh0aGlzXClcLWNpcmN1bXN0YW5jZXM7Civmuqvlk6Xoj68gPiB2YW5jb3V2ZXJcLVwoY2l0eVwtaW5cLWNhbmFkYVwpOwor55m96aCt57+BID4gcm9vdFwtb2ZcLWNoaW5lc2VcLXB1bHNhdGlsbGE7CivkuK3mlofniYggPiBjaGluZXNlXC1cKGxhbmd1YWdlXClcLXZlcnNpb247Civpq5jkuK3nlJ8gPiBzZW5pb3JcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudDsKK+adv+e+veeQgyA+IGJhdHRsZWRvcmVcLWFuZFwtc2h1dHRsZWNvY2s7Civlj4PlhanpmaIgPiBib3RoXC1ob3VzZXNcLW9mXC11c1wtY29uZ3Jlc3M7CivnmZ/onrrnl6cgPiBjaG9sZXJhXC1cKHdpdGhcLWRlaHlkcmF0aW9uXCk7CivpgI/pgJrmgKcgPiB0cmFuc3BhcmVuY3lcLVwobmV0d29ya2luZ1wpOwor54ef5qWt6aGNID4gc3VtXC1vclwtdm9sdW1lXC1vZlwtYnVzaW5lc3M7Civnn67lgIvlhZIgPiBhXC1wZXJzb25cLW9mXC1zaG9ydFwtc3RhdHVyZTsKK+aguOWkp+WciyA+IGFcLW51Y2xlYXJcLXBvd2VyXC1cKGNvdW50cnlcKTsKK+W4jOiHmOiqniA+IFwobW9kZXJuXClcLWdyZWVrXC1cKGxhbmd1YWdlXCk7CivmmYLplpPlhacgPiB3aXRoaW5cLVwoYVwtcGVyaW9kXC1vZlwtdGltZVwpOwor5LiL5bel5aSrID4gdG9cLXB1dFwtaW5cLXRpbWVcLWFuZFwtZW5lcmd5Owor5pel5pys5Lq6ID4gamFwYW5lc2VcLXBlcnNvblwtb3JcLXBlb3BsZTsKK+eEoemZkOacnyA+IHVubGltaXRlZFwtXCh0aW1lXClcLWR1cmF0aW9uOwor5biV6Jit5Y2hID4gcGFsYW5rYVwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor5Lq65rCR5bmjID4gY2hpbmVzZVwtdW5pdFwtb2ZcLWN1cnJlbmN5Owor5rWB5rCT572qID4gdGhlXC1jcmltZVwtb2ZcLWhvb2xpZ2FuaXNtOwor6YyE6Z+z5qmfID4gXCh0YXBlXClcLXJlY29yZGluZ1wtbWFjaGluZTsKK+S7o+S5i+S7pSA+IFwoaGFzXC1iZWVuXClcLXJlcGxhY2VkXC13aXRoOwor6K6K5oiy5rOVID4gcGVyZm9ybVwtY29uanVyaW5nXC10cmlja3M7CivnmbzooYzpoY0gPiBcKHBlcmlvZGljYWxcKVwtY2lyY3VsYXRpb247CivljYHkuInml6UgPiB0aGlydGlldGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5LiL5Y2K6LqrID4gbG93ZXJcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7CivljbDmrZDoqp4gPiBpbmRvXC1ldXJvcGVhblwtXChsYW5ndWFnZVwpOwor5YWn5pS/6YOoID4gbWluaXN0cnlcLW9mXC10aGVcLWludGVyaW9yOwor5Y2w5q2Q5paHID4gaW5kb1wtZXVyb3BlYW5cLVwobGFuZ3VhZ2VcKTsKK+eEoem7qOa0viA+IHBvbGl0aWNhbGx5XC11bmFmZmlsaWF0ZWQ7Civororpm7vnq5kgPiBcKHRyYW5zZm9ybWVyXClcLXN1YnN0YXRpb247CivmnKjkuYPkvIogPiBtdW1teVwtXChwcmVzZXJ2ZWRcLWNvcnBzZVwpOwor5aSW5Lqk6YOoID4gZm9yZWlnblwtYWZmYWlyc1wtbWluaXN0cnk7CivpgbLmtannlLAgPiBjaGluZXNlXC1kZWZlbnNlXC1taW5pc3RlcjsKK+WMl+a6q+W4tiA+IHRoZVwtbm9ydGhcLXRlbXBlcmF0ZVwtem9uZTsKK+aJk+mbu+ipsSA+IHRvXC1tYWtlXC1hXC10ZWxlcGhvbmVcLWNhbGw7CivmraLnl5vms5UgPiBtZXRob2RcLW9mXC1yZWxpZXZpbmdcLXBhaW47CivljJfljYrnkIMgPiB0aGVcLW5vcnRoZXJuXC1oZW1pc3BoZXJlOwor6ZuZ57We57eaID4gdW5zaGllbGRlZFwtdHdpc3RlZFwtcGFpdDsKK+WMheaJv+WItiA+IHJlc3BvbnNpYmxlXC1jcmV3XC1zeXN0ZW07Civmkq3mlL7mqZ8gPiBwbGF5ZXJcLVwoZVwuZ1wuXC1jZFwtcGxheWVyXCk7Civmk5rntbHoqIggPiBhY2NvcmRpbmdcLXRvXC1zdGF0aXN0aWNzOwor55WZ5a2455SfID4gc3R1ZGVudFwtc3R1ZHlpbmdcLWFicm9hZDsKK+WkmuW5tOS+hiA+IGZvclwtdGhlXC1wYXN0XC1tYW55XC15ZWFyczsKK+S4reeni+evgCA+IHRoZVwtbWlkXC1hdXR1bW5cLWZlc3RpdmFsOwor6aas6Lev5Y+jID4gaW50ZXJzZWN0aW9uXC1cKG9mXC1yb2Fkc1wpOwor5oi057at5pavID4gZGF2aXNcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor57SF5qiT5aSiID4gYVwtZHJlYW1cLW9mXC1yZWRcLW1hbnNpb25zOwor6YGO5LiN5Y67ID4gbWFrZVwtbGlmZVwtZGlmZmljdWx0XC1mb3I7Civmg4XloLHomZUgPiBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCk7CivohZDmlZfnvaogPiB0aGVcLWNyaW1lXC1vZlwtY29ycnVwdGlvbjsKK+eZveibh+WCsyA+IHRhbGVcLW9mXC10aGVcLXdoaXRlXC1zbmFrZTsKK+WNiuaIkOWTgSA+IHNlbWlcLW1hbnVmYWN0dXJlZFwtZ29vZHM7CivlpZTpoK3lhZIgPiBzb21ldGhpbmdcLXRvXC1zdHJpdmVcLWZvcjsKK+S4rei9ieermSA+IGh1YlwtXChuZXR3b3JrXC1lcXVpcG1lbnRcKTsKK+mmmea4r+S6uiA+IGhvbmdcLWtvbmdcLXBlcnNvblx8cGVvcGxlOwor5oWV6YGT5Y+LID4gcmVsaWdpb3VzXC1pbnZlc3RpZ2F0b3I7CivliZ3mjqHmr5QgPiBzdHJpcHBpbmdcLXRvXC1vcmVcLXJhdGlvOwor55uu55qE5ZywID4gZGVzdGluYXRpb25cLVwobG9jYXRpb25cKTsKK+Wci+WLmemZoiA+IHN0YXRlXC1kZXBhcnRtZW50XC1cKHVzYVwpOwor5Y2B5LqU5YSEID4gb25lXC1hbmRcLWFcLWhhbGZcLWJpbGxpb247CivntIXnh5LogokgPiByZWRcLWNvb2tlZFwtXChwb3JrXClcLW1lYXQ7CivlhazlronlsYAgPiBwdWJsaWNcLXNlY3VyaXR5XC1idXJlYXU7Civnmbznl4XnjocgPiBpbmNpZGVuY2VcLW9mXC1hXC1kaXNlYXNlOwor55aR5ZWP5Y+lID4gaW50ZXJyb2dhdGl2ZVwtc2VudGFuY2U7CivmraTkuIDmmYIgPiB0aGF0XC13YXNcLW9uZVwtc2l0dWF0aW9uOwor5LiN5aW95oO5ID4gbm90XC10b1wtYmVcLXRyaWZsZWRcLXdpdGg7CivkuI3lvpflt7IgPiBhY3RcLWFnYWluc3RcLW9uZScnc1wtd2lsbDsKK+S4iuWNiuW5tCA+IGZpcnN0XC1oYWxmXC1cKG9mXC1hXC15ZWFyXCk7CivkuI3opoHoh4kgPiBoYXZlXC1ub1wtc2Vuc2VcLW9mXC1zaGFtZTsKK+iDjOWcsOmiqCA+IGJlaGluZFwtc29tZWJvZHknJ3NcLWJhY2s7Civov5HlubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtZmV3XC15ZWFyczsKK+WFtuiHqui6qyA+IG9uZScnc1wtb3duXC1cKHJlc3BlY3RpdmVcKTsKK+eBq+eEsOWxsSA+IHRoZVwtbW91bnRhaW5cLW9mXC1mbGFtZXM7Civlt6XkvZznq5kgPiBcKGNvbXB1dGVyXClcLXdvcmtzdGF0aW9uOwor5Y2w5q2Q5Lq6ID4gaW5kb1wtZXVyb3BlYW5cLVwocGVyc29uXCk7CivlnablhYvou4ogPiB0YW5rXC1cKGFybW9yZWRcLXZlaGljbGVcKTsKK+S4jeWDj+aooyA+IGluXC1ub1wtc2hhcGVcLXRvXC1iZVwtc2VlbjsKK+iuiuWIhuazlSA+IGNhbGN1bHVzXC1vZlwtdmFyaWF0aW9uczsKK+ilv+mBiuiomCA+IHBpbGdyaW1hZ2VcLXRvXC10aGVcLXdlc3Q7CivnlaLmpa3nlJ8gPiBncmFkdWF0ZVwtXChvZlwtYVwtc2Nob29sXCk7Civog4zpu5HpjYsgPiB0b1wtYmVcLW1hZGVcLWFcLXNjYXBlZ29hdDsKK+mdiOaVj+W6piA+IFwobGV2ZWxcLW9mXClcLXNlbnNpdGl2aXR5Owor5b285LiA5pmCID4gdGhhdFwtd2FzXC1vbmVcLXNpdHVhdGlvbjsKK+i7n+ehrOS7tiA+IHNvZnR3YXJlXC1hbmRcLWhhcmR3YXJlOwor54ax6ZaA6LKoID4gZ29vZHNcLWluXC1ncmVhdFwtZGVtYW5kOwor6YCa5L+h6YePID4gY29tbXVuaWNhdGlvbnNcLXZvbHVtZTsKK+elneizgOipniA+IGNvbmdyYXR1bGF0b3J5XC1zcGVlY2g7Civlub7ljYHlubQgPiBzZXZlcmFsXC10ZW5zXC1vZlwteWVhcnM7Civmr5TmlrnoqqogPiB0b1wtbWFrZVwtYW5cLWFuYWxvZ3lcLlwuXC47CivpuqXoir3ns5YgPiBtYWx0b3NlXC1cKHN3ZWV0XC1zeXJ1cFwpOwor576O6IGv56S+ID4gYXNzb2NpYXRlZFwtcHJlc3NcLVwoYXBcKTsKK+aOqOiWpuS/oSA+IHJlY29tbWVuZGF0aW9uXC1sZXR0ZXI7Civlub7lpKnkvoYgPiBmb3JcLXRoZVwtcGFzdFwtZmV3XC1kYXlzOwor5oqV5LqG56WoID4gcGFzdFwtdGVuc2VcLW9mXC10b1wtdm90ZTsKK+iCr+WwvOi/qiA+IGtlbm5lZHlcLVwocHJvcGVyXC1uYW1lXCk7Civkv53orbfljYAgPiBjb25zZXJ2YXRpb25cLWRpc3RyaWN0Owor5aWn5b636LO9ID4gdGhlXC1vZHlzc2V5XCxcLWJ5XC1ob21lcjsKK+i2iuWNl+iqniA+IHZpZXRuYW1lc2VcLVwobGFuZ3VhZ2VcKTsKK+Wbm+W5tOWJjSA+IGZvdXJcLXllYXJzXC1wcmV2aW91c2x5Owor6KO96YCg5ZWGID4gbWFudWZhY3R1cmluZ1wtY29tcGFueTsKK+WPjemdqeWRvSA+IGNvdW50ZXJcLXJldm9sdXRpb25hcnk7CivogIHlhanlj6MgPiBhblwtb2xkXC1tYXJyaWVkXC1jb3VwbGU7Civmi5zmiorlrZAgPiBiZWNvbWVcLXN3b3JuXC1icm90aGVyczsKK+WMl+WvkuW4tiA+IHRoZVwtbm9ydGhcLWZyaWdpZFwtem9uZTsKK+WFq+i3r+i7jSA+IHRoZVwtZWlnaHRoXC1yb3V0ZVwtYXJteTsKK+WNl+WMl+altSA+IHNvdXRoXC1hbmRcLW5vcnRoXC1wb2xlczsKK+iRo+S6i+mVtyA+IGNoYWlybWFuXC1vZlwtdGhlXC1ib2FyZDsKK+S4jeihjOS6hiA+IG9uXC10aGVcLXBvaW50XC1vZlwtZGVhdGg7CivljaHopb/lsLwgPiBjYXNzaW5pXC1cKHByb3BlclwtbmFtZVwpOwor5YWJ56OB56KfID4gbWFnbmV0b1wtb3B0aWNhbFwtZGlzazsKK+WNmuimveacgyA+IFwoaW50ZXJuYXRpb25hbFwpXC1mYWlyOwor5LiA6Iis5oCnID4gXChpblwpXC1nZW5lcmFsXC1cKHRlcm1zXCk7CivpgIvpgIPol6ogPiByZWZ1Z2VcLWZvclwtZnVnaXRpdmVzOwor55m955y854+gID4gdGhlXC13aGl0ZVwtb2ZcLXRoZVwtZXllOwor5o2V6J+y6JGJID4gaW5zZWN0XC1jYXRjaGluZ1wtbGVhZjsKK+S4jembheingCA+IG9mZmVuc2l2ZVwtdG9cLXRoZVwtZXllOwor6Zmz6L+w5Y+lID4gZGVjbGFyYXRpdmVcLXNlbnRlbmNlOwor6YCZ5YCL5pyIID4gdGhpc1wtXChjdXJyZW50XClcLW1vbnRoOwor5LiA5riF5pepID4gZWFybHlcLWluXC10aGVcLW1vcm5pbmc7CivlgI3poLvlmaggPiBmcmVxdWVuY3lcLW11bHRpcGxpZXI7CivpoJjlsI7mrIogPiBsZWFkZXJzaGlwXC1hdXRob3JpdHk7CivntIDlv7Xml6UgPiBkYXlcLW9mXC1jb21tZW1vcmF0aW9uOwor55m95qOJ57SZID4gc3RlbmNpbFwtdGlzc3VlXC1wYXBlcjsKK+aMqueqqeWFkiA+IHRvXC1tb3ZlXC1cKHRvXC1hXC1ob3VzZVwpOwor5b635ZyL5Lq6ID4gZ2VybWFuXC1wZXJzb25cfHBlb3BsZTsKK+Wkp+a4heaXqSA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor55m+5LqL6YCaID4ga25vd2xlZGdlYWJsZVwtcGVyc29uOwor5LiN5q275b+DID4gdW53aWxsaW5nXC10b1wtZ2l2ZVwtdXA7CivnpKbms4nmsLQgPiBtaW5lcmFsXC1zcHJpbmdcLXdhdGVyOwor5ZCD5LiN5LiLID4gbm90XC1mZWVsXC1saWtlXC1lYXRpbmc7CivokKzntq3ntrIgPiB3b3JsZFwtd2lkZVwtd2ViXC1cKHd3d1wpOwor5a+m6auU5bGkID4gcGh5c2ljYWxcLWxheWVyXC1cKG9zaVwpOwor54++6ZqO5q61ID4gYXRcLXRoZVwtcHJlc2VudFwtc3RhZ2U7Civlj5vlnIvnvaogPiB0aGVcLWNyaW1lXC1vZlwtdHJlYXNvbjsKK+mMpuaomeizvSA+IGNoYW1waW9uc2hpcFwtY29udGVzdDsKK+ertueIreWKmyA+IGNvbXBldGl0aXZlXC1zdHJlbmd0aDsKK+mBi+WLleacgyA+IGFcLXNwb3J0c1wtY29tcGV0aXRpb247Civot5Hpvo3lpZcgPiB0b1wtcGxheVwtYVwtc21hbGxcLXJvbGU7Civlvrfpm7fniL4gPiBcKGp1bmVcLXRldWZlbFwpXC1kcmV5ZXI7CivosqHmlL/pg6ggPiBtaW5pc3RyeVwtb2ZcLWZpbmFuY2U7Civlu6PlkYrllYYgPiBhZHZlcnRpc2luZ1wtY29tcGFueTsKK+aFsOWuieWppiA+IGNvbWZvcnRcLXdvbWFuXHx3b21lbjsKK+aKmOWwhOeOhyA+IGluZGV4XC1vZlwtcmVmcmFjdGlvbjsKK+W5tOS7o+WInSA+IGJlZ2lubmluZ1wtb2ZcLWFuXC1hZ2U7CivpmLLnpqbmgKcgPiBkZWZlbnNpdmVcLVwod2VhcG9uc1wpOwor5omT5qmr54KuID4gc3BlYWtcLXVud2FycmFudGVkbHk7CivnmbzoqIDmrIogPiB0aGVcLXJpZ2h0XC1vZlwtc3BlZWNoOwor5bm05LmL5LmFID4gcGVyaW9kXC1vZlwtXC5cLlwuXC15ZWFyczsKK+S4jeS4reaEjyA+IG5vdFwtdG9cLW9uZScnc1wtbGlraW5nOwor55m+5YiG5Yi2ID4gaHVuZHJlZFwtbWFya1wtc3lzdGVtOwor5YiG5p6Q5a62ID4gXChwb2xpdGljYWxcKVwtYW5hbHlzdDsKK+eri+azleacgyA+IGxlZ2lzbGF0aXZlXC1jb3VuY2lsOwor5byV5Yqb5aC0ID4gZ3Jhdml0YXRpb25hbFwtZmllbGQ7CivmtojogJfph48gPiByYXRlXC1vZlwtY29uc3VtcHRpb247CivmoLjpm7vnq5kgPiBudWNsZWFyXC1wb3dlclwtcGxhbnQ7CivooajpnaLljJYgPiBjb21lXC10b1wtdGhlXC1zdXJmYWNlOwor6Zu76Kmx5qmfID4gdGVsZXBob25lXC1lcXVpcG1lbnQ7CivnuL3ntbHlupwgPiBwcmVzaWRlbnRpYWxcLXBhbGFjZTsKK+api+aOpeWZqCA+IGJyaWRnZVwtXChuZXR3b3JraW5nXCk7CivppqzkvobmlocgPiBtYWxhc2lhblwtXChsYW5ndWFnZVwpOwor5LiN5b6X5LqGID4gZGVzcGVyYXRlbHlcLXNlcmlvdXM7Civmnb/mooHmqYsgPiBwbGF0ZVwtZ2lyZGVyXC1icmlkZ2U7CivmoL3ot5/poK0gPiB0b1wtc3VmZmVyXC1hXC1zZXRiYWNrOwor5qC45bel56iLID4gbnVjbGVhclwtZW5naW5lZXJpbmc7CivlronnkIbmnIMgPiB1blwtc2VjdXJpdHlcLWNvdW5jaWw7Civmk7rploDpnaIgPiBrZWVwXC11cFwtYXBwZWFyYW5jZXM7Civot6/pgI/npL4gPiByZXV0ZXJzXC1uZXdzXC1hZ2VuY3k7Civnp5HlrbjpmaIgPiBhY2FkZW15XC1vZlwtc2NpZW5jZXM7CivmraXpgLLliLYgPiBzdGVwXC1ieVwtc3RlcFwtc3lzdGVtOwor5YmN6JiH6IGvID4gZm9ybWVyXC1zb3ZpZXRcLXVuaW9uOwor5LiN5Zyo5oSPID4gcGF5XC1ub1wtYXR0ZW50aW9uXC10bzsKK+WkluWtq+WlsyA+IGRhdWdodGVyJydzXC1kYXVnaHRlcjsKK+WGsOmGi+mFuCA+IGdsYWNpYWxcLWFjZXRpY1wtYWNpZDsKK+a2iOeCjuiXpSA+IGFudGliaW90aWNcLW1lZGljaW5lOwor5aeU5ZOh6ZW3ID4gaGVhZFwtb2ZcLWFcLWNvbW1pdHRlZTsKK+aDheWgseWxgCA+IGludGVsbGlnZW5jZVwtYWdlbmN5Owor5YyF6Lqr5belID4gaW5kZW50dXJlZFwtbGFib3VyZXI7CivmsbrorbDmoYggPiBcKHBhc3NcLWFcKVwtcmVzb2x1dGlvbjsKK+WMl+S6rOS6uiA+IHBlcnNvblwtZnJvbVwtYmVpamluZzsKK+iyoOiyrOS7uyA+IHJlc3BvbnNpYmlsaXR5XC1mb3I7CivkuK3lsbHoo50gPiBjaGluZXNlXC10dW5pY1wtc3VpdDsKK+e3rOeUuOiqniA+IGJ1cm1lc2VcLVwobGFuZ3VhZ2VcKTsKK+aUv+ayu+eKryA+IHBvbGl0aWNhbFwtcHJpc29uZXI7CivlubTku6XkvoYgPiBzaW5jZVwtdGhlXC15ZWFyXC1cLlwuXC47CivmlrDoj6/npL4gPiB4aW5odWFcLW5ld3NcLWFnZW5jeTsKK+S4jeS4reeUqCA+IHVuZml0XC1mb3JcLWFueXRoaW5nOwor6YCy5LiA5q2lID4gXChvbmVcLXN0ZXBcKVwtZnVydGhlcjsKK+aPkOS+m+WVhiA+IHByb3ZpZGVyXC1cKGNvbXBhbnlcKTsKK+WOn+iYh+iBryA+IGZvbWVyXC1zb3ZpZXRcLXVuaW9uOwor5aSp5a6J6ZaAID4gdGlhbmFubWVuXC1cKHNxdWFyZVwpOwor5LiN5Y+X55CGID4gcmVqZWN0XC1hXC1jb21wbGFpbnQ7CivnmbzpgZTlnIsgPiBkZXZlbG9waW5nXC1jb3VudHJ5Owor6LeR6K2m5aCxID4gdG9cLXJ1blwtZm9yXC1zaGVsdGVyOwor55m96ZaL5rC0ID4gcGxhaW5cLWJvaWxlZFwtd2F0ZXI7Civmi5vlvoXmnIMgPiBcKHByZXNzXClcLWNvbmZlcmVuY2U7Civmh7fkv4TmmI4gPiB3eW9taW5nXC1cKHVzXC1zdGF0ZVwpOwor5Y2h5ouJ5aWHID4ga2FyYWNoaVwtXChwYWtpc3RhblwpOwor5Y2K6KaP566hID4gc2VtaWNpcmN1bGFyXC1jYW5hbDsKK+mmrOS+huiqniA+IG1hbGF5c2lhblwtbGFuZ3VhZ2U7Civmr5TkuI3kuIogPiBjYW4nJ3RcLWNvbXBhcmVcLXdpdGg7CivlnIvpmLLpg6ggPiBkZWZlbnNlXC1kZXBhcnRtZW50Owor6LaV5LiN5LiKID4gY2FuJyd0XC1rZWVwXC11cFwtd2l0aDsKK+aLv+S4u+aEjyA+IHRvXC1tYWtlXC1hXC1kZWNpc2lvbjsKK+W4uOWnlOacgyA+IHN0YW5kaW5nXC1jb21taXR0ZWU7CivlpKflrbjnlJ8gPiB1bml2ZXJzaXR5XC1zdHVkZW50Owor54CP6Ka95ZmoID4gYnJvd3NlclwtXChzb2Z0d2FyZVwpOwor5LiW57SA5pyrID4gZW5kXC1vZlwtdGhlXC1jZW50dXJ5Owor5pOB6K236ICFID4gc3VwcG9ydGVyXC1cKHBlcnNvblwpOwor5ZyL5YuZ5Y2/ID4gc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivljYrovKnlrZAgPiBoYWxmXC1vZlwtYVwtbGlmZXRpbWU7Civnq5nnrqHnkIYgPiBzdGF0aW9uXC1tYW5hZ2VtZW50Owor6Iqs6Jit6KqeID4gZmlubmlzaFwtXChsYW5ndWFnZVwpOwor6K6K5rOV5YWSID4gdHJ5XC1kaWZmZXJlbnRcLXdheXM7Civmtbfnqbrou40gPiBuYXZ5XC1hbmRcLWFpclwtZm9yY2U7CivntLDoj4zmiLAgPiBiaW9sb2dpY2FsXC13YXJmYXJlOwor55Ge5YW46KqeID4gc3dlZGlzaFwtXChsYW5ndWFnZVwpOwor5raJ5auM5Lq6ID4gXChjcmltaW5hbFwpXC1zdXNwZWN0Owor5L215o2y5qmfID4gcmliYm9uXC1sYXBcLW1hY2hpbmU7CivliKXli5XpmoogPiBzcGVjaWFsXC1kZXRhY2htZW50Owor56CU56m25omAID4gcmVzZWFyY2hcLWluc3RpdHV0ZTsKK+W5tOi8leWMliA+IG1ha2VcLW1vcmVcLXlvdXRoZnVsOwor5Yqg6YCf5ZmoID4gYWNjZWxlcmF0b3JcLVwoY29tcFwpOwor5LiN562J6JmfID4gc2lnblwtb2ZcLWluZXF1YWxpdHk7Civopb/ljYrnkIMgPiB3ZXN0ZXJuXC1oZW1pc3BoZXJlOwor5qC45oqA6KGTID4gbnVjbGVhclwtdGVjaG5vbG9neTsKK+WgseWLmeWToSA+IHRlbGVncmFwaFwtb3BlcmF0b3I7CivlhYnms6LplbcgPiBvcHRpY2FsXC13YXZlbGVuZ3RoOwor5ZaJ5pOm6Z+zID4gZ3V0dHVyYWxcLWZyaWNhdGl2ZTsKK+WFq+e0muW3pSA+IGVpZ2h0XC1ncmFkZVwtd29ya2VyOwor5L2b6JKZ54m5ID4gdmVybW9udFwtXFt1c1wtc3RhdGVcXTsKK+euoeeQhuermSA+IG1hbmFnZW1lbnRcLXN0YXRpb247CivoqqrkuI3lrpogPiBjYW4nJ3RcLXNheVwtZm9yXC1zdXJlOwor5rOi5pav6KqeID4gYm9zbmlhblwtXChsYW5ndWFnZVwpOwor5YSY5Y+v6IO9ID4gYXNcLWZhclwtYXNcLXBvc3NpYmxlOwor5YyF5om/57WEID4gXChyZXNwb25zaWJsZVwpXC1jcmV3Owor55m+6JGJ566xID4gdGhlcm1vbWV0ZXJcLXNjcmVlbjsKK+mBv+mbt+WZqCA+IGxpZ2h0bmluZ1wtYXJyZXN0ZXI7CivmiLDprKXmqZ8gPiBmaWdodGVyXC1cKGFpcmNyYWZ0XCk7Civpoa/npLrlmaggPiBtb25pdG9yXC1cKGNvbXB1dGVyXCk7Civlv4Xkv67oqrIgPiBhXC1yZXF1aXJlZFwtY291cnNlOwor5YOF5qyh5LqOID4gc2Vjb25kXC1vbmx5XC10b1wuXC5cLjsKK+acnemuruiqniA+IGtvcmVhblwtXChsYW5ndWFnZVwpOwor5bu656+J5qWtID4gYnVpbGRpbmdcLWluZHVzdHJ5Owor6bql5YWL57atID4gXCh0aW1vdGh5XClcLW1jdmVpZ2g7Civmh4nnlKjlsaQgPiBhcHBsaWNhdGlvblwtbGF5ZXI7CivmoYzliKXmnpcgPiBcKGNoYXJsaWVcKVwtY2hhcGxpbjsKK+iTi+eIvuiqniA+IGdhZWxpY1wtXChsYW5ndWFnZVwpOwor54Sh5omA6KyCID4gdG9cLWJlXC1pbmRpZmZlcmVudDsKK+apn+WZqOS6uiA+IG1lY2hhbmljYWxcLXBlcnNvbjsKK+W7o+Wfn+e2siA+IHdpZGVcLWFyZWFcLW5ldHdvcms7Civntq3mjIHosrsgPiBtYWludGVuYW5jZVwtY29zdHM7Civmnb/mk6blhZIgPiBibGFja2JvYXJkXC1lcmFzZXI7CivlkIzmgKfmiIAgPiBob21vc2V4dWFsXC1cKGxvdmVcKTsKK+mbu+ipsee2siA+IHRlbGVwaG9uZVwtbmV0d29yazsKK+aAp+mot+aTviA+IHNleHVhbFwtaGFyYXNzbWVudDsKK+apq+aWt+eJqSA+IHRyYW5zdmVyc2VcLW9iamVjdDsKK+eZveWxiOiPnCA+IGdyZWF0ZXJcLWNlbGFuZGluZTsKK+WCs+i8uOeOhyA+IHRyYW5zbWlzc2lvblwtcmF0ZTsKK+S8uuacjeWZqCA+IHNlcnZlclwtXChjb21wdXRlclwpOwor5pyN5YuZ5ZmoID4gc2VydmVyXC1cKGNvbXB1dGVyXCk7CivlnIvpmpvms5UgPiBpbnRlcm5hdGlvbmFsXC1sYXc7CivkvrXmiKrogIUgPiBcKGNvbXB1dGVyXClcLWhhY2tlcjsKK+WIneWtuOiAhSA+IGJlZ2lubmluZ1wtc3R1ZGVudDsKK+ilv+eOi+avjSA+IG5hbWVcLW9mXC1hXC1nb2RkZXNzOwor5Zyo6aCt54mIID4gb25cLXRoZVwtZnJvbnRcLXBhZ2U7Civms6LomK3oqp4gPiBwb2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+i9n+eCuOapnyA+IGJvbWJlclwtXChhaXJjcmFmdFwpOwor6Yar5a245a62ID4gbWVkaWNhbFwtc2NpZW50aXN0Owor6I+v55ub6aCTID4gd2FzaGluZ3RvblwtXChkXC5jXC5cKTsKK+S4n+mjr+eilyA+IHRvXC1sb3NlXC1vbmUnJ3NcLWpvYjsKK+avlOi8g+aWsCA+IGNvbXBhcmF0aXZlbHlcLW5ldzsKK+mbu+S/oeiZnyA+IGVsZWN0cmljYWxcLXNpZ25hbDsKK+enmOabuOmVtyA+IHNlY3JldGFyeVwtZ2VuZXJhbDsKK+atkOa0suS6uiA+IGV1cm9wZWFuXC1cKHBlcnNvblwpOwor6KGb55Sf6YOoID4gaGVhbHRoXC1kZXBhcnRtZW50Owor5aSq5bmz5rSLID4gdGhlXC1wYWNpZmljXC1vY2VhbjsKK+WOn+WboOaYryA+IHRoZVwtcmVhc29uXC1pc1wtXC5cLlwuOwor5LiA5bm05Y2KID4gYVwteWVhclwtYW5kXC1hXC1oYWxmOwor5LiN55SY5b+DID4gbm90XC1yZWNvbmNpbGVkXC10bzsKK+WuouaItuapnyA+IGNsaWVudFwtXChjb21wdXRlclwpOwor5aSx5qWt546HID4gdW5lbXBsb3ltZW50XC1yYXRlOwor6K2m5a+f5bGAID4gcG9saWNlXC1kZXBhcnRtZW50Owor5q245b+D6ICFID4gcmVsaWdpb3VzXC1jb252ZXJ0Owor5rKS6Zec5L+CID4gaXRcLWRvZXNuJyd0XC1tYXR0ZXI7CivljIXlnJLlhZIgPiBidXlcLXRoZVwtd2hvbGVcLWxvdDsKK+S4gOi6q+axlyA+IHN3ZWF0aW5nXC1hbGxcLW92ZXI7Civnmb3ntLDog54gPiB3aGl0ZVwtYmxvb2RcLWNlbGw7CivmgKfpl5zkv4IgPiBzZXh1YWxcLXJlbGF0aW9uczsKK+aur+WEgOmkqCA+IHRoZVwtdW5kZXJ0YWtlcicnczsKK+eglOiojuacgyA+IGRpc2N1c3Npb25cLWZvcnVtOwor6LOH5paZ6YePID4gcXVhbnRpdHlcLW9mXC1kYXRhOwor57eo6Lyv5a6kID4gZWRpdG9yaWFsXC1vZmZpY2U7Civmi4nkuIHoqp4gPiBsYXRpblwtXChsYW5ndWFnZVwpOwor6YGp6YWN5bGkID4gYWRhcHRhdGlvblwtbGF5ZXI7Civlh7rpoqjpoK0gPiB0b1wtY3JlYXRlXC1hXC1zdGlyOwor6LaK6YeO6LuKID4gb2ZmXC1yb2FkXC12ZWhpY2FsOwor6YGp6YWN5ZmoID4gYWRhcHRlclwtXChkZXZpY2VcKTsKK+WJr+S4u+W4rSA+IHZpY2VcLWNoYWlycGVyc29uOwor5o235YWL6KqeID4gY3plY2hcLVwobGFuZ3VhZ2VcKTsKK+ethuW6leS4iyA+IGFiaWxpdHlcLXRvXC13cml0ZTsKK+aguOWOn+aWmSA+IG51Y2xlYXJcLW1hdGVyaWFsOwor55m96KGA55CDID4gd2hpdGVcLWJsb29kXC1jZWxsOwor5LiN54it5rCjID4gYmVcLWRpc2FwcG9pbnRpbmc7CivljJflhrDmtIsgPiB0aGVcLWFyY3RpY1wtb2NlYW47Civlj4jkvobkuoYgPiBoZXJlXC13ZVwtZ29cLWFnYWluOwor5Y2B5aSa5YSEID4gb3Zlclwtb25lXC1iaWxsaW9uOwor5LiA5LiL5a2QID4gaW5cLWFcLXNob3J0XC13aGlsZTsKK+aguOioreaWvSA+IG51Y2xlYXJcLWZhY2lsaXR5Owor6Z2e5pS/5bqcID4gbm9uXC1nb3Zlcm5tZW50YWw7CivkuLvlubnnt5ogPiBiYWNrYm9uZVwtXChjYWJsZVwpOwor6Zu76KaW5qmfID4gdGVsZXZpc2lvblwtXChzZXRcKTsKK+a1geihjOeXhSA+IGVwaWRlbWljXC1kaXNlYXNlOwor5L+h55So6K2JID4gbGV0dGVyXC1vZlwtY3JlZGl0Owor5a246KGT55WMID4gYWNhZGVtaWNcLWNpcmNsZXM7CivooZvmmJ/ln44gPiBcInNhdGVsbGl0ZVwiXC10b3duOwor55qE5LiA56iuID4gaXNcLW9uZVwtXChraW5kXC1vZlwpOwor5pu85b635ouJID4gXChuZWxzb25cKVwtbWFuZGVsYTsKK+WNsOWcsOiqniA+IGhpbmRpXC1cKGxhbmd1YWdlXCk7Civlt6Xmpa3ljJYgPiB0b1wtaW5kdXN0cmlhbGl6ZTsKK+iomOiAheacgyA+IHByZXNzXC1jb25mZXJlbmNlOwor5Ye654mI56S+ID4gcHVibGlzaGluZ1wtaG91c2U7Civmspbnuanls7YgPiBva2luYXdhXC1cKGlzbGFuZFwpOwor5rCR5Li76buoID4gZGVtb2NyYXRpY1wtcGFydHk7Civpm7voppbliocgPiB0dlwtZHJhbWFcLXByb2dyYW07CivovLvlsITms6IgPiByYWRpYXRpb25cLVwod2F2ZVwpOwor5ZWG5qWt5YyWID4gdG9cLWNvbW1lcmNpYWxpemU7Civpm7vohabntrIgPiBjb21wdXRlclwtbmV0d29yazsKK+mrmOaAp+iDvSA+IGhpZ2hcLXBlcmZvcm1hbmNlOwor6ZaL5bmV5byPID4gb3BlbmluZ1wtY2VyZW1vbnk7Civlr6bnv5LnlJ8gPiBpbnRlcm5cLVwoc3R1ZGVudFwpOwor5ZyL6LOT6aSoID4gc3RhdGVcLWd1ZXN0aG91c2U7CivkuI3oh7PmlrwgPiBjYW5ub3RcLWdvXC1zb1wtZmFyOwor55m+5YiG6bueID4gcGVyY2VudGFnZVwtcG9pbnQ7Civlip/og73pm4YgPiBmdW5jdGlvblwtbGlicmFyeTsKK+WMluWtuOaIsCA+IGNoZW1pY2FsXC13YXJmYXJlOwor5aSn5aSa5pW4ID4gXChncmVhdFwpXC1tYWpvcml0eTsKK+iPj+iYreiqniA+IGR1dGNoXC1cKGxhbmd1YWdlXCk7CivkuIDlubTlpJogPiBtb3JlXC10aGFuXC1hXC15ZWFyOwor5YWx5ZKM6buoID4gcmVwdWJsaWNhblwtcGFydHk7CivohJbpoLjlhZIgPiBiYWNrXC1vZlwtdGhlXC1uZWNrOwor5aSn54Sh55WPID4gdXR0ZXJseVwtZmVhcmxlc3M7CivotoXpq5jpgJ8gPiB1bHRyYVwtaGlnaFwtc3BlZWQ7CivmgKfmjqXop7ggPiBzZXh1YWxcLWVuY291bnRlcjsKK+aLv+aJi+iPnCA+IHNwZWNpYWx0eVwtXChkaXNoXCk7CivpvKDmqJnlmaggPiBtb3VzZVwtXChjb21wdXRlclwpOwor5LqS5pON5oCnID4gaW50ZXJvcGVyYWJpbGl0eTsKK+WKn+iDvee+pCA+IGZ1bmN0aW9uYWxcLWdyb3VwOwor5LiA6Lyp5a2QID4gXChmb3JcKVwtYVwtbGlmZXRpbWU7Civpq5jmlYjnjocgPiBoaWdoXC1lZmZpY2llbmN5Owor5YmN5LiN5LmFID4gbm90XC1sb25nXC1iZWZvcmU7CivnlJ/nlKLpmoogPiBwcm9kdWN0aW9uXC10ZWFtOwor55So5oi257eaID4gc3Vic2NyaWJlclwtbGluZTsKK+e+juWci+S6uiA+IGFtZXJpY2FuXC1wZXJzb247CivnnIvkuIrljrsgPiBpdFwtd291bGRcLWFwcGVhcjsKK+W5vuWNgeWEhCA+IHNldmVyYWxcLWJpbGxpb247CivkuI3lvoXoqqogPiBuZWVkbGVzc1wtdG9cLXNheTsKK+WJteiomOmMhCA+IHRvXC1zZXRcLWFcLXJlY29yZDsKK+S4jeWQjeaVuCA+IGFic3RyYWN0XC1udW1iZXI7CivmlbjljYHlhIQgPiBzZXZlcmFsXC1iaWxsaW9uOwor57i957aT55CGID4gZ2VuZXJhbFwtbWFuYWdlcjsKK+aVuOeZvuiQrCA+IHNldmVyYWxcLW1pbGxpb247Civmi7zotbfkvoYgPiB0b1wtcHV0XC10b2dldGhlcjsKK+exs+eyieiCiSA+IHJpY2VcLWZsb3VyXC1tZWF0Owor6auY5oqA6KGTID4gaGlnaFwtdGVjaG5vbG9neTsKK+mWiemfs+evgCA+IGNsb3NlZFwtc3lsbGFibGU7CivomZvpm7vot68gPiB2aXJ0dWFsXC1jaXJjdWl0Owor5b6e5Y675bm0ID4gc2luY2VcLWxhc3RcLXllYXI7Civoj7Llvovos5MgPiB0aGVcLXBoaWxpcHBpbmVzOwor5pys5peP6KqeID4gbmF0aXZlXC1sYW5ndWFnZTsKK+e1huiFs+efsyA+IHN0dW1ibGluZ1wtYmxvY2s7CivmhJ/mn5PogIUgPiBpbmZlY3RlZFwtcGVyc29uOwor5aSa5qij5YyWID4gZGl2ZXJzaWZpY2F0aW9uOwor57ay566h5ZOhID4gbmV0d29ya1wtbWFuYWdlcjsKK+S4jeW5sua2iSA+IG5vbmludGVyZmVyZW5jZTsKK+aguOatpuW6qyA+IG51Y2xlYXJcLWFyc2VuYWw7CivkuK3nvo7mtLIgPiBjZW50cmFsXC1hbWVyaWNhOwor5aSp5Li75pWZID4gY2F0aG9saWNcLWNodXJjaDsKK+mHkeijoeWlhyA+IFwobmV3dFwpXC1naW5ncmljaDsKK+azqOaEj+eciyA+IHdhdGNoXC1jYXJlZnVsbHk7CivlhbHnlKLpu6ggPiBjb21tdW5pc3RcLXBhcnR5Owor5LiN6KaL5b6XID4gbm90XC1uZWNlc3NhcmlseTsKK+izgOW5tOeJhyA+IG5ld1wteWVhcicnc1wtY2FyZDsKK+aomea6luWMliA+IHN0YW5kYXJkaXphdGlvbjsKK+S9v+a7v+aEjyA+IHRvXC1tYWtlXC1jb250ZW50Owor5LiN6Y+96Yu8ID4gc3RhaW5sZXNzXC1zdGVlbDsKK+WNsOW6puS6uiA+IGluZGlhblwtXChwZXJzb25cKTsKK+Wlp+mBi+adkSA+IG9seW1waWNcLXZpbGxhZ2U7Civmmpfpganmh4kgPiBkYXJrXC1hZGFwdGF0aW9uOwor6ICB55m+5aeTID4gb3JkaW5hcnlcLXBlb3BsZTsKK+Wkq+Wmu+W6lyA+IGZhbWlseVwtcnVuXC1zaG9wOwor5pW45a2X57ayID4gZGlnaXRhbFwtbmV0d29yazsKK+WFkuWMlumfuyA+IHJldHJvZmxleFwtZmluYWw7CivmnInoga/nuasgPiB0b1wtYmVcLWNvbm5lY3RlZDsKK+WvqeWIpOmVtyA+IHByZXNpZGluZ1wtanVkZ2U7Civpq5jmlYjog70gPiBoaWdoXC1lZmZpY2llbmN5Owor55uc54mI6ICFID4gc29mdHdhcmVcLXBpcmF0ZTsKK+Wkp+mDqOS7vSA+IFwoaW5cKVwtbGFyZ2VcLXBhcnQ7CivlhrfmsKPmqZ8gPiBhaXJcLWNvbmRpdGlvbmVyOwor5LyK55S45ZySID4gZ2FyZGVuXC1vZlwtZWRlbjsKK+aIkOWToeWciyA+IG1lbWJlclwtY291bnRyeTsKK+mHo+mtmuiHuiA+IGRpYW95dVwtaXNsYW5kczsKK+ikh+mfu+avjSA+IGNvbXBvdW5kXC1maW5hbDsKK+W5gOWkqumVtyA+IG92ZXJzaXplXC1mcmFtZTsKK+S8tOeUn+awoyA+IGFzc29jaWF0ZWRcLWdhczsKK+eJqeeQhuWxpCA+IHBoeXNpY2FsXC1sYXllcjsKK+iBr+WQiOWciyA+IHVuaXRlZFwtbmF0aW9uczsKK+iLseWci+S6uiA+IGJyaXRpc2hcLXBlcnNvbjsKK+eZveeGseWMliA+IHR1cm5cLXdoaXRlXC1ob3Q7CivljYHkuIDmnIggPiBlbGV2ZW50aFwtbW9udGg7Civljp/lrZDmoLggPiBhdG9taWNcLW51Y2xldXM7CivmiorlhYTlvJ8gPiBzd29yblwtYnJvdGhlcnM7CivljJfmlpfmmJ8gPiB0aGVcLWJpZ1wtZGlwcGVyOwor6ZaL546p56yRID4gdG9cLXBsYXlcLWFcLWpva2U7Civlr6nliKTluK0gPiBqdWRnZW1lbnRcLXNlYXQ7Civnmb3nsonnl4UgPiBwb3dkZXJ5XC1taWxkZXc7Civph6PprZrls7YgPiBkaWFveXVcLWlzbGFuZHM7Civlj6TluIzoh5ggPiBhbmNpZW50XC1ncmVlY2U7CivkuK3lnIvkurogPiBjaGluZXNlXC1wZXJzb247Civnm6PnnaPkurogPiBzdXBlcmludGVuZGVudDsKK+mghuW6j+aVuCA+IG9yZGluYWxcLW51bWJlcjsKK+mbu+ipsee3miA+IHRlbGVwaG9uZVwtbGluZTsKK+WwseaYr+iqqiA+IGluXC1vdGhlclwtd29yZHM7CivmlZnogrLnlYwgPiBhY2FkZW1pY1wtd29ybGQ7CivkuI3mlaLnlbYgPiB5b3VcLWZsYXR0ZXJcLW1lOwor5Ymv57i957WxID4gdmljZVwtcHJlc2lkZW50Owor55Sa6Iez5pa8ID4gc29cLW11Y2hcLVwodGhhdFwpOwor5LiN5bmz6KGhID4gZGlzZXF1aWxpYnJpdW07CivmnbHljZfkup4gPiBzb3V0aGVhc3RcLWFzaWE7CivmjqHmlLbnjocgPiByZWNvdmVyeVwtcmF0aW87Civoh6rnlLHljJYgPiBsaWJlcmFsaXphdGlvbjsKK+S4jemBqeeUqCA+IG5vdFwtYXBwbGljYWJsZTsKK+ewoeWWruWMliA+IHNpbXBsaWZpY2F0aW9uOwor6bm95rmW5Z+OID4gc2FsdFwtbGFrZVwtY2l0eTsKK+ihgOijveWTgSA+IGJsb29kXC1wcm9kdWN0czsKK+WHuemdoumPoSA+IGNvbmNhdmVcLW1pcnJvcjsKK+mWi+W/g+aenCA+IHBpc3RhY2hpb1wtbnV0czsKK+S4lueVjOiqniA+IHdvcmxkXC1sYW5ndWFnZTsKK+ihjOaYn+mamyA+IGludGVycGxhbmV0YXJ5Owor5Lit5b+D6KqeID4gcXVhbGlmaWVkXC13b3JkOwor5Y+D6KyA6ZW3ID4gY2hpZWZcLW9mXC1zdGFmZjsKK+mMhOWDj+apnyA+IHZpZGVvXC1yZWNvcmRlcjsKK+WFieS/oeiZnyA+IG9wdGljYWxcLXNpZ25hbDsKK+aguOatpuWZqCA+IG51Y2xlYXJcLXdlYXBvbjsKK+mBlOS4jeWIsCA+IGNhbm5vdFwtYWNoaWV2ZTsKK+WFi+ael+mgkyA+IFwoYmlsbFwpXC1jbGludG9uOwor6IGW6KqV56+AID4gY2hyaXN0bWFzXC10aW1lOwor55m95Luk5rW3ID4gdGhlXC1iZXJpbmdcLXNlYTsKK+aRqemWgOe2kyA+IGJvb2tcLW9mXC1tb3Jtb247CivlsIvplovlv4MgPiB0b1wtbWFrZVwtZnVuXC1vZjsKK+eKr+S4jeiRlyA+IG5vdFwtd29ydGh3aGlsZTsKK+S4jeeUqOisnSA+IHlvdScncmVcLXdlbGNvbWU7CivljYroh6rli5UgPiBzZW1pXC1hdXRvbWF0aWM7Civlhafokpnlj6QgPiBpbm5lclwtbW9uZ29saWE7CivpgIDkvJHph5EgPiByZXRpcmVtZW50XC1wYXk7CivnlZnoqIDnsL8gPiB2aXNpdG9yJydzXC1ib29rOwor5q275Lqh546HID4gbW9ydGFsaXR5XC1yYXRlOwor5ZOI6Kmy5pu4ID4gYm9va1wtb2ZcLWhhZ2dhaTsKK+aTuuaUpOWtkCA+IHNldFwtdXBcLWFcLXN0YWxsOwor55Ge5aOr5Lq6ID4gc3dpc3NcLVwocGVyc29uXCk7Civlt67kuI3lpJogPiBhbG1vc3RcLFwtbmVhcmx5Owor5ous5byn6KOhID4gaW5cLXBhcmVudGhlc2VzOwor5L+h6Jmf6Ie6ID4gc2lnbmFsXC1zdGF0aW9uOwor5LiW55WM5LiKID4gXChvZlwtdGhlXClcLXdvcmxkOwor5ZyT54+g562GID4gYmFsbFwtcG9pbnRcLXBlbjsKK+i3keiFv+WFkiA+IHRvXC1ydW5cLWVycmFuZHM7Civms6Lni4DnhrEgPiB1bmR1bGFudFwtZmV2ZXI7Civnn6XorZjluqsgPiBrbm93bGVkZ2VcLWJhc2U7Civpm7vkv6HlsYAgPiBjZW50cmFsXC1vZmZpY2U7Civopb/ljZfkup4gPiBzb3V0aHdlc3RcLWFzaWE7CivmkqXomZ/nm6QgPiB0ZWxlcGhvbmVcLWRpYWw7CivlvozlhanogIUgPiB0aGVcLWxhdHRlclwtdHdvOwor5bug56au5oucID4gZGF5XC1vZmZcLVwod29ya1wpOwor5YWp55m+5YSEID4gdHdlbnR5XC1iaWxsaW9uOwor54Sh6YCj5o6lID4gY29ubmVjdGlvbmxlc3M7CivnjJzorI7lhZIgPiBndWVzc1wtYVwtcmlkZGxlOwor5Y2K5Lul5LiKID4gbW9yZVwtdGhhblwtaGFsZjsKK+S4jeWuouawoyA+IHlvdScncmVcLXdlbGNvbWU7Civnvo7lt67kuosgPiBhXC10ZXJyaWZpY1wtam9iOwor6Ku+6LKd54i+ID4gbm9iZWxcLVwocHJpemVcKTsKK+S/neitiemHkSA+IGVhcm5lc3RcLW1vbmV5Owor5o6b6Jmf6K2JID4gcmVnaXN0ZXJcLWNhcmQ7Civljp/lrZDog70gPiBhdG9taWNcLWVuZXJneTsKK+e0gOW/temkqCA+IG1lbW9yaWFsXC1oYWxsOwor5Zau6Z+75q+NID4gc2ltcGxlXC1maW5hbHM7CivmnInlj6/og70gPiBpdCcnc1wtcG9zc2libGU7CivmnKrmj5Dlj4ogPiBub3RcLW1lbnRpb25lZDsKK+acrOeUn+eHiCA+IGJ1bnNlblwtYnVybmVyOwor5b+D6Ief55eFID4gaGVhcnRcLWRpc2Vhc2U7CivljYHkupTlubQgPiBmaWZ0ZWVuXC15ZWFyczsKK+mEp+Wwj+W5syA+IGRlbmdcLXhpYW9waW5nOwor6YKj6bS75pu4ID4gYm9va1wtb2ZcLW5haHVtOwor57ay57Wh5bGkID4gbmV0d29ya1wtbGF5ZXI7Civlr6nliKTmrIQgPiBqdWRnZW1lbnRcLWJhcjsKK+eZveiKseiKsSA+IHNoaW5pbmdcLXdoaXRlOwor5bu656+J5a24ID4gYXJjaGl0ZWN0dXJhbDsKK+S4reWci+W8jyA+IGNoaW5lc2VcLXN0eWxlOwor5Y2K5aSx5qWtID4gc2VtaVwtZW1wbG95ZWQ7CivooajmsbrmrIogPiByaWdodFwtdG9cLXZvdGU7CivnqbrplpPnq5kgPiBzcGFjZVwtc3RhdGlvbjsKK+Wkp+WFrOWPuCA+IGxhcmdlXC1jb21wYW55Owor5aSn5a656YePID4gaGlnaFwtY2FwYWNpdHk7CivmpYrnmb7nv7AgPiBicmlnaGFtXC15b3VuZzsKK+Wkp+WVj+mhjCA+IGdyZWF0XC1wcm9ibGVtOwor5YWJ5Yqf546HID4gb3B0aWNhbFwtcG93ZXI7CivmrIrlqIHmgKcgPiBhdXRob3JpdGF0aXZlOwor5aWz5pyL5Y+LID4gZmVtYWxlXC1mcmllbmQ7CivkuI3lkajlu7YgPiB1bmRpc3RyaWJ1dGVkOwor5pGB6Yem5YWSID4gc25hcFwtZmFzdGVuZXI7Civnmb3nmq7mnb4gPiBsYWNlYmFya1wtcGluZTsKK+WtmOWEsuWZqCA+IG1lbW9yeVwtXCh1bml0XCk7CivlvYzov6bmm7ggPiBib29rXC1vZlwtbWljYWg7Civnj77ku6PljJYgPiBtb2Rlcm5pemF0aW9uOwor5Li756ax5paHID4gbG9yZCcnc1wtcHJheWVyOwor5aW95bm+5bm0ID4gc2V2ZXJhbFwteWVhcnM7CivllK7npajomZUgPiB0aWNrZXRcLW9mZmljZTsKK+WFrem7nuWNiiA+IGhhbGZcLXBhc3RcLXNpeDsKK+eEoeaEj+itmCA+IHVuY29uc2Npb3VzbHk7Civmjqjli5XlipsgPiBkcml2aW5nXC1mb3JjZTsKK+mBv+miqOiZlSA+IGxlZVwsXC13aW5kc3RvcDsKK+S9v+eUqOmHjyA+IHZvbHVtZVwtb2ZcLXVzZTsKK+WNiuWwjumrlCA+IHNlbWljb25kdWN0b3I7Civpp4Hmrrzmp40gPiBtYXVzZXJcLXBpc3RvbDsKK+S4jeaWueS+vyA+IGluY29udmVuaWVuY2U7CivmspLntpPpqZcgPiBpbmV4cGVyaWVuY2VkOwor5Li75pel5a24ID4gc3VuZGF5XC1zY2hvb2w7CivmnInliqnkuo4gPiBjb250cmlidXRlXC10bzsKK+acieasiuWogSA+IGF1dGhvcml0YXRpdmU7CivkuInljYHlhIQgPiB0aHJlZVwtYmlsbGlvbjsKK+S4jeWHjea4ryA+IGljZVwtZnJlZVwtcG9ydDsKK+atpeipseapnyA+IHdhbGtpZVwtdGFsa2llOwor6ZuG57ea5ZmoID4gaHViXC1cKG5ldHdvcmtcKTsKK+S4jeiIkumBqSA+IHVuY29tZm9ydGFibGU7CivlhanljYPlubQgPiB0aGVcLXllYXJcLTIwMDA7CivmqJnmnKzon7IgPiBzcGlkZXJcLWJlZXRsZTsKK+mAsuWHuuWPoyA+IGltcG9ydFx8ZXhwb3J0Owor5ZCR6KW/5Y2XID4gc291dGh3ZXN0d2FyZDsKK+WUruelqOWToSA+IHRpY2tldFwtc2VsbGVyOwor5ZSu56Wo5Y+jID4gdGlja2V0XC13aW5kb3c7CivlronlrprljJYgPiBzdGFiaWxpemF0aW9uOwor5Lqk5o+b56uvID4gc3dpdGNoZWRcLXBvcnQ7CivkuI3nm7jlubIgPiBiZVwtaXJyZWxldmFudDsKK+WkqeabieW+lyA+IGhlYXZlblwta25vd3NcITsKK+WgseipseapnyA+IHdhbGtpZVwtdGFsa2llOwor5ZCM55uf5ZyLID4gY29uZmVkZXJhdGlvbjsKK+Wlp+mBi+acgyA+IG9seW1waWNcLWdhbWVzOwor5Zyo5pyq5L6GID4gaW5cLXRoZVwtZnV0dXJlOwor5Y2X576O5rSyID4gc291dGhcLWFtZXJpY2E7CivkuIPnmb7okKwgPiBzZXZlblwtbWlsbGlvbjsKK+acieiJr+W/gyA+IGNvbnNjaWVudGlvdXM7CivpvLvpo7zms5UgPiBuYXNhbFwtZmVlZGluZzsKK+e0hOaLv+abuCA+IGJvb2tcLW9mXC1qb25haDsKK+atpeihjOifsiA+IGdyb3VuZFwtYmVldGxlOwor5L6/5q2l6LWwID4gbWFyY2hcLWF0XC1lYXNlOwor6YCj5o6l6IezID4gdG9cLWNvbm5lY3RcLXRvOwor6bO25bC+6IqxID4gaXJpc1wtXChmbG93ZXJcKTsKK+WNiuWumOaWuSA+IHNlbWlcLW9mZmljaWFsOwor5YW85a655oCnID4gY29tcGF0aWJpbGl0eTsKK+ino+Wjk+e4riA+IHRvXC1kZWNvbXByZXNzOwor5o6h5qOJ5qmfID4gY290dG9uXC1waWNrZXI7Civoiq3olYnmiYcgPiBwYWxtXC1sZWFmXC1mYW47CivlhazlhYPliY0gPiBiZWZvcmVcLWNocmlzdDsKK+azoue+juW6piA+IGJhdW1lXC1kZWdyZWVzOwor5Y2K5b6p6LO9ID4gZWlnaHRoXC1maW5hbHM7CivpgornlYznt5ogPiBib3VuZGFyeVwtbGluZTsKK+WMl+e+jua0siA+IG5vcnRoXC1hbWVyaWNhOwor5qC46IO95rqQID4gbnVjbGVhclwtcG93ZXI7CivmlK/mjIHnjocgPiBzdXBwb3J0XC1sZXZlbDsKK+ippuS4gOippiA+IHRvXC1oYXZlXC1hXC10cnk7CivotorkvobotoogPiBtb3JlXC1hbmRcLW1vcmU7CivkuIvoh7PkuIogPiBib3R0b21cLXRvXC10b3A7Civmib7kuI3liLAgPiBjb3VsZG4nJ3RcLWZpbmQ7Civlvojpgbrmhr4gPiB1bmZvcnR1bmF0ZWx5Owor6JCs5LqL6YGUID4gbWFzdGVyXChjYXJkXCk7CivntITnj6Xmm7ggPiBib29rXC1vZlwtam9lbDsKK+izoOWEn+mHkSA+IGNvbXBlbnNhdGlvbjsKK+ekuuWogeiAhSA+IGRlbW9uc3RyYXRvcjsKK+avm+S4u+W4rSA+IGNoYWlybWFuXC1tYW87Civlu7rnr4nniakgPiBcKGFcKVwtYnVpbGRpbmc7CivplrHopr3lrqQgPiByZWFkaW5nXC1yb29tOwor5LiN5ZCN6K29ID4gZGlzcmVwdXRhYmxlOwor5qmf5qKw56K8ID4gbWFjaGluZVwtY29kZTsKK+S4jeaIkOWKnyA+IHVuc3VjY2Vzc2Z1bDsKK+awtOa7uOWCsyA+IHdhdGVyXC1tYXJnaW47CivkuI3ph43oppYgPiBpbmRpZmZlcmVuY2U7CivljYHkuZ3mrbIgPiAxOVwteWVhcnNcLW9sZDsKK+WNiuaWh+ebsiA+IHNlbWlsaXRlcmF0ZTsKK+S4meeDr+mFuCA+IGFjcnlsaWNcLWFjaWQ7CivljYrnhp/nt7QgPiBzZW1pXC1za2lsbGVkOwor5ZCD5LiN6ZaLID4gYmVcLXVucG9wdWxhcjsKK+S4jeWQiOeQhiA+IHVucmVhc29uYWJsZTsKK+S4jeaEieW/qyA+IGRpc2FncmVlYWJsZTsKK+mkiumbnuWgtCA+IGNoaWNrZW5cLWZhcm07Civohp3kuIrlnosgPiBsYXB0b3BcLVwoYWRqXCk7Civlr6bpmpvmgKcgPiBwcmFjdGljYWxpdHk7CivljYHkuIDlubQgPiBlbGV2ZW5cLXllYXJzOwor55u45Ly85oCnID4gcmVzc2VtYmxhbmNlOwor6Z2e5ZCM5q2lID4gYXN5bmNocm9ub3VzOwor5YKz6YGT5pu4ID4gZWNjbGVzaWFzdGVzOwor55m86KiA5Lq6ID4gc3Bva2VzcGVyc29uOwor6ZuG5Lit5ZmoID4gY29uY2VudHJhdG9yOwor5oSf5ZiG6KmeID4gaW50ZXJqZWN0aW9uOwor6Laz55CD6L+3ID4gZm9vdGJhbGxcLWZhbjsKK+mCo+aoo+eahCA+IHRoYXRcLWtpbmRcLW9mOwor5Y2K6YKK5aSpID4gaGFsZlwtdGhlXC1za3k7CivokaHokITphZIgPiBcKGdyYXBlXClcLXdpbmU7CivovrLkvZzniakgPiBcKGZhcm1cKVwtY3JvcHM7Civlm5vljYHlpJogPiBtb3JlXC10aGFuXC00MDsKK+itieWvpuemriA+IGNvbmZpcm1hdGlvbjsKK+Wuh+iIquWxgCA+IHNwYWNlXC1hZ2VuY3k7CivljrvlnIvlpJYgPiB0b1wtZ29cLWFicm9hZDsKK+esrOS6jOS9jSA+IHNlY29uZFwtcGxhY2U7CivlkIzmmYLku6MgPiBjb250ZW1wb3Jhcnk7Civlia/nuL3nkIYgPiB2aWNlXC1wcmVtaWVyOwor6Lev5b6X6KiYID4gYm9va1wtb2ZcLXJ1dGg7CivlpJrlt6XljJYgPiB0b1wtbXVsdGlwbGV4Owor5LiJ5ZCI5LiAID4gdGhyZWVcLWluXC1vbmU7Civlm5vnmb7okKwgPiBmb3VyXC1taWxsaW9uOwor6auY6LOq6YePID4gaGlnaFwtcXVhbGl0eTsKK+Wkoua4uOeXhyA+IHRvXC1zbGVlcHdhbGs7CivkuI3ntZDnm58gPiBub25hbGlnbm1lbnQ7CivlhavntJrpoqggPiBmb3JjZVwtOFwtd2luZDsKK+W5vOWFkuWckiA+IGtpbmRlcmdhcnRlbjsKK+ahlOWtkOawtCA+IG9yYW5nZVwtanVpY2U7CivlibXpgKDmgKcgPiBjcmVhdGl2ZW5lc3M7CivnoJTnqbbogIUgPiBpbnZlc3RpZ2F0b3I7CivlkajnuL3nkIYgPiBwcmVtaWVyXC16aG91Owor5Z+35pS/6buoID4gcnVsaW5nXC1wYXJ0eTsKK+avjeimquevgCA+IG1vdGhlcicnc1wtZGF5Owor5LiA5LiL5YWSID4gYVwtbGl0dGxlXC1iaXQ7CivkuI3lg4/oqbEgPiB1bnJlYXNvbmFibGU7CivopIfoo73lk4EgPiByZXByb2R1Y3Rpb247Civlj7jms5XmrIogPiBqdXJpc2RpY3Rpb247CivkvZTkvr/lrpwgPiBhZHZlbnRhZ2VvdXM7CivpvLvkuK3pmpQgPiBuYXNhbFwtc2VwdHVtOwor5paw6IGe6JmVID4gbmV3c1wtc2VydmljZTsKK+mBi+WLlemeiyA+IHNwb3J0c1wtc2hvZXM7CivmoLjovZ/ngrggPiBudWNsZWFyXC1ib21iOwor6L2J6LOs5Y2hID4gYVwtZGViaXRcLWNhcmQ7CivpnaLlsI3pnaIgPiBmYWNlXC10b1wtZmFjZTsKK+ikh+Wvq+e0mSA+IGNhcmJvblwtcGFwZXI7CivkuI3nm7jlrrkgPiBpbmNvbXBhdGlibGU7CivmiZPlrZTlmaggPiBob2xlXC1wdW5jaGVyOwor5LuA6bq85pivID4gd2hhdFwtaXNcLVwuXC5cLlw/Owor5Ye56YCP6Y+hID4gY29uY2F2ZVwtbGVuczsKK+WPpOe+hemmrCA+IGFuY2llbnRcLXJvbWU7CivkuozljYHokKwgPiAyMDBcLXRob3VzYW5kOwor5bm06LyV5Lq6ID4geW91bmdcLXBlb3BsZTsKK+S5kuS5k+eQgyA+IHRhYmxlXC10ZW5uaXM7Civpmo7ntJrlvI8gPiBoaWVyYXJjaGljYWw7Civogb3oqqrpgY4gPiB0b1wtaGVhclwtc2FpZDsKK+mXjOWwvueCjiA+IGFwcGVuZGljaXRpczsKK+Wkp+S4gOS6myA+IGFcLWJpdFwtYmlnZ2VyOwor55Sf54mp5oiwID4gZ2VybVwtd2FyZmFyZTsKK+W7uuioreaApyA+IGNvbnN0cnVjdGl2ZTsKK+WWieWhnumfsyA+IGdsb3R0YWxcLXN0b3A7CivlpKfpg73mnIMgPiBtZXRyb3BvbGl0YW47CivmnIDkvY7pu54gPiBsb3dlc3RcLXBvaW50Owor5Z+6552j5pWZID4gY2hyaXN0aWFuaXR5Owor5a6J55yg6YWuID4gbWV0aGFxdWFsb25lOwor6Kmm6amX5oCnID4gZXhwZXJpbWVudGFsOwor6LK05peP5YyWID4gYXJpc3RvY3JhdGljOwor5LqU55m+6JCsID4gZml2ZVwtbWlsbGlvbjsKK+WGsOa0suefsyA+IGljZWxhbmRcLXNwYXI7CivmoLjou43lgpkgPiBudWNsZWFyXC1hcm1zOwor6YCf6KiY5ZOhID4gc3Rlbm9ncmFwaGVyOwor55m95rC05rOlID4gd2hpdGVcLWNlbWVudDsKK+ixoeiBsuipniA+IG9ub21hdG9wb2VpYTsKK+W5gOagvOW8jyA+IGZyYW1lXC1mb3JtYXQ7CivooZvnlJ/ntJkgPiB0b2lsZXRcLXBhcGVyOwor55W25pmC55qEID4gb2ZcLXRoYXRcLXRpbWU7CivmtojpmLLmoJMgPiBmaXJlXC1oeWRyYW50Owor6YCP5piO5bqmID4gdHJhbnNwYXJlbmN5Owor5aOT5YCS5oCnID4gb3ZlcndoZWxtaW5nOwor5LqM5Y2B5LiDID4gdHdlbnR5XC1zZXZlbjsKK+Wkp+imj+aooSA+IGxhcmdlXC1zY2FsZTsKK+W6pumHj+ihoSA+IG1lYXN1cmVtZW50Owor6Iiq56m66KGTID4gYWVyb25hdXRpY3M7CivoqKrllY/ogIUgPiBpbnRlcnZpZXdlcjsKK+Wlveaci+WPiyA+IGdvb2RcLWZyaWVuZDsKK+Wbm+mdoumrlCA+IHRldHJhaGVkcm9uOwor5ouU6YeY6YyYID4gY2xhd1wtaGFtbWVyOwor55Sz5ZG96KiYID4gZGV1dGVyb25vbXk7CivmiY3lpJbmtYEgPiBicmFpblwtZHJhaW47CivlibXkvZzlipsgPiBvcmlnaW5hbGl0eTsKK+eZveefruaYnyA+IHdoaXRlXC1kd2FyZjsKK+S4jei0iuaIkCA+IGRpc2FwcHJvdmFsOwor5Y2K5pyI5YiKID4gc2VtaW1vbnRobHk7CivlgpnnlKjnkrAgPiBiYWNrdXBcLXJpbmc7Civmu7TnrZTogbIgPiB0aWNrXC1cKHRvY2tcKTsKK+a6q+W6puioiCA+IHRoZXJtb2dyYXBoOwor5LiN6YeN6KaBID4gdW5pbXBvcnRhbnQ7CivmnInlvbHpn78gPiBpbmZsdWVudGlhbDsKK+eZvOmbu+W7oCA+IHBvd2VyXC1wbGFudDsKK+afj+ael+eJhiA+IGJlcmxpblwtd2FsbDsKK+W3oemCj+iJhyA+IHBhdHJvbFwtYm9hdDsKK+S4jeWQq+eziiA+IHVuYW1iaWd1b3VzOwor5pys5Zyf5YyWID4gdG9cLWxvY2FsaXplOwor5a6J5YWo54eIID4gc2FmZXR5XC1sYW1wOwor5pyJ5oSP5oCdID4gaW50ZXJlc3Rpbmc7CivnqpfnjrvnkoMgPiB3aW5kb3dcLXBhbmU7CivmlrDopb/omK0gPiBuZXdcLXplYWxhbmQ7CivmlZfooYDnl4cgPiBzZXB0aWNhZW1pYTsKK+WIhuS9iOW8jyA+IGRpc3RydWJ1dGVkOwor5pyJ5Lqb5Lq6ID4gc29tZVwtcGVvcGxlOwor5LiN5ZCQ5rCjID4gdW5hc3BpcmF0ZWQ7CivmnInntpPpqZcgPiBleHBlcmllbmNlZDsKK+eUt+aci+WPiyA+IG1hbGVcLWZyaWVuZDsKK+eZveearuabuCA+IHdoaXRlXC1wYXBlcjsKK+e/u+itr+iAhSA+IGludGVycHJldGVyOwor5LiN5rOo5oSPID4gdGhvdWdodGxlc3M7Civkv53kuI3kvY8gPiBtb3N0XC1saWtlbHk7Civlt7Tlk4jppqwgPiB0aGVcLWJhaGFtYXM7CivnmbzpgIHlmaggPiB0cmFuc21pdHRlcjsKK+esrOS4gOeroCA+IGNoYXB0ZXJcLW9uZTsKK+mAo+eSsOWcliA+IGNvbWljXC1zdHJpcDsKK+WcqOWcsOS4iyA+IHVuZGVyZ3JvdW5kOwor5YKz55yf5qmfID4gZmF4XC1tYWNoaW5lOwor6KOd55Sy6LuKID4gYXJtb3JlZFwtY2FyOwor542y55uK6ICFID4gYmVuZWZpY2lhcnk7CivljYrpgI/mmI4gPiB0cmFuc2x1Y2VudDsKK+esrOS4gOa1gSA+IGZpcnN0XC1jbGFzczsKK+isgOauuuahiCA+IG11cmRlclwtY2FzZTsKK+eNjuWtuOmHkSA+IHNjaG9sYXJzaGlwOwor5LiN5YuV55SiID4gcmVhbFwtZXN0YXRlOwor5ZWf56S66YyEID4gcmV2ZWxhdGlvbnM7CivnrKzkuInmlrkgPiB0aGlyZFwtcGFydHk7CivooajokpnlrZAgPiB3YXRjaFwtZ2xhc3M7Civmk7rmnrblrZAgPiBwdXRcLW9uXC1haXJzOwor5LiN56K65a6aID4gdW5jZXJ0YWludHk7Civlj6TlhbjmtL4gPiBjbGFzc2ljaXN0czsKK+WPr+ihjOaApyA+IGZlYXNpYmlsaXR5Owor5ZCI5rOV5YyWID4gdG9cLWxlZ2FsaXplOwor5o6i54Wn54eIID4gc2VhcmNobGlnaHQ7Civlronlr6fniYcgPiBtZXByb2JhbWF0ZTsKK+aYr+S4jeaYryA+IGlzXC1vclwtaXNuJyd0Owor5aSa5bel5ZmoID4gbXVsdGlwbGV4ZXI7Civli57li5XlipsgPiBsYWJvclwtZm9yY2U7Civoqp7oqIDlrbggPiBsaW5ndWlzdGljczsKK+W5uOmBi+WFkiA+IGFcLWx1Y2t5XC1ndXk7CivmnKzos6rkuIogPiBlc3NlbnRpYWxseTsKK+WcsOS4i+awtCA+IGdyb3VuZHdhdGVyOwor55Sz6KuL5pu4ID4gYXBwbGljYXRpb247CivmlZnogrLmgKcgPiBpbnN0cnVjdGl2ZTsKK+e5vOaJv+asiiA+IGluaGVyaXRhbmNlOwor6KO954mH5Lq6ID4gbW92aWVtYWtpbmc7CivkuI3opoHnt4ogPiB1bmltcG9ydGFudDsKK+aVl+WutuWtkCA+IHNwZW5kdGhyaWZ0Owor5bGA6ZmQ5oCnID4gbGltaXRhdGlvbnM7CivllK7osqjlk6EgPiBzYWxlc3BlcnNvbjsKK+WPr+WwiuaVrCA+IHJlc3BlY3RhYmxlOwor6Z2e5pW45a2XID4gbm9uXC1udW1lcmljOwor54iG57Gz6IqxID4gcHVmZmVkXC1yaWNlOwor5LiJ5Y2B5aSpID4gdGhpcnR5XC1kYXlzOwor6IyF5bGL6aCCID4gdGhhdGNoXC1yb29mOwor5LiJ5Y2B5ZubID4gdGhpcnR5XC1mb3VyOwor5LiN6YCB5rCjID4gdW5hc3BpcmF0ZWQ7CivmgKfkvLTkvrYgPiBzZXhcLXBhcnRuZXI7CivkubPnmb3oibIgPiBtaWxreVwtd2hpdGU7CivmrrrkurrmoYggPiBtdXJkZXJcLWNhc2U7Civok4vnhLbmgKcgPiBwcm9iYWJpbGl0eTsKK+WPr+iDveaApyA+IHBvc3NpYmlsaXR5Owor5oi/5Zyw55SiID4gcmVhbFwtZXN0YXRlOwor55m75bGx5a62ID4gbW91bnRhaW5lZXI7Civlk7LlrbjlrrYgPiBwaGlsb3NvcGhlcjsKK+WIhuaVo+W8jyA+IGRpc3RyaWJ1dGVkOwor57O75YiX54mHID4gZmlsbVwtc2VyaWVzOwor6Zi/5a+M5rGXID4gYWZnaGFuaXN0YW47CivmtJvmnYnno68gPiBsb3NcLWFuZ2VsZXM7CivpmbDmtrzomZUgPiBzaGFkeVwtcGxhY2U7CivkvLjnuK7mgKcgPiBmbGV4aWJpbGl0eTsKK+mWieWFg+mfsyA+IGNsb3NlXC12b3dlbDsKK+acgOWkp+WMliA+IHRvXC1tYXhpbWl6ZTsKK+esrOWNgeS4gyA+IHNldmVudGVlbnRoOwor5ZOy5a245LiKID4gcGhpbG9zb3BoaWM7CivlkKbmnInmlYggPiBpbmVmZmljaWVudDsKK+WMl+acnemuriA+IG5vcnRoXC1rb3JlYTsKK+mdiOa0u+aApyA+IGZsZXhpYmlsaXR5Owor5L2/5L+h5pyNID4gdG9cLWNvbnZpbmNlOwor5Y+j6aaZ57OWID4gY2hld2luZ1wtZ3VtOwor6KW/5LmD5bGxID4gbW91bnRcLXNpbmFpOwor6YeR5bGs5p2/ID4gbWV0YWxcLXBsYXRlOwor5LiN5YGa6IGyID4ga2VlcFwtc2lsZW50Owor5YWp55m+6JCsID4gdHdvXC1taWxsaW9uOwor5L+u55CG5bugID4gcmVwYWlyXC1zaG9wOwor5qmf5YuV5oCnID4gZmxleGliaWxpdHk7Civlop7plbfnjocgPiBncm93dGhcLXJhdGU7Civku4vns7voqZ4gPiBwcmVwb3NpdGlvbjsKK+S4u+apn+advyA+IG1vdGhlcmJvYXJkOwor5LuW5YCR6YO9ID4gYWxsXC1vZlwtdGhlbTsKK+mhnuS8vOm7niA+IHJlc2VtYmxhbmNlOwor6ZuZ5Lq65oi/ID4gZG91YmxlXC1yb29tOwor576O6KGT6aSoID4gYXJ0XC1nYWxsZXJ5Owor6YCj5o6l6KmeID4gY29uanVuY3Rpb247CivntITkvK/oqJggPiBib29rXC1vZlwtam9iOwor5oKy5Zac5YqHID4gdHJhZ2ljb21lZHk7Civou5/no4Hnop8gPiBmbG9wcHlcLWRpc2s7CivljYrlsIHlu7ogPiBzZW1pXC1mZXVkYWw7Civlr6bos6rmgKcgPiBzdWJzdGFudGl2ZTsKK+i7n+ejgeebpCA+IGZsb3BweVwtZGlzazsKK+iuiuWjk+WZqCA+IHRyYW5zZm9ybWVyOwor6JiL5p6c5rGBID4gYXBwbGVcLWp1aWNlOwor5pqX6KiY5YWSID4gc2VjcmV0XC1tYXJrOwor6YWN6YCB6ICFID4gZGlzdHJpYnV0b3I7Civph5HpioDoirEgPiBob25leXN1Y2tsZTsKK+WFg+iAgemZoiA+IHVwcGVyXC1ob3VzZTsKK+WPr+aDs+WDjyA+IGNvbmNlaXZhYmxlOwor6K2J5piO5pu4ID4gY2VydGlmaWNhdGU7Civkv6HnlKjljaEgPiBjcmVkaXRcLWNhcmQ7CivlpbPnrqHlrrYgPiBob3VzZWtlZXBlcjsKK+W3peeoi+WtuCA+IGVuZ2luZWVyaW5nOwor5pyJ5a6z55qEID4gZGVzdHJ1Y3RpdmU7CivlpKnnhLbmsKMgPiBuYXR1cmFsXC1nYXM7CivkvpvooYDogIUgPiBibG9vZFwtZG9ub3I7Civnh5/ppIrlk4EgPiBub3VyaXNobWVudDsKK+mBqeaHieaApyA+IHN1aXRhYmlsaXR5Owor5aSp5paH5Y+wID4gb2JzZXJ2YXRvcnk7Civpkb/nn7PloLQgPiByb2NrXC1xdWFycnk7CivlsI/msb3ou4ogPiBjb21wYWN0XC1jYXI7CivonrrntbLliIAgPiBzY3Jld2RyaXZlcjsKK+WJr+S9nOeUqCA+IHNpZGVcLWVmZmVjdDsKK+S6jOWNgeWEhCA+IHR3b1wtYmlsbGlvbjsKK+enu+akjeaApyA+IHBvcnRhYmlsaXR5Owor5LqM5Y2B5LqUID4gdHdlbnR5XC1maXZlOwor5rKS5ZWP6aGMID4gbm9cLXByb2JsZW07CivnrKzkupTpoZ4gPiBjYXRlZ29yeVwtNTsKK+mdnuWumOaWuSA+IHVub2ZmaWNpYWw7CivlnIvmsJHpu6ggPiBrdW9taW50YW5nOwor55m96Imy6auUID4gbGV1Y29wbGFzdDsKK+S4jeiAkOeFqSA+IGltcGF0aWVuY2U7Civnmb7liIbnjocgPiBwZXJjZW50YWdlOwor5Luk54mM55KwID4gdG9rZW5cLXJpbmc7Civoh6rnmb3mm7ggPiBjb25mZXNzaW9uOwor5bGV6Ka95pyDID4gZXhoaWJpdGlvbjsKK+mrmOmAn+eOhyA+IGhpZ2hcLXNwZWVkOwor5aSn5Z+O5biCID4gbWFqb3JcLWNpdHk7CivllqzmsrvmlaYgPiBnZW9yZ2V0b3duOwor55m+5YiG5q+UID4gcGVyY2VudGFnZTsKK+WCs+mBk+iAhSA+IG1pc3Npb25hcnk7CivkuI3lj6/og70gPiBpbXBvc3NpYmxlOwor6YyE6Z+z5bi2ID4gYXVkaW9cLXRhcGU7CivpjKvlronlsbEgPiBtb3VudFwtemlvbjsKK+ehrOejgeebpCA+IGhhcmRcLWRyaXZlOwor55m+5YiG5pW4ID4gcGVyY2VudGFnZTsKK+att+WPsuS4iiA+IGhpc3RvcmljYWw7CivoqJjluLPlk6EgPiBib29ra2VlcGVyOwor5L2/5aSx5pybID4gZGlzYXBwb2ludDsKK+aJv+WMheS6uiA+IGNvbnRyYWN0b3I7Civnianos6rkuIogPiBtYXRlcmlhbGx5Owor5Y2K5YWs6ZaLID4gc2VtaVwtb3ZlcnQ7Civkvb/lhY3pmaQgPiBnZXRcLXJpZFwtb2Y7Civmm7TooaPlrqQgPiBjaGFuZ2Vyb29tOwor6LaF5aqS6auUID4gaHlwZXJtZWRpYTsKK+S4jeaYjueiuiA+IGluZGVmaW5pdGU7CivkuI3mma/msKMgPiBkZXByZXNzaW9uOwor6LOH5pys5a62ID4gY2FwaXRhbGlzdDsKK+S6jOaJi+iyqCA+IHNlY29uZGhhbmQ7CivlgrPmlZnlo6sgPiBtaXNzaW9uYXJ5Owor5piT5o6l6L+RID4gYWNjZXNzaWJsZTsKK+aDs+WDj+WKmyA+IGNvbmNlcHRpb247CivmnInmsbrlv4MgPiBkZXRlcm1pbmVkOwor5qmE5qyW5qi5ID4gb2xpdmVcLXRyZWU7CivniK3oq5bpu54gPiBjb250ZW50aW9uOwor6KSH6Zuc5oCnID4gY29tcGxleGl0eTsKK+WltueJm+WgtCA+IGRhaXJ5XC1mYXJtOwor5a2X56+A5pW4ID4gYnl0ZVwtY291bnQ7Civlh7rnlJ/lnLAgPiBiaXJ0aHBsYWNlOwor5LiN5LiL5LqOID4gYXNcLW1hbnlcLWFzOwor5aSn5aqS6auUID4gbWFjcm9tZWRpYTsKK+WCmeW/mOmMhCA+IG1lbW9yYW5kdW07CivmjKjlgIvlhZIgPiBvbmVcLWJ5XC1vbmU7CivlhYTlvJ/mnIMgPiBmcmF0ZXJuaXR5Owor55WZ6IGy5qmfID4gZ3JhbW9waG9uZTsKK+m7keiOk+WtkCA+IGJsYWNrYmVycnk7CivntbHoqIjlrbggPiBzdGF0aXN0aWNzOwor5Zyo5LiL6Z2iID4gdW5kZXJuZWF0aDsKK+S4jeiuiuWMliA+IGludmFyaWFibHk7CivpmYznlJ/kurogPiBhXC1zdHJhbmdlcjsKK+S4jemBqeeVtiA+IGluYWRlcXVhdGU7Civpm7voppboh7ogPiB0dlwtc3RhdGlvbjsKK+S4u+WKm+iJpiA+IGJhdHRsZXNoaXA7CivooYzkuI3pgJogPiB3b24nJ3RcLXdvcms7Civnq7bniK3ogIUgPiBjb21wZXRpdG9yOwor5pyJ57O757WxID4gc3lzdGVtYXRpYzsKK+efreaZgumWkyA+IHNob3J0XC10ZXJtOwor5rKS5Lq65L2PID4gdW5vY2N1cGllZDsKK+WLleeJqeWtuCA+IHpvb2xvZ2ljYWw7Civnm6fmo67loKEgPiBsdXhlbWJvdXJnOwor56ys5LiD5Y2BID4gc2V2ZW50aWV0aDsKK+WGsOWHneWZqCA+IGNyeW9waG9ydXM7Civlv4PnkIblrbggPiBwc3ljaG9sb2d5Owor5rCj5ZaY5ZaYID4gYnJlYXRobGVzczsKK+esrOS4gOS+iyA+IGZpcnN0XC1jYXNlOwor5pGp5aSp5pGfID4gc2t5c2NyYXBlcjsKK+S4jemAj+awtCA+IHdhdGVycHJvb2Y7CivlvpfkuI3liLAgPiBjYW5ub3RcLWdldDsKK+mHjeimgeaApyA+IGltcG9ydGFuY2U7CivmioDooZPlk6EgPiB0ZWNobmljaWFuOwor6Z2e5q2j5byPID4gdW5vZmZpY2lhbDsKK+WRqOaBqeS+hiA+IHpob3VcLWVubGFpOwor5pyJ6IiI6LajID4gaW50ZXJlc3RlZDsKK+S4jee2k+aEjyA+IGNhcmVsZXNzbHk7CivmiZPlrZfmqZ8gPiB0eXBld3JpdGVyOwor5YCN5aKe5ZmoID4gbXVsdGlwbGllcjsKK+mHkeWxrOe3miA+IG1ldGFsXC13aXJlOwor5pyJ6Ia96YePID4gY291cmFnZW91czsKK+itmOWIpeiZnyA+IGlkZW50aWZpZXI7CivnlJ/mnInmrIogPiBiaXJ0aHJpZ2h0Owor5oyB5Y2h5Lq6ID4gY2FyZGhvbGRlcjsKK+WIuue5oeWTgSA+IGVtYnJvaWRlcnk7Civmr5vmvqTmnbEgPiBtYW9cLXplZG9uZzsKK+WFreWNgeS6lCA+IHNpeHR5XC1maXZlOwor5aSa5aqS6auUID4gbXVsdGltZWRpYTsKK+S4jeW5s+W4uCA+IHJlbWFya2FibGU7CivmirXmipflipsgPiByZXNpc3RhbmNlOwor5aSn5Li75pWZID4gYXJjaGJpc2hvcDsKK+ippueul+ihqCA+IHNwZWFkc2hlZXQ7Civnmb3lj6PpkLUgPiB3aGl0ZVwtaXJvbjsKK+esrOWNgeWFqyA+IGVpZ2h0ZWVudGg7Civlr6bpqZflrqQgPiBsYWJvcmF0b3J5Owor56ys5Y2B5LmdID4gbmluZXRlZW50aDsKK+esrOWNgeS4iSA+IHRoaXJ0ZWVudGg7CivmqZ/pl5zou4ogPiBsb2NvbW90aXZlOwor5L+d5r2U566xID4gbGl0dGVyXC1iaW47CivogIHlubTkurogPiBvbGRcLXBlb3BsZTsKK+eZvOiBsuazlSA+IGludG9uYXRpb247CivorZjliKXnorwgPiBpZGVudGlmaWVyOwor5LiN5bmz5YehID4gbWFydmVsbG91czsKK+W0keW0meWxsSA+IG10XC5cLWt1bmx1bjsKK+S7o+ihqOWcmCA+IGRlbGVnYXRpb247CivlvbHlg4/mqpQgPiBpbWFnZVwtZmlsZTsKK+WxheS9j+iAhSA+IGluaGFiaXRhbnQ7CivlgrPmn5Pnl4UgPiBwZXN0aWxlbmNlOwor56ym6KiY55KwID4gdG9rZW5cLXJpbmc7Civlm5vnmb7lhIQgPiA0MFwtYmlsbGlvbjsKK+ebp+a1ruWuriA+IHRoZVwtbG91dnJlOwor5ZCm5rG65qyKID4gdmV0b1wtcG93ZXI7CivltIfmi5zogIUgPiB3b3JzaGlwcGVyOwor5oiy5YqH5YyWID4gdGhlYXRyaWNhbDsKK+WVhOacqOmzpSA+IHdvb2RwZWNrZXI7CivpnZ7nm4jliKkgPiBub25cLXByb2ZpdDsKK+S9v+WuueaYkyA+IGZhY2lsaXRhdGU7CivnoJTnqbblk6EgPiByZXNlYXJjaGVyOwor55uu5pOK6ICFID4gZXlld2l0bmVzczsKK+WwiOmWgOWMliA+IHNwZWNpYWxpemU7CivmkanmiZjou4ogPiBtb3RvcmN5Y2xlOwor5oyJ5omL56auID4gb3JkaW5hdGlvbjsKK+ioguizvOiAhSA+IHN1YnNjcmliZXI7Civpoa/lvq7pj6EgPiBtaWNyb3Njb3BlOwor5Y6f55Sf6LOqID4gcHJvdG9wbGFzbTsKK+WkmuaWuemdoiA+IG1hbnlcLXNpZGVkOwor5pyD6ZW35ZyYID4gcHJlc2lkZW5jeTsKK+aWsOiBnuWtuCA+IGpvdXJuYWxpc207CivkuI3lrproqZ4gPiBpbmZpbml0aXZlOwor5aSn5rCj5bGkID4gYXRtb3NwaGVyZTsKK+S4jeewoeWWriA+IG5vdFwtc2ltcGxlOwor5Y+X5YK35a6zID4gYmVcLWluanVyZWQ7Civnq6/ns7vntbEgPiBlbmRcLXN5c3RlbTsKK+S7o+abv+iAhSA+IHN1YnN0aXR1dGU7CivkuInnmb7lhIQgPiAzMFwtYmlsbGlvbjsKK+mdnuWwjeeosSA+IGFzeW1tZXRyaWM7CivnhKHnhZnnhaQgPiBhbnRocmFjaXRlOwor5Y2K5rG66LO9ID4gc2VtaWZpbmFsczsKK+iOq+mgiOaciSA+IGdyb3VuZGxlc3M7CivkuI3osrfos6wgPiBub3RcLWJ1eVwtaXQ7CivlpbPlrbjnlJ8gPiBzY2hvb2xnaXJsOwor5LiN6Ieq5ZyoID4gdW5lYXNpbmVzczsKK+S4i+WAi+aciCA+IG5leHRcLW1vbnRoOwor6Y+I6Lev5bGkID4gbGlua1wtbGF5ZXI7CivkuI3nlLHlvpcgPiBjYW4nJ3RcLWhlbHA7CivmuqvlkozmgKcgPiB0ZW5kZXJuZXNzOwor5omA5pyJ6ICFID4gcHJvcHJpZXRvcjsKK+S4iuWAi+aciCA+IGxhc3RcLW1vbnRoOwor5Y2K56m65LitID4gaW5cLW1pZFwtYWlyOwor5LiN562J5byPID4gaW5lcXVhbGl0eTsKK+aal+mWk+WFkiA+IGlubmVyXC1yb29tOwor6Ieq5YuV5YyWID4gYXV0b21hdGlvbjsKK+WWruaWuemdoiA+IHVuaWxhdGVyYWw7CivpgYvli5XloLQgPiBwbGF5Z3JvdW5kOwor6ZmE5Yqg54mpID4gY29tcGxlbWVudDsKK+S9m+aVmeW+kiA+IGFcLWJ1ZGRoaXN0Owor5pON6Ii15a6kID4gcGlsb3Rob3VzZTsKK+mbu+WUseapnyA+IHBob25vZ3JhcGg7CivmtYHnqIvlnJYgPiBmbG93XC1jaGFydDsKK+ebo+edo+iAhSA+IHN1cGVydmlzb3I7CivmiYDmnInniakgPiBiZWxvbmdpbmdzOwor5LqM5Y2B5LiAID4gdHdlbnR5XC1vbmU7CivnqanlrprmgKcgPiBzdGFiaWxpdHk7CivpgKPmjqXlmaggPiBjb25uZWN0b3I7CivlvaLlrrnovq0gPiBhZGplY3RpdmU7Civlj6/lvpfliLAgPiBhdmFpbGFibGU7Civnp5HlrbjlrrYgPiBzY2llbnRpc3Q7Civlv5fpoZjogIUgPiB2b2x1bnRlZXI7Civmk6bpgornkIMgPiBlZGdlXC1iYWxsOwor5oCO6bq85qijID4gaG93XC1hYm91dDsKK+aJgOacieasiiA+IG93bmVyc2hpcDsKK+eZveWgsee0mSA+IG5ld3NwcmludDsKK+iojuirluacgyA+IHN5bXBvc2l1bTsKK+aOpeWPl+iAhSA+IHJlY2lwaWVudDsKK+W9ouWuueipniA+IGFkamVjdGl2ZTsKK+avj+WAi+S6uiA+IGV2ZXJ5Ym9keTsKK+S4jeiCsuaApyA+IHN0ZXJpbGl0eTsKK+aqouafpeWToSA+IGluc3BlY3RvcjsKK+ihqOePvuWeiyA+IHBoZW5vdHlwZTsKK+earumei+WMoCA+IHNob2VtYWtlcjsKK+S/neitt+iAhSA+IHByb3RlY3RvcjsKK+WBveWQm+WtkCA+IGh5cG9jcnl0ZTsKK+iBsuaYjuabuCA+IHN0YXRlbWVudDsKK+mmrOi5hOmQtSA+IGhvcnNlc2hvZTsKK+aTlOaetuW6iiA+IHN0cmV0Y2hlcjsKK+S4jeWujOWWhCA+IGltcGVyZmVjdDsKK+aZtOmbqOihqCA+IGJhcm9tZXRlcjsKK+WNg+emp+W5tCA+IG1pbGxlbml1bTsKK+S9v+iUk+W7tiA+IHRvXC1zcHJlYWQ7CivmjqXnj63kurogPiBzdWNjZXNzb3I7CivliarosrznsL8gPiBzY3JhcGJvb2s7CivlgYnmmbblsqkgPiBwZWdtYXRpdGU7CivmjIfnpLrnrKYgPiBpbmRpY2F0b3I7Civkv53mg6DluKsgPiBjb21mb3J0ZXI7Civlu7rnr4nluKsgPiBhcmNoaXRlY3Q7Civlp5Tlk6HmnIMgPiBjb21taXR0ZWU7CivoiKrmtbfogIUgPiBuYXZpZ2F0b3I7CivlsI/lkIPlupcgPiBzbmFja1wtYmFyOwor57at5aOr5Y2hID4gdmlzYVwtY2FyZDsKK+WlveWlh+W/gyA+IGN1cmlvc2l0eTsKK+aUv+ayu+aApyA+IHBvbGl0aWNhbDsKK+a7kem8oOWiiiA+IG1vdXNlXC1wYWQ7Civmi5znianmlZkgPiBmZXRpc2hpc207CivkvY7pgJ/njocgPiBsb3dcLXNwZWVkOwor5pS/5rK75bGAID4gcG9saXRidXJvOwor6Zu25ZSu5ZWGID4gdHJhZGVzbWFuOwor5pS/5rK75a62ID4gc3RhdGVzbWFuOwor5a6J5YWo5bi2ID4gc2VhdFwtYmVsdDsKK+eZu+W7o+WRiiA+IGFkdmVydGlzZTsKK+aciea0u+WKmyA+IGVuZXJnZXRpYzsKK+mmmeaqs+mFkiA+IGNoYW1wYWduZTsKK+e2nOWQiOaApyA+IHN5bnRoZXNpczsKK+aRgemHmOWFkiA+IHRodW1idGFjazsKK+aWh+WFt+WVhiA+IHN0YXRpb25lcjsKK+aWsOWKoOWdoSA+IHNpbmdhcG9yZTsKK+mgmOS6i+mkqCA+IGNvbnN1bGF0ZTsKK+i2heiBr+e1kCA+IGh5cGVybGluazsKK+S/neeah+m7qCA+IHJveWFsaXN0czsKK+adseWMl+aWuSA+IG5vcnRoZWFzdDsKK+WlveiQiuWhoiA+IGhvbGx5d29vZDsKK+aMgeS5heaApyA+IGNvbnN0YW5jeTsKK+eZveihgOeXhSA+IGxldWthZW1pYTsKK+WFqOS4lueVjCA+IHdvcmxkd2lkZTsKK+e5vOaJv+iAhSA+IHN1Y2Nlc3NvcjsKK+aKl+itsOiAhSA+IHByb3Rlc3RlcjsKK+iho+W4vemWkyA+IGNsb2Frcm9vbTsKK+S4gOWMuemmrCA+IG9uZVwtaG9yc2U7CivmnInmmYLlgJkgPiBzb21ldGltZXM7CivlgJnpgbjkurogPiBjYW5kaWRhdGU7CivlkJHljJflnLAgPiBub3J0aHdhcmQ7CivkuIvmsbrlv4MgPiBkZXRlcm1pbmU7Civkv53orYnkurogPiBndWFyYW50b3I7CivkuIrmmJ/mnJ8gPiBsYXN0XC13ZWVrOwor56ys5LqM5Y2BID4gdHdlbnRpZXRoOwor552h6YGO6aCtID4gb3ZlcnNsZWVwOwor5Yip5pyq6KiYID4gbGV2aXRpY3VzOwor56ul5a2Q6LuNID4gYm95XC1zY291dDsKK+Wbm+WNgeWFrSA+IGZvcnR5XC1zaXg7CivnrKzkuZ3ljYEgPiBuaW5ldGlldGg7Civou4rliY3nh4ggPiBoZWFkbGlnaHQ7CivlrofoiKrlk6EgPiBhc3Ryb25hdXQ7Civkvb/lm7DnqpggPiBlbWJhcnJhc3M7Civlt6flhYvlipsgPiBjaG9jb2xhdGU7CivmnInpm4Tlv4MgPiBhbWJpdGlvdXM7CivomZXnkIblmaggPiBwcm9jZXNzb3I7Civnn6Xmm7Tps6UgPiByZWRicmVhc3Q7CivllZ/npLrogIUgPiByZXZlbGF0b3I7CivnrKzkuInljYEgPiB0aGlydGlldGg7Civnmb3pjqLnpKYgPiBzY2hlZWxpdGU7CivmiYvmj5DljIUgPiBcKGhhbmRcKWJhZzsKK+aKgOihk+aApyA+IHRlY2huaWNhbDsKK+S4jeiqoOWvpiA+IGRpc2hvbmVzdDsKK+ixjOixhueypSA+IHBlYVwtZ3J1ZWw7CivorormtYHlmaggPiBjb252ZXJ0ZXI7CivmvZvmsLToiYcgPiBzdWJtYXJpbmU7CivmibPpgZPlk6EgPiBwb2ludHNtYW47Civnubzku7vogIUgPiBzdWNjZXNzb3I7CivlhanmmJ/mnJ8gPiBmb3J0bmlnaHQ7CivmoLzlvI/ljJYgPiB0b1wtZm9ybWF0Owor5o6h55+z5aC0ID4gc3RvbmVcLXBpdDsKK+WKoOWLkuavlCA+IGNhcmliYmVhbjsKK+mbu+WgseapnyA+IHRlbGVncmFwaDsKK+W3peS9nOihqCA+IHdvcmtzaGVldDsKK+aatOmiqOmbqiA+IHNub3dzdG9ybTsKK+aatOmiqOmbqCA+IHJhaW5zdG9ybTsKK+aWh+Wtl+aqlCA+IHRleHRcLWZpbGU7Civosr/mmJPmiLAgPiB0cmFkZVwtd2FyOwor5L+d6Ki85Lq6ID4gZ3VhcmFudG9yOwor5aWJ5om/6ICFID4gZmxhdHRlcmVyOwor5oyH5o+u6ICFID4gY29uZHVjdG9yOwor5Y+D6ICD5pu4ID4gcmVmZXJlbmNlOwor6Yed5bCN5oCnID4gZGlyZWN0aW9uOwor5Y2K6KGw5pyfID4gaGFsZlwtbGlmZTsKK+aLieaWkOeJuSA+IGxhZmF5ZXR0ZTsKK+imgeS4jeeEtiA+IG90aGVyd2lzZTsKK+S4jee1kOaenCA+IGZydWl0bGVzczsKK+eUs+iri+S6uiA+IGFwcGxpY2FudDsKK+WHuueJiOiAhSA+IHB1Ymxpc2hlcjsKK+acrOaYn+acnyA+IHRoaXNcLXdlZWs7CivmgKrkuI3lvpcgPiBub1wtd29uZGVyOwor5Ym16YCg5YqbID4gaW5nZW51aXR5Owor5Y+v5a655b+NID4gdG9sZXJhYmxlOwor5Z+65pys5LiKID4gYmFzaWNhbGx5Owor56i76I2J5Lq6ID4gc2NhcmVjcm93Owor5aSa55So5oi2ID4gbXVsdGl1c2VyOwor57695q+b55CDID4gYmFkbWludG9uOwor5pWR6K236LuKID4gYW1idWxhbmNlOwor56ys5Y2B5YWtID4gc2l4dGVlbnRoOwor5L2/55Sf5rCjID4gZGlzcGxlYXNlOwor5LiN5YWs5q2jID4gaW5qdXN0aWNlOwor5YWJ5bCE57eaID4gbGlnaHRcLXJheTsKK+WkluWci+S6uiA+IGZvcmVpZ25lcjsKK+esrOWNgeS6lCA+IGZpZnRlZW50aDsKK+mYv+agueW7tyA+IGFyZ2VudGluYTsKK+WBveWWhOiAhSA+IGh5cG9jcml0ZTsKK+ieuuaXi+ansyA+IHByb3BlbGxlcjsKK+iyr+awtOiZlSA+IHJlc2Vydm9pcjsKK+WNiua1gemrlCA+IHNlbWlmbHVpZDsKK+W+geacjeiAhSA+IGNvbnF1ZXJvcjsKK+aNlem8oOWZqCA+IG1vdXNldHJhcDsKK+iuiuiJsum+jSA+IGNoYW1lbGVvbjsKK+WwjeaKl+iAhSA+IGFkdmVyc2FyeTsKK+iWhOayueWxpCA+IG9pbFwtc2hlZXQ7CivnhKHnn6XoprogPiBzZW5zZWxlc3M7CivmsKPlo5PoqIggPiBiYXJvbWV0ZXI7Civnmb3kupHmr40gPiBtdXNjb3ZpdGU7CivlvavliLvlk4EgPiBzY3VscHR1cmU7CivmlrDogZ7nlYwgPiB0aGVcLXByZXNzOwor5LiA5Y2D5Zm4ID4gMTAwMFwtdG9uczsKK+S4jeimj+WJhyA+IGlycmVndWxhcjsKK+azoueLgOmbsiA+IHVuZHVsYXR1czsKK+aTtOmfs+WZqCA+IG1lZ2FwaG9uZTsKK+S4jeimi+S6hiA+IGRpc2FwcGVhcjsKK+S5neaciOS7vSA+IHNlcHRlbWJlcjsKK+i2heaWh+acrCA+IGh5cGVydGV4dDsKK+iugOabuOS6uiA+IGFcLXNjaG9sYXI7CivmjIfmj67lrpggPiBjb21tYW5kZXI7CivlvJXnlKjlj6UgPiBxdW90YXRpb247CivljYPotavojLIgPiBraWxvaGVydHo7CivlhavlgI3pq5QgPiBvY3RvcGxvaWQ7CivooqvnpoHmraIgPiBmb3JiaWRkZW47CivkuI3oh6rnhLYgPiB1bm5hdHVyYWw7Civpq5jnp5HmioAgPiBoaWdoXC10ZWNoOwor5oCq54mp5Ly8ID4gbW9uc3Ryb3VzOwor5Yaw5qON5YWSID4gaWNlXC1sb2xseTsKK+eZveePreWFkiA+IGRheVwtc2hpZnQ7CivmmJ/mnJ/kuIkgPiB3ZWRuZXNkYXk7Civph47ooLvkurogPiBiYXJiYXJpYW47CivljYHlrZfou40gPiBjcnVzYWRlcnM7Civms5XlnIvkurogPiBmcmVuY2htYW47CivkupTljYPlmbggPiA1MDAwXC10b25zOwor6YGH6Zuj6Ii5ID4gc2hpcHdyZWNrOwor5Ye65bit6ICFID4gYXR0ZW5kYW50Owor576K55qu57SZID4gcGFyY2htZW50Owor5Y+N6Imm6ImHID4gYW50aVwtc2hpcDsKK+WFp+iho+iksiA+IHVuZGVyd2VhcjsKK+W/hemcgOWTgSA+IG5lY2Vzc2l0eTsKK+WGsOa3h+a3iyA+IGljZVwtY3JlYW07Civnn7PngbDnn7MgPiBsaW1lc3RvbmU7Civkv67pgZPpmaIgPiBtb25hc3Rlcnk7Civopb/ljJfmlrkgPiBub3J0aHdlc3Q7CivmnJvpgaDpj6EgPiB0ZWxlc2NvcGU7CivotoXmlofku7YgPiBoeXBlcnRleHQ7Civmk7roqK3lhZIgPiBvcm5hbWVudHM7CivlpKrlpb3kuoYgPiB2ZXJ5XC1nb29kOwor5pys5bm05bqmID4gdGhpc1wteWVhcjsKK+W/g+mdiOS4iiA+IHNwaXJpdHVhbDsKK+WkqeaWh+WtuCA+IGFzdHJvbm9teTsKK+W3tOavlOWmpSA+IGJhcmJpdG9uZTsKK+WvpuizquS4iiA+IHZpcnR1YWxseTsKK+acieevgOWItiA+IHRlbXBlcmF0ZTsKK+acieaEj+itmCA+IGNvbnNjaW91czsKK+WPl+Wus+iAhSA+IGNhc3VsdGllczsKK+S4jeWujOe+jiA+IGRlZmVjdGl2ZTsKK+aDhee3kuWMliA+IGVtb3Rpb25hbDsKK+aUr+aMgeiAhSA+IHN1cHBvcnRlcjsKK+aVuOS4jeeboSA+IGNvdW50bGVzczsKK+WAn+abuOWWriA+IGJvb2tcLXNsaXA7CivmnInnpq7osowgPiBjb3VydGVvdXM7CivnrKzlhavljYEgPiBlaWdodGlldGg7Civph4znqIvnopEgPiBtaWxlc3RvbmU7CivkuI3mg4XpoZggPiB1bndpbGxpbmc7CivkuIvlrprnvqkgPiB0b1wtZGVmaW5lOwor5bCN5LiN6LW3ID4gaScnbVwtc29ycnk7CivlgYfosaHniZkgPiBjZWxsdWxvaWQ7CivpmY3okL3lgpggPiBwYXJhY2h1dGU7CivkuI3ogrLnl4cgPiBzdGVyaWxpdHk7Civlv4XopoHmgKcgPiBuZWNlc3NpdHk7CivmlbjkuI3muIUgPiBjb3VudGxlc3M7Civos7zosrfogIUgPiBwdXJjaGFzZXI7CivlpKfmlZnloIIgPiBjYXRoZWRyYWw7CivntYTnuZTogIUgPiBvcmdhbml6ZXI7CivogZbov63lk6UgPiBzYW5cLWRpZWdvOwor6ZW35pa55b2iID4gcmVjdGFuZ2xlOwor55Sf5q6W5YqbID4gZmVydGlsaXR5Owor54Gw542154qsID4gZ3JleWhvdW5kOwor57+S5oWj5oCnID4gY3VzdG9tYXJ5Owor55m95YWn6ZqcID4gY2F0YXJhY3Q7CivlpKfnr7fou4ogPiBzY2hvb25lcjsKK+ebo+itt+S6uiA+IGd1YXJkaWFuOwor5LiN5ZCI6YGpID4gaW1wcm9wZXI7Civop4Dlr5/ogIUgPiBvYnNlcnZlcjsKK+iXpeWKkeWjqyA+IGRydWdnaXN0Owor5LiN5L+h5Lu7ID4gbWlzdHJ1c3Q7Civlm6DnibnntrIgPiBpbnRlcm5ldDsKK+WwjeeoseaApyA+IHN5bW1ldHJ5Owor5qqi5ris5ZmoID4gZGV0ZWN0b3I7CivprZTooZPluKsgPiBtYWdpY2lhbjsKK+S4jeacveeahCA+IGltbW9ydGFsOwor5q235Y+y5oCnID4gaGlzdG9yaWM7CivmqrjmqqzmsLQgPiBsZW1vbmFkZTsKK+S7peWkque2siA+IGV0aGVybmV0Owor6LKg6YeN5pOUID4gYnVyZGVuZWQ7CivmjqLmuKzlmaggPiBkZXRlY3RvcjsKK+WNgeS6jOaciCA+IGRlY2VtYmVyOwor5pOm57ay55CDID4gbmV0XC1iYWxsOwor6IGW5L+d576FID4gc3RcLlwtcGF1bDsKK+ilv+ijoeeIviA+IGN5cmlsbGljOwor5aWz5a2p5YWSID4gZGF1Z2h0ZXI7CivmnInlvrfooYwgPiB2aXJ0dW91czsKK+WPr+aTpuWvqyA+IGVyYXNhYmxlOwor54mn576K6ICFID4gc2hlcGhlcmQ7CivmnIDllpzmhJsgPiBmYXZvcml0ZTsKK+ethuiomOacrCA+IG5vdGVib29rOwor6Jaw6KGj6I2JID4gbGF2ZW5kZXI7CivkuI3lv4XopoEgPiBuZWVkbGVzczsKK+iri+mhmOabuCA+IHBldGl0aW9uOwor5oqV6LOH6ICFID4gaW52ZXN0b3I7Civlr4TnlJ/niakgPiBwYXJhc2l0ZTsKK+iCr+WhlOWfuiA+IGtlbnR1Y2t5Owor5p+s5Z+U5a+oID4gY2FtYm9kaWE7CivkuIDlsI/mmYIgPiBvbmVcLWhvdXI7CivkurrooYzpgZMgPiBzaWRld2FsazsKK+WuieWFqOaApyA+IHNlY3VyaXR5Owor5YaN5L+d6Ki8ID4gcmVhc3N1cmU7CivmlL/msrvlrbggPiBwb2xpdGljczsKK+ingOWvn+WutiA+IG9ic2VydmVyOwor6Zue5bC+6YWSID4gY29ja3RhaWw7CivmqYTmrJbnkIMgPiBmb290YmFsbDsKK+W5s+W6lemNiyA+IHNhdWNlcGFuOwor57SA5b+156KRID4gbW9udW1lbnQ7CivkvrXlhaXogIUgPiBpbnRydWRlcjsKK+aUuemdqeiAhSA+IHJlZm9ybWVyOwor5omL5o+Q566xID4gc3VpdGNhc2U7CivkuI3lkIzmhI8gPiBkaXNhZ3JlZTsKK+WFseWSjOWciyA+IHJlcHVibGljOwor5qOS56Oo5qmfID4gcm9kXC1taWxsOwor5q+U55uu6a2aID4gZmxhdGZpc2g7CivlpKflsaDmrrogPiBtYXNzYWNyZTsKK+Wwj+WknOabsiA+IHNlcmVuYWRlOwor5bCP5qiZ6aGMID4gc3VidGl0bGU7CivmnInmqZ/pq5QgPiBvcmdhbmlzbTsKK+atu+ihmuihlSA+IGRlYWRcLWVuZDsKK+S6pOmfv+absiA+IHN5bXBob255Owor5pmC6ZaT6KGoID4gc2NoZWR1bGU7CivpoK3lkJHliY0gPiBoZWFkbG9uZzsKK+aOoumaquiAhSA+IGV4cGxvcmVyOwor5Y+X6Zuj6ICFID4gc3VmZmVyZXI7Civlt7Tmi4nlnK0gPiBwYXJhZ3VheTsKK+esrOS4gOatpSA+IHN0ZXBcLW9uZTsKK+iqv+WRs+axgSA+IGRyZXNzaW5nOwor5pW45pOa5bqrID4gZGF0YWJhc2U7CivlgrXmrIrkurogPiBjcmVkaXRvcjsKK+W8n+WFhOWAkSA+IGJyZXRocmVuOwor5bCP6Kqq5a62ID4gbm92ZWxpc3Q7CivnrKzkupTljYEgPiBmaWZ0aWV0aDsKK+S4ieaYjuayuyA+IHNhbmR3aWNoOwor5YKs5YyW5YqRID4gY2F0YWx5c3Q7CivmtojosrvogIUgPiBjb25zdW1lcjsKK+eJp+e+iuS6uiA+IHNoZXBoZXJkOwor5pyJ5b2I5oCnID4gZmxleGlibGU7CivntpPpmbjot68gPiBvdmVybGFuZDsKK+WcqOaItuWkliA+IG91dGRvb3JzOwor5pOm5qOS55CDID4gZm91bFwtdGlwOwor5Lit5LiW57SAID4gbWVkaWV2YWw7Civlgr7ogb3ogIUgPiBsaXN0ZW5lcjsKK+aOpeaUtuWZqCA+IHJlY2VpdmVyOwor6LOH5paZ5bqrID4gZGF0YWJhc2U7Civmrrrkurrniq8gPiBtdXJkZXJlcjsKK+iRoeiQhOeJmSA+IHBvcnR1Z2FsOwor5LiN5q2j5bi4ID4gYWJub3JtYWw7Civlhafpg6jntrIgPiBpbnRyYW5ldDsKK+S4jemAj+awoyA+IGFpcnRpZ2h0Owor5pqW5rCj5qmfID4gcmFkaWF0b3I7CivpmL/ogq/oibIgPiBhcmthbnNhczsKK+aVmeenkeabuCA+IHRleHRib29rOwor6byT5ZC56ICFID4gYWR2b2NhdGU7CivlnLDkuIvlrqQgPiBiYXNlbWVudDsKK+Wkp+iCmuWtkCA+IHByZWduYW50Owor5LiN6YGO5oSPID4gYmVcLXNvcnJ5Owor5YaS54qv6ICFID4gb2ZmZW5kZXI7Civkv53nnJ/luqYgPiBmaWRlbGl0eTsKK+S4jemrlOmdoiA+IHNoYW1lZnVsOwor5bCP6KGd56qBID4gc2tpcm1pc2g7CivmjpLmsLTmuKAgPiBkcmFpbmFnZTsKK+m6u+mGieWKkSA+IG5hcmNvdGljOwor6KKr5L615a6zID4gc3RyaWNrZW47CivoqIjnrpfmqZ8gPiBjb21wdXRlcjsKK+eZveacqOiAsyA+IHRyZW1lbGxhOwor542o6KOB6ICFID4gZGljdGF0b3I7CivoqJjpjITlk6EgPiByZWNvcmRlcjsKK+iYh+agvOiYrSA+IHNjb3RsYW5kOwor6JGh6JCE5ZySID4gdmluZXlhcmQ7Civkvb/oiIjlpa4gPiBleGNpdGluZzsKK+esrOWNgeS4gCA+IGVsZXZlbnRoOwor5pa556iL5byPID4gZXF1YXRpb247CivnhKHnt5rpm7sgPiB3aXJlbGVzczsKK+W9q+WIu+WutiA+IHNjdWxwdG9yOwor5bel5ZWG55WMID4gaW5kdXN0cnk7CivpmL/miZjlk4EgPiBhdHJvcGluZTsKK+WcsOWNgOaApyA+IHJlZ2lvbmFsOwor6KOd6aO+54mpID4gb3JuYW1lbnQ7CivkuInop5LlvaIgPiB0cmlhbmdsZTsKK+iqmOaLkOiAhSA+IGFiZHVjdG9yOwor5oiy5YqH5oCnID4gZHJhbWF0aWM7Civmh7LnvbDmgKcgPiBwdW5pdGl2ZTsKK+WFq+inkualkyA+IGFsYW5naXVtOwor5YyX5rW36YGTID4gaG9ra2FpZG87CivkvY7miJDmnKwgPiBsb3dcLWNvc3Q7CivmmI7kv6HniYcgPiBwb3N0Y2FyZDsKK+aVkei0luS4uyA+IHJlZGVlbWVyOwor55Sf5ZG95YqbID4gdml0YWxpdHk7CivmiYDlnKjlnLAgPiBsb2NhdGlvbjsKK+eUoumHj+WkmiA+IGZydWl0ZnVsOwor55yL5a6I6ICFID4gd2F0Y2htYW47CivkvZTpoJjogIUgPiBvY2N1cGFudDsKK+aal+WcsOijoSA+IHNlY3JldGx5Owor5L2O6LK755SoID4gbG93XC1jb3N0Owor5L2/5ZCD6amaID4gYXN0b25pc2g7CivlubjlrZjogIUgPiBzdXJ2aXZvcjsKK+S9v+mnreaAlSA+IGZyaWdodGVuOwor5qu76Iqx6I2JID4gcHJpbXJvc2U7CivmmJ/mnJ/lm5sgPiB0aHVyc2RheTsKK+axuuWumuaApyA+IGRlY2lzaXZlOwor5pel6ICz5pu8ID4gZ2VybWFuaWM7Civlub7kvZXlrbggPiBnZW9tZXRyeTsKK+WCvuWQkeaWvCA+IHByb25lXC10bzsKK+eUn+mChOiAhSA+IHN1cnZpdm9yOwor5pif5pyf5YWtID4gc2F0dXJkYXk7CivpmLLlrojogIUgPiBkZWZlbmRlcjsKK+acieWDueWAvCA+IHZhbHVhYmxlOwor5Yi65r+A54mpID4gc3RpbXVsdXM7CivkuI3kv6HnlKggPiBkaXN0cnVzdDsKK+aPkOS+m+iruCA+IHByb3ZpZGVyOwor5bel56iL5birID4gZW5naW5lZXI7CivkuK3nubzlmaggPiByZXBlYXRlcjsKK+a0i+eQteeQtiA+IG1hbmRvbGluOwor5oOh5L2c5YqHID4gbWlzY2hpZWY7CivlrZDljYjnt5ogPiBtZXJpZGlhbjsKK+ijveS9nOiAhSA+IHByb2R1Y2VyOwor5LiN5Zyo5LmOID4gbm90XC1taW5kOwor6Z+z5qiC5a62ID4gbXVzaWNpYW47Civkvb/purvnl7ogPiBwYXJhbHl6ZTsKK+WNg+Wtl+evgCA+IGtpbG9ieXRlOwor6K6K6Zi75ZmoID4gdGhlb3N0YXQ7CivlpbPmiL/mnbEgPiBsYW5kbGFkeTsKK+S4jeWAvOW+lyA+IHVud29ydGh5Owor5o+Q5L6b6ICFID4gc3VwcGxpZXI7CivloIXlm7rmgKcgPiBmaXJtbmVzczsKK+eZveWMlueXhSA+IGFsYmluaXNtOwor56ys5YWt5Y2BID4gc2l4dGlldGg7CivmlofmmI7ljJYgPiBjaXZpbGl6ZTsKK+WkluS6pOWumCA+IGRpcGxvbWF0Owor55m96Zuy55+zID4gZG9sb21pdGU7Civkvb/nv5LmhaMgPiBhY2N1c3RvbTsKK+WGsOaZtuefsyA+IGNyeW9saXRlOwor5LiN5bCP5b+DID4gaGVlZGxlc3M7Civlr4zoibLlvakgPiBjb2xvcmZ1bDsKK+e0jeeoheS6uiA+IHRheHBheWVyOwor5YaN5Ye654++ID4gcmVhcHBlYXI7CivpnaDog4zmpIUgPiBhcm1jaGFpcjsKK+aTjeS9nOiAhSA+IG9wZXJhdG9yOwor5YWo5ZyL5oCnID4gbmF0aW9uYWw7CivntbLni4DniakgPiBmaWxhbWVudDsKK+eZvOaYjuWutiA+IGludmVudG9yOwor6Jel5YqR5birID4gZHJ1Z2dpc3Q7CivkuI3mgI7purwgPiBub3RcLXZlcnk7CivlpKfopb/mtIsgPiBhdGxhbnRpYzsKK+eci+W+l+imiyA+IHZpc2libGU7CivmnInos4fmoLwgPiBlbnRpdGxlOwor5ZyT55+z6aCtID4gYm91bGRlcjsKK+Wlp+WcsOWIqSA+IGF1c3RyaWE7CivlgrPpgZPpg6ggPiBtaXNzaW9uOwor5Ym15LiW57SAID4gZ2VuZXNpczsKK+WNg+S9jeWFgyA+IGtpbG9iaXQ7Civmj5rogbLlmaggPiBzcGVha2VyOwor566h55CG5ZOhID4gbWFuYWdlcjsKK+iAgeizh+agvCA+IHZldGVyYW47Civph5HpioDloYogPiBidWxsaW9uOwor5rKZ5LiB6a2aID4gc2FyZGluZTsKK+WHuue0jeWToSA+IGNhc2hpZXI7CivmhJvpgYrnjqkgPiBwbGF5ZnVsOwor6Yu855C05a62ID4gcGlhbmlzdDsKK+ioiOaVuOiAhSA+IGNvdW50ZXI7Civop6PliZblrbggPiBhbmF0b215Owor5pyJ5a245ZWPID4gbGVhcm5lZDsKK+WNiuWQiuWtkCA+IGRhYmJsZXI7CivlpKnoirHmnb8gPiBjZWlsaW5nOwor5aSn55uk5a2QID4gcGxhdHRlcjsKK+S4jeiDveS4jSA+IGhhdmVcLXRvOwor5Ye65YWl5Y+jID4gZ2F0ZXdheTsKK+i1t+eauue0iyA+IHNocml2ZWw7CivmsrnlhYnmvIYgPiB2YXJuaXNoOwor5omY5YWS5omAID4gbnVyc2VyeTsKK+iJt+e0heiJsiA+IGNyaW1zb247CivnibnoqLHni4AgPiBjaGFydGVyOwor5ouW5puz5qmfID4gdHJhY3RvcjsKK+mgkOiogOWutiA+IHByb3BoZXQ7Civog4zlj5vogIUgPiB0cmFpdG9yOwor5aSn5L2/6aSoID4gZW1iYXNzeTsKK+Wkp+iNieWOnyA+IHByYWlyaWU7CivniannkIblrbggPiBwaHlzaWNzOwor5LiN6IG95ZG9ID4gZGlzb2JleTsKK+e0oummrOijoSA+IHNvbWFsaWE7Civlu6Pmkq3ntrIgPiBuZXR3b3JrOwor5be05qC86YGUID4gYmFnaGRhZDsKK+mKgOihjOalrSA+IGJhbmtpbmc7CivmiYvmjqjou4ogPiB0cm9sbGV5Owor5Yue5YuV6ICFID4gbGFib3JlcjsKK+e+jua0suixuSA+IHBhbnRoZXI7CivoirHltJfnn7MgPiBncmFuaXRlOwor5Zyo5YW25LitID4gdGhlcmVpbjsKK+S4jeWQiOazlSA+IGlsbGVnYWw7CivmorXluJ3lsqEgPiB2YXRpY2FuOwor5ZCM576p5a2XID4gc3lub255bTsKK+aEm+Wci+iAhSA+IHBhdHJpb3Q7CivlpbPkuLvkurogPiBob3N0ZXNzOwor55m95qa055+zID4gbGV1Y2l0ZTsKK+S9oOiHquW3sSA+IHRoeXNlbGY7Civoh6rnlLHmtL4gPiBsaWJlcmFsOwor6J6i54Gr6J+yID4gZmlyZWZseTsKK+eZvuWIhuS5iyA+IHBlcmNlbnQ7CivprIbnt4rluLYgPiBlbGFzdGljOwor5a+E5a6/55SfID4gYm9hcmRlcjsKK+WPl+atoei/jiA+IHBvcHVsYXI7Civpo5vmqZ/loLQgPiBhaXJwb3J0Owor6KiI5pW45ZmoID4gY291bnRlcjsKK+Wvpumam+S4iiA+IGluXC1mYWN0Owor5Y+N5oeJ5aCGID4gcmVhY3RvcjsKK+eVsOaVmeW+kiA+IGhlYXRoZW47CivlpJbpgqbkurogPiBnZW50aWxlOwor56e75rCR6ICFID4gbWlncmFudDsKK+S4jeWQieWIqSA+IG9taW5vdXM7CivlibXpgKDogIUgPiBjcmVhdG9yOwor54aU56Sm54iQID4gZnVybmFjZTsKK+Wls+iLsembhCA+IGhlcm9pbmU7CivlhafnvoXnlaIgPiBuYWlyb2JpOwor5Y+b6YCG6ICFID4gdHJhaXRvcjsKK+S9v+mrmOiytCA+IGRpZ25pZnk7CivlnLDos6rlrbggPiBnZW9sb2d5Owor6Zec6Y216KmeID4ga2V5d29yZDsKK+W3tOadvueuoSA+IGJhc3Nvb247CivluIPpmobov6ogPiBidXJ1bmRpOwor5YWF6Zu75ZmoID4gY2hhcmdlcjsKK+iSmeWkp+aLvyA+IG1vbnRhbmE7Civngq3nlr3nl4UgPiBhbnRocmF4Owor5Y+y5a+G54m5ID4gc2NobWl0dDsKK+WvjOWjq+mAmiA+IGZ1aml0c3U7Civng7noqr/ooZMgPiBjb29rZXJ5Owor5Y2w5Yi36ICFID4gcHJpbnRlcjsKK+a3t+WQiOeJqSA+IG1peHR1cmU7CivpmL/lhYvlgKsgPiBhY2hlcm9uOwor54Sh56We6KuWID4gYXRoZWlzbTsKK+S4jeWLleaQliA+IHVubW92ZWQ7CivpmrHol4/omZUgPiBzaGVsdGVyOwor5oq85rKZ6b6NID4gYWJzYWxvbTsKK+WCrOecoOabsiA+IGx1bGxhYnk7CivniZvpoK3niqwgPiBidWxsZG9nOwor5L2/6a2U5rOVID4gY29uanVyZTsKK+WQueWPo+WTqCA+IHdoaXN0bGU7CivlronkuYPov5EgPiBhbmFsZ2luOwor6JuL55m96LOqID4gcHJvdGVpbjsKK+iKneWKoOWTpSA+IGNoaWNhZ287CivlhavluLbprZogPiBvY3RvcHVzOwor5rSX6KGj5bqXID4gbGF1bmRyeTsKK+S4jeW+l+WLgSA+IGF3a3dhcmQ7CivljYrnk7bphosgPiBkYWJibGVyOwor6ZW36aC46bm/ID4gZ2lyYWZmZTsKK+Wls+mrmOmfsyA+IHNvcHJhbm87Civmr5TliKnmmYIgPiBiZWxnaXVtOwor5LiN6Kq/5ZKMID4gZGlzY29yZDsKK+aciemZsOW9sSA+IHNoYWRvd3k7CivmjIfpl5znr4AgPiBrbnVja2xlOwor5bmz5bi45pelID4gd2Vla2RheTsKK+WEsuiXj+WupCA+IHN0b3JhZ2U7CivljIjniZnliKkgPiBodW5nYXJ5Owor5aKT6KqM6YqYID4gZXBpdGFwaDsKK+S4gOacg+WFkiA+IGFcLXdoaWxlOwor5LiN6YGT5b63ID4gaW1tb3JhbDsKK+eDj+WFi+iYrSA+IHVrcmFpbmU7CivlnKjlrqTlhacgPiBpbmRvb3JzOwor5LiN6Zui5YWSID4gbm90XC1iYWQ7Civnmb3om4vnmb0gPiBhbGJ1bWluOwor5Li75bit6Ie6ID4gcm9zdHJ1bTsKK+mhnuWbuumGhyA+IHN0ZXJvaWQ7CivoqZXorbDmnIMgPiBjb3VuY2lsOwor5pyJ5biM5pybID4gaG9wZWZ1bDsKK+WCt+WvkueXhyA+IHR5cGhvaWQ7CivliLDpgqPoo6EgPiB0aGl0aGVyOwor6aSK6ICB6YeRID4gcGVuc2lvbjsKK+edoeecoOiAhSA+IHNsZWVwZXI7CivllpjlkIHlkIEgPiB0b1wtYmxvdzsKK+Wwj+WGiuWtkCA+IGJvb2tsZXQ7CivmnKrmraboo50gPiB1bmFybWVkOwor5bi257SF6ImyID4gcmVkZGlzaDsKK+WQiOWkpeS6uiA+IHBhcnRuZXI7CivmnInluavliqkgPiBoZWxwZnVsOwor6Zi/5ouJ5LyvID4gYXJhYmlhbjsKK+mYv+aLieS4gSA+IGFsYWRkaW47CivkuI3oprrlr58gPiB1bmF3YXJlOwor55SY6JeN6I+cID4gY2FiYmFnZTsKK+Wls+S/rumBkyA+IGNvbnZlbnQ7Civnmbznj77niakgPiBmaW5kaW5nOwor5Zyo5LiL5pa5ID4gYmVuZWF0aDsKK+iSuOaxveapnyA+IHN0ZWFtZXI7CivlsI/ngJHluIMgPiBjYXNjYWRlOwor56ys5Y2B5LqMID4gdHdlbGZ0aDsKK+W3tOS4jeW+lyA+IGFueGlvdXM7CivmnKrmsbrlrpogPiBwZW5kaW5nOwor5peF6YGK6ICFID4gdG91cmlzdDsKK+WPl+iol+S6uiA+IHRydXN0ZWU7CivopovorYnkurogPiB3aXRuZXNzOwor55+z5Y2X5bGsID4gaGVhdGhlcjsKK+WcluabuOmkqCA+IGxpYnJhcnk7CivoloTng6TppIUgPiBwYW5jYWtlOwor5q+S6I2J5ZCNID4gaGVtbG9jazsKK+WcsOW5s+e3miA+IGhvcml6b247Civlpbnoh6rlt7EgPiBoZXJzZWxmOwor5L2/5a2k56uLID4gaXNvbGF0ZTsKK+efruWjr+e0oCA+IGN5Y29jZWw7CivlkJHkvZXomZUgPiB3aGl0aGVyOwor57GD5p2/55CDID4gcmVib3VuZDsKK+iBveW+l+imiyA+IGF1ZGlibGU7CivlgZrnprHlkYogPiB0b1wtcHJheTsKK+eZvuaFleWkpyA+IGJlcm11ZGE7CivmnInmop3ntIsgPiBzdHJpcGVkOwor5a6J5oGv5pelID4gc2FiYmF0aDsKK+S4jeWAkue/gSA+IHR1bWJsZXI7Civoo4HntJnmqZ8gPiB0cmltbWVyOwor5LiA6YOo5YiGID4gcG9ydGlvbjsKK+aHt+aVteaEjyA+IGhvc3RpbGU7CivlibXnq4vogIUgPiBmb3VuZGVyOwor57at5LuW5ZG9ID4gdml0YW1pbjsKK+ijnee9rueJqSA+IGZpeHR1cmU7Civlj4PorbDlk6EgPiBzZW5hdG9yOwor5Y2w6KGo5qmfID4gcHJpbnRlcjsKK+aYn+acn+S6jCA+IHR1ZXNkYXk7Civpn7PmqILmnIMgPiBjb25jZXJ0Owor6auU6IKy5aC0ID4gc3RhZGl1bTsKK+aEm+eIvuiYrSA+IGlyZWxhbmQ7CivpgIPkuqHogIUgPiBydW5hd2F5Owor5ZKv5ZKv56yRID4gY2h1Y2tsZTsKK+eUn+eJqeWtuCA+IGJpb2xvZ3k7CivmiLDprKXogIUgPiBmaWdodGVyOwor5L2/5oak5oWoID4gb3V0cmFnZTsKK+WxheS9j+aWvCA+IGluaGFiaXQ7CivmiZPljbDmqZ8gPiBwcmludGVyOwor5L2/5oak5oCSID4gcHJvdm9rZTsKK+W9jOizveS6niA+IG1lc3NpYWg7CivmspLnlJrpurwgPiBub3RoaW5nOwor54WZ54Gw57y4ID4gYXNodHJheTsKK+a3see0heiJsiA+IHNjYXJsZXQ7CivkuI3lnKjkuoYgPiBiZVwtZGVhZDsKK+e0oee5lOWTgSA+IHRleHRpbGU7Civku6PlkI3oqZ4gPiBwcm9ub3VuOwor5LiN5r+f5LqLID4gbm9cLWdvb2Q7Civplovmi5PogIUgPiBwaW9uZWVyOwor5LiN5Lq66YGTID4gaW5odW1hbjsKK+iiq+aykuaUtiA+IGZvcmZlaXQ7Civot6/opb/lvJcgPiBsdWNpZmVyOwor5YyW5a245a62ID4gY2hlbWlzdDsKK+iok+e3tOiAhSA+IHRyYWluZXI7CivmuIXmvZTlmaggPiBjbGVhbmVyOwor5oSb5b63546yID4gYWRlbGluZTsKK+i/q+WIh+aApyA+IHVyZ2VuY3k7CivlpbPmvJTlk6EgPiBhY3RyZXNzOwor5qGM5LiK5Z6LID4gZGVza3RvcDsKK+W3tOavlOWAqyA+IGJhYnlsb247CivlrLDlhZLmnJ8gPiBpbmZhbmN5Owor55m+6JGJ56qXID4gc2h1dHRlcjsKK+mBv+W9iOWdkSA+IGZveGhvbGU7CivmnInmiY3lubkgPiBjYXBhYmxlOwor6ISr6KGj5pyNID4gdW5kcmVzczsKK+ingOWFieWuoiA+IHRvdXJpc3Q7CivpgYvli5XlrrYgPiBhdGhsZXRlOwor5qWt6aSY6ICFID4gYW1hdGV1cjsKK+mHkeWtl+WhlCA+IHB5cmFtaWQ7Civku5boh6rlt7EgPiBoaW1zZWxmOwor5a6a5bGF6ICFID4gc2V0dGxlcjsKK+S6jOWNgeWkmiA+IG92ZXJcLTIwOwor5pS255WZ5omAID4gYmFycmFjazsKK+avm+avm+mbqCA+IGRyaXp6bGU7CivpgYvli5Xlk6EgPiBhdGhsZXRlOwor54eV6bql57KlID4gb2F0bWVhbDsKK+aomeiqnueJjCA+IHBsYWNhcmQ7Civoh6rooYzou4ogPiBiaWN5Y2xlOwor5rCR5pW46KiYID4gbnVtYmVyczsKK+Wwj+aWkem7niA+IHNwZWNrbGU7Civkvb/ljq3nhakgPiBkaXNndXN0Owor6Im+6L+q55SfID4gYWRkaXNvbjsKK+Wjq+W4q+iomCA+IGp1ZGdlczsKK+itt+mAgeiAhSA+IGVzY29ydDsKK+eZvOmbu+apnyA+IGR5bmFtbzsKK+ephuaWr+aelyA+IG11c2xpbTsKK+mWi+i7iuS6uiA+IGRyaXZlcjsKK+WYtuWVnuiBsiA+IGhvYXJzZTsKK+aLlOWwluWFkiA+IHRpcHRvcDsKK+euoeeQhuS6uiA+IGtlZXBlcjsKK+m7g+m8oOeLvCA+IHdlYXNlbDsKK+acieS6uuaDhSA+IGh1bWFuZTsKK+ilv+e0heafvyA+IHRvbWF0bzsKK+mbu+W9semZoiA+IGNpbmVtYTsKK+Wwj+WmlueyviA+IGdvYmxpbjsKK+mHkee1sumbgCA+IGNhbmFyeTsKK+WLleWQjeipniA+IGdlcnVuZDsKK+ertuizveiAhSA+IHBsYXllcjsKK+e3qOW5tOWPsiA+IGFubmFsczsKK+e8uuawp+eXhyA+IGFub3hpYTsKK+Wkp+WcsOa0niA+IGNhdmVybjsKK+a7kee/lOapnyA+IGdsaWRlcjsKK+aumOmkmOeJqSA+IGxpdHRlcjsKK+acieiyrOS7uyA+IGxpYWJsZTsKK+WtqeWtkOawoyA+IGJveWlzaDsKK+Wwj+eJneeJmyA+IGhlaWZlcjsKK+i3keatpeiAhSA+IHJ1bm5lcjsKK+WQkOe2rOmbniA+IHR1cmtleTsKK+i3qOaOpeWZqCA+IGp1bXBlcjsKK+iyoOaTlOiAhSA+IGJlYXJlcjsKK+WQiOWUseWcmCA+IGNob3J1czsKK+mgmOWwjuiAhSA+IGxlYWRlcjsKK+absuajjeeQgyA+IGhvY2tleTsKK+i3r+eUseWZqCA+IHJvdXRlcjsKK+eItuavjeimqiA+IHBhcmVudDsKK+WMluWmneWTgSA+IG1ha2V1cDsKK+aApeS/g+iBsiA+IHBhdHRlcjsKK+S9v+ehrOWMliA+IGhhcmRlbjsKK+S6pOaYk+iAhSA+IGRlYWxlcjsKK+aXpeWFp+eTpiA+IGdlbmV2YTsKK+mKgOihjOWutiA+IGJhbmtlcjsKK+akjeeJqeWtuCA+IGJvdGFueTsKK+e0gOW/teeNjiA+IHRyb3BoeTsKK+WBvemAoOeahCA+IGZvcmdlZDsKK+esrOS6jOasoSA+IHNlY29uZDsKK+m1neWNteefsyA+IHBlYmJsZTsKK+acieawo+a0viA+IGxvcmRseTsKK+WCteWLmeS6uiA+IGRlYnRvcjsKK+eVq+eciemzpSA+IHRocnVzaDsKK+Wwj+ein+WtkCA+IHNhdWNlcjsKK+iInui5iOWutiA+IGRhbmNlcjsKK+WPruWZueiBsiA+IHRpbmtsZTsKK+S9v+a/lemAjyA+IGRyZW5jaDsKK+aJueipleWutiA+IGNyaXRpYzsKK+WcqOa3seiZlSA+IGRlZXBseTsKK+WLneWIqeiAhSA+IHZpY3RvcjsKK+i5uui5uuadvyA+IHNlZXNhdzsKK+ejqOWdiuS4uyA+IG1pbGxlcjsKK+aciemXnOmAoyA+IHJlbGF0ZTsKK+WkmuaoueacqCA+IHdvb2RlZDsKK+WQseWQseiBsiA+IHNxdWVhazsKK+acquWujOaIkCA+IHVuZG9uZTsKK+mtlOizveWFiyA+IG1vc2FpYzsKK+W8t+acieWKmyA+IHN0cm9uZzsKK+eDj+W5sumBlCA+IHVnYW5kYTsKK+S4jeeiuuWvpiA+IHVudHJ1ZTsKK+i+puWFrOWupCA+IG9mZmljZTsKK+e+hemmrOabuCA+IHJvbWFuczsKK+acjeWLmeWToSA+IHdhaXRlcjsKK+icmOibm+e2siA+IGNvYndlYjsKK+mYv+exs+W3tCA+IGFtb2ViYTsKK+S/ruijnOWMoCA+IHRpbmtlcjsKK+Wkp+eQhuefsyA+IG1hcmJsZTsKK+aMgeacieS6uiA+IGhvbGRlcjsKK+aSkuWTiOaLiSA+IHNhaGFyYTsKK+Wkp+mQruWIgCA+IHNjeXRoZTsKK+a/vuazouWZqCA+IGZpbHRlcjsKK+Wom+aoguWgtCA+IHJlc29ydDsKK+S9v+mrmOiIiCA+IHBsZWFzZTsKK+acgOW5tOmVtyA+IGVsZGVzdDsKK+mGg+m7g+eTnCA+IHBpY2tsZTsKK+aUtuWJsuiAhSA+IHJlYXBlcjsKK+adnOm1kemzpSA+IGN1Y2tvbzsKK+aJk+WZtOWajyA+IHNuZWV6ZTsKK+ieuuaXi+mJlyA+IHdyZW5jaDsKK+WPg+itsOmZoiA+IHNlbmF0ZTsKK+mgmOWwjuS6uiA+IGxlYWRlcjsKK+iuiuW9ouifsiA+IGFtb2ViYTsKK+S7u+S9leS6uiA+IGFueW9uZTsKK+aciemBk+W+tyA+IGNoYXN0ZTsKK+iXneihk+WutiA+IGFydGlzdDsKK+mgguaokeafsSA+IHBpbGxhcjsKK+S9v+iGqOiEuSA+IGRpbGF0ZTsKK+Wwj+aPkOeQtCA+IGZpZGRsZTsKK+aHtua0i+a0iyA+IGxhemlseTsKK+mmrOaIsuWcmCA+IGNpcmN1czsKK+mrmOiFs+adryA+IGdvYmxldDsKK+mmrOmItOiWryA+IHBvdGF0bzsKK+S9v+i9ieWQkSA+IGRpdmVydDsKK+aykuacieS6uiA+IG5vYm9keTsKK+WNmueJqemkqCA+IG11c2V1bTsKK+S9v+WbsOaTviA+IGhhcmFzczsKK+emruaLnOWggiA+IGNoYXBlbDsKK+S4jemAj+aYjiA+IG9wYXF1ZTsKK+Wug+acrOi6qyA+IGl0c2VsZjsKK+aJgeahg+mrlCA+IHRvbnNpbDsKK+aOkuawtOa6nSA+IGd1dHRlcjsKK+ato+aWueW9oiA+IHNxdWFyZTsKK+WPr+S/oeS7uyA+IHRydXN0eTsKK+aWh+WtuOWutiA+IHdyaXRlcjsKK+enu+WLleW8jyA+IG1vYmlsZTsKK+WIsOatpOiZlSA+IGhpdGhlcjsKK+auluawkeWcsCA+IGNvbG9ueTsKK+WiqOilv+WTpSA+IG1leGljbzsKK+a4heecn+WvuiA+IG1vc3F1ZTsKK+i+puS6i+iZlSA+IG9mZmljZTsKK+WuieWTpeaLiSA+IGFuZ29sYTsKK+S7peiJsuWIlyA+IGlzcmFlbDsKK+mHmOabuOmHnSA+IHN0YXBsZTsKK+eFp+ebuOapnyA+IGNhbWVyYTsKK+e0oee5lOiAhSA+IHdlYXZlcjsKK+aWr+aLieWkqyA+IHNsYXZpYzsKK+S/hOe+heaWryA+IHJ1c3NpYTsKK+ijgee4q+W4qyA+IHRhaWxvcjsKK+W8k+eureaJiyA+IGFyY2hlcjsKK+WhnueIvueJuSA+IGNlbHRpYzsKK+Wls+iIjeeboyA+IG1hdHJvbjsKK+aJk+Wtl+WToSA+IHR5cGlzdDsKK+aYn+acn+aXpSA+IHN1bmRheTsKK+iRoeiQhOS5viA+IHJhaXNpbjsKK+aIkeiHquW3sSA+IG15c2VsZjsKK+Wkp+atpei1sCA+IHN0cmlkZTsKK+S4jeWFrOW5syA+IHVuZmFpcjsKK+iKreiVvuiIniA+IGJhbGxldDsKK+ipleirluWutiA+IGNyaXRpYzsKK+S8r+WIqeiMsiA+IGJlbGl6ZTsKK+ieuuaXi+W9oiA+IHNwaXJhbDsKK+avlOi8g+WwkSA+IGxlc3NlcjsKK+WcqOatpOiZlSA+IGhlcmVpbjsKK+iiq+Wus+S6uiA+IHZpY3RpbTsKK+mYv+azoue+hSA+IGFwb2xsbzsKK+S9v+iAs+iBviA+IGRlYWZlbjsKK+e+qeizo+acgyA+IGJhemFhcjsKK+aYn+acn+WkqSA+IHN1bmRheTsKK+W3peS9nOWupCA+IHN0dWRpbzsKK+mWgOWklua8oiA+IGxheW1hbjsKK+WcqOmZhOi/kSA+IG5lYXJieTsKK+Whl+ayueaWvCA+IGFub2ludDsKK+mbnOiyqOWVhiA+IGdyb2NlcjsKK+e2reWQvueIviA+IHVpZ2h1cjsKK+iLsembhOW8jyA+IGhlcm9pYzsKK+eQhumrruW4qyA+IGJhcmJlcjsKK+i1t+azoeayqyA+IHNlZXRoZTsKK+aYn+acn+S6lCA+IGZyaWRheTsKK+aYn+acn+S4gCA+IG1vbmRheTsKK+W3tOeIvuW5siA+IGJhbGthbjsKK+agvOagvOeskSA+IGdpZ2dsZTsKK+Wtn+WKoOaLiSA+IGJlbmdhbDsKK+Wcn+iAs+WFtiA+IHR1cmtleTsKK+eZveiYreWcsCA+IGJyYW5keTsKK+aEm+W+t+iPryA+IGVkd2FyZDsKK+WNiuS4reiFsCA+IG1pZGRsZTsKK+eZveS5vuWFkiA+IHNwaXJpdDsKK+WFuOeNhOmVtyA+IHdhcmRlbjsKK+eci+S4jeimiyA+IHVuc2VlbjsKK+S9v+S9nOWYlCA+IHNpY2tlbjsKK+aBkOawtOeXhSA+IHJhYmllczsKK+WKoO+5jeaWvCA+IGltcG9zZTsKK+apoeearuaQvSA+IGVyYXNlcjsKK+azouWjq+mgkyA+IGJvc3RvbjsKK+e2k+e0gOS6uiA+IGJyb2tlcjsKK+e0heiYv+iUlCA+IGNhcnJvdDsKK+aChOaChOWcsCA+IGdlbnRseTsKK+mBv+mbo+aJgCA+IHJlZnVnZTsKK+eZvem6teWFkiA+IGhlcm9pbjsKK+mjvOmkiuiAhSA+IGZlZWRlcjsKK+W3tOaWr+WFiyA+IGJhc3F1ZTsKK+iOq+aWr+enkSA+IG1vc2NvdzsKK+aciOahguaouSA+IGxhdXJlbDsKK+mWgOiouuWupCA+IGNsaW5pYzsKK+W+ruiWhOeahCA+IG1lYWdyZTsKK+Wwj+a3mOawoyA+IHJhc2NhbDsKK+aUneW9seapnyA+IGNhbWVyYTsKK+i1t+iotOiAhSA+IHN1aXRvcjsKK+W3tOaLv+mmrCA+IHBhbmFtYTsKK+aNlemvqOiIuSA+IHdoYWxlcjsKK+a8lOiqquiAhSA+IG9yYXRvcjsKK+aTuuaoo+WtkCA+IGRvXC1zdGg7Civlub7kuY7kuI0gPiBoYXJkbHk7CivliqDmi7/lpKcgPiBjYW5hZGE7Civphqvli5nmiYAgPiBjbGluaWM7CivljYHlrZfmnrYgPiBjcm9zczsKK+S7o+eQhuS6uiA+IGFnZW50Owor6amF5YuV5ZmoID4gZHJpdmU7CivnjajmnKjoiJ8gPiBjYW5vZTsKK+aineadv+eusSA+IGNyYXRlOwor6Zmz5YiX6Ie6ID4gc3RhbGw7CivorJvop6Plk6EgPiBndWlkZTsKK+azpeawtOWMoCA+IG1hc29uOwor5qSN54mp576kID4gZmxvcmE7CivlnKjpq5jomZUgPiBhbG9mdDsKK+aSkOerv+i3syA+IHZhdWx0Owor6aCt6JOL6aqoID4gc2t1bGw7CivmlZjliKnkup4gPiBzeXJpYTsKK+e0q+S4gemmmSA+IGxpbGFjOwor5LiN5paw6a6uID4gc3RhbGU7CivlpKfovrLloLQgPiByYW5jaDsKK+WkmuawtOWIhiA+IGp1aWN5Owor5ZG85Y+r5ZmoID4gcGFnZXI7CivkuIvmsLTpgZMgPiBzZXdlcjsKK+W+nuS+huS4jSA+IG5ldmVyOwor5LqM5qW1566hID4gZGlvZGU7Civnq7bmioDloLQgPiBhcmVuYTsKK+m6pemYv+WvhiA+IG1pYW1pOwor5LyR5oGv5a6kID4gbG9iYnk7CivnkIPni4DniakgPiBnbG9iZTsKK+WwjeaVteiAhSA+IHJpdmFsOwor5Yas6Z2S5qi5ID4gaG9sbHk7CivmnpzlrZDlh40gPiBqZWxseTsKK+Wkp+WcsOWcliA+IGF0bGFzOwor5oiQ5bm06ICFID4gYWR1bHQ7Civpm4XlkITmm7ggPiBqYW1lczsKK+iLseS7o+eIviA+IGludGVsOwor5q+b6Iy46Iy4ID4gaGFpcnk7Civkvb/nhanmg7EgPiB3b3JyeTsKK+WwvOaXpeeIviA+IG5pZ2VyOwor5pS26Z+z5qmfID4gcmFkaW87CivnrKzkuInmrKEgPiB0aGlyZDsKK+aLm+W+heWToSA+IHVzaGVyOwor56ys5LiA5qyhID4gZmlyc3Q7CivmhI/lpKfliKkgPiBpdGFseTsKK+awtOW5s+mdoiA+IHBsYW5lOwor5Lqe6bq75biDID4gbGluZW47CivmupzlhrDpnosgPiBza2F0ZTsKK+S9nOWTvOiBsiA+IHNub3J0Owor6KO96YCg6ICFID4gbWFrZXI7CivnhKHnlJ/lkb0gPiBpbmVydDsKK+mFqui+sualrSA+IGRhaXJ5Owor5rC06JK45rCjID4gdmFwb3I7Civlg4/niYfnsL8gPiBhbGJ1bTsKK+i0iOiIh+iAhSA+IGdpdmVyOwor5p2/5qKd566xID4gY3JhdGU7CivlpKnol43oibIgPiBhenVyZTsKK+mjm+ihjOWToSA+IHBpbG90Owor5o2Q6LSI6ICFID4gZG9ub3I7Civopb/nj63niZkgPiBzcGFpbjsKK+aPkOWkmuabuCA+IHRpdHVzOwor55Sf6bq157OwID4gZG91Z2g7CivpmL/mi4nmkakgPiBhbGFtbzsKK+eUt+mrmOmfsyA+IHRlbm9yOwor5LiA6bue5YWSID4gYVwtYml0Owor6Iux54m554i+ID4gaW50ZWw7CivlsI/mqLnmnpcgPiBncm92ZTsKK+W4g+iQiueIviA+IGJsYWlyOwor5pKl54Gr5qONID4gcG9rZXI7CivlnKjml4HpgoogPiBhc2lkZTsKK+eHn+alreWToSA+IGNsZXJrOwor5L2/5Zu65a6aID4gcml2ZXQ7CivorabloLHlmaggPiBzaXJlbjsKK+S4ieinkua0siA+IGRlbHRhOwor5aiB54i+5aOrID4gd2FsZXM7Civogq/lsLzkup4gPiBrZW55YTsKK+m6teWMheeariA+IGNydXN0Owor55+z5Y2X5qi5ID4gaGVhdGg7CivonrrntbLph5ggPiBzY3JldzsKK+ilv+a0i+ajiyA+IGNoZXNzOwor5ZSx6Kmp54+tID4gY2hvaXI7Civopb/mtIvmnYkgPiBjZWRhcjsKK+S9v+a6uuatuyA+IGRyb3duOwor5YaN5LiA5qyhID4gYWdhaW47CivlnLDmlrnmgKcgPiBsb2NhbDsKK+eZvOeJoumotyA+IHdoaW5lOwor6ZW36aC455O2ID4gZmxhc2s7CivnmrrnnInpoK0gPiBzY293bDsKK+mnlemnm+WToSA+IHBpbG90Owor5L6G56aP5qeNID4gcmlmbGU7CivlkLXprKfogbIgPiBub2lzZTsKK+allOW9oueJqSA+IHdlZGdlOwor5rWB5rWq6ICFID4gcm92ZXI7Civmr5vll7blmLAgPiBzZXJnZTsKK+eBjOacqOWPoiA+IHNjcnViOwor6LW36YeN5qmfID4gY3JhbmU7Civnoo7luIPmop0gPiBzaHJlZDsKK+WFp+WcqOeahCA+IGlubmVyOwor6ayx6YeR6aaZID4gdHVsaXA7Civpm6rojITnhZkgPiBjaWdhcjsKK+eDpOm6teWMhSA+IHRvYXN0Owor5ZC556yb6ICFID4gcGlwZXI7CivkuIDlt7TmjowgPiBzcGFuazsKK+e1seayu+iAhSA+IHJ1bGVyOwor5ZG85Y+r6IGyID4gd2hvb3A7Civluqflj7PpipggPiBtb3R0bzsKK+S4ieeonOmPoSA+IHByaXNtOwor55+u5aKp5aKpID4gcHVkZ3k7CivpmL/niL7ms5UgPiBhbHBoYTsKK+avlOS+i+WwuiA+IHNjYWxlOwor5Y+N5oqX6ICFID4gcmViZWw7Civlk6rkuIDlgIsgPiB3aGljaDsKK+WQiOiCoee3miA+IHR3aW5lOwor6YKB6Zi/5a+GID4gbWlhbWk7CivovL/oq5bnlYwgPiBtZWRpYTsKK+eRnuWFuOS6uiA+IHN3ZWRlOwor5L2/576e5oSnID4gYWJhc2g7CivnlLflrZDmsKMgPiBtYW5seTsKK+S9v+Wom+aogiA+IGFtdXNlOwor5aqz5amm5YWSID4gd2lmZTsKK+S8iuaLieWFiyA+IGlyYXE7CivmnInog73lipsgPiBhYmxlOwor5Z+D57Gz54i+ID4gZW1pcjsKK+WSluWVoemkqCA+IGNhZmU7CivkuIDlrpropoEgPiBtdXN0Owor6YCa6KGM56iFID4gdG9sbDsKK+eOieicgOm7jSA+IGNvcm47CivlsI/mr5von7IgPiBzbHVnOwor5pyA5Li76KaBID4gbWFpbjsKK+eMtuS7luW3niA+IHV0YWg7Civkvb/lj5flgrcgPiBodXJ0Owor56uL5pa56auUID4gY3ViZTsKK+eZvemqqOmggiA+IGNvb3Q7Civorbfln47msrMgPiBtb2F0Owor5rSL5aiD5aiDID4gZG9sbDsKK+aEn+imuuWIsCA+IGZlZWw7CivkuIvkuIDmrKEgPiBuZXh0Owor5re66buD6ImyID4gYnVmZjsKK+Wkp+iii+WtkCA+IHNhY2s7CivlnIjni4DniakgPiBob29wOwor5LiN5Y+K5qC8ID4gZmFpbDsKK+WHuuenn+i7iiA+IHRheGk7Civkv53pmqrntbIgPiBmdXNlOwor5YWI6KaL6ICFID4gc2VlcjsKK+aJi+aLiei7iiA+IGNhcnQ7CivniLXlo6voiJ4gPiBqYXp6Owor5ZKW5ZWh5bqXID4gY2FmZTsKK+iJvua7i+eXhSA+IGFpZHM7Civlhavlk6XlhZIgPiBteW5hOwor6Zu754eI5rOhID4gYnVsYjsKK+eMtuWkp+abuCA+IGp1ZGU7CivlpKfpoK3ph5ggPiB0YWNrOwor5oSb5ruL55eFID4gYWlkczsKK+i1pOijuOijuCA+IGJhcmU7CivlnJPlsYvpoIIgPiBkb21lOwor6ZuZ6IOe6IOOID4gdHdpbjsKK+S4gOWhium6tSA+IGxvYWY7Civkvb/nlKjogIUgPiB1c2VyOwor5aSW5bCP6IW/ID4gc2hpbjsKK+ibi+eZveefsyA+IG9wYWw7CivkuIDliIbpjKIgPiBjZW50Owor5ZyT6YyQ6auUID4gY29uZTsKK+eZvuWQiOiKsSA+IGxpbHk7CivoqIjnqIvou4ogPiB0YXhpOwor6JyC6Jyc6YWSID4gbWVhZDsKK+mdnuW4uOWkmiA+IG11Y2g7CivlnKjkuYvkuIogPiBvdmVyOwor55yo55y8552bID4gd2luazsKK+iytOWppuS6uiA+IGRhbWU7CivntIXlr7bnn7MgPiBydWJ5Owor6Luf5pyo5aGeID4gY29yazsKK+eyiee0heiJsiA+IHBpbms7CivlkbzlkbzogbIgPiB3aGlyOwor5b+r5q2l6LeRID4gdHJvdDsKK+iqquisiuiAhSA+IGxpYXI7Civpmarlr6nlnJggPiBqdXJ5Owor57m85LmY5Lq6ID4gaGVpcjsKK+WFieemv+emvyA+IGJhbGQ7CivmnpzppKHppIUgPiB0YXJ0Owor5Zi25Zi26IGyID4gaGlzczsKK+aTpum7keWFkiA+IGR1c2s7CivmsLTmnpzphZIgPiB3aW5lOwor55mp5ZOI6J+GID4gdG9hZDsKK+e5lOW4g+apnyA+IGxvb207CivmqaLlnJPlvaIgPiBvdmFsOwor56m655m96bueID4gZ2FwOwor54K655Sa6bq8ID4gd2h5Owor55S35a2p5a2QID4gYm95Owor5rW45LiA5LiLID4gZGlwOwor5Zyo55y85YmNID4gbm93Owor54Sh6Iqx5p6cID4gZmlnOwor55S35a2p5YWSID4gYm95Owor6LKT5Y+r6IGyID4gbWV3Owor57Sw6aC455O2ID4ganVnOwor5bi45pil6JekID4gaXZ5Owor54K65LuA6bq8ID4gd2h5Owor54Sh5bC+54y/ID4gYXBlOwor5bCP57K+6Z2IID4gZWxmOwor6ICB5aSp54i6ID4gZ29kOwor6Zu26bue5YWtID4gMFwuNjsKK+WiqOawtOWFkiA+IGluazsKK+WFrem7nuWFrSA+IDZcLjY7CivnlKjmsrnngrggPiBmcnk7Civpq5TogrLppKggPiBneW07CivkuIPpu57kupQgPiA3XC41Owor5LiD6bue5LqMID4gN1wuMjsKK+WLleeJqeWckiA+IHpvbzsKK+eMtuWkquS6uiA+IGpldzsKK+m7g+ikkOiJsiA+IHRhbjsKK+ethuahv+WtkCA+IHBlbjsKK+S5neS4g+W5tCA+ICcnOTc7CivoqIjkuZjou4ogPiBjYWI7CivlsI/kvJnlrZAgPiBsYWQ7CivospPpoK3pt7kgPiBvd2w7CivlkJHkuIrlnLAgPiB1cDsKK+iuiuaWhyA+IGFcLXBvcHVsYXJcLWZvcm1cLW9mXC1uYXJyYXRpdmVcLWxpdGVyYXR1cmVcLWZsb3VyaXNoaW5nXC1pblwtdGhlXC10YW5nXC1keW5hc3R5XC1cKDYxOFwtOTA3XClcLXdpdGhcLWFsdGVybmF0ZVwtcHJvc2VcLWFuZFwtcmh5bWVkXC1wYXJ0c1wtZm9yXC1yZWNpdGF0aW9uXC1hbmRcLXNpbmdpbmdcLVwob2Z0ZW5cLW9uXC1idWRkaGlzdGljXC10aGVtZXNcKTsKK+mCiuW5oyA+IGJvcmRlclwtcmVnaW9uXC1jdXJyZW5jeVwtXChjb25zaXN0aW5nXC1vZlwtdGhlXC1jdXJyZW5jeVwtbm90ZXNcLWlzc3VlZFwtYnlcLXRoZVwtYm9yZGVyXC1yZWdpb25cLWdvdmVybm1lbnRzXC1kdXJpbmdcLXRoZVwtd2FyXC1vZlwtcmVzaXN0YW5jZVwtYWdhaW5zdFwtamFwYW5cLWFuZFwtdGhlXC13YXJcLW9mXC1saWJlcmF0aW9uXCk7CivlkIzmnJ8gPiB0aGVcLWNvcnJlc3BvbmRpbmdcLXRpbWVcLXBlcmlvZFwtXChlZ1wsXC1jb21wYXJlXC1pbmZsYXRpb25cLW5vd1wtd2l0aFwtdGhlXC1yYXRlXC1kdXJpbmdcLXRoZVwtc2FtZVwtbW9udGhcLWxhc3RcLXllYXJcKTsKK+WBj+WBjyA+IFwoaW5kaWNhdGVzXC10aGF0XC1zdGhcLlwtdHVybnNcLW91dFwtanVzdFwtdGhlXC1vcHBvc2l0ZVwtb2ZcLXdoYXRcLW9uZVwtd291bGRcLWV4cGVjdFwtb3JcLXdoYXRcLXdvdWxkXC1iZVwtbm9ybWFsXCk7CivmlaznpZ0gPiB0b1wtcmVzcGVjdGZ1bGx5XC1vZmZlclwtXCh3cml0dGVuXC1hdFwtdGhlXC1lbmRcLW9mXC1sZXR0ZXJcLWZyb21cLXNvbWVvbmVcLW9mXC1sb3dlclwtc3RhdHVzXC10b1wtaGlnaGVyXC1zdGF0dXNcKTsKK+WNnOi+rSA+IG9yYWNsZVwtaW5zY3JpcHRpb25zXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eVwtXCgxNnRoXC0xMXRoXC1jZW50dXJ5XC1iY1wpXC1vblwtdG9ydG9pc2VzaGVsbHNcLW9yXC1hbmltYWxcLWJvbmVzOwor5rSb5b63ID4gXCh3aW5zdG9uXClcLWxvcmRcLVwoZm9ybWVyXC1hc3Npc3RhbnRcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1wtYWZmYWlyc1wpOwor5b235b6oID4gbmFtZVwtb2ZcLWFcLWNvbGxlY3Rpb25cLW9mXC1zaG9ydFwtc3Rvcmllc1wsXC1wYW5nXC1odWFuZ1wsXC1cIndhbmRlcmluZ1wtYWJvdXRcIlwsXC1ieVwtbHUzXC14dW40XC3pra/ov4U7CivpmbPmr4UgPiBjaGVuXC15aVwsXC1mb3JtZXJcLW1heW9yXC1vZlwtc2hhbmdoYWlcLWFuZFwtaGlnaGVzdFwtcmFua2luZ1wtbWlsaXRhcnlcLWNvbW1hbmRlclwtaW5cLWNoaW5hOwor5YyF5belID4gdW5kZXJ0YWtlXC10b1wtcGVyZm9ybVwtd29ya1wtd2l0aGluXC1hXC10aW1lXC1saW1pdFwtYW5kXC1hY2NvcmRpbmdcLXRvXC1zcGVjaWZpY2F0aW9uczsKK+mDqOmmliA+IHJhZGljYWxzXC1ieVwtd2hpY2hcLWNoYXJhY3RlcnNcLWFyZVwtYXJyYW5nZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtZGljdGlvbmFyaWVzOwor6Zy45Li7ID4gYVwtcG93ZXJmdWxcLWNoaWVmXC1vZlwtdGhlXC1wcmluY2VzXC1vZlwtdGhlXC1zcHJpbmdcLWFuZFwtYXV0dW1uXC1wZXJpb2RcLVwoNzcwXC00NzZcLWJjXCk7CivlnKjmlrwgPiBcKHRoZVwtcHJvYmxlbVwtb3JcLWV4cGxhbmF0aW9uXC1vclwtYWR2YW50YWdlXC1ldGNcLlwpXC1saWVzXC1pblwtXCh0aGVcLWZhY3RcLXRoYXRcLlwuXC5cKTsKK+aVmeiokyA+IFwodGVhY2hcLXNvbWVvbmVcLW9yXC1sZWFyblwtYVwpXC1sZXNzb25cLVwoaWVcLFwtb2J0YWluXC13aXNkb21cLWZyb21cLWFuXC1leHBlcmllbmNlXCk7Civpp4HlsrggPiBhXC1sb3dcLXN0b25lXC13YWxsXC1idWlsdFwtYWxvbmdcLXRoZVwtd2F0ZXInJ3NcLWVkZ2VcLXRvXC1wcm90ZWN0XC1hblwtZW1iYW5rbWVudDsKK+ijnOazlSA+IHRyZWF0bWVudFwtaW52b2x2aW5nXC10aGVcLXVzZVwtb2ZcLXRvbmljc1wtdG9cLXJlc3RvcmVcLXRoZVwtcGF0aWVudCcnc1wtaGVhbHRoOwor5LiJ5LiNID4gXCJ0aGVcLXRocmVlXC1ubycnc1wiXC1cKGFuXC1leGFtcGxlXC1vZlwtYW5cLWFiYnJldmlhdGVkXC1zbG9nYW5cLW9yXC1jYXRjaHBocmFzZVwpOwor55m95pyuID4gdGhlXC1yaGl6b21lXC1vZlwtbGFyZ2VcLWhlYWRlZFwtYXRyYWN0eWxvZGVzXC1cKGF0cmFjdHlsb2Rlc1wtbWFjcm9jZXBoYWlhXCk7CivlrqPliKQgPiBwcm9ub3VuY2VcLWFcLVwoanVkaWNpYWxcKVwtc2VudGVuY2VcLVwoYWZ0ZXJcLWFcLXZlcmRpY3RcLWluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor55eF5Y+LID4gYVwtZnJpZW5kXC1tYWRlXC1pblwtaG9zcGl0YWxcLW9yXC1wZW9wbGVcLXdob1wtYmVjb21lXC1mcmllbmRzXC1pblwtaG9zcGl0YWw7CivlsLHmmK8gPiBcKGVtcGhhc2l6ZXNcLXRoYXRcLXNvbWV0aGluZ1wtaXNcLXByZWNpc2VseVwtb3JcLWV4YWN0bHlcLXdoYXRcLWlzXC1zdGF0ZWRcKTsKK+Wkp+emuSA+IGRhXC15dVwsXC1uYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhlcm9cLXdob1wtc3VjY2Vzc2Z1bGx5XC1jb250cm9sbGVkXC1mbG9vZHM7CivooajorYkgPiBpbGxuZXNzXC10aGF0XC1oYXNcLW5vdFwtYXR0YWNrZWRcLXRoZVwtdml0YWxcLW9yZ2Fuc1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivluavplpEgPiBoYW5nXC1vblwtdG9cLWFuZFwtc2VydmVcLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bFwtYnlcLWxpdGVyYXJ5XC1oYWNrXC13b3JrOwor5o+P57SFID4gdG9cLXRyYWNlXC1vdmVyXC1yZWRcLWNoYXJhY3RlcnNcLVwoYXNcLWFcLW1ldGhvZFwtb2ZcLWxlYXJuaW5nXC10b1wtd3JpdGVcKTsKK+aKl+aIsCA+IHdhclwtb2ZcLXJlc2lzdGFuY2VcLFwtZXNwZWNpYWxseVwtdGhlXC13YXJcLWFnYWluc3RcLWphcGFuXC1cKDE5MzdcLTE5NDVcKTsKK+S7iumfsyA+IG1vZGVyblwtXChpXC5lXC5cLW5vdFwtYW5jaWVudFwpXC1wcm9udW5jaWF0aW9uXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor5oOL5oOcID4gdG9cLWZlZWxcLXNvcnJ5XC1mb3JcLWFcLXBlcnNvblwtb3Zlclwtc3RoXC10aGF0XC1zaG91bGRcLWhhdmVcLWhhcHBlbmVkOwor552l552oID4gbG9va1wtYXRcLXNvbWVib2R5XC1kaXNkYWluZnVsbHlcLW91dFwtb2ZcLXRoZVwtY29ybmVyXC1vZlwtb25lJydzXC1leWU7Civog6HpgakgPiBodVwtc2hpXC1cKDE4OTFcLTE5NjJcKVwsXC1vcmlnaW5hbFwtcHJvcG9uZW50XC1vZlwtYmFpMlwtaHVhNFwtd2VuMlwt55m96Kmx5paHOwor6LuN5aeUID4gbWlsaXRhcnlcLWNvbW1pc3Npb25cLW9mXC10aGVcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+eHiOevgCA+IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLVwoMTV0aFwtb2ZcLWZpcnN0XC1tb250aFwtb2ZcLWx1bmFyXC1jYWxlbmRhclwpOwor5YyX5rSLID4gdGhlXC1xaW5nXC1keW5hc3R5XC1uYW1lXC1mb3JcLXRoZVwtY29hc3RhbFwtcHJvdmluY2VzXC1vZlwtbGlhb25pbmc7Civlhavml5cgPiB0aGVcLVwiZWlnaHRcLWJhbm5lcnNcIlwtXChtaWxpdGFyeVwtb3JnYW5pc2F0aW9uXC1pblwtcWluZ1wtZHluYXN0eVwpOwor6Jek6YeOID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC10ZW5nXC15ZVwsXC1hXC1qYXBhbmVzZVwtZnJpZW5kXC1vZlwtbHUzXC14dW40XC3pra/ov4U7Civoj6/ooaggPiBtYXJibGVcLXBpbGxhclwtXChvcm5hbWVudGFsXC1jb2x1bW5cLWluXC1mcm9udFwtb2ZcLXBsYWNlc1wsXC10b21ic1wpOwor5b6F5qWtID4gdG9cLWF3YWl0XC1qb2JcLWFzc2lnbm1lbnRcLVwodGVybVwtdXNlZFwtb25seVwtaW5cLW1haW5sYW5kXC1jaGluYVwpOwor5omu55u4ID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtYW5cLWFjdG9yXC1vclwtYWN0cmVzc1wtaW5cLWNvc3R1bWVcLW9yXC1tYWtldXA7CivmrabooZMgPiB3dXNodVwsXC1tYXJ0aWFsXC1hcnRzXC1zdWNoXC1hc1wtc2hhZG93XC1ib3hpbmdcLFwtc3dvcmRwbGF5XCxcLWV0Y1wuOwor5Lit5YWxID4gXChhYmJyZXZpYXRpb25cLWZvclwpXC1jaGluZXNlXC1jb21tdW5pc3RcLVwocGFydHlcLFwtcmVnaW1lXCxcLWV0Y1wuXCk7CivmlL/ljZQgPiBjcHBjY1wtXChjaGluZXNlXC1wZW9wbGUnJ3NcLXBvbGl0aWNhbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcKTsKK+aOoeWPliA+IGFkb3B0XC1vclwtY2FycnlcLW91dFwtXChtZWFzdXJlc1wsXC1wb2xpY2llc1wsXC1jb3Vyc2VcLW9mXC1hY3Rpb25cKTsKK+eZn+S4iSA+IGFcLXdyZXRjaGVkXC1sb29raW5nXC10cmFtcFwtd2hvXC1saXZlc1wtYnlcLWJlZ2dpbmdcLW9yXC1zdGVhbGluZzsKK+ihqOWFhCA+IG1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lXC1cKG9sZGVyXC10aGFuXC1vbmVzZWxmXCk7Civku5nojYkgPiBhXC1raW5kXC1vZlwtcGxhbnRcLXVzZWRcLWFzXC1hXC1tZWRpY2luYWxcLWhlcmJcLWluXC1hbmNpZW50XC10aW1lczsKK+adv+iDoSA+IGFcLWJvd2VkXC1zdHJpbmdlZFwtaW5zdHJ1bWVudFwtd2l0aFwtYVwtdGhpblwtd29vZGVuXC1zb3VuZGJvYXJkOwor6KOc6aSKID4gdGFrZVwtYVwtdG9uaWNcLW9yXC1ub3VyaXNoaW5nXC1mb29kXC10b1wtYnVpbGRcLXVwXC1vbmUnJ3NcLWhlYWx0aDsKK+aLvOWRvSA+IHRvXC1iZVwtcmVhZHlcLXRvXC1yaXNrXC1vbmUnJ3NcLWxpZmVcLVwoaW5cLWZpZ2h0aW5nXCxcLXdvcmtcLFwtZXRjXC5cKTsKK+mBt+aAkiA+IHRvXC10YWtlXC1vbmUnJ3NcLWFuZ2VyXC1vdXRcLW9uXC1zYlwtXCh3aG9cLWRvZXNcLW5vdFwtZGVzZXJ2ZVwtaXRcKTsKK+aOm+WlvSA+IHRvXC1oYW5nXC11cFwtcHJvcGVybHlcLVwodGVsZXBob25lXCxcLXBpY3R1cmVcLFwtY2xvdGhlc1wsXC1ldGNcLlwpOwor5ouU5q+SID4gZHJhd1wtb3V0XC1wdXNcLWJ5XC1hcHBseWluZ1wtYVwtcGxhc3RlclwtdG9cLXRoZVwtYWZmZWN0ZWRcLWFyZWE7CivnlZzlipsgPiBhbmltYWxcLXBvd2VyZWRcLVwoYXNcLW9wcG9zZWRcLXRvXC1odW1hblwtb3JcLW1hY2hpbmVcLXBvd2VyZWRcKTsKK+W5q+iFlCA+IHZvY2FsXC1hY2NvbXBhbmltZW50XC1pblwtc29tZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW9wZXJhczsKK+WllOWWqiA+IGhhc3RlblwtaG9tZVwtZm9yXC10aGVcLWZ1bmVyYWxcLW9mXC1hXC1wYXJlbnRcLW9yXC1ncmFuZHBhcmVudDsKK+eZveiKjSA+IFwocGVlbGVkXClcLXJvb3RcLW9mXC1oZXJiYWNlb3VzXC1wZW9ueVwtXChwYWVvbmlhXC1sYWN0aWZsb3JhXCk7CivoiIjotqMgPiBpbnRlcmVzdFwtXChkaXJlY3RlZFwtdG93YXJkc1wsXC1ub3RcLWluaGVyZW50XC1pblwtc29tZXRoaW5nXCk7CivmqJnlhbUgPiBwYXJhZGVcLWd1YXJkc1wtXCh1c3VhbGx5XC1zcGFjZWRcLW91dFwtYWxvbmdcLXBhcmFkZVwtcm91dGVzXCk7Civms5XmtbcgPiBuYW1lXC1vZlwtYVwtYnVkZGhpc3RcLW1vbmtcLFwtZmFoYWlcLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+W9iOeQtCA+IHRvXC1wbGF5XC1vclwtc3RydW1cLWFcLWx1dGVcLW9yXC1vdGhlclwtc3RyaW5nZWRcLWluc3RydW1lbnQ7Civnmb3pmbYgPiB3aGl0ZVwtcG90dGVyeVwtXChvZlwtc2hhbmdcLWR5bmFzdHJ5XC0xNlwtMTF0aFwtY2VudHVyeVwtYmNcKTsKK+WMheW5siA+IGJlXC1yZXNwb25zaWJsZVwtZm9yXC1hXC10YXNrXC11bml0XC11bnRpbFwtaXRcLWlzXC1jb21wbGV0ZWQ7CivlubPmlrkgPiBzcXVhcmVcLVwoYXNcLWluXC1zcXVhcmVcLWZvb3RcLFwtc3F1YXJlXC1taWxlXCxcLXNxdWFyZVwtcm9vdFwpOwor5ouJ6LKdID4gXChqb2huXClcLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+W3q+WxsSA+IG10XC5cLXd1XCxcLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC1ieVwtdGhlXC10aHJlZVwtZ29yZ2VzOwor5o2V5L+YID4gY2FwdHVyZVwtZW5lbXlcLXBlcnNvbm5lbFwtXChmb3JcLWludGVsbGlnZW5jZVwtcHVycG9zZXNcKTsKK+mPouWuoiA+IGFybWVkXC1lc2NvcnRcLVwob2ZcLXRyYXZlbGxlcnNcLW9yXC1tZXJjaGFudHMnJ1wtY2FyYXZhbnNcKTsKK+iyneavjSA+IHRoZVwtYnVsYlwtb2ZcLXRoZVwtZnJpdGlsbGFyeVwtXChmcml0aWxsYXJpYVwtdGh1bmJlcmdpaVwpOwor5ZCN5YudID4gYVwtcGxhY2VcLWZhbW91c1wtZm9yXC1pdHNcLXNjZW5lcnlcLW9yXC1oaXN0b3JpY2FsXC1yZWxpY3M7CivmsJHmqIIgPiBtdXNpY1wsXC1lc3BcLlwtZm9sa1wtbXVzaWNcLFwtZm9yXC10cmFkaXRpb25hbFwtaW5zdHJ1bWVudHM7CivpmZ3opb8gPiBzaGFhbnhpXC1wcm92aW5jZVwsXC1jaGluYVwtXChjYXBpdG9sXC1jaXR5XC1pc1wteGknJ2FuXC3opb/lrolcKTsKK+aXpeaWuSA+IHRoZVwtamFwYW5lc2VcLXNpZGVcLW9yXC1wYXJ0eVwtXChpblwtbmVnb3RpYXRpb25zXCxcLWV0Y1wuXCk7CivmqavmipggPiBcKGhvcml6b250YWxcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7Civopb/lrokgPiB4aScnYW5cLVwoY2l0eVwpXCxcLXRoZVwtY2FwaXRvbFwtY2l0eVwtb2ZcLXNoYWFueGlcLXByb3ZpbmNlOwor5bCP6Z2SID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14aWFvcWluZ1wsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6Ieo5pG5ID4gdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCxcLWV0Y1wuXCk7Civlgpnlj5YgPiBiZVwtb25cLXRoZVwtd2FpdGluZ1wtbGlzdFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLWFcLXNjaG9vbFwpOwor5pys5pyrID4gdGhlXC13aG9sZVwtY291cnNlXC1vZlwtYW5cLWV2ZW50XC1mcm9tXC1iZWdpbm5pbmdcLXRvXC1lbmQ7CivpoJPmjKsgPiB3aXRoXC1zeW5jb3BhdGVkXC1jYWRlbmNlXC1cKGJydXNoXC1zdHJva2VcLWluXC1wYWludGluZ1wpOwor54mI55WrID4gYVwtcGljdHVyZVwtcHJpbnRlZFwtZnJvbVwtYW5cLWVuZ3JhdmVkXC1vclwtZXRjaGVkXC1wbGF0ZTsKK+mBv+irsSA+IHRhYm9vXC1hZ2FpbnN0XC11c2luZ1wtdGhlXC1wZXJzb25hbFwtbmFtZXNcLW9mXC1lbXBlcm9yczsKK+atpuadviA+IHd1c29uZ1wsXC1uYW1lXC1vZlwtYVwtcGVyc29uXCxcLWFcLWhlcm9cLWluXC1zaHVpXC1odVwtemh1YW47CivoqLHku5kgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXh1XC14aWFuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivlhJDnm7ggPiBhdHRlbmRhbnRcLW9mXC10aGVcLWJyaWRlXC1vclwtYnJpZGVncm9vbVwtYXRcLWFcLXdlZGRpbmc7Civoo5zngIkgPiByZWluZm9yY2luZ1wtYW5kXC1yZWR1Y2luZ1wtbWV0aG9kc1wtXChpblwtYWN1cHVuY3R1cmVcKTsKK+W5ueS6iyA+IGFkbWluaXN0cmF0aXZlXC1zZWNyZXRhcnlcLVwoaW5cLWNoYXJnZVwtb2ZcLXNvbWV0aGluZ1wpOwor5ber5bO9ID4gd3V4aWFcLWdvcmdlXCxcLWluXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC10aHJlZVwtZ29yZ2VzOwor5oqY562GID4gYWdhaW5zdFwtdGhlXC1icmlzdGxlc1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5bCI57eaID4gc3BlY2lhbFwtcHVycG9zZVwtcGhvbmVcLWxpbmVcLW9yXC1jb21tdW5pY2F0aW9uc1wtbGluazsKK+WcluWFiyA+IFwoZ2FyeVwtbFwuXClcLXRvb2tlclwtXChtb3Rvcm9sYVwtY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkXCk7CivmlpzpiaQgPiBcKGRvd253YXJkc1wtcmlnaHRcLWNvbmNhdmVcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ixjuaKmCA+IFwoZG93bndhcmRzXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6ICB5YWEID4gJydvbGRcLWNoYXAnJ1wtXChmb3JtXC1vZlwtYWRkcmVzc1wtYmV0d2VlblwtbWFsZVwtZnJpZW5kc1wpOwor5qmr562GID4gYnJpc3RsZXNcLWx5aW5nXC1kb3duXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivmjqHos7wgPiBtYWtlXC1wdXJjaGFzZXNcLWZvclwtYW5cLW9yZ2FuaXphdGlvblwtb3JcLWVudGVycHJpc2U7CivmraPlnKggPiBpblwtdGhlXC1wcm9jZXNzXC1vZlwtXChkb2luZ1wtc29tZXRoaW5nXC1vclwtaGFwcGVuaW5nXCk7CivloLHlnIsgPiBkZWRpY2F0ZVwtb25lc2VsZlwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLW9uZScnc1wtY291bnRyeTsKK+ethuinuCA+IGJydXNoXC1zdHJva2VcLWluXC1jaGluZXNlXC1wYWludGluZ1wtYW5kXC1jYWxsaWdyYXBoeTsKK+S+v+S6uiA+IHNvbWVib2R5XC13aG9cLWhhcHBlbnNcLXRvXC1iZVwtb25cLWhhbmRcLWZvclwtYW5cLWVycmFuZDsKK+isnei+myA+IGNoZWFcLXNpbVwtXChjYW1ib2RpYW5cLW5hdGlvbmFsXC1hc3NlbWJseVwtcHJlc2lkZW50XCk7CivlpJbpm7sgPiByZXBvcnRzXC1mcm9tXC1mb3JlaWduXC1cKG5vblwtY2hpbmVzZVwpXC1uZXdzXC1hZ2FuY2llczsKK+e9t+S6hiA+IGFcLW1vZGFsXC1wYXJ0aWNsZVwtaW5kaWNhdGluZ1wtXChkb24nJ3RcLW1pbmRcLWl0XCxcLW9rXCk7CivpnZzlsbEgPiBjaGVuZ1wtc2FuXC1cKGVsZWN0b3JhbFwtY29uc3RpdHVlbmN5XC1pblwtc2luZ2Fwb3JlXCk7CivmipPpo68gPiBhXC1raW5kXC1vZlwtZm9vZFwtcG9wdWxhclwtYW1vbmdcLWJlbGlldmVyc1wtaW5cLWlzbGFtOwor55m95o+PID4gbGluZVwtZHJhd2luZ1wtaW5cLXRyYWRpdGlvbmFsXC1pbmtcLWFuZFwtYnJ1c2hcLXN0eWxlOwor5ZSQ5bGxID4gdGFuZ1wtc2hhblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtaGViZWlcLeays+WMl1wtcHJvdmluY2VcKTsKK+mBv+WrjCA+IGF2b2lkXC1kb2luZ1wtYW55dGhpbmdcLXRoYXRcLW1heVwtYXJvdXNlXC1zdXNwaWNpb247CivloLHluZUgPiBhbm5vdW5jZVwtdGhlXC1pdGVtc1wtb25cLWFcLVwodGhlYXRyaWNhbFwpXC1wcm9ncmFtbWU7CivopqrlrrYgPiBwYXJlbnRzXC1vZlwtb25lJydzXC1kYXVnaHRlclwtaW5cLWxhd1wtb3JcLXNvblwtaW5cLWxhdzsKK+WWnOezliA+IHN3ZWV0XC1naXZlblwtb25cLWFcLWhhcHB5XC1vY2Nhc2lvblwtXChlc3BcLlwtd2VkZGluZ1wpOwor5ouc5aO9ID4gY29uZ3JhdHVsYXRlXC1hblwtZWxkZXJseVwtcGVyc29uXC1vblwtaGlzXC1iaXJ0aGRheTsKK+S4puihjCA+IGluXC1wYXJhbGxlbFwtXFtkZXZlbG9wbWVudFwsXC1pbXBsZW1lbnRhdGlvblwsXC1ldGNcXTsKK+S8r+adsCA+IFwoc2FtdWVsXClcLWJlcmdlclwtXCh1c1wtbmF0aW9uYWxcLXNlY3VyaXR5XC1hZHZpc29yXCk7CivmnbHnm58gPiBhc2VhblwtXChhc3NvY2lhdGlvblwtb2ZcLXNvdXRoZWFzdFwtYXNpYW5cLW5hdGlvbnNcKTsKK+abvue2kyA+IFwocmVmZXJzXC10b1wtc29tZXRoaW5nXC10aGF0XC1oYXBwZW5lZFwtcHJldmlvdXNseVwpOwor5Y+v6KaLID4gaXRcLWNhblwtY2xlYXJseVwtYmVcLXNlZW5cLVwodGhhdFwtdGhpc1wtaXNcLXRoZVwtY2FzZVwpOwor5oWw5ZWPID4gZXhwcmVzc1wtc3ltcGF0aHlcLFwtZ3JlZXRpbmdzXCxcLWNvbnNvbGF0aW9uXCxcLWV0Y1wuOwor5rW35b63ID4gaHlkZVwtXChlZ1wsXC1ob3VzZVwtanVkaWNpYXJ5XC1jaGFpcm1hblwtaGVucnlcLWh5ZGVcKTsKK+e+heaWryA+IHJvdGhcLVwoZWdcLFwtaHJ3XC1leGVjdXRpdmVcLWRpcmVjdG9yXC1rZW5uZXRoXC1yb3RoXCk7Civml4Hogb0gPiBiZVwtYVwtdmlzaXRvclwtXChhdFwtYVwtbWVldGluZ1wsXC1jbGFzc1wsXC10cmlhbFwsXC1ldGNcKTsKK+aOqOi+rSA+IHRvXC1kZWNsaW5lXC1cKGFuXC1hcHBvaW50bWVudFwsXC1pbnZpdGF0aW9uXCxcLWV0Y1wuXCk7Civnmb3nl6IgPiBkeXNlbnRlcnlcLWNoYXJhY3Rlcml6ZWRcLWJ5XC13aGl0ZVwtbXVjb3VzXC1zdG9vbDsKK+iPr+S9lyA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWRvY3RvclwtaW5cLW9sZFwtdGltZXNcLFwtaHVhXC10dW87Civmo5Lmp4wgPiB3b29kZW5cLWNsdWJcLVwodXNlZFwtdG9cLWJlYXRcLWNsb3RoZXNcLWluXC13YXNoaW5nXCk7CivlkJ7lkJAgPiB0b1wtdGFrZVwtaW5cLWFuZFwtc2VuZFwtb3V0XC1cKGluXC1sYXJnZVwtcXVhbnRpdGllc1wpOwor5pa35qmLID4gdGhlXC1icm9rZW5cLWJyaWRnZVwtXChhdFwtd2VzdFwtbGFrZVwtaW5cLWhhbmd6aG91XCk7CivmsKPlip8gPiBxaWdvbmdcLFwtYVwtc3lzdGVtXC1vZlwtZGVlcFwtYnJlYXRoaW5nXC1leGVyY2lzZXM7CivnnIHntJogPiBwcm92aW5jaWFsXC1sZXZlbFwtXChlZ1wsXC1wcm92aW5jaWFsXC1nb3Zlcm5tZW50XCk7CivmrabmiZMgPiBhY3JvYmF0aWNcLWZpZ2h0aW5nXC1pblwtY2hpbmVzZVwtb3BlcmFcLW9yXC1kYW5jZTsKK+WgseWksSA+IHJlcG9ydFwtdGhlXC1sb3NzXC10b1wtdGhlXC1hdXRob3JpdGllc1wtY29uY2VybmVkOwor5L+d6aSKID4gdGFrZVwtZ29vZFwtY2FyZVwtb2ZcLVwob3JcLWNvbnNlcnZlXClcLW9uZScnc1wtaGVhbHRoOwor5bmz5L+hID4gb3JkaW5hcnlcLW1haWxcLVwoYXNcLW9wcG9zZWRcLXRvXC1haXJcLW1haWxcLFwtZXRjXC5cKTsKK+WIhuS6qyA+IG9idGFpblwtb25lJydzXC1zaGFyZVwtXChvZlwtd2VhbHRoXCxcLXJpZ2h0c1wsXC1ldGNcLlwpOwor57SF5aChID4gcmVkXC1mb3J0XC1cKGhpc3RvcmljXC1idWlsZGluZ1wtaW5cLWRlbGhpXCxcLWluZGlhXCk7CivlhYPlrrUgPiBzd2VldFwtZHVtcGxpbmdzXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlXC1mbG91cjsKK+iHqOWvqyA+IHRvXC1jb3B5XC1cKGFcLW1vZGVsXC1vZlwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZ1wpOwor5pyI6aSFID4gbW9vblwtY2FrZVwtXChlc3BcLlwtZm9yXC10aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbFwpOwor5oqE5a62ID4gdG9cLXNlYXJjaFwtYVwtaG91c2VcLWFuZFwtY29uZmlzY2F0ZVwtcG9zc2Vzc2lvbnM7CivmnIPoposgPiB0b1wtbWVldFwtd2l0aFwtXChzb21lb25lXC13aG9cLWlzXC1wYXlpbmdcLWFcLXZpc2l0XCk7CivlpKfoiIkgPiBjYXJyeVwtb3V0XC1hXC1sYXJnZVwtc2NhbGVcLVwobWlsaXRhcnlcKVwtb3BlcmF0aW9uOwor5pel5ry4ID4gXChrZWVwXC1pbmNyZWFzaW5nXCxcLWNoYW5naW5nXCxcLWV0Y1wuXClcLWRheVwtYnlcLWRheTsKK+itsOW4rSA+IHNlYXRcLWluXC1hXC1wYXJsaWFtZW50XC1vclwtbGVnaXNsYXRpdmVcLWFzc2VtYmx5Owor6YCa57edID4gd2FudGVkXC1ieVwtdGhlXC1wb2xpY2VcLVwoZnVnaXRpdmVcLW9yXC1jcmltaW5hbFwpOwor55yf57SNID4gXChtb2hhbW1hZFwtYWxpXClcLWppbm5haFwtXChmb3VuZGVyXC1vZlwtcGFraXN0YW5cKTsKK+mtr+izkyA+IHJ1YmluXC1cKGVnXCxcLXRyZWFzdXJ5XC1zZWNyZXRhcnlcLXJvYmVydFwtcnViaW5cKTsKK+WKm+WvtiA+IGxpcHBvXC1cKGdyb3VwXClcLVwoaW5kb25lc2lhblwtYnVzaW5lc3NcLWNvbmNlcm5cKTsKK+WBtOmLkiA+IG9ibGlxdWVcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5bSH56aOID4gY2hvbmd6aGVuXCxcLWxhc3RcLWVtcGVyb3JcLW9mXC10aGVcLW1pbmdcLWR5bmFzdHk7Civnmb3lrZcgPiB3cm9uZ2x5XC13cml0dGVuXC1hbmRcLW1pc3Byb25vdW5jZWRcLWNoYXJhY3RlcjsKK+WwjeetliA+IGNvdW50ZXJtZWFzdXJlXC1mb3JcLWRlYWxpbmdcLXdpdGhcLWFcLXNpdHVhdGlvbjsKK+ethuWKmyA+IHZpZ291clwtb2ZcLXN0cm9rZXNcLWluXC1jYWxsaWdyYXBoeVwtb3JcLWRyYXdpbmc7CivnvbDphZIgPiB0b1wtZHJpbmtcLWFzXC10aGVcLXJlc3VsdFwtb2ZcLWhhdmluZ1wtbG9zdFwtYVwtYmV0Owor5pif6auUID4gY2VsZXN0aWFsXC1ib2R5XC1cKGVnXCxcLXBsYW5ldFwsXC1zYXRlbGxpdGVcLFwtZXRjXCk7CivkuLvnrqEgPiBcKGJlXClcLXBlcnNvblwtaW5cLWNoYXJnZVwtb2ZcLVwoYVwtcG9zaXRpb25cLFwtZXRjXC5cKTsKK+atpemfuyA+IHRvXC13cml0ZVwtYVwtcG9lbVwtdXNpbmdcLWFub3RoZXJcLXBvZW0nJ3NcLXJoeW1lczsKK+WPo+awoyA+IFwoZnJpZW5kbHlcLW9yXC11bmZyaWVuZGx5XClcLXRvbmVcLVwob2ZcLWNvbW1lbnRzXCk7CivmraPpi5IgPiBmcm9udGFsXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+aYn+eQgyA+IGNlbGVzdGlhbFwtYm9keVwtXChlZ1wsXC1wbGFuZXRcLFwtc2F0ZWxsaXRlXCxcLWV0Y1wpOwor5LiL5L6GID4gXCh2ZXJiXC1zdWZmaXhcLWluZGljYXRpbmdcLWNvbnRpbnVhdGlvblwsXC1ldGNcLlwpOwor5bm56YOoID4gYVwtY2FkcmVcLVwoaWVcLFwtbWFuYWdlclwsXC1zdGFmZlwsXC1vZmZpY2VyXCxcLWV0Y1wuXCk7CivmjqXntI0gPiBhZG1pdFwtXChpbnRvXC1tZW1iZXJzaGlwXC1vZlwtYW5cLW9yZ2FuaXphdGlvblwpOwor5oqK6aKoID4ga2VlcFwtd2F0Y2hcLVwoZHVyaW5nXC1hXC1jbGFuZGVzdGluZVwtYWN0aXZpdHlcKTsKK+WCmeiAlSA+IG1ha2VcLXByZXBhcmF0aW9uc1wtZm9yXC1wbG91Z2hpbmdcLWFuZFwtc293aW5nOwor5pKl5YaXID4gZmluZFwtdGltZVwtaW5cLXRoZVwtbWlkc3RcLW9mXC1wcmVzc2luZ1wtYWZmYWlyczsKK+agvei0kyA+IHRvXC1mcmFtZVwtc29tZW9uZVwtXChieVwtcGxhbnRpbmdcLXN0aFwtb25cLXRoZW1cKTsKK+aPm+WPliA+IGdpdmVcLXNvbWV0aGluZ1wtYW5kXC1nZXRcLXNvbWV0aGluZ1wtaW5cLXJldHVybjsKK+WBveabuCA+IFwoZm9yZ2VkXCxcLWR1YmlvdXNcLFwtbWlzY2xhc3NpZmllZFwpXC1vbGRcLWJvb2tzOwor57C/5YaKID4gYm9va3NcLWZvclwtdGFraW5nXC1ub3Rlc1wtb3JcLWtlZXBpbmdcLWFjY291bnRzOwor5LiK6LuKID4gdG9cLWdldFwtb25cLW9yXC1pbnRvXC1cKGFcLWJ1c1wsXC10cmFpblwsXC1jYXJcLWV0Y1wuXCk7CivnrYbkuIsgPiB0aGVcLXdvcmRpbmdcLWFuZFwtcHVycG9ydFwtb2ZcLXdoYXRcLW9uZVwtd3JpdGVzOwor5L6/5Ye9ID4gYW5cLWluZm9ybWFsXC1sZXR0ZXJcLXNlbnRcLWJ5XC1hblwtb3JnYW5pemF0aW9uOwor6aaW5bitID4gY2hpZWZcLVwocmVwcmVzZW50YXRpdmVcLFwtY29ycmVzcG9uZGVudFwsXC1ldGNcKTsKK+i0heWpvyA+IHNvblwtaW5cLWxhd1wtbGl2aW5nXC1hdFwtd2lmZScnc1wtcGFyZW50JydzXC1ob3VzZTsKK+iZleaWvCA+IGJlXC1cKGluXC1zb21lXC1zdGF0ZVwsXC1wb3NpdGlvblwsXC1vclwtY29uZGl0aW9uXCk7CivmlZfnrYYgPiBhXC1mYXVsdHlcLXN0cm9rZVwtaW5cLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmc7Civlh7rot68gPiBhXC13YXlcLW91dFwtXChvZlwtYVwtZGlmZmljdWx0XC1zaXR1YXRpb25cLFwtZXRjXCk7Civluqbml6UgPiBzY3JhdGNoXC1vdXRcLWFcLWRpZmZpY3VsdFwsXC1tZWFnZXJcLWV4aXN0ZW5jZTsKK+WgseahiCA+IHJlcG9ydFwtYVwtY2FzZVwtdG9cLXRoZVwtc2VjdXJpdHlcLWF1dGhvcml0aWVzOwor5YW15rqQID4gbWFucG93ZXJcLXJlc291cmNlc1wtXChmb3JcLW1pbGl0YXJ5XC1zZXJ2aWNlXCk7CivmnInpm7sgPiBcKG9mXC1hXC1kd2VsbGluZ1wpXC1zdXBwbGllZFwtd2l0aFwtZWxlY3RyaWNpdHk7Civos4Hoh6ggPiBcKG9mXC1kaXN0aW5ndWlzaGVkXC1ndWVzdHNcKVwtaG9ub3VyXC1teVwtaG91c2U7Civmnb7kuIsgPiBtYXRzdXNoaXRhXC1cKGphcGFuZXNlXC1lbGVjdHJvbmljc1wtY29tcGFueVwpOwor5LiN5aaZID4gXChvZlwtYVwtdHVyblwtb2ZcLWV2ZW50c1wpXC1ub3RcLXRvb1wtZW5jb3VyYWdpbmc7Civli4nlvLcgPiBtYW5hZ2VcLVwodG9cLWRvXC1zb21ldGhpbmdcKVwtd2l0aFwtZGlmZmljdWx0eTsKK+WIpeeEoSA+IGhhdmVcLW5vXC1vdGhlclwtXChjaG9pY2VcLFwtYWx0ZXJuYXRpdmVcLFwtZXRjXCk7CivlhazntIQgPiBjb252ZW50aW9uXC1cKGllXCxcLWludGVybmF0aW9uYWxcLWFncmVlbWVudFwpOwor5bm05bqmID4geWVhclwtXChlZ1wsXC1zY2hvb2xcLXllYXJcLFwtZmlzY2FsXC15ZWFyXCxcLWV0Y1wpOwor562G6aCGID4gb3JkZXJcLW9mXC1zdHJva2VzXC1vYnNlcnZlZFwtaW5cLWNhbGxpZ3JhcGh5Owor5omO6YedID4gdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtYWN1cHVuY3R1cmVcLXRyZWF0bWVudDsKK+ijveWKkSA+IFwoY2hlbWljYWxcLW9yXC1waGFybWFjZXV0aWNhbFwpXC1wcmVwYXJhdGlvbjsKK+mrlOacgyA+IGtub3dcLVwodGhyb3VnaFwtbGVhcm5pbmdcLW9yXC1ieVwtZXhwZXJpZW5jZVwpOwor5YG95omYID4gZmFraW5nXC1hXC1tb2Rlcm5cLW9iamVjdFwtYXNcLWFuXC1hbmNpZW50XC1vbmU7Civmtbfpl5wgPiBjdXN0b21zXC1cKGllXCxcLWJvcmRlclwtY3Jvc3NpbmdcLWluc3BlY3Rpb25cKTsKK+eikeiomCA+IGFcLXJlY29yZFwtb2ZcLWV2ZW50c1wtaW5zY3JpYmVkXC1vblwtYVwtdGFibGV0Owor5YyF6L6mID4gdGFrZVwtY2FyZVwtb2ZcLWV2ZXJ5dGhpbmdcLWNvbmNlcm5pbmdcLWFcLWpvYjsKK+WHuumdoiA+IGFjdFwtaW5cLWFcLVwob2ZmaWNpYWxcLW9yXC1wZXJzb25hbFwpXC1jYXBhY2l0eTsKK+ebuOmalCA+IGJlXC1zZXBhcmF0ZWRcLWJ5XC1cKGRpc3RhbmNlXC1vclwtdGltZVwsXC1ldGNcKTsKK+aZguWgsSA+IFwidGltZXNcIlwtXChuZXdzcGFwZXJcLFwtZWdcLFwtbmV3XC15b3JrXC10aW1lc1wpOwor6YCa6IiqID4gY29ubmVjdGVkXC1ieVwtYWlyXHxzZWFcLXRyYWZmaWNcLW9yXC1zZXJ2aWNlOwor6YG35bGFID4gdG9cLW1vdmVcLVwoZnJvbVwtb25lXC1yZXNpZGVuY2VcLXRvXC1hbm90aGVyXCk7CivlubTku6MgPiBhXC1kZWNhZGVcLW9mXC1hXC1jZW50dXJ5XC1cKGVnXCxcLXRoZVwtc2l4dGllc1wpOwor5Zas55+zID4gcWlhb1wtc2hpXC1cKGNoaW5lc2VcLWxlYWRlcnNoaXBcLWNvbnRlbmRlclwpOwor6LGO6YmkID4gXChzdHJhaWdodFwtZG93blwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor5oiQ5pysID4gXChtYW51ZmFjdHVyaW5nXCxcLXByb2R1Y3Rpb25cLFwtZXRjXC5cKVwtY29zdHM7Civku6PnkIYgPiBhY3RpbmdcLVwodGVtcG9yYXJpbHlcLWZpbGxpbmdcLWFcLXBvc2l0aW9uXCk7CivlrqLlu7MgPiBkcmF3aW5nXC1yb29tXC1cKHJvb21cLWZvclwtYXJyaXZpbmdcLWd1ZXN0c1wpOwor6JOu6ZynID4gd2F4XC1hcHBsZVwtXChhXC1yZWRkaXNoXC1wZWFyXC1zaGFwZWRcLWZydWl0XCk7CivpoYznsL0gPiB0b1wtd3JpdGVcLXRoZVwtdGl0bGVcLW9mXC1hXC1ib29rXC1vblwtYVwtbGFiZWw7CivogIHkuowgPiB0aGVcLXNlY29uZFwtY2hpbGRcLW9yXC1icm90aGVyXC1cKG9yXC1zaXN0ZXJcKTsKK+S4reWNlyA+IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmFcLVwtXC1zb3V0aFwtYWZyaWNhOwor54mI5qyhID4gdGhlXC1vcmRlclwtaW5cLXdoaWNoXC1lZGl0aW9uc1wtYXJlXC1wcmludGVkOwor5Y+X5YK3ID4gc3VmZmVyXC1pbmp1cmllc1wtXChpblwtYW5cLWFjY2lkZW50XCxcLWV0Y1wuXCk7CivoqILnq4sgPiBhZ3JlZVwtdG9cLVwodHJlYXR5XCxcLWNvbnRyYWN0XCxcLWFncmVlbWVudFwpOwor5aSP5puGID4gdGhlXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbHVuYXJcLWNhbGVuZGFyOwor5bir56+EID4gbm9ybWFsXC1cKGVnXCxcLWJlaWppbmdcLW5vcm1hbFwtdW5pdmVyc2l0eVwpOwor5buj5aC0ID4gYVwtcHVibGljXC1zcXVhcmVcLVwoZWdcLFwtdGlhbmFubWVuXC1zcXVhcmVcKTsKK+ijnOelqCA+IGJ1eVwtb25lJydzXC10aWNrZXRcLWFmdGVyXC10aGVcLW5vcm1hbFwtdGltZTsKK+eZvOeHkiA+IGhhdmVcLWFcLWhpZ2hcLXRlbXBlcmF0dXJlXC1cKGZyb21cLWlsbG5lc3NcKTsKK+ebhuWcsCA+IGJhc2luXC1cKGxvd1wtbHlpbmdcLWdlb2dyYXBoaWNhbFwtZmVhdHVyZVwpOwor5omL6LehID4gc2JcLicnc1wtb3JpZ2luYWxcLWhhbmR3cml0aW5nXC1vclwtcGFpbnRpbmc7CivnkqfpgoQgPiByZXR1cm5cLVwoYVwtYm9ycm93ZWRcLW9iamVjdFwpXC13aXRoXC10aGFua3M7CivooajlprkgPiBmZW1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lOwor5ouG5pWjID4gdG9cLWJyZWFrXC11cFwtXChhXC1tYXJyaWFnZVwsXC1mYW1pbHlcLFwtZXRjXC5cKTsKK+WCmeWTgSA+IG1hY2hpbmVcLXBhcnRzXC1vclwtdG9vbHNcLWtlcHRcLWluXC1yZXNlcnZlOwor6aaW5Lu7ID4gZmlyc3RcLXBlcnNvblwtdG9cLWJlXC1hcHBvaW50ZWRcLXRvXC1hXC1wb3N0Owor6YOo6ZW3ID4gaGVhZFwtb2ZcLWFcLVwoZ292ZXJubWVudFwsXC1ldGNcKVwtZGVwYXJ0bWVudDsKK+avlOmHjyA+IHRha2VcLXJvdWdoXC1tZWFzdXJlbWVudHNcLVwod2l0aFwtdGhlXC1oYW5kOwor5Y2a5oSbID4gdW5pdmVyc2FsXC1mcmF0ZXJuaXR5XC1cKG9yXC1icm90aGVyaG9vZFwpOwor5pWX54GrID4gcmVsaWV2ZVwtaW5mbGFtbWF0aW9uXC1vclwtaW50ZXJuYWxcLWhlYXQ7CivntpPnh58gPiBlbmdhZ2VcLWluXC1cKGFcLWJ1c2luZXNzXC1hY3Rpdml0eVwsXC1ldGNcLlwpOwor6ZuG5oiQID4gaW50ZWdyYXRlZFwtXChhc1wtaW5cLWludGVncmF0ZWRcLWNpcmN1aXRcKTsKK+aUv+WnlCA+IHBvbGl0aWNhbFwtY29tbWlzc2FyXC1cKHdpdGhpblwtdGhlXC1hcm15XCk7Civnt6jlsI4gPiB3cml0ZVwtYW5kXC1kaXJlY3RcLVwoYVwtcGxheVwsXC1maWxtXCxcLWV0Y1wuXCk7CivooYzpp5sgPiBcKHZlaGljbGVzXCxcLWV0Y1wuXClcLXRyYXZlbFwtYWxvbmdcLWFcLXJvdXRlOwor5YW156iuID4gXChtaWxpdGFyeVwpXC1icmFuY2hcLW9mXC10aGVcLWFybWVkXC1mb3JjZXM7CivpgLzlrq4gPiBmb3JjZVwtdGhlXC1raW5nXC1vclwtZW1wZXJvclwtdG9cLWFiZGljYXRlOwor6Iiq6KGMID4gc2FpbFwtb3JcLWZseVwtXChpblwtYWlyXCxcLXdhdGVyXCxcLW9yXC1zcGFjZVwpOwor55u45L+hID4gYmVcLWNvbnZpbmNlZFwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7Civmi5Tnp6cgPiBwdWxsXC11cFwtc2VlZGxpbmdzXC1cKGZvclwtdHJhbnNwbGFudGluZ1wpOwor5omL6KOhID4gXChhXC1zaXR1YXRpb25cLWlzXClcLWluXC1cKHNvbWVvbmUnJ3NcKVwtaGFuZHM7CivmjZXmkoggPiBmaXNoXC1mb3JcLVwoYXF1YXRpY1wtYW5pbWFsc1wtYW5kXC1wbGFudHNcKTsKK+ewveWQjSA+IHRvXC1zaWduXC1cKG9uZScnc1wtbmFtZVwtd2l0aFwtYVwtcGVuXCxcLWV0Y1wuXCk7Civmv5/ljZcgPiBqaScnbmFuXC1cKGNhcGl0YWxcLW9mXC1zaGFuZG9uZ1wtcHJvdmluY2VcKTsKK+Wxj+ainSA+IHNldFwtb2ZcLVwodXN1YWxseVwtZm91clwpXC1oYW5naW5nXC1zY3JvbGxzOwor56m256ufID4gYWZ0ZXJcLWFsbFwtXCh3aGVuXC1hbGxcLWlzXC1zYWlkXC1hbmRcLWRvbmVcKTsKK+mOruaxnyA+IHpoZW5qaWFuZ1wtXChjaXR5XClcLFwtaW5cLWppYW5nc3VcLXByb3ZpbmNlOwor5Li756eRID4gcmVxdWlyZWRcLWNvdXJzZXNcLWluXC10aGVcLW1ham9yXC1zdWJqZWN0Owor54+t5bqVID4gb3JkaW5hcnlcLW1lbWJlcnNcLW9mXC10aGVhdHJpY2FsXC10cm91cGU7Civph5HnvL0gPiBcKGdvbGRcKVwtYWxtc1wtYm93bFwtXChvZlwtYVwtYnVkZGhpc3RcLW1vbmtcKTsKK+iBr+WQjSA+IGpvaW50bHlcLVwoc2lnbmVkXCxcLWRlY2xhcmVkXCxcLXNwb25zb3JlZFwpOwor5LiL5qa7ID4gc3RheVwtYXRcLVwoYVwtaG90ZWxcLFwtZXRjXC5cLWR1cmluZ1wtYVwtdHJpcFwpOwor6KiY6L+wID4gbWFrZVwtYVwtZGVzY3JpcHRpdmVcLXJlY29yZFwtXChvZlwtZXZlbnRzXCk7CivmmpflgrcgPiBpbnRlcm5hbFwtXChpbnZpc2libGVcKVwtaW5qdXJ5XC1cKGRhbWFnZVwpOwor5aSq5rmWID4gdGFpXC1odVwtbGFrZVwsXC1hXC1iaWdcLWxha2VcLWJ5XC13dXhpXC1jaXR5Owor5qmr6YmkID4gXChob3Jpem9udGFsXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivljJflrosgPiB0aGVcLW5vcnRoZXJuXC1zb25nXC1keW5hc3R5XC1cKDk2MFwtMTEyN1wpOwor6YSJ5LiLID4gY291bnRyeVwtXChhc1wtb3Bwb3NlZFwtdG9cLXRvd25cLW9yXC1jaXR5XCk7CivnsL3oqIIgPiB0b1wtYWdyZWVcLXRvXC1hbmRcLXNpZ25cLVwoYVwtdHJlYXR5XCxcLWV0Y1wpOwor5aKe5YC8ID4gYXBwcmVjaWF0aW9uXC1cKG9mXC1hXC1jYXJcLFwtaG91c2VcLFwtZXRjXC5cKTsKK+WFteWutiA+IG1pbGl0YXJ5XC1zdHJhdGVnaXN0XC1pblwtYW5jaWVudFwtY2hpbmE7Civoi7HlsLogPiBcKGVuZ2xpc2hcKVwtZm9vdFwtXCh1bml0XC1vZlwtbWVhc3VyZW1lbnRcKTsKK+a3qumZtyA+IFwodGVycml0b3J5XClcLWZhbGxcLXRvXC1lbmVteVwtb2NjdXBhdGlvbjsKK+S6uumBuCA+IHBlcnNvblwoc1wpXC1zZWxlY3RlZFwtXChmb3JcLWFcLWpvYlwsXC1ldGNcLlwpOwor5pyD6ZW3ID4gcHJlc2lkZW50XC1vZlwtYVwtY2x1YlwsXC1jb21taXR0ZWVcLFwtZXRjXC47Civlr6vmiJAgPiB0b1wtY29tcGlsZVwtXChmYXNoaW9uXC10aHJvdWdoXC13cml0aW5nXCk7CivlkJ7ph5EgPiB0b1wtY29tbWl0XC1zdWljaWRlXC1ieVwtc3dhbGxvd2luZ1wtZ29sZDsKK+adv+ecvCA+IG1lYXN1cmVcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbXVzaWM7CivpppblupwgPiBjYXBpdGFsXC1jaXR5XC1vZlwtYW5cLWF1dG9ub21vdXNcLXJlZ2lvbjsKK+ePreasoSA+IG9yZGVyXC1vZlwtY2xhc3Nlc1wtb3JcLWdyYWRlc1wtYXRcLXNjaG9vbDsKK+iytOW3niA+IG5hbWVcLW9mXC1hXC1wcm92aW5jZVwtaW5cLWNoaW5hXCxcLWd1aXpob3U7Civok4vojKggPiBcKGJpbGxcKVwtZ2F0ZXNcLVwoY2hhaXJtYW5cLW9mXC1taWNyb3NvZnRcKTsKK+WQuOW8lSA+IGF0dHJhY3RcLVwoaW50ZXJlc3RcLFwtaW52ZXN0bWVudFwsXC1ldGNcLlwpOwor5pqX5ai8ID4gdW5saWNlbnNlZFwtXCh1bnJlZ2lzdGVyZWRcKVwtcHJvc3RpdHV0ZTsKK+mcuOeOiyA+IHhpYW5nNHl1M1wtXCgyMzJcLTIwMlwtYmNcKVwtdGhlXC1jb25xdWVyb3I7Civlo73npq4gPiBiaXJ0aGRheVwtcHJlc2VudFwtXChmb3JcLWFuXC1vbGRcLXBlcnNvblwpOwor6JCs57ijID4gd2FueGlhblwtY291bnR5XCxcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+WFtemDqCA+IHRoZVwtbWluaXN0cnlcLW9mXC13YXJcLWluXC1mZXVkYWxcLWNoaW5hOwor5YyX5ZGoID4gdGhlXC1ub3J0aGVyblwtemhvdVwtZHluYXN0eVwtXCg1NTdcLTU4MVwpOwor5YyX5LqsID4gYmVpamluZ1wtXChjYXBpdGFsXC1vZlwtbWFpbmxhbmRcLWNoaW5hXCk7CivojYnmoYggPiBkcmFmdFwtXChsZWdpc2xhdGlvblwsXC1wcm9wb3NhbFwsXC1ldGNcLlwpOwor6Kaq5oSbID4gZGVhclwtXC5cLlwuXC1cKHdheVwtb2ZcLXN0YXJ0aW5nXC1hXC1sZXR0ZXJcKTsKK+ijnOeZvSA+IGZpbGxlclwtXChpblwtYVwtbmV3c3BhcGVyXC1vclwtbWFnYXppbmVcKTsKK+iIieihjCA+IHRvXC1ob2xkXC1cKGFcLW1lZXRpbmdcLFwtY2VyZW1vbnlcLFwtZXRjXC5cKTsKK+S/nemAgSA+IHJlY29tbWVuZFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLXNjaG9vbFwpOwor6L2J5bizID4gdHJhbnNmZXJcLW1vbmV5XC1mcm9tXHxpbnRvXC1hblwtYWNjb3VudDsKK+W4reS9jSA+IHBhcmxpYW1lbnRhcnlcLW9yXC1jb25ncmVzc2lvbmFsXC1zZWF0Owor5biD5LuAID4gXChnZW9yZ2VcKVwtYnVzaFwtXChmb3JtZXJcLXVzXC1wcmVzaWRlbnRcKTsKK+WvqeioiiA+IGFcLVwoanVkaWNpYWxcKVwtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0cm9vbVwpOwor562G5qG/ID4gdGhlXC1zaGFmdFwtb2ZcLWFcLXBlblwtb3JcLXdyaXRpbmdcLWJydXNoOwor55eF5YuiID4gZGVncmVlXC1vZlwtc2VyaW91c25lc3NcLW9mXC1hblwtaWxsbmVzczsKK+S4u+i+piA+IGhvc3RcLVwoYVwtY29uZmVyZW5jZVwtb3JcLXNwb3J0c1wtZXZlbnRcKTsKK+acrOiNiSA+IGFcLWJvb2tcLW9uXC1jaGluZXNlXC1cKGhlcmJhbFwpXC1tZWRpY2luZTsKK+S6uueJqSA+IGNoYXJhY3RlcnNcLVwoaW5cLWFcLXBsYXlcLFwtbm92ZWxcLFwtZXRjXC5cKTsKK+itsOmVtyA+IHNwZWFrZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseVwpOwor5a6J5Y2XID4gXFtrb2ZpXF1cLWFubmFuXC1cW3VuXC1zZWNyZXRhcnlcLWdlbmVyYWxcXTsKK+WMhemjryA+IGdldFwtb3JcLXN1cHBseVwtbWVhbHNcLWF0XC1hXC1maXhlZFwtcmF0ZTsKK+acieawtCA+IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC13YXRlcjsKK+ipsemhjCA+IHN1YmplY3RcLVwob2ZcLWFcLXRhbGtcLW9yXC1jb252ZXJzYXRpb25cKTsKK+S6i+WLmSA+IFwocG9saXRpY2FsXCxcLWVjb25vbWljXCxcLWV0Y1wuXClcLWFmZmFpcnM7CivlkrHlgJEgPiB3ZVwtXChpbmNsdWRpbmdcLXRoZVwtcGVyc29uXC1zcG9rZW5cLXRvXCk7CivnjoflhYggPiB0YWtlXC10aGVcLWxlYWRcLVwoc2hvd2luZ1wtaW5pdGl0YXRpdmVcKTsKK+WMheennyA+IHJlbnRcLWxhbmRcLW9yXC1hXC1ob3VzZVwtZm9yXC1zdWJsZXR0aW5nOwor5piO5paHID4gXChsYXdzXCxcLXJ1bGVzXCxcLWV0Y1wpXC1zdGF0ZVwtaW5cLXdyaXRpbmc7CivpgI/oppYgPiB0b1wtZXhhbWluZVwtYnlcLWZsdW9yb3Njb3BlXC1vclwteFwtcmF5Owor5aCx6K2mID4gcmVwb3J0XC1cKGFuXC1pbmNpZGVudFwpXC10b1wtdGhlXC1wb2xpY2U7CivnopHluJYgPiBhXC1ydWJiaW5nXC1mcm9tXC1hXC1zdG9uZVwtaW5zY3JpcHRpb247CivniZvlubQgPiB5ZWFyXC1vZlwtdGhlXC1veFwtXChpblwtY2hpbmVzZVwtem9kaWFjXCk7CivljIXlu4IgPiBib3hcLVwoaW5cLWFcLXRoZWF0cmVcLW9yXC1jb25jZXJ0XC1oYWxsXCk7CivovYnorpMgPiB0cmFuc2ZlclwtXCh0ZWNobm9sb2d5XCxcLWdvb2RzXCxcLWV0Y1wuXCk7Civnm5zniYggPiBwaXJhdGVcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCxcLWVcLmdcLlwpOwor57ej5Lu9ID4gZmF0ZVwtXCh3aGljaFwtYnJpbmdzXC1wZW9wbGVcLXRvZ2V0aGVyOwor5bmz5aOkID4gcHlvbmd5YW5nXC1cKGNhcGl0YWxcLW9mXC1ub3J0aFwta29yZWFcKTsKK+aTlOS7uyA+IGhvbGRcLWFcLWdvdmVybm1lbnRhbFwtb2ZmaWNlXC1vclwtcG9zdDsKK+WFi+acjSA+IFwodHJ5XC10b1wpXC1vdmVyY29tZVwtXChoYXJkc2hpcHNcLFwtZXRjXCk7CivmioTpgIEgPiB0b1wtbWFrZVwtYVwtY29weVwtXChhbmRcLXNlbmRcLWl0XC10b1wtc2JcKTsKK+ahiOmplyA+IGludmVzdGlnYXRlXC10aGVcLWV2aWRlbmNlXC1vZlwtYVwtY2FzZTsKK+aJmOmBiyA+IHRvXC1ib29rXC1vclwtY2hlY2tcLXRocm91Z2hcLVwoYmFnZ2FnZVwpOwor5oi26YOoID4gZmV1ZGFsXC1jaGluZXNlXC1taW5pc3RyeVwtb2ZcLXJldmVudWU7Civmjqjli5UgPiB0b1wtcHVzaFwtXChmb3JcLWFjY2VwdGFuY2VcLW9mXC1hXC1wbGFuXCk7Civkup7ou40gPiBzZWNvbmRcLXBsYWNlXC1cKGluXC1hXC1zcG9ydHNcLWNvbnRlc3RcKTsKK+mhj+mrlCA+IHlhblwtc3R5bGVcLVwoaW5cLWNoaW5lc2VcLWNhbGxpZ3JhcGh5XCk7CivkuYXpgZUgPiBcKGhhdmVuJyd0XC1kb25lXC1zdGhcKVwtZm9yXC1hXC1sb25nXC10aW1lOwor6aaZ5bGxID4gZnJhZ3JhbmNlXC1oaWxsXC1cKGFcLXBhcmtcLWluXC1iZWlqaW5nXCk7Civpirfmr4AgPiB0b1wtZGVzdHJveVwtXChieVwtbWVsdGluZ1wtb3JcLWJ1cm5pbmdcKTsKK+WMl+mtjyA+IHRoZVwtbm9ydGhlcm5cLXdlaVwtZHluYXN0eVwtXCgzODZcLTUzNFwpOwor5pq055eFID4gc3VkZGVuXC1hdHRhY2tcLW9mXC1hXC1zZXJpb3VzXC1pbGxuZXNzOwor5Lq65aSnID4gXChjaGluYVwpXC1uYXRpb25hbFwtcGVvcGxlJydzXC1jb25ncmVzczsKK+eGsemspyA+IGJ1c3RsaW5nXC13aXRoXC1ub2lzZVwtYW5kXC1leGNpdGVtZW50Owor5ZGI5paHID4gcGV0aXRpb25cLVwoc3VibWl0dGVkXC10b1wtYVwtc3VwZXJpb3JcKTsKK+aYpeevgCA+IHNwcmluZ1wtZmVzdGl2YWxcLVwoY2hpbmVzZVwtbmV3XC15ZWFyXCk7CivwoLy7ID4gYVwtcGFydGljbGVcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247CivmlrDnloYgPiB4aW5qaWFuZ1wtXCh1eWd1clwtYXV0b25vbW91c1wtcmVnaW9uXCk7CivntrLntaEgPiBcKGNvbXB1dGVyXCxcLXRlbGVjb21cLFwtZXRjXC5cKVwtbmV0d29yazsKK+WjgeavryA+IHRhcGVzdHJ5XC1cKHVzZWRcLWFzXC1hXC13YWxsXC1oYW5naW5nXCk7Civmk6bmvqEgPiBydWJcLW9uZXNlbGZcLWRvd25cLXdpdGhcLWFcLXdldFwtdG93ZWw7Civoqo3lrpogPiBtYWludGFpblwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7CivliIbmracgPiBkaWZmZXJlbmNlXC1cKG9mXC1vcGluaW9uXCxcLXBvc2l0aW9uXCk7CivpgKPmiLAgPiBsaWVuXC1jaGFuXC1cKHRhaXdhblwtdmljZVwtcHJlc2lkZW50XCk7CivliLbluqYgPiBcKHBvbGl0aWNhbFwpXC1zeXN0ZW1cLW9yXC1pbnN0aXR1dGlvbjsKK+ijnOe/kiA+IHRha2VcLWxlc3NvbnNcLWFmdGVyXC1zY2hvb2xcLW9yXC13b3JrOwor5bu65LqkID4gdG9cLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor54Gr54G9ID4gZmlyZVwtXCh0aGF0XC1idXJuc1wtYnVpbGRpbmdzXCxcLWV0Y1wuXCk7CivlgpnoqrIgPiBcKG9mXC1hXC10ZWFjaGVyXClcLXRvXC1wcmVwYXJlXC1sZXNzb25zOwor6ZaL5ryUID4gXChvZlwtYVwtcGxheVwsXC1tb3ZpZVwsXC1ldGNcLlwpXC10b1wtYmVnaW47CivlgpnojZIgPiBwcmVwYXJlXC1hZ2FpbnN0XC1uYXR1cmFsXC1kaXNhc3RlcnM7CivlhajmnIMgPiBwbGVuYXJ5XC1zZXNzaW9uXC1cKGF0XC1hXC1jb25mZXJlbmNlXCk7Civkvr/pm6MgPiByZXRvcnRcLXdpdGhcLWNoYWxsZW5naW5nXC1xdWVzdGlvbnM7CivnrZTovq8gPiB0b1wtcmVwbHlcLVwodG9cLWFuXC1hY2N1c2F0aW9uXCxcLWVcLmdcLlwpOwor5ZyW5pu4ID4gYm9va3NcLVwoaW5cLWFcLWxpYnJhcnlcLW9yXC1ib29rc3RvcmVcKTsKK+WutumVtyA+IHRoZVwtcGFyZW50XC1vclwtZ3VhcmRpYW5cLW9mXC1hXC1jaGlsZDsKK+WbnuatuCA+IHRvXC1yZXR1cm5cLVwodG9cLXByZXZpb3VzXC1jb25kaXRpb25cKTsKK+mqqOazlSA+IGJvbmVcLVwocHJvcGVydHlcLW9mXC1hXC1icnVzaFwtc3Ryb2tlXCk7Civnp5HpmoYgPiBjb2xvZ25lXCxcLWdlcm1hbnlcLW9yXC1jb2xvblwsXC1wYW5hbWE7CivmiZPmtoggPiBkaXNwZWxcLVwoZG91YnRzXCxcLW1pc2dpdmluZ3NcLFwtZXRjXC5cKTsKK+aJvuWIsCA+IGZpbmRcLVwod2hhdFwtb25lXC13YXNcLXNlYXJjaGluZ1wtZm9yXCk7Civlj6zplosgPiBjb252ZW5lXC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1tZWV0aW5nXCk7CivlkbznsbIgPiBjYWxsXC1vblwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor56eR54i+ID4gXChoZWxtdXRcKVwta29obFwtXChnZXJtYW5cLWNoYW5jZWxsb3JcKTsKK+m9i+aciCA+IHJhbWFkYW5cLVwobXVzbGltXC1tb250aFwtb2ZcLWZhc3RpbmdcKTsKK+i1t+S+hiA+IGJlZ2lubmluZ1wtb3JcLWNvbnRpbnVpbmdcLWFuXC1hY3Rpb247CivljJfpvYogPiB0aGVcLW5vcnRoZXJuXC1xaVwtZHluYXN0eVwtXCg1NTBcLTU1N1wpOwor5ZCQ56mXID4gdG9cLWhhdmVcLXRoZVwtZWFyc1wtb2ZcLWdyYWluXC1jb21lXC11cDsKK+iri+mhmCA+IHBldGl0aW9uXC1cKGZvclwtYWN0aW9uXC10b1wtYmVcLXRha2VuXCk7Civkuqvlj5cgPiB0b1wtZW5qb3lcLVwocmlnaHRzXCxcLWJlbmVmaXRzXCxcLWV0Y1wuXCk7CivkuInls70gPiB0aGVcLXRocmVlXC1jaGFuZ2ppYW5nXC1yaXZlclwtZ29yZ2VzOwor5Y+W5pqWID4gdG9cLXdhcm1cLW9uZXNlbGZcLVwoYnlcLWFcLWZpcmVcLFwtZXRjXC5cKTsKK+mZoumVtyA+IHByZXNpZGVudFwtXChvZlwtYVwtdW5pdmVyc2l0eVwsXC1ldGNcLlwpOwor6KiA6KuWID4gZXhwcmVzc2lvblwtb2ZcLVwocG9saXRpY2FsXClcLW9waW5pb247CivmlL/nlYwgPiBwb2xpdGljYWxcLWFuZFwtZ292ZXJubWVudFwtY2lyY2xlczsKK+aAp+WIpSA+IGRpc3Rpbmd1aXNoaW5nXC1iZXR3ZWVuXC10aGVcLXNleGVzOwor6YGV56aBID4gdG9cLXZpb2xhdGVcLWFcLXByb2hpYnRpdGlvblwtb3JcLWJhbjsKK+mFrOWSjCA+IHRvXC1yZXNwb25kXC10b1wtYVwtcG9lbVwtd2l0aFwtYVwtcG9lbTsKK+WgseiAgyA+IGVudGVyXC1vbmVzZWxmXC1mb3JcLWFuXC1leGFtaW5hdGlvbjsKK+WMl+WciyA+IHRoZVwtbm9ydGhlcm5cLXBhcnRcLW9mXC10aGVcLWNvdW50cnk7CivlpJblrasgPiBncmFuZHNvblwtXChzb25cLW9mXC1vbmUnJ3NcLWRhdWdodGVyXCk7CivlpKflnIsgPiBhXC1wb3dlclwtXChpZVwsXC1hXC1kb21pbmFudFwtY291bnRyeVwpOwor5o6i6KaqID4gdG9cLWdvXC1ob21lXC10b1wtdmlzaXRcLW9uZScnc1wtZmFtaWx5Owor6Zuj5LulID4gaGFyZFwtdG9cLVwocHJlZGljdFwsXC1pbWFnaW5lXCxcLWV0Y1wuXCk7CivloLHmlYggPiByZW5kZXJcLXNlcnZpY2VcLXRvXC1yZXBheVwta2luZG5lc3M7CivopqrmiJogPiBcKGFcKVwtcmVsYXRpdmVcLVwoaWVcLFwtZmFtaWx5XC1tZW1iZXJcKTsKK+eCuuacnyA+IFwodG9cLWJlXC1kb25lXClcLWJ5XC1cKGFcLWNlcnRhaW5cLWRhdGVcKTsKK+i+suabhiA+IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWNhbGVuZGFyOwor5oyJ6KqqID4gaW5cLXRoZVwtb3JkaW5hcnlcLWNvdXJzZVwtb2ZcLWV2ZW50czsKK+mAo+S7uyA+IGNvbnRpbnVlXC1pblwtXChhXC1wb2xpdGljYWxcKVwtb2ZmaWNlOwor6IeJ6K2cID4gdHlwZXNcLW9mXC1mYWNpYWxcLW1ha2V1cFwtaW5cLW9wZXJhczsKK+mWi+W6rSA+IGJlZ2luXC1hXC1cKGp1ZGljaWFsXClcLWNvdXJ0XC1zZXNzaW9uOwor5YWs5a+pID4gcHVibGljXC10cmlhbFwtXChpblwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+S9humhmCA+IGlmXC1vbmx5XC1cKGl0XC13ZXJlXC1wb3NzaWJsZVwtdG9cLlwuXC5cKTsKK+aNqOW+lyA+IHRvXC1iZVwtd2lsbGluZ1wtdG9cLXBhcnRcLXdpdGhcLVwoc3RoXCk7CivmjIHmnIkgPiBob2xkXC1cKGVnXCxcLXBhc3Nwb3J0XCxcLXZpZXdzXCxcLWV0Y1wuXCk7CivmipfniK0gPiBtYWtlXC1hXC1zdGFuZFwtYW5kXC1maWdodFwtXChhZ2FpbnN0XCk7Civnr6blrZAgPiBhXC1kb3VibGVcLWVkZ2VkXC1maW5lXC10b290aGVkXC1jb21iOwor5oqV5qmfID4gYmVcLWFcLXNwZWN1bGF0b3JcLVwocHJvZml0XC1zZWVraW5nXCk7CivmjKrlgJ8gPiB0b1wtYm9ycm93XC1tb25leVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+WusOebuCA+IHByaW1lXC1taW5pc3RlclwtXChpblwtZmV1ZGFsXC1jaGluYVwpOwor6Jmb6IWVID4gZW1wdHlcLXdyaXN0XC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7CivkuI3oq5YgPiBub1wtbWF0dGVyXC1cKHdoYXRcLFwtd2hvXCxcLWhvd1wsXC1ldGNcLlwpOwor5L+d5L+uID4gZ3VhcmFudGVlXC10b1wta2VlcFwtaW5cLWdvb2RcLXJlcGFpcjsKK+mHkemCiiA+IHBobm9tXC1wZW5oXC1cKGNhcGl0YWxcLW9mXC1jYW1ib2RpYVwpOwor5L615L2UID4gdG9cLWludmFkZVwtYW5kXC1vY2N1cHlcLVwodGVycml0b3J5XCk7Civmn6/lr4YgPiBrZXJtaXRcLVwoY29tbXVuaWNhdGlvbnNcLXByb3RvY29sXCk7CivkuqvmnIkgPiBlbmpveVwtXChyaWdodHNcLFwtcHJpdmlsZWdlc1wsXC1ldGNcLlwpOwor56au54KuID4gYVwtZ3VuXC1zYWx1dGVcLVwoZWdcLFwtMjFcLWd1blwtc2FsdXRlXCk7CivnqoHljqUgPiB0dXJraWNcLVwobWlub3JpdHlcLWdyb3VwXC1pblwtY2hpbmFcKTsKK+WuieS/nSA+IFwoYWJicmV2aWF0aW9uXClcLW1haW50YWluXC1zZWN1cml0eTsKK+Wjvem6tSA+IGJpcnRoZGF5XC1ub29kbGVzXC1cKGZvclwtbG9uZ2V2aXR5XCk7CivmtbTlrqQgPiBiYXRocm9vbVwtXChyb29tXC11c2VkXC1mb3JcLWJhdGhpbmdcKTsKK+S7pOS6uiA+IGNhdXNlXC1zb21lb25lXC10b1wtXChiZVwsXC1mZWVsXCxcLWV0Y1wpOwor6Zmk6Z2eID4gb25seVwtaWZcLVwoXC5cLlwuXCxcLW9yXC1vdGhlcndpc2VcLFwtXC5cLlwuXCk7CivmrafoppYgPiBkaXNjcmltaW5hdGlvblwtXChhZ2FpbnN0XC1zb21lb25lXCk7CivmlZfokL0gPiBkZWNsaW5lXC1cKGluXC13ZWFsdGhcLWFuZFwtcG9zaXRpb25cKTsKK+eEoemMqyA+IHd1eGlcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+aal+WQiCA+IGFncmVlXC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5aeQ5aSrID4gYnJvdGhlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivnibnljYAgPiBzcGVjaWFsXC1cKGFkbWluaXN0cmF0aXZlXClcLXJlZ2lvbjsKK+aXpeWckyA+IGphcGFuZXNlXC15ZW5cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7Civlo4Hmq6UgPiBhXC1idWlsdFwtaW5cLXdhcmRyb2JlXC1vclwtY3VwYm9hcmQ7Civpgb/mmpEgPiBiZVwtYXdheVwtZm9yXC10aGVcLXN1bW1lclwtaG9saWRheXM7CivmraXmkJYgPiBkYW5nbGluZ1wtb3JuYW1lbnRcLXdvcm5cLWJ5XC13b21lbjsKK+mCpuS6pCA+IHJlbGF0aW9uc1wtYmV0d2VlblwtdHdvXC1jb3VudHJpZXM7Civmj5DnhYkgPiB0b1wtZXh0cmFjdFwtXChvcmVcLFwtbWluZXJhbHNcLFwtZXRjXCk7CivmqYvmjqUgPiBicmlkZ2luZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivlhavmlrkgPiB0aGVcLWVpZ2h0XC1wb2ludHNcLW9mXC10aGVcLWNvbXBhc3M7CivlhafmlL8gPiBpbnRlcm5hbFwtYWZmYWlyc1wtXChvZlwtYVwtY291bnRyeVwpOwor6L+r5L2/ID4gZm9yY2VcLVwoc29tZW9uZVwtdG9cLWRvXC1zb21ldGhpbmdcKTsKK+mVt+W7iiA+IHRoZVwtbG9uZ1wtY29ycmlkb3JcLWF0XC15aVwtaGVcLXl1YW47CivlhYPluKUgPiBhXC1tYXJzaGFsXC1cKGluXC10aGVcLWFybWVkXC1mb3JjZXNcKTsKK+agoemVtyA+IFwoY29sbGVnZVwsXC11bml2ZXJzaXR5XClcLXByZXNpZGVudDsKK+mWi+WIgCA+IHRvXC1wZXJmb3JtXC1vclwtaGF2ZVwtYW5cLW9wZXJhdGlvbjsKK+i8qeWIhiA+IHNlbmlvcml0eVwtaW5cLXRoZVwtZmFtaWx5XC1vclwtY2xhbjsKK+WwvueJmSA+IGFcLXllYXJcLWVuZFwtZGlubmVyXC1mb3JcLWVtcGxveWVlczsKK+ePrei8qiA+IHJlZ3VsYXJcLXBhc3Nlbmdlclwtb3JcLWNhcmdvXC1zaGlwOwor5oqo5pOKID4gYXR0YWNrXC1cKHZlcmJhbGx5XC1vclwtaW5cLXdyaXRpbmdcKTsKK+iInuWPsCA+IFwodGhlYXRyaWNhbFwtb3JcLXBvbGl0aWNhbFwpXC1zdGFnZTsKK+eMm+i3jCA+IGRyb3BcLXNoYXJwbHlcLVwoZWdcLFwtc3RvY2tcLXByaWNlc1wpOwor5L+h5Lu2ID4gYVwtbGV0dGVyXC1cKGllXCxcLXNlbnRcLWluXC10aGVcLW1haWxcKTsKK+S9v+WRvSA+IGFcLVwoZGlwbG9tYXRpY1wtb3JcLW90aGVyXClcLW1pc3Npb247CivkuLnnmq4gPiB0aGVcLXJvb3RcLWJhcmtcLW9mXC10aGVcLXBlb255XC10cmVlOwor5a6a5YGaID4gdG9cLWhhdmVcLXNvbWV0aGluZ1wtbWFkZVwtdG9cLW9yZGVyOwor6YeN55SoID4gdG9cLXB1dFwtaW5cLWFuXC1pbXBvcnRhbnRcLXBvc2l0aW9uOwor5q+U6LO9ID4gXFthdGhsZXRpY1wtb3JcLW90aGVyXF1cLWNvbXBldGl0aW9uOwor5pWY6L+wID4gcmVsYXRlXC1cKGFcLXN0b3J5XC1vclwtaW5mb3JtYXRpb25cKTsKK+WKoOmHjSA+IGJlY29tZVx8bWFrZVwtbW9yZVwtc2VyaW91c1x8Z3JhdmVyOwor6JSa54K6ID4gdG9cLWFmZm9yZFwtXChhXC12aWV3XC1vZlwtc3RoXCxcLWVcLmdcLlwpOwor6Zu76Ie6ID4gcmFkaW9cLVwob3JcLWJyb2FkY2FzdGluZ1wpXC1zdGF0aW9uOwor56KR5p6XID4gdGhlXC1mb3Jlc3RcLW9mXC1zdGVsZXNcLVwoaW5cLXhpJydhblwpOwor5aSW54GYID4gd2FpdGFuXC1cKHRoZVwtYnVuZFwpXCxcLWluXC1zaGFuZ2hhaTsKK+itieWvpiA+IGNvbmZpcm1cLVwoc29tZXRoaW5nXC10b1wtYmVcLXRydWVcKTsKK+itsOWToSA+IG1lbWJlclwtXChvZlwtYVwtbGVnaXNsYXRpdmVcLWJvZHlcKTsKK+WgseihqCA+IGZvcm1zXC1mb3JcLXJlcG9ydGluZ1wtc3RhdGlzdGljczsKK+aYjuWgsSA+IG1pbmdcLXBhb1wtbmV3c3BhcGVyXC1cKGhvbmdcLWtvbmdcKTsKK+WJjeeoiyA+IGZ1dHVyZVwtXChjYXJlZXJcLFwtZXRjXClcLXByb3NwZWN0czsKK+eZu+mWgCA+IHBheVwtYVwtdmlzaXRcLXRvXC1zb21lb25lJydzXC1ob3VzZTsKK+mCiuawkSA+IHBlb3BsZVwtbGl2aW5nXC1vblwtdGhlXC1mcm9udGllcnM7CivpgqPmnKsgPiBpZlwtdGhhdCcnc1wtdGhlXC1jYXNlXCxcLXRoZW5cLVwoXC5cLlwuXCk7CivmlYjmh4kgPiBlZmZlY3RcLVwoZWdcLFwtZ3JlZW5ob3VzZVwtZWZmZWN0XCk7CivmrbnlvpIgPiBldmlsXC1wZXJzb25cLXdob1wtY29tbWl0c1wtY3JpbWVzOwor5pS25b6pID4gcmVjb3ZlclwtXChsb3N0XC10ZXJyaXRvcnlcLFwtZXRjXC5cKTsKK+WCsumqqCA+IGxvZnR5XC1hbmRcLXVueWllbGRpbmdcLWNoYXJhY3RlcjsKK+aWt+S6pCA+IGJyZWFrXC1vZmZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+W4s+aItiA+IFwoYmFua1wsXC1jb21wdXRlclwsXC1ldGNcLlwpXC1hY2NvdW50Owor5Zu654S2ID4gYWRtaXR0ZWRseVwtXChpdCcnc1wtdHJ1ZVwtdGhhdFwuXC5cLlwpOwor6Ie6542oID4gdGFpd2FuXC1pbmRlcGVuZGVuY2VcLVwobW92ZW1lbnRcKTsKK+S/neiLlyA+IGtlZXBcLWFcLWZ1bGxcLXN0YW5kXC1vZlwtc2VlZGxpbmdzOwor6Lev55SxID4gcm91dGluZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivlsI3nvo4gPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1hbWVyaWNhOwor5oyH5pW4ID4gXChudW1lcmljYWxcLFwtc3RhdGlzdGljYWxcKVwtaW5kZXg7CivnrYbnlasgPiBzdHJva2VzXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor56m66KWyID4gXChtaWxpdGFyeVwpXC1hdHRhY2tcLWZyb21cLXRoZVwtYWlyOwor6KGo5aCxID4gc3RhdGlzdGljYWxcLXRhYmxlc1wtYW5kXC1yZXBvcnRzOwor5ouY5oq8ID4gXChhcnJlc3RcLWFuZFwpXC10YWtlXC1pbnRvXC1jdXN0b2R5Owor5bCa5pu4ID4gaGlnaFwtb2ZmaWNpYWxcLWluXC1hbmNpZW50XC1jaGluYTsKK+iBs+eriyA+IHRvXC10b3dlclwtYWJvdmVcLVwob25cLXRvcFwtb2ZcLXN0aFwpOwor54+t57WEID4gdGVhbXNcLWFuZFwtZ3JvdXBzXC1cKGluXC1mYWN0b3JpZXM7CivkvK/mr40gPiB3aWZlXC1vZlwtZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+S4reiXpSA+IFwodHJhZGl0aW9uYWxcKVwtY2hpbmVzZVwtbWVkaWNpbmU7CivmmpfooosgPiBjYW1lcmFcLWJhZ1wtXChmb3JcLWNoYW5naW5nXC1maWxtXCk7CivomZXmsbogPiBleGVjdXRlXC1cKGFcLWNvbmRlbW5lZFwtY3JpbWluYWxcKTsKK+aWsOmuriA+IGZyZXNoXC1cKGV4cGVyaWVuY2VcLFwtZm9vZFwsXC1ldGNcLlwpOwor5Y+r6IGyID4geWVsbGluZ1wtXChzb3VuZFwtbWFkZVwtYnlcLXBlcnNvblwpOwor54+t5birID4gd2l0aGRyYXdcLXRyb29wc1wtZnJvbVwtdGhlXC1mcm9udDsKK+WTgOaCvCA+IGdyaWV2ZVwtXChtb3VyblwpXC1vdmVyXC1zYicnc1wtZGVhdGg7Civnp5HmgakgPiBjb2hlblwtXCh1XC5zXC5cLWRlZmVuY2VcLXNlY3JldGFyeVwpOwor5pWX6ZmjID4gYmVcLWRlZmVhdGVkXC1vblwtdGhlXC1iYXR0bGVmaWVsZDsKK+WMheizoCA+IGd1YXJhbnRlZVwtdG9cLXBheVwtY29tcGVuc2F0aW9uczsKK+WQjeasoSA+IHBvc2l0aW9uXC1pblwtYVwtcmFua2luZ1wtb2ZcLW5hbWVzOwor5auC5auCID4gc2lzdGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+WlieihjCA+IHRvXC1wdXJzdWVcLVwoYVwtY291cnNlXCxcLWFcLXBvbGljeVwpOwor5ZG85ZaaID4gY2FsbFwtb3V0XC1cKHNvbWVvbmUnJ3NcLW5hbWVcLFwtZXRjXCk7CivwoICBID4gdGhlXC1vcmlnaW5hbFwtZm9ybVwtZm9yXC3kuINcLXVcKzRlMDM7CivwoICAID4gdGhlXC1zb3VuZFwtbWFkZVwtYnlcLWJyZWF0aGluZ1wtaW47CivnpLrlqIEgPiBob2xkXC1hXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+WQg+WIgCA+IHBlbmV0cmF0aW9uXC1vZlwtYVwtY3V0dGluZ1wtdG9vbDsKK+WQhOS9jSA+IGV2ZXJ5Ym9keVwtXChhXC10ZXJtXC1vZlwtYWRkcmVzc1wpOwor6Z+T5ZyTID4ga29yZWFuXC13b25cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7CivloLHnpL4gPiBnZW5lcmFsXC1vZmZpY2VcLW9mXC1hXC1uZXdzcGFwZXI7Civnmbzot6EgPiB0b1wtcmlzZVwtdG9cLXBvd2VyXC1hbmRcLXBvc2l0aW9uOwor5pSv5o+0ID4gcHJvdmlkZVwtYXNzaXN0YW5jZVwtb3JcLWJhY2tpbmc7Civop4DmuKwgPiBcKHNjaWVudGlmaWNcLFwtZXRjXClcLW9ic2VydmF0aW9uOwor6YGV5b+DID4gYWdhaW5zdFwtb25lc1wtd2lsbFwtb3JcLWZlZWxpbmdzOwor5ou86Z+zID4gcGlueWluXC1cKGNoaW5lc2VcLXJvbWFuaXphdGlvblwpOwor5aKD5aSWID4gb3V0c2lkZVwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7Civmi4zpnaIgPiBub29kbGVzXC1zZXJ2ZWRcLXdpdGhcLXNveVwtc2F1Y2U7Civnm7TmjqUgPiBkaXJlY3RcLVwob3Bwb3NpdGVcLW9mXC1pbmRpcmVjdFwpOwor6Y+h6aCtID4gY2FtZXJhXC1zaG90XC1cKGluXC1hXC1tb3ZpZVwsXC1ldGNcKTsKK+iOq+S4jSA+IHRoZXJlXC1pc1wtbm9cLW9uZVwtXCh3aG9cLWRvZXNuJyd0XCk7CivpgIHkurogPiB0b1wtc2VlXC1cKG9yXC13YWxrXClcLXNvbWVvbmVcLWhvbWU7Civnmb3mlocgPiB0aGVcLXRleHRcLW9mXC1hblwtYW5ub3RhdGVkXC1ib29rOwor5bCH6aCYID4gaGlnaFwtcmFua2luZ1wtbWlsaXRhcnlcLW9mZmljZXI7CivmjozmrIogPiB3aWVsZFwtXChwb2xpdGljYWxcLFwtZXRjXC5cKVwtcG93ZXI7Civkv4PpgLIgPiB0b1wtcHJvbW90ZVwtXChhblwtaWRlYVwtb3JcLWNhdXNlXCk7CivlhazlrokgPiBcKG1pbmlzdHJ5XC1vZlwpXC1wdWJsaWNcLXNlY3VyaXR5Owor55eF5qC5ID4gYW5cLWluY29tcGxldGVseVwtY3VyZWRcLWlsbG5lc3M7Civoo5zloLEgPiBtYWtlXC1hXC1yZXBvcnRcLWFmdGVyXC10aGVcLWV2ZW50Owor5bCN6Ie6ID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtdGFpd2FuOwor5p2/6byTID4gYVwtc21hbGxcLWRydW1cLWZvclwtbWFya2luZ1wtdGltZTsKK+i0hei/sCA+IHRvXC1zYXlcLW1vcmVcLXRoYW5cLWlzXC1uZWNlc3Nhcnk7Civlr6bogpggPiBmdWxsXC1hcm1cLVwobWV0aG9kXC1vZlwtcGFpbnRpbmdcKTsKK+a3mOmHkSA+IHBhbm5pbmdcLVwoZm9yXC1wcmVjaW91c1wtbWV0YWxzXCk7CivmiIjniL4gPiBcKGFsXClcLWdvcmVcLVwodXNcLXZpY2VcLXByZXNpZGVudFwpOwor5LqC6KqqID4gdG9cLW1ha2VcLWlycmVzcG9uc2libGVcLXJlbWFya3M7CivkuI3ou4wgPiBhZ2FpbnN0XC10aGVcLWxhd1wtb3JcLWRpc2NpcGxpbmU7Civkv53llYYgPiBwcmVzZXJ2YXRpb25cLW9mXC1zb2lsXC1tb2lzdHVyZTsKK+S9nOaIsCA+IGNvbmR1Y3RcLVwobWlsaXRhcnlcLW9wZXJhdGlvbnNcKTsKK+S4luihjCA+IFxbYWJicmV2aWF0aW9uXC1mb3JcXVwtd29ybGRcLWJhbms7CivkuK3oj68gPiBjaGluYVwtXChhbHRlcm5hdGVcLWZvcm1hbFwtbmFtZVwpOwor5L615YWlID4gdG9cLW1ha2VcLVwobWlsaXRhcnlcKVwtaW5jdXJzaW9uczsKK+eQg+aqryA+IHRhYmxlXC1cKGZvclwtZ2FtZXNcLXVzaW5nXC1iYWxsc1wpOwor5LiL6Ie6ID4gc3RlcFwtZG93blwtXChmcm9tXC1vZmZpY2VcLFwtZXRjXC5cKTsKK+iyquaxoSA+IFwocG9saXRpY2FsXCxcLW1vcmFsXClcLWNvcnJ1cHRpb247CivkuK3ntJogPiBtaWRkbGVcLWxldmVsXC1cKGluXC1hXC1oaWVyYXJjaHlcKTsKK+acieeahCA+IFwodGhlcmVcLWFyZVwpXC1zb21lXC1cKHdob1wtYXJlXC5cLlwuXCk7Civok4vpo68gPiByaWNlXC13aXRoXC1tZWF0XC1hbmRcLXZlZ2l0YWJsZXM7CivkuIvnj60gPiB0b1wtY29tZVwtb3JcLWdvXC1vclwtZ2V0XC1vZmZcLXdvcms7CivljIXpircgPiBoYXZlXC1leGNsdXNpdmVcLXNlbGxpbmdcLXJpZ2h0czsKK+iuk+eQgyA+IHRvXC1jb25jZWRlXC1wb2ludHNcLVwoaW5cLWFcLWdhbWVcKTsKK+abuOaIvyA+IHN0dWR5XC1cKGlcLmVcLlwtdGhlXC1raW5kXC1vZlwtcm9vbVwpOwor6KqN6K2YID4gYmVcLWFjcXVhaW50ZWRcLXdpdGhcLVwoYVwtcGVyc29uXCk7Civljbvnl4UgPiB0b1wtcHJldmVudFwtb3JcLXRyZWF0XC1hXC1kaXNlYXNlOwor6YGy6YGyID4gXChiZVwpXC1sYXRlXC1cKHdpdGhcLWFcLXRhc2tcLFwtZXRjXC5cKTsKK/CggIUgPiBhblwtYWx0ZXJuYXRlXC1mb3JtXC1vZlwtdVwrNGVhNVwt5LqlOwor5b6354+tID4gZHVyYmFuXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7Civmk7rovKogPiBiYWxhbmNlXC1cKG9mXC1hXC13YXRjaFwtb3JcLWNsb2NrXCk7Civmk7roqK0gPiBmdXJuaXNoXC1hbmRcLWRlY29yYXRlXC1cKGFcLXJvb21cKTsKK+eGsee3miA+IGhvdGxpbmVcLVwoY29tbXVuaWNhdGlvbnNcLWxpbmtcKTsKK+azleWItiA+IGxlZ2FsXC1zeXN0ZW1cLWFuZFwtaW5zdGl0dXRpb25zOwor5rC05bmzID4gbGV2ZWxcLVwob2ZcLWFjaGlldmVtZW50XCxcLWV0Y1wuXCk7CivlpKvmrIogPiBhdXRob3JpdHlcLW92ZXJcLXRoZVwtaG91c2Vob2xkOwor5Y2w5bC8ID4gXChhYmJyZXZpYXRpb25cLWZvclwpXC1pbmRvbmVzaWE7Civororlg7kgPiBhcHByYWlzZVwtYXRcLXRoZVwtY3VycmVudFwtcmF0ZTsKK+WmueWkqyA+IGJyb3RoZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6YCy6ICMID4gYW5kXC10aGVuXC1cKHdoYXRcLWZvbGxvd3NcLW5leHRcKTsKK+mZo+e3miA+IGFcLWZyb250XC1cKGllXCxcLW1pbGl0YW50XC1ncm91cFwpOwor5q2y5pyIID4gdGhlXC15ZWFyc1wtb2ZcLWFcLXBlcnNvbicnc1wtbGlmZTsKK+atuOWxrCA+IGJlXC11bmRlclwtdGhlXC1qdXJpc2RpY3Rpb25cLW9mOwor5Zyo6YeOID4gYmVcLW91dFwtb2ZcLVwocG9saXRpY2FsXClcLW9mZmljZTsKK+W7oOaIvyA+IGFcLWJ1aWxkaW5nXC11c2VkXC1hc1wtYVwtZmFjdG9yeTsKK+WIpOaxuiA+IGp1ZGdtZW50XC1cKGJ5XC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor5Zuw6ZujID4gXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtZGlmZmljdWx0eTsKK+aOm+iZnyA+IHRvXC1yZWdpc3RlclwtXChhXC1sZXR0ZXJcLFwtZXRjXC5cKTsKK+ijnOiLlyA+IGZpbGxcLXRoZVwtZ2Fwc1wtd2l0aFwtc2VlZGxpbmdzOwor5q2m5YqbID4gXChtYWtlXC11c2VcLW9mXClcLW1pbGl0YXJ5XC1mb3JjZTsKK+aUvuWBhyA+IHRvXC1oYXZlXC1hXC1ob2xpZHlcLW9yXC12YWNhdGlvbjsKK+iIiemHjSA+IFwodGhlXC1zcG9ydFwtb2ZcKVwtd2VpZ2h0bGlmdGluZzsKK+WatOipniA+IFwoY3JpdGljaXplXCxcLWV0Y1wuXClcLWZvcmNlZnVsbHk7CivlooPlhacgPiB3aXRoaW5cLVwoYVwtY291bnRyeScnc1wpXC1ib3JkZXJzOwor6I+v5Lq6ID4gZXRobmljXC1jaGluZXNlXC1wZXJzb25cfHBlb3BsZTsKK+api+acrCA+IFwoamFwYW5lc2VcLXN1cm5hbWVcKVwtaGFzaGltb3RvOwor5Zyw55quID4gbG90XCxcLXNlY3Rpb25cLW9mXC1sYW5kXCxcLWdyb3VuZDsKK+i9ieapnyA+IFwodGFrZVwtYVwpXC10dXJuXC1mb3JcLXRoZVwtYmV0dGVyOwor5bi45aeUID4gbWVtYmVyXC1vZlwtc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+i1t+mjmyA+IHRvXC10YWtlXC1vZmZcLVwoaW5cLWFuXC1haXJwbGFuZVwpOwor6ZaL5bmVID4gdG9cLW9wZW5cLVwoYVwtY29uZmVyZW5jZVwsXC1lXC5nXC5cKTsKK+aJk+mHnSA+IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWluamVjdGlvbjsKK+eSp+isnSA+IGRlY2xpbmVcLVwoYVwtZ2lmdFwpXC13aXRoXC10aGFua3M7CivlsI3oj68gPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1jaGluYTsKK+WEgOWZqCA+IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtaW5zdHJ1bWVudDsKK+eptui+piA+IHRvXC1pbnZlc3RpZ2F0ZVwtYW5kXC1kZWFsXC13aXRoOwor5a6a572qID4gY29udmljdFwtXChzb21lb25lXC1vZlwtYVwtY3JpbWVcKTsKK+acrOmhjCA+IHRoZVwtc3ViamVjdFwtdW5kZXJcLWRpc2N1c3Npb247Civog4znsI0gPiBhXC1iYXNrZXRcLWNhcnJpZWRcLW9uXC10aGVcLWJhY2s7CivmnInpl5wgPiB0b1wtaGF2ZVwtc29tZXRoaW5nXC10b1wtZG9cLXdpdGg7CivkvobmupAgPiBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCxcLWV0Y1wpOwor542y6YeLID4gb2J0YWluXC1yZWxlYXNlXC1cKGZyb21cLXByaXNvblwpOwor5bCN5pelID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtamFwYW47CivmhovmsKMgPiBmZWVsXC1zdWZmb2NhdGVkXC1vclwtb3BwcmVzc2VkOwor5ZCM6IOeID4gZmVsbG93XC1jaXRpemVuXC1vclwtY291bnRyeW1hbjsKK+WMvumhjSA+IGFcLWhvcml6b250YWxcLWluc2NyaWJlZFwtYm9hcmQ7CivnorroqLogPiB0b1wtbWFrZVwtYVwtZGVmaW5pdGVcLWRpYWdub3NpczsKK+Wug+WAkSA+IHRoZXlcLVwoZm9yXC1pbmFuaW1hdGVcLW9iamVjdHNcKTsKK+ePvuWgtCA+IHNjZW5lXC1cKG9mXC1ldmVudFwtb3JcLWluY2lkZW50XCk7CivmhJvmg4UgPiBsb3ZlXC1cKGJldHdlZW5cLW1hblwtYW5kXC13b21hblwpOwor6K6K56+AID4gbWFrZVwtYVwtcG9saXRpY2FsXC1yZWNhbnRhdGlvbjsKK+a2ieWrjCA+IHRvXC1iZVwtYVwtc3VzcGVjdFwtXChpblwtYVwtY3JpbWVcKTsKK+Wksei2syA+IHRvXC10YWtlXC1hXC13cm9uZ1wtc3RlcFwtaW5cLWxpZmU7CivniqfnibIgPiBzYWNyaWZpY2VcLVwob25lJydzXC1saWZlXCxcLWV0Y1wuXCk7Civkup7kvK8gPiBhYmVcLVwoc2hvcnRcLWZvcm1cLWZvclwtYWJyYWhhbVwpOwor54yc5b+MID4gYmVcLXN1c3BpY2lvdXNcLWFuZFwtamVhbG91c1wtb2Y7Civpu6jlhacgPiB3aXRoaW5cLXRoZVwtXChjb21tdW5pc3RcKVwtcGFydHk7Civli5XolakgPiBcKHNvY2lhbFwtb3JcLXBvbGl0aWNhbFwpXC11bnJlc3Q7CivnjovkuLkgPiB3YW5nXC1kYW5cLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7CivmsbrlrpogPiB0b1wtZGVjaWRlXC1cKHRvXC1kb1wtc29tZXRoaW5nXCk7Civlp4rlprkgPiBcKG9sZGVyXC1hbmRcLXlvdW5nZXJcKVwtc2lzdGVyczsKK+mAvOiCliA+IGJlYXJcLWFcLWNsb3NlXC1yZXNlbWJsYW5jZVwtdG87Civlvqnlr6kgPiByZWV4YW1pbmVcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+WFpemWgCA+IGludHJvZHVjdGlvblwtXCh0b1wtYVwtc3ViamVjdFwpOwor55m96ZyyID4gd2hpdGVcLWRld1wtXCgxNXRoXC1zb2xhclwtdGVybVwpOwor6KOc6auUID4gY29tcGxlbWVudFwtXChpblwtYmxvb2RcLXNlcnVtXCk7CivoqZXmr5QgPiB0b1wtZXZhbHVhdGVcLVwoYnlcLWNvbXBhcmlzb25cKTsKK+i9iei6qyA+IFwob2ZcLWFcLXBlcnNvblwpXC10b1wtdHVyblwtcm91bmQ7CivniKrlk4cgPiBqYXZhXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5pWI5b+gID4gdm93XC1sb3lhbHR5XC1hbmRcLWRldm90aW9uXC10bzsKK+aOoei+piA+IGJ1eVwtb25cLWFcLWNvbnNpZGVyYWJsZVwtc2NhbGU7CivlvJ/lprkgPiBzaXN0ZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6Zm35pa8ID4gY2F1Z2h0XC1pblwtXChhXC1iYWRcLXNpdHVhdGlvblwpOwor5aSW5YyvID4gZm9yZWlnblwtXChjdXJyZW5jeVwpXC1leGNoYW5nZTsKK+aRmOeUsSA+IGhpZ2hcLXBvaW50c1wtXChvZlwtYVwtZG9jdW1lbnRcKTsKK+WBtOi6uiA+IHRvXC1saWVcLWRvd25cLVwob25cLW9uZScnc1wtc2lkZVwpOwor5pCc5o2VID4gaHVudFwtYW5kXC1hcnJlc3RcLVwoZnVnaXRpdmVzXCk7Civmj7nmm7ggPiByZWNpdGVcLWFcLWxlc3NvblwtZnJvbVwtbWVtb3J5Owor5bm45YWNID4gbmFycm93bHlcLWFuZFwtbHVja2lseVwtZXNjYXBlOwor5ZyL5qiZID4gZ3VvYmlhb1wtXChlbmNvZGluZ1wtc3RhbmRhcmRcKTsKK+S+v+ihgCA+IGhhdmluZ1wtYmxvb2RcLWluXC1vbmUnJ3NcLXN0b29sOwor55eF5qmfID4gaW50ZXJwcmV0YXRpb25cLW9mXC10aGVcLWNhdXNlOwor5omN6I+vID4gbGl0ZXJhcnlcLW9yXC1hcnRpc3RpY1wtdGFsZW50Owor5oyH5rOVID4gZmluZ2VyXC1tZXRob2RcLVwoaW5cLXBhaW50aW5nXCk7Civlr7bol48gPiBwcmVjaW91c1wtXChtaW5lcmFsXClcLWRlcG9zaXRzOwor5o+Q5YmNID4gdG9cLXNoaWZ0XC10b1wtYW5cLWVhcmxpZXJcLWRhdGU7CivovKnlh7ogPiBjb21lXC1mb3J0aFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5p2/6bSoID4gcHJlc3NlZFwtXChkcmllZFwpXC1zYWx0ZWRcLWR1Y2s7Civmi5TmtbcgPiBlbGV2YXRpb25cLVwoYWJvdmVcLXNlYVwtbGV2ZWxcKTsKK+WAq+aVpiA+IGxvbmRvblwtXChjYXBpdGFsXC1vZlwtZW5nbGFuZFwpOwor5qKd5qy+ID4gY2xhdXNlXC1cKG9mXC1jb250cmFjdFwtb3JcLWxhd1wpOwor55eF5L6LID4gXFttZWRpY2FsXF1cLWNhc2VcLVxbb2ZcLWlsbG5lc3NcXTsKK+WZqOWumCA+IG9yZ2FuXC1cKHBhcnRcLW9mXC1ib2R5XC10aXNzdWVcKTsKK+ePree0miA+IGNsYXNzZXNcLW9yXC1ncmFkZXNcLWluXC1zY2hvb2w7CivmhrLms5UgPiBjb25zdGl0dXRpb25cLVwob2ZcLWFcLWNvdW50cnlcKTsKK+S4jeirsSA+IHdpdGhvdXRcLWNvbmNlYWxpbmdcLWFueXRoaW5nOwor5a6J5o+SID4gcGxhY2VcLWluXC1hXC1jZXJ0YWluXC1wb3NpdGlvbjsKK+WPpOi5nyA+IHBsYWNlc1wtb2ZcLWhpc3RvcmljXC1pbnRlcmVzdDsKK+awo+mrlCA+IGdhc1wtXChpZVwsXC1nYXNlb3VzXC1zdWJzdGFuY2VcKTsKK+Wtq+WtkCA+IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtc29uXCk7CivlpZTpqLAgPiBcKG9mXC13YXZlc1wpXC10b1wtc3VyZ2VcLWZvcndhcmQ7Civpg7Xpm7sgPiBwb3N0XC1hbmRcLXRlbGVjb21tdW5pY2F0aW9uczsKK+WVj+WAmSA+IGdpdmVcLXNvbWVvbmVcLW9uZScnc1wtcmVzcGVjdHM7CivnpZbniLYgPiBncmFuZGZhdGhlclwtXChmYXRoZXInJ3NcLXNpZGVcKTsKK+axuuetliA+IFwobWFrZVwtYVwpXC1zdHJhdGVnaWNcLWRlY2lzaW9uOwor56WW5q+NID4gZ3JhbmRtb3RoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7Civph53ngbggPiBhY3VwdW5jdHVyZVwtYW5kXC1tb3hpYnVzdGlvbjsKK+S4gOaXpiA+IGluXC1jYXNlXC1cKHNvbWV0aGluZ1wtaGFwcGVuc1wpOwor5aO96L6wID4gYmlydGhkYXlcLVwob2ZcLWFuXC1vbGRcLXBlcnNvblwpOwor5b6p55SmID4gcmVjb3ZlcnlcLVwoaGVhbHRoXCxcLWVjb25vbWljXCk7CivmmYLmnJ8gPiBhXC1wZXJpb2RcLWluXC10aW1lXC1vclwtaGlzdG9yeTsKK+WQhOWcsCA+IGluXC1hbGxcLXBhcnRzXC1vZlwtXChhXC1jb3VudHJ5XCk7CivnopHmlocgPiBhblwtaW5zY3JpcHRpb25cLW9uXC1hXC10YWJsZXQ7Civlj7DljJcgPiB0YWlwZWlcLVwoY2FwaXRhbFwtb2ZcLXRhaXdhblwpOwor5rKz5YWnID4gaGFub2lcLVwoY2FwaXRhbFwtb2ZcLXZpZXRuYW1cKTsKK+mHj+WKmyA+IHRvXC1lc3RpbWF0ZVwtb25lJydzXC1zdHJlbmd0aDsKK+aWoeaXiyA+IG1lZGlhdGVcLVwoYVwtY29uZmxpY3RcLFwtZXRjXC5cKTsKK+eJjOWMviA+IGJvYXJkXC1cKGF0dGFjaGVkXC10b1wtYVwtd2FsbFwpOwor5YuV5omLID4gdG9cLWhpdFwtd2l0aFwtaGFuZHNcLW9yXC1maXN0czsKK+atpeaciCA+IHRvXC1zdHJvbGxcLWJlbmVhdGhcLXRoZVwtbW9vbjsKK+iqk+W4qyA+IHRvXC12b3dcLWJlZm9yZVwtb25lJydzXC10cm9vcHM7Civpg6jlp5QgPiBtaW5pc3RyaWVzXC1hbmRcLWNvbW1pc3Npb25zOwor6Zuj5oCqID4gXChpdCcnc1wpXC1ub1wtd29uZGVyXC1cKHRoYXRcLlwuXC5cKTsKK+WHjee1kCA+IFwobG9hblwsXC13YWdlXCxcLXByaWNlXClcLWZyZWV6ZTsKK+aWveWKoCA+IGV4ZXJ0XC1cKGVmZm9ydFwtb3JcLXByZXNzdXJlXCk7CivoppbnqpcgPiB3aW5kb3dzXC1cKG9wZXJhdGluZ1wtc3lzdGVtXCk7Civlt6jokZcgPiBtb251bWVudGFsXC1cKGxpdGVyYXJ5XClcLXdvcms7Civli5/ljJYgPiB0b1wtY29sbGVjdFwtYWxtc1wtXChidWRkaGlzbVwpOwor6YOo5LiLID4gdHJvb3BzXC11bmRlclwtb25lJydzXC1jb21tYW5kOwor5YWo56iLID4gXChkdXJpbmdcLWFuXClcLWVudGlyZVwtam91cm5leTsKK+mVt+evhyA+IGxlbmd0aHlcLVwocmVwb3J0XC1vclwtc3BlZWNoXCk7Civopb/muZYgPiB0aGVcLXdlc3RcLWxha2VcLFwtaW5cLWhhbmd6aG91Owor5pKl5byEID4gbW92ZVwtdG9cLWFuZFwtZnJvXC1cKHdpdGhcLWhhbmQ7CivooajoqJggPiBzb21ldGhpbmdcLWdpdmVuXC1hc1wtYVwtdG9rZW47Civooajoo6EgPiB0aGVcLW91dHNpZGVcLWFuZFwtdGhlXC1pbnNpZGU7CivpgLzlgrUgPiBwcmVzc1wtZm9yXC1wYXltZW50XC1vZlwtZGVidHM7CivnrYbpi5IgPiB0aGVcLXRpcFwtb2ZcLWFcLXdyaXRpbmdcLWJydXNoOwor5aCx5YiKID4gbmV3c3BhcGVyc1wtYW5kXC1wZXJpb2RpY2FsczsKK+a8lOismyA+IFwoZ2l2ZVwpXC1hXC1zcGVlY2hcLW9yXC1sZWN0dXJlOwor5ZyL54i2ID4gZmF0aGVyXHxmb3VuZGVyXC1vZlwtYVwtbmF0aW9uOwor5L6d6Z2gID4gcmVseVwtb25cLVwoZm9yXC1zdXBwb3J0XCxcLWV0Y1wpOwor5omA6ZW3ID4gaGVhZFwtb2ZcLWFuXC1pbnN0aXR1dGVcLFwtZXRjXC47Civoi6XlubIgPiBhXC1jZXJ0YWluXC1udW1iZXJcfGFtb3VudFwtb2Y7Civnq7bpgbggPiBydW5cLWZvclwtXChlbGVjdG9yYWxcKVwtb2ZmaWNlOwor5pC25YWIID4gdG9cLXJ1c2hcLVwodG9cLWRvXC1zdGhcLXVyZ2VudFwpOwor5YGc55WZID4gc3RheVwtc29tZXdoZXJlXC10ZW1wb3JhcmlseTsKK+eXheagqiA+IGRpc2Vhc2VkXC1vclwtaW5mZWN0ZWRcLXBsYW50Owor5L+X56ixID4gYmVcLWNvbW1vbmx5XC1yZWZlcnJlZFwtdG9cLWFzOwor6KGM5bCHID4gYmVcLWFib3V0XC10b1wtXChkb1wtc29tZXRoaW5nXCk7CivotrPnkIMgPiBmb290YmFsbFwtXChicml0aXNoXC1lbmdsaXNoXCk7Civog4zohIogPiB0aGVcLWJhY2tcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor5oqX5pOKID4gcmVzaXN0XC1cKGFcLW1pbGl0YXJ5XC1hdHRhY2tcKTsKK+Wwi+apnyA+IHRvXC1sb29rXC1mb3JcLWFuXC1vcHBvcnR1bml0eTsKK+WvpuazgSA+IHdoYXRcLWlzXC1hY3R1YWxseVwtaGFwcGVuaW5nOwor5LiB6ZuyID4gZGluZ1wteXVuXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivmoYjmnb8gPiBrbmVhZGluZ1wtb3JcLWNob3BwaW5nXC1ib2FyZDsKK+S/neWuiCA+IFwocG9saXRpY2FsbHlcKVwtY29uc2VydmF0aXZlOwor5LiN6YCBID4gZG9uJyd0XC1ib3RoZXJcLXRvXC1zZWVcLW1lXC1vdXQ7CivnpZ7pgZMgPiBzaGludG9cLVwoamFwYW5lc2VcLXJlbGlnaW9uXCk7CivlsIflsLEgPiBhY2NlcHRcLVwoYVwtYml0XC1yZWx1Y3RhbnRseVwpOwor5oe35oqxID4gXCh3aXRoaW5cLXNvbWVvbmUnJ3NcKVwtZW1icmFjZTsKK+WPs+mCiiA+IHJpZ2h0XC1cKGFzXC1vcHBvc2VkXC10b1wtbGVmdFwpOwor56S+6KuWID4gZWRpdG9yaWFsXC1cKGluXC1hXC1uZXdzcGFwZXJcKTsKK+WutuW4uCA+IHRoZVwtZGFpbHlcLWxpZmVcLW9mXC1hXC1mYW1pbHk7Civmm7jogZYgPiBhXC1ncmVhdFwtY2FsbGlncmFwaHlcLW1hc3RlcjsKK+izh+acrCA+IGNhcGl0YWxcLVwoYXNcLWluXC1jYXBpdGFsaXNtXCk7CivpoqjnkLQgPiBvcmdhblwtXChtdXNpY2FsXC1pbnN0cnVtZW50XCk7CivlrZfluJYgPiBjb3B5Ym9va1wtXChmb3JcLWNhbGxpZ3JhcGh5XCk7CivlronliIYgPiBub3RcLWdvXC1iZXlvbmRcLW9uZScnc1wtYm91bmRzOwor5pqX56yRID4gbGF1Z2hcLWluXC1cKHVwXClcLW9uZScnc1wtc2xlZXZlOwor576O546yID4gbWVpXC1saW5nXC1cKGFcLXBlcnNvbicnc1wtbmFtZVwpOwor56Kn6KGAID4gYmxvb2RcLXNoZWRcLWluXC1hXC1qdXN0XC1jYXVzZTsKK+a0quajriA+IGh1blwtc2VuXC1cKGNhbWJvZGlhblwtbGVhZGVyXCk7CivnqJ/lkYogPiByZXBvcnRcLVwodG9cLW9uZScnc1wtc3VwZXJpb3JcKTsKK+mBuumrlCA+IHJlbWFpbnNcLVwob2ZcLWFcLWRlYWRcLXBlcnNvblwpOwor6YG/6aKoID4gdGFrZVwtc2hlbHRlclwtZnJvbVwtdGhlXC13aW5kOwor56aP5bu6ID4gZnVqaWFuXC1cKHByb3ZpbmNlXC1vZlwtY2hpbmFcKTsKK+WLmOiqpCA+IHRvXC1jb3JyZWN0XC1wcmludGluZ1wtZXJyb3JzOwor5Y2H57SaID4gdG9cLWVzY2FsYXRlXC1cKGluXC1pbnRlbnNpdHlcKTsKK+W8t+iqvyA+IHRvXC1lbXBoYXNpemVcLVwoYVwtc3RhdGVtZW50XCk7CivogIzkuJQgPiBub3RcLW9ubHlcLVwuXC5cLlwtYnV0XC1hbHNvXC1cLlwuXC5cLjsKK+mBt+mDvSA+IHRvXC1tb3ZlXC10aGVcLWNhcGl0b2xcLVwoY2l0eVwpOwor5LiN5L2GID4gbm90XC1vbmx5XC1cKFwuXC5cLlwtYnV0XC1hbHNvXC5cLlwuXCk7CivljIXnlKIgPiBtYWtlXC1hXC1wcm9kdWN0aW9uXC1jb250cmFjdDsKK+WMl+acnSA+IHRoZVwtbm9ydGhlcm5cLWR5bmFzdGllc1wtXChhOwor5YyF5pSsID4gdW5kZXJ0YWtlXC10aGVcLXdob2xlXC10aGluZzsKK+WLnuaVmSA+IHJlZWR1Y2F0aW9uXC10aHJvdWdoXC1sYWJvcjsKK+WNiuWgtCA+IGhhbGZcLW9mXC1hXC1nYW1lXC1vclwtY29udGVzdDsKK+eZvOmBlCA+IGRldmVsb3BlZFwtXChjb3VudHJ5XCxcLWV0Y1wuXCk7CivngInpnLIgPiB0b1wtbGVha1wtb3V0XC1cKGluZm9ybWF0aW9uXCk7CivmrbLmlbggPiBhZ2VcLVwobnVtYmVyXC1vZlwteWVhcnNcLW9sZFwpOwor6ZaL6KitID4gb2ZmZXJcLVwoZ29vZHNcLW9yXC1zZXJ2aWNlc1wpOwor5buj5p2xID4gZ3Vhbmdkb25nXC1wcm92aW5jZVwsXC1jaGluYTsKK+aUvuW/gyA+IHRvXC1zZXRcLW9uZScnc1wtbWluZFwtYXRcLXJlc3Q7Civpra/ov4UgPiBuYW1lXC1vZlwtYW5cLWF1dGhvclwsXC1sdVwteHVuOwor6YGZ5pybID4gdG9cLWxvb2tcLWludG9cLXRoZVwtZGlzdGFuY2U7Civoo5zotrMgPiBicmluZ1wtdXBcLXRvXC1mdWxsXC1zdHJlbmd0aDsKK+eGrOWknCA+IHN0YXlcLXVwXC1sYXRlXC1vclwtYWxsXC1uaWdodDsKK+mrlOmplyA+IHRvXC1leHBlcmllbmNlXC1mb3JcLW9uZXNlbGY7CivmkpXmr4AgPiB0ZWFyXC11cFwtXChhXC1jb250cmFjdFwsXC1ldGNcKTsKK+WCvumKtyA+IHRvXC1kdW1wXC1cKGdvb2RzXCxcLXByb2R1Y3RzXCk7CivnnIvms5UgPiB3YXlcLW9mXC1sb29raW5nXC1hdFwtYVwtdGhpbmc7Civpl5zms6ggPiBmb2xsb3dcLVwoYW5cLWlzc3VlXClcLWNsb3NlbHk7CivliZ3llYQgPiB0YXBcLVwob25cLWFcLWRvb3JcLW9yXC13aW5kb3dcKTsKK+i+qOaekCA+IGRpZmZlcmVudGlhdGVcLWFuZFwtYW5hbHlzZTsKK+Wci+eUoiA+IG1hZGVcLWluXC1vbmUnJ3NcLW93blwtY291bnRyeTsKK+eZveaXjyA+IHRoZVwtYmFpXC1cKHBhaVwpXC1uYXRpb25hbGl0eTsKK+eXheeZkiA+IHJlY292ZXJcLVwoZnJvbVwtYW5cLWlsbG5lc3NcKTsKK+WvrOmZkCA+IGV4dGVuZFwtXChhXC1kZWFkbGluZVwsXC1ldGNcLlwpOwor6KGo5oWLID4gbWFrZVwta25vd25cLW9uZScnc1wtcG9zaXRpb247CivlrqPoqpMgPiBzd2VhclwtYW5cLW9hdGhcLVwob2ZcLW9mZmljZVwpOwor5ouc5pybID4gY2FsbFwtdG9cLXBheVwtb25lJydzXC1yZXNwZWN0Owor56+H5bmFID4gXCh0YWtlXC11cFwtb3JcLWRldm90ZVwpXC1zcGFjZTsKK+mmluebuCA+IFwoamFwYW5lc2VcKVwtcHJpbWVcLW1pbmlzdGVyOwor5oqK5byPID4gcGVyc29uXC1za2lsbGVkXC1pblwtYVwtdHJhZGU7Civmt5jnsa4gPiBiYXNrZXRcLVwoZm9yXC13YXNoaW5nXC1yaWNlXCk7CivnlKXlpbMgPiBuaWVjZVwtXChzaXN0ZXInJ3NcLWRhdWdodGVyXCk7CivmvKLkurogPiBoYW5cLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5Ly65qmfID4gdG9cLXdhdGNoXC1mb3JcLW9uZScnc1wtY2hhbmNlOwor6aC46YOoID4gdGhlXC1uZWNrXC1hcmVhXC1vZlwtdGhlXC1ib2R5Owor6IOM5b2xID4gYVwtdmlld1wtb2ZcLXNvbWVib2R5JydzXC1iYWNrOwor54uh6LO0ID4gdG9cLWRlbnlcLVwodGhyb3VnaFwtc29waGlzbVwpOwor6K6K6LOjID4gc2VsbFwtb2ZmXC1cKG9uZScnc1wtcHJvcGVydHlcKTsKK+axuuizvSA+IGZpbmFsc1wtXChvZlwtYVwtY29tcGV0aXRpb25cKTsKK+adv+abuCA+IHdyaXRpbmdcLW9uXC10aGVcLWJsYWNrYm9hcmQ7Civnj4Dmlq8gPiBwZXJ0aFwtXChjaXR5XC1pblwtYXVzdHJhbGlhXCk7CivmhJvmhpAgPiBzaG93XC10ZW5kZXJcLWFmZmVjdGlvblwtZm9yOwor5pq05ryyID4gcmlzZVwtc3VkZGVubHlcLWFuZFwtc2hhcnBseTsKK+mMhOWFsSA+IHRvXC10YWtlXC1kb3duXC1hXC1jb25mZXNzaW9uOwor5pys5a62ID4gYVwtbWVtYmVyXC1vZlwtdGhlXC1zYW1lXC1jbGFuOwor6Z2i6IeoID4gYmVcLWZhY2VkXC13aXRoXC1cKGFcLXByb2JsZW1cKTsKK+axoOa5ryA+IGxhcmdlXC1wb29sXC1pblwtYVwtYmF0aGhvdXNlOwor542O5Yu1ID4gcmV3YXJkXC1cKGFzXC1lbmNvdXJhZ2VtZW50XCk7CivpoIblt64gPiBcKHRyYWRlXC1vclwtYnVkZ2V0XClcLXN1cnBsdXM7CivliJ3pgbggPiBcKHVzXClcLXByaW1hcmllc1wtXChlbGVjdGlvblwpOwor5aCx6Yq3ID4gc3VibWl0XC1hblwtZXhwZW5zZVwtYWNjb3VudDsKK+WPlOWPlCA+IGZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+WfjumXnCA+IGFyZWFcLW91dHNpZGVcLWFcLWNpdHlcLWdhdGU7CivpgYvnrpcgPiBcKG1hdGhlbWF0aWNhbFwpXC1vcGVyYXRpb247Civlt57plbcgPiBnb3Zlcm5vclwtXChvZlwtYVwtdXNcLXN0YXRlXCk7Civpg6jlsawgPiBhZmZpbGlhdGVkXC10b1wtYVwtbWluaXN0cnk7CivlvJXmk44gPiBlbmdpbmVcLVwodHJhbnNsaXRlcmF0aW9uXCk7CivnmbvoqJggPiB0b1wtcmVnaXN0ZXJcLVwob25lJydzXC1uYW1lXCk7CivmqZ/ntYQgPiBmbGlnaHRcLWNyZXdcLVwob25cLWFcLXBsYW5lXCk7Civpgbzlr6cgPiBsaWFvbmluZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivnhafluLggPiBcKGJ1c2luZXNzXCxcLWV0Y1wpXC1hc1wtdXN1YWw7CivmkqvmkbggPiBnZW50bHlcLWNhcmVzc1wtYW5kXC1zdHJva2U7CivliIfmlrcgPiBjdXRcLW9mZlwtXChhXC1zdXBwbHlcLFwtZXRjXC5cKTsKK+W7uuWItiA+IG9yZ2FuaXphdGlvbmFsXC1zdHJ1Y3R1cmU7CivpgIDlvbkgPiByZXRpcmVcLWZyb21cLXRoZVwtbWlsaXRhcnk7CivpgZXlj40gPiB0b1wtdmlvbGF0ZVwtXChhXC1sYXdcLFwtZVwuZ1wuXCk7Civluavlu5ogPiBoZWxwXC1pblwtdGhlXC1tZXNzXC1raXRjaGVuOwor6KOc56iFID4gcGF5XC1hXC10YXhcLW9uZVwtaGFzXC1ldmFkZWQ7CivopbLmk4ogPiBcKG1ha2VcLWFcKVwtc3VycHJpc2VcLWF0dGFjazsKK+eZvea3qCA+IFwob2ZcLXNraW5cKVwtZmFpclwtYW5kXC1jbGVhcjsKK+W3oeafpSA+IHRvXC1nb1wtYXJvdW5kXC1hbmRcLWluc3BlY3Q7CivlhbXmm7ggPiBhXC1ib29rXC1vblwtdGhlXC1hcnRcLW9mXC13YXI7CivnlKLpircgPiBwcm9kdWN0aW9uXC1hbmRcLW1hcmtldGluZzsKK+mXjOWwviA+IGFwcGVuZGl4XC1cKGluXC1odW1hblwtYm9keVwpOwor5bmF5ZOhID4gYVwtY291bnRyeScnc1wtc3VyZmFjZVwtYXJlYTsKK+aSpeS7mCA+IGFwcHJvcHJpYXRlXC1zdW1cLW9mXC1tb25leTsKK+Wci+eHnyA+IHN0YXRlXC1ydW5cLVwoY29tcGFueVwsXC1ldGNcKTsKK+aQjeWksSA+IGFcLVwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWxvc3M7CivovqblhawgPiBoYW5kbGVcLW9mZmljaWFsXC1idXNpbmVzczsKK+S9memchyA+IFwoZWFydGhxdWFrZVwpXC1hZnRlcnNob2NrczsKK+eVmueulSA+IGFcLWJhbWJvb1wtb3JcLXdpY2tlclwtc2Nvb3A7CivnqoHpoa8gPiBtYWtlXC1zb21ldGhpbmdcLXN0YW5kXC1vdXQ7Civmj6HlipsgPiBcKHN0cmVuZ3RoXC1vZlwtb25lJydzXClcLWdyaXA7Civppqzoo6EgPiBtYWxpXC1cKG5hbWVcLW9mXC1hXC1jb3VudHJ5XCk7Civnl4XmhYsgPiBtb3JiaWRcLW9yXC1hYm5vcm1hbFwtc3RhdGU7CivmjqfliLYgPiB0b1wtXChoYXZlXClcLWNvbnRyb2xcLVwob3ZlclwpOwor5L2z6IO9ID4gY2Fub25cLVwoamFwYW5lc2VcLWNvbXBhbnlcKTsKK+eXheWutiA+IGFcLXBhdGllbnRcLWFuZFwtaGlzXC1mYW1pbHk7CivnlpHmg5EgPiBcKGFcLXNlbnNlXC1vZlwpXC11bmNlcnRhaW50eTsKK+aJk+eJjCA+IHRvXC1wbGF5XC1tYWhqb25nXC1vclwtY2FyZHM7CivlgZrlrqIgPiB0b1wtYmVcLWFcLWd1ZXN0XC1vclwtdmlzaXRvcjsKK+ihjOS9vyA+IGV4ZXJjaXNlXC1cKGFcLXJpZ2h0XCxcLWV0Y1wuXCk7CivnrYbmjLogPiBcKHN0YW5kaW5nXClcLXZlcnlcLXN0cmFpZ2h0Owor5a6J56WeID4gY2FsbVwtXChzb290aGVcKVwtdGhlXC1uZXJ2ZXM7CivogbPogqkgPiB0b1wtc2hydWdcLW9uZScnc1wtc2hvdWxkZXJzOwor5rex56m6ID4gZGVlcFwtc3BhY2VcLVwob3V0ZXJcLXNwYWNlXCk7CivllJDntI0gPiB0YW5uZXJcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor5ZGI6KuLID4gdG9cLXN1Ym1pdFwtXCh0b1wtc3VwZXJpb3JzXCk7CivkuIroqLQgPiBhcHBlYWxcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+aHt+W/tSA+IHRvXC1jaGVyaXNoXC10aGVcLW1lbW9yeVwtb2Y7Civnibnpu54gPiBjaGFyYWN0ZXJpc3RpY1wtXChmZWF0dXJlXCk7CivlrZfmr40gPiBsZXR0ZXJcLVwob2ZcLXRoZVwtYWxwaGFiZXRcKTsKK+WQjOisgCA+IHRvXC1jb25zcGlyZVwtd2l0aFwtc29tZW9uZTsKK+ahg+WckiA+IHRhb3l1YW5cLVwoY2l0eVwtaW5cLXRhaXdhblwpOwor5rGf6Z2iID4gdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC1yaXZlcjsKK+eikemhjSA+IHRoZVwtdG9wXC1wYXJ0XC1vZlwtYVwtdGFibGV0Owor5Ly05aWPID4gdG9cLWFjY29tcGFueVwtXChtdXNpY2FsbHlcKTsKK+WPs+e/vCA+IFwocG9saXRpY2FsbHlcKVwtcmlnaHRcLXdpbmc7CivmtZnmsZ8gPiB6aGVqaWFuZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivorZjoposgPiBrbm93bGVkZ2VcLWFuZFwtZXhwZXJpZW5jZTsKK+iyt+W4syA+IHRvXC1zaG93XC1yZXNwZWN0XC1cKGZvclwtc2JcKTsKK+aal+eurSA+IGF0dGFja1wtYnlcLWFcLWhpZGRlblwtZW5lbXk7Civmt7HlnLMgPiBzaGVuemhlblwtXChjaXR5XC1pblwtY2hpbmFcKTsKK+eoi+W6piA+IGRlZ3JlZVwtXChsZXZlbFwtb3JcLWV4dGVudFwpOwor5aSn6ZecID4gXChyZWFjaFwtYVwpXC1jcml0aWNhbFwtcG9pbnQ7CivpoK3niYggPiBcKG5ld3NwYXBlcicnc1wpXC1mcm9udFwtcGFnZTsKK+aYpeiBryA+IHNwcmluZ1wtZmVzdGl2ZWxcLWNvdXBsZXRzOwor5Lul5L6GID4gc2luY2VcLVwoYVwtcHJldmlvdXNcLWV2ZW50XCk7Civok67oirEgPiBsb3R1c1wtXChjb21wdXRlclwtY29tcGFueVwpOwor5LiN5pelID4gd2l0aGluXC10aGVcLW5leHRcLWZld1wtZGF5czsKK+irkuinoyA+IFwocmVhY2hcKVwtYW5cLXVuZGVyc3RhbmRpbmc7Civok4vnq6AgPiB0b1wtYWZmaXhcLWFcLXNlYWxcLVwodG9cLXN0aFwpOwor6Ke46Zu7ID4gdG9cLWdldFwtYW5cLWVsZWN0cmljXC1zaG9jazsKK+S4u+WLlSA+IFwodG9cLXRha2VcLXRoZVwpXC1pbml0aWF0aXZlOwor6Ki06KqqID4gdGVsbFwtXCh0b1wtYW5vdGhlclwtcGVyc29uXCk7CivnuL3ntbEgPiBwcmVzaWRlbnRcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+WgsemgrSA+IG1hc3RoZWFkXC1cKG9mXC1hXC1uZXdzcGFwZXI7CivljZfmspkgPiBuYW5zaGFcLVwoc3ByYXRseVwpXC1pc2xhbmRzOwor6YCa6YGTID4gXChjb21tdW5pY2F0aW9uc1wpXC1jaGFubmVsOwor5pS/57i+ID4gXChwb2xpdGljYWxcKVwtYWNoaWV2ZW1lbnRzOwor5b+M5oGoID4gaGF0ZVwtXChkdWVcLXRvXC1lbnZ5XCxcLWV0Y1wpOwor6Zu554G9ID4gZGlzYXN0ZXJcLWNhdXNlZFwtYnlcLWhhaWw7Civlh7roqKogPiB2aXNpdFwtYVwtZm9yZWlnblwtY291bnRyeTsKK+aWkeaWkSA+IGZ1bGxcLW9mXC1zdGFpbnNcLW9yXC1zcG90czsKK+ilv+ijnSA+IFwod2VzdGVyblwtc3R5bGVcKVwtY2xvdGhlczsKK+WKoOayuSA+IHRvXC1tYWtlXC1hblwtZXh0cmFcLWVmZm9ydDsKK+WLn+aNkCA+IHRvXC1zb2xpY3RcLWNvbnRyaWJ1dGlvbnM7CivnmrToo4IgPiBjaGFwXC1cKGxpcHNcLFwtc2tpblwsXC1ldGNcLlwpOwor6KaL6IGeID4gd2hhdFwtb25lXC1zZWVzXC1hbmRcLWhlYXJzOwor5Y2X5LqsID4gbmFuamluZ1wtXChjaXR5XC1pblwtY2hpbmFcKTsKK+imj+e0hCA+IHRlcm1zXC1cKG9mXC1hblwtYWdyZWVtZW50XCk7Civmrbjlv4MgPiBjb252ZXJ0ZWRcLXRvXC1cKHJlbGlnaW9uXCk7CivpgLzmrbsgPiBob3VuZFwtc29tZWJvZHlcLXRvXC1kZWF0aDsKK+e1seayuyA+IFwocG9saXRpY2FsXClcLXJ1bGVcLVwob3ZlclwpOwor6KOc6KqyID4gbWFrZVwtdXBcLWFcLW1pc3NlZFwtbGVzc29uOwor6YCZ5qijID4gdGhpc1wtXChraW5kXC1vZlwsXC1zb3J0XC1vZlwpOwor6YGU5oiQID4gdG9cLXJlYWNoXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+eZvuiIrCA+IGluXC1odW5kcmVkXC1hbmRcLW9uZVwtd2F5czsKK+aOiOioiCA+IHRvXC1jb25maWRlXC1hXC1wbGFuXC10b1wtc2I7CivloLHmm4kgPiBoZXJhbGRcLXRoZVwtYnJlYWtcLW9mXC1kYXk7CivliKnluIIgPiBcImxhaVwtc2VlXCJcLVwobHVja3lcLW1vbmV5XCk7CivlgbTph40gPiBwbGFjZVwtZXh0cmFcLWVtcGhhc2lzXC1vbjsKK+WgseaBqSA+IHBheVwtYVwtZGVidFwtb2ZcLWdyYXRpdHVkZTsKK+W5q+WtkCA+IG91dGVyXC1cKG9mXC1jYWJiYWdlXCxcLWV0Y1wpOwor6Ieq6LGqID4gXChmZWVsXC1hXC1zZW5zZVwtb2ZcKVwtcHJpZGU7CivpmLLli5kgPiBcKHBlcnRhaW5pbmdcLXRvXClcLWRlZmVuc2U7Civmpa3nuL4gPiBvdXRzdGFuZGluZ1wtYWNoaWV2ZW1lbnQ7CivnlZnoqIAgPiB0b1wtbGVhdmVcLW9uZScnc1wtY29tbWVudHM7CivlubTkvoYgPiBvdmVyXC10aGVcLWxhc3RcLVwuXC5cLlwteWVhcnM7Civplovmi40gPiBiZWdpblwtc2hvb3RpbmdcLVwoYVwtZmlsbVwpOwor5YiG5LmLID4gXChpbmRpY2F0aW5nXC1hXC1mcmFjdGlvblwpOwor562U6KydID4gdG9cLWV4cHJlc3NcLW9uZScnc1wtdGhhbmtzOwor562G6KuHID4gY29udmVyc2F0aW9uXC1ieVwtd3JpdGluZzsKK+eRqum6lyA+IG1hbGlcLVwoYVwtcGVyc29uJydzJydcLW5hbWVcKTsKK+eXh+eLgCA+IHN5bXB0b21cLVwob2ZcLWFuXC1pbGxuZXNzXCk7CivkvZTpoJggPiB0b1wtb2NjdXB5XC1cKGFcLXRlcnJpdG9yeVwpOwor5YKZ5paZID4gZ2V0XC10aGVcLW1hdGVyaWFsc1wtcmVhZHk7CivlnablhYsgPiB0YW5rXC1cKG1pbGl0YXJ5XC12ZWhpY2xlXCk7Civlm5vlt50gPiBzaWNodWFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+iyqemBiyA+IHRvXC10cmFuc3BvcnRcLVwoZm9yXC1zYWxlXCk7Civku4rora8gPiBtb2Rlcm5cLWxhbmd1YWdlXC12ZXJzaW9uOwor5oqV5pS+ID4gdG9cLXB1dFwtaW5cLVwoY2lyY3VsYXRpb25cKTsKK+eXheWAkiA+IGJlXC1kb3duXC13aXRoXC1hblwtaWxsbmVzczsKK+aLt+WVjyA+IHRvXC1xdWVzdGlvblwtdmlhXC10b3J0dXJlOwor5oKj6ZujID4gdHJpYWxzXC1hbmRcLXRyaWJ1bGF0aW9uczsKK+mNm+eFiSA+IHRvXC1kb1wtcGh5c2ljYWxcLXRyYWluaW5nOwor6JuZ5rOzID4gXChzd2ltbWluZ1wpXC1icmVhc3RzdHJva2U7CivmgI7purwgPiBcKGludGVycm9nYXRpdmVcLXByb25vdW5cKTsKK+mnkOWuiCA+IFwobWFuXC1hXC1wb3N0XC1hbmRcKVwtZGVmZW5kOwor5rqr5ZKMID4gbW9kZXJhdGVcLVwocG9saWN5XCxcLWV0Y1wuXCk7CivlkKboqo0gPiB0b1wtZGVjbGFyZVwtdG9cLWJlXC11bnRydWU7CivmsZ/opb8gPiBqaWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+aEm+aSqyA+IHRvXC1zaG93XC10ZW5kZXJcLWNhcmVcLWZvcjsKK+WPg+iIhyA+IHRvXC1wYXJ0aWNpcGF0ZVwtXChpblwtc3RoXCk7CivmuK/kurogPiBob25nXC1rb25nXC1wZXJzb25cfHBlb3BsZTsKK+m7g+aysyA+IHllbGxvd1wtcml2ZXJcLVwoaHVhbmdcLWhlXCk7CivmsZ/omIcgPiBqaWFuZ3N1XC1wcm92aW5jZVwsXC1jaGluYTsKK+S7u+WRvSA+IHRvXC1hcHBvaW50XC1hbmRcLW5vbWluYXRlOwor6aSF5a2QID4gbWFpemVcLW9yXC1taWxsZXRcLXBhbmNha2U7CivmnJ/mlLcgPiBlbmRcLW9mXC10ZXJtXC1leGFtaW5hdGlvbjsKK+e4vemhjSA+IHRvdGFsXC1cKGFtb3VudFwtb3JcLXZhbHVlXCk7CivorILoqp4gPiBcKGdyYW1tYXRpY2FsXClcLXByZWRpY2F0ZTsKK+S4reaXrCA+IG1pZGRsZVwtdGhpcmRcLW9mXC1hXC1tb250aDsKK+S4i+aXrCA+IGxhc3RcLXRoaXJkXC1vZlwtdGhlXC1tb250aDsKK+iyneWFiyA+IGJha2VyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+S6guWQgyA+IHRvXC1lYXRcLWluZGlzY3JpbWluYW50bHk7CivmganmgKggPiBcKGZlZWxpbmdcLW9mXClcLXJlc2VudG1lbnQ7CivkuI3lpJYgPiBub3RcLWJleW9uZFwtdGhlXC1zY29wZVwtb2Y7CivmnI3liJEgPiBzZXJ2ZVwtYVwtcHJpc29uXC1zZW50ZW5jZTsKK+iOq+mdniA+IGNhblwtaXRcLWJlXC1wb3NzaWJsZVwtdGhhdDsKK+W7o+ilvyA+IGd1YW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5aWU54CJID4gXChvZlwtdG9ycmVudHNcKVwtcnVzaFwtZG93bjsKK+mBuueVmSA+IFwobGVhdmVcLW9yXC1iZVwtYVwpXC1sZWdhY3k7CivluLjopo8gPiBjb252ZW50aW9uYWxcLVwod2VhcG9uc1wpOwor6K2J5Yi4ID4gXChmaW5hbmNpYWxcKVwtc2VjdXJpdGllczsKK+W+gOW4uCA+IGhhYml0dWFsbHlcLWluXC10aGVcLXBhc3Q7CivlppblhrYgPiBwcmV0dHlcLWFuZFwtZmxpcnRhdGlvdXM7Civpnanlkb0gPiBcKHBvbGl0aWNhbFwpXC1yZXZvbHV0aW9uOwor6KuW5aOHID4gZm9ydW1cLVwoZm9yXC1kaXNjdXNzaW9uXCk7Civlo5/mlrcgPiBlbmpveVwtbWFya2V0XC1kb21pbmFuY2U7CivniaHkuLkgPiBwZW9ueVwtXCh0eXBlXC1vZlwtZmxvd2VyXCk7CivloLHnqIUgPiBkZWNsYXJlXC1kdXRpYWJsZVwtZ29vZHM7Civlhazoqo0gPiBwdWJsaWNseVwta25vd25cLVwodG9cLWJlXCk7CivnmbzooaggPiB0b1wtaXNzdWVcLVwoYVwtc3RhdGVtZW50XCk7Civpm7vlmaggPiBcKGVsZWN0cmljYWxcKVwtYXBwbGlhbmNlOwor5q635YukID4gcG9saXRlbHlcLFwtc29saWNpdG91c2x5Owor5Yiw5pyfID4gYmVjb21lXC1kdWVcLVwoZWdcLFwtbG9hbnNcKTsKK+eXhemZoiA+IGFcLXNwZWNpYWxpemVkXC1ob3NwaXRhbDsKK+eXheixoSA+IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+asuuWHjCA+IHRvXC1idWxseVwtYW5kXC1odW1pbGlhdGU7CivpgY3lj4ogPiB0b1wtZXh0ZW5kXC1cKGV2ZXJ5d2hlcmVcKTsKK+ewvee9siA+IHRvXC1zaWduXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+WgseWwjiA+IHRvXC1jb3ZlclwtXChyZXBvcnRcKVwtbmV3czsKK+W4g+aclyA+IGVuZ2xpc2hcLXN1cm5hbWVcLFwtYnJvd247CivmqJnmupYgPiBcKGFuXC1vZmZpY2lhbFwpXC1zdGFuZGFyZDsKK+mAgOS8kSA+IHJldGlyZW1lbnRcLVwoZnJvbVwtd29ya1wpOwor6Lao6ZmEID4gdG9cLWluZ3JhdGlhdGlvblwtb25zZWxmOwor562G6LehID4gYVwtcGVyc29uJydzXC1oYW5kd3JpdGluZzsKK+eboeWKmyA+IGRvXC1vbmUnJ3NcLWJlc3RcLVwoZWZmb3J0XCk7CivnrYboqJggPiB0YWtlXC1kb3duXC1cKGluXC13cml0aW5nXCk7CivopKXlrZAgPiBjb3R0b25cLXBhZGRlZFwtbWF0dHJlc3M7Civnl4Xni4AgPiBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7CivlhJjlv6sgPiBhc1wtcXVpY2tseVwtYXNcLXBvc3NpYmxlOwor5r+A5piCID4gYXJvdXNlZFwtdG9cLWluZGlnbmF0aW9uOwor56ul6KmxID4gY2hpbGRyZW4nJ3NcLWZhaXJ5XC10YWxlczsKK+aPkOS6pCA+IHN1Ym1pdFwtXChhXC1yZXBvcnRcLFwtZXRjXCk7CivkvpvogbcgPiBob2xkXC1hblwtb2ZmaWNlXC1vclwtcG9zdDsKK+S+huiHqiA+IHRvXC1jb21lXC1mcm9tXC1cKGFcLXBsYWNlXCk7Civnl4XlvoEgPiBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7Civlrproqp4gPiBhdHRyaWJ1dGl2ZVwtXChtb2RpZmllclwpOwor5ryC5rWBID4gY2FycmllZFwtYnlcLXRoZVwtY3VycmVudDsKK+ajhOasiiA+IHRvXC1hYnN0YWluXC1mcm9tXC12b3Rpbmc7CivmjY/lkIggPiB0b1wtYWN0XC1hc1wtYVwtZ29cLWJldHdlZW47CivnlLLmnb8gPiBkZWNrXC1cKG9mXC1hXC1ib2F0XCxcLWV0Y1wuXCk7CivmjY/kvLAgPiB0b1wtYWN0XC1hc1wtYVwtZ29cLWJldHdlZW47CivmooXmtL4gPiB0aGVcLW1laVwtbGFuZmFuZ1wtc2Nob29sOwor5raJ6YGOID4gZm9yZFwtXChhXC1zdHJlYW1cLFwtcml2ZXJcKTsKK+mrlOWFpyA+IGludGVybmFsXC1cKHRvXC10aGVcLWJvZHlcKTsKK+S7u+iBtyA+IGhvbGRcLWFuXC1vZmZpY2VcLW9yXC1wb3N0Owor6ISK5qSOID4gYmFja1wtXChvZlwtYVwtdmVydGlicmF0ZVwpOwor5Lyv54i2ID4gZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+S/neWuiSA+IGVuc3VyZVwtcHVibGljXC1zZWN1cml0eTsKK+S4iui6qyA+IHVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1ib2R5Owor5a2X5q61ID4gXChudW1lcmljXCxcLWRhdGRhXClcLWZpZWxkOwor5Lim6IiJID4gZGV2ZWxvcFwtc2ltdWx0YW5lb3VzbHk7CivkuIDomZ8gPiBmaXJzdFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+WvqeWIpCA+IHB1dFwtXChzb21lb25lXClcLXRvXC10cmlhbDsKK+WQkOiVgyA+IGFuY2llbnRcLW5hbWVcLWZvclwtdGliZXQ7CivmuKzlrpogPiB0b1wtc3VydmV5XC1hbmRcLWV2YWx1YXRlOwor5rOw576FID4gXChlbmdsaXNoXC1zdXJuYW1lXClcLXR5bG87CivlkJ7ogbIgPiB0b1wtc3dhbGxvd1wtb25lJydzXC1jcmllczsKK+iyoeacgyA+IGZpbmFuY2VcLWFuZFwtYWNjb3VudGluZzsKK+S6pOaYkyA+IFwoYnVzaW5lc3NcKVwtdHJhbnNhY3Rpb247Civnj77lvbkgPiBcKG1pbGl0YXJ5XClcLWFjdGl2ZVwtZHV0eTsKK+awkemBuCA+IGRlbW9jcmF0aWNhbGx5XC1lbGVjdGVkOwor5Lyv5LyvID4gZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+a1t+aLlCA+IGhlaWdodFwtYWJvdmVcLXNlYVwtbGV2ZWw7Civnp5HmioAgPiBzY2llbmNlXC1hbmRcLXRlY2hub2xvZ3k7Civku7vlhY0gPiB0b1wtYXBwb2ludFwtYW5kXC1kaXNtaXNzOwor5LqC5a+rID4gdG9cLXdyaXRlXC13aXRob3V0XC1iYXNpczsKK+WmluiJtyA+IHByZXR0eVwtYW5kXC1mbGlydGF0aW91czsKK+mbtumMoiA+IGNoYW5nZVwtXChzYWlkXC1vZlwtbW9uZXlcKTsKK+S4jeacjSA+IG5vdFwtYWNjZXB0XC1cKHNvbWV0aGluZ1wpOwor6by75YWSID4gYVwtaG9sZVwtaW5cLWFuXC1pbXBsZW1lbnQ7CivmhJ/lmIYgPiB0b1wtc2lnaFwtXCh3aXRoXC1mZWVsaW5nXCk7CivljJboo50gPiBcKG9mXC1hY3RvcnNcKVwtdG9cLW1ha2VcLXVwOwor5LqR5Y2XID4geXVubmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acjeWujCA+IHNlcnZlXC1vdXRcLVwoYVwtc2VudGVuY2VcKTsKK+m7g+WxsSA+IG10XC5cLWh1YW5nXC1cKGh1YW5nXC1zaGFuXCk7Civlj6Tms6IgPiBndWJvXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivnjJzmi7MgPiBhXC1maW5nZXJcLWd1ZXNzaW5nXC1nYW1lOwor5Yqp6KmeID4gcGFydGljbGVcLVwoZ3JhbW1hdGljYWxcKTsKK+iuk+WdkCA+IHRvXC1naXZlXC11cFwtb25lJydzXC1zZWF0Owor5rK55YO5ID4gb2lsXC1cKHBldHJvbGV1bVwpXC1wcmljZTsKK+W3qOmhjSA+IGFcLWh1Z2VcLXN1bVwtXChvZlwtbW9uZXlcKTsKK+WllOaUviA+IGJvbGRcLWFuZFwtdW5yZXN0cmFpbmVkOwor5b6X5oSPID4gXChiZVwpXC1wcm91ZFwtb2ZcLW9uZXNlbGY7CivlpZTlv5kgPiBiZVwtYnVzeVwtcnVzaGluZ1wtYWJvdXQ7CivliZvnm7QgPiB1cHJpZ2h0XC1hbmRcLW91dHNwb2tlbjsKK+W3oemCjyA+IGJlXC1vblwtXChwb2xpY2VcKVwtcGF0cm9sOwor6ZmN56aPID4gYmxlc3NpbmdzXC1mcm9tXC1oZWF2ZW47Civngrjol6UgPiBleHBsb3NpdmVcLVwoc3Vic3RhbmNlXCk7CivlpKLmg7MgPiB0b1wtZHJlYW1cLW9mXC1cKGluXC12YWluXCk7CivpmLLnqbogPiBhbnRpXC1haXJjcmFmdFwtZGVmZW5zZTsKK+WFiOmAsiA+IGFkdmFuY2VkXC1cKHRlY2hub2xvZ3lcKTsKK+WllOWRvSA+IHJ1c2hcLWFib3V0XC1vblwtZXJyYW5kczsKK+ino+axuiA+IHRvXC1zZXR0bGVcLVwoYVwtZGlzcHV0ZVwpOwor6Ziy5rK7ID4gXChwcmV2ZW50aW9uXC1hbmRcKVwtY3VyZTsKK+WIhuapnyA+IFwodGVsZXBob25lXClcLWV4dGVuc2lvbjsKK+ecvuacmyA+IHBlb3BsZScnc1wtZXhwZWN0YXRpb25zOwor55m957OWID4gXChyZWZpbmVkXClcLXdoaXRlXC1zdWdhcjsKK+aTgeaItCA+IHRvXC1zdXBwb3J0XC1cKGFcLXBlcnNvblwpOwor6KGo6YGUID4gdG9cLXZvaWNlXC1cKGFuXC1vcGluaW9uXCk7CivloLHmmYIgPiBnaXZlXC10aGVcLWNvcnJlY3RcLXRpbWU7CivpmqjlkowgPiBhbWlhYmxlXC1cKGRpc3Bvc2l0aW9uXCk7Civlh73mjoggPiBjb3JyZXNwb25kZW5jZVwtY291cnNlOwor6L+35oiAID4gdG9cLWJlXC1pbmZhdHVhdGVkXC13aXRoOwor5ouX6Zm3ID4gZ2VvbG9naWNhbFwtZGVwcmVzc2lvbjsKK+WFjeeWqyA+IGltbXVuaXR5XC1cKHRvXC1kaXNlYXNlXCk7CivlhaznhLYgPiBcKGRvXC1zb21ldGhpbmdcKVwtb3Blbmx5Owor5aCF5oyBID4gdG9cLWNvbnRpbnVlXC11cGhvbGRpbmc7Civlh7rlt64gPiBiZVwtb25cLWFcLWJ1c2luZXNzXC10cmlwOwor5ry46YCyID4gcHJvZ3Jlc3NcLXN0ZXBcLWJ5XC1zdGVwOwor6ZmQ5Yi2ID4gXChpbXBvc2VcKVwtcmVzdHJpY3Rpb25zOwor5bm05YidID4gYmVnaW5uaW5nXC1vZlwtdGhlXC15ZWFyOwor562G6YyEID4gcHV0XC1kb3duXC1cKGluXC13cml0aW5nXCk7CivmjInohIggPiBmZWVsXC1cKHRha2VcKVwtdGhlXC1wdWxzZTsKK+aLm+iBmCA+IHRha2VcLWpvYlwtYXBwbGljYXRpb25zOwor5YWJ5beeID4ga3dhbmdqdVwtXChzb3V0aFwta29yZWFcKTsKK+W3peWVhiA+IGluZHVzdHJ5XC1hbmRcLWNvbW1lcmNlOwor5r6z5rSyID4gYXVzdHJhbGlhXC1cKGNvbnRpbmVudFwpOwor55qu5YWSID4gXChkb3VnaFwsXC1ldGNcLlwpd3JhcHBlcnM7CivnlJjogoUgPiBnYW5zdVwtcHJvdmluY2VcLFwtY2hpbmE7CivlronplpIgPiBwZWFjZWZ1bFwtYW5kXC1jYXJlZnJlZTsKK+iJseW3qCA+IHZlcnlcLWRpZmZpY3VsdFwtXCh0YXNrXCk7CivooLvmqasgPiBydWRlXC1hbmRcLXVucmVhc29uYWJsZTsKK+ewveWtlyA+IHRvXC1zaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor5a6J6YGpID4gcXVpZXRcLWFuZFwtY29tZm9ydGFibGU7CivmuKzoia8gPiB0b1wtc3VydmV5XC1hbmRcLW1lYXN1cmU7Civnj63ou4ogPiByZWd1bGFyXC1idXNcLVwoc2VydmljZVwpOwor5qGI55SxID4gbWFpblwtcG9pbnRzXC1vZlwtYVwtY2FzZTsKK+iytuisqyA+IGJhbmlzaFwtZnJvbVwtdGhlXC1jb3VydDsKK+m7g+mtmiA+IHllbGxvd1wtY3JvYWtlclwtXChmaXNoXCk7CivouqvkuJYgPiBvbmUnJ3NcLWxpZmVcLWV4cGVyaWVuY2U7CivmirHmgaggPiBoYXZlXC1hXC1nbmF3aW5nXC1yZWdyZXQ7Civoh6rlj6QgPiBcKHNpbmNlXClcLWFuY2llbnRcLXRpbWVzOwor56yG5paXID4gcm91bmRcLWJvdHRvbWVkXC1iYXNrZXQ7CivkuozomZ8gPiAyXC1uZFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+iyoee2kyA+IGZpbmFuY2VcLWFuZFwtZWNvbm9taWNzOwor5Li76KqeID4gXChncmFtbWF0aWNhbFwpXC1zdWJqZWN0Owor5ZiW5ZiWID4gdG9cLWNsaWNrXC1vbmUnJ3NcLXRvbmd1ZTsKK+m8u+elliA+IHRoZVwtZWFybGllc3RcLWFuY2VzdG9yOwor5oiA5oSbID4gdG9cLWhhdmVcLWFcLWxvdmVcLWFmZmFpcjsKK+aatOi3jCA+IHN0ZWVwXC1mYWxsXC1cKGluXC1wcmljZVwpOwor6K6T6ZaLID4gdG9cLWdldFwtb3V0XC1vZlwtdGhlXC13YXk7CivlsLHkvr8gPiBhdFwtXCh5b3VyXClcLWNvbnZlbmllbmNlOwor5Y+v6LqrID4gdG9cLWZpdFwtd2VsbFwtXChjbG90aGVzXCk7Civnp5HnoJQgPiBcKHNjaWVudGlmaWNcKVwtcmVzZWFyY2g7Civlj6/orIIgPiBpdFwtY291bGRcLWV2ZW5cLWJlXC1zYWlkOwor6K6T6LevID4gdG9cLW1ha2VcLXdheVwtXChmb3JcLXN0aFwpOwor5oi25Li7ID4gaGVhZFwtb2ZcLXRoZVwtaG91c2Vob2xkOwor6aCS6KGMID4gaXNzdWVcLWZvclwtZW5mb3JjZW1lbnQ7CivmuZbljZcgPiBodW5hblwtcHJvdmluY2VcLFwtY2hpbmE7CivppJjmlbggPiBcKG51bWVyaWNhbFwpXC1yZW1haW5kZXI7CivkuI3nrqEgPiBub1wtbWF0dGVyXC1cKHdoYXRcLFwtaG93XCk7CivniYjpnaIgPiBzcGFjZVwtb2ZcLWFcLXdob2xlXC1wYWdlOwor5LiN56aBID4gY2FuJyd0XC1oZWxwXC1cKGRvaW5nXC1zdGg7CivmmI/ov7cgPiB0b1wtbG9zZVwtY29uc2Npb3VzbmVzczsKK+WQkOe1riA+IHRoZVwtb3BlbmluZ1wtb2ZcLWFcLWJvbGw7Civpi6rlubMgPiBzcHJlYWRcLW91dFwtXChtYXRlcmlhbFwpOwor5LiN55CGID4gcmVmdXNlXC10b1wtYWNrbm93bGVkZ2U7Civororoh4kgPiBzdWRkZW5seVwtdHVyblwtaG9zdGlsZTsKK+a1t+aWryA+IGhheWVzXC1cKG1pY3JvY29tcHV0ZXJcKTsKK+adseW+tyA+IFwoZm9ybWVyXClcLWVhc3RcLWdlcm1hbnk7CivmmpfnpIEgPiBzdWJtZXJnZWRcLXJlZWZcLVwocm9ja1wpOwor6LK35aW9ID4gdG9cLWluZ3JhdGlhdGVcLW9uZXNlbGY7Civmmpfnlr4gPiB1bm1lbnRpb25hYmxlXC1kaXNlYXNlOwor6IGz5YuVID4gdG9cLWNyZWF0ZVwtYVwtc2Vuc2F0aW9uOwor5p2/5YezID4gd29vZGVuXC1iZW5jaFwtb3JcLXN0b29sOwor5LiN5pqHID4gaGF2ZVwtbm9cLXRpbWVcLVwoZm9yXC1zdGg7CivmgrLmhqQgPiBncmllZlwtYW5kXC1pbmRpZ25hdGlvbjsKK+eJueeUoiA+IHNwZWNpYWxcLWxvY2FsXC1wcm9kdWN0Owor6JWt5qKdID4gXChlY29ub21pY1wpXC1kZXByZXNzaW9uOwor5q6v6JGsID4gZnVuZXJhbFwtYW5kXC1pbnRlcm1lbnQ7Civlkb3ku6QgPiBcKGFuXClcLW9yZGVyXC1vclwtY29tbWFuZDsKK+a1geS6oSA+IHRvXC1cKGZvcmNlXC1pbnRvXClcLWV4aWxlOwor5Y2R5rGhID4gZGVzcGljYWJsZVwtYW5kXC1maWx0aHk7CivmmrTljZIgPiBkaWVcLW9mXC1zdWRkZW5cLWlsbG5lc3M7CivpgLzoppYgPiBsb29rXC1hdFwtZnJvbVwtY2xvc2VcLXVwOwor5pe65pyIID4gYnVzeVwtXChidXNpbmVzc1wpXC1tb250aDsKK+WIl+i7iiA+IHRyYWluXC1cKHJhaWx3YXlcLXRlcm1cKTsKK+WPi+WlvSA+IGZyaWVuZGx5XC1cKHJlbGF0aW9uc1wpOwor5quD6YKKID4gdG9cLWxpZVwtb25cLW9uZScnc1wtc2lkZTsKK+WItuijgSA+IFwoZWNvbm9taWNcKVwtc2FuY3Rpb25zOwor56S+5LqkID4gXChzb2NpYWxcKVwtaW50ZXJhY3Rpb247Civmk43ooYwgPiBcKHN0dWRlbnQnJ3NcKVwtYmVoYXZpb3I7Civlp6Xlp6UgPiBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7Civnt6jntYQgPiBvcmdhbml6ZVwtaW50b1wtZ3JvdXBzOwor6Kaq6L+RID4gZ2V0XC1jbG9zZVwtdG9cLXNvbWVvbmU7CivntZDoq5YgPiBcKHJlYWNoXC1hXClcLWNvbmNsdXNpb247Civpl6Hov7AgPiBleHBvdW5kXC1cKGFcLXBvc2l0aW9uXCk7Civlv4Plr5IgPiBiZVwtdmVyeVwtZGlzYXBwb2ludGVkOwor57WE6KOdID4gYXNzZW1ibGVcLWFuZFwtaW5zdGFsbDsKK+iqk+atuyA+IHRvXC1wbGVkZ2VcLW9uZScnc1wtbGlmZTsKK+WfjumEiSA+IGNpdHlcLWFuZFwtY291bnRyeXNpZGU7CivljZTlrpogPiBcKHJlYWNoXC1hblwpXC1hZ3JlZW1lbnQ7CivmsLTln58gPiBcKHRlcnJpdG9yaWFsXClcLXdhdGVyczsKK+WLu+aVtCA+IG5lYXRcLWFuZFwtd2VsbFwtc3BhY2VkOwor5YWn6ZajID4gXChnb3Zlcm5tZW50XClcLWNhYmluZXQ7Civlu6DniYwgPiBicmFuZFwtXChvZlwtYVwtcHJvZHVjdFwpOwor5aW25aW2ID4gcGF0ZXJuYWxcLWdyYW5kbW90aGVyOwor57eo5qyhID4gb3JkZXJcLW9mXC1hcnJhbmdlbWVudDsKK+aVmeaOiCA+IHVuaXZlcnNpdHlcLXByb2Zlc3NvcjsKK+WLouW/hSA+IGlzXC1ib3VuZFwtdG9cLVwoaGFwcGVuXCk7CivloqjmsYEgPiBwcmVwYXJlZFwtY2hpbmVzZVwtaW5rOwor5aSn5bCHID4gYVwtZ2VuZXJhbFwtb3JcLWFkbWlyYWw7CivmsKPkurogPiB0b1wtZ2V0XC1zb21lb25lXC1hbmdyeTsKK+WMheWgtCA+IGJvb2tcLWFcLXdob2xlXC10aGVhdHJlOwor5YWt6JmfID4gNnRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor6Kme5b2ZID4gXChsaXN0XC1vZlwpXC12b2NhYnVsYXJ5Owor5pSd5b2xID4gdG9cLXRha2VcLWFcLXBob3RvZ3JhcGg7Civovq/nmb0gPiBvZmZlclwtYW5cLWV4cGxhbmF0aW9uOwor5o6h6KiqID4gY292ZXJcLVwoYVwtbmV3c1wtc3RvcnlcKTsKK+WFteermSA+IGFybXlcLXNlcnZpY2VcLXN0YXRpb247Civou43osrsgPiBtaWxpdGFyeVwtZXhwZW5kaXR1cmU7Civmk5rmgokgPiBhY2NvcmRpbmdcLXRvXC1yZXBvcnRzOwor5YmN5bm0ID4gdGhlXC15ZWFyXC1iZWZvcmVcLWxhc3Q7Civoo5zoibIgPiBjb21wbGVtZW50YXJ5XC1jb2xvdXI7CivmlLvli6IgPiBcKG1pbGl0YXJ5XClcLW9mZmVuc2l2ZTsKK+WIhuaTlCA+IHNoYXJlXC1yZXNwb25zaWJpbGl0eTsKK+mWi+eZvCA+IGV4cGxvaXRcLVwoYVwtcmVzb3VyY2VcKTsKK+att+S7oyA+IHN1Y2Nlc3NpdmVcLWR5bmFzdGllczsKK+i/keaXpSA+IGluXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+WbnuioqiA+IFwocGF5XC1hXClcLXJldHVyblwtdmlzaXQ7Civnl4XoroogPiBwYXRob2xvZ2ljYWxcLWNoYW5nZXM7Civlh4zmmaggPiBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+exoOe1sSA+IFwoaW5cKVwtZ2VuZXJhbFwtXCh0ZXJtc1wpOwor5qez54uAID4gY2VydGlmaWNhdGVcLW9mXC1tZXJpdDsKK+WAmumHjSA+IHRvXC1yZWx5XC1oZWF2aWx5XC11cG9uOwor5oqK6YWSID4gcmFpc2VcLW9uZScnc1wtd2luZVwtY3VwOwor6LuN55SoID4gXChmb3JcKVwtbWlsaXRhcnlcLVwodXNlXCk7Civkv53ph40gPiB0YWtlXC1jYXJlXC1vZlwtb25lc2VsZjsKK+WgseS7hyA+IHRvXC1yZXZlbmdlXC1cKG9uZXNlbGZcKTsKK+aKhOi6qyA+IHRvXC1zZWFyY2hcLVwoYVwtcGVyc29uXCk7Civmo4nopZYgPiBjb3R0b25cLXBhZGRlZFwtamFja2V0Owor5YSY5pepID4gYXNcLWVhcmx5XC1hc1wtcG9zc2libGU7Civln7nkv64gPiB0b1wtcmVwYWlyXC1lYXJ0aHdvcmtzOwor5bCK6YeNID4gdG9cLXZhbHVlXC1cKHNvbWV0aGluZ1wpOwor55eF54G2ID4gZm9jdXNcLVwob2ZcLWluZmVjdGlvblwpOwor5L616KWyID4gdG9cLWludmFkZVwtYW5kXC1hdHRhY2s7CivnsKHmnLQgPiBzaW1wbGVcLWFuZFwtdW5hZG9ybmVkOwor6aeB6YGLID4gdHJhbnNwb3J0XC1ieVwtbGlnaHRlcjsKK+S+i+iogCA+IGludHJvZHVjdG9yeVwtcmVtYXJrczsKK+WCmeafpSA+IGZvclwtZnV0dXJlXC1yZWZlcmVuY2U7CivlronpgLggPiBlYXN5XC1hbmRcLWNvbWZvcnRhYmxlOwor55eF5oi/ID4gd2FyZFwtXChvZlwtYVwtaG9zcGl0YWxcKTsKK+ihqOW9sCA+IGNpdGVcLVwoaW5cLWRpc3BhdGNoZXNcKTsKK+aLnOacgyA+IHBheVwtYW5cLW9mZmljaWFsXC1jYWxsOwor5bCI56iLID4gc3BlY2lhbFwtcHVycG9zZVwtdHJpcDsKK+WBveW5oyA+IGNvdW50ZXJmZWl0XC1jdXJyZW5jeTsKK+aJjeeVpSA+IGFiaWxpdHlcLWFuZFwtc2FnYWNpdHk7CivlsaTmrKEgPiBhcnJhbmdlbWVudFwtb2ZcLWlkZWFzOwor562G5rOVID4gdGVjaG5pcXVlXC1vZlwtd3JpdGluZzsKK+S6pOmAmiA+IFwoYXV0b21vYmlsZVwpXC10cmFmZmljOwor5ZWf56iLID4gc2V0XC1vdXRcLW9uXC1hXC1qb3VybmV5Owor55Wr5aCxID4gcGljdG9yaWFsXC1cKG1hZ2F6aW5lXCk7CivkvrXmk74gPiB0b1wtaW52YWRlXC1hbmRcLWhhcmFzczsKK+Wxj+W5lSA+IFwodHZcLW9yXC1tb3ZpZVwpXC1zY3JlZW47CivnkIPntrIgPiBuZXRcLVwoZm9yXC1iYWxsXC1nYW1lc1wpOwor5ryi5YyWID4gY2hpbmVzZVwtbG9jYWxpemF0aW9uOwor5bCN5bOZID4gbXV0dWFsXC1jb25mcm9udGF0aW9uOwor576O6LuNID4gdXNcLWFybXlcfGFybWVkXC1mb3JjZXM7CivkvY3mlrwgPiBiZVwtc2l0dWF0ZWRcLVwoaW5cLFwtYXRcKTsKK+iuiumguyA+IGZyZXF1ZW5jeVwtY29udmVyc2lvbjsKK+WWruWtlyA+IGluZGl2aWR1YWxcLWNoYXJhY3RlcjsKK+a4heaXqSA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor6IOM5b+DID4gYVwtc2xlZXZlbGVzc1wtZ2FybWVudDsKK+aItuWPoyA+IHJlZ2lzdGVyZWRcLXJlc2lkZW5jZTsKK+acrOenkSA+IHVuZGVyZ3JhZHVhdGVcLWNvdXJzZTsKK+S+v+S4rSA+IGF0XC1vbmUnJ3NcLWNvbnZlbmllbmNlOwor5a+25YqNID4gYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7Civphp7ph4AgPiBtdWxsXC1vdmVyXC1cKGFuXC1pc3N1ZVwpOwor5pqX6JmfID4gc2VjcmV0XC1zaWduYWxcLVwoc2lnblwpOwor6ICB54i6ID4gbWF0ZXJuYWxcLWdyYW5kZmF0aGVyOwor54+t5pyfID4gc2NoZWR1bGVcLVwoZm9yXC1mbGlnaHQ7CivosrfmlrkgPiBidXllclwtXChpblwtY29udHJhY3RzXCk7CivlronlqJwgPiBhbm5hXC1cKHBlcnNvbicnc1wtbmFtZVwpOwor6LKs5oiQID4gZ2l2ZVwtc29tZWJvZHlcLWFcLXRhc2s7CivlpJrpurwgPiBob3dcLVwod29uZGVyZnVsXCxcLWV0Y1wpOwor6YWs6KydID4gdG9cLXRoYW5rXC13aXRoXC1hXC1naWZ0Owor5b6A6L+UID4gdG9cLWdvXC1iYWNrXC1hbmRcLWZvcnRoOwor5YyF6YeRID4gY292ZXJcLXdpdGhcLWdvbGRcLWxlYWY7CivmmpHnhrEgPiBob3RcLVwoc3VtbWVyXClcLXdlYXRoZXI7CivkuI3mm74gPiBuZXZlclwtXChoYXZlXC1kb25lXC1zdGg7CivnuL3pg6ggPiBnZW5lcmFsXC1oZWFkcXVhcnRlcnM7CivosrblgLwgPiB0b1wtYmVjb21lXC1kZXZhbHVhdGVkOwor6YG66aq4ID4gXChkZWFkXClcLWh1bWFuXC1yZW1haW5zOwor6YG66aqoID4gXChkZWFkXClcLWh1bWFuXC1yZW1haW5zOwor6YWs562UID4gdG9cLXRoYW5rXC13aXRoXC1hXC1naWZ0Owor6aGe5o6oID4gdG9cLXJlYXNvblwtYnlcLWFuYWxvZ3k7Civlkozlpb0gPiB0b1wtYmVjb21lXC1yZWNvbmNpbGVkOwor5pys5ZyfID4gb25lJydzXC1uYXRpdmVcLWNvdW50cnk7Civkup7lgKsgPiBhYXJvblwtXChhXC1tYW4nJ3NcLW5hbWVcKTsKK+e+nuaBpSA+IFwoYVwtZmVlbGluZ1wtb2ZcKVwtc2hhbWU7Civlk4jkvZsgPiBoYXJ2YXJkXC1cKHVuaXZlcnNpdHlcKTsKK+aakeacnyA+IHN1bW1lclwtdmFjYXRpb25cLXRpbWU7CivlkbzlloogPiBzaG91dFwtXChzbG9nYW5zXCxcLWV0Y1wpOwor57m957SbID4gaW5cLXJpb3RvdXNcLXByb2Z1c2lvbjsKK+WRiOWgsSA+IHRvXC1cKHN1Ym1pdFwtYVwpXC1yZXBvcnQ7CivljYrnmb0gPiBmaWZ0eVwtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor8KCBpSA+IHRoZVwtaG9ybnNcLW9mXC1hXC1zaGVlcDsKK+aYgueEtiA+IHVwcmlnaHRcLWFuZFwtdW5hZnJhaWQ7CivpgoToqqogPiB0b1wtYWRkXC1cKGluXC1zcGVha2luZ1wpOwor5pu05YqgID4gbW9yZVwtXCh0aGFuXC1zdGhcLWVsc2VcKTsKK+eIuueIuiA+IHBhdGVybmFsXC1ncmFuZGZhdGhlcjsKK+S4jeWLnSA+IGNhbm5vdFwtYmVhclwtb3JcLXN0YW5kOwor5pWX6IODID4gc3BvaWxcLW9uZScnc1wtYXBwZXRpdGU7Civororlv4MgPiBjZWFzZVwtdG9cLWJlXC1mYWl0aGZ1bDsKK+S4iuWAiyA+IGZpcnN0XC1cKG9mXC10d29cLXBhcnRzXCk7CivlpZTmtYEgPiBmbG93XC1hdFwtZ3JlYXRcLXNwZWVkOwor5pel5paHID4gamFwYW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+aSnuimiyA+IHRvXC1tZWV0XC1ieVwtYWNjaWRlbnQ7Civlt67poY0gPiBiYWxhbmNlXC1cKGZpbmFuY2lhbFwpOwor5Y2K5oiqID4gaGFsZlwtXChvZlwtYVwtc2VjdGlvblwpOwor5Ymb57qUID4gXChqdXN0XClcLWFcLW1vbWVudFwtYWdvOwor5bug56SmID4gZmFjdG9yaWVzXC1hbmRcLW1pbmVzOwor54ax54OIID4gd2FybVwtXCh3ZWxjb21lXCxcLWV0Y1wpOwor6L6v6K23ID4gc3BlYWtcLWluXC1kZWZlbmNlXC1vZjsKK+Wkp+aJuSA+IGxhcmdlXC1xdWFudGl0aWVzXC1vZjsKK+e2geelqCA+IGtpZG5hcFwtXChmb3JcLXJhbnNvbVwpOwor55m96YqFID4gY29wcGVyXC1uaWNrZWxcLWFsbG95Owor57Wx56ixID4gY29sbGVjdGl2ZWx5XC1jYWxsZWQ7Civlu6LmsKMgPiB3YXN0ZVwtXChleGhhdXN0XClcLWdhczsKK+WMheWtkCA+IHN0ZWFtZWRcLXN0dWZmZWRcLWJ1bjsKK+e0heiRiSA+IHJlZFwtYXV0dW1uYWxcLWxlYXZlczsKK+eZvuiyqCA+IGdlbmVyYWxcLW1lcmNoYW5kaXNlOwor6ayi6auuID4gaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+WEmOmHjyA+IGFzXC1tdWNoXC1hc1wtcG9zc2libGU7Civouqvpq5ggPiBcKGFcLXBlcnNvbicnc1wpXC1oZWlnaHQ7CivmlZnlrbggPiB0ZWFjaGVyXC1hbmRcLXN0dWRlbnQ7CivphJnkurogPiB5b3VyXC1odW1ibGVcLXNlcnZhbnQ7CivmlYXlrq4gPiB0aGVcLWltcGVyaWFsXC1wYWxhY2U7CivmlL/lsYAgPiBwb2xpdGljYWxcLXNpdHVhdGlvbjsKK+edv+aZuiA+IHdpc2VcLWFuZFwtZmFyc2lnaHRlZDsKK+ijnOinkiA+IHN1cHBsZW1lbnRhcnlcLWFuZ2xlOwor6YCy5pS7ID4gYXR0YWNrXC1cKG1pbGl0YXJpbHlcKTsKK+aTuuW8hCA+IG1vdmVcLWJhY2tcLWFuZFwtZm9ydGg7CivpgY3luIMgPiBiZVwtZm91bmRcLWV2ZXJ5d2hlcmU7CivmlLnlkI0gPiB0b1wtY2hhbmdlXC1vbmVzXC1uYW1lOwor6KOc6ICDID4gbWFrZVwtdXBcLWV4YW1pbmF0aW9uOwor5pKt5byEID4gb3JkZXJcLXN1YmplY3RcLWFib3V0Owor5bm05bqVID4gdGhlXC1lbmRcLW9mXC10aGVcLXllYXI7CivntITmq4MgPiBhcmtcLW9mXC10aGVcLWNvdmVuYW50Owor5bmr5belID4gaGVscFwtd2l0aFwtZmFybVwtd29yazsKK+WgseW7oiA+IHJlcG9ydFwtYXNcLXdvcnRobGVzczsKK+aKrOmgrSA+IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor5Z+35o6MID4gd2llbGRcLVwocG93ZXJcLFwtZXRjXC5cKTsKK+WFteasiiA+IG1pbGl0YXJ5XC1sZWFkZXJzaGlwOwor6YC85L6bID4gZXh0b3J0XC1hXC1jb25mZXNzaW9uOwor6ZaL5pS+ID4gbGlmdFwtXChyZXN0cmljdGlvbnNcKTsKK+eZu+aciCA+IGdvXC1cKHVwXClcLXRvXC10aGVcLW1vb247CivluaPlgLwgPiB2YWx1ZVwtb2ZcLWFcLWN1cnJlbmN5Owor5Yaw5aC0ID4gc2thdGluZ1wtb3JcLWljZVwtcmluazsKK+ebruWJjSA+IGF0XC10aGVcLXByZXNlbnRcLXRpbWU7CivnrYbora8gPiB3cml0dGVuXC10cmFuc2xhdGlvbjsKK+ethuippiA+IHdyaXR0ZW5cLWV4YW1pbmF0aW9uOwor6Zec5YiHID4gYmVcLWRlZXBseVwtY29uY2VybmVkOwor6LWw6ZaLID4gZ2V0XC1vdXRcLW9mXC10aGVcLXdheVwhOwor6KaG5LqhID4gZmFsbFwtXChvZlwtYW5cLWVtcGlyZVwpOwor6KOB5pa3ID4gY29uc2lkZXJcLWFuZFwtZGVjaWRlOwor57SA5YWDID4gYmVnaW5uaW5nXC1vZlwtYW5cLWVyYTsKK+WFteWcmCA+IGxhcmdlXC1taWxpdGFyeVwtdW5pdDsKK+i+puS6iyA+IHRvXC1oYW5kbGVcLVwoYWZmYWlyc1wpOwor57O+5YGPID4gdG9cLWNvcnJlY3RcLWFuXC1lcnJvcjsKK+aJjeitmCA+IGFiaWxpdHlcLWFuZFwtaW5zaWdodDsKK+aMieeQhiA+IGFjY29yZGluZ1wtdG9cLXJlYXNvbjsKK+i8lOW5oyA+IGZyYWN0aW9uYWxcLWN1cnJlbmN5Owor5pCt5Ly0ID4gdHJhdmVsXC13aXRoXC1hbm90aGVyOwor5ZyL5peXID4gZmxhZ1wtXChvZlwtYVwtY291bnRyeVwpOwor6LuN5pS/ID4gYXJteVwtYW5kXC1nb3Zlcm5tZW50Owor55eF5rOBID4gc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+i9ieWQkSA+IGNoYW5nZVwtb2ZcLWRpcmVjdGlvbjsKK+eZveWNtyA+IGJsYW5rXC1leGFtaW5lXC1wYXBlcjsKK+WFq+S7mSA+IHRoZVwtZWlnaHRcLWltbW9ydGFsczsKK+i8g+WkpyA+IGNvbXBhcmF0aXZlbHlcLWxhcmdlOwor562G566XID4gZG9cLWFcLXN1bVwtaW5cLXdyaXRpbmc7Civoo4HlpaogPiBjb25zaWRlclwtYW5kXC1kZWNpZGU7Civmj5Dlh7ogPiB0b1wtcmFpc2VcLVwoYW5cLWlzc3VlXCk7Civnmb3kurogPiB3aGl0ZVwtbWFuXC1hbmRcLXdvbWFuOwor5YGa5rOVID4gd2F5XC1vZlwtZG9pbmdcLXRoaW5nczsKK+aKveeFmSA+IHNtb2tlXC1cKGFcLWNpZ2FyZXR0ZVwpOwor6KGo5oOFID4gXChmYWNpYWxcKVwtZXhwcmVzc2lvbjsKK+ijnOWKqSA+IFwoZmluYW5jaWFsXClcLXN1YnNpZHk7CivohqDniYcgPiBcKHBob3RvZ3JhcGhpY1wpXC1maWxtOwor55eF5oOFID4gc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+aflOmBkyA+IFwodGhlXC1zcG9ydFwtb2ZcKVwtanVkbzsKK+aOoeWItiA+IGNvbGxlY3RcLWFuZFwtcHJvY2VzczsKK+aKhOeNsiA+IHRvXC1zZWFyY2hcLWFuZFwtc2VpemU7Civooajlp5AgPiBvbGRlclwtZmVtYWxlXC1jb3VzaW47Civou5/ku7YgPiBcKGNvbXB1dGVyXClcLXNvZnR3YXJlOwor5oub5b6FID4gdG9cLXJlY2VpdmVcLVwoZ3Vlc3RzXCk7Civmi5zlubQgPiBwYXlcLWFcLW5ld1wteWVhclwtY2FsbDsKK+S6kumAmiA+IHRvXC1pbnRlcmNvbW11bmljYXRlOwor56+h5L2NID4gdG9cLXNlaXplXC10aGVcLXRocm9uZTsKK+e9t+m7nCA+IGRpc21pc3NcLWZyb21cLW9mZmljZTsKK+WxrOWvpiA+IHR1cm5cLW91dFwtdG9cLWJlXC10cnVlOwor5rS+6YGjID4gc2VuZFwtXChvblwtYVwtbWlzc2lvblwpOwor5Lim6YeNID4gbGF5XC1lcXVhbFwtc3RyZXNzXC1vbjsKK+aJjeWtuCA+IHRhbGVudFwtYW5kXC1sZWFybmluZzsKK+iAleiAmCA+IHBsb3dpbmdcLWFuZFwtd2VlZGluZzsKK+aFiOelpSA+IFwoYVwpXC1raW5kbHlcLVwocGVyc29uXCk7CivlronmqIIgPiBwZWFjZVwtYW5kXC1oYXBwaW5lc3M7CivpqJnlj5YgPiB0b1wtZ2FpblwtYnlcLWNoZWF0aW5nOwor5ra854i9ID4gY29vbFwtYW5kXC1yZWZyZXNoaW5nOwor6buo57WEID4gbGVhZGluZ1wtcGFydHlcLWdyb3VwOwor5L6L5aSWID4gXChtYWtlXC1hblwpXC1leGNlcHRpb247CivorbDpoYwgPiB0b3BpY1wtb2ZcLWRpc2N1c3Npb247Civos4fmupAgPiBcKG5hdHVyYWxcKVwtcmVzb3VyY2VzOwor5ZWG5pyDID4gY2hhbWJlclwtb2ZcLWNvbW1lcmNlOwor6LWk5a2XID4gXChmaW5hbmNpYWxcKVwtZGVmaWNpdDsKK+S4puiBryA+IHBhcmFsbGVsXC1jb25uZWN0aW9uOwor6LKh5rqQID4gZmluYW5jaWFsXC1yZXNvdXJjZXM7Civph4/oroogPiBxdWFudGl0YXRpdmVcLWNoYW5nZTsKK+iAkOeFqSA+IHBhdGllbnRcLVwoYWRqZWN0aXZlXCk7CivkuJnntrggPiBwb2x5cHJvcHlsZW5lXC1maWJyZTsKK+axuuitsCA+IFwocGFzc1wtYVwpXC1yZXNvbHV0aW9uOwor6Yyv5a2XID4gaW5jb3JyZWN0XC1jaGFyYWN0ZXI7CivkvLTllLEgPiB2b2NhbFwtYWNjb21wYW5pbWVudDsKK+itmOiyqCA+IHRvXC1rbm93XC13aGF0JydzXC13aGF0Owor5a6Y5ZOhID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7CivnqJ/mgKcgPiBuYXR1cmFsXC1kaXNwb3NpdGlvbjsKK+mgkOe/kiA+IHRvXC1wcmVwYXJlXC1hXC1sZXNzb247CivmtYHmtL4gPiBzY2hvb2xcLVwob2ZcLXRob3VnaHRcKTsKK+WTgOaGkCA+IGZlZWxcLWNvbXBhc3Npb25cLWZvcjsKK+iyoeWvtiA+IG1vbmV5XC1hbmRcLXZhbHVhYmxlczsKK+iAkOW/gyA+IHBhdGllbnRcLVwoYWRqZWN0aXZlXCk7Civml6Xoqp4gPiBqYXBhbmVzZVwtXChsYW5ndWFnZVwpOwor5LqL5a6cID4gXChtYWtlXClcLWFycmFuZ2VtZW50czsKK+aVl+mhniA+IHNjdW1cLW9mXC1hXC1jb21tdW5pdHk7Civml5fooo0gPiBjaGluZXNlXC1zdHlsZVwtZHJlc3M7CivlvpDooYwgPiB3YWxrXC1zbG93bHlcLFwtc3Ryb2xsOwor6LKh5YqbID4gZmluYW5jaWFsXC1yZXNvdXJjZXM7Civol4/ml48gPiB0aWJldGFuXC1uYXRpb25hbGl0eTsKK+eFp+mhpyA+IHRha2VcLVwoZ29vZFwpXC1jYXJlXC1vZjsKK+iuk+atpSA+IFwobWFrZVwtYVwpXC1jb25jZXNzaW9uOwor6YKK6YGgID4gZmFyXC1mcm9tXC10aGVcLWNlbnRlcjsKK+aTuumXiiA+IHBhcmFkZVwtb25lJydzXC13ZWFsdGg7CivmmbTmnJcgPiBzdW5ueVwtYW5kXC1jbG91ZGxlc3M7CivmgrLlo68gPiBzb2xlbW5cLWFuZFwtc3RpcnJpbmc7CivnvbfluIIgPiBzaG9wa2VlcGVyJydzXC1zdHJpa2U7CivkuI3lpqggPiB0aGVyZVwtaXNcLW5vXC1oYXJtXC1pbjsKK+Wkp+iFuCA+IHRoZVwtbGFyZ2VcLWludGVzdGluZTsKK+S4ueWPgyA+IHNhbHZpYVwtbWlsdGlvcnJoaXphOwor6Zu26JC9ID4gd2l0aGVyZWRcLWFuZFwtZmFsbGVuOwor5b6X55+lID4gXChmaW5kXC1vdXRcLWFuZFwpXC1rbm93Owor57235a6YID4gZGlzbWlzc1wtZnJvbVwtb2ZmaWNlOwor6K6K5pWFID4gYW5cLXVuZm9yZXNlZW5cLWV2ZW50Owor5oGQ5oCVID4gXChpJydtXClcLWFmcmFpZFwtXCh0aGF0XCk7CivkuI3llY8gPiBwYXlcLW5vXC1hdHRlbnRpb25cLXRvOwor5bug6KaPID4gZmFjdG9yeVwtcmVndWxhdGlvbnM7CivpoJDlrpogPiBzY2hlZHVsZVwtaW5cLWFkdmFuY2U7CivkuI3lh6EgPiBvdXRcLW9mXC10aGVcLW9yZGluYXJ5Owor5pWX57i+ID4gYmVcLXV0dGVybHlcLWRlZmVhdGVkOwor5pq05YipID4gc3VkZGVuXC1odWdlXC1wcm9maXRzOwor572q5ZCNID4gYVwtXChjcmltaW5hbFwpXC1jaGFyZ2U7CivkuI3kuY8gPiB0aGVyZVwtaXNcLW5vXC1sYWNrXC1vZjsKK+WQiOWQjCA+IFwoYnVzaW5lc3NcKVwtY29udHJhY3Q7CivluavovqYgPiBhc3Npc3RcLWluXC1tYW5hZ2luZzsKK+mFrOaHiSA+IHNvY2lhbFwtaW50ZXJhY3Rpb247CivnhKHoq5YgPiBub1wtbWF0dGVyXC13aGF0XHxob3c7Civljp/lrpogPiBvcmlnaW5hbGx5XC1wbGFubmVkOwor6YCa6KGMID4gbGljZW5jZVwtXChjb21wdXRlclwpOwor5Y+45LukID4gY29tbWFuZGluZ1wtb2ZmaWNlcjsKK+ezvumbhiA+IHRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor6YCB6KGMID4gdG9cLXNlZVwtc29tZW9uZVwtb2ZmOwor6YGV57SEID4gdG9cLWJyZWFrXC1hXC1wcm9taXNlOwor5Y2x5bGAID4gcGVyaWxvdXNcLXNpdHVhdGlvbjsKK+aSpeiZnyA+IGRpYWxcLVwoYVwtdGVsZXBob25lXCk7Civororkv64gPiBiZWNvbWVcLXJldmlzaW9uaXN0Owor6YGV56ugID4gdG9cLWJyZWFrXC10aGVcLXJ1bGVzOwor57ay566hID4gbmV0d29ya1wtbWFuYWdlbWVudDsKK+iSmeaWhyA+IG1vbmdvbGlhblwtbGFuZ3VhZ2U7CivmgKfkuqQgPiBzZXh1YWxcLWludGVyY291cnNlOwor54mp5YO5ID4gXChjb21tb2RpdHlcKVwtcHJpY2VzOwor5b6M5aSpID4gZGF5XC1hZnRlclwtdG9tb3Jyb3c7CivlpKrlubMgPiBwZWFjZVwtYW5kXC1zZWN1cml0eTsKK+efmuacmyA+IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+WNlOWKqSA+IHByb3ZpZGVcLWFzc2lzdGFuY2U7CivmjqHpoqggPiBjb2xsZWN0XC1mb2xrXC1zb25nczsKK+aPj+mHkSA+IHRvXC1vdXRsaW5lXC1pblwtZ29sZDsKK+WKqeaVmSA+IHRlYWNoaW5nXC1hc3Npc3RhbnQ7CivlpKvlqaYgPiBhXC1cKG1hcnJpZWRcKVwtY291cGxlOwor6Iux6KqeID4gZW5nbGlzaFwtXChsYW5ndWFnZVwpOwor6YGL5rCjID4gbHVja1wtXChnb29kXC1vclwtYmFkXCk7CivmjqHpjIQgPiBjb2xsZWN0XC1hbmRcLXJlY29yZDsKK+eGiuaOjCA+IGJlYXJcLXBhd1wtXChhc1wtZm9vZFwpOwor5paw5YW1ID4gbmV3XC1cKGFybXlcKVwtcmVjcnVpdDsKK+aWg+WRvSA+IG1lZXRcLXZpb2xlbnRcLWRlYXRoOwor5aSx5LqLID4gXChoYXZlXC1hblwpXC1hY2NpZGVudDsKK+mbu+S/oSA+IHRlbGVjb21tdW5pY2F0aW9uczsKK+aNqOi6qyA+IHRvXC1naXZlXC1vbmUnJ3NcLWxpZmU7Civoip3omK0gPiBpcmlzZXNcLWFuZFwtb3JjaGlkczsKK+aUueWPoyA+IHRvXC1jb3JyZWN0XC1vbmVzZWxmOwor5pS/5YuZID4gZ292ZXJubWVudFwtYWZmYWlyczsKK+WFp+enkSA+IG1lZGljYWxcLWRlcGFydG1lbnQ7CivlhYPntKAgPiBcKGNoZW1pY2FsXClcLWVsZW1lbnQ7CivliqDlhaUgPiB0b1wtYmVjb21lXC1hXC1tZW1iZXI7CivpgbjljYAgPiBlbGVjdG9yYWxcLWRpc3RyaWN0Owor5Zyf6JGXID4gbmF0aXZlXCxcLWFib3JpZ2luYWw7Civmk43lroggPiBwZXJzb25hbFwtaW50ZWdyaXR5Owor5YKy6KaWID4gdHVyblwtdXBcLW9uZScnc1wtbm9zZTsKK+iOq+WmgiA+IGl0XC13b3VsZFwtYmVcLWJldHRlcjsKK+e1kOW4syA+IHRvXC1zZXR0bGVcLWFjY291bnRzOwor5Zub6JmVID4gYWxsXC1vdmVyXC10aGVcLXBsYWNlOwor6YGV5L6LID4gdG9cLWJyZWFrXC10aGVcLXJ1bGVzOwor5Z2m546HID4gZnJhbmtcLVwoZGlzY3Vzc2lvblwpOwor6YGL5L2cID4gdGhyZWFkXC1cKGNvbXB1dGluZ1wpOwor6YCx5YiKID4gd2Vla2x5XC1wdWJsaWNhdGlvbjsKK+S/nemnlSA+IGVzY29ydFwtdGhlXC1lbXBlcm9yOwor5YWx5pyJID4gdG9cLWhhdmVcLWFsdG9nZXRoZXI7CivloLHllpwgPiBhbm5vdW5jZVwtZ29vZFwtbmV3czsKK+i3kembuyA+IGVsZWN0cmljYWxcLWxlYWthZ2U7CivmkqXliLogPiBzcGxhc2hcLVwob2ZcLWFcLWZpc2hcKTsKK+aLnOimiyA+IHBheVwtYVwtZm9ybWFsXC12aXNpdDsKK+iLseaWhyA+IGVuZ2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+WIneS4rSA+IGp1bmlvclwtaGlnaFwtc2Nob29sOwor5oqE6YGTID4gdG9cLXRha2VcLWFcLXNob3J0Y3V0Owor5ryU6KqqID4gXChkZWxpdmVyXC1hXClcLXNwZWVjaDsKK+imgeWcsCA+IHN0cmF0ZWdpY1wtbG9jYXRpb247CivovqbloLEgPiB0b1wtcnVuXC1hXC1uZXdzcGFwZXI7Civlh7rku7sgPiBzdGFydFwtaW5cLWFcLW5ld1wtam9iOwor5YWn5oOFID4gaW5zaWRlXC1pbmZvcm1hdGlvbjsKK+mWi+WxlSA+IFwoYmVnaW5cLXRvXClcLWRldmVsb3A7Civkv4Toqp4gPiBydXNzaWFuXC1cKGxhbmd1YWdlXCk7CivlsbHohbMgPiBmb290XC1vZlwtYVwtbW91bnRhaW47Civlhazlj7ggPiBcKGJ1c2luZXNzXClcLWNvbXBhbnk7Civmi4nnpaggPiBjYW1wYWlnblwtZm9yXC12b3RlczsKK+aJi+ihkyA+IHN1cmdpY2FsXC1vcGVyYXRpb247CivlhavljaYgPiB0aGVcLWVpZ2h0XC1kaWFncmFtczsKK+mrlOa6qyA+IFwoYm9keVwpXC10ZW1wZXJhdHVyZTsKK+a8guenuyA+IGRyaWZ0XC1cKGVsZWN0cmljYWxcKTsKK+WBnOa7ryA+IGJlXC1hdFwtYVwtc3RhbmRzdGlsbDsKK+WumOmCuCA+IG9mZmljaWFsXC1yZXNpZGVuY2U7Civmi5zmuLQgPiBwYXlcLWFcLWZvcm1hbFwtdmlzaXQ7Civou43lrpggPiBcKG1pbGl0YXJ5XClcLW9mZmljZXI7CivnrYbnm7QgPiBwZXJmZWN0bHlcLXN0cmFpZ2h0Owor55Si55SfID4gdG9cLWNvbWVcLWludG9cLWJlaW5nOwor6aeQ6I+vID4gc3RhdGlvbmVkXC1pblwtY2hpbmE7Civmjojlj5cgPiB0b1wtZ2l2ZVwtYW5kXC1hY2NlcHQ7Civnlqvmg4UgPiBlcGlkZW1pY1wtc2l0dWF0aW9uOwor5rex6YCgID4gYWR2YW5jZWRcLVwoc3R1ZGllc1wpOwor5o2o5ZG9ID4gdG9cLXJpc2tcLW9uZScnc1wtbGlmZTsKK+ijgeS4piA+IGN1dFwtZG93blwtYW5kXC1tZXJnZTsKK+S9v+evgCA+IFwoZGlwbG9tYXRpY1wpXC1lbnZveTsKK+iHs+WwkSA+IFwodG9cLXNheVwtdGhlXClcLWxlYXN0Owor6LK36LOjID4gYnV5aW5nXC1hbmRcLXNlbGxpbmc7CivmuKznuaogPiB0b1wtc3VydmV5XC1hbmRcLWRyYXc7Civog4zntIQgPiBicmVha1wtYW5cLWFncmVlbWVudDsKK+i3r+W+kSA+IHJvdXRlXC1cKG5ldHdvcmtpbmdcKTsKK+iIieS+iyA+IHRvXC1naXZlXC1hblwtZXhhbXBsZTsKK+S/hOaWhyA+IHJ1c3NpYW5cLVwobGFuZ3VhZ2VcKTsKK+aJjeaZuiA+IGFiaWxpdHlcLWFuZFwtd2lzZG9tOwor5omT5ouzID4gdG9cLWRvXC1zaGFkb3dib3hpbmc7CivohIjmrIIgPiBiZWF0aW5nXC1cKG9mXC1oZWFydFwpOwor6Ieq5Li7ID4gdG9cLWFjdFwtZm9yXC1vbmVzZWxmOwor5pyf6LKoID4gZnV0dXJlc1wtXChvblwtZ29vZHNcKTsKK+S+teaIqiA+IHRvXC1oYWNrXC1cKGNvbXB1dGVyXCk7CivpoK3pq64gPiBoYWlyXC1cKG9uXC10aGVcLWhlYWRcKTsKK+izqueWkSA+IGNhbGxcLWludG9cLXF1ZXN0aW9uOwor6aaW5qyhID4gZm9yXC10aGVcLWZpcnN0XC10aW1lOwor5qKG5a2QID4gd2F0Y2htYW4nJ3NcLWNsYXBwZXI7CivmsrnppIUgPiBkZWVwXC1mcmllZFwtcGFuY2FrZTsKK+azhOmcsiA+IGxlYWtcLVwoaW5mb3JtYXRpb25cKTsKK+aKleWFpSA+IHB1dFwtaW50b1wtb3BlcmF0aW9uOwor5p6Q55aRID4gdG9cLXJlc29sdmVcLWFcLWRvdWJ0Owor6JeP6KqeID4gdGliZXRhblwtXChsYW5ndWFnZVwpOwor5pyo6ICzID4gZWRpYmxlXC10cmVlXC1mdW5ndXM7Civllpjmga8gPiB0b1wtZ2FzcFwtZm9yXC1icmVhdGg7Civmo4TkuJYgPiB0b1wtbGVhdmVcLXRoaXNcLXdvcmQ7CivmhJvnqLEgPiB0ZXJtXC1vZlwtZW5kZWFybWVudDsKK+WwiOWToSA+IGFzc2lzdGFudFwtZGlyZWN0b3I7CivpoJPotrMgPiBzdGFtcFwtXChvbmUnJ3NcLWZlZXRcKTsKK+ePvuaciSA+IGN1cnJlbnRseVwtZXhpc3Rpbmc7CivpvLvmqJEgPiBicmlkZ2VcLW9mXC10aGVcLW5vc2U7Civlj4PotIogPiBkaXBsb21hdGljXC1vZmZpY2VyOwor5Lim56uLID4gZXhpc3RcLXNpZGVcLWJ5XC1zaWRlOwor6LK/5piTID4gXChjb21tZXJjaWFsXClcLXRyYWRlOwor6YWs6YWiID4gdG9cLWV4Y2hhbmdlXC10b2FzdHM7CivmtarmtowgPiBcKGVsZWN0cmljYWxcKVwtc3VyZ2U7CivkvZTlhYggPiB0b1wtdGFrZVwtcHJlY2VkZW5jZTsKK+iDjOWFiSA+IGJlXC1pblwtYVwtcG9vclwtbGlnaHQ7Civmt7HlpJwgPiB2ZXJ5XC1sYXRlXC1hdFwtbmlnaHQ7CivpnLLpnaIgPiBhcHBlYXJcLVwoaW5cLXB1YmxpY1wpOwor5ZWG5YuZID4gY29tbWVyY2lhbFwtYWZmYWlyczsKK+eMnOeWkSA+IGhhcmJvdXJcLXN1c3BpY2lvbnM7CivosrTlp5MgPiB3aGF0XC1pc1wteW91clwtbmFtZVw/Owor54yZ542wID4gbWVhblwtYW5kXC1mZXJvY2lvdXM7CivmtrLlo5MgPiBoeWRyYXVsaWNcLXByZXNzdXJlOwor6by75aGeID4gaGF2ZVwtYVwtc3R1ZmZ5XC1ub3NlOwor6bue5b+DID4gbGlnaHRcLXJlZnJlc2htZW50czsKK+acn+W+hSA+IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+a1t+WfnyA+IHRlcnJpdG9yaWFsXC13YXRlcnM7Civmr5ToqaYgPiBoYXZlXC1hXC1jb21wZXRpdGlvbjsKK+WkluizhyA+IGZvcmVpZ25cLWludmVzdG1lbnQ7Civpm7vot68gPiBcKGVsZWN0cmljXClcLWNpcmN1aXQ7CivkuK3lsIcgPiBsaWV1dGVuYW50XC1nZW5lcmFsOwor5paH6JedID4gbGl0ZXJhdHVyZVwtYW5kXC1hcnQ7CivniYjnqIUgPiByb3lhbHR5XC1cKG9uXC1ib29rc1wpOwor5oOF5aCxID4gXChzcHlcKVwtaW50ZWxsaWdlbmNlOwor57eo6YGjID4gcmVvcmdhbml6ZVwtXCh0cm9vcHM7Civms7DlsbEgPiB0YWlzaGFuXC1cKG1vdW50YWluXCk7CivmgonlsLwgPiBzeWRuZXlcLVwoYXVzdHJhbGlhXCk7CivoloTmg4UgPiBpbmNvbnN0YW50XC1pblwtbG92ZTsKK+awkeeUqCA+IFwoZm9yXClcLWNpdmlsaWFuXC11c2U7Civnt6jora8gPiB0cmFuc2xhdGVcLWFuZFwtZWRpdDsKK+emj+WIqSA+IFwobWF0ZXJpYWxcKVwtd2VsZmFyZTsKK+WQjOWtuCA+IFwoZmVsbG93XClcLWNsYXNzbWF0ZTsKK+S4puWIlyA+IHN0YW5kXC1zaWRlXC1ieVwtc2lkZTsKK+S4jeWSjCA+IG5vdFwtZ2V0XC1hbG9uZ1wtd2VsbDsKK+S4jeWOrSA+IG5vdFwtbWluZFwtZG9pbmdcLXN0aDsKK+WPjeaEnyA+IFwoc3Ryb25nbHlcKVwtZGlzbGlrZTsKK+mHneWwjSA+IGluXC1jb25uZWN0aW9uXC13aXRoOwor5Y+m5a+EID4gdG9cLW1haWxcLXNlcGFyYXRlbHk7CivororlubsgPiBjaGFuZ2VcLWlycmVndWxhcmx5Owor5aCx6ZecID4gZGVjbGFyZVwtYXRcLWN1c3RvbXM7CivnvbLlkI0gPiBzaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor6YGK6Ka9ID4gdG9cLWdvXC1zaWdodFwtc2VlaW5nOwor5aSW55WMID4gdGhlXC1vdXRzaWRlXC13b3JsZDsKK+iuiuWkqSA+IGNoYW5nZVwtb2ZcLXdlYXRoZXI7Civmr5Tmv5UgPiBzcGVjaWZpY1wtaHVtaWRpdHk7CivlvrfmlocgPiBnZXJtYW5cLVwobGFuZ3VhZ2VcKTsKK+WNkeaAryA+IG1lYW5cLWFuZFwtY293YXJkbHk7CivlhbXppqwgPiB0cm9vcHNcLWFuZFwtaG9yc2VzOwor56Kp5aOrID4gbWFzdGVyJydzXC1cKGRlZ3JlZVwpOwor55m96aqoID4gYm9uZXNcLW9mXC10aGVcLWRlYWQ7Civnhafnm7ggPiB0YWtlXC1hXC1waG90b2dyYXBoOwor55m96aOvID4gcGxhaW5cLWNvb2tlZFwtcmljZTsKK+aXpeWtkCA+IGFcLVwoY2FsZW5kYXJcKVwtZGF0ZTsKK+aVmeadkCA+IHRlYWNoaW5nXC1tYXRlcmlhbDsKK+mEsOWciyA+IGJvcmRlcmluZ1wtY291bnRyeTsKK+apn+ijvSA+IG1hY2hpbmVcLXByb2Nlc3NlZDsKK+mVt+mBlCA+IGV4dGVuZFwtYXNcLWxvbmdcLWFzOwor5YyW5aadID4gdG9cLXB1dFwtb25cLW1ha2VcLXVwOwor6Zuj5o2xID4gdHJ5aW5nXCxcLWRpZmZpY3VsdDsKK+Wkp+WxgCA+IGdlbmVyYWxcLXNpdHVhdGlvbjsKK+aVj+aEnyA+IHNlbnNpdGl2ZVwtXChpc3N1ZVwpOwor57Sh57mUID4gc3Bpbm5pbmdcLVwodGhyZWFkXCk7CivlpKflpJogPiBmb3JcLXRoZVwtbW9zdFwtcGFydDsKK+W+kuWIkSA+IFwocHJpc29uXClcLXNlbnRlbmNlOwor5pSv5oyBID4gdG9cLWJlXC1pblwtZmF2b3JcLW9mOwor57Sb57SbID4gb25lXC1hZnRlclwtYW5vdGhlcjsKK+WkluWciyA+IGZvcmVpZ25cLVwoY291bnRyeVwpOwor5o2V6aOfID4gY2F0Y2hcLWFuZFwtZmVlZFwtb247CivovJToqrIgPiBzdWJzaWRpYXJ5XC1jb3Vyc2U7CivlhavogqEgPiBlaWdodFwtXC1wYXJ0XC1lc3NheTsKK+W5s+awkSA+IFwob3JkaW5hcnlcKVwtcGVvcGxlOwor6YOK5Y2AID4gc3VidXJiYW5cLWRpc3RyaWN0Owor5YWp6ICFID4gYm90aFwtc2lkZXNcfHRoaW5nczsKK+mDqOS7vSA+IHBhcnRcLVwob2ZcLWFcLXdob2xlXCk7Civnmb3ogokgPiBwbGFpblwtYm9pbGVkXC1wb3JrOwor6YKK5aGeID4gZnJvbnRpZXJcLWZvcnRyZXNzOwor55+z5Yi7ID4gc3RvbmVcLWluc2NyaXB0aW9uOwor57eK5a+GID4gaW5zZXBhcmFibHlcLWNsb3NlOwor6YKK5Y2hID4gYm9yZGVyXC1jaGVja3BvaW50Owor57ep5ZKMID4gdG9cLWVhc2VcLVwodGVuc2lvblwpOwor57eo5Y2wID4gY29tcGlsZVwtYW5kXC1wcmludDsKK+WHseaXiyA+IHJldHVyblwtdHJpdW1waGFudDsKK+eAieiCmiA+IHRvXC1oYXZlXC1kaWFycmhvZWE7Civnmb3nnLwgPiBzdXBlcmNpbGlvdXNcLWxvb2s7CivnnLzlsJYgPiB0b1wtaGF2ZVwtZ29vZFwtZXllczsKK+WgseW4syA+IHJlbmRlclwtYW5cLWFjY291bnQ7Civoo5znmbwgPiBzdXBwbHlcLWFnYWluXC1cKHN0aDsKK+aKiumgrSA+IGxhYm91clwtY29udHJhY3RvcjsKK+Wxj+manCA+IHByb3RlY3RpdmVcLXNjcmVlbjsKK+eBq+aYnyA+IG1hcnNcLVwodGhlXC1wbGFuZXRcKTsKK+mojummrCA+IHJpZGVcLW9uXC1ob3JzZWJhY2s7CivmioTpjIQgPiB0b1wtbWFrZVwtYVwtY29weVwtb2Y7Civmj63mm4kgPiBhbm5vdW5jZVwtcHVibGljbHk7Civnl4XnqIsgPiBjb3Vyc2VcLW9mXC1kaXNlYXNlOwor55Sz6Ki0ID4gdG9cLWFwcGVhbFwtXCh0b1wtc2JcKTsKK+S+m+mcgCA+IHN1cHBseVwtYW5kXC1kZW1hbmQ7CivlnLDmrrwgPiB0aGVcLWVhcnRoJydzXC1jcnVzdDsKK+mWieW5lSA+IHRoZVwtY3VydGFpblwtZmFsbHM7Civnm5vlkI0gPiBmYW1vdXNcLXJlcHV0YXRpb247Civlt6Xlp5QgPiB3b3JraW5nXC1jb21taXR0ZWU7CivnrYboqr8gPiBcKG9mXC13cml0aW5nXClcLXRvbmU7CivlsZXopr0gPiB0b1wtcHV0XC1vblwtZGlzcGxheTsKK+eZveW4gyA+IHBsYWluXC13aGl0ZVwtY2xvdGg7Civlt6XlnLAgPiBjb25zdHJ1Y3Rpb25cLXNpdGU7Civmo5XoibIgPiBicm93blwtXCh0aGVcLWNvbG9yXCk7Civnr4fnm64gPiB0YWJsZVwtb2ZcLWNvbnRlbnRzOwor5L2P6ZmiID4gdG9cLWJlXC1pblwtaG9zcGl0YWw7CivmkI/li5UgPiBiZWF0XC1yaHl0aG1pY2FsbHk7CivmjqXlvoUgPiByZWNlaXZlXC1cKGFcLXZpc2l0XCk7CivlhbXlipsgPiBtaWxpdGFyeVwtc3RyZW5ndGg7Civlhazli5kgPiBvZmZpY2lhbFwtYnVzaW5lc3M7Civmi5jnlZkgPiBkZXRhaW5cLVwocHJpc29uZXJcKTsKK+aMqOasoSA+IG9uZVwtYWZ0ZXJcLWFub3RoZXI7CivlhazkvYggPiBwdWJsaWNseVwtYW5ub3VuY2U7CivlhafkuoIgPiBpbnRlcm5hbFwtZGlzb3JkZXI7CivooZvmmJ8gPiBcKHNwYWNlXClcLXNhdGVsbGl0ZTsKK+aLjeeFpyA+IHRvXC10YWtlXC1hXC1waWN0dXJlOwor55eF5pWFID4gZGllXC1vZlwtYW5cLWlsbG5lc3M7CivooZ3mk4ogPiBcKGJlXC11bmRlclwpXC1hdHRhY2s7CivplbfkuYUgPiBcKGZvclwtYVwpXC1sb25nXC10aW1lOwor6YyE6Z+zID4gXChzb3VuZFwpXC1yZWNvcmRpbmc7Civkv53npZAgPiBibGVzc1wtYW5kXC1wcm90ZWN0Owor5o235aCxID4gcmVwb3J0XC1vZlwtc3VjY2VzczsKK+WcmOWckyA+IHRvXC1oYXZlXC1hXC1yZXVuaW9uOwor5o6I5YubID4gdG9cLWF3YXJkXC1hblwtaG9ub3I7Civlk4Dps7QgPiBhXC1wbGFpbnRpdmVcLXdoaW5lOwor5oeC6KGMID4gdG9cLWtub3dcLXRoZVwtcm9wZXM7Civou43ljYAgPiBhXC1taWxpdGFyeVwtcmVnaW9uOwor5L+d54i+ID4gXChhXC1wZXJzb25hbFwtbmFtZVwpOwor6LKh6ZalID4gZmluYW5jaWFsXC1tYWduYXRlOwor5ouN5pSdID4gXChzaG9vdFwtYVwpXC1waWN0dXJlOwor6ICD6amXID4gXChwdXRcLXRvXC10aGVcKVwtdGVzdDsKK+S/nea6qyA+IGhlYXRcLXByZXNlcnZhdGlvbjsKK+Wxj+awoyA+IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor56if6LOmID4gbmF0dXJhbFwtZW5kb3dtZW50Owor55eF5Y2xID4gYmVcLWNyaXRpY2FsbHlcLWlsbDsKK+S9teeZvCA+IGJlXC1jb21wbGljYXRlZFwtYnk7CivosqHosr8gPiBmaW5hbmNlXC1hbmRcLXRyYWRlOwor5ryi5a2XID4gY2hpbmVzZVwtY2hhcmFjdGVyOwor5a6J56mpID4gc21vb3RoXC1hbmRcLXN0ZWFkeTsKK+WwiOalrSA+IHNwZWNpYWxpemVkXC1maWVsZDsKK+Wxj+aBryA+IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor6Lao5pmCID4gdG9cLWZvbGxvd1wtZmFzaGlvbjsKK+S7jeiIiiA+IHN0aWxsXC1cKHJlbWFpbmluZ1wpOwor5ouX5Y+jID4gaGFyZFwtdG9cLXByb25vdW5jZTsKK+WWmOawoyA+IHRvXC1icmVhdGhlXC1kZWVwbHk7Civmi5zlgJIgPiBwcm9zdHJhdGVcLW9uZXNlbGY7CivmiY3mgJ0gPiBpbWFnaW5hdGl2ZVwtcG93ZXI7Civms6Lpn7MgPiBib2VpbmdcLVwoYWlyY3JhZnRcKTsKK+S9nOalrSA+IHNjaG9vbFwtYXNzaWdubWVudDsKK+m8k+iIniA+IGhlYXJ0ZW5pbmdcLVwobmV3c1wpOwor5qGI5oOFID4gZGV0YWlsc1wtb2ZcLWFcLWNhc2U7CivosqHnpZ4gPiB0aGVcLWdvZFwtb2ZcLXdlYWx0aDsKK+WxleWHuiA+IHRvXC1wdXRcLW9uXC1kaXNwbGF5Owor54++54uAID4gY3VycmVudFwtc2l0dWF0aW9uOwor5bCP5aCxID4gdGFibG9pZFwtbmV3c3BhcGVyOwor5pyd6IGWID4gbWFrZVwtYVwtcGlsZ3JpbWFnZTsKK+S/neWBpSA+IGhlYWx0aFwtcHJvdGVjdGlvbjsKK+a3q+awtCA+IHNleHVhbFwtc2VjcmV0aW9uczsKK+Wwi+WRsyA+IHRvXC10aGlua1wtc3RoXC1vdmVyOwor5p2/54WZID4gcGx1Z1wtXChvZlwtdG9iYWNjb1wpOwor5rOo6KaWID4gd2F0Y2hcLWF0dGVudGl2ZWx5Owor5rOV6KqeID4gZnJlbmNoXC1cKGxhbmd1YWdlXCk7Civnjajnq4sgPiB0b1wtYmVcLWluZGVwZW5kZW50Owor6LWw5Ye6ID4gdG9cLW1vdmVcLWF3YXlcLWZyb207CivogbLmj7QgPiBzdXBwb3J0XC1cKGFcLWNhdXNlXCk7CivnpKbol48gPiBtaW5lcmFsXC1yZXNvdXJjZXM7Civlr6vkv6EgPiB0b1wtd3JpdGVcLWFcLWxldHRlcjsKK+S4iee2rSA+IHRocmVlXC1kaW1lbnNpb25hbDsKK+eptOWxhSA+IHRvXC1saXZlXC1pblwtYVwtY2F2ZTsKK+eLgOiqniA+IGFkdmVyYmlhbFwtYWRqdW5jdDsKK+mFrOmHkSA+IFwobW9uZXRhcnlcKVwtcmV3YXJkOwor6LKh5pS/ID4gZmluYW5jZXNcLVwocHVibGljXCk7CivlronljbEgPiBzYWZldHlcLWFuZFwtZGFuZ2VyOwor5ZCN56ixID4gbmFtZVwtXChvZlwtYVwtdGhpbmdcKTsKK+eJqeizqiA+IFwocGh5c2ljYWxcKVwtbWF0dGVyOwor5ZCD56m/ID4gZm9vZFwtYW5kXC1jbG90aGluZzsKK+eptOS9jSA+IGFjdXB1bmN0dXJlXC1wb2ludDsKK+WtuOS9jSA+IGVkdWNhdGlvbmFsXC1sZXZlbDsKK+W+t+iqniA+IGdlcm1hblwtXChsYW5ndWFnZVwpOwor5ZCE55WMID4gYWxsXC13YWxrc1wtb2ZcLWxpZmU7CivogLPlrZAgPiBoYW5kbGVcLVwob25cLWFcLXBvdFwpOwor5oCd57atID4gXChsaW5lXC1vZlwpXC10aG91Z2h0Owor5Lul5YWNID4gaW5cLW9yZGVyXC10b1wtYXZvaWQ7Civkuovlr6YgPiBcKHRoZVwpXC1mYWN0XC1cKHRoYXRcKTsKK+acrOaApyA+IG5hdHVyYWxcLWluc3RpbmN0czsKK+mbo+mhjCA+IGRpZmZpY3VsdFwtcHJvYmxlbTsKK+iuiuebuCA+IGluXC1kaXNndWlzZWRcLWZvcm07CivosqHli5kgPiBmaW5hbmNpYWxcLWFmZmFpcnM7CivmnI3lvbkgPiBzZXJ2ZVwtaW5cLXRoZVwtYXJteTsKK+mGq+eZgiA+IG1lZGljYWxcLXRyZWF0bWVudDsKK+aVrOmHjSA+IHRvXC1yZXNwZWN0XC1kZWVwbHk7CivmmpfmsrMgPiB1bmRlcmdyb3VuZFwtcml2ZXI7CivpoLjmpI4gPiBjZXJ2aWNhbFwtdmVydGlicmE7CivntrLpu54gPiBub2RlXC1pblwtYVwtbmV0d29yazsKK+m7keWuoiA+IGhhY2tlclwtXChjb21wdXRlclwpOwor57qW6IqvID4gY29yZVwtXChvZlwtYVwtZmliZXJcKTsKK+e3qOmaiiA+IGZvcm1cLWludG9cLWNvbHVtbnM7CivmlZfpgIAgPiByZXRyZWF0XC1pblwtZGVmZWF0Owor5pys5ZyLID4gb25lJydzXC1vd25cLWNvdW50cnk7Civms5XmlocgPiBmcmVuY2hcLVwobGFuZ3VhZ2VcKTsKK+iqnuiogCA+IFwoc3Bva2VuXClcLWxhbmd1YWdlOwor5LiN5bGRID4gZGlzZGFpblwtdG9cLWRvXC1zdGg7CivljYrnpaggPiBoYWxmXC1wcmljZVwtdGlja2V0Owor542o5ZSxID4gXChpblwtc2luZ2luZ1wpXC1zb2xvOwor56eB5Lq6ID4gcHJpdmF0ZVwtXChjaXRpemVuXCk7CivnjbLlh4YgPiBvYnRhaW5cLXBlcm1pc3Npb247CivmrIrpkbAgPiBrZXlzXC1vZlwtYXV0aG9yaXR5Owor54iG566hID4gY2FydHJpZGdlXC1pZ25pdGVyOwor56Sm5bqKID4gXChtaW5lcmFsXClcLWRlcG9zaXQ7CivmraLooYAgPiBzdGFuY2hcLVwoYmxlZWRpbmdcKTsKK+WQjeWtlyA+IFwoYVwtcGVyc29uJydzXClcLW5hbWU7Civlj7DluaMgPiBuZXdcLXRhaXdhblwtZG9sbGFyOwor6aGn5Y+KID4gdGFrZVwtaW50b1wtYWNjb3VudDsKK+S4i+WOuyA+IGdvXC1kb3duXC1cKGRlc2NlbmRcKTsKK+WLu+eosSA+IHdlbGxcLXByb3BvcnRpb25lZDsKK+S4jeWKmyA+IG5vdFwtZG9cLW9uZScnc1wtYmVzdDsKK+mBk+isnSA+IHRvXC1leHByZXNzXC10aGFua3M7CivnoZ3nhZkgPiBzbW9rZVwtXChmcm9tXC1ndW5zXCk7Civol53kurogPiBwZXJmb3JtaW5nXC1hcnRpc3Q7CivmlZnnt7QgPiBcKGF0aGxldGUnJ3NcKVwtY29hY2g7Civlh7rpmaIgPiB0b1wtbGVhdmVcLWhvc3BpdGFsOwor6Zi/6YeMID4gYWxpXC1cKHByb3BlclwtbmFtZVwpOwor6ZmE6L+RID4gXChpblwtdGhlXClcLXZpY2luaXR5Owor54mM5qiTID4gZGVjb3JhdGVkXC1hcmNod2F5Owor54i25q+NID4gZmF0aGVyXC1hbmRcLW1vdGhlcjsKK+ejqOWtkCA+IG1pbGxcLFwtbWlsbHN0b25lczsKK+WQjuS6uiA+IGxhdGVyXC1nZW5lcmF0aW9uOwor6K2Y5a2XID4gdG9cLWxlYXJuXC10b1wtcmVhZDsKK+W/g+W+lyA+IGtub3dsZWRnZVwtZ2FpbmVkOwor5rGC5amaID4gcHJvcG9zZVwtbWFycmlhZ2U7Civnt6jnm64gPiBtYWtlXC1hXC1jYXRhbG9ndWU7Civpm7vmtYEgPiBlbGVjdHJpY1wtY3VycmVudDsKK+WfjumOriA+IGNpdGllc1wtYW5kXC10b3duczsKK+WnlOWToSA+IGNvbW1pdHRlZVwtbWVtYmVyOwor5aOB55WrID4gbXVyYWxcLVwocGFpbnRpbmdcKTsKK+Wnk+WQjSA+IG5hbWVcLWFuZFwtc3VybmFtZTsKK+aYr+WQpiA+IHdoZXRoZXJcLVwob3JcLW5vdFwpOwor57i95qmfID4gY2VudHJhbFwtZXhjaGFuZ2U7CivpgY7nqIsgPiBjb3Vyc2VcLW9mXC1ldmVudHM7CivnhornjLQgPiBhc3NhbWVzZVwtbWFjYXF1ZTsKK+Wkp+acgyA+IGdlbmVyYWxcLWFzc2VtYmx5Owor5Z+66Kq/ID4gXChzcGVlY2hcKVwta2V5bm90ZTsKK+iqpOacgyA+IHRvXC1taXN1bmRlcnN0YW5kOwor6KiC56WoID4gdG9cLWlzc3VlXC10aWNrZXRzOwor5aO95qGDID4gYmlydGhkYXlcLXBlYWNoZXM7Civlt7TosYYgPiBcKHB1cmdpbmdcKVwtY3JvdG9uOwor5aO95pifID4gZ29kXC1vZlwtbG9uZ2V2aXR5Owor5YWl6L+3ID4gdG9cLWJlXC1mYXNjaW5hdGVkOwor5piO5LujID4gdGhlXC1taW5nXC1keW5hc3R5Owor6YCA56WoID4gYm91bmNlXC1cKGFcLWNoZWNrXCk7CivnuYPlrZAgPiBlbWJyb2lkZXJ5XC1mcmFtZTsKK+W+l+WHuiA+IG9idGFpblwtXChyZXN1bHRzXCk7CivlhY3osrsgPiBmcmVlXC1cKG9mXC1jaGFyZ2VcKTsKK+mBsuaariA+IHBhc3RcLW9uZScnc1wtcHJpbWU7CivntrLmqYsgPiBcKG5ldHdvcmtcKVwtYnJpZGdlOwor5YiX54K6ID4gYmVcLWNsYXNzaWZpZWRcLWFzOwor5ZyL6ZiyID4gbmF0aW9uYWxcLWRlZmVuY2U7CivmlYXlsYUgPiBmb3JtZXJcLXJlc2lkZW5jZTsKK+WJveaCjSA+IHN3aWZ0XC1hbmRcLWZpZXJjZTsKK+atpuWumCA+IG1pbGl0YXJ5XC1hdHRhY2hlOwor6YGV5oayID4gdW5jb25zdGl0dXRpb25hbDsKK+WLnuWLlSA+IFwocGh5c2ljYWxcKVwtbGFib3I7CivngrrnlJ8gPiB0b1wtbWFrZVwtYVwtbGl2aW5nOwor5YWs576KID4gcmFtXC1cKG1hbGVcLXNoZWVwXCk7CivoiLnpmoogPiBmbGVldFwtXChvZlwtc2hpcHNcKTsKK+W7o+W3niA+IGd1YW5nemhvdVwtXChjaXR5XCk7Civpm7vlipsgPiBlbGVjdHJpY2FsXC1wb3dlcjsKK+ijnOihgCA+IGVucmljaFwtdGhlXC1ibG9vZDsKK+eHiOWFiSA+IFwoc3RhZ2VcKVwtbGlnaHRpbmc7CivpgI/mlK8gPiBcKGJhbmtcKVwtb3ZlcmRyYWZ0Owor6L+05peLID4gbWFuZXV2ZXJpbmdcLXJvb207Civnmb3no7cgPiB3aGl0ZVwtcGhvc3Bob3J1czsKK+WgseaNtyA+IHJlcG9ydFwtYVwtc3VjY2VzczsKK+ioquWVjyA+IHBheVwtYVwtdmlzaXRcLVwodG9cKTsKK+mZpOWklSA+IFwobmV3XC15ZWFyJydzXClcLWV2ZTsKK+i+puahiCA+IHRvXC1oYW5kbGVcLWFcLWNhc2U7CivoqILllq4gPiBcKHB1cmNoYXNlXClcLW9yZGVyOwor6I+v5YORID4gb3ZlcnNlYXNcLWNoaW5lc2U7Civmu5HpvKAgPiBtb3VzZVwtXChjb21wdXRlclwpOwor55eF6I+MID4gaGFybWZ1bFwtYmFjdGVyaWE7CivpgLLkv64gPiBhZHZhbmNlZFwtc3R1ZGllczsKK+mVt+axnyA+IGNoYW5namlhbmdcLXJpdmVyOwor562G6aCtID4gYWJpbGl0eVwtdG9cLXdyaXRlOwor5bm+5Y2DID4gc2V2ZXJhbFwtdGhvdXNhbmQ7CivliLDkuoYgPiBpblwtXChhXC1wYXN0XC10aW1lXCk7CivloLHlkI0gPiBlbnRlclwtb25lJydzXC1uYW1lOwor5Ye65ZCNID4gd2VsbFwta25vd25cLVwoZm9yXCk7CivmjojnjY4gPiB0b1wtYXdhcmRcLWFcLXByaXplOwor6auU6IKyID4gcGh5c2ljYWxcLWN1bHR1cmU7CivmvKLoqp4gPiBjaGluZXNlXC1sYW5ndWFnZTsKK+WFteW9uSA+IG1pbGl0YXJ5XC1zZXJ2aWNlOwor55Wi6IKWID4gcmVzZW1ibGVcLWNsb3NlbHk7CivltKnmvI8gPiB1dGVyaW5lXC1ibGVlZGluZzsKK+WGl+WToSA+IGV4Y2Vzc1wtcGVyc29ubmVsOwor5YW15aOrID4gb3JkaW5hcnlcLXNvbGRpZXI7CivopoHkurogPiBpbXBvcnRhbnRcLXBlcnNvbjsKK+aOoeaThyA+IHNlbGVjdFwtYW5kXC1hZG9wdDsKK+i4qee3miA+IHN0ZXBcLW9uXC10aGVcLWxpbmU7CivnmbHlrZAgPiBwYXJhbHl6ZWRcLXBlcnNvbjsKK+W3qOWMoCA+IG1hc3RlclwtY3JhZnRzbWFuOwor6Zax5YW1ID4gdG9cLXJldmlld1wtdHJvb3BzOwor5YKy5rCjID4gYWlyXC1vZlwtYXJyb2dhbmNlOwor5L6/6KGjID4gY2l2aWxpYW5cLWNsb3RoZXM7CivlsIvoqKogPiB0b1wtaW5xdWlyZVwtYWZ0ZXI7Civlr7bosp0gPiB0cmVhc3VyZWRcLW9iamVjdDsKK+mWseS4liA+IHRvXC1zZWVcLXRoZVwtd29ybGQ7CivnsKHmmI4gPiBzaW1wbGVcLWFuZFwtY2xlYXI7CivlronpoJMgPiBmaW5kXC1hXC1wbGFjZVwtZm9yOwor5YWs5YWsID4gaHVzYmFuZCcnc1wtZmF0aGVyOwor5L6L6KqeID4gZXhhbXBsZVwtc2VudGFuY2U7CivploPkuq4gPiBicmlsbGlhbnRcLFwtc2hpbnk7CivlnYfli6IgPiBiYWxhbmNlXC1vZlwtcG93ZXI7Civkv53nlZkgPiBjb250aW51ZVwtdG9cLWhhdmU7CivkurrpoK0gPiBudW1iZXJcLW9mXC1wZW9wbGU7CivmjqXkurogPiB0b1wtbWVldFwtYVwtcGVyc29uOwor5ZyL5YqbID4gYVwtbmF0aW9uJydzXC1wb3dlcjsKK+aJrua8lCA+IHBsYXlcLXRoZVwtcGFydFwtb2Y7Civnl4Xlm6AgPiBjYXVzZVwtb2ZcLWRpc2Vhc2U7Civou43kuosgPiBtaWxpdGFyeVwtYWZmYWlyczsKK+S9lOe3miA+IGJ1c3lcLVwodGVsZXBob25lXCk7CivlsbHmnZEgPiBtb3VudGFpblwtdmlsbGFnZTsKK+WxrOaWvCA+IGJlXC1jbGFzc2lmaWVkXC1hczsKK+aLkOW9jiA+IHRvXC10dXJuXC1hXC1jb3JuZXI7Civnl4Xljp8gPiBjYXVzZVwtb2ZcLWRpc2Vhc2U7CivogZroroogPiBcKG51Y2xlYXJcKVwtZnVzaW9uOwor6KGo5YaKID4gc3RhdGlzdGljYWxcLWZvcm07Civlr6nnkIYgPiB0b1wtaGVhclwtXChhXC1jYXNlXCk7CivmioTmnKwgPiBoYW5kd3JpdHRlblwtY29weTsKK+Wuiee9riA+IGZpbmRcLWFcLXBsYWNlXC1mb3I7CivoiJTlkK4gPiB0b1wtbGlja1wtYW5kXC1zdWNrOwor5L6/5qmLID4gdGVtcG9yYXJ5XC1icmlkZ2U7CivnrYbmiLAgPiB3cml0dGVuXC1wb2xlbWljczsKK+S+v+acjSA+IGV2ZXJ5ZGF5XC1jbG90aGVzOwor5oSf6KydID4gXChleHByZXNzXClcLXRoYW5rczsKK+S4i+mmrCA+IGRpc21vdW50XC1hXC1ob3JzZTsKK+WuieecoCA+IHNsZWVwXC1wZWFjZWZ1bGx5Owor5bGk5bGkID4gbGF5ZXJcLXVwb25cLWxheWVyOwor562G5bi9ID4gdGhlXC1jYXBcLW9mXC1hXC1wZW47CivosrbnvqkgPiBkZXJvZ2F0b3J5XC1zZW5zZTsKK+S9nOazlSA+IGNvdXJzZVwtb2ZcLWFjdGlvbjsKK+a8lOWToSA+IGFjdG9yXC1vclwtYWN0cmVzczsKK+mRkuWIpSA+IHRvXC1kaWZmZXJlbnRpYXRlOwor5L+d5a+GID4gbWFpbnRhaW5cLXNlY3JlY3k7CivnrYblpZcgPiB0aGVcLWNhcFwtb2ZcLWFcLXBlbjsKK+WAn+WKqSA+IHRvXC1nZXRcLWhlbHBcLWZyb207CivnlJjlnLAgPiBcKG1haGF0bWFcKVwtZ2FuZGhpOwor5rOo6YeNID4gcGF5XC1hdHRlbnRpb25cLXRvOwor5oe45o6bID4gXChjYXJcKVwtc3VzcGVuc2lvbjsKK+S4jeisnSA+IGRvbicndFwtbWVudGlvblwtaXQ7CivmnKznvqkgPiBvcmlnaW5hbFwtbWVhbmluZzsKK+S8tOaYnyA+IGNvbXBhbmlvblwtXChzdGFyXCk7Civkv53lhaggPiBzYXZlXC1mcm9tXC1kYW1hZ2U7CivmioTku7YgPiBkdXBsaWNhdGVcLVwoY29weVwpOwor57236KqyID4gc3R1ZGVudCcnc1wtc3RyaWtlOwor6YeN6YeNID4gbGF5ZXJcLXVwb25cLWxheWVyOwor5oeJ5oiwID4gZmFjZVwtYVwtY2hhbGxlbmdlOwor5qC45aiBID4gbnVjbGVhclwtc3RyZW5ndGg7CivomZznjbIgPiBjYXB0dXJlXC1cKHBlb3BsZVwpOwor5pys56WoID4gY2FzaGllcicnc1wtY2hlcXVlOwor5L6L5Y+lID4gZXhhbXBsZVwtc2VudGFuY2U7Civlronlvr0gPiBhbmh1aVwtXChwcm92aW5jZVwpOwor6JOW6bq7ID4gY2FzdG9yXC1vaWxcLXBsYW50Owor56uZ5Y+wID4gcmFpbHdheVwtcGxhdGZvcm07CivnkIbmnIMgPiBwYXlcLWF0dGVudGlvblwtdG87CivnjbLnm4ogPiBvYnRhaW5cLWFcLWJlbmVmaXQ7Civku4rmmJQgPiBwYXN0XC1hbmRcLXByZXNlbnQ7Civmnb/moJcgPiBjaGluZXNlXC1jaGVzdG51dDsKK+WQuOeuoSA+IFwoZHJpbmtpbmdcKVwtc3RyYXc7CivkurrmlbggPiBudW1iZXJcLW9mXC1wZW9wbGU7Civlrrbli5kgPiBob3VzZWhvbGRcLWR1dGllczsKK+awkemWkyA+IGFtb25nXC10aGVcLXBlb3BsZTsKK+WpmuemriA+IHdlZGRpbmdcLWNlcmVtb255Owor6K2m6KGbID4gXChzZWN1cml0eVwpXC1ndWFyZDsKK+S5vuadryA+IHRvXC1kcmlua1wtYVwtdG9hc3Q7CivnjL/njLQgPiBhcGVzXC1hbmRcLW1vbmtleXM7CivkuKbmv4AgPiBzaHVudFwtZXhjaXRhdGlvbjsKK+mHj+e2sSA+IGRpbWVuc2lvblwtXCh1bml0XCk7Civos6rllY8gPiBcKGFza1wtYVwpXC1xdWVzdGlvbjsKK+iSkOmbhiA+IHRvXC1nYXRoZXJcLVwoZGF0YVwpOwor5pqR55ifID4gdHJvcGljYWxcLWRpc2Vhc2U7CivljZropr0gPiByZWFkXC1leHRlbnNpdmVseTsKK+a3seWFpSA+IHBlbmV0cmF0ZVwtZGVlcGx5Owor5Li55qGCID4gb3JhbmdlXC1vc21hbnRodXM7Civmnb/lo4EgPiB3b29kZW5cLXBhcnRpdGlvbjsKK+afkOS6uiA+IGFcLWNlcnRhaW5cLXBlcnNvbjsKK+aciOabhiA+IG1vbnRobHlcLWNhbGVuZGFyOwor5rK755eFID4gdHJlYXRcLWFuXC1pbGxuZXNzOwor5Y2B6KqhID4gdGVuXC1jb21tYW5kbWVudHM7CivlpJbplbcgPiBmb3JlaWduXC1taW5pc3RlcjsKK+mFjeiXpSA+IGRpc3BlbnNlXC1cKGRydWdzXCk7CivlrZfkuLIgPiBjaGFyYWN0ZXJcLXN0cmluZzsKK+S4reaWhyA+IGNoaW5lc2VcLWxhbmd1YWdlOwor5aSn6YG4ID4gZ2VuZXJhbFwtZWxlY3Rpb247CivllJDku6MgPiB0aGVcLXRhbmdcLWR5bmFzdHk7CivmgKfnl4UgPiB2ZW5lcmVhbFwtZGlzZWFzZTsKK+WQm+asiiA+IG1vbmFyY2hpYWxcLXBvd2VyOwor6JeP5paHID4gdGliZXRhblwtbGFuZ3VhZ2U7CivoroDniakgPiByZWFkaW5nXC1tYXRlcmlhbDsKK+mCiumYsiA+IGZyb250aWVyXC1kZWZlbmNlOwor5ZCR5p2xID4gdG93YXJkc1wtdGhlXC1lYXN0Owor6ZuG6YymID4gYmVzdFwtb2ZcLXRoZVwtYmVzdDsKK+e9t+aVmSA+IHRlYWNoZXInJ3NcLXN0cmlrZTsKK+WkluiqniA+IGZvcmVpZ25cLWxhbmd1YWdlOwor6Kqy6KGoID4gc2Nob29sXC10aW1ldGFibGU7CivoqqTop6MgPiBtaXN1bmRlcnN0YW5kaW5nOwor5ZCM5pmCID4gYXRcLXRoZVwtc2FtZVwtdGltZTsKK+S4jeW/mSA+IHRoZXJlJydzXC1ub1wtaHVycnk7Civpm4bpg7UgPiBzdGFtcFwtY29sbGVjdGluZzsKK+W7oOmVtyA+IGZhY3RvcnlcLWRpcmVjdG9yOwor6K6K5rOVID4gcG9saXRpY2FsXC1yZWZvcm07Civms6LmipggPiB0d2lzdHNcLWFuZFwtdHVybnM7CivnvqTls7YgPiBncm91cFwtb2ZcLWlzbGFuZHM7Civniq/ms5UgPiB0b1wtYnJlYWtcLXRoZVwtbGF3Owor5LiN5bCRID4gbm90XC1cKGp1c3RcKVwtYVwtZmV3Owor5bm06b2hID4gXChhXC1wZXJzb24nJ3NcKVwtYWdlOwor5q+U57+8ID4gZmx5XC13aW5nXC10b1wtd2luZzsKK+elnuWlhyA+IG1hZ2ljYWxcLW15c3RpY2FsOwor56aB5ZOBID4gY29udHJhYmFuZFwtZ29vZHM7CivmnIDlhYggPiBcKHRoZVwpXC12ZXJ5XC1maXJzdDsKK+WphuWutiA+IGh1c2JhbmQnJ3NcLWZhbWlseTsKK+aYjua3qCA+IGJyaWdodFwtYW5kXC1jbGVhbjsKK+mHjeaFtiA+IGNob25ncWluZ1wtXChjaXR5XCk7CivlqYblqYYgPiBodXNiYW5kJydzXC1tb3RoZXI7CivlkIPlrowgPiB0b1wtZmluaXNoXC1lYXRpbmc7CivpgLzov5EgPiBwcmVzc1wtb25cLXRvd2FyZHM7CivloLHppKggPiBuZXdzcGFwZXJcLW9mZmljZTsKK+mbu+e6nCA+IFwoZWxlY3RyaWNcKVwtY2FibGU7Civni4DmhYsgPiBzdGF0ZVwtb2ZcLWFmZmFpcnM7CivkuK3ku4sgPiBhZ2VudFwtXChjb21wdXRlclwpOwor5LiN5YWJID4gbm90XC10aGVcLW9ubHlcLW9uZTsKK+aakeWkqSA+IGhvdFwtXChzdW1tZXJcKVwtZGF5Owor6I+v6KqeID4gY2hpbmVzZVwtbGFuZ3VhZ2U7CivkuI3lg4UgPiBub3RcLXRoZVwtb25seVwtb25lOwor5Y+N5bCNID4gdG9cLWZpZ2h0XC1hZ2FpbnN0Owor5LiN5LmFID4gbm90XC1sb25nXC1cKGFmdGVyXCk7CivlpKnniLYgPiBoZWF2ZW5seVwtZmF0aGVyOwor54m55b61ID4gY2hhcmFjdGVyaXN0aWNzOwor5pqR5YGHID4gc3VtbWVyXC12YWNhdGlvbjsKK+aTuuiEqyA+IGJyZWFrXC1hd2F5XC1mcm9tOwor5Y2K5pW4ID4gaGFsZlwtdGhlXC1udW1iZXI7CivlhrDpnJwgPiBtb3JhbFwtaW50ZWdyaXR5Owor5Yu75rqcID4gZXZlblwtYW5kXC1zbW9vdGg7Civljp/lp5QgPiB0aGVcLXdob2xlXC1zdG9yeTsKK+eJueWvqyA+IGZlYXR1cmVcLWFydGljbGU7CivmmKXlpKkgPiBzcHJpbmdcLVwoc2Vhc29uXCk7CivmraLnl5sgPiB0b1wtcmVsaWV2ZVwtcGFpbjsKK+WPm+S6giA+IGFybWVkXC1yZWJlbGxpb247CivmlofmqpQgPiBcKGNvbXB1dGVyXClcLWZpbGU7Civnt6znlLggPiBteWFubWFyXC1cKGJ1cm1hXCk7CivlpLHmnJsgPiBiZVwtZGlzYXBwb2ludGVkOwor57ay56uZID4gbmV0d29ya1wtc3RhdGlvbjsKK+mWi+mWgCA+IG9wZW5cLVwodGhlXClcLWRvb3I7CivntpPnrqEgPiBiZVwtaW5cLWNoYXJnZVwtb2Y7CivljYrlpKkgPiBoYWxmXC1vZlwtdGhlXC1kYXk7Civoqp7ml48gPiBsYW5ndWFnZVwtYnJhbmNoOwor5b6A5bm0ID4gaW5cLWZvcm1lclwteWVhcnM7Civml6XloLEgPiBkYWlseVwtbmV3c3BhcGVyOwor5YWJ6Zu7ID4gb3B0b1wtZWxlY3RyaWNhbDsKK+iqnuaUryA+IGxhbmd1YWdlXC1icmFuY2g7Civnmb3pkLUgPiBnYWx2YW5pemVkXC1pcm9uOwor6ZuF5q2MID4gc29uZ1wtb2ZcLXNvbG9tb247CivlvbzlsrggPiB0aGVcLW90aGVyXC1zaG9yZTsKK+mFjeWQiCA+IGNvb3JkaW5hdGVcLXdpdGg7CivloLHns7sgPiBuZXdzcGFwZXJcLWNoYWluOwor5qiZ6YePID4gc2NhbGFyXC1xdWFudGl0eTsKK+WNl+WMlyA+IG5vcnRoXC1hbmRcLXNvdXRoOwor5q+U5a65ID4gc3BlY2lmaWNcLXZvbHVtZTsKK+ebiOiZpyA+IHByb2ZpdFwtYW5kXC1sb3NzOwor5Yu45bCOID4gdHJ5XC10b1wtY29udmluY2U7CivpmaPnh58gPiBncm91cFwtb2ZcLXBlb3BsZTsKK+W5vueZviA+IHNldmVyYWxcLWh1bmRyZWQ7CivlpKflr6sgPiBjYXBpdGFsXC1sZXR0ZXJzOwor6YGO5rS7ID4gbGl2ZVwtb25lJydzXC1saWZlOwor54mM5L2NID4gbWVtb3JpYWxcLXRhYmxldDsKK+aXqeS6myA+IFwoYVwtYml0XClcLWVhcmxpZXI7CivoqrLlpJYgPiBleHRyYWN1cnJpY3VsYXI7CivmlLbmi74gPiB0b1wtcHV0XC1pblwtb3JkZXI7CivntrLmrrUgPiBuZXR3b3JrXC1zZWdtZW50Owor5byf5byfID4geW91bmdlclwtYnJvdGhlcjsKK+mBsuaXqSA+IHNvb25lclwtb3JcLWxhdGVyOwor55+u5bCPID4gc2hvcnRcLWFuZFwtc21hbGw7Civmr5Tlg7kgPiBwcmljZVwtcmVsYXRpb25zOwor5paw5Lu7ID4gbmV3bHlcLWFwcG9pbnRlZDsKK+mcuOS9lCA+IGZvcmNpYmx5XC1vY2N1cHk7Civnl4XprZQgPiBzZXJpb3VzXC1pbGxuZXNzOwor5bi455SoID4gaW5cLWNvbW1vblwtdXNhZ2U7CivlhrDno5ogPiBpY2VcLWNyZWFtXC1icmljazsKK+eZveiPnCA+IGNoaW5lc2VcLWNhYmJhZ2U7CivlvLfliqAgPiBpbXBvc2VcLWJ5XC1mb3JjZTsKK+WkluS6iyA+IGZvcmVpZ25cLWFmZmFpcnM7CivpgorlnLAgPiBib3JkZXJcLWRpc3RyaWN0Owor6IiM6Z2iID4gYmxhZGVcLW9mXC10b25ndWU7CivokZfkvZwgPiBhXC1saXRlcmFyeVwtd29yazsKK+eZveexsyA+IFwocG9saXNoZWRcKVwtcmljZTsKK+eAleiHqCA+IG9uXC10aGVcLXZlcmdlXC1vZjsKK+aQjeebiiA+IHByb2ZpdFwtYW5kXC1sb3NzOwor6YG45ZauID4gXChzb2Z0d2FyZVwpXC1tZW51Owor5Z+35rOVID4gbGF3XC1lbmZvcmNlbWVudDsKK+mAsuWxlSA+IHRvXC1tYWtlXC1oZWFkd2F5Owor54K65q2kID4gZm9yXC10aGlzXC1yZWFzb247Civlu6Dlj7IgPiBmYWN0b3J5XC1oaXN0b3J5Owor5YWJ56OBID4gbWFnbmV0b1wtb3B0aWNhbDsKK+mamOWPoyA+IFwobW91bnRhaW5cKVwtcGFzczsKK+e2suWdgCA+IFwoaW50ZXJuZXRcKVwtc2l0ZTsKK+eVq+mdoiA+IFwocGljdHVyZVwpXC1mcmFtZTsKK+iPnOWcsCA+IHZlZ2V0YWJsZVwtZmllbGQ7CivnlZzpoZ4gPiBkb21lc3RpY1wtYW5pbWFsOwor5oqx6aSKID4gYWRvcHRcLVwoYVwtY2hpbGRcKTsKK+WfjuaokyA+IGNpdHlcLWdhdGVcLXRvd2VyOwor5o6h56iuID4gc2VlZFwtY29sbGVjdGluZzsKK+iKseeZvSA+IGdyaXp6bGVkXC1cKGhhaXJcKTsKK+WxjemrlCA+IFwobGlmZWxlc3NcKVwtYm9keTsKK+WcluewvSA+IFwoY29tcHV0ZXJcKVwtaWNvbjsKK+W3tOacmyA+IGxvb2tcLWZvcndhcmRcLXRvOwor5bGk6ZuyID4gc3RyYXR1c1wtXChjbG91ZFwpOwor57GM56K8ID4gYmFyZ2FpbmluZ1wtY2hpcDsKK+mZjeWDuSA+IHByaWNlXC1yZWR1Y3Rpb247CivmqJnmqIEgPiBcKG1hcmtpbmdcKVwtc3Rha2U7CivplonmnIMgPiBjbG9zZVwtYVwtbWVldGluZzsKK+e0lOWxrCA+IHB1cmVcLWFuZFwtc2ltcGxlOwor5YWJ5qauID4gaG9ub3JcLWFuZFwtZ2xvcnk7CivovqblrbggPiB0b1wtcnVuXC1hXC1zY2hvb2w7CivmqJnmnYYgPiBzdXJ2ZXlvcicnc1wtcG9sZTsKK+W5o+WItiA+IGN1cnJlbmN5XC1zeXN0ZW07CivloLHliLAgPiByZXBvcnRcLWZvclwtZHV0eTsKK+W5tOS7vSA+IHBhcnRpY3VsYXJcLXllYXI7Civln7rlnLAgPiBcKG1pbGl0YXJ5XClcLWJhc2U7CivlhYnmmI4gPiBicmlnaHRcLVwoZnV0dXJlXCk7Civkv53ph4sgPiByZWxlYXNlXC1vblwtYmFpbDsKK+WwhOmguyA+IHJhZGlvXC1mcmVxdWVuY3k7CivprKXniK0gPiBzdHJ1Z2dsZVwtXCh3aXRoXCk7Civoo6HmoLkgPiBcKHJvbmFsZFwpXC1yZWFnYW47CivmipfooaEgPiBjb250ZW5kXC1hZ2FpbnN0Owor57Sa5YilID4gXChtaWxpdGFyeVwpXC1yYW5rOwor562G6KqkID4gYVwtc2xpcFwtb2ZcLWFcLXBlbjsKK+WFq+WvtiA+IGVpZ2h0XC10cmVhc3VyZXM7Civnmb7lubQgPiBhXC1odW5kcmVkXC15ZWFyczsKK+aRmOWAnyA+IHRvXC1ib3Jyb3dcLW1vbmV5Owor5ZyW5qiZID4gXChjb21wdXRlclwpXC1pY29uOwor6ZW35a6YID4gc2VuaW9yXC1vZmZpY2lhbDsKK+WFpeWigyA+IGVudGVyXC1hXC1jb3VudHJ5Owor5YWS5aqzID4gZGF1Z2h0ZXJcLWluXC1sYXc7Civoh4LntJcgPiBcKGJsYWNrXClcLWFybWJhbmQ7Civou43moKEgPiBtaWxpdGFyeVwtc2Nob29sOwor5oqK6Ii1ID4gaG9sZFwtdGhlXC1ydWRkZXI7CivooqvmjZUgPiBiZVwtdW5kZXJcLWFycmVzdDsKK+mmlumVtyA+IHNlbmlvclwtb2ZmaWNpYWw7Civnmb7ljYEgPiBhXC1odW5kcmVkXC1vclwtc287CivlnZDlpb0gPiB0b1wtc2l0XC1wcm9wZXJseTsKK+eVnOeUnyA+IGRvbWVzdGljXC1hbmltYWw7CivpjKbpm54gPiBnb2xkZW5cLXBoZWFzYW50Owor6Ieq5q66ID4gdG9cLWtpbGxcLW9uZXNlbGY7Civpq5jmmIIgPiBpblwtaGlnaFwtc3Bpcml0czsKK+epv+mBjiA+IHRvXC1wYXNzXC10aHJvdWdoOwor5YKZ5oiwID4gcHJlcGFyZVwtZm9yXC13YXI7CivlronouqsgPiBtYWtlXC1vbmUnJ3NcLWhvbWU7CivmuLjoqqogPiBkcnVtXC11cFwtc3VwcG9ydDsKK+iHs+aWvCA+IGdvXC1zb1wtZmFyXC1hc1wtdG87CivnlJ/niakgPiBsaXZpbmdcLWNyZWF0dXJlOwor5oi257GNID4gY2Vuc3VzXC1yZWdpc3RlcjsKK+agoeiIjSA+IHNjaG9vbFwtYnVpbGRpbmc7CivlloToia8gPiBnb29kXC1hbmRcLWhvbmVzdDsKK+i7jeWCmSA+IFwobWlsaXRhcnlcKVwtYXJtczsKK+mmluiFpiA+IGhlYWRcLVwob2ZcLXN0YXRlXCk7CivlronokawgPiBidXJ5XC1cKHRoZVwtZGVhZFwpOwor5qW15YqbID4gZG9cLWF0XC1hbGxcLWNvc3RzOwor6LeR5q2lID4gdG9cLXdhbGtcLXF1aWNrbHk7CivosrboqZ4gPiBkZXJvZ2F0b3J5XC10ZXJtOwor5LqS6YCjID4gaW50ZXJjb25uZWN0aW9uOwor5oKy6bO0ID4gdXR0ZXJcLXNhZFwtY2FsbHM7Civmu7/mhI8gPiB0b1wtYmVcLXNhdGlzZmllZDsKK+a1t+mBiyA+IHNoaXBwaW5nXC1ieVwtc2VhOwor55WZ5a24ID4gdG9cLXN0dWR5XC1hYnJvYWQ7Civkvr/mop0gPiBcKGluZm9ybWFsXClcLW5vdGU7CivnlJrmiJYgPiBzb1wtbXVjaFwtc29cLXRoYXQ7CivlsbHls7AgPiBcKG1vdW50YWluXClcLXBlYWs7Civmuqvmn5QgPiBnZW50bGVcLWFuZFwtc29mdDsKK+mrmOS4rSA+IGhpZ2hcLWFuZFwtbWlkZGxlOwor6IOD55eFID4gc3RvbWFjaFwtdHJvdWJsZTsKK+WQjOm9oSA+IG9mXC10aGVcLXNhbWVcLWFnZTsKK+WQuOmfsyA+IHNvdW5kXC1hYnNvcmJpbmc7CivpurvphokgPiB0b1wtYW5hZXN0aGV0aXplOwor5oqV5aWUID4gdG9cLXNlZWtcLXNoZWx0ZXI7CivkvovmnIMgPiByZWd1bGFyXC1tZWV0aW5nOwor6aSF6IKlID4gY2FrZVwtZmVydGlsaXplcjsKK+aatOmbqCA+IHRvcnJlbnRpYWxcLXJhaW47Civkvr/lrrQgPiBpbmZvcm1hbFwtZGlubmVyOwor5LiK6L+wID4gYWJvdmVcLW1lbnRpb25lZDsKK+WvpuW9iCA+IGxpdmVcLWFtbXVuaXRpb247CivnlKLlgLwgPiB2YWx1ZVwtb2ZcLW91dHB1dDsKK+elneizgCA+IHRvXC1jb25ncmF0dWxhdGU7Civku6XngrogPiBjb25zaWRlclwtXCh0aGF0XCk7CivmoLjlvYggPiBudWNsZWFyXC13YXJoZWFkOwor5LiK6KqyID4gdG9cLWF0dGVuZFwtY2xhc3M7CivnrKblkIggPiBpblwta2VlcGluZ1wtd2l0aDsKK+aKgOWAhiA+IHRyaWNreVwtbWFuZXV2ZXI7Civms7Doqp4gPiB0aGFpXC1cKGxhbmd1YWdlXCk7Civlr7Xlo54gPiBzcG9pbFwtXChhXC1jaGlsZFwpOwor5Lqk55WMID4gY29tbW9uXC1ib3VuZGFyeTsKK+S4ieiQrCA+IHRoaXJ0eVwtdGhvdXNhbmQ7CivosqjmupAgPiBzdXBwbHlcLW9mXC1nb29kczsKK+eql+W4mCA+IHdpbmRvd1wtY3VydGFpbnM7CivmnJ/npaggPiBwcm9taXNzb3J5XC1ub3RlOwor5Y+j6KqeID4gc3Bva2VuXC1sYW5ndWFnZTsKK+engeeHnyA+IHByaXZhdGVseVwtb3duZWQ7Civlr5LlgYcgPiB3aW50ZXJcLXZhY2F0aW9uOwor5ZOA5q2MID4gYVwtbW91cm5mdWxcLXNvbmc7Civnib3pgKMgPiBcKGJlXClcLWltcGxpY2F0ZWQ7CivmgKfooYwgPiBzZXh1YWxcLWFjdGl2aXR5Owor5a245aOrID4gYmFjaGVsb3JcLWRlZ3JlZTsKK+iyoOaTlCA+IFwoYmVhclwtYVwpXC1idXJkZW47CivkuIDnp5ggPiBmaXJzdFwtc2VjcmV0YXJ5Owor6Jel55O2ID4gbWVkaWNpbmVcLWJvdHRsZTsKK+aFmuaEpyA+IFwodG9cLWJlXClcLWFzaGFtZWQ7CivkurrmiY0gPiB0YWxlbnRlZFwtcGVyc29uOwor5LiN55SYID4gdW5yZWNvbmNpbGVkXC10bzsKK+ePreWtkCA+IG9yZ2FuaXplZFwtZ3JvdXA7Civmr4/pmpQgPiBhdFwtaW50ZXJ2YWxzXC1vZjsKK+aEm+aItCA+IGxvdmVcLWFuZFwtZXN0ZWVtOwor5oSb5oiAID4gYmVcLWluXC1sb3ZlXC13aXRoOwor5p2t5beeID4gaGFuZ3pob3VcLVwoY2l0eVwpOwor5ZWP5LiWID4gdG9cLWJlXC1wdWJsaXNoZWQ7CivmgrLms6MgPiB3ZWVwXC13aXRoXC1ncmllZjsKK+azleeQhiA+IGxlZ2FsXC1wcmluY2lwbGU7Civnp6nluo8gPiBvcmRlclwtXChvcmRlcmx5XCk7CivmlL/pu6ggPiBwb2xpdGljYWxcLXBhcnR5Owor5ZCN54mHID4gXChidXNpbmVzc1wpXC1jYXJkOwor5peF6LK7ID4gdHJhdmVsXC1leHBlbnNlczsKK+iyoeWcmCA+IGZpbmFuY2lhbFwtZ3JvdXA7Civmspnnn7MgPiBzYW5kXC1hbmRcLXN0b25lczsKK+emgeaenCA+IGZvcmJpZGRlblwtZnJ1aXQ7Civpg7XpgZ4gPiB0b1wtc2VuZFwtYnlcLW1haWw7CivmnpDlh7ogPiB0b1wtc2VwZXJhdGVcLW91dDsKK+WllOilsiA+IGxvbmdcLXJhbmdlXC1yYWlkOwor5p2/5Yi3ID4gc2NydWJiaW5nXC1icnVzaDsKK+acjeW+niA+IG9iZXlcLVwoYW5cLW9yZGVyXCk7Civmlr3ooYwgPiB0b1wtcHV0XC1pblwtcGxhY2U7CivnvbDmrL4gPiBcKGltcG9zZVwtYVwpXC1maW5lOwor6ZuM6ZuEID4gbWFsZVwtYW5kXC1mZW1hbGU7Civpgorpn7MgPiBsYXRlcmFsXC1cKHNvdW5kXCk7Civmr43oqp4gPiBuYXRpdmVcLWxhbmd1YWdlOwor5q+N6KaqID4gbW90aGVyXC1cKGZvcm1hbFwpOwor5rOw5paHID4gdGhhaVwtXChsYW5ndWFnZVwpOwor56OB55ukID4gXChjb21wdXRlclwpXC1kaXNrOwor5aqz5ammID4gZGF1Z2h0ZXJcLWluXC1sYXc7CivnpKbmpa0gPiBtaW5pbmdcLWluZHVzdHJ5Owor5rWB5aSxID4gYmVcLWRyYWluZWRcLWF3YXk7CivlvJXotbcgPiB0b1wtZ2l2ZVwtcmlzZVwtdG87Civwo460ID4gc3R1bXBcLW9mXC1hXC10cmVlOwor6K2J54mpID4gZXhoaWJpdFwtXChsZWdhbFwpOwor57ir6KOcID4gZGFyblwtXChjbG90aGluZ1wpOwor57eo6YG4ID4gc2VsZWN0XC1hbmRcLWVkaXQ7CivkuIrlrbggPiB0b1wtZ29cLXRvXC1zY2hvb2w7CivpoLvluLYgPiBmcmVxdWVuY3lcLXJhbmdlOwor5bqt6ZW3ID4gcHJlc2lkaW5nXC1qdWRnZTsKK+aUv+imiyA+IHBvbGl0aWNhbFwtdmlld3M7CivmgrLlmIYgPiBzaWdoXC1tb3VybmZ1bGx5Owor6aC75a+sID4gZnJlcXVlbmN5XC1yYW5nZTsKK+WNiueUnyA+IGhhbGZcLWFcLWxpZmV0aW1lOwor5Y2a54mpID4gbmF0dXJhbFwtc2NpZW5jZTsKK+mDteelqCA+IFwocG9zdGFnZVwpXC1zdGFtcDsKK+aBsOWlvSA+IGFzXC1pdFwtdHVybnNcLW91dDsKK+awo+a6qyA+IGFpclwtdGVtcGVyYXR1cmU7Civnn67og5YgPiBzaG9ydFwtYW5kXC1zdG91dDsKK+iqnuezuyA+IGxhbmd1YWdlXC1zeXN0ZW07CivororlvaIgPiBiZVwtb3V0XC1vZlwtc2hhcGU7CivljZfmtbcgPiBzb3V0aFwtY2hpbmFcLXNlYTsKK+e+juWFgyA+IGFtZXJpY2FuXC1kb2xsYXI7CivkuJbkurogPiBcKGNvbW1vblwpXC1wZW9wbGU7CivlkI3llq4gPiBsaXN0XC1cKG9mXC1uYW1lc1wpOwor6Zu756OBID4gZWxlY3Ryb21hZ25ldGljOwor5rCR5qyKID4gY2l2aWxcLWxpYmVydGllczsKK+aTmuiqqiA+IGl0XC1pc1wtc2FpZFwtdGhhdDsKK+WOn+aApyA+IG9yaWdpbmFsXC1uYXR1cmU7Civmlbjnmb4gPiBzZXZlcmFsXC1odW5kcmVkOwor5pON6KqyID4gbWlsaXRhcnlcLWRyaWxsOwor5Y2U5pyDID4gYW5cLWFzc29jaWF0aW9uOwor5paH54mpID4gY3VsdHVyYWxcLXJlbGljOwor6YCa6KiKID4gY29tbXVuaWNhdGlvbnM7CivljbHmiL8gPiBkZWNyZXBpdFwtaG91c2U7Civnibnlt6UgPiBzZWNyZXRcLXNlcnZpY2U7Civpm7vnh4ggPiBlbGVjdHJpY1wtbGlnaHQ7CivljJfmpbUgPiB0aGVcLW5vcnRoXC1wb2xlOwor6aCQ5LuYID4gcGF5XC1pblwtYWR2YW5jZTsKK+auuuawoyA+IG11cmRlcm91c1wtbG9vazsKK+ejgeWgtCA+IG1hZ25ldGljXC1maWVsZDsKK+eJmeW6iiA+IGFsdmVvbGFyXC1yaWRnZTsKK+WPg+WKoCA+IHRvXC1wYXJ0aWNpcGF0ZTsKK+awkeaEjyA+IHB1YmxpY1wtb3BpbmlvbjsKK+WmueWmuSA+IHlvdW5nZXJcLXNpc3RlcjsKK+W+gOaXpSA+IGluXC1mb3JtZXJcLWRheXM7Civli5jmuKwgPiB0b1wtaW52ZXN0aWdhdGU7CivlhrDph4sgPiBcKG9mXC1taXNnaXZpbmdzOwor5aSn5qiTID4gbGFyZ2VcLWJ1aWxkaW5nOwor5oCq5Lq6ID4gc3RyYW5nZVwtcGVyc29uOwor54ef5qWtID4gdG9cLWRvXC1idXNpbmVzczsKK+WhkeiGoCA+IHBsYXN0aWNcLWNlbWVudDsKK+aZmuS4iiA+IGluXC10aGVcLWV2ZW5pbmc7CivmlaPmraUgPiB0b1wtdGFrZVwtYVwtd2FsazsKK+itmOWIpSA+IHRvXC1kaXN0aW5ndWlzaDsKK+WkseaOpyA+IG91dFwtb2ZcLWNvbnRyb2w7CivmlbjmnIggPiBzZXZlcmFsXC1tb250aHM7CivlvoDlvqkgPiB0b1wtcmVjaXByb2NhdGU7CivpnbbloLQgPiBzaG9vdGluZ1wtcmFuZ2U7Civns5bphosgPiBzd2VldFwtYW5kXC1zb3VyOwor5biz6JmfID4gYWNjb3VudFwtbnVtYmVyOwor54iq5a2QID4gXChhbmltYWwnJ3NcKVwtcGF3Owor5Yil566hID4gbm9cLW1hdHRlclwtXCh3aG87CivliKjnqIsgPiBwbGFuaW5nXC1sZW5ndGg7CivntKDoj5wgPiB2ZWdldGFibGVcLWRpc2g7Civplovou4ogPiB0b1wtZHJpdmVcLWFcLWNhcjsKK+eFmeeBqyA+IHNtb2tlXC1hbmRcLWZpcmU7CivovYnpgYsgPiB0cmFuc3BvcnRhdGlvbjsKK+W3oeitpiA+IHBvbGljZVwtb2ZmaWNlcjsKK+aUvuaYoCA+IHNob3dcLVwoYVwtbW92aWVcKTsKK+ijvemAoCA+IHRvXC1tYW51ZmFjdHVyZTsKK+WIqeeOhyA+IGludGVyZXN0XC1yYXRlczsKK+i8v+irliA+IHB1YmxpY1wtb3BpbmlvbjsKK+W8seWwjyA+IHNtYWxsXC1hbmRcLXdlYWs7CivmlZ3lsaMgPiB3b3JuXC1vdXRcLXNob2VzOwor55+u5a2QID4gYVwtc2hvcnRcLXBlcnNvbjsKK+mAn+axuiA+IHF1aWNrXC1kZWNpc2lvbjsKK+mXnOeohSA+IFwoY3VzdG9tc1wpXC1kdXR5Owor55m96JiHID4gY29tbW9uXC1wZXJpbGxhOwor5q+U5YC8ID4gc3BlY2lmaWNcLXZhbHVlOwor5Z+6552jID4gamVzdXNcLVwoY2hyaXN0XCk7CivmjqLot68gPiB0b1wtZmluZFwtYVwtcGF0aDsKK+mBmeaOpyA+IHJlbW90ZVwtY29udHJvbDsKK+mBmeaEnyA+IHJlbW90ZVwtc2Vuc2luZzsKK+eZveiJsiA+IHdoaXRlXC1cKGNvbG91clwpOwor5pKl5qy+ID4gYWxsb2NhdGVcLWZ1bmRzOwor5bug5belID4gZmFjdG9yeVwtd29ya2VyOwor5q2j5aW9ID4ganVzdFwtXChpblwtdGltZVwpOwor5o6i6KaWID4gcGF5XC1hXC12aXNpdFwtdG87CivliKTmmI4gPiB0b1wtZGlzdGluZ3Vpc2g7CivlvJXlko4gPiB0YWtlXC10aGVcLWJsYW1lOwor5aOB5aCxID4gd2FsbFwtbmV3c3BhcGVyOwor5pS55ZaEID4gdG9cLW1ha2VcLWJldHRlcjsKK+mAoOaIkCA+IHRvXC1icmluZ1wtYWJvdXQ7CivluavmnIMgPiBzZWNyZXRcLXNvY2lldHk7Civmk43lv4MgPiB0b1wtd29ycnlcLWFib3V0Owor55m956iuID4gdGhlXC13aGl0ZVwtcmFjZTsKK+ijnOe8uiA+IGZpbGxcLWFcLXZhY2FuY3k7Civopb/mrZAgPiB3ZXN0ZXJuXC1ldXJvcGU7CivpgJXluq0gPiB2ZXJ5XC1kaWZmZXJlbnQ7Civoo5zntrQgPiBtZW5kXC1cKGNsb3RoZXNcKTsKK+mbhuS4rSA+IHRvXC1jb25jZW50cmF0ZTsKK+mBsuWIsCA+IHRvXC1hcnJpdmVcLWxhdGU7CivloLHlvqkgPiBtYWtlXC1yZXByaXNhbHM7CivnnJ/mg4UgPiByZWFsXC1zaXR1YXRpb247Civlt6jmtYEgPiBzdHJvbmdcLWN1cnJlbnQ7CivpgIDlrbggPiB0b1wtcXVpdFwtc2Nob29sOwor5buJ5YO5ID4gY2hlYXBseVwtcHJpY2VkOwor55eF6JmfID4gc2lja1wtcGVyc29ubmVsOwor5ZyY57WQID4gXChob2xkXC1hXClcLXJhbGx5Owor5ZyN57meID4gcmV2b2x2ZVwtYXJvdW5kOwor6L+R5bm0ID4gcmVjZW50XC15ZWFyXChzXCk7CivlgJLplokgPiB0b1wtZ29cLWJhbmtydXB0Owor5Ya35oiwID4gXCh0aGVcKVwtY29sZFwtd2FyOwor5YO555uuID4gXChtYXJrZWRcKVwtcHJpY2U7Civnl4XohIggPiBhYm5vcm1hbFwtcHVsc2U7CivmvLjoroogPiBncmFkdWFsXC1jaGFuZ2U7CivpgJrkv6EgPiB0b1wtY29tbXVuaWNhdGU7CivntIDlv7UgPiB0b1wtY29tbWVtb3JhdGU7CivplovmnIMgPiBoYXZlXC1hXC1tZWV0aW5nOwor5YWo5pmvID4gcGFub3JhbWljXC12aWV3Owor5YiA5Y+JID4ga25pZmVcLWFuZFwtZm9yazsKK+W4g+W4myA+IGNsb3RoXC1hbmRcLXNpbGs7Civmib7pjKIgPiB0b1wtZ2l2ZVwtY2hhbmdlOwor6KOc5rayID4gZmx1aWRcLWluZnVzaW9uOwor6LW36bueID4gc3RhcnRpbmdcLXBvaW50Owor5aCx5YiGID4gY2FsbFwtdGhlXC1zY29yZTsKK+aMuueriyA+IHRvXC1zdGFuZFwtZXJlY3Q7CivlhavmiJAgPiBlaWdodHlcLXBlcmNlbnQ7CivlhanmiYsgPiBkb3VibGVcLXRhY3RpY3M7CivmjqHmsrkgPiBvaWxcLWV4dHJhY3Rpb247Civot6jotoogPiB0b1wtc3RlcFwtYWNyb3NzOwor6LeR6YGTID4gYXRobGV0aWNcLXRyYWNrOwor5o+h5ouzID4gdG9cLW1ha2VcLWFcLWZpc3Q7Civmj6HmiYsgPiB0b1wtc2hha2VcLWhhbmRzOwor57K+5bmyID4gY3JhY2tcLVwodHJvb3BzXCk7CivplbflvoEgPiB0aGVcLWxvbmdcLW1hcmNoOwor55eF55ebID4gc2xpZ2h0XC1pbGxuZXNzOwor6Iux5a+4ID4gXChlbmdsaXNoXClcLWluY2g7CivmqJnlsLogPiBzdXJ2ZXlvcicnc1wtcm9kOwor5bCH6LuNID4gXChhcm15XClcLWdlbmVyYWw7CivlhanlnIsgPiBib3RoXC1jb3VudHJpZXM7CivlhajlnIsgPiBlbnRpcmVcLWNvdW50cnk7CivovKnlrZAgPiBhbGxcLW9uZScnc1wtbGlmZTsKK+mVt+WfjiA+IHRoZVwtZ3JlYXRcLXdhbGw7CivooajmsbogPiBkZWNpZGVcLWJ5XC12b3RlOwor5oiQ6YO9ID4gY2hlbmdkdVwtXChjaXR5XCk7CivprKXmmbogPiBiYXR0bGVcLW9mXC13aXRzOwor5YWr5Y2DID4gZWlnaHRcLXRob3VzYW5kOwor55eF5q23ID4gbWVkaWNhbFwtcmVjb3JkOwor5Ly46ZaLID4gdG9cLXN0cmV0Y2hcLW91dDsKK+a8lOekuiA+IHRvXC1kZW1vbnN0cmF0ZTsKK+eVoueUnyA+IGFsbFwtb25lJydzXC1saWZlOwor5o+h5YilID4gdG9cLXNoYWtlXC1oYW5kczsKK+WCs+aSrSA+IHRvXC1kaXNzZW1pbmF0ZTsKK+WFpeS8jSA+IGVudGVyXC10aGVcLWFybXk7Civpppbpg70gPiBjYXBpdGFsXC1cKGNpdHlcKTsKK+a9lOa3qCA+IGNsZWFuc2VcLVwoc2luc1wpOwor6IiM5qC5ID4gYmFja1wtb2ZcLXRvbmd1ZTsKK+WCjeaZmiA+IGluXC10aGVcLWV2ZW5pbmc7CivooYzmlL8gPiBhZG1pbmlzdHJhdGlvbjsKK+Wwj+iBsiA+IGluXC1hXC1sb3dcLXZvaWNlOwor56+h5pS5ID4gdG9cLXRhbXBlclwtd2l0aDsKK+aIquiHsyA+IHVwXC10b1wtXChhXC10aW1lXCk7CivotbfojYkgPiBkcmFmdFwtXChhXC1iaWxsXCk7CivmjKjmiZMgPiB0YWtlXC1hXC1iZWF0aW5nOwor5bGk55CGID4gc3RyYXRpZmljYXRpb247CivnkIPpnosgPiBhdGhsZXRpY1wtc2hvZXM7CivpjYvosrwgPiBmcmllZFwtZHVtcGxpbmc7Civmjojlkb0gPiB0b1wtZ2l2ZVwtb3JkZXJzOwor5qC46IO9ID4gbnVjbGVhclwtZW5lcmd5Owor5rWu6bueID4gZmxvYXRpbmdcLXBvaW50Owor55Sf54GrID4gdG9cLW1ha2VcLWFcLWZpcmU7Civoh6rlvp4gPiBzaW5jZVwtXChhXC10aW1lXCk7Civlr7bnn7MgPiBwcmVjaW91c1wtc3RvbmU7Civmo4Tmq7sgPiBhYmFuZG9uZWRcLWJhYnk7CivnlKLmrIogPiBwcm9wZXJ0eVwtcmlnaHQ7CivpvZLovKogPiBcKG1hY2hpbmVcKVwtZ2VhcjsKK+S+teeKryA+IHRvXC1pbmZyaW5nZVwtb247CivooYDlo5MgPiBibG9vZFwtcHJlc3N1cmU7Civnl4Xlk6EgPiBzaWNrXC1wZXJzb25uZWw7CivmuJvogqUgPiB0b1wtbG9zZVwtd2VpZ2h0Owor5Luj6KGoID4gcmVwcmVzZW50YXRpdmU7CivnlavlsZUgPiBhcnRcLWV4aGliaXRpb247CivnlJ/mlYggPiB0b1wtdGFrZVwtZWZmZWN0Owor5omN5rCjID4gbGl0ZWFyeVwtdGFsZW50Owor5pyf6ZaTID4gcGVyaW9kXC1vZlwtdGltZTsKK+WwiOashCA+IHNwZWNpYWxcLWNvbHVtbjsKK+WtuOexjSA+IHNjaG9vbFwtcm9sbFwoc1wpOwor56aB6aOfID4gZmFzdFwtXChub3RcLWVhdFwpOwor5p+Q56iuID4gc29tZVwta2luZFwtXChvZlwpOwor5bCH5pyDID4gd2lsbFwsXC1nb2luZ1wtdG87CivosY7otbcgPiBob2xkXC11cFwtXChoaWdoXCk7Civlr7bmm7ggPiB0cmVhc3VyZWRcLWJvb2s7CivlkIPpqZogPiB0b1wtYmVcLXN0YXJ0bGVkOwor5bCO5b2IID4gZ3VpZGVkXC1taXNzaWxlOwor5riF54i9ID4gZnJlc2hcLWFuZFwtY29vbDsKK+S6kuiBryA+IGludGVyY29ubmVjdGVkOwor5ZSx54mHID4gXCh2aW55bFwpXC1yZWNvcmQ7CivkuozogIUgPiBib3RoXC1cW29mXC10aGVtXF07CivmiY3lrZAgPiBnaWZ0ZWRcLXNjaG9sYXI7CivkvrXlrrMgPiB0b1wtZW5jcm9hY2hcLW9uOwor5a+25bqrID4gdHJlYXN1cmVcLWhvdXNlOwor5L+d5ZauID4gZ3VhcmFudGVlXC1zbGlwOwor5bCP5a24ID4gcHJpbWFyeVwtc2Nob29sOwor5LuU55WcID4gbmV3Ym9yblwtYW5pbWFsOwor5pys6ImyID4gbmF0dXJhbFwtY29sb3VyOwor5L6G5b6AID4gdG9cLWNvbWVcLWFuZFwtZ287CivpoYzot4sgPiBzaG9ydFwtY29tbWVudHM7CivkuI3op6MgPiBub3RcLXVuZGVyc3RhbmQ7Civmh67mha4gPiBcKGZlZWxcKVwtYW54aWV0eTsKK+S9meaCuCA+IGxpbmdlcmluZ1wtZmVhcjsKK+aIkOWwsSA+IGFjY29tcGxpc2htZW50Owor5a655b+NID4gdG9cLXB1dFwtdXBcLXdpdGg7Civnvbfoq5YgPiBhYmFuZG9uZWRcLWlkZWE7CivmgqPomZUgPiBhZmZsaWN0ZWRcLXBhcnQ7Civmnrbmp4sgPiBpbmZyYXN0cnVjdHVyZTsKK+eptOaSrSA+IGJ1bmNoXC1wbGFudGluZzsKK+aHt+WtlSA+IHRvXC1iZVwtcHJlZ25hbnQ7Civogbfmpa0gPiBqb2JcLW9jY3VwYXRpb247Civku7vmnJ8gPiB0ZXJtXC1vZlwtb2ZmaWNlOwor5LiN6IiIID4gb3V0XC1vZlwtZmFzaGlvbjsKK+eQg+ajkiA+IFwoYmFzZWJhbGxcKVwtYmF0Owor6LOH5qC8ID4gcXVhbGlmaWNhdGlvbnM7CivmnbHmtbcgPiBlYXN0XC1jaGluYVwtc2VhOwor5p2x5q2QID4gZWFzdGVyblwtZXVyb3BlOwor5Lu75oaRID4gbm9cLW1hdHRlclwtd2hhdDsKK+S7iuacnSA+IGF0XC10aGVcLXByZXNlbnQ7CivkvZzlk4EgPiB3b3Jrc1wtXChvZlwtYXJ0XCk7CivmhovmgrYgPiBmZWVsXC1vcHByZXNzZWQ7Civpo7zmp70gPiBmZWVkaW5nXC10cm91Z2g7Civorabou4ogPiBwb2xpY2VcLXZlaGljbGU7Civlr5LlhrcgPiBjb2xkXC1cKGNsaW1hdGVcKTsKK+WuieWlvSA+IHNhZmVcLWFuZFwtc291bmQ7CivmtrLmmbYgPiBsaXF1aWRcLWNyeXN0YWw7Civlj4Pop4AgPiB0b1wtbG9va1wtYXJvdW5kOwor5Y+v6IO9ID4gbWlnaHRcLVwoaGFwcGVuXCk7CivpppblhYggPiBmaXJzdFwtXChvZlwtYWxsXCk7CivmtrLmhYsgPiBsaXF1aWRcLVwoc3RhdGVcKTsKK+WtleWppiA+IHByZWduYW50XC13b21hbjsKK+S5mOazlSA+IG11bHRpcGxpY2F0aW9uOwor5a6a5YO5ID4gdG9cLXNldFwtYVwtcHJpY2U7CivmmpfnrrEgPiBjYW1lcmFcLWJlbGxvd3M7CivmuJvliJEgPiByZWR1Y2VcLXBlbmFsdHk7CivkuIDnlJ8gPiBhbGxcLW9uZScnc1wtbGlmZTsKK+S4reatkCA+IGNlbnRyYWxcLWV1cm9wZTsKK+eKr+e9qiA+IFwoY29tbWl0XClcLWNyaW1lOwor5Lu95YWSID4gZGVncmVlXCxcLWV4dGVudDsKK+eJueiJsiA+IGNoYXJhY3RlcmlzdGljOwor5Lit5pa3ID4gdG9cLWRpc2NvbnRpbnVlOwor56eV5a2QID4gYmxpZ2h0ZWRcLWdyYWluOwor54++5Lu7ID4gYXRcLXRoZVwtcHJlc2VudDsKK+acieW+hSA+IG5vdFwteWV0XC1cKGRvbmVcKTsKK+mhjOadkCA+IHN1YmplY3RcLW1hdHRlcjsKK+ekpuaziSA+IG1pbmVyYWxcLXNwcmluZzsKK+avm+ihoyA+IFwod29vbFwpXC1zd2VhdGVyOwor6LKs5Lu7ID4gcmVzcG9uc2liaWxpdHk7CivljYrogbcgPiBwYXJ0XC10aW1lXC13b3JrOwor6aGv5b6XID4gYXBwZWFyXC1cKHRvXC1iZVwpOwor56CU6KO9ID4gdG9cLW1hbnVmYWN0dXJlOwor5LiN5b+NID4gY2Fubm90XC1iZWFyXC10bzsKK+WqveWSqiA+IG11bW15XC1cKG1vdGhlclwpOwor5rOi5oGpID4gYm9ublwtXChnZXJtYW55XCk7CivmlZfoqLQgPiBsb3NlXC1hXC1sYXdzdWl0Owor5aO96KGjID4gYnVyaWFsXC1jbG90aGVzOwor5pO66ZCYID4gcGVuZHVsdW1cLWNsb2NrOwor5YyX57evID4gbm9ydGhcLWxhdGl0dWRlOwor5Y+K5qC8ID4gdG9cLXBhc3NcLWFcLXRlc3Q7Civms5Xluq0gPiBjb3VydFwtXChvZlwtbGF3XCk7CivpgJnpoZ4gPiB0aGlzXC1raW5kXC1cKG9mXCk7CivkuLvkv64gPiBcKHNjaG9vbFwpXC1tYWpvcjsKK+iuiuaIkCA+IHRvXC1jaGFuZ2VcLWludG87CivkuI3lkIggPiBub3RcLWNvbmZvcm1cLXRvOwor5paR56u5ID4gbW90dGxlZFwtYmFtYm9vOwor5LiN5Y+KID4gbm90XC1hc1wtZ29vZFwtYXM7CivliIbpoZ4gPiBjbGFzc2lmaWNhdGlvbjsKK+mHjeW7uiA+IHJlY29uc3RydWN0aW9uOwor6KuL55yLID4gcGxlYXNlXC1zZWVcLVwuXC5cLjsKK+mhnuWIpSA+IGNsYXNzaWZpY2F0aW9uOwor5rCr5rCjID4gaHlkcm9nZW5cLVwoZ2FzXCk7CivmlbjnqK4gPiBudW1lcm91c1wtdHlwZXM7CivnoLTnlKIgPiB0b1wtZ29cLWJhbmtydXB0Owor5Yaw6bueID4gZnJlZXppbmdcLXBvaW50Owor6I+v6KOUID4gZXRobmljXC1jaGluZXNlOwor5LiN5LuBID4gbm90XC1iZW5ldm9sZW50Owor5pS26IG9ID4gdG9cLWxpc3RlblwtXCh0b1wpOwor6I+y6I+yID4gdmVyeVwtZnJhZ3JhbnQ7CivmmILmj5ogPiBoaWdoXC1zcGlyaXRlZDsKK+aXqeaZqCA+IGVhcmx5XC1tb3JuaW5nOwor56OB5bi2ID4gbWFnbmV0aWNcLXRhcGU7Civop6Poqr8gPiB0b1wtZGVtb2R1bGF0ZTsKK+WMl+a1tyA+IHRoZVwtbm9ydGhcLXNlYTsKK+iWhOWIqSA+IHNtYWxsXC1wcm9maXRzOwor5pma5aCxID4gZXZlbmluZ1wtcGFwZXI7CivmmJ/luqcgPiBjb25zdGVsbGF0aW9uOwor5Yaw6Z6LID4gc2thdGluZ1wtYm9vdHM7Civlu6DntbIgPiBmaWxhdHVyZVwtc2lsazsKK+efm+ebviA+IGNvbnRyYWRpY3Rvcnk7Civlh7ros6MgPiB0b1wtc2VsbFwtXChvZmZcKTsKK+WIsOiZlSA+IGluXC1hbGxcLXBsYWNlczsKK+WPpOS7oyA+IGFuY2llbnRcLXRpbWVzOwor5paw5pyIID4gY3Jlc2NlbnRcLW1vb247CivljbPlsIcgPiBvblwtdGhlXC1ldmVcLW9mOwor5Y2R5b6uID4gcGV0dHlcLWFuZFwtbG93Owor5Y2x5a6zID4gdG9cLWplb3BhcmRpemU7CivliKjoirEgPiB3b29kXC1zaGF2aW5nczsKK+iOqOiPqiA+IGJsYWNrXC1oZW5iYW5lOwor6Kq/5p+lID4gaW52ZXN0aWdhdGlvbjsKK+e2geiFvyA+IGxlZ1wtd3JhcHBpbmdzOwor5YiX6IiJID4gXChtYWtlXC1hXClcLWxpc3Q7CivpgannlKggPiBiZVwtYXBwbGljYWJsZTsKK+aRmOiomCA+IHRvXC10YWtlXC1ub3RlczsKK+WFg+mmliA+IGhlYWRcLW9mXC1zdGF0ZTsKK+aWueW8jyA+IHdheVwtXChvZlwtbGlmZVwpOwor5pel5aScID4gZGF5XC1hbmRcLW5pZ2h0Owor6Iqd6bq7ID4gc2VzYW1lXC1cKHNlZWRcKTsKK+eJjOWdiiA+IG1lbW9yaWFsXC1hcmNoOwor5YmN55SfID4gcHJlXC1leGlzdGVuY2U7CivmmIflgLwgPiByaXNlXC1pblwtdmFsdWU7CivnsbPpo68gPiBcKGNvb2tlZFwpXC1yaWNlOwor6L2J6YGTID4gbWFrZVwtYVwtZGV0b3VyOwor6ZW36YCUID4gbG9uZ1wtZGlzdGFuY2U7Civml6XliY0gPiB0aGVcLW90aGVyXC1kYXk7Civlopzmr4AgPiBcKHBsYW5lXClcLWNyYXNoOwor6ZuZ5omLID4gcGFpclwtb2ZcLWhhbmRzOwor5Y2X5LqeID4gc291dGhlcm5cLWFzaWE7CivliIrnmbsgPiBjYXJyeVwtYVwtc3Rvcnk7CivoqoflvLUgPiB0b1wtZXhhZ2dlcmF0ZTsKK+mbo+W/mCA+IHVuZm9yZ2V0dGFibGU7Civml6nkuIogPiBlYXJseVwtbW9ybmluZzsKK+WkquWkqiA+IG1hcnJpZWRcLXdvbWFuOwor5pKl55SoID4gYXBwcm9wcmlhdGlvbjsKK+Wig+azgSA+IGNpcmN1bXN0YW5jZXM7CivmsJHkuosgPiBjaXZpbFwtbWF0dGVyczsKK+Wls+S9oyA+IFwoZmVtYWxlXClcLW1haWQ7Civli5jlr58gPiByZWNvbm5haXNhbmNlOwor57GM6ZuGID4gY29sbGVjdFwtbW9uZXk7Civmk43mvJQgPiBkZW1vbnN0cmF0aW9uOwor5bm754eIID4gbGF0ZXJuXC1zbGlkZXM7CivliqDlv6sgPiB0b1wtYWNjZWxlcmF0ZTsKK+WGsOezliA+IGNyeXN0YWxcLXN1Z2FyOwor5ZyL6ZqbID4gaW50ZXJuYXRpb25hbDsKK+mspembniA+IGNvY2tcLWZpZ2h0aW5nOwor5b2i5YuiID4gY2lyY3Vtc3RhbmNlczsKK+mBjuaZgiA+IG9sZFwtZmFzaGlvbmVkOwor6Zqo5oSPID4gYXNcLW9uZVwtd2lzaGVzOwor5aSx5YipID4gc3VmZmVyXC1kZWZlYXQ7CivmkI3ogJcgPiB3ZWFyXC1hbmRcLXRlYXI7Civnm7jnlbYgPiBlcXVpdmFsZW50XC10bzsKK+mAkOatpSA+IHByb2dyZXNzaXZlbHk7Civlub7mrKEgPiBzZXZlcmFsXC10aW1lczsKK+W3qOe0sCA+IGJpZ1wtYW5kXC1zbWFsbDsKK+W5vuaooyA+IHNldmVyYWxcLWtpbmRzOwor5aSn5L2/ID4gYW5cLWFtYmFzc2Fkb3I7Civnt6jlr6kgPiByZWFkXC1hbmRcLWVkaXQ7CivlvLfljJYgPiB0b1wtc3RyZW5ndGhlbjsKK+mBv+WtlSA+IGNvbnRyYWNlcHRpb247CivlpKfkuosgPiBhXC1tYWpvclwtZXZlbnQ7CivmlZnlj4sgPiBjaHVyY2hcLW1lbWJlcjsKK+mAn+aViCA+IHF1aWNrXC1yZXN1bHRzOwor5Yip5pa8ID4gYmVcLWJlbmVmaWNpYWw7CivmlZfljJcgPiBzdWZmZXJcLWRlZmVhdDsKK+WIneacnyA+IGluaXRpYWxcLXN0YWdlOwor6Kmi5ZWPID4gaW5xdWlyZVwtYWJvdXQ7CivmrbvliJEgPiBkZWF0aFwtcGVuYWx0eTsKK+WFteeXniA+IGFybXlcLXJpZmZyYWZmOwor6auU6YeNID4gXChib2R5XClcLXdlaWdodDsKK+eZveegkiA+IHdoaXRlXC1hcnNlbmljOwor55u45p62ID4gcGljdHVyZVwtZnJhbWU7CivlnoLnm7QgPiBwZXJwZW5kaWN1bGFyOwor5aKD5ZywID4gY2lyY3Vtc3RhbmNlczsKK+WFteeHnyA+IG1pbGl0YXJ5XC1jYW1wOwor5biC5rCRID4gY2l0eVwtcmVzaWRlbnQ7Civpmqjkvr8gPiBhc1wtb25lXC13aXNoZXM7Civluq3lnJIgPiBmbG93ZXJcLWdhcmRlbjsKK+i9n+eCuCA+IFwoZHJvcFwtYVwpXC1ib21iOwor6YGO5Y67ID4gXChpblwtdGhlXClcLXBhc3Q7CivoiaboiYcgPiBuYXZhbFwtdmVzc2VsczsKK+WGsOacnyA+IGdsYWNpYWxcLWVwb2NoOwor6Zec5pa8ID4gcGVydGFpbmluZ1wtdG87CivliZvliZsgPiBqdXN0XC1yZWNlbnRseTsKK+W7oOS4uyA+IGZhY3RvcnlcLW93bmVyOwor5YaN5qyhID4gb25lXC1tb3JlXC10aW1lOwor5qyK5YqbID4gXCh3aWVsZFwpXC1wb3dlcjsKK+mAo+WQjCA+IHRvZ2V0aGVyXC13aXRoOwor57C/57GNID4gYWNjb3VudFwtYm9va3M7CivmqavmjoMgPiB0b1wtc3dlZXBcLWF3YXk7CivluqblgYcgPiBnb1wtb25cLWhvbGlkYXk7CivnlbDos6ogPiBoZXRlcm9nZW5lb3VzOwor6LuK56uZID4gXChidXNcKVwtc3RhdGlvbjsKK+WCmeiHsyA+IHRvXC10aGVcLXV0bW9zdDsKK+i3kemeiyA+IHJ1bm5pbmdcLXNob2VzOwor5aCx5ZauID4gdGF4YXRpb25cLWZvcm07CivpkZLos54gPiB0b1wtYXBwcmVjaWF0ZTsKK+mAmeS9jSA+IHRoaXNcLVwocGVyc29uXCk7Civlm7DnqpggPiBlbWJhcnJhc3NtZW50Owor6ZmN5LiWID4gY29tZVwtdG9cLWVhcnRoOwor5L6/6aOvID4gYVwtc2ltcGxlXC1tZWFsOwor6Ly75qKdID4gXCh3aGVlbFwpXC1zcG9rZTsKK+aJk+mWiyA+IHRvXC1icmVha1wtb3BlbjsKK+eZvOaPriA+IGJyaW5nXC10b1wtYmVhcjsKK+mWi+W/gyA+IHRvXC1mZWVsXC1oYXBweTsKK+WvpumplyA+IHRvXC1leHBlcmltZW50Owor6L2J5b2OID4gdHVyblwtXChhcm91bmRcKTsKK+ahiOmgrSA+IG9uXC1vbmUnJ3NcLWRlc2s7CivovqjliKUgPiBkaWZmZXJlbnRpYXRlOwor5oqE6KWyID4gdG9cLXBsYWdpYXJpemU7CivovqbliLAgPiB0b1wtYWNjb21wbGlzaDsKK+WFiOW+jCA+IGluXC1zdWNjZXNzaW9uOwor55Wc6IKlID4gYW5pbWFsXC1tYW51cmU7Civmi4nnvo4gPiBsYXRpblwtYW1lcmljYTsKK+aguOmbuyA+IG51Y2xlYXJcLXBvd2VyOwor6LaK6YeOID4gY3Jvc3NcLWNvdW50cnk7Civpp4Hpm5wgPiBoZXRlcm9nZW5lb3VzOwor5YWs5ZySID4gYVwtcHVibGljXC1wYXJrOwor55m+5aeTID4gY29tbW9uXC1wZW9wbGU7Civngb3ljYAgPiBkaXNhc3RlclwtYXJlYTsKK+ani+aIkCA+IHRvXC1jb25zdGl0dXRlOwor5L+d6JePID4ga2VlcFwtaW5cLXN0b3JlOwor55Ge6aaZID4gd2ludGVyXC1kYXBobmU7Civmi4znqK4gPiBzZWVkXC1kcmVzc2luZzsKK+exjOaOqiA+IHJhaXNlXC1cKG1vbmV5XCk7Civmo4Tnva4gPiB0b1wtdGhyb3dcLWF3YXk7Civos6Ppu54gPiBzZWxsaW5nXC1wb2ludDsKK+mWi+WIlyA+IFwobWFrZVwtYVwpXC1saXN0Owor55im5byxID4gdGhpblwtYW5kXC13ZWFrOwor55m95YyqID4gd2hpdGVcLWJhbmRpdHM7Civogonpq5QgPiBwaHlzaWNhbFwtYm9keTsKK+WCmeahiCA+IHB1dFwtb25cLXJlY29yZDsKK+mspeW/lyA+IHdpbGxcLXRvXC1maWdodDsKK+aJgeiNsyA+IGh5YWNpbnRoXC1iZWFuOwor55m+5YCNID4gYVwtaHVuZHJlZGZvbGQ7CivnrYbnrZIgPiBwZW5cLWNvbnRhaW5lcjsKK+WvtuiXjSA+IHNhcHBoaXJlXC1ibHVlOwor5ruy56KzID4gY2FyYnVyaXphdGlvbjsKK+a4oemBjiA+IHRvXC1jcm9zc1wtb3ZlcjsKK+Wtl+mbhiA+IGNoYXJhY3Rlclwtc2V0Owor56m66YGLID4gYWlyXC10cmFuc3BvcnQ7CivooajlsaQgPiBzdXJmYWNlXC1sYXllcjsKK+Wck+WRqCA+IGNpcmN1bWZlcmVuY2U7Civnl4XlrrMgPiBwbGFudFwtZGlzZWFzZTsKK+WUruiyqCA+IHRvXC1zZWxsXC1nb29kczsKK+iIjOWwliA+IHRpcFwtb2ZcLXRvbmd1ZTsKK+ahiOeosSA+IGNvdW50ZXJcLXNjYWxlOwor5raI6ZiyID4gZmlyZVwtZmlnaHRpbmc7CivllonntZAgPiBhZGFtJydzJydcLWFwcGxlOwor5bO25ZyLID4gaXNsYW5kXC1uYXRpb247CivprKfkuosgPiBjYXVzZVwtdHJvdWJsZTsKK+S6rOmDvSA+IGt5b3RvXC1cKGphcGFuXCk7Civlm5vljYMgPiBmb3VyXC10aG91c2FuZDsKK+eVtuW5tCA+IGluXC10aG9zZVwtZGF5czsKK+iyoei/tyA+IG1vbmV5XC1ncnViYmVyOwor55CG6KejID4gdG9cLWNvbXByZWhlbmQ7Civlr4bnorwgPiBcKHNlY3JldFwpXC1jb2RlOwor56+J5Z+OID4gZm9ydGlmaWNhdGlvbjsKK+ihm+WFtSA+IFwoYm9keVwpXC1ndWFyZFwpOwor55aR5ZWPID4gaW50ZXJyb2dhdGlvbjsKK+WWieeXpyA+IHNjYXJsZXRcLWZldmVyOwor5YCL5oCnID4gaW5kaXZpZHVhbGl0eTsKK+WVn+ekuiA+IGVubGlnaHRlbm1lbnQ7Civoh7Tlh70gPiBzZW5kXC1hXC1sZXR0ZXI7CivmhI/orZggPiBjb25zY2lvdXNuZXNzOwor6IGv57WhID4gY29tbXVuaWNhdGlvbjsKK+aLnOWIpSA+IHRha2VcLWxlYXZlXC1vZjsKK+aJgeaTlCA+IGNhcnJ5aW5nXC1wb2xlOwor5ZOA6JmfID4gY3J5XC1waXRlb3VzbHk7CivmoYLmnpcgPiBndWlsaW5cLVwoY2l0eVwpOwor6YeR6buDID4gZ29sZGVuXC15ZWxsb3c7Civot6jlnIsgPiB0cmFuc25hdGlvbmFsOwor5ryU5Ye6ID4gXChhY3RpbmdcKVwtcGxheTsKK+WQg+mjryA+IHRvXC1lYXRcLWFcLW1lYWw7CivkuI3pgJogPiBiZVwtb2JzdHJ1Y3RlZDsKK+aIkuaMhyA+IFwoZmluZ2VyXClcLXJpbmc7CivlsJHlsIcgPiBtYWpvclwtZ2VuZXJhbDsKK+adnOe1lSA+IHB1dFwtYW5cLWVuZFwtdG87CivmmpfpjpYgPiBidWlsdFwtaW5cLWxvY2s7Civmh7LmiJIgPiB0b1wtZGlzY2lwbGluZTsKK+S4i+iqsiA+IGNsYXNzXC1pc1wtb3ZlcjsKK+S4jeipsyA+IG5vdFwtaW5cLWRldGFpbDsKK+WPjemfvyA+IHJlcGVyY3Vzc2lvbnM7Civlrr/mgKggPiBhblwtb2xkXC1ncnVkZ2U7Civllq7lrZAgPiBsaXN0XC1vZlwtaXRlbXM7CivosqLnjbsgPiB0b1wtY29udHJpYnV0ZTsKK+WPq+mGkiA+IHRvXC1jYWxsXC1hd2FrZTsKK+e+juihkyA+IHRoZVwtZmluZVwtYXJ0czsKK+iDveWkoCA+IGJlXC1jYXBhYmxlXC1vZjsKK+WutuWxrCA+IGZhbWlseVwtbWVtYmVyOwor6by75re1ID4gbmFzb3NpbnVzaXRpczsKK+aHguW+lyA+IHRvXC11bmRlcnN0YW5kOwor5Y2K6bueID4gdGhlXC1sZWFzdFwtYml0Owor6Ymb562GID4gXChsZWFkXClcLXBlbmNpbDsKK+WWruWQkSA+IHVuZGlyZWN0aW9uYWw7Civlj5fos4QgPiBhY2NlcHRcLWJyaWJlczsKK+S+i+WBhyA+IGxlZ2FsXC1ob2xpZGF5Owor5rC06Z2iID4gd2F0ZXJcLXN1cmZhY2U7Civnp7vmrpYgPiB0b1wtdHJhbnNwbGFudDsKK+i1t+S8jyA+IHVwc1wtYW5kXC1kb3duczsKK+iuiuiqvyA+IG1vZGlmaWVkXC10b25lOwor5Y+L6Kq8ID4gY29tcGFuaW9uc2hpcDsKK+enu+akjSA+IHRvXC10cmFuc3BsYW50Owor5ZOA5qiCID4gZnVuZXJhbFwtbXVzaWM7Civlr4zkuo4gPiB0b1wtYmVcLWZ1bGxcLW9mOwor6IGy5bi2ID4gdm9jYWxcLWNvcmRcKHNcKTsKK+S4jeefpSA+IHVua25vd2luZ1wobHlcKTsKK+Wtq+WlsyA+IGdyYW5kZGF1Z2h0ZXI7Civmtrzlv6sgPiBuaWNlXC1hbmRcLWNvbGQ7CivkuInnmb4gPiB0aHJlZVwtaHVuZHJlZDsKK+S6rOaIsiA+IGJlaWppbmdcLW9wZXJhOwor5L2O5LqOID4gYmVcLWxvd2VyXC10aGFuOwor5Y2X6YOoID4gc291dGhlcm5cLXBhcnQ7CivmuIXllq4gPiBsaXN0XC1vZlwtaXRlbXM7CivororoibIgPiBjaGFuZ2VcLWNvbG91cjsKK+WMl+mdoiA+IG5vcnRoZXJuXC1zaWRlOwor5LiK54+tID4gdG9cLWdvXC10b1wtd29yazsKK+WQhOeoriA+IGV2ZXJ5XC1raW5kXC1vZjsKK+iyneW9qyA+IHNoZWxsXC1jYXJ2aW5nOwor5pel6LuNID4gamFwYW5lc2VcLWFybXk7CivljZfotoogPiBzb3V0aFwtdmlldG5hbTsKK+aDheazgSA+IGNpcmN1bXN0YW5jZXM7CivmhJvmho4gPiBsb3ZlXC1hbmRcLWhhdGU7Civogbflk6EgPiBvZmZpY2VcLXdvcmtlcjsKK+a0i+a6oiA+IGJyaW1taW5nXC13aXRoOwor5Y2U6Kq/ID4gdG9cLWNvb3JkaW5hdGU7CivlpKfpmKogPiBvc2FrYVwtXChqYXBhblwpOwor6ICD5oWuID4gdG9cLXRoaW5rXC1vdmVyOwor5YyX6YOoID4gbm9ydGhlcm5cLXBhcnQ7CivmnKzmhI8gPiBvcmlnaW5hbFwtaWRlYTsKK+eNqOaUrCA+IHRvXC1tb25vcG9saXplOwor5ZC45q+SID4gdG9cLXRha2VcLWRydWdzOwor5rOz5rGgID4gc3dpbW1pbmdcLXBvbmQ7CivkuIDmraUgPiBcKHNpbmdsZVwpXC1zdGVwOwor5YyX6LaKID4gbm9ydGhcLXZpZXRuYW07Civpm5zpoIUgPiBtaXNjZWxsYW5lb3VzOwor5ZOl5ZOlID4gb2xkZXJcLWJyb3RoZXI7CivlpJbpg6ggPiBleHRlcm5hbFwtcGFydDsKK+iBnuS6uiA+IGZhbW91c1wtcGVyc29uOwor5Lqs5YqHID4gYmVpamluZ1wtb3BlcmE7CivlkozlsJogPiBidWRkaGlzdFwtbW9uazsKK+iYh+W3niA+IHN1emhvdVwtXChjaXR5XCk7CivnpKbmsLQgPiBtaW5lcmFsXC13YXRlcjsKK+aakeawoyA+IFwoc3VtbWVyXClcLWhlYXQ7Civlk4DlkYogPiBiZWdcLXBpdGVvdXNseTsKK+aDheW9oiA+IGNpcmN1bXN0YW5jZXM7CivkuK3lvI8gPiBjaGluZXNlXC1zdHlsZTsKK+WkluiyvyA+IGZvcmVpZ25cLXRyYWRlOwor6YG/6ZujID4gXFt0YWtlXF1cLXJlZnVnZTsKK+WMheiisSA+IGNsb3RoXC13cmFwcGVyOwor5oSf5YaSID4gdG9cLWNhdGNoXC1jb2xkOwor5b2p6JqMID4gcGFpbnRlZFwtc2hlbGw7Civnpq7loIIgPiBhc3NlbWJseVwtaGFsbDsKK+S4jeaBrSA+IGRpc3Jlc3BlY3RmdWw7CivnuL3oqIggPiBcKGdyYW5kXClcLXRvdGFsOwor5aib5qiCID4gZW50ZXJ0YWlubWVudDsKK+S4reWtuCA+IG1pZGRsZVwtc2Nob29sOwor5LqU5LiAID4gNVwtMVwtXChtYXlcLTFzdFwpOwor56OB54mHID4gbWFnbmV0aWNcLWRpc2s7CivmnIPloLQgPiBtZWV0aW5nXC1wbGFjZTsKK+WqvuWSjCA+IHRvXC1tYWtlXC1wZWFjZTsKK+S4jeW3pyA+IHVuZm9ydHVuYXRlbHk7CivkuIrluIIgPiBvblwtdGhlXC1tYXJrZXQ7Civnp4HliKkgPiBwZXJzb25hbFwtZ2FpbjsKK+mBsumIjSA+IHNsb3dcLVwod2l0dGVkXCk7CivljJfnvo4gPiBub3J0aFwtYW1lcmljYTsKK+e2k+mplyA+IHRvXC1leHBlcmllbmNlOwor5rGy5rC0ID4gdG9cLWRyYXdcLXdhdGVyOwor542y5YudID4gYmVcLXZpY3RvcmlvdXM7Civop4Dpu54gPiBwb2ludFwtb2ZcLXZpZXc7CivmsLTniZsgPiB3YXRlclwtYnVmZmFsbzsKK+WQjOW5tCA+IHRoZVwtc2FtZVwteWVhcjsKK+iuiuaYnyA+IHZhcmlhYmxlXC1zdGFyOwor5q+b562GID4gd3JpdGluZ1wtYnJ1c2g7CivomIfkv4QgPiBzb3ZpZXRcLXJ1c3NpYTsKK+atpeihjCA+IHRvXC1nb1wtb25cLWZvb3Q7CivliKXpm6IgPiB0YWtlXC1sZWF2ZVwtb2Y7Civmk4XplbcgPiB0b1wtYmVcLWdvb2RcLWF0Owor5LiN5ZW7ID4gbm90XC1sZXNzXC10aGFuOwor5aSn57SEID4gYXBwcm94aW1hdGVseTsKK+eJjOeFpyA+IGxpY2Vuc2VcLXBsYXRlOwor5pqX5a6zID4ga2lsbFwtc2VjcmV0bHk7Civli4PoiIggPiByaXNlXC1zdWRkZW5seTsKK+WJjemAsiA+IHRvXC1nb1wtZm9yd2FyZDsKK+iuiuaFiyA+IG1ldGFtb3JwaG9zaXM7CivmgKfmhb4gPiBzZXh1YWxcLWRlc2lyZTsKK+WMr+eOhyA+IGV4Y2hhbmdlXC1yYXRlOwor5rK75a6JID4gbGF3XC1hbmRcLW9yZGVyOwor5qyj6LOeID4gdG9cLWFwcHJlY2lhdGU7Civpm4zoirEgPiBmZW1hbGVcLWZsb3dlcjsKK+mCpuiBryA+IGNvbmZlZGVyYXRpb247CivlpJrnqK4gPiBtYW55XC1raW5kc1wtb2Y7CivlkLjlhaUgPiB0b1wtYnJlYXRoZVwtaW47Civororlt6UgPiBleGNoYW5nZVwtd29yazsKK+WPl+WusyA+IHRvXC1iZVwtaW5qdXJlZDsKK+axuuW/gyA+IGRldGVybWluYXRpb247CivkuIvku6QgPiBnaXZlXC1hblwtb3JkZXI7CivojqvpgIYgPiB2ZXJ5XC1mcmllbmRseTsKK+avlOeGsSA+IHNwZWNpZmljXC1oZWF0Owor5piC5piCID4gaGlnaFwtc3Bpcml0ZWQ7CivliIbphY0gPiB0b1wtZGlzdHJpYnV0ZTsKK+WKoOe3iiA+IHRvXC1pbnRlbnNpZnk7CivnnaHoprogPiB0b1wtZ29cLXRvXC1iZWQ7Civml6nmnJ8gPiBlYXJseVwtcGVyaW9kOwor55u46ZecID4gaW50ZXJyZWxhdGVkOwor54Gr6b6NID4gZmllcnlcLWRyYWdvbjsKK+WQiOS9nCA+IHRvXC1jb29wZXJhdGU7CivmmbrlipsgPiBpbnRlbGxpZ2VuY2U7Civlv4zmhpogPiBiZVwtYWZyYWlkXC1vZjsKK+aYlOW5tCA+IGZvcm1lclwteWVhcnM7CivnpKbkupUgPiBtaW5lXC1cKHNoYWZ0XCk7Civnhp/nn6UgPiBhY3F1YWludGFuY2U7CivmlK/npaggPiBcKGJhbmtcKVwtY2hlY2s7Civlp5Dlp5AgPiBvbGRlclwtc2lzdGVyOwor6K2m5aCxID4gXChmaXJlXClcLWFsYXJtOwor5b6M5p6cID4gY29uc2VxdWVuY2VzOwor5aeK5aeKID4gb2xkZXJcLXNpc3RlcjsKK+aUtuebpCA+IG1hcmtldFwtY2xvc2U7Civln47pmLIgPiBjaXR5XC1kZWZlbmNlOwor6aCC5L2PID4gdG9cLXdpdGhzdGFuZDsKK+ilv+mDqCA+IHdlc3Rlcm5cLXBhcnQ7Civlpb3mhJ8gPiBnb29kXC1vcGluaW9uOwor5aSx5qWtID4gdW5lbXBsb3ltZW50Owor5pOF6IeqID4gdW5hdXRob3JpemVkOwor6YCV6IeqID4gb25cLW9uZScnc1wtb3duOwor57Si6LOgID4gY29tcGVuc2F0aW9uOwor6L+R6KaWID4gc2hvcnRzaWdodGVkOwor5q2l54qBID4gd2Fsa2luZ1wtcGxvdzsKK+ebuOitmCA+IGFjcXVhaW50YW5jZTsKK+mWi+mXnCA+IHBvd2VyXC1zd2l0Y2g7CivljrvkuJYgPiB0b1wtcGFzc1wtYXdheTsKK+WfueiokyA+IHRvXC1jdWx0aXZhdGU7CivlpJrmlrkgPiBpblwtbWFueVwtd2F5czsKK+aQtuizvCA+IHBhbmljXC1idXlpbmc7Civlt6Hov7QgPiB0b1wtZ29cLWFyb3VuZDsKK+mAmeeoriA+IHRoaXNcLWtpbmRcLW9mOwor5aSn5oSPID4gZ2VuZXJhbFwtaWRlYTsKK+WIpeeosSA+IGFub3RoZXJcLW5hbWU7CivmraXmraUgPiBzdGVwXC1ieVwtc3RlcDsKK+WNlOWVhiA+IGNvbnN1bHRcLXdpdGg7Civnn67mmJ8gPiBkd2FyZlwtXChzdGFyXCk7CivpgqPmmYIgPiBhdFwtdGhhdFwtdGltZTsKK+Wkp+W4qyA+IGdyZWF0XC1tYXN0ZXI7CivntYTnuZQgPiBvcmdhbml6YXRpb247CivpgJrnlKggPiBjb21tb25cLVwodXNlXCk7CivlpJrlt6UgPiB0b1wtbXVsdGlwbGV4Owor57O+6JGbID4gZW50YW5nbGVtZW50Owor6Kmm5o6iID4gdG9cLXNvdW5kXC1vdXQ7CivlpKvlprsgPiBtYW5cLWFuZFwtd2lmZTsKK+mBk+atiSA+IHRvXC1hcG9sb2dpemU7CivmlYXmhI8gPiBkZWxpYmVyYXRlbHk7Civoq4vllY8gPiBtYXlcLWlcLWFza1wuXC5cLjsKK+WHuueZvCA+IHRvXC1zdGFydFwtb3V0Owor57iu5a+rID4gYWJicmV2aWF0aW9uOwor5aOB5o6bID4gd2FsbFwtaGFuZ2luZzsKK+eGn+aCiSA+IHRvXC1rbm93XC13ZWxsOwor54af5oCdID4gZGVsaWJlcmF0aW9uOwor5pW05aSpID4gYWxsXC1kYXlcLWxvbmc7CivpsYnnlLIgPiB0dXJ0bGVcLXNoZWxsOwor6Lqr6auUID4gXChodW1hblwpXC1ib2R5Owor57O+57qPID4gYmVcLWVudGFuZ2xlZDsKK+ikh+ijvSA+IHRvXC1kdXBsaWNhdGU7Civpmorml5cgPiB0ZWFtXC1wZW5uYW50Owor5Yqg5by3ID4gdG9cLXJlaW5mb3JjZTsKK+WHuueNhCA+IGxlYXZlXC1wcmlzb247Civoq4fliKQgPiB0b1wtbmVnb3RpYXRlOwor55yL55eFID4gc2VlXC1hXC1kb2N0b3I7CivlvojkuI0gPiB2ZXJ5XC11blwtXC5cLlwuXC47Civmr4XlipsgPiBwZXJzZXZlcmFuY2U7CivokL3lr6YgPiB0b1wtaW1wbGVtZW50Owor5pSv5bqXID4gYnJhbmNoXC1zdG9yZTsKK+eZveiWryA+IHN3ZWV0XC1wb3RhdG87CivntrXml5cgPiBjb2xvcmVkXC1mbGFnOwor5Zue6aGnID4gdG9cLWxvb2tcLWJhY2s7Civmrq3ljJYgPiBiZWNvbWVcLXJpZ2lkOwor54CP6Ka9ID4gdG9cLXNraW1cLW92ZXI7CivoqrLkvZkgPiBhZnRlclwtc2Nob29sOwor6LuK6YGTID4gdHJhZmZpY1wtbGFuZTsKK+ato+WmgiA+IGJlXC1qdXN0XC1saWtlOwor57SZ54mMID4gcGxheWluZ1wtY2FyZDsKK+eZvOe0hSA+IGZsdXNoXC1cKGZhY2VcKTsKK+mbhuWQiCA+IGNvbmdyZWdhdGlvbjsKK+mAn+aIkCA+IGNyYXNoXC1jb3Vyc2U7CivlhYnnt5ogPiBvcHRpY2FsXC1saW5lOwor5Yqq5YqbID4gZ3JlYXRcLWVmZm9ydDsKK+W8leWFpSA+IHRvXC1kcmF3XC1pbnRvOwor5bug5Z2AID4gZmFjdG9yeVwtc2l0ZTsKK+maqOWQjCA+IGFjY29tcGFueWluZzsKK+eGkuWFiSA+IGZsb3VyZXNjZW5jZTsKK+W7o+WRiiA+IHRvXC1hZHZlcnRpc2U7CivmjKjov5EgPiBnZXRcLWNsb3NlXC10bzsKK+e3qOWKhyA+IHdyaXRlXC1hXC1wbGF5Owor5aOT5YCSID4gb3ZlcndoZWxtaW5nOwor5o6h6ISCID4gdHJlZVwtdGFwcGluZzsKK+eGn+S6uiA+IGFjcXVhaW50YW5jZTsKK+WfueakjSA+IHRvXC1jdWx0aXZhdGU7CivpgJ/lr6sgPiBxdWlja1wtc2tldGNoOwor6YCx5ZyNID4gc3Vycm91bmRpbmdzOwor5r++57SZID4gZmlsdGVyXC1wYXBlcjsKK+apn+aniyA+IG9yZ2FuaXphdGlvbjsKK+ioquS/hCA+IHZpc2l0XC1ydXNzaWE7Civmi5TpjKggPiB3ZWlnaFwtYW5jaG9yOwor5qiZ54eIID4gYmVhY29uXC1saWdodDsKK+WGsOaZtiA+IGljZVwtY3J5c3RhbHM7Civlub7lpKkgPiBzZXZlcmFsXC1kYXlzOwor5o6I57K+ID4gaW5zZW1pbmF0aW9uOwor6auS6KmxID4gYmFkXC1sYW5ndWFnZTsKK+WHueWyuCA+IGNvbmNhdmVcLWJhbms7CivpgY7kvoYgPiB0b1wtY29tZVwtb3ZlcjsKK+aTjeWLniA+IHRvXC13b3JrXC1oYXJkOwor5Yil5ZCNID4gYW5vdGhlclwtbmFtZTsKK+WFiea6kCA+IGxpZ2h0XC1zb3VyY2U7CivpgJ/lh40gPiBxdWlja1wtZnJlZXplOwor5Z2Q54miID4gaW1wcmlzb25tZW50Owor6KOc54mZID4gZmlsbFwtYVwtdG9vdGg7CivliKjliIAgPiBwbGFuaW5nXC10b29sOwor5oqK6ZecID4gZ3VhcmRcLWFcLXBhc3M7Civoh6rooZsgPiBzZWxmXC1kZWZlbnNlOwor6Zmb5LiLID4geW91clwtbWFqZXN0eTsKK+WFq+aciCA+IGVpZ2h0aFwtbW9udGg7CivlgpnogIMgPiBcKGFuXC1hcHBlbmRpeDsKK+W5tOWJjSA+IFwuXC5cLnllYXJzXC1hZ287CivnsKHnqLEgPiBhYmJyZXZpYXRpb247CivliKXkurogPiBvdGhlclwtcGVvcGxlOwor6ZaL5pSvID4gZXhwZW5kaXR1cmVzOwor5o2P56mNID4gY2hpcm9wcmFjdGljOwor5aCx5YO5ID4gcXVvdGVkXC1wcmljZTsKK+i/t+S/oSA+IHN1cGVyc3RpdGlvbjsKK+i9ieaPmyA+IHRvXC10cmFuc2Zvcm07CivmkKzlrrYgPiBtb3ZlXC1cKGhvdXNlXCk7CivmiLbpoK0gPiBiYW5rXC1hY2NvdW50Owor6Kaq5L+hID4gdHJ1c3RlZFwtYWlkZTsKK+ihjOeoiyA+IHRyYXZlbFwtcm91dGU7CivlmrTnq6MgPiB0aWdodFwuc3RyaWN0Owor55yL5L2cID4gbG9va1wtdXBvblwtYXM7Civlr6fpoZggPiB3b3VsZFwtcmF0aGVyOwor5o6l5p6dID4gXCh0cmVlXClcLWdyYWZ0Owor5o6I5qyKID4gdG9cLWF1dGhvcml6ZTsKK+mWi+WtuCA+IHNjaG9vbFwtb3BlbnM7Civkv53orYkgPiB0b1wtZ3VhcmFudGVlOwor5om56KmVID4gdG9cLWNyaXRpY2l6ZTsKK+aLlOe1siA+IHdpcmVcLWRyYXdpbmc7CivlmIboqZ4gPiBpbnRlcmplY3Rpb247CivmiZPos60gPiBcKG1ha2VcLWFcKVwtYmV0Owor5YSq5oOgID4gcHJlZmVyZW50aWFsOwor5YWs5aCxID4gYW5ub3VuY2VtZW50Owor5a+G6ZuGID4gY29uY2VudHJhdGVkOwor5o6I5pmCID4gdGltZVwtc2VydmljZTsKK+WcqOaXgSA+IGJ5XC1cKGFcLXBsYWNlXCk7Civmi7znm6QgPiBjb2xkXC1wbGF0dGVyOwor5o2Q5qy+ID4gZG9uYXRlXC1tb25leTsKK+Wci+aciSA+IG5hdGlvbmFsaXplZDsKK+S+neiztCA+IHRvXC1kZXBlbmRcLW9uOwor57O75LiKID4gdG9cLWJ1Y2tsZVwtdXA7Civog4zpm6IgPiBkZXZpYXRlXC1mcm9tOwor5oyJ54WnID4gYWNjb3JkaW5nXC10bzsKK+WBtueEtiA+IGluY2lkZW50YWxseTsKK+WWiemPoSA+IGxhcnluZ29zY29wZTsKK+iDjOmZsCA+IGluXC10aGVcLXNoYWRlOwor5ryU566XID4gdG9cLWNhbGN1bGF0ZTsKK+WFqeWNgyA+IHR3b1wtdGhvdXNhbmQ7Civmj5LlnJYgPiBpbGx1c3RyYXRpb247Civlr6norbAgPiBkZWxpYmVyYXRpb247CivnrqHnkIYgPiB0b1wtc3VwZXJ2aXNlOwor5qKF6IqxID4gcGx1bVwtYmxvc3NvbTsKK+eVtueEtiA+IG9ubHlcLW5hdHVyYWw7CivmqJnlg7kgPiBtYXJrXC1hXC1wcmljZTsKK+ajkuehqyA+IHJvbGxcLXN1bHBodXI7CivlrZ3poIYgPiBmaWxpYWxcLXBpZXR5Owor6aWF6aCtID4gc3RlYW1lZFwtcm9sbDsKK+S/neeuoSA+IHRha2VcLWNhcmVcLW9mOwor5Z6C5LiLID4gdG9cLWhhbmdcLWRvd247Civoo4Hlk6EgPiB0b1wtY3V0XC1zdGFmZjsKK+a4hemGkiA+IGNsZWFyXC1oZWFkZWQ7CivnlbDmraUgPiBhc3luY2hyb25vdXM7Civoo5zlhYUgPiB0b1wtcmVwbGVuaXNoOwor5L6/56eYID4gY29uc3RpcGF0aW9uOwor55eF5bqKID4gaG9zcGl0YWxcLWJlZDsKK+aemOmRvyA+IGluY29tcGF0aWJsZTsKK+WaruW+gCA+IHRvXC15ZWFyblwtZm9yOwor6Ieq5ouUID4gZnJlZVwtb25lc2VsZjsKK+iIquWkqSA+IHNwYWNlXC1mbGlnaHQ7CivmjbLlhaUgPiB0b1wtZHJhd1wtaW50bzsKK+mrmOWvhiA+IGhpZ2hcLWRlbnNpdHk7CivooajlnJ8gPiBzdXJmYWNlXC1zb2lsOwor6LOe6K2YID4gYXBwcmVjaWF0aW9uOwor5oW26LOAID4gY29uZ3JhdHVsYXRlOwor5raI6ZmkID4gdG9cLWVsaW1pbmF0ZTsKK+ihl+WdiiA+IG5laWdoYm9yaG9vZDsKK+eRnuiJsiA+IGxvdmVseVwtY29sb3I7Civogb3oqqogPiB0b1wtaGVhclwtdG9sZDsKK+eVtuW/gyA+IHRvXC10YWtlXC1jYXJlOwor55Ww5oCnID4gaGV0ZXJvc2V4dWFsOwor5Lqk6YuSID4gY3Jvc3NcLXN3b3JkczsKK+iIiOWlriA+IFwoYmVcKVwtZXhjaXRlZDsKK+Wuh+iIqiA+IHNwYWNlXC1mbGlnaHQ7Civnpr3poZ4gPiBiaXJkXC1zcGVjaWVzOwor5YG95ZaEID4gaHlwb2NyaXRpY2FsOwor5oqx5oSnID4gZmVlbFwtYXNoYW1lZDsKK+iyoOiyrCA+IGluXC1jaGFyZ2VcLW9mOwor54++6KGMID4gYmVcLWluXC1lZmZlY3Q7CivlsYjmnI0gPiB0b1wtc3VycmVuZGVyOwor5rib57epID4gdG9cLXNsb3dcLWRvd247CivkuIvpvZIgPiBib3R0b21cLXRlZXRoOwor5aqS6auUID4gXChuZXdzXClcLW1lZGlhOwor56uf54S2ID4gdW5leHBlY3RlZGx5Owor6ama5oSVID4gYXN0b25pc2htZW50Owor55W25aC0ID4gYXRcLXRoZVwtc2NlbmU7CivlqZrpvaEgPiBtYXJyeWluZ1wtYWdlOwor5oqx5bGIID4gZmVlbFwtd3JvbmdlZDsKK+mjn+itnCA+IGNvb2tlcnlcLWJvb2s7CivkuKbpnZ4gPiByZWFsbHlcLWlzbicndDsKK+eqgeegtCA+IGJyZWFrdGhyb3VnaDsKK+S+teaZqCA+IHRvd2FyZHNcLWRhd247CivmvKLln44gPiBzZW91bFwsXC1rb3JlYTsKK+WwkeaVuCA+IHNtYWxsXC1udW1iZXI7CivnlbbliJ0gPiBhdFwtdGhhdFwtdGltZTsKK+aLjOWSjCA+IG1peFwtYW5kXC1zdGlyOwor5rWB6YCaID4gdG9cLWNpcmN1bGF0ZTsKK+WSqOipoiA+IGNvbnN1bHRhdGl2ZTsKK+aJkuaLiSA+IHB1c2hcLWxpZ2h0bHk7CivlsIjmlL8gPiBkaWN0YXRvcnNoaXA7Civpo7zojYkgPiBmb3JhZ2VcLWdyYXNzOwor6by76IWUID4gbmFzYWxcLWNhdml0eTsKK+a1tOihgCA+IGJsb29kXC1zb2FrZWQ7Civkvp3mk5ogPiBhY2NvcmRpbmdcLXRvOwor5bGs5ZyLID4gdmFzc2FsXC1zdGF0ZTsKK+mLvOethiA+IGZvdW50YWluXC1wZW47CivlgYnkurogPiBncmVhdFwtcGVyc29uOwor5a6J54efID4gcGl0Y2hcLWFcLWNhbXA7Civlkozop6MgPiBjb25jaWxpYXRvcnk7Civlr6bmlr0gPiB0b1wtaW1wbGVtZW50Owor5qKd5a2QID4gYVwtc2hvcnRcLW5vdGU7CivmoLnmnKwgPiBcKG5vdFwpXC1hdFwtYWxsOwor56iu56iuID4gYWxsXC1raW5kc1wtb2Y7CivmiYvluJUgPiBoYW5ka2VyY2hpZWY7Civms5XpmaIgPiBjb3VydFwtb2ZcLWxhdzsKK+agueaTmiA+IGFjY29yZGluZ1wtdG87CivmsrPppqwgPiBoaXBwb3BvdGFtdXM7CivnlJ/lkb0gPiBsaWZlXC1cKGZvcmNlXCk7CivkuLvop5IgPiBsZWFkaW5nXC1yb2xlOwor5rer54ylID4gYWJvbWluYXRpb25zOwor55Si5Y21ID4gbGF5XC1cKGFuXC1lZ2dcKTsKK+aenOeariA+IFwoZnJ1aXRcKVwtcGVlbDsKK+eNqOijgSA+IGRpY3RhdG9yc2hpcDsKK+S4jei2syA+IGluc3VmZmljaWVudDsKK+WutuaUvyA+IGhvdXNla2VlcGluZzsKK+S4jeiysiA+IGltbWVhc3VyYWJsZTsKK+aZmumkkCA+IGV2ZW5pbmdcLW1lYWw7CivkvZzmhJsgPiB0b1wtbWFrZVwtbG92ZTsKK+iYh+iBryA+IHNvdmlldFwtdW5pb247CivlrrPmgJUgPiB0b1wtYmVcLWFmcmFpZDsKK+aZmumWkyA+IGV2ZW5pbmdcLXRpbWU7CivkupTnmb4gPiBmaXZlXC1odW5kcmVkOwor5ZKM57SEID4gcGVhY2VcLXRyZWF0eTsKK+itiemplyA+IHJlYWxcLXJlc3VsdHM7Civmh4rmgpQgPiBmZWVsXC1yZW1vcnNlOwor5omj5LiKID4gdG9cLWJ1Y2tsZVwtdXA7Civkv4TkuK0gPiBydXNzaWFcLWNoaW5hOwor5LiA6JCsID4gdGVuXC10aG91c2FuZDsKK+iuiumAnyA+IHNwZWVkXC1jaGFuZ2U7Civlronlv4MgPiBmZWVsXC1hdFwtZWFzZTsKK+S6uuawkSA+IFwodGhlXClcLXBlb3BsZTsKK+Wwh+S+hiA+IFwodGhlXClcLWZ1dHVyZTsKK+mhjOiKsSA+IHRpdGxlXC1kZXNpZ247Civlj6/op4AgPiBjb25zaWRlcmFibGU7CivkurrmrIogPiBodW1hblwtcmlnaHRzOwor6LaV5LiKID4ga2VlcFwtdXBcLXdpdGg7CivogqHluIIgPiBzdG9ja1wtbWFya2V0Owor56e75rCRID4gdG9cLWltbWlncmF0ZTsKK+a3seaEmyA+IGFmZmVjdGlvbmF0ZTsKK+S7iuaZqCA+IHRoaXNcLW1vcm5pbmc7Civlr4blj4sgPiBjbG9zZVwtZnJpZW5kOwor5a2Y5b+DID4gZGVsaWJlcmF0ZWx5Owor5Y2X6Z2eID4gc291dGhcLWFmcmljYTsKK+S4jeespiA+IGluY29uc2lzdGVudDsKK+WRiuekuiA+IGFubm91bmNlbWVudDsKK+S4ueeUsCA+IHB1YmljXC1yZWdpb247CivljYrpn78gPiBoYWxmXC10aGVcLWRheTsKK+S4u+eSsCA+IHByaW1hcnlcLXJpbmc7CivkvaDlgJEgPiB5b3VcLVwocGx1cmFsXCk7CivkuIDnm7QgPiBjb250aW51b3VzbHk7Civlp7/oibIgPiBnb29kXC1sb29raW5nOwor5pqX566XID4gcGxvdFwtYWdhaW5zdDsKK+eojeW+riA+IGFcLWxpdHRsZVwtYml0Owor5Lqu5bqmID4gaWxsdW1pbmF0aW9uOwor5Y+D6ICDID4gY29uc3VsdGF0aW9uOwor5Lq65a62ID4gb3RoZXJcLXBlb3BsZTsKK+Wjr+m6lyA+IG1hZ25pZmljZW5jZTsKK+m7qOaUvyA+IHBhcnR5XC1wb2xpY3k7CivomZDlvoUgPiBtaXN0cmVhdG1lbnQ7CivmhJ/mgakgPiB0aGFua3NnaXZpbmc7CivnvbDnkIMgPiBwZW5hbHR5XC1zaG90Owor6LK75Z+OID4gcGhpbGFkZWxwaGlhOwor5rK555WrID4gb2lsXC1wYWludGluZzsKK+e+jua0siA+IHRoZVwtYW1lcmljYXM7Civosqflm7AgPiBpbXBvdmVyaXNoZWQ7Civkup7lpKogPiBhc2lhXC1wYWNpZmljOwor5aSn6YePID4gZ3JlYXRcLWFtb3VudDsKK+mggueUqCA+IHRvXC1iZVwtb2ZcLXVzZTsKK+iyu+WKmyA+IGdyZWF0XC1lZmZvcnQ7CivmmpfngZggPiBoaWRkZW5cLXNob2FsOwor6Jel5pa5ID4gcHJlc2NyaXB0aW9uOwor5Li75oyBID4gcHJlc2lkZVwtb3ZlcjsKK+mKgOW5lSA+IG1vdmllXC1zY3JlZW47CivogIHlrrYgPiBuYXRpdmVcLXBsYWNlOwor5pqX5r2uID4gdW5kZXJjdXJyZW50Owor6LK35YO5ID4gYnV5aW5nXC1wcmljZTsKK+WkmumCiiA+IG11bHRpbGF0ZXJhbDsKK+ePvuS7oyA+IG1vZGVyblwtdGltZXM7Civku5bkurogPiBvdGhlclwtcGVyc29uOwor5LmL5b6MID4gYWZ0ZXJcKHdhcmRzXCk7CivmhaPkvosgPiBjb252ZW50aW9uYWw7CivkuKbmjpIgPiBzaWRlXC1ieVwtc2lkZTsKK+iAleWcsCA+IGFyaWFibGVcLWxhbmQ7CivmmpfmtYEgPiB1bmRlcmN1cnJlbnQ7CivmtbTloLQgPiBiYXRoaW5nXC1zcG90Owor5LiN5paZID4gdW5leHBlY3RlZGx5Owor6JOL6I+cID4gbGVhZlwtbXVzdGFyZDsKK+itmOegtCA+IHRvXC1wZW5ldHJhdGU7CivkuI3mi5ggPiBub3RcLXN0aWNrXC10bzsKK+m8k+WLtSA+IHRvXC1lbmNvdXJhZ2U7Civpnq3noLIgPiBmaXJlY3JhY2tlcnM7CivmhJ/li5UgPiB0b1wtbW92ZVwtXChzYlwpOwor5oSP5ZGzID4gc2lnbmlmaWNhbmNlOwor5LiN5oSnID4gYmVcLXdvcnRoeVwtb2Y7CivkuI3mhI8gPiB1bmV4cGVjdGVkbHk7CivpnbbntJkgPiB0YXJnZXRcLXNoZWV0Owor5oSI5YqgID4gYWxsXC10aGVcLW1vcmU7CivpgaDpm6IgPiByZW1vdmVkXC1mcm9tOwor5ZKM5ZaEID4gZ29vZFwtbmF0dXJlZDsKK+iqjeitiSA+IGF1dGhlbnRpY2F0ZTsKK+WIqOm9kiA+IGdlYXJcLXNoYXBpbmc7Civms6jmhI8gPiB0YWtlXC1ub3RlXC1vZjsKK/CmiYYgPiB0b1wtYnJlYWtcLW9mZjsKK+miqOWRsyA+IGxvY2FsXC1mbGF2b3I7CivnuaHoirEgPiB0b1wtZW1icm9pZGVyOwor55+l6K2YID4gaW50ZWxsZWN0dWFsOwor5pqX5o6iID4gc2VjcmV0XC1hZ2VudDsKK+aatOaAkiA+IHZpb2xlbnRcLXJhZ2U7CivkuI3lrrkgPiBub3RcLXRvbGVyYXRlOwor5LiN5a6cID4gbm90XC1zdWl0YWJsZTsKK+eKr+avkiA+IGlsbGVnYWxcLWRydWc7CivlpKfoh7QgPiBtb3JlXC1vclwtbGVzczsKK+WlveeciyA+IGdvb2RcLWxvb2tpbmc7CivkuI3lpoIgPiBub3RcLWVxdWFsXC10bzsKK+W+l+elqCA+IHZvdGVcLWdldHRpbmc7CivmtL7liKUgPiBkZW5vbWluYXRpb247Civnt5rou7ggPiB0aHJlYWRcLXNwb29sOwor5pyJ5YipID4gYWR2YW50YWdlb3VzOwor6KiC6ZaxID4gc3Vic2NyaXB0aW9uOwor5oGi5b6pID4gdG9cLXJlaW5zdGF0ZTsKK+mAmemghSA+IHRoaXNcLVwodGhpbmdcKTsKK+WPr+aDnCA+IGl0XC1pc1wtYVwtcGl0eTsKK+WpmuWkliA+IGV4dHJhbWFyaXRhbDsKK+S4jeWWriA+IG5vdFwtdGhlXC1vbmx5Owor6YGL6YCBID4gdG9cLXRyYW5zcG9ydDsKK+S5i+S4gCA+IG9uZVwtb2ZcLVwoc3RoXCk7CivlooPpgYcgPiBjaXJjdW1zdGFuY2U7Civph47lv4MgPiB3aWxkXC1zY2hlbWVzOwor5pWX6IiIID4gZGlzYXBwb2ludGVkOwor5Y275q2lID4gdG9cLXN0ZXBcLWJhY2s7CivkuK3kv4QgPiBjaGluYVwtcnVzc2lhOwor5Y2x5q6GID4gZ3JhdmVcLWRhbmdlcjsKK+S4reS6niA+IGNlbnRyYWxcLWFzaWE7CivorormgKcgPiBkZW5hdHVyYXRpb247Civljp/mlpkgPiByYXdcLW1hdGVyaWFsOwor5LiN5YipID4gdW5mYXZvdXJhYmxlOwor5LiA5Y2DID4gb25lXC10aG91c2FuZDsKK+eIhueZvCA+IHRvXC1icmVha1wtb3V0Owor5aSa56uZID4gbXVsdGlzdGF0aW9uOwor5rCn5rCjID4gb3h5Z2VuXC1cKGdhc1wpOwor5b+15pelID4gbWVtb3JpYWxcLWRheTsKK+WQhOWciyA+IGVhY2hcLWNvdW50cnk7CivkuI3kvr8gPiBpbmNvbnZlbmllbnQ7CivmmYLmhYsgPiBcKHZlcmJcKVwtdGVuc2U7CivnvoXliJcgPiB0b1wtc3BlYWRcLW91dDsKK+S4gOWEhCA+IDFcLTAwXC1taWxsaW9uOwor5b6p5rS7ID4gcmVzdXJyZWN0aW9uOwor5pq05YuVID4gaW5zdXJyZWN0aW9uOwor6Z225qmfID4gdGFyZ2V0XC1kcm9uZTsKK+mBi+ihjCA+IGJlXC1pblwtbW90aW9uOwor57eo6IieID4gY2hvcmVvZ3JhcGh5Owor5q+U54WnID4gYWNjb3JkaW5nXC10bzsKK+Wjk+e4riA+IHRvXC1jb21wcmVzczsKK+ioquiPryA+IHZpc2l0XC1jaGluYTsKK+iqjeefpSA+IGFja25vd2xlZGdlOwor5Y+r5ZaKID4gZXhjbGFtYXRpb247CivpgKPoqZ4gPiBjb25qdW5jdGlvbjsKK+W8iuerryA+IG1hbHByYWN0aWNlOwor6Z2e5qC4ID4gbm9uXC1udWNsZWFyOwor5pS256mrID4gYWNxdWlzaXRpb247CivmsJHml48gPiBuYXRpb25hbGl0eTsKK+aal+S6lSA+IGJsaW5kXC1zaGFmdDsKK+aal+S4rSA+IGluXC10aGVcLWRhcms7Civnn5rnm64gPiB0b1wtZm9jdXNcLW9uOwor5biD6Z6LID4gY2xvdGhcLXNob2VzOwor5Z+L6aCtID4gc3RlYW1lZFwtYnVuOwor5Yik6JmVID4gdG9cLXNlbnRhbmNlOwor5Yi76IumID4gaGFyZHdvcmtpbmc7CivmqJnpu54gPiBwdW5jdHVhdGlvbjsKK+eZvem6tSA+IHdoZWF0XC1mbG91cjsKK+WGkumaqiA+IHRha2VcLWFcLXJpc2s7Civnmb3ptrQgPiB3aGl0ZVwtY3JhbmU7CivlvoDmmJQgPiBpblwtdGhlXC1wYXN0Owor6YKK55aGID4gYm9yZGVyXC1hcmVhOwor6K6T5L2NID4gdG9cLWFiZGljYXRlOwor5oCq5YO7ID4gcGVjdWxpYXJpdHk7CivlvoHmlLYgPiBsZXZ5XC1cKGZpbmVcKTsKK+avjeadvyA+IG1vdGhlcmJvYXJkOwor6ZyA5rGCID4gcmVxdWlyZW1lbnQ7CivlpKfmpa0gPiBncmVhdFwtY2F1c2U7Civml7rlraMgPiBidXN5XC1zZWFzb247Civlv4XlrpogPiBiZVwtYm91bmRcLXRvOwor5Y2K5bm0ID4gaGFsZlwtYVwteWVhcjsKK+iqsuahjCA+IHNjaG9vbFwtZGVzazsKK+mWk+malCA+IGNvbXBhcnRtZW50Owor6YGy55aRID4gdG9cLWhlc2l0YXRlOwor6Z2I5oSfID4gaW5zcGlyYXRpb247CivlpLHmlZcgPiBiZVwtZGVmZWF0ZWQ7CivoqqrmnI0gPiB0b1wtcGVyc3VhZGU7CivliLbntIQgPiB0b1wtcmVzdHJpY3Q7Civpno/lm7ogPiBjb25zb2xpZGF0ZTsKK+WMheaLrCA+IHRvXC1jb21wcmlzZTsKK+WmpeWWhCA+IGFwcHJvcHJpYXRlOwor6L6v6Ki8ID4gZGlhbGVjdGljYWw7CivngInpub0gPiBlcHNvbVwtc2FsdHM7CivopIfpm5wgPiBjb21wbGljYXRlZDsKK+WNs+WIuyA+IGltbWVkaWF0ZWx5Owor5YuY5o6iID4gZXhwbG9yYXRpb247CivljZrlj5YgPiB0cnlcLXRvXC1nYWluOwor5pS+5qOEID4gdG9cLXJlbm91bmNlOwor5Yaw6JuLID4gZnJvemVuXC1lZ2dzOwor6Zi756SZID4gdG9cLW9ic3RydWN0Owor6L+956m2ID4gaW52ZXN0aWdhdGU7Civpg7XlsYAgPiBwb3N0XC1vZmZpY2U7Civpm5nmlbggPiBldmVuXC1udW1iZXI7CivokpDlsIsgPiB0b1wtbG9va1wtZm9yOwor55m96YGTID4gbW9vbicnc1wtcGF0aDsKK+WLleaFiyA+IGRldmVsb3BtZW50Owor5rC45LmFID4gZXZlcmxhc3Rpbmc7CivnmbzpgIEgPiB0b1wtdHJhbnNtaXQ7CivphY3lgpkgPiB0b1wtYWxsb2NhdGU7CivorIDlj5YgPiB0cnlcLXRvXC1nYWluOwor5q+U5aaCID4gZm9yXC1leGFtcGxlOwor5aSa5bGxID4gbW91bnRhaW5vdXM7Civpm7vlt6UgPiBlbGVjdHJpY2lhbjsKK+e0heiJsiA+IHJlZFwtXChjb2xvclwpOwor5o+P6L+wID4gdG9cLWRlc2NyaWJlOwor5Y2B5YSEID4gb25lXC1iaWxsaW9uOwor5YW16J+7ID4gc29sZGllclwtYW50Owor5q+A5aOeID4gZGVzdHJ1Y3Rpb247CivliYrmuJsgPiB0b1wtY3V0XC1kb3duOwor5pel5LitID4gamFwYW5cLWNoaW5hOwor6Zqo5pmCID4gYXRcLWFueVwtdGltZTsKK+iovOabuCA+IGNlcnRpZmljYXRlOwor6ZW36KuHID4gYVwtbG9uZ1wtdGFsazsKK+Wkp+WeiyA+IGxhcmdlXC1zY2FsZTsKK+ijnOmBuCA+IGJ5XC1lbGVjdGlvbjsKK+iQveW+jCA+IGZhbGxcLWJlaGluZDsKK+aOqOmBsiA+IHRvXC1wb3N0cG9uZTsKK+aTjeazlSA+IGRyaWxsXC1ydWxlczsKK+i7jemaiiA+IGFybXlcLXRyb29wczsKK+aoueiRiSA+IHRyZWVcLWxlYXZlczsKK+WJm+aetiA+IHJpZ2lkXC1mcmFtZTsKK+irh+WIsCA+IHRvXC1yZWZlclwtdG87Civlho3ogIUgPiBmdXJ0aGVybW9yZTsKK+iqv+WItiA+IHRvXC1tb2R1bGF0ZTsKK+WfuuefsyA+IGNvcm5lcnN0b25lOwor5b6A5LqLID4gcGFzdFwtZXZlbnRzOwor5aSn5YqfID4gZ3JlYXRcLW1lcml0Owor6KOB6LuNID4gZGlzYXJtYW1lbnQ7CivoqqHlkb0gPiBjb21tYW5kbWVudDsKK+WFp+iHoyA+IGNoYW1iZXJsYWluOwor5Z2m6JWpID4gbWFnbmFuaW1vdXM7CivmjqLoqI4gPiBpbnZlc3RpZ2F0ZTsKK+WinuW8tyA+IHRvXC1pbmNyZWFzZTsKK+mBteWuiCA+IGNvbXBseVwtd2l0aDsKK+mZkOaWvCA+IHJlc3RyaWN0XC1hdDsKK+mWiee2kyA+IGFtZW5vcnJob2VhOwor6KqN5Ye6ID4gcmVjb2duaXRpb247CivlhY3ogbcgPiBkZWdyYWRhdGlvbjsKK+W3peeoiyA+IGVuZ2luZWVyaW5nOwor6KiY5b6XID4gdG9cLXJlbWVtYmVyOwor5pO65biDID4gb3JkZXJcLWFib3V0Owor6YCP5piOID4gdHJhbnNwYXJlbnQ7CivlipvlnJYgPiB0cnlcLWhhcmRcLXRvOwor6L+95p+lID4gaW52ZXN0aWdhdGU7Civlhbjnpq4gPiBjZWxlYnJhdGlvbjsKK+WIkeacnyA+IHByaXNvblwtdGVybTsKK+eyvuewoSA+IHRvXC1zaW1wbGlmeTsKK+iKseiMtiA+IHNjZW50ZWRcLXRlYTsKK+aVo+S9iCA+IGRpc3NlbWluYXRlOwor6KaG5ruFID4gZGVzdHJ1Y3Rpb247CivnsL/oqJggPiBib29ra2VlcGluZzsKK+inuOaAkiA+IHByb3ZvY2F0aW9uOwor5pSq5ZKMID4gdG9cLW1peFwtXCh1cFwpOwor5o+P57mqID4gdG9cLWRlc2NyaWJlOwor6YCx5bm0ID4gYW5uaXZlcnNhcnk7CivntZXmnJsgPiBkZXNwZXJhdGlvbjsKK+aVl+S7lyA+IGxvc3RcLWJhdHRsZTsKK+WinuWkmiA+IHRvXC1pbmNyZWFzZTsKK+e1kOadnyA+IHRlcm1pbmF0aW9uOwor54Sh5oSPID4gaW5hZHZlcnRhbnQ7CivpgorljYAgPiBib3JkZXJcLWFyZWE7Civnm7jmr5QgPiBjb21wYXJlZFwtdG87CivopobmspIgPiBhbm5paGlsYXRlZDsKK+ecieaioiA+IHRpcFwtb2ZcLWJyb3c7CivliIfmj5sgPiB0b1wtY3V0XC1vdmVyOwor5YWp55m+ID4gdHdvXC1odW5kcmVkOwor6KmV5YO5ID4gdG9cLWV2YWx1YXRlOwor5bSp6KOCID4gYnVyc3RcLWFwYXJ0Owor5Yqg5LulID4gaW5cLWFkZGl0aW9uOwor5oyJ6YiVID4gcHVzaFwtYnV0dG9uOwor6L6y5qWtID4gYWdyaWN1bHR1cmU7CivloLHmh4kgPiByZXRyaWJ1dGlvbjsKK+W5vuW5tCA+IGFcLWZld1wteWVhcnM7Civnm7zmnJsgPiB0b1wtaG9wZVwtZm9yOwor6ZqK5ZOhID4gdGVhbVwtbWVtYmVyOwor6KGM6LmkID4gd2hlcmVhYm91dHM7CivmlK/ku5ggPiBwYXlcLVwobW9uZXlcKTsKK+ihqOiqniA+IHByZWRpY2F0aXZlOwor6Ki75YaKID4gdG9cLXJlZ2lzdGVyOwor6ZmE5bGsID4gc3Vib3JkaW5hdGU7Civlgb3ou40gPiBwdXBwZXRcLWFybXk7CivlhKrnp4AgPiBvdXRzdGFuZGluZzsKK+mrlOiyvCA+IGNvbnNpZGVyYXRlOwor5Z+35pS/ID4gYmVcLWluXC1wb3dlcjsKK+mtmuervyA+IGZpc2hpbmdcLXJvZDsKK+W4jOacmyA+IHJvXC13aXNoXC1mb3I7CivntITmnIMgPiBhcHBvaW50bWVudDsKK+mrlOiqjSA+IHJlYWxpemF0aW9uOwor5bm45aW9ID4gZm9ydHVuYXRlbHk7CivmjojnsokgPiBwb2xsaW5hdGlvbjsKK+ijveeJhyA+IG1vdmllbWFraW5nOwor5qmf5pyDID4gb3Bwb3J0dW5pdHk7Civpl5zmirwgPiBwdXRcLWluXC1qYWlsOwor6KiY5L2PID4gdG9cLXJlbWVtYmVyOwor54GM5rqJID4gdG9cLWlycmlnYXRlOwor6YCa5ZGKID4gdG9cLWFubm91bmNlOwor6amV6Zm9ID4gYmxhemluZ1wtc3VuOwor5r+D57iuID4gY29uY2VudHJhdGU7CivlnIvnsY0gPiBuYXRpb25hbGl0eTsKK+WJjeS7uyA+IHByZWRlY2Vzc29yOwor6Luf56KfID4gZmxvcHB5XC1kaXNrOwor6Luf55ukID4gZmxvcHB5XC1kaXNrOwor5bGP6ZaAID4gc2NyZWVuXC1kb29yOwor5ouc6KiqID4gcGF5XC1hXC12aXNpdDsKK+mAgOWHuiA+IHRvXC13aXRoZHJhdzsKK+aOoeeFpCA+IGNvYWxcLW1pbmluZzsKK+W5s+WHoSA+IGNvbW1vbnBsYWNlOwor5ous6JmfID4gcGFyZW50aGVzaXM7Civkvr/pnosgPiBjbG90aFwtc2hvZXM7Civmu7LpgI8gPiB0b1wtcGVybWVhdGU7Civlgbfogb0gPiB0b1wtZXZlc2Ryb3A7Civlh7rlhbUgPiBzZW5kXC10cm9vcHM7Civln7nlnJ8gPiB0b1wtZWFydGhcLXVwOwor6ZaL5oiwID4gc3RhcnRcLWFcLXdhcjsKK+WIhuS9iCA+IGRpc3RyaWJ1dGVkOwor6L+35Lq6ID4gZmFzY2luYXRpbmc7Civlh7rkvoYgPiB0b1wtY29tZVwtb3V0Owor5L+h6YGTID4gc2lnbmFsXC1wYXRoOwor6a2U5rOVID4gZW5jaGFudG1lbnQ7CivnlLPoq4sgPiBhcHBseVwtXChmb3JcKTsKK+i3kei7iiA+IHJhY2luZ1wtYmlrZTsKK+aPj+aRuSA+IHRvXC1kZXNjcmliZTsKK+WFq+W5tCA+IGVpZ2h0XC15ZWFyczsKK+exjOasviA+IGZ1bmRyYWlzaW5nOwor5Z+f5ZCNID4gZG9tYWluXC1uYW1lOwor5YWr5a2XID4gY2hhcmFjdGVyXC04Owor55u45Ly8ID4gdG9cLXJlc2VtYmxlOwor5oyq55SoID4gdG9cLWVtYmV6emxlOwor55m85bGVID4gZGV2ZWxvcG1lbnQ7Civoo53mia4gPiBkcmVzc1wtdXBcLWFzOwor5Z+O5Y2AID4gY2l0eVwtcHJvcGVyOwor5rqd6YCaID4gY29tbXVuaWNhdGU7CivngrrkuoYgPiBpblwtb3JkZXJcLXRvOwor55m95a6uID4gd2hpdGVcLWhvdXNlOwor5Yag5YaVID4gcm95YWxcLWNyb3duOwor5YOP5qijID4gcHJlc2VudGFibGU7Civlt6flkIggPiBjb2luY2lkZW5jZTsKK+aIsOi7iiA+IHdhclwtY2hhcmlvdDsKK+eZveWknCA+IHdoaXRlXC1uaWdodDsKK+iKseW6lyA+IGZsb3dlclwtc2hvcDsKK+aPj+WvqyA+IHRvXC1kZXNjcmliZTsKK+S+v+imvSA+IGJyaWVmXC1ndWlkZTsKK+iIiueJiCA+IG9sZFwtdmVyc2lvbjsKK+WboOatpCA+IHRoYXRcLWlzXC13aHk7Civlr6bouJAgPiB0b1wtcHJhY3RpY2U7CivlsIvoppMgPiB0b1wtbG9va1wtZm9yOwor55Ge6ZuqID4gdGltZWx5XC1zbm93Owor5YWs5YWDID4gXCh5ZWFyXClcLWFcLmRcLjsKK+iJsuaDhSA+IHBvcm5vZ3JhcGh5Owor5L6G6KiqID4gcGF5XC1hXC12aXNpdDsKK+eZveWIgyA+IG5ha2VkXC1zd29yZDsKK+eZvOWHuiA+IHRvXC1zZW5kXC1vdXQ7CivlsLHogbcgPiB0YWtlXC1vZmZpY2U7Civmi5Tnh58gPiBzdHJpa2VcLWNhbXA7CivmiornqakgPiB0cnVzdHdvcnRoeTsKK+WuueiyjCA+IGNvdW50ZW5hbmNlOwor6IiS5pyNID4gY29tZm9ydGFibGU7CivmiYvnuowgPiBmb3JtYWxpdGllczsKK+aMieacnyA+IG9uXC1zY2hlZHVsZTsKK+i4qeawtCA+IHRyZWFkXC13YXRlcjsKK+Wuo+iogCA+IGRlY2xhcmF0aW9uOwor5Lu/6YCgID4gY291bnRlcmZlaXQ7Civlr6bnv5IgPiB0b1wtcHJhY3RpY2U7Civlgbfmh7YgPiB0b1wtZ29vZlwtb2ZmOwor6by76Z+zID4gbmFzYWxcLXNvdW5kOwor5p+l6K2JID4gaW52ZXN0aWdhdGU7CivnkrDnuZ4gPiB0b1wtc3Vycm91bmQ7Civlm7DlooMgPiBwcmVkaWNhbWVudDsKK+a7sua/viA+IHBlcmNvbGF0aW9uOwor55eF5a65ID4gc2lja2x5XC1sb29rOwor5oiQ57i+ID4gcGVyZm9ybWFuY2U7CivkurrplpMgPiBtYW4nJ3NcLXdvcmxkOwor56uv56uZID4gZW5kXC1zdGF0aW9uOwor6KGN5bCEID4gZGlmZnJhY3Rpb247Civlm57loLEgPiBcKGluXClcLXJldHVybjsKK+ajl+aouSA+IGp1anViZVwtdHJlZTsKK+aIlueosSA+IGFsc29cLWNhbGxlZDsKK+aLrOW8pyA+IHBhcmVudGhlc2lzOwor6auY5aOTID4gaGlnaFwtaGFuZGVkOwor5Luy6KOBID4gYXJiaXRyYXRpb247CivlgLzlvpcgPiB0b1wtYmVcLXdvcnRoOwor55Ww5bi4ID4gZXhjZXB0aW9uYWw7CivomrHonKIgPiBncmFzc2hvcHBlcjsKK+mRveWtlCA+IGJvcmVcLWFcLWhvbGU7CivnlbblsYAgPiBhdXRob3JpdGllczsKK+mrmOWUsSA+IHNpbmdcLWxvdWRseTsKK+S7i+ipniA+IHByZXBvc2l0aW9uOwor6Iie5YqHID4gZGFuY2VcLWRyYW1hOwor5YKR5Ye6ID4gaWxsdXN0cmlvdXM7CivnlobloLQgPiBiYXR0bGVmaWVsZDsKK+S/oeacjSA+IHRvXC1jb252aW5jZTsKK+iEvuawoyA+IHRlbXBlcmFtZW50Owor5LiK6b2SID4gdXBwZXJcLXRlZXRoOwor5oWw6JeJID4gY29uc29sYXRpb247Civmnb/opo8gPiBwbGF0ZVwtZ2F1Z2U7Civnl4XkurogPiBzaWNrXC1wZXJzb247CivpkZLlrpogPiB0b1wtYXBwcmFpc2U7Civlgpnku7YgPiBzcGFyZVwtcGFydHM7CivnlJ/miJAgPiBiZVwtcHJvZHVjZWQ7Civkvr/mobYgPiBjaGFtYmVyXC1wb3Q7CivohKvmsKcgPiBkZW94aWRhdGlvbjsKK+aDhemhmCA+IHdpbGxpbmduZXNzOwor55Sf5oWLID4gd2F5XC1vZlwtbGlmZTsKK+aMh+WHuiA+IHRvXC1pbmRpY2F0ZTsKK+aJgeahgyA+IGFsbW9uZFwtdHJlZTsKK+i3i+aJiCA+IGRvbWluZWVyaW5nOwor5L+u5b6pID4gcmVzdG9yYXRpb247CivnrYblv4MgPiBwZW5jaWxcLWxlYWQ7Civkv6Hmga8gPiBpbmZvcm1hdGlvbjsKK+S4jemhpyA+IGluXC1zcGl0ZVwtb2Y7Civnq4vms5UgPiBsZWdpc2xhdGlvbjsKK+WwjeaWuSA+IGNvdW50ZXJwYXJ0Owor56m655m9ID4gYmxhbmtcLXNwYWNlOwor55S35aWzID4gbWFsZVwtZmVtYWxlOwor55W25YGaID4gdG9cLXRyZWF0XC1hczsKK+i3m+WtkCA+IGxhbWVcLXBlcnNvbjsKK+S6lOiQrCA+IDUwXC10aG91c2FuZDsKK+aciei2oyA+IGludGVyZXN0aW5nOwor5L+d5a2YID4gdG9cLWNvbnNlcnZlOwor5reY56WeID4gdHJvdWJsZXNvbWU7CivnrYbloqggPiBwZW5cLWFuZFwtaW5rOwor6JaR6aSFID4gZ2luZ2VyYnJlYWQ7CivmuqvluqYgPiB0ZW1wZXJhdHVyZTsKK+i3keWjmCA+IGJhc2VydW5uaW5nOwor6Jyc5qGDID4gaG9uZXlcLXBlYWNoOwor6ZGS5LqOID4gaW5cLWxpZ2h0XC1vZjsKK+WPr+mpmiA+IGFzdG9uaXNoaW5nOwor5L6/5a6cID4gaW5leHBlbnNpdmU7CivkuI3ov60gPiBjYW5ub3RcLWNvcGU7CivmiYvlr6sgPiBoYW5kd3JpdGluZzsKK+S4i+i8iSA+IHRvXC1kb3dubG9hZDsKK+i4j+S4iiA+IHNldFwtZm9vdFwtb247CivkvZzmlocgPiBjb21wb3NpdGlvbjsKK+a7suWFpSA+IHRvXC1wZXJtZWF0ZTsKK+eSsOW9oiA+IHJpbmdcLXNoYXBlZDsKK+S9iOaZryA+IFwoc3RhZ2VcKVwtc2V0Owor5oiS5b6LID4gY29tbWFuZG1lbnQ7CivpqZrkurogPiBhc3RvbmlzaGluZzsKK+mot+WLlSA+IGRpc3R1cmJhbmNlOwor5oKy6KeAID4gcGVzc2ltaXN0aWM7CivlsazkuIsgPiBzdWJvcmRpbmF0ZTsKK+e+juiyjCA+IGdvb2Rsb29raW5nOwor55So5LulID4gaW5cLW9yZGVyXC10bzsKK+m6u+iXpSA+IGFuYWVzdGhldGljOwor5bCP5Z6LID4gc21hbGxcLXNjYWxlOwor5oiw5aC0ID4gYmF0dGxlZmllbGQ7CivpoYzoqZ4gPiBpbnNjcmlwdGlvbjsKK+S+i+WmgiA+IGZvclwtZXhhbXBsZTsKK+i2o+WRsyA+IHRvXC1pbnRlcmVzdDsKK+S/oeS7sCA+IGZpcm1cLWJlbGllZjsKK+iCoeadsSA+IHN0b2NraG9sZGVyOwor6Y6u5aOTID4gc3VwcHJlc3Npb247Civmnb/niZkgPiBmcm9udFwtdG9vdGg7Civms7PopLIgPiBzd2ltXC10cnVua3M7Civmop3kvosgPiByZWd1bGF0aW9uczsKK+WQjOizqiA+IGhvbW9nZW5lb3VzOwor55Kw5aKDID4gZW52aXJvbm1lbnQ7Civpoa/okZcgPiBvdXRzdGFuZGluZzsKK+S6jOeZviA+IHR3b1wtaHVuZHJlZDsKK+WwseS7uyA+IHRha2VcLW9mZmljZTsKK+aenOaxgSA+IGZydWl0XC1qdWljZTsKK+iAleeVnCA+IGZhcm1cLWFuaW1hbDsKK+mHjei/lCA+IHJldHVyblwtXCh0b1wpOwor5LiL6JC9ID4gd2hlcmVhYm91dHM7CivkuJ/oh4kgPiBodW1pbGlhdGlvbjsKK+azleimjyA+IGxlZ2lzbGF0aW9uOwor5oiR5ZyLID4gb3VyXC1jb3VudHJ5Owor5L2I5bGAID4gYXJyYW5nZW1lbnQ7CivororpgJogPiBiZVwtZmxleGlibGU7CivpvLvmtpUgPiBuYXNhbFwtbXVjdXM7CivosrjmrL4gPiBcKGJhbmtcKVwtbG9hbjsKK+a6luWCmSA+IHByZXBhcmF0aW9uOwor5a6J5bq3ID4gZ29vZFwtaGVhbHRoOwor6aCQ6KiIID4gdG9cLWZvcmVjYXN0Owor6IGw5piOID4gaW50ZWxsaWdlbnQ7Civph4/oqZ4gPiBtZWF1cmVcLXdvcmQ7Civnq4vljbMgPiBpbW1lZGlhdGVseTsKK+WQjeiRlyA+IG1hc3RlcnBpZWNlOwor5Lu75oSPID4gYXJiaXRyYXJpbHk7CivlronlrrYgPiBzZXR0bGVcLWRvd247CivppZLmgZUgPiBmb3JnaXZlbmVzczsKK+Wuh+WumSA+IG91dGVyXC1zcGFjZTsKK+eRnuWjqyA+IHN3aXR6ZXJsYW5kOwor5ZaH5Y+tID4gbG91ZHNwZWFrZXI7CivmiJDku70gPiBjb21wb3NpdGlvbjsKK+mngeWAkiA+IGRlbW9saXNoXC1zYjsKK+a1tOaxoCA+IHB1YmxpY1wtYmF0aDsKK+S7peW+gCA+IGluXC10aGVcLXBhc3Q7Civpoa/nm64gPiBvdXRzdGFuZGluZzsKK+WllOmmsyA+IHJ1blwtcXVpY2tseTsKK+ePvuW5tCA+IGN1cnJlbnRcLWFnZTsKK+mIlOelqCA+IHBhcGVyXC1tb25leTsKK+ekuuevhCA+IGRlbW9uc3RyYXRlOwor5pm66IO9ID4gaW50ZWxsaWdlbnQ7CivkuqTmj5sgPiB0b1wtZXhjaGFuZ2U7Civpoqjms6IgPiBkaXN0dXJiYW5jZTsKK+iXpeeJqSA+IG1lZGljYW1lbnRzOwor6YSZ6ZmLID4gc3VwZXJmaWNpYWw7CivogIPmn6UgPiBpbnZlc3RpZ2F0ZTsKK+WknOm2ryA+IG5pZ2h0aW5nYWxlOwor6aSQ5buzID4gZGluaW5nXC1oYWxsOwor5YyX6Z+TID4gbm9ydGhcLWtvcmVhOwor5LqS5o+bID4gdG9cLWV4Y2hhbmdlOwor5aiB6ISFID4gdG9cLXRocmVhdGVuOwor56m65YmNID4gdW5wcmVjZWRlbnQ7CivpoJDntIQgPiByZXNlcnZhdGlvbjsKK+eisOimiyA+IHRvXC1ydW5cLWludG87Civmn6Xlh7ogPiB0b1wtZmluZFwtb3V0Owor5Y2K6YKKID4gaGFsZlwtb2ZcLXN0aDsKK+aal+ekuiA+IGRyb3BcLWFcLWhpbnQ7CivkuqTlvoAgPiBhc3NvY2lhdGlvbjsKK+awo+izqiA+IHRlbXBlcmFtZW50Owor5pu45rOVID4gY2FsbGlncmFwaHk7CivljZPotoogPiBkaXN0aW5jdGlvbjsKK+iCoeWDuSA+IHN0b2NrXC1wcmljZTsKK+S5neaciCA+IG5pbnRoXC1tb250aDsKK+S4u+asiiA+IHNvdmVyZWlnbnR5Owor5aSa6aSYID4gc3VwZXJmbHVvdXM7CivmgbDnlbYgPiBhcHByb3ByaWF0ZTsKK+iBveWPliA+IGhlYXJcLVwobmV3c1wpOwor5oSf5oCnID4gc2Vuc2liaWxpdHk7CivllYbkurogPiBidXNpbmVzc21hbjsKK+emgeatoiA+IHRvXC1wcm9oaWJpdDsKK+enieaJvyA+IHRha2VcLW9yZGVyczsKK+WUruWDuSA+IHRvXC1zZWxsXC1mb3I7CivlrIzlqpogPiBmbGlydGF0aW91czsKK+mggeeivCA+IHBhZ2VcLW51bWJlcjsKK+S6pOWqviA+IHRvXC1oYXZlXC1zZXg7CivkuIrmtYEgPiB1cHBlclwtY2xhc3M7CivpnLjpgZMgPiBvdmVyYmVhcmluZzsKK+azoueAviA+IGdyZWF0XC13YXZlczsKK+azoua/pCA+IGdyZWF0XC13YXZlczsKK+S4jeatoiA+IGluY2Vzc2FudGx5Owor54it6K2wID4gY29udHJvdmVyc3k7CivkuK3mnbEgPiBtaWRkbGVcLWVhc3Q7CivkuLnmlrkgPiBmb2xrXC1yZW1lZHk7Civph43nloogPiBvdmVybGFwcGluZzsKK+S4reaXpSA+IGNoaW5hXC1qYXBhbjsKK+WQnuaykiA+IHRvXC1lbWJlenpsZTsKK+mHjeePviA+IHRvXC1yZWFwcGVhcjsKK+mjn+WggiA+IGRpbmluZ1wtaGFsbDsKK+absuaKmCA+IGNvbXBsaWNhdGVkOwor6Z226Ii5ID4gdGFyZ2V0XC1zaGlwOwor5Y2D6JCsID4gdGVuXC1taWxsaW9uOwor5LiA5pyIID4gZmlyc3RcLW1vbnRoOwor54qv55eFID4gdG9cLWZhbGxcLWlsbDsKK+WQjOatpSA+IHN5bmNocm9ub3VzOwor5ZO65LmzID4gYnJlYXN0XC1mZWVkOwor6Kq/6K6KID4gdG9cLW1vZHVsYXRlOwor5Li75by1ID4gdG9cLWFkdm9jYXRlOwor5ama5pyfID4gd2VkZGluZ1wtZGF5Owor5pqX5q66ID4gYXNzYXNzaW5hdGU7Civmr5von7IgPiBjYXRlcnBpbGxhcjsKK+S4u+W4rSA+IGNoYWlycGVyc29uOwor6YKK6ZmyID4gYm9yZGVyXC1hcmVhOwor5Y2x56+kID4gZGVhdGhseVwtaWxsOwor5LqS5YuVID4gaW50ZXJhY3RpdmU7Civlppbnsr4gPiBldmlsXC1zcGlyaXQ7CivkuK3lubQgPiBtaWRkbGVcLWFnZWQ7Civosp3kuJggPiBzaGVsbFwtbW91bmQ7CivmhI/lkJEgPiBkaXNwb3NpdGlvbjsKK+ayiOa+sSA+IHByZWNpcGl0YXRlOwor5Y+W5rG6ID4gZGVwZW5kXC11cG9uOwor57mB6KSHID4gY29tcGxpY2F0ZWQ7CivpmpTpm6IgPiB0b1wtc2VwYXJhdGU7CivkuInlubQgPiB0aHJlZVwteWVhcnM7CivpmpTplosgPiB0b1wtc2VwYXJhdGU7Civwob2xID4gYVwtaGlnaFwtaGlsbDsKK+S4i+WxrCA+IHN1Ym9yZGluYXRlOwor5LiK5bGkID4gdXBwZXJcLWxheWVyOwor57m857qMID4gdG9cLWNvbnRpbnVlOwor5aOv6KeAID4gc3BlY3RhY3VsYXI7CivmlL/oroogPiBjb3VwXC1kJydldGF0Owor56We5a24ID4gdGhlb2xvZ2ljYWw7CivnuYHoj68gPiBmbG91cmlzaGluZzsKK+mhjOWtlyA+IGluc2NyaXB0aW9uOwor5ZCI5b2xID4gam9pbnRcLXBob3RvOwor5aaC55WrID4gcGljdHVyZXNxdWU7CivkuI3loKogPiBjYW5ub3RcLWJlYXI7Civol6Xlk4EgPiBtZWRpY2FtZW50czsKK+mghuaHiSA+IGNvbXBseVwtd2l0aDsKK+e1gum7niA+IGRlc3RpbmF0aW9uOwor54iG56u5ID4gZmlyZWNyYWNrZXI7Civlvpfnl4UgPiB0b1wtZmFsbFwtaWxsOwor6YCP6ZyyID4gdG9cLWxlYWtcLW91dDsKK+mYu+malCA+IHRvXC1zZXBhcmF0ZTsKK+eJueasiiA+IHByZXJvZ2F0aXZlOwor5aSq56m6ID4gb3V0ZXJcLXNwYWNlOwor5YiG6ZuiID4gdG9cLXNlcGVyYXRlOwor56aB5LukID4gcHJvaGliaXRpb247CivkuI3lhY0gPiB1bmF2b2lkYWJsZTsKK+iqk+e0hCA+IGhvbm9yXC1ib3VuZDsKK+itieabuCA+IGNyZWRlbnRpYWxzOwor5rKI5oCdID4gY29udGVtcGxhdGU7Civop6Pph4sgPiBleHBsYW5hdGlvbjsKK+WIhumWiyA+IHRvXC1zZXBhcmF0ZTsKK+ekgeWztiA+IHJlZWZcLWlzbGFuZDsKK+mAmumBjiA+IGJ5XC1tZWFuc1wtb2Y7Civov47poqggPiBpblwtdGhlXC13aW5kOwor5LiK5Lu7ID4gdGFrZVwtb2ZmaWNlOwor5aaC5q2kID4gaW5cLXRoaXNcLXdheTsKK+irlueIrSA+IGNvbnRyb3ZlcnN5Owor5oKg5LmFID4gZXN0YWJsaXNoZWQ7CivkuIrkuIsgPiB1cFwtYW5kXC1kb3duOwor5oGQ5ZqHID4gdG9cLXRocmVhdGVuOwor57Sg6aOfID4gdmVnZXRhYmxlczsKK+e4ruefrSA+IHRvXC1jdXJ0YWlsOwor5pS557WEID4gcmVvcmdhbml6ZTsKK+aTgeittyA+IHRvXC1lbmRvcnNlOwor6YCy6KGMID4gdG9cLWFkdmFuY2U7CivlpZTms6IgPiBydXNoXC1hYm91dDsKK+W+jOavjSA+IHN0ZXBtb3RoZXI7CivmlaPnmbwgPiBkaXN0cmlidXRlOwor5aSx54GrID4gY2F0Y2hcLWZpcmU7CivoqpXnlJ8gPiB0b1wtYmVcLWJvcm47CivlpJrniL4gPiBcKGJvYlwpXC1kb2xlOwor5b285q2kID4gZWFjaFwtb3RoZXI7CivpoJDlhYggPiBiZWZvcmVoYW5kOwor6Zec6ZaAID4gY2xvc2VcLWRvd247CivpgZXog4wgPiB0b1wtdmlvbGF0ZTsKK+e1seioiCA+IHN0YXRpc3RpY3M7Civlh73os7wgPiBtYWlsXC1vcmRlcjsKK+mgkOWCmSA+IHRvXC1wcmVwYXJlOwor5aOB56uLID4gXChvZlwtY2xpZmZzOwor5pil5a2jID4gc3ByaW5ndGltZTsKK+aRmOmMhCA+IHRvXC1leHRyYWN0Owor6aCS5L2IID4gcHJvbXVsZ2F0ZTsKK+avj+asoSA+IGV2ZXJ5XC10aW1lOwor57eo56iLID4gdG9cLXByb2dyYW07CivliIboqZ4gPiBwYXJ0aWNpcGxlOwor5b6M5pyfID4gbGF0ZVwtc3RhZ2U7CivmlYjnlKggPiB1c2VmdWxuZXNzOwor57On6aOfID4gZm9vZHN0dWZmczsKK+iNkumHjiA+IHdpbGRlcm5lc3M7CivmkpLorIogPiB0ZWxsXC1hXC1saWU7Civnh4Pnh5IgPiBjb21idXN0aW9uOwor5byE55u0ID4gc3RyYWlnaHRlbjsKK+mBt+enuyA+IHRvXC1taWdyYXRlOwor5aSn5rCjID4gYXRtb3NwaGVyZTsKK+iqjeeCuiA+IHRvXC1iZWxpZXZlOwor6ZmN6JC9ID4gdG9cLWRlc2NlbmQ7CivliY3ogIUgPiB0aGVcLWZvcm1lcjsKK+aViOeOhyA+IGVmZmljaWVuY3k7Civpnbblv4MgPiBidWxsJydzXC1leWU7Civli4PnhLYgPiBhZ2l0YXRlZGx5Owor56Kf5a2QID4gc21hbGxcLWRpc2g7CivorJvluKsgPiBpbnN0cnVjdG9yOwor5Y+W5LujID4gc3Vic3RpdHV0ZTsKK+aWsOaVmSA+IHByb3Rlc3RhbnQ7CivlpJrmrKEgPiBtYW55XC10aW1lczsKK+Wlh+aVuCA+IG9kZFwtbnVtYmVyOwor5b+F5bCHID4gaW5ldml0YWJseTsKK+mZsOeyviA+IHNleFwtZmx1aWRzOwor5aaW5ayIID4gZW5jaGFudGluZzsKK+eLguS6giA+IGh5c3RlcmljYWw7CivnuYHmpq4gPiBwcm9zcGVyb3VzOwor57m85om/ID4gdG9cLWluaGVyaXQ7Civmk43nuLEgPiB0b1wtb3BlcmF0ZTsKK+WFqOmdoiA+IGFsbFwtYXJvdW5kOwor5Y6Y5Y2HID4gY2VudGlsaXRlcjsKK+iqv+aVtCA+IGFkanVzdG1lbnQ7CivlppPlpbMgPiBwcm9zdGl0dXRlOwor6I2S6KysID4gcmlkaWN1bG91czsKK+eZvemgrSA+IGhvYXJ5XC1oZWFkOwor5rG65LiNID4gbm90XC1hdFwtYWxsOwor6Kqq5piOID4gdG9cLWV4cGxhaW47Civlh7roibIgPiByZW1hcmthYmxlOwor5aWz5am/ID4gc29uXC1pblwtbGF3Owor54m55YilID4gZXNwZWNpYWxseTsKK+WFjemZpCA+IHRvXC1wcmV2ZW50Owor5aal5Y2UID4gY29tcHJvbWlzZTsKK+W3qOi8qiA+IGxhcmdlXC1zaGlwOwor54aE5ruFID4gZXh0aW5ndWlzaDsKK+eFp+eJhyA+IHBob3RvZ3JhcGg7CivpmYTnrYYgPiBwb3N0c2NyaXB0Owor6Kaq6IeqID4gcGVyc29uYWxseTsKK+aUueatoyA+IHRvXC1jb3JyZWN0Owor5Y2K5ZyTID4gc2VtaWNpcmNsZTsKK+mBleeKryA+IHRvXC12aW9sYXRlOwor54it5aWqID4gZmlnaHRcLW92ZXI7Civnn63mnJ8gPiBzaG9ydFwtdGVybTsKK+avj+W5tCA+IGV2ZXJ5XC15ZWFyOwor5pW15omLID4gYW50YWdvbmlzdDsKK+WNsOWDjyA+IGltcHJlc3Npb247Civnsr7pgJogPiBwcm9maWNpZW50Owor5b6I5aSnID4gdHJlbWVuZG91czsKK+eZvemFkiA+IHNwaXJpdFwtdXN1Owor5piO5LquID4gYnJpZ2h0bmVzczsKK+iNieiOkyA+IHN0cmF3YmVycnk7CivloLHnq6AgPiBuZXdzcGFwZXJzOwor5aSa5bm0ID4gbWFueVwteWVhcnM7Civoqp7lvZkgPiB2b2NhYnVsYXJ5Owor5pep5YWIID4gcHJldmlvdXNseTsKK+eJjOWDuSA+IGxpc3RcLXByaWNlOwor5ber6KGTID4gd2l0Y2hjcmFmdDsKK+mBjua4oSA+IHRyYW5zaXRpb247CivmjqLpmqogPiB0b1wtZXhwbG9yZTsKK+Wkp+WtuCA+IHVuaXZlcnNpdHk7CivnhKHnkIYgPiBpcnJhdGlvbmFsOwor5Y2K5YO5ID4gaGFsZlwtcHJpY2U7CivljYDliKUgPiBkaWZmZXJlbmNlOwor5paH5a24ID4gbGl0ZXJhdHVyZTsKK+W+nuWJjSA+IHByZXZpb3VzbHk7Civpl5zoga8gPiBiZVwtcmVsYXRlZDsKK+WcsOmchyA+IGVhcnRocXVha2U7Civop4DnnL4gPiBzcGVjdGF0b3JzOwor5o6S6ZqKID4gdG9cLWxpbmVcLXVwOwor5YiG55m8ID4gZGlzdHJpYnV0ZTsKK+aUquaTviA+IHRvXC1kaXN0dXJiOwor5pW45a24ID4gbWF0aGVtYXRpYzsKK+eGseW/gyA+IGVudGh1c2lhc207Civpm7vlrZAgPiBlbGVjdHJvbmljOwor55m96KmxID4gdmVybmFjdWxhcjsKK+eCuOezlSA+IGZyaWVkXC1jYWtlOwor5aCG56mNID4gYWNjdW11bGF0ZTsKK+aVo+WwhCA+IHNjYXR0ZXJpbmc7Civok4vkuJYgPiB1bnJpdmVsbGVkOwor57eo5o6SID4gdG9cLWFycmFuZ2U7CivmjZXprZogPiBjYXRjaFwtZmlzaDsKK+WHuueUnyA+IHRvXC1iZVwtYm9ybjsKK+WFgeirviA+IHRvXC1wcm9taXNlOwor6Kq/5ZKMID4gaGFybW9uaW91czsKK+W+jOS+hiA+IGFmdGVyd2FyZHM7CivlpKfllpwgPiBleHVsdGF0aW9uOwor5pS/5bqcID4gZ292ZXJubWVudDsKK+ioreaWvSA+IGZhY2lsaXRpZXM7Civmlrnkvr8gPiBjb252ZW5pZW50Owor5o6l6YCaID4gdG9cLWNvbm5lY3Q7CivmraTlvowgPiBhZnRlclwtdGhpczsKK+W6p+aomSA+IGNvb3JkaW5hdGU7CivntpPmrbcgPiBleHBlcmllbmNlOwor5qiC6KeAID4gb3B0aW1pc3RpYzsKK+WkquWPpCA+IGltbWVtb3JpYWw7Civpm6LlqZogPiB0b1wtZGl2b3JjZTsKK+eHiOWhlCA+IGxpZ2h0aG91c2U7Civlh7rniYggPiB0b1wtcHVibGlzaDsKK+iqh+WkpyA+IGV4YWdnZXJhdGU7CivlhbXoiLkgPiBtYW5cLW9mXC13YXI7CivliqDlt54gPiBjYWxpZm9ybmlhOwor5YK36aKoID4gY2F0Y2hcLWNvbGQ7CivmlL7lsIQgPiB0b1wtcmFkaWF0ZTsKK+avlOS+iyA+IHByb3BvcnRpb247CivpgbflvpkgPiB0b1wtbWlncmF0ZTsKK+maqOW+jCA+IHNvb25cLWFmdGVyOwor5YmN5pmvID4gZm9yZWdyb3VuZDsKK+mBt+W7tiA+IGxvbmdcLWRlbGF5Owor6KOc6KqeID4gY29tcGxlbWVudDsKK+WKoOWvhiA+IHRvXC1lbmNyeXB0Owor5pW05ZCIID4gdG9cLWNvbmZvcm07CivpgZXmipcgPiB0b1wtZGlzb2JleTsKK+ebo+edoyA+IHRvXC1jb250cm9sOwor5paH5YW3ID4gc3RhdGlvbmVyeTsKK+avj+S6uiA+IHBlclwtcGVyc29uOwor6Zi75q2iID4gdG9cLXByZXZlbnQ7CivpmLLmsLQgPiB3YXRlcnByb29mOwor6Ziy5q2iID4gdG9cLXByZXZlbnQ7CivpgIDmraUgPiBkZWdlbmVyYXRlOwor6YGp5bqmID4gbW9kZXJhdGVseTsKK+mBoOW+gSA+IGV4cGVkaXRpb247Civnmb3oh4kgPiB3aGl0ZVwtZmFjZTsKK+e4veWFsSA+IGFsdG9nZXRoZXI7Civop6PmnpAgPiB0b1wtYW5hbHl6ZTsKK+ippuWcliA+IHRvXC1hdHRlbXB0Owor6Imm6LyJID4gc2hpcFwtYmFzZWQ7Civnn6XlkI0gPiB3ZWxsXC1rbm93bjsKK+WkmuS6iyA+IG1lZGRsZXNvbWU7CivlhrDnkIMgPiBpY2VcLWhvY2tleTsKK+ino+aUviA+IGxpYmVyYXRpb247Civlgb3poIIgPiBmYWxzZVwtcm9vZjsKK+mrmOmajiA+IGhpZ2hcLWxldmVsOwor5o2P6YCgID4gdG9cLW1ha2VcLXVwOwor5YiG5p6QID4gdG9cLWFuYWx5emU7Civmk4HmirEgPiB0b1wtZW1icmFjZTsKK+mbtuS4iyA+IGJlbG93XC16ZXJvOwor5beu55WwID4gZGlmZmVyZW5jZTsKK+aUvuWHuiA+IHRvXC1sZXRcLW9mZjsKK+WFrOefsyA+IGhlY3RvbGl0ZXI7CivmlLvlhYsgPiB0b1wtY2FwdHVyZTsKK+WgseaVuCA+IG51bWJlclwtb2ZmOwor5pS25YWlID4gdG9cLXRha2VcLWluOwor6Kme5YW4ID4gZGljdGlvbmFyeTsKK+ioreWcqCA+IGxvY2F0ZWRcLWF0Owor6ZmQ5bqmID4gbGltaXRhdGlvbjsKK+ijseeziiA+IHdhbGxcLXBhcGVyOwor5qqi5p+lID4gaW5zcGVjdGlvbjsKK+eAhuiBtyA+IHdyb25nZG9pbmc7Civluoflu5UgPiBcKG9mXC1hXC10cmVlOwor6Zmw5aSpID4gY2xvdWR5XC1kYXk7CivntYLmlrwgPiBldmVudHVhbGx5Owor6KiC5amaID4gZW5nYWdlbWVudDsKK+mZuOWfuiA+IGxhbmRcLWJhc2VkOwor5bua5Y+4ID4gY29va1wsXC1jaGVmOwor5YKz6KqqID4gaXRcLWlzXC1zYWlkOwor6auY6YCfID4gaGlnaFwtc3BlZWQ7CivliLblrpogPiB0b1wtZHJhd1wtdXA7CivpgJ/lsIQgPiByYXBpZFwtZmlyZTsKK+mBuuWCsyA+IGhlcmVkaXRhcnk7CivoiInovqYgPiB0b1wtY29uZHVjdDsKK+WIqeWusyA+IGZvcm1pZGFibGU7CivmlKrkuoIgPiB0b1wtY29uZnVzZTsKK+WFpeeNhCA+IGdvXC10b1wtamFpbDsKK+exs+eyiSA+IHJpY2VcLWZsb3VyOwor57O+5q2jID4gdG9cLWNvcnJlY3Q7CivopqrmiYsgPiBwZXJzb25hbGx5Owor6L6y5p2RID4gcnVyYWxcLWFyZWE7Civlia/liIogPiBzdXBwbGVtZW50Owor5pON5aC0ID4gcGxheWdyb3VuZDsKK+WfuuaWvCA+IGJlY2F1c2VcLW9mOwor6KGN6K6KID4gdG9cLWRldmVsb3A7CivlhajnhLYgPiBjb21wbGV0ZWx5Owor5ZyY6IGaID4gdG9cLXJldW5pdGU7Civnmb3ni5AgPiBhcmN0aWNcLWZveDsKK+aTgeWhniA+IGNvbmdlc3Rpb247CivoqI7ljq0gPiBkaXNndXN0aW5nOwor6YGV5YKyID4gdG9cLWRpc29iZXk7Civnmb3nhr4gPiB3aGl0ZVwtaGVhdDsKK+eZveeGsSA+IHdoaXRlXC1oZWF0Owor55m954aKID4gcG9sYXJcLWJlYXI7Civnmb3nhaQgPiBhbnRocmFjaXRlOwor5YCa6Z2gID4gdG9cLWxlYW5cLW9uOwor5bm85aWzID4geW91bmdcLWdpcmw7Civop4Dlr58gPiB0b1wtb2JzZXJ2ZTsKK+WFteazlSA+IGFydFwtb2ZcLXdhcjsKK+eVtumBuCA+IGJlXC1lbGVjdGVkOwor5pGY5oqEID4gdG9cLWV4dHJhY3Q7Civnm6PmjqcgPiB0b1wtbW9uaXRvcjsKK+WgpOWyuCA+IGVtYmFua21lbnQ7CivntZDlsYAgPiBjb25jbHVzaW9uOwor5qyg5L2zID4gc3Vib3B0aW1hbDsKK+mAseWIsCA+IHRob3VnaHRmdWw7Civopo/lvosgPiBkaXNjaXBsaW5lOwor566h6L2EID4gYWRtaW5pc3RlcjsKK+W4uOW4uCA+IGZyZXF1ZW50bHk7CivmqLnmqIEgPiB0cmVlXC1zdHVtcDsKK+ilr+aJmCA+IHRvXC1zZXRcLW9mZjsKK+aTjeWFuCA+IGRyaWxsXC1ib29rOwor6LeR6aasID4gaG9yc2VcLXJhY2U7CivmqqLlr58gPiB0b1wtaW5zcGVjdDsKK+W3qOaYnyA+IGdpYW50XC1zdGFyOwor6ZmE5YqgID4gYWRkaXRpb25hbDsKK+aTjeS9nCA+IHRvXC1vcGVyYXRlOwor55u45bCNID4gcmVsYXRpdmVseTsKK+eEoeWDuSA+IGludmFsdWFibGU7CivlsY/pmaQgPiBnZXRcLXJpZFwtb2Y7CivmkI/mlpcgPiB0b1wtd3Jlc3RsZTsKK+aLnOiolyA+IHJlcXVlc3RcLXNiOwor5o6S55CDID4gdm9sbGV5YmFsbDsKK+e0gOW+iyA+IGRpc2NpcGxpbmU7CivlupfkuLsgPiBzaG9wXC1vd25lcjsKK+eTtumguCA+IGJvdHRsZW5lY2s7CivluavliqkgPiBhc3Npc3RhbmNlOwor5bmr5Ye2ID4gYWNjb21wbGljZTsKK+WIhuWIpSA+IGRpZmZlcmVuY2U7Civlhazmkq4gPiBtaWxsaWxpdGVyOwor57WQ5ZCIID4gdG9cLWNvbWJpbmU7CivnsYPnkIMgPiBiYXNrZXRiYWxsOwor5oqx6LKgID4gYXNwaXJhdGlvbjsKK+eul+ihkyA+IGFyaXRobWV0aWM7CivmjqjmuKwgPiBjb25qZWN0dXJlOwor6KaB5aGeID4gc3Ryb25naG9sZDsKK+eZveaXlyA+IHdoaXRlXC1mbGFnOwor5ryU6K6KID4gdG9cLWRldmVsb3A7Civmu7/otrMgPiB0b1wtc2F0aXNmeTsKK+mphemAkCA+IGJhbmlzaG1lbnQ7CivooajnpLogPiB0b1wtZXhwcmVzczsKK+i+suWckiA+IHBsYW50YXRpb247Civpq5jntJogPiBoaWdoXC1sZXZlbDsKK+aKleizhyA+IGludmVzdG1lbnQ7CivnnIvliLAgPiBzZWVcLVwodGhhdFwpOwor5o+Q5piHID4gdG9cLXByb21vdGU7CivlhYzmj5sgPiB0b1wtY29udmVydDsKK+WFrOW8lSA+IGhlY3RvbWV0ZXI7Civpp5Xppq0gPiB0b1wtY29udHJvbDsKK+WwiOmWgCA+IHNwZWNpYWxpc3Q7CivnnIvkvoYgPiBhcHBhcmVudGx5Owor6IeJ6ImyID4gY29tcGxleGlvbjsKK+iNieWPoiA+IHVuZGVyYnJ1c2g7CivlhbzlrrkgPiBjb21wYXRpYmxlOwor6LuN5rivID4gbmF2YWxcLXBvcnQ7CivmjInnq4sgPiBvcmRpbmF0aW9uOwor55Sf6KiIID4gbGl2ZWxpaG9vZDsKK+aOjOargyA+IHNob3BrZWVwZXI7Civooajnj74gPiBleHByZXNzaW9uOwor5YWp5bK4ID4gYmlsYXRlcmlhbDsKK+WFseWtmCA+IHRvXC1jb2V4aXN0Owor5Zua54qvID4gYVwtcHJpc29uZXI7CivlgYnnuL4gPiBncmVhdFwtYWN0czsKK+ebuOS6kiA+IGVhY2hcLW90aGVyOwor6KGN55SfID4gZGVydmlhdGl2ZTsKK+WGsOWIgCA+IGljZVwtc2thdGVzOwor5o6l5pS2ID4gdG9cLXJlY2VpdmU7CivnlKjomZUgPiB1c2VmdWxuZXNzOwor5oqA6KGTID4gdGVjaG5vbG9neTsKK+iKseaJmCA+IHJlY2VwdGFjbGU7Civlrr/poYwgPiBhc3NpZ25tZW50Owor6a2a5o6SID4gZmlzaFwtc3RlYWs7CivmjIfnlLIgPiBmaW5nZXJuYWlsOwor5a246b2hID4gc2Nob29sXC1hZ2U7Civmjajmo4QgPiB0b1wtZ2l2ZVwtdXA7Civlt67liKUgPiBkaWZmZXJlbmNlOwor5L2/6YaJID4gaW50b3hpY2F0ZTsKK+aLmOemgSA+IGNvbnN0cmFpbnQ7CivlnIvmnIMgPiBwYXJsaWFtZW50Owor6LaF6LaKID4gdG9cLXN1cnBhc3M7Civmjqjlu6MgPiBwb3B1bGFyaXplOwor5L2j6YeRID4gY29tbWlzc2lvbjsKK+eZveWWiSA+IGRpcGh0aGVyaWE7CivmjojmhI8gPiB0b1wtaW5zcGlyZTsKK+WFrOWIhiA+IGNlbnRpbWV0ZXI7CivnrYbogIUgPiB0aGVcLWF1dGhvcjsKK+S/neiCsiA+IGNoaWxkXC1jYXJlOwor55m95Y2AID4gd2hpdGVcLWFyZWE7Civmj7nlgrUgPiBiZVwtaW5cLWRlYnQ7CivmvKvnlasgPiBjYXJpY2F0dXJlOwor5YGc54GrID4gY2Vhc2VcLWZpcmU7Civoia/lv4MgPiBjb25zY2llbmNlOwor5Zau6Kq/ID4gbW9ub3Rvbm91czsKK+ihqOaYjiA+IG1ha2VcLWtub3duOwor5oqV56i/ID4gY29udHJpYnV0ZTsKK+aooeS7vyA+IHRvXC1pbWl0YXRlOwor55m85L2IID4gdG9cLXJlbGVhc2U7Civmop3ntIQgPiB0cmVhdHlwYWN0Owor5bCO6IiqID4gbmF2aWdhdGlvbjsKK+aOkuWkliA+IHhlbm9waG9iaWM7CivlsI7oh7QgPiB0b1wtbGVhZFwtdG87CivlsZXnpLogPiB0b1wtb3BlblwtdXA7CivlsIvoiIsgPiB0b1wtcHJvdm9rZTsKK+WFiOS+iyA+IGFudGVjZWRlbnQ7Civmu4XntZUgPiBleHRpbmd1aXNoOwor6LOT6aSoID4gZ3Vlc3Rob3VzZTsKK+aok+S4iyA+IGRvd25zdGFpcnM7Civmj5DlgKEgPiB0b1wtcHJvbW90ZTsKK+aJk+e1kCA+IHRpZVwtYVwta25vdDsKK+iHhua4rCA+IGFzc3VtcHRpb247CivoiIjml7ogPiBwcm9zcGVyb3VzOwor5bK45qiZID4gbGlnaHRob3VzZTsKK+aLlOaysyA+IHR1Z1wtb2ZcLXdhcjsKK+eUn+eUoiA+IHRvXC1wcm9kdWNlOwor6KOc5YSfID4gY29tcGVuc2F0ZTsKK+S6uumrlCA+IGh1bWFuXC1ib2R5Owor5o6o5Ye6ID4gdG9cLXJlbGVhc2U7Civog57ooaMgPiBhZnRlcmJpcnRoOwor5oyW5o6YID4gZXhjYXZhdGlvbjsKK+Wbm+W5tCA+IGZvdXJcLXllYXJzOwor6aSQ6aSoID4gcmVzdGF1cmFudDsKK+aMh+aPriA+IHRvXC1jb25kdWN0Owor6IGW6Z2IID4gaG9seVwtZ2hvc3Q7CivmjIfmjqcgPiBhY2N1c2F0aW9uOwor5omL56i/ID4gbWFudXNjcmlwdDsKK+aKueayuSA+IHRvXC1hbm5vaW50Owor6KGo5bC6ID4gcmVhclwtc2lnaHQ7CivnlaLmpa0gPiBncmFkdWF0aW9uOwor5Zu65Z+3ID4gcGVyc2lzdGVudDsKK+afpeipoiA+IHRvXC1pbnF1aXJlOwor6aOv6aSoID4gcmVzdGF1cmFudDsKK+eWkeaFriA+IGhlc2l0YXRpb247CivllonoiIwgPiBtb3V0aHBpZWNlOwor5L6/55W2ID4gY29udmVuaWVudDsKK+iBr+mAmiA+IGNvbm5lY3Rpb247Civpp5DntK4gPiB0b1wtc3RhdGlvbjsKK+ewveWHuiA+IHRvXC1sb2dcLW9mZjsKK+mrmOWxpCA+IGhpZ2hcLWxldmVsOwor6aSF6ZC6ID4gYmFraW5nXC1wYW47CivlsaLmrKEgPiByZXBlYXRlZGx5Owor6Y6X566hID4gZ3VuXC1iYXJyZWw7CivpkLXmnb8gPiBpcm9uXC1wYW5lbDsKK+mPiOeSsCA+IGNoYWluXC1saW5rOwor5o2J5Y+WID4gdG9cLWNhcHR1cmU7Civnq63nm6EgPiBleGhhdXN0aW9uOwor6LuN5Lq6ID4gc2VydmljZW1hbjsKK+aEj+mhmCA+IGFzcGlyYXRpb247CivogIHpoK0gPiBvbGRcLWZlbGxvdzsKK+ePvuixoSA+IGFwcGVhcmFuY2U7Civpjq7nl5sgPiBhbmFsZ2VzaWFjOwor6Ieq5bCKID4gc2VsZlwtcHJpZGU7CivlrprnvqkgPiBkZWZpbml0aW9uOwor56u254itID4gdG9cLWNvbXBldGU7Civlr6bnj74gPiB0b1wtYWNoaWV2ZTsKK+WCt+S6oSA+IGNhc3VhbHRpZXM7CivmiKrnhLYgPiBjb21wbGV0ZWx5Owor5qWt5L2ZID4gc3BhcmVcLXRpbWU7CivooYzliJcgPiBwcm9jZXNzaW9uOwor55eF5YGHID4gc2lja1wtbGVhdmU7CivmnJ/pmZAgPiB0aW1lXC1saW1pdDsKK+aKiuaIsiA+IGFjcm9iYXRpY3M7CivmtojosrsgPiB0b1wtY29uc3VtZTsKK+ihjOS6uiA+IHBlZGVzdHJpYW47Civmm7jpnaIgPiBpblwtd3JpdGluZzsKK+ett+WtkCA+IGNob3BzdGlja3M7Civnr4DliLYgPiB0ZW1wZXJhbmNlOwor6IWQ5pWXID4gY29ycnVwdGlvbjsKK+eNuOmGqyA+IHZldGVyaW5hcnk7CivlgZrlh7ogPiB0b1wtcHV0XC1vdXQ7CivkvZzngrogPiBhY2NvbXBsaXNoOwor5oqY5bCEID4gcmVmcmFjdGlvbjsKK+WWieeCjiA+IGxhcnluZ2l0aXM7Civkuobop6MgPiB1bmRlcnN0YW5kOwor5L+h5b+DID4gY29uZmlkZW5jZTsKK+iBr+e5qyA+IGNvbm5lY3Rpb247Civnj43ol48gPiBjb2xsZWN0aW9uOwor6Ieq5L+hID4gY29uZmlkZW5jZTsKK+iBluiBtyA+IHByaWVzdGhvb2Q7CivpjLbnm6QgPiBkaWFsXC1wbGF0ZTsKK+ahg+aouSA+IHBlYWNoXC10cmVlOwor5Zau5qihID4gc2luZ2xlbW9kZTsKK+aDs+ixoSA+IHRvXC1pbWFnaW5lOwor5LiL6ZmNID4gdG9cLWRlY2xpbmU7Civlr6nmn6UgPiB0b1wtZXhhbWluZTsKK+WxpOWjkyA+IGxhbWluYXRpb247CivlkajpgJ8gPiBjeWNsZVwtdGltZTsKK+aatOmiqCA+IHN0b3JtXC13aW5kOwor5bGs5ZywID4gZGVwZW5kZW5jeTsKK+a8suWDuSA+IGFwcHJlY2lhdGU7CivogZbntpMgPiBob2x5XC1iaWJsZTsKK+S7v+ecnyA+IHRvXC1lbXVsYXRlOwor5ZKM6KunID4gaGFybW9uaW91czsKK+S7i+e0uSA+IHRvXC1wcmVzZW50Owor6aC76aC7ID4gcmVwZWF0ZWRseTsKK+e8uum7niA+IHdlYWtcLXBvaW50Owor5pys6KGMID4gb25lJydzXC1saW5lOwor5ruy5Z2RID4gc2V3YWdlXC1waXQ7Civnq7bmioAgPiB0b3VybmFtZW50Owor5oq15Yi2ID4gcmVzaXN0YW5jZTsKK+mQteWMoCA+IGJsYWNrc21pdGg7Civku7vnlKggPiB0b1wtYXBwb2ludDsKK+WWruaVuCA+IG9kZFwtbnVtYmVyOwor5p2/57SZID4gcGFwZXJib2FyZDsKK+WRiOmBniA+IHRvXC1wcmVzZW50Owor5rOi6ZW3ID4gd2F2ZWxlbmd0aDsKK+WwiOW/gyA+IGFic29ycHRpb247CivlgIvliKUgPiBpbmRpdmlkdWFsOwor5pyD6KiIID4gYWNjb3VudGFudDsKK+a1geihgCA+IHNoZWRcLWJsb29kOwor6IKJ54mHID4gbWVhdFwtc2xpY2U7CivmuqvlrqQgPiBncmVlbmhvdXNlOwor5YCa5LuXID4gdG9cLWxlYW5cLW9uOwor5oqR5Yi2ID4gdG9cLWluaGliaXQ7CivkvZzmlpkgPiBjb25kaW1lbnRzOwor5L6/5aO6ID4gYmVkXC11cmluYWw7CivotqjlpYkgPiB0b1wtZmF3blwtb247Civkvb/mgJIgPiBleGFzcGVyYXRlOwor5L6d5bGsID4gZGVwZW5kZW5jZTsKK+mgkOmYsiA+IHRvXC1wcmV2ZW50Owor5YCL5Lq6ID4gaW5kaXZpZHVhbDsKK+etieWIsCA+IHdhaXRcLXVudGlsOwor5bCP5aeQID4geW91bmdcLWxhZHk7CivmoYzluIMgPiB0YWJsZWNsb3RoOwor6IOM5pmvID4gYmFja2dyb3VuZDsKK+S4jeiuiiA+IHVuY2hhbmdpbmc7CivkuIDosqsgPiBjb25zaXN0ZW50Owor5om55YeGID4gdG9cLWFwcHJvdmU7Civnp5Hns7sgPiBkZXBhcnRtZW50Owor5oSB57eSID4gbWVsYW5jaG9seTsKK+elnuipsSA+IGZhaXJ5XC10YWxlOwor5L2P5omAID4gaGFiaXRhdGlvbjsKK+mhm+imhiA+IHN1YnZlcnNpb247CivmoYjlrZAgPiBsb25nXC10YWJsZTsKK+S6kuebuCA+IGVhY2hcLW90aGVyOwor5L6/5YipID4gY29udmVuaWVudDsKK+ays+mCiiA+IHJpdmVyXC1iYW5rOwor5LiN6JmeID4gdW5leHBlY3RlZDsKK+WwpOWFtiA+IGVzcGVjaWFsbHk7Civmt5jmsbAgPiB0b1wtZGllXC1vdXQ7CivogqXmlpkgPiBmZXJ0aWxpemVyOwor5a6J5o6SID4gdG9cLWFycmFuZ2U7CivorbDpmaIgPiBwYXJsaWFtZW50Owor54uh6L6vID4gdG9cLXF1aWJibGU7CivnrKzkuowgPiBudW1iZXJcLXR3bzsKK+agvOWkliA+IGVzcGVjaWFsbHk7CivmmrTooYwgPiBzYXZhZ2VcLWFjdDsKK+WvpuWcqCA+IGluXC1yZWFsaXR5Owor6LaF5Y2HID4gZXhhbHRhdGlvbjsKK+WPm+i7jSA+IHJlYmVsXC1hcm15Owor542456m0ID4gYW5pbWFsXC1kZW47CivlrZ3mlawgPiB0b1wtcmVzcGVjdDsKK+itpumQmCA+IGFsYXJtXC1iZWxsOwor6IOW5a2QID4gZmF0XC1wZXJzb247CivlrZjmlL4gPiB0b1wtZGVwb3NpdDsKK+mkk+atuyA+IHN0YXJ2YXRpb247CivkvbXlkJ4gPiBzd2FsbG93XC11cDsKK+WtuOW+kiA+IGFwcHJlbnRpY2U7CivmhJ/mv4AgPiBhcHByZWNpYXRlOwor5p2/5qiBID4gc2hlZXRcLXBpbGU7CivmiJDliIYgPiBpbmdyZWRpZW50Owor5a655ZmoID4gcmVjZXB0YWNsZTsKK+mHjeimliA+IGltcG9ydGFuY2U7CivmgpTnvaogPiBjb252aWN0aW9uOwor6IO95YqbID4gY2FwYWJpbGl0eTsKK+W/hemgiCA+IHRvXC1oYXZlXC10bzsKK+iCr+WumiA+IHRvXC1iZVwtc3VyZTsKK+S7u+aApyA+IGNhcHJpY2lvdXM7CivnjovniYwgPiB0cnVtcFwtY2FyZDsKK+WNl+mdoiA+IHNvdXRoXC1zaWRlOwor6JaE6I23ID4gZmllbGRcLW1pbnQ7CivppqzlipsgPiBob3JzZXBvd2VyOwor5pyI55CDID4gXCh0aGVcKVwtbW9vbjsKK+Wpmue0hCA+IGVuZ2FnZW1lbnQ7Civnj77miJAgPiByZWFkeVwtbWFkZTsKK+mgu+e5gSA+IGZyZXF1ZW50bHk7CivorbDoq5YgPiB0b1wtY29tbWVudDsKK+S6pOabvyA+IHRvXC1yZXBsYWNlOwor56We56eYID4gbXlzdGVyaW91czsKK+miqOa/lSA+IHJoZXVtYXRpc207CivnvqTnnL4gPiB0aGVcLW1hc3NlczsKK+elnuellSA+IG15c3RlcmlvdXM7Civlr4TkuoggPiB0b1wtZXhwcmVzczsKK+S7geaFiCA+IGJlbmV2b2xlbnQ7Civku4rlvowgPiBoZW5jZWZvcnRoOwor6Jmb5pOsID4gZmljdGl0aW91czsKK+mhr+ePviA+IGFwcGVhcmFuY2U7CivlpJrpu6ggPiBtdWx0aXBhcnR5Owor5LiN55W2ID4gdW5zdWl0YWJsZTsKK+ayiOiQvSA+IHNpbmtcLFwtZmFsbDsKK+ism+i/sCA+IHRhbGtcLWFib3V0Owor5a6j5L2IID4gdG9cLWRlY2xhcmU7CivpvJPmjowgPiB0b1wtYXBwbGF1ZDsKK+S7peWkliA+IGFwYXJ0XC1mcm9tOwor54iG6Z+zID4gc29uaWNcLWJvb207CivkvLzkuY4gPiBhcHBhcmVudGx5Owor5aSn6auUID4gaW5cLWdlbmVyYWw7CivnqbrlhZIgPiBzcGFyZVwtdGltZTsKK+mjn+aMhyA+IGZvcmVmaW5nZXI7CivnibTop7ggPiBjb250cmFkaWN0Owor56iL5bqPID4gcHJvY2VkdXJlczsKK+W8sem7niA+IHdlYWtcLXBvaW50Owor5piO6KiAID4gcHJvbm91bmNlZDsKK+acrOaciCA+IHRoaXNcLW1vbnRoOwor5ZOy5a24ID4gcGhpbG9zb3BoeTsKK+S4ueavkiA+IGVyeXNpcGVsYXM7CivmsKPosaEgPiBtZXRlb3JvbGd5Owor5LqS5oOgID4gcmVjaXByb2NhbDsKK+e4vemrlCA+IGNvbXBsZXRlbHk7CivolKzoj5wgPiB2ZWdldGFibGVzOwor6aOv5bqXID4gcmVzdGF1cmFudDsKK+WQq+eHkCA+IHBob3NwaG9yaWM7Civmm7TmraMgPiBjb3JyZWN0aW9uOwor6buR5p2/ID4gYmxhY2tib2FyZDsKK+W9membhiA+IHRvXC1jb2xsZWN0Owor6Kyb6KejID4gdG9cLWV4cGxhaW47CivpoJDnn6UgPiBhbnRpY2lwYXRlOwor6YOo6ZaAID4gZGVwYXJ0bWVudDsKK+S7peWPiiA+IGFzXC13ZWxsXC1hczsKK+iBr+WQiCA+IHRvXC1jb21iaW5lOwor5Li75qC8ID4gbm9taW5hdGl2ZTsKK+mMhOWPliA+IHRvXC1yZWNydWl0Owor5paw6YOOID4gYnJpZGVncm9vbTsKK+iAjOW+jCA+IGFmdGVyXC10aGF0Owor5a2X5YW4ID4gZGljdGlvbmFyeTsKK+aCsuatjCA+IHNhZFwtbWVsb2R5Owor572q54uAID4gYWNjdXNhdGlvbjsKK+avlOmHjSA+IHByb3BvcnRpb247Civos6DlhJ8gPiBjb21wZW5zYXRlOwor5rWB5pS+ID4gYmFuaXNobWVudDsKK+S6uuWdhyA+IHBlclwtY2FwaXRhOwor5Y+v55aRID4gc3VzcGljaW91czsKK+iBnuWQjSA+IHdlbGxcLWtub3duOwor6ICM5beyID4gdGhhdCcnc1wtYWxsOwor5rW05be+ID4gYmF0aFwtdG93ZWw7CivlkIrnh4ggPiBjaGFuZGVsaWVyOwor6IGy5YO5ID4gcmVwdXRhdGlvbjsKK+iWhOeJhyA+IHRoaW5cLXNsaWNlOwor5pu05pawID4gdXBcLXRvXC1kYXRlOwor6aGr5qCXID4gdG9cLXRyZW1ibGU7CivmnKzlupUgPiBiYWNrZ3JvdW5kOwor6ZuG6auUID4gY29sbGVjdGl2ZTsKK+aVl+mcsiA+IFwob2ZcLWFcLXBsb3Q7CivoqabpqZcgPiBleHBlcmltZW50Owor5Lq65Y+jID4gcG9wdWxhdGlvbjsKK+WOmOexsyA+IGNlbnRpbWV0ZXI7CivmrbjpoIYgPiBzdWJtaXNzaW9uOwor5aSx6LmkID4gYmVcLW1pc3Npbmc7Civpo73lkowgPiBzYXR1cmF0aW9uOwor5q2h6aiwID4ganViaWxhdGlvbjsKK+W+jOijlCA+IGRlc2NlbmRhbnQ7CivmsKPoibIgPiBjb21wbGV4aW9uOwor6YeR54mMID4gZ29sZFwtbWVkYWw7CivkuI3mnIMgPiBpbXByb2JhYmxlOwor5LiK5pyIID4gbGFzdFwtbW9udGg7CivlkLXmnrYgPiB0b1wtcXVhcnJlbDsKK+aEj+WkliA+IHVuZXhwZWN0ZWQ7CivnoqfntqAgPiBkYXJrXC1ncmVlbjsKK+S4jeaZgiA+IGZyZXF1ZW50bHk7CivogIHlpZcgPiBvbGRcLXRoaW5nczsKK+S4puaKiiA+IHRvXC1pbmNsdWRlOwor6KuH6KuWID4gdG9cLWRpc2N1c3M7Civlj4rniakgPiB0cmFuc2l0aXZlOwor6Zu76LuKID4gdHJvbGxleWJ1czsKK+asuumomSA+IHRvXC1kZWNlaXZlOwor6aGn5oWuID4gbWlzZ2l2aW5nczsKK+WPr+avlCA+IGNvbXBhcmFibGU7CivkuovlhYggPiBpblwtYWR2YW5jZTsKK+itpueKrCA+IHBvbGljZVwtZG9nOwor5Ymb6auUID4gcmlnaWRcLWJvZHk7Civmma/msKMgPiBwcm9zcGVyaXR5Owor5Y2c562uID4gZGl2aW5hdGlvbjsKK+S4jeW/qyA+IGJlXC11bmhhcHB5Owor5piM55ubID4gcHJvc3Blcm91czsKK+aUuemBjiA+IHRvXC1jb3JyZWN0Owor5pS56YCyID4gdG9cLWltcHJvdmU7CivkuI3lubggPiBtaXNmb3J0dW5lOwor6Zu76KaWID4gdGVsZXZpc2lvbjsKK+W+jOiAhSA+IHRoZVwtbGF0dGVyOwor57qP57meID4gaW50ZXJ0d2luZTsKK+WKoOmAnyA+IGFjY2VsZXJhdGU7Civoq7Pnt7QgPiBjb252ZXJzYW50Owor5LiA5bqmID4gZm9yXC1hXC10aW1lOwor5q2h6L+OID4gdG9cLXdlbGNvbWU7CivljJbogqUgPiBmZXJ0aWxpemVyOwor5aKo6Y+hID4gc3VuZ2xhc3NlczsKK+WJnemboiA+IFwob2ZcLXRpc3N1ZTsKK+S4jeWxiCA+IHVueWllbGRpbmc7CivlvYjol6UgPiBhbW11bml0aW9uOwor6aCQ5paZID4gYW50aWNpcGF0ZTsKK+mgguabvyA+IHRvXC1yZXBsYWNlOwor5LiN5a6aID4gaW5kZWZpbml0ZTsKK+S4jeWuiSA+IGludHJhbnF1aWw7CivogIHkurogPiBvbGRcLXBlb3BsZTsKK+acn+WIiiA+IHBlcmlvZGljYWw7Civnn6XoprogPiBwZXJjZXB0aW9uOwor5ZCM5oOFID4gY29tcGFzc2lvbjsKK+mBqemFjSA+IGFkYXB0YXRpb247CivlkIjmhI8gPiBhY2NlcHRhYmxlOwor5aSn6IejID4gY2hhbmNlbGxvcjsKK+WQjOaApyA+IGhvbW9zZXh1YWw7Civml6Xnm4ogPiBkYXlcLWJ5XC1kYXk7CivlpKfohr0gPiBjb3VyYWdlb3VzOwor5pys5Lu9ID4gb25lJydzXC1kdXR5Owor5LiN5aalID4gbm90XC1wcm9wZXI7CivmnIPlj4sgPiBtZW1iZXJzaGlwOwor57mz57SNID4gY29udHJpYnV0ZTsKK+S4jeWkoCA+IG5vdFwtZW5vdWdoOwor56eB5LiLID4gaW5cLXByaXZhdGU7Civms6Lls7AgPiB3YXZlXC1jcmVzdDsKK+S4ieWkqSA+IHRocmVlXC1kYXlzOwor8KCAjSA+IGdlbmVyYXRpb247CivpnaLnm64gPiBhcHBlYXJhbmNlOwor5Y+N5pelID4gYW50aVwtamFwYW47Civlu7rorbAgPiB0b1wtcHJvcG9zZTsKK+azouWwjiA+IHdhdmVcLWd1aWRlOwor5ami5aWzID4gc2xhdmVcLWdpcmw7CivmspLmlLYgPiBjb25maXNjYXRlOwor5b+r5rS7ID4gZ2F5XCxcLWhhcHB5Owor5Y+v5oKyID4gbGFtZW50YWJsZTsKK+ipleiouyA+IGNvbW1lbnRhcnk7CivlqYrlrZAgPiBwcm9zdGl0dXRlOwor5b+F54S2ID4gaW5ldml0YWJsZTsKK+WNiueQgyA+IGhlbWlzcGhlcmU7Civpn7/mh4kgPiByZXNwb25kXC10bzsKK+W9mee3qCA+IGNvbGxlY3Rpb247CivorbDmnIMgPiBwYXJsaWFtZW50Owor5aSn57axID4gbWFpblwtcG9pbnQ7Civmkp7pqJkgPiB0b1wtc3dpbmRsZTsKK+eDpOm0qCA+IHJvYXN0XC1kdWNrOwor5q2M6KmeID4gc29uZ1wtbHlyaWM7CivkuKblhaUgPiBtZXJnZVwtaW50bzsKK+iomOi8iSA+IHdyaXRlXC1kb3duOwor5byx6ISIID4gd2Vha1wtcHVsc2U7Civpoavli5UgPiB0b1wtdHJlbWJsZTsKK+WOn+acrCA+IG9yaWdpbmFsbHk7CivlkLjlkK4gPiB0b1wtc3Vja1wtaW47CivniIbnoLQgPiB0b1wtYmxvd1wtdXA7CivpgZPos4AgPiBjb21wbGltZW50Owor5Y+W5b6XID4gdG9cLWFjcXVpcmU7CivkuIrljYogPiBmaXJzdFwtaGFsZjsKK+aVmeiCsiA+IHRvXC1lZHVjYXRlOwor5LiN5YuVID4gbW90aW9ubGVzczsKK+WQnuWZrCA+IHRvXC1zd2FsbG93Owor6KaB6bueID4gbWFpblwtcG9pbnQ7Civlj43lvqkgPiByZXBlYXRlZGx5Owor6KW/6bueID4gd2VzdFwtcG9pbnQ7CivkuKbkuI0gPiBub3RcLWF0XC1hbGw7CivmlpfnnLwgPiBjcm9zc1wtZXllZDsKK+awo+awmyA+IGF0bW9zcGhlcmU7CivnnLzpj6EgPiBzcGVjdGFjbGVzOwor5LiN5YKZID4gdW5wcmVwYXJlZDsKK+aqoumplyA+IHRvXC1pbnNwZWN0Owor5LiA5YaNID4gcmVwZWF0ZWRseTsKK+aBq+WahyA+IGludGltaWRhdGU7CivkuIDlhbEgPiBhbHRvZ2V0aGVyOwor5aWJ5427ID4gY29uc2VjcmF0ZTsKK+S4jeS+nSA+IG5vdFwtY29tcGx5Owor5LiN5L2PID4gcmVwZWF0ZWRseTsKK+WPquWlvSA+IHRvXC1oYXZlXC10bzsKK+iojuirliA+IHRvXC1kaXNjdXNzOwor5paH55uyID4gaWxsaXRlcmF0ZTsKK+aYjuaZuiA+IG5vdFwtdW53aXNlOwor5Y+m5aSWID4gYWRkaXRpb25hbDsKK+aSnumHnSA+IGZpcmluZ1wtcGluOwor5Y2X5qW1ID4gc291dGhcLXBvbGU7CivkuIDku6MgPiBnZW5lcmF0aW9uOwor5pS257iuID4gcHVsbFwtYmFjazsKK+WkmueWkSA+IHNrZXB0aWNhbDsKK+WQiOWKmyA+IGNvb3BlcmF0ZTsKK+eIhueCuCA+IGV4cGxvc2lvbjsKK+WJsuiNiSA+IG1vd1wtZ3Jhc3M7CivororlpY8gPiB2YXJpYXRpb247CivpoJjlj5cgPiB0b1wtYWNjZXB0Owor5YuV55uqID4gY29tbW90aW9uOwor5Y+v5ZOAID4gbWlzZXJhYmx5Owor6I+g6Ji/ID4gcGluZWFwcGxlOwor5Y6a5bqmID4gdGhpY2tuZXNzOwor6YCf6KiYID4gc2hvcnRoYW5kOwor5b6Q5q2lID4gdG9cLXN0cm9sbDsKK+ilv+mdoiA+IHdlc3RcLXNpZGU7CivmkZjpmaQgPiB0b1wtZXhjaXNlOwor6K2m5a6YID4gY29uc3RhYmxlOwor5ZCM5Ly0ID4gY29tcGFuaW9uOwor5ZCN5Lq6ID4gcGVyc29uYWdlOwor6JST5bu2ID4gdG9cLWV4dGVuZDsKK+WQjOS6iyA+IGNvbGxlYWd1ZTsKK+WNiuaXlyA+IGhhbGZcLW1hc3Q7Civph5HljKAgPiBnb2xkc21pdGg7CivlkIzkuIAgPiBpZGVudGljYWw7CivnorDlt6cgPiBieVwtY2hhbmNlOwor5pmu5Y+KID4gd2lkZXNwZWFkOwor6Kit572uID4gdG9cLXNldFwtdXA7Civnh5Lnh6wgPiBidXJuXC1kb3duOwor5piO5bm0ID4gbmV4dFwteWVhcjsKK+WPpOWFuCA+IGNsYXNzaWNhbDsKK+WPq+WBmiA+IGJlXC1jYWxsZWQ7CivntqDojLYgPiBncmVlblwtdGVhOwor5Yil6JmVID4gZWxzZXdoZXJlOwor6L+w6KqeID4gcHJlZGljYXRlOwor6Ziy6KGbID4gdG9cLWRlZmVuZDsKK+aYqOWkqSA+IHllc3RlcmRheTsKK+aVmeeItiA+IGdvZGZhdGhlcjsKK+WPl+WDsSA+IG1lcmNlbmFyeTsKK+aWvOaYryA+IHRoZXJldXBvbjsKK+iqnua6kCA+IGV0eW1vbG9neTsKK+iqquazlSA+IHN0YXRlbWVudDsKK+WfjumWgCA+IGNpdHlcLWdhdGU7CivpnYjmlY8gPiBzZW5zaXRpdmU7CivliqnnkIYgPiBhc3Npc3RhbnQ7CivoqK3nq4sgPiB0b1wtc2V0XC11cDsKK+irluaWtyA+IGluZmVyZW5jZTsKK+WPl+S6iyA+IHJlY2VwaWVudDsKK+eGrOeFjiA+IHN1ZmZlcmluZzsKK+WIhuiZnyA+IHNlbWljb2xvbjsKK+WOn+WRiiA+IGNvbXBsYWludDsKK+eZvemtmiA+IHdoaXRlZmlzaDsKK+WkmuaooyA+IGRpdmVyc2l0eTsKK+WkmuaooSA+IG11bHRpbW9kZTsKK+mWi+mgrSA+IGJlZ2lubmluZzsKK+eEoeiDvSA+IGluYWJpbGl0eTsKK+eZvemrlCA+IGxlYW5cLXR5cGU7CivmqJnpq5ggPiBlbGV2YXRpb247CivlppblqpogPiBzZWR1Y3RpdmU7CivnhKHogbIgPiBub2lzZWxlc3M7CivliLrnuaEgPiBlbWJyb2lkZXI7CivljYHlubQgPiB0ZW5cLXllYXJzOwor5Y2K5bO2ID4gcGVuaW5zdWxhOwor6YCj57qMID4gY29udGlub3VzOwor5Y6f5YmHID4gcHJpbmNpcGxlOwor6YSt5beeID4gemhlbmd6aG91Owor6KiI562WID4gc3RyYXRhZ2VtOwor5bqV57eaID4gdW5kZXJsaW5lOwor6ZaD6Zu7ID4gbGlnaHRuaW5nOwor5byV5rihID4gZXh0cmFkaXRlOwor5pWZ5q+NID4gZ29kbW90aGVyOwor5aOB54iQID4gZmlyZXBsYWNlOwor5paH5piOID4gY2l2aWxpemVkOwor55u06Ka6ID4gaW50dWl0aW9uOwor5aOB54eIID4gd2FsbFwtbGFtcDsKK+eZvOmfsyA+IHByb25vdW5jZTsKK+WOmOWFiyA+IGNlbnRpZ3JhbTsKK+eEoeexnyA+IHNjb3VuZHJlbDsKK+WKoOa3sSA+IHRvXC1kZWVwZW47Civln7fooYwgPiBpbXBsZW1lbnQ7Civpm7nmmrQgPiBoYWlsc3Rvcm07Civnorrkv6EgPiBjb25maWRlbnQ7CivlpaDlrpogPiBlc3RhYmxpc2g7CivpgqPmqKMgPiB0aGF0XC1raW5kOwor5YWs6YeMID4ga2lsb21ldGVyOwor6Kqg5pGvID4gc2luY2VyZWx5Owor5beu6LedID4gZGlzcGFyaXR5Owor6KWv6KOZID4gcGV0dGljb2F0Owor6bC+6IagID4gaXNpbmdsYXNzOwor6K2J5Lu2ID4gcGFwZXJ3b3JrOwor57Sw6I+MID4gYmFjdGVyaWFsOwor6Iqs6aaZID4gZnJhZ3JhbmNlOwor5Y2g5Y2cID4gdG9cLWRpdmluZTsKK+iSvOWkqSA+IGZpcm1hbWVudDsKK+e3qeayliA+IHRvXC1idWZmZXI7CivpgbjmtL4gPiBzZXRcLWFwYXJ0Owor5pWj5pKtID4gdG9cLXNwcmVhZDsKK+Wkp+W/lyA+IGhpZ2hcLWFpbXM7CivovJTpn7MgPiBjb25zb25hbnQ7CivlvLXmj5ogPiBwdWJsaWNpemU7Civop6PnorwgPiB0b1wtZGVjb2RlOwor5pKt56iuID4gc293XC1zZWVkczsKK+WMluWtuCA+IGNoZW1pc3RyeTsKK+Wgsee0mSA+IG5ld3NwYXBlcjsKK+eEoeefpSA+IGlnbm9yYW5jZTsKK+aOpemngSA+IHRvXC1hY2Nlc3M7CivlvojlpJogPiB2ZXJ5XC1tYW55Owor6Kqg5oSPID4gc2luY2VyaXR5Owor5buj5rObID4gZXh0ZW5zaXZlOwor6bOz5qKoID4gcGluZWFwcGxlOwor6ZuZ5pa5ID4gYmlsYXRlcmFsOwor6ZW36YGgID4gbG9uZ1wtdGVybTsKK+WNg+WRqCA+IGtpbG9oZXJ0ejsKK+mBjua/viA+IHRvXC1maWx0ZXI7CivlpYflppkgPiBmYW50YXN0aWM7CivlhrDok4sgPiBpY2VcLXNoZWV0Owor6YGZ5risID4gdGVsZW1ldHJ5Owor6L6y6IiNID4gZmFybWhvdXNlOwor57SF6JOuID4gcmVkXC1sb3R1czsKK+WFseitmCA+IGNvbnNlbnN1czsKK+i8uOmAgSA+IHRyYW5zcG9ydDsKK+Wkp+WwjyA+IGRpbWVuc2lvbjsKK+Wkp+WutiA+IGF1dGhvcml0eTsKK+eIreWPliA+IGZpZ2h0XC1mb3I7Civmr4/lpKkgPiBldmVyeVwtZGF5Owor5pS75pOKID4gdG9cLWF0dGFjazsKK+e0heiMtiA+IGJsYWNrXC10ZWE7CivmloflrZcgPiBjaGFyYWN0ZXI7CivluLjntqAgPiBldmVyZ3JlZW47Civmrpjlu6IgPiBkZWZvcm1pdHk7CivpmrHmmaYgPiBvYnNjdXJpdHk7CivnhafmqKMgPiBhc1wtYmVmb3JlOwor5pa55ZCRID4gZGlyZWN0aW9uOwor54Sw54GrID4gZmlyZXdvcmtzOwor5pWR5oGpID4gc2FsdmF0aW9uOwor5aSp5aSpID4gZXZlcnlcLWRheTsKK+W+jOWLpCA+IGxvZ2lzdGljczsKK+WKqeaJiyA+IGFzc2lzdGFudDsKK+WFp+iksiA+IHVuZGVyd2VhcjsKK+i+pue9qiA+IHRvXC1wdW5pc2g7CivopoHnt4ogPiBpbXBvcnRhbnQ7CivmsJHkuLsgPiBkZW1vY3JhY3k7Civli5nlr6YgPiBwcmFnbWF0aWM7CivmjqjpircgPiB0b1wtbWFya2V0Owor5b2Z5aCxID4gdG9cLXJlcG9ydDsKK+imgee0oCA+IGVzc2VudGlhbDsKK+WkouWigyA+IGRyZWFtbGFuZDsKK+iqsuWggiA+IGNsYXNzcm9vbTsKK+mBuOaThyA+IHRvXC1zZWxlY3Q7CivloLHnlYwgPiB0aGVcLXByZXNzOwor55m86KiAID4gc3RhdGVtZW50Owor5Y2B5LiDID4gc2V2ZW50ZWVuOwor54Gr6JelID4gZ3VucG93ZGVyOwor6Ki65pa3ID4gZGlhZ25vc2lzOwor5q+r5YWLID4gbWlsbGlncmFtOwor5Ymv5pysID4gZHVwbGljYXRlOwor6Imx6ZujID4gZGlmZmljdWx0Owor5buj5pKtID4gYnJvYWRjYXN0Owor5pWX5bGAID4gbG9zdFwtZ2FtZTsKK+mDiuWkliA+IG91dHNraXJ0czsKK+aVmeWupCA+IGNsYXNzcm9vbTsKK+eZveignyA+IHdoaXRlXC13YXg7Civlh7rnj74gPiB0b1wtYXBwZWFyOwor6YCQ5ry4ID4gZ3JhZHVhbGx5Owor5Yaw57OVID4gaWNlXC1jcmVhbTsKK+WFgeiosSA+IHRvXC1wZXJtaXQ7Civlvozku6MgPiBwb3N0ZXJpdHk7CivoiabplbcgPiBjb21tYW5kZXI7Civmp4vpgKAgPiBzdHJ1Y3R1cmU7Civli77lioMgPiB0b1wtc2tldGNoOwor5aKe5o+0ID4gcmVpbmZvcmNlOwor54Sh5q+UID4gbWF0Y2hsZXNzOwor5pWZ5aOrID4gY2h1cmNobWFuOwor5qyh5pW4ID4gZnJlcXVlbmN5Owor5aSn5YqbID4gZW5lcmdldGljOwor5aOv5aSnID4gdG9cLWV4cGFuZDsKK+asiuafhCA+IGF1dGhvcml0eTsKK+mBteW+qiA+IHRvXC1mb2xsb3c7CivpganmhI8gPiBhZ3JlZWFibGU7Civoqr/lgZwgPiByZWNvbmNpbGU7CivlubLmtokgPiBpbnRlcmZlcmU7Civli6Tli4kgPiBkaWxpZ2VuY2U7CivmrL7lvoUgPiBlbnRlcnRhaW47Civnmbzoir0gPiBnZXJtaW5hdGU7CivlpKfkvr8gPiBleGNyZW1lbnQ7CivmkqXmraMgPiBzZXRcLXJpZ2h0Owor5aO95ZG9ID4gbGlmZVwtc3BhbjsKK+e2k+aWhyA+IHNjcmlwdHVyZTsKK+aVsuWFpSA+IHRvXC1rZXlcLWluOwor6ZqK5b2iID4gZm9ybWF0aW9uOwor5aSp5LiKID4gY2VsZXN0aWFsOwor6L6m55CGID4gdG9cLWhhbmRsZTsKK+iou+WumiA+IGJlXC1kb29tZWQ7CivnhKHmlbggPiBjb3VudGxlc3M7CivmlLblm54gPiB0b1wtcmVnYWluOwor5aSW5LqkID4gZGlwbG9tYWN5Owor6YGO5bqmID4gZXhjZWVkaW5nOwor5Yik5pa3ID4gdG9cLWRlY2lkZTsKK+aTjeaMgSA+IHRvXC1tYW5hZ2U7CivmqqLmuKwgPiB0b1wtZGV0ZWN0Owor55+u5YezID4gbG93XC1zdG9vbDsKK+majuWxpCA+IGhpZXJhcmNoeTsKK+iHs+mrmCA+IHBhcmFtb3VudDsKK+aOqOiWpiA+IHJlY29tbWVuZDsKK+aOkuihjCA+IHNlbmlvcml0eTsKK+WJjeW+gCA+IGxlYXZlXC1mb3I7CivmlZnlhIAgPiBvcmRpbmFuY2U7CivntZDmp4sgPiBzdHJ1Y3R1cmU7CivlorPlopMgPiBzZXB1bGNoZXI7Civmkq3mlL4gPiBicm9hZGNhc3Q7Civlhaznp4kgPiBraWxvbGl0ZXI7CivpmLvmkpMgPiB0b1wtdGh3YXJ0Owor5YKz6YCBID4gdG9cLWNvbnZleTsKK+mBuuWbkSA+IHRlc3RhbWVudDsKK+atoeWRvCA+IGNoZWVyXC1mb3I7CivlgrPovLggPiB0cmFuc3BvcnQ7CivlubLmk74gPiBpbnRlcmZlcmU7CivmjqjojZAgPiByZWNvbW1lbmQ7CivpgYrlrqIgPiB0cmF2ZWxsZXI7Civln47niYYgPiBjaXR5XC13YWxsOwor5YWn56K8ID4gdG9cLWVuY29kZTsKK+aRp+aumCA+IHRvXC1yYXZhZ2U7Civmkp7mk4ogPiB0b1wtc3RyaWtlOwor5Yqg5YqHID4gYWdncmF2YXRlOwor6Zi75oqXID4gaW1wZWRhbmNlOwor5o2Q6LSIID4gdG9cLWRvbmF0ZTsKK+iHqumhmCA+IHZvbHVudGFyeTsKK+aoueeariA+IHRyZWVcLWJhcms7CivntpPluqYgPiBsb25naXR1ZGU7Civpmqjlk6EgPiBhdHRlbmRhbnQ7CivlhYnnrYYgPiBsaWdodFwtcGVuOwor5aCx5pSkID4gbmV3c3N0YW5kOwor5Ye65pa8ID4gYmVcLWR1ZVwtdG87CivmlZHkuJYgPiBzYWx2YXRpb247Civmk7TlpKcgPiB0b1wtZXhwYW5kOwor6YGO5aSaID4gZXhjZXNzaXZlOwor54Sh5b2iID4gaW52aXNpYmxlOwor6KOd572uID4gZXF1aXBtZW50Owor5pWF5LqLID4gbmFycmF0aXZlOwor5YWx55SiID4gY29tbXVuaXN0Owor56+p6YG4ID4gdG9cLWZpbHRlcjsKK+aOqOe/uyA+IG92ZXJ0aHJvdzsKK+mZouWtkCA+IGNvdXJ0eWFyZDsKK+WckuiXnSA+IGdhcmRlbmluZzsKK+W7o+WNmiA+IGV4dGVuc2l2ZTsKK+asiuWogSA+IGF1dGhvcml0eTsKK+WKg+WIhiA+IHRvXC1kaXZpZGU7CivlgrPoqJggPiBiaW9ncmFwaHk7Civov7fmg5EgPiB0b1wtcHV6emxlOwor5Yqg5LiKID4gdG9cLXB1dFwtaW47Civlu7bkvLggPiB0b1wtZXh0ZW5kOwor6YCa5a61ID4gb3Zlcm5pZ2h0Owor6Imx6IumID4gZGlmZmljdWx0Owor5buj5YKzID4gcHJvcGFnYXRlOwor55m855SfID4gdG9cLWhhcHBlbjsKK+eZseeYkyA+IHBhcmFseXNpczsKK+e1hOaIkCA+IGNvbXBvbmVudDsKK+maiuWIlyA+IGZvcm1hdGlvbjsKK+aOpeeuoSA+IHRha2VcLW92ZXI7CivoqK3lgpkgPiBlcXVpcG1lbnQ7CivpmoblhqwgPiBtaWR3aW50ZXI7Civlh7nluqYgPiBjb25jYXZpdHk7CivmvKvplbcgPiB2ZXJ5XC1sb25nOwor55WM6Z2iID4gaW50ZXJmYWNlOwor5Ym15L2cID4gdG9cLWNyZWF0ZTsKK+mZquWQjCA+IGFjY29tcGFueTsKK+aTtOWFhSA+IHRvXC1leHBhbmQ7CivmjIfosqwgPiBjcml0aWNpemU7CivntpzlkIggPiBjb21wb3NpdGU7CivmiqvpnLIgPiB0b1wtcmV2ZWFsOwor55yL5b6FID4gbG9va1wtdXBvbjsKK+mZt+WFpSA+IHNpbmtcLWludG87CivoobDokL0gPiBkZWNvbXBvc2U7CivliZvlgaUgPiBlbmVyZ2V0aWM7CivmkqXlpY8gPiBwaXp6aWNhdG87CivpgIblooMgPiBhZHZlcnNpdHk7Civov6vlrrMgPiBwZXJzZWN1dGU7CivpgLLljJYgPiBldm9sdXRpb247Civovq/miY0gPiBlbG9xdWVuY2U7Civoh6rosqAgPiBjb25jZWl0ZWQ7CivluILmlL8gPiBtdW5pY2lwYWw7CivlhLznhLYgPiBqdXN0XC1saWtlOwor57WV5aaZID4gZXhxdWlzaXRlOwor5oqV6ZmNID4gc3VycmVuZGVyOwor57C956ugID4gc2lnbmF0dXJlOwor6Zmq5Ly0ID4gYWNjb21wYW55Owor57aB5YyqID4ga2lkbmFwcGVyOwor54Sh5YqbID4gcG93ZXJsZXNzOwor5pOU5L+dID4gZ3VhcmFudGVlOwor5o6o55CGID4gcmVhc29uaW5nOwor5Zug6ICMID4gdGhlcmVmb3JlOwor6YCG5ZCRID4gYmFja3dhcmRzOwor6Lef6ZqoID4gdG9cLWZvbGxvdzsKK+aMieiaiiA+IGFub3BoZWxlczsKK+aoo+apnyA+IHByb3RvdHlwZTsKK+WIqOWGsCA+IHdhdGVyXC1pY2U7CivluLblr6wgPiBiYW5kd2lkdGg7CivnlbDorbAgPiBvYmplY3Rpb247Civopo/lrpogPiBwcm92aXNpb247CivlsZXplosgPiB0b1wtdW5mb2xkOwor6Lyq5rWBID4gYWx0ZXJuYXRlOwor5YKz57WxID4gdHJhZGl0aW9uOwor5YGP6KaLID4gcHJlanVkaWNlOwor5Zyw55CGID4gZ2VvZ3JhcGh5Owor5Zyw55CDID4gdGhlXC1lYXJ0aDsKK+mZjeS9jiA+IHRvXC1yZWR1Y2U7Civkv53pmqogPiBpbnN1cmFuY2U7Civkv53pmpwgPiB0b1wtZW5zdXJlOwor5aC05ZCIID4gc2l0dWF0aW9uOwor5aCx5ZGKID4gdG9cLWluZm9ybTsKK+e0s+WjqyA+IGdlbnRsZW1hbjsKK+WFrOaWlyA+IGRlY2FsaXRlcjsKK+mAneS4liA+IHBhc3NcLWF3YXk7Civov5Tlm54gPiByZXR1cm5cLXRvOwor6ZmE5Lu2ID4gZW5jbG9zdXJlOwor5YiG5YmyID4gdG9cLWN1dFwtdXA7CivplbfmnJ8gPiBsb25nXC10ZXJtOwor5omB6aqoID4gZmxhdFwtYm9uZTsKK+S/nemPoiA+IGJvZHlndWFyZDsKK+i3kemMtiA+IHN0b3B3YXRjaDsKK+e0meWkviA+IHBhcGVyY2xpcDsKK+eZvOaYjiA+IHRvXC1pbnZlbnQ7CivmqKHmk6wgPiBpbWl0YXRpb247Civmv4DnmbwgPiB0b1wtYXJvdXNlOwor5YaN5bqmID4gb25jZVwtbW9yZTsKK+ezvuWvnyA+IHRvXC1waWNrZXQ7Civmi7foirEgPiB0b1wtZW1ib3NzOwor5r2b6ImHID4gc3VibWFyaW5lOwor6L+35L2PID4gZmFzY2luYXRlOwor6Im+54K3ID4gbW94YVwtY29uZTsKK+WbmuemgSA+IGNhcHRpdml0eTsKK+WFp+aIsCA+IGNpdmlsXC13YXI7Civkvr/ploAgPiBzaWRlXC1kb29yOwor6KOB5ribID4gdG9cLXJlZHVjZTsKK+i/t+S6giA+IGNvbmZ1c2lvbjsKK+WcjeeJhiA+IGVuY2xvc3VyZTsKK+ebuOWQjCA+IGlkZW50aWNhbDsKK+imj+WLuCA+IHRvXC1hZHZpc2U7Civooajnmq4gPiBlcGlkZXJtaXM7Civooajnmb0gPiB2aW5kaWNhdGU7CivmiLbpmZAgPiB0aHJlc2hvbGQ7CivnnIvlgZogPiByZWdhcmRcLWFzOwor5o2Q5427ID4gdG9cLWRvbmF0ZTsKK+WFh+aJiyA+IGFzc2FpbGFudDsKK+ifkeiegiA+IGNvY2tyb2FjaDsKK+WvrOmguyA+IGJyb2FkYmFuZDsKK+ilv+WNlyA+IHNvdXRod2VzdDsKK+S9v+mkqCA+IGNvbnN1bGF0ZTsKK+ilv+WMlyA+IG5vcnRod2VzdDsKK+ajieiiqyA+IGNvbWZvcnRlcjsKK+eyvuW3pyA+IGVsYWJvcmF0ZTsKK+W2hOaWsCA+IGJyYW5kXC1uZXc7CivmiZPpgLIgPiB0b1wtYnJlYWNoOwor5YWs5a+4ID4gZGVjaW1ldGVyOwor5om/6KqNID4gcmVjb2duaXplOwor5YWs5a+TID4gYXBhcnRtZW50Owor5bi45Lu7ID4gcGVybWFuZW50Owor5YWJ5b2pID4gaG9ub3JhYmxlOwor5L+d6K23ID4gdG9cLWRlZmVuZDsKK+aMh+ekuiA+IHBvaW50XC1vdXQ7Civnl4XnkIYgPiBwYXRob2xvZ3k7Civovpvli54gPiBsYWJvcmlvdXM7CivmkI3lo54gPiB0b1wtZGFtYWdlOwor5L+d6Ki8ID4gZ3VhcmFudGVlOwor5ZiJ6KixID4gZmF2b3JhYmxlOwor5YWr5aSpID4gZWlnaHRcLWRheTsKK+aLkue1lSA+IHRvXC1yZWZ1c2U7CivopoHkuI0gPiBvdGhlcndpc2U7CivmqJnlrpogPiBkZW1hcmNhdGU7CivohqjohLkgPiB0b1wtZXhwYW5kOwor6Ly75bCEID4gcmFkaWF0aW9uOwor5o6S5pS+ID4gZGlzY2hhcmdlOwor6auU54++ID4gdG9cLWVtYm9keTsKK+ihsOa4myA+IHRvXC13ZWFrZW47CivnsYPmnb8gPiBiYWNrYm9hcmQ7Civppqzpnq0gPiBob3JzZXdoaXA7Civoi6blooMgPiBncmlldmFuY2U7CivnlaLnq58gPiBhZnRlclwtYWxsOwor5L2O6ZqOID4gbG93XC1sZXZlbDsKK+aJgOisgiA+IHNvXC1jYWxsZWQ7CivmvbDniJsgPiB0b1wtZmVzdGVyOwor5YSy5a2YID4gc3RvY2twaWxlOwor6IaA6IeCID4gdXBwZXJcLWFybTsKK+eAkeW4gyA+IHdhdGVyZmFsbDsKK+aOm+W/tSA+IGNvbmNlcm5lZDsKK+WFqOWQjCA+IGlkZW50aWNhbDsKK+i9n+WLlSA+IHNlbnNhdGlvbjsKK+iHuueHiCA+IGRlc2tcLWxhbXA7CivonbTonbYgPiBidXR0ZXJmbHk7CivnlJznvo4gPiBzd2VldG5lc3M7CivkvLTpmqggPiB0b1wtZm9sbG93Owor5a+m6LOqID4gc3Vic3RhbmNlOwor5YWs5YWpID4gaGVjdG9ncmFtOwor5qSN54mpID4gYm90YW5pY2FsOwor56m66ZiyID4gYWlyXC1mb3JjZTsKK+WFpeS+tSA+IHRvXC1pbnZhZGU7CivlhYvliLYgPiByZXN0cmFpbnQ7CivlhazkuIggPiBkZWNhbWV0ZXI7CivovLjlh7ogPiB0b1wtZXhwb3J0Owor5oqY56OoID4gcGVyc2VjdXRlOwor6Ly45YWlID4gdG9cLWltcG9ydDsKK+WvpuihjCA+IGltcGxlbWVudDsKK+etieetiSA+IGV0XC1jZXRlcmE7CivmuIXpmaQgPiBlbGltaW5hdGU7CivmiZPogb0gPiBhc2tcLWFib3V0Owor6KGo5o+aID4gdG9cLXByYWlzZTsKK+a/gOaAkiA+IGluZnVyaWF0ZTsKK+aJk+e/uyA+IG92ZXJ0aHJvdzsKK+WBnOaziiA+IGFuY2hvcmFnZTsKK+icu+ickyA+IGRyYWdvbmZseTsKK+a8uOa8uCA+IGdyYWR1YWxseTsKK+WtkOmfsyA+IGNvbnNvbmFudDsKK+a8sua9riA+IGhpZ2hcLXRpZGU7CivlrrborZwgPiBnZW5lYWxvZ3k7CivpqZrnlbAgPiBhbWF6ZW1lbnQ7CivovJTliqkgPiB0b1wtYXNzaXN0Owor5o+Q5L6bID4gdG9cLXN1cHBseTsKK+epv+mAjyA+IHBlbmV0cmF0ZTsKK+aOpeWPoyA+IGludGVyZmFjZTsKK+aOpeWPlyA+IHRvXC1hY2NlcHQ7Civpq5Tmk40gPiBneW1uYXN0aWM7Civkvr/nrosgPiBub3RlcGFwZXI7Civnqbrou40gPiBhaXJcLWZvcmNlOwor6LaF6IGvID4gaHlwZXJsaW5rOwor6IGW6aSQID4gc2FjcmFtZW50Owor6KOd5YKZID4gZXF1aXBtZW50Owor5om555m8ID4gd2hvbGVzYWxlOwor5ry45qyhID4gZ3JhZHVhbGx5Owor6LaV57eKID4gaHVycmllZGx5Owor6aqo5p62ID4gZnJhbWV3b3JrOwor5LuL6Z2iID4gaW50ZXJmYWNlOwor5YG15o6iID4gZGV0ZWN0aXZlOwor6Ieo5pmCID4gdGVtcG9yYXJ5Owor5oyR5oiwID4gY2hhbGxlbmdlOwor6KKr5ZGKID4gZGVmZW5kYW50Owor5o6S5Ye6ID4gZGlzY2hhcmdlOwor5ouU5p+TID4gZGlzY2hhcmdlOwor6LKd6aGeID4gc2hlbGxmaXNoOwor5Zyo5YWnID4gaW5jbHVkaW5nOwor5ou/5omLID4gZXhwZXJ0XC1pbjsKK+eriuiBvSA+IGVhdmVzZHJvcDsKK+Wuv+iIjSA+IGRvcm1pdG9yeTsKK+WxseawtCA+IGxhbmRzY2FwZTsKK+Wbm+WkqSA+IGZvdXJcLWRheXM7CivmjLrlpb0gPiB2ZXJ5XC1nb29kOwor57C95YWlID4gdG9cLWxvZ1wtb247Civppqzog4wgPiBob3JzZWJhY2s7CivpqZXmsKMgPiBhcnJvZ2FuY2U7CivnlpHlv4MgPiBzdXNwaWNpb247CivmuLrojKsgPiB1bmNlcnRhaW47Civmv4Dli7UgPiBlbmNvdXJhZ2U7Civmv4Dli5UgPiB0b1wtZXhjaXRlOwor5oiQ56uLID4gZXN0YWJsaXNoOwor5re76KOcID4gZmlsbFwtXCh1cFwpOwor5L+u5q2jID4gdG9cLXJldmlzZTsKK+afkOiZlSA+IHNvbWV3aGVyZTsKK+izk+ipniA+IHByZWRpY2F0ZTsKK+eoseiumiA+IHRvXC1wcmFpc2U7CivkvY7ntJogPiBsb3dcLWxldmVsOwor6LKo6LyqID4gZnJlaWdodGVyOwor6auU5ZyYID4gY29tbXVuaXR5Owor5qW15YW2ID4gZXh0cmVtZWx5Owor5oq15oqXID4gdG9cLXJlc2lzdDsKK+misemiqCA+IGh1cnJpY2FuZTsKK+S8uOe4riA+IHRvXC1leHRlbmQ7Civomq/ompMgPiBlYXJ0aHdvcm07CivotJbnvaogPiBhdG9uZW1lbnQ7Civlr7XniakgPiBob3VzZVwtcGV0Owor6IGW6KqVID4gY2hyaXN0bWFzOwor5YGH5a6aID4gdG9cLWFzc3VtZTsKK+ihjOWLlSA+IG9wZXJhdGlvbjsKK+S4u+mrlCA+IG1haW5cLXBhcnQ7CivmiYvms5UgPiB0ZWNobmlxdWU7CivmtojpgaMgPiBhbXVzZW1lbnQ7CivmpbXkuoYgPiBleHRyZW1lbHk7CivlsLHmpa0gPiBnZXRcLWFcLWpvYjsKK+eWhuWfnyA+IHRlcnJpdG9yeTsKK+ahjOeHiCA+IGRlc2tcLWxhbXA7CivnloblnJ8gPiB0ZXJyaXRvcnk7Civmib/mk5QgPiB1bmRlcnRha2U7Civohr3lsI8gPiBjb3dhcmRpY2U7CivlsazmgKcgPiBhdHRyaWJ1dGU7Civpq5jlg7kgPiBleHBlbnNpdmU7CivkuLvpoIEgPiBob21lXC1wYWdlOwor576O6bqXID4gYmVhdXRpZnVsOwor5pyD6Z2iID4gbWVldFwtd2l0aDsKK+aIkOeCuiA+IHRvXC1iZWNvbWU7CivkuqToqrwgPiBjb21tdW5pb247CivpjKbnuaEgPiBiZWF1dGlmdWw7CivmvZvlipsgPiBwb3RlbnRpYWw7CivlsYXmiYAgPiByZXNpZGVuY2U7Civlrbjnq6UgPiBzY2hvb2xib3k7Civoh6rli5UgPiBhdXRvbWF0aWM7CivooJXli5UgPiB0b1wtd2lnZ2xlOwor5omT5pWXID4gdG9cLWRlZmVhdDsKK+ixquixrCA+IHBvcmN1cGluZTsKK+WVn+eZvCA+IGVubGlnaHRlbjsKK+a1gemHjyA+IGZsb3dcLXJhdGU7Civos5zntaYgPiB0b1wtYmVzdG93Owor5oub5YufID4gdG9cLXJlY3VpdDsKK+WujOeVoiA+IHRvXC1maW5pc2g7CivlsI3mlrwgPiByZWdhcmRpbmc7Civoh7Pku4ogPiB1bnRpbFwtbm93Owor57+76K2vID4gdHJhbnNsYXRlOwor5LiK6Z2iID4gb25cLXRvcFwtb2Y7CivkupTomZ8gPiB0aGVcLWZpZnRoOwor5L+h5beuID4gbWVzc2VuZ2VyOwor6IaA5a2QID4gdXBwZXJcLWFybTsKK+aLhuWNuCA+IHRvXC11bmxvYWQ7Civom4vnmb0gPiBlZ2dcLXdoaXRlOwor5ZCe6aOfID4gdG9cLWRldm91cjsKK+ahhuaetiA+IGZyYW1ld29yazsKK+iDg+eCjiA+IGdhc3RyaXRpczsKK+WwjeaKlyA+IHdpdGhzdGFuZDsKK+WZqOWFtyA+IGltcGxlbWVudDsKK+iEq+aOiSA+IHN0cmlwXC1vZmY7CivpppnmuK8gPiBob25nXC1rb25nOwor5a+m5pmCID4gcmVhbFwtdGltZTsKK+iCuueCjiA+IHBuZXVtb25pYTsKK+aFtuelnSA+IGNlbGVicmF0ZTsKK+WusOauuiA+IHNsYXVnaHRlcjsKK+a1quiVqSA+IHRvXC1sb2l0ZXI7Civosaroj68gPiBsdXh1cmlvdXM7Civmn5DniakgPiBzb21ldGhpbmc7CivmtKXosrwgPiBhbGxvd2FuY2U7Civogp3ngo4gPiBoZXBhdGl0aXM7CivmtojogJcgPiB0b1wtdXNlXC11cDsKK+S4iui8iSA+IHRvXC11cGxvYWQ7CivomK3oirEgPiBjeW1iaWRpdW07Civmm7joqJggPiBzZWNyZXRhcnk7CivmtaroiLkgPiBzd2luZ2JvYXQ7CivlsI/lr6sgPiBsb3dlcmNhc2U7CivnlKjlhbcgPiBhcHBsaWFuY2U7Civlj6TpoqggPiBhbnRpcXVpdHk7CivlronmrYcgPiBnb1wtdG9cLWJlZDsKK+WutuaXjyA+IGhvdXNlaG9sZDsKK+S9leaVhSA+IHdoZXJlZm9yZTsKK+iFs+WNsCA+IGZvb3RwcmludDsKK+eTt+WZqCA+IGNoaW5hd2FyZTsKK+erpeW5tCA+IGNoaWxkaG9vZDsKK+S9lOaTmiA+IHRvXC1vY2N1cHk7CivotbfluoogPiB0b1wtZ2V0XC11cDsKK+WvrOW4tiA+IGJyb2FkYmFuZDsKK+S+huW5tCA+IG5leHRcLXllYXI7Civku4rnlJ8gPiB0aGlzXC1saWZlOwor6aC76YGTID4gZnJlcXVlbmN5Owor5pys6IG3ID4gb25lJydzXC1qb2I7CivlsYDli6IgPiBzaXR1YXRpb247Civog4zmlpwgPiBhbnRpY2xpbmU7CivmmrTouoEgPiBpcmFzY2libGU7CivmsaDpub0gPiBsYWtlXC1zYWx0Owor5LiN6KixID4gbm90XC1hbGxvdzsKK+WVhuaomSA+IHRyYWRlbWFyazsKK+mjr+eilyA+IHJpY2VcLWJvd2w7CivmmaTpnaIgPiBpbnRlcnZpZXc7CivmoZTlrZAgPiB0YW5nZXJpbmU7Civph43plosgPiB0b1wtcmVvcGVuOwor6K6K6Z2pID4gdHJhbnNmb3JtOwor5oiq5aWqID4gaW50ZXJjZXB0Owor5rex5rC0ID4gZGVlcHdhdGVyOwor6Lao5ZCRID4gZGlyZWN0aW9uOwor6LW35aeLID4gb3JpZ2luYXRlOwor56WH6K6AID4gcmVhZFwtb25seTsKK+WtuOacgyA+IGluc3RpdHV0ZTsKK+aHuOW0liA+IHByZWNpcGljZTsKK+aineS7tiA+IGNvbmRpdGlvbjsKK+m3k+m0oyA+IHBhcnRyaWRnZTsKK+acq+erryA+IGV4dHJlbWl0eTsKK+eTnOWIhiA+IHBhcnRpdGlvbjsKK+iZleeQhiA+IHRvXC1oYW5kbGU7Civmtoznj74gPiBzcHJpbmdcLXVwOwor56au56+AID4gZXRpcXVldHRlOwor5pmu6YGNID4gdW5pdmVyc2FsOwor6K6K6YacID4gZGlzZmlndXJlOwor5Lim6IKpID4gYWxvbmdzaWRlOwor6JyC5beiID4gaG9uZXljb21iOwor5Lit576OID4gY2hpbmFcLXVzYTsKK+aal+iqniA+IGNvZGVcLXdvcmQ7Civnq6/lj6MgPiBpbnRlcmZhY2U7CivkvY7lsaQgPiBsb3dcLWxldmVsOwor6YeN6LmIID4gdG9cLXJlcGVhdDsKK+S9j+WuhSA+IHJlc2lkZW5jZTsKK+S8keaIsCA+IGFybWlzdGljZTsKK+aJgOS7pSA+IHRoZXJlZm9yZTsKK+iumuizniA+IHRvXC1hZG1pcmU7CivmuJvlvLEgPiB0b1wtd2Vha2VuOwor5Y+b6LOjID4gdG9cLWJldHJheTsKK+WrjOeWkSA+IHN1c3BpY2lvbjsKK+S8uOWxlSA+IGV4dGVuc2lvbjsKK+S4gOiHtCA+IHVuYW5pbW91czsKK+iBsuaYjiA+IHN0YXRlbWVudDsKK+mkiuauliA+IGN1bHRpdmF0ZTsKK+afv+WtkCA+IHBlcnNpbW1vbjsKK+iAgeeJjCA+IG9sZFwtYnJhbmQ7CivlppbpoqggPiBldmlsXC13aW5kOwor6Yy25bi2ID4gd2F0Y2hiYW5kOwor6YeN6KaBID4gaW1wb3J0YW50Owor5rib5bCRID4gdG9cLWxlc3NlbjsKK+acieebiiA+IHdob2xlc29tZTsKK+mHjeikhyA+IHRvXC1yZXBlYXQ7Civnq4vliLsgPiBmb3J0aHdpdGg7Civmt7HmgJ0gPiB0b1wtcG9uZGVyOwor5pep6aSQID4gYnJlYWtmYXN0Owor6YeO6KC7ID4gYmFyYmFyb3VzOwor5pep6aOvID4gYnJlYWtmYXN0Owor5b+F6ZyAID4gZXNzZW50aWFsOwor6LKh5p2xID4gc2hvcG93bmVyOwor6Jmb5qeLID4gaW1hZ2luYXJ5Owor6IGv5oOzID4gYXNzb2NpYXRlOwor5rW45rKSID4gaW1tZXJzaW9uOwor5p2/5panID4gYnJvYWRcLWF4ZTsKK+WQq+eziiA+IG9ic2N1cml0eTsKK+a3kuaFmCA+IG1pc2VyYWJsZTsKK+S4gOevhyA+IG9uZVwtc2lkZWQ7CivpjbXlhaUgPiB0b1wta2V5XC1pbjsKK+aXi+miqCA+IHdoaXJsd2luZDsKK+elneemjyA+IGJsZXNzaW5nczsKK+acn+a7vyA+IHRvXC1leHBpcmU7CivoraboprogPiB2aWdpbGFuY2U7Civljp/oq5IgPiB0b1wtZXhjdXNlOwor5a625L+xID4gZnVybml0dXJlOwor5oSf5p+TID4gaW5mZWN0aW9uOwor5a2U5a2QID4gY29uZnVjaXVzOwor5a2Q5a2rID4gb2Zmc3ByaW5nOwor5a625Lq6ID4gaG91c2Vob2xkOwor5a625LqLID4gaG91c2V3b3JrOwor5a6j5YKzID4gcHVibGljaXplOwor5LuK5bm0ID4gdGhpc1wteWVhcjsKK+WRiOePviA+IHRvXC1hcHBlYXI7CivkuIDnmb4gPiBhXC1odW5kcmVkOwor6LKr5b65ID4gaW1wbGVtZW50Owor5Luy5aSPID4gbWlkc3VtbWVyOwor6K2J6KmeID4gdGVzdGltb255Owor56eY5pu4ID4gc2VjcmV0YXJ5Owor56qB5Ye6ID4gcHJvbWluZW50Owor5oOh5q+SID4gbWFsaWNpb3VzOwor5Ly05L62ID4gY29tcGFuaW9uOwor5piC6LK0ID4gZXhwZW5zaXZlOwor6Zyy6Z+TID4gdG9cLWV4cG9zZTsKK+W9semfvyA+IGluZmx1ZW5jZTsKK+WkoumtmCA+IG5pZ2h0bWFyZTsKK+WlvemBiyA+IGdvb2RcLWx1Y2s7CivmmrTnmbwgPiBicmVha1wtb3V0Owor5oeJ5LuYID4gZGVhbFwtd2l0aDsKK+acieavkiA+IHBvaXNvbm91czsKK+W8sem5vCA+IHdlYWtcLWJhc2U7Civmsb3oiLkgPiBzdGVhbWJvYXQ7Civlj6/nrJEgPiBsYXVnaGFibGU7CivljYrovIkgPiBoYWxmXC1sb2FkOwor5b6u6LufID4gbWljcm9zb2Z0Owor5LuZ5aKDID4gZmFpcnlsYW5kOwor5peo6LajID4gb2JqZWN0aXZlOwor5pel6LaoID4gZ3JhZHVhbGx5Owor5LqL5oWLID4gc2l0dWF0aW9uOwor5aSn6aGeID4gbWFpblwtdHlwZTsKK+acrOaWhyA+IHRoaXNcLXRleHQ7Civnh5/ppIogPiBudXRyaXRpb247CivpoLvnjocgPiBmcmVxdWVuY3k7CivljZTorbAgPiBhZ3JlZW1lbnQ7CivkuI3mu78gPiByZXNlbnRmdWw7CivpgqPpurwgPiBzb1wtXChtdWNoXCk7Civlv4XopoEgPiBuZWNlc3Nhcnk7CivlpKfpmbggPiBjb250aW5lbnQ7Civnoqfol40gPiBkYXJrXC1ibHVlOwor5b6F6YGHID4gdHJlYXRtZW50Owor5ZCI55CGID4gcmF0aW9uYWxlOwor546p5byEID4gcmVzb3J0XC10bzsKK+acieaZgiA+IHNvbWV0aW1lczsKK+aXgei3ryA+IHRvXC1ieXBhc3M7CivlpJzplpMgPiBuaWdodHRpbWU7Civmr5TphLAgPiBuZWlnaGJvdXI7CivpnZ7orbAgPiBjcml0aWNpemU7Civmm7jmnrYgPiBib29rc2hlbGY7Civmt7fkuoIgPiBjb25mdXNpb247CivmnInmlYggPiBlZmZlY3RpdmU7CivnvL3nm4IgPiBhbG1zXC1ib3dsOwor6LOH5YqpID4gc3Vic2lkaXplOwor5LiK5qyhID4gbGFzdFwtdGltZTsKK+eJjOiZnyA+IHRyYWRlbWFyazsKK+S6lOWkqSA+IGZpdmVcLWRheXM7CivmtojlpLEgPiBkaXNhcHBlYXI7Civml4Hop4AgPiBzcGVjdGF0b3I7Civno6jnn7MgPiBtaWxsc3RvbmU7Civku4vlhaUgPiBpbnRlcnZlbmU7Civku6XkuIogPiBtb3JlXC10aGFuOwor55+b6aCtID4gc3BlYXJoZWFkOwor5aSi6YG6ID4gd2V0XC1kcmVhbTsKK+iuiueVsCA+IHZhcmlhdGlvbjsKK+azouautSA+IHdhdmVcLWJhbmQ7Civpm6LplosgPiB0b1wtZGVwYXJ0Owor542y5b6XID4gdG9cLW9idGFpbjsKK+WQkOawoyA+IGFzcGlyYXRlZDsKK+adseWNlyA+IHNvdXRoZWFzdDsKK+adseWMlyA+IG5vcnRoZWFzdDsKK+S4jeaYjiA+IG5vdFwtY2xlYXI7CivlpYfop4AgPiBzcGVjdGFjbGU7CivmlLnpnakgPiB0b1wtcmVmb3JtOwor5oSb5ZyLID4gcGF0cmlvdGljOwor5LiN5pa3ID4gdW5jZWFzaW5nOwor5LuK5LiWID4gdGhpc1wtbGlmZTsKK+acquWpmiA+IHVubWFycmllZDsKK+W8semFuCA+IHdlYWtcLWFjaWQ7CivmlLbpm4YgPiB0b1wtZ2F0aGVyOwor5LmY5a6iID4gcGFzc2VuZ2VyOwor5LiA5pmCID4gdGVtcG9yYXJ5Owor5Yqp6ZW3ID4gZW5jb3VyYWdlOwor5Lqk5Ye6ID4gaGFuZFwtb3ZlcjsKK+mjn+WTgSA+IGZvb2RzdHVmZjsKK+mFjee9riA+IHRvXC1kZXBsb3k7CivlpLHoqr8gPiBpbWJhbGFuY2U7CivmtojljrsgPiBlbGltaW5hdGU7CivmnKzlo5ggPiBob21lXC1iYXNlOwor5Lq65LqLID4gcGVyc29ubmVsOwor5oKy5oWYID4gbWlzZXJhYmxlOwor6K2Y55u4ID4gc2Vuc2l0aXZlOwor5pu45bqXID4gYm9va3N0b3JlOwor6YKK6ZaAID4gc2lkZVwtZG9vcjsKK+S4reW6rSA+IGNvdXJ0eWFyZDsKK+WPuOapnyA+IGNoYXVmZmV1cjsKK+eNqOWutiA+IGV4Y2x1c2l2ZTsKK+adseS6niA+IGVhc3RcLWFzaWE7Civlvqnnv5IgPiB0b1wtcmV2aXNlOwor5ZCI5qC8ID4gcXVhbGlmaWVkOwor5pqr5pmCID4gdGVtcG9yYXJ5Owor6ZuZ6YKKID4gYmlsYXRlcmFsOwor6ICQ5YqbID4gZW5kdXJhbmNlOwor5piO56K6ID4gY2xlYXJcLWN1dDsKK+S4jeaDnCA+IG5vdFwtc3RpbnQ7Civmg6HlpKIgPiBuaWdodG1hcmU7Civljp/nkIYgPiBwcmluY2lwbGU7CivkuLvlqaYgPiBob3VzZXdpZmU7CivnjqnlhbcgPiBwbGF5dGhpbmc7Civpm7voqbEgPiB0ZWxlcGhvbmU7Civmlr3ogqUgPiBmZXJ0aWxpemU7CivmlLnpgKAgPiB0b1wtY2hhbmdlOwor54uA5rOBID4gY29uZGl0aW9uOwor5LiN5bmzID4gaW5qdXN0aWNlOwor6YCZ6bq8ID4gc29cLVwobXVjaFwpOwor5LiN5beyID4gZW5kbGVzc2x5Owor6Zuc6LKoID4gZ3JvY2VyaWVzOwor5pyo5YygID4gY2FycGVudGVyOwor6KmV6YG4ID4gdG9cLWNob29zZTsKK+mGrOayuSA+IHNveVwtc2F1Y2U7Civlu7rpgKAgPiBjb25zdHJ1Y3Q7Civop7jprJogPiB0ZW50YWNsZXM7Civmk6bpn7MgPiBmcmljYXRpdmU7CivlkajlnI0gPiBlbmNvbXBhc3M7CivkuI3lsI0gPiBpbmNvcnJlY3Q7Civlv4Pnm64gPiBtZW50YWxpdHk7Civlj6/mlawgPiB2ZW5lcmFibGU7Civlj5fmoLwgPiBvYmplY3RpdmU7CivlpKfojbMgPiBzb3lhXC1iZWFuOwor8KKlniA+IHNhbWVcLWFzXC3lv6E7CivlpZHntIQgPiBhZ3JlZW1lbnQ7CivpsbfprZogPiBhbGxpZ2F0b3I7Civms6LluYUgPiBhbXBsaXR1ZGU7CivmlLnoroogPiB0b1wtY2hhbmdlOwor5bqt6ZmiID4gY291cnR5YXJkOwor56au5YSAID4gZXRpcXVldHRlOwor5Y+z5omLID4gcmlnaHRoYW5kOwor5Ym16YCgID4gdG9cLWNyZWF0ZTsKK+a1geWFpSA+IGZsb3dcLWludG87Civms6jlsIQgPiBpbmplY3Rpb247Civnoaznm6QgPiBoYXJkXC1kaXNrOwor5Yqf6KqyID4gY2xhc3N3b3JrOwor6YCx6ZW3ID4gcGVyaW1ldGVyOwor5pyI5YWJID4gbW9vbmxpZ2h0Owor5aSx57ixID4gZGlzYXBwZWFyOwor5ama5ae7ID4gbWF0cmltb255Owor5Y+j5omNID4gZWxvcXVlbmNlOwor5LiN5ZyoID4gbm90XC1iZVwtaW47Civpnq3mr5sgPiBmbGFnZWxsdW07CivmkqvppIogPiB0b1wtZm9zdGVyOwor5rS+5Lu7ID4gc2V0XC1hcGFydDsKK+WIqumZpCA+IHRvXC1kZWxldGU7CivpgaDotrMgPiBleGN1cnNpb247CivnhKHpmZAgPiB1bmxpbWl0ZWQ7CivpoJHlvLcgPiB0ZW5hY2lvdXM7CivnhKHpl5wgPiB1bnJlbGF0ZWQ7CivokrjnmbwgPiBldmFwb3JhdGU7Civlj6TmgKogPiBlY2NlbnRyaWM7CivlvpfnlbYgPiBleHBlZGllbnQ7CivmsrnluIMgPiB0YXJwYXVsaW47CivkuIvllIcgPiBsb3dlclwtbGlwOwor576p5YuZID4gdm9sdW50ZWVyOwor5LiK5ZSHID4gdXBwZXJcLWxpcDsKK+mggeW/gyA+IHR5cGVcLXBhZ2U7CivkuI3lkJ0gPiBub3RcLXN0aW50Owor5LiN5ZCMID4gZGlmZmVyZW50Owor5rGh5p+TID4gcG9sbHV0aW9uOwor5YmN6YCUID4gcHJvc3BlY3RzOwor54aK6JyCID4gYnVtYmxlYmVlOwor57i957WQID4gc3VtbWFyaXplOwor576O5ZGzID4gZGVsaWNpb3VzOwor5ZC45Y+WID4gdG9cLWFic29yYjsKK+S4i+WNiCA+IGFmdGVybm9vbjsKK+mAsemCiiA+IHBlcmlwaGVyeTsKK+W5tOmZkCA+IGFnZVwtbGltaXQ7CivkuIvliJcgPiBmb2xsb3dpbmc7CivkuI3lh4YgPiBub3RcLWFsbG93Owor6aGM5ZCNID4gYXV0b2dyYXBoOwor5aSa56uvID4gbXVsdGlwb3J0Owor5pWI6IO9ID4gZWZmaWNpZW50Owor5LiN5YGcID4gaW5jZXNzYW50Owor5aSn56CyID4gYXJ0aWxsZXJ5Owor5LiN5YC8ID4gbm90XC13b3J0aDsKK+aymeWyqSA+IHNhbmRzdG9uZTsKK+azouWPiiA+IHNwcmVhZFwtdG87Civlvq7ms6IgPiBtaWNyb3dhdmU7CivkuI3kvJEgPiBlbmRsZXNzbHk7CivnhKHovpwgPiBpbm5vY2VuY2U7CivmrKHopoEgPiBzZWNvbmRhcnk7CivkuI3kuoggPiBub3RcLWdyYW50Owor5Y675bm0ID4gbGFzdFwteWVhcjsKK+S4jeS6hiA+IHVuYWJsZVwtdG87CivpoJjlnJ8gPiB0ZXJyaXRvcnk7Civpn4zmgKcgPiB0b3VnaG5lc3M7CivnpL7ljYAgPiBjb21tdW5pdHk7CivniYjmrIogPiBjb3B5cmlnaHQ7CivlkJHljZcgPiBzb3V0aHdhcmQ7CivmsJHmrYwgPiBmb2xrXC1zb25nOwor5Y2z5pmCID4gaW1tZWRpYXRlOwor5pKt6YCBID4gYnJvYWRjYXN0Owor5bm46YGLID4gZm9ydHVuYXRlOwor576O5LitID4gdXNhXC1jaGluYTsKK+maleiQvSA+IGZhbGxcLWRvd247Civnhp/nt7QgPiBwcmFjdGljZWQ7CivmlLnnt6ggPiB0b1wtYWRhcHQ7Civno4HmgKcgPiBtYWduZXRpYzsKK+Wjk+e3iiA+IGNvbXByZXNzOwor6Yar5a24ID4gbWVkaWNpbmU7CivlkJ7kvbUgPiB0b1wtYW5uZXg7CivpnYjmtLsgPiBmbGV4aWJsZTsKK+aWh+eNuyA+IGRvY3VtZW50Owor5aSW55SoID4gZXh0ZXJuYWw7Civpgornt5ogPiBzaWRlbGluZTsKK+ato+e1sSA+IG9ydGhvZG94Owor5bu257qMID4gY29udGludWU7CivpoLvku40gPiBmcmVxdWVudDsKK+e3r+e3miA+IGxhdGl0dWRlOwor54Sh6KqkID4gdmVyaWZpZWQ7Civml6Xmm4YgPiBjYWxlbmRhcjsKK+WJneiQvSA+IHBlZWxcLW9mZjsKK+mgkOWNnCA+IGZvcmV0ZWxsOwor5bm76LGhID4gaWxsdXNpb247CivorLnmhY4gPiBjYXV0aW91czsKK+eJueaApyA+IHByb3BlcnR5Owor6Iy26aSoID4gdGVhaG91c2U7Civps6XnsaAgPiBiaXJkY2FnZTsKK+W+ruaYjiA+IHR3aWxpZ2h0Owor5bu656+JID4gYnVpbGRpbmc7Civlj4vlloQgPiBmcmllbmRseTsKK+W7uueriyA+IGNyZWF0aW9uOwor6aCG5YipID4gc21vb3RobHk7Civlv4PmiYsgPiBuZXdcLWhhbmQ7CivlhrDpmpkgPiBjcmV2YXNzZTsKK+mcuOasiiA+IGhlZ2Vtb255Owor5Y2x5oClID4gY3JpdGljYWw7CivpmpnnuKsgPiBhcGVydHVyZTsKK+imqui6qyA+IHBlcnNvbmFsOwor56K65a6aID4gZGVmaW5pdGU7CivntYLouqsgPiBsaWZlbG9uZzsKK+iomOiAhSA+IHJlcG9ydGVyOwor6KaP6YG/ID4gdG9cLWV2YWRlOwor54mn5birID4gY2hhcGxhaW47CivmlLbnm4ogPiBlYXJuaW5nczsKK+WFt+mrlCA+IGNvbmNyZXRlOwor5bmz6KGMID4gcGFyYWxsZWw7Civlv6Dlr6YgPiBmYWl0aGZ1bDsKK+atpeeZvCA+IGZvb3R3b3JrOwor5YiG6KOCID4gc3BsaXRcLXVwOwor5paw5pu4ID4gbmV3XC1ib29rOwor5Y+j5LqkID4gb3JhbFwtc2V4Owor5Ym156uLID4gdG9cLWZvdW5kOwor54Wk566xID4gY29hbFwtYm94Owor57y65LmPID4gc2hvcnRhZ2U7Civml6XlvowgPiBzb21ldGltZTsKK+mCiueVjCA+IGJvdW5kYXJ5Owor54G96ZujID4gZGlzYXN0ZXI7CivlvrnlupUgPiB0aG9yb3VnaDsKK+mxieijmSA+IGNhbGlwYXNoOwor6K2m5Y+lID4gYXBob3Jpc207Civml6nlt7IgPiBsb25nXC1hZ287Civpm5bnhLYgPiBhbHRob3VnaDsKK+egtOabiSA+IGRheWJyZWFrOwor6Zuo5ru0ID4gcmFpbmRyb3A7CivmmI7lpKkgPiB0b21vcnJvdzsKK+WmluWtvSA+IGV2aWxkb2VyOwor6Zu75rCjID4gZWxlY3RyaWM7CivphazloLEgPiB0b1wtcmVwYXk7CivpgbrnlKIgPiBoZXJpdGFnZTsKK+ehrOW6piA+IGhhcmRuZXNzOwor54Sh6IGKID4gbm9uc2Vuc2U7CivmqavpgY4gPiB0cmF2ZXJzZTsKK+W+geaIsCA+IGNhbXBhaWduOwor6Kqy5pysID4gdGV4dGJvb2s7Civlh4vorJ0gPiBsYW5ndWlzaDsKK+ioiOeulyA+IHRvXC1jb3VudDsKK+mWi+mZpCA+IHRvXC1leHBlbDsKK+mBqeeVtiA+IHN1aXRhYmxlOwor57qW5benID4gZGVsaWNhdGU7CivlubPoh7ogPiBwbGF0Zm9ybTsKK+Wkp+aWuSA+IGdlbmVyb3VzOwor54Sh57irID4gc2VhbWxlc3M7CivlhqDou40gPiBjaGFtcGlvbjsKK+WHhuiosSA+IHRvXC1hbGxvdzsKK+mEsOWxhSA+IG5laWdoYm9yOwor6Zu75qKvID4gZWxldmF0b3I7Civok4vlsaQgPiBjYXBcLXJvY2s7CivpnaLlsI0gPiBjb25mcm9udDsKK+eEoee3miA+IHdpcmVsZXNzOwor56K65YiHID4gZGVmaW5pdGU7CivpgJrntIUgPiB2ZXJ5XC1yZWQ7CivljIXmioQgPiBvdXRmbGFuazsKK+i+qOiqjSA+IGlkZW50aWZ5Owor5Y6f5L6GID4gb3JpZ2luYWw7CivlpJrmlbggPiBtYWpvcml0eTsKK+eJqeWTgSA+IGFydGljbGVzOwor5pS/5rK7ID4gcG9saXRpY3M7CivljYrlpJwgPiBtaWRuaWdodDsKK+WNiOWknCA+IG1pZG5pZ2h0Owor5paw5bm0ID4gbmV3XC15ZWFyOwor5peF5a6iID4gdHJhdmVsZXI7CivpgLznnJ8gPiBsaWZlbGlrZTsKK+atpeazlSA+IGZvb3R3b3JrOwor5YWs6YeQID4gZGVjaWdyYW07CivmrrrmiK4gPiBtYXNzYWNyZTsKK+WKm+awoyA+IHN0cmVuZ3RoOwor5YWn6YOoID4gaW50ZXJpb3I7Civopobok4sgPiB0b1wtY292ZXI7CivnuaHluLcgPiB0YXBlc3RyeTsKK+WkquW/mSA+IHRvb1wtYnVzeTsKK+edoeecoCA+IHNsZWVwaW5nOwor6KOd6aO+ID4gZGVjb3JhdGU7CivljYHlm5sgPiBmb3VydGVlbjsKK+W5s+etiSA+IGVxdWFsaXR5Owor55m96YeRID4gcGxhdGludW07CivljIXlsaQgPiBjbGFkZGluZzsKK+i9iemAgSA+IHRyYW5zZmVyOwor5YaN6KaLID4gZ29vZFwtYnllOwor5aSi5bm7ID4gaWxsdXNpb247CivpgJXnm7QgPiBzdHJhaWdodDsKK+WNseS6oSA+IGF0XC1zdGFrZTsKK+iNieiNiSA+IGNhcmVsZXNzOwor5ben6KiIID4gbWFuZXV2ZXI7CivokZfmiYsgPiBjb21tZW5jZTsKK+aWmeWtkCA+IG1hdGVyaWFsOwor55uy6IW4ID4gYXBwZW5kaXg7CivmlK/mn7EgPiBtYWluc3RheTsKK+W9ouWuuSA+IGRlc2NyaWJlOwor54Sh55aRID4gbm9cLWRvdWJ0Owor5by35oKNID4gdmFsbGlhbnQ7Civnspfph44gPiBpbnNvbGVudDsKK+iii+m8oCA+IGthbmdhcm9vOwor5aaW5Lq6ID4gbWFnaWNpYW47Civou5/pq5QgPiBzb2Z0d2FyZTsKK+aWsOWeiyA+IG5ld1wtdHlwZTsKK+WfueiCsiA+IHRvXC10cmFpbjsKK+eFpOayuSA+IGtlcm9zZW5lOwor5Yqg5pmCID4gb3ZlcnRpbWU7CivlhYnovJ0gPiByYWRpYW5jZTsKK+W+qeWFgyA+IHJlY292ZXJ5Owor5by35bqmID4gc3RyZW5ndGg7CivljYHlhasgPiBlaWdodGVlbjsKK+Wls+WFkiA+IGRhdWdodGVyOwor5aSa5bCRID4gaG93XC1tdWNoOwor5Y2B5YWLID4gZGVjYWdyYW07CivlnLDpm7cgPiBsYW5kbWluZTsKK+WmguS7iiA+IG5vd2FkYXlzOwor6YKq5oOhID4gc2luaXN0ZXI7Civop4DnnIsgPiB0b1wtd2F0Y2g7CivlvpfliIYgPiB0b1wtc2NvcmU7CivljIXlnI0gPiBzdXJyb3VuZDsKK+avlOWWuyA+IG1ldGFwaG9yOwor6KaP56+EID4gc3RhbmRhcmQ7Civou4Dpq5QgPiB0aGVcLWJvZHk7Civnoazku7YgPiBoYXJkd2FyZTsKK+WkqeWggiA+IHBhcmFkaXNlOwor5Y2B5LmdID4gbmluZXRlZW47CivlhYnorZwgPiBzcGVjdHJ1bTsKK+ijnOmBuiA+IGFkZGVuZHVtOwor6YGg5p2xID4gZmFyXC1lYXN0Owor5Y2B5LiJID4gdGhpcnRlZW47CivmqZ/og70gPiBmdW5jdGlvbjsKK+iSmeWPpCA+IG1vbmdvbGlhOwor6YGg5pmvID4gcHJvc3BlY3Q7CivntJDntIQgPiBuZXdcLXlvcms7CivmlZnlsI4gPiBpbnN0cnVjdDsKK+aPkOitsCA+IHByb3Bvc2FsOwor5YSq6LaKID4gc3VwZXJpb3I7CivpgLLmraUgPiBwcm9ncmVzczsKK+mBruaOqSA+IHRvXC1jb3ZlcjsKK+mbu+WgsSA+IHRlbGVncmFtOwor5pG555WrID4gZGVzY3JpYmU7Civou4rplpMgPiB3b3Jrc2hvcDsKK+W+gOS+hiA+IGRlYWxpbmdzOwor6Kq/5YuVID4gdHJhbnNmZXI7CivlvJXlsI4gPiB0b1wtZ3VpZGU7Civoo53osqggPiBzaGlwcGluZzsKK+WKm+W6piA+IGR5bmFtaXNtOwor6YGO5pa8ID4gdG9vXC1tdWNoOwor55uj56aBID4gaW1wcmlzb247CivlhrDnqpYgPiBpY2Vob3VzZTsKK+WggueahyA+IGltcG9zaW5nOwor5bSH6auYID4gbWFqZXN0aWM7CivnnIHnlaUgPiBvbWlzc2lvbjsKK+avjeS/giA+IG1hdGVybmFsOwor5o6h6LK3ID4gcHVyY2hhc2U7CivovJXoppYgPiBjb250ZW1wdDsKK+eyvuiHtCA+IGRlbGljYWN5Owor6YGy5bu2ID4gdG9cLWRlbGF5Owor5pSc5bi2ID4gdG9cLWNhcnJ5Owor5bu25bGVID4gdG9cLXNjYWxlOwor6L6y55SwID4gZmFybWxhbmQ7Civpg6jkvY0gPiBwb3NpdGlvbjsKK+WJteW7uiA+IHRvXC1mb3VuZDsKK+WFp+e9riA+IGludGVybmFsOwor6ZmQ5pyfID4gZGVhZGxpbmU7Civnt4rlvLUgPiBjcml0aWNhbDsKK+iomOaGtiA+IG1lbW9yaWVzOwor6YG35bCxID4gdG9cLXlpZWxkOwor57K+576OID4gZGVsaWNhdGU7CivlvLfli4EgPiBwb3dlcmZ1bDsKK+aWh+S7tiA+IGRvY3VtZW50Owor5q665Lq6ID4gaG9taWNpZGU7CivpgorlooMgPiBmcm9udGllcjsKK+WkluS+hiA+IGV4dGVybmFsOwor5Ymb5oCnID4gcmlnaWRpdHk7Civli4Pli4MgPiB0aHJpdmluZzsKK+mBqeWunCA+IHN1aXRhYmxlOwor5pOB5pOgID4gdG9cLWNyb3dkOwor5o6I6KqyID4gdG9cLXRlYWNoOwor6Kej5pWjID4gZGlzc29sdmU7CivpmbDmgKcgPiBmZW1pbmluZTsKK+WLleS9nCA+IG1vdmVtZW50Owor5pWm5L+DID4gdG9cLXByZXNzOwor6ZuH5ZOhID4gZW1wbG95ZWU7CivngInol6UgPiBsYXhhdGl2ZTsKK+aPm+e9riA+IGRpc3BsYWNlOwor6Zuo5YKYID4gdW1icmVsbGE7CivlnJborIAgPiBjb25zcGlyZTsKK+iRo+S6iyA+IGRpcmVjdG9yOwor5YuV5Lq6ID4gdG91Y2hpbmc7CivpmLvmk4ogPiB0b1wtY2hlY2s7Civoo5zoirEgPiBhcHBsaXF1ZTsKK+Whl+aKuSA+IHRvXC1zbWVhcjsKK+mqqOmqvCA+IHNrZWxldG9uOwor6KOd6Ii5ID4gc2hpcG1lbnQ7CivmrLrlo5MgPiB0b1wtYnVsbHk7CivojZLmtrwgPiBkZXNvbGF0ZTsKK+WHueadvyA+IGludGFnbGlvOwor5Yqj5YuiID4gaW5mZXJpb3I7CivliIbmlbggPiBmcmFjdGlvbjsKK+ebjueEtiA+IGFidW5kYW50Owor5aOT5YqbID4gcHJlc3N1cmU7CivpgKPlv5kgPiBwcm9tcHRseTsKK+mCo+WAiyA+IHRoYXRcLW9uZTsKK+eEoeaDhSA+IHBpdGlsZXNzOwor5pOm5a+rID4gdG9cLWVyYXNlOwor5aOT5Yi2ID4gc3VwcHJlc3M7Civnsr7norogPiBhY2N1cmF0ZTsKK+WEque+jiA+IGdyYWNlZnVsOwor6Iiq6YGLID4gc2hpcHBpbmc7Civlh73mlbggPiBmdW5jdGlvbjsKK+e2k+W4uCA+IGV2ZXJ5ZGF5Owor5q2l5YW1ID4gaW5mYW50cnk7CivlubPmiL8gPiBidW5nYWxvdzsKK+WGsOa2vCA+IGljZVwtY29sZDsKK+W5u+aDsyA+IGRlbHVzaW9uOwor5bqP5bmVID4gcHJvbG9ndWU7CivliLvlr6sgPiBpbnNjcmliZTsKK+Wik+WcsCA+IGNlbWV0ZXJ5Owor6YG/5YWNID4gdG9cLWF2ZXJ0Owor6KaP5qC8ID4gc3RhbmRhcmQ7CivloLTmiYAgPiBsb2NhdGlvbjsKK+i/veaCvCA+IG1vdXJuaW5nOwor6ZuH5Li7ID4gZW1wbG95ZXI7Civmj63nmbwgPiBkaXNjbG9zZTsKK+ioseWPryA+IHRvXC1hbGxvdzsKK+WCs+ioiiA+IHN1YnBvZW5hOwor6KmV5LywID4gZXZhbHVhdGU7Civmi5bpnosgPiBzbGlwcGVyczsKK+WBvemAoCA+IHRvXC1mb3JnZTsKK+eBq+eJhiA+IGZpcmV3YWxsOwor5Ye25omLID4gbXVyZGVyZXI7CivnhKHlrrMgPiBoYXJtbGVzczsKK+i7n+iGjyA+IG9pbnRtZW50Owor5o6M6IGyID4gYXBwbGF1c2U7Civooajop4AgPiBhcHBhcmVudDsKK+Wfi+aykiA+IG9ibGl2aW9uOwor5bmz5bi4ID4gb3JkaW5hcnk7Civmi5TpmaQgPiBwdWxsXC1vdXQ7Civlop7liqAgPiB0b1wtcmFpc2U7Civou4zojIMgPiBzdGFuZGFyZDsKK+aRqeaTpiA+IGZyaWN0aW9uOwor6Ka65b6XID4gdG9cLXRoaW5rOwor6auY6LK0ID4gZ3JhbmRldXI7CivliarliIAgPiBzY2lzc29yczsKK+WFheeVtiA+IHNlcnZlXC1hczsKK+eCuuaZgiA+IHRpbWV3aXNlOwor6YGU5YiwID4gdG9cLXJlYWNoOwor6KW/5pa5ID4gdGhlXC13ZXN0Owor6YGL5YuVID4gbW92ZW1lbnQ7CivmrLrkvq4gPiB0b1wtYnVsbHk7CivpgJrloLEgPiBidWxsZXRpbjsKK+aSpeWtkCA+IHBsZWN0cnVtOwor5bqK5aKKID4gbWF0dHJlc3M7Civmipfpq5QgPiBhbnRpYm9keTsKK+iHqOi/kSA+IGNsb3NlXC10bzsKK+iOq+WkpyA+IGdyZWF0ZXN0Owor57SE5p2fID4gcmVzdHJpY3Q7CivliIflr6YgPiBmZWFzaWJsZTsKK+eVjOmZkCA+IGJvdW5kYXJ5Owor6Zm95YWJID4gc3Vuc2hpbmU7CivliIblrZAgPiBtb2xlY3VsZTsKK+ebuOaHiSA+IHJlbGV2YW50Owor55y+5aSaID4gbnVtZXJvdXM7CivpmLvloZ4gPiB0b1wtYmxvY2s7CivntZXlsI0gPiBhYnNvbHV0ZTsKK+WIhuWoqSA+IGRlbGl2ZXJ5Owor566h6YGTID4gcGlwZWxpbmU7CivpgYrkvLQgPiBwbGF5bWF0ZTsKK+W3pealrSA+IGluZHVzdHJ5Owor5Yaw5o6SID4gaWNlXC1yYWZ0Owor6YCy5YWlID4gdG9cLWVudGVyOwor6Lev6Z2iID4gcGF2ZW1lbnQ7Civnm7TlvpEgPiBkaWFtZXRlcjsKK+eEoeWQjSA+IG5hbWVsZXNzOwor57WQ5amaID4gdG9cLW1hcnJ5Owor5aC15aGeID4gYmxvY2thZ2U7CivmkqTlm54gPiB3aXRoZHJhdzsKK+edvuS4uCA+IHRlc3RpY2xlOwor57aT5YW4ID4gY2xhc3NpY3M7CivpqLDpqLAgPiBzdGVhbWluZzsKK+mAvOS6uiA+IHByZXNzaW5nOwor6Lyd54WMID4gc3BsZW5kaWQ7CivnhKHliqkgPiBoZWxwbGVzczsKK+aOoeeUqCA+IHRvXC1hZG9wdDsKK+W3suaVhSA+IHRoZVwtbGF0ZTsKK+W6j+WIlyA+IHNlcXVlbmNlOwor55m85rGXID4gdG9cLXN3ZWF0Owor5ZyL56uLID4gbmF0aW9uYWw7CivnrrToqIAgPiBwcm92ZXJiczsKK+ijnOeIkCA+IGZldHRsaW5nOwor6Led6ZuiID4gZGlzdGFuY2U7Civoh6roo70gPiBob21lbWFkZTsKK+mYu+WKmyA+IG9ic3RhY2xlOwor55if55arID4gZXBpZGVtaWM7CivooJXooJUgPiB3aWdnbGluZzsKK+mAgeWIpSA+IGZhcmV3ZWxsOwor54Sh5Lq6ID4gdW5tYW5uZWQ7CivlhazmlqQgPiBraWxvZ3JhbTsKK+WFrOaWhyA+IGRvY3VtZW50Owor5oq96LGhID4gYWJzdHJhY3Q7Civlh7rlj6MgPiB0b1wtc3BlYWs7CivopqrlloQgPiBnb29kd2lsbDsKK+iIiOiHtCA+IGludGVyZXN0Owor6YCU5LitID4gZW5cLXJvdXRlOwor6ZaT5o6lID4gaW5kaXJlY3Q7CivpkLXot68gPiByYWlscm9hZDsKK+aQrOW8hCA+IG1vdmVcLXN0aDsKK+aomeacrCA+IHNwZWNpbWVuOwor6YCA5L2NID4gYWJkaWNhdGU7CivntYTlkIggPiBhc3NlbWJsZTsKK+WhjOS4iyA+IGNvbGxhcHNlOwor6YCD5LqhID4gZnVnaXRpdmU7CivmiLDprKUgPiB0b1wtZmlnaHQ7CivntbHkuIAgPiB0b1wtdW5pZnk7CivliJHkuosgPiBjcmltaW5hbDsKK+aPkOahiCA+IHByb3Bvc2FsOwor6KGd56qBID4gY29uZmxpY3Q7Civov73kuIogPiBvdmVydGFrZTsKK+iIquepuiA+IGF2aWF0aW9uOwor5L+u6L6tID4gcmhldG9yaWM7Civmv77mtrIgPiBmaWx0cmF0ZTsKK+WwjemdoiA+IG9wcG9zaXRlOwor5Ye95Lu2ID4gbGV0dGVyZXM7Civnm7jlj40gPiBvcHBvc2l0ZTsKK+aMgee6jCA+IGNvbnRpbnVlOwor6aa06bm/ID4gcmVpbmRlZXI7CivmiYvpkLIgPiBicmFjZWxldDsKK+iEq+mboiA+IHNlcGFyYXRlOwor6ama6KidID4gY29uZm91bmQ7CivohIrpqqggPiBiYWNrYm9uZTsKK+aNleeNsiA+IHRvXC1jYXRjaDsKK+mnlemnmyA+IHRvXC1kcml2ZTsKK+aOoeaooyA+IHNhbXBsaW5nOwor57SU5ZOBID4gc3Rlcmxpbmc7CivploDlvpIgPiBkaXNjaXBsZTsKK+i/keS+hiA+IHJlY2VudGx5Owor5a+66ZmiID4gY2xvaXN0ZXI7CivnrZToqbEgPiB0b1wtcmVwbHk7Civmpa3nlYwgPiBpbmR1c3RyeTsKK+eBq+WxsSA+IHZvbGNhbmljOwor5YW25a+mID4gYWN0dWFsbHk7CivnlJ/oqZ4gPiBuZXdcLXdvcmQ7Civov5HkuY4gPiBjbG9zZVwtdG87CivmorXoqp4gPiBzYW5za3JpdDsKK+S+v+mBkyA+IHNob3J0Y3V0Owor6KSy5a2QID4gdHJvdXNlcnM7Civlr6fpnZwgPiB0cmFucXVpbDsKK+ecgeS7vSA+IHByb3ZpbmNlOwor5bCB6Y6WID4gYmxvY2thZGU7Civkv6/oppYgPiBvdmVybG9vazsKK+W0qea9sCA+IGNvbGxhcHNlOwor6LyJ5pScID4gdG9cLWNhcnJ5Owor5r+V5rCjID4gbW9pc3R1cmU7Civnsr7lr4YgPiBhY2N1cmFjeTsKK+iMtuWMmSA+IHRlYXNwb29uOwor5ZyL5rCRID4gbmF0aW9uYWw7CivlhYTlvJ8gPiBicm90aGVyczsKK+agoemplyA+IHRvXC1jaGVjazsKK+eyl+W/gyA+IGNhcmVsZXNzOwor5Yaw5Ya3ID4gaWNlXC1jb2xkOwor6IiI55ubID4gZmxvdXJpc2g7CivlgJjoi6UgPiBwcm92aWRlZDsKK+mXnOS/giA+IHJlbGF0aW9uOwor55m85bCEID4gdG9cLXNob290Owor5omL6LazID4gbW92ZW1lbnQ7CivmqZ/li5UgPiBmbGV4aWJsZTsKK+aOoeaOmCA+IGV4Y2F2YXRlOwor6LaK6YGOID4gdG9cLWNyb3NzOwor6KOB5pKkID4gZGlzc29sdmU7CivlhbXlmaggPiB3ZWFwb25yeTsKK+aLlOevgCA+IGpvaW50aW5nOwor5ryU57+SID4gZXhlcmNpc2U7CivntIrkuoIgPiBkaXNvcmRlcjsKK+i3s+iIniA+IHRvXC1kYW5jZTsKK+evhOeWhyA+IGNhdGVnb3J5Owor5YW15ZOhID4gc29sZGllcnM7Civmurbop6MgPiBkaXNzb2x2ZTsKK+aOmeaJjiA+IHN0cnVnZ2xlOwor5ruy6ImyID4gYmxlZWRpbmc7Civom4vpu4MgPiBlZ2dcLXlvbGs7CivlhbHlkowgPiByZXB1YmxpYzsKK+i7jeaWuSA+IG1pbGl0YXJ5Owor5qeL5oOzID4gY29uY2VpdmU7Civog4zpnaIgPiB0aGVcLWJhY2s7CivovJTlsI4gPiB0b1wtY29hY2g7Civlr7bosrQgPiB2YWx1YWJsZTsKK+WFpeWPoyA+IGVudHJhbmNlOwor6amV57ixID4gYXJyb2dhbnQ7CivplovlibUgPiBpbml0aWF0ZTsKK+S+teidlSA+IHRvXC1lcm9kZTsKK+WEgOW8jyA+IGNlcmVtb255Owor5omB6J+yID4gZmxhdHdvcm07CivlhbzkvbUgPiB0b1wtYW5uZXg7CivmqILlnJIgPiBwYXJhZGlzZTsKK+WuuemHjyA+IGNhcGFjaXR5Owor5o+P5ZyWID4gdG9cLXRyYWNlOwor6LWk6LazID4gYmFyZWZvb3Q7CivlsYHogqEgPiBidXR0b2NrczsKK+eZvOWLlSA+IHRvXC1zdGFydDsKK+ijveWTgSA+IHByb2R1Y3RzOwor5YWx5LqrID4gdG9cLXNoYXJlOwor6Iux5L+KID4gaGFuZHNvbWU7CivmjbflvpEgPiBzaG9ydGN1dDsKK+ihjOalrSA+IGluZHVzdHJ5Owor6aas6LuKID4gY2FycmlhZ2U7CivlhazkuLsgPiBwcmluY2VzczsKK+aPkOWQjSA+IG5vbWluYXRlOwor5Zub5pa5ID4gZm91clwtd2F5Owor57KX5Y6yID4gYWJyYXNpdmU7Civou4rlu4IgPiBjYXJyaWFnZTsKK+iHquayuyA+IGF1dG9ub215Owor6auY5p62ID4gb3ZlcmhlYWQ7Civlm7Dmg5EgPiBiZXdpbGRlcjsKK+eskeiBsiA+IGxhdWdodGVyOwor5p2+6bygID4gc3F1aXJyZWw7CivlhKrli6IgPiBzdXBlcmlvcjsKK+ewv+WtkCA+IG5vdGVib29rOwor5YKy5oWiID4gYXJyb2dhbnQ7CivlhYjku6QgPiBzaGlsbGluZzsKK+a4oOmBkyA+IGNoYW5uZWxzOwor5qCh6KiCID4gcmV2aXNpb247Civmo5LnkIMgPiBiYXNlYmFsbDsKK+WEquWFiCA+IHByaW9yaXR5Owor5Zm05rOJID4gZm91bnRhaW47Civou43lo6sgPiBzZXJnZWFudDsKK+S+huiHqCA+IGFwcHJvYWNoOwor6KGj5buaID4gd2FyZHJvYmU7Civku73ph48gPiBxdWFudGl0eTsKK+WDseWToSA+IGVtcGxveWVlOwor5oeJ6KmyID4gb3VnaHRcLXRvOwor5o6h5YWJID4gbGlnaHRpbmc7CivogZrpm4YgPiBhc3NlbWJsZTsKK+aMieaNuiA+IHJlc3RyYWluOwor6KOB5YikID4ganVkZ21lbnQ7CivkurrpoZ4gPiBodW1hbml0eTsKK+S8sOioiCA+IGVzdGltYXRlOwor5Z2Q5LiLID4gc2l0XC1kb3duOwor5a6J6KyQID4gdHJhbnF1aWw7Civlm57lrrYgPiBob21ld2FyZDsKK+S9v+iAhSA+IGVtaXNzYXJ5Owor5bSp5aGMID4gY29sbGFwc2U7CivmiZPnoLQgPiB0b1wtYnJlYWs7CivlsI3nqLEgPiBzeW1tZXRyeTsKK+WBh+acnyA+IHZhY2F0aW9uOwor6aO86aSKID4gdG9cLXJhaXNlOwor6KGj5a2QID4gY292ZXJpbmc7Civos7zosrcgPiBwdXJjaGFzZTsKK+i7vOS6iyA+IGFuZWNkb3RlOwor56iA6aOvID4gcG9ycmlkZ2U7CivmirHmrYkgPiBiZVwtc29ycnk7CivmvILmta4gPiB0b1wtZmxvYXQ7CivmpbXlpb0gPiBmYWJ1bG91czsKK+alteWkpyA+IGVub3Jtb3VzOwor55WM5qiZID4gbGFuZG1hcms7CivlnLDkvY0gPiBwb3NpdGlvbjsKK+eosemHjSA+IHRvXC13ZWlnaDsKK+evgOaFtiA+IGZlc3RpdmFsOwor6KC75bmyID4gcmVja2xlc3M7CivprKfljYAgPiBkb3dudG93bjsKK+a6lueiuiA+IGFjY3VyYXRlOwor5L6155WlID4gaW52YXNpb247CivkvbXntJcgPiBkb3VibGluZzsKK+eXheWkqyA+IHNpY2tcLW1hbjsKK+aOiOS6iCA+IHRvXC1hd2FyZDsKK+WtuOihkyA+IGxlYXJuaW5nOwor5ZyL5YWnID4gZG9tZXN0aWM7CivosrTph40gPiBwcmVjaW91czsKK+WxoOauuiA+IG1hc3NhY3JlOwor5ouU5o6JID4gdG9cLXBsdWNrOwor57Ch5YyWID4gc2ltcGxpZnk7CivpqZXmqasgPiBhcnJvZ2FudDsKK+iyt+mAsiA+IHB1cmNoYXNlOwor6LK36YCaID4gdG9cLWJyaWJlOwor5oWO6YeNID4gY2F1dGlvdXM7Civmu5HmupwgPiBzbGlwcGVyeTsKK+aMh+WwjiA+IHRvXC1ndWlkZTsKK+S9jee9riA+IHBvc2l0aW9uOwor56+h5aWqID4gdG9cLXVzdXJwOwor6Ieo5bqKID4gY2xpbmljYWw7CivmoL3nqK4gPiB0b1wtcGxhbnQ7CivmiLDnlaUgPiBzdHJhdGVneTsKK+WckuS4gSA+IGdhcmRlbmVyOwor5pys6auUID4gbm91bWVub247CivpqqjlubkgPiBiYWNrYm9uZTsKK+S6uumBkyA+IGh1bWFuaXR5Owor6Lqr5YiGID4gcG9zaXRpb247CivkurrpgKAgPiBtYW5cLW1hZGU7CivnlKLmpa0gPiBpbmR1c3RyeTsKK+WxheawkSA+IHJlc2lkZW50Owor6IWz5q2lID4gZm9vdHN0ZXA7Civmi7zlrZcgPiBzcGVsbGluZzsKK+adsemDqCA+IHRoZVwtZWFzdDsKK+mrmOWcsCA+IGhpZ2hsYW5kOwor5Zu65Lu2ID4gZmlybXdhcmU7CivkurrouqsgPiBwZXJzb25hbDsKK+mRsuW1jCA+IHRvXC1pbmxheTsKK+alreWLmSA+IGJ1c2luZXNzOwor5a+f55yLID4gdG9cLXdhdGNoOwor5YCN5pW4ID4gbXVsdGlwbGU7CivlsI3nhacgPiBjb250cmFzdDsKK+aKteaKvCA+IG1vcnRnYWdlOwor6IKp6IaAID4gc2hvdWxkZXI7CivnrrHlrZAgPiBzdWl0Y2FzZTsKK+i6q+S7vSA+IGlkZW50aXR5Owor5L2O562JID4gaW5mZXJpb3I7CivlsLHmraQgPiBhbmRcLXRodXM7CivnrYbmnrYgPiBwZW5cLXJhY2s7Civlr7bniakgPiB0cmVhc3VyZTsKK+eUn+aXpSA+IGJpcnRoZGF5Owor6ZCY5pO6ID4gcGVuZHVsdW07CivpqYXmlaMgPiBkaXNwZXJzZTsKK+aKseaAqCA+IGNvbXBsYWluOwor562J5pa8ID4gZXF1YWxcLXRvOwor5a2457+SID4gdG9cLWxlYXJuOwor5oqY5omjID4gZGlzY291bnQ7Civmh7jnlpEgPiBzdXNwZW5zZTsKK+ePjeiytCA+IHByZWNpb3VzOwor5oe355aRID4gdG9cLWRvdWJ0Owor55W25aSpID4gdGhhdFwtZGF5Owor6Y2155ukID4ga2V5Ym9hcmQ7CivmjIfljZcgPiB0b1wtZ3VpZGU7CivlrrbnlKggPiBob21lXC11c2U7CivnlJ/mhI8gPiBidXNpbmVzczsKK+iAl+iyuyA+IHRvXC13YXN0ZTsKK+iHtOWKmyA+IHdvcmtcLWZvcjsKK+S6m+iosSA+IHRyaWZsaW5nOwor5LqU6KeSID4gcGVudGFnb247CivnrYnlvoUgPiB3YWl0XC1mb3I7CivmiL/mnbEgPiBsYW5kbG9yZDsKK+S/ruW7uiA+IHRvXC1idWlsZDsKK+a1quiyuyA+IHRvXC13YXN0ZTsKK+eqgeeZvCA+IG91dGJ1cnN0Owor5L+h5b6SID4gYmVsaWV2ZXI7CivmiZPmjoMgPiB0b1wtY2xlYW47CivmioDlt6UgPiBtZWNoYW5pYzsKK+aMgeS5hSA+IGR1cmF0aW9uOwor562U5bCNID4gdG9cLXJlcGx5Owor6aKo6LuKID4gd2luZG1pbGw7CivmiYvmj5AgPiBwb3J0YWJsZTsKK+mjm+ihjCA+IGF2aWF0aW9uOwor5LiN6Z2IID4gbm90XC13b3JrOwor5a6J55SfID4gcGVhY2VmdWw7CivmiZPmia4gPiBkcmVzc1wtdXA7CivlgJLloYwgPiBjb2xsYXBzZTsKK+eUn+WtmCA+IHRvXC1leGlzdDsKK+izpueohSA+IHRheGF0aW9uOwor5a2U56m0ID4gYXBlcnR1cmU7CivmtbTooaMgPiBiYXRocm9iZTsKK+S4gOmdoiA+IG9uZVwtc2lkZTsKK+aBkOm+jSA+IGRpbm9zYXVyOwor5bGx5Z2hID4gaGlsbHNpZGU7CivpkLXlmaggPiBoYXJkd2FyZTsKK+eVq+WDjyA+IHBvcnRyYWl0Owor55W25L2cID4gdHJlYXRcLWFzOwor56au6LKMID4gY291cnRlc3k7CivmoL3mpI0gPiB0b1wtcGxhbnQ7Civkv6HlsIEgPiBlbnZlbG9wZTsKK+iBsueosSA+IHRvXC1jbGFpbTsKK+WwjeaJiyA+IG9wcG9uZW50Owor5L+h5a6IID4gYWJpZGVcLWJ5Owor6IGW57SEID4gY292ZW5hbnQ7CivmoKHmraMgPiByZWd1bGF0ZTsKK+mHjem7niA+IGVtcGhhc2lzOwor6IG955y+ID4gYXVkaWVuY2U7CivpqI7luKsgPiBob3JzZW1hbjsKK+enp+iLlyA+IHNlZWRsaW5nOwor5oGt6aCGID4gZGVmZXJlbnQ7CivpjbXmp70gPiBrZXlcLXNsb3Q7Civos7zniakgPiBzaG9wcGluZzsKK+WWruaTmiA+IHJlY2VpcHRzOwor5pyD6K6KID4gdmFyaWFibGU7CivlsJHlubQgPiBqdXZlbmlsZTsKK+momeWtkCA+IHN3aW5kbGVyOwor6IGv55ufID4gYWxsaWFuY2U7Civot6/lj6MgPiBjcm9zc2luZzsKK+iZlee9sCA+IHBlbmFsaXplOwor6YeR6a2aID4gZ29sZGZpc2g7CivlqproqZ4gPiBmbGF0dGVyeTsKK+WQq+mHjyA+IGNvbnRlbnRzOwor55So5YqfID4gZGlsaWdlbnQ7CivnrYblkI0gPiBwZW5cLW5hbWU7CivkvZvmlZkgPiBidWRkaGlzbTsKK+WPr+mdoCA+IHJlbGlhYmxlOwor6LOH55SiID4gcHJvcGVydHk7CivpqYXli5UgPiB0b1wtZHJpdmU7CivpqZXlgrIgPiBhcnJvZ2FudDsKK+Wvk+aJgCA+IGR3ZWxsaW5nOwor55Sx5L2ZID4gb3dpbmdcLXRvOwor6JiR6I+wID4gbXVzaHJvb207CivpoIHpnaIgPiB3ZWJcLXBhZ2U7CivkuIDotbcgPiB0b2dldGhlcjsKK+a4tOacmyA+IGRlc2lyb3VzOwor6LWw5buKID4gY29ycmlkb3I7CivmnKzog70gPiBpbnN0aW5jdDsKK+WXnOWlvSA+IGZvbmRuZXNzOwor5bCN5aSWID4gZXh0ZXJuYWw7CivnvLrpmbcgPiBhXC1kZWZlY3Q7Civom4vmrrwgPiBlZ2dzaGVsbDsKK+WQg+mGiyA+IGplYWxvdXN5Owor5ZCI6YGpID4gc3VpdGFibGU7CivlrpjmlrkgPiBvZmZpY2lhbDsKK+a7keWGsCA+IHRvXC1za2F0ZTsKK+WVhualrSA+IGJ1c2luZXNzOwor6LKh55SiID4gcHJvcGVydHk7CivlrpfmlZkgPiByZWxpZ2lvbjsKK+mfjOmrlCA+IGZpcm13YXJlOwor5ZG96ISIID4gbGlmZWxpbmU7CivkuYPoh7MgPiBhbmRcLWV2ZW47Civnp5/nqIUgPiBsYW5kXC10YXg7CivpoIXpjYogPiBuZWNrbGFjZTsKK+aBpei+sSA+IGRpc2dyYWNlOwor5LiN6KGMID4gd29uJyd0XC1kbzsKK+WuiOaZgiA+IHB1bmN0dWFsOwor5pqX6L2JID4gYmxhY2tvdXQ7CivmiZPljbAgPiB0b1wtcHJpbnQ7CivlrozmlbQgPiBjb21wbGV0ZTsKK+S+teWQniA+IHRvXC1hbm5leDsKK+azouitnCA+IHNwZWN0cnVtOwor5qC95a2QID4gc2VlZGxpbmc7CivosoLnmq4gPiBtaW5rXC1mdXI7CivphqvpmaIgPiBob3NwaXRhbDsKK+iyoeeJqSA+IHByb3BlcnR5Owor5rOz6KGjID4gc3dpbXN1aXQ7Civmt5rmsLQgPiB0ZWFyZHJvcDsKK+iCieahgiA+IGNpbm5hbW9uOwor5rib5o6JID4gc3VidHJhY3Q7CivpvLvngo4gPiByaGluaXRpczsKK+afkOaZgiA+IHNvbWV0aW1lOwor6Jel6IaPID4gb2ludG1lbnQ7CivlrozmiJAgPiBjb21wbGV0ZTsKK+a6ouWHuiA+IG92ZXJmbG93Owor5ZCR6KW/ID4gd2VzdHdhcmQ7Civororph48gPiB2YXJpYWJsZTsKK+WPm+mAhiA+IHRvXC1yZWJlbDsKK+aIsOWNgCA+IHdhclwtem9uZTsKK+WPseiyrCA+IHJlcHJvYWNoOwor56uL5aC0ID4gcG9zaXRpb247Civosp7mvZQgPiBjaGFzdGl0eTsKK+agl+WtkCA+IGNoZXN0bnV0Owor5Lit57m8ID4gdG9cLXJlbGF5Owor57+z55y8ID4gY2F0YXJhY3Q7Civpjq7ljYAgPiB0b3duc2hpcDsKK+adv+ayuSA+IGxlYWZcLWZhdDsKK+aHuOWegiA+IG92ZXJoYW5nOwor6YWS6ay8ID4gZHJ1bmthcmQ7CivkuI3ogpYgPiB1bndvcnRoeTsKK+ePreapnyA+IGFpcmxpbmVyOwor6aCQ6KiAID4gcHJvcGhlY3k7CivnqpflrZAgPiBjYXNlbWVudDsKK+WvpuWKmyA+IHN0cmVuZ3RoOwor5oeJ5bCNID4gcmVzcG9uc2U7CivnvprnvoogPiBhbnRlbG9wZTsKK+S6pOa1gSA+IGV4Y2hhbmdlOwor5Y+b6K6KID4gcmVuZWdhZGU7CivmiLDkuosgPiBmaWdodGluZzsKK+WPr+ihjCA+IGZlYXNpYmxlOwor5oaU5oK0ID4gbGFuZ3Vpc2g7CivljbHpm6MgPiBjYWxhbWl0eTsKK+WuieWvpyA+IHBlYWNlZnVsOwor5Li556CCID4gY2lubmFiYXI7CivmoLjlh4YgPiBzYW5jdGlvbjsKK+ittOiyrCA+IGRlbm91bmNlOwor5qGI5Lu2ID4gbGF3XC1jYXNlOwor5ae76KaqID4gYWZmaW5pdHk7CivmtarmvKsgPiByb21hbnRpYzsKK+adkeawkSA+IHZpbGxhZ2VyOwor5oW35oWoID4gdmVoZW1lbnQ7Civoq5bpu54gPiBhcmd1bWVudDsKK+acqOeCrSA+IGNoYXJjb2FsOwor6buD55OcID4gY3VjdW1iZXI7CivkuI3nq68gPiBpbXByb3BlcjsKK+aal+iHqiA+IGlud2FyZGx5Owor5oeK5ZaqID4gZGVqZWN0ZWQ7CivnqIDmnIkgPiB1bmNvbW1vbjsKK+mjm+apnyA+IGFpcnBsYW5lOwor5a6k5Y+LID4gcm9vbW1hdGU7CivosrbmipEgPiBiZWxpdHRsZTsKK+iWhOiGnCA+IG1lbWJyYW5lOwor5p2x5pa5ID4gdGhlXC1lYXN0Owor56iF5pS2ID4gdGF4YXRpb247Civpoqjmva4gPiBjYW1wYWlnbjsKK+iDjOWMhSA+IGtuYXBzYWNrOwor6buo5rS+ID4gcGFydGlzYW47CivlrZDlsaQgPiBzdWJsYXllcjsKK+mjsuaWmSA+IGJldmVyYWdlOwor5Lq65omLID4gbWFucG93ZXI7CivkuozmnIggPiBmZWJydWFyeTsKK+aykuiQvSA+IGRvd25mYWxsOwor5ZCr56KzID4gY2FyYm9uaWM7CivmnIDngrogPiB0aGVcLW1vc3Q7Civphqvol6UgPiBtZWRpY2luZTsKK+a3seWlpyA+IHByb2ZvdW5kOwor5ZWf5YuVID4gdG9cLXN0YXJ0Owor5a245ZWPID4gbGVhcm5pbmc7CivkuI3nlKggPiBuZWVkXC1ub3Q7CivpoqjmsLQgPiBmZW5nc2h1aTsKK+aEmuaYpyA+IGlnbm9yYW50Owor5p2Q5paZID4gbWF0ZXJpYWw7CivmsLTot68gPiB3YXRlcndheTsKK+WtkOWlsyA+IGNoaWxkcmVuOwor5LqL5pWFID4gYWNjaWRlbnQ7Civph4fogbIgPiBhcHBsYXVzZTsKK+WujOWFqCA+IGNvbXBsZXRlOwor56Kw6Ke4ID4gdG9cLXRvdWNoOwor5LiN542oID4gbm90XC1vbmx5Owor5a6a5L2NID4gcG9zaXRpb247CivlrZjlnKggPiB0b1wtZXhpc3Q7CivosqjluaMgPiBjdXJyZW5jeTsKK+S4i+eNhCA+IGltcHJpc29uOwor5a215YyWID4gYnJlZWRpbmc7CivomorlrZAgPiBtb3NxdWl0bzsKK+S4jeeJuSA+IG5vdFwtb25seTsKK+mereifsiA+IHdoaXB3b3JtOwor5LiN54i9ID4gbm90XC13ZWxsOwor5oCn6IO9ID4gZnVuY3Rpb247CivmtKrmtYEgPiBjYXRhcmFjdDsKK+aHguS6iyA+IHNlbnNpYmxlOwor6aOf5oW+ID4gYXBwZXRpdGU7Civpg6jpoZ4gPiBjYXRlZ29yeTsKK+WQjOebnyA+IGFsbGlhbmNlOwor6ZyH6amaID4gdG9cLXNob2NrOwor5ZC454WZID4gdG9cLXNtb2tlOwor6Kyd6KydID4gdG9cLXRoYW5rOwor5LiN5r+fID4gbm90XC1nb29kOwor6aCt55ebID4gaGVhZGFjaGU7CivkvJnkvLQgPiBwYXJ0aXNhbjsKK+aal+ebkiA+IG1hZ2F6aW5lOwor6IKW5YOPID4gcG9ydHJhaXQ7CivkuK3mraIgPiB0b1wtY2Vhc2U7CivorJvoqbEgPiBhXC1zcGVlY2g7CivmnpflnLAgPiB3b29kbGFuZDsKK+a3seWIuyA+IHByb2ZvdW5kOwor5Lqt5a2QID4gcGF2aWxpb247Civpn7Pnr4AgPiBzeWxsYWJsZTsKK+aetuWLoiA+IGF0dGl0dWRlOwor5LiN5risID4gYWNjaWRlbnQ7CivlpKrplbcgPiBvdmVyc2l6ZTsKK+WLoumgrSA+IG1vbWVudHVtOwor5aSn6ZaAID4gZW50cmFuY2U7CivmhJrlvIQgPiBkZXJpc2lvbjsKK+W+gOmChCA+IGNvbnRhY3RzOwor5rK755mCID4gdG9cLXRyZWF0Owor56Sm55SiID4gbWluZXJhbHM7CivkuIrmtbcgPiBzaGFuZ2hhaTsKK+e9queKryA+IGNyaW1pbmFsOwor54iQ6YKKID4gZmlyZXNpZGU7CivmhInlv6sgPiBjaGVlcmZ1bDsKK+iuiueoriA+IG11dGF0aW9uOwor6KuW6L+wID4gdHJlYXRpc2U7Civli5/pm4YgPiB0b1wtcmFpc2U7Civmtbfls70gPiBzdHJhaWdodDsKK+eIreirliA+IHRvXC1hcmd1ZTsKK+iBluWMliA+IHNhbmN0aWZ5Owor5piO6IarID4gbWFuaWZlc3Q7Civph43nlLMgPiByZWFmZmlybTsKK+aatOa0qiA+IGFcLXN1ZGRlbjsKK+abv+aPmyA+IGV4Y2hhbmdlOwor6aSh5YWSID4gc3R1ZmZpbmc7CivmnInmiYAgPiBzb21ld2hhdDsKK+aWpeiyrCA+IGRlbm91bmNlOwor6YeN542yID4gcmVjb3Zlcnk7CivkuI3mnL0gPiBpbW1vcnRhbDsKK+a1t+WkliA+IG92ZXJzZWFzOwor546L5a62ID4gcHJpbmNlbHk7Civlk6jlhbUgPiBzZW50aW5lbDsKK+iytuS9jiA+IGJlbGl0dGxlOwor6ZuJ6ZueID4gcGhlYXNhbnQ7Civmg7PlrrYgPiBob21lc2ljazsKK+WTpeWFkiA+IGJyb3RoZXJzOwor6I+v6bqXID4gZ29yZ2VvdXM7CivosrfkuLsgPiBjdXN0b21lcjsKK+aFmOS6iyA+IGRpc2FzdGVyOwor6aCQ5risID4gZm9yZWNhc3Q7Civnvo7ml6UgPiB1c1wtamFwYW47CivosqDlgrUgPiBpbmRlYnRlZDsKK+mbqOmHjyA+IHJhaW5mYWxsOwor5Y+45rOVID4ganVkaWNpYWw7CivoqpXovrAgPiBiaXJ0aGRheTsKK+WSs+WXvSA+IHRvXC1jb3VnaDsKK+aCsuaFnyA+IG1vdXJuZnVsOwor5Yqg6ZW3ID4gbGVuZ3RoZW47CivlkJDmo4QgPiB0b1wtc3B1cm47Civli7joqqogPiBwZXJzdWFkZTsKK+iZleWIhiA+IGRpc3Bvc2FsOwor5pel576OID4gamFwYW5cLXVzOwor5aKe6auYID4gaGVpZ2h0ZW47CivpgbLpoJMgPiBpbmFjdGl2ZTsKK+iyoeS4uyA+IHJpY2hcLW1hbjsKK+S4jeaIkCA+IHdvbicndFwtZG87CivlpKLoqbEgPiBkYXlkcmVhbTsKK+S4jeaHiCA+IHVudGlyaW5nOwor5aSn6KaBID4gYWJzdHJhY3Q7CivmnIDlsJEgPiBzbWFsbGVzdDsKK+itt+eFpyA+IHBhc3Nwb3J0Owor5Li75a6wID4gZG9taW5hdGU7CivlpKLoposgPiB0b1wtZHJlYW07CivkuI3mg58gPiBub3RcLW9ubHk7CivkuovlhZIgPiBidXNpbmVzczsKK+Wkp+ihoyA+IG92ZXJjb2F0Owor56e75LqkID4gdHJhbnNmZXI7Civmm7jlr6sgPiB0b1wtd3JpdGU7CivkuI3mgJUgPiBmZWFybGVzczsKK+S4jeW/hSA+IG5lZWRcLW5vdDsKK+aylua0lyA+IHRvXC1yaW5zZTsKK+S4jeW+lyA+IG11c3RcLW5vdDsKK+S4jeW+iCA+IG5vdFwtdmVyeTsKK+aal+aalyA+IHNlY3JldGx5Owor5Ym36ZmkID4gcm9vdFwtb3V0Owor8Ki6uSA+IG1vdXJuZnVsOwor56We5oCnID4gZGl2aW5pdHk7CivnuL3oo4EgPiBjaGFpcm1hbjsKK+WkluihqCA+IGV4dGVybmFsOwor5rKJ5rW4ID4gcGVybWVhdGU7CivmlK/phY0gPiBkb21pbmF0ZTsKK+e+juW+tyA+IGFcLXZpcnR1ZTsKK+mbhOi+ryA+IGVsb3F1ZW50Owor6bue5ZCNID4gcm9sbGNhbGw7Civlv73nhLYgPiBzdWRkZW5seTsKK+aXpeeoiyA+IHNjaGVkdWxlOwor5aem5rerID4gYWR1bHRlcnk7Civosarkv6AgPiBjYXZhbGllcjsKK+aXuuebmyA+IHZpZ29yb3VzOwor5aSW6JmfID4gbmlja25hbWU7CivlpYfogZ4gPiBhbmVjZG90ZTsKK+WJjemhjSA+IGZvcmVoZWFkOwor5rW35LiKID4gbWFyaXRpbWU7Civpm5zoqowgPiBtYWdhemluZTsKK+e2sumamyA+IGludGVybmV0Owor54ax6KqgID4gZGV2b3Rpb247CivlkIjmiJAgPiBjb21wb3VuZDsKK+WRvOWPqyA+IHRvXC1zaG91dDsKK+WkqeiKsSA+IHNtYWxscG94Owor6Zuo6KGjID4gcmFpbmNvYXQ7CivlkIzmhI8gPiB0b1wtYWdyZWU7CivmnKzkvoYgPiBvcmlnaW5hbDsKK+acrOS9jSA+IHN0YW5kYXJkOwor5ZCR5b6MID4gYmFja3dhcmQ7CivmnI3li5kgPiB0b1wtc2VydmU7CivmsJHnnL4gPiBwb3B1bGFjZTsKK+WogeacmyA+IHByZXN0aWdlOwor5rS75YuVID4gYWN0aXZpdHk7Civlj5vmlZkgPiBhcG9zdGFjeTsKK+S4jeWkpyA+IG5vdFwtdmVyeTsKK+Wkp+iDvSA+IGFsbWlnaHR5Owor5pyJ5YqbID4gcG93ZXJmdWw7CivmmYLmqZ8gPiBvY2Nhc2lvbjsKK+WQpuWumiA+IG5lZ2F0aXZlOwor6Jel5ZWGID4gZHJ1Z2dpc3Q7Civlj43mmKAgPiByZWFjdGlvbjsKK+mBuui0iCA+IGJlcXVlYXRoOwor5paH6IG3ID4gY2l2aWxpYW47CivlqZrlq4EgPiBtYXJyaWFnZTsKK+e3iui/qyA+IHByZXNzaW5nOwor6K6K5pW4ID4gdmFyaWFibGU7CivorbDmoYggPiBwcm9wb3NhbDsKK+WQm+WtkCA+IG5vYmxlbWFuOwor5bu66KitID4gdG9cLWJ1aWxkOwor54m55rS+ID4gZGlzcGF0Y2g7Civpm7vohaYgPiBjb21wdXRlcjsKK+WQjOWxiyA+IHJvb21tYXRlOwor6Jel5YqRID4gbWVkaWNpbmU7CivkuIDlnJggPiByZWdpbWVudDsKK+ejqOaTpiA+IGZyaWN0aW9uOwor5pKt6Z+zID4gdHJhbnNtaXQ7Civlj7DluqcgPiBwZWRlc3RhbDsKK+asuuiyoCA+IHRvXC1idWxseTsKK+mBjui8iSA+IG92ZXJsb2FkOwor6YGy6KqkID4gdG9cLWRlbGF5Owor56WW5ZyLID4gaG9tZWxhbmQ7CivpoIblvp4gPiBvYmVkaWVudDsKK+S4u+S7uyA+IGRpcmVjdG9yOwor5rOw5ZyLID4gdGhhaWxhbmQ7Civop6PplosgPiB0b1wtdW50aWU7CivmmpflrqQgPiBkYXJrcm9vbTsKK+WltueJmyA+IG1pbGtcLWNvdzsKK+WPjeaHiSA+IHJlYWN0aW9uOwor5oKy5YiHID4gbW91cm5mdWw7CivkuI3lj6ogPiBub3RcLW9ubHk7CivlubTpnZIgPiB5b3V0aGZ1bDsKK+mghuW6jyA+IHNlcXVlbmNlOwor5Lit5L+dID4gYWR2b2NhdGU7CivlubPpnZwgPiB0cmFucXVpbDsKK+Wnv+aFiyA+IGF0dGl0dWRlOwor5ZGK5YilID4gdG9cLWxlYXZlOwor5LiA5ZGoID4gb25lXC13ZWVrOwor5qy66KmQID4gdG9cLWNoZWF0Owor5LiA5ZCRID4gYWxsXC1sb25nOwor5pud5YWJID4gZXhwb3N1cmU7CivmsK7msKMgPiBuaXRyb2dlbjsKK+mZhOmMhCA+IGFwcGVuZGl4Owor5LiA5YyZID4gc3Bvb25mdWw7Civnopfmq4MgPiBjdXBib2FyZDsKK+eglOeptiA+IHJlc2VhcmNoOwor5oCg5oOwID4gaWRsZW5lc3M7CivljIXnmq4gPiB3cmFwcGluZzsKK+eKr+aEgSA+IHRvXC13b3JyeTsKK+WIsOmBlCA+IHRvXC1yZWFjaDsKK+WPpeWtkCA+IHNlbnRlbmNlOwor5aWJ54++ID4gb2ZmZXJpbmc7CivkuI3lgKYgPiB0aXJlbGVzczsKK+avj+eVtiA+IHdoZW5ldmVyOwor6KiC6LO8ID4gdG9cLW9yZGVyOwor5paR55m9ID4gZ3JpenpsZWQ7CivorYnmk5ogPiBldmlkZW5jZTsKK+elluWFiCA+IGFuY2VzdG9yOwor5bi46aeQID4gcmVzaWRlbnQ7CivmmrTlipsgPiB2aW9sZW5jZTsKK+mbhuiBmiA+IGFzc2VtYmxlOwor5piU5pelID4gZm9ybWVybHk7Civlip/og70gPiBmdW5jdGlvbjsKK+itpuaDlSA+IHZpZ2lsYW50Owor5rOi5YuVID4gdW5kdWxhdGU7CivpoJDloLEgPiBmb3JlY2FzdDsKK+Wlh+eJuSA+IHBlY3VsaWFyOwor5b+g5pa8ID4gbG95YWxcLXRvOwor5piO5pelID4gdG9tb3Jyb3c7CivoqbPntLAgPiBkZXRhaWxlZDsKK+aatOWFiSA+IGV4cG9zdXJlOwor6aCR5Zu6ID4gc3R1YmJvcm47CivpgbjoiIkgPiB0b1wtZWxlY3Q7CivpgIDpgb8gPiB3aXRoZHJhdzsKK+e3tOe/kiA+IGV4ZXJjaXNlOwor5Z+56aSKID4gdG9cLXRyYWluOwor6Z+M5bi2ID4gbGlnYW1lbnQ7CivmkqTpgIAgPiByZXRyZWF0Owor54m95omvID4gaW52b2x2ZTsKK+WpmuS6iyA+IHdlZGRpbmc7CivmqqLplrEgPiBpbnNwZWN0Owor6Ki06IumID4gZ3J1bWJsZTsKK+aaq+WBnCA+IHN1c3BlbmQ7Civop7jop5IgPiBhbnRlbm5hOwor5b2q54KzID4gc2hpbmluZzsKK+e9t+S8kSA+IGdpdmVcLXVwOwor57Sw6ZW3ID4gc2xlbmRlcjsKK+iqjeecnyA+IGVhcm5lc3Q7CivmmYLlsJogPiBmYXNoaW9uOwor54mI5pysID4gdmVyc2lvbjsKK+i/tOi9iSA+IHJldm9sdmU7CivluoforbcgPiBzaGVsdGVyOwor6YW45oCnID4gYWNpZGl0eTsKK+e3qOe6giA+IGNvbXBpbGU7CivlkJvkuLsgPiBtb25hcmNoOwor57i955CGID4gcHJlbWllcjsKK+WkqeeEtiA+IG5hdHVyYWw7CivnnaHooaMgPiBwYWphbWFzOwor5pW055CGID4gYXJyYW5nZTsKK+eFmeiNiSA+IHRvYmFjY287Civnh6bniJsgPiBnbGl0dGVyOwor5Y+v5YuVID4gbW92YWJsZTsKK+awtOaJiyA+IG1hcmluZXI7CivlkITlgIsgPiB2YXJpb3VzOwor5Y+j5ZCDID4gc3RhbW1lcjsKK+iPj+iYrSA+IGhvbGxhbmQ7CivpoJjlhYggPiB0b1wtbGVhZDsKK+iPoOiPnCA+IHNwaW5hY2g7CivljYHmnIggPiBvY3RvYmVyOwor6K6a5ZCMID4gYXBwcm92ZTsKK+avm+avryA+IGJsYW5rZXQ7Civpmb3oh7ogPiBiYWxjb255Owor6L+R6YOKID4gc3VidXJiczsKK+eLguWWnCA+IGVjc3Rhc3k7CivmsLjmgYYgPiBldGVybmFsOwor6KuL5rGCID4gcmVxdWVzdDsKK+mEmeajhCA+IGRpc2RhaW47Civlh7rotbAgPiB0b1wtZmxlZTsKK+aViOebiiA+IGJlbmVmaXQ7Civph43lipsgPiBncmF2aXR5Owor56K85a2XID4gbnVtZXJhbDsKK+e0oemMmCA+IHNwaW5kbGU7CivlvITnoo4gPiBjcnVtYmxlOwor5aeQ5aa5ID4gc2lzdGVyczsKK+ebrumMhCA+IGNhdGFsb2c7CivmraPnorogPiBjb3JyZWN0Owor5b+D5oSbID4gYmVsb3ZlZDsKK+W8hOefrSA+IHNob3J0ZW47CivnhKHomZUgPiBub3doZXJlOwor6K6K5Y6aID4gdGhpY2tlbjsKK+WmluaAqiA+IG1vbnN0ZXI7Civnt4rnt4ogPiBjbG9zZWx5Owor6Zqx56eBID4gcHJpdmFjeTsKK+mXnOmNtSA+IGNydWNpYWw7Civlp7/li6IgPiBwb3N0dXJlOwor5aaS5b+MID4gamVhbG91czsKK+W8t+eDiCA+IGludGVuc2U7Civlpb3miLAgPiB3YXJsaWtlOwor5bmz6KGhID4gYmFsYW5jZTsKK+eJueWumiA+IHNwZWNpYWw7CivlvITnmrogPiBjcnVtcGxlOwor55u46YCjID4gdG9cLWxpbms7Civmlofms5UgPiBncmFtbWFyOwor5Y+k5L6GID4gb2xkdGltZTsKK+WkqeawoyA+IHdlYXRoZXI7CivmraPnm7QgPiB1cHJpZ2h0Owor6YWS5bugID4gYnJld2VyeTsKK+W+geacjSA+IGNvbnF1ZXI7CivntKLpgZMgPiByb3Bld2F5Owor6Zm457qMID4gaW5cLXR1cm47CivpmrHnnp4gPiB0b1wtaGlkZTsKK+Wklua1gSA+IG91dGZsb3c7Civlt6XpoK0gPiBmb3JlbWFuOwor5Y+m5LiAID4gYW5vdGhlcjsKK+mBoOerryA+IGZhclwtZW5kOwor55qu6Z2pID4gbGVhdGhlcjsKK+WKoOeUnCA+IHN3ZWV0ZW47Civpn7Pkv6EgPiBtZXNzYWdlOwor54ax54eZID4gdG9cLWJ1cm47CivpmpznpJkgPiBiYXJyaWVyOwor6Kqe5rOVID4gZ3JhbW1hcjsKK+itpuWRiiA+IHRvXC13YXJuOwor54S26ICMID4gaG93ZXZlcjsKK+Wkp+amgiA+IHJvdWdobHk7Civpm7vmsaAgPiBiYXR0ZXJ5Owor5aW95bm+ID4gc2V2ZXJhbDsKK+avlOaWuSA+IGFuYWxvZ3k7CivpgIDokL0gPiBzdWJzaWRlOwor6K6K5LqCID4gdHVybW9pbDsKK+iri+aVmSA+IGNvbnN1bHQ7CivnhrHmva4gPiB1cHN1cmdlOwor5qy6556eID4gdG9cLWZvb2w7Civmr5Tmk6wgPiBjb21wYXJlOwor6K2w5YO5ID4gYmFyZ2FpbjsKK+e6luW8sSA+IGZyYWdpbGU7CivljZrlrbggPiBsZWFybmVkOwor6KaL6K2JID4gd2l0bmVzczsKK+WKoOeGsSA+IGhlYXRpbmc7Civln47pg4ogPiBzdWJ1cmJzOwor54mn5aC0ID4gcGFzdHVyZTsKK+mdnuW4uCA+IHVudXN1YWw7Civli4fmsKMgPiBjb3VyYWdlOwor5aSx5pWIID4gdG9cLWZhaWw7CivlhYjpqYUgPiBwaW9uZWVyOwor6a6R6a2aID4gYWJhbG9uZTsKK+eKr+S6uiA+IGNvbnZpY3Q7CivojbfomK0gPiBob2xsYW5kOwor6Zuj5rCRID4gcmVmdWdlZTsKK+mAo+e1kCA+IGNvbm5lY3Q7Civlvojlv6sgPiBxdWlja2x5Owor6YG654mpID4gcmVtbmFudDsKK+avkuaJkyA+IGJlYXRcLXVwOwor6Yac5LqLID4gc2NhbmRhbDsKK+mZjee0miA+IGRlZ3JhZGU7CivnhKbns5YgPiBjYXJhbWVsOwor5pGY6KaBID4gc3VtbWFyeTsKK+mAsueoiyA+IHByb2Nlc3M7Civovq/op6MgPiBleHBsYWluOwor5pGU6KeSID4gd3Jlc3RsZTsKK+WMheaJjiA+IHdyYXBcLXVwOwor5bui54mpID4gcnViYmlzaDsKK+Wlh+aAqiA+IHN0cmFuZ2U7Civlp5Tku7sgPiBhcHBvaW50Owor5quD6Ie6ID4gY291bnRlcjsKK+aumOagqiA+IHN0dWJibGU7Civlpb3lpYcgPiBjdXJpb3VzOwor55m76Zm4ID4gdG9cLWxhbmQ7Civmr4bmiZMgPiBiZWF0XC11cDsKK+ebo+imliA+IG92ZXJzZWU7CivlvaLmiJAgPiB0b1wtZm9ybTsKK+e4veaVuCA+IGFcLXRvdGFsOwor54m55Yi2ID4gc3BlY2lhbDsKK+W8t+aatCA+IHZpb2xlbnQ7CivlvrflnIsgPiBnZXJtYW55Owor57Wx57WxID4gdG90YWxseTsKK+eEoeeqriA+IGVuZGxlc3M7Civnn67mnpcgPiBjb3BwaWNlOwor5aKD55WMID4gYm91bmRyeTsKK+W8hOatqiA+IGRpc3RvcnQ7CivlhrDooosgPiBpY2VcLWJhZzsKK+itieS6uiA+IHdpdG5lc3M7CivplrHoroAgPiB0b1wtcmVhZDsKK+mDteW3riA+IHBvc3RtYW47CivpnaLlmq4gPiB0b1wtZmFjZTsKK+inuOeZvCA+IHRyaWdnZXI7CivniK3ln7cgPiBkaXNwdXRlOwor54Cd6Z2SID4gYXNwaGFsdDsKK+WNs+S+vyA+IGV2ZW5cLWlmOwor5aSn5buIID4gZWRpZmljZTsKK+eZvOmFtSA+IGZlcm1lbnQ7CivljbPkvb8gPiBldmVuXC1pZjsKK+mWseimvSA+IHRvXC1yZWFkOwor5bm456aPID4gYmxlc3NlZDsKK+eEoeebiiA+IG5vXC1nb29kOwor5Yip55uKID4gYmVuZWZpdDsKK+mYsuempiA+IGRlZmVuc2U7CivmrbfmmYIgPiB0b1wtbGFzdDsKK+eJiOWIuyA+IGNhcnZpbmc7CivntpPnkIYgPiBtYW5hZ2VyOwor6YWN5YG2ID4gY29uc29ydDsKK+atquabsiA+IGRpc3RvcnQ7CivmlZHmj7QgPiB0b1wtc2F2ZTsKK+aXpeWHuiA+IHN1bnJpc2U7CivmsKPlgJkgPiBjbGltYXRlOwor57mD5bi2ID4gYmFuZGFnZTsKK+eEoeeUqCA+IHVzZWxlc3M7CivpgJfnlZkgPiBzdGF5XC1hdDsKK+WIqeeUqCA+IGV4cGxvaXQ7CivljYDljYAgPiB0cml2aWFsOwor54it5ZC1ID4gZGlzcHV0ZTsKK+W+ruWFiSA+IGdsaW1tZXI7Civmr4/lpJwgPiBuaWdodGx5Owor6YGV5rOVID4gaWxsZWdhbDsKK+WHuuennyA+IHRvXC1yZW50Owor6ZuA5paRID4gZnJlY2tsZTsKK+aUtuaTmiA+IHJlY2VpcHQ7CivljYHlha0gPiBzaXh0ZWVuOwor57mq5ZyWID4gdG9cLWRyYXc7CivlnabpgJQgPiBoaWdod2F5Owor55+l5oKJID4gdG9cLWtub3c7CivmlK/mkpAgPiBwcm9wXC11cDsKK+eGseaDhSA+IGNvcmRpYWw7CivmjpLpmaQgPiBleGNsdWRlOwor5Y2B5YCNID4gdGVuZm9sZDsKK+WJm+avmyA+IGJyaXN0bGU7Civmqavoh6UgPiByZWNsaW5lOwor5Yi65r+AID4gcHJvdm9rZTsKK+e2k+a/nyA+IGVjb25vbXk7CivntLDnr4AgPiBkZXRhaWxzOwor57K+6KO9ID4gcmVmaW5lZDsKK+aVmeW4qyA+IHRlYWNoZXI7CivmqILotqMgPiBkZWxpZ2h0Owor5pS25oiQID4gaGFydmVzdDsKK+WNgeS6lCA+IGZpZnRlZW47CivlpJrlpKcgPiBob3dcLWJpZzsKK+WFseiZlSA+IGNvZXhpc3Q7CivmlKrmi4wgPiB0b1wtc3RpcjsKK+i8lei8lSA+IGxpZ2h0bHk7CivliKnmvaQgPiBwcm9maXRzOwor6KOd6LyJID4gdG9cLWxvYWQ7CivljIXlkKsgPiBjb250YWluOwor5pOv5qOEID4gYWJhbmRvbjsKK+eZvOihjCA+IHB1Ymxpc2g7Civnmb3on7sgPiB0ZXJtaXRlOwor6YG45omLID4gYXRobGV0ZTsKK+WkseWOuyA+IHRvXC1sb3NlOwor6Lyq6KmiID4gdG9cLXBvbGw7CivlvavliLsgPiBlbmdyYXZlOwor6Iqx6LK7ID4gZXhwZW5zZTsKK+iRieWtkCA+IGZvbGlhZ2U7CivojYnnqL8gPiBvdXRsaW5lOwor5q2m5bqrID4gYXJzZW5hbDsKK+W8hOW5syA+IGZsYXR0ZW47CivliLbmraIgPiB0b1wtY3VyYjsKK+ezvue0myA+IGRpc3B1dGU7CivojIXoiI0gPiBjb3R0YWdlOwor54Wn5pCsID4gdG9cLWNvcHk7CivlhbXoiaYgPiB3YXJzaGlwOwor6KOc6LK8ID4gc3Vic2lkeTsKK+ato+W4uCA+IHJlZ3VsYXI7Civlu5rmiL8gPiBraXRjaGVuOwor5paH5YyWID4gY3VsdHVyZTsKK+W0qemZtyA+IGZhbGxcLWluOwor6YCZ5qyhID4gcHJlc2VudDsKK+W3sue2kyA+IGFscmVhZHk7Civlt7TntZAgPiBmYXduXC1vbjsKK+eauue0iyA+IHdyaW5rbGU7CivmrIrmnZYgPiBzY2VwdGVyOwor5YyG5L+DID4gaGFzdGlseTsKK+ashOaftSA+IGJhcnJpZXI7Civnmb7okKwgPiBtaWxsaW9uOwor5aSa5Y2KID4gY2hpZWZseTsKK+ebrueahCA+IHB1cnBvc2U7CivpgLHmnKsgPiB3ZWVrZW5kOwor5Yid5q2lID4gaW5pdGlhbDsKK+ashOadhiA+IHJhaWxpbmc7Civnhanmg7EgPiBhZ29uaXplOwor5b2I5Yq+ID4gaW1wZWFjaDsKK+eFqeaCtiA+IGFuZ3Vpc2g7CivluavmtL4gPiBmYWN0aW9uOwor6KGo6Z2iID4gc3VyZmFjZTsKK+ezn+ezlSA+IHRvb1wtYmFkOwor57i95YmHID4gcHJvZmlsZTsKK+maquWzuyA+IGFyZHVvdXM7CivliLbmnI0gPiB1bmlmb3JtOwor5YOP6YqAID4gc2lsdmVyeTsKK+WJjeaPkCA+IHByZW1pc2U7Civnt6jlr6sgPiBjb21waWxlOwor57at5oyBID4gdG9cLWtlZXA7CivmjqXop7ggPiBjb250YWN0Owor5Yud5YipID4gdmljdG9yeTsKK+WkpeS8tCA+IHBhcnRuZXI7CivmlZnlk6EgPiB0ZWFjaGVyOwor6auV6aqoID4ga25lZWNhcDsKK+aTgeaciSA+IHRvXC1oYXZlOwor5q2k5aSWID4gYmVzaWRlczsKK+W8t+WItiA+IGVuZm9yY2U7Civou4rovJsgPiB2ZWhpY2xlOwor6ZyN5LqCID4gY2hvbGVyYTsKK+iKrOiYrSA+IGZpbmxhbmQ7CivmlbjkvY0gPiBkaWdpdGFsOwor6LyV6JSRID4gZGlzZGFpbjsKK+e1suafjyA+IGN5cHJlc3M7Civln7fnhacgPiBsaWNlbnNlOwor5quD5qqvID4gY291bnRlcjsKK+eEoeaViCA+IGluXC12YWluOwor5aOB5aOYID4gcmFtcGFydDsKK+mAo+aOpSA+IHRvXC1saW5rOwor6KiK5oGvID4gbWVzc2FnZTsKK+e0meeFmSA+IGNpZ2FyZXQ7Civmrbflj7IgPiBoaXN0b3J5Owor55y65pybID4gbG9va291dDsKK+mXnOeFpyA+IGNvbmNlcm47CivlhrDniYcgPiBib3JuZW9sOwor5YqH5aC0ID4gdGhlYXRlcjsKK+eGseWIhyA+IGZlcnZlbnQ7Civli5XkuoIgPiB0dXJtb2lsOwor5o6p6JOLID4gY29uY2VhbDsKK+mYu+aUlCA+IHRvXC1zdG9wOwor5byf5YWEID4gYnJvdGhlcjsKK+mYu+aTiyA+IHRvXC1zdG9wOwor55yJ5q+bID4gZXllYnJvdzsKK+Wjq+WFtSA+IHNvbGRpZXI7CivooqvopKUgPiBiZWRkaW5nOwor5pO65a2QID4gbWFsYXJpYTsKK+ihsOmAgCA+IGRlY2xpbmU7CivlvJXlh7ogPiBleHRyYWN0Owor5pOU5b+DID4gYW54aW91czsKK+WFrOekviA+IGNvbW11bmU7CivntZDmnpwgPiBvdXRjb21lOwor5pGn5q+AID4gZGVzdHJveTsKK+atsuWFpSA+IHJldmVudWU7CivliIbmlaMgPiBzY2F0dGVyOwor5aKK5a2QID4gY3VzaGlvbjsKK+eEpuaApSA+IGFueGlldHk7CivmlLbliLAgPiByZWNlaXZlOwor55uj5risID4gbW9uaXRvcjsKK+msouinkiA+IHRlbXBsZXM7Civmj63npLogPiB0b1wtc2hvdzsKK+imgeaxgiA+IHJlcXVlc3Q7Civnl5Xot6EgPiB2ZXN0aWdlOwor5Ymd5aWqID4gZGVwcml2ZTsKK+i+suawkSA+IHBlYXNhbnQ7Civlu6DllYYgPiBjb21wYW55Owor5Yiw5bqVID4gZmluYWxseTsKK+WGkueFmSA+IHNtb2tpbmc7CivnsKHopoEgPiBjb25jaXNlOwor5pS+5Lu7ID4gaW5kdWxnZTsKK+mAmuW4uCA+IHJlZ3VsYXI7CivnnJ/mka8gPiBzaW5jZXJlOwor57SF5rW3ID4gcmVkXC1zZWE7CivlhrDmsrMgPiBnbGFjaWFsOwor57SU5q2jID4gZ2VudWluZTsKK+WIqOW3pSA+IHBsYW5pbmc7CivnhZnlm6ogPiBjaGltbmV5Owor5bm75b2xID4gcGhhbnRvbTsKK+aLlOmggiA+IHRvcHBpbmc7Civnmb3nmb0gPiBpblwtdmFpbjsKK+WFiOefpSA+IHByb3BoZXQ7Civnlr7otbAgPiBzY2FtcGVyOwor5bey5ruFID4gZXh0aW5jdDsKK+exoOe9qSA+IGVudmVsb3A7CivntbHluKUgPiBjb21tYW5kOwor6Zm25ZmoID4gcG90dGVyeTsKK+mZhOWvhCA+IGVuY2xvc2U7CivntajluIMgPiBmbGFubmVsOwor6L+O5o6lID4gdG9cLW1lZXQ7CivlhJjnrqEgPiBkZXNwaXRlOwor6Zi75bC8ID4gZGFtcGluZzsKK+eUnOm7niA+IGRlc3NlcnQ7Civou43oiaYgPiB3YXJzaGlwOwor55m854++ID4gdG9cLWZpbmQ7CivploPniI0gPiBmbGlja2VyOwor6KGj6KOdID4gZ2FybWVudDsKK+WCmeiouyA+IHJlbWFya3M7CivmlJTkvY8gPiB0b1wtc3RvcDsKK+ijgue0iyA+IGNyYWNrbGU7CivmjJHotbcgPiBzdGlyXC11cDsKK+mXoeaYjiA+IGNsYXJpZnk7CivliLDloLQgPiBzaG93XC11cDsKK+mBjuWJqSA+IHN1cnBsdXM7CivouaPot5ogPiBzdGFnZ2VyOwor55ub5pyDID4gcGFnZWFudDsKK+WJneWJiiA+IGV4cGxvaXQ7Civmj4/nlasgPiB0b1wtZHJhdzsKK+ijqOebiiA+IGJlbmVmaXQ7CivpgYfliLAgPiB0b1wtbWVldDsKK+WBveitiSA+IHBlcmp1cnk7CivmqZ/morAgPiBtYWNoaW5lOwor54Wn5LquID4gbGlnaHRlbjsKK+mZs+WIlyA+IGRpc3BsYXk7CivlgZzou4ogPiB0b1wtc3RvcDsKK+mZveWCmCA+IHBhcmFzb2w7CivlsbHpoIIgPiBoaWxsdG9wOwor5o6M566hID4gY29udHJvbDsKK+ijnOebiiA+IGJlbmVmaXQ7Civmi7fosp0gPiB0b1wtY29weTsKK+aToOWFpSA+IGludHJ1ZGU7CivmrIrliKkgPiBhXC1wb3dlcjsKK+iKseeSsCA+IGdhcmxhbmQ7CivlhazmsJEgPiBjaXRpemVuOwor5be05p6XID4gYmFocmFpbjsKK+WBveijnSA+IHRvXC1mYWtlOwor5aCF5by3ID4gc3RhdW5jaDsKK+W5s+WdhyA+IGF2ZXJhZ2U7CivliLrliIAgPiBiYXlvbmV0Owor57C4566VID4gZHVzdHBhbjsKK+WFhea7vyA+IGZ1bGxcLW9mOwor5biz5biYID4gZHJhcGVyeTsKK+aOpeeUnyA+IGRlbGl2ZXI7Civmv4DntKAgPiBob3Jtb25lOwor6Kej5YmWID4gZGlzc2VjdDsKK+aMr+iIiCA+IHByb21vdGU7CivpmaTkuoYgPiBiZXNpZGVzOwor55in55a+ID4gbWFsYXJpYTsKK+iOiuWatCA+IHN0YXRlbHk7Civnspfmt7ogPiBzaGFsbG93Owor5qOy6LqrID4gc3RheVwtYXQ7CivlubPlj7AgPiB0ZXJyYWNlOwor5ouN6LOjID4gYXVjdGlvbjsKK+a7i+mkiiA+IG5vdXJpc2g7Civop6Plg7EgPiB0b1wtZmlyZTsKK+WIsOS+hiA+IGFycml2YWw7CivplpLmmocgPiBsZWlzdXJlOwor5bqK5YG0ID4gYmVkc2lkZTsKK+aomeanjSA+IGphdmVsaW47Civnlqvoi5cgPiB2YWNjaW5lOwor6LaF6b2hID4gdG9vXC1vbGQ7Civlh7rllK4gPiB0b1wtc2VsbDsKK+WboOe0oCA+IGVsZW1lbnQ7CivlhrDlt50gPiBnbGFjaWVyOwor6ZeK5bqmID4gYnJlYWR0aDsKK+i4kOi4jyA+IHRyYW1wbGU7Civmpa3ntpMgPiBhbHJlYWR5Owor6L2f5pOKID4gYm9tYmFyZDsKK+W5vuWAiyA+IHNldmVyYWw7CivlhrDls7YgPiBpY2VsYW5kOwor5oyR6IiLID4gcHJvdm9rZTsKK+WclueVqyA+IGRyYXdpbmc7CivlhrDlsbEgPiBpY2ViZXJnOwor5qW156uvID4gZXh0cmVtZTsKK+i+suWkqyA+IHBlYXNhbnQ7Civnmb3mmZ0gPiBkYXl0aW1lOwor5YW15oiIID4gd2VhcG9uczsKK+i3s+i6jSA+IHRvXC1qdW1wOwor55mC5rOVID4gdGhlcmFweTsKK+WwlumggiA+IHN0ZWVwbGU7Civohbnpg6ggPiBhYmRvbWVuOwor55m85pS+ID4gcHJvdmlkZTsKK+eYi+eLgiA+IG1hZG5lc3M7Civnl7LnlrkgPiBtZWFzbGVzOwor6Kaq5YiHID4gYW1pYWJsZTsKK+W3peW7oCA+IGZhY3Rvcnk7Civmj5Lmm7IgPiBlcGlzb2RlOwor6KGA57WxID4gbGluZWFnZTsKK+a/oea/lSA+IG1vaXN0ZW47CivmipforbAgPiBwcm90ZXN0Owor57WG5YCSID4gc3R1bWJsZTsKK+eziuW8hCA+IHRvXC1mb29sOwor5bi25YuVID4gdG9cLXNwdXI7CivlhazlvI8gPiBmb3JtdWxhOwor54G95a6zID4gc2NvdXJnZTsKK+iKseadnyA+IGJvdXF1ZXQ7Civlt7LlqZogPiBtYXJyaWVkOwor5omt6L2JID4gcmV2ZXJzZTsKK+aIsumZoiA+IHRoZWF0ZXI7Civnl5Lnl5IgPiB0b1wtaXRjaDsKK+S+i+mhjCA+IGV4YW1wbGU7CivojIXlsYsgPiBjb3R0YWdlOwor5YSq5pa8ID4gc3VycGFzczsKK+apn+WgtCA+IGFpcnBvcnQ7CivntYLkuo4gPiBhdFwtbGFzdDsKK+aooeW9oiA+IHBhdHRlcm47Civon4von4AgPiBjcmlja2V0Owor5L+h6LO0ID4gY29uZmlkZTsKK+iKpeacqyA+IG11c3RhcmQ7Civmv4Dng4ggPiBpbnRlbnNlOwor55eF55eHID4gZGlzZWFzZTsKK+WGt+WNuyA+IGNvb2xpbmc7CivmoYzpnaIgPiBkZXNrdG9wOwor5bGl6KGMID4gZnVsZmlsbDsKK+eah+W4nSA+IGVtcGVyb3I7CivooajnjocgPiBleGFtcGxlOwor5o+t5bmVID4gb3BlbmluZzsKK+evh+eroCA+IHdyaXRpbmc7CivmjqXmm78gPiByZXBsYWNlOwor5qmf5ZmoID4gbWFjaGluZTsKK+eWvueXhSA+IGRpc2Vhc2U7CivlgpnnlKggPiByZXNlcnZlOwor5a+s6ZeKID4gZXhwYW5zZTsKK+aOquaWvSA+IG1lYXN1cmU7CivlhaflrrkgPiBjb250ZW50Owor5o6h5pqWID4gaGVhdGluZzsKK+ebuOS7vyA+IHNpbWlsYXI7CivlgrLnhLYgPiBsb2Z0aWx5Owor5Zug54K6ID4gYmVjYXVzZTsKK+aoteWkqyA+IHdvb2RtYW47Civoh6rnp4EgPiBzZWxmaXNoOwor5YW45Z6LID4gdHlwaWNhbDsKK+iMtuWFtyA+IHRlYVwtc2V0Owor6Lyq5buTID4gb3V0bGluZTsKK+eziuWhlyA+IG11ZGRsZWQ7CivmppzmqKMgPiBleGFtcGxlOwor6ZaJ5aGeID4gc3RvcFwtdXA7CivooajmvJQgPiBwZXJmb3JtOwor6LaF6YGOID4gc3VycGFzczsKK+evgOebriA+IHByb2dyYW07Civpkb3nn7MgPiBkaWFtb25kOwor5ZyS5p6XID4gZ2FyZGVuczsKK+eUn+iPnCA+IGxldHR1Y2U7CivlsI/osqkgPiBwZWRkbGVyOwor6LuM5p6VID4gc2xlZXBlcjsKK+eZveWkqSA+IGRheXRpbWU7Civoi7HlnIsgPiBlbmdsYW5kOwor6aaW6aO+ID4gamV3ZWxyeTsKK+W3peWMoCA+IGFydGlzYW47Civnm4jkvZkgPiBzdXJwbHVzOwor5L+Y6JmcID4gY2FwdGl2ZTsKK+iHgueroCA+IGFybWJhbmQ7Civoh6rnlLEgPiBmcmVlZG9tOwor5biD5LiBID4gcHVkZGluZzsKK+WcjeaUuyA+IGJlc2llZ2U7Civllp3ph4cgPiBhY2NsYWltOwor55Sf6IKyID4gdG9cLWJlYXI7CivotaTpgZMgPiBlcXVhdG9yOwor6auY5ryyID4gdXBzdXJnZTsKK+mWgOWPoyA+IGRvb3J3YXk7CivmkI3lgrcgPiB0b1wtaGFybTsKK+i6q+adkCA+IHN0YXR1cmU7Civoi7Hli4cgPiBicmF2ZXJ5Owor5L6L6K2JID4gZXhhbXBsZTsKK+WVj+mhjCA+IHByb2JsZW07Civlr4TpgIEgPiB0b1wtc2VuZDsKK+WCvuaWnCA+IGluY2xpbmU7Civlm7Dmk74gPiBwZXJwbGV4Owor6KSH5ZCIID4gY29tcGxleDsKK+aKhOe2siA+IGRpcFwtbmV0Owor55m+5YiGID4gcGVyY2VudDsKK+WatOatoyA+IHN0ZXJubHk7CivooaPmnI0gPiBjbG90aGVzOwor5oiW6KixID4gcGVyaGFwczsKK+aIkOiqniA+IHByb3ZlcmI7Civmpq7lubggPiBob25vcmVkOwor5ryC56SrID4gYm91bGRlcjsKK+mmrOi5rCA+IHN0aXJydXA7CivmqKHlgKMgPiBpbWl0YXRlOwor5L6L6KGMID4gcm91dGluZTsKK+WVhumaiiA+IGNhcmF2YW47CivlrbjpmaIgPiBjb2xsZWdlOwor5YO15bGAID4gaW1wYXNzZTsKK+aNleaJiyA+IGNhdGNoZXI7CivmipXnpaggPiB0b1wtdm90ZTsKK+ihjOadjiA+IGx1Z2dhZ2U7Civmj5DliLAgPiBtZW50aW9uOwor6amV55+cID4gaGF1Z2h0eTsKK+S/oeeusSA+IG1haWxib3g7Civlr4boq4cgPiBjb21tdW5lOwor55So55uhID4gZXhoYXVzdDsKK+amguW/tSA+IGNvbmNlcHQ7CivlgZzmraIgPiB0b1wtc3RvcDsKK+WFg+S7tiA+IGVsZW1lbnQ7CivlnLDlnYAgPiBhZGRyZXNzOwor5ZyL5a62ID4gY291bnRyeTsKK+WtlOmbgCA+IHBlYWNvY2s7CivpjbXoqZ4gPiBrZXl3b3JkOwor5ruR56i9ID4gY29taWNhbDsKK+WVhumHjyA+IGNvbnN1bHQ7CivkvY7oqr8gPiBsb3dcLWtleTsKK+aMieaZgiA+IG9uXC10aW1lOwor6KOd5YWlID4gdG9cLWxvYWQ7CivmiZPnrpcgPiB0b1wtcGxhbjsKK+Wwj+e1kCA+IHN1bW1hcnk7CivlsI/ntYQgPiBhXC1ncm91cDsKK+aMieaRqSA+IG1hc3NhZ2U7CivlgYnmpa0gPiBleHBsb2l0Owor6LOq6YePID4gcXVhbGl0eTsKK+evgOaXpSA+IGhvbGlkYXk7Civoo4HliaogPiBjdXRcLW91dDsKK+eUoueJqSA+IHByb2R1Y3Q7CivkvpvntaYgPiBmdXJuaXNoOwor6Iie5byEID4gdG9cLXdhdmU7CivmiZPnoo4gPiBzaGF0dGVyOwor5ouv5pWRID4gdG9cLXNhdmU7CivlnKjliY0gPiBmb3J3YXJkOwor5p2O6bWsID4gbGlcLXBlbmc7CivlronoqK0gPiBpbnN0YWxsOwor6LKs6ZujID4gY2Vuc3VyZTsKK+WztuW2vCA+IGlzbGFuZHM7Civmn6Xoqr8gPiBpbnF1aXJ5Owor5ouL5qOEID4gZGlzY2FyZDsKK+S+v+ebhiA+IGJlZFwtcGFuOwor6KCx5oORID4gZW5jaGFudDsKK+WBh+aXpSA+IGhvbGlkYXk7Civlronoo50gPiBpbnN0YWxsOwor5ruy5ryPID4gc2VlcGFnZTsKK+iJpuWPqiA+IHdhcnNoaXA7Civmi7fmiZMgPiB0b1wtYmVhdDsKK+iBr+mCpiA+IGZlZGVyYWw7CivmvILms4ogPiBkcmlmdGVyOwor5Zm45pW4ID4gdG9ubmFnZTsKK+WVhuiojiA+IGRpc2N1c3M7CivllK7os6MgPiB0b1wtc2VsbDsKK+mmmeiPnCA+IHBhcnNsZXk7Civmtbfprq4gPiBzZWFmb29kOwor6Iel5oi/ID4gYmVkcm9vbTsKK+eroOevgCA+IGNoYXB0ZXI7Civmu7TmtYEgPiB0cmlja2xlOwor55aP5b+9ID4gbmVnbGVjdDsKK+WDpeWAliA+IGx1Y2tpbHk7Civmh7LnvbAgPiBwZW5hbHR5Owor5YKz5ZauID4gbGVhZmxldDsKK+mmmeiFuCA+IHNhdXNhZ2U7CivotbDnp4EgPiBzbXVnZ2xlOwor5bCI55SoID4gc3BlY2lhbDsKK+m+jeidpiA+IGxvYnN0ZXI7CivmjIflrpogPiBhcHBvaW50Owor5YOV5Lq6ID4gc2VydmFudDsKK+Wuuee0jSA+IGNvbnRhaW47Civkvq/niLUgPiBtYXJxdWlzOwor5qSw5a2QID4gY29jb251dDsKK+mRkuaIkiA+IHdhcm5pbmc7Civku6PoqZ4gPiBwcm9ub3VuOwor5Li56bqlID4gZGVubWFyazsKK+ewoeS7iyA+IHN1bW1hcnk7Civnlavlu4ogPiBnYWxsZXJ5Owor6Iel5a6kID4gYmVkcm9vbTsKK+aJs+apnyA+IHRyaWdnZXI7CivooZ3lipsgPiBpbXB1bHNlOwor5a6M576OID4gcGVyZmVjdDsKK+WxleacmyA+IG91dGxvb2s7Civnq4rnm5wgPiBidXJnbGFyOwor55Gj57SwID4gdHJpdmlhbDsKK+aMquWLlSA+IHRvXC1tb3ZlOwor5a6256a9ID4gcG91bHRyeTsKK+epuue8uiA+IHZhY2FuY3k7CivmnIDpq5ggPiBoaWdoZXN0Owor6auY5Y6fID4gcGxhdGVhdTsKK+eVq+WutiA+IHBhaW50ZXI7CivlsYjmm7IgPiBjcm9va2VkOwor5a246ICFID4gc2Nob2xhcjsKK+eWsuWLniA+IGZhdGlndWU7Civmu7/miYsgPiBoYW5kZnVsOwor5LiN6b2SID4gZGVzcGlzZTsKK+aKleaJiyA+IHBpdGNoZXI7CivmtbfpgoogPiBzZWFzaWRlOwor5oqK5oyBID4gY29udHJvbDsKK+WZgeW/gyA+IHRvXC1oYXRlOwor5bCL5rGCID4gdG9cLXNlZWs7CivmnKzpjKIgPiBjYXBpdGFsOwor6Ia95a2QID4gY291cmFnZTsKK+iAs+iqniA+IHdoaXNwZXI7CivlmbTloqggPiBpbmtcLWpldDsKK+S5i+mWkyA+IGJldHdlZW47CivmnInpmZAgPiBsaW1pdGVkOwor5omY5p62ID4gYnJhY2tldDsKK+WTgeizqiA+IHF1YWxpdHk7CivmnKzph5EgPiBjYXBpdGFsOwor6Yym57eeID4gYnJvY2FkZTsKK+m6u+mbgCA+IHNwYXJyb3c7CivmibbmjIEgPiB0b1wtaGVscDsKK+iZlOiqoCA+IHNpbmNlcmU7Civkv53mjIEgPiB0b1wta2VlcDsKK+aJtuaJiyA+IHJhaWxpbmc7CivmnIDplbcgPiBsb25nZXN0Owor5omz5omLID4gc3Bhbm5lcjsKK+S+v+aWvCA+IGVhc3lcLXRvOwor5rW36LGaID4gZG9scGhpbjsKK+aEm+ittyA+IGNoZXJpc2g7Civnr4DlhIkgPiB0aHJpZnR5Owor56We6auUID4gZ29kaGVhZDsKK+aJk+aTviA+IGRpc3R1cmI7CivkuK3plpMgPiBiZXR3aXh0Owor5L6G5q23ID4gaGlzdG9yeTsKK+aEn+imuiA+IHRvXC1mZWVsOwor56+E5L6LID4gZXhhbXBsZTsKK+WtpOeriyA+IGlzb2xhdGU7CivnlbbliY0gPiBjdXJyZW50Owor5bGk5a2QID4gc3RyYXR1bTsKK+acrOizqiA+IGVzc2VuY2U7CivnlKjlrZcgPiBkaWN0aW9uOwor6IGv57ayID4gbmV0d29yazsKK+a9m+S8jyA+IHRvXC1oaWRlOwor6IGv57WQID4gdG9cLWJpbmQ7CivnrqHliLYgPiBjb250cm9sOwor5L+D5oiQID4gcHJvY3VyZTsKK+WwiuaVrCA+IHJlc3BlY3Q7Civlronnk78gPiBhbXBvdWxlOwor6Iez5LiKID4gc3VwcmVtZTsKK+S4gOmghSA+IGFuXC1pdGVtOwor5oqE5a+rID4gdG9cLWNvcHk7CivotIXnmKQgPiB1c2VsZXNzOwor5riF55yfID4gaXNsYW1pYzsKK+eVq+WFkiA+IHBpY3R1cmU7CivllpzmraEgPiB0b1wtbGlrZTsKK+S7lOe0sCA+IGNhcmVmdWw7CivlsaDlpKsgPiBidXRjaGVyOwor5LiK6ZaAID4gZHJvcFwtaW47CivlrbjnlJ8gPiBzdHVkZW50Owor542O6YeRID4gcHJlbWl1bTsKK+S6uue+pCA+IGFcLWNyb3dkOwor55W25LuKID4gY3VycmVudDsKK+WBh+S9vyA+IHN1cHBvc2U7Civmm7TpgaAgPiBmYXJ0aGVyOwor5bCL5om+ID4gdG9cLXNlZWs7CivkvbXmop0gPiBkcmF3aW5nOwor5Lmf6KixID4gcGVyaGFwczsKK+mpmuWahyA+IGhvcnJpZnk7CivmibPlrZAgPiBzcGFubmVyOwor5oq95Ye6ID4gZXh0cmFjdDsKK+Wwt+WwrCA+IGF3a3dhcmQ7CivkuI3pjK8gPiBjb3JyZWN0Owor5qC45p+lID4gZXhhbWluZTsKK+S4memFriA+IGFjZXRvbmU7CivmiY3lubIgPiBhYmlsaXR5Owor6aaZ5rC0ID4gcGVyZnVtZTsKK+mmmeawoyA+IGluY2Vuc2U7CivlsI/lv4MgPiBjYXJlZnVsOwor5oiQ5paHID4gd3JpdHRlbjsKK+WQkOmcsiA+IHRvXC10ZWxsOwor6LaV5b+rID4gYXRcLW9uY2U7CivmnIPorbAgPiBtZWV0aW5nOwor6aOb6Ii5ID4gYWlyc2hpcDsKK+abvOiwtyA+IGJhbmdrb2s7CivlkYjpgIEgPiBwcmVzZW50Owor5Li76KmeID4gc3ViamVjdDsKK+ayiem7mCA+IHNpbGVuY2U7CivmiZPlrZcgPiB0b1wtdHlwZTsKK+ayiOm7mCA+IHNpbGVuY2U7Civot7Pli5UgPiB0b1wtYmVhdDsKK+a1geihjCA+IHBvcHVsYXI7CivkvZTmnIkgPiB0b1wtaGF2ZTsKK+WutOacgyA+IGJhbnF1ZXQ7Civog4zmo4QgPiBhYmFuZG9uOwor6aCY6ZqKID4gY2FwdGFpbjsKK+aciOidlSA+IGVjbGlwc2U7Civmib/lj5cgPiB0b1wtYmVhcjsKK+WAieS/gyA+IGh1cnJpZWQ7CivmipPlgrcgPiBzY3JhdGNoOwor5LiN6LO0ID4gbm90XC1iYWQ7CivogqXmsoMgPiBmZXJ0aWxlOwor5oSP576pID4gbWVhbmluZzsKK+WPrOmbhiA+IGNvbnZlbmU7CivnpZ7ot6EgPiBtaXJhY2xlOwor5L2/5b6SID4gYXBvc3RsZTsKK+a4hea0lyA+IHRvXC13YXNoOwor5ZGK6Ki0ID4gdG9cLXRlbGw7CivohLnlpKcgPiBzd29sbGVuOwor5Zac5oSbID4gdG9cLWxpa2U7Civlr7blr7YgPiBkYXJsaW5nOwor562J5YCZID4gd2FpdGluZzsKK+i3jOWIsCA+IHRvXC1mYWxsOwor5oe65oKUID4gY29uZmVzczsKK+aItuWkliA+IG91dGRvb3I7Civlr6zlrrkgPiBsZW5pZW50Owor6IO95bm5ID4gY2FwYWJsZTsKK+S4jeimiyA+IG5vdFwtc2VlOwor5L2P5oi/ID4gaG91c2luZzsKK+iAleeoriA+IHRvXC10aWxsOwor5oiw5aOrID4gZmlnaHRlcjsKK+e/oee/oCA+IGVtZXJhbGQ7CivlsIrlmrQgPiBkaWduaXR5Owor5a+G5bqmID4gZGVuc2l0eTsKK+WwluWPqyA+IHNjcmVlY2g7CivkvIHmpa0gPiBjb21wYW55Owor5a6J5pKrID4gcGxhY2F0ZTsKK+mggumHnSA+IHRoaW1ibGU7CivmoLjlrZAgPiBudWNsZWFyOwor5LyR5pyDID4gYWRqb3VybjsKK+iyoueJqSA+IHRyaWJ1dGU7Civmt5jmsrMgPiBwZWxpY2FuOwor6aOb55ukID4gZnJpc2JlZTsKK+a3mOawoyA+IG5hdWdodHk7CivpqI7lhbUgPiBjYXZhbHJ5Owor5oeK5oOxID4gYW5ub3llZDsKK+esrOS4gyA+IHNldmVudGg7CivmiZPlgJIgPiBmbGF0dGVuOwor5L+D5L2/ID4gc3B1clwtb247CivpoqjnrrEgPiBiZWxsb3dzOwor5rW055uGID4gYmF0aHR1YjsKK+e+pOiKsSA+IGJsb3Nzb207CivmiZjku5ggPiBlbnRydXN0Owor5qC95Z+5ID4gdG9cLWdyb3c7Civnp5Hnm64gPiBzdWJqZWN0Owor6aas5a2QID4gY29tbW9kZTsKK+i2iuWNlyA+IHZpZXRuYW07CivlronmhbAgPiBjb21mb3J0Owor56m65oiwID4gYWlyXC13YXI7CivmiJDlnIggPiB3cmVhdGhlOwor5oeJ5b6XID4gZGVzZXJ2ZTsKK+aIsOWLnSA+IHByZXZhaWw7CivkuI3oi58gPiBub3RcLWxheDsKK+S9j+WuvyA+IGxvZGdpbmc7CivotIrmiJAgPiBhcHByb3ZlOwor6K6K6YG3ID4gY2hhbmdlczsKK+acquefpSA+IHVua25vd247Civmg4Xnt5IgPiBmZWVsaW5nOwor5bCB5YWlID4gaW5jbG9zZTsKK+mHjuiykyA+IHdpbGRjYXQ7Civku6Pmm78gPiBpbnN0ZWFkOwor5qGI5Y23ID4gcmVjb3JkczsKK+aCo+iAhSA+IHBhdGllbnQ7CivkvobliLAgPiB0b1wtY29tZTsKK+S7o+aVuCA+IGFsZ2VicmE7CivmnKjnk6YgPiBzaGluZ2xlOwor5oiQ5YqfID4gc3VjY2VzczsKK+S4reeriyA+IG5ldXRyYWw7Civnj77mmYIgPiBjdXJyZW50Owor5LiW57SAID4gY2VudHVyeTsKK+S9juWcsCA+IGxvd2xhbmQ7CivmtbfmvqEgPiBzZWF3ZWVkOwor5ZCr576pID4gbWVhbmluZzsKK+S7iuaZmiA+IHRvbmlnaHQ7Civph5Hono0gPiBiYW5raW5nOwor5ZOA5rGCID4gZW50cmVhdDsKK+a0l+emriA+IGJhcHRpc207CivlrbjlrrYgPiBzY2hvbGFyOwor5aaT6ZmiID4gYnJvdGhlbDsKK+S4jeetiSA+IHRvXC12YXJ5Owor6aGv56S6ID4gdG9cLXNob3c7CivljZrpm4UgPiBsZWFybmVkOwor6Z2S6a2aID4gaGVycmluZzsKK+mmrOWFtyA+IGhhcm5lc3M7CivlkI3nvqkgPiB0aXR1bGFyOwor5LiN56WlID4gb21pbm91czsKK+a2iOaltSA+IHBhc3NpdmU7CivmsLTpioAgPiBtZXJjdXJ5Owor5pqI6Ii5ID4gc2Vhc2ljazsKK+iBt+W3pSA+IHdvcmtlcnM7Civml6XplpMgPiBkYXl0aW1lOwor5a2f5a2QID4gbWVuY2l1czsKK+elnuelliA+IGdvZGhlYWQ7Civmm4nnpLogPiB0b1wtdGVsbDsKK+iSuOmkviA+IGRpc3RpbGw7CivlrozlloQgPiBwZXJmZWN0Owor5oKy55ebID4gZ3JpZXZlZDsKK+WumOWPuCA+IGxhd3N1aXQ7CivpnZ7pm6MgPiByZXByb29mOwor5rC46YGgID4gZm9yZXZlcjsKK+mFrOi8iSA+IHBheWxvYWQ7Civogb3lr6sgPiBkaWN0YXRlOwor5aeU6KiXID4gZW50cnVzdDsKK+iZp+aQjSA+IGRlZmljaXQ7CivpurvnhakgPiB0cm91YmxlOwor6aas5LiKID4gYXRcLW9uY2U7Civmma/oibIgPiBzY2VuZXJ5Owor56WI56axID4gdG9cLXByYXk7Civlv73oppYgPiBuZWdsZWN0Owor6K2P6KqaID4gY3luaWNhbDsKK+eiuuiqjSA+IGNvbmZpcm07CivnjovmrIogPiByb3lhbHR5Owor5pa56Z2iID4gcmVzcGVjdDsKK+WPpOiAgSA+IGFuY2llbnQ7CivkvIHlnJYgPiBhdHRlbXB0Owor6aGM55uuID4gc3ViamVjdDsKK+axoeihiiA+IHNsYW5kZXI7CivnvoXnm6QgPiBjb21wYXNzOwor54++5a+mID4gcmVhbGl0eTsKK+izquWcsCA+IHRleHR1cmU7Civkub7ml7EgPiBkcm91Z2h0Owor54+N5oSbID4gY2hlcmlzaDsKK+i0iuWKqSA+IHNwb25zb3I7Civlv6DoqqAgPiBkZXZvdGVkOwor5paR6aeuID4gbW90dGxlZDsKK+mEremHjSA+IHNlcmlvdXM7CivljYfpgbcgPiBwcm9tb3RlOwor5Y2K6YCUID4gaGFsZndheTsKK+WPjeiAjCA+IGluc3RlYWQ7Civlpb3ovYkgPiBpbXByb3ZlOwor546L5pydID4gZHluYXN0eTsKK+aDoeajjSA+IHZpbGxhaW47CivljYrot68gPiBoYWxmd2F5Owor5pW06auUID4gb3ZlcmFsbDsKK+e+veavmyA+IGZlYXRoZXI7CivmhJ/mg4UgPiBmZWVsaW5nOwor6by75a2UID4gbm9zdHJpbDsKK+WTgOaAnSA+IHBlbnNpdmU7Civku7vli5kgPiBtaXNzaW9uOwor5oSb5oOcID4gY2hlcmlzaDsKK+eMlueNlyA+IHJhbXBhbnQ7CivmnpzlnJIgPiBvcmNoYXJkOwor5peB6YKKID4gbGF0ZXJhbDsKK+miqOaZryA+IHNjZW5lcnk7CivptJXps6UgPiBvc3RyaWNoOwor6Yac6IGeID4gc2NhbmRhbDsKK+mjveWtuCA+IGxlYXJuZWQ7CivmrpjpqrggPiByZW1haW5zOwor5paH6ZuFID4gZWxlZ2FudDsKK+mjm+W9iCA+IG1pc3NpbGU7Civogb3lipsgPiBoZWFyaW5nOwor5Lu/5YKaID4gdG9cLWNvcHk7Civml6XoqowgPiBqb3VybmFsOwor5aSW6Z2iID4gb3V0c2lkZTsKK+mgkeeariA+IG5hdWdodHk7CivmmrTng4ggPiB2aW9sZW50Owor6ZuE6buDID4gcmVhbGdhcjsKK+acg+acnyA+IHNlc3Npb247CivkuI3ms5UgPiBsYXdsZXNzOwor5ZGo5pyrID4gd2Vla2VuZDsKK+a3oeWFiSA+IHNoaW1tZXI7CivpoZ7mr5QgPiBhbmFsb2d5Owor6Ku66KqeID4gcHJvdmVyYjsKK+Wkp+mMryA+IGJsdW5kZXI7CivogIHlubQgPiBlbGRlcmx5Owor5Lif5qOEID4gZGlzY2FyZDsKK+iAgeW4qyA+IHRlYWNoZXI7CivorornoawgPiBzdGlmZmVuOwor5rW35bK4ID4gY29hc3RhbDsKK+aXpeidlSA+IGVjbGlwc2U7CivnpKbniakgPiBtaW5lcmFsOwor6LG55a2QID4gbGVvcGFyZDsKK+Wlh+i5nyA+IG1pcmFjbGU7Civmr5TovIMgPiBjb21wYXJlOwor5aWH6LehID4gbWlyYWNsZTsKK+S7peS+vyA+IHNvXC10aGF0Owor6JGX6Zm4ID4gbGFuZGluZzsKK+W8temWiyA+IHN0cmV0Y2g7CivlpKfpg70gPiBnZW5lcmFsOwor5aW96JmVID4gYmVuZWZpdDsKK+enkeWtuCA+IHNjaWVuY2U7CivmhJvlpb0gPiB0b1wtbGlrZTsKK+a2suWMliA+IGxpcXVpZnk7CivphJnoppYgPiBkZXNwaXNlOwor5pu05o+bID4gcmVwbGFjZTsKK+aWueiogCA+IGRpYWxlY3Q7Civlj6TniakgPiBhbnRpcXVlOwor5pel6JC9ID4gc3VuZG93bjsKK+elnuagvCA+IGdvZGhlYWQ7CivmnKzlsYYgPiBjdXJyZW50Owor6YO16LK7ID4gcG9zdGFnZTsKK+abluaYpyA+IGlsbGljaXQ7CivlpoLoirEgPiBmbG93ZXJ5Owor6Z6t562WID4gc3B1clwtb247Civmg4XmhJ8gPiBmZWVsaW5nOwor5Li55b+DID4gbG95YWx0eTsKK+mbhOmbniA+IHJvb3N0ZXI7Civmsr/mtbcgPiBjb2FzdGFsOwor5pS+6ZaLID4gdW5sZWFzaDsKK+e5quijvSA+IHRvXC1kcmF3Owor5Lit5oCnID4gbmV1dHJhbDsKK+mEmeiWhCA+IGRlc3Bpc2U7CivoqrnorJcgPiBzbGFuZGVyOwor5oCq54mpID4gbW9uc3RlcjsKK+W+qeiIiCA+IHJlc3RvcmU7Civmtonlj4ogPiBpbnZvbHZlOwor576o5oWVID4gZW52aW91czsKK+WMheijuSA+IHdyYXBcLXVwOwor6JGX6L+wID4gd3JpdGluZzsKK+WkluiyjCA+IHByb2ZpbGU7CivppIXkub4gPiBiaXNjdWl0Owor5pyJ5a6zID4gaGFybWZ1bDsKK+mFkueyviA+IGFsY29ob2w7CivnpL7mnIMgPiBzb2NpZXR5Owor576e5oSnID4gYXNoYW1lZDsKK+S4u+WwjiA+IHRvXC1sZWFkOwor5pq05pS/ID4gdHlyYW5ueTsKK+aEn+WIsCA+IHRvXC1mZWVsOwor546L5ZyLID4ga2luZ2RvbTsKK+aYk+eijiA+IGJyaXR0bGU7Civph5jmrbsgPiBjcnVjaWZ5Owor6aGn5b+MID4gc2NydXBsZTsKK+aEiOWQiCA+IHRvXC1oZWFsOwor5ZOA5YK3ID4gZ3JpZXZlZDsKK+aVuOipniA+IG51bWVyYWw7CivoqbPov7AgPiByZWNvdW50Owor5Ymp6aSYID4gc3VycGx1czsKK+mhmOaEjyA+IHRvXC13aXNoOwor5YyF6JePID4gY29udGFpbjsKK+eOqeWFkiA+IHRvXC1wbGF5Owor5Lit5a2QID4gbmV1dHJvbjsKK+mHkeapmCA+IGt1bXF1YXQ7CivpnIDopoEgPiB0b1wtbmVlZDsKK+aClOaBqCA+IHJlbW9yc2U7CivlkKvmhI8gPiBtZWFuaW5nOwor5pyA5aSnID4gYmlnZ2VzdDsKK+acgOWkmiA+IGF0XC1tb3N0Owor5puJ5b6XID4gdG9cLWtub3c7CivogJXkvZwgPiBmYXJtaW5nOwor5oCl5rWBID4gdG9ycmVudDsKK+e9t+aJiyA+IGdpdmVcLXVwOwor6ICB5YW1ID4gdmV0ZXJhbjsKK+iAgeWFrCA+IGh1c2JhbmQ7Civlo5Pov6sgPiBvcHByZXNzOwor54yc5oOzID4gc3VwcG9zZTsKK+S4reWkriA+IGNlbnRyYWw7CivpmorplbcgPiBjYXB0YWluOwor56Cy6Ie6ID4gYmF0dGVyeTsKK+S5j+WRsyA+IHRlZGlvdXM7CivwoZyxID4gdG9cLWVudnk7Civmk6/pmaQgPiBkaXNjYXJkOwor57eo6YCgID4gY29tcGlsZTsKK+S4iuWwhyA+IGdlbmVyYWw7CivlkbzlkLggPiBicmVhdGhlOwor8KKYuCA+IHRvXC1oYXRlOwor54yc5bqmID4gc3VybWlzZTsKK+WRu+WQnyA+IHRvXC1tb2FuOwor54mp55CGID4gcGh5c2ljczsKK+mBtOmBuCA+IHRvXC1waWNrOwor54it56uvID4gZGlzcHV0ZTsKK+Wls+elniA+IGdvZGRlc3M7Civmg7Plg48gPiBpbWFnaW5lOwor5byV6KiAID4gZm9yd2FyZDsKK+WQjOW/lyA+IGNvbXJhZGU7CivljIXnvoUgPiBpbmNsdWRlOwor5LiN5aW9ID4gbm9cLWdvb2Q7CivorozmnIMgPiBiYW5xdWV0Owor5peF56iLID4gam91cm5leTsKK+acrOS6iyA+IGFiaWxpdHk7Civph4vmlL4gPiByZWxlYXNlOwor5rKS5pyJID4gaGF2ZW4nJ3Q7CivljZfnk5wgPiBwdW1wa2luOwor6K6K5pqWID4gd2FybWluZzsKK+awo+eQgyA+IGJhbGxvb247Civni4LmmrQgPiBmcmFudGljOwor5LiI5aSrID4gaHVzYmFuZDsKK+elnuWlsyA+IGdvZGRlc3M7CivlkIrluoogPiBoYW1tb2NrOwor5Y+K5pmCID4gaW5cLXRpbWU7CivlppbniakgPiBtb25zdGVyOwor6YOo572yID4gZGlzcG9zZTsKK+S5n+S4jSA+IG5laXRoZXI7Civlj6/mhpAgPiBwaXRpZnVsOwor5aWz55qHID4gZW1wcmVzczsKK+WinumAsiA+IHByb21vdGU7CivpgZnpgaAgPiBkaXN0YW50Owor6YGZ6YGZID4gZGlzdGFudDsKK+ipleirliA+IGNvbW1lbnQ7CivkuIDlpKkgPiBvbmVcLWRheTsKK+WPr+aEmyA+IGFtaWFibGU7CivmlLnoo50gPiByZW1vZGVsOwor54m95raJID4gaW52b2x2ZTsKK+mYv+mjmyA+IGhvb2RsdW07Civlj6/mgaggPiBoYXRlZnVsOwor5oKy5ZOAID4gZ3JpZXZlZDsKK+mhp+WVjyA+IGFkdmlzZXI7CivlpKnnt5ogPiBhbnRlbm5hOwor5Yuz57i+ID4gZXhwbG9pdDsKK+azleWumCA+IGFcLWp1ZGdlOwor576O5ZyLID4gYW1lcmljYTsKK+acgOS9syA+IG9wdGltdW07Civlub3pnYggPiBzcGVjdGVyOwor6YGL6L2JID4gdG9cLXdvcms7Civpm7fogbIgPiB0aHVuZGVyOwor6YGL6Ly4ID4gdHJhbnNpdDsKK+eJueauiiA+IHNwZWNpYWw7CivmgrLliocgPiB0cmFnZWR5Owor55+z6IaPID4gcGxhc3RlcjsKK+abuOS/oSA+IGVwaXN0bGU7Civluqbph48gPiBtZWFzdXJlOwor57aT6Yq3ID4gdG9cLXNlbGw7Civlio3ooZMgPiBmZW5jaW5nOwor5Y+b5b6SID4gdHJhaXRvcjsKK+iou+inoyA+IGNvbW1lbnQ7CivntrLot68gPiBuZXR3b3JrOwor5LiK5Y2IID4gbW9ybmluZzsKK+e3kuiogCA+IHByZWZhY2U7CivoqLToqJ8gPiBsYXdzdWl0Owor6KqH6ICAID4gcHJvdWRseTsKK+aWh+eroCA+IGFydGljbGU7CivnvLrluK0gPiBhYnNlbmNlOwor5LiA5Y+jID4gcmVhZGlseTsKK+WQruWQuCA+IHRvXC1zdWNrOwor5LiD5Y2BID4gc2V2ZW50eTsKK+eLguaAkiA+IGZ1cmlvdXM7CivmlrDnlJ8gPiBuZXdib3JuOwor6Zqx6JePID4gdG9cLWhpZGU7CivntpPpgY4gPiB0b1wtcGFzczsKK+S4jeWGjSA+IG5vXC1tb3JlOwor6Zqx6JS9ID4gY29uY2VhbDsKK+S4luS/lyA+IHByb2ZhbmU7CivmgJ3mg7MgPiB0aG91Z2h0Owor5bm06ZGRID4gYWxtYW5hYzsKK+aUueiJryA+IGltcHJvdmU7CivmgKXlv5kgPiBoYXN0aWx5Owor57mq55WrID4gZHJhd2luZzsKK+avlOeVqyA+IGdlc3R1cmU7Civnh4jnsaAgPiBsYW50ZXJuOwor57eo6JGXID4gY29tcGlsZTsKK+itpuaIkiA+IHRvXC13YXJuOwor57at6K23ID4gZGVmZW5zZTsKK+mHj+WtkCA+IHF1YW50dW07CivnjL/kurogPiBhcGVcLW1hbjsKK+WPq+WlvSA+IGFwcGxhdWQ7CivpoZ7kvLwgPiBzaW1pbGFyOwor6YCQ6YCAID4gcmVwdWxzZTsKK+eisOaSniA+IGNvbGxpZGU7Civms6jlhaUgPiBwb3VyXC1pbjsKK+mgguWkmiA+IGF0XC1tb3N0Owor5YmN6KiAID4gcHJlZmFjZTsKK+mdnuazlSA+IGlsbGVnYWw7CivmsLTmmbYgPiBjcnlzdGFsOwor5q2j576pID4ganVzdGljZTsKK+aZmuWutCA+IGJhbnF1ZXQ7CivlkJHliY0gPiBmb3J3YXJkOwor6L6v6aeBID4gZGlzcHV0ZTsKK+W+nuatpCA+IHRoZW5jZTsKK+mzpee+vSA+IHBpbmlvbjsKK+WgsemFrCA+IHJld2FyZDsKK+e3qOiAhSA+IGVkaXRvcjsKK+iqpOeUqCA+IG1pc3VzZTsKK+WklueUpSA+IG5lcGhldzsKK+mHjeWbniA+IHJldHVybjsKK+W8t+ebnCA+IGJhbmRpdDsKK+ipqeevhyA+IHBzYWxtczsKK+aWueazlSA+IG1ldGhvZDsKK+aUv+etliA+IHBvbGljeTsKK+mAg+i1sCA+IGVzY2FwZTsKK+itpuWvnyA+IHBvbGljZTsKK+azleS7pCA+IGRlY3JlZTsKK+WNseaHvCA+IGFmcmFpZDsKK+e9quS6uiA+IHNpbm5lcjsKK+Wkp+eCriA+IGNhbm5vbjsKK+Wkp+eBvSA+IHBsYWd1ZTsKK+WLg+eZvCA+IHRocml2ZTsKK+WQieS7liA+IGd1aXRhcjsKK+WMhea2tSA+IGV4Y3VzZTsKK+avgOa7hSA+IHBlcmlzaDsKK+W4tumHpiA+IGJ1Y2tsZTsKK+eiuuWvpiA+IGluZGVlZDsKK+WLleeJqSA+IGFuaW1hbDsKK+e3iue4riA+IHJlZHVjZTsKK+eHkueEpiA+IHNjb3JjaDsKK+mgmOS6iyA+IGNvbnN1bDsKK+Wkp+a1qiA+IGJpbGxvdzsKK+edoeiRlyA+IGFzbGVlcDsKK+iuiuWMliA+IGNoYW5nZTsKK+awo+aBryA+IGJyZWF0aDsKK+aTsee9riA+IHNoZWx2ZTsKK+iuiuWLlSA+IGNoYW5nZTsKK+aVtOa9lCA+IG5lYXRseTsKK+aXqOaEjyA+IGRlY3JlZTsKK+W8iueXhSA+IG1hbGFkeTsKK+mBuOelqCA+IGFcLXZvdGU7Civlib3nq4ogPiBwaXJhdGU7Civnt6jnorwgPiBjb2Rpbmc7CivphInmnZEgPiBydXN0aWM7Civlt6jpoK0gPiB0eWNvb247CivpoILkuosgPiB1c2VmdWw7CivmkpXoo4IgPiBtYW5nbGU7CivpmYTokZcgPiBhZGhlcmU7CivmraPnlbYgPiB0aW1lbHk7CivmgJLlkLwgPiBiZWxsb3c7CivlpYfmma8gPiBtYXJ2ZWw7CivniYjlvI8gPiBmb3JtYXQ7CivpgaDnqIsgPiByZW1vdGU7CivnuK7muJsgPiB0b1wtY3V0Owor5Y2K5b6RID4gcmFkaXVzOwor56Oo5YWJID4gcG9saXNoOwor6a6t6a2aID4gc2FsbW9uOwor6ZmN6IeoID4gYmVmYWxsOwor6Kqy5qWtID4gbGVzc29uOwor6Yac5YyWID4gZGVmYW1lOwor6KeS6JC9ID4gY29ybmVyOwor54uC5Lq6ID4gbWFkbWFuOwor5pmC5Yi7ID4gbW9tZW50Owor5aSn5qG2ID4gYmFycmVsOwor55yL6KaLID4gdG9cLXNlZTsKK+e3o+eUsSA+IHJlYXNvbjsKK+ino+iEqyA+IHJlbGllZjsKK+egtOaVlyA+IGJlYXRlbjsKK+aXl+W5nyA+IGVuc2lnbjsKK+awtOWjuiA+IGtldHRsZTsKK+auluawkSA+IGNvbG9ueTsKK+aXi+W+iyA+IG1lbG9keTsKK+mDteaUvyA+IHBvc3RhbDsKK+mdtuWtkCA+IHRhcmdldDsKK+W+jOaClCA+IHJlZ3JldDsKK+WLleapnyA+IG1vdGl2ZTsKK+WOreWApiA+IGRyZWFyeTsKK+W+kOW+kCA+IHNsb3dseTsKK+WFp+mZuCA+IGlubGFuZDsKK+W3pemMoiA+IHNhbGFyeTsKK+WFrOmWiyA+IHB1YmxpYzsKK+WOn+WFiCA+IGZvcm1lcjsKK+WFq+mWiyA+IG9jdGF2bzsKK+eGiueGiiA+IHJhZ2luZzsKK+i+r+irliA+IGRlYmF0ZTsKK+efreatjCA+IGJhbGxhZDsKK+WNmuWjqyA+IGRvY3RvcjsKK+WltuWtkCA+IGJyZWFzdDsKK+W/oOWRiiA+IGFkdmljZTsKK+egsuaJiyA+IGd1bm5lcjsKK+WkmuaYnyA+IHN0YXJyeTsKK+W+i+W4qyA+IGxhd3llcjsKK+W+ruWmmSA+IHN1YnRsZTsKK+WlveWlvSA+IG5pY2VseTsKK+e4veaYryA+IGFsd2F5czsKK+mWi+mOliA+IHVubG9jazsKK+atpea4rCA+IHBhY2luZzsKK+eHn+aVkSA+IHJlc2N1ZTsKK+aVrOacjSA+IGFkbWlyZTsKK+mFrOWLniA+IHJld2FyZDsKK+W+l+WunCA+IHByb3BlcjsKK+WInee0miA+IGp1bmlvcjsKK+i8lemshiA+IGdlbnRsZTsKK+eIkOW6iiA+IGhlYXJ0aDsKK+isiuWgsSA+IHRvXC1saWU7Civnorrkv50gPiBlbnN1cmU7CivpgYvnlKggPiB0b1wtdXNlOwor5aSp5omNID4gdGFsZW50Owor57Wy57WoID4gdmVsdmV0Owor6YGT55CGID4gcmVhc29uOwor5pSq5re3ID4gdG9cLW1peDsKK+WjveadkCA+IGNvZmZpbjsKK+ino+etlCA+IGFuc3dlcjsKK+eJiOWcliA+IGRvbWFpbjsKK+aUv+asiiA+IHJlZ2ltZTsKK+W+iOWwkSA+IHNlbGRvbTsKK+eIteWjqyA+IGtuaWdodDsKK+ilr+ijoSA+IGxpbmluZzsKK+ismeWSjCA+IG1lZWtseTsKK+e2sueQgyA+IHRlbm5pczsKK+iNkuiVqiA+IGJhcnJlbjsKK+WMheW6hyA+IHNoaWVsZDsKK+WIhue1piA+IGRpdmlkZTsKK+WkqeaApyA+IGluYm9ybjsKK+atkOa0siA+IGV1cm9wZTsKK+WLvuW8lSA+IHNlZHVjZTsKK+eZvemKgCA+IHNpbHZlcjsKK+eGseacmyA+IGFzcGlyZTsKK+eyvumBuCA+IGNob3NlbjsKK+aViOaenCA+IHJlc3VsdDsKK+iqmOaLkCA+IGFiZHVjdDsKK+iqoOaHhyA+IGhlYXJ0eTsKK+mAmuefpSA+IG5vdGlmeTsKK+WIuueXmyA+IHRpbmdsZTsKK+W+teWPrCA+IGVubGlzdDsKK+atoeaogiA+IGdhaWV0eTsKK+e0q+iJsiA+IHB1cnBsZTsKK+ijoemdoiA+IGluc2lkZTsKK+WFiOmLkiA+IGhlcmFsZDsKK+W5s+epqSA+IHNtb290aDsKK+aVteaEjyA+IGVubWl0eTsKK+W3tOilvyA+IGJyYXppbDsKK+eJqeS7tiA+IG9iamVjdDsKK+WNuOS4iyA+IHVubG9hZDsKK+WMheWuuSA+IHBhcmRvbjsKK+iqmOaDkSA+IGVudGljZTsKK+eJp+S6uiA+IHBhc3RvcjsKK+Winua3uyA+IGFkZFwtdG87CivlpJblvaIgPiBmaWd1cmU7Civpm4bmnIMgPiBnYXRoZXI7CivpmqjmqZ8gPiByYW5kb207CivlhbXoroogPiBtdXRpbnk7CivmlY/mjbcgPiBuaW1ibGU7CivniZvku5QgPiBjb3dib3k7Civmj5DphpIgPiByZW1pbmQ7Civop7jniq8gPiBvZmZlbmQ7Civlparlj5YgPiBzbmF0Y2g7CivlpKvlrZAgPiBwZWRhbnQ7CivlpKrlrZAgPiBwcmluY2U7CivmjqHpm4YgPiBnYXRoZXI7CivnnJ/nqbogPiB2YWN1XDptOwor5q665a6zID4gbXVyZGVyOwor5q6Y5b+NID4gYmxvb2R5Owor6ZaS6KmxID4gZ29zc2lwOwor55y855quID4gZXllbGlkOwor57Sw57eaID4gc3RyaW5nOwor6L6t6IG3ID4gcmVzaWduOwor6YSZ5ZCdID4gdnVsZ2FyOwor57ea5qKdID4gc3RyZWFrOwor6bS/5a2QID4gcGlnZW9uOwor5b6S5YueID4gZnV0aWxlOwor5b6X5YiwID4gdG9cLWdldDsKK+i9ieiuiiA+IGNoYW5nZTsKK+e0sOeyiSA+IHBvd2RlcjsKK+iqoOWvpiA+IGhvbmVzdDsKK+W4jOiHmCA+IGdyZWVjZTsKK+mbo+W+lyA+IHNlbGRvbTsKK+Wkp+WkqyA+IGRvY3RvcjsKK+aVuOWtlyA+IG51bWJlcjsKK+a/uumWiyA+IHNwbGFzaDsKK+aUu+aJkyA+IGF0dGFjazsKK+mBiuattyA+IHRyYXZlbDsKK+WJm+atoyA+IGhvbmVzdDsKK+W+qeS7hyA+IGF2ZW5nZTsKK+majuairyA+IGxhZGRlcjsKK+Wjk+aJgSA+IHNxdWFzaDsKK+ipqeaEjyA+IHBvZXRpYzsKK+e3o+aVhSA+IHJlYXNvbjsKK+aUneaUvyA+IHJlZ2VudDsKK+W+nuS+hiA+IGFsd2F5czsKK+aomeiqniA+IHNsb2dhbjsKK+e4ruWwjyA+IHJlZHVjZTsKK+eZvOiqkyA+IHRvXC12b3c7CivmqaHohqAgPiBydWJiZXI7CivlnLDpkLUgPiBzdWJ3YXk7Civpm4zmgKcgPiBmZW1hbGU7CivljYHkuIAgPiBlbGV2ZW47Civlvp7kuosgPiBnb1wtZm9yOwor54ax5bi2ID4gdHJvcGljOwor6Zuc5belID4gcG9ydGVyOwor5Ye655SiID4gb3V0cHV0Owor5aWi5L6IID4gbHV4dXJ5Owor6JKZ5Y+XID4gc3VmZmVyOwor5o6b6YmkID4gY291cGxlOwor57SU57K5ID4gcHVyZWx5Owor5aSP5aSpID4gc3VtbWVyOwor6YSZ5L+aID4gdnVsZ2FyOwor6YSZ5L+XID4gdnVsZ2FyOwor6Zyy5Ye6ID4gZXhwb3NlOwor5pSA5piHID4gcmlzaW5nOwor54Wp5pO+ID4gYm90aGVyOwor6Kej5ri0ID4gcXVlbmNoOwor6YG65oa+ID4gcmVncmV0Owor5q2M5omLID4gc2luZ2VyOwor5beh6IiqID4gY3J1aXNlOwor5biD57eaID4gd2lyaW5nOwor5q2j5byPID4gZm9ybWFsOwor5Yaw566xID4gaWNlYm94Owor57O757WxID4gc3lzdGVtOwor54Sh5rOVID4gdW5hYmxlOwor6YCV5rWBID4gcnVub2ZmOwor5aS+5YWLID4gamFja2V0Owor5aSn5ZCDID4gZ29iYmxlOwor5q+r5LiNID4gaGFyZGx5Owor6YGT5pWZID4gdGFvaXNtOwor6Ki65omAID4gY2xpbmljOwor6YG65oGoID4gZ3J1ZGdlOwor5pO05pWjID4gc3ByZWFkOwor6ayG6aSFID4gbXVmZmluOwor5pOv5palID4gcmVqZWN0Owor5Yqg5bSZID4gZ2FsbG9uOwor5aWH5LqLID4gbWFydmVsOwor5pWZ5aCCID4gY2h1cmNoOwor6Kme5bC+ID4gc3VmZml4Owor6YCx5pyfID4gcGVyaW9kOwor6Zu25ZSuID4gcmV0YWlsOwor5qu75qGDID4gY2hlcnJ5Owor5Zyo6LuKID4gYWJvYXJkOwor6Iy256KXID4gdGVhY3VwOwor57ee5bi2ID4gcmliYm9uOwor5YiG5rS+ID4gYXNzaWduOwor55a+6aazID4gZ2FsbG9wOwor57eK5oClID4gdXJnZW50Owor5buB5omAID4gdG9pbGV0Owor5bqm5pW4ID4gZGVncmVlOwor6Zi75qmIID4gdGh3YXJ0Owor5o6n6Ki0ID4gYWNjdXNlOwor5pCW57GDID4gY3JhZGxlOwor6JGX5ZCNID4gZmFtb3VzOwor5by35YuiID4gbWlnaHR5Owor57Su54efID4gZW5jYW1wOwor57aB5p62ID4ga2lkbmFwOwor5Ye55rSeID4gY2F2aXR5Owor5byx5YyWID4gd2Vha2VuOwor6Zmw5oi2ID4gdmFnaW5hOwor5pOK5pWXID4gZGVmZWF0Owor6YCy5o6lID4gYWNjZXNzOwor55+t5Y+lID4gY2xhdXNlOwor57WV5rCjID4gZXhwaXJlOwor6Ki85a+mID4gdmVyaWZ5Owor6YCj5pOKID4gYmF0dGVyOwor5pWZ5Y2AID4gcGFyaXNoOwor6YCu5o2VID4gYXJyZXN0Owor55uj542EID4gcHJpc29uOwor54Gr566tID4gcm9ja2V0Owor6Zqx5aOrID4gaGVybWl0Owor6Iq56I+cID4gY2VsZXJ5Owor55+t5YqNID4gZGFnZ2VyOwor6Iqt6JWJID4gYmFuYW5hOwor5by35YGlID4gc3R1cmR5Owor5q2m5ZmoID4gd2VhcG9uOwor6IiM6aCtID4gdG9uZ3VlOwor54Wk5bGRID4gY2luZGVyOwor5bmz5p2/ID4gdGFibGV0Owor5Ye55qe9ID4gc29ja2V0Owor6KiY5bizID4gY2hhcmdlOwor5Yiu5o6JID4gc2NyYXBlOwor6Zmw5b2xID4gc2hhZG93Owor6auY6ZuFID4gZGFpbnR5Owor5q2h5ZacID4gam95ZnVsOwor5YiG5p6dID4gYnJhbmNoOwor5YmK5byxID4gd2Vha2VuOwor5q2l5ZOoID4gc2VudHJ5Owor5pCq55O3ID4gZW5hbWVsOwor5YKz6YGUID4gY29udmV5Owor5pO05bGVID4gZXh0ZW5kOwor5YiG5pyDID4gYnJhbmNoOwor5r+A6LW3ID4gYXJvdXNlOwor6KGh6YePID4gd2VpZ2h0Owor6aqo6auTID4gbWFycm93Owor5pCU55miID4gdGlja2xlOwor6ZuV5YOPID4gc3RhdHVlOwor5q2j5Y2IID4gbWlkZGF5Owor5pKr5oqxID4gY2FyZXNzOwor5YWs55y+ID4gcHVibGljOwor5pWR5Li7ID4gc2F2aW9yOwor57KY57KYID4gc3RpY2t5Owor5q235L6GID4gYWx3YXlzOwor5pSq5YuVID4gdG9cLW1peDsKK+ihl+mBkyA+IHN0cmVldDsKK+W3tOeIviA+IGJhbHRpYzsKK+eahOeiuiA+IHJlYWxseTsKK+mBjuWksSA+IGRlZmVjdDsKK+mVt+efrSA+IGxlbmd0aDsKK+W5q+aJiyA+IGhlbHBlcjsKK+ato+WAvCA+IGhvbmVzdDsKK+WFrOeUqCA+IHB1YmxpYzsKK+mBreWPlyA+IHN1ZmZlcjsKK+mZhOW6uCA+IHZhc3NhbDsKK+ebruaomSA+IHRhcmdldDsKK+mBqeWQiCA+IHRvXC1maXQ7Civpq5jpgZQgPiBhdHRhaW47Civoo5zntaYgPiBzdXBwbHk7CivoirHnsokgPiBwb2xsZW47CivlhajnkIMgPiBlbnRpcmU7CivmjJHpgbggPiBjaG9vc2U7Civpga3liLAgPiBzdWZmZXI7Civnmb3nl7QgPiBpZGlvY3k7Civls73osLcgPiBjYW55b247Civlmarpn7MgPiBydW1ibGU7CivmjY3ooZsgPiBkZWZlbmQ7CivooajopqogPiBjb3VzaW47Civop4Dlv7UgPiBub3Rpb247Civoo4HnuKsgPiB0YWlsb3I7CivmjqHntI0gPiBhY2NlcHQ7Civoo5znqK4gPiByZXNlZWQ7CivlhYHnlbYgPiBwcm9wZXI7CivlhrDmn7EgPiBpY2ljbGU7CivplrHmrbcgPiB0b1wtc2VlOwor5Z2m55m9ID4gaG9uZXN0Owor6Ziy5a6IID4gZGVmZW5kOwor6Zi/5aeoID4gYXVudGllOwor6I2J5paZID4gZm9kZGVyOwor57ea5LiKID4gb25saW5lOwor5Ye65bitID4gYXR0ZW5kOwor6ama6aetID4gZnJpZ2h0Owor57Sg5o+PID4gc2tldGNoOwor5YWH54ybID4gZmllcmNlOwor6ZaS5re3ID4gbG9pdGVyOwor5pGf5oqxID4gdG9cLWh1ZzsKK+iHqui6qyA+IGl0c2VsZjsKK+mAsuWPoyA+IGltcG9ydDsKK+aOoeekpiA+IG1pbmluZzsKK+aTvuS6giA+IGluZmVzdDsKK+e1kOWwviA+IGVuZGluZzsKK+mWo+aokyA+IGdhcnJldDsKK+iKseeUnyA+IHBlYW51dDsKK+mBjuS7vSA+IHVuZHVseTsKK+mpn+mbqCA+IHNob3dlcjsKK+W5g+W5lSA+IHNjcmVlbjsKK+aQtuaVkSA+IHJlc2N1ZTsKK+WFiea+pCA+IGx1c3RlcjsKK+aQnOafpSA+IHNlYXJjaDsKK+mAneWOuyA+IGVsYXBzZTsKK+WFiea8hiA+IGVuYW1lbDsKK+aQreaVkSA+IHJlc2N1ZTsKK+WFiea7kSA+IGdsb3NzeTsKK+mAleWQkSA+IHJhZGlhbDsKK+Wxj+miqCA+IHNjcmVlbjsKK+mAvOS7hCA+IG5hcnJvdzsKK+ebuOW3riA+IGRpZmZlcjsKK+mXnOW/gyA+IGNhcmluZzsKK+aQluaZgyA+IGZhbHRlcjsKK+aKtemBlCA+IGFycml2ZTsKK+WcsOeUoiA+IGVzdGF0ZTsKK+e0sOWrqSA+IHRlbmRlcjsKK+WxgOmdoiA+IGFzcGVjdDsKK+a+seeyiSA+IHN0YXJjaDsKK+aomeamnCA+IGZsYXVudDsKK+eZvealiiA+IHBvcGxhcjsKK+a6kOm7niA+IHNvdXJjZTsKK+a7kembqiA+IHRvXC1za2k7Civlm57ntZUgPiByZWJ1ZmY7CivoparluLYgPiBnYXJ0ZXI7CivntoHkvY8gPiBmYXN0ZW47CivnnLzlhYkgPiB2aXNpb247CivmqKPmnKwgPiBzYW1wbGU7Civng4jlo6sgPiBtYXJ0eXI7Civnsr7mmI4gPiBhc3R1dGU7CivohbPpkJAgPiBmZXR0ZXI7CivnlKLph48gPiBvdXRwdXQ7Civnmb3mnpwgPiBnaW5rZ287CivluIbluIMgPiBjYW52YXM7CivluIPluZUgPiBzY3JlZW47Civot7PpgLIgPiBwbHVuZ2U7CivlmrTogoUgPiBzb2xlbW47CivpmYTkuIogPiBhdHRhY2g7CivmiqzotbcgPiB1cGxpZnQ7Civlub7kuY4gPiBhbG1vc3Q7Civov6vliIcgPiB1cmdlbnQ7CivngInmuZYgPiBsYWdvb247CivntITlrpogPiBlbmdhZ2U7CivnsKHnm7QgPiBzaW1wbHk7Civot5/pgLIgPiBmb2xsb3c7CivlhYnmmK8gPiBzb2xlbHk7CivntabkuoggPiBhY2NvcmQ7CivlsbHosLcgPiB2YWxsZXk7CivloLHkv6EgPiBub3RpZnk7CivnsKHnlaUgPiBzaW1wbGU7CivopIfmlbggPiBwbHVyYWw7Civnmb3mkK0gPiBub1wtdXNlOwor5beh5byLID4gY3J1aXNlOwor5qmf5a+GID4gc2VjcmV0Owor6Iiq56iLID4gZmxpZ2h0Owor5Yas5aSpID4gd2ludGVyOwor5o+05omLID4gc3VjY29yOwor6auU57O7ID4gc3lzdGVtOwor5bid5ZyLID4gZW1waXJlOwor6Iy25aO6ID4gdGVhcG90Owor55uf5ZyLID4gYWxsaWVzOwor5qmY5a2QID4gb3JhbmdlOwor6KOB5rG6ID4gcnVsaW5nOwor6KaW5YqbID4gdmlzaW9uOwor5a+m6auUID4gZW50aXR5Owor55m85oqWID4gc2hpdmVyOwor57Si5Y+WID4gdG9cLWFzazsKK+W4reWNtyA+IGVuZ3VsZjsKK+WcsOavryA+IGNhcnBldDsKK+WFq+W6piA+IG9jdGF2ZTsKK+eUqOiqniA+IHN5bnRheDsKK+W4guWgtCA+IG1hcmtldDsKK+WfjuWgoSA+IGNhc3RsZTsKK+evgOe0hCA+IGZydWdhbDsKK+eUsuifsiA+IGJlZXRsZTsKK+aJv+irviA+IGVmZm9ydDsKK+ihm+eUnyA+IGhlYWx0aDsKK+mVt+W6piA+IGxlbmd0aDsKK+ijnOaVkSA+IHJlbWVkeTsKK+S/ruiogiA+IHJldmlzZTsKK+W4q+WChSA+IG1hc3RlcjsKK+i/hOS7iiA+IHNvXC1mYXI7Civlr6bpmpsgPiBhY3R1YWw7CivlmJfoqaYgPiB0b1wtdHJ5Owor5Z6C5bmVID4gY2Fub3B5Owor6KCf562GID4gY3JheW9uOwor5Yaw5YeNID4gZnJlZXplOwor5L6u6L6xID4gaW5zdWx0Owor5qij5a2QID4gbWFubmVyOwor55ar55eFID4gcGxhZ3VlOwor5Z+35LqLID4gZGVhY29uOwor5oiQ6ZW3ID4gbWF0dXJlOwor5rqd6YGTID4gZ3Jvb3ZlOwor6L6y5Lq6ID4gZmFybWVyOwor5o+S5bqnID4gc29ja2V0Owor5ru+6JC9ID4gdHVtYmxlOwor5bCH6L+RID4gYWxtb3N0Owor57O75YiXID4gc2VyaWVzOwor55uI5YipID4gcHJvZml0Owor5o6S5palID4gcmVqZWN0Owor5omu6KOdID4gbWFrZXVwOwor5ouJ57eKID4gc3RyYWluOwor5L+d6KGbID4gZGVmZW5kOwor6J6N6KejID4gbW9sdGVuOwor5ZyW5qGIID4gZGVzaWduOwor6IWU6Kq/ID4gYWNjZW50Owor6LWw6YyvID4gYXN0cmF5Owor5ZaJ6aCtID4gdGhyb2F0Owor56+A55yBID4gc2F2aW5nOwor6LyV5b6uID4gc2xpZ2h0Owor5ZyT5p+xID4gY29sdW1uOwor5qOJ6IqxID4gY290dG9uOwor5bGP6JS9ID4gc2NyZWVuOwor5YWn5ZywID4gaW5sYW5kOwor5L+h6JmfID4gc2lnbmFsOwor5bCP6LKTID4ga2l0dGVuOwor6KGM54K6ID4gYWN0aW9uOwor5bCN6LGhID4gdGFyZ2V0Owor5YWx5ZCMID4gY29tbW9uOwor5Z+L5LyPID4gYW1idXNoOwor55aG55WMID4gYm9yZGVyOwor5bCN6KmxID4gZGlhbG9nOwor56ym6JmfID4gc3ltYm9sOwor6IO46YedID4gYnJvb2NoOwor5pCt5LmYID4gZW1iYXJrOwor6ISF6L+rID4gY29lcmNlOwor5Zaa6YaSID4gYXJvdXNlOwor5YWr5Y2BID4gZWlnaHR5Owor5qij5ZOBID4gc2FtcGxlOwor57C45o+aID4gd2lubm93Owor5qOS57OWID4gc3Vja2VyOwor566X55ukID4gYWJhY3VzOwor57Ch5piTID4gc2ltcGxlOwor6KCf54etID4gY2FuZGxlOwor57K+5YqbID4gZW5lcmd5Owor5YWs5YWxID4gcHVibGljOwor5YKz5p+TID4gaW5mZWN0Owor5bel5Lq6ID4gd29ya2VyOwor5Zyo5b6MID4gYmVoaW5kOwor6Ieq54S2ID4gbmF0dXJlOwor5ru+562SID4gcm9sbGVyOwor5r2k5ruRID4gc21vb3RoOwor6LW36Ki0ID4gdG9cLXN1ZTsKK+idl+ifsiA+IGxvY3VzdDsKK+WyuOeEtiA+IHNvbGVtbjsKK+WCs+aVmSA+IHByZWFjaDsKK+ijgeWumiA+IHJ1bGluZzsKK+etiee0miA+IGRlZ3JlZTsKK+i8g+WlvSA+IGJldHRlcjsKK+iKseWckiA+IGdhcmRlbjsKK+iKseWciCA+IHdyZWF0aDsKK+iFjuiHnyA+IGtpZG5leTsKK+aNleaLvyA+IGFycmVzdDsKK+i3r+eoiyA+IGNvdXJzZTsKK+WFiOWJjSA+IGJlZm9yZTsKK+aGgumssSA+IHN1bGxlbjsKK+mmrOi3ryA+IHN0cmVldDsKK+epl+mjviA+IHRhc3NlbDsKK+WAq+eQhiA+IGV0aGljczsKK+eRnumHkSA+IHJ1aWppbjsKK+aKseeXhSA+IGJlXC1pbGw7CivlgrPmjoggPiBpbXBhcnQ7Civou4rluqsgPiBnYXJhZ2U7CivmuKzph48gPiBzdXJ2ZXk7CivlrZfpppYgPiBwcmVmaXg7CivprZrlpKsgPiBmaXNoZXI7CivnspfliqMgPiBjb2Fyc2U7CivoirHlk6ggPiBnYXJpc2g7CivmiY3og70gPiB0YWxlbnQ7CivovJXlkqwgPiBuaWJibGU7Civmop3ntIsgPiBzdHJpcGU7Civoh7TmrbsgPiBkZWFkbHk7CivlmrTmoLwgPiBzdHJpY3Q7Civmj5LlhaUgPiBpbnNlcnQ7CivmvILnmb0gPiBibGVhY2g7CivmjKvmlZcgPiB0aHdhcnQ7CivotJbph5EgPiByYW5zb207CivnsYPlrZAgPiBiYXNrZXQ7CivooYzmmJ8gPiBwbGFuZXQ7Civlm57mhrYgPiByZWNhbGw7CivlhYnkuq4gPiBicmlnaHQ7Civmv77lmaggPiBmaWx0ZXI7Civnspfkv5cgPiB2dWxnYXI7CivnqYDpoZ4gPiBjZXJlYWw7CivlgbXmn6UgPiBkZXRlY3Q7Civlgrflv4MgPiBncmlldmU7CivlrrnoqLEgPiBwZXJtaXQ7CivmjqflkYogPiBhY2N1c2U7CivoopblrZAgPiBzbGVldmU7CivkvY7oqp4gPiBtdXR0ZXI7CivoirHlhZIgPiBmbG93ZXI7CivonKXonLQgPiBsaXphcmQ7CivmvKPmvKogPiByaXBwbGU7Civlm7rlroggPiBhZGhlcmU7CivlnIvlpJYgPiBhYnJvYWQ7CivmtrLpq5QgPiBsaXF1aWQ7Civog4zoqqYgPiByZWNpdGU7CivmnpXpoK0gPiBwaWxsb3c7CivonJjom5sgPiBzcGlkZXI7CivltI7ltocgPiBydWdnZWQ7CivppJHppJEgPiBwYXN0cnk7CivnlrLmhoogPiBiZWF0ZW47Civkvo3ogIUgPiB3YWl0ZXI7CivppJDpo7IgPiByZXBhc3Q7CivlgrflrrMgPiBpbmp1cmU7Civkv67nkIYgPiByZXBhaXI7CivkvZXomZUgPiB3aGVuY2U7CivmvKvmraUgPiByYW1ibGU7Civkv6HnlKggPiBjcmVkaXQ7CivmtrzpnosgPiBzYW5kYWw7CivmtbfpvpwgPiB0dXJ0bGU7Civlm6DlrZAgPiBmYWN0b3I7Civmi7Pmk4ogPiBib3hpbmc7Civou5/ljJYgPiBzb2Z0ZW47CivlronoqbMgPiBzZXJlbmU7CivlnJ/ljKogPiBiYW5kaXQ7Civmi5TmoLkgPiB1cHJvb3Q7CivmiaPnlZkgPiBkZXRhaW47Civmnb7pm54gPiBncm91c2U7CivpppnolYkgPiBiYW5hbmE7Civpq5jluqYgPiBoZWlnaHQ7Civmp4vku7YgPiBtZW1iZXI7CivllYboq4cgPiBjb25mZXI7CivnlbDmlZkgPiBoZXJlc3k7CivnsKHllq4gPiBzaW1wbGU7Civmo7rmnZAgPiBjb2ZmaW47CivlnLDkuLsgPiBhXC1ob3N0Owor6auY5bGxID4gYWxwaW5lOwor5YOx5L2jID4gZW1wbG95Owor6aOi6aSTID4gaHVuZ2VyOwor55Sf5ravID4gY2FyZWVyOwor5qOu5p6XID4gZm9yZXN0Owor5L2c6ICFID4gYXV0aG9yOwor5oyq5aiBID4gbm9yd2F5Owor5bCL55qEID4gaG9taW5nOwor5Zq05a+GID4gc3RyaWN0Owor5ouY5o2VID4gYXJyZXN0Owor5YGl5bq3ID4gaGVhbHRoOwor6KGo5ZOlID4gY291c2luOwor5pyL6buoID4gY2xpcXVlOwor5re36KGAID4gaHlicmlkOwor6LeL5raJID4gdHJ1ZGdlOwor5YOF5YOFID4gYmFyZWx5Owor5Zue5Y67ID4gcmV0dXJuOwor5ryP5paXID4gZnVubmVsOwor6LOT6KqeID4gb2JqZWN0Owor5Lmz6aCtID4gbmlwcGxlOwor5ru/5pyfID4gZXhwaXJlOwor55CG6KuWID4gdGhlb3J5Owor5LuL6LOqID4gbWVkaXVtOwor562U5qGIID4gYW5zd2VyOwor6ZG/5a2QID4gY2hpc2VsOwor55Sx5pa8ID4gZHVlXC10bzsKK+aKiuafhCA+IGhhbmRsZTsKK+WSjOmiqCA+IGJyZWV6ZTsKK+S9v+eUqCA+IHRvXC11c2U7CivogZjoq4sgPiBlbmdhZ2U7CivmibbmpI0gPiBmb3N0ZXI7CivnkrDnkIMgPiBnbG9iYWw7CivltJfkvY0gPiBhXC1wb3N0Owor5L6/5rGgID4gdXJpbmFsOwor5Zue5L6GID4gcmV0dXJuOwor5ouT5bGVID4gZXhwYW5kOwor5rqq5rWBID4gc3RyZWFtOwor5Zq05Y6yID4gc2V2ZXJlOwor5r2b5ZyoID4gaGlkZGVuOwor6Ii55LiKID4gYWJvYXJkOwor5a6j56ixID4gYXNzZXJ0Owor5ZOA6L6tID4gbGFtZW50Owor5omL5q61ID4gbWV0aG9kOwor5Lm+6YWqID4gY2hlZXNlOwor5pu06auYID4gaGlnaGVyOwor5YGM5aSnID4gc29cLWJpZzsKK+Wuo+ekuiA+IHRvXC12b3c7CivlsI/msKMgPiBzdGluZ3k7Civpq5TliLYgPiBzeXN0ZW07CivmiJDnhp8gPiBtYXR1cmU7CivogozogokgPiBtdXNjbGU7CivkvZznlKggPiBhY3Rpb247Civmir3lsZwgPiBkcmF3ZXI7CivpqZrmgZAgPiBhcHBhbGw7CivmiormiYsgPiBoYW5kbGU7CivmiYvmp40gPiBwaXN0b2w7CivlrrbnlZwgPiBjYXR0bGU7Civnpo/pn7MgPiBnb3NwZWw7CivotbfmupAgPiBvcmlnaW47CivnvqTpq5QgPiBjb2xvbnk7CivkuoLot7MgPiBib3VuY2U7CivnlLflt6sgPiB3aXphcmQ7Civohr3lpKcgPiBkYXJpbmc7CivlronnpaUgPiBzZXJlbmU7CivnrZTlvqkgPiBhbnN3ZXI7Civot5/lvp4gPiBmb2xsb3c7CivlgaXlhaggPiByb2J1c3Q7CivmoLnmupAgPiBvcmlnaW47Civog73mupAgPiBlbmVyZ3k7CivmnKzouqsgPiBpdHNlbGY7Civmi4zlmLQgPiBiaWNrZXI7CivmiZPmk4ogPiB0b1wtaGl0Owor5oeJ55W2ID4gc2hvdWxkOwor5omj5oq8ID4gZGV0YWluOwor56yo5ouZID4gY2x1bXN5Owor5YCL5a2QID4gaGVpZ2h0Owor5oeJ55SoID4gdG9cLXVzZTsKK+eRleeWtSA+IHN0aWdtYTsKK+abnemcsiA+IGV4cG9zZTsKK+a1t+ijoSA+IG1hcmluZTsKK+WRs+mBkyA+IGZsYXZvcjsKK+aJi+aMhyA+IGZpbmdlcjsKK+aKiuWtkCA+IGhhbmRsZTsKK+engeiqniA+IG11cm11cjsKK+mkiuiCsiA+IGZvc3RlcjsKK+acgOi/kSA+IHJlY2VudDsKK+a4heeYpiA+IG1lYWdlcjsKK+a0u+i6jSA+IGFjdGl2ZTsKK+WyuOS4iiA+IGFzaG9yZTsKK+aIkOaenCA+IHJlc3VsdDsKK+S4remAlCA+IG1pZHdheTsKK+mggum7niA+IHN1bW1pdDsKK+aatOmcsiA+IGV4cG9zZTsKK+eqgeeEtiA+IHN1ZGRlbjsKK+acqOijvSA+IHdvb2RlbjsKK+WuieeEtiA+IHNhZmVseTsKK+mjouiNkiA+IGZhbWluZTsKK+i2vuWwliA+IHRpcHRvZTsKK+adn+iFsCA+IGdpcmRsZTsKK+WuruauvyA+IHBhbGFjZTsKK+adv+e1kCA+IGhhcmRlbjsKK+S+m+aHiSA+IHN1cHBseTsKK+S/oeWliSA+IGJlbGllZjsKK+aIkOaViCA+IGVmZmVjdDsKK+eTtuWtkCA+IGJvdHRsZTsKK+S4iemHjSA+IHRyZWJsZTsKK+WuouawoyA+IHBvbGl0ZTsKK+a1ruiRlyA+IGFmbG9hdDsKK+WqkuizqiA+IG1lZGl1bTsKK+iuium7kSA+IGRhcmtlbjsKK+WtpOeNqCA+IGxvbmVseTsKK+a4oOa6nSA+IHRyZW5jaDsKK+iDoeakkiA+IHBlcHBlcjsKK+a1ruiPryA+IHZhbml0eTsKK+mngeaWpSA+IHJlZnV0ZTsKK+S4jemBqSA+IHVud2VsbDsKK+e+nui+sSA+IGJhZmZsZTsKK+eVmeS4iyA+IHJlbWFpbjsKK+S4iumCiiA+IHVwc2lkZTsKK+mPoeWtkCA+IG1pcnJvcjsKK+iDoeahgyA+IHdhbG51dDsKK+mPn+WtkCA+IHNob3ZlbDsKK+WwgeW7uiA+IGZldWRhbDsKK+aenOecnyA+IHJlYWxseTsKK+WSjOiXuSA+IGtpbmRseTsKK+m4mum1oSA+IHBhcnJvdDsKK+epv+a0niA+IHBpZXJjZTsKK+WvuuW7nyA+IHRlbXBsZTsKK+eQhueUsSA+IHJlYXNvbjsKK+i2s+WkoCA+IGVub3VnaDsKK+iVgem6uyA+IG5ldHRsZTsKK+WuouajpyA+IHRhdmVybjsKK+WvtuW6pyA+IHRocm9uZTsKK+WPqemgrSA+IGtvd3RvdzsKK+aIv+WuoiA+IHRlbmFudDsKK+esrOWbmyA+IGZvdXJ0aDsKK+mHjumkkCA+IHBpY25pYzsKK+WwiOWutiA+IGV4cGVydDsKK+afs+aouSA+IHdpbGxvdzsKK+eUseS+hiA+IG9yaWdpbjsKK+S9v+W+lyA+IHVzYWJsZTsKK+a8guS6riA+IHByZXR0eTsKK+WXk+WtkCA+IHRocm9hdDsKK+icg+aZryA+IG1pcmFnZTsKK+mHjemfsyA+IGFjY2VudDsKK+WPjemngSA+IHJldG9ydDsKK+WwkeWlsyA+IG1haWRlbjsKK+eUseS6jiA+IGR1ZVwtdG87Civmtbfntr8gPiBzcG9uZ2U7CivnkIPni4AgPiBzcGhlcmU7CivnlKjkuo4gPiB1c2VcLWluOwor5oeJ5pyJID4gcHJvcGVyOwor6LKn55igID4gYmFycmVuOwor6Jmf56K8ID4gbnVtYmVyOwor5pma6aOvID4gc3VwcGVyOwor6LOt5rOoID4gc3Rha2VzOwor56We6KutID4gb3JhY2xlOwor5oSa56yoID4gc3R1cGlkOwor5p6c54S2ID4gcmVhbGx5Owor5LiN6KaBID4gZG9uJyd0XCE7CivmnZDnqY0gPiB2b2x1bWU7CivmiYHlnJMgPiBvYmxhdGU7Civpu4PoibIgPiB5ZWxsb3c7Civlj67piLQgPiBqaW5nbGU7CivnrKzlhasgPiBlaWdodGg7CivlsYXkvY8gPiByZXNpZGU7CivlrbjmoKEgPiBzY2hvb2w7CivkuIrooasgPiBibG91c2U7Civms6LosLcgPiB0cm91Z2g7CivkuIrooaMgPiBqYWNrZXQ7Civlr7bloZQgPiBwYWdvZGE7CivlrqLmiLYgPiBjbGllbnQ7CivnqpfmiLYgPiB3aW5kb3c7Civlrrbluq0gPiBmYW1pbHk7Civph43ph48gPiB3ZWlnaHQ7Civmn4/mnpcgPiBiZXJsaW47CivmnInnvaogPiBndWlsdHk7CivpjbXluL0gPiBrZXljYXA7CivlsI/ljIUgPiBwYWNrZXQ7CivkuqjnibkgPiBodW50ZXI7CivnqY3mpbUgPiBhY3RpdmU7CivmiZPlgrcgPiBicnVpc2U7CivpoIHpgoogPiBtYXJnaW47CivmiYvlhoogPiBtYW51YWw7Civlr4Llr54gPiBsb25lbHk7Civmtbfnm5wgPiBwaXJhdGU7Civog4zlvowgPiBiZWhpbmQ7CivniZnpvZIgPiBkZW50YWw7CivkvZzlrrYgPiBhdXRob3I7CivlkI3oqIAgPiBzYXlpbmc7Civmma7pgJogPiBjb21tb247CivogIDnnLwgPiBkYXp6bGU7CivkuLvnt6ggPiBlZGl0b3I7CivmuK/lvY4gPiBoYXJib3I7Civog4zluLYgPiBicmFjZXM7Civniq/pjK8gPiB0b1wtZXJyOwor6IGW5q6/ID4gdGVtcGxlOwor5pq06JmQID4gYnJ1dGFsOwor5rOi6JitID4gcG9sYW5kOwor6aeB5ZueID4gcmVqZWN0Owor5oiQ5ZOhID4gbWVtYmVyOwor5oOz552hID4gZHJvd3N5Owor5pif6ZuyID4gbmVidWxhOwor6K6K6LufID4gc29mdGVuOwor5LiN6IO9ID4gY2Fubm90Owor5rW354u4ID4gYmVhdmVyOwor5L6d5YGOID4gbmVzdGxlOwor5oak5oWoID4gcmVzZW50Owor5oem5aSrID4gY293YXJkOwor5LyR5oOcID4gcmVjZXNzOwor6JOs6ayGID4gZmx1ZmZ5Owor5Y+v6KaqID4ga2luZGx5Owor56OB6ZC1ID4gbWFnbmV0Owor6aCY6KKWID4gbGVhZGVyOwor5LiN576IID4gdW5ydWx5Owor5qCh5ZySID4gY2FtcHVzOwor5oiQ5YujID4gcmVzdWx0Owor56We6IGWID4gZGl2aW5lOwor5Lit562JID4gbWVkaXVtOwor6K6K6LOqID4gZ29cLWJhZDsKK+e+iuiCiSA+IG11dHRvbjsKK+a2iOa7hSA+IHBlcmlzaDsKK+WWieWaqCA+IHRocm9hdDsKK+aAp+izqiA+IG5hdHVyZTsKK+WQiuiRlyA+IGRhbmdsZTsKK+afseWtkCA+IHBpbGxhcjsKK+a4heW7iSA+IGhvbmVzdDsKK+WNsemaqiA+IGRhbmdlcjsKK+WuieWumiA+IHN0YWJsZTsKK+aGjuaDoSA+IGxvYXRoZTsKK+WPo+iiiyA+IHBvY2tldDsKK+aGjuaBqCA+IGRldGVzdDsKK+WWnOWKhyA+IGNvbWVkeTsKK+WvkuWGrCA+IHdpbnRyeTsKK+iytuaWpSA+IGRlbW90ZTsKK+WlrumspSA+IHN0cml2ZTsKK+WWruS9jSA+IGFcLXVuaXQ7CivmnInnlKggPiB1c2VmdWw7CivnkIPmi40gPiByYWNrZXQ7Civlj6XomZ8gPiBwZXJpb2Q7Civlj6PomZ8gPiBzbG9nYW47CivnqanlrpogPiBzdGFibGU7Civllq7kuIAgPiBzaW5nbGU7CivlrZDlvYggPiBidWxsZXQ7Civlronln7kgPiBhbXBlcmU7CivnoazpoJggPiBjb2xsYXI7CivpoYbnspIgPiBrZXJuZWw7Civpo5/mp70gPiBtYW5nZXI7CivlqpLnlYwgPiBtZWRpdW07CivmnKzmupAgPiBvcmlnaW47CivlrrDlibIgPiBpbnZhZGU7Civog4zlj5sgPiBiZXRyYXk7CivotJblm54gPiByZWRlZW07Civms6LntIsgPiByaXBwbGU7Civnqpflj6MgPiB3aW5kb3c7CivnjajnibkgPiB1bmlxdWU7CivlrZflsL4gPiBzdWZmaXg7CivnpZ7npL4gPiBzaHJpbmU7Civolaroj4EgPiB0dXJuaXA7CivmsrnohIIgPiBncmVhc2U7CivpnZvpnZIgPiBpbmRpZ287CivpnqDouqwgPiB0b1wtYm93Owor6YeR6ImyID4gZ29sZGVuOwor5Y236Lu4ID4gc2Nyb2xsOwor5aSn6bqlID4gYmFybGV5Owor6bWT6bS/ID4gcGlnZW9uOwor5a6k5YWnID4gaW5kb29yOwor5L2V5LulID4gd2hlbmNlOwor5Y+X6IumID4gc3VmZmVyOwor5Ly45Ye6ID4gZXh0ZW5kOwor5LiA556lID4gZ2xhbmNlOwor5Lyv5YueID4gc2hyaWtlOwor5rS75r2RID4gbGl2ZWx5Owor5pas6aaWID4gYmVoZWFkOwor6LOT5a6iID4gZ3Vlc3RzOwor5YyV6aaWID4gZGFnZ2VyOwor55Ge5YW4ID4gc3dlZGVuOwor6Kyb6YGTID4gcHJlYWNoOwor6by75oGvID4gYnJlYXRoOwor6KyZ6YGcID4gaHVtYmxlOwor6LKq5b+DID4gZ3JlZWR5Owor6LSK5ZCMID4gYXNzZW50Owor6JaE57SZID4gdGlzc3VlOwor5oK254axID4gc3VsdHJ5Owor6aCS57WmID4gY29uZmVyOwor6K6a576OID4gYWRtaXJlOwor54++5a2YID4gZXh0YW50Owor6aSQ5be+ID4gbmFwa2luOwor5Lul5aSqID4gZXRoZXJcLTsKK+aFi+W6piA+IG1hbm5lcjsKK+WltumFqiA+IGNoZWVzZTsKK+eLueeqhCA+IG5hcnJvdzsKK+eRo+S6iyA+IHRyaWZsZTsKK+iAgeaYryA+IGFsd2F5czsKK+iVg+iMhCA+IHRvbWF0bzsKK+iyoeW4myA+IHdlYWx0aDsKK+mgkOeulyA+IGJ1ZGdldDsKK+mdkumKhSA+IGJyb256ZTsKK+W/mOiomCA+IGZvcmdldDsKK+mgkeerpSA+IHVyY2hpbjsKK+a3t+WQiCA+IHRvXC1taXg7CivmnIPmrbsgPiBtb3J0YWw7CivkuI3nhLYgPiBub3RcLXNvOwor6K6A6ICFID4gcmVhZGVyOwor5rSq5rC0ID4gZGVsdWdlOwor5oSf5oWoID4gbGFtZW50Owor6LOt5Y2aID4gZ2FtYmxlOwor5LqL5oOFID4gYWZmYWlyOwor5a2Y5Y+WID4gYWNjZXNzOwor5pyo5paZID4gbHVtYmVyOwor6LKh5a+MID4gd2VhbHRoOwor5rex5YyWID4gZGVlcGVuOwor5pa56YedID4gcG9saWN5Owor6aCC56uvID4gc3VtbWl0Owor5aaW6KiAID4gaGVyZXN5Owor54++5ZyoID4gbW9kZXJuOwor6K6K57SFID4gcmVkZGVuOwor5ZCN55SiID4gc3RhcGxlOwor5piG6J+yID4gaW5zZWN0Owor5b6M6YKKID4gYmVoaW5kOwor54yW54uCID4gc2F2YWdlOwor5a2k5YWSID4gb3JwaGFuOwor5reo5YyWID4gcHVyaWZ5Owor5b6M6YCAID4gcmVjb2lsOwor54mh6KCjID4gb3lzdGVyOwor5Lq65aOrID4gcGVyc29uOwor6IG35YuZID4gYVwtcG9zdDsKK+eJh+iqniA+IHBocmFzZTsKK+awkeisoCA+IGJhbGxhZDsKK+eMm+eDiCA+IGZpZXJjZTsKK+a1geaYnyA+IG1ldGVvcjsKK+aCsuatjiA+IGJld2FpbDsKK+WtmOWEsiA+IG1lbW9yeTsKK+S7peWJjSA+IGJlZm9yZTsKK+ixoeW+tSA+IGVtYmxlbTsKK+S4jeavmyA+IGJhcnJlbjsKK+S4jeavlCA+IHVubGlrZTsKK+ixoeW+gSA+IHN5bWJvbDsKK+avl+mAoyA+IGFkam9pbjsKK+Wkp+mMmCA+IHNsZWRnZTsKK+acgOaWsCA+IGxhdGVzdDsKK+ayu+eQhiA+IGdvdmVybjsKK+S4u+aVmSA+IGJpc2hvcDsKK+ismeiZmyA+IG1vZGVzdDsKK+eItuimqiA+IGZhdGhlcjsKK+iZleWlsyA+IHZpcmdpbjsKK+izo+S4uyA+IHNlbGxlcjsKK+e+iuavmyA+IGZsZWVjZTsKK+aUvumshiA+IGxvb3NlbjsKK+WQq+awtCA+IHdhdGVyeTsKK+enmOWvhiA+IHNlY3JldDsKK+iZleWigyA+IHBsaWdodDsKK+itsOeoiyA+IGFnZW5kYTsKK+eLoeeMviA+IGNyYWZ0eTsKK+eOi+W6pyA+IHRocm9uZTsKK+aDoeaEjyA+IG1hbGljZTsKK+W8hOmrkiA+IGRlZmlsZTsKK+acrOW3niA+IGhvbnNodTsKK+WssOWFkiA+IGluZmFudDsKK+iWquawtCA+IHNhbGFyeTsKK+eNuOaApyA+IGJydXRhbDsKK+aVuOmHjyA+IGFtb3VudDsKK+aWt+iogCA+IGFmZmlybTsKK+aXheihjCA+IHRyYXZlbDsKK+a1quWtkCA+IGxvYWZlcjsKK+acieaEjyA+IGludGVuZDsKK+eni+WtoyA+IGF1dHVtbjsKK+WQjea1gSA+IGdlbnRyeTsKK+WPsOeBoyA+IHRhaXdhbjsKK+S4jeaZuiA+IHVud2lzZTsKK+WmguiNiSA+IGdyYXNzeTsKK+aVhemanCA+IGdsaXRjaDsKK+mhmOacmyA+IGRlc2lyZTsKK+WQiOazlSA+IGxhd2Z1bDsKK+WQjeawoyA+IHJlcHV0ZTsKK+Wkp+i3ryA+IGF2ZW51ZTsKK+a1t+WgsSA+IHBvc3RlcjsKK+ipnumgrSA+IHByZWZpeDsKK+S6puWNsyA+IG5hbWVseTsKK+WTgOWYhiA+IGxhbWVudDsKK+eOi+WtkCA+IHByaW5jZTsKK+e4q+mHnSA+IG5lZWRsZTsKK+aur+i7iiA+IGhlYXJzZTsKK+mGq+eUnyA+IGRvY3RvcjsKK+eni+WkqSA+IGF1dHVtbjsKK+S6uuWAkSA+IHBlb3BsZTsKK+aaluawoyA+IGhlYXRlcjsKK+enu+WLlSA+IG1vYmlsZTsKK+WQuOaUtiA+IGFic29yYjsKK+aEj+WcliA+IGludGVudDsKK+W8t+i/qyA+IGNvbXBlbDsKK+mhq+aKliA+IHF1aXZlcjsKK+e3o+mjviA+IGZyaW5nZTsKK+S4reW/gyA+IGNlbnRlcjsKK+aClOaUuSA+IHJlcGVudDsKK+WRqOW5tCA+IGFubnVhbDsKK+WPo+a4tCA+IHRoaXJzdDsKK+mHneazlSA+IHN0aXRjaDsKK+a2iOWMliA+IGRpZ2VzdDsKK+ato+mWgCA+IHBvcnRhbDsKK+a1t+WToSA+IHNhaWxvcjsKK+S6jOWNgSA+IHR3ZW50eTsKK+WQkOaguSA+IGlwZWNhYzsKK+mbmemHjSA+IGRvdWJsZTsKK+mdkuiLlCA+IGxpY2hlbjsKK+WkmuiuiiA+IGZpY2tsZTsKK+aymea8oCA+IGRlc2VydDsKK+mJi+W6iiA+IHBsYW5lcjsKK+W7tumVtyA+IGV4dGVuZDsKK+WQjeacmyA+IHJlbm93bjsKK+WPlua2iCA+IGNhbmNlbDsKK+WmqOekmSA+IGhpbmRlcjsKK+S6pOS6kiA+IG11dHVhbDsKK+mCo+mCiiA+IHlvbmRlcjsKK+atuOmChCA+IHJldHVybjsKK+WKiOmWiyA+IGNsZWF2ZTsKK+mFkueqqSA+IGRpbXBsZTsKK+WSluWVoSA+IGNvZmZlZTsKK+eerOmWkyA+IG1vbWVudDsKK+WLleitsCA+IG1vdGlvbjsKK+mZsOmssSA+IGdsb29teTsKK+aUvumAkCA+IGJhbmlzaDsKK+mFjeeosSA+IHdvcnRoeTsKK+a0u+WhniA+IHBpc3RvbjsKK+acquWPryA+IGNhbm5vdDsKK+WkluihjCA+IGxheW1hbjsKK/ClnIwgPiBhXC1jb2F0Owor5p2P5LuBID4gYWxtb25kOwor56KO55+zID4gZ3JhdmVsOwor6aCQ5pyfID4gZXhwZWN0Owor5pu05aW9ID4gYmV0dGVyOwor5oSb5Lq6ID4gc3BvdXNlOwor6ZqG6ZqGID4gcnVtYmxlOwor56eJ5YWsID4ganVzdGx5Owor56ax5ZGKID4gcHJheWVyOwor5pu05aSnID4gYmlnZ2VyOwor5pyd5ZCRID4gdG93YXJkOwor5Lmd5Y2BID4gbmluZXR5Owor56C06IiKID4gc2hhYmJ5Owor5LiA5bi2ID4gcmVnaW9uOwor6aGn5a6iID4gY2xpZW50Owor5Y+i5p6XID4ganVuZ2xlOwor56Kn546JID4gamFzcGVyOwor8KWlhSA+IGFcLWhvbGU7Civlj6rmmK8gPiBtZXJlbHk7CivnjLTlrZAgPiBtb25rZXk7CivwoqaPID4gdG9cLWN1dDsKK+map+mBkyA+IHR1bm5lbDsKK+aDoeWMliA+IHdvcnNlbjsKK+acqOWBtiA+IHB1cHBldDsKK+acg+WToSA+IG1lbWJlcjsKK+S4gOWxgCA+IGlubmluZzsKK+acieWQjSA+IGZhbW91czsKK+aci+WPiyA+IGZyaWVuZDsKK+iPjOmhniA+IGZ1bmd1czsKK+S4gOWwjSA+IGNvdXBsZTsKK+ehq+ejuiA+IHN1bGZ1cjsKK+acquS+hiA+IGZ1dHVyZTsKK+S4gOWumiA+IHN1cmVseTsKK+mBremBhyA+IGJlZmFsbDsKK+S5i+WJjSA+IGJlZm9yZTsKK+e9t+W3pSA+IHN0cmlrZTsKK+mEiee0syA+IHNxdWlyZTsKK+ipreioiCA+IGRlY2VpdDsKK+ixgeWFjSA+IGV4ZW1wdDsKK+a1geWIqSA+IGZsdWVudDsKK+aAp+agvCA+IG5hdHVyZTsKK+a0u+WKmyA+IGVuZXJneTsKK+iuiuabtCA+IGNoYW5nZTsKK+W/g+eQhiA+IG1lbnRhbDsKK+iuiuaalyA+IGRhcmtlbjsKK+eJoueJoiA+IGZpcm1seTsKK+miqOS/lyA+IGN1c3RvbTsKK+e3o+i1tyA+IG9yaWdpbjsKK+iomOmMhCA+IHJlY29yZDsKK/CggIkgPiBhXC1oaWxsOwor5Ym16L6mID4gbGF1bmNoOwor5pqX5b2xID4gc2hhZG93Owor6ZqK6YOoID4gb2ZmaWNlOwor6K6a5o+aID4gcHJhaXNlOwor5Lme5LiQID4gYmVnZ2FyOwor6YGO6YePID4gZXhjZXNzOwor54aU6KejID4gZnVzaW9uOwor6ZqY6LevID4gZGVmaWxlOwor6YKA6KuLID4gaW52aXRlOwor5b6q55KwID4gY2lyY2xlOwor5pm65oWnID4gd2lzZG9tOwor54215Lq6ID4gaHVudGVyOwor5oGQ5oCWID4gdGVycm9yOwor5paR57SLID4gc3RyaXBlOwor55+z6IuxID4gcXVhcnR6Owor5YyF566hID4gYXNzdXJlOwor6YW15q+NID4gbGVhdmVuOwor6Kej6ZmkID4gcmVtb3ZlOwor5YuV6ISIID4gYXJ0ZXJ5Owor5pyA5L2OID4gbG93ZXN0Owor56Wt5Y+4ID4gcHJpZXN0Owor54m55q2kID4gaGVyZWJ5Owor6ZuM6JWKID4gcGlzdGlsOwor5aSp56+3ID4gY2Fub3B5Owor5bmy6aCQID4gbWVkZGxlOwor5YyW55+zID4gZm9zc2lsOwor5LiN5Y+vID4gY2Fubm90Owor5rC05rOlID4gY2VtZW50Owor5rC05rOhID4gYnViYmxlOwor6K2m5pa5ID4gcG9saWNlOwor54i454i4ID4gZmF0aGVyOwor6JOL54i+ID4gZ2FlbGljOwor5YmN6LypID4gc2VuaW9yOwor6KiY6LW3ID4gcmVjYWxsOwor5LiJ5Y2BID4gdGhpcnR5Owor57mD57CnID4gc3ByaW5nOwor5pKk6ZmkID4gcmVtb3ZlOwor6Yem5a2QID4gYnV0dG9uOwor5b2I57CnID4gc3ByaW5nOwor5Ymv6KmeID4gYWR2ZXJiOwor54mb5rK5ID4gYnV0dGVyOwor6Kqy56iLID4gY291cnNlOwor5bm06ZW3ID4gc2VuaW9yOwor5oCn5oOFID4gbmF0dXJlOwor57eo6JmfID4gbnVtYmVyOwor5rCj5rOhID4gYnViYmxlOwor5Y2x5qmfID4gY3Jpc2lzOwor5LiN5YWsID4gdW5qdXN0Owor5bqV6YOoID4gYm90dG9tOwor5LiN5YWLID4gY2Fubm90Owor5rOV5ZyLID4gZnJhbmNlOwor5rKJ5oCdID4gcG9uZGVyOwor5pqX5aChID4gYnVua2VyOwor54uX5bGLID4ga2VubmVsOwor5pq05ZCbID4gdHlyYW50Owor5Ye56Zm3ID4gaG9sbG93Owor5LiJ5YCNID4gdHJpcGxlOwor5aSn55y+ID4gcGVvcGxlOwor6Zyc55m9ID4gZnJvc3R5Owor5ZCm5YmHID4gaWZcLW5vdDsKK+WIhumQmCA+IG1pbnV0ZTsKK+mgmOWfnyA+IGRvbWFpbjsKK+iRrOemriA+IGJ1cmlhbDsKK+awtOahtiA+IGJ1Y2tldDsKK+aSpOmKtyA+IHJlcGVhbDsKK+WQiOWUsSA+IGNob3J1czsKK+mGq+W4qyA+IGRvY3RvcjsKK+WPjeWwhCA+IHJlZmxleDsKK+S4jeS4uSA+IGJodXRhbjsKK+aVrOemriA+IHNhbHV0ZTsKK+mdnua0siA+IGFmcmljYTsKK+mAmui3ryA+IGFjY2VzczsKK+e+juS6uiA+IGJlYXV0eTsKK+isgOauuiA+IG11cmRlcjsKK+e9t+WFjSA+IHJlY2FsbDsKK+iogOiqniA+IHNwZWVjaDsKK+WJneidlSA+IGRlbnVkZTsKK+mAgOmChCA+IHJldHVybjsKK+aVuOebriA+IGFtb3VudDsKK+WPrOWbniA+IHJlY2FsbDsKK+egtOeImyA+IHJhZ2dlZDsKK+S4gOS4siA+IHN0cmFuZDsKK+e6luavmyA+IGNpbGl1bTsKK+aAp+WtkCA+IHRlbXBlcjsKK+i/vemAkCA+IGNoYXNlOwor6YCV6LO9ID4gdHJhY2s7CivpnZzmraIgPiBzdGlsbDsKK+W3tOm7jiA+IHBhcmlzOwor5bm06LyVID4geW91bmc7Civov7Tpgb8gPiBhdm9pZDsKK+iSuOaxvSA+IHN0ZWFtOwor5qyK6KGhID4gd2VpZ2g7CivpgYrolakgPiBzdHJheTsKK+W8hOeznyA+IHNwb2lsOwor5oGp5YW4ID4gZ3JhY2U7CivlpKfniLogPiB1bmNsZTsKK+aXpeacrCA+IGphcGFuOwor5Y+v5Y+vID4gY29jb2E7Civlj6/lj6MgPiB0YXN0eTsKK+W7tue3qSA+IGRlZmVyOwor57eo57mUID4gd2VhdmU7CivljZfmlrkgPiBzb3V0aDsKK+e9ruS6jiA+IHBsYWNlOwor5aeq5aWzID4gbmllY2U7CivpmbfokL0gPiBzbHVtcDsKK+eJm+aOkiA+IHN0ZWFrOwor6Zqx57SEID4gdmFndWU7Civpr6jprZogPiB3aGFsZTsKK+WQiOS9tSA+IGFubmV4Owor6K235aOrID4gbnVyc2U7Civms4rkvY0gPiBiZXJ0aDsKK+mBiuiJhyA+IGJhcmdlOwor6Zec6ZaJID4gY2xvc2U7CivpmbDojpYgPiBwZW5pczsKK+aZuuWIqSA+IGNoaWxlOwor57ea57SiID4gdHJhaWw7Civlo5Pnoo4gPiBjcnVzaDsKK+WOn+WniyA+IGZpcnN0Owor5q+P5q+PID4gb2Z0ZW47Civlj43lj5sgPiByZWJlbDsKK+mfk+WciyA+IGtvcmVhOwor6ZuZ55SfID4gdHdpbnM7Civnm7jphY0gPiBtYXRjaDsKK+WNsOW6piA+IGluZGlhOwor55+z54uAID4gc3Rvbnk7Civov4XpgJ8gPiByYXBpZDsKK+W5vOifsiA+IGxhcnZhOwor6a+K6a2aID4gc2hhcms7CivliKXomZ8gPiBhbGlhczsKK+e2oOiJsiA+IGdyZWVuOwor5byV55SoID4gcXVvdGU7Civnm7jov5EgPiBjbG9zZTsKK+W4gumVtyA+IG1heW9yOwor54iQ5p62ID4gZ3JhdGU7CivmqZ/pl5wgPiBvcmdhbjsKK+asiuiDvSA+IHBvd2VyOwor5Y6f5ZugID4gY2F1c2U7CivmgKXliocgPiByYXBpZDsKK+Wkp+asiiA+IHBvd2VyOwor6bSJ54mHID4gb3BpdW07CivoqJPnt7QgPiBkcmlsbDsKK+WMl+aWuSA+IG5vcnRoOwor6KuW5paHID4gcGFwZXI7CivmlL7niacgPiBncmF6ZTsKK+WKn+eOhyA+IHBvd2VyOwor5q+P5pelID4gZGFpbHk7CivlpZfmiL8gPiBzdWl0ZTsKK+mBleekmSA+IHRhYm9vOwor5YSq6bueID4gbWVyaXQ7CivlvpjlvoogPiBob3ZlcjsKK+imluimuiA+IHNpZ2h0Owor5pON57e0ID4gZHJpbGw7CivlvLfmrIogPiBwb3dlcjsKK+WIgOiRiSA+IGJsYWRlOwor5pGp6KW/ID4gbW9zZXM7CivorablgpkgPiBndWFyZDsKK+iqsuaZgiA+IGNsYXNzOwor5b2X5pifID4gY29tZXQ7CivmkKzpgYsgPiBjYXJyeTsKK+mdkuW5tCA+IHlvdXRoOwor5qiZ6aGMID4gdGl0bGU7Civmj5Dpq5ggPiByYWlzZTsKK+awqOWfuiA+IGFtaW5vOwor5aSc5pmaID4gbmlnaHQ7CivnhrHmsKMgPiBzdGVhbTsKK+apn+i7uCA+IGFyYm9yOwor6YaS5L6GID4gd2FrZW47CivlpbPlrZAgPiB3b21hbjsKK+mWgOmWgiA+IGxhdGNoOwor5b6A5b6AID4gb2Z0ZW47Civok4vlrZAgPiBjb3ZlcjsKK+mdiOW3pyA+IGhhbmR5Owor5YWD6Z+zID4gdm93ZWw7CivlhYvpmoYgPiBjbG9uZTsKK+aVtOaVtCA+IHdob2xlOwor5Yyv5a+EID4gcmVtaXQ7CivliYHnoo4gPiBtaW5jZTsKK+iqv+aDhSA+IGZsaXJ0Owor5Zyw6bueID4gcGxhY2U7CivmlbLmk4ogPiBwb3VuZDsKK+WMhuW/mSA+IGhhc3R5Owor5q+b5be+ID4gdG93ZWw7CivoirPpppkgPiBiYWxteTsKK+W5tOe0miA+IGdyYWRlOwor5byP5qijID4gc3R5bGU7Civopa/ooasgPiBzaGlydDsKK+ilr+ihoyA+IHNoaXJ0Owor5Y2w5Yi3ID4gcHJpbnQ7CivmlaPmlocgPiBwcm9zZTsKK+ippuaooyA+IHN0eWxlOwor5YWo6YOoID4gd2hvbGU7Civnn63mmqsgPiBzaG9ydDsKK+ilv+iXjyA+IHRpYmV0Owor5YuV5pCWID4gd2F2ZXI7Civnh4PmlL4gPiBsaWdodDsKK+eBq+i7iiA+IHRyYWluOwor5bel6LOHID4gd2FnZXM7Civli4fmlaIgPiBicmF2ZTsKK+atu+advyA+IHJpZ2lkOwor55+b5p+EID4gc2hhZnQ7Civplbfph5ggPiBzcGlrZTsKK+atpeanjSA+IHJpZmxlOwor5Yi755eVID4gbm90Y2g7CivlhKrpm4UgPiBncmFjZTsKK+mBuOawkSA+IHZvdGVyOwor6a2U6ay8ID4gZGV2aWw7CivmlrDlqJggPiBicmlkZTsKK+WkvuWtkCA+IGNyYW1wOwor6Kyg5YKzID4gcnVtb3I7CivmlrDlpYcgPiBub3ZlbDsKK+WgseetlCA+IHJlcGF5Owor54Wk5rijID4gc2xhY2s7CivpgormoYYgPiBmcmFtZTsKK+iKsemWiyA+IGJsb29tOwor54mp5Li7ID4gb3duZXI7CivlvYjlvJMgPiBzbGluZzsKK+WgseeqqSA+IGJyb29kOwor5pO65rihID4gZmVycnk7Civpm7vlvbEgPiBtb3ZpZTsKK+aRuOe0oiA+IGdyb3BlOwor6ay86a2CID4gZ2hvc3Q7CivpgJ/njocgPiBzcGVlZDsKK+egtOWjniA+IHdyZWNrOwor57SE6I6rID4gYWJvdXQ7Civlo4HmnrYgPiBsZWRnZTsKK+majuautSA+IHN0YWdlOwor5aSi5a+QID4gZHJlYW07Civlu7bmnJ8gPiBkZWxheTsKK+WNgeWIhiA+IGZ1bGx5Owor5Yue5belID4gbGFib3I7CivlnJjpq5QgPiBncm91cDsKK+WcsOmdoiA+IGZsb29yOwor6Ku35Yi6ID4gaXJvbnk7Civnmb3osrsgPiB3YXN0ZTsKK+mBi+aysyA+IGNhbmFsOwor5YWr6KeSID4gYW5pc2U7CivpmbDmtrwgPiBzaGFkeTsKK+aTpua0lyA+IHNjb3VyOwor54ax5b+xID4gYXJkb3I7CivpmL/niYcgPiBvcGl1bTsKK+eEmeeHkiA+IHJvYXN0Owor5aWz5Lq6ID4gd29tYW47CivntqDmtLIgPiBvYXNpczsKK+iovOaYjiA+IHByb3ZlOwor55u4562JID4gZXF1YWw7CivlhJ/pgoQgPiByZXBheTsKK+avkuWTgSA+IGRydWdzOwor5Zu66auUID4gc29saWQ7Civopo/nqIsgPiBydWxlczsKK+ebtOeriyA+IGVyZWN0Owor5YOn6ZmiID4gYWJiZXk7CivoqLzmk5ogPiBwcm9vZjsKK+aOqOmBuCA+IGVsZWN0Owor5q+b5Yi3ID4gYnJ1c2g7CivprI3prJogPiBiZWFyZDsKK+aOqOmAsiA+IGltcGVsOwor6Zec56+AID4gam9pbnQ7Civlg7npjKIgPiBwcmljZTsKK+WIh+eJhyA+IHNsaWNlOwor6Imm6ZqKID4gZmxlZXQ7CivlvLflpKcgPiBsYXJnZTsKK+ecn+eQhiA+IHRydXRoOwor5q+U5YiGID4gc2NvcmU7Civmk7Hmnb8gPiBzaGVsZjsKK+WJm+aenCA+IGNvbmdvOwor5Ymq5pa3ID4gc2hlYXI7CivngavoirEgPiBzcGFyazsKK+W9seWDjyA+IGltYWdlOwor55uc56uKID4gc3RlYWw7CivmqJnomZ8gPiBncmFkZTsKK+i/t+a/myA+IG1pc3R5Owor552h5qSFID4gY291Y2g7CivliqDlr6wgPiB3aWRlbjsKK+mch+WLlSA+IHNoYWtlOwor6Kqq5Ye6ID4gdXR0ZXI7CivoqIjmlbggPiBjb3VudDsKK+a+s+mWgCA+IGFvbWVuOwor5o6o6KuWID4gaW5mZXI7Civns6Lns4ogPiBmb2dneTsKK+avj+S4gCA+IGV2ZXJ5Owor5Yui5YqbID4gcG93ZXI7Civnt57luIMgPiBzYXRpbjsKK+WLleWQkSA+IHRyZW5kOwor5aSp5L2/ID4gYW5nZWw7CivopJDoibIgPiBicm93bjsKK+mshumWiyA+IGxvb3NlOwor5qu45pyoID4gYmVlY2g7Civpg6jku7YgPiBwYXJ0czsKK+eDmOeDpCA+IHJvYXN0Owor6LuM6YGTID4gb3JiaXQ7CivploPogIAgPiBnbGludDsKK+iHrem8rCA+IHNrdW5rOwor5YSy6JePID4gc3RvcmU7Civmk6bmi60gPiBjbGVhbjsKK+eWvumiqCA+IGJsYXN0Owor5pSk5a2QID4gYm9vdGg7CivlpKfkurogPiBhZHVsdDsKK+WKn+WkqyA+IHNraWxsOwor5YuV5YqbID4gcG93ZXI7Civnm7jniYcgPiBpbWFnZTsKK+mrkumrkiA+IGRpcnR5Owor54eZ5YK3ID4gc2NhbGQ7CivlnYfooaEgPiBlcXVhbDsKK+WHuuaykiA+IGhhdW50Owor6YGT5b63ID4gbW9yYWw7Civop7jmkbggPiB0b3VjaDsKK+eZvOiBsiA+IHZvY2FsOwor6ZW36ICBID4gZWxkZXI7CivmqLnnsawgPiBoZWRnZTsKK+WFuOevhCA+IG1vZGVsOwor6ZuG5ZyYID4gZ3JvdXA7CivmlbTlgIsgPiB3aG9sZTsKK+W4neeOiyA+IHJlZ2FsOwor5by35YWJID4gZ2xhcmU7Civnm5TnlLIgPiBhcm1vcjsKK+i7jOi3oSA+IGxvY3VzOwor6LuM6LedID4gZ2F1Z2U7Civoo5zol6UgPiB0b25pYzsKK+atuOWSjiA+IGJsYW1lOwor5pW15Lq6ID4gZW5lbXk7Civlub3mmpcgPiBnbG9vbTsKK+aTlOaHriA+IHdvcnJ5Owor5qau6K29ID4gaG9ub3I7CivprZTooZMgPiBtYWdpYzsKK+eFp+WwhCA+IHNoaW5lOwor5pCX56KOID4gc21hc2g7CivmqrjmqqwgPiBsZW1vbjsKK+mWi+erryA+IHN0YXJ0Owor5qih57OKID4gdmFndWU7Civpm57lhqAgPiBjcmVzdDsKK+WFiee6liA+IGxpZ2h0Owor6ZuV5Yi7ID4gY2FydmU7Civpqq/pq5IgPiBkaXJ0eTsKK+WIh+acmyA+IGNyYXZlOwor6Kmb5ZKSID4gY3Vyc2U7CivmqJnnsaQgPiBsYWJlbDsKK+eEtuW+jCA+IGFmdGVyOwor6YKj5YWSID4gdGhlcmU7CivplbfnrJsgPiBmbHV0ZTsKK+eyvuelniA+IHZpZ29yOwor5ZyW6KGoID4gY2hhcnQ7CivovYnnp7sgPiBzaGlmdDsKK+WFkuerpSA+IGNoaWxkOwor5ZyN6KOZID4gYXByb247CivmjqjoiIkgPiBlbGVjdDsKK+WBnOmgkyA+IHBhdXNlOwor57KX57OZID4gY3J1ZGU7CivliarloLEgPiBzY3JhcDsKK+mrrui+riA+IGJyYWlkOwor5q275LqhID4gZGVhdGg7Civopo/mqKEgPiBzY2FsZTsKK+mAn+W6piA+IHNwZWVkOwor6YKj5LqbID4gdGhvc2U7Civnrq3poK0gPiBhcnJvdzsKK+mbhOWBiSA+IGdyYW5kOwor6L6m5rOVID4gbWVhbnM7CivngrrmraIgPiB1bnRpbDsKK+WatOmHjSA+IGdyYXZlOwor6Ii56LKoID4gY2FyZ287Civplbfnn5sgPiBsYW5jZTsKK+atjOWKhyA+IG9wZXJhOwor6auY6YGgID4gbG9mdHk7Civlh6HmmK8gPiBldmVyeTsKK+eDj+acqCA+IGVib255Owor6Iie6LmIID4gZGFuY2U7CivnsonnrYYgPiBjaGFsazsKK+e1leaKgCA+IHN0dW50Owor6IeJ6aCwID4gY2hlZWs7Civnmb3nmaEgPiBpZGlvdDsKK+aOiOiIhyA+IGdyYW50Owor6KeS5bqmID4gYW5nbGU7Civnmbznl4UgPiBvbnNldDsKK+WfuuacrCA+IGJhc2ljOwor54Gr54SwID4gYmxhemU7CivliKTlrpogPiBqdWRnZTsKK+aOoue0oiA+IHF1ZXN0Owor6KOC57irID4gY3JhY2s7CivngavngqwgPiB0b3JjaDsKK+Whq+WhniA+IHN0dWZmOwor5pKw5a+rID4gd3JpdGU7Civns5bmvL8gPiBzeXJ1cDsKK+eyieeijiA+IGNyYXNoOwor6Zm95Y+wID4gcG9yY2g7Civmk7rli5UgPiBzd2luZzsKK+aKvOmfuyA+IHJoeW1lOwor5Z6L54uAID4gc2hhcGU7CivoiInotbcgPiBoZWF2ZTsKK+WJsuWCtyA+IHNsYXNoOwor6YCZ5aSpID4gdG9kYXk7CivnsaznrIYgPiBmZW5jZTsKK+amruiAgCA+IGhvbm9yOwor6YGP5Yi2ID4gY2hlY2s7Civnmbzni4IgPiBjcmF6eTsKK+WIpeWihSA+IHZpbGxhOwor5bK46YKKID4gc2hvcmU7CivlsLzpvo0gPiBueWxvbjsKK+maiuS8jSA+IHJhbmtzOwor5YiA5a2QID4ga25pZmU7CivluYXluqYgPiB3aWR0aDsKK+apoeacqCA+IG9ha2VuOwor57K+5rayID4gc2VtZW47Civluorllq4gPiBzaGVldDsKK+iKseeToyA+IHBldGFsOwor5YmD5YiAID4gcmF6b3I7Civlh7PlrZAgPiBzdG9vbDsKK+iGvemHjyA+IG5lcnZlOwor6YCg5Y+NID4gcmViZWw7CivoqJPku6QgPiBvcmRlcjsKK+WGjeacgyA+IGFkaWV1Owor5qqz5a2QID4gYmluemk7CivouLTouo0gPiBlYWdlcjsKK+WFqeasoSA+IHR3aWNlOwor5L+u6aO+ID4gYWRvcm47Civmj6PmuKwgPiBndWVzczsKK+e0ouW8lSA+IGluZGV4Owor5YO156GsID4gc3Rhcms7CivlgrPogZ4gPiBydW1vcjsKK+iHquiqhyA+IGJvYXN0Owor5pGY5byVID4gcXVvdGU7Civlt6XmnIMgPiB1bmlvbjsKK+ezluaenCA+IGNhbmR5Owor6KOC55eVID4gY2hhc207Civngavmn7QgPiBtYXRjaDsKK+e0sOWwjyA+IHBldHR5Owor5qyE5L2NID4gZmVuY2U7CivpqYXpmaQgPiByZXBlbDsKK+aoueaelyA+IHdvb2RzOwor5bCP6bqlID4gd2hlYXQ7CivmvZvooYwgPiBzbmVhazsKK+WeguatuyA+IGR5aW5nOwor5qi65pyoID4gYmlyY2g7CivpgJDlh7ogPiBleHBlbDsKK+W3qOaTmCA+IHRodW1iOwor57SX5biDID4gZ2F1emU7CivlubPljp8gPiBmaWVsZDsKK+WFrOacgyA+IGd1aWxkOwor55Sw6YeOID4gZmllbGQ7Civmv6vnlKggPiBhYnVzZTsKK+mVt+akhSA+IGJlbmNoOwor6auY6IiIID4gaGFwcHk7CivmkJPmj4kgPiBrbmVhZDsKK+mVt+ainSA+IHN0cmlwOwor6YCZ5LqbID4gdGhlc2U7CivluofkvZEgPiBibGVzczsKK+WBh+ijnSA+IGZlaWduOwor6L6u5a2QID4gcGxhaXQ7CivpmY3kuIsgPiBsb3dlcjsKK+aok+airyA+IHN0YWlyOwor6auY6IGzID4gZXJlY3Q7Civpq5jogbIgPiBhbG91ZDsKK+WwiumtmiA+IHRyb3V0Owor6KGA6IKJID4gZmxlc2g7Civnm5vlrrQgPiBmZWFzdDsKK+WbnuetlCA+IHJlcGx5Owor57Ch55+tID4gYnJpZWY7Civlm6TnqY0gPiBob2FyZDsKK+mnv+mmrCA+IHN0ZWVkOwor5qau542yID4gcHJpemU7CivoparlrZAgPiBzb2NrczsKK+idmemtmiA+IGJyZWFtOwor5aCx5YSfID4gcmVwYXk7CivlgrPnpZ4gPiB2aXZpZDsKK+iJsueLvCA+IHNhdHlyOwor5o6i5risID4gcHJvYmU7CivovYnmkq0gPiByZWxheTsKK+aJuemHjyA+IGJhdGNoOwor6aex6aedID4gY2FtZWw7CivlnJbniYcgPiBpbWFnZTsKK+WGoOWtkCA+IGNyZXN0Owor6IWw6YOoID4gd2Fpc3Q7Civnmq7luLYgPiBzdHJhcDsKK+eyl+aatCA+IHJvdWdoOwor5pKS5L2GID4gc2F0YW47CivlsI/pm54gPiBjaGljazsKK+WGsOWhlCA+IHNlcmFjOwor56yo6YeNID4gaGVhdnk7CivovJXmn5MgPiB0aW5nZTsKK+WFp+W/gyA+IGhlYXJ0Owor6IWz6LidID4gYW5rbGU7CivmjpLmsLQgPiBkcmFpbjsKK+aLm+iHtCA+IGluY3VyOwor5qCX6bygID4gYnVubnk7CivmiZLph5ggPiBjcmFtcDsKK+ebtOWIsCA+IHVudGlsOwor5ber5amGID4gd2l0Y2g7Civmj7TlvJUgPiBxdW90ZTsKK+etlOipniA+IHJlcGx5Owor5bCW6YqzID4gc2hhcnA7CivploDlu4ogPiBzdG9vcDsKK+WBt+eriiA+IHN0ZWFsOwor5qeT5qG/ID4gbGV2ZXI7CivlhbblroMgPiBvdGhlcjsKK+etlOimhiA+IHJlcGx5Owor54OY5Lm+ID4gcGFyY2g7CivlhazlsLogPiBtZXRlcjsKK+WZquiBsiA+IG5vaXNlOwor55uO5Y+4ID4gb3VuY2U7CivpqI7ou4ogPiBjeWNsZTsKK+WDueagvCA+IHByaWNlOwor57K+5a2QID4gc3Blcm07CivlnLDmnb8gPiBmbG9vcjsKK+WHjOS6giA+IGNoYW9zOwor5L+a6KqeID4gc2xhbmc7CivntIXliKkgPiBib251czsKK+mWi+WniyA+IGJlZ2luOwor5o6h5pGYID4gcGx1Y2s7Civln4Plj4ogPiBlZ3lwdDsKK+WvgumdnCA+IHF1aWV0Owor56ym6KiYID4gdG9rZW47CivllqrpkJggPiBrbmVsbDsKK+iEuei1tyA+IGJ1bGdlOwor6IOM6aqoID4gc3BpbmU7Civlt6blj7MgPiBhYm91dDsKK+WFrOWZuCA+IHRvbm5lOwor5o6M5o+hID4gZ3Jhc3A7CivnlJ/oi5QgPiBtb3NzeTsKK+aQluWLlSA+IHNoYWtlOwor6Lyq5a2QID4gd2hlZWw7CivpqJnooZMgPiB0cmljazsKK+aJk+ijvSA+IGZvcmdlOwor5bCP6KqqID4gbm92ZWw7CivohZDonZUgPiBydXN0eTsKK+mWieWQiCA+IGNsb3NlOwor6aeV6LuKID4gZHJpdmU7Civmu5HokL0gPiBzbGlkZTsKK+WFreWNgSA+IHNpeHR5Owor5YWs5Y2HID4gbGl0ZXI7CivkvLzpm6ogPiBzbm93eTsKK+iDuOmDqCA+IGNoZXN0Owor55eF5q+SID4gdmlydXM7CivmioDog70gPiBza2lsbDsKK+aOqOW0hyA+IHZhbHVlOwor5bCP6KKLID4gcG91Y2g7CivngavlhZIgPiBhbmdyeTsKK+ihl+autSA+IGJsb2NrOwor6Lev57eaID4gcm91dGU7Civlt6jkurogPiBnaWFudDsKK+ijmeWtkCA+IHNraXJ0Owor5oqT57eKID4gZ3Jhc3A7CivooYDmtrIgPiBibG9vZDsKK+WuiemdnCA+IHF1aWV0Owor5omL6JedID4gY3JhZnQ7CivppqzpgZQgPiBtb3RvcjsKK+mWg+WFiSA+IGZsYXNoOwor5YW25LuWID4gb3RoZXI7Civlm5vmnIggPiBhcHJpbDsKK+WFtuS4rSA+IGFtb25nOwor5qWT5qi5ID4gbWFwbGU7Civnq4ros4ogPiB0aGllZjsKK+a7kee/lCA+IGdsaWRlOwor5o6D5biaID4gYnJvb207CivoobDmlZcgPiBkZWNheTsKK+iLm+WIuyA+IGhhcnNoOwor6ZC156CnID4gYW52aWw7CivmjZXmjYkgPiBjYXRjaDsKK+epuumWkyA+IHNwYWNlOwor55m85YWJID4gc2hpbmU7CivmjqDlpaogPiBoYXJyeTsKK+Wvn+imuiA+IGF3YXJlOwor5bGL57C3ID4gZWF2ZXM7CivmoLzoqIAgPiBtYXhpbTsKK+eTo+iGnCA+IHZhbHZlOwor5o6h5aC0ID4gc2xvcGU7CivoiJ7mnIMgPiBkYW5jZTsKK+WcjeW3viA+IHNjYXJmOwor5a+T6KiAID4gZmFibGU7CivmiYvohZUgPiBza2lsbDsKK+iiq+WtkCA+IHF1aWx0Owor5bCP6IiMID4gdXZ1bGE7CivlsLHnt5IgPiByZWFkeTsKK+i7gOW5uSA+IHRydW5rOwor6LuA5bmyID4gdHJ1bms7Civnmbzkuq4gPiBzaGluZTsKK+aJi+iCmCA+IGVsYm93Owor6KOc5ZOBID4gdG9uaWM7CivlrqLou4ogPiBjb2FjaDsKK+iJvuWnrCA+IGFnZ2llOwor5Zyo5aSWID4gb3V0ZXI7CivltIfmi5wgPiBhZG9yZTsKK+WFheS7vSA+IGFtcGxlOwor6auY5piOID4gc21hcnQ7CivmvLLmu78gPiBzd2VsbDsKK+eXm+aBqCA+IGFiaG9yOwor6IGy6Z+zID4gdm9pY2U7Civnl5vlv6sgPiBqb2xseTsKK+aOpeWQiCA+IGpvaW50Owor5Zyf5aCGID4gbW91bmQ7CivmiLLogI0gPiB0ZWFzZTsKK+eorumhniA+IGNsYXNzOwor55S354i1ID4gYmFyb247Civlm7rlrpogPiBmaXhlZDsKK+Wwlue0sCA+IHRhcGVyOwor5Z2H5YiGID4gc3BsaXQ7CivoirHkv48gPiBmYW5jeTsKK+i1q+iMsiA+IGhlcnR6Owor566t5qG/ID4gc2hhZnQ7CivlnI3ln44gPiBzaWVnZTsKK+WCsuWyuCA+IHByb3VkOwor6Ie05pWsID4gZ3JlZXQ7Civou43lnJggPiBjb3JwczsKK+msjeWtkCA+IGJlYXJkOwor5o6S5YiXID4gYXJyYXk7Civkv4/nmq4gPiBzYXVjeTsKK+iInuW8iiA+IGZyYXVkOwor6aSF6aSMID4gY2FrZXM7Civoo5zkuIEgPiBwYXRjaDsKK+mngeiIuSA+IGJhcmdlOwor6JyC6JycID4gaG9uZXk7CivmvL/mnpwgPiBiZXJyeTsKK+mtheWKmyA+IGNoYXJtOwor6IO46IabID4gY2hlc3Q7CivmvILmuLggPiBkcmlmdDsKK+WDueWAvCA+IHZhbHVlOwor5r2R5o6JID4gc3BpbGw7CivoiIjlu7ogPiBidWlsZDsKK+izh+mHkSA+IGZ1bmRzOwor5ruy5rqdID4gc2V3ZXI7Civog63ohIIgPiByb3VnZTsKK+iHquaIkSA+IHNlbGZcLTsKK+mMr+iqpCA+IGVycm9yOwor5p6c6YWSID4gY2lkZXI7CivmjbflhYsgPiBjemVjaDsKK+eUqOazlSA+IHVzYWdlOwor56+p5a2QID4gc2lldmU7CivlnJblg48gPiBpbWFnZTsKK+WtmOiyqCA+IHN0b2NrOwor6auY5bCaID4gbm9ibHk7CivlnKjkuIsgPiB1bmRlcjsKK+aLjeaTiiA+IHNtYWNrOwor5Zqu5bCOID4gZ3VpZGU7Civlgr7lkJEgPiB0cmVuZDsKK+eUn+awoyA+IGFuZ3J5Owor5YGP5oSbID4gZmF2b3I7CivlrrPnvp4gPiBibHVzaDsKK+iduOeJmyA+IHNuYWlsOwor5ZWG6JmfID4gc3RvcmU7CivpjKLooosgPiBwdXJzZTsKK+a/gOWFiSA+IGxhc2VyOwor5a6J6I+vID4gYW53YXI7Civls63lo4EgPiBjbGlmZjsKK+aNkOWKqSA+IG9mZmVyOwor5ouH5oyHID4gdGh1bWI7Civmi4LmjoMgPiB3aGlzazsKK+iIueWPqiA+IHNoaXBzOwor6Ie65a2QID4gdGFibGU7CivmnJ3prq4gPiBrb3JlYTsKK+Wbm+WNgSA+IGZvcnR5Owor5oq95omTID4gc3RyYXA7Civmg6HprZQgPiBkZW1vbjsKK+acrOmgmCA+IHNraWxsOwor5qOy5oGvID4gcGVyY2g7CivmtYHpq5QgPiBmbHVpZDsKK+S+neeEtiA+IHN0aWxsOwor6IKd6IefID4gbGl2ZXI7Civnr4TlnI0gPiByYW5nZTsKK+WWrueNqCA+IGFsb25lOwor5L+u5pS5ID4gYW1lbmQ7CivmpIXlrZAgPiBjaGFpcjsKK+aciemiqCA+IHdpbmR5Owor5oqK5o+hID4gZ3Jhc3A7CivlsI/msrMgPiBicm9vazsKK+alreS4uyA+IG93bmVyOwor6ama5oWMID4gcGFuaWM7CivlgYnlpKcgPiBncmVhdDsKK+S4u+mhjCA+IHRoZW1lOwor5ZOq6KOhID4gd2hlcmU7CivnrZTmh4kgPiByZXBseTsKK+S4gOm7niA+IGFcLWJpdDsKK+WtuOe0miA+IGNsYXNzOwor55W25ZywID4gbG9jYWw7CivnqLvojYkgPiBzdHJhdzsKK+adseilvyA+IHRoaW5nOwor5YCJ5bqrID4gZGVwb3Q7CivkvIrntKIgPiBhZXNvcDsKK+WxseW0liA+IGNsaWZmOwor56yR5p6XID4gaHVtb3I7CivlmLTlt7QgPiBtb3V0aDsKK+mQs+WwhCA+IGxhc2VyOwor5qOa5a2QID4gc2hhY2s7CivlkLXprKcgPiBub2lzeTsKK+eUt+WtkCA+IGFcLW1hbjsKK+iCoeelqCA+IHNoYXJlOwor5qOS5a2QID4gc3RpY2s7CivmjIfku6QgPiBvcmRlcjsKK+iCpeeiqSA+IHN0b3V0Owor6buD6YqFID4gYnJhc3M7Civmo43lrZAgPiBzdGljazsKK+iHtOS9vyA+IGNhdXNlOwor5oqA5benID4gc2tpbGw7Civnp5joqKMgPiB0cmljazsKK+aLtOS9jyA+IGhpdGNoOwor5LiL6Z2iID4gYmVsb3c7CivooKLkuosgPiBmb2xseTsKK+aEmuigoiA+IHNpbGx5Owor5oqK5a6IID4gZ3VhcmQ7CivkuIvpm6ggPiByYWlueTsKK+mpmuWlhyA+IGFtYXplOwor6Iel5L2NID4gYmVydGg7CivlmbTlh7ogPiBzcG91dDsKK+miqOi2oyA+IGh1bW9yOwor5bC65bqmID4gc2NhbGU7CivlsITmk4ogPiBzaG9vdDsKK+izhOe1oSA+IGJyaWJlOwor5bGL5a2QID4gaG91c2U7CivosqznvbUgPiBzY29sZDsKK+iFseWtkCA+IHNpbmV3Owor5pu06YGyID4gbGF0ZXI7Civpu5HosoIgPiBzYWJsZTsKK+eVtuS4rSA+IGFtb25nOwor5Zas5pyoID4gYXJib3I7CivogIHomY4gPiB0aWdlcjsKK+aymem+jSA+IHNhbG9uOwor5L+d5aeGID4gbmFubnk7CivlsI/lvpEgPiBhbGxleTsKK+momeWxgCA+IGZyYXVkOwor5bCN5b6FID4gdHJlYXQ7Civmi4nkuIEgPiBsYXRpbjsKK+eQpeePgCA+IGFtYmVyOwor5pyD6KuHID4gdGFsa3M7CivohIjmkI8gPiBwdWxzZTsKK+eUouWTgSA+IGdvb2RzOwor5bCL5bi4ID4gdXN1YWw7CivmnI3oo50gPiBkcmVzczsKK+mHkemrriA+IGJsb25kOwor5oiy5byEID4gY2FwZXI7CivmtaroirEgPiBzcHJheTsKK+Wwj+WxiyA+IGNhYmluOwor5riF5r2UID4gY2xlYW47CivmiL/lsYsgPiBob3VzZTsKK+WYjuWYjiA+IHF1YWNrOwor55Sf5YuVID4gdml2aWQ7CivkuIvot6ogPiBrbmVlbDsKK+Wwj+WtqSA+IGNoaWxkOwor5riF5rmvID4gYnJvdGg7Civkvr/lo6sgPiBwZW5ueTsKK+aIv+WtkCA+IGhvdXNlOwor6IC256mMID4gamVzdXM7Civpi7znkLQgPiBwaWFubzsKK+mojuWjqyA+IHJpZGVyOwor6Y+I5a2QID4gY2hhaW47CivmiYvlpZcgPiBnbG92ZTsKK+eUt+S6uiA+IGFcLW1hbjsKK+i3n+WJjSA+IGZyb250Owor5L+u5YmqID4gcHJ1bmU7Civlr6zluqYgPiB3aWR0aDsKK+mmmeaWmSA+IHNwaWNlOwor5Ly65pyNID4gc2Vydm87Civmu4vlkbMgPiB0YXN0ZTsKK+enn+e0hCA+IGxlYXNlOwor5bCW5aGUID4gc3BpcmU7Civll7blmLAgPiBzZXJnZTsKK+axoem7niA+IHN0YWluOwor5rOV6YOOID4gZnJhbmM7CivmtLvokZcgPiBhbGl2ZTsKK+WWnOaChSA+IGhhcHB5Owor5oiQ5bm0ID4gYWR1bHQ7CivogoXmuIUgPiBwdXJnZTsKK+e/see/lCA+IGhvdmVyOwor5a2f5rWqID4gaGFzdHk7Civpu5HoibIgPiBibGFjazsKK+a3ueaykiA+IGZsdXNoOwor56eV57OgID4gY2hhZmY7CivnrKzljYEgPiB0ZW50aDsKK+WTgeeoriA+IGJyZWVkOwor5pmC6aumID4gdm9ndWU7CivmiZPlkbwgPiBzbm9yZTsKK+ahjOWtkCA+IHRhYmxlOwor5LuN54S2ID4gc3RpbGw7CivmuIXmpZogPiBjbGVhcjsKK+mkmOeHvCA+IGVtYmVyOwor56ys5YWtID4gc2l4dGg7CivpjKbmqJkgPiBwcml6ZTsKK+eNqOiHqiA+IGFsb25lOwor57696I6WID4gcXVpbGw7CivmoYPlrZAgPiBwZWFjaDsKK+WwgeWcsCA+IG1hbm9yOwor5L+h5Lu7ID4gdHJ1c3Q7CivkvZzlvIogPiBmcmF1ZDsKK+mhjOinoyA+IG5vdGVzOwor5L+d5L2RID4gYmxlc3M7CivosqjniakgPiBnb29kczsKK+WvoeWppiA+IHdpZG93Owor6aOy55SoID4gZHJpbms7CivkuIDooYwgPiBwYXJ0eTsKK+i2qOWLoiA+IHRyZW5kOwor54u56LevID4gZ29yZ2U7CivlsI/lkIMgPiBzbmFjazsKK+ePiueRmiA+IGNvcmFsOwor54+N54+gID4gcGVhcmw7Civmh7jlsqkgPiBjbGlmZjsKK+m8u+eFmSA+IHNudWZmOwor5rSL6JSlID4gb25pb247CivotqPliocgPiBmYXJjZTsKK+S9juW7iSA+IGNoZWFwOwor5ZOA55ebID4gZ3JpZWY7CivnrKzkupQgPiBmaWZ0aDsKK+esrOS5nSA+IG5pbnRoOwor56ys5LiJID4gdGhpcmQ7CivnrKzkuIAgPiBmaXJzdDsKK+eOu+eSgyA+IGdsYXNzOwor56qS5oGvID4gY2hva2U7CivmnInnt5ogPiB3aXJlZDsKK+adv+a7ryA+IHN0aWZmOwor5omT5LuXID4gZmlnaHQ7CivmiLLliocgPiBkcmFtYTsKK+ayiemHjSA+IGhlYXZ5Owor5rKI6YeNID4gaGVhdnk7CivmnIDntYIgPiBmaW5hbDsKK+e9quihjCA+IGNyaW1lOwor572p6KGrID4gc21vY2s7CivkvaDlpb0gPiBoZWxsbzsKK+S9jeWtkCA+IHBsYWNlOwor5rOi6JWpID4gaGVhdmU7CivotbDlkJEgPiB0cmVuZDsKK+m6teeyiSA+IGZsb3VyOwor5aaW6a2UID4gZGVtb247Civnjofnm7QgPiBmcmFuazsKK+aYjumhryA+IGNsZWFyOwor6aGP6ImyID4gY29sb3I7CivlsI/kuJEgPiBjbG93bjsKK+aZr+ixoSA+IHNjZW5lOwor54uh6KmQID4gY3JhZnQ7CivmhqTmgJIgPiBhbmdyeTsKK+iyneauvCA+IHNoZWxsOwor5L6N5YCZID4gc2VydmU7CivosaHniZkgPiBpdm9yeTsKK+WVhuW6lyA+IHN0b3JlOwor5Zad5Y+xID4gY2hpZGU7CivmtbfngZggPiBiZWFjaDsKK+eQtOW8piA+IGNob3JkOwor542O56ugID4gbWVkYWw7CivlrZDmiL8gPiBvdmFyeTsKK+iSvOm3uiA+IGhlcm9uOwor6LWm5YWNID4gcmVtaXQ7Civku4rml6UgPiB0b2RheTsKK+acqOeJiCA+IHBsYW5rOwor56We57aTID4gbmVydmU7CivmgKroqpUgPiBmcmVhazsKK+ermeS9jyA+IHN0YW5kOwor5rK/6JGXID4gYWxvbmc7Civkub7mt6ggPiBjbGVhbjsKK+WvhuWIhyA+IGNsb3NlOwor5rex5bqmID4gZGVwdGg7CivljYjppJAgPiBsdW5jaDsKK+aIkOS6uiA+IGFkdWx0Owor5Y2I6aOvID4gbHVuY2g7CivmtbfmtIsgPiBvY2VhbjsKK+iCmuWtkCA+IGJlbGx5Owor542154qsID4gaG91bmQ7CivnkIbmg7MgPiBpZGVhbDsKK+m1qum2iSA+IHF1YWlsOwor5Lul5b6MID4gYWZ0ZXI7CivlranlrZAgPiBjaGlsZDsKK+iAveaTsSA+IHRhcnJ5Owor5LqL5qWtID4gY2F1c2U7CivlraLlrZAgPiBzcG9yZTsKK+aXhemkqCA+IGhvdGVsOwor5aW06Zq4ID4gc2xhdmU7CivlkIrnuakgPiBzbGluZzsKK+mmrOS+hiA+IG1hbGF5Owor6aas5LyVID4gZ3Jvb207CivlpKfpub8gPiBtb29zZTsKK+iBluW+kiA+IHNhaW50Owor5LiW55WMID4gd29ybGQ7CivmuKHlj6MgPiBmZXJyeTsKK+a4m+WOuyA+IG1pbnVzOwor5Lq65oCnID4gaHVtYW47CivmhYjmgrIgPiBtZXJjeTsKK+mfv+iBsiA+IG5vaXNlOwor6KuW6aGMID4gdG9waWM7CivljaHou4ogPiB0cnVjazsKK+WuouS6uiA+IGd1ZXN0Owor572M57KfID4gcG9wcHk7Civpoa/nhLYgPiBjbGVhcjsKK+aWkemmrCA+IHplYnJhOwor5q+N6Z+zID4gdm93ZWw7Civku5nlpbMgPiBmYWlyeTsKK+eooOWvhiA+IGRlbnNlOwor5aWX6ZCYID4gY2hpbWU7CivlrojlgJkgPiBhYmlkZTsKK+a0l+a+oSA+IGJhdGhlOwor5p2/5bKpID4gc2xhdGU7CivorKzoqqQgPiBlcnJvcjsKK+miqOagvCA+IHN0eWxlOwor5rSX5ruMID4gcmluc2U7CivkuIDniYcgPiBwaWVjZTsKK+mMouWMhSA+IHB1cnNlOwor6aCt55quID4gc2NhbHA7Civmnb/lrZAgPiBib2FyZDsKK+WNkeizpCA+IGxvd2x5Owor5LuK5aSpID4gdG9kYXk7CivmhJvmhZUgPiBhZG9yZTsKK+aAneiAgyA+IHRoaW5rOwor6aKo5pq0ID4gc3Rvcm07CivljYfotbcgPiBob2lzdDsKK+iYi+aenCA+IGFwcGxlOwor6LKd5a+nID4gYmVuaW47CivorKDoqIAgPiBydW1vcjsKK+aXi+i9iSA+IHdoaXJsOwor5Y+W56yRID4gdGVhc2U7CivmsLTom60gPiBsZWVjaDsKK+iqnumfsyA+IHZvaWNlOwor5aS+6YmXID4gdG9uZ3M7Civml6XoqJggPiBkaWFyeTsKK+mgkueZvCA+IGlzc3VlOwor5LmD5pivID4gdG9cLWJlOwor5paw6L+RID4gbmV3bHk7Civlq4zmg6EgPiBhYmhvcjsKK+Wjgem+lSA+IG5pY2hlOwor5ZC45rCjID4gc25pZmY7CivoqpjpmbcgPiBzbmFyZTsKK+efs+mgrSA+IHN0b25lOwor54yc5risID4gZ3Vlc3M7Civku6Plg7kgPiBwcmljZTsKK+adk+WtkCA+IHNjb29wOwor5oSf5a6YID4gc2Vuc2U7CivkuInmrKEgPiB0aGlyZDsKK+acrOW9sSA+IHVtYnJhOwor5Lq65ZOhID4gc3RhZmY7CivkuIDmrKEgPiBmaXJzdDsKK+e6jOiogiA+IHJlbmV3Owor5pu05pS5ID4gYWx0ZXI7Civno6jnoo4gPiBncmluZDsKK+itpuesmyA+IHNpcmVuOwor57+S5oWjID4gaGFiaXQ7Civku4rlhZIgPiB0b2RheTsKK+S7peS4iyA+IGJlbG93Owor6YeO5424ID4gYmVhc3Q7CivlkozlubMgPiBwZWFjZTsKK+aUtumkiiA+IGFkb3B0Owor5oCq55WwID4gd2VpcmQ7CivospPlkqogPiBraXR0eTsKK+W/g+iHnyA+IGhlYXJ0Owor5rK85r6kID4gZ2xhZGU7CivmsaHnqaIgPiBuYXN0eTsKK+S4ieaciCA+IG1hcmNoOwor56OF56ekID4gc2NhbGU7Civlk6rlhZIgPiB3aGVyZTsKK+S6pOWPiSA+IGNyb3NzOwor6LKs5YKZID4gYmxhbWU7Civpm7vpg7UgPiBlbWFpbDsKK+S4n+aOiSA+IHRocm93Owor6IGW5Lq6ID4gc2FpbnQ7Civli53pgY4gPiBleGNlbDsKK+aumOmFtyA+IGNydWVsOwor5Y+U54i2ID4gdW5jbGU7CivorYnnq6AgPiBiYWRnZTsKK+a1t+WcsCA+IGhhaXRpOwor5pyA5b6MID4gZmluYWw7CivmraPpnaIgPiBmcm9udDsKK+mbt+mBlCA+IHJhZGFyOwor5ZOB5ZGzID4gdGFzdGU7CivkuLvlubkgPiB0cnVuazsKK+WkseiqpCA+IGxhcHNlOwor54iG6KOCID4gYnVyc3Q7CivpgorpmpsgPiBsaW1pdDsKK+mhj+aWmSA+IHBhaW50Owor54uC54axID4gY3JhemU7CivkupTljYEgPiBmaWZ0eTsKK+egtOijgiA+IGJ1cnN0Owor5rKz5rWBID4gcml2ZXI7CivmgrLmgrwgPiBtb3VybjsKK+mdkuiNiSA+IGdyYXNzOwor5pyo5aGKID4gYmxvY2s7CivkuZnlpKogPiBldGhlcjsKK+mKs+WIqSA+IHNoYXJwOwor6Jmb5YG9ID4gZmFsc2U7CivmnKzlnLAgPiBsb2NhbDsKK+adseS6rCA+IHRva3lvOwor5q+S6JuHID4gdmlwZXI7CivpoIzmrYwgPiBjYXJvbDsKK+WSleWalSA+IGdydW50Owor5qy+6aCFID4gZnVuZHM7CivkuIDmiZMgPiBkb3plbjsKK+ippumHkSA+IGFzc2F5Owor6aCt5pqIID4gZGl6enk7Civlvr3nq6AgPiBiYWRnZTsKK+WKm+mHjyA+IHBvd2VyOwor54Sm6bueID4gZm9jdXM7CivpiYvlrZAgPiBwbGFuZTsKK+aYjueZvSA+IGNsZWFyOwor546L5ZCOID4gcXVlZW47Civnupbntq0gPiBmaWJlcjsKK+S6i+S7tiA+IGV2ZW50Owor6YCX6bueID4gY29tbWE7CivpuqXlrZAgPiB3aGVhdDsKK+S4gOW8tSA+IHNoZWV0Owor5ZKG5ZOuID4gZ3Jvd2w7Civlvq7nrJEgPiBzbWlsZTsKK+eip+eTpiA+IGdyZWVuOwor5rC055uGID4gYmFzaW47CivnhZnpnKcgPiBzbW9rZTsKK+mCj+i8ryA+IGxvZ2ljOwor6Z+z5qiCID4gbXVzaWM7Civmm7Tlo54gPiB3b3JzZTsKK+mDqOiQvSA+IHRyaWJlOwor5bu26YGyID4gZGVsYXk7Civlub3pu5ggPiBodW1vcjsKK+eOi+WGoCA+IGNyb3duOwor6Zm36ZixID4gc25hcmU7CivmlrfntZUgPiBzZXZlcjsKK+S4reWciyA+IGNoaW5hOwor5aSa6JGJID4gbGVhZnk7CivkuIDlsaQgPiBsYXllcjsKK+eHu+iCiSA+IGJhY29uOwor5byV6Ki8ID4gcXVvdGU7Civmk6LpmZ4gPiBleGFsdDsKK+mHjeaWsCA+IGFnYWluOwor5aSn6IW/ID4gdGhpZ2g7CivlpKfohaYgPiBicmFpbjsKK+acrOS6uiA+IGlcLVwobWU7Civnpa3lo4cgPiBhbHRhcjsKK+mfu+aWhyA+IHZlcnNlOwor6YG66LehID4gdHJhY2U7CivpgqPoo6EgPiB0aGVyZTsKK+eGiuiykyA+IHBhbmRhOwor5paR576aID4gZ29yYWw7Civpmobph40gPiBncmFuZDsKK+W9juiFsCA+IHN0b29wOwor5amm5aWzID4gd29tYW47CivokaHokIQgPiBncmFwZTsKK+e+juWlvSA+IGhhcHB5Owor6K6A5pu4ID4gc3R1ZHk7CivnjY7lk4EgPiBhd2FyZDsKK+acgOWInSA+IGZpcnN0Owor5oGQ5oWMID4gcGFuaWM7CivpurXljIUgPiBicmVhZDsKK+mhjeWkliA+IGV4dHJhOwor6buP5L2PID4gY2xpbmc7CivkuIDloYogPiBwaWVjZTsKK+WPr+aAlSA+IGF3ZnVsOwor6YGO6YGTID4gYWlzbGU7CivmsYHmtrIgPiBqdWljZTsKK+ekpuW3pSA+IG1pbmVyOwor5q2M6KygID4gY2hhbnQ7Civmspnmi4kgPiBzYWxhZDsKK+m6teWFkiA+IGNvdmVyOwor5paX56+3ID4gY2xvYWs7CivkuYvkuIsgPiB1bmRlcjsKK+aciOS7vSA+IG1vbnRoOwor5rC05rqWID4gbGV2ZWw7CivlpbPnjosgPiBxdWVlbjsKK+mbm+iPiiA+IGRhaXN5Owor57eo6KO9ID4gd2VhdmU7CivljIXnqYAgPiBtYWl6ZTsKK+W/q+aogiA+IGhhcHB5Owor6YC86L+rID4gZm9yY2U7CivlpoLngasgPiBmaWVyeTsKK+azpeWcnyA+IGVhcnRoOwor5aqS5LuLID4gbWVkaWE7CivkuIDlkIwgPiBhbG9uZzsKK+WgtOmdoiA+IHNjZW5lOwor5aOB6JmOID4gZ2Vja287CivmlZnnvqkgPiBjcmVlZDsKK+avm+eXhSA+IGZhdWx0Owor6aCB5bKpID4gc2hhbGU7Civph5HlsawgPiBtZXRhbDsKK+itieaYjiA+IHByb29mOwor5Y6t5oOhID4gbG9hdGg7CivmmI/mmpcgPiBkdXNreTsKK+avlOeOhyA+IHJhdGlvOwor5aW25rK5ID4gY3JlYW07CivpnI7nnLwgPiBibGluazsKK+awtOaenCA+IGZydWl0Owor55+t57ChID4gYnJpZWY7Civlp7/lrrkgPiBsb29rczsKK+e2k+iyuyA+IGZ1bmRzOwor6KaW6aC7ID4gdmlkZW87CivpgYrooYwgPiBtYXJjaDsKK+aZtOWkqSA+IHN1bm55Owor6YeN5aSnID4gZ3JlYXQ7CivluLbpoJggPiBndWlkZTsKK+mAlei3oSA+IHRyYWNrOwor54iQ54G2ID4gc3RvdmU7CivmmYLluLggPiBvZnRlbjsKK+W8t+ehrCA+IHRvdWdoOwor5bi26ZyyID4gZGV3eTsKK+W9oueLgCA+IGZvcm07CivoloTlkb0gPiBcKHVzdTsKK+WKn+e4viA+IGZlYXQ7CivoqJjomZ8gPiBzZWFsOwor6KaL6Z2iID4gbWVldDsKK+mCiue3oyA+IGVkZ2U7CivmmrTkuoIgPiByaW90Owor54ib5rOlID4gb296ZTsKK+aXpeacnyA+IGRhdGU7Civlp6jlqr0gPiBhdW50Owor5bm96LC3ID4gZGVsbDsKK+WGt+mdnCA+IGNhbG07CivmlZnnmocgPiBwb3BlOwor5b615pS2ID4gbGV2eTsKK+WQkeS4iyA+IGRvd247CivpgJ/ooYwgPiBydXNoOwor6YCZ6KOhID4gaGVyZTsKK+e8uuWPoyA+IG5pY2s7CivpgbLnt6kgPiBzbG93Owor5rCP5pePID4gY2xhbjsKK+WOn+WtkCA+IGF0b207Civmr5vmsIggPiBmZWx0Owor5Yaw6Zu5ID4gaGFpbDsKK+mgkOWFhiA+IG9tZW47Civlp5Hlqr0gPiBhdW50Owor5rGg5a2QID4gcG9uZDsKK+WnkeWomCA+IGdpcmw7Civli7vmt6ggPiBldmVuOwor5pa55qGIID4gcGxhbjsKK+eLguWQoCA+IGhvd2w7Civlv4Pmg4UgPiBtb29kOwor6YeO5YWUID4gaGFyZTsKK+mereWtkCA+IHdoaXA7Civln7rph5EgPiBmdW5kOwor5aa75a2QID4gd2lmZTsKK+WNiuaLiSA+IGhhbGY7Civpr4nprZogPiBjYXJwOwor55+z54mHID4gc2xhYjsKK+W/heW+lyA+IG11c3Q7CivlhrDpjq4gPiBpY2VkOwor5rGg5aGYID4gcG9vbDsKK+eGvueGsSA+IGdsb3c7Civnn7PngbAgPiBsaW1lOwor55qu6Z6tID4gbGFzaDsKK+WGt+mFtyA+IGdyaW07CivlpZHmk5ogPiBkZWVkOwor56Gs5bmjID4gY29pbjsKK+WHneimliA+IGdhemU7CivmlZnmtL4gPiBzZWN0Owor5YWs6ZueID4gY29jazsKK+inkuiJsiA+IHJvbGU7CivnupbluqYgPiBzaXplOwor54mM5a2QID4gc2lnbjsKK+eJm+WltiA+IG1pbGs7CivlpYnmib8gPiBmYXduOwor5pmC5YCZID4gdGltZTsKK+iLsembhCA+IGhlcm87Civplovpl4ogPiB3aWRlOwor5b2O5puyID4gYmVuZDsKK+iqsuaWhyA+IHRleHQ7CivplbfpnbQgPiBib290Owor54mi5Zu6ID4gZmlybTsKK+eZvumdiCA+IGxhcms7Civml5flrZAgPiBmbGFnOwor5aWz5a2pID4gZ2lybDsKK+e6luWwjyA+IGZpbmU7CivlubTogIEgPiBhZ2VkOwor5bem6YKKID4gbGVmdDsKK+eJhuWjgSA+IHdhbGw7CivpgI/ntIUgPiByb3N5Owor5pW45pOaID4gZGF0YTsKK+ipqeatjCA+IHBvZW07Civnha7nhp8gPiBib2lsOwor55+z5p2/ID4gc2xhYjsKK+Wls+WjqyA+IGxhZHk7Civlv43lj5cgPiBiZWFyOwor5b6u5Z6LID4gdGlueTsKK+mCiuayvyA+IGVkZ2U7Civoi7Hph4wgPiBtaWxlOwor5qiC6ZqKID4gYmFuZDsKK+awo+WRsyA+IG9kb3I7CivnhKHnpq4gPiBydWRlOwor6YO95biCID4gY2l0eTsKK+WNgOWfnyA+IGFyZWE7CivoqIjnlasgPiBwbGFuOwor54eD5paZID4gZnVlbDsKK+W9ouW8jyA+IGZvcm07Civopb/oloQgPiBjYWtlOwor5pOY55WrID4gcGxhbjsKK+eFpOeBsCA+IHNvb3Q7CivplovovqYgPiBvcGVuOwor5pWy5omTID4gYmVhdDsKK+mbquaSrCA+IHNsZWQ7Civlvojlpb0gPiB3ZWxsOwor6YGo5ri4ID4gcm9hbTsKK+WmguWQjCA+IGxpa2U7CivlpKflu7MgPiBoYWxsOwor5q+S5a6zID4gYmFuZTsKK+e5qeWtkCA+IGNvcmQ7CivnuYHlv5kgPiBidXN5Owor57Sw6IOeID4gY2VsbDsKK+WNkeWKoyA+IGJhc2U7Civlvqnljp8gPiBoZWFsOwor5Yil55qEID4gZWxzZTsKK+WFrOixrCA+IGJvYXI7Civoqr/lrZAgPiB0dW5lOwor5Yu75a+mID4gZXZlbjsKK+W+teWFhiA+IG9tZW47Civmj7nosqAgPiBiZWFyOwor6ZaS6KuHID4gY2hhdDsKK+ecvOeciyA+IHNvb247Civovpvoi6YgPiBoYXJkOwor55mx6LufID4gbGltcDsKK+mdouWFtyA+IG1hc2s7CivmkpXnoLQgPiB0ZWFyOwor5Z+L6JGsID4gYnVyeTsKK+Wkp+WomCA+IGF1bnQ7CivmrYzmm7IgPiBzb25nOwor5byn5b2iID4gYXJjaDsKK+i8qui7uCA+IGF4bGU7CivluIboiLkgPiBzYWlsOwor5Y2R5LiLID4gYmFzZTsKK+aomeitmCA+IG1hcms7CivluLPnr7cgPiB0ZW50Owor55im6ZW3ID4gc2xpbTsKK+iKsemCiiA+IGxhY2U7Civloavmu78gPiBjcmFtOwor5aGK54uAID4gbHVtcDsKK+aomeiqjCA+IHNpZ247Civpm7nlrZAgPiBoYWlsOwor6Ku+5LqeID4gbm9haDsKK+imj+eroCA+IHJ1bGU7CivmqJnoqJggPiBzaWduOwor5aSW5aWXID4gY29hdDsKK+mVt+ilqiA+IGhvc2U7CivlnJjpmoogPiB0ZWFtOwor5b6e5LitID4gZnJvbTsKK+mVt+iijSA+IGdvd247Civpm4TmgKcgPiBtYWxlOwor552r5q+bID4gbGFzaDsKK+W8t+WnpiA+IHJhcGU7CivnhafmlpkgPiB0ZW5kOwor5o6h6YKRID4gZmllZjsKK+aOpei/kSA+IG5lYXI7Civnmq7ohpogPiBza2luOwor5o6g6YGOID4gZmxpdDsKK+e3qeaFoiA+IHNsb3c7Civln7rnpI4gPiBiYXNlOwor57ay5p62ID4gcmFjazsKK+imj+efqSA+IHJ1bGU7CivngbDoibIgPiBncmF5Owor57Sw55yLID4gcGVlcjsKK+mBsuaFoiA+IHNsb3c7CivopKroibIgPiBmYWRlOwor6YGp5oeJID4gc3VpdDsKK+aVl+WjniA+IHJ1aW47Civpg6jliIYgPiBwYXJ0Owor55y85reaID4gdGVhcjsKK+iLlOiYmiA+IG1vc3M7CivlvaLlg48gPiBmb3JtOwor5Ymd5o6JID4gcGFyZTsKK+mDteS7tiA+IG1haWw7CivmraXlrZAgPiBzdGVwOwor6L+95rGCID4gc2VlazsKK+ihqOmcsiA+IHNob3c7CivnnpHmg7MgPiBtdXNlOwor5pOm5o6JID4gd2lwZTsKK+mBiuaIsiA+IGdhbWU7Civnr4Dpu54gPiBub2RlOwor5aSr5Lq6ID4gbGFkeTsKK+W7muW4qyA+IGNvb2s7CivmjbLou7ggPiByZWVsOwor6auY6aObID4gc29hcjsKK+aVo+WHuiA+IHNoZWQ7Civlt6LnqbQgPiBsYWlyOwor6Zi/5pu8ID4gb21hbjsKK+W7oOWtkCA+IHlhcmQ7CivntKLnhLYgPiBkdWxsOwor5Ymb5by3ID4gZmlybTsKK+ecn+atoyA+IHJlYWw7CivourLpgb8gPiBzaHVuOwor5bua5a2QID4gY29vazsKK+eGseWKmyA+IGhlYXQ7Civlu6PlpKcgPiB2YXN0Owor6bOl5Zi0ID4gYmVhazsKK+Wfuua6liA+IGRhdGE7CivnsL3oqLwgPiB2aXNhOwor6bO05Y+rID4gaG9vdDsKK+WgheaxuiA+IGZpcm07CivoqLHlpJogPiBtYW55Owor54Gw55m9ID4gZ3JleTsKK+aUtuWJsiA+IHJlYXA7CivntrLlrZQgPiBtZXNoOwor5ouz6aCtID4gZmlzdDsKK+atjOWUsSA+IHNpbmc7Civpm5zkuoIgPiBtZXNzOwor5Ya35rehID4gY29sZDsKK+mqqOmgrSA+IGJvbmU7CivliZvlpb0gPiBqdXN0Owor5aOB5YqpID4gaGVscDsKK+aOieiQvSA+IGZsb3A7CivoqankurogPiBiYXJkOwor6JC95LiLID4gZmFsbDsKK+ihqOixoSA+IGlkZWE7CivpmbXlopMgPiB0b21iOwor6IiS6YGpID4gY296eTsKK+iLseeVnSA+IGFjcmU7CivmraXkvJAgPiBwYWNlOwor5qqU5qGIID4gZmlsZTsKK+ewuOiVqSA+IHJvbGw7CivluLbmnIkgPiBoYXZlOwor5q2M5YWSID4gc29uZzsKK+aOpee4qyA+IHNlYW07Civluavlv5kgPiBoZWxwOwor57WQ5oiQID4gZm9ybTsKK+ihjOi1sCA+IHdhbGs7CivlhrDmqYcgPiBzbGVkOwor5YWs54mbID4gYnVsbDsKK+WfjuaxoCA+IGNpdHk7CivnspfnoIIgPiBncml0Owor5YWs54i1ID4gZHVrZTsKK+imgeaciSA+IG5lZWQ7CivohrPpo58gPiBtZWFsOwor6Lqy6JePID4gaGlkZTsKK+iPnOWWriA+IG1lbnU7CivmqavmqJEgPiBiZWFtOwor6KGT6KqeID4gdGVybTsKK+mBsuS6hiA+IGxhdGU7CivliZvli4EgPiBib2xkOwor6KGa6KGVID4gbGFuZTsKK+iJvue1qCA+IG1veGE7CivoqIjlioMgPiBwbGFuOwor5oyJ6KqeID4gbm90ZTsKK+ecn+WvpiA+IHRydWU7Civnl5voi6YgPiBwYWluOwor6Iqx55O2ID4gdmFzZTsKK+WFtuasoSA+IG5leHQ7CivmqZ/mmbogPiB0YWN0Owor5YK+6IG9ID4gaGFyazsKK+ajlemWrSA+IHBhbG07CivlhazmraMgPiBqdXN0Owor5bmz5Z2mID4gZmxhdDsKK+iHgOmDqCA+IGJ1dHQ7CivpkJjpoK0gPiBob3VyOwor5pON5YiHID4gcmFzaDsKK+WdpueEtiA+IGNhbG07CivopoHlvpcgPiBnb29kOwor54K45b2IID4gYm9tYjsKK+W6p+S9jSA+IHNlYXQ7Civoiq/niYcgPiBjaGlwOwor5Zue6IGyID4gZWNobzsKK+mQtemKuSA+IHJ1c3Q7CivlsYvpoIIgPiByb29mOwor5aCh5aOYID4gZm9ydDsKK+WFt+aciSA+IGhhdmU7CivpgJnlhZIgPiBoZXJlOwor6Kej5YeNID4gdGhhdzsKK+eUn+mVtyA+IGdyb3c7CivloIXlrpogPiBmaXJtOwor5be05o6MID4gcGFsbTsKK+eYoueXlSA+IHNjYXI7CivluLblrZAgPiBiYW5kOwor6ZW35qeNID4gcGlrZTsKK+WFreaciCA+IGp1bmU7CivpgJnlgIsgPiB0aGlzOwor6ZaA5qCTID4gYm9sdDsKK+igleifsiA+IHdvcm07Civlg7HnlKggPiBoaXJlOwor5ZyT55ukID4gZGlzazsKK+WcsOeNhCA+IGhlbGw7CivpmL/lgJEgPiBhbWVuOwor6KCV6JmrID4gd29ybTsKK+ebpOWtkCA+IHRyYXk7CivnrYbpjKIgPiBmdW5kOwor6Lev6YKKID4gY3VyYjsKK+eBjOacqCA+IGJ1c2g7CivoppblnJYgPiB2aWV3Owor5pKH5Y67ID4gc2tpbTsKK+i+suWltCA+IHNlcmY7Civln47luIIgPiBjaXR5Owor5aCF5Zu6ID4gZmlybTsKK+Wwj+mmrCA+IGNvbHQ7CivlhbXmiI4gPiBhcm1zOwor5YWJ5p2fID4gYmVhbTsKK+aomeaYjiA+IG1hcms7CivopIfmnKwgPiBjb3B5Owor6J++6JyNID4gdG9hZDsKK+i+suWgtCA+IGZhcm07Civnm5LlrZAgPiBjYXNlOwor5ZyL546LID4ga2luZzsKK+W4s+WWriA+IGJpbGw7CivojYnlnaogPiBsYXduOwor6I2J5ZywID4gbGF3bjsKK+aQtuWlqiA+IHNuYXA7CivooYDnrqEgPiB2ZWluOwor6LuN54GrID4gYXJtczsKK+i3m+i2syA+IGxhbWU7CivmiL/plpMgPiByb29tOwor6KaP5YqDID4gcGxhbjsKK+iFs+i3nyA+IGhlZWw7Civot6HosaEgPiBtYXJrOwor6KaP5YmHID4gcnVsZTsKK+WFrOW5syA+IGZhaXI7Civpjq7pnZwgPiBjYWxtOwor5YO55qy+ID4gY29zdDsKK+aoo+W8jyA+IHR5cGU7CivmkI3lrrMgPiBoYXJtOwor5qih5byPID4gbW9kZTsKK+ebn+WPiyA+IGFsbHk7CivlhZzluL0gPiBob29kOwor5beo5aSnID4gaHVnZTsKK+W3peWkqyA+IHdvcms7Civnlrznl5sgPiBhY2hlOwor6Lez6JqkID4gZmxlYTsKK+aok+W7giA+IGxvZnQ7Civohp3ok4sgPiBrbmVlOwor5L+u6KOcID4gbWVuZDsKK+WxgeipsSA+IHNoaXQ7CivngbDlobUgPiBkdXN0Owor5YG355yLID4gcGVlcDsKK+aooeWtkCA+IG1vbGQ7CivnlqTnl5UgPiBzY2FyOwor5Zyw5pa5ID4gYXJlYTsKK+WFlOWtkCA+IGhhcmU7CivlsI/ot68gPiBsYW5lOwor6Y+I6LevID4gbGluazsKK+eUmOiUlyA+IGNhbmU7Civmjozmk4ogPiBzbGFwOwor5beu5YuBID4gcG9vcjsKK+S9jumfsyA+IGJhc3M7CivmupzotbAgPiBzbGlwOwor55Sc6I+cID4gYmVldDsKK+aNsuabsiA+IGN1cmw7CivmuKzpqZcgPiB0ZXN0Owor55So6IazID4gZGluZTsKK+eskeipsSA+IGpva2U7CivlsbHnvoogPiBnb2F0Owor56u26LO9ID4gcmFjZTsKK+esqOibiyA+IGZvb2w7Civlsqnnn7MgPiByb2NrOwor5YWs5ZGKID4gcG9zdDsKK+W3peWFtyA+IHRvb2w7CivnlJroh7MgPiBldmVuOwor55Wl56K8ID4gY29kZTsKK+i3jOiQvSA+IGZhbGw7Civmva7mv5UgPiBkYW1wOwor6LyD5bCRID4gbGVzczsKK+eZvuWQiCA+IGxpbHk7CivohbDogokgPiBsb2luOwor5Zyw5bi2ID4gem9uZTsKK+ihqOagvCA+IGZvcm07CivplqPkuIsgPiBzaXJlOwor6b6N6aqoID4ga2VlbDsKK+i9ieWLlSA+IHR1cm47CivlhbbkvZkgPiByZXN0Owor5r2u5rWBID4gdGlkZTsKK+S/nee+hSA+IHBhdWw7CivoibLlvakgPiB0aW50Owor5Ziy56yRID4gamVlcjsKK+a9ruaxkCA+IHRpZGU7CivmjbLluLYgPiB0YXBlOwor5ZWk6YWSID4gYmVlcjsKK+a9m+awtCA+IGRpdmU7CivpjY3ph5EgPiBnaWxkOwor5bCP6Ii5ID4gYm9hdDsKK+S7gOm6vCA+IHdoYXQ7CivmjIfmqJkgPiBub3JtOwor6KGd5pKeID4gZGFzaDsKK+Wyqea8vyA+IGxhdmE7Civmj6HkvY8gPiBncmlwOwor5Zyw5Z+fID4gYXJlYTsKK+m8tOm8oCA+IG1vbGU7Civoo73kvZwgPiBtYWtlOwor5Zyf5aOkID4gc29pbDsKK+Wwj+e+iiA+IGxhbWI7CivmjqXlkLsgPiBraXNzOwor6Imv5aW9ID4gZ29vZDsKK+etlueVpSA+IHBsb3Q7CivoobDlvLEgPiB3ZWFrOwor5ryp5rimID4gZWRkeTsKK+Wcn+WcsCA+IGxhbmQ7Civkup7pursgPiBmbGF4Owor5ZO66aSKID4gZmVlZDsKK+WciOWllyA+IHRyYXA7CivnsYPlnIggPiByaW5nOwor6Y+I57WQID4gbGluazsKK+iGveaxgSA+IGdhbGw7CivlnLDljYAgPiBhcmVhOwor5p+U6LufID4gc29mdDsKK+a8j+a0niA+IGhvbGU7CivmjqHkvJAgPiBmZWxsOwor55W25pmCID4gdGhlbjsKK+WAn+asviA+IGxvYW47Civoopblj6MgPiBjdWZmOwor5oub5pS2ID4gaGlyZTsKK+ePvumHkSA+IGNhc2g7CivpppnojYkgPiBoZXJiOwor5Zq05bO7ID4gZ3JpbTsKK+eWueWtkCA+IHJhc2g7Civnp5jpra8gPiBwZXJ1Owor56iF6ZecID4gcGlrZTsKK+eUn+a0uyA+IGxpZmU7Civlg6fkvrYgPiBtb25rOwor5omT5421ID4gaHVudDsKK+aLluaLiSA+IGhhdWw7Civmi7HlvaIgPiBhcmNoOwor5oqx5pyJID4gaGF2ZTsKK+WcjeS9jyA+IGdpcmQ7Civmo43mo5IgPiBjbHViOwor6IGy6K29ID4gZmFtZTsKK+iHquW3sSA+IHNlbGY7Civmi43miZMgPiBmbGFwOwor5ouN5omLID4gY2xhcDsKK+WCteWLmSA+IGRlYnQ7Civogb3oposgPiBoZWFyOwor6aO+6YeYID4gc3R1ZDsKK+Wwj+eJmyA+IGNhbGY7CivooYDloYogPiBnb3JlOwor5rWq6aCtID4gd2F2ZTsKK+WBj+W3riA+IGJpYXM7Civlgr7lgJIgPiBwb3VyOwor6aqw5a2QID4gZGljZTsKK+iyoOi8iSA+IGxvYWQ7CivmipjmlrcgPiBzbmFwOwor6ICB6ZeGID4gYm9zczsKK+iBluipqSA+IGh5bW47Civlgqzkv4MgPiB1cmdlOwor6Yuq6KitID4gcGF2ZTsKK+enn+mHkSA+IHJlbnQ7CivmiZPmrbsgPiBraWxsOwor6aKo6ZqqID4gcmlzazsKK+aer+iQjiA+IHdpbHQ7CivnlKjmiLYgPiB1c2VyOwor5rW46YCPID4gc29hazsKK+eWsuWApiA+IHRpcmU7CivohqDluLYgPiB0YXBlOwor6LOi6IO9ID4gc2FnZTsKK+a1t+i7jSA+IG5hdnk7Civoh63lkbMgPiBmdW1lOwor5YG25YOPID4gaWRvbDsKK+aJi+adliA+IGNhbmU7CivmtbfosbkgPiBzZWFsOwor6Leo5bqmID4gc3BhbjsKK+a6q+aaliA+IHdhcm07CivlraPnr4AgPiB0aW1lOwor5p6c6IKJID4gcHVscDsKK+Wwj+aZgiA+IGhvdXI7CivmipXlsIQgPiBkYXJ0Owor6buD6YeRID4gZ29sZDsKK+WRvemBiyA+IGZhdGU7CivlrZfnr4AgPiBieXRlOwor5rW36KeSID4gY2FwZTsKK+WYhuaBryA+IHNpZ2g7CivllKfnrZIgPiBwdW1wOwor55Wl5Y67ID4gb21pdDsKK+WTuuiCsiA+IGZlZWQ7CivnvoXppqwgPiByb21lOwor6ICD6KmmID4gZXhhbTsKK+aJi+aOjCA+IHBhbG07CivogqXnmoIgPiBzb2FwOwor5oSP6KaLID4gdmlldzsKK+WAjeWhlCA+IGJldGE7CivlsL7lt7QgPiB0YWlsOwor6LSF55ajID4gd2FydDsKK+aCoOmWkiA+IGVhc2U7CivkvK/niLUgPiBlYXJsOwor5ZGo6YGKID4gdG91cjsKK+aiqOWtkCA+IHBlYXI7CivlsLrlr7ggPiBzaXplOwor6aC46aCFID4gbmVjazsKK+eQteeQtiA+IGx1dGU7CivmoYjmlocgPiB0ZXh0Owor6Iag5Y23ID4gZmlsbTsKK+mKgOihjCA+IGJhbms7CivmuLjms7MgPiBzd2ltOwor6Jmn57y6ID4gd2FuZTsKK+WAn+WHuiA+IGxlbmQ7Civlr4zmnIkgPiByaWNoOwor5L+C5bCPID4gdGlueTsKK+WTgeiEqyA+IHBpbnQ7CivlrpfmtL4gPiBzZWN0Owor5LiN6YGcID4gcnVkZTsKK+mmtOacjSA+IHRhbWU7CivkuI3pgY4gPiBvbmx5Owor5LiN6YGCID4gZmFpbDsKK+WwluWzsCA+IHBlYWs7Civmu77li5UgPiByb2xsOwor6LKn56quID4gcG9vcjsKK+Wwj+WztiA+IGlzbGU7CivkuLvopoEgPiBtYWluOwor5p2f57ibID4gYmluZDsKK+adn+e3iiA+IGdpcmQ7CivoloTpnKcgPiBtaXN0Owor5riF5r6IID4gZmFpcjsKK+etluWKgyA+IHBsb3Q7CivosazogokgPiBwb3JrOwor5L2V5pmCID4gd2hlbjsKK+WuueaYkyA+IGVhc3k7CivkuIvot4wgPiBmYWxsOwor6buD6JyCID4gd2FzcDsKK+WPo+mgrSA+IG9yYWw7CivnvbDph5EgPiBmaW5lOwor5Luk54uAID4gd3JpdDsKK+iVqOmhniA+IGZlcm47CivosrvnlKggPiBjb3N0Owor5ZGK6KqhID4gd2FybjsKK+iYhuiRpiA+IHJlZWQ7CivmipPkvY8gPiBncmFiOwor5p2/55quID4gc2xhYjsKK+iEhuW8sSA+IHdlYWs7CivmoLjlv4MgPiBjb3JlOwor6aCt6YOoID4gaGVhZDsKK+agvOW8jyA+IGZvcm07Civmt7Hmt7EgPiBkZWVwOwor5rG66aylID4gZHVlbDsKK+ixhuiFkCA+IHRvZnU7Civmh7bmg7AgPiBpZGxlOwor5ru05LiLID4gZHJpcDsKK+aJgeWdryA+IHNsYWI7CivkvovlrZAgPiBjYXNlOwor5ZKS5721ID4gZGFtbjsKK+iEluWtkCA+IG5lY2s7CivlkIzovKkgPiBwZWVyOwor546p56yRID4gam9rZTsKK+iXpOiUkyA+IHZpbmU7Civkvo3lpbMgPiBtYWlkOwor6JyC5oi/ID4gaGl2ZTsKK+aIkuWtkCA+IHJpbmc7Civmu5HlgJIgPiBzbGlwOwor5rq25YyWID4gbWVsdDsKK+a4uOaIsiA+IGdhbWU7CivlrbjmnJ8gPiB0ZXJtOwor6aas5buEID4gYmFybjsKK+S6nueVtiA+IGFkYW07Civnv4XohoAgPiB3aW5nOwor5LyK5pyXID4gaXJhbjsKK+S4u+e+qSA+IFwtaXNtOwor6bql6Iq9ID4gbWFsdDsKK+WvhuWupCA+IGNlbGw7Civni7nosLcgPiBnbGVuOwor56qp5beiID4gbmVzdDsKK+eJoem5vyA+IGhhcnQ7Civpoqjnro8gPiBraXRlOwor5ZCN6KmeID4gbm91bjsKK+WtmOaguSA+IHN0dWI7CivmmYLplpMgPiB0aW1lOwor5rS+57O7ID4gc2VjdDsKK+ePvuasviA+IGNhc2g7CivnorzpoK0gPiBkb2NrOwor6YeA6YCgID4gYnJldzsKK+iXjeiJsiA+IGJsdWU7Civlronmga8gPiByZXN0Owor6IGW5q2MID4gaHltbjsKK+mjvea7vyA+IGZ1bGw7Civlk63ms6MgPiB3ZWVwOwor6aOf54mpID4gZm9vZDsKK+aFvuacmyA+IGx1c3Q7Civlj7LoqakgPiBlcGljOwor5LiA6IisID4gc2FtZTsKK+Wwj+S4mCA+IGhpbGw7Civmg4Xnr4AgPiBwbG90Owor56m/5bi2ID4gd2VhcjsKK+S8keaBryA+IHJlc3Q7CivpoIjopoEgPiBtdXN0Owor5p2+5qi5ID4gcGluZTsKK+iWlOiWhyA+IHJvc2U7Civkup7mtLIgPiBhc2lhOwor5a625ZySID4gaG9tZTsKK+aGkOaGqyA+IHBpdHk7Civmmpfol48gPiBoaWRlOwor54mb6aOyID4gZ3VscDsKK+izuuW+lyA+IGVhcm47Civos4fmlpkgPiBkYXRhOwor6LGO55C0ID4gaGFycDsKK+S4gOe+pCA+IGdhbmc7CivmnpzmlrcgPiBmaXJtOwor56iu5pePID4gcmFjZTsKK+m7keeXoyA+IG1vbGU7Civpn7Poqr8gPiB0b25lOwor5rSe56m0ID4gY2F2ZTsKK+adv+ainSA+IGxhdGg7CivkuIrntYMgPiB3aW5kOwor5ZOA5rOjID4gd2FpbDsKK+iytOaXjyA+IGxvcmQ7Civlk4jmrKAgPiB5YXduOwor5rWq5r2uID4gd2F2ZTsKK+emrueJqSA+IGdpZnQ7CivlkIToh6ogPiBlYWNoOwor6LGs5rK5ID4gbGFyZDsKK+mMq+WuiSA+IHppb247CivnjbXniakgPiBwcmV5Owor5b+r6YCfID4gZmFzdDsKK+mdiOmtgiA+IHNvdWw7Civniq/opo8gPiBmb3VsOwor5a6w5Yi2ID4gcnVsZTsKK+S5g+eIviA+IHRodXM7Civpo7zmlpkgPiBmZWVkOwor5rK56IaPID4gYmFsbTsKK+ePreaIvyA+IGphaWw7CivpvpDlpKcgPiBodWdlOwor5riv5Y+jID4gcG9ydDsKK+aWkem7niA+IHNwb3Q7CivkuIDnopcgPiBib3dsOwor5aSn6bq7ID4gaGVtcDsKK+a1ruaomSA+IGJ1b3k7Civmg7Pms5UgPiBpZGVhOwor5a625LyZID4gY2hhcDsKK+S6pOaOpSA+IGpvaW47CivlvozpnaIgPiByZWFyOwor5aSp6bWdID4gc3dhbjsKK+acg+a8jyA+IGxlYWs7CivmlbTpvYogPiB0aWR5Owor5piH6LW3ID4gcmlzZTsKK+WVhuWTgSA+IGdvb2Q7CivljZHphJkgPiBiYXNlOwor54qE6KeSID4gaG9ybjsKK+avjemmrCA+IG1hcmU7CivlrZflnosgPiBmb250Owor5a6J5YWoID4gc2FmZTsKK+eoruWtkCA+IHNlZWQ7CivlraTllq4gPiBsb25lOwor56iL5byPID4gZm9ybTsKK+acqOahtiA+IGNhc2s7Civnvrnmua8gPiBzb3VwOwor5Y2w6K2JID4gc2VhbDsKK+acqOadvyA+IHNsYWI7CivlkLnniZsgPiBicmFnOwor5pyo5p2QID4gd29vZDsKK+mjvuW4tiA+IHNhc2g7CivogIHmkr4gPiBsYW9zOwor5pym5pynID4gYmx1cjsKK+mdoOi/kSA+IG5lYXI7CivomZvlvLEgPiB3ZWFrOwor5raI5oGvID4gbmV3czsKK+iqsumhjCA+IHRhc2s7CivmnJ/mnJsgPiBob3BlOwor5rex5Y6aID4gZGVlcDsKK+S4u+apnyA+IGNvcmU7CivpvLvlrZAgPiBub3NlOwor54+g5a2QID4gYmVhZDsKK+aXhemBiiA+IHRyaXA7CivnqanlgaUgPiBmaXJtOwor6YOo6ZqKID4gYXJteTsKK+S4iua8siA+IHJpc2U7Civms7DnhLYgPiBjYWxtOwor6b2n5ZKsID4gZ25hdzsKK+eogOWwkSA+IHJhcmU7Civpu5HmmpcgPiBkYXJrOwor5rOi54m5ID4gYmF1ZDsKK+mHjuemvSA+IGZvd2w7CivmmojnnKkgPiBkYXplOwor5aWU6YCDID4gZmxlZTsKK+m7juaYjiA+IGRhd247CivmsrvnmZIgPiBjdXJlOwor5oSP5oCdID4gaWRlYTsKK+afkOS6myA+IHNvbWU7CivmhI/lv7UgPiBpZGVhOwor57mB6ZucID4gbWFueTsKK+aEj+W/lyA+IHdpbGw7CivnqLHlkbwgPiBjYWxsOwor5pu45qGMID4gZGVzazsKK+W8t+miqCA+IGdhbGU7Civpm4Tpub8gPiBidWNrOwor6bq75pyoID4gbnVtYjsKK+acg+aZpCA+IG1lZXQ7Civpu4PmmI8gPiBkdXNrOwor6aCF55uuID4gaXRlbTsKK+mfgee5qSA+IHJlaW47CivllK/kuIAgPiBvbmx5Owor6Zuy6ZuAID4gbGFyazsKK+eHkumWiyA+IGJvaWw7CivnqYDlgIkgPiBiYXJuOwor5p2O5a2QID4gcGx1bTsKK+iBt+S9jSA+IHBvc3Q7Civph47nlJ8gPiB3aWxkOwor5ZCm5rG6ID4gdmV0bzsKK+aymeeZvCA+IHNvZmE7Civms6LmtaogPiB3YXZlOwor5LiA5qijID4gc2FtZTsKK+S7luWAkSA+IHRoZXk7Civms6HmsqsgPiBmb2FtOwor5q2l6amfID4gc3RlcDsKK+iAgeWphiA+IHdpZmU7CivkuLvmhI8gPiBwbGFuOwor6Z2S6JuZID4gZnJvZzsKK+acrOWtkCA+IGJvb2s7CivniZvogokgPiBiZWVmOwor6LGQ5a+MID4gcmljaDsKK+S4g+aciCA+IGp1bHk7CivpirfllK4gPiBzZWxsOwor5LiK5piHID4gcmlzZTsKK+WTjuWRgCA+IGRhbW47Civpnq3nrJ4gPiBmbG9nOwor5LiA5pyNID4gZG9zZTsKK+WkqeizpiA+IGdpZnQ7Civoq4foqbEgPiB0YWxrOwor6LGG5a2QID4gYmVhbjsKK+WqveWqvSA+IG1hbWE7CivlkIzmqKMgPiBzYW1lOwor56Oa55OmID4gdGlsZTsKK+aVj+mKsyA+IGtlZW47CivmsrnmsrkgPiBvaWx5Owor5rOi5p2fID4gYmVhbTsKK+WMheijnSA+IHBhY2s7Civms5XmoYggPiBiaWxsOwor5rGh55eVID4gYmxvdDsKK+mJpOWtkCA+IGhvb2s7CivljbDnq6AgPiBzZWFsOwor6Z2c6ISIID4gdmVpbjsKK+efpemBkyA+IGtub3c7CivnjJvmkp4gPiBzbGFtOwor6YG86ZeKID4gdmFzdDsKK+aVhemEiSA+IGhvbWU7CivpnaLnvakgPiB2ZWlsOwor5b6e6ICMID4gdGh1czsKK+W/meeijCA+IGJ1c3k7Civpnq3nl5UgPiB3ZWx0Owor6YKK6YuSID4gd2luZzsKK+mFuOeXmyA+IGFjaGU7Civlu6Ppl4ogPiB3aWRlOwor56We5oOFID4gbG9vazsKK+S6nuS4gSA+IGFkZW47CivnjajlpY8gPiBzb2xvOwor5rKQ5rW0ID4gYmF0aDsKK+acgOWlvSA+IGJlc3Q7CivnjJbmiqsgPiB3aWxkOwor5ZKA5Zq8ID4gY2hldzsKK+WkluiijSA+IHJvYmU7CivoqpPoqZ4gPiBvYXRoOwor5YuV6KmeID4gdmVyYjsKK+eOqeWBtiA+IGRvbGw7CivoqpPoqIAgPiBvYXRoOwor6JaE5pquID4gZHVzazsKK+e6lue0sCA+IGZpbmU7CivkuIvlt7QgPiBjaGluOwor5paw6IGeID4gbmV3czsKK+eNheWtkCA+IGxpb247Civmm7TlpJogPiBtb3JlOwor5aKe6ZW3ID4gZ3JvdzsKK+WPquaciSA+IG9ubHk7CivlkYblrZAgPiBmb29sOwor5pq05b6SID4gdGh1ZzsKK+axveawtCA+IHNvZGE7CivpnaLnqY0gPiBhcmVhOwor5ZG95ZCNID4gbmFtZTsKK+auteiQvSA+IHBhcnQ7Civnn63opaogPiBzb2NrOwor5byV6K2JID4gY2l0ZTsKK+mIleW4tiA+IGJvbmQ7CivliY3pnaIgPiBmb3JlOwor6Zmj6aKoID4gZ3VzdDsKK+e3qOi8ryA+IGVkaXQ7CivmrbvoqJggPiBjcmFtOwor5oOh5YqjID4gdmlsZTsKK+a1geWLlSA+IGZsb3c7CivmnIPlkIggPiBtZWV0Owor5q+b57eaID4geWFybjsKK+WMl+e0hCA+IG5hdG87Civph43mk4ogPiBiYW5nOwor5rS+5Ye6ID4gc2VuZDsKK/CgsYMgPiB0aGluOwor5rGg5rK8ID4gcG9vbDsKK+atpeiqvyA+IGdhaXQ7CivnuanntKIgPiByb3BlOwor6YCa6aKoID4gYWlyeTsKK+aBkOaHvCA+IGZlYXI7Civnoo7niYcgPiBjaGlwOwor57ea6LevID4gbGluZTsKK+S4gOWllyA+IHN1aXQ7CivljaHniYcgPiBjYXJkOwor6aGe5Z6LID4gdHlwZTsKK+WMhee0riA+IGJpbmQ7CivkuK3ljYggPiBub29uOwor5q2m6KOdID4gYXJtczsKK+iWhOW8sSA+IHdlYWs7CivkuIDloIYgPiBwaWxlOwor6K6K5o+bID4gdmFyeTsKK+iSvOeZvSA+IHBhbGU7CivmsLTmu7QgPiBkcm9wOwor57ep6KejID4gZWFzZTsKK+acieS6myA+IHNvbWU7CivmnIjkuq4gPiBtb29uOwor5bm06aCtID4geWVhcjsKK+ekpuWxsSA+IG1pbmU7CivpgZPot68gPiByb2FkOwor5rSX5Yi3ID4gd2FzaDsKK+mZuOi7jSA+IGFybXk7CivmlLbol48gPiBrZWVwOwor5pOg6YCyID4gdHVjazsKK+S4iuWPuCA+IGJvc3M7CivpoJjlsI4gPiBsZWFkOwor5rC05rGgID4gcG9uZDsKK+mbu+e3miA+IHdpcmU7CivkuIDlkLkgPiBwdWZmOwor5q+b55quID4gcGVsdDsKK+eDj+m0iSA+IGNyb3c7Civli57ntK8gPiB0b2lsOwor6YGL6LK7ID4gZmFyZTsKK+WjgeiZsSA+IHRpY2s7CivmkqXplosgPiBwb2tlOwor6Kit6KiIID4gcGxhbjsKK+i/t+mZoyA+IG1hemU7CivlkJ3ll4cgPiBtZWFuOwor5LiA5Y2KID4gaGFsZjsKK+mgguWzsCA+IHBlYWs7Civol6XkuLggPiBwaWxsOwor5pif5pyfID4gd2VlazsKK+awtOanvSA+IHNpbms7CivnvLrlsJEgPiBsYWNrOwor5LiW5LuHID4gZmV1ZDsKK+aSnumOliA+IGxvY2s7Civpnq3mkrsgPiBsYXNoOwor6Zmw6KyAID4gcGxvdDsKK+WOreaBqCA+IGhhdGU7CivpgYfoposgPiBtZWV0Owor5piO5pifID4gc3RhcjsKK+S4jeS4gCA+IHZhcnk7CivorIDmsYIgPiBzZWVrOwor6Zyy54efID4gY2FtcDsKK+avkueJqSA+IHBlc3Q7CivmmpblkowgPiB3YXJtOwor5LiA5LqbID4gc29tZTsKK+mereaJkyA+IHdoaXA7Civlj6vlm4IgPiBob290Owor54K66aaWID4gaGVhZDsKK+axguaEmyA+IHdvbzsKK+WQjOS9jSA+IHBhcjsKK+mcsuawtCA+IGRldzsKK+WPl+WIsCA+IGdldDsKK+WPr+S7pSA+IGNhbjsKK+mFkuW7iiA+IGJhcjsKK+WNmuW+lyA+IHdpbjsKK+WPiuWFtiA+IGFuZDsKK+efs+ayuSA+IG9pbDsKK+aZguS7oyA+IGFnZTsKK+avr+WtkCA+IHJ1ZzsKK+W5tOe0gCA+IGFnZTsKK+Wll+WtkCA+IGNhcDsKK+egtOW4gyA+IHJhZzsKK+mtmumwrSA+IGZpbjsKK+W8t+aLiSA+IHR1ZzsKK+e2k+eUsSA+IHZpYTsKK+WiqOawtCA+IGluazsKK+ioreazlSA+IHRyeTsKK+mWk+irnCA+IHNweTsKK+ecvOedmyA+IGV5ZTsKK+atpOaZgiA+IG5vdzsKK+WmguS9lSA+IGhvdzsKK+e1guerryA+IGVuZDsKK+ecvOeVjCA+IGtlbjsKK+W5vOeNuCA+IGN1YjsKK+mbouWtkCA+IGlvbjsKK+eEpuayuSA+IHRhcjsKK+mAgOa9riA+IGViYjsKK+eBq+iFvyA+IGhhbTsKK+mZsOaalyA+IGRpbTsKK+e3iuaKsSA+IGh1ZzsKK+e4veWSjCA+IHN1bTsKK+imj+eOhyA+IGxhdzsKK+maseWvhiA+IHNseTsKK+egjeS8kCA+IGhldzsKK+WIuuaOoiA+IHByeTsKK+iKuOiKuCA+IGFsbDsKK+iJsuiqvyA+IGh1ZTsKK+WBh+mrriA+IHdpZzsKK+mAlOW+kSA+IHdheTsKK+WJjeWklSA+IGV2ZTsKK+WgheaenCA+IG51dDsKK+WFiOeUnyA+IHNpcjsKK+ashOWciCA+IHBlbjsKK+apoeaouSA+IG9hazsKK+iMtuadryA+IGN1cDsKK+imquWxrCA+IGtpbjsKK+aLlui7iiA+IHRvdzsKK+Whq+WFhSA+IHBhZDsKK+W4veWtkCA+IGhhdDsKK+aQluaTuiA+IHdhZzsKK+ecvOWJjSA+IG5vdzsKK+WIgOWPoyA+IGN1dDsKK+aoheaouSA+IGZpcjsKK+eUqOmAlCA+IHVzZTsKK+eUnOmFkiA+IHJ1bTsKK+ecvOS4iyA+IG5vdzsKK+WHuuWDuSA+IGJpZDsKK+ilr+WiiiA+IHBhZDsKK+WCs+ecnyA+IGZheDsKK+iLpuaDsSA+IGFpbDsKK+iFs+i2viA+IHRvZTsKK+aLluiIuSA+IHRvdzsKK+mqqOe9iCA+IHVybjsKK+eZvOaAkiA+IG1hZDsKK+i7n+avmyA+IGZ1cjsKK+iHguiGgCA+IGFybTsKK+i8leaJkyA+IHRhcDsKK+aQtuWKqyA+IHJvYjsKK+WFkuWtkCA+IHNvbjsKK+aJr+ijgiA+IHJpcDsKK+Wwj+iyuyA+IHRpcDsKK+amhuaouSA+IGVsbTsKK+WVnOmjsiA+IHNpcDsKK+W3peS9nCA+IGpvYjsKK+aPtOWKqSA+IGFpZDsKK+iCi+mqqCA+IHJpYjsKK+idmeidoCA+IGJhdDsKK+m+jemgrSA+IHRhcDsKK+aJi+iHgiA+IGFybTsKK+a3t+mbnCA+IG1peDsKK+WcsOWcliA+IG1hcDsKK+mshuW8myA+IHNhZzsKK+eUn+eXhSA+IGlsbDsKK+iii+WtkCA+IGJhZzsKK+mkoemkhSA+IHBpZTsKK+WwhOe3miA+IHJheTsKK+mLpOmgrSA+IGhvZTsKK+mLuOmWiyA+IHNhdzsKK+iAgem8oCA+IHJhdDsKK+aenOmGrCA+IGphbTsKK+iho+WkviA+IHBlZzsKK+WcjeWFnCA+IGJpYjsKK+aLluaKiiA+IG1vcDsKK+S5iOm7niA+IGFjZTsKK+Wwj+eLlyA+IHB1cDsKK+iyqOi7iiA+IHZhbjsKK+aIsOeIrSA+IHdhcjsKK+m7numgrSA+IG5vZDsKK+iCpeiDliA+IGZhdDsKK+Wwjea6liA+IGFpbTsKK+WZtOWwhCA+IGpldDsKK+WCouS8mSA+IGd1eTsKK+iIieWLlSA+IGFjdDsKK+m6i+m5vyA+IGVsazsKK+acqOmHmCA+IHBlZzsKK+eTpuaWryA+IGdhczsKK+mpouWtkCA+IGFzczsKK+eUt+WtqSA+IGJveTsKK+aJgOaciSA+IGFsbDsKK+mRsOWMmSA+IGtleTsKK+WTvOiBsiA+IGh1bTsKK+S5hemBoCA+IG9sZDsKK+mjm+ifsiA+IGJ1ZzsKK+ethuWwliA+IG5pYjsKK+m6pemFkiA+IGFsZTsKK+S/ruWlsyA+IG51bjsKK+S+v+W4vSA+IGNhcDsKK+acg+iyuyA+IGR1ZTsKK+WwvOWnkSA+IG51bjsKK+S5vuiNiSA+IGhheTsKK+WAn+WCtSA+IG93ZTsKK+aHh+axgiA+IGJlZzsKK+WxouWKoCA+IHBseTsKK+mjm+e/lCA+IGZseTsKK+aJh+WtkCA+IGZhbjsKK+iFkOWjniA+IHJvdDsKK+epuuawoyA+IGFpcjsKK+S9huaYryA+IGJ1dDsKK+iXneihkyA+IGFydDsKK+WuieaUviA+IGxheTsKK+WXmuWSvSA+IHNvYjsKK+afk+aWmSA+IGR5ZTsKK+S7mOasviA+IHBheTsKK+S4jeiJryA+IGJhZDsKK+i0j+W+lyA+IHdpbjsKK+mgjOipniA+IG9kZTsKK+S5vueHpSA+IGRyeTsKK+WRiue1giA+IGVuZDsKK+axvei7iiA+IGNhcjsKK+a1t+eBoyA+IGJheTsKK+iAs+actSA+IGVhcjsKK+S9jeWFgyA+IGJpdDsKK+S6lOaciCA+IG1heTsKK+S9leS6uiA+IHdobzsKK+eHlem6pSA+IG9hdDsKK+awo+i7iiA+IGJ1czsKK+acq+acnyA+IGVuZDsKK+avjembniA+IGhlbjsKK+WTgOaEgSA+IHNhZDsKK+ekpuefsyA+IG9yZTsKK+WTgOaAqCA+IHNhZDsKK+WkqumZvSA+IHN1bjsKK+aAlee+niA+IGNveTsKK+adr+WtkCA+IGN1cDsKK+isiuipsSA+IGxpZTsKK+isiuiogCA+IGxpZTsKK+mbtumgrSA+IG9kZDsKK+S7u+S9lSA+IGFueTsKK+a3qOWAvCA+IG5ldDsKK+WllOi3kSA+IHJ1bjsKK+WllOi1sCA+IHJ1bjsKK+a1geaEnyA+IGZsdTsKK+WTjuWWsiA+IGhleTsKK+ePvuS7iiA+IG5vdzsKK+aal+a3oSA+IGRpbTsKK+aYr+eahCA+IHllczsKK+S4gOaOkiA+IHJvdzsKK+aWueiInyA+IGFyazsKK+aWsOiIiCA+IG5ldzsKK+S4iuW4nSA+IGdvZDsKK+iAjOS7iiA+IG5vdzsKK+WPr+aYryA+IGJ1dDsKK+axveayuSA+IGdhczsKK+eIhuiBsiA+IHBvcDsKK+e9quaDoSA+IHNpbjsKK+aUtuiyuyA+IGZlZTsKK+avjee+iiA+IGV3ZTsKK+azleW+iyA+IGxhdzsKK+aAjuaooyA+IGhvdzsKK+mbnuibiyA+IGVnZzsKK+S4jeWWhCA+IGJhZDsKK+mwu+mtmiA+IGVlbDsKK+WkqeepuiA+IHNreTsKK+aCsuWCtyA+IHNhZDsKK+W6iumLqiA+IGJlZDsKK+S4puS4lCA+IGFuZDsKK+WIpemHnSA+IHBpbjsKK+e4q+e0iSA+IHNldzsKK+S4gOWIhyA+IGFsbDsKK+mAmumAmiA+IGFsbDsKK+W5s+mNiyA+IHBhbjsKK+aUvue9riA+IHB1dDsKK+W5tOmCgSA+IG9sZDsKK+avjeeJmyA+IGNvdzsKK+WmguaenCA+IGlmOwor6YKE5pivID4gb3I7CivnmoToqbEgPiBpZjsKK+WFieeinyA+IGNkOwor6KaB5pivID4gaWY7Civoi6XmmK8gPiBpZjsKK+Wah+iBsiA+IGhvOwor5oiW6ICFID4gb3I7CivmiJHnmoQgPiBteTsKK+WBh+WmgiA+IGlmOwor5oiR5YCRID4gd2U7CivllYrlkYAgPiBvaDsKK+aWp+mgrSA+IGF4Owor5LiA5L2GID4gaWY7CivkuIDlgIsgPiBhOwor46GOID4gdGhlXC1sb25nXC1iYW5kc1wtb3JcLXJpYmJvbnNcLWF0dHJhY2hlZFwtdG9cLWZsYWdzXC1hbmRcLWJhbm5lcnNcLXRoZVwtZmVhdGhlclwtZGVjb3JlY3RlZFwtY2FycmlhZ2VzXC1vclwtZHJlc3NlczsKK+mDryA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtcHJpbmNpcGFsaXR5XC13aGljaFwtd2FzXC1zaXR1YXRlZFwtaW5cLXdoYXRcLWlzXC1ub3dcLXBhcnRcLW9mXC1zaGFudHVuZ1wtYW5kXC1raWFuZ3N1Owor5JCeID4gdGhlXC10aGluXC1tZW1icmFuZVwtYmV0d2Vlblwtc2tpblwtYW5kXC1mbGVzaFwtdGhhdFwtcHJvdGVjdHNcLWludGVybmFsXC1vcmdhbnNcLW9yXC10aXNzdWVzXC1pblwtdGhlXC1odW1hblwtYm9keTsKK+ePqiA+IGFcLWphZGVcLXRhYmxlXC1jb25mZXJyZWRcLXVwb25cLWZldWRhbFwtcHJpbmNlc1wtYnlcLXRoZVwtZW1wZXJvclwtYXNcLWFcLXN5bWJvbFwtb2ZcLWRpZ25pdHlcLWFuZFwtYXV0aG9yaXR5Owor47q6ID4gYVwtdmVyeVwtcHJlY2lvdXNcLXBpZWNlXC1vZlwtamFkZVwtd29yblwtYnlcLWFuY2llbnRcLWVtcGVyb3JzXC10b1wtbWF0Y2hcLXRhYmxlc1wtYm9ybmVcLWJ5XC10aGVcLW5vYmxlczsKK+SAmCA+IHRvXC1jb3ZlclwtdGhlXC1saW5lXC1vZlwtdmlzaW9uXC1vclwtc2lnaHRcLVwtXC10aGVcLXN0cmFpZ2h0XC1saW5lXC1iZXR3ZWVuXC1hblwtb2JqZWN0XC1hbmRcLW9uZScnc1wtZXllczsKK+OopyA+IHdvb2Rlblwtc3RpY2tcLW9yXC1iYW1ib29cLWNhbmVcLXVzZWRcLXRvXC1zdXBwb3J0XC10aGVcLWNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OUoyA+IGluXC1hbmNpZW50XC10aW1lc1wtdG9cLWZpZ2h0XC1hZ2FpbnN0XC10aGVcLWVuZW15XC1ieVwtcHVzaGluZ1wtZG93blwtdGhlXC1iaWdcLXJvY2tzXC1mcm9tXC11cFwtaGlnaDsKK+SaqyA+IG9ybmFtZW50YWxcLWFydGljbGVzXC1tYWRlXC1vZlwtaG9ybnNcLXVzZWRcLXRvXC1kZWNvcmF0ZVwtdGhlXC10b3BcLW9mXC1hXC1zdGlja1wtb3JcLWhvcnNld2hpcDsKK+eskCA+IGJhbWJvb3NcLXBsYWNlZFwtYWNyb3NzXC13b29kZW5cLWZyYW1lc1wtb25cLXdoaWNoXC1ncmFpblwtbWF5XC1iZVwtc3RvcmVkXC1pblwtZGFtcFwtY2xpbWF0ZXM7Civko54gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlXC13aGljaFwtb2NjdXBpZWRcLXRoZVwtc2l0ZVwtb2ZcLXRoZVwtcHJlc2VudFwtcHJvdmluY2VcLW9mXC1odWJlaTsKK+SHtiA+IGFcLXNtYWxsXC1yYWZ0ZXJzXC1tYWRlXC1vZlwtYmFtYm9vXC13aGljaFwtcHJvamVjdFwtZm9ybVwtdGhlXC1lYXZlc1wtYW5kXC1zdXBwb3J0XC10aGVcLXRpbGVzOwor6LOoID4gdHJpYnV0ZVwtcGFpZFwtaW5cLWNsb3RoXC1ieVwtdGhlXC10cmliZXNcLWluXC1zemVjaHdhblwtYW5kXC15dW5uYW5cLXVuZGVyXC10aGVcLWhhblwtZHluYXN0eTsKK+emqyA+IHNhY3JpZmljZVwtb2ZmZXJlZFwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC10aHJlZVwteWVhcnMnJ1wtbW91cm5pbmdcLXRoZVwtZGVhdGhcLW9mXC1hXC1wYXJlbnQ7CivkgqkgPiBhblwtaW5cLXNsYWJcLW9yXC1pbmtcLXN0b25lXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLXJ1YmJpbmdcLW9yXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civkgo0gPiBhXC1raW5kXC1vZlwtd2VhcG9uXC1jYXJyaWVkXC1ieVwtdGhlXC1ob25vclwtZ3VhcmRcLWJlZm9yZVwtdGhlXC1lbXBlcm9yXC1pblwtYW5jaWVudFwtdGltZXM7CivooYggPiB0aGVcLWJsb29kXC1vZlwtYVwtc2FjcmlmaWNpYWxcLWZvd2xcLXdoaWNoXC13YXNcLXNwcmlua2xlZFwtb25cLXRoZVwtZG9vcnNcLWFuZFwtdmVzc2VsczsKK+OvqSA+IHRvXC1wdXRcLXRoZVwtZ3Jvd2luZ1wtdXBcLXNpbGt3b3Jtc1wtaW5cLWRpZmZlcmVudFwtZnJhbWVzXC1hY2NvcmRpbmdcLXRvXC10aGVpclwtc2l6ZXM7CivjmrMgPiBhXC1sYWR5XC10ZWFjaGVyXC10b1wtdGVhY2hcLXRoZVwtcHJvcGVyXC1ydWxlc1wtb2ZcLWZlbWFsZVwtYmVoYXZpb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+e1pSA+IHRvXC1oYXJuZXNzXC1hXC1ob3JzZVwtYVwtYm9hcmRcLWluXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlXC1mb3JcLXRoZVwtZHJpdmVyXC10b1wtbGVhblwtb247Civki60gPiB0b1wtd2VhdmVcLXNpbGtcLWZhYnJpY3NcLXdpdGhcLWdyZWVuXC1jb2xvclwtZm9yXC1sb25naXR1ZGVcLWFuZFwtd2hpdGVcLWZvclwtbGF0aXR1ZGU7CivjrbwgPiBhXC1yZWN0YW5nbGVcLXNoYXBlZFwtcGVnXC1vclwtc2hvcnRcLXBvc3RcLWJldHdlZW5cLXRoZVwtYmVhbnNcLWFuZFwtdGhlXC1yb29mXC10aW1iZXJzOwor55GEID4gYVwtb3JuYW1lbnRhbFwtcGllY2VcLW9mXC1qYWRlXC1zZXZlcmFsXC1pbmNoZXNcLWFjcm9zc1wtd2l0aFwtYVwtaG9sZVwtaW5cLXRoZVwtY2VudGVyOwor5KykID4gdG9cLXB1dFwtdGhlXC10aGlja1wtc291cFwtb3JcLWJyb3RoXC1vblwtdG9wXC1vZlwtdGhlXC1yaWNlXC10aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7Civkpa8gPiBhXC1mYXJtXC10b29sXC10b1wtY3J1c2hcLXRoZVwtY2xvZFwtb2ZcLWVhcnRoXC1pbnRvXC1waWVjZXNcLWFuZFwtbWFrZVwtdGhlXC1sYW5kXC1mbGF0Owor5I2WID4gYVwta2luZFwtb2ZcLW5ldFwtZXF1aXB0ZWRcLXdpdGhcLXRyaWNreVwtbWFjaGluZVwtdXNlZFwtdG9cLWNhdGNoXC1iaXJkc1wtYW5kXC1iZWFzdHM7Civkjq0gPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtbWFkZVwtb2ZcLXR3aXN0ZWRcLXRocm9uXC1zdHJpcHNcLXVzZWRcLXRvXC1mbGF0ZW5cLXRoZVwtbGFuZDsKK+etkyA+IGFcLWhhaXJwaW5cLW9uXC13aGljaFwtdGhlXC1oYWlyXC1pc1wtYm91bmRcLWF0XC10aGVcLWJhY2tcLW9mXC10aGVcLWhlYWRcLlwtMTVcLW9mXC1hZ2U7CivjrrIgPiBhXC1zbWFsbFwtcmluZ1wtb3JcLWFcLXNtYWxsXC1waWVjZVwtb2ZcLWJvYXJkXC1hdHRhY2hlZFwtdG9cLXRoZVwtbXV6emxlXC1vZlwtYW5cLW94Owor5LW7ID4gYVwtc21hbGxcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+eOoCA+IGxhcmdlXC1qYWRlXC10YWJsZXRcLXVzZWRcLWJ5XC1vZmZpY2lhbHNcLWF0XC1jb3VydFwtdG9cLWluZGljYXRlXC10aGVpclwtcmFua3M7CivkgpwgPiByb2NreVwtZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZVwtdG9cLWNvbGxhcHNlOwor46GGID4gYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor46GDID4gYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor6KOOID4gdG9cLXRha2VcLW9mZlwtdGhlXC1jbG90aGVzXC1hbmRcLWV4cG9zZVwtdGhlXC1ib2R5XC5cLXRvXC1jYXJyeVwtaW5cLXRoZVwtZ2lyZGxlOwor6Y6LID4gdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtd2hlZWxcLXRvXC1nb3Zlcm5cLW9yXC1jb250cm9sXC10aGVcLW5vaXNlXC1vZlwtYVwtYmFycm93Owor5KqQID4gc29tZXRoaW5nXC1tYWRlXC1vZlwtYmFtYm9vXC1wdXRcLWluXC10aGVcLWJvd1wtY2FzZVwtdG9cLXByZXRlY3RcLWZyb21cLWRhbWFnZTsKK+SHrSA+IGNvbnRhaW5lcnNcLW1hZGVcLW9mXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1vclwtd2lsbG93XC1icmFuY2hlczsKK+OfrCA+IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtbWVuZ3lpblwtY291bnR5Owor45qlID4gdG9cLWJlY29tZVwtYXNzb2NpYXRlZFwtd2l0aFwtZWFjaFwtb3RoZXJcLWluXC1nb29kXC1tYW5uZXJzXC1hbmRcLXBvbGl0ZW5lc3M7CivkpJ4gPiBhXC1raW5kXC1vZlwtd2VhcG9uc1wtaGVsZFwtYnlcLXRoZVwtb2ZmaWNpYWxzXC1pblwtYXR0ZW5kYW5jZVwtaW5cLW9sZFwtdGltZXM7CivjuasgPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1nZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OzuyA+IGFcLWJhbmtcLW9mXC1lYXJ0aFwtb3JcLWFuXC1lbWJhbmttZW50XC10b1wtYmxvY2tcLXRoZVwtY3VycmVudFwtb2ZcLXRoZVwtd2F0ZXI7Civjr6IgPiBhXC1waWVjZVwtb2ZcLWNyb3NzXC13aXNlXC1ib2FyZFwtdXNlZFwtZm9yXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civkg5ggPiBzaW1wbGVcLWFuZFwtY3J1ZGVcLXRoZVwtc291bmRcLW9mXC1wZWJibGVzXC1vclwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivjsLEgPiB0b1wtc21lYXJcLXRoZVwtbW91dGhcLXdpdGhcLXRoZVwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7Civnja8gPiBhXC10cmliZVwtb2ZcLXNjeXRoaWFuc1wtd2hpY2hcLWludmFkZWRcLWNoaW5hXC1kdXJpbmdcLXRoZVwtaHNpYVwtZHluYXN0eTsKK+melCA+IHNpZGVzXC1vclwtdXBwZXJzXC1vZlwtc2hvZXNcLXRvXC1zdHJldGNoXC1hXC1za2luXC1vblwtYVwtZnJhbWVcLWZvclwtYVwtZHJ1bTsKK+SVvSA+IHRoZVwtcmhvZG9kZW5kcm9uXC1cLVwtXC1pdFwtaXNcLXNhaWRcLXRvXC1jYXVzZVwtc2hlZXBcLXRvXC1zdGFnZ2VyXC1hbmRcLWRpZTsKK+mDnCA+IG5hbWVcLW9mXC1maWVmXC1pblwtc2hhbnRvbmdcLWJlc3Rvd2VkXC1vblwtdGhlXC1lbGRlc3RcLXNvblwtb2ZcLXdlblwtd2FuZzsKK+SNvyA+IGFcLWtpbmRcLW9mXC1kYW5jZVwtYWNjb21wYW5pZWRcLWJ5XC1tdXNpY1wtcGVyZm9ybWVkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjJ4gPiBhXC1rbm90XC10b1wtaGFuZ1wtdGhlXC1hcHBhcmF0dXNcLW1hZGVcLW9mXC1yZWVkXC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SHiSA+IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLW9uZVwtaHVuZHJlZFwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor472IID4gYVwtbGFyZ2VcLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47mQID4gdG9cLXRvd1wtYVwtYm9hdFwtYWdhaW5zdFwtdGhlXC1jdXJyZW50XC1pblwtc3dpZnRcLXN0cmVhbVwtZnJvbVwtdGhlXC1iYW5rOwor5rKFID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtd2VzdGVyblwtaHVuYW5cLXRoYXRcLWZsb3dzXC1pbnRvXC1kb25ndGluZ1wtbGFrZTsKK+ewiyA+IGFcLXNxdWFyZVwtYmFza2V0XC1vZlwtYmFtYm9vXC1mb3JcLWhvbGRpbmdcLWdyYWluXC11c2VkXC1hdFwtc2FjcmlmaWNlczsKK+m3tCA+IHNpbHZlclwtcGhlYXNhbnRcLWJhZGdlXC13b3JuXC1ieVwtY2l2aWxcLW9mZmljaWFsc1wtb2ZcLXRoZVwtNXRoXC1ncmFkZTsKK+iflSA+IGFcLXNwZWNpZXNcLW9mXC10b3J0b2lzZVwtZm91bmRcLW5lYXJcLXRoZVwtbW91dGhcLW9mXC10aGVcLXllbGxvd1wtcml2ZXI7CivjrIYgPiBwb3N0aHVtb3VzXC10aXRsZVwtY29uZmVycmVkXC11cG9uXC1lbXBlcm9yc1wtYW5kXC1lbWluZW50XC1vZmZpY2lhbHM7CivjlLMgPiBhXC1zcXVhcmVcLWJhc2tldFwtb2ZcLWJhbWJvb1wtZm9yXC1ob2xkaW5nXC1ncmFpblwtdXNlZFwtYXRcLXNhY3JpZmljZXM7Civpnp0gPiB0aGVcLXBpZWNlXC1vZlwtbGVhdGhlclwtdXNlZFwtZm9yXC1zb2xlc1wtb25cLWNoaW5lc2VcLXNob2VzXC5cLWFcLXBhdGNoOwor6JSbID4gYVwtc21hbGxcLW9yY2hpZFwtbGlrZVwtcGxhbnRcLWl0XC1iZWFyc1wtd2hpdGVcLWZsb3dlcnNcLWFcLWRlbmRyb2JpdW07CivksJkgPiBhblwtYW5jaWVudFwtdW5pdFwtb2ZcLWNhcGFjaXR5XC13aXRoXC10aHJlZVwtZmVldFwtYW5kXC1hXC1iaWdcLW9wZW5pbmc7CivklLkgPiBhXC1mdW5ndXNcLXdoaWNoXC1ncm93c1wtb25cLXJvdHRlblwtcGxhbnRzXC1hbmRcLWlzXC1lYXRlblwtd2hlblwtZnJlc2g7Civjr6MgPiBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLXRyZWVcLXVzZWRcLXRvXC1wcm9kdWNlXC1wZXJmdW1lXC1ieVwtYnVybmluZ1wtaXQ7Civjr6EgPiB0b1wtbGFjcXVlclwtc29tZVwta2luZFwtb2ZcLWFzaGVzXC1vblwtd29vZGVuXC1hcnRpY2Fsc1wtb3JcLWZ1cm5pdHVyZTsKK+WziyA+IHJhbmdlc1wtb2ZcLWhpbGxzXC1zdHJldGNoaW5nXC1vblwtYmV5b25kXC1hbm90aGVyXC1pcnJlZ3VsYXJcLXBlYWtzOwor5q2DID4gc21lYXJcLW9uZScnc1wtbW91dGhcLXdpdGhcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor576XID4gdHJpYmVzXC1pblwtd2VzdFwtY2hpbmFcLXN0cm9uZ1wuXC1lZHVjYXRlZFwuXC1vYnN0aW5hdGVcLlwtYVwtcGFydGljbGU7CivkuKMgPiBhbmNpZW50XC1mb3JtXC1vZlwtdGhlXC10ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivkoYUgPiBzb21ldGhpbmdcLXVzZWRcLXRvXC1iaW5kXC10aGVcLWZyYW1lXC13b3JrXC1pblwtYVwtY2FydFwtb2ZcLW9sZFwtdGltZXM7CivkmqggPiBhXC1zdHJpbmdcLWZhc3RlbmVkXC10b1wtYW5cLWFycm93XC10b1wtZHJhd1wtaXRcLWJhY2tcLWFmdGVyXC1zaG9vdGluZzsKK+SOoCA+IHRvXC10d2lzdFwtb3JcLXRvXC1jcnVtcGxlXC1iZXR3ZWVuXC1oYW5kc1wtYW5kXC1tYWtlXC1zb21ldGhpbmdcLXR1cm47Civjn7kgPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpblwtaXNcLWxvZnR5XC1hbmRcLXN0ZWVwXC1hbmRcLXByb2ZvdW5kOwor4524ID4gYVwtY29uaWNhbFwtY2FwXC13b3JuXC1vblwtY2VyZW1vbmlvdXNcLW9jY2FzaW9uc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45moID4gdGhlXC1yb3lhbFwtZG9tYWluc1wtc2V0XC1hcGFydFwtaW5cLWFuY2llbnRcLXRpbWVzXC1mb3JcLXRoZVwtZW1wZXJvcjsKK+ihqSA+IHRoZVwtb3Blblwtc2VhbVwtb2ZcLWFcLWdhcm1lbnRcLXdoaWNoXC1hbGxvd3NcLWZyZWVkb21cLW9mXC1tb3ZlbWVudDsKK+WxuiA+IGFcLWhpbGxcLXdpdGhcLXRyZWVzXC1vclwtZ3Jhc3NcLVwtXC1zb21lXC1naXZlXC10aGVcLW9wcG9zaXRlXC1tZWFuaW5nOwor5LamID4gdXBwZXJcLWFuZFwtbG93ZXJcLXRlZXRoXC1pblwtb3JkZXJcLWFuZFwtY29ycmVzcG9uZGluZ1wtZWFjaFwtb3RoZXI7Civkp4IgPiB0b1wtdHVyblwtb3ZlclwtdGhlXC1jbG9kXC1vZlwtdGhlXC1lYXJ0aFwtd2l0aFwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7CivlmZ4gPiB0aGVcLW1vdmVtZW50XC1vZlwtYVwtZmlzaCcnc1wtbW91dGhcLWF0XC10aGVcLXN1cmZhY2VcLW9mXC10aGVcLXdhdGVyOwor5ZS1ID4gdXNlZFwtaW5cLWJ1ZGRoaXN0XC10ZXh0c1wtdG9cLXRyYW5zbGl0ZXJhdGVcLW5vblwtY2hpbmVzZVwtc291bmRzOwor5KCCID4gbmFtZVwtb2ZcLWFcLXBvd2VyZnVsXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtNzQwXC0zMzBcLWJcLmNcLjsKK+SWtiA+IHRvXC1yYWlzZVwtdXBcLXRoZVwtbm9zZVwtaW5cLW9yZGVyXC10b1wtZ2V0XC10aGVcLWJ1Z3NcLWluXC10aGVcLWVhcnRoOwor5ISbID4gc2VydmljZVwtb3JcLXJpdGVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXNcLWZvclwtZHJpbmtcLWFuZFwtZm9vZDsKK+O8sCA+IGFuXC1lYXJ0aGVud2FyZVwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGhcLWFuZFwtdHdvXC1vclwtZm91clwtZWFyczsKK+O4liA+IGhpZGVcLW9yXC10b1wta2VlcFwtaW5cLXN0b3JlXC10aGVcLXZlZ2V0YWJsZVwtaW5cLWNvbGRcLXdpbnRlclwtZGF5czsKK+O3nyA+IHRvXC1zY2FsZFwtdGhlXC1icmlzdGxlc1wtb2ZmXC1hXC1waWdcLW9yXC10aGVcLWZlYXRoZXJzXC1vZmZcLWFcLWJpcmQ7CivjsIcgPiB0aGVcLXNxdWFyZVwtcGVja1wtc2hhcGVkXC1ib3hcLWhhbGZcLXdheVwtdXBcLWFcLWNoaW5lc2VcLWZsYWdzdGFmZjsKK+OuniA+IHRoZVwtc3F1YXJlXC1wZWNrXC1zaGFwZWRcLWJveFwtaGFsZlwtd2F5XC11cFwtYVwtY2hpbmVzZVwtZmxhZ3N0YWZmOwor46a8ID4gYVwtd29vZGVuXC1waWxlc1wtdXNlZFwtYXNcLWFcLWNhYmxlXC10b1wtbWFrZVwtaW1tb3ZhYmxlXC1vZlwtYVwtYm9hdDsKK+OipyA+IGFcLWJvb2tcLW9yXC1wYWludGluZ1wtd2hpY2hcLWNhblwtYmVcLWVhc2lseVwtZm9sZGVkXC1vclwtcm9sbGVkXC11cDsKK+mSsiA+IGtpbmRcLW9mXC1nb25nXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLWJ5XC10cm9vcHNcLW9uXC10aGVcLW1hcmNoOwor6YmmID4ga2luZFwtb2ZcLWdvbmdcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtYnlcLXRyb29wc1wtb25cLXRoZVwtbWFyY2g7CivkqrMgPiBzbGFudGVkXC1mYWNlXC1jYXVzaW5nXC1ieVwtdGhlXC1wYXJhbHl6ZWRcLW9mXC10aGVcLWZhY2lhbFwtbmVydmU7CivknosgPiB0b1wtZG9cLWFsbXNcLWZvclwtdGhlXC1idWRkaGlzdFwtcHJpZXN0c1wtb3JcLW1vbmtzXC1pblwtb2xkXC10aW1lczsKK+SZhiA+IHNsaXRzXC1vblwtdGhlXC1sb3dlclwtcGFydFwtb2ZcLWFcLWdvd25cLWZvclwtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5ICPID4gdG9cLW1vdmVcLW9uZScnc1wtZXllc1wtdG9cLWV4cHJlc3NcLW9yXC1pbmRpY2F0ZVwtd2l0aFwtZXllc1wtZGl6enk7Civjv4QgPiB0aGVcLWdyb2Fuc1wtb3JcLW1vYW5zXC1mcm9tXC1hXC1wZXJzb25cLWluXC1hXC1jcml0aWNhbFwtY29uZGl0aW9uOwor47aPID4gYW5cLWFuY2llbnRcLW5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZVwtZGVuZ2Zlbmd4aWFuOwor47OHID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWppYW5nc3VcLXByb3ZpbmNlXC15aXhpbmdcLWNvdW50eTsKK+OriyA+IGFcLXNpbGtlblwtYmFubmVyXC1oYW5naW5nXC1mcm9tXC1hXC1zdGFmZlwtYmVudFwtb3ZlclwtYXRcLXRoZVwtdG9wOwor54u9ID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmrZAgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1ub25cLWNoaW5lc2VcLXdvcmRzXC1zdWNoXC1hc1wtZXVyb3BlOwor54uIID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmsaggPiBtaVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2VcLXdoZXJlXC1xdVwteXVhblwtZHJvd25lZFwtaGltc2VsZjsKK+axnCA+IGFcLXN0cmVhbVwtd2hpY2hcLWxlYXZlc1wtdGhlXC1tYWluXC1icmFuY2hcLXRoZW5cLWxhdGVyXC1yZXR1cm5zOwor57CIID4gYmFtYm9vXC1tYXRcLXVzZWRcLXRvXC1wcm90ZWN0XC1jYXJyaWFnZVwtcGFzc2VuZ2Vyc1wtZnJvbVwtZHVzdDsKK+eusyA+IGJhbWJvb1wtbWF0XC11c2VkXC10b1wtcHJvdGVjdFwtY2FycmlhZ2VcLXBhc3NlbmdlcnNcLWZyb21cLWR1c3Q7CivniLwgPiBhXC1zbWFsbFwtdGFibGVcLW9yXC10aWVyZWRcLXN0YW5kXC1maWxsZWRcLXdpdGhcLW1lYXRcLW9mZmVyaW5nczsKK+SzmiA+IGFcLXNvcnRcLW9mXC1uaWdodGluZ2FsZVwtd2hpY2hcLWlzXC1zYWlkXC10b1wtc2luZ1wtZm9yXC10aGVcLWRhd247CivkoYIgPiB0aGVcLWxvbmdcLXdvb2RlblwtYnVtcGVyXC1hdFwtdGhlXC1yZWFyXC1vZlwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5IO+ID4gdG9cLW9mZmVyXC1zbWFsbFwtcGlnXC1hc1wtc2FjcmlmaWNlXC13aGVuXC13YXJzaGlwXC1nb2RcLW9mXC1saWZlOwor47yqID4gZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLXRcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47SWID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtamluYW47CivjnYkgPiBzcGFjZVwtYmV0d2VlblwtdGhlXC10aHJvbmVcLWFuZFwtdGhlXC1yZXRpcmluZ1wtcm9vbVwtYmVoaW5kXC1pdDsKK+OWqyA+IHVzZWRcLWluXC1uYW1lc1wtZm9yXC1taW5vcml0eVwtZXRobmljXC1ncm91cFwtaW5cLWFuY2llbnRcLWNoaW5hOwor54KdID4gc3RpclwtZnJ5XC1vclwtYm9pbFwtaW5cLXdhdGVyXC1vclwtb2lsXC10aGVuXC1jb29rXC13aXRoXC1hXC1zYXVjZTsKK+eGlyA+IHN0aXJcLWZyeVwtb3JcLWJvaWxcLWluXC13YXRlclwtb3JcLW9pbFwtdGhlblwtY29va1wtd2l0aFwtYVwtc2F1Y2U7CivlvK4gPiBhXC1jcm93d2Jvd1wtd2hpY2hcLWRpc2NoYXJnZWRcLXNldmVyYWxcLWJvbHRzXC1pblwtc3VjY2Vzc2lvbjsKK+SqmSA+IGxlYXRoZXJcLXdyYXBwZWRcLWNvbGxhclwtZm9yXC1hXC1kcmFmdFwtYW5pbWFsXC1vZlwtYVwtY2FycmlhZ2U7CivkqpYgPiBsZWF0aGVyXC13cmFwcGVkXC1jb2xsYXJcLWZvclwtYVwtZHJhZnRcLWFuaW1hbFwtb2ZcLWFcLWNhcnJpYWdlOwor5KeaID4gdGhlXC1uYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10aGVcLXNvdXRoXC13ZXN0XC1vZlwtaGViZWlcLXByb3ZpbmNlOwor5KGeID4gbGVhdGhlclwtdGhhdFwtd2luZFwtcm91bmRcLW9uXC10aGVcLXNoYWZ0c1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkjZwgPiBhXC1iYXNrZXRcLW9yXC1hXC1jYWdlXC11c2VkXC10b1wta2VlcFwtd2lsZFwtYW5kXC1kb21lc3RpY1wtZm93bHM7Civkh4YgPiBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC10ZW5cLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+SChSA+IHRvXC1oYXZlXC1pbnNpZ2h0XC1vclwtdmlzaW9uXC1vZlwtYVwtc2ltcGxlXC1hbmRcLWhvbmVzdFwtcGVyc29uOwor47K9ID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtdG9kYXknJ3NcLXNvdXRod2VzdFwtb2ZcLXNoYW54aVwtcHJvdmluY2U7CivjrpAgPiBhXC1yYWNrXC1vclwtYVwtc3RhbmRcLXdpdGhcLXRocmVlXC1zdGlja3NcLXRvXC1jcm9zc1wtZWFjaFwtb3RoZXI7CivjrLggPiBhXC1raW5kXC1vZlwtc2VydmljZXNcLW9yXC1jZXJlbW9uaWVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXM7Civpg4wgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhzaWVuXC1pblwtbW9kZXJuXC1nYW5zdVwvc2hhYW54aVwtYXJlYVwuOwor6ICwID4gdG9vdGhsZXNzXC1yYWtlXC1mb3JcLWRyYXdpbmdcLWVhcnRoXC1vdmVyXC1uZXdseVwtc293blwtZ3JhaW47CivnkIAgPiBnZW1zXC1vZlwtcGVhcmxzXC1mb3JtZXJseVwtcHV0XC1pbnRvXC10aGVcLW1vdXRoXC1vZlwtYVwtY29ycHNlOwor5KqDID4gd2luZVwtY29udGFpbmVyXC11c2VkXC1ieVwtbWlub3JpdHlcLXRyaWJlXC1pblwtYW5jaWVudFwtdGltZXM7CivkpbcgPiBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyXC1vclwtaGF5Owor5KSpID4gYW5cLW9ybmFtZW50XC1hdFwtdGhlXC1lbmRcLW9mXC1hXC1iZWx0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivknaogPiB0b1wtcHJvdmlkZVwtbW9uZXlcLW9yXC1naWZ0XC1hbmRcLXRvXC1jb25zdWx0XC1mb3J0dW5lXC10ZWxsZXI7CivkmZsgPiBjZXJlbW9uaWFsXC1kcmVzc1wtb2ZcLXRoZVwtZW1wZXJvclwtb3JcLXZlcnlcLWhpZ2hcLW9mZmljaWFsczsKK+SYpiA+IGFcLWtpbmRcLW9mXC1oZWFkXC1kcmVzc1wtd29yZVwtaW5cLWZ1bmVyYWxcLXJpdGVzXC1pblwtb2xkXC1kYXlzOwor5JifID4ga2luZFwtb2ZcLXNpbGtcLXdvdmVuXC13aXRoXC1kb3VibGVcLXRocmVhZHNcLWFuZFwtd2F0ZXJcLXByb29mOwor5JSRID4gYVwtd2hpdGVcLWNvbG9yZWRcLWNsdXN0ZXJcLWdyb3duXC1hdFwtdGhlXC10aXBcLW9mXC1jb2dvbmdyYXNzOwor5ImyID4gdGhpblwtYW5kXC1mbGF0XC1zbGlwc1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC13ZWF2aW5nXC1wdXJwb3NlOwor47y9ID4gZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47aBID4gYWZ0ZXJcLWJsb2NraW5nXC10aGVcLXdhdGVyXC1mbG93XC10YWtlc1wtZGlmZmVyZW50XC13YXRlcndheTsKK+OvgCA+IGJvbmRzXC1hbmRcLWZldHRlcnNcLWZvclwtZmFsY29uc1wtYW5kXC1kb2dzXC11c2VkXC1pblwtaHVudGluZzsKK+OSviA+IGFcLWtpbmRcLW9mXC13cmFwcGVyXC11c2VkXC10b1wtY292ZXJcLW92ZXJcLXRoZVwtZmFjZVwtYW5kXC1oZWFkOwor6KCyID4gdGhlXC1taWxsaXBlZGVcLXNvbWV0aW1lc1wtY29uZm91bmRlZFwtd2l0aFwtdGhlXC1ncm93XC13b3JtOwor6JinID4gYVwtcGxhbnRcLXdoaWNoXC1yZXNlbWJsZXNcLXdoZWF0XC1idXRcLWhhc1wtbm9cLWVkaWJsZVwtZ3JhaW47CivkobQgPiBjYXJyaWFnZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC10b1wtdGFrZVwtZW5lbXlcLXBvc2l0aW9uOwor5J+6ID4gd2Fsa1wtc2xvd2x5XC1iZWNhdXNlXC1vZlwtdGhlXC13cm9uZ1wtcG9zaXRpb25cLW9mXC10aGVcLWZlZXQ7CivkiaMgPiBzbGlwc1wtb2ZcLWJhbWJvb1wtcHJvdmlkZWRcLWZvclwtd3JpdGluZ1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5IG5ID4gdG9cLWxvb2tcLWFza2FuY2VcLVwtXC1cLWFcLWV4cHJlc3Npb25cLW9mXC1kaXNkYWluXC1vclwtZGVzcGlzZTsKK+O8jCA+IGxvdFwtb2ZcLW1lbG9uc1wtZ3Jvd2luZ1wtYnV0XC10aGVcLXJvb3RcLWlzXC13ZWFrXC1hbmRcLWZlZWJsZTsKK+O7oCA+IGphZGVcLWhhbmdpbmdcLW9uXC10aGVcLXNpZGVzXC1vZlwtdGhlXC1jYXBcLWluXC1hbmNpZW50XC10aW1lczsKK+OuoyA+IGFcLXBpZWNlXC1vZlwtd29vZFwtdXNlZFwtdG9cLXN0cmlrZVwtb2ZmXC1ncmFpblwtaW5cLWFcLW1lYXN1cmU7Civjk6QgPiB0b1wtc3RyaXBcLXRoZVwtc2tpblwtb2ZcLXRoZVwtZmFjZVwtXC1cLVwtYW5cLWltbWluZW50XC1jYWxhbWl0eTsKK+eggCA+IGJyaWxsaWFudGx5XC1jb2xvcmVkXC1zdG9uZVwtd2l0aFwtdmVpbmVkXC1wYXR0ZXJuc1wtaW5cLWl0Owor6JmSID4gYW5cLWFtcGhpYmlvdXNcLWJlYXN0XC1yZXNlbWJsaW5nXC1hXC10aWdlclwtd2l0aFwtb25lXC1ob3JuOwor562BID4gYVwtYmFtYm9vXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW5cLXRoZWlyXC1jb2Nvb25zOwor56KtID4gYnJpbGxpYW50bHlcLWNvbG9yZWRcLXN0b25lXC13aXRoXC12ZWluZWRcLXBhdHRlcm5zXC1pblwtaXQ7CivlhosgPiBhXC1kZXNlcnRcLWFcLWJvcmRlclwtcHJhaXJpZVwtdGhlXC0xc3RcLWZvcm1cLWlzXC1yYWRpY2FsXC0xMzsKK+S0tyA+IHVzZVwtdGhlXC13aG9sZVwtcGllY2VcLW9mXC1iYXJsZXlcLXRvXC1mZXJtZW50XC1mb3JcLWJyZXdpbmc7CivkrZ4gPiBhXC1raW5kXC1vZlwtc2FjcmlmaWNlc1wtb2ZmZXJlZFwtdG9cLWdvZHNcLW9yXC10aGVcLWRlY2Vhc2VkOwor5KegID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtd2hhdFwtaXNcLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkkakgPiBhXC1raW5kXC1vZlwtaW5sYW5kXC1yaXZlcnNcLXdhcnNoaXBcLXVzZWRcLWluXC1xaW5nXC1keW5hc3R5Owor5I24ID4gYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1hbmltYWxcLXdpdGhcLTRcLWVhcnNcLWFuZFwtOVwtdGFpbHM7CivkjasgPiBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWFuaW1hbFwtd2l0aFwtNFwtZWFyc1wtYW5kXC05XC10YWlsczsKK+SDqyA+IGFcLXNpbGljYXRlXC1zdWJzdGFuY2VcLWZyb21cLXRoZVwtc2FsdFwtd2VsbHNcLWluXC1zemVjaHdhbjsKK+O4nCA+IHRvXC1nZXRcLXRocm91Z2hcLXRoZVwtc3BhY2VcLWVuY2xvc2VkXC1ieVwtYVwtY29uc3RlbGxhdGlvbjsKK+O3rSA+IGFcLWNvbmljYWxcLWJyaWNrXC1zdHJ1Y3R1cmVcLWluXC13aGljaFwtdG9cLWxpZ2h0XC1hXC1iZWFjb247CivjtrsgPiBhXC1jb25pY2FsXC1icmlja1wtc3RydWN0dXJlXC1pblwtd2hpY2hcLXRvXC1saWdodFwtYVwtYmVhY29uOwor55S+ID4gZ3JvdW5kXC10aGF0XC1oYXNcLWJlZW5cLXVuZGVyXC1jdWx0aXZhdGlvblwtZm9yXC1vbmVcLXllYXI7CivnpqEgPiBhXC1zYWNyaWZpY2VcLWF0XC10aGVcLWJlZ2lubmluZ1wtb2ZcLWFcLW1pbGl0YXJ5XC1jYW1wYWlnbjsKK+ekriA+IGFuY2llbnRcLWJhbGxpc3RhXC1mb3JcLXRocm93aW5nXC1oZWF2eVwtc3RvbmVzXC1hXC1jYW5ub247CivnpJ8gPiBhbmNpZW50XC1iYWxsaXN0YVwtZm9yXC10aHJvd2luZ1wtaGVhdnlcLXN0b25lc1wtYVwtY2Fubm9uOwor5K+gID4gdGhlXC1maXZlXC1sb3dlc3RcLXBpZWNlc1wtb2ZcLWJvbmVcLW9mXC10aGVcLXNwaW5hbFwtY29sdW1uOwor5K+ZID4gdGhlXC1maXZlXC1sb3dlc3RcLXBpZWNlc1wtb2ZcLWJvbmVcLW9mXC10aGVcLXNwaW5hbFwtY29sdW1uOwor5KymID4gZm9vZFwtaXRlbXNcLW1lcmVseVwtYXJyYW5nZWRcLWZvclwtZGlzcGxheVwtcHVycG9zZVwtb25seTsKK+SZkSA+IGFcLXBpZWNlXC1vZlwtc2Fja2Nsb3RoXC13b3JuXC1vblwtdGhlXC1icmVhc3RcLWluXC1tb3VybmluZzsKK+SIsSA+IGFuXC1vcGVuXC1iYW1ib29cLWJhc2tldFwtdXNlZFwtdG9cLWZlZWRcLWRvbWVzdGljXC1hbmltYWxzOwor46q1ID4gaGFsZlwtb2ZcLWFcLXVuaXRcLW9mXC1tZWFzdXJlbWVudFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46GIID4gdGhlXC1yb3Blc1wtYXR0YWNoZWRcLXRvXC10aGVcLWJpZXJcLWFuZFwtaGVsZFwtYnlcLW1vdXJuZXJzOwor45qkID4gYVwtbGFkeVwtb2ZmaWNlclwtb2ZcLXRoZVwtbW9uYXJjaCcnc1wtcGFsYWNlXC1pblwtb2xkXC10aW1lczsKK+WRgCA+IHBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2VcLW9yXC1taWxkXC1lbXBoYXNpczsKK+mdtyA+IHRoZVwtbGVhdGhlclwtYmVsdFwtdGhhdFwtY29ubmVjdHNcLWFcLWhvcnNlXC13aXRoXC1hXC1jYXJ0Owor6K28ID4gdG9cLXN1cGVydmlzZVwtdG9cLWNvbmZpbmVcLWFcLWdvdmVybm1lbnRcLWVzdGFibGlzaG1lbnQ7CivlnasgPiBhXC1zdGFuZFwtb25cLXdoaWNoXC10b1wtcmVwbGFjZVwtZ29ibGV0c1wtYWZ0ZXJcLWRyaW5raW5nOwor5LS9ID4gYVwtc21hbGxcLXJvdW5kXC1waWVjZVwtb2ZcLWRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivksI4gPiB0b1wtdHdpc3RcLXRoZVwtaGFpclwtaW5cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqnSA+IGxlYXRoZXJcLWNvcmRcLXRoYXRcLXdpbmRpbmdcLW9uXC10aGVcLWhhbmRsZVwtb2ZcLWFcLWtuaWZlOwor5KGHID4gdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1lbmRcLW9mXC10aGVcLXBvbGVcLW9mXC1hXC1jYXJyaWFnZTsKK+SegCA+IHRvXC1kZXNpcmVcLWZvclwtbW9yZVwtbW9uZXlcLXRoYW5cLW9uZScnc1wtcmlnaHRmdWxcLXNoYXJlOwor5JitID4gdGhlXC1wbGVhdGVzXC1vblwtdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnRcLW9mXC10aGluXC1zaWxrOwor5JCIID4gYVwtcGllY2VcLW9mXC1vbmVcLWZvb3RcLXR3b1wtaW5jaGVzXC1kcmllZFwtc2Vhc29uZWRcLW1lYXQ7CivkjYUgPiBjb250YWluZXJzXC1mb3JcLXdhdGVyXC1vclwtd2luZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iu+ID4gY290dG9uXC1hbmRcLXNpbGtcLXRvXC1iZVwtbGFpZFwtYW5kXC1hdHRhY2hlZFwtZWFjaFwtb3RoZXI7CivkiZAgPiBhXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1mb3JcLW1ha2luZ1wtYmFza2V0czsKK+SIuyA+IGFcLWhlYXZ5XC1tYXRzXC1vZlwtYmFtYm9vXC11c2VkXC1mb3JcLWRlZXBcLXdhdGVyXC1maXNoaW5nOwor5IegID4gd3JlbmNoXC10b1wtYWRqdXN0XC10aGVcLXN0cmluZ1wtb25cLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5ISMID4gdG9cLXBlcmZvcm1cLXJpdGllc1wtaW5cLWhvbm9yXC1vZlwtdGhlXC1hbmNlc3RyYWxcLXRlbXBsZTsKK+SDpiA+IGFcLWZsYXRcLWFuZFwtZ3JlYXRcLXJvY2tcLXBlb3BsZVwtc3F1YXRcLW9yXC1jcm91Y2hcLW9uXC1pdDsKK+O7gCA+IGZpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGU7CivjsqwgPiBoYWlyXC1kZWNvcmF0aW9uc1wtb25cLWFcLWhlbG1ldFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor47GvID4gZ2V0XC10aGVcLXVuYm9yblwtYmFieVwtZ29hdFwtYnlcLWtpbGxuZ1wtdGhlXC1tb3RoZXJcLWdvYXQ7CivjrrAgPiB0aGVcLXNtYWxsXC1iZWFtXC1zdXBwb3J0aW5nXC10aGVcLXJhZnRlcnNcLWF0XC10aGVcLWVhdmVzOwor46q2ID4gYVwtZHJ5XC1tZWFzdXJlXC0xMFwtb3JcLTVcLXRpbWVzXC10aGF0XC1vZlwtYVwtY2hpbmVzZVwtcGVjazsKK+OflyA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtcHJpbmNpcGFsaXR5XC1pblwtd2hhdFwtaXNcLW5vd1wtc2hhbnhpOwor5Ly9ID4gdHJhbnNjcmlwdGlvblwtb2ZcLXNhbnNrcml0XC0nJ2doYScnXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5bGjID4gc3RyYXdcLXNhbmRhbHNcLW9yXC1zbGlwcGVyc1wtdGhhdFwtaGF2ZVwtbm9cLWhlZWxcLWJhY2tzOwor5ryOID4gYVwtcGxhY2VcLXdoZXJlXC1zbWFsbFwtc3RyZWFtc1wtZmxvd1wtaW50b1wtYVwtbGFyZ2VcLW9uZTsKK+aqviA+IGdyYXNzeVwtcGxhbnRcLXdpdGhcLWZpYnJlc1wtZnJvbVwtd2hpY2hcLWNsb3RoXC1pc1wtbWFkZTsKK+SwjCA+IHRvXC1iaW5kXC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkqbUgPiB0YW5uZXJcLXdob1wtbWFkZVwtdGhlXC1sZWF0aGVyXC1kcnVtXC1pblwtYW5jaWVudFwtdGltZXM7CivkmpkgPiBhXC1zcG9vblwtZm9yXC1jb29rZWRcLXJpY2VcLW1hZGVcLW9mXC1ob3JuXC1vZlwtYW5cLWFuaW1hbDsKK+SMsyA+IGFcLWtpbmRcLW9mXC11bnJlZmluZWRcLW9yXC11bnBvbGlzaGVkXC1zaWxrZW5cLXRleHRpbGVzOwor5IykID4gYVwta2luZFwtb2ZcLXVucmVmaW5lZFwtb3JcLXVucG9saXNoZWRcLXNpbGtlblwtdGV4dGlsZXM7CivkirogPiBhblwtaW1wbGVtZW50XC10b1wtZHJhd1wtb3JcLXRvXC1jb2xsZWN0XC1yb3Blc1wtb3JcLWNvcmRzOwor5ImDID4gc2xpcGVkXC1vcGVuXC1iYW1ib29cLXdpdGhcLXRoZVwtam9pbnRzXC11c2VkXC1hc1wtYW5cLW9hcjsKK+SJgCA+IHJlY3Rhbmd1bGFyXC1jaGVzdFwtb3JcLWJveFwtd292ZW5cLWZyb21cLWJhbWJvb1wtc3RyaXBzOwor5ISLID4gdG9cLXByYXlcLWZvclwtcHJldmVudGluZ1wtb3JcLWZvcmVzdGFsbGluZ1wtY2FsYW1pdGllczsKK+SDriA+IGFcLXN0b25lXC1idWlsZFwtaHlkcmF1bGljXC1tZWFzdXJlc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor476/ID4gcm9hclwtb2ZcLWFzdGhtYVwtb3JcLWV4cGVjdG9yYXRlXC1mcm9tXC1hXC1keWluZ1wtcGVyc29uOwor47uoID4gaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47qQID4gZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjr4IgPiBwaWxsYXJcLW9yXC1wb3N0XC1vZlwtYVwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor45+LID4gZGVlcFwtYW5kXC1sZXZlbFwtZ3JvdW5kXC1ndWxseVwtYXRcLXRoZVwtZm9vdFwtb2ZcLWFcLWhpbGw7CivjnqogPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC10aGVcLW1vdW50YWluXC1pc1wtZmxhdFwtYW5kXC1zbW9vdGg7CivooYUgPiBjb25zZWNyYXRlXC1zYWNyaWZpY2lhbFwtdmVzc2Vsc1wtYnlcLXNtZWFyaW5nXC1ibG9vZDsKK+iZoiA+IG5hbWVcLW9mXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hlbnhpXC1hbmRcLWh1bmFuOwor6b2JID4gc3RvcHBhZ2VcLW9mXC10aGVcLW5vc2VcLXRvXC1zcGVha1wtd2l0aFwtYVwtbmFzYWxcLXR3YW5nOwor6KSvID4gY2hpbGRyZW4nJ3NcLWdhcm1lbnRzXC5cLWFcLW1hdFwtZm9yXC13cmFwcGluZ1wtZ2FybWVudHM7CivmoqAgPiBhXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+aRoyA+IGFcLWhhbmRmdWxcLlwtdG9cLXBpY2tcLXVwXC13aXRoXC10aGVcLWZpbmdlcnNcLlwtdG9cLXNlaXplOwor5aCYID4gYVwtcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZFwtd2hpY2hcLWFjdHNcLWFzXC1hXC1keWtlOwor5LacID4gdGhlXC1wcm9jZXNzXC10b1wtd2hpdGVuXC10aGVcLWl2b3J5XC1vclwtZWxlcGhhbnRcLXR1c2s7CivkrokgPiBob3JzZXNcLWtlcHRcLWF0XC1hXC1jb3VyaWVyXC1zdGF0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SitSA+IG5hbWVcLW9mXC1hblwtb2xkXC1jb3VudHJ5XC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+ShnyA+IGFcLXJpbmdcLW9mXC10aGVcLWhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJyaWFnZTsKK+SemyA+IGRhbmNpbmdcLW9mXC1hXC1lYXN0ZXJuXC1taW5vcml0eVwtZ3JvdXBcLWluXC1vbGRcLWNoaW5hOwor5J2MID4gYVwtcGlnXC1zZWVrXC1mb3JcLWZvb2RcLXRocm91Z2hcLWRpZ2dpbmdcLW9uXC10aGVcLWVhcnRoOwor5JKBID4gYVwtc21hbGxcLWJvYXRcLWNvbm5lY3RlZFwtdG9cLXRoZVwtYmFja1wtb2ZcLWFcLWJpZ1wtYm9hdDsKK+SJiyA+IGFcLXZhcmlldHlcLW9mXC1iYW1ib29cLXNob290c1wtdGhhdFwtc3Byb3V0XC1pblwtd2ludGVyOwor5IiUID4gd2hpc3RsZVwtbWFkZVwtb2ZcLXJlZWRcLXdpdGhvdXRcLWhvbGVzXC1mb3JcLWZpbmdlcmluZzsKK+O9mSA+IG9mZmljaWFsXC1pblwtY2hhcmdlXC1vZlwtZmFybWxhbmRzXC1pblwtYW5jaWVudFwtdGltZXM7Civjs44gPiBndWlkZVwtb3JcLWxlYWRcLXRvXC1tYWtlXC10aGVcLXdhdGVyXC1mbG93aW5nXC1zbW9vdGhseTsKK+OyqiA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OyqCA+IGFcLWRlY29yYXRpdmVcLWZpbmVcLWJsYW5rZXRcLW9uXC10aGVcLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+OyoyA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OymSA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OniyA+IHRvXC1sZW5ndGhlblwtYW5kXC1leHRlbnVhdGVcLVwtXC1cLWFzXC1pblwtbWFraW5nXC1ub29kbGU7CivjoJwgPiB5b3VuZ1wta2lkc1wtc21hcnRcLWFuZFwtZmFtaWxpYXJcLXdpdGhcLWh1bWFuXC1hZmZhaXJzOwor45mxID4gZWFydGhlbndhcmVcLXVzZWRcLXRvXC1iYWtlXC1jYWtlc1wtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+WWgSA+IHRoZVwtbW91dGhcLW9mXC1hXC1maXNoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+aPjiA+IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXN0cmV0Y2hcLW91dFwtdGhlXC1hcm1zOwor566sID4gdGhlXC1jdXRpY2xlXC1vZlwtdGhlXC1iYW1ib29cLWFcLWJyb2FkXC1sZWF2ZWRcLWJhbWJvbzsKK+i7viA+IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnRcLW9mXC1hXC1zZWRhblwtY2hhaXI7CivokIYgPiB0aGVcLWNhc3Rvclwtb2lsXC1wbGFudFwtYWxzb1wtdXNlZFwtZm9yXC1vdGhlclwtcGxhbnRzOwor57CgID4gYW5cLWFuY2llbnRcLXZlc3NlbFwtdXNlZFwtZm9yXC1ob2xkaW5nXC1ib2lsZWRcLWdyYWluOwor5LKwID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXRoZVwtcGlnZW9uXC1vclwtdGhlXC10dXJ0bGVcLWRvdmU7CivknaUgPiB0b1wtcm9hclwtb3JcLWhvd2xcLWZyYW50aWNcLWJhcmtzXC1vZlwtZG9nc1wtb3JcLXdvbHZlczsKK+SUpCA+IHRoZVwtbHVzaFwtYW5kXC1sdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzXC1hbmRcLWZsb3dlcnM7Civjr64gPiBhXC1raW5kXC1vZlwtdHJlZVwtd2l0aFwtYmlnXC1sZWF2ZXNcLWFuZFwtaW5cLXJlZFwtY29sb3I7CivjlI0gPiBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyOwor55KcID4gYVwtc2VtaWNpcmN1bGFyXC1qYWRlXC1vcm5hbWVudFwtdXNlZFwtYXNcLWFcLXBlbmRhbnQ7Civoq6wgPiB0b1wtb3BlblwtdG9cLWJlZ2luXC10b1wtZXhwbGFpblwtdG9cLWluZm9ybVwtYVwtbGV0dGVyOwor54y5ID4gd2lsZFwtYW5pbWFsXC1tZW50aW9uZWRcLWluXC1zaG9ydFwtc3RvcnlcLWJ5XC1sdVwteHVuOwor54q8ID4gYVwtZmllcmNlXC1tb25nb2xpYW5cLXdvbGZcLWRyYWdvbicnc1wtaGVhZFwtb25cLXJvb2ZzOwor5rmTID4gYW5cLWFmZmx1ZW50XC1vZlwtdGhlXC1yaXZlclwteWFuZ3R6ZVwtbmVhclwta2l1a2lhbmc7CivmrZogPiB1c2VkXC1pblwtbmFtZVwtb2ZcLWZhbW91c1wta29yZWFuXC1wYWludGVyXC1jZW5nXC1zZW47CivktpsgPiB0b1wtc2VwYXJhdGVcLXRoZVwtbWVhdFwtZnJvbVwtdGhlXC1ib25lc1wtd2l0aFwtdGVldGg7Civks5wgPiBhXC1raW5kXC1vZlwtYmlyZFwtd2hpY2hcLXNoYXJlc1wtaXRzXC1uZXN0XC13aXRoXC1yYXRzOwor5LOFID4gYVwta2luZFwtb2ZcLWJpcmRcLXdoaWNoXC1zaGFyZXNcLWl0c1wtbmVzdFwtd2l0aFwtcmF0czsKK+SyjSA+IGFcLXBlcmNoXC1saWtlXC1maXNoXC13aXRoXC13aGl0ZVwtYm9keVwtYW5kXC1yZWRcLXRhaWw7CivkqbYgPiBzYWRkbGVcLWFuZFwtcmVpblwtZXRjXC5cLWZvclwtdGhlXC1pbXBlcmlhbFwtY2FycmlhZ2U7Civkl70gPiBhXC1zbWFsbFwtZ2FkZmx5XC10aGF0XC1zdWNrXC1ibG9vZFwtb2ZcLWhvcnNlXC1vclwtY293Owor5Im0ID4gYVwtYmFtYm9vXC13YXJlXC10b1wtY29sbGVjdFwtYW5kXC1rZWVwXC1zb21ldGhpbmdcLWluOwor5ImFID4gc21hbGxcLWJhbWJvb1wtd2hvc2VcLWpvaW50c1wtYXJlXC10aHJlZVwtZmVldFwtYXBhcnQ7CivkiJsgPiBzbWFsbFwtYmFtYm9vXC13aG9zZVwtam9pbnRzXC1hcmVcLXRocmVlXC1mZWV0XC1hcGFydDsKK+SEpiA+IHRvXC1wdXRcLWZvcnRoXC1lYXJzXC1hbmRcLXRvXC1ibG9zc29tXC1vZlwtdGhlXC1ncmFpbnM7CivjvakgPiBjb25uZWN0ZWRcLWJhbmtzXC1vZlwtZWFydGhcLW9yXC1wYXRoc1wtaW5cLXRoZVwtZmllbGQ7CivjuYMgPiB0d29cLWJyaW5kbGVkXC1jb3dzXC10b1wtcGxvdWdoXC1mYWNlXC10b1wtZWFjaFwtb3RoZXI7Civjtp8gPiBhblwtYW5jaWVudFwtbmVtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpXC1hbmRcLWhlYmVpOwor47KIID4gdGhlXC1uYW1lXC1vZlwtdGhlXC1tdXNpY1wtb2ZcLXRoZVwtbGVnZW5kYXJ5XC1lbXBlcm9yOwor46yQID4gYVwtc3RhdGVcLWR1cmluZ1wtdGhlXC1wZXJpb2RcLW9mXC1zcHJpbmdcLWFuZFwtYXV0dW1uOwor46GbID4gbmFtZVwtZm9yXC1hXC13b3JrbWFuXC13aG9cLWFwcGx5XC1jb2xvclwtaW5cLXBhaW50aW5nOwor45+iID4gdGhlXC1yb2Nrc1wtb25cLXRoZVwtaGlsbHNcLWFyZVwtb2ZcLWRpZmZlcmVudFwtc2hhcGVzOwor45y8ID4gY2hpbGRyZW5cLW9mXC1vbmUnJ3NcLWJyb3RoZXJcLVwtXC1cLW5lcGhld3NcLW9yXC1uaWVjZXM7CivjlL0gPiBhXC1raW5kXC1vZlwtd2luZVwtcG90XC1vclwtamFyXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+OTgyA+IHRvXC1zYWNyaWZpY2VcLWJ5XC1wb3VyaW5nXC1vdXRcLWFcLWxpYmF0aW9uXC1vZlwtd2luZTsKK+ORniA+IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWFcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7CivnlbIgPiB0b1wtY3VsdGl2YXRlXC1sYW5kXC1ieVwtZmlyc3RcLXNldHRpbmdcLWZpcmVcLXRvXC1pdDsKK+evmiA+IHJvdW5kXC1vclwtb3ZhbFwtY292ZXJlZFwtYmFza2V0c1wtd2l0aFwtc2hvcnRcLWxlZ3M7CivnspQgPiBjYWtlc1wtbWFkZVwtZnJvbVwtcmljZVwtZmxvdXJcLXR3aXN0ZWRcLWludG9cLXJpbmdzOwor5oikID4gdG9cLWluZnJpbmdlXC1hXC10cmFkZVwtbWFya1wtdG9cLXBsZWRnZVwtYW5cLWFydGljbGU7CivkuaQgPiBmaXJzdFwtY2hhcmFjdGVyXC1vZlwta29yZWFuXC1wbGFjZVwtbmFtZVwtJydoYWxwaG8nJzsKK+S2qCA+IGluXC10aGVcLW1hbm5lclwtYVwtdG9vdGhsZXNzXC1wZXJzb25cLWNoZXdpbmdcLWZvb2Q7CivkrpsgPiBleHRyYVwtaG9yc2VcLWhhcm5lc3NlZFwtYnlcLXRoZVwtc2lkZVwtb2ZcLXRoZVwtdGVhbTsKK+SjoCA+IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KOfID4gbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SgkiA+IGNvdXJ0ZXN5XC1vZlwtYVwtbWlub3JpdHlcLWdyb3VwXC1pblwtYW5jaWVudFwtdGltZXM7CivknbAgPiB0b1wtc3RvcmVcLW9yXC10b1wtYWNjdW11bGF0ZVwtcmljaGVzXC1vclwtdmFsdWFibGVzOwor5JyxID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civkk50gPiBjaGluZXNlXC1wZW5uaXNldHVtXClcLXBlbm5pc2V0dW1cLWFsb3BlY3Vyb2lkZXNcKTsKK+SLiSA+IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXByYWN0aWNhbGx5XC1ldmVyeXRoaW5nOwor5IqjID4gbGlnaHRcLXllbGxvd1wtZHVzdFwtbGlrZVwtZnVuZ29pZFwtZ3Jvd3RoXC1vblwtd2luZTsKK+SHkiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXBlcmlvZGljXC10ZXJtc1wtb3JcLWV2ZW50czsKK+O/lyA+IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnRcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor47+JID4gZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydFwtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivjvqsgPiBoZW1pcGxlZ2lhXC1cLVwtXC1wYXJhbHlzaXNcLW9mXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor47ueID4gZmxvdXJpc2hpbmdcLWFuZFwtcmFkaWFudFwtb2ZcLXRoZVwtY29sb3JmdWxcLWphZGVzOwor47mxID4gbmFtZVwtb2ZcLWFcLWRvZ1wtaW5cLXRoZVwtcGVyaW9kXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor47KlID4gYVwta2luZFwtb2ZcLXdvb2xlblwtdGV4dGlsZXNcLXdpdGhcLWN1cnZlZFwtcGF0dGVybjsKK+OtuSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor46OvID4gdGhlXC1kcmVzc2VzXC10b3NzXC1hbmRcLWZseWluZ1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7Civjoq8gPiBib3dzXC11c2VkXC1ieVwtdGhlXC1zb25cLW9mXC1oZWF2ZW5cLVwtXC1cLXRoZVwtZW1wZXJvcjsKK+OhiiA+IGFcLWtpbmRcLW9mXC1jYXBcLXdvcm5cLWJ5XC1hblwtb2ZmaWNlclwtaW5cLW9sZFwtY2hpbmE7CivjmasgPiBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtb3V0XC1mcm9tXC10aGVcLXVuZGVyZ3JvdW5kOwor45mNID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivpkqcgPiB1bml0XC1vZlwtbWVhc3VyZVwtZXF1aXZhbGVudFwtdG9cLXRoaXJ0eVwtY2F0dGllczsKK+WmsiA+IGNvbmN1YmluZVwtb2ZcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eTsKK+eTtCA+IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nXC1hXC1sb25nXC1uZWNrZWRcLWphcjsKK+WqtSA+IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7Civog5kgPiBtZWF0XC1vZmZlcmVkXC1pblwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civon4ogPiBhXC1mbHlcLXdoaWNoXC1pc1wtdXNlZFwtc2ltaWxhcmx5XC10b1wtY2FudGhhcmlkZXM7CivpqLIgPiB0aGVcLWZlbWFsZVwtb2ZcLWNlcnRhaW5cLWFuaW1hbHNcLXN1Y2hcLWFzXC1ob3JzZXM7CivpiJ4gPiB1bml0XC1vZlwtbWVhc3VyZVwtZXF1aXZhbGVudFwtdG9cLXRoaXJ0eVwtY2F0dGllczsKK+idpSA+IGFcLWZseVwtd2hpY2hcLWlzXC11c2VkXC1zaW1pbGFybHlcLXRvXC1jYW50aGFyaWRlczsKK+ePkyA+IHR3b1wtaGVtaXNwaGVyaWNhbFwtb2JqZWN0c1wtdXNlZFwtaW5cLWRpdmluYXRpb247CivmlacgPiB0b1wtcGlja1wtdXBcLXRoaW5nXC13aXRoXC1jaG9wc3RpY2tzXC1vclwtcGluY2Vyc1wuOwor5omEID4gbGFyZ2VcLXJpbmdcLW9uXC1hXC1mcm9udFwtZG9vclwtdXNlZFwtYXNcLWFcLWtub2NrZXI7Civlq48gPiB0aGVcLXBsYWNlXC13aGVyZVwtdGhlXC1zdXByZW1lXC1zdG9yZXNcLWhpc1wtYm9va3M7CivksYEgPiBhXC1raW5kXC1vZlwtbWVkaXVtXC1zaXplZFwtZmlzaFwtZ3Jvd25cLWluXC10aGVcLXNlYTsKK+SwjyA+IHNwYXJzZVwtaGFpclwtb25cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SuhiA+IGFcLWhvcnNlXC13aXRoXC1taXhlZFwtY29sb3JcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkqZsgPiBsZWF0aGVyXC1iZWx0XC11c2VkXC10b1wtYmluZFwtb3JcLXJlc3RyYWluXC1hXC1jYXJ0Owor5Ka5ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjlCA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5EgPiBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4QgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KOBID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SiuSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivkoqogPiBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb25cLW92ZXJcLW11ZFwtb3JcLXNub3c7Civkn4YgPiB0b1wta2VlcFwtcGVyc29uc1wtb2ZmXC10aGVcLXJvdXRlXC1vZlwtdGhlXC1lbXBlcm9yOwor5IiQID4gYW5cLWFyY2hlZFwtZnJhbWVcLW1hZGVcLW9mXC1iYW1ib29cLW9mXC13b29kXC1ib2FyZDsKK+SFvyA+IGx1eHVyaWFudFwtb3JcLWV4dWJlcmFudFwtb2ZcLXRoZVwtZ3JhaW5zXC1mbG93ZXJ5Owor5IOIID4gbW91bnRhaW5cLXJvY2tzXC1hXC1ibGFja1wtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgqwgPiBiaWdcLXJvY2tzXC1vblwtdGhlXC1yaXZlcnNpZGVcLWFuXC1hcmNoZWRcLW9wZW5pbmc7CivkgZ0gPiBkZWx1ZGluZ1wtYW5kXC1jYXVzaW5nXC1kaXNvcmRlclwtbGlnaHRzXC1zaGluaW5nOwor472fID4gdG9cLXRpbGxcLW9yXC10b1wtcGxvdWdoXC10aGVcLWZpZWxkc1wtYW5cLWVuY2xvc3VyZTsKK+OuhCA+IHB1YmxpY2x5XC1wb3N0ZWRcLXJvbGxcLW9mXC1zdWNjZXNzZnVsXC1leGFtaW5lZXM7CivjrbggPiB0aGVcLWJyYW5jaGVzXC10b1wtc3ByZWFkXC1vdXRcLWluXC1hbGxcLWRpcmVjdGlvbnM7CivjqYkgPiB0b1wtdGFrZVwtYVwtcnViYmluZ1wtb2ZcLWFuXC1pbnNjcmlwdGlvblwtb25cLXN0b25lOwor46OBID4gdG9cLWVxdWlwdFwtYVwtYm93XC13aXRoXC1zaWxrXC1hbmRcLW11c2N1bGFyXC1maWJyZTsKK+OihiA+IGxpdmluZ1wtc3BhY2VcLWZvclwtb25lXC1mYW1pbHlcLWluXC1hbmNpZW50XC10aW1lczsKK+OdmSA+IHRoZVwtdGhpcmRcLW9mXC10aGVcLXR3ZWx2ZVwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor45m7ID4gbGl2aW5nXC1zcGFjZVwtZm9yXC1vbmVcLWZhbWlseVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5LmOID4gaW50ZXJyb2dhdGl2ZVwtb3JcLWV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivmvoQgPiBwdXJpZnlcLXdhdGVyXC1ieVwtYWxsb3dpbmdcLXNlZGltZW50XC10b1wtc2V0dGxlOwor5q2fID4gYVwtZmluYWxcLXBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtYWRtaXJhdGlvbjsKK+aioiA+IHBvaW50ZWRcLXRpcFwtb2ZcLXNvbWV0aGluZ1wtbG9uZ1wtbGlrZVwtYVwtYnJhbmNoOwor5ZOSID4gYVwtc291bmRcLW1hZGVcLXRvXC1nZXRcLWFcLWhvcnNlXC10b1wtbW92ZVwtZm9yd2FyZDsKK+eQriA+IG9jdGFnb25hbFwtcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtbWlkZGxlOwor5qykID4gYVwtZmluYWxcLXBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtYWRtaXJhdGlvbjsKK+WUvCA+IHNwZWFraW5nXC1ldmlsXC5cLWdvYmJsaW5nXC1zb3VuZFwtbWFkZVwtYnlcLWR1Y2tzOwor6YK0ID4gbmFtZVwtb2ZcLWFcLWNpdHlcLWluXC10aGVcLWFuY2llbnRcLXN0YXRlXC1vZlwtc29uZzsKK+S2mCA+IHRoZVwtc291bmRcLW9mXC1jaGV3aW5nXC1zb21ldGhpbmdcLWRyeVwtYW5kXC1oYXJkOwor5K6yID4gaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvcnNcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkprwgPiB0b1wtZGlnXC1hXC1wYXNzYWdlXC10aHJvdWdoXC1hXC1tb3VudGFpblwtb3JcLWhpbGw7CivkpZEgPiBhXC1raW5kXC1vZlwtZGVjb3JhdGlvblwtb25cLXRoZVwtaGVhZFwtb2ZcLWFcLWhvcnNlOwor5KOvID4gd2luZVwtb3JcLWFueVwtdGhpY2tcLWZsdWlkXC1vZlwtdGhlXC1iZXN0XC1xdWFsaXR5Owor5KOaID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KOZID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KK6ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KK4ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KG/ID4gZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5KG8ID4gZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5JyvID4gbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5Ji/ID4gc2hpcnRcLW9yXC1hXC1qYWNrZXRcLXdpdGhvdXRcLWFueVwtZGVjb3JhdGVkXC1oZW07CivkloIgPiBhblwtZWRpYlwtbGVcLXdhdGVyXC1wbGFudFwtXC1cLVwtYnJhc2VuaWFcLXB1cnB1cmNhOwor5I+uID4gdGhlXC1zaWRlc1wtb2ZcLXRoZVwtdHJ1bmtcLWZyb21cLWFybXBpdHNcLXRvXC1yaWJzOwor5IWNID4gc3RyYWlnaHRcLXVwd2FyZFwtb2ZcLXRoZVwtd2hlYXRcLWFuZFwtcmljZVwtcGxhbnQ7CivkgrggPiB0b1wtc21hc2hcLW9yXC10b1wta25vY2tcLXRvXC1waWVjZXNcLW9mXC10aGVcLXN0b25lOwor4768ID4gdG9cLXN1ZmZlclwtYVwtc3Ryb2tlXC1vZlwtcGFyYWx5c2lzXC1vclwtYXBvcGxleHk7Civjvq8gPiB0b1wtc3VmZmVyXC1hXC1zdHJva2VcLW9mXC1wYXJhbHlzaXNcLW9yXC1hcG9wbGV4eTsKK+O9qyA+IHNlZWRzXC1vZlwtdGhlXC1wbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlclwtbGlseTsKK+O4tyA+IGFcLWtpbmRcLW9mXC1jYXR0bGVcLXdpdGhcLXR3b1wtaG9ybnNcLXN0cmFpZ2h0XC11cDsKK+O2rCA+IGJyaWdodFwtbGlnaHRzXC1hbmRcLWlsbHVtaW5hdGlvbnNcLW9mXC10aGVcLWZpcmU7CivjtqEgPiBicmlnaHRcLWxpZ2h0c1wtYW5kXC1pbGx1bWluYXRpb25zXC1vZlwtdGhlXC1maXJlOwor47aGID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLWhlYmVpXC1wcm92aW5jZVwtaGVuZ3NoYW47CivjrqsgPiBhXC13b29kZW5cLWFydGljYWxcLXRvXC1iZVwtdXNlZFwtdG9cLWFkanVzdFwtYVwtYm93Owor46uNID4gdGhlXC1zY2FsbG9wc1wtYWxvbmdcLXRoZVwtbG93ZXJcLWVkZ2VcLW9mXC1hXC1mbGFnOwor46ePID4gdG9cLWNhcnJ5XC1vblwtdGhlXC1zaG91bGRlcnNvZlwtdHdvXC1vclwtbW9yZVwtbWVuOwor45u2ID4gZG9cLW5vdFwtY2FyZVwtYWJvdXRcLWFwcGVhcmFuY2VcLWFuZFwtZGVwb3J0bWVudDsKK+ObpyA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+OalCA+IGluc3RydW1lbnRcLW9mXC10b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjmYcgPiB0aGVcLWNhdHRsZVwtYW5kXC1ob3JzZXNcLXRyYW1wbGVkXC1vblwtdGhlXC1maWVsZDsKK+WohSA+IG11dHVhbFwtdGVybVwtb2ZcLWFkZHJlc3NcLXVzZWRcLWJ5XC1zb25zXC1pblwtbGF3Owor6a6gID4gYVwta2luZFwtb2ZcLXNoYWRcLXdpdGhcLWFcLWhlYWRcLWxpa2VcLWFcLXN0dXJnZW9uOwor6IORID4gdGhlXC1saW1ic1wuXC13aW5nc1wtb2ZcLWJpcmRzXC5cLWxlZ3NcLW9mXC1hbmltYWxzOwor562tID4gYW5cLWFuY2llbnRcLWRldmljZVwtZm9yXC13b3JraW5nXC13aXRoXC1udW1iZXJzOwor5rudID4gb25vbWF0b3BvZWljXC1mb3JcLXRoZVwtc291bmRcLW9mXC1mYWxsaW5nXC1yYWluOwor5amtID4gbXV0dWFsXC10ZXJtXC1vZlwtYWRkcmVzc1wtdXNlZFwtYnlcLXNvbnNcLWluXC1sYXc7Civks7UgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmRcLXdpdGhcLWNvbG9yZnVsXC1mZWF0aGVyOwor5LObID4gYVwtc21hbGxcLWJyb3duXC1zcGVja2xlZFwtYmlyZFwtbGlrZVwtdGhlXC1xdWFpbDsKK+SpkSA+IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkppMgPiB0b1wtd2FpdFwtZm9yXC1zb21ldGhpbmdcLXRvaGFwcGVuXC1pbW1lZGlhdGVseTsKK+SjpCA+IG5hbWVcLW9mXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko50gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SjgiA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor5KGpID4gc291bmRcLW9mXC1jYXJ0c1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor5KGPID4gaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+ShjCA+IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkoIAgPiB0b1wtc2l0XC1jcm9zc1wtbGVnZ2VkXC1saWtlXC1hXC1idWRkaGlzdFwtcHJpZXN0Owor5JyrID4gbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivknJogPiB0b1wtc3BlYWtcLXJlY2tsZXNzbHlcLW9yXC13aXRob3V0XC1mb3JldGhvdWdodDsKK+STpSA+IHNvdW5kXC1vZlwtdGhlXC13cmlnZ2xlZFwtaW5zZWN0c1wtb25cLXRoZVwtZ3Jhc3M7CivkkIQgPiB0aGVcLXVuc2F0aXNmYWN0aW9uXC1vZlwtaHVuZ2VyXC1yZXF1aXJlc1wtbWVhdDsKK+SNtCA+IHRvXC1zcXVlZXplXC1hbmRcLXRvXC1jcm93ZFwtYWdhaW5zdFwtZWFjaFwtb3RoZXI7CivkjYYgPiBjb250YWluZXJcLWZvclwtZ3JhaW5zXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civkh68gPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1wYXR0ZXJuc1wtb25cLXRoZVwtaGVhZDsKK+O8sSA+IHRvXC1tYW5hZ2VcLW9yXC1yZWd1bGF0ZVwtdGhlXC1sZWF0aGVyXC1tYXRlcmlhbDsKK+OviiA+IGV2ZW5cLW1lYXN1cmluZ1wtYm9hcmRcLWZvclwtcGVja3NcLWFuZFwtYnVzaGVsczsKK+OokCA+IHRvXC1zbGFwXC1saWdodGx5XC1vblwtdGhlXC1jbG90aGVzXC1vclwtY292ZXJsZXQ7CivjoqUgPiBhXC1iaWdcLXBpZWNlXC1vZlwtbG9nXC10b1wtam9pblwtdGhlXC10aGlja1wtcm9wZXM7Civnj4ggPiBhblwtb3JuYW1lbnRcLWF0dGFjaGVkXC10b1wtYVwtd29tYW4nJ3NcLWhhaXJwaW47CivonIMgPiBtYXJpbmVcLW1vbnN0ZXJcLXdoaWNoXC1jYW5cLWNoYW5nZVwtaXRzXC1zaGFwZTsKK+aWmyA+IGRyeVwtbWVhc3VyZVwtZXF1YWxcLXRvXC1zb21lXC1maXZlXC1vclwtdGVuXC1kb3U7CivphK8gPiBkaXN0cmljdFwtaW5cLWdhbnN1XC1kdXJpbmdcLXRoZVwtdGFuZ1wtZHluYXN0eTsKK+W6uSA+IHRoZVwtbGVuZ3RoXC1vZlwtb25lJydzXC10d29cLW91dHN0cmV0Y2hlZFwtYXJtczsKK+aPsiA+IHRvXC1zb3J0XC1vdXRcLXRoZVwtc3RhbGtzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+mfjSA+IGFcLWxlYXRoZXJcLWtuZWVcLXBhZFwtd29yblwtZHVyaW5nXC1zYWNyaWZpY2VzOwor6Y+eID4gYVwtbGFyZ2VcLWJlbGxcLXVzZWRcLWFzXC1hXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6LuOID4gYVwtYnJhc3NcLXBhcnRzXC1mb3JcLWFcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+iZiyA+IGFzcGFyYWd1c1wtYVwtdmFyaWV0eVwtb2ZcLXJlZFwtc3RhbGtlZFwtbWlsbGV0Owor5bueID4gdG9cLXByZXBhcmVcLWhvcnNlc1wtYW5kXC1jaGFyaW90c1wtZm9yXC1iYXR0bGU7CivlqZcgPiBhXC1uZXdcLWJvcm5cLWNoaWxkXC10aGVcLXdoaW1wZXJcLW9mXC1hblwtaW5mYW50Owor5aa6ID4gd2lmZVwtb2ZcLXRoZVwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXhpYVwtZHluYXN0eTsKK+WZoCA+IHNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivkuIIgPiBvYnN0cnVjdGlvblwtb2ZcLWJyZWF0aFwtYXNcLWl0XC1zZWVrc1wtcmVsZWFzZTsKK+SwvyA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtZmlzaFwtZ3Jvd25cLWluXC1mcmVzaFwtd2F0ZXI7Civkor8gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtaG9iZWlcLXByb3ZpbmNlOwor5KGIID4gdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1zaWRlc1wtb2ZcLWFcLWNhcnJpdGFnZTsKK+SUiSA+IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtb2ZcLWdyYXNzXC1hbmRcLXRyZWVzOwor5JGSID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SQoyA+IHNvdXBcLW1hZGVcLW9mXC1jdXR0ZWRcLW1lYXRcLW1peGVkXC13aXRoXC1ibG9vZDsKK+SMriA+IHNpbGtcLWZhYnJpY3NcLXdpdGhcLXRoZVwtY29sb3JcLW9mXC1uZXdcLWxlYXZlczsKK+SEqCA+IGdyYWluc1wtcHJvZHVjaW5nXC1uZWl0aGVyXC1mbG93ZXJcLW5vclwtZnJ1aXQ7CivkhJ0gPiBzaG93XC1ub1wtcmVzcGVjdFwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLXdvcnNoaXA7CivjvK0gPiB0b1wtc3RlYWR5XC1ieVwtcHV0dGluZ1wtc29tZXRoaW5nXC11bmRlcm5lYXRoOwor47uyID4gYVwtcml0ZVwtb3JcLXNlcnZpY2VcLWZvclwtYmVnaW5uaW5nXC1vZlwtYXV0dW1uOwor46qqID4gdG9cLXVzZVwtYVwtd29vZGVuXC1wb2xlXC10b1wtc3VwcG9ydFwtc29tZXRoaW5nOwor46KmID4gd29vZGVuXC1wb3N0XC1vclwtcGlsZVwtZm9yXC10ZXRoZXJpbmdcLWFuaW1hbHM7CivjnKIgPiBhXC1iYWRcLXRlcm1cLWJ5XC13aGljaFwtb25lXC1hZGRyZXNzZXNcLWFcLXdvbWFuOwor45qSID4gY29uY2VhbGVkXC10aGVcLXN0b2xlblwtZ29vZHNcLWluXC1vbmUnJ3NcLWRyZXNzOwor6LijID4gdG9cLXN0dW1ibGVcLWFuZFwtZmFsbFwtcHJvbmVcLXN0aWZmXC1pblwtZGVhdGg7Civpu7wgPiBlbWJyb2lkZXJlZFwtb2ZmaWNpYWxcLW9yXC1zYWNyaWZpY2lhbFwtcm9iZTsKK+WzhCA+IGFcLXJhbmdlXC1vZlwtcGVha3NcLWluXC1zaGFuZG9uZ1wtYW5kXC1qaWFuZ3N1Owor6ZeXID4gYVwtZnJvbnRpZXJcLXBhc3NcLW9yXC1nYXRlXC10b1wtc2h1dFwtb3JcLWNsb3NlOwor6YK+ID4gYVwtZmV1ZGFsXC1zdGF0ZVwtd2hpY2hcLWV4aXN0ZWRcLWJcLmNcLjcwMFwtNDY5Owor6JapID4gdHJhbnNsaXRlcmF0aW9uXC1vZlwtJydzYXQnJ1wtaW5cLScnYm9kaGlzYXR0dmE7CivohrAgPiB0b1wtY29va1wtbWVhdFwtZm9yXC1hXC1zYWNyaWZpY2VcLW9yXC1vZmZlcmluZzsKK+eRjCA+IGFcLXdoaXRlXC1vcGFxdWVcLXF1YXJ0elwtdXNlZFwtZm9yXC1vcm5hbWVudHM7CivmvZ8gPiBsYW5kXC1pbXByZWduYXRlZFwtd2l0aFwtc2FsdFwtZnJvbVwtdGhlXC10aWRlOwor5banID4gYVwtcmFuZ2VcLW9mXC1wZWFrc1wtaW5cLXNoYW5kb25nXC1hbmRcLWppYW5nc3U7CivktZ4gPiBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtdGF0dG9vaW5nXC10aGVcLWZhY2U7CivksbkgPiBhXC1jb25kaW1lbnRcLW1hZGVcLWZyb21cLW1pbmNlZFwtZmlzaFwtc2FsdGVkOwor5LC8ID4gYVwtY29uZGltZW50XC1tYWRlXC1mcm9tXC1taW5jZWRcLWZpc2hcLXNhbHRlZDsKK+SvsCA+IHVzZVwtYVwtaGFpclwtcGluXC10b1wtc2V0XC1hbmRcLWRyZXNzXC10aGVcLWhhaXI7CivkrK8gPiB0b1wtaGF2ZVwtY29uZ2VlXC13aXRoXC1mcmllbmRzXC1pblwtb2xkXC10aW1lczsKK+ShiyA+IGRlY29yYXRpb25cLW9uXC10aGVcLW5hdmVcLW9yXC1odWJcLW9mXC1hXC13aGVlbDsKK+SegyA+IHRvXC1yZWxpZXZlXC1vclwtZ2l2ZVwtYWlkXC10b1wtdGhlXC1kaXN0cmVzc2VkOwor5J2pID4gdG9cLXJlbGlldmVcLW9yXC1naXZlXC1haWRcLXRvXC10aGVcLWRpc3RyZXNzZWQ7CivkmK8gPiB0aGVcLWxhcGVsXC1vclwtY29sbGFyXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivkmKQgPiBhXC1zd29yZFwtY292ZXJpbmdcLXRvXC1wcm90ZWN0XC10aGVcLXNjYWJiYXJkOwor5JGMID4gbHdoYXRcLWlzXC1sZWZ0XC1vdmVyXC1vZlwtdGhlXC1mb29kXC1cLW92ZXJyaXBlOwor5IunID4gb3JuYW1lbm50c1wtZm9yXC10aGVcLWZyb250YWxcLXBhcnRcLW9mXC1zaG9lczsKK+SLoyA+IGRlY29yYXRpb25zXC1wdXRcLW9uXC10aGVcLW1hbmVcLW9yXC1ob3JzZWhhaXI7Civkir8gPiB0aGVcLWxhcGVsXC1vclwtY29sbGFyXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivkiJUgPiB0aGVcLW1ldGFsXC10b25ndWVcLWluXC10aGVcLXJlZWRcLWluc3RydW1lbnRzOwor5IO0ID4gYVwtd2hldHN0b25lXC11c2VkXC10b1wtZ3JpbmRcLXByZWNpb3VzXC1zdG9uZTsKK+SBvCA+IHRvXC1sb29rXC1idXRcLXNlZVwtbm90aGluZ1wtXC1cLVwtYWJzZW50XC1taW5kZWQ7Civjv4YgPiBkYW1hZ2VcLWJ5XC10aGVcLXBlc3RzXC10b1wtdGhlXC1yaWNlXC1zZWVkbGluZzsKK+O7tiA+IGFcLWphZGVcLXR1YmVcLXdpdGhcLXdoaXRlXC1hbmRcLW5hdHVyZVwtY29sb3JzOwor47uwID4gZGVjb3JhdGVkXC1qYWRlXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+O7oSA+IGFcLWphZGVcLXJpbmdcLXdpdGhcLWFcLXNtYWxsXC1zZWdtZW50XC1jdXRcLW9mZjsKK+OuhiA+IGVhdmVzXC1zcHJvdXRpbmdcLWZyb21cLXRoZVwtc3R1bXBcLW9mXC1hXC10cmVlOwor46uUID4gb25lXC1vZlwtdGhlXC1laWdodFwtZGlhZ3JhbXNcLWZvclwtZGl2aW5hdGlvbjsKK+OquyA+IGFcLWtpbmRcLW9mXC11dGVuc2lsXC11c2VkXC10b1wtbGFkbGVcLW91dFwtd2luZTsKK+OpiiA+IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXNob3dcLXRoZVwtYXJtczsKK+OnrSA+IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYm90aFwtcmFpc2luZ1wtaGFuZHM7Civjp5ogPiB0aGVcLWdlc3R1cmVcLW9mXC11c2luZ1wtYW5cLWluZGVudGVkXC1jb250YWluOwor46eGID4gdG9cLWNvdmVyXC1zb21ldGhpbmdcLXdpdGhcLWFcLXBpZWNlXC1vZlwtY2xvdGg7CivjoYsgPiBhXC1raW5kXC1vZlwtaGVhZGRyZXNzXC1mb3JcLW1hblwtaW5cLW9sZFwtY2hpbmE7CivjoLggPiB0aGVcLWxhcGVsXC1vclwtY29sbG9yXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivjnJogPiBhXC1sb2NhbFwtZ292ZXJubWVudFwtcG9zdFwtaW5cLWFuY2llbnRcLXRpbWVzOwor45mfID4gbG93XC1seWluZ1wtb25cLXRoZVwtc2lkZVwtb2ZcLWFcLXJpdmVyXC1vclwtbGFrZTsKK+WWjyA+IHJlc3BlY3RmdWxcLXJlcGx5XC1vZlwtYXNzZW50XC10b1wtc3VwZXJpb3JzOwor56yPID4gdGFibGV0XC1oZWxkXC1ieVwtc29tZW9uZVwtaGF2aW5nXC1hdXRob3JpdHk7CivotrwgPiBjYWxsb3VzXC1za2luXC1vblwtaGFuZHNcLW9yXC1mZWV0XC5cLWJsaXN0ZXJzOwor6aWdID4gdG9cLWZlZWRcLWFuXC1pbmZhbnRcLWJ5XC1oYW5kXC1zdGVhbWVkXC1icmVhZDsKK+ijjSA+IGFcLWJvcmRlclwtb3JcLWJhbmRcLW9uXC10aGVcLWVkZ2VcLW9mXC1hXC1kcmVzczsKK+exqiA+IGFcLXdlaXJcLW9mXC1iYW1ib29cLXRvXC1jYXRjaFwtZmlzaFwtb3JcLWNyYWJzOwor55iyID4gc3Bhc21zXC1vclwtY29udnVsc2lvbnNcLWluXC15b3VuZ1wtY2hpbGRyZW47CivnkbIgPiB0aW5rbGluZ1wtc291bmRcLXRpbmtsaW5nXC1vZlwtcGVuZGFudFwtZ2VtczsKK+W8nSA+IHRoZVwtcGFydFwtb2ZcLWFcLWJvd1wtZ3Jhc3BlZFwtd2hlblwtc2hvb3Rpbmc7CivkpZwgPiBwcm90ZWN0aXZlXC1tZXRhbFwtb25cLXRoZVwtYXhpc1wtb2ZcLWFcLXdoZWVsOwor5JmWID4gYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWlpbmZhbnRcLW9uXC10aGVcLWJhY2s7CivkmYAgPiBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaWluZmFudFwtb25cLXRoZVwtYmFjazsKK+SPqyA+IGluXC1iZXR3ZWVuXC1vZlwtdGhlXC1hYmRvbWVuXC1hbmRcLXRoZVwtc3BpbmU7CivkjYkgPiB0cmFjZXNcLW9yXC1tYXJrc1wtb2ZcLWluY29tcGxldGVcLW9yXC1kYW1hZ2U7CivkjLggPiBmaW5lXC1zaWxrXC1mYWJyaWNcLW9mXC1icmlnaHRcLXdoaXRlXC1jb2xvdXI7Civki78gPiBhXC1kZWNvcmF0aXZlXC1rbm90XC1tYWRlXC1vZlwtY29sb3JmdWxcLXNpbGs7CivkiJwgPiBhXC10aHJlYWRcLXVzZWRcLWJ5XC1jYXJwZW50ZXJzXC1mb3JcLW1hcmtpbmc7CivkiIYgPiBhXC1zaGFsbG93XC1hbmRcLWxvbmdcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXQ7Civjv7kgPiBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXNcLW9yXC10aGVcLWN1dGljbGU7CivjvKsgPiBlYXJ0aGVud2FyZVwtb3JcLXBvdHRlcnlcLXdpdGhcLWJpZ1wtb3BlbmluZzsKK+O1uyA+IHRvXC1wZXJzcGlyZVwtZnJvbVwtZW1iYXJyYXNzbWVudFwtb3JcLXNoYW1lOwor462pID4gYVwta2luZFwtb2ZcLXRyZWVcLWNhblwtYmVcLXVzZWRcLWFzXC1keWVcLXN0dWZmOwor46OZID4gdG9cLXdhbGtcLWluXC1hblwtZWFzeVwtYW5kXC1sZWlzdXJlbHlcLW1hbm5lcjsKK+OiqiA+IHRvXC1kcmF3XC1hXC1mdWxsXC1ib3dcLXRvXC1haW1cLWF0XC10aGVcLXRhcmdldDsKK+OYiiA+IHRoZVwtYWJydXB0XC1hbmRcLWhhc3R5XC1zb3VuZFwtb2ZcLXRoZVwtY3Jvd2Q7Civjlq4gPiBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1pblwtcG9lbXNcLWFuZFwtc29uZ3M7CivjlK4gPiBhXC1raW5kXC1vZlwtYW5pbWFsXC13aGljaFwtbG9va3NcLWxpa2VcLWFcLXJhdDsKK+WVpyA+IGludGVyamVjdGlvblwtb2ZcLWFwcHJvdmFsXC1vclwtYWRtaXJhdGlvbjsKK+aNuiA+IHRvXC1wcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtdGhlXC1maW5nZXJzOwor5YKjID4gdGhlXC1kYWlcLW1pbm9yaXR5XC1saXZpbmdcLWluXC1zb3V0aFwtY2hpbmE7CivpuKkgPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor5redID4gbmFtZVwtb2ZcLWFuXC1hZmZsdWVudFwtb2ZcLXRoZVwtcG95YW5nXC1sYWtlOwor6YOFID4gdG9cLWdvXC11cFwtdG9cLlwtZmxvdXJpc2hpbmdcLWFcLXN1cGVybGF0aXZlOwor6L2rID4gYVwtYmxvY2tcLXRoYXRcLWtlZXBzXC1hXC13aGVlbFwtZnJvbVwtbW92aW5nOwor5ba3ID4gYVwtcmFuZ2VcLW9mXC1tb3VudGFpbnNcLWluXC1odW5hblwtcHJvdmluY2U7CivprLIgPiB0eXBlXC1vZlwtY2FsZHJvblwtd2l0aFwtdGhyZWVcLWhvbGxvd1wtbGVnczsKK+WIliA+IGN1dHRpbmdcLW9mZlwtZmVldFwtYXNcLWZvcm1cLW9mXC1wdW5pc2htZW50Owor56m4ID4gdGhlXC1nbG9vbVwtb2ZcLXRoZVwtZ3JhdmVcLWFcLXRvbWJcLW9yXC1ncmF2ZTsKK+iYhSA+IGFcLWZyYWdyYW50XC1wbGFudFwtdGhlXC1yb290XC1pc1wtbWVkaWNpbmFsOwor6bSGID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+mphiA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpbmdcLWJ1ZGRoaXN0XC1ib29rczsKK+mnjyA+IG9mZnNwcmluZ1wtb2ZcLWFcLXN0YWxsaW9uXC1hbmRcLWFcLXNoZVwtbXVsZTsKK+mJjCA+IHRoZVwtYmVsbHNcLW9uXC10aGVcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+i7lCA+IGFcLWJsb2NrXC10aGF0XC1rZWVwc1wtYVwtd2hlZWxcLWZyb21cLW1vdmluZzsKK+ippyA+IHRvXC1leGFtaW5lXC1pbnRvXC1qdWRpY2lhbGx5XC10b1wtZmluZFwtb3V0Owor57azID4gYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWluZmFudFwtb25cLXRoZVwtYmFjazsKK+e2liA+IHRoZVwtaGFuZ2luZ1wtZmxhcFwtaW5cLXRoZVwtZnJvbnRcLW9mXC1hXC1oYXQ7CivnpasgPiB0cmllbm5pYWxcLXNhY3JpZmljZVwtdG9cLW9uZScnc1wtYW5jZXN0b3JzOwor56O7ID4gYVwtdHJpYnV0YXJ5XC1vZlwtdGhlXC13ZWlcLXJpdmVyXC1pblwtc2hhbnhpOwor5pa0ID4gdGhlXC1zb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nXC1hbW9uZ1wtcm9ja3M7CivltJEgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nXC1zdVwtcHJvdmluY2VcLjsKK+WYliA+IGludGVyamVjdGlvblwtb2ZcLWFwcHJvdmFsXC1vclwtYWRtaXJhdGlvbjsKK+SwmCA+IHRvXC1raWxsXC1ieVwtaGFuZ2luZ1wtb3JcLXRvXC1zdHJhbmd1bGF0aW9uOwor5K6XID4gd2hpdGVcLWZyb21cLWZvcmVoZWFkXC10b1wtbGlwc1wtb2ZcLWFcLWhvcnNlOwor5KqyID4gYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXNoYXZpbmdcLXRoZVwtaGVhZDsKK+SpuCA+IGZpbmVcLXdvb2xlblwtYmxhbmtldFwtb25cLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+SpqyA+IGFcLXVuaXRcLXRvXC1jb3VudFwtc2hvZXNcLWluXC1hbmNpZW50XC10aW1lczsKK+SmhSA+IGFcLWtpbmRcLW9mXC13ZWFwb25cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SlkCA+IGNvb2tpbmdcLXV0ZW5zaWxzXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkoocgPiBhXC1zb25cLXdob1wtaXNcLW5vdFwtc29cLWdvb2RcLWFzXC1oaXNcLWZhdGhlcjsKK+SblyA+IHRvXC1wcnlcLWludG9cLW9yXC1leHBvc2VcLWFub3RoZXInJ3NcLXNlY3JldDsKK+SahSA+IHRvXC1sb29rXC1hZnRlclwtaG9tZVwtb3JcLWRvbWVzdGljXC1hZmZhaXJzOwor5JioID4gc2hvcnRcLWxlZ2dpbmdzXC1kcmF3blwtb3ZlclwtdGhlXC10cm91c2VyczsKK+SWvyA+IGFcLWtpbmRcLW9mXC1jbGFtXC13aXRoXC10aGlja1wtd2hpdGVcLXNoZWxsczsKK+SWvSA+IGFcLWtpbmRcLW9mXC1jbGFtXC13aXRoXC10aGlja1wtd2hpdGVcLXNoZWxsczsKK+SVsCA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1yaGl6b21lXC1vZlwtd2luZFwtd2VlZDsKK+STrSA+IHdlZWRcLW9yXC1ncmFzc1wtd2l0aFwtbmFycm93XC10aGlja1wtZ2xhZGVzOwor5I27ID4geW91bmdcLWdvYXRcLW9mXC1zaGVlcFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2mID4gYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iy5ID4gYVwtZ2FybWVudFwtb2ZcLW9uZVwtY29sb3VyXC13aXRoXC1ub1wtbGluaW5nOwor5ISqID4gaGFuZ2luZ1wtZG93blwtb2ZcLXRoZVwtZWFyc1wtb2ZcLXRoZVwtZ3JhaW5zOwor5ISNID4geWVhclwtZW5kXC1zYWNyaWZpY2VcLW9mXC10aGVcLXpob3VcLWR5bmFzdHk7CivjvaAgPiBjb25uZWN0aW9uXC1vZlwtdGhlXC1kaXRjaGVzXC1vclwtd2F0ZXJ3YXlzOwor47yuID4gdG9cLXJ1Ylwtb3V0XC10aGVcLWZpbHRoXC13aXRoXC1icm9rZW5cLXRpbGVzOwor46upID4gdGhlXC1maXJzdFwtb2ZcLXRoZVwtZm91clwtc2Vhc29uXC1cLVwtXC1zcHJpbmc7CivvpaQgPiBhXC10cmlidXRhcnlcLW9mXC10aGVcLXdlaVwtcml2ZXJcLWluXC1zaGFueGk7CivjpJ0gPiBwYWxwaXRhdGlvblwtb3JcLWZsdXR0ZXJpbmdcLW9mXC10aGVcLWhlYXJ0Owor46SRID4gcGFscGl0YXRpb25cLW9yXC1mbHV0dGVyaW5nXC1vZlwtdGhlXC1oZWFydDsKK+OfjCA+IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor45SvID4gYVwtbGFyZ2VcLWJhc2tldFwtZm9yXC1ob2xkaW5nXC1jb29rZWRcLXJpY2U7CivnrJkgPiBzbWFsbFwtZ291cmRcLXNoYXBlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+a7lSA+IGFuXC1hbmNpZW50XC1zdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mVmyA+IGxhcmdlXC1iZWxsXC11c2VkXC1hc1wtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+iutSA+IGFuXC1pbnRlcmplY3Rpb25cLXVzZWRcLWV4cHJlc3NcLXN1cnByaXNlOwor5rOUID4gd2F0ZXJcLWZyb21cLXdhc2hpbmdcLXJpY2VcLXRvXC1ib2lsXC10aGljazsKK+eYkCA+IHRvXC1kaWVcLWluXC1wcmlzb25cLWZyb21cLWNvbGRcLWFuZFwtaHVuZ2VyOwor5qO8ID4gYmVhbXNcLWluXC10aGVcLXJvb2ZcLW9mXC1hXC1ob3VzZVwtY29uZnVzZWQ7CivpuoUgPiBhXC1zbWFsbFwtc3BvdHRlZFwtZGVlclwtZm91bmRcLWluXC1uXC5jaGluYTsKK+mYvCA+IHRoZVwtc3RlcHNcLWxlYWRpbmdcLXRvXC10aGVcLWVhc3Rlcm5cLWRvb3I7CivovJcgPiBhXC1jcm9zc1wtYmFyXC1hdFwtZW5kXC1vZlwtYVwtY2FycmlhZ2VcLXBvbGU7CivoqY4gPiBpbnRlcmplY3Rpb25cLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZTsKK+e8jCA+IGNvYXJzZVwtY290dG9uXC1jbG90aFwtdXNlZFwtZm9yXC1tb3VybmluZzsKK+e3piA+IGNvYXJzZVwtY290dG9uXC1jbG90aFwtdXNlZFwtZm9yXC1tb3VybmluZzsKK+ehnCA+IHRoZVwtc291bmRcLW9mXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+eKiSA+IGFuXC1veFwtd2l0aFwteWVsbG93XC1oYWlyXC1hbmRcLWJsYWNrXC1saXBzOwor54WdID4gdHdpc3RlZFwtcGFwZXJcLWZvclwtbGlnaHRpbmdcLWNpZ2FyZXR0ZXM7CivluKwgPiB0aGVcLXNraXJ0XC1vZlwtYVwtbGFkeScnc1wtZHJlc3NcLXBldHRpY29hdDsKK+W1oCA+IGFcLXZhbGxleVwtd2l0aFwtYVwtc3RyZWFtXC1pblwtaXRcLlwtYVwtZ29yZ2U7CivksZcgPiBhXC1sb25nXC1uYXJyb3dcLWZpc2hcLXRyaWNoaXVydXNcLWFybWF0dXM7CivksZQgPiBhXC1sb25nXC1uYXJyb3dcLWFuZFwtc2lsdmVyXC1jb2xvcmVkXC1maXNoOwor5KqTID4gYVwtbWV0YWxcLW9ybmFtZW50XC1vblwtc29tZVwta2luZFwtb2ZcLWJlbHQ7CivkqJkgPiB0b1wtcmFpblwtY2F0c1wtYW5kXC1kb2dzXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkpoogPiBhblwtYXBwbGlhbmNlXC1mb3JcLXdhbGtpbmdcLW9uXC10aGVcLXNhbmRzOwor5KWCID4gdGhlXC1zaGFycFwtZWRnZVwtb2ZcLWFcLXNob3ZlbFwtb3JcLWFcLXNwYWRlOwor5KGVID4gdGhlXC1yZWFyXC1wbGF0Zm9ybVwtb2ZcLWFcLWxpZ2h0XC1jYXJyaWFnZTsKK+SclCA+IHRvXC1zcGVha1wtb25cLXRoZVwtaWRlYXNcLW9mXC1zb21lb25lXC1lbHNlOwor5JagID4gYVwta2luZFwtb2ZcLWxpemFyZFwtZm91bmRcLWluXC1kYW1wXC1wbGFjZXM7CivklpwgPiB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtbWFkZVwtYnlcLXR3b1wtdGlnZXJzOwor5I6SID4gZmx5aW5nXC1xdWlja2x5XC1hbmRcLXRvXC1hdHRhY2tcLXN1ZGRlbmx5Owor5IuKID4gZGVjb3JhdGlvbnNcLW9mXC10aGVcLWVtcGVyb3InJ3NcLWNhcnJpYWdlOwor5ICbID4gdG9cLWxvb2tcLWZhclwtd2l0aFwtdGhlXC1leWVzXC1oYWxmXC1jbG9zZWQ7CivjvKggPiBhXC13YXRlclwtamFyXC13aXRoXC1lYXJzXC1mb3JcLWNhcnJ5aW5nXC1pdDsKK+O7jiA+IGFcLWxhcmdlXC1ob3Jpem9udGFsXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor47qqID4gYW5cLXVuY2FydmVkXC1vZlwtdW5wb2xpc2hlZFwtamFkZVwtb3JcLWdlbTsKK+O1vyA+IGVuZGxlc3NseVwtbG9uZ1wtb3JcLXZhc3RcLXdhdGVyXC1jdXJyZW50czsKK+O0qSA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjr5ggPiBhXC1zbWFsbFwtd29vZGVuXC1zdGFuZFwtaGF2aW5nXC1mb3VyXC1sZWdzOwor46SNID4gbmV2ZXJcLXJldmVhbFwtb25lJydzXC1mZWVsaW5nXC1vclwtZW1vdGlvbjsKK+OjoCA+IGFcLXJvcGVcLWRlY29yYXRlZFwtd2l0aFwtYnJvbnplXC1vcm5hbWVudDsKK+OhkSA+IGFuY2llbnRcLW1vdXJuaW5nXC10dXJiYW5cLXdvcm5cLWJ5XC13b21lbjsKK+OgkSA+IGhpZ2hcLW1vdW50YWluXC1zdGVlcFwtcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OghCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXl1bm5hblwtcHJvdmluY2U7CivjoIEgPiBpcnJlZ3VsYXJcLW91dGxpbmVcLW9mXC1hXC1yYW5nZVwtb2ZcLWhpbGxzOwor45+aID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OevyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjnrkgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor45q2ID4gd2lmZVwtb2ZcLW9uZScnc1wtaHVzYmFuZCcnc1wtZWxkZXJcLWJyb3RoZXI7CivjmIggPiBhYmxlXC10b1wtdGFrZVwtYVwtY29ycmVjdFwtdmlld1wtb2ZcLXRoaW5nczsKK+OXsCA+IHRoZVwtY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor45K/ID4gYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7CivlvIEgPiBjb25pY2FsXC1jYXBcLXdvcm5cLWR1cmluZ1wtemhvdVwtZHluYXN0eTsKK+mFiSA+IHRlbnRoXC1vZlwtdGhlXC10d2VsdmVcLWVhcnRobHlcLWJyYW5jaGVzOwor5peMID4gYmFubmVyXC1vclwtZmxhZ1wtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7Civooa4gPiBjZXJlbW9uaWFsXC1kcmVzc1wtd29yblwtYnlcLXRoZVwtZW1wZXJvcjsKK+a6pyA+IHJpdmVyXC1pblwtYW5odWlcLWFuZFwtamlhbmdzdVwtcHJvdmluY2VzOwor57ONID4gZm9vZFwtbWFkZVwtb2ZcLWNydXNoZWRcLWFuZFwtY29va2VkXC1yaWNlOwor5q6bID4gdG9cLXB1dFwtdG9cLWRlYXRoXC10b1wtaW1wcmlzb25cLWZvclwtbGlmZTsKK+eLjSA+IHNwZWNpZXNcLW9mXC1kZWVyXC1mb3VuZFwtaW5cLW5vcnRoXC1jaGluYTsKK+e7giA+IHJpYmJvblwtb3JcLWNvcmRcLXVzZWRcLWF0dGFjaFwtb3JuYW1lbnRzOwor56OJID4gdGhlXC1zdG9uZVwtYmFzZVwtb3JcLXBsaW50aFwtb2ZcLWFcLXBpbGxhcjsKK+iVuSA+IGlwb21vZWFcLWFxdWF0aWNhXC11c2VkXC1hc1wtYVwtdmVnZXRhYmxlOwor6b2IID4gY29sZFwtaW5cLXRoZVwtaGVhZFwtY2F0YXJyaFwtb2ZcLXRoZVwtbm9zZTsKK+m5uyA+IGltcHVyZVwtY2FyYm9uYXRlXC1vZlwtc29kaXVtXC1vZlwtbmF0cm9uOwor6baiID4gYVwtYmlyZFwtd2hpY2hcLWZyZXF1ZW50c1wtdGhlXC1zZWFcLXNob3JlOwor6YOqID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor6L2eID4gYVwtdmVoaWNsZVwtZm9yXC10cmFuc3BvcnRpbmdcLXByaXNvbmVyczsKK+i8uSA+IHR3b1wtcGllY2VzXC1vZlwtd29vZFwtdW5kZXJuZWF0aFwtYVwtY2FydDsKK+iiniA+IGNlcmVtb25pYWxcLWRyZXNzXC13b3JuXC1ieVwtdGhlXC1lbXBlcm9yOwor6Iq/ID4gZ3Jhc3NcLXdoaWNoXC1oYXNcLWJlZW5cLWN1dFwtYW5kXC1yZWdyb3duOwor6IOsID4gYVwtZGlzZWFzZScnc1wtbmFtZVwtaW5cLWNoaW5lc2VcLW1lZGljaW5lOwor57SxID4gcmliYm9uXC1vclwtY29yZFwtdXNlZFwtYXR0YWNoXC1vcm5hbWVudHM7CivnpoogPiBzZW1pXC1hbm51YWxcLWNlcmVtb255XC1vZlwtcHVyaWZpY2F0aW9uOwor5oilID4gYVwtc21hbGxcLXN0ZWVseWFyZFwtZm9yXC13ZWlnaGluZ1wtbW9uZXk7Civlr40gPiB1c2VkXC1hc1wtYVwtdGVybVwtb2ZcLWNvbXBhcmlzb25cOlwtcmF0aGVyOwor5ZKXID4gdmVyYmFsXC1wYXJ0aWNsZVwtb2ZcLXBlcmZlY3RpdmVcLWFzcGVjdDsKK+S4sSA+IGNoaWxkJydzXC1oYWlyc3R5bGVcLWJvdW5kXC1pblwtdHdvXC10dWZ0czsKK+SupCA+IG9uZVwtb2ZcLXRoZVwtMzZcLWdhcmRlbnNcLWluXC1oYW5cLWR5bmFzdHk7CivkrK0gPiBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1mZXJvY2lvdXNcLWFuaW1hbDsKK+SqlCA+IGNyb3NzXC1iYXJcLW9mXC13b29kXC11bmRlclwtdGhlXC1jYXJyaWFnZTsKK+SnpCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+SkjCA+IGFcLWtpbmRcLW9mXC13aW5lXC1iZVwtYnJld2VkXC1mcm9tXC1ncmFpbnM7CivkoLcgPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1oZWlnaHRcLWluXC1hXC1wZXJzb247CivkoIUgPiBoYW5kc1wtYW5kXC1mZWV0XC1jaGFwcGVkXC1mcm9tXC10aGVcLWNvbGQ7CivknaQgPiBhXC1wcmltaXRpdmVcLXRyaWJlXC1pblwtc291dGh3ZXN0XC1jaGluYTsKK+SdnyA+IGFcLWZpZXJjZVwtbWFuXC1lYXRpbmdcLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SdnSA+IGFuXC1leGNsYW1hdGlvblwtaW5kaWNhdGluZ1wtYWRtaXJhdGlvbjsKK+SbkyA+IGFuXC1vZmZpY2lhbFwtcG9zaXRpb25cLWluXC1mb3JtZXJcLXRpbWVzOwor5JqYID4gdGhlXC1sb25nXC1hbmRcLXVwcmlnaHRcLWhvcm5zXC1vZlwtY2F0dGxlOwor5JaSID4gZWFydGhlbndhcmVcLXdpdGhcLXRoZVwtc2hhcGVcLW9mXC1hXC1iZWFuOwor5JWOID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtcGVyZW5uaWFsOwor5JORID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtZHVja3dlZWRzOwor5JGXID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+SRlCA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkkLEgPiB0b1wtcGlja1wtdGhlXC1tZWF0XC1pblwtYmV0d2Vlblwtb2ZcLWJvbmVzOwor5I+BID4gdW5hYmxlXC10b1wtaGVhclwtZGlzdGluY3RseVwtb3JcLWNsZWFybHk7CivkiqAgPiB0b1wtZ2l2ZVwtYVwtc3VwcGx5XC1mXC1ncmFpblwtZm9yXC1yYXRpb25zOwor5ImfID4gYVwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5IiwID4gYVwtYnJ1c2hcLWZvclwtd2FzaGluZ1wta2l0Y2hlblwtdXRlbnNpbHM7Civkh7wgPiBhXC1iYW1ib29cLXZlc3NlbFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivkhKsgPiBhXC1raW5kXC1vZlwtc29yZ2h1bVwtd2l0aFwtd2hpdGVcLXNwcm91dHM7CivkhIggPiBzYWNyaWZpY2VcLXRvXC1oYXBwaW5lc3NcLWFuZFwtZ29vZFwtbHVjazsKK+SDpCA+IGJsYWNrXC1jb2xvcmVkXC1ncmluZHN0b25lXC1vclwtd2hlc3RvbmU7Civkg44gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLVwtc21hbGxcLXBpZWNlXC1vZlwtY29hbDsKK+SCvyA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkgrkgPiBzb3VuZFwtb2ZcLXRoZVwtZmFsbGluZ1wtcGllY2VzXC1vZlwtcm9ja3M7CivkgbYgPiB0b1wtbG9va1wtYXRcLXNvbWV0aGluZ1wtd2l0aG91dFwtd2lua2luZzsKK+SBtSA+IG5ld2Jvcm5cLWJhYnlcLXdpdGhcLXRoZVwtZXllbGlkc1wtY2xvc2VkOwor472FID4gdmVzc2VsXC1mb3JcLWNlcmVtb255XC1pblwtYW5jaWVudFwtdGltZXM7CivjuLkgPiBjYXR0bGVcLXdpdGhcLXdoaXRlXC1zdHJpcGVcLW9uXC10aGVcLWJhY2s7CivjuJcgPiBub3RcLWFcLXJlYWxcLWZhdGhlclwtb3JcLWFcLW5hdHVyZVwtZmF0aGVyOwor47OYID4gYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLWZsb3dzXC1kb3dud2FyZHM7Civjrq8gPiB3aG9sZVwtcGllY2VcLW9mXC1vclwtdW5icm9rZW5cLWZpcmV3b29kczsKK+OunCA+IGFcLWJsb2Nrc1wtZW5ncmF2ZWRcLWZvclwtaG9sZGluZ1wtdGhpbmdzOwor46uqID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+OfvCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+OelCA+IHRoZVwtdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtYVwtZG9vcjsKK+OdniA+IHByZXRlbmRcLXRvXC1iZVwtZGVsaWNhdGVcLWFuZFwtYmVhdXRpZnVsOwor45y5ID4gbmFtZVwtb2ZcLWFcLWZvbGtcLXNvbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+OagSA+IHRoZVwtbG9uZ1wtdGFpbFwtZmVhdGhlcnNcLXdoaWNoXC1jdXJsXC11cDsKK+mYriA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnRcOlwtc3VybmFtZTsKK+WWlCA+IGRlc2NyaXB0aXZlXC1vZlwtY3J5aW5nXC1vclwtb2ZcLWNyb3dpbmc7CivnkI8gPiB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor6YKVID4gZm9ybWVyXC1vclwtbGl0ZXJhcnlcLW5hbWVcLWZvclwtbmFubmluZzsKK+mtkSA+IGFcLW1vdW50YWluXC1kZW1vblwtcmVzZW1ibGluZ1wtYVwtdGlnZXI7CivmmLYgPiBhXC1sb25nXC1kYXlcLlwtYnJpZ2h0XC5cLWV4dGVuZGVkXC5cLWNsZWFyOwor57ynID4gYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7Civonq0gPiBhXC1kcmFnb25cLXdob3NlXC1ob3Juc1wtaGF2ZVwtbm90XC1ncm93bjsKK+m+gCA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6IKcID4gdG9cLXNhY3JpZmljZVwtb25cLXR3b1wtc3VjY2Vzc2l2ZVwtZGF5czsKK+mClyA+IGFuXC1hbmNpZW50XC1wbGFjZVwtaW5cLXRoZVwtc3RhdGVcLW9mXC13dTsKK+m+hiA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6b2gID4gbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivpvZQgPiBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+mQpCA+IGh1Z2VcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor6KetID4gb25lXC10dXJuaW5nXC11cFwtYW5kXC1vbmVcLXR1cm5pbmdcLWRvd247CivopLEgPiB0b1wtY2FycnlcLWluXC10aGVcLWJvc29tXC1vclwtdGhlXC1zbGVldmU7CivopKIgPiB0b1wtY2FycnlcLWluXC10aGVcLWJvc29tXC1vclwtdGhlXC1zbGVldmU7CivoiZwgPiBhXC1sb25nXC1uYXJyb3dcLXZlc3NlbFwtd2l0aFwtdHdvXC1tYXN0czsKK+iHvyA+IHRvXC1zZXBhcmF0ZVwtdGhlXC1ncmFpblwtZnJvbVwtdGhlXC1odXNrOwor57iyID4gYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7CivntbAgPiB3aGl0ZVwtaGVtcGVuXC1jbG90aFwtd29yblwtYnlcLW1vdXJuZXJzOwor56KqID4gc3RvbmVcLXNsYWJcLXVzZWRcLWZvclwtd2FzaGluZ1wtY2xvdGhlczsKK+ebhyA+IHdoeVwtbm90XD9cLXdvdWxkXC1pdFwtbm90XC1iZVwtYmV0dGVyXC10b1w/Owor5rurID4gd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC1ib2lsZWQ7CivmqpEgPiBsb2dzXC1yb2xsZWRcLWRvd25cLWluXC1kZWZlbnNlXC1vZlwtY2l0eTsKK+ajsyA+IHNtYWxsXC1waWxsYXJzXC10aGF0XC1zdXBwb3J0XC10aGVcLXJvb2Y7CivluJcgPiBhXC1tdWx0aWNvbG9yZWRcLXByb3BcLXVzZWRcLWluXC1kYW5jaW5nOwor5ZigID4gdGhlXC1jaGlycGluZ1wtb2ZcLWJpcmRzXC1sb3VkXC1sYXVnaHRlcjsKK+WUhCA+IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvblwtcGF0aGFrYTsKK+WAuyA+IHBob25ldGljXC11c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7CivktbogPiBib3VuZGFyeVwtYmV0d2VlblwtYWdyaWN1bHR1cmFsXC1sYW5kczsKK+S1uSA+IGluc2VjdHNcLXRoYXRcLWFyZVwtaW5qdXJpb3VzXC10b1wtY3JvcHM7CivkrY0gPiB0b1wtbGl2ZVwtd2l0aFwtYW5vdGhlclwtYXRcLWhpc1wtZXhwZW5zZTsKK+SspSA+IGNvb2tlZFwtZm9vZFwtd2hpY2hcLWhhc1wtYmVjb21lXC1tb3VsZHk7CivkrJkgPiB0b1wtZGFuY2VcLWFuZFwtdG9zc1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7CivkoKsgPiB0b1wtc3VjY3VtYlwtdG9cLXRoZVwtZWZmZWN0XC1vZlwtYWxjb2hvbDsKK+SdpiA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxvb2tzXC1saWtlXC1sZW9wYXJkOwor5JygID4gbGFuZ3VhZ2VcLW9mXC10aGVcLXNhdmFnZVwtb3JcLWJhcmJhcmlhbjsKK+SWuiA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC1pblwtYW5jaWVudFwtdGltZXM7CivklqUgPiBpbnNlY3RzXC10aGF0XC1hcmVcLWluanVyaW91c1wtdG9cLWNyb3BzOwor5JK8ID4gYVwtYmFtYm9vXC10cmF5XC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SRsyA+IGFcLWhvcml6b250YWxcLWJhclwtaW5cLWZyb250XC1vZlwtYVwtYm9hdDsKK+SQpyA+IHRvXC1yZXdhcmRcLW9yXC1jaGVlclwtdHJvb3BzXC13aXRoXC1mb29kOwor5I6wID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkjZ8gPiBhXC1raW5kXC1vZlwtZmlzaFwtbmV0XC13aXRoXC1maW5lXC1tZXNoZXM7Civkh6ggPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1mb29kXC1jb250YWluZXJzOwor5IaOID4gZ3Jhc3NcLWFuZFwtZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEuyA+IGFcLXNlY29uZFwtdGltZVwtZ3Jvd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor5ICaID4gdG9cLWxpZnRcLXVwXC10aGVcLWV5ZXNcLWFuZFwtbG9va1wtYXJvdW5kOwor47+WID4gY2FyYnVuY2xlXC11c2VkXC1pblwtbmFtaW5nXC1vZlwtYVwtcGxhY2U7CivjupsgPiBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+O3iCA+IGVtYmVyc1wta2VwdFwtZm9yXC1zdGFydGluZ1wtYVwtbmV3XC1maXJlOwor47WBID4gdmFzdFwtYW5kXC1ib3VuZGxlc3NcLW9mXC1mbG93aW5nXC13YXRlcjsKK+OzlSA+IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtd2FzaGVkOwor46+qID4gY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXJhaWxpbmdzOwor46uAID4gaHVnZVwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7CivvppQgPiB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor46CZID4gYVwtbW91bnRhaW5cLXBhdGhzXC1uYW1lXC1vZlwtYVwtbW91bnRhaW47Civjk60gPiB0b1wtbWFrZVwtcmVhZHlcLXRoZVwtbGVhdGhlclwtZm9yXC1zaG9lczsKK+OQtyA+IGFcLWtpbmRcLW9mXC1wdW5pc2htZW50XC1pblwtaGFuXC1keW5hc3R5Owor6KKxID4gYVwtcGllY2VcLW9mXC1jbG90aFwtdXNlZFwtd3JhcFwtYnVuZGxlczsKK+aMsiA+IHRvXC1mZWVsXC1vclwtZm9uZGxlXC13aXRoXC10aGVcLWZpbmdlcnM7Civnr5EgPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivogpMgPiByZWdpb25cLWJldHdlZW5cLWhlYXJ0XC1hbmRcLWRpYXBocmFnbTsKK+a7piA+IHJpdmVyXC1hbmRcLWNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mDlyA+IGNpdHlcLXVuZGVyXC10aGVcLWNob3VcLWR5blwuXC1hXC1zdXJuYW1lOwor54+PID4gdHdvXC1waWVjZXNcLW9mXC1qYWRlXC1qb2luZWRcLXRvZ2V0aGVyOwor57amID4gZGFya1wtZ3JleVwuXC12YXJpZWdhdGVkXC5cLXN1cGVybGF0aXZlOwor6bqHID4gZ2VuZXJhbFwtbmFtZVwtZm9yXC10aGVcLWhvcm5sZXNzXC1kZWVyOwor55KOID4gYVwtbmVja2xhY2VcLW1hZGVcLW9mXC1wcmVjaW91c1wtc3RvbmVzOwor5o6+ID4gYVwtZ2VuZXJhbFwtZGVzaWduYXRpb25cLW9mXC1vZmZpY2lhbHM7Civpg4cgPiBhblwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoYWFueGk7CivpvpggPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1kcmFnb25cLXdhbGtpbmc7CivptL0gPiBhXC1zcGVjaWVzXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtcXVhaWw7CivphKsgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivphIcgPiBhXC1uYW1lXC1vZlwtYVwtdG93blwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+i/vyA+IHRvXC1iZVwtdGhlXC1maXJzdFwtdG9cLWJlZ2luXC1hXC1xdWFycmVsOwor6L2VID4gZ3JlYXRcLWFycmF5XC1vZlwtc3BlYXJzXC1hbmRcLWNoYXJpb3RzOwor6Ly1ID4gZ3JlYXRcLWFycmF5XC1vZlwtc3BlYXJzXC1hbmRcLWNoYXJpb3RzOwor6LygID4gZ3JlYXNlXC1wb3RcLWh1bmdcLXVuZGVyXC1heGxlXC1vZlwtY2FydDsKK+iGsiA+IHRoZVwtdGhyZWVcLWRpdmlzaW9uc1wtb2ZcLXRoZVwtdmlzY2VyYTsKK+e0liA+IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlXC1vclwtaG9yc2U7CivnsKMgPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivnrK4gPiBib2FyZHNcLXdoaWNoXC1zdXBwb3J0XC10aWxlc1wtb25cLXJvb2Y7CivnoIUgPiBjcm9zc1wtc3RyZWFtXC1ieVwtc3RlcHBpbmdcLW9uXC1zdG9uZXM7Civnk5QgPiBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7CivnkokgPiBhXC12ZXNzZWxcLXVzZWRcLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7Civnj7EgPiBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7CivnjqggPiB0d29cLXBpZWNlc1wtb2ZcLWphZGVcLWpvaW5lZFwtdG9nZXRoZXI7CivngaQgPiByaXZlclwtYW5kXC1jb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmoqEgPiB0cmF5XC1mb3JcLWNhcnJ5aW5nXC1zYWNyaWZpY2lhbFwtbWVhdDsKK+aMsSA+IHRvXC1mZWVsXC1vclwtZm9uZGxlXC13aXRoXC10aGVcLWZpbmdlcnM7CivlubUgPiBldmVuXC1sZXZlbFwuXC10b1wtcmFpc2VcLWluXC1ib3RoXC1oYW5kczsKK+WrhCA+IGFuXC1hbmNpZW50XC1lbXBlcm9yJydzXC1tb3RoZXInJ3NcLW5hbWU7Civlm7cgPiByb3VuZFwtc2hhcGVkXC1zdG9yYWdlXC1iaW5cLWZvclwtZ3JhaW47CivktJkgPiBhXC1raW5kXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1kdWNrOwor5LKDID4gYVwtY2FycFwtbGlrZVwtZmlzaFwtd2l0aFwtY2hpY2tlblwtZmVldDsKK+SplyA+IHRvXC1ydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivkopUgPiBhXC1ncm91cFwtb2ZcLXBlb3BsZVwtd2Fsa2luZ1wtdG9nZXRoZXI7CivkmqEgPiBib25lc1wtaW5cLWFcLWhvcm5cLW9mXC1jYXR0bGVcLWFuZFwtZ29hdDsKK+SZrCA+IHBsYWl0c1wtb25cLXRoZVwtc2lkZXNcLW9mXC1hXC1wZXR0aWNvYXQ7CivkkIAgPiB0b1wtZGlzbWVtYmVyXC1ib2R5XC1vZlwtdGhlXC1saXZlc3RvY2s7Civkjo4gPiB0b1wtZ2xpZGVcLW9yXC10b1wtaG92ZXJcLXVwXC1pblwtdGhlXC1haXI7CivkjYogPiBjbGF5XC1tYWRlXC1ibG93aW5nXC13aW5kXC1pbnN0cnVtZW50czsKK+SIvyA+IGJlbHRcLW9mXC10aGVcLWNhbnZhc1wtdG9wXC1vblwtdmVoaWNsZXM7Civkh64gPiBhXC1iYW1ib29cLW1hdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IWaID4gY2xvc2VseVwtZ3Jvd2luZ1wtb2ZcLXRoZVwtcmljZVwtcGxhbnRzOwor5IS2ID4gcmljZVwtcGxhbnRcLWdyb3dpbmdcLXRoZVwtc2Vjb25kXC10aW1lOwor5IG+ID4gcmVkXC1hbmRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1leWVcLXNvY2tldDsKK+SBqCA+IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O9myA+IG5hcnJvd1wtdHJhaWxcLW9mXC1wYXRoXC1pblwtdGhlXC1maWVsZHM7CivjupEgPiBkb2dzXC13b3JtZWRcLXRocm91Z2hcLWFcLW5hcnJvd1wtcGxhY2U7CivjuaIgPiBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdlc3Rlcm5cLWNoaW5hOwor47mcID4gdHdvXC1kb2dzXC1hcmVcLWJhcmtpbmdcLXRvXC1lYWNoXC1vdGhlcjsKK+O5iSA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC10aHJlZVwtZmVldDsKK+O3piA+IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O2gCA+IGRlZXBcLWFuZFwtdmFzdFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsLYgPiB0b1wtd3JpbmtsZVwtdGhlXC1ub3NlXC13aXRoXC1zb3Jyb3dmdWw7CivjrbIgPiBhXC13b29kZW5cLWZyYW1lXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7CivjoaEgPiBzY3JlZW5cLXRvXC1tYWtlXC1hXC10ZW1wb3JhcnlcLWtpdGNoZW47CivjoL8gPiBhXC1raW5kXC1vZlwtZGVsaWNhdGVcLWFuZFwtZmluZVwtZmFicmljOwor45y6ID4gbmljZVwtd2hpdGVcLWNvbG9yXC1hbmRcLWxvb2tzXC1zb1wtZ29vZDsKK+OctSA+IHdpdGhcLWFcLWNoYXJtaW5nXC1zcHJpZ2h0bHlcLWNhcnJpYWdlOwor45qpID4gd2l0aFwtYVwtY2hhcm1pbmdcLXNwcmlnaHRseVwtY2FycmlhZ2U7CivjmYggPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor45ahID4gdGhlXC1iaXJkc1wtc2luZ2luZ1wtZHVyaW5nXC10aGVcLW5pZ2h0Owor45W6ID4gbG9va3NcLWJpZ1wtb3V0c2lkZVwtYnV0XC1lbXB0eVwtaW5zaWRlOwor45WEID4gdG9cLWFwcGx5XC1rbm93bGVkZ2VcLXRvXC1maW5hbFwtY2F1c2VzOwor56S+ID4gZ29kXC1vZlwtdGhlXC1zb2lsXC1hbmRcLWFsdGFyc1wtdG9cLWhpbTsKK+eRnyA+IGxhcmdlXC1zdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+alniA+IHVzZWRcLWZvclwtY2V5bG9uXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5Za9ID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor5ZqFID4gdGFsa1wtaW5kaXN0aW5jdGx5XC1hbmRcLWZhbHRlcmluZ2x5Owor6KOxID4gdG9cLW1vdW50XC1tYXBzXC1vclwtc2Nyb2xsc1wtdG9cLXBhc3RlOwor54yiID4gYVwta2luZFwtb2ZcLW1vbmtleVwtZm91bmRcLWluXC13XC5jaGluYTsKK+icriA+IGFcLWZhYnVsb3VzXC1jcmVhdHVyZVwtbGlrZVwtYVwtdHVydGxlOwor5ZGWID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor56KhID4gc3RvbmVcLXJvbGxlclwtdXNlZFwtdG9cLWxldmVsXC1maWVsZHM7CivphKMgPiBuYW1lXC1vZlwtYW5jaWVudFwtY2l0eVwtaW5cLW5cLmppYW5nc3U7CivnsqIgPiBncmFpblwtb2ZmZXJlZFwtaW5cLXJpdHVhbFwtc2FjcmlmaWNlOwor57CmID4gbGFyZ2VcLXVtYnJlbGxhXC13aXRoXC1hXC1sb25nXC1oYW5kbGU7CivonpMgPiBhXC1zbWFsbFwtY2ljYWRhXC13aXRoXC1hXC1zcXVhcmVcLWhlYWQ7CivprYogPiBhXC1teXRoaWNhbFwtY3JlYXR1cmVcLXNhaWRcLWh1cmxcLXNhbjsKK+mfkCA+IGtuZWVcLXBhZFwtbWFkZVwtb2ZcLXJlZFwtZHllZFwtbGVhdGhlcjsKK+i7jyA+IGNyb3NzXC1iYXJcLWF0XC1lbmRcLW9mXC1wb2xlc1wtb2ZcLWNhcnQ7CivoloAgPiB0aGVcLWhpcHB1cmlzXC1vclwtbWFyZScnc1wtdGFpbFwtcGxhbnQ7CivolbAgPiB0aGVcLWhpcHB1cmlzXC1vclwtbWFyZScnc1wtdGFpbFwtcGxhbnQ7CivogZ0gPiB0b1wtY3V0XC10aGVcLWxlZnRcLWVhcnNcLW9mXC10aGVcLXNsYWluOwor6ICUID4gdG9cLWhvZVwtdXBcLXRoZVwtZWFydGhcLWFyb3VuZFwtcGxhbnRzOwor57CrID4gbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+ewqCA+IGFcLWJlYW1cLWZvclwtaGFuZ2luZ1wtYmVsbHNcLW9yXC1kcnVtczsKK+ewmCA+IG11c2ljYWxcLWluc3RydW1lbnRcLWxpa2VcLXBhblwtcGlwZXM7Civnrr4gPiBtdXNpY2FsXC1pbnN0cnVtZW50XC1saWtlXC1wYW5cLXBpcGVzOwor56SzID4gbmFtZVwtb2ZcLXBsYWNlXC1pblwtc2hhblwteGlcLXByb3ZpbmNlOwor56KrID4gY29hcnNlXC1zdG9uZVwtXCh1c2VkXC1mb3JcLXdoZXRzdG9uZVwpOwor55KvID4gamFkZVwtb3JuYW1lbnRcLWluXC10aGVcLXNlYW1zXC1vZlwtY2FwOwor55CvID4gYVwtamFkZVwtdHViZVwtdXNlZFwtYXNcLWFuXC1pbnN0cnVtZW50Owor546BID4gYVwtZG9nXC13aXRoXC1hXC1sb25nXC1zbm91dFwtb3JcLW11enpsZTsKK+ajnyA+IHRoZVwtbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWFcLWhvdXNlOwor5oigID4gYVwtc3dvcmRcLlwtcG90dGVyJydzXC1jbGF5XC5cLXRvXC1nYXRoZXI7CivlmqYgPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivlmI0gPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7Civlka0gPiBmaW5hbFwtcGFydGljbGVcLWV4cHJlc3NpbmdcLWNvbnNlbnQ7CivlkaEgPiB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoXC10aGVcLWxpcHM7CivktqwgPiBoYXJkXC1maW5zXC1vblwtdGhlXC1iYWNrXC1vZlwtYVwtZHJhZ29uOwor5LaFID4gYVwtbWFybW90XC1saWtlXC1yYXRcLXdpdGhcLWFcLWJpZ1wtaGVhZDsKK+S0kyA+IGdlbmVyYWxcLXRlcm1cLWZvclwtc21hbGxcLWJpcmRcLWdyb3VwOwor5KyXID4gYmxvd25cLW9yXC10b3NzZWRcLWFib3V0XC1ieVwtdGhlXC13aW5kOwor5KeJID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtaGFuXC1keW5hc3R5Owor5KW2ID4gY29va2luZ1wtdXRlbnNpbFwtdXNlZFwtaW5cLW9sZFwtdGltZXM7CivkpawgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50XC1pblwtb2xkXC10aW1lczsKK+SjnCA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjliA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjlSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjjCA+IHJlc2lkZW5jZVwtb2ZcLWFcLXByaW5jZVwtb3JcLW5vYmlsaXR5Owor5KGdID4gYVwtcmVhclwtY292ZXJpbmdcLW9mXC1hXC1iaWdcLWNhcnJpYWdlOwor5KGKID4gdGhlXC1wcm90cnVkZWRcLXNpZGVzXC1vZlwtYVwtY2FycmlhZ2U7CivkoJogPiB0b1wtc3RlcFwtb25cLXRoZVwtZ3JvdW5kXC13aXRoXC1hXC1iYW5nOwor5JaDID4gdGhlXC13YXRlclwtaXNcLXdhdmluZ1wtaW5cLXRoZVwtYnJlZXplOwor5JWkID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JKnID4gYVwtdmVzc2VsXC1vclwtdXRlbnNpbFwtbWFkZVwtb2ZcLXN0cmF3Owor5I2yID4gYVwta2luZFwtb2ZcLXNoZWVwXC13aXRoXC1jdXJsZWRcLWhhaXJzOwor5Iu4ID4gYmFja1wtY2VudGVyXC1zdXR1cmVcLW9mXC10aGVcLWNsb3RoZXM7Civki5sgPiB0aGVcLWNsdXN0ZXJlZFwtZW1icm9pZGVyeVwtcGF0dGVybnM7CivkipYgPiB0b1wtZWF0XC1yaWNlXC1ncnVlbFwtbWl4ZWRcLXdpdGhcLW1lYXQ7CivkhoUgPiB0b1wtYWNjdW11bGF0ZVwtb3JcLXRvXC1zdG9yZVwtdXBcLXJpY2U7CivkgqcgPiByb2Nrc1wtY2x1c3RlcmVkXC1waWxlXC11cFwtdG9nZXRoZXJzOwor5IC/ID4gdG9cLWhhdmVcLWFcLWNhc3VhbFwtYW5kXC1zaG9ydFwtZ2xhbmNlOwor5IC4ID4gdG9cLWhhdmVcLWFcLWNhc3VhbFwtYW5kXC1zaG9ydFwtZ2xhbmNlOwor47mXID4gY2F0dGxlXC1hbmRcLXNoZWVwXC1oYXZlXC1ub1wtY2hpbGRyZW47CivjtrIgPiBtZWFzdXJpbmdcLXVuaXRcLWZvclwtdGhlcm1vZHluYW1pY3M7CivjtbogPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtYW5jaWVudFwtdGltZXM7CivjtZAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivjtYsgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2U7CivjsZIgPiB0b1wtc2NvbGRcLW9yXC1ibGFtZVwtaW5cLWFcLWxvdWRcLXZvaWNlOwor466+ID4gYVwtcGxhY2VcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor46yIID4gdGhlXC1zdW5cLXdhc1wtc2hpbmluZ1wtYW5kXC1pdCcnc1wtd2FybTsKK+OqiiA+IGluZmVzdGVkXC13aXRoXC1iYW5kaXRzXC1hbmRcLXJvYmJlcnM7CivjqJggPiB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC10aGVcLWZpbmdlcnM7Civjn74gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1jb3VudHlcLWppYW47Civjn7ggPiBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC1hbmNpZW50XC1jaGluYTsKK+OfiSA+IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLWFuY2llbnRcLWNoaW5hOwor45+CID4gbmFtZVwtb2ZcLWNhcGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivjmqogPiB0b1wtbWFrZVwtYVwtZGVjZXB0aXZlXC1zaG93XC1vZlwtcG93ZXI7Civjko0gPiB1dHRlcmx5XC13ZWFyeVwtaW5cLWJvZHlcLWFuZFwtc3Bpcml0czsKK+OQjCA+IGFcLXRyaWJlXC1vZlwtc2F2YWdlc1wtaW5cLXNvdXRoXC1jaGluYTsKK+aNuyA+IHRvXC10d2lzdFwtb3JcLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor5oiMID4gZWxldmVudGhcLW9mXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivmkJMgPiB0b1wtcnViXC1vclwtcm9sbFwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+WwpyA+IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WptiA+IHdpZmVcLW9mXC1mYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivmjqwgPiB0b1wtZ3Jhc3BcLW9yXC1ob2xkXC13aXRoXC1ib3RoXC1oYW5kczsKK+W5myA+IHNjcm9sbFwtb2ZcLXNpbGtcLW9yXC1jbG90aFwtcHJlc2VudGU7Civmo4IgPiBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtc2lsbHM7CivmsLIgPiBsaWZlXC1naXZpbmdcLWluZmx1ZW5jZXNcLW9mXC1uYXR1cmU7Civomp0gPiBoYWlyeVwtYW5kXC1wb2lzb25vdXNcLWNhdGVycGlsbGFyczsKK+a+pyA+IHJpdmVyXC1pblwtbm9ydGhlcm5cLWh1bmFuXC1wcm92aW5jZTsKK+etriA+IGRpdmluYXRpb25cLXdpdGhcLXN0YWxrc1wtb2ZcLXBsYW50czsKK+esqiA+IGFcLWNvYXJzZVwtbWF0XC1vZlwtcnVzaGVzXC1vclwtYmFtYm9vOwor6aaTID4gZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+eukCA+IHRvXC1kcmF3XC1hXC1iYW1ib29cLWJvd1wtb3JcLWNyb3NzYm93Owor5omDID4gYVwtZG9vclwtYmFyXC1wbGFjZWRcLW91dHNpZGVcLWFcLWRvb3I7Civku4kgPiBzdXJuYW1lXC1vZlwtdGhlXC1tb3RoZXJcLW9mXC1tZW5jaXVzOwor6aq+ID4gYW55XC1vYmplY3RcLXRoYXRcLXN0aWNrc1wtaW5cLXRocm9hdDsKK+mliiA+IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivphrwgPiBvZmZlclwtZm9vZFwtYW5kXC13aW5lXC1vbmUnJ3NcLWd1ZXN0czsKK+i8pyA+IGN1cnRhaW5lZFwtY2FycmlhZ2VcLXVzZWRcLWJ5XC13b21lbjsKK+i7vyA+IGN1cnRhaW5lZFwtY2FycmlhZ2VcLXVzZWRcLWJ5XC13b21lbjsKK+i7mSA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtdG9cLWFycmFuZ2U7CivotIEgPiB0b1wtZGVmZWF0XC10b1wtc3BvaWxcLW9yXC1iZVwtc3BvaWxlZDsKK+izjyA+IHBlYXJsc1wtb3JcLXNoZWxsc1wtc3RydW5nXC10b2dldGhlcjsKK+iriiA+IHRvXC1tYWtlXC1hXC1qdWRpY2lhbFwtaW52ZXN0aWdhdGlvbjsKK+iehiA+IGhhaXJ5XC1hbmRcLXBvaXNvbm91c1wtY2F0ZXJwaWxsYXJzOwor57qZID4gc3RyaW5nXC1vblwtd2hpY2hcLWNvaW5zXC1hcmVcLXN0cnVuZzsKK+ezpCA+IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivnrbQgPiB0eXBlXC1vZlwtZ3Jhc3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor55CHID4gY29hcnNlXC12YXJpZXR5XC1vZlwtamFzcGVyXC1vclwtamFkZTsKK+awsyA+IGxpZmVcLWdpdmluZ1wtaW5mbHVlbmNlc1wtb2ZcLW5hdHVyZTsKK+aruiA+IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1zaWxsczsKK+ajqyA+IHRob3JueVwtc2hydWJcLXdpdGhcLXllbGxvd1wtZmxvd2VyczsKK+aXkyA+IHNlcnJhdGVkXC1lZGdlc1wtb25cLWFcLWNoaW5lc2VcLWZsYWc7CivltrIgPiBhXC1uYW1lXC1vZlwtYW5cLW9sZFwtdG93blwtaW5cLXNpY2h1YW47CivlsK0gPiBhXC1sZWdlbmRhcnlcLWFuY2llbnRcLWVtcGVyb3JcLXNhZ2U7CivlrLggPiB3aWZlXC1vZlwtZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor5aGxID4gcGxhY2VcLW5hbWVcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5aCvID4gYVwtbGVnZW5kYXJ5XC1hbmNpZW50XC1lbXBlcm9yXC1zYWdlOwor5YmoID4gc291bmRcLW9mXC1zb21ldGhpbmdcLWJlaW5nXC1zbWFzaGVkOwor5LWsID4gYmxhY2tcLXNvdW5kXC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+S0jSA+IGFcLWtpbmRcLW9mXC1zdHJhbmdlXC1hbmRcLXdlaXJkXC1iaXJkOwor5LSJID4gZ2VuZXJhbFwtdGVybVwtZm9yXC1hXC1ncm91cFwtb2ZcLWJpcmQ7Civks7AgPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXdpbGRcLWdvb3NlOwor5LOIID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC13aWxkXC1nb29zZTsKK+SxmSA+IGFcLXNtYWxsXC1raW5kXC1vZlwtdHVuYVwtb3JcLXN0dXJnZW9uOwor5LCUID4gZHJlc3NlZFwtaGFpclwtaW5cLWFcLWhvcml6b250YWxcLXdheTsKK+SwiSA+IGRyZXNzZWRcLWhhaXJcLWluXC1hXC1ob3Jpem9udGFsXC13YXk7CivkqqwgPiBzb3VuZFwtb2ZcLXByZXNzaW5nXC1zb21ldGhpbmdcLWRvd247CivkqawgPiBhblwtb3JuYW1lbnRhbFwtaXRlbVwtb25cLWFcLXNjYWJiYXJkOwor5Ke1ID4gYVwtYmlyZFwtbGlrZVwtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+SmjiA+IGFcLW1lY2hhbmljYWxcLWRldmljZVwtZm9yXC1sZWFkXC1vcmU7Civkpb4gPiB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpbEgPiB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpZkgPiBhXC1zcGVjdWx1bVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KS3ID4gYVwtbGFuY2VcLXdpdGhcLXRocmVlXC1vclwtdHdvXC1wb2ludHM7Civko6IgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SjmyA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2BID4gYVwta2luZFwtb2ZcLXdpbGRcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+SbtiA+IHdyaXRpbmdzXC1ldWxvZ2l6aW5nXC1hZGVhZFwtcGVyc29uOwor5JekID4gYVwta2luZFwtb2ZcLXdvcm1cLXByb2R1Y2VkXC1pblwtd2F0ZXI7CivkjbAgPiBhXC1wbGFndWVcLW9yXC1hXC1wZXN0aWxlbmNlXC1vZlwtZ29hdDsKK+SKiiA+IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtcmljZVwtZ3J1ZWw7CivkiYggPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47CivkiJMgPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47Civkh4ggPiB0b1wtcHV0XC1pbnRvXC1hXC1jdXBib2FyZFwtb3JcLWNsb3NldDsKK+SHgCA+IG9ybmFtZW50c1wtb2ZcLWZpbmVcLWZlYXRoZXJcLW9yXC1mdXI7CivkhbkgPiBhXC1raW5kXC1vZlwtZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+SFqSA+IGNyb29rZWRcLWFuZFwtd2luZGluZ1wtb2ZcLXRoZVwtZ3Jhc3M7CivkhLwgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SEtyA+IGFcLW1lYXN1cmVtZW50XC1lcXVhbFwtdG9cLTEyMFwtY2F0dHk7Civkg6ogPiBhXC1wbGF0Zm9ybVwtZm9yXC1zYWNyaWZpY2lhbFwtcml0ZXM7Civkgp4gPiBhXC10aG9ybnlcLXRyZWVcLWFib3V0XC0xNVwtZmVldFwtaGlnaDsKK+O6nCA+IGZpZXJjZVwtZG9nXC13aXRoXC1sb25nXC1zaGFnZ3lcLWhhaXI7CivjuokgPiBhXC1maWVyY2VcLWFuaW1hbFwtb2ZcLXRoZVwtZG9nXC10cmliZTsKK+O5oSA+IGFcLXJ1c2hcLWFuZFwtaW1wYXRpZW50XC1kaXNwb3NpdGlvbjsKK+O4oSA+IGJvYXJkXC10b1wtYmxvY2tcLXRoZVwtd2F0ZXJcLWN1cnJlbnQ7CivjuJogPiBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWRcLWFuZFwtY2xlYXI7CivjtK0gPiBpbW1lYXN1cmFibGVcLWRlcHRoXC1vclwtcHJvZnVuZGl0eTsKK+OzhiA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47GoID4gdG9cLXByZXBhcmVcLWFcLWJvZHlcLWZvclwtdGhlXC1jb2ZmaW47CivjrIcgPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1hbmNpZW50XC1jaGluYTsKK+OpvSA+IGJyYW5jaGVzXC10b1wtYmVcLWFcLXBhcmFzaXRlXC1hXC10cmVlOwor46iSID4gdG9cLWN1dFwtb3BlblwtYW5kXC1jbGVhblwtXC1cLVwtYXNcLWZpc2g7CivjorIgPiB0aGVcLTV0aFwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC3lhavljaY7Civjn6ggPiBhXC1mb3VudGFpblwtaW5cLXRoZVwtc2lkZVwtb2ZcLWFcLWhpbGw7Civjm40gPiB0b1wtaGF2ZVwtb25lJydzXC1hbWJpdGlvblwtZnVsZmlsbGVkOwor45qhID4gc3RhbmRpbmdcLXdpdGhvdXRcLWFcLXN0cmFpZ2h0XC1iYWNrOwor45qJID4gdG9cLW1ha2VcLWFcLXByb2ZpdFwtb25cLXNlbGxcLWFuZFwtYnV5Owor45mwID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivjlaMgPiBhXC1tYXJzaFwtYXRcLXRoZVwtZm9vdFwtb2ZcLXRoZVwtaGlsbHM7Civku6wgPiBhZGp1bmN0XC1wcm9ub3VuXC1pbmRpY2F0ZVwtcGx1cmFsOwor5ZGiID4gaW50ZXJyb2dhdGl2ZVwtb3JcLWVtcGhhdGljXC1maW5hbDsKK+alvCA+IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+iNryA+IGxlYWZcLW9mXC1kYWh1cmlhblwtYW5nZWxpY2FcLXBsYW50Owor6b2OID4gdGFrZVwtaW5cLWJvdGhcLWhhbmRzXC1hbmRcLW9mZmVyXC10bzsKK+S4iCA+IHVuaXRcLW9mXC1sZW5ndGhcLWVxdWFsXC0zXC4zXC1tZXRlcnM7CivmjJEgPiBhXC1sb2FkXC1jYXJyaWVkXC1vblwtdGhlXC1zaG91bGRlcnM7CivmqJMgPiBidWlsZGluZ1wtb2ZcLXR3b1wtb3JcLW1vcmVcLXN0b3JpZXM7CivnpZ0gPiBwcmF5XC1mb3JcLWhhcHBpbmVzc1wtb3JcLWJsZXNzaW5nczsKK+adiSA+IHZhcmlvdXNcLXNwZWNpZXNcLW9mXC1waW5lXC1hbmRcLWZpcjsKK+acpyA+IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor5pymID4gY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivpnLggPiBydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivnrqogPiBzbWFsbFwtYmFtYm9vXC1iYXNrZXRcLWZvclwtaG9sZGluZzsKK+mGpCA+IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7CivphbEgPiBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor6IOnID4gY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivngpUgPiB0aGVcLWJyaWNrXC1iZWRcLWluXC1ub3J0aGVyblwtY2hpbmE7CivkuqUgPiBsYXN0XC1vZlwtdHdlbHZlXC1lYXJ0aGx5XC1icmFuY2hlczsKK+eypCA+IGd1YW5nZG9uZ1wtYW5kXC1ndWFuZ3hpXC1wcm92aW5jZXM7Civnsr0gPiBkdW1wbGluZ1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZTsKK+mZhyA+IG1vdW50YWluXC1sb2NhdGVkXC1iZXR3ZWVuXC1zaGFueGk7Civpl74gPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK+mDpiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mehSA+IGxlYXRoZXJcLXN0cmFwXC1vdmVyXC1ob3JzZScnc1wtbmVjazsKK+mCuiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mToSA+IHNpY2tsZVwtZm9yXC1jdXR0aW5nXC1ncmFzc1wtb3JcLWhheTsKK+mqpyA+IGdhbGxvcFwtYWJvdXRcLXdpdGhcLWhlYWRcLXVwbGlmdGVkOwor6aqiID4gaG9yc2VcLXdpdGhcLWFcLWJsdWlzaFwtd2hpdGVcLWNvbG9yOwor6JuzID4ga2luZFwtb2ZcLXNuYWlsXC13aXRoXC1zcGlyYWxcLXNoZWxsOwor6YKzID4gYVwtZGVwYXJ0bWVudFwtaW5cLXRoZVwtc3RhdGVcLW9mXC1sdTsKK+mDoiA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+mqliA+IHR3b1wtb3V0c2lkZVwtb25lc1wtaW5cLXRocmVlXC1ob3JzZTsKK+i9uCA+IGNyb3NzXC1ib2FyZFwtYXRcLXJlYXJcLW9mXC1jYXJyaWFnZTsKK+eunCA+IGFuY2llbnRcLXN0cmluZ1wtbXVzaWNcLWluc3RydW1lbnQ7Civpg5AgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivovbkgPiBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK+agnSA+IGFcLWJ1aWxkZXInJ3NcLWZyYW1lXC1mb3JcLW1lYXN1cmluZzsKK+eNjSA+IGFuXC1hbmltYWxcLXdoaWNoXC1lYXRzXC1pdHNcLW1vdGhlcjsKK+m8lyA+IHNtYWxsXC1yZXZvbHZpbmdcLWRydW1cLXdpdGhcLWtub2JzOwor6bySID4gbGFyZ2VcLXRyaXBvZFwtY2FsZHJvblwtd2l0aFwtc21hbGw7CivptpYgPiBsYXJnZVwtd2F0ZXJmb3dsXC13aXRoXC1uYWtlZFwtaGVhZDsKK+mppCA+IGdhbGxvcFwtYWJvdXRcLXdpdGhcLWhlYWRcLXVwbGlmdGVkOwor6amEID4gaG9yc2VcLXdpdGhcLWFcLWJsdWlzaFwtd2hpdGVcLWNvbG9yOwor6amCID4gdHdvXC1vdXRzaWRlXC1vbmVzXC1pblwtdGhyZWVcLWhvcnNlOwor6aiEID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtc3dpZnRcLWhvcnNlOwor6aesID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtc3dpZnRcLWhvcnNlOwor6aSWID4gZm9vZFwtaXRlbVwtc2V0XC1vdXRcLWZvclwtc2hvd1wtb25seTsKK+mgoyA+IHRvXC12aWV3XC1vdGhlcnNcLXdpdGhcLXJhaXNlZFwtZXllczsKK+matCA+IG1vdW50YWluXC1sb2NhdGVkXC1iZXR3ZWVuXC1zaGFueGk7Civplq0gPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK+mNmCA+IHNpY2tsZVwtZm9yXC1jdXR0aW5nXC1ncmFzc1wtb3JcLWhheTsKK+mLkCA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+mGrCA+IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7CivphYggPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivphLYgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivphLQgPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1ob25hblwtcHJvdmluY2U7CivphJogPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZWJlaVwtcHJvdmluY2U7Civpg5QgPiBwbGFjZVwtbmFtZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mCvSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1oYW5cLWR5bmFzdHk7CivpgrYgPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivovaIgPiBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK+i7qyA+IGNyb3NzXC1ib2FyZFwtYXRcLXJlYXJcLW9mXC1jYXJyaWFnZTsKK+i7qCA+IGxhdHRpY2VcLXdvcmtcLW9uXC1mcm9udFwtYW5kXC1zaWRlczsKK+i4iyA+IHRoZVwtZm9vdFwtb3JcLWZlZXRcLWNhc3RcLW9mXC1hXC1wbGF5Owor6KaHID4gcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor6KWtID4gdHVja1wtdXBcLWhlbVwtb2ZcLWdhcm1lbnRcLWFuZFwtd3JhcDsKK+ijiyA+IGNvdHRvblwtY2xvdGhlc1wtb2ZcLWFcLWJveVwtc2VydmFudDsKK+ihuiA+IHNsaXRcLWluXC1nYXJtZW50XC10b1wtYWlkXC1tb3ZlbWVudDsKK+igqCA+IGFcLWtpbmRcLW9mXC1zcGlkZXJcLXdpdGhcLWxvbmdcLWxlZ3M7CivonqMgPiBteXRob2xvZ2ljYWxcLXdpbmdsZXNzXC1kcmFnb25cLW9mOwor6J6EID4ga2luZFwtb2ZcLXNuYWlsXC13aXRoXC1zcGlyYWxcLXNoZWxsOwor6IukID4gYnJhc3NpY2FcLWNhbXBlc3RyaXNcLXN1YnNwXC5cLXJhcGE7CivoiZUgPiB0d29cLWJvYXRzXC1mYXN0ZW5lZFwtc2lkZVwtYnlcLXNpZGU7CivohqsgPiB0aGVcLWZhdFwtY292ZXJpbmdcLXRoZVwtaW50ZXN0aW5lczsKK+e4lyA+IHNhY2tjbG90aFwtd29yblwtb25cLWJyZWFzdFwtZHVyaW5nOwor57OJID4gZHVtcGxpbmdcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2U7CivnsrUgPiBndWFuZ2RvbmdcLWFuZFwtZ3Vhbmd4aVwtcHJvdmluY2VzOwor57CeID4gc21hbGxcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWhvbGRpbmc7Civnr6ogPiBhXC1iYW1ib29cLWZsdXRlXC13aXRoXC1zZXZlblwtaG9sZXM7CivnnpYgPiBhXC1jYXRhcmFjdFwtb3JcLWZpbG1cLW92ZXJcLXRoZVwtZXllOwor55WkID4gcGxhY2VcLWZvclwtd29yc2hpcHBpbmdcLXRoZVwtaGF2ZW47CivnlJcgPiBlYXJ0aGVud2FyZVwtdmVzc2VsXC1pblwtdHdvXC1wYXJ0czsKK+eDsyA+IHRvXC10cmF2ZWxcLWJ5XC10aGVcLWxpZ2h0XC1vZlwtdG9yY2g7CivngZUgPiBzaG9ydFwtbmFtZVwtZm9yXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+aytCA+IGZvdWxcLWFuZFwtcG9pc29ub3VzXC1pblwtY29uZnVzaW9uOwor5qiQID4gYVwtbG9va291dFwtdHVycmV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+ajuyA+IGtpbmRcLW9mXC13b29kXC1mcm9tXC13aGljaFwtcGVyZnVtZTsKK+aejCA+IHZhcmlldHlcLW9mXC1lbG1cLXdpdGhcLXNtYWxsXC1zZWVkczsKK+WenyA+IGNsYXlcLXNoZWVwXC1idXJpZWRcLXdpdGhcLXRoZVwtZGVhZDsKK+WSoCA+IHRvXC13aGlzcGVyXC5cLXRvXC1ibGFtZVwtdG9cLXNsYW5kZXI7Civlj6cgPiB0b1wtY3V0XC1tZWF0XC1vZmZcLWF3YXlcLWZyb21cLWJvbmVzOwor5YaUID4gY2FwXC13b3JuXC1kdXJpbmdcLXRoZVwteWluXC1keW5hc3R5Owor5YCRID4gYWRqdW5jdFwtcHJvbm91blwtaW5kaWNhdGVcLXBsdXJhbDsKK+S6vCA+IHRvXC1hc3NlbWJsZVwuXC10b1wtZ2F0aGVyXC10b2dldGhlcjsKK+S5hCA+IHNoaW1lXDpcLXRvXC1maW5kXC1hXC1wbGFjZVwtdG9cLWR3ZWxsOwor5La1ID4gYVwtYmFtYm9vXC1mbHV0ZVwtd2l0aFwtc2V2ZW5cLWhvbGVzOwor5LW4ID4gdGhlXC10b2FkXC10aGF0XC1saXZlc1wtaW5cLXRoZVwtbW9vbjsKK+SzoSA+IGFcLWtpbmRcLW9mXC1iaXJkXC1pblwtYW5jaWVudFwtYm9va3M7Civksp4gPiBhXC1zZWNvbmRcLWdlbmVyYWxcLW5hbWVcLWZvclwtcGVyY2g7CivksYwgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1nbG9iZWZpc2g7CivksJ0gPiBhXC1sYXJnZVwtZWFydGhlblwtcG90XC1mb3JcLWNvb2tpbmc7CivksIAgPiBkcmVzc2VkXC1oYWlyXC1vZlwtYVwtY2hpbmVzZVwtd29tYW47CivkrrggPiB0b1wtbW92ZVwtc2xvd2x5XC1hbmRcLXRoZW5cLXN3aWZ0bHk7CivkrLsgPiB0b1wtZW50ZXJ0YWluXC1hXC1kZXBhcnRpbmdcLWZyaWVuZDsKK+SqviA+IHRvXC1kZWFsXC13aXRoXC1hZmZhaXJzXC1jYXV0aW91c2x5Owor5KqNID4gYVwtY29udGFpbmVyXC1mb3JcLWJvd3NcLWFuZFwtYXJyb3dzOwor5KijID4gbGVhdGhlclwtdG9cLWJlXC1tb2lzdGVuZWRcLWJ5XC1yYWluOwor5KaHID4gZHJlc3NlZFwtaGFpclwtb2ZcLWFcLWNoaW5lc2VcLXdvbWFuOwor5KOjID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1uYW1lXC1vZlwtYVwtcGxhY2U7Civkn5ogPiB0b1wtc2l0XC13aXRoXC10aGVcLWxlZ3NcLXNwcmVhZFwtb3V0Owor5Jy3ID4gZmVybWVudGVkXC1hbmRcLXNlYXNvbmVkXC1zb3liZWFuczsKK+ScqiA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLW9sZFwtdGltZXM7Civkm4AgPiByZWFzb25hYmxlXC1hdXRob3JpdHlcLXN0YXRlbWVudHM7CivkmIUgPiBhXC1zbWFsbFwtZ2FkZmxpZXNcLWFuZFwtbW9zcXVpdG9lczsKK+SQgyA+IGZhdFwtaW5cLXRoZVwtYWJkb21lblwtb3JcLWludGVzdGluZTsKK+SNmyA+IGFcLWtpbmRcLW9mXC10b29sXC11c2VkXC10b1wtZ2V0XC1maXNoOwor5IqkID4gdmVnZXRhYmxlXC1taXhlZFwtd2l0aFwtdGhpY2tcLXNvdXA7CivkgrIgPiBzdGFuZGFyZFwtd2VpZ2h0c1wtdXNlZFwtaW5cLXNjYWxlczsKK+SBsCA+IHRvXC1sb29rXC1pblwtYVwtZXZpbFwtb3JcLXdpY2tlZFwtd2F5Owor47yWID4gZ291cmRcLXVzZWRcLWFzXC1hXC1sYWRsZVwtb3JcLWRpcHBlcjsKK+O7qyA+IGFcLWdlbVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7Civjr60gPiBhXC1sb29rb3V0XC10dXJyZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor466HID4gYVwtYnVpbGRlcicnc1wtZnJhbWVcLWZvclwtbWVhc3VyaW5nOwor46y5ID4gdGVuZG9uc1wtb2ZcLXRoZVwtaGVlbFwtb2ZcLXRoZVwtZm9vdDsKK+OsgSA+IHRoZVwtc3VuXC1pc1wtc2hpbmluZ1wtb25cLXRoZVwtd2F0ZXI7Civjp70gPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtaGFuXC1keW5hc3R5Owor76aNID4gcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7CivvpoYgPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK++ljCA+IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+OlhiA+IGluZHVsZ2VudFwtYW5kXC13aXRob3V0XC1yZXN0cmFpbnQ7Civjl5ggPiB0b1wtYml0ZVwtdGhlXC1oYXJkXC1hbmRcLXNvbGlkXC1mb29kOwor45OiID4gdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lczsKK+OTlCA+IGZhZGVkXC1hbmRcLWZhbGxlblwtXC1cLVwtYXNcLWJsb3Nzb21zOwor45K7ID4gdG9cLWdvXC1mb3J3YXJkXC13aXRoXC1leWVzXC1jb3ZlcmVkOwor5bm5ID4gdHJ1bmtcLW9mXC10cmVlXC1vclwtb2ZcLWh1bWFuXC1ib2R5Owor5bC6ID4gY2hpbmVzZVwtbWVhc3VyZVwtYXBwcm94XC5cLScnZm9vdCcnOwor57GzID4gaHVsbGVkXC1vclwtaHVza2VkXC11bmNvb2tlZFwtcmljZTsKK+m5jyA+IGZhYnVsb3VzXC1iaXJkXC1vZlwtZW5vcm1vdXNcLXNpemU7CivlloIgPiBpbnRlcmplY3Rpb25cLXRvXC1jYWxsXC1hdHRlbnRpb247CivmvYcgPiBzb3VuZFwtb2ZcLWJlYXRpbmdcLXdpbmRcLWFuZFwtcmFpbjsKK+emuSA+IGxlZ2VuZGFyeVwtaHNpYVwtZHluYXN0eVwtZm91bmRlcjsKK+aWnyA+IHRvXC1wb3VyXC13aW5lXC1vclwtdGVhXC1pbnRvXC1hXC1jdXA7CivokLwgPiB0aGVcLXN0ZW1cLWFuZFwtY2FseXhcLW9mXC1hXC1mbG93ZXI7CivpmIAgPiBwb3dlcmZ1bFwtYW5kXC1pbmZsdWVudGlhbFwtZ3JvdXA7CivmpbcgPiBtb2RlbFwtc3R5bGVcLW9mXC1jaGluZXNlXC13cml0aW5nOwor6L6EID4gc2lkZXNcLW9mXC1jaGFyaW90XC13aGVyZVwtd2VhcG9uczsKK+S/kSA+IHdvb2RlblwtZmlndXJlXC1idXJpZWRcLXdpdGhcLWRlYWQ7CivlmLkgPiB1c2VkXC1kZXNjcmliZVwtY2xhcml0eVwtb2ZcLXZvaWNlOwor6L28ID4gaG9yaXpvbnRhbFwtd29vZGVuXC1iYXJcLWluXC1mcm9udDsKK+mmkSA+IHRpbWVcLW9mXC1mYW1pbmVcLW9yXC1jcm9wXC1mYWlsdXJlOwor5LylID4gZ2hvc3RcLW9mXC1vbmVcLWRldm91cmVkXC1ieVwtdGlnZXI7Civnu7YgPiBzaWxrXC1yaWJib25cLWF0dGFjaGVkXC1hc1wtYVwtc2VhbDsKK+msiCA+IGZpbmVcLWdyb3d0aFwtb2ZcLWhhaXJcLWN1cmx5XC1oYWlyOwor56OUID4gZG93bndhcmRcLXN0cm9rZVwtc2xhbnRpbmdcLXJpZ2h0Owor6KOiID4gZm9sZGluZ1wtcHVyc2VcLWluc2VydGVkXC1pblwtYmVsdDsKK+aeuCA+IGtpbmRcLW9mXC1hc3BlblwtZm91bmRcLWluXC1zaWNodWFuOwor6IqKID4gZXh1YmVyYW50XC1hbmRcLXZpZ29yb3VzXC1mb2xpYWdlOwor6YSEID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2hhbmRvbmc7CivpvLkgPiBhXC1raW5kXC1vZlwtaW5zZWN0aXZvcm91c1wtcm9kZW50Owor6I68ID4gYW5cLWVkaWJsZVwtd2F0ZXJcLXBsYW50XC1icmFzZW5pYTsKK+WcrCA+IHBsYXN0ZXJcLW92ZXJcLXdpdGhcLWxheWVyXC1vZlwtbXVkOwor6I6pID4gbWVtYnJhbmVcLWxpbmluZ1wtaW5zaWRlXC1vZlwtcmVlZDsKK+ivtiA+IGFuXC1leGNsYW1hdGlvblwtb2ZcLWNvbmZpcm1hdGlvbjsKK+ikmSA+IHBhcGVyXC1vclwtY2xvdGhcLXBhc3RlZFwtdG9nZXRoZXI7CivojIwgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaGFuZG9uZzsKK+m8tCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Rpdm9yb3VzXC1yb2RlbnQ7CivptosgPiBhXC1zZWFcLWJpcmRcLXdpdGhcLWFcLXdoaXRlXC1icmVhc3Q7CivptawgPiBmYWJ1bG91c1wtYmlyZFwtb2ZcLWVub3Jtb3VzXC1zaXplOwor6a+PID4gYVwtZGlhbGVjdFwuXC5cLlwuXC5cLlwuXC5cLW5hbWVcLW9mXC1maXNoOwor6aWJID4gdGltZVwtb2ZcLWZhbWluZVwtb3JcLWNyb3BcLWZhaWx1cmU7CivppYEgPiBjYXJyeVwtbWVhbFwtdG9cLXdvcmtlcnNcLWluXC1maWVsZDsKK+mWpSA+IHBvd2VyZnVsXC1hbmRcLWluZmx1ZW50aWFsXC1ncm91cDsKK+mOqyA+IG9ybmFtZW50XC1vdmVyXC10aGVcLWhvcnNlJydzXC1oZWFkOwor6LySID4gc2lkZXNcLW9mXC1jaGFyaW90XC13aGVyZVwtd2VhcG9uczsKK+i1mSA+IGdpZnRcLW9mXC1tb25leVwtaGVscFwtcGF5XC1mdW5lcmFsOwor6LO7ID4gZ2lmdFwtb2ZcLW1vbmV5XC1oZWxwXC1wYXlcLWZ1bmVyYWw7CivoqpIgPiBhblwtZXhjbGFtYXRpb25cLW9mXC1jb25maXJtYXRpb247CivoqaQgPiB0b1wtbWFrZVwtd2lsZFwtc3RhdGVtZW50c1wtdG9cLWxpZTsKK+iksyA+IGZvbGRpbmdcLXB1cnNlXC1pbnNlcnRlZFwtaW5cLWJlbHQ7CivomLQgPiB5b3VuZ1wtc2hvb3RzXC1vZlwtdGhlXC1yYXBldHVybmlwOwor6I6dID4gdG9cLWNob3BcLXN0cmF3XC1maW5lXC1mb3JcLWFuaW1hbHM7CivohaAgPiBiZXR3ZWVuXC10aGVcLXNraW5cLWFuZFwtdGhlXC1mbGVzaDsKK+e/vyA+IHN0cmVhbWVyXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+e2rCA+IHNpbGtcLXJpYmJvblwtYXR0YWNoZWRcLWFzXC1hXC1zZWFsOwor562lID4gcm91bmRcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXRcLWZvcjsKK+eXhCA+IHNjcm9mdWxvdXNcLXN3ZWxsaW5nc1wtYW5kXC1zb3JlczsKK+eOpCA+IGFcLWtpbmRcLW9mXC1nZW1cLWluZmVyaW9yXC10b1wtamFkZTsKK+eFoCA+IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWxcLlwtdG9cLXNjYWxkOwor54CfID4gc291bmRcLW9mXC1iZWF0aW5nXC13aW5kXC1hbmRcLXJhaW47CivmvY8gPiBmYXJlc2hhcmVcLXJlY2xhaW1lZFwtZnJvbVwtcml2ZXI7CivmvLwgPiBoYXZpbmdcLXRoZVwtYXBwZWFyYW5jZVwtb2ZcLWRlcHRoOwor5qyeID4gdGhlXC1sYXR0aWNlXC1vZlwtYVwtd2luZG93XC1hXC1zaWxsOwor5puaID4gdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VuXC1yaXNlczsKK+aWmiA+IGFcLXNtYWxsXC1jdXBcLW9mXC1zdG9uZVwtd2l0aFwtZWFyczsKK+aJiiA+IHVwcmlnaHRcLWJhclwtZm9yXC1mYXN0ZW5pbmdcLWRvb3I7CivmhZwgPiBuYW1lXC1vZlwtYVwtbW9ua1wtaW5cLXRhbmdcLWR5bmFzdHk7CivltKAgPiBwbGFjZVwtbmFtZVwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5bK9ID4gcGxhY2VcLW5hbWVcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+WynSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW5kb25nOwor5aCtID4gYVwtZHJ5XC1tb2F0XC1vdXRzaWRlXC1hXC1jaXR5XC13YWxsOwor5aCOID4gY2hhcmFjdGVyXC11c2VkXC1mb3JcLXBsYWNlXC1uYW1lczsKK+WauSA+IGFcLXBhcnRpY2xlXC1pbXBseWluZ1wtY29tcGxldGlvbjsKK+WMsyA+IGxhZGllc1wtdG9pbGV0XC1jYXNlXC13aXRoXC1taXJyb3I7CivliLUgPiBwdW5pc2htZW50XC1ieVwtY3V0dGluZ1wtb2ZmXC1lYXJzOwor5LKBID4gZ2VuZXJhbFwtdGVybVwtb2ZcLWFcLWtpbmRcLW9mXC1maXNoOwor5LCaID4gdGhlXC10b3BcLXBhcnRcLW9mXC10aGVcLXJpY2VcLWdydWVsOwor5K+1ID4gaGFpclwtc3R5bGVcLWZvclwtbGl0dGxlXC1jaGlsZHJlbjsKK+SvpCA+IGJvbmV3YXJlXC11c2VkXC10b1wtY29tYlwtdGhlXC1oYWlyOwor5K+SID4gdGhlXC11cHBlclwtcGFydFwtb2ZcLXRoZVwtc2hpbmJvbmU7CivkrpQgPiBhXC15b3VuZ1wtYW5kXC1mbGVldFwtZm9vdGVkXC1ob3JzZTsKK+StuiA+IGFcLWhvcnNlXC10b1wtcmFpc2VcLWl0c1wtaGVhZFwtaGlnaDsKK+SrriA+IHRvXC1iZW5kXC1vclwtbG93ZXJcLW9mXC1vbmUnJ3NcLWhlYWQ7Civkq4YgPiB0aGVcLWZyb250XC1hbmRcLWJhY2tcLW9mXC10aGVcLW5lY2s7Civkp5IgPiBzdGVwc1wtbGVhZGluZ1wtdXBcLXRvXC1hXC1idWlsZGluZzsKK+SkmyA+IGNvbXBvbmVudFwtcGFydHNcLW9mXC1hXC1jcm9zc1wtYm93Owor5KO5ID4gdG9cLWJyZXdcLTEwXC1wZXJjZW50XC1vZlwtdGhlXC13aW5lOwor5KO1ID4gdG9cLWJyZXdcLXRoZVwtd2luZVwtYVwtc2Vjb25kXC10aW1lOwor5KOsID4gdGhlXC1zaGlueVwtY29sb3JmdWxcLW9mXC10aGVcLXdpbmU7Civkor4gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXNtYWxsXC1zdGF0ZTsKK+ShgyA+IGFcLXRvb2xcLWZvclwtYnJ1c2hpbmdcLXRoZVwtdGhyZWFkOwor5JyyID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC1vbGRcLWNoaW5hOwor5JiTID4gdGhpY2tcLWJsb29kXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7Civkk78gPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtbG90dXNcLWZsb3dlcjsKK+STuSA+IHRvXC1zdHVmZlwtZnVsbFwtYW5kXC10b1wtZ3VscFwtZG93bjsKK+SNgSA+IHRoZVwtaGVtXC1vclwtYm9yZGVyXC1vZlwtYVwtZ2FybWVudDsKK+SLtCA+IHNpbGtcLWZhYnJpY3NcLXdpdGhcLW1peGVkXC1jb2xvcnM7Civki7MgPiBjbG90aFwtb3JcLXBhcGVyXC1wYXN0ZWRcLXRvZ2V0aGVyOwor5ImkID4gYVwtYmFtYm9vXC13YXJlXC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZsgPiBiYW1ib29cLWJhc2tldFwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImTID4gbWF0dHJlc3NcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SIuSA+IGFcLWJhbWJvb1wtd2FyZVwtZm9yXC13YXNoaW5nXC1yaWNlOwor5IesID4gdGhpblwtYmFtYm9vXC1sYXRoc1wta25pdHRlZFwtc2FpbDsKK+SHpyA+IHRvXC1maWxsXC1hblwtb3BlbmluZ1wtd2l0aFwtYmFtYm9vOwor5IShID4gbm9ydGhlcm5cLW1pbm9yaXR5XC1ldGhuaWNcLWdyb3VwOwor5IO2ID4gcnVnZ2VkXC1hbmRcLXVuZXZlblwtb2ZcLXRoZVwtcm9ja3M7Civkg5ogPiBydWdnZWRcLWxhbmRcLW9mXC1zYW5kXC1hbmRcLXBlYmJsZTsKK+SDgiA+IGR1bGxcLXNvdW5kXC1vZlwtdGhlXC10b2xsaW5nXC1iZWxsOwor47yhID4gYVwtc21hbGxcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoOwor47W3ID4gdHVyYnVsZW50XC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+O1jyA+IGhhdmluZ1wtdGhlXC1hcHBlYXJhbmNlXC1vZlwtZGVwdGg7CivjsrkgPiB0aGVcLWRyeVwtc29pbFwtb25cLXRoZVwtcml2ZXJcLXNpZGU7Civjsp0gPiBmaW5lXC1oYWlyXC1vZlwtYmlyZHNcLWFuZFwtYW5pbWFsczsKK+OvhSA+IHRoZVwtYnJhbmNoZXNcLWdyb3dpbmdcLWRvd253YXJkczsKK+OugiA+IGFuXC1hcHBsaWFuY2VcLXVzZWRcLXRvXC1saWZ0XC1mb29kOwor46ykID4gd2V0XC1jbG90aGVzXC1ub3RcLWNvbXBsZXRlbHlcLWRyeTsKK+OqviA+IHRvXC1jdXRcLXRoZVwtZmxlc2hcLWZyb21cLXRoZVwtYm9uZTsKK+OomSA+IHRvXC1jbGFzcFwtb3JcLWhvbGRcLXVuZGVyXC10aGVcLWFybTsKK+OmsiA+IGFcLXBhcnRpY2xlXC1leHByZXNzaW5nXC1zdXJwcmlzZTsKK+OliyA+IHNvdW5kXC1vZlwtdGhlXC1hbmd1aXNoXC1vZlwtc29ycm93Owor46SvID4gY2xldmVyXC1vclwtc21hcnRcLWluXC1hXC1zbWFsbFwtd2F5Owor46SUID4gdG9cLWNvbmNlZGVcLW9yXC1zdWJtaXRcLXdpbGxpbmdseTsKK+OjhyA+IGFcLWtpbmRcLW9mXC1iZWFzdFwtd2l0aFwtbG9uZ1wtaGFpcjsKK+OhniA+IGFcLXNhY2tcLXVzZWRcLXRvXC1mZWVkXC10aGVcLWhvcnNlczsKK+OgoyA+IGFcLW1vdW50YWluXC1pblwtamlhbmd4aVwtcHJvdmluY2U7Civjnq8gPiB0aGVcLXR1cm5pbmdcLWFyZWFcLW9mXC1hXC1tb3VudGFpbjsKK+OchiA+IGNvbW1vbmx5XC1rbm93blwtYXNcLW1vdGhlclwtaW5cLXd1Owor45maID4gcmVkXC1jb2xvcmVkXC1oYXJkXC1hbmRcLXNvbGlkXC1tdWQ7CivjmJ4gPiB5ZWxsaW5nXC1zb3VuZFwtb2ZcLXRvd2luZ1wtYVwtYm9hdDsKK+OUqSA+IGhhaXJcLW9ybm1lbnRzXC11c2VkXC1pblwtb2xkXC10aW1lOwor45SAID4gdG9cLWJyYW5kXC1jcmltaW5hbHNcLW9uXC10aGVcLWZhY2U7Civov6YgPiBjaGFyYWN0ZXJcLWZvclwtdHJhbnNsaXRlcmF0aW9uOwor5bq1ID4gYnVkZGhpc3RcLW1vbmFzdGVyeVwtb3JcLW51bm5lcnk7CivlupogPiBzZXZlbnRoXC1vZlwtdGVuXC1jeWNsaWNhbFwtc3RlbXM7CivotqMgPiB3aGF0XC1hdHRyYWN0c1wtb25lJydzXC1hdHRlbnRpb247CivnlZQgPiBib3VuZGFyeVwtcGF0aFwtZGl2aWRpbmdcLWZpZWxkczsKK+WkviA+IGJlXC13ZWRnZWRcLW9yXC1pbnNlcnRlZFwtYmV0d2VlbjsKK+i+hiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor5aS5ID4gYmVcLXdlZGdlZFwtb3JcLWluc2VydGVkXC1iZXR3ZWVuOwor5oCUID4gYVwtZGlzZWFzZVwtcmVzZW1ibGluZ1wtbmV1cm9zaXM7CivpmYwgPiBmb290XC1wYXRoXC1iZXR3ZWVuXC1yaWNlXC1maWVsZHM7CivpqoYgPiBhXC13aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor5qWjID4gY3Jvc3NiZWFtXC1hYm92ZVwtb3JcLXVuZGVyXC1nYXRlOwor55KnID4gcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtaXQ7CivohrsgPiByYW5rXC1vZG9yXC1cKG9mXC1zaGVlcFwtb3JcLWdvYXRzXCk7CivnjpEgPiBwZWFybFwtdGhhdFwtaXNcLW5vdFwtcXVpdGVcLXJvdW5kOwor5ZSiID4gZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpYIgPiBhXC1yYWZ0XC5cLXRvXC1oZXdcLlwtdG9cLWZlbGxcLXRyZWVzOwor54qSID4gZW50ZXJ0YWluXC12aWN0b3Jpb3VzXC1zb2xkaWVyczsKK+efjSA+IGxvb2tcLWFib3V0XC1pblwtZnJpZ2h0XC1vclwtYWxhcm07Civmk6QgPiB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC1maW5nZXJzOwor6IqhID4gcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJsaWx5Owor57G8ID4gbm9uXC1nbHV0aW5vdXNcLWxvbmdcLWdyYWluXC1yaWNlOwor5qGhID4gYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+m7uyA+IHNwZWNpYWxcLXBhdHRlcm5cLW9mXC1lbWJyb2lkZXJ5Owor5bWdID4gZ291bG91XC1tb3VudGFpblwtcGVha1wtaW5cLWh1bmFuOwor5Z6tID4gY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor56GWID4gXDxhcmNoXD5cLXRvd25cLWluXC1oZWJlaVwtcHJvdmluY2U7CivpgqEgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaWNodWFuOwor6K6gID4gc2ltcGxpZmllZFwta2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivlmbsgPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eWrCA+IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor6JSfID4gZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor5Z6nID4gdmFyaWFibGVcLXVuaXRcLW9mXC1sYW5kXC1tZWFzdXJlOwor6ayPID4gYVwtY29pZmZ1cmVcLW9uXC10b3BcLW9mXC10aGVcLWhlYWQ7CivnrZggPiBcKGFcLW1lYXN1cmVcLW9mXC13aWR0aFwtb2ZcLWNsb3RoXCk7CivnvJEgPiBjb3JkXC1iaW5kaW5nXC1vblwtaGlsdFwtb2ZcLXN3b3JkOwor57CWID4gYmFtYm9vXC10cmFwXC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5bqLID4gYVwtY3VwYm9hcmRcLW9yXC1wYW50cnlcLXRvXC1zdG9yZTsKK+eUjSA+IHJhZnRlcnNcLXN1cHBvcnRpbmdcLXJvb2ZcLXRpbGVzOwor6ae5ID4gYmxhY2tcLWhvcnNlXC13aXRoXC1hXC13aGl0ZVwtZmFjZTsKK+mnsSA+IGFcLXdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivppY4gPiB3aW5lXC1hbmRcLWZvb2RcLWVhdGVuXC13aXRoXC13aW5lOwor6YeEID4gd2luZVwtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mHgSA+IHNtZWFyXC13aXRoXC1ibG9vZFwtaW5cLXNhY3JpZmljZTsKK+i/pyA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtYXJyYW5nZTsKK+i9mCA+IHRlYXJcLWFzdW5kZXJcLWJldHdlZW5cLWNoYXJpb3RzOwor6LybID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdmVoaWNsZXM7CivovJkgPiBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdlcmVcLXdlYXBvbnM7CivovIwgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC12ZWhpY2xlczsKK+ipgCA+IGdhcnJ1bG91c1wtdG9cLXdoaXNwZXJcLlwtdG9cLWpva2U7CivoqLkgPiB0b1wtYmVndWlsZVwtd2l0aFwtZmFsc2VcLXN0b3JpZXM7Civol4ogPiBhXC1raW5kXC1vZlwtYmVhblwtd2l0aFwtZmxhdFwtcG9kczsKK+iIoCA+IGxvbmdcLW5hcnJvd1wta25pZmVcLXNoYXBlZFwtYm9hdDsKK+e/oyA+IGZlYXRoZXJzXC11c2VkXC1kZWNvcmF0ZVwtY29mZmluOwor57iTID4gb3JhbmdlXC1vclwtcmVkZGlzaFwteWVsbG93XC1zaWxrOwor57exID4gY29yZFwtYmluZGluZ1wtb25cLWhpbHRcLW9mXC1zd29yZDsKK+ezjyA+IHJpY2VcLWdyaXRzXC1sZWZ0XC1hZnRlclwtaHVsbGluZzsKK+evmCA+IGFcLXV0ZW5zaWxcLXVzZWRcLXRvXC1maWx0ZXJcLXdpbmU7Civnp4ggPiBub25cLWdsdXRpbm91c1wtbG9uZ1wtZ3JhaW5cLXJpY2U7CivnoaQgPiBcPGFyY2hcPlwtdG93blwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+efsCA+IGFycm93XC13aXRoXC1hdHRhY2hlZFwtc2lsa1wtY29yZDsKK+eZpyA+IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor55KjID4gcGVhcmxcLXRoYXRcLWlzXC1ub3RcLXF1aXRlXC1yb3VuZDsKK+eOgyA+IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd1wuXC1jaGluYTsKK+eMhyA+IHRoZVwtc2NyZWFtXC1vclwtcm9hclwtb2ZcLWFcLXRpZ2VyOwor54m4ID4gdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzOwor5ruZID4gd2F0ZXJzXC1jb252ZXJnaW5nXC10b1wtb25lXC1zcG90Owor5ruYID4gY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5qmIID4gYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+akiiA+IHRvXC1maXRcLWFcLWhhbmRsZVwtaW50b1wtYVwtc29ja2V0Owor5pqQID4gdGhlXC1icmlnaHRcLXNoaW5pbmdcLW9mXC10aGVcLXN1bjsKK+aYsyA+IHRoZVwtZGVjbGluaW5nXC1zdW5cLWluXC10aGVcLXdlc3Q7CivmjawgPiBwcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtaGFuZHM7CivmipQgPiB0YWtlXC1vclwtaG9sZFwtdXBcLWluXC1ib3RoXC1oYW5kczsKK+W2gSA+IGdvdWxvdVwtbW91bnRhaW5cLXBlYWtcLWluXC1odW5hbjsKK+W0viA+IHBsYWNlXC1uYW1lXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WzqyA+IG1vdW50YWluXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5aeFID4gd29tYW5cLWF0XC10aW1lXC1vZlwtbWVuc3RydWF0aW9uOwor5aO8ID4gcGFsYWNlXC1jb3JyaWRvclwtb3JcLXBhc3NhZ2V3YXk7Civlo40gPiBtb2F0XC1hcm91bmRcLWFcLWNpdHlcLlwtYVwtY2hhbm5lbDsKK+WfoSA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+WXqiA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor5ZepID4gZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivllakgPiBwYXJ0aWNsZVwtaW1wbHlpbmdcLXByb2JhYmlsaXR5Owor5Y+QID4gdG9cLXByaWNrXC1hXC1kb2dcLXRvXC1tYWtlXC1oaW1cLWdvOwor5Y2QID4gc3dhc3Rpa2FcLWZvdXJ0aFwtb2ZcLWF1c3BpY2lvdXM7CivljY0gPiBzd2FzdGlrYVwtZm91cnRoXC1vZlwtYXVzcGljaW91czsKK+S2lSA+IGlycmVndWxhclwtYW5kXC1wcm9taW5lbnRcLXRlZXRoOwor5LWYID4gZG9zZW4nJ3RcLXRcLXN0aWNrXC10b1wtZWFjaFwtb3RoZXI7CivksrUgPiBhXC1nZW5lcmFsXC1uYW1lXC1vZlwtc21hbGxcLWJpcmRzOwor5K+GID4gc21hbGxcLWFuZFwtdGhpblwtcGllY2VcLW9mXC1ib25lczsKK+SrsiA+IHRoaW5cLWFuZFwtc2lja2x5XC1pblwtYXBwZWFyYW5jZTsKK+SrpCA+IGJldHdlZW5cLXRoZVwtZXllYnJvd3NcLWFuZFwtZXllczsKK+SroSA+IGFcLWxvbmdcLXNoYXBlXC1vZlwtaGVhZFwtYW5kXC1mYWNlOwor5KuLID4gZmVtYWxlXC1hdHRlbmRhbnRzXC1vclwtc2VydmFudHM7Civkp5AgPiBhXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivkpaMgPiBhblwtaW5zdHJ1bWVudFwtZm9yXC1ib3JpbmdcLXdvb2Q7CivkpYkgPiB0aGVcLWN1cnZlZFwtaXJvblwtcGFydFwtb2ZcLWFcLWhvZTsKK+SkkiA+IHdpbmVcLW1hZGVcLWZyb21cLWdsdXRpbm91c1wtcmljZTsKK+SkjSA+IHJvdHRlblwtcGFzdGVcLW9yXC1zb3liZWFuXC1zYXVjZTsKK+SgvSA+IGhlaWdodFwtb3JcLXN0YXR1cmVcLW9mXC1hXC1wZXJzb247CivkoLEgPiB0b1wtd2Fsa1wtc2xvd2x5XC1hbmRcLWNhdXRpb3VzbHk7Civkn6cgPiBzb3VuZFwtb2ZcLXRyZWFkaW5nXC1vclwtc3RlcHBpbmc7CivknocgPiBnaWZ0c1wtdG9cLXN1cGVyaW9yc1wtb3JcLWZyaWVuZHM7Civknb0gPiBuYW1lXC1vZlwtYVwtcGVyc29uXC1pblwtb2xkXC1jaGluYTsKK+SdmSA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxpa2VcLWFcLXRpZ2VyOwor5J2XID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivknIggPiB0b1wtc3BlYWtcLW9uXC1iZWhhbGZcLW9mXC1hbm90aGVyOwor5JizID4gYVwtZ2FybWVudFwtb2ZcLXNpbmdsZVwtdGhpY2tuZXNzOwor5I+8ID4gd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2Q7CivkjqIgPiB0b1wtbWVhc3VyZVwtYnlcLXBpbnRzXC1hbmRcLXBlY2tzOwor5I6RID4gZmx5aW5nXC1vdmVyXC10aGVcLXdhdGVyXC1zdXJmYWNlOwor5I2uID4geW91bmdcLWdvYXRcLXVuZGVyXC1vbmVcLXllYXJcLW9sZDsKK+SNgiA+IHRvb2xzXC10b1wtZHJhd1wtd2F0ZXJcLW9yXC1saXF1aWQ7CivkjL8gPiB0aGVcLWJyZWFkdGhcLW9mXC1jbG90aFwtb3JcLXBhcGVyOwor5IyXID4gdGhlXC1sZWZ0XC1vdmVyXC1vZlwtZHJhd2luZ1wtc2lsazsKK+SMiCA+IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYVwtbGFzc287CivkiaUgPiBhXC1zbWFsbFwtYmFza2V0XC1mb3JcLWNob3BzdGlja3M7CivkhrogPiB3aGlybGluZ1wtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivkhaIgPiBtYXR1cmVcLW9yXC1yaXBlblwtb2ZcLXRoZVwtZ3JhaW5zOwor47+2ID4gdGhlXC1zaWRlc1wtb2ZcLWFcLXNob2VcLW9yXC1ndXR0ZXI7CivjvbAgPiBjYXJ2ZWRcLXdpbmRvd1wtZnJhbWVcLW9uXC1hXC1kb29yOwor47mvID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivjuYIgPiB1bnRhbWVkXC1hbmRcLWluZG9jaWxpdHlcLWNhdHRsZTsKK+O0hCA+IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWluXC1hXC10dXJuZWQ7CivjsIkgPiB0aGVcLWhhemVsXC1udXRcLW9yXC1maWxiZXJ0XC10cmVlOwor462fID4gdG9ydHVyZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46uQID4gZGlzdGFudFwtYW5kXC1pbmRpc3Rpbmd1aXNoYWJsZTsKK+OhuyA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtc3RhdGU7Civjm5AgPiB3aWZlXC1vZlwtb25lJydzXC1lbGRlcicnc1wtYnJvdGhlcjsKK+OahiA+IHRvXC1kb1wtc29tZXRoaW5nXC1pblwtYW5cLW9sZFwtd2F5Owor45afID4gdG9cLWRlbGl2ZXJcLW92ZXJcLXRvXC1wZXJzb25hbGx5Owor5Lu2ID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtYXJ0aWNsZTsKK+WQlyA+IGZpbmFsXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+m6vSA+IGludGVycm9nYXRpdmVcLWZpbmFsXC1wYXJ0aWNsZTsKK+efoyA+IHBhcnRpY2xlXC1vZlwtY29tcGxldGVkXC1hY3Rpb247CivkuZIgPiB1c2VkXC13aXRoXC1wb25nXC1mb3JcLXBpbmdcLXBvbmc7CivkuZMgPiB1c2VkXC13aXRoXC1waW5nXC1mb3JcLXBpbmdcLXBvbmc7CivlkpogPiB1c2VkXC1hc1wtZGVzY3JpcHRpb25cLW9mXC1zb3VuZDsKK+eQhSA+IGFcLXZhcmlldHlcLW9mXC13aGl0ZVwtY2FybmVsaWFuOwor5a2wID4gd2hvXD9cLXdoaWNoXD9cLXdoYXRcP1wtd2hpY2hcLW9uZVw/Owor5oiKID4gZmlmdGhcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmuLIgPiBhZGRcLXJlcGVhdGVkXC13YXNoZXNcLW9mXC1jb2xvcjsKK+WSqyA+IGZvb3RcLW1lYXN1cmVcLW9mXC16aG91XC1keW5hc3R5Owor6aW3ID4gcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivmsbYgPiBhXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WPgSA+IGJhbmtcLWZvcm1cLW9mXC1udW1lcmFsXC0nJ3RocmVlJyc7Civlo6wgPiBuaW50aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+afqSA+IGNvZmZpblwtd2hpY2hcLWNvbnRhaW5zXC1jb3Jwc2U7CivmoaAgPiB0aGVcLWZvcmtpbmdcLWJyYW5jaFwtb2ZcLWFcLXRyZWU7CivnlI8gPiBhXC1zcXVhdFwtamFyXC1mb3JcLWhvbGRpbmdcLXdpbmU7CivnrJ4gPiBiYW1ib29cLXJvZFwtdXNlZFwtZm9yXC1iZWF0aW5nczsKK+mYlyA+IGFcLXBsYWNlXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6ZOJID4gZGV2aWNlXC1mb3JcLWNhcnJ5aW5nXC1hXC10cmlwb2Q7Civop6UgPiBhXC1jdXBcLW1hZGVcLW9mXC1ob3JuXC1vYnN0aW5hdGU7Civoo6MgPiBkcmF3XC1vbmUnJ3NcLWhhbmRzXC1pbnRvXC1zbGVldmU7CivltIMgPiBtb3VudGFpblwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor572YID4gc2NyZWVuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivmsIcgPiB0aGlja1wtcm91Z2hcLXNlcmdlXC1mcm9tXC10aWJldDsKK+WftCA+IHNvaWxcLXdpdGhcLWxhcmdlXC1jbGF5XC1jb250ZW50Owor5pi0ID4gb25lXC1vZlwtdGhlXC0yOFwtY29uc3RlbGxhdGlvbnM7Civoj7kgPiBzYWx0ZWRcLW9yXC1waWNrbGVkXC12ZWdldGFibGVzOwor6bq8ID4gaW50ZXJyb2dhdGl2ZVwtZmluYWxcLXBhcnRpY2xlOwor6bWtID4gYVwtc21hbGxcLWJpcmRcLXdpdGhcLWJsYWNrXC1uZWNrOwor6aWfID4gcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivppIkgPiByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+makiA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLW1vdW50YWluOwor6ZeQID4gYVwtcGxhY2VcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivpiYkgPiBkZXZpY2VcLWZvclwtY2FycnlpbmdcLWFcLXRyaXBvZDsKK+mGgSA+IGFcLWtpbmRcLW9mXC1ncmVlblwtY29sb3JlZFwtd2luZTsKK+mCvyA+IGFcLXN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6L2WID4gZnJhbWV3b3JrXC1vZlwtbGF0dGljZVwtb25cLWNhcnQ7Civop7UgPiBhXC1jdXBcLW1hZGVcLW9mXC1jb3JuXC1vYnN0aW5hdGU7CivopZ0gPiBkcmF3XC1vbmUnJ3NcLWhhbmRzXC1pbnRvXC1zbGVldmU7CivogIcgPiB3cmlua2xlZFwtZmFjZVwtb2ZcLXRoZVwtZWxkZXJseTsKK+e+tCA+IHJhbmtcLW9kb3VyXC1vZlwtc2hlZXBcLW9yXC1nb2F0czsKK+e1gyA+IHN0cmluZ1wtb25cLW11c2ljYWxcLWluc3RydW1lbnQ7CivnrbsgPiBwbGFjZVwtbmFtZVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+ermiA+IHN0YW5kXC1hbmRcLXdhaXRcLWZvclwtbG9uZ1wtdGltZTsKK+edmSA+IHRvXC1yb2xsXC10aGVcLWV5ZWJhbGxzXC10b1wtbG9vazsKK+eRgiA+IFwoc3RvbmVcLXdoaWNoXC1yZXNlbWJsZXNcLWphZGVcKTsKK+eHuiA+IHRoZVwtZHJ5XC1hdFwtdGhlXC1maXJlXC10b1wtcm9hc3Q7CivngYkgPiBhXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+eAlCA+IHJpdmVyXC1uYW1lXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5rGnID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmdkb25nOwor5rCMID4gdGhpY2tcLXJvdWdoXC1zZXJnZVwtZnJvbVwtdGliZXQ7CivmqbUgPiB3b29kXC1wbGFjZWRcLXVuZGVyXC1yb29mXC10aWxlczsKK+akjyA+IHRoZVwtZm9ya2luZ1wtYnJhbmNoXC1vZlwtYVwtdHJlZTsKK+abiCA+IHR3aWxpZ2h0XC1qdXN0XC1iZWZvcmVcLXN1bnJpc2U7Civml58gPiBhblwtbWlsaXRhcnlcLWZsYWdcLW9hXC1zdGFuZGFyZDsKK+aJqCA+IHBpY2tcLXVwXC13aXRoXC1mb3JrXC1vclwtcGluY2VyczsKK+aJoCA+IHBpY2tcLXVwXC13aXRoXC1mb3JrXC1vclwtcGluY2VyczsKK+W5sCA+IGN1cnRhaW5cLWF0XC1mcm9udFwtb2ZcLWNhcnJpYWdlOwor5bSNID4gbW91bnRhaW5cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+W0gCA+IHBsYWNlXC1uYW1lXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor5aiAID4gbmFtZVwtb2ZcLWFcLWNvbmN1YmluZVwtb2ZcLWRpXC1rdTsKK+WfhCA+IHdoaXJsaW5nXC1vZlwtZHVzdFwtaW5cLXRoZVwtd2luZDsKK+WXjiA+IGZpbmFsXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+S1oCA+IHJ1c2hlc1wtdXNlZFwtZm9ybVwtbWFraW5nXC1tYXRzOwor5LONID4gYVwta2luZFwtb2ZcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor5LGxID4gYVwta2luZFwtb2ZcLXNsaXBwZXJ5XC1sb25nXC1maXNoOwor5K6HID4gYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtdGhpZ2g7CivkrKAgPiB0aGVcLWZhbGxpbmdcLW9mXC1zbm93XC1hbmRcLXJhaW47Civkqq0gPiBhXC1raW5kXC1vZlwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SqiSA+IG1ldGFsXC1kZWNvcmF0aW9uXC1vblwtYVwtaGFsdGVyOwor5KmhID4gYVwta2luZFwtb2ZcLWJvb3RzXC1pblwtb2xkXC10aW1lczsKK+SmnCA+IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLW9sZFwtdGltZXM7CivkpbogPiBuYW1lXC1vZlwtYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7CivkpZUgPiB0aGVcLWJsYWRlXC1vclwtZWRnZVwtb2ZcLWFcLXNwYWRlOwor5KSJID4gZW1wdGllZFwtdGhlXC1kcmlua1wtY29tcGxldGVseTsKK+SjoSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLW9sZFwtdGltZXM7Civko48gPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KK8ID4gbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtb2xkXC10aW1lczsKK+ShkSA+IHRoZVwtcmltXC1vclwtZmVsbG9lXC1vZlwtYVwtd2hlZWw7CivkoLQgPiB3aXRoXC1hXC1zeW1tZXRyaWNcLXdlbGxcLWZvcm1lZDsKK+SdtSA+IHRvXC10aGFua1wtd2l0aFwtbW9uZXlcLW9yXC1naWZ0czsKK+SZlyA+IGFcLXN3YWRkbGluZ1wtY2xvdGhcLWZvclwtaW5mYW50Owor5Ji7ID4gY3VydGFpblwtb25cLWFcLWNhcnJpYWdlXC1vclwtY2FyOwor5Ji6ID4gYVwtc2VhbVwtd2hpY2hcLWhhc1wtY29tZVwtdW5zZXduOwor5Ji1ID4gaGlzc2luZ1wtc291bmRcLW9mXC10aGVcLWNsb3RoZXM7CivklJsgPiBmaWJyb3VzXC1wbGFudFwtb2ZcLXdoaWNoXC1jbG90aDsKK+STnCA+IHNhbHRlZFwtb3JcLXBpY2tsZWRcLXZlZ2V0YWJsZXM7CivkkbkgPiBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1zaGlwczsKK+SNoCA+IHR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IyLID4gYVwtaGVyY2hpZWZcLWh1bmdcLWF0XC10aGVcLXdhaXN0Owor5IupID4gcHJldHR5XC1hbmRcLWZpbmVcLXNpbGtcLWZhYnJpY3M7Civki48gPiB0aGlja1wtYW5kXC1iaWdcLXJvcGVzXC1vclwtY29yZHM7Civki4sgPiBhXC1raW5kXC1vZlwtc3ByaW5nXC1maXNoaW5nXC1uZXQ7CivkhrYgPiBub2lzZVwtb2ZcLWFcLW1vdXNlXC1pblwtdGhlXC1jYXZlOwor5IWzID4gc3RhbGtcLW9mXC10aGVcLXBhbmljbGVkXC1taWxsZXQ7Civkha0gPiBhXC12YXJpZXR5XC1vZlwtcGFuaWNsZWRcLW1pbGxldDsKK+SFoyA+IGFcLXZhcmlldHlcLW9mXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWMID4gc3RhbGtcLW9mXC13aGVhdFwtb3JcLXJpY2VcLXBsYW50Owor5IOLID4gYVwtZmluZVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgrUgPiBzb3VuZFwtb2ZcLWJ1bXBpbmdcLW9yXC1zdHJpa2luZzsKK+SCryA+IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IKrID4gbm9pc2VcLW9mXC1zdG9uZXNcLXJvbGxpbmdcLWRvd247CivkgqUgPiBhXC1maW5lXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SAsyA+IG5vdFwtdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor4760ID4gdGhlXC1lcnl0aGVtYVwtb2ZcLWFjbmVcLXJvc2FjZWE7CivjuaUgPiBhXC15ZWxsb3dcLWRvZ1wtd2l0aFwtYmxhY2tcLWhlYWQ7CivjuYEgPiBnZW5lcmFsbHlcLWNhbGxlZFwtdGhlXC1hbmltYWxzOwor47W1ID4gc3dpZnRcLWN1cnJlbnRzXC1vZlwtdGhlXC1zdHJlYW07CivjtY4gPiBhXC1tb3VudGFpblwtc3RyZWFtXC1vclwtdG9ycmVudDsKK+O0miA+IHRoZVwtc21hbGxcLWRpdGNoXC1pblwtdGhlXC1maWVsZDsKK+OwhiA+IGFuXC1pbnN0cnVtZW50XC10b1wtYmxvd1wtYVwtZmlyZTsKK+OwgSA+IGFcLXRyZWVcLXdpdGhcLXNsYW50ZWRcLWJyYW5jaGVzOwor46+zID4gYVwta2luZFwtb2ZcLXRvb2xcLXRvXC1hZGp1c3RcLWJvdzsKK+OutCA+IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXNoaXBzOwor46WcID4gdW5zdWNjZXNzZnVsXC1pblwtb25lJydzXC1jYXJlZXI7CivjobEgPiB0b1wtY2F1dGVyaXplXC1ieVwtYnVybmluZ1wtbW94YTsKK+OgsSA+IHRvXC1zZXRcLXdpdGhcLXRoZVwtbGVnc1wtY2xvc3NlZDsKK+OcjCA+IGFcLWRpZmZlcmVudFwtbmFtZVwtZm9yXC1icmVhc3RzOwor45m+ID4gaGlsbHNcLXdpdGhcLWxvdHNcLW9mXC1iaWdcLXJvY2tzOwor45mbID4gYVwtcGVyc29uJydzXC1uYW1lXC1pblwtb2xkXC10aW1lczsKK+OXviA+IHRvXC1naXZlXC12ZW50XC10b1wtdGhlXC1mZWVsaW5nczsKK+OXhiA+IHNvdW5kXC1vZlwtdGhlXC1yaW5nZWRcLXBoZWFzYW50Owor45OzID4gdXNlXC1rbmlmZVwtdG9cLXNwbGl0XC1zb21ldGhpbmc7CivjkZ8gPiBpbnNpbmNlcmVcLWFuZFwtY3VubmluZ1wtcGVyc29uOwor5ZWmID4gZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uOwor57u8ID4gYXJyYW5nZVwtdGhyZWFkc1wtZm9yXC13ZWF2aW5nOwor5outID4gd2lwZVwtYXdheVwtc3RhaW5zXC13aXRoXC1jbG90aDsKK+WPriA+IGV4aG9ydFwtb3JcLWVuam9pblwtcmVwZWF0ZWRseTsKK+aInyA+IGhhbGJlcmRcLXdpdGhcLWNyZXNjZW50XC1ibGFkZTsKK+WHmyA+IHRvXC1zaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5qCLID4gbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWhvdXNlOwor6aumID4gZmxvd2luZ1wtaGFpclwtb2ZcLXlvdW5nXC1jaGlsZDsKK+etnSA+IHN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5LiZID4gdGhpcmRcLW9mXC10aGVcLWhlYXZlbmx5XC1zdGVtczsKK+aygiA+IHJpdmVyXC1pblwtc291dGhlYXN0XC1zaGFuZG9uZzsKK+esiCA+IGJhbWJvb1wtYm94XC11c2VkXC1jYXJyeVwtYm9va3M7Civnk6IgPiBsYWRsZVwtbWFkZVwtZnJvbVwtZHJpZWRcLWdvdXJkOwor5ZGXID4gZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uOwor57CnID4gcmVlZFwtb2ZcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor6JufID4gc2NhbHlcLWRyYWdvblwtd2l0aFwtZm91clwtbGVnczsKK+aVlSA+IGFuXC1pbXBlcmlhbFwtb3JkZXJcLW9yXC1kZWNyZWU7Civoo58gPiBhXC1jYXNzb2NrXC1vclwtcm9iZVwtb2ZcLWFcLW1vbms7CivnorQgPiBjaGlwcGVkXC1lZGdlXC1vZlwtYVwtY29udGFpbmVyOwor55i0ID4gbWFsYXJpYVwtcGVzdGlsZW50aWFsXC12YXBvcnM7CivnurYgPiBncmVlblwtc2lsa1wtdGhyZWFkXC1vclwtdGFzc2VsOwor572hID4gdGhlXC1uYW1lXC1vZlwtYVwtY2VydGFpblwtc3RhcnM7CivnmbggPiBsYXN0XC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5qmHID4gYVwtc2xlZGdlXC1mb3JcLXRyYW5zcG9ydGF0aW9uOwor55qLID4gdGhlXC1oaWdoXC1sYW5kXC1hbG9uZ1wtYVwtcml2ZXI7CivmvY0gPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmtJkgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+eNoCA+IHRvXC1odW50XC1hdFwtbmlnaHRcLWJ5XC10b3JjaGVzOwor6bqSID4gbGVnZW5kYXJ5XC1hdXNwaWNpb3VzXC1hbmltYWw7Civnj6kgPiB0aGVcLXRvcFwtZ2VtXC1vZlwtdGhlXC1wZW5kYW50czsKK+iwpSA+IHRvXC1jb25mZXJcLXBvc3RodW1vdXNcLXRpdGxlczsKK+enqyA+IGdsdXRpbm91c1wtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+ervSA+IGFuY2llbnRcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor5bSuID4gXChlbGVtZW50XC1pblwtbW91bnRhaW5cLW5hbWVzXCk7CivmhIAgPiB0b1wtY2hhbmdlXC1vbmUnJ3NcLWNvdW50ZW5hbmNlOwor6YSiID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtaG9uYW47CivnmY0gPiB1bmhlYWx0aHlcLW1hcmtzXC1vblwtdGhlXC1za2luOwor6YSeID4gY291bnR5XC1pblwtemhlamlhbmdcLXByb3ZpbmNlOwor6ZuSID4gYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtbWFuZTsKK+aXkiA+IGZyaW5nZXNcLW9mXC1wZWFybHNcLW9uXC1jcm93bnM7CivnkIogPiBhXC1wbGFjZVwtaW5cLWVhc3Rlcm5cLXNoYW5kb25nOwor6JqoID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iZWV0bGVcLWNhc2g7Civmr7MgPiBmaW5lXC1oYWlyXC1vclwtZnVyXC1vblwtYW5pbWFsczsKK+eYpSA+IHRvXC1yZWNvdmVyXC1mcm9tXC1hbnlcLWRpc2Vhc2U7CivmuJEgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+a1iCA+IHJpdmVyXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WYpyA+IFwocGhvbmV0aWNcKVwtYXNcLWluXC1weXJpbWlkaW5lOwor6bW+ID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1jcmFuZTsKK+muqCA+IGVwaW5lcGhlbHVzXC1zZXB0ZW1mYXNjaWF0dXM7Civpo6YgPiB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLWdydWVsOwor6ZuKID4gdGhlXC1jcm93XC1vZlwtYVwtbWFsZVwtcGhlYXNhbnQ7CivpmrogPiBhXC1iaXJkXC1mbHlpbmdcLWhpZ2hcLWFtYml0aW9uOwor6YaxID4gdG9cLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7CivphpcgPiB0b1wtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mFliA+IHdpbmVcLXdpdGhcLWJpcmRcLXBvaXNvblwtYWRkZWQ7CivphL8gPiBjb3VudHlcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivphKkgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivphI0gPiBhXC10b3duXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6LmaID4gdHJlYWRcLXRocm91Z2hcLW11ZFwtYW5kXC13YXRlcjsKK+ismiA+IHRvXC1jb25mZXJcLXBvc3RodW1vdXNcLXRpdGxlczsKK+ikmCA+IGNlcmVtb25pYWxcLWdvd25zXC1vZlwtYVwtcXVlZW47Civon7AgPiBzbWFsbFwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6JuVID4gdGhlXC1jb21tb25cLWludGVzdGluYWxcLXdvcm1zOwor6IK3ID4gYXJlYVwtYmV0d2Vlblwtd2Fpc3RcLWFuZFwtaGlwczsKK+e2uCA+IGdyZWVuXC1zaWxrXC10aHJlYWRcLW9yXC10YXNzZWw7CivntpwgPiBhcnJhbmdlXC10aHJlYWRzXC1mb3JcLXdlYXZpbmc7CivnsYQgPiBhXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor566PID4gc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civnro4gPiBhbmNpZW50XC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+etjiA+IHRoaW5cLW91dHNpZGVcLXNraW5cLW9mXC1iYW1ib287CivnnqQgPiB0b1wtYmxpbmtcLW9yXC10d2l0Y2hcLXRoZVwtZXllczsKK+eakCA+IHRoZVwtaGlnaFwtbGFuZFwtYWxvbmdcLWFcLXJpdmVyOwor5r+wID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5r6gID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmc7CivmuZ4gPiByaXZlclwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7Civmt6AgPiBsdXh1cmlhbnRcLVwob2ZcLXdhdGVyXC1wbGFudHNcKTsKK+a1sCA+IGF0dGVuZFwtXChvZmZpY2lhbFwtZnVuY3Rpb25zXCk7Civms5EgPiB0aGVcLXZpdHJlb3VzXC1nbGF6ZVwtb25cLWNoaW5hOwor5q6oID4gdG9cLW9wZW5cLWFzXC1hblwtdWxjZXJcLW9yXC1zb3JlOwor5p6PID4gYVwtdmFyaWV0eVwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+aXiCA+IGZyaW5nZXNcLW9mXC1wZWFybHNcLW9uXC1jcm93bnM7CivmkIcgPiB0b1wtcHJlc3NcLWRvd25cLXdpdGhcLXRoZVwtaGFuZDsKK+W8uCA+IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor5begID4gc3RyZWFtc1wtcnVubmluZ1wtdW5kZXJncm91bmQ7CivltZsgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivltLMgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivltJkgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivltJggPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivltJAgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivloLMgPiBsYW5kXC1hbGxvdG1lbnRcLWZldWRhbFwtbm9ibGU7CivlmZUgPiB0b1wtc3BlYWtcLWZhbHNlbHlcLW9yXC13cm9uZ2x5Owor5ZmFID4gdG9cLXNwZWFrXC1mYWxzZWx5XC1vclwtd3JvbmdseTsKK+S4qSA+IHRvXC1qb2luXC1vclwtY29ubmVjdFwtdGhlXC12aW5lOwor5LiSID4gdGhlXC1wZXJpb2RcLWZyb21cLTFcLXRvXC0zXC1hXC5tXC47CivktYUgPiB0b1wtZXh0cmFjdFwtYnlcLWFwcGx5aW5nXC1oZWF0Owor5LSzID4gZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+S0rSA+IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7Civks54gPiBiaXJkc1wtZmx5aW5nXC1hbGxcLWRpcmVjdGlvbnM7Civks4ogPiBhXC13aWxkXC1kdWNrXC1saWtlXC13YXRlclwtYmlyZDsKK+SzgyA+IGFcLWtpbmRcLW9mXC1waG9lbml4XC1saWtlXC1iaXJkOwor5LOBID4gYVwtd2lsZFwtZHVja1wtbGlrZVwtd2F0ZXJcLWJpcmQ7CivkqrcgPiB0b1wtdG9pbFwtb3JcLWxhYm9yXC1zZWR1bG91c2x5Owor5KqHID4gY3VzaGlvbmVkXC1zZWF0XC1vblwtYVwtdmVoaWNsZTsKK+SpvyA+IGFcLWJpZ1wtZHJ1bVwtdXNlZFwtaW5cLXRoZVwtYXJteTsKK+SnmCA+IGFcLWxvd1wtd2FsbFwtb25cLXRoZVwtcm9hZFwtc2lkZTsKK+SmsiA+IGVhdmVzXC1vZlwtYVwtYW5jZXN0cmFsXC10ZW1wbGU7CivkpLsgPiBoZWF2eVwtaXJvblwtcGFydFwtb2ZcLWFcLXBsb3VnaDsKK+SjsiA+IHRvXC1oZWF0XC10aGVcLXdpbmVcLW92ZXJcLW5pZ2h0Owor5KKvID4gdG9cLWNob29zZVwtb3JcLXNlbGVjdFwtY2FyZWZ1bDsKK+SgiyA+IGJlbGxcLXNoYXBlZFwtd2l0aFwtbGFyZ2VcLWJhc2U7Civkn64gPiB0b1wtY3Jhd2xcLW9uXC1oYW5kc1wtYW5kXC1rbmVlczsKK+ScuCA+IHNtYWxsXC1waWVjZXNcLW9mXC1iZWFuXC1zdGFsa3M7CivknIcgPiB0b1wtc3BlYWtcLW5vdFwtaW5cLWFcLWNsZWFyXC13YXk7CivkmqMgPiBjcm9va2VkXC1ob3Juc1wtb2ZcLXRoZVwtYW5pbWFsOwor5JqcID4gY2F0dGxlXC13aXRoXC1jcm9zc3dpc2VcLWhvcm5zOwor5JmjID4gcmFnZ2VkXC1nYXJtZW50c1wtb3JcLWNsb3RoaW5nOwor5JmVID4gY2xvdGhlc1wtdGhhdFwtaGF2ZVwtbm9cLWxpbmluZzsKK+SZlCA+IGNsb3RoZXNcLW1hZGVcLW9mXC1wb29yXC1mYWJyaWM7CivkmZMgPiB0aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ2FybWVudDsKK+SYuSA+IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmKUgPiB0aGVcLWZyb250XC1vZlwtYVwtY2hpbmVzZVwtZ293bjsKK+SYoyA+IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmIEgPiBhXC1ibHVlXC1ncmVlblwtY29sb3JlZFwtY2ljYWRhOwor5Je1ID4gYVwtZGlzZWFzZVwtYXR0YWNrZWRcLXNpbGt3b3JtOwor5JWuID4gZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JWmID4gZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JSlID4gY29tbW9uXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor5JSfID4gc2hha2VcLWFuZFwtd2F2ZVwtb2ZcLXRoZVwtZ3Jhc3M7CivkkLwgPiB0aGluXC1tZW1icmFuZVwtb2ZcLXRoZVwtdGhyb2F0Owor5JCvID4gdWdseVwtYXBwZWFyYW5jZVwtb2ZcLWFcLXBlcnNvbjsKK+SQkSA+IHRoaW5cLWN1dFwtb2ZcLXRoZVwtc2xpY2VkXC1tZWF0Owor5I26ID4gYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1iZWFzdDsKK+SMvCA+IGFcLWtpbmRcLW9mXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IyEID4gYVwtcm9wZVwtZm9yXC1kcmF3aW5nXC11cFwtd2F0ZXI7Civki4EgPiBhXC1yb3BlXC1mb3JcLWRyYXdpbmdcLXVwXC13YXRlcjsKK+SKniA+IHRvXC1yb2xsXC1yb3VuZFwtd2l0aFwtdGhlXC1oYW5kOwor5IqVID4gd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1ncnVlbDsKK+SKiCA+IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivkibogPiBkZXRlcmlvcmF0ZWRcLWFuZFwtYmVjb21lXC1yZWQ7CivkibkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJuCA+IHNsaXBzXC1vZlwtYmFtYm9vXC1mb3JcLXdyaXRpbmc7CivkibMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImrID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiaYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJoSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImgID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiZogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJmSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImPID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiYYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJhCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImBID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiL0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIvCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiyID4gYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtZmlzaGluZzsKK+SIryA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IitID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiKMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIoiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IihID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJ0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SImCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiXID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIjyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiNID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiIwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIiyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiKID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh7ogPiBiZWFuc1wtYW5kXC1wZWFzXC1jb2xsZWN0aXZlbHk7Civkh7UgPiBvbmVcLW9mXC10aGVcLXdpbmRcLWluc3RydW1lbnRzOwor5IeqID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh54gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SHmyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IeZID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkhaogPiBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0Owor5ISwID4gZm9ydHlcLWJ1bmRsZXNcLW9mXC1yaWNlXC1wbGFudDsKK+SDhyA+IGlua1wtZm9yXC1pbXByaW50aW5nXC1vZlwtc2VhbHM7CivkgJEgPiB0b1wtZ291Z2VcLW91dFwtYW5cLWV5ZVwtb3JcLWV5ZXM7Civjv4AgPiB1bmhlYWx0aHlcLW1hcmtzXC1vblwtdGhlXC1za2luOwor472OID4gdGhlXC1wcm9mdW5kaXR5XC1vZlwtdGhlXC1oYXJlbTsKK+O8oCA+IGFcLWNyb2NrXC13aXRoXC1uYXJyb3dcLW9wZW5pbmc7CivjuqwgPiBhXC1sYXJnZVwtcGllY2VcLW9mXC1qYWRlXC1zdG9uZTsKK+O6kiA+IGJhcmtpbmdcLW9mXC1hXC1mcmlnaHRlbmVkXC1kb2c7CivjuZYgPiB0b1wtZmVlZFwtYW5pbWFsc1wtd2l0aFwtZ3JhaW5zOwor47iSID4gdG9cLWFic3VyZFwtcHVyc3VpdFwtb3JcLWRlc2lyZTsKK+OugCA+IHRvb2xcLXRvXC1jbGVhclwtb3V0XC10aGVcLXdhdGVyOwor462VID4gYVwtYm9hcmRcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+OpmyA+IHRvXC1yb2xsXC1yb3VuZFwtd2l0aFwtdGhlXC1oYW5kOwor46mGID4gdG9cLWJlXC1pblwtZnVsbFwtcG9zc2Vzc2lvblwtb2Y7CivjqKsgPiB0b1wtYmVcLWluXC1mdWxsXC1wb3NzZXNzaW9uXC1vZjsKK++nlSA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+OnlSA+IHRvXC1mZWVsXC1vclwtdG91Y2hcLXdpdGhcLWhhbmRzOwor46eCID4gYVwtY2F2ZVwtYVwtaG9sZFwtaW5cLXRoZVwtZ3JvdW5kOwor46aQID4gYVwtc3RyYWlnaHRmb3J3YXJkXC1jaGFyYWN0ZXI7CivjpbQgPiBkb1wtbm90XC1jYXJlXC1hYm91dFwtc29tZXRoaW5nOwor76SaID4gd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+OirCA+IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor46G1ID4gcm9vZlwtb2ZcLXRoZVwtaG91c2VcLWNvbm5lY3RlZDsKK+OgnyA+IGFcLW1vdW50YWluXC1pblwtYW5jaWVudFwtdGltZXM7Civjm70gPiB0b1wtd2Fsa1wtc2xvd2x5XC1saWtlXC1hXC13b21hbjsKK+ObriA+IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyXC1icm90aGVyOwor45OIID4gc291bmRcLW9mXC1mbHlpbmdcLW9yXC1zcGVlZGluZzsKK+OSqyA+IGNob2tlZFwtYW5kXC11bmFibGVcLXRvXC1icmVhdGg7CivjkpYgPiB0aGVcLXJvb3RcLXN0b2NrXC1vZlwtdGhlXC1sb3R1czsKK+eVpiA+IHNlY3Rpb25zXC1pblwtdmVnZXRhYmxlXC1mYXJtOwor55S6ID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7Civlm4EgPiBtb3ZlXC1saXBzXC1hc1wtd2hlblwtc3BlYWtpbmc7CivkvKYgPiBub3JtYWxcLWh1bWFuXC1yZWxhdGlvbnNoaXBzOwor5ZibID4gZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+iQqCA+IGJ1ZGRoaXN0XC1nb2RzXC1vclwtaW1tb3J0YWxzOwor5qGQID4gbmFtZVwtYXBwbGllZFwtdmFyaW91c1wtdHJlZXM7CivokoIgPiBwZWR1bmNsZVwtb3JcLXN0ZW1cLW9mXC1wbGFudHM7CivntLogPiBkYXJrXC1ibHVlXC1vclwtcmVkZGlzaFwtY29sb3I7Civmo7UgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10cmVlczsKK+agqiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRyZWVzOwor5ZOJID4gZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+aGiyA+IHRvXC1zdXBwcmVzc1wtaW5uZXJcLWZlZWxpbmdzOwor5a2cID4gYmVcLWFzXC1kaWxpZ2VudFwtYXNcLXBvc3NpYmxlOwor57KxID4gYmV0dGVyXC12YXJpZXRpZXNcLW9mXC1taWxsZXQ7Civls5IgPiBtb3VudGFpblwtaW5cLWdhbnN1XC1wcm92aW5jZTsKK+amqCA+IHRvXC1wcmVzc1wtb3JcLWV4dHJhY3RcLWp1aWNlczsKK+WXqyA+IG1vdmVcLWxpcHNcLWFzXC13aGVuXC1zcGVha2luZzsKK+mEsSA+IGNvdW50eVwtYW5kXC1sYWtlXC1pblwtamlhbmd4aTsKK+iPoCA+IHNwaW5hY2hcLWFuZFwtc2ltaWxhclwtZ3JlZW5zOwor5reeID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtamlhbmdzdTsKK+a3hCA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6I+PID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmgrEgPiB0b1wtYmVcLWRlc2lyb3VzXC1vZlwtc3BlYWtpbmc7CivmvK8gPiByaXZlclwtaW5cLW5vcnRoZXJuXC1zaGFuZG9uZzsKK+iVmSA+IHNwZWNpZXNcLW9mXC1mcmFncmFudFwtb3JjaGlkOwor5ruBID4gZGlzdHJpY3RcLWluXC1hbmh1aVwtcHJvdmluY2U7Civni4EgPiBhXC10cmliZVwtb2ZcLXNjeXRoaWFuXC1ub21hZHM7CivphaIgPiB0b2FzdFwtb25lJydzXC1ob3N0XC13aXRoXC13aW5lOwor6KG/ID4gY29sbGFyXC1vclwtbGFwZWxcLW9mXC1nYXJtZW50Owor5badID4gcGF0aFwtbGVhZGluZ1wtdXBcLWFcLW1vdW50YWluOwor5peDID4gc2lsa1wtYmFubmVyXC13aXRoXC1iZW50XC1wb2xlOwor6b2RID4gYnJlYWtcLW9yXC1zbWFzaFwtaW50b1wtcGllY2VzOwor57uAID4gZGFya1wtYmx1ZVwtb3JcLXJlZGRpc2hcLWNvbG9yOwor6ISYID4gaW50ZXJuYWxcLWNhdml0eVwtb2ZcLXN0b21hY2g7CivplZIgPiBtZWFzdXJlXC1vZlwtd2VpZ2h0XC1mb3JcLWdvbGQ7CivnnK0gPiBldmlsXC1sb29rXC1vZlwtZGVlcFwtc2V0XC1leWVzOwor6ZSWID4gdGhlXC1jb2xvclwtb2ZcLXRoZVwtYVwtbWluZXJhbDsKK+mCmSA+IG1vdW50YWluXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5aGNID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7CivmlasgPiBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5rO6ID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivokJEgPiBncmFzc1wtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7Civop68gPiB3aW5lXC1nb2JsZXRcLW1hZGVcLWZyb21cLWhvcm47CivoiKMgPiB0b1wtbW9vclwtYVwtYm9hdFwtdG9cLXRoZVwtYmFuazsKK+m9jyA+IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+mmtSA+IGhvcnNlXC13aXRoXC13aGl0ZVwtYmFja1wtbGVnczsKK+mjoyA+IGRpc3BsYXlcLWZvb2RcLWZvclwtc2hvd1wtb25seTsKK+mfsiA+IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+mXkiA+IHVwcGVyXC1zdG9yeVwtZG9vclwtb3JcLXdpbmRvdzsKK+mOsCA+IG1lYXN1cmVcLW9mXC13ZWlnaHRcLWZvclwtZ29sZDsKK+mKgSA+IGFcLXdlaWdodFwtb2ZcLXRoaXJ0eVwtY2F0dGljczsKK+mGiiA+IHRvXC1wb3VyXC13aW5lXC1pblwtYVwtbGliYXRpb247Civpg78gPiBjb3VudHlcLWluXC1zaGFhbnhpXC1wcm92aW5jZTsKK+mDsyA+IHN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOgID4gcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg5ogPiB0b3duc1wtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDlSA+IHN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOIID4gcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivpgqAgPiBjb3VudHlcLWluXC1zaGFhbnhpXC1wcm92aW5jZTsKK+i8pCA+IGFcLXBhbGxcLXRvXC1jb3ZlclwtdGhlXC1oZWFyc2U7CivouJIgPiB0b1wtc2xpcFwtYW5kXC1zcHJhaW5cLWFcLWJsaW1iOwor6Ke2ID4gd2luZVwtZ29ibGV0XC1tYWRlXC1mcm9tXC1ob3JuOwor6KaQID4gYVwtc2xlZXBcLXRvXC1yZWFsaXplXC10b1wtZmVlbDsKK+iZoSA+IHN1cHBvcnRcLXN0cnVjdHVyZVwtZm9yXC1iZWxsOwor6Ja+ID4gbHV4dXJpYW50XC1ncm93dGhcLW9mXC1mbG93ZXI7CivolJUgPiBwZWR1bmNsZVwtb3JcLXN0ZW1cLW9mXC1wbGFudHM7CivojIggPiBhXC1wbGFudFwteWllbGRpbmdcLWFcLXJlZFwtZHllOwor6ImkID4gdG9cLW1vb3JcLWFcLWJvYXRcLXRvXC10aGVcLWJhbms7CivohoYgPiB0aGVcLWNvcnBcLW9mXC1hXC1iaXJkXC1vclwtZm93bDsKK+e9rSA+IGRyYWdcLW5ldFwtbWFkZVwtb2ZcLWZpbmVcLW1lc2g7CivnvY8gPiBlYXJ0aGVuXC1zdGFuZFwtZm9yXC13aW5lXC1qdWc7CivnvY0gPiBsYXJnZVwtZWFydGhlbndhcmVcLXdpbmVcLWphcjsKK+e5uCA+IGhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7Civnr58gPiBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWJhbWJvbzsKK+eqhiA+IHRvXC1wdXRcLWFcLWNvZmZpblwtaW5cLWFcLWdyYXZlOwor56WyID4gb21pbm91c1wtb3JcLXNpbmlzdGVyXC1zcGlyaXQ7CivnmZUgPiBsb3NzXC1vZlwtdGhlXC1zZW5zZVwtb2ZcLXNtZWxsOwor55W3ID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7CivnlLwgPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+eSiCA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civnj5sgPiBxdWlja2x5XC1kZXRlcmlvcmF0aW5nXC1qYWRlOwor5r+8ID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmvrcgPiB3YXRlclwtb3ZlcmZsb3dpbmdcLWRpZmZ1c2VkOwor5riuID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civmr6kgPiBhXC1sZWF0aGVyXC1iYWxsXC1mb3JcLWtpY2tpbmc7CivmpoMgPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+aPuSA+IGNhcnJ5XC10aGluZ3NcLW9uXC1vbmUnJ3NcLWJhY2s7Civmj4EgPiBzb3VuZFwtb2ZcLXNldHRpbmdcLXVwXC1hXC1rb3RvOwor5bOdID4gbW91bnRhaW5cLWluXC1nYW5zdVwtcHJvdmluY2U7CivlqqcgPiBteXRob2xvZ2ljYWxcLXNuYWlsXC1nb2RkZXNzOwor5ZuJID4gZXhjbGFtYXRvcnlcLWZpbmFsXC1wYXJ0aWNsZTsKK+WYtyA+IHRoZVwtcm9hcmluZ1wtb2ZcLXdpbGRcLWJlYXN0czsKK+WYkCA+IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivliZ4gPiBjYXJ2aW5nXC1vclwtZW5ncmF2aW5nXC1rbmlmZTsKK+WGjyA+IGFidXRpbG9uXC1hdmljZW5uYWVcLVwocGxhbnRcKTsKK+WAqyA+IG5vcm1hbFwtaHVtYW5cLXJlbGF0aW9uc2hpcHM7CivkuasgPiB1c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7CivktYYgPiBncmFpbnNcLWZyb21cLXRoZVwtZGlzdGlsbGVyeTsKK+S0vyA+IGdyYWluc1wtZnJvbVwtdGhlXC1kaXN0aWxsZXJ5Owor5LKvID4gYVwta2luZFwtb2ZcLWJsYWNrXC1zbWFsbFwtYmlyZDsKK+SvkyA+IHRoZVwtaGVhZFwtYm9uZVwtb2ZcLWxpdmVzdG9jazsKK+SutiA+IGZsb2NrXC1vZlwtaG9yc2VzXC1zdGFtcGVkaW5nOwor5K6jID4gYVwteWVsbG93XC13aXRoXC1hXC13aGl0ZVwtdGFpbDsKK+SssSA+IGNvYXJzZVwtZ3JhaW5zXC1zdWNoXC1hc1wtY29ybjsKK+SpsiA+IGFcLXRvb2xcLXVzZWRcLXRvXC1jdXRcLWxlYXRoZXI7CivkqZogPiB0b1wtbWVuZFwtdGhlXC1zb2xlc1wtb2ZcLXNob2VzOwor5KmYID4gdG9cLW1lbmRcLXRoZVwtc29sZXNcLW9mXC1zaG9lczsKK+ShpiA+IHRoZVwtZW1wdHlcLXNwYWNlXC1vZlwtYVwtd2hlZWw7CivkoIkgPiB0b1wtcnVuXC1hd2F5XC1vclwtZXNjYXBlXC1mcm9tOwor5J6RID4gYVwtcmVkXC1zd2VsbGluZ1wtb2ZcLXRoZVwtc2tpbjsKK+SbryA+IHRoZVwtcmVhc29uYWJsZVwtb2ZcLXNwZWVraW5nOwor5JaFID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVvyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JW2ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVtSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWxID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWXID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVlSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWTID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVkiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklY0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWKID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SViCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYcgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWFID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVgCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JS4ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUtiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSyID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUsSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLAgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSuID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklKogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JShID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUnSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklJkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSUID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUkiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklI4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSMID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUhSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtdHJlZXM7CivklIQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSBID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STvSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk7wgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JO6ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STsyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk6MgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOiID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STnyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk5MgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOQID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STjiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk4ogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOJID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STgiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkrUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JK0ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSsSA+IHR3aWdzXC1vZlwtaGVtcFwtdXNlZFwtZm9cLWZ1ZWw7CivkkqogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKpID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSpCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkqEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKfID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSniA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKbID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSmiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5I63ID4gYW5cLW9sZFwtbWFuXC13aXRoXC13aGl0ZVwtaGFpcjsKK+SMoCA+IGhvbGRcLW9uXC10b1wtb25lJydzXC1vd25cLXZpZXdzOwor5IuAID4gc2hvZXNcLW1hZGVcLW9mXC1oZW1wXC1vclwtaGFpcjsKK+SKriA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3JhaW47CivkiqwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYWluOwor5ImCID4gYVwtYmFza2V0XC1mb3JcLWVhcnRoXC1vclwtc29pbDsKK+SHliA+IHJvcGVcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SGgCA+IHRvXC1jb3JydXB0XC1vclwtYmVcLWNvcnJ1cHRlZDsKK+SFviA+IHN0YXJ0aW5nXC10b1wtcHV0XC1mb3J0aFwtZWFyczsKK+SFrCA+IHNtYWxsXC1idW5kbGVcLW9mXC1yaWNlXC1wbGFudDsKK+SBjiA+IHRvXC1tYWtlXC1hXC1jbG9zZVwtaW5zcGVjdGlvbjsKK+SAiiA+IGFcLWtpbmRcLW9mXC13YXRlclwtY29udGFpbmVyczsKK+O8qSA+IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nOwor47qgID4gYVwtYmxhY2tcLWFwZVwtd2l0aFwtbG9uZ1wtdGFpbDsKK+O6lSA+IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1vZlwtZG9nczsKK+O5miA+IHNvdW5kXC1vZlwtY2FsbGluZ1wtdG9cLWFcLWNhbGY7CivjuZkgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLXRvXC1hXC1jYWxmOwor47e2ID4gdG9cLWRyeVwtb3JcLXdhcm1cLW5lYXJcLWFcLWZpcmU7Civjt4MgPiBmaXJlXC1idXJuc1wtZm9yXC1hXC1sb25nXC10aW1lOwor47SUID4gdGhlXC1ub2lzZVwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47SLID4gZGVlcFwtYW5kXC1jbGVhclwtXC10b1wtdXJpbmF0ZTsKK+OzpyA+IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWZyb21cLVwuXC5cLjsKK+OxvSA+IHRvXC1oaXRcLW9yXC10b1wtc3RyaWtlaGVhdmlseTsKK+OxuyA+IGRpc2Vhc2VzXC1vZlwtZHVtYlwtY3JlYXR1cmVzOwor47GhID4gdGhlXC1zb3VsXC1vdXRcLW9mXC1vbmUnJ3NcLWJvZHk7CivjsZQgPiBhXC1zbWFsbFwtcXVhbnRpdHlcLW9yXC1udW1iZXI7Civjr58gPiBmb290XC1vZlwtYVwtaGlsbFwtb3JcLW1vdW50YWluOwor462uID4gYVwta2luZFwtb2ZcLWxpcXVvclwtY29udGFpbmVyOwor76iMID4gZHVwbGljYXRlXC1vZlwtYmlnXC1maXZlXC1hNDYxOwor76eUID4gbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK++nhiA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivjpoMgPiBwZXJmZWN0XC1wZXJzb25hbFwtY2hhcmFjdGVyOwor46WxID4gdG9cLWJlXC1kZXNpcm91c1wtb2ZcLXNwZWFraW5nOwor46WNID4gdG9cLWJlYXJcLWplYWxvdXNcLWhhdHJlZFwtZm9yOwor46SsID4gZnVsbFwtb2ZcLWFuZ2VyXC1hbmRcLXZleGF0aW9uOwor46SOID4gYVwtbW9kZWxcLW9yXC10eXBpY2FsXC1leGFtcGxlOwor46SEID4gcmFnaW5nXC1hbmltb3NpdHlcLW9yXC1oYXRyZWQ7Civjo6cgPiB0aGVcLXN1Y2Nlc3Npb25cLWluXC1hXC1mYW1pbHk7Civjo6MgPiB0b1wtd2Fsa1wtaW5cLWFuXC11bnN0ZWFkeVwtd2F5Owor46K4ID4gZGV2aWNlXC1mb3JcLXJlZ3VsYXRpbmdcLWJvd3M7CivjorYgPiBkZXZpY2VcLWZvclwtcmVndWxhdGluZ1wtYm93czsKK+OikiA+IGFuXC1hbG1vc3RcLWNvbGxhcHNpbmdcLWhvdXNlOwor45yqID4gbmFtZVwtb2ZcLWFcLWZhbWlseVwtb3JcLWFcLWNsYW47CivjnJUgPiByZWxhdGl2ZXNcLXRocm91Z2hcLW1hcnJpYWdlOwor45uyID4gdGhlXC1oYWlyXC1vblwtdGhlXC1odW1hblwtaGVhZDsKK+OavyA+IGFcLWdvZGRlc3MnJ3NcLW5hbWVcLWluXC1sZWdlbmQ7CivjmaEgPiBhXC1raW5kXC1vZlwtZWF0YWJsZVwtbXVzaHJvb207CivjmLkgPiB0b1wtc3ByZWFkXC1zb2lsXC1vblwtdGhlXC1yb2FkOwor45ikID4gY2lyY2xlXC1vZlwtdGhlXC1tb3ZpbmdcLXdhdGVyOwor45aoID4gaW5kaXN0aW5jdFwtbmFzYWxcLXV0dGVyYW5jZTsKK+OSvSA+IGFcLWtpbmRcLW9mXC1jYXBcLWZvclwtY2hpbGRyZW47CivjkJYgPiBhXC10cmFuc2xhdGVkXC1uYW1lXC1vZlwtaW5kaWE7CivlsYogPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10aW1lOwor5bGGID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdGltZTsKK+iwgSA+IHdob1w/XC13aG9tXD9cLXdob3NlXD9cLWFueW9uZVw/Owor6KqwID4gd2hvXD9cLXdob21cP1wtd2hvc2VcP1wtYW55b25lXD87CivpmL8gPiBwcmVmaXhcLWZvclwtcGVvcGxlJydzXC1uYW1lczsKK+iOoiA+IHBvZHNcLW9mXC1sZWd1bWlub3VzXC1wbGFudHM7Civni4QgPiB0cmliZVwtZnJvbVwtbm9ydGhlcm5cLWNoaW5hOwor57mwID4gdG9cLXJlZWxcLXNpbGtcLWZyb21cLWNvY29vbnM7CivmvJMgPiByaXZlclwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5ZKLID4gcXVlc3Rpb25cLWZvcm1pbmdcLXBhcnRpY2xlOwor6bqfID4gZmVtYWxlXC1vZlwtY2hpbmVzZVwtdW5pY29ybjsKK+a4rSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+iKnCA+IGx1eHVyaW91c1wtZ3Jvd3RoXC1vZlwtd2VlZHM7Civnu44gPiB0b1wtdW5yYXZlbFwtb3JcLXVucmVlbFwtc2lsazsKK+eSkCA+IGJlYXV0aWZ1bFwtdmFyaWV0eVwtb2ZcLWphZGU7Civpn7YgPiBtdXNpY1wtb2ZcLXRoZVwtZW1wZXJvclwtc2h1bjsKK+msnyA+IGRyZXNzXC1oYWlyXC1pblwtY29pbGVkXC1rbm90Owor572CID4gbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivpnbMgPiBzdHJhcFwtb25cLWFcLWhvcnNlJydzXC1icmVhc3Q7Civmt6YgPiByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor5pChID4gdG9cLXB1c2hcLW92ZXJcLW9yXC1wdXNoXC1iYWNrOwor6ImuID4gc2V2ZW50aFwtb2ZcLWVpZ2h0XC1kaWFncmFtczsKK+a5nyA+IHJpdmVyXC1pblwtcWluZ2hhaVwtcHJvdmluY2U7Civms7ggPiByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor6I2aID4gcG9kc1wtb2ZcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+eMsSA+IGFcLW1vbmtleVwtd2l0aFwteWVsbG93XC1oYWlyOwor5raqID4gcml2ZXJcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+S6syA+IG5hbWVcLW9mXC1kaXN0cmljdFwtaW5cLWFuaHVpOwor6JS6ID4gcnVzaFwtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7CivnkKwgPiB0aGVcLXZpcnR1ZVwtb2ZcLWFcLWdlbnRsZW1hbjsKK+ayqSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+eMlyA+IGV4Y2xhbWF0aW9uXC1vZlwtYWRtaXJhdGlvbjsKK+m8mSA+IGRydW1cLWNhcnJpZWRcLW9uXC1ob3JzZWJhY2s7CivolbIgPiB2YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhXC1zZWVrOwor55OeID4geW91bmdcLW1lbG9uc1wtanVzdFwtZm9ybWluZzsKK+i+gSA+IGNhcnRcLXdoZWVsXC13aXRoXC1ub1wtc3Bva2VzOwor6YWGID4gbmFtZVwtb2ZcLXpob3VcLXBlcmlvZFwtc3RhdGU7CivpupAgPiBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor6bC8ID4gdGhlXC13ZWF0aGVyXC1vclwtZG9qb1wtbG9hY2g7Civpn5QgPiBhXC13cmFwcGVyXC1vclwtY2FzZVwtZm9yXC1ib3c7CivpmZcgPiBhXC1zdGVlcFwtaGlsbFwuXC1wcmVjaXBpdG91czsKK+mPviA+IHRoZVwtdHJpZ2dlclwtb2ZcLWFcLWNyb3NzYm93Owor6YSgID4gY291bnR5XC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mEnCA+IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivphI4gPiBhXC1wbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mDgyA+IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivovIcgPiBjYXJ0XC13aGVlbFwtd2l0aFwtbm9cLXNwb2tlczsKK+intyA+IHRvXC1wcm9jZXNzXC1vclwtY2FydmVcLWhvcm5zOwor6J2wID4gdmlwZXJhXC1ydXNzZWxpaVwtc2lhbWVuc2lzOwor6JiEID4gdmFyaWV0eVwtb2ZcLWFydGVtaXNpYVwtc2VlazsKK+iVqiA+IGx1eHVyaW91c1wtZ3Jvd3RoXC1vZlwtd2VlZHM7CivokbYgPiBkcmFiYVwtbmVtZXJvc2FcLWJlYmVcLWNhcnBhOwor6IqUID4gYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1wbGFudHM7CivohqUgPiBlZ2dzXC1vZlwtYmlyZHNcLW9yXC1yZXB0aWxlczsKK+e9jCA+IGxvbmdcLW5lY2tlZFwtamFyXC1vclwtYm90dGxlOwor572DID4gbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivnupEgPiB0b1wtc29mdGVuXC1oZW1wXC1ieVwtYm9pbGluZzsKK+e5uSA+IHRvXC11bnJhdmVsXC1vclwtdW5yZWVsXC1zaWxrOwor57GpID4gYmFtYm9vXC1jb250YWluZXJcLWZvclwtZm9vZDsKK+exnSA+IGFcLXR1YmVcLXRvXC1ob2xkXC1jaG9wc3RpY2tzOwor56y+ID4gYmFtYm9vXC1jb250YWluZXJcLWZvclwtZm9vZDsKK+esjiA+IGJhbWJvb1wtd2l0aFwtYmxhY2tcLXBhdGNoZXM7CivnppggPiBpbXBlcmlhbFwtYW5jZXN0b3JcLXdvcnNoaXA7CivnpIQgPiBwbGFjZVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor55KqID4gcGVhcmxcLXBlbmRhbnRzXC1vblwtY29yb25ldDsKK+eRvSA+IHRpbmtsaW5nXC1vZlwtamFkZVwtcGVuZGFudHM7CivnjLIgPiBzbW9rZVwtb3JcLWZsYW1lc1wtZnJvbVwtZmlyZTsKK+eAmCA+IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7Civmuo4gPiByaXZlclwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5rqIID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor5rOcID4gYVwtcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civms5IgPiBhXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+axrSA+IGNvbmZsdWVuY2VcLW9mXC10d29cLXN0cmVhbXM7Civmq70gPiBzaGFwZVwtd29vZFwtYnlcLXVzZVwtb2ZcLWhlYXQ7CivmmawgPiBmaXJzdFwtYmlydGhkYXlcLW9mXC1hXC1jaGlsZDsKK+aCiiA+IHdpc2VcLlwtdG9cLWtub3dcLWludHVpdGl2ZWx5Owor5b2NID4gdG9cLWRyYXdcLWFcLWJvd1wtdG9cLXRoZVwtZnVsbDsKK+W6hSA+IGFuXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+WsgCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+S1tSA+IHllbGxvd2lzaFwtYmxhY2tcLWFuZFwtd2hpdGU7CivktasgPiBsaWdodFwtcmVkXC15ZWxsb3dpc2hcLWJsYWNrOwor5LSbID4gdG9cLW1ha2VcLWRlY29jdGlvblwtb2ZcLXNhbHQ7Civks7cgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY2hpY2tlbjsKK+SzhiA+IGFcLWtpbmRcLW9mXC1zcGVjaWVzXC1vZlwtbXluYTsKK+SwgiA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+/ID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7Civkr7wgPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SvtCA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+yID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7CivkrpUgPiBob3JzZVwtd2l0aFwtd2hpdGVcLWZvcmVoZWFkOwor5K2oID4gd2luZVwtcG91cmVkXC1pblwtYVwtbGliYXRpb247CivkrL0gPiB3aW5lXC1wb3VyZWRcLWluXC1hXC1saWJhdGlvbjsKK+SrgCA+IHRoZVwtbG93ZXJcLWVuZFwtb2ZcLXRoZVwtamF3czsKK+SpqCA+IGFcLXdyYXBwZXJcLW9yXC1jYXNlXC1mb3JcLWJvdzsKK+SpnSA+IHRvXC10YW5cLWFuZFwtc29mdGVuXC1sZWF0aGVyOwor5KSCID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXZpbmVnYXI7Civko7QgPiB0b1wtbG9zZVwtdGVtcGVyXC13aGVuXC1kcnVuazsKK+SjhiA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1nYW9taTsKK+SisiA+IHRvXC1nb1wtYWxsXC10aGVcLXdheVwtZm9yd2FyZDsKK+SiriA+IHJhcGlkXC1tYXJjaGluZ1wtb3JcLXJ1bm5pbmc7CivkoqEgPiB0b1wtc3RhbXBcLXRoZVwtZm9vdFwtZm9yd2FyZDsKK+ShuSA+IHRoZVwtbG93XC1yZWFyXC1vZlwtYVwtY2hhcmlvdDsKK+ShryA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoasgPiBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KGhID4gdG9cLWdldFwtdXBcLWludG9cLWFcLWNhcnJpYWdlOwor5KGYID4gc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+ShkiA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoJUgPiByYXBpZFwtbWFyY2hpbmdcLW9yXC1ydW5uaW5nOwor5Ji4ID4gdGhlXC1sb3dlclwtZnJvbnRcLW9mXC1hXC1yb2JlOwor5JiSID4gYm95JydzXC1yZXByb2R1Y3RpdmVcLW9yZ2FuczsKK+SVhCA+IG1lYXRcLWluXC10aGVcLWZvcm1cLW9mXC1wYXN0ZTsKK+STiyA+IGVsbVwtc2VlZHNcLVwtXC1cLXVzZWRcLWFzXC1mb29kOwor5JGiID4gYVwta25pZmVcLXNoYXBlZFwtc21hbGxcLWJvYXQ7CivkkYggPiBtZWF0XC10b1wtb2ZmZXJcLWZvclwtd29yc2hpcDsKK+SNryA+IGdhb3RcLXdpdGhcLWRpZmZlcmVudFwtaG9ybnM7CivkjaIgPiBuZXR0ZWRcLXZlaW5lZFwtd2luZG93XC1zaWxsOwor5IufID4gdGhlXC13ZWlnaHRcLW9uXC1hXC1zdGVlbHlhcmQ7CivkirYgPiBhXC1yb3BlXC1mb3JcLWxlYWRpbmdcLWNhdHRsZTsKK+SJlyA+IGFcLXJlY2VwdGFjbGVcLW9yXC1jb250YWluZXI7CivkhLggPiBncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5ISSID4gcmlwZW5pbmdcLW9mXC1wYWRkeVwtb3JcLXJpY2U7Civkg4EgPiB1bmV2ZW5cLW9yXC1ydWdnZWRcLXRlcnJhaW5zOwor5IGUID4gYmlnXC1leWVzXC1wcm90dWJlcmFudFwtZXllczsKK+O/sCA+IGR1cmFibGVcLWFuZFwtc29saWRcLWxlYXRoZXI7Civjv4IgPiBvYnN0cmFjdGlvblwtb2ZcLXRoZVwtYm93ZWxzOwor4761ID4gYVwtZGFya1wtY29sb3JlZFwtYmlydGhcLW1hcms7CivjvpwgPiB3ZWFrXC1icmVhdGhcLW9mXC1hXC1zaWNrXC1tYW47Civjvb4gPiBhXC1raW5kXC1vZlwtd29tYW4nJ3NcLWRpc2Vhc2U7Civju48gPiB0aW5rbGluZ1wtb2ZcLWphZGVcLXBlbmRhbnRzOwor47qAID4gYVwtbW9ua2V5XC13aXRoXC15ZWxsb3dcLWhhaXI7CivjuLIgPiBhXC1raW5kXC1vZlwtbW91bnRhaW5cLWNhdHRsZTsKK+O3ryA+IHNtb2tlXC1hbmRcLWR1c3RcLWV2ZXJ5d2hlcmU7CivjtrogPiB0aGVcLWxpZ2h0XC1vclwtZ2xvd1wtb2ZcLWZpcmU7CivjtpogPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7Civjtb0gPiB0aGVcLXN0cmVuZ3RoXC1vZlwtYVwtY3VycmVudDsKK+OxpSA+IHRoZVwtZXZpbFwtc3Bpcml0c1wtY29tZVwtb3V0Owor47CmID4gdG9cLWJyZWF0aFwtd2l0aFwtbW91dGhcLW9wZW47CivjsJQgPiBhXC1raW5kXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+OwjiA+IGFcLXdvb2RlblwtcGVzdGxlXC1vclwtcmFtbWVyOwor462bID4gYVwta2luZFwtb2ZcLWNsaW1iaW5nXC1wbGFudHM7CivjqaAgPiBhXC1maWVyY2VcLW9yXC1ibG9vZHlcLWJhdHRsZTsKK++nsyA+IGZlbWFsZVwtb2ZcLWNoaW5lc2VcLXVuaWNvcm47CivjppsgPiB0b1wtd2Fsa1wtaW5cLWFcLWNvbXBvc2VkXC13YXk7CivjoJ0gPiBsb2Z0eVwtYW5kXC1zdGVlcFwtbW91bnRhaW5zOwor46CQID4gaGlnaFwtYW5kXC1wb2ludGVkXC1tb3VudGFpbjsKK+OemiA+IHRvXC1waWxlXC11cFwtbGF5ZXJcLWJ5XC1sYXllcjsKK+OcryA+IGFcLXdvcmRcLXRvXC1kZXNpZ25hdGVcLXdvbWFuOwor45yuID4gdG9cLWdvXC1iZXlvbmRcLW5vcm1hbFwtbGltaXQ7CivjmpMgPiB0aWVcLWJlYW1zXC1vZlwtYVwtc21hbGxcLWJvYXQ7CivjmIwgPiB0b1wtbGF1Z2hcLXdpdGhvdXRcLXN0b3BwaW5nOwor45emID4gYVwtbG91ZFwtYW5kXC1jb25mdXNlZFwtbm9pc2U7Civjl5ogPiB2ZXhpbmdseVwtdmVyYm9zZVwtb3JcLXdvcmR5Owor45eVID4gdGhlXC1jcm93aW5nXC1vZlwtYVwtcGhlYXNhbnQ7CivjloQgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLWNoaWNrZW5zOwor45WaID4gY2xhd3NcLW9mXC1iaXJkc1wtb3JcLWFuaW1hbHM7CivjkLMgPiBoaWdoXC1hbmRcLWxldmVsXC1vblwtdGhlXC10b3A7CivonIAgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5rSbID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5Y+UID4gZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor57W5ID4ga2luZFwtb2ZcLXRoaWNrXC1zdGlmZlwtc2lsazsKK+e9qSA+IGJhc2tldFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+WktyA+IGFuY2llbnRcLWJhcmJhcmlhblwtdHJpYmVzOwor56CwID4gc291bmRcLW9mXC1jcmFzaGluZ1wtc3RvbmVzOwor5ZOOID4gaW50ZXJqZWN0aW9uXC1vZlwtc3VycHJpc2U7CivmnJQgPiBmaXJzdFwtZGF5XC1vZlwtbHVuYXJcLW1vbnRoOwor5o+jID4gcHV0XC10aGluZ3NcLXVuZGVyXC1jbG90aGVzOwor5bWLID4gb21laVwtbW91bnRhaW5cLWluXC1zaWNodWFuOwor6YK5ID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+e8iSA+IHRvXC1zZXdcLWluXC1jbG9zZVwtc3RpdGNoZXM7Civnu6IgPiBraW5kXC1vZlwtdGhpY2tcLXN0aWZmXC1zaWxrOwor5Zm2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7CivmsZUgPiBiYXNrZXRcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivmjrAgPiB0b1wtYnJlYWtcLXdpdGhcLWJvdGhcLWhhbmRzOwor6ZyGID4gYVwtc3VkZGVuXC1wZWFsXC1vZlwtdGh1bmRlcjsKK+a8syA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuOwor5rG+ID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5bezID4gc2l4dGhcLW9mXC10d2VsdmVcLWJyYW5jaGVzOwor5rG0ID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW47Civll50gPiBjYWNrbGluZ1wtb2ZcLWZvd2xzXC10b1wtZ2FnOwor5aeYID4gaWxsaWNpdFwtc2V4dWFsXC1yZWxhdGlvbnM7CivpnI8gPiBmYWxsaW5nXC1vZlwtc25vd1wtYW5kXC1yYWluOwor6YO4ID4gY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor5ZGmID4gdGhlXC1ibGVhdGluZ1wtb2ZcLXRoZVwtZGVlcjsKK+aOriA+IHRvXC1iZWFyXC1vblwtdGhlXC1zaG91bGRlcnM7CivojoYgPiBhXC1raW5kXC1vZlwtbGVnZW5kYXJ5XC10cmVlOwor6ZihID4gZm9vdHBhdGhzXC1iZXR3ZWVuXC1maWVsZHM7CivpuKogPiBzcGVjaWVzXC1vZlwtdGFpd2FuXC1waWdlb247Civlk5QgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uczsKK+awkCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtdHJpYmU7CivlkaQgPiBwdXJpbmVcLWluXC1jaGVtXC5cLWNvbXBvdW5kOwor5ayXID4gc3VjY2Vzc2lvblwtdG9cLXRoZVwtdGhyb25lOwor5rKjID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6KePID4gbWVldFwtb3JcLXNlZVwtdW5leHBlY3RlZGx5Owor5r+uID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YO0ID4gY291bnR5XC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6L2+ID4gbG93XC1yZWFyXC1wb3J0aW9uXC1vZlwtY2FydDsKK+eoniA+IGdyYWluXC1yZWFkeVwtZm9yXC1ncmluZGluZzsKK+eBniA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mDpyA+IGNvdW50eVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+i5vCA+IHdlYmJlZFwtZmVldFwtb2ZcLXdhdGVyZm93bDsKK+eUkSA+IGJvaWxlclwtZm9yXC1zdGVhbWluZ1wtcmljZTsKK+WmlyA+IHdpZmVcLW9mXC1tb3RoZXInJ3NcLWJyb3RoZXI7CivmtaAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaTsKK+mzlCA+IHN3aW1taW5nXC1ibGFkZGVyXC1vZlwtZmlzaDsKK+evjCA+IGFuY2llbnRcLW11c2ljXC1pbnN0cnVtZW50Owor56eVID4gZW1wdHlcLWdyYWluXC1vclwtcmljZVwtaHVzazsKK+eQmiA+IG9ybmFtZW50YWxcLWdlbXNcLWZvclwtYmVsdDsKK+mytSA+IGNyeXB0b2JyYW5jaHVzXC1qYXBvbmljdXM7CivoiaggPiBsb25nXC1hbmRcLW5hcnJvd1wtd2FyXC1ib2F0Owor5raRID4gcml2ZXJcLWluXC1zaGFuc2lcLXByb3ZpbmNlOwor6YOPID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6ZupID4gb2ZmZXJcLXNhY3JpZmljZVwtZm9yXC1yYWluOwor5L2+ID4gYVwtcm93XC1vclwtZmlsZVwtb2ZcLWRhbmNlcnM7CivnvIIgPiB0aGVcLXdvb2ZcLW9mXC1hXC13b3ZlblwtaXRlbTsKK+iJtCA+IHRoZVwtY291bnRlbmFuY2VcLWNoYW5naW5nOwor5ruPID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGViZWk7Civpg74gPiBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpt54gPiB0aGVcLXR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+m1gSA+IG15Y3RpY29yYXhcLXByYXNpbm9zY2VsZXM7CivptKMgPiBzcGVjaWVzXC1vZlwtdGFpd2FuXC1waWdlb247CivpsL4gPiBzd2ltbWluZ1wtYmxhZGRlclwtb2ZcLWZpc2g7Civpr6IgPiBjcnlwdG9icmFuY2h1c1wtamFwb25pY3VzOwor6a6wID4gYVwtc21hbGxcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mroCA+IHNoYXZlXC1oZWFkXC1hc1wtcHVuaXNobWVudDsKK+molSA+IG5hbWVcLW9mXC1hXC1mYWJ1bG91c1wtaG9yc2U7Civpn4IgPiBhXC1zYWRkbGVcLWZsYXBcLlwtdHJhcHBpbmdzOwor6Zm0ID4gYVwtcGFyYXBldFwtb25cLWFcLWNpdHlcLXdhbGw7Civpl6QgPiB3YWxsXC1hcm91bmRcLW1hcmtldFwtcGxhY2U7CivphLIgPiBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivphJcgPiBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivphJYgPiBjb3VudHlcLWluXC1odWJlaVwtcHJvdmluY2U7CivphJIgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor6YOfID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6LyKID4gbG93XC1yZWFyXC1wb3J0aW9uXC1vZlwtY2FydDsKK+i0kSA+IFw8YWJicnZcPlwtamlhbmd4aVwtcHJvdmluY2U7CivoqKEgPiB0b1wtY2hhbnRcLXRvXC1tb2FuXC10b1wtc2lnaDsKK+imryA+IG1lZXRcLW9yXC1zZWVcLXVuZXhwZWN0ZWRseTsKK+ibgSA+IHBvbXBvbmlhXC1tYWN1bGF0aW9jb2xsaXM7CivomIAgPiBmYWxsaW5nXC1sZWF2ZXNcLWFuZFwtYmFya3M7Civol7ogPiBydXNoXC11c2VkXC1pblwtbWFraW5nXC1tYXRzOwor6I+0ID4gc21hbGxcLWJ1ZGRoaXN0XC1tb25hc3Rlcnk7CivojpQgPiBmcml0aWxsYXJpYVwtdmVydGljaWxsYXRhOwor6Iy8ID4gY2hyeXNhbnRoZW11bVwtY29yb25hcml1bTsKK+iJpSA+IGFuXC1vYXJcLW9yXC1wYWRkbGVcLlwtdG9cLXJvdzsKK+iGmSA+IGNhbGxvdXNcLXNraW5cLW9uXC10aGVcLWZlZXQ7CivohZwgPiBxdWlja2VuaW5nXC1vZlwtdGhlXC1mb2V0dXM7CivogrMgPiB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoOwor57+bID4gbG9va1wtb2ZcLXJ1bXBsZWRcLWZlYXRoZXJzOwor572dID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXRzOwor57edID4gdG9cLXNld1wtaW5cLWNsb3NlXC1zdGl0Y2hlczsKK+e3mSA+IHRoZVwtd29vZlwtb2ZcLWFcLXdvdmVuXC1pdGVtOwor57eMID4gdGFzc2Vsc1wtaGFuZ2luZ1wtZnJvbVwtaGF0Owor5624ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtaG9uYW47CivnqJkgPiBncmFpblwtcmVhZHlcLWZvclwtZ3JpbmRpbmc7CivnkqAgPiBhXC1waWVjZVwtb2ZcLXByZWNpb3VzXC1qYWRlOwor5462ID4gbmFtZVwtb2ZcLW9uZVwta2luZFwtb2ZcLWphZGU7CivnjZ4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWRvZzsKK+eMlCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtdHJpYmU7CivngaggPiB0aGVcLXJpdmVyXC1nYW5cLWluXC1qaWFuZ3hpOwor54GDID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5r+yID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHVuYW47CivmuYsgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivmtKcgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1ob25hbjsKK+aopyA+IHphbnRob3h5bHVtXC1haWxhbnRob2lkZXM7CivmpqQgPiBwZXJjaFwtZm9yXC1mb3dsc1wtcm9vc3RcLW9uOwor5qCCID4gYVwta2luZFwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+aXoSA+IGNob2tlXC1vblwtc29tZXRoaW5nXC1lYXRlbjsKK+aSiyA+IHRvXC1ydWJcLWJldHdlZW5cLXRoZVwtaGFuZHM7Civmg4wgPiB0b1wtYmVhclwtYVwtZ3J1ZGdlXC1hZ2FpbnN0Owor5bS2ID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtaGlsbDsKK+W0gSA+IGFcLXBsYWNlXC1pblwtdGFpd2FuXC10YWluYW47CivlsJ4gPiBmdWVsXC11c2VkXC1mb3JcLXNhY3JpZmljZXM7Civlp7ogPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5aWeID4gdGhlXC1zdHJpZGVcLW1hZGVcLWJ5XC1hXC1tYW47CivlpJcgPiB0b1wtdHVyblwtb3Zlclwtd2hlblwtYXNsZWVwOwor5Ze2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7Civlh5wgPiBzaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5YOwID4gYW5jaWVudFwtYWJvcmlnaW5hbFwtdHJpYmU7CivkuoMgPiBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S5uiA+IHBhaW50aW5nXC10b29sXC1wbGFjZVwtbmFtZTsKK+S5tiA+IGtvcmVhblwtcGxhY2VcLW5hbWVcLXBob2xoYTsKK+S1giA+IHRvXC1ncmluZFwtd2hlYXRcLXRvXC1wb3dkZXI7CivksrMgPiBiaXJkc1wtZmx5aW5nXC11cFwtYW5kXC1kb3duOwor5LKbID4gYW5cLWFuY2llbnRcLW5hbWVcLWZvclwtdHVuYTsKK+SyhCA+IGFcLWtpbmRcLW9mXC1maWlzaFwtaW5cLW9jZWFuOwor5LCNID4gYVwta2luZFwtb2ZcLWRhcmtcLXJlZFwtcGFpbnQ7CivksIYgPiBiZWF1dGlmdWxcLWFuZFwtaGFpcnlcLW1hbmU7Civkr5YgPiB0aGVcLW11c2NsZXNcLW9mXC10aGVcLXRoaWdoOwor5KyzID4gY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SrryA+IHRvXC10YWtlXC1hXC1jYXN1YWxcLWxvb2tcLWF0Owor5KqAID4ga25vd25cLXRvZ2V0aGVyXC1hc1wtc2FkZGxlOwor5KmqID4ga25vd25cLXRvZ2V0aGVyXC1hc1wtc2FkZGxlOwor5KiSID4gc291bmRcLW9mXC10aGVcLXdhdGVyXC1kcm9wczsKK+SmqCA+IGFcLWRvb3JcLWN1cnRhaW5cLW9yXC1zY3JlZW47CivkpK8gPiBjb250YWluZXJcLWZvclwtdGhpY2tcLXNvdXA7Civko40gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5KOFID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+ShjSA+IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXNoZWVsOwor5J+XID4gdG9cLXN0YW5kXC1mb3JcLWFcLWxvbmdcLXRpbWU7Civkn4MgPiB0b1wtbW92ZVwtb3JcLW1hcmNoXC1zd2lmdGx5Owor5Jq2ID4gdG9cLXNjb2xkXC1pblwtYVwtbG91ZFwtdm9pY2U7CivkmZwgPiBsZWdlbmRhcnlcLW1vdW50YWluXC1kZWl0eTsKK+SZiCA+IGFcLWxvb3NlXC1nYXJtZW50XC1vclwtY2xvYWs7CivkmYcgPiBjbG90aGVzXC1vZlwtY29hcnNlXC1mYWJyaWM7Civkl4IgPiBkaWVteWN0eWx1c1wtcHlycmhvZ2FzdGVyOwor5JSjID4gYVwtdHJpYmVcLWluXC1hbmNpZW50XC10aW1lczsKK+STtCA+IGVkaWJsZVwtZnVuZ3VzXC1mcm9tXC10cmVlczsKK+SRjiA+IHNvdXBcLW9mXC1waWcnJ3NcLWludGVzdGluZXM7CivkkLsgPiBiaWdcLXBpZWNlc1wtb2ZcLWRyaWVkXC1tZWF0Owor5JC5ID4gcGVyc2VydmVkXC1hbmRcLWRyaWVkXC1tZWF0Owor5JCwID4gdG9cLW9mZmVyXC1mb29kXC1hc1wtdHJpYnV0ZTsKK+SQgiA+IGZhdFwtb2ZcLWFuaW1hbHNcLW9yXC1wbGFudHM7Civkj6YgPiBmYXRcLW9mXC1hbmltYWxzXC1vclwtcGxhbnRzOwor5I61ID4gdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5IqxID4gY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SKkCA+IGZsdWZmeVwtc3R1ZmZlZFwtZHVtcGxpbmdzOwor5IqNID4gdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5IePID4gdG9cLXBpbGVcLW9uZVwtdXBvblwtYW5vdGhlcjsKK+SEnCA+IGhhcHBpbmVzc1wtYW5kXC13ZWxsXC1iZWluZzsKK+SEliA+IHVzZWRcLWluXC1uYW1lXC1vZlwtYVwtcGVyc29uOwor5IOiID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1sb2Z0eTsKK+SBhyA+IHRvXC1sb29rXC1mb3JcLWFcLXNob3J0XC10aW1lOwor5IC0ID4gdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5ICrID4gbmFycm93XC1hbmRcLWRpbVwtZXllXC1zaWdodDsKK+SAqiA+IGJpcmRzXC1mbHlpbmdcLXVwXC1hbmRcLWRvd247Civjv7ogPiBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXM7CivjvZIgPiB0aGVcLWNoaWxkcmVuXC1vZlwtYVwtc2lzdGVyOwor47y/ID4gdGhlXC1icmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivjvJsgPiBsb25nXC1uZWNrZWRcLXdpbmVcLXZlc3NlbHM7Civju6ogPiBhXC1raW5kXC1vZlwtamFkZVwtZmluZVwtamFkZTsKK+O2hSA+IGRyaWVkXC11cFwtbW91bnRhaW5cLWNyZWVrczsKK+O1oiA+IGFcLW1hcnNoXC1pblwtYW5jaWVudFwtdGltZXM7CivjtLAgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47SsID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OzpSA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs50gPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OPID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OzjSA+IGFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7Civjs4sgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OKID4gdGhlXC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OzgCA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7CivjsoogPiB0b1wtdW5kZXJzdGFuZFwtdGhvcm91Z2hseTsKK+OwviA+IHNvbmdzXC1vZlwtdGhlXC1wZW9wbGVcLW9mXC3mpZo7CivjsL0gPiB0b1wtZXhlcnRcLW9uZXNlbGZcLXRvXC15ZWxsOwor46+rID4gYVwtd2F0dGxlXC1vclwtYmFtYm9vXC1mZW5jZTsKK+OupiA+IGJyYW5jaGVzXC1ncm93aW5nXC11cHdhcmRzOwor46qbID4gdG9cLXBvdW5kXC1yb2Nrc1wtdG9cLXBpZWNlczsKK+OqmSA+IHRvXC1nb1wtdG9cLXRoZVwtdmVyeVwtc291cmNlOwor46mtID4gdG9cLWRpc3R1cmJcLW9yXC10b1wtYWdpdGF0ZTsKK++nsCA+IHJ1c2hcLXVzZWRcLWluXC1tYWtpbmdcLW1hdHM7CivvpZQgPiBzaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor76SVID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor46GqID4gdGhlXC12YXJuaXNoXC1vblwtdGhlXC1mbG9vcjsKK+OhpyA+IHRvXC1zdHJldGNoXC1vcGVuXC1wYWludGluZzsKK+OghyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtcmlkZ2U7CivjnL8gPiBuYW1lXC1vZlwtYVwtZmlzaFwtaW5cLWxlZ2VuZDsKK+OanSA+IHRoZVwtc3RyaWRlXC1tYWRlXC1ieVwtYVwtbWFuOwor45epID4gc291bmRcLW9mXC1lbmR1cmVcLWNvbGRuZXNzOwor45enID4gdG9cLXNjb2xkXC13aXRoXC1sb3VkXC12b2ljZTsKK+OXjCA+IHRvXC1zY29sZFwtd2l0aFwtbG91ZFwtdm9pY2U7Civjl4AgPiB0aGVcLWJsZWF0aW5nXC1vZlwtdGhlXC1kZWVyOwor45OhID4gdGhlXC1taWRkbGVcLXBhcnRcLW9mXC1hXC1ib3c7CivjkKggPiBhXC1raW5kXC1vZlwtZmlzaFwtaW5cLWxlZ2VuZDsKK+eepSA+IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5beeID4gYWRtaW5pc3RyYXRpdmVcLWRpdmlzaW9uOwor5ZCnID4gZW1waGF0aWNcLWZpbmFsXC1wYXJ0aWNsZTsKK+afkCA+IGNlcnRhaW5cLXRoaW5nXC1vclwtcGVyc29uOwor56WoID4gc2xpcFwtb2ZcLXBhcGVyXC1vclwtYmFtYm9vOwor6IC2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+WOmCA+IHRob3VzYW5kdGhcLXBhcnRcLW9mXC10YWVsOwor5b2tID4gbmFtZVwtb2ZcLWFuY2llbnRcLWNvdW50cnk7CivogrQgPiBjb29rZWRcLW9yXC1wcmVwYXJlZFwtbWVhdDsKK+S/jiA+IGNob3BwaW5nXC1ib2FyZFwtb3JcLWJsb2NrOwor5reuID4gcml2ZXJcLWluXC1hbmh1aVwtcHJvdmluY2U7Civpg6EgPiBhZG1pbmlzdHJhdGl2ZVwtZGl2aXNpb247Civlk6YgPiBvaFw/XC1yZWFsbHlcP1wtaXNcLXRoYXRcLXNvXD87CivplKQgPiBiYWxhbmNlXC13ZWlnaHRcLW9uXC1zY2FsZTsKK+S7niA+IGFuY2llbnRcLXVuaXRcLW9mXC1tZWFzdXJlOwor6IqtID4gcGxhbnRhaW5cLW9yXC1iYW5hbmFcLXBhbG07Civno4ogPiBwaWxlXC1vZlwtcm9ja3NcLW9yXC1zdG9uZXM7CivlkbggPiBleHByZXNzaW9uXC1vZlwtcmVwcmltYW5kOwor5ou3ID4gdG9ydHVyZVwtYW5kXC1pbnRlcnJvZ2F0ZTsKK+aKvyA+IHB1Y2tlclwtdXBcLWxpcHNcLWluXC1zbWlsZTsKK+WNiSA+IGdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6au7ID4gaGFpclwtcm9sbGVkXC11cFwtaW5cLWFcLWJ1bjsKK+ijhiA+IGNyb3RjaFwtb3JcLXNlYXRcLW9mXC1wYW50czsKK+iYkSA+IHR5cGVcLW9mXC1lZGlibGVcLW11c2hyb29tOwor5ZK/ID4gZGVzY3JpcHRpdmVcLW9mXC1jcmVha2luZzsKK+evviA+IGJhbWJvb1wtc3BsaW50c1wtb3JcLXNsYXRzOwor5reHID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7Civok5EgPiByYWluXC1jb2F0XC1tYWRlXC1vZlwtc3RyYXc7CivmqqwgPiB0eXBlXC1vZlwtbG9jdXN0XC1vcmFjYWNpYTsKK+a3mSA+IGd1cmdsaW5nXC1zb3VuZFwtb2ZcLXdhdGVyOwor5q6TID4gZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivnkKUgPiBqZXdlbFwtaW5cLXNoYXBlXC1vZlwtdGlnZXI7CivmvZ4gPiByaXZlclwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+mGjSA+IGVzc2VudGlhbFwtb2lsXC1vZlwtYnV0dGVyOwor5aavID4gd2l2ZXNcLW9mXC1vbmUnJ3NcLWJyb3RoZXJzOwor5biPID4gY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7Civnk5IgPiBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor5rS5ID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7CivnkZcgPiBsYXJnZVwtcmluZ1wtb2ZcLWZpbmVcLWphZGU7Civmtp4gPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eIuyA+IGRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivplJ8gPiBhbmNpZW50XC10cmVhc3VyZWRcLXN3b3JkOwor6IqXID4gZnJhZ3JhbnRcLXNtZWxsXC1vZlwtZ3JhaW47CivmpaYgPiBhXC1sYXN0XC1mb3JcLW1ha2luZ1wtc2hvZXM7CivoiIEgPiBjYXJyeVwtb25cLW9uZScnc1wtc2hvdWxkZXI7Civmu6AgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+m8jyA+IGNvdmVyXC1vZlwtdHJpcG9kXC1jYWxkcm9uOwor6buwID4geW91bmdcLWdpcmwnJ3NcLWhhaXJcLXN0eWxlOwor6ayCID4gdGhlXC1oYWlyXC1vblwtdGhlXC10ZW1wbGVzOwor6aeuID4gYVwta2luZFwtb2ZcLWZpZXJjZVwtYW5pbWFsOwor6YyYID4gYmFsYW5jZVwtd2VpZ2h0XC1vblwtc2NhbGU7CivpjJUgPiBhbmNpZW50XC10cmVhc3VyZWRcLXN3b3JkOwor6YS+ID4gcGxhY2VcLWluXC1odWJlaVwtcHJvdmluY2U7CivphKwgPiBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEpCA+IHBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSYID4gc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7CivphI8gPiBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEgCA+IHN0YXRlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YOwID4gYmlydGhwbGFjZVwtb2ZcLWNvbmZ1Y2l1czsKK+mCpyA+IHRvd25cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YKYID4gc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7CivopaAgPiBjcm90Y2hcLW9yXC1zZWF0XC1vZlwtcGFudHM7CivomrsgPiBzbWFsbFwtc3BlY2llc1wtb2ZcLWNpY2FkYTsKK+iWjCA+IGZyYWdyYW50XC1zbWVsbFwtb2ZcLWdyYWluOwor6JKxID4gZ2FtYmxpbmdcLWdhbWVcLXdpdGhcLWRpY2U7CivokacgPiBoZWxlb2NoYXJpc1wtcGxhbnRhZ2luZWE7CivoiLIgPiBzbWFsbFwtYm9hdFwtd2l0aFwtd2luZG93czsKK+e+qyA+IHRoZVwtc2tlbGV0b25cLW9mXC1hXC1zaGVlcDsKK+e9vSA+IGFcLWtpbmRcLW9mXC13b29sZW5cLWZhYnJpYzsKK+eyuiA+IHBvbGlzaGVkXC1yaWNlXC1vclwtbWlsbGV0Owor56+nID4gY3JlZWxcLWZvclwtdHJhcHBpbmdcLWZpc2g7Civnr5sgPiBjdXRpY2xlXC1vZlwtYmFtYm9vXC1wbGFudDsKK+ellCA+IHdvcnNoaXBcLW9uZScnc1wtYW5jZXN0b3JzOwor552WID4gdG9cLXN0YXJlXC1zdHJhaWdodFwtYWhlYWQ7CivnnKIgPiBleWVzXC13aXRob3V0XC1icmlnaHRuZXNzOwor55W+ID4gZmllbGRzXC1kaXZpZGVkXC1ieVwtZGlrZXM7Civnk5ogPiBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor55KyID4gcGVuZGFudFwtZ2lyZGxlXC1vcm5hbWVudDsKK+eRvyA+IGFcLWJsYWNrXC1zdG9uZVwtbGlrZVwtamFkZTsKK+eRryA+IGtpbmRcLW9mXC13aGl0ZVwtY29ybmVsaWFuOwor55GiID4gZ2VtXC1vcm5hbWVudHNcLWZvclwtYmVsdHM7Civnj7YgPiB3aGl0ZVwtamFkZVwtd29yblwtb25cLWJlbHQ7CivnjpUgPiBpbmZlcmlvclwtdmFyaWV0eVwtb2ZcLWdlbTsKK+eMiCA+IGRvZ1wtd2l0aFwtc2hvcnRcLXNoaW5ib25lOwor54GEID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivngLwgPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+eAjSA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5r+cID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivmvrQgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a+iSA+IHRvXC13YXNoXC1uYW1lXC1vZlwtYVwtcGxhY2U7CivmvZYgPiBuYW1lXC1vZlwtYVwtY2VydGFpblwtcml2ZXI7CivmvLcgPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a8iiA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5rquID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7CivmuqAgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a3tiA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5raWID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civmta0gPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a0uiA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rSoID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civmrq4gPiBkcmVzc1wtY29ycHNlXC1mb3JcLWJ1cmlhbDsKK+aumSA+IHRvXC1kaWVcLWJ5XC10YWtpbmdcLXBvaXNvbjsKK+atgSA+IHVuc2F0aXNmaWVkXC1cKG9mXC1lYXRpbmdcKTsKK+asqCA+IHRvXC1ibG93XC1vclwtYnJlYXRoZVwtdXBvbjsKK+asjyA+IHRyZWVcLXRoZVwtaG9yc2VcLWNoZXN0bnV0Owor5qqHID4gd29vZGVuXC1yYW1tZXJcLW9yXC1wZXN0bGU7CivmqZQgPiBhXC13b29kZW5cLWNob3BwaW5nXC1ibG9jazsKK+alpSA+IGFcLWxhc3RcLWZvclwtbWFraW5nXC1zaG9lczsKK+aavCA+IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5oC4ID4gY25zXC0yXC0yYTQwXC1pc1wtZGlmZmVyZW50Owor5bmDID4gY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7CivlooQgPiB0aGVcLXN0ZXBzXC1vZlwtYVwtc3RhaXJ3YXk7CivllasgPiBpbnRlcmplY3Rpb25cLW9mXC13YXJuaW5nOwor5ZCaID4gdXNlZFwtdG9cLXJlcHJlc2VudFwtc291bmQ7CivljIEgPiBqYXBhbmVzZVwtdW5pdFwtb2ZcLXdlaWdodDsKK+S7viA+IHRvXC1oYW5nXC1vclwtYm93XC10aGVcLWhlYWQ7Civku60gPiBhbmNpZW50XC11bml0XC1vZlwtbWVhc3VyZTsKK+S2nSA+IGdyb3dpbmdcLWlycmVndWxhclwtdGVldGg7CivktYggPiB1bnNtZWx0ZWRcLWhlbXBcLWFuZFwtc2lsazsKK+S1gCA+IGNvYXJzZVwtY3J1bWJzXC1vZlwtYmFybGV5Owor5LSRID4gYVwtbGVnZW5kYXJ5XC13ZWlyZWRcLWJpcmQ7CivktIcgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY3JhbmU7CivktIEgPiBhXC1raW5kXC1vZlwtcmF0XC1saWtlXC1iaXJkOwor5LOyID4gYVwtc3dhcm1cLW9mXC1mbHlpbmdcLWJpcmRzOwor5LK0ID4gYVwta2luZFwtb2ZcLXZlbm9tb3VzXC1iaXJkOwor5LG+ID4gYVwtY2FycFwtbGlrZVwtc2F2b3J5XC1maXNoOwor5LCrID4gbmltYmxlXC1hbmRcLWFjdGl2ZVwtZ2hvc3Q7CivkrYcgPiB0b1wtYmVcLWNob2NrZWRcLXdpdGhcLWZvb2Q7CivkrYYgPiBzbWFsbFwtY2hpbGRyZW5cLWVhdFwtbGVzczsKK+SssiA+IHRvXC1lYXRcLXRvXC10aGVcLWhhbGZcLWZ1bGw7CivkrKogPiBhXC1raW5kXC1vZlwtY29va2VkXC1ub29kbGU7CivkrJsgPiB0aGVcLXJvYXJpbmdcLW9mXC10aGVcLXdpbmQ7CivkqJcgPiBleGNlc3NpdmVcLXJhaW5cLWFuZFwtc25vdzsKK+SohSA+IHNtYWxsXC1iaXJkc1wtXC1cLVwtdGhlXC13cmVuOwor5KWWID4gc2lsdmVyXC1vZlwtZ29sZFwtZmlsYWdyZWU7CivkpY8gPiB1bmZpdHRlZFwtZm9yXC1lYWNoXC1vdGhlcjsKK+SkpSA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+SinCA+IHRoZVwtbWFycmlhZ2VcLW9mXC1hXC13b21hbjsKK+ShvSA+IHRoZVwtc2hhZnRzXC1vZlwtYVwtdmVoaWNsZTsKK+ShuiA+IHRoZVwtZW5kXC1vZlwtYW5cLWF4bGVcLXRyZWU7CivkoaMgPiBhXC1waWVjZVwtb2ZcLWN1cnZlZFwtYm9hcmQ7CivkoKMgPiBuZXRcLXRvXC10cmFwXC10aGVcLWFuaW1hbHM7CivknYggPiBhXC1iaWdcLWFuZFwtc3RyZW51b3VzXC1waWc7CivkmpAgPiBnZXR0aW5nXC1yZWRcLWluXC10aGVcLWV5ZXM7CivkmoogPiB0b1wtbG9va1wtZnJvbVwtYVwtZGlzdGFuY2U7CivkmZAgPiBmdXJzXC1hbmRcLWxpbmVuXC1nYXJtZW50czsKK+SYhiA+IGFcLXNlY29uZFwtZm9ybVwtZWFydGh3b3JtOwor5JegID4gdGhlXC1sYXJ2YVwtb2ZcLW1vc3F1aXRvZXM7Civkl5QgPiBhXC1ob3VzZVwtbGl6YXJkXC1vclwtZ2Vja287CivklrEgPiBsYXJnZVwtc2hyaW1wXC1pblwtdGhlXC1zZWE7CivklL4gPiBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLWhlcmI7Civkk7EgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkpYgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkpUgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkKQgPiBkcmllZFwtYW5kXC1zZWFzb25lZFwtbWVhdDsKK+SQkCA+IGN1cnZlZFwtcGFydFwtb2ZcLXRoZVwta25lZTsKK+SPmSA+IGJyaW5lXC1mcm9tXC1waWNrbGVkXC1tZWF0Owor5I+VID4gdG9cLWNvb2tcLWZvb2RcLXRob3JvdWdobHk7CivkjqcgPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivkjbkgPiBvZG9yXC1vZlwtYVwtc2hlZXBcLW9yXC1nb2F0Owor5I2ZID4gbmV0c1wtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivkjZggPiBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLW5ldHM7CivkjZMgPiBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdDsKK+SLqyA+IHRvXC13aW5kXC1yb3VuZFwtdGhlXC1yb3BlczsKK+SLqCA+IHRvXC1zZXRcLWluXC1vcmRlclwtdGhlXC1vbGQ7CivkirQgPiBmb29kXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7CivkiqogPiBjb2Fyc2VcLXJpY2VcLVwtXC1cLXVuaHVsbGVkOwor5ImcID4geW91bmdcLWFuZFwtdGVuZGVyXC1iYW1ib287CivkiZYgPiBmcmFtZXdvcmtcLW9mXC1hXC1jYXJyaWFnZTsKK+SHlyA+IGJhbWJvb1wtd2l0aFwtbG9uZ1wtam9pbnRzOwor5IeRID4gYVwtc3RhbmRpbmdcLXNob3J0XC1wZXJzb247CivkhoogPiB1bmh1c2tlZFwtZ2x1dGlub3VzXC1yaWNlOwor5IaJID4gdGhlXC1zd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor5IOJID4gYVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgYwgPiB0b1wtc2VlXC1mb3JcLWFcLXNob3J0XC10aW1lOwor476AID4gdG9cLWJlXC13ZWFrZWRcLWJ5XC1kaXNlYXNlOwor4726ID4gdG9cLWJlXC13ZWFrZWRcLWJ5XC1kaXNlYXNlOwor4724ID4gZGlzZWFzZXNcLW9mXC10aGVcLWFiZG9tZW47CivjvZogPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivjvKcgPiB0aWxlc1wtaW5cLWN5bGluZGVyXC1zaGFwZTsKK+O5siA+IGFcLWZyaWdodGVuZWRcLXBpZ1wtb3JcLWRvZzsKK+O5riA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLVwtdGFwaXI7CivjuZ0gPiBhXC1sZWdlbmRhcnlcLXdpbGRcLWFuaW1hbDsKK+O5kSA+IGFcLWZvdXJcLXllYXJzXC1vbGRcLWNhdHRsZTsKK+O5iiA+IGFcLWNhdHRsZVwtb2ZcLXdoaXRlXC1jb2xvcjsKK+O5hiA+IHRoZVwtY291bHRlclwtb2ZcLWFcLXBsb3VnaDsKK+O4iyA+IG1lYXRzXC11c2VkXC1pblwtc2FjcmlmaWNlOwor47euID4gc2NvcmNoZWRcLW9yXC1idXJuZWRcLXdvb2Q7Civjt6sgPiBmaXJlXC1jYXVzaW5nXC1ieVwtZHJ5bmVzczsKK+O2tSA+IHRvXC1jb29rXC1mb29kXC10aG9yb3VnaGx5Owor47aSID4gdGhlXC1jdXJyZW50XC1vZlwtYVwtc3RyZWFtOwor47SyID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lOwor47SRID4gdG9cLXRyYWNlXC11cFwtdG9cLWFcLXNvdXJjZTsKK+O0jyA+IHRoZVwtcG9uZFwtd2F0ZXJcLWlzXC1zdGlsbDsKK+OyvyA+IGV4dGVuc2l2ZVwtYm9keVwtb2ZcLXdhdGVyOwor47KEID4gdW5idXJudFwtYnJpY2tzXC1vclwtdGlsZXM7CivjsawgPiBjYW5ub3RcLXJlY29nbml6ZVwtcGVvcGxlOwor47GVID4gdGhlXC1tYXJyaWFnZVwtb2ZcLWFcLXdvbWFuOwor46+ZID4gdGhlXC1idWNrdGhvcm5cLW9yXC1qdWp1YmU7Civjrb4gPiB0b1wtY3V0XC10aGVcLXRpbWJlclwtYXBhcnQ7CivjrYMgPiB0aGVcLWxhcmdlXC1yb3BlXC1vZlwtYVwtbmV0Owor462CID4gaGVpZ2h0XC1vZlwtdGhlXC1lbmRcLXBvaW50Owor46y7ID4gaW5cLWJldHdlZW5cLW9mXC10aGVcLWZsZXNoOwor46evID4gYVwtYnVja2V0XC1tYWRlXC1vZlwtd2lsbG93Owor46elID4gdG9cLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor46a9ID4gd2l0aFwtZWxlZ2FudFwtYXBwZWFyYW5jZTsKK+OmuiA+IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK+OmuCA+IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK++mpSA+IGRyZXNzXC1jb3Jwc2VcLWZvclwtYnVyaWFsOwor46aHID4gYVwtcGVhY2VmdWxcLW9yXC1lYXN5XC1tb29kOwor76WHID4gcGlsZVwtb2ZcLXJvY2tzXC1vclwtc3RvbmVzOwor46WFID4gdXNlZFwtaW5cLWFcLXBlcnNvbicnc1wtbmFtZTsKK+OkjCA+IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC1vd247Civjo7sgPiB0b1wtcmVtZWR5XC1ieVwtcHVuaXNobWVudDsKK+OjqiA+IHRvXC13YWxrXC13aXRoXC1zbG93XC1zdGVwczsKK+OjhiA+IHRvXC1sb29zZVwtdGhlXC1ib3dcLXN0cmluZzsKK+OiviA+IHRoZVwtY3VydmVkXC1lbmRcLW9mXC1hXC1ib3c7CivjorUgPiBwb3dlcmZ1bFwtYW5kXC1zdHJvbmdcLWJvdzsKK+OhuSA+IHRvXC1yZWx5XC11cG9uXC1lYWNoXC1vdGhlcjsKK+OhkiA+IGFcLWNhbGljb1wtc2Fja1wtZm9yXC1ncmFpbjsKK+OhjyA+IHRvXC1jdXRcLWFcLXN0cmlwXC1vZlwtY2xvdGg7CivjnrwgPiB0b1wtcmVzcGVjdGZ1bGx5XC1yZWNlaXZlOwor45qsID4gYVwtbGFkeVwtc3RhcnRcLXRvXC1kb2xsXC11cDsKK+OaliA+IHRvXC1jb21lXC1vdXRcLXRvXC10aGVcLW9wZW47CivjmYogPiBhblwtYXJlYVwtb2ZcLWxldmVsXC1ncm91bmQ7CivjlbggPiBzb3VuZFwtb2ZcLXJvbGxpbmdcLWFcLWJvYXQ7CivjlacgPiB1c2VkXC10b1wtcmVwcmVzZW50XC1zb3VuZDsKK+OUpCA+IHRvXC1leGVydFwtb25lJydzXC1zdHJlbmd0aDsKK+OTpyA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+OSpCA+IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC13b247CivjkpkgPiB0b1wtaGFuZFwtb3JcLWJvd1wtdGhlXC1oZWFkOwor5LmIID4gaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivooqsgPiBwYXNzaXZlXC1pbmRpY2F0b3JcLScnYnknJzsKK+eUsyA+IHRvXC1zdGF0ZVwtdG9cLWFcLXN1cGVyaW9yOwor5bKhID4gcmlkZ2VcLW9yXC1jcmVzdFwtb2ZcLWhpbGw7CivnkLQgPiBjaGluZXNlXC1sdXRlXC1vclwtZ3VpdGFyOwor5ayMID4gc2VkdWN0aXZlXC1hbmRcLWxvdmVhYmxlOwor572XID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+aRuCA+IGdlbnRseVwtdG91Y2hcLXdpdGhcLWhhbmQ7Civku7AgPiByYWlzZVwtdGhlXC1oZWFkXC10b1wtbG9vazsKK+iHjSA+IGFiZG9taW5hbFwtYXJlYVwtb2ZcLWNyYWI7Civpg5EgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hbjsKK+e+hSA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivotK8gPiBhXC1zdHJpbmdcLW9mXC0xMDAwXC1jb2luczsKK+WohyA+IHNlZHVjdGl2ZVwtYW5kXC1sb3ZlYWJsZTsKK+errSA+IHB1dFwtZm9ydGhcLWdyZWF0XC1lZmZvcnQ7Civnp5IgPiBiZWFyZFwtb2ZcLWdyYWluXC1vclwtY29ybjsKK+WlmiA+IHdoZXJlXD9cLXdoYXRcP1wtaG93XD9cLXdoeVw/Owor5YaIID4gcmlkZ2VcLW9yXC1jcmVzdFwtb2ZcLWhpbGw7Civnm48gPiBzbWFsbFwtY3VwXC1vclwtY29udGFpbmVyOwor6JCdID4gdHlwZVwtb2ZcLWNyZWVwaW5nXC1wbGFudDsKK+aipyA+IHN0ZXJjdWxpYVwtcGxhdGFuaWZvbGlhOwor5ZKmID4gZXhwcmVzc2lvblwtb2ZcLXN1cnByaXNlOwor562QID4gYmFtYm9vXC1iYXNrZXRcLW9yXC1jaGVzdDsKK+iwjSA+IGFuXC1pbnRlbGxpZ2VuY2VcLXJlcG9ydDsKK+evsSA+IGJhbWJvb1wtb3JcLXdvb2RlblwtZmVuY2U7CivnkLYgPiBndWl0YXJcLWxpa2VcLWluc3RydW1lbnQ7CivnkLUgPiBndWl0YXJcLWxpa2VcLWluc3RydW1lbnQ7CivmvbogPiBzb3VuZFwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor5Z2zID4gYVwtaG9sbG93XC1pblwtdGhlXC1ncm91bmQ7CivohJAgPiBhYmRvbWluYWxcLWFyZWFcLW9mXC1jcmFiOwor5Z+CID4gZGl0Y2hlc1wtZm9yXC1pcnJpZ2F0aW9uOwor5YCMID4gYXNzaXN0YW50XC1pblwtd2luZVwtc2hvcDsKK+mcgSA+IHRvXC1jbGVhclwtdXBcLWFmdGVyXC1yYWluOwor6YKvID4gY2l0eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eykSA+IHRzYW1iYVwtXChmb29kXC1pblwtdGliZXRcKTsKK+ibgCA+IGluc2VjdHNcLXRoYXRcLWVhdFwtYm9va3M7Civlq6YgPiBuYW1lXC1vZlwtYVwtbW9vblwtZ29kZGVzczsKK+i1iiA+IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor5byRID4gdG9cLWtpbGxcLW9uZScnc1wtc3VwZXJpb3I7CivmkYEgPiB0b1wtcHJlc3NcLXdpdGhcLXRoZVwtaGFuZDsKK+eVuSA+IGFcLWZpZWxkXC1vZlwtMjBcLW9yXC0zMFwtbXU7Civop5AgPiBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivorqYgPiBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor5peEID4gYVwta2luZFwtb2ZcLWFuY2llbnRcLWZsYWc7CivotrUgPiBub2lzZVwtb2ZcLXRyYW1waW5nXC1mZWV0Owor6YW5ID4gdG9cLXBvdXJcLW91dFwtYVwtbGliYXRpb247CivlrbMgPiBicmVlZFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5aGEID4gZWxldmF0ZWRcLWJhbmtcLWluXC1maWVsZDsKK+ieiCA+IGRpZW15ZWxpbHVzXC1weXJvZ2FzdGVyOwor56qsID4gYVwtc21hbGxcLWRvb3JcLW9yXC13aW5kb3c7CivnrLEgPiBhXC1iYXNrZXRcLXRyYXBcLWZvclwtZmlzaDsKK+eJvyA+IHNoZWRcLW9yXC1wZW5cLWZvclwtY2F0dGxlOwor6JuYID4gYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivnlY4gPiBhXC1kcmFpblwtYmV0d2VlblwtZmllbGRzOwor6b2vID4gdGVldGhcLWdyb3duXC1pblwtb2xkXC1hZ2U7CivpuaMgPiBmYWJ1bG91c1wtbXl0aGljYWxcLWJpcmQ7CivptrwgPiBmYWJ1bG91c1wtbXl0aGljYWxcLWJpcmQ7CivpsIYgPiBzY29tYmVyb21vcnVzXC1zaW5lbnNpczsKK+mvmSA+IHNjb21iZXJvbW9ydXNcLXNpbmVuc2lzOwor6a6TID4gbWluY2VkXC1hbmRcLXNhbHRlZFwtZmlzaDsKK+mpjCA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWhvcnNlOwor6Z+5ID4gbXVzaWNcLW9mXC1iZWxsXC1hbmRcLWRydW07CivpnL0gPiB0b1wtY2xlYXJcLXVwXC1hZnRlclwtcmFpbjsKK+mbmCA+IGR5ZVwtbWFkZVwtZnJvbVwtcmVkXC1zb2lsOwor6ZiHID4gYVwtYnVkZGhpc3RcLWhpZ2hcLXByaWVzdDsKK+mRkCA+IGJvbHRcLW9mXC1hXC1jaGluZXNlXC1sb2NrOwor6YyGID4gdGhlXC1jb2xvclwtb2ZcLWFcLW1pbmVyYWw7CivphK0gPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hbjsKK+mEkCA+IHRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7CivpgbAgPiBncnVudGluZ1wtc291bmRcLW9mXC1waWdzOwor6L6lID4gdmFyaWV0eVwtb2ZcLW1hcnNoXC1ncmFzczsKK+izkiA+IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor6LKrID4gYVwtc3RyaW5nXC1vZlwtMTAwMFwtY29pbnM7CivosIIgPiBjb25zdWx0XC1jYXJlZnVsbHlcLXdpdGg7Civoq5wgPiBhblwtaW50ZWxsaWdlbmNlXC1yZXBvcnQ7Civoq5cgPiBjb25zdWx0XC1jYXJlZnVsbHlcLXdpdGg7CivoqaogPiBkaWZmaWN1bHR5XC1pblwtc3BlYWtpbmc7CivoqJAgPiBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor6Ke/ID4gYVwtYm9ka2luXC1tYWRlXC1vZlwtaXZvcnk7CivoprIgPiBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivopoAgPiB2YXJpYW50XC1vZlwtcmFkaWNhbFwtMTQ2Owor6KSfID4gaW5uZXJcLXNoaXJ0XC1vclwtc2luZ2xldDsKK+ihrSA+IHRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50Owor6KGmID4gc21vb3RoXC1vdXRcLXRoZVwtY2xvdGhlczsKK+iYvyA+IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivolZUgPiBjYXJ5b3B0ZXJpc1wtZGl2YXJpY2F0YTsKK+iUryA+IGFcLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivokLQgPiBtZWRpY2luYWxcLXBvaXNvblwtcGxhbnQ7Civoj7YgPiBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor6I64ID4gY2FyeW9wdGVyaXNcLWRpdmFyaWNhdGE7CivojpkgPiBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor6ISkID4gcmF3XC1tZWF0XC1mb3JcLXNhY3JpZmljZTsKK+iArCA+IGRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivogKcgPiBkcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor6ICCID4gdmFyaWFudFwtb2ZcLXJhZGljYWxcLTEyNTsKK+e5piA+IHN0cmluZ1wtb2ZcLWNvcHBlclwtY29pbnM7CivnuYggPiBzdHJpbmdcLW9mXC1jb3BwZXJcLWNvaW5zOwor57eFID4gc2lsa1wtb2ZcLXB1cnBsaXNoXC1jb2xvcjsKK+exrCA+IGJhbWJvb1wtb3JcLXdvb2RlblwtZmVuY2U7Civnr6IgPiB0aGVcLW5hbWVcLW9mXC1iYW1ib29cLWhhdDsKK+etuiA+IGJhbWJvb1wtYmFza2V0XC1vclwtY2hlc3Q7Civnm54gPiBzbWFsbFwtY3VwXC1vclwtY29udGFpbmVyOwor55mKID4gYVwtZGlzZWFzZVwtb2ZcLXRoZVwtaGVhcnQ7CivnkbEgPiBhXC1nZW1cLXVzZWRcLWFzXC1lYXJcLXBsdWc7CivnkKAgPiBhXC1nZW1cLXVzZWRcLWFzXC1lYXJcLXBsdWc7Civnj6MgPiBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWphZGU7CivnjrwgPiBiZWF1dGlmdWxcLWNvbG9yXC1vZlwtZ2VtOwor54m3ID4gY293XC1vclwtb3hcLW9mXC1vbmVcLWNvbG9yOwor54SEID4gcmlzaW5nXC1mbGFtZXNcLW9yXC1mdW1lczsKK+eDliA+IGNhbGFtaXRpZXNcLWZyb21cLWhlYXZlbjsKK+auoiA+IGJlXC1pblwtZ3JlYXRcLWRpZmZpY3VsdHk7Civmp7EgPiBmaXJld29vZFwtZm9yXC1zYWNyaWZpY2U7CivmnI8gPiBsaWdodFwtb2ZcLWNyZXNjZW50XC1tb29uOwor5peQID4gYW5cLWVtYnJvaWRlcmVkXC1wZW5uYW50Owor5pSZID4gdG9cLWdpdmVcLWFcLWhlbHBpbmdcLWhhbmQ7CivmkbAgPiB0b1wtc2VpemVcLXdpdGhcLXRoZVwtaGFuZDsKK+aRgCA+IHRvXC1jb3Zlclwtd2l0aFwtdGhlXC1oYW5kOwor5pC+ID4gdG9cLWNydXNoXC13aXRoXC10aGVcLWhhbmQ7CivmgLkgPiBhXC1wb2xpdGVcLXZlcnNpb25cLW9mXC1oZTsKK+W8kiA+IHRvXC1raWxsXC1vbmUnJ3NcLXN1cGVyaW9yOwor5bqIID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZXM7CivltbYgPiBsb3dcLXBhcnRcLW9mXC1hXC1tb3VudGFpbjsKK+WtkiA+IGxhcnZhZVwtb2ZcLXRoZVwtbW9zcXVpdG87Civlo5YgPiBvcGVuXC1zcGFjZVwtYWxvbmdcLXdhdGVyOwor5ZmAID4gc3BpcnRcLW91dFwtb2ZcLXRoZVwtbW91dGg7Civlj50gPiB0b1wtcmVzcGVjdGZ1bGx5XC1pbmZvcm07CivkvK4gPiB0b1wtbWFrZVwtYVwtZ3JlYXRcLWVmZm9ydDsKK+S2pSA+IHVuZXZlbmx5XC1maXR0aW5nXC10ZWV0aDsKK+S2pCA+IHNvdW5kXC1vZlwtY2hld2luZ1wtYm9uZXM7CivktoIgPiBhXC1zcXVpcnJlbFwtbGlrZVwtYW5pbWFsOwor5LOuID4gdG9cLWxvb2tcLWF0XC1pblwtc3VycHJpc2U7CivkspogPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtc2hhZDsKK+SwtSA+IGxvb2tzXC1saWtlXC1jb21tb25cLWNhcnA7CivksLAgPiBkcmVhcnlcLWNyaWVzXC1vZlwtZ2hvc3RzOwor5LCtID4gZHJlYXJ5XC1jcmllc1wtb2ZcLWdob3N0czsKK+SuuiA+IGx1eHVyaWFudFwtb2ZcLXRoZVwtZ3Jhc3M7Civkrq0gPiB0b1wtbG9va1wtYXRcLWluXC1zdXJwcmlzZTsKK+SuqiA+IHRvXC1nZWxkXC1hXC1ob3JzZVwtb3JcLWFzczsKK+SpvCA+IHN0aXRjaGVzXC1vblwtYVwtY292ZXJsZXQ7CivkqY0gPiB0b1wtbG9va1wtcGFsZVwtb3JcLXBhbGxpZDsKK+SotSA+IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KisID4gcmFpbmVkXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkqKEgPiByYWluZWRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiCA+IHRvXC1zaWdoXC1pblwtbGFtZW50YXRpb247CivkpZ8gPiBhXC1tZXRhbFwtbWFya2luZ1wtXC1zdGFrZTsKK+SijiA+IGluZGljYXRpbmdcLWV4Y2xhbWF0aW9uOwor5KG1ID4gZGVjb3JhdGlvblwtb25cLWNhcnJpYWdlOwor5KGwID4gc3Ryb25nXC1hbmRcLWR1cmFibGVcLWh1YjsKK+ShrCA+IGNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2U7CivkoYEgPiBub3RcLXdlbGxcLWZvcm1lZFwtZmlndXJlOwor5J+9ID4gc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkOwor5J6YID4gdG9cLWdvXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SdoiA+IGFuXC1hbmltYWxcLWluXC1vbGRcLXRpbWVzOwor5J2hID4gYW5cLWFuaW1hbFwtaW5cLW9sZFwtdGltZXM7CivknZMgPiBsb25nXC1iZWFyZFwtb3JcLXdoaXNrZXJzOwor5Jy6ID4gaHVza2luZ1wtYmVhbnNcLWZvclwtY2FrZTsKK+ScoSA+IHRvXC1zbWVsbFwtdGhlXC1mcmFncmFudHM7Civkm5kgPiB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbmNlOwor5JqeID4gdGhlXC1taWRkbGVcLW9mXC10aGVcLWhvcm47CivkmYQgPiBjbG90aGVzXC13aXRoXC10aGlja1wtaGVtOwor5Ji9ID4gY2xvdGhpbmdcLWFuZFwtb3JuYW1lbnRzOwor5JeQID4gYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivklbQgPiBhXC1zZWNvbmRcLWZvclwtbW9ua3Nob29kOwor5JSgID4gdGhpblwtcm9vdFwtb2ZcLXRoZVwtbG90dXM7Civkj6kgPiB0b1wtc2hydWdcLXRoZVwtc2hvdWxkZXJzOwor5I2xID4gdGhlXC13aWxkXC1nb2F0XC1vclwtc2hlZXA7Civki6ogPiBmaW5lXC1hbmRcLWRlbGljYXRlXC1zaWxrOwor5IuNID4gZmluZVwtYW5kXC1kZWxpY2F0ZVwtc2lsazsKK+SKjyA+IG1peGluZ1wtcmljZVwtd2l0aFwtYnJvdGg7CivkioMgPiBtaXhpbmdcLXJpY2VcLXdpdGhcLWJyb3RoOwor5IiEID4gYVwta2luZFwtb2ZcLXNvbGlkXC1iYW1ib287Civkh6MgPiBiYW1ib29cLXdpdGhcLXdoaXRlXC1iYXJrOwor5ISgID4gdG9cLXNhY3JpZmljZVwtdG9cLWhlYXZlbjsKK+SDpyA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7Civkg5QgPiBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5IKiID4gc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SCoCA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7CivkgIQgPiBjb250YWluZXJcLWZ1bGxcLW9mXC1mb29kOwor47+LID4gYVwta2luZFwtb2ZcLXNraW5cLWRpc2Vhc2U7CivjvJ4gPiBqYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O6niA+IHRvXC1zaWduXC1pblwtbGFtZW50YXRpb247CivjuK8gPiBhXC1maW5lXC1icmVlZFwtb2ZcLWNhdHRsZTsKK+O1ryA+IHNvdW5kXC1vZlwtd2F0ZXJcLWZsb3dpbmc7Civjs68gPiBnb2RkZXNzXC1vZlwtYW5cLWlua1wtc2xhYjsKK+OysSA+IGxvbmdcLWJlYXJkXC1vclwtd2hpc2tlcnM7CivjsYYgPiB0b1wtc21pbGVcLWF0XC1lYWNoXC1vdGhlcjsKK+OwvyA+IHRvXC1zaWdoXC1pblwtbGFtZW50YXRpb247CivjsKggPiB0b1wtdGFrZVwtYnJlYXRoXC1vclwtcmVzdDsKK+OukSA+IHNvdW5kXC1vZlwtYnJva2VuXC1zdGlja3M7Civjra8gPiB0cmVlXC13aXRoXC1zbWFsbFwtbGVhdmVzOwor46uKID4gZmx1dHRlcmluZ1wtb2ZcLXRoZVwtZmxhZzsKK+OqoyA+IGFcLXBsYWNlXC1pblwtaGFuXC1keW5hc3R5Owor46qfID4gdG9cLXJlZ2FyZFwtYXNcLWltcG9ydGFudDsKK+OqniA+IHRvXC1iZVwtaGVsZFwtYnlcLXRoZVwtaGFuZDsKK+OpuiA+IGFcLWNyYWNrXC1vblwtdGhlXC11dGVuc2lsOwor46mcID4gdG9cLWJlXC1pblwtcG9zc2Vzc2lvblwtb2Y7CivjqY4gPiB0b1wtcHJlc3NcLXdpdGhcLWFcLWZpbmdlcjsKK+OntiA+IHRoZVwtamluZ2xpbmdcLW9mXC1tZXRhbHM7Civjp5kgPiB0b1wtZ2l2ZVwtYVwtcGxheWZ1bFwtYmxvdzsKK+OngyA+IHRvXC1yZWNlaXZlXC13aGF0XC1pc1wtZHVlOwor46ajID4gdG9cLXRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor46aEID4gaGFyZFwtdG9cLXNheVwtb3JcLXByZWRpY3Q7CivvpJAgPiB0eXBlXC1vZlwtY3JlZXBpbmdcLXBsYW50Owor76SPID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+OkiiA+IGNoZWVyZnVsXC1hbmRcLWV4dWJlcmFudDsKK+OjmiA+IHRvXC1nb1wtc3RyYWlnaHRcLWZvcndhcmQ7CivjookgPiBhXC1yb29tXC13aXRoXC1vcGVuXC1zcGFjZTsKK+OglCA+IHNoYXBlc1wtb2ZcLXRoZVwtbW91bnRhaW47Civjn7sgPiB0aGVcLW1vYXRcLWFyb3VuZFwtYVwtY2l0eTsKK+ObsyA+IGFuXC1hYm5vbWFsXC11bmJvcm5cLWJhYnk7CivjmrcgPiB0aGVcLWJyZWFzdHNcLW9mXC1hXC13b21hbjsKK+OZsyA+IHJ1Z2dlZG5lc3NcLW9mXC10aGVcLXJvYWQ7CivjmaQgPiBhXC1jcmFja1wtaW5cLWVhcnRoZW53YXJlOwor45mYID4gdXNlZFwtaW5cLW5hbWluZ1wtYVwtcGxhY2U7CivjmK0gPiBhXC1ob2xsb3dcLWluXC10aGVcLWdyb3VuZDsKK+OYrCA+IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor45eCID4gdG9cLWtlZXBcLXRoZVwtbW91dGhcLXNodXQ7CivjlpAgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLWR1Y2tzOwor45S0ID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnQ7Civjk7kgPiBhXC1zaGFycFwtcG9pbnRlZFwtd2VhcG9uOwor45OmID4gdG9cLWRlbGliZXJhdGVcLWFuZFwtcGxhbjsKK+OTmCA+IGphZGVcLXdpdGhcLXNvbWVcLWRlZmVjdHM7Civop4kgPiB0b1wtd2FrZVwtdXBcLWZyb21cLXNsZWVwOwor55KwID4gamFkZVwtcmluZ1wtb3JcLWJyYWNlbGV0Owor6Ka6ID4gdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+immiA+IHRvXC13YWtlXC11cFwtZnJvbVwtc2xlZXA7CivliJIgPiB0b1wtcm93XC1vclwtcGFkZGxlXC1ib2F0Owor5aCqID4gYWRlcXVhdGVseVwtY2FwYWJsZVwtb2Y7Civnjq8gPiBqYWRlXC1yaW5nXC1vclwtYnJhY2VsZXQ7CivlkLQgPiBuYW1lXC1vZlwtd2FycmluZ1wtc3RhdGU7Civps7QgPiBjcnlcLW9mXC1iaXJkXC1vclwtYW5pbWFsOwor5ZGJID4gb25lXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor6aazID4gZ29cLXF1aWNrbHlcLW9yXC1zd2lmdGx5Owor5qaOID4gc21hbGxcLWV2ZXJncmVlblwtc2hydWI7CivpuKMgPiBjcnlcLW9mXC1iaXJkXC1vclwtYW5pbWFsOwor6amwID4gZ29cLXF1aWNrbHlcLW9yXC1zd2lmdGx5Owor5ae7ID4gcmVsYXRpdmVzXC1ieVwtbWFycmlhZ2U7CivnrZIgPiB0aGlja1wtcGllY2VcLW9mXC1iYW1ib287CivluJggPiBmbGFnXC1zaWduXC1vZlwtYVwtdGF2ZXJuOwor56i7ID4gcmljZVwtZ3Jvd2luZ1wtaW5cLWZpZWxkOwor56iyID4gcmljZVwtZ3Jvd2luZ1wtaW5cLWZpZWxkOwor56awID4gb25lJydzXC1kZWNlYXNlZFwtZmF0aGVyOwor5YmCID4gbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+ePgiA+IGluZmVyaW9yXC1raW5kXC1vZlwtamFkZTsKK+WYnyA+IHNvdW5kXC1vZlwtaG9yblwtdG9vdGluZzsKK+eRnCA+IGZsYXdsZXNzXC1nZW1cLW9yXC1qZXdlbDsKK+ePkSA+IGFcLWdlbVwtY3V0XC1saWtlXC1kcmFnb247Civor6wgPiBtYWtlXC1mYWxzZVwtYWNjdXNhdGlvbjsKK+WrliA+IHBhdHJvbml6ZVwtcHJvc3RpdHV0ZXM7Civpo5IgPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor6ZSiID4gcnVuXC1tZXRhbFwtaW50b1wtY3JhY2tzOwor5o6WID4gc3VwcG9ydFwtd2l0aFwtdGhlXC1hcm1zOwor5qOjID4ga2VycmlhXC1qYXBvbmljYVwtcGxhbnQ7Civoj4EgPiBmbG93ZXJcLW9mXC1sZWVrXC1mYW1pbHk7CivlkqkgPiB0aGVcLWJsZWF0aW5nXC1vZlwtc2hlZXA7Civnj4kgPiBzdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+mSjiA+IHRvb2xcLWZvclwtYm9yaW5nXC1ob2xlczsKK+aKnyA+IHJvbGxcLWFyb3VuZFwtd2l0aFwtaGFuZDsKK+i2uCA+IHNlbGxcLW9yXC1idXlcLXdob2xlc2FsZTsKK+WmoyA+IG9uZScnc1wtZGVjZWFzZWRcLW1vdGhlcjsKK+W1iiA+IGRpc3RyaWN0XC1pblwtc2hhb2hzaW5nOwor56y4ID4gZmxhdFwtYmFza2V0XC1mb3JcLWdyYWluOwor56WiID4gb25lJydzXC1kZWNlYXNlZFwtZmF0aGVyOwor6IKrID4gdGhlXC1naXp6YXJkXC1vZlwtYVwtZm93bDsKK+iLqyA+IHJ1c2hcLW9yXC1zdHJhd1wtbWF0dGluZzsKK+WzpCA+IGhpZ2hcLXBvaW50ZWRcLW1vdW50YWluOwor56etID4gb25lXC10aG91c2FuZFwtbWlsbGlvbnM7Civlp5IgPiB3aWZlXC1vZlwtZWxkZXJcLWJyb3RoZXI7Civok7AgPiB0b1wtaW5jcmVhc2VcLWZpdmVcLWZvbGQ7CivokowgPiBhcnRlbWlzaWFcLXN0ZWxsZXJpYW5hOwor6YWDID4gdGhlXC1zcGlyaXRcLW9mXC1hXC1iZWluZzsKK+ezlyA+IHBhcmNoZWRcLXdoZWF0XC1vclwtcmljZTsKK+i+iyA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+mrqyA+IGNoaWxkcmVuJydzXC1oYWlyXC1zdHlsZTsKK+iZuiA+IGxhcmdlXC1wb2lzb25vdXNcLXNuYWtlOwor6Ya1ID4gY29udHJpYnV0ZVwtZm9yXC1kcmlua3M7CivomqwgPiBhXC12YXJpZXR5XC1vZlwtYml2YWx2ZXM7Civoo7wgPiB0b1wtdGFrZVwtb2ZmXC1vbmUnJ3NcLXRvcDsKK+ectSA+IGV5ZXNcLWRpc2Vhc2VkXC1hbmRcLWRpbTsKK+aetSA+IGhvbGxvXC1zdHVtcFwtb2ZcLWFcLXRyZWU7CivomKkgPiBhcnRlbWlzaWFcLXN0ZWxsYXJpYW5hOwor6byDID4gdGhlXC1lZGlibGVcLXdhdGVyXC1mcm9nOwor6beAID4gdGhlXC1maXNoaW5nXC1jb3Jtb3JhbnQ7CivptKAgPiBhXC1raW5kXC1vZlwtbmlnaHRpbmdhbGU7CivpsKQgPiBzZXJpb2xhXC1xaW5xdWVyYWRpYXRhOwor6a+EID4gbGVwaWRvdHJpZ2xhXC1zdHJhdWNoaTsKK+mriCA+IGRlZmluZWRcLWFzXC10aGVcLXBlbHZpczsKK+miuCA+IGNvb2xcLWJyZWV6ZVwtb2ZcLWF1dHVtbjsKK+miryA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivpjK4gPiBydW5cLW1ldGFsXC1pbnRvXC1jcmFja3M7Civph7ogPiB0b29sXC1mb3JcLWJvcmluZ1wtaG9sZXM7CivphY4gPiBkb3VibGVcLWZlcm1lbnRlZFwtd2luZTsKK+i8riA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+i8niA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+i6iSA+IHNlbGxcLW9yXC1idXlcLXdob2xlc2FsZTsKK+iwuiA+IHRoZVwtbW91dGhcLW9mXC1hXC12YWxsZXk7CivoqqMgPiBtYWtlXC1mYWxzZVwtYWNjdXNhdGlvbjsKK+iguCA+IGF1bGFjb3Bob3JhXC1mZW1vcmFsaXM7CivonpIgPiBhdWxhY29waG9yYVwtZmVtb3JhbGlzOwor6Jy6ID4gcmVmbGVjdGlvblwtb2ZcLXJhaW5ib3c7CivonIYgPiBhXC12YXJpZXR5XC1vZlwtYml2YWx2ZXM7CivomJggPiBhXC1raW5kXC1vZlwtd2lsZFwtZ2luZ2VyOwor6JWaID4gdGhlXC1jYWx5eFwtb2ZcLWFcLWZsb3dlcjsKK+iUniA+IGFydGVtaXNpYVwtc3RlbGxlcmlhbmE7CivokbkgPiBraW5kXC1vZlwtY2hyeXNhbnRoZW11bTsKK+iQuyA+IHNtYWxsXC1idWRkaGlzdFwtdGVtcGxlOwor6IiaID4gdG9cLXB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+e/jyA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivnubQgPiBhXC1raW5kXC1vZlwtZmlzaGluZ1wtbmV0Owor56u8ID4gYmFtYm9vXC1jb3ZlclwtZm9yXC1ib2F0Owor56aoID4gcHJheVwtZm9yXC1nb29kXC1mb3J0dW5lOwor55mlID4gb2JzdHJ1Y3Rpb25cLW9mXC1ib3dlbHM7Civnl48gPiBhXC1icnVpc2VcLW9yXC1jb250dXNpb247Civnk48gPiBhXC1nZW1cLWN1dFwtbGlrZVwtZHJhZ29uOwor55KhID4gamFkZVwtbG9va1wtYWxpa2VcLXN0b25lOwor55GoID4gamFkZVwtbG9va1wtYWxpa2VcLXN0b25lOwor55GAID4gc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivmvoIgPiBjbGVhclwtYW5kXC1zdGlsbFwtd2F0ZXI7Civmt5wgPiByb2FyXC1vZlwtZGFzaGluZ1wtd2F2ZXM7CivmsocgPiBmbG93aW5nXC1hbmRcLWVuZ3VsZmluZzsKK+aqnyA+IHNtYWxsXC1ldmVyZ3JlZW5cLXNocnViOwor5pqOID4gc3VuXC1iZWdpbm5pbmdcLWRlY2xpbmU7CivmkbYgPiByb2xsXC1hcm91bmRcLXdpdGhcLWhhbmQ7CivltqAgPiBoaWdoXC1wb2ludGVkXC1tb3VudGFpbjsKK+W1vCA+IHdpbmRpbmdcLW1vdW50YWluXC1wYXRoOwor5Z+1ID4gaGFyZGVuZWRcLWRpcnRcLW9yXC1jbGF5Owor5Ze7ID4gdG9cLXNjcmVlblwuXC1sb3F1YWNpb3VzOwor5ZCzID4gb25lXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor5YyfID4gZGl2YW5cLWZvclwtdHdvXC1wZXJzb25zOwor5YqRID4gbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+WJviA+IHRvXC1waWNrXC11cFwtd2l0aFwta25pZmU7CivliaQgPiBtZWRpY2luYWxcLXByZXBhcmF0aW9uOwor5LWXID4gdG9cLWNsZWFuXC10aGVcLXdpdGhlcmVkOwor5LWEID4gdG9cLWJvaWxcLW9yXC1zdGV3XC13aGVhdDsKK+S0tiA+IHRvXC1ib2lsXC1vclwtc3Rld1wtd2hlYXQ7CivktJQgPiB0aGVcLWZpc2hpbmdcLWNvcm1vcmFudDsKK+SzuSA+IGFcLWtpbmRcLWRvdmVcLWxpa2VcLWJpcmQ7Civks50gPiBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmRzOwor5LGfID4gYVwta2luZFwtb2ZcLXNpbHZlclwtZmlzaDsKK+SvryA+IGhhbmdcLWRvd25cLW9mXC10aGVcLWhhaXI7Civkr60gPiBvZlwtbmljZVwtYW5kXC1nb29kXC1oYWlyOwor5K6EID4gYW5cLW9uZVwteWVhclwtb2xkXC1ob3JzZTsKK+SttCA+IGFuXC1vbmVcLXllYXJcLW9sZFwtaG9yc2U7Civkq7kgPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KqlID4gc2hhbGxvdHNcLW9yXC1zY2FsbGlvbnM7CivkqakgPiBhXC1tZWFzdXJlXC1vZlwtY2FwYWNpdHk7Civkpr0gPiBhblwtZWFzdFwtYW5kXC13ZXN0XC13YWxsOwor5KaaID4gd2lkZVwtb3Blblwtb2ZcLXRoZVwtZG9vcjsKK+SmjCA+IHRoZVwtZG9vclwtaXNcLXdpZGVcLW9wZW47CivkpYggPiB0aGVcLXN5bWJvbFwtZm9yXC1jb2JhbHQ7CivkpJcgPiB0YXN0ZVwtb2ZcLXN0cm9uZ1wtZHJpbms7CivkoqkgPiB0b1wtZm9yYmlkXC10b1wtcHJvaGliaXQ7CivkobYgPiB2ZWhpY2xlc1wtYW5kXC1nYXJtZW50czsKK+SemiA+IHRvXC1oYW5nXC1vblwtYVwtYmlnXC10cmVlOwor5J2WID4gcmVwdGlsZXNcLXdpdGhvdXRcLWZlZXQ7Civkm7EgPiB0b1wtdGFsa1wtdW5yZW1pdHRpbmdseTsKK+SbiiA+IGNoZWVyZnVsXC1hbGxcLXRoZVwtdGltZTsKK+SbgyA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivkmJAgPiB0aGVcLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5JeKID4gdG9cLXB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+SXiSA+IGFcLXNtYWxsXC1zb2xpdGFyeVwtd2FzcDsKK+SWlCA+IGFcLWtpbmRcLW9mXC13aGl0ZVwtdGlnZXI7Civklo0gPiB0b1wtYWN0XC13aXRoXC1yZXZlcmVuY2U7CivklLUgPiBmcmFncmFudFwtdGhvcm91Z2h3b3J0Owor5JSKID4gZGVuc2VcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5JOSID4gc2NpcnB1c1wtY3lwZXJpbnVzXC12YXI7CivkkqYgPiBncmFzc1wtZmxvYXRzXC1vblwtd2F0ZXI7CivkkoQgPiBmdWxseVwtbGFkZW5cLW9mXC1hXC1ib2F0Owor5JGdID4gYVwtc21hbGxcLWN1cFwtd2l0aFwtZWFyczsKK+SPpCA+IHRvcFwtb2ZcLXRoZVwtaHVtYW5cLWhlYWQ7CivkjrYgPiBvZmZlcmluZ1wtYmxvb2RcLXRvXC1nb2Q7CivkjpogPiB0aGVcLWVuZFwtb2ZcLWJpcmRcLXdpbmdzOwor5I6WID4gc29hcmluZ1wtdXBcLWluXC10aGVcLXNreTsKK+SOgSA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivkjKcgPiBhXC1raW5kXC1vZlwtc2lsa1wtZmFicmljOwor5IyfID4gdG9cLXdlYXZlXC1zaWxrXC1yaWJib25zOwor5IuCID4gZHJlc3Nlc1wtZm9yXC10aGVcLWJyaWRlOwor5IinID4gc2tpblwtb2ZcLWJhbWJvb1wtc2hvb3RzOwor5IieID4gYW5jaWVudFwtbmFtZVwtb2ZcLWluZGlhOwor5Ie+ID4gYVwtZmx1dGVcLXdpdGhcLTIzXC10dWJlczsKK+SHsCA+IGFcLWJhbWJvb1wtYmluZGVkXC10b3JjaDsKK+SHoSA+IHRoZVwtc2h1dHRsZVwtb2ZcLWFcLWxvb207CivkhqAgPiBhXC1nb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+SGmyA+IHNvbWV0aGluZ1wtaW5cLXRoZVwtY2F2ZTsKK+SFlyA+IGZvdXJcLWJ1bmRsZVwtb2ZcLWdyYWluczsKK+SFkSA+IGZvdXJcLWJ1bmRsZVwtb2ZcLWdyYWluczsKK+SBrSA+IHRvXC1naXZlXC1hblwtYW5ncnlcLWxvb2s7CivkgZogPiBhXC1raW5kXC1vZlwtZXllXC1kaXNlYXNlOwor5IC9ID4gdG9cLWxvb2tcLWF0XC1lYWNoXC1vdGhlcjsKK+SAoCA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+SAkyA+IHRvXC10dXJuXC1vbmUnJ3NcLWV5ZXNcLXRvOwor47+0ID4gd2lkZVwtcGllY2VcLW9mXC1sZWF0aGVyOwor47+vID4gd2lkZVwtcGllY2VcLW9mXC1sZWF0aGVyOwor47+rID4gdG9cLXNwbGl0XC10YW5nbGVkXC1oZW1wOwor47+PID4gcGFyYWx5c2lzXC1vZlwtdGhlXC1ib2R5Owor476+ID4gZGlzZWFzZVwtb2ZcLXRoZVwtdGhyb2F0Owor476kID4gZGlzZWFzZVwtb2ZcLXRoZVwtdGhyb2F0Owor47yyID4gc291bmRcLW9mXC1icm9rZW5cLXRpbGVzOwor47yQID4gYVwta2luZFwtb2ZcLXdoaXRlXC1tZWxvbjsKK+O5tiA+IGFcLWtpbmRcLW9mXC13aWxkXC1hbmltYWw7CivjuaYgPiBkb2dcLXdpdGhcLWFcLXNob3J0XC10YWlsOwor47mUID4gY2F0dGxlXC13aXRoXC1sb25nXC1iYWNrOwor47eXID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+O3jyA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivjtawgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor47WoID4gYVwtZHJ5XC1sYW5kXC1pblwtYVwtcml2ZXI7Civjs4ggPiBhXC1ncmVhdFwtZmxvd1wtb2ZcLXdhdGVyOwor47GfID4gdG9cLXJpcFwtb3BlblwtdGhlXC1mbGVzaDsKK+OwhCA+IGFcLXNtYWxsXC1jaGVzdG51dFwtdHJlZTsKK+OvpSA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+OulyA+IHRoZVwtaGFuZGxlXC1vZlwtYVwtc3BlYXI7CivjrY0gPiBjYXBpdGFsXC1mb3JtXC1vZlwtc2V2ZW47CivjrKAgPiB0b1wtZXhwb3NlXC10b1wtc3VubGlnaHQ7CivjrJMgPiB0b1wtZXhwb3NlXC10b1wtc3VubGlnaHQ7CivjrIIgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor46mfID4gdG9cLXNld1wtc29tZVwtb3JuYW1lbnRzOwor46iMID4gdG9cLW1pbGtcLWFcLWNvd1wtb3JcLWdvYXQ7Civjo50gPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWU7CivjoIsgPiBhXC1sb2Z0eVwtbW91bnRhaW5cLXBlYWs7Civjn54gPiBwcmVjaXBpdG91c1wtYW5kXC1sb2Z0eTsKK+OfnSA+IHRvXC1iYW5rXC11cFwtd2l0aFwtZWFydGg7Civjn5wgPiBzaGFwZVwtb2ZcLXRoZVwtbW91bnRhaW47Civjn5kgPiBzaGFwZVwtb2ZcLXRoZVwtbW91bnRhaW47Civjn5YgPiBhXC1kaWFsZWN0XC1vZlwtbWlub3JpdHk7Civjn44gPiBhXC1sb25nXC1tb3VudGFpblwtcmlkZ2U7CivjnoEgPiBjYW5cLW5vdFwtd2Fsa1wtbm9ybWFsbHk7Civjnb4gPiBjYW5cLW5vdFwtd2Fsa1wtbm9ybWFsbHk7CivjmLAgPiBuYW1lXC1vZlwtYVwtb2xkXC1jb3VudHJ5Owor45ihID4gYVwtcGVuXC1mb3JcLXdpbGRcLWJlYXN0czsKK+OYliA+IHRvXC1tYWtlXC1hXC1kaXN0dXJiYW5jZTsKK+OXgSA+IHRoZVwtcm9vZlwtb2ZcLXRoZVwtbW91dGg7CivjlpcgPiBoaWdoXC1yaWRnZXNcLW9mXC1jbGlmZnM7CivjlaIgPiBwcm9mb3VuZFwtc2lnbmlmaWNhbmNlOwor45KGID4gdG9cLWdhdGhlclwtdGhlXC1oYXJ2ZXN0Owor5LuAID4gZmlsZVwtb2ZcLXRlblwtc29sZGllcnM7CivosqwgPiBvbmUnJ3NcLXJlc3BvbnNpYmlsaXR5Owor54i1ID4gZmV1ZGFsXC10aXRsZVwtb3JcLXJhbms7CivotKMgPiBvbmUnJ3NcLXJlc3BvbnNpYmlsaXR5Owor5ZWKID4gZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5qWaID4gbmFtZVwtb2ZcLWZldWRhbFwtc3RhdGU7CivmiZggPiB0b1wtaG9sZFwtdXBcLXdpdGhcLXBhbG07CivmsbIgPiBkcmF3XC13YXRlclwtZnJvbVwtd2VsbDsKK+mthSA+IGtpbmRcLW9mXC1mb3Jlc3RcLWRlbW9uOwor5LyKID4gdGhpcmRcLXBlcnNvblwtcHJvbm91bjsKK+m4vyA+IHNwZWNpZXNcLW9mXC13aWxkXC1zd2FuOwor5aelID4gbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor5o2nID4gaG9sZFwtdXBcLWluXC10d29cLWhhbmRzOwor5LmZID4gc2Vjb25kXC1oZWF2ZW4nJ3NcLXN0ZW07CivlkIEgPiBpbnRlcmplY3Rpb25cLScnYWxhc1whJyc7Civlp6ggPiBtb3RoZXJcL3dpZmUnJ3NcLXNpc3RlcjsKK+S6qSA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7Civlg7UgPiBzdGlmZlwtYW5kXC1tb3Rpb25sZXNzOwor5ouxID4gZm9sZFwtaGFuZHNcLW9uXC1icmVhc3Q7Civnpr4gPiBncmFpblwtc3RpbGxcLW9uXC1zdGFsazsKK+WXoSA+IHNvdW5kXC1vZlwtZmx5aW5nXC1iZWVzOwor5YWuID4gZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor54ypID4gc3BlY2llc1wtb2ZcLW9yYW5ndXRhbjsKK+eLniA+IGZlcm9jaW91c1wtYXBwZWFyYW5jZTsKK+aLiCA+IHBpY2tcLXVwXC13aXRoXC1maW5nZXJzOwor6ZmbID4gc3RlcHNcLWxlYWRpbmdcLXRocm9uZTsKK+m4ryA+IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7Civlja8gPiB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+eGoCA+IGJyaWdodFwtYW5kXC1zcGFya2xpbmc7CivpmIIgPiBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor5reFID4gd2F0ZXJcLXVzZWRcLXdhc2hcLXJpY2U7CivkvZogPiBpbmR1bGdlXC1pblwtcGxlYXN1cmVzOwor6L6aID4gcnVtYmxpbmdcLW9mXC12ZWhpY2xlczsKK+W3vSA+IHRoXC1vZlwtdGhlXC04XC10cmlncmFtczsKK+iohyA+IHRoZVwtc291bmRcLW9mXC1hXC1jcmFzaDsKK+eLuiA+IHRoZVwtc25hcmxpbmdcLW9mXC1kb2dzOwor5rWUID4gc3RlZXBcLWJhbmtcLWJ5XC1zdHJlYW07Civok4ogPiBsdXh1cmlhbnRcLXZlZ2V0YXRpb247Civok6AgPiBncmFjaWxhcmlhXC12ZXJydWNvc2E7Civoj4AgPiBsdXh1cmlhbmNlXC1vZlwtZ3Jvd3RoOwor6IOXID4gcHVzdHVsZXNcLW9mXC1hbnlcLWtpbmQ7CivpooMgPiBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+WehiA+IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5qiXID4gYWlsYW50aHVzXC1nbGFuZHVsb3NhOwor6JqnID4gYVwtcmVkXC1zcG90dGVkXC1saXphcmQ7CivnvLYgPiBlYXJ0aGVuXC1jcm9ja1wtb3JcLWphcjsKK+ixsyA+IGFcLXpob3VcLWR5bmFzdHlcLXN0YXRlOwor6L26ID4gc21hbGxcLWxpZ2h0XC1jYXJyaWFnZTsKK+mAryA+IGxlYXZlXC13aXRob3V0XC1yZWFzb247CivpvZ4gPiB0b1wtZGlzcGxheVwtdGhlXC10ZWV0aDsKK+m8iCA+IGFcLWZyZXNoXC13YXRlclwtdHVydGxlOwor6byCID4gYVwta2luZFwtb2ZcLXNlYVwtdHVydGxlOwor6biHID4ga2luZFwtb2ZcLWJpcmRcLW9mXC1wcmV5Owor6biCID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor6berID4gdHVycXVvaXNlXC1raW5nZmlzaGVyOwor6beBID4gZmlzaGhhd2tcLWJvd1wtb3JcLXByb3c7CivptLsgPiBzcGVjaWVzXC1vZlwtd2lsZFwtc3dhbjsKK+m0piA+IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7CivpsJwgPiBiaWdcLW1vdXRoZWRcLWZsb3VuZGVyOwor6au6ID4gdGhlXC1oYWlyXC1kaXNoZXZlbGxlZDsKK+mqoyA+IGhvcnNlXC13aXRob3V0XC1zYWRkbGU7CivpqY8gPiBob3JzZVwtd2l0aG91dFwtc2FkZGxlOwor6aS9ID4gbWFrZVwtcHJlc2VudFwtb2ZcLWZvb2Q7CivpoI8gPiBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+mfsSA+IHdpbGRcLW9uaW9uc1wtb3JcLWxlZWtzOwor6Z+vID4gd2lsZFwtb25pb25zXC1vclwtbGVla3M7CivpnIMgPiBsb25nXC1jb250aW51ZWRcLXJhaW5zOwor6ZeNID4gdG93ZXJcLW92ZXJcLWNpdHlcLWdhdGU7CivplqEgPiBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor6Y2xID4gdGhpblwtcGxhdGVzXC1vZlwtbWV0YWw7CivpibYgPiBzYWNyaWZpY2lhbFwtY2F1bGRyb247CivphrAgPiBiaXR0ZXJcLXRhc3RlXC1pblwtd2luZTsKK+i9lCA+IHJ1bWJsaW5nXC1vZlwtdmVoaWNsZXM7Civou7ogPiBzbWFsbFwtbGlnaHRcLWNhcnJpYWdlOwor6LaCID4gdG9cLXRha2VcLWFkdmFudGFnZVwtb2Y7CivopawgPiBsb3dlclwtcGFydFwtb2ZcLWFcLXJvYmU7CivoorMgPiBzcHJlYWRcLW9uZScnc1wtY2xvdGhlczsKK+icmyA+IGh5ZHJvcGhpbHVzXC1jb2duYXR1czsKK+ibmiA+IGN5cnRveGlwaHVzXC1yaXRzZW1hZTsKK+iYuiA+IGdyYWNpbGFyaWFcLXZlcnJ1Y29zYTsKK+iWoiA+IHdvb2R5XC1jbGltYmluZ1wtcGxhbnQ7CivojIAgPiBvdmVyZ3Jvd25cLXdpdGhcLWdyYXNzOwor6IqEID4gbWV0YXBsZXhpc1wtc3RhdW50b25pOwor6Ii6ID4gcGxhY2VcLW5hbWVcLWluXC10YWl3YW47CivohKEgPiBzdHJpcHNcLW9mXC1kcmllZFwtbWVhdDsKK+eygyA+IGVtcHR5XC1odXNrc1wtb2ZcLWdyYWluOwor56qjID4gdG9cLXJ1c2hcLW91dFwtb2ZcLWFcLWRlbjsKK+ephyA+IHBhbmljdW1cLWZydW1lbnRhY2V1bTsKK+ejkiA+IHRvXC1mYWxsXC1mcm9tXC1vclwtaW50bzsKK+efkSA+IHRoZVwtcHVwaWxcLW9mXC10aGVcLWV5ZTsKK+edjSA+IHRvXC1sb29rXC1hdFwtZmVhcmZ1bGx5Owor55WdID4gY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+eVkiA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7CivnlYYgPiBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor55S9ID4gZHJhaW5cLWJldHdlZW5cLWZpZWxkczsKK+eUgyA+IGJyaWNrXC13YWxsXC1vZlwtYVwtd2VsbDsKK+eQliA+IGNhcnZlZFwtamFkZVwtd2luZVwtY3VwOwor546mID4gYnJva2VuXC1waWVjZVwtb2ZcLWphZGU7CivnjbAgPiBmZXJvY2lvdXNcLWFwcGVhcmFuY2U7CivngLMgPiB0b1wtYXJyaXZlXC1cKG9mXC13YXRlclwpOwor5r6sID4gdG9cLXJhaW5cLWNvbnRpbnVvdXNseTsKK+a9ryA+IHN0ZWVwXC1iYW5rXC1ieVwtc3RyZWFtOwor5rSkID4gYVwtZm91bnRhaW5cLW9yXC1zcHJpbmc7Civmp74gPiBwYXN0ZVwtd2FsbFwtd2l0aFwtZGlydDsKK+ajqCA+IHRhbGx5XC1vclwtd29vZGVuXC1wYXNzOwor5qGsID4gcGVhclwtYW5kXC1vdGhlclwtdHJlZXM7CivmlbMgPiB0b1wtZ292ZXJuXC1mb3JjZWZ1bGx5Owor5pWBID4gdG9cLXdlaWdoXC1pblwtdGhlXC1oYW5kOwor5pCOID4gdG9cLXJ1Ylwtd2l0aFwtdGhlXC1oYW5kOwor5oi8ID4gdGhcLW9mXC1lYXJ0aFwtYnJhbmNoZXM7Civlt7ogPiB0aFwtb2ZcLXRoZVwtOFwtdHJpZ3JhbXM7CivltY8gPiBhXC1tb3VudGFpblwtaW5cLXNoZW54aTsKK+WtrSA+IHRvXC1jYXJyeVwtb25cLXRoZVwtYmFjazsKK+WriyA+IHNsZW5kZXJcLWFuZFwtZGVsaWNhdGU7CivlqaMgPiBtYXJyaWFnZVwtY29ubmVjdGlvbnM7CivlpJggPiB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+WjmiA+IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5ZusID4gdG9cLXJldHVyblwtdG9cLW9yXC1mcm9tOwor5YqCID4gY2hpc2VsXC1mb3JcLWVuZ3JhdmluZzsKK+S2mSA+IHN3ZWxsaW5nXC1vZlwtdGhlXC1ndW1zOwor5LaKID4gdG9cLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5LSfID4gYW5cLW9uZVwteWVhclwtb2xkXC1kZWVyOwor5LSWID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSMID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSLID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSIID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSCID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSAID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LO2ID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LOzID4gYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkOwor5LOTID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LORID4gYVwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7Civks4sgPiBhXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+SziSA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzhCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzgiA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZDsKK+SysSA+IGFcLWtpbmRcLW9mXC1ibGFja1wtYmlyZDsKK+SylSA+IHRoZVwteWFuZ3R6ZVwtcG9ycG9pc2U7CivksZAgPiBhXC1raW5kXC1vZlwtYmxhY2tcLWZpc2g7CivksYAgPiBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2g7Civkr7ogPiB0aGVcLWhhaXJcLWRpc2hldmVsbGVkOwor5K6hID4gYVwtc3VwZXJuYXR1cmFsXC1ob3JzZTsKK+SugiA+IGhvcnNlXC13aXRoXC1sb25nXC1oYWlyOwor5K2+ID4gdG9cLWNhcnJ5XC1vblwtdGhlXC1iYWNrOwor5K23ID4gaG9yc2VcLXdpdGhcLWxvbmdcLW1hbmU7CivkrKkgPiB0b1wtYWJzdGFpblwtZnJvbVwtbWVhdDsKK+SsoyA+IGFcLXNhY3JpZmljaWFsXC12aWN0aW07Civkq6AgPiBzaG9ydFwtaGFpclwtYW5kXC1iZWFyZDsKK+SpvSA+IGFcLXF1aXZlclwtb25lXC1hXC1ob3JzZTsKK+SpgiA+IHRvXC1jb21lXC10b1wtdGhlXC1mcm9udDsKK+SnlyA+IG1vdW50YWluc1wtY29sbGFwc2luZzsKK+SmpiA+IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpaQgPiB0aGVcLW5lY2tcLW9mXC1hXC1wZXN0bGU7CivkpaEgPiB0aGluXC1wbGF0ZXNcLW9mXC1tZXRhbDsKK+SlhiA+IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpYUgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWEID4gdG9cLXBsYXN0ZXJcLXdpdGhcLWdvbGQ7CivkpLggPiBzaG9ydFwtc3BlYXJcLW9yXC1sYW5jZTsKK+SgkSA+IGJldHdlZW5cLXRoZVwtYnV0dG9ja3M7CivkoIggPiBoYXJkXC10b1wtbW92ZVwtZm9yd2FyZDsKK+SfqSA+IGhhcmRcLW9mXC13YWxrXC1mb3J3YXJkOwor5J6ZID4gdG9cLXdhbGtcLWluXC1odXJyaWVkbHk7CivknZEgPiBhXC1sb2NhbFwtcHJvZHVjZWRcLXBpZzsKK+ScpyA+IHRvXC1pbnN1bHRcLXdpdGhcLXdvcmRzOwor5JyTID4gYVwtc2xpcFwtb2ZcLXRoZVwtdG9uZ3VlOwor5JyAID4gdG9cLWluc3VsdFwtd2l0aFwtd29yZHM7Civkm4wgPiB0b1wtcHJvdm9rZVwtb3JcLWFyb3VzZTsKK+SZriA+IHN0cmlwXC1vZlwtdGhlXC1jbG90aGVzOwor5Ji+ID4gbGVnc1wtb2ZcLXRoZVwtdHJvdXNlcnM7CivklasgPiBhXC1vbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+SUiCA+IGx1c2hcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5JGgID4gbG9uZ1wtYW5kXC1uYXJyb3dcLWJvYXQ7CivkkLggPiB0aGVcLWJhY2tcLW9mXC10aGVcLWtuZWU7Civkj78gPiB0aGVcLWNhbGZcLW9mXC10aGVcLWxlZ3M7Civkj6EgPiB1bmNvb2tlZFwtb3JcLXJhd1wtbWVhdDsKK+SKsyA+IHRvXC1icmVha1wtaW50b1wtcGllY2VzOwor5IqyID4gdG9cLWh1bGxcLXJpY2VcLXJvdWdobHk7CivkioIgPiBwb29yXC1xdWFsaXR5XC1vZlwtcmljZTsKK+SJkSA+IGJsYWNrXC1za2lubmVkXC1iYW1ib287CivkiKYgPiBhXC1jdXJ2ZWRcLWJhbWJvb1wtd2hpcDsKK+SIkSA+IHRvb2xzXC10b1wtdW5yZWVsXC1zaWxrOwor5IiFID4gdG9vbHNcLXRvXC11bnJlZWxcLXNpbGs7CivkiIEgPiB0b29sc1wtdXNlZFwtb25cLWFcLWJvYXQ7Civkh5ggPiB0b29sXC10b1wtY29sbGVjdFwtcm9wZTsKK+SGoyA+IGFib2RlXC1vZlwtdGhlXC1lbXBlcm9yOwor5IaPID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IaDID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IWuID4gYVwtZnVsbFwtaGVhZFwtb2ZcLWdyYWluOwor5IWTID4gY3VydmVkXC1waWVjZVwtb2ZcLXdvb2Q7CivkhY8gPiByaWNlXC1ib2lsZWRcLXRvXC1ncnVlbDsKK+SFiSA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SEvyA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SEryA+IHRlblwtaGFuZGxlXC1vZlwtZ3JhaW5zOwor5ISCID4gdG9cLXByYXlcLWFuZFwtdG9cLWN1cnNlOwor5IOwID4gYnJpY2tcLW9yXC1zdG9uZVwtc3RlcHM7CivkgpIgPiBzaG9ydFwtdG9cLWN1cnJ5XC1mYXZvcjsKK+SCgiA+IHRvXC1nYXplXC1hdFwtaW5cLXRlcnJvcjsKK+SBrCA+IHRvXC1hY3RcLXByZXRlbnRpb3VzbHk7CivkgLcgPiB0b1wtaGF2ZVwtcXVpY2tcLWdsYW5jZTsKK+SAsiA+IGRpc2Vhc2VzXC1pblwtdGhlXC1leWVzOwor47+4ID4gdG9cLWNhc3RcLW9mZlwtdGhlXC1za2luOwor47+eID4gYW5cLW9sZFwtbWFuXC1vZlwtZWlnaHR5Owor472kID4gYVwtc21hbGxcLXBsb3RcLW9mXC1sYW5kOwor472iID4gdG9cLXBsb3VnaFwtdGhlXC1maWVsZHM7CivjvZUgPiBuZXdcLWJyYW5jaGVzXC1ncm93aW5nOwor472DID4gYVwtYmlnXC1waWVjZVwtb2ZcLWJyaWNrOwor47yiID4gYnJpY2tzXC1hblwtZWF0aGVuXC1qYXI7CivjvIkgPiBncmVlblwtY29sb3JlZFwtbWVsb25zOwor47uuID4gYnJpZ2h0XC1hbmRcLWJyaWxsaWFudDsKK+O6riA+IGZpbmVcLXN0b25lXC1saWtlXC1qYWRlOwor47qoID4gZmluZVwtc3RvbmVcLWxpa2VcLWphZGU7CivjuoIgPiBiaWdcLWFuZFwtc3Ryb25nXC1zaGVlcDsKK+O5mCA+IHNoaW5ib25lXC1vZlwtYVwtY2F0dGxlOwor47iqID4gYW5cLW94XC13YWxraW5nXC1zbG93bHk7Civjt5kgPiB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor47aUID4gc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O2jiA+IHN3aWZ0XC1hbmRcLXRvcnJlbnRpYWw7CivjtaEgPiBzd2lmdFwtYW5kXC10b3JyZW50aWFsOwor47WeID4gYmVsbGllZFwtaW5cLXdhdGVyXC1nYXM7Civjs7wgPiBidWJibGluZ1wtb2ZcLWZvdW50YWluOwor47OaID4gZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7Civjs5QgPiB0b1wtc29ha1wtb3JcLWJlXC1zb2FrZWQ7Civjs5AgPiBmbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OyqyA+IGhhaXJcLWtub3RzXC1pblwtYVwtbWVzczsKK+OyoiA+IGhhaXJcLWtub3RzXC1pblwtYVwtbWVzczsKK+OwiyA+IGFcLWtpbmRcLW9mXC1mcnVpdFwtdHJlZTsKK+OvjCA+IHRvXC1vcGVyYXRlXC1vclwtbWFuYWdlOwor462eID4gYVwta2luZFwtaW5mZXJpb3JcLXdvb2Q7CivjrZIgPiBhXC1mYXJtaW5nXC1pbnN0cnVtZW50Owor46qwID4gdG9cLWFic3RhaW5cLWZyb21cLW1lYXQ7CivjqbsgPiBydWdnZWRcLW1vdW50YWluXC1wYXRoOwor46mUID4gYVwtdG9vbFwtdG9cLW1ha2VcLWFcLWJvdzsKK++nvSA+IGZpbGVcLW9mXC10ZW5cLXNvbGRpZXJzOwor46e5ID4gdG9cLXN0cmlrZVwtd2l0aFwtZmlzdHM7CivjoZkgPiBjdXJ0YWluXC1mb3JcLWNhcnJpYWdlOwor46CXID4gZGVlcFwtaW5cLXRoZVwtbW91bnRhaW47CivjnqUgPiBkZWVwXC1pblwtdGhlXC1tb3VudGFpbjsKK+OenyA+IHNhdmluZ3NcLWFuZFwtcmVzZXJ2ZXM7CivjnJIgPiBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7CivjmaMgPiB0b1wtcGlsZVwtYVwtc2FuZFwtaGlsbHM7CivjmZEgPiB0aGVcLWNhbm9weVwtb2ZcLWhlYXZlbjsKK+OYjiA+IHRoZVwtcm9hcnNcLW9mXC1hXC10aWdlcjsKK+OYhSA+IHRvXC1ob2xkXC1pblwtdGhlXC1tb3V0aDsKK+OVoSA+IHRoZVwtYmVkXC1vZlwtYVwtdG9ycmVudDsKK+OVjCA+IHRvXC1yYWlzZVwtdGhlXC1jdXJ0YWluOwor45SLID4gY3V0XC1pbnRvXC10aGluXC1zbGljZXM7CivjkoUgPiB0b1wtdW5iaW5kXC10aGVcLWNvbGxhcjsKK+ORiSA+IGNhbm5vdFwtc3RyYWlnaHRlblwtdXA7Civlub4gPiBob3dcLW1hbnlcP1wtaG93XC1tdWNoXD87CivlpY8gPiBtZW1vcmlhbGl6ZVwtZW1wZXJvcjsKK+aCqCA+IGhvbm9yaWZpY1wtZm9yXC0nJ3lvdScnOwor5ZCPID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7CivlhYAgPiB0b1wtY3V0XC1vZmZcLXRoZVwtZmVldDsKK+iDtCA+IHRoZVwtbGFyZ2VcLWludGVzdGluZTsKK+enpiA+IGZldWRhbFwtc3RhdGVcLW9mXC1xaW47CivmoYEgPiBjcm9zc1wtYmVhbXNcLW9mXC1yb29mOwor6I6OID4ga2luZFwtb2ZcLXNlZGdlXC1ncmFzczsKK+iWmyA+IGtpbmRcLW9mXC1tYXJzaFwtZ3Jhc3M7CivntaMgPiB0b1wtYmFzdGVcLWZvclwtc2V3aW5nOwor5oKWID4gYmVcLWNvbnRyYWRpY3RvcnlcLXRvOwor6IqSID4gbWlzY2FudGh1c1wtc2luZW5zaXM7CivlmLYgPiBuZWlnaGluZ1wtb2ZcLWFcLWhvcnNlOwor5Y+9ID4gc2lnaFwtaW5cLWRpc2FwcHJvdmFsOwor5Y6lID4gcGVyc29uYWxcLXByb25vdW5cLWhlOwor5ZytID4gamFkZVwtcG9pbnRlZFwtYXRcLXRvcDsKK+W+mCA+IHdhbGtcLWJhY2tcLWFuZFwtZm9ydGg7CivmmaQgPiBoYXZlXC1pbnRlcnZpZXdcLXdpdGg7CivoiLcgPiB0aGVcLXNpZGVzXC1vZlwtYVwtYm9hdDsKK+mCrCA+IHZhcmlvdXNcLXBsYWNlXC1uYW1lczsKK+ikkCA+IGNvYXJzZVwtd29vbGVuXC1jbG90aDsKK+mmiCA+IG9mZmVyXC1mb29kXC1zdXBlcmlvcjsKK+WUpyA+IGNoaXJwaW5nXC1vZlwtaW5zZWN0czsKK+WSlCA+IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eBuCA+IGNhdXRlcml6ZVwtd2l0aFwtbW94YTsKK+mptyA+IHRlYW1cLW9mXC1mb3VyXC1ob3JzZXM7CivnsrwgPiBjbGVhclwtXChhc1wtb2ZcLXdhdGVyXCk7CivnvpogPiBzcGVjaWVzXC1vZlwtYW50ZWxvcGU7CivlkZMgPiB0YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+evmSA+IHBvbGVcLXVzZWRcLXB1bnRcLWJvYXQ7CivmuY0gPiByYXBpZFwtd2F0ZXJcLWN1cnJlbnQ7CivohI0gPiBtaW5jZWRcLW1lYXRcLW9yXC1maXNoOwor6Y+WID4gdG9cLWZpZ2h0XC10b1wtdGhlXC1lbmQ7Civogr0gPiBhXC1jaGVtaWNhbFwtY29tcG91bmQ7CivljZ8gPiBhXC1jaGVtaWNhbFwtY29tcG91bmQ7Civpiq4gPiBiZWxsc1wtaHVuZ1wtb25cLWhvcnNlOwor56yzID4gYVwtcmVlZFwtbGVhZlwtd2hpc3RsZTsKK+iWjyA+IHNlZWRcLW9mXC1qb2InJ3NcLXRlYXJzOwor5oKdID4gdG9cLWxhdWdoXC1hdFwtdG9cLXBpdHk7CivosYcgPiBhXC1zbWFsbFwta2lkbmV5XC1iZWFuOwor5qGJID4gZXVjYWx5cHR1c1wtZ2xvYnVsdXM7CivouYEgPiB0b1wtd2Fsa1wtd2l0aFwtYVwtbGltcDsKK+iFiCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+ienyA+IGtpbmRcLW9mXC1jYXRlcnBpbGxhcjsKK+azriA+IHpob3VcLWR5bmFzdHlcLXNjaG9vbDsKK+mysyA+IHRoZVwtc2lsdmVyeVwtcG9tZnJldDsKK+mcqiA+IGxvbmdcLWFuZFwtaGVhdnlcLXJhaW47CivmnpggPiB0aGVcLWhhbmRsZVwtb2ZcLXRvb2xzOwor5ru5ID4gdGhlXC1iYW5rXC1vZlwtYVwtc3RlYW07CivlvbMgPiBzdGVwXC13aXRoXC1sZWZ0XC1mb290Owor5LqNID4gdG9cLXRha2VcLXNtYWxsXC1zdGVwczsKK+egmCA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor5qCOID4gY2hlc3RudXRcLWxlYXZlZFwtb2FrOwor6bmHID4gdGhlXC1zaWx2ZXJcLXBoZWFzYW50Owor6IuMID4gYXZlcnJob3JhXC1jYXJhbWJvbGE7Civpg5sgPiBvdXRlclwtd2FsbHNcLW9mXC1jaXR5Owor6YaiID4gbWluY2VkXC1waWNrbGVkXC1tZWF0Owor55yaID4gZGlzZWFzZVwtb2ZcLXRoZVwtZXllczsKK+iAsSA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor6KOJID4gc1wtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivltKYgPiBhXC1tb3VudGFpblwtaW5cLWthbnN1Owor5YWVID4gYVwtZmVtYWxlXC1yaGlub2Nlcm9zOwor6biSID4gdGhlXC1lYXN0ZXJuXC1qYWNrZGF3Owor6bezID4gdGhlXC1zaWx2ZXJcLXBoZWFzYW50Owor6bayID4gc2liZXJpYW5cLWZseWNhdGNoZXI7CivpsLYgPiBrb25vc2lydXNcLXB1bmN0YXR1czsKK+mvpyA+IHRoZVwtc2lsdmVyeVwtcG9tZnJldDsKK+mvpSA+IHBvbWF0b211c1wtc2FsdGF0cml4Owor6a+VID4gY29yeXBoYWVuYVwtaGlwcHVydXM7CivprrYgPiBzZWJhc3RvZGVzXC1ndW50aGVyaTsKK+mnnyA+IHRlYW1cLW9mXC1mb3VyXC1ob3JzZXM7CivppYsgPiBvZmZlclwtZm9vZFwtc3VwZXJpb3I7Civpo4IgPiB3aW5kXC1pblwtaGlnaFwtcGxhY2VzOwor6aK+ID4gYmxvd2luZ1wtb2ZcLXRoZVwtd2luZDsKK+mgliA+IHpob3VcLWR5bmFzdHlcLXNjaG9vbDsKK+mgjSA+IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor6Z+YID4gYXJjaGVyJydzXC10aHVtYlwtcmluZzsKK+merCA+IGFcLXF1aXZlclwtb25cLWFcLWhvcnNlOwor6Zy2ID4gZG93bnBvdXJpbmdcLW9mXC1yYWluOwor6ZyuID4gZGVuc2VuZXNzXC1vZlwtY2xvdWRzOwor6ZG+ID4gYmVsbHNcLWh1bmdcLW9uXC1ob3JzZTsKK+mRtCA+IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivpjoQgPiBpcmlkaXVtXC1laW5zdGVpbml1bTsKK+mLkSA+IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivpiIMgPiBhbmNpZW50XC13aW5lXC12ZXNzZWw7CivphacgPiB0b1wtcGxlZGdlXC13aXRoXC13aW5lOwor6YSUID4gdmFyaW91c1wtcGxhY2VcLW5hbWVzOwor6KW0ID4gYVwtb25lXC1waWVjZVwtZ2FybWVudDsKK+ikgyA+IGFcLXNlYW1cLWluXC1hXC1nYXJtZW50Owor6KCwID4gY2VyYW1ieXhcLXJ1Z2ljb2xsaXM7Civon6ggPiB0aGVcLXNpYmVyaWFuXC1qZXJib2E7CivonZ0gPiB0aGVcLWxhcnZhXC1vZlwtbG9jdXN0Owor6JSKID4gbmFzdHVydGl1bVwtbW9udGFudW07Civok4cgPiBmb2xsaWNsZXNcLW9mXC1wbGFudHM7CivokoggPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivokYcgPiBlbHNob2x0cmlhXC1wYWx0cmluaTsKK+iQhyA+IGF2ZXJyaG9yYVwtY2FyYW1ib2xhOwor6I6VID4gbnltcGhvaWRlc1wtcGVsdGF0dW07CivojLMgPiBjeXBlcnVzXC1tYWxhY2NlbnNpczsKK+iMmiA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iLsyA+IHBldGFzaXRlc1wtamFwb25pY3VzOwor6IuKID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6ImrID4gYm93XC1vclwtcHJvd1wtb2ZcLWJvYXQ7CivoiLsgPiBib3dcLW9yXC1wcm93XC1vZlwtYm9hdDsKK+iIriA+IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor6Ia+ID4gbWluY2VkXC1tZWF0XC1vclwtZmlzaDsKK+iFmSA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iEjiA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iDqSA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iCvCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iCnyA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iAoiA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor576iID4gZmluZVwtd29vbGVuXC1mYWJyaWNzOwor576RID4gYVwtZ3VpZGVcLXRvXC1nb29kbmVzczsKK+e5siA+IHRvXC13b3JrXC1hc1wtYVwtdGFpbG9yOwor57aAID4gYVwta2luZFwtb2ZcLXNhY2tjbG90aDsKK+erkSA+IGJlXC12YXN0XC1hbmRcLWVuZGxlc3M7CivnppMgPiB0b1wtZHJpdmVcLW91dFwtZGVtb25zOwor56WQID4gZGl2aW5lXC1pbnRlcnZlbnRpb247CivnoJwgPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civnn5QgPiBicmlsbGlhbnRcLVwob2ZcLWV5ZXNcKTsKK+eelSA+IGNhdGFyYWN0XC1pblwtdGhlXC1leWU7Civmq58gPiBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivmqqogPiBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivmoaogPiBteXRoaWNhbFwtZ2lhbnRcLXRyZWU7Civmn64gPiBmbGF0XC1waWVjZXNcLW9mXC13b29kOwor5pq1ID4gZHJ5XC1ieVwtZXhwb3NpbmdcLXN1bjsKK+aWnSA+IHNtYWxsXC1qYWRlXC13aW5lXC1jdXA7CivmlYQgPiB0b1wtcHV0XC1mb3J0aFwtZWZmb3J0Owor5pKNID4gdG9cLWhvbGRcLWluXC10aGVcLWhhbmQ7Civmj50gPiB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK+aPlSA+IHJvbGxcLXVwXC10aGVcLXNsZWV2ZXM7CivlsJcgPiB5b3VuZ2VyXC1vZlwtYnJvdGhlcnM7Civlo5AgPiB0aGVcLWltcGVyaWFsXC1zaWduZXQ7CivlnpUgPiB1c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5ZybID4gdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+WbiCA+IHRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor5ZiwID4gc2lnaFwtaW5cLWRpc2FwcHJvdmFsOwor5ZaeID4gY2hpcnBpbmdcLW9mXC1pbnNlY3RzOwor5ZSaID4gdm9taXRpbmdcLW9mXC1hbmltYWxzOwor5ZOMID4gdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor5ZG6ID4gdm9pY2VcLW9mXC1hbmdlclwtdmFzdDsKK+WQliA+IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+WBmCA+IGFuY2llbnRcLWZhbWlseVwtbmFtZTsKK+S2ryA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor5LaSID4gb3V0c3RhbmRpbmdcLWFiaWxpdHk7CivktowgPiBhXC1wdXN0dWxlXC1vclwtcGltcGxlOwor5LaEID4gc3RyaXBlZFwtbW90dGxlZFwtcmF0Owor5LWxID4gcmVkXC1hbmRcLWJsYWNrXC1jb2xvcjsKK+S1riA+IHJlZFwtYW5kXC1ibGFja1wtY29sb3I7CivktZQgPiB0b1wtdHVyblwtb25cLXRoZVwtaGVlbDsKK+S0qiA+IGFcLWZhYnVsb3VzXC1jcmVhdHVyZTsKK+S0oCA+IGFcLXlvdW5nXC10YWlsZWRcLWRlZXI7CivksacgPiBhXC1raW5kXC1vZlwtZmlzaFwtZWVsczsKK+SwnCA+IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivksJsgPiBhXC1sYXJnZVwtZWFydGhlblwtcG90Owor5K63ID4gbW92ZW1lbnRcLW9mXC1hXC1ob3JzZTsKK+SugyA+IHRvXC1nb1wtYmVmb3JlXC1vdGhlcnM7CivkrbkgPiBtb3ZlbWVudFwtb2ZcLWFcLWhvcnNlOwor5KuxID4gYVwtcGFydFwtb2ZcLXRoZVwtc2t1bGw7Civkq6kgPiB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+SrhSA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor5Kq/ID4gdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqr0gPiBob2FyeVwtaGFpcmVkXC1wZXJzb247CivkqbcgPiB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZTsKK+SppyA+IHRvXC10aWVcLXVwXC1odXJyaWVkbHk7CivkqYwgPiB0b1wtaGF2ZVwtYVwtd29yblwtbG9vazsKK+SnlCA+IHRvXC1tZWV0XC1hdFwtdGhlXC1iYW5rOwor5KaZID4gYVwtZ292ZXJubWVudFwtYWdlbmN5Owor5KW0ID4gdG9cLWVuZ3JhdmVcLW9yXC1jYXJ2ZTsKK+SlpyA+IGFcLWZpbmVcLWtpbmRcLW9mXC1qYWRlOwor5KSGID4gYVwta2luZFwtb2ZcLXJpY2VcLXdpbmU7CivkpIEgPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor5KOtID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor5KKLID4gYVwtbWFyc2hhbFwtb3JcLWhlcmFsZDsKK+SgiiA+IHRvXC1jdXRcLW9mZlwtdGhlXC1mZWV0Owor5J+jID4gYW5cLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SesyA+IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGw7CivknaAgPiBhXC1raW5kXC1vZlwtd2lsZFwtYm9hcjsKK+SctiA+IGFcLXNtYWxsXC1raWRuZXlcLWJlYW47CivknIEgPiB0b1wtYWJ1c2VcLWFuZFwtaW5zdWx0Owor5JmSID4gdG9cLXN0b3JlXC1vclwtc2F2ZVwtdXA7CivkmY8gPiBzaG9ydFwtc2xlZXZlc1wtc2hpcnQ7CivkmYEgPiBjaGlsZHJlbicnc1wtZ2FybWVudHM7CivkmKogPiBjbG90aGVzXC13aXRob3V0XC1oZW07CivklqIgPiBmaXJzdFwtYm9yblwtc2lsa3dvcm07CivklpYgPiB0b1wtc2hvd1wtZmFtaWxpYXJpdHk7Civklb4gPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JWfID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SVmCA+IGFcLXZhcmlldHlcLW9mXC1mdW5ndXM7CivklYMgPiB0aGVcLXNoYWRlXC1vZlwtYVwtdHJlZTsKK+SUlyA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7Civkk7cgPiBueW1waG9pZGVzXC1wZWx0YWx1bTsKK+STmiA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7Civkk40gPiBjcnVjaWZlcm91c1wtZmxvd2VyczsKK+SSqCA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7CivkkoggPiBzaWRlXC1iZWFtXC1vZlwtYVwtYm9hdDsKK+SSgCA+IHNob3J0XC1hbmRcLWRlZXBcLWJvYXQ7CivkkYcgPiBtZWRpY2luZVwtZm9yXC1hXC1zb3JlOwor5JCtID4gYVwtZGlzY2hhcmdlXC1vclwtZmx1eDsKK+SPuSA+IHRvXC13YXRjaFwtc3RlYWx0aGlseTsKK+SPtyA+IG1lZGljaW5lXC1mb3JcLWFcLXNvcmU7Civkj6ggPiB0b1wtc3dlbGxcLXVwXC1ncmVhdGx5Owor5I+GID4gYnV6emluZ1wtaW5cLXRoZVwtZWFyczsKK+SOvyA+IGJ1enppbmdcLWluXC10aGVcLWVhcnM7CivkjbcgPiB0b1wtY2hhc2VcLWVhY2hcLW90aGVyOwor5I2AID4gY2xvdGhlc1wtd2l0aG91dFwtaGVtOwor5IyOID4gdG9cLWJhc3RlXC1mb3JcLXNld2luZzsKK+SLuSA+IGJyZWFkdGhcLW9mXC1tYXRlcmlhbDsKK+SLsCA+IHRvXC1iaW5kXC1vclwtcmVzdHJhaW47CivkipkgPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor5Ie9ID4gYVwtY29hcnNlXC1iYW1ib29cLW1hdDsKK+SGryA+IGFcLXNob3J0XC1zaGFwZWRcLWZhY2U7Civkha8gPiBhXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor5IWfID4gdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5IWVID4gYVwtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+SFkiA+IGFcLXNoYXJwXC1lZGdlZFwtZ3Jhc3M7CivkgYsgPiB3aXRoXC1vbmVcLWV5ZVwtY2xvc2VkOwor5IGDID4gdG9cLWxvb2tcLWF0dGVudGl2ZWx5Owor5ICkID4gaW5zaWdodFwtb2ZcLWplYWxvdXN5Owor5ICjID4gdG9cLWxvb2tcLXN0ZWFkaWx5XC1hdDsKK+O/kyA+IGRpc2Vhc2VcLW9mXC10aGVcLWhvb2Y7CivjvrsgPiBub3RcLWFueVwtcHJvZ3Jlc3NpdmU7CivjvrYgPiBkaXNlYXNlXC1vZlwtdGhlXC1rbmVlOwor476iID4gYVwtbWFsaWduYW50XC1kaXNlYXNlOwor472tID4gdmFjYW50XC1sb3RcLW9yXC1zcGFjZTsKK+O9jCA+IHRoZVwtcmlkZ2VcLW9mXC1hXC1yb29mOwor472CID4gYVwtY3JhY2tlZFwtY29udGFpbmVyOwor472BID4gYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdDsKK+O8mSA+IGJyaWNrd29ya1wtb2ZcLWFcLXdlbGw7CivjvJIgPiBhXC1raW5kXC1vZlwtYmlnXC1tZWxvbjsKK+O4tiA+IGNvbG9yXC1vZlwtdGhlXC1veHRhaWw7CivjuLUgPiB0aGVcLWxvd2luZ1wtb2ZcLWFuXC1veDsKK+O4pSA+IGhvdXNlaG9sZFwtcmVnaXN0ZXJzOwor47iiID4gY3Jvc3NcLWJlYW1cLW9mXC1hXC1iZWQ7CivjuJ4gPiBibG9ja3NcLWZvclwtcHJpbnRpbmc7CivjuJMgPiB0b1wtaGF2ZVwtZGlzYXBwZWFyZWQ7CivjuI8gPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor47iAID4gYmxhY2tlbmVkXC13aXRoXC1zb290Owor47ekID4gcm9zeVwtY2xvdWRzXC1vZlwtZGF3bjsKK+OyhyA+IHRoZVwtcmF0dGxlXC1vZlwtZHJ1bXM7Civjsb4gPiBhXC1raW5kXC1vZlwtb3JuYW1lbnRzOwor47G8ID4gYVwta2luZFwtb2ZcLW9ybmFtZW50czsKK+OxuSA+IHRvXC1kaWVcLWZyb21cLWRpc2Vhc2U7CivjsasgPiBkZXN0cm95ZWRcLW9yXC1ydWluZWQ7CivjsaogPiBzdHVwaWRcLWFuZFwtY29uZnVzZWQ7CivjsYogPiBhc3RobWF0aWNcLWJyZWF0aGluZzsKK+OxiSA+IG1vdmluZ1wtb2ZcLXRoZVwtbW91dGg7CivjsLQgPiB0b1wtZ3JhdGVcLW9uXC10aGVcLWVhcjsKK+OwsCA+IGFzdGhtYXRpY1wtYnJlYXRoaW5nOwor47CvID4gdGhlXC13YXlcLW9mXC1zcGVha2luZzsKK+OvgSA+IGhvdXNlaG9sZFwtcmVnaXN0ZXJzOwor46uvID4gaW5cLWNvbnRyYXZlbnRpb25cLW9mOwor46mmID4gdG9cLWxlYWRcLWJ5XC10aGVcLWhhbmQ7CivjqZggPiB0b1wtbW9vclwtdG9cLXRoZVwtYmFuazsKK+OplyA+IHRvXC1sZWFkXC1ieVwtdGhlXC1oYW5kOwor46idID4gdGhlXC12ZXJ5XC1oYXJkXC1zdHVmZjsKK+OogCA+IHRvXC1ob2xkXC1pblwtdGhlXC1oYW5kOwor76eeID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7Civjp4UgPiB0b1wtdHVyblwtdXBzaWRlXC1kb3duOwor76avID4gc3BlY2llc1wtb2ZcLWFudGVsb3BlOwor46aTID4gZGlmZmljdWx0XC1pbnRlbnRpb247CivjpZ0gPiB0b1wtYXJvdXNlXC10b1wtYWN0aW9uOwor46KKID4gdG9cLXNldFwtc2lkZVwtYnlcLXNpZGU7CivjooIgPiBvZlwtaGlnaGx5XC1zdHJhdGVnaWM7Civjn7EgPiBzaGFwZVwtb2ZcLWFcLW1vdW50YWluOwor45+TID4gbG9mdHlcLWFuZFwtZGFuZ2Vyb3VzOwor45+SID4gbW91bnRhaW5zXC1hZGpvaW5pbmc7CivjnZ8gPiBpblwtY29udHJhdmVudGlvblwtb2Y7CivjnLEgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcpiA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yhID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnKAgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcmSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yQID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnI0gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OciyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yCID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm7ggPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObtyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45u1ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm60gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObrCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45urID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm54gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObnSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45ucID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5kgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObmCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uWID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5MgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObjyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uFID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm4QgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OavSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45q4ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmrUgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OasSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45qtID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmqsgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OaqCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45irID4gdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7Civjl7YgPiB0b1wtZXhwZWxcLXRoZVwtYnJlYXRoOwor45aqID4gc291bmRcLW9mXC1zdXJwcmlzaW5nOwor45S5ID4gYVwtc3VycGx1c1wtb3JcLWV4Y2VzczsKK+OUhyA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor45O9ID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7Civjk7cgPiB0b1wtY3V0XC1vZmZcLXRoZVwtbm9zZTsKK+OSlCA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor45KEID4gYnJpdHRsZVwtYW5kXC1mcmlhYmxlOwor45KDID4gY2FwaXRhbFwtZm9ybVwtb2ZcLXR3bzsKK+ORmyA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor546WID4gYmxhY2tcLWNvbG9yZWRcLWphZGU7Civlk6ogPiB3aGljaFw/XC13aGVyZVw/XC1ob3dcPzsKK+eJsiA+IHNhY3JpZmljaWFsXC1hbmltYWw7CivmvKIgPiB0aGVcLWNoaW5lc2VcLXBlb3BsZTsKK+a8lSA+IHRyYW5zcG9ydFwtYnlcLXdhdGVyOwor6Zi0ID4gJydmZW1hbGUnJ1wtcHJpbmNpcGxlOwor5LuZID4gdGFvaXN0XC1zdXBlclwtYmVpbmc7CivpqbsgPiB0b1wtYmVcLXN0YXRpb25lZFwtYXQ7Civpp5AgPiB0b1wtYmVcLXN0YXRpb25lZFwtYXQ7Civoha4gPiBsb3dlclwtcGFydFwtb2ZcLWZhY2U7Civmi5IgPiB3YXJkXC1vZmZcLXdpdGhcLWhhbmQ7CivmoYIgPiBjYXNzaWFcLW9yXC1jaW5uYW1vbjsKK+actSA+IGNsdXN0ZXJcLW9mXC1mbG93ZXJzOwor5pu5ID4gbWluaXN0cnlcLW9mZmljaWFsczsKK+e9jiA+IGFuXC1lYXJ0aGVud2FyZVwtamFyOwor6ZmwID4gJydmZW1hbGUnJ1wtcHJpbmNpcGxlOwor5Li4ID4gc21hbGxcLXJvdW5kXC1vYmplY3Q7Civnn6kgPiBjYXJwZW50ZXInJ3NcLXNxdWFyZTsKK+iFiiA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor6b6fID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivpgrggPiBvZmZpY2lhbFwtcmVzaWRlbmNlOwor5L6DID4gdXByaWdodFwtYW5kXC1zdHJvbmc7CivpgoIgPiB1bmV4cGVjdGVkXC1tZWV0aW5nOwor5oCvID4gbGFja2luZ1wtaW5cLWNvdXJhZ2U7CivnlLggPiBzdWJ1cmJzXC1vZlwtY2FwaXRhbDsKK+aNniA+IHNjb29wXC1vdXRcLW9mXC13YXRlcjsKK+aJmyA+IGNhcnJ5XC1vblwtc2hvdWxkZXJzOwor6JmUID4gYWN0XC13aXRoXC1yZXZlcmVuY2U7CivpnJYgPiBsb25nXC1zcGVsbFwtb2ZcLXJhaW47Civpn6cgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+eRviA+IGJyaWxsaWFuY2VcLW9mXC1nZW1zOwor5qGUID4gY2hpbmVzZVwtYmVsbGZsb3dlcjsKK+m4syA+IG1hbGVcLW1hbmRhcmluXC1kdWNrOwor6ZKXID4gb3JuYW1lbnRhbFwtaGFpcnBpbjsKK+W3hSA+IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5qioID4gb3NtYW50aHVzXC1mcmFncmFuczsKK+igoSA+IHdvb2RcLWJvcmluZ1wtaW5zZWN0Owor6LmCID4gdHJhbXBsZVwtdW5kZXJcLWZvb3Q7CivpqqUgPiB0aG9yb3VnaGJyZWRcLWhvcnNlOwor5ZSBID4gZXhwcmVzc1wtY29uZG9sZW5jZTsKK+mqhSA+IGFuXC1leGNlbGxlbnRcLWhvcnNlOwor56KJID4gcm9vbVwtbWFkZVwtb2ZcLXN0b25lOwor55afID4gaW50ZXJtaXR0ZW50XC1mZXZlcjsKK+e6oyA+IG5hbWVcLW9mXC1hblwtZW1wZXJvcjsKK+ejrCA+IG11c2ljYWxcLWluc3RydW1lbnQ7CivniL8gPiBoYWxmXC1vZlwtdHJlZVwtdHJ1bms7Civml44gPiBmbHV0dGVyaW5nXC1vZlwtZmxhZzsKK+WklCA+IG9uZVwtbGVnZ2VkXC1tb25zdGVyOwor5q6NID4gdG9cLXN0YXJ2ZVwtdG9cLWRlYXRoOwor6aqKID4gYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor5rmOID4gZmx1c2hlZFwtd2l0aFwtZHJpbms7CivllrUgPiB0aGVcLW1ld1wtb2ZcLXRoZVwtY2F0Owor54SZID4gZHJ5XC1vdmVyXC1zbG93XC1maXJlOwor57u+ID4gdG9cLXN0cmluZ1wtdG9nZXRoZXI7CivnnKYgPiBjb3JuZXJcLW9mXC10aGVcLWV5ZXM7CivnkYEgPiBmaW5lXC1waWVjZVwtb2ZcLWphZGU7CivmppggPiBjYXJwZW50ZXInJ3NcLXNxdWFyZTsKK+eysyA+IG5vblwtZ2x1dGlub3VzXC1yaWNlOwor6aSuID4gYVwtbGVnZW5kYXJ5XC1hbmltYWw7CivmsYogPiBhXC1icmFuY2hpbmdcLXN0cmVhbTsKK+e8gyA+IGxpZ2h0XC15ZWxsb3dcLWNvbG9yOwor5qqpID4gdGhlXC1ib2xlXC1vZlwtYVwtdHJlZTsKK+WlgSA+IGxhZHknJ3NcLXZhbml0eVwtY2FzZTsKK+aluCA+IG1hbGxvdHVzXC1qYXBvbmljdXM7CivpqrogPiB0aXBcLW9mXC1hXC1sb25nXC1ib25lOwor6Je/ID4gbG9waGFudGh1c1wtcnVnb3N1czsKK+aoviA+IHRoZVwtc2hhZGVcLW9mXC10cmVlczsKK+mFpCA+IHRvXC1kZWFsXC1pblwtc3Bpcml0czsKK+iHjCA+IGRyb3BzaWNhbFwtc3dlbGxpbmc7Civot6sgPiBzb3VuZFwtb2ZcLWZvb3RzdGVwczsKK+e2riA+IGVtYnJvaWRlcmVkXC1iYW5uZXI7Civop7MgPiBhblwtYW5jaWVudFwtbWVhc3VyZTsKK+adjCA+IHRoZVwtc3R1bXBcLWZcLWFcLXRyZWU7CivltasgPiBhXC1oaWxsXC1pblwtc2hhbnR1bmc7Civmk5cgPiB0b1wtYmVhdFwtdGhlXC1icmVhc3Q7CivohJQgPiBzbWFsbFwtbHVtcFwtb2ZcLW1lYXQ7CivphoUgPiB1bnN0cmFpbmVkXC1zcGlyaXRzOwor576wID4gY2FyYm9ueWxcLVwocmFkaWNhbFwpOwor6Ju4ID4gbG9uZ1wtbGVnZ2VkXC1zcGlkZXI7CivnnoAgPiB0b1wtbG9va1wtYXRcLWNsb3NlbHk7CivmrrMgPiBuYW1lXC1vZlwtb2xkXC13ZWFwb247CivltJ4gPiBtb3VudGFpblwtaW5cLXNoYW54aTsKK+WesiA+IGhpZ2hcLWFuZFwtZHJ5XC1wbGFjZTsKK+iZvyA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+eWsyA+IGNoaWxkaG9vZFwtZGlzZWFzZXM7Civnvb4gPiBhXC1sYXJnZVwtc3F1YXJlXC1uZXQ7CivnjawgPiBhXC1mYWJ1bG91c1wtbW9uc3RlcjsKK+m+nCA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor6b6WID4gZmxpZ2h0XC1vZlwtYVwtZHJhZ29uOwor6bicID4gYVwtc3BlY2llc1wtb2ZcLW15bmFoOwor6be9ID4gb3JpZW50YWxcLWJ1bGxmaW5jaDsKK+m0myA+IG1hbGVcLW1hbmRhcmluXC1kdWNrOwor6bSXID4gYWxjZWRvXC1iZW5nYWxlbnNpczsKK+mxtSA+IGh5cG9yaGFtcHVzXC1zYWp1cmk7CivprKAgPiB0b1wtbWFrZVwtYVwtdG9wXC1rbm90Owor6amqID4gYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor6amlID4gdGhvcm91Z2hicmVkXC1ob3JzZTsKK+mpiiA+IGFuXC1leGNlbGxlbnRcLWhvcnNlOwor6aS8ID4gc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+mhiyA+IGxvd2VyXC1wYXJ0XC1vZlwtZmFjZTsKK+mglCA+IGdvb2RcLWFuZFwtYmVhdXRpZnVsOwor6Z+MID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7CivpnbEgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+mdrSA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor6Z2rID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7Civph7UgPiBvcm5hbWVudGFsXC1oYWlycGluOwor6YeSID4ga2FuZ3hpXC1yYWRpY2FsXC0xNjc7CivphK4gPiBhbmNpZW50XC1wbGFjZVwtbmFtZTsKK+i9mSA+IHJpbmdzXC1vblwtdGhlXC15b2tlczsKK+i7sCA+IGFcLXJvd1wtb2ZcLWNhcnJpYWdlczsKK+iwvSA+IGFcLW1vdXRoXC1vclwtb3BlbmluZzsKK+iogSA+IGthbmd4aVwtcmFkaWNhbFwtMTQ5Owor6KW1ID4gYVwtcGxlYXRcLWluXC1hXC1za2lydDsKK+iksCA+IGxpZnRcLXVwXC10aGVcLXNraXJ0czsKK+ighiA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+iauSA+IGV1bG90YVwtcGVsaW9tcGhhbGE7CivomLcgPiBvbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+iWtyA+IGVsc2hvdHJpYVwtcGFsdHJpbmk7CivolbogPiBob3V0dHV5bmlhXC1jb3JkYXRhOwor6JO0ID4gZWRpYmxlXC13YXRlclwtcGxhbnQ7CivokbQgPiBwaHlzYWxpc1wtYWxrZWtlbmdpOwor6I2FID4gYW5zd2VyXDpcLXNtYWxsXC1iZWFuOwor6IyWID4gYWxsaXVtXC12aWN0b3JpYWxpczsKK+iKoyA+IG1lZGljaW5hbFwtcGxhbnRhZ287Civoh6AgPiBzbWFsbFwtbHVtcFwtb2ZcLW1lYXQ7Civoh5ggPiB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+iHiCA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor57+vID4gZ2xpc3RlbmluZ1wtcGx1bWFnZTsKK+e/liA+IGtzY1wtZXh0ZW5zaW9uXC0zMTA4Owor576nID4gY2FyYm94eWxcLVwocmFkaWNhbFwpOwor572IID4gYW5cLWVhcnRoZW53YXJlXC1qYXI7Civnt5cgPiBsaWdodFwteWVsbG93XC1jb2xvcjsKK+e2sCA+IHRvXC1zdHJpbmdcLXRvZ2V0aGVyOwor57SCID4gbmFtZVwtb2ZcLWFuXC1lbXBlcm9yOwor57OSID4gZm9vZFwtZm9yXC1hXC1qb3VybmV5Owor56iJID4gbm9uXC1nbHV0aW5vdXNcLXJpY2U7Civnp5QgPiBub25cLWdsdXRpbm91c1wtcmljZTsKK+einiA+IHJvb21cLW1hZGVcLW9mXC1zdG9uZTsKK+eaqiA+IGx1c3RlclwtXChvZlwtcGVhcmxzXCk7CivnmKcgPiBpbnRlcm1pdHRlbnRcLWZldmVyOwor55ecID4gYVwtc2NhYmJ5XC1iYWxkXC1oZWFkOwor55S/ID4gZmFybWluZ1wtcG9wdWxhdGlvbjsKK+eUiyA+IGFcLWphclwtd2l0aG91dFwtZWFyczsKK+eQpCA+IGphZGVcLW9mXC1qYWRlXC1iZWluZzsKK+eOmCA+IGNvdXJ0XC1kcmVzc1wtamV3ZWxzOwor542zID4gZmllcmNlXC1kb2dcLWxvb2tpbmc7CivnhY0gPiB0b1wtY29sb3VyXC1ieVwtc21va2U7CivngaUgPiBhXC1ncm91cFwtb2ZcLXNwcmluZ3M7Civms7IgPiBraW5kXC1vZlwtd2hpdGVcLXdpbmU7CivmsI0gPiBmaW5lXC13b29sbGVuXC1jbG90aDsKK+aqgSA+IHRoZVwtYm9sZVwtb2ZcLWFcLXRyZWU7Civmn7ogPiBhblwtb2xkXC1tYW4nJ3NcLXN0YWZmOwor5p27ID4gbGlndXN0cnVtXC1zaW5lbmVzZTsKK+admSA+IGFcLXRpbnlcLXdvb2RlblwtcG9zdDsKK+actiA+IGNsdXN0ZXJcLW9mXC1mbG93ZXJzOwor5pi3ID4gdG9cLWZlZWRcLWFcLXByaXNvbmVyOwor5pe8ID4gZ2VudGxlXC1hbmRcLWFmZmFibGU7Civmk60gPiB0cmFwXC1jYXRjaFwtYW5pbWFsczsKK+aSiCA+IHNjb29wXC1vdXRcLW9mXC13YXRlcjsKK+W9hCA+IG5vY2tcLWF0XC1lbmRcLW9mXC1ib3c7Civlt5QgPiBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+W3kyA+IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5baoID4gYmlnXC1yb2NreVwtbW91bnRhaW47CivltZYgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civls7kgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civls7EgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivlsqIgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civlso0gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivlpakgPiBsYWR5JydzXC12YW5pdHlcLWNhc2U7Civlo5wgPiBlYXJ0aGVuXC1qYXJcLW9yXC1qdWc7CivlorAgPiBhblwtZWFydGhlbndhcmVcLWphcjsKK+WikCA+IHRvXC1idWlsZFwtd2l0aFwtc29pbDsKK+WhjyA+IGhpZ2hcLWFuZFwtZHJ5XC1wbGFjZTsKK+WZiyA+IHRvXC1zd2FsbG93XC1oYXN0aWx5Owor5ZOwID4gaW5jb2hlcmVudFwtY2hhdHRlcjsKK+WDiiA+IHRhb2lzdFwtc3VwZXJcLWJlaW5nOwor5L23ID4gdG9cLWFjdFwtY29udHJhcnlcLXRvOwor5LqAID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivkuZEgPiBzdGFuZFwtc2lkZVwtYnlcLXNpZGU7CivkuKwgPiBoYWxmXC1vZlwtdHJlZVwtdHJ1bms7CivktqMgPiB0b1wtZ3JpbmRcLXRoZVwtdGVldGg7Civktp8gPiB0b1wtZ25hc2hcLXRoZVwtdGVldGg7CivktZUgPiBhXC12YXJpZXR5b2ZcLW1pbGxldDsKK+S0sSA+IGNha2VzXC1hbmRcLWJpc2N1aXRzOwor5LSmID4gYVwtbGVnZW5kYXJ5XC1hbmltYWw7Civks6ggPiB0aGVcLWZlbWFsZVwtcGhvZW5peDsKK+SzlCA+IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SzjiA+IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SxsyA+IGFcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+SxoyA+IGFcLWxvbmdcLW5hcnJvd1wtZmlzaDsKK+SwqiA+IG1pc2NoaWV2b3VzXC1zcGlyaXQ7CivksKggPiBtaXNjaGlldm91c1wtc3Bpcml0Owor5K+xID4gdGhlXC1oYWlyXC1zdGFuZHNcLXVwOwor5K+PID4gdGhlXC1zaG91bGRlclwtYmxhZGU7Civkr4sgPiB0aGVcLXNob3VsZGVyXC1ibGFkZTsKK+SupSA+IGNvbG9yXC1vZlwtdGhlXC1ob3JzZTsKK+SunSA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsOwor5K2wID4gc3Ryb25nXC1zd2VldFwtc21lbGw7Civkra8gPiBzdHJvbmdcLXN3ZWV0XC1zbWVsbDsKK+StiyA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrYMgPiB0b1wtZWF0XC10b1wtdGhlXC1mb29sOwor5Ky+ID4gY2FrZXNcLWFuZFwtYmlzY3VpdHM7CivkrLQgPiBmb2RkZXJcLWZvclwtYW5pbWFsczsKK+SsrCA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrKggPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5KynID4gcm91bmRcLXNoYXBlZFwtY2FrZXM7Civkq5AgPiB0b1wtYmVuZFwtb25lJydzXC1oZWFkOwor5KqMID4gY3VzaGlvblwtZm9yXC1zYWRkbGU7CivkqIYgPiBhXC1raW5kXC1vZlwtcGhlYXNhbnQ7Civkp7wgPiB0aGVcLXRoZVwtc25vd1wtZ29vc2U7Civkp6YgPiBuYW1lXC1vZlwtYVwtaGlsbHNpZGU7Civkp4cgPiBuYW1lXC1vZlwtYVwtaGlsbHNpZGU7Civkpq4gPiBkb29yXC1vZlwtdGhlXC1jZW50ZXI7CivkppIgPiB0aGVcLWRvb3JcLWlzXC1jbG9zZWQ7CivkppAgPiB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor5KWzID4gYVwtY2hlbWljYWxcLWVsZW1lbnQ7CivkpbIgPiBhXC1jaGVtaWNhbFwtZWxlbWVudDsKK+SlniA+IHRvXC1jdXRcLXdpdGhcLXNoZWFyczsKK+SlnSA+IGRlc3BlcmF0ZVwtZmlnaHRpbmc7CivkpIQgPiBmbHVzaGVkXC13aXRoXC1kcmluazsKK+SjuiA+IGZpbHRyYXRlZFwtdGhlXC13aW5lOwor5KOAID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5KGgID4gc3Ryb25nXC1hbmRcLWR1cmFibGU7CivkoZsgPiBuYW1lXC1vZlwtYVwtY2FycmlhZ2U7CivkoKcgPiBoYXJkXC10b1wtZ29cLWZvcndhcmQ7CivkoKEgPiBzb3VuZFwtb2ZcLWZvb3RzdGVwczsKK+SfnSA+IHRvXC13YWxrXC1yaWdodFwtaW50bzsKK+SdniA+IG5hbWVcLW9mXC1hXC1pbW1vcnRhbDsKK+SbiSA+IHRvXC1pbmR1Y2VcLWJ5XC13b3JkczsKK+SapyA+IGN1cnZlZFwtd2l0aFwtYW5nbGVzOwor5JmDID4gc2xlZXZlbGVzc1wtY2xvdGhlczsKK+SYjSA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+SXuyA+IGFcLWtpbmRcLW9mXC1zZWFcLWNyYWI7Civkl6ggPiBsZXBzaW1hXC1zYWNjaGFyaW5hOwor5JejID4gaW5zZWN0XC1vZlwtbXVsYmVycnk7Civkl40gPiB3b29kXC1ib3JpbmdcLWluc2VjdDsKK+SWpyA+IGFcLXBvaXNvbm91c1wtaW5zZWN0Owor5JaTID4gb2ZcLWFcLXdhbGtpbmdcLXRpZ2VyOwor5JWqID4gdGhlXC13YXRlclwtcGxhbnRhaW47CivklLwgPiBzb3VuZFwtb2ZcLXRoZVwtZ3Jhc3M7CivklIMgPiBjb3JkYXRlXC1ob3V0dHV5bmlhOwor5JOrID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5JOoID4gbG9uZ1wtbmVja2VkXC1ib3R0bGU7Civkk6AgPiB0aGVcLXdhdGVyXC1wbGFudGFpbjsKK+STliA+IGNuaWRpdW1cLW9mZmljaW5hbGU7Civkk4MgPiBtZWxhbmNob2x5XC1hbmRcLXNhZDsKK+SSnSA+IHJvb3RcLW9mXC10aGVcLXRoYXRjaDsKK+SRmSA+IHB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+SRhiA+IGZlZWxcLWxpa2VcLXZvbWl0aW5nOwor5JCUID4gbXVzY2xlXC1vZlwtdGhlXC1jYWxmOwor5I6+ID4gYmlnXC1hbmRcLXJvdW5kXC1leWVzOwor5I60ID4gYVwtbGVnZW5kYXJ5XC1zcGlyaXQ7CivkjqogPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkjpQgPiBmaW5lXC1hbmRcLXNvZnRcLWhhaXI7Civkjo8gPiB5b3VuZ1wtYmlyZHNcLWZseWluZzsKK+SOjSA+IGZpbmVcLWFuZFwtc29mdFwtaGFpcjsKK+SNqSA+IHRvXC1vZmZlclwtcHJvdmlzaW9uOwor5I2jID4gYVwta2luZFwtb2ZcLWZpc2hcLW5ldDsKK+SMjSA+IGZpbmVcLXdvdmVuXC1wYXR0ZXJuOwor5IyJID4gdGhlXC1sYXJnZVwtb2ZcLWFcLW5ldDsKK+SLlyA+IHN0cm9uZ1wtYW5kXC1kdXJhYmxlOwor5IuIID4gdG9cLWJpbmRcLWxvb3NlXC1oZW1wOwor5ImsID4gY29hcnNlXC1iYW1ib29cLW1hdHM7CivkiK4gPiBhXC13b3ZlblwtaW5zdHJ1bWVudDsKK+SHsyA+IGFcLW1lbW9yYWR1bVwtdGFibGV0Owor5IaqID4gY29sb3JcLW9mXC10aGVcLWxpZ2h0Owor5IalID4gdG9cLXBpZXJjZVwtdGhyb3VnaGo7CivkhqQgPiB0b1wtcGllcmNlXC10aHJvdWdoajsKK+SGkSA+IGFcLWxpdHRsZVwtcHJvdHJ1ZGVkOwor5IW9ID4gZnJhZ3JhbmNlXC1vclwtYXJvbWE7CivkhbEgPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5IWnID4gZmluZVwtcmljZVwtc2VlZGxpbmc7CivkhZ0gPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkhZwgPiB0b1wtc3RvcmVcLXVwXC1ncmFpbnM7CivkhYAgPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkhJogPiB0b1wtd29yc2hpcFwtdGhlXC1nb2Q7Civkg70gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civkg5wgPiBhXC1maW5lXC1ibGFja1wtc3RvbmU7CivkgYogPiBkYXJrXC1hbmRcLWRlZXBcLWV5ZWQ7CivkgJ4gPiB3aXRoXC1oZWF2eVwtZXllbGlkczsKK+SAlyA+IHRvXC1sb29rXC1hc2thbmNlXC1hdDsKK+O/jCA+IGx1bXBcLWluXC10aGVcLXRocm9hdDsKK+O8oyA+IGJyaWNrc1wtb2ZcLXRoZVwtd2VsbDsKK+O8hyA+IGZpbmVcLWphZGVcLW9yXC1hZ2F0ZTsKK+O7lyA+IGFcLXN0cmluZ1wtb2ZcLXBlYXJsczsKK+O7iiA+IGFcLXJlZFwtY29sb3JlZFwtamFkZTsKK+O7hSA+IGphZGVcLWRlY29yYXRlZFwtY2FwOwor47qnID4gYVwtd2hpdGVcLXllbGxvd1wtZG9nOwor47mkID4gbGFja2luZ1wtaW5cLWNvdXJhZ2U7CivjuL0gPiBhXC10d29cLXllYXJzXC1vbGRcLW94Owor47isID4gYVwtdHdvXC15ZWFyc1wtb2xkXC1veDsKK+O4iCA+IHNjb3JjaGVkXC1vclwtYnVybmVkOwor47ezID4gY29sb3JcLW9mXC10aGVcLWZsYW1lOwor47eiID4gYnVuZGxlXC1vZlwtY2hhcmNvYWw7Civjt6AgPiBhXC13aWxsXC1vJydcLXRoZVwtd2lzcDsKK+O2tiA+IHNjb3JjaGVkXC1vclwtYnVybmVkOwor47WTID4gdGhlXC13YXRlclwtaXNcLWNsZWFyOwor47S+ID4gc3dlbGxpbmdcLW9yXC1yaXNpbmc7Civjs4IgPiB0b1wtZm9sbG93XC1hXC1jb3Vyc2U7CivjsqEgPiB0aGlja1wtY29hdFwtb2ZcLWhhaXI7CivjspcgPiB0b1wtc21vb3RoXC10aGVcLWhhaXI7Civjr7YgPiB0aGVcLWNvaXJcLXBhbG1cLXRyZWU7Civjr7IgPiBhXC13b29kZW5cLWZyYW1ld29yazsKK+OvmyA+IGdvdXJkXC1zaGFwZWRcLWRhdGVzOwor4667ID4gdG9cLXNjcmF0Y2hcLWxpZ2h0bHk7Civjro0gPiBhbWVtb3JhbmR1bVwtdGFibGV0Owor462oID4gdGhlXC1jb2NvYVwtbnV0XC1wYWxtOwor462hID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor462dID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uOwor46y0ID4gdGhlXC1tb29uXC1pc1wtZGltbWVkOwor46ySID4gdGhlXC1zdW5cLWFyZVwtZGltbWVkOwor46yOID4gbW90ZXNcLWluXC1hXC1zdW5iZWFtOwor46umID4gb2ZcLWxvb2tcLW9mXC10aGVcLXN1bjsKK+OrniA+IG9mXC1sb29rXC1vZlwtdGhlXC1zdW47CivjqrggPiB0b1wtZmlsbFwtYVwtY3VwXC13aXRoOwor46mDID4gdG9cLXRha2VcLW9yXC1jYXB0dXJlOwor46i9ID4gdG9cLWN1dFwtb3JcLXJpcFwtb3BlbjsKK+OooSA+IHRvXC1wdXNoXC13aXRoXC1oYW5kczsKK+OonCA+IHRvXC1oZWxwXC1lYWNoXC1vdGhlcjsKK++niCA+IGxpZ3VzdHJ1bVwtc2luZW5lc2U7Civjp4AgPiB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor46a+ID4gdGhlXC1ib2x0XC1vZlwtYVwtZG9vcjsKK++mhyA+IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+OluCA+IHRvXC1zeW1wYXRoaXplXC13aXRoOwor46WoID4gdW5oYXBweVwtZGlzcGxlYXNlZDsKK+OkqiA+IHRvXC1maW5kXC1mYXVsdFwtd2l0aDsKK++kpiA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor76SIID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivvpIcgPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+OjjCA+IHRvXC1qb2luXC10d29cLXRoaW5nczsKK+OhryA+IHdhbGxcLW9mXC1hXC1idWlsZGluZzsKK+OgpiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgoCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgkyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgjyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OghiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfsyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfsCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfqiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfpiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfmCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfjSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfiiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfiCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfhiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfhCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfgCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OeuyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OetCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OeqCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OepiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OYsyA+IGFcLWhpbGxvY2tcLW9yXC1tb3VuZDsKK+OYsSA+IHRvXC1mYWxsXC1pbnRvXC1ydWluczsKK+OYnCA+IGFcLWtpbmRcLW9mXC1zaWxrd29ybTsKK+OWhSA+IHNvdW5kXC1vZlwtYVwtd2hpc3RsZTsKK+OWgyA+IHRvXC1yb2FyXC1vZlwtYW5pbWFsczsKK+OUoiA+IHRvXC1icmVha1wtc29tZXRoaW5nOwor55q/ID4gc2hhbGxvd1wtY29udGFpbmVyOwor5bGTID4gZ2lnYW50aWNcLXN0cmVuZ3RoOwor5rS+ID4gc2Nob29sXC1vZlwtdGhvdWdodDsKK+WnkyA+IG9uZScnc1wtZmFtaWx5XC1uYW1lOwor54WOID4gZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor6KWBID4gc3dhZGRsaW5nXC1jbG90aGVzOwor5ZOIID4gc291bmRcLW9mXC1sYXVnaHRlcjsKK+m4miA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivmrKcgPiB0cmFuc2xpdFwuXDpcLWV1cm9wZTsKK+m1oSA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivorqIgPiBkcmF3XC11cFwtYWdyZWVtZW50Owor5YGPID4gaW5jbGluZWRcLW9uZVwtc2lkZTsKK+atlCA+IGJsb3dcLXRocm91Z2hcLW5vc2U7Civln7kgPiBiYW5rXC11cFwtd2l0aFwtZGlydDsKK+a8qyA+IG92ZXJmbG93XC1vZlwtd2F0ZXI7CivkvqAgPiBjaGl2YWxyb3VzXC1wZXJzb247Civlp4YgPiBjaGlsZCcnc1wtZ292ZXJuZXNzOwor55uSID4gc21hbGxcLWJveFwtb3JcLWNhc2U7CivlhJIgPiBjb25mdWNpYW5cLXNjaG9sYXI7CivpmKogPiBoaWxsc2lkZVwtZmFybWxhbmQ7Civov4ggPiB0YWtlXC1hXC1iaWdcLXN0cmlkZTsKK+aNjyA+IHBpY2tcLXdpdGhcLWZpbmdlcnM7CivmtZkgPiB6aGVqaWFuZ1wtcHJvdmluY2U7CivnracgPiBiYW1ib29cLXdhdGVyXC1waXBlOwor6ImYID4gY291bnRlclwtZm9yXC1zaGlwczsKK+i2gSA+IHRha2VcLWFkdmFudGFnZVwtb2Y7CivpiaIgPiBlYXJ0aGVud2FyZVwtYmFzaW47Civok6wgPiB0eXBlXC1vZlwtcmFzcGJlcnJ5Owor6L6WID4gbGluY2hwaW5cLW9mXC13aGVlbDsKK+mAhSA+IG1lZXRcLXVuZXhwZWN0ZWRseTsKK+WYjiA+IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7CivphaMgPiBlbmpveVwtaW50b3hpY2FudHM7CivppbogPiBzdHVmZmVkXC1kdW1wbGluZ3M7Civlko8gPiBzaW5nXC1zb25nXC1vclwtcG9lbTsKK+mStSA+IGVhcnRoZW53YXJlXC1iYXNpbjsKK+aQgCA+IGdpdmVcLWhlbHBpbmdcLWhhbmQ7CivmjbYgPiBzdHJpa2VcLXdpdGhcLXN0aWNrOwor5YioID4gY2FycGVudGVyJydzXC1wbGFuZTsKK+iglSA+IGV1bWVuZXNcLXBvbGlmb21pczsKK+mlqCA+IHN0dWZmZWRcLWR1bXBsaW5nczsKK+W0hiA+IGtvbmd0b25nXC1tb3VudGFpbjsKK+ebhSA+IHNtYWxsXC1jdXBcLW9yXC1ib3dsOwor5qKGID4gd2F0Y2htYW4nJ3NcLXJhdHRsZTsKK+W1hyA+IG1vdW50YWluXC1pblwtaGVuYW47CivogLcgPiBlYXJzXC1oYW5naW5nXC1kb3duOwor576MID4gcWlhbmdcLW5hdGlvbmFsaXR5Owor6IueID4gYVwtdmFyaWV0eVwtb2ZcLXJ1c2g7CivpuaYgPiBzcGVjaWVzXC1vZlwtcGFycm90Owor6JecID4gY2hlbm9wb2RpdW1cLWFsYnVtOwor6ImEID4gc3Rlcm5cLW9mXC1hXC12ZXNzZWw7CivpuYkgPiBzcGVjaWVzXC1vZlwtcGFycm90Owor5bOBID4geWVsbG93XC1kaXJ0XC1tb3VudDsKK+mVlCA+IGhpZ2hcLXF1YWxpdHlcLWlyb247CivpsqsgPiBjYXJhc3NpdXNcLWF1cmF0dXM7CivpvocgPiB0b1wtc2hvd1wtdGhlXC10ZWV0aDsKK+ayrSA+IHJpdmVyXC1pblwtc2hhbnR1bmc7CivmpqsgPiBtb3J0aXNlXC1hbmRcLXRlbm9uOwor6JCLID4gbHV4dXJpYW50XC1mb2xpYWdlOwor6YauID4gcmVsaWdpb3VzXC1zZXJ2aWNlOwor54mdID4gZmVtYWxlXC1vZlwtc3BlY2llczsKK+abtyA+IHdoeVw/XC13aGF0XD9cLXdoZXJlXD87CivnkbcgPiBmaW5lXC1xdWFsaXR5XC1qYWRlOwor6ICmID4gcGxvd1wtc2lkZVwtYnlcLXNpZGU7CivpuLYgPiB0aGVcLWVhc3Rlcm5cLWVncmV0Owor56+mID4gZmluZVwtdG9vdGhlZFwtY29tYjsKK+WmgSA+IGFjdFwtYXNcLWdvXC1iZXR3ZWVuOwor6I2lID4gYVwtY291bnR5XC1pblwtaGVuYW47CivmiL0gPiB0b1wtYmFsZVwtb3V0XC13YXRlcjsKK+aesyA+IHRyaWZvbGlhdGVcLW9yYW5nZTsKK+akkCA+IHplbGtvd2FcLWFjdW1pbmF0YTsKK+W0pCA+IG1vdW50YWluXC1pblwtaGVuYW47CivprYkgPiBhXC1raW5kXC1vZlwtbW9uc3RlcjsKK+miniA+IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivplLQgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor56yVID4gYmFtYm9vXC13YXRlclwtcGlwZTsKK+iAqSA+IHRvXC1wbG91Z2hcLlwtdG9cLXNvdzsKK+W7qCA+IGdvdmVybm1lbnRcLW9mZmljZTsKK+ifriA+IHR5cGVcLW9mXC1lYXJ0aHdvcm07Civom7EgPiBraW5kXC1vZlwtYnV0dGVyZmx5Owor56azID4gcHJheVwtb3JcLXNhY3JpZmljZTsKK+eeoiA+IGV5ZXNpZ2h0XC1vYnNjdXJlZDsKK+iUuCA+IGNvdW50ZXJcLWZvclwtcGxhbnQ7CivonoUgPiBcKGludGVzdGluYWxcLXdvcm1cKTsKK+elpyA+IGFuXC1hbmNlc3RyYWxcLWhhbGw7Civmn50gPiB3YXRjaG1hbicnc1wtcmF0dGxlOwor6KCDID4gdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+icviA+IHRoZVwtc29saXRhcnlcLXdhc3A7CivogYMgPiBlYXJzXC13aXRob3V0XC1yaW1zOwor6ICcID4gc3BhZGVcLXNoYXBlZFwtdG9vbDsKK+aFnSA+IGRvXC1ldmlsXC1pblwtc2VjcmV0Owor5bqzID4gYVwtbG93XC1idWlsdFwtaG91c2U7CivpvKIgPiBhXC12YXJpZXR5XC1vZlwtbW9sZTsKK+iauiA+IGFcLWJvYVwtY29uc3RyaWN0b3I7CivpoqUgPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor56GHID4gYVwta2luZFwtb2ZcLW1pbmVyYWw7Civnoa0gPiBhXC1jcnVkZVwtc2FsdHBldHJlOwor6IOoID4gYVwta2luZFwtb2ZcLXByb3RlaW47CivpvZwgPiB0b1wtc2hvd1wtdGhlXC10ZWV0aDsKK+m9hCA+IHJlZFwtc29yZXNcLW9uXC1ub3NlOwor6bufID4gYmxhY2tcLWFuZFwtc2hpbmluZzsKK+m5gSA+IHNwZWNpZXNcLW9mXC1waWdlb247CivptbUgPiBzY29wc1wtc2VtaXRvcnF1ZXM7CivptZMgPiBzcGVjaWVzXC1vZlwtcGlnZW9uOwor6a+9ID4gY2FyYXNzaXVzXC1hdXJhdHVzOwor6a64ID4gc2NpYWVuYVwtYWxiaWZsb3JhOwor6a2rID4gdGhlXC15b3VuZ1wtb2ZcLWZpc2g7CivprY4gPiBhXC1raW5kXC1vZlwtbW9uc3RlcjsKK+mrvSA+IHRvXC1kcmVzc1wtdGhlXC1oYWlyOwor6aWpID4gc2FjcmZpY2lhbFwtdmljdGltOwor6aSDID4gc3R1ZmZlZFwtZHVtcGxpbmdzOwor6aSCID4gdG9cLW9idGFpblwtYnlcLWhvb2s7Civpo6kgPiBzdHVmZmVkXC1kdW1wbGluZ3M7CivpobMgPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor6aGsID4gdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+meuCA+IGxlYXRoZXJcLWFybVwtZ3VhcmQ7CivpnrIgPiBsZWF0aGVyXC1hcm1cLWd1YXJkOwor6Z2/ID4gdGhlXC1sZWdcLW9mXC1hXC1ib290Owor6Zq4ID4gYmVcLXN1YnNlcnZpZW50XC10bzsKK+matyA+IGJlXC1zdWJzZXJ2aWVudFwtdG87CivplqogPiB0b1wtbG9zZVwtbG9zdFwtaXRlbTsKK+mRpCA+IGNhcnBlbnRlcicnc1wtcGxhbmU7CivpkYwgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor6Y2HID4gaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+mKoCA+IHJob2RpdW1cLXJ1dGhlbml1bTsKK+mJlSA+IHByb21ldGhpdW1cLWJyb256ZTsKK+mJiyA+IGNhcnBlbnRlcicnc1wtcGxhbmU7CivpiLMgPiBjb2x1bWJpdW1cLW5pb2JpdW07Civphq0gPiBtb3VsZHNcLW9uXC1saXF1aWRzOwor6YaRID4gdG9cLXN0cmFpblwtc3Bpcml0czsKK+mFuiA+IGRyaW5rXC13aXRoXC1vdGhlcnM7CivpgoEgPiB0YWtlXC1hXC1iaWdcLXN0cmlkZTsKK+i9hCA+IGxpbmNocGluXC1vZlwtd2hlZWw7Civoso0gPiBhXC1mb3hcLWxpa2VcLWFuaW1hbDsKK+ixiyA+IGNlcmVtb25pYWxcLXZlc3NlbDsKK+iogiA+IGRyYXdcLXVwXC1hZ3JlZW1lbnQ7CivoprwgPiBleHBsYWluXC1pblwtZGV0YWlsOwor6KaZID4gZXhwbGFpblwtaW5cLWRldGFpbDsKK+idoSA+IGV1bWVuZXNcLXBvbGlmb21pczsKK+iclCA+IGlubGFpZFwtc2hlbGxcLXdvcms7Civom7ogPiBraW5kXC1vZlwtYnV0dGVyZmx5Owor6JqmID4gYVwtYm9hXC1jb25zdHJpY3RvcjsKK+iYtSA+IHBoeXNhbGlzXC1hbmd1bGF0YTsKK+iXqCA+IGtpbmRcLW9mXC1yYXNwYmVycnk7CivolbggPiB3YXRlclwtbGlseScnc1wtbGVhZjsKK+iVkSA+IHZhbGVyaWFuYVwtdmlsbG9zYTsKK+iRjiA+IGh1bXVsdXNcLWphcG9uaWN1czsKK+iPoyA+IGFydGVtaXNpYVwtYXBpYWNlYTsKK+iOmyA+IHN0YWxrc1wtb2ZcLWdyYXNzZXM7CivojI0gPiB0b1wtYmVcLWNpcmN1bXNwZWN0Owor572bID4gbGFyZ2VcLWZpc2hpbmdcLW5ldDsKK+e8vSA+IGVhcnRoZW53YXJlXC1iYXNpbjsKK+e4sCA+IGJhbmRcLWZvclwtdGhlXC1oYWlyOwor57aOID4gc2lsa1wtYnJhaWRlZFwtY29yZDsKK+e0rCA+IGtpbmRcLW9mXC10aGluXC1zaWxrOwor57G4ID4gcG93ZGVyeVwtc3Vic3RhbmNlOwor57GTID4gYmlnXC13aW5ub3dcLWJhc2tldDsKK+evqCA+IGNvYXJzZVwtYmFtYm9vXC1tYXQ7CivnroYgPiBmaW5lXC10b290aGVkXC1jb21iOwor56WKID4gcml2ZXJcLWluXC1zaGFuZG9uZzsKK+eYtSA+IGFcLXdhc3RpbmdcLWRpc2Vhc2U7CivnkqsgPiBwZW5kYW50XC1vcm5hbWVudHM7CivnkqYgPiBmaW5lXC1xdWFsaXR5XC1qYWRlOwor546eID4gYW5cLWluZmVyaW9yXC1hZ2F0ZTsKK+eGgCA+IHRoZVwtYmxhemVcLW9mXC1maXJlOwor54GOID4gbW92ZW1lbnRcLW9mXC13YXRlcjsKK+a5kSA+IHRvXC1zdHJhaW5cLXNwaXJpdHM7CivmuLAgPiBmb3JtaW5nXC1vclwtcmlzaW5nOwor5rS2ID4gdGhlXC1ydXNoXC1vZlwtd2F0ZXI7CivmnKAgPiBjb2xvclwtb2ZcLXRoZVwtbW9vbjsKK+aalCA+IG5hbWVcLW9mXC1hXC1jb3VudHJ5Owor5pSwID4gdG90YWxseVwtZXhoYXVzdGVkOwor5o6rID4gYmVcLW9uXC1uaWdodFwtd2F0Y2g7CivmjaUgPiB0b1wtYmVuZFwtdGhlXC13cmlzdDsKK+aKjCA+IHRvXC1iYWxlXC1vdXRcLXdhdGVyOwor5oSwID4gY2xlYXJuZXNzXC1vZlwtbWluZDsKK+W8liA+IHBob25ldGljXC1mb3JcLScndGUnJzsKK+W1hiA+IG1vdW50YWluXC1pblwtaGVuYW47Civlsa0gPiBnaWdhbnRpY1wtc3RyZW5ndGg7CivlsKggPiBzaGFnZ3lcLWhhaXJlZFwtZG9nOwor5aSKID4ga2FuZ3hpXC1yYWRpY2FsXC0zNTsKK+WWvyA+IGNoaXJwaW5nXC1vZlwtYmlyZHM7CivllrwgPiB1c2VkXC1waG9uZXRpY2FsbHk7CivllrkgPiBjaGVtaWNhbFwtY29tcG91bmQ7Civlk7UgPiB0aGVcLWNyeVwtb2ZcLWFcLWJpcmQ7Civlk7QgPiBjcnlpbmdcLW9mXC1pbmZhbnRzOwor5ZCiID4gdm9taXRpbmdcLW9mXC1hXC1kb2c7CivlgIggPiB0b1wtaW5kdWNlXC10b1wtY29tZTsKK+S/oCA+IGNoaXZhbHJvdXNcLXBlcnNvbjsKK+S/iCA+IHRvXC1pbmZvcm1cLXF1aWNrbHk7Civku4IgPiBzdXJwbHVzXC1vclwtZXhjZXNzOwor5LmqID4gYVwtYmVuZFwtaW5cLWFcLXJpdmVyOwor5LawID4gZmVhdGhlclwtb3JuYW1lbnRzOwor5LaWID4gZGlzZWFzZVwtb2ZcLXRvbmd1ZTsKK+S1nCA+IHRvXC1wbG91Z2hcLWFuZFwtc293Owor5LSKID4gdGhlXC1jcm93XC1waGVhc2FudDsKK+SzpCA+IGFcLWtpbmRcLW9mXC1zdHJhbmdlOwor5LOZID4gYVwtZWdyZXRcLWxpa2VcLWJpcmQ7Civkr6UgPiB3aXRoXC1hXC1oaWdoXC1za3VsbDsKK+SvoiA+IHBhcnRpYWxcLXBhcmFseXNpczsKK+SuqyA+IGFcLWJpZ1wtbXVsZVwtYW5cLWFzczsKK+SumiA+IGRpc2Vhc2VzXC1vZlwtaG9yc2U7CivkrpAgPiBpblwtZ29vZFwtY29uZGl0aW9uOwor5K2UID4gc3RlYW1lZFwtZHVtcGxpbmdzOwor5KywID4gbGlnaHRcLXJlZnJlc2htZW50Owor5KyVID4gc291bmRcLW9mXC10aGVcLXdpbmQ7CivkrI0gPiB0aGVcLXNvdW5kXC1vZlwtd2luZDsKK+SshiA+IGFcLWJsdXN0ZXJpbmdcLWdhbGU7CivkrIMgPiB0aGVcLXNvdW5kXC1vZlwtd2luZDsKK+SsgCA+IHNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KumID4gdGhlXC1sb3dlclwtamF3Ym9uZTsKK+SrnyA+IGZhY2lhbFwtY29tcGxleGlvbjsKK+SrjSA+IHRvXC1ib3dcLW9uZScnc1wtaGVhZDsKK+SriSA+IGZhY2lhbFwtYXBwZWFyYW5jZTsKK+SolSA+IHBvdXJpbmdcLXdpdGhcLXJhaW47Civkp7ogPiB0aGVcLW1hbGVcLW9mXC1iaXJkczsKK+SmqiA+IHNvdW5kXC1vZlwtdGhlXC1kb29yOwor5KadID4gc291bmRcLW9mXC10aGVcLWRvb3I7CivkppYgPiBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+SmgyA+IHRvXC1kaWdcLXdpdGhcLWFcLWhvZTsKK+SjuyA+IGNvbG9yXC1vZlwtdGhlXC13aW5lOwor5KOqID4gY29sb3JcLW9mXC10aGVcLXdpbmU7Civkop0gPiB0aGVcLW5leHRcLWluXC1vcmRlcjsKK+ShtyA+IG5vaXNlXC1vZlwtdmVoaWNsZXM7CivkoaogPiBmYW5cLW9mXC1hXC1jYXJyaWFnZTsKK+ShmSA+IGFuXC1hcm1lZFwtY2FycmlhZ2U7CivknpUgPiBjb2xvclwtb2ZcLXRoZVwtZmlyZTsKK+SegiA+IGZhaXJseVwtcHJvc3Blcm91czsKK+SduiA+IHRvXC1waWVyY2VcLXRocm91Z2g7CivknbkgPiBmYWlybHlcLXByb3NwZXJvdXM7CivknbMgPiB0b1wta2lsbFwtZm9yXC1tb25leTsKK+SdsiA+IGZhcmV3ZWxsXC1wcmVzZW50czsKK+ScoiA+IGNydWVsXC1hbmRcLXZpb2xlbnQ7CivkmqAgPiB1bmJyb2tlblwtZmlyZXdvb2Q7Civkmp0gPiBuZXdcLWdyb3dpbmdcLWhvcm5zOwor5JqaID4gaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkmpEgPiB0b1wtc3RlYWxcLWFcLWdsYW5jZTsKK+SagCA+IHRvXC1zZWVcLXN0ZWFsdGhpbHk7CivkmbQgPiB0b1wtc29hclwtYXNcLWFcLWJpcmQ7CivkmaogPiBhXC1sb29wXC1mb3JcLWJ1dHRvbjsKK+SYjiA+IG5hbWVcLW9mXC1hblwtaW5zZWN0Owor5Je5ID4gaGFpcnlcLWNhdGVycGlsbGFyOwor5JelID4gdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+SVpyA+IHppemFuaWFcLWxhdGlmb2xpYTsKK+SVoCA+IGNvYXJzZVwtYmFtYm9vXC1tYXQ7CivklYYgPiByb3VuZFwtc3RyYXdcLXF1aWx0Owor5JObID4gbW9sZWN1bGFyXC1mb3JtdWxhOwor5JK9ID4gaWxsaWNpdW1cLWFuaXNhdHVtOwor5JKQID4gZGlzdHVyYmVkXC1pblwtbWluZDsKK+SSjyA+IGRpc3R1cmJlZFwtaW5cLW1pbmQ7CivkkbwgPiBvY2VhblwtZ29pbmdcLWxpbmVyOwor5JCgID4gYmV0d2VlblwtdGhlXC1mbGVzaDsKK+SQmCA+IHRvXC1sYXVnaFwtaGVhcnRpbHk7CivkkJYgPiB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor5I+wID4gYVwta2luZFwtb2ZcLWluc2VjdHM7Civkj5sgPiBhXC1raW5kXC1vZlwtaW5zZWN0czsKK+SOqCA+IHRvXC1wbG91Z2hcLWFuZFwtc293Owor5I2tID4gYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2nID4gYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2HID4gZmxhdFwtYm90dG9tXC1jcm9jazsKK+SMqCA+IHRoaW5cLXNpbGtcLWZhYnJpY3M7Civki7sgPiB0b1wtc3BpblwtYW5kXC13ZWF2ZTsKK+SLuiA+IGFcLXN3aW5nXC1hXC1jcnVwcGVyOwor5IuYID4gdG9cLWhhbmRcLWJ5XC1hXC1yb3BlOwor5IqvID4gZ3JhaW5zXC13aXRoXC1iZWFyZDsKK+SKmiA+IHN0ZWFtZWRcLWR1bXBsaW5nczsKK+SJjCA+IGNydWRlXC1iYW1ib29cLW1hdHM7CivkiKAgPiBib29rc1wtYW5kXC12b2x1bWVzOwor5IaVID4gdG9cLXBpZXJjZVwtdGhyb3VnaDsKK+SGlCA+IHRvXC1waWVyY2VcLXRocm91Z2g7CivkhIkgPiBhXC1yaXRlXC1vclwtc2VydmljZTsKK+SDvyA+IGFcLXJpdGVcLW9yXC1zZXJ2aWNlOwor5IKjID4gYVwta2luZFwtb2ZcLW1pbmVyYWw7Civkgb0gPiBleWVzaWdodFwtb2JzY3VyZWQ7CivkgbggPiBleWVzaWdodFwtb2JzY3VyZWQ7CivkgYQgPiB0b1wtY2xvc2VcLXRoZVwtZXllczsKK+SAuSA+IHRvXC13aW5rXC1leWVsYXNoZXM7Civjv4MgPiBhblwtb3hcLWhlYWRlZFwtYm9pbDsKK+O+sSA+IGluY3VyYWJsZVwtZGlzZWFzZTsKK+O9jSA+IGFuXC1lYXJ0aGVuXC12ZXNzZWw7CivjvLQgPiBhblwtZWFydGhlblwtdmVzc2VsOwor47q/ID4gYVwtamFkZVwtbGlrZVwtc3RvbmU7Civjtr8gPiB0aGVcLXNtb2tlXC13ZW50XC11cDsKK+O2tCA+IGFcLXZlcnlcLWdyZWF0XC1maXJlOwor47WrID4gd2F0ZXJcLWd1c2hpbmdcLW91dDsKK+O1jSA+IGZpbGxlZFwtd2l0aFwtd2F0ZXI7CivjtYQgPiBuYW1lXC1vZlwtYVwtZHluYXN0eTsKK+OznCA+IHRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsrIgPiBmaW5lXC1jb3R0b25cLWNsb3RoOwor47KYID4gZmluZVwtd29vbGVuXC1jbG90aDsKK+OyiyA+IGFcLWtpbmRcLW9mXC1hbmltYWxzOwor47KDID4gc21vb3RoXC1hbmRcLWN1cnZlZDsKK+OwqSA+IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7Civjr78gPiBoYW5kbGVcLW9mXC1hXC1sYWRsZTsKK+OvpiA+IHRoZVwtZ2FtZVwtb2ZcLWNoZXNzOwor4661ID4gY29tbW9uXC1zYW5kYWx3b29kOwor466oID4gY29kaXVtXC1tYWNyb25hdHVtOwor466aID4gdGhlXC1jaGVzdG51dFwtdHJlZTsKK+OsmyA+IHRvXC1kcnlcLWluXC10aGVcLXN1bjsKK+OpriA+IHRvXC1saWZ0XC11cFwtb3JcLW9mZjsKK+OpqSA+IHRvXC1jb21lXC10b1wtYW5cLWVuZDsKK+OpmSA+IGFcLWNvcmtcLW9yXC1zdG9wcGVyOwor46iiID4gdG9cLXJpcFwtb3BlblwtZmxlc2g7CivvprggPiBiZVwtc3Vic2VydmllbnRcLXRvOwor46OiID4gdG9cLXJlc3RcLWZyb21cLXdvcms7Civjo5MgPiBsaXRlcmFyeVwtaW5cLXRhc3RlOwor46ONID4gYVwtcmFpc2VkXC1wbGF0Zm9ybTsKK+OiriA+IHRvXC11bnN0cmluZ1wtYVwtYm93Owor46KRID4gYVwtY29sbGFwc2VkXC1ob3VzZTsKK+OiiCA+IGFcLWNvbGxhcHNlZFwtaG91c2U7CivjooQgPiBhXC1raW5kXC1vZlwtdXRlbnNpbDsKK+OhnyA+IGJlZFwtbWF0c1wtZm9yXC1iYWJ5Owor46C3ID4gYVwtdmVzc2VsXC1mb3JcLXJpY2U7CivjoKUgPiBydWdnZWRcLWFuZFwtdW5ldmVuOwor46CiID4gcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OftCA+IGx1bXBcLW9uXC10aGVcLWhpbGxzOwor45+kID4gemh1YW5nXC1pblwtZ3Vhbmd4aTsKK+OfgyA+IHRvXC1oYXZlXC1jaGFyZ2VcLW9mOwor456tID4gbmFtZVwtb2ZcLWFuXC1pc2xhbmQ7CivjnYwgPiBwcm9sb25nZWRcLWlsbG5lc3M7Civjm7QgPiB0b1wtYW5nZXJcLXRvXC1hbm5veTsKK+OahSA+IHRvXC13b3JzaGlwXC1vZlwtZ29kOwor45mpID4gYW5cLWVuY2xvc2luZ1wtd2FsbDsKK+OYpiA+IHdhbGxcLW1hZGVcLW9mXC1zb2lsOwor45iaID4gYW5ncnlcLWFpclwtb2ZcLWxvb2s7Civjl7wgPiBlYXRpbmdcLW9yXC10YWxraW5nOwor45elID4gc291bmRcLW9mXC1zdHJpa2luZzsKK+OWuCA+IHRvXC1sYXVnaFwtaGVhcnRpbHk7CivjlqcgPiBjYW5cLW5vdFwtc2VlXC1jbGVhcjsKK+OUnSA+IHN0cm9uZ1wtcmVzaXN0YW5jZTsKK+OTviA+IHRvXC13b3VuZFwtdGhlXC1za2luOwor45GdID4gdG9cLW1ha2VcLWFcLWZvb2xcLW9mOwor45GPID4gdG9cLXN0YW5kXC1hbmRcLXdhaXQ7CivjkYogPiBhXC1raW5kXC1vZlwtZGlzZWFzZTsKK+OQsiA+IG5hbWVcLW9mXC1hblwtaXNsYW5kOwor5LiqID4gbnVtZXJhcnlcLWFkanVuY3Q7Civph4wgPiB1bml0XC1vZlwtZGlzdGFuY2U7CivpmLMgPiAnJ21hbGUnJ1wtcHJpbmNpcGxlOwor6KidID4gZXhwcmVzc1wtc3VycHJpc2U7Civpu40gPiBnbHV0aW5vdXNcLW1pbGxldDsKK+WJpyA+IHRoZWF0cmljYWxcLXBsYXlzOwor6JiCID4gc3RhbWVuXC1vclwtcGlzdGlsOwor5oy6ID4gdG9cLXN0YW5kXC11cHJpZ2h0Owor56GAID4gZm91bmRhdGlvblwtc3RvbmU7CivliocgPiB0aGVhdHJpY2FsXC1wbGF5czsKK+iIhSA+IG1vdGhlcicnc1wtYnJvdGhlcjsKK+iQpyA+IGNvbW1vblwtYXJ0ZW1pc2lhOwor5YCLID4gbnVtZXJhcnlcLWFkanVuY3Q7Civkv7ogPiBwZXJzb25hbFwtcHJvbm91bjsKK+eOsiA+IHRpbmtsaW5nXC1vZlwtamFkZTsKK+mZvSA+ICcnbWFsZScnXC1wcmluY2lwbGU7CivnrocgPiBudW1lcmFyeVwtYWRqdW5jdDsKK+aNqSA+IHR3aXN0XC13aXRoXC1oYW5kczsKK+iutiA+IGV4cHJlc3NcLXN1cnByaXNlOwor6bubID4gYmxhY2tlblwtZXllYnJvd3M7CivlpoYgPiB0b1wtYWRvcm5cLW9uZXNlbGY7CivluaIgPiBjYXJyaWFnZVwtY3VydGFpbjsKK+airSA+IHdlYXZlcicnc1wtc2h1dHRsZTsKK+a8qiA+IHJpcHBsZXNcLW9uXC13YXRlcjsKK+ectyA+IHRha2VcLWludGVyZXN0XC1pbjsKK+WLiyA+IG1lcml0b3Jpb3VzXC1kZWVkOwor55StID4gdGhlcmVcLWlzXC1ub1wtbmVlZDsKK+eloCA+IGFuY2VzdHJhbFwtdGVtcGxlOwor6IiUID4gbGlja1wtd2l0aFwtdG9uZ3VlOwor6JWKID4gdW5vcGVuZWRcLWZsb3dlcnM7CivotaMgPiBqaWFuZ3hpXC1wcm92aW5jZTsKK+i3tyA+IHJhaXNlXC1vbmUnJ3NcLWZvb3Q7CivliYEgPiBjaG9wXC1ieVwtcG91bmRpbmc7CivolrAgPiBhXC1tZWRpY2luYWxcLWhlcmI7Civlj7wgPiBob2xkaW5nXC1pblwtbW91dGg7CivojbwgPiBiaXR0ZXJcLXZlZ2V0YWJsZTsKK+W+mSA+IG1vdmVcLW9uZScnc1wtYWJvZGU7CivmtpQgPiByaXZlclwtaW5cLXNoYWFueGk7CivmvaIgPiBleHBhbnNlXC1vZlwtd2F0ZXI7Civnp7ggPiBzdGFsa3NcLW9mXC1taWxsZXQ7CivoooggPiBidWRkaGlzdFwtY2Fzc29jazsKK+ePniA+IGtpbmRcLW9mXC1uZWNrbGFjZTsKK+WVviA+IHdhaWxpbmdcLW9mXC1jaGlsZDsKK+S6uyA+IHJhZGljYWxcLW51bWJlclwtOTsKK+iIkCA+IGxpY2tcLXdpdGhcLXRvbmd1ZTsKK+WkmSA+IGVhcmx5XC1pblwtbW9ybmluZzsKK+m5mCA+IGFcLWtpbmRcLW9mXC1waWdlb247CivlqKkgPiBnaXZlXC1iaXJ0aFwtY2hpbGQ7Civlp50gPiBhXC1iZWF1dGlmdWxcLWdpcmw7Civmh5EgPiBiZVwtc2lja1wtYXRcLWhlYXJ0Owor6ZSJID4gY2FycGVudGVyJydzXC1maWxlOwor5rSxID4gYVwtbGFrZVwtaW5cLXl1bm5hbjsKK+idiCA+IHNtYWxsXC1ncmVlblwtZnJvZzsKK+W4vCA+IHdvbWVuJydzXC1oZWFkZ2VhcjsKK+eLjiA+IGJlXC1mYW1pbGlhclwtd2l0aDsKK+iDqiA+IGFycmFuZ2VcLWluXC1vcmRlcjsKK+ixoiA+IGRvbWVzdGljXC1hbmltYWxzOwor55yHID4gYmxpbmRcLWluXC1vbmVcLWV5ZTsKK+e+vyA+IGxlZ2VuZGFyeVwtYXJjaGVyOwor6IqpID4gc2FsdFwtbWFyc2hcLXBsYW50Owor6IytID4gYW5cLWFxdWF0aWNcLWdyYXNzOwor6JOWID4gY2FzdG9yXC1vaWxcLXBsYW50Owor5YKnID4gZW50ZXJ0YWluXC1ndWVzdHM7CivolpwgPiBldmVyZ3JlZW5cLXNocnViczsKK+i2uiA+IHNpdFwtY3Jvc3NcLWxlZ2dlZDsKK+akuSA+IGFcLWNob3BwaW5nXC1ib2FyZDsKK+mciCA+IHRvcnJlbnRpYWxcLXJhaW5zOwor6LePID4gc2l0XC1jcm9zc1wtbGVnZ2VkOwor5pupID4gaW5cLWFuY2llbnRcLXRpbWVzOwor5qCMID4gc3VwcG9ydGluZ1wtYmxvY2s7Civlk5ogPiBjaGVtaWNhbFwtZWxlbWVudDsKK+etjCA+IGJhbWJvb1wtZmlzaFwtdHJhcDsKK+a1jSA+IGlycmlnYXRpb25cLWRpdGNoOwor54yBID4gYVwta2luZFwtb2ZcLW1vbmtleTsKK+WVtiA+IFwtZFwtXCtcLWluZVwtXChjaGVtXC5cKTsKK+msryA+IHNhY3JpZmljaWFsXC13aW5lOwor6bK3ID4gcGFncm9zb211c1wtbWFqb3I7CivogbEgPiBiZW50XC1hbmRcLXR3aXN0ZWQ7CivliqIgPiBwdXRcLWZvcnRoXC1lZmZvcnQ7Civon6ogPiBhXC1raW5kXC1vZlwtY2ljYWRhOwor6J6XID4gYVwta2luZFwtb2ZcLWNpY2FkYTsKK+i1hiA+IGZhcmV3ZWxsXC1wcmVzZW50Owor5Z+vID4gY292ZXJcLXdpdGhcLWVhcnRoOwor6bKUID4ga2luZFwtb2ZcLXN0dXJnZW9uOwor572oID4gbWVkaWNhbFwtY29tcHJlc3M7Civlq5wgPiBodXNiYW5kJydzXC1wYXJlbnQ7CivmvKQgPiBtYXJpbmF0ZVwtaW5cLXNhbHQ7CivlmoYgPiBnaXZlXC1mb3J0aFwtc291bmQ7CivolrkgPiBjeXBlcnVzXC1yb3R1bmR1czsKK+iMhiA+IHNwZWNpZXNcLW9mXC1ncmFzczsKK+m9mSA+IHByb2plY3RpbmdcLXRlZXRoOwor6bm2ID4gc2FsdHlcLWFuZFwtYml0dGVyOwor6ba7ID4gYVwta2luZFwtb2ZcLXBpZ2VvbjsKK+mvmyA+IHBhZ3Jvc29tdXNcLW1ham9yOwor6a+GID4gdGhlXC1za2F0ZVwtb3JcLXJheTsKK+muqiA+IGtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mtrCA+IHNvbGVcLW9yXC1mbG91bmRlcjsKK+mqtCA+IGFcLXB1dHJpZFwtY2FyY2FzZTsKK+mmmCA+IGN1dFwtb2ZmXC1sZWZ0XC1lYXI7Civpo4AgPiBzb3VnaGluZ1wtb2ZcLXdpbmQ7Civpn50gPiBsZWF0aGVyXC1hcm1cLWJhbmQ7Civpn4ogPiBhXC1jYXNlXC1mb3JcLWFcLWJvdzsKK+metiA+IGJpZ1wtbGVhdGhlclwtYmVsdDsKK+mblyA+IGFcLXdoaXRlXC1waGVhc2FudDsKK+mapCA+IHRvXC1mYWxsXC1pblwtcnVpbnM7Civpl6AgPiBnYXRlXC1vZlwtYVwtbWFya2V0Owor6Yq8ID4gY2FycGVudGVyJydzXC1maWxlOwor6Yq7ID4gYW50aW1vbnlcLXN0aWJpdW07CivpiqcgPiBwb2ludFwtb2ZcLWFcLXN3b3JkOwor6YmAID4gcG90YXNzaXVtXC1rYWxpdW07CivourcgPiBvZlwtc2hvcnRcLXN0YXR1cmU7CivoubogPiByYWlzZVwtb25lJydzXC1mb290Owor6LmxID4gdG9cLXN0YWdnZXJcLWFsb25nOwor6LmQID4gdGFrZVwtc2hvcnRcLXN0ZXBzOwor6LSbID4gamlhbmd4aVwtcHJvdmluY2U7CivotJAgPiBmYXJld2VsbFwtcHJlc2VudDsKK+izmSA+IGdpdmVcLWZvclwtY2hhcml0eTsKK+ixjyA+IGhhbGZcLWdyb3duXC1iZWFuczsKK+iqlSA+IHRvXC1iZWFyXC1jaGlsZHJlbjsKK+imgiA+IHRvXC10aHJvd1wtYVwtcmlkZXI7CivopbEgPiBsZWdzXC1vZlwtdHJvdXNlcnM7Civoo5sgPiB0b1wtd3JhcFwtYW5kXC1iaW5kOwor6KKXID4gdW5saW5lZFwtZ2FybWVudHM7CivooY4gPiB0b1wtZ2l2ZVwtcGxlYXN1cmU7Civon78gPiBhY3JpZGFcLWNoaW5lbnNpczsKK+ifiCA+IHNtYWxsXC1ncmVlblwtZnJvZzsKK+ieiyA+IHNwaWRlclwtbWlsbGlwZWRlOwor6J27ID4gaW1tYXR1cmVcLWxvY3VzdHM7CivomaUgPiBzdHJpcGVkXC13aWxkXC1jYXQ7Civol6YgPiBlZGlibGVcLW11c2hyb29tczsKK+iXiyA+IHNhbWJ1Y3VcLWphdmluaWNhOwor6JarID4gYVwtbWVkaWNpbmFsXC1oZXJiOwor6JaDID4gY3lwZXJ1c1wtYW11cmljdXM7Civola0gPiBjb21tb25cLWFydGVtaXNpYTsKK+iViyA+IHVub3BlbmVkXC1mbG93ZXJzOwor6JSHID4gbHV4dXJpYW50XC1ncm93dGg7CivokZkgPiBjZWxvc2lhXC1hcmdlbnRlYTsKK+iPiSA+IHRoZVwtZ3JlZW5cLWJhbWJvbzsKK+iKmCA+IG1hbHZhXC1zeWx2ZXN0cmlzOwor6IqDID4gbHV4dXJpYW50XC1ncm93dGg7Civoh5ogPiBhcnJhbmdlXC1pblwtb3JkZXI7CivogLwgPiBlYXJzXC13aXRob3V0XC1yaW07CivntrUgPiB2YXJpY29sb3JlZFwtc2lsazsKK+e0vSA+IGFcLXN0cmFuZFwtb2ZcLXNpbGs7Civns7UgPiBmZXJtZW50aW5nXC1ncmFpbjsKK+ezsSA+IGZlcm1lbnRpbmdcLWdyYWluOwor57OIID4gc2FjcmlmaWNpYWxcLXJpY2U7CivnsacgPiBjcnVkZVwtYmFtYm9vXC1tYXQ7Civnrq8gPiBiYW1ib29cLXBhbGFucXVpbjsKK+euiiA+IGJhbWJvb1wtd2l0aFwtdGhpbjsKK+entyA+IHNvdW5kXC1vZlwtcmVhcGluZzsKK+ekjiA+IGZvdW5kYXRpb25cLXN0b25lOwor56OlID4gYVwtaGVhcFwtb2ZcLXN0b25lczsKK+egqyA+IGFuY2VzdHJhbFwtdGFibGV0Owor556YID4gZGVlcGx5XC1zdW5rXC1leWVzOwor556LID4gZ2xhcmVcLXdpdGhcLWFuZ2VyOwor552cID4gdG9cLW9wZW5cLXRoZVwtZXllczsKK+ebpiA+IGxpZFwtb2ZcLWFcLWNhbGRyb247CivnmYkgPiB0b1wtaGF0ZVwtYml0dGVybHk7CivnmIUgPiB0b1wtaGF0ZVwtYml0dGVybHk7Civnk58gPiB0aGVcLWJvdHRsZVwtZ291cmQ7CivnjLggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor54u7ID4gYVwtZmFidWxvdXNcLWJlYXN0Owor54OcID4gbGlnaHRcLW9mXC10aGVcLXN1bjsKK+eBoCA+IG1hcmluYXRlXC1pblwtc2FsdDsKK+a+riA+IGlycmlnYXRpb25cLWRpdGNoOwor5r6mID4gcGxhY2VcLWluXC1zaWNodWFuOwor5r6lID4gYVwtYmxvY2tlZFwtc3RyZWFtOwor5r6UID4gcmFkaWFuY2VcLW9mXC1nZW1zOwor5rirID4gYmVhdGluZ1wtb2ZcLW9jZWFuOwor5rWkID4gYmVhdGluZ1wtb2ZcLW9jZWFuOwor5q+uID4gdG9cLXB1bGxcLW91dFwtaGFpcjsKK+avqiA+IHNlcmdlXC1mcm9tXC10aWJldDsKK+arqCA+IHN1cHBvcnRpbmdcLWJsb2NrOwor5qibID4gYmVuZGluZ1wtYnJhbmNoZXM7CivmnrIgPiBtYWxlXC1uZXR0bGVcLWhlbXA7CivmnpIgPiB0aGVcLWNvY29udXRcLXRyZWU7CivmmYUgPiBsaWdodFwtb2ZcLXRoZVwtc3VuOwor5pa1ID4gdG9cLWN1dFwtdG9cLXBpZWNlczsKK+aWniA+IGFcLXN0YWNrXC1vZlwtZ3JhaW47CivmkpogPiB0d2lybFwtaW5cLWZpbmdlcnM7CivmjLcgPiB0b1wtcHJvcGVsXC1hXC1ib2F0Owor5oejID4gYmVcLXNpY2tcLWF0XC1oZWFydDsKK+W8syA+IGNpcmN1bGFyXC1tZWFzdXJlOwor5byqID4gY2lyY3VsYXJcLW1lYXN1cmU7Civlu7UgPiB0b1wtZ29cLW9uXC1jaXJjdWl0Owor5bmXID4gd29tZW4nJ3NcLWhlYWRnZWFyOwor5ayOID4gdG9cLWJlYXJcLW11bHRpcGxlOwor5aqkID4gaHVzYmFuZCcnc1wtZmFtaWx5Owor5aadID4gdG9cLWFkb3JuXC1vbmVzZWxmOwor5aKkID4gdG9cLWZhbGxcLWluXC1ydWluczsKK+WbjSA+IGRvdWJsZVwtaGFwcGluZXNzOwor5ZqzID4gbXl0aGljYWxcLWVtcGVyb3I7CivlmIUgPiBzb3VuZFwtb2ZcLXNpZ2hpbmc7Civll54gPiB0b1wtY29uc3VsdFwtYWJvdXQ7Civll4EgPiBnaXZlXC1mb3J0aFwtc291bmQ7CivllrogPiB0b1wtYmVcLWxvY2F0ZWRcLWF0Owor5YuzID4gbWVyaXRvcmlvdXNcLWRlZWQ7Civli7IgPiBtZXJpdG9yaW91c1wtZGVlZDsKK+WLsSA+IHB1dFwtZm9ydGhcLWVmZm9ydDsKK+WLmyA+IG1lcml0b3Jpb3VzXC1kZWVkOwor5Yi0ID4gY2hvcFwtYnlcLXBvdW5kaW5nOwor5YaTID4gYVwtc2VjbHVkZWRcLXBsYWNlOwor5YSQID4gZW50ZXJ0YWluXC1ndWVzdHM7CivlhIogPiByb3VnaFwtYW5kXC1ydWdnZWQ7CivlgpwgPiBhXC1taW5vcml0eVwtdHJpYmU7CivktrEgPiBhXC1raW5kXC1vZlwtdHVydGxlOwor5LWkID4gdG9cLWNyYWNrXC1vclwtY2hhcDsKK+S1oyA+IHdoaXRlXC13aXRoXC1ibGFjazsKK+S1oSA+IHRvXC1jcmFja1wtb3JcLWNoYXA7CivktYMgPiBhXC1raW5kXC1vZlwtYmFybGV5Owor5LSsID4gY3J1bWJzXC1vZlwtYmFybGV5Owor5LSkID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S0oyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivktIUgPiBhXC1sZWdlbmRhcnlcLWJpcmQ7Civks6IgPiBzbWFsbFwtd2lsZFwtZ29vc2U7Civks58gPiBhXC1sZWdlbmRhcnlcLWJpcmQ7Civks5AgPiBhblwtb3dsXC1saWtlXC1iaXJkOwor5LKyID4gYVwtaGF3a1wtbGlrZVwtYmlyZDsKK+SypiA+IGFcLWxlZ2VuZGFyeVwtYmlyZDsKK+SwgyA+IGRpc2hldmVsbGVkXC1oYWlyOwor5K+zID4gbG9vc2VseVwtYXJyYW5nZWQ7Civkr64gPiBkaXNoZXZlbGxlZFwtaGFpcjsKK+SvhyA+IHRvXC1leGVydFwtb25lc2VsZjsKK+SutCA+IHVuc3RhYmxlXC13YWxraW5nOwor5K6zID4gdG9cLWdpdmVcLWJpcnRoXC10bzsKK+SuqSA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivkrqAgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5K6BID4gYVwtcGFpclwtb2ZcLWhvcnNlczsKK+SugCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civkq4wgPiBib3dlZFwtb25lJydzXC1oZWFkOwor5KqOID4gc3RyaW5nc1wtb2ZcLWFcLWNhcDsKK+SppSA+IGFcLWJlbHRcLWZvclwtaG9yc2U7CivkqLsgPiByb2FyXC1vZlwtdGh1bmRlcnM7CivkqLQgPiBnYXRoZXJpbmdcLWNsb3VkczsKK+SosyA+IHRoZVwtcmFpblwtc3RvcHBlZDsKK+SojyA+IHNvdW5kXC1vZlwtcmFpbmluZzsKK+SoiiA+IGFcLWZsb2NrXC1vZlwtYmlyZHM7Civkp7ggPiBhXC1raW5kXC1vZlwtcGlnZW9uOwor5KehID4gYVwtZm9ydGlmaWVkXC13YWxsOwor5KeEID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SmlSA+IGJhbmdcLW9mXC10aGVcLWRvb3I7CivkpoIgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SlmyA+IGFcLWtpbmRcLW9mXC1zaWNrbGU7CivkpYcgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SksiA+IGNoZW1pY2FsXC1lbGVtZW50Owor5KSgID4gY2hlbWljYWxcLWVsZW1lbnQ7Civko64gPiBzbWVsbFwtb2ZcLWFsY29ob2w7Civko6sgPiBzb3VyZWRcLWJlYW5cLWN1cmQ7Civkop4gPiByb3dzXC1hbmRcLWNvbHVtbnM7Civkoa4gPiB0cmFjZVwtb2ZcLWFcLXdoZWVsOwor5KGiID4gYVwtc21hbGxcLWNhcnJpYWdlOwor5KC/ID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SguyA+IHRvXC1iZW5kXC10aGVcLWJvZHk7Civkn4sgPiB0b1wtcHJlc3NcLWZvcndhcmQ7CivknpYgPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor5J6MID4gdG9cLWxvc2VcLWluXC10cmFkZTsKK+SdoyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivknZogPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5J2LID4gYVwtbGl0dGxlXC1vZlwtcGlnczsKK+SdhyA+IGdydW50aW5nXC1vZlwtcGlnczsKK+SbjyA+IHRvXC1jYWxsXC1zb21lYm9keTsKK+SbjiA+IHRvXC1zaG91dFwtaW5cLXJhZ2U7Civkm4IgPiB0b1wtc2VwYXJhdGVcLWZyb207Civkmr8gPiB0b1wtc2hvdXRcLWluXC1yYWdlOwor5JqUID4gdG9cLWxvb2tcLXN1ZGRlbmx5Owor5JqSID4gZXllc2lnaHRcLWJsdXJyZWQ7Civkmo4gPiBleWVzaWdodFwtYmx1cnJlZDsKK+SaiyA+IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqDID4gdG9cLXJlYWxpemVcLWZ1bGx5Owor5JmtID4gdG9cLWxpZnRcLW9yXC1yYWlzZTsKK+SYiyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivkmIIgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Je/ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXvCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl7ggPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JexID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXryA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl64gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JehID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXnyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl5sgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JePID4gbmFtZVwtb2ZcLWFcLWluc2VjdDsKK+SXjiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl4YgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JeEID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXgSA+IGFcLWtpbmRcLW9mXC1jaWNhZGE7CivklrcgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Ja0ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SWsiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civklq8gPiBwb2lzb25vdXNcLWluc2VjdDsKK+SWkCA+IHNvdW5kXC1vZlwtYVwtdGlnZXI7CivklLcgPiBjeXBlcnVzXC1yb3R1bmR1czsKK+SSoyA+IGx1c2hcLW9yXC1kZWxpY2F0ZTsKK+SRuCA+IGFcLWdyb3VwXC1vZlwtYm9hdHM7CivkkYUgPiBkaXp6eVwtYW5kXC1zbGVlcHk7CivkkKggPiBiYWNrXC1vZlwtdGhlXC1mb290Owor5I+SID4gaGFsZlwtb2ZcLXRoZVwtYm9keTsKK+SPjyA+IHNpZ25zXC1hbmRcLWdyb2FuczsKK+SOvCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkjq8gPiB3aW50ZXJcLXBsb3VnaGluZzsKK+SOgiA+IGNvbG9yZnVsXC1mZWF0aGVyOwor5Iy9ID4gdmFyaWNvbG9yZWRcLXNpbGs7CivkjIIgPiBpblwtYW5jaWVudFwtdGltZXM7Civki6QgPiBwbGFpblwtd2hpdGVcLXNpbGs7Civki5QgPiB0b1wtYmFuZFwtdG9nZXRoZXI7CivkiosgPiB0b1wtYWRvcm5cLW9uZXNlbGY7CivkibcgPiBhXC1mZWF0aGVyXC1zY3JlZW47CivkiYkgPiBhXC13cml0aW5nXC10YWJsZXQ7CivkiJkgPiBiYW1ib29cLXRvXC13aXRoZXI7CivkiIggPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5IiDID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SIgiA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkh7sgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5Ie5ID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SHtyA+IGluXC1hbmNpZW50XC10aW1lczsKK+SHpiA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkhr8gPiB0b1wtdGFsa1wtaW5cLXNsZWVwOwor5IayID4gYVwtc3BhY2lvdXNcLWhvdXNlOwor5IaIID4geW91bmdcLWFuZFwtdGVuZGVyOwor5IW8ID4gYVwta2luZFwtb2ZcLWdyYWluczsKK+SFuiA+IGdyYWluXC1pblwtdGhlXC1lYXI7CivkhYogPiBhXC1zcGFjaW91c1wtaG91c2U7CivkhLogPiB5b3VuZ1wtYW5kXC10ZW5kZXI7CivkgqogPiBoYXJkXC1iYXJyZW5cLWxhbmQ7CivkgIMgPiBhXC1raW5kXC1vZlwtdmVzc2VsOwor476mID4gc2NhYlwtb3ZlclwtYVwtc29yZTsKK+O+gSA+IHdhbGtpbmdcLWxpa2VcLW1hZDsKK+O9riA+IGFcLXBvaW50XC1vZlwtbGlnaHQ7CivjvYogPiBjcmFja2luZ1wtb2ZcLXRpbGU7Civju5IgPiByZWRcLWNvbG9yZWRcLWphZGU7Civju4EgPiBhXC1raW5kXC1vZlwtamFzcGVyOwor47q1ID4gYmxhY2tcLWphZGVcLXN0b25lOwor47q0ID4gbmFtZVwtb2ZcLWFcLXNwaXJpdDsKK+O6piA+IGFcLXJ1bm5pbmdcLWFuaW1hbDsKK+O6oyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuqIgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47qdID4gc291bmRcLW9mXC1hXC10aWdlcjsKK+O6mCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjubwgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47m6ID4gZG9nXC10b1wtdGFrZVwtZm9vZDsKK+O5tCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civjua0gPiBhXC1raW5kXC1vZlwtbW9ua2V5Owor47msID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5qCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuZ8gPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47mTID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5hyA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuYQgPiBhXC1raW5kXC1vZlwtY2F0dGxlOwor47i7ID4gYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O4syA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuKMgPiBpblwtYW5jaWVudFwtY2hpbmE7Civjtr4gPiB0b3VnaFwtYW5kXC1ob25lc3Q7Civjto0gPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47aMID4gbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+O1sCA+IG5hbWVcLW9mXC1hXC1zdHJlYW07CivjtYYgPiByYWRpYW5jZVwtb2ZcLWdlbXM7CivjtYMgPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47SnID4gb2ZcLWZsb3dpbmdcLXdhdGVyOwor47O9ID4gYVwtd2F0ZXJ5XC1leHBhbnNlOwor47G2ID4gYVwtc3dlbGxlblwtY29ycHNlOwor47GtID4gYW5cLWluZmVydGlsZVwtZWdnOwor47GIID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OwpCA+IHRvXC1sYXVnaFwtaGVydGlseTsKK+OwmyA+IG5hbWVcLW9mXC1hXC1jb3VudHk7CivjsIUgPiBlYXZlc1wtb2ZcLWFcLWhvdXNlOwor46+VID4gc3RpY2tzXC1vclwtZnJhbWVzOwor46+DID4gdGhlXC12YXJuaXNoXC10cmVlOwor466TID4gYW5cLWV4dHJlbWVcLWxpbWl0Owor4626ID4gdGhlXC1jaGVycnlcLWFwcGxlOwor46qtID4gdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qYID4gdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qWID4gc291bmRcLW9mXC1iZWF0aW5nOwor46i8ID4gdG9cLXRha2VcLWJ5XC1mb3JjZTsKK+OnuiA+IGFcLWZpbmdlclwtd3JhcHBlcjsKK++nqSA+IHVuaXRcLW9mXC1kaXN0YW5jZTsKK++mrSA+IHRpbmtsaW5nXC1vZlwtamFkZTsKK+OmnCA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivvppEgPiB0d2lybFwtaW5cLWZpbmdlcnM7CivjpZQgPiB0b1wtbW92ZVwtdGhlXC1taW5kOwor76S+ID4gdGhlXC1ncmVlblwtYmFtYm9vOwor46S0ID4gdG9cLW1vdmVcLXRoZVwtbWluZDsKK+OkoiA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivvpJcgPiBraW5kXC1vZlwtbmVja2xhY2U7Civjo4ggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor46KwID4gdG9cLXN0cmV0Y2hcLWFcLWJvdzsKK+OhvSA+IGRlcHJhdmVkXC10YWxraW5nOwor46GJID4gYVwta2luZFwtb2ZcLWZhYnJpYzsKK+OgpyA+IGFcLWxpdHRsZVwtc2xhbnRlZDsKK+OgjiA+IGFcLWxvZnR5XC1tb3VudGFpbjsKK+OdqyA+IHNoYXBlXC1vZlwtdGhlXC1za3k7CivjnaogPiBhXC1zbGFudGluZ1wtaG91c2U7CivjnakgPiBzcGFjaW91c2x5XC1yb29tczsKK+OdlyA+IHNwYWNpb3VzbHlcLXJvb21zOwor45y0ID4gZGFya1wtYW5kXC1vYnNjdXJlOwor45ydID4gdG9cLWNoZXJpc2hcLWFuZ2VyOwor45yIID4gYVwtYmVhdWdpZnVsXC1mYWNlOwor45qfID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+OanCA+IHdpdGhcLWdyZWF0XC1wb3dlcjsKK+OalyA+IHdpdGhcLWFcLWJpZ1wtbW91dGg7CivjmocgPiBkcmF3XC10aGVcLWZlZXRcLXVwOwor45meID4gYVwtc21hbGxcLW1vdW50YWluOwor45mOID4gYnJlYWNoXC1vZlwtYVwtdGFuazsKK+OZhSA+IGFcLXdhbGxlZFwtdmlsaWFnZTsKK+OZgCA+IGFcLXZlZ2V0YWJsZVwtcGxvdDsKK+OXuyA+IGJhYnknJ3NcLWFuc3dlcmluZzsKK+OXmSA+IHRvXC1zaG91dFwtb3JcLWJhd2w7Civjla0gPiB0b1wtYmFya1wtYXNcLWFcLWRvZzsKK+OVqSA+IHNvdW5kXC1vZlwtdGFwcGluZzsKK+OVhyA+IHJvY2tzXC1jb2xsYXBzaW5nOwor45S1ID4gYVwta2luZFwtb2ZcLXZlc3NlbDsKK+OUsSA+IGFcLXN0YWNrXC1vZlwtZ3JhaW47CivjlKggPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor45SaID4gdG9cLWV4ZXJ0XC1vbmVzZWxmOwor45SRID4gYW5cLWluY2lzZWRcLXdvdW5kOwor45O8ID4gYW5cLWluY2lzZWRcLXdvdW5kOwor45O4ID4gdG9cLWN1dFwtdG9cLXBpZWNlczsKK+OSrSA+IGFuXC1lbGRlclwtYnJvdGhlcjsKK+OSoSA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivjkoEgPiBvZlwtZ3JlYXRcLXN0YXR1cmU7CivjkbEgPiBhXC1raW5kXC1vZlwtbW9ua2V5Owor45C7ID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OQgCA+IGhpbGxvY2tcLW9yXC1tb3VuZDsKK+edqCA+IGxvb2tcLWFza2FuY2VcLWF0Owor5oCOID4gd2hhdFw/XC13aHlcP1wtaG93XD87CivmlLYgPiBnYXRoZXJcLXRvZ2V0aGVyOwor5YWaID4gcG9saXRpY2FsXC1wYXJ0eTsKK+eJiCA+IHByaW50aW5nXC1ibG9ja3M7CivlraMgPiBxdWFydGVyXC1vZlwteWVhcjsKK+eJoSA+IG1hbGVcLW9mXC1hbmltYWxzOwor6Ki6ID4gZXhhbWluZVwtcGF0aWVudDsKK+WnkSA+IGZhdGhlcicnc1wtc2lzdGVyOwor6KSTID4gc3dhZGRsaW5nXC1jbG90aDsKK+mmhiA+IHB1YmxpY1wtYnVpbGRpbmc7CivmvL8gPiBhbnlcLXRoaWNrXC1mbHVpZDsKK+mbhCA+IG1hbGVcLW9mXC1zcGVjaWVzOwor5Lq/ID4gaHVuZHJlZFwtbWlsbGlvbjsKK+WbuiA+IHRvXC1iZWNvbWVcLXNvbGlkOwor6buoID4gcG9saXRpY2FsXC1wYXJ0eTsKK+a6qiA+IG1vdW50YWluXC1zdHJlYW07CivomZ4gPiBjb25jZXJuZWRcLWFib3V0Owor5ZeaID4gc291bmRcLW9mXC1jcnlpbmc7CivolocgPiBvc211bmRhXC1yZWdhbGlzOwor5oiPID4gdGhlYXRyaWNhbFwtcGxheTsKK+WPrCA+IGltcGVyaWFsXC1kZWNyZWU7Civlj44gPiBnYXRoZXJcLXRvZ2V0aGVyOwor55GeID4gZmVsaWNpdG91c1wtb21lbjsKK+msoiA+IGhhaXJcLW9uXC10ZW1wbGVzOwor5YOnID4gYnVkZGhpc3RcLXByaWVzdDsKK+aqnCA+IGNoaW5lc2VcLWN5cHJlc3M7Civmqo4gPiBzbWFsbFwtcmVkXC1hcHBsZTsKK+mphSA+IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+iHnyA+IGludGVybmFsXC1vcmdhbnM7Civpp4ggPiBzcHVyXC1hXC1ob3JzZVwtb247Civpp4YgPiBzcHVyXC1hXC1ob3JzZVwtb247CivppKggPiBwdWJsaWNcLWJ1aWxkaW5nOwor5YSEID4gaHVuZHJlZFwtbWlsbGlvbjsKK+ahpyA+IGNoaW5lc2VcLWN5cHJlc3M7CivohI8gPiBpbnRlcm5hbFwtb3JnYW5zOwor6amxID4gc3B1clwtYVwtaG9yc2VcLW9uOwor5ZyzID4gZnVycm93XC1pblwtZmllbGQ7CivnubsgPiBmaW5lXC1zaWxrXC1ndWF6ZTsKK+WtnyA+IGZpcnN0XC1pblwtc2VyaWVzOwor57iLID4gY2xpbWJcLWRvd25cLXJvcGU7CivplqQgPiBzbWFsbFwtc2lkZVwtZG9vcjsKK+aWjiA+IHZlZ2V0YXJpYW5cLWRpZXQ7Civnm68gPiByaXZldFwtZ2F6ZVwtdXBvbjsKK+eynyA+IHVuaHVza2VkXC1taWxsZXQ7CivnsZAgPiBjbGltYmluZ1wtcGxhbnRzOwor5o67ID4gc2NyYXRjaFwtbGlnaHRseTsKK+S/mCA+IHByaXNvbmVyXC1vZlwtd2FyOwor5oy+ID4gY2xhc3BcLXVuZGVyXC1hcm07Civor4ogPiBleGFtaW5lXC1wYXRpZW50Owor5aqzID4gZGF1Z2h0ZXJcLWluXC1sYXc7CivlrpkgPiB0aW1lXC1hc1wtY29uY2VwdDsKK+WRnCA+IHNvdW5kXC1vZlwtY3J5aW5nOwor5Y2cID4gZm9ydHVuZVwtdGVsbGluZzsKK+aIsiA+IHRoZWF0cmljYWxcLXBsYXk7CivmiK8gPiB0aGVhdHJpY2FsXC1wbGF5Owor5biWID4gaW52aXRhdGlvblwtY2FyZDsKK+mAniA+IGluZHVsZ2VcLW9uZXNlbGY7Civmj6ogPiBncmFzcFwtd2l0aFwtaGFuZDsKK+S7kSA+IGxvZ2ljYWxcLXJlYXNvbnM7CivmtYYgPiBhbnlcLXRoaWNrXC1mbHVpZDsKK+aMnyA+IGNsYXNwXC11bmRlclwtYXJtOwor54WeID4gbWFsaWduYW50XC1kZWl0eTsKK+aWiyA+IHZlZ2V0YXJpYW5cLWRpZXQ7Civps4wgPiBodWdlXC1zZWFcLXR1cnRsZTsKK+WNpiA+IGZvcnR1bmVcLXRlbGxpbmc7CivnnqkgPiB3YXRjaFwtY2FyZWZ1bGx5Owor55aaID4gY2hyb25pY1wtZGlzZWFzZTsKK+iUkyA+IGNyZWVwaW5nXC1wbGFudHM7Civpqo8gPiBleGNlbGxlbnRcLWhvcnNlOwor6Ze9ID4gZnVqaWFuXC1wcm92aW5jZTsKK+iihSA+IGN1cmxpbmdcLXVwd2FyZHM7CivovpAgPiBzcG9rZXNcLW9mXC13aGVlbDsKK+eQiSA+IHNwYXJrbGluZ1wtc3RvbmU7CivoiJwgPiBsZWdlbmRhcnlcLXJ1bGVyOwor6L2nID4gY3J1c2hcLWJ5XC13ZWlnaHQ7Civmu4cgPiB5dW5uYW5cLXByb3ZpbmNlOwor6ayTID4gaGFpclwtb25cLXRlbXBsZXM7CivmoZMgPiB2YXJpZXR5XC1vZlwtdHJlZTsKK+ajoCA+IGNyYWJcLWFwcGxlXC10cmVlOwor5ZCuID4gc3Vja1wtd2l0aFwtbW91dGg7CivonLcgPiBjcmVlcFwtbGlrZVwtd29ybTsKK+aetyA+IGNhbmd1ZVwtc2NhZmZvbGQ7CivnvrIgPiBhbmNpZW50XC1lbXBlcm9yOwor5a2aID4gYnJvb2RcLW92ZXJcLWVnZ3M7CivpqoEgPiBleGNlbGxlbnRcLWhvcnNlOwor55qRID4gYnJpbGxpYW50XC13aGl0ZTsKK+e8pSA+IGxpZ2h0XC1ibHVlXC1zaWxrOwor6K+MID4gcGxheVwtd2l0aFwtd29yZHM7Civms74gPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmgaMgPiBpbmR1bGdlXC1vbmVzZWxmOwor6KeOID4gZGVzaXJlXC1zdHJvbmdseTsKK+eOuiA+IGltcGVyaWFsXC1zaWduZXQ7CivljZ4gPiB0b1wtYmVcLWltcGF0aWVudDsKK+i+lCA+IGJyaWRsZVwtb2ZcLWhvcnNlOwor6LaUID4gbm90XC1wcm9ncmVzc2luZzsKK+W+nCA+IHdhbGtpbmdcLWFuZFwtZnJvOwor6I2gID4gd2F0ZXJcLWNoZXN0bnV0czsKK+axniA+IGVsZW1lbnRcLW1lcmN1cnk7Civnlb8gPiBpbXBlcmlhbFwtZG9tYWluOwor6IiCID4gZ3JpbmRcLWluXC1tb3J0YXI7CivnsbQgPiBwdXJjaGFzZVwtZ3JhaW5zOwor56mwID4gc3RhbGtzXC1vZlwtZ3JhaW47CivnvJIgPiBjbGltYlwtZG93blwtcm9wZTsKK+WXhCA+IGhvYXJzZVwtb2ZcLXZvaWNlOwor552lID4gbG9va1wtYXNrYW5jZVwtYXQ7CivmuJogPiBzbWFsbFwtc2FuZFwtYmFuazsKK+egnSA+IGJhbGFuY2VcLXdlaWdodHM7CivmnbwgPiBzaHV0dGxlXC1vZlwtbG9vbTsKK+m+gyA+IGlycmVndWxhclwtdGVldGg7Civli5AgPiBpbXBlcmlhbFwtZGVncmVlOwor55+4ID4gYVwtcm9ja1wtb3JcLWNsaWZmOwor55e8ID4gY2hyb25pY1wtZGlzZWFzZTsKK+iVqCA+IHB0ZXJpc1wtYXF1aWxpbmE7CivosYkgPiBmZXJtZW50ZWRcLWJlYW5zOwor5b6tID4gY29uc2NyaXB0XC1sYWJvcjsKK+m6iCA+IHNwZWNpZXNcLW9mXC1kZWVyOwor6JWkID4gZHJvb3BpbmdcLWxlYXZlczsKK+m6giA+IHNwZWNpZXNcLW9mXC1kZWVyOwor57uhID4gcmF3XC1zaWxrXC1mYWJyaWM7CivoiqggPiBuYW1lXC1vZlwtYVwtcGxhbnQ7Civoi6MgPiBraW5kXC1vZlwtbGV0dHVjZTsKK+eimyA+IHNhbmRcLWFuZFwtZ3JhdmVsOwor6I6SID4gaGVtcFwtbGlrZVwtcGxhbnQ7Civmv4kgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivokIEgPiBraW5kXC1vZlwtZ3Jhc3NlczsKK+echCA+IHRvXC1sb29rXC1hc2thbmNlOwor5ZufID4gdG9wXC1vZlwtdGhlXC1oZWFkOwor5bKjID4gYVwtaGlsbFwtaW5cLWh1bmFuOwor5Ze+ID4gdG9cLXNldFwtYVwtZG9nXC1vbjsKK+iNnCA+IHNwZWNpZXNcLW9mXC1iZWFuOwor57OBID4gYVwtZ3JhaW5cLW9mXC1yaWNlOwor57KdID4gdW5wb2xpc2hlZFwtcmljZTsKK+ijsCA+IHRvXC1tZW5kXC1jbG90aGVzOwor5p+wID4gY3JhYlwtYXBwbGVcLXRyZWU7CivolqggPiBkZWF0aFwtb2ZcLXByaW5jZTsKK+iMkSA+IHRoZVwtY29udm92dWx2dXM7Civnv64gPiBzdGVtXC1vZlwtZmVhdGhlcjsKK+iJnyA+IGFuY2llbnRcLXdhcnNoaXA7CivpvK8gPiBmbHlpbmdcLXNxdWlycmVsOwor56CpID4gbmFtZVwtb2ZcLWFcLXN0b25lOwor54K7ID4gYVwta2luZFwtb2ZcLWNoaW5hOwor5qqrID4gc2Fzc2FmcmFzXC10enVtdTsKK+eLtCA+IGFcLWtpbmRcLW9mXC10YXBpcjsKK+m+kSA+IGhpZ2hcLWFuZFwtYnJpZ2h0Owor6b2fID4gaXJyZWd1bGFyXC10ZWV0aDsKK+m9iyA+IHZlZ2V0YXJpYW5cLWRpZXQ7CivpvJUgPiByYXR0bGVcLW9mXC1kcnVtczsKK+m8hyA+IGh1Z2VcLXNlYVwtdHVydGxlOwor6biTID4gZmx5aW5nXC1zcXVpcnJlbDsKK+m0kiA+IHNwZWNpZXNcLW9mXC1sYXJrOwor6bSCID4gdGhlXC10YWlsb3JcLWJpcmQ7Civps7sgPiB0aGVcLXdpbGRcLXBpZ2VvbjsKK+mzkyA+IGNoaW5lc2VcLWhlcnJpbmc7CivpsaEgPiB0aGVcLWN1dHRsZVwtZmlzaDsKK+mxhSA+IGFcLWtpbmRcLW9mXC10ZW5jaDsKK+mwsyA+IGNoaW5lc2VcLWhlcnJpbmc7CivpsLIgPiBodWdlXC1zZWFcLXR1cnRsZTsKK+mtsCA+IHRoZVwtZmx5aW5nXC1maXNoOwor6au+ID4gdGFpbFwtb2ZcLWFcLWNvbWV0Owor6au0ID4gZGlzaGV2ZWxlZFwtaGFpcjsKK+mptSA+IGV4Y2VsbGVudFwtaG9yc2U7CivpqY0gPiBleGNlbGxlbnRcLWhvcnNlOwor6aiYID4gYVwtcGllYmFsZFwtaG9yc2U7Civpp78gPiBleGNlbGxlbnRcLWhvcnNlOwor6aeUID4gZXhjZWxsZW50XC1ob3JzZTsKK+mlhyA+IHRvXC1lYXRcLXRvb1wtbXVjaDsKK+miuyA+IGZsb2F0aW5nXC1pblwtYWlyOwor6aKuID4gc3Rvcm1cLXdoaXJsd2luZDsKK+mhliA+IHRvcFwtb2ZcLXRoZVwtaGVhZDsKK+mfniA+IGFuXC1vcmFuZ2VcLWNvbG9yOwor6Z60ID4gc2FkZGxlXC11cFwtaG9yc2U7CivpnbggPiBhXC1jaGlsZCcnc1wtc2hvZXM7Civpm7EgPiBzbm93aW5nXC1oZWF2aWx5Owor6ZapID4gZnVqaWFuXC1wcm92aW5jZTsKK+mOpCA+IHNvdW5kXC1vZlwtYVwtYmVsbDsKK+mKviA+IGVsZW1lbnRcLW1lcmN1cnk7Civphr4gPiB1bmZpbHRlcmVkXC13aW5lOwor6YS5ID4gbmFtZVwtb2ZcLWFcLXN0YXRlOwor6L2hID4gYnJpZGxlXC1vZlwtaG9yc2U7CivovLsgPiBzcG9rZXNcLW9mXC13aGVlbDsKK+i7iyA+IGNydXNoXC1ieVwtd2VpZ2h0Owor6LqAID4gdG9cLXN0dW1ibGVcLW92ZXI7Civotq4gPiBlYXNpbHlcLXByb3Zva2VkOwor6KyFID4gcGxheVwtd2l0aFwtd29yZHM7Civoq6EgPiBwb3N0aHVtb3VzXC1uYW1lOwor6KiSID4gaGVzaXRhdGVcLXRvXC1zYXk7CivopqYgPiBkZXNpcmVcLXN0cm9uZ2x5Owor6KW8ID4gJydraW1vbm8nJ1wtc2xlZXZlOwor6KWMID4gdW5saW5lZFwtZ2FybWVudDsKK+ikpyA+IHVubGluZWRcLWNsb3RoZXM7CivopJ0gPiB1bmxpbmVkXC1nYXJtZW50Owor6KOKID4gY3VybGluZ1wtdXB3YXJkczsKK+iemiA+IGVyaXN0YWxpc1wtdGVuYXg7Civol7YgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivolrogPiB3YXRlclwtY2hlc3RudXRzOwor6JWiID4gZWRpYmxlXC1hbWFyYW50aDsKK+iVjSA+IGFsaXNtYVwtcGxhbnRhZ3M7CivolL4gPiBraW5kXC1vZlwtYnJhbWJsZTsKK+iUpiA+IHRoZVwtY29udm92dWx2dXM7Civok70gPiBzcGVjaWVzXC1vZlwtYmVhbjsKK+iSqCA+IGx1c2hcLXZlZ2V0YXRpb247CivokpMgPiBhblwtZWRpYmxlXC13YXRlcjsKK+iSiSA+IGVkaWJsZVwtYW1hcmFudGg7CivokZEgPiB0aGVcLXJhcGVcLXR1cm5pcDsKK+iQlSA+IHdhdGVyXC1jaGVzdG51dHM7Civoi4ggPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivoiYUgPiBhXC1kZXNwYXRjaFwtYm9hdDsKK+iHkyA+IGludGVybmFsXC1vcmdhbnM7CivohaIgPiB0aGVcLWNvbGxhclwtYm9uZTsKK+e9vyA+IG5ldFwtY2F0Y2hcLWJpcmRzOwor57i5ID4gbGlnaHRcLWJsdWVcLXNpbGs7CivntoMgPiByYXdcLXNpbGtcLWZhYnJpYzsKK+e1jSA+IHRvXC1sYXlcLXRoZVwtd2FycDsKK+e1hSA+IHVubGluZWRcLWdhcm1lbnQ7Civns7QgPiBwdXJjaGFzZVwtZ3JhaW5zOwor57OyID4gdW5wb2xpc2hlZFwtcmljZTsKK+exmCA+IGNsaW1iaW5nXC1wbGFudHM7CivnsJQgPiBhXC1jb2F0XC1yYWluY29hdDsKK+ewkSA+IGFcLWNvYXRcLXJhaW5jb2F0Owor56+wID4gYVwtYmFtYm9vXC1iYXNrZXQ7CivnqaMgPiBzdGFsa3NcLW9mXC1ncmFpbjsKK+ephCA+IHBhbmljbGVkXC1taWxsZXQ7CivnposgPiBvZmZlclwtc2FjcmlmaWNlOwor56OqID4gYVwtaGlnaFwtbW91bnRhaW47Civno6cgPiBzYW5kXC1hbmRcLWdyYXZlbDsKK+ejjiA+IG1vdW50YWluXC1zdHJlYW07Civnn5ogPiB3YXRjaFwtY2FyZWZ1bGx5Owor55qaID4gYnJpbGxpYW50XC13aGl0ZTsKK+eYiCA+IHByb2xvbmdlZFwtZmV2ZXI7CivnmIMgPiBzb3Jlc1wtZnJvbVwtY29sZDsKK+eXviA+IGNocm9uaWNcLWlsbG5lc3M7Civnl7UgPiBhXC1oZWFydFwtc3ltcHRvbTsKK+eXriA+IGFcLXN3ZWxsZWRcLWJlbGx5Owor55egID4gYWNoaW5nXC1vZlwtbGltYnM7Civnl4EgPiBjaHJvbmljXC1tYWxhcmlhOwor55aiID4gYWNoaW5nXC1vZlwtbGltYnM7CivnlawgPiByZWNsYWltZWRcLWZpZWxkOwor55SkID4gZHJvb3BpbmdcLWxlYXZlczsKK+eSvSA+IGltcGVyaWFsXC1zaWduZXQ7CivnkK0gPiBqYWRlXC1saWtlXC1zdG9uZTsKK+ePpyA+IG1vdGhlclwtb2ZcLXBlYXJsOwor54+HID4gY2FydmluZ1wtb25cLWphZGU7Civnjp8gPiBzdHJlYWtzXC1pblwtamFkZTsKK+eNsSA+IGFcLWtpbmRcLW9mXC1vdHRlcjsKK+eLqyA+IG5hbWVcLW9mXC1hXC10cmliZTsKK+eJhCA+IHRvXC13YWxrXC1yYXBpZGx5Owor54aTID4gdGhlXC1iYW5rXC1hXC1maXJlOwor54S1ID4gdG9cLXRlbXBlclwtc3RlZWw7CivngLUgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivngJ4gPiBwb29sXC1pblwtYVwtcml2ZXI7CivmvZkgPiByaXZlclwtaW5cLXNoYW54aTsKK+a8tSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+a7jiA+IGNvdW50eVwtaW5cLWhlbmFuOwor5rqkID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5riTID4gbW91bnRhaW5cLXN0cmVhbTsKK+a3kyA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+a2hyA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+azqSA+IHJpc2luZ1wtb2ZcLXdhdGVyOwor5rKaID4gaXNsZXRcLWluXC1zdHJlYW07CivmspggPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmpqEgPiBxdWVyY3VzXC1kZW50YXRhOwor5qS6ID4gYmVhbVwtb2ZcLWFcLWhvdXNlOwor5p+OID4gY2FseXhcLW9mXC1mbG93ZXI7Civmn4EgPiBsYXJnZVwtdGllXC1iZWFtczsKK+aerCA+IGFuXC1ldmVuXC1ncmFpbmVkOwor5pyjID4gdGhlXC1yaXNpbmdcLW1vb247CivmkbsgPiBhXC1kZWxpY2F0ZVwtaGFuZDsKK+aPqyA+IGdyYXNwXC13aXRoXC1oYW5kOwor5oixID4gdGhlYXRyaWNhbFwtcGxheTsKK+aIhCA+IHRvXC1iZVwtaW5cLWF3ZVwtb2Y7Civlv5MgPiBjb25jZXJuZWRcLWFib3V0Owor5b6sID4gdG9cLXdhbmRlclwtYWJvdXQ7CivlvLQgPiByZWRcLWxhY3F1ZXJcLWJvdzsKK+W3uSA+IG51cHRpYWxcLXdpbmVjdXA7CivltY4gPiBtb3VudGFpblwtcmVjZXNzOwor5bOeID4gaGlnaFwtYW5kXC11bmV2ZW47CivlpLIgPiBhZHZhbmNlXC1xdWlja2x5Owor5Z20ID4gYVwtY2xvZFwtb2ZcLWVhcnRoOwor5ZajID4gdG9cLWJyZWF0aGVcLXVwb247CivllLIgPiBmb3JjZWRcLWxhdWdodGVyOwor5Y6cID4gYVwtbW91bnRhaW5cLXBlYWs7CivljIkgPiBub2lzZVwtb2ZcLXdhdGVyczsKK+WMhCA+IHRvXC1iZWdcLWZvclwtYWxtczsKK+WLhSA+IGltcGVyaWFsXC1kZWdyZWU7CivlipggPiBtYWtlXC1pbnRvXC1taW5jZTsKK+WKliA+IG1ha2VcLWludG9cLW1pbmNlOwor5YK9ID4gdGVycm9yXC1zdHJpY2tlbjsKK+S+liA+IGxvZ2ljYWxcLXJlYXNvbnM7CivkvZQgPiBvY2N1cHlcLWJ5XC1mb3JjZTsKK+S5uCA+IGZlbWluaW5lXC1zdWZmaXg7CivktqEgPiBzb3VuZFwtb2ZcLWJpdGluZzsKK+S2jiA+IHNvdW5kXC1vZlwtYnJlYXRoOwor5LWbID4gcGFuaWNsZWRcLW1pbGxldDsKK+S1liA+IHBhbmljbGVkXC1taWxsZXQ7CivktL4gPiB0b1wtZ3JpbmRcLWJhcmxleTsKK+S0riA+IGNha2VzXC1wZlwtbGVhdmVuOwor5LSOID4gZmx5aW5nXC1zcXVpcnJlbDsKK+SyviA+IHRoZVwtdGFpbG9yXC1iaXJkOwor5K+EID4gYVwtcGllYmFsa1wtaG9yc2U7Civkrr0gPiBiaXRcLWZvclwtYVwtaG9yc2U7CivkrrUgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrrEgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivkrrAgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivkrqwgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrqggPiBhXC1waWViYWxkXC1ob3JzZTsKK+SupyA+IGxvbmdcLWhhaXJcLWhvcnNlOwor5K6iID4gYVwtd2Fsa2luZ1wtaG9yc2U7Civkrp4gPiBhXC1waWViYWxkXC1ob3JzZTsKK+SumSA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SuliA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SukyA+IGFcLXdhbGtpbmdcLWhvcnNlOwor5K6SID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6PID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6OID4gYVwtcnVubmluZ1wtaG9yc2U7CivkrosgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkroogPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrbwgPiBkYXJrXC1ibHVlXC1ob3JzZTsKK+SttiA+IGRhcmtcLWJsdWVcLWhvcnNlOwor5KyrID4gY2xhcmZpZWRcLWJ1dHRlcjsKK+SsgSA+IGFcLWxpZ2h0XC1jeWNsb25lOwor5KquID4gYmVhdXRpZnVsXC1zb3VuZDsKK+SqlSA+IHRvXC13cmFwXC1vclwtYmFuZDsKK+SpuSA+IHRvXC1yZXBhaXJcLXNob2VzOwor5KmSID4gZHJlc3NlZFwtbGVhdGhlcjsKK+SphCA+IHRvXC1mYWNlXC10b1wtZmFjZTsKK+SopiA+IHNub3dpbmdcLWhlYXZpbHk7CivkqKIgPiBhXC1wYXNzaW5nXC1jbG91ZDsKK+SoliA+IHRvXC1zdG9wXC1yYWluaW5nOwor5KiRID4gdG9cLXN0b3BcLXJhaW5pbmc7CivkqIAgPiB0b1wtbGF5XC1pblwtZ3JhaW47Civkp68gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp64gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp50gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4wgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4sgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4MgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkprsgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkpqsgPiBpbnNpZGVcLXRoZVwtZG9vcjsKK+SmoCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+SllyA+IGFcLWJyYW5kaW5nXC1pcm9uOwor5KSxID4gYVwtc29sZW1uXC1wbGVkZ2U7Civko7YgPiB1bnN0cmFpbmVkXC13aW5lOwor5KOzID4gdW5zdHJhaW5lZFwtd2luZTsKK+SjkyA+IG5hbWVcLW9mXC1hXC1zdGF0ZTsKK+SjkCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjiyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjiiA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjhyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SiuyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SitCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SisyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SipiA+IHRvXC1sZWFkXC10aGVcLXdheTsKK+SiliA+IHRvXC1iZVwtc2NhdHRlcmVkOwor5KKBID4gdGlyZVwtb2ZcLWFcLXdoZWVsOwor5KG7ID4gc2hha2VcLW9mXC1hXC1jYXJ0Owor5KGoID4gY29ubmVjdGVkXC1jYXJ0czsKK+ShkyA+IHNoYWtlXC1vZlwtYVwtY2FydDsKK+ShkCA+IHRvXC1tb3ZlXC1zd2lmdGx5Owor5KC1ID4gdG9cLXdlYXJcLWNsb3RoZXM7CivkoKggPiB3YWxraW5nXC1yYXBpZGx5Owor5J+bID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SfkSA+IHdhbGtpbmdcLXJhcGlkbHk7CivknrcgPiB3YWxraW5nXC1yYXBpZGx5Owor5J62ID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SesCA+IHdhbGtpbmdcLXJhcGlkbHk7Civknq0gPiB3YWxraW5nXC1yYXBpZGx5Owor5J6sID4gdG9cLXBhc3NcLXRocm91Z2g7CivknqogPiB3YWxraW5nXC1yYXBpZGx5Owor5J2vID4gdG9cLWNoYW5nZVwtaGFuZHM7CivknZAgPiBhXC1jYXN0cmF0ZWRcLWhvZzsKK+ScviA+IGZlcm1lbnRlZFwtYmVhbnM7CivknLsgPiBmZXJtZW50ZWRcLWJlYW5zOwor5Jy1ID4gZmVybWVudGVkXC1iZWFuczsKK+SchCA+IHNsb3dcLW9uXC10YWxraW5nOwor5Ju1ID4gdG9cLXRlYWNoXC1vcmFsbHk7Civkm58gPiB3aWxkXC1zdGF0ZW1lbnRzOwor5JuUID4gdG9cLWhvbGRcLWluXC1oYW5kOwor5JqmID4gc2xhbnRlZFwtY29ybmVyczsKK+SapSA+IHRvXC1hZGp1c3RcLWFcLWJvdzsKK+SZuyA+IHRvXC1zdGVhbFwtYVwtbG9vazsKK+SZqCA+IHRvXC13cmFwXC1vclwtYmluZDsKK+SZnSA+IHVuZGVyXC1nYXJybWVudHM7Civkl74gPiBjb3JiaWN1bGFcLWxlYW5hOwor5Ja8ID4gdGhlXC1kdW5nXC1iZWV0bGU7CivklpkgPiBhXC1yZXN0aW5nXC10aWdlcjsKK+SWiSA+IHRvXC1yb2FyXC1vclwtaG93bDsKK+SVtyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SVmSA+IHRvXC1zZXRcLWluXC1vcmRlcjsKK+SViSA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SUpyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SUhyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STtiA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STniA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STmCA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STiCA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SStyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SSkiA+IG5hbWVcLW9mXC1hXC1wbGFudDsKK+SSjCA+IGRhcmtcLWJsdWVcLWNvbG9yOwor5JCcID4gYVwtc3dlbGxlZFwtYmVsbHk7Civkj7IgPiBwcm90cnVkZWRcLWJvbmVzOwor5I6zID4gbG9zZVwtb2ZcLXRoZVwtZWFyOwor5I6JID4gdG9cLXdhbGtcLXN3aWZ0bHk7CivkjL4gPiB0b1wtbGF5XC10aGVcLXdhcnA7Civki7cgPiBhXC1raW5kXC1vZlwtdGhpY2s7Civki5UgPiB0b1wtbGF5XC10aGVcLXdhcnA7CivkirUgPiB5b3VuZ1wtYW5kXC1zbWFsbDsKK+SKlyA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SKiSA+IHByZXNlcnZlZFwtZnJ1aXQ7CivkiacgPiBzb3VuZFwtb2ZcLWJhbWJvbzsKK+SGgiA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SFtyA+IGFuXC1lYXJcLW9mXC1ncmFpbjsKK+SFsCA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFoSA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFoCA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFniA+IHN0YWxrc1wtb2ZcLWdyYWluOwor5IWLID4gYVwta2luZFwtb2ZcLWdyYWluOwor5IWCID4gYVwta2luZFwtb2ZcLWdyYWluOwor5ISxID4gYVwta2luZFwtb2ZcLWdyYWluOwor5ISuID4gZGFya1wtcmljZVwtcGxhbnQ7CivkhKcgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhJUgPiBnb2RcLW9mXC10aGVcLWxhbmQ7Civkg7cgPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg7UgPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg54gPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg5IgPiBwb29yXC1hbmRcLWJhcnJlbjsKK+SCrSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SCmiA+IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SBtCA+IGtlZXBcLW9uXC1sb29raW5nOwor5IGzID4gdG9cLWxvc2VcLW9uZVwtZXllOwor5ICpID4gdG9cLWxvb2tcLWFza2FuY2U7CivkgI4gPiB0b1wtbG9va1wtYXNrYW5jZTsKK+SAiSA+IGZvb2RcLWNvbnRhaW5lcnM7Civjv7EgPiBkcnlcLWFuZFwtZGVjYXllZDsKK+O+qSA+IG1hbGlnbmFudFwtYm9pbHM7Civjvb0gPiBjaHJvbmljXC1kaXNlYXNlOwor472nID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor47yVID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yUID4gYVwta2luZFwtb2ZcLW1lbG9uOwor47yRID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yNID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yKID4gYVwta2luZFwtb2ZcLW1lbG9uOwor47yCID4gYVwtY3JhY2tcLWluXC1qYWRlOwor47u4ID4gamFkZVwtbGlrZVwtc3RvbmU7Civju7cgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civju40gPiBuYW1lXC1vZlwtYVwtc3dvcmQ7CivjuqQgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjuqEgPiBhXC1raW5kXC1vZlwtYmVhc3Q7Civjup8gPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjupQgPiBhXC1raW5kXC1vZlwtYmVhc3Q7Civjuo0gPiBhXC1raW5kXC1vZlwtb3R0ZXI7CivjuowgPiBlbmRsZXNzXC1iYXJraW5nOwor47qEID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qBID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47mnID4gZm94XC1saWtlXC1hbmltYWw7CivjuLEgPiBob3JubGVzc1wtY2F0dGxlOwor47iwID4gaG9ybmxlc3NcLWNhdHRsZTsKK+O4qSA+IHRvXC1kZXNpc3RcLWFuXC1veDsKK+O4kSA+IGFcLWNvb2tpbmdcLXN0b3ZlOwor47eNID4gYVwtY2hlbWljYWxcLXRlcm07CivjtpsgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtbIgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtacgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtZEgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtYIgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtKogPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs78gPiByb2xsaW5nXC1iaWxsb3dzOwor47O+ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O4ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O3ID4gZGFya1wtYmx1ZVwtY29sb3I7Civjs7YgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs7UgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs6EgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs5cgPiBiYW5rXC1vZlwtYVwtcml2ZXI7Civjs5YgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjsrwgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjspQgPiB3b29sZW5cLXRleHRpbGVzOwor47KOID4gd29vbGVuXC10ZXh0aWxlczsKK+OyjSA+IHdvb2xlblwtdGV4dGlsZXM7CivjsY4gPiBjYW5ub3RcLWJlXC1rbm93bjsKK+OwrCA+IHNob3J0d2luZGVkbmVzczsKK+OwlyA+IGFcLWtpbmRcLW9mXC1tYXBsZTsKK+OwiCA+IG5pY2VcLWFuZFwtcHJldHR5Owor46+xID4gYW5cLWVubGFyZ2VkXC1iYWc7Civjr6QgPiB0aGVcLWp1anViZVwtdHJlZTsKK+OvlCA+IHRvXC1odWxsXC1oZWF2aWx5Owor466hID4gdG9cLWxpZ2h0XC1hXC1maXJlOwor462kID4gdGhlXC1jb252b2x2dWx1czsKK+OroCA+IGFcLWtpbmRcLW9mXC13YXRlcjsKK+OqqyA+IHdpc2VcLWFuZFwtY2xldmVyOwor76isID4gcHVibGljXC1idWlsZGluZzsKK++ohyA+IHNwb2tlc1wtb2ZcLXdoZWVsOwor46eOID4gZm9ya2VkXC1icmFuY2hlczsKK++njCA+IHNwYXJrbGluZ1wtc3RvbmU7CivjpZ4gPiB0b1wtdGhpbmtcLWRlZXBseTsKK+OlmyA+IHdpdGhcLWV4cGVkaXRpb247Civjop4gPiByb29tc1wtY29ubmVjdGVkOwor46KNID4gYVwtbG9uZ1wtdmVyYWJkYWg7CivjobIgPiB0aWxlc1wtb25cLWFcLXJvb2Y7CivjoYAgPiByYWdnZWRcLWNsb3RoaW5nOwor46CIID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor46CCID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor45+UID4gc3RlZXBcLWFuZFwtbG9mdHk7Civjn48gPiBzdGVlcFwtYW5kXC1sb2Z0eTsKK+OdpSA+IGhhdmVcLWFcLW5pZ2htYXJlOwor452FID4gdG9cLWdpdmVcLXN1Y2tcLXRvOwor45yyID4gdG9cLWhhdmVcLXN1cnBsdXM7Civjm7AgPiB0b1wtbWFycnlcLWFcLXdpZmU7CivjmqYgPiBhXC1jaGFybWluZ1wtZ2lybDsKK+OZvCA+IGFcLW1pbGl0YXJ5XC13YWxsOwor45m4ID4gYVwtY2xvZFwtb2ZcLWVhcnRoOwor45mXID4gYVwtbHVtcFwtb2ZcLWVhcnRoOwor45i6ID4gY3VsdGl2YXRlZFwtbGFuZDsKK+OYtSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+OXvyA+IHRvXC1sYXVnaFwtbG91ZGx5Owor45WyID4gdG9cLWdhZ1wtb3JcLWJyaWJlOwor45WYID4gdG9cLXRha2VcLXBhcnRcLWluOwor45KfID4gd2l0aFwtYVwtY2hhcm1pbmc7CivjkL0gPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivouoUgPiB3YWxrXC1jYXJlZnVsbHk7Civlt7QgPiBncmVhdGx5XC1kZXNpcmU7CivmnJ8gPiBwZXJpb2RcLW9mXC10aW1lOwor5Y+4ID4gdGFrZVwtY2hhcmdlXC1vZjsKK+eUpSA+IHNpc3Rlcicnc1wtY2hpbGQ7CivlsY8gPiBmb2xkaW5nXC1zY3JlZW47Civni5AgPiBzcGVjaWVzXC1vZlwtZm94Owor5rGJID4gY2hpbmVzZVwtcGVvcGxlOwor5aa5ID4geW91bmdlclwtc2lzdGVyOwor5LyBID4gcGxhblwtYVwtcHJvamVjdDsKK+illiA+IG91dGVyXC1nYXJtZW50czsKK+WjgSA+IHBhcnRpdGlvblwtd2FsbDsKK+mfpiA+IHRhbm5lZFwtbGVhdGhlcjsKK+a9sCA+IGZsb29kaW5nXC1yaXZlcjsKK+ePoCA+IHByZWNpb3VzXC1zdG9uZTsKK+mUiyA+IHBvaW50XC1vZlwtc3BlYXI7Civkv5cgPiBzb2NpYWxcLWN1c3RvbXM7CivmqpAgPiBlYXZlc1wtb2ZcLWhvdXNlOwor6aqRID4gcmlkZVwtaG9yc2ViYWNrOwor5Ye9ID4gY29ycmVzcG9uZGVuY2U7CivprY8gPiBraW5nZG9tXC1vZlwtd2VpOwor5p6aID4gc3RhbGtcLW9mXC1zaHJ1YjsKK+S7siA+IG1pZGRsZVwtYnJvdGhlcjsKK+eQsyA+IGJlYXV0aWZ1bFwtamFkZTsKK+WHkSA+IHBpZWNlXC10b2dldGhlcjsKK+mDgSA+IHN3ZWV0XC1zbWVsbGluZzsKK+iKryA+IHBpdGhcLWZyb21cLXJ1c2g7CivnuJ4gPiB3aGl0ZVwtcmF3XC1zaWxrOwor5pesID4gdGVuXC1kYXlcLXBlcmlvZDsKK+e2uiA+IGZpbmVcLXRoaW5cLXNpbGs7CivlpqggPiBpbnRlcmZlcmVcLXdpdGg7CivpqoQgPiBzcGlyaXRlZFwtaG9yc2U7CivnsLcgPiBlYXZlc1wtb2ZcLWhvdXNlOwor5o60ID4gYm94XC1vbmUnJ3NcLWVhcnM7Civll68gPiBmaW5hbFwtcGFydGljbGU7Civlsq0gPiBtb3VudGFpblwtcmlkZ2U7CivmuZggPiBodW5hblwtcHJvdmluY2U7CivpioMgPiBhbmNpZW50XC13ZWFwb247CivmuoMgPiBmbG9vZGluZ1wtcml2ZXI7Civpk64gPiBjbGFuZ2luZ1wtc291bmQ7CivojrkgPiBsdXN0ZXJcLW9mXC1nZW1zOwor5YO7ID4gb3V0XC1vZlwtdGhlXC13YXk7Civnu64gPiBmaW5lXC10aGluXC1zaWxrOwor5ri6ID4gZW5kbGVzc2x5XC1sb25nOwor5L2jID4gY29tbWlzc2lvblwtZmVlOwor5ZKvID4gZmluYWxcLXBhcnRpY2xlOwor5ZGbID4gY2hva2VcLWJ5XC1zbW9rZTsKK+WHsCA+IGZlbWFsZVwtcGhvZW5peDsKK+mXuiA+IHNtYWxsXC1lbnRyYW5jZTsKK+e8gCA+IHBhdGNoXC10b2dldGhlcjsKK+iihCA+IG91dGVyXC1nYXJtZW50czsKK+eSiyA+IGphZGVcLXBsYXl0aGluZzsKK+aLtCA+IGJpbmRcLXdpdGhcLXJvcGU7Civnp6cgPiByaWNlXC1zZWVkbGluZ3M7CivolYMgPiBmb3JlaWduXC10aGluZ3M7CivphIIgPiBodWJlaVwtcHJvdmluY2U7Civmo7EgPiBzcXVhcmVkXC10aW1iZXI7CivmopcgPiBzdGVtXC1vZlwtZmxvd2VyOwor6I+xID4gd2F0ZXJcLWNoZXN0bnV0Owor6ZWRID4gcG91bmRcLXN0ZXJsaW5nOwor5qCpID4gc3BlY2llc1wtb2ZcLW9hazsKK+WUtyA+IGZpbmFsXC1wYXJ0aWNsZTsKK+eSniA+IHVucG9saXNoZWRcLWdlbTsKK+mbryA+IGNsb3VkXC1wYXR0ZXJuczsKK+iutyA+IHNsb3dcLW9mXC1zcGVlY2g7CivnkocgPiBiZWF1dGlmdWxcLWphZGU7Civni7AgPiBmaWVyY2VcLWxvb2tpbmc7Civls6YgPiBtb3VudGFpblwtcmFuZ2U7CivmuYMgPiBzb3VuZFwtb2ZcLXdhdmVzOwor5aijID4geW91bmdlclwtc2lzdGVyOwor6J2XID4ga2luZFwtb2ZcLWxvY3VzdDsKK+ealiA+IGFuaHVpXC1wcm92aW5jZTsKK+mFiyA+IGNoaWVmXC1vZlwtdHJpYmU7Civlo5EgPiBiZWRcLW9mXC10b3JyZW50Owor57OvID4gZ2x1dGlub3VzXC1yaWNlOwor56i3ID4gZ29kXC1vZlwtY2VyZWFsczsKK+WhviA+IHZpbGxhZ2VcLXNjaG9vbDsKK+eLqSA+IHdpbnRlclwtaHVudGluZzsKK+aIjSA+IGRlZmVuZFwtYm9yZGVyczsKK+eSgCA+IGx1c3RyZVwtb2ZcLWdlbXM7CivniY0gPiB3cml0aW5nXC10YWJsZXQ7CivplYwgPiBlbmdyYXZpbmdcLXRvb2w7Civppa8gPiBmYXJld2VsbFwtcGFydHk7CivpuYIgPiBjaGluZXNlXC1vcmlvbGU7Civlm6EgPiBvbmUnJ3NcLWRhdWdodGVyOwor5rqfID4gZHJpenpsaW5nXC1yYWluOwor6ZSPID4ga2luZFwtb2ZcLXJhcGllcjsKK+WxmSA+IHRvXC1lYXNlXC1uYXR1cmU7CivnkKggPiBiZWF1dGlmdWxcLWphZGU7CivnjrMgPiB0b3J0b2lzZVwtc2hlbGw7Civnka0gPiBhXC1raW5kXC1vZlwtamFkZTsKK+adiCA+IGZvcmtcLW9mXC1hXC10cmVlOwor5YyQID4gZmFsbFwtcHJvc3RyYXRlOwor56CjID4gYVwtc3RvbmVcLXJvbGxlcjsKK+mToiA+IHVuaXRcLW9mXC13ZWlnaHQ7CivpqoggPiB0ZWFtXC1vZlwtaG9yc2VzOwor5ZmxID4gbGF1Z2hcLWhlYXJ0aWx5Owor6ZOzID4gYW5jaWVudFwtd2VhcG9uOwor55uxID4gd2lkZVwtb3BlblwtZXllczsKK+iAhCA+IGVsZGVybHlcLXBlcnNvbjsKK+amlCA+IGJldGVsXC1udXRcLXRyZWU7Civor6QgPiB0b1wtZXhwb3N0dWxhdGU7Civona4gPiB2ZW5vbW91c1wtc25ha2U7Civpoo0gPiByaXZlclwtaW5cLWFuaHVpOwor5qWdID4gbWVsaWFcLWphcG9uaWNhOwor6J28ID4gYVwtbW9sZVwtY3JpY2tldDsKK+iNqiA+IGFyb21hdGljXC1ncmFzczsKK+WojCA+IGJyb3RoZXInJ3NcLXdpZmU7CivnvJ8gPiB3aGl0ZVwtcmF3XC1zaWxrOwor5pm3ID4gc2hhZG93c1wtb2ZcLXN1bjsKK+WXtSA+IHVzZWRcLWZvclwtc291bmQ7CivouIUgPiB0b1wtd2Fsa1wtYXJvdW5kOwor5o+GID4gcHJpbWVcLW1pbmlzdGVyOwor54yVID4gbWFjYWN1c1wtbW9ua2V5Owor5Y6dID4gY3V0XC1vclwtZW5ncmF2ZTsKK+iRmiA+IG11bGJlcnJ5XC1mcnVpdDsKK+iAkiA+IGhhbmRsZVwtb2ZcLXBsb3c7CivlmJ4gPiBmaW5hbFwtcGFydGljbGU7CivpjL4gPiBlbmdyYXZpbmdcLXRvb2w7Civnj5kgPiBwcmVjaW91c1wtc3RvbmU7CivojbggPiB3YXRlclwtY2hlc3RudXQ7Civkv4UgPiBvcm5hbWVudGFsXC1jYXA7Civoj70gPiBiZWFuc1wtYW5kXC1wZWFzOwor6Z6vID4gc2FkZGxlXC1ibGFua2V0Owor6byQID4gaW5jZW5zZVwtdHJpcG9kOwor6LCwID4gYWNjdXNlXC1mYWxzZWx5Owor6aqxID4gam9pbnRcLW9mXC1ib25lczsKK+ispiA+IHRcLXNwZWFrXC1zb2Z0bHk7Civno7QgPiBzdGVwc1wtb25cLWxlZGdlOwor5am6ID4gbmFtZVwtb2ZcLWFcLXN0YXI7CivloI0gPiBzaWRlXC1vZlwtYnJpZGdlOwor5qGrID4gaG9yc2VcLWNoZXN0bnV0Owor5ry2ID4gaW5kZWNpcGhlcmFibGU7CivlraUgPiBvbmUnJ3NcLWNoaWxkcmVuOwor5rqxID4gcml2ZXJcLWluXC1oZW5hbjsKK+W6oCA+IHZpbGxhZ2VcLXNjaG9vbDsKK+m7pSA+IHRhdHRvb2luZ1wtZmFjZTsKK+i6kCA+IHRvXC1zdHJpZGVcLW92ZXI7Civoua8gPiBwYXdzXC1vZlwtYW5pbWFsOwor55uNID4gd2hhdFw/XC13aHlcLW5vdFw/Owor5rqGID4gcml2ZXJcLWluXC1odW5hbjsKK+ejsiA+IHRyaWRhY25hXC1naWdhczsKK+aYnSA+IGFcLWR1YWxcLXByb25vdW47Civmn70gPiB0eXBlXC1vZlwtd2lsbG93Owor57ysID4gcGF0dGVybmVkXC1zaWxrOwor6am6ID4gbW91bnRlZFwtZXNjb3J0Owor6ZiKID4gZ2F0ZVwtb2ZcLWhlYXZlbjsKK+iNqSA+IGFcLWtpbmRcLW9mXC13ZWVkOwor6IqOID4gYVwta2luZFwtb2ZcLWhlcmI7Civpi4ggPiBzaWx2ZXJcLXBsYXRpbmc7CivpvoUgPiB0ZWV0aFwtcHJvdHJ1ZGU7CivmmaEgPiBsYXRlXC1hZnRlcm5vb247CivmqqAgPiBzdGFuZFwtZm9yXC1sYW1wOwor6YCtID4gdG9cLWVzY2FwZVwtZnJvbTsKK+m4nSA+IGNoaW5lc2VcLW9yaW9sZTsKK+m4jiA+IHRoZVwtbWFuZ29cLWJpcmQ7CivptpcgPiBhXC1raW5kXC1vZlwtaGF3azsKK+mupyA+IHRoZVwtc2hlYXRcLWZpc2g7CivprJggPiBiZWF1dGlmdWxcLWhhaXI7CivprJcgPiBoZWFkXC1vcm5hbWVudHM7Civpq4YgPiBzaG91bGRlclwtYmxhZGU7CivpqZUgPiBzcGlyaXRlZFwtaG9yc2U7CivpqLYgPiBtb3VudGVkXC1lc2NvcnQ7CivpqI4gPiByaWRlXC1ob3JzZWJhY2s7CivpqIwgPiBhXC1ob3JzZScnc1wtbWFuZTsKK+moiCA+IHRlYW1cLW9mXC1ob3JzZXM7Civpp6IgPiB0ZWFtXC1vZlwtaG9yc2VzOwor6aShID4gcGFzdHJ5XC1maWxsaW5nOwor6aSeID4gZmFyZXdlbGxcLXBhcnR5Owor6aSXID4gZm9vZFwtaW5cLXRyaXBvZDsKK+mfiyA+IHRhbm5lZFwtbGVhdGhlcjsKK+mfiSA+IHNhZGRsZVwtYmxhbmtldDsKK+mcoSA+IGRyaXp6bGluZ1wtcmFpbjsKK+mWtiA+IGdhdGVcLW9mXC1oZWF2ZW47CivplqggPiBzbWFsbFwtZW50cmFuY2U7CivplKogPiBhXC1raW5kXC1vZlwtdG9vbDsKK+mQqyA+IGVuZ3JhdmluZ1wtdG9vbDsKK+mQpyA+IGtpbmRcLW9mXC1yYXBpZXI7Civpj7QgPiB0b1wtcGx1Z1wtYVwtaG9sZTsKK+mPqCA+IGVuZ3JhdmluZ1wtdG9vbDsKK+mOqSA+IG1vdWx0XC1zYW1hcml1bTsKK+mOiiA+IHBvdW5kXC1zdGVybGluZzsKK+mNhiA+IG1kXC1tZW5kZWxldml1bTsKK+mMmiA+IGNsYW5naW5nXC1zb3VuZDsKK+mLqSA+IHBvaW50XC1vZlwtc3dvcmQ7Civpi5IgPiBwb2ludFwtb2ZcLXNwZWFyOwor6YuDID4gbG9ja1wtbGFudGhhbnVtOwor6YqWID4gdW5pdFwtb2ZcLXdlaWdodDsKK+mHryA+IHBvaW50XC1vZlwtc3dvcmQ7CivpgKkgPiB0b1wtcnVuXC1xdWlja2x5Owor6Ly2ID4gbGlnaHRcLWNhcnJpYWdlOwor6LmcID4gd2Fsa1wtY2FyZWZ1bGx5Owor6La5ID4ga2lja1wtd2l0aFwtaG9vZjsKK+ixoyA+IHBpZ1wtb2ZcLTNcLXllYXJzOwor6LGcID4gcGlnXC1vZlwtM1wteWVhcnM7CivosZYgPiBhXC1zaGFja2xlZFwtcGlnOwor6K6VID4gYWNjdXNlXC1mYWxzZWx5Owor6K6FID4ga25vd1wtaW5cLWRldGFpbDsKK+irjSA+IHRvXC1leHBvc3R1bGF0ZTsKK+ipqCA+IGtpbmRcLW9mXC1jaWNhZGE7CivoqKUgPiBzbG93XC1vZlwtc3BlZWNoOwor6KSJID4gc2hvcnRcLWdhcm1lbnRzOwor6KGCID4gdG9cLWJlXC1kZWZlYXRlZDsKK+iggiA+IHBvZGlzbWFcLW1pa2FkbzsKK+ifsyA+IGFcLWtpbmRcLW9mXC1jcmFiOwor6J+tID4gdmVyeVwtc21hbGxcLWJ1ZzsKK+ievyA+IGtpbmRcLW9mXC1jaWNhZGE7CivonrsgPiBhXC1tb2xlXC1jcmlja2V0Owor6J6sID4gZ3J1YnNcLWluXC1mcnVpdDsKK+icjiA+IG1vc3F1aXRvXC1sYXJ2YTsKK+iZgCA+IG1pbmNlZFwtcGlja2xlczsKK+iXjiA+IGFcLWtpbmRcLW9mXC13ZWVkOwor6JazID4gbmFtZVwtb2ZcLWFcLWhlcmI7CivolpggPiBwbGFudGFnb1wtbWFqb3I7CivolIYgPiB3YXRlclwtY2hlc3RudXQ7Civok68gPiBtZWRpY2luYWxcLWhlcmI7Civok48gPiBmcnVpdFwtb2ZcLXBsYW50Owor6JOAID4gYXJvbWF0aWNcLWdyYXNzOwor6JGlID4gcnVidXNcLXBhbG1hdHVzOwor6I+OID4gYmVhdXRpZnVsXC1qYWRlOwor6IyeID4gZnJhZ3JhbnRcLXBsYW50Owor6IuBID4gbWVkaWNpbmFsXC1oZXJiOwor6IqIID4gYmxlYXRcLW9mXC1zaGVlcDsKK+iEpiA+IHVzZWRcLWluXC0nJ2xlZGUnJzsKK+e+iyA+IGJsZWF0XC1vZlwtc2hlZXA7CivnuoggPiBwYXR0ZXJuZWRcLXNpbGs7CivntrQgPiBwYXRjaFwtdG9nZXRoZXI7CivntZwgPiBhXC1tYXJraW5nXC1saW5lOwor57S+ID4gdHVybnNcLW9yXC10d2lzdDsKK+ezuiA+IHRvXC1jb2xsYWJvcmF0ZTsKK+exqyA+IGJhbWJvb1wtdXRlbnNpbDsKK+etrCA+IHJlZWRcLW9mXC1hXC1sb29tOwor56itID4gc3RhbGtcLW9mXC1ncmFpbjsKK+eojCA+IGdsdXRpbm91c1wtcmljZTsKK+eoiCA+IHN0YWxrXC1vZlwtZ3JhaW47CivnoKIgPiBwaWxlXC1vZlwtc3RvbmVzOwor55+JID4gYW5cLWFuZ3J5XC1nbGFyZTsKK+edsSA+IHRvXC1nYXplXC1zbG93bHk7Civnna8gPiB0b1wtYmVcLWFnb25pemVkOwor55yjID4gcHJvbWluZW50XC1leWVzOwor55K4ID4gamFkZScnc1wtc3RyZWFrczsKK+eStSA+IGJlYXV0aWZ1bFwtamFkZTsKK+eSpSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor55KiID4gcHJlY2lvdXNcLXN0b25lOwor55KYID4gbHVzdGVyXC1vZlwtamFkZTsKK+eShiA+IGJlYXV0aWZ1bFwtamFkZTsKK+eRqSA+IGx1c3RyZVwtb2ZcLWdlbXM7CivnkaAgPiBwcmVjaW91c1wtc3RvbmU7CivnkYcgPiB0b3J0b2lzZVwtc2hlbGw7CivnkIEgPiBiZWF1dGlmdWxcLWphZGU7Civnj7ogPiBiZWF1dGlmdWxcLWphZGU7Civnj6YgPiBhXC1raW5kXC1vZlwtamFkZTsKK+ePoiA+IHByZWNpb3VzXC1zdG9uZTsKK+eOpSA+IG15c3RlcmlvdXNcLWdlbTsKK+eNvCA+IG1hY2FjdXNcLW1vbmtleTsKK+eMmSA+IGZpZXJjZVwtbG9va2luZzsKK+eLqCA+IGhhcGFsZVwtamFjY2h1czsKK+eKqCA+IHBhbnRpbmdcLW9mXC1jb3c7CivniZggPiB3cml0aW5nXC10YWJsZXQ7Civnh4kgPiBoZWF0XC13aXRoXC1maXJlOwor54eAID4gdG9cLW1ha2VcLWFcLWZpcmU7CivnhokgPiBcKHllbGxvd1wtY29sb3JcKTsKK+a9lSA+IHJpdmVyXC1pblwtaGVuYW47CivmvYEgPiByaXZlclwtaW5cLWFuaHVpOwor5rqbID4gdG9cLWZvcm1cLWhvbGxvdzsKK+a5sSA+IHNvdW5kXC1vZlwtd2F0ZXI7CivmuYogPiBwaWVjZVwtdG9nZXRoZXI7CivmuKIgPiBwbGVhc2FudFwtc291bmQ7CivmtqwgPiB3YXRlcnlcLWV4cGFuc2U7CivmtL8gPiBzdGFnbmFudFwtd2F0ZXI7Civms4MgPiByaXZlclwtaW5cLWhlbmFuOwor5rOCID4gY2xlYXJcLWFuZFwtZGVlcDsKK+aytyA+IHRvXC1yZW1vdmVcLWV2aWw7Civmrq0gPiBhXC1zdGlmZlwtY29ycHNlOwor5qqWID4gd2lsZFwtcGVhclwtdHJlZTsKK+aqiSA+IHR5cGVcLW9mXC13aWxsb3c7Civmqb8gPiBxdWVyY3VzXC1nbGF1Y2E7Civmpr4gPiBwaWVjZXNcLW9mXC13b29kOwor5qagID4gY2hpbmVzZVwtcXVpbmNlOwor5qaWID4gcGFwZXJcLW11bGJlcnJ5Owor5qSqID4gbWFjaGlsdXNcLW5hbm11Owor5qOQID4gc3BlY2llc1wtb2ZcLXlldzsKK+aiiiA+IHNxdWVlemVcLW91dFwtb2Y7Civmn74gPiBzdHJhaWdodFwtZ3JhaW47Civmn58gPiBtYWNoaWx1c1wtbmFubXU7Civmn4MgPiBldXJ5YVwtamFwb25pY2E7Civmm48gPiBvbmNlXC11cG9uXC10aW1lOwor5pmlID4gYW5odWlcLXByb3ZpbmNlOwor5pmiID4gbGlnaHRcLW9mXC1zdGFyczsKK+aYsCA+IHZhclwtb2ZcLScndG9cLWJlJyc7CivmlIIgPiB0b1wtYmVhdFwtYVwtZHJ1bTsKK+aRtCA+IHRvXC1zdHJldGNoXC1vdXQ7CivmkZEgPiBib3hcLW9uZScnc1wtZWFyczsKK+W5sSA+IG9mZmljaWFsXC1kcmVzczsKK+W3nyA+IGFcLXdhdGVyeVwtd2FzdGU7Civlt5IgPiBtb3VudGFpblwtcmFuZ2U7CivltrogPiBtb3VudGFpblwtcmlkZ2U7CivltbQgPiBtb3VudGFpblwtcmlkZ2U7CivlsrogPiBtb3VudGFpblwtcmlkZ2U7CivlsZsgPiBmb2xkaW5nXC1zY3JlZW47CivlopogPiBtb3VudGFpblwtcmFuZ2U7CivloZUgPiBhXC1ndXN0XC1vZlwtd2luZDsKK+WfhyA+IG5hbWVcLW9mXC1icmlkZ2U7CivlnIUgPiBjb3JyZXNwb25kZW5jZTsKK+WZuSA+IHNvdW5kXC1vZlwtYmVsbHM7CivlmJMgPiBndXJnbGluZ1wtc291bmQ7Civll4YgPiBjaG9rZVwtYnlcLXNtb2tlOwor5ZaSID4gYVwtZHVhbFwtcHJvbm91bjsKK+WVjCA+IGFuaW1hbFwtZGlzZWFzZTsKK+WOgyA+IHRvXC1sb29rXC11cHdhcmQ7Civlja0gPiBoaWdoXC5cLXRvXC1yYWlzZTsKK+WNgiA+IHRvXC1mbHlcLXJhcGlkbHk7Civlh74gPiBjb3JyZXNwb25kZW5jZTsKK+S8lSA+IGNvbW1vblwtbGFib3JlcjsKK+S6hyA+IGt3dWt5ZWxcLWhhbW1lcjsKK+S2lCA+IHByb21pbmVudFwtZ3VtczsKK+S2kCA+IHRvXC10YWtlXC1icmVhdGg7CivktoAgPiBzb3VuZFwtb2ZcLWRydW1zOwor5LW+ID4gc291bmRcLW9mXC1kcnVtczsKK+S1vSA+IHNvdW5kXC1vZlwtZHJ1bXM7CivktbYgPiBhXC1raW5kXC1vZlwtZnJvZzsKK+S1jCA+IHJlZGRpc2hcLXllbGxvdzsKK+S0tCA+IGFcLWtpbmRcLW9mXC1jYWtlOwor5LSvID4gYVwta2luZFwtb2ZcLWNha2U7CivktKkgPiBhXC1raW5kXC1vZlwtZGVlcjsKK+S0oiA+IGFcLWtpbmRcLW9mXC1kZWVyOwor5LSYID4gYVwta2luZFwtb2ZcLWJpcmQ7CivktJAgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+S0hiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LSEID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks78gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzuCA+IHRoZVwtd2lsZFwtZ29vc2U7Civks7QgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzryA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOsID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks6sgPiBhXC1zbWFsbFwtcGlnZW9uOwor5LOqID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks6kgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzkiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LK9ID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksrwgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyuCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LKuID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksqogPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyoiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKgID4gYVwta2luZFwtb2ZcLWZpc2g7Civksp8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SymSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKYID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspcgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SykyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKQID4gYVwta2luZFwtb2ZcLWZpc2g7Civkso8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SyiyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKJID4gYVwta2luZFwtb2ZcLWZpc2g7CivksoIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SygCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG/ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbwgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxuyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG1ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxsCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGvID4gYVwta2luZFwtb2ZcLWZpc2g7Civksa4gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxrCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGrID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaggPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxpSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGkID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxoCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGeID4gYVwta2luZFwtb2ZcLWZpc2g7CivksZsgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxmiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGTID4gYVwta2luZFwtb2ZcLWZpc2g7CivksL4gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SwuSA+IHRoZVwtY3V0dGxlZmlzaDsKK+SwtCA+IGFcLXdhZnRpbmdcLWZpc2g7CivksLIgPiB0aGVcLXNoZWF0XC1maXNoOwor5LChID4gYVwtZmllcmNlXC1naG9zdDsKK+SvmyA+IHRoZVwta25lZVwtYm9uZXM7CivkrrkgPiBhblwtYW5ncnlcLWhvcnNlOwor5K6uID4gYVwta2luZFwtb2ZcLW11bGU7CivkrbsgPiBhXC1zd2lmdHlcLWhvcnNlOwor5K2zID4gYVwta2luZFwtb2ZcLWhlcmI7CivkrbIgPiBzd2VldFwtc21lbGxpbmc7Civkra0gPiB0aGVcLWVsZGVzdFwtc29uOwor5K2pID4gdG9cLWZlZWRcLWFcLWJhYnk7CivkracgPiB0b1wtZmVlZFwtYVwtYmFieTsKK+StgSA+IHN0aW5raW5nXC1zbWVsbDsKK+SsuiA+IHNhbWVcLWFzXC11XCs0YjUwOwor5KyYID4gdGhlXC13aW5kXC1ibG93czsKK+SskiA+IHRvXC1ibG93XC1jaGlsbHk7CivkrIwgPiB0aGVcLXdpbmRcLWJsb3dzOwor5KurID4gaHVtYW5cLXNrZWxldG9uOwor5Kq8ID4gdGhlXC1jaGVla1wtYm9uZTsKK+SqiCA+IGFcLWxlYXRoZXJcLWJlbHQ7CivkqZAgPiB0aWVcLWl0XC10aWdodGx5Owor5KirID4gZHJpenpsaW5nXC1yYWluOwor5KilID4gYVwtcG91cmluZ1wtcmFpbjsKK+SonCA+IGFcLXBvdXJpbmdcLXJhaW47Civkp74gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SntyA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5KenID4gaGlnaFwtbW91bnRhaW5zOwor5Ka6ID4gbmFtZVwtb2ZcLWFcLWhpbGw7CivkpqQgPiBzZWVkXC1vZlwtZ3JhaW5zOwor5KaRID4gd2l0aG91dFwtYVwtZG9vcjsKK+SmjyA+IHdpbmdcLW9mXC1hXC1kb29yOwor5KWiID4gc291bmRcLW9mXC1kcnVtczsKK+SkliA+IGFcLWtpbmRcLW9mXC13aW5lOwor5KOlID4gYVwta2luZFwtb2ZcLXdpbmU7Civko44gPiBuYW1lXC1vZlwtY291bnR5Owor5KKoID4gdG9cLXdhbGtcLXNsb3dseTsKK+ShviA+IGhpZ2hcLWNhcnRsb2FkczsKK+ShsiA+IHJpbVwtb2ZcLWFcLXdoZWVsOwor5KGXID4gcmltXC1vZlwtYVwtd2hlZWw7CivkoYkgPiBhXC1raW5kXC1vZlwtY2FydDsKK+SfkyA+IHRvXC13YWxrXC1zbG93bHk7CivknbggPiBhXC1raW5kXC1vZlwtdG9vbDsKK+ScvSA+IGFcLWtpbmRcLW9mXC1iZWFuOwor5Jy8ID4gYVwta2luZFwtb2ZcLWJlYW47CivknJwgPiB3b3Jkc1wtb2ZcLWFuZ2VyOwor5JugID4gdW5hYmxlXC10b1wtdGFsazsKK+SaliA+IG1vdW50YWluXC1kZWl0eTsKK+SahCA+IHRvXC1tYWtlXC1mdW5cLW9mOwor5JmzID4gc3BpdGluZ1wtZmxhbWVzOwor5JmmID4gdXBwZXJcLWdhcm1lbnRzOwor5JiiID4gb2xkXC1hbmRcLXNoYWJieTsKK+SYgyA+IGFcLWtpbmRcLW9mXC1jcmFiOwor5Je3ID4gYVwta2luZFwtb2ZcLXdhc3A7Civkl6ogPiBhXC1raW5kXC1vZlwtd29ybTsKK+SXnCA+IGFcLW1vbGVcLWNyaWNrZXQ7Civkl5ogPiBlZ2dzXC1vZlwtbWFudGlzOwor5JeSID4gYVwta2luZFwtb2ZcLWNsYW07Civkl4AgPiBhXC1raW5kXC1vZlwtY2xhbTsKK+SWsCA+IGFcLWtpbmRcLW9mXC1nbmF0Owor5JaGID4gbWVkaWNpbmFsXC1oZXJiOwor5JWaID4gYVwtc3RyYXdcLWJhc2tldDsKK+SUlSA+IGNoaWNrZW5cLWJyZWFzdDsKK+SUiyA+IGFcLWtpbmRcLW9mXC10cmVlOwor5JSGID4gYVwta2luZFwtb2ZcLWJlYW47CivklIIgPiB2ZWdldGFibGVcLXNvdXA7Civkk6EgPiBhXC1tZWRpY2FsXC1oZXJiOwor5JK7ID4gYVwtbWVkaWNhbFwtaGVyYjsKK+SSsiA+IGFcLW1lZGljYWxcLWhlcmI7CivkkpMgPiB0b1wtZG9cLXZpb2xlbmNlOwor5JKHID4gbmFtZVwtb2ZcLWFcLXNoaXA7CivkkoYgPiBuYW1lXC1vZlwtYVwtc2hpcDsKK+SShSA+IGJlYXV0aWZ1bFwtZXllczsKK+SRtiA+IHNwcmlnaHRseVwtYm9hdDsKK+SRqyA+IHRvb2xzXC1mb3JcLWJvYXQ7CivkkaMgPiBhXC1zYWlsaW5nXC1ib2F0Owor5JGcID4gdG9cLWVhdFwtaGVhdmlseTsKK+SQlSA+IG9pbFwtYW5kXC1ncmVhc2U7CivkkI0gPiBleGNlbGxlbnRcLWZvb2Q7CivkjaEgPiBzbWFsbFwtZmlzaFwtbmV0Owor5I2RID4gYVwtbmV0XC1vclwtc25hcmU7CivkjZAgPiBhXC1uZXRcLW9yXC1zbmFyZTsKK+SNjSA+IHVuYnVybnRcLWJyaWNrczsKK+SMtSA+IGxhcGVsXC1hbmRcLWJlbHQ7CivkjLAgPiBjb25uZWN0ZWRcLXNpbGs7CivkjKUgPiB0b1wtc2V3XC1jbG90aGVzOwor5IyhID4gdG9cLXdpbmRcLWFyb3VuZDsKK+SLvSA+IGhlbXBlblwtc2FuZGFsczsKK+SLryA+IGNydWNpYWxcLXBvaW50czsKK+SLoiA+IHRvXC10d2lzdFwtcm9wZXM7Civki5wgPiBjcnVjaWFsXC1wb2ludHM7CivkirwgPiBtZWFzdXJpbmdcLXVuaXQ7CivkiqggPiBzdG9yaW5nXC1ncmFpbnM7CivkiLcgPiBhXC1iYW1ib29cLWZlbmNlOwor5IiaID4gYVwtYmFtYm9vXC1zaG9vdDsKK+SHqyA+IGJhbWJvb1wtc3BsaW50czsKK+SHhSA+IHRvXC1zdGFuZFwtc3RpbGw7CivkhaUgPiByaXBlbmluZ1wtY3JvcHM7CivkhZYgPiBzd2VldFwtc21lbGxpbmc7Civkg7kgPiBqYWRlXC1hbmRcLXN0b25lOwor5IO4ID4gZWxlY3RyaWNcLWxpZ2h0Owor5IOxID4gZWxlY3RyaWNcLWxpZ2h0Owor5IOhID4gYVwtc21hbGxcLXBlYmJsZTsKK+SDjyA+IGFcLWtpbmRcLW9mXC1yb2NrOwor5IOMID4gcm9ja3lcLW1vdW50YWluOwor5IKbID4gYVwta2luZFwtb2ZcLXJvY2s7CivkgowgPiBhXC1zaG9ydFwtd2VhcG9uOwor5IGkID4gbW9pc3RlbmVkXC1leWVzOwor5IGPID4gZmFyc2lnaHRlZG5lc3M7CivkgLogPiBzcXVpbnRpbmdcLWV5ZXM7CivkgKUgPiBiZWF1dGlmdWxcLWV5ZXM7CivjvaYgPiByZWNsYWltZWRcLWxhbmQ7CivjvaUgPiBmZXJ0aWxlXC1maWVsZHM7CivjvYsgPiBhXC1raW5kXC1vZlwtdGlsZTsKK+O9hCA+IGFuXC1lYXJ0aGVuXC1qYXI7Civju78gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7uiA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47u1ID4gYVwta2luZFwtb2ZcLWphZGU7Civju68gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7rCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47unID4gYVwta2luZFwtb2ZcLWphZGU7Civju58gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7nSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uWID4gYVwta2luZFwtb2ZcLWphZGU7Civju5UgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7lCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uRID4gYVwta2luZFwtb2ZcLWphZGU7Civju4sgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7giA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47q5ID4gYVwta2luZFwtb2ZcLWphZGU7CivjurggPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6tyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qxID4gYVwta2luZFwtb2ZcLWphZGU7CivjurAgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6rSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qrID4gYVwta2luZFwtb2ZcLWphZGU7CivjuKsgPiBjYXN0cmF0ZWRcLWJ1bGw7CivjuKQgPiBicm9rZW5cLWxlYXRoZXI7CivjuIogPiBmaWVyY2VcLW9mXC1maXJlOwor47agID4gd2F0ZXJcLWN1cnJlbnRzOwor47aeID4gd2F0ZXJcLWN1cnJlbnRzOwor47WlID4gd2F0ZXJcLWN1cnJlbnRzOwor47WYID4gZ3JlYXRcLWN1cnJlbnRzOwor47S4ID4gc3dpZnRcLWN1cnJlbnRzOwor47SZID4gd2F0ZXJcLWRyaXBwaW5nOwor47ODID4gdG9cLXRlbXBlclwtaXJvbjsKK+OyjyA+IGZseWluZ1wtZmVhdGhlcjsKK+OxpyA+IHN0aW5raW5nXC1zbWVsbDsKK+OxjyA+IHRoZVwtcmlnaHRcLXNpZGU7CivjsJogPiBhXC1iYW1ib29cLWZlbmNlOwor47CYID4gYVwta2luZFwtb2ZcLXRyZWU7CivjsIogPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OwgiA+IGFcLWtpbmRcLW9mXC10cmVlOwor47CAID4gYVwta2luZFwtb2ZcLXRyZWU7Civjr54gPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OvmiA+IGFcLWtpbmRcLW9mXC10cmVlOwor46+XID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrosgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OuhSA+IGFcLWtpbmRcLW9mXC10cmVlOwor4627ID4gdGhlXC1jcmFiXC1hcHBsZTsKK+OtrSA+IGFcLWtpbmRcLW9mXC10cmVlOwor462cID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrZogPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtlCA+IGFcLWtpbmRcLW9mXC10cmVlOwor462RID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrY8gPiBhXC1raW5kXC1vZlwtd29vZDsKK+OthyA+IGFcLWtpbmRcLW9mXC10cmVlOwor462EID4gYVwta2luZ1wtb2ZcLXRyZWU7CivjrYEgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OsiyA+IG5hbWVcLW9mXC1hXC1zdGFyOwor46uPID4gYVwta2luZFwtb2ZcLWZsYWc7Civjq4IgPiB0b1wtY2hvcFwtb3JcLWN1dDsKK+OqhyA+IHRvXC1kaXNzZW1pbmF0ZTsKK+OohyA+IHRvXC1zd2VlcFwtY2xlYW47Civvp68gPiBsdXN0ZXJcLW9mXC1qYWRlOwor76auID4gbHVzdHJlXC1vZlwtZ2VtczsKK++mqyA+IG1vdW50YWluXC1yaWRnZTsKK+OmjSA+IHRvXC1iZVwtc3RhcnRsZWQ7CivjpbogPiB0b1wtYmxvd1wtYVwtZmlyZTsKK++lmCA+IHdhdGVyXC1jaGVzdG51dDsKK+OliSA+IGFcLWxpdHRsZVwtYW5ncnk7CivjpYcgPiB0b1wtYmVcLXBlcnZlcnNlOwor46S+ID4gbm90XC1kb2luZ1wtd2VsbDsKK+OkliA+IHRvXC1oYXZlXC13aXNkb207Civjo6YgPiBhXC13aW5kaW5nXC1wYXRoOwor46KfID4gdG9cLXdhbGtcLXNsb3dseTsKK+OhnCA+IHJhZ2dlZFwtY2xvdGhlczsKK+OgqCA+IG1pc3R5XC1tb3VudGFpbjsKK+OgoSA+IGhpZ2hcLWFuZFwtbG9mdHk7CivjoJogPiBoaWdoXC1hbmRcLWxvZnR5Owor45+/ID4gaGlnaFwtYW5kXC1zdGVlcDsKK+OfmyA+IGhpZ2hcLWFuZFwtc3RlZXA7CivjnqkgPiBtb3VudGFpblwtdmFwb3I7CivjnpwgPiBoZW1wZW5cLXNhbmRhbHM7CivjnpcgPiB0aGVcLW1hbGVcLW9yZ2FuOwor456MID4gdG9cLWJlXC1wcmVnbmFudDsKK+OeiiA+IHVuYWJsZVwtdG9cLXdhbGs7CivjnbAgPiB1bmFibGVcLXRvXC1tZWV0Owor452bID4gYWhhbHRpbmdcLXBsYWNlOwor45ykID4gZm9vbGluZ1wtYXJvdW5kOwor45yRID4gYW5cLW9sZGVyXC13b21hbjsKK+ObqSA+IHNpc3RlcnNcLWluXC1sYXc7Civjm4IgPiB3ZWFrXC1hbmRcLXNtYWxsOwor45q6ID4gdG9cLWJlXC1wcmVnbmFudDsKK+OasiA+IHNtYWxsXC1hbmRcLXdlYWs7CivjmoMgPiB0b1wtdGFrZVwtYVwtaGludDsKK+OZtyA+IGxvd1wtbHlpbmdcLWFyZWE7Civjl4ogPiBwdWJsaWNcLW9waW5pb247Civjlr4gPiB0b1wtYmVhdFwtYVwtZHJ1bTsKK+OWoiA+IHRvXC1yZWplY3RcLWZvb2Q7CivjlawgPiBwdWJsaWNcLW9waW5pb247CivjlaQgPiBhXC1wcm91ZFwtdGVtcGVyOwor45SZID4gZ3JlYXRcLXN0cmVuZ3RoOwor45SBID4gYVwta2luZFwtb2ZcLXRvb2w7CivjkpsgPiB0b1wtc3RhbmRcLWFsb25lOwor45KAID4gZG9cLW5vdFwtZmVhclwtdG87Civnu48gPiBjbGFzc2ljXC13b3JrczsKK+W8nyA+IHlvdW5nXC1icm90aGVyOwor5bu7ID4gY2lyY2xlXC1hcm91bmQ7CivlhbMgPiBmcm9udGllclwtcGFzczsKK+W4nSA+IHN1cHJlbWVcLXJ1bGVyOwor55WqID4gdG9cLXRha2VcLXR1cm5zOwor55WlID4gYXBwcm94aW1hdGVseTsKK+WFsSA+IHRvZ2V0aGVyXC13aXRoOwor5LmJID4gcmlnaHRcLWNvbmR1Y3Q7Civlq4IgPiBzaXN0ZXJcLWluXC1sYXc7Civlk6UgPiBlbGRlclwtYnJvdGhlcjsKK+WppiA+IG1hcnJpZWRcLXdvbWVuOwor6KijID4gdGFrZVwtbGVhdmVcLW9mOwor5pePID4gYVwtZmFtaWx5XC1jbGFuOwor5aWqID4gdGFrZVwtYnlcLWZvcmNlOwor5YWEID4gZWxkZXJcLWJyb3RoZXI7CivnrJQgPiB3cml0aW5nXC1icnVzaDsKK+iityA+IGxpbmVkXC1nYXJtZW50Owor54CsID4gc3dpZnRcLWN1cnJlbnQ7CivlpocgPiBtYXJyaWVkXC13b21lbjsKK+S8ryA+IG9sZGVyXC1icm90aGVyOwor5ryyID4gcmlzZVwtaW5cLXByaWNlOwor56S8ID4gc29jaWFsXC1jdXN0b207CivlmKkgPiBydXNoaW5nXC1zb3VuZDsKK+WVoyA+IGhvbGRcLWluXC1tb3V0aDsKK+aziiA+IGFuY2hvclwtdmVzc2VsOwor5rK/ID4gZm9sbG93XC1jb3Vyc2U7CivlkoQgPiBub2lzZVwtb2ZcLXJhZ2U7CivlkKsgPiBob2xkXC1pblwtbW91dGg7CivlpLogPiB0YWtlXC1ieVwtZm9yY2U7Civoj4ogPiBjaHJ5c2FudGhlbXVtOwor5bKzID4gbW91bnRhaW5cLXBlYWs7CivljLkgPiBib2x0XC1vZlwtY2xvdGg7CivpoocgPiBsZWFuXC1vbmVcLXNpZGU7CivliqsgPiB0YWtlXC1ieVwtZm9yY2U7CivmmaggPiBlYXJseVwtbW9ybmluZzsKK+aSniA+IGtub2NrXC1hZ2FpbnN0Owor5oSIID4gbW9yZVwtYW5kXC1tb3JlOwor5qeHID4gdGlwXC1vZlwtYVwtdHJlZTsKK+mnhSA+IHJlbGF5XC1zdGF0aW9uOwor6aWFID4gc3RlYW1lZFwtYnJlYWQ7CivngrggPiB0b1wtZnJ5XC1pblwtb2lsOwor6ISIID4gYmxvb2RcLXZlc3NlbHM7Civnu6ogPiBlbmRcLW9mXC10aHJlYWQ7Civpo7wgPiByYWlzZVwtYW5pbWFsczsKK+aikyA+IGNhdGFscGFcLW92YXRhOwor6IKMID4gbXVzY2xlXC10aXNzdWU7CivkvakgPiBiZWx0XC1vcm5hbWVudDsKK+e9siA+IHB1YmxpY1wtb2ZmaWNlOwor5pCtID4gam9pblwtdG9nZXRoZXI7CivpoJcgPiBsZWFuXC1vbmVcLXNpZGU7CivmoJcgPiBjaGVzdG51dFwtdHJlZTsKK+ahkSA+IG11bGJlcnJ5XC10cmVlOwor6ISJID4gYmxvb2RcLXZlc3NlbHM7CivnvqkgPiByaWdodFwtY29uZHVjdDsKK+mehCA+IHRvXC13b3JrXC1oaWRlczsKK+adkyA+IGhhbmRsZVwtb2ZcLWN1cDsKK+S9gyA+IHRlbmFudFwtZmFybWVyOwor5piGID4gZWxkZXJcLWJyb3RoZXI7CivotKEgPiBvZmZlclwtdHJpYnV0ZTsKK+aLvCA+IGpvaW5cLXRvZ2V0aGVyOwor5puHID4gYmVjb21lXC1jbG91ZHk7CivkupkgPiBleHRlbmRcLWFjcm9zczsKK+S6mCA+IGV4dGVuZFwtYWNyb3NzOwor6K+eID4gYmVhclwtY2hpbGRyZW47CivmmbQgPiBjbGVhclwtd2VhdGhlcjsKK+a2qCA+IHJpc2VcLWluXC1wcmljZTsKK+mXnCA+IGZyb250aWVyXC1wYXNzOwor57eSID4gZW5kXC1vZlwtdGhyZWFkOwor6ZaiID4gZnJvbnRpZXJcLXBhc3M7CivloZEgPiBtb2RlbFwtaW5cLWNsYXk7CivntpMgPiBjbGFzc2ljXC13b3JrczsKK+e1jCA+IGNsYXNzaWNcLXdvcmtzOwor5rWmID4gYmFua1wtb2ZcLXJpdmVyOwor57+wID4gd3JpdGluZ1wtYnJ1c2g7CivnsZQgPiBiYW1ib29cLWJhc2tldDsKK+i+sCA+IGVhcmx5XC1tb3JuaW5nOwor5oWOID4gYWN0XC13aXRoXC1jYXJlOwor6I6JID4gd2hpdGVcLWphc21pbmU7CivmjZcgPiBtYWtlXC1wcm9ncmVzczsKK+ethiA+IHdyaXRpbmdcLWJydXNoOwor5ZOXID4gcnVzaGluZ1wtc291bmQ7CivloYwgPiBmYWxsXC1pblwtcnVpbnM7Civnq5YgPiBwZXJwZW5kaWN1bGFyOwor56auID4gc29jaWFsXC1jdXN0b207CivpmZUgPiBtb3VudGFpblwtcGFzczsKK+aDmiA+IGFic2VudFwtbWluZGVkOwor6K+AID4gdGFrZVwtbGVhdmVcLW9mOwor5reAID4gc2hhbGxvd1wtd2F0ZXI7Civmt5ggPiB3YXNoXC1pblwtc2lldmU7CivnkbAgPiBleHRyYW9yZGluYXJ5Owor5Z6rID4gYWR2YW5jZVwtbW9uZXk7CivngbYgPiBraXRjaGVuXC1yYW5nZTsKK+avkyA+IGdpdmVcLWJpcnRoXC10bzsKK+WSpyA+IHN0cmV0Y2hcLW1vdXRoOwor5aWOID4gc3RyaWRlXC1vZlwtbWFuOwor5rS9ID4gdG9cLWJsZW5kXC13aXRoOwor55G2ID4gcHJlY2lvdXNcLWphZGU7CivpkrAgPiByYXJlXC10cmVhc3VyZTsKK+eRmyA+IGx1c3Rlclwtb2ZcLWdlbTsKK+mmkiA+IHN0ZWFtZWRcLWJyZWFkOwor6aWyID4gcmFpc2VcLWFuaW1hbHM7CivmrokgPiBkaWVcLWZvclwtY2F1c2U7CivooZkgPiBwdWJsaWNcLW9mZmljZTsKK+WUrCA+IHRvXC1pbnRpbWlkYXRlOwor55iqID4gc2hyaXZlbGxlZFwtdXA7CivllIYgPiBtYWtlXC1taXNjaGllZjsKK+WymiA+IG1vdW50YWluXC1taXN0Owor5qGmID4gdHlwZVwtb2ZcLWJpcmNoOwor5rafID4gZmxvd2luZ1wtd2F0ZXI7CivllJQgPiBob2xkXC1pblwtbW91dGg7Civpo5UgPiBzb3VuZFwtb2ZcLXdpbmQ7CivlnbcgPiBjbG9kXC1vZlwtZWFydGg7CivpkasgPiB1c2VkXC1pblwtbmFtZXM7CivnrIsgPiBiYW1ib29cLXNob290czsKK+iNgyA+IGFyb21hdGljXC1oZXJiOwor56+TID4gYmFtYm9vXC1iYXNrZXQ7CivppoQgPiBkdW1wbGluZ1wtc291cDsKK+epuSA+IGhpZ2hcLWFuZFwtdmFzdDsKK+W8iCA+IGNoaW5lc2VcLWNoZXNzOwor6IG/ID4gd3JpdGluZ1wtYnJ1c2g7Civpqa4gPiBjYXJyeVwtb25cLWJhY2s7CivnrqkgPiBiYW1ib29cLWJhc2tldDsKK+iKpSA+IG11c3RhcmRcLXBsYW50Owor6am/ID4gcmVsYXlcLXN0YXRpb247CivngpwgPiBicmlsbGlhbnRcLXJlZDsKK+WynCA+IHJvY2tcLW1vdW50YWluOwor57qrID4gdGhyZWFkXC1uZWVkbGU7CivmoYAgPiBjaGlja2VuXC1yb29zdDsKK+WZmSA+IGhvbGRcLWluXC1tb3V0aDsKK+evnSA+IGJhbWJvb1wtYmFza2V0Owor5ouuID4gbGFib3JpbmdcLWhhcmQ7CivojIkgPiB3aGl0ZVwtamFzbWluZTsKK+e6pSA+IGluZmVyaW9yXC1zaWxrOwor5piZID4gYmVjb21lXC1jbG91ZHk7Civlv6QgPiBpbnN1Ym9yZGluYXRlOwor6bi+ID4gZmFidWxvdXNcLWJpcmQ7CivlmIEgPiB0b1wtYmVcLWdyaWV2ZWQ7Civovo4gPiBhXC1zdXBwbHlcLWNhcnQ7CivoiqsgPiBkYXBobmVcLWdlbmt3YTsKK+S8pyA+IHZ1bGdhclwtcGVyc29uOwor5rOgID4gbmljZVwtYW5kXC1jb29sOwor57i7ID4gaGFsdGVyXC1mb3JcLW94Owor6Li9ID4gdG9cLXdhbGtcLWFsb25lOwor6LWtID4gcmVkZGlzaFwtYnJvd247CivpooAgPiB0YWxsXC1hbmRcLXNsaW07Civmn5ggPiBhXC10aG9ybnlcLXRyZWU7CivosJQgPiBob25lc3RcLXNwZWVjaDsKK+mqkyA+IHBpZWJhbGRcLWhvcnNlOwor5bKrID4gbW91bnRhaW5cLXBlYWs7CivltKcgPiBoaWdoXC1tb3VudGFpbjsKK+mFmiA+IGNhcmJvbGljXC1hY2lkOwor5aSkID4gZGlzdGFudFwtcGxhY2U7CivmmowgPiBpblwtb3Bwb3NpdGlvbjsKK+a/kSA+IHN3aWZ0XC1jdXJyZW50Owor5oCNID4gdG9cLWJlXC1hc2hhbWVkOwor6LS9ID4gZ2lmdFwtc3VwZXJpb3I7Civmr5YgPiBndWFyZFwtYWdhaW5zdDsKK+i/kyA+IHRvXC1nb1wtdG9cLW1lZXQ7Civmr7UgPiBsb25nXC1mZWF0aGVyczsKK+edmiA+IGNvcm5lclwtb2ZcLWV5ZTsKK+avvSA+IGFcLXNodXR0bGVjb2NrOwor5YOzID4gbWlub3JpdHlcLW5hbWU7CivpqpAgPiBwaWViYWxkXC1ob3JzZTsKK+i+jyA+IGh1YnNcLW9mXC13aGVlbDsKK+aXhiA+IGZsYWdcLW9ybmFtZW50Owor6I2HID4gYVwtd2F0ZXJcLXBsYW50Owor5Y2uID4gbWVhc3VyaW5nXC1jdXA7Civpq6EgPiB0b1wtc2hlYXJcLXRyZWU7Civps5wgPiBtYW5kYXJpblwtZmlzaDsKK+m8jSA+IGxhcmdlXC1yZXB0aWxlOwor56yrID4gcGxhbmtzXC1vZlwtYmVkOwor57yhID4gYVwtYnJpZGFsXC12ZWlsOwor57uoID4gY29hcnNlXC1wb25nZWU7CivoirAgPiB3YXRlclwtY2FsdHJvcDsKK+mtgyA+IGRyb3VnaHRcLWRlbW9uOwor6IizID4gc3Rlcm5cLW9mXC1zaGlwOwor5bGmID4gc3RyYXdcLXNhbmRhbHM7Civok5AgPiBzdHJhd1wtYmVkXC1tYXQ7Civpio4gPiBleWVcLW9mXC1hblwtYXhlOwor6YajID4gY2FyYm9oeWRyYXRlczsKK+ibkSA+IGFcLW1hcmluZVwtY3JhYjsKK+akoCA+IHdvb2RlblwtdGFibGV0Owor5aq4ID4gYW5cLXVnbHlcLXdvbWFuOwor6aaHID4gc3RpclwtYW5kXC1jb29rOwor55SZID4gc3VnYXJcLXByb2R1Y3Q7CivolqQgPiBhbGxpdW1cLWJha2VyaTsKK+WhpSA+IGRyeVwtY2xheVwtbHVtcDsKK+m8iSA+IGxhcmdlXC1yZXB0aWxlOwor6bieID4gZmFidWxvdXNcLWJpcmQ7CivptakgPiBvd2xcLWxpa2VcLWJpcmQ7CivpsZYgPiBtYW5kYXJpblwtZmlzaDsKK+mrgyA+IHNob3VsZGVyXC1ib25lOwor6aqqID4gY3Jvb2tlZFwtYm9uZXM7CivpqZsgPiByZWxheVwtc3RhdGlvbjsKK+mojyA+IHBpZWJhbGRcLWhvcnNlOwor6aiFID4gcGllYmFsZFwtaG9yc2U7CivpprEgPiBjYXJyeVwtb25cLWJhY2s7CivppqMgPiBmcmFncmFudFwtb2RvcjsKK+mkpyA+IHN0ZWFtZWRcLWJyZWFkOwor6aSbID4gZHVtcGxpbmdcLXNvdXA7CivppJogPiBwcmVwYXJlZFwtbWVhdDsKK+mivCA+IHNvdW5kXC1vZlwtd2luZDsKK+mgjiA+IHRhbGxcLWFuZFwtc2xpbTsKK+meriA+IGxlYXRoZXJcLXNob2VzOwor6ZydID4gZHJvcHNcLW9mXC1yYWluOwor6ZmdID4gbW91bnRhaW5cLXBhc3M7Civpk5YgPiBwZXJzb24nJ3NcLW5hbWU7CivpjKEgPiBhXC1raW5kXC1vZlwtcGVuOwor6YuuID4gcGVyc29uJydzXC1uYW1lOwor6Yi6ID4gcmFyZVwtdHJlYXN1cmU7CivpiIQgPiBhXC13aW5lXC1mbGFnb247Civph60gPiB0aXJlXC1vZlwtd2hlZWw7CivphqggPiBkcmVnc1wtb2ZcLXdpbmU7CivovqEgPiByZWNyaW1pbmF0aW9uOwor6L2PID4gc2xlZXBpbmdcLWNhcnQ7CivovLMgPiBodWJzXC1vZlwtd2hlZWw7CivovJwgPiBhXC1zdXBwbHlcLWNhcnQ7Civot64gPiBoYXN0eVwtd2Fsa2luZzsKK+i0iSA+IGVhcm5lc3RcLW1vbmV5Owor6LSEID4gZ2lmdFwtc3VwZXJpb3I7Civos64gPiBmYXJld2VsbFwtZ2lmdDsKK+iyoiA+IG9mZmVyXC10cmlidXRlOwor6K6NID4gaG9uZXN0XC1zcGVlY2g7CivoroYgPiB0b1wtZXhhZ2dlcmF0ZTsKK+isjSA+IGh1bW1pbmdcLXNvdW5kOwor6KukID4gaG9uZXN0XC1zcGVlY2g7Civoq5UgPiB0b1wtaW50aW1pZGF0ZTsKK+imtiA+IHRvXC1sb29rXC1hYm91dDsKK+imlCA+IHRvXC1zZWFyY2hcLWZvcjsKK+ilmiA+IGdyYXZlXC1jbG90aGVzOwor6KOMID4gbGluZWRcLWdhcm1lbnQ7CivooYcgPiBibG9vZFwtdmVzc2VsczsKK+igtSA+IGxhcmdlXC10dXJ0bGVzOwor6J6+ID4gdGhlXC1lYXJ0aHdvcm07CivonqUgPiB0aGVcLWhvdXNlXC1mbHk7CivonpkgPiBncnVic1wtaW5cLXdvb2Q7Civom4UgPiBhXC1jYXRlcnBpbGxhcjsKK+iaoCA+IHBlcnNvbicnc1wtbmFtZTsKK+iYryA+IHRvXC10b3NzXC1hYm91dDsKK+iUjiA+IHRoZWFcLXNpbmVuc2lzOwor6JOnID4gYmFtYm9vXC1iYXNrZXQ7Civokb0gPiB0eXBlXC1vZlwtZ3JhaW47Civoj7wgPiBydXNoXC1vclwtc2VkZ2U7Civoj7ogPiBhbHRoYWVhXC1yb3NlYTsKK+iPkSA+IHRvXC13ZWVkXC1ncmFzczsKK+iOpyA+IGVkaWJsZVwtZ3JlZW5zOwor6I2IID4gdGhlYVwtc2luZW5zaXM7CivojKUgPiBydWJ1c1wtdG9ra3VyYTsKK+iLmCA+IGluZGlhblwtbWFsbG93Owor6ISlID4gcGVsdmljXC1jYXZpdHk7Civog7IgPiBoeWRyb3h5bGFtaW5lOwor572zID4gd29vZGVuXC1zY3JlZW47CivnvIcgPiByZWRkaXNoXC1jb2xvcjsKK+e4rSA+IGFcLWJyaWRhbFwtdmVpbDsKK+e3uSA+IHJlZGRpc2hcLWNvbG9yOwor57eWID4gZW5kXC1vZlwtdGhyZWFkOwor57aIID4gY29hcnNlXC1wb25nZWU7CivntIkgPiB0aHJlYWRcLW5lZWRsZTsKK+e0hyA+IGluZmVyaW9yXC1zaWxrOwor57OtID4gcmljZVwtZHVtcGxpbmc7Civnsb4gPiB1bmh1bGxlZFwtcmljZTsKK+exriA+IGJhbWJvb1wtYmFza2V0Owor57GcID4gYmFtYm9vXC1zaGVhdGg7CivnsI0gPiBiYW1ib29cLWJhc2tldDsKK+euqCA+IGJhbWJvb1wtc2hlYXRoOwor56y1ID4gYVwtYmFtYm9vXC1mb3JtOwor56ytID4gYmFtYm9vXC1zY3JlZW47Civnq6ogPiBwZXJwZW5kaWN1bGFyOwor56CeID4gdG9cLXNtYXNoXC1yb2NrOwor55+eID4gYm9yZVwtd2l0aFwtYXdsOwor55uqID4gdG9cLXRvc3NcLWFib3V0Owor55mfID4gc2hyaXZlbGxlZFwtdXA7CivnlacgPiBhcHByb3hpbWF0ZWx5Owor55OMID4gZXh0cmFvcmRpbmFyeTsKK+eSnyA+IGx1c3Rlclwtb2ZcLWdlbTsKK+eSgiA+IGphZGVcLW9ybmFtZW50Owor55GzID4gbHVzdGVyXC1vZlwtZ2VtOwor55GkID4gcHJlY2lvdXNcLWphZGU7CivnkJUgPiB0eXBlXC1vZlwtcGVhcmw7Civnj64gPiBqYWRlXC1vcm5hbWVudDsKK+eNmSA+IGRpZVwtdmlvbGVudGx5Owor54mBID4gbW9vcmluZ1wtc3Rha2U7CivnhrAgPiBncmVhdFwtZHJvdWdodDsKK+eFkiA+IGJyaWxsaWFudFwtcmVkOwor54CoID4gc3dpZnRcLWN1cnJlbnQ7CivmvKMgPiBmbG93aW5nXC13YXRlcjsKK+a1rCA+IG5hdXRpY2FsXC1taWxlOwor5rSKID4gZmxvd2luZ1wtd2F0ZXI7Civmr78gPiBsb25nXC1mZWF0aGVyczsKK+astSA+IHRvXC10cmVhdFwtd2VsbDsKK+askyA+IGFcLWNyb3NzXC1waWVjZTsKK+arjCA+IGFcLWtpbmRcLW9mXC1ob2U7Civmqq4gPiBibG9ja1wtb2ZcLXdvb2Q7CivmqLogPiB0eXBlXC1vZlwtYmlyY2g7Civmp6cgPiB3b29kZW5cLXRhYmxldDsKK+amjCA+IHdvb2RlblwtbGFkZGVyOwor5qWZID4gbmFtZVwtb2ZcLXBsYW50Owor5qSbID4gdHlwZVwtb2ZcLWJpcmNoOwor5qK8ID4gYmxvY2tcLW9mXC13b29kOwor5qK5ID4gdGhlXC1hcmVjYVwtbnV0Owor5qKOID4gc2lja2xlXC1oYW5kbGU7CivmoLAgPiBhXC1iYW1ib29cLXJhZnQ7Civmna4gPiB3b29kXC1zaGF2aW5nczsKK+acqSA+IGt3dWt5ZWxcOlwtcmFuazsKK+aQoiA+IHRvXC1zdGlja1wtaW50bzsKK+aOrSA+IHRvXC1tYW5pcHVsYXRlOwor5oy2ID4gaG9sZFwtaW5cLWhhbmRzOwor5ouVID4gdG9cLWRyYWdcLWFmdGVyOwor5oqDID4gdG9cLWNsYXBcLWhhbmRzOwor5oi6ID4gc3RvbmVcLWJvYXJkZXI7CivmiLkgPiBpblwtZGlmZmljdWx0eTsKK+aEvCA+IGFjdFwtd2l0aFwtY2FyZTsKK+aEqiA+IHRvXC1iZVwtZ3JpZXZlZDsKK+aEoSA+IGFic2VudFwtbWluZGVkOwor5oC+ID4gbW91bnRhaW5cLW5hbWU7Civlvb0gPiBnb1wtdG9cLWFuZFwtZnJvOwor5b2yID4geWVsbG93XC1kcmFnb247CivlvZQgPiB0b1wtY2FydmVcLXdvb2Q7Civlt7UgPiBtZWFzdXJpbmdcLWN1cDsKK+W3sCA+IGFuXC1hdG9tXC1ncm91cDsKK+W3ryA+IGFuXC1hdG9tXC1ncm91cDsKK+W3qiA+IHBlcnNvbicnc1wtbmFtZTsKK+W2vSA+IG1vdW50YWluXC1wZWFrOwor5bWQID4gbW91bnRhaW5cLW1pc3Q7CivltIwgPiBtb3VudGFpblwtbmFtZTsKK+WzoCA+IG1vdW50YWluXC1wYXNzOwor5bOCID4gbmFtZVwtb2ZcLXBsYWNlOwor5bOAID4gbW91bnRhaW5cLXBlYWs7Civlsr4gPiBtb3VudGFpblwtcGFzczsKK+WxqSA+IHN0cmF3XC1zYW5kYWxzOwor5bGoID4gc3RyYXdcLXNhbmRhbHM7Civlr4AgPiBmZXVkYWxcLWVzdGF0ZTsKK+WqoiA+IGJlXC1qZWFsb3VzXC1vZjsKK+WiiiA+IGFkdmFuY2VcLW1vbmV5Owor5aGQID4gbW9kZWxcLWluXC1jbGF5Owor5aC6ID4gcGVyc29uJydzXC1uYW1lOwor5Z67ID4gYW5cLWVtYmFua21lbnQ7CivlmpogPiBhcmd1bWVudGF0aXZlOwor5ZKhID4gc2lkZVwtb2ZcLW1vdXRoOwor5YefID4gdG9cLWJlXC1ydWRlXC10bzsKK+WEuSA+IHRvXC1hY2N1bXVsYXRlOwor5YSyID4gdG9cLXNhdmVcLW1vbmV5Owor5YSbID4gdG9cLXNraXBcLWFib3V0Owor5YKWID4gdnVsZ2FyXC1wZXJzb247CivlgpIgPiBwZXJzb25hbFwtbmFtZTsKK+WBiiA+IHRvXC13YWxrXC1hbG9uZTsKK+S+giA+IHRvXC1jb21taXNzaW9uOwor5LmoID4gdGhlXC1iZWdpbm5pbmc7CivktpogPiBkZWNheWVkXC10b290aDsKK+S2iCA+IGFcLWtpbmRcLW9mXC1yYXQ7CivktoMgPiBhXC1raW5kXC1vZlwtcmF0Owor5LW/ID4gYVwtc2lsZW50XC1kcnVtOwor5LWBID4gZGVjYXllZFwtZG91Z2g7CivktLAgPiBhXC1mYW1pbHlcLW5hbWU7CivksrogPiBiaXJkc1wtc2luZ2luZzsKK+SyhSA+IHRoZVwtZ2xvYmVmaXNoOwor5LG4ID4gYVwtZmFtaWx5XC1uYW1lOwor5LGmID4gdGhlXC1nbG9iZWZpc2g7CivksaEgPiB0aGVcLWdsb2JlZmlzaDsKK+SwvSA+IHRoZVwtZ2xvYmVmaXNoOwor5LC7ID4gdG9cLWNhdGNoXC1maXNoOwor5LCxID4gbmFtZVwtb2ZcLWFcLWdvZDsKK+SvhSA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SvgCA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SuiCA+IHRvXC1nb1wtc3dpZnRseTsKK+StvyA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SttSA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SsnyA+IHNvdW5kXC1vZlwtd2luZDsKK+SrvyA+IGFcLWNvb2xcLWJyZWV6ZTsKK+SrtCA+IHdlYWtcLWFuZFwtZHVsbDsKK+SrgSA+IHRoZVwtZmlyc3RcLXNvbjsKK+SqqyA+IGFuY2llbnRcLW11c2ljOwor5KqnID4gYW5jaWVudFwtbXVzaWM7CivkqpIgPiBsZWF0aGVyXC1wYW50czsKK+SpviA+IGhlcmJcLW1lZGljaW5lOwor5KmkID4gdG9cLWxlYWRcLWFuXC1veDsKK+SpoyA+IHNob2VcLWN1c2hpb25zOwor5KmeID4gYVwtc2FkZGxlXC1mbGFwOwor5KiOID4gZGVlcFwtYW5kXC1kYXJrOwor5KecID4gYW5cLWVtYmFua21lbnQ7Civkp5YgPiBhXC1zbWFsbFwtbW91bmQ7CivkprQgPiBvcGVuXC10aGVcLWRvb3I7CivkprMgPiBiZXR3ZWVuXC1zdGVwczsKK+SmsSA+IG9wZW5cLXRoZVwtZG9vcjsKK+SmoyA+IG9wZW5cLXRoZVwtZG9vcjsKK+SmoSA+IGFcLWRvb3JcLWtlZXBlcjsKK+SlqSA+IGhvb2tzXC10b1wtaGFuZzsKK+SlmiA+IHRoZVwtYmVnaW5uaW5nOwor5KS1ID4gYVwtdGlueVwtbmVlZGxlOwor5KSUID4gZHJlZ3NcLW9mXC13aW5lOwor5KSOID4gc295YmVhblwtc2F1Y2U7CivkpIMgPiBkcnVua2VuXC1zb3VuZDsKK+SjsCA+IHRvXC1wb29sXC1tb25leTsKK+SipyA+IHRvXC1nb1wtZm9yd2FyZDsKK+SimiA+IGFcLW5hcnJvd1wtcGF0aDsKK+SigyA+IHRvXC1hZG1pbmlzdGVyOwor5KGlID4gYVwtbW92aW5nXC1jYXJ0Owor5KGGID4gYVwtbW92aW5nXC1jYXJ0Owor5J+YID4gdG9cLXN0cmFpZ2h0ZW47Civkn4ogPiBzaG9ydFwtc3RyaWRlczsKK+SegSA+IGNvcnJlc3BvbmRpbmc7CivknbYgPiB0b1wtbGV2eVwtdGF4ZXM7CivknawgPiBhXC13ZWFsdGh5XC1tYW47CivknJUgPiB0b1wtZXhhZ2dlcmF0ZTsKK+SbviA+IGZhbWlsaWFyXC13aXRoOwor5JuQID4gYW5cLWV4cHJlc3Npb247CivkmpUgPiB0b1wtc2VhcmNoXC1vdXQ7CivkmbkgPiB0b1wtdm9taXRcLW1pbGs7CivkmaUgPiBzaGlueVwtZHJlc3NlczsKK+SZoiA+IHNob3J0XC10XC1zaGlydDsKK+SZoCA+IHNob3J0XC1jbG90aGVzOwor5JmfID4gaGVhdnlcLWNsb3RoZXM7CivkmZ4gPiB3b29sZW5cLXN0cmluZzsKK+SZhSA+IHRoZVwtd2Fpc3RsaW5lOwor5JeXID4gdGhlXC1taWxsaXBlZGU7Civkl4sgPiBhXC1tYXJpbmVcLWNyYWI7Civkl4MgPiB0aGVcLW1pbGxpcGVkZTsKK+SWqSA+IGFcLWtpbmRcLW9mXC1iZWU7CivklpEgPiBhXC13aGl0ZVwtdGlnZXI7CivklocgPiBmcmFncmFudFwtaGVyYjsKK+SVpSA+IGhlcmJcLW1lZGljaW5lOwor5JWWID4gZnJhZ3JhbnRcLWhlcmI7CivklJ4gPiB0aGVcLWJlZ2lubmluZzsKK+SUnCA+IGhlcmJcLW1lZGljaW5lOwor5JSaID4gaGVyYlwtbWVkaWNpbmU7CivklJYgPiB3YXRlclwtY2FsdHJvcDsKK+SUkyA+IGhlcmJcLW1lZGljaW5lOwor5JKlID4gY29ycmVzcG9uZGluZzsKK+SSlyA+IGZyYWdyYW50XC1oZXJiOwor5JKOID4gd2l0aG91dFwtY29sb3I7Civkko0gPiB3aXRob3V0XC1jb2xvcjsKK+SRsiA+IHRvXC1yb3dcLWFcLWJvYXQ7CivkkaUgPiBhXC1tb3ZpbmdcLWJvYXQ7CivkkLIgPiBoYWxmXC1yYXdcLW1lYXQ7CivkkJkgPiB0aGVcLWRpYXBocmFnbTsKK+SPmCA+IGFcLWJpZ1wtYWJkb21lbjsKK+SPhCA+IG5vdFwtdG9cLWxpc3RlbjsKK+SNvSA+IGFcLWZpZXJjZVwtZ29hdDsKK+SNvCA+IHNhbHRlZFwtbXV0dG9uOwor5I2qID4gY2FzdHJhdGVkXC1yYW07CivkjaQgPiB0b1wtc3RyYWluXC1vdXQ7CivkjKMgPiB0b1wtYWNjdW11bGF0ZTsKK+SMmSA+IGhhbmtcLW9mXC1yb3BlczsKK+SMhSA+IGFcLXRoaWNrXC1yb3BlczsKK+SLpiA+IHJhdmVsbGVkXC1zaWxrOwor5IudID4gYVwtdGhyb2F0XC1iYW5kOwor5Iq9ID4gYVwtZmluZVwtdGhyZWFkOwor5IqhID4gc3RlYW1lZFwtYnJlYWQ7CivkipQgPiBwb2xpc2hlZFwtcmljZTsKK+SKhCA+IHBvbGlzaGVkXC1yaWNlOwor5ImwID4gYmFtYm9vXC1zaG9vdHM7CivkiakgPiBhXC1iYW1ib29cLXdhcmU7CivkiaggPiBiYW1ib29cLWpvaW50czsKK+SIviA+IG1vdmVcLWFcLWxpdHRsZTsKK+SIsyA+IGFcLXdpbmRvd1wtbGVhZjsKK+SHiyA+IG5hbWVcLW9mXC1hXC1nb2Q7Civkhp4gPiBkZWVwXC1hbmRcLWRhcms7CivkhpogPiB0b1wtZ29cLXRocm91Z2g7CivkhpcgPiBkZWVwXC1hbmRcLWRhcms7CivkhZsgPiBodXNrc1wtb2ZcLXJpY2U7CivkhJQgPiBhXC1mYW1pbHlcLW5hbWU7CivkhIcgPiBhXC1mYW1pbHlcLW5hbWU7Civkg7sgPiBhblwtZW1iYW5rbWVudDsKK+SDsyA+IGZhbGxpbmdcLXN0b25lOwor5IK2ID4gdGhlXC1jcnVzdGFjZWE7CivkgpcgPiB0b1wtYmVcLWNhcmVmdWw7Civkgo4gPiBhXC1zaG9ydFwtc3BlYXI7CivkgoEgPiBhblwtYW5ncnlcLWxvb2s7CivkgZkgPiBlbG9xdWVudFwtZXllczsKK+SAriA+IHNpZ2h0XC1ibHVycmVkOwor5ICtID4gd2l0aFwtYmlnXC1leWVzOwor5ICnID4gc2lnaHRcLWJsdXJyZWQ7CivkgJ8gPiBzaWdodFwtYmx1cnJlZDsKK+SAliA+IHRvXC1sb29rXC11cFwtdG87CivkgJUgPiBhbmdyeVwtZ2xhbmNlczsKK+O/rCA+IG5hc2FsXC1kaXNlYXNlOwor47+cID4gc2hyaXZlbGxlZFwtdXA7Civjvr0gPiBzd2VsbGluZ1wtZmVldDsKK+O9siA+IGdyaXBpbmdcLWNvbGljOwor472xID4gZ3JpcGluZ1wtY29saWM7CivjvYcgPiB1bmJ1cm50XC10aWxlczsKK+O8tSA+IGFcLXNtYWxsXC1iYXNpbjsKK+O8nyA+IGFcLXRpbGVkXC1ob3VzZTsKK+O8jiA+IGFcLXNtYWxsXC1tZWxvbjsKK+O7viA+IGphZGVcLWFydGljbGVzOwor47qpID4gamFkZVwtYXJ0aWNsZXM7CivjuoggPiB0b1wtZ29cLWh1bnRpbmc7CivjubkgPiBhXC1raW5kXC1vZlwtZG9nOwor47m1ID4gYVwtaHVudGluZ1wtZG9nOwor47mzID4gYVwta2luZFwtb2ZcLWFwZTsKK+O5oyA+IGFcLWtpbmRcLW9mXC1kb2c7CivjuIQgPiBhXC1yYWdpbmdcLWZpcmU7Civjt74gPiBibGF6ZVwtb2ZcLWZpcmU7Civjt7ggPiBibGF6ZVwtb2ZcLWZpcmU7Civjt5YgPiB0b1wtc2hpbmVcLXVwb247Civjt5UgPiBoZWFyaW5nXC1zb3VuZDsKK+O3kiA+IHRvXC1jb29rXC1tZWFsczsKK+O2mCA+IGZ1bGxcLW9mXC13YXRlcjsKK+O1syA+IGNyeXN0YWxcLWNsZWFyOwor47WxID4gZmxvd2luZ1wtd2F0ZXI7CivjtaAgPiB0b1wtZ3VzaFwtZm9ydGg7CivjtL0gPiB3YXRlclwtY3VycmVudDsKK+O0tSA+IHdhdGVyXC1jdXJyZW50Owor47SvID4gd2F0ZXJcLWN1cnJlbnQ7CivjtK4gPiB3YXRlclwtY3VycmVudDsKK+O0qyA+IGdyZWF0XC1mbG93aW5nOwor47SoID4gd2F0ZXJcLWN1cnJlbnQ7CivjtKYgPiB0b1wtd2FzaFwtaGFuZHM7CivjtKUgPiBncmVhdFwtYmlsbG93czsKK+O0kiA+IHdhdGVyXC1jdXJyZW50Owor47SQID4gZ3JlYXRcLWN1cnJlbnQ7CivjtIIgPiBncmVhdFwtYmlsbG93czsKK+OzqSA+IGdyZWF0XC1iaWxsb3dzOwor47KbID4gaGFpcnlcLWFuaW1hbHM7CivjsLsgPiBhc3Nlc1wtYnJheWluZzsKK+OwsyA+IGFzc2VzXC1icmF5aW5nOwor47CPID4gYVwtYmFtYm9vXC1wb2xlOwor47CMID4gdG9cLW1vbm9wb2xpemU7Civjr70gPiB0aGVcLWFyZWNhXC1udXQ7Civjrb8gPiBvYmxpcXVlXC1hbmdsZTsKK+OtkyA+IGFcLXBpbGxhclwtYXJjaDsKK+OsrCA+IGFcLWZhbWlseVwtbmFtZTsKK+OspSA+IHRvXC1zdW5cLXRvXC1haXI7CivjrIQgPiB3YXJtXC1hbmRcLWRhbXA7Civjq58gPiBkYXlcLWFmdGVyXC1kYXk7Civjq5ogPiBlYXJseVwtbW9ybmluZzsKK+OppSA+IGRlbGljYXRlXC1oYW5kOwor76irID4gcmFpc2VcLWFuaW1hbHM7CivjqJ4gPiB0b1wtZmVlbFwtYWJvdXQ7CivvqJggPiBzb2NpYWxcLWN1c3RvbTsKK++okiA+IGNsZWFyXC13ZWF0aGVyOwor46e8ID4gdG9cLWRpc3RyaWJ1dGU7Civjp7cgPiB0b1wtd2lwZVwtdGVhcnM7Civvp5ogPiBjaGVzdG51dFwtdHJlZTsKK+OnmCA+IHRvXC1hY2N1bXVsYXRlOwor76a2ID4gc29jaWFsXC1jdXN0b207CivjpqsgPiBsYXhcLWFuZFwtY3J1ZGU7CivvppIgPiBmbG93aW5nXC13YXRlcjsKK+OmjCA+IGtlZW5cLW9yXC1zaGFycDsKK+OmhiA+IHRvXC1leGFnZ2VyYXRlOwor46W8ID4gdG9cLWJlXC1uZWFyXC10bzsKK++ltiA+IGFwcHJveGltYXRlbHk7CivvpbEgPiBlYXJseVwtbW9ybmluZzsKK+OlpSA+IGFic2VudFwtbWluZGVkOwor46SwID4gdG9cLWJlXC1hc2hhbWVkOwor76ShID4gbW91bnRhaW5cLW1pc3Q7CivvpKAgPiBmYWJ1bG91c1wtYmlyZDsKK+OjvyA+IHBhaW5mdWxseVwtc2FkOwor46OxID4gY29tbW9uXC1wZW9wbGU7Civjo6QgPiB0b1wtdHJlYWRcLXVwb247Civjo5QgPiB0b1wtd2Fsa1wtYWxvbmU7CivjorsgPiB0b1wtZHJhd1wtYVwtYm93Owor46KWID4gYVwtc3RvcmVcLWhvdXNlOwor46G3ID4gYVwtZmFtaWx5XC1uYW1lOwor46C6ID4gYVwtZmluZVwtdGhyZWFkOwor46C0ID4gYVwtcGlsbG93XC1jYXNlOwor46CbID4gbmFtZVwtYVwtY291bnR5Owor45+2ID4gbW91bnRhaW5cLXBlYWs7Civjn7IgPiBtb3VudGFpblwtcGVhazsKK+OfrSA+IHRoZVwtbWluXC1yaXZlcjsKK+OfqSA+IHRoZVwtbWluXC1yaXZlcjsKK+OetiA+IHRoZVwtbWluXC1yaXZlcjsKK+OerCA+IGNsb3NlXC1vclwtbmVhcjsKK+OeiyA+IHNvZnRcLWFuZFwtbWVlazsKK+OduyA+IGJhcmVseVwtZW5vdWdoOwor452mID4gdG9cLWFjY3VtdWxhdGU7CivjnZMgPiBjb3JyZXNwb25kaW5nOwor452DID4gdG9cLWJlYXJcLWFcLXNvbjsKK+ObkiA+IGNhblwtbm90XC1zcGVhazsKK+ObjiA+IGFuXC11Z2x5XC13b21hbjsKK+OatCA+IGFcLXByZXR0eVwtZ2lybDsKK+OYmyA+IGFcLWRlZXBcLXZhbGxleTsKK+OYkyA+IHByb2xpeFwtc3BlZWNoOwor45iJID4gdG9cLW1ha2VcLXNvdW5kOwor45e0ID4gZG9nc1wtZmlnaHRpbmc7CivjlbAgPiBzb3VuZFwtYW5ncmlseTsKK+OVqiA+IGJpcmRzJydcLWNoaXJwczsKK+OVmSA+IGFcLXdpbHlcLXJhYmJpdDsKK+OViSA+IHRvXC1kaWdcLWFcLWhvbGU7CivjlKUgPiBmdWxsXC1vZlwtYW5nZXI7Civjk7QgPiB0b1wtY3V0XC1pblwtdHdvOwor45OWID4gYml0dGVybHlcLWNvbGQ7Civjk48gPiBiaXR0ZXJseVwtY29sZDsKK+OTjCA+IGJpdHRlcmx5XC1jb2xkOwor45KHID4gdG9cLXNraXBcLWFib3V0Owor45G8ID4gbmFtZVwtb2ZcLWFcLWdvZDsKK+ORpSA+IGRpc3Jlc3BlY3RmdWw7CivjkLAgPiB0b1wtYmVsaWV2ZVwtaW47CivnnrMgPiBwdXBpbFwtb2ZcLWV5ZTsKK+S4hyA+IHRlblwtdGhvdXNhbmQ7CivluIMgPiBjb3R0b25cLWNsb3RoOwor6YCaID4gcGFzc1wtdGhyb3VnaDsKK+aPkCA+IGhvbGRcLWluXC1oYW5kOwor5LqsID4gY2FwaXRhbFwtY2l0eTsKK+eUmiA+IGdyZWF0XC1leHRlbnQ7CivlkaggPiB6aG91XC1keW5hc3R5Owor5bC7ID4gZW5kXC1vZlwtc3BpbmU7CivlrrQgPiB0b1wtZW50ZXJ0YWluOwor5a6wID4gdG9cLXNsYXVnaHRlcjsKK+eKryA+IGNvbW1pdFwtY3JpbWU7CivlqaIgPiBzZXJ2YW50XC1naXJsOwor5Y+CID4gdGFrZVwtcGFydFwtaW47CivmjowgPiBwYWxtXC1vZlwtaGFuZDsKK+WnvyA+IG9uZScnc1wtbWFubmVyOwor5aeJID4gZWxkZXJcLXNpc3RlcjsKK+aWlyA+IGNoaW5lc2VcLXBlY2s7CivlkbwgPiBicmVhdGhlXC1zaWdoOwor5aeQID4gZWxkZXJcLXNpc3RlcjsKK+ihnSA+IHJ1c2hcLWFnYWluc3Q7Civln7cgPiBob2xkXC1pblwtaGFuZDsKK+ieuiA+IHNwaXJhbFwtc2hlbGw7CivlnYogPiBuZWlnaGJvcmhvb2Q7CivlsLwgPiBidWRkaGlzdFwtbnVuOwor6by+ID4gc25vcmVcLWxvdWRseTsKK+WPtiA+IHRvXC1oYXJtb25pemU7Civph44gPiBvcGVuXC1jb3VudHJ5Owor56e7ID4gY2hhbmdlXC1wbGFjZTsKK+WUkCA+IHRhbmdcLWR5bmFzdHk7Civnp4AgPiBlYXJcLW9mXC1ncmFpbjsKK+aJpyA+IGhvbGRcLWluXC1oYW5kOwor6JKyID4gdHlwZVwtb2ZcLXJ1c2g7CivluoYgPiBjb25ncmF0dWxhdGU7Civokp8gPiBiZXRlbFwtcGVwcGVyOwor5rGXID4gcGVyc3BpcmF0aW9uOwor6JCsID4gdGVuXC10aG91c2FuZDsKK+aLnCA+IGRvXC1vYmVpc2FuY2U7Civlj4MgPiB0YWtlXC1wYXJ0XC1pbjsKK+iZkSA+IGJlXC1jb25jZXJuZWQ7CivlrosgPiBzb25nXC1keW5hc3R5Owor6IOGID4gZ2FsbFwtYmxhZGRlcjsKK+WJliA+IHNwbGl0XC1pblwtdHdvOwor5YekID4gbWFsZVwtcGhvZW5peDsKK+ivoiA+IGlucXVpcmVcLWludG87Civohr0gPiBnYWxsXC1ibGFkZGVyOwor562RID4gYW5jaWVudFwtbHV0ZTsKK+WBtiA+IGFjY2lkZW50YWxseTsKK+mjvSA+IGVhdFwtaGVhcnRpbHk7Civog44gPiB1bmJvcm5cLWNoaWxkOwor5oKfID4gdG9cLWFwcHJlaGVuZDsKK+iChSA+IHBheVwtcmVzcGVjdHM7CivogoMgPiBwYXlcLXJlc3BlY3RzOwor5aeKID4gZWxkZXJcLXNpc3RlcjsKK+S+mCA+IGRpc2FwcG9pbnRlZDsKK+elrSA+IHNhY3JpZmljZVwtdG87CivotLogPiBjb25ncmF0dWxhdGU7CivppbEgPiBlYXRcLWhlYXJ0aWx5Owor5a6qID4gY29uc3RpdHV0aW9uOwor56KRID4gc3RvbmVcLXRhYmxldDsKK+aYjCA+IGxpZ2h0XC1vZlwtc3VuOwor5pC6ID4gbGVhZFwtYnlcLWhhbmQ7CivljqYgPiBiaWdcLWJ1aWxkaW5nOwor5LuGID4gZmFsbFwtZm9yd2FyZDsKK+WmpSA+IHNhdGlzZmFjdG9yeTsKK+adrSA+IGNyb3NzXC1zdHJlYW07CivotaAgPiBnaXZlXC1wcmVzZW50Owor6IWUID4gY2hlc3RcLWNhdml0eTsKK+WtnSA+IGZpbGlhbFwtcGlldHk7CivnrLkgPiBzbWFsbFwtYmFtYm9vOwor56ybID4gYmFtYm9vXC1mbHV0ZTsKK+atpyA+IGZvcmtcLW9mXC1yb2FkOwor5oudID4gZG9cLW9iZWlzYW5jZTsKK+mJmyA+IGxlYWRcLXBsdW1idW07CivnqZcgPiBlYXJcLW9mXC1ncmFpbjsKK+epgiA+IGVhclwtb2ZcLWdyYWluOwor5ZaDID4ga2VlcFwtdGFsa2luZzsKK+iIsSA+IGhvbGRcLW9mXC1zaGlwOwor6YacID4gdWdseVwtbG9va2luZzsKK+aFriA+IGJlXC1jb25jZXJuZWQ7Civoo5ggPiBmdXJcLWdhcm1lbnRzOwor5qC9ID4gdG9cLWN1bHRpdmF0ZTsKK+ivpyA+IGJlXC1zdXJwcmlzZWQ7CivpmI4gPiB2aWxsYWdlXC1nYXRlOwor5oSjID4gYmVcLWluXC1hXC1kYXplOwor55CqID4gdHlwZVwtb2ZcLWphZGU7CivnrqsgPiBiYW1ib29cLWZsdXRlOwor5ailID4gYmVcLWJlYXV0aWZ1bDsKK+WSqiA+IHNvdW5kXC1vZlwtY2F0Owor5riXID4gc29ha1wtdGhyb3VnaDsKK+iRqyA+IGJvdHRsZVwtZ291cmQ7CivlnaogPiBsZXZlbFwtZ3JvdW5kOwor5Z2eID4gZW50cmVuY2htZW50Owor5oCFID4gZGlzYXBwb2ludGVkOwor5qmhID4gY2hlc3RudXRcLW9hazsKK+e1riA+IHdhc3RlXC1jb3R0b247Civot4QgPiB3YWxrXC1yYXBpZGx5Owor5bG5ID4gdG9cLXJpc2VcLWhpZ2g7Civmg5ggPiBkaXNjb25jZXJ0ZWQ7CivnnLggPiBwdXBpbFwtb2ZcLWV5ZTsKK+aPqSA+IHJ1YlwtYW5kXC13aXBlOwor5qWgID4gbmFtZVwtb2ZcLXRyZWU7CivpupMgPiBmb290XC1vZlwtaGlsbDsKK+eOriA+IHR5cGVcLW9mXC1qYWRlOwor5oG7ID4gZmVlbFwtYW5ndWlzaDsKK+ahhSA+IG1hc3RcLW9mXC1zaGlwOwor6aqLID4gZ2FsbG9wXC1ob3JzZTsKK+mXqyA+IHZpbGxhZ2VcLWdhdGU7CivouZIgPiB0b1wtanVtcFwtb3ZlcjsKK+elgCA+IHRvXC1zYWNyaWZpY2U7CivnsYEgPiBiYW1ib29cLWZsdXRlOwor5a+wID4gZ3JlYXRcLWRvbWFpbjsKK+aWkyA+IG11bHRpY29sb3JlZDsKK+S8qyA+IGxvb2tcLXRvd2FyZHM7Civouo8gPiB0cmFtcGxlXC1kb3duOwor5rK9ID4gYnV5XC1hbmRcLXNlbGw7Civnj6UgPiBlYXJcLW9ybmFtZW50Owor56yGID4gYmFtYm9vXC1mZW5jZTsKK+iZrCA+IHlvdW5nXC1kcmFnb247Civmg6wgPiBiZVwtc2F0aXNmaWVkOwor57yoID4gYVwtY2hpblwtc3RyYXA7Civlir4gPiBleGFtaW5lXC1pbnRvOwor5ZikID4gc2Vla1wtZnJpZW5kczsKK+ivgyA+IHNjb2xkXC1sb3VkbHk7Civlhr0gPiBjb2xkXC1hbmRcLXJhdzsKK+mjqCA+IGhvc3RcLWJhbnF1ZXQ7CivmgI8gPiBkaXNjb250ZW50ZWQ7CivlhqIgPiBidXJpYWxcLW1vdW5kOwor5amAID4gYmVcLWJlYXV0aWZ1bDsKK+WXsyA+IGludGVyamVjdGlvbjsKK+eioyA+IHN0b25lXC10YWJsZXQ7CivlrpUgPiBzdG9uZVwtcXVhcnJ5Owor6ICGID4gbWFuXC1vZlwtc2l4dHk7CivpnZMgPiBtYWtlXC11cFwtZmFjZTsKK+ibsCA+IHRvXC1oaWJlcm5hdGU7CivmjrwgPiB0aHJvd1wtZ3JvdW5kOwor5ZukID4gZ3JhaW5cLWJhc2tldDsKK+etsSA+IGR3YXJmXC1iYW1ib287CivmqJ8gPiBjYW1waG9yXC10cmVlOwor6bKlID4gcmVldmVzJydcLXNoYWQ7CivpgLUgPiB0aG9yb3VnaGZhcmU7CivlsrcgPiBtaW5cLW1vdW50YWluOwor5p6wID4gc21vb3RoXC1ib2FyZDsKK+WxkCA+IHdvb2Rlblwtc2hvZXM7Civog5sgPiB0aGVcLXNob3VsZGVyOwor6bmeID4gc3BhcnJvd1wtaGF3azsKK+eKhCA+IGFuaW1hbFwtaG9ybnM7Civot7kgPiB3YW5kZXJcLWFib3V0Owor5pixID4gYnJpZ2h0XC1saWdodDsKK+agviA+IG5hbWVcLW9mXC10cmVlOwor5rmEID4gd2F0ZXInJ3NcLWVkZ2U7Civoj4UgPiBjb2Fyc2VcLWdyYXNzOwor57u7ID4gYWZmZWN0aW9uYXRlOwor56+BID4gYmFtYm9vXC1ncm92ZTsKK+i1hSA+IHByZXBhcmVkXC1mb3I7CivmpIEgPiBvdXRlclwtY29mZmluOwor57qwID4gc3BvaWxlZFwtc2lsazsKK+m8iyA+IGxhcmdlXC10dXJ0bGU7CivphpAgPiBwdXJlc3RcLWNyZWFtOwor6b6JID4gdW5ldmVuXC10ZWV0aDsKK+iLuyA+IGtpbmRcLW9mXC1oZXJiOwor6ayjID4gaG9yc2UnJ3NcLW1hbmU7CivnvJcgPiBmaXNoaW5nXC1saW5lOwor5rmrID4gYVwtc21hbGxcLXBvbmQ7Civku58gPiBvbmVcLXRob3VzYW5kOwor6Jq2ID4ga2luZFwtb2ZcLWNsYW07Civnk6AgPiBib3R0bGVcLWdvdXJkOwor6JuEID4gbW9sZVwtY3JpY2tldDsKK+avgiA+IGh1Ylwtb2ZcLXdoZWVsOwor55WaID4gc3RyYXdcLWJhc2tldDsKK+a0hCA+IGFcLWJhY2tcLXdhdGVyOwor6aOnID4gZXZlbmluZ1wtbWVhbDsKK+mGqiA+IHVuY2xlYXJcLXdpbmU7Civpqp0gPiBmYW1vdXNcLWhvcnNlOwor6aqSID4gbW90aGVyXC1ob3JzZTsKK+aHlCA+IGJlXC1hZnJhaWRcLW9mOwor5YqTID4gY3V0XC1vZmZcLW5vc2U7CivouJQgPiB0b1wtZ2V0XC1haGVhZDsKK+mioSA+IHRoZVwtZm9yZWhlYWQ7CivmvbIgPiBkcml2aW5nXC1yYWluOwor57yvID4gc2lsa1wtZmFicmljczsKK+aDnSA+IGRpc2FwcG9pbnRlZDsKK+eUkyA+IGdsYXplZFwtdGlsZXM7CivojawgPiBhXC1wbGFudFwtbmFtZTsKK+afkiA+IG51bWJlclwtc2V2ZW47CivnmLMgPiB0b1wtYmVcLWhlYWxlZDsKK+iwhyA+IHNwZWFrXC1pbGxcLW9mOwor5LmHID4gdG9cLWRlcGVuZFwtb247CivpvqQgPiB0b1wtaGFybW9uaXplOwor6b2sID4gdW5ldmVuXC10ZWV0aDsKK+m9hiA+IHN0dWZmZWRcLW5vemU7CivpvYEgPiBzbm9yZVwtbG91ZGx5Owor6by9ID4gY2xvZ2dlZFwtbm9zZTsKK+m7vyA+IGxhcmdlXC10dXJ0bGU7CivpupUgPiBtdW50amFjXC1kZWVyOwor6beCID4gc3BhcnJvd1wtaGF3azsKK+mzsyA+IG1hbGVcLXBob2VuaXg7Civps68gPiBtYWxlXC1waG9lbml4Owor6bOQID4gdGhlXC1uYXV0aWx1czsKK+mxkSA+IHRoZVwtc3R1cmdlb247CivpsYIgPiBuYW1lXC1vZlwtZmlzaDsKK+mwqSA+IHRoZVwtbmF1dGlsdXM7CivpsKMgPiByZWV2ZXMnJ1wtc2hhZDsKK+mwgyA+IG5hbWVcLW9mXC1maXNoOwor6bCBID4gbmFtZVwtb2ZcLWZpc2g7CivpraYgPiBzaGFya1wtZmFtaWx5Owor6a2iID4gbmFtZVwtb2ZcLWZpc2g7CivprZ8gPiB0aGVcLW5hdXRpbHVzOwor6ay1ID4gYmlnXC1pcm9uXC1wb3Q7CivprJAgPiBob3JzZScnc1wtbWFuZTsKK+mshSA+IHVua2VtcHRcLWhhaXI7CivpqYggPiBibGFja1wtaG9yc2VzOwor6aiuID4gZmFtb3VzXC1ob3JzZTsKK+mojSA+IG1vdGhlclwtaG9yc2U7CivpqIYgPiBkaXZpbmVcLWhvcnNlOwor6aiBID4gZ2FsbG9wXC1ob3JzZTsKK+mnnCA+IHN0cm9uZ1wtaG9yc2U7Civpp5cgPiBjaGF0dGVyXC1tYXJrOwor6aWXID4gaG9zdFwtYmFucXVldDsKK+mkgCA+IHRhaW50ZWRcLWZvb2Q7Civpo7EgPiBldmVuaW5nXC1tZWFsOwor6aKtID4gc3dheVwtaW5cLXdpbmQ7CivpoZkgPiB0aGVcLWZvcmVoZWFkOwor6aCfID4gdGhlXC1mb3JlaGVhZDsKK+mepiA+IGxlYXRoZXJcLXN0YXA7CivpnZogPiBtYWtlXC11cFwtZmFjZTsKK+mckSA+IGJlXC1tb2lzdGVuZWQ7CivpmpYgPiBlbnRyZW5jaG1lbnQ7CivpmYEgPiBhXC1zdGVlcFwtYmFuazsKK+mXkSA+IHRoZVwtZG9vcnNpbGw7CivplrsgPiB2aWxsYWdlXC1nYXRlOwor6ZaGID4gdmlsbGFnZVwtZ2F0ZTsKK+mVqCA+IHByYXNlb2R5bWl1bTsKK+mQoCA+IHByYXNlb2R5bWl1bTsKK+mPtyA+IHByb3RhY3Rpbml1bTsKK+mNiiA+IHNtZWx0XC1tZXRhbHM7CivpjKwgPiBzbWVsdFwtbWV0YWxzOwor6YyIID4gdG9cLWJlbmRcLWlyb247Civph6ogPiBhblwtYWxtc1wtYm93bDsKK+mGvSA+IGtpbmRcLW9mXC13aW5lOwor6YOZID4gdG9cLWJlXC1leGlsZWQ7CivpgrIgPiBnb29kXC1sb29raW5nOwor6L+jID4gdG9cLWxlYXBcLW92ZXI7CivovYIgPiBodWJcLW9mXC13aGVlbDsKK+i6qiA+IHRyYW1wbGVcLWRvd247CivoupogPiB3YW5kZXJcLWFib3V0Owor6LqZID4gdHJhbXBsZVwtZG93bjsKK+i5oyA+IHRvXC1qdW1wXC1vdmVyOwor6LmMID4gd2Fsa1wtcmFwaWRseTsKK+i4vCA+IHRvXC1mYWxsXC1mbGF0Owor6LikID4gYnV0dFwtYWdhaW5zdDsKK+i0iCA+IGdpdmVcLXByZXNlbnQ7Civos4kgPiB0b1wtZ2l2ZVwtYWxtczsKK+izhSA+IHByZXBhcmVkXC1mb3I7Civos4AgPiBjb25ncmF0dWxhdGU7CivosoYgPiBzbWFsbFwtYmFkZ2VyOwor6LG2ID4gY2FzdHJhdGVcLXBpZzsKK+iqviA+IHNwZWFrXC1nZW50bHk7CivoqrYgPiBzcGVha1wtaWxsXC1vZjsKK+ipoiA+IGlucXVpcmVcLWludG87CivoqLYgPiBzY29sZFwtbG91ZGx5Owor6KWbID4gZmluZVwtY2xvdGhlczsKK+ilhiA+IGhvb2RcLW9yXC1jb3dsOwor6J+EID4gdG9cLWhpYmVybmF0ZTsKK+iZryA+IHlvdW5nXC1kcmFnb247CivokZwgPiBzbWlsYXhcLWNoaW5hOwor6JCpID4gc2NhbmRlbnRcLWhvcDsKK+iQmCA+IG5hcGh0aGFubGVuZTsKK+iPnSA+IHNtaWxheFwtY2hpbmE7CivojqYgPiBqdW5nbGVcLWdyYXNzOwor6IqnID4gY2hlc3RudXRcLW9hazsKK+iKmiA+IGdyZWVuXC1zcHJvdXQ7CivoipEgPiB3aGl0ZVwtbWlsbGV0Owor6ImZID4gaG9sZFwtb2ZcLXNoaXA7CivohpcgPiB1Z2x5XC1hbmRcLWZhdDsKK+iCmSA+IGFcLXNtYWxsXC13b3JtOwor576AID4gZmlzaGluZ1wtdHJhcDsKK+e9tiA+IGZpc2hpbmdcLXRyYXA7CivnupMgPiBhXC1jaGluXC1zdHJhcDsKK+e6gSA+IHNoYWRlXC1vZlwtcmVkOwor57mZID4gdG9cLWludGVycHJldDsKK+e5kiA+IHNpbGtcLWZhYnJpY3M7CivnuJUgPiB0YW5nbGVkXC1oZW1wOwor57ehID4gZmlzaGluZ1wtbGluZTsKK+e2oyA+IGFmZmVjdGlvbmF0ZTsKK+e0lSA+IHNwb2lsZWRcLXNpbGs7CivnspsgPiBwYXlcLXJlc3BlY3RzOwor57GvID4gYmFtYm9vXC1jaGVzdDsKK+exnyA+IGJhbWJvb1wtZmx1dGU7Civnr7QgPiBiYW1ib29cLWZsdXRlOwor56+gID4gZHdhcmZcLWJhbWJvbzsKK+etpCA+IHlvdW5nXC1iYW1ib287CivnrY0gPiBiYW1ib29cLXNob290Owor562FID4gYmFtYm9vXC1icnVzaDsKK+epnyA+IGVhclwtb2ZcLWdyYWluOwor56esID4gYmxhY2tcLW1pbGxldDsKK+elmCA+IHRvXC1jYWxjdWxhdGU7Civno6AgPiBzYWxcLWFtbW9uaWFjOwor56K2ID4gYVwtZmxvb2RcLWdhdGU7CivnoJ8gPiBzdG9uZVwtdGFibGV0Owor55+8ID4gc3RvbmVcLWJyaWRnZTsKK+edkiA+IHRvXC1nbGFuY2VcLWF0Owor55qmID4gYnJpZ2h0XC13aGl0ZTsKK+eYuiA+IGFuYWxcLWZpc3R1bGE7Civnlr8gPiBwcmlja2x5XC1oZWF0Owor55GLID4gdHlwZVwtb2ZcLWphZGU7Civnj7kgPiB0eXBlXC1vZlwtamFkZTsKK+eOjSA+IGlsbFwtdGVtcGVyZWQ7Civni4YgPiBwZWtpbmVzZVwtZG9nOwor54mCID4gZmVtYWxlXC1zaGVlcDsKK+eHtyA+IGRpc2FwcG9pbnRlZDsKK+eHoyA+IGRpc2FwcG9pbnRlZDsKK+a7siA+IHNvYWtcLXRocm91Z2g7Civmu4ogPiBhXC1yaXZlclwtbmFtZTsKK+azliA+IHN0aWxsXC13YXRlcnM7Civmr4ggPiBmZXJ0aWxlXC1lZ2dzOwor5q6cID4gaGFsZlwtc2l0dGluZzsKK+asvyA+IGRpc2NvbnRlbnRlZDsKK+askiA+IG5hbWVcLW9mXC10cmVlOwor5qmSID4gd29vZFwtc3RyZWFrczsKK+anuyA+IHplbGtvdmFcLXRyZWU7Civmp6ggPiBvdXRlclwtY29mZmluOwor5qeUID4gd2F0ZXJcLXB1bGxleTsKK+algCA+IG5hbWVcLW9mXC10cmVlOwor5p6fID4gd29vZFwtc3RyZWFrczsKK+aWlSA+IG11bHRpY29sb3JlZDsKK+aUnCA+IGxlYWRcLWJ5XC1oYW5kOwor5pGcID4gdGhyb3dcLWdyb3VuZDsKK+aRmSA+IHRvXC10cmFuc3BvcnQ7Civmj5EgPiB0b1wtZmFicmljYXRlOwor5oiJID4gYVwtYmF0dGxlXC1heGU7Civmh40gPiBiZVwtYWZyYWlkXC1vZjsKK+aGsiA+IGNvbnN0aXR1dGlvbjsKK+aFtiA+IGNvbmdyYXR1bGF0ZTsKK+aEnCA+IGJlXC1zYXRpc2ZpZWQ7Civmg7sgPiBmZWVsXC1hbmd1aXNoOwor5oK1ID4gZGlzYXBwb2ludGVkOwor5bu5ID4gdG9cLXBlcnNlY3V0ZTsKK+W7iCA+IGJpZ1wtYnVpbGRpbmc7CivluKggPiBoYW5ka2VyY2hpZWY7CivltqIgPiBoaWdoXC1vclwtdGFsbDsKK+WxpyA+IHdvb2Rlblwtc2hvZXM7CivlsZggPiB0aGVcLXlvdW5nZXN0Owor5auyID4gZ3JhbmRcLW1vdGhlcjsKK+WjiCA+IGRpc2FwcG9pbnRlZDsKK+WhoiA+IGVudHJlbmNobWVudDsKK+WfnCA+IG9wZW5cLWNvdW50cnk7CivlmrYgPiBzZWVrXC1mcmllbmRzOwor5ZmvID4gaW50ZXJqZWN0aW9uOwor5ZatID4gY29uZG9sZVwtd2l0aDsKK+WSpSA+IHNvdW5kXC1vZlwtY2F0Owor5ZG5ID4gdG9cLWVhdFwtZ3Jhc3M7Civlj4QgPiB0YWtlXC1wYXJ0XC1pbjsKK+WOtyA+IHRoZVwtZm9yZVwtYXJtOwor5Y6kID4gdG9cLWNhbGN1bGF0ZTsKK+WLoyA+IGFjaGlldmVtZW50czsKK+WJtyA+IHRvXC1sZXZlbFwtb2ZmOwor5YmXID4gdG9cLWxldmVsXC1vZmY7CivlhJcgPiBjb21wYXJlXC13aXRoOwor5L2tID4gdW5zdWJtaXNzaXZlOwor5LqwID4gY2FwaXRhbFwtY2l0eTsKK+S4vCA+IGJvd2xcLW9mXC1mb29kOwor5LS8ID4gdG9cLWV4dGlycGF0ZTsKK+S0lSA+IGFcLXdvb2RwZWNrZXI7Civks5YgPiBmbHlpbmdcLWJpcmRzOwor5LKcID4gbG90c1wtb2ZcLWZpc2g7CivksYogPiByb2VcLW9yXC1zcGF3bjsKK+SwuCA+IHRoZVwtbmF1dGlsdXM7Civkr7YgPiBmYWlyXC1vZlwtaGFpcjsKK+SvrCA+IHRvXC1oYW5nXC1kb3duOwor5K+nID4gYVwtc21hbGxcLWhhbGw7Civkrp8gPiBiaWdcLWFuZFwtdGFsbDsKK+SukSA+IGFcLWdyYXlcLWhvcnNlOwor5K2YID4gd2VsbFwtc3RhY2tlZDsKK+StlyA+IHdlbGxcLXN0YWNrZWQ7CivkrZYgPiBhbmltYWxcLWZlZWRzOwor5K2KID4gd2VsbFwtc3RhY2tlZDsKK+StiSA+IG1hc2hlZFwtYmVhbnM7CivkrJwgPiBldmlsXC1zcGlyaXRzOwor5KyaID4gdG9cLW1vdmVcLWZhc3Q7CivkrIsgPiB2aW9sZW50XC13aW5kOwor5KuoID4gdGFsbFwtYW5kXC1iaWc7Civkq5ogPiBzaG9ydFwtaGVhZGVkOwor5KuZID4gdGhlXC1mb3JlaGVhZDsKK+SrlSA+IHNtYWxsXC1oZWFkZWQ7Civkq4cgPiB0aGVcLXdoaXNrZXJzOwor5Kq5ID4gYVwtbGFyZ2VcLWZhY2U7CivkqrAgPiBpbnRlcmplY3Rpb247CivkqqEgPiB0b1wtZmFsbFwtZG93bjsKK+SqiyA+IHNpbGtcLWNvcmRhZ2U7CivkqY8gPiBhXC1zbWFsbFwtZmFjZTsKK+SpiyA+IGFcLWdyZWVuXC1mYWNlOwor5KmKID4gZ29vZFwtbG9va2luZzsKK+SphyA+IGFcLXNtYWxsXC1oZWFkOwor5Ki2ID4gdGh1bmRlcnN0b3JtOwor5KiyID4gYVwtc21hbGxcLWhhcmU7CivkqKogPiBhXC1kdXN0XC1zdG9ybTsKK+SonSA+IGFcLXB1cmVcLXdvbWFuOwor5KiIID4gYVwtc21hbGxcLWJpcmQ7Civkp6wgPiB3YXRlcicnc1wtZWRnZTsKK+SnoiA+IGFcLXJvdWdoXC1yb2FkOwor5KeZID4gYVwtaGlnaFwtbW91bmQ7CivkpYMgPiBhXC1iaWdcLWhhbW1lcjsKK+SkrCA+IGFcLXNtYWxsXC1nb25nOwor5KSmID4gYVwtYmF0dGxlXC1heGU7CivkpKMgPiBhXC1tZXRhbFwtcmluZzsKK+SkiyA+IHllbGxvd1wtZmFjZWQ7Civko78gPiB0b1wtZW50ZXJ0YWluOwor5KO+ID4gY2hlZXNlXC1kcmVnczsKK+SjvCA+IG1peGVkXC1zdGFyY2g7CivkoJQgPiBmYXJcLWFuZFwtZGVlcDsKK+SfvyA+IHRvXC1yZXZlcmVuY2U7Civkn7kgPiB0b1wtaG9wXC1hYm91dDsKK+SflSA+IHRvXC1zdGVwXC11cG9uOwor5J6xID4gdG9cLWZhbGxcLW92ZXI7CivknqcgPiBoYXJkXC10b1wtd2FsazsKK+ScqSA+IHRvXC1lbnRlcnRhaW47CivkmqogPiBjdXJ2ZWRcLWhvcm5zOwor5JiEID4gY2ljYWRhXC1mYW1peTsKK+SYgCA+IGdyYXNzaG9wcGVyczsKK+SXsCA+IHNwaXJhbFwtc2hlbGw7Civkl6cgPiBsaWJlbGx1bGlkYWU7Civklp4gPiBhXC1zZWFcLWluc2VjdDsKK+SVuyA+IHRvXC1hZGhlcmVcLXRvOwor5JW6ID4gZGVuc2VcLWdyb3d0aDsKK+SVnSA+IG1lZGljYWxcLWhlcmI7CivklYsgPiBvZlwtZWxtXC1ncm91cDsKK+STryA+IHdhdGVyXC1wZXBwZXI7Civkkb0gPiBhXC1sYXJnZVwtYm9hdDsKK+SRtSA+IGFcLXNtYWxsXC1ib2F0Owor5JCFID4gdGhlXC1idXR0b2NrczsKK+SQgSA+IHRoZVwtYnV0dG9ja3M7Civkj5cgPiB1bmV4cGVjdGVkbHk7Civkj5AgPiB0aGVcLWJ1dHRvY2tzOwor5I+NID4gYVwtc21hbGxcLXdvcm07Civkj4AgPiBpbmhhcm1vbmlvdXM7CivkjpggPiBiaXJkc1wtZmx5aW5nOwor5I6VID4gZmx5aW5nXC1iaXJkczsKK+SNhCA+IGFuXC1pbmRlbnR1cmU7CivkjLYgPiBcKVwtYmxhY2tcLXNpbGs7CivkjIcgPiBhXC10aGlja1wtcm9wZTsKK+SMhiA+IHNpbGtcLWZhYnJpY3M7CivkioUgPiB0b1wtc29ha1wtcmljZTsKK+SJryA+IGRyaWVkXC1iYW1ib287CivkiZUgPiBhXC1iYW1ib29cLWhhdDsKK+SJlCA+IGJhbWJvb1wtc2xpcHM7CivkiJ8gPiBicm9rZW5cLXNvdW5kOwor5Ie4ID4gYVwtYmFtYm9vXC1tYXQ7Civkh50gPiB0b1wtYnJlYWtcLW9mZjsKK+SHnCA+IHNtYWxsXC1iYW1ib287CivkhqwgPiB0b1wtZmFsbFwtZG93bjsKK+SGoiA+IHRvXC1wZW5ldHJhdGU7Civkhp8gPiBjb3Jlc3BvbmRpbmc7Civkho0gPiBjdXR0ZWRcLWNyb3BzOwor5IWBID4gdG9cLWh1c2tcLXJpY2U7Civkg7IgPiBhXC1ncmVhdFwtcm9jazsKK+SDryA+IHNtYWxsXC1zdG9uZXM7Civkg50gPiBydWdnZWRcLXJvY2tzOwor5IONID4gdG9cLWZhbGxcLWRvd247CivkgpAgPiBzaG9ydFwtc3R1cGlkOwor5IGnID4gdG9cLW9wZW5cLXdpZGU7CivkgaAgPiB0b1wtaGFuZ1wtZG93bjsKK+SAgSA+IGFcLXNtYWxsXC1ib3dsOwor47+9ID4gYVwtc21hbGxcLWJvd2w7Civjv7UgPiBzb2Z0XC1sZWF0aGVyOwor47+yID4gYVwtZmllcmNlXC1kb2c7Civjv6ogPiBza2luXC1kaXNlYXNlOwor47+oID4gc21hbGxcLXN0b25lczsKK+O/iiA+IHZlcnlcLXBhaW5mdWw7CivjvpQgPiBsb25nXC1pbGxuZXNzOwor47yLID4gdGhlXC1jdWN1bWJlcjsKK+O6liA+IGRvZ3NcLWJhcmtpbmc7Civjuo4gPiBmaWVyY2VcLWJlYXN0Owor47m/ID4gYVwtZmllcmNlXC1kb2c7CivjuaogPiBhXC1maWVyY2VcLWRvZzsKK+O4viA+IHRvXC1maWxsZWRcLXVwOwor47itID4gdGhlXC1vcHBvc2l0ZTsKK+O4mCA+IHRlblwtdGhvdXNhbmQ7Civjt7kgPiBpbnRlbnNlXC1oZWF0Owor47aVID4gdG9cLXdhc2hcLXJpY2U7CivjtYogPiBtb3ZpbmdcLWltYWdlOwor47SVID4gdG9cLWJvaWxcLWF3YXk7CivjtJMgPiB0b1wtd2FzaFwtcmljZTsKK+OzniA+IGRlZXBcLWFuZFwtZmFyOwor47ORID4gdG9cLWZsb3dcLW92ZXI7CivjsLcgPiByZXN1cnJlY3Rpb247Civjr6wgPiBhY2hpZXZlbWVudHM7Civjr6AgPiBhXC1jcm9zc1wtYmVhbTsKK+OvnCA+IGRlY2F5ZWRcLXdvb2Q7Civjrq4gPiBhXC13ZWxsXC1zd2VlcDsKK+OurCA+IGFcLWZydWl0XC10cmVlOwor466qID4gYVwtc21hbGxcLWJvYXQ7Civjro8gPiBhXC1mcnVpdFwtdHJlZTsKK+OtqyA+IGFcLWZydWl0XC10cmVlOwor46y1ID4gdGhlXC1zaGluYm9uZTsKK+OrkiA+IGhhbmRzXC1qb2luZWQ7Civjq4MgPiBmbGFnc1wtZmx5aW5nOwor46uBID4gdG9cLWN1dFwtYXBhcnQ7CivjqK0gPiB1bnJlYXNvbmFibGU7Civjp7QgPiB0b1wtcnViXC1oYW5kczsKK+OnoiA+IHRvXC1kZXBlbmRcLW9uOwor46awID4gdG9cLWJyZWFrXC1vZmY7CivjpqYgPiBhcHByZWhlbnNpdmU7CivvppsgPiBzbWVsdFwtbWV0YWxzOwor46aOID4gY2FudGFua2Vyb3VzOwor46W1ID4gdG9cLWRpc2hvbm91cjsKK++lqyA+IHRha2VcLXBhcnRcLWluOwor46WgID4gaW50ZWxsaWdlbmNlOwor46SzID4gdG9cLWRlcGVuZFwtb247CivjpKcgPiBjb25jaWxpYXRpb247CivjpJ4gPiBkaXNhcHBvaW50ZWQ7CivvpJEgPiBzcGlyYWxcLXNoZWxsOwor46OSID4gaGFpclwtcmFpc2luZzsKK+OjkSA+IGRvdWJsZVwtaW1hZ2U7CivjopcgPiBhXC1oaWdoXC1ob3VzZTsKK+OhlCA+IG9pbGVkXC1jYWxpY287CivjoYUgPiBzdG9yYWdlXC1yb29tOwor46C+ID4gYVwtZGlzaFwtY2xvdGg7CivjoL0gPiBhXC1kaXNoXC1jbG90aDsKK+OgkiA+IG1vdW50YWluXC10b3A7Civjn70gPiBtb3VudGFpblwtdG9wOwor45+6ID4gbW91bnRhaW5cLXRvcDsKK+OfkCA+IGJpZ1wtYW5kXC1oaWdoOwor45+HID4gYVwtbGFuZFwtc2xpZGU7CivjnqIgPiB0b1wtYXJyaXZlXC1hdDsKK+OemyA+IHJlZFwtc2xpcHBlcnM7CivjnpMgPiB0aGVcLWJ1dHRvY2tzOwor456FID4gbm90XC1zdHJhaWdodDsKK+OclyA+IGNvdmV0b3VzbmVzczsKK+ObvCA+IHRvXC1pbnRlcnJ1cHQ7Civjm6UgPiB0b1wtcHJvc3RyYXRlOwor45uKID4gdG9cLXNwZWN1bGF0ZTsKK+ObhiA+IHRvXC1zcGVjdWxhdGU7CivjmKIgPiBhXC1yb3VuZFwtY2F2ZTsKK+OYjSA+IHNvdW5kXC1vZlwtcmF0Owor45eSID4gaW50ZXJqZWN0aW9uOwor45a3ID4gYmlyZFwtc2luZ2luZzsKK+OWoCA+IGFuXC1hdXhpbGlhcnk7Civjla8gPiBzbG93XC10b25ndWVkOwor45WSID4gYVwtbG9mdHlcLXBlYWs7CivjlYMgPiB0b1wtZmFsbFwtb3ZlcjsKK+OUrCA+IHRvXC1lc3RhYmxpc2g7CivjlKYgPiB0b1wtZW5jb3VyYWdlOwor45SVID4gd2l0aFwtcHVycG9zZTsKK+OUjiA+IHRvXC1jdXRcLWFwYXJ0Owor45SDID4gdG9cLWN1dFwtc2hvcnQ7Civjk6MgPiB0b1wtc2lua1wtaW50bzsKK+ORqiA+IGFcLWdlbmVyYXRpb247CivjkaQgPiBnb29kXC1sb29raW5nOwor45GUID4gYWxsXC10b2dldGhlcjsKK+OQuCA+IHRvXC1vd25cLW1vbmV5Owor45C0ID4gdG9cLWRyYWdcLWRvd247Civku6UgPiBieVwtbWVhbnNcLW9mOwor6L6yID4gYWdyaWN1bHR1cmU7CivlvoQgPiBuYXJyb3dcLXBhdGg7Civlh6AgPiBzbWFsbFwtdGFibGU7Civkvr8gPiBjb252ZW5pZW5jZTsKK+eUtSA+IGVsZWN0cmljaXR5Owor55m+ID4gb25lXC1odW5kcmVkOwor6LejID4gYmFyZVwtZm9vdGVkOwor6LSFID4gdW5uZWNlc3Nhcnk7Civlip8gPiBhY2hpZXZlbWVudDsKK+axnyA+IGxhcmdlXC1yaXZlcjsKK+azqCA+IGNvbmNlbnRyYXRlOwor54mnID4gdGVuZFwtY2F0dGxlOwor5amaID4gZ2V0XC1tYXJyaWVkOwor5YiKID4gcHVibGljYXRpb247CivlhpwgPiBhZ3JpY3VsdHVyZTsKK+eGnyA+IHdlbGxcLWNvb2tlZDsKK+mlrSA+IGNvb2tlZFwtcmljZTsKK+WloiA+IGV4dHJhdmFnYW50Owor5p+lID4gaW52ZXN0aWdhdGU7Civnq6AgPiBjb21wb3NpdGlvbjsKK+aMiSA+IHB1dFwtaGFuZFwtb247CivonaAgPiBraW5kXC1vZlwtYmF0Owor6J2VID4gbmliYmxlXC1hd2F5Owor5ZuwID4gdG9cLXN1cnJvdW5kOwor6ZmpID4gbmFycm93XC1wYXNzOwor57uDID4gdG9cLXByYWN0aWNlOwor5rqvID4gZ29cLXVwc3RyZWFtOwor5riJID4gZm9yZFwtc3RyZWFtOwor6LSlID4gYmVcLWRlZmVhdGVkOwor57q3ID4gaW5cLWRpc29yZGVyOwor57y6ID4gYmVcLXNob3J0XC1vZjsKK+mBrSA+IGNvbWVcLWFjcm9zczsKK+aItCA+IHdlYXJcLW9uXC10b3A7Civli6QgPiBpbmR1c3RyaW91czsKK+WLmCA+IGludmVzdGlnYXRlOwor6auEID4gYm9uZVwtbWFycm93Owor5Yq5ID4gZWZmaWNhY2lvdXM7CivosowgPiBjb3VudGVuYW5jZTsKK+e5gSA+IGNvbXBsaWNhdGVkOwor5p+zID4gd2lsbG93XC10cmVlOwor5YeEID4gYml0dGVyXC1jb2xkOwor5raJID4gZm9yZFwtc3RyZWFtOwor6ZyeID4gcm9zeVwtY2xvdWRzOwor6aO0ID4gc3dlZXRcLW1lYXRzOwor6aOvID4gY29va2VkXC1yaWNlOwor6IGqID4gaW50ZWxsaWdlbnQ7CivlgKYgPiBiZVwtdGlyZWRcLW9mOwor5pGUID4gZmFsbFwtZ3JvdW5kOwor6YaJID4gaW50b3hpY2F0ZWQ7Civmn7sgPiBpbnZlc3RpZ2F0ZTsKK+a2myA+IGxhcmdlXC13YXZlczsKK+mUhSA+IGNvb2tpbmdcLXBvdDsKK+S7lCA+IHNtYWxsXC10aGluZzsKK+acgyA+IHRvXC1hc3NlbWJsZTsKK+mbuyA+IGVsZWN0cmljaXR5Owor5ouGID4gdG9cLWJyZWFrXC11cDsKK+e/oCA+IGNvbG9yXC1ncmVlbjsKK+maqiA+IG5hcnJvd1wtcGFzczsKK+aZlSA+IGhhbG9cLWluXC1za3k7CivpmbogPiBuYXJyb3dcLXBhc3M7CivnuqAgPiBpbnZlc3RpZ2F0ZTsKK+WkuCA+IGV4dHJhdmFnYW50Owor6L6oID4gZGlzdGluZ3Vpc2g7CivokZsgPiBlZGlibGVcLWJlYW47Civovb8gPiBzZWRhblwtY2hhaXI7CivmlZcgPiBiZVwtZGVmZWF0ZWQ7CivmlKsgPiBzbmF0Y2hcLWF3YXk7CivntJsgPiBpblwtZGlzb3JkZXI7CivpjZsgPiBmb3JnZVwtbWV0YWw7CivljpUgPiBtaW5nbGVcLXdpdGg7CivpjYsgPiBjb29raW5nXC1wb3Q7Civnq78gPiBiYW1ib29cLXBvbGU7CivliLggPiBjZXJ0aWZpY2F0ZTsKK+epiSA+IHlvdW5nXC1ncmFpbjsKK+mpsyA+IHZhcmljb2xvcmVkOwor5oaUID4gYmVcLXdvcm5cLW91dDsKK+eyniA+IGdyb3VuZFwtcmljZTsKK+mFlCA+IGludG94aWNhdGVkOwor6YGCID4gY29tcGx5XC13aXRoOwor6Zq2ID4gc3Vic2VydmllbnQ7CivnvLggPiBlYXJ0aGVuXC1qdWc7CivogqIgPiBodW1hblwtbGltYnM7CivlsLQgPiBlbWJhcnJhc3NlZDsKK+WRkCA+IHJhaXNlXC12b2ljZTsKK+miliA+IHJpY2VcLXRhc3NlbDsKK+egpSA+IGFcLXdoZXRzdG9uZTsKK+WtlSA+IGJlXC1wcmVnbmFudDsKK+mSniA+IHBhcGVyXC1tb25leTsKK+WeriA+IGJlXC1kZWZlYXRlZDsKK+eQoiA+IHBvbGlzaFwtamFkZTsKK+e7vSA+IHJpcHBlZFwtc2VhbTsKK+WloCA+IHBheVwtcmVzcGVjdDsKK+a+nCA+IG92ZXJmbG93aW5nOwor5oOVID4gYmVcLWNhdXRpb3VzOwor6ZS7ID4gZm9yZ2VcLW1ldGFsOwor6JqAID4gbmliYmxlXC1hd2F5Owor6La0ID4gbHlpbmdcLXByb25lOwor56qYID4gZW1iYXJyYXNzZWQ7CivpmosgPiBzdWlcLWR5bmFzdHk7CivnnoQgPiB0YWtlXC1haW1cLWF0Owor56WfID4gZXZpbFwtc3Bpcml0Owor5ZeUID4gYmVcLWFuZ3J5XC1hdDsKK+WllSA+IGluXC1zZXF1ZW5jZTsKK+amtCA+IHBvbWVncmFuYXRlOwor5qOYID4ganVqdWJlXC10cmVlOwor5bOZID4gc3RhbmRcLWVyZWN0Owor56CMID4gc3RvbmVcLXN0ZXBzOwor5qeQID4gbG9jdXN0XC10cmVlOwor6bOeID4gZmlzaFwtc2NhbGVzOwor5oO6ID4gaW50ZWxsaWdlbnQ7Civpq5MgPiBib25lXC1tYXJyb3c7Civngr0gPiBidXJuaW5nXC1ob3Q7Civov4IgPiBkb2N0cmluYWlyZTsKK+e8qiA+IHdpbmRcLWFyb3VuZDsKK+WHiyA+IGJlXC13aXRoZXJlZDsKK+e8pCA+IGZsb3VyaXNoaW5nOwor6ZuzID4gdGh1bmRlcmNsYXA7CivotZggPiB1bm5lY2Vzc2FyeTsKK+mpuCA+IGV4dHJhXC1ob3JzZTsKK+WXtyA+IGxvdWRcLWNsYW1vcjsKK+eCliA+IHN0ZXdcLXNsb3dseTsKK+iwjyA+IHJlbW9uc3RyYXRlOwor56+GID4gc2VhbFwtc2NyaXB0Owor5a6mID4gb2ZmaWNpYWxkb207Civnk64gPiBlYXJ0aGVuXC1qYXI7CivmnJUgPiBwcm9ub3VuXC0nJ2knJzsKK+mYkSA+IGRvb3JcLXNjcmVlbjsKK+WNpCA+IHNhbGluZVwtc29pbDsKK+WUjyA+IHdlZXBcLW9yXC1zb2I7CivmsakgPiBydW5cLXN3aWZ0bHk7CivmppUgPiBiYW55YW5cLXRyZWU7Civpl7AgPiBpbnRlcmNhbGFyeTsKK+aYiiA+IHN1bW1lclwtdGltZTsKK+eOtyA+IGZsYXdcLWluXC1nZW07CivpmJkgPiB3YXRjaFwtdG93ZXI7CivnkZUgPiBmbGF3XC1pblwtZ2VtOwor5rOMID4gdG9cLXNlZXBcLW91dDsKK+eDvSA+IHNpZ25hbFwtZmlyZTsKK+WttSA+IHNpdFwtb25cLWVnZ3M7CivmpK0gPiBvdmFsXC1zaGFwZWQ7Civnl4kgPiBjb252dWxzaW9uczsKK+WMnSA+IGZ1bGxcLWNpcmNsZTsKK+mlqiA+IGNvb2tlZFwtZm9vZDsKK+W2mSA+IHByZWNpcGl0b3VzOwor6aKnID4gY2hlZWtcLWJvbmVzOwor6ZWXID4gYm9yaW5nXC10b29sOwor5o+2ID4gbWFrZVwtZnVuXC1vZjsKK+eCtyA+IGNhbmRsZVwtd2ljazsKK+i0siA+IGZvcmdlXC1haGVhZDsKK+iasSA+IGdyYXNzaG9wcGVyOwor55eoID4gY29uc3VtcHRpb247Civmv4IgPiBhXC13YXRlcmZhbGw7CivmsZAgPiBuaWdodFwtdGlkZXM7CivnraAgPiBiYW1ib29cLXNraW47CivmsKQgPiBoYW5naW5nXC1mb2c7Civnl5QgPiBoZW1vcnJob2lkczsKK+i2vyA+IHRvXC10cmVhZFwtb247Civop54gPiB3aW5lXC12ZXNzZWw7CivmjLkgPiB0b1wtYmFsZVwtb3V0Owor6IaRID4gdGhlXC1rbmVlY2FwOwor5b6HID4gY29tcGx5XC13aXRoOwor5ZSzID4gY3J5XC1vZlwtYmlyZDsKK+ekhSA+IHN0b25lXC1ibG9jazsKK+eulCA+IHJlZWRcLXNjcmVlbjsKK+ixuCA+IHJhZGljYWxcLTE1MzsKK+a7nyA+IG92ZXJmbG93aW5nOwor54ODID4gaHlkcm9jYXJib247CivnoK0gPiBzdG9uZVwtcHJvYmU7Civmvo0gPiB0aW1lbHlcLXJhaW47CivpvosgPiB0b290aFwtZGVjYXk7CivnvLEgPiBhdHRhY2hlZFwtdG87CivlpYIgPiBiZVwtbnVtZXJvdXM7Civpu6kgPiB0b1wtZGlzaG9ub3I7CivppbQgPiBzd2VldFwtbWVhdHM7Civlo4UgPiB0b1wtb2JzdHJ1Y3Q7CivmvrYgPiBzdGlsbFwtd2F0ZXI7CivppI0gPiBiZVwtc2F0aWF0ZWQ7CivmnqUgPiB0eXBlXC1vZlwtb2FrOwor6JyiID4gZ3Jhc3Nob3BwZXI7CivnhYUgPiBmb3JnZVwtbWV0YWw7CivmoZUgPiB0YWxsb3dcLXRyZWU7CivpsqIgPiBzaWx2ZXJcLWNhcnA7CivotrEgPiBnb1wtaW5cLWh1cnJ5Owor5aarID4gZmFtaWx5XC1uYW1lOwor5pq+ID4gbW9ybmluZ1wtc3VuOwor6I2mID4gYnJpbmRsZWRcLW94Owor6YKbID4gaW5cLWRpc3RyZXNzOwor5oiiID4gdG9cLXB1dFwtYXdheTsKK+ampyA+IHR5cGVcLW9mXC15ZXc7CivloIcgPiB5ZWxsb3dcLWxvYW07CivliqwgPiBiZVwtZGlsaWdlbnQ7CivprYggPiBtaXNjaGV2aW91czsKK+mNqiA+IGFuXC1pcm9uXC1wYW47CivonKMgPiBkdW5nXC1iZWV0bGU7Civnl6YgPiBcKGZsYXRcKVwtbW9sZTsKK+aIrCA+IGV4dGVybWluYXRlOwor5ZeJID4gYmlyZCcnc1wtY3JvcDsKK+WEiyA+IGFcLXNtYWxsXC1qYXI7CivompwgPiBwbGFudFwtbG91c2U7CivnspwgPiBzZWxsXC1ncmFpbnM7CivmlK4gPiB0b1wtZmVuZFwtb2ZmOwor6IuOID4gY2hpbmFcLWdyYXNzOwor5Z+VID4gZWFydGhlblwtamFyOwor5Z2pID4gZWFydGhlbndhcmU7CivmpokgPiB0eXBlXC1vZlwtZWxtOwor546iID4gcG9ycGh5cml0ZXM7Civnu4EgPiB0b1wtY29udHJhY3Q7CivmvYYgPiB0aW55XC1zdHJlYW07Civpq7kgPiByZWRcLWxhY3F1ZXI7Civop5YgPiB0b1wtbG9uZ1wtZm9yOwor6J61ID4gYVwtY2hyeXNhbGlzOwor5p2qID4gdGlwXC1vZlwtdHdpZzsKK+W5giA+IGNvdmVyXC1jbG90aDsKK+ehlyA+IGJhcnJlblwtbGFuZDsKK+iEniA+IG1pbmNlZFwtbWVhdDsKK+i9tSA+IGVuZFwtb2ZcLWF4bGU7CivmpZcgPiBiYXJcLW9mXC1kb29yOwor5qGEID4gYVwtY29pclwtcGFsbTsKK+WgoCA+IGJhdHRsZW1lbnRzOwor5L+cID4gdG9cLXRydXN0XC10bzsKK+m9siA+IHRvb3RoXC1kZWNheTsKK+m7tyA+IHRvXC1kaXNob25vcjsKK+m6gCA+IGZlbWFsZVwtZGVlcjsKK+m5tSA+IHNhbGluZVwtc29pbDsKK+m4jyA+IHRyb3BpY1wtYmlyZDsKK+m0uiA+IHRoZVwtcGVsaWNhbjsKK+mxoCA+IG1pbmNlZFwtZmlzaDsKK+mxlyA+IGZpc2hcLXNjYWxlczsKK+mwsSA+IHNpbHZlclwtY2FycDsKK+msmSA+IG1hdHRlZFwtaGFpcjsKK+mplCA+IGJsYWNrXC1ob3JzZTsKK+mphyA+IGhlYXZ5XC1ob3JzZTsKK+mouiA+IGhlYXZ5XC1ob3JzZTsKK+mnmSA+IGV4dHJhXC1ob3JzZTsKK+mngSA+IHZhcmljb2xvcmVkOwor6aWcID4gYmVcLXNhdGlhdGVkOwor6aSBID4gY29va2VkXC1mb29kOwor6aOqID4gY29va2VkXC1mb29kOwor6aG0ID4gY2hlZWtcLWJvbmVzOwor6aGmID4gYmVcLXdvcm5cLW91dDsKK+mhhyA+IGJlXC13b3JuXC1vdXQ7CivpoLQgPiByaWNlXC10YXNzZWw7CivpoIsgPiB0b1wtY2FyZVwtZm9yOwor6Z6rID4gaW50ZXJyb2dhdGU7CivpnYIgPiB0aHVuZGVyY2xhcDsKK+maiSA+IGluXC1kaXNvcmRlcjsKK+mYqCA+IGluXC1kaXN0cmVzczsKK+mXlSA+IHdhdGNoXC10b3dlcjsKK+mXjCA+IGRvb3JcLXNjcmVlbjsKK+mWoCA+IGludGVyY2FsYXJ5Owor6ZaPID4gaW50ZXJjYWxhcnk7CivpkKYgPiBjYWxpZm9ybml1bTsKK+mPuyA+IHBob3NwaG9uaXVtOwor6Y+cID4gYm9yaW5nXC10b29sOwor6Y6QID4gZmFtaWx5XC1uYW1lOwor6Y2QID4gYVwtaGVhZHN0YWxsOwor6YiUID4gcGFwZXJcLW1vbmV5Owor6YeGID4gZGlzdGluZ3Vpc2g7CivphrkgPiBzdHJvbmdcLXdpbmU7CivphrIgPiBzdHJvbmdcLXdpbmU7CivphpMgPiBzYWx0ZWRcLW1lYXQ7CivphY8gPiBtaWxsZXRcLXdpbmU7CivpgbkgPiBjb21wbHlcLXdpdGg7CivpgaEgPiBnb1wtdXBzdHJlYW07Civov4ogPiB0b1wtZ29cLXJvdW5kOwor6L2OID4gc2VkYW5cLWNoYWlyOwor6L2HID4gY29tcGxpY2F0ZWQ7CivovKYgPiBhXC1oYW5kXC1jYXJ0Owor6Lu5ID4gZW5kXC1vZlwtYXhsZTsKK+i5uSA+IHRvXC10cmVhZFwtb247CivoubUgPiB0b1wtdHJlYWRcLW9uOwor6LayID4gZ29cLWluXC1odXJyeTsKK+i0lyA+IGNvdW50ZXJmZWl0Owor6LOBID4gZm9yZ2VcLWFoZWFkOwor6LKYID4gdGhlXC1wYW50aGVyOwor6LGmID4gYVwtd2lsZFwtYm9hcjsKK+ixmCA+IGFcLXNtYWxsXC1waWc7Civoq6sgPiByZW1vbnN0cmF0ZTsKK+irjCA+IHJlbW9uc3RyYXRlOwor6Ke0ID4gd2luZVwtdmVzc2VsOwor6KexID4gdGFydGFyXC1ob3JuOwor6KaIID4gaW52ZXN0aWdhdGU7CivopLUgPiBicmlkYWxcLXZlaWw7CivooJwgPiBncmFzc2hvcHBlcjsKK+igiyA+IGNhdGVycGlsbGFyOwor6J+bID4gYVwtbGFuZFwtY3JhYjsKK+idmyA+IHRoZVwtc293XC1idWc7CivonY0gPiBhXC1jZW50aXBlZGU7Civom5MgPiBjYXRlcnBpbGxhcjsKK+iXmiA+IHdhdGVyXC1wbGFudDsKK+iXhCA+IGVkaWJsZVwtZmVybjsKK+iTqiA+IHBhcGVyXC1wbGFudDsKK+iTgiA+IGx1Y2t5XC1wbGFjZTsKK+iSrSA+IHRvXC1jdXRncmFzczsKK+iQkCA+IGx1Y2t5XC1wbGFudDsKK+iPoiA+IHRvXC1pbmN1YmF0ZTsKK+iLpyA+IGNoaW5hXC1ncmFzczsKK+iJlyA+IGJvd1wtb2ZcLWp1bms7Civoh48gPiB0aGVcLWtuZWVjYXA7Civog74gPiBtaW5jZWRcLW1lYXQ7Civog5QgPiByb3R0ZW5cLW1lYXQ7CivogoggPiB0b1wtY29tbWVuY2U7CivogbAgPiBpbnRlbGxpZ2VudDsKK+iBpiA+IHRoZVwtaGVhcmluZzsKK+iBoSA+IGludGVsbGlnZW50Owor6ICRID4gc3BlY2lhbGl6ZWQ7Civnv4YgPiBjb2xvclwtZ3JlZW47CivnvpYgPiBhXC1ibGFja1wtcmFtOwor576DID4gY292ZXJcLWNsb3RoOwor572xID4gZmlzaGluZ1wtbmV0Owor572gID4gYW5pbWFsXC10cmFwOwor572SID4gcmFkaWNhbFwtMTIyOwor572LID4gZWFydGhlblwtamFyOwor57m+ID4gYXR0YWNoZWRcLXRvOwor57m9ID4gZmxvdXJpc2hpbmc7CivnuYYgPiB3aW5kXC1hcm91bmQ7CivntrsgPiByaXBwZWRcLXNlYW07Civns74gPiBpbnZlc3RpZ2F0ZTsKK+eztiA+IHNlbGxcLWdyYWluczsKK+ezoiA+IHJpY2VcLXNuYWNrczsKK+ewuSA+IHRhbGxcLWJhbWJvbzsKK+ewtSA+IGZpbmVcLWJhbWJvbzsKK+ewsCA+IGJhbWJvb1wtcmFmdDsKK+evlCA+IHRhbGxcLWJhbWJvbzsKK+eumCA+IGZpbmVcLWJhbWJvbzsKK+etqSA+IGJhbWJvb1wtcGlwZTsKK+etiiA+IGJhbWJvb1wtcm9wZTsKK+ethyA+IGJhbWJvb1wtbmFtZTsKK+esryA+IGFcLWJpcmRcLWNhZ2U7CivnqrggPiBmYWludFwtc291bmQ7CivnqbUgPiBkZWVwXC1ob2xsb3c7CivnqY4gPiByaWNlXC10YXNzZWw7Civno70gPiBiYXJyZW5cLWxhbmQ7Civno7kgPiBzdG9uZVwtd2VkZ2U7CivnopQgPiBcLzJcLXByXC1zdG9uZTsKK+eghiA+IFwvMlwtcHJcLXN0b25lOwor56CDID4gd2hpdGVcLXN0b25lOwor5561ID4gdG9cLXN0YXJlXC1hdDsKK+edoCA+IHRvXC1jYXJlXC1mb3I7CivnnY4gPiB0b1wtbG9uZ1wtZm9yOwor55ylID4gZXllXC1zb2NrZXRzOwor55yRID4gc3Vua2VuXC1leWVzOwor55yKID4gZGltXC1zaWdodGVkOwor55qDID4gY291bnRlbmFuY2U7CivnmYYgPiBjb25zdW1wdGlvbjsKK+eYmiA+IHRvXC1oaWNjb3VnaDsKK+eXsyA+IHBvY2tcLW1hcmtlZDsKK+eXsiA+IHBvY2tcLW1hcmtlZDsKK+eXrSA+IG1lbm9ycmhhZ2lhOwor55eZID4gY29udnVsc2lvbnM7Civnl4MgPiBpbmRpZ2VzdGlvbjsKK+eUlSA+IGVhcnRoZW5cLWphcjsKK+ePvSA+IGphZGVcLXRhYmxldDsKK+eOlyA+IFwvMlwtcHJcLXN0b25lOwor542PID4gdGhlXC1wYW50aGVyOwor54uiID4gYW5pbWFsXC1uYW1lOwor54qWID4gYnJpbmRsZWRcLW94Owor54eWID4gcmVoZWF0XC1mb29kOwor54a+ID4gYnVybmluZ1wtaG90Owor54WfID4gYnJpZ2h0XC1yb29tOwor54WPID4gZHJ5XC1ieVwtZmlyZTsKK+eFhiA+IHJhZ2luZ1wtZmlyZTsKK+eDtCA+IGh5ZHJvY2FyYm9uOwor54GpID4gb3ZlcmZsb3dpbmc7CivngacgPiBvdmVyZmxvd2luZzsKK+eAviA+IG92ZXJmbG93aW5nOwor54CgID4gdGlueVwtc3RyZWFtOwor5r+kID4gbGFyZ2VcLXdhdmVzOwor5r6wID4gb3ZlcmZsb3dpbmc7Civmvb8gPiBzdGlsbFwtd2F0ZXI7Civmvb4gPiBjbGVhclwtd2F0ZXI7CivmvaAgPiB0b1wtYmxvd1wtb3V0Owor5ru3ID4gdGhpY2tcLWdyYXZ5Owor5rmcID4gdHJhbnNwYXJlbnQ7CivmuJ8gPiBub3RcLWZsb3dpbmc7Civmt5IgPiBiaXR0ZXJcLWNvbGQ7CivmtqAgPiBzdGlsbFwtd2F0ZXI7CivmtaEgPiBidXJzdFwtZm9ydGg7Civms50gPiBnb1wtdXBzdHJlYW07CivmsrAgPiB0b1wtbGV0XC1kcm9wOwor5q6wID4gYW5cLWFib3J0aW9uOwor5qyuID4gdG9cLWhpY2NvdWdoOwor5qu4ID4gdHlwZVwtb2ZcLWVsbTsKK+arqiA+IHR5cGVcLW9mXC1vYWs7CivmqaIgPiBvdmFsXC1zaGFwZWQ7Civmp7IgPiB0eXBlXC1vZlwtb2FrOwor5qeiID4gYVwtaGFyZFwtd29vZDsKK+allSA+IG92YWxcLXNoYXBlZDsKK+ajryA+IGp1anViZVwtdHJlZTsKK+aimCA+IGJhbWJvb1wtdHViZTsKK+ailiA+IGFcLXBhbG1cLXRyZWU7CivmooQgPiBhXC1zb2Z0XC13b29kOwor5qCeID4gcHVibGljYXRpb247CivmoIMgPiB0eXBlXC1vZlwtb2FrOwor5p6nID4gYmFtYm9vXC10dWJlOwor5p2kID4gdHlwZVwtb2ZcLW9hazsKK+aaiCA+IGhhbG9cLWluXC1za3k7CivmmJwgPiB0b1wtb3Blblwtb3V0Owor5piJID4gYnJpZ2h0XC1kYXduOwor5pe9ID4gbW9ybmluZ1wtc3VuOwor5peJID4gdG9cLXN0YXRlXC10bzsKK+aRoSA+IHRvXC1pcnJpZ2F0ZTsKK+aRjiA+IHRvXC1zdHJhbmdsZTsKK+aMkyA+IHRvXC1vcGVuXC1vdXQ7CivmiKkgPiBleHRlcm1pbmF0ZTsKK+aFiSA+IHRvXC1icmluZ1wtdXA7CivmhJQgPiBjb21mb3J0YWJsZTsKK+W/siA+IGV4dHJhdmFnYW50Owor5b67ID4gYVwtd2lkZVwtcm9vbTsKK+W+kSA+IG5hcnJvd1wtcGF0aDsKK+W8sCA+IGVuZHNcLW9mXC1ib3c7CivluY4gPiBjb3ZlclwtY2xvdGg7CivluIAgPiB0b1wtZ29cLXJvdW5kOwor5bSqID4gcm9ja3lcLXBlYWtzOwor5bSSID4gcm9ja3lcLXBlYWtzOwor5bGwID4gZGlzb2JlZGllbnQ7CivlsZ0gPiBzdHJhd1wtc2hvZXM7CivlsLcgPiBlbWJhcnJhc3NlZDsKK+WwtiA+IGVtYmFycmFzc2VkOwor5bCcID4gYVwtY2hpbGRcLXRveTsKK+WwgyA+IHRvXC1zdGF0ZVwtdG87CivlrJQgPiBiYWJ5XC1yYWJiaXQ7Civlqq8gPiBmYW1pbHlcLW5hbWU7CivlpZMgPiBleHRyYXZhZ2FudDsKK+WlkCA+IGJlXC1udW1lcm91czsKK+WhvyA+IHNtYWxsXC1tb3VuZDsKK+WgiiA+IHdoaXRlXC1lYXJ0aDsKK+WgiCA+IGVhcnRoZW5cLWp1ZzsKK+WeniA+IHNtYWxsXC1tb3VuZDsKK+WenSA+IGRpbGFwaWRhdGVkOwor5Z6UID4gdG9cLXJlc3RyYWluOwor5Z21ID4gZWFydGhlbndhcmU7Civll7EgPiBleGNsYW1hdGlvbjsKK+WWjiA+IGFcLXdyeVwtbW91dGg7CivllLkgPiB0b1wtc21pbGVcLWF0Owor5ZKFID4gdG9cLXNwaXRcLW91dDsKK+WQtiA+IHJhaXNlXC12b2ljZTsKK+WPuyA+IHBsYWNlXC1uYW1lczsKK+WOviA+IGxpZ2h0bHlcLXRhcDsKK+WOoCA+IG1pbmdsZVwtd2l0aDsKK+WMryA+IGFcLWNvbmNvdXJzZTsKK+WLvSA+IHRvXC1pbmN1YmF0ZTsKK+WLoCA+IGpvaW5cLWZvcmNlczsKK+WKvCA+IGJlXC1kaXNjcmVldDsKK+WKtSA+IGNlcnRpZmljYXRlOwor5YmmID4gdG9cLWNhc3RyYXRlOwor5YiLID4gcHVibGljYXRpb247Civlh6kgPiB3aW50cnlcLXdpbmQ7CivlhqogPiBjb3ZlclwtY2xvdGg7CivlhaYgPiBkZXN0cnVjdGlvbjsKK+WEgSA+IG91dHN0YW5kaW5nOwor5YKPID4gdG9cLXdhcmRcLW9mZjsKK+WBoiA+IHRvXC1zdGFyZVwtYXQ7Civkv5sgPiBtYWtlXC1lZmZvcnQ7CivkvbkgPiBkZXBlbmRcLXVwb247CivkvaEgPiBtYWtlXC1lZmZvcnQ7CivktqogPiBzaGFycFwtdGVldGg7CivktbQgPiBibGFja1wtY29sb3I7CivktbMgPiBsaWdodFwtYmxhY2s7CivktbAgPiBibGFja1wtY29sb3I7CivktakgPiBkYXJrXC15ZWxsb3c7CivktaIgPiBsaWdodFwtYmxhY2s7CivktY4gPiBkYXJrXC15ZWxsb3c7CivksrsgPiB0aGVcLXN3YWxsb3c7Civksb0gPiB0aGVcLXBvbWZyZXQ7CivksbogPiBhXC1tYWxlXC1jcmFiOwor5LG2ID4gYVwtbWFsZVwtY3JhYjsKK+SxkiA+IHNhbHRlZFwtZmlzaDsKK+SvoyA+IHRoZVwta25lZWNhcDsKK+SvmCA+IHRoZVwta25lZWNhcDsKK+SumCA+IHlvdW5nXC1ob3JzZTsKK+SrsyA+IGh1bWFuXC1za3VsbDsKK+SrsCA+IHNwYXJzZVwtaGFpcjsKK+SrrSA+IGJhbGRcLWhlYWRlZDsKK+SrnCA+IHN1bmtlblwtZXllczsKK+SrhCA+IGJldHRlclwtdGhhbjsKK+SqtCA+IHRoZVwtb2NjaXB1dDsKK+SqhCA+IGdyZWF0XC1ibGF6ZTsKK+SpuyA+IHRvXC1iZVwtY2hpZWY7CivkqZwgPiBkZXNjZW5kYW50czsKK+SosSA+IHNwaWx0XC13YXRlcjsKK+SntiA+IHRvXC1jYXJlXC1mb3I7Civkp6ggPiBwcmVjaXBpdG91czsKK+SnniA+IHRvXC1pbmNyZWFzZTsKK+SnkyA+IGFcLWJpZ1wtbW91bmQ7Civkp4ogPiBhXC1iaWdcLW1vdW5kOwor5Ka3ID4gdG9cLXN0cnVnZ2xlOwor5Ka2ID4gdG9cLXN0cnVnZ2xlOwor5KafID4gdG9cLXN0cnVnZ2xlOwor5KabID4gdG9cLXN0cnVnZ2xlOwor5KaYID4gYVwtdGhyZXNob2xkOwor5KWAID4gdG9cLXB1bGxcLW91dDsKK+SkrSA+IHRvXC1vcm5hbWVudDsKK+SkhSA+IHNvdXRoZXJ3b29kOwor5KKJID4gYWdyaWN1bHR1cmU7CivkoJ0gPiB0b1wtc3RhbmRcLXVwOwor5KCNID4gYXRcLXRoZVwtZmVldDsKK+SftSA+IHRvXC10cmVhZFwtb247Civkn68gPiB0b1wtdHJlYWRcLW9uOwor5J+FID4gdG9cLWdvXC1haGVhZDsKK+SfgSA+IGFcLWZvb3RcLXJhY2U7Civknr0gPiB0b1wtbGllXC1mbGF0Owor5J6oID4gaGFsZlwtYVwtcGFjZTsKK+SepiA+IHRvXC1saWVcLWZsYXQ7CivknoogPiB0b1wtaW5jcmVhc2U7CivknoQgPiB0b1wtZGlzcGVyc2U7CivknY0gPiBhXC13aWxkXC1ib2FyOwor5J2AID4gZ2FyZGVuXC1wZWFzOwor5JywID4gZGVlcFwtdmFsbGV5Owor5JyuID4gZGVlcFwtdmFsbGV5Owor5JyXID4gYW5ncnlcLXdvcmRzOwor5JyPID4gdG9cLXdpdGhkcmF3Owor5JyGID4gaGFzdHlcLXdvcmRzOwor5JuYID4gdG9cLXRoaW5rXC1vZjsKK+SaviA+IHRvXC10aGlua1wtb2Y7CivkmrMgPiBkb1wtbm90XC1rbm93Owor5JqyID4gdG9cLWxhdWdoXC1hdDsKK+SZviA+IHRvXC13YWl0XC1mb3I7CivkmbEgPiBhXC1sb25nXC1jb2F0Owor5JmwID4gbmV3XC1mZWF0aGVyOwor5JmCID4gc2hvcnRcLXBhbnRzOwor5Ji0ID4gc2hvcnRcLXBhbnRzOwor5JeWID4gdGhlXC1yYWluYm93Owor5JW4ID4gd2hlYXRcLXN0cmF3Owor5JWjID4gd2F0ZXJcLXBsYW50Owor5JWMID4geW91bmdcLWdyYWluOwor5JS/ID4gbHVzaFwtZ3Jvd3RoOwor5JOuID4gbHVzaFwtZ3Jvd3RoOwor5JOPID4gZmxvdXJpc2hpbmc7CivkkosgPiBhaXJcLWN1cnJlbnQ7CivkkJogPiBnb29kXC1ncmFjZXM7Civkj7YgPiB0aGVcLXN0b21hY2g7Civkj5QgPiB0b1wtZWF0XC1tZWF0Owor5I+TID4gdGhlXC1zdG9tYWNoOwor5I2oID4gdG9cLWNhc3RyYXRlOwor5Iy6ID4gZmxvdXJpc2hpbmc7CivkjKogPiB0b1wtY29udGludWU7CivkjKYgPiBncmVlblwtY29sb3I7Civkiq0gPiB0b1wtb3ZlcnR1cm47CivkiqsgPiBjb2Fyc2VcLXJpY2U7CivkiqIgPiB0aGlja1wtZmx1aWQ7CivkipMgPiB0b1wtcGFzdGVcLXVwOwor5ImdID4gYmFtYm9vXC13YXJlOwor5ImKID4gYmFtYm9vXC13YXJlOwor5Ii4ID4gYVwtYmlnXC1jaGVzdDsKK+SIgCA+IGJhbWJvb1wtd2FyZTsKK+SHlSA+IHRvXC13YWl0XC1mb3I7Civkh5MgPiB0b1wtd2FpdFwtZm9yOwor5IeDID4gdG9cLXdhaXRcLWZvcjsKK+SGsyA+IGZhclwtZGlzdGFudDsKK+SGmCA+IGFjdXB1bmN0dXJlOwor5IaWID4gYVwtYmlnXC1ob3VzZTsKK+SFuyA+IG1lYXN1cmVtZW50Owor5IWEID4gbG9uZ1wtZ3JhaW5zOwor5IS9ID4gY29tbW9uXC1yaWNlOwor5ISEID4gYWNoaWV2ZW1lbnQ7Civkg60gPiBhXC1zdG9uZVwtYm94Owor5IKxID4gdG9cLXdlYXJcLW91dDsKK+SCpCA+IHdoaXRlXC1zdG9uZTsKK+SCoSA+IGFcLXdoZXRzdG9uZTsKK+SCkyA+IHJlZ3VsYXRpb25zOwor5IG7ID4gcHJldHR5XC1leWVzOwor5IG3ID4gYnJpZ2h0XC1leWVzOwor5IGxID4gaG9sbG93XC1leWVkOwor5IGRID4gcHJldHR5XC1leWVzOwor5ICmID4gdG9cLXN0YXJlXC1hdDsKK+SAgiA+IGFcLWJpZ1wtYmFzaW47Civjv6MgPiB3aGl0ZVwtY29sb3I7Civjv5ggPiB0b1wtZ2V0XC1zaWNrOwor4766ID4gZXllXC1kaXNlYXNlOwor476dID4gdG9cLWxlYWtcLW91dDsKK+O+lyA+IGV5ZVwtZGlzZWFzZTsKK+O+iCA+IGh1bmNoYmFja2VkOwor476DID4gaHVtcFwtYmFja2VkOwor472qID4gcGFkZHlcLWZpZWxkOwor472GID4gZWFydGhlbndhcmU7CivjvYAgPiBlYXJ0aGVud2FyZTsKK+O8uyA+IGVhcnRoZW53YXJlOwor47y4ID4gZWFydGhlbndhcmU7CivjvLYgPiBlYXJ0aGVud2FyZTsKK+O8syA+IGVhcnRoZW53YXJlOwor47yvID4gZWFydGhlbndhcmU7CivjvKwgPiBlYXJ0aGVud2FyZTsKK+O8piA+IGVhcnRoZW53YXJlOwor47ykID4gZWFydGhlbndhcmU7CivjvJggPiBvZlwtbW91bnRhaW47CivjvJMgPiBtZWxvblwtc2VlZHM7Civju5MgPiBhXC1maW5lXC1qYWRlOwor47mgID4gYVwtc21hbGxcLWJpZzsKK+O4oCA+IHRoaWNrXC1zdGljazsKK+O2kSA+IG92ZXJmbG93aW5nOwor47WuID4gY2xlYXJcLXdhdGVyOwor47WkID4gdG9cLW92ZXJmbG93Owor47WVID4gdG9cLXBlcm1lYXRlOwor47SYID4gdG9cLW9vemVcLW91dDsKK+OysCA+IGFcLWhhaXJ5XC1kb2c7CivjspIgPiB0b1wtaW5jdWJhdGU7CivjsakgPiBhblwtYWJvcnRpb247CivjsLIgPiB0b1wtYmxvd1wtb2ZmOwor47CuID4gdG9cLWxhdWdoXC1hdDsKK+OwniA+IHRvXC1sYXVnaFwtYXQ7Civjr4ggPiBzbWFsbFwtdHJlZXM7Civjrp8gPiBhXC13aGV0c3RvbmU7Civjrp0gPiBhbmdsZVwtc3RlZWw7CivjrbQgPiB0aGVcLW9zY2luZXM7CivjrY4gPiBhXC10YWxsXC10cmVlOwor46yyID4gdG9cLWluY3JlYXNlOwor46ypID4gYVwtdGlueVwtc3RhcjsKK+OrtSA+IHdoaXRlXC1jb2xvcjsKK+OrmCA+IGRpc2FwcGVhcmVkOwor46q6ID4gdG9cLWJhbGVcLW91dDsKK+OpiCA+IHRvXC1yZXN0cmFpbjsKK+OphSA+IHRvXC1kcmF3XC1vdXQ7CivjqLogPiB0b1wtb3JuYW1lbnQ7CivjqLUgPiB0b1wtY3V0XC1hd2F5Owor46i0ID4gdG9cLXR1cm5vdmVyOwor76iqID4gY29va2VkXC1yaWNlOwor46iVID4gdG9cLXNob3VsZGVyOwor76eyID4gZmlzaFwtc2NhbGVzOwor46eUID4gdG9cLWRpc3R1cmJlOwor76eJID4gd2lsbG93XC10cmVlOwor76eFID4gaGFsb1wtaW5cLXNreTsKK+OmnyA+IGludGVsbGlnZW50Owor76aYID4gYVwtaGFuZFwtY2FydDsKK+OmkiA+IHRvXC1kZWNlaXZlZDsKK++lqCA+IHRvXC1zZWVwXC1vdXQ7CivvpaUgPiBjb252ZW5pZW5jZTsKK+OkoSA+IHRvXC1zdXJwcmlzZTsKK+OkmyA+IHRvXC1yZW1lbWJlcjsKK+OklSA+IG1lbGFuY2hvbG95Owor46SBID4gdG9cLWRpc2dyYWNlOwor46O+ID4gZG9cLW5vdFwtY2FyZTsKK+OjtSA+IHRvXC1ydW5cLWF3YXk7Civjo6UgPiB0b1wtc3RvcmVcLXVwOwor46KzID4gYmxhY2tcLWNvbG9yOwor46KTID4gdG9cLXNlcGFyYXRlOwor46G+ID4gYVwtdGhyZXNob2xkOwor46CWID4gcHJlY2lwaXRvdXM7CivjnpggPiBhXC1zbWFsbFwtcGlnOwor4520ID4gYVwtcm91bmRcLW9mZjsKK+OdlCA+IGRlZXBcLWJvdHRvbTsKK+OcoyA+IGFcLWxhc3RcLW5hbWU7CivjnI4gPiBzbGF2ZVwtZ2lybHM7Civjm5EgPiB0aHJlZVwtd29tZW47Civjmr4gPiB0b1wtaGF2ZVwtZnVuOwor45mnID4gZWFydGhlbndhcmU7CivjmLYgPiBhXC1oZW5cLXJvb3N0Owor45ilID4gdG9cLWludmVpZ2xlOwor45iGID4gdG9cLWxhdWdoXC1hdDsKK+OXlyA+IHRvXC1zZXBhcmF0ZTsKK+OWvSA+IHRvXC1jYWxsXC1vdXQ7CivjlqMgPiB0b1wtc3BpdFwtb3V0Owor45aeID4gYVwtd3J5XC1tb3V0aDsKK+OWliA+IHRvXC1zcGl0XC1vdXQ7CivjlpUgPiB0b1wtc3BpdFwtb3V0Owor45aRID4gdG9cLXNob3V0XC1hdDsKK+OUvCA+IHRvXC1maXRcLWludG87CivjlLYgPiBhXC1zbWFsbFwtY3VwOwor45SPID4gdG9cLWN1dFwtb3BlbjsKK+OTrCA+IHRvXC1jdXRcLW9wZW47Civjk6kgPiBob3JuZWRcLWhhaXI7CivjkqggPiBhblwtaW1tb3J0YWw7CivjkqUgPiBhblwtaW1tb3J0YWw7Civjkb0gPiB0b1wtd2FyZFwtb2ZmOwor55qEID4gcG9zc2Vzc2l2ZTsKK+i+vCA+IGNyb3dkXC1pbnRvOwor6L67ID4gY3Jvc3Nyb2FkczsKK+iDvSA+IHRvXC1iZVwtYWJsZTsKK+mDvSA+IG1ldHJvcG9saXM7CivmlocgPiBsaXRlcmF0dXJlOwor6L2NID4gd2Fnb25cLXJ1dHM7CivovKkgPiBnZW5lcmF0aW9uOwor55ypID4gdG9cLWNvbmZ1c2U7CivnnKAgPiBjbG9zZVwtZXllczsKK+i8nSA+IGJyaWdodG5lc3M7CivlvJAgPiBudW1iZXJcLXR3bzsKK+iAhSA+IHRoYXRcLXdoaWNoOwor5LiaID4gcHJvZmVzc2lvbjsKK+W6nCA+IHByZWZlY3R1cmU7CivmlL8gPiBnb3Zlcm5tZW50Owor5LiWID4gZ2VuZXJhdGlvbjsKK+S6pyA+IGdpdmVcLWJpcnRoOwor5Zy6ID4gb3Blblwtc3BhY2U7Civmr5QgPiB0b1wtY29tcGFyZTsKK+eWsiA+IGZlZWxcLXRpcmVkOwor55S7ID4gYVwtcGFpbnRpbmc7CivnlKMgPiBnaXZlXC1iaXJ0aDsKK+acmyA+IHRvXC1sb29rXC1hdDsKK+izuiA+IG1ha2VcLW1vbmV5Owor5YWtID4gbnVtYmVyXC1zaXg7CivlsaEgPiBmcmVxdWVudGx5Owor5bCkID4gZXNwZWNpYWxseTsKK+WwiCA+IG1vbm9wb2xpemU7Civln7ogPiBmb3VuZGF0aW9uOwor5Y+MID4gc2V0XC1vZlwtdHdvOwor5a2rID4gZ3JhbmRjaGlsZDsKK+S4kyA+IG1vbm9wb2xpemU7CivlrKogPiBjb3VydFwtbGFkeTsKK+emuyA+IHJhcmVcLWJlYXN0Owor5aqSID4gZ29cLWJldHdlZW47CivoqowgPiB3cml0ZVwtZG93bjsKK+iqhyA+IGV4YWdnZXJhdGU7Civlk40gPiBtYWtlXC1zb3VuZDsKK+WpvyA+IHNvblwtaW5cLWxhdzsKK+eIrSA+IHRvXC1kaXNwdXRlOwor5ZmoID4gcmVjZXB0YWNsZTsKK+eHnyA+IGVuY2FtcG1lbnQ7CivlppkgPiBteXN0ZXJpb3VzOwor6IOhID4gcmVja2xlc3NseTsKK+WmkyA+IHByb3N0aXR1dGU7CivopaYgPiBzaG9ydFwtY29hdDsKK+WlpyA+IG15c3RlcmlvdXM7CivlpaUgPiBteXN0ZXJpb3VzOwor5aO7ID4gc29uXC1pblwtbGF3Owor5aOxID4gbnVtYmVyXC1vbmU7CivlrZkgPiBncmFuZGNoaWxkOwor6JClID4gZW5jYW1wbWVudDsKK+WgtCA+IG9wZW5cLXNwYWNlOwor6YOtID4gb3V0ZXJcLXBhcnQ7CivorqggPiB0b1wtZGlzY3VzczsKK+a7hSA+IGV4dGluZ3Vpc2g7CivomZwgPiB0b1wtY2FwdHVyZTsKK+enryA+IGFjY3VtdWxhdGU7Civoj5wgPiB2ZWdldGFibGVzOwor5ZejID4gdG9cLWNvbm5lY3Q7Civll5wgPiBiZVwtZm9uZFwtb2Y7Civku4sgPiBmb3JlcnVubmVyOwor57SiID4gbGFyZ2VcLXJvcGU7CivkuIEgPiBtYWxlXC1hZHVsdDsKK+mBjSA+IGV2ZXJ5d2hlcmU7CivovoggPiBnZW5lcmF0aW9uOwor6JKUID4gdHJhbnNwbGFudDsKK+aHgiA+IHVuZGVyc3RhbmQ7Civph4ogPiBpbnRlcnByZXRlOwor57q1ID4gaW5kdWxnZVwtaW47Civnga0gPiBleHRpbmd1aXNoOwor5q20ID4gdGFrZVwtcGxhY2U7Civku4EgPiBodW1hbmVuZXNzOwor5qqAID4gc2FuZGFsd29vZDsKK+WJiiA+IHNjcmFwZVwtb2ZmOwor5YiRID4gcHVuaXNobWVudDsKK+WygiA+IGhvd1w/XC13aGF0XD87CivpmoYgPiBwcm9zcGVyb3VzOwor6L6JID4gYnJpZ2h0bmVzczsKK+WIgyA+IGVkZ2VkXC10b29sOwor5p6QID4gc3BsaXRcLXdvb2Q7CivohbggPiBpbnRlc3RpbmVzOwor5qWtID4gcHJvZmVzc2lvbjsKK+alkyA+IG1hcGxlXC10cmVlOwor6aSFID4gcmljZVwtY2FrZXM7CivmnqsgPiBtYXBsZVwtdHJlZTsKK+WCjSA+IGJ5XC1zaWRlXC1vZjsKK+iAvSA+IGluZHVsZ2VcLWluOwor6aC7ID4gZnJlcXVlbnRseTsKK+agkyA+IHdvb2RlblwtcGVnOwor6Z+/ID4gbWFrZVwtc291bmQ7Civlh68gPiB0cml1bXBoYW50Owor5oGtID4gcmVzcGVjdGZ1bDsKK+eluCA+IG1pc2ZvcnR1bmU7CivpopEgPiBmcmVxdWVudGx5Owor56aFID4gbWVkaXRhdGlvbjsKK+afryA+IGF4ZVwtaGFuZGxlOwor5o2QID4gY29udHJpYnV0ZTsKK+i4qiA+IGZvb3RwcmludHM7CivlsYEgPiBicmVha1wtd2luZDsKK+iwiiA+IGZyaWVuZHNoaXA7CivlgqggPiBzYXZlXC1tb25leTsKK+mbgSA+IHdpbGRcLWdvb3NlOwor5pGKID4gc3ByZWFkXC1vdXQ7CivlkKggPiBtZXRyaWNcLXRvbjsKK+S5jSA+IGZpcnN0XC10aW1lOwor6ZmAID4gc3RlZXBcLWJhbms7CivnuLEgPiBpbmR1bGdlXC1pbjsKK+e4piA+IGluZHVsZ2VcLWluOwor6IKgID4gaW50ZXN0aW5lczsKK+i1miA+IG1ha2VcLW1vbmV5Owor57a/ID4gY290dG9uXC13YWQ7CivntrEgPiBoZWF2eVwtcm9wZTsKK+e7tSA+IGNvdHRvblwtd2FkOwor5oqRID4gcHJlc3NcLWRvd247CivppbwgPiByaWNlXC1jYWtlczsKK+W9rCA+IGN1bHRpdmF0ZWQ7Civmkq4gPiBsaXR0bGVcLWJpdDsKK+eypSA+IHJpY2VcLWdydWVsOwor6JuuID4gYmFyYmFyaWFuczsKK+euuCA+IGNob3BzdGlja3M7CivnrbUgPiBiYW1ib29cLW1hdDsKK+iJhyA+IHNtYWxsXC1ib2F0Owor5o2MID4gYnJlYWtcLW9wZW47CivnrKAgPiBiYW1ib29cLWhhdDsKK+W6niA+IGRpc29yZGVybHk7Civpi6ogPiBzcHJlYWRcLW91dDsKK+ernSA+IHRvXC1jb21iaW5lOwor56mNID4gYWNjdW11bGF0ZTsKK+aJiSA+IGRvb3JcLXBhbmVsOwor57qyID4gaGVhdnlcLXJvcGU7Civph4sgPiBpbnRlcnByZXRlOwor6YeIID4gaW50ZXJwcmV0ZTsKK+WdnSA+IGVtYmFua21lbnQ7CivmhqcgPiBpcnJlc29sdXRlOwor55SpID4gdGhyb3dcLWF3YXk7CivnpZUgPiBteXN0ZXJpb3VzOwor6YWMID4gc2VydmVcLXdpbmU7Civno5AgPiBsYXJnZVwtcm9jazsKK+i+hSA+IGNoZWVrXC1ib25lOwor5o2hID4gdG9cLXBpY2tcLXVwOwor5623ID4gY2hvcHN0aWNrczsKK+i5iCA+IHN0YW1wXC1mZWV0Owor5pmSID4gZHJ5XC1pblwtc3VuOwor5q28ID4gYW5uaWhpbGF0ZTsKK+a2qSA+IGFzdHJpbmdlbnQ7CivpnI4gPiBsaWdodFwtcmFpbjsKK+aThSA+IG1vbm9wb2xpemU7CivolKwgPiB2ZWdldGFibGVzOwor57u4ID4gc2lsa1wtY2xvdGg7CivnnK8gPiBiZVwtYmxpbmRlZDsKK+WvhSA+IHRvXC1yZXNwZWN0Owor6JmPID4gdG9cLWNhcHR1cmU7CivnnLYgPiBleWVcLXNvY2tldDsKK+einyA+IHNtYWxsXC1kaXNoOwor6JW0ID4gdG9cLWNvbGxlY3Q7Civov60gPiByZXBlYXRlZGx5Owor5petID4gcmlzaW5nXC1zdW47Civmgo0gPiBjb3VyYWdlb3VzOwor5p6iID4gZG9vclwtaGluZ2U7Civot4sgPiBnb1wtYnlcLWZvb3Q7CivlnKogPiBcKHBob25ldGljXCk7CivmkJQgPiB0b1wtc2NyYXRjaDsKK+WajiA+IGNyeVwtbG91ZGx5Owor6L6ZID4gd2Fnb25cLXJ1dHM7CivmsZsgPiBoaWdoXC13YXRlcjsKK+iEryA+IGRyaWVkXC1tZWF0Owor5ZeSID4gdG9cLWRlc3BhaXI7Civlop8gPiBoaWdoXC1tb3VuZDsKK+mmiyA+IGdsdXR0b25vdXM7CivlqLwgPiBwcm9zdGl0dXRlOwor6LmtID4gdG9cLXNodWZmbGU7CivmvoggPiB0aG9yb3VnaGx5Owor57ytID4gd2luZFwtcm91bmQ7CivllrMgPiB3aGlzcGVyaW5nOwor5bynID4gd29vZGVuXC1ib3c7Civot7ogPiBzdGFtcFwtZmVldDsKK+aDhiA+IGRpc3RyZXNzZWQ7CivmkrUgPiBkcml2ZVwtYXdheTsKK+augyA+IG1pc2ZvcnR1bmU7CivmgaogPiByZXNwZWN0ZnVsOwor6L22ID4gcnVzaFwtZm9ydGg7CivohYYgPiBwcm9zcGVyb3VzOwor56q/ID4gbWluZVwtc2hhZnQ7CivmqLUgPiB3b29kY3V0dGVyOwor54qAID4gcmhpbm9jZXJvczsKK+e7miA+IHZhcmllZ2F0ZWQ7Civol5UgPiBsb3R1c1wtcm9vdDsKK+aRniA+IHRvXC1waWxlXC11cDsKK+a7pCA+IHN0cmFpblwtb3V0Owor57yIID4gaW5kaXN0aW5jdDsKK+iCqiA+IGFuaW1hbFwtZmF0Owor55SEID4gdG9cLWV4YW1pbmU7Civpk5sgPiBmcnlpbmdcLXBhbjsKK+WroSA+IGxlZ2FsXC13aWZlOwor55iBID4gZmVlbFwtdGlyZWQ7Civno7cgPiBwaG9zcGhvcnVzOwor57+hID4ga2luZ2Zpc2hlcjsKK+eekSA+IGNsb3NlXC1leWVzOwor6ZytID4gY2xvdWR5XC1za3k7CivoiKsgPiBmYW5jeVwtYm9hdDsKK+e6qCA+IHdoaXRlXC1zaWxrOwor5qa3ID4gZm9vdGJyaWRnZTsKK+eznCA+IHJpY2VcLWdydWVsOwor5aO5ID4gbnVtYmVyXC1vbmU7CivolJcgPiBzdWdhclwtY2FuZTsKK+W9lyA+IGJyb29tc3RpY2s7Civllp8gPiBoZWF2ZVwtc2lnaDsKK+WWkSA+IHRvXC1iZVwtZHVtYjsKK+mxvyA+IGN1dHRsZWZpc2g7CivlgJwgPiByYWlzZVwtaGlnaDsKK+S+qSA+IGdvXC1iZXR3ZWVuOwor5ruCID4gdG9ycmVudGlhbDsKK+i0sCA+IG51bWJlclwtdHdvOwor5b+7ID4gZGVsaWdodGZ1bDsKK+eHpyA+IGZsaW50c3RvbmU7CivnqJQgPiByaXBlXC1ncmFpbjsKK+WrlCA+IGNvdXJ0XC1sYWR5Owor6aKJID4gZmx5XC11cHdhcmQ7CivoiLggPiBsYXJnZVwtYm9hdDsKK+ecmSA+IHRvXC1nYXplXC1hdDsKK+eYgCA+IGFcLWhlbWF0b21hOwor5aSvID4gaGVhdnlcLWxvYWQ7CivppZUgPiBnbHV0dG9ub3VzOwor6bKgID4gZmlzaFwtYm9uZXM7CivojI8gPiB0YWxsXC1ncmFzczsKK+iMryA+IGNoaW5hXC1yb290Owor6bKnID4gZ2lhbnRcLWZpc2g7CivpgKYgPiBtZWFuZGVyaW5nOwor6aqcID4gd2lsZFwtaG9yc2U7CivmrLkgPiBmaWVyY2VcLWRvZzsKK+e8myA+IGRlY29yYXRpdmU7Civoi5UgPiBydXNoXC1wbGFudDsKK+mhuCA+IGxhcmdlXC1mYWNlOwor5bCVID4gXChwaG9uZXRpY1wpOwor57ymID4gcGxhaW5cLXNpbGs7CivluJkgPiBib29rXC1jb3ZlcjsKK+mzgyA+IGZpc2hcLWdpbGxzOwor6Ya0ID4gc3dlZXRcLXdpbmU7CivovoogPiB0dXJuXC1yb3VuZDsKK+WymCA+IHN0ZWVwXC1oaWxsOwor5YCsID4gbm90aWNlYWJsZTsKK+myniA+IGRyaWVkXC1maXNoOwor57CfID4gYmFtYm9vXC1tYXQ7CivnqLkgPiBhY2N1bXVsYXRlOwor57yBID4gYmxhY2tcLXNpbGs7CivnrqcgPiByYXR0YW5cLWJveDsKK+WigSA+IHRvXC1wbGFzdGVyOwor5720ID4gYnJvd25cLWJlYXI7CivniLAgPiBsZWFkXC1vblwtdG87CivmnbIgPiBicmlnaHRcLXN1bjsKK+eZlCA+IGh5c3RlcmljYWw7CivmnosgPiBzYW5kYWx3b29kOwor6I6cID4gYXZlbmFcLW51ZGE7Civln5kgPiBpbnN0cnVtZW50Owor542+ID4gdGhlXC1iYWRnZXI7CivojrMgPiB0cmFuc3BsYW50Owor6YOrID4gcGxhY2VcLW5hbWU7Civom48gPiByYXpvclwtY2xhbTsKK+appSA+IHdvb2RlblwtcGVnOwor5biRID4gYVwtdHJlYXN1cnk7Civmj6AgPiB0b1wtcHVsbFwtdXA7CivotpEgPiBjYW4nJ3RcLW1vdmU7CivpmI0gPiBnYXRla2VlcGVyOwor5o6KID4gdG9cLWV4dHJhY3Q7CivplZ0gPiBkeXNwcm9zaXVtOwor56CXID4gZ2lhbnRcLWNsYW07Civlq6sgPiB1Z2x5XC13b21hbjsKK+iUjCA+IHZlZ2V0YWJsZXM7Civot5cgPiB0aGVcLWluc3RlcDsKK+a1vCA+IHRvXC1yZXF1ZXN0Owor5ZeMID4gdGhlXC10aHJvYXQ7CivllJEgPiBcKHBob25ldGljXCk7CivmsYYgPiB0b1wtcGFyYm9pbDsKK+WIrSA+IGN1dFwtdGhyb2F0Owor6auCID4gdGhlXC1wZWx2aXM7CivoiYsgPiBzbWFsbFwtYm9hdDsKK+mSvCA+IG1vbHliZGVudW07Civmhp0gPiB0b1wtZGlzbGlrZTsKK+eChSA+IGJyaWxsaWFuY2U7CivpmrMgPiB0b1wtZGVzdHJveTsKK+iMmyA+IHJhbnVuY3VsdXM7Civns4cgPiBkcmllZFwtcmljZTsKK+mShiA+IGdhZG9saW5pdW07CivmvowgPiB0b1wtZXhoYXVzdDsKK+W6gCA+IHRvXC1wcmVwYXJlOwor54q0ID4gYVwtd2lsZFwtZG9nOwor5Z+PID4gYVwtYm91bmRhcnk7Civlh7UgPiByZWNlcHRhY2xlOwor6LCuID4gdG9cLXNsYW5kZXI7CivpvqIgPiBpblwtaGFybW9ueTsKK+m+kCA+IGRpc29yZGVybHk7Civpvo4gPiBkaXNvcmRlcmx5Owor6bynID4gdGhlXC1tYXJtb3Q7CivpvIQgPiB0aGVcLXNwaWRlcjsKK+m7uSA+IGVtYnJvaWRlcnk7Civpu7IgPiBncmV5XC1ibGFjazsKK+m7qiA+IGdyZXlcLWJsYWNrOwor6bukID4gYmx1ZVwtYmxhY2s7CivpuLogPiBob3JuZWRcLW93bDsKK+m1kiA+IG15bmFoXC1iaXJkOwor6bWCID4gaG9ybmVkXC1vd2w7CivptLcgPiB3b29kcGVja2VyOwor6bSIID4gd2lsZFwtZ29vc2U7Civps7IgPiB0dXJ0bGVkb3ZlOwor6bOrID4gd2lsZFwtZ29vc2U7CivpsrAgPiBzbWFsbFwtZmlzaDsKK+mxkCA+IGRyaWVkXC1maXNoOwor6bGHID4gYW5nbGVyZmlzaDsKK+mwkyA+IGZpc2hcLWdpbGxzOwor6bCCID4gY3V0dGxlZmlzaDsKK+mvqyA+IHNtYWxsXC1maXNoOwor6a+XID4gZHJpZWRcLWZpc2g7Civpr4EgPiBmaXNoXC1ib25lczsKK+mvgCA+IGdpYW50XC1maXNoOwor6a6/ID4gZHJpZWRcLWZpc2g7Civprp8gPiBhbmdsZXJmaXNoOwor6a6dID4gZHJpZWRcLWZpc2g7CivproEgPiB0aGVcLWJvbml0bzsKK+mttyA+IGN1dHRsZWZpc2g7CivprZsgPiB0aGVcLW11bGxldDsKK+msqCA+IGJvaXN0ZXJvdXM7CivprJwgPiB0b1wtZ29cLWJhbGQ7Civpq6MgPiBzaW1pbGFyXC10bzsKK+mrgSA+IHRoaWdoXC1ib25lOwor6amBID4gd2lsZFwtaG9yc2U7CivpqJcgPiB0b1wtc3dpbmRsZTsKK+moiyA+IHRhbGxcLWhvcnNlOwor6aiJID4gZmluZVwtaG9yc2U7Civpp7AgPiBncmV5XC1ob3JzZTsKK+mmuSA+IHBvc3RcLWhvcnNlOwor6aWeID4gZ2x1dHRvbm91czsKK+mkoCA+IHJpY2VcLWNha2VzOwor6aChID4gZmx5XC11cHdhcmQ7CivpoIcgPiBsYXJnZVwtZmFjZTsKK+meoSA+IGxlZ1wtd2FybWVyOwor6Z2wID4gbGVnXC13YXJtZXI7CivpnZ0gPiB0aGVcLWhlYXZlbjsKK+mdiSA+IGNsb3VkeVwtc2t5Owor6Z2GID4gY2xvdWR5XC1za3k7CivpnYQgPiBjbG91ZHlcLXNreTsKK+mbsCA+IGF0bW9zcGhlcmU7Civpm5kgPiBzZXRcLW9mXC10d287Civpmq4gPiB0aVwtcmlzZVwtdXA7CivpmbsgPiBzbWFsbFwtaGlsbDsKK+mZkSA+IHBsYWNlXC1uYW1lOwor6ZivID4gZm91bmRhdGlvbjsKK+mXnyA+IHBlYWNlZnVsbHk7Civplr0gPiBnYXRla2VlcGVyOwor6ZanID4gYm9pc3Rlcm91czsKK+mVmiA+IHNtYWxsXC1jb2luOwor6ZSsID4gbG9uZ1wtc3BlYXI7CivpkrcgPiBwcm9tZXRoaXVtOwor6ZC6ID4gZnJ5aW5nXC1wYW47CivpkLYgPiBtZXRhbFwtcmluZzsKK+mQmiA+IHNvZnRcLXN0ZWVsOwor6ZCSID4gbGF3cmVuY2l1bTsKK+mQgCA+IGFcLWN1cGJvYXJkOwor6Y+RID4gZHlzcHJvc2l1bTsKK+mOqiA+IHRvXC1lbmdyYXZlOwor6Y6bID4gbGFyZ2VcLWJlbGw7CivpjYAgPiB0ZWNobmV0aXVtOwor6YyfID4gbG9uZ1wtc3BlYXI7CivpjJ4gPiBpbnN0cnVtZW50Owor6YyPID4gc29mdFwtc3RlZWw7CivpiawgPiBtb2x5YmRlbnVtOwor6YiKID4gY2Fkb2xpbml1bTsKK+mHkyA+IGdhZG9saW5pdW07CivphqEgPiB3aW5lXC1wcmVzczsKK+mGnSA+IHdoaXRlXC13aW5lOwor6YWFID4gcmFpc2VcLWZlZXQ7Civpg7kgPiBwbGFjZVwtbmFtZTsKK+mCkCA+IG1lYW5kZXJpbmc7CivpgKwgPiB0b1wtc2NhdHRlcjsKK+i8pSA+IHR1cm5cLXJvdW5kOwor6LyUID4gY2hlZWtcLWJvbmU7Civou7wgPiBydXNoXC1mb3J0aDsKK+i6qSA+IHRha2VcLXF1aWNrOwor6LqbID4gZXhhZ2dlcmF0ZTsKK+i6lyA+IGV4YWdnZXJhdGU7CivouaQgPiBmb290cHJpbnRzOwor6LinID4gdW5lYXNpbmVzczsKK+i4nCA+IHRvXC1zdHVtYmxlOwor6LiWID4gdHJhbXBsZVwtb247Civot6UgPiBzdGFtcFwtZmVldDsKK+i3kCA+IHRvXC10cmFtcGxlOwor6LeBID4gdHJhbXBsZVwtb247CivotqYgPiBjYW4nJ3RcLW1vdmU7CivosrMgPiBudW1iZXJcLXR3bzsKK+iyriA+IG51bWJlclwtdHdvOwor6LGIID4gaG93XD9cLXdoYXRcPzsKK+ixgCA+IHRvXC1xdWFycmVsOwor6K2tID4gdG9cLXNsYW5kZXI7CivorZsgPiB0b1wtc2xhbmRlcjsKK+itliA+IHRvXC1zbGFuZGVyOwor6K2SID4gcHJvbXVsZ2F0ZTsKK+isqiA+IHRvXC1jb25zdWx0Owor6Ku0ID4gaW5cLWhhcm1vbnk7Civoq58gPiB0b1wtZXhhbWluZTsKK+iqvCA+IGZyaWVuZHNoaXA7CivoqqkgPiB0b1wtcXVhcnJlbDsKK+iojiA+IHRvXC1kaXNjdXNzOwor6KeDID4gcGxhY2VcLW5hbWU7CivoprggPiBzdGVhbFwtbG9vazsKK+imtSA+IHN0ZWFsXC1sb29rOwor6KWhID4gc2hvcnRcLWNvYXQ7Civoo6ogPiB0aGVcLXNsZWV2ZTsKK+iisiA+IHBsYWNlXC1uYW1lOwor6KKgID4gYm9va1wtY292ZXI7Civoop8gPiBib29rXC1jb3ZlcjsKK+iguyA+IGJhcmJhcmlhbnM7Civon7YgPiByYXpvclwtY2xhbTsKK+ifqyA+IHNpbHZlcmZpc2g7Civon6MgPiBsb3VzZVwtZWdnczsKK+ifgSA+IGFcLW1vc3F1aXRvOwor6JucID4gd29vZFwtbG91c2U7CivomKIgPiB0YWxsXC1ncmFzczsKK+iWpyA+IGRyaWVkXC1mb29kOwor6JWhID4gaGVtcFwtc2VlZHM7Civok7cgPiBtb3RoZXJ3b3J0Owor6JK9ID4gYW50aHJhY2VuZTsKK+iSpiA+IHRvXC1tZWFzdXJlOwor6JKWID4gcGxhbnRcLW5hbWU7Civoka8gPiBvcnJpc1wtcm9vdDsKK+iOmiA+IGJhbWJvb1wtbWF0Owor6I21ID4gcG9sZW1vbml1bTsKK+iJrCA+IGxhcmdlXC1zaGlwOwor6ImRID4gc21hbGxcLWJvYXQ7CivoiLQgPiBzbWFsbFwtYm9hdDsKK+iGkyA+IGludGVzdGluZXM7CivohKogPiBlcnlzaXBlbGFzOwor6ISpID4gZHJpZWRcLW1lYXQ7CivohJcgPiBjb2luY2lkaW5nOwor6IK4ID4gc3ByZWFkXC1vdXQ7CivogqYgPiBsYXJnZVwtaGVhZDsKK+iBnyA+IHNvblwtaW5cLWxhdzsKK+e/gCA+IGZseVwtdXB3YXJkOwor576GID4gYnJvd25cLWJlYXI7Civnu4sgPiBsYXJnZVwtcm9wZTsKK+e5miA+IHdpbmRcLXJvdW5kOwor57mQID4gZmluZVwtY2xvdGg7CivnuLUgPiBwbGFpblwtc2lsazsKK+e4nyA+IGRlY29yYXRpdmU7CivnuIcgPiBkZWNvcmF0aW9uOwor57eyID4gaW5kaXN0aW5jdDsKK+e3nCA+IGNvdHRvblwtd2FkOwor57eHID4gYmxhY2tcLXNpbGs7CivntqIgPiBzaWxrXC1jbG90aDsKK+e1uiA+IGZpbmVcLWxpbmVuOwor57WiID4gdmFyaWVnYXRlZDsKK+e1myA+IHNpbGtcLWJyYWlkOwor57WWID4gZmluZVwtc2lsa3M7CivntZMgPiBvYnN0cnVjdGVkOwor57S8ID4gbGFyZ2VcLXJvcGU7CivntIggPiB3aGl0ZVwtc2lsazsKK+eyuyA+IHByb3Zpc2lvbnM7CivnsqYgPiBwaG9zcGhvcnVzOwor57ClID4gbGFyZ2VcLXBpcGU7Civnr7kgPiB0b1wtY29sbGVjdDsKK+evsiA+IGJyb29tc3RpY2s7Civnr4sgPiByYXR0b25cLWJveDsKK+euoCA+IGhvcnNlXC13aGlwOwor566aID4gYnJpZWZcLW5vdGU7Civnra8gPiBjaG9wc3RpY2tzOwor56uwID4gY2VudGlsaXRlcjsKK+eroSA+IGhlY3RvbGl0ZXI7Civnq5MgPiBtaWxsaWxpdGVyOwor56qwID4gYnJpY2tcLWtpbG47Civnqa0gPiB3aWxkXC1ncmFpbjsKK+eohiA+IHdpbGRcLWdyYWluOwor56aqID4gbWVkaXRhdGlvbjsKK+emmiA+IHBsYWNlXC1uYW1lOwor56aNID4gbWlzZm9ydHVuZTsKK+elhSA+IGNhbGFtaXRpZXM7Civno5EgPiBzdG9uZVwtbWlsbDsKK+ehqCA+IGdpYW50XC1jbGFtOwor56GZID4gc3RvbmVcLW1pbGw7CivnoYMgPiBhXC1yZWRcLW1vbGU7Civnn4EgPiB0b1wtbG9va1wtYXQ7CivnnZ8gPiBjbGVhclwtZXllZDsKK+echiA+IGluZGlzdGluY3Q7CivnlpUgPiBoZWFkXC1zb3JlczsKK+eVkyA+IHJpY2VcLWZpZWxkOwor55WBID4gdG9cLWdpdmVcLXRvOwor55SiID4gZ2l2ZVwtYmlydGg7CivnjpQgPiBncmVlblwtamFkZTsKK+eOhSA+IG15c3RlcmlvdXM7CivnjJggPiBmaWVyY2VcLWRvZzsKK+eKmyA+IGFcLWJsYWNrXC1veDsKK+eJjyA+IHByaXZ5XC1ob2xlOwor54mLID4gbWVtb3JhbmR1bTsKK+eIqyA+IHJhZGljYWxcLTg3Owor54eQID4gcGhvc3Bob3J1czsKK+eGhSA+IHNtb290aFwtb3V0Owor54OVID4gdG9cLWRlc3Ryb3k7CivngbogPiBjYW5kbGVcLWVuZDsKK+eBkiA+IHRvXC1zcGF0dGVyOwor5r++ID4gc3RyYWluXC1vdXQ7Civmv5kgPiB0b1wtcmV2b2x2ZTsKK+a/hyA+IGFzdHJpbmdlbnQ7Civmv4YgPiByaXZlclwtYmFuazsKK+a+gSA+IGFzdHJpbmdlbnQ7CivmvoAgPiBhc3RyaW5nZW50Owor5rq+ID4gbGlnaHRcLXJhaW47CivmuIsgPiBhc3RyaW5nZW50Owor5raYID4gcml2ZXJcLWJhbms7Civms4YgPiBsaWNlbnRpb3VzOwor5q6yID4gYW5uaWhpbGF0ZTsKK+ausSA+IGFubmloaWxhdGU7CivmrbcgPiB0YWtlXC1wbGFjZTsKK+asgyA+IHNhbmRhbHdvb2Q7Civmq74gPiB0aGVcLXBvbWVsbzsKK+arqyA+IHdvb2RlblwtcGVnOwor5qq8ID4gcmlkZ2VcLXBvbGU7CivmqbQgPiBwbGFjZVwtbmFtZTsKK+aoniA+IGRvb3JcLWhpbmdlOwor5qa8ID4gd2luZVwtZ2xhc3M7CivmpqYgPiB0cmVlXC10cnVuazsKK+alqiA+IHNtYWxsXC1kaXNoOwor5qS1ID4gcG9tcGVsbW91czsKK+aksyA+IHRoZVwtcGl2b3RzOwor5qSMID4gaW5zdHJ1bWVudDsKK+agtCA+IHNhbmRhbHdvb2Q7CivmoJsgPiB0aGVcLWxpY2hlZTsKK+agmCA+IGZydWl0XC10cmVlOwor5p+3ID4gaW5zdHJ1bWVudDsKK+adoiA+IHdvb2R3b3JrZXI7CivmnIwgPiBkaXN0cmlidXRlOwor5pusID4gZHJ5XC1pblwtc3VuOwor5pqYID4gcmlzaW5nXC1zdW47Civml5UgPiBwbGFjZVwtbmFtZTsKK+aXgCA+IHBsYWNlXC1uYW1lOwor5paiID4gdG9cLXBsdW5kZXI7CivmlpIgPiB2YXJpZWdhdGVkOwor5pSkID4gc3ByZWFkXC1vdXQ7CivmlIYgPiBkcml2ZVwtYXdheTsKK+aTqiA+IHRvXC10dWNrXC1pbjsKK+aTpSA+IGRyaXZlXC1hd2F5Owor5pK/ID4gdG9cLXBpY2tcLXVwOwor5pKxID4gdG9cLXNob3J0ZW47CivmjrEgPiBwaWNrcG9ja2V0Owor5o6OID4gZHJhZ1wtYXNpZGU7CivmjK0gPiBmaXNoXC1ib25lczsKK+aKhSA+IHRvXC1jb2xsZWN0Owor5omhID4gZHJhZ1wtYWxvbmc7CivmhrggPiB0b1wtZmxhdHRlcjsKK+aGjSA+IGJlXC1oYXVnaHR5Owor5oaAID4gdG9cLXJlbHlcLW9uOwor5oSuID4gZGlzdHJlc3NlZDsKK+aEkyA+IHByb2ZsaWdhdGU7Civmg48gPiBhdmFyaWNpb3VzOwor5oGbID4gZGlzb3JkZXJlZDsKK+aAsiA+IGJlXC1hbnhpb3VzOwor5b+LID4gdG9cLXJlbHlcLW9uOwor5b6nID4gZXZlcnl3aGVyZTsKK+W9vyA+IHJlc2VtYmxpbmc7CivlvI0gPiBudW1iZXJcLXR3bzsKK+W8jCA+IG51bWJlclwtb25lOwor5byHID4gY292ZXJcLW92ZXI7Civlu7EgPiBoYXJtb25pb3VzOwor5buAID4gdG9cLWNvbmNlYWw7CivlurQgPiBwbGFjZVwtbmFtZTsKK+W3vCA+IHBsYWNlXC1uYW1lOwor5beCID4gcGxhY2VcLW5hbWU7CivltZkgPiBwbGFjZVwtbmFtZTsKK+WztCA+IHN0ZWVwXC1oaWxsOwor5bOTID4gcGxhY2VcLW5hbWU7CivlsaIgPiBmcmVxdWVudGx5Owor5bGEID4gdGhlXC12YWdpbmE7CivlsIIgPiBtb25vcG9saXplOwor5a68ID4gdHlyYW5uaWNhbDsKK+WtvCA+IG1pc2ZvcnR1bmU7Civlqp8gPiBsdXN0XC1hZnRlcjsKK+WkhSA+IHRvXC1kZXNjZW5kOwor5aOpID4gZW1iYW5rbWVudDsKK+WjjiA+IGluc3RydW1lbnQ7CivlobIgPiBvcGVuXC1zcGFjZTsKK+WhpCA+IGluc3RydW1lbnQ7CivloK4gPiBhXC1ib3VuZGFyeTsKK+WggyA+IGNvbXBsaWFuY2U7CivlnZIgPiB0b1wtY29tcGFyZTsKK+WcpiA+IHdhdGVyXC1nYXRlOwor5ZuMID4gbG9xdWFjaW91czsKK+WatSA+IGdsdXR0b25vdXM7CivlmrIgPiByZWFkXC1hbG91ZDsKK+WZuCA+IG1ldHJpY1wtdG9uOwor5ZmQID4gcmVjZXB0YWNsZTsKK+WYgiA+IGNyeVwtbG91ZGx5Owor5ZetID4gcGxhY2VcLW5hbWU7CivllrggPiBwbGFjZVwtbmFtZTsKK+WWtiA+IGVuY2FtcG1lbnQ7CivllL0gPiB0b1wtdHdpdHRlcjsKK+WUnyA+IHBsYWNlXC1uYW1lOwor5ZG0ID4gYnJlYXRoZVwtb247Civlj4YgPiBjbG91ZHlcLXNreTsKK+WNnSA+IGhhaXJcLXN0eWxlOwor5YqPID4gdG9cLWJ1dGNoZXI7CivlioQgPiBicmllZlwtbm90ZTsKK+WJsyA+IGJyaWVmXC1ub3RlOwor5YmEID4gY3V0XC10aHJvYXQ7CivliLwgPiB0b1wtcGx1bmRlcjsKK+WIhCA+IGVkZ2VkXC10b29sOwor5Ye0ID4gdG9cLXJlbHlcLW9uOwor5YexID4gdHJpdW1waGFudDsKK+WHgiA+IHRvXC1yZXF1ZXN0Owor5YaYID4gdG9cLW1vdmVcLW9uOwor5YWfID4gdG9cLWFkdmFuY2U7CivlhIggPiBnb1wtYmV0d2VlbjsKK+WDqSA+IGNvdXJhZ2VvdXM7Civlga0gPiB0cmFuc2dyZXNzOwor5YGdID4gbm90XC1mYWNpbmc7CivlgIAgPiBiZXdpbGRlcmVkOwor5L+7ID4gdG9cLXByZXBhcmU7CivkvLcgPiBkZXNjZW5kZW50Owor5LubID4geW91bmdcLWdpcmw7Civkuq8gPiB0b1wtcmVjZWl2ZTsKK+S4qCA+IG51bWJlclwtb25lOwor5LarID4gZmluZVwtdGVldGg7CivktokgPiBndWluZWFcLXBpZzsKK+S1qiA+IHB1cmVcLWJsYWNrOwor5LWdID4gZGFya1wtYmxhY2s7CivktYcgPiB0b1wtZGlzbGlrZTsKK+SzlSA+IHRoZVwtcGlnZW9uOwor5LOMID4gdGhlXC1jdWNrb287Civks4AgPiB0aGVcLWN1Y2tvbzsKK+SyqyA+IHRoZVwtcGlnZW9uOwor5LKpID4gdGhlXC1jdWNrb287CivksqUgPiB0aGVcLXBpZ2VvbjsKK+SxnSA+IGJsYWNrXC1jYXJwOwor5LGGID4gc21hbGxcLWZpc2g7CivksYUgPiB0aGVcLW11bGxldDsKK+SxhCA+IGFcLWZsYXRmaXNoOwor5LC6ID4gYVwtZmxhdGZpc2g7CivksKwgPiB3aWxkXC1naG9zdDsKK+SwhCA+IHNob3J0XC1oYWlyOwor5K+UID4gdG9cLWluY2xpbmU7Civkr5EgPiB0aGVcLXBlbHZpczsKK+SvjCA+IHRoZVwtc2FjcnVtOwor5K+KID4gdGhlXC1wZWx2aXM7Civkr4ggPiB0aGVcLXBlbHZpczsKK+SuryA+IGZpbmVcLWhvcnNlOwor5K6NID4gY3VybGluZ1wtdXA7CivkrowgPiBmaW5lXC1ob3JzZTsKK+StuCA+IGFcLXN0YWxsaW9uOwor5K2jID4gcmljZVwtY2FrZXM7CivkrYQgPiBnbHV0dG9ub3VzOwor5Ky3ID4gd2VsbFwtZmVlZFwuOwor5KyiID4gZ2x1dHRvbm91czsKK+SrpSA+IGFcLXdyeVwtbmVjazsKK+SroyA+IGFcLXdyeVwtbmVjazsKK+SrniA+IGxhcmdlXC1oZWFkOwor5KuTID4gbGFyZ2VcLWhlYWQ7CivkqrogPiB0ZWV0aHJpZGdlOwor5KqgID4gcHVsdmVyaXplZDsKK+SpsSA+IGFcLXNjYWJiYXJkOwor5KmwID4gYVwtc2NhYmJhcmQ7CivkqaIgPiBhXC1zY2FiYmFyZDsKK+SpmSA+IGFcLXNjYWJiYXJkOwor5KmDID4gYXBwZWFyYW5jZTsKK+SpgSA+IHRoaW5cLWhhaXJzOwor5Ki9ID4gdG9cLXJlc29sdmU7CivkqKkgPiB0aGVcLXNwaXJpdDsKK+SooCA+IGNsb3VkeVwtc2t5Owor5Ke/ID4gdGhlXC1tYWdwaWU7Civkp7IgPiB0aGVcLW1hZ3BpZTsKK+SnsSA+IHRoZVwtcGlnZW9uOwor5KejID4gdG9cLXN0b3BcLXVwOwor5KavID4gdmVyeVwtZGVuc2U7CivkpqcgPiB0b1wtcXVhcnJlbDsKK+SmjSA+IHRvXC1pbmNsdWRlOwor5KWOID4gaW5zdHJ1bWVudDsKK+SkviA+IHRvXC1jb250YWluOwor5KS9ID4gZmFybVwtdG9vbHM7CivkpLwgPiBtZXRhbFwtd2lyZTsKK+SkuSA+IHRvXC1lbmdyYXZlOwor5KSHID4gd2hpdGVcLXdpbmU7CivkoqUgPiBpblwtaGFybW9ueTsKK+ShpyA+IGFcLWNhcnJpYWdlOwor5KGkID4gYVwtY2FycmlhZ2U7CivkoZogPiBpbXBsZW1lbnRzOwor5KGOID4gYVwtd2luZGxhc3M7CivkoLggPiBvYnNlcXVpb3VzOwor5KC2ID4gdG9cLXByb2plY3Q7CivkoKogPiBmb290cHJpbnRzOwor5KCpID4gdG9cLXVyaW5hdGU7CivkoKYgPiB0b1wtc3R1bWJsZTsKK+SgnyA+IHRvXC10cmlwXC11cDsKK+SgmCA+IG9uZVwtbGVnZ2VkOwor5J+8ID4gZm9vdHByaW50czsKK+SfqiA+IHJlcGVhdGVkbHk7Civkn6EgPiB0b1wtdHJhbXBsZTsKK+SfmSA+IHRvXC1zdGFnZ2VyOwor5J+EID4gaW5cLWFcLWh1cnJ5Owor5J6FID4gdG9cLWdpdmVcLXRvOwor5J2/ID4gaG9ub3VyYWJlbDsKK+SdtyA+IHNlY3VyaXRpZXM7CivknbQgPiB0b1wtcHJlc2VudDsKK+SdsSA+IHRvXC10cm91YmxlOwor5J2UID4gdGhlXC1iYWRnZXI7CivknJsgPiB0b1wtc2xhbmRlcjsKK+ScmSA+IG5vdFwtY2xldmVyOwor5JySID4gZXhwcmVzc2lvbjsKK+SckSA+IHRvXC1zbGFuZGVyOwor5JyLID4gdG9cLXN1c3BlbmQ7Civkm70gPiBsb3F1YWNpb3VzOwor5Ju8ID4gdG9cLXNsYW5kZXI7Civkm7IgPiB0b1wtZGVjZWl2ZTsKK+SbriA+IHRvXC1kZXN0cm95Owor5JurID4gdG9cLWRlY2VpdmU7Civkm6kgPiB0b1wtc2xhbmRlcjsKK+SbpiA+IGxpdGlnYXRpb247Civkm5YgPiBsb3F1YWNpb3VzOwor5JuVID4gdG9cLWZsYXR0ZXI7Civkm40gPiBsb3F1YWNpb3VzOwor5JuFID4gbG9xdWFjaW91czsKK+SbhCA+IHRvXC1jb25zb2xlOwor5Jq5ID4gdG9cLXByZXBhcmU7CivkmrAgPiB0b1wtcHJlcGFyZTsKK+SakyA+IHRvXC1vYnNlcnZlOwor5JqNID4gdG9cLWxvb2tcLWF0Owor5JqHID4gdG9cLW9ic2VydmU7CivkmbogPiB0b1wtb2JzZXJ2ZTsKK+SZmiA+IGN1cmxpbmdcLXVwOwor5JihID4gdGhlXC1zbGVldmU7CivkmJUgPiBwcm9zdGl0dXRlOwor5JazID4gamVsbHlcLWZpc2g7CivklaEgPiBjb21wb3NpdGFlOwor5JSYID4gZmlzaFwtcGFzdGU7Civkk7UgPiB0b1wtYmxvc3NvbTsKK+STpCA+IHZlZ2V0YXRpb247Civkk4YgPiB0b1wtY3V0XC10aGU7CivkkqIgPiBzd2VldFwtZmxhZzsKK+SRvyA+IHNtYWxsXC1ib2F0Owor5JGwID4gc21hbGxcLWJvYXQ7Civkka0gPiB3YXJcLXZlc3NlbDsKK+SRoSA+IHNtYWxsXC1ib2F0Owor5JGNID4gdG9cLXN3YWxsb3c7CivkkKIgPiB0b1wtd3JpbmtsZTsKK+SPrSA+IHRoZVwtY2hlZWtzOwor5I+MID4gdG9cLXZpYnJhdGU7Civkj4sgPiByZXNwZWN0ZnVsOwor5I6fID4gdG9cLWZhd25cLW9uOwor5I21ID4geW91bmdcLWdvYXQ7CivkjZ4gPiBhXC1kcmFnXC1uZXQ7CivkjZcgPiB0b1wtaGFuZ1wtdXA7CivkjZQgPiBhXC1mdWxsXC1uZXQ7CivkjIAgPiB0b1wtYXJyYW5nZTsKK+SLtiA+IHRvXC1zdHVtYmxlOwor5IuxID4gYVwtd2lsZFwteWFrOwor5Iq3ID4gYmxhY2tcLXNpbGs7CivkiqkgPiByaWNlXC1ncmF2eTsKK+SJjSA+IHRvXC1vYnNlcnZlOwor5IeOID4gdG9cLXN0YXJ0bGU7Civkh4cgPiB0aGVcLXBlb3BsZTsKK+SGkiA+IHRvXC1leGFtaW5lOwor5IaLID4gdGhlXC1hdXR1bW47CivkhZQgPiBkZWFkXC1jcm9wczsKK+SEnyA+IHRvXC13b3JzaGlwOwor5ISTID4gdG9cLXdvcnNoaXA7CivkhJEgPiB0b1wtd29yc2hpcDsKK+SEkCA+IHRvXC13b3JzaGlwOwor5ISGID4gdG9cLXdvcnNoaXA7CivkhIUgPiB0b1wtd29yc2hpcDsKK+SEgyA+IG1pc2ZvcnR1bmU7CivkhIEgPiB0b1wtd29yc2hpcDsKK+SChCA+IHRvXC1zdGFydGxlOwor5IG6ID4gdG9cLWxvb2tcLWF0Owor5IGvID4gdG9cLWxvb2tcLWF0Owor5IGeID4gYVwtcHJvdmluY2U7CivkgZggPiB0b1wtbG9va1wtYXQ7CivkgZUgPiB0b1wtbG9va1wtYXQ7CivkgZMgPiB0b1wtbG9va1wtYXQ7CivkgYkgPiB0b1wtZXhhbWluZTsKK+SBiCA+IHRvXC1leGFtaW5lOwor5IGBID4gc3RyYWJpc211czsKK+SAtiA+IHN0cmFiaXNtdXM7CivkgLEgPiB0b1wtZXhhbWluZTsKK+SAryA+IHRvXC1sb29rXC1hdDsKK+SAmSA+IHRvXC1sb29rXC1hdDsKK+SAhiA+IHRvXC1leGhhdXN0Owor476ZID4gZXJ5c2lwZWxhczsKK+O9qCA+IGZyYWdtZW50ZWQ7CivjvaMgPiBhXC1mcm9udGllcjsKK+O9mCA+IGJvcmRlcmxhbmQ7CivjvLkgPiBlYXJ0ZW53YXJlOwor47qzID4gYmxhY2tcLW1pY2E7CivjupMgPiBmb290cHJpbnRzOwor47qPID4gdGhlXC1iYWRnZXI7CivjuoUgPiB0aGVcLW1vbmtleTsKK+O5iCA+IGFcLWJsYWNrXC1veDsKK+O4qCA+IGFcLWJpZ1wtYnVsbDsKK+O4jCA+IHRvXC10d2lua2xlOwor47e3ID4gdGhpY2tcLXNvdXA7Civjt6EgPiB0b1wtc3RhcnRsZTsKK+O2rSA+IGFsbW9zdFwtZHJ5Owor47acID4gZGVlcFwtd2F0ZXI7CivjtZ8gPiBsaWdodFwtcmFpbjsKK+O1gCA+IHdhdGVyXC1mbG93Owor47ScID4gZXZlcnl3aGVyZTsKK+OzgSA+IHdhdGVyXC1mbG93Owor47KvID4gbG9uZ1wtaGFpcnk7Civjsp4gPiBzaG9ydFwtaGFpcjsKK+OylSA+IHZhcmllZ2F0ZWQ7CivjsowgPiBkb2cnJ3NcLWhhaXI7CivjsokgPiBlZ2dcLXNoZWxsczsKK+OxuCA+IHRvXC1leGhhdXN0Owor47GwID4gdG9cLWRlc3Ryb3k7CivjsaYgPiB0b1wtZGlzY2FyZDsKK+OxpCA+IHRvXC1leGhhdXN0Owor47GcID4gcGVzdGlsZW5jZTsKK+OxmyA+IHRvXC1kZXN0cm95Owor47GaID4gdG9cLWRlc3Ryb3k7CivjsLggPiB0b1wtY29sbGVjdDsKK+OwkSA+IGZydWl0XC10cmVlOwor46+HID4gYVwtc3RvY2thZGU7CivjrZggPiBhXC1zY2FiYmFyZDsKK+OtiSA+IGZhcm1cLXRvb2xzOwor46yxID4gdG9cLXJlcGxhY2U7CivjrKogPiB0b1wtZm9sZFwtdXA7CivjrJwgPiB0b1wtYWR2YW5jZTsKK+OrpCA+IGFcLWxvbmdcLWRheTsKK+OqtCA+IHRvXC1tZWFzdXJlOwor46qcID4gdG9cLW1lYXN1cmU7CivjqpogPiB0b1wtc2NhdHRlcjsKK+OqlCA+IHRvXC1zY2F0dGVyOwor46qMID4gdG9cLWxlYWRcLW9uOwor46qJID4gdG9cLWNvbWJpbmU7CivjqbkgPiB0b1wtcGlsZVwtb247CivjqbggPiB0b1wtcGlsZVwtb247CivjqaogPiB0b1wtY29sbGVjdDsKK+OpniA+IHRvXC1iYWNrXC11cDsKK+OpnSA+IHRvXC1jb21wYXJlOwor46maID4gdG9cLWNvbGxlY3Q7CivjqZYgPiB0b1wtYmFja1wtdXA7CivjqY0gPiB0b1wtYmFja1wtdXA7CivjqYAgPiB0b1wtcmVjZWl2ZTsKK+OovyA+IHRvXC1yZWNlaXZlOwor46izID4gYVwtY3VwYm9hcmQ7CivjqLIgPiB0b1wtYmFja1wtdXA7CivjqK8gPiB0b1wtZW5sYXJnZTsKK+OoriA+IHRvXC1saWZ0XC11cDsKK++opiA+IG1ldHJvcG9saXM7CivjqIogPiB0b1wtZGlzY2FyZDsKK++nuCA+IGJhbWJvb1wtaGF0Owor76euID4gcGhvc3Bob3J1czsKK++nnCA+IHByb3NwZXJvdXM7Civvp5EgPiBudW1iZXJcLXNpeDsKK++mtyA+IHN3ZWV0XC13aW5lOwor46a2ID4gcmVwZWF0ZWRseTsKK+OmqSA+IG1lbGFuY2hvbHk7CivjppogPiBtZWxhbmNob2x5Owor76aMID4gdGFrZVwtcGxhY2U7CivvpoQgPiBzdHJhaW5cLW91dDsKK+OmgiA+IGNvbnN0YW50bHk7CivjpbYgPiB0b1wtZmlsbFwtdXA7CivvpaogPiBsYXJnZVwtcm9wZTsKK+OloyA+IHRvXC1iZW5lZml0Owor46WaID4gbWVsYW5jaG9seTsKK++liyA+IGZyZXF1ZW50bHk7CivjpLcgPiB0b1wtZGViYXVjaDsKK+OkqSA+IHRvXC1yZXNwZWN0Owor46SQID4gZGlzaGFybW9ueTsKK++kgCA+IGhvd1w/XC13aGF0XD87Civjo70gPiB0b1wtZm9yZ2l2ZTsKK+OjhSA+IGJvd1wtc3RyaW5nOwor46OAID4gdG9cLXJlYm91bmQ7Civjoq0gPiBhXC1ib3dcLWNhc2U7CivjopogPiBhXC1jb3JyaWRvcjsKK+OijyA+IGFcLWNlc3Nwb29sOwor46GlID4gdG9cLWN1cmxcLXVwOwor456gID4gbWFsZVwtb3JnYW47Civjno4gPiBib2R5XC13YXN0ZTsKK+OehiA+IG9uZVwtbGVnZ2VkOwor452vID4gdG9cLXNvam91cm47CivjnIUgPiB0b1wtZmF3blwtb247Civjm6ogPiB0b1wtc2xhbmRlcjsKK+OaoCA+IGZ1bGxcLWdyb3duOwor45qPID4gdG9cLXNjYXR0ZXI7CivjmbogPiBjcm9zc1wtcm9hZDsKK+OZtCA+IHRvXC1jb25jZWFsOwor45myID4gdG9cLXN0b3BcLXVwOwor45mJID4gcHJvc3Blcm91czsKK+OYvyA+IHRvXC1maWxsXC11cDsKK+OYuyA+IHRvXC1zdG9wXC11cDsKK+OYpyA+IHByZWNlZGVuY2U7CivjmJ0gPiB0b1wtdGFrZVwtaW47Civjl6wgPiB0aGlja1wtbGlwczsKK+OXqyA+IHRvXC13aGlzcGVyOwor45eiID4gbG9xdWFjaW91czsKK+OXiyA+IHRoZVwtdGhyb2F0Owor45eHID4gdG9cLXN3YWxsb3c7Civjl4QgPiB0b1wtZGVjZWl2ZTsKK+OWtiA+IHRvXC1zd2FsbG93Owor45aYID4gdG9cLXN0YXJ0bGU7CivjloYgPiB0b1wtY29uZGVtbjsKK+OVqyA+IHRvXC1pbWl0YXRlOwor45WNID4gdG9cLWhlYXBcLXVwOwor45WGID4gZmluZVwtc3RvbmU7CivjlLcgPiB0b1wtc2VjcmV0ZTsKK+OUmCA+IHRvXC1kZWdyYWRlOwor45STID4gdG9cLXN0YW1tZXI7CivjlIwgPiB0b1wtY3V0XC1vZmY7Civjk7ogPiBjYXN0cmF0aW9uOwor45OuID4gdG9cLWVuZ3JhdmU7Civjk54gPiB0b1wtZW5ncmF2ZTsKK+OTgiA+IHR5cmFubmljYWw7CivjkrcgPiB0b1wtcHJvc3BlcjsKK+OSnSA+IHRvXC1kZWNlaXZlOwor45KcID4gcmVzcGVjdGZ1bDsKK+OSiiA+IGxvcXVhY2lvdXM7CivjkZwgPiB0b1wtZW5ncmF2ZTsKK+ORgiA+IHRvXC1pbWl0YXRlOwor45CkID4gdG9cLWltcGxvcmU7CivkuoYgPiB0b1wtZmluaXNoOwor5a2QID4gb2Zmc3ByaW5nOwor5b65ID4gcGVuZXRyYXRlOwor6KaBID4gbmVjZXNzYXJ5Owor6L6xID4gaHVtaWxpYXRlOwor552AID4gbWFrZVwtbW92ZTsKK+aIkCA+IGNvbXBsZXRlZDsKK+edoyA+IHN1cGVydmlzZTsKK+i8ryA+IGdhdGhlclwtdXA7CivlvKUgPiBleHRlbnNpdmU7Civnm6MgPiBzdXBlcnZpc2U7Civnvo4gPiBiZWF1dGlmdWw7Civlu4IgPiBzaWRlXC1yb29tOwor6ZeuID4gYXNrXC1hYm91dDsKK+W6rSA+IGNvdXJ0eWFyZDsKK+eZgiA+IGJlXC1oZWFsZWQ7Civnl7ogPiBwYXJhbHlzaXM7Civlt64gPiB0b1wtZGlmZmVyOwor6Zq+ID4gZGlmZmljdWx0Owor6LaFID4ganVtcFwtb3ZlcjsKK+eVsCA+IGRpZmZlcmVudDsKK+S6siA+IHJlbGF0aXZlczsKK+eVqyA+IGRlbGluZWF0ZTsKK+eVnCA+IGxpdmVzdG9jazsKK+eVkSA+IGRyeVwtZmllbGQ7CivnlJggPiBzd2VldG5lc3M7CivorqQgPiByZWNvZ25pemU7CivosrQgPiBleHBlbnNpdmU7Civosp0gPiBzZWFcLXNoZWxsOwor6ZmiID4gY291cnR5YXJkOwor6L6+ID4gYXJyaXZlXC1hdDsKK+S8lyA+IG11bHRpdHVkZTsKK+ivhiA+IHJlY29nbml6ZTsKK+WAkiA+IGZhbGxcLW92ZXI7CivnjqkgPiBwbGF5XC13aXRoOwor5YOPID4gYVwtcGljdHVyZTsKK+WuhSA+IHJlc2lkZW5jZTsKK+aNriA+IHRvXC1vY2N1cHk7Civora8gPiB0cmFuc2xhdGU7CivorasgPiB0YWxrYXRpdmU7CivorZggPiByZWNvZ25pemU7CivpgKAgPiBjb25zdHJ1Y3Q7CivlqrwgPiBvbGRcLXdvbWFuOwor54qgID4gc2FjcmlmaWNlOwor6KqNID4gcmVjb2duaXplOwor54mSID4gZG9jdW1lbnRzOwor54mMID4gc2lnbmJvYXJkOwor5amGID4gb2xkXC13b21hbjsKK+iosyA+IHRyYW5zbGF0ZTsKK+eIkCA+IGZpcmVwbGFjZTsKK+S5hSA+IGxvbmdcLXRpbWU7Civlpr4gPiBjb25jdWJpbmU7CivliJ0gPiBiZWdpbm5pbmc7CivopqogPiByZWxhdGl2ZXM7CivpmaQgPiBlbGltaW5hdGU7CivlhrUgPiBjb25kaXRpb247CivkubEgPiBjb25mdXNpb247CivliJsgPiBlc3RhYmxpc2g7Civnpo8gPiBoYXBwaW5lc3M7CivovpEgPiBnYXRoZXJcLXVwOwor5YGHID4gZmFsc2Vob29kOwor56m/ID4gcGVuZXRyYXRlOwor6KGGID4gbXVsdGl0dWRlOwor6aG+ID4gbG9va1wtYmFjazsKK+igtiA+IHNpbGt3b3JtczsKK+S4vSA+IGJlYXV0aWZ1bDsKK+a4kCA+IGdyYWR1YWxseTsKK+W8giA+IGRpZmZlcmVudDsKK+eepyA+IGdsYW5jZVwtYXQ7Civln5IgPiBlbmNsb3N1cmU7Civln4MgPiBmaW5lXC1kdXN0Owor6J6iID4gZ2xvd1wtd29ybTsKK+mAgCA+IHN0ZXBcLWJhY2s7CivonLsgPiBkcmFnb25mbHk7CivmvLggPiBncmFkdWFsbHk7Civnv7sgPiBmbGlwXC1vdmVyOwor5ZyPID4gdG9cLWNpcmNsZTsKK+aZriA+IHVuaXZlcnNhbDsKK+ibuSA+IGNocnlzYWxpczsKK+S4tCA+IGRyYXdcLW5lYXI7Civom4kgPiBkcmFnb25mbHk7CivljY8gPiBiZVwtdW5pdGVkOwor6bqXID4gYmVhdXRpZnVsOwor6JqVID4gc2lsa3dvcm1zOwor5rmvID4gaG90XC13YXRlcjsKK+S+iyA+IHByZWNlZGVudDsKK+i0tSA+IGV4cGVuc2l2ZTsKK+a0siA+IGNvbnRpbmVudDsKK+adviA+IHBpbmVcLXRyZWU7CivkvJkgPiBjb21wYW5pb247Civmr6sgPiBmaW5lXC1oYWlyOwor6JWOID4gYnVja3doZWF0Owor6L6TID4gdHJhbnNwb3J0Owor5rOBID4gY29uZGl0aW9uOwor55uRID4gc3VwZXJ2aXNlOwor5oqYID4gYnJlYWtcLW9mZjsKK+axsCA+IGV4Y2Vzc2l2ZTsKK+WQmyA+IHNvdmVyZWlnbjsKK+WNsSA+IGRhbmdlcm91czsKK+amgiA+IGdlbmVyYWxseTsKK+mAjyA+IHBlbmV0cmF0ZTsKK+WciCA+IHRvXC1jaXJjbGU7CivmroogPiBkaWZmZXJlbnQ7CivmroYgPiBkYW5nZXJvdXM7CivljoQgPiBhZHZlcnNpdHk7CivmsYcgPiBjb25jb3Vyc2U7CivljokgPiB3aGV0c3RvbmU7CivpmYQgPiBhZGhlcmVcLXRvOwor6IKpID4gc2hvdWxkZXJzOwor6a2YID4gbmlnaHRtYXJlOwor5Y2UID4gYmVcLXVuaXRlZDsKK+iNkiA+IHdhc3RlbGFuZDsKK+mssSA+IGx1eHVyaWFudDsKK+ivkSA+IHRyYW5zbGF0ZTsKK+WMoCA+IGNyYWZ0c21hbjsKK+asnSA+IGx1eHVyaWFudDsKK+S8tCA+IGNvbXBhbmlvbjsKK+WMgiA+IGZyYWdyYW5jZTsKK+WLuCA+IHJlY29tbWVuZDsKK+WLpyA+IHJlY29tbWVuZDsKK+mjmCA+IHdoaXJsd2luZDsKK+iJtiA+IGJlYXV0aWZ1bDsKK+WJtSA+IGVzdGFibGlzaDsKK+eCriA+IGxhcmdlXC1ndW47CivotJ0gPiBzZWFcLXNoZWxsOwor6YOOID4gZ2VudGxlbWFuOwor6ZmqID4gYWNjb21wYW55Owor6IeoID4gZHJhd1wtbmVhcjsKK+WHnSA+IGNvYWd1bGF0ZTsKK+WGlyA+IGV4Y2Vzc2l2ZTsKK+WKnSA+IHJlY29tbWVuZDsKK+WJqSA+IGxlZnRvdmVyczsKK+mlkiA+IGJvdW50aWZ1bDsKK+eWlyA+IGJlXC1oZWFsZWQ7CivmsaQgPiBob3RcLXdhdGVyOwor5b27ID4gcGVuZXRyYXRlOwor6aOcID4gZmxpcFwtb3ZlcjsKK+WDmiA+IGNvbXBhbmlvbjsKK+iCmCA+IHRoZVwtZWxib3c7CivogpYgPiBsb29rXC1saWtlOwor5pioID4geWVzdGVyZGF5Owor5pqCID4gdGVtcG9yYXJ5Owor6YCSID4gaGFuZFwtb3ZlcjsKK+mhpyA+IGxvb2tcLWJhY2s7CivnpaUgPiBnb29kXC1sdWNrOwor5YC5ID4gdGVtcGVyYXRlOwor6ImwID4gZGlmZmljdWx0Owor5LuXID4gcmVseVwtdXBvbjsKK+afvyA+IHBlcnNpbW1vbjsKK+mUriA+IGRvb3JcLWJvbHQ7Civmnq8gPiBkcmllZFwtb3V0Owor6I6xID4gZ29vc2Vmb290Owor6LWUID4gaW5kZW1uaWZ5Owor6YCiID4gY29tZVwtdXBvbjsKK+edgSA+IG9wZW5cLWV5ZXM7CivlmL8gPiBiZVwtc2lsZW50Owor5LuuID4gZmFsc2Vob29kOwor6ZujID4gZGlmZmljdWx0Owor6LSqID4gYmVcLWdyZWVkeTsKK+aaqyA+IHRlbXBvcmFyeTsKK+mAnSA+IHBhc3NcLWF3YXk7CivkuoIgPiBjb25mdXNpb247Civoib4gPiBhcnRlbWlzaWE7CivoiqwgPiBmcmFncmFuY2U7Civooo0gPiBsb25nXC1nb3duOwor5YakID4gZ3JpZXZhbmNlOwor6aW2ID4gYm91bnRpZnVsOwor54KJID4gZmlyZXBsYWNlOwor6L+qID4gZW5saWdodGVuOwor5ZiJID4gZXhjZWxsZW50Owor6Za+ID4gdGhyZXNob2xkOwor57a+ID4gdGhpblwtc2lsazsKK+iJsyA+IGJlYXV0aWZ1bDsKK+iGgCA+IHVwcGVyXC1hcm07CivnibogPiBzYWNyaWZpY2U7Civpob0gPiBvYnN0aW5hdGU7CivmrYkgPiBkZWZpY2llbnQ7CivluIUgPiBjb21tYW5kZXI7Civmhr4gPiB0b1wtcmVncmV0Owor5YqIID4gY3V0XC1hcGFydDsKK+aLgiA+IHNoYWtlXC1vZmY7CivpjbUgPiBkb29yXC1ib2x0Owor562IID4gYXJyb3dcLWVuZDsKK+aLoCA+IHRvXC1vY2N1cHk7CivljqIgPiBzaWRlXC1yb29tOwor54asID4gY29va1wtZG93bjsKK+aJlSA+IHNoYWtlXC1vZmY7Civlr5MgPiByZXNpZGVuY2U7CivnqLwgPiBzb3dcLWdyYWluOwor5oGNID4gc2VlbWluZ2x5Owor57ujID4gZW1icm9pZGVyOwor5oeDID4gY291cnRlb3VzOwor6KGsID4gdW5kZXJ3ZWFyOwor5oWKID4gdG9cLXJlc2VudDsKK+iGiiA+IHNob3VsZGVyczsKK+a9rSA+IGRlZXBcLXBvb2w7Civml7cgPiBleHRlbnNpdmU7CivnoZ0gPiBzYWx0cGV0ZXI7CivpgZQgPiBhcnJpdmVcLWF0Owor6YC5ID4gYXJyaXZlXC1hdDsKK+mqpCA+IHByb2NlZHVyZTsKK+iLuSA+IGFydGVtaXNpYTsKK+W/vyA+IGdldFwtYW5ncnk7CivlnaAgPiBmYWxsXC1kb3duOwor6J22ID4gYnV0dGVyZmx5Owor54SJID4gdGhlcmV1cG9uOwor56aAID4gcmVwb3J0XC10bzsKK+aMqyA+IHB1c2hcLWRvd247Civps4QgPiBhbGxpZ2F0b3I7CivosJAgPiBoYXJtb25pemU7CivlsY4gPiBleGNyZW1lbnQ7Civlj6ggPiB0YWxrYXRpdmU7CivokbEgPiBzY2FsbGlvbnM7CivmnqMgPiBkYXRlXC10cmVlOwor5L6jID4gY29tcGFuaW9uOwor6LC0ID4gcmVwcmltYW5kOwor5rG5ID4gdHVyYnVsZW50Owor55irID4gcGFyYWx5c2lzOwor6JSaID4gbHV4dXJpYW50Owor5rO7ID4gZHJhaW5cLW9mZjsKK+S/rSA+IHRlbXBlcmF0ZTsKK+eAkSA+IHdhdGVyZmFsbDsKK+idtCA+IGJ1dHRlcmZseTsKK+aoiiA+IGFcLXJhaWxpbmc7CivmlZsgPiBkcmF3XC1iYWNrOwor56anID4gaGFwcGluZXNzOwor6Iy1ID4gYVwtY3VzaGlvbjsKK+ajlSA+IGhlbXBcLXBhbG07CivlqJ8gPiBiZWF1dGlmdWw7CivlgKkgPiBiZWF1dGlmdWw7CivovpcgPiB0dXJuXC1vdmVyOwor5oGkID4gc2hvd1wtcGl0eTsKK+S+iCA+IGx1eHVyaW91czsKK+WkpSA+IGNvbXBhbmlvbjsKK+aygSA+IHNvYWtcLWludG87Civmp5sgPiB0aHJlc2hvbGQ7CivljKMgPiBzbWFsbFwtYm94Owor5o2OID4gdG9cLXNlbGVjdDsKK+eXqiA+IHBhcmFseXNpczsKK+eXniA+IGR5c3BlcHNpYTsKK+edkCA+IHNxdWludFwtYXQ7CivlnqYgPiBjdWx0aXZhdGU7CivmtZIgPiByaXZlcmJhbms7CivokbUgPiBzdW5mbG93ZXI7CivnnasgPiBleWVsYXNoZXM7Civnl4ogPiBiZVwtaGVhbGVkOwor5ZO6ID4gY2hld1wtZm9vZDsKK+eroyA+IHRlcm1pbmF0ZTsKK+WblCA+IG11dHRlcmluZzsKK+iXkCA+IGRpc3JlZ2FyZDsKK+W/kiA+IGV4Y2Vzc2l2ZTsKK+WfoCA+IHBvcnRcLWNpdHk7CivojaQgPiBtZWF0XC1kaWV0Owor56W6ID4gZ29vZFwtbHVjazsKK+ickiA+IG1pbGxpcGVkZTsKK+iPhyA+IG11c2hyb29tczsKK+ixmiA+IHNtYWxsXC1waWc7CivmspMgPiBjb25uZWN0ZWQ7CivlvKkgPiBjcm9zc1wtYm93Owor5q6HID4gZGllXC15b3VuZzsKK+iQpCA+IGdsb3dcLXdvcm07CivmoIggPiB3YXJlaG91c2U7CivphrogPiBnZXRcLWRydW5rOwor6JyIID4gY2VudGlwZWRlOwor5L28ID4gYmVhdXRpZnVsOwor6JqjID4gY2VudGlwZWRlOwor5oSrID4gZ3VpbGVsZXNzOwor6LCZID4gdmVyc2VkXC1pbjsKK+eGuSA+IGRpbVwtbGlnaHQ7CivmgIIgPiBpbnN0aWdhdGU7CivppqUgPiBmcmFncmFuY2U7Civmgb8gPiBpbnN0aWdhdGU7CivpgZsgPiB0YWtlXC13YWxrOwor55e5ID4gcGFyYWx5c2lzOwor6bq+ID4gYVwtcGVubmFudDsKK+WqsiA+IG1hcnJ5XC1vZmY7CivonJMgPiBkcmFnb25mbHk7CivplYEgPiBtYWduZXNpdW07CivmpLAgPiBwYWxtXC10cmVlOwor56C6ID4gd2hldHN0b25lOwor55eiID4gZHlzZW50ZXJ5Owor5ZeRID4gZWF0XC1zZWVkczsKK+iaryA+IGVhcnRod29ybTsKK+icmiA+IGNvY2tyb2FjaDsKK+iakyA+IGVhcnRod29ybTsKK+mthyA+IG5pZ2h0bWFyZTsKK+mYhiA+IGhpZ2hcLWRvb3I7CivlpqogPiBvbGRcLXdvbWFuOwor5pOAID4gcm9sbFwtZmxhdDsKK+WmjSA+IGJlYXV0aWZ1bDsKK+WnoyA+IGJlYXV0aWZ1bDsKK+iipCA+IGxvbmdpdHVkZTsKK+m6nSA+IG11c2tcLWRlZXI7CivojZ8gPiBsdXh1cmlhbnQ7CivkvbsgPiBmcml2b2xvdXM7Civpkr4gPiBwb3Rhc3NpdW07Civpo5kgPiB3aGlybHdpbmQ7CivlrZEgPiByZW1haW5pbmc7CivmqoQgPiBjYWxsXC1hcm1zOwor6ZqNID4gZHJ5XC1kaXRjaDsKK+ivvyA+IHBhc3NcLWJ1Y2s7Civnu6sgPiB0aGluXC1zaWxrOwor6YCEID4gYVwtc3VybmFtZTsKK+aijyA+IGhhbmRjdWZmczsKK+eliSA+IGhhcHBpbmVzczsKK+ifkSA+IGNvY2tyb2FjaDsKK+mSuiA+IGJyb2FkXC1heGU7CivojZ4gPiBidWNrd2hlYXQ7Civmn5EgPiB0YW5nZXJpbmU7CivlqbUgPiBiZWF1dGlmdWw7CivlqIkgPiBiZWF1dGlmdWw7CivorqcgPiBjb25mdXNpb247CivkuZwgPiB0b1wtc3F1aW50Owor5L+mID4gY29tcGFuaW9uOwor54euID4gaGFybW9uaXplOwor6aOaID4gd2hpcmx3aW5kOwor5ae5ID4gYmVhdXRpZnVsOwor5oSOID4gb2JzdGluYXRlOwor5aiyID4gYVwtZ29kZGVzczsKK+W/nSA+IGRpc2dyYWNlZDsKK+iRsyA+IGx1eHVyaWFudDsKK+ivriA+IGNyaXRpY2l6ZTsKK+mzjyA+IGh1Z2VcLWZpc2g7CivonIcgPiBqZWxseWZpc2g7Civliq0gPiBlbmNvdXJhZ2U7CivlhZYgPiBlc3RhYmxpc2g7CivlkbYgPiB0YWxrYXRpdmU7CivnmaMgPiByaW5nd29ybXM7Civnu6YgPiBzaWxrXC1jb3JkOwor6ZK4ID4gcGx1dG9uaXVtOwor6aaXID4gY2hlZWtib25lOwor6ZSwID4gbWFuZ2FuZXNlOwor5L6qID4gYVwtY29tcGFueTsKK+WHqyA+IHdpbGRcLWR1Y2s7Civnl7EgPiBoZWF0XC1yYXNoOwor55eIID4gY2FyYnVuY2xlOwor5oKMID4gYnJvdGhlcmx5Owor5Ya8ID4gXChzdXJuYW1lXCk7CivpuacgPiBwYXJ0cmlkZ2U7CivmgpIgPiBzb3Jyb3dmdWw7CivmgIMgPiByZWdyZXRmdWw7CivlopIgPiB3ZXRcLXRpbHRoOwor6Ki+ID4gYmFkXC1tb3V0aDsKK+WcriA+IGRlc3Ryb3llZDsKK+myiCA+IHNlYVwtcGVyY2g7CivpkpogPiBwbHV0b25pdW07Civnl78gPiBwYXJhbHlzaXM7CivmlIkgPiB0b1wtYmVja29uOwor6bKHID4gc2hlYXRmaXNoOwor6IaIID4gZGlhcGhyYWdtOwor54qNID4gYVwtYnVsbG9jazsKK+WmpCA+IGJlYXV0aWZ1bDsKK+mUlyA+IGdlcm1hbml1bTsKK+mOjyA+IHB1cmVcLWdvbGQ7CivplYUgPiBhbWVyaWNpdW07CivovoIgPiBhXC1jaGFyaW90Owor5aqqID4gb2xkXC13b21hbjsKK+WtkyA+IGJlYXV0aWZ1bDsKK+i3uCA+IGNsZWFyXC13YXk7CivnlpQgPiBjYXJidW5jbGU7CivnhbMgPiBiZVwtYnVybmVkOwor54m+ID4gdG9cLW9wcG9zZTsKK+aYgCA+IHN1blwtbGlnaHQ7CivkuakgPiB0b1wtZGl2aW5lOwor576fID4gaHlkcm94aWRlOwor6I29ID4gY29yaWFuZGVyOwor6LC1ID4gdGFsa2F0aXZlOwor57ugID4gd2VsbFwtcm9wZTsKK+WTkyA+IGdhcnJ1bG91czsKK+iErCA+IGFcLWJsYWRkZXI7CivmiKEgPiBzdWJqdWdhdGU7CivovocgPiBoYW5kXC1jYXJ0Owor6ZiIID4gdGhyZXNob2xkOwor6bmaID4gY29ybW9yYW50Owor6ZWeID4gYXJyb3doZWFkOwor6I+wID4gd2lsZFwtcmljZTsKK+igliA+IGluY2hcLXdvcm07Civpk6sgPiBsYXJnZVwtaG9lOwor5rCYID4gZGV1dGVyaXVtOwor6bu+ID4gdG9cLXN0cml2ZTsKK+mVpyA+IGxhbnRoYW51bTsKK+WeoSA+IHBsb3dcLXNvaWw7CivngpQgPiBhY2V0eWxlbmU7CivpuKwgPiBjb3Jtb3JhbnQ7CivplbEgPiB5dHRlcmJpdW07CivpkpUgPiBuZW9keW1pdW07Civlv60gPiBkZWxpZ2h0ZWQ7CivojqogPiBhcnRlbWlzaWE7Civoi7QgPiBzYWNrY2xvdGg7CivosLMgPiB0b1wtZGVjaWRlOwor6ZKvID4gcGFsbGFkaXVtOwor56KyID4gdGVsbHVyaXVtOwor55KpID4gamFkZVwtcmluZzsKK+mYgyA+IHRocmVzaG9sZDsKK+mlqyA+IHN1cmZlaXRlZDsKK+aSmSA+IGVjb25vbWl6ZTsKK+iTvCA+IHNtYXJ0d2VlZDsKK+mllCA+IGJyZWFrZmFzdDsKK+mUtiA+IHN0cm9udGl1bTsKK+ehjiA+IHdoZXRzdG9uZTsKK+aYgyA+IGFmdGVybm9vbjsKK+WUqiA+IHRvXC1yZWNpdGU7CivolYggPiBtdXNocm9vbXM7CivlhIcgPiBpbmdlbmlvdXM7CivpsrQgPiBmaXNoXC1ndXRzOwor6bKFID4gZmlzaFwtbmFtZTsKK+igiiA+IGNvY2tyb2FjaDsKK+iasCA+IG1pbGxpcGVkZTsKK+mTjSA+IGJlcnlsbGl1bTsKK+eGsyA+IHRvXC1zcHJlYWQ7Civog40gPiBndWFuaWRpbmU7Civov5UgPiBvYnN0aW5hdGU7CivpspAgPiBnbG9iZWZpc2g7CivphZAgPiBhbmh5ZHJpZGU7CivooYQgPiBlcGlzdGF4aXM7Civnn6cgPiBtdWNoXC1tb3JlOwor5oKrID4gc2luY2VyaXR5Owor6IamID4gcGhvc3BoaW5lOwor57yjID4gZmluZVwtc2lsazsKK+WuhCA+IGFcLXRyYWl0b3I7CivpmIwgPiB3ZW5cLXhpYW5nOwor5ZO/ID4gZXhjZWxsZW50Owor6Zi9ID4gZGFuZ2Vyb3VzOwor5YymID4gc21hbGxcLWJveDsKK+mFniA+IHBodGhhbGVpbjsKK+m9syA+IHRvb3RobGVzczsKK+m9rSA+IHRvb3RoYWNoZTsKK+m7vSA+IHRvXC1zdHJpdmU7CivpuJUgPiBjb3Jtb3JhbnQ7Civpt74gPiBhXC1zd2FsbG93Owor6betID4gd2F0ZXJcLWhlbjsKK+m3pyA+IGNvcm1vcmFudDsKK+m3pSA+IHRoZVwtZWdyZXQ7Civpt5MgPiBwYXJ0cmlkZ2U7Civpt48gPiBiaXJkXC1uYW1lOwor6beGID4gYmlyZFwtbmFtZTsKK+m2vyA+IGNvcm1vcmFudDsKK+m2oSA+IGNyb3NzYmlsbDsKK+m1tyA+IGNvXC13b3JrZXI7Civps6wgPiB3aWxkXC1kdWNrOwor6bOnID4gd2lsZFwtZHVjazsKK+mzoiA+IHNuYWtlaGVhZDsKK+myjiA+IGtpbmdcLWNyYWI7CivpsbggPiBzZWFcLXBlcmNoOwor6bG3ID4gY3JvY29kaWxlOwor6bGnID4gc25ha2VoZWFkOwor6bGfID4ga2luZ1wtY3JhYjsKK+mxmyA+IGZpc2hcLW5hbWU7CivpsKUgPiBodWdlXC1maXNoOwor6bCQID4gYWxsaWdhdG9yOwor6a+gID4gdG9cLWNvbmZlcjsKK+mvnSA+IGZpc2hcLWd1dHM7CivprqYgPiBzbmFrZWZpc2g7Civpro4gPiBzaGVhdGZpc2g7CivproAgPiBzbmFrZWZpc2g7CivprbIgPiBmaXNoXC1uYW1lOwor6a2eID4gZmlzaFwtdHJhcDsKK+mssCA+IGx1eHVyaWFudDsKK+msliA+IHdpbGRcLWhhaXI7Civpq6cgPiBsb25nXC1oYWlyOwor6auXID4gdGhlXC1za3VsbDsKK+mqrSA+IHNoaW5cLWJvbmU7CivpqZ8gPiBwcm9jZWR1cmU7CivpqKcgPiB0YW5cLWhvcnNlOwor6aiQID4gdG9cLXZlcml0eTsKK+mnuCA+IGdhbGxvcGluZzsKK+mmnSA+IGZyYWdyYW5jZTsKK+mmmyA+IGZyYWdyYW5jZTsKK+mmgiA+IGxlZnRvdmVyczsKK+mloCA+IHJpY2VcLWNha2U7CivppLogPiByaWNlXC1jYWtlOwor6aSxID4gZHJ5XC1nb29kczsKK+mklSA+IGxlZnRvdmVyczsKK+mkiCA+IHJpY2VcLWNha2U7Civpo6sgPiBzdXJmZWl0ZWQ7Civpo6UgPiByaWNlXC1jYWtlOwor6aOIID4gd2hpcmx3aW5kOwor6aOHID4gd2hpcmx3aW5kOwor6aOGID4gd2hpcmx3aW5kOwor6aOEID4gd2hpcmx3aW5kOwor6aODID4gd2hpcmx3aW5kOwor6aK3ID4gd2hpcmx3aW5kOwor6aK0ID4gd2hpcmx3aW5kOwor6aCvID4gY2hlZWtib25lOwor6aCRID4gb2JzdGluYXRlOwor6aCEID4gY2hlZWtib25lOwor6Z2qID4gdG9cLWNvYmJsZTsKK+mdpyA+IHdhc2hcLWZhY2U7CivpnYAgPiBkcml6emxpbmc7CivpnIIgPiBmaW5lXC1yYWluOwor6ZqDID4gdG9cLWV4Y2VlZDsKK+mWvyA+IHdlblwteGlhbmc7CivplrogPiBsb29rXC1kb3duOwor6ZasID4gaGlnaFwtZG9vcjsKK+mWqyA+IHRocmVzaG9sZDsKK+mUqyA+IGJlcmtlbGl1bTsKK+mUhiA+IHppcmNvbml1bTsKK+mStiA+IGNvbHVtYml1bTsKK+mSjCA+IHJ1dGhlbml1bTsKK+mSgSA+IGFcLW1hdHRvY2s7Civpka0gPiBsYW50aGFudW07CivpkaogPiBmaXJlcGxhY2U7CivpkL8gPiB5dHRlcmJpdW07CivpkLsgPiBkcnVtc3RpY2s7Civpj5sgPiB0b1wtcG9saXNoOwor6Y+QID4gcHVyZVwtZ29sZDsKK+mPgyA+IGFycm93aGVhZDsKK+mOvyA+IG5lcHR1bml1bTsKK+mOniA+IHBsb3dzaGFyZTsKK+mOhyA+IGFtZXJpY2l1bTsKK+mOgiA+IG1hZ25lc2l1bTsKK+mNuiA+IGdlcm1hbml1bTsKK+mNtiA+IHN0cm9udGl1bTsKK+mMsyA+IG1hbmdhbmVzZTsKK+mMhyA+IGJlcmtlbGl1bTsKK+mLryA+IHppcmNvbml1bTsKK+mLjSA+IGJlcnlsbGl1bTsKK+mKpCA+IGFtZXJpY2l1bTsKK+mKmiA+IGxhcmdlXC1ob2U7CivpiZ4gPiBicm9hZFwtYXhlOwor6Yi9ID4gcGx1dG9uaXVtOwor6Yi5ID4gYmVyeWxsaXVtOwor6YipID4gZmlyZXBsYWNlOwor6YiMID4gdG9cLXBpZXJjZTsKK+mIiCA+IHBsdXRvbml1bTsKK+mIgCA+IHBhbGxhZGl1bTsKK+mHuSA+IG5lb2R5bWl1bTsKK+mHlSA+IHJ1dGhlbml1bTsKK+mDniA+IGdlbnRsZW1hbjsKK+mBniA+IGhhbmRcLW92ZXI7CivpgJMgPiBoYW5kXC1vdmVyOwor6Ly+ID4gdHVyblwtb3ZlcjsKK+i8uCA+IHRyYW5zcG9ydDsKK+i8mCA+IGFcLWNhclwtcnV0Owor6LyFID4gYVwtY2hhcmlvdDsKK+i7tyA+IHNhY3JpZmljZTsKK+i7hCA+IHRvXC1nb3Zlcm47CivoupQgPiBmb2xsb3dcLWluOwor6LmVID4gY2xlYXJcLXdheTsKK+i5lCA+IHRlbXBvcmFyeTsKK+i3qSA+IHRvXC13YWRkbGU7Civotp0gPiB0b1wtcHVyc3VlOwor6LW/ID4gbGF0ZVwtc2xvdzsKK+izuCA+IGxlZnRvdmVyczsKK+izoCA+IGluZGVtbmlmeTsKK+ixtSA+IHlvdW5nXC1waWc7CivosZMgPiBiZWF1dGlmdWw7Civorp4gPiB0b1wtZGVjaWRlOwor6K20ID4gcmVwcmltYW5kOwor6K2KID4gd3JhbmdsaW5nOwor6K2FID4gd3JpZ2dsaW5nOwor6KuzID4gdmVyc2VkXC1pbjsKK+irpyA+IGhhcm1vbml6ZTsKK+irnSA+IGtub3dsZWRnZTsKK+iriSA+IHBhc3NcLWJ1Y2s7CivoqpogPiBjcml0aWNpemU7CivoqpYgPiBvYnN0aW5hdGU7CivoqKAgPiBtdWNoXC1tb3JlOwor6KiMID4gY29uZnVzaW9uOwor6KWvID4gdW5kZXJ3ZWFyOwor6KOyID4gd2Fpc3Rjb2F0Owor6J+6ID4gZWFydGh3b3JtOwor6J6MID4gYVwtc3RyaXBlZDsKK+icqCA+IGJ1dHRlcmZseTsKK+ibtSA+IGRyYWdvbmZseTsKK+ibjSA+IGdsb3dcLXdvcm07Civomr8gPiBtaWxsaXBlZGU7CivomJ4gPiB3aWxkXC12aW5lOwor6JaIID4gbHV4dXJpYW50Owor6JWXID4gbGV1Y2FjZW5lOwor6JS5ID4gd2lsZFwtdmluZTsKK+iUpSA+IHNjYWxsaW9uczsKK+iThiA+IHN0cmF3XC1tYXQ7CivokqIgPiBoZWR5c2FydW07CivokbcgPiBtZWF0XC1kaWV0Owor6JGTID4gdmVnZXRhYmxlOwor6JCKID4gZ29vc2Vmb290Owor6I+7ID4gYXJ0ZW1pc2lhOwor6I2NID4gYnVja3doZWF0Owor6IugID4gbXVsdGl0dWRlOwor6IuZID4gYVwtcGlnXC1zdHk7CivoirwgPiB0b1wtY2hvb3NlOwor6Im3ID4gYmVhdXRpZnVsOwor6ImxID4gZGlmZmljdWx0Owor6ImjID4gc3Rlcm5cLW9hcjsKK+iJjiA+IGZhc3RcLWJvYXQ7CivoiJ0gPiBsaW5jaFwtcGluOwor6IiYID4gYVwtbWFuc2lvbjsKK+iHryA+IHRvXC1wcmFpc2U7Civog6YgPiB0aGVcLW5hdmVsOwor6IClID4gZmFybVwtdG9vbDsKK+e+tiA+IHJhbmtcLW9kb3I7CivnvqUgPiBoeWRyb3hpZGU7CivnvYEgPiBhXC1jaXN0ZXJuOwor57mjID4gb2JzdGluYXRlOwor57mhID4gZW1icm9pZGVyOwor57mNID4gZW1icm9pZGVyOwor57iRID4gZmluZVwtc2lsazsKK+e4gyA+IGZpbmVcLXNpbGs7Civnt6UgPiBzd2FkZGxpbmc7CivntokgPiBlbWJyb2lkZXI7CivntoYgPiB3ZWxsXC1yb3BlOwor57OwID4gcmljZVwtYmFsbDsKK+eznSA+IHNjYXR0ZXJlZDsKK+eyvyA+IHJpY2VcLWNha2U7CivnsaggPiB0cm91c3NlYXU7CivnsIMgPiBzaWRlXC1yb29tOwor56uVID4gZGVjaWxpdGVyOwor56uPID4ga2lsb2xpdGVyOwor56uNID4gZGVjYWxpdGVyOwor56uGID4gZXhoYXVzdGVkOwor56q0ID4gZ2xhbmNlXC1hdDsKK+eqiyA+IGluXC1hXC1ob2xlOwor56mqID4gdG9cLXByYWlzZTsKK+eorCA+IGdsdXRpbm91czsKK+eonyA+IHJlcG9ydFwtdG87CivnprQgPiBzYWNyaWZpY2U7CivnpqQgPiBcKHN1cm5hbWVcKTsKK+emnCA+IHNhY3JpZmljZTsKK+emliA+IHNhY3JpZmljZTsKK+emlSA+IGV4Y2VsbGVudDsKK+emlCA+IGhhcHBpbmVzczsKK+elpiA+IGhhcHBpbmVzczsKK+eljiA+IGV4Y2VsbGVudDsKK+ekvyA+IHNhY3JpZmljZTsKK+ekvSA+IGJsZXNzaW5nczsKK+ekqiA+IHdoZXRzdG9uZTsKK+ekniA+IFwobWluZXJhbFwpOwor56KsID4gd2hldHN0b25lOwor56KGID4gYXJyb3dcLXRpcDsKK+ehuyA+IG9ic3RpbmF0ZTsKK+egriA+IGFycm93XC10aXA7CivnoKwgPiBiaWdcLXN0b25lOwor552eID4gc3F1aW50XC1hdDsKK+eclSA+IHJlc3RyYWludDsKK+ebtSA+IFwoc3VybmFtZVwpOwor55uaID4gXChzdXJuYW1lXCk7CivnmbEgPiBwYXJhbHlzaXM7CivnmbAgPiBjYXJidW5jbGU7CivnmawgPiByaW5nd29ybXM7CivnmK0gPiBhXC13aGl0bG93Owor55icID4gYVwtcG9seXB1czsKK+eYkyA+IHBhcmFseXNpczsKK+eXoSA+IGFcLWRpc2Vhc2U7Civnl5AgPiB3aGlybHdpbmQ7CivnlrYgPiBkeXNlbnRlcnk7CivnlbUgPiBkZWxpbmVhdGU7CivnlbEgPiB0b1wtZGV0YWluOwor55WLID4gdGlsbFwtbGFuZDsKK+eUtCA+IGNvY2tyb2FjaDsKK+eUqiA+IFwoc3VybmFtZVwpOwor55SmID4gYmVcLXJlYm9ybjsKK+eUhSA+IGNlbnRpZ3JhbTsKK+eTuCA+IGhlY3RvZ3JhbTsKK+eTsSA+IG1pbGxpZ3JhbTsKK+eSvyA+IGZpbmVcLWphZGU7CivnkbQgPiB0d2luXC1nZW1zOwor55GjID4gZnJhZ21lbnRzOwor542AID4gdG9cLWdhdGhlcjsKK+eLsyA+IGFybWFkaWxsbzsKK+eKsCA+IGFybWFkaWxsbzsKK+eKpyA+IHNhY3JpZmljZTsKK+eHtiA+IHRvXC1zY29yY2g7Civnh6wgPiBidXJuXC1kb3duOwor54eKID4gbHV4dXJpYW50Owor54a/ID4gYnJpbGxpYW50Owor54a6ID4gZGltXC1saWdodDsKK+eCmCA+IGJyaWxsaWFudDsKK+eAiSA+IGRyYWluXC1vZmY7Civmv6kgPiBwb3VyXC1kb3duOwor5r+bID4gZHJpenpsaW5nOwor5ru4ID4gcml2ZXJiYW5rOwor5rm8ID4gYmxhY2tcLW11ZDsKK+a5jyA+IHdhc2hcLWZhY2U7CivmuYUgPiBib2lsXC1zaWxrOwor5repID4gcGFzc1wtb3ZlcjsKK+a2tyA+IHJhaW5zdG9ybTsKK+a0kSA+IHdoaXJscG9vbDsKK+ayuiA+IHR1cmJ1bGVudDsKK+aupCA+IGRpZVwteW91bmc7CivmroggPiBpbmZlcnRpbGU7CivmroAgPiBkaWVcLXlvdW5nOwor5q2bID4gZHJhd1wtYmFjazsKK+aslSA+IHRyZWVcLW5hbWU7CivmqrsgPiB0aHJlc2hvbGQ7CivmqZogPiB0YWxsXC10cmVlOwor5qizID4gdGFsbFwtdHJlZTsKK+aoiyA+IHRyZWVcLW5hbWU7Civmp6ogPiBnZW5lcmFsbHk7Civmp6kgPiBnZW5lcmFsbHk7CivmpqogPiBoZWFkYm9hcmQ7CivmpLYgPiBwYWxtXC10cmVlOwor5qOnID4gd2FyZWhvdXNlOwor5qOlID4gYVwtcmFpbGluZzsKK+ajlyA+IGRhdGVcLXRyZWU7Civmo5YgPiBkb29yXC1zdG9wOwor5qKcID4gY2hvcHN0aWNrOwor5qKNID4gdHJlZVwtbmFtZTsKK+agsSA+IGxhcmdlXC1wZWc7CivmoK0gPiBraW5nXC1wb3N0Owor5qCfID4gaGVtcFwtcGFsbTsKK+agkiA+IGNyb3NzXC1iYXI7Civmn7kgPiBwZXJzaW1tb247Civmn4ggPiBjb250YWluZXI7Civmnr4gPiBwZXJzaW1tb247CivmnrkgPiBkcnVtc3RpY2s7CivmnqkgPiBwaW5lXC10cmVlOwor5p6oID4gZG9vclwtc3RvcDsKK+aemSA+IHRyZWVcLWtub3Q7CivmnakgPiBoZWFkYm9hcmQ7CivmnJ4gPiBmdWxsXC15ZWFyOwor5pyTID4gc2FjcmlmaWNlOwor5puxID4gY29ja3JvYWNoOwor5pugID4gZXh0ZW5zaXZlOwor5pqNID4gc3Vuc3Ryb2tlOwor5pi/ID4gZXh0ZW5zaXZlOwor5piqID4gZGVsaWdodGVkOwor5peqID4gdW5pdGVkXC1pbjsKK+aXmyA+IGFcLXBlbm5hbnQ7Civml5kgPiBhXC1wZW5uYW50Owor5paCID4gZHJhd1wtYmFjazsKK+aViyA+IHRvXC1zdHJpa2U7CivmlIsgPiB0b1wtY2x1dGNoOwor5pSDID4gcHJlY2VkaW5nOwor5pO/ID4gdG9cLXNlbGVjdDsKK+aTmiA+IHRvXC1vY2N1cHk7Civmk5AgPiB0b1wtcHV0XC1vbjsKK+aTiSA+IHRvXC1waWVyY2U7Civmkb0gPiB0aHJvd1wtb3V0Owor5pGuID4gdG9cLXJhdHRsZTsKK+aRmyA+IHRvXC1zcHJlYWQ7CivmkJkgPiB0b1wtaGFuZGxlOwor5pCVID4gdG9cLXN0cmlrZTsKK+aPpiA+IHRvXC1jbHV0Y2g7Civmj6UgPiBzY3JhdGNoZXI7CivmjpkgPiB0b1wtc3RyaXZlOwor5om7ID4gdG9cLXN0cmlrZTsKK+aJpCA+IHRvXC10aHJ1c3Q7CivmiJwgPiB0b1wtc2NyYXBlOwor5oavID4gc29ycm93ZnVsOwor5oauID4gcmVncmV0ZnVsOwor5oW9ID4gc29ycm93ZnVsOwor5oW8ID4gc29ycm93ZnVsOwor5oWkID4gc2luY2VyaXR5Owor5oWGID4gZXhjZXNzaXZlOwor5oSoID4gc2luY2VyaXR5Owor5oK9ID4gc29ycm93ZnVsOwor5oKBID4gaXJyaXRhYmxlOwor5oGRID4gdG9cLWNoYW5nZTsKK+aBiiA+IGJlXC11bml0ZWQ7CivmgLogPiB0b1wtZW5kdXJlOwor5oCeID4gdG9cLWdyaWV2ZTsKK+aAlyA+IG9ic2VydmFudDsKK+W/gCA+IHRvXC1zdHJvbGw7CivlvYwgPiBleHRlbnNpdmU7Civlu74gPiB0d29cLWhhbmRzOwor5bu4ID4gZW5saWdodGVuOwor5bqJID4gYVwtdmlsbGFnZTsKK+W5qSA+IHRyYXBwaW5nczsKK+W5mSA+IGFcLWN1cnRhaW47CivluKUgPiBjb21tYW5kZXI7Civlto4gPiBsdXh1cmlhbnQ7Civlr70gPiBhXC1oYW5kZnVsOwor5a+YID4gcHV0XC1hc2lkZTsKK+WvlyA+IGFcLXN1cm5hbWU7Civlr5YgPiBncmFkdWFsbHk7Civlr4MgPiBncmlldmFuY2U7CivlroIgPiBzY2F0dGVyZWQ7CivlrIsgPiBiZWF1dGlmdWw7Civlq70gPiBwbGF5XC13aXRoOwor5aubID4gY29tcGxpYW50Owor5auXID4gb2xkXC13b21hbjsKK+WrlSA+IGNvbXBsaWFudDsKK+WquiA+IGJlYXV0aWZ1bDsKK+WqrCA+IGdvdmVybmVzczsKK+WqlSA+IHVuZGVjaWRlZDsKK+WqhCA+IGJlYXV0aWZ1bDsKK+WppSA+IGJlYXV0aWZ1bDsKK+WnuCA+IGJlYXV0aWZ1bDsKK+WnsSA+IGJlYXV0aWZ1bDsKK+WnoiA+IGJlYXV0aWZ1bDsKK+WnniA+IGNvbmN1YmluZTsKK+WkuyA+IGZpc2hcLW5hbWU7CivlpIwgPiB0b1wtZGF3ZGxlOwor5aK+ID4gY3VsdGl2YXRlOwor5aKcID4gZmFsbFwtZG93bjsKK+WhnSA+IGZsYXRcLWJhbms7Civln5MgPiBlbmNsb3N1cmU7CivlnpcgPiBzYWNyaWZpY2U7CivlnIogPiByZXN0XC1yb29tOwor5ZqcID4gYmVcLXNpbGVudDsKK+WZgSA+IG5hc3RpbmVzczsKK+WYtSA+IGdhcnJ1bG91czsKK+WYkSA+IHRvXC1tZW5hY2U7CivllqYgPiB0YWxrYXRpdmU7CivllY4gPiBvYnN0aW5hdGU7Civlk6sgPiB0b1wtY2Fqb2xlOwor5ZK1ID4gdG9cLXJldmlsZTsKK+WRpyA+IHRvXC1yZWJ1a2U7Civlj4UgPiB0b1wtY291bmVsOwor5Y6yID4gd2hldHN0b25lOwor5Y6TID4gcHJlY2lwaWNlOwor5YytID4gc21hbGxcLWJveDsKK+WMmCA+IHRoZVwtYnJhaW47Civli68gPiBleGhhdXN0ZWQ7Civli6kgPiB3b3JrXC1oYXJkOwor5YmwID4gbGVmdG92ZXJzOwor5YmZID4gZXN0YWJsaXNoOwor5YmPID4gZXN0YWJsaXNoOwor5YixID4gZXN0YWJsaXNoOwor5YihID4gdG9cLXNjcmFwZTsKK+WIlCA+IHNjb29wXC1vdXQ7CivliIUgPiB0b1wtY3JlYXRlOwor5Ye3ID4gZGlydFwtY2xvZDsKK+WHmSA+IGFuXC1pY2ljbGU7CivlhZcgPiBlc3RhYmxpc2g7CivlhYcgPiBhdHJvY2lvdXM7CivlhLMgPiBvYnN0aW5hdGU7CivlhK0gPiB0b1wtYXNzaXN0Owor5YSVID4gYVwtY29tcGFueTsKK+WElCA+IGNvbXBhbmlvbjsKK+WEiSA+IHRlbXBlcmF0ZTsKK+WDnSA+IHRvXC1yZXZpbGU7Civlg4cgPiBodW1pbGlhdGU7CivlgrogPiB0b1wtaGluZGVyOwor5YCiID4gYmVhdXRpZnVsOwor5L62ID4gY29tcGFuaW9uOwor5L6OID4gdG9cLXNvb3RoZTsKK+S9qyA+IFwoc3VybmFtZVwpOwor5Ly7ID4gbWVzc2VuZ2VyOwor5LyLID4gZGVjZXB0aXZlOwor5LuIID4gXChzdXJuYW1lXCk7CivkuYYgPiBsb25nXC10aW1lOwor5LazID4gdG9cLWxvb2t1cDsKK+S2kSA+IHRvXC1zbmVlemU7Civkto0gPiB0b1wtc25lZXplOwor5LWvID4gYVwtdmlsbGFnZTsKK+S0oSA+IGJlYXV0aWZ1bDsKK+S0jyA+IGFcLXN3YWxsb3c7Civks7ogPiB0aGVcLXF1YWlsOwor5LK/ID4gY29ybW9yYW50Owor5LKoID4gd2lsZFwtc3dhbjsKK+SxiCA+IGZpc2hcLXB1bHA7CivksKUgPiBhXC1jeWNsb25lOwor5LCWID4gZmluZVwtaGFpcjsKK+SwkCA+IGxvbmdcLWhhaXI7CivksIggPiBmaW5lXC1oYWlyOwor5K+9ID4gZmluZVwtaGFpcjsKK+SvtyA+IGZpbmVcLWhhaXI7Civkr6YgPiB0aW55XC1ib25lOwor5K6cID4gdG9cLWdhbGxvcDsKK+StrCA+IHRvXC1rb3d0b3c7CivkrasgPiB0b1wta293dG93Owor5K2bID4gdGFzdGVsZXNzOwor5K2ZID4gZXhxdWlzaXRlOwor5K2VID4gdGFzdGVsZXNzOwor5K2RID4gaW5jb3JydXB0Owor5Ky2ID4gdG9cLXN0cmF2ZTsKK+SslCA+IGh1cnJpY2FuZTsKK+SskyA+IGh1cnJpY2FuZTsKK+SruyA+IGFcLXR5cGhvb247Civkq7ogPiBhXC10eXBob29uOwor5KudID4gZnJhZ3JhbmNlOwor5KuUID4gYVwtc2VydmFudDsKK+SppiA+IHRoZVwtcmVpbnM7CivkqK0gPiB0aGVcLXNraWVzOwor5KiQID4gdG9cLXNwcmVhZDsKK+SojSA+IGRlZXBcLXBvbmQ7Civkp4UgPiBkYW5nZXJvdXM7CivkprUgPiBpbmNhcGFibGU7CivkpqwgPiBhXC12YWNhbmN5Owor5KaGID4gYVwtYmlnXC1ob2U7Civkpb0gPiBmYXJtXC10b29sOwor5KSkID4gaW1wbGVtZW50Owor5KSPID4gZGVzdHJveWVkOwor5KO4ID4gdGFzdGVsZXNzOwor5KOpID4gYmVhdXRpZnVsOwor5KKxID4gdG9cLXNsaWdodDsKK+SiqyA+IHRvXC1mb2xsb3c7Civkop8gPiB0b1wtdHJhdmVsOwor5KKNID4gdG9cLWhhc3RlbjsKK+SiiiA+IHRvXC10cmF2ZWw7CivkoZQgPiB0b1wtaGluZGVyOwor5KCyID4gdG9cLWxpc3RlbjsKK+SgryA+IHRvXC1hc2NlbmQ7CivkoK4gPiB0b1wtcHJhbmNlOwor5KCGID4gdG9cLWtvd3RvdzsKK+SfuyA+IGJhcmVcLWZlZXQ7Civkn6UgPiBsdXh1cmlhbnQ7Civkn54gPiB0b1wtZmFsdGVyOwor5J+MID4gZGl2ZXJnaW5nOwor5J6+ID4gZnJpdm9sb3VzOwor5J68ID4gdG9cLWVzY2FwZTsKK+SeoyA+IHRvXC1yZXNpc3Q7CivknpcgPiBzdXNwaWNpb247CivknpIgPiByZWRcLWNvbG9yOwor5J6QID4gcGxlbnRpZnVsOwor5J6NID4gdG9cLWJlc3RvdzsKK+SeiSA+IGFcLXN1cnBsdXM7Civknb4gPiB0b1wtYmVzdG93Owor5J28ID4gdG9cLWJlc3RvdzsKK+ScrSA+IHRvXC1kcmVkZ2U7CivknJ8gPiB0b1wtdmVyaWZ5Owor5JydID4gdW5jZXJ0YWluOwor5JyFID4gdG9cLWZvbGxvdzsKK+SbuyA+IHRvXC1pbmR1Y2U7Civkm7kgPiB0b1wtYWNjdXNlOwor5Ju4ID4gZ2FycnVsb3VzOwor5JuzID4gdG9cLW1hbGlnbjsKK+SbrCA+IGJhYnlcLXRhbGs7Civkm6ogPiBsb3F1YWNpdHk7Civkm54gPiBsb3F1YWNpdHk7Civkm5ogPiB0b1wtcHJhaXNlOwor5JuLID4gdG9cLXNjaGVtZTsKK+SbgSA+IHRvXC1tdXJtdXI7CivkmrUgPiB0b1wtaW5kdWNlOwor5Jm4ID4gdG9cLW9idGFpbjsKK+SZtyA+IHRvXC1vYnRhaW47Civkma8gPiBleHF1aXNpdGU7CivkmacgPiByZWRcLWNvbG9yOwor5JmYID4gZXhxdWlzaXRlOwor5Ji8ID4gc3RvY2tpbmdzOwor5JiaID4gYVwtc2VydmFudDsKK+SYlyA+IGJlYXV0aWZ1bDsKK+SYkSA+IHRoZVwtcHVsc2U7Civkl5kgPiBlYXJ0aHdvcm07Civkl5MgPiBkcmFnb25mbHk7Civkl4wgPiBkcmFnb25mbHk7Civkl4UgPiBtaWxsaXBlZGU7CivklqEgPiBtaWxsaXBlZGU7CivklbkgPiBhXC1jdXJ0YWluOwor5JWyID4gYXJ0ZW1pc2lhOwor5JWpID4gZHJ5XC1mcnVpdDsKK+SVjyA+IGFydGVtaXNpYTsKK+SUsyA+IGNoaWNrbGluZzsKK+STsCA+IGFic2ludGhpbjsKK+STlyA+IHNjYWxsaW9uczsKK+SThyA+IGx1eHVyaWFudDsKK+SSsCA+IHRvXC1mb2xsb3c7CivkkqAgPiBsdXh1cmlhbnQ7CivkkoogPiBhXC1wYXRpZW50Owor5JGqID4gYVwtc2FpbGluZzsKK+SRnyA+IGx1eHVyaWFudDsKK+SRkyA+IGFcLWxvb2tvdXQ7CivkkZEgPiBhXC1zZXJ2YW50Owor5JGJID4gZXhjcmVtZW50Owor5JGAID4gdGhlXC1uYXZlbDsKK+SQuiA+IGRlbGljaW91czsKK+SQoSA+IHRoZVwtbmF2ZWw7CivkkJsgPiB0b1wtbG9vc2VuOwor5JCMID4gbHV4dXJpYW50Owor5JCGID4gYmlnXC1iZWxseTsKK+SPvSA+IG1lYXRcLXB1bHA7Civkj6wgPiB0aGVcLXNwaW5lOwor5I+gID4gbWVhdFwtc291cDsKK+SPniA+IHRoZVwtYmVsbHk7CivkjqEgPiB0b1wtc2hyaW5rOwor5I6DID4gZmluZVwtZG93bjsKK+SNjiA+IGFcLXNwaW5kbGU7CivkjLIgPiBsaWdodFwtcmVkOwor5IybID4gZW50b3VyYWdlOwor5IyWID4gdG9cLWdhdGhlcjsKK+SMiiA+IGVudG91cmFnZTsKK+SLoCA+IHRvXC1yZXBhaXI7CivkirAgPiBmb29kc3R1ZmY7CivkipwgPiBkdW1wbGluZ3M7Civkib0gPiByaWNlXC1jYWtlOwor5Im8ID4gbWF0ZXJpYWxzOwor5ImYID4gdG9cLXBpZXJjZTsKK+SItSA+IGx1eHVyaWFudDsKK+SHkCA+IHRvXC1hcnJpdmU7CivkhpAgPiBhXC1jb3VudHJ5Owor5IWOID4gZGlmZmVyZW50Owor5IWFID4gZmFybVwtdG9vbDsKK+SFgyA+IGxhdGVcLWNyb3A7CivkhKwgPiB0b1wtY2hhbmdlOwor5ISZID4gaGFwcGluZXNzOwor5IOpID4gYVwtbWluZXJhbDsKK+SDlSA+IHN0b25ld2FyZTsKK+SDkyA+IHRvXC1wdW5pc2g7Civkg4AgPiBtaWxsc3RvbmU7Civkgr4gPiB0b1wtcG9saXNoOwor5IKIID4gdG9cLXBpZXJjZTsKK+SChyA+IHRvXC1waWVyY2U7CivkgaIgPiBleHF1aXNpdGU7CivkgZAgPiBkZWVwXC1leWVkOwor5ICwID4gb3BlblwtZXllczsKK+SArCA+IHRvXC1nbGFuY2U7CivkgKIgPiB0b1wtZ2xhbmNlOwor5IChID4gdG9cLXNweVwtb247CivkgJAgPiB0b1wtcmVnYXJkOwor47+/ID4gd2luZVwtY3VwczsKK+O/nyA+IGhlXC1icmlnaHQ7Civjv5sgPiBjYXJidW5jbGU7Civjv4cgPiBwYXJhbHlzaXM7Civjvq0gPiB0b1wtc2hyaW5rOwor476lID4gYmVsbHlhY2hlOwor476jID4gdG9cLXNoaXZlcjsKK+O+iyA+IGR5c2VudGVyeTsKK+O9rCA+IHRvXC1hc3Npc3Q7CivjvZ4gPiB0b1wtcmVtYWluOwor472RID4gZGVsaWNpb3VzOwor472JID4gYVwtYmlnXC1qYXI7CivjvLogPiBwb3JjZWxhaW47CivjvJogPiBlYXJ0aHdhcmU7Civju70gPiBmaW5lXC1qYWRlOwor47uxID4gdG9cLWNpcmNsZTsKK+O7jCA+IGZpbmVcLWphZGU7Civju4kgPiBmaW5lXC1qYWRlOwor47e8ID4gYVwtc3dhbGxvdzsKK+O3jiA+IHN1bnN0cm9rZTsKK+O1lyA+IHR1cmJ1bGVudDsKK+O1lCA+IG5vdFwtY2xlYXI7CivjtIEgPiB0b1wtYWRkXC10bzsKK+OzqCA+IHRvXC1zcGxhc2g7CivjsrUgPiB0aGVcLXNraWVzOwor47KmID4gbG9uZ1wtaGFpcjsKK+OypCA+IGxvbmdcLWhhaXI7CivjspogPiBsb25nXC1oYWlyOwor47GYID4gbmlnaHRtYXJlOwor47CWID4gdGhlXC1vbGl2ZTsKK+OvuiA+IGFcLWNhYmluZXQ7Civjr68gPiBzbWFsbFwtY3VwOwor46+dID4gcGF1bG93bmlhOwor46+EID4gbHV4dXJpYW50Owor466ZID4gYVwtcGl0ZmFsbDsKK+OulCA+IHZlZ2V0YWJsZTsKK+OugyA+IGZhcm1cLXRvb2w7CivjraIgPiBtZWNoYW5pY3M7CivjrL8gPiBtb29ubGlnaHQ7CivjrKsgPiBjbGVhclwtc2t5Owor46yjID4gbHV4dXJpYW50Owor46yeID4gc3Vuc3Ryb2tlOwor46qsID4gdG9cLXBpZXJjZTsKK+OqqSA+IHRvXC1zdHJpa2U7CivjqqQgPiB0b1wtZmluaXNoOwor46qRID4gdG9cLWZvbGxvdzsKK+OqjiA+IHVuY2VydGFpbjsKK+OqiyA+IHRvXC1yZXNpc3Q7CivjqoggPiB0b1wtbGV0XC1nbzsKK+OqhSA+IHRvXC1jaGFuZ2U7CivjqbEgPiB0b1wtc2VsZWN0Owor46mnID4gdG9cLXN0cmlrZTsKK+OpkiA+IHRvXC1hcnJlc3Q7CivjqYwgPiB0b1wtc3RyaWtlOwor46mHID4gdGhlXC10aHVtYjsKK+OphCA+IHRvXC1zdHJpa2U7CivjqLYgPiB0b1wtdGhyZXNoOwor76ibID4gaGFwcGluZXNzOwor76iaID4gZ29vZFwtbHVjazsKK+OomiA+IHRvXC1zZWxlY3Q7CivjqI0gPiB0b1wtZGVmZW5kOwor46iJID4gdG9cLXNtb290aDsKK++ohCA+IHJlc2lkZW5jZTsKK+OohCA+IHRvXC1waWVyY2U7Civjp74gPiB0b1wtc3RyaWtlOwor76e8ID4gcmVjb2duaXplOwor76e2ID4gZHJhd1wtbmVhcjsKK+OnsCA+IHRvXC1zdHJpa2U7Civjp6kgPiB0b1wtZGlzcGVsOwor76elID4gZHlzZW50ZXJ5Owor46emID4gdG9cLXN0cmlrZTsKK+OnlyA+IHRvXC1jbGF0Y2g7Civjp5YgPiB0b1wtY2x1dGNoOwor46eMID4gdG9cLXNlbGVjdDsKK++ngiA+IHNtYXJ0d2VlZDsKK++ngSA+IGJlXC1oZWFsZWQ7CivvprsgPiBvZmZpY2lhbHM7CivvprogPiB0b1wtZmluaXNoOwor46a7ID4gdG9cLXB1dFwtb247CivvprUgPiBwcmVjZWRlbnQ7CivjprQgPiB0b1wtYXJyZXN0Owor46avID4gYVwtY2VydGFpbjsKK+OmqiA+IGNvbXBsYWludDsKK+OmnSA+IGJlYXV0aWZ1bDsKK+OmliA+IHJlc2VudGZ1bDsKK++miCA+IGJlYXV0aWZ1bDsKK++mhSA+IHdoZXRzdG9uZTsKK+OlviA+IG1vcnRpZmllZDsKK+OlsyA+IHRvXC1zdXJ2ZXk7Civjpa4gPiBvYnN0aW5hdGU7CivjpacgPiB0b1wtZm9sbG93Owor46WmID4gc2F0aXNmaWVkOwor76WiID4gZGlmZmVyZW50Owor76WXID4gdGhpblwtc2lsazsKK+OlliA+IHJlZFwtY29sb3I7CivjpY4gPiB0b1wtcmVzZW50Owor46WAID4gZXhjbHVzaXZlOwor46S1ID4gY29wYXNzaW9uOwor76SyID4gZmlyZXBsYWNlOwor76SsID4gZ2VudGxlbWFuOwor46SlID4gc29ycm93ZnVsOwor76SbID4gY29uZnVzaW9uOwor46SYID4gb2JzdGluYXRlOwor46SSID4ga25vd2xlZGdlOwor46SLID4gY29uZnVzaW9uOwor46SHID4gdGVycmlmaWVkOwor46SGID4gbmF1c2VhdGVkOwor46O8ID4gdG9cLWVuZHVyZTsKK+OjuiA+IHRoZVwtaGVhcnQ7Civjo5AgPiB0b1wtY2hhbmdlOwor46KoID4gdG9cLWRlZmVuZDsKK+OioSA+IHRvXC1leGhvcnQ7CivjooAgPiBzaWRlXC1yb29tOwor46G/ID4gdG9cLWFjY3VzZTsKK+OhvCA+IGFcLWdyYW5hcnk7CivjobogPiBhXC1jb3R0YWdlOwor46GiID4gYVwtY3VydGFpbjsKK+OhoCA+IGFcLXBpY3R1cmU7CivjoZcgPiByZWRcLXBhcGVyOwor46CuID4gdG9cLWV4cGFuZDsKK+OgmCA+IGFuXC1pc2xhbmQ7CivjnrUgPiBmcml2b2xvdXM7CivjnqMgPiBmcmFncmFuY2U7CivjnY4gPiB0b1wtZGVjaWRlOwor45y7ID4gdG9cLWFkbWlyZTsKK+OcsCA+IGV4cXVpc2l0ZTsKK+OcqCA+IGJlYXV0aWZ1bDsKK+OcniA+IGJlYXV0aWZ1bDsKK+OcmCA+IGRlbGljYXRlZDsKK+OcliA+IGV4cXVpc2l0ZTsKK+OcjyA+IGxhc3RcLW5hbWU7CivjnIogPiBleHF1aXNpdGU7CivjnIQgPiBsYXN0XC1uYW1lOwor45u+ID4gbm90XC1jbGVhbjsKK+ObuiA+IG5vdFwtY2xlYW47Civjm7EgPiBleHF1aXNpdGU7Civjm5cgPiBmcml2b2xvdXM7Civjm5QgPiBleHF1aXNpdGU7CivjmrAgPiBhblwtZW1icnlvOwor45qvID4gbGFzdFwtbmFtZTsKK+OamyA+IGNvcnB1bGVudDsKK+OamCA+IGFcLXBhcnRuZXI7CivjmbUgPiBhXC1sb29rb3V0Owor45mcID4gYVwtbG9va291dDsKK+OYoyA+IGNvbXBhc3NlczsKK+OXsyA+IGZvcmdldGZ1bDsKK+OXoyA+IHRvXC1zbmVlemU7CivjlrwgPiB0b1wtc2NoZW1lOwor45amID4gbG9xdWFjaXR5Owor45aCID4gbG9xdWFjaXR5Owor45W7ID4gdG9cLXJlZnVzZTsKK+OVuSA+IGFcLWJ1Y2tsZXI7CivjlZcgPiB0b1wtaW5kdWNlOwor45WVID4gZGVjZXB0aW9uOwor45WRID4gYVwta2l0Y2hlbjsKK+OVjyA+IGFcLWtpdGNoZW47CivjlYsgPiByb2NrXC1sYW5kOwor45WIID4gdG9cLWxpbmdlcjsKK+OUviA+IGxhc3RcLW5hbWU7CivjlKcgPiB0b1wtaW5jaXRlOwor45OvID4gdG9cLWRpdmlkZTsKK+OTqCA+IHRvXC1waWVyY2U7Civjk4sgPiB0b1wtZnJlZXplOwor45OEID4gdG9cLXBsb3VnaDsKK+OSlyA+IGFcLXNlcnZhbnQ7CivjkpMgPiB0b1wtZXNjYXBlOwor45KLID4gYVwtc2VydmFudDsKK+OSiCA+IGRhbmdlcm91czsKK+OSgiA+IHRvXC1iZXN0b3c7Civjka8gPiBsYXN0XC1uYW1lOwor45GuID4gbGFzdFwtbmFtZTsKK+ORpyA+IHBlcnR1cmJlZDsKK+ORmSA+IGZyaXZvbG91czsKK+ORmCA+IGFcLXNlcnZhbnQ7CivjkY4gPiBsYXN0XC1uYW1lOwor45GEID4gdG9cLWluc3VsdDsKK+OQryA+IHRvXC1lbXBsb3k7CivjkK0gPiBhXC1ncmFuYXJ5Owor45CpID4gd2luZVwtY3VwczsKK+OQhiA+IHRvXC1mb2xsb3c7Civlv7UgPiB0aGlua1wtb2Y7CivkvJogPiBhc3NlbWJsZTsKK+WtpiA+IGxlYXJuaW5nOwor5b6SID4gZGlzY2lwbGU7CivnnaYgPiBmcmllbmRseTsKK+aXoCA+IG5lZ2F0aXZlOwor5pa5ID4gYVwtc3F1YXJlOwor5YmNID4gaW5cLWZyb250Owor55yJID4gZXllYnJvd3M7CivnnIEgPiBwcm92aW5jZTsKK+ebtCA+IHN0cmFpZ2h0Owor5buiID4gYWJyb2dhdGU7Civnm5sgPiBhYnVuZGFudDsKK+i7kiA+IGNhcnJpYWdlOwor5YWoID4gbWFpbnRhaW47Civlu4ogPiBjb3JyaWRvcjsKK+W7gyA+IGFicm9nYXRlOwor55q6ID4gd3JpbmtsZXM7CivlurcgPiBwZWFjZWZ1bDsKK+mXtCA+IG1pZHBvaW50Owor6LqKID4gaGVzaXRhdGU7CivouocgPiBoZXNpdGF0ZTsKK+esrCA+IHNlcXVlbmNlOwor5bm7ID4gaWxsdXNpb247CivnmYcgPiBlcGlsZXBzeTsKK+WxsSA+IG1vdW50YWluOwor6LifID4gaGVzaXRhdGU7Civlt74gPiBrZXJjaGllZjsKK+W3pyA+IHNraWxsZnVsOwor5a6JID4gcGVhY2VmdWw7Civot50gPiBkaXN0YW5jZTsKK+eVjCA+IGJvdW5kYXJ5Owor5Lu7ID4gdHJ1c3RcLXRvOwor5Y+wID4gcGxhdGZvcm07CivosaEgPiBlbGVwaGFudDsKK+mimCA+IGZvcmVoZWFkOwor6LOiID4gdmlydHVvdXM7Civos4cgPiBwcm9wZXJ0eTsKK+iyvCA+IHBhc3RlXC10bzsKK+iyuyA+IGV4cGVuc2VzOwor6LKeID4gdmlydHVvdXM7CivotYQgPiBwcm9wZXJ0eTsKK+WxpSA+IGZvb3R3ZWFyOwor6LGQID4gYWJ1bmRhbnQ7CivosYogPiBhYnVuZGFudDsKK+atpiA+IG1pbGl0YXJ5Owor55CyID4gbmVja2xhY2U7CivlsKAgPiB2ZXJ5XC1mZXc7CivlrowgPiBjb21wbGV0ZTsKK+WNsyA+IHByb21wdGx5Owor5a+1ID4gZmF2b3JpdGU7Civor60gPiBsYW5ndWFnZTsKK+ePjSA+IHByZWNpb3VzOwor5a+MID4gYWJ1bmRhbnQ7CivllYYgPiBjb21tZXJjZTsKK+WunSA+IHRyZWFzdXJlOwor5Y2DID4gdGhvdXNhbmQ7CivlrpwgPiBzdWl0YWJsZTsKK+WumCA+IG9mZmljaWFsOwor56uZID4gc3RhbmRcLXVwOwor5a24ID4gbGVhcm5pbmc7CivorawgPiBtZXRhcGhvcjsKK+mmmSA+IGZyYWdyYW50Owor5Ly8ID4gcmVzZW1ibGU7CivlrKIgPiB0cm91YmxlZDsKK+iZvSA+IGFsdGhvdWdoOwor6ZuGID4gYXNzZW1ibGU7CivkuJQgPiBtb3Jlb3ZlcjsKK+iwgyA+IHRyYW5zZmVyOwor5auJID4gamVhbG91c3k7Civni4MgPiB0b1wtY292ZXQ7Civlq4EgPiB0b1wtbWFycnk7Civoqr8gPiB0cmFuc2ZlcjsKK+iqniA+IGxhbmd1YWdlOwor5aqaID4gY2hhcm1pbmc7CivoqpggPiBwZXJzdWFkZTsKK+i0uSA+IGV4cGVuc2VzOwor6KqEID4gZXVsb2dpemU7CivoqbMgPiBkZXRhaWxlZDsKK+ipsCA+IHF1ZXN0aW9uOwor5oOKID4gZnJpZ2h0ZW47CivmlK8gPiBkaXNwZXJzZTsKK+eqgSA+IHN1ZGRlbmx5Owor6KmVID4gYXBwcmFpc2U7CivlqKAgPiBwcmVnbmFudDsKK+WPpSA+IHNlbnRlbmNlOwor5pi+ID4gbWFuaWZlc3Q7Civlop4gPiBpbmNyZWFzZTsKK+aWmSA+IGNvbnNpZGVyOwor6JGXID4gbWFuaWZlc3Q7CivlpoogPiBjb25jZWl2ZTsKK+WigyA+IGJvdW5kYXJ5Owor57utID4gY29udGludWU7CivnhKEgPiBuZWdhdGl2ZTsKK+ijlSA+IGFidW5kYW50Owor54KtID4gY2hhcmNvYWw7Civlm7QgPiBzdXJyb3VuZDsKK+WilyA+IGluY3JlYXNlOwor54G9ID4gY2FsYW1pdHk7CivloZogPiBjZW1ldGVyeTsKK+W/vSA+IHN1ZGRlbmx5Owor54CVID4gYXBwcm9hY2g7Civnu7QgPiBtYWludGFpbjsKK+a/uiA+IHNwcmlua2xlOwor5r+vID4gd2FzaFwtb3V0Owor5Z6jID4gbG93XC13YWxsOwor5LmgID4gcHJhY3RpY2U7CivlnoIgPiBsZXRcLWRvd247CivlnYIgPiBoaWxsc2lkZTsKK+elliA+IGFuY2VzdG9yOwor6K+EID4gYXBwcmFpc2U7CivlnI0gPiBzdXJyb3VuZDsKK+e7pyA+IGNvbnRpbnVlOwor5ZuyID4gc3Vycm91bmQ7CivkvJggPiBzdXBlcmlvcjsKK+a7ryA+IGJsb2NrXC11cDsKK+mZkCA+IGJvdW5kYXJ5Owor5rqiID4gb3ZlcmZsb3c7CivmuKkgPiBsdWtld2FybTsKK+iaiiA+IG1vc3F1aXRvOwor6bm4ID4gYWxrYWxpbmU7CivlmaogPiBiZVwtbm9pc3k7CivlmLIgPiByaWRpY3VsZTsKK+a4myA+IGRlY3JlYXNlOwor5ZiUID4gdG9cLXZvbWl0Owor5oGpID4ga2luZG5lc3M7CivohLEgPiB0YWtlXC1vZmY7CivmtrggPiBkcmllZFwtdXA7CivllqogPiBtb3VybmluZzsKK+WllCA+IHJ1blwtZmFzdDsKK+a2jCA+IHN1cmdlXC11cDsKK+emgSA+IHJlc3RyaWN0Owor5rWuID4gdG9cLWZsb2F0Owor5LqSID4gbXV0dWFsbHk7CivmtJIgPiBzcHJpbmtsZTsKK+aQniA+IHRvXC1jbGVhcjsKK+acsSA+IGNpbm5hYmFyOwor5Z+fID4gZGlzdHJpY3Q7CivmnZAgPiBtYXRlcmlhbDsKK+minSA+IGZvcmVoZWFkOwor5YG3ID4gdG9cLXN0ZWFsOwor5Li5ID4gY2lubmFiYXI7Civok4kgPiBoaWJpc2N1czsKK+aKvSA+IGRyYXdcLW91dDsKK+S7qiA+IGNlcmVtb255Owor57uNID4gY29udGludWU7CivkuLAgPiBhYnVuZGFudDsKK+WNuCA+IGxheVwtZG93bjsKK+W/hiA+IHJlbWVtYmVyOwor6ZqUID4gc2VwYXJhdGU7Civlh48gPiBkZWNyZWFzZTsKK+WNkyA+IHByb2ZvdW5kOwor54G+ID4gY2FsYW1pdHk7CivogZogPiBhc3NlbWJsZTsKK+aNnyA+IGRpbWluaXNoOwor6IyEID4gZWdncGxhbnQ7Civli78gPiBtdXN0XC1ub3Q7Civpq60gPiBtdXN0YWNoZTsKK+mBpSA+IGZhclwtYXdheTsKK+armyA+IGNvbWJcLW91dDsKK+W4gSA+IGN1cnJlbmN5Owor5YuJID4gZW5kZWF2b3I7CivpqrggPiBza2VsZXRvbjsKK+iKsyA+IGZyYWdyYW50Owor5YqqID4gdG9cLWV4ZXJ0Owor6LS0ID4gcGFzdGVcLXRvOwor6amaID4gZnJpZ2h0ZW47CivliKUgPiBzZXBhcmF0ZTsKK+iQjSA+IGR1Y2t3ZWVkOwor5qiFID4gZmlyXC10cmVlOwor57ypID4gY29udHJhY3Q7Civoh6UgPiBsaWVcLWRvd247CivmhZUgPiBsb25nXC1mb3I7Civoh6MgPiBtaW5pc3RlcjsKK+aMoSA+IG9ic3RydWN0Owor6IacID4gbWVtYnJhbmU7CivmppsgPiBoYXplbG51dDsKK+S/iiA+IHRhbGVudGVkOwor5p6dID4gYnJhbmNoZXM7CivpmbcgPiBzdWJtZXJnZTsKK+S4pyA+IG1vdXJuaW5nOwor5YuSID4gc3RyYW5nbGU7CivourogPiBsaWVcLWRvd247CivlhKogPiBzdXBlcmlvcjsKK+iBiiA+IHNvbWV3aGF0Owor6aO+ID4gZGVjb3JhdGU7CivlhIAgPiBjZXJlbW9ueTsKK+aWnCA+IHNsYW50aW5nOwor5paQID4gZ3JhY2VmdWw7Civlup8gPiBhYnJvZ2F0ZTsKK+ivpiA+IGRldGFpbGVkOwor5pCsID4gdHJhbnNmZXI7Civmop8gPiBvd2xcLXRodXM7CivlgpggPiB1bWJyZWxsYTsKK+mhryA+IG1hbmlmZXN0Owor5LqtID4gcGF2aWxpb247CivpoZUgPiBtYW5pZmVzdDsKK+azmyA+IHRvXC1kcmlmdDsKK+mhjSA+IGZvcmVoZWFkOwor6aGMID4gZm9yZWhlYWQ7CivnrKYgPiBpXC5kXC5cLXRhZzsKK+WFgSA+IHRvXC1ncmFudDsKK+iPsiA+IGZyYWdyYW50Owor6LeoID4gc3RyYWRkbGU7CivmjqkgPiB0b1wtY292ZXI7CivpoIMgPiBhXC1tb21lbnQ7CivpmpwgPiBzZXBhcmF0ZTsKK+aftCA+IGZpcmV3b29kOwor5L+vID4gYm93XC1kb3duOwor5L+lID4gcmlja3NoYXc7CivpgrsgPiBuZWlnaGJvcjsKK+e/kiA+IHByYWN0aWNlOwor6am+ID4gdG9cLWRyaXZlOwor5L6tID4gY29tcGxldGU7Civnvp4gPiBkaXNncmFjZTsKK+ijpCA+IHRyb3VzZXJzOwor5LywID4gbWVyY2hhbnQ7CivpnpggPiBzY2FiYmFyZDsKK+WLgyA+IHN1ZGRlbmx5Owor5ZKQID4gaW5zdHJ1Y3Q7CivmgZIgPiBjb25zdGFudDsKK+eznyA+IHNlZGltZW50Owor5omuID4gZHJlc3NcLXVwOwor6LSkID4gdmlydHVvdXM7CivppbAgPiBkZWNvcmF0ZTsKK+abnCA+IGdsb3Jpb3VzOwor6ZuWID4gYWx0aG91Z2g7Civku5UgPiBvZmZpY2lhbDsKK+WNpyA+IGxpZVwtZG93bjsKK+S7hCA+IHNsYW50aW5nOwor6ZqjID4gbmVpZ2hib3I7Civnoo0gPiBvYnN0cnVjdDsKK+aaoiA+IHNtb290aGx5Owor5oumID4gb2JzdHJ1Y3Q7CivmirwgPiBtb3J0Z2FnZTsKK+aImiA+IHJlbGF0aXZlOwor57qMID4gY29udGludWU7CivnubwgPiBjb250aW51ZTsKK+ephiA+IG1hamVzdGljOwor55aGID4gYm91bmRhcnk7CivpmaUgPiBzdWJtZXJnZTsKK+easSA+IHdyaW5rbGVzOwor55WFID4gc21vb3RobHk7CivlmLsgPiBtaXJ0aGZ1bDsKK+e4riA+IGNvbnRyYWN0Owor5LimID4gZXF1YWxcLXRvOwor5piUID4gZm9ybWVybHk7Civnt7QgPiBwcmFjdGljZTsKK+mXmCA+IHN0cnVnZ2xlOwor556qID4gc3RhcmVcLWF0Owor5palID4gdG9cLXNjb2xkOwor5YmqID4gc2Npc3NvcnM7Civlp5ogPiBoYW5kc29tZTsKK+aOjyA+IHRha2VcLW91dDsKK+e2rSA+IG1haW50YWluOwor6K+xID4gcGVyc3VhZGU7CivntpogPiBjb250aW51ZTsKK+e2mSA+IGNvbnRpbnVlOwor6ZaTID4gaW50ZXJ2YWw7CivntLkgPiBjb250aW51ZTsKK+iKmSA+IGhpYmlzY3VzOwor5oO5ID4gaXJyaXRhdGU7CivnsL8gPiByZWdpc3RlcjsKK+aQjSA+IGRpbWluaXNoOwor6Iq3ID4gYW5nZWxpY2E7Civno4EgPiBtYWduZXRpYzsKK+avhSA+IHJlc29sdXRlOwor56ylID4gYVwtaGFtcGVyOwor5ouYID4gcmVzdHJhaW47CivkvJAgPiBjdXRcLWRvd247Civnq4ogPiBzZWNyZXRseTsKK+mKmCA+IGluc2NyaWJlOwor5oSJID4gcGxlYXNhbnQ7CivnqpwgPiBydW5cLWF3YXk7Civlr6ggPiBzdG9ja2FkZTsKK+aIuyA+IHBlcnZlcnNlOwor5rKqID4gc2hhbmdoYWk7Civph5wgPiBjYXVsZHJvbjsKK+WXpCA+IGxhdWdoXC1hdDsKK+WosSA+IHBsZWFzdXJlOwor5aujID4gY2hhcm1pbmc7CivlrqAgPiBmYXZvcml0ZTsKK+aGtiA+IHJlbWVtYmVyOwor6ZOtID4gaW5zY3JpYmU7CivppqggPiBmcmFncmFudDsKK+a4iiA+IHN1cmdlXC11cDsKK+emhCA+IGJsZXNzaW5nOwor56qDID4gc2VjcmV0bHk7CivpobcgPiBhXC1tb21lbnQ7CivnpJkgPiBvYnN0cnVjdDsKK+aElSA+IHN0YXJ0bGVkOwor5ZWhID4gbW9ycGhpbmU7CivotJ4gPiB2aXJ0dW91czsKK+WbmiA+IHByaXNvbmVyOwor6LSmID4gYWNjb3VudHM7CivpgZkgPiBmYXJcLWF3YXk7CivllrsgPiBtZXRhcGhvcjsKK+eTtyA+IGNyb2NrZXJ5Owor6JOmID4gc3VkZGVubHk7Civmu54gPiBibG9ja1wtdXA7CivotKwgPiBkZWNyZWFzZTsKK+S8niA+IHVtYnJlbGxhOwor6IWlID4gcmF3XC1tZWF0Owor5ruUID4gb3ZlcmZsb3c7CivmuoUgPiBzcHJpbmtsZTsKK+WSuCA+IHRvZ2V0aGVyOwor55arID4gZXBpZGVtaWM7CivllaogPiBzeWxsYWJsZTsKK+aymyA+IGFidW5kYW50Owor6IaoID4gdG9cLXN3ZWxsOwor5ZCxID4gY2hpcnBpbmc7CivovakgPiBjYXJyaWFnZTsKK+iupSA+IHJpZGljdWxlOwor6I+MID4gbXVzaHJvb207CivooY0gPiBvdmVyZmxvdzsKK+S6qCA+IHNtb290aGx5Owor55CQID4gdHJpZmxpbmc7Civnu7AgPiBncmFjZWZ1bDsKK+iLnyA+IGNhcmVsZXNzOwor5bSbID4gdG93ZXJpbmc7Civlh7ggPiBwcm90cnVkZTsKK+WaoyA+IGJlXC1ub2lzeTsKK+eQmyA+IHRyZWFzdXJlOwor5ZiAID4gYmFja2JpdGU7Civpk5AgPiBzaGFja2xlczsKK+i4jCA+IGhlc2l0YXRlOwor6LCVID4gcHJvY2xhaW07Civov7ggPiBndXNoXC1vdXQ7CivliZQgPiBwaWNrXC1vdXQ7CivlhoAgPiBob3BlXC1mb3I7CivnoJogPiBpbmtzdG9uZTsKK+aNjSA+IHdhcmRcLW9mZjsKK+iHgCA+IGJ1dHRvY2tzOwor5YCUID4gc3R1YmJvcm47CivlpYQgPiBlcmVcLWxvbmc7CivkvqUgPiBiZVwtbHVja3k7CivmorUgPiBidWRkaGlzdDsKK+ikpSA+IG1hdHRyZXNzOwor5pmWID4gc3Vuc2hpbmU7CivmvL4gPiBvdmVyZmxvdzsKK+eVtCA+IGZhcm1sYW5kOwor556fID4gZ2xhcmVcLWF0Owor55i4ID4gbGFtZW5lc3M7Civmvo4gPiBzcGxhdHRlcjsKK+a9piA+IHRvXC1mbG9vZDsKK+a/kiA+IGFwcHJvYWNoOwor5YGOID4gY2xpbmdcLXRvOwor6J2OID4gc2NvcnBpb247CivnsLggPiB3aW5ub3dlcjsKK+eYnyA+IGVwaWRlbWljOwor5bq2ID4gbnVtZXJvdXM7Civmg6YgPiB0aGlua1wtb2Y7CivmkoIgPiBwdXRcLWRvd247Civor5ggPiBxdWVzdGlvbjsKK+aZlyA+IHByZVwtZGF3bjsKK+i5iiA+IGZvb3RwYXRoOwor56KxID4gYWxrYWxpbmU7CivpmIkgPiBjYXN0cmF0ZTsKK+a3hiA+IGNvbmZ1c2VkOwor6JCmID4gZW50YW5nbGU7CivmpoYgPiBlbG1cLXRyZWU7CivnjJ0gPiBhYnJ1cHRseTsKK+i1kyA+IGNvbnRpbnVlOwor5p6tID4gb3dsXC10aHVzOwor5pumID4gc3VubGlnaHQ7CivpkoogPiBlbmRlYXZvcjsKK+aShSA+IHByb3RydWRlOwor5rikID4gc3dlbGxpbmc7CivovpggPiB3aW5kbGFzczsKK+mTnSA+IGFsdW1pbnVtOwor5o2LID4gdG9cLXBsdWNrOwor55+XID4gc3RyYWlnaHQ7CivombsgPiBob3JzZWZseTsKK+eejCA+IGRvemVcLW9mZjsKK+S6nyA+IHVyZ2VudGx5Owor5pCqID4gd2FyZFwtb2ZmOwor5b6oID4gZG91YnRmdWw7CivllZAgPiB0b1wtdGFzdGU7Civpla8gPiBicmFjZWxldDsKK+WIvSA+IGFtcHV0YXRlOwor6Je7ID4gc3BsZW5kaWQ7Civmg7AgPiBpbmRvbGVudDsKK+eHlCA+IHRvXC1yb2FzdDsKK+a2nSA+IGludW5kYXRlOwor5YGVID4gdG9nZXRoZXI7CivpqrcgPiBza2VsZXRvbjsKK+e7myA+IGRlZXBcLXJlZDsKK+e0iiA+IGNvbmZ1c2VkOwor6YKDID4gcHJvZm91bmQ7CivmsK8gPiBjaGxvcmluZTsKK+WdjSA+IGNvbGxhcHNlOwor5aapID4gY2hhcm1pbmc7CivlmK0gPiBzeWxsYWJsZTsKK+W/kCA+IHRpbW9yb3VzOwor5q6hID4gZW5jb2ZmaW47CivmmLUgPiBpbnRpbWF0ZTsKK+e6rSA+IGNvbmZ1c2VkOwor5L+fID4gd2FpdFwtZm9yOwor5qGiID4gaGFyZHdvb2Q7Civpu48gPiBzdGlja1wtdG87CivmmY8gPiBwZWFjZWZ1bDsKK+mavSA+IHN1cGVyaW9yOwor56a6ID4gZGlzdHJpY3Q7Civnl5ggPiBzbWFsbHBveDsKK+annyA+IGJldGVsbnV0Owor6Z+tID4gc2NhbGxpb247CivmiL4gPiBwZXJ2ZXJzZTsKK+iUqyA+IHdpdGhlcmVkOwor6IaCID4gYmFja2JvbmU7CivlnqAgPiBib3VuZGFyeTsKK+mVrCA+IGNhdWxkcm9uOwor6IOrID4gc2hpbmJvbmU7Civlk5AgPiBzeWxsYWJsZTsKK+ehtyA+IGFsa2FsaW5lOwor6IeDID4gc3dlbGxcLXVwOwor5bKMID4gcGVyaWxvdXM7Civnip8gPiBzdHViYm9ybjsKK+eOjiA+IGppbmdsaW5nOwor6YGiID4gY2FyZWxlc3M7CivlmZQgPiBzeWxsYWJsZTsKK+a7kyA+IHNlZGltZW50Owor6Zq8ID4gYXF1aWxpbmU7Civnv6YgPiBzY2lzc29yczsKK+mZsiA+IGZyb250aWVyOwor6LC2ID4gcHJvcGhlY3k7CivlgbsgPiBodW1wYmFjazsKK+mTgiA+IHBsYXRpbnVtOwor57qbID4gYVwtYmFubmVyOwor5oe/ID4gdmlydHVvdXM7Civpk6wgPiBjaHJvbWl1bTsKK+WohiA+IGdyYWNlZnVsOwor5oW1ID4gaW5kb2xlbnQ7Civog7AgPiBwYW5jcmVhczsKK+imgyA+IHJlYWNoXC10bzsKK+mBvSA+IHN1ZGRlbmx5Owor552+ID4gdGVzdGljbGU7CivnvJwgPiBkZXRhaWxlZDsKK+WAqCA+IGFycm9nYW50Owor6K6jID4gb2JpdHVhcnk7CivpkpsgPiB0aXRhbml1bTsKK+a1gyA+IHNhdHVyYXRlOwor5peWID4gcm9tYW50aWM7CivnvJkgPiByZWRcLXNpbGs7CivlmKMgPiBzeWxsYWJsZTsKK+aHiyA+IHNwbGVuZGlkOwor6KG+ID4gY292ZXJsZXQ7CivlrrggPiBpbXBlcmlhbDsKK+S9niA+IGZsYXR0ZXJ5Owor6JuUID4gdGFwZXdvcm07CivnpZwgPiBibGVzc2luZzsKK+awhSA+IG92ZXJjb2F0Owor5rCfID4gZmx1b3JpbmU7CivmsLAgPiBjeWFub2dlbjsKK+mynyA+IHN0dXJnZW9uOwor5amVID4gaGFuZHNvbWU7CivnoZIgPiBzZWxlbml1bTsKK+iIqCA+IGFcLXNhbXBhbjsKK+eDiiA+IHRvXC1zbWVsdDsKK+iQsSA+IGRheVwtbGlseTsKK+eWuCA+IGphdW5kaWNlOwor6ZOKID4gdGhhbGxpdW07Civor4IgPiBleGVnZXNpczsKK+mbiSA+IHBoZWFzYW50Owor6aKiID4gbHVtaW5vdXM7Civpko8gPiBicmFjZWxldDsKK+aggCA+IGdhcmRlbmlhOwor57uUID4gdHJvdXNlcnM7CivnvLUgPiBjb250aW51ZTsKK+a6mCA+IGFicnVwdGx5Owor6K+SID4gYmVxdWVhdGg7CivmsKYgPiBmbHVvcmluZTsKK+minyA+IGRhd2RsaW5nOwor55erID4gZXBpbGVwc3k7Civoi4sgPiBhbWFyYW50aDsKK+eAoyA+IHNlYVwtbWlzdDsKK+eunSA+IHR3ZWV6ZXJzOwor6LmwID4gaGVzaXRhdGU7CivotYAgPiBwcm9wZXJ0eTsKK+alriA+IG11bGJlcnJ5Owor6ZWKID4gdHdlZXplcnM7CivpgYQgPiB0b1wtaHVycnk7CivpkpIgPiB2YW5hZGl1bTsKK+iLtyA+IGxpY29yaWNlOwor5YuwID4gcGVhY2VmdWw7CivmsL0gPiB0b1wtZmxvYXQ7CivpkqggPiB0dW5nc3RlbjsKK+aEpiA+IGNvbmZ1c2VkOwor5Z+4ID4gYVwtYm9yZGVyOwor6auAID4gYnV0dG9ja3M7Civlq5IgPiBkYXVnaHRlcjsKK+S8myA+IGh1bXBiYWNrOwor55mcID4gZXJ5dGhlbWE7CivnoKYgPiBzdG9ja2FkZTsKK+m4uSA+IHRoZVwtY3JvdzsKK+abmyA+IHR3aWxpZ2h0Owor5qe/ID4gaGliaXNjdXM7CivpqpggPiBzdGFsbGlvbjsKK+W6kSA+IGNvcnJpZG9yOwor5Z27ID4gYW5cLWlzbGV0Owor6KerID4gdG9cLXN0YXJ0Owor6ZO1ID4gYW1tb25pdW07CivmsKkgPiBhcmdvbml1bTsKK+WsliA+IGZhdm9yaXRlOwor5Y2jID4gd2luZVwtcG90Owor6ZSRID4gYW50aW1vbnk7CivphpsgPiBhbGRlaHlkZTsKK+mSvSA+IHRhbnRhbHVtOwor56C8ID4gY29uY3JldGU7CivnhpggPiB0b1wtc3RlYW07Civok4EgPiBhYnVuZGFudDsKK+ivlCA+IGV1bG9naXplOwor56qoID4gYVwtY2VsbGFyOwor5qCyID4gbWFuZ3JvdmU7Civku7MgPiBzZXBhcmF0ZTsKK+myoyA+IHNraXBqYWNrOwor55i/ID4gc3dlbGxpbmc7Civpk7cgPiBydWJpZGl1bTsKK+mTlSA+IGV1cm9waXVtOwor6ZKLID4gcG9sb25pdW07CivnoJEgPiB0b1wtZ3JpbmQ7Civmnp4gPiBmaXJcLXRyZWU7CivmtKsgPiB0b1wtZGl0Y2g7Civmj54gPiB0b1wtY292ZXI7Civln5ogPiBjcnVjaWJsZTsKK+WepCA+IGFudFwtaGlsbDsKK+WNuiA+IHdpbmVjdXBzOwor5ZiPID4gZmVsaWNpdHk7Civpsr0gPiBmbGF0ZmlzaDsKK+myrSA+IG1hY2tlcmVsOwor6ZKqID4gc2NhbmRpdW07CivpkqsgPiBmcmFuY2l1bTsKK+mSkCA+IHNhbWFyaXVtOwor56WTID4gZXhvcmNpc2U7CivmoLMgPiBhXC1iYXNrZXQ7CivlvrwgPiBmcm9udGllcjsKK+WQsiA+IHNtaWxlXC1hdDsKK+iOsCA+IGNhbXBoYW5lOwor6Iq0ID4gZmx1b3JlbmU7Civku50gPiB0b2dldGhlcjsKK+i1nCA+IGFic3RydXNlOwor6b6TID4gYVwtaGFsdGVyOwor6byaID4gZHJ1bW1pbmc7Civpuq4gPiBwb3JyaWRnZTsKK+m5vCA+IGFsa2FsaW5lOwor6bepID4gcGhlYXNhbnQ7Civpt4ogPiBwaGVhc2FudDsKK+m1qyA+IHBoZWFzYW50Owor6bWZID4gYVwtc2hyaWtlOwor6bSwID4gdGhlXC1jcm93Owor6bOuID4gY2hpY2tlbnM7Civps4cgPiBzdHVyZ2VvbjsKK+myuiA+IGNhdFwtZmlzaDsKK+mxoyA+IHN0dXJnZW9uOwor6bGYID4gc3R1cmdlb247CivpsLkgPiBza2lwamFjazsKK+mwiSA+IHN0dXJnZW9uOwor6bCIID4gZmxhdGZpc2g7Civpr7ogPiBibG93ZmlzaDsKK+mvuCA+IGJsb3dmaXNoOwor6a+WID4gbWFja2VyZWw7CivprpAgPiBibG93ZmlzaDsKK+mtqCA+IGJsb3dmaXNoOwor6aytID4gc3RydWdnbGU7CivprKwgPiBzdHJ1Z2dsZTsKK+msqiA+IHN0cnVnZ2xlOwor6aymID4gc3RydWdnbGU7CivprKUgPiBzdHJ1Z2dsZTsKK+msiyA+IGZvcmVsb2NrOwor6ayAID4gdG9cLXNoYXZlOwor6au1ID4gd2hpc2tlcnM7Civpq44gPiBoaXBcLWJvbmU7CivpqYAgPiBzdWRkZW5seTsKK+morSA+IHN0YWxsaW9uOwor6ae+ID4gcnVuXC1hd2F5Owor6aemID4gdG9cLW1vdW50Owor6aeVID4gdG9cLWRyaXZlOwor6aapID4gYXJvbWF0aWM7Civppp8gPiBmcmFncmFudDsKK+mmmiA+IGFyb21hdGljOwor6aSsID4gcG9ycmlkZ2U7CivppKsgPiBkdW1wbGluZzsKK+mkqSA+IGhpY2NvdWdoOwor6aSfID4gbGliYXRpb247CivppJkgPiB0b1wtYWRvcm47CivporEgPiB0YWlwaG9vbjsKK+mhpSA+IGx1bWlub3VzOwor6aGiID4gZGF3ZGxpbmc7CivpoLIgPiBzdHJhaWdodDsKK+mfriA+IHNjYWxsaW9uOwor6Z+hID4gZ29yZ2VvdXM7Civpn6AgPiBrbmVlXC1wYWQ7CivpnbogPiBzdG9ja2luZzsKK+mcqCA+IGNsb3VkaW5nOwor6ZueID4gY2hpY2tlbnM7Civpm4sgPiBzdXBlcmlvcjsKK+masiA+IHN0YWxsaW9uOwor6ZqpID4gcHJvZm91bmQ7CivpmLggPiBkaXN0cmVzczsKK+mWuSA+IGNhc3RyYXRlOwor6ZaSID4gcGVhY2VmdWw7CivplaUgPiBsdXRldGl1bTsKK+mRtyA+IHR3ZWV6ZXJzOwor6ZGlID4gbHV0ZXRpdW07CivpkZUgPiB0dW5nc3RlbjsKK+mRiiA+IGNhdWxkcm9uOwor6ZCyID4gYnJhY2VsZXQ7CivpkIcgPiB2YW5hZGl1bTsKK+mOoiA+IHR1bmdzdGVuOwor6Y6JID4gdGhhbGxpdW07CivpjakgPiBub2JlbGl1bTsKK+mNmiA+IGZyb250bGV0Owor6YySID4gYWN0aW5pdW07Civpi4EgPiBhbHVtaW51bTsKK+mKrCA+IHNoYWNrbGVzOwor6YqqID4gZXVyb3BpdW07CivpiqggPiBhbW1vbml1bTsKK+mKoyA+IHJ1YmlkaXVtOwor6YqNID4gYVwtc2lja2xlOwor6Ym7ID4gY2hyb21pdW07Civpia0gPiB0YW50YWx1bTsKK+mJkSA+IHBsYXRpbnVtOwor6YmIID4gdGhhbGxpdW07CivpiYYgPiB0cmVhc3VyZTsKK+mIqiA+IGJyYWNlbGV0Owor6YinID4gc2NhbmRpdW07CivpiKYgPiB0aXRhbml1bTsKK+mIgSA+IGZyYW5jaXVtOwor6YepID4gdmFuYWRpdW07Civph6cgPiBicmFjZWxldDsKK+mHpCA+IHNhbWFyaXVtOwor6YehID4gY2F1bGRyb247Civph5kgPiBwb2xvbml1bTsKK+mHlyA+IGVuZGVhdm9yOwor6YapID4gc2VkaW1lbnQ7CivphoYgPiB3aW5lXC1jdXA7CivphoMgPiBtYXJpbmF0ZTsKK+mFsiA+IGhhbmdvdmVyOwor6YSwID4gbmVpZ2hib3I7CivphIggPiBzbGlwcGVyczsKK+mChSA+IGhlc2l0YW50Owor6L+7ID4gdG9cLXNoaWZ0Owor6L2KID4gYXhsZVwtdGlwOwor6L2GID4gd2luZGxhc3M7CivovK0gPiBmbGV4aWJsZTsKK+i8rCA+IGFcLWhlYXJzZTsKK+i7nSA+IGF4bGVcLXRpcDsKK+i6rSA+IHRvXC1kZWxheTsKK+i6lSA+IGhlc2l0YXRlOwor6Lm+ID4gdG9cLXNxdWF0Owor6LmnID4gdG9cLXNwb2lsOwor6LimID4gdGhlXC1zaGluOwor6LeFID4gY2FyZWxlc3M7Civot4IgPiBjcmVlcGluZzsKK+i1rCA+IGRlZXBcLXJlZDsKK+i0kiA+IHZpcnR1b3VzOwor6LO+ID4gYWJzdHJ1c2U7Civos6wgPiBhY2NvdW50czsKK+izoSA+IGNvbnRpbnVlOwor6LK2ID4gZGVjcmVhc2U7CivosrIgPiBwcm9wZXJ0eTsKK+ixjiA+IHZlcnRpY2FsOwor6K6WID4gcHJvcGhlY3k7CivorbkgPiB0b1wtc2hvdXQ7CivorZwgPiByZWdpc3RlcjsKK+itlCA+IGV1bG9naXplOwor6K2PID4gcmlkaWN1bGU7CivorL8gPiByaWRpY3VsZTsKK+isvCA+IHRvXC1zaG91dDsKK+irrSA+IHByb2NsYWltOwor6KuGID4gdG9cLWNoZWF0Owor6KmSID4gYmVxdWVhdGg7CivoqYsgPiB0b1wtY3Vyc2U7CivoqYogPiBwbGVhc2luZzsKK+ipgSA+IGV4ZWdlc2lzOwor6KiDID4gb2JpdHVhcnk7CivopbYgPiBpZ25vcmFudDsKK+ilqyA+IHJhaW5jb2F0Owor6KWPID4gcmFpbmNvYXQ7CivopLIgPiB0cm91c2VyczsKK+ikjCA+IHRyb3VzZXJzOwor6KOvID4gY292ZXJsZXQ7CivooI0gPiBzY29ycGlvbjsKK+idsSA+IGhvcnNlZmx5Owor6J2fID4gaGVkZ2Vob2c7CivonY8gPiBcKGluc2VjdFwpOwor6JyxID4gXChpbnNlY3RcKTsKK+icliA+IHRhcGV3b3JtOwor6JqzID4gYW50XC1lZ2dzOwor6JqYID4gdGFwZXdvcm07CivompQgPiBhbnRcLWVnZ3M7CivolrggPiBkdWNrd2VlZDsKK+iWhiA+IHRvXC1jb3ZlcjsKK+iVoyA+IGhpYmlzY3VzOwor6JSJID4gZWFydGhcLXVwOwor6JGWID4gZm9sbGljbGU7Civoi5AgPiBzZXF1ZW5jZTsKK+iJqSA+IHRob2xlcGluOwor6ImMID4gdG9cLWNhdWxrOwor6Ia1ID4gcGFuY3JlYXM7CivohLAgPiB0aGVcLW5lY2s7CivohKsgPiB0YWtlXC1vZmY7CivohJsgPiBzaGluYm9uZTsKK+iDriA+IHRvXC1zd2VsbDsKK+iCqCA+IHRvXC1zd2VsbDsKK+iCjyA+IGNvcHVsYXRlOwor6ICPID4gd2hpc2tlcnM7Civnv6wgPiBwaGVhc2FudDsKK+e/qyA+IGNhcmVsZXNzOwor572HID4gYVwtZ29ibGV0Owor57y3ID4gbGF5XC1kb3duOwor57qYID4gY29udGludWU7CivnuZYgPiB1bWJyZWxsYTsKK+e4vyA+IHN0cmVhbWVyOwor57i0ID4gdG93XC1saW5lOwor57idID4gZGV0YWlsZWQ7CivnuIkgPiByZWRcLXNpbGs7CivnuIggPiBlbnRhbmdsZTsKK+e3uyA+IGRlbGljYXRlOwor57a9ID4gZ3JhY2VmdWw7Civntq8gPiB0b1wtYnJhaWQ7CivntqogPiBkYXJrXC1yZWQ7CivntbsgPiBtb3VybmluZzsKK+e1syA+IGRlZXBcLXJlZDsKK+e1nSA+IHRyb3VzZXJzOwor57SeID4gYVwtZnJpbmdlOwor57ScID4gY29uZnVzZWQ7CivnsaMgPiBib3dcLWNhc2U7CivnsKwgPiBcKGJhbWJvb1wpOwor566CID4gXChiYW1ib29cKTsKK+eroiA+IHdhaXRcLWZvcjsKK+erhCA+IHJ1blwtYXdheTsKK+enjyA+IHRvXC13YXN0ZTsKK+elvyA+IGJsZXNzaW5nOwor56W8ID4gbGliYXRpb247Civno58gPiBtZWRpb2NyZTsKK+eijyA+IGNvbG91cmVkOwor56GvID4gaW5rc3RvbmU7CivnoLkgPiBhc3RhdGluZTsKK+egtSA+IHN5bGxhYmxlOwor55+LID4gdG9cLXN0YXJlOwor556TID4gdG9cLXNsZWVwOwor552PID4gYmVcLXRpcmVkOwor552FID4gYmlnXC1leWVkOwor55usID4gc2FsdFwtcGl0Owor55uZID4gYVwtYmFza2V0Owor55qdID4gbHVtaW5vdXM7Civnma0gPiBzd2VsbGluZzsKK+eZkiA+IGdldFwtd2VsbDsKK+eZjiA+IGVwaWxlcHN5Owor55mIID4gYWJyb2dhdGU7CivnmYMgPiB3ZWFrbmVzczsKK+eZgCA+IGphdW5kaWNlOwor55i8ID4gc2lja25lc3M7CivnmLYgPiB0b1wtY291Z2g7CivnmLAgPiBzY3JvZnVsYTsKK+eYiSA+IGdldFwtd2VsbDsKK+eWhyA+IGZhcm1sYW5kOwor55W6ID4gYm91bmRhcnk7CivnlK8gPiBwZWFjZWZ1bDsKK+eUoSA+IGFidW5kYW50Owor55OpID4ga2lsb3dhdHQ7Civnk6cgPiBkZWNhZ3JhbTsKK+eSmiA+IHNwbGVuZGlkOwor55CrID4gb3JuYW1lbnQ7Civnj7cgPiBcLzJcLXByXC1zdDsKK+ePpCA+IHRyZWFzdXJlOwor54+OID4gcHJlY2lvdXM7Civnj4wgPiBvcm5hbWVudDsKK+eNmCA+IGNvbGxhcHNlOwor54q1ID4gcmVzb2x1dGU7CivniqsgPiBwcm90cnVkZTsKK+eKjiA+IHRoZVwtemVidTsKK+eKhyA+IHJ1blwtZmFzdDsKK+eJsyA+IFwoYm92aW5lXCk7CivnhqQgPiBcKHBlcnNvblwpOwor54WQID4gXChwZXJzb25cKTsKK+eEjCA+IHRvXC1saWdodDsKK+eCpCA+IGlsbHVtaW5lOwor54GRID4gc3ByaW5rbGU7CivngLAgPiBvdmVyZmxvdzsKK+eAoSA+IHNsaXBwZXJ5Owor5r6+ID4gc2xpcHBlcnk7CivmvrEgPiBzZWRpbWVudDsKK+a+hyA+IGludW5kYXRlOwor5r2XID4gZnJpZW5kbHk7CivmvY4gPiByaXBwbGluZzsKK+a7rCA+IHNoYW5naGFpOwor5ruDID4gc3dlbGxpbmc7CivmuqsgPiBsdWtld2FybTsKK+a5oiA+IGJhdGhyb29tOwor5riVID4gc3VyZ2VcLXVwOwor5rW5ID4gc2F0dXJhdGU7Civms5AgPiB0b1wtd3JpdGU7Civmso0gPiBmcmVlemluZzsKK+awviA+IG92ZXJmbG93Owor5rCsID4gYXJnb25pdW07CivmsIkgPiByZXN0bGVzczsKK+avviA+IGFcLWNvYXJzZTsKK+avuyA+IHRvXC1tb3VsdDsKK+avtyA+IHJlc3RsZXNzOwor5q69ID4gbWl4ZWRcLXVwOwor5q6vID4gZW5jb2ZmaW47CivmrpcgPiBzaWNrbmVzczsKK+asmyA+IGFcLWhhbmRsZTsKK+argyA+IGN1cGJvYXJkOwor5qq/ID4gbXVsYmVycnk7CivmqrMgPiBiZXRlbG51dDsKK+aomiA+IGFcLXB1bGxleTsKK+alqCA+IGhhcmR3b29kOwor5qWhID4gZWxtXC10cmVlOwor5qSEID4gdG9cLWdyYWZ0Owor5qKxID4gZG9vcnNpbGw7CivmopQgPiBnYXJkZW5pYTsKK+afpCA+IGhhd3Rob3JuOwor5p+FID4gZmxvdXJpc2g7CivmnrsgPiBsb25nXC1vYXI7Civmm4YgPiBjYWxlbmRhcjsKK+aasSA+IGludGltYXRlOwor5pqmID4gY2FsZW5kYXI7CivmmqAgPiBkYXlicmVhazsKK+aaiSA+IHN1bnNoaW5lOwor5pmnID4gZGF5YnJlYWs7CivmmZsgPiBzdW5saWdodDsKK+aYpCA+IHN1bnNoaW5lOwor5pihID4gbG9uZ1wtZGF5Owor5peYID4gYVwtcGVubm9uOwor5pa+ID4gYVwtcGVubm9uOwor5paIID4gbGVhcm5pbmc7CivmlaogPiB0b1wtd2VpZ2g7CivmlaAgPiB0b1wtd2VpZ2g7CivmlKkgPiBvYnN0cnVjdDsKK+aUniA+IHRvXC1zcGxpdDsKK+aUlCA+IG9ic3RydWN0Owor5pOpID4gdG9cLXN0YWluOwor5pOLID4gb2JzdHJ1Y3Q7Civmko8gPiBwdWxsXC1vdXQ7CivmkbcgPiB0b1wta25vY2s7CivmkLUgPiB3aXBlXC1vZmY7CivmkLIgPiB0b1wtc2VpemU7CivmkK8gPiB0YWtlXC1vdXQ7CivmkIsgPiB0b1wtdGh1bXA7Civmj74gPiB3aXBlXC1vZmY7Civmj7AgPiBwb2tlXC1vdXQ7Civmj6IgPiB0b1wtc2VpemU7Civmj5wgPiBjb3ZlclwtdXA7Civmj4wgPiB0b1wtc2hha2U7CivmjrkgPiB0b1wtcGx1Y2s7CivmjaYgPiB0b1wtc2VpemU7Civmi5EgPiB0b1wtY2xhbXA7CivmiZ4gPiB3YXJkXC1vZmY7CivmiYUgPiBnYXRlXC1iYXI7Civmh5UgPiBzYXRpYXRlZDsKK+aGqiA+IGNvbXBvc2VkOwor5oaWID4gY2F1dGlvdXM7CivmhpIgPiBjb25mdXNlZDsKK+aFrSA+IGNhdXRpb3VzOwor5oWrID4gdG9cLWFsYXJtOwor5oWFID4gYWdpdGF0ZWQ7CivmhYEgPiBkaXNob25vcjsKK+aDvSA+IGNvbmZ1c2VkOwor5oO4ID4gdHJvdWJsZWQ7Civmg5sgPiBjb25mdXNlZDsKK+aDlCA+IGNoZWVyZnVsOwor5oOEID4gbG9uZ1wtZm9yOwor5oKkID4gYWdpdGF0ZWQ7CivmgZ0gPiBjYXJlZnJlZTsKK+aBlCA+IGNoZWVyZnVsOwor5oGMID4gdG9cLXdvcnJ5Owor5oGGID4gY29uc3RhbnQ7Civlv64gPiBzdHViYm9ybjsKK+W+ryA+IHdhaXRcLWZvcjsKK+W9uCA+IHJlc3RsZXNzOwor5b2KID4gc3R1YmJvcm47CivlvKIgPiBib3dcLWNhc2U7Civlu6QgPiB0b1wtcGxhY2U7Civlu6EgPiBjb3JyaWRvcjsKK+W6uyA+IG51bWVyb3VzOwor5bqsID4gYWJ1bmRhbnQ7CivluawgPiBjb3ZlclwtdXA7CivluaMgPiBjdXJyZW5jeTsKK+W4tSA+IHJlbW5hbnRzOwor5bixID4gY292ZXJcLXVwOwor5batID4gZWxldmF0ZWQ7CivltpIgPiB0b3dlcmluZzsKK+WzvyA+IG1vdW50YWluOwor5bKKID4gZm9vdGhpbGw7CivlsbwgPiBtb3VudGFpbjsKK+WvtiA+IHRyZWFzdXJlOwor5a+zID4gdHJlYXN1cmU7Civlr5ogPiBwcmVjaW91czsKK+WurCA+IGFyY2hpdmVzOwor5a2DID4gdHJvdWJsZWQ7CivlrKwgPiBtaXN0cmVzczsKK+WsoSA+IGRhdWdodGVyOwor5aydID4gZGVsaWNhdGU7CivlrIggPiBncmFjZWZ1bDsKK+WrvyA+IHRyYW5xdWlsOwor5au1ID4gY2hhcm1pbmc7Civlqq4gPiBoYW5kc29tZTsKK+WpviA+IGhhbmRzb21lOwor5aivID4gcGxlYXN1cmU7CivlqJsgPiBwbGVhc3VyZTsKK+WnpiA+IGFkdWx0ZXJ5Owor5aeZID4gY29uY2VpdmU7CivlpaEgPiBhcnJvZ2FudDsKK+WgnSA+IGNydWNpYmxlOwor5Z+8ID4gaGVhZGxhbmQ7Civln4AgPiBsZXRcLWRvd247Civlna4gPiBwbGF0Zm9ybTsKK+WcpSA+IG11c2hyb29tOwor5ZuuID4gaW52ZWlnbGU7Civlm4IgPiBiZVwtbm9pc3k7CivlmrsgPiBiZVwtbm9pc3k7CivlmKUgPiB0b1wtd2FzdGU7Civll4MgPiB0b1wtZmx1dGU7CivllqkgPiBtZXRhcGhvcjsKK+WWkyA+IGNoaXJwaW5nOwor5ZaMID4gc3lsbGFibGU7Civllb0gPiB0b1wtc3BlYWs7CivllYcgPiB0b1wtc3RhbGs7CivllKUgPiBhXC1idW5kbGU7Civlk6IgPiBzeWxsYWJsZTsKK+WSuiA+IG1hamVzdGljOwor5ZKcID4gdG9cLXNjb2xkOwor5ZKHID4gZnJhZ3JhbnQ7CivlkaAgPiB0b1wtc3B1cnQ7Civlj5IgPiBvYmVkaWVudDsKK+WOtSA+IGFcLXNwcmluZzsKK+WNvSA+IHByb21wdGx5Owor5Y28ID4gdW5zdGVhZHk7CivljbkgPiBzeW1wYXRoeTsKK+WLlCA+IGVuZGVhdm9yOwor5YuMID4gdG9cLWxhYm9yOwor5Yq7ID4gZmx1cnJpZWQ7CivlipkgPiBhXC1kaXZpZGU7CivlioogPiBhbXB1dGF0ZTsKK+WJnyA+IHRvXC1wcmljazsKK+WIpyA+IGRpc2FzdGVyOwor5YelID4gdG9cLWR3ZWxsOwor5YeFID4gZHJpZWRcLXVwOwor5Ya0ID4gZnJlZXppbmc7CivlhrEgPiBmcmVlemluZzsKK+WGqCA+IGFidW5kYW50Owor5YadID4gc3VpdGFibGU7CivlhocgPiBoYXZlXC1ub3Q7CivlhaMgPiBkZWNpZ3JhbTsKK+WFmyA+IGtpbG9ncmFtOwor5YWZID4gZGVjYWdyYW07CivlhKkgPiBjb21wbGV0ZTsKK+WDpSA+IGJlXC1sdWNreTsKK+WDgyA+IHByZXBhcmVkOwor5YOCID4gaHVtcGJhY2s7CivlgrQgPiBodW1wYmFjazsKK+WCoiA+IHN0dWJib3JuOwor5YKeID4gdW5zdGVhZHk7CivlgowgPiB0b1wtY3Vyc2U7CivlgbggPiB0b1wtc3RlYWw7CivlgbIgPiB0YWxlbnRlZDsKK+WBqyA+IHdhaXRcLWZvcjsKK+WBnyA+IGFnaXRhdGVkOwor5L+TID4gc3RyYWlnaHQ7CivkvqsgPiBmbGF0dGVyeTsKK+S9tCA+IGFcLXNlY29uZDsKK+S9qiA+IGhlc2l0YXRlOwor5L2LID4gY29udGludWU7CivkvYAgPiByZXNlbWJsZTsKK+S8gyA+IGhhbmRzb21lOwor5Lq5ID4gcHJvZ3Jlc3M7CivkubUgPiB0b1wtZW50ZXI7CivktrIgPiB0aGVcLWVkZ2U7CivktbIgPiByYXdcLWhlbXA7CivktaYgPiB0b1wtc3RhaW47CivktZogPiBrYW9saWFuZzsKK+S1kyA+IHRoZVwtbW9sZTsKK+S1iSA+IGFidXRpbG9uOwor5LS7ID4gZHJ5XC1mb29kOwor5LSrID4gYW50ZWxvcGU7CivktJogPiBzYWx0cG9uZDsKK+S0lyA+IGFcLXNocmlrZTsKK+SzuyA+IGFuXC1lYWdsZTsKK+SzpyA+IGFuXC1lYWdsZTsKK+SyliA+IGJpZ1wtZmlzaDsKK+SyjiA+IHRvXC1zcG9pbDsKK+SwpyA+IHNpbmlzdGVyOwor5LCfID4gdGhlXC1zb3VsOwor5K+qID4gYmlnXC1oZWFkOwor5K+aID4gdGhlXC1yaWJzOwor5K+XID4gYnV0dG9ja3M7Civkr5AgPiBzaGluYm9uZTsKK+SvjiA+IHNoaW5ib25lOwor5K+JID4gdG9cLWNob2tlOwor5K+CID4gbnVtZXJvdXM7CivkrbEgPiBhXC1saXR0bGU7CivkrLwgPiBzYXRpYXRlZDsKK+SsuSA+IGFcLXNpY2tsZTsKK+SsiSA+IGhvdFwtd2luZDsKK+SrtyA+IHRoZVwtam93bDsKK+SrmyA+IHJlY2tsZXNzOwor5KuXID4gcmVja2xlc3M7Civkq4MgPiB0aGVcLWxpcHM7CivkqrYgPiB0aGVcLWNoaW47CivkqqkgPiB0b1wtY2hhbnQ7CivkqpwgPiBhXC1zaGllbGQ7CivkqpEgPiB0b1wtc3RpY2s7CivkqoogPiBhXC1oYWx0ZXI7CivkqoUgPiBhXC1xdWl2ZXI7CivkqoEgPiBhXC1oYWx0ZXI7CivkqbQgPiBhXC1xdWl2ZXI7Civkqa4gPiBhXC1xdWl2ZXI7CivkqaAgPiBhXC1naXJkbGU7CivkqYkgPiB0aGVcLWZhY2U7CivkqYggPiBhXC1wbHVtcHk7CivkqLwgPiBkeWVzdHVmZjsKK+SnqyA+IGFcLXRyZW5jaDsKK+SnlSA+IGJvdW5kYXJ5Owor5KeBID4gdG9cLWxlYXZlOwor5KalID4gdG9cLWxlYXJuOwor5KW4ID4gYVwtc2lja2xlOwor5KWtID4gZXZpZGVuY2U7CivkpaUgPiBhXC1zaWNrbGU7CivkpYwgPiBldmlkZW5jZTsKK+SliyA+IHRvXC1zbWVsdDsKK+SkvyA+IHRvXC1jYXJ2ZTsKK+SktiA+IGFcLWhhbW1lcjsKK+SksyA+IGFcLW1pcnJvdzsKK+SksCA+IHRvXC1zbWVsdDsKK+SkqyA+IGFcLWNoaXNlbDsKK+SkqCA+IHRvXC1zcGxpdDsKK+SknSA+IGJyYWNlbGV0Owor5KSQID4gdG9cLWRyaW5rOwor5KKtID4gdG9cLWNvdmVyOwor5KKQID4gdG9cLWdvXC10bzsKK+SihSA+IGRheWJyZWFrOwor5KGtID4gYVwtaGVhcnNlOwor5KC+ID4gdG9cLWRvZGdlOwor5KC5ID4gc2hpbmJvbmU7CivkoKwgPiBpbnNvbW5pYTsKK+SgniA+IHdyaW5rbGVkOwor5KCQID4gdG9cLXNxdWF0Owor5KCDID4gdG9cLXNxdWF0Owor5KCBID4gdG9cLWdvXC11cDsKK+SfuCA+IHRoZVwtY2FsZjsKK+SftiA+IHRvXC1zcXVhdDsKK+SftCA+IHRvXC1zaGFrZTsKK+SflCA+IHRvXC1nb1wtdG87CivknrggPiB0b1wtcmVhY2g7Civknq4gPiB0b1wtY3Jhd2w7Civknp8gPiB0b1wtcHJlc3M7CivknpwgPiB0b1wtcmVhY2g7CivknpQgPiBkZWVwXC1yZWQ7CivknpMgPiBkZWVwXC1yZWQ7CivknaggPiB2aXJ0dW91czsKK+SdgiA+IHRvXC1lcmVjdDsKK+ScrCA+IGFcLWNhdmVybjsKK+ScmCA+IHRvXC1ndWFyZDsKK+SckCA+IHRvXC1saWJlbDsKK+ScgyA+IHRvXC1ibGFtZTsKK+SbpCA+IHVyZ2VudGx5Owor5JuSID4gdG9cLWFyZ3VlOwor5JuHID4gdG9cLWxhdWdoOwor5JuGID4gdG9cLWN1cnNlOwor5Jq3ID4gdG9cLXRyZWF0Owor5JqvID4gdG9cLXF1ZWxsOwor5JqbID4gcmVndWxhdGU7CivkmKsgPiBvbGRcLXJhZ3M7CivkmJwgPiBhXC1uYXBraW47CivkmJkgPiB0b1wtZ3VhcmQ7CivkmJggPiB0b1wtZHJpdmU7CivkmJQgPiB0b1wtdm9taXQ7CivkmI8gPiBzeW1wYXRoeTsKK+SYiSA+IHNpbGt3b3JtOwor5JiHID4gbW9zcXVpdG87Civkl7ogPiBjcmVlcGluZzsKK+SXniA+IHNpbGt3b3JtOwor5JedID4gc2lsa3dvcm07Civkl5ggPiBhXC13ZWV2aWw7Civkl4ggPiBhXC1nYWRmbHk7Civkl4cgPiB0aGVcLXRvYWQ7CivklrsgPiBlcGhlbWVyYTsKK+SWpiA+IHNjb3JwaW9uOwor5JakID4gdG9cLWNyZWVwOwor5JafID4gYVwtZ2FkZmx5Owor5JabID4gb2ZcLXRpZ2VyOwor5JaPID4gdG9cLWR3ZWxsOwor5JaMID4gb2ZcLXRpZ2VyOwor5JaKID4gb2ZcLXRpZ2VyOwor5JaAID4gYW5nZWxpY2E7Civkla8gPiBkdWNrd2VlZDsKK+SVgSA+IHN1ZGRlbmx5Owor5JS9ID4gdG9cLWNvdmVyOwor5JSQID4gZGVsaWNhdGU7Civkk5kgPiBzbGFudGluZzsKK+STlSA+IHBvbHlnYWxhOwor5JOMID4gcG9seWdhbGE7CivkkrMgPiBhXC1mbG93ZXI7CivkkoMgPiB0b1wtYnVpbGQ7CivkkbsgPiBjb3ZlcmluZzsKK+SRmCA+IHRvXC1wb3VuZDsKK+SRgyA+IGRpbVwtbW9vbjsKK+SQkiA+IG5vdFwtZmluZTsKK+SPviA+IHRvXC1zd2VsbDsKK+SPuiA+IHRvXC1zd2VsbDsKK+SPnyA+IGZhdFwtbWVhdDsKK+SPiSA+IHRvXC13YXZlcjsKK+SPiCA+IHRvXC11bml0ZTsKK+SOuiA+IHRvXC1sZWFybjsKK+SOsiA+IGVhclwtbG9iZTsKK+SOriA+IHRvXC1wbGFudDsKK+SOqyA+IHRvXC1wbGFudDsKK+SOoyA+IGFcLXBsb3VnaDsKK+SMtyA+IGFcLXRocmVhZDsKK+SMryA+IGFcLXRydWJhbjsKK+SMrSA+IHJhd1wtaGVtcDsKK+SMrCA+IHN0cmFpZ2h0Owor5IyrID4gYVwtaGF3c2VyOwor5IyaID4gd3JpbmtsZXM7CivkjIMgPiByYXdcLXNpbGs7Civki6EgPiB0b1wtcmVsYXg7Civki5MgPiB3cmlua2xlZDsKK+SLkiA+IHRvXC1yZWxheDsKK+SLgyA+IHN0aW5naW5nOwor5Iq4ID4gdG9cLXR3aXN0Owor5IqdID4gdG9cLWV4aWxlOwor5IqBID4gbGVhdmluZ3M7CivkibsgPiByZWRcLXJpY2U7CivkibEgPiBhXC1jcmFkbGU7Civkia4gPiB0b1wtcGxhbnQ7CivkiaogPiB0b1wtZ3JpbmQ7CivkiZIgPiBhXC13aW5ub3c7CivkiLYgPiBhblwtYXJyb3c7CivkiKsgPiBhXC1oYXdzZXI7Civkh7EgPiBhXC1oYXdzZXI7Civkh4wgPiB0b1wtc3RhbmQ7CivkhrggPiBzcGFjaW91czsKK+SGhCA+IGFcLWJ1bmRsZTsKK+SFsiA+IHRvXC1wbGFudDsKK+SFqCA+IGZyYWdyYW50Owor5IWkID4gdG9cLXBsYW50Owor5IWQID4gYVwtYnVuZGxlOwor5ISAID4gY2FsYW1pdHk7Civkg7ogPiB0b1wtZ3JpbmQ7Civkg5EgPiBzcGVja2xlczsKK+SDhSA+IGR5ZXN0dWZmOwor5IK7ID4gdG9cLWJsb2NrOwor5IGlID4gdG9cLWJsaW5rOwor5IGcID4gYmlnXC1leWVzOwor5IGCID4gYmlnXC1leWVzOwor5IC1ID4gdG9cLWJsaW5rOwor5ICIID4gYVwtdmVzc2VsOwor47+iID4gdG9cLXNoaW5lOwor47+hID4gYVwtaGVsbWV0Owor47+aID4gc2lja25lc3M7Civjv4ggPiBhblwtdWxjZXI7Civjv4UgPiByaW5nd29ybTsKK+O+uCA+IGFcLXNjYWJieTsKK+O+riA+IGphdW5kaWNlOwor476OID4gc2lja25lc3M7Civjvo0gPiBkaXNlYXNlczsKK+O+jCA+IHJpbmd3b3JtOwor476EID4gdG9cLWxpYmVsOwor4727ID4gZGlzZWFzZXM7CivjvbkgPiB0b1wtZmFpbnQ7CivjvZAgPiBmcmFncmFudDsKK+O7hCA+IHRyZWFzdXJlOwor47qaID4gYW5cLW90dGVyOwor47qHID4gYVwtd2FyZGVuOwor47m4ID4gdGhlXC1saW9uOwor47mVID4gaW5mZXJpb3I7CivjuLwgPiB0aGVcLXplYnU7CivjuKYgPiBtdXR1YWxseTsKK+O4nyA+IHRvXC1jb3ZlcjsKK+O4nSA+IGFcLXNob3ZlbDsKK+O4lSA+IHRvXC1zZWl6ZTsKK+O4iSA+IHRvXC1hZGFwdDsKK+O3hiA+IHRocml2aW5nOwor47eAID4gc29saXRhcnk7CivjtrwgPiB2ZXJ5XC1ob3Q7CivjtoQgPiB0b1wtc3RhaW47Civjta0gPiBhblwtaXNsZXQ7CivjtaYgPiBzbGlwcGVyeTsKK+O0tiA+IHRvXC13YXRlcjsKK+O0syA+IHRvXC1zbWVhcjsKK+O0iiA+IGFuXC1hYnlzczsKK+O0iCA+IHNlZGltZW50Owor47OrID4gcmVwZWF0ZWQ7Civjs6AgPiBzbGlwcGVyeTsKK+OzkiA+IHN0YXR1dGVzOwor47K4ID4gZHJpZWRcLXVwOwor47K3ID4gbml0cm9nZW47CivjsrYgPiBjaGxvcmluZTsKK+OysyA+IHRvXC10b3VjaDsKK+OxvyA+IHRoZVwtaHVzazsKK+OxuiA+IHRoZVwtc2tpbjsKK+OxsiA+IHdpdGhlcmVkOwor47GiID4gdGhlXC1kZWFkOwor47GgID4gd2l0aGVyZWQ7CivjsZcgPiBhXC1icmVhdGg7CivjsYUgPiB2aXJ0dW91czsKK+OxgyA+IHRvXC1kcmluazsKK+OwuiA+IHRvXC1kcmluazsKK+OwuSA+IHRvXC1sYXVnaDsKK+OwrSA+IHBsZWFzdXJlOwor47CnID4gdG9cLWRyaW5rOwor47CjID4gdG9cLXZvbWl0Owor47CgID4gdG9cLWNvdmV0Owor47CdID4gdG9cLWNvdWdoOwor46+wID4gdG9cLXBsYW50Owor466tID4gYVwtY2Fza2V0Owor466BID4gZ2FyZGVuaWE7CivjrZkgPiBhXC1oYW1tZXI7CivjrYogPiB0b1wtc3BsaXQ7CivjrLAgPiBhXC1tb21lbnQ7CivjrKcgPiBhXC1jb2xsYXI7CivjrKIgPiBzdW5zaGluZTsKK+OsoSA+IHN1bnNoaW5lOwor46yZID4gc3Vuc2hpbmU7CivjrJcgPiBzdW5zaGluZTsKK+OsjCA+IHN1bnNoaW5lOwor46u9ID4gZGFya25lc3M7Civjq7sgPiBzdW5saWdodDsKK+OqvyA+IHRvXC1icmVhazsKK+OqoSA+IHRvXC1xdWVsbDsKK+OqkyA+IGRpc2FzdGVyOwor46qQID4gdW5zdGFibGU7Civjqo0gPiBzdWRkZW5seTsKK+OqgyA+IHRvXC10aHVtcDsKK+OqgiA+IHVuc3RhYmxlOwor46qAID4gdG9cLWVudGVyOwor46m/ID4gdW5zdGFibGU7CivjqbQgPiB0b1wtc2VpemU7CivjqaggPiB0b1wtY3JhY2s7CivjqZMgPiB0b1wtd291bmQ7CivjqYEgPiB0b1wta25vY2s7CivjqLkgPiB0b1wtY3JhY2s7CivjqLEgPiB0b1wtc2hha2U7CivjqKogPiB0b1wtc2hha2U7CivjqKAgPiB0b1wtc21lYXI7CivjqJ8gPiB0b1wtdG91Y2g7CivjqJQgPiB0b1wtc2hha2U7CivjqJMgPiB0b1wtY2xvc2U7CivvqJAgPiBjZW1ldGVyeTsKK+OokSA+IHRvXC1jb3VudDsKK+OoiCA+IHRvXC1jcm93ZDsKK+OogSA+IHRvXC10aHJvdzsKK+OntSA+IHRvXC1leGFjdDsKK++nsSA+IG5laWdoYm9yOwor46eyID4gdG9cLXNoYWtlOwor46exID4gdG9cLWJyaW5nOwor46esID4gdG9cLXJhaXNlOwor76efID4gZm9vdHdlYXI7Civjp4EgPiB0b1wtY2xvc2U7Civvpr4gPiBjb25zaWRlcjsKK+OmvyA+IGFcLXdpbmRvdzsKK++mpCA+IHRvXC10d2lzdDsKK+OmpSA+IHRhbGVudGVkOwor76ajID4gdGhpbmtcLW9mOwor46akID4gdmlydHVvdXM7CivvppYgPiBwcmFjdGljZTsKK+OmlyA+IGRpbGlnZW50Owor76aLID4gY2FsZW5kYXI7CivjpokgPiB2aXJ0dW91czsKK+OlsCA+IG1vdXJuZnVsOwor76WtID4gcHJvdmluY2U7CivjpaogPiBkaWxpZ2VudDsKK++lniA+IGNpbm5hYmFyOwor76WSID4gc3RyYW5nbGU7CivjpYMgPiBtb3VybmZ1bDsKK+OlgSA+IG1vcmFsaXR5Owor76S8ID4gYmxlc3Npbmc7CivjpLIgPiB0b1wtdGhpbms7CivjpK4gPiBhblwtZXJyb3I7CivvpKggPiBjb3JyaWRvcjsKK+OkpiA+IG1vdXJuZnVsOwor46SkID4gbW91cm5mdWw7CivjpI8gPiBncmlldm91czsKK++khiA+IHNlbnRlbmNlOwor46OwID4gdG9cLXNoYWtlOwor46OrID4gdGhlXC1oZWVsOwor46OeID4gdG9cLXdhbGtpOwor46OLID4gY2lubmFiYXI7Civjo4QgPiBwb3dlcmZ1bDsKK+OitCA+IHRoZVwtd2VzdDsKK+OiqSA+IHRvXC1zaG9vdDsKK+OihSA+IGFcLXNoaWVsZDsKK+OhsyA+IG1vdW50YWluOwor46GpID4gYVwtZ2lyZGxlOwor46GdID4gYVwtbmFwa2luOwor46GWID4gdG9cLWNvdmVyOwor46C5ID4gYVwtdHVyYmFuOwor46C1ID4gYVwtdHVyYmFuOwor46CKID4gYVwtcnVnZ2VkOwor46CJID4gbW91bnRhaW47CivjoIUgPiB0b1wtY292ZXI7Civjn5EgPiBtb3VudGFpbjsKK+OevSA+IG1vdW50YWluOwor4563ID4gbHV4dWlhbnQ7CivjnpEgPiB0aGVcLXRhaWw7CivjnokgPiBiaWdcLWZvb3Q7CivjnoggPiBiaWdcLWZvb3Q7CivjnbIgPiB0b1wtc2xlZXA7Civjna4gPiB0b1wtZXhpbGU7Civjna0gPiB0b1wtYXdha2U7CivjnZggPiBoYXJtb25veTsKK+OdkiA+IHRvXC1kd2VsbDsKK+OdjSA+IHRvXC13cml0ZTsKK+OdiiA+IHRvXC1ndWlkZTsKK+OctiA+IGFcLWNvdXBsZTsKK+OcsyA+IHBlYWNlZnVsOwor45ubID4gcHJlZ25hbnQ7CivjmqMgPiBoYW5kc29tZTsKK+OZoiA+IGFcLXRyb3dlbDsKK+OZmSA+IHRvXC1zbWVhcjsKK+OZgyA+IGFcLWNhdml0eTsKK+OYqiA+IHRvXC13YXN0ZTsKK+OYoCA+IHRvXC1jbG9zZTsKK+OYmSA+IHRvXC1ncm9hbjsKK+OYkSA+IHRvXC1jdXJzZTsKK+OYgCA+IHRvXC1zb3VuZDsKK+OXqiA+IG1vdXRoZnVsOwor45eoID4gdG9cLWxhdWdoOwor45ecID4gdG9cLXNtZWxsOwor45ebID4gdG9cLWxhdWdoOwor45eTID4gbW91dGhmdWw7Civjl4kgPiBpbmNpc2l2ZTsKK+OWuSA+IHRvXC1zcHVydDsKK+OWqSA+IG5vdFwtcHVyZTsKK+OWkyA+IHRvXC1zaG91dDsKK+OWhyA+IHRoZVwtbGlwczsKK+OVvCA+IHRvXC1icmF3bDsKK+OVmyA+IGFcLWZyaWVuZDsKK+OVkCA+IGluY2xpbmVkOwor45WKID4gdG9cLXNsYW50Owor45SwID4gY29uc3RhbnQ7CivjlKogPiB0b1wtY3Jhd2w7CivjlKAgPiBpbmR1c3RyeTsKK+OUniA+IHZpZ29yb3VzOwor45O2ID4gdG9cLWNhcnZlOwor45OaID4gYVwtc2lja2xlOwor45OTID4gdGhpblwtaWNlOwor45K5ID4gdG9cLXVwc2V0Owor45G6ID4gc3VwZXJpb3I7CivjkbQgPiB0b1wtdXN1cnA7CivjkbAgPiBkaXN0cmVzczsKK+ORjSA+IGluZmVyaW9yOwor45CcID4gYW5cLWVuZW15Owor6L+3ID4gYmV3aXRjaDsKK+i/sCA+IG5hcnJhdGU7Civov6UgPiBkaXN0YW50Owor5LitID4gY2VudHJhbDsKK+W/lyA+IHB1cnBvc2U7Civov44gPiByZWNlaXZlOwor5b+MID4gamVhbG91czsKK+WSjCA+IGhhcm1vbnk7Civovq8gPiBkaXNwdXRlOwor5Y67ID4gZ29cLWF3YXk7Civlr7kgPiBjb3JyZWN0Owor556gID4gbG9va1wtYXQ7CivlvosgPiBzdGF0dXRlOwor5b25ID4gc2VydmljZTsKK+ecuiA+IGxvb2tcLWF0Owor5by1ID4gc3RyZXRjaDsKK+W3siA+IGFscmVhZHk7CivlvJggPiBlbmxhcmdlOwor5byVID4gdG9cLXB1bGw7CivlvJQgPiBjb25kb2xlOwor6LyDID4gY29tcGFyZTsKK+aEjyA+IHRob3VnaHQ7Civov5sgPiBhZHZhbmNlOwor55uhID4gZXhoYXVzdDsKK+W7iSA+IHVwcmlnaHQ7Civmg4UgPiBmZWVsaW5nOwor55qwID4gcGltcGxlczsKK+W6liA+IGtpdGNoZW47CivoupMgPiBzdHVtYmxlOwor5bqEID4gdmlsbGFnZTsKK+W5tiA+IGNvbWJpbmU7CivouaAgPiBzdGVwXC1vbjsKK+eZliA+IGNyYXZpbmc7CivluZUgPiBjdXJ0YWluOwor5LujID4gcmVwbGFjZTsKK+W4qyA+IHRlYWNoZXI7CivmgLsgPiBjb2xsZWN0Owor6LiPID4gc3RlcFwtb247CivluIggPiB0ZWFjaGVyOwor55e0ID4gZm9vbGlzaDsKK+WNjiA+IGZsb3dlcnk7CivlvKAgPiBzdHJldGNoOwor55eHID4gZGlzZWFzZTsKK+eXhSA+IGlsbG5lc3M7Civnlr4gPiBpbGxuZXNzOwor5Y+NID4gcmV2ZXJzZTsKK+WQiCA+IGNvbWJpbmU7Civnlo4gPiBuZWdsZWN0Owor5Y+XID4gcmVjZWl2ZTsKK+WKoSA+IGFmZmFpcnM7CivmjqUgPiByZWNlaXZlOwor5bSpID4gcnVwdHVyZTsKK+eJuSA+IHNwZWNpYWw7CivmnI0gPiBjbG90aGVzOwor6LO9ID4gY29tcGV0ZTsKK+izkSA+IHJlbGlldmU7Civnp5EgPiBzZWN0aW9uOwor6L+cID4gZGlzdGFudDsKK+ixqyA+IHJlbGF4ZWQ7CivogZQgPiBjb25uZWN0Owor5L+dID4gcHJvdGVjdDsKK+WwvSA+IGV4aGF1c3Q7CivpnakgPiBsZWF0aGVyOwor5bCNID4gY29ycmVjdDsKK+WwiiA+IHJlc3BlY3Q7Civlk4EgPiBhcnRpY2xlOwor5bCJID4gb2ZmaWNlcjsKK+WjqyA+IHNjaG9sYXI7Civph48gPiBtZWFzdXJlOwor5a++ID4gY29ycmVjdDsKK+eoiyA+IGpvdXJuZXk7Civlr6kgPiBleGFtaW5lOwor5a+fID4gZXhhbWluZTsKK+aegSA+IGV4dHJlbWU7Civku6QgPiBjb21tYW5kOwor5pyqID4gbm90XC15ZXQ7CivmjIEgPiBzdXN0YWluOwor5Y6GID4gaGlzdG9yeTsKK+WuoyA+IGRlY2xhcmU7Civlj7IgPiBoaXN0b3J5Owor5a6XID4gbGluZWFnZTsKK+iuriA+IGNvbnN1bHQ7CivnjocgPiB0b1wtbGVhZDsKK+WnlCA+IGFwcG9pbnQ7CivorbcgPiBwcm90ZWN0Owor6K2wID4gY29uc3VsdDsKK+WFtSA+IHNvbGRpZXI7CivlrZQgPiBvcGVuaW5nOwor5LqJID4gZGlzcHV0ZTsKK+eptiA+IGV4YW1pbmU7CivorLkgPiBwcnVkZW50Owor6KeGID4gbG9va1wtYXQ7CivorJsgPiBleHBsYWluOwor5qC8ID4gcGF0dGVybjsKK+iruCA+IHNldmVyYWw7CivorrIgPiBleHBsYWluOwor6KumID4gY2FyZWZ1bDsKK+aAlSA+IHRvXC1mZWFyOwor54uhID4gY3VubmluZzsKK+abviA+IGFscmVhZHk7Civlh4YgPiBhcHByb3ZlOwor5q61ID4gc2VjdGlvbjsKK+eyviA+IGVzc2VuY2U7Civnq58gPiBmaW5hbGx5Owor6KqgID4gc2luY2VyZTsKK+ipriA+IGV4cGxhaW47CivmlbQgPiBvcmRlcmx5Owor5amJID4gYW1pYWJsZTsKK+WkhyA+IHByZXBhcmU7Civlj6YgPiBhbm90aGVyOwor6ZmIID4gZXhoaWJpdDsKK+aVhSA+IGFuY2llbnQ7CivoqJsgPiBzd2luZGxlOwor6KiXID4gZW50cnVzdDsKK+ihoyA+IGNsb3RoZXM7CivoqIogPiBpbnF1aXJlOwor54iGID4gY3JhY2tsZTsKK+aJuSA+IGNvbW1lbnQ7CivpgIEgPiBzZWVcLW9mZjsKK+aEvyA+IHNpbmNlcmU7CivlpYcgPiBzdHJhbmdlOwor54eVID4gc3dhbGxvdzsKK+eHiCA+IGxhbnRlcm47Civopr0gPiBsb29rXC1hdDsKK+WmrCA+IGplYWxvdXM7CivmuLggPiB0b1wtc3dpbTsKK+impyA+IGxvb2tcLWF0Owor5Lu9ID4gcG9ydGlvbjsKK+aVoiA+IHRvXC1kYXJlOwor6KaWID4gbG9va1wtYXQ7CivlppYgPiBzdHJhbmdlOwor54W9ID4gc3RpclwtdXA7CivogIMgPiBleGFtaW5lOwor5p2RID4gdmlsbGFnZTsKK+acnSA+IGR5bmFzdHk7CivogrIgPiBwcm9kdWNlOwor5oqkID4gcHJvdGVjdDsKK+WbviA+IGRpYWdyYW07CivliJggPiBzdXJuYW1lOwor5aSVID4gZXZlbmluZzsKK+aJvyA+IGluaGVyaXQ7Civoo7MgPiBjbG90aGVzOwor5LmhID4gY291bnRyeTsKK+ijgSA+IGN1dFwtb3V0Owor5peiID4gYWxyZWFkeTsKK+a8lCA+IHBlcmZvcm07CivmgKogPiBzdHJhbmdlOwor6KKCID4gc2xlZXZlczsKK+mHhyA+IGNvbGxlY3Q7CivoobAgPiBkZWNsaW5lOwor6LWbID4gY29tcGV0ZTsKK+eBryA+IGxhbnRlcm47CivovoMgPiBjb21wYXJlOwor6KGhID4gbWVhc3VyZTsKK+WhniA+IHN0b3BcLXVwOwor5pmvID4gc2NlbmVyeTsKK+igoiA+IHdyaWdnbGU7Civkvp0gPiByZWx5XC1vbjsKK+eAnSA+IHRyaWNrbGU7Civog5wgPiB2aWN0b3J5Owor5r+hID4gaW1tZXJzZTsKK+a/nyA+IHRvXC1oZWxwOwor6J+LID4gY3JpY2tldDsKK+ifgCA+IGNyaWNrZXQ7CivlnosgPiBwYXR0ZXJuOwor5ZyWID4gZGlhZ3JhbTsKK+a8hiA+IHZhcm5pc2g7CivmvIEgPiB0b1wtZmlzaDsKK+WbsyA+IGRpYWdyYW07CivmlaMgPiBzY2F0dGVyOwor6JuGID4gbWFnZ290czsKK+absiA+IGNyb29rZWQ7CivmurYgPiB0b1wtbWVsdDsKK+WOgiA+IGZhY3Rvcnk7Civogq8gPiB3aWxsaW5nOwor5oqTID4gc2NyYXRjaDsKK+iZqyA+IGluc2VjdHM7CivmuacgPiB3ZWxsXC11cDsKK+iMgyA+IHN1cm5hbWU7CivpnaAgPiBsZWFuXC1vbjsKK+a4rCA+IG1lYXN1cmU7CivmjoggPiBnaXZlXC10bzsKK+a4hyA+IHRoaXJzdHk7CivmiawgPiBzY2F0dGVyOwor5re6ID4gc2hhbGxvdzsKK+a3qyA+IG9ic2NlbmU7CivpgpMgPiBzdXJuYW1lOwor6beEID4gY2hpY2tlbjsKK+WXhyA+IG1pc2VybHk7CivmirEgPiBlbWJyYWNlOwor6aKEID4gcHJlcGFyZTsKK+edmyA+IGV5ZWJhbGw7Civmi6wgPiBpbmNsdWRlOwor6ZmNID4gZGVzY2VuZDsKK+m2jyA+IGNoaWNrZW47Civorq8gPiBpbnF1aXJlOwor6LW1ID4gc3VybmFtZTsKK+a1hSA+IHNoYWxsb3c7Civnp4EgPiBwcml2YXRlOwor6JSRID4gZGlzZGFpbjsKK+WuoSA+IGV4YW1pbmU7Civms6EgPiBidWJibGVzOwor6Ze5ID4gcXVhcnJlbDsKK+aVrCA+IHJlc3BlY3Q7CivphpIgPiB3YWtlXC11cDsKK+ayjCA+IGNoYW90aWM7CivmmrQgPiB2aW9sZW50Owor6bKBID4gZm9vbGlzaDsKK+aKoiA+IHBsdW5kZXI7CivlkZEgPiBzd2FsbG93Owor56+HID4gY2hhcHRlcjsKK+mxiCA+IGNvZGZpc2g7CivlkYIgPiBzdXJuYW1lOwor5oulID4gZW1icmFjZTsKK+WQiiA+IGNvbmRvbGU7Civor7ggPiB2YXJpb3VzOwor6I+vID4gZmxvd2VyeTsKK+WPrSA+IHRydW1wZXQ7CivmtYsgPiBtZWFzdXJlOwor6ZiFID4gZXhhbWluZTsKK+WPmSA+IGV4cHJlc3M7CivnjJsgPiB2aW9sZW50Owor5Y6tID4gZGlzbGlrZTsKK+WOqCA+IGtpdGNoZW47Civpm4UgPiBlbGVnYW50Owor6Zu3ID4gdGh1bmRlcjsKK+mtryA+IGZvb2xpc2g7CivpuKEgPiBjaGlja2VuOwor6K+aID4gc2luY2VyZTsKK+erniA+IGNvbnRlbmQ7Civmk40gPiBjb25kdWN0Owor5Y2SID4gc29sZGllcjsKK+ivuiA+IHByb21pc2U7CivljIYgPiBoYXN0aWx5Owor5qyFID4gemVsa292YTsKK+iLuiA+IGJlcnJpZXM7Civli50gPiB2aWN0b3J5Owor5YetID4gbGVhblwtb247Civli5kgPiBhZmZhaXJzOwor6IuXID4gc3Byb3V0czsKK+eisCA+IGNvbGxpZGU7Civoi5EgPiBwYXN0dXJlOwor5Lu/ID4gaW1pdGF0ZTsKK+apnyA+IG1hY2hpbmU7CivmoI8gPiByYWlsaW5nOwor6aiZID4gc3dpbmRsZTsKK+WIiCA+IGN1dFwtb2ZmOwor54ugID4gdmljaW91czsKK+aYoCA+IHByb2plY3Q7CivmiKogPiBjdXRcLW9mZjsKK+W/oCA+IGxveWFsdHk7CivmiY4gPiBwdWxsXC11cDsKK+iFuSA+IHN0b21hY2g7CivmpbUgPiBleHRyZW1lOwor6IiSID4gb3BlblwtdXA7CivpqpcgPiBzd2luZGxlOwor5Ye2ID4gY3VscHJpdDsKK+aFsCA+IGNvbWZvcnQ7CivppJggPiBzdXJwbHVzOwor5pKSID4gcmVsZWFzZTsKK+aEgSA+IGFueGlldHk7CivmlqQgPiBhXC1jYXR0eTsKK+WDkSA+IHNvam91cm47CivmibYgPiBzdXBwb3J0Owor5q+BID4gZGVzdHJveTsKK+i+qSA+IGRpc3B1dGU7Civog4MgPiBzdG9tYWNoOwor5qKwID4gd2VhcG9uczsKK+iSiyA+IHN1cm5hbWU7CivlgpkgPiBwcmVwYXJlOwor6L+dID4gZGlzb2JleTsKK+S4oiA+IGRpc2NhcmQ7CivogoYgPiBpbmR1bGdlOwor5YK7ID4gZm9vbGlzaDsKK+e7lSA+IGVudHdpbmU7CivogbMgPiB1cmdlXC1vbjsKK+a2giA+IHN1cm5hbWU7CivoiLAgPiB3YXJzaGlwOwor5oG8ID4gYW5nZXJlZDsKK+i+oyA+IHBlcHBlcnk7CivlgJogPiByZWx5XC1vbjsKK+mgkCA+IHByZXBhcmU7Civml4sgPiByZXZvbHZlOwor5YCJID4gZ3JhbmFyeTsKK+i+vSA+IGRpc3RhbnQ7CivnvZogPiBwZW5hbHR5Owor5ou+ID4gcGlja1wtdXA7CivmgaIgPiByZXN0b3JlOwor57+BID4gb2xkXC1tYW47Civnvr0gPiBmZWF0aGVyOwor5oqWID4gdHJlbWJsZTsKK+iniCA+IGxvb2tcLWF0Owor5L6vID4gbWFycXVpczsKK+aDkSA+IGNvbmZ1c2U7CivkvbUgPiBjb21iaW5lOwor572wID4gcGVuYWx0eTsKK+mblSA+IGVuZ3JhdmU7CivljowgPiBkaXNsaWtlOwor5a+/ID4gb2xkXC1hZ2U7Civot4wgPiBzdHVtYmxlOwor6ZSmID4gYnJvY2FkZTsKK+adjyA+IGFwcmljb3Q7Civpu44gPiBzdXJuYW1lOwor5oWMID4gbmVydm91czsKK+WxoCA+IGJ1dGNoZXI7Civmn48gPiBjeXByZXNzOwor6ZyNID4gcXVpY2tseTsKK+mZtiA+IHBvdHRlcnk7CivmkYQgPiB0YWtlXC1pbjsKK+aXqCA+IHB1cnBvc2U7Civpl68gPiBydXNoXC1pbjsKK+WGryA+IHN1cm5hbWU7CivmibAgPiBkaXN0dXJiOwor6ZuAID4gc3BhcnJvdzsKK+WonCA+IGVsZWdhbnQ7Civmmq4gPiBldmVuaW5nOwor6ZiBID4gY2hhbWJlcjsKK+WNoiA+IGNvdHRhZ2U7CivlkJ4gPiBzd2FsbG93Owor5p+cID4gY2FiaW5ldDsKK+aahyA+IGxlaXN1cmU7CivmhKcgPiBhc2hhbWVkOwor5pm2ID4gY3J5c3RhbDsKK+e5niA+IGVudHdpbmU7CivmmZ0gPiBkYXl0aW1lOwor562LID4gbXVzY2xlczsKK+e4vSA+IGNvbGxlY3Q7CivmmLwgPiBkYXl0aW1lOwor5ZKoID4gaW5xdWlyZTsKK+aSkSA+IHByb3BcLXVwOwor6YCGID4gZGlzb2JleTsKK+WhqyA+IGZpbGxcLWluOwor5pe6ID4gcHJvc3BlcjsKK+e3rCA+IGRpc3RhbnQ7CivosKggPiBwcnVkZW50Owor5ri0ID4gdGhpcnN0eTsKK+eWjyA+IG5lZ2xlY3Q7CivogJcgPiBjb25zdW1lOwor57ePID4gY29sbGVjdDsKK+mWsiA+IGV4YW1pbmU7CivpkqYgPiByZXNwZWN0Owor6ZajID4gY2hhbWJlcjsKK+aZiyA+IGFkdmFuY2U7CivmgqYgPiBwbGVhc2VkOwor5paRID4gbW90dGxlZDsKK+i3tSA+IHRyYW1wbGU7CivotL4gPiBzdXJuYW1lOwor5riUID4gdG9cLWZpc2g7CivolKEgPiBzdXJuYW1lOwor5oO2ID4gZmVhcmZ1bDsKK+ewviA+IGFcLWJsaW5kOwor6LSpID4gcGVkZGxlcjsKK+aIiCA+IGhhbGJlcmQ7CivpkJAgPiBmZXR0ZXJzOwor5o+aID4gc2NhdHRlcjsKK+iZuSA+IHJhaW5ib3c7Civnr4QgPiBwYXR0ZXJuOwor5a+hID4gd2lkb3dlZDsKK+WQlSA+IHN1cm5hbWU7Civpg4ogPiBzdWJ1cmJzOwor5b69ID4gYVwtYmFkZ2U7CivosK0gPiBzdXJuYW1lOwor5o2oID4gZGlzY2FyZDsKK+myjSA+IGFiYWxvbmU7Civku5MgPiBncmFuYXJ5Owor6YymID4gYnJvY2FkZTsKK+eshCA+IGhhaXJwaW47Civmsr4gPiBtb2lzdGVuOwor56u2ID4gY29udGVuZDsKK+S/niA+IHN1cm5hbWU7CivnnpIgPiBkZWNlaXZlOwor56uDID4gZnVybmFjZTsKK+S+qCA+IHNvam91cm47CivmgbMgPiBzaW5jZXJlOwor5oqSID4gZXhwcmVzczsKK+WnnCA+IHN1cm5hbWU7CivmibEgPiBjb2xsZWN0Owor56i9ID4gZXhhbWluZTsKK+ijlCA+IHByb2dlbnk7CivnnbkgPiBsb29rXC1hdDsKK+WMqiA+IGJhbmRpdHM7CivmvZggPiBzdXJuYW1lOwor5oaRID4gbGVhblwtb247CivmppwgPiBwbGFjYXJkOwor5p6JID4gdXNlbGVzczsKK+e8hSA+IGRpc3RhbnQ7CivmhaUgPiBzaW5jZXJlOwor6aqHID4gdGVycmlmeTsKK+aFhyA+IGNhcmVmdWw7CivnrKggPiBmb29saXNoOwor6IC4ID4gdXJnZVwtb247CivouKkgPiBzdGVwXC1vbjsKK+mDtyA+IGNvdW50cnk7Civmg7EgPiBhbmdlcmVkOwor5oK4ID4gZmVhcmZ1bDsKK+aSsCA+IGNvbXBvc2U7Civmg60gPiBhc2hhbWVkOwor5Z6DID4gZ2FyYmFnZTsKK+mpvCA+IGFcLWNhbWVsOwor6YGgID4gZGlzdGFudDsKK+mBlSA+IGRpc29iZXk7CivpgZEgPiBsZWlzdXJlOwor5Zy+ID4gZ2FyYmFnZTsKK+ixuSA+IGxlb3BhcmQ7CivnvLQgPiBkZWxpdmVyOwor5ZOoID4gd2hpc3RsZTsKK+mAsiA+IGFkdmFuY2U7CivlmrwgPiBwcmF0dGxlOwor5pinID4gb2JzY3VyZTsKK+aLoiA+IGNvbGxlY3Q7Civml7EgPiBkcm91Z2h0Owor6K+hID4gZGVjZWl2ZTsKK+aQhSA+IGRpc3R1cmI7CivogYIgPiB3aGlzcGVyOwor6I69ID4gdGhpY2tldDsKK+mmgCA+IHN1cnBsdXM7CivmgKEgPiBoYXJtb255Owor5Y6uID4gc2VydmFudDsKK+iMqCA+IGNhbHRyb3A7CivnspggPiB2aXNjb3VzOwor5pGnID4gZGVzdHJveTsKK+acvSA+IGRlY2F5ZWQ7CivlqLQgPiBlbGVnYW50Owor54SVID4gc2hpbmluZzsKK+ixgSA+IG9wZW5cLXVwOwor6Km5ID4gc3VybmFtZTsKK+eGhCA+IHB1dFwtb3V0Owor6YC+ID4gZ29cLW92ZXI7CivlppIgPiBqZWFsb3VzOwor6YKxID4gc3VybmFtZTsKK+mGiyA+IHZpbmVnYXI7CivmlowgPiByZWZpbmVkOwor5a+HID4gYmFuZGl0czsKK+WxryA+IHZpbGxhZ2U7CivmgZUgPiBmb3JnaXZlOwor5rKmID4gYmVcLWxvc3Q7CivlsrEgPiBkYWlzaGFuOwor5pKHID4gZGlzY2FyZDsKK+iusyA+IGNvbmNlYWw7Civmt4wgPiB0cmlja2xlOwor5bKUID4gZGl2ZXJnZTsKK+WAjyA+IGhhc3RpbHk7CivpnJMgPiByYWluYm93Owor5Z6SID4gcmFtcGFydDsKK+mCtSA+IHN1cm5hbWU7CivlhaIgPiBmZWFyZnVsOwor6LWmID4gZm9yZ2l2ZTsKK+W9piA+IGVsZWdhbnQ7Civnv5ggPiB0dXJuXC11cDsKK+aMmiA+IHNpbmNlcmU7Civpg50gPiBzdXJuYW1lOwor6KeRID4gcGVlcFwtYXQ7Civmi44gPiB0b1wtaGF1bDsKK+WZnCA+IHZlcmJvc2U7CivpmJAgPiBleHBsYWluOwor5omSID4gc2NyYXRjaDsKK+WHuSA+IGNvbmNhdmU7CivmkqkgPiBsaWZ0XC11cDsKK+aMoCA+IHNjcmF0Y2g7CivltL0gPiBhXC1jaGlsZDsKK+W7liA+IHN1cm5hbWU7Civnn6sgPiBjb3JyZWN0Owor5raFID4gYmxhY2tlbjsKK+apsSA+IGNhYmluZXQ7Civlk4YgPiB0cmVtYmxlOwor6LmsID4gc3RlcFwtb247CivmgYMgPiByZWx5XC1vbjsKK+aLlyA+IHRvXC1wdWxsOwor5Ym/ID4gZGVzdHJveTsKK+ewjCA+IGZhbGxpbmc7Civor5sgPiBleGVjdXRlOwor5o6zID4gY2FwdHVyZTsKK+W5jCA+IGN1cnRhaW47CivnqpIgPiBzdG9wXC11cDsKK+mbjSA+IGhhcm1vbnk7CivppoUgPiBmaWxsaW5nOwor556/ID4gc3VybmFtZTsKK+ehhSA+IHNpbGljb247CivnmKkgPiBwaW1wbGVzOwor5rilID4gbW9pc3RlbjsKK+mCoiA+IHN1cm5hbWU7CivouYsgPiBzdGVwXC1vbjsKK+aKqCA+IGltcGVhY2g7Civmk44gPiBsaWZ0XC11cDsKK+aGqCA+IGZvb2xpc2g7Civogr4gPiBraWRuZXlzOwor6ZStID4gc3BpbmRsZTsKK+eqpiA+IHN1cm5hbWU7CivosJsgPiBjYXJlZnVsOwor5oGZID4gaWxsbmVzczsKK+iMrCA+IGhhcnZlc3Q7Civom5AgPiBjcmlja2V0Owor6ZWjID4gZmV0dGVyczsKK+aypSA+IHRyaWNrbGU7CivosKQgPiBzbGFuZGVyOwor6ZKzID4gcGluY2VyczsKK+edvSA+IHN0YXJpbmc7CivpmLEgPiBwaXRmYWxsOwor5aeXID4gc2xhbmRlcjsKK+i3pCA+IHN0dW1ibGU7CivmsYAgPiBzYW5kYmFyOwor56ekID4gYmFsYW5jZTsKK+aZviA+IGFpclwtZHJ5Owor6Zy5ID4gdGh1bmRlcjsKK+i3miA+IHN0YWdnZXI7CivouLkgPiB0cmFtcGxlOwor6I6eID4gc21pbGluZzsKK+m4pSA+IHNlYWd1bGw7CivokYYgPiByZXNlcnZlOwor5rCiID4gYW1tb25pYTsKK+W4pyA+IHBpY3R1cmU7Civms68gPiBkZXN0cm95Owor5YyhID4gY29ycmVjdDsKK+S9ryA+IHByZXRlbmQ7CivmmqcgPiBvYnNjdXJlOwor54OsID4gY2luZGVyczsKK+iajCA+IG95c3RlcnM7CivotLsgPiBnaXZlXC10bzsKK+iwhiA+IHBhdGllbnQ7Civlk50gPiB3aGlzcGVyOwor6KO0ID4gc3VybmFtZTsKK+ivvSA+IHNsYW5kZXI7CivnmZ4gPiBsZXByb3N5Owor5ZWEID4gdG9cLXBlY2s7Civmi4QgPiBsZWFuXC1vbjsKK+e/jiA+IGZlYXRoZXI7Civnh44gPiB0b1wtYnVybjsKK+i/syA+IHBhc3NcLWJ5Owor5pahID4gcmV2b2x2ZTsKK+aBuCA+IHNhZG5lc3M7CivllawgPiBtaXNlcmx5Owor5b+RID4gZmVhcmZ1bDsKK+WSgiA+IHRvXC1zdWNrOwor55u5ID4gdG9cLWRvemU7Civkv74gPiBzb1wtdGhhdDsKK+ewqiA+IGhhaXJwaW47CivotYggPiByZWxpZXZlOwor6K+gID4gZXhwbGFpbjsKK+iwmiA+IHByb3ZlcmI7CivmjrggPiB0b1wtZHVzdDsKK+WMriA+IHRvXC1sYWNrOwor5bmhID4gcGVubmFudDsKK+iuuSA+IHN3aW5kbGU7Civlm7EgPiBjaGltbmV5Owor5bSCID4gbGFvc2hhbjsKK+WohCA+IHN1cm5hbWU7Civlj58gPiBvbGRcLW1hbjsKK+idjCA+IHRhZHBvbGU7CivomqogPiB0YWRwb2xlOwor5rCoID4gYW1tb25pYTsKK+mTgCA+IHVyYW5pdW07CivmjJsgPiB0YW5nbGVkOwor6K+LID4gc2xhbmRlcjsKK+e7ryA+IHNjYXJsZXQ7CivmlLggPiBkaXN0YW50Owor6bioID4gYnVzdGFyZDsKK+iclyA+IGFcLXNuYWlsOwor6LCpID4gZGVjZWl2ZTsKK+aBqyA+IGluXC1wYWluOwor6LCAID4gZmxhdHRlcjsKK+i4riA+IHRpcFwtdG9lOwor6aaKID4gc3BvaWxlZDsKK+edhyA+IGxvb2tcLWF0Owor6ZKZID4gY2FsY2l1bTsKK+aNsSA+IHB1dFwtb2ZmOwor6JK/ID4gbXVnd29ydDsKK+mFtiA+IGVuenltZXM7CivmtqMgPiBzY2F0dGVyOwor5p2zID4gb2JzY3VyZTsKK+ihoiA+IGhpZ2h3YXk7CivotaEgPiBzdXBwb3J0Owor56O6ID4gc3VscGh1cjsKK+i5tiA+IHN0dW1ibGU7CivosIQgPiBmbGF0dGVyOwor6LmpID4gdG9cLWxpbXA7Civnv58gPiBzdXJuYW1lOwor5rWjID4gdG9cLXdhc2g7CivnlrkgPiBtZWFzbGVzOwor56qIID4gb2JzY3VyZTsKK+W5lCA+IGN1cnRhaW47CivpnaUgPiBkaW1wbGVzOwor5o6HID4gY29sbGVjdDsKK+aEhiA+IGFcLWZhdWx0Owor6bi1ID4gb3N0cmljaDsKK+ellyA+IHJlc3BlY3Q7CivkvZggPiBzdXJuYW1lOwor56qVID4gc2xlbmRlcjsKK+i/qSA+IGJlXC1uZWFyOwor5L2wID4gaHVuZHJlZDsKK+mCsCA+IHN1cm5hbWU7Civpgp0gPiBzdXJuYW1lOwor6ZK5ID4gY3ltYmFsczsKK+S8iSA+IGNvbXBhcmU7CivpnbwgPiB0YXJ0YXJzOwor54WyID4gdG9cLWhlYXQ7CivnjZAgPiByb2VidWNrOwor5L2dID4gcmlja2V0czsKK+iTnyA+IGNpcmNpdW07Civpu5wgPiBkaXNtaXNzOwor6LCyID4gY3VubmluZzsKK+aRiCA+IGV4Y2x1ZGU7Civpo5MgPiBjeWNsb25lOwor6LCXID4gc2xhbmRlcjsKK+iDsSA+IGJsYWRkZXI7Civppb0gPiBmZXJydWxlOwor6K+zID4gZGVjZWl2ZTsKK+mmjyA+IGRpc3RpbGw7Civoi68gPiBiZW56ZW5lOwor5re8ID4gYVwtZmxvb2Q7CivmoY4gPiBmZXR0ZXJzOwor572EID4gZXhoYXVzdDsKK+iNgCA+IHN1cm5hbWU7Civpk7EgPiBpcmlkaXVtOwor6JGpID4gZmxvd2VyczsKK+mAoSA+IHJldHJlYXQ7CivpgLYgPiB3aW5kaW5nOwor5a6lID4gZm9yZ2l2ZTsKK+iQuCA+IGRvZ3dvb2Q7CivmjJ0gPiB0b1wtYmVhdDsKK+mSvyA+IGhhaXJwaW47CivnhrUgPiBlbnRyb3B5Owor54WoID4gdG9cLXN0ZXc7CivnoJIgPiBhcnNlbmljOwor5pmBID4gbW9ybmluZzsKK+iwmCA+IGNvbnN1bHQ7Civlh4cgPiBkZXdkcm9wOwor5ZmYID4gcG91dGluZzsKK+WUoyA+IGNoYXR0ZXI7CivpqqAgPiBjaGFyZ2VyOwor5pK3ID4gcGlja1wtdXA7CivmgIQgPiBhbm5veWVkOwor6ZSCID4gbGl0aGl1bTsKK+eWpSA+IHNjYWJpZXM7CivnqJcgPiBkYXJuZWxzOwor5rSuID4gY2xlYW5zZTsKK+aCrSA+IG1pc2VybHk7Civpha4gPiBrZXRvbmVzOwor6IWaID4gYnV0dG9jazsKK+mAkSA+IGNvbGxlY3Q7CivohbEgPiB0ZW5kb25zOwor6aaUID4gdG9cLWZlZWQ7CivmkKAgPiB0b1wtZGF1YjsKK+iMsSA+IGRvZ3dvb2Q7CivnoLcgPiBhcnNlbmljOwor6YWhID4gZmx1c2hlZDsKK+eWtCA+IGlsbG5lc3M7CivmiJcgPiBzdXBwb3J0Owor5ZGSID4gdW5jbGVhcjsKK+iwjCA+IHNpbmNlcmU7Civnl6cgPiBjaG9sZXJhOwor5oGCID4gY2FyZWZ1bDsKK+espCA+IGFcLWJyb29tOwor6Z+rID4gc2VjcmV0ZTsKK+aAmyA+IGdyaWV2ZWQ7CivmgJkgPiByZWx5XC1vbjsKK+eatCA+IGNoYXBwZWQ7CivooaQgPiBjbG90aGVzOwor5buqID4gZ3JhbmFyeTsKK+W6viA+IGdyYW5hcnk7CivmjKIgPiBjb3JyZWN0Owor552iID4gZ2F6ZVwtYXQ7CivloawgPiBwbGF0ZWF1Owor6J6vID4gbmlwcGVyczsKK+eNkiA+IG1hc3RpZmY7CivmsoYgPiBhXC1mZXJyeTsKK+W4lCA+IGFcLXNraXJ0Owor5pOiID4gcHVsbFwtdXA7CivoloUgPiB0b1wtd2VlZDsKK+iOtCA+IGxldHR1Y2U7CivnvrwgPiBjb25mdXNlOwor5o2tID4gdG9cLW9wZW47Civoka0gPiBidWxydXNoOwor5YClID4gYm9vcmlzaDsKK+a6tCA+IGJyb21pbmU7Civlu5sgPiBhXC1zdG9yZTsKK+aPuCA+IGhhbmRmdWw7Civku7UgPiBzaW1pbGFyOwor6auLID4gaGlwYm9uZTsKK+iCsSA+IGZvcmVhcm07CivljrYgPiBwcml2YXRlOwor6JqNID4gbXVzc2VsczsKK+WTmSA+IHN3YWxsb3c7CivplZMgPiBnYWxsaXVtOwor6ZOLID4gYmlzbXV0aDsKK+iDnSA+IGNhbGxvdXM7CivmgoMgPiBzaW5jZXJlOwor55+9ID4gc2lsaWNvbjsKK+i1jSA+IHByZXNlbnQ7Civnv6UgPiB0b1wtc29hcjsKK+icniA+IGdyYXBzdXM7Civom6kgPiBjcmlja2V0Owor6LCgID4gY291bnNlbDsKK+mzlSA+IGNvZGZpc2g7Civot4YgPiB0cmFtcGxlOwor55+sID4gYVwtZHdhcmY7CivmrZkgPiB0b1wtc3VjazsKK+mhvCA+IGdyaWV2ZWQ7CivmurIgPiB1cmluYXRlOwor6JW7ID4gYnVkZGluZzsKK+WIsyA+IGN1dFwtb3V0Owor6bmIID4gcGVsaWNhbjsKK+mTmSA+IGN5bWJhbHM7CivmpJ8gPiBjYWJpbmV0Owor6ZWJID4gY2FkbWl1bTsKK+WrmCA+IHN1cm5hbWU7CivorIcgPiBzdHV0dGVyOwor5oa3ID4gcGFpbmZ1bDsKK+aRrSA+IHBpY2tcLXVwOwor6LChID4gcmlzZVwtdXA7CivopIogPiBjcmFtcGVkOwor6bmVID4gcGVsaWNhbjsKK+mVsiA+IGN5bWJhbHM7Civpko0gPiB0aG9yaXVtOwor5rCqID4ga3J5cHRvbjsKK+i/riA+IHRvXC1yaXNlOwor5b+JID4gZ3JpZXZlZDsKK+iTjSA+IG1pbGZvaWw7CivouKwgPiBzdHVtYmxlOwor6YavID4gdmluZWdhcjsKK+ievSA+IGthdHlkaWQ7CivojZEgPiBzcHJvdXRzOwor6YOTID4gc3VybmFtZTsKK+WJgCA+IHNoYXJwZW47CivouYAgPiB0b1wtc2tpcDsKK+mUjiA+IGNhZXNpdW07CivpkocgPiB5dHRyaXVtOwor5rCaID4gdHJpdGl1bTsKK+eKuCA+IG1hbW1vdGg7Civoj7ggPiB0b1wtZmFkZTsKK+WOjSA+IHN1cm5hbWU7CivpsrEgPiBoZXJyaW5nOwor6LKKID4gbGVvcGFyZDsKK+i6niA+IHRvXC13YWxrOwor6Ju0ID4gbWFnZ290czsKK+mUviA+IG1lYXN1cmU7Civpk4wgPiBuaW9iaXVtOwor55WAID4gdG9cLWdpdmU7CivpgZggPiB0b1wtbWVldDsKK+aztyA+IHJhaW5pbmc7CivokqEgPiBidXJkb2NrOwor6K+8ID4gc2xhbmRlcjsKK+mrjCA+IGtuZWVjYXA7Civps5kgPiBiaWdoZWFkOwor6bOYID4gY29kZmlzaDsKK+mzhiA+IGFiYWxvbmU7CivntbcgPiBjb25maW5lOwor566mID4gYmVkXC1tYXQ7CivnmJggPiBmaXN0dWxhOwor6bi4ID4gc3dhbGxvdzsKK+mVhCA+IGZlcm1pdW07CivmgacgPiBhc2hhbWVkOwor56WGID4gb3JtYXpkYTsKK+WroCA+IGFcLXdpZG93Owor5pC0ID4gZXh0cmFjdDsKK+W7kiA+IGdyYW5hcnk7Civpg4QgPiBzdXJuYW1lOwor6K+cID4gaW5xdWlyZTsKK+WDpiA+IHRvXC1oZWlyOwor6b6hID4gdG9cLWJsb3c7CivpvbAgPiB0b1wtYml0ZTsKK+m9qSA+IHRvXC1jaGV3Owor6b2aID4gdG9cLWNoZXc7CivpvLcgPiBhXC1tb3VzZTsKK+m6niA+IHJvZWJ1Y2s7CivpuJEgPiBhXC1sYXJnZTsKK+m3nyA+IHBob2VuaXg7Civpt5cgPiBzZWFndWxsOwor6beWID4gc2VhZ3VsbDsKK+m2uiA+IHdhZ3RhaWw7CivptrkgPiB0aGVcLW93bDsKK+m2piA+IHBlbGljYW47CivptpggPiBwZWxpY2FuOwor6bWuID4gdG9cLXBlY2s7CivptZwgPiBwZWxpY2FuOwor6bSvID4gc3dhbGxvdzsKK+m0qyA+IGFcLXNuaXBlOwor6bSVID4gb3N0cmljaDsKK+m0jiA+IHNlYWd1bGw7CivptIcgPiBidXN0YXJkOwor6bOmID4gc3dhbGxvdzsKK+mymiA+IGFuY2hvdnk7Civpsa0gPiBhbmNob3Z5Owor6bGoID4gY29kZmlzaDsKK+mxhCA+IGFuY2hvdnk7CivpsL0gPiBoZXJyaW5nOwor6bC1ID4gY29kZmlzaDsKK+mwriA+IHNhcmRpbmU7CivpsJsgPiBzYXJkaW5lOwor6bCSID4gYWJhbG9uZTsKK+mvtyA+IGFuY2hvdnk7Civpr6EgPiBoZXJyaW5nOwor6a6RID4gYWJhbG9uZTsKK+mtnCA+IG1lcm1haWQ7CivprKcgPiBxdWFycmVsOwor6auWID4gaGlwYm9uZTsKK+mrlSA+IGtuZWVjYXA7CivpqqsgPiBiZVwtYmVudDsKK+mqiSA+IHJ1bm5pbmc7CivpqZkgPiBcKGhvcnNlXCk7CivpqZIgPiBkYXBwbGVkOwor6amDID4gY2hhcmdlcjsKK+moqCA+IGRhcHBsZWQ7Civpp60gPiB0ZXJyaWZ5Owor6aedID4gYVwtY2FtZWw7Civpp4sgPiBcKGhvcnNlXCk7Civppq4gPiBzdXJuYW1lOwor6aWQID4gc3BvaWxlZDsKK+mkvyA+IHNwb2lsZWQ7CivppL4gPiBkaXN0aWxsOwor6aS1ID4gdG9cLWZlZWQ7CivppLIgPiBzcG9pbGVkOwor6aSRID4gZmVycnVsZTsKK+mjpCA+IHRvXC1mZWVkOwor6aK2ID4gY3ljbG9uZTsKK+misyA+IHRvXC1ibG93Owor6aKrID4gYVwtc3Rvcm07CivpoJkgPiBjb3JyZWN0Owor6aCKID4gZ3JpZXZlZDsKK+mfoyA+IGJvd1wtYmFnOwor6Z+FID4gaGFybmVzczsKK+mdqCA+IGRpbXBsZXM7CivpnIUgPiB0aHVuZGVyOwor6ZufID4gc3BhcnJvdzsKK+mbmiA+IGFcLWhlcm9uOwor6Zm+ID4gaW5cLWZpbGU7CivpmbMgPiBleGhpYml0Owor6ZmeID4gcHJvbW90ZTsKK+mYpyA+IHNsb3Bpbmc7Civpl6EgPiBleHBsYWluOwor6ZeWID4gcnVzaFwtaW47CivplrEgPiBleGFtaW5lOwor6ZaZID4gcXVhcnJlbDsKK+mWiCA+IHZpbGxhZ2U7CivplaYgPiBmZXJydWxlOwor6ZO9ID4gdGVyYml1bTsKK+mTvCA+IHJoZW5pdW07Civpk6ogPiBoYWZuaXVtOwor6ZOlID4gdGh1bGl1bTsKK+mTkSA+IHJob2RpdW07CivpkqwgPiBob2xtaXVtOwor6ZCoID4gZmVybWl1bTsKK+mQkyA+IGZlcnJ1bGU7CivpkIMgPiBjeW1iYWxzOwor6Y61ID4gZ2FsbGl1bTsKK+mOmCA+IGNhZG1pdW07CivpjbAgPiBtZWFzdXJlOwor6Yy4ID4gcmhlbml1bTsKK+mMtiA+IGFcLXdhdGNoOwor6YygID4gc3BpbmRsZTsKK+mMgCA+IFwobWV0YWxcKTsKK+mLsSA+IHRlcmJpdW07Civpi7AgPiBsaXRoaXVtOwor6YuVID4gZW5ncmF2ZTsKK+mLiiA+IGFcLXBva2VyOwor6YuCID4gYml0XC1jdXA7CivpiqkgPiB0aHVsaXVtOwor6YqlID4gaXJpZGl1bTsKK+mJvyA+IGhhZm5pdW07CivpibcgPiB0cmlnZ2VyOwor6YmyID4gY2FkbWl1bTsKK+mJlyA+IHBpbmNlcnM7CivpiY0gPiBiaXNtdXRoOwor6Yi/ID4gaGFpcnBpbjsKK+mIviA+IHVyYW5pdW07CivpiLggPiBjeW1iYWxzOwor6YiuID4gbmlvYml1bTsKK+mIpSA+IGhvbG1pdW07CivpiKMgPiBjYWxjaXVtOwor6Ye4ID4gc2lsaWNvbjsKK+mHtyA+IHRob3JpdW07Civph7EgPiBmZXR0ZXJzOwor6YeUID4geXR0cml1bTsKK+mFhyA+IGNvbGxlY3Q7CivphLogPiBzdXJuYW1lOwor6YSnID4gc3VybmFtZTsKK+mElSA+IGNvdW50cnk7CivphIkgPiBjb3VudHJ5Owor6YSGID4gc3VybmFtZTsKK+mDiSA+IHN1cm5hbWU7CivpgqggPiB2aWxsYWdlOwor6YKHID4gYmVcLW5lYXI7CivpgbwgPiBkaXN0YW50Owor6YG2ID4gZW50d2luZTsKK+mBryA+IGRlY2VpdmU7CivpgLogPiBkaXN0YW50Owor6YC3ID4gZGlzdGFudDsKK+mAlSA+IHBhc3NcLWJ5Owor6YCIID4gZGlzdGFudDsKK+i/tCA+IHJldm9sdmU7CivovbcgPiBzdXJuYW1lOwor6L2SID4gY2hhcmlvdDsKK+i8vSA+IHZlaGljbGU7Civou7IgPiBhXC13aGVlbDsKK+i7mCA+IHdhclwtY2FyOwor6LqmID4gdG9cLWp1bXA7CivouqAgPiB0b1wtbGltcDsKK+i6nSA+IHRvXC1wYXNzOwor6LqYID4gdG9cLXdhbGs7CivouoQgPiBjcmlwcGxlOwor6LqCID4gc3R1bWJsZTsKK+i5oSA+IHRvXC1saW1wOwor6LirID4gY29sbGlkZTsKK+i4kCA+IHRyYW1wbGU7CivouIggPiBuZWdsZWN0Owor6Le0ID4gc3RlcFwtb247Civot6wgPiB0b1wtc3RlcDsKK+i3lSA+IHNodWZmbGU7CivotrcgPiB0b1wtam9sdDsKK+i2mSA+IHN1cm5hbWU7CivotpIgPiB0b1wtanVtcDsKK+i0jSA+IHN1cHBvcnQ7CivotIcgPiBhZmZhYmxlOwor6LSDID4gdG9cLWVhcm47Civos6sgPiBwcmVzZW50Owor6LOdID4gcHJlaW91czsKK+iziCA+IHN1cm5hbWU7Civosr0gPiBnaXZlXC10bzsKK+iyqSA+IHBlZGRsZXI7CivosZcgPiBjbGFtb3VyOwor6LCrID4gc2hhbGxvdzsKK+ivuSA+IGNvbnN1bHQ7Civorp8gPiBzbGFuZGVyOwor6K6cID4gY291bnNlbDsKK+iukiA+IHNsYW5kZXI7CivorowgPiBhXC1mZWFzdDsKK+iuhyA+IGZsYXR0ZXI7Civorb4gPiBzaGFsbG93Owor6K24ID4gZGVjZWl2ZTsKK+itmiA+IHN1cm5hbWU7CivorY4gPiBjdW5uaW5nOwor6K2IID4gZGlzbGlrZTsKK+isviA+IGRlY2VpdmU7CivorLcgPiBzbGFuZGVyOwor6KyzID4gdG9cLXNpbmc7CivorK0gPiBzaGFsbG93Owor6KyfID4gZmxhdHRlcjsKK+islyA+IHNsYW5kZXI7CivorJYgPiByaXNlXC11cDsKK+isjCA+IHNsYW5kZXI7CivorIYgPiBiZWd1aWxlOwor6Ku+ID4gcHJvbWlzZTsKK+iruiA+IHByb3ZlcmI7Civoq7YgPiBzaW5jZXJlOwor6KuxID4gY29uY2VhbDsKK+irriA+IGNvbnN1bHQ7Civoq5sgPiBmbGF0dGVyOwor6KuaID4gY29tbWFuZDsKK+irkSA+IHNsYW5kZXI7Civoq48gPiBjb25zdWx0Owor6KuEID4gcGF0aWVudDsKK+irgiA+IGZsYXR0ZXI7CivoqrkgPiBzbGFuZGVyOwor6KqRID4gZGVjZWl2ZTsKK+iqhSA+IGV4ZWN1dGU7Civoqb4gPiBub2lzaWx5Owor6Km1ID4gaW5xdWlyZTsKK+iprSA+IGRlY2VpdmU7CivoqasgPiB0b1wtYnJhZzsKK+iphiA+IHNsYW5kZXI7CivoqYUgPiB0b1wtc2VsbDsKK+iouyA+IGV4cGxhaW47CivoqKwgPiBjbGFtb3VyOwor6KipID4gbm9pc2lseTsKK+iopiA+IHNpbmNlcmU7CivoqKIgPiBwbGVhc2VkOwor6KiRID4gZGVjZWl2ZTsKK+inoSA+IGFudGxlcnM7CivoprcgPiBwZWVwXC1hdDsKK+impSA+IGFzaGFtZWQ7CivoppwgPiBtaXNzaW9uOwor6KWcID4gZmx1dHRlcjsKK+ilgyA+IGNvbW1lbmQ7CivopL0gPiBjdXNoaW9uOwor6KSUID4gY29tcGxleDsKK+ijtSA+IHN1cm5hbWU7Civoo5IgPiBjb2xsZWN0Owor6KK9ID4gY2xvdGhlczsKK+iiuiA+IGhvbGRcLXVwOwor6KKqID4gc2xlZXZlczsKK+ihtSA+IGNoZW1pc2U7CivooJAgPiBtYWdnb3RzOwor6J6uID4gcmFpbmJvdzsKK+iduCA+IGFcLXNuYWlsOwor6J2DID4gcmFpbmJvdzsKK+idgCA+IHJhaW5ib3c7CivonKsgPiBpbnNlY3RzOwor6JqrID4gYWJhbG9uZTsKK+iakSA+IHRpcFwtdG9lOwor6JmGID4gZW50d2luZTsKK+iYiiA+IGNvbGxlY3Q7Civol7QgPiBjb2xsZWN0Owor6JeZID4gZG9nd29vZDsKK+iWvSA+IFwoZ3Jhc3NcKTsKK+iWtiA+IHRvXC1idXJ5Owor6JaTID4gZ2luc2VuZzsKK+iWkCA+IHNwaW5hY2g7CivoloogPiBjaXJjaXVtOwor6JWdID4gaGFuZGZ1bDsKK+iUvyA+IHN1cm5hbWU7CivolKMgPiBzdXJuYW1lOwor6JSYID4gZ2luc2VuZzsKK+iTjCA+IHByZXRlbmQ7CivokpAgPiBjb2xsZWN0Owor6JGgID4gZ2luc2VuZzsKK+iRiiA+IGNvdHRhZ2U7CivokLUgPiBsZXR0dWNlOwor6I+qID4gaGVuYmFuZTsKK+iPpyA+IHN0aWJlbmU7CivojoogPiB2aWxsYWdlOwor6I6AID4gdG9cLWZhcm07CivojZggPiB2aWxsYWdlOwor6Iy3ID4gZmx1dHRlcjsKK+iMoCA+IHRvXC13ZWVkOwor6Iu9ID4gYnVscnVzaDsKK+iLhSA+IGN1dFwtb2ZmOwor6ImmID4gd2Fyc2hpcDsKK+iIkyA+IHRvXC1saWNrOwor6IedID4gYmVcLWJhcmU7CivohZYgPiBwZXB0b25lOwor6IWOID4ga2lkbmV5czsKK+iEnSA+IGRpc3RlbmQ7CivogbYgPiB3aGlzcGVyOwor6IGvID4gY29ubmVjdDsKK+iBriA+IGNvbm5lY3Q7CivogasgPiBjb25uZWN0Owor6IGoID4gY29ubmVjdDsKK+iAiSA+IG9sZFwtYWdlOwor6ICIID4gb2xkXC1hZ2U7Civnv7kgPiB0dXJuXC11cDsKK+e/qiA+IGZsdXR0ZXI7CivnvpAgPiB0b1wtbGVhZDsKK+e9uCA+IHBlbmFsdHk7CivnvZYgPiBrd3VreWVsOwor57y7ID4gcG90dGVyeTsKK+e8siA+IHRvXC1yZWVsOwor57mzID4gZGVsaXZlcjsKK+e4tiA+IGNvbmZpbmU7CivnuIIgPiBjb2xsZWN0Owor57eLID4gc2NhcmxldDsKK+e3gSA+IHRvXC1qb2luOwor57WqID4gbWF0dGluZzsKK+eygiA+IHN1cm5hbWU7CivnsZsgPiBzdXJuYW1lOwor57GRID4gdG9cLWZlZWQ7CivnsIAgPiBiZWRcLW1hdDsKK+essCA+IGN1cnRhaW47CivnrJMgPiB0b1wtY29tYjsKK+eruCA+IGNvbnRlbmQ7Civnq5IgPiBzdHJhbmdlOwor56uIID4gZnVybmFjZTsKK+erhyA+IHN1cm5hbWU7CivnqoAgPiB0b1wtYnVyeTsKK+epqyA+IGhhcnZlc3Q7CivnqIogPiBkYXJuZWxzOwor56iHID4gdG9cLWJpbmQ7Civnp5AgPiB0b1wtd2VlZDsKK+emoiA+IHN1cm5hbWU7CivnpoIgPiB0b1wtcHJheTsKK+ektSA+IGFyc2VuaWM7Civno4cgPiBhcnNlbmljOwor56KDID4gXChzdG9uZVwpOwor55+xID4gbWVhc3VyZTsKK+efryA+IGNvcnJlY3Q7Civnn58gPiAnJ1wtbGFuY2U7Civnnq8gPiB0b1wtcGVlcDsKK+eeniA+IGRlY2VpdmU7CivnnL0gPiB0b1wtZ2F6ZTsKK+ectCA+IGRhenpsZWQ7CivnnI4gPiBsb29rXC1hdDsKK+ebpyA+IGNvdHRhZ2U7CivnmakgPiBsZXByb3N5Owor55moID4gcXVpY2tseTsKK+eYuyA+IGZpc3R1bGE7CivnmJ0gPiBpbGxuZXNzOwor55WQID4gdG9cLWZpbGw7CivnlJQgPiBiaWdcLWphcjsKK+eTmyA+IHNjYXB0cmU7CivnkrogPiBhXC1jcmFjazsKK+eSiiA+IHJlZGRpc2g7CivnkLEgPiBlbmdyYXZlOwor546nID4gcmVkZGlzaDsKK+eNuSA+IGFcLWhvdW5kOwor542aID4gc3BhbmllbDsKK+eLiSA+IGZveFwtY3ViOwor54qGID4gc3BlY2lhbDsKK+eJriA+IHByb3BcLXVwOwor54e8ID4gY2luZGVyczsKK+eGuyA+IHRvXC1oZWF0Owor54a4ID4gcHV0XC1vdXQ7Civnhq8gPiBieVwtZmlyZTsKK+eFuyA+IHRvXC13YXJtOwor54WlID4gc2hpbmluZzsKK+eDiSA+IHNoaW5pbmc7CivngbQgPiB0b1wtYmFrZTsKK+eAuSA+IHRvXC1ib2lsOwor54CnID4gcmFpbmluZzsKK+a+oyA+IGNsZWFuc2U7CivmvpAgPiBiaWxsb3dzOwor5r2sID4gYVwtcmFwaWQ7CivmuqYgPiBkcml6emxlOwor5ri8ID4gcmlwcGxlczsKK+a4pyA+IHRvXC1kcm9wOwor5riZID4gc2NhdHRlcjsKK+a3qiA+IGJlXC1sb3N0Owor5ra2ID4gdG9cLXNwaXQ7CivmtpIgPiBtZWFuZGVyOwor5rS4ID4gc3BhcmtsZTsKK+ayhCA+IGJpbGxvd3M7CivmsYsgPiB0b1wtcG91cjsKK+awvCA+IHRvXC1zaW5rOwor5rCVID4gcHJvdGl1bTsKK+avmiA+IGN1bm5pbmc7Civmr4AgPiBkZXN0cm95Owor5q26ID4gdmljaW91czsKK+atnCA+IGZ1cmlvdXM7CivmrL0gPiByZXNwZWN0Owor5qyEID4gcmFpbGluZzsKK+arpSA+IGNhYmluZXQ7Civmq50gPiBjYWJpbmV0Owor5qmGID4gd2l0aG91dDsKK+amoiA+IGFcLWZyYW1lOwor5qSXID4gXChwbGFudFwpOwor5qO4ID4gc3VybmFtZTsKK+agoiA+IGN5cHJlc3M7CivmnrwgPiBhXC10YWJsZTsKK+aekyA+IGNhcGl0YWw7CivmnbggPiB0b1wta2lsbDsKK+adtiA+IHZhcm5pc2g7CivmnL4gPiB0b1wtYnVtcDsKK+acsCA+IGt3dWt5ZWw7CivmnKIgPiBsb29rXC1hdDsKK+aciiA+IHByb3RlaW47Civmm70gPiBhbHJlYWR5Owor5puWID4gb2JzY3VyZTsKK+aZiSA+IGFkdmFuY2U7Civml6MgPiBhbHJlYWR5Owor5pa/ID4gdG9cLXN3aW07Civmlq4gPiBjdXRcLW9mZjsKK+aWoCA+IG1lYXN1cmU7CivmloEgPiBkaXNsaWtlOwor5pW+ID4gdG9cLXJ1bGU7Civmla8gPiB0b1wtZGVmeTsKK+aVrSA+IHNjYXR0ZXI7CivmlZwgPiBmaWxsXC11cDsKK+aVmCA+IGV4cHJlc3M7CivmlY0gPiBleHByZXNzOwor5pS3ID4gZXhhbWluZTsKK+aUqiA+IGRpc3R1cmI7CivmlKMgPiB0YW5nbGVkOwor5pSdID4gdGFrZVwtaW47CivmlI8gPiBjb2xsZWN0Owor5pO+ID4gZGlzdHVyYjsKK+aTuCA+IHRvXC1ob2xkOwor5pO3ID4gcGlja1wtdXA7Civmk68gPiBleGNsdWRlOwor5pOdID4gdG9cLXB1bGw7Civmk4QgPiBjYXB0dXJlOwor5pOBID4gZW1icmFjZTsKK+aSviA+IHRvXC1iZWF0Owor5pK5ID4gZGlzdHVyYjsKK+aStCA+IHRvXC1qb2x0Owor5pKjID4gdG9cLWR1c3Q7CivmkqIgPiB0b1wtZHVzdDsKK+aSnyA+IGNvcnJlY3Q7CivmkpMgPiBzY3JhdGNoOwor5pKQID4gcHJvcFwtdXA7Civmka8gPiBzaW5jZXJlOwor5pGgID4gZ2VuZXJhbDsKK+aRgiA+IHRha2VcLWluOwor5pC3ID4gdG9cLWJlYXQ7CivmkLYgPiBwbHVuZGVyOwor5o69ID4gY29sbGlkZTsKK+aOryA+IG9wcHJlc3M7CivmjI0gPiBjb2xsYXRlOwor5ourID4gdG9cLXB1bGw7CivmioggPiB0b1wtYmVuZDsKK+aJvSA+IHRvXC1tb3ZlOwor5oinID4gc3VwcG9ydDsKK+aHsCA+IGJlXC1nbGFkOwor5oerID4gZW5yYWdlZDsKK+aHpCA+IGdyaWV2ZWQ7Civmh5sgPiBhbGFybWVkOwor5oeHID4gc2luY2VyZTsKK+aHhiA+IGFueGlvdXM7Civmh4UgPiBiYXNoZnVsOwor5oaDID4gZm9vbGlzaDsKK+aFsyA+IG1pc2VybHk7CivmhaogPiBhbm5veWVkOwor5oWfID4gc2FkbmVzczsKK+aFmiA+IGFzaGFtZWQ7CivmhZkgPiBhc2hhbWVkOwor5oSQID4gYmFzaGZ1bDsKK+aEiiA+IHNpbmNlcmU7Civmg7cgPiB3cmlnZ2xlOwor5oOjID4gb3ZlcmFsbDsKK+aDliA+IHJlc3BlY3Q7Civmg5MgPiBjYXJlZnVsOwor5oOHID4gYmVcLWtpbmQ7CivmgqkgPiBhbmdlcmVkOwor5oKcID4gb2JzY3VyZTsKK+aCkCA+IHJlc3BlY3Q7CivmgoUgPiBwbGVhc2VkOwor5oGgID4gc3RyYW5nZTsKK+aBiSA+IG1lYW5pbmc7CivmgLEgPiBoYXN0aWx5Owor5b2nID4gcmVmaW5lZDsKK+W9pSA+IGVsZWdhbnQ7CivlvZogPiBjb2xsZWN0Owor5b2ZID4gY29sbGVjdDsKK+W9hiA+IGF3a3dhcmQ7Civlu6kgPiBncmFuYXJ5Owor5bugID4gZmFjdG9yeTsKK+W7nSA+IHNlcnZhbnQ7Civlu5ogPiBraXRjaGVuOwor5buMID4gdW5pY29ybjsKK+W7iyA+IGNvbmNlYWw7CivluqQgPiBwcmVwYXJlOwor5bm3ID4gY29tYmluZTsKK+W5qyA+IHRvXC1oZWxwOwor5bmoID4gY3VydGFpbjsKK+W5gCA+IHBpY3R1cmU7CivluL8gPiBtYXJxdWlzOwor5biyID4gc2hlbHRlcjsKK+W4oSA+IHNoZWx0ZXI7Civlt78gPiByZXZvbHZlOwor5beHID4gYVwtY3JhY2s7CivltpcgPiBsYW9zaGFuOwor5bSLID4gZmxvd2VyeTsKK+WwnyA+IHN1cm5hbWU7Civlr6ogPiBzdXJuYW1lOwor5a2FID4gc2xlbmRlcjsKK+WruyA+IGVsZWdhbnQ7Civlq7ogPiByZWZpbmVkOwor5aq/ID4gYXNoYW1lZDsKK+WquyA+IHRvXC1tb3ZlOwor5aqeID4gYXRcLWVhc2U7CivlqawgPiBvYnNjZW5lOwor5amBID4gc3VybmFtZTsKK+WnjSA+IHNsYW5kZXI7CivlpZsgPiBvcGVuaW5nOwor5aSjID4gYVwtZHJlYW07Civlo70gPiBvbGRcLWFnZTsKK+WjrSA+IGt3dWt5ZWw7Civlo50gPiBhXC1tb3VuZDsKK+WjmCA+IHJhbXBhcnQ7Civlo5QgPiBhXC1tb3VuZDsKK+WhvSA+IHBsYXRlYXU7CivloaEgPiBmaWxsXC1pbjsKK+WhkyA+IHBsYXN0ZXI7CivloYEgPiByYW1wYXJ0Owor5aCEID4gcGFyYXBldDsKK+WflyA+IGFcLXdoYXJmOwor5ZyXID4gZGlhZ3JhbTsKK+WclSA+IGxpYnJhcnk7CivlnIIgPiBwaWdcLXN0eTsKK+WbqiA+IGNoaW1uZXk7CivlmqUgPiBzd2FsbG93Owor5ZqVID4gdmVyYm9zZTsKK+WaiiA+IHRvXC1wYW50Owor5ZmyID4gc3dhbGxvdzsKK+WZpSA+IHdoaXNwZXI7CivlmLggPiB1bmNsZWFyOwor5Ze5ID4gY2hhdHRlcjsKK+WWviA+IGVtcGVyb3I7CivllqUgPiBhXC1wbGFjZTsKK+WVsSA+IGNvcnJlY3Q7CivllJ4gPiB0b1wtZ2FzcDsKK+WUhSA+IGFcLXNvdW5kOwor5ZK+ID4gYVwtbm9pc2U7CivlkoogPiBoYXJtb255Owor5ZKJID4gYW5cLWVjaG87Civlkb8gPiB0b1wteWF3bjsKK+WRrCA+IHRvXC1yZXN0Owor5ZGrID4gd2hpc3BlcjsKK+WRjCA+IHRvXC1jYWxsOwor5Y+cID4gb2xkXC1tYW47CivljrwgPiBrd3VreWVsOwor5Y6wID4gZmFjdG9yeTsKK+WOqyA+IGdyYW5hcnk7CivljpkgPiBzdXJuYW1lOwor5Y2yID4gZW1pbmVudDsKK+WNqiA+IGt3dWt5ZWw7CivljYYgPiBzb2xkaWVyOwor5Yy9ID4gdG9cLWhpZGU7CivljLEgPiB0b1wtbGFjazsKK+WMpyA+IGFcLXRydW5rOwor5YyLID4gcG90dGVyeTsKK+WMiiA+IGhhbmRmdWw7Civli6YgPiBkZXN0cm95Owor5YqQID4gZGVzdHJveTsKK+WKiSA+IHN1cm5hbWU7CivlibQgPiBzaGFycGVuOwor5YeKID4gc3VybmFtZTsKK+WGpiA+IGJhbmRpdHM7Civlha8gPiBrd3VreWVsOwor5YWqID4gc3VybmFtZTsKK+WFgiA+IGhhaXJwaW47CivlhLYgPiB2YWxpYW50Owor5YSmID4gbWlsbGluZzsKK+WEpCA+IG9uXC1kdXR5Owor5YSTID4gc2VydmFudDsKK+WEjSA+IGZvb2xpc2g7Civlg68gPiBhc2hhbWVkOwor5YOkID4gc2luY2VyZTsKK+WDjiA+IGNvbGxlY3Q7CivlgrwgPiBzdXJuYW1lOwor5YKaID4gaW1pdGF0ZTsKK+WClCA+IHNlcnZhbnQ7CivlgoEgPiBvbGRcLW1hbjsKK+WBuSA+IHByZXBhcmU7CivlgKMgPiBpbWl0YXRlOwor5YCdID4gc3VucmlzZTsKK+WAkCA+IGhhc3RpbHk7CivlgIIgPiBjb21iaW5lOwor5L60ID4gc3VybmFtZTsKK+S+hyA+IGFcLWNsYXNzOwor5L6FID4gdG9cLWdpdmU7CivkvYkgPiBzdXJuYW1lOwor5LyIID4gbmVydm91czsKK+S8gCA+IGV4Y2l0ZWQ7Civku5IgPiBrd3VreWVsOwor5Lq9ID4ga3d1a3llbDsKK+S6tyA+IHVwcmlnaHQ7CivkurYgPiBzaW5jZXJlOwor5LqqID4ga3d1a3llbDsKK+S6lyA+IGhhcnZlc3Q7Civkub8gPiB0b1wtY3VyZTsKK+S5rCA+IHRvXC1oYW5nOwor5LmlID4ga3d1a3llbDsKK+S5myA+IGt3dWt5ZWw7CivkuYogPiBrd3VreWVsOwor5LmAID4gc3RyZXRjaDsKK+S4tyA+IGt3dWt5ZWw7CivkuJ8gPiBkaXNjYXJkOwor5LiPID4gcGFyYXBldDsKK+S4hiA+IGt3dWt5ZWw7CivktrQgPiB0b1wtYmxvdzsKK+S2qSA+IHRvXC1nbmF3Owor5LanID4gdG9cLWduYXc7CivktqIgPiB0b1wtZ25hdzsKK+S2oCA+IHRvXC1nbmF3Owor5LaeID4gdG9cLWduYXc7CivktpcgPiB0b1wtYml0ZTsKK+S1vCA+IHRvXC1ib2lsOwor5LSnID4gdmVuaXNvbjsKK+S0kiA+IHdhZ3RhaWw7Civks60gPiB3YWd0YWlsOwor5LKsID4gY2hpY2tlbjsKK+SyoyA+IHRvXC1maXNoOwor5LKdID4gcG9tZnJldDsKK+SylCA+IGFcLXdoYWxlOwor5LG3ID4gdG9cLWZpc2g7CivksYkgPiB0aGVcLWVlbDsKK+SxhyA+IHRoZVwtZWVsOwor5LCvID4gdG9cLWZlYXI7CivksJ4gPiB0b1wtY29vazsKK+SwgSA+IHRvXC1tZWV0Owor5K68ID4gcGllYmFsZDsKK+SuuyA+IHRvXC1wcmF5Owor5K6mID4gdW50YW1lZDsKK+StriA+IGpld2Vscnk7CivkraQgPiB0b1wtY2hldzsKK+StoCA+IGFcLXNuYWNrOwor5KyhID4gdG9cLXNvYXI7CivkrJ0gPiBhXC1zdG9ybTsKK+SsliA+IGFcLXN0b3JtOwor5KyOID4gaG90XC1haXI7Civkq7ggPiB0b1wtYmxvdzsKK+SrmCA+IGhlYWx0aHk7Civkq5IgPiBkaXNlYXNlOwor5KqjID4gc21hc2hlZDsKK+SqoiA+IHNtYXNoZWQ7CivkqbMgPiB0YW5uaW5nOwor5KmfID4gbGVhdGhlcjsKK+SplCA+IHRoZVwtaGVtOwor5KioID4gdGh1bmRlcjsKK+SoniA+IHRvXC1yYWluOwor5KibID4gdG9cLXJhaW47CivkqJogPiB0b1wtcmFpbjsKK+SokyA+IHRodW5kZXI7CivkqIIgPiBhXC1jaGljazsKK+SnsCA+IGFcLW1vdW5kOwor5KefID4gdG9cLXNraW47Civkp40gPiBhXC1jcmFjazsKK+SmrSA+IHRvXC1vcGVuOwor5KaLID4gdG9cLWdyb3c7CivkpbAgPiB0b1wtbWVsdDsKK+SlriA+IHRvXC1iZWF0Owor5KWKID4gcmVmaW5lZDsKK+SknyA+IGFcLXNwYWRlOwor5KSYID4gdmluZWdhcjsKK+SklSA+IHZpbmVnYXI7CivkpIggPiB2aW5lZ2FyOwor5KO3ID4gdG9cLXBvdXI7CivkorYgPiBhXC1zdGF0ZTsKK+SisCA+IHRvXC1qdW1wOwor5KKsID4gdG9cLW1vdmU7CivkoqMgPiBkaXN0YW50Owor5KKiID4gdG9cLXBhc3M7CivkoqAgPiB0b1wtc2VuZDsKK+SimSA+IHRvXC1ydWluOwor5KKSID4gdG9cLW1lZXQ7CivkoowgPiB0b1wtd2FsazsKK+SgvCA+IHRvXC13ZWFyOwor5KCzID4gdG9cLXdhbGs7CivkoKUgPiB0b1wtbGltcDsKK+SgnCA+IHRvXC13YWxrOwor5KCbID4gdG9cLWp1bXA7CivkoJMgPiB0b1wtd2FsazsKK+SghCA+IHRvXC13YWxrOwor5J++ID4gdG9cLWp1bXA7Civkn7cgPiB0b1wtanVtcDsKK+SfsCA+IHRvXC13YWxrOwor5J+tID4gdG9cLWp1bXA7Civkn6wgPiB0b1wtd2FsazsKK+SfpiA+IHRvXC13YWxrOwor5J+QID4gdG9cLXdhbGs7Civkn48gPiB0b1wtanVtcDsKK+SfjSA+IHRvXC13YWxrOwor5J+JID4gdG9cLXdhbGs7Civkn4ggPiB0b1wtd2FsazsKK+SfhyA+IHRvXC13YWxrOwor5J+AID4gdG9cLXdhbGs7CivknrsgPiB0b1wtd2FsazsKK+SeuiA+IHRvXC13YWxrOwor5J65ID4gdG9cLXdhbGs7CivknrUgPiB0b1wtanVtcDsKK+SetCA+IHRvXC1qdW1wOwor5J6vID4gdG9cLXdhbGs7CivknqsgPiB0b1wtd2FsazsKK+SepSA+IHRvXC13YWxrOwor5J6kID4gdG9cLXdhbGs7CivknqIgPiB0b1wtd2FsazsKK+SeoSA+IHRvXC13YWxrOwor5J6gID4gdG9cLXdhbGs7Civknp4gPiB0b1wtd2FsazsKK+SduyA+IHRvXC1zZWxsOwor5J2uID4gdG9cLWJyYWc7CivknacgPiBjYXBpdGFsOwor5JyWID4gdG9cLXRhbGs7CivknIkgPiB0b1wtamVzdDsKK+SbvyA+IGN1bm5pbmc7Civkm7ogPiB0b1wtd2FybjsKK+SbtyA+IHRvXC1vYmV5Owor5JuwID4gc2tldGNoeTsKK+SboiA+IGN1bm5pbmc7Civkm50gPiB0b1wtbGlrZTsKK+SbmyA+IGNvdXJhZ2U7CivkmrwgPiBhc2hhbWVkOwor5Jq7ID4gdG9cLXNpbmc7CivkmrEgPiBob25lc3R5Owor5JquID4gdGhpY2tlcjsKK+SalyA+IHRvXC1saWZ0Owor5JqPID4gdG9cLWxvdmU7CivkmbIgPiB0b1wtbW92ZTsKK+SZqSA+IGNsb3RoZXM7CivkmZkgPiBjbG90aGVzOwor5JmOID4gc2xlZXZlczsKK+SZiSA+IGNsb3RoZXM7CivkmLcgPiBzbGVldmVzOwor5Ji2ID4gc2xlZXZlczsKK+SYsSA+IHdlYWx0aHk7CivkmK4gPiB0b1wtbG9zZTsKK+SYoCA+IGdyZWF2ZXM7CivkmJ0gPiBhXC1zaGlydDsKK+SXsiA+IGZpcmVmbHk7Civkl5EgPiBmaXJlZmx5Owor5Ja1ID4gaW5zZWN0czsKK+SWnSA+IGluc2VjdHM7CivklpogPiBhXC10aWdlcjsKK+SWmCA+IGFcLXRpZ2VyOwor5JaVID4gYVwtdGlnZXI7CivkloQgPiB0b1wtYnVybjsKK+SVniA+IGhlbmJhbmU7CivklZEgPiBwYXJzbGV5Owor5JS6ID4gaGVhZGluZzsKK+SUgCA+IHBhcnNsZXk7CivkkrYgPiB0aGVcLXNreTsKK+SSmCA+IHBhcnNsZXk7CivkkacgPiBhXC1zaG9ydDsKK+SRmyA+IHRvXC1saWNrOwor5JC/ID4gZ2l6emFyZDsKK+SQtyA+IHBhdW5jaHk7CivkkLYgPiB0b1wtY29vazsKK+SQtCA+IGx1bWJhZ287CivkkKsgPiBvYmVzaXR5Owor5JCKID4gaW5zZWN0czsKK+SPnSA+IHNpbmNlcmU7Civkj5YgPiBhXC13b3VuZDsKK+SPkSA+IHRvXC1idXJuOwor5I+HID4gdG9cLWhlYXI7Civkj4UgPiB0b1wtaGVhcjsKK+SPgyA+IHRvXC1oZWFyOwor5I69ID4gdG9cLWhlYXI7CivkjrsgPiB0b1wtaGVhcjsKK+SOuSA+IHRvXC1oZWFyOwor5I64ID4gdG9cLWhlYXI7CivkjqkgPiB0b1wtdGlsbDsKK+SOpiA+IHRvXC10aWxsOwor5I6kID4gdG9cLXRpbGw7Civkjp0gPiB0b1wtc29hcjsKK+SOjCA+IGZlYXRoZXI7CivkjbYgPiB1bmljb3JuOwor5I2zID4gZGlzZWFzZTsKK+SMmCA+IHRvXC1rbml0Owor5IyUID4gdG9cLXNvYWs7CivkjIEgPiBhXC1wbGVhdDsKK+SLjiA+IHRvXC1tZW5kOwor5IqfID4gYWRvcm5lZDsKK+SKmCA+IGFcLWdyYWluOwor5IqSID4gcmVmaW5lZDsKK+SKhyA+IHRvXC1mZWVkOwor5Im1ID4gdG9cLWZlZWQ7CivkiaIgPiBhXC1zaWV2ZTsKK+SJjiA+IGFcLWNvdmVyOwor5IisID4gYVwtc21hbGw7CivkiKogPiBhXC1zbWFsbDsKK+SIpSA+IHRlbmRvbnM7CivkiKQgPiBwaW5jZXJzOwor5IiSID4gZnJhZ2lsZTsKK+SIhyA+IGFcLWNvdmVyOwor5IeUID4gYXRyb3BoeTsKK+SHjSA+IHRvXC13YWl0Owor5Ia1ID4gYW5cLWVjaG87CivkhqggPiB0aGVcLXNreTsKK+SFuCA+IGFcLWdyYWluOwor5ISkID4gdG9cLXNpbms7CivkhI8gPiBiaXphcnJlOwor5IOjID4gdG9cLXJ1aW47CivkgoogPiB3ZWFwb25zOwor5IKJID4gd2VhcG9uczsKK+SChiA+IHdlYXBvbnM7CivkgoAgPiB0b1wtd2luazsKK+SBsiA+IHRvXC1wZWVwOwor5IGqID4gdG9cLXdpbms7CivkgaMgPiB0b1wtd2luazsKK+SBmyA+IHRvXC1sb29rOwor5IGSID4gdG9cLXdpbms7CivkgLsgPiB0b1wtbG9vazsKK+SAqCA+IHRvXC1sb29rOwor5ICUID4gdG9cLWxvb2s7Civjv6YgPiB0b1wtdGVsbDsKK+O/kiA+IGlsbG5lc3M7Civjv5EgPiBpbGxuZXNzOwor47+NID4gc2NhYmllczsKK+O+tyA+IHRvXC1hY2hlOwor476sID4gbWFsYXJpYTsKK+O+oCA+IGFcLWZldmVyOwor476fID4gcmVsYXBzZTsKK+O+niA+IGlsbG5lc3M7CivjvpggPiBhaWxtZW50Owor476WID4gZ3JpZXZlZDsKK+O+lSA+IGFcLWNoaWxsOwor476TID4gZmF0aWd1ZTsKK+O+kiA+IGlsbG5lc3M7Civjvo8gPiBpbGxuZXNzOwor476HID4gaWxsbmVzczsKK+O+hiA+IGVjZHlzaXM7CivjvoUgPiBkZWZlY3RzOwor476CID4gaWxsbmVzczsKK+O9tCA+IGlsbG5lc3M7CivjvbMgPiBpbGxuZXNzOwor472dID4gdG9cLXNpbms7CivjvZYgPiBhXC1odW1hbjsKK+O8vCA+IGFcLWxhZGxlOwor47y3ID4gYVwtYmFzaW47CivjvJwgPiBhXC1iYXNpbjsKK+O8lyA+IGFcLWJyaWNrOwor47u5ID4gYVwtY3JhY2s7Civju4MgPiBjcm9va2VkOwor47qyID4gYnV0dG9uczsKK+O6lyA+IHRvXC1iaXRlOwor47qKID4gYVwtYmVhc3Q7Civjub4gPiBjdW5uaW5nOwor47m9ID4gdG9cLWJpdGU7CivjuZ4gPiB0b1wtYmFyazsKK+O5myA+IGFcLXRhbWVkOwor47inID4gdG9cLWJpdGU7CivjuJAgPiB0b1wtYnVybjsKK+O4jSA+IHRvXC1idXJuOwor47e7ID4gd2l0aG91dDsKK+O3kyA+IGFcLXRvcmNoOwor47eKID4gdG9cLWJ1cm47Civjt4kgPiB0b1wtaXJvbjsKK+O3hSA+IHRvXC1jb29rOwor47auID4gdG9cLWJ1cm47CivjtqsgPiB0b1wtYnVybjsKK+O2oyA+IHRvXC1idXJuOwor47aXID4gd2VsbFwtdXA7CivjtpMgPiB0b1wtc2luazsKK+O2hyA+IGFcLWZlcnJ5Owor47W4ID4gdG9cLWJvaWw7CivjtbQgPiB0b1wtc2luazsKK+O1oyA+IHRoaXJzdHk7CivjtZIgPiBib2lsaW5nOwor47WMID4gdG9cLWZsb3c7CivjtYUgPiBhXC1yaXZlcjsKK+O0vyA+IGJvaWxpbmc7CivjtIkgPiB2YXJpb3VzOwor47SHID4gdG9cLXdhZGU7CivjtIUgPiB0b1wtbWVsdDsKK+OzuiA+IHRvXC1zd2ltOwor47OtID4gc3BpdHRsZTsKK+OzrCA+IGFuXC1lZGR5Owor47OqID4gYVwtcml2ZXI7Civjs6YgPiBhXC1yaXZlcjsKK+OzmSA+IGFcLWJyb29rOwor47OFID4gdG9cLWZsb3c7Civjs4QgPiBzcGl0dGxlOwor47K6ID4gdG9cLXdhc2g7CivjsoUgPiB0b1wtYmluZDsKK+OygiA+IHRvXC1wdXNoOwor47KBID4gdG9cLWJlYXQ7CivjsoAgPiB0b1wtYmVhdDsKK+OxriA+IHRvXC1vcGVuOwor47GWID4gdG9cLXN0YXk7CivjsYwgPiB0b1wtdGFrZTsKK+OxhCA+IHRvXC1zcGl0Owor47GAID4gdG9cLWJpdGU7CivjsLUgPiB0b1wtc3VjazsKK+OwlSA+IGFcLWxhZGxlOwor46+7ID4gdG9cLWJpbmQ7Civjr7kgPiB0b1wtc2hvdzsKK+OvuCA+IGFcLWJhc2luOwor46+TID4gYVwtY291Y2g7Civjr5AgPiB0dWJ1bGFyOwor46+LID4gYVwtY2hlc3Q7CivjrrggPiB0b1wtc2VuZDsKK+OumyA+IGFcLXNwb29uOwor462wID4gdG9cLWtub3c7CivjrawgPiB0b1wtYmVhdDsKK+OtqiA+IGFcLXNocnViOwor462MID4gYVwtYmFzaW47CivjrYggPiBhXC1iYXNpbjsKK+OsvCA+IHRvXC1oYXZlOwor46ydID4gb2JzY3VyZTsKK+OslCA+IHRvXC1kZWZ5Owor46yDID4gc3VucmlzZTsKK+OrtCA+IHRvXC1yb2FyOwor46uzID4gbW9ybmluZzsKK+OrpyA+IHZpb2xlbnQ7Civjq50gPiB0aGVcLXN1bjsKK+OrmSA+IHRoZVwtc3VuOwor46uRID4gcHVycG9zZTsKK+OqvCA+IHRvXC1wdWxsOwor46qxID4gZWxlZ2FudDsKK+OqryA+IHRvXC1saWZ0Owor46quID4gdG9cLWJlYXQ7CivjqqggPiB0b1wtbWVuZDsKK+OqpyA+IHRvXC1iZWF0Owor46qmID4gdG9cLWJlYXQ7CivjqqUgPiB0b1wtdGFrZTsKK+OqoiA+IHRvXC1iZWF0Owor46qgID4gdG9cLXBlY2s7Civjqp0gPiB0b1wtYmVhdDsKK+OqlyA+IHRvXC1vcGVuOwor46qVID4gdG9cLWJlYXQ7CivjqpIgPiB0b1wtcnVpbjsKK+OqjyA+IHRvXC1ydWluOwor46qBID4gdG9cLWhvbGQ7CivjqbYgPiB0b1wtaG9sZDsKK+OptSA+IHRvXC1iZWF0Owor46mzID4gdG9cLWhvbGQ7CivjqbAgPiB0b1wtc3RhYjsKK+OpryA+IHRvXC1tb3ZlOwor46msID4gdG9cLWJlYXQ7CivjqaQgPiB0b1wtb3BlbjsKK+OpoyA+IHRvXC1tb3ZlOwor46miID4gdG9cLWJlYXQ7CivjqZUgPiB0b1wtaGF1bDsKK+OpiyA+IHRvXC1iZWF0Owor46i3ID4gdG9cLXdpcGU7CivjqLAgPiB0b1wtdHVybjsKK+OopiA+IHRvXC1ob2xkOwor46ikID4gdG9cLXdpcGU7CivvqKIgPiBzZXZlcmFsOwor76ieID4gZmVhdGhlcjsKK++onSA+IGVzc2VuY2U7CivjqJYgPiB0b1wtc3RhYjsKK+OojyA+IHRvXC1iZWF0Owor46iLID4gdG9cLWJlYXQ7CivvqIkgPiBkZXNjZW5kOwor76iGID4gdmlvbGVudDsKK+OohiA+IHRvXC1raWxsOwor46iCID4gdG9cLWJlYXQ7Civjp78gPiB0b1wtYnVtcDsKK+OnuyA+IGFcLXRob3JuOwor46erID4gdG9cLWhvbGQ7Civjp6ogPiB0b1wtcnVpbjsKK+OnpCA+IHRvXC1qdW1wOwor46ejID4gdG9cLXN0b3A7Civjp6EgPiB0b1wtbW92ZTsKK+OnnyA+IHRvXC13aXBlOwor46edID4gdG9cLXRha2U7Civvp5sgPiB0b1wtbGVhZDsKK+OnnCA+IHRvXC1ob2xkOwor76eYID4gc3RhdHV0ZTsKK++nliA+IGJlXC1sb3N0Owor46eTID4gdG9cLWxlYWQ7Civjp5IgPiB0b1wtYmVhdDsKK+OnkSA+IHRvXC13YXZlOwor46eQID4gdG9cLWhvbGQ7Civjp4ogPiB0b1wtcHVzaDsKK++nhyA+IHN1cm5hbWU7Civjp4ggPiB0b1wtcHVsbDsKK+OnhyA+IHRvXC1ob2xkOwor76eDID4gZGlzdGFudDsKK+OnhCA+IHRvXC10YWtlOwor76eAID4gdG9cLWJ1cm47CivjprkgPiBhXC1zcGVhcjsKK+OmtSA+IHRvXC1raWxsOwor46atID4gdG9cLXBpdHk7CivjpqwgPiBhc2hhbWVkOwor76aoID4gY29tbWFuZDsKK++mpiA+IGFcLWJsaW5kOwor76aiID4gdXByaWdodDsKK+OmniA+IGdyaWV2ZWQ7CivvppcgPiBjb25uZWN0Owor46aVID4gdGhvdWdodDsKK++miSA+IHN1cm5hbWU7CivvpoAgPiBzdXJuYW1lOwor76W+ID4gbWVhc3VyZTsKK+OlvSA+IGZlZWxpbmc7CivjpbkgPiB0b1wtbW92ZTsKK++lsyA+IHBpY2tcLXVwOwor46WvID4gY2FyZWZ1bDsKK++lrCA+IHN0b3BcLXVwOwor46WkID4gdG9cLXBpdHk7CivvpaEgPiB0b1wtbGVhZDsKK++lnSA+IHByb21pc2U7CivjpZUgPiB0b1wtcGl0eTsKK+OlkiA+IGNvcnJ1cHQ7CivjpY8gPiBiYXNoZnVsOwor46WMID4gcHJ1ZGVudDsKK++liiA+IHJhbXBhcnQ7CivvpYkgPiB0aHVuZGVyOwor46WEID4gdG9cLXBpdHk7CivjpL8gPiB0b1wtbG92ZTsKK+OkvSA+IGdyaWV2ZWQ7CivvpLkgPiBmb29saXNoOwor46S6ID4gYmx1cnJlZDsKK++ktiA+IGNhcHR1cmU7CivjpLYgPiBjb25mdXNlOwor76SzID4gY290dGFnZTsKK++ksCA+IGNhcHR1cmU7CivjpK0gPiB1bnRhbWVkOwor46SgID4gZ3JpZXZlZDsKK++knSA+IHJhaWxpbmc7CivvpI4gPiBsZXByb3N5Owor46SFID4gdG9cLWxvdmU7CivvpIMgPiBzdXJuYW1lOwor46SDID4gamVhbG91czsKK+OkgiA+IGFueGlvdXM7Civjo7cgPiB3YWxraW5nOwor46O2ID4gdG9cLXdhbGs7Civjo6wgPiB0b1wtd2FsazsKK+OjnCA+IHRvXC13YWxrOwor46ObID4gd2Fsa2luZzsKK+OjgyA+IHRvXC1zZWxsOwor46OCID4gdG9cLWJpbmQ7CivjorwgPiBhd2t3YXJkOwor46KjID4gdG9cLWxpZnQ7Civjop0gPiBjb3R0YWdlOwor46KVID4gaGFybW9ueTsKK+OhuCA+IGFcLWhvdXNlOwor46GwID4gYVwtaG91c2U7CivjoasgPiBhbnhpb3VzOwor46GoID4gYVwtbGFiZWw7CivjoZggPiBzY3JlZW5zOwor46GTID4gZHJhd2VyczsKK+OhgiA+IHJlbWFpbnM7CivjoK0gPiB0b1wtb3BlbjsKK+OfpyA+IGFcLWNsaWZmOwor4566ID4gYVwtdHJpYmU7CivjnqsgPiB0b1wtd2FsazsKK+OepyA+IHRvXC1tZWV0Owor456kID4gdG9cLWhlbHA7CivjnqEgPiB0b1wtb3BlbjsKK+OegCA+IHRvXC1idW1wOwor4528ID4gY3Jvb2tlZDsKK+OdsSA+IGFcLWRyZWFtOwor452iID4gYVwtaG91c2U7CivjnYAgPiB0b1wtbGlrZTsKK+OcviA+IGFcLWNoaWxkOwor45ypID4gamVhbG91czsKK+OckyA+IHdvbWFubHk7CivjnIkgPiB3b21hbmx5Owor45yHID4gdW5oYXBweTsKK+ObvyA+IGN1bm5pbmc7Civjm7sgPiB3b21hbmx5Owor45uvID4gdG9cLXNvYXI7Civjm5UgPiB3b21hbmx5Owor45qiID4gYVwtc2xhdmU7CivjmZQgPiBhXC1mZW5jZTsKK+OZkCA+IHRvXC1tb3ZlOwor45mPID4gY2F2ZXJuczsKK+OYuCA+IHRvXC1idXJ5Owor45i3ID4gbXVnd29ydDsKK+OYqSA+IHRvXC1tYXRlOwor45iXID4gd2hpc3BlcjsKK+OYlSA+IHRvXC1jYWxsOwor45iCID4gYXNoYW1lZDsKK+OYgSA+IHRvXC1jYWxsOwor45e9ID4gYW5cLWVjaG87Civjl7IgPiB0b1wtY2FsbDsKK+OXsSA+IHRvXC1zdWNrOwor45etID4gYVwtc291bmQ7Civjl6QgPiBhc2hhbWVkOwor45eNID4gdG9cLWduYXc7Civjl4MgPiB0aGVcLWxpcDsKK+OWvyA+IGFcLXNvdW5kOwor45a7ID4gd2hpc3BlcjsKK+OWuiA+IHRvXC1ibG93Owor45atID4gdG9cLWxpY2s7CivjlqUgPiB0b1wtc3BpdDsKK+OVtyA+IHRvXC1jYWxsOwor45WxID4gdG9cLWJhcms7Civjla4gPiB0b1wtY2hldzsKK+OVnyA+IHRvXC1zaWduOwor45WeID4gYVwtYnJ1c2g7CivjlZwgPiBoaXN0b3J5Owor45S/ID4gYVwtdGFsbHk7CivjlK0gPiBhXC1zcG9vbjsKK+OUoSA+IGdyZWF0bHk7CivjlIIgPiB0b1wtcGFyZTsKK+OTsiA+IHRvXC1wYXJlOwor45OwID4gdG9cLXJpdmU7Civjk6UgPiB0b1wta2lsbDsKK+OTnyA+IHRvXC1wZWVsOwor45OQID4gdG9cLXJhaW47CivjkrwgPiBhdmVyYWdlOwor45K4ID4gdG9cLW9iZXk7CivjkrQgPiB0b1wtY29tZTsKK+OSpiA+IHB1cHBldHM7Civjkp4gPiB2YWxpYW50Owor45KVID4gdW55aWVsZDsKK+OSkiA+IGFcLXNsYXZlOwor45KRID4gZ3Jvd1wtdXA7CivjkokgPiBhbGFybWVkOwor45G5ID4gdG9cLW1lZXQ7CivjkZAgPiB0b1wtbW92ZTsKK+ORhSA+IHRvXC1tYWtlOwor45GDID4gdG9cLXB1bGw7CivjkLwgPiB0b1wtc2F2ZTsKK+OQriA+IHRvXC1oZWxwOwor45CBID4gdG9cLWxpY2s7CivmmK8gPiBpbmRlZWQ7Civov6sgPiBjb2VyY2U7Civlv5wgPiBzaG91bGQ7Civlv5ggPiBmb3JnZXQ7Civlm70gPiBuYXRpb247Civov5QgPiByZXR1cm47Civlv40gPiBlbmR1cmU7Civov4QgPiBleHRlbmQ7Civlv4UgPiBzdXJlbHk7Civlh7ogPiBnb1wtb3V0Owor6L6/ID4gZm9sbG93Owor5568ID4gZXllbGlkOwor5b6XID4gb2J0YWluOwor6L63ID4gc21vb3RoOwor5b60ID4gc3VtbW9uOwor5b6zID4gdmlydHVlOwor556tID4gYnJpZ2h0Owor5b6pID4gcmV0dXJuOwor6L6bID4gYml0dGVyOwor5b6QID4gc2xvd2x5Owor5b6MID4gYmVoaW5kOwor5b6KID4gbGluZ2VyOwor5b2xID4gc2hhZG93Owor5LqLID4gYWZmYWlyOwor6L2fID4gcnVtYmxlOwor5b2IID4gcGVsbGV0Owor5Li7ID4gbWFzdGVyOwor5by3ID4gc3Ryb25nOwor5bybID4gbG9vc2VuOwor5rCRID4gcGVvcGxlOwor55yMID4gY291bnR5Owor546wID4gYXBwZWFyOwor5YiGID4gZGl2aWRlOwor5LqbID4gbGl0dGxlOwor55u4ID4gbXV0dWFsOwor5ZueID4gcmV0dXJuOwor55CGID4gcmVhc29uOwor5piOID4gYnJpZ2h0Owor55uKID4gcHJvZml0Owor6K+dID4gc3BlZWNoOwor5ZCRID4gdG93YXJkOwor5a6aID4gZGVjaWRlOwor5bqrID4gYXJtb3J5Owor5bqmID4gZGVncmVlOwor5bqVID4gYm90dG9tOwor5omTID4gc3RyaWtlOwor5L2NID4gdGhyb25lOwor5bqPID4gc2VyaWVzOwor5bm8ID4gaW5mYW50Owor5bmyID4gb3Bwb3NlOwor5YaFID4gaW5zaWRlOwor55mqID4gc3Bhc21zOwor5YqgID4gYWRkXC10bzsKK+WMliA+IGNoYW5nZTsKK+eZjCA+IGNhbmNlcjsKK+W4uCA+IGNvbW1vbjsKK+i4sCA+IGV4Y2VlZDsKK+W4giA+IG1hcmtldDsKK+W4sCA+IHJldHVybjsKK+aJjSA+IHRhbGVudDsKK+S9jyA+IHJlc2lkZTsKK+WRmCA+IG1lbWJlcjsKK+W3uyA+IHNjcm9sbDsKK+aApyA+IG5hdHVyZTsKK+aKpSA+IHJlcG9ydDsKK+elniA+IHNwaXJpdDsKK+aVsCA+IG51bWJlcjsKK+i3oSA+IHNlYXJjaDsKK+WOnyA+IHNvdXJjZTsKK+W3oSA+IHBhdHJvbDsKK+W3nSA+IHN0cmVhbTsKK+W6lCA+IHNob3VsZDsKK+i2iiA+IGV4Y2VlZDsKK+eWiiA+IHJlcGVhdDsKK+ezuyA+IHN5c3RlbTsKK+eVsyA+IHJlcGVhdDsKK+i1qyA+IGJyaWdodDsKK+WPiiA+IGV4dGVuZDsKK+WItiA+IHN5c3RlbTsKK+eVoCA+IGdhcmRlbjsKK+inoyA+IGxvb3NlbjsKK+iusCA+IHJlY29yZDsKK+aelyA+IGZvcmVzdDsKK+i0lCA+IHN0cm9uZzsKK+e7nyA+IGdvdmVybjsKK+WtlyA+IGxldHRlcjsKK+WztiA+IGlzbGFuZDsKK+izqiA+IG1hdHRlcjsKK+iuuiA+IGRlYmF0ZTsKK+iysCA+IGJvcnJvdzsKK+aMhyA+IGZpbmdlcjsKK+iyoSA+IHdlYWx0aDsKK+iKsSA+IGZsb3dlcjsKK+WxpCA+IHN0b3JleTsKK+adoSA+IGNsYXVzZTsKK+WPmCA+IGNoYW5nZTsKK+ivpSA+IHNob3VsZDsKK+WxjSA+IGNvcnBzZTsKK+S8oCA+IHN1bW1vbjsKK+ayuyA+IGdvdmVybjsKK+WGsyA+IGRlY2lkZTsKK+WxgCA+IGJ1cmVhdTsKK+WKniA+IG1hbmFnZTsKK+iwtyA+IHZhbGxleTsKK+WfjiA+IGNhc3RsZTsKK+eItiA+IGZhdGhlcjsKK+W8uiA+IHN0cm9uZzsKK+WwjiA+IGRpcmVjdDsKK+WwgSA+IGxldHRlcjsKK+ePviA+IGFwcGVhcjsKK+WvpyA+IHJlcG9zZTsKK+m7hCA+IHllbGxvdzsKK+W+tyA+IGV0aGljczsKK+WusyA+IGluanVyZTsKK+WuriA+IHBhbGFjZTsKK+aJviA+IHNlYXJjaDsKK+WPiyA+IGZyaWVuZDsKK+iuiiA+IGNoYW5nZTsKK+aUuSA+IGNoYW5nZTsKK+WuiCA+IGRlZmVuZDsKK+iugyA+IHByYWlzZTsKK+mZhSA+IGJvcmRlcjsKK+WNlSA+IHNpbmdsZTsKK+WvvCA+IGRpcmVjdDsKK+eNsiA+IG9idGFpbjsKK+WtpCA+IG9ycGhhbjsKK+agoSA+IHNjaG9vbDsKK+eNhCA+IHByaXNvbjsKK+eMviA+IGNyYWZ0eTsKK+ismSA+IGh1bWJsZTsKK+isjiA+IHJpZGRsZTsKK+majyA+IGZvbGxvdzsKK+eLuSA+IG5hcnJvdzsKK+eLrSA+IG5hcnJvdzsKK+avjSA+IG1vdGhlcjsKK+eLmSA+IGFuXC1hcGU7Civoq5YgPiBkZWJhdGU7Civlm6IgPiBzcGhlcmU7Civni4IgPiBpbnNhbmU7CivoqrIgPiBsZXNzb247Civoi6YgPiBiaXR0ZXI7Civmi5sgPiBiZWNrb247CivlhbQgPiB0aHJpdmU7CivoqbIgPiBzaG91bGQ7CivnuqYgPiB0cmVhdHk7CivoqbEgPiBzcGVlY2g7CivoqakgPiBwb2V0cnk7CivniaIgPiBwcmlzb247Civnu50gPiB0b1wtY3V0Owor6YCJID4gY2hvb3NlOwor5aSNID4gcmV0dXJuOwor5pifID4gYVwtc3RhcjsKK+eIuiA+IGZhdGhlcjsKK+iotCA+IGFjY3VzZTsKK+ionyA+IGFjY3VzZTsKK+WmiCA+IG1vdGhlcjsKK+eImyA+IHJvdHRlbjsKK+iomCA+IHJlY29yZDsKK+a2iCA+IHZhbmlzaDsKK+WomCA+IG1vdGhlcjsKK+eHrSA+IGNhbmRsZTsKK+WnqyA+IGJlYXV0eTsKK+adqCA+IHdpbGxvdzsKK+aYkyA+IGNoYW5nZTsKK+S4pSA+IHN0cmljdDsKK+eGiiA+IGFcLWJlYXI7CivlpoQgPiBhYnN1cmQ7CivnuqogPiByZWNvcmQ7Civoi48gPiByZXZpdmU7CivnrZQgPiBhbnN3ZXI7Civlpa4gPiBzdHJpdmU7CivnhakgPiBib3RoZXI7CivopaQgPiByYWdnZWQ7Civlh7sgPiBzdHJpa2U7CivmnIsgPiBmcmllbmQ7CivkvpsgPiBzdXBwbHk7CivlpK4gPiBjZW50ZXI7CivliJcgPiBhXC1saW5lOwor54SmID4gYnVybmVkOwor54i3ID4gZmF0aGVyOwor6b6ZID4gZHJhZ29uOwor6KSSID4gcHJhaXNlOwor5aSPID4gc3VtbWVyOwor5aSJID4gY2hhbmdlOwor5pilID4gc3ByaW5nOwor6KSHID4gcmVwZWF0Owor54G1ID4gc3Bpcml0Owor6KOhID4gaW5zaWRlOwor6K+JID4gYWNjdXNlOwor5oCBID4gbWFubmVyOwor6KOPID4gaW5zaWRlOwor6LSoID4gbWF0dGVyOwor6KKWID4gc2xlZXZlOwor5ZutID4gZ2FyZGVuOwor6KKLID4gcG9ja2V0Owor5YmvID4gYXNzaXN0Owor5aSfID4gZW5vdWdoOwor6I63ID4gb2J0YWluOwor6K+XID4gcG9ldHJ5Owor6KGXID4gc3RyZWV0Owor5aCxID4gcmVwb3J0Owor5r+AID4gYXJvdXNlOwor6ZO2ID4gc2lsdmVyOwor6Zi1ID4gY29sdW1uOwor5bGCID4gc3RvcmV5Owor5LquID4gYnJpZ2h0Owor566AID4gc2ltcGxlOwor5q+SID4gcG9pc29uOwor5b2SID4gcmV0dXJuOwor5o2iID4gY2hhbmdlOwor5rmWID4gYVwtbGFrZTsKK+idiSA+IGNpY2FkYTsKK+i/vSA+IHB1cnN1ZTsKK+m8rCA+IHdlYXNlbDsKK+e7nCA+IGVubWVzaDsKK+a8oCA+IGRlc2VydDsKK+icmCA+IHNwaWRlcjsKK+WcmCA+IHNwaGVyZTsKK+WNoCA+IGRpdmluZTsKK+WckyA+IGNpcmNsZTsKK+WckiA+IGdhcmRlbjsKK+i1tiA+IHB1cnN1ZTsKK+WFsCA+IG9yY2hpZDsKK+WciyA+IG5hdGlvbjsKK+WcgyA+IGdhcmRlbjsKK+a6kCA+IHNwcmluZzsKK+WboyA+IHNwaGVyZTsKK+mYtiA+IHN0YWlyczsKK+ibmyA+IHNwaWRlcjsKK+m7mSA+IHNpbGVudDsKK+S8uCA+IGV4dGVuZDsKK+m7mCA+IHNpbGVudDsKK+S9myA+IGJ1ZGRoYTsKK+WatCA+IHN0cmljdDsKK+aMpSA+IGRpcmVjdDsKK+aViCA+IHJlc3VsdDsKK+aUuyA+IGF0dGFjazsKK+etliA+IHNjaGVtZTsKK+mYsiA+IGRlZmVuZDsKK+iCoSA+IHRoaWdoczsKK+iYrSA+IG9yY2hpZDsKK+iOqyA+IGRvXC1ub3Q7CivlmJggPiBleGhhbGU7Civljr8gPiBjb3VudHk7CivomIcgPiByZXZpdmU7CivnqpcgPiB3aW5kb3c7Civmt7sgPiBhcHBlbmQ7Civmt7cgPiB0b1wtbWl4Owor6beyID4gY29uZG9yOwor5Y2aID4gZ2FtYmxlOwor5by5ID4gcGVsbGV0Owor6JekID4gcmF0dGFuOwor5Z2PID4gcm90dGVuOwor5pm6ID4gd2lzZG9tOwor5bKbID4gaXNsYW5kOwor5oqXID4gcmVzaXN0Owor5ZawID4gdG9cLWVhdDsKK+WWriA+IHNpbmdsZTsKK+eIuSA+IGZhdGhlcjsKK+WWpyA+IGxpdmVseTsKK+WWiSA+IHRocm9hdDsKK+eIuCA+IGZhdGhlcjsKK+a1miA+IGRyZWRnZTsKK+mAgyA+IGVzY2FwZTsKK+mqgiA+IGFjY3VzZTsKK+WUuCA+IHJlY2l0ZTsKK+mdliA+IHBhY2lmeTsKK+enmCA+IHNlY3JldDsKK+i0oiA+IHdlYWx0aDsKK+assiA+IGRlc2lyZTsKK+W+gSA+IGludmFkZTsKK+eniyA+IGF1dHVtbjsKK+WQuCA+IGluaGFsZTsKK+mzqSA+IHBpZ2VvbjsKK+WToSA+IG1lbWJlcjsKK+aCsiA+IHNvcnJvdzsKK+aziSA+IHNwcmluZzsKK+ahpSA+IGJyaWRnZTsKK+WKsiA+IHN0cm9uZzsKK+WSvSA+IHRocm9hdDsKK+iSuyA+IHJ1c2hlczsKK+W6kyA+IGFybW9yeTsKK+WAnyA+IGJvcnJvdzsKK+axuiA+IGRlY2lkZTsKK+iRoyA+IGRpcmVjdDsKK+iRoSA+IGdyYXBlczsKK+axmiA+IGZpbHRoeTsKK+aOpyA+IGFjY3VzZTsKK+iDuCA+IGJyZWFzdDsKK+ivviA+IGxlc3NvbjsKK+mCriA+IHBvc3RhbDsKK+WQnSA+IHN0aW5neTsKK+aoqiA+IGFjcm9zczsKK+WBpSA+IHN0cm9uZzsKK+iQjiA+IHdpdGhlcjsKK+iQhCA+IGdyYXBlczsKK+WchiA+IGNpcmNsZTsKK+WNtyA+IHNjcm9sbDsKK+iPqyA+IGNlbGVyeTsKK+aLqSA+IHNlbGVjdDsKK+aBqCA+IGhhdHJlZDsKK+eruSA+IGJhbWJvbzsKK+iPkyA+IGZydWl0czsKK+WuqyA+IHBhbGFjZTsKK+aXlyA+IGJhbm5lcjsKK+auuyA+IGNhc2luZzsKK+WOsyA+IHN0cmljdDsKK+aumCA+IGluanVyZTsKK+auiyA+IGluanVyZTsKK+atuCA+IHJldHVybjsKK+eosyA+IHN0YWJsZTsKK+i/uSA+IHRyYWNlczsKK+mSiCA+IG5lZWRsZTsKK+abvyA+IGNoYW5nZTsKK+WNkSA+IGh1bWJsZTsKK+aChCA+IHNpbGVudDsKK+WliyA+IHN0cml2ZTsKK+aruyA+IGNoZXJyeTsKK+W8gyA+IHJlamVjdDsKK+eDpiA+IGJvdGhlcjsKK+aKtSA+IHJlc2lzdDsKK+eggSA+IG51bWJlcjsKK+WKsSA+IHN0cml2ZTsKK+e0qyA+IHB1cnBsZTsKK+aLlCA+IHVwcm9vdDsKK+iKnSA+IHNlc2FtZTsKK+aigSA+IGJyaWRnZTsKK+i1jyA+IHJld2FyZDsKK+WKgyA+IGRpdmlkZTsKK+aPkiA+IGluc2VydDsKK+mpoiA+IGRvbmtleTsKK+WGrCA+IHdpbnRlcjsKK+aJqSA+IGV4cGFuZDsKK+apmCA+IG9yYW5nZTsKK+apiyA+IGJyaWRnZTsKK+mAvCA+IGNvbXBlbDsKK+motyA+IGhhcmFzczsKK+WIuSA+IHRlbXBsZTsKK+mVnCA+IG1pcnJvcjsKK+axoSA+IGZpbHRoeTsKK+aomSA+IGFcLW1hcms7Civni7EgPiBwcmlzb247CivpqJIgPiBoYXJhc3M7CivoiIwgPiB0b25ndWU7Civmo64gPiBmb3Jlc3Q7CivoiIggPiB0aHJpdmU7Civmp70gPiB0cm91Z2g7CivmgKggPiBoYXRyZWQ7Civoh7wgPiBtb3J0YXI7CivkvI8gPiBjcm91Y2g7CivmhKQgPiByZXNlbnQ7Civkv4QgPiBzdWRkZW47Civlh40gPiBmcmVlemU7Civmp4wgPiBoYW1tZXI7CivnqI0gPiBsaXR0bGU7CivnsY0gPiByZWNvcmQ7CivkvrUgPiBpbnZhZGU7CivpmLsgPiBpbXBlZGU7CivmhacgPiBicmlnaHQ7CivppZEgPiBzdGFydmU7CivmmYMgPiBicmlnaHQ7CivohZEgPiBib3dlbHM7Civng4IgPiByb3R0ZW47CivlhY4gPiByYWJiaXQ7CivohYsgPiBhcm1waXQ7CivlsLggPiBjb3Jwc2U7CivmpL8gPiBmYXRoZXI7CivlhJggPiB1dG1vc3Q7CivltIcgPiBlc3RlZW07CivppJMgPiBodW5ncnk7CivmpI4gPiBoYW1tZXI7Civmo7ogPiBjb2ZmaW47CivnsokgPiBwb3dkZXI7Civnm74gPiBzaGllbGQ7Civpo6IgPiBodW5nZXI7CivovbAgPiBydW1ibGU7CivlpbggPiBjcmFmdHk7CivpgqYgPiBuYXRpb247Civmo4QgPiByZWplY3Q7Civppb8gPiBodW5ncnk7CivmjZUgPiBhcnJlc3Q7CivlgrMgPiBzdW1tb247Civmoq8gPiBsYWRkZXI7CivmjKMgPiBzdHJpdmU7CivogZggPiBlbmdhZ2U7Civmop0gPiBjbGF1c2U7CivogJAgPiBlbmR1cmU7CivmooMgPiBhXC1jbHViOwor6aGrID4gc2hpdmVyOwor5qGcID4gY2hlcnJ5Owor6Ze3ID4gZ2xvb215Owor6aGYID4gZGVzaXJlOwor5oKUID4gcmVwZW50Owor6YKAID4gaW52aXRlOwor6aKkID4gc2hpdmVyOwor6aCsID4gY2hlZWtzOwor6aCkID4gY2hlZWtzOwor5oKjID4gc3VmZmVyOwor5LiQID4gYmVnZ2FyOwor5p+xID4gcGlsbGFyOwor5p+aID4gcG9tZWxvOwor57+MID4gYnJpZ2h0Owor5p+EID4gaGFuZGxlOwor5L6uID4gaW5zdWx0Owor6ZOcID4gY29wcGVyOwor5p6VID4gcGlsbG93Owor5725ID4gc29ycm93Owor5721ID4gYWNjdXNlOwor5p21ID4gcGVzdGxlOwor5pWyID4gc3RyaWtlOwor6Z2hID4gZGl2aWRlOwor5omvID4gcmlwXC11cDsKK+mJtCA+IG1pcnJvcjsKK+i2iyA+IGhhc3RlbjsKK+S9kCA+IGFzc2lzdDsKK+mAiiA+IGh1bWJsZTsKK+mdiCA+IHNwaXJpdDsKK+actCA+IHNpbXBsZTsKK+acrSA+IGxldHRlcjsKK+S8nSA+IHN1bW1vbjsKK+S8jiA+IHRhbGVudDsKK+S4siA+IHN0cmluZzsKK+mciiA+IHNwaXJpdDsKK+mbsiA+IGNsb3VkczsKK+eGmSA+IGJyaWdodDsKK+W6mSA+IHRlbXBsZTsKK+S7jyA+IGJ1ZGRoYTsKK+mbjCA+IGZlbWFsZTsKK+mbhyA+IGVtcGxveTsKK+maqCA+IGZvbGxvdzsKK+mamyA+IGJvcmRlcjsKK+majiA+IHN0YWlyczsKK+mahSA+IGNvcm5lcjsKK+mFtyA+IHN0cm9uZzsKK+S5syA+IGJyZWFzdDsKK+eooyA+IHJldml2ZTsKK+mZoyA+IGNvbHVtbjsKK+e5lSA+IHJlcGFpcjsKK+aYrSA+IGJyaWdodDsKK+ajiSA+IGNvdHRvbjsKK+aQnCA+IHNlYXJjaDsKK+e4myA+IHRvXC10aWU7CivosIUgPiBleGN1c2U7Civng5sgPiBjYW5kbGU7CivlkYggPiBzdWJtaXQ7Civnt5ogPiB0aHJlYWQ7Civmi5MgPiBleHBhbmQ7CivmlaYgPiBlc3RlZW07CivmlbggPiBudW1iZXI7CivmlbcgPiBzcHJlYWQ7CivntbEgPiBnb3Zlcm47CivohL4gPiBzcGxlZW47CivntaEgPiBlbm1lc2g7CivntLMgPiBnaXJkbGU7CivpubAgPiBmYWxjb247CivntIQgPiB0cmVhdHk7CivntIAgPiByZWNvcmQ7CivmhJogPiBzdHVwaWQ7Civns54gPiBtYW51cmU7CivnsqcgPiB0b2lsZXQ7CivmkoMgPiBzdHJpa2U7CivppaUgPiBodW5nZXI7CivpkZIgPiBtaXJyb3I7CivpgLsgPiBwYXRyb2w7CivnsKEgPiBzaW1wbGU7Civpj6EgPiBtaXJyb3I7Civmj5sgPiBjaGFuZ2U7CivmjqEgPiBnYXRoZXI7CivluJUgPiB0dXJiYW47CivlhrsgPiBmcmVlemU7CivosKYgPiBodW1ibGU7CivmjZwgPiBzZWFyY2g7CivkuKsgPiBmb3JrZWQ7CivnhYwgPiBicmlnaHQ7CivmjL8gPiBpbnNlcnQ7Civmi5AgPiBraWRuYXA7CivojZAgPiByZXBlYXQ7CivlgKogPiBmZWVibGU7CivpjJAgPiBnaW1sZXQ7CivpqpogPiBoYXJhc3M7Civlr54gPiBzaWxlbnQ7Civnr64gPiBiYXNrZXQ7CivkvoQgPiBuZXBoZXc7Civmi5kgPiBzdHVwaWQ7Civlj4kgPiBjcm90Y2g7CivmgJYgPiB0ZXJyb3I7CivmipwgPiB1cHJvb3Q7CivnqpMgPiB3aW5kb3c7CivmiokgPiBjaG9vc2U7CivpioUgPiBjb3BwZXI7CivpioAgPiBzaWx2ZXI7CivosJwgPiByaWRkbGU7CivpooEgPiBjb25mZXI7CivpooogPiBjaGVla3M7CivlkpUgPiBtdW1ibGU7CivoiLUgPiBydWRkZXI7Civmg6kgPiBwdW5pc2g7CivlkpYgPiBjb2ZmZWU7Civph50gPiBuZWVkbGU7Civmh4kgPiBzaG91bGQ7CivlsLkgPiBnb3Zlcm47CivmhqQgPiByZXNlbnQ7Civmt7MgPiBob25lc3Q7CivnjLQgPiBtb25rZXk7CivlvKYgPiBzdHJpbmc7CivnvJogPiB0b1wtdGllOwor5oWLID4gbWFubmVyOwor5oWEID4gc2hpdmVyOwor6ZmLID4gbmFycm93Owor6YO1ID4gcG9zdGFsOwor56qEID4gbmFycm93Owor6am0ID4gZG9ua2V5Owor5aOzID4gY2FzaW5nOwor6ZyJID4gbWlsZGV3Owor6IqmID4gcnVzaGVzOwor6IOzID4gYXJtcGl0Owor5oK8ID4gZ3JpZXZlOwor5oK2ID4gZ2xvb215Owor6YCNID4gcmFtYmxlOwor5oK0ID4gc3VmZmVyOwor6ICNID4gZnJvbGljOwor57KqID4gbWFudXJlOwor5o2GID4gdGllXC11cDsKK+mBuCA+IGNob29zZTsKK+mBnCA+IGh1bWJsZTsKK+WFlCA+IHJhYmJpdDsKK+mBiiA+IHdhbmRlcjsKK+mAmyA+IHJhbWJsZTsKK+WMiCA+IGJyZWFzdDsKK+iuvSA+IHJlY2l0ZTsKK+aLoyA+IGNob29zZTsKK+iAvyA+IGJyaWdodDsKK+W7vyA+IHR3ZW50eTsKK+ivtSA+IHJlY2l0ZTsKK+iFuyA+IGdyZWFzeTsKK+e8hiA+IGhhd3NlcjsKK+mekSA+IHRhdGFyczsKK+awkyA+IHBlb3BsZTsKK+aFtyA+IGFyZGVudDsKK+evtyA+IGF3bmluZzsKK+iNhiA+IHRob3JuczsKK+iGjyA+IGdyZWFzZTsKK+mejSA+IHNhZGRsZTsKK+m4oCA+IHBpZ2VvbjsKK+e8lSA+IHRocmVhZDsKK+edrCA+IG5vdGljZTsKK+e7pSA+IHNvb3RoZTsKK+awpyA+IG94eWdlbjsKK+WptyA+IHByZXR0eTsKK+WnrCA+IGJlYXV0eTsKK+WQrSA+IHRocm9hdDsKK+WHvyA+IGNoaXNlbDsKK+aNgiA+IHJlc2lzdDsKK+W3qyA+IHdpemFyZDsKK+iZviA+IHNocmltcDsKK+e7hSA+IGdpcmRsZTsKK+mVtiA+IGluc2VydDsKK+mikCA+IGNoZWVrczsKK+WIoCA+IHRvXC1jdXQ7CivorrwgPiBhY2N1c2U7CivkvLYgPiBsb25lbHk7Civngq8gPiBicmlnaHQ7CivpuL0gPiBwaWdlb247CivmuJ0gPiBjaGFuZ2U7CivmpJIgPiBwZXBwZXI7Civmj5YgPiBzYWx1dGU7CivlhokgPiB0ZW5kZXI7CivlkpkgPiB0aHJvYXQ7CivouLEgPiBzdHJvbGw7CivnjKwgPiB2dWxnYXI7Civlsb8gPiBpc2xhbmQ7Civkv5AgPiBzbW9vdGg7CivopIIgPiBqYWNrZXQ7Civns5kgPiBjb2Fyc2U7Civpl7ggPiBzbHVpY2U7CivpopMgPiBydWluZWQ7CivlsYkgPiBkcmF3ZXI7CivoirkgPiBjZWxlcnk7CivplKUgPiBnaW1sZXQ7CivliIEgPiB0cmlja3k7Civmm5kgPiBicmlnaHQ7CivmtLwgPiBob2xsb3c7CivnmpMgPiBicmlnaHQ7CivokpwgPiBnYXJsaWM7CivngrMgPiBicmlnaHQ7CivmuKMgPiByZWZ1c2U7CivmhZEgPiBhZnJhaWQ7CivmqLEgPiBjaGVycnk7Civlv48gPiByZWdyZXQ7Civnor4gPiByb2xsZXI7CivnlpkgPiBwaW1wbGU7CivmvIkgPiBmaWx0ZXI7CivpmqcgPiB0dW5uZWw7CivphaUgPiBidXR0ZXI7Civpkq4gPiBidXR0b247CivpmpggPiBuYXJyb3c7CivmvLEgPiBnYXJnbGU7Civnm5QgPiBoZWxtZXQ7Civno4sgPiBwb2xpc2g7Civmg7QgPiBhZnJhaWQ7CivolYkgPiBiYW5hbmE7Civmg4sgPiByZWdyZXQ7Civnl7AgPiBwaGxlZ207CivnvoEgPiBoYWx0ZXI7Civor48gPiBkZWNyZWU7CivpnbYgPiB0YXJnZXQ7CivphZ0gPiBsaXF1b3I7Civmn6wgPiBsZXR0ZXI7CivkurUgPiBzbGlnaHQ7CivosoIgPiBtYXJ0ZW47CivogYYgPiBsaXN0ZW47Civmr4sgPiBkb1wtbm90Owor6Z+sID4gc2hlYXRoOwor6bmKID4gbWFncGllOwor5pWWID4gcmFtYmxlOwor6Ia6ID4gYnJlYXN0Owor5oKaID4gYWZyYWlkOwor5Y2FID4gdGhpcnR5Owor5b61ID4gc3VtbW9uOwor56KzID4gY2FyYm9uOwor5oe1ID4gc3R1cGlkOwor6bmrID4gY29uZG9yOwor56GrID4gc3VsZnVyOwor6LieID4gY3JvdWNoOwor6ZWwID4gc2lja2xlOwor5raOID4gc2FsaXZhOwor5aOVID4gdHJlbmNoOwor6ZSaID4gYW5jaG9yOwor6ZKgID4gc29kaXVtOwor552/ID4gc2hyZXdkOwor6I66ID4gb3Jpb2xlOwor6JuKID4gcG9pc29uOwor54OoID4gYnJpZ2h0Owor6IOvID4gcGVsdmlzOwor6Le7ID4gYXNjZW5kOwor6bOWID4gdHVydGxlOwor6IW8ID4gbW9kZXN0Owor5qmZID4gb3JhbmdlOwor5LieID4gYXNzaXN0Owor5aiTID4gY29tcGx5Owor5YiOID4gYmVoZWFkOwor6LmZID4gdXJnZW50Owor6IOaID4gZW1icnlvOwor6I2UID4gbGljaGVlOwor6ZO/ID4gc3RyaWtlOwor6ZS1ID4gdGlua2xlOwor6IynID4gY29jb29uOwor6J+SID4gcHl0aG9uOwor6KS0ID4gcmFnZ2VkOwor6bmDID4gY3Vja29vOwor54ylID4gdnVsZ2FyOwor542XID4gdW5ydWx5Owor6JKvID4gYVwtcnVzaDsKK+ayjyA+IGluZnVzZTsKK+WzqiA+IHZhbGxleTsKK+WajyA+IHNuZWV6ZTsKK+egviA+IGdyYXZlbDsKK+mmgSA+IGh1bmdyeTsKK+S9nyA+IGFcLW5hbWU7CivojJwgPiBtYWRkZXI7CivmiYggPiBlc2NvcnQ7CivlkpsgPiBlbmpvaW47Civms5cgPiBtdWNvdXM7Civog4QgPiBoZWxtZXQ7CivplLkgPiBzaG92ZWw7CivpuZcgPiBvc3ByZXk7CivlhKEgPiBwdXBwZXQ7CivnmoggPiBmb2xsb3c7CivonoIgPiBtYW50aXM7Civoi5MgPiBmdW5ndXM7CivlqpsgPiBiZWF1dHk7CivnrrQgPiBuZWVkbGU7Civlj7UgPiBjYW5ub3Q7Civku4MgPiBsb25lbHk7CivmnZ4gPiB3aWxsb3c7Civlr64gPiBzaGFudHk7CivnvK4gPiByZXBhaXI7CivnircgPiBmaWVyY2U7CivmsrEgPiByaXZlcnM7CivljqkgPiBzdGFibGU7CivnlqEgPiB1bGNlcnM7CivlnpMgPiBib3JkZXI7CivlvpUgPiBpbmR1Y2U7Civmp4EgPiB3aXRoZXI7CivpgbQgPiBzZWxlY3Q7CivlnLsgPiBib3JkZXI7CivpvoogPiBuYXJyb3c7CivpvowgPiBuYXJyb3c7CivpgaggPiByYW1ibGU7CivpqpsgPiBnYWxsb3A7CivlvokgPiB3b25kZXI7CivosKogPiBjaGFyZ2U7Civkv5ogPiBydXN0aWM7CivplKggPiBzaG92ZWw7CivplIMgPiBwb2xpc2g7Civkv6ogPiBzcG91c2U7CivplLIgPiBzaWNrbGU7CivnpZogPiB0aHJvbmU7Civoh74gPiBtb21lbnQ7CivpgZIgPiBzdHJvbmc7Civlm7kgPiBwcmlzb247CivlrLQgPiB0b1wtd2luOwor54OpID4gcmFnb3V0Owor5ZyEID4gcHJpc29uOwor6J6rID4gcG9pc29uOwor6ZOkID4gaW5nb3RzOwor6J6zID4gbWFudGlzOwor6IyBID4gc3Byb3V0Owor6IiiID4gc2FtcGFuOwor6Iq+ID4gZmxvd2VyOwor54uyID4gbW9ua2V5Owor56KcID4gZ3JpdHR5Owor5YOtID4gYXNzdW1lOwor56KYID4gaW9kaW5lOwor54OvID4gYWxrZW5lOwor5Zu/ID4gcGVuXC11cDsKK+WbqyA+IGVudGlyZTsKK+ikoSA+IGdpcmRsZTsKK+mVjSA+IG5pY2tlbDsKK+eFnCA+IGJyaWdodDsKK+apkCA+IGFcLXNhY2s7CivmnbcgPiBsb3F1YXQ7CivmgbkgPiBmZWVibGU7CivlvYAgPiBlbm91Z2g7CivogZIgPiBjbGFtb3I7Civnvq8gPiB3ZXRoZXI7CivnsrIgPiBwb2xpc2g7CivmnocgPiBsb3F1YXQ7Civnp6MgPiBmb2RkZXI7CivmqL0gPiBnb2JsZXQ7CivmpbkgPiBjb2x1bW47CivnhJYgPiBzaW1tZXI7CivnnZEgPiBleWVsaWQ7CivovbMgPiBwdWxsZXk7CivmrpogPiB1dG1vc3Q7Civpla0gPiByYWRpdW07CivmroQgPiB0b1wtZW5kOwor6K+wID4gaW5mb3JtOwor6bmEID4gdGFyZ2V0Owor6I6FID4gYXR0ZW5kOwor6LCfID4gc2NoZW1lOwor6K6rID4gZmluaXNoOwor54+yID4gYnJpZ2h0Owor5resID4gdGVtcGVyOwor5ZisID4gdG9cLWxhcDsKK+S9tiA+IHN0cm9uZzsKK+aZlCA+IGJyaWdodDsKK+iImyA+IG9wcG9zZTsKK+eDtyA+IGFsa2FuZTsKK+ibjiA+IG95c3RlcjsKK+eEsSA+IGZsYW1lczsKK+icpSA+IGxpemFyZDsKK+WcnCA+IGNpcmNsZTsKK+ictCA+IGxpemFyZDsKK+iRuiA+IHRoYXRjaDsKK+aIhiA+IHN0dXBpZDsKK+WstyA+IG1vdGhlcjsKK+aBvSA+IGRldmlzZTsKK+iTvyA+IGNsb3ZlcjsKK+eYjCA+IHNldmVyZTsKK+WWsSA+IGdyYW1tZTsKK+mStCA+IGNvYmFsdDsKK+WymSA+IGlzbGFuZDsKK+iyiSA+IGJhZGdlcjsKK+e5hyA+IHJlYXNvbjsKK+iciSA+IG1heWZseTsKK+eWliA+IHBpbXBsZTsKK+e6viA+IGxvb3NlbjsKK+mykSA+IHNhbG1vbjsKK+WoiCA+IGxvdmVseTsKK+iNqCA+IG5ldHRsZTsKK+erpiA+IHJldmVyZTsKK+eLkiA+IGJhYm9vbjsKK+aShCA+IG9wcG9zZTsKK+iYvCA+IG1pbGxldDsKK+iMtCA+IGZlbm5lbDsKK+mypiA+IG1pbm5vdzsKK+a4jCA+IHN0cmFpbjsKK+mYmiA+IGdsYW5jZTsKK+iLnCA+IGNsb3ZlcjsKK+WBrCA+IHVyZ2VudDsKK+ePkCA+IGVuYW1lbDsKK+mdmyA+IGluZGlnbzsKK+m7pyA+IGFcLWRhcms7CivnoocgPiBhbmNob3I7CivooJMgPiBtaWRnZXM7CivmqbwgPiBjaXRydXM7CivolZ4gPiBsaXR0bGU7CivlnK8gPiBicmlkZ2U7CivprY0gPiBkZW1vbnM7Civnv4ogPiBmbHlpbmc7CivplY8gPiBkaXN0aWw7CivnopMgPiBwZXN0bGU7Civog7wgPiBjYWxsdXM7CivmjIggPiBhc3Npc3Q7Civnio8gPiB5YWtcLW94Owor5oKbID4gcmVwZW50Owor5YuWID4gZW5qb2luOwor57GAID4gcmVjaXRlOwor56KaID4gc3VidXJiOwor6IWtID4gcGFsYXRlOwor6bOfID4gYmFyYmVsOwor6ZuOID4gb3NwcmV5Owor5q6CID4gdG9cLWRpZTsKK+etmiA+IHdpY2tlcjsKK+eWnSA+IGhlcm5pYTsKK+mqgCA+IGFuXC1vbGQ7CivokpcgPiBcKGhlcmJcKTsKK+iRuCA+IGFmcmFpZDsKK+iPnyA+IGRvZGRlcjsKK+mZiSA+IGRlZmlsZTsKK+etsiA+IGJhc2tldDsKK+eWoCA+IGFcLXNvcmU7CivnlZsgPiBib3JkZXI7Civml7AgPiBzdW5zZXQ7CivoiqogPiBjZWxlcnk7CivosJYgPiBmb3JnZXQ7CivmlYkgPiBwYWNpZnk7CivogY0gPiBlYXJ3YXg7CivplIcgPiBvc21pdW07Civng4AgPiBzaW1tZXI7CivlqacgPiBtb2Rlc3Q7Civoj5ggPiBjZWxlcnk7CivpkqEgPiBiYXJpdW07CivonaMgPiBtYXlmbHk7CivomrUgPiBveXN0ZXI7CivopbsgPiBhXC1sb29wOwor6ZOSID4gZXJiaXVtOwor6ZOIID4gY2VyaXVtOwor5qS0ID4gcG9wbGFyOwor5ayyID4gZnJvbGljOwor6IuhID4gYmFybGV5Owor6IiEID4gYVwtc2hvZTsKK+idviA+IGxpemFyZDsKK+icqSA+IGNpY2FkYTsKK+m4qyA+IHRocnVzaDsKK+mUlCA+IGN1cml1bTsKK+mTnyA+IGluZGl1bTsKK+ecjSA+IHN1bmtlbjsKK+eJliA+IHdpbmRvdzsKK+amhyA+IGNvZmZpbjsKK+ahtyA+IHJhZnRlcjsKK+W5niA+IHR1cmJhbjsKK+W4uyA+IHR1cmJhbjsKK+WciSA+IHN0YWJsZTsKK+aRhSA+IHNwcmVhZDsKK+iLhCA+IGJlbnp5bDsKK+mZlCA+IGFcLXN0ZXA7CivliL8gPiB0b1wtY3V0Owor6aq2ID4gY29jY3l4Owor6bK7ID4gbXVsbGV0Owor6J6oID4gaW5zZWN0Owor6Jm8ID4gYVwtZmxlYTsKK+eYlSA+IGFzdGhtYTsKK+mVmCA+IHRyb3dlbDsKK+ejmSA+IHJvbGxlcjsKK+iDgiA+IGFyc2luZTsKK+iniyA+IHdpemFyZDsKK+iTpSA+IHBvbGlzaDsKK+iPlCA+IHR1cm5pcDsKK+S7oSA+IHN0cm9uZzsKK+m+niA+IHR1cnRsZTsKK+m+nSA+IGF1dHVtbjsKK+m+jSA+IGRyYWdvbjsKK+m9tyA+IG5hcnJvdzsKK+m9tiA+IHBhbGF0ZTsKK+m9tSA+IHVuZXZlbjsKK+m9qiA+IG5hcnJvdzsKK+m8qyA+IG1hcm1vdDsKK+m8qiA+IHdlYXNlbDsKK+m8lCA+IGFcLWRydW07CivpvIUgPiBzcGlkZXI7Civpu4wgPiBzY2hvb2w7Civpu4kgPiBzY2hvb2w7Civpu4ggPiB5ZWxsb3c7Civpu4MgPiB5ZWxsb3c7CivpurAgPiBiYXJsZXk7CivpuoQgPiBjb2Fyc2U7CivpuaggPiBhbnRodXM7Civpt5ogPiBhbnRodXM7Civpt4cgPiBjaGlja3M7Civptr0gPiBhXC1oYXdrOwor6ba4ID4gc2lza2luOwor6bavID4gb3Jpb2xlOwor6basID4gb3Jpb2xlOwor6barID4gdGhydXNoOwor6baaID4gb3NwcmV5Owor6baKID4gb3Jpb2xlOwor6baHID4gdGhydXNoOwor6bW7ID4gcGlnZW9uOwor6bWyID4gbWFncGllOwor6bWgID4gdGFyZ2V0Owor6bWRID4gY3Vja29vOwor6bWAID4gaG9vcG9lOwor6bS/ID4gcGlnZW9uOwor6bSsID4gb3Jpb2xlOwor6bSiID4gXChkdWNrXCk7CivptIMgPiBzaHJpa2U7CivpsZIgPiBiYXJiZWw7CivpsY4gPiBcKGZpc2hcKTsKK+mxiSA+IHR1cnRsZTsKK+mxhiA+IHBvdWxwZTsKK+mwtyA+IG1pbm5vdzsKK+mwlSA+IHNocmltcDsKK+mvlCA+IG11bGxldDsKK+murSA+IHNhbG1vbjsKK+mttSA+IHNocmltcDsKK+mpqyA+IGhvcnNlczsKK+mopCA+IGxpdmVseTsKK+moliA+IGdhbGxvcDsKK+mogyA+IHN0dXBpZDsKK+mnoSA+IGFjY3VzZTsKK+mnmCA+IGFuXC1vbGQ7Civpp5MgPiBnYWxsb3A7Civpp4MgPiBnYWxsb3A7Civppr8gPiBhblwtYXNzOwor6aSkID4gaW5jaXRlOwor6aSSID4gaHVuZ3J5Owor6aGcID4gaG9uZXN0Owor6aGSID4gc29sZW1uOwor6aGRID4geWVsbG93Owor6aC9ID4gcnVpbmVkOwor6aC5ID4gcnVpbmVkOwor6aCwID4gY2hlZWtzOwor6aCeID4gYnJpZGdlOwor6aCSID4gY29uZmVyOwor6aCJID4gY2hlZWtzOwor6Z+cID4gc2hlYXRoOwor6Z+DID4gdGF0YXJzOwor6Z6eID4gc2hlYXRoOwor6Z6aID4gYnJpZGxlOwor6Z2uID4gYnJpZGxlOwor6ZuCID4gXChiaXJkXCk7CivpmrsgPiBzaW5nbGU7CivpmawgPiBjb3JuZXI7CivpmZwgPiBuYXJyb3c7CivpmZggPiBkZWZpbGU7Civpl54gPiBnbGFuY2U7Civpl4kgPiBjdXJ2ZWQ7CivplpggPiBzbHVpY2U7CivplaEgPiBkYWdnZXI7Civpk68gPiBjZXNpdW07Civpkb8gPiBjaGlzZWw7CivpkbIgPiBpbnNlcnQ7CivpkZ4gPiBzb2xkZXI7CivpkZEgPiBtaXJyb3I7CivpkYAgPiBpb25pdW07CivpkLMgPiByYWRpdW07CivpkK4gPiBzaWNrbGU7CivpkJ0gPiBhXC1waWNrOwor6ZCUID4gZGFnZ2VyOwor6Y+dID4gdHJvd2VsOwor6Y+YID4gdGlua2xlOwor6Y+XID4gc3RyaWtlOwor6Y6zID4gbmlja2VsOwor6Y6mID4gZGlzdGlsOwor6Y6jID4gcG9saXNoOwor6Y6aID4gaGFtbWVyOwor6Y6SID4gdG9cLWhvZTsKK+mOjCA+IHNpY2tsZTsKK+mOhSA+IHRvXC1zYXc7CivpjbwgPiBuZWVkbGU7CivpjawgPiBzaG92ZWw7CivpjasgPiBzaG92ZWw7CivpjaUgPiBzaWNrbGU7CivpjaAgPiB3ZWFwb247CivpjKkgPiB2ZXNzZWw7CivpjKggPiBhbmNob3I7Civpi6ggPiBvc21pdW07Civpi6YgPiBjdXJpdW07Civpi5kgPiBtaXNmaXQ7Civpi4wgPiBpbmdvdHM7Civpi4cgPiBiYXJpdW07Civpi4UgPiB6aW5jdW07CivpirYgPiBjaGlzZWw7CivpirIgPiBzb2xkZXI7CivpiqsgPiBjZXNpdW07CivpiqYgPiBpbmRpdW07CivpibogPiBlcmJpdW07CivpiaUgPiBuZWVkbGU7CivpiLcgPiBjb2JhbHQ7CivpiLAgPiBjZXJpdW07CivpiJUgPiBidXR0b247CivpiIkgPiBzb2RpdW07Civph6wgPiBzb2xkZXI7Civph6YgPiBidXR0b247Civph5AgPiBtYW5hZ2U7Civph4MgPiBzdHJhaW47Civphp4gPiBsaXF1b3I7CivphpYgPiBsaXF1b3I7Civphb4gPiBzdHJhaW47CivphbQgPiBsZWF2ZW47CivphIsgPiBjb3VudHk7Civpgo8gPiBwYXRyb2w7CivpgLAgPiB3YW5kZXI7CivpgKUgPiByZXR1cm47CivpgI4gPiBzdHJvbmc7CivpgIwgPiBwbGVhc2U7Civov68gPiBlc2NhcGU7Civov40gPiBmYWx0ZXI7Civov4sgPiB0cmF2ZWw7CivovqcgPiBtYW5hZ2U7CivovqYgPiBtYW5hZ2U7CivovqIgPiBiaXR0ZXI7CivovaQgPiBwdWxsZXk7CivovZwgPiBoZWFyc2U7CivovYAgPiBoZWFyc2U7CivovIAgPiBoZWFyc2U7Civou6MgPiBydW1ibGU7CivouqcgPiBzYW5kYWw7CivouosgPiBhc2NlbmQ7CivoubsgPiBzdHJvbmc7CivouZ0gPiBzYW5kYWw7CivouZMgPiBzdHJvbGw7CivouKEgPiBjdXJsZWQ7Civot6cgPiBjcm91Y2g7CivotqsgPiBuaW1ibGU7CivotqggPiBoYXN0ZW47CivotpUgPiBwdXJzdWU7CivotLMgPiBib3Jyb3c7Civos54gPiByZXdhcmQ7Civosq0gPiBtYXR0ZXI7CivosqogPiBncmVlZHk7Civosp8gPiBtZW1iZXI7CivospsgPiBiYWRnZXI7CivosbsgPiBwcmlzb247CivosL8gPiB2YWxsZXk7CivorpogPiBwcmFpc2U7CivoroEgPiBwdW5pc2g7CivorZ8gPiBjbGFtb3I7CivorY0gPiBhbnN3ZXI7CivorYYgPiBzY3JlYW07CivorKsgPiBjaGFyZ2U7CivorKggPiBzY2hlbWU7Civoq7wgPiBmb3JnZXQ7Civoq7cgPiByZWNpdGU7Civoq7UgPiBtdXR0ZXI7Civoq5IgPiBleGN1c2U7CivoqqYgPiByZWNpdGU7CivoqqUgPiBpbmZvcm07CivoqbsgPiBvcmRlcnM7CivoqZcgPiB0b1wtc3B5Owor6KmUID4gZGVjcmVlOwor6KiWID4gZmluaXNoOwor6Ke8ID4gYnVja2xlOwor6KepID4gc3Ryb25nOwor6KenID4gbG9vc2VuOwor6KeVID4gY29hcnNlOwor6KawID4gdG9cLXNweTsKK+imoSA+IHdpemFyZDsKK+imiiA+IGhhbHRlcjsKK+ilriA+IGNvbGxhcjsKK+iliyA+IGNvbGxhcjsKK+ikpiA+IHN0dXBpZDsKK+ikjyA+IHNsZWV2ZTsKK+ikjiA+IHNsZWV2ZTsKK+iimiA+IGdyZWF2ZTsKK+igsSA+IHBvaXNvbjsKK+igqSA+IGFcLXRvYWQ7CivooKMgPiBveXN0ZXI7CivooJkgPiBveXN0ZXI7CivooJQgPiBveXN0ZXI7CivooJEgPiBsaXphcmQ7CivooI4gPiBweXRob247CivooIEgPiBsYXJ2YWU7Civon7cgPiBtYW50aXM7Civon6wgPiBjaWNhZGE7Civon5wgPiBpbnNlY3Q7CivonaYgPiBzaHJpbXA7CivonIsgPiBtYW50aXM7Civom68gPiBzaHJpbXA7Civom6MgPiBiZWV0bGU7Civom4wgPiBjcmlja2U7CivomakgPiBmcmlnaHQ7CivomZYgPiB0b1wtY3J5Owor6JikID4gZmxvd2VyOwor6JiGID4gcnVzaGVzOwor6JeYID4gbWFkZGVyOwor6Ja/ID4gZmxvd2VyOwor6JaXID4gZ2FyZGVuOwor6JaRID4gZ2luZ2VyOwor6JWGID4gZmluaXNoOwor6JWCID4gc2VzYW1lOwor6JWBID4gbmV0dGxlOwor6JSZID4gXChoZXJiXCk7CivolJQgPiByYWRpc2g7CivolIIgPiBiYXNrZXQ7CivolIAgPiBzY3JlZW47Civok5ogPiBveGFsaWM7Civoko4gPiBwaW5hbmU7CivokocgPiBmaW5pc2g7CivokYEgPiBnaW5nZXI7CivokIUgPiBzcHJpbmc7Civoj4YgPiBqdW5nbGU7CivojrUgPiBkb2RkZXI7CivojYogPiB0aG9ybnM7CivojYEgPiBjZWxlcnk7CivojKYgPiB0aG9ybnM7CivojKIgPiBzZWRnZXM7Civoi6ogPiBicmlnaHQ7Civoi6IgPiBiYXJsZXk7CivoiqQgPiBob2xsb3c7CivoiaIgPiBhXC1tYXN0Owor6IimID4gcnVkZGVyOwor6IiDID4gYVwtc2hvZTsKK+iHhCA+IHBhbGF0ZTsKK+iGqSA+IGdyZWFzeTsKK+iGoyA+IHZhZ2luYTsKK+iGlSA+IGhvbGxvdzsKK+iFryA+IHN0cm9uZzsKK+iFnyA+IHZhZ2luYTsKK+iFgSA+IGNhbGx1czsKK+iEtyA+IHRvbmd1ZTsKK+iEtSA+IHRoaWdoczsKK+iEpyA+IHJlZHVjZTsKK+iDuSA+IGNvb2tlZDsKK+iDtyA+IGJyZWFzdDsKK+iCpyA+IGVtYnJ5bzsKK+iCkCA+IGFybXBpdDsKK+iBuSA+IGVhcndheDsKK+iApCA+IHBsb3VnaDsKK+e+tSA+IHNwaXJpdDsKK+e+iCA+IGhhbHRlcjsKK+e9qyA+IGhpbmRlcjsKK+e9pSA+IGltcGV0ZTsKK+e9oyA+IGhpbmRlcjsKK+e6qSA+IGNvdHRvbjsKK+e6nCA+IGhhd3NlcjsKK+e6lCA+IHRhbGVudDsKK+e6iiA+IGNvdHRvbjsKK+e5rSA+IGNvY29vbjsKK+e5qyA+IGF0dGFjaDsKK+e5qCA+IGFcLWtub3Q7CivnuYsgPiBhdHRhY2g7CivnuLcgPiB0aHJlYWQ7CivnuKMgPiBjb3VudHk7CivnuKEgPiBtYXR0ZXI7CivnuIYgPiBhXC1yb3BlOwor57eqID4gYVwtcm9wZTsKK+e2jyA+IHNvb3RoZTsKK+e2hSA+IHRocmVhZDsKK+e1vyA+IHVyZ2VudDsKK+e1miA+IGFcLXJvcGU7CivntLIgPiBicmlkbGU7CivntKkgPiB0b1wtc2V3Owor57SfID4gYVwtc2FzaDsKK+e0mCA+IHN0cmluZzsKK+e0kyA+IGxvb3NlbjsKK+e0gyA+IGFcLWNvcmQ7Civns6ggPiBzdGFyY2g7Civns6EgPiBzdGFyY2g7CivnsbIgPiBhcHBlYWw7CivnsZogPiBiYW1ib287CivnsYMgPiBiYXNrZXQ7CivnsJwgPiBiYW1ib287CivnsIkgPiBkZXB1dHk7Civnr7MgPiB3aWNrZXI7Civnr6UgPiBidWxnbGU7Civnr5wgPiBiYW1ib287CivnrpkgPiBxdWl2ZXI7CivnrLIgPiBiYXNrZXQ7Civnq5wgPiBkcmFnb247Civnq4kgPiBhXC1ob2xlOwor56qqID4gaG9sbG93Owor56qUID4gY29ybmVyOwor56mpID4gc3RhYmxlOwor56moID4gcnVpbmVkOwor56mMID4gcmV2aXZlOwor56mIID4gbWlsbGV0Owor56icID4gY29ybmVyOwor56egID4gbWlsbGV0Owor56amID4gZGVmZW5kOwor56WPID4gc2hyaW5lOwor56SrID4gZ3JhdmVsOwor56OjID4gZ3JpdHR5Owor56K8ID4gbnVtYmVyOwor56G+ID4gd2VpZ2h0Owor56GNID4gc3RyaWtlOwor55+0ID4gYW5jaG9yOwor55+HID4gc3R1cGlkOwor5563ID4gdG9cLXNweTsKK+edqiA+IHNweVwtb247CivnnYYgPiBicmlnaHQ7CivnnL4gPiBtYXNzZXM7Civnm6kgPiBjYWxsdXM7CivnmqUgPiBicmlnaHQ7CivnmqEgPiBicmlnaHQ7Civnmp4gPiBicmlnaHQ7CivnmoAgPiBrZXJuZWw7CivnmaQgPiBwaW1wbGU7CivnmZggPiBhXC1zb3JlOwor55iNID4gdWxjZXJzOwor55e7ID4gc3VmZmVyOwor55eaID4gYXN0aG1hOwor55aJID4gcmVwZWF0Owor55aDID4gaGFtbGV0Owor55aCID4gcmVwZWF0Owor55W9ID4gZ3JvdW5kOwor55WvID4gcnVzdGljOwor55WfID4gcGxvdWdoOwor55C/ID4gYnJpZ2h0Owor55C6ID4gZW5hbWVsOwor54+UID4gXChqYWRlXCk7CivnjpMgPiBwZWFybHk7CivnjbcgPiBmaWVyY2U7CivnjYkgPiBqdW5nbGU7CivnjLsgPiBtb25rZXk7CivnjLogPiBqYWNrYWw7CivnjJMgPiBtb25rZXk7Civni6UgPiBmb2xsb3c7CivnirogPiBhbmltYWw7CivniZUgPiB3aW5kb3c7CivniZMgPiB0YWJsZXQ7CivniZAgPiBzbHVpY2U7CivniKUgPiBzaW1tZXI7CivniJogPiBicmlnaHQ7Civnh7QgPiByYWdvdXQ7Civnh6EgPiBicmlnaHQ7Civnh5wgPiBzaW1tZXI7Civnh4sgPiBzY29yY2g7Civnh4EgPiBicmlnaHQ7CivnhrIgPiBicmlnaHQ7CivnhoggPiBicmlnaHQ7CivnhZUgPiBicmlnaHQ7CivnhYMgPiByZW1vdmU7CivnhYEgPiBoZWFydGg7CivnhLsgPiBicmVhdGg7CivnhLQgPiBicmlnaHQ7CivnhKAgPiB0ZW1wZXI7Civng7ogPiBicmlnaHQ7Civng7EgPiBicmlnaHQ7CivngoEgPiBicmVhdGg7CivngJIgPiBjb2Fyc2U7CivngIwgPiBwbGVudHk7Civmv7UgPiBhXC1iYW5rOwor5r+sID4gZHJlZGdlOwor5r68ID4gYmxlYWNoOwor5r2oID4gZ2F0aGVyOwor5r2AID4gZ2F0aGVyOwor5rymID4gc2FsaXZhOwor5rioID4gYVwtY292ZTsKK+a3pSA+IHN0cmFpbjsKK+a3nyA+IHR1cmJpZDsKK+a0nyA+IHNuaXZlbDsKK+azrSA+IGFcLXJhZnQ7CivmsZkgPiBmaWx0aHk7CivmsL8gPiBzcHJpbmc7CivmsKsgPiBhbW9uaWE7CivmrrwgPiBjYXNpbmc7CivmrqsgPiB1dG1vc3Q7CivmrLsgPiBzdWRkZW47CivmrJEgPiBnYXRoZXI7Civmq6wgPiBjb2ZmaW47Civmq54gPiBjaXRydXM7Civmq5wgPiBxdWl2ZXI7CivmqbAgPiBhXC1zcGFyOwor5qmrID4gYWNyb3NzOwor5qmkID4gc3RhbWVuOwor5qmcID4gYVwtcG9zdDsKK+aplSA+IGFcLXByb3A7CivmqL8gPiBjb2ZmaW47CivmqLggPiBzaW1wbGU7CivmqLIgPiBqdWp1YmU7CivmqJEgPiBicmlkZ2U7Civmp6UgPiBjb2ZmaW47CivmprIgPiBwaWxsYXI7CivmprEgPiByYWZ0ZXI7CivmpqUgPiBzY3JlZW47CivmpoUgPiBwaWxsYXI7Civmpa8gPiBzaGllbGQ7CivmpawgPiB0YWJsZXQ7CivmpaIgPiB0aW5kZXI7CivmpZsgPiBjb2Fyc2U7CivmpYogPiB3aWxsb3c7CivmpKcgPiBndXR0ZXI7CivmpJMgPiBzdHJpa2U7Civmo5wgPiBicmFuY2g7Civmo4UgPiBoYW5kbGU7Civmo4MgPiBhXC1wZWFyOwor5qGyID4gcXVpbmNlOwor5p+yID4gaGFuZGxlOwor5p20ID4gc2hvdmVsOwor5p2HID4gbG9xdWF0Owor5pyZID4gYnJpZ2h0Owor5puhID4gcmVwZWF0Owor5puNID4gYnJpZ2h0Owor5puFID4gYnJpZ2h0Owor5puEID4gYnJpZ2h0Owor5puAID4gc3Rvcm15Owor5pq7ID4gYnJpZ2h0Owor5pq4ID4gYnJpZ2h0Owor5pqyID4gYnJpZ2h0Owor5pqLID4gc3Ryb25nOwor5pmcID4gaW5zZWN0Owor5pmEID4gYnJpZ2h0Owor5pi6ID4gYnJpZ2h0Owor5pieID4gYnJpZ2h0Owor5piRID4gYnJpZ2h0Owor5pe7ID4gaGVhdmVuOwor5pedID4gYmFubmVyOwor5pW5ID4gdG9cLXNldzsKK+aVoSA+IHJlYnVrZTsKK+aVgyA+IHN0cm9uZzsKK+aVgiA+IGRlZHVjdDsKK+aUliA+IG9wcG9zZTsKK+aUhCA+IHNwcmVhZDsKK+aTvSA+IHRpY2tsZTsKK+aTtCA+IGV4cGFuZDsKK+aTliA+IHNjcmFwZTsKK+aTkyA+IHRvXC1ydWI7Civmk4ogPiBzdHJpa2U7Civmk4cgPiBzZWxlY3Q7CivmkqYgPiByaXBcLXVwOwor5pKKID4gZmllcmNlOwor5pC/ID4gdG9cLWh1ZzsKK+aPtyA+IGluc2VydDsKK+aPriA+IGRpcmVjdDsKK+aPlyA+IHN0cmlrZTsKK+aPgCA+IGNob29zZTsKK+aOpCA+IHF1aXZlcjsKK+aOlCA+IHN0dXJkeTsKK+aNvSA+IGNsdXRjaDsKK+aNvCA+IHRvXC1ydWI7CivmjZMgPiBzdHJpdmU7CivmjYMgPiBnYXRoZXI7Civmi6EgPiBleHBhbmQ7Civmip4gPiBzZWxlY3Q7CivmiZAgPiBkaXZpbmU7CivmiYYgPiBzY3JlZW47CivmiJ0gPiBwaXJhdGU7CivmiIcgPiBzdHVwaWQ7Civmh74gPiBhZnJhaWQ7Civmh7ogPiByZWdyZXQ7Civmh7QgPiByZWdyZXQ7Civmh7IgPiBwdW5pc2g7Civmh6ggPiBmZWVibGU7CivmhqYgPiByZWdyZXQ7CivmhL0gPiBnYW1ibGU7CivmhKwgPiBhY2N1c2U7Civmg7IgPiBkZXZpc2U7Civmg6ogPiBldGhpY3M7Civmg44gPiBpbmp1cmU7CivmgrMgPiBldGhpY3M7CivmgqcgPiBzbW9vdGg7Civmgp4gPiBpbXBlZGU7CivmgosgPiBzdGluZ3k7CivmgaEgPiBzdGluZ3k7CivmgZ8gPiBzY2FyZWQ7Civlv7AgPiBzdWZmZXI7CivlvqAgPiBpbmR1Y2U7CivlvbQgPiBicmlkZ2U7CivlvKMgPiBtaWRkbGU7Civlu70gPiByZXR1cm47Civlu58gPiB0ZW1wbGU7Civlu5AgPiBzdGFibGU7Civlu48gPiBzdGFibGU7Civlu4YgPiBhXC1yb29tOwor5buEID4gc3RhYmxlOwor5buBID4gdG9pbGV0Owor5bmYID4gdHVyYmFuOwor5bekID4gYVwtbWFuZTsKK+W3mCA+IHN1bW1pdDsKK+W2vCA+IGlzbGFuZDsKK+W2tCA+IGlzbGFuZDsKK+W2kyA+IGJvc2hhbjsKK+W2jCA+IGlzbGFuZDsKK+W2iyA+IGlzbGFuZDsKK+W1viA+IHVuZXZlbjsKK+W0vyA+IGNsaWZmczsKK+W0nyA+IGNsaWZmczsKK+WyqCA+IHVuZXZlbjsKK+WygCA+IGdvXC1vdXQ7Civlsa4gPiBzcHJvdXQ7CivlsZwgPiBkcmF3ZXI7CivlsIUgPiBzdWJkdWU7CivlsIAgPiBjYW5ub3Q7Civlr5wgPiByZXBvc2U7Civlr5UgPiByZXBvc2U7Civlr44gPiBkcm93c3k7CivlrqcgPiBjb3JuZXI7Civlrb4gPiBhXC1iYWJ5Owor5a2MID4gbG92ZWx5Owor5ay/ID4gbG92ZWx5Owor5aykID4gbW90aGVyOwor5ayDID4gc2lzdGVyOwor5auqID4gaGFua2VyOwor5auQID4gZnJvbGljOwor5aq9ID4gbW90aGVyOwor5aqWID4gYmVhdXR5Owor5am8ID4gcGVyc29uOwor5amkID4gbG92ZWx5Owor5aisID4gbG92ZWx5Owor5aiSID4gbWF0cm9uOwor5aeBID4gYmVhdXR5Owor5aa4ID4gcGVyc29uOwor5aSsID4gcGFydGVkOwor5aSgID4gZW5vdWdoOwor5aSGID4gcmVzaXN0Owor5aO/ID4gZ29ibGV0Owor5aKgID4gc21vb3RoOwor5aCnID4gYWRqb2luOwor5aCmID4gc3RhaXJzOwor5aCJID4gZ3JvdW5kOwor5ZyeID4gZW50aXJlOwor5ZydID4gZW50aXJlOwor5ZyOID4gY2lyY2xlOwor5ZyAID4gbmF0aW9uOwor5ZuYID4gcmV0dXJuOwor5Zq/ID4gYVwtbHVtcDsKK+WaqCA+IHRocm9hdDsKK+WalCA+IHNuZWV6ZTsKK+WagyA+IGdvYmJsZTsKK+WagCA+IGVuam9pbjsKK+WZmiA+IGZhdGhvbTsKK+WZkyA+IGV4aGFsZTsKK+WZjyA+IGluaGFsZTsKK+WXvyA+IGdvYmJsZTsKK+WWhiA+IGFcLXNhZ2U7CivllYkgPiBzdHVwaWQ7CivllKsgPiB0b1wtaHVtOwor5ZSIID4gdG9cLXNvYjsKK+WTpCA+IGphcmdvbjsKK+WTiyA+IHBsdXJhbDsKK+WSiCA+IG9wcG9zZTsKK+WRriA+IHRvXC1zaXQ7CivlkY8gPiBnYWxsb247Civlj6EgPiBhc3R1dGU7Civlj5MgPiBhZmZhaXI7Civljo4gPiBzZXR0bGU7CivljYQgPiB0d2VudHk7CivljIMgPiBiZWdnYXI7Civli7cgPiB1cmdlbnQ7Civli7UgPiBzdHJpdmU7Civli5cgPiBlbmpvaW47Civli5EgPiByZXdhcmQ7Civli40gPiBzdHJvbmc7Civli4QgPiBhY3RpdmU7Civli4EgPiBzdHJvbmc7CivliqQgPiBzdHJvbmc7CivliowgPiB0b1wtY3V0Owor5YqGID4gc2lja2xlOwor5YmOID4gdGVtcGxlOwor5YmLID4gc3ViZHVlOwor5YiqID4gdG9cLWN1dDsKK+WHniA+IGJyaWdodDsKK+WHkyA+IHNoaXZlcjsKK+WGkSA+IGhlbG1ldDsKK+WGhCA+IHRlbmRlcjsKK+WFsiA+IGhlYXZlbjsKK+WFpyA+IGluc2lkZTsKK+WEuCA+IGJhbmRpdDsKK+WEtyA+IHNwb3VzZTsKK+WDsSA+IGVtcGxveTsKK+WDrCA+IGNsZXZlcjsKK+WDoyA+IGFzc3VtZTsKK+WCryA+IHVyZ2VudDsKK+WCriA+IGZpbmlzaDsKK+WCjiA+IHRvcHBsZTsKK+WBqiA+IGNvbXBlbDsKK+WBqSA+IGZvbGxvdzsKK+WBqCA+IHVuZXZlbjsKK+WBliA+IHJpcFwtdXA7CivlgIYgPiBjbGV2ZXI7CivlgIUgPiBkZXB1dHk7CivlgIMgPiBkYW1hZ2U7Civkv7UgPiBkaXZpZGU7CivkvrcgPiBuYXJyb3c7CivkvYggPiBzcHJlYWQ7CivkvL4gPiBtaWdodHk7CivkvJwgPiBkZXB1dHk7Civku5ogPiB0b1wtZmx5Owor5LqKID4gYWZmYWlyOwor5LqEID4gZ3JlZWR5Owor5LmaID4gaGlkZGVuOwor5LmCID4gZ292ZXJuOwor5LiXID4gdGhpcnR5Owor5LauID4gY2xldmVyOwor5LaBID4gbm9pc2VzOwor5LWnID4gdG9cLWR5ZTsKK+S1mSA+IHN0aWNreTsKK+S1kCA+IHllbGxvdzsKK+S1jyA+IHllbGxvdzsKK+S1jSA+IHllbGxvdzsKK+S1iyA+IHllbGxvdzsKK+S1iiA+IHllbGxvdzsKK+S0pSA+IGFcLXN0YWc7Civks74gPiBhblwtb3dsOwor5LOPID4gY3Vja29vOwor5LOHID4gcGFycm90Owor5LK5ID4gb3NwZXJ5Owor5LKnID4gY3Vja29vOwor5LKMID4gYVwtZmlzaDsKK+SxlSA+IGxhYnJ1czsKK+SxkSA+IGFcLWZpc2g7CivksY8gPiBhXC1maXNoOwor5LGDID4gYVwtZmlzaDsKK+SxgiA+IGFcLWZpc2g7CivksLcgPiBhXC1maXNoOwor5LCjID4gYW5cLWVsZjsKK+SvqyA+IGJyaWdodDsKK+SvqCA+IHRvXC1yYXA7Civkr50gPiBtYXJyb3c7Civkr5wgPiBtYXJyb3c7Civkr4MgPiBzYWRkbGU7Civkr4EgPiBhXC1tdWxlOwor5K2qID4gZ3JhaW5zOwor5K2lID4gYVwtYmFpdDsKK+StnSA+IHRvXC1lYXQ7CivkrZogPiB0b1wtZWF0Owor5K2SID4gYnJlYXRoOwor5K2MID4gY29uZ2VlOwor5K2IID4gY29uZ2VlOwor5Ky4ID4gYVwtbWVhbDsKK+SskSA+IGFcLWdhbGU7CivkrJAgPiBicmVlemU7CivkrIogPiBhXC1nYWxlOwor5KyIID4gYnJlZXplOwor5KyHID4gYnJlZXplOwor5KyFID4gYVwtZ2FsZTsKK+SshCA+IGJyZWV6ZTsKK+SsgiA+IGJyZWV6ZTsKK+SrviA+IGJyZWV6ZTsKK+SrvSA+IGJyZWV6ZTsKK+SrvCA+IGJyZWV6ZTsKK+SrrCA+IHRvXC1ib3c7CivkqrggPiBzdHJvbmc7CivkqqQgPiBnYXJsaWM7Civkqa8gPiB1cmdlbnQ7Civkqa0gPiBoYWx0ZXI7CivkqL4gPiBoaWRkZW47CivkqLogPiBjbG91ZHk7CivkqLggPiBjbG91ZHk7CivkqK8gPiBjbG91ZHk7CivkqJ8gPiBwdWRkbGU7CivkqIkgPiBwYXJyb3Q7CivkqIcgPiBhXC1wYWlyOwor5Ke0ID4gYVwtYmlyZDsKK+SnsyA+IGZlbWFsZTsKK+SnpSA+IGJvcmRlcjsKK+SnmyA+IGJlc2lkZTsKK+SnkSA+IGFcLWRpa2U7CivkpaogPiB0b1wtY3VwOwor5KWoID4gYVwtZmlsZTsKK+SloCA+IG5lZWRsZTsKK+SljSA+IGFcLXdoaXA7Civko6YgPiB0b1wtY3V0Owor5KOYID4gYVwtaGFsbDsKK+SjiCA+IGFcLWxhbmU7Civkor0gPiBhXC1sYW5lOwor5KCwID4gY29pbGVkOwor5KCkID4gdG9kZGxlOwor5KCZID4gdXJnZW50Owor5KCOID4gbmFycm93Owor5KCHID4gc3Ryb25nOwor5J+xID4gdHJhY2VzOwor5J+fID4gdXJnZW50Owor5J+SID4gY29pbGVkOwor5J2cID4gYVwtbGlvbjsKK+SdhCA+IGNvd3BlYTsKK+ScniA+IGFcLWRvc2U7Civkm6cgPiByaWRkbGU7Civkm6UgPiBzcGVlY2g7Civkm6MgPiBzcGVlY2g7Civkm5wgPiB0b1wtYXNrOwor5JuRID4gc2lsZW50Owor5JuIID4gdG9cLXZvdzsKK+SauiA+IGJhbGxhZDsKK+SaiCA+IHRvXC1zZWU7CivkmoYgPiB0b1wtc2VlOwor5JqCID4gdG9cLXNlZTsKK+SagSA+IHRvXC1zZWU7Civkmb8gPiB0b1wtc2VlOwor5Jm9ID4gdG9cLXNlZTsKK+SZvCA+IHRvXC1zZWU7CivkmbUgPiBydXN0aWM7CivkmaEgPiBhXC1rbm90Owor5JmMID4gYVwta25vdDsKK+SYsCA+IGFcLWhvb2Q7CivkmKwgPiBhcm1vdXI7CivkmKkgPiBjb2xsYXI7CivkmIwgPiBnYWRmbHk7CivkmIggPiBveXN0ZXI7Civkl6sgPiBhXC1mcm9nOwor5Ja5ID4gd2VldmlsOwor5JauID4gbGFydmFlOwor5JarID4gb3lzdGVyOwor5JaoID4gbWFudGlzOwor5JaXID4gc3Ryb25nOwor5JaBID4gbnVtYmVyOwor5JWsID4gZ2luZ2VyOwor5JWoID4gcmF0dGFuOwor5JSvID4gc2FsdGVkOwor5JSiID4gY2F0aGF5Owor5JSPID4gYVwtbHVzaDsKK+STpyA+IHVyZ2VudDsKK+STpiA+IGFcLXJ1bGU7Civkk4UgPiBjZWxlcnk7Civkk4QgPiBncmFzc3k7CivkkrkgPiBncmFzc3k7CivkkqsgPiBncmFzc3k7CivkkokgPiBhXC1sb25nOwor5JKCID4gYW5cLW9hcjsKK+SRuiA+IGFcLXNhaWw7CivkkbQgPiBhXC1ib2F0Owor5JGxID4gYVwtYm9hdDsKK+SRryA+IGFcLWJvYXQ7CivkkaggPiBydWRkZXI7CivkkaYgPiBhXC1ib2F0Owor5JGkID4gYVwtYm9hdDsKK+SRkCA+IGJyaWdodDsKK+SQpiA+IHNsZWVweTsKK+SQpSA+IHN0aW5reTsKK+SPqiA+IHRlbmRvbjsKK+SPoyA+IG1hZ2dvdDsKK+SPgiA+IGNsZXZlcjsKK+SOsSA+IGFcLWRyYWc7CivkjqwgPiBhXC1kcmFnOwor5I6ZID4gZmx5aW5nOwor5I6XID4gZmx5aW5nOwor5I6TID4gZmx5aW5nOwor5I6KID4gZmx5aW5nOwor5I6IID4gZmx5aW5nOwor5I6GID4gZmx5aW5nOwor5I6FID4gZmx5aW5nOwor5I6AID4gZmx5aW5nOwor5I2+ID4gZmx5aW5nOwor5I2sID4gdG9cLXVzZTsKK+SNiyA+IGJvdHRsZTsKK+SNiCA+IGJvdHRsZTsKK+SNgyA+IGFcLXZhc2U7CivkjLQgPiB1bmV2ZW47CivkjLEgPiB1bmV2ZW47CivkjJwgPiB0b1wtc2V3Owor5IyVID4gdG9cLXRpZTsKK+SLsiA+IGFcLXJvcGU7Civki5EgPiB0b1wtdGllOwor5IuQID4gZmFicmljOwor5IuMID4gc3Ryb25nOwor5IqnID4gYVwtZmFydDsKK+SKpSA+IGNvbmdlZTsKK+SKmyA+IHNocmVkczsKK+SKjiA+IHBvd2RlcjsKK+SKhiA+IGNvb2tlZDsKK+SJtiA+IGFcLXNhaWw7CivkiLogPiBiYW1ib287CivkiLQgPiBhXC1jYWdlOwor5IiOID4gYVwtbGVhZjsKK+SHpSA+IG5hcnJvdzsKK+SHoiA+IGJhbWJvbzsKK+SHnyA+IHRlbmRvbjsKK+SHmiA+IHRvXC10YXA7Civkh4EgPiBhXC1jYXZlOwor5Ia9ID4gYVwtaG9sZTsKK+SGvCA+IGFcLW5lc3Q7CivkhrsgPiBhXC1ob2xlOwor5Ia3ID4gYVwtaG9sZTsKK+SGsCA+IGFcLWNhdmU7Civkhq4gPiB0b1wtZGlwOwor5IarID4gd2luZG93Owor5IanID4gYVwtY2F2ZTsKK+SGoSA+IGFcLWNhdmU7Civkhp0gPiBhXC1jYXZlOwor5IaZID4gYVwta2lsbjsKK+SGkyA+IGFcLWhvbGU7CivkhbYgPiB0b1wtaG9lOwor5IW0ID4gZ3JhaW5zOwor5IWmID4gZmVlYmxlOwor5IWHID4gZ3JhaW5zOwor5IS5ID4gYVwteWVhcjsKK+SEsiA+IGluc2lkZTsKK+SErSA+IGFcLXllYXI7CivkhJggPiBhXC1yaXRlOwor5ISOID4gcHJldHR5Owor5IOlID4gc3RvbmVzOwor5IOWID4gYVwtYmFuazsKK+SDiiA+IHRvXC1ydWI7CivkgrcgPiBicm9rZW47CivkgrQgPiB0b1wtcnViOwor5IKzID4gZ3JhdmVsOwor5IKdID4gdG9cLXJhcDsKK+SCmCA+IHBlYmJsZTsKK+SBvyA+IHNsZWVweTsKK+SBpiA+IHRvXC1zZWU7CivkgZYgPiB0b1wtc2VlOwor5ICSID4gZ2xvb215Owor5ICNID4gdmVzc2VsOwor5ICFID4gdmVzc2VsOwor47++ID4gdmVzc2VsOwor47+8ID4gYVwtYm93bDsKK+O/uyA+IGFcLXRyYXk7Civjv60gPiBjcmFja3M7Civjv6cgPiBmaWVsZHM7Civjv5QgPiBhXC13YXJ0Owor4723ID4gZHJvcHN5Owor4721ID4gc29sZW1uOwor47y+ID4gYnJpY2tzOwor47ylID4gYm90dGxlOwor47ydID4gYVwtYm93bDsKK+O8hCA+IHBlYXJsczsKK+O5jCA+IGNhdHRsZTsKK+O4vyA+IGFcLWNhbGY7CivjuJkgPiBmYXRoZXI7Civjt7AgPiBmbGFtZXM7Civjt6kgPiBicmlnaHQ7Civjt4sgPiBlbWJlcnM7Civjt4IgPiBicmlnaHQ7CivjtqQgPiB0b1wtZnJ5Owor47aIID4gY3JlZWtzOwor47WqID4gc2FsaXZhOwor47WdID4gbW92aW5nOwor47SeID4gZmx1ZW50Owor47SGID4gdG9cLWRpcDsKK+OzjCA+IG1hcnNoeTsKK+OxtSA+IHRvXC1kaWU7CivjsbMgPiBsb25lbHk7CivjsbEgPiB1bmV2ZW47CivjsaMgPiB1bmV2ZW47CivjsZ4gPiBkYW5nZXI7CivjsZkgPiByb3R0ZW47CivjsY0gPiB0b1wtb3dlOwor47GCID4gaHVuZ3J5Owor47GBID4gdG9cLWFzazsKK+OwjSA+IGFcLWNhZ2U7CivjsIMgPiBhXC10cmVlOwor46++ID4gYVwtdHJlZTsKK+OvliA+IGFcLXRyZWU7Civjr48gPiBncmFpbnM7Civjr44gPiBzdHVwaWQ7Civjr40gPiBhblwtb2FyOwor46+JID4gYVwtdHJlZTsKK+OvhiA+IGFcLXRyZWU7Civjrr8gPiBhXC10cmVlOwor4665ID4gYVwtdHJlZTsKK+OutyA+IGFcLXRyZWU7CivjrrYgPiBhXC10cmVlOwor466zID4gYVwtdHJlZTsKK+OuqSA+IGFcLXRyZWU7CivjrqcgPiBhXC10cmVlOwor466YID4gYVwtdHJlZTsKK+OuliA+IHRvXC1sYXk7CivjrowgPiBjb3R0b247CivjrbEgPiBhXC1jYXNlOwor462LID4gYVwtY2x1YjsKK+OsryA+IHN1bnNldDsKK+OsriA+IGdlbnRsZTsKK+OsjSA+IGZpZXJjZTsKK+OruiA+IGJ5Z29uZTsKK+OruCA+IHN1bnNldDsKK+OrtyA+IGJlaGluZDsKK+OroSA+IHdpbnRlcjsKK+OrhSA+IGFcLWZsYWc7CivjqrkgPiB0b1wtcm9iOwor46qGID4gaGlkZGVuOwor46qEID4gYnJva2VuOwor46m+ID4gdW5ldmVuOwor46myID4gYVwtZmlzdDsKK+OoviA+IGFcLXR5cGU7CivjqLsgPiB0b1wtY3V0Owor46i4ID4gdG9cLWhpdDsKK+OoqSA+IHRvXC13aW47CivjqKUgPiB0b1wtaGl0Owor76icID4gcGFjaWZ5Owor76iZID4gc3Bpcml0Owor76iXID4gcHJvZml0Owor76iVID4gYnJpZ2h0Owor46iOID4gdG9cLWR5ZTsKK+OohSA+IGluc2lkZTsKK++ogiA+IGV4cGFuZDsKK++ogSA+IGRlZ3JlZTsKK+OnuCA+IHRvXC1oaXQ7Civvp7QgPiBmb3Jlc3Q7Civjp7MgPiB0b1wtbWl4Owor76etID4gc3Rpbmd5Owor76eoID4gaW5zaWRlOwor76enID4gaW5zaWRlOwor76emID4gc29ycm93Owor46enID4gYVwtY29tYjsKK++npCA+IHJlYXNvbjsKK++noCA+IGNoYW5nZTsKK++nmSA+IHNoaXZlcjsKK++njiA+IHN1bGZ1cjsKK+OniSA+IHRvXC1ydWI7Civvp4QgPiBkcmFnb247CivvprwgPiBzaGFudHk7CivvprMgPiBzcGlyaXQ7CivvprAgPiBsaXN0ZW47CivvpqogPiByZXBvc2U7CivvpqkgPiBwcmlzb247Civvpp4gPiB0aHJvYXQ7CivvppwgPiBhXC1saW5lOwor46aUID4gc2lsa2x5Owor46aLID4gYWJzdXJkOwor46aKID4gbGF2aXNoOwor46aFID4gdW5lYXN5Owor46aBID4gdG9cLXNvYjsKK++lvyA+IHN0cml2ZTsKK++lvSA+IGV4Y3VzZTsKK++luiA+IGJyaWRnZTsKK++ltyA+IGJyaWdodDsKK+OlrSA+IGx1eHVyeTsKK+OlqyA+IGhvbmVzdDsKK++lqSA+IG51bWJlcjsKK++lpiA+IHJldHVybjsKK++lnyA+IHJlcG9zZTsKK+OlnyA+IGVubWl0eTsKK++lliA+IGNvcm5lcjsKK++lkSA+IG5hcnJvdzsKK++lkCA+IHRocmVhZDsKK+OlkCA+IGhhdHJlZDsKK+OliCA+IGFmcmFpZDsKK++lhiA+IHByaXNvbjsKK++lgSA+IGRlYmF0ZTsKK+OkuyA+IHN0dXBpZDsKK+OkuSA+IGhhdHJlZDsKK+OkuCA+IHVuZWFzeTsKK++ktSA+IHJ1c2hlczsKK+OkqCA+IHNjYXJlZDsKK++kpCA+IHJhZ2dlZDsKK++knyA+IG9yY2hpZDsKK++kniA+IHJvdHRlbjsKK++kkyA+IHBhdHJvbDsKK+OkkyA+IHN0dXBpZDsKK++khSA+IHN0cmluZzsKK+OjrSA+IG51bWJlcjsKK+OjmCA+IHNwYXNtczsKK+OivSA+IGFcLWJhaXQ7CivjorogPiBzdHJpbmc7Civjoa4gPiBkYW5nZXI7CivjoaMgPiBkcmFnb247CivjoZogPiBhcm1vdXI7CivjoYEgPiBhXC1yb2JlOwor46C2ID4gYVwtc2FpbDsKK+OgsiA+IHJpcHBlZDsKK+OggCA+IGlzbGFuZDsKK+OftyA+IGFcLXdhcnQ7Civjn6sgPiBzcHJpbmc7Civjn6UgPiB1bmV2ZW47Civjn58gPiBhXC1sYW5lOwor4564ID4gYVwteWVhcjsKK+OehyA+IHVsY2VyczsKK+OegiA+IHVsY2VyczsKK+OduSA+IGFcLWhhcmU7CivjnbYgPiB0b1wtZ2V0Owor4521ID4gdG9cLWdldDsKK+OdpyA+IHN0YWJsZTsKK+OdgiA+IGxvY3VzdDsKK+OdgSA+IGxvbmVseTsKK+OcqyA+IHByZXR0eTsKK+OcpSA+IGNyYWZ0eTsKK+ObuSA+IHByZXR0eTsKK+OavCA+IGFcLWdpcmw7CivjmrsgPiBzb2RvbXk7CivjmrkgPiBwcmV0dHk7Civjmp4gPiB0ZXJyb3I7CivjmpAgPiBhXC1jYXNlOwor45qMID4gYVwtYmFuZDsKK+OZuSA+IGFcLWRhbXA7CivjmbYgPiBhXC1oYWxsOwor45msID4gYVwtYmFuazsKK+OZnSA+IGFcLWRpa2U7CivjmZUgPiBhXC1sdW1wOwor45i0ID4gdG9cLXNpdDsKK+OYsiA+IGFcLWNvdmU7Civjl7cgPiB0b1wtZWF0Owor45e1ID4gYnJlYXRoOwor45eWID4gdG9cLWVhdDsKK+OWkiA+IHRvXC1jcnk7CivjloEgPiBzdGluZ3k7CivjlaAgPiBhXC1wYWlyOwor45WUID4gYVwtaGFsbDsKK+OVgiA+IHRvXC1odW07CivjlLogPiBhblwtYWdlOwor45S4ID4gYVwtdHJheTsKK+OUnCA+IHN1ZGRlbjsKK+OUlyA+IHN0cm9uZzsKK+OUkiA+IHRvXC1jdXQ7CivjlJAgPiB0b1wtY3V0Owor45SKID4gdG9cLWN1dDsKK+OUiSA+IHRvXC1kaWc7CivjlIYgPiB0b1wtY3V0Owor45SFID4gdG9cLWN1dDsKK+OTtSA+IHN3b3JkczsKK+OTsSA+IHRvXC1jdXQ7Civjk6ogPiBicmlnaHQ7Civjk6AgPiBhXC1mbGF3Owor45OFID4gZnJvemVuOwor45K2ID4gcHVibGljOwor45K1ID4gbWFubmVyOwor45KyID4gd2VhbHRoOwor45KnID4gYVwtcGFpcjsKK+OSoCA+IG5hcnJvdzsKK+ORuyA+IHN0cm9uZzsKK+ORtyA+IG1hbm5lcjsKK+ORsyA+IGNsZXZlcjsKK+ORoyA+IHN0dXBpZDsKK+ORhyA+IGNsZXZlcjsKK+OQuSA+IHN0cm9uZzsKK+efsyA+IHN0b25lOwor55+tID4gc2hvcnQ7Civlv6sgPiByYXBpZDsKK+WcqCA+IGJlXC1hdDsKK+S7liA+IG90aGVyOwor55+iID4gYXJyb3c7CivliLAgPiBnb1wtdG87Civor7QgPiBzcGVhazsKK+i/hSA+IHF1aWNrOwor5ZywID4gZWFydGg7Civlv4MgPiBoZWFydDsKK+S4iyA+IHVuZGVyOwor6L6tID4gd29yZHM7Civlvq4gPiBzbWFsbDsKK+WutiA+IGhvdXNlOwor5b6hID4gZHJpdmU7Civovp4gPiB3b3JkczsKK+WQjiA+IHF1ZWVuOwor5bCPID4gc21hbGw7CivlvoUgPiB0cmVhdDsKK+i/mCA+IHN0aWxsOwor5Y+RID4gaXNzdWU7CivlvasgPiBjYXJ2ZTsKK+aDsyA+IHRoaW5rOwor552hID4gc2xlZXA7CivovYkgPiBzaGlmdDsKK+aJgCA+IHBsYWNlOwor6LyqID4gd2hlZWw7CivkuIkgPiB0aHJlZTsKK+i8lSA+IGxpZ2h0Owor5byPID4gc3R5bGU7CivmoLcgPiBzaGFwZTsKK+i7vSA+IGxpZ2h0Owor5bu6ID4gYnVpbGQ7Civlu7YgPiBkZWxheTsKK+ebsiA+IGJsaW5kOwor6LuiID4gc2hpZnQ7Civlu6MgPiBicm9hZDsKK+WjsCA+IHNvdW5kOwor5belID4gbGFib3I7Civnm4YgPiBiYXNpbjsKK+ebgyA+IGdsYXNzOwor5q2jID4gcmlnaHQ7CivlurggPiB1c3VhbDsKK+WlsyA+IHdvbWFuOwor5YqbID4gcG93ZXI7CivoupEgPiB3YXZlcjsKK+WboCA+IGNhdXNlOwor6YeNID4gaGVhdnk7CivnmocgPiByb3lhbDsKK+W6hyA+IGNvdmVyOwor5qyhID4gb3JkZXI7CivluoMgPiBicm9hZDsKK+WPoyA+IG1vdXRoOwor5L2/ID4gY2F1c2U7Civnmb0gPiB3aGl0ZTsKK+W5vSA+IHF1aWV0Owor5pWZID4gdGVhY2g7CivnmbwgPiBpc3N1ZTsKK+WGjSA+IGFnYWluOwor55m6ID4gaXNzdWU7CivmsJQgPiBzdGVhbTsKK+S/oSA+IHRydXN0Owor5YyXID4gbm9ydGg7CivoubIgPiBzcXVhdDsKK+i5nyA+IHRyYWNlOwor55SxID4gY2F1c2U7CivljbQgPiBzdGlsbDsKK+W5hSA+IHBpZWNlOwor5YWlID4gZW50ZXI7CivlhYggPiBmaXJzdDsKK+awtCA+IHdhdGVyOwor5aSEID4gcGxhY2U7Civlt7cgPiBhbGxleTsKK+eskSA+IHNtaWxlOwor56uLID4gc3RhbmQ7Civot6ogPiBrbmVlbDsKK+mprCA+IGhvcnNlOwor5beoID4gbGFyZ2U7CivnlpEgPiBkb3VidDsKK+WIqSA+IGdhaW5zOwor6LW0ID4gZ29cLXRvOwor5YWJID4gbGlnaHQ7CivmnpwgPiBmcnVpdDsKK+i1pyA+IGJsdXNoOwor6IezID4gcmVhY2g7CivmuIUgPiBjbGVhcjsKK+eJqSA+IHRoaW5nOwor5bWMID4gaW5sYXk7CivnlLIgPiBhcm1vcjsKK+eUsCA+IGZpZWxkOwor6K64ID4gYWxsb3c7CivlhasgPiBlaWdodDsKK+W0liA+IGNsaWZmOwor5bSOID4gcm91Z2g7CivljZcgPiBzb3V0aDsKK+iJsiA+IGNvbG9yOwor6K6pID4gYWxsb3c7Civnk5wgPiBtZWxvbjsKK+eulyA+IGNvdW50Owor6LOKID4gdGhpZWY7CivlhYMgPiBmaXJzdDsKK+iyryA+IHN0b3JlOwor5oCdID4gdGhpbms7CivosqggPiBnb29kczsKK+WyqSA+IGNsaWZmOwor5q+PID4gZXZlcnk7CivlsawgPiBjbGFzczsKK+ixqiA+IGJyYXZlOwor5bGeID4gY2xhc3M7CivoqIAgPiB3b3JkczsKK+adgyA+IHBvd2VyOwor5bGLID4gaG91c2U7CivosYYgPiBiZWFuczsKK+S4gyA+IHNldmVuOwor5bCaID4gc3RpbGw7CivlsJYgPiBzaGFycDsKK+i9rCA+IHNoaWZ0Owor5bCEID4gc2hvb3Q7CivnqbogPiBlbXB0eTsKK+aKgCA+IHNraWxsOwor6L27ID4gbGlnaHQ7Civlr7ogPiBjb3VydDsKK+WvqyA+IHdyaXRlOwor6IuxID4gcGV0YWw7Civlr6IgPiBzbGVlcDsKK+WGmSA+IHdyaXRlOwor5a+dID4gc2xlZXA7Civlr5AgPiBzbGVlcDsKK+WvhiA+IGRlbnNlOwor5a+CID4gc3RpbGw7CivpkrEgPiBtb25leTsKK+WuuSA+IGxvb2tzOwor5a61ID4gbmlnaHQ7Civorr4gPiBidWlsZDsKK+WniyA+IGJlZ2luOwor5a6iID4gZ3Vlc3Q7CivniYcgPiBzbGljZTsKK+eglCA+IGdyaW5kOwor5a6HID4gaG91c2U7Civml6kgPiBlYXJseTsKK+aIvyA+IGhvdXNlOwor6Z+zID4gc291bmQ7CivnjbsgPiBvZmZlcjsKK+eNuiA+IG90dGVyOwor5424ID4gYmVhc3Q7CivorbIgPiBhbGxvdzsKK+eNqCA+IGFsb25lOwor6K2mID4gZ3VhcmQ7CivnjaMgPiBiZWFzdDsKK+WtmCA+IGV4aXN0Owor6K2JID4gcHJvb2Y7Civnu4QgPiBjbGFzczsKK+isnSA+IHRoYW5rOwor54ycID4gZ3Vlc3M7CivlrIkgPiBlbmpveTsKK+m7kSA+IGJsYWNrOwor6KyBID4gdmlzaXQ7CivliZEgPiBzd29yZDsKK+eLrCA+IGFsb25lOwor5LmQID4gaGFwcHk7CivnuqcgPiBsZXZlbDsKK+iqrCA+IHNwZWFrOwor5Li+ID4gcmFpc2U7Civor4EgPiBwcm92ZTsKK+eFpyA+IHNoaW5lOwor6KqTID4gc3dlYXI7CivnvqQgPiBncm91cDsKK+aZmiA+IG5pZ2h0Owor6KqCID4gdGVtcHQ7CivoqZ4gPiB3b3JkczsKK+S8pCA+IHdvdW5kOwor57G7ID4gY2xhc3M7CivmrKIgPiBoYXBweTsKK+eIvSA+IGhhcHB5Owor5Yq/ID4gcG93ZXI7CivoqLwgPiBwcm92ZTsKK+WIuyA+IGNhcnZlOwor5patID4gc2V2ZXI7CivlpJwgPiBuaWdodDsKK+iosSA+IGFsbG93Owor6KitID4gYnVpbGQ7Civku7cgPiBwcmljZTsKK+iEkSA+IGJyYWluOwor6KiqID4gdmlzaXQ7Civop4QgPiBydWxlczsKK+WokSA+IGRhbmNlOwor56C0ID4gYnJlYWs7Civms70gPiBtYXJzaDsKK+eHuyA+IHNtb2tlOwor57SnID4gdGVuc2U7Civop7ggPiB0b3VjaDsKK+ijhSA+IGRyZXNzOwor5oClID4gcXVpY2s7CivmsrMgPiByaXZlcjsKK+ihgCA+IGJsb29kOwor5oqVID4gdGhyb3c7CivopoYgPiBjb3ZlcjsKK+WPsyA+IHJpZ2h0Owor5aW0ID4gc2xhdmU7CivliIAgPiBrbmlmZTsKK+ilnyA+IGxhcGVsOwor54WZID4gc21va2U7CivlpYkgPiBvZmZlcjsKK+WWnSA+IGRyaW5rOwor6KS4ID4gbGFwZWw7CivopKogPiBzdHJpcDsKK+WNqyA+IGd1YXJkOwor5aSiID4gZHJlYW07CivplJkgPiBlcnJvcjsKK+ijviA+IGxhcGVsOwor5qGIID4gdGFibGU7Civng58gPiBzbW9rZTsKK+ijnSA+IGRyZXNzOwor5Y2wID4gcHJpbnQ7Civlo5MgPiBwcmVzczsKK+eDiCA+IGZpZXJ5Owor5aOHID4gYWx0YXI7CivlnZcgPiBwaWVjZTsKK+ijgiA+IHNwbGl0Owor6KK0ID4gcGFudHM7CivlopMgPiBncmF2ZTsKK+mdmSA+IHF1aWV0Owor54KOID4gZmxhbWU7CivoobcgPiBoZWFydDsKK+eBsCA+IGFzaGVzOwor6KGeID4gZ3VhcmQ7CivooZsgPiBndWFyZDsKK+mAnyA+IHF1aWNrOwor5aGXID4gc21lYXI7CivmlYwgPiBlbmVteTsKK+WhlCA+IHRvd2VyOwor6LCiID4gdGhhbms7CivloYogPiBwaWVjZTsKK+aAgCA+IGJvc29tOwor5YW7ID4gcmFpc2U7CivnvaogPiBjcmltZTsKK+a/tiA+IGJyb2FkOwor6J+yID4gd29ybXM7Civmv7EgPiBiZWFjaDsKK+aRmCA+IHBsdWNrOwor5pa9ID4gZ3JhbnQ7CivmqKEgPiBtb2RlbDsKK+iNiSA+IGdyYXNzOwor5r+DID4gdGhpY2s7CivlgLwgPiBwcmljZTsKK+a/gSA+IG11ZGR5Owor54+tID4gY2xhc3M7Civkv64gPiBzdHVkeTsKK+WRsyA+IHRhc3RlOwor5r6kID4gbWFyc2g7Civnu4cgPiB3ZWF2ZTsKK+m+lSA+IG5pY2hlOwor6J2/ID4gZmxpZXM7CivlhY0gPiBzcGFyZTsKK+azoiA+IHdhdmVzOwor5r2UID4gY2xlYW47CivmtIsgPiBvY2VhbjsKK+WKsyA+IGxhYm9yOwor5Z2HID4gZXF1YWw7CivljosgPiBwcmVzczsKK+WlliA+IHByaXplOwor6aG/ID4gcGF1c2U7CivmvIIgPiBmbG9hdDsKK+WIpCA+IGp1ZGdlOwor57SgID4gd2hpdGU7CivlmLQgPiBtb3V0aDsKK+aLhSA+IGNhcnJ5Owor5p2/ID4gcGxhbms7Civpkp8gPiBjbG9jazsKK+iuvyA+IHZpc2l0Owor6buSID4gYmxhY2s7Civpu5AgPiBzdGljazsKK+ibhyA+IHNuYWtlOwor5p6EID4gZnJhbWU7CivmurogPiBkcm93bjsKK+m6piA+IHdoZWF0Owor6bqlID4gd2hlYXQ7Civmup0gPiBkaXRjaDsKK+a6nCA+IHNsaWRlOwor6IKJID4gZmxlc2g7CivnurggPiBwYXBlcjsKK+aipiA+IGRyZWFtOwor6JmaID4gZmFsc2U7CivokpkgPiBjb3ZlcjsKK+iZlSA+IHBsYWNlOwor6JmOID4gdGlnZXI7CivlmYwgPiBzY29sZDsKK+adgiA+IG1peGVkOwor5oCSID4gYW5nZXI7CivnqL8gPiBkcmFmdDsKK+a4piA+IHN3aXJsOwor5rihID4gY3Jvc3M7CivmuKAgPiBkaXRjaDsKK+WYlyA+IHRhc3RlOwor572iID4gY2Vhc2U7Civpt7ogPiBoZXJvbjsKK+m3uSA+IGVhZ2xlOwor5re5ID4gZHJvd247Civol6kgPiBmZW5jZTsKK+iXpSA+IGRydWdzOwor6bKcID4gZnJlc2g7Civnva4gPiBwbGFjZTsKK+WXhSA+IHNtZWxsOwor6JeBID4gc3RyYXc7CivptrQgPiBjcmFuZTsKK+aeqiA+IHNwZWFyOwor5ravID4gc2hvcmU7Civolq4gPiBtYXJzaDsKK+iWrCA+IGRydWdzOwor6JamID4gb2ZmZXI7CivmtpwgPiBkaXRjaDsKK+a2mSA+IHRlYXJzOwor6YWNID4gbWF0Y2g7CivmtbQgPiBiYXRoZTsKK+WNhyA+IGFyaXNlOwor5rWcID4gY3JlZWs7CivolL0gPiBjb3ZlcjsKK+ivjSA+IHdvcmRzOwor5rOqID4gdGVhcnM7CivolK0gPiBzaGFkZTsKK+a0pSA+IGZlcnJ5Owor6ay8ID4gZ2hvc3Q7CivoiJ4gPiBkYW5jZTsKK+iTriA+IGxvdHVzOwor6YG/ID4gYXZvaWQ7CivmoYwgPiB0YWJsZTsKK+iTiyA+IGNvdmVyOwor5LqhID4gZGVhdGg7Civok4QgPiBzdG9yZTsKK+mXqiA+IGZsYXNoOwor6JK4ID4gc3RlYW07CivpnIcgPiBzaGFrZTsKK+WSsyA+IGNvdWdoOwor5ZKyID4gc21pbGU7CivmsqIgPiBtYXJzaDsKK+e7vyA+IGdyZWVuOwor5ZKOID4gZmF1bHQ7CivnurMgPiBhZG1pdDsKK+axvSA+IHN0ZWFtOwor6LSnID4gZ29vZHM7CivlkaogPiBjdXJzZTsKK+erpSA+IGNoaWxkOwor5LyfID4gZ3JlYXQ7CivmsYEgPiBqdWljZTsKK+iNoyA+IGdsb3J5Owor54yuID4gb2ZmZXI7CivlkJAgPiB2b21pdDsKK+WOmiA+IHRoaWNrOwor6bCMID4gbG9hY2g7CivlloogPiBzaG91dDsKK+i9riA+IHdoZWVsOwor5ZCJID4gbHVja3k7Civorq0gPiB0ZWFjaDsKK+WPsSA+IHNjb2xkOwor6YCQID4gY2hhc2U7Civnm5YgPiBjb3ZlcjsKK+WPqSA+IGtub2NrOwor6IiNID4gaG91c2U7Civmr44gPiBldmVyeTsKK+ajgCA+IGNoZWNrOwor5o+hID4gZ3Jhc3A7CivniZkgPiB0b290aDsKK+muriA+IGZyZXNoOwor5a69ID4gYnJvYWQ7CivmrpYgPiBicmVlZDsKK+WNvyA+IG5vYmxlOwor6I23ID4gbG90dXM7Civmra8gPiB0ZWV0aDsKK+atqiA+IHNsYW50Owor5q2hID4gaGFwcHk7Civmo4sgPiBjaGVzczsKK+mtlCA+IGRlbW9uOwor6IWwID4gd2Fpc3Q7CivmooUgPiBwbHVtczsKK+mSoiA+IHN0ZWVsOwor6Iy5ID4gcm9vdHM7Civku4cgPiBlbmVteTsKK+asuiA+IGNoZWF0Owor6ayaID4gYmVhcmQ7CivljJkgPiBzcG9vbjsKK+WHgCA+IGNsZWFuOwor5YyNID4gY3Jhd2w7CivmrIogPiBwb3dlcjsKK+iMhSA+IHJlZWRzOwor57SvID4gdGlyZWQ7CivkuqsgPiBlbmpveTsKK+iMgiA+IHRoaWNrOwor5YuHID4gYnJhdmU7CivmnKsgPiBmaW5hbDsKK+eziiA+IHBhc3RlOwor56iOID4gdGF4ZXM7Civli6IgPiBwb3dlcjsKK+WLniA+IGxhYm9yOwor6IubID4gc21hbGw7Civmg68gPiBoYWJpdDsKK+WAviA+IHVwc2V0Owor5Yq0ID4gbGFib3I7Civpn6kgPiBmZW5jZTsKK+i0uCA+IHRyYWRlOwor5qqiID4gY2hlY2s7Civlio0gPiBzd29yZDsKK+aJqyA+IHN3ZWVwOwor6Im4ID4gZ3Jhc3M7CivliaMgPiBzd29yZDsKK+WQkyA+IHNjYXJlOwor5YmDID4gc2hhdmU7Civpl7IgPiBmZW5jZTsKK+iItiA+IGxhcmdlOwor5Yi3ID4gYnJ1c2g7CivnvoogPiBzaGVlcDsKK+aoqSA+IHBvd2VyOwor5qijID4gc2hhcGU7CivmiZEgPiBwb3VuZDsKK+iIjiA+IGhvdXNlOwor56KOID4gYnJlYWs7CivmqIIgPiBoYXBweTsKK+ejqCA+IGdyaW5kOwor6Ie6ID4gdG93ZXI7Civoh60gPiBzbWVsbDsKK+WHpiA+IHBsYWNlOwor5qeYID4gc2hhcGU7CivlgI0gPiB0aW1lczsKK+eylyA+IHJvdWdoOwor5qeLID4gZnJhbWU7CivlhrYgPiBzbWVsdDsKK+iGsyA+IG1lYWxzOwor6aatID4gZHJpdmU7CivmnJcgPiBjbGVhcjsKK+mmrCA+IGhvcnNlOwor5YW8ID4gdW5pdGU7CivpnosgPiBzaG9lczsKK+asoyA+IGhhcHB5Owor5oykID4gY3Jvd2Q7Civmpb0gPiBoYXBweTsKK+a0gSA+IGNsZWFuOwor6aKXID4gZ3JhaW47Civmg6AgPiBmYXZvcjsKK+aMryA+IHJhaXNlOwor6IWmID4gYnJhaW47CivniKwgPiBjcmF3bDsKK+iFlSA+IHdyaXN0Owor5qGDID4gcGVhY2g7CivmjqogPiBwbGFjZTsKK+azsCA+IGdyZWF0Owor5Z2hID4gc2xvcGU7CivohLMgPiBicmFpbjsKK+WdmyA+IGFsdGFyOwor5YSfID4gcmVwYXk7CivmpJwgPiBjaGVjazsKK+W9qiA+IHRpZ2VyOwor6aWuID4gZHJpbms7CivmpI0gPiBwbGFudDsKK+mkiiA+IHJhaXNlOwor6ISKID4gc3BpbmU7CivmpIUgPiBjaGFpcjsKK+efmyA+IHNwZWFyOwor5a6+ID4gZ3Vlc3Q7CivogpogPiBiZWxseTsKK+WDuSA+IHByaWNlOwor6LS8ID4gdGhpZWY7Civpo7IgPiBkcmluazsKK+ajsiA+IHBlcmNoOwor6aOuID4gZHJpbms7Civlg54gPiBmYWxzZTsKK+WDlSA+IHNsYXZlOwor5qOSID4gc3RpY2s7Civlg40gPiBsYWJvcjsKK+WCviA+IHVwc2V0Owor5YK3ID4gd291bmQ7CivlgqwgPiBwcmVzczsKK+iCnSA+IGxpdmVyOwor55ufID4gc3dlYXI7Civlgb0gPiBmYWxzZTsKK+eurSA+IGFycm93Owor6IGyID4gc291bmQ7CivpoZ4gPiBjbGFzczsKK+iAgCA+IHNoaW5lOwor6aGGID4gZ3JhaW47CivlgYkgPiBncmVhdDsKK+eWryA+IGNyYXp5Owor6IC7ID4gc2hhbWU7Civkvo0gPiBzZXJ2ZTsKK+WApCA+IHByaWNlOwor6KGrID4gc2hpcnQ7CivpoJMgPiBwYXVzZTsKK+aPrSA+IHJhaXNlOwor6I6yID4gbG90dXM7CivpkrsgPiBkcmlsbDsKK+aghCA+IGdsb3J5Owor5bOhID4gZ29yZ2U7Civpn7sgPiByaHltZTsKK+aftSA+IGZlbmNlOwor5LiRID4gY2xvd247Civnv7MgPiBzaGFkZTsKK+a1kyA+IHRoaWNrOwor5o2JID4gZ3Jhc3A7CivmvrMgPiBpbmxldDsKK+eWvCA+IGFjaGVzOwor5qGjID4gc2hlbGY7CivmipsgPiB0aHJvdzsKK+S+oSA+IHByaWNlOwor6ZiUID4gYnJvYWQ7CivnjpsgPiBhZ2F0ZTsKK+mdtCA+IGJvb3RzOwor5bCdID4gdGFzdGU7CivmiaMgPiBrbm9jazsKK+mdnCA+IHF1aWV0Owor5YKyID4gcHJvdWQ7CivkvLogPiBzZXJ2ZTsKK+mUkCA+IHNoYXJwOwor6ZycID4gZnJvc3Q7CivlkLUgPiBhcmd1ZTsKK+aynyA+IGRpdGNoOwor5rWRID4gbXVkZHk7CivpgqogPiB3cm9uZzsKK+iEhiA+IGNyaXNwOwor5YG/ID4gcmVwYXk7Civmi58gPiBkcmFmdDsKK+absyA+IHRyYWlsOwor6ZuiID4gbGVhdmU7Civpm5wgPiBtaXhlZDsKK+WPmyA+IHJlYmVsOwor54K8ID4gc21lbHQ7Civpm5EgPiBtaXhlZDsKK+e/vCA+IHdpbmdzOwor5ZG1ID4gc2NvbGQ7CivnlJwgPiBzd2VldDsKK+aKuSA+IHNtZWFyOwor6ZqZID4gY3JhY2s7CivmiZQgPiB0aHJvdzsKK+W7tyA+IGNvdXJ0Owor5o63ID4gdGhyb3c7CivlgoUgPiB0dXRvcjsKK+aZqSA+IG5pZ2h0Owor57mUID4gd2VhdmU7CivllrcgPiBzcHVydDsKK+a1qSA+IGdyZWF0Owor5ZCpID4gb3JkZXI7CivkvKogPiBmYWxzZTsKK+eejiA+IGJsaW5kOwor55+uID4gc2hvcnQ7Civpvb8gPiB0ZWV0aDsKK+e3kSA+IGdyZWVuOwor5ai2ID4gbWFycnk7Civnt4ogPiB0ZW5zZTsKK+mXhyA+IGNsb3NlOwor55KDID4gZ2xhc3M7CivmlrcgPiBzZXZlcjsKK+ezliA+IHN1Z2FyOwor54+KID4gY29yYWw7Civmo40gPiBzdGljazsKK+mWkSA+IGZlbmNlOwor5467ID4gZ2xhc3M7CivnoLggPiBzbWFzaDsKK+WatyA+IHNob3V0Owor6ZaDID4gZmxhc2g7CivmlbUgPiBlbmVteTsKK+e1niA+IHR3aXN0Owor5Z2fID4gZ3JhdmU7CivpuaQgPiBjcmFuZTsKK+e1hCA+IGNsYXNzOwor5LmWID4gcmViZWw7CivntJogPiBsZXZlbDsKK+e0mSA+IHBhcGVyOwor57SNID4gYWRtaXQ7CivovaggPiB0cmFjazsKK+aTsSA+IHBsYWNlOwor5pOsID4gZHJhZnQ7CivnoZUgPiBncmVhdDsKK+aTpyA+IHJhaXNlOwor5pOhID4gY2Fycnk7Civmk5QgPiBjYXJyeTsKK+aSsiA+IHBvdW5kOwor5YW9ID4gYmVhc3Q7CivnsZYgPiB0YWxseTsKK+mQmCA+IGNsb2NrOwor6YGuID4gY292ZXI7Civmk5IgPiBjYXRjaDsKK+eviSA+IGJ1aWxkOwor5o+DID4gc2hlYXI7CivnrpIgPiBicm9vbTsKK+m8jiA+IGxhcmdlOwor5o6DID4gc3dlZXA7Civpja4gPiBicmFzczsKK+WXkyA+IHZvaWNlOwor57KSID4gZ3JhaW47CivpjK8gPiBlcnJvcjsKK+WVpSA+IHdoYXRcPzsKK+mMoiA+IG1vbmV5Owor6JycID4gaG9uZXk7CivmjJkgPiByYWlzZTsKK+mLvCA+IHN0ZWVsOwor5ou2ID4gcHJlc3M7Civpi60gPiBzaGFycDsKK+aQgSA+IHBsYWNlOwor6YuPID4gdG9uZ3M7Civogr8gPiBzd2VsbDsKK+mKrSA+IG1vbmV5Owor6KOZID4gc2tpcnQ7Civog4AgPiBzd2VsbDsKK+i+nCA+IGNyaW1lOwor5ZOHID4gdm9taXQ7CivlsL8gPiB1cmluZTsKK+mAriA+IHNlaXplOwor5YiuID4gc2hhdmU7CivlmLEgPiBvcmRlcjsKK+WAoSA+IGd1aWRlOwor5pCPID4gc2VpemU7CivlhZwgPiBwb3VjaDsKK+mthCA+IHZpZ29yOwor5pmwID4gY2xlYXI7Civns5UgPiBjYWtlczsKK+enqSA+IG9yZGVyOwor56iaID4geW91bmc7CivpiI0gPiBibHVudDsKK+aHtyA+IGJvc29tOwor5ruoID4gYmVhY2g7Civmh5AgPiBib3NvbTsKK+i6gSA+IHRlbnNlOwor55SrID4gYmVnaW47Civnpr0gPiBiaXJkczsKK+aGuiA+IHBlYWNlOwor6ZO+ID4gY2hhaW47CivmhqwgPiByb3VzZTsKK+aykCA+IGJhdGhlOwor5YezID4gYmVuY2g7CivphawgPiB0b2FzdDsKK+aFoyA+IGhhYml0Owor54G/ID4gdml2aWQ7Civpn7UgPiByaHltZTsKK+aUgCA+IGNsaW1iOwor5ZKSID4gY3Vyc2U7CivmsqsgPiBmcm90aDsKK+eijCA+IHJvdWdoOwor5Z2kID4gZWFydGg7CivnhLAgPiBmbGFtZTsKK+mAlyA+IHRlbXB0Owor6YKEID4gc3RpbGw7CivprYEgPiBjaGllZjsKK+a7pSA+IGZsb29kOwor6YGpID4gbWF0Y2g7CivmgaUgPiBzaGFtZTsKK+ahhiA+IGZyYW1lOwor5ZaAID4gdm9taXQ7CivnoJUgPiBicmVhazsKK+e/hSA+IHdpbmdzOwor5oizID4gcHJpY2s7CivmoakgPiBzdGFrZTsKK+iCuiA+IGx1bmdzOwor57qxID4gZ2F1emU7CivpmaEgPiBzdGVlcDsKK+eDqyA+IHNjYWxkOwor5YyVID4gc3Bvb247CivpuYUgPiBnb29zZTsKK+aVniA+IHJvb215Owor5rWPID4gY2xlYXI7Civng4EgPiBzaGluZTsKK+iviCA+IGNoZWF0Owor5bOoID4gbG9mdHk7CivomZAgPiBjcnVlbDsKK+i+qyA+IGJyYWlkOwor5Ze9ID4gY291Z2g7CivmgKYgPiBlYWdlcjsKK+a1hyA+IHNwcmF5Owor6IabID4gY2hlc3Q7Civpl7UgPiBtb3VybjsKK+iQgyA+IGRlbnNlOwor6KKcID4gc29ja3M7Civmj70gPiBncmFzcDsKK+iNqyA+IHNoYWRlOwor6LS/ID4gYnJpYmU7CivmlZ0gPiBicmVhazsKK+eGjyA+IHNtb2tlOwor5YyAID4gZXF1YWw7CivmsoMgPiB3YXRlcjsKK+idhyA+IGZsaWVzOwor57ueID4gdHdpc3Q7CivlkZUgPiB2b21pdDsKK+WihSA+IHZpbGxhOwor56e9ID4gZGlydHk7CivosKwgPiBlcnJvcjsKK+WehCA+IGdyYXZlOwor5ZG7ID4gZ3JvYW47Civmi6cgPiBwaW5jaDsKK+W9sCA+IGNsZWFyOwor5qCWID4gcGVyY2g7CivmibwgPiBncmFzcDsKK+a1iiA+IG11ZGR5Owor5p2gID4gbGV2ZXI7Civmg6sgPiB0aXJlZDsKK+aUmCA+IHNlaXplOwor57yOID4gc2F0aW47Civmg64gPiBkcmVhZDsKK+WZlyA+IGJ1cnN0Owor55+2ID4gamV0dHk7Civnk6MgPiBwZXRhbDsKK+m7nSA+IGJsYWNrOwor57CHID4gc3dhcm07Civmh4ogPiB2ZXhlZDsKK+WLuiA+IHNwb29uOwor5aStID4geW91bmc7Civmi4cgPiB0aHVtYjsKK+mTsiA+IHNwYWRlOwor6IKuID4gZGlydHk7Civlk70gPiBjaG9rZTsKK+ivoyA+IHJlYWNoOwor54KrID4gc2hpbmU7Civpkp0gPiBibHVudDsKK+aghSA+IGZlbmNlOwor5YaVID4gY3Jvd247Civlu5MgPiBicm9hZDsKK+WzrSA+IHN0ZWVwOwor56OFID4gcG91bmQ7Civnlq4gPiB0dW1vcjsKK+i1gyA+IGJvb3R5Owor55ikID4gdHVtb3I7CivlqYogPiB3aG9yZTsKK+mUryA+IGFcLXNhdzsKK+eniSA+IGdyYXNwOwor6Ie7ID4gcmVhY2g7CivlmIggPiBub2lzeTsKK+ivhSA+IGN1cnNlOwor57ywID4gcmVpbnM7CivorqogPiBhYnVzZTsKK+W/oSA+IGFcLXNhZDsKK+a2oSA+IHN3aXJsOwor6aaNID4gYnJlYWQ7CivpooUgPiBza3VsbDsKK+elryA+IGx1Y2t5Owor5b+WID4gZ3Vlc3M7Civng5kgPiBicmFuZDsKK+WflCA+IHBsYWluOwor5rOTID4gY2xlYXI7CivlmY4gPiBjaG9rZTsKK+mYnCA+IG1vdW5kOwor5L+oID4gZ3JhdmU7CivngqwgPiB0b3JjaDsKK+i0riA+IHN0b3JlOwor5riOID4gZGl0Y2g7CivnmasgPiBjcmF6eTsKK+eCmSA+IHJvYXN0Owor6IKHID4gYmVnaW47CivluJogPiBicm9vbTsKK+aBrCA+IHF1aWV0Owor5amqID4gY292ZXQ7CivouZEgPiB0cmVhZDsKK+eruiA+IGluZGlhOwor5YmMID4gc2xhc2g7CivojacgPiBzaGluZTsKK+i1giA+IGJyaWJlOwor6K+yID4gdGVhY2g7CivnrZsgPiBzaWV2ZTsKK+evoSA+IHVzdXJwOwor6bK4ID4gd2hhbGU7CivmiqEgPiBzd2luZzsKK+a2riA+IHJpbnNlOwor5oyOID4gY2Fycnk7CivphbUgPiB5ZWFzdDsKK+aphCA+IG9saXZlOwor5qaEID4gb2xpdmU7CivnqKAgPiBkZW5zZTsKK+aCuyA+IGFuZ2VyOwor6ZuPID4gY2hpY2s7CivmkbkgPiB0cmFjZTsKK+a2pyA+IGJyb29rOwor6IW6ID4gZ2xhbmQ7Civlk64gPiBjb3VnaDsKK+iikiA+IHN0cmlwOwor5oqgID4gcmFpc2U7Civlv7EgPiB0cnV0aDsKK+WZpCA+IGNsb3NlOwor6auvID4gYmVhcmQ7CivonL8gPiBjcmVlcDsKK+mVgCA+IHBsYXRlOwor6IOtID4gcm91Z2U7Civpq4UgPiBza3VsbDsKK+eEmCA+IHNoaW5lOwor5L2XID4gb3RoZXI7CivotbMgPiBncmFuZDsKK+ezoCA+IGNoYWZmOwor5bibID4gc2lsa3M7Civkvo8gPiBzbWFsbDsKK+S4lSA+IGdyZWF0Owor6bKoID4gc2hhcms7CivouJ0gPiBhbmtsZTsKK+mprSA+IGRyaXZlOwor55yIID4gZ2xvYXQ7CivlgK0gPiBkd2FyZjsKK+mVkCA+IHN0b3ZlOwor6IeGID4gY2hlc3Q7CivlrbogPiBjaGlsZDsKK+iZsSA+IGxvdXNlOwor55GZID4gYWdhdGU7CivopJsgPiBsYXBlbDsKK+aBuiA+IGVuam95Owor5pOeID4gc2hha2U7CivnrpUgPiBzaWV2ZTsKK+a2kyA+IGJyb29rOwor5Zm8ID4gc291bmQ7CivmkJAgPiBjcmFtcDsKK+aImyA+IGxhbmNlOwor6buUID4gYmxhY2s7CivpmJYgPiBjbG9zZTsKK+WRgyA+IGJlbGNoOwor5rqJID4gd2F0ZXI7CivngoAgPiByb2FzdDsKK+eajiA+IHdoaXRlOwor5qatID4ga2lvc2s7CivphaogPiBjcmVhbTsKK+WCgCA+IGdyZWF0Owor5a2AID4gd2lkb3c7CivlraogPiB0d2luczsKK+azsSA+IGdyZWF0Owor5bKWID4gc3RlZXA7Civlv7ggPiBibHVzaDsKK+eesCA+IHdhdGNoOwor6LCSID4gdmlzaXQ7Civop4ogPiBjb3ZldDsKK+awriA+IHhlbm9uOwor55ejID4gc3BvdHM7CivmkZIgPiBleHBlbDsKK+S/uCA+IHdhZ2VzOwor5oSgID4gYW5ncnk7CivlspEgPiBzdGVlcDsKK+aQvSA+IHNtZWFyOwor5omqID4gc3Rva2U7CivnkZogPiBjb3JhbDsKK+eamSA+IHdoaXRlOwor57uJID4gY3JlcGU7Civlv74gPiBhbmdlcjsKK+ebgiA+IGJhc2luOwor54+AID4gYW1iZXI7CivlgYggPiBicmF2ZTsKK+aylCA+IGZsb29kOwor6K+pID4gYm9hc3Q7Civoio0gPiBwZW9ueTsKK+iktiA+IHBsZWF0Owor6YWXID4gZHJ1bms7CivlkqQgPiBzY29sZDsKK+afoCA+IGxlbW9uOwor6K+ZID4gdGVhc2U7CivlgYMgPiBjZWFzZTsKK+e7uiA+IHNrZWluOwor5o+/ID4gcHJlc3M7Civph4kgPiBnbGF6ZTsKK+m5rSA+IGhlcm9uOwor5a6TID4gcXVpZXQ7CivlrZsgPiBjb21ldDsKK+WZqyA+IGJlbGNoOwor5byLID4gY2F0Y2g7CivpvpsgPiBuaWNoZTsKK+W/qiA+IHF1aWV0Owor6ZWCID4gY2FydmU7Civpqp4gPiByYWlzZTsKK+mijCA+IG1vdXRoOwor6ZOgID4gYXJtb3I7Civps4UgPiBsb2FjaDsKK+enhiA+IHN0cmF3Owor5baCID4gY2xpZmY7CivmpL0gPiBiZWFtczsKK+mipiA+IGZyb3duOwor5reWID4gc2x1c2g7CivmgZogPiBhbmdlcjsKK+iOoCA+IHdlZWRzOwor5qmbID4gYVwtcGVnOwor6ZiVID4gY2xvc2U7CivlkrsgPiBzaG91dDsKK+elmyA+IGV4cGVsOwor6JK6ID4gZnVyemU7Civoob0gPiBsYXBlbDsKK+e/lSA+IGFncmVlOwor6Zy+ID4gbWlzdHk7CivnoKcgPiBhbnZpbDsKK+i5iSA+IGVycm9yOwor5ZOCID4gc21pbGU7Civog7ogPiBhbWluZTsKK+ibrSA+IGxlZWNoOwor6Z+qID4gcmlnaHQ7Civor6ggPiBqb2tlczsKK+i1nSA+IGZhbHNlOwor5bK/ID4gZ3JhbmQ7CivmgKsgPiBzb3JyeTsKK+iNjyA+IGJlYW5zOwor5qWUID4gd2VkZ2U7Civmk5ggPiB0aHVtYjsKK+i9sSA+IHdoZWVsOwor5aq+ID4gbWFycnk7Civnl40gPiB3b3VuZDsKK+eNrSA+IG90dGVyOwor6buiID4gYmxhY2s7Civpk6cgPiBzcGFkZTsKK+WQkiA+IHNob3V0Owor55a9ID4gdWxjZXI7Civor58gPiBhYnVzZTsKK+iMlCA+IGdyYXZlOwor5qGkID4gYWxkZXI7Civpk4YgPiByaXZldDsKK+mFqSA+IGRydW5rOwor5rC1ID4gd2F0ZXI7CivmkrogPiBodXJyeTsKK+WlmCA+IGxhcmdlOwor6IKEID4gbGVhcm47CivouK8gPiB3YXZlcjsKK+WtoiA+IHNwb3JlOwor6bKyID4gc3Bhd247CivphYogPiBkcnVuazsKK+mTqCA+IHdlaWdoOwor6YW9ID4gdGhpY2s7CivpmJIgPiBhbG9uZTsKK+mlrCA+IG9yZGVyOwor6LGVID4gYVwtcGlnOwor56yKID4gbGFkbGU7CivnvYUgPiBjcmFjazsKK+mSnCA+IHN0ZWVsOwor55WIID4gZmllbGQ7Civlm5cgPiBlcmVjdDsKK+W6pSA+IHNoYWRlOwor55OkID4gZmxlc2g7Civpk6kgPiBtb3VsdDsKK+a4liA+IGp1aWNlOwor5b+EID4gaGVhcnQ7Civor5MgPiBjaGVhdDsKK+m5kSA+IHF1YWlsOwor6IyVID4gYWxvbmU7CivlnoUgPiBtb3VuZDsKK+ifpSA+IGxlZWNoOwor6bmzID4gY3JhbmU7CivpuYwgPiBxdWFpbDsKK+aZnyA+IGNsZWFyOwor5ZWBID4gY2hpcnA7CivphpogPiBldGhlcjsKK+eQsCA+IGpld2VsOwor6L+oID4gdW50aWw7CivopKsgPiBzdHJpcDsKK+m5rCA+IHNuaXBlOwor5569ID4gYmxpbmQ7CivlgoggPiB0cmliZTsKK+mpvSA+IHRpcmVkOwor6LCvID4gdG93ZXI7Civpk7AgPiBoaW5nZTsKK+a0jCA+IGNsZWFyOwor5aCeID4gcGxhdGU7CivnobwgPiBib3JheDsKK+ipiCA+IHNjb2xkOwor6YWvID4gZXN0ZXI7CivplaogPiBjb2luczsKK+mUuCA+IHNwYWRlOwor5oiLID4gc21hbGw7CivmiaYgPiBwcm9iZTsKK+a6tyA+IHByaXZ5Owor5L+zID4gYWN0b3I7Civpm6AgPiBlbmVteTsKK+eguyA+IGdyaW5kOwor6JiWID4gc3R1bXA7CivlooAgPiBwb3JjaDsKK+m6tCA+IHllYXN0Owor56qzID4gZGlydHk7CivmvYsgPiB3YXZlczsKK+a0jiA+IHVudGlsOwor6aWnID4gc3VnYXI7CivlloggPiBtdXNpYzsKK+WQoSA+IGJsYW1lOwor6ZmfID4gY2xpbWI7CivpspsgPiBzaGFyazsKK+easiA+IGNyYWNrOwor55iKID4gd2FydHM7CivpppUgPiBicmVhZDsKK+aQpiA+IGdyYXNwOwor5Z60ID4gc21hbGw7CivpmJ0gPiBwbGFjZTsKK+WOoyA+IHNoZWxsOwor57OFID4gYmxlbmQ7Civpk5cgPiB0b25nczsKK+mYjyA+IGJsb2NrOwor5YmhID4gc2hhcnA7CivpsoIgPiBicmVhbTsKK+a6vSA+IG1vaXN0Owor5oC/ID4gZW5qb3k7CivoibkgPiBncmFzczsKK+mrkSA+IHNrdWxsOwor6Le9ID4ga25lZWw7CivnsI8gPiBhXC1ib3g7Civoo6UgPiBmb2xkczsKK+mSoyA+IHBsYXRlOwor5qeKID4gc3BlYXI7CivmpIsgPiBmcnVpdDsKK+e8syA+IG5vb3NlOwor57uQID4gY2hlYXQ7Civmu6IgPiBjbGVhcjsKK+m+oCA+IGZsdXRlOwor6J2kID4gbGFydmE7CivmsIYgPiB0aGljazsKK+WfrSA+IGFcLWRhbTsKK+WfvSA+IGJyb29tOwor5Z28ID4gc3BsaXQ7Civor5YgPiBlcnJvcjsKK+mytiA+IHNoZWF0Owor6LKFID4gYnJhdmU7CivnmqQgPiB3aGl0ZTsKK+eogiA+IGdyYXNzOwor6ZWGID4gc3dvcmQ7CivplJ4gPiBpbmdvdDsKK+eInSA+IHRvcmNoOwor5rChID4gcmFkb247Civmp60gPiBtYXBsZTsKK+W9mCA+IHN3aW5lOwor5b2WID4gYVwtaG9nOwor5ruXID4gZHJhaW47Civlu5EgPiBhXC1odXQ7CivljI8gPiBnb3VyZDsKK+iVliA+IGxvdHVzOwor5L6UID4gZXF1YWw7Civps4ogPiBicmVhbTsKK+evvCA+IHNlZGFuOwor6JueID4gc25haWw7Civom7IgPiB3b3JtczsKK+iZjSA+IHRpZ2VyOwor5rCZID4geGVub247CivotYcgPiBicmliZTsKK+eSgSA+IFwoZ2VtXCk7Civnu5cgPiBiYXN0ZTsKK+iQjyA+IGxvdHVzOwor5Z+YID4gcm9vc3Q7CivpvZIgPiB0ZWV0aDsKK+m9hSA+IHNtZWxsOwor6buuID4gYmxhY2s7Civpu5MgPiBibGFjazsKK+m6uiA+IGZsb3VyOwor6bq5ID4geWVhc3Q7CivpurUgPiBmbG91cjsKK+m6ryA+IHllYXN0Owor6bqrID4gZmxvdXI7CivpuqogPiBmbG91cjsKK+m6pCA+IHJvdWdoOwor6bqYID4gc2NlbnQ7CivpuoEgPiByb3VnaDsKK+m5viA+IHNhbHR5Owor6bm6ID4gc2FsdHk7CivpubkgPiBzYWx0eTsKK+m4siA+IG15bmFoOwor6bibID4gY3JhbmU7CivpuJggPiBlYWdsZTsKK+m3uCA+IHNuaXBlOwor6beDID4gcXVhaWw7CivptrUgPiBjaGljazsKK+m2iSA+IHF1YWlsOwor6bWwID4gZWFnbGU7CivptaogPiBxdWFpbDsKK+m1niA+IGdvb3NlOwor6bWdID4gZ29vc2U7CivptLMgPiBxdWFpbDsKK+m0qiA+IHN3b29wOwor6bSlID4gc3dvb3A7CivptJ0gPiBteW5haDsKK+mxuyA+IGZyZXNoOwor6bGuID4gYnJlYW07CivpsJ4gPiBzcXVpZDsKK+mwjSA+IGxvYWNoOwor6bCLID4gc2hlYXQ7Civpr78gPiBicmVhbTsKK+mvsCA+IHNoZWF0Owor6a+oID4gd2hhbGU7Civpr6QgPiBzcGF3bjsKK+mviyA+IHNoYXJrOwor6a+KID4gc2hhcms7CivprqsgPiBzaGFyazsKK+muiSA+IGJyZWFtOwor6a20ID4gYnJlYW07CivprYYgPiBibGFjazsKK+mskiA+IGJsYWNrOwor6ayOID4gZmF2dXM7CivprI0gPiBiZWFyZDsKK+msgSA+IGZhdnVzOwor6auzID4gc3RhdGU7Civpq7IgPiBhXC13aWc7Civpq6UgPiBiZWFyZDsKK+mrkiA+IGRpcnR5Owor6auPID4gc2t1bGw7Civpqq8gPiBkaXJ0eTsKK+mpqSA+IGhhcHB5Owor6ammID4gaG9yc2U7CivpqZYgPiBibGFjazsKK+mouyA+IGhvcnNlOwor6airID4gcmFpc2U7CivpqKAgPiBob3JzZTsKK+mokSA+IGhvcnNlOwor6aeqID4gY3Jvd2Q7Civpp54gPiBjYW1lbDsKK+mnkSA+IHRpcmVkOwor6aahID4gc2NlbnQ7CivppaIgPiBicmVhZDsKK+mlmCA+IGdydWVsOwor6aWNID4gbWVhbHM7CivppYMgPiBicmVhZDsKK+mkuyA+IGNha2VzOwor6aS5ID4gc3VnYXI7CivppLMgPiBzdWdhcjsKK+mkqiA+IGZlYXN0Owor6aSmID4gY2FuZHk7CivppJwgPiBjYWtlczsKK+mjtiA+IG9kb3VyOwor6aOtID4gb3JkZXI7Civpo5EgPiBzdG9ybTsKK+mivSA+IGJhbG15Owor6aGxID4gc2t1bGw7CivpobAgPiBmcm93bjsKK+mhoyA+IGZyb3duOwor6aGXID4gcXVpZXQ7CivpoL4gPiBiZWFyZDsKK+mgoCA+IHF1aWV0Owor6aCcID4gbW91dGg7CivpoIAgPiBtdXNpYzsKK+mfuiA+IG11c2ljOwor6Z+kID4gc29ja3M7Civpn5kgPiByaWdodDsKK+mfkyA+IGZlbmNlOwor6Z+IID4gc29ja3M7Civpn4YgPiBzd2luZzsKK+mfgSA+IHJlaW5zOwor6Z6+ID4gYm9vdHM7CivpnrUgPiBzaG9lczsKK+meqCA+IHRyaWJlOwor6Z6XID4gcmVpbnM7CivpnoMgPiBib2FyZDsKK+mdpiA+IHRpbWlkOwor6Z2BID4gdGhpY2s7CivpnLEgPiBjbG91ZDsKK+mcmSA+IHNsZWV0Owor6ZudID4gbWFyc2g7Civpm5sgPiBjaGljazsKK+magiA+IHNoYWR5Owor6Zm8ID4gaXNsZXQ7CivpmLkgPiBhXC1wZW47Civpl5ogPiBmbGFzaDsKK+mXlCA+IGNsb3NlOwor6ZeLID4gY2xvc2U7Civpl4ogPiBicm9hZDsKK+mXgyA+IGFsb25lOwor6Za8ID4gYmxvY2s7CivplrQgPiBxdWlldDsKK+mWpiA+IGNyb3dkOwor6ZaUID4gbW91cm47CivplZ8gPiBsYXRoZTsKK+mUvCA+IGNhcnZlOwor6ZSTID4gY2FydmU7Civpk5ggPiBzd29yZDsKK+mSgyA+IG1ldGFsOwor6ZG9ID4gZHJpbGw7CivpkbEgPiBzcGFkZTsKK+mRmiA+IGRyaWxsOwor6ZGTID4gc3BlYXI7Civpj7kgPiBjb2luczsKK+mPtSA+IHNwYWRlOwor6Y+mID4gc3BlYXI7Civpj6QgPiBjYXJ2ZTsKK+mPnyA+IHNwYWRlOwor6Y+MID4gc3dvcmQ7Civpj4ggPiBjaGFpbjsKK+mPhyA+IGxhdGhlOwor6Y6sID4gc3RvdmU7CivpjqcgPiBhcm1vcjsKK+mOlyA+IHJpZmxlOwor6Y6NID4gY2hhaW47CivpjbkgPiBzcGFkZTsKK+mNrSA+IGFycm93Owor6Y2kID4gc3BhZGU7CivpjY8gPiBzcGFkZTsKK+mNjSA+IHBsYXRlOwor6Y2JID4gc3Bvb247CivpjIEgPiBpbmdvdDsKK+mLuSA+IHNoYXJwOwor6Yu4ID4gYVwtc2F3Owor6YuyID4gcml2ZXQ7Civpi58gPiBjYXJ2ZTsKK+mLmCA+IHN3b3JkOwor6YqzID4gc2hhcnA7CivpipsgPiBzaGFycDsKK+mKkyA+IHdlaWdoOwor6Ym+ID4gc3BlYXI7CivpibwgPiBwbGF0ZTsKK+mJuCA+IGhpbmdlOwor6YmaID4gcml2ZXQ7CivpiYUgPiBzdGVlbDsKK+mIkiA+IHNwZWFyOwor6YiRID4gcGxhdGU7CivpiIcgPiBhblwtYXg7Civph7wgPiBzd29yZDsKK+mHliA+IGtuaWZlOwor6YeFID4gdGhpY2s7Civph4IgPiBkcmFpbjsKK+mEuyA+IHNwb2lsOwor6YOkID4gY3JhY2s7CivpgasgPiBzcGVlZDsKK+mBnSA+IG1peGVkOwor6YC0ID4gYXJndWU7Civovq4gPiBicmFpZDsKK+i+pCA+IHdvcmRzOwor6L6gID4gY3JpbWU7CivovJMgPiBtb3VybjsKK+i8jyA+IGxpZ2h0Owor6LyIID4gc2hhZnQ7Civou7EgPiB3aGVlbDsKK+i7nCA+IHJlaW5zOwor6LuMID4gdHJhY2s7CivouqEgPiB0cmVhZDsKK+i4hiA+IHNxdWF0Owor6LahID4gcGxhY2U7CivotJwgPiBib290eTsKK+i0kyA+IGJvb3R5Owor6LSLID4gZmFsc2U7Civos5UgPiBicmliZTsKK+izlCA+IGd1ZXN0Owor6LOTID4gZ3Vlc3Q7Civos40gPiBib290eTsKK+izhCA+IGJyaWJlOwor6LOCID4gYnJpYmU7Civosr8gPiB0cmFkZTsKK+iypCA+IHN0ZXBzOwor6LGUID4gcGx1bXA7CivorpkgPiBjaGVlcjsKK+iukyA+IGFsbG93Owor6K6QID4gZW5lbXk7Civoro4gPiBlbmVteTsKK+itmSA+IHRvd2VyOwor6K2MID4gZmFsc2U7CivorYEgPiBub2lzZTsKK+isrCA+IGVycm9yOwor6KyRID4gc2hhbWU7CivorI8gPiBzY29sZDsKK+iroiA+IGpva2VzOwor6KugID4gbm9pc3k7Civoq5AgPiBmYXVsdDsKK+iqqiA+IHNwZWFrOwor6KqoID4gdGVhY2g7CivoqoYgPiBjaGVhdDsKK+ipvyA+IGVycm9yOwor6Km8ID4gdGVhc2U7CivoqawgPiBhYnVzZTsKK+ipoyA+IHJlYWNoOwor6KmhID4gYm9hc3Q7CivoqZsgPiBjdXJzZTsKK+ipliA+IGFyZ3VlOwor6KmRID4gY2hlYXQ7CivoqZAgPiBjaGVhdDsKK+iovSA+IGJsYW1lOwor6KinID4gZmF1bHQ7CivoqJUgPiBhYnVzZTsKK+iokyA+IHRlYWNoOwor6KiPID4gYm9hc3Q7Civop5QgPiBjYXR0eTsKK+imrCA+IGNvdmV0Owor6KaPID4gcnVsZXM7Civopb4gPiBjb3ZlcjsKK+ilqiA+IHNvY2tzOwor6KWiID4gc3RyaXA7CivopY0gPiBtaXhlZDsKK+ikuyA+IGRpcnR5Owor6KS6ID4gZGlydHk7CivopJUgPiBzaGlydDsKK+iitSA+IGxhcGVsOwor6KGVID4gYWxsZXk7CivooYogPiBzbWVhcjsKK+ihgSA+IGJsb29kOwor6KCbID4gZmxpZXM7CivooJcgPiBcKGFwZVwpOwor6KCFID4gZmxpZXM7Civon68gPiB3b3JtczsKK+ifoiA+IGNhdWxrOwor6J2oID4gbG91c2U7CivonZggPiBnZWNrbzsKK+idkyA+IHNuYWlsOwor6Jq0ID4gbGFydmE7CivomaMgPiBjcnVlbDsKK+iZmyA+IGZhbHNlOwor6JiXID4gc3R1bXA7CivomJMgPiB0aHltZTsKK+iYiyA+IGFwcGxlOwor6Je+ID4gc2hhZGU7Civol6ogPiBtYXJzaDsKK+iWliA+IGVtcHR5Owor6JaJID4gZGlydHk7Civokp4gPiByZWFjaDsKK+iRoiA+IGNvdmVyOwor6JGNID4gcGxhbnQ7CivokLkgPiBncmFzczsKK+iOvyA+IHRob3JuOwor6I2zID4gYmVhbnM7Civoja4gPiBncmFzczsKK+iNhCA+IHJvb3RzOwor6IyHID4gZ3Jhc3M7Civoi74gPiBzbWVsbDsKK+iLtiA+IHdlYXJ5Owor6IiXID4gc3RvcmU7CivoiJYgPiBzdG9yZTsKK+iIiyA+IHNwbGl0Owor6IiJID4gcmFpc2U7Civoh70gPiBhXC1waXQ7Civoh7IgPiBqdW1weTsKK+iHoiA+IGRpcnR5Owor6IebID4gYnJvdGg7Civoh5kgPiByb3VnZTsKK+iHkCA+IGJyb3RoOwor6Ia2ID4gbGl2ZXI7CivohocgPiBzd2VsbDsKK+iFqyA+IHN3ZWxsOwor6IWhID4gbGluZXM7CivohLkgPiBzd2VsbDsKK+iEtiA+IGxpbmVzOwor6ISiID4gZmxlc2g7CivohIMgPiBnbGFuZDsKK+iCtSA+IHRhYmxlOwor6IKVID4gdG91Z2g7CivogJ4gPiBmbGFpbDsKK+e/vSA+IHdoaXJyOwor57+EID4gd2luZHM7CivnvrEgPiBzaGVlcDsKK+e+oyA+IGdyb3VwOwor5723ID4gY2Vhc2U7CivnvYkgPiBhXC1wb3Q7CivnursgPiByYW1pZTsKK+e5ryA+IG5vb3NlOwor57muID4gcmVpbnM7CivnuKAgPiBjcmVwZTsKK+e4kCA+IGNyZXBlOwor57iPID4gcHVyc2U7Civnt54gPiBzYXRpbjsKK+e2uSA+IHNrZWluOwor57agID4gZ3JlZW47CivntowgPiBjbG90aDsKK+e1jiA+IGJhc3RlOwor57WBID4gcm91Z2g7CivntL8gPiBjaGVhdDsKK+e0tSA+IHJhbWllOwor57SdID4gd2VhdmU7CivntJcgPiBnYXV6ZTsKK+e0kSA+IGZyZXNoOwor57OUID4ganVpY2U7Civns5MgPiBncmFpbjsKK+eyjiA+IG1ldHJlOwor57GkID4gdGFsbHk7CivnsLsgPiBlbXB0eTsKK+ewmyA+IHNpZXZlOwor57CSID4gdXN1cnA7CivnsIEgPiBzaWV2ZTsKK+evqSA+IHNpZXZlOwor56+PID4gaW5sYXk7CivnrpsgPiBidWdsZTsKK+etsyA+IGZlYXN0Owor562wID4gY2FibGU7CivnraYgPiBhXC1rZXk7Civnq74gPiBmbHV0ZTsKK+erlCA+IGxpdHJlOwor56q9ID4gZW1wdHk7CivnqacgPiBzaGVhZjsKK+epoiA+IGRpcnR5Owor56mgID4gdGhpY2s7CivnqYUgPiBjaGFmZjsKK+eoviA+IGRyYWZ0Owor56iFID4gdGF4ZXM7Civnp4cgPiBza2lsbDsKK+emoCA+IGhhcHB5Owor56aOID4gbHVja3k7CivnpZkgPiBkZW1vbjsKK+ektiA+IGFcLWp1ZzsKK+eksSA+IGdyaW5kOwor56O1ID4gYnJvb2s7Civno68gPiBqZXR0eTsKK+ejoSA+IGNsaWZmOwor56ObID4gY2xpZmY7Civno4ggPiByb2NreTsKK+eiuyA+IHNvbGlkOwor56KvID4gYWdhdGU7CivnoqkgPiBncmVhdDsKK+eigSA+IGNoZXNzOwor56GPID4gZ3JpbmQ7CivnoLMgPiByb2NreTsKK+egoCA+IHJvY2t5Owor55+TID4gZmFpbnQ7Civnn4ggPiBkZW5zZTsKK+eejyA+IHJvdW5kOwor556NID4gYmxpbmQ7CivnnocgPiBjbG9zZTsKK+edmCA+IHJvdW5kOwor55y5ID4gcHVwaWw7CivnnIUgPiBpbmxheTsKK+ebuyA+IGdsYXJlOwor55utID4gY3J1ZWw7Civnmr0gPiBzY3VyZjsKK+eauSA+IGNyYWNrOwor55q4ID4gY3JhY2s7Civnmq0gPiB3aGl0ZTsKK+eaqyA+IHdoaXRlOwor55qcID4gd2hpdGU7CivnmoEgPiBibGFjazsKK+eZsiA+IGNyYXp5Owor55mhID4gc2lsbHk7CivnmKEgPiB0dW1vcjsKK+eYiyA+IGNyYXp5Owor55SeID4gdGFzdGU7CivnlJsgPiBzd2VldDsKK+eUliA+IGFcLXBvdDsKK+eUjiA+IGJyaWNrOwor55OWID4gaW5sYXk7Civnk4ggPiBnbGFzczsKK+eRqiA+IGFnYXRlOwor55GUID4gXChqYWRlOwor55GRID4gY2FydmU7Civnj5YgPiBjYXJhdDsKK+eOiCA+IGJsYWNrOwor542dID4gZGV2aWw7CivnjY4gPiBwcml6ZTsKK+eLtSA+IGJsZW5kOwor54mcID4gYW5cLW94Owor54mUID4gZ2FibGU7CivniJMgPiBmbGFtZTsKK+eIjSA+IHNoaW5lOwor54e/ID4gc2hpbmU7Civnh74gPiBzaGluZTsKK+eHpiA+IHZpdmlkOwor54eZID4gc2NhbGQ7Civnh48gPiBibGF6ZTsKK+eHhCA+IGZsYW1lOwor54eCID4gc21va2U7CivnhpsgPiBibGF6ZTsKK+eGkiA+IHNoaW5lOwor54WsID4gcm9hc3Q7CivnhaIgPiBhbG9uZTsKK+eFiSA+IHNtZWx0Owor54SUID4gZmxhbWU7Civng5MgPiBzdG92ZTsKK+eDiyA+IGJvYXN0Owor54KwID4gcm9hc3Q7CivngqcgPiBhc2hlczsKK+eBoyA+IGFcLWJheTsKK+eBoiA+IG11ZGR5Owor54GUID4gd2F2ZXM7CivngLogPiBzb3VuZDsKK+eAsiA+IHdhdmVzOwor54CPID4gY2xlYXI7CivngIsgPiBqdWljZTsKK+eAhiA+IGRpdGNoOwor54CFID4gY2xlYXI7CivngIEgPiB3YXZlczsKK+a/qyA+IGZsb29kOwor5r6oID4gc2hvcmU7CivmvpcgPiBicm9vazsKK+a+kSA+IHNsaWRlOwor5r6GID4gc3ByYXk7CivmvbcgPiBkcmFpbjsKK+a9nSA+IGFncmVlOwor5ryRID4gd2F0ZXI7CivmvIggPiBzaG9yZTsKK+a5qSA+IG11ZGR5Owor5rmjID4gbWl4ZWQ7CivmuL4gPiBtdWRkeTsKK+a3uCA+IGNsZWFyOwor5reiID4gZGl0Y2g7Civmt5ogPiB0ZWFyczsKK+a3iiA+IGRyb3duOwor5rWlID4gbW9pc3Q7CivmtLQgPiBzb3VuZDsKK+a0miA+IGZsb29kOwor5rSPID4gdGVhcnM7Civms5ogPiBjbGVhcjsKK+aysiA+IGZsb2F0Owor5rGzID4gaGVuYW47CivmsY4gPiBmbG9hdDsKK+awuSA+IGRpdGNoOwor5rClID4geGVub247CivmsJwgPiBjbGVhcjsKK+aukSA+IHN3b29uOwor5q2+ID4gZHJvd247CivmrZUgPiBzcHVydDsKK+atkyA+IGhhcHB5Owor5q2IID4gc29uZ3M7CivmrLwgPiBkcmluazsKK+asuCA+IHNpZ2hzOwor5qysID4gY291Z2g7CivmrJkgPiBzZWRhbjsKK+asliA+IG9saXZlOwor5quxID4geWVhc3Q7Civmq4ggPiBiZW5jaDsKK+aquCA+IGxlbW9uOwor5qqvID4gdGFibGU7CivmqqggPiBtYW5nbzsKK+aqlCA+IHNoZWxmOwor5qi0ID4gc3Rha2U7CivmqJUgPiBzaHJ1YjsKK+aojyA+IHNlZGFuOwor5qiBID4gc3Rha2U7Civmp7wgPiBydWxlczsKK+ankyA+IGxldmVyOwor5qeNID4gc3BlYXI7Civmpr8gPiBhbGRlcjsKK+amriA+IGdsb3J5Owor5qWzID4gcGx1bXM7CivmpYUgPiBidWFyZDsKK+alhCA+IGJsb2NrOwor5qSIID4gY2VkYXI7Civmo4ogPiBjaGVzczsKK+ajgSA+IGpvaXN0Owor5qKyID4gam9pc3Q7CivmopAgPiBmZW5jZTsKK+ahryA+IHRhYmxlOwor5qGtID4gZWF2ZXM7CivmoZogPiBwcmVzczsKK+agtSA+IGhlZGdlOwor5qCrID4gZmVuY2U7CivmoJQgPiBjYXJ2ZTsKK+agjSA+IGFcLWxvdDsKK+aftiA+IGxhZGxlOwor5p2nID4gbWFuZ287CivmnZUgPiBhbG9uZTsKK+acriA+IHNraWxsOwor5pyWID4gY2xlYXI7CivmnIUgPiBicmF2ZTsKK+abtSA+IHRyYWlsOwor5puoID4gdmFndWU7CivmloYgPiB0ZWFjaDsKK+aWhSA+IHRlYWNoOwor5pW6ID4gZXhwZWw7CivmlZQgPiBnYXZlbDsKK+aVjiA+IHRlYWNoOwor5pSsID4gZ3Jhc3A7CivmlJsgPiBodXJyeTsKK+aTuyA+IHNoYWtlOwor5pOyID4gdGhyb3c7Civmk7AgPiBwaW5jaDsKK+aToCA+IGNyb3dkOwor5pKzID4gcHJlc3M7CivmkbMgPiByYWlzZTsKK+aRjyA+IHBvdW5kOwor5pCkID4gc2VpemU7CivmkIogPiBwbHVjazsKK+aQiSA+IGtub2NrOwor5o+1ID4gY2Fycnk7Civmj4UgPiBncmluZDsKK+aOhCA+IHN3aW5nOwor5o2/ID4gcGVyY2g7CivmjasgPiBzdG9rZTsKK+aMjCA+IGZpZ2h0Owor5ouLID4gdGhyb3c7Civmi4MgPiBncm9wZTsKK+aJoiA+IGNhcGVyOwor5oitID4gc3BlYXI7CivmiKMgPiBsYW5jZTsKK+aIniA+IGxhbmNlOwor5oiUID4gc21hbGw7Civmh70gPiBoYXBweTsKK+aHpSA+IGFuZ3J5Owor5oegID4gYW5ncnk7Civmh4wgPiBlbmpveTsKK+aGrSA+IGNsZWFyOwor5oaaID4gZHJlYWQ7CivmhoogPiB0aXJlZDsKK+aFrCA+IGJyYXZlOwor5oWNID4gYW5ncnk7CivmhL4gPiBhbmdlcjsKK+aEtyA+IGVuam95Owor5oSeID4gdGltaWQ7CivmhIMgPiByZWxheDsKK+aCviA+IG5haXZlOwor5oKwID4gZW5qb3k7CivmgoYgPiBoYXBweTsKK+aBtSA+IGZhdm9yOwor5oGTID4gdmV4ZWQ7CivlvZEgPiBzbm91dDsKK+W9kCA+IHNub3V0Owor5b2CID4gaXNzdWU7CivlvIkgPiBsYXJnZTsKK+W7lSA+IHNoYWRlOwor5bmtID4gY292ZXI7CivluaogPiBjb3ZlcjsKK+W5piA+IGNvdmVyOwor5bmgID4gY292ZXI7CivluJIgPiBhXC1iYWc7CivluIsgPiBwYXBlcjsKK+W3rSA+IHN0dWR5Owor5bebID4gcml2ZXI7Civlt5YgPiBjbGlmZjsKK+W3jCA+IGNsaWZmOwor5beLID4gZ3JhbmQ7Civlt4kgPiBzdGVlcDsKK+W3gyA+IGxvZnR5Owor5bawID4gZ29yZ2U7CivltqEgPiB0YWJsZTsKK+W2niA+IHJpZGdlOwor5baUID4gbG9mdHk7CivltocgPiBzdGVlcDsKK+W1nCA+IHJvdWdoOwor5bWSID4gY2xpZmY7CivltYIgPiBsb2Z0eTsKK+W0sSA+IGxvZnR5Owor5bSaID4gaGlsbHk7CivltJUgPiBjbGlmZjsKK+WzvSA+IGdvcmdlOwor5bOpID4gbG9mdHk7CivlsbYgPiBsb2Z0eTsKK+WxtCA+IGxvZnR5Owor5bGqID4gcGVuaXM7CivlsYwgPiBwZW5pczsKK+WwsCA+IHN3ZWxsOwor5bCZID4gc3RpbGw7Civlr6wgPiBicm9hZDsKK+WvmyA+IGJyb2FkOwor5a+BID4gcXVpY2s7CivlrrsgPiBkZW5zZTsKK+WujSA+IGZsZXNoOwor5a2/ID4gdHdpbnM7CivlrZYgPiB0d2luczsKK+WrmiA+IHNjb3JuOwor5aeqID4gbmllY2U7CivlpbAgPiBhbmdlcjsKK+WlrCA+IHByaXplOwor5aWoID4gcHJpemU7CivlpZ0gPiBsYXJnZTsKK+WjoCA+IG1vdW5kOwor5aOfID4gZ3JhdmU7Civlo4YgPiBzdGlmZjsKK+WiuiA+IHdhbGxzOwor5aKzID4gZ3JhdmU7Civlop0gPiBzdG9ueTsKK+WijSA+IHBhaW50Owor5aKIID4gY2xpZmY7CivlobwgPiBicmljazsKK+WhnCA+IGR1c3R5Owor5aGZID4gdHJ1bHk7CivloZIgPiByb29zdDsKK+WhiyA+IGdyYXZlOwor5aGIID4gcGFpbnQ7CivloL8gPiBzYWx0eTsKK+WgvSA+IG1vdW5kOwor5aCWID4gc21hbGw7Civln7MgPiBhXC1waXQ7Civln4wgPiB3YXN0ZTsKK+WfhiA+IHN0b255Owor5Z6aID4gbW91bmQ7Civlnb8gPiBtb3VuZDsKK+WdsCA+IHdpbGRzOwor5ZyMID4gZmVuY2U7Civlm5EgPiBvcmRlcjsKK+WbhSA+IHNtaWxlOwor5ZquID4gZ3VpZGU7Civlmq0gPiBtb3VuZDsKK+WarCA+IGZyb3duOwor5ZqhID4gcm91Z2g7CivlmpAgPiB0YXN0ZTsKK+WahyA+IHNjYXJlOwor5Zm6ID4gc3Rvcnk7CivlmbQgPiBzcHVydDsKK+WZrSA+IHNob3V0Owor5ZmmID4gYmVsY2g7CivlmKIgPiB0aGluZzsKK+WYkiA+IHNoYXJwOwor5ZebID4gcG91Y2g7Civll5kgPiBib2FzdDsKK+WXkCA+IGFsYXNcITsKK+WWtCA+IGhlbGxvOwor5ZWyID4gYVwtZmV3Owor5ZWiID4gb3VuY2U7CivllY0gPiBjcmVhazsKK+WUoSA+IG91bmNlOwor5ZSOID4gc291bmQ7Civlk7YgPiBibGVhdDsKK+WTlSA+IGJlbGNoOwor5ZKiID4gc291bmQ7Civlko0gPiBsYXVnaDsKK+WQsCA+IGNsYW5nOwor5ZCjID4gdm9taXQ7Civlj5ogPiBmYWxzZTsKK+WOuiA+IHRvXC1nbzsKK+WOuSA+IHNwZWFyOwor5Y60ID4gc2hlbGw7CivljqogPiBhXC1odXQ7CivljpYgPiBidWxreTsKK+WNuyA+IHN0aWxsOwor5Y2sID4gbG9mdHk7CivljJwgPiBiYXNpbjsKK+WLuyA+IGVxdWFsOwor5YqUID4gc3dvcmQ7CivlipIgPiBzd29yZDsKK+WKjiA+IHN3b3JkOwor5YmxID4gc3dvcmQ7CivliaAgPiBicmFuZDsKK+WIgiA+IGtuaWZlOwor5Ye8ID4gZGl0Y2g7Civlh4ggPiBjbGVhbjsKK+WGqSA+IHdyaXRlOwor5YanID4gYVwtYnVkOwor5YaaID4gY292ZXI7CivlhpYgPiBjb3ZlcjsKK+WGgSA+IHNtaWxlOwor5YS8ID4gZ3JhdmU7CivlhI4gPiBjYXJyeTsKK+WEjCA+IGx1Y2t5Owor5YO/ID4gc21hbGw7Civlg4QgPiBsaWdodDsKK+WCqyA+IHRpcmVkOwor5YGQID4gZmFsc2U7CivlgYEgPiBzdGF0ZTsKK+WAliA+IGx1Y2t5Owor5L+2ID4gc3RhcnQ7CivkvpAgPiBxdWlldDsKK+S+gSA+IGNyb3dkOwor5L26ID4gZmFpcnk7CivkvYwgPiBzbWFsbDsKK+S8qSA+IHRydXN0Owor5LurID4gdHJpYmU7Civkur4gPiBkZWF0aDsKK+S6sSA+IG5pZ2h0Owor5LmVID4gdGlnZXI7CivkuLUgPiB0aGljazsKK+S4ryA+IGRlbnNlOwor5LiuID4gY2F0Y2g7CivkuIwgPiB0YWJsZTsKK+S4hSA+IHVuZGVyOwor5LiEID4gYWJvdmU7CivktpMgPiByYW1pZTsKK+S2jyA+IHRlYXJzOwor5LaLID4gc291bmQ7CivktocgPiBhXC1yYXQ7CivktoYgPiBhXC1yYXQ7Civkta0gPiBibGFjazsKK+S1pSA+IGJsYWNrOwor5LWfID4gYmxhY2s7CivktLogPiBjYWtlczsKK+S0uSA+IGNha2VzOwor5LS1ID4gY2FrZXM7CivktLIgPiBmbG91cjsKK+S0niA+IHNhbHR5Owor5LO9ID4gY3JhbmU7Civks7EgPiBkdWNrczsKK+SzmCA+IGdvb3NlOwor5LOXID4gZ29vc2U7CivksqEgPiBsb2FjaDsKK+SykSA+IHNwYXduOwor5LGcID4gc2hhcms7CivksZYgPiBzaGFyazsKK+SxiyA+IHNwYXduOwor5LCiID4gZ2hvc3Q7CivksJcgPiBhXC1sb3Q7CivksJIgPiB2YWd1ZTsKK+SwkSA+IGJlYXJkOwor5LCFID4gYmVhcmQ7Civkr74gPiBoYWlyeTsKK+SvuCA+IGFcLXdpZzsKK+SvjSA+IGJvbmVzOwor5K29ID4gZ3JvdXA7CivkraYgPiBjYWtlczsKK+StnyA+IGNha2VzOwor5K2QID4gY2FrZXM7CivkrY4gPiBjYWtlczsKK+SthSA+IGNha2VzOwor5Ky/ID4gc21hbGw7CivkrLUgPiBzeXJ1cDsKK+SsriA+IHN5cnVwOwor5Ku1ID4gdHdpbnM7Civkq5YgPiB0aW1pZDsKK+SrjiA+IHNob3J0Owor5Kq7ID4gYVwtY2FwOwor5KqxID4gY2hlZWs7Civkqq8gPiBzb3VuZDsKK+SqmyA+IGdyb3VwOwor5KqYID4gcmlnaHQ7CivkqpcgPiBzaG9lczsKK+SqgiA+IHJlaW5zOwor5Km6ID4gYm9vdHM7CivkqZYgPiBzaG9lczsKK+SplSA+IGNsb2dzOwor5KmTID4gYm9vdHM7CivkqYUgPiBicm9hZDsKK+SouSA+IHN3aWZ0Owor5Ki3ID4gc2xlZXQ7CivkqJggPiBzbGVldDsKK+SoiyA+IGNydWVsOwor5KiEID4gcXVhaWw7CivkqIEgPiBkdWNrczsKK+SnvSA+IHNtYWxsOwor5KeqID4gc2lzc3k7Civkp44gPiBhXC1waXQ7Civkp4YgPiBhXC1waXQ7Civkpr4gPiBsb2Z0eTsKK+SmoiA+IGJyb2FkOwor5KaeID4gZXh0cmE7CivkppcgPiBxdWlldDsKK+SmlCA+IGFcLXBlZzsKK+SltSA+IGxpbmVzOwor5KWYID4gd3Jvbmc7CivkpZMgPiBhXC1ob2U7CivkpYEgPiBhcm1vcjsKK+SkuiA+IGFuXC1heDsKK+SktCA+IGFybW9yOwor5KSqID4gc2hvcnQ7CivkpKIgPiBtZXRhbDsKK+SknCA+IGJsdW50Owor5KSaID4gcGx1bXM7CivkpJkgPiBkcmVnczsKK+SjsSA+IGRydW5rOwor5KOnID4gYmxhY2s7CivkopQgPiBtaXhlZDsKK+SikSA+IGFuZ3J5Owor5KGWID4gc3RpbGw7CivkoKIgPiB3ZWFyeTsKK+SgoCA+IHRvXC1nbzsKK+SfoCA+IHN3aWZ0Owor5J+cID4gYnJlYWs7CivknoggPiBtb25leTsKK+SdrSA+IHdhZ2VzOwor5J2rID4gbW9uZXk7CivknZIgPiBhXC1zb3c7CivknY8gPiBhXC1zb3c7CivknY4gPiBhXC1waWc7CivknYogPiBhXC1zb3c7CivknYUgPiBhXC1waWc7CivknYMgPiBiZWFuczsKK+SctCA+IGJyYXZlOwor5JyOID4gc291bmQ7CivknI0gPiBzd2VldDsKK+ScjCA+IGNoYW9zOwor5JyKID4gbm9pc2U7Civkm60gPiBhbmdyeTsKK+SboSA+IHdvcmRzOwor5Jq0ID4gYW5nZXI7Civkmp8gPiBob3JuczsKK+SaiSA+IG9cLXNlZTsKK+SYiiA+IGZsaWVzOwor5JeVID4gYmVuZHM7Civklo4gPiB0aWdlcjsKK+SWiyA+IGNydWVsOwor5JaIID4gY3J1ZWw7CivkkrggPiBncmFzczsKK+SSkSA+IGdyYXNzOwor5JGaID4gc3dlZXQ7CivkkZUgPiBhXC1yYXQ7CivkkYEgPiBmYXR0eTsKK+SQrCA+IGNyaXNwOwor5JCdID4gdGhpY2s7CivkkJcgPiBhXC1waWc7CivkkIcgPiBjbGVhcjsKK+SPtSA+IHBsdW1wOwor5I+zID4gb2xlaW47Civkj68gPiBtb2xlczsKK+SPpyA+IGZhdHR5Owor5I+aID4gc21hbGw7CivkjpAgPiBoYWlyeTsKK+SOhyA+IHF1aWNrOwor5I6EID4gaGFpcnk7CivkjaUgPiBzbW9reTsKK+SNjCA+IGFcLWphcjsKK+SMuyA+IHdpbmdzOwor5IyRID4gdGlnaHQ7CivkjJAgPiByb3BlczsKK+SLtSA+IHF1aWNrOwor5IulID4gbGluZXM7Civki5ogPiB3aW5nczsKK+SLmSA+IHJlaW5zOwor5Iq+ID4gcm9wZXM7CivkirsgPiBzaWxreTsKK+SKuSA+IHNtYWxsOwor5IqAID4gcGFzdGU7Civkib8gPiBwYXN0ZTsKK+SJniA+IGFcLWJveDsKK+SIiSA+IGFcLWZhbjsKK+SHsiA+IHRvbmdzOwor5IekID4gc2hhcnA7Civkh4IgPiBmYXVsdDsKK+SGuSA+IGVtcHR5Owor5IacID4gZW1wdHk7CivkhoEgPiBzeXJ1cDsKK+SFtSA+IGNoYWZmOwor5IWZID4gZ3Jhc3M7CivkhZggPiB3aGVhdDsKK+SFhiA+IGRlbnNlOwor5IS+ID4gdGhpY2s7CivkhKUgPiBhXC1nb2Q7CivkhKIgPiBwaW91czsKK+SDrCA+IHJvY2t5Owor5IObID4gY2hhaW47Civkg5kgPiByb2NrczsKK+SDlyA+IHJvY2tzOwor5IK9ID4gcm9ja3M7CivkgrwgPiByb2NrczsKK+SCuiA+IHJvY2tzOwor5IKwID4gcm9ja3M7Civkgq4gPiBzdG9uZTsKK+SCpiA+IHRpcmVkOwor5IKfID4gcm9ja3M7CivkgpYgPiByb2NrczsKK+SClSA+IHNob3J0Owor5IKUID4gc2hvcnQ7CivkgpEgPiBzaG9ydDsKK+SCjyA+IHNob3J0Owor5IGrID4gbXVkZHk7CivkgZ8gPiB3cm9uZzsKK+SBlyA+IGxpZ2h0Owor5IGNID4gYmxpbmQ7CivkgLwgPiBhbmdyeTsKK+SAhyA+IGFcLXBvdDsKK+O/tyA+IHJvdWdoOwor47+uID4gZ3JlZW47Civjv6kgPiBsaWdodDsKK+O/pSA+IHNoaW5lOwor47+kID4gd2hpdGU7Civjv50gPiBzd2VldDsKK+O/lSA+IHVsY2VyOwor476wID4gY2hva2U7CivjvqcgPiBmYXZ1czsKK+O+oSA+IHVsY2VyOwor476aID4gaXRjaHk7CivjvpAgPiB1bGNlcjsKK+O9vyA+IHVsY2VyOwor472hID4gZmllbGQ7CivjvI8gPiBhXC1iYWQ7Civju60gPiBjbGVhcjsKK+O6gyA+IGFcLWRvZzsKK+O5uyA+IHB1cHB5Owor47m3ID4gc3dpbmU7CivjuYsgPiBhXC1jb3c7CivjuYAgPiBhXC1jb3c7CivjuLogPiBhXC1jb3c7CivjuIUgPiBhc2hlczsKK+O4gyA+IGFcLWRvdDsKK+O3vyA+IGZsYW1lOwor47elID4gc3RlYW07Civjt5QgPiBmbGFtZTsKK+O3kSA+IHNtb2tlOwor47eHID4gZ3JlYXQ7CivjtrMgPiBhc2hlczsKK+O2sCA+IGZsYW1lOwor47amID4gYXNoZXM7CivjtpYgPiByYXBpZDsKK+O1uSA+IHdhdmVzOwor47SDID4gdGVhcnM7Civjs7kgPiBmbG9vZDsKK+OzsCA+IGRpdGNoOwor47OuID4gdXJpbmU7Civjs5sgPiBkaXJ0eTsKK+OypyA+IGhhaXJ5Owor47KGID4gbm9pc2U7CivjsLwgPiBncmVlZDsKK+OwqiA+IHNvdW5kOwor47ClID4gbGF1Z2g7CivjsKIgPiBjb3VnaDsKK+OvtyA+IGRhdGVzOwor466lID4gc2FpbHM7CivjrqIgPiBmcnVpdDsKK+OulSA+IGZydWl0Owor46y2ID4gZmxlc2g7CivjrLMgPiBsaWdodDsKK+OspiA+IGJyYXZlOwor46yaID4gbGlnaHQ7CivjrJUgPiBsaWdodDsKK+OsjyA+IGxpZ2h0Owor46yKID4gbGlnaHQ7Civjq7wgPiBjbGVhcjsKK+OruSA+IGxpZ2h0Owor46u2ID4gbGlnaHQ7Civjq7AgPiBsaWdodDsKK+OrqyA+IGNsZWFyOwor46ucID4gbGlnaHQ7Civjq5sgPiBsaWdodDsKK+OrlyA+IHRoaWNrOwor46uVID4gbGlnaHQ7CivjqaEgPiBzaGFrZTsKK++orSA+IGNyYW5lOwor46ibID4gc3dpZnQ7CivjqJcgPiBhbGVydDsKK++ojSA+IHZvbWl0Owor76iLID4gYnJvYWQ7CivvqIMgPiBzdWdhcjsKK+OogyA+IGFcLXJvdzsKK++nuyA+IHJvYXN0Owor76e5ID4gZ3JhaW47Civvp7cgPiBzdGFuZDsKK++nrCA+IGRyb3duOwor76eqID4gbGVhdmU7Civvp50gPiBnYWluczsKK+OnmyA+IHRoaWNrOwor76eXID4gd2hlZWw7Civvp5AgPiBjbGFzczsKK+OnjSA+IGFsaWtlOwor76eLID4gc2xpZGU7Civvpr8gPiBoYXBweTsKK++mvSA+IHVyaW5lOwor46a3ID4gYnJhdmU7Civjpq4gPiBtb25leTsKK++moSA+IHNwZWFrOwor76agID4gc3BsaXQ7CivjpqEgPiBoYXBweTsKK++mnyA+IGZpZXJ5Owor76aZID4gbG90dXM7CivjppggPiBzd2lmdDsKK++mkyA+IHNtZWx0Owor46aRID4gYW5nZXI7CivvpoogPiBwb3dlcjsKK++mgSA+IHdvbWFuOwor46W/ID4gcHJvdWQ7CivjpbcgPiBxdWlldDsKK+OlsiA+IGFuZ2VyOwor76WvID4gc3BlYWs7CivvpaMgPiBub3J0aDsKK++loCA+IGFuZ2VyOwor76WcID4gaGFwcHk7CivjpZMgPiBoYXBweTsKK++ljyA+IHRpcmVkOwor76WNID4gdGVhcnM7CivjpYogPiBhbmdyeTsKK++liCA+IGJyaWJlOwor76WCID4gZ3JhdmU7CivjpYIgPiBxdWljazsKK++kvSA+IGdyZWVuOwor76S7ID4gcm91Z2g7CivvpLogPiBoZXJvbjsKK+OksSA+IGFuZ2VyOwor76SvID4gbGFib3I7CivvpKkgPiBjbGVhcjsKK++koiA+IGZsb29kOwor46SjID4gbm9ibGU7CivjpJwgPiBjcmF6eTsKK++kmSA+IGNyZWFtOwor46SZID4gZ3JhY2U7CivvpJYgPiBicmFuZDsKK++klCA+IGhhcHB5Owor46OyID4gc21hbGw7Civjo58gPiB0b1wtZ287Civjo48gPiBzdGlsbDsKK+OjiSA+IGxhYm9yOwor46KbID4gc21hbGw7CivjopkgPiBhXC1odXQ7CivjobYgPiBkd2VsbDsKK+OhtCA+IHNvdW5kOwor46GVID4gc2hhcnA7CivjoZAgPiBmbGFnczsKK+OhjCA+IGFcLWhhdDsKK+OhhyA+IGNvbGFyOwor46GEID4gY29sYXI7CivjoKogPiBncmVhdDsKK+OglSA+IGxvZnR5Owor46CNID4gbG9mdHk7Civjn7UgPiByaWRnZTsKK+OfriA+IGxvZnR5Owor45+gID4gcmlkZ2U7Civjn4UgPiBsb2Z0eTsKK+OfgSA+IHNob3JlOwor456+ID4gYVwtbnVuOwor456ZID4gdXJpbmU7CivjnpUgPiBjaGlwczsKK+OekiA+IGx1c3R5Owor456PID4gc21hbGw7CivjnoMgPiB0aXJlZDsKK+OdvSA+IHNob3J0Owor4526ID4gc21hbGw7CivjnaQgPiBuaWdodDsKK+OdoyA+IHN0aWxsOwor452cID4gbmlnaHQ7CivjnZYgPiByaWdodDsKK+OdlSA+IHBlYWNlOwor452PID4gYWxvbmU7CivjnYcgPiBxdWFpbDsKK+OcvSA+IGNoaWxkOwor45ynID4gcGx1bXA7CivjnJwgPiBwcm91ZDsKK+ObqCA+IGNoYW9zOwor45uaID4gZXF1YWw7Civjm4MgPiBjbGVhbjsKK+ObgSA+IHF1aWNrOwor45quID4gaGFwcHk7CivjmpUgPiBncmVhdDsKK+OagCA+IGxvZnR5Owor45mvID4gc2tpbGw7CivjmaUgPiBtdWRkeTsKK+OZkyA+IGVhcnRoOwor45mEID4gYmVsb3c7CivjmIsgPiBzb3VuZDsKK+OXhSA+IGFuZ3J5Owor45akID4gd3JhdGg7CivjlpQgPiBzaWxseTsKK+OWjyA+IGFuZ3J5Owor45aAID4gc291bmQ7CivjlbMgPiBub2lzeTsKK+OVliA+IHBsYWluOwor45WOID4gY2F2ZXM7CivjlYEgPiBzdGlsbDsKK+OUuyA+IGdyZWF0Owor45O7ID4gdG91Z2g7Civjk50gPiBhXC1sYXc7Civjk5wgPiB5b3VuZzsKK+OTmyA+IG1lcml0Owor45OZID4gY3J1ZWw7Civjk5cgPiBjbGVhbjsKK+OTgSA+IGFcLW5ldDsKK+OSqSA+IG5ha2VkOwor45KMID4gYWxvbmc7CivjkbYgPiBhbmdlcjsKK+ORqSA+IHNtYXJ0Owor45GoID4gZ3JlYXQ7CivjkaYgPiBhbmdlcjsKK+ORlyA+IGFcLWdvZDsKK+ORiyA+IHNtYWxsOwor45GBID4gc2hvcnQ7CivjkLEgPiBidXNoeTsKK+OQqyA+IGNydWVsOwor5pyJID4gaGF2ZTsKK+efpSA+IGtub3c7Civov5kgPiB0aGlzOwor55+cID4gcGl0eTsKK+W/mSA+IGJ1c3k7CivmnaUgPiBjb21lOwor6L+RID4gbmVhcjsKK+mBkyA+IHBhdGg7CivkuZ8gPiBhbHNvOwor5pe2ID4gdGltZTsKK+W5tCA+IHllYXI7CivnnrsgPiBsb29rOwor6L66ID4gZWRnZTsKK+WwsSA+IGp1c3Q7CivpgqMgPiB0aGF0Owor55SfID4gbGlmZTsKK+iHqiA+IHNlbGY7CivnnqwgPiB3aW5rOwor6L+HID4gcGFzczsKK+W+qiA+IG9iZXk7Civlvp4gPiBmcm9tOwor5b6TID4gZnJvbTsKK+WkmiA+IG11Y2g7Civlpb0gPiBnb29kOwor5b28ID4gdGhhdDsKK+i1tyA+IHJpc2U7Civlj6ogPiBvbmx5Owor5L2cID4gbWFrZTsKK+W9kyA+IGJlYXI7CivlvaIgPiBmb3JtOwor55yLID4gbG9vazsKK+W8gCA+IG9wZW47CivmiYsgPiBoYW5kOwor5byxID4gd2VhazsKK+acrCA+IHJvb3Q7CivlpLQgPiBoZWFkOwor55yfID4gcmVhbDsKK+mdoiA+IGZhY2U7CivlhawgPiBmYWlyOwor5ZCMID4gc2FtZTsKK+ecniA+IHJlYWw7Civku44gPiBmcm9tOwor5YqoID4gbW92ZTsKK+mVvyA+IGxvbmc7CivovIkgPiBsb2FkOwor5bCGID4gd2lsbDsKK+S9hiA+IG9ubHk7CivouqsgPiBib2R5Owor6auYID4gaGlnaDsKK+aKiiA+IGhvbGQ7CivmraQgPiB0aGlzOwor5a6eID4gcmVhbDsKK+ebpSA+IHdhc2g7CivmnIggPiBtb29uOwor56eNID4gc2VlZDsKK+i7jSA+IGFybXk7Civou4ogPiBjYXJ0Owor5bexID4gc2VsZjsKK+mDqCA+IHBhcnQ7CivlkI0gPiBuYW1lOwor55quID4gc2tpbjsKK+acuiA+IGRlc2s7Civnu5kgPiBnaXZlOwor562JID4gcmFuazsKK+W6pyA+IHNlYXQ7CivlvoggPiB2ZXJ5Owor5pyAID4gbW9zdDsKK+W6lyA+IHNob3A7Civouo0gPiBza2lwOwor6LWwID4gd2FsazsKK+WbmyA+IGZvdXI7Civpl6ggPiBnYXRlOwor5LicID4gZWFzdDsKK+W6gSA+IGhhbGw7Civopb8gPiB3ZXN0Owor5bmzID4gZmxhdDsKK+eZuyA+IHJpc2U7CivlkKwgPiBoZWFyOwor5bm4ID4gbHVjazsKK+i5tCA+IGtpY2s7CivlhpsgPiBhcm15Owor5LqUID4gZml2ZTsKK+W4tyA+IHRlbnQ7CivlpKogPiB2ZXJ5Owor5bi2ID4gYmVsdDsKK+W4syA+IHRlbnQ7CivluK8gPiBiZWx0Owor5L2TID4gYm9keTsKK+W4rSA+IHNlYXQ7CivluIwgPiByYXJlOwor6LiKID4gbGVhcDsKK+S5piA+IGJvb2s7CivkuZ0gPiBuaW5lOwor6LezID4ganVtcDsKK+i3ryA+IHJvYWQ7Civlkb0gPiBsaWZlOwor55epID4gdGhpbjsKK+a0uyA+IGxpdmU7Civlt6YgPiBsZWZ0Owor5bejID4gbmVzdDsKK+ihqCA+IHNob3c7Civot58gPiBoZWVsOwor6L2mID4gY2FydDsKK+eXmyA+IHBhaW47Civnl5UgPiBzY2FyOwor55eSID4gaXRjaDsKK+aEnyA+IGZlZWw7CivotrMgPiBmb290Owor6YeRID4gZ29sZDsKK+S9lSA+IHdoYXQ7Civltq4gPiBoaWdoOwor5pu0ID4gbW9yZTsKK+eWiyA+IHJvbGw7CivlgZogPiB3b3JrOwor6K6hID4gcGxhbjsKK+eVtiA+IGJlYXI7CivnjosgPiBraW5nOwor5ZCEID4gZWFjaDsKK+eVmSA+IHN0b3A7CivnlY8gPiBmZWFyOwor6L65ID4gZWRnZTsKK+eUtyA+IG1hbGU7Civpo44gPiB3aW5kOwor5bSXID4gcG9zdDsKK+avmyA+IGhhaXI7Civls7AgPiBwZWFrOwor54ixID4gbG92ZTsKK+eTpiA+IHRpbGU7Civos6MgPiBzZWxsOwor6LODID4gcmVudDsKK+iyuCA+IGxlbmQ7CivlsrggPiBiYW5rOwor57uTID4ga25vdDsKK+WyrCA+IGNhcGU7CivmtYEgPiBmbG93Owor6LKnID4gcG9vcjsKK+mdkiA+IGJsdWU7CivnrqEgPiBwaXBlOwor6LKgID4gbG9hZDsKK+i/niA+IGpvaW47CivpmJ8gPiB0ZWFtOwor5bimID4gYmVsdDsKK+WxlSA+IG9wZW47CivlsZEgPiBiaXRzOwor6aKGID4gbmVjazsKK+WxiCA+IGJlbmQ7CivlsYUgPiBsaXZlOwor5bC+ID4gdGFpbDsKK+WNiiA+IGhhbGY7CivlgJkgPiB3YWl0Owor5q2lID4gc3RlcDsKK+a3sSA+IGRlZXA7CivljLogPiBhcmVhOwor5bCLID4gc2VlazsKK+axgiA+IHNlZWs7CivnkIMgPiBiYWxsOwor5ZGKID4gdGVsbDsKK+WvuCA+IGluY2g7Civlr6YgPiByZWFsOwor5ruhID4gZmlsbDsKK+adjiA+IHBsdW07Civmga8gPiByZXN0Owor5a+SID4gY29sZDsKK+WvhCA+IHNlbmQ7CivohLggPiBmYWNlOwor5a6/ID4gc3RvcDsKK+WPliA+IHRha2U7CivlrqQgPiByb29tOwor5a6fID4gcmVhbDsKK+WumyA+IHNlZW07CivlrakgPiBiYWJ5Owor5bm/ID4gd2lkZTsKK+eOiSA+IGphZGU7CivnjoQgPiBkZWVwOwor54GrID4gZmlyZTsKK+iugCA+IHJlYWQ7Civorb0gPiBmYW1lOwor5YiZID4gcnVsZTsKK+mmliA+IGhlYWQ7CivlpLEgPiBsb3NlOwor5ou/ID4gdGFrZTsKK+aWryA+IHRoaXM7Civor7sgPiByZWFkOwor5YyFID4gd3JhcDsKK+eMtiA+IGxpa2U7CivokL0gPiBmYWxsOwor5rWOID4gaGVscDsKK+WWnCA+IGxpa2U7CivorKEgPiBzaW5nOwor57yWID4ga25pdDsKK+iwiCA+IHRhbGs7Civmi4kgPiBwdWxsOwor6KyAID4gcGxhbjsKK+eLvCA+IHdvbGY7CivmnYAgPiBraWxsOwor5qC5ID4gcm9vdDsKK+WrjCA+IGhhdGU7Civoq4cgPiB0YWxrOwor5YWLID4gZ3JhbTsKK+eKtiA+IGZvcm07CivnpLogPiBzaG93Owor5YayID4gc29hcjsKK+iqrSA+IHJlYWQ7CivoqokgPiBmYW1lOwor5o6oID4gcHVzaDsKK+ensCA+IGNhbGw7CivoqaYgPiB0ZXN0Owor5Y+3ID4gbWFyazsKK+S6miA+IGFzaWE7CivmuK8gPiBwb3J0Owor6IisID4gc29ydDsKK+eIqiA+IGNsYXc7CivliJogPiBoYXJkOwor6ZmGID4gbGFuZDsKK+ehriA+IHN1cmU7CivoqIggPiBwbGFuOwor5YW3ID4gdG9vbDsKK+WogSA+IHBvbXA7CivluK4gPiBoZWxwOwor57q/ID4gbGluZTsKK+inpiA+IGJ1dHQ7Civop5IgPiBob3JuOwor54eSID4gYnVybjsKK+iKgiA+IGtub3Q7Civnh4MgPiBidXJuOwor5bKBID4geWVhcjsKK+WmuyA+IHdpZmU7CivpnIAgPiBuZWVkOwor6YWSID4gd2luZTsKK+mTgSA+IGlyb247CivoppcgPiBwZWVrOwor6Ze7ID4gaGVhcjsKK+aghyA+IG1hcms7CivljLsgPiBjdXJlOwor6KWyID4gcmFpZDsKK+eFriA+IGNvb2s7CivlnJ8gPiBzb2lsOwor6L2vID4gc29mdDsKK+eFpCA+IGNvYWw7Civku4UgPiBvbmx5Owor5aWXID4gY2FzZTsKK+aItyA+IGRvb3I7CivnhLwgPiBidXJuOwor6aG5ID4gbmVjazsKK+iDjCA+IGJhY2s7CivnhJogPiBidXJuOwor5pqXID4gZGFyazsKK+mhuyA+IG11c3Q7Civoo70gPiBtYWtlOwor6KO4ID4gYmFyZTsKK+WjsiA+IHNlbGw7CivmoJEgPiB0cmVlOwor5rKJID4gc2luazsKK+iBjCA+IGR1dHk7Civnu4YgPiBmaW5lOwor6KOcID4gbWVuZDsKK+WBnCA+IHN0b3A7CivliqkgPiBoZWxwOwor5Ya3ID4gY29sZDsKK+WiriA+IGZhbGw7Civoh7QgPiBzZW5kOwor5pyoID4gdHJlZTsKK+iioiA+IHJvYmU7Civml4EgPiBzaWRlOwor54KKID4gY29vazsKK+eBvCA+IGJ1cm47CivlobUgPiBkdXN0Owor5aGpID4gc2FsdDsKK+atjCA+IHNvbmc7CivloIIgPiBoYWxsOwor6K+VID4gdGVzdDsKK+eBjCA+IHBvdXI7CivpqowgPiB0ZXN0Owor5aGAID4gd2FsbDsKK+atoiA+IHN0b3A7CivloLUgPiB3YWxsOwor5aCkID4gZGlrZTsKK+WglSA+IGZhbGw7CivmgbYgPiBldmlsOwor5aCGID4gaGVhcDsKK+aFoiA+IHNsb3c7CivloIUgPiBoYXJkOwor5aCAID4gY2F2ZTsKK+ifuyA+IGFudHM7Civol48gPiBoaWRlOwor6LSfID4gbG9hZDsKK+WfiyA+IGJ1cnk7CivmvrkgPiBjYWxtOwor5Z6iID4gZGlydDsKK+iejSA+IG1lbHQ7Civmva4gPiB0aWRlOwor5Z2mID4gZmxhdDsKK+a9nCA+IGhpZGU7CivmlZEgPiBzYXZlOwor5LidID4gc2lsazsKK+m9iiA+IGV2ZW47CivpvLsgPiBub3NlOwor5rysID4gc29hazsKK+m8kyA+IGRydW07CivmsLggPiBsb25nOwor5ryPID4gbGVhazsKK+W9lSA+IGNvcHk7CivpgYcgPiBtZWV0Owor5ru/ID4gZmlsbDsKK+iIuSA+IHNoaXA7Civpu7QgPiBtb2xkOwor5ru0ID4gZHJpcDsKK+mbqCA+IHJhaW47Civom5kgPiBmcm9nOwor5ruRID4gc2xpcDsKK+m6uyA+IGhlbXA7CivomqQgPiBmbGVhOwor6b2QID4gZXZlbjsKK+a6liA+IHJ1bGU7CivmuowgPiBwb3VyOwor5YWFID4gZmlsbDsKK+m5vyA+IGRlZXI7Civlr7sgPiBzZWVrOwor5a6BID4gY2FsbTsKK+m5vSA+IHNhbHQ7CivmspkgPiBzYW5kOwor5Y2WID4gc2VsbDsKK+mhuiA+IG9iZXk7CivomZ8gPiBtYXJrOwor5ZaEID4gZ29vZDsKK+WZmyA+IGJpdGU7Civoia8gPiBnb29kOwor5Z2aID4gaGFyZDsKK+WZgiA+IG1lZXQ7Civmi40gPiBjbGFwOwor5o6JID4gdHVybjsKK+a4iCA+IGhlbHA7Civlk60gPiB3ZWVwOwor5ZiGID4gc2lnaDsKK+WNiCA+IG5vb247CivljaEgPiBjYXJkOwor6ZuqID4gc25vdzsKK+a3tSA+IGd1bGY7Civmt6EgPiB3ZWFrOwor5ZefID4gc2lnaDsKK+a3kSA+IGdvb2Q7Civol40gPiBibHVlOwor5reLID4gZHJpcDsKK+a2vCA+IGNvb2w7Civovb0gPiBsb2FkOwor5Yi6ID4gc3RhYjsKK+iWqiA+IGZ1ZWw7CivplIAgPiBtZWx0Owor6bG8ID4gZmlzaDsKK+WWmiA+IGNhbGw7CivllpggPiBwYW50Owor55uYID4gdHJheTsKK+iWlCA+IHJvc2U7CivllocgPiBob3JuOwor6JaEID4gdGhpbjsKK+WVvCA+IHdlZXA7CivmnrYgPiByYWNrOwor5rW4ID4gc29hazsKK+asviA+IGl0ZW07CivmtaogPiB3YXZlOwor6JWpID4gcG9uZDsKK+a0qiA+IHZhc3Q7CivplYcgPiB0b3duOwor5rWEID4gcHVyZTsKK+aXhSA+IHRyaXA7CivllL4gPiBzcGl0Owor5ZSxID4gc2luZzsKK+iUtSA+IGhpZGU7CivllK8gPiBvbmx5Owor5rSpID4gbGVhazsKK+a0niA+IGNhdmU7CivpqqggPiBib25lOwor5rSXID4gd2FzaDsKK+WUliA+IGR1bWI7CivptIkgPiBjcm93Owor5ZSHID4gbGlwczsKK+azsyA+IGRpdmU7Civlk7IgPiB3aXNlOwor5ZOpID4gbWlsZTsKK+WimSA+IHdhbGw7CivlnKMgPiBob2x5Owor6bOlID4gYmlyZDsKK+i3gyA+IHNraXA7CivmmZMgPiBkYXduOwor5rOEID4gbGVhazsKK+makCA+IGhpZGU7CivokrwgPiBibHVlOwor5oGQID4gZmVhcjsKK+ayvCA+IGxha2U7Civku5ggPiBnaXZlOwor5Y6FID4gaGFsbDsKK+WSrCA+IGJpdGU7Civohb8gPiBsZWdzOwor5rKWID4gcG91cjsKK+ehrCA+IGhhcmQ7CivmsoggPiBzaW5rOwor5ZSuID4gc2VsbDsKK+mBlyA+IGxvc2U7CivmjqIgPiBmaW5kOwor6JGsID4gYnVyeTsKK+e8kyA+IHNsb3c7CivokaYgPiByZWVkOwor5rGgID4gcG9vbDsKK+eDpyA+IGJ1cm47CivokYkgPiBsZWFmOwor5p2fID4gYmluZDsKK+WRhiA+IGR1bGw7CivlkLsgPiBraXNzOwor5ZC5ID4gYmxvdzsKK+S8kSA+IHJlc3Q7Civlj7kgPiBzaWdoOwor5rCPID4gY2xhbjsKK+etviA+IHNpZ247CivmsIggPiBmZWx0Owor5aW2ID4gbWlsazsKK+avrCA+IGJhbGw7Civoj6kgPiBoZXJiOwor5Y+iID4gYnVzaDsKK+aMgiA+IGhhbmc7CivoiKogPiBzYWlsOwor5q+YID4gaGVscDsKK+aLsyA+IGZpc3Q7CivkuZggPiByaWRlOwor6KKBID4gcm9iZTsKK+WdgCA+IHNpdGU7Civmr4YgPiBiZWF0Owor5q6/ID4gaGFsbDsKK+auuiA+IGtpbGw7CivmoLggPiBzZWVkOwor6KGlID4gbWVuZDsKK+i1niA+IGhlbHA7CivkuqYgPiBhbHNvOwor5q2zID4geWVhcjsKK+aflCA+IHNvZnQ7CivmrakgPiBzdGVwOwor5oOcID4gcGl0eTsKK+mtmiA+IGZpc2g7CivmrY4gPiBzaWdoOwor6a2CID4gc291bDsKK+S5lCA+IHRhbGw7Civnsq4gPiBmb29kOwor6IyrID4gdmFzdDsKK+iwiyA+IHBsYW47CivmlY8gPiBmYXN0Owor6IyOID4gc3RlbTsKK+mbtiA+IHplcm87CivojaEgPiBwb25kOwor5Yu+ID4gaG9vazsKK+eKuSA+IGxpa2U7Civpq64gPiBoYWlyOwor6auqID4gaGFpcjsKK+S5gyA+IHRoZW47CivmiqwgPiBsaWZ0Owor6auUID4gYm9keTsKK+iLlCA+IG1vc3M7Civli5UgPiBtb3ZlOwor5ZCvID4gb3BlbjsKK+WGkiA+IHJpc2s7CivnqbcgPiBwb29yOwor5qqjID4gbWFzdDsKK+S+pyA+IHNpZGU7Civml6YgPiBkYXduOwor57qvID4gcHVyZTsKK+mXrSA+IHNodXQ7Civlh4kgPiBjb29sOwor56KXID4gYm93bDsKK+WJpSA+IHBlZWw7Civmu5ogPiB0dXJuOwor5ramID4gc29mdDsKK+WJmyA+IGhhcmQ7CivpqZcgPiB0ZXN0Owor5YmHID4gcnVsZTsKK+iTnSA+IGJsdWU7CivmqLkgPiB0cmVlOwor6JuLID4gZWdnczsKK+S/gyA+IHVyZ2U7CivpopwgPiBmYWNlOwor6LSrID4gcG9vcjsKK+adsCA+IGhlcm87CivoiJ8gPiBib2F0Owor6aiTID4gdGVzdDsKK+aBiyA+IGxvdmU7Civov58gPiBsYXRlOwor56m0ID4gY2F2ZTsKK+i1liA+IHJlbHk7Civpp5sgPiBzYWlsOwor6aeSID4gY29sdDsKK+WHjCA+IHB1cmU7CivkuYwgPiBjcm93Owor5bKXID4gcG9zdDsKK+mTuiA+IHNob3A7CivpprQgPiB0YW1lOwor5LyNID4gZml2ZTsKK+i6siA+IGhpZGU7CivnrrEgPiBjYXNlOwor5biQID4gdGVudDsKK+iGnSA+IGtuZWU7CivohpogPiBza2luOwor5oKJID4ga25vdzsKK+WGjCA+IGJvb2s7CivlhoogPiBib29rOwor55uIID4gZmlsbDsKK+aLliA+IGRyYWc7CivmmI8gPiBkdXNrOwor5oiSID4gd2FybjsKK+mhtSA+IHBhZ2U7CivlsJggPiBkdXN0Owor6ISjID4gbGlwczsKK+S6lSA+IHdlbGw7CivmsaogPiB2YXN0Owor6ISHID4gcmliczsKK+iEhSA+IHJpYnM7CivmgbAgPiBqdXN0Owor5qSAID4gYm93bDsKK+aPjyA+IGNvcHk7CivkuY8gPiBsYWNrOwor6IOeID4gd29tYjsKK+ajmiA+IHRlbnQ7CivmgJwgPiBwaXR5Owor5L2zID4gZ29vZDsKK+m4nyA+IGJpcmQ7Civlg4UgPiBvbmx5Owor6aKoID4gd2luZDsKK+aiqCA+IHBlYXI7CivlvK8gPiBiZW5kOwor5LqPID4gbG9zZTsKK+WCkSA+IGhlcm87CivphbggPiB0YXJ0Owor6IG9ID4gaGVhcjsKK+iBtyA+IGR1dHk7CivmobYgPiBwYWlsOwor6IG0ID4gaGVhcjsKK+eYpiA+IHRoaW47CivlgbQgPiBzaWRlOwor57upID4gc3BpbjsKK+iBniA+IGhlYXI7CivogZYgPiBob2x5Owor6aGUID4gZmFjZTsKK+mhjyA+IGZhY2U7CivnibUgPiBkcmFnOwor6aC8ID4gcmVseTsKK+ennyA+IHJlbnQ7CivpoLggPiBuZWNrOwor5omtID4gdHVybjsKK+mgrSA+IGhlYWQ7Civmk6YgPiB3aXBlOwor5q63ID4gbWFueTsKK+mgmiA+IG5lY2s7CivpoJggPiBuZWNrOwor55u8ID4gbG9vazsKK+WQnyA+IHNpbmc7CivogJUgPiBwbG93Owor6IuNID4gYmx1ZTsKK+mghiA+IG9iZXk7CivpoIUgPiBuZWNrOwor5a6PID4gd2lkZTsKK+mggSA+IHBhZ2U7CivlqIMgPiBiYWJ5Owor5pqWID4gd2FybTsKK+mUgSA+IGxvY2s7CivnoI0gPiBoYWNrOwor5L+CID4gYmluZDsKK+aMqCA+IG5lYXI7CivmhYggPiBraW5kOwor5765ID4gc291cDsKK+e+riA+IHNvdXA7Civpnq0gPiB3aGlwOwor576oID4gZW52eTsKK+eqnSA+IG5lc3Q7CivmnZwgPiBzdG9wOwor5pKkID4gb21pdDsKK+S+hiA+IGNvbWU7CivmnbEgPiBlYXN0Owor5625ID4gY2hpcDsKK+eogCA+IHJhcmU7CivmnZYgPiBjYW5lOwor5ouoID4gbW92ZTsKK+i4oiA+IGtpY2s7Civov4EgPiBtb3ZlOwor5L2HID4gd2FpdDsKK+iirSA+IHJhaWQ7CivpqbYgPiBzYWlsOwor6ZywID4gaGFpbDsKK+aDpyA+IGZlYXI7Civnur0gPiBrbm90Owor5LibID4gYnVzaDsKK+aCoCA+IGxvbmc7Civmm7wgPiBsb25nOwor5pu4ID4gYm9vazsKK+e8oCA+IHdyYXA7Civmu4sgPiBncm93Owor56KnID4gamFkZTsKK+WUpCA+IGNhbGw7Civog4EgPiByaWJzOwor6LCxID4gbGlzdDsKK+masSA+IGhpZGU7CivkuJggPiBoaWxsOwor5LqeID4gYXNpYTsKK+e6kiA+IHdyYXA7CivmnYYgPiBwb2xlOwor57qPID4gd3JhcDsKK+maiiA+IHRlYW07CivmgqwgPiBoYW5nOwor6ZqIID4gY292ZTsKK+W0lCA+IGhpZ2g7CivnuoIgPiBlZGl0Owor5ZSJID4gYWxhczsKK+aagSA+IGRhd247CivnrLwgPiBjYWdlOwor6Zm4ID4gbGFuZDsKK+e5qiA+IGRyYXc7CivnuakgPiByb3BlOwor5oWoID4gc2lnaDsKK+S5lyA+IHJpZGU7Civnu7MgPiByb3BlOwor5pmCID4gdGltZTsKK+efvyA+IG1pbmU7CivpgaMgPiBzZW5kOwor6ZWWID4gZGFydDsKK+mBtSA+IG9iZXk7CivlhYYgPiBvbWVuOwor6ZKTID4gZmlzaDsKK+aKqyA+IHdlYXI7CivmmIcgPiByaXNlOwor57iEID4gcm9wZTsKK+aYgiA+IHJpc2U7Civnt6kgPiBzbG93Owor57eoID4ga25pdDsKK+aKhCA+IGNvcHk7CivlgLogPiBkZWJ0Owor6IKkID4gc2tpbjsKK+athyA+IHJlc3Q7CivplosgPiBvcGVuOwor6ZaJID4gc2h1dDsKK+aWiSA+IGV2ZW47CivmloMgPiBraWxsOwor572VID4gcmFyZTsKK+mWgCA+IGdhdGU7CivplbcgPiBsb25nOwor6LS3ID4gbGVuZDsKK+e1tSA+IGRyYXc7CivpooggPiBuZWNrOwor57WyID4gc2lsazsKK+iEliA+IG5lY2s7CivloKEgPiBmb3J0Owor57WoID4gc2lsazsKK+e1piA+IGdpdmU7CivotZAgPiBnaXZlOwor6aKCID4gbGF1ZDsKK+e1kCA+IGtub3Q7CivnoJYgPiB0aWxlOwor57WGID4gbG9vcDsKK+WTkSA+IGR1bWI7CivntLAgPiBmaW5lOwor5rupID4gYmFuazsKK+mSiSA+IG5haWw7Civlk4QgPiBjb2F4Owor6ZODID4gYmVsbDsKK+e0lCA+IHB1cmU7CivntJAgPiBrbm90Owor57SLID4gbGluZTsKK+aLmiA+IHJpc2s7Civns7ggPiBzaWxrOwor57OnID4gZm9vZDsKK+WlkSA+IGRlZWQ7Civmh5IgPiBsYXp5Owor54yOID4gaHVudDsKK+W1qSA+IGhpZ2g7Civnm5AgPiBzYWx0Owor5pG6ID4gZm9sZDsKK+exoCA+IGNhZ2U7CivpmbUgPiBoaWxsOwor6KO5ID4gd3JhcDsKK+e7mCA+IGRyYXc7CivpkLUgPiBpcm9uOwor6ZChID4gaXJvbjsKK+evrSA+IGNhZ2U7Civnr6QgPiBkZWVwOwor5oy9ID4gcHVsbDsKK+eyuSA+IHB1cmU7Civnr4AgPiBrbm90Owor5o6jID4gZHJhZzsKK+aOmyA+IGhhbmc7CivpjpYgPiBsb2NrOwor566LID4gbm90ZTsKK+aNsiA+IGN1cmw7Civms7wgPiBwb3VyOwor56eDID4gYmFsZDsKK+mMsiA+IGNvcHk7Civnu5EgPiBiaW5kOwor6bitID4gZHVjazsKK+aOgCA+IGxpZnQ7CivnurkgPiBsaW5lOwor6LafID4gdGltZTsKK+WQvCA+IHJvYXI7CivnqrogPiBwZWVwOwor56q2ID4gcG9vcjsKK+WPoCA+IHBpbGU7CivllbggPiByb2FyOwor56quID4gcG9vcjsKK+mKkSA+IG1pbGw7CivlqbQgPiBiYWJ5Owor6LqsID4gYm9keTsKK+avmSA+IGtpbGw7CivpgLggPiBmbGVlOwor55C8ID4gamFkZTsKK+mJhCA+IGlyb247CivmjKogPiBtb3ZlOwor5pmMID4gbm9vbjsKK+aIuCA+IGRvb3I7CivpiLQgPiBiZWxsOwor56ixID4gY2FsbDsKK+i0sSA+IG1lYW47CivnqK4gPiBzZWVkOwor6ZKpID4gaG9vazsKK+aIgCA+IGxvdmU7Civmh7wgPiBmZWFyOwor5oe4ID4gaGFuZzsKK+mHoyA+IGZpc2g7Civph5ggPiBuYWlsOwor6bimID4gY3JvdzsKK+eLriA+IGxpb247Civlpq4gPiBtYWlkOwor56a/ID4gYmFsZDsKK+eqkSA+IGtpbG47CivloZggPiBwb25kOwor57qkID4gZmluZTsKK+mGqyA+IGN1cmU7CivmhqkgPiByZXN0Owor5oaQID4gcGl0eTsKK+aGjiA+IGhhdGU7CivnvqEgPiBlbnZ5Owor5oW+ID4gbHVzdDsKK+eltyA+IHByYXk7CivoiIYgPiBjYXJ0Owor56WIID4gcHJheTsKK+WrqSA+IHNvZnQ7CivouYQgPiBob29mOwor5oSbID4gbG92ZTsKK+mEmSA+IG1lYW47Civmg6EgPiBldmlsOwor5rKnID4gYmx1ZTsKK+eiuiA+IHN1cmU7CivmgqogPiBldmlsOwor5biGID4gc2FpbDsKK+a2tSA+IHNvYWs7CivpgoogPiBlZGdlOwor5r6hID4gd2FzaDsKK+mBuiA+IGxvc2U7CivpgbIgPiBsYXRlOwor54OkID4gYmFrZTsKK+WzuyA+IGhpZ2g7CivpgY4gPiBwYXNzOwor6YGLID4gbHVjazsKK+WwrCA+IGxpbXA7CivpgYUgPiBsYXRlOwor6YGBID4gaGlkZTsKK+mAsSA+IHdlZWs7CivkvZEgPiBoZWxwOwor6YCjID4gam9pbjsKK+aAoCA+IGlkbGU7CivpgJkgPiB0aGlzOwor56CCID4gc2FuZDsKK+iDtiA+IGdsdWU7CivosKMgPiBzaW5nOwor5qKzID4gY29tYjsKK+elgSA+IHByYXk7CivllaQgPiBiZWVyOwor6ZO4ID4gbWVsdDsKK+i6ryA+IGJvZHk7Civphb8gPiBicmV3Owor5o2jID4gaHVsbDsKK+eOqyA+IHJvc2U7CivlmaIgPiBtb2FuOwor57q6ID4gc3BpbjsKK+eqnyA+IGhvbGU7CivlhZEgPiBjYXNoOwor5YalID4gZGFyazsKK+inhSA+IHNlZWs7CivmsrggPiBib2lsOwor5omBID4gZmxhdDsKK+ecqCA+IHdpbms7CivnmL4gPiByYXNoOwor6buvID4gZGFyazsKK+WmniA+IGdpcmw7Civkv48gPiBsaWtlOwor5a29ID4gZXZpbDsKK+W8iiA+IGV2aWw7CivlpoMgPiB3aWZlOwor5aOkID4gc29pbDsKK+e/lCA+IHNvYXI7Civlt6kgPiBiaW5kOwor5bicID4gZmxhZzsKK+iVviA+IGJ1ZHM7Civpk4UgPiBsZWFkOwor57uSID4gc2lsazsKK+eqpSA+IHBlZXA7CivplKMgPiBnb25nOwor5pK8ID4gbW92ZTsKK+WXpiA+IHN1Y2s7CivovbQgPiBheGxlOwor5raVID4gdGVhcjsKK+esgyA+IGRlZXA7Civnqo0gPiBob2xlOwor5omzID4gcHVsbDsKK+mBjyA+IHN0b3A7CivlkIYgPiBiYXdsOwor54aUID4gbWVsdDsKK+iBiyA+IGRlYWY7Civli58gPiBsZXZ5Owor55akID4gc2NhcjsKK+iagSA+IGFudHM7Civmgq8gPiBwaXR5Owor54OYID4gYmFrZTsKK+eJnyA+IG1ha2U7CivltK0gPiBoaWdoOwor5beiID4gbmVzdDsKK+ayriA+IHN0b3A7CivmuZsgPiBkZWVwOwor5pmmID4gZGFyazsKK+mpuSA+IGNvbHQ7Civor6sgPiB3YXJuOwor5aKpID4gaGVhcDsKK+W3jSA+IGhpZ2g7CivmlJIgPiBzYXZlOwor57uKID4gbG9vcDsKK+aHiCA+IGlkbGU7CivmrrQgPiBiZWF0Owor55qCID4gc29hcDsKK+ifuSA+IGNyYWI7Civnu7cgPiBiaW5kOwor5Yy/ID4gaGlkZTsKK+WUoCA+IGNoYXQ7Civoi4cgPiByZWVkOwor5ou9ID4gZHJhZzsKK+eDuSA+IGJvaWw7CivllYMgPiBnbmF3Owor576UID4gbGFtYjsKK+mUiCA+IHJ1c3Q7CivkuqIgPiBoaWdoOwor6IKLID4gcmliczsKK+ihsiA+IG1lbmQ7CivmjpAgPiBob2xkOwor5oemID4gd2VhazsKK+iFkyA+IGNhbGY7CivlvbcgPiBsaWtlOwor6aqhID4gbXVsZTsKK+mGhyA+IHJpY2g7Civpqa8gPiB0YW1lOwor57qsID4gd29vZjsKK+eKgSA+IHBsb3c7Civmi68gPiBoZWxwOwor6b6aID4gZ2l2ZTsKK+ibpCA+IGNsYW07CivmiK4gPiBraWxsOwor5q+hID4gZmVsdDsKK+WSgCA+IHN1Y2s7CivlkbEgPiB3YWlsOwor5oiOID4gYXJtczsKK+iUvCA+IGx1c2g7CivojLggPiBzb2Z0Owor56SBID4gcmVlZjsKK+mXqSA+IGJvbHQ7CivmtqQgPiB3YXNoOwor5riNID4gc29hazsKK+i3myA+IGxhbWU7Civon4YgPiBmcm9nOwor5YGMID4gdGh1czsKK+mCkSA+IGFyZWE7CivljL4gPiBmbGF0Owor56y6ID4gbm90ZTsKK+eujSA+IGhvb3A7CivlmawgPiBiaXRlOwor6J+gID4gY29pbDsKK+i1gSA+IHJlbnQ7CivohYwgPiBzYWx0Owor5o6CID4gaGVmdDsKK+mBkCA+IGFmYXI7CivnlKwgPiBwYXRoOwor5YOuID4gcGFnZTsKK+WemyA+IGhlYXA7CivlkKAgPiBiYXJrOwor6Li1ID4gaGVlbDsKK+ibviA+IG1vdGg7CivogJggPiB3ZWVkOwor5pqEID4gd2FybTsKK+iegyA+IGNyYWI7CivllZUgPiB3YWlsOwor6J++ID4gdG9hZDsKK+etjyA+IHJhZnQ7Civnsb0gPiBzZWVkOwor54qKID4gY2FsZjsKK+eFpiA+IGtpbmQ7Civoh4ogPiByYW5rOwor5pKsID4gbGlmdDsKK+avlyA+IGhlbHA7Civoub8gPiBsZWFwOwor5ZKGID4gcm9hcjsKK+mypCA+IGNhcnA7CivovpUgPiBheGxlOwor54CaID4gdmFzdDsKK+iKiyA+IHRhcm87Civpm7kgPiBoYWlsOwor6bmqID4gd3JlbjsKK+mqvCA+IGJvbmU7CivojpggPiBsb25nOwor6LCnID4gY2FsbTsKK+iclSA+IG1vbHQ7CivnhIogPiB3ZWxkOwor6ICZID4gcmFrZTsKK+e8hCA+IHNlYWw7CivmvKkgPiBlZGR5Owor6aW1ID4gYmFpdDsKK+i+jSA+IHN0b3A7CivosJEgPiBqZWVyOwor5oGBID4gdGhhdDsKK+WCqSA+IHJpY2g7CivnmKAgPiB0aGluOwor5bWYID4gaGlnaDsKK+WzpSA+IGhpZ2g7CivpkoUgPiBnb2xkOwor5rmuID4gYnVyeTsKK+mijyA+IGNoaW47Civpk44gPiBiZWxsOwor6JS3ID4gcm9zZTsKK+ixuiA+IHdvbGY7CivnhqggPiBpcm9uOwor5ZG3ID4gc3VjazsKK+mXsyA+IGdhdGU7Civoiq4gPiB0aW55Owor6ZmoID4gZmFsbDsKK+eSqCA+IGdlbXM7Civms7UgPiBwdW1wOwor57+xID4gc29hcjsKK+aIlSA+IGtpbGw7CivojpMgPiBtb3NzOwor6LGMID4gcGVhczsKK+WgkSA+IG1vYXQ7CivmvbwgPiBoaWdoOwor55a1ID4gZmxhdzsKK+i/pCA+IHdpbmQ7CivmgLUgPiBmZWFyOwor5qaIID4gcGFsbTsKK+WEhiA+IHdhcm47Civll6UgPiByb2FyOwor56S0ID4gZmlsbDsKK+msgyA+IG1hbmU7CivlspAgPiBoaWdoOwor5ZW7ID4gb25seTsKK+WSnSA+IGhpc3M7Civmj4QgPiBsaWZ0Owor5r24ID4gd2VlcDsKK+iutCA+IHNpbmc7CivotoQgPiB3ZWFrOwor6YKLID4gcmFnczsKK+iDpCA+IGhlaXI7CivmoIkgPiBjb21iOwor57KVID4gbGVlczsKK+milCA+IGNoaW47Civlla4gPiBiaXRlOwor6L2yID4gYXhsZTsKK+WtsSA+IHdlYWs7CivmjJ4gPiBmbG9nOwor6ZWrID4gbGFtcDsKK+iHpyA+IGdvb2Q7CivpuZwgPiBkdWNrOwor5piVID4gZGF3bjsKK+mUtyA+IGhpZ2g7Civpk4QgPiBtZWx0Owor6L62ID4gd2FsazsKK+mYhCA+IGxvdHM7CivplIwgPiB6aW5jOwor6I27ID4gcmVlZDsKK+WWmSA+IGJlYWs7CivonI0gPiB0b2FkOwor57yiID4gaGFuZzsKK+afoiA+IHJvb3Q7CivnqqAgPiBuZXN0Owor6IKbID4gYW51czsKK+iqiiA+IGNvcHk7Civot44gPiBzbGlwOwor6IGpID4gZGVhZjsKK+eXgiA+IHNjYWI7CivpuKIgPiBraXRlOwor5oq7ID4gcHVsbDsKK+aypCA+IHNvYWs7Civmtr8gPiBkcmlwOwor54mmID4gdGFpbDsKK+eMtyA+IHBsYW47CivlookgPiB3YWxsOwor5pq5ID4gcmlzZTsKK+mXsSA+IGdhdGU7Civova0gPiB5b2tlOwor5bytID4gc3RvcDsKK+a0tSA+IHRydWU7Civnk68gPiBib3dsOwor5r+gID4gbW9hdDsKK+WcqSA+IGRpa2U7CivnvrggPiB3ZWFrOwor55mvID4gdGhpbjsKK+eYoiA+IHNjYXI7CivluYQgPiB0ZW50Owor5rOFID4gc3dpbTsKK+efviA+IGFsdW07CivomqkgPiB3b3JtOwor6bi3ID4gaGF3azsKK+i5hyA+IGxhbWU7CivogIsgPiBhZ2VkOwor6IuSID4gbHVzaDsKK+mAiyA+IGZsZWU7Civol5MgPiBtb3NzOwor6ay7ID4gc2VsbDsKK+azqyA+IHdlZXA7Civlla0gPiBzaW5nOwor5Z2oID4gbHVtcDsKK+iguSA+IG1vdGg7CivnlrEgPiBhY25lOwor6ZSSID4gbG9jazsKK+aanSA+IGRhcms7CivnhYogPiB3YXJtOwor54ioID4gb3ZlbjsKK+WbnSA+IGJhYnk7CivlnqkgPiBob2x5Owor5oC8ID4gaGF0ZTsKK+W0tCA+IGhpZ2g7Civmi4ogPiBzbGFwOwor5omMID4gaGFuZDsKK+mSpCA+IGxvY2s7CivmqK8gPiBtYXN0Owor6aqfID4gZ2VsZDsKK+eHuSA+IGZpcmU7CivpppAgPiBmb29kOwor5Zy5ID4gdG9tYjsKK+m+iCA+IGd1bXM7CivonIogPiBjbGFtOwor55eWID4gZHVtYjsKK+athiA+IGxpa2U7CivotYkgPiBnaXZlOwor6ZOjID4gbWlsbDsKK+eBjyA+IHZhc3Q7CivnmJkgPiBpdGNoOwor6Ze8ID4gZG9vcjsKK+WdjCA+IGR1c3Q7CivmpKQgPiB0cmVlOwor6ZiLID4gZmV1ZDsKK+W1ryA+IGhpZ2g7CivphbAgPiBhY3lsOwor55iXID4gYnVyeTsKK+eWoyA+IHdhcnQ7CivnqZEgPiBmYXJtOwor5qeOID4gcmFmdDsKK+ahtCA+IHJhZnQ7Civmuo8gPiBwb29sOwor56S7ID4gY3VsdDsKK+ajsCA+IGZsb2c7Civni7cgPiByYXNoOwor6JK5ID4gcmVlZDsKK+S9pCA+IGthd2E7CivpurggPiBicmFuOwor6bixID4ga2l0ZTsKK+e8qyA+IGRyYXc7CivnuqEgPiBiZW5kOwor5bWsID4gaGlnaDsKK+iPliA+IGlyaXM7CivmhI0gPiBwaXR5Owor5auxID4gbGFkeTsKK+iOqCA+IGhlcmI7CivosJ0gPiBicmFnOwor5rCWID4gbmVvbjsKK+mimyA+IGdvb2Q7Civnh6AgPiB3YXJtOwor5r20ID4gcG9uZDsKK+WgmSA+IGJ1cnk7CivpmpcgPiBoaWdoOwor5Li/ID4gbGluZTsKK+myriA+IGNhcnA7Civot5YgPiBzb2xlOwor6JqLID4gZ25hdDsKK+axlCA+IG5lYXI7Civnl6QgPiBhY25lOwor6LS2ID4gZ2l2ZTsKK+e6nyA+IHNpbGs7CivkvpEgPiBoZWxwOwor6ICqID4gcGxvdzsKK+innCA+IGJlYWs7CivnraIgPiByYWtlOwor5pyQID4gd2FybTsKK+inhyA+IHBlZWs7CivmqpcgPiB0cmVlOwor6I+hID4gYnVkczsKK+WBviA+IHJ1aW47CivpmrkgPiBiaXJkOwor6IihID4gYm9hdDsKK+eWkiA+IHNpY2s7CivlmY0gPiBjaGV3Owor5Z+dID4gYmFuazsKK+myqSA+IGNhcnA7CivpspIgPiBjbGFtOwor6KWeID4gZm9sZDsKK+eBrCA+IGZpcmU7CivohJIgPiBvcGVuOwor5p+ZID4gY2FnZTsKK+a5lCA+IHdhc2g7CivmtLMgPiBkYW1wOwor5bCiID4gd2VhazsKK+mrnyA+IGhhaXI7Civps44gPiBzb2xlOwor6ImaID4gc2hpcDsKK+m5qSA+IHdyZW47CivngrEgPiBzb290Owor6IaqID4gcG9yazsKK+agiiA+IGNhZ2U7Civnu7IgPiBjb3JkOwor5a6AID4gcm9vZjsKK+mXtiA+IGRvb3I7CivnjIogPiBsaW9uOwor5bK1ID4gaGlsbDsKK+WNqSA+IHNlYWw7Civor44gPiBiZW5kOwor5YCuID4gYmFyZTsKK+m+lCA+IGdpdmU7Civpva4gPiBiaXRlOwor6b2nID4gYml0ZTsKK+m9piA+IGd1bXM7CivpvZcgPiBndW1zOwor6b2VID4gZ25hdzsKK+m8myA+IGRydW07CivpvJYgPiBkcnVtOwor6bu2ID4gbW9sZTsKK+m6qSA+IGJyYW47CivpupsgPiBmYXduOwor6bqaID4gYnVjazsKK+m6kSA+IGZhd247CivpuowgPiBzdGFnOwor6bqDID4gdGlsbDsKK+m5jiA+IGJpcmQ7CivpuYYgPiBteW5hOwor6bevID4gd3JlbjsKK+m3piA+IHdyZW47Civpt5kgPiBoYXdrOwor6beVID4gY2FsbDsKK+m2sSA+IHNvYXI7CivptqkgPiBkdWNrOwor6baDID4gaGF3azsKK+m2giA+IGhhd2s7Civpta8gPiBiaXJkOwor6bWEID4ga2l0ZTsKK+m0qCA+IGR1Y2s7CivptJ8gPiBraXRlOwor6bSEID4gZHVjazsKK+mztyA+IGJpcmQ7Civps7YgPiBraXRlOwor6bOLID4gY2FycDsKK+myvCA+IGZpc2g7CivpsosgPiBjYXJwOwor6bKGID4gc29sZTsKK+mwqCA+IHNvbGU7Civpr6ogPiBjYXJwOwor6a+JID4gY2FycDsKK+mviCA+IGZpc2g7Civpr4cgPiBjYXJwOwor6a6aID4gY2xhbTsKK+mukiA+IGNhcnA7CivproYgPiBmaXNoOwor6a2LID4gYmVhcjsKK+msriA+IGxvdHM7CivprKkgPiBmZXVkOwor6ayRID4gbG9uZzsKK+mrniA+IGhpZ2g7CivpqZggPiBtdWxlOwor6ai+ID4gbXVsZTsKK+mouCA+IGdlbGQ7CivpqK8gPiBsb3VkOwor6aijID4gbWFuZTsKK+mnvSA+IGdyZXk7Civpp7QgPiBkcnVtOwor6aWMID4gZmVlZDsKK+mliCA+IGZvb2Q7CivppIwgPiBiYWl0Owor6aSHID4gZm9vZDsKK+mjoSA+IG1lYWw7Civpo4wgPiB3aW5kOwor6aK/ID4gc2FpbDsKK+miuiA+IHNvYXI7CivpoZMgPiBnb29kOwor6aC3ID4gY2hpbjsKK+mgriA+IHdhc2g7CivpoKYgPiBjaGluOwor6aCMID4gbGF1ZDsKK+mgiCA+IG11c3Q7CivpnrkgPiBza2luOwor6Z6fID4gc2tpbjsKK+memSA+IGZpbmU7Civpno8gPiBiaW5kOwor6Z6JID4gZHJ1bTsKK+megCA+IGRydW07CivpnZEgPiBibHVlOwor6ZykID4gZHJpcDsKK+mcoyA+IGZhbGw7CivpnKIgPiBkdXN0Owor6ZqVID4gZmFsbDsKK+mahCA+IGRpa2U7CivpmKQgPiBoaWxsOwor6ZieID4gdmVpbjsKK+mXpSA+IGRvb3I7Civpl6IgPiBvcGVuOwor6ZeTID4gb3BlbjsKK+mXiCA+IGdhdGU7Civpl4YgPiBib3NzOwor6ZafID4gaGlkZTsKK+mWjiA+IGdhdGU7CivplowgPiBkb29yOwor6ZaHID4gc2h1dDsKK+mWgiA+IGJvbHQ7CivplbggPiBsb25nOwor6ZWpID4gcGljazsKK+mVlSA+IGZ1c2U7Civpk7QgPiBnb25nOwor6ZG8ID4gZ29uZzsKK+mRoiA+IGZpbGU7CivpkaAgPiBtZWx0Owor6ZGbID4gbWluZTsKK+mRhCA+IG1lbHQ7CivpkLggPiBiZWxsOwor6ZCpID4gbGVuczsKK+mQmSA+IGxhbXA7CivpkIsgPiBnb25nOwor6ZCEID4gYmVsbDsKK+mPvSA+IHJ1c3Q7Civpj7AgPiBjb2luOwor6Y+lID4gcnVzdDsKK+mPoiA+IGRhcnQ7CivpjrsgPiBsb2NrOwor6Y6uID4gdG93bjsKK+mOrSA+IHRvd247CivpjpQgPiBmdXNlOwor6Y2UID4gaGlnaDsKK+mMhCA+IGNvcHk7Civpi7MgPiBtZWx0Owor6YuaID4gaXJvbjsKK+mLhiA+IGdvbGQ7CivpirkgPiBydXN0Owor6Yq3ID4gbWVsdDsKK+mKlSA+IGlyb247CivpibEgPiBtaW5lOwor6YmkID4gaG9vazsKK+mIrCA+IGJlbGw7CivpiJAgPiBsb2NrOwor6YiOID4gaG9vazsKK+mIhiA+IGxlYWQ7Civph4AgPiBicmV3Owor6Ya4ID4gYnJldzsKK+mEkSA+IGtpY2s7CivpgokgPiBlZGdlOwor6YG7ID4gbWVldDsKK+mBtyA+IG1vdmU7CivpgZ8gPiBsYXRlOwor6L+6ID4gdGhlbjsKK+i/miA+IHZlcnk7Civov4YgPiB3aW5kOwor6L61ID4gd2FsazsKK+i9nSA+IGVudnk7CivovZcgPiBmYWlsOwor6L2MID4gc2xlZDsKK+i9hSA+IGF4bGU7CivovL8gPiBjYXJ0Owor6Ly0ID4gc2xlZDsKK+i8nyA+IHN0b3A7Civou7sgPiBheGxlOwor6Lu4ID4gYXhsZTsKK+i7pSA+IHlva2U7Civou58gPiBzb2Z0Owor6LubID4geW9rZTsKK+i7hiA+IGJvZHk7Civou4AgPiBib2R5Owor6Lq/ID4gdGFsbDsKK+i6tiA+IGJhcmU7CivourQgPiB0YWxsOwor6LqzID4gYm9keTsKK+i6sSA+IGhpZGU7CivourAgPiBib2R5Owor6LqlID4gbGVhcDsKK+i6kiA+IHdhbGs7CivouaIgPiBob29mOwor6LmPID4gaG9vZjsKK+i4tCA+IGxlYXA7CivouK0gPiBoZWVsOwor6LiYID4gYmFsbDsKK+i3vCA+IGJlbnQ7Civot7IgPiBob29kOwor6LexID4gc3RvcDsKK+i3niA+IHdhbGs7Civot5kgPiB3ZWFrOwor6LavID4ganVtcDsKK+i1sSA+IHdhbGs7CivotZUgPiBmaW5lOwor6LSKID4gaGVscDsKK+iztSA+IGdpZnQ7Civos7QgPiByZWx5Owor6LOnID4gZmluZTsKK+izpCA+IG1lYW47Civos5wgPiBnaXZlOwor6LObID4gaGVscDsKK+izmiA+IGdpdmU7Civos44gPiBtZWFuOwor6LK6ID4gZ2l2ZTsKK+iyjiA+IGxpb247Civosa0gPiBib2FyOwor6K6LID4gZmVhcjsKK+isoCA+IHNpbmc7CivorJQgPiBqZWVyOwor6KyQID4gY2FsbTsKK+ishCA+IGNvcHk7Civoq54gPiBicmFnOwor6KqnID4gaHVnZTsKK+iqoSA+IHdhcm47CivoqoMgPiBwYXJ0Owor6KmgID4gc2luZzsKK+ipnyA+IGZlYXI7CivoqZggPiBiZW5kOwor6KedID4gZ29yZTsKK+immCA+IHBlZWs7CivoppMgPiBzZWVrOwor6KK/ID4gZ293bjsKK+ihuSA+IG9ubHk7CivooZogPiBsYW5lOwor6KGWID4gbGFuZTsKK+ihkiA+IGJyYWc7CivooK0gPiBiZWVzOwor6KCnID4gbW90aDsKK+igjyA+IGNyYWI7Civon4cgPiBmcm9nOwor6J6JID4gd2FzcDsKK+icuSA+IGduYXQ7CivonIUgPiBjcmFiOwor6Ju7ID4gbW9sdDsKK+iaoSA+IG1vbGU7CivombcgPiB3b3JtOwor6JmnID4gbG9zZTsKK+iZkyA+IHJvYXI7CivomJogPiBtb3NzOwor6JiSID4gXDoxNDM7Civol7kgPiBsdXNoOwor6JefID4gdmluZTsKK+iXhyA+IGZpbmU7Civolp8gPiB2aW5lOwor6JaZID4gd2VlZDsKK+iWgSA+IHZpbmU7CivolZggPiBmdWVsOwor6JS0ID4gaGVtcDsKK+iTqyA+IGRvY2s7CivokZIgPiBoZXJiOwor6JCcID4gYzVoODsKK+iPviA+IGJlZXQ7CivojrsgPiBsYXRlOwor6I62ID4gdmluZTsKK+iOliA+IHN0ZW07Civoja0gPiBoZXJiOwor6I2bID4gZnVlbDsKK+iJrSA+IHNoaXA7CivoiZYgPiByYWZ0Owor6IipID4gYm9hdDsKK+iHkSA+IHNvZnQ7Civoh4kgPiBmYWNlOwor6IeBID4gY2FsZjsKK+iGtyA+IHNvdXA7CivohrQgPiBmaW5lOwor6IagID4gZ2x1ZTsKK+iFtiA+IG1lYXQ7CivohbMgPiBmb290Owor6IWSID4gZ2FtZTsKK+iFjSA+IHNvZnQ7CivohLIgPiB1cmVhOwor6IOgID4gb3BlbjsKK+iDjyA+IG1lYXQ7Civog4ogPiB5b2tlOwor6IKsID4gd2FydDsKK+iBviA+IGRlYWY7CivogbwgPiBoZWFyOwor6IG1ID4gZGVhZjsKK+iArSA+IHBsb3c7CivogKAgPiB0aWxsOwor6ICOID4gd2VhazsKK+e/uiA+IHNvYXI7Civnvq0gPiBnb29kOwor576cID4gbGFtYjsKK+e8iyA+IGRyYXc7CivnupogPiBsb25nOwor57qWID4gZmluZTsKK+e6lSA+IGJlbHQ7Civnuo4gPiBmaW5lOwor57qNID4gYmluZDsKK+e6hyA+IGtub3Q7CivnuoYgPiBjb3JkOwor57mkID4gZWRpdDsKK+e5oiA+IGRyYXc7CivnuaAgPiBoYW5nOwor57mYID4gcm9wZTsKK+e5iiA+IGZpbmU7CivnuYUgPiBkcmF3Owor57mDID4gYmluZDsKK+e4viA+IHNwaW47CivnuLMgPiB3cmFwOwor57ivID4gbG9uZzsKK+e4oiA+IGJpbmQ7CivnuJogPiBiYW5kOwor57iKID4gaGFuZzsKK+e3ryA+IHdvb2Y7Civnt6QgPiBjb3JkOwor57eYID4gc2VhbDsKK+e3jiA+IHNlYW07Civnt4QgPiBjb3JkOwor57arID4gbGluZTsKK+e2kSA+IGNvaWw7Civnto0gPiByb3BlOwor57aBID4gYmluZDsKK+e1jyA+IHJvcGU7CivntKEgPiBzcGluOwor57SGID4gYmVuZDsKK+ezuSA+IHNpbGs7CivnsosgPiBwdXJlOwor57G5ID4gY2FrZTsKK+exmSA+IGJvb2s7CivnsY8gPiBmbGFnOwor57GMID4gY2hpcDsKK+exiiA+IGxvbmc7CivnsL0gPiBzaWduOwor57CGID4gcmVlZDsKK+erhSA+IGhvbGU7Civnq4EgPiBib3JlOwor56q+ID4gaG9sZTsKK+eqtSA+IGRlZXA7Civnqq8gPiBraWxuOwor56qtID4gcG9vcjsKK+eqqSA+IG5lc3Q7Civnqb0gPiBob2xlOwor56muID4gd2VlZDsKK+epoSA+IGZhcm07CivnqZwgPiByaWNlOwor56mQID4gZmFsbDsKK+epiyA+IHJpY2U7CivnqYAgPiBjb3JuOwor56ibID4gYmluZDsKK+eokSA+IHJpY2U7Civnp6ogPiBvbmx5Owor56eKID4geWVhcjsKK+emuCA+IHJ1bXA7CivnprEgPiBwcmF5Owor56WHID4gb25seTsKK+ekrCA+IGFsdW07CivnpKcgPiByb2xsOwor56SmID4gbWluZTsKK+ekoSA+IGZpbGw7Civno5ogPiB0aWxlOwor56C/ID4gbWluZTsKK+efuyA+IHRvaWw7Civnn5kgPiB2aWV3Owor556rID4gbG9vazsKK+ebpCA+IHRyYXk7Civnm50gPiBkcmlwOwor55uMID4gYm93bDsKK+eatyA+IGRydW07CivnmbYgPiBsZWdzOwor55muID4gcmFzaDsKK+eZoiA+IGl0Y2g7CivnmaAgPiBzaWNrOwor55ivID4gaXRjaDsKK+eYniA+IGJ1cnk7CivnmJYgPiBkdW1iOwor55iCID4gZHVtYjsKK+eXryA+IHNpY2s7Civnl4wgPiBhY2hlOwor55anID4gc2ljazsKK+eWmCA+IGFudXM7CivnlpAgPiBmYWxsOwor55WKID4gcGxvdzsKK+eVhyA+IGxhbmQ7CivnlYQgPiBzdG9wOwor55SMID4gYm93bDsKK+eTmCA+IGphZGU7Civnk4ogPiBqYWRlOwor5421ID4gaHVudDsKK+eNriA+IGh1bnQ7CivnjacgPiByYXNoOwor542LID4gcm9hcjsKK+eNhSA+IGxpb247CivnjYMgPiBkdWxsOwor54yfID4gaHVudDsKK+eMiyA+IHdpbmQ7Civni5ggPiBqdW1wOwor54uAID4gZm9ybTsKK+eKsiA+IHdvbGY7CivniqIgPiBjYWxmOwor54qCID4gcGxvdzsKK+eJvSA+IGRyYWc7CivnibQgPiBnb3JlOwor54mjID4gZmlsbDsKK+eJhiA+IHdhbGw7CivniJ8gPiBmaXJlOwor54iWID4gZmlyZTsKK+eIhyA+IGJ1cm47Civnh6ggPiBmaXJlOwor54aHID4gYmFrZTsKK+eFmiA+IGZpcmU7CivnhZYgPiB3YXJtOwor54WRID4gY29vazsKK+eFhyA+IHdlbGQ7CivnhK4gPiBoZWF0Owor54ScID4gZmlyZTsKK+eDnSA+IHJpc2U7Civng5QgPiBoZWF0Owor54OPID4gY3JvdzsKK+eBnSA+IHZhc3Q7CivngZggPiBiYW5rOwor54CmID4gcG9uZDsKK+a/syA+IGhpZGU7Civmv5QgPiBtYW55Owor5r+KID4gdmFzdDsKK+a/iCA+IG1hbnk7CivmvpIgPiB2YXN0Owor5r2kID4gc29mdDsKK+a9myA+IGhpZGU7CivmvZEgPiBwb3VyOwor5r2FID4gcG91cjsKK+a8sCA+IHJvYXI7CivmvK0gPiB2YXN0Owor5ryaID4gc29hazsKK+a8mSA+IGRld3k7CivmvJggPiBiYW5rOwor5ru+ID4gdHVybjsKK+a7uiA+IGZsb3c7Civmu64gPiBmbG93Owor5ruMID4gd2FzaDsKK+a7iSA+IGRlZXA7Civmu4QgPiBibHVlOwor5rq8ID4gZGFtcDsKK+a5uyA+IHB1cmU7CivmubIgPiBmbG93Owor5rmdID4gZmxvdzsKK+a3sCA+IGZpc2g7Civmt6ggPiBwdXJlOwor5ra0ID4gZGF1YjsKK+a2iiA+IGRpcnQ7Civms5kgPiByb2FyOwor5rKsID4gZHVzazsKK+aylSA+IGRlZXA7CivmsY0gPiB3ZWVwOwor5rCdID4gbmVvbjsKK+awiiA+IGZlbHQ7CivmsIQgPiBkb3duOwor5rCCID4gdGFpbDsKK+atsiA+IHllYXI7CivmrZcgPiByb2FyOwor5q2KID4gc2lnaDsKK+askCA+IGJlYW07Civmq7MgPiBjYWdlOwor5quaID4gcGFsbTsKK+aqtCA+IHRyZWU7Civmqo0gPiBpbGV4Owor5qmmID4gdHJlZTsKK+apgSA+IHRyZWU7Civmp7kgPiBzcGFyOwor5qeDID4gdHJheTsKK+alsCA+IHRyZWU7CivmpakgPiB0cmVlOwor5qWfID4gdHJlZTsKK+almCA+IGJhbmQ7CivmpLggPiByYWNrOwor5qSRID4gb3ZhbDsKK+ajrCA+IGJvd2w7Civmo6ogPiB0cmVlOwor5qORID4gcmFmdDsKK+aitCA+IGxvbmc7Civmob8gPiBwb2xlOwor5qG5ID4gcGFsbTsKK+ahiyA+IHRyZWU7CivmoLsgPiB0cmVlOwor5p+jID4gc2lsbDsKK+afgiA+IGhlbG07CivmnrQgPiBjYW5lOwor5p2dID4gdHJlZTsKK+adlyA+IGJlYW07CivmnL8gPiBzdGFiOwor5pyzID4gdHJlZTsKK+acmCA+IHdhbmU7Civmm4kgPiBkYXduOwor5pmzID4gZmFpcjsKK+aYuyA+IHJpc2U7CivmmKwgPiBkdXNrOwor5pirID4gd2FybTsKK+aXuSA+IHRpbWU7Civml7QgPiBkYXduOwor5pecID4gZmxhZzsKK+aXgiA+IGZsYWc7Civmlb8gPiBiaW5kOwor5pW9ID4gYmluZDsKK+aVuyA+IGxvbmc7CivmlKIgPiBzYXZlOwor5pSFID4gc2F2ZTsKK+aTqyA+IHR1Y2s7Civmk6MgPiBodWxsOwor5pK7ID4gZmxvZzsKK+aSpSA+IG1vdmU7Civmkp0gPiB3YXZlOwor5pGyID4gcmF6ZTsKK+aRpiA+IHdpZGU7CivmkKUgPiBiZWF0Owor5pCYID4gcHJvcDsKK+aQlyA+IGh1bGw7CivmkJIgPiBwb2xlOwor5pCMID4gYmluZDsKK+aQhiA+IHB1bGw7Civmjp4gPiBlYXN5Owor5o6XID4gdGFrZTsKK+aNmCA+IHB1c2g7CivmjYQgPiBsb25nOwor5oyQID4gZHJhZzsKK+aLjyA+IHRha2U7CivmirYgPiBiZWF0Owor5oqGID4gd2lwZTsKK+aItiA+IGRvb3I7CivmiIEgPiBmZWFyOwor5oe2ID4gbGF6eTsKK+aHriA+IGNhbG07Civmh58gPiBoYXRlOwor5oecID4gZHVsbDsKK+aGsCA+IHdpbHk7CivmhqsgPiBwaXR5Owor5oaZID4gbGlrZTsKK+aGmCA+IGxpa2U7CivmhocgPiByZXN0Owor5oW0ID4gZmVhcjsKK+aFgiA+IHVyZ2U7CivmhJIgPiByZXN0Owor5oGHID4gZmVhcjsKK+aAsyA+IHdpbGQ7CivmgK0gPiBydWRlOwor5oCaID4gZHVsbDsKK+W9oSA+IGhhaXI7CivlvY4gPiBiZW5kOwor5bu8ID4gdGhlbjsKK+W7syA+IGhhbGw7Civlu7AgPiBoYWxsOwor5bunID4gd2FsbDsKK+W7jiA+IHJvb207Civlua8gPiB3aXBlOwor5bmkID4gZXZpbDsKK+W5nyA+IGZsYWc7CivluZogPiBoZWxwOwor5bmLID4gYmVsdDsKK+W5hyA+IGhlbHA7CivluJ8gPiB0ZW50Owor5ba4ID4gaGlnaDsKK+W2hCA+IGhpZ2g7CivltbMgPiBoaWdoOwor5bSiID4gaGlnaDsKK+WzryA+IHBlYWs7Civls4cgPiBjYXZlOwor5bKnID4gcGVhazsKK+WxhyA+IGNhdmU7CivlsLIgPiBsaW1wOwor5bCrID4gbGFtZTsKK+WwqiA+IGxhbWU7CivlsKkgPiB3ZWFrOwor5bCjID4gbGFtZTsKK+WwhyA+IHdpbGw7Civlr6AgPiBwb29yOwor5a+UID4gcmVhbDsKK+WtuyA+IGxhc3Q7CivlrL4gPiBsYXp5Owor5aywID4gYmFieTsKK+WsrSA+IG1pbGs7CivlrJkgPiBsYWR5Owor5auIID4gbGFkeTsKK+WqiiA+IHN0YXI7CivlqZ4gPiBoYXRlOwor5amQID4gbWFpZDsKK+WouCA+IHVnbHk7CivlqLUgPiBzdGFyOwor5ae9ID4gZ29vZDsKK+WnriA+IGxhZHk7Civlp6QgPiBtYXRlOwor5aSbID4gbXVjaDsKK+WkkCA+IGxvbmc7Civlo5kgPiB0b21iOwor5aOSID4gZHVzdDsKK+WjjCA+IHNvaWw7CivlorsgPiB3YWxsOwor5aKmID4gdG9tYjsKK+WhuSA+IG1vYXQ7CivloLIgPiBoYXRlOwor5aCoID4gZGF1YjsKK+WgiyA+IGJ1cnk7Civln7AgPiBmaWVmOwor5Z+IID4gaGlnaDsKK+WenCA+IGhlYXA7CivlnbEgPiBkdXN0Owor5Z2LID4gZHVzdDsKK+WbpSA+IGhpZGU7Civlm5MgPiBnbmF3Owor5ZuAID4gc2luZzsKK+WapCA+IHNsb3c7CivlmpkgPiBiaXRlOwor5ZqEID4gcm9hcjsKK+WZsyA+IG1hbnk7CivlmZ0gPiBoaXNzOwor5ZmJID4gYml0ZTsKK+WYvSA+IHBhbnQ7CivlmK8gPiByb2FyOwor5ZiuID4gY2hhdDsKK+WYqCA+IHJvYXI7CivlmJwgPiBtYXJrOwor5ZewID4gdGhhdDsKK+WXiiA+IHNpbmc7CivllqwgPiB0YWxsOwor5ZaoID4gd2FpbDsKK+WVnyA+IG9wZW47CivllZ4gPiBkdW1iOwor5ZWZID4gcG9vcjsKK+WVkyA+IG9wZW47CivllYAgPiBnbmF3Owor5ZS2ID4gc2lnaDsKK+WUmyA+IG1hcms7CivlkrwgPiBjaGF0Owor5ZK3ID4gaG93bDsKK+WSriA+IGJlYWs7CivlkZkgPiBjaGF0Owor5ZGOID4gZm9vdDsKK+WRhyA+IHN0YXI7CivlkL8gPiB0ZWxsOwor5ZC9ID4gJydvbScnOwor5ZCqID4gbW92ZTsKK+WQiyA+IGluY2g7CivljpQgPiBzdG9wOwor5Y2AID4gYXJlYTsKK+WMtSA+IGNhc2U7Civli7kgPiB3cmFwOwor5Ym6ID4gbWFyazsKK+WJnSA+IHBlZWw7CivliZogPiBzdGFiOwor5Yi+ID4gc3RhYjsKK+WInCA+IGNob3A7CivliJMgPiB0cmltOwor5YeuID4gd2luZDsKK+WHqiA+IGNhbG07Civlh6ggPiB3aW5kOwor5YenID4ga2l0ZTsKK+WHmiA+IGNvbGQ7Civlh5YgPiBydWxlOwor5YeUID4gY29sZDsKK+WGkCA+IHJpc2s7CivlhoIgPiB3aWRlOwor5YWMID4gY2FzaDsKK+WEviA+IHNsb3c7CivlhL0gPiBsYXp5Owor5YS6ID4gcmljaDsKK+WEsSA+IHJ1ZGU7CivlhJwgPiB3ZWFrOwor5YSFID4gc3RvcDsKK+WDviA+IGxpa2U7Civlg6ggPiBydWluOwor5YK1ID4gZGVidDsKK+WCrSA+IGhpcmU7CivlgYQgPiB3ZWFrOwor5YC9ID4gd2hhdDsKK+S/tCA+IHRoaW47Civkv5QgPiBsaWtlOwor5L6iID4gbG9hZDsKK+S+nCA+IGxpZXM7CivkvpogPiBmYXN0Owor5L6AID4gZm9ybTsKK+S9uCA+IG1lZXQ7CivkvLkgPiBkdWxsOwor5LyxID4gdGhvdTsKK+S7uCA+IGJlbnQ7CivkuqAgPiBoZWFkOwor5LqdID4gZXZlbjsKK+S6nCA+IGFzaWE7CivkupYgPiBmb3VyOwor5LqFID4gaG9vazsKK+S5vCA+IHJvcGU7Civkua0gPiByb2NrOwor5LizID4gc3BpdDsKK+S4oCA+IGhpbGw7CivktbcgPiBmcm9nOwor5LWoID4gZGFyazsKK+S1kiA+IGdsdWU7CivktZEgPiBnbHVlOwor5LS4ID4gYnJhbjsKK+S0nSA+IHNhbHQ7CivktJwgPiBzYWx0Owor5LSDID4gd3JlbjsKK+SzvCA+IGd1bGw7Civks6YgPiB3cmVuOwor5LOjID4ga2l0ZTsKK+SyrSA+IGtpdGU7CivkspIgPiBjcmFiOwor5LG0ID4gdHVuYTsKK+SxrSA+IHR1bmE7CivksY4gPiB0dW5hOwor5LGNID4gdHVuYTsKK+SwqSA+IHVnbHk7CivksKYgPiB1Z2x5Owor5LCkID4gdWdseTsKK+SwlSA+IG1hbmU7CivksJMgPiBoYWlyOwor5LCLID4gaGFpcjsKK+SwiiA+IGhhaXI7CivksIcgPiBtYW5lOwor5K+5ID4gaGFpcjsKK+SvnyA+IGJvbmU7Civkr54gPiBib25lOwor5K+VID4gYm9ueTsKK+SuvyA+IGxhbWU7Civkrr4gPiBodWdlOwor5K2iID4gcmljaDsKK+StoSA+IGZvb2Q7CivkrZMgPiBmb29kOwor5K2CID4gZGFtcDsKK+StgCA+IGZvb2Q7CivkrJ4gPiB3aW5kOwor5KyPID4gd2luZDsKK+SrtiA+IHVnbHk7Civkq6ogPiB1Z2x5Owor5KuiID4gZ29vZDsKK+SrkSA+IGdvb2Q7Civkq48gPiB1Z2x5Owor5KuKID4gY2hpbjsKK+SriCA+IHVnbHk7Civkq4IgPiB1Z2x5Owor5KqmID4gbG91ZDsKK+SqjyA+IHdlYWs7CivkqoYgPiBzb2Z0Owor5KiwID4gcmFpbjsKK+SoriA+IHNub3c7CivkqKQgPiByYWluOwor5KiUID4gaGFpbDsKK+SojCA+IGhhaWw7Civkp7sgPiBkb3ZlOwor5Ke5ID4gaGF3azsKK+SmsCA+IGxvdHM7CivkpasgPiBpcm9uOwor5KWUID4gZ29sZDsKK+SlkiA+IGxlYWQ7CivkpK4gPiBpcm9uOwor5KShID4gaXJvbjsKK+SkkSA+IHdpbmU7CivkpIogPiB3aW5lOwor5KO9ID4gd2luZTsKK+SjqCA+IHJpY2g7CivkobMgPiBjYXJ0Owor5KGAID4gbnVkZTsKK+SgrSA+IGxhbWU7CivkoJcgPiBsYW1lOwor5KCPID4gZmVldDsKK+SfqCA+IGxhbWU7Civkn4IgPiBzbG93Owor5J6/ID4gbGFtZTsKK+SeqSA+IGxhbWU7Civknp0gPiBsYW1lOwor5J6GID4gYm9uZTsKK+SdmCA+IGZpcm07CivknZUgPiBnb29kOwor5Ju0ID4gam9rZTsKK+SavSA+IG5ld3M7CivkmrggPiBnb29kOwor5JqpID4gaGlnaDsKK+SaoiA+IGhvcm47CivkmaQgPiBnb29kOwor5JmKID4gYXJpZDsKK+SXqSA+IHRvYWQ7Civkl6IgPiBmbGVhOwor5Ja4ID4gbW90aDsKK+SWrSA+IGdydWI7CivklqogPiBncnViOwor5JajID4gZmxlYTsKK+SVoiA+IHdlYWs7CivklKwgPiBoZW1wOwor5JO+ID4gbHVzaDsKK+STuCA+IHdlZWQ7Civkk7IgPiBmaW5lOwor5JK6ID4gY2xheTsKK+SSrSA+IHJhbms7CivkkawgPiBib2F0Owor5JGeID4gc2h1bjsKK+SRjyA+IHVnbHk7CivkkYQgPiByaWNoOwor5JCzID4gZmlzaDsKK+SQriA+IHNraW47CivkkJMgPiBzb2Z0Owor5JCLID4gc2ljazsKK+SPuCA+IGZpc2g7Civkj7EgPiBib2R5Owor5I+iID4gbWVhdDsKK+SPjiA+IG1pbGs7Civkj4ogPiBkZWFmOwor5I6cID4gYWdlZDsKK+SNmiA+IHZhc3Q7CivkjKkgPiBmaW5lOwor5IydID4gc2lsazsKK+SMkyA+IG1hbnk7CivkjJIgPiBwdXJlOwor5IyMID4gbGFjZTsKK+SLvCA+IHNsb3c7Civki5YgPiBsb25nOwor5IqmID4gZm9vZDsKK+SHqSA+IGxvbmc7Civkhq0gPiBjYXZlOwor5IapID4gZGFyazsKK+SGpiA+IGRlZXA7CivkhKkgPiBicmFuOwor5IKDID4gZGFyazsKK+SBqSA+IGZpc2g7CivkgYYgPiBleWVzOwor5IGFID4gcmFnZTsKK+SAviA+IG1hbnk7CivkgJwgPiBkb3duOwor5ICLID4gc2FsdDsKK+SAgCA+IGN1cHM7Civjv5kgPiBmdWxsOwor47+OID4gc2ljazsKK+O+uSA+IGxlYW47CivjvqogPiBsZWFuOwor476oID4gd2VhazsKK+O+myA+IHVnbHk7CivjvoogPiB0aGluOwor476JID4gdGhpbjsKK+O6pSA+IGJhcms7CivjuZIgPiBidWxsOwor47mPID4gZ29vZDsKK+O5jiA+IGJ1bGw7CivjuY0gPiBidWxsOwor47i4ID4gY2FsZjsKK+O4riA+IGJ1bGw7CivjuI4gPiB3YXJtOwor47e1ID4gZmlyZTsKK+O3tCA+IGZpcmU7Civjt6wgPiBmaXJlOwor47eYID4gY29hbDsKK+O3kCA+IGZpcmU7Civjt4QgPiBmaXJlOwor47a5ID4gZmlyZTsKK+O2ryA+IGZpcmU7CivjtqggPiBmaXJlOwor47anID4gd2FybTsKK+O1viA+IGNvbGQ7CivjtbYgPiBmdWxsOwor47WpID4gbWFueTsKK+O1mSA+IHB1cmU7CivjtZYgPiBkYW1wOwor47S0ID4gc2luazsKK+O0sSA+IGRlZXA7CivjtJ0gPiBtYW55Owor47SbID4gZGFtcDsKK+O0lyA+IGRlZXA7CivjtIAgPiBkZWVwOwor47OkID4gZ29vZDsKK+OyviA+IHJhaW47CivjsrsgPiBzdW5rOwor47K0ID4gbWluZDsKK+OynyA+IGhhaXI7CivjspwgPiBydWdzOwor47KTID4gZmluZTsKK+OxtCA+IHNpY2s7CivjsYsgPiBoaWdoOwor47GHID4gZmVhcjsKK+OwqyA+IGdsYWQ7CivjsKEgPiByYXNoOwor47CfID4gaG9wZTsKK+OwmSA+IHdlYWs7CivjsJAgPiBvdmFsOwor4666ID4gc3RlbTsKK+OupCA+IHBpbmU7CivjrpIgPiB3b29kOwor4629ID4gcm9vdDsKK+OsmCA+IGFyaWQ7CivjrIkgPiB3YXJtOwor46yFID4gbG9uZzsKK+OrsiA+IGRhcms7Civjq7EgPiBtaWxkOwor46ulID4gZGFyazsKK+OrjiA+IG1hcms7Civjq4QgPiBzaWRlOwor46m8ID4gbWFueTsKK++opSA+IGZsZWU7CivvqIUgPiBjYXZlOwor76e/ID4gc3RhYjsKK++nuiA+IGZvcm07Civvp7UgPiBkcmlwOwor46euID4gaGlnaDsKK++nqyA+IGhpZGU7Civjp6ggPiBzbG93Owor76eiID4gcGVhcjsKK++noSA+IHBsdW07Civvp5MgPiBsYW5kOwor76eSID4ga2lsbDsKK++njyA+IGtub3Q7Civvp40gPiBzdG9wOwor76eKID4gZmxvdzsKK++muSA+IGV2aWw7CivvprQgPiBuZWNrOwor76ayID4gemVybzsKK++msSA+IGJlbGw7CivvpqwgPiBwaXR5Owor76anID4gaHVudDsKK+OmqCA+IGxhenk7CivjpqIgPiBwdXJlOwor76aaID4gam9pbjsKK++mlSA+IHllYXI7CivvppAgPiBsb3ZlOwor76aPID4gcGl0eTsKK++mjiA+IHllYXI7Civjpo8gPiB3ZWFrOwor76aDID4gdHJpcDsKK++lvCA+IGdvb2Q7CivvpbsgPiBmb29kOwor76W5ID4gY29vbDsKK++lsiA+IHNpbms7CivvpbAgPiBraWxsOwor76WuID4gbGVhZjsKK+OlrCA+IGZlYXI7CivjpakgPiBpZGxlOwor46WhID4gaWRsZTsKK++lmyA+IHRha2U7CivvpZogPiByZWFkOwor76WZID4gaGlsbDsKK++llSA+IHB1cmU7CivvpZMgPiByaWJzOwor76WOID4gbGVhazsKK++lhSA+IGRlYWY7CivvpYQgPiBjYWdlOwor76WAID4gZGVlcjsKK++kvyA+IGNvcHk7CivvpLcgPiByb2FkOwor76SuID4gY29sZDsKK++krSA+IGNvbWU7CivvpKsgPiB3b2xmOwor76SqID4gd2F2ZTsKK++kpSA+IHB1bGw7CivvpKMgPiBibHVlOwor46SfID4gZmVhcjsKK++kmCA+IGZhbGw7CivvpJIgPiBiYXJlOwor76SNID4gbGF6eTsKK++kiyA+IGhvcm47CivvpIogPiBnb2xkOwor76SJID4gZGVlZDsKK+OkiSA+IGZlYXI7CivvpIQgPiBzbGlwOwor76SCID4gY2FydDsKK++kgSA+IG1vcmU7Civjo44gPiBmaW5lOwor46KcID4gdmFzdDsKK+OimCA+IHB1cmU7CivjopQgPiBtYW55Owor46KOID4gaGlkZTsKK+OiiyA+IHZhc3Q7CivjooMgPiBoaWdoOwor46KBID4gdmFzdDsKK+OhpiA+IG1lc3M7CivjoLsgPiByYXJlOwor46CpID4gdmFzdDsKK+OgjCA+IGhpZ2g7CivjnrEgPiBkdXNrOwor456WID4gdGhpczsKK+OehCA+IGxhbWU7Civjnb8gPiBsYW1lOwor452hID4gdmVyeTsKK+OdoCA+IGRhcms7CivjnZ0gPiBkZWVwOwor452RID4gc2lkZTsKK+OdkCA+IGZhY2U7CivjnYggPiB0d2luOwor452EID4gcHVyZTsKK+OctyA+IG1pbGs7CivjnJsgPiBzb2Z0Owor45yDID4gZnJvbTsKK+ObpiA+IGdvb2Q7CivjmqcgPiBhZ2lsOwor45qNID4gbXVjaDsKK+OaiyA+IG11Y2g7CivjmoogPiBtdWNoOwor45qCID4gZHVzdDsKK+OZqiA+IGRhcms7CivjmaAgPiBkdXN0Owor45mSID4gd2lsZDsKK+OZgiA+IHdhbGw7CivjmYEgPiBkdXN0Owor45ioID4gZGVlcDsKK+OYkCA+IGxvdWQ7Civjl4ggPiBsb25nOwor45WmID4gbG91ZDsKK+OUhCA+IHRoaW47Civjk5EgPiBjb2xkOwor45OOID4gY29sZDsKK+OTiiA+IGNvbGQ7CivjkpogPiBmaXJtOwor45KOID4gZXZpbDsKK+ORvyA+IGxvbmc7CivjkbUgPiBlbnZ5Owor45GaID4gdGhhdDsKK+ORjCA+IHdlYWs7CivjkYggPiBydWRlOwor45ChID4gd2VhazsKK+OQhSA+IGZpdmU7CivkuIAgPiBvbmU7CivkurogPiBtYW47CivmiJEgPiBvdXI7CivlpKcgPiBiaWc7CivkuIogPiB0b3A7CivkvaAgPiB5b3U7Civlj68gPiBtYXk7CivlpbkgPiBzaGU7CivlpKkgPiBza3k7CivogIwgPiBhbmQ7CivnhLYgPiB5ZXM7CivmsqEgPiBub3Q7Civml6UgPiBzdW47CivlvakgPiBodWU7CivljYEgPiB0ZW47CivnlKggPiB1c2U7CivnnLwgPiBleWU7Civlj4ggPiBhbmQ7Civop4EgPiBzZWU7CivogIEgPiBvbGQ7CivkuKQgPiB0d287CivlpJYgPiBvdXQ7CivkuI4gPiBhbmQ7Civms5UgPiBsYXc7Civnm64gPiBleWU7CivkuowgPiB0d287CivngrkgPiBkb3Q7Civnm5wgPiByb2I7CivlhbYgPiBoaXM7Civnm5cgPiByb2I7CivlhL8gPiBzb247CivmlrAgPiBuZXc7CivluoogPiBiZWQ7CivnmoYgPiBhbGw7CivmtbcgPiBzZWE7CivlsJEgPiBmZXc7CivluL0gPiBoYXQ7Civlj6sgPiBjcnk7CivmrbsgPiBkaWU7CivmlL4gPiBwdXQ7Civku4ogPiBub3c7CivotaQgPiByZWQ7CivnlaIgPiBlbmQ7CivmiJggPiB3YXI7Civos7wgPiBidXk7Civnk7YgPiBqdWc7Civor7cgPiBhc2s7CivkuqQgPiBtaXg7CivlkIMgPiBlYXQ7CivosrcgPiBidXk7CivpnZ4gPiBub3Q7CivlpKsgPiBtYW47CivnuqIgPiByZWQ7Civov5AgPiBydW47Civlr6UgPiBmZXc7CivnvZEgPiBuZXQ7Civpo54gPiBmbHk7Civop4IgPiBzZWU7CivnjL8gPiBhcGU7CivnjKsgPiBjYXQ7CivnjKogPiBwaWc7CivlnZAgPiBzaXQ7CivorIIgPiBzYXk7Civni5cgPiBkb2c7Civoq4sgPiBhc2s7Civnu4ggPiBlbmQ7CivliIcgPiBjdXQ7CivniqwgPiBkb2c7CivoqqQgPiBlcnI7CivlsJQgPiB5b3U7Civng60gPiBob3Q7Civlj6QgPiBvbGQ7CivniZsgPiBjb3c7CivniYAgPiBiZWQ7Civop4AgPiBzZWU7CivkvY4gPiBsb3c7CivoprMgPiBzZWU7CivnhrEgPiBob3Q7Civku40gPiB5ZXQ7CivoposgPiBzZWU7CivohJogPiBsZWc7CivkupEgPiBzYXk7CivkubAgPiBidXk7CivlpYggPiBidXQ7CivmjpIgPiByb3c7Civlo68gPiBiaWc7Civlo54gPiBiYWQ7Civlo4ogPiBiYWQ7Civmub4gPiBiYXk7CivloqggPiBpbms7CivlkKYgPiBub3Q7Civpo58gPiBlYXQ7CivooZMgPiBhcnQ7Civmv5ggPiBtdWQ7Civmv5UgPiB3ZXQ7CivpnLIgPiBkZXc7CivpvaIgPiBhZ2U7CivpvaEgPiBhZ2U7CivonZkgPiBiYXQ7CivonYsgPiB3YXg7CivpvKAgPiByYXQ7Civot5EgPiBydW47CivonIIgPiBiZWU7CivoibogPiBhcnQ7Civpu54gPiBkb3Q7CivmkYcgPiB3YWc7CivpobYgPiB0b3A7Civmub8gPiB3ZXQ7Civnq68gPiBlbmQ7Civml6cgPiBvbGQ7CivmsrkgPiBvaWw7Civol50gPiBhcnQ7Civmr5UgPiBlbmQ7Civol4kgPiBtYXQ7CivmtrIgPiBzYXA7Civolq8gPiB5YW07CivogLMgPiBlYXI7CivllosgPiBuYWc7CivllZwgPiBzaXA7CivllY8gPiBhc2s7Civms6UgPiBtdWQ7Civms6MgPiBjcnk7Civlk4AgPiBzYWQ7CivlhrAgPiBpY2U7Civor68gPiBlcnI7Civlh6EgPiBhbGw7CivmsZ0gPiB5b3U7CivosJMgPiBzYXk7Civmna8gPiBjdXA7CivmsLcgPiBpY2U7CivmsKMgPiBhaXI7CivmsJcgPiBhaXI7CivokIwgPiBidWQ7CivotK0gPiBidXk7CivpgJQgPiB3YXk7CivmkYYgPiBwdXQ7CivlhbggPiBsYXc7CivojLYgPiB0ZWE7CivljbUgPiBlZ2c7Civmkq0gPiBzb3c7Civoh4IgPiBhcm07CivmrLcgPiBzb2I7CivljJogPiBib3g7CivmkakgPiBydWI7CivppJAgPiBlYXQ7CivlhqAgPiBjYXA7Civoir0gPiBidWQ7CivoirggPiBydWU7CivliqMgPiBiYWQ7Civlib0gPiByb2I7CivlibIgPiBjdXQ7CivnvJggPiBoZW07Civkv6kgPiB0d287Civlo64gPiBiaWc7Civlv6cgPiBzYWQ7CivoiIogPiBvbGQ7CivoiIcgPiBhbmQ7CivpvoQgPiBhZ2U7Civmg6ggPiBzYWQ7Civohb4gPiBmbHk7Civmn5MgPiBkeWU7Civohr8gPiBwdXM7CivmprsgPiBjb3Q7CivlhoYgPiB5ZW47CivlhakgPiB0d287CivlhZIgPiBzb247CivohZAgPiByb3Q7CivlhZAgPiBzb247CivohIIgPiBmYXQ7Civpo5sgPiBmbHk7CivogqUgPiBmYXQ7Civmj7QgPiBhaWQ7Civog5YgPiBmYXQ7Civlk7wgPiBodW07CivlgbUgPiBzcHk7CivpoZsgPiB0b3A7CivpoY4gPiBqYXc7CivlgLYgPiBhbGw7CivpoIIgPiB0b3A7CivnvZAgPiBqYXI7CivmjbcgPiB3aW47CivpnKcgPiBmb2c7Civkub4gPiBkcnk7Civkv7EgPiBhbGw7CivotaIgPiB3aW47CivnvJ0gPiBzZXc7CivmipogPiBwYXQ7CivmjJYgPiBkaWc7Civmm50gPiBzdW47Civpm74gPiBmb2c7CivmmpEgPiBob3Q7CivpoqAgPiB0b3A7CivmiYcgPiBmYW47Civmm7AgPiBzYXk7CivkuZ4gPiBiZWc7CivotYwgPiBiZXQ7CivnuKsgPiBzZXc7CivkuKEgPiB0d287CivmrKAgPiBvd2U7CivmsJsgPiBnYXM7CivnuIEgPiBoZW07Civnt6AgPiB0aWU7CivlvJcgPiBub3Q7CivntrIgPiBuZXQ7CivmlqwgPiBjdXQ7CivntbYgPiBjdXQ7Civovp8gPiBsYXc7CivntYIgPiBlbmQ7CivopYQgPiBhaWQ7CivngpIgPiBmcnk7CivplKEgPiB0aW47CivntIUgPiByZWQ7CivmkqsgPiBwYXQ7CivpkbUgPiBqYXI7CivlnZEgPiBwaXQ7CivmkJYgPiB3YWc7Civmj7ogPiB3YWc7CivmkpUgPiByaXA7Civmj4kgPiBydWI7Civno5UgPiBoaXQ7CivmlqkgPiBjdXQ7CivmjqAgPiByb2I7CivmjpggPiBkaWc7CivosI4gPiBsaWU7CivpipwgPiBiaXQ7CivotYsgPiB0YXg7Civlm4ogPiBiYWc7CivmiLAgPiB3YXI7CivmiKYgPiB3YXI7CivmhoIgPiBzYWQ7CivmkIIgPiBodWc7CivmhZggPiBzYWQ7CivkvqYgPiBzcHk7Civlo7YgPiBqYXI7CivlvJMgPiBib3c7CivonKEgPiB3YXg7CivlupAgPiBodXQ7CivmrbkgPiBiYWQ7Civmg58gPiBidXQ7CivooZQgPiBiaXQ7CivlnY4gPiBwaXQ7CivlhbkgPiBub3c7Civmr68gPiBydWc7CivpkqUgPiBrZXk7CivmlqcgPiBheGU7CivotY4gPiBidXk7CivlvaQgPiByZWQ7Civnh6UgPiBkcnk7CivkvawgPiBtYW47CivnnoUgPiBzZWU7CivouaYgPiBob3A7CivpnIQgPiBza3k7Civnv6kgPiBmbHk7CivmmqggPiBhbmQ7Civov6IgPiBmYXI7CivnvJQgPiB0aWU7CivopJogPiBiYWc7CivomoIgPiBhbnQ7Civmj40gPiBoaXQ7Civmk4IgPiBydWI7CivplIQgPiBob2U7CivmjYUgPiBqYWI7CivpnqAgPiBib3c7CivpqrAgPiBkaWU7CivouIkgPiBob3A7CivmoaggPiBvYXI7Civmi4wgPiBtaXg7Civni7ggPiBmb3g7CivngJsgPiBzZWE7CivlmakgPiBiYWQ7Civok5MgPiBidWQ7CivnqpYgPiBwaXQ7CivmjrogPiBtaXg7CivnjJYgPiBtYWQ7Civotr4gPiB0b2U7CivomLggPiBkaXA7Civmt6QgPiBtdWQ7CivnkKYgPiBnZW07CivohJMgPiBwdXM7CivnlbggPiBvZGQ7Civnm44gPiBjdXA7CivojJcgPiB0ZWE7Civog6UgPiBhbGw7CivmgIYgPiBzYWQ7Civms54gPiBtdWQ7CivliZAgPiBjdXQ7CivoiIAgPiBkaXA7Civlna8gPiBkYW07CivloLAgPiBkYW07CivlubogPiBvbmU7Civnia8gPiBjb3c7CivlvLwgPiBhaWQ7Civps50gPiBlZWw7CivmlqsgPiBjdXQ7CivmgKkgPiBzaHk7CivmuqUgPiBiaWc7CivmqbkgPiBvYXI7Civpu6AgPiBzbHk7Civnu4wgPiBzZXc7CivliZwgPiBjdXQ7CivnvZQgPiBuZXQ7CivpopogPiBqYXc7CivllL8gPiBzYWQ7CivogKggPiBob2U7CivohpggPiBmYXQ7CivplbMgPiBiaXQ7CivohbQgPiBmYXQ7Civni68gPiBzbHk7CivplaIgPiBob2U7Civoo6ggPiBhaWQ7CivplJsgPiBhZHo7Civlm7UgPiBhbGw7CivpgoggPiBmYXI7CivmrpIgPiBkaWU7CivllZYgPiBlYXQ7CivpuosgPiBlbGs7Civps40gPiBmaW47CivliI0gPiBtb3c7CivkvpcgPiBiaWc7CivmpasgPiBvYXI7CivnjKEgPiBwaWc7Civmn54gPiBvYWs7CivkvaUgPiBhbGw7Civps5cgPiBlZWw7CivpnqMgPiB0YW47Civmo7kgPiBvYXI7CivpmYIgPiBkYW07CivmroEgPiBkaWU7Civop5ogPiBqdWc7Civoh6wgPiBsYXc7CivnjIMgPiBkb2c7Civlr6QgPiBmZXc7Civlg5YgPiBqb3k7Civniq0gPiBkb2c7Civnvp0gPiByYW07CivospQgPiBmb3g7Civop4wgPiBzZWU7Civmp6AgPiBvYWs7CivmursgPiB3ZXQ7Civoip8gPiBtb3c7Civkv6MgPiBiaWc7Civnk78gPiBqYXI7CivpgJYgPiBmYXI7Civlk5wgPiBzaXA7CivpmrAgPiBsb3c7CivpsqEgPiBlZWw7Civmr7kgPiBydWc7CivmrqogPiBkaWU7CivnvI8gPiBoZW07CivppaMgPiBlYXQ7Civln6QgPiBhZGQ7Civlna0gPiBtdWQ7CivpvqUgPiBiZWc7CivpvaMgPiBhY3Q7CivpvKEgPiByYXQ7Civpu5UgPiByZWQ7CivpuYsgPiBlbXU7CivptJ4gPiBvd2w7CivpspUgPiByb2U7CivpsbogPiBlZWw7CivpsZQgPiBlZWw7CivpsZMgPiBlZWw7CivpsLsgPiBlZWw7CivpsK0gPiBmaW47Civprp4gPiByb2U7CivprLcgPiBwb3Q7CivprLQgPiBwb3Q7CivprIYgPiBsYXg7Civpq6IgPiB3aWc7Civpqr0gPiBsZWc7CivpqLUgPiBiYXk7CivpqLMgPiBydW47CivpqLAgPiBmbHk7CivpqKIgPiBiYXk7CivpqIIgPiByZWQ7Civpp4kgPiBiaWc7CivppJQgPiBlYXQ7Civpo6AgPiBlYXQ7CivpoZogPiB0b3A7CivpoLMgPiByZWQ7CivpoKsgPiBib3c7Civpn5YgPiB0YW47Civpn44gPiByZWQ7CivpmKwgPiBwaXQ7CivpkbAgPiBrZXk7Civpka8gPiBhd2w7CivpkaMgPiBiaXQ7CivpkI8gPiBjYXA7Civpj5ogPiBheGU7CivpjqEgPiBob2U7Civpjb4gPiBjdXA7CivpjKsgPiB0aW47CivpjKQgPiBob2U7CivpjJsgPiBhZHo7CivpjJQgPiBjYXA7Civpi6QgPiBob2U7CivpiY8gPiBob2U7CivpgYkgPiBzcHk7CivovZEgPiBydXQ7CivouLYgPiBwYXc7Civot6YgPiBob3A7CivotJYgPiBidXk7CivotI8gPiB3aW47Civos60gPiBiZXQ7Civos6YgPiB0YXg7CivospwgPiBhcGU7CivospMgPiBjYXQ7CivosbwgPiBmb3g7CivosbcgPiBtYW47CivosawgPiBwaWc7CivosaggPiBwaWc7CivosZ0gPiBzb3c7CivorIogPiBsaWU7Civopr8gPiBzZWU7CivopqkgPiBzZWU7CivopowgPiBzZWU7Civoo4AgPiBtYXQ7CivooZwgPiB3YXk7CivooK4gPiBiZWU7CivooJ8gPiB3YXg7Civonp4gPiBhbnQ7CivonpggPiBhbnQ7Civona8gPiBhcGU7CivonJEgPiBlZ2c7Civol7cgPiB5YW07CivolbcgPiB5YW07CivolZMgPiBydWU7CivolIsgPiBkcnk7Civok7ogPiBhcnQ7Civok6MgPiB5YW07CivokrQgPiBwb2Q7CivokYQgPiBtYXQ7CivokKAgPiBidWQ7CivojLIgPiBub3c7CivoirsgPiBtb3c7CivoiaogPiBvYXI7Civoh5UgPiBmYXQ7Civoh4cgPiBmYXQ7Civohp8gPiBmYXQ7CivohosgPiBmYXQ7CivohoMgPiBmYXQ7Civogq0gPiBmYXQ7CivogoAgPiBwZW47CivogKEgPiBob2U7Civnv74gPiBmbHk7Civnv4MgPiBmbHk7CivnvpggPiByYW07CivnvocgPiBpbm47CivnvbsgPiBuZXQ7CivnvaYgPiBuZXQ7CivnvZ8gPiBuZXQ7CivnvYYgPiBqYXI7CivnvL4gPiBqYXI7Civnt7YgPiBoZW07Civnt7UgPiBuZXQ7Civnt7AgPiBuZXQ7Civnt6MgPiBoZW07CivntZUgPiBjdXQ7CivntYAgPiBzZXc7CivntK4gPiB0aWU7CivnsaUgPiBrZXk7CivnrpEgPiBmYW47Civnqp4gPiBwaXQ7CivnqowgPiBwaXQ7CivnqoogPiBwaXQ7CivnqoUgPiBmYXI7CivnoLIgPiBndW47CivnnrYgPiBkaW07CivnnYogPiBzZWU7CivnnJsgPiBkaW07CivnmZkgPiBpbGw7CivnmKggPiBtYWQ7CivnmI8gPiBpbGw7Civnl5cgPiBpbGw7CivnlJIgPiBqYXI7CivnlIcgPiBqYXI7CivnlIEgPiBqdWc7CivnlIAgPiBqYXI7Civnk7sgPiBqYXI7Civnk4AgPiBnZW07CivnkoUgPiBnZW07CivnjoYgPiBub3c7CivnjoAgPiBwaWc7CivnjasgPiBkb2c7CivnjaogPiBzbHk7CivnjaIgPiBkb2c7CivnjK0gPiBhcGU7CivnjKggPiBhcGU7CivnibwgPiBtYW47CivniL4gPiB5b3U7CivnhJ4gPiBkaW07CivngYsgPiBsYXc7Civmvp0gPiBtdWQ7CivmvZogPiBnYXk7CivmspIgPiBub3Q7Civmr6cgPiBmdXI7CivmrqMgPiBkaWU7Civmrp4gPiBkaWU7Civmrb8gPiBkaWU7CivmraAgPiBzaXA7Civmq6cgPiBvYWs7Civmq5MgPiBvYXI7Civmq4IgPiBvYXI7Civmqp0gPiBvYXI7CivmqacgPiBodXQ7CivmqKAgPiBlbG07Civmp7MgPiBvYXI7CivmpY4gPiBwZWc7CivmpLcgPiBib3g7Civmo5MgPiBoaXQ7CivmorYgPiBvYXI7CivmoqkgPiBob2Q7Civmoa4gPiBjdXA7Civmn7ggPiBjdXA7CivmnYUgPiB0dWI7Civmm4EgPiBhbmQ7CivmmZ4gPiBkcnk7CivmmIQgPiBiaWc7CivmlrggPiBjdXQ7CivmlrIgPiBjdXQ7CivmlqggPiBheGU7CivmlLUgPiByYXA7CivmlLQgPiByYXA7Civmk7ogPiBwdXQ7CivmkZ8gPiBodWc7CivmkLAgPiBkaWc7CivmkKggPiBydWI7CivmkKcgPiBmYW47CivmkIMgPiBhbGw7CivmjLwgPiBydWI7CivmhbEgPiBzYWQ7CivmhLQgPiBzYWQ7Civmg5kgPiBzYWQ7CivlvKggPiBib3c7CivlvKQgPiBib3c7Civlu6wgPiBodXQ7CivluKMgPiBiYWc7CivlsJMgPiB5b3U7CivlsJIgPiB5b3U7Civlr5kgPiBiYWQ7CivlrJsgPiBhcHQ7CivlprUgPiBtYW47CivlprMgPiB5b3U7Civlpa0gPiByZWQ7CivlpZwgPiBiaWc7CivlpYwgPiBkb3Q7Civlo7ogPiBqYXI7Civlo7cgPiBqYXI7CivloqsgPiBjdXA7CivloIwgPiBkYW07Civln7YgPiBhcnQ7Civln6cgPiBkYW07CivlnIcgPiBhbGw7CivlmqIgPiBiYWc7CivlmowgPiBzaXA7CivllqsgPiBlYXQ7CivllZcgPiBlYXQ7CivljLggPiBib3g7CivlipogPiBjdXQ7CivlibggPiBjdXQ7Civlia4gPiBjdXQ7CivliYkgPiBjdXQ7CivliLIgPiBjdXQ7Civlh6MgPiBhbGw7Civlh6IgPiBhbGw7Civlh4MgPiBtdWQ7CivlhqsgPiBpY2U7Civlhp4gPiBmYXI7Civlg4kgPiBhbGw7Civlga8gPiBzb2I7CivlgJ4gPiBmYXI7Civkv4EgPiBiaWc7CivkvoogPiBiaWc7Civkvb0gPiBhaWQ7CivkupMgPiBoaXM7CivkuoEgPiBkcnk7CivkuaIgPiBsaWQ7CivkuLYgPiBkb3Q7Civks6AgPiBvd2w7CivksoogPiBmcnk7CivksKAgPiBnb2Q7Civkqp4gPiBiYWQ7CivkqpogPiBob3Q7CivkqYYgPiBvbGQ7CivkqL8gPiBiYWQ7CivkopsgPiBmYXI7CivkopMgPiBiZWQ7CivkoZwgPiBjYXI7CivknYYgPiBob2c7CivknKMgPiBqb3k7Civkl7YgPiB3YXg7Civkl6wgPiBiZWU7Civkl6YgPiBiZWU7CivkkqwgPiBub3Q7CivkkYsgPiBmYXQ7CivkkYogPiBmYXQ7CivkkYIgPiBmYXQ7CivkkL4gPiBmYXQ7CivkkLUgPiBmYXQ7CivkkKogPiBmYXQ7CivkkKkgPiBmYXQ7CivkkJ8gPiBmYXQ7CivkkI8gPiBmYXQ7CivkkI4gPiBmYXQ7CivkkIkgPiBmYXQ7Civkj7sgPiBjYW47Civkj7QgPiBkaW07Civkj6UgPiBkcnk7Civkj5wgPiBmYXQ7CivkjosgPiBmbHk7CivkjZ0gPiBuZXQ7CivkjZUgPiBuZXQ7CivkjZIgPiBuZXQ7CivkjKIgPiByYXc7Civki6wgPiBydWc7Civki54gPiB3ZWI7Civki4QgPiB3ZWI7CivkipEgPiBwYXk7Civkib4gPiBiYWQ7Civkhr4gPiBiaWc7CivkhrEgPiBiaWc7Civkga4gPiBzYWQ7CivjvpEgPiBmYXQ7CivjuosgPiBwaWc7CivjuYUgPiBhbGw7CivjuIEgPiBkcnk7Civjt6ogPiBmYXQ7Civjt6MgPiByZWQ7CivjtLwgPiB3ZXQ7CivjtLcgPiB3ZXQ7Civjs7QgPiBtdWQ7Civjsq0gPiBydWc7CivjspYgPiBmdXI7Civjro4gPiBjdXA7CivjroggPiBidXQ7Civjq5MgPiBhaXI7CivvqJYgPiBwaWc7CivvqIogPiBzZWU7CivvqIAgPiBjdXQ7Civvp74gPiB0ZWE7Civvp6MgPiBtdWQ7CivjpqcgPiBzYWQ7Civvpp0gPiBiYWQ7CivvpoIgPiBodXQ7CivjpoAgPiBqb3k7CivvpbggPiB0d287CivvpbUgPiByb2I7CivjpaIgPiBiYWQ7CivjpZEgPiBzYWQ7CivvpLggPiBkZXc7CivvpLQgPiBvbGQ7CivvpLEgPiBvYXI7CivvpKcgPiB3YXg7CivvpJwgPiBlZ2c7CivjpJogPiBqb3k7CivvpIwgPiBidXQ7CivjpIggPiBzYWQ7CivjoqAgPiBmYXI7CivjnLggPiBzaW47CivjmpogPiBiaWc7CivjmJQgPiBlYXQ7Civjl5QgPiBqb3k7CivjlYUgPiBiaWc7Civjk4kgPiBpY2U7CivjkrMgPiB0d287CivjkqogPiB0aW47Civjkb4gPiBqb3k7CivjkLogPiBhbGw7CivkuI0gPiBubzsKK+S4uiA+IGRvOwor5LmLID4gJydzOwor5b6DID4gZ287CivlvoAgPiBnbzsKK+S6jiA+IGluOwor6KGMID4gZ287CivlpoIgPiBpZjsKK+W8hCA+IGRvOwor5oiWID4gb3I7CivlroMgPiBpdDsKK+iLpSA+IGlmOwor54iyID4gZG87CivlkrEgPiB1czsKK+eCuiA+IGRvOwor6YCCID4gZ287CivlgJggPiBpZjsKK+aWvCA+IGluOwor5ZOfID4gYWg7Civll6ggPiBoaTsKK+W9nSA+IHlpOwor5YKlID4gaWY7CivplLEgPiBvejsKK+W+giA+IGdvOwor6ZKUID4gbWQ7CivkvLIgPiB3ZTsKK+mVpCA+IHBhOwor6ZWOID4gbnA7Civpk7kgPiBscjsKK+WkgiA+IGdvOwor6ZS/ID4gZXM7CivplJ0gPiB0YzsKK+mUmCA+IG5vOwor6ZSVID4gYWM7CivplIogPiBvejsKK+mOnSA+IHRjOwor6Yy8ID4gbnA7CivpjJkgPiBvejsKK+mLnSA+IG96Owor6L+sID4gZ287CivnuYQgPiBiZTsKK+ezjiA+IG1tOwor57KoID4gaG07Civnso0gPiBtbTsKK+eygSA+IGttOwor57G1ID4gZG07CivnpYIgPiBoZTsKK+eJoCA+IGl0Owor5pyBID4gaWY7CivmlLIgPiB1cDsKK+aJtSA+IGluOwor5b2eID4geWk7CivlvZwgPiB5aTsKK+W9myA+IHlpOwor5bu0ID4gZ287Civll4ggPiBvaDsKK+WWsiA+IGFoOwor5ZakID4gYWg7CivlkoEgPiBzbzsKK+WFoSA+IGhnOwor5YWeID4gbWc7CivlhZ0gPiBkZzsKK+WEuyA+IGlmOwor5YG6ID4gdXM7CivkvaIgPiBoZTsKK++oiCA+IGdvOwor76W0ID4gaWY7CivvpacgPiBubzsKK++lgyA+IGRvOwor5L2ZID4gaTsKK+WQviA+IGk7CivkuoggPiBpOwor5L6sID4gaTsKK+m6vyA+IGk7CivmqLYgPiBjOwor5YSCID4gaTsKK+OAgiA8PiAnLic7Cis6OiBmdWxsd2lkdGgtaGFsZndpZHRoICgpOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YzAwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9FRElDVC50eHQKQEAgLTAsMCArMSwxMTYwMTYgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgQ29udmVydCBDSksgY2hhcmFjdGVycworIyBOb3RlOiBhZGRzIHNwYWNlIGJldHdlZW4gdGhlbSBhbmQgbGV0dGVycy4KKzo6IChoYWxmd2lkdGgtZnVsbHdpZHRoKTsKKzo6IChrYXRha2FuYS1sYXRpbik7Cis6OiAoaGlyYWdhbmEtbGF0aW4pOworCiskdGVybWluYWxQdW5jdCA9IFtcLlwsXDpcO1w/XCHvvI7vvIzvvJrvvJ/vvIHjgILjgIHvvJtbOlBlOl1bOlBmOl1dOworJHRlcm1pbmFsUHVuY3QgeyB9IFs6TDpdID4gJyAnOworWzpMOl0geyB9IFtbOkhhbjpdWzpQczpdWzpQaTpdXT4gJyAnOworCiska2F0YSA9IFtb776e776f772w44O8XVs6a2F0YWthbmE6XV07Ciska2F0YSB7IH0gW1s6TDpdLSRrYXRhXT4gJyAnOworW1s6TDpdLSRrYXRhXSB7IH0gJGthdGEgPiAnICc7CisKK1s6aGlyYWdhbmE6XSB7IH0gW1s6TDpdLVs6aGlyYWdhbmE6XV0gPiAnICc7CitbWzpMOl0tWzpoaXJhZ2FuYTpdXSB7IH0gWzpoaXJhZ2FuYTpdPiAnICc7CisKKyMgU3RhcnQgUkFXIGRhdGEgZm9yIGNvbnZlcnRpbmcgQ0pLIGNoYXJhY3RlcnMKK+azleWtpuezu+Wkp+WtpumZouWFsemAmuWFpeWtpuippumokyA8IGhvdWdha3VrZWlkYWlnYWt1aW5reW91dHN1dW55dXVnYWt1c2hpa2VuXCA7CivnsbPlm73lpKflrablhaXlrablhbHpgJroqabpqJMgPCBiZWlrb2t1ZGFpZ2FrdW55dXVnYWt1a3lvdXRzdXVzaGlrZW5cIDsKK+acnemuruawkeS4u+S4u+e+qeS6uuawkeWFseWSjOWbvSA8IGNob3VzZW5taW5zaHVzaHVnaWppbm1pbmt5b3V3YWtva3VcIDsKK+iHquWLlei7iuaQjeWus+izoOWEn+iyrOS7u+S/nemZuiA8IGppZG91c2hhc29uZ2FpYmFpc2hvdXNla2luaW5ob2tlblwgOwor6Ieo5YW16ZeY6ICF55qG6Zmj6KOC5Zyo5YmNIDwgcmlucHlvdXRvdXNoYWthaWppbnJldHN1emFpemVuXCA7Civml6XmnKzlirTlg43ntYTlkIjnt4/oqZXorbDkvJogPCBuaWhvbnJvdWRvdWt1bWlhaXNvdWh5b3VnaWthaVwgOwor5aSq5bmz5rSL5qmf5qKw57+76Kiz5Y2U5LyaIDwgdGFpaGVpeW91a2lrYWlob24nJ3lha3VreW91a2FpXCA7Civli6TlirTogIXosqHnlKPlvaLmiJDkv4PpgLIgPCBraW5yb3VzaGF6YWlzYW5rZWlzZWlzb2t1c2hpblwgOwor6LaF6LaF5aSn6KaP5qih6ZuG56mN5Zue6LevIDwgY2hvdWNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor57WM5riI5Y2U5Yqb6ZaL55m65qmf5qeLIDwga2VpemFpa3lvdXJ5b2t1a2FpaGF0c3VraWtvdVwgOwor5YyX5rW36YGT6ZaL55m65bqB6ZW35a6YIDwgaG9ra2FpZG91a2FpaGF0c3VjaG91Y2hvdWthblwgOwor5ouY5p2f5ZCN57C/5byP5q+U5L6L5Luj6KGo5Yi2IDwga291c29rdW1laWJvaGlyZWlkYWloeW91c2VpXCA7Civnn6XorZjpm4bntITlnovnlKPmpa0gPCBjaGlzaGlraXNodXV5YWt1Z2F0YXNhbmd5b3VcIDsKK+WkluWbveS6uueZu+mMsuiovOaYjuabuCA8IGdhaWtva3VqaW50b3Vyb2t1c2hvdW1laXNob1wgOwor5aSq5bmz5rSL5a6J5YWo5L+d6Zqc5p2h57SEIDwgdGFpaGVpeW91YW56ZW5ob3Nob3Vqb3V5YWt1XCA7Civmk43nuKbluK3pn7Plo7DoqJjpjLLoo4Xnva4gPCBzb3VqdXVzZWtpb25zZWlraXJva3Vzb3VjaGlcIDsKK+aIpueVpeWFteWZqOWJiua4m+adoee0hCA8IHNlbnJ5YWt1aGVpa2lzYWt1Z2Vuam91eWFrdVwgOwor6Iiq56m65a6H5a6Z5oqA6KGT56CU56m25omAIDwga291a3V1dWNodXVnaWp1dHN1a2Vua3l1dWpvXCA7Civlm73pmpvmqZ/morDnv7voqLPljZTkvJogPCBrb2t1c2Fpa2lrYWlob24nJ3lha3VreW91a2FpXCA7Civoh6rlvovnpZ7ntYzlpLHoqr/nl4cgPCBqaXJpdHN1c2hpbmtlaXNoaXRjaG91c2hvdVwgOwor5Zu96Zqb6Zu75rCX6YCa5L+h6YCj5ZCIIDwga29rdXNhaWRlbmtpdHN1dXNoaW5yZW5nb3VcIDsKK+aylue4hOmWi+eZuuW6gemVt+WumCA8IG9raW5hd2FrYWloYXRzdWNob3VjaG91a2FuXCA7CivmtbflpJbntYzmuIjljZTlipvln7rph5EgPCBrYWlnYWlrZWl6YWlreW91cnlva3VraWtpblwgOwor5pel57Gz5a6J5YWo5L+d6Zqc5p2h57SEIDwgbmljaGliZWlhbnplbmhvc2hvdWpvdXlha3VcIDsKK+a1ruWLleWwj+aVsOeCuea8lOeul+apn+aniyA8IGZ1ZG91c2hvdXN1dXRlbicnZW56YW5raWtvdVwgOwor54++6YeR6Ieq5YuV6aCQ6YeR5pSv5omV5qmfIDwgZ2Vua2luamlkb3V5b2tpbnNoaWhhcmFpa2lcIDsKK+W8geiovOazleeahOWUr+eJqeirliA8IGJlbnNob3Vob3V0ZWtpeXVpYnV0c3Vyb25cIDsKK+aIpuayoeiAhei/veaCvOiomOW/teaXpSA8IHNlbmJvdHN1c2hhdHN1aXRvdWtpbmVuYmlcIDsKK+Wbvemam+WNlOWKm+S6i+alreWboyA8IGtva3VzYWlreW91cnlva3VqaWd5b3VkYW5cIDsKK+aIpuihk+iIquepuue1seWItuacrOmDqCA8IHNlbmp1dHN1a291a3V1dG91c2VpaG9uYnVcIDsKK+W3pealremrmOetieWwgumWgOWtpuagoSA8IGtvdWd5b3Vrb3V0b3VzZW5tb25nYWtrb3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hOapn+aniyA8IGtpdGF0YWlzZWl5b3Vqb3V5YWt1a2lrb3VcIDsKK+i2heWkp+imj+aooembhuepjeWbnui3ryA8IGNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5a6X5pWZ55qE54us56uL5oCnIDwgc2h1dWt5b3V0ZWtpZG9rdXJpdHN1c2VpXCA7CivljJblrablhbXlmajnpoHmraLmnaHntIQgPCBrYWdha3VoZWlraWtpbnNoaWpvdXlha3VcIDsKK+mWoueojuiyv+aYk+S4gOiIrOWNlOWumiA8IGthbnplaWJvdWVraWlwcGFua3lvdXRlaVwgOwor5Li76L6e6aeG5YuV5Y+l5qeL6YCg5paH5rOVIDwgc2h1amlrdWRvdWt1a291em91YnVucG91XCA7Civnm7TmjqXnhafmupblsITmkoMgPCBjaG9rdXNldHN1c2hvdWp1bnNoYWdla2lcIDsKK+e3j+WQiOeahOWTgeizqueuoeeQhiA8IHNvdWdvdXRla2loaW5zaGl0c3VrYW5yaVwgOwor55aR5Ly855u05o6l55uu55qE6KqeIDwgZ2lqaWNob2t1c2V0c3Vtb2t1dGVraWdvXCA7CivlnKjnlZnmnJ/plpPmm7TmlrDoqLHlj68gPCB6YWlyeXV1a2lrYW5rb3VzaGlua3lva2FcIDsKK+eJueauiuWPluaJsemDteS+vyA8IHRva3VzaHV0b3JpYXRzdWthaXl1dWJpblwgOwor5Lm+5rm/55CD5rm/5bqm6KiIIDwga2Fuc2hpdHN1a3l1dXNoaXRzdWRva2VpXCA7CivkuIflm73okZfkvZzmqKnmnaHntIQgPCBiYW5rb2t1Y2hvc2FrdWtlbmpvdXlha3VcIDsKK+S4h+WbveWbvemam+mfs+aomeaWh+WtlyA8IGJhbmtva3Vrb2t1c2Fpb25weW91bW9qaVwgOwor6KiA6Kqe5a2m55qE5a6f5Zyo6KuWIDwgZ2VuZ29nYWt1dGVraWppdHN1emFpcm9uXCA7CivlhqDnirbli5XohIjooYDmoJPnl4cgPCBrYW5qb3Vkb3VteWFrdWtlc3NlbnNob3VcIDsKK+enkeWtpuaKgOihk+W6gemVt+WumCA8IGthZ2FrdWdpanV0c3VjaG91Y2hvdWthblwgOwor5rW35rSL5oqV5qOE6KaP5Yi25p2h57SEIDwga2FpeW91dG91a2lraXNlaWpvdXlha3VcIDsKK+Wcp+WvhumZjeS8j+W/nOWKmyA8IGF0c3VtaXRzdWtvdWZ1a3VvdXJ5b2t1XCA7Civlhazoqo3ljbjlo7Lmpa3ogIUgPCBrb3VuaW4nJ29yb3NoaXVyaWd5b3VzaGFcIDsKK+i1pOihgOeQg+ayiOmZjemAn+W6piA8IHNla2tla2t5dXVjaGlua291c29rdWRvXCA7Civnn7PmsrnovLjlh7rlm73mqZ/mp4sgPCBzZWtpeXV5dXNodXRzdWtva3VraWtvdVwgOwor5YWs5YWx6IG35qWt5a6J5a6a5omAIDwga291a3lvdXNob2t1Z3lvdWFudGVpam9cIDsKK+aIpuihk+iIquepuue1seWItuePrSA8IHNlbmp1dHN1a291a3V1dG91c2VpaGFuXCA7Civph47nlJ/li5Xniankv53orbflm6PkvZMgPCB5YXNlaWRvdWJ1dHN1aG9nb2RhbnRhaVwgOwor6Ieq5YuV5YiX6LuK5Yi25b6h6KOF572uIDwgamlkb3VyZXNzaGFzZWlneW9zb3VjaGlcIDsKK+iHquWLlemHkemKreWHuuWFpeapnyA8IGppZG91a2luc2Vuc2h1dHN1bnl1dWtpXCA7CivlpKnnhLbos4fmupDkv53orbfoq5bogIUgPCB0ZW4nJ25lbnNoaWdlbmhvZ29yb25zaGFcIDsKK+WcsOmch+mbt+eBq+S6i+imqueItiA8IGppc2hpbmthbWluYXJpa2FqaW95YWppXCA7CivpnZ7luLjkuovmhYvlr77lh6boqIjnlLsgPCBoaWpvdWppdGFpdGFpc2hva2Vpa2FrdVwgOwor5qC45YiG6KOC55Sf5oiQ54mpIDwga2FrdWJ1bnJldHN1c2Vpc2VpYnV0c3VcIDsKK+WkmuiCoumBuOaKnuW8j+ippuWVjyA8IHRhc2hpc2VudGFrdXNoaWtpc2hpbW9uXCA7CivmlrDplqLopb/lm73pmpvnqbrmuK8gPCBzaGlua2Fuc2Fpa29rdXNhaWt1dWtvdVwgOwor6IG35qWt5Yil6Zu76Kmx5bizIDwgc2hva3VneW91YmV0c3VkZW53YWNob3VcIDsKK+iHquWLleWIl+i7iuWBnOatouijhee9riA8IGppZG91cmVzc2hhdGVpc2hpc291Y2hpXCA7CivoqIDoqp7lrabnmoToprPlv7Xoq5YgPCBnZW5nb2dha3V0ZWtpa2FuJyduZW5yb25cIDsKK+W+jOeZuueZuuWxlemAlOS4iuWbvSA8IGtvdWhhdHN1aGF0dGVudG9qb3Vrb2t1XCA7CivmirnmtojnmbvpjLLoqLzmmI7mm7ggPCBtYXNob3V0b3Vyb2t1c2hvdW1laXNob1wgOwor57WM5riI5LyB55S75bqB6ZW35a6YIDwga2VpemFpa2lrYWt1Y2hvdWNob3VrYW5cIDsKK+WGjeeUn+S4jeiJr+aAp+iyp+ihgCA8IHNhaXNlaWZ1cnlvdXNlaWhpbmtldHN1XCA7CivngavlipvmlK/mj7Toqr/mlbTnt5ogPCBrYXJ5b2t1c2hpZW5jaG91c2Vpc2VuXCA7CivlhaXlrablhbHpgJroqabpqJMgPCBueXV1Z2FrdWt5b3V0c3V1c2hpa2VuXCA7CivnoLTlo4rmtLvli5XpmLLmraLms5UgPCBoYWthaWthdHN1ZG91Ym91c2hpaG91XCA7CivlrqTlhoXnrqHlvKbmpb3lm6MgPCBzaGl0c3VuYWlrYW5nZW5nYWt1ZGFuXCA7CivmnbHkuqzmoKrlvI/luILloLQgPCB0b3VreW91a2FidXNoaWtpc2hpam91XCA7Civnorrnjoflr4bluqbplqLmlbAgPCBrYWt1cml0c3VtaXRzdWRva2Fuc3V1XCA7Civljp/lrZDlipvnmbrpm7vmiYAgPCBnZW5zaGlyeW9rdWhhdHN1ZGVuc2hvXCA7Civku6Pooajlj5bnt6DlvbkgPCBkYWloeW91dG9yaXNoaW1hcml5YWt1XCA7Civlj5bmibHoqqzmmI7mm7ggPCB0b3JpYXRzdWthaXNldHN1bWVpc2hvXCA7CivotaTljYHlrZflm73pmpvlp5Tlk6HkvJogPCBzZWtpanV1amlrb2t1c2FpaWlua2FpXCA7Civli6flloTmh7LmgqrlsI/oqqwgPCBrYW56ZW5jaG91YWt1c2hvdXNldHN1XCA7Civlm73pmpvov5Tkv6HliIfmiYvliLggPCBrb2t1c2FpaGVuc2hpbmtpdHRla2VuXCA7Civoq4foqbHooajnpLrmp4vpgKDnkIboq5YgPCBkYW53YWh5b3VqaWtvdXpvdXJpcm9uXCA7CivlhbHnlKPlhZrkuK3lpK7lp5Tlk6HkvJogPCBreW91c2FudG91Y2h1dW91aWlua2FpXCA7Civmna3lkajpnaLmkanmk6blipsgPCBrdWlzaHV1bWVubWFzYXRzdXJ5b2t1XCA7CivkuK3oj6/kurrmsJHlhbHlkozlm70gPCBjaHV1a2FqaW5taW5reW91d2Frb2t1XCA7CivmnbHmtbfpgZPkupTljYHkuInmrKEgPCB0b3VrYWlkb3Vnb2p1dXNhbnRzdWdpXCA7Civlroflrpnplovnmbrkuovmpa3lm6MgPCB1Y2h1dWthaWhhdHN1amlneW91ZGFuXCA7CivmsJHkuLvlhZrlhajlm73lp5Tlk6HkvJogPCBtaW5zaHV0b3V6ZW5rb2t1aWlua2FpXCA7Civoi7Hoqp7ln7rnpI7og73lipvoqabpqJMgPCBlaWdva2lzb25vdXJ5b2t1c2hpa2VuXCA7CivplpPmjqXnhafmupblsITmkoMgPCBrYW5zZXRzdXNob3VqdW5zaGFnZWtpXCA7CivkuInou7jlnKfnuK7oqabpqJPmqZ8gPCBzYW5qaWt1YXNzaHVrdXNoaWtlbmtpXCA7CivoppbogbTogIXlj4LliqDnlarntYQgPCBzaGljaG91c2hhc2Fua2FiYW5ndW1pXCA7Civlt57pmpvpgJrllYblp5Tlk6HkvJogPCBzaHV1c2FpdHN1dXNob3VpaW5rYWlcIDsKK+aWsOimj+agquW8j+WFrOmWiyA8IHNoaW5raWthYnVzaGlraWtvdWthaVwgOwor5ZGo5rOi5pWw5aSJ5o+b6KOF572uIDwgc2h1dWhhc3V1aGVua2Fuc291Y2hpXCA7Civlrabnv5LmjIflsI7opoHpoJggPCBnYWt1c2h1dXNoaWRvdXlvdXJ5b3VcIDsKK+aFouaAp+eWsuWKtOeXh+WAmee+pCA8IG1hbnNlaWhpcm91c2hvdWtvdWd1blwgOwor5YWs5a6z5a++562W5Z+65pys5rOVIDwga291Z2FpdGFpc2FrdWtpaG9uaG91XCA7Civml6nnmbrmgKfnl7TlkYbnl4cgPCBzb3VoYXRzdXNlaWNoaWhvdXNob3VcIDsKK+e1jOa4iOWbo+S9k+mAo+WQiOS8miA8IGtlaXphaWRhbnRhaXJlbmdvdWthaVwgOwor5oim6ZeY6Zu75a2Q5oim5oOF5aCxIDwgc2VudG91ZGVuc2hpc2Vuam91aG91XCA7Civkv6HnlKjljZTlkIzntYTlkIggPCBzaGluJyd5b3VreW91ZG91a3VtaWFpXCA7Civnj77ph5Hoh6rli5XmlK/miZXmqZ8gPCBnZW5raW5qaWRvdXNoaWhhcmFpa2lcIDsKK+W8pualveWbm+mHjeWlj+absiA8IGdlbmdha3VzaGlqdXVzb3VreW9rdVwgOwor5ryU57m555qE6Kqs5piO5rOVIDwgZW4nJ2VraXRla2lzZXRzdW1laWhvdVwgOwor5pyA6auY57WM5Za26LKs5Lu76ICFIDwgc2Fpa291a2VpZWlzZWtpbmluc2hhXCA7Civmt7HlnKjmgKfnnJ/oj4znl4cgPCBzaGluemFpc2Vpc2hpbmtpbnNob3VcIDsKK+ijheeUsuS6uuWToemBi+aQrOi7iiA8IHNvdWtvdWppbicnaW4nJ3VucGFuc2hhXCA7CivkuIDoiKzlkb3ku6TmvJTnrpfmqZ/mp4sgPCBpcHBhbm1laXJlaWVuemFua2lrb3VcIDsKK+e1seeOh+adn+e4m+eQhuirliA8IHRvdXNvdHN1c29rdWJha3VyaXJvblwgOwor5pys5oWL5oCn6auY6KGA5ZynIDwgaG9udGFpc2Vpa291a2V0c3VhdHN1XCA7Civml6XmnKzoqp7og73lipvoqabpqJMgPCBuaWhvbmdvbm91cnlva3VzaGlrZW5cIDsKK+mZuOS4iuerr+WxgOijhee9riA8IHJpa3Vqb3V0YW5reW9rdXNvdWNoaVwgOwor6Z+z56+A5Li76Z+z55qE5a2Q6Z+zIDwgb25zZXRzdXNodW9udGVraXNoaWluXCA7Civml6XnsbPosr/mmJPmkanmk6YgPCBuaWNoaWJlaWJvdWVraW1hc2F0c3VcIDsKK+iovOWIuOWPluW8leWnlOWToeS8miA8IHNob3VrZW50b3JpaGlraWlpbmthaVwgOwor6YCa5ZWG55Sj5qWt5aSn6IejIDwgdHN1dXNob3VzYW5neW91ZGFpamluXCA7CivmnIDpq5josqHli5nosqzku7vogIUgPCBzYWlrb3V6YWltdXNla2luaW5zaGFcIDsKK+efrei3nemboumbouedgOmZuOapnyA8IHRhbmt5b3JpcmljaGFrdXJpa3VraVwgOwor6YCa5ZWG6Iiq5rW35p2h57SEIDwgdHN1dXNob3Vrb3VrYWlqb3V5YWt1XCA7CivmqZ/og73ljZjkuIDljJbmlofms5UgPCBraW5vdXRhbicnaXRzdWthYnVucG91XCA7Civnn6Xog73mg4XloLHnoJTnqbbpg6ggPCBjaGlub3Vqb3Vob3VrZW5reXV1YnVcIDsKK+WKoOWcp+awtOWei+WOn+WtkOeCiSA8IGthYXRzdXN1aWdhdGFnZW5zaGlyb1wgOwor55Kw5aSq5bmz5rSL5Zyw6ZyH5bivIDwga2FudGFpaGVpeW91amlzaGludGFpXCA7Civou5/liKTlrprorZjliKXlmaggPCBuYW5oYW50ZWlzaGlraWJldHN1a2lcIDsKK+Wbveeri+WNmueJqemkqCA8IGtva3VyaXRzdWhha3VidXRzdWthblwgOwor56m65oOz56eR5a2m5bCP6KqsIDwga3V1c291a2FnYWt1c2hvdXNldHN1XCA7CivkurrnqK7lt67liKXkuLvnvqnogIUgPCBqaW5zaHVzYWJldHN1c2h1Z2lzaGFcIDsKK+aWsOWFpeekvuWToeaVmeiCsiA8IHNoaW4nJ255dXVzaGFpbmt5b3Vpa3VcIDsKK+aOqOWlqOaWh+eMruebrumMsiA8IHN1aXNob3VidW5rZW5tb2t1cm9rdVwgOwor6ZuG5Lit5rK755mC5a6kIDwgc2h1dWNodXVjaGlyeW91c2hpdHN1XCA7CivlvrPlt53kuInku6PlrrblhYkgPCB0b2t1Z2F3YXNhbmRhaWllbWl0c3VcIDsKK+iHqueEtueSsOWig+S/neWFqOazlSA8IHNoaXplbmthbmt5b3Vob3plbmhvdVwgOwor55Sf5rS75Y2U5ZCM57WE5ZCIIDwgc2Vpa2F0c3VreW91ZG91a3VtaWFpXCA7CivnkrDlpKrlubPmtIvpgKDlsbHluK8gPCBrYW50YWloZWl5b3V6b3V6YW50YWlcIDsKK+ihjOWLleS4u+e+qeW/g+eQhuWtpiA8IGtvdWRvdXNodWdpc2hpbnJpZ2FrdVwgOwor5paZ6YeR5Yil57SN6YO15L6/IDwgcnlvdWtpbmJldHN1bm91eXV1YmluXCA7CivkuK3ot53pm6LmoLjmiKblipsgPCBjaHV1a3lvcmlrYWt1c2Vucnlva3VcIDsKK+esrOS4gOasoeS4lueVjOWkp+aIpiA8IGRhaWljaGlqaXNla2FpdGFpc2VuXCA7CivovrLmpa3ljZTlkIzntYTlkIggPCBub3VneW91a3lvdWRvdWt1bWlhaVwgOwor5aSn6Zm45qiq5pat6YmE6YGTIDwgdGFpcmlrdW91ZGFudGV0c3Vkb3VcIDsKK+ebtOi9hOakjeawkeWcsCA8IGNob2trYXRzdXNob2t1bWluY2hpXCA7CivlpInli5Xngrrmm7/nm7jloLTliLYgPCBoZW5kb3VrYXdhc2Vzb3ViYXNlaVwgOwor5pyo6YCg5bu656+J54mpIDwgbW9rdXpvdWtlbmNoaWt1YnV0c3VcIDsKK+mrmOWIhuWtkOWQuOWPjuS9kyA8IGtvdWJ1bnNoaWt5dXVzaHV1dGFpXCA7Civmra/lhoXnmYLms5XlsILploDljLsgPCBzaGlrYXJ5b3Vob3VzZW5tb24nJ2lcIDsKK+aXpeexs+ani+mAoOWNlOitsCA8IG5pY2hpYmVpa291em91a3lvdWdpXCA7CivmqZ/morDnv7voqLPljZTkvJogPCBraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+akjeeJqeaAp+ibi+eZvSA8IHNob2t1YnV0c3VzZWl0YW5wYWt1XCA7Civkv6HnlKjlj5blvJXlhYggPCBzaGluJyd5b3V0b3JpaGlraXNha2lcIDsKK+S4reWkruihjOaUv+WumOW6gSA8IGNodXVvdWd5b3VzZWlrYW5jaG91XCA7CivljJflpKfopb/mtIvmnaHntIQgPCBraXRhdGFpc2VpeW91am91eWFrdVwgOwor5bi45YuZ5Y+W57eg5b25IDwgam91bXV0b3Jpc2hpbWFyaXlha3VcIDsKK+eSsOWkquW5s+a0i+eBq+WxseW4ryA8IGthbnRhaWhlaXlvdWthemFudGFpXCA7Civpm7vmsJfpgJrkv6HlpKflraYgPCBkZW5raXRzdXVzaGluZGFpZ2FrdVwgOwor6Iqz6aaZ5peP5YyW5ZCI54mpIDwgaG91a291em9rdWthZ291YnV0c3VcIDsKK+S4g+aYn+WkqemBk+iZqyA8IG5hbmFob3NoaXRlbnRvdW11c2hpXCA7CivlhoXplqPlrpjmiL/plbflrpggPCBuYWlrYWt1a2FuYm91Y2hvdWthblwgOwor5a6f5oOF6Kq/5p+75aeU5ZOh5LyaIDwgaml0c3Vqb3VjaG91c2FpaW5rYWlcIDsKK+W8pualveS6lOmHjeWlj+absiA8IGdlbmdha3Vnb2p1dXNvdWt5b2t1XCA7CivmsJHml4/lpKfomZDmrrogPCBtaW56b2t1ZGFpZ3lha3VzYXRzdVwgOwor56eR5a2m5Z+656SO56CU56m25omAIDwga2FnYWt1a2lzb2tlbmt5dXVzaG9cIDsKK+i2iuW5tOeUn+akjeeJqSA8IGV0c3VuZW5zZWlzaG9rdWJ1dHN1XCA7CivlpInlvaLnlJ/miJDntbHoqp7oq5YgPCBoZW5rZWlzZWlzZWl0b3Vnb3JvblwgOwor5qeL5oiQ57Sg57Wx5b6hIDwga291c2Vpc29rb3V6b3V0b3VneW9cIDsKK+Wuh+WumemWi+eZuuioiOeUuyA8IHVjaHV1a2FpaGF0c3VrZWlrYWt1XCA7CivnsbPpgKPpgqboiKrnqbrlsYAgPCBiZWlyZW5wb3VrdXVrb3VreW9rdVwgOwor5aSn6KaP5qih6ZuG56mN5Zue6LevIDwgZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WNl+eEoeWmmeazleiTruiPr+e1jCA8IG5hbXVteW91aG91cmVuZ2VreW91XCA7CivlpJblm73kurrnmbvpjLLms5UgPCBnYWlrb2t1amludG91cm9rdWhvdVwgOwor5YWx55Sj5YWa5pS/5rK75bGAIDwga3lvdXNhbnRvdXNlaWppa3lva3VcIDsKK+acqueiuuiqjemjm+ihjOeJqeS9kyA8IG1pa2FrdW5pbmhpa291YnV0dGFpXCA7CivkuIDphbjljJbngq3ntKDkuK3mr5IgPCBpc3NhbmthdGFuc29jaHV1ZG9rdVwgOwor5p2f57ib57aZ5om/5Y6f55CGIDwgc29rdWJha3VrZWlzaG91Z2VucmlcIDsKK+ebtOaOpeebrueahOiqniA8IGNob2t1c2V0c3Vtb2t1dGVraWdvXCA7CivlsILli5nlj5bnt6DlvbkgPCBzZW5tdXRvcmlzaGltYXJpeWFrdVwgOwor5LiA5bm055Sf5qSN54mpIDwgaWNoaW5lbnNlaXNob2t1YnV0c3VcIDsKK+m6u+iWrOWPlue3oOePrSA8IG1heWFrdXRvcmlzaGltYXJpaGFuXCA7CivkuInou7jlnKfnuK7oqabpqJMgPCBzYW5qaWt1YXNzaHVrdXNoaWtlblwgOwor6bq76Jas5Y+W57eg5rOVIDwgbWF5YWt1dG9yaXNoaW1hcmlob3VcIDsKK+epuui7jemAo+e1oeWwhuagoSA8IGt1dWd1bnJlbnJha3VzaG91a291XCA7Civljbjlo7LniankvqHmjIfmlbAgPCBvcm9zaGl1cmlidWtrYXNoaXN1dVwgOwor5YaZ55yf5Yik5a6a5rG65YudIDwgc2hhc2hpbmhhbnRlaWtlc3Nob3VcIDsKK+WJjeeri+iFuuiCpeWkp+eXhyA8IHplbnJpdHN1c2VuaGlkYWlzaG91XCA7CivlhazmraPlj5blvJXlp5Tlk6HkvJogPCBrb3VzZWl0b3JpaGlraWlpbmthaVwgOwor6Kqs5piO55qE5aal5b2T5oCnIDwgc2V0c3VtZWl0ZWtpZGF0b3VzZWlcIDsKK+S4reW/g+eahOW9ueWJsiA8IGNodXVzaGludGVraXlha3V3YXJpXCA7CivnqI7lvJXliY3lvZPmnJ/liKnnm4ogPCB6ZWliaWtpbWFldG91a2lyaWVraVwgOwor6YCj6YKm5Y+W5byV5aeU5ZOh5LyaIDwgcmVucG91dG9yaWhpa2lpaW5rYWlcIDsKK+WFsemAmuS4gOasoeippumokyA8IGt5b3V0c3V1aWNoaWppc2hpa2VuXCA7CivnrKzkuInnqK7pg7Xkvr/niakgPCBkYWlzYW5zaHV5dXViaW5idXRzdVwgOwor5Y+L5aW96YCa5ZWG6Iiq5rW3IDwgeXV1a291dHN1dXNob3Vrb3VrYWlcIDsKK+eEoeaLheS/neiyuOS7mOmHkSA8IG11dGFucG9rYXNoaXRzdWtla2luXCA7CivmtYHooYzmgKfogLPkuIvohbrngo4gPCByeXV1a291c2VpamlrYXNlbicnZW5cIDsKK+W/heimgeWNgeWIhuadoeS7tiA8IGhpdHN1eW91anV1YnVuam91a2VuXCA7Civnsr7npZ7nmoTmjIflsI7ogIUgPCBzZWlzaGludGVraXNoaWRvdXNoYVwgOwor5Y6f5a2Q54mp55CG5a2m6ICFIDwgZ2Vuc2hpYnV0c3VyaWdha3VzaGFcIDsKK+eyvuWvhuapn+aisOW3pealrSA8IHNlaW1pdHN1a2lrYWlrb3VneW91XCA7Civlho3lhaXlm73oqLHlj6/mm7ggPCBzYWlueXV1a29rdWt5b3VrYXNob1wgOwor5a6a5b2i5aSW6YO15L6/54mpIDwgdGVpa2VpZ2FpeXV1YmluYnV0c3VcIDsKK+i2heS4puWIl+ioiOeul+apnyA8IGNob3VoZWlyZXRzdWtlaXNhbmtpXCA7CivkuK3mnqLnpZ7ntYzns7vntbEgPCBjaHV1c3V1c2hpbmtlaWtlaXRvdVwgOwor5Lyd6YCB5Yi25b6h5ouh5by1IDwgZGVuc291c2VpZ3lva2FrdWNob3VcIDsKK+WPjue4ruacn+ihgOWcpyA8IHNodXVzaHVrdWtpa2V0c3VhdHN1XCA7Civml6XkuK3lj4vlpb3ljZTkvJogPCBuaXRjaHV1eXV1a291a3lvdWthaVwgOwor57eP55CG5bqc57eP5YuZ6ZW35a6YIDwgc291cmlmdXNvdW11Y2hvdWthblwgOwor5Zu95rCR6YeR6J6N5YWs5bqrIDwga29rdW1pbmtpbicneXV1a291a29cIDsKK+WNmOWtkOiRieakjeeJqSA8IHRhbnNoaXlvdXNob2t1YnV0c3VcIDsKK+WPo+i+uuWNmOe0lOeWseeWuSA8IGtvdWhlbnRhbmp1bmhvdXNoaW5cIDsKK+mAo+eri+aWueeoi+W8jyA8IHJlbnJpdHN1aG91dGVpc2hpa2lcIDsKK+mbhuWbo+WuieWFqOS/nemanCA8IHNodXVkYW4nJ2FuemVuaG9zaG91XCA7CivlkI3npZ7pq5jpgJ/pgZPot68gPCBtZWlzaGlua291c29rdWRvdXJvXCA7CivmlL7lsITmgKfpmY3kuIvniakgPCBob3VzaGFzZWlrb3VrYWJ1dHN1XCA7CivnkrDlooPkv53orbfkuLvnvqnogIUgPCBrYW5reW91aG9nb3NodWdpc2hhXCA7CivliqPmgKfpgbrkvJ3lvaLos6ogPCByZXNzZWlpZGVua2Vpc2hpdHN1XCA7Civml6XmnKzpmbjkuIroh6rooZvpmoogPCBuaWhvbnJpa3Vqb3VqaWVpdGFpXCA7CivpgJrllYbnlKPmpa3nnIEgPCB0c3V1c2hvdXNhbmd5b3VzaG91XCA7CivliJ3mnJ/pgbjmip7poIXnm64gPCBzaG9raXNlbnRha3Vrb3Vtb2t1XCA7Civlhajlm73mtKXmtKXmtabmtaYgPCB6ZW5rb2t1dHN1dHN1dXJhdXJhXCA7Civkv6Hku7vntbHmsrvliLbluqYgPCBzaGluJyduaW50b3VjaGlzZWlkb1wgOwor5Li76KaB6YOo57WC56uv5Z6LIDwgc2h1eW91YnVzaHV1dGFuZ2F0YVwgOwor5ZCI5oiQ5YyW5a2m5bel5qWtIDwgZ291c2Vpa2FnYWt1a291Z3lvdVwgOwor5Y6f5a2Q5Yqb55m66Zu7IDwgZ2Vuc2hpcnlva3VoYXRzdWRlblwgOwor5Zu95rCR5L2T6IKy5aSn5LyaIDwga29rdW1pbnRhaWlrdXRhaWthaVwgOwor5Zu96Zqb6Zu75L+h6Zu76KmxIDwga29rdXNhaWRlbnNoaW5kZW53YVwgOwor6Zu75a2Q6LOH6YeR5oyv5pu/IDwgZGVuc2hpc2hpa2luZnVyaWthZVwgOwor55u05o6l5rCR5Li75Yi2IDwgY2hva3VzZXRzdW1pbnNodXNlaVwgOwor6YCy5Ye65Yi26ZmQ57eaIDwgc2hpbnNodXRzdXNlaWdlbnNlblwgOwor5qCq5byP5Y+W5byV5omAIDwga2FidXNoaWtpdG9yaWhpa2lqb1wgOwor5bym5qW95Zub6YeN5aWP5ZujIDwgZ2VuZ2FrdXNoaWp1dXNvdWRhblwgOwor6Iiq56m65Lqk6YCa566h5Yi2IDwga291a3V1a291dHN1dWthbnNlaVwgOwor6LKh5pS/5Z2H6KGh6KiI55S7IDwgemFpc2Vpa2lua291a2Vpa2FrdVwgOwor55u05o6l5pWZ5o6I5rOVIDwgY2hva3VzZXRzdWt5b3VqdWhvdVwgOwor5pel5pys6KaP5qC85Y2U5LyaIDwgbmlwcG9ua2lrYWt1a3lvdWthaVwgOwor5YuV54mp5oSb6K235Y2U5LyaIDwgZG91YnV0c3VhaWdva3lvdWthaVwgOwor5Y+M5a2Q6JGJ5qSN54mpIDwgc291c2hpeW91c2hva3VidXRzdVwgOwor57Gz6Iiq56m65a6H5a6Z5bGAIDwgYmVpa291a3V1dWNodXVreW9rdVwgOwor5pel5pys5a2m6KGT5Lya6K2wIDwgbmlob25nYWt1anV0c3VrYWlnaVwgOwor6Iql5bed6b6N5LmL5LuLIDwgYWt1dGFnYXdhcnl1dW5vc3VrZVwgOwor6LK45YCf5a++54Wn6KGoIDwgdGFpc2hha3V0YWlzaG91aHlvdVwgOwor5YWs5a6a5Ymy5byV546HIDwga291dGVpd2FyaWJpa2lyaXRzdVwgOwor5Lq66ZaT55Kw5aKD5a6j6KiAIDwgbmluZ2Vua2Fua3lvdXNlbmdlblwgOwor5by36L+r56We57WM55eHIDwga3lvdWhha3VzaGlua2Vpc2hvdVwgOwor5a625a6F5o2c57Si5Luk54q2IDwga2F0YWt1c291c2FrdXJlaWpvdVwgOwor5ZWG5qWt5L+h55So54q2IDwgc2hvdWd5b3VzaGluJyd5b3Vqb3VcIDsKK+WuieWcn+ahg+WxseaZguS7oyA8IGF6dWNoaW1vbW95YW1hamlkYWlcIDsKK+eUn+eQhueahOmjn+WhqeawtCA8IHNlaXJpdGVraXNob2t1ZW5zdWlcIDsKK+eSsOWkquW5s+a0i+iruOWbvSA8IGthbnRhaWhlaXlvdXNob2tva3VcIDsKK+eBq+WKm+aUr+aPtOioiOeUuyA8IGthcnlva3VzaGllbmtlaWtha3VcIDsKK+i8uOWHuuS/oeeUqOeKtiA8IHl1c2h1dHN1c2hpbicneW91am91XCA7Civph5HlnLDph5HmnKzkvY3liLbluqYgPCBraW5qaWdhbmVob24nJ2lzZWlkb1wgOwor6JGX5L2c5qip5omA5pyJ6ICFIDwgY2hvc2FrdWtlbnNob3l1dXNoYVwgOwor5pWw5a2m55qE5biw57SN5rOVIDwgc3V1Z2FrdXRla2lraW5vdWhvdVwgOwor5pen5paw57SE5YWo5pu4IDwga3l1dXNoaW4nJ3lha3V6ZW5zaG9cIDsKK+aXpeacrOWbveeJueioseW6gSA8IG5paG9ua29rdXRva2t5b2Nob3VcIDsKK+WHuuWFpeWbveeuoeeQhiA8IHNodXRzdW55dXVrb2t1a2FucmlcIDsKK+mjn+ezp+euoeeQhuWItuW6piA8IHNob2t1cnlvdWthbnJpc2VpZG9cIDsKK+eUn+eJqeWMluWtpuWFteWZqCA8IHNlaWJ1dHN1a2FnYWt1aGVpa2lcIDsKK+manOWus+eJqeertui1sCA8IHNob3VnYWlidXRzdWt5b3Vzb3VcIDsKK+aYvOWFieiJsumbu+eQgyA8IGNodXVrb3VzaG9rdWRlbmt5dXVcIDsKK+mVt+aXpeakjeeJqSA8IGNob3VqaXRzdXNob2t1YnV0c3VcIDsKK+Wls+aoqeaLoeW8teirluiAhSA8IGpva2Vua2FrdWNob3Vyb25zaGFcIDsKK+mHjeimgeeEoeW9ouaWh+WMluiyoSA8IGp1dXlvdW11a2VpYnVua2F6YWlcIDsKK+e1jOa4iOekvuS8mueQhuS6i+S8miA8IGtlaXphaXNoYWthaXJpamlrYWlcIDsKK+e1seWQiOW5leWDmuS8muitsCA8IHRvdWdvdWJha3VyeW91a2FpZ2lcIDsKK+W+i+S7pOagvOW8jyA8IHJpdHN1cnlvdWt5YWt1c2hpa2lcIDsKK+WkqeeEtuiJsuWGmeecnyA8IHRlbicnbmVuc2hva3VzaGFzaGluXCA7CivlsITmkoPnpoHmraLlnLDln58gPCBzaGFnZWtpa2luc2hpY2hpaWtpXCA7Civpo5/ogonmpI3niakgPCBzaG9rdW5pa3VzaG9rdWJ1dHN1XCA7CivkuLvoqp7liqnli5XoqZ7lgJLnva4gPCBzaHVnb2pvZG91c2hpdG91Y2hpXCA7Civnibnlkb3lhajmqKnlhazkvb8gPCB0b2t1bWVpemVua2Vua291c2hpXCA7CivmsLTlipvnmbrpm7vmiYAgPCBzdWlyeW9rdWhhdHN1ZGVuc2hvXCA7CivntKDlh7rlipvmnaHku7YgPCBzb3NodXRzdXJ5b2t1am91a2VuXCA7Civlm73msJHnt4/mlK/lh7ogPCBrb2t1bWluc291c2hpc2h1dHN1XCA7CivmpI3nianmgKfohILogqogPCBzaG9rdWJ1dHN1c2Vpc2hpYm91XCA7CivmlrDogZ7lgKvnkIbntrHpoJggPCBzaGluYnVucmlucmlrb3VyeW91XCA7CivoqJjov7DnmoTlpqXlvZPmgKcgPCBraWp1dHN1dGVraWRhdG91c2VpXCA7Civml6fmlrDntITogZbmm7ggPCBreXV1c2hpbicneWFrdXNlaXNob1wgOwor5LiH5Zu96YO15L6/6YCj5ZCIIDwgYmFua29rdXl1dWJpbnJlbmdvdVwgOwor6ZW35pyf6LK45LuY6YeRIDwgY2hvdWtpa2FzaGl0c3VrZWtpblwgOwor55u05o6l5o6l57aaIDwgY2hva3VzZXRzdXNldHN1em9rdVwgOwor5L2P5a6F6YeR6J6N5YWs5bqrIDwganV1dGFrdWtpbicneXV1a291a29cIDsKK+WNmOS9jeS9k+epjemHjemHjyA8IHRhbicnaXRhaXNla2lqdXVyeW91XCA7CivntbHkuIDlnLDmlrnpgbjmjJkgPCB0b3VpdHN1Y2hpaG91c2Vua3lvXCA7CivlhazplovluILloLTmlL/nrZYgPCBrb3VrYWlzaGlqb3VzZWlzYWt1XCA7CivlnLDnkIPoprPmuKzooZvmmJ8gPCBjaGlreXV1a2Fuc29rdWVpc2VpXCA7CivnlJ/nianniannkIblraYgPCBzZWlidXRzdWJ1dHN1cmlnYWt1XCA7CivlubPlrrbnianoqp7mioQgPCBoZWlrZW1vbm9nYXRhcmlzaG91XCA7CivlkIjlkIzmioDooZPlp5Tlk6HkvJogPCBnb3Vkb3VnaWp1dHN1aWlua2FpXCA7Civph43ph4/mi7Ppl5jpgbjmiYsgPCBqdXVyeW91a2VudG91c2Vuc2h1XCA7Civkurrlt6XmsJfog7jnmYLms5UgPCBqaW5rb3VraWt5b3VyeW91aG91XCA7CivlnLDmlrnlhazlhbHlm6PkvZMgPCBjaGlob3Vrb3VreW91ZGFudGFpXCA7CivmiYvmoLnnrqHnl4flgJnnvqQgPCBzaHVrb25rYW5zaG91a291Z3VuXCA7Civpq5jliIblrZDljJblkIjniakgPCBrb3VidW5zaGlrYWdvdWJ1dHN1XCA7Civpo5/omavmpI3niakgPCBzaG9rdWNodXVzaG9rdWJ1dHN1XCA7CivpmbjkuIrkvZzmiKbmnKzpg6ggPCByaWt1am91c2FrdXNlbmhvbmJ1XCA7CivoprPlr5/nmoTnoJTnqbYgPCBrYW5zYXRzdXRla2lrZW5reXV1XCA7CivmlL7lsITmgKflu4Pmo4TniakgPCBob3VzaGFzZWloYWlraWJ1dHN1XCA7CivpgIbou6LliIbluIPkv4LmlbAgPCBneWFrdXRlbmJ1bnB1a2Vpc3V1XCA7CivonJjom5vohpzkuIvlh7rooYAgPCBrdW1vbWFrdWthc2h1a2tldHN1XCA7Civoh6rli5XmlrnlkJHmjqLnn6XmqZ8gPCBqaWRvdWhvdWtvdXRhbmNoaWtpXCA7CivlhbHlkIzmlZHmuIjln7rph5EgPCBreW91ZG91a3l1dXNhaWtpa2luXCA7Civos4PosrjlgJ/lpZHntIQgPCBjaGludGFpc2hha3VrZWl5YWt1XCA7CivlvrPlt53lhazniLXpgrggPCB0b2t1Z2F3YWtvdXNoYWt1dGVpXCA7CivluLDpgoTkuI3og73pmZDnlYzngrkgPCBraWthbmZ1bm91Z2Vua2FpdGVuXCA7Civkv53pmbrph5Hlj5flj5bkurogPCBob2tlbmtpbicndWtldG9yaW5pblwgOwor6Zm46LuN5aOr5a6Y5a2m5qChIDwgcmlrdWd1bnNoaWthbmdha2tvdVwgOwor5ryB5qWt5bCC566h5rC05Z+fIDwgZ3lvZ3lvdXNlbmthbnN1aWlraVwgOwor57K+56We5YiG6KOC55eHIDwgc2Vpc2hpbmJ1bnJldHN1c2hvdVwgOwor6Iq46KGT6Iez5LiK5Li7576pIDwgZ2VpanV0c3VzaGlqb3VzaHVnaVwgOwor54m55ZG95YWo5qip5aSn5L2/IDwgdG9rdW1laXplbmtlbnRhaXNoaVwgOwor6L+R5o6l6Iiq56m65pSv5o+0IDwga2luc2V0c3Vrb3VrdXVzaGllblwgOwor5aSq6Zm954ax55m66Zu7IDwgdGFpeW91bmV0c3VoYXRzdWRlblwgOwor5rW35aSW55WZ5a2m54axIDwga2FpZ2Fpcnl1dWdha3VuZXRzdVwgOwor5pyJ5qmf5rC06YqA5Lit5q+SIDwgeXV1a2lzdWlnaW5jaHV1ZG9rdVwgOwor5aaK5aig5Lit5q+S55eHIDwgbmluc2hpbmNodXVkb2t1c2hvdVwgOwor55Kw5aSq5bmz5rSL5qeL5oOzIDwga2FudGFpaGVpeW91a291c291XCA7Civni6znq4vmjqHnrpfliLYgPCBkb2t1cml0c3VzYWlzYW5zZWlcIDsKK+W4guWgtOWNoOacieeOhyA8IHNoaWpvdXNlbicneXV1cml0c3VcIDsKK+WFrOeahOS4jeazleWmqOWusyA8IGtvdXRla2lmdWhvdWJvdWdhaVwgOwor6KaW6IG06Kaa5pWZ5p2QIDwgc2hpY2hvdWtha3VreW91emFpXCA7CivlhoXplqPms5XliLblsYAgPCBuYWlrYWt1aG91c2Vpa3lva3VcIDsKK+WbveWutuWFrOWuieWnlOWToemVtyA8IGtva2tha291YW4nJ2lpbmNob3VcIDsKK+aIpumXmOaUr+aPtOioiOeUuyA8IHNlbnRvdXNoaWVua2Vpa2FrdVwgOwor5Lit5bCP5LyB5qWt5bqBIDwgY2h1dXNob3VraWd5b3VjaG91XCA7Civlm57nt5rliLblvqHopo/liYcgPCBrYWlzZW5zZWlneW9raXNva3VcIDsKK+abuOewoeS9k+Wwj+iqrCA8IHNob2thbnRhaXNob3VzZXRzdVwgOwor56S+5Lya55Sf54mp5a2mIDwgc2hha2Fpc2VpYnV0c3VnYWt1XCA7CivkuIDml6XkuIDml6UgPCBpY2hpbmljaGlpY2hpbmljaGlcIDsKK+i7jemaiuihjOmAsuabsiA8IGd1bnRhaWtvdXNoaW5reW9rdVwgOwor6JGs6YCB6KGM6YCy5puyIDwgc291c291a291c2hpbmt5b2t1XCA7CivmuK/mub7pgYvpgIHkuovmpa0gPCBrb3V3YW4nJ3Vuc291amlneW91XCA7CivniannkIbnmoTnj77osaEgPCBidXRzdXJpdGVraWdlbnNob3VcIDsKK+W/g+iHk+W8geiGnOeXhyA8IHNoaW56b3ViZW5tYWt1c2hvdVwgOwor6Iad6JOL6IWx5Y+N5bCEIDwgc2hpdHN1Z2Fpa2VuaGFuc2hhXCA7CivploDmiLjplovmlL7mlL/nrZYgPCBtb25rb2thaWhvdXNlaXNha3VcIDsKK+S/uOe1pueUn+a0u+iAhSA8IGhvdWt5dXVzZWlrYXRzdXNoYVwgOwor5p2x5ZCN6auY6YCf6YGT6LevIDwgdG91bWVpa291c29rdWRvdXJvXCA7CivlhoXplqPnt4/nkIblpKfoh6MgPCBuYWlrYWt1c291cmlkYWlqaW5cIDsKK+aXpeacrOaUvumAgeWNlOS8miA8IG5paG9uaG91c291a3lvdWthaVwgOwor6Iiq56m65a6H5a6Z5bel5qWtIDwga291a3V1dWNodXVrb3VneW91XCA7CivnlJ/nianmg4XloLHlraYgPCBzZWlidXRzdWpvdWhvdWdha3VcIDsKK+WkmuW5tOeUn+akjeeJqSA8IHRhbmVuc2Vpc2hva3VidXRzdVwgOwor6YeP5a2Q54mp55CG5a2mIDwgcnlvdXNoaWJ1dHN1cmlnYWt1XCA7CivljJfnsbPlkIjooYblm70gPCBob2t1YmVpZ2Fzc2h1dWtva3VcIDsKK+adpeWuouiKs+WQjemMsiA8IHJhaWt5YWt1aG91bWVpcm9rdVwgOwor5Zyw5pa55qSc5a+f5bqBIDwgY2hpaG91a2Vuc2F0c3VjaG91XCA7Civnn63ml6XmpI3niakgPCB0YW5qaXRzdXNob2t1YnV0c3VcIDsKK+aomea6luWHuuWKmyA8IGh5b3VqdW5zaHV0c3VyeW9rdVwgOwor5bCC6ZaA55qE55+l6K2YIDwgc2VubW9udGVraWNoaXNoaWtpXCA7CivntZDlqZrooYzpgLLmm7IgPCBrZWtrb25rb3VzaGlua3lva3VcIDsKK+WuieWFqOS/nemanOadoee0hCA8IGFuemVuaG9zaG91am91eWFrdVwgOwor5qCq5byP6YWN5b2T6YeRIDwga2FidXNoaWtpaGFpdG91a2luXCA7CivnibnliKXphY3lvZPph5EgPCB0b2t1YmV0c3VoYWl0b3VraW5cIDsKK+S4u+WDjeWcn+Wcp+S/guaVsCA8IHNodWRvdWRvYXRzdWtlaXN1dVwgOwor5Y+N5bCE55qE5Y2K6aCG5bqPIDwgaGFuc2hhdGVraWhhbmp1bmpvXCA7CivntYzmuIjmiJDplbfnjocgPCBrZWl6YWlzZWljaG91cml0c3VcIDsKK+eUo+alreWIpee1hOWQiCA8IHNhbmd5b3ViZXRzdWt1bWlhaVwgOwor5Zu96Zqb6YCa6LKo5Z+66YeRIDwga29rdXNhaXRzdXVrYWtpa2luXCA7CivlhKrnrYnljZLmpa3nlJ8gPCB5dXV0b3Vzb3RzdWd5b3VzZWlcIDsKK+efreacn+mbhuS4reism+W6pyA8IHRhbmtpc2h1dWNodXVrb3V6YVwgOwor5YWl5Zu9566h55CG5bGAIDwgbnl1dWtva3VrYW5yaWt5b2t1XCA7Civkv6Hos57lv4XnvbAgPCBzaGluc2hvdWhpdHN1YmF0c3VcIDsKK+aXpeacrOi+suael+imj+agvCA8IG5paG9uJydub3VyaW5raWtha3VcIDsKK+iIquepuuWuh+WumeeUo+alrSA8IGtvdWt1dXVjaHV1c2FuZ3lvdVwgOwor5ZOB6LOq5L+d5oyB5pyf6ZmQIDwgaGluc2hpdHN1aG9qaWtpZ2VuXCA7Civml6XmnKzlt6Xmpa3opo/moLwgPCBuaWhvbmtvdWd5b3VraWtha3VcIDsKK+mWk+aOpeaSruW9seazlSA8IGthbnNldHN1c2F0c3VlaWhvdVwgOwor5a6f54mp5aSn5qih5Z6LIDwgaml0c3VidXRzdWRhaW1va2VpXCA7Civou43kuovnmoTkvrXnlaUgPCBndW5qaXRla2lzaGlucnlha3VcIDsKK+S4rei3nembouaguOWFteWZqCA8IGNodXVreW9yaWtha3VoZWlraVwgOwor6YW45YyW6YKE5YWD5Y+N5b+cIDwgc2Fua2FrYW5nZW5oYW4nJ25vdVwgOwor54m55b605oq95Ye6IDwgdG9rdWNob3VjaHV1c2h1dHN1XCA7Civlr7/mlZnlrqQgPCBrb3RvYnVraWt5b3VzaGl0c3VcIDsKK+WFrOWLmeWft+ihjOWmqOWusyA8IGtvdW11c2hpa2tvdWJvdWdhaVwgOwor56mN5YiG5pa556iL5byPIDwgc2VraWJ1bmhvdXRlaXNoaWtpXCA7Civpq5jnrYnlsILploDlrabmoKEgPCBrb3V0b3VzZW5tb25nYWtrb3VcIDsKK+epjeeul+mbu+WKm+ioiCA8IHNla2lzYW5kZW5yeW9rdWtlaVwgOwor5LqM5bm055Sf5qSN54mpIDwgbmluZW5zZWlzaG9rdWJ1dHN1XCA7Civlm73kvJrlr77nrZblp5Tlk6HkvJogPCBrb2trYWl0YWlzYWt1aW5rYWlcIDsKK+esrOS6jOasoeS4lueVjOWkp+aIpiA8IGRhaW5pamlzZWthaXRhaXNlblwgOwor5q2p5YW15oim6ZeY6LuK5LihIDwgaG9oZWlzZW50b3VzaGFyeW91XCA7CivljYPkuZ3nmb7lubTku6MgPCBzZW5reXV1aHlha3VuZW5kYWlcIDsKK+WFseWQjOiomOiAheS8muimiyA8IGt5b3Vkb3VraXNoYWthaWtlblwgOwor56eR5a2m5Y2a54mp6aSoIDwga2FnYWt1aGFrdWJ1dHN1a2FuXCA7CivkuK3lm73lhbHnlKPlhZogPCBjaHV1Z29rdWt5b3VzYW50b3VcIDsKK+mrmOWIhuWtkOeJqeizqiA8IGtvdWJ1bnNoaWJ1c3NoaXRzdVwgOwor55m66YGU5b+D55CG5a2mIDwgaGF0dGF0c3VzaGlucmlnYWt1XCA7Civnsr7npZ7oloTlvLHogIUgPCBzZWlzaGluaGFrdWpha3VzaGFcIDsKK+WkqumZveeGsea4qeawtOWZqCA8IHRhaXlvdW5ldHN1b25zdWlraVwgOwor54m55Yil6KGM5pS/5Yy6IDwgdG9rdWJldHN1Z3lvdXNlaWt1XCA7CivpnZnmraLlnJ/lnKfkv4LmlbAgPCBzZWlzaGlkb2F0c3VrZWlzdXVcIDsKK+S4ieiJsuWNsOWIt+azlSA8IHNhbnNob2t1aW5zYXRzdWhvdVwgOwor5o6S5Y216KqY55m65YmkIDwgaGFpcmFuJyd5dXVoYXRzdXphaVwgOwor55Sf5rS75b+F6ZyA5ZOBIDwgc2Vpa2F0c3VoaXRzdWp1aGluXCA7CivlsJHlubTpkZHliKXmiYAgPCBzaG91bmVua2FuYmV0c3VzaG9cIDsKK+S6uuWPo+WLleaFi+e1seioiCA8IGppbmtvdWRvdXRhaXRvdWtlaVwgOwor5bqn6aqo56We57WM55ebIDwgemFrb3RzdXNoaW5rZWl0c3V1XCA7CivmpI3msJHlnLDmlL/nrZYgPCBzaG9rdW1pbmNoaXNlaXNha3VcIDsKK+iovOWIuOWPluW8leazlSA8IHNob3VrZW50b3JpaGlraWhvdVwgOwor56eB5bCP6KqsIDwgd2F0YWt1c2hpc2hvdXNldHN1XCA7CivllYblk4Hlm57ou6LnjocgPCBzaG91aGlua2FpdGVucml0c3VcIDsKK+WbvemAo+S6i+WLmee3j+mVtyA8IGtva3VyZW5qaW11c291Y2hvdVwgOwor56+A6Laz5YuV54mp6ZaAIDwgc2Vzc29rdWRvdWJ1dHN1bW9uXCA7CivnnYDnlJ/mpI3niakgPCBjaGFrdXNlaXNob2t1YnV0c3VcIDsKK+S4jeWLleeUo+WPluW+l+eojiA8IGZ1ZG91c2Fuc2h1dG9rdXplaVwgOwor5bm05qyh5pyJ57Wm5LyR5pqHIDwgbmVuaml5dXVreXV1a3l1dWthXCA7Civlrp/nianlj5blvJUgPCBqaXRzdWJ1dHN1dG9yaWhpa2lcIDsKK+WNgeS6jOaMh+iFuOa9sOeYjSA8IGp1dW5pc2hpY2hvdWthaXlvdVwgOwor6KiI566X55Sf54mp5a2mIDwga2Vpc2Fuc2VpYnV0c3VnYWt1XCA7CivlsLHogbfmg4XloLHoqowgPCBzaHV1c2hva3Vqb3Vob3VzaGlcIDsKK+W7uuioreeahOmWouS/giA8IGtlbnNldHN1dGVraWthbmtlaVwgOwor5a6i5a6k5LmX5YuZ5ZOhIDwga3lha3VzaGl0c3Vqb3VtdWluXCA7CivmlK/mjIHlipvlrprlvI8gPCBzaGlqaXJ5b2t1dGVpc2hpa2lcIDsKK+WLleeJqeihjOWLleWtpiA8IGRvdWJ1dHN1a291ZG91Z2FrdVwgOwor5oim5LqJ54qv572q5rOV5bu3IDwgc2Vuc291aGFuemFpaG91dGVpXCA7Civogbfog73ku6PooajliLYgPCBzaG9rdW5vdWRhaWh5b3VzZWlcIDsKK+acgOmrmOaknOWvn+W6gSA8IHNhaWtvdWtlbnNhdHN1Y2hvdVwgOwor5b+D56We6ICX5byx6ICFIDwgc2hpbnNoaW5tb3VqYWt1c2hhXCA7CivlubTlip/luo/liJfliLbluqYgPCBuZW5rb3Vqb3JldHN1c2VpZG9cIDsKK+S6nOexs+WIqeWKoOWQiOihhuWbvSA8IGFtZXJpa2FnYXNzaHV1a29rdVwgOwor54Sh6ISK5qSO5YuV54mpIDwgbXVzZWtpdHN1aWRvdWJ1dHN1XCA7CivovrLmnpfmsLTnlKPlpKfoh6MgPCBub3VyaW5zdWlzYW5kYWlqaW5cIDsKK+ebtOaOpeaOpeinpiA8IGNob2t1c2V0c3VzZXNzaG9rdVwgOwor5a625a6F5L615YWl572qIDwga2F0YWt1c2hpbicnbnl1dXphaVwgOwor5YiG5a2Q55Sf54mp5a2mIDwgYnVuc2hpc2VpYnV0c3VnYWt1XCA7CivkuLvopoHpg6jlhYjlsI7lnosgPCBzaHV5b3VidXNlbmRvdWdhdGFcIDsKK+WkqeS9k+WGmeecn+ihkyA8IHRlbnRhaXNoYXNoaW5qdXRzdVwgOwor56eY5a+G5ryP5rSp572qIDwgaGltaXRzdXJvdXNldHN1emFpXCA7Civosrjku5jkv6HoqJcgPCBrYXNoaXRzdWtlc2hpbnRha3VcIDsKK+mWk+aOpeebrueahOiqniA8IGthbnNldHN1bW9rdXRla2lnb1wgOwor57KY5ray5YiG5rOM6IW6IDwgbmVuJydla2lidW5waXRzdXNlblwgOwor556s6ZaT5o6l552A5YmkIDwgc2h1bmthbnNldGNoYWt1emFpXCA7Civkurrlj6Plr4bpm4bnjocgPCBqaW5rb3VtaXNzaHV1cml0c3VcIDsKK+WbveawkeWBpeW6t+S/nemZuiA8IGtva3VtaW5rZW5rb3Vob2tlblwgOwor5Y6f6Imy5YaZ55yf54mIIDwgZ2Vuc2hva3VzaGFzaGluYmFuXCA7CivkuI3lrproqIjph4/nqbrplpMgPCBmdXRlaWtlaXJ5b3VrdXVrYW5cIDsKK+mHj+WtkOiJsuWKm+WtpiA8IHJ5b3VzaGlpcm9yaWtpZ2FrdVwgOwor5Zyo5pel57Gz6Zm46LuNIDwgemFpbmljaGliZWlyaWt1Z3VuXCA7Civpo5/lk4Hmt7vliqDniakgPCBzaG9rdWhpbnRlbmthYnV0c3VcIDsKK+WPjeW4neWbveS4u+e+qeiAhSA8IGhhbnRlaWtva3VzaHVnaXNoYVwgOwor5YuV54mp5oCn6JuL55m9IDwgZG91YnV0c3VzZWl0YW5wYWt1XCA7Civnibnlrprpg7Xkvr/lsYAgPCB0b2t1dGVpeXV1Ymlua3lva3VcIDsKK+aXpeacrOiIquepuuiHquihm+maiiA8IG5paG9ua291a3V1amllaXRhaVwgOwor54Gr5Yqb55m66Zu75omAIDwga2FyeW9rdWhhdHN1ZGVuc2hvXCA7CivlpJrop5LlvI/ovrLmpa0gPCB0YWtha3VzaGlraW5vdWd5b3VcIDsKK+mbu+iNt+e1kOWQiOe0oOWtkCA8IGRlbmtha2V0c3Vnb3Vzb3NoaVwgOwor5rC45LiW5Lit56uL5Zu9IDwgZWlzZWljaHV1cml0c3Vrb2t1XCA7CivnrKblj7fljJbmloflrZfpm4blkIggPCBmdWdvdWthbW9qaXNodXVnb3VcIDsKK+WUr+eJqeW8geiovOazlSA8IHl1aWJ1dHN1YmVuc2hvdWhvdVwgOwor5pel5pys5rW35LiK6Ieq6KGb6ZqKIDwgbmlob25rYWlqb3VqaWVpdGFpXCA7Civlj7LnmoTllK/nianoq5YgPCBzaGl0ZWtpeXVpYnV0c3Vyb25cIDsKK+Wuo+iqk+S+m+i/sOabuCA8IHNlbnNlaWt5b3VqdXRzdXNob1wgOwor54ax6Iao5by15L+C5pWwIDwgbmV0c3Vib3VjaG91a2Vpc3V1XCA7CivmnInpmZDnirbmhYvmlofms5UgPCB5dXVnZW5qb3V0YWlidW5wb3VcIDsKK+WNs+aXpemAn+mBlCA8IHNva3VqaXRzdXNva3V0YXRzdVwgOwor5qSN54mp5oCn57mK57atIDwgc2hva3VidXRzdXNlaXNlbicnaVwgOwor6YGO5aSx5YK35a6z572qIDwga2FzaGl0c3VzaG91Z2FpemFpXCA7Civkv67mraPos4fmnKzkuLvnvqkgPCBzaHV1c2Vpc2hpaG9uc2h1Z2lcIDsKK+S4gOWNteaAp+WPjOeUn+WFkCA8IGljaGlyYW5zZWlzb3VzZWlqaVwgOwor5YWx5ZCM5Ym16Kit6ICFIDwga3lvdWRvdXNvdXNldHN1c2hhXCA7CivlnLDkuK3mtbfmgKfmsJflgJkgPCBjaGljaHV1a2Fpc2Vpa2lrb3VcIDsKK+aKleizh+acieS+oeiovOWIuCA8IHRvdXNoaXl1dWthc2hvdWtlblwgOwor5LiK57Sa5Ymv56S+6ZW3IDwgam91a3l1dWZ1a3VzaGFjaG91XCA7CivmiKbnlaXnmoTmj5DmkLogPCBzZW5yeWFrdXRla2l0ZWlrZWlcIDsKK+WJjeaWueWGjeijnOe1pueCuSA8IHplbnBvdXNhaWhva3l1dXRlblwgOwor55m+55m655m+5LitIDwgaHlhcHBhdHN1aHlha3VjaHV1XCA7CivnkrDlooPluoHplbflrpggPCBrYW5reW91Y2hvdWNob3VrYW5cIDsKK+WPlue3oOW9ueS8miA8IHRvcmlzaGltYXJpeWFrdWthaVwgOwor5Zyn5Yqb6Kq/5pW05ZmoIDwgYXRzdXJ5b2t1Y2hvdXNlaWtpXCA7CivnlJ/prq7po5/mlpnlk4EgPCBzZWlzZW5zaG9rdXJ5b3VoaW5cIDsKK+aUvuWwhOaAp+eJqeizqiA8IGhvdXNoYXNlaWJ1c3NoaXRzdVwgOwor5Zyw55CD54mp55CG5a2mIDwgY2hpa3l1dWJ1dHN1cmlnYWt1XCA7Civlj43lrpfmlZnmlLnpnakgPCBoYW5zaHV1a3lvdWthaWtha3VcIDsKK+WtpuitmOe1jOmok+iAhSA8IGdha3VzaGlraWtlaWtlbnNoYVwgOwor56uL5oay5ZCb5Li75pS/5L2TIDwgcmlra2Vua3Vuc2h1c2VpdGFpXCA7CivmlL7pgIHnpoHmraLnlKjoqp4gPCBob3Vzb3VraW5zaGl5b3Vnb1wgOwor6LWk6Z2i5oGQ5oCW55eHIDwgc2VraW1lbmt5b3VmdXNob3VcIDsKK+mjn+WTgeihm+eUn+azlSA8IHNob2t1aGluJydlaXNlaWhvdVwgOwor5pWZ6IG35ZOh57WE5ZCIIDwga3lvdXNob2t1aW5rdW1pYWlcIDsKK+WNgeS4gOmdouims+S4lumfsyA8IGp1dWljaGltZW5rYW56ZW9uXCA7Civmr5vmsqLmnbHkuLvluK0gPCBtb3V0YWt1dG91c2h1c2VraVwgOwor5Yil6YCU56mN56uL6YeRIDwgYmV0dG90c3VtaXRhdGVraW5cIDsKK+i/lOS/oeaWmeiRieabuCA8IGhlbnNoaW5yeW91aGFnYWtpXCA7Civoq7jou4rpgJrooYzmraIgPCBzaG9zaGF0c3V1a291ZG9tZVwgOwor5b2i54q26KiY5oa25ZCI6YeRIDwga2Vpam91a2lva3Vnb3VraW5cIDsKK+WbveWcn+W6gemVt+WumCA8IGtva3Vkb2Nob3VjaG91a2FuXCA7Civlh7rlipvoo4Xnva4gPCBzaHV0c3VyeW9rdXNvdWNoaVwgOwor6KSH6ZuR6aqo5oqYIDwgZnVrdXphdHN1a29zc2V0c3VcIDsKK+S4i+S9jeevhOeWh+WMlue0oOaApyA8IGthaWhhbmNodXVrYXNvc2VpXCA7Civli6flloTmh7LmgqrliocgPCBrYW56ZW5jaG91YWt1Z2VraVwgOwor5Yy75a2m55Sf54mp5a2mIDwgaWdha3VzZWlidXRzdWdha3VcIDsKK+mdnuaomea6luaLoeW8tSA8IGhpaHlvdWp1bmtha3VjaG91XCA7CivooYzli5XnmbrotbfmmYLliLsgPCBrb3Vkb3VoYWtraWppa29rdVwgOwor5Y2B6YOo6ZaA5YiG6aGe5rOVIDwganV1YnVtb25idW5ydWlob3VcIDsKK+WkqumZveWFieeZuumbuyA8IHRhaXlvdWtvdWhhdHN1ZGVuXCA7CivkuJbnlYzkuIDlkajml4XooYwgPCBzZWthaWlzc2h1dXJ5b2tvdVwgOwor6L+U5L+h55So6JGJ5pu4IDwgaGVuc2hpbicneW91aGFnYWtpXCA7CivkuJbnlYzkurrmqKnlrqPoqIAgPCBzZWthaWppbmtlbnNlbmdlblwgOwor5YWs55qE5Yy755mC5qmf6ZaiIDwga291dGVraWlyeW91a2lrYW5cIDsKK+eJqeeahOa1gemAmiA8IGJ1dHN1dGVraXJ5dXV0c3V1XCA7CivljYHlubTkuIDmmJQgPCBqdXVuZW5oaXRvbXVrYXNoaVwgOwor56Wl5pyI5ZG95pelIDwgc2hvdXRzdWtpbWVpbmljaGlcIDsKK+ecn+ePoOmkiuauluWgtCA8IHNoaW5qdXlvdXNob2t1am91XCA7CivmiKbnlaXnianos6ogPCBzZW5yeWFrdWJ1c3NoaXRzdVwgOwor6IKL6ZaT56We57WM55ebIDwgcm9ra2Fuc2hpbmtlaXRzdXVcIDsKK+a1t+a0i+eJqeeQhuWtpiA8IGthaXlvdWJ1dHN1cmlnYWt1XCA7Civnsr7npZ7nmoToi6bnl5sgPCBzZWlzaGludGVraWt1dHN1dVwgOwor5Lqk5rWB55m66Zu75qmfIDwga291cnl1dWhhdHN1ZGVua2lcIDsKK+WwseiBt+a0u+WLlSA8IHNodXVzaG9rdWthdHN1ZG91XCA7Civlj5flg43lnJ/lnKfkv4LmlbAgPCBqdWRvdWRvYXRzdWtlaXN1dVwgOwor54up54yf5o6h6ZuG5rCRIDwgc2h1cnlvdXNhaXNodXVtaW5cIDsKK+S4jeeiuuWumuaAp+WOn+eQhiA8IGZ1a2FrdXRlaXNlaWdlbnJpXCA7CivmiKbpl5jmraPpnaLluYUgPCBzZW50b3VzaG91bWVuaGFiYVwgOwor5LiN5L+h5Lu75oqV56WoIDwgZnVzaGluJyduaW50b3VoeW91XCA7CivpgIHph5Hlj5flj5bkurogPCBzb3VraW4nJ3VrZXRvcmluaW5cIDsKK+W8seiCieW8t+mjnyA8IGpha3VuaWt1a3lvdXNob2t1XCA7CivkvLjnuK7nqI7njocgPCBzaGluc2h1a3V6ZWlyaXRzdVwgOwor5LqM562J6L665LiJ6KeS5b2iIDwgbml0b3VoZW5zYW5rYWtrZWlcIDsKK++8pO+8su+8s+eQhuirliA8IGRpXCDMhGFcIMyEcnVlc3VyaXJvblwgOwor6aOf57On566h55CG5rOVIDwgc2hva3VyeW91a2Fucmlob3VcIDsKK+ebsuiFuOeCjuaJi+ihkyA8IG1vdWNob3VlbnNodWp1dHN1XCA7CivnpZ7lh7rprLzmsqEgPCBzaGluc2h1dHN1a2lib3RzdVwgOwor56ys5LiA57Sa5q665Lq6IDwgZGFpaWtreXV1c2F0c3VqaW5cIDsKK+aIpueVpeaguOWFteWZqCA8IHNlbnJ5YWt1a2FrdWhlaWtpXCA7CivkuIPkuIPml6UgPCBzaGljaGlzaGljaGluaWNoaVwgOwor57Sr6Zyy6I2JIDwgbXVyYXNha2l0c3V5dWt1c2FcIDsKK+WHjee1kOmYsuatouWJpCA8IHRvdWtldHN1Ym91c2hpemFpXCA7CivkuK3plpPphY3lvZPpoY0gPCBjaHV1a2FuaGFpdG91Z2FrdVwgOwor5pS/5Luk5oyH5a6a6YO95biCIDwgc2VpcmVpc2hpdGVpdG9zaGlcIDsKK+WQuOihgOWLleeJqSA8IGt5dXVrZXRzdWRvdWJ1dHN1XCA7Civpq5jpgJ/lopfmrpbngokgPCBrb3Vzb2t1em91c2hva3Vyb1wgOwor6L+U5L+h5paZ5bCB562SIDwgaGVuc2hpbnJ5b3VmdXV0b3VcIDsKK+ihm+aYn+WcsOeQg+WxgCA8IGVpc2VpY2hpa3l1dWt5b2t1XCA7CivlnKjnlZnlpJblm73kurogPCB6YWlyeXV1Z2Fpa29rdWppblwgOwor54ax5Yqb5a2m55qEIDwgbmV0c3VyaWtpZ2FrdXRla2lcIDsKK+akjeeJqeaOoembhiA8IHNob2t1YnV0c3VzYWlzaHV1XCA7Civlh7rlipvnq6/lrZAgPCBzaHV0c3VyeW9rdXRhbnNoaVwgOwor5qiZ5rqW5YWl5YqbIDwgaHlvdWp1bicnbnl1dXJ5b2t1XCA7CivnlKPmpa3lu4Pmo4TniakgPCBzYW5neW91aGFpa2lidXRzdVwgOwor54Sh5ouF5L+d5YCf5YWl6YeRIDwgbXV0YW5wb2thcmlpcmVraW5cIDsKK+ims+iRieakjeeJqSA8IGthbicneW91c2hva3VidXRzdVwgOwor5aSp54S26KiY5b+154mpIDwgdGVuJyduZW5raW5lbmJ1dHN1XCA7CivljZjkvY3lirTlg43ntYTlkIggPCB0YW4nJ2lyb3Vkb3VrdW1pYWlcIDsKK+S4reWkruWHpueQhuijhee9riA8IGNodXVvdXNob3Jpc291Y2hpXCA7Civlh7rnlJ/oqLzmmI7mm7ggPCBzaHVzc2Vpc2hvdW1laXNob1wgOwor6YG45oyZ566h55CG5aeU5ZOh5LyaIDwgc2Vua3lva2FucmlpaW5rYWlcIDsKK+S4iue0mueuoeeQhuiBtyA8IGpvdWt5dXVrYW5yaXNob2t1XCA7CivnqI7plqLnlLPlkYrmm7ggPCB6ZWlrYW5zaGlua29rdXNob1wgOwor5LiD55Sf5aCx5Zu9IDwgc2hpY2hpc2hvdWhvdWtva3VcIDsKK+i/lOS/oeeUqOWwgeetkiA8IGhlbnNoaW4nJ3lvdWZ1dXRvdVwgOwor54ax54uC55qE5L+h6ICFIDwgbmVra3lvdXRla2lzaGluamFcIDsKK+S8gealremWk+S/oeeUqCA8IGtpZ3lvdWthbnNoaW4nJ3lvdVwgOwor5qyn5bee6YCa6LKo5Y2Y5L2NIDwgb3VzaHV1dHN1dWthdGFuJydpXCA7Civplovmi5PogIXnsr7npZ4gPCBrYWl0YWt1c2hhc2Vpc2hpblwgOwor5a6f54mp5o+P5YaZIDwgaml0c3VidXRzdWJ5b3VzaGFcIDsKK+a3seWcqOaAp+ecn+iPjCA8IHNoaW56YWlzZWlzaGlua2luXCA7Civoh6rnlLHosr/mmJPluK/ln58gPCBqaXl1dWJvdWVraXRhaWlraVwgOwor5p2R6JC95YWx5ZCM5L2TIDwgc29ucmFrdWt5b3Vkb3V0YWlcIDsKK+S4iumZuOeUqOiIn+iJhyA8IGpvdXJpa3V5b3VzaHV1dGVpXCA7Civlj6TnlJ/nianlrabogIUgPCBrb3NlaWJ1dHN1Z2FrdXNoYVwgOwor5q6655yf6I+M6JasIDwgc2F0c3VzaGlua2luJyd5YWt1XCA7CivplovnmbrpgJTkuIrlm70gPCBrYWloYXRzdXRvam91a29rdVwgOwor6KGA5Zyn6ZmN5LiL5YmkIDwga2V0c3VhdHN1a291a2F6YWlcIDsKK+eEoeW3ruWIpeeIhuaSgyA8IG11c2FiZXRzdWJha3VnZWtpXCA7CivlubPlkoznmoTop6PmsbogPCBoZWl3YXRla2lrYWlzZXRzdVwgOwor5LiL5L2N56+E55aH5YyW5Y6f55CGIDwga2FpaGFuY2h1dWthZ2VucmlcIDsKK+mjn+WTgeWKoOW3pealrSA8IHNob2t1aGlua2Frb3VneW91XCA7CivmgYvmhJvoh7PkuIrkuLvnvqkgPCByZW4nJ2Fpc2hpam91c2h1Z2lcIDsKK+mrmOe0muS9j+WuheWcsCA8IGtvdWt5dXVqdXV0YWt1Y2hpXCA7Civoh6rli5Xou4rkv53pmbrmlpkgPCBqaWRvdXNoYWhva2VucnlvdVwgOwor6YGO5aSx6Ie05q27572qIDwga2FzaGl0c3VjaGlzaGl6YWlcIDsKK+mrmOmhjeaJgOW+l+iAhSA8IGtvdWdha3VzaG90b2t1c2hhXCA7CivljYHkuIDpnaLoprPpn7MgPCBqdXVpY2hpbWVua2FuJydub25cIDsKK+iAs+m8u+WSveWWieWwgumWgOWMuyA8IGppYmlpbmtvdXNlbm1vbicnaVwgOwor5pyI57WM5Zuw6Zuj55eHIDwgZ2Vra2Vpa29uJyduYW5zaG91XCA7Civlm73pmpvopovmnKzluIIgPCBrb2t1c2FpbWlob24nJ2ljaGlcIDsKK+e3keWcsOWMluioiOeUuyA8IHJ5b2t1Y2hpa2FrZWlrYWt1XCA7CivmqJnmnKzmir3lh7ogPCBoeW91aG9uY2h1dXNodXRzdVwgOwor5oim5aC06Iiq56m66Zi75q2iIDwgc2Vuam91a291a3V1c29zaGlcIDsKK+S4reaeouelnue1jOezuyA8IGNodXVzdXVzaGlua2Vpa2VpXCA7CivntbHlkIjlj4LorIDmnKzpg6ggPCB0b3Vnb3VzYW5ib3Vob25idVwgOwor57eP5ous6LOq5ZWPIDwgc291a2F0c3VzaGl0c3Vtb25cIDsKK+Wun+mok+eahOeglOeptiA8IGppa2tlbnRla2lrZW5reXV1XCA7CivlsILnlKjpp5Dou4rloLQgPCBzZW4nJ3lvdWNodXVzaGFqb3VcIDsKK+a9ruWKm+eZuumbuyA8IGNob3VyeW9rdWhhdHN1ZGVuXCA7CivnhKHpgY7lpLHosqzku7sgPCBtdWthc2hpdHN1c2VraW5pblwgOwor5LiA5qyh5pa556iL5byPIDwgaWNoaWppaG91dGVpc2hpa2lcIDsKK+WwsealreaZgumWk+S4rSA8IHNodXVneW91amlrYW5jaHV1XCA7Civlm73msJHkvJHmmofmnZEgPCBrb2t1bWlua3l1dWthbXVyYVwgOwor5a2Q5a6u5aSW5aaK5aigIDwgc2hpa3l1dWdhaW5pbnNoaW5cIDsKK+eEoeaLheS/neiyuOS7mCA8IG11dGFucG9rYXNoaXRzdWtlXCA7CivkuIDnspLlrZDml6LntIQgPCBpY2hpcnl1dXNoaWtpeWFrdVwgOwor5LyB5qWt5Yil57WE5ZCIIDwga2lneW91YmV0c3VrdW1pYWlcIDsKK+S4jeazleS+teWFpeiAhSA8IGZ1aG91c2hpbicnbnl1dXNoYVwgOwor55u05o6l6LO85YWlIDwgY2hva3VzZXRzdWtvdW55dXVcIDsKK+WPjuepq+aEn+isneelrSA8IHNodXVrYWt1a2Fuc2hhc2FpXCA7CivmjIflkJHmgKfniIbolqwgPCBzaGlrb3VzZWliYWt1eWFrdVwgOwor5b+D5Zug5oCn5Y+N5b+cIDwgc2hpbicnaW5zZWloYW4nJ25vdVwgOwor5pyA6ZW35LiN5YCS6Led6ZuiIDwgc2FpY2hvdWZ1dG91a3lvcmlcIDsKK+S6nOeGseW4r+akjeeJqSA8IGFuZXR0YWlzaG9rdWJ1dHN1XCA7Civnqq7mpbXnm67nmoQgPCBreXV1a3lva3Vtb2t1dGVraVwgOwor5YaF6Zaj57eP6L6e6IG3IDwgbmFpa2FrdXNvdWppc2hva3VcIDsKK+WkqeeFp+Wkp+elniA8IGFtYXRlcmFzdW9vbWlrYW1pXCA7CivljbDosaHkuLvnvqnpn7Pmpb0gPCBpbnNob3VzaHVnaW9uZ2FrdVwgOwor6L+R5Luj5LqU56iu56u25oqAIDwga2luZGFpZ29zaHVreW91Z2lcIDsKK+izquWun+WJm+WBpSA8IHNoaXRzdWppdHN1Z291a2VuXCA7CivoqLzliLjlj5blvJXmiYAgPCBzaG91a2VudG9yaWhpa2lqb1wgOwor5bGI5oqY5pyb6YGg6Y+hIDwga3Vzc2V0c3Vib3Vlbmt5b3VcIDsKK+WxgOWkluS4reeriyA8IGt5b2t1Z2FpY2h1dXJpdHN1XCA7CivlvozmlrnlnLDln5/orablgpkgPCBrb3Vob3VjaGlpa2lrZWliaVwgOwor5q2v54mZ55+v5q2j6KGTIDwgc2hpZ2FreW91c2VpanV0c3VcIDsKK+WNmOe0sOiDnueUn+eJqSA8IHRhbnNhaWJvdXNlaWJ1dHN1XCA7Civml6XmnKzolqzlsYDmlrkgPCBuaWhvbicneWFra3lva3Vob3VcIDsKK+iHquWLleaTjee4puijhee9riA8IGppZG91c291anV1c291Y2hpXCA7Civmt7HlsaTlv4PnkIblraYgPCBzaGluc291c2hpbnJpZ2FrdVwgOwor6YO95biC5a++5oqX6YeO55CDIDwgdG9zaGl0YWlrb3V5YWt5dXVcIDsKK+mHkeWJm+WknOWPieWmmeeOiyA8IGtvbmdvdXlhc2hhbXlvdW91XCA7Civnsr7npZ7oloTlvLHlhZAgPCBzZWlzaGluaGFrdWpha3VqaVwgOwor6Imy5b2p6Kq/56+AIDwgc2hpa2lzYWljaG91c2V0c3VcIDsKK+iWrOeUqOakjeeJqSA8IHlha3V5b3VzaG9rdWJ1dHN1XCA7CivljJblrabmlrnnqIvlvI8gPCBrYWdha3Vob3V0ZWlzaGlraVwgOwor5oCl6ZmN5LiL54iG5pKDIDwga3l1dWtvdWthYmFrdWdla2lcIDsKK+awtOS4iueUn+a0u+iAhSA8IHN1aWpvdXNlaWthdHN1c2hhXCA7CivlnKjlraboqLzmmI7mm7ggPCB6YWlnYWt1c2hvdW1laXNob1wgOwor5qSN5rCR5Zyw57Wx5rK7IDwgc2hva3VtaW5jaGl0b3VjaGlcIDsKK+mWouaVsOaWueeoi+W8jyA8IGthbnN1dWhvdXRlaXNoaWtpXCA7Civnp4vpnJzng4jml6UgPCBzaHV1c291cmV0c3VqaXRzdVwgOwor55u05o6l6KuL5rGCIDwgY2hva3VzZXRzdXNlaWt5dXVcIDsKK+aOqOmAsueglOeptuaJgCA8IHN1aXNoaW5rZW5reXV1c2hvXCA7CivlrpfmlZnlk7LlraYgPCBzaHV1a3lvdXRldHN1Z2FrdVwgOwor5oim6KGT5qC45YW15ZmoIDwgc2VuanV0c3VrYWt1aGVpa2lcIDsKK+mrmOmAn+a8lOeul+apn+aniyA8IGtvdXNva3Vlbnphbmtpa291XCA7CivnmbrlsZXnmoTop6PmtoggPCBoYXR0ZW50ZWtpa2Fpc2hvdVwgOwor6aOb6KGM56aB5q2i56m65Z+fIDwgaGlrb3VraW5zaGlrdXVpa2lcIDsKK+Wbveeri+Wbs+abuOmkqCA8IGtva3VyaXRzdXRvc2hva2FuXCA7CivkuInooYzluoPlkYrmrIQgPCBzYW5neW91a291a29rdXJhblwgOwor5Yun5qWt5Y2a6Kan5LyaIDwga2FuZ3lvdWhha3VyYW5rYWlcIDsKK+iWrOeJqeS4reavkiA8IHlha3VidXRzdWNodXVkb2t1XCA7CivliIbmnpDlv4PnkIblraYgPCBidW5zZWtpc2hpbnJpZ2FrdVwgOwor5pWZ6IKy5b+D55CG5a2mIDwga3lvdWlrdXNoaW5yaWdha3VcIDsKK+alreWLmeS4iumBjuWksSA8IGd5b3VtdWpvdWthc2hpdHN1XCA7CivnkrDlooPkv53orbfoq5bogIUgPCBrYW5reW91aG9nb3JvbnNoYVwgOwor5oiQ57i+6Ki85piO5pu4IDwgc2Vpc2VraXNob3VtZWlzaG9cIDsKK+mAsemWk+Wkqeawl+S6iOWgsSA8IHNodXVrYW50ZW5raXlvaG91XCA7CivmlL7lsITnt5rmhJ/lj5fmgKcgPCBob3VzaGFzZW5rYW5qdXNlaVwgOwor56S+5Lya5rCR5Li75Li7576pIDwgc2hha2FpbWluc2h1c2h1Z2lcIDsKK+Wwj+W/g+e/vOe/vCA8IHNob3VzaGluJyd5b2t1eW9rdVwgOwor54m55Yil5bmV5YOaIDwgdG9rdWJldHN1YmFrdXJ5b3VcIDsKK+WFpeWtpuW/l+mhmOiAhSA8IG55dXVnYWt1c2hpZ2Fuc2hhXCA7Civpg6jliIbmg4XloLHmp4vpgKAgPCBidWJ1bmpvdWhvdWtvdXpvdVwgOwor5LiA5oyZ5omL5LiA5oqV6LazIDwgaWtreW9zaHVpdHRvdXNva3VcIDsKK+WIhuijgueJqeizqiA8IGJ1bnJldHN1YnVzc2hpdHN1XCA7CivmnInlvaLlm7rlrpros4fnlKMgPCB5dXVrZWlrb3RlaXNoaXNhblwgOwor5Lit5aSu5pS+6YCB5bGAIDwgY2h1dW91aG91c291a3lva3VcIDsKK+ebtOaOpeeFp+aYjiA8IGNob2t1c2V0c3VzaG91bWVpXCA7Civpo5vooYzoqJjpjLLoo4Xnva4gPCBoaWtvdWtpcm9rdXNvdWNoaVwgOwor6KKr5ouF5L+d5YK15qip6aGNIDwgaGl0YW5wb3NhaWtlbmdha3VcIDsKK+WFseWQjOebuOe2muS6uiA8IGt5b3Vkb3Vzb3V6b2t1bmluXCA7CivlmLHoqJfmrrrkurogPCBzaG9rdXRha3VzYXRzdWppblwgOwor56CU56m255m66KGo5LyaIDwga2Vua3l1dWhhcHB5b3VrYWlcIDsKK+S6jOS6pOabv+WItuWKtOWDjSA8IG5pa291dGFpc2Vpcm91ZG91XCA7Civmub/nlJ/mpI3niakgPCBzaGlzc2Vpc2hva3VidXRzdVwgOwor5LiD5Y2B5Lq66KizIDwgc2hpY2hpanV1bmluJyd5YWt1XCA7Civkv53lrojns7vnhKHmiYDlsZ4gPCBob3NodWtlaW11c2hvem9rdVwgOwor5aSp5L2T5YiG5YWJ6KGTIDwgdGVudGFpYnVua291anV0c3VcIDsKK+eQg+mdouS4ieinkuazlSA8IGt5dXVtZW5zYW5rYWt1aG91XCA7CivoqIjph4/ntYzmuIjlraYgPCBrZWlyeW91a2VpemFpZ2FrdVwgOwor5Y+N6Lui5YiG5biD5L+C5pWwIDwgaGFudGVuYnVucHVrZWlzdXVcIDsKK+iRl+S9nOaoqeS+teWusyA8IGNob3Nha3VrZW5zaGluZ2FpXCA7CivnibnliKXlvIHorbfkurogPCB0b2t1YmV0c3ViZW5nb25pblwgOwor5a+M5Zu95by35YW1562WIDwgZnVrb2t1a3lvdWhlaXNha3VcIDsKK+epuuaMuumZjeS4i+WcsOWfnyA8IGt1dXRlaWtvdWthY2hpaWtpXCA7Civkuojmg7Plj47nqavpq5ggPCB5b3NvdXNodXVrYWt1ZGFrYVwgOwor54Gr5Yqb5pSv5o+06YOo6ZqKIDwga2FyeW9rdXNoaWVuYnV0YWlcIDsKK+ihgOWPi+eXheaCo+iAhSA8IGtldHN1eXV1YnlvdWthbmphXCA7CivnmbrnmYznianos6ogPCBoYXRzdWdhbmJ1c3NoaXRzdVwgOwor55u06KeS5LiJ6KeS5b2iIDwgY2hva2tha3VzYW5rYWtrZWlcIDsKK+eZvemVt+mgiOmvqCA8IHNoaXJvbmFnYXN1a3VqaXJhXCA7Civpl4fkvqHmoLzljZTlrpogPCB5YW1pa2FrYWt1a3lvdXRlaVwgOwor6Kaz6LOe5qSN54mpIDwga2Fuc2hvdXNob2t1YnV0c3VcIDsKK+i1pOWklue3muWGmeecnyA8IHNla2lnYWlzZW5zaGFzaGluXCA7Civlv4PnpZ7llqrlpLEgPCBzaGluc2hpbnNvdXNoaXRzdVwgOwor6YCa5L+X5bCP6KqsIDwgdHN1dXpva3VzaG91c2V0c3VcIDsKK+atjOiInuS8juWNgeWFq+eVqiA8IGthYnVraWp1dWhhY2hpYmFuXCA7Civnmb7miKbnmb7li50gPCBoeWFrdXNlbmh5YWt1c2hvdVwgOwor5aSp55qH5qmf6Zai6KqsIDwgdGVuJydub3VraWthbnNldHN1XCA7CivlhazoqLzkurrlvbnloLQgPCBrb3VzaG91bmluJyd5YWt1YmFcIDsKK+i2heePvuWun+S4u+e+qSA8IGNob3VnZW5qaXRzdXNodWdpXCA7CivkuozmpbXnnJ/nqbrnrqEgPCBuaWt5b2t1c2hpbmt1dWthblwgOwor5o+Q54Gv6KGM5YiXIDwgY2hvdWNoaW5neW91cmV0c3VcIDsKK+mYquelnuWkp+mch+eBvSA8IGhhbnNoaW5kYWlzaGluc2FpXCA7CivlpLHmpa3lr77nrZYgPCBzaGl0c3VneW91dGFpc2FrdVwgOwor5rOV5a6a5b6X56Wo5pWwIDwgaG91dGVpdG9rdWh5b3VzdXVcIDsKK+ioreeri+i2o+aEj+abuCA8IHNldHN1cml0c3VzaHVpc2hvXCA7CivlpJblm73kurrnmbvpjLIgPCBnYWlrb2t1amludG91cm9rdVwgOwor6Lqr5L2T6Zqc5a6z6ICFIDwgc2hpbnRhaXNob3VnYWlzaGFcIDsKK+Wkp+mHj+egtOWjiuWFteWZqCA8IHRhaXJ5b3VoYWthaWhlaWtpXCA7CivmtojosrvogIXkv6HnlKggPCBzaG91aGlzaGFzaGluJyd5b3VcIDsKK+WPjeWwhOS/guaVsOe3muWbsyA8IGhhbnNoYWtlaXN1dXNlbnp1XCA7CivpiI3op5LkuInop5LlvaIgPCBkb25rYWt1c2Fua2FrdWtlaVwgOwor5rW36Zuj5a+p5Yik5bqBIDwga2FpbmFuc2hpbnBhbmNob3VcIDsKK+eKr+e9queZuueUn+eOhyA8IGhhbnphaWhhc3NlaXJpdHN1XCA7Civlvq7nlJ/nianlrabogIUgPCBiaXNlaWJ1dHN1Z2FrdXNoYVwgOwor5LiD6Imy5ZSQ6L6b5a2QIDwgbmFuYWlyb3RvdWdhcmFzaGlcIDsKK+e0oOeykuWtkOWKoOmAn+WZqCA8IHNvcnl1dXNoaWthc29rdWtpXCA7CivlhazogbfpgbjmjJnms5UgPCBrb3VzaG9rdXNlbmt5b2hvdVwgOwor5a6a5b2i6YO15L6/54mpIDwgdGVpa2VpeXV1YmluYnV0c3VcIDsKK+iHqueUseiyv+aYk+WcsOWfnyA8IGppeXV1Ym91ZWtpY2hpaWtpXCA7Civlr77kuK3lm73plqLkv4IgPCB0YWljaHV1Z29rdWthbmtlaVwgOwor5YWs6ZaL5biC5aC05pON5L2cIDwga291a2Fpc2hpam91c291c2FcIDsKK+enkeWtpuaKgOihk+W6gSA8IGthZ2FrdWdpanV0c3VjaG91XCA7Civlt6blgbTpgJrooYwgPCBoaWRhcmlnYXdhdHN1dWtvdVwgOwor5aSn6Iux5Y2a54mp6aSoIDwgZGFpZWloYWt1YnV0c3VrYW5cIDsKK+WLleiEiOehrOWMlueXhyA8IGRvdW15YWt1a291a2FzaG91XCA7CivluJ3njovnpZ7mqKnoqqwgPCB0ZWlvdXNoaW5rZW5zZXRzdVwgOwor5pWR5Ye65L2c5oimIDwga3l1dXNodXRzdXNha3VzZW5cIDsKK+Wuh+WumeWkp+eIhueZuiA8IHVjaHV1ZGFpYmFrdWhhdHN1XCA7Civpppbnm7jlhbzlpJbnm7ggPCBzaHVzaG91a2VuZ2Fpc2hvdVwgOwor55Sf54mp5Zyw55CG5a2mIDwgc2VpYnV0c3VjaGlyaWdha3VcIDsKK+S6uui6q+S/neitt+S7pOeKtiA8IGppbnNoaW5ob2dvcmVpam91XCA7Civljp/lrZDniannkIblraYgPCBnZW5zaGlidXRzdXJpZ2FrdVwgOwor5q+N5a2Q5YGl5bq35omL5bizIDwgYm9zaGlrZW5rb3V0ZWNob3VcIDsKK+eVpeWPluiqmOaLkOe9qiA8IHJ5YWt1c2h1eXV1a2FpemFpXCA7CivlrqTlhoXoo4Xpo74gPCBzaGl0c3VuYWlzb3VzaG9rdVwgOwor5Y6a55Sf5bm06YeR5L+d6Zm6IDwga291c2VpbmVua2luaG9rZW5cIDsKK+ebtOaOpeertuS6iSA8IGNob2t1c2V0c3VreW91c291XCA7CivlpKnkvZPniannkIblraYgPCB0ZW50YWlidXRzdXJpZ2FrdVwgOwor6ZmN5Zyn5aSJ5Zyn5ZmoIDwga291YXRzdWhlbicnYXRzdWtpXCA7CivmnbHljbDluqbkvJrnpL4gPCBoaWdhc2hpaW5kb2dhaXNoYVwgOwor54mp6LOq5Li7576p6ICFIDwgYnVzc2hpdHN1c2h1Z2lzaGFcIDsKK+Wbvemam+eahOiyv+aYkyA8IGtva3VzYWl0ZWtpYm91ZWtpXCA7CivkuK3mgKflrZDniIblvL4gPCBjaHV1c2Vpc2hpYmFrdWRhblwgOwor5Luj5pWw5pa556iL5byPIDwgZGFpc3V1aG91dGVpc2hpa2lcIDsKK+W5s+Wdh+WkqumZveaXpSA8IGhlaWtpbnRhaXlvdWppdHN1XCA7CivmgKfooYzngrrmhJ/mn5Pnl4cgPCBzZWlrb3Vpa2Fuc2Vuc2hvdVwgOwor5pet5pel5piH5aSpIDwga3lva3VqaXRzdXNob3V0ZW5cIDsKK+S5s+WFkOatu+S6oeeOhyA8IG55dXVqaXNoaWJvdXJpdHN1XCA7CivkuIflm73ljZropqfkvJogPCBiYW5rb2t1aGFrdXJhbmthaVwgOwor6Ziy6KGb5pa96Kit5bqBIDwgYm91ZWlzaGlzZXRzdWNob3VcIDsKK+acieaWmemnkOi7iuWgtCA8IHl1dXJ5b3VjaHV1c2hham91XCA7Civoh6jluorlv4PnkIblraYgPCByaW5zaG91c2hpbnJpZ2FrdVwgOwor55Sf5ZG95L+d6Zm65Lya56S+IDwgc2VpbWVpaG9rZW5nYWlzaGFcIDsKK+WGmeecn+mAseWIiuiqjCA8IHNoYXNoaW5zaHV1a2Fuc2hpXCA7Civnp4HmnInosqHnlKPliLbluqYgPCBzaGl5dXV6YWlzYW5zZWlkb1wgOwor5beo55+z6KiY5b+154mpIDwga3lvc2VraWtpbmVuYnV0c3VcIDsKK+S6jOWFg+aWueeoi+W8jyA8IG5pZ2VuaG91dGVpc2hpa2lcIDsKK+iYmuiLlOakjeeJqSA8IHNlbnRhaXNob2t1YnV0c3VcIDsKK+mBk+e+qeeahOiyrOS7uyA8IGRvdWdpdGVraXNla2luaW5cIDsKK+eNheWtkOWUkOi+m+WtkCA8IHNoaXNoaXRvdWdhcmFzaGlcIDsKK+eglOeptuWupOajnyA8IGtlbmt5dXVzaGl0c3V0b3VcIDsKK+awl+ixoeims+a4rOiIuSA8IGtpc2hvdWthbnNva3VzZW5cIDsKK+i7veWPo+ipsSA8IGthcnVrdWNoaWJhbmFzaGlcIDsKK+S6uueMv+WQjOelluiqrCA8IGppbicnZW5kb3Vzb3NldHN1XCA7Civlm6PkvZPkuqTmuInmqKkgPCBkYW50YWlrb3VzaG91a2VuXCA7Civlr77kurrmgZDmgJbnl4cgPCB0YWlqaW5reW91ZnVzaG91XCA7CivohLPohIrpq4Tohpzngo4gPCBub3VzZWtpenVpbWFrdWVuXCA7CivopoHms6jmhI/kurrniakgPCB5b3VjaHV1aWppbmJ1dHN1XCA7CivlrabmoKHmlZnogrLms5UgPCBnYWtrb3VreW91aWt1aG91XCA7Civopb/lgbToq7jlm70gPCBuaXNoaWdhd2FzaG9rb2t1XCA7CivnjovmqKnnpZ7mjojoqqwgPCBvdWtlbnNoaW5qdXNldHN1XCA7CivnnJ/pg6jliIbpm4blkIggPCBzaGluYnVidW5zaHV1Z291XCA7Civni6zljaDnpoHmraLms5UgPCBkb2t1c2Vua2luc2hpaG91XCA7CivohIrmpI7li5XniakgPCBzZWtpdHN1aWRvdWJ1dHN1XCA7CivlsYXplpPlhbzlr53lrqQgPCBpbWFrZW5zaGluc2hpdHN1XCA7CivmoZHljp/moZHljp8gPCBrdXdhYmFyYWt1d2FiYXJhXCA7Civlhaznp7Dos4fmnKzph5EgPCBrb3VzaG91c2hpaG9ua2luXCA7Civpm7vli5Xnmbrli5XmqZ8gPCBkZW5kb3VoYXRzdWRvdWtpXCA7Civlv5znlKjniannkIblraYgPCBvdXlvdWJ1dHN1cmlnYWt1XCA7Civkuqvmpb3nlJ/mtLsgPCBreW91cmFrdXNlaWthdHN1XCA7CivlhaXlipvpm7vmtYEgPCBueXV1cnlva3VkZW5yeXV1XCA7CivkuInljYHlhavluqbnt5ogPCBzYW5qdXVoYWNoaWRvc2VuXCA7CivljYHlubTkuIDml6UgPCBqdXVuZW4nJ2ljaGlqaXRzdVwgOwor6KqN55+l5b+D55CG5a2mIDwgbmluY2hpc2hpbnJpZ2FrdVwgOwor6aKo5L+X5bCP6KqsIDwgZnV1em9rdXNob3VzZXRzdVwgOwor5L2O6KGA5Zyn55eHIDwgdGVpa2V0c3VhdHN1c2hvdVwgOwor5bel5qWt5omA5pyJ5qipIDwga291Z3lvdXNob3l1dWtlblwgOwor5aSa5aSJ6YeP6Kej5p6QIDwgdGFoZW5yeW91a2Fpc2VraVwgOwor6Jma44CF5a6f44CFIDwga3lva3lvaml0c3VqaXRzdVwgOwor5riF5ra86aOy5paZ5rC0IDwgc2VpcnlvdWlucnlvdXN1aVwgOwor5oqA6KGT5Y2U5YqbIDwgZ2lqdXRzdWt5b3VyeW9rdVwgOwor56m65Lit6KGd56qBIDwga3V1Y2h1dXNob3V0b3RzdVwgOwor5LiA5Zu95LiA5YWa5Li7576pIDwgaWtrb2t1aXR0b3VzaHVnaVwgOwor5pel5pys6YGT6Lev5YWs5ZujIDwgbmlob25kb3Vyb2tvdWRhblwgOwor6YeR5Yip55Sf5rS76ICFIDwga2lucmlzZWlrYXRzdXNoYVwgOwor5Y2D56+H5LiA5b6LIDwgc2VucGVuJydpY2hpcml0c3VcIDsKK+aWmeeQhuaVmeWupCA8IHJ5b3VyaWt5b3VzaGl0c3VcIDsKK+mBuuiogOWft+ihjOiAhSA8IHl1aWdvbnNoaWtrb3VzaGFcIDsKK+acrOagvOWwj+iqrCA8IGhvbmtha3VzaG91c2V0c3VcIDsKK+iyv+aYk+WkluWPjuaUryA8IGJvdWVraWdhaXNodXVzaGlcIDsKK+Wbveeri+WKh+WgtCA8IGtva3VyaXRzdWdla2lqb3VcIDsKK+Wun+i3teeQhuaAp+aJueWIpCA8IGppc3NlbnJpc2VpaGloYW5cIDsKK+afk+iJsuS9k+WcsOWbsyA8IHNlbnNob2t1dGFpY2hpenVcIDsKK+S4u+W4reeglOeptuWToSA8IHNodXNla2lrZW5reXV1aW5cIDsKK+mrmOmAn+W6puWGmeecnyA8IGtvdXNva3Vkb3NoYXNoaW5cIDsKK+iNiemjn+WLleeJqSA8IHNvdXNob2t1ZG91YnV0c3VcIDsKK+mrmOasoeaWueeoi+W8jyA8IGtvdWppaG91dGVpc2hpa2lcIDsKK+W+ruWIhuaWueeoi+W8jyA8IGJpYnVuaG91dGVpc2hpa2lcIDsKK+ebtOaOpemBuOaMmSA8IGNob2t1c2V0c3VzZW5reW9cIDsKK+mDteS+v+engeabuOeusSA8IHl1dWJpbnNoaXNob2Jha29cIDsKK+aWnOagvOaAp+e1seW+oSA8IHNoYWtha3VzZWl0b3VneW9cIDsKK+e1jOWPo+mBv+WmiuiWrCA8IGtlaWtvdWhpbmluJyd5YWt1XCA7CivkurrmnZDplovnmbrpg6ggPCBqaW56YWlrYWloYXRzdWJ1XCA7CivlpJrph43lkI3liY3nqbrplpMgPCB0YWp1dW5hbWFla3V1a2FuXCA7CivnlJ/ogIXlv4Xmu4UgPCBzaG91amFoaXRzdW1ldHN1XCA7CivnhrHluK/mpI3niakgPCBuZXR0YWlzaG9rdWJ1dHN1XCA7CivkuIflm73mqJnmupbmmYIgPCBiYW5rb2t1aHlvdWp1bmppXCA7Civmnb7kuIvpm7vlt6UgPCBtYXRzdXNoaXRhZGVua291XCA7CivpmLLooZvluoHplbflrpggPCBib3VlaWNob3VjaG91a2FuXCA7CivlkKvmsLTljJblkIjniakgPCBnYW5zdWlrYWdvdWJ1dHN1XCA7CivplqLmnbHlpKfpnIfngb0gPCBrYW50b3VkYWlzaGluc2FpXCA7CivllYbmpa3nrpfooZMgPCBzaG91Z3lvdXNhbmp1dHN1XCA7Civoo4XnlLLlm57lj47ou4ogPCBzb3Vrb3VrYWlzaHV1c2hhXCA7CivlnLDmlrnooYzosqHmlL8gPCBjaGlob3VneW91emFpc2VpXCA7CivmgKfooajnj77mg4XloLEgPCBzZWloeW91Z2Vuam91aG91XCA7CivmiKbmiKbmoJfmoJcgPCBzZW5zZW5yaXRzdXJpdHN1XCA7CivluIzmnJvnmoToprPmuKwgPCBraWJvdXRla2lrYW5zb2t1XCA7Civlj43lsITmuJvoobDph48gPCBoYW5zaGFnZW5zdWlyeW91XCA7Civmj67nmbrnianos6ogPCBraWhhdHN1YnVzc2hpdHN1XCA7CivlpInmhYvlv4PnkIblraYgPCBoZW50YWlzaGlucmlnYWt1XCA7CivnmbrlhYnmpI3niakgPCBoYWtrb3VzaG9rdWJ1dHN1XCA7CivmrKflt57lhbHlkIzkvZMgPCBvdXNodXVreW91ZG91dGFpXCA7CivntKvlpJbnt5rnmYLms5UgPCBzaGlnYWlzZW5yeW91aG91XCA7CivpnZ7mraboo4XkuK3nq4sgPCBoaWJ1c291Y2h1dXJpdHN1XCA7CivkuLvluK3lpJbkuqTlrpggPCBzaHVzZWtpZ2Fpa291a2FuXCA7CivntLDog57os6rpgbrkvJ0gPCBzYWlib3VzaGl0c3VpZGVuXCA7CivlhbHnlKPlhZrlrqPoqIAgPCBreW91c2FudG91c2VuZ2VuXCA7Civpm7vlipvkvpvntaYgPCBkZW5yeW9rdWt5b3VreXV1XCA7Civlt6Hlm57oqLrnmYLmiYAgPCBqdW5rYWlzaGlucnlvdWpvXCA7CivmupDms4nmiYDlvpfnqI4gPCBnZW5zZW5zaG90b2t1emVpXCA7CivntYTogbflirTlg43ogIUgPCBzb3Nob2t1cm91ZG91c2hhXCA7CivlirTlg43ogIXpmo7ntJogPCByb3Vkb3VzaGFrYWlreXV1XCA7CivmiKbnlaXniIbmkoMgPCBzZW5yeWFrdWJha3VnZWtpXCA7CivlporlqKDkuK3ntbYgPCBuaW5zaGluY2h1dXpldHN1XCA7Civmi6HlpKflho3nlJ/nlKMgPCBrYWt1ZGFpc2Fpc2Vpc2FuXCA7CivlubPlkozntq3mjIHmtLvli5UgPCBoZWl3YWlqaWthdHN1ZG91XCA7CivkuIrntJroo4HliKTmiYAgPCBqb3VreXV1c2FpYmFuc2hvXCA7CivnpoHmrLLkuLvnvqnogIUgPCBraW4nJ3lva3VzaHVnaXNoYVwgOwor54m55q6K5r2c6Iiq6ImHIDwgdG9rdXNodXNlbmtvdXRlaVwgOwor5pyA5oG15Zu95b6F6YGHIDwgc2Fpa2Vpa29rdXRhaWd1dVwgOwor5YWx55Sj5Li7576p5Zu9IDwga3lvdXNhbnNodWdpa29rdVwgOwor5Y6f5ZGK5a++6KKr5ZGKIDwgZ2Vua29rdXRhaWhpa29rdVwgOwor5Y+X6KiX5Y+O6LOE572qIDwganV0YWt1c2h1dXdhaXphaVwgOwor5rWB6KGM5oCn5oSf5YaSIDwgcnl1dWtvdXNlaWthbmJvdVwgOwor5Zu95rCR57eP55Sf55SjIDwga29rdW1pbnNvdXNlaXNhblwgOwor5Lit6Led6Zui56u26LWwIDwgY2h1dWt5b3Jpa3lvdXNvdVwgOwor5YWo5Zu955qE56+E5ZuyIDwgemVua29rdXRla2loYW4nJ2lcIDsKK+mAo+mCpuWFseWSjOWbvSA8IHJlbnBvdWt5b3V3YWtva3VcIDsKK+aZrumBjeeahOazleWJhyA8IGZ1aGVudGVraWhvdXNva3VcIDsKK+Wkp+e1semgmOmBuOaMmSA8IGRhaXRvdXJ5b3VzZW5reW9cIDsKK+S6jOWNteaAp+WPjOeUn+WFkCA8IG5pcmFuc2Vpc291c2VpamlcIDsKK+aXpeeMtuWQjOelluirliA8IG5pY2hpeXV1ZG91c29yb25cIDsKK+S4oeabv+aJi+aVsOaWmSA8IHJ5b3VnYWV0ZXN1dXJ5b3VcIDsKK+izh+acrOWIqeebiueOhyA8IHNoaWhvbnJpZWtpcml0c3VcIDsKK+itsOmZoumBi+WWtuWnlOWToeS8miA8IGdpaW4nJ3VuJydlaWlpbmthaVwgOwor5oim6LuK5o+a6Zm46ImmIDwgc2Vuc2hheW91cmlrdWthblwgOwor5Li76L6e57Sg5oCn6KaP57SEIDwgc2h1amlzb3NlaWtpeWFrdVwgOwor5aWz5oCn6Kej5pS+6YGL5YuVIDwgam9zZWlrYWlob3V1bmRvdVwgOwor5aOy5pil6Ziy5q2i5rOVIDwgYmFpc2h1bmJvdXNoaWhvdVwgOwor5YWJ5YyW5a2m5Y+N5b+cIDwga291a2FnYWt1aGFuJydub3VcIDsKK+ebtOaOpeS8muirhyA8IGNob2t1c2V0c3VrYWlkYW5cIDsKK+WJsuWil+izg+mHkSA8IHdhcmltYXNoaWNoaW5naW5cIDsKK+i7jeS6i+W9k+WxgOiAhSA8IGd1bmppdG91a3lva3VzaGFcIDsKK+iCieS9k+WKtOWDjeiAhSA8IG5pa3V0YWlyb3Vkb3VzaGFcIDsKK+iHquS4u+a1gemAmuexsyA8IGppc2h1cnl1dXRzdXVtYWlcIDsKK+S9nOS7mOmdouepjSA8IHNha3VkenVrZW1lbnNla2lcIDsKK+aXpeeLrOWNlOS8miA8IG5pY2hpZG9rdWt5b3VrYWlcIDsKK+aXpeW4uOeUn+a0uyA8IG5pY2hpam91c2Vpa2F0c3VcIDsKK+esrOS4gOasoeeUo+alrSA8IGRhaWljaGlqaXNhbmd5b3VcIDsKK+Wun+WtmOS4u+e+qeiAhSA8IGppdHN1em9uc2h1Z2lzaGFcIDsKK+ats+WFpeats+WHuiA8IHNhaW55dXVzYWlzaHV0c3VcIDsKK+eJueWIpeaApeihjCA8IHRva3ViZXRzdWt5dXVrb3VcIDsKK+ePvuWun+S4u+e+qeiAhSA8IGdlbmppdHN1c2h1Z2lzaGFcIDsKK+WPjeaUv+W6nOWLouWKmyA8IGhhbnNlaWZ1c2Vpcnlva3VcIDsKK+WFjeeWq+S4jeWFqOeXhyA8IG1lbicnZWtpZnV6ZW5zaG91XCA7Civou6Llh7roqLzmmI4gPCB0ZW5zaHV0c3VzaG91bWVpXCA7CivljYHpgLLliIbpoZ7ms5UgPCBqaXNzaGluYnVucnVpaG91XCA7Civlgbblg4/mlZnlvpLnmoQgPCBndXV6b3VreW91dG90ZWtpXCA7CivntIXnmb3mrYzlkIjmiKYgPCBrb3VoYWt1dXRhZ2Fzc2VuXCA7CivntYzmuIjnoJTnqbbmiYAgPCBrZWl6YWlrZW5reXV1c2hvXCA7Civou43kuovpgJrkv6Hlk6EgPCBndW5qaXRzdXVzaGluJydpblwgOwor5Z+65rqW5YaF6LOD6YeRIDwga2lqdW4nJ25haWNoaW5naW5cIDsKK+ecjOW6geaJgOWcqOWcsCA8IGtlbmNob3VzaG96YWljaGlcIDsKK+aVkeiNkuS9nOeJqSA8IGt5dXVrb3VzYWt1bW90c3VcIDsKK+ecn+Wul+Wkp+iwt+a0viA8IHNoaW5zaHV1b290YW5paGFcIDsKK+WcsOeGseeZuumbuyA8IGNoaW5ldHN1aGF0c3VkZW5cIDsKK+iWrOeJqeeZguazlSA8IHlha3VidXRzdXJ5b3Vob3VcIDsKK+WGjeWFpeWbveioseWPryA8IHNhaW55dXVrb2t1a3lva2FcIDsKK+iLseWbveWbveaVmeS8miA8IGVpa29rdWtva2t5b3VrYWlcIDsKK+mjn+ezp+mFjee1piA8IHNob2t1cnlvdWhhaWt5dXVcIDsKK+eCremFuOWQjOWMluS9nOeUqCA8IHRhbnNhbmRvdWthc2F5b3VcIDsKK+a4heaVmeW+kumdqeWRvSA8IHNlaWt5b3V0b2tha3VtZWlcIDsKK+WkqumZveelnue1jOWPoiA8IHRhaXlvdXNoaW5rZWlzb3VcIDsKK+ebtOezu+ihgOaXjyA8IGNob2trZWlrZXRzdXpva3VcIDsKK+izquWVj+eUqOe0mSA8IHNoaXRzdW1vbicneW91c2hpXCA7CivntYzllrblrabkv67lo6sgPCBrZWllaWdha3VzaHV1c2hpXCA7CivlgaXlurfoqLzmmI7mm7ggPCBrZW5rb3VzaG91bWVpc2hvXCA7CivnpL7kvJrlv4PnkIblraYgPCBzaGFrYWlzaGlucmlnYWt1XCA7CivkuozlpKfmlL/lhZrkuLvnvqkgPCBuaWRhaXNlaXRvdXNodWdpXCA7Civni6zouqvnlJ/mtLsgPCBkb2t1c2hpbnNlaWthdHN1XCA7Civorablr5/lvZPlsYAgPCBrZWlzYXRzdXRvdWt5b2t1XCA7CivlhazlhbHkvIHmpa3kvZMgPCBrb3VreW91a2lneW91dGFpXCA7Civnm7TmjqXkvJ3mn5MgPCBjaG9rdXNldHN1ZGVuc2VuXCA7Civpg73luILlho3plovnmbogPCB0b3NoaXNhaWthaWhhdHN1XCA7CivpnZLnqbrmlZnlrqQgPCBhb3pvcmFreW91c2hpdHN1XCA7CivmlL7lsITnt5rnmYLms5UgPCBob3VzaGFzZW5yeW91aG91XCA7Civlm73pgKPliIbmi4Xph5EgPCBrb2t1cmVuYnVudGFua2luXCA7CivpnZ7lq6Hlh7rlrZAgPCBoaWNoYWt1c2h1dHN1c2hpXCA7CivnlJ/mtLvmp5jlvI8gPCBzZWlrYXRzdXlvdXNoaWtpXCA7CivlrprmnJ/liIrooYzniakgPCB0ZWlraWthbmtvdWJ1dHN1XCA7CivmlLvmkoPplovlp4vnt5ogPCBrb3VnZWtpa2Fpc2hpc2VuXCA7CivlubPpnaLkuInop5Lms5UgPCBoZWltZW5zYW5rYWt1aG91XCA7Civms5XlrprkvJ3mn5Pnl4UgPCBob3V0ZWlkZW5zZW5ieW91XCA7CivniYfpgZPmlpnph5EgPCBrYXRhbWljaGlyeW91a2luXCA7Civljp/msrnmtYHlh7ogPCBnZW4nJ3l1cnl1dXNodXRzdVwgOwor55Wl5byP5ZG95LukIDwgcnlha3VzaGlraW1laXJlaVwgOwor6Iq46KGT5rS75YuVIDwgZ2VpanV0c3VrYXRzdWRvdVwgOwor5LiJ5Y+J56We57WM55ebIDwgc2Fuc2FzaGlua2VpdHN1dVwgOwor5q205Y+y5ZOy5a2mIDwgcmVraXNoaXRldHN1Z2FrdVwgOwor5YSq5Yud5rG65a6a5oimIDwgeXV1c2hvdWtldHRlaXNlblwgOwor5LiL55S66KiA6JGJIDwgc2hpdGFtYWNoaWtvdG9iYVwgOwor5pyA5L2O55Sf5rS76LK7IDwgc2FpdGVpc2Vpa2F0c3VoaVwgOwor5LiN57SU55Ww5oCn5Lqk6YGKIDwgZnVqdW4nJ2lzZWlrb3V5dXVcIDsKK+mqqOearueti+WPs+ihm+mWgCA8IGhvbmVrYXdhc3VqaWVtb25cIDsKK+W6nOecjOWIpeS6uuWPoyA8IGZ1a2VuYmV0c3VqaW5rb3VcIDsKK+e3iuaApeedgOmZuCA8IGtpbmt5dXVjaGFrdXJpa3VcIDsKK+aOqOWumuebuOe2muS6uiA8IHN1aXRlaXNvdXpva3VuaW5cIDsKK+WGt+ihgOWLleeJqSA8IHJlaWtldHN1ZG91YnV0c3VcIDsKK+WkmuWbveexjeS8gealrSA8IHRha29rdXNla2lraWd5b3VcIDsKK+WPluaJseazqOaEjyA8IHRvcmlhdHN1a2FpY2h1dWlcIDsKK+a1hemWk+WxseiNmOS6i+S7tiA8IGFzYW1hc2Fuc291amlrZW5cIDsKK+aZtOS4gOaZguWwj+mbqCA8IGhhcmVpY2hpamlrb3NhbWVcIDsKK+WJsuWil+aWmemHkSA8IHdhcmltYXNoaXJ5b3VraW5cIDsKK+Wto+evgOWKtOWDjeiAhSA8IGtpc2V0c3Vyb3Vkb3VzaGFcIDsKK+S4reWwj+iruOWbveWutiA8IGNob3VzaG91c2hva29ra2FcIDsKK+S4jeW5s+etieadoee0hCA8IGZ1YnlvdWRvdWpvdXlha3VcIDsKK+ebtOaIquewoeaYjiA8IGNob2t1c2V0c3VrYW5tZWlcIDsKK+m7hOmBk+WQieaXpSA8IGtvdWRvdWtpY2hpbmljaGlcIDsKK+acgOS9juizg+mHkeWItiA8IHNhaXRlaWNoaW5naW5zZWlcIDsKK+W4neWbveS4u+e+qeeahCA8IHRlaWtva3VzaHVnaXRla2lcIDsKK+S4gOinpuWNs+eZuiA8IGlzc2hva3Vzb2t1aGF0c3VcIDsKK+WNs+aXpemWi+elqCA8IHNva3VqaXRzdWthaWh5b3VcIDsKK+akjeeJqeizqiA8IHNob2t1YnV0c3VzaGl0c3VcIDsKK+e0jeeojumAmuefpeabuCA8IG5vdXplaXRzdXVjaGlzaG9cIDsKK+mWoueojuWJsuW9k+WItiA8IGthbnplaXdhcmlhdGVzZWlcIDsKK+Wun+izquizg+mHkSA8IGppc3NoaXRzdWNoaW5naW5cIDsKK+WxheS9j+iovOaYjuabuCA8IGt5b2p1dXNob3VtZWlzaG9cIDsKK+Wkp+S9v+e0muS8muirhyA8IHRhaXNoaWt5dXVrYWlkYW5cIDsKK+aVmemkiuWwj+iqrCA8IGt5b3V5b3VzaG91c2V0c3VcIDsKK+awkeS4u+a0u+WLleWutiA8IG1pbnNodWthdHN1ZG91a2FcIDsKK+WuouWToeeglOeptuWToSA8IGt5YWt1aW5rZW5reXV1aW5cIDsKK+aKveixoeiKuOihkyA8IGNodXVzaG91Z2VpanV0c3VcIDsKK+ebtOaOpeaUr+mFjSA8IGNob2t1c2V0c3VzaGloYWlcIDsKK+eSsOWig+S/neitt+S4u+e+qSA8IGthbmt5b3Vob2dvc2h1Z2lcIDsKK+S4lueVjOiyv+aYk+apn+mWoiA8IHNla2FpYm91ZWtpa2lrYW5cIDsKK+aUr+aMgeWKm+S/guaVsCA8IHNoaWppcnlva3VrZWlzdXVcIDsKK+ebtOS4i+Wei+WcsOmchyA8IGNob2trYWdhdGFqaXNoaW5cIDsKK+acquino+axuuWVj+mhjCA8IG1pa2Fpa2V0c3Vtb25kYWlcIDsKK+W7uuevieWfuua6luazlSA8IGtlbmNoaWt1a2lqdW5ob3VcIDsKK+eEoeW9ouWbuuWumuizh+eUoyA8IG11a2Vpa290ZWlzaGlzYW5cIDsKK+efpeeahOaJgOacieaoqSA8IGNoaXRla2lzaG95dXVrZW5cIDsKK+iBt+alreWuieWumuaJgCA8IHNob2t1Z3lvdWFudGVpam9cIDsKK+WFseeUo+WFmue0sOiDniA8IGt5b3VzYW50b3VzYWlib3VcIDsKK+S4gOW5tOeUn+iNieacrCA8IGljaGluZW5zZWlzb3Vob25cIDsKK+adoee0hOWKoOebn+WbvSA8IGpvdXlha3VrYW1laWtva3VcIDsKK+eri+ato+S9vOaIkOS8miA8IHJpc3Nob3Vrb3VzZWlrYWlcIDsKK+mbhuWbo+WwseiBtyA8IHNodXVkYW5zaHV1c2hva3VcIDsKK+WFseims+emj+mfs+abuCA8IGt5b3VrYW5mdWt1aW5zaG9cIDsKK+awtOeUn+akjeeJqSA8IHN1aXNlaXNob2t1YnV0c3VcIDsKK+Wuv+ebtOWupCA8IHNodWt1Y2hva3VzaGl0c3VcIDsKK+mrmOaJgOaBkOaAlueXhyA8IGtvdXNob2t5b3VmdXNob3VcIDsKK+aWsOiBnuiyqeWjsuW6lyA8IHNoaW5idW5oYW5iYWl0ZW5cIDsKK+i+suael+awtOeUo+ecgSA8IG5vdXJpbnN1aXNhbnNob3VcIDsKK+S6jOiAhemBuOS4gOazlSA8IG5pc2hhc2VuJydpdHN1aG91XCA7CivlooPnlYzlgKTllY/poYwgPCBreW91a2FpY2hpbW9uZGFpXCA7CivnpL7kvJrkurrph47nkIMgPCBzaGFrYWlqaW4nJ3lha3l1dVwgOwor6IG35YuZ6LOq5ZWPIDwgc2hva3VtdXNoaXRzdW1vblwgOwor5Lm+55Sf5qSN54mpIDwga2Fuc2Vpc2hva3VidXRzdVwgOwor6I+c6aOf5Li7576p6ICFIDwgc2Fpc2hva3VzaHVnaXNoYVwgOwor5a6/5rOK6Kit5YKZIDwgc2h1a3VoYWt1c2V0c3ViaVwgOwor5Zu956uL5aSn5a2mIDwga29rdXJpdHN1ZGFpZ2FrdVwgOwor5LiA6KiA5LqM6KiAIDwgaGl0b2tvdG9mdXRha290b1wgOwor6LuN55Sj6KSH5ZCI5L2TIDwgZ3Vuc2FuZnVrdWdvdXRhaVwgOwor57K+56We5Yy75a2m6ICFIDwgc2Vpc2hpbicnaWdha3VzaGFcIDsKK+e1jOa4iOS8geeUu+W6gSA8IGtlaXphaWtpa2FrdWNob3VcIDsKK+WFiOerr+aUr+aMgeWKmyA8IHNlbnRhbnNoaWppcnlva3VcIDsKK+S/neWBpeeJqeeQhuWtpiA8IGhva2VuYnV0c3VyaWdha3VcIDsKK+ato+mdouihneeqgSA8IHNob3VtZW5zaG91dG90c3VcIDsKK+WIhuino+iSuOa6nOazlSA8IGJ1bmthaWpvdXJ5dXVob3VcIDsKK+ioiOmHj+iogOiqnuWtpiA8IGtlaXJ5b3VnZW5nb2dha3VcIDsKK+WcsOWfn+aMr+iIiOWIuCA8IGNoaWlraXNoaW5rb3VrZW5cIDsKK+aApemAsuS4u+e+qeiAhSA8IGt5dXVzaGluc2h1Z2lzaGFcIDsKK+S4gOaXpeWNg+eniyA8IGljaGluaWNoaXNlbnNodXVcIDsKK+S6pOmAmumBi+i8uOalrSA8IGtvdXRzdXV1bicneXVneW91XCA7CivllYbmpa3nm67nmoQgPCBzaG91Z3lvdW1va3V0ZWtpXCA7CivnhKHliLbpmZDkvpvntaYgPCBtdXNlaWdlbmt5b3VreXV1XCA7CivntabkuI7miYDlvpfogIUgPCBreXV1eW9zaG90b2t1c2hhXCA7CivmiKbpl5jniIbmkoPmqZ8gPCBzZW50b3ViYWt1Z2VraWtpXCA7CivopIflvI/lrabntJogPCBmdWt1c2hpa2lnYWtreXV1XCA7Civmnpfmpa3oqabpqJPloLQgPCByaW5neW91c2hpa2Vuam91XCA7CivljZLmpa3oqLzmm7ggPCBzb3RzdWd5b3VzaG91c2hvXCA7Civmk7LlvL7nmbrlsITnrZIgPCB0ZWtpZGFuaGFzc2hhdG91XCA7CivnlKPou43opIflkIjkvZMgPCBzYW5ndW5mdWt1Z291dGFpXCA7CivmnIDlpKflhazntITmlbAgPCBzYWlkYWlrb3V5YWt1c3V1XCA7Civlm73lhoXmtojosrvnqI4gPCBrb2t1bmFpc2hvdWhpemVpXCA7CivlsJHlubTlr6nliKTmiYAgPCBzaG91bmVuc2hpbnBhbmpvXCA7CivnhLzogonlrprpo58gPCB5YWtpbmlrdXRlaXNob2t1XCA7CivmtYHooYzmgKfogp3ngo4gPCByeXV1a291c2Vpa2FuJydlblwgOwor6KGo6Z2i5by15YqbIDwgaHlvdW1lbmNob3VyeW9rdVwgOwor5rqW5rqW5rG65Yud5oimIDwganVuanVua2Vzc2hvdXNlblwgOwor5LiN5a6M5YWo54eD54S8IDwgZnVrYW56ZW4nJ25lbnNob3VcIDsKK+WOn+WtkOWKm+aZguS7oyA8IGdlbnNoaXJ5b2t1amlkYWlcIDsKK+i+sualreippumok+WgtCA8IG5vdWd5b3VzaGlrZW5qb3VcIDsKK+mrmOmAn+W6puaSruW9sSA8IGtvdXNva3Vkb3NhdHN1ZWlcIDsKK+eJueWIpeeVque1hCA8IHRva3ViZXRzdWJhbmd1bWlcIDsKK+Wtpue/kuiDveWKmyA8IGdha3VzaHV1bm91cnlva3VcIDsKK+Wlveawl+aAp+eUn+eJqSA8IGtvdWtpc2Vpc2VpYnV0c3VcIDsKK+WutuW6reWGheaatOWKmyA8IGthdGVpbmFpYm91cnlva3VcIDsKK+S/oeeUqOWPluW8lSA8IHNoaW4nJ3lvdXRvcmloaWtpXCA7Civpn7Plo7DlpJrph43mlL7pgIEgPCBvbnNlaXRhanV1aG91c291XCA7Civpq5jooYDlnKfnl4cgPCBrb3VrZXRzdWF0c3VzaG91XCA7CivlnKjnsY3lsILlvpPogIUgPCB6YWlzZWtpc2VuanV1c2hhXCA7CivkuIDlj6PoqbEgPCBoaXRva3VjaGliYW5hc2hpXCA7CivlrpjosrvnlZnlrabnlJ8gPCBrYW5waXJ5dXVnYWt1c2VpXCA7CivljZfljJfmnJ3mmYLku6MgPCBuYW5ib2t1Y2hvdWppZGFpXCA7CivmrbvkuqHoqLrmlq3mm7ggPCBzaGlib3VzaGluZGFuc2hvXCA7CivlvKbmpb3lm5vph43lpY8gPCBnZW5nYWt1c2hpanV1c291XCA7Civku7Loo4Hoo4HliKTmiYAgPCBjaHV1c2Fpc2FpYmFuc2hvXCA7CivnkIboq5bniannkIblraYgPCByaXJvbmJ1dHN1cmlnYWt1XCA7CivlhajoiKzliY3lk6jnt5ogPCB6ZW5wYW56ZW5zaG91c2VuXCA7CivnrY3nlJ/mtLsgPCB0YWtlbm9rb3NlaWthdHN1XCA7CivljYHkuozmjIfohbjomasgPCBqdXVuaXNoaWNob3VjaHV1XCA7CivkuK3lv4PkurrniakgPCBjaHV1c2hpbmppbmJ1dHN1XCA7CivlnJ/mnKjlt6XlrabogIUgPCBkb2Jva3Vrb3VnYWt1c2hhXCA7Civpo5/mlpnlk4HllYYgPCBzaG9rdXJ5b3VoaW5zaG91XCA7Civml6XkuK3pn5PntbHlkIggPCBuaXRjaHV1a2FudG91Z291XCA7Civmi6HlvLXlgI3nsr7luqYgPCBrYWt1Y2hvdWJhaXNlaWRvXCA7CivlirTlg43lj47lrrnmiYAgPCByb3Vkb3VzaHV1eW91c2hvXCA7CivotoXnj77lrp/nmoQgPCBjaG91Z2Vuaml0c3V0ZWtpXCA7CivljbPouqvmiJDku48gPCBzb2t1c2hpbmpvdWJ1dHN1XCA7Civlm73lpJbohLHlh7ogPCBrb2t1Z2FpZGFzc2h1dHN1XCA7CivnhKHnnYDpmbjpo5vooYwgPCBtdWNoYWt1cmlrdWhpa291XCA7Civml6Xku5jlpInmm7Tnt5ogPCBoaWR6dWtlaGVua291c2VuXCA7Civnm7TmjqXlm57nrZQgPCBjaG9rdXNldHN1a2FpdG91XCA7CivlvZPkuovogIXog73lipsgPCB0b3VqaXNoYW5vdXJ5b2t1XCA7CivohLPmgKflsI/lhZDpurvnl7ogPCBub3VzZWlzaG91bmltYWhpXCA7CivlhYjnianlj5blvJUgPCBzYWtpbW9ub3RvcmloaWtpXCA7CivlpKfmnbHkupzlhbHmoITlnI8gPCBkYWl0b3Vha3lvdWVpa2VuXCA7CivmrbTlj7LlsI/oqqwgPCByZWtpc2hpc2hvdXNldHN1XCA7Civnha7msrjmtojmr5IgPCBzaGFmdXRzdXNob3Vkb2t1XCA7CivmtbflpJbpgLLlh7ogPCBrYWlnYWlzaGluc2h1dHN1XCA7CivmsLTlipvnmbrpm7sgPCBzdWlyeW9rdWhhdHN1ZGVuXCA7CivmkI3nm4roqIjnrpfmm7ggPCBzb24nJ2VraWtlaXNhbnNob1wgOwor5bCP5aOy54mp5L6h5oyH5pWwIDwga291cmlidWtrYXNoaXN1dVwgOwor5oCl6KGM5YGc6LuK6aeFIDwga3l1dWtvdXRlaXNoYWVraVwgOwor5Y+N5qSN5rCR5Li7576pIDwgaGFuc2hva3VtaW5zaHVnaVwgOwor5qW15L2O5rip56eR5a2mIDwga3lva3V0ZWlvbmthZ2FrdVwgOwor6Ieq55Sx5Li7576p57WM5riIIDwgaml5dXVzaHVnaWtlaXphaVwgOwor5YaZ55yf5pyb6YGg6Y+hIDwgc2hhc2hpbmJvdWVua3lvdVwgOwor5b2i6LOq5bCO5YWlIDwga2Vpc2hpdHN1ZG91bnl1dVwgOwor5aaZ5rOV6JOu6I+v57WMIDwgbXlvdWhvdXJlbmdla3lvdVwgOwor5a6f55So5Li7576p6ICFIDwgaml0c3V5b3VzaHVnaXNoYVwgOwor5b6M5pa56YCj57Wh57eaIDwga291aG91cmVucmFrdXNlblwgOwor5a6f6aiT5b+D55CG5a2mIDwgamlra2Vuc2hpbnJpZ2FrdVwgOwor5aSc6ZaT6aCQ6YeR44CF5bqrIDwgeWFrYW4nJ3lva2lua2lua29cIDsKK+ebtOaOpemWouS/giA8IGNob2t1c2V0c3VrYW5rZWlcIDsKK+aMr+abv+S8keaXpSA8IGZ1cmlrYWVreXV1aml0c3VcIDsKK+mAo+mCpua6luWCmeWItuW6piA8IHJlbnBvdWp1bmJpc2VpZG9cIDsKK+mDteS+v+Wwj+WMhSA8IHl1dWJpbmtvZHp1dHN1bWlcIDsKK+S4jeazleWFpeWbveiAhSA8IGZ1aG91bnl1dWtva3VzaGFcIDsKK+WNmOS4gOelnuaVmSA8IHRhbicnaXRzdXNoaW5reW91XCA7CivomZrlvLHkvZPos6ogPCBreW9qYWt1dGFpc2hpdHN1XCA7CivlpJrlhYPmlrnnqIvlvI8gPCB0YWdlbmhvdXRlaXNoaWtpXCA7Civlm73lhoXnt4/nlJ/nlKMgPCBrb2t1bmFpc291c2Vpc2FuXCA7CivohIrntKLli5XniakgPCBzZWtpc2FrdWRvdWJ1dHN1XCA7CivmrablipvooZ3nqoEgPCBidXJ5b2t1c2hvdXRvdHN1XCA7CivnhrHmoLjlj43lv5wgPCBuZXRzdWtha3VoYW4nJ25vdVwgOwor6YmE6YGT5YWs5a6J5a6YIDwgdGV0c3Vkb3Vrb3VhbmthblwgOwor56iu5a2Q5qSN54mpIDwgc2h1c2hpc2hva3VidXRzdVwgOwor5bmz5Y+w5Z6L6LKo6LuKIDwgaGlyYWRhaWdhdGFrYXNoYVwgOwor5Lq656ew5Luj5ZCN6KmeIDwgbmluc2hvdWRhaW1laXNoaVwgOwor5a6f5qWt5LmL5pel5pysIDwgaml0c3VneW91bm9uaWhvblwgOwor56mN5bGk5Lm+6Zu75rGgIDwgc2VraXNvdWthbmRlbmNoaVwgOwor6KGM5pS/566h55CG5bqBIDwgZ3lvdXNlaWthbnJpY2hvdVwgOwor6LWk5Y2B5a2X5p2h57SEIDwgc2VraWp1dWppam91eWFrdVwgOwor5YWJ5a2m6aGV5b6u6Y+hIDwga291Z2FrdWtlbmJpa3lvdVwgOwor6LaF6YGO5Yuk5YuZ5omL5b2TIDwgY2hvdWtha2lubXV0ZWF0ZVwgOwor5LqI5YKZ5aOr5a6Y5a2m5qChIDwgeW9iaXNoaWthbmdha2tvdVwgOwor5by35Yi25Y+O5a655omAIDwga3lvdXNlaXNodXV5b3Vqb1wgOwor54qv572q5b+D55CG5a2mIDwgaGFuemFpc2hpbnJpZ2FrdVwgOwor6YCj6YKm5o2c5p+75bGAIDwgcmVucG91c291c2FreW9rdVwgOwor5aSn6Zm456e75YuV6KqsIDwgdGFpcmlrdWlkb3VzZXRzdVwgOwor55u05o6l6KGM5YuVIDwgY2hva3VzZXRzdWtvdWRvdVwgOwor5LyB5qWt5YaF5pWZ6IKyIDwga2lneW91bmFpa3lvdWlrdVwgOwor5rGC6IG35bqD5ZGKIDwga3l1dXNob2t1a291a29rdVwgOwor5a6f6Ki85ZOy5a2mIDwgamlzc2hvdXRldHN1Z2FrdVwgOwor6Iqx5auB6Iqx5am/IDwgaGFuYXlvbWVoYW5hbXVrb1wgOwor55S75YOP5Yem55CG6KOF572uIDwgZ2F6b3VzaG9yaXNvdWNoaVwgOwor56qS57Sg6YW45YyW54mpIDwgY2hpc3Nvc2Fua2FidXRzdVwgOwor5bid546L5YiH6ZaL6KGTIDwgdGVpb3VzZWtrYWlqdXRzdVwgOwor5YWt5Y2B5Zub5YiG6Z+z56ymIDwgcm9rdWp1dXNoaWJ1b25wdVwgOwor5pil5qmf55m65YuV5pyfIDwgc2h1bmtpaGF0c3Vkb3VraVwgOwor5aSn5ZCN6KGM5YiXIDwgZGFpbXlvdWd5b3VyZXRzdVwgOwor6auY5bGx5qSN54mpIDwga291emFuc2hva3VidXRzdVwgOwor5pS+5bCE5oCn5ZCM5L2N5L2TIDwgaG91c2hhc2VpZG91aXRhaVwgOwor5aSp5bmV6KO96YCg5Lq6IDwgdGVubWFrdXNlaXpvdW5pblwgOwor5pyA5YSq56eA6YG45omLIDwgc2FpeXV1c2h1dXNlbnNodVwgOwor54m55Yil5paZ6YeRIDwgdG9rdWJldHN1cnlvdWtpblwgOwor5Yud5Yip5Y+I5Yud5YipIDwgc2hvdXJpbWF0YXNob3VyaVwgOwor5aWz5rWB5paH5a2m6ICFIDwgam9yeXV1YnVuZ2FrdXNoYVwgOwor5Lit6ZaT5bCP6KqsIDwgY2h1dWthbnNob3VzZXRzdVwgOwor6ICQ5LmF5raI6LK76LKhIDwgdGFpa3l1dXNob3VoaXphaVwgOwor6Z2e5YWs5byP5Y2U6K2wIDwgaGlrb3VzaGlraWt5b3VnaVwgOwor55Sf54mp5r+D57iuIDwgc2VpYnV0c3Vub3VzaHVrdVwgOwor5YWl5Yqb5L+h5Y+3IDwgbnl1dXJ5b2t1c2hpbmdvdVwgOwor56m65riv5L2/55So5paZIDwga3V1a291c2hpeW91cnlvdVwgOwor5b2r5Yi75a6k5bqnIDwgY2hvdWtva3VzaGl0c3V6YVwgOwor56K6546H5qiZ5pysIDwga2FrdXJpdHN1aHlvdWhvblwgOwor54Sh6YeN5Yqb54q25oWLIDwgbXVqdXVyeW9rdWpvdXRhaVwgOwor5aSp54Wn55qH5aSn56WeIDwgdGVuc2hvdWtvdWRhaWppblwgOwor5bee56uL5aSn5a2mIDwgc2h1dXJpdHN1ZGFpZ2FrdVwgOwor57K+56We5a6J5a6a5YmkIDwgc2Vpc2hpbicnYW50ZWl6YWlcIDsKK+mFuOaAp+mFuOWMlueJqSA8IHNhbnNlaXNhbmthYnV0c3VcIDsKK+WGmeWun+S4u+e+qeiAhSA8IHNoYWppdHN1c2h1Z2lzaGFcIDsKK+WGt+aIpuWei+aAneiAgyA8IHJlaXNlbmdhdGFzaGlrb3VcIDsKK+S6nOeGseW4r+mrmOawl+WcpyA8IGFuZXR0YWlrb3VraWF0c3VcIDsKK+WkmuiCieakjeeJqSA8IHRhbmlrdXNob2t1YnV0c3VcIDsKK+mbu+WtkOW3pealreS8miA8IGRlbnNoaWtvdWd5b3VrYWlcIDsKK+mbu+WtkOW3peWtpuiAhSA8IGRlbnNoaWtvdWdha3VzaGFcIDsKK+itsua4oeS6uiA8IHl1enVyaXdhdGFzaGluaW5cIDsKK+eGseS8neWwjueOhyA8IG5ldHN1ZGVuZG91cml0c3VcIDsKK+awkeS4u+WFseWSjOWbvSA8IG1pbnNodWt5b3V3YWtva3VcIDsKK+ejgeawl+WFsemztOeUu+WDjyA8IGppa2lreW91bWVpZ2F6b3VcIDsKK+eLrOeri+iomOW/teaXpSA8IGRva3VyaXRzdWtpbmVuYmlcIDsKK+WMluWtpuiqv+WRs+aWmSA8IGthZ2FrdWNob3VtaXJ5b3VcIDsKK+akjeeJqeS6uumWkyA8IHNob2t1YnV0c3VuaW5nZW5cIDsKK+mzpeeNo+S/neitt+WMuuWfnyA8IGNob3VqdXVob2dva3Vpa2lcIDsKK+e1gui6q+mbh+eUqOWItiA8IHNodXVzaGlua295b3VzZWlcIDsKK+S4jeWumuaWueeoi+W8jyA8IGZ1dGVpaG91dGVpc2hpa2lcIDsKK+eJqeeJqeS6pOaPmyA8IGJ1dHN1YnV0c3Vrb3VrYW5cIDsKK+Wun+WKm+ihjOS9vyA8IGppdHN1cnlva3Vrb3VzaGlcIDsKK+Wei+W8j+iovOaYjiA8IGthdGFzaGlraXNob3VtZWlcIDsKK+mAo+WLneikh+W8jyA8IHJlbnNob3VmdWt1c2hpa2lcIDsKK+Wkp+S/rumBk+mZoumVtyA8IGRhaXNodXVkb3VpbmNob3VcIDsKK+ebtOaOpeWNlOitsCA8IGNob2t1c2V0c3VreW91Z2lcIDsKK+e9qumanOa2iOa7hSA8IHphaXNob3VzaG91bWV0c3VcIDsKK+aZqeeUn+akjeeJqSA8IGJhbnNlaXNob2t1YnV0c3VcIDsKK+a9nOWcqOWksealrSA8IHNlbnphaXNoaXRzdWd5b3VcIDsKK+a4r+a5vumBi+mAgealrSA8IGtvdXdhbicndW5zb3VneW91XCA7Civlkajms6LmlbDlpInoqr8gPCBzaHV1aGFzdXVoZW5jaG91XCA7Civkub7nh6XlnLDovrLmpa0gPCBrYW5zb3VjaGlub3VneW91XCA7CivnkrDlooPphY3mha7mm7ggPCBrYW5reW91aGFpcnlvc2hvXCA7Civnm7TmjqXmr5TovIMgPCBjaG9rdXNldHN1aGlrYWt1XCA7Civlm7rkvZPniannkIblraYgPCBrb3RhaWJ1dHN1cmlnYWt1XCA7CivmoLjmipHmraLlipsgPCBrYWt1eW9rdXNoaXJ5b2t1XCA7Civlm73pmpvmj7TliqnmqZ/plqIgPCBrb2t1c2FpZW5qb2tpa2FuXCA7CivntYTnuZTlirTlg43ogIUgPCBzb3NoaWtpcm91ZG91c2hhXCA7Civllrbmpa3loLHlkYrmm7ggPCBlaWd5b3Vob3Vrb2t1c2hvXCA7CivkuIfnianmtYHou6IgPCBiYW5idXRzdXJ5dXV0ZW5cIDsKK+i7n+W8j+W6reeQgyA8IG5hbnNoaWtpdGVpa3l1dVwgOwor5bqD5ZGK5Luj55CG5bqXIDwga291a29rdWRhaXJpdGVuXCA7Civkv67pgZPnlJ/mtLsgPCBzaHV1ZG91c2Vpa2F0c3VcIDsKK+aIpuaZguWbvemam+azlSA8IHNlbmppa29rdXNhaWhvdVwgOwor56eY5a+G6K2m5a+fIDwgaGltaXRzdWtlaXNhdHN1XCA7Civms5XkurrmoKrkuLsgPCBob3VqaW5rYWJ1bnVzaGlcIDsKK+WGheW5leipsSA8IHVjaGltYWt1YmFuYXNoaVwgOwor6ZaT5o6l54Wn5piOIDwga2Fuc2V0c3VzaG91bWVpXCA7CivntJvpqqjnoJXouqsgPCBmdW5rb3RzdXNhaXNoaW5cIDsKK+S4oeajsuWLleeJqSA8IHJ5b3VzZWlkb3VidXRzdVwgOwor5aSa6aGN57SN56iO6ICFIDwgdGFnYWt1bm91emVpc2hhXCA7CivlpKrlhYPluKXlppnnjosgPCBkYWlnZW5zdWlteW91b3VcIDsKK+mbhue0hOi+sualrSA8IHNodXV5YWt1bm91Z3lvdVwgOwor5buD55a+5p2h5Lu2IDwgaGFpc2hpdHN1am91a2VuXCA7Civog73njofos4Pph5EgPCBub3VyaXRzdWNoaW5naW5cIDsKK+S4remDqOWkquW5s+a0iyA8IGNodXVidXRhaWhlaXlvdVwgOwor5LyB5qWt5YaF57WE5ZCIIDwga2lneW91bmFpa3VtaWFpXCA7CivljZjliIDnm7TlhaUgPCB0YW50b3VjaG9rdW55dXVcIDsKK+WkquW5s+a0i+aIpuS6iSA8IHRhaWhlaXlvdXNlbnNvdVwgOwor5LiJ5paH5bCP6KqsIDwgc2FubW9uc2hvdXNldHN1XCA7CivnrYvogonms6jlsIQgPCBraW4nJ25pa3VjaHV1c2hhXCA7Civlm5vpgJrlhavpgZQgPCBzaGl0c3V1aGF0dGF0c3VcIDsKK+mAo+W4r+S/neiovOS6uiA8IHJlbnRhaWhvc2hvdW5pblwgOwor6LuN5Zu95Li7576p6ICFIDwgZ3Vua29rdXNodWdpc2hhXCA7CivlibLlopfpgYvos4MgPCB3YXJpbWFzaGl1bmNoaW5cIDsKK+WNl+alteims+a4rCA8IG5hbmt5b2t1a2Fuc29rdVwgOwor5LiA55uu556t54S2IDwgaWNoaW1va3VyeW91emVuXCA7CivntKDkurrkuIvlrr8gPCBzaGlyb3V0b2dlc2h1a3VcIDsKK+Wtpuagoee1pumjnyA8IGdha2tvdWt5dXVzaG9rdVwgOwor5Y+N5bid5Zu95Li7576pIDwgaGFudGVpa29rdXNodWdpXCA7CivplpPmjqXmkq7lvbEgPCBrYW5zZXRzdXNhdHN1ZWlcIDsKK+S8muekvuabtOeUn+azlSA8IGthaXNoYWtvdXNlaWhvdVwgOwor5Zu96YG45byB6K235Lq6IDwga29rdXNlbmJlbmdvbmluXCA7Civnmb3lt53lpJzoiLkgPCBzaGlyYWthd2F5b2Z1bmVcIDsKK+iHqueEtuWcsOeQhuWtpiA8IHNoaXplbmNoaXJpZ2FrdVwgOwor5Zyw5Z+f55qE5YiG5biDIDwgY2hpaWtpdGVraWJ1bnB1XCA7CivnhKHmlL/lupzkuLvnvqnogIUgPCBtdXNlaWZ1c2h1Z2lzaGFcIDsKK+WJquaWreWuieWumuaApyA8IHNlbmRhbicnYW50ZWlzZWlcIDsKK+eJueethuWkp+abuCA8IHRva3VoaXRzdXRhaXNob1wgOwor6auY5YiG5a2Q5YyW5a2mIDwga291YnVuc2hpa2FnYWt1XCA7Civmg4XloLHlhazplovms5UgPCBqb3Vob3Vrb3VrYWlob3VcIDsKK+WPjeWwhOacm+mBoOmPoSA8IGhhbnNoYWJvdWVua3lvdVwgOwor6aOf5ZOB5bel5qWtIDwgc2hva3VoaW5rb3VneW91XCA7Civmo5jnmq7li5XniakgPCBreW9rdWhpZG91YnV0c3VcIDsKK+aAquWKm+S5seelniA8IGthaXJ5b2t1cmFuc2hpblwgOwor5Lq655Sf5ZOy5a2mIDwgamluc2VpdGV0c3VnYWt1XCA7CivnibnliKXlp5Tlk6HkvJogPCB0b2t1YmV0c3VpaW5rYWlcIDsKK+WGhemcgOS4u+WwjuWeiyA8IG5haWp1c2h1ZG91Z2F0YVwgOwor5pm05aSp5Lmx5rCX5rWBIDwgc2VpdGVucmFua2lyeXV1XCA7CivmlrDlqZrnlJ/mtLsgPCBzaGlua29uc2Vpa2F0c3VcIDsKK++8ku+8kO+8kO+8kOW5tOWVj+mhjCA8IG5pc2VuJyduZW5tb25kYWlcIDsKK+WFrOmWi+WFpeacrSA8IGtvdWthaW55dXVzYXRzdVwgOwor5Z+65pys55qE5Lq65qipIDwga2lob250ZWtpamlua2VuXCA7CivmoKrlvI/luILloLQgPCBrYWJ1c2hpa2lzaGlqb3VcIDsKK+WtpualreaIkOe4viA8IGdha3VneW91c2Vpc2VraVwgOwor5oim5LqJ54qv572q5Lq6IDwgc2Vuc291aGFuemFpbmluXCA7Civnianos6rlkI3oqZ4gPCBidXNzaGl0c3VtZWlzaGlcIDsKK+WPjeWvvuiyv+aYk+miqCA8IGhhbnRhaWJvdWVraWZ1dVwgOwor55+t57eo5bCP6KqsIDwgdGFucGVuc2hvdXNldHN1XCA7CivpgZPot6/kuqTpgJrms5UgPCBkb3Vyb2tvdXRzdXVob3VcIDsKK+WFseeUo+WbveWutumDoSA8IGt5b3VzYW5rb2trYWd1blwgOwor5ZWG5qWt5pWw5a2mIDwgc2hvdWd5b3VzdXVnYWt1XCA7Civku67oo4Xlt6HmtIvoiaYgPCBrYXNvdWp1bicneW91a2FuXCA7CivmlZnogrLln7rmnKzms5UgPCBreW91aWt1a2lob25ob3VcIDsKK+eUn+eUo+iAheS+oeagvCA8IHNlaXNhbnNoYWtha2FrdVwgOwor5pyA5bCP5LqM5LmX5rOVIDwgc2Fpc2hvdW5pam91aG91XCA7CivohLHlh7rpgJ/luqYgPCBkYXNzaHV0c3Vzb2t1ZG9cIDsKK+eJueWIpee3j+S8miA8IHRva3ViZXRzdXNvdWthaVwgOwor56ys5LiA5qW956ugIDwgZGFpaWNoaWdha3VzaG91XCA7CivkuLvlubnnoJTnqbblk6EgPCBzaHVrYW5rZW5reXV1aW5cIDsKK+WumOWDmuS4u+e+qeiAhSA8IGthbnJ5b3VzaHVnaXNoYVwgOwor5bCP6YG45oyZ5Yy65Yi2IDwgc2hvdXNlbmt5b2t1c2VpXCA7CivntKLmnaHpiYTpgZMgPCBzYWt1am91dGV0c3Vkb3VcIDsKK+i7jeiomOeJqeiqniA8IGd1bmtpbW9ub2dhdGFyaVwgOwor5Y6z5q2j5Lit56uLIDwgZ2Vuc2VpY2h1dXJpdHN1XCA7CivkuIDml6XkuIDlpJwgPCBpY2hpbmljaGlpY2hpeWFcIDsKK+mZsOmZsOa7hea7hSA8IGluJydpbm1ldHN1bWV0c3VcIDsKK+WwseiBt+a1quS6uiA8IHNodXVzaG9rdXJvdW5pblwgOwor6Ieq6Lui6LuK5pON5qWtIDwgaml0ZW5zaGFzb3VneW91XCA7CivntJTmvZTmlZnogrIgPCBqdW5rZXRzdWt5b3Vpa3VcIDsKK+S4lueVjOaWsOiomOmMsiA8IHNla2Fpc2hpbmtpcm9rdVwgOwor5a6X5pWZ5pS56Z2pIDwgc2h1dWt5b3VrYWlrYWt1XCA7CivllYblt6XkvJrorbDmiYAgPCBzaG91a291a2FpZ2lzaG9cIDsKK+W8vuWKvuijgeWIpOaJgCA8IGRhbmdhaXNhaWJhbnNob1wgOwor5pSv6Zui5ruF6KOCIDwgc2hpcmltZXRzdXJldHN1XCA7Civlm73msJHlrr/oiI4gPCBrb2t1bWluc2h1a3VzaGFcIDsKK+S/neitt+mWoueojueOhyA8IGhvZ29rYW56ZWlyaXRzdVwgOwor54us56uL5a6j6KiAIDwgZG9rdXJpdHN1c2VuZ2VuXCA7Civlia/ohY7nmq7os6ogPCBmdWt1amluaGlzaGl0c3VcIDsKK+WbveawkeeUn+a0uyA8IGtva3VtaW5zZWlrYXRzdVwgOwor56mN6LyJ6IO95YqbIDwgc2VraXNhaW5vdXJ5b2t1XCA7Civlj47lrrnog73lipsgPCBzaHV1eW91bm91cnlva3VcIDsKK+iFsOmrmOmanOWtkCA8IGtvc2hpZGFrYXNob3VqaVwgOwor5bm06aCD5pel6aCDIDwgdG9zaGlnb3JvaGlnb3JvXCA7Civpm4bmnK3kv4IgPCBzaHV1c2F0c3VnYWthcmlcIDsKK+a6luemgeayu+eUo+iAhSA8IGp1bmtpbmNoaXNhbnNoYVwgOwor6K2w6Zmi5YaF6Zaj5Yi2IDwgZ2lpbicnbmFpa2FrdXNlaVwgOwor6YCa5L+X5paH5a2mIDwgdHN1dXpva3VidW5nYWt1XCA7Civph5Hmp4zpoK0gPCBrYW5hZHp1Y2hpYXRhbWFcIDsKK+WEquWFiOagquS4uyA8IHl1dXNlbmthYnVudXNoaVwgOwor5YaZ55yf5ris6YePIDwgc2hhc2hpbnNva3VyeW91XCA7CivkvIHmpa3kvZPos6ogPCBraWd5b3V0YWlzaGl0c3VcIDsKK+eUn+a0u+S/neitt+azlSA8IHNlaWthdHN1aG9nb2hvdVwgOwor54yq56qB54yb6YCyIDwgY2hvdG90c3Vtb3VzaGluXCA7CivlhbHnlKPkuLvnvqnogIUgPCBreW91c2Fuc2h1Z2lzaGFcIDsKK+ato+WuieaBr+mmmemFuCA8IHNlaWFuc29rdWtvdXNhblwgOwor5YWs5a6z55eF5oKj6ICFIDwga291Z2FpYnlvdWthbmphXCA7CivkuJbnlYzkv53lgaXmqZ/plqIgPCBzZWthaWhva2Vua2lrYW5cIDsKK+WtpueUn+WJsuW8lSA8IGdha3VzZWl3YXJpYmlraVwgOwor6LKh5pS/5oqV6J6N6LOHIDwgemFpc2VpdG91eXV1c2hpXCA7CivkvqHmoLzlnKflipsgPCBrYWtha3VhdHN1cnlva3VcIDsKK+a4r+a5vuWKtOWDjeiAhSA8IGtvdXdhbnJvdWRvdXNoYVwgOwor5YaF6Zm45oCn5rCX5YCZIDwgbmFpcmlrdXNlaWtpa291XCA7CivkuK3lpK7mqJnmupbmmYIgPCBjaHV1b3VoeW91anVuamlcIDsKK+ihqOePvuW9ouW8jyA8IGh5b3VnZW5rZWlzaGlraVwgOwor5oqV5YWJ54Wn5piO5ZmoIDwgdG91a291c2hvdW1laWtpXCA7Civlh7rpoZjmm7jpoZ4gPCBzaHV0c3VnYW5zaG9ydWlcIDsKK+e3j+WQjOebn+e9t+alrSA8IHNvdWRvdW1laWhpZ3lvdVwgOwor5a6X5pWZ5pWZ6IKyIDwgc2h1dWt5b3VreW91aWt1XCA7CivkvZnoo5Xntr3ntr0gPCB5b3l1dXNoYWt1c2hha3VcIDsKK+efpeeahOiDveWKmyA8IGNoaXRla2lub3VyeW9rdVwgOwor5Y+N6aqo57K+56WeIDwgaGFua290c3VzZWlzaGluXCA7CivmraPnorrniIbmkoMgPCBzZWlrYWt1YmFrdWdla2lcIDsKK+aXpeiLsemAmuiosyA8IG5pY2hpZWl0c3V1eWFrdVwgOwor5pyA6auY6KOB5Yik5omAIDwgc2Fpa291c2FpYmFuc2hvXCA7Civpo5/niannuYrntq0gPCBzaG9rdW1vdHN1c2VuJydpXCA7CivnrpfooZPntJrmlbAgPCBzYW5qdXRzdWt5dXVzdXVcIDsKK+WFpeWKm+ijhee9riA8IG55dXVyeW9rdXNvdWNoaVwgOwor6IG35qWt6KiT57e0IDwgc2hva3VneW91a3VucmVuXCA7CivmjqLlgbXlsI/oqqwgPCB0YW50ZWlzaG91c2V0c3VcIDsKK+eUn+a0u+WPjeW/nCA8IHNlaWthdHN1aGFuJydub3VcIDsKK+WWtuWbo+WcsOS4i+mJhCA8IGVpZGFuY2hpa2F0ZXRzdVwgOwor5p2+5LiL6Zu75ZmoIDwgbWF0c3VzaGl0YWRlbmtpXCA7Civnn6XorZjpmo7ntJogPCBjaGlzaGlraWthaWt5dXVcIDsKK+agquW8j+S8muekviA8IGthYnVzaGlraWdhaXNoYVwgOwor5LiA5pmC6aCQ5omAIDwgaWNoaWppYXp1a2FyaWpvXCA7Civpo73lkozljJblkIjniakgPCBob3V3YWthZ291YnV0c3VcIDsKK+aLoeWkp+ino+mHiCA8IGtha3VkYWlrYWlzaGFrdVwgOwor6YeR5bGe5o6i55+l5qmfIDwga2luem9rdXRhbmNoaWtpXCA7Civmta7li5XlsI/mlbDngrkgPCBmdWRvdXNob3VzdXV0ZW5cIDsKK+WTgeizquS/neiovCA8IGhpbnNoaXRzdWhvc2hvdVwgOwor6KiA6Kqe5b+D55CG5a2mIDwgZ2VuZ29zaGlucmlnYWt1XCA7Civkv6Hku7DlkYrnmb0gPCBzaGlua291a29rdWhha3VcIDsKK+agvOeJqeiHtOefpSA8IGtha3VidXRzdWNoaWNoaVwgOwor5LiA5aer5LqM5aSq6YOOIDwgaWNoaWhpbWVuaXRhcm91XCA7CivnlYzpnaLmtLvmgKfliaQgPCBrYWltZW5rYXNzZWl6YWlcIDsKK+exs+epgOmAmuW4syA8IGJlaWtva3V0c3V1Y2hvdVwgOwor5Lq655Sf5qGI5YaF5qyEIDwgamluc2VpYW4nJ25haXJhblwgOwor5a6f55So5paw5qGIIDwgaml0c3V5b3VzaGluJydhblwgOwor5b+D6Lqr6Zqc5a6zIDwgc2hpbnNoaW5zaG91Z2FpXCA7CivkuIDliIbkuozljYHnp5IgPCBpcHB1bicnbmlqdXVieW91XCA7CivpgJ/miKbljbPmsbogPCBzb2t1c2Vuc29ra2V0c3VcIDsKK+WMluWtpuWQuOedgCA8IGthZ2FrdWt5dXVjaGFrdVwgOwor5Zub5pa55bGx6KmxIDwgeW9tb3lhbWFiYW5hc2hpXCA7CivnmoflrqTlhbjnr4QgPCBrb3VzaGl0c3V0ZW5wYW5cIDsKK+WNl+mYv+WFseWSjOWbvSA8IG5hbicnYWt5b3V3YWtva3VcIDsKK+S6jOWNgeWbm+aZgumWk+WItiA8IG5panV1eW9qaWthbnNlaVwgOwor54m55Yil5Zu95LyaIDwgdG9rdWJldHN1a29ra2FpXCA7CivkuIDlnarmnKznpL4gPCBoaXRvdHN1Ym9ob25zaGFcIDsKK+aXqeWPo+iogOiRiSA8IGhheWFrdWNoaWtvdG9iYVwgOwor5rex5bGx5bm96LC3IDwgc2hpbnphbicneXV1a29rdVwgOwor6YCa5ZWG55Sj5qWtIDwgdHN1dXNob3VzYW5neW91XCA7CivkuLvmiKbpl5jmiKbou4ogPCBzaHVzZW50b3VzZW5zaGFcIDsKK+W7uueviemdouepjSA8IGtlbmNoaWt1bWVuc2VraVwgOwor5q+U6LyD6KiA6Kqe5a2mIDwgaGlrYWt1Z2VuZ29nYWt1XCA7Civnm6TmoLnpjK/nr4AgPCBiYW5rb25zYWt1c2V0c3VcIDsKK+WGheeahOeUn+a0uyA8IG5haXRla2lzZWlrYXRzdVwgOwor5YaF5pS/5LiN5bmy5riJIDwgbmFpc2VpZnVrYW5zaG91XCA7Civnp5jlr4bmvI/mtKkgPCBoaW1pdHN1cm91c2V0c3VcIDsKK+mrmOetieijgeWIpOaJgCA8IGtvdXRvdXNhaWJhbnNob1wgOwor5Ye65pyt5o6bIDwgc2h1c3NhdHN1Z2FrYXJpXCA7Civnjonnn7Pmt7fmt4YgPCBneW9rdXNla2lrb25rb3VcIDsKK+mbm+mRkeWIpeiAhSA8IGhpbmFrYW5iZXRzdXNoYVwgOwor57WC6Lqr5bm06YeRIDwgc2h1dXNoaW4nJ25lbmtpblwgOwor5Lq654mp5a+45o+PIDwgamluYnV0c3VzdW5ieW91XCA7CivllYblk4Hnm67pjLIgPCBzaG91aGlubW9rdXJva3VcIDsKK+Wklumjn+eUo+alrSA8IGdhaXNob2t1c2FuZ3lvdVwgOwor6LOH5rqQ56+A57SEIDwgc2hpZ2Vuc2V0c3V5YWt1XCA7CivnkIPpnaLlub7kvZXlraYgPCBreXV1bWVua2lrYWdha3VcIDsKK+mdmeiEiOazqOWwhCA8IGpvdW15YWt1Y2h1dXNoYVwgOwor5YaS6Zm65bCP6KqsIDwgYm91a2Vuc2hvdXNldHN1XCA7CivnhrHnoazljJbniakgPCBuZXRzdWtvdWthYnV0c3VcIDsKK+mbu+WtkOmhleW+rumPoSA8IGRlbnNoaWtlbmJpa3lvdVwgOwor5Zu95pyJ6YmE6YGTIDwga29rdXl1dXRldHN1ZG91XCA7CivnorrnjoflpInmlbAgPCBrYWt1cml0c3VoZW5zdXVcIDsKK+mWi+eZuuioiOeUuyA8IGthaWhhdHN1a2Vpa2FrdVwgOwor5Yq05YON55Sf55Sj5oCnIDwgcm91ZG91c2Vpc2Fuc2VpXCA7CivmnInlrrPnianos6ogPCB5dXVnYWlidXNzaGl0c3VcIDsKK+aDheeKtumFjOmHjyA8IGpvdWpvdXNoYWt1cnlvdVwgOwor5L6155Wl5oim5LqJIDwgc2hpbnJ5YWt1c2Vuc291XCA7CivlubPooYzlm5vovrrlvaIgPCBoZWlrb3VzaGloZW5rZWlcIDsKK+WGkumgremZs+i/sCA8IGJvdXRvdWNoaW5qdXRzdVwgOwor54S86Lqr6Ieq5q66IDwgc2hvdXNoaW5qaXNhdHN1XCA7CivmhJ/lgrfkuLvnvqnogIUgPCBrYW5zaG91c2h1Z2lzaGFcIDsKK+WtpueUn+iHquayu+S8miA8IGdha3VzZWlqaWNoaWthaVwgOwor5aSn5a6J5ZCJ5pelIDwgdGFpYW5raWNoaW5pY2hpXCA7Civnn6/mraPoppblipsgPCBreW91c2Vpc2hpcnlva3VcIDsKK+W5tOmHkeWPl+e1puiAhSA8IG5lbmtpbmp1a3l1dXNoYVwgOwor56CU56m26ZaL55m6IDwga2Vua3l1dWthaWhhdHN1XCA7CivkuInmjIfptI4gPCBtaXRzdXl1YmlrYW1vbWVcIDsKK+irh+WQiOWFpeacrSA8IGRhbmdvdW55dXVzYXRzdVwgOwor6Z2e5ZCM5pyf6YCa5L+hIDwgaGlkb3VraXRzdXVzaGluXCA7CivkuInljYHlubTmiKbkuokgPCBzYW5qdXVuZW5zZW5zb3VcIDsKK+mWieaJgOaBkOaAlueXhyA8IGhlaWpva3lvdWZ1c2hvdVwgOwor5Y+45rOV56CU5L+u5omAIDwgc2hpaG91a2Vuc2h1dWpvXCA7CivpmbjnlJ/li5XniakgPCByaWt1c2VpZG91YnV0c3VcIDsKK+S9jumHkeWIqeaUv+etliA8IHRlaWtpbnJpc2Vpc2FrdVwgOwor55yL6K235amm6aSK5oiQ5omAIDwga2FuZ29mdXlvdXNlaWpvXCA7CivljZflpKrlubPmtIsgPCBtaW5hbWl0YWloZWl5b3VcIDsKK+m6u+iWrOW4uOeUqOiAhSA8IG1heWFrdWpvdXlvdXNoYVwgOwor5a2m55Sf55Sf5rS7IDwgZ2FrdXNlaXNlaWthdHN1XCA7Civplbfot53pm6LliJfou4ogPCBjaG91a3lvcmlyZXNzaGFcIDsKK+aHsue9sOWnlOWToeS8miA8IGNob3ViYXRzdWlpbmthaVwgOwor77yR77yR77yZ55WqIDwgaHlha3VqdXVreXV1YmFuXCA7CivmnInmqZ/ljJblkIjniakgPCB5dXVraWthZ291YnV0c3VcIDsKK+e1kOWQiOe1hOe5lCA8IGtldHN1Z291c29zaGlraVwgOwor5LiN5b2T5Yq05YON6KGM54K6IDwgZnV0b3Vyb3Vkb3Vrb3VpXCA7Civlvavlv4Ppj6TpqqggPCBjaG91c2hpbnJ1a290c3VcIDsKK+e4geaXpeWVhuS6uiA8IGVuJyduaWNoaXNob3VuaW5cIDsKK+W/g+elnuiAl+W8sSA8IHNoaW5zaGlubW91amFrdVwgOwor55+t5pyf6LK45LuYIDwgdGFua2lrYXNoaXRzdWtlXCA7Civmpb3lpKnkuLvnvqnogIUgPCByYWt1dGVuc2h1Z2lzaGFcIDsKK+W3puS4reaLrOW8pyA8IGhpZGFyaWNodXVrYWtrb1wgOwor54Sh5p2h5Lu26ZmN5LyPIDwgbXVqb3VrZW5rb3VmdWt1XCA7CivpgYvou6LlhY3oqLHoqLwgPCB1bnRlbm1lbmt5b3Nob3VcIDsKK+agvOmXmOaIpumDqOmaiiA8IGtha3V0b3VzZW5idXRhaVwgOwor6buS6Imy5Lq656iuIDwga29rdXNob2t1amluc2h1XCA7CivlhazlvI/nmbrooaggPCBrb3VzaGlraWhhcHB5b3VcIDsKK+WxleekuuWNs+WjsuS8miA8IHRlbmppc29rdWJhaWthaVwgOwor6LuN5LqL5aKD55WM57eaIDwgZ3VuamlreW91a2Fpc2VuXCA7Civou5/pqqjntYTnuZQgPCBuYW5rb3RzdXNvc2hpa2lcIDsKK+iFsOi1pOeHlSA8IGtvc2hpYWthdHN1YmFtZVwgOwor5raI6LK76ICF5Zuj5L2TIDwgc2hvdWhpc2hhZGFudGFpXCA7CivlhajkvZPkuLvnvqnlm70gPCB6ZW50YWlzaHVnaWtva3VcIDsKK+aYn+mWk+eJqeizqiA8IHNlaWthbmJ1c3NoaXRzdVwgOwor5LiN5Y+v5L615p2h57SEIDwgZnVrYXNoaW5qb3V5YWt1XCA7CivnlJ/mtq/lrabnv5IgPCBzaG91Z2FpZ2FrdXNodXVcIDsKK+efpeitmOihqOePviA8IGNoaXNoaWtpaHlvdWdlblwgOwor5rqQ5rCP54mp6KqeIDwgZ2Vuamltb25vZ2F0YXJpXCA7CivkuIPou6LlhavlgJIgPCBzaGljaGl0ZW5iYXR0b3VcIDsKK+W6p+W4reaMh+WumuWIuCA8IHphc2VraXNoaXRlaWtlblwgOwor55m96Imy5Lq656iuIDwgaGFrdXNob2t1amluc2h1XCA7CivlubPlrrbnianoqp4gPCBoZWlrZW1vbm9nYXRhcmlcIDsKK+aLkue1tuWPjeW/nCA8IGt5b3pldHN1aGFuJydub3VcIDsKK+W4sOWbveWtkOWls+aeoCA8IGtpa29rdXNoaWpvd2FrdVwgOwor54m55Yil5b6F6YGHIDwgdG9rdWJldHN1dGFpZ3V1XCA7CivpnZLlpKnnmb3ml6UgPCBzZWl0ZW5oYWt1aml0c3VcIDsKK+Wkqee9sOimv+mdoiA8IHRlbmJhdHN1dGVraW1lblwgOwor6KGA5peP57WQ5amaIDwga2V0c3V6b2t1a2Vra29uXCA7CivnmbroibLnj77lg48gPCBoYXNzaG9rdWdlbnNob3VcIDsKK+WFpeacreS+oeagvCA8IG55dXVzYXRzdWtha2FrdVwgOwor6YCj56uL5YaF6ZajIDwgcmVucml0c3VuYWlrYWt1XCA7CivohbnlvI/lkbzlkLggPCBmdWt1c2hpa2lrb2t5dXVcIDsKK+mBuuiogOijnOi2s+abuCA8IHl1aWdvbmhvc29rdXNob1wgOwor5L2O6ZaL55m65Zu9IDwgdGVpa2FpaGF0c3Vrb2t1XCA7Civou73lppnmtJLohLEgPCBrZWlteW91c2hhZGF0c3VcIDsKK+mLvOe0oumJhOmBkyA8IGtvdXNha3V0ZXRzdWRvdVwgOwor54Kt6Ymx5Yq05YON6ICFIDwgdGFua291cm91ZG91c2hhXCA7Civop6PmnpDlub7kvZXlraYgPCBrYWlzZWtpa2lrYWdha3VcIDsKK+ePvuacieWLouWKmyA8IGdlbicneXV1c2Vpcnlva3VcIDsKK+e1jOa4iOaAp+WQkeS4iiA8IGtlaXphaXNlaWtvdWpvdVwgOwor6YGK5LyR5pa96KitIDwgeXV1a3l1dXNoaXNldHN1XCA7Civot7Pouo3mjK/li5UgPCBjaG91eWFrdXNoaW5kb3VcIDsKK+WcsOS4i+aguOWun+mokyA8IGNoaWtha2FrdWppa2tlblwgOwor5q+U5L6L5Luj6KGo5Yi2IDwgaGlyZWlkYWloeW91c2VpXCA7Civnq4vmhrLlkJvkuLvmlL8gPCByaWtrZW5rdW5zaHVzZWlcIDsKK+mtmumbt+eZuuWwhOeuoSA8IGd5b3JhaWhhc3NoYWthblwgOwor5pCN55uK5YiG5bKQ54K5IDwgc29uJydla2lidW5raXRlblwgOwor56S+5Lya5L+d6Zm65bqBIDwgc2hha2FpaG9rZW5jaG91XCA7CivotoXnhLblhoXplqMgPCBjaG91emVuJyduYWlrYWt1XCA7CivmranooYzogIXlpKnlm70gPCBob2tvdXNoYXRlbmdva3VcIDsKK+Wun+alreWtpuagoSA8IGppdHN1Z3lvdWdha2tvdVwgOwor56eB56uL5aSn5a2mIDwgc2hpcml0c3VkYWlnYWt1XCA7CivmnIDkvY7ooYDlnKcgPCBzYWl0ZWlrZXRzdWF0c3VcIDsKK+WwiuWxnuauuuS6uiA8IHNvbnpva3VzYXRzdWppblwgOwor5Zu95rCR55qG5L+d6Zm6IDwga29rdW1pbmthaWhva2VuXCA7CivoqLrlr5/lrqQgPCBzaGluc2F0c3VzaGl0c3VcIDsKK+S4reeri+WcsOW4ryA8IGNodXVyaXRzdWNoaXRhaVwgOwor5Lih5qW15Zyw5pa5IDwgcnlvdWt5b2t1Y2hpaG91XCA7CivpgKPntprmrrrkurogPCByZW56b2t1c2F0c3VqaW5cIDsKK+WeguebtOWIhualrSA8IHN1aWNob2t1YnVuZ3lvdVwgOwor5rSX5r+v55+z6bm4IDwgc2VudGFrdXNldHN1a2VuXCA7Civpl5jnl4XnlJ/mtLsgPCB0b3VieW91c2Vpa2F0c3VcIDsKK+WQjOaWh+mAmumBlCA8IGRvdWJ1bnRzdXV0YXRzdVwgOwor5YaG6Lui5ruR6ISxIDwgZW50ZW5rYXRzdWRhdHN1XCA7CivljZjntJTlho3nlJ/nlKMgPCB0YW5qdW5zYWlzZWlzYW5cIDsKK+iiq+mBuOaMmeizh+agvCA8IGhpc2Vua3lvc2hpa2FrdVwgOwor55Sf54mp5bel5a2mIDwgc2VpYnV0c3Vrb3VnYWt1XCA7Civln7rmupblpJbos4Pph5EgPCBraWp1bmdhaWNoaW5naW5cIDsKK+S4gOW+i+a4m+WPjSA8IGljaGlyaXRzdWdlbnRhblwgOwor5Lq65ZOh57iu5bCRIDwgamluJydpbnNodWt1c2hvdVwgOwor6K2Y5Yil5YqbIDwgc2hpa2liZXRzdXJ5b2t1XCA7CivnhrHluK/kvY7msJflnKcgPCBuZXR0YWl0ZWlraWF0c3VcIDsKK+eLrOeri+WkieaVsCA8IGRva3VyaXRzdWhlbnN1dVwgOwor5Lq65a6a6LOq5ZWPIDwgamludGVpc2hpdHN1bW9uXCA7CivmlrDntITogZbmm7ggPCBzaGluJyd5YWt1c2Vpc2hvXCA7CivnlJ/mrrrkuI7lpaogPCBzZWlzYXRzdXlvZGF0c3VcIDsKK+engeiHqui6qyA8IHdhdGFrdXNoaWppc2hpblwgOwor5bmz5riF55ubIDwgdGFpcmFub2tpeW9tb3JpXCA7Civmrr/mp5jku5XkuosgPCB0b25vc2FtYXNoaWdvdG9cIDsKK+WPsOaJgOeUqOWTgSA8IGRhaWRva29yb3lvdWhpblwgOwor6LK06YeR5bGe5Y24IDwga2lraW56b2t1b3Jvc2hpXCA7CivkuIrmlrnotIXlha0gPCBrYW1pZ2F0YXplaXJva3VcIDsKK+ihgOaXj+mWouS/giA8IGtldHN1em9rdWthbmtlaVwgOwor5a2Q5a6u5b6M5bGIIDwgc2hpa3l1dWtvdWt1dHN1XCA7CivljZflvoHljJfkvJAgPCBuYW5zZWlob2t1YmF0c3VcIDsKK+ePvuWcqOWujOS6huaZgiA8IGdlbnphaWthbnJ5b3VqaVwgOwor55yf5a6f5LiA6LevIDwgc2hpbmppdHN1aWNoaXJvXCA7CivnibnliKXpgYvos4MgPCB0b2t1YmV0c3V1bmNoaW5cIDsKK+etiei+uuS4ieinkuW9oiA8IHRvdWhlbnNhbmtha2tlaVwgOwor5pel5bi46Iy26aOv5LqLIDwgbmljaGlqb3VzYWhhbmppXCA7CivpgJrluLjmiKblipsgPCB0c3V1am91c2Vucnlva3VcIDsKK+mAo+mOlueKtueQg+iPjCA8IHJlbnNham91a3l1dWtpblwgOwor5Yip5a6z5b6X5aSxIDwgcmlnYWl0b2t1c2hpdHN1XCA7CivmtYXphYzkvY7llLEgPCBzZW5zaGFrdXRlaXNob3VcIDsKK+ijuOWtkOakjeeJqSA8IHJhc2hpc2hva3VidXRzdVwgOwor5YCf55So6Ki85pu4IDwgc2hha3V5b3VzaG91c2hvXCA7CivlhbHmnInntZDlkIggPCBreW91eXV1a2V0c3Vnb3VcIDsKK+WOn+eIhueKoOeJsuiAhSA8IGdlbmJha3VnaXNlaXNoYVwgOwor5Zue5oqY6aCY5Z+fIDwga2Fpc2V0c3VyeW91aWtpXCA7Civogbfmpa3mhI/orZggPCBzaG9rdWd5b3Vpc2hpa2lcIDsKK+WkluWbveaKleizh+WutiA8IGdhaWtva3V0b3VzaGlrYVwgOwor5Y2Y5byP5a2m57SaIDwgdGFuc2hpa2lnYWtreXV1XCA7CivlrabooZPpm5HoqowgPCBnYWt1anV0c3V6YXNzaGlcIDsKK+WFpeWHuuWKmyA8IG55dXVzaHV0c3VyeW9rdVwgOwor57Sb5aSx5bGKIDwgZnVuc2hpdHN1dG9kb2tlXCA7Civpm7vms6LlpKnmloflraYgPCBkZW5wYXRlbm1vbmdha3VcIDsKK+WNkualreippumokyA8IHNvdHN1Z3lvdXNoaWtlblwgOwor5YSq5oCn5b2i6LOqIDwgeXV1c2Vpa2Vpc2hpdHN1XCA7CivmiJDplbfmm7Lnt5ogPCBzZWljaG91a3lva3VzZW5cIDsKK+eZvuWFq+WNgeW6piA8IGh5YWt1aGFjaGlqdXVkb1wgOwor5aSn5ZKM5pKr5a2QIDwgeWFtYXRvbmFkZXNoaWtvXCA7Civlpb3oibLmloflraYgPCBrb3VzaG9rdWJ1bmdha3VcIDsKK+mciumtgua2iOa7hSA8IHJlaWtvbnNob3VtZXRzdVwgOwor54m55Yil6YWN5b2TIDwgdG9rdWJldHN1aGFpdG91XCA7Civmp4vpgKDoqIDoqp7lraYgPCBrb3V6b3VnZW5nb2dha3VcIDsKK+miqOWKm+majue0miA8IGZ1dXJ5b2t1a2Fpa3l1dVwgOwor5Zyw5Z+f5Ya35pqW5oi/IDwgY2hpaWtpcmVpZGFuYm91XCA7CivmtYHkvZPlipvlraYgPCByeXV1dGFpcmlraWdha3VcIDsKK+S6uuW3peWRvOWQuOazlSA8IGppbmtvdWtva3l1dWhvdVwgOwor5Yqj5byx5oSP6K2YIDwgcmV0c3VqYWt1aXNoaWtpXCA7Civlrp/oqLzkuLvnvqnogIUgPCBqaXNzaG91c2h1Z2lzaGFcIDsKK+axguiBt+S/giA8IGt5dXVzaG9rdWdha2FyaVwgOwor5LqM6IKh6IaP6JasIDwgZnV0YW1hdGFrb3V5YWt1XCA7CivmlK/mjIHlipvnkIboq5YgPCBzaGlqaXJ5b2t1cmlyb25cIDsKK+eJqeizquS7o+isnSA8IGJ1c3NoaXRzdXRhaXNoYVwgOwor566h6L2E5a6Y5bqBIDwga2Fua2F0c3VrYW5jaG91XCA7CivlhazplovoqI7oq5bkvJogPCBrb3VrYWl0b3Vyb25rYWlcIDsKK+S/ruato+eUs+WRiiA8IHNodXVzZWlzaGlua29rdVwgOwor5b+D55CG5bCP6KqsIDwgc2hpbnJpc2hvdXNldHN1XCA7CivnnYDpmbjlnLDngrkgPCBjaGFrdXJpa3VjaGl0ZW5cIDsKK+aWh+mDqOenkeWtpuecgSA8IG1vbmJ1a2FnYWt1c2hvdVwgOwor54m56Kix5piO57Sw5pu4IDwgdG9ra3lvbWVpc2Fpc2hvXCA7Civlrp/pqJPlsI/oqqwgPCBqaWtrZW5zaG91c2V0c3VcIDsKK+WOn+WtkOeIhueZuiA8IGdlbnNoaWJha3VoYXRzdVwgOwor56iO5Yi26Kq/5p+75LyaIDwgemVpc2VpY2hvdXNha2FpXCA7CivlhaXlipvmg4XloLEgPCBueXV1cnlva3Vqb3Vob3VcIDsKK+mHj+WtkOWKm+WtpiA8IHJ5b3VzaGlyaWtpZ2FrdVwgOwor5aWq5LiJ5oyv546LIDwgZGF0c3VzYW5zaGluJydvdVwgOwor55m65bGV6YCU5LiK5Zu9IDwgaGF0dGVudG9qb3Vrb2t1XCA7CivlhazlhbHlm7Pmm7jppKggPCBrb3VreW91dG9zaG9rYW5cIDsKK+W5tOacq+iqv+aVtCA8IG5lbm1hdHN1Y2hvdXNlaVwgOwor5a2m6KGT6KuW5paHIDwgZ2FrdWp1dHN1cm9uYnVuXCA7CivnlJ/nianlrabogIUgPCBzZWlidXRzdWdha3VzaGFcIDsKK+WFreeZvuWFreWPtyA8IHJvcHB5YWt1cm9rdWdvdVwgOwor5oCd5byB5ZOy5a2mIDwgc2hpYmVudGV0c3VnYWt1XCA7Civlm73lhoXopo/moLzljJYgPCBrb2t1bmFpa2lrYWt1a2FcIDsKK+WJteeri+iomOW/teaXpSA8IHNvdXJpdHN1a2luZW5iaVwgOwor6YeR6Yqt55m76Yyy5ZmoIDwga2luc2VudG91cm9rdWtpXCA7CivmipfnlJ/nianos6ogPCBrb3VzZWlidXNzaGl0c3VcIDsKK+WKtOWDjee1hOWQiOazlSA8IHJvdWRvdWt1bWlhaWhvdVwgOwor57Sg5b2i5p2Q55Sj5qWtIDwgc29rZWl6YWlzYW5neW91XCA7CivmtLvli5XlhpnnnJ8gPCBrYXRzdWRvdXNoYXNoaW5cIDsKK+S6pOaPm+iyv+aYk+WItiA8IGtvdWthbmJvdWVraXNlaVwgOwor54++5Zyw6aeQ5Zyo5ZOhIDwgZ2VuY2hpY2h1dXphaWluXCA7CivmnIDlsI/oh6rkuZfms5UgPCBzYWlzaG91amlqb3Vob3VcIDsKK+Wwj+Wei+S5l+eUqOi7iiA8IGtvZ2F0YWpvdXlvdXNoYVwgOwor5bGe5oCn5YCk6KGM5YiXIDwgem9rdXNlZ3lvdXJldHN1XCA7Civmtbfou43lhbXlrabmoKEgPCBrYWlndW5oZWlnYWtrb3VcIDsKK+eyvuelnuiWhOW8sSA8IHNlaXNoaW5oYWt1amFrdVwgOwor5by36L+r6Kaz5b+1IDwga3lvdWhha3VrYW4nJ25lblwgOwor6buE6YGT5Y2B5LqM5a6uIDwga291ZG91anV1bmlreXV1XCA7Civoi6bmg4Xlh6bnkIbmqZ/plqIgPCBrdWpvdXNob3Jpa2lrYW5cIDsKK+i7jee4ruWNlOWumiA8IGd1bnNodWt1a3lvdXRlaVwgOwor552A6Zm45Zyw5bivIDwgY2hha3VyaWt1Y2hpdGFpXCA7Civngq3lobXniIbnmbogPCB0YW5qaW5iYWt1aGF0c3VcIDsKK+ijnOWKqeiomOaGtuijhee9riA8IGhvam9raW9rdXNvdWNoaVwgOwor55Sf5rS755Kw5aKDIDwgc2Vpa2F0c3VrYW5reW91XCA7Civlh7rmnaXpq5jku5XkuosgPCBkZWtpZGFrYXNoaWdvdG9cIDsKK+aKgOihk+mdqeaWsCA8IGdpanV0c3VrYWt1c2hpblwgOwor6LOH55Sj6LKg5YK16KGoIDwgc2hpc2FuZnVzYWloeW91XCA7Civnsp/nspLntZDmoLggPCB6b2t1cnl1dWtla2tha3VcIDsKK+eJiOaoqeaJgOacieiAhSA8IGhhbmtlbnNob3l1dXNoYVwgOwor5L+h5b6S5Lyd5YuV6ICFIDwgc2hpbnRvZGVuZG91c2hhXCA7Civku67lj5flj5boqLwgPCBrYXJpdWtldG9yaXNob3VcIDsKK+aWsOiBnumFjemBlCA8IHNoaW5idW5oYWl0YXRzdVwgOwor5Y2S5qWt6KuW5paHIDwgc290c3VneW91cm9uYnVuXCA7CivnmbvpjLLllYbmqJkgPCB0b3Vyb2t1c2hvdWh5b3VcIDsKK+S/oeeUqOmKmOafhCA8IHNoaW4nJ3lvdW1laWdhcmFcIDsKK+aTjea1hOeRoOeSgyA8IGF5YXRzdXJpam91cnVyaVwgOwor5YWx5ZCM55Sf5rS7IDwga3lvdWRvdXNlaWthdHN1XCA7Civlrpjog73kuLvnvqnogIUgPCBrYW4nJ25vdXNodWdpc2hhXCA7CivkvJ3pgZTnibnmgKcgPCBkZW50YXRzdXRva3VzZWlcIDsKK+mHkeWjuuecvCA8IGthbmF0c3Vib21hbmFrb1wgOwor5L+h5Luw55Sf5rS7IDwgc2hpbmtvdXNlaWthdHN1XCA7Civpg7flnJ/lsI/oqqwgPCBreW91ZG9zaG91c2V0c3VcIDsKK+mbhuWbo+eUn+a0uyA8IHNodXVkYW5zZWlrYXRzdVwgOwor6IGW6ZyK6ZmN6Ieo56WtIDwgc2VpcmVpa291cmluc2FpXCA7Civpp5Dml6XlpKfkvb8gPCBjaHV1bmljaGl0YWlzaGlcIDsKK+WztuWbveagueaApyA8IHNoaW1hZ3VuaWtvbmpvdVwgOwor5rWB6KGM5oCn6ISz54KOIDwgcnl1dWtvdXNlaW5vdWVuXCA7CivoqJjlv7Xoq5bmlofpm4YgPCBraW5lbnJvbmJ1bnNodXVcIDsKK+iHquWLlemAo+e1kOapnyA8IGppZG91cmVua2V0c3VraVwgOwor5aSn6Zm45oCn5rCX5YCZIDwgdGFpcmlrdXNlaWtpa291XCA7Civlt6blsI/mi6zlvKcgPCBoaWRhcmlzaG91a2Fra29cIDsKK+aguOWFteWZqOWun+mokyA8IGtha3VoZWlraWppa2tlblwgOwor5rCR5peP5a6X5pWZIDwgbWluem9rdXNodXVreW91XCA7Civml6XkuK3pn5PotoogPCBuaXRjaHV1a2FuJydldHN1XCA7CivoqoflpKflpoTmg7Pni4IgPCBrb2RhaW1vdXNvdWt5b3VcIDsKK+m7kuiJsueBq+iWrCA8IGtva3VzaG9rdWtheWFrdVwgOwor5LiH5pyJ56We5pWZIDwgYmFuJyd5dXVzaGlua3lvdVwgOwor6aCt6ISz5rWB5Ye6IDwgenVub3VyeXV1c2h1dHN1XCA7Civnm7TmjqXoqbHms5UgPCBjaG9rdXNldHN1d2Fob3VcIDsKK+i6q+WIhuiovOaYjuabuCA8IG1pYnVuc2hvdW1laXNob1wgOwor5paH5a2X5aSa6YeN5pS+6YCBIDwgbW9qaXRhanV1aG91c291XCA7CivljLvluKvlm73lrrboqabpqJMgPCBpc2hpa29ra2FzaGlrZW5cIDsKK+aWh+WMluS6uumhnuWtpiA8IGJ1bmthamlucnVpZ2FrdVwgOwor5b2i6LOq6Lui5o+bIDwga2Vpc2hpdHN1dGVua2FuXCA7CivnrKzkuInmrKHnlKPmpa0gPCBkYWlzYW5qaXNhbmd5b3VcIDsKK+ato+ecn+ato+mKmCA8IHNob3VzaGluc2hvdW1laVwgOwor54iG5by+55m66KiAIDwgYmFrdWRhbmhhdHN1Z2VuXCA7CivmlofljJblpKfpnanlkb0gPCBidW5rYWRhaWtha3VtZWlcIDsKK+ebtOeri+S4jeWLlSA8IGNob2t1cml0c3VmdWRvdVwgOwor5ZWG5qWt6YGT5b6zIDwgc2hvdWd5b3Vkb3V0b2t1XCA7CivpmbPliJflrqQgPCBjaGlucmV0c3VzaGl0c3VcIDsKK+eJueioreS8muWgtCA8IHRva3VzZXRzdWthaWpvdVwgOwor6Z2e5bGA5omA5YiG5bKQIDwgaGlreW9rdXNob2J1bmtpXCA7CivmoLjniannkIblraYgPCBrYWt1YnV0c3VyaWdha3VcIDsKK+iCouS9k+S4jeiHqueUseWFkCA8IHNoaXRhaWZ1aml5dXVqaVwgOwor5Luu5ZCN5ryi5a2X5aSJ5o+bIDwga2FuYWthbmppaGVua2FuXCA7Civnm7Tnq4vnjL/kurogPCBjaG9rdXJpdHN1ZW5qaW5cIDsKK+mWouS/guS7o+WQjeipniA8IGthbmtlaWRhaW1laXNoaVwgOwor5aSa5Zu957GN6KiA6KqeIDwgdGFrb2t1c2VraWdlbmdvXCA7CivotoXpgKPntZDlrZAgPCBjaG91cmVua2V0c3VzaGlcIDsKK+awtOmKgOawl+Wcp+ioiCA8IHN1aWdpbmtpYXRzdWtlaVwgOwor55Sy6KuW5LmZ6aeBIDwga291cm9uJydvdHN1YmFrdVwgOwor5YWQ56ul5b+D55CG5a2mIDwgamlkb3VzaGlucmlnYWt1XCA7CivniannmoTos4fmupAgPCBidXRzdXRla2lzaGlnZW5cIDsKK+ebtOaOpeaUr+aPtCA8IGNob2t1c2V0c3VzaGllblwgOwor56m65rSe5YyW54++6LGhIDwga3V1ZG91a2FnZW5zaG91XCA7CivnhKHnkIbmlrnnqIvlvI8gPCBtdXJpaG91dGVpc2hpa2lcIDsKK+aWsOWItuS4reWtpiA8IHNoaW5zZWljaHV1Z2FrdVwgOwor5Zyn5Yqb5Zuj5L2TIDwgYXRzdXJ5b2t1ZGFudGFpXCA7CivmuKnooYDli5XniakgPCBvbmtldHN1ZG91YnV0c3VcIDsKK+S6pOW3ruWvvuensOaApyA8IGtvdXNhdGFpc2hvdXNlaVwgOwor5Lit56uL5Yq06YCjIDwgY2h1dXJpdHN1cm91cmVuXCA7CivnibnliKXlrqQgPCB0b2t1YmV0c3VzaGl0c3VcIDsKK+eglOeptua0u+WLlSA8IGtlbmt5dXVrYXRzdWRvdVwgOwor6Ieq54S25ZOy5a2mIDwgc2hpemVudGV0c3VnYWt1XCA7CivmoKrkuLvnt4/kvJogPCBrYWJ1bnVzaGlzb3VrYWlcIDsKK+aAp+agvOWIpOWIpSA8IHNlaWtha3VoYW5iZXRzdVwgOwor5Zan5Zip5Lih5oiQ5pWXIDwga2Vua2FyeW91c2VpYmFpXCA7CivpgY7lpLHlgrflrrMgPCBrYXNoaXRzdXNob3VnYWlcIDsKK+mAmuS/oeW3peWtpiA8IHRzdXVzaGlua291Z2FrdVwgOwor5ZCM5LiA5Lq654mpIDwgZG91aXRzdWppbmJ1dHN1XCA7Civlm73lrrblhazli5nlk6Hms5UgPCBrb2trYWtvdW11aW5ob3VcIDsKK+WVhuWtpuWNmuWjqyA8IHNob3VnYWt1aGFrdXNoaVwgOwor5b+D6aCt5ruF5Y20IDwgc2hpbnRvdW1la2t5YWt1XCA7CivlvLfooYzmjqHmsbogPCBreW91a291c2Fpa2V0c3VcIDsKK+imluiBtOimmuapn+WZqCA8IHNoaWNob3VrYWt1a2lraVwgOwor5bCx5Lu75ryU6KqsIDwgc2h1dW5pbicnZW56ZXRzdVwgOwor5p+T6Imy5L2T55Ww5bi4IDwgc2Vuc2hva3V0YWlpam91XCA7CivlkI3oq5bljZPoqqwgPCBtZWlyb250YWt1c2V0c3VcIDsKK+azqOWFpeaVmeiCsiA8IGNodXVueXV1a3lvdWlrdVwgOwor5ZCR57K+56We6JasIDwga291c2Vpc2hpbicneWFrdVwgOwor57WQ5ama6YGp6b2i5pyfIDwga2Vra29udGVraXJlaWtpXCA7CivmvLjov5HnmoToh6rnlLEgPCB6ZW5raW50ZWtpaml5dXVcIDsKK+WIhuWIl+ihjOmAsiA8IGJ1bnJldHN1a291c2hpblwgOwor6aOf5paZ5ZOB5bqXIDwgc2hva3VyeW91aGludGVuXCA7CivmhI/lv5fmsbrlrprmqZ/plqIgPCBpc2hpa2V0dGVpa2lrYW5cIDsKK+S4u+i+nue0oOaAp+WOn+eQhiA8IHNodWppc29zZWlnZW5yaVwgOwor5r2u5rGQ5pGp5pOmIDwgY2hvdXNla2ltYXNhdHN1XCA7Civnr4DotrPli5XniakgPCBzZXNzb2t1ZG91YnV0c3VcIDsKK+mjn+eJqemAo+mOliA8IHNob2t1bW90c3VyZW5zYVwgOwor5Lit6IKJ5Lit6IOMIDwgY2h1dW5pa3VjaHV1emVpXCA7CivnpL7kvJrmsJHkuLvlhZogPCBzaGFrYWltaW5zaHV0b3VcIDsKK+mbhuS4reaUu+aSgyA8IHNodXVjaHV1a291Z2VraVwgOwor56K65a6a5Yik5rG6IDwga2FrdXRlaWhhbmtldHN1XCA7CivlsJHlpbPlsI/oqqwgPCBzaG91am9zaG91c2V0c3VcIDsKK+engeioreW/nOaPtOWboyA8IHNoaXNldHN1b3VlbmRhblwgOwor5Y2a5a2m5Yqb6KGMIDwgaGFrdWdha3VyeW9ra291XCA7CivntYzmuIjlkIzlj4vkvJogPCBrZWl6YWlkb3V5dXVrYWlcIDsKK+WPjeiovOWPr+iDveaApyA8IGhhbnNob3VrYW5vdXNlaVwgOwor5YKN57O76KGA5pePIDwgYm91a2Vpa2V0c3V6b2t1XCA7CivkuK3plpPlhoXplqMgPCBjaHV1a2FuJyduYWlrYWt1XCA7CivljZjni6zkvpvntaYgPCB0YW5kb2t1a3lvdWt5dXVcIDsKK+aQrOmAgeWRqOazouaVsCA8IGhhbnNvdXNodXVoYXN1dVwgOwor5aSx5qWt5L+d6Zm6IDwgc2hpdHN1Z3lvdWhva2VuXCA7CivnibnliKXkvJroqIggPCB0b2t1YmV0c3VrYWlrZWlcIDsKK+aMr+W5heWkieiqvyA8IHNoaW5wdWt1aGVuY2hvdVwgOwor5bqD5ZGK5Y+O5YWlIDwga291a29rdXNodXVueXV1XCA7CivkuK3lm73lpKfpmbggPCBjaHV1Z29rdXRhaXJpa3VcIDsKK+acgOmrmOaMh+WwjuiAhSA8IHNhaWtvdXNoaWRvdXNoYVwgOwor5pS+5Ye654mp6LOHIDwgaG91c2h1dHN1YnVzc2hpXCA7CivphY3pgZToqLzmmI4gPCBoYWl0YXRzdXNob3VtZWlcIDsKK+acgOe1guebrueahCA8IHNhaXNodXVtb2t1dGVraVwgOwor6JGh6JCE54q255CD6I+MIDwgYnVkb3Vqb3VreXV1a2luXCA7Civlhajnv7zpo5vooYzmqZ8gPCB6ZW4nJ3lva3VoaWtvdWtpXCA7CivkuIDok67miZjnlJ8gPCBpY2hpcmVudGFrdXNob3VcIDsKK+mAn+WKueaAp+iCpeaWmSA8IHNva2tvdXNlaWhpcnlvdVwgOwor5LiJ6KeS5ris6YePIDwgc2Fua2FrdXNva3VyeW91XCA7Civli5XnianlrabogIUgPCBkb3VidXRzdWdha3VzaGFcIDsKK+WMluWtpueJqeizqiA8IGthZ2FrdWJ1c3NoaXRzdVwgOwor6YGF5Yq55oCn6IKl5paZIDwgY2hpa291c2VpaGlyeW91XCA7Civlm73nsovkuLvnvqnogIUgPCBrb2t1c3Vpc2h1Z2lzaGFcIDsKK+eGseWOn+WtkOaguCA8IG5ldHN1Z2Vuc2hpa2FrdVwgOwor5Zyw6LOq6Kq/5p+7IDwgY2hpc2hpdHN1Y2hvdXNhXCA7Civmlq3lvL7mgKfkv4LmlbAgPCBkYW5kYW5zZWlrZWlzdXVcIDsKK+atr+WIl+efr+atoyA8IHNoaXJldHN1a3lvdXNlaVwgOwor5Zub5Y2B5LiD5aOrIDwgc2hpanV1c2hpY2hpc2hpXCA7CivkuozmrKHmlrnnqIvlvI8gPCBuaWppaG91dGVpc2hpa2lcIDsKK+WNgeaciOmdqeWRvSA8IGp1dWdhdHN1a2FrdW1laVwgOwor5b+c55So5b+D55CG5a2mIDwgb3V5b3VzaGlucmlnYWt1XCA7Civmlofos6rlvazlvawgPCBidW5zaGl0c3VoaW5waW5cIDsKK+eyvuelnueVsOW4uOiAhSA8IHNlaXNoaW4nJ2lqb3VzaGFcIDsKK+e0q+awtOaZtiA8IG11cmFzYWtpenVpc2hvdVwgOwor5L+h6KiX5aWR57SEIDwgc2hpbnRha3VrZWl5YWt1XCA7Civlh7rnlJ/lubTmnIjml6UgPCBzaHVzc2VpbmVuZ2FwcGlcIDsKK+eLrOeri+aIpuS6iSA8IGRva3VyaXRzdXNlbnNvdVwgOwor54Gr5Yqb55m66Zu7IDwga2FyeW9rdWhhdHN1ZGVuXCA7CivpgJ/pgZTpg7Xkvr8gPCBzb2t1dGF0c3V5dXViaW5cIDsKK+W8geitt+Wjq+S6i+WLmeaJgCA8IGJlbmdvc2hpamltdXNob1wgOwor5Zub55m+5Zub55eFIDwgc2hpaHlha3VzaGlieW91XCA7Civli5XoqZ7nirblkI3oqZ4gPCBkb3VzaGlqb3VtZWlzaGlcIDsKK+WFg+W4s+aui+mrmCA8IG1vdG9jaG91emFuZGFrYVwgOwor6Ieq55Sx6KOB6YeP5qipIDwgaml5dXVzYWlyeW91a2VuXCA7CivkuK3lpK7pm4bmqKnljJYgPCBjaHV1b3VzaHV1a2Vua2FcIDsKK+eEoeWIqeaBr+iovOWIuCA8IG11cmlzb2t1c2hvdWtlblwgOwor5oq96LGh576O6KGTIDwgY2h1dXNob3ViaWp1dHN1XCA7Civnianos6rmlofmmI4gPCBidXNzaGl0c3VidW5tZWlcIDsKK+i2heeJqeeQhuWtpiA8IGNob3VidXRzdXJpZ2FrdVwgOwor5LuB576p56S85pm65L+hIDwgamluZ2lyZWljaGlzaGluXCA7Civmm7TlubTmnJ/pmpzlrrMgPCBrb3VuZW5raXNob3VnYWlcIDsKK+WbveiqnuWvqeitsOS8miA8IGtva3Vnb3NoaW5naWthaVwgOwor5Zyw5pa56KOB5Yik5omAIDwgY2hpaG91c2FpYmFuc2hvXCA7Civpo5/ns6fkuI3otrMgPCBzaG9rdXJ5b3VidXNva3VcIDsKK+WFrOWFseaWveiorSA8IGtvdWt5b3VzaGlzZXRzdVwgOwor6Ieq5YuV5pS55pyt5qmfIDwgamlkb3VrYWlzYXRzdWtpXCA7CivljZfmpbXmnaHntIQgPCBuYW5reW9rdWpvdXlha3VcIDsKK+acquWwseWtpuWFkOerpSA8IG1pc2h1dWdha3VqaWRvdVwgOwor5YW15Yqb5YmK5ribIDwgaGVpcnlva3VzYWt1Z2VuXCA7Civlj5bnt6DlvbkgPCB0b3Jpc2hpbWFyaXlha3VcIDsKK+WFrOiBt+i/veaUviA8IGtvdXNob2t1dHN1aWhvdVwgOwor5a2m6KGT5Zuj5L2TIDwgZ2FrdWp1dHN1ZGFudGFpXCA7Civlrp/mmYLplpPlh6bnkIYgPCBqaXRzdWppa2Fuc2hvcmlcIDsKK+WFseeUn+eUn+eJqSA8IGt5b3VzZWlzZWlidXRzdVwgOwor6KKr5a2Q5qSN54mpIDwgaGlzaGlzaG9rdWJ1dHN1XCA7CivmnInnlZzovrLmpa0gPCB5dXVjaGlrdW5vdWd5b3VcIDsKK+WvhOeUn+akjeeJqSA8IGtpc2Vpc2hva3VidXRzdVwgOwor6aCQ6YeR5rqW5YKZ546HIDwgeW9raW5qdW5iaXJpdHN1XCA7CivlpKnkvZPmnJvpgaDpj6EgPCB0ZW50YWlib3Vlbmt5b3VcIDsKK+ekvuS8muiruOenkeWtpiA8IHNoYWthaXNob2thZ2FrdVwgOwor5q2m5L6g5bCP6KqsIDwgYnVreW91c2hvdXNldHN1XCA7CivmnKjos6rnuYrntq0gPCBtb2t1c2hpdHN1c2VuJydpXCA7Civnm7TpgJrliJfou4ogPCBjaG9rdXRzdXVyZXNzaGFcIDsKK+i7oue9ruihjOWIlyA8IHRlbmNoaWd5b3VyZXRzdVwgOwor5rOV5b6L5LqL5YuZ5omAIDwgaG91cml0c3VqaW11c2hvXCA7Civlh7rli5Xlkb3ku6QgPCBzaHV0c3Vkb3VtZWlyZWlcIDsKK+iIjOWFiOS4ieWvuCA8IHNoaXRhc2FraXNhbnp1blwgOwor5aSn6KGG6aOf5aCCIDwgdGFpc2h1dXNob2t1ZG91XCA7Civlrp/liKnkuLvnvqnogIUgPCBqaXRzdXJpc2h1Z2lzaGFcIDsKK+WGhemWo+mWo+WDmiA8IG5haWtha3VrYWt1cnlvdVwgOwor5pyq56K66KqN5oOF5aCxIDwgbWlrYWt1bmluam91aG91XCA7CivogIHkurrmgKfnl7TlkYYgPCByb3VqaW5zZWljaGlob3VcIDsKK+WcqOWklueglOeptuWToSA8IHphaWdhaWtlbmt5dXVpblwgOwor5Lq65Y+j54iG55m6IDwgamlua291YmFrdWhhdHN1XCA7CivlrqLoprPkuLvnvqnogIUgPCBreWFra2Fuc2h1Z2lzaGFcIDsKK+eJh+WPo+mwryA8IGthdGFrdWNoaWl3YXNoaVwgOwor5Zyn57iu5Yq5546HIDwgYXNzaHVrdWtvdXJpdHN1XCA7Civlm73nq4vpioDooYwgPCBrb2t1cml0c3VnaW5rb3VcIDsKK+S4gOeXheaBr+eBvSA8IGljaGlieW91c29rdXNhaVwgOwor6YG45omL5qip5aSn5LyaIDwgc2Vuc2h1a2VudGFpa2FpXCA7CivmraPph5Hlj5blvJUgPCBzaG91a2ludG9yaWhpa2lcIDsKK+a1gemAmumdqeWRvSA8IHJ5dXV0c3V1a2FrdW1laVwgOwor6Iq46KGT5L2c5ZOBIDwgZ2VpanV0c3VzYWt1aGluXCA7CivkuIvntJroo4HliKTmiYAgPCBrYWt5dXVzYWliYW5zaG9cIDsKK+mAk+mZjeWkieWcp+WZqCA8IHRlaWtvdWhlbmF0c3VraVwgOwor6ZmQ55WM6aGV5b6u6Y+hIDwgZ2Vua2Fpa2VuYmlreW91XCA7CivmlrDoiIjlrpfmlZkgPCBzaGlua291c2h1dWt5b3VcIDsKK+efpeitmOW3peWtpiA8IGNoaXNoaWtpa291Z2FrdVwgOwor5L2T6LOq5pS55ZaEIDwgdGFpc2hpdHN1a2FpemVuXCA7CivniYflgbTpgJrooYwgPCBrYXRhZ2F3YXRzdXVrb3VcIDsKK+WNl+alteWkp+mZuCA8IG5hbmt5b2t1dGFpcmlrdVwgOwor6Im256yR5bCP6KmxIDwgZW5zaG91a29iYW5hc2hpXCA7CivopoHmkoPmiKbpl5jmqZ8gPCB5b3VnZWtpc2VudG91a2lcIDsKK+WVhualree+juihkyA8IHNob3VneW91YmlqdXRzdVwgOwor56We6Imy6Ieq6IulIDwgc2hpbnNob2t1amlqYWt1XCA7CivmsLTpmpvkvZzmiKYgPCBtaXp1Z2l3YXNha3VzZW5cIDsKK+S4jeWFrOW5s+ertuS6iSA8IGZ1a291aGVpa3lvdXNvdVwgOwor54mp55qE6Ki85ougIDwgYnV0c3V0ZWtpc2hvdWtvXCA7Civlhazoqo3kvJroqIjlo6sgPCBrb3VuaW5rYWlrZWlzaGlcIDsKK+aTjealreefree4riA8IHNvdWd5b3V0YW5zaHVrdVwgOwor5LiN5YCS57+BIDwgb2tpYWdhcmlrb2Jvc2hpXCA7CivlhoXogqHoho/olqwgPCB1Y2hpbWF0YWdvdXlha3VcIDsKK+eKr+ihjOWjsOaYjuaWhyA8IGhhbmtvdXNlaW1laWJ1blwgOwor5raI6LK76ICF5L6h5qC8IDwgc2hvdWhpc2hha2FrYWt1XCA7Civpn7Pmpb3oqZXoq5blrrYgPCBvbmdha3VoeW91cm9ua2FcIDsKK+iJsuW9qeaEn+immiA8IHNoaWtpc2Fpa2Fua2FrdVwgOwor5YWs5a6J6Kq/5p+75bqBIDwga291YW5jaG91c2FjaG91XCA7CivkuZfpmY3ou4rlhKrlhYggPCBqb3Vrb3VzaGF5dXVzZW5cIDsKK+S6uuW3peeUmOWRs+aWmSA8IGppbmtvdWthbm1pcnlvdVwgOwor5Zyo6YO36LuN5Lq65LyaIDwgemFpZ291Z3Vuamlua2FpXCA7Civoh6roqJjmub/luqboqIggPCBqaWtpc2hpdHN1ZG9rZWlcIDsKK+Wkp+e1seS4gOeQhuirliA8IGRhaXRvdWl0c3VyaXJvblwgOwor6LaF6IO95Yqb6ICFIDwgY2hvdW5vdXJ5b2t1c2hhXCA7CivmpJzlrprmlZnnp5Hmm7ggPCBrZW50ZWlreW91a2FzaG9cIDsKK+WMu+WtpuaKgOihk+WjqyA8IGlnYWt1Z2lqdXRzdXNoaVwgOwor5aSp55qH6KqV55Sf5pelIDwgdGVuJydub3V0YW5qb3ViaVwgOwor5aSq5bmz5rSL5Zyw5Z+fIDwgdGFpaGVpeW91Y2hpaWtpXCA7CivmnKjpo5/kuIrkurogPCBtb2t1amlraXNob3VuaW5cIDsKK+iHqueUseS4u+e+qeWbveWutiA8IGppeXV1c2h1Z2lrb2trYVwgOwor6YCj6LyJ5bCP6KqsIDwgcmVuc2Fpc2hvdXNldHN1XCA7Civos4fnlKPlho3oqZXkvqEgPCBzaGlzYW5zYWloeW91a2FcIDsKK+aDhee3kumanOWus+WFkCA8IGpvdWNob3Nob3VnYWlqaVwgOwor5pel5pys5Zu95oay5rOVIDwgbmlob25rb2t1a2VucG91XCA7CivkurrmsJHop6PmlL7ou40gPCBqaW5taW5rYWlob3VndW5cIDsKK+eEpueGseWcsOeNhCA8IHNob3VuZXRzdWppZ29rdVwgOwor6aqo57KX6ayG55eHIDwga290c3Vzb3Nob3VzaG91XCA7CivmtYHpgJroqLzliLggPCByeXV1dHN1dXNob3VrZW5cIDsKK+W3ruW8leWLmOWumiA8IHNhc2hpaGlraWthbmpvdVwgOwor6ZaL6IW55omL6KGTIDwga2FpZnVrdXNodWp1dHN1XCA7CivljbPml6Xlh7rojbcgPCBzb2t1aml0c3VzaHVra2FcIDsKK+e1tuWvvuWQm+S4u+WItiA8IHpldHRhaWt1bnNodXNlaVwgOwor5qCq5byP6YWN5b2TIDwga2FidXNoaWtpaGFpdG91XCA7Civom43lhYnnianos6ogPCBrZWlrb3VidXNzaGl0c3VcIDsKK+iBtOimmuelnue1jCA8IGNob3VrYWt1c2hpbmtlaVwgOwor5oey5oiS5YWN6IG3IDwgY2hvdWthaW1lbnNob2t1XCA7CivoirjooZPmhJvlpb3lrrYgPCBnZWlqdXRzdWFpa291a2FcIDsKK+eiuuWumueUs+WRiiA8IGtha3V0ZWlzaGlua29rdVwgOwor6IG35qWt6LuN5Lq6IDwgc2hva3VneW91Z3VuamluXCA7Civnp4HnlJ/lhZDlh7rnlKMgPCBzaGlzZWlqaXNodXNzYW5cIDsKK+eUn+WRvee2reaMgeijhee9riA8IHNlaW1laWlqaXNvdWNoaVwgOwor5qCq5byP5YWs6ZaLIDwga2FidXNoaWtpa291a2FpXCA7Civlu4Pku4/mr4Dph4ggPCBoYWlidXRzdWtpc2hha3VcIDsKK+S4oemZouWNlOitsOS8miA8IHJ5b3Vpbmt5b3VnaWthaVwgOwor5bCP55Sw5Y6f5o+Q54GvIDwgb2Rhd2FyYWRqb3VjaGluXCA7CivnnLzlupXlh7rooYAgPCBnYW50ZWlzaHVra2V0c3VcIDsKK+S/oeS7u+aKleelqCA8IHNoaW4nJ25pbnRvdWh5b3VcIDsKK+mWoumAo+izquWVjyA8IGthbnJlbnNoaXRzdW1vblwgOwor5bu656+J5qWt6ICFIDwga2VuY2hpa3VneW91c2hhXCA7Civlk7Llrablj7LopoEgPCB0ZXRzdWdha3VzaGl5b3VcIDsKK+efpeitmOeUo+alrSA8IGNoaXNoaWtpc2FuZ3lvdVwgOwor6LKo54mp6Ieq5YuV6LuKIDwga2Ftb3RzdWppZG91c2hhXCA7CivniYfmiYvplpPku5XkuosgPCBrYXRhdGVtYXNoaWdvdG9cIDsKK+elnue1jOWbnui3r+e2siA8IHNoaW5rZWlrYWlyb21vdVwgOwor5rWa5rir5L2c5qWtIDwgc2h1bnNldHN1c2FneW91XCA7Civljbjlo7LluILloLQgPCBvcm9zaGl1cmlzaGlqb3VcIDsKK+mAmuS/oeaVmeiCsiA8IHRzdXVzaGlua3lvdWlrdVwgOwor5YyX5paX5LiD5pifIDwgaG9rdXRvc2hpY2hpc2VpXCA7CivmraPlvI/nmbrooaggPCBzZWlzaGlraWhhcHB5b3VcIDsKK+eCree0oOWMluWQiOeJqSA8IHRhbnNva2Fnb3VidXRzdVwgOwor5pq05Yqb6Z2p5ZG9IDwgYm91cnlva3VrYWt1bWVpXCA7CivmsJfnrqHmlK/llpjmga8gPCBraWthbnNoaXplbnNva3VcIDsKK+WFseeUo+S4reWbvSA8IGt5b3VzYW5jaHV1Z29rdVwgOwor5qOu5p6X6YmE6YGTIDwgc2hpbnJpbnRldHN1ZG91XCA7CivntYzmuIjljZTlipsgPCBrZWl6YWlreW91cnlva3VcIDsKK+eJqeeahOaQjeWusyA8IGJ1dHN1dGVraXNvbmdhaVwgOwor5LiN6IKW56eBIDwgZnVzaG91d2F0YWt1c2hpXCA7CivnqbrkuK3niIbmkoMgPCBrdXVjaHV1YmFrdWdla2lcIDsKK+S4jeWLleeUo+alreiAhSA8IGZ1ZG91c2FuZ3lvdXNoYVwgOwor5rW35rSL5rCX6LGh5Y+wIDwga2FpeW91a2lzaG91ZGFpXCA7CivlpLHmpa3njocgPCBzaGl0c3VneW91cml0c3VcIDsKK+W5tOS4reWkseiogCA8IG5lbmp1dXNoaXRzdWdlblwgOwor5oq95Ye654mpIDwgY2h1dXNodXRzdWJ1dHN1XCA7CivmraPmlrnooYzliJcgPCBzZWlob3VneW91cmV0c3VcIDsKK+iHquWLlee/u+ios+apnyA8IGppZG91aG9uJyd5YWt1a2lcIDsKK+iAgeiLpeeUt+WlsyA8IHJvdW55YWt1bmFuJydueW9cIDsKK+e4hOaWh+W8j+Wcn+WZqCA8IGpvdW1vbnNoaWtpZG9raVwgOwor5L+u5LqG6Ki85pu4IDwgc2h1dXJ5b3VzaG91c2hvXCA7CivkuIvnrYnmpI3niakgPCBrYXRvdXNob2t1YnV0c3VcIDsKK+i8uOWFpeiqsuW+tOmHkSA8IHl1bnl1dWthY2hvdWtpblwgOwor6aGV6Iqx5qSN54mpIDwga2Vua2FzaG9rdWJ1dHN1XCA7Civph43llYbkuLvnvqnogIUgPCBqdXVzaG91c2h1Z2lzaGFcIDsKK+WcsOWFg+itpuWvnyA8IGppbW90b2tlaXNhdHN1XCA7CivkuK3lm73lnLDmlrkgPCBjaHV1Z29rdWNoaWhvdVwgOwor5aWz5Y+L6YGUIDwgb24nJ25hdG9tb2RhY2hpXCA7CivkuInmoKHntYLkuoYgPCBzYW5rb3VzaHV1cnlvdVwgOwor5Lq65bel6KGA5rayIDwgamlua291a2V0c3Vla2lcIDsKK+acieaAp+eUn+auliA8IHl1dXNlaXNlaXNob2t1XCA7CivpjKzph5HooZPluKsgPCByZW5raW5qdXRzdXNoaVwgOwor6YG655Sj55u457aa56iOIDwgaXNhbnNvdXpva3V6ZWlcIDsKK+WvvuaXpeaEn+aDhSA8IHRhaW5pY2hpa2Fuam91XCA7Civmr5jlu6zpga7pgqPku48gPCBiaXJ1c2hhbmFidXRzdVwgOwor54yl6KS75paH5pu4IDwgd2Fpc2V0c3VidW5zaG9cIDsKK+eZvuaXpeWSsyA8IGh5YWt1bmljaGl6ZWtpXCA7Civku67oo4XooYzliJcgPCBrYXNvdWd5b3VyZXRzdVwgOwor5q2j5bym5puy57eaIDwgc2VpZ2Vua3lva3VzZW5cIDsKK+ayoeWAi+aAp+eahCA8IGJvdHN1a29zZWl0ZWtpXCA7Civni6znq4vpgYvli5UgPCBkb2t1cml0c3V1bmRvdVwgOwor6Zai56iO6Ieq5Li75qipIDwga2FuemVpamlzaHVrZW5cIDsKK+iEseiEgueyieS5syA8IGRhc3NoaWZ1bicnbnl1dVwgOwor5Z+65pys5ZGo5rOi5pWwIDwga2lob25zaHV1aGFzdXVcIDsKK+WOn+WtkOWKm+iIuSA8IGdlbnNoaXJ5b2t1c2VuXCA7Civlm5vovKrpp4bli5Xou4ogPCB5b25yaW5rdWRvdXNoYVwgOwor5LiJ55CD5LiJ5oyvIDwgc2Fua3l1dXNhbnNoaW5cIDsKK+mdoueZveWNiuWIhiA8IG9tb3NoaXJvaGFuYnVuXCA7CivllYboiLnlpKflraYgPCBzaG91c2VuZGFpZ2FrdVwgOwor5aSp5Zyw5LiH54mpIDwgdGVuY2hpYmFuYnV0c3VcIDsKK+ihjOWIl+W8jyA8IGd5b3VyZXRzdXNoaWtpXCA7CivogJDnhrHlkIjph5EgPCB0YWluZXRzdWdvdWtpblwgOwor6Z2Z6Zu75rCX6Ziy5q2iIDwgc2VpZGVua2lib3VzaGlcIDsKK+aUv+eVpee1kOWpmiA8IHNlaXJ5YWt1a2Vra29uXCA7Civnibnpq5jorablr58gPCB0b2trb3VrZWlzYXRzdVwgOwor54WZ56qB5o6D6Zmk5aSrIDwgZW50b3RzdXNvdWppZnVcIDsKK+WVhuaFo+e/kuazlSA8IHNob3VrYW5zaHV1aG91XCA7CivmmIbomavmjqHpm4YgPCBrb25jaHV1c2Fpc2h1dVwgOwor5Lit5Zu95ouz5rOVIDwgY2h1dWdva3VrZW5wb3VcIDsKK+e+juihk+ebo+edoyA8IGJpanV0c3VrYW50b2t1XCA7Civlj5bmibHkurogPCB0b3JpYXRzdWthaW5pblwgOwor5Ymv5aSn57Wx6aCYIDwgZnVrdWRhaXRvdXJ5b3VcIDsKK+S8keaIpuiomOW/teaXpSA8IGt5dXVzZW5raW5lbmJpXCA7CivnhKbmgKfnoavphbggPCBzaG91c2Vpcnl1dXNhblwgOwor5a2m5qCh576k5Yi25bqmIDwgZ2Fra291Z3Vuc2VpZG9cIDsKK+WRqOaXi+alreiAhSA8IHNodXVzZW5neW91c2hhXCA7CivljZflm57luLDnt5ogPCBtaW5hbWlrYWlraXNlblwgOwor5pS+5bCE57ea5oqA5birIDwgaG91c2hhc2VuZ2lzaGlcIDsKK+iDjueUn+WLleeJqSA8IHRhaXNlaWRvdWJ1dHN1XCA7Civlhajlm73kuK3ntpkgPCB6ZW5rb2t1Y2h1dWtlaVwgOwor54mb5q2p5oim6KGTIDwgZ3l1dWhvc2VuanV0c3VcIDsKK+eqgeaSg+maiuWToSA8IHRvdHN1Z2VraXRhaWluXCA7CivntITnmb7kuIflhoYgPCB5YWt1aHlha3VtYW5lblwgOwor5Lq65rW35oim6KGTIDwgamlua2Fpc2VuanV0c3VcIDsKK+WHuuWFpeWbvSA8IHNodXRzdW55dXVrb2t1XCA7Civlrrbluq3oo4HliKTmiYAgPCBrYXRlaXNhaWJhbnNob1wgOwor5aSp5paH5a2m55qEIDwgdGVubW9uZ2FrdXRla2lcIDsKK+aAneahiOaKlemmliA8IHNoaWFuJyduYWdla3ViaVwgOwor6ZW36Led6Zui5omT6ICFIDwgY2hvdWt5b3JpZGFzaGFcIDsKK+ijj+WPo+WWtualrSA8IHVyYWd1Y2hpZWlneW91XCA7CivkvJ3lpYflsI/oqqwgPCBkZW5raXNob3VzZXRzdVwgOwor5Lit56uL5Li7576pIDwgY2h1dXJpdHN1c2h1Z2lcIDsKK+aJjeanjOmgrSA8IHNhaWR6dWNoaWF0YW1hXCA7CivnoJTnqbbos4fmlpkgPCBrZW5reXV1c2hpcnlvdVwgOwor5Y+k55Sf54mp5a2mIDwga29zZWlidXRzdWdha3VcIDsKK+abtOeUn+aWveiorSA8IGtvdXNlaXNoaXNldHN1XCA7CivniYfpgZPliIfnrKYgPCBrYXRhbWljaGlraXBwdVwgOwor5pel5pys5qiZ5rqW5pmCIDwgbmlob25oeW91anVuamlcIDsKK+aOpee2muWKqeipniA8IHNldHN1em9rdWpvc2hpXCA7CivoqpjlsI7pm7vli5XmqZ8gPCB5dXVkb3VkZW5kb3VraVwgOwor6YCG6Kqs55qEIDwgZ3lha3VzZXRzdXRla2lcIDsKK+iLseS7j+a1t+WzoSA8IGVpZnV0c3VrYWlreW91XCA7CivnqJTlrp/kuI3oia8gPCBuZW5qaXRzdWZ1cnlvdVwgOwor5bu65Zu96KiY5b+15pelIDwga2Vua29rdWtpbmVuYmlcIDsKK+WFrOihhua1tOWgtCA8IGtvdXNodXV5b2t1am91XCA7Civlia/po5/niakgPCBmdWt1c2hva3VidXRzdVwgOwor56uv5pyr6KOF572uIDwgdGFubWF0c3Vzb3VjaGlcIDsKK+aWh+Wtl+espuWPt+WMluazlSA8IG1vamlmdWdvdWthaG91XCA7CivkvJ3ntbHkuLvnvqnogIUgPCBkZW50b3VzaHVnaXNoYVwgOwor6aeQ6LuK5paZ6YeRIDwgY2h1dXNoYXJ5b3VraW5cIDsKK+izh+acrOWPluW8lSA8IHNoaWhvbnRvcmloaWtpXCA7CivmoKrlvI/nm7jloLQgPCBrYWJ1c2hpa2lzb3ViYVwgOwor55m76KiY55Wq5Y+35qyEIDwgdG91a2liYW5nb3VyYW5cIDsKK+atqeihjOiAheWEquWFiCA8IGhva291c2hheXV1c2VuXCA7CivnhKHkurrlroflrpnoiLkgPCBtdWppbicndWNodXVzZW5cIDsKK+WFjeeWq+WPjeW/nCA8IG1lbicnZWtpaGFuJydub3VcIDsKK+W7uuioreS8muekviA8IGtlbnNldHN1Z2Fpc2hhXCA7CivmnKzmnKvpoZvlgJIgPCBob25tYXRzdXRlbnRvdVwgOwor5Yid5b+X6LKr5b65IDwgc2hvc2hpa2FudGV0c3VcIDsKK+e+heiQhOaXpei+nuWFuCA8IHJhcG9uaWNoaWppdGVuXCA7CivnlKPmpa3pnanlkb0gPCBzYW5neW91a2FrdW1laVwgOwor5a6a5bm06YCA6IG3IDwgdGVpbmVudGFpc2hva3VcIDsKK+Wbvemam+imquWWhCA8IGtva3VzYWlzaGluemVuXCA7CivmgKfmoLzoqLrmlq0gPCBzZWlrYWt1c2hpbmRhblwgOwor5YWo6Lqr6KGw5byxIDwgemVuc2hpbnN1aWpha3VcIDsKK+WVj+mhjOino+axuiA8IG1vbmRhaWthaWtldHN1XCA7CivmuKnmmpbljJbnj77osaEgPCBvbmRhbmthZ2Vuc2hvdVwgOwor5ZO65Lmz5YuV54mpIDwgaG9ueXV1ZG91YnV0c3VcIDsKK+izh+acrOazqOWFpSA8IHNoaWhvbmNodXVueXV1XCA7Civkv67mpa3lubTpmZAgPCBzaHV1Z3lvdW5lbmdlblwgOwor5amm5Lq65Y+C5pS/5qipIDwgZnVqaW5zYW5zZWlrZW5cIDsKK+iHqueUseawkeS4u+WFmiA8IGppeXV1bWluc2h1dG91XCA7Civnt5HntqzopJLnq6AgPCByeW9rdWp1aG91c2hvdVwgOwor56CU56m26aGM55uuIDwga2Vua3l1dWRhaW1va3VcIDsKK+eXheW6iuaXpeiqjCA8IGJ5b3VzaG91bmlzc2hpXCA7CivnrpfooZPoqIjnrpcgPCBzYW5qdXRzdWtlaXNhblwgOwor5biw5YyW5qSN54mpIDwga2lrYXNob2t1YnV0c3VcIDsKK+mHkeiejeaBkOaFjCA8IGtpbicneXV1a3lvdWtvdVwgOwor5YCL5L2T55m655Sf6KuWIDwga290YWloYXNzZWlyb25cIDsKK+Wkp+WogeW+s+WmmeeOiyA8IGRhaWl0b2t1bXlvdW91XCA7CivnibnliKXmjqrnva4gPCB0b2t1YmV0c3Vzb2NoaVwgOwor5byb5by15oyv5YuVIDwgc2hpY2hvdXNoaW5kb3VcIDsKK+aIpuaIpuWFouWFoiA8IHNlbnNlbmt5b3VreW91XCA7CivlpKfpn5PoiKrnqbrmqZ8gPCB0YWlrYW5rb3VrdXVraVwgOwor6Kaz5YWJ5pa96KitIDwga2Fua291c2hpc2V0c3VcIDsKK+WWhOeUt+WWhOWlsyA8IHplbicnbmFuemVuJydueW9cIDsKK+S/oeeUqOiyqeWjsiA8IHNoaW4nJ3lvdWhhbmJhaVwgOwor5pyr5qKi56We57WMIDwgbWFzc2hvdXNoaW5rZWlcIDsKK+mqqOmrhOenu+akjSA8IGtvdHN1enVpaXNob2t1XCA7CivpgZPlvrPmlZnogrIgPCBkb3V0b2t1a3lvdWlrdVwgOwor6YeR5q6/546J5qW8IDwga2luZGVuZ3lva3Vyb3VcIDsKK+S4jeeJueWumuWkmuaVsCA8IGZ1dG9rdXRlaXRhc3V1XCA7Civnk6Lnrqrpr7AgPCBoeW91dGFuJyduYW1henVcIDsKK+adseWNiueQgyA8IGhpZ2FzaGloYW5reXV1XCA7Civli5Xnianos6ogPCBkb3VidXRzdXNoaXRzdVwgOwor54K55ru05rOo5bCEIDwgdGVudGVraWNodXVzaGFcIDsKK+W3peWtpuS/ruWjqyA8IGtvdWdha3VzaHV1c2hpXCA7CivploDlpJbkuI3lh7ogPCBtb25nYWlmdXNodXRzdVwgOwor5Li75oOF5Li7576p6ICFIDwgc2h1am91c2h1Z2lzaGFcIDsKK+azleWumuS7o+eQhuS6uiA8IGhvdXRlaWRhaXJpbmluXCA7CivpgJrkv6Hoo4Xnva4gPCB0c3V1c2hpbnNvdWNoaVwgOwor5L2c5oim6KiI55S7IDwgc2FrdXNlbmtlaWtha3VcIDsKK+WFrOmWi+Wbs+abuOmkqCA8IGtvdWthaXRvc2hva2FuXCA7CivloLTlpJblj5blvJUgPCBqb3VnYWl0b3JpaGlraVwgOwor5L+h6KiX6YqA6KGMIDwgc2hpbnRha3VnaW5rb3VcIDsKK+S4gOaZgumWk+S7peWGhSA8IGljaGlqaWthbicnaW5haVwgOwor5aKD55WM6Kq/5pW0IDwga3lvdWthaWNob3VzZWlcIDsKK+S4u+WKm+iJpumaiiA8IHNodXJ5b2t1a2FudGFpXCA7CivmlbDnkIboqIDoqp7lraYgPCBzdXVyaWdlbmdvZ2FrdVwgOwor6IG35aC055Kw5aKDIDwgc2hva3ViYWthbmt5b3VcIDsKK+i2iuS4reikjCA8IGV0Y2h1dWZ1bmRvc2hpXCA7CivlibLlvJXkvqHmoLwgPCB3YXJpYmlraWtha2FrdVwgOwor5pW05b2i5omL6KGTIDwgc2Vpa2Vpc2h1anV0c3VcIDsKK+mFuOaAp+mjn+WTgSA8IHNhbnNlaXNob2t1aGluXCA7Civljp/lrZDlipvlraYgPCBnZW5zaGlyaWtpZ2FrdVwgOwor5rC05Lit57+86Ii5IDwgc3VpY2h1dXlva3VzZW5cIDsKK+mBuueUo+ebuOe2muS6uiA8IGlzYW5zb3V6b2t1bmluXCA7CivnmbrpgZTmrrXpmo4gPCBoYXR0YXRzdWRhbmthaVwgOwor5pa55ZCR5o6i55+l5ZmoIDwgaG91a291dGFuY2hpa2lcIDsKK+iruOiqrOe0m+e0myA8IHNob3NldHN1ZnVucHVuXCA7CivkubPphbjpo7LmlpkgPCBueXV1c2FuJydpbnJ5b3VcIDsKK+WAi+OAheWIpeWIpSA8IGtva29iZXRzdWJldHN1XCA7Civlj6PkuI3oqr/ms5UgPCBrdWNoaWJ1Y2hvdWhvdVwgOwor6LaF6Ieq54S255qEIDwgY2hvdXNoaXplbnRla2lcIDsKK+eGseWPr+WhkeaoueiEgiA8IG5ldHN1a2Fzb2p1c2hpXCA7Civlm73pmLLplbflrpggPCBrb2t1Ym91Y2hvdWthblwgOwor5q2j57Wx5L+h5pWZIDwgc2VpdG91c2hpbmt5b3VcIDsKK+W8t+WMluWQiOWuvyA8IGt5b3VrYWdhc3NodWt1XCA7CivmnJ3prq7kurrlj4IgPCBjaG91c2VuJyduaW5qaW5cIDsKK+WNsOWNiue6jyA8IHNoaXJ1c2hpYmFudGVuXCA7CivmnZ/nuJvlpInpoIUgPCBzb2t1YmFrdWhlbmtvdVwgOwor56We57WM57WE57mUIDwgc2hpbmtlaXNvc2hpa2lcIDsKK+i2hei2iumWouaVsCA8IGNob3VldHN1a2Fuc3V1XCA7CivlirnnjoflkJHkuIogPCBrb3VyaXRzdWtvdWpvdVwgOwor54Sh5qmf5YyW5ZCI54mpIDwgbXVraWthZ291YnV0c3VcIDsKK+S7leaWueipsSA8IHNoaWthdGFiYW5hc2hpXCA7CivlpKfohLPnmq7os6ogPCBkYWlub3VoaXNoaXRzdVwgOwor5pS55pyt5L+CIDwga2Fpc2F0c3VnYWthcmlcIDsKK+eUn+S9k+WKm+WtpiA8IHNlaXRhaXJpa2lnYWt1XCA7Civph43opoHmlofljJbosqEgPCBqdXV5b3VidW5rYXphaVwgOwor5bGx5LiL5YWs5ZySIDwgeWFtYXNoaXRha291ZW5cIDsKK+WxhemWk+WFvOmjn+WggiA8IGltYWtlbnNob2t1ZG91XCA7Civlj6Pov7DoqabpqJMgPCBrb3VqdXRzdXNoaWtlblwgOwor5LiA5pel54mH5pmCIDwgaWNoaW5pY2hpaGVuamlcIDsKK+ekvuS8mueUn+a0uyA8IHNoYWthaXNlaWthdHN1XCA7Civlh7rniYjnm67pjLIgPCBzaHVwYW5tb2t1cm9rdVwgOwor5Yil6YCU5pSv5Ye6IDwgYmV0dG9zaGlzaHV0c3VcIDsKK+eUs+WRiue0jeeojiA8IHNoaW5rb2t1bm91emVpXCA7CivliYPliIDop6YgPCBrYW1pc29yaWthYnVyZVwgOwor5aOy5rih6Ki8IDwgdXJpd2F0YXNoaXNob3VcIDsKK+WNs+axuuijgeWIpCA8IHNva2tldHN1c2FpYmFuXCA7CivnlbDmlrnlsI7pm7vohpwgPCBpaG91ZG91ZGVubWFrdVwgOwor54us56uL6Ieq5bCKIDwgZG9rdXJpdHN1amlzb25cIDsKK+Wpmue0hOaMh+i8qiA8IGtvbicneWFrdXl1Yml3YVwgOwor6KGA5ray5Yed5Zu6IDwga2V0c3Vla2lneW91a29cIDsKK+WHuuWHpumAsumAgCA8IHNodXNzaG9zaGludGFpXCA7CivlvJPnn6LlhavluaEgPCB5dW1peWFoYWNoaW1hblwgOwor6K2m5a+f5omL5bizIDwga2Vpc2F0c3V0ZWNob3VcIDsKK+iBt+alreWppuS6uiA8IHNob2t1Z3lvdWZ1amluXCA7CivmjIfnpLrku6PlkI3oqZ4gPCBzaGlqaWRhaW1laXNoaVwgOwor5Zue5b6p5LiN5Y+v6IO9IDwga2FpZnVrdWZ1a2Fub3VcIDsKK+iHs+emj+WNg+W5tCA8IHNoaWZ1a3VzZW4nJ25lblwgOwor5aSp5Zyw6ZaL6ZeiIDwgdGVuY2hpa2FpYnlha3VcIDsKK+WGt+WHjemjn+WTgSA8IHJlaXRvdXNob2t1aGluXCA7Civoo5zotrPoqqzmmI4gPCBob3Nva3VzZXRzdW1laVwgOwor5L+h55So54q25oWLIDwgc2hpbicneW91am91dGFpXCA7Civntbblr77mub/luqYgPCB6ZXR0YWlzaGl0c3Vkb1wgOwor5piO5piO55m955m9IDwgbWVpbWVpaGFrdWhha3VcIDsKK+aLnemHkeS4u+e+qeiAhSA8IGhhaWtpbnNodWdpc2hhXCA7Civou43lgpnnuK7lsI8gPCBndW5iaXNodWt1c2hvdVwgOwor5Y2X54Sh6Zi/5byl6ZmA5LuPIDwgbmFtdWFtaWRhYnV0c3VcIDsKK+aatOWKm+Wbo+WToSA8IGJvdXJ5b2t1ZGFuJydpblwgOwor5aSn5a2m5pWZ6IKyIDwgZGFpZ2FrdWt5b3Vpa3VcIDsKK+esrOS4ieS6uuensCA8IGRhaXNhbicnbmluc2hvdVwgOwor5Lq66YGT5Li7576p6ICFIDwgamluZG91c2h1Z2lzaGFcIDsKK+awuOS4luS4reeriyA8IGVpc2VpY2h1dXJpdHN1XCA7CivnoJTnqbbpoJjln58gPCBrZW5reXV1cnlvdWlraVwgOwor5pWZ6IKy5YuF6KqeIDwga3lvdWlrdWNob2t1Z29cIDsKK+WRiuWIpeW8jyA8IGtva3ViZXRzdXNoaWtpXCA7Civnsr7npZ7pmpzlrrMgPCBzZWlzaGluc2hvdWdhaVwgOwor5aSp56m65rW35r+2IDwgdGVua3V1a2Fpa2F0c3VcIDsKK+mjn+mkjOeZguazlSA8IHNob2t1amlyeW91aG91XCA7CivkuK3lpK7liIbpm6LluK8gPCBjaHV1b3VidW5yaXRhaVwgOwor5rip5biv5L2O5rCX5ZynIDwgb250YWl0ZWlraWF0c3VcIDsKK+i2heWbveWutuS4u+e+qSA8IGNob3Vrb2trYXNodWdpXCA7CivkvZzogIXkuI3nn6UgPCBzYWt1c2hhc2hpcmF6dVwgOwor55Sf5rS75rC05rqWIDwgc2Vpa2F0c3VzdWlqdW5cIDsKK+WNteeUn+WLleeJqSA8IHJhbnNlaWRvdWJ1dHN1XCA7CivnrYvogonlirTlg40gPCBraW4nJ25pa3Vyb3Vkb3VcIDsKK+WNl+aUr+mCo+a1tyA8IG1pbmFtaXNoaW5ha2FpXCA7CivlrabooZPnlKjoqp4gPCBnYWt1anV0c3V5b3Vnb1wgOwor6Ieq54S26aOf5ZOBIDwgc2hpemVuc2hva3VoaW5cIDsKK+WVhualree1hOWQiCA8IHNob3VneW91a3VtaWFpXCA7Civoqp7lvZnmqZ/og73mlofms5UgPCBnb2lraW5vdWJ1bnBvdVwgOwor6IG35qip5Lmx55SoIDwgc2hva2tlbnJhbicneW91XCA7CivkvLTpo5/lpKfoh6MgPCBiYW5zaG9rdWRhaWppblwgOwor5aS+6ZuR54mpIDwga3lvdXphdHN1YnV0c3VcIDsKK+WIqeWus+mWouS/guiAhSA8IHJpZ2Fpa2Fua2Vpc2hhXCA7CivooYborbDlk6HorbDplbcgPCBzaHV1Z2lpbmdpY2hvdVwgOwor5bKh55uu5YWr55uuIDwgb2thbWVoYWNoaW1va3VcIDsKK+WwjuazoueuoeWumuaVsCA8IGRvdWhha2FudGVpc3V1XCA7CivmlqzmlrDlpYfmipwgPCB6YW5zaGlua2liYXRzdVwgOwor55u05oOF5b6E6KGMIDwgY2hva3Vqb3VrZWlrb3VcIDsKK+engeeri+WtpuagoSA8IHNoaXJpdHN1Z2Fra291XCA7CivkuK3ml6Xovp7lhbggPCBjaHV1bmljaGlqaXRlblwgOwor5LiB5a2X5b2i5a6a6KaPIDwgdGVpamlnYXRham91Z2lcIDsKK+ewoeaYk+ijgeWIpOaJgCA8IGthbicnaXNhaWJhbnNob1wgOwor5YiG6aGe55uu6YyyIDwgYnVucnVpbW9rdXJva3VcIDsKK+WGheWIhuazjOiFuiA8IG5haWJ1bnBpdHN1c2VuXCA7Civlj43li5XkuLvnvqnogIUgPCBoYW5kb3VzaHVnaXNoYVwgOwor5rS76Lev6ZaL5ouTIDwga2F0c3Vyb2thaXRha3VcIDsKK+W5s+adv+a4rOmHjyA8IGhlaWJhbnNva3VyeW91XCA7CivmupDms4nlvrTlj44gPCBnZW5zZW5jaG91c2h1dVwgOwor6YCa5L+h6KGb5pifIDwgdHN1dXNoaW4nJ2Vpc2VpXCA7CivmuIXnrpflj5blvJUgPCBzZWlzYW50b3JpaGlraVwgOwor54m55q6K5a2m57SaIDwgdG9rdXNodWdha2t5dXVcIDsKK+S/oeeUqOiqv+afuyA8IHNoaW4nJ3lvdWNob3VzYVwgOwor5YWI54mp5aOy6LK3IDwgc2FraW1vbm9iYWliYWlcIDsKK+S4g+mbo+WFq+iLpiA8IHNoaWNoaW5hbmhha2t1XCA7Civop5Lohpznp7vmpI0gPCBrYWt1bWFrdWlzaG9rdVwgOwor6Z+z5qW95Zuz5pu46aSoIDwgb25nYWt1dG9zaG9rYW5cIDsKK+aVkeaApeeXhemZoiA8IGt5dXVreXV1YnlvdWluXCA7CivmjqXop6bmhJ/mn5MgPCBzZXNzaG9rdWthbnNlblwgOwor56iO6YeR55Sz5ZGKIDwgemVpa2luc2hpbmtva3VcIDsKK+e1qOavr+eIhuaSgyA8IGp1dXRhbmJha3VnZWtpXCA7CivkuIPou6LlhavotbcgPCBzaGljaGl0ZW5oYWtraVwgOwor5LmX55So6Ieq5YuV6LuKIDwgam91eW91amlkb3VzaGFcIDsKK+awtOmKgOS4reavkiA8IHN1aWdpbmNodXVkb2t1XCA7CivpnLLlh7rkuI3otrMgPCByb3NodXRzdWJ1c29rdVwgOwor5bmz5LiK5Y675YWlIDwgaHlvdWpvdWt5b255dXVcIDsKK+Wbveeri+WFrOWckiA8IGtva3VyaXRzdWtvdWVuXCA7Civlhaznq4vlrabmoKEgPCBrb3VyaXRzdWdha2tvdVwgOwor6YCa5L+h5ZyP5aSWIDwgdHN1dXNoaW5rZW5nYWlcIDsKK+e0hOadn+aJi+W9oiA8IHlha3Vzb2t1dGVnYXRhXCA7Civlj6zpm4bku6TnirYgPCBzaG91c2h1dXJlaWpvdVwgOwor5Zyn5YCS55qE5aSa5pWwIDwgYXR0b3V0ZWtpdGFzdXVcIDsKK+aWsOWFpeekvuWToSA8IHNoaW4nJ255dXVzaGFpblwgOwor5pel5Y2X5rW35bK4IDwgbmljaGluYW5rYWlnYW5cIDsKK+mdnuaUv+W6nOe1hOe5lCA8IGhpc2VpZnVzb3NoaWtpXCA7CivmsY7mlbTmlbDlvI8gPCBoYW5zZWlzdXVzaGlraVwgOwor6Ieq55Sx5Yq05YON6ICFIDwgaml5dXVyb3Vkb3VzaGFcIDsKK+WPpOeJqeWVhuS6uiA8IGtvYnV0c3VzaG91bmluXCA7Civnt5Hnmb3oibIgPCByeW9rdWhha3VzaG9rdVwgOwor6Iad6Zai56+AIDwgc2hpdHN1a2Fuc2V0c3VcIDsKK+atpuWKm+W5sua4iSA8IGJ1cnlva3VrYW5zaG91XCA7CivlhazooYbpgZPlvrMgPCBrb3VzaHV1ZG91dG9rdVwgOwor5oCq5aWH5bCP6KqsIDwga2Fpa2lzaG91c2V0c3VcIDsKK+WNmuaEm+S4u+e+qeiAhSA8IGhha3VhaXNodWdpc2hhXCA7Civnp5jlr4bmipXnpaggPCBoaW1pdHN1dG91aHlvdVwgOwor5Zyn5Yqb5a655ZmoIDwgYXRzdXJ5b2t1eW91a2lcIDsKK+axguWpmuW6g+WRiiA8IGt5dXVrb25rb3Vrb2t1XCA7Civlv4Plm6Dlj43lv5wgPCBzaGluJydpbmhhbicnbm91XCA7CivlrprmnJ/kuZfou4rliLggPCB0ZWlraWpvdXNoYWtlblwgOwor6Zu75rCX5rSX5r+v5qmfIDwgZGVua2lzZW50YWt1a2lcIDsKK+m6puiXgeW4veWtkCA8IG11Z2l3YXJhYm91c2hpXCA7CivntI3nqI7nlLPlkYogPCBub3V6ZWlzaGlua29rdVwgOwor5Y+N5a++56ew55qEIDwgaGFudGFpc2hvdXRla2lcIDsKK+e1guaIpuiomOW/teaXpSA8IHNodXVzZW5raW5lbmJpXCA7CivkvY/lj4vpioDooYwgPCBzdW1pdG9tb2dpbmtvdVwgOwor5bCx5qWt5Lq65Y+jIDwgc2h1dWd5b3VqaW5rb3VcIDsKK+WFqOWLneWEquWLnSA8IHplbnNob3V5dXVzaG91XCA7Civlu7roqK3lpKfoh6MgPCBrZW5zZXRzdWRhaWppblwgOwor6Z2e6Imv5b+D55qEIDwgaGlyeW91c2hpbnRla2lcIDsKK+e1tuWvvuW/heimgSA8IHpldHRhaWhpdHN1eW91XCA7CivnpL7kvJrkuLvnvqnogIUgPCBzaGFrYWlzaHVnaXNoYVwgOwor6Ju46Laz6YWN57eaIDwgdGFrb2FzaGloYWlzZW5cIDsKK+W3pealreWkp+WtpiA8IGtvdWd5b3VkYWlnYWt1XCA7Civph5Hlo7HkuIflhoYgPCBraW4nJ2ljaGltYW4nJ2VuXCA7Civml4XlrqLliJfou4ogPCByeW9reWFrdXJlc3NoYVwgOwor5bCP5Z6L6Ieq5YuV6LuKIDwga29nYXRhamlkb3VzaGFcIDsKK+eri+S8mua8lOiqrCA8IHRhY2hpYWllbnpldHN1XCA7Civlpajlrabos4fph5EgPCBzaG91Z2FrdXNoaWtpblwgOwor5rCR5LqL6Ki06Kif5rOVIDwgbWluamlzb3Nob3Vob3VcIDsKK+ePvumHkeWPjuWFpSA8IGdlbmtpbnNodXVueXV1XCA7CivnrKzkuozph4/lrZDljJYgPCBkYWluaXJ5b3VzaGlrYVwgOwor5LqM5Y6f5a2Q5YiG5a2QIDwgbmlnZW5zaGlidW5zaGlcIDsKK+Wtpuihk+S8muitsCA8IGdha3VqdXRzdWthaWdpXCA7Civms5XlvovllY/poYwgPCBob3VyaXRzdW1vbmRhaVwgOwor55u06YCa6Zu76KmxIDwgY2hva3V0c3V1ZGVud2FcIDsKK+WPsOaJgOmBk+WFtyA8IGRhaWRva29yb2RvdWd1XCA7Civpm7vmupDkvpvntaYgPCBkZW5nZW5reW91a3l1dVwgOwor5bi45Lu75oyH5o+u6ICFIDwgam91bmluc2hpa2lzaGFcIDsKK+awtOmZuOS4oeeUqCA8IHN1aXJpa3VyeW91eW91XCA7CivpgJrkv6HmiYvmrrUgPCB0c3V1c2hpbnNodWRhblwgOwor5LiL6KuL5Lya56S+IDwgc2hpdGF1a2VnYWlzaGFcIDsKK+esrOS4gOS6uuensCA8IGRhaWljaGluaW5zaG91XCA7CivlrabmrbTnpL7kvJogPCBnYWt1cmVraXNoYWthaVwgOwor6L6y5LqL6Kmm6aiT5aC0IDwgbm91amlzaGlrZW5qb3VcIDsKK+aDheWgseWMluekvuS8miA8IGpvdWhvdWthc2hha2FpXCA7CivmvJTlpY/mm7Lnm64gPCBlbnNvdWt5b2t1bW9rdVwgOwor5oCd5oOz6K2m5a+fIDwgc2hpc291a2Vpc2F0c3VcIDsKK+WFrOebiuizquWxiyA8IGtvdWVraXNoaWNoaXlhXCA7CivmjqXntprlj6MgPCBzZXRzdXpva3VndWNoaVwgOwor5YGV6ICB5ZCM56m0IDwga2Fpcm91ZG91a2V0c3VcIDsKK+S4u+ims+S4u+e+qeiAhSA8IHNodWthbnNodWdpc2hhXCA7CivnhKHmlZnkvJrkuLvnvqkgPCBtdWt5b3VrYWlzaHVnaVwgOwor57Gz5L6h5a+p6K2w5LyaIDwgYmVpa2FzaGluZ2lrYWlcIDsKK+WBpeW6t+mjn+WTgSA8IGtlbmtvdXNob2t1aGluXCA7Civmir3osaHlkI3oqZ4gPCBjaHV1c2hvdW1laXNoaVwgOwor5bCP5LmX5LuP5pWZIDwgc2hvdWpvdWJ1a2t5b3VcIDsKK+aZgumWk+WkluWKtOWDjSA8IGppa2FuZ2Fpcm91ZG91XCA7CivlkIjnm67nmoTmgKcgPCBnb3Vtb2t1dGVraXNlaVwgOwor6Zu75Yqb5Lya56S+IDwgZGVucnlva3VnYWlzaGFcIDsKK+eZvuenkeWFqOabuOa0viA8IGh5YWtrYXplbnNob2hhXCA7Civkuoznmb7kuozljYHml6UgPCBuaWh5YWt1aGF0c3VrYVwgOwor5rW35rSL6ZaL55m6IDwga2FpeW91a2FpaGF0c3VcIDsKK+e0sOiDnuWIhuijgiA8IHNhaWJvdWJ1bnJldHN1XCA7CivmgKXooYzmlpnph5EgPCBreXV1a291cnlvdWtpblwgOwor5LiB5LiB55m65q2iIDwgY2hvdWNob3VoYXNzaGlcIDsKK+aVmeiBt+iqsueoiyA8IGt5b3VzaG9rdWthdGVpXCA7Civkuozph43kvqHmoLzliLYgPCBuaWp1dWtha2FrdXNlaVwgOwor5YiR5LqL6Ki06Kif5rOVIDwga2Vpamlzb3Nob3Vob3VcIDsKK+WHneedgOWKmyA8IGd5b3VjaGFrdXJ5b2t1XCA7Civmh5Dli5jlrpogPCBmdXRva29yb2thbmpvdVwgOwor5Ye654mI5qWt6ICFIDwgc2h1cHBhbmd5b3VzaGFcIDsKK+WwseiBt+mBi+WLlSA8IHNodXVzaG9rdXVuZG91XCA7CivnlaXlparooYzngrogPCByeWFrdWRhdHN1a291aVwgOwor55CG6Z2e5puy55u0IDwgcmloaWt5b2t1Y2hva3VcIDsKK+aPkOWHuueJqSA8IHRlaXNodXRzdWJ1dHN1XCA7CivliKXlhorku5jpjLIgPCBiZXNzYXRzdWZ1cm9rdVwgOwor5LiJ5qip5YiG56uLIDwgc2Fua2VuYnVucml0c3VcIDsKK+WHuuacreWPoyA8IHNodXNzYXRzdWd1Y2hpXCA7Civosqnlo7Lku6PnkIblupcgPCBoYW5iYWlkYWlyaXRlblwgOwor5YWx5ZCM56CU56m2IDwga3lvdWRvdWtlbmt5dXVcIDsKK+aWsOWIiue0ueS7iyA8IHNoaW5rYW5zaG91a2FpXCA7Civmo5/libLplbflsYsgPCBtdW5ld2FyaW5hZ2F5YVwgOwor5L+u5aW95p2h57SEIDwgc2h1dWtvdWpvdXlha3VcIDsKK+WGoOeKtuWLleiEiCA8IGthbmpvdWRvdW15YWt1XCA7CivnqbrnqbrmvKDmvKAgPCBrdXVrdXViYWt1YmFrdVwgOwor5oKq5oCn6LKn6KGAIDwgYWt1c2VpaGlua2V0c3VcIDsKK+S8keaIpuWNlOWumiA8IGt5dXVzZW5reW91dGVpXCA7CivnpZ7ntYzoobDlvLEgPCBzaGlua2Vpc3VpamFrdVwgOwor5Zue5oqY5qC85a2QIDwga2Fpc2V0c3Vrb3VzaGlcIDsKK+WFiOaxuuWVj+mhjCA8IHNlbmtldHN1bW9uZGFpXCA7CivmnbHkupzoq7jmsJHml48gPCB0b3Vhc2hvbWluem9rdVwgOwor5bCx5qWt5pel5pWwIDwgc2h1dWd5b3VuaXNzdXVcIDsKK+Wun+mok+WLleeJqSA8IGppa2tlbmRvdWJ1dHN1XCA7CivljZjokYnpo5vooYzmqZ8gPCB0YW4nJ3lvdWhpa291a2lcIDsKK+W/oOWQm+aEm+WbvSA8IGNodXVrdW4nJ2Fpa29rdVwgOwor5rGC5Lq65bqD5ZGKIDwga3l1dWppbmtvdWtva3VcIDsKK+eLrOeri+eLrOatqSA8IGRva3VyaXRzdWRvcHBvXCA7CivmnInlrrPpo5/lk4EgPCB5dXVnYWlzaG9rdWhpblwgOwor5Zu95Lya6K2w5LqL6YyyIDwga29ra2FpZ2lqaXJva3VcIDsKK+m6u+iWrOS4reavkiA8IG1heWFrdWNodXVkb2t1XCA7Civph5HlsZ7lt6Xmpa0gPCBraW56b2t1a291Z3lvdVwgOwor5Y245aOy54mp5L6hIDwgb3Jvc2hpdXJpYnVra2FcIDsKK+WFseWQjOWHuuizhyA8IGt5b3Vkb3VzaHVzc2hpXCA7Civni63ou4zpiYTpgZMgPCBreW91a2l0ZXRzdWRvdVwgOwor5ZWG5qWt5omL5b2iIDwgc2hvdWd5b3V0ZWdhdGFcIDsKK+mDteS+v+mFjemBlCA8IHl1dWJpbmhhaXRhdHN1XCA7CivmuK/mub7lvZPlsYAgPCBrb3V3YW50b3VreW9rdVwgOwor5ZWG5qWt6YqA6KGMIDwgc2hvdWd5b3VnaW5rb3VcIDsKK+ecgeeVpeiomOWPtyA8IHNob3VyeWFrdWtpZ291XCA7CivlpKnml6Xnk6YgPCB0ZW5qaXRzdWdhd2FyYVwgOwor5Lit6ZaT5aCx5ZGKIDwgY2h1dWthbmhvdWtva3VcIDsKK+WkoueJqeiqniA8IHl1bWVtb25vZ2F0YXJpXCA7CivkuK3lv4PmgJ3mg7MgPCBjaHV1c2hpbnNoaXNvdVwgOwor5LqU5pyI5Lq65b2iIDwgZ29nYXRzdW5pbmd5b3VcIDsKK+S8neaJv+aWh+WtpiA8IGRlbnNob3VidW5nYWt1XCA7CivmlL/lupzkv53oqLzlgrUgPCBzZWlmdWhvc2hvdXNhaVwgOwor6Luf5L2T5YuV54mpIDwgbmFudGFpZG91YnV0c3VcIDsKK+S4gOaYlOWJjSA8IGhpdG9tdWthc2hpbWFlXCA7CivlvLfliLblj47lrrkgPCBreW91c2Vpc2h1dXlvdVwgOwor5L6/5LmX5Li7576p6ICFIDwgYmluam91c2h1Z2lzaGFcIDsKK+S4gOmZveadpeiFuSA8IGljaGl5b3VyYWlmdWt1XCA7CivmvIHmpa3ljZTlrpogPCBneW9neW91a3lvdXRlaVwgOwor5rC055Sf5YuV54mpIDwgc3Vpc2VpZG91YnV0c3VcIDsKK+allOW9ouaWh+WtlyA8IGt1c2FiaWdhdGFtb2ppXCA7Civnmb7ljZLplbcgPCBoeWFrdXNvdHN1Y2hvdVwgOwor5L+h55So57WE5ZCIIDwgc2hpbicneW91a3VtaWFpXCA7CivnoJTnqbbloLHlkYogPCBrZW5reXV1aG91a29rdVwgOwor6YCG6KGM5YiXIDwgZ3lha3VneW91cmV0c3VcIDsKK+S6jOWkp+aUv+WFmuWItiA8IG5pZGFpc2VpdG91c2VpXCA7CivmsLTlpKnlvbflvb8gPCBzdWl0ZW5ob3VmdXRzdVwgOwor5L2P5a6F55Sj5qWtIDwganV1dGFrdXNhbmd5b3VcIDsKK+azoeayq+S8muekviA8IGhvdW1hdHN1Z2Fpc2hhXCA7CivnhKHliKnmga/lhazlgrUgPCBtdXJpc29rdWtvdXNhaVwgOwor6KuH6KuW6aKo55m6IDwgZGFucm9uZnV1aGF0c3VcIDsKK+i2s+e0oOaAp+WOn+eQhiA8IGFzaGlzdWpvdWdlbnJpXCA7Civos4fmnKzkuLvnvqnogIUgPCBzaGlob25zaHVnaXNoYVwgOwor5YWI55m65oqV5omLIDwgc2VucGF0c3V0b3VzaHVcIDsKK+aOqOeQhuWwj+iqrCA8IHN1aXJpc2hvdXNldHN1XCA7CivntLPlo6vljZTlrpogPCBzaGluc2hpa3lvdXRlaVwgOwor5aSn5ZCN5bGL5pW3IDwgZGFpbXlvdXlhc2hpa2lcIDsKK+eJueeVsOS9k+izqiA8IHRva3VpdGFpc2hpdHN1XCA7CivkuK3plpPmkL7lj5YgPCBjaHV1a2Fuc2FrdXNodVwgOwor5paH5YyW5Zyw55CG5a2mIDwgYnVua2FjaGlyaWdha3VcIDsKK+WNlOiqv+S9nOalrSA8IGt5b3VjaG91c2FneW91XCA7CivmjIflnKfnmYLms5UgPCBzaGlhdHN1cnlvdWhvdVwgOwor5YWs6KqN5YCZ6KOc6ICFIDwga291bmlua291aG9zaGFcIDsKK+W3pealreaKgOihkyA8IGtvdWd5b3VnaWp1dHN1XCA7Civnt4/lkIjoirjooZMgPCBzb3Vnb3VnZWlqdXRzdVwgOwor5pet5pel56ugIDwga3lva3VqaXRzdXNob3VcIDsKK+S4lueVjOmBuOaJi+aoqSA8IHNla2Fpc2Vuc2h1a2VuXCA7CivkuK3nlKPpmo7ntJogPCBjaHV1c2Fua2Fpa3l1dVwgOwor5Y2X5Y2B5a2X5pifIDwgbWluYW1panV1amlzZWlcIDsKK+aWsOefs+WZqOaZguS7oyA8IHNoaW5zZWtraWppZGFpXCA7Civlv4PpnIrmiYvooZMgPCBzaGlucmVpdGVqdXRzdVwgOwor5oiQ6ZW355Sj5qWtIDwgc2VpY2hvdXNhbmd5b3VcIDsKK+WPl+mok+WPguiAg+abuCA8IGp1a2Vuc2Fua291c2hvXCA7Civlm73pmpvlj47mlK8gPCBrb2t1c2Fpc2h1dXNoaVwgOwor6Z2Z5q2i55S75pS+6YCBIDwgc2Vpc2hpZ2Fob3Vzb3VcIDsKK+S4iumZuOS9nOaIpiA8IGpvdXJpa3VzYWt1c2VuXCA7Civli5Xlipvos4fmupAgPCBkb3VyeW9rdXNoaWdlblwgOwor5b+F6KaB5p2h5Lu2IDwgaGl0c3V5b3Vqb3VrZW5cIDsKK+WwkeW5tOaEn+WMlumZoiA8IHNob3VuZW5rYW5rYWluXCA7CivkuK3mtYHmhI/orZggPCBjaHV1cnl1dWlzaGlraVwgOwor6ZW36Led6Zui6Ly46YCBIDwgY2hvdWt5b3JpeXVzb3VcIDsKK+WGjeW4sOS7o+WQjeipniA8IHNhaWtpZGFpbWVpc2hpXCA7Civlh7rmvIHljLrln58gPCBzaHV0c3VneW9rdWlraVwgOwor6LKh5b2i6LKv6JOEIDwgemFpa2VpY2hvY2hpa3VcIDsKK+iBt+S6uuawl+izqiA8IHNob2t1bmlua2F0YWdpXCA7CivmjqfoqLToo4HliKTmiYAgPCBrb3Vzb2hhaWJhbnNob1wgOwor5Y2Y5L2N6KGM5YiXIDwgdGFuJydpZ3lvdXJldHN1XCA7CivmlofljJblip/lirTogIUgPCBidW5rYWtvdXJvdXNoYVwgOwor5Zu96YCj5oay56ugIDwga29rdXJlbmtlbnNob3VcIDsKK+awtOWFiOahiOWGhSA8IG1penVzYWtpYW4nJ25haVwgOwor55yf56m65o6D6Zmk5qmfIDwgc2hpbmt1dXNvdWppa2lcIDsKK+WPjuWuueioreWCmSA8IHNodXV5b3VzZXRzdWJpXCA7Civmt7HmtbfmvIHmpa0gPCBzaGlua2FpZ3lvZ3lvdVwgOwor5Lq65b2i5rWE55Gg55KDIDwgbmluZ3lvdWpvdXJ1cmlcIDsKK+ebtOW+gOmCgemAsiA8IGNob2t1b3VtYWlzaGluXCA7CivlpKnkvZPlipvlraYgPCB0ZW50YWlyaWtpZ2FrdVwgOwor5piU6KmxIDwgbXVrYXNoaWJhbmFzaGlcIDsKK+aUv+ayu+ipleirluWutiA8IHNlaWppaHlvdXJvbmthXCA7CivkvJ3mib/lj5nkuovoqakgPCBkZW5zaG91am9qaXNoaVwgOwor5pyJ6KaW55WM6aOb6KGMIDwgeXV1c2hpa2FpaGlrb3VcIDsKK+W5vOWPi+mBlCA8IG9zYW5hdG9tb2RhY2hpXCA7CivnnJ/nqbrpm7vnkIMgPCBzaGlua3V1ZGVua3l1dVwgOwor6ZmN5LiJ5LiW5aaZ546LIDwgZ291emFuemVteW91b3VcIDsKK+etiemrmOe3muWcsOWbsyA8IHRvdWtvdXNlbmNoaXp1XCA7CivkuIrlsaTlu7rnr4kgPCBqb3Vzb3VrZW5jaGlrdVwgOwor5b256IG35omL5b2TIDwgeWFrdXNob2t1dGVhdGVcIDsKK+mrmOWcp+mbu+a1gSA8IGtvdWF0c3VkZW5yeXV1XCA7CivlsLvou73lpbMgPCBzaGlyaWdhcnVvbicnbmFcIDsKK+S6peW5tCA8IGlub3NoaXNoaWRvc2hpXCA7Civnmb3piaLlt7sgPCBzaGlyb2hhY2hpbWFraVwgOwor5Lqk6YCa6YGT5b6zIDwga291dHN1dWRvdXRva3VcIDsKK+awtOa6lua4rOmHjyA8IHN1aWp1bnNva3VyeW91XCA7Civoo73pgKDlubTmnIjml6UgPCBzZWl6b3VuZW5nYXBwaVwgOwor5byB6Ki85rOV55qEIDwgYmVuc2hvdWhvdXRla2lcIDsKK+advuiMuOW+oemjryA8IG1hdHN1dGFrZWdvaGFuXCA7CivplqLnqI7pmpzlo4EgPCBrYW56ZWlzaG91aGVraVwgOwor57Wx5ous6YOo6ZW3IDwgdG91a2F0c3VidWNob3VcIDsKK+WcsOaWueS6pOS7mOeojiA8IGNoaWhvdWtvdWZ1emVpXCA7CivoloTntKvoibIgPCB1c3VtdXJhc2FraWlyb1wgOwor5pCN5aSx6KOc5aGrIDwgc29uc2hpdHN1aG90ZW5cIDsKK+aXpeacrOiqnuaVmeacrCA8IG5paG9uZ29reW91aG9uXCA7Civlh7rloYHnjocgPCBzaHV0c3VydWlyaXRzdVwgOwor5LqL5LqL54mp54mpIDwgamlqaWJ1dHN1YnV0c3VcIDsKK+mAo+e2muWGmeecnyA8IHJlbnpva3VzaGFzaGluXCA7Civkv5jomZzlj47lrrnmiYAgPCBmdXJ5b3NodXV5b3Vqb1wgOwor56m65rCX5Zyn57iu5qmfIDwga3V1a2lhc3NodWt1a2lcIDsKK+Wbm+eZvuS9meW3niA8IHNoaWh5YWt1eW9zaHV1XCA7Civlm73pgKPoqJjlv7Xml6UgPCBrb2t1cmVua2luZW5iaVwgOwor5b+D562L5qKX5aGeIDwgc2hpbmtpbmtvdXNva3VcIDsKK+Wul+aVmeijgeWIpCA8IHNodXVreW91c2FpYmFuXCA7Civpm7vkv6Hmn7EgPCBkZW5zaGluYmFzaGlyYVwgOwor5YaZ55yf55+z54mIIDwgc2hhc2hpbnNla2liYW5cIDsKK+maoOiKseakjeeJqSA8IGlua2FzaG9rdWJ1dHN1XCA7CivnhKHoqJjlkI3mipXnpaggPCBtdWtpbWVpdG91aHlvdVwgOwor5b6u55Sf54mp5a2mIDwgYmlzZWlidXRzdWdha3VcIDsKK+aIpueVpeepuui7jSA8IHNlbnJ5YWt1a3V1Z3VuXCA7Civmga3os4DmlrDlubQgPCBreW91Z2FzaGluJyduZW5cIDsKK+Wbvemam+WNlOWumiA8IGtva3VzYWlreW91dGVpXCA7Civoh6rnhLbkuLvnvqnogIUgPCBzaGl6ZW5zaHVnaXNoYVwgOwor6Imy5Y2z5piv56m6IDwgc2hpa2lzb2t1emVrdXVcIDsKK+mgreWvkui2s+eGsSA8IHp1a2Fuc29rdW5ldHN1XCA7CivljLrmpJzlr5/luoEgPCBrdWtlbnNhdHN1Y2hvdVwgOwor5qC46Ziy6KGb5YqbIDwga2FrdWJvdWVpcnlva3VcIDsKK+WujOWFqOeHg+eEvCA8IGthbnplbicnbmVuc2hvdVwgOwor6YeN6YeP5oSf6KaaIDwganV1cnlvdWthbmtha3VcIDsKK+mbjOmbhOmRkeWIpSA8IHNoaXl1dWthbmJldHN1XCA7CivnrqHljLrmsJfosaHlj7AgPCBrYW5rdWtpc2hvdWRhaVwgOwor5Y6f55Sf5YuV54mpIDwgZ2Vuc2VpZG91YnV0c3VcIDsKK+ebrueahOaEj+itmCA8IG1va3V0ZWtpaXNoaWtpXCA7Civms5Xlrprmupblgpnph5EgPCBob3V0ZWlqdW5iaWtpblwgOwor5rW355Sf5YuV54mpIDwga2Fpc2VpZG91YnV0c3VcIDsKK+aUu+aSg+eyvuelniA8IGtvdWdla2lzZWlzaGluXCA7CivkvZzmiJDmioDooZMgPCBzYWt1c2VpZ2lqdXRzdVwgOwor6YeR6Yqt5L+h6KiXIDwga2luc2Vuc2hpbnRha3VcIDsKK+WQuOWPjuWQiOS9tSA8IGt5dXVzaHV1Z2FwcGVpXCA7Civmj5vpqqjlparog44gPCBrYW5rb3RzdWRhdHRhaVwgOwor56Gs6LOq6Zm25ZmoIDwga291c2hpdHN1dG91a2lcIDsKK+WvneWPsOaWmemHkSA8IHNoaW5kYWlyeW91a2luXCA7Civos7zlhaXms6jmlocgPCBrb3VueXV1Y2h1dW1vblwgOwor54Sm5Zyf5oim6KGTIDwgc2hvdWRvc2VuanV0c3VcIDsKK+acieiBt+aVheWunyA8IHl1dXNva3Vrb2ppdHN1XCA7CivoqbHoqbEgPCBoYW5hc2hpYmFuYXNoaVwgOwor54Sh5YSf5L+h6KiXIDwgbXVzaG91c2hpbnRha3VcIDsKK+a2iOiyu+eUn+a0uyA8IHNob3VoaXNlaWthdHN1XCA7CivlrqTlhoXpgYrmiK8gPCBzaGl0c3VuYWl5dXVnaVwgOwor5a6X5pWZ5Zuj5L2TIDwgc2h1dWt5b3VkYW50YWlcIDsKK+mAsuihjOeKtuazgSA8IHNoaW5rb3Vqb3VreW91XCA7Civpq5jnrYnli5XniakgPCBrb3V0b3Vkb3VidXRzdVwgOwor5LiA6Iaz6aOv5bGLIDwgaWNoaXplbm1lc2hpeWFcIDsKK+aZguS7o+Wwj+iqrCA8IGppZGFpc2hvdXNldHN1XCA7CivlhoXoqLzoqbEgPCBuYWlzaG91YmFuYXNoaVwgOwor5rW35rSL5oCn5rCX5YCZIDwga2FpeW91c2Vpa2lrb3VcIDsKK+absue3muW6p+aomSA8IGt5b2t1c2VuemFoeW91XCA7CivlvZPoqbLkurrniakgPCB0b3VnYWlqaW5idXRzdVwgOwor5aSW6LKo5rqW5YKZ6auYIDwgZ2Fpa2FqdW5iaWRha2FcIDsKK+imgeaxgumAgeS/oSA8IHlvdWt5dXVzb3VzaGluXCA7Civnmb7kurrkuIDpppYgPCBoeWFrdW5pbicnaXNzaHVcIDsKK+mbhuWbo+aknOiouiA8IHNodXVkYW5rZW5zaGluXCA7Civml4XooYzku6PnkIblupcgPCByeW9rb3VkYWlyaXRlblwgOwor5a6J5a+n56ep5bqPIDwgYW4nJ25laWNoaXRzdWpvXCA7CivkuIvllIcgPCBzaGl0YWt1Y2hpYmlydVwgOwor5qW15qW96bOl6IqxIDwgZ29rdXJha3VjaG91a2FcIDsKK+S4rei2iue0m+S6iSA8IGNodXVldHN1ZnVuc291XCA7CivkuIDmi6zos7zlhaUgPCBpa2thdHN1a291bnl1dVwgOwor5rCR5peP6Ieq5rG6IDwgbWluem9rdWppa2V0c3VcIDsKK+WAtuaiqOS8vee+hee0i+e0iyA8IGt1cmlrYXJhbW9ubW9uXCA7CivmraPpnaLmlLvmkoMgPCBzaG91bWVua291Z2VraVwgOwor5pWZ6IKy55Sj5qWtIDwga3lvdWlrdXNhbmd5b3VcIDsKK+epuuiqv+ioreWCmSA8IGt1dWNob3VzZXRzdWJpXCA7CivljZjni6zlhoXplqMgPCB0YW5kb2t1bmFpa2FrdVwgOwor57eR546J55+zIDwgcnlva3VneW9rdXNla2lcIDsKK+aVmeiCsuWun+e/kiA8IGt5b3Vpa3VqaXNzaHV1XCA7CivlsLHmpa3opo/liYcgPCBzaHV1Z3lvdWtpc29rdVwgOwor5pWZ6aSK55Wq57WEIDwga3lvdXlvdWJhbmd1bWlcIDsKK+WHjee1kOizh+eUoyA8IHRvdWtldHN1c2hpc2FuXCA7Civpm4blm6PovrLloLQgPCBzaHV1ZGFuJydub3Vqb3VcIDsKK+aYlOaYlCA8IG11a2FzaGltdWthc2hpXCA7Civlkajovrroq7jlm70gPCBzaHV1aGVuc2hva29rdVwgOwor5Zu957GN5p2h6aCFIDwga29rdXNla2lqb3Vrb3VcIDsKK+ePvueJqee1puS4jiA8IGdlbmJ1dHN1a3l1dXlvXCA7CivkuojpgbjpgJrpgY7ogIUgPCB5b3NlbnRzdXVrYXNoYVwgOwor6LGq6Zuq5Zyw5bivIDwgZ291c2V0c3VjaGl0YWlcIDsKK+a1t+WNg+WxseWNgyA8IHVtaXNlbicneWFtYXNlblwgOwor6Z2p5paw5pS/5YWaIDwga2FrdXNoaW5zZWl0b3VcIDsKK+WwkeaVsOawkeaXjyA8IHNob3VzdXVtaW56b2t1XCA7CivlirTlg43ljZTntIQgPCByb3Vkb3VreW91eWFrdVwgOwor6Zu75pKD5L2c5oimIDwgZGVuZ2VraXNha3VzZW5cIDsKK+iGneiTi+mqqCA8IHNoaXRzdWdhaWtvdHN1XCA7CivlpbPmgKfop6PmlL7oq5YgPCBqb3NlaWthaWhvdXJvblwgOwor6ISK6auE56We57WMIDwgc2VraXp1aXNoaW5rZWlcIDsKK+e+juihk+Wkp+WtpiA8IGJpanV0c3VkYWlnYWt1XCA7CivpgbrkvJ3lrZDmsrvnmYIgPCBpZGVuc2hpY2hpcnlvdVwgOwor6YG45oqe6aCF55uuIDwgc2VudGFrdWtvdW1va3VcIDsKK+mWk+aOpemBuOaMmSA8IGthbnNldHN1c2Vua3lvXCA7Civosp3mrrvov73mlL4gPCBrYWlnYXJhdHN1aWhvdVwgOwor576k55m65Zyw6ZyHIDwgZ3VucGF0c3VqaXNoaW5cIDsKK+e1tuWvvuS4u+e+qeiAhSA8IHpldHRhaXNodWdpc2hhXCA7Civnt4ropIzkuIDnlaogPCBraW5rb24nJ2ljaGliYW5cIDsKK+WFseWQjOeCiuS6i+WgtCA8IGt5b3Vkb3VzdWlqaWJhXCA7Civni6zouqvosrTml48gPCBkb2t1c2hpbmtpem9rdVwgOwor56aP56WJ5LqL5YuZ5omAIDwgZnVrdXNoaWppbXVzaG9cIDsKK+enkeWtpuefpeitmCA8IGthZ2FrdWNoaXNoaWtpXCA7Civnn7Ppg6jph5HlkIkgPCBpc2hpYmVraW5raWNoaVwgOwor6Iqx6bOl6aKo5pyIIDwga2FjaG91ZnV1Z2V0c3VcIDsKK+aPkOWHuuacn+mZkCA8IHRlaXNodXRzdWtpZ2VuXCA7CivkuInop5Lns7vnlbDluLggPCBzYW5rYWt1a2VpaWpvdVwgOwor5aSp6ZW35Zyw5LmFIDwgdGVuY2hvdWNoaWt5dXVcIDsKK+eZvuS4h+mVt+iAhSA8IGh5YWt1bWFuY2hvdWphXCA7Civlr77nl4fnmYLms5UgPCB0YWlzaG91cnlvdWhvdVwgOwor5rC055Sj6Kmm6aiT5omAIDwgc3Vpc2Fuc2hpa2Vuam9cIDsKK+S4reaeouelnue1jCA8IGNodXVzdXVzaGlua2VpXCA7CivllYblt6Xmpa3ogIUgPCBzaG91a291Z3lvdXNoYVwgOwor6ZaL56Wo6YCf5aCxIDwga2FpaHlvdXNva3Vob3VcIDsKK+aAp+eahOihneWLlSA8IHNlaXRla2lzaG91ZG91XCA7Civou43kuovoo4HliKTmiYAgPCBndW5qaXNhaWJhbnNob1wgOwor54m55q6K5pKu5b2xIDwgdG9rdXNodXNhdHN1ZWlcIDsKK+i8uOWHuuaJi+W9oiA8IHl1c2h1dHN1dGVnYXRhXCA7Civlj7LmlpnppKjlraYgPCBzaGlyeW91a2FuZ2FrdVwgOwor56m65Lit5qW86ZajIDwga3V1Y2h1dXJvdWtha3VcIDsKK+maoOmAgOiUteeJqeizhyA8IGludGFpem91YnVzc2hpXCA7CivlsJHlubTmloflraYgPCBzaG91bmVuYnVuZ2FrdVwgOwor6Kq/5pW05pS75pKDIDwgY2hvdXNlaWtvdWdla2lcIDsKK+eyvuelnuW5tOm9oiA8IHNlaXNoaW4nJ25lbnJlaVwgOwor5bGF5Lit6Kq/5YGcIDwga3lvY2h1dWNob3V0ZWlcIDsKK+eojuWIpeS+oeagvCA8IHplaWJldHN1a2FrYWt1XCA7Civou43kurrnlJ/mtLsgPCBndW5qaW5zZWlrYXRzdVwgOwor55qH5a6u6K2m5a+fIDwga291Z3V1a2Vpc2F0c3VcIDsKK+eykuOAhei+m+iLpiA8IHJ5dXVyeXV1c2hpbmt1XCA7CivmnbHkuqzlpKflraYgPCB0b3VreW91ZGFpZ2FrdVwgOwor5Y+C6ICD5Zuz5pu46aSoIDwgc2Fua291dG9zaG9rYW5cIDsKK+iIiOWRs+a0pea0pSA8IGt5b3VtaXNoaW5zaGluXCA7CivnhKHnt5rlkajms6LmlbAgPCBtdXNlbnNodXVoYXN1dVwgOwor5Y2D5a6i5LiH5p2lIDwgc2Vua3lha3ViYW5yYWlcIDsKK+mBuOaKnOippumokyA8IHNlbmJhdHN1c2hpa2VuXCA7CivoiKrot6/mqJnorZggPCBrb3Vyb2h5b3VzaGlraVwgOwor57eK5oCl55m66YCyIDwga2lua3l1dWhhc3NoaW5cIDsKK+epuuS4reWGmeecnyA8IGt1dWNodXVzaGFzaGluXCA7Civllrbmpa3mtLvli5UgPCBlaWd5b3VrYXRzdWRvdVwgOwor5pWR5o+05rS75YuVIDwga3l1dWVua2F0c3Vkb3VcIDsKK+WkqeeEtuehneWtkCA8IHRlbicnbmVuc2hvdXNoaVwgOwor5L+h6KiX6LOH6YeRIDwgc2hpbnRha3VzaGlraW5cIDsKK+W4guawkeeUn+a0uyA8IHNoaW1pbnNlaWthdHN1XCA7Civph43ovrLkuLvnvqnogIUgPCBqdXVub3VzaHVnaXNoYVwgOwor5LmX5ZCI6Ieq5YuV6LuKIDwgbm9yaWFpamlkb3VzaGFcIDsKK+e1tuWvvuaoqeWKmyA8IHpldHRhaWtlbnJ5b2t1XCA7Civlkajnq6Dni7zni70gPCBzaHV1c2hvdXJvdWJhaVwgOwor5rCR5peP5a2m6ICFIDwgbWluem9rdWdha3VzaGFcIDsKK+iGoOedgOeKtuaFiyA8IGtvdWNoYWt1am91dGFpXCA7CivntLDog57pgbrkvJ3lraYgPCBzYWlib3VpZGVuZ2FrdVwgOwor6Z2i5o6l6Kmm6aiTIDwgbWVuc2V0c3VzaGlrZW5cIDsKK+aUv+etluWNlOWumiA8IHNlaXNha3VreW91dGVpXCA7Civosqnlo7LmiKbnlaUgPCBoYW5iYWlzZW5yeWFrdVwgOwor5YWs6Kit5biC5aC0IDwga291c2V0c3VpY2hpYmFcIDsKK+S6uueJqee1jOa4iCA8IGppbmJ1dHN1a2VpemFpXCA7Civlv4PnmoTnirbmhYsgPCBzaGludGVraWpvdXRhaVwgOwor5LiY6Zm15Zyw5bivIDwga3l1dXJ5b3VjaGl0YWlcIDsKK+i2hemfs+azoua0l+a1hCA8IGNob3VvbnBhc2Vuam91XCA7CivliJHkuovooqvlkYrkurogPCBrZWlqaWhpa29rdW5pblwgOwor5Luu5Ye6542EIDwga2FyaXNodXRzdWdva3VcIDsKK+eJueWIpeiBtyA8IHRva3ViZXRzdXNob2t1XCA7CivnvqTkvJ3mkKzmmYLplpMgPCBndW5kZW5wYW5qaWthblwgOwor55Sf5rav5pWZ6IKyIDwgc2hvdWdhaWt5b3Vpa3VcIDsKK+aXp+e0hOWFqOabuCA8IGt5dXV5YWt1emVuc2hvXCA7CivlpKfmoLnlvbnogIUgPCBkYWlrb24nJ3lha3VzaGFcIDsKK+S4h+W5tOaWsOmAoCA8IG1hbicnbmVuc2hpbnpvdVwgOwor5YGl5bq35L+d6Zm65rOVIDwga2Vua291aG9rZW5ob3VcIDsKK+W4uOS7u+eQhuS6i+WbvSA8IGpvdW5pbnJpamlrb2t1XCA7CivluqfpqqjnpZ7ntYwgPCB6YWtvdHN1c2hpbmtlaVwgOwor6Z2e6YeR5bGe5YWD57SgIDwgaGlraW56b2t1Z2Vuc29cIDsKK+mVt+iAgeaVmeS8miA8IGNob3Vyb3VreW91a2FpXCA7CivpmbjkuIroh6rooZvpmoogPCByaWt1am91amllaXRhaVwgOwor6LKv6JOE5YK15Yi4IDwgY2hvY2hpa3VzYWlrZW5cIDsKK+atpuWKm+S7i+WFpSA8IGJ1cnlva3VrYWlueXV1XCA7Civkv53pmbrli6foqpjlk6EgPCBob2tlbmthbicneXV1aW5cIDsKK+eyvuWvhuenkeWtpiA8IHNlaW1pdHN1a2FnYWt1XCA7Civnp4HpiYTnt4/pgKMgPCBzaGl0ZXRzdXNvdXJlblwgOwor5Lyd6YCB57WC5LqGIDwgZGVuc291c2h1dXJ5b3VcIDsKK+eqkue0oOWbuuWumuazlSA8IGNoaXNzb2tvdGVpaG91XCA7Civolqvokrjmtojmr5IgPCBrdW5qb3VzaG91ZG9rdVwgOwor5rOV5b6L55u46KuHIDwgaG91cml0c3Vzb3VkYW5cIDsKK+WcsOWfn+mWi+eZuiA8IGNoaWlraWthaWhhdHN1XCA7Civlm73lhoXnlKPmpa0gPCBrb2t1bmFpc2FuZ3lvdVwgOwor5LiA5omT6YCG6LuiIDwgaWNoaWRhZ3lha3V0ZW5cIDsKK+awtOeUn+eUn+eJqSA8IHN1aXNlaXNlaWJ1dHN1XCA7CivmnInnt5rpgJrkv6EgPCB5dXVzZW50c3V1c2hpblwgOwor55u45a++5oCn5Y6f55CGIDwgc291dGFpc2VpZ2VucmlcIDsKK+e+juihk+aEm+WlveWutiA8IGJpanV0c3VhaWtvdWthXCA7Civotbfmib/ou6LntZAgPCBraXNob3V0ZW5rZXRzdVwgOwor54mp6LOq5Li7576pIDwgYnVzc2hpdHN1c2h1Z2lcIDsKK+S/oeiol+S8muekviA8IHNoaW50YWt1Z2Fpc2hhXCA7CivkuK3nn7PlmajmmYLku6MgPCBjaHV1c2Vra2lqaWRhaVwgOwor5Li755+l5Li7576p6ICFIDwgc2h1Y2hpc2h1Z2lzaGFcIDsKK+ialeezuOippumok+aJgCA8IHNhbnNoaXNoaWtlbmpvXCA7CivkuK3plpPllYbkurogPCBjaHV1a2Fuc2hvdW5pblwgOwor6Z2Z6Zu75a656YePIDwgc2VpZGVuJyd5b3VyeW91XCA7CivkuK3mtYHnpL7kvJogPCBjaHV1cnl1dXNoYWthaVwgOwor56eB56uL5o6i5YG1IDwgc2hpcml0c3V0YW50ZWlcIDsKK+WRvei+m+i+myA8IGlub2NoaWdhcmFnYXJhXCA7Civlm73msJHmipXnpaggPCBrb2t1bWludG91aHlvdVwgOwor5pyJ572q5Yik5rG6IDwgeXV1emFpaGFua2V0c3VcIDsKK+W8t+WMlumjn+WTgSA8IGt5b3VrYXNob2t1aGluXCA7CivkvLjnuK7oh6rlnKggPCBzaGluc2h1a3VqaXphaVwgOwor6Zm46LuN5aSn5a2mIDwgcmlrdWd1bmRhaWdha3VcIDsKK+mAmuS/oemAn+W6piA8IHRzdXVzaGluc29rdWRvXCA7Civpu5Lph5HliZvnn7MgPCBrdXJva29uZ291c2VraVwgOwor56uL5L2T5bm+5L2V5a2mIDwgcml0dGFpa2lrYWdha3VcIDsKK+S4reWbveS6uuihlyA8IGNodXVnb2t1amluZ2FpXCA7CivlraboirjlpKflraYgPCBnYWt1Z2VpZGFpZ2FrdVwgOwor5aSn5rKz5bCP6KqsIDwgdGFpZ2FzaG91c2V0c3VcIDsKK+mJhOmBk+S8muekviA8IHRldHN1ZG91Z2Fpc2hhXCA7Civpn7Pmpb3lvaLlvI8gPCBvbmdha3VrZWlzaGlraVwgOwor5oCn5qC85YiG5p6QIDwgc2Vpa2FrdWJ1bnNla2lcIDsKK+i7ouWFpeWxiiA8IHRlbicnbnl1dXRvZG9rZVwgOwor5LiN5YuV55Sj6ZGR5a6aIDwgZnVkb3VzYW5rYW50ZWlcIDsKK+WPl+S7mOS/giA8IHVrZXRzdWtlZ2FrYXJpXCA7CivlsLHogbfnjocgPCBzaHV1c2hva3VyaXRzdVwgOwor54++6YeR5pu455WZIDwgZ2Vua2lua2FraXRvbWVcIDsKK+S8keaIpuadoee0hCA8IGt5dXVzZW5qb3V5YWt1XCA7CivkuozotrPli5XniakgPCBuaXNva3Vkb3VidXRzdVwgOwor5b+D55CG5a2m55qEIDwgc2hpbnJpZ2FrdXRla2lcIDsKK+S+g+OAheirpOirpCA8IGthbmthbmdha3VnYWt1XCA7Civnm7Tnt5rpgYvli5UgPCBjaG9rdXNlbicndW5kb3VcIDsKK+aCquW+s+aWsOiBniA8IGFrdXRva3VzaGluYnVuXCA7CivmnKrmsbrmi5jnlZkgPCBtaWtldHN1a291cnl1dVwgOwor5a6a6YeP5YiG5p6QIDwgdGVpcnlvdWJ1bnNla2lcIDsKK+e1puaWmeiiiyA8IGt5dXVyeW91YnVrdXJvXCA7CivntJnlsZHlkIznhLYgPCBrYW1pa3V6dWRvdXplblwgOwor5rip5a6k5qC95Z+5IDwgb25zaGl0c3VzYWliYWlcIDsKK+mHneWwj+ajkuWkpyA8IHNoaW5zaG91Ym91ZGFpXCA7CivmpI3nianlraYgPCBzaG9rdWJ1dHN1Z2FrdVwgOwor5aSq5YiA5LqM6IWwIDwgdGFjaGlmdXRha29zaGlcIDsKK+iqjeitmOS4jei2syA8IG5pbnNoaWtpYnVzb2t1XCA7Civlm6PkvZPljZTntIQgPCBkYW50YWlreW91eWFrdVwgOwor5L+h6aC85Zue5b6pIDwgc2hpbnJhaWthaWZ1a3VcIDsKK+S/ruWtpuaXheihjCA8IHNodXVnYWt1cnlva291XCA7Civplbfot53pm6Lpo5vooYwgPCBjaG91a3lvcmloaWtvdVwgOwor56ys5LqM5qyh5oCn5b60IDwgZGFpbmlqaXNlaWNob3VcIDsKK+mbu+a6kOmWi+eZuiA8IGRlbmdlbmthaWhhdHN1XCA7CivmqKHlvI/mqJnmnKwgPCBtb3NoaWtpaHlvdWhvblwgOwor6L+96Leh6Kq/5p+7IDwgdHN1aXNla2ljaG91c2FcIDsKK+WJsuW8leaJi+W9oiA8IHdhcmliaWtpdGVnYXRhXCA7Civlj6Xmp4vpgKDmlofms5UgPCBrdWtvdXpvdWJ1bnBvdVwgOwor55u05rWB5Zue6LevIDwgY2hva3VyeXV1a2Fpcm9cIDsKK+iIiOihjOaIkOe4viA8IGtvdWd5b3VzZWlzZWtpXCA7CivljJfmtIvmvIHmpa0gPCBob2t1eW91Z3lvZ3lvdVwgOwor5Zu95paH5a2m5Y+yIDwga29rdWJ1bmdha3VzaGlcIDsKK+awuOS5heiEseavmyA8IGVpa3l1dWRhdHN1bW91XCA7CivmjpLlh7rln7rmupYgPCBoYWlzaHV0c3VraWp1blwgOwor57WE6IG35pS56Z2pIDwgc29zaG9rdWthaWtha3VcIDsKK+mBjuWkseiHtOatuyA8IGthc2hpdHN1Y2hpc2hpXCA7CivkuqTpgJrkv6Hlj7cgPCBrb3V0c3V1c2hpbmdvdVwgOwor5YuV54mp5a6f6aiTIDwgZG91YnV0c3VqaWtrZW5cIDsKK+awtOS4iuitpuWvnyA8IHN1aWpvdWtlaXNhdHN1XCA7CivlirTkvZzmlZnogrIgPCByb3VzYWt1a3lvdWlrdVwgOwor5qC45buD5qOE54mpIDwga2FrdWhhaWtpYnV0c3VcIDsKK+mOrumtguabsuatjCA8IGNoaW5rb25reW9rdWthXCA7CivpnZ7piYTph5HlsZ4gPCBoaXRldHN1a2luem9rdVwgOwor5aOr5a6Y5YCZ6KOc55SfIDwgc2hpa2Fua291aG9zZWlcIDsKK+W3oeWbnuWbs+abuOmkqCA8IGp1bmthaXRvc2hva2FuXCA7CivkuInnmb7ku6PoqIAgPCBzYW5ieWFrdWRhaWdlblwgOwor5b605YW15b+M6YG/6ICFIDwgY2hvdWhlaWtpaGlzaGFcIDsKK+WHuuiotOacn+mZkOazlSA8IHNodXNzb2tpZ2VuaG91XCA7CivkuK3lm73kvJ3mnaUgPCBjaHV1Z29rdWRlbnJhaVwgOwor562L54Sh5Yqb55eHIDwga2lubXVyeW9rdXNob3VcIDsKK+a1gemAmuizh+acrCA8IHJ5dXV0c3V1c2hpaG9uXCA7CivnqbrljbPmmK/oibIgPCBrdXVzb2t1emVzaGlraVwgOwor5pWZ6IKy5pS56Z2pIDwga3lvdWlrdWthaWtha3VcIDsKK+WIh+mWi+aJi+ihkyA8IHNla2thaXNodWp1dHN1XCA7CivlpKflkozprYIgPCB5YW1hdG9kYW1hc2hpaVwgOwor5LiL5Y+w5omAIDwgc2hpbW9kYWlkb2tvcm9cIDsKK+aVkeitt+a0u+WLlSA8IGt5dXVnb2thdHN1ZG91XCA7Civou43nlKjovLjpgIHmqZ8gPCBndW4nJ3lvdXl1c291a2lcIDsKK+Wuo+S8nea0u+WLlSA8IHNlbmRlbmthdHN1ZG91XCA7CivosqHnlKPnm67pjLIgPCB6YWlzYW5tb2t1cm9rdVwgOwor6KiA6Kqe5Zyw55CG5a2mIDwgZ2VuZ29jaGlyaWdha3VcIDsKK+ato+W4uOe1guS6hiA8IHNlaWpvdXNodXVyeW91XCA7CivliY3mlrnlvozlhoblorMgPCB6ZW5wb3Vrb3VlbmZ1blwgOwor6Jmr5qeY56qB6LW354KOIDwgY2h1dXlvdXRva2tpZW5cIDsKK+S6oeWRveeUn+a0uyA8IGJvdW1laXNlaWthdHN1XCA7CivlhKrotoropIflkIggPCB5dXVldHN1ZnVrdWdvdVwgOwor57SU5pel5pys5byPIDwganVuJyduaWhvbnNoaWtpXCA7CivmnInlvaLmlofljJbosqEgPCB5dXVrZWlidW5rYXphaVwgOwor5pen55+z5Zmo5pmC5LujIDwga3l1dXNla2tpamlkYWlcIDsKK+aJi+W9ouWJsuW8lSA8IHRlZ2F0YXdhcmliaWtpXCA7Civli5XnianltIfmi50gPCBkb3VidXRzdXN1dWhhaVwgOwor6Ieq55Sx5rCR5qip6KuWIDwgaml5dXVtaW5rZW5yb25cIDsKK+WFseWQjOS9j+WuhSA8IGt5b3Vkb3VqdXV0YWt1XCA7CivmnInooovli5XniakgPCB5dXV0YWlkb3VidXRzdVwgOwor5LiJ5Y2B5LqM5YiG6Z+z56ymIDwgc2FuanV1bmlidW9ucHVcIDsKK+egtOeUo+ijgeWIpOaJgCA8IGhhc2Fuc2FpYmFuc2hvXCA7Civkurrouqvkv53orbfms5UgPCBqaW5zaGluaG9nb2hvdVwgOwor6KKL5bCP6Lev5paHIDwgZnVrdXJva291amlidW5cIDsKK+aUvuWwhOaAp+WFg+e0oCA8IGhvdXNoYXNlaWdlbnNvXCA7Civnmb3noILpnZLmnb4gPCBoYWt1c2hhc2Vpc2hvdVwgOwor6Iqx5auB5b6h5a+uIDwgaGFuYXlvbWVnb3J5b3VcIDsKK+aWsOmZs+S7o+isnSA8IHNoaW5jaGludGFpc2hhXCA7CivkuIDlha3pioDooYwgPCBpY2hpcm9rdWdpbmtvdVwgOwor5bCx6IG35pah5peLIDwgc2h1dXNob2t1YXNzZW5cIDsKK+mereavm+iZq+eXhyA8IGJlbm1vdWNodXVzaG91XCA7CivntbbkvZPntbblkb0gPCB6ZXR0YWl6ZXRzdW1laVwgOwor57K+56We5YiG5p6QIDwgc2Vpc2hpbmJ1bnNla2lcIDsKK+ezu+WIl+S8muekviA8IGtlaXJldHN1Z2Fpc2hhXCA7CivliIblrZDplpPlipsgPCBidW5zaGlrYW5yeW9rdVwgOwor5LyB5qWt5oim55WlIDwga2lneW91c2Vucnlha3VcIDsKK+WbveawkeaJgOW+lyA8IGtva3VtaW5zaG90b2t1XCA7CivovLjlh7rliLbpmZAgPCB5dXNodXRzdXNlaWdlblwgOwor54m55a6a6YqY5p+EIDwgdG9rdXRlaW1laWdhcmFcIDsKK+iyoeWLmeS9k+izqiA8IHphaW11dGFpc2hpdHN1XCA7Civorablr5/lrabmoKEgPCBrZWlzYXRzdWdha2tvdVwgOwor5LiN5rOV5L615YWlIDwgZnVob3VzaGluJydueXV1XCA7CivlsLHogbflj6MgPCBzaHV1c2hva3VndWNoaVwgOwor55Sf5rS76Kit6KiIIDwgc2Vpa2F0c3VzZWtrZWlcIDsKK+aNleiZnOWPjuWuueaJgCA8IGhvcnlvc2h1dXlvdWpvXCA7Civou73oloTnn63lsI8gPCBrZWloYWt1dGFuc2hvdVwgOwor566X6KGT5bmz5Z2HIDwgc2FuanV0c3VoZWlraW5cIDsKK+WNs+W4reaWmeeQhiA8IHNva3VzZWtpcnlvdXJpXCA7CivniannkIbnmYLms5UgPCBidXRzdXJpcnlvdWhvdVwgOwor55Sf6KiI6LK75oyH5pWwIDwgc2Vpa2VpaGlzaGlzdXVcIDsKK+mdkumFuOS4reavkiA8IHNlaXNhbmNodXVkb2t1XCA7CivlrpfmlZnms5XkurogPCBzaHV1a3lvdWhvdWppblwgOwor5YaZ55yf5qSN5a2XIDwgc2hhc2hpbnNob2t1amlcIDsKK+e3iue4ruiyoeaUvyA8IGtpbnNodWt1emFpc2VpXCA7CivljZjmgKfnlJ/mrpYgPCB0YW5zZWlzZWlzaG9rdVwgOwor5Zu95Lya5Zuz5pu46aSoIDwga29ra2FpdG9zaG9rYW5cIDsKK+mrmOetieeUn+eJqSA8IGtvdXRvdXNlaWJ1dHN1XCA7Civpq5jnrYnlvIHli5nlrpggPCBrb3V0b3ViZW5tdWthblwgOwor5pmC6ZaT6aCG5bqP56mNIDwgamlrYW5qdW5qb3Nla2lcIDsKK+S/neiovOeJm+S5syA8IGhvc2hvdWd5dXVueXV1XCA7CivnrYvogonos6ogPCBraW4nJ25pa3VzaGl0c3VcIDsKK+WKm+S7leS6iyA8IGNoaWthcmFzaGlnb3RvXCA7Civlj5fog47oqr/nr4AgPCBqdXRhaWNob3VzZXRzdVwgOwor5Zyw55CD5rip5pqW5YyWIDwgY2hpa3l1dW9uZGFua2FcIDsKK+mAj+aekOeZguazlSA8IHRvdXNla2lyeW91aG91XCA7CivpnZ7luLjli6TorJvluKsgPCBoaWpvdWtpbmtvdXNoaVwgOwor5auh5Ye65a2QIDwgY2hha3VzaHV0c3VzaGlcIDsKK+aEn+immuelnue1jCA8IGthbmtha3VzaGlua2VpXCA7Civoh6rli5Xou4rlrabmoKEgPCBqaWRvdXNoYWdha2tvdVwgOwor56iO6YeR6YG/6Zuj5ZywIDwgemVpa2luaGluYW5jaGlcIDsKK+S6uumBk+eahOaPtOWKqSA8IGppbmRvdXRla2llbmpvXCA7CivlsILploDnn6XorZggPCBzZW5tb25jaGlzaGlraVwgOwor6LuN5ouh56u25LqJIDwgZ3Vua2FrdWt5b3Vzb3VcIDsKK+eJh+iiluacuiA8IGthdGFzb2RlZHp1a3VlXCA7CivnmbvloLTkurrniakgPCB0b3Vqb3VqaW5idXRzdVwgOwor5raI6LK76ICF6YGL5YuVIDwgc2hvdWhpc2hhdW5kb3VcIDsKK+mdnuePvuWun+eahCA8IGhpZ2Vuaml0c3V0ZWtpXCA7CivpgIbmgKfnn7PpubggPCBneWFrdXNlaXNla2tlblwgOwor5Yq05YON5Z+65rqW5rOVIDwgcm91ZG91a2lqdW5ob3VcIDsKK+W5vemWgOeLreeqhCA8IHl1dW1vbmt5b3VzYWt1XCA7CivpgKPpgqblvZPlsYAgPCByZW5wb3V0b3VreW9rdVwgOwor55u05bCE5pel5YWJIDwgY2hva3VzaGFuaWtrb3VcIDsKK+WFiOS7u+WwhuagoSA8IHNlbicnbmluc2hvdWtvdVwgOwor6Ky55Y6z5a6f55u0IDwga2luZ2Vuaml0Y2hva3VcIDsKK+a8ouWtl+WItumZkOirliA8IGthbmppc2VpZ2Vucm9uXCA7CivlupfpoK3lj5blvJUgPCB0ZW50b3V0b3JpaGlraVwgOwor5Y2S5qWt5byPIDwgc290c3VneW91c2hpa2lcIDsKK+eZuuWjsuemgeatoiA8IGhhdHN1YmFpa2luc2hpXCA7Civlk4Hos6rnrqHnkIYgPCBoaW5zaGl0c3VrYW5yaVwgOwor57eo5YWl6Kmm6aiTIDwgaGVuJydueXV1c2hpa2VuXCA7CivkvJ3pgZTplqLmlbAgPCBkZW50YXRzdWthbnN1dVwgOwor5bC95b+g5aCx5Zu9IDwgamluY2h1dWhvdWtva3VcIDsKK+WKtOS9v+WNlOiqvyA8IHJvdXNoaWt5b3VjaG91XCA7Civlkajms6LmlbDlgY/np7sgPCBzaHV1aGFzdXVoZW4nJ2lcIDsKK+eZvuiJsuecvOmPoSA8IGh5YWt1aXJvbWVnYW5lXCA7CivkuK3mgKflrZDmnZ8gPCBjaHV1c2Vpc2hpc29rdVwgOwor54Sh5Yi26ZmQ6LK/5piTIDwgbXVzZWlnZW5ib3Vla2lcIDsKK+e3iuaApeWvvuetliA8IGtpbmt5dXV0YWlzYWt1XCA7CivljbDliLfmioDooZMgPCBpbnNhdHN1Z2lqdXRzdVwgOwor5qyh5YWD5q2j5YmH5YyWIDwgamlnZW5zZWlzb2t1a2FcIDsKK+W/g+eahOihqOekuiA8IHNoaW50ZWtpaHlvdWppXCA7CivlhYnpgJrkv6EgPCBoaWthcml0c3V1c2hpblwgOwor5ZCN5omA5pen6LehIDwgbWVpc2hva3l1dXNla2lcIDsKK+aKleizh+S/oeiolyA8IHRvdXNoaXNoaW50YWt1XCA7CivkurrlkI3nlKjmvKLlrZcgPCBqaW5tZWl5b3VrYW5qaVwgOwor5paw6Z+T5Zu95YWaIDwgc2hpbmthbmtva3V0b3VcIDsKK+Wbvemam+adoee0hCA8IGtva3VzYWlqb3V5YWt1XCA7CivkuIPloILkvL3ol40gPCBzaGljaGlkb3VnYXJhblwgOwor6Kaq5peP6Zai5L+CIDwgc2hpbnpva3VrYW5rZWlcIDsKK+W+geWkt+Wkp+Wwhui7jSA8IHNlaWl0YWlzaG91Z3VuXCA7CivlgpjlvaLnoo3lrZAgPCBrYXNhZ2F0YWdhaXNoaVwgOwor55Sj5qWt5LqI5YKZ6LuNIDwgc2FuZ3lvdXlvYmlndW5cIDsKK+aCqua8ouWwj+iqrCA8IGFra2Fuc2hvdXNldHN1XCA7CivliKnlrZDlubPooaHnqI4gPCByaXNoaWhlaWtvdXplaVwgOwor54Sh5Lu75omA5aSn6IejIDwgbXVuaW5zaG9kYWlqaW5cIDsKK+WFrOaVteS4gOWPtyA8IGtvdXRla2lpY2hpZ291XCA7CivmsLTos6rmsZrmv4EgPCBzdWlzaGl0c3VvZGFrdVwgOwor57K+56We55mC5rOVIDwgc2Vpc2hpbnJ5b3Vob3VcIDsKK+WPlue3oOazlSA8IHRvcmlzaGltYXJpaG91XCA7CivojKvnhLboh6rlpLEgPCBib3V6ZW5qaXNoaXRzdVwgOwor5Zyw6LOq5pmC5LujIDwgY2hpc2hpdHN1amlkYWlcIDsKK+eri+WFpeemgeatoiA8IHRhY2hpaXJpa2luc2hpXCA7CivlpKflkIzlm6PntZAgPCBkYWlkb3VkYW5rZXRzdVwgOwor5LqM6YeN55uy5qSc5rOVIDwgbmlqdXVtb3VrZW5ob3VcIDsKK+iyr+mHkemAmuW4syA8IGNob2tpbnRzdXVjaG91XCA7Civmlo7miJLmspDmtbQgPCBzYWlrYWltb2t1eW9rdVwgOwor5paw5Yi25aSn5a2mIDwgc2hpbnNlaWRhaWdha3VcIDsKK+WFseWQjOiyrOS7uyA8IGt5b3Vkb3VzZWtpbmluXCA7CivmlrDogZ7nmbrooaggPCBzaGluYnVuaGFwcHlvdVwgOwor6LuK5YaF5pS55pytIDwgc2hhbmFpa2Fpc2F0c3VcIDsKK+iHquizoOiyrOS/nemZuiA8IGppYmFpc2VraWhva2VuXCA7CivmmIbomavlrabogIUgPCBrb25jaHV1Z2FrdXNoYVwgOwor6YCA6IG35bm06YeRIDwgdGFpc2hva3VuZW5raW5cIDsKK+WIhuWJsue1seayuyA8IGJ1bmthdHN1dG91Y2hpXCA7CivnorrnjofpgY7nqIsgPCBrYWt1cml0c3VrYXRlaVwgOwor6YeN54Kt6YW45pu56YGUIDwganV1dGFuc2Fuc291ZGFcIDsKK+eglOeptueZuuihqCA8IGtlbmt5dXVoYXBweW91XCA7Civml6fntITogZbmm7ggPCBreXV1eWFrdXNlaXNob1wgOwor5omL6KGT5a6kIDwgc2h1anV0c3VzaGl0c3VcIDsKK+iSsumJvuWFteiIjiA8IGthbWFib2tvaGVpc2hhXCA7CivntYzosrvnr4DntIQgPCBrZWloaXNldHN1eWFrdVwgOwor562L6JCO57iu55eHIDwga2luJydpc2h1a3VzaG91XCA7CivlhKrnlJ/miYvooZMgPCB5dXVzZWlzaHVqdXRzdVwgOwor5YWs5YWx5paZ6YeRIDwga291a3lvdXJ5b3VraW5cIDsKK+W8t+WItuS4reaWrSA8IGt5b3VzZWljaHV1ZGFuXCA7CivkuIfmnInlvJXlipsgPCBiYW4nJ3l1dWlucnlva3VcIDsKK+eri+WkquWtkOW8jyA8IHJpdHRhaXNoaXNoaWtpXCA7Civml6XlhoXlkajmnJ8gPCBuaWNoaW5haXNodXVraVwgOwor5oay5rOV6Kej6YeIIDwga2VucG91a2Fpc2hha3VcIDsKK+mVt+i3nemboumbu+ipsSA8IGNob3VreW9yaWRlbndhXCA7Civnvo7nmoTnlJ/mtLsgPCBiaXRla2lzZWlrYXRzdVwgOwor5Zuj5L2T5Ymy5byVIDwgZGFudGFpd2FyaWJpa2lcIDsKK+Wbvemam+S6pOa1gSA8IGtva3VzYWlrb3VyeXV1XCA7CivoqabnnYDlrqQgPCBzaGljaGFrdXNoaXRzdVwgOwor5Yag54q26Z2Z6ISIIDwga2Fuam91am91bXlha3VcIDsKK+mAhuS4ieinkuW9oiA8IGd5YWt1c2Fua2Fra2VpXCA7CivopIfpm5HmgKrlpYcgPCBmdWt1emF0c3VrYWlraVwgOwor6YG65Lyd5a2Q5bel5a2mIDwgaWRlbnNoaWtvdWdha3VcIDsKK+mrmOWxpOW7uueviSA8IGtvdXNvdWdlbmNoaWt1XCA7CivkuI3lj6/og73pgbjmip4gPCBmdWthbm91c2VudGFrdVwgOwor55yf54+g6aSK5q6WIDwgc2hpbmp1eW91c2hva3VcIDsKK+eUs+WRiueUqOe0mSA8IHNoaW5rb2t1eW91c2hpXCA7CivlsYDlnLDmiKbkuokgPCBreW9rdWNoaXNlbnNvdVwgOwor54iG55m654mpIDwgYmFrdWhhdHN1YnV0c3VcIDsKK+mHjeimgeS6uueJqSA8IGp1dXlvdWppbmJ1dHN1XCA7CivmtLvniYjljbDliLcgPCBrYXBwYW4nJ2luc2F0c3VcIDsKK+mAo+aXpemAo+WknCA8IHJlbmppdHN1cmVuJyd5YVwgOwor5LiJ6ICF5a++56uLIDwgc2Fuc2hhdGFpcml0c3VcIDsKK+axguWmu+W6g+WRiiA8IGt5dXVzYWlrb3Vrb2t1XCA7Civni4LoqIDoh6rmrrogPCBreW91Z2VuamlzYXRzdVwgOwor54yq5q2m6ICFIDwgaW5vc2hpc2hpbXVzaGFcIDsKK+aAp+afk+iJsuS9kyA8IHNlaXNlbnNob2t1dGFpXCA7Civlh7jniYjljbDliLcgPCB0b3BwYW4nJ2luc2F0c3VcIDsKK+WIuui6q+WMheS4gSA8IHNhc2hpbWlib3VjaG91XCA7Civml6XnsbPosr/mmJMgPCBuaWNoaWJlaWJvdWVraVwgOwor5Y+l5qeL6YCg6KaP5YmHIDwga3Vrb3V6b3VraXNva3VcIDsKK+aJi+W9ouS6pOaPm+aJgCA8IHRlZ2F0YWtvdWthbmpvXCA7Civou43kuovljZTlipsgPCBndW5qaWt5b3VyeW9rdVwgOwor5aSn6buS5p+xIDwgZGFpa29rdWJhc2hpcmFcIDsKK+altemZkOeKtuaFiyA8IGt5b2t1Z2Vuam91dGFpXCA7CivniannkIbnj77osaEgPCBidXRzdXJpZ2Vuc2hvdVwgOwor5Zyw5pa56Ieq5rK75L2TIDwgY2hpaG91amljaGl0YWlcIDsKK+S6uui6q+aUu+aSgyA8IGppbnNoaW5rb3VnZWtpXCA7CivoqJjmhrbllqrlpLEgPCBraW9rdXNvdXNoaXRzdVwgOwor5LiN6KaP5YmH5YuV6KmeIDwgZnVraXNva3Vkb3VzaGlcIDsKK+ekvuS8muenqeW6jyA8IHNoYWthaWNoaXRzdWpvXCA7CivlrozlhajkuLvnvqnogIUgPCBrYW56ZW5zaHVnaXNoYVwgOwor5rib5L6h5YSf5Y20IDwgZ2Vua2FzaG91a3lha3VcIDsKK+mOluW4t+WtkCA8IGt1c2FyaWthdGFiaXJhXCA7CivnqbrkuK3mn7vlr58gPCBrdXVjaHV1c2FzYXRzdVwgOwor57Sg5Lq66Iqd5bGFIDwgc2hpcm91dG9zaGliYWlcIDsKK+S4gOWFreWLneiyoCA8IGljaGlyb2t1c2hvdWJ1XCA7CivkuqTpn7/mpb3lm6MgPCBrb3VreW91Z2FrdWRhblwgOwor6KGA5ray6YqA6KGMIDwga2V0c3Vla2lnaW5rb3VcIDsKK+WVhuWTgeWcqOmrmCA8IHNob3VoaW56YWlkYWthXCA7CivniannkIblrabogIUgPCBidXRzdXJpZ2FrdXNoYVwgOwor5LiN6Lq+6ICFIDwgYnVzaGl0c3VrZW1vbm9cIDsKK+W5tOeZvuW5tOS4rSA8IG5lbmJ5YWt1bmVuanV1XCA7Civmnp3okYnmnKvnr4AgPCBzaGl5b3VtYXNzZXRzdVwgOwor6LuN6ZqK55Sf5rS7IDwgZ3VudGFpc2Vpa2F0c3VcIDsKK+avlOi8g+eahOWwjyA8IGhpa2FrdXRla2lzaG91XCA7Civmp4vmiJDntKDmp4vpgKAgPCBrb3VzZWlzb2tvdXpvdVwgOwor5r2c5Zyo6IO95YqbIDwgc2VuemFpbm91cnlva3VcIDsKK+W3peWtpuWNmuWjqyA8IGtvdWdha3VoYWt1c2hpXCA7CivmnInlhJ/lpZHntIQgPCB5dXVzaG91a2VpeWFrdVwgOwor5paw6IGe5bqD5ZGKIDwgc2hpbmJ1bmtvdWtva3VcIDsKK+S4iue0muabuemVtyA8IGpvdWt5dXVzb3VjaG91XCA7CivkubHoqLrkubHnmYIgPCByYW5zaGlucmFucnlvdVwgOwor6LyJ6LKo5ZCD5rC057eaIDwgc2Fpa2FraXNzdWlzZW5cIDsKK+mbhuWQiOS9j+WuhSA8IHNodXVnb3VqdXV0YWt1XCA7CivlvqHpo5/kuovlh6YgPCBvc2hva3VqaWRva29yb1wgOwor6aSK5q6W55yf54+gIDwgeW91c2hva3VzaGluanVcIDsKK+WGhemDqOWRiueZuiA8IG5haWJ1a29rdWhhdHN1XCA7CivlkI3nm67os4Pph5EgPCBtZWltb2t1Y2hpbmdpblwgOwor5LiJ6Imy6I+rIDwgc2Fuc2hva3VzdW1pcmVcIDsKK+ebuOWvvua5v+W6piA8IHNvdXRhaXNoaXRzdWRvXCA7CivlrabmoKHnlJ/mtLsgPCBnYWtrb3VzZWlrYXRzdVwgOwor5YWl5Zu95p+76Ki8IDwgbnl1dWtva3VzYXNob3VcIDsKK+iHquW+i+elnue1jCA8IGppcml0c3VzaGlua2VpXCA7CivmsLTpioDmuKnluqboqIggPCBzdWlnaW4nJ29uZG9rZWlcIDsKK+WnieanmOS6uuW9oiA8IGFuZXNhbWFuaW5neW91XCA7CivooZ3mkoPplqLmlbAgPCBzaG91Z2VraWthbnN1dVwgOwor5ben6KiA5Luk6ImyIDwga291Z2VucmVpc2hva3VcIDsKK+Wkiea4qeWLleeJqSA8IGhlbicnb25kb3VidXRzdVwgOwor5pWw55CG6KuW55CG5a2mIDwgc3V1cmlyb25yaWdha3VcIDsKK+WOn+Wni+WLleeJqSA8IGdlbnNoaWRvdWJ1dHN1XCA7CivnqbrplpPoirjooZMgPCBrdXVrYW5nZWlqdXRzdVwgOwor55qH5aSq5a2Q5q6/5LiLIDwga291dGFpc2hpZGVua2FcIDsKK+WHuuWKm+e3miA8IHNodXRzdXJ5b2t1c2VuXCA7CivplovlupfkvJHmpa0gPCBrYWl0ZW5reXV1Z3lvdVwgOwor5aiv5qW95pa96KitIDwgZ29yYWt1c2hpc2V0c3VcIDsKK+WNiuawuOS5heeahCA8IGhhbicnZWlreXV1dGVraVwgOwor56eB56uLIDwgd2F0YWt1c2hpcml0c3VcIDsKK+aIpuS6ieacquS6oeS6uiA8IHNlbnNvdW1pYm91amluXCA7Civpo5/ns6fkuovmg4UgPCBzaG9rdXJ5b3VqaWpvdVwgOwor5Y+v6YCG5Y+N5b+cIDwga2FneWFrdWhhbicnbm91XCA7CivnoLTnlKPnrqHosqHkurogPCBoYXNhbmthbnphaW5pblwgOwor54m55Yil5Lya5ZOhIDwgdG9rdWJldHN1a2FpaW5cIDsKK+atu+a0u+WVj+mhjCA8IHNoaWthdHN1bW9uZGFpXCA7Civns7vntbHnpZ7lraYgPCBrZWl0b3VzaGluZ2FrdVwgOwor6Luf6aqo6a2a6aGeIDwgbmFua290c3VneW9ydWlcIDsKK+WQhOS6uuWQhOanmCA8IGtha3VqaW5rYWt1eW91XCA7CivpgJrkv6Hkuovmpa0gPCB0c3V1c2hpbmppZ3lvdVwgOwor5Y2U5a6a5LiW55WM5pmCIDwga3lvdXRlaXNla2FpamlcIDsKK+iyv+aYk+manOWjgSA8IGJvdWVraXNob3VoZWtpXCA7CivljZjkuIDpgJrosqggPCB0YW4nJ2l0c3V0c3V1a2FcIDsKK+WNg+S4oeW9ueiAhSA8IHNlbnJ5b3V5YWt1c2hhXCA7CivliLDnnYDmmYLliLsgPCB0b3VjaGFrdWppa29rdVwgOwor5rW35LiK5L+d5a6J5bqBIDwga2Fpam91aG9hbmNob3VcIDsKK+amgueul+imgeaxgiA8IGdhaXNhbicneW91a3l1dVwgOwor54iG55m65YqbIDwgYmFrdWhhdHN1cnlva3VcIDsKK+WbveawkeW5tOmHkSA8IGtva3VtaW4nJ25lbmtpblwgOwor5rOl5rC056i85qWtIDwgZG9yb21penVrYWd5b3VcIDsKK+eJueeVsOWApOWIhuinoyA8IHRva3VpY2hpYnVua2FpXCA7CivlnKjml6XnsbPou40gPCB6YWluaWNoaWJlaWd1blwgOwor6LaK5aKD5YWl5a2mIDwgZWtreW91bnl1dWdha3VcIDsKK+awkeWWtuWMluS8gealrSA8IG1pbicnZWlrYWtpZ3lvdVwgOwor5pWw55CG5ZOy5a2mIDwgc3V1cml0ZXRzdWdha3VcIDsKK+WUr+eJqeWPsuimsyA8IHl1aWJ1dHN1c2hpa2FuXCA7CivllYbmpa3lrabmoKEgPCBzaG91Z3lvdWdha2tvdVwgOwor5bem5aSn5ous5bynIDwgaGlkYXJpZGFpa2Fra29cIDsKK+awkeaXj+eyvuelniA8IG1pbnpva3VzZWlzaGluXCA7Civlrp/lipvooYzngrogPCBqaXRzdXJ5b2t1a291aVwgOwor5aSn6KW/5rSL5qiq5patIDwgdGFpc2VpeW91b3VkYW5cIDsKK+a1t+e2v+WLleeJqSA8IGthaW1lbmRvdWJ1dHN1XCA7CivnsbPou43lhbXlipsgPCBiZWlndW5oZWlyeW9rdVwgOwor552A5L+h5bGAIDwgY2hha3VzaGlua3lva3VcIDsKK+S6uuW3pemBv+WmiuazlSA8IGppbmtvdWhpbmluaG91XCA7CivlsLHlrablubTpvaIgPCBzaHV1Z2FrdW5lbnJlaVwgOwor6Ymx54mp6LOH5rqQIDwga291YnV0c3VzaGlnZW5cIDsKK+i7n+W8j+mHjueQgyA8IG5hbnNoaWtpeWFreXV1XCA7Civkv6HoqJfntbHmsrsgPCBzaGludGFrdXRvdWNoaVwgOwor57WM5riI5rS75YuVIDwga2VpemFpa2F0c3Vkb3VcIDsKK+WFteW8j+S9k+aTjSA8IGhlaXNoaWtpdGFpc291XCA7CivprZrnvqTmjqLnn6XmqZ8gPCBneW9ndW50YW5jaGlraVwgOwor55Sf5q6W57Sw6IOeIDwgc2Vpc2hva3VzYWlib3VcIDsKK+WcsOW9oua4rOmHjyA8IGNoaWtlaXNva3VyeW91XCA7CivllYbmpa3os4fmnKwgPCBzaG91Z3lvdXNoaWhvblwgOwor6YGK6Zui5Z+65Y+N5b+cIDwgeXV1cmlraWhhbicnbm91XCA7CivlsI/nlLDljp/oqZXlrpogPCBvZGF3YXJhaHlvdWpvdVwgOwor5pWw5YCk55uu5qiZIDwgc3V1Y2hpbW9rdWh5b3VcIDsKK+mokumfs+mYsuatouazlSA8IHNvdW9uYm91c2hpaG91XCA7CivkuIDlvpfkuIDlpLEgPCBpdHRva3Vpc3NoaXRzdVwgOwor6YCa5L+h6LKp5aOyIDwgdHN1dXNoaW5oYW5iYWlcIDsKK+W8t+WItuWft+ihjCA8IGt5b3VzZWlzaGlra291XCA7Civlubvopprnl4fnirYgPCBnZW5rYWt1c2hvdWpvdVwgOwor5oeQ5YiAIDwgZnV0b2tvcm9nYXRhbmFcIDsKK+eWkeWVj+S7o+WQjeipniA8IGdpbW9uZGFpbWVpc2hpXCA7CivljJfpmbjlnLDmlrkgPCBob2t1cmlrdWNoaWhvdVwgOwor5Ymy5byV55m66KGMIDwgd2FyaWJpa2loYWtrb3VcIDsKK+W6g+Wgsea0u+WLlSA8IGtvdWhvdWthdHN1ZG91XCA7CivlsbHpq5jluL3lrZAgPCB5YW1hdGFrYWJvdXNoaVwgOwor5p+T6Imy5bel5aC0IDwgc2Vuc2hva3Vrb3Vqb3VcIDsKK+WFrOW8j+ioquWVjyA8IGtvdXNoaWtpaG91bW9uXCA7CivmjpLlh7rniakgPCBoYWlzaHV0c3VidXRzdVwgOwor57eP5ZCI6ZaL55m6IDwgc291Z291a2FpaGF0c3VcIDsKK+mAo+eri+aUv+aoqSA8IHJlbnJpdHN1c2Vpa2VuXCA7Civlt67liKXooajnj74gPCBzYWJldHN1aHlvdWdlblwgOwor5qip5Yqb6ZeY5LqJIDwga2Vucnlva3V0b3Vzb3VcIDsKK+ebuOWvvuaAp+eQhuirliA8IHNvdXRhaXNlaXJpcm9uXCA7Civoo73lk4HmiKbnlaUgPCBzZWloaW5zZW5yeWFrdVwgOwor5YiG5rC05bGx6ISIIDwgYnVuc3Vpc2FubXlha3VcIDsKK+mFuOWMlumYsuatouWJpCA8IHNhbmthYm91c2hpemFpXCA7CivnrKzkuozmrKHnlKPmpa0gPCBkYWluaWppc2FuZ3lvdVwgOwor6Ymx54mp6LOqIDwga291YnV0c3VzaGl0c3VcIDsKK+acieapn+Whqea6tuWqkiA8IHl1dWtpZW4nJ3lvdWJhaVwgOwor6KqY6Zu75q2j5o6lIDwgeXV1ZGVuc2Vpc2V0c3VcIDsKK+efpeimmuelnue1jCA8IGNoaWtha3VzaGlua2VpXCA7CivpgJDmnaHlr6norbAgPCBjaGlrdWpvdXNoaW5naVwgOwor5Y2D5bO25YiX5bO2IDwgY2hpc2hpbWFyZXR0b3VcIDsKK+i8uOWHuui2hemBjiA8IHl1c2h1dHN1Y2hvdWthXCA7Civpm7vlrZDoqIjnrpfmqZ8gPCBkZW5zaGlrZWlzYW5raVwgOwor5bCK546L6KiO5bmVIDwgc29uJydub3V0b3ViYWt1XCA7CivmiKbpl5jniqDnibLogIUgPCBzZW50b3VnaXNlaXNoYVwgOwor5oOF5aCx6YCa5L+hIDwgam91aG91dHN1dXNoaW5cIDsKK+aMr+WHuuWxgCA8IGZ1cmlkYXNoaWt5b2t1XCA7CivmsJHplpPoiKrnqbrmqZ8gPCBtaW5rYW5rb3VrdXVraVwgOwor6LaF6LaK5Lqk5LujIDwgY2hvdWV0c3Vrb3V0YWlcIDsKK+WPjeaIpuS4u+e+qeiAhSA8IGhhbnNlbnNodWdpc2hhXCA7CivnlJ/mtLvnqbrplpMgPCBzZWlrYXRzdWt1dWthblwgOwor5YmN56uL6IW654KOIDwgemVucml0c3VzZW4nJ2VuXCA7Civln7fli5nlrqQgPCBzaGl0c3VtdXNoaXRzdVwgOwor6KGM5pS/5pS56Z2pIDwgZ3lvdXNlaWthaWtha3VcIDsKK+W+i+S7pOWbveWutiA8IHJpdHN1cnlvdWtva2thXCA7Civlv4PpnIrnj77osaEgPCBzaGlucmVpZ2Vuc2hvdVwgOwor55Sf6KqV55m+5bm0IDwgc2VpdGFuaHlha3VuZW5cIDsKK+iHquWLleedgOS/oSA8IGppZG91Y2hha3VzaGluXCA7CivnmbrnhrHph48gPCBoYXRzdW5ldHN1cnlvdVwgOwor56ys5LiJ5Yui5YqbIDwgZGFpc2Fuc2Vpcnlva3VcIDsKK+Wkp+WFq+i7iiA8IGRhaWhhY2hpZ3VydW1hXCA7Civmm7jnlZnpg7Xkvr8gPCBrYWtpdG9tZXl1dWJpblwgOwor6Kaz5YWJ5qGI5YaF5omAIDwga2Fua291YW4nJ25haWpvXCA7Civnn6XorZjkvZPns7sgPCBjaGlzaGlraXRhaWtlaVwgOwor6ZuG5ZCI6KiY6L+wIDwgc2h1dWdvdWtpanV0c3VcIDsKK+S4ieeZvuiruOS+ryA8IHNhbmJ5YWt1c2hva291XCA7Civpq5jpvaLljJbnpL7kvJogPCBrb3VyZWlrYXNoYWthaVwgOwor6KiY5Y+36KuW55CG5a2mIDwga2lnb3Vyb25yaWdha3VcIDsKK+Wkp+ihhuaWh+WtpiA8IHRhaXNodXVidW5nYWt1XCA7CivkuK3nrYnmlZnogrIgPCBjaHV1dG91a3lvdWlrdVwgOwor5pWZ6IKy6KGM5pS/IDwga3lvdWlrdWd5b3VzZWlcIDsKK+ebtOaOpeeahCA8IGNob2t1c2V0c3V0ZWtpXCA7Civmraboo4XkuK3nq4sgPCBidXNvdWNodXVyaXRzdVwgOwor5bmz5ZKM5Y2U5YqbIDwgaGVpd2FreW91cnlva3VcIDsKK+aMh+WQjeaJi+mFjeS6uiA8IHNoaW1laXRlaGFpamluXCA7Civpm7vpiYTkvJrnpL4gPCBkZW50ZXRzdWdhaXNoYVwgOwor6Ieq6Lui6LuK5peF6KGMIDwgaml0ZW5zaGFyeW9rb3VcIDsKK+WHuuW4reaXpeaVsCA8IHNodXNzZWtpbmlzc3V1XCA7CivnnIznq4vnl4XpmaIgPCBrZW5yaXRzdWJ5b3VpblwgOwor5bmz5Z2H5aSq6Zm95pmCIDwgaGVpa2ludGFpeW91amlcIDsKK+WBj+aXgeWGoOiEmiA8IGhlbmJvdWthbmt5YWt1XCA7Civlpb3msJfmgKfntLDoj4wgPCBrb3VraXNlaXNhaWtpblwgOwor6LKp5aOy5L+D6YCyIDwgaGFuYmFpc29rdXNoaW5cIDsKK+S/oeiol+aKleizhyA8IHNoaW50YWt1dG91c2hpXCA7Civpm7vms6LmnJvpgaDpj6EgPCBkZW5wYWJvdWVua3lvdVwgOwor5Lit5bCP5LyB5qWtIDwgY2h1dXNob3VraWd5b3VcIDsKK+S4ieihjOW6g+WRiiA8IHNhbmd5b3Vrb3Vrb2t1XCA7CivooYDmtrLlvqrnkrAgPCBrZXRzdWVraWp1bmthblwgOwor6YCj57WQ5rG6566XIDwgcmVua2V0c3VrZXNzYW5cIDsKK86455CG6KuWIDwgc2hpXCDMhHRhXCDMhHJpcm9uXCA7CivmlLnmnK3pi48gPCBrYWlzYXRzdWhhc2FtaVwgOwor6aqo6Luf5YyW55eHIDwga290c3VuYW5rYXNob3VcIDsKK+WKtOWDjemBi+WLleiAhSA8IHJvdWRvdXVuZG91c2hhXCA7CivmlL/msrvlk7LlraYgPCBzZWlqaXRldHN1Z2FrdVwgOwor5ZWG5qWt5pS+6YCBIDwgc2hvdWd5b3Vob3Vzb3VcIDsKK+WbvemYsue3j+ecgSA8IGtva3Vib3Vzb3VzaG91XCA7CivnlJ/mtLvmjIflsI4gPCBzZWlrYXRzdXNoaWRvdVwgOwor54KO54ax5Zyw542EIDwgZW4nJ25ldHN1amlnb2t1XCA7CivlhavpnaLnjrLnk48gPCBoYWNoaW1lbnJlaXJvdVwgOwor6Z2i5Lya6Kyd57W2IDwgbWVua2Fpc2hhemV0c3VcIDsKK+mBk+i3r+aomeitmCA8IGRvdXJvaHlvdXNoaWtpXCA7Civlm73llrbpgJrkv6EgPCBrb2t1ZWl0c3V1c2hpblwgOwor6ZyH54G96KiY5b+15pelIDwgc2hpbnNhaWtpbmVuYmlcIDsKK+mBqeadkOmBqeaJgCA8IHRla2l6YWl0ZWtpc2hvXCA7Civliofnl4fogp3ngo4gPCBnZWtpc2hvdWthbicnZW5cIDsKK+eJqeaDhemokueEtiA8IGJ1dHN1am91c291emVuXCA7Civlv53mtpkgPCBrYXRhamlrZW5hbWlkYVwgOwor5YWs5rCR55Sf5rS7IDwga291bWluc2Vpa2F0c3VcIDsKK+WFpeWtpuippumokyA8IG55dXVnYWt1c2hpa2VuXCA7CivmgqrlvrPmlL/msrvlrrYgPCBha3V0b2t1c2VpamlrYVwgOwor5oOF5aCx5Li76KaB57SgIDwgam91aG91c2h1eW91c29cIDsKK+WQiOWUsemaiumVtyA8IGdhc3Nob3V0YWljaG91XCA7Civkub7nh6XniZvkubMgPCBrYW5zb3VneXV1bnl1dVwgOwor55u057O75bCK5bGeIDwgY2hva2tlaXNvbnpva3VcIDsKK+WFpeWtpumhmOabuCA8IG55dXVnYWt1Z2Fuc2hvXCA7Civlh7rnmbrmmYLplpMgPCBzaHVwcGF0c3VqaWthblwgOwor5Li76KaB5Lq654mpIDwgc2h1eW91amluYnV0c3VcIDsKK+WFrOatpuWQiOS9k+irliA8IGtvdWJ1Z2F0dGFpcm9uXCA7CivkuI3mnZ/ogIUgPCBmdXRzdXRzdWthbW9ub1wgOwor54eV5Y2D6bOlIDwgdHN1YmFtZWNoaWRvcmlcIDsKK+aWh+WtpuS9nOWTgSA8IGJ1bmdha3VzYWt1aGluXCA7Civpm7vlhYnmjrLnpLrmnb8gPCBkZW5rb3VrZWlqaWJhblwgOwor6Lu95L6/6YmE6YGTIDwga2VpYmVudGV0c3Vkb3VcIDsKK+WJsuW8leW4guWgtCA8IHdhcmliaWtpc2hpam91XCA7CivlpLHouKrlrqPlkYogPCBzaGlzc291c2Vua29rdVwgOwor5YyW5a2m57WQ5ZCIIDwga2FnYWt1a2V0c3Vnb3VcIDsKK+S/nemZuuaWmeeOhyA8IGhva2VucnlvdXJpdHN1XCA7CivkvqHpm7vlrZDnirbmhYsgPCBrYWRlbnNoaWpvdXRhaVwgOwor5L+h6LaK5pys57eaIDwgc2hpbmV0c3Vob25zZW5cIDsKK+elnue1jOS4reaeoiA8IHNoaW5rZWljaHV1c3V1XCA7CivnmbrlhYnli5XniakgPCBoYWtrb3Vkb3VidXRzdVwgOwor5rC055Sj5Yqg5bel5ZOBIDwgc3Vpc2Fua2Frb3VoaW5cIDsKK+W5s+mdouW5vuS9leWtpiA8IGhlaW1lbmtpa2FnYWt1XCA7CivopIflvI/ngavlsbEgPCBmdWt1c2hpa2lrYXphblwgOwor5aCF5b+N5LiN5oqcIDwga2VuJyduaW5mdWJhdHN1XCA7CivogJDkuY/nlJ/mtLsgPCB0YWlib3VzZWlrYXRzdVwgOwor56S+5Lya6YCa5b+1IDwgc2hha2FpdHN1dW5lblwgOwor5o6l5a6i5oWL5bqmIDwgc2Vra3lha3V0YWlkb1wgOwor6Lu954iG5pKD5qmfIDwga2VpYmFrdWdla2lraVwgOwor5Y2X5p2xIDwgbWluYW1paGlnYXNoaVwgOwor572y5ZCN5o265Y2wIDwgc2hvbWVpbmF0c3VpblwgOwor5LyR5oap5a6kIDwga3l1dWtlaXNoaXRzdVwgOwor6IO46YOo55a+5oKjIDwga3lvdWJ1c2hpa2thblwgOwor6LGh54mZ5Y+W5byVIDwgem91Z2V0b3JpaGlraVwgOwor5pel5puc5aSn5belIDwgbmljaGl5b3VkYWlrdVwgOwor55uu546J5ZWG5ZOBIDwgbWVkYW1hc2hvdWhpblwgOwor6KO96Jas5Lya56S+IDwgc2VpeWFrdWdhaXNoYVwgOwor5oqV5YWJ54Wn5piOIDwgdG91a291c2hvdW1laVwgOwor5riF5buJ5r2U55m9IDwgc2VpcmVua2VwcGFrdVwgOwor6Ieq6Lui6LuK572u5aC0IDwgaml0ZW5zaGFva2liYVwgOwor5pW15YmN6YCD5LqhIDwgdGVraXplbnRvdWJvdVwgOwor5pel5YiK5paw6IGeIDwgbmlra2Fuc2hpbmJ1blwgOwor5oqx6IW557W25YCSIDwgaG91ZnVrdXpldHRvdVwgOwor5pel5rKh5YmNIDwgbmljaGlib3RzdXplblwgOwor5pWZ6IKy5aeU5ZOh5LyaIDwga3lvdWlrdWlpbmthaVwgOwor5oKq6JmQ54Sh6YGTIDwgYWt1Z3lha3VtdWRvdVwgOwor5rC05LiK6aOb6KGM5qmfIDwgc3Vpam91aGlrb3VraVwgOwor5Y6t5LiW5oKy6Kaz6ICFIDwgZW5zZWloaWthbnNoYVwgOwor5Zu95a625qip5YqbIDwga29ra2FrZW5yeW9rdVwgOwor5Y2X5rSL6Ku45bO2IDwgbmFuJyd5b3VzaG90b3VcIDsKK+W+jOacn+WNsOixoea0viA8IGtvdWtpaW5zaG91aGFcIDsKK+WbmuS6uuWKtOWDjSA8IHNodXVqaW5yb3Vkb3VcIDsKK+eLkOagvOWtkCA8IGtpdHN1bmVnb3VzaGlcIDsKK+WKo+etieims+W/tSA8IHJldHRvdWthbicnbmVuXCA7CivplqLkv4LlrpjluoEgPCBrYW5rZWlrYW5jaG91XCA7CivovrLmsJHmloflraYgPCBub3VtaW5idW5nYWt1XCA7Civoh6rnhLbnj77osaEgPCBzaGl6ZW5nZW5zaG91XCA7CivohY7oh5PntZDnn7MgPCBqaW56b3VrZXNzZWtpXCA7Civlj6TlhbUgPCBmdXJ1dHN1d2Ftb25vXCA7Civmlr3mlL/mlrnph50gPCBzaGlzZWlob3VzaGluXCA7CivplrLopqflrqQgPCBldHN1cmFuc2hpdHN1XCA7CivlpKnnq7rmtarkurogPCB0ZW5qaWt1cm91bmluXCA7Civlu7rnr4nniakgPCBrZW5jaGlrdWJ1dHN1XCA7CivpnIrprYLkuI3mu4UgPCByZWlrb25mdW1ldHN1XCA7CivlhazlhbHntYTlkIggPCBrb3VreW91a3VtaWFpXCA7CivmnInnt5rpm7vkv6EgPCB5dXVzZW5kZW5zaGluXCA7CivooYDooYzpmpzlrrMgPCBrZWtrb3VzaG91Z2FpXCA7CivkurrnmoTos4fmupAgPCBqaW50ZWtpc2hpZ2VuXCA7CivlnLDmlrnooYzmlL8gPCBjaGlob3VneW91c2VpXCA7CivpnIflpKnli5XlnLAgPCBzaGludGVuZG91Y2hpXCA7CivnrKzkuInluJ3lm70gPCBkYWlzYW50ZWlrb2t1XCA7CivlpKfopo/mqKHmiKbkuokgPCBkYWlraWJvc2Vuc291XCA7Civlrp/os6rnmoQgPCBqaXNzaGl0c3V0ZWtpXCA7CivlpKnmloflrabogIUgPCB0ZW5tb25nYWt1c2hhXCA7Civmt7HlpJzmlL7pgIEgPCBzaGluJyd5YWhvdXNvdVwgOwor6Z+z5aOw5b2i5byPIDwgb25zZWlrZWlzaGlraVwgOwor5Lqk6YCa5ZWP6aGMIDwga291dHN1dW1vbmRhaVwgOwor5YWs5YWx5oqV6LOHIDwga291a3lvdXRvdXNoaVwgOwor5YqD5pmC5Luj55qEIDwga2FrdWppZGFpdGVraVwgOwor5ZCM5peP5Lya56S+IDwgZG91em9rdWdhaXNoYVwgOwor5b+D55CG5o+P5YaZIDwgc2hpbnJpYnlvdXNoYVwgOwor5oqA6KGT5rC05rqWIDwgZ2lqdXRzdXN1aWp1blwgOwor54Sh5ouF5L+d56S+5YK1IDwgbXV0YW5wb3NoYXNhaVwgOwor55CG5a2m5Y2a5aOrIDwgcmlnYWt1aGFrdXNoaVwgOwor5bGA5omA6bq76YWUIDwga3lva3VzaG9tYXN1aVwgOwor55Sj5Yil5Lya6K2wIDwgc2FuYmV0c3VrYWlnaVwgOwor57+M44CF5pelIDwgeW9rdXlva3VqaXRzdVwgOwor5bCx5a2m5YWQ56ulIDwgc2h1dWdha3VqaWRvdVwgOwor56m65Lit57Wm5rK5IDwga3V1Y2h1dWt5dXV5dVwgOwor5Zu96Zqb6KaP5qC8IDwga29rdXNhaWtpa2FrdVwgOwor5a2m5qCh5paw6IGeIDwgZ2Fra291c2hpbmJ1blwgOwor6Kmm6IG05a6kIDwgc2hpY2hvdXNoaXRzdVwgOwor5oOF5aCx55Sj5qWtIDwgam91aG91c2FuZ3lvdVwgOwor55m76Yyy55Wq5Y+3IDwgdG91cm9rdWJhbmdvdVwgOwor5Zyf5pyo5bel5a2mIDwgZG9ib2t1a291Z2FrdVwgOwor55Sf5L2T5Y+N5b+cIDwgc2VpdGFpaGFuJydub3VcIDsKK+eLuOWbg+WtkCA8IHRhbnVraWJheWFzaGlcIDsKK+ixoeW+tOS4u+e+qSA8IHNob3VjaG91c2h1Z2lcIDsKK+mfs+alveaVmeiCsiA8IG9uZ2FrdWt5b3Vpa3VcIDsKK+ims+a4rOWcsOeCuSA8IGthbnNva3VjaGl0ZW5cIDsKK+mBoOW/g+WIhumbouapnyA8IGVuc2hpbmJ1bnJpa2lcIDsKK+akjeavm+ihkyA8IHNob2t1bW91anV0c3VcIDsKK+aKgOihk+WQjOWjqyA8IGdpanV0c3Vkb3VzaGlcIDsKK+W/nOaApeaUu+aSgyA8IG91a3l1dWtvdWdla2lcIDsKK+WQjOS7geaVmeS8miA8IGRvdWppbmt5b3VrYWlcIDsKK+Wun+WDjeaZgumWkyA8IGppdHN1ZG91amlrYW5cIDsKK+mdkuepuumnkOi7iiA8IGFvem9yYWNodXVzaGFcIDsKK+mbu+WKm+i8uOmAgSA8IGRlbnJ5b2t1eXVzb3VcIDsKK+i7jemaiuaVmeiCsiA8IGd1bnRhaWt5b3Vpa3VcIDsKK+mBoOa0i+a8gealrSA8IGVuJyd5b3VneW9neW91XCA7Civml6fmraPmnIggPCBreXV1c2hvdWdhdHN1XCA7Civkv53pmpzljaDpoJggPCBob3Nob3VzZW5yeW91XCA7CivkuqTmj5vms5XliYcgPCBrb3VrYW5ob3Vzb2t1XCA7Civnib3lvJXnmYLms5UgPCBrZW4nJ2lucnlvdWhvdVwgOwor6aeF5Lyd56u26LWwIDwgZWtpZGVua3lvdXNvdVwgOwor5YiH5q2v5om86IWVIDwgc2Vzc2hpeWFrdXdhblwgOwor5Li46by76JyCIDwgbWFydWhhbmFiYWNoaVwgOwor5Zuj5L2T5Lqk5riJIDwgZGFudGFpa291c2hvdVwgOwor6ISa6Imy6ICFIDwga3lha3VzaG9rdXNoYVwgOwor5Lqt5Li76Zai55m9IDwgdGVpc2h1a2FucGFrdVwgOwor5LiA5q615YuV6KmeIDwgaWNoaWRhbmRvdXNoaVwgOwor5LiA6Iis5bmV5YOaIDwgaXBwYW5iYWt1cnlvdVwgOwor5a+d5Y+w5YiX6LuKIDwgc2hpbmRhaXJlc3NoYVwgOwor5oqV5pOy56u25oqAIDwgdG91dGVraWt5b3VnaVwgOwor5p2x5rW35bK4IDwgaGlnYXNoaWthaWdhblwgOwor5rCX6LGh6YCa5aCxIDwga2lzaG91dHN1dWhvdVwgOwor6ZaL5p6Q5Y+w5ZywIDwga2Fpc2VraWRhaWNoaVwgOwor5YaF6LidIDwgdWNoaWt1cnVidXNoaVwgOwor5a6f55So5Li7576pIDwgaml0c3V5b3VzaHVnaVwgOwor55u056uL6IyOIDwgY2hva3VyaXRzdWtlaVwgOwor55m96Zuq5aerIDwgc2hpcmF5dWtpaGltZVwgOwor5bel5aC05a6f57+SIDwga291am91amlzc2h1dVwgOwor5Lit57aZ6LK/5piTIDwgY2h1dWtlaWJvdWVraVwgOwor5oCn6IO954m55oCnIDwgc2Vpbm91dG9rdXNlaVwgOwor6Zu75rCX5Ya36JS15bqrIDwgZGVua2lyZWl6b3Vrb1wgOwor5pyA5b6M6YCa54mSIDwgc2FpZ290c3V1Y2hvdVwgOwor5pyA5L2O5rip5bqm6KiIIDwgc2FpdGVpb25kb2tlaVwgOwor5Zu96Zqb57WQ5amaIDwga29rdXNhaWtla2tvblwgOwor6YCg5pys5oqA6KGTIDwgem91aG9uZ2lqdXRzdVwgOwor5aao5a6z5bel5L2cIDwgYm91Z2Fpa291c2FrdVwgOwor5pat54ax55qEIDwgZGFuJyduZXRzdXRla2lcIDsKK+awkeaXj+aEj+itmCA8IG1pbnpva3Vpc2hpa2lcIDsKK+azpee4hOW8jyA8IGRvcm9uYXdhc2hpa2lcIDsKK+i0heayouS4ieaYpyA8IHplaXRha3V6YW5tYWlcIDsKK+WGmeecn+ijveeJiCA8IHNoYXNoaW5zZWloYW5cIDsKK+ims+mWsuW8jyA8IGthbicnZXRzdXNoaWtpXCA7CivlrabmoKHmlZnogrIgPCBnYWtrb3VreW91aWt1XCA7CivpnKfkuK3kv6Hlj7cgPCBtdWNodXVzaGluZ291XCA7Civnsr7npZ7nirbmhYsgPCBzZWlzaGluam91dGFpXCA7CivllYbnp5HlpKflraYgPCBzaG91a2FkYWlnYWt1XCA7CivlkLjmub/mgKcgPCBreXV1c2hpdHN1c2VpXCA7CivmtojmpbXnmoQgPCBzaG91a3lva3V0ZWtpXCA7CivpoafllY/lvIHorbflo6sgPCBrb21vbmJlbmdvc2hpXCA7CivlhpnnnJ/ntZDlqZogPCBzaGFzaGlua2Vra29uXCA7CivlhbHlkIzmiKbnt5ogPCBreW91ZG91c2Vuc2VuXCA7CivngavlsbHmtLvli5UgPCBrYXphbmthdHN1ZG91XCA7CivpuqbnqIjntLDlt6UgPCBtdWdpd2FyYXphaWt1XCA7CivmiJHliKnmiJHliKnkuqHogIUgPCBnYXJpZ2FyaW1vdWphXCA7Civli6TlirTmiYDlvpcgPCBraW5yb3VzaG90b2t1XCA7Civpppbnm7jlrpjpgrggPCBzaHVzaG91a2FudGVpXCA7Civoqq3mm7jkuInmmKcgPCBkb2t1c2hvemFubWFpXCA7CivkuK3nrYnmlZnlk6EgPCBjaHV1dG91a3lvdWluXCA7CivkuIDmrKHpm7vmtYEgPCBpY2hpamlkZW5yeXV1XCA7Civlj7DkuK3plqLkv4IgPCB0YWljaHV1a2Fua2VpXCA7Civnp5jlr4bntZDnpL4gPCBoaW1pdHN1a2Vzc2hhXCA7CivmnbHmlrnmi6HlpKcgPCB0b3Vob3VrYWt1ZGFpXCA7CivmvILmtYHniakgPCBoeW91cnl1dWJ1dHN1XCA7Civov5HpmqPoq7jlm70gPCBraW5yaW5zaG9rb2t1XCA7CivlirTlg43pmo7ntJogPCByb3Vkb3VrYWlreXV1XCA7Civosp7mk43oprPlv7UgPCB0ZWlzb3VrYW4nJ25lblwgOwor5rCR6ZaT5Lyd5om/IDwgbWlua2FuZGVuc2hvdVwgOwor6IaA6IOx57WQ55+zIDwgYm91a291a2Vzc2VraVwgOwor6Lui5bGF6YCa55+lIDwgdGVua3lvdHN1dWNoaVwgOwor57SU5q2j5pWw5a2mIDwganVuc2Vpc3V1Z2FrdVwgOwor55S354i15aSr5Lq6IDwgZGFuc2hha3VmdWppblwgOwor5LiL5LqM5qGBIDwgc2hpbW9mdXRha2V0YVwgOwor5LqM56Gr5YyW54Kt57SgIDwgbmlyeXV1a2F0YW5zb1wgOwor5aGp6JS16aOf5ZOBIDwgZW56b3VzaG9rdWhpblwgOwor5LiA6Ie05Zuj57WQIDwgaXRjaGlkYW5rZXRzdVwgOwor6K2m5a+f5Zu95a62IDwga2Vpc2F0c3Vrb2trYVwgOwor57WM5riI55m95pu4IDwga2VpemFpaGFrdXNob1wgOwor56mA5YCJ5Zyw5bivIDwga29rdXNvdWNoaXRhaVwgOwor5oaC6ayx6LOqIDwgeXV1dXRzdXNoaXRzdVwgOwor5pep5pyf6K2m5oiS5qmfIDwgc291a2lrZWlrYWlraVwgOwor55Kw5aKD5LqL5qWtIDwga2Fua3lvdWppZ3lvdVwgOwor57eP5ZCI5ZWG56S+IDwgc291Z291c2hvdXNoYVwgOwor5L+E5oiQ6YeRIDwgbml3YWthbmFyaWtpblwgOwor5bCR5bm05Yq05YONIDwgc2hvdW5lbnJvdWRvdVwgOwor5LiA5oyZ5Lih5b6XIDwgaWtreW9yeW91dG9rdVwgOwor5ris5a6a6KOF572uIDwgc29rdXRlaXNvdWNoaVwgOwor5YmN6KGb576O6KGTIDwgemVuJydlaWJpanV0c3VcIDsKK+ani+mAoOmBuuS8neWtkCA8IGtvdXpvdWlkZW5zaGlcIDsKK+eahuaXouaciOmjnyA8IGthaWtpZ2Vzc2hva3VcIDsKK+WFrOWbo+S9j+WuhSA8IGtvdWRhbmp1dXRha3VcIDsKK+ioreWCmeaKleizhyA8IHNldHN1Yml0b3VzaGlcIDsKK+aXpeW4uOiMtumjryA8IG5pY2hpam91c2FoYW5cIDsKK+e+pOmbhuW/g+eQhiA8IGd1bnNodXVzaGlucmlcIDsKK+eZvuaIpue3tOejqCA8IGh5YWt1c2VucmVubWFcIDsKK+WNs+iIiOipqeS6uiA8IHNva2t5b3VzaGlqaW5cIDsKK+WWhOmao+aUv+etliA8IHplbnJpbnNlaXNha3VcIDsKK+WJjeWPl+WPjuebiiA8IG1hZXVrZXNodXVla2lcIDsKK+mdkumKheWZqOaZguS7oyA8IHNlaWRvdWtpamlkYWlcIDsKK+WbveawkeeahuWFtSA8IGtva3VtaW5rYWloZWlcIDsKK+mqqOebuOWtpuiAhSA8IGtvc3NvdWdha3VzaGFcIDsKK+aIuOWIpeioquWVjyA8IGtvYmV0c3Vob3Vtb25cIDsKK+eIhuW8vuWjsOaYjiA8IGJha3VkYW5zZWltZWlcIDsKK+mBk+alveaBr+WtkCA8IGRvdXJha3VtdXN1a29cIDsKK+iIjOm8kyA8IHNoaXRhdHN1ZHp1bWlcIDsKK+WPjuepq+eJqSA8IHNodXVrYWt1YnV0c3VcIDsKK+iyuOS7mOmHkSA8IGthc2hpdHN1a2VraW5cIDsKK+eZkuWCt+e1hOe5lCA8IHl1c2hvdXNvc2hpa2lcIDsKK+eUt+WtkOWtpueUnyA8IGRhbnNoaWdha3VzZWlcIDsKK+WLleeJqemBlCA8IGRvdWJ1dHN1dGFjaGlcIDsKK+iyq+mAmumKg+WJtSA8IGthbnRzdXVqdXVzb3VcIDsKK+mjn+ezp+W6gSA8IHNob2t1cnlvdWNob3VcIDsKK+S8muioiOaknOafu+mZoiA8IGthaWtlaWtlbnNhaW5cIDsKK+aWsOmDjuaWsOWppiA8IHNoaW5yb3VzaGlucHVcIDsKK+epuuaMuuS9nOaIpiA8IGt1dXRlaXNha3VzZW5cIDsKK+mFjeeuoeW3pealrSA8IGhhaWthbmtvdWd5b3VcIDsKK+Wuh+WumemAmuS/oSA8IHVjaHV1dHN1dXNoaW5cIDsKK+iFuueXheizqiA8IHNlbmJ5b3VzaGl0c3VcIDsKK+etieavlOaVsOWIlyA8IHRvdWhpc3V1cmV0c3VcIDsKK+W6iuS4iua1uOawtCA8IHl1a2F1ZXNoaW5zdWlcIDsKK+iHqueEtueSsOWigyA8IHNoaXplbmthbmt5b3VcIDsKK+aXpeS4reaIpuS6iSA8IG5pdGNodXVzZW5zb3VcIDsKK+awkee0hOiqrCA8IG1pbicneWFrdXNldHN1XCA7CivlkLjmub/liaQgPCBreXV1c2hpdHN1emFpXCA7CivkuoznrYvpgZMgPCBmdXRhc3VqaW1pY2hpXCA7CivljYrplbfpnbQgPCBoYW4nJ25hZ2FndXRzdVwgOwor5qiZ6aGM6Z+z5qW9IDwgaHlvdWRhaW9uZ2FrdVwgOwor5qCh6ZW35a6kIDwga291Y2hvdXNoaXRzdVwgOwor5Yqj562J6KSH5ZCIIDwgcmV0dG91ZnVrdWdvdVwgOwor55y855CD6YqA6KGMIDwgZ2Fua3l1dWdpbmtvdVwgOwor5rG65pat5YqbIDwga2V0c3VkYW5yeW9rdVwgOwor5biC5aC05YiG5p6QIDwgc2hpam91YnVuc2VraVwgOwor5Lit6ZaT6Kmm6aiTIDwgY2h1dWthbnNoaWtlblwgOwor6Ki85Yi45Lya56S+IDwgc2hvdWtlbmdhaXNoYVwgOwor5ryP6Kmx57WQ5ZCIIDwgcm91d2FnZXRzdWdvdVwgOwor5Zu96Zqb57Sb5LqJIDwga29rdXNhaWZ1bnNvdVwgOwor6ZuG5Zuj6KGM5YuVIDwgc2h1dWRhbmtvdWRvdVwgOwor6LuK5Lih57im6ZqKIDwgc2hhcnlvdWp1dXRhaVwgOwor5Lqk5Luj5pON5qWtIDwga291dGFpc291Z3lvdVwgOwor5L2c6ICF5pyq6KmzIDwgc2FrdXNoYW1pc2hvdVwgOwor6KW/5pys6aGY5a+6IDwgbmlzaGlob25nYW5qaVwgOwor5rC45Luj5YCf5ZywIDwgZWl0YWlzaGFrdWNoaVwgOwor5beu5Ye65Lq6IDwgc2FzaGlkYXNoaW5pblwgOwor5LiD5puc6KGoIDwgc2hpY2hpeW91aHlvdVwgOwor5a2Q5a6u562L6IWrIDwgc2hpa3l1dWtpbnNodVwgOwor5YiH5omL6JKQ6ZuGIDwga2l0dGVzaHV1c2h1dVwgOwor6aaW5L2N5pS76Ziy5oimIDwgc2h1aWtvdWJvdXNlblwgOwor5YWo5pa55L2N5aSW5LqkIDwgemVuaG91aWdhaWtvdVwgOwor5a6Y6LK755WZ5a2mIDwga2FucGlyeXV1Z2FrdVwgOwor57eo6ZuG5Li75bm5IDwgaGVuc2h1dXNodWthblwgOwor55Sf55Sj5oqA6KGTIDwgc2Vpc2FuZ2lqdXRzdVwgOwor5rC05bmz5b+c5YqbIDwgc3VpaGVpb3VyeW9rdVwgOwor5YWI56uv5oqA6KGTIDwgc2VudGFuZ2lqdXRzdVwgOwor56We5a6u55CD5aC0IDwgamluZ3V1a3l1dWpvdVwgOwor54Gw57eR6ImyIDwga2Fpcnlva3VzaG9rdVwgOwor5pys6LOq55qEIDwgaG9uc2hpdHN1dGVraVwgOwor54Sh5Lq65YyW5bel5aC0IDwgbXVqaW5rYWtvdWpvdVwgOwor6Z+z5qW95aSn5a2mIDwgb25nYWt1ZGFpZ2FrdVwgOwor5L6155Wl6KGM54K6IDwgc2hpbnJ5YWt1a291aVwgOwor5YWl5bCE5YWJ57eaIDwgbnl1dXNoYWtvdXNlblwgOwor5LiJ6KeS5Ye95pWwIDwgc2Fua2FrdWthbnN1dVwgOwor56uL5L2T5YaZ55yfIDwgcml0dGFpc2hhc2hpblwgOwor5Zu96Zqb6Zai5L+CIDwga29rdXNhaWthbmtlaVwgOwor5rWE5Zyf55yf5a6XIDwgam91ZG9zaGluc2h1dVwgOwor5LiJ5Zu95ZCM55ufIDwgc2FuZ29rdWRvdW1laVwgOwor54Gr5LqL5aC05rOl5qOSIDwga2FqaWJhZG9yb2JvdVwgOwor6ama5aSp5YuV5ZywIDwga3lvdXRlbmRvdWNoaVwgOwor56m65Lit5ruR6LWwIDwga3V1Y2h1dWthc3NvdVwgOwor5Zu96Zqb5ZWP6aGMIDwga29rdXNhaW1vbmRhaVwgOwor5rGC5b+D5YqbIDwga3l1dXNoaW5yeW9rdVwgOwor56S+5aSW55m65L+hIDwgc2hhZ2FpaGFzc2hpblwgOwor6Lez5qKB6LeL5omIIDwgY2hvdXJ5b3ViYWtrb1wgOwor6ZuG5Lit56Cy54GrIDwgc2h1dWNodXVob3VrYVwgOwor5Lq65bel5qCE6aSK5YWQIDwgamlua291ZWl5b3VqaVwgOwor5Lq66ZaT5bel5a2mIDwgbmluZ2Vua291Z2FrdVwgOwor6Lqr5YWD56K66KqNIDwgbWltb3Rva2FrdW5pblwgOwor57WQ5Zuj5byPIDwga2V0c3VkYW5zaGlraVwgOwor5beu5Yil5b6F6YGHIDwgc2FiZXRzdXRhaWd1dVwgOwor5Y2D6bOl5qC85a2QIDwgY2hpZG9yaWdvdXNoaVwgOwor5LuP5YOP5LqM5L2TIDwgYnV0c3V6b3VuaXRhaVwgOwor5YWo5pmv5YaZ55yfIDwgemVua2Vpc2hhc2hpblwgOwor5YWs5YWx5Zuj5L2TIDwga291a3lvdWRhbnRhaVwgOwor5pS55pyt5Y+jIDwga2Fpc2F0c3VndWNoaVwgOwor5aCG56mN6Lyq5bu7IDwgdGFpc2VraXJpbicnbmVcIDsKK+S4gOiIrOeUn+a0uyA8IGlwcGFuc2Vpa2F0c3VcIDsKK+asp+exs+iruOiogOiqniA8IG91YmVpc2hvZ2VuZ29cIDsKK+aoquays+mbu+apnyA8IHlva29nYXdhZGVua2lcIDsKK+S4ree2meaUvumAgSA8IGNodXVrZWlob3Vzb3VcIDsKK+emgeatouadoee0hCA8IGtpbnNoaWpvdXlha3VcIDsKK+WFqOWbveaUvumAgSA8IHplbmtva3Vob3Vzb3VcIDsKK+S6uuW3peWtteWMluazlSA8IGppbmtvdWZ1a2Fob3VcIDsKK+WFmuWIqeWFmueVpSA8IHRvdXJpdG91cnlha3VcIDsKK+e5geauluWKmyA8IGhhbnNob2t1cnlva3VcIDsKK+WkluS6pOS6pOa4iSA8IGdhaWtvdWtvdXNob3VcIDsKK+WtpuWjq+mZouizniA8IGdha3VzaGlpbnNob3VcIDsKK+ihjOWLleioiOeUuyA8IGtvdWRvdWtlaWtha3VcIDsKK+WFseacieiyoeeUoyA8IGt5b3V5dXV6YWlzYW5cIDsKK+mAuOWkseWIqeebiiA8IGlzc2hpdHN1cmlla2lcIDsKK+i+suWcsOaUuemdqSA8IG5vdWNoaWthaWtha3VcIDsKK+Wbg+WtkOipniA8IGhheWFzaGlrb3RvYmFcIDsKK+S6pOmAmua4i+a7niA8IGtvdXRzdXVqdXV0YWlcIDsKK+elnue1jOe0sOiDniA8IHNoaW5rZWlzYWlib3VcIDsKK+S6uuW3ruaMhyA8IGhpdG9zYXNoaXl1YmlcIDsKK+S4g+mdoumzpSA8IHNoaWNoaW1lbmNob3VcIDsKK+alreeVjOWbo+S9kyA8IGd5b3VrYWlkYW50YWlcIDsKK+WLp+WWhOaHsuaCqiA8IGthbnplbmNob3Vha3VcIDsKK+WFseeUo+mZo+WWtiA8IGt5b3VzYW5qaW4nJ2VpXCA7CivmrKDluK3oo4HliKQgPCBrZXNzZWtpc2FpYmFuXCA7CivljYrpnanoo4XkuIEgPCBoYW5rYXdhc291dGVpXCA7Civnq7bkuonluILloLQgPCBreW91c291c2hpam91XCA7CivnmbroqIDlipsgPCBoYXRzdWdlbnJ5b2t1XCA7Civnn6XnmoTosqHnlKMgPCBjaGl0ZWtpemFpc2FuXCA7CivljZfljJfllY/poYwgPCBuYW5ib2t1bW9uZGFpXCA7Civou43kuovpoafllY/lm6MgPCBndW5qaWtvbW9uZGFuXCA7Civpq5jlsaTlpKnmsJflm7MgPCBrb3Vzb3V0ZW5raXp1XCA7CivnqoHnhLblpInnlbAgPCB0b3RzdXplbmhlbicnaVwgOwor6YGp5b+c6Zqc5a6zIDwgdGVraW91c2hvdWdhaVwgOwor5Ye65LiW6aCtIDwgc2h1c3NlZ2FzaGlyYVwgOwor5re36LyJ6LKo54mpIDwga29uc2Fpa2Ftb3RzdVwgOwor6ZuG5Lit5YqbIDwgc2h1dWNodXVyeW9rdVwgOwor6ICQ6Zqc5a6z5oCnIDwgdGFpc2hvdWdhaXNlaVwgOwor6L+R6Kaq55u45aemIDwga2luc2hpbnNvdWthblwgOwor5bGI6L6x55qEIDwga3V0c3Vqb2t1dGVraVwgOwor5aSn6YGT5ZWG5Lq6IDwgZGFpZG91c2hvdW5pblwgOwor5LiN5L+h5Lu75qGIIDwgZnVzaGluJyduaW4nJ2FuXCA7Civku67pnaLoiJ7ouI/kvJogPCBrYW1lbmJ1dG91a2FpXCA7Civlrq7lu7fpn7Pmpb0gPCBreXV1dGVpb25nYWt1XCA7CivllYblo7LmlbUgPCBzaG91YmFpZ2F0YWtpXCA7Civlh7rnlJ/lsYogPCBzaHVzc2VpdG9kb2tlXCA7Civnt6nooZ3lnLDluK8gPCBrYW5zaG91Y2hpdGFpXCA7CivooYDmuIXms6jlsIQgPCBrZXNzZWljaHV1c2hhXCA7CivohLHnjYTlm5ogPCBkYXRzdWdva3VzaHV1XCA7CivliqDns5bnsonkubMgPCBrYXRvdWZ1bicnbnl1dVwgOwor5Zyf55Sj6KmxIDwgbWl5YWdlYmFuYXNoaVwgOwor5L+h6LKp5Lya56S+IDwgc2hpbnBhbmdhaXNoYVwgOwor5Y2B5LiA54yu6YeRIDwganV1aWNoaWtlbmtpblwgOwor56aP56WJ5LqL5qWtIDwgZnVrdXNoaWppZ3lvdVwgOwor5pqW6KGj6aO96aOfIDwgZGFuJydpaG91c2hva3VcIDsKK+a6luaxuuWLneaIpiA8IGp1bmtlc3Nob3VzZW5cIDsKK+mHjueUn+WLleeJqSA8IHlhc2VpZG91YnV0c3VcIDsKK+ekvuS8muePvuixoSA8IHNoYWthaWdlbnNob3VcIDsKK+WMl+asp+iruOWbvSA8IGhva3VvdXNob2tva3VcIDsKK+iHqueEtuS8keS8miA8IHNoaXplbmt5dXVrYWlcIDsKK+iJr+S6jOWNg+efsyA8IHJ5b3VuaXNlbnNla2lcIDsKK+aWh+WtpumdkuW5tCA8IGJ1bmdha3VzZWluZW5cIDsKK+eZveijheadnyA8IHNoaXJvc2hvdXpva3VcIDsKK+S9nOalremDqOS8muahiCA8IHNhZ3lvdWJ1a2FpYW5cIDsKK+S/rumBk+iqk+mhmCA8IHNodXVkb3VzZWlnYW5cIDsKK+mjn+ezp+aPtOWKqSA8IHNob2t1cnlvdWVuam9cIDsKK+ihhuitsOS4gOaxuiA8IHNodXVnaWlra2V0c3VcIDsKK+mFuOe0oOWQuOWFpSA8IHNhbnNva3l1dW55dXVcIDsKK+eUn+iHreWdiuS4uyA8IG5hbWFndXNhYm91enVcIDsKK+i7jeS6i+aWveiorSA8IGd1bmppc2hpc2V0c3VcIDsKK+aYoOeUu+ipleirluWutiA8IGVpZ2FoeW91cm9ua2FcIDsKK+mDteS+v+aMr+abvyA8IHl1dWJpbmZ1cmlrYWVcIDsKK+aWuemHneaxuuWumiA8IGhvdXNoaW5rZXR0ZWlcIDsKK+WwsealreaZgumWkyA8IHNodXVneW91amlrYW5cIDsKK+S6uuWPo+aKkeWItiA8IGppbmtvdXlva3VzZWlcIDsKK+i7jeS6uuaBqee1piA8IGd1bmppbicnb25reXV1XCA7Civkurrlt6XmtYHnlKMgPCBqaW5rb3VyeXV1emFuXCA7CivnnJ/liaPli53osqAgPCBzaGlua2Vuc2hvdWJ1XCA7CivpmqDpgIDnlJ/mtLsgPCBpbnRhaXNlaWthdHN1XCA7Civlrojnp5jnvqnli5npgZXlj40gPCBzaHVoaWdpbXVpaGFuXCA7CivohbDlt77nnYAgPCBrb3NoaWdpbmNoYWt1XCA7Civlvbnlk6HloLHphawgPCB5YWt1aW5ob3VzaHV1XCA7CivlibLlvJXmmYLplpMgPCB3YXJpYmlraWppa2FuXCA7Civnmb3okaHokITphZIgPCBzaGlyb2J1ZG91c2h1XCA7CivljYrnhp/ljbUgPCBoYW5qdWt1dGFtYWdvXCA7CivliLbmnI3liLbluL0gPCBzZWlmdWt1c2VpYm91XCA7Civlj6ToibLokrznhLYgPCBrb3Nob2t1c291emVuXCA7CivnlZnnva7pg7Xkvr8gPCB0b21lb2tpeXV1YmluXCA7CivoqIjnlLvlgJLnlKMgPCBrZWlrYWt1dG91c2FuXCA7Civnmobml6Lml6Xpo58gPCBrYWlraW5pc3Nob2t1XCA7CivmsqHluLjorZggPCBib3RzdWpvdXNoaWtpXCA7Civpm4blobXooosgPCBzaHV1amluYnVrdXJvXCA7CivpgKPmiKbpgKPli50gPCByZW5zZW5yZW5zaG91XCA7Civkuqvmpb3kuLvnvqkgPCBreW91cmFrdXNodWdpXCA7CivkuInkuIvlpbQgPCBzYW5zaGl0YXlha2tvXCA7CivluoPlkYrlqpLkvZMgPCBrb3Vrb2t1YmFpdGFpXCA7Civlm73msJHlr6nmn7sgPCBrb2t1bWluc2hpbnNhXCA7CivlgaXogIUgPCBzaGl0YXRha2Ftb25vXCA7Civmt7flo7DlkIjllLEgPCBrb25zZWlnYXNzaG91XCA7CivnpZ7pgZPkv6HogIUgPCBzaGludG91c2hpbmphXCA7Civlrp/ms4HmlL7pgIEgPCBqaWtreW91aG91c291XCA7CivliIblhYnliIbmnpAgPCBidW5rb3VidW5zZWtpXCA7CivnlKPmpa3ntYTlkIggPCBzYW5neW91a3VtaWFpXCA7Civlj5bmjajpgbjmip4gPCBzaHVzaGFzZW50YWt1XCA7CivlnLDpnIflrabogIUgPCBqaXNoaW5nYWt1c2hhXCA7CivlpKfpmKrlpKflraYgPCBvb3Nha2FkYWlnYWt1XCA7CivnrKzkuozmrKHlpKfmiKYgPCBkYWluaWppdGFpc2VuXCA7CivnoJTnqbbmlrnms5UgPCBrZW5reXV1aG91aG91XCA7CivlnLDos6rlraYgPCBjaGlzaGl0c3VnYWt1XCA7Civmlq3pg4rnq7botbAgPCBkYW5rb3VreW91c291XCA7Civmpb3lsYvoqbEgPCBnYWt1eWFiYW5hc2hpXCA7Civmr5TovIPmloflraYgPCBoaWtha3VidW5nYWt1XCA7Civlo6vovrLlt6XllYYgPCBzaGlub3Vrb3VzaG91XCA7Civkub7lnaTkuIDmk7IgPCBrZW5rb24nJ2l0dGVraVwgOwor5YGc5q2i5L+h5Y+3IDwgdGVpc2hpc2hpbmdvdVwgOwor5bu656+J54++5aC0IDwga2VuY2hpa3VnZW5iYVwgOwor5Zu96YCj5aSn5L2/IDwga29rdXJlbnRhaXNoaVwgOwor55yJ55uu56eA6bqXIDwgYmltb2t1c2h1dXJlaVwgOwor5oOF57eS6Zqc5a6zIDwgam91c2hvc2hvdWdhaVwgOwor6Ky56LOA5paw5bm0IDwga2luZ2FzaGluJyduZW5cIDsKK+e3tOe/kuWVj+mhjCA8IHJlbnNodXVtb25kYWlcIDsKK+S6uueVnOeEoeWusyA8IGppbmNoaWt1bXVnYWlcIDsKK+S4iua1geekvuS8miA8IGpvdXJ5dXVzaGFrYWlcIDsKK+W8t+WlqueJqSA8IGdvdWRhdHN1YnV0c3VcIDsKK+mWkeaXpeaciCA8IGthbmppdHN1Z2V0c3VcIDsKK+mZuOa1t+epuui7jSA8IHJpa3VrYWlrdXVndW5cIDsKK+mHjuasoemmrOagueaApyA8IHlhaml1bWFrb25qb3VcIDsKK+ecn+ebuOiqv+afuyA8IHNoaW5zb3VjaG91c2FcIDsKK+ihqOaVrOioquWVjyA8IGh5b3VrZWlob3Vtb25cIDsKK+aZrumAmuaVmeiCsiA8IGZ1dHN1dWt5b3Vpa3VcIDsKK+WFrOawkeaVmeiCsiA8IGtvdW1pbmt5b3Vpa3VcIDsKK+aMkeeZuueahCA8IGNob3VoYXRzdXRla2lcIDsKK+awtOWus+WvvuetliA8IHN1aWdhaXRhaXNha3VcIDsKK+WwhuadpeWxleacmyA8IHNob3VyYWl0ZW5ib3VcIDsKK+Wwi+WVj+iqv+abuCA8IGppbm1vbmNob3VzaG9cIDsKK+edgOW8vui3nemboiA8IGNoYWt1ZGFua3lvcmlcIDsKK+Wkqeecn+eIm+a8qyA8IHRlbnNoaW5yYW5tYW5cIDsKK+WPjeWwhOelnue1jCA8IGhhbnNoYXNoaW5rZWlcIDsKK+mdkuiJsueUs+WRiiA8IGFvaXJvc2hpbmtva3VcIDsKK+mAoOW9oue+juihkyA8IHpvdWtlaWJpanV0c3VcIDsKK+WPsueahOePvuWcqCA8IHNoaXRla2lnZW56YWlcIDsKK+elneelreaXpSA8IHNodWt1c2Fpaml0c3VcIDsKK+WGhemDqOeUn+a0uyA8IG5haWJ1c2Vpa2F0c3VcIDsKK+ani+mAoOiomOi/sCA8IGtvdXpvdWtpanV0c3VcIDsKK+WFseWtmOWFseaghCA8IGt5b3V6b25reW91ZWlcIDsKK+W4r+eKtueWseeWuSA8IHRhaWpvdWhvdXNoaW5cIDsKK+ePvuWun+S4u+e+qSA8IGdlbmppdHN1c2h1Z2lcIDsKK+W5tOOAheats+OAhSA8IG5lbicnbmVuc2Fpc2FpXCA7CivnoJTnqbboq5bmlocgPCBrZW5reXV1cm9uYnVuXCA7CivmnIDntYLnt6jmiJAgPCBzYWlzaHV1aGVuc2VpXCA7CivlsILkv67lrabmoKEgPCBzZW5zaHV1Z2Fra291XCA7CivlvavliLvooZMgPCBjaG91a29rdWp1dHN1XCA7Civlj7PkuK3mi6zlvKcgPCBtaWdpY2h1dWtha2tvXCA7Civkv67pgZPpmaLplbcgPCBzaHV1ZG91aW5jaG91XCA7CivlrrbnnaPnm7jntpogPCBrYXRva3Vzb3V6b2t1XCA7Civlrr/lkb3oq5bogIUgPCBzaHVrdW1laXJvbmphXCA7CivmuKnluqboqr/nr4AgPCBvbmRvY2hvdXNldHN1XCA7Civoi7HkvJroqbHlrabmoKEgPCBlaWthaXdhZ2Fra291XCA7CivoqIDoqp7og73lipsgPCBnZW5nb25vdXJ5b2t1XCA7CivliKnmvaTov73msYIgPCByaWp1bnRzdWlreXV1XCA7CivntbHnjofnkIboq5YgPCB0b3Vzb3RzdXJpcm9uXCA7CivkuK3nq4vlm70gPCBjaHV1cml0c3Vrb2t1XCA7CivllqvnhZnlrqQgPCBraXRzdWVuc2hpdHN1XCA7Civoia/poqjnvo7kv5cgPCByeW91ZnV1Yml6b2t1XCA7Civlm73msJHlrabmoKEgPCBrb2t1bWluZ2Fra291XCA7CivljZjngrrnlJ/mrpYgPCB0YW4nJ2lzZWlzaG9rdVwgOwor5YmN5pa55LiN5rOo5oSPIDwgemVucG91ZnVjaHV1aVwgOwor5LqM5Y2B5pel6bygIDwgaGF0c3VrYW5lenVtaVwgOwor6LK/5piT5Y+O5pSvIDwgYm91ZWtpc2h1dXNoaVwgOwor5Lq65bel5b+D6IeTIDwgamlua291c2hpbnpvdVwgOwor5aSp5rSl5pel5ZejIDwgYW1hdHN1aGl0c3VnaVwgOwor5LiA5Lih5pelIDwgaWNoaXJ5b3VqaXRzdVwgOwor576k6ZuE5Ymy5ougIDwgZ3VuJyd5dXVrYWtreW9cIDsKK+WFiOWkqeaiheavkiA8IHNlbnRlbmJhaWRva3VcIDsKK+S6uuW3peW/g+iCuiA8IGppbmtvdXNoaW5iYWlcIDsKK+WRvOWQuOS4reaeoiA8IGtva3l1dWNodXVzdXVcIDsKK+mnkOeVmemDqOmaiiA8IGNodXVyeXV1YnV0YWlcIDsKK+auuueUn+emgeaWrSA8IHNlc3Nob3VraW5kYW5cIDsKK+eEoemKremBiuiIiCA8IG11c2VuJyd5dXVreW91XCA7CivkuLvluK3lhajmqKkgPCBzaHVzZWtpemVua2VuXCA7CivlnLDmlrnlhazli5nlk6EgPCBjaGlob3Vrb3VtdWluXCA7CivnlLLkuZnkuJnkuIEgPCBrb3VvdHN1aGVpdGVpXCA7Civoo5zmrKDpgbjmjJkgPCBob2tldHN1c2Vua3lvXCA7CivmqYvohJroiJ8gPCBreW91a3lha3VzaHV1XCA7Civlvq7ph4/liIbmnpAgPCBiaXJ5b3VidW5zZWtpXCA7Civoh6rli5Xosqnlo7LmqZ8gPCBqaWRvdWhhbmJhaWtpXCA7CivlnLDln5/ku6PooaggPCBjaGlpa2lkYWloeW91XCA7CivnlLvkuIDkuLvnvqkgPCBrYWt1aXRzdXNodWdpXCA7Civkuqzpg73lpKflraYgPCBreW91dG9kYWlnYWt1XCA7CivmvKzniannn7MgPCB0c3VrZW1vbm9pc2hpXCA7CivlpJblh7rkuK0gPCBnYWlzaHV0c3VjaHV1XCA7CivpiYTmn5PoibIgPCB0ZXRzdXNlbnNob2t1XCA7CivnlJ/kvZPlt6XlraYgPCBzZWl0YWlrb3VnYWt1XCA7Civni6znq4vlv4MgPCBkb2t1cml0c3VzaGluXCA7Civms6HmsqvlgJnoo5wgPCBob3VtYXRzdWtvdWhvXCA7Civnm7jntprosqHnlKMgPCBzb3V6b2t1emFpc2FuXCA7Civlr77miKbmiJDnuL4gPCB0YWlzZW5zZWlzZWtpXCA7Civlm73pmpvnqbrmuK8gPCBrb2t1c2Fpa3V1a291XCA7Civlm73pgKPnt4/kvJogPCBrb2t1cmVuc291a2FpXCA7Civku4rmnIjmnKsgPCBrb25nZXRzdW1hdHN1XCA7CivlsILploDmlZnogrIgPCBzZW5tb25reW91aWt1XCA7Civllrbmpa3loLHlkYogPCBlaWd5b3Vob3Vrb2t1XCA7CivooYDmtrLmpJzmn7sgPCBrZXRzdWVraWtlbnNhXCA7CivpnanmlrDkuLvnvqkgPCBrYWt1c2hpbnNodWdpXCA7CivpnLLlh7rmmYLplpMgPCByb3NodXRzdWppa2FuXCA7Civpm7vno4Hoqr/nkIblmaggPCBkZW5qaWNob3VyaWtpXCA7CivmipXnpajnlKjntJkgPCB0b3VoeW91eW91c2hpXCA7Civlrp/nianlpKcgPCBqaXRzdWJ1dHN1ZGFpXCA7CivolqznlKjnn7PpubggPCB5YWt1eW91c2Vra2VuXCA7CivljZjni6zooYzli5UgPCB0YW5kb2t1a291ZG91XCA7CivoiKrnqbroh6rooZvpmoogPCBrb3VrdXVqaWVpdGFpXCA7CivlpKvlqabnlJ/mtLsgPCBmdXVmdXNlaWthdHN1XCA7CivogonkvZPplqLkv4IgPCBuaWt1dGFpa2Fua2VpXCA7Civou43kuovorablr58gPCBndW5qaWtlaXNhdHN1XCA7CivmlrDlqZrml4XooYwgPCBzaGlua29ucnlva291XCA7Civpmb3mgKflj43lv5wgPCB5b3VzZWloYW4nJ25vdVwgOwor6Lu45beu5b+c5YqbIDwgamlrdXNhb3VyeW9rdVwgOwor5Lq66aGe5a2m6ICFIDwgamlucnVpZ2FrdXNoYVwgOwor5ou+5b6X54mpIDwgc2h1dXRva3VidXRzdVwgOwor5q2m5aOr5rCX6LOqIDwgYnVzaGlraXNoaXRzdVwgOwor56ys5LiA5Lq66ICFIDwgZGFpaWNoaW5pbnNoYVwgOwor5YCJ5pW35paZIDwga3VyYXNoaWtpcnlvdVwgOwor6LOH5paZ5a6kIDwgc2hpcnlvdXNoaXRzdVwgOwor5qmf6Zai5oqV6LOH5a62IDwga2lrYW50b3VzaGlrYVwgOwor5a625bqt55Sf5rS7IDwga2F0ZWlzZWlrYXRzdVwgOwor5Y2x6Zm65Lq654mpIDwga2lrZW5qaW5idXRzdVwgOwor5aSn5a2m5pWZ5o6IIDwgZGFpZ2FrdWt5b3VqdVwgOwor5YmN6YCy6YGL5YuVIDwgemVuc2hpbicndW5kb3VcIDsKK+a0u+WLleaIkOaenCA8IGthdHN1ZG91c2Vpa2FcIDsKK+e3j+WQiOWPjuaUryA8IHNvdWdvdXNodXVzaGlcIDsKK+iyt+eJqeiiiyA8IGthaW1vbm9idWt1cm9cIDsKK+WQuOWPjuWKmyA8IGt5dXVzaHV1cnlva3VcIDsKK+WQhOmnheWBnOi7iiA8IGtha3Vla2l0ZWlzaGFcIDsKK+eLrOeri+WbvSA8IGRva3VyaXRzdWtva3VcIDsKK+inpuWqkuS9nOeUqCA8IHNob2t1YmFpc2F5b3VcIDsKK+enkeWtpuaKgOihkyA8IGthZ2FrdWdpanV0c3VcIDsKK+WNsOWIt+eUqOe0mSA8IGluc2F0c3V5b3VzaGlcIDsKK+Wbnui3r+mBruaWreapnyA8IGthaXJvc2hhZGFua2lcIDsKK+S6uueahOiovOaLoCA8IGppbnRla2lzaG91a29cIDsKK+aKl+itsOa0u+WLlSA8IGtvdWdpa2F0c3Vkb3VcIDsKK+WFiOWPluW+l+eCuSA8IHNlbnNodXRva3V0ZW5cIDsKK+ahnOelrSA8IHNha3VyYW1hdHN1cmlcIDsKK+ikh+WQiOS8gealrSA8IGZ1a3Vnb3VraWd5b3VcIDsKK+eEoeW3ruWIpee0miA8IG11c2FiZXRzdWt5dXVcIDsKK+WkmuWbveexjei7jSA8IHRha29rdXNla2lndW5cIDsKK+ertuS6ieS+oeagvCA8IGt5b3Vzb3VrYWtha3VcIDsKK+ekvuS8muS6uuaeoCA8IHNoYWthaWppbndha3VcIDsKK+WVhualreWcsOWMuiA8IHNob3VneW91Y2hpa3VcIDsKK+ihqOWxpOani+mAoCA8IGh5b3Vzb3Vrb3V6b3VcIDsKK+eyvuelnuihm+eUnyA8IHNlaXNoaW4nJ2Vpc2VpXCA7CivooYDlsL/nl4cgPCBrZXRzdW55b3VzaG91XCA7CivoiKrnqbrlhpnnnJ8gPCBrb3VrdXVzaGFzaGluXCA7CivkuIrmmIfmsJfmtYEgPCBqb3VzaG91a2lyeXV1XCA7CivljJflpKfopb/mtIsgPCBraXRhdGFpc2VpeW91XCA7CivooYzmlL/mjIflsI4gPCBneW91c2Vpc2hpZG91XCA7Civlrprnva7mvIHmpa0gPCB0ZWljaGlneW9neW91XCA7CivmnIDpq5jntJrlk4EgPCBzYWlrb3VreXV1aGluXCA7CivlvavliLvniakgPCBjaG91a29rdWJ1dHN1XCA7Civlh7rpoK3lkb3ku6QgPCBzaHV0dG91bWVpcmVpXCA7CivloKrlv43ooosgPCBrYW4nJ25pbmJ1a3Vyb1wgOwor5Ye66KGA6YGO5aSaIDwgc2h1a2tldHN1a2F0YVwgOwor6Zu75a2Q5Ye654mIIDwgZGVuc2hpc2h1cHBhblwgOwor56S+6ZW35a6kIDwgc2hhY2hvdXNoaXRzdVwgOwor6Imy57Sg57Sw6IOeIDwgc2hpa2lzb3NhaWJvdVwgOwor6IGW6Lev5Yqg55eF6ZmiIDwgc2Vpcm9rYWJ5b3VpblwgOwor6Iqx5auB6KGj6KOzIDwgaGFuYXlvbWVpc2hvdVwgOwor5bCP5Y+j54++6YeRIDwga29ndWNoaWdlbmtpblwgOwor5YiG6Zui5Li7576p6ICFIDwgYnVucmlzaHVnaXNoYVwgOwor5Y2a5a2m5aSa5omNIDwgaGFrdWdha3V0YXNhaVwgOwor5aSW5qeY5aSn5ZCNIDwgdG96YW1hZGFpbXlvdVwgOwor5Zu95rCR5Li75qipIDwga29rdW1pbnNodWtlblwgOwor5YWs6YeR5qiq6aCYIDwga291a2luJydvdXJ5b3VcIDsKK+aGsuazleiomOW/teaXpSA8IGtlbnBvdWtpbmVuYmlcIDsKK+i/kemDiui+sualrSA8IGtpbmtvdW5vdWd5b3VcIDsKK+WFqOWbveWkp+S8miA8IHplbmtva3V0YWlrYWlcIDsKK+WQn+mBiuipqeS6uiA8IGdpbicneXV1c2hpamluXCA7CivlhrfmsLTmkanmk6YgPCByZWlzdWltYXNhdHN1XCA7Civmm7LlrabpmL/kuJYgPCBreW9rdWdha3Vhc2VpXCA7CivkvqHmoLznq7bkuokgPCBrYWtha3VreW91c291XCA7CivliqDmuJvmirXmipflmaggPCBrYWdlbnRlaWtvdWtpXCA7CivnpoHmlq3nl4fnirYgPCBraW5kYW5zaG91am91XCA7Civnq5zmlJjomY7mkI8gPCByeXV1am91a29oYWt1XCA7CivmraPlkbPph43ph48gPCBzaG91bWlqdXVyeW91XCA7CivlhazoqLzlvbnloLQgPCBrb3VzaG91eWFrdWJhXCA7CivmuIXmtrzpo7LmlpkgPCBzZWlyeW91aW5yeW91XCA7CivkuLzli5jlrpogPCBkb25idXJpa2Fuam91XCA7Civmr5vnrqHnj77osaEgPCBtb3VrYW5nZW5zaG91XCA7CivkvZzmiKblnLDln58gPCBzYWt1c2VuY2hpaWtpXCA7CivnjonlrZDkuLwgPCB0YW1hZ29kb25idXJpXCA7Civlh7rlvLXml4XosrsgPCBzaHV0Y2hvdXJ5b2hpXCA7CivmlL7pgIHnlarntYQgPCBob3Vzb3ViYW5ndW1pXCA7CivnhKHlhY3oqLHpgYvou6IgPCBtdW1lbmt5b3VudGVuXCA7CivnuK7liLfniYggPCBzaHVrdXNhdHN1YmFuXCA7CivmsLjkuYXno4Hnn7MgPCBlaWt5dXVqaXNoYWt1XCA7Civlo7Lmjpvli5jlrpogPCB1cmlrYWtla2Fuam91XCA7Civku4rml6XnmoQgPCBrb24nJ25pY2hpdGVraVwgOwor6ZaT5a6u5rW35bOhIDwgbWFtaXlha2Fpa3lvdVwgOwor542E5Lit5pel6KiYIDwgZ29rdWNodXVuaWtraVwgOwor5rKI5oCd6buZ6ICDIDwgY2hpbnNoaW1va2tvdVwgOwor6LaF5Zu95a6255qEIDwgY2hvdWtva2thdGVraVwgOwor5rSe5a+f5YqbIDwgZG91c2F0c3VyeW9rdVwgOwor6Ziy54Gr5bu656+JIDwgYm91a2FrZW5jaGlrdVwgOwor6YeR6J6N5biC5aC0IDwga2luJyd5dXVzaGlqb3VcIDsKK+mbhuWbo+W/g+eQhiA8IHNodXVkYW5zaGlucmlcIDsKK+WFpeekvuippumokyA8IG55dXVzaGFzaGlrZW5cIDsKK+mBuOaKnuWApOe+pCA8IHNlbnRha3VjaGlndW5cIDsKK+S4jeWPr+imluWFiee3miA8IGZ1a2FzaGlrb3VzZW5cIDsKK+eiuueOh+iqpOW3riA8IGtha3VyaXRzdWdvc2FcIDsKK+iyv+aYk+iHqueUseWMliA8IGJvdWVraWppeXV1a2FcIDsKK+esrOWbm+majue0miA8IGRhaXlvbmthaWt5dXVcIDsKK+epuuawl+WItuWLleapnyA8IGt1dWtpc2VpZG91a2lcIDsKK+mAjemBpeWtpua0viA8IHNob3V5b3VnYWt1aGFcIDsKK+m7kueCueWRqOacnyA8IGtva3V0ZW5zaHV1a2lcIDsKK+e+juihk+WtpuagoSA8IGJpanV0c3VnYWtrb3VcIDsKK+WNiuatu+WNiueUnyA8IGhhbnNoaWhhbnNob3VcIDsKK+W/q+mAn+mbu+i7iiA8IGthaXNva3VkZW5zaGFcIDsKK+WNl+WMl+aIpuS6iSA8IG5hbmJva3VzZW5zb3VcIDsKK+Wwj+WFkOWWmOaBryA8IHNob3VuaXplbnNva3VcIDsKK+WGheaUv+W5sua4iSA8IG5haXNlaWthbnNob3VcIDsKK+WFrOW5s+aUv+etliA8IGtvdWhlaXNlaXNha3VcIDsKK+W3pealreimj+agvCA8IGtvdWd5b3VraWtha3VcIDsKK+Wbm+inkuWbm+mdoiA8IHNoaWtha3VzaGltZW5cIDsKK+WwkeW5tOWwkeWlsyA8IHNob3VuZW5zaG91am9cIDsKK+WGjeiyqealreiAhSA8IHNhaWhhbmd5b3VzaGFcIDsKK+i2hemrmOmAn+W6piA8IGNob3Vrb3Vzb2t1ZG9cIDsKK+iqv+afu+WgseWRiiA8IGNob3VzYWhvdWtva3VcIDsKK+a1t+mbo+WvqeWIpCA8IGthaW5hbnNoaW5wYW5cIDsKK+eQhuWtpuS/ruWjqyA8IHJpZ2FrdXNodXVzaGlcIDsKK+WklueahOagueaLoCA8IGdhaXRla2lrb25reW9cIDsKK+advumjn+iZqyA8IG1hdHN1a3VpbXVzaGlcIDsKK+eUn+WRveW3peWtpiA8IHNlaW1laWtvdWdha3VcIDsKK+WkqeS9keelnuWKqSA8IHRlbicneXV1c2hpbmpvXCA7CivlpJblm73ml4XooYwgPCBnYWlrb2t1cnlva291XCA7CivlhbHlkIzmsLTmoJMgPCBreW91ZG91c3Vpc2VuXCA7Civmi6HlpKflnYfooaEgPCBrYWt1ZGFpa2lua291XCA7CivoiovolJPlvI8gPCBpbW9kenVydXNoaWtpXCA7CivkupTljYHmrannmb7mrakgPCBnb2p1cHBvaHlhcHBvXCA7Civos6rph4/mlbAgPCBzaGl0c3VyeW91c3V1XCA7Civlh7Hml4vlsIbou40gPCBnYWlzZW5zaG91Z3VuXCA7Civljp/nkIbkuLvnvqnogIUgPCBnZW5yaXNodWdpc2hhXCA7Civpm4bnqY3lm57ot68gPCBzaHV1c2VraWthaXJvXCA7Civoo77ph47nlKPmpa0gPCBzdXNvbm9zYW5neW91XCA7Civpjq7prYLluLDnpZ4gPCBjaGlua29ua2lzaGluXCA7CivlkIjmoLzogIXlkI0gPCBnb3VrYWt1c2hhbWVpXCA7CivmnInos4fmoLzogIUgPCB5dXVzaGlrYWt1c2hhXCA7CivljJblrablj43lv5wgPCBrYWdha3VoYW4nJ25vdVwgOwor6ZyA6KaB5L6b57WmIDwganV5b3VreW91a3l1dVwgOwor5Yil6YWN6YGUIDwgYmV0c3VoYWl0YXRzdVwgOwor5Y+s5Zaa5Luk54q2IDwgc2hvdWthbnJlaWpvdVwgOwor6Kmm6aiT5YuJ5by3IDwgc2hpa2VuYmVua3lvdVwgOwor5rip5a6k5Yq55p6cIDwgb25zaGl0c3Vrb3VrYVwgOwor5LuK5pel5qeYIDwga29uJyduaWNoaXNhbWFcIDsKK+aciemJpOadoeiZqyA8IHl1dWtvdWpvdWNodXVcIDsKK+WGheeahOagueaLoCA8IG5haXRla2lrb25reW9cIDsKK+i/kea1t+a8gealrSA8IGtpbmthaWd5b2d5b3VcIDsKK+WGoOWkp+S8miA8IGthbm11cml0YWlrYWlcIDsKK+axuuaIpuaKleelqCA8IGtlc3NlbnRvdWh5b3VcIDsKK+WFseWQjOekvuS8miA8IGt5b3Vkb3VzaGFrYWlcIDsKK+i/veikh+absiA8IHRzdWlmdWt1a3lva3VcIDsKK+WUkOiNieaooeanmCA8IGthcmFrdXNhbW95b3VcIDsKK+WMheearuWIh+aWrSA8IGhvdWhpc2V0c3VkYW5cIDsKK+Wumuacn+WPluW8lSA8IHRlaWtpdG9yaWhpa2lcIDsKK+S5vueHpea0l+a/ryA8IGthbnNvdXNlbnRha3VcIDsKK+mbhuWQiOWQjeipniA8IHNodXVnb3VtZWlzaGlcIDsKK+Wwj+Wei+aWsOiBniA8IGtvZ2F0YXNoaW5idW5cIDsKK+WkmuWFg+aWh+WMluirliA8IHRhZ2VuYnVua2Fyb25cIDsKK+itsua4oeaAp+mgkOmHkSA8IGpvdXRvc2VpeW9raW5cIDsKK+WMu+eZguaWveiorSA8IGlyeW91c2hpc2V0c3VcIDsKK+WLleeJqeayueiEgiA8IGRvdWJ1dHN1eXVzaGlcIDsKK+WPjemdouaVmeW4qyA8IGhhbm1lbmt5b3VzaGlcIDsKK+e1hOWQiOmgrSA8IGt1bWlhaWdhc2hpcmFcIDsKK+aXpeW4uOS8muipsSA8IG5pY2hpam91a2Fpd2FcIDsKK+i8uOWFpealreiAhSA8IHl1bnl1dWd5b3VzaGFcIDsKK+aomea6luS+oeagvCA8IGh5b3VqdW5rYWtha3VcIDsKK+S4jeWmiuaJi+ihkyA8IGZ1bmluc2h1anV0c3VcIDsKK+WxseeMq+S6ieitsCA8IHlhbWFuZWtvc291Z2lcIDsKK+WHuuS4lumWk+eahCA8IHNodXNzZWtlbnRla2lcIDsKK+W5tOS4reihjOS6iyA8IG5lbmNodXVneW91amlcIDsKK+mOjOWAieaZguS7oyA8IGthbWFrdXJhamlkYWlcIDsKK+aVo+atqeaXgSA8IHNhbnBva2F0YWdhdGFcIDsKK+S+m+iol+eJqSA8IGt5b3V0YWt1YnV0c3VcIDsKK+eCjueXh+eXheW3oyA8IGVuc2hvdWJ5b3Vzb3VcIDsKK+azqOaEj+S6uueJqSA8IGNodXVpamluYnV0c3VcIDsKK+WbveWutuS4u+e+qeiAhSA8IGtva2thc2h1Z2lzaGFcIDsKK+aXpea0quimquWWhCA8IG5pa2tvdXNoaW56ZW5cIDsKK+i/veWKoOazqOaWhyA8IHRzdWlrYWNodXVtb25cIDsKK+ethuWGmeeVpeWtlyA8IGhpc3NoYXJ5YWt1amlcIDsKK+eMruihgOmBi+WLlSA8IGtlbmtldHN1dW5kb3VcIDsKK+iInuWPsOiKuOihkyA8IGJ1dGFpZ2VpanV0c3VcIDsKK+WHuumhmOS6uiA8IHNodXRzdWdhbicnbmluXCA7CivoqabpqJPnm6PnnaMgPCBzaGlrZW5rYW50b2t1XCA7CivmkqTpoK3lvrnlsL4gPCB0ZXR0b3V0ZXRzdWJpXCA7Civnlr7poqjov4Xpm7cgPCBzaGlwcHV1amlucmFpXCA7CivluILloLTnkrDlooMgPCBzaGlqb3VrYW5reW91XCA7Civljp/miJDlsqnnn7MgPCBnZW5zZWlnYW5zZWtpXCA7CivliY3lpKfntbHpoJggPCB6ZW5kYWl0b3VyeW91XCA7CivlvLfliLbpgIHpgoQgPCBreW91c2Vpc291a2FuXCA7CivlkIzmpa3ntYTlkIggPCBkb3VneW91a3VtaWFpXCA7Civpm7vmsJfliYPliIAgPCBkZW5raWthbWlzb3JpXCA7Civkuovli5nlsYDplbcgPCBqaW11a3lva3VjaG91XCA7CivntYzmuIjmlLnpnakgPCBrZWl6YWlrYWlrYWt1XCA7Civmsr/lsrjorablgpnpmoogPCBlbmdhbmtlaWJpdGFpXCA7CivmsJHkv5foirjog70gPCBtaW56b2t1Z2Vpbm91XCA7CivnspjnnYDlipsgPCBuZW5jaGFrdXJ5b2t1XCA7CivlgIvkurrkuLvnvqnogIUgPCBrb2ppbnNodWdpc2hhXCA7Civlj47nqavkuojmg7MgPCBzaHV1a2FrdXlvc291XCA7CivloanovpvonLvom4kgPCBzaGlva2FyYXRvbmJvXCA7Civlrr/ms4rmlpkgPCBzaHVrdWhha3VyeW91XCA7CivntIbkvZnmm7LmipggPCB1eW9reW9rdXNldHN1XCA7CivmpbXotoXnn63ms6IgPCBnb2t1Y2hvdXRhbnBhXCA7CivkubPnqoQgPCBjaGljaGlzaGlib3JpXCA7CivkuLvmqKnkvrXniq8gPCBzaHVrZW5zaGlucGFuXCA7CivkuK3mgKfmtJfliaQgPCBjaHV1c2Vpc2VuemFpXCA7CivosqjnianliJfou4ogPCBrYW1vdHN1cmVzc2hhXCA7CivooYDmuIXnmYLms5UgPCBrZXNzZWlyeW91aG91XCA7CivmlrDmoYjnibnoqLEgPCBzaGluJydhbnRva2t5b1wgOwor5piv5piv6Z2e6Z2e5Li7576pIDwgemV6ZWhpaGlzaHVnaVwgOwor5q275b6M56Gs55u0IDwgc2hpZ29rb3VjaG9rdVwgOwor5ZSv54mp5Li7576pIDwgeXVpYnV0c3VzaHVnaVwgOwor5pel6Zyy5oim5LqJIDwgbmljaGlyb3NlbnNvdVwgOwor5ZCM55uf5p2h57SEIDwgZG91bWVpam91eWFrdVwgOwor5LiA5pSr5Y2D6YeRIDwgaWtrYWtrdXNlbmtpblwgOwor6ZqO57Sa6ZeY5LqJIDwga2Fpa3l1dXRvdXNvdVwgOwor54ax56Gs5YyW5YmkIDwgbmV0c3Vrb3VrYXphaVwgOwor5bCC55So5Zue57eaIDwgc2VuJyd5b3VrYWlzZW5cIDsKK+S6pOaPm+WtpueUnyA8IGtvdWthbmdha3VzZWlcIDsKK+WLlee3muioiOeUuyA8IGRvdXNlbmtlaWtha3VcIDsKK+WkluS6pOWnlOWToemVtyA8IGdhaWtvdWlpbmNob3VcIDsKK+awkeaUv+mVt+WumCA8IG1pbnNlaWNob3VrYW5cIDsKK+WIpOaWreS4reatoiA8IGhhbmRhbmNodXVzaGlcIDsKK+aeneWeguahnCA8IHNoaWRhcmV6YWt1cmFcIDsKK+WPpOS7o+e0qyA8IGtvZGFpbXVyYXNha2lcIDsKK+WxgOaJgOWIhuWykCA8IGt5b2t1c2hvYnVua2lcIDsKK+mAmuW4uOWbveS8miA8IHRzdXVqb3Vrb2trYWlcIDsKK+aeneWeguafsyA8IHNoaWRhcmV5YW5hZ2lcIDsKK+a3see3keiJsiA8IGZ1a2FtaWRvcmlpcm9cIDsKK+aVsOWApOino+aekCA8IHN1dWNoaWthaXNla2lcIDsKK+eEoeaKteaKl+S4u+e+qSA8IG11dGVpa291c2h1Z2lcIDsKK+i7jeWCmeaLoeW8tSA8IGd1bmJpa2FrdWNob3VcIDsKK+mBqeiAheeUn+WtmCA8IHRla2lzaGFzZWl6b25cIDsKK+eyvuelnumRkeWumiA8IHNlaXNoaW5rYW50ZWlcIDsKK+epjembqumHjyA8IHNla2lzZXRzdXJ5b3VcIDsKK+mJhOmBk+i8uOmAgSA8IHRldHN1ZG91eXVzb3VcIDsKK+eglOeptuWupCA8IGtlbmt5dXVzaGl0c3VcIDsKK+esrOS4iemajue0miA8IGRhaXNhbmthaWt5dXVcIDsKK+WNg+aFi+S4h+anmCA8IHNlbnRhaWJhbicneW91XCA7Civpm7vlrZDlt6XlraYgPCBkZW5zaGlrb3VnYWt1XCA7CivntYzmuIjnirbms4EgPCBrZWl6YWlqb3VreW91XCA7CivnpL7kvJrmlZnogrIgPCBzaGFrYWlreW91aWt1XCA7CivovrLogJXmsJHml48gPCBub3Vrb3VtaW56b2t1XCA7CivlhajouqvlhajpnIogPCB6ZW5zaGluemVucmVpXCA7Civlhaznp7Dos4fmnKwgPCBrb3VzaG91c2hpaG9uXCA7CivlpKflrZfniYflsbEgPCBvb2F6YWthdGF5YW1hXCA7CivolqzluKvlpoLmnaUgPCB5YWt1c2hpbnlvcmFpXCA7CivmlL7lsITog73msZrmn5MgPCBob3VzaGFub3Vvc2VuXCA7Civpm7vmsJfoh6rli5Xou4ogPCBkZW5raWppZG91c2hhXCA7Civos6LmiYAgPCBrYXNoaWtvZG9rb3JvXCA7CivlkIznm5/kvJHmoKEgPCBkb3VtZWlreXV1a291XCA7Civlt6XkvZzlrqQgPCBrb3VzYWt1c2hpdHN1XCA7CivkuK3lpK7oqIjnlLsgPCBjaHV1b3VrZWlrYWt1XCA7CivkuK3lpK7pm4bmqKkgPCBjaHV1b3VzaHV1a2VuXCA7CivkuInop5Losr/mmJMgPCBzYW5rYWt1Ym91ZWtpXCA7CivliIbmnpDljJblraYgPCBidW5zZWtpa2FnYWt1XCA7CivlsJHlo67lo6vlrpggPCBzaG91c291c2hpa2FuXCA7Civms5XnmoTmoLnmi6AgPCBob3V0ZWtpa29ua3lvXCA7CivmrrrlrrPkuovku7YgPCBzYXRzdWdhaWppa2VuXCA7CivpnaLprYIgPCB0c3VyYWRhbWFzaGlpXCA7Civoh6rnhLblopflj44gPCBzaGl6ZW56b3VzaHV1XCA7Civoia/mgKfohavnmI0gPCByeW91c2Vpc2h1eW91XCA7CivkvZzliofooZMgPCBzYWt1Z2VraWp1dHN1XCA7Civnn63ml6XmnIggPCB0YW5qaXRzdWdldHN1XCA7Civou4rmjozlrqQgPCBzaGFzaG91c2hpdHN1XCA7CivpgJrli6Tpm7vou4ogPCB0c3V1a2luZGVuc2hhXCA7CivlsJHlubTniq/nvaogPCBzaG91bmVuaGFuemFpXCA7CivmsLTphbjljJbniakgPCBzdWlzYW5rYWJ1dHN1XCA7CivopqrmiJrnn6Xlt7EgPCBzaGluc2VraWNoaWtpXCA7CivljZjni6zmsbrnrpcgPCB0YW5kb2t1a2Vzc2FuXCA7Civlm73pmpvmg4Xli6IgPCBrb2t1c2Fpam91c2VpXCA7CivooZfpoK3mvJToqqwgPCBnYWl0b3VlbnpldHN1XCA7CivmrKPllpzpm4Douo0gPCBraW5raWpha3V5YWt1XCA7Civlk4HnqK7mlLnoia8gPCBoaW5zaHVrYWlyeW91XCA7Civlhaznp7DppqzlipsgPCBrb3VzaG91YmFyaWtpXCA7Civlm5vlha3mmYLkuK0gPCBzaGlyb2t1amljaHV1XCA7CivkuqTpgJrpga7mlq0gPCBrb3V0c3V1c2hhZGFuXCA7CivlpKflrabntJvkuokgPCBkYWlnYWt1ZnVuc291XCA7CivosqHmlL/lj47mlK8gPCB6YWlzZWlzaHV1c2hpXCA7CivooYblj4LkuKHpmaIgPCBzaHV1c2FucnlvdWluXCA7CivogJDngavlu7rnr4kgPCB0YWlrYWtlbmNoaWt1XCA7CivoppblipvmpJzmn7sgPCBzaGlyeW9rdWtlbnNhXCA7CivlsI/liIDntLDlt6UgPCBrb2dhdGFuYXphaWt1XCA7Civos6rnlpHlv5znrZQgPCBzaGl0c3VnaW91dG91XCA7CivmjZzmn7vlvZPlsYAgPCBzb3VzYXRvdWt5b2t1XCA7CivoqLrlr5/mlpkgPCBzaGluc2F0c3VyeW91XCA7Civkv7jntabooosgPCBob3VreXV1YnVrdXJvXCA7CivnhafokYnni4LoqIAgPCB0ZXJpaGFreW91Z2VuXCA7Civlh7rlvoHou43kurogPCBzaHVzc2VpZ3VuamluXCA7CivlhKrnlJ/kv53orbfms5UgPCB5dXVzZWlob2dvaG91XCA7CivmtojlpLHngrkgPCBzaG91c2hpdHN1dGVuXCA7CivmlL7lsITog73pm7IgPCBob3VzaGFub3VndW1vXCA7CivnpL7kvJrmlL/nrZYgPCBzaGFrYWlzZWlzYWt1XCA7Civpm7vmpbXpm7vkvY0gPCBkZW5reW9rdWRlbicnaVwgOwor5Lq65bel6YCP5p6QIDwgamlua291dG91c2VraVwgOwor6KSH5ZCI5aqS5L2TIDwgZnVrdWdvdWJhaXRhaVwgOwor5L2P5rCR5oqV56WoIDwganV1bWludG91aHlvdVwgOwor5bel5qWt5Zyw5bivIDwga291Z3lvdWNoaXRhaVwgOwor5ZG85ZC45Zuw6ZujIDwga29reXV1a29uJyduYW5cIDsKK+iqreabuOWupCA8IGRva3VzaG9zaGl0c3VcIDsKK+mkiuitt+aWveiorSA8IHlvdWdvc2hpc2V0c3VcIDsKK+i8uOWHuuimj+WItiA8IHl1c2h1dHN1a2lzZWlcIDsKK+WcsOaWueS6i+WLmeaJgCA8IGNoaWhvdWppbXVzaG9cIDsKK+aIpuWKm+e1hOaIkCA8IHNlbnJ5b2t1c29zZWlcIDsKK+e1seS4gOimi+inoyA8IHRvdWl0c3VrZW5rYWlcIDsKK+WCrOecoOeZguazlSA8IHNhaW1pbnJ5b3Vob3VcIDsKK+W3pealreijveWTgSA8IGtvdWd5b3VzZWloaW5cIDsKK+W9ueS6uuagueaApyA8IHlha3VuaW5rb25qb3VcIDsKK+eLrOaIv+ebo+emgSA8IGRva3Vib3VrYW5raW5cIDsKK+Wuv+aziuWFiCA8IHNodWt1aGFrdXNha2lcIDsKK+WwjumAmuaKteaKlyA8IGRvdXRzdXV0ZWlrb3VcIDsKK+WNlOiqv+S4u+e+qSA8IGt5b3VjaG91c2h1Z2lcIDsKK+S8muioiOWgseWRiiA8IGthaWtlaWhvdWtva3VcIDsKK+WPsOa5vua1t+WzoSA8IHRhaXdhbmthaWt5b3VcIDsKK+aXpea4heaIpuS6iSA8IG5pc3NoaW5zZW5zb3VcIDsKK+Wuo+iogOeZuuihqCA8IHNlbmdlbmhhcHB5b3VcIDsKK+WkqeS9k+WGmeecnyA8IHRlbnRhaXNoYXNoaW5cIDsKK+i8uOWFpeiHqueUseWMliA8IHl1bnl1dWppeXV1a2FcIDsKK+mHjemHj+WZuOaVsCA8IGp1dXJ5b3V0b25zdXVcIDsKK+itmOWIpeWtkCA8IHNoaWtpYmV0c3VzaGlcIDsKK+WNl+WNiueQgyA8IG1pbmFtaWhhbmt5dXVcIDsKK+aYjumPoeatouawtCA8IG1laWt5b3VzaGlzdWlcIDsKK+W5tOmWk+ioiOeUuyA8IG5lbmthbmtlaWtha3VcIDsKK+eEoeWIqeaBr+WCteWLmSA8IG11cmlzb2t1c2FpbXVcIDsKK+WPo+i/sOethuiomCA8IGtvdWp1dHN1aGlra2lcIDsKK+Wbvemam+mAmuiyqCA8IGtva3VzYWl0c3V1a2FcIDsKK+iBt+WToeWupCA8IHNob2t1aW5zaGl0c3VcIDsKK+ehq+m7hOmFuOWMlueJqSA8IGlvdXNhbmthYnV0c3VcIDsKK+WBpeW6t+iouuaWrSA8IGtlbmtvdXNoaW5kYW5cIDsKK+ahg+WxseaZguS7oyA8IG1vbW95YW1hamlkYWlcIDsKK+iBt+WgtOe1kOWpmiA8IHNob2t1YmFrZWtrb25cIDsKK+eSsOWig+WVj+mhjCA8IGthbmt5b3Vtb25kYWlcIDsKK+iovOS6uuWWmuWVjyA8IHNob3VuaW5rYW5tb25cIDsKK+S/oeeOhOiiiyA8IHNoaW5nZW5idWt1cm9cIDsKK+aUu+aSg+aWueWQkSA8IGtvdWdla2lob3Vrb3VcIDsKK+ertuS6ieWjsuiytyA8IGt5b3Vzb3ViYWliYWlcIDsKK+iRl+S9nOaoqeazlSA8IGNob3Nha3VrZW5ob3VcIDsKK+Wbvemam+ekvuS8miA8IGtva3VzYWlzaGFrYWlcIDsKK+aWsOWItumrmOagoSA8IHNoaW5zZWlrb3Vrb3VcIDsKK+WvhOeUn+iZq+eXhyA8IGtpc2VpY2h1dXNob3VcIDsKK+S4reaKmOW4veWtkCA8IG5ha2FvcmVib3VzaGlcIDsKK+WFrOmWi+e3tOe/kiA8IGtvdWthaXJlbnNodXVcIDsKK+e1jOa4iOaUv+etliA8IGtlaXphaXNlaXNha3VcIDsKK+WQiOaIkOWGmeecnyA8IGdvdXNlaXNoYXNoaW5cIDsKK+aWsOmAsuS9nOWutiA8IHNoaW5zaGluc2Fra2FcIDsKK+aBi+eJqeiqniA8IGtvaW1vbm9nYXRhcmlcIDsKK+mFuOe0oOS+m+e1piA8IHNhbnNva3lvdWt5dXVcIDsKK+S6pOmAmuWFrOekviA8IGtvdXRzdXVrb3VzaGFcIDsKK+a0u+auuuiHquWcqCA8IGthc3NhdHN1aml6YWlcIDsKK+mbu+mAgeWGmeecnyA8IGRlbnNvdXNoYXNoaW5cIDsKK+WFqOefpeWFqOiDvSA8IHplbmNoaXplbicnbm91XCA7CivkuIDnspLnqK4gPCBoaXRvdHN1YnVkYW5lXCA7Civlm73li6Loqr/mn7sgPCBrb2t1c2VpY2hvdXNhXCA7CivmtYHpgJrmqZ/mp4sgPCByeXV1dHN1dWtpa291XCA7CivlhbXlmajovLjlh7ogPCBoZWlraXl1c2h1dHN1XCA7CivlpKnnmofltIfmi50gPCB0ZW4nJ25vdXN1dWhhaVwgOwor5L+d6Ki85Lq66KaBIDwgaG9zaG91bmluJyd5b3VcIDsKK+a1rumBiueUn+eJqSA8IGZ1eXV1c2VpYnV0c3VcIDsKK+e1gui6q+S/nemZuiA8IHNodXVzaGluaG9rZW5cIDsKK+e3keafseefsyA8IHJ5b2t1Y2h1dXNla2lcIDsKK+aHuOiznuirluaWhyA8IGtlbnNob3Vyb25idW5cIDsKK+mBk+i3r+aOg+mZpOS6uiA8IGRvdXJvc291amlqaW5cIDsKK+W4guWgtOaUuemdqSA8IHNoaWpvdWthaWtha3VcIDsKK+mbu+WKm+mcgOimgSA8IGRlbnJ5b2t1anV5b3VcIDsKK+iHqOW6iuWwi+WVjyA8IHJpbnNob3VqaW5tb25cIDsKK+mZsOaltee3mueuoSA8IGlua3lva3VzZW5rYW5cIDsKK+aXi+WFieWIhuaekCA8IHNlbmtvdWJ1bnNla2lcIDsKK+WMluefs+eHg+aWmSA8IGthc2VraW5lbnJ5b3VcIDsKK+mbu+S/oeeCuuabvyA8IGRlbnNoaW5rYXdhc2VcIDsKK+S7j+S9nCA8IGhvdG9rZWR6dWt1cnVcIDsKK+aHkOS4rembu+eBryA8IGthaWNodXVkZW50b3VcIDsKK+aJjeiJsuWFvOWCmSA8IHNhaXNob2t1a2VuYmlcIDsKK+adseWNlyA8IGhpZ2FzaGltaW5hbWlcIDsKK+aMh+WwjuimgemgmCA8IHNoaWRvdXlvdXJ5b3VcIDsKK+mDteS+v+W5tOmHkSA8IHl1dWJpbicnbmVua2luXCA7CivplqLpgKPllYblk4EgPCBrYW5yZW5zaG91aGluXCA7CivpmZDnlYznirbms4EgPCBnZW5rYWlqb3VreW91XCA7Civku4HovKrliqDni4LoqIAgPCBuaXdha2FreW91Z2VuXCA7Civnj77lnKjlrozkuoYgPCBnZW56YWlrYW5yeW91XCA7CivliLbntITkvJ3mkKwgPCBzZWl5YWt1ZGVucGFuXCA7CivkuLjkuIDpgLHplpMgPCBtYXJ1aXNzaHV1a2FuXCA7Civlt6Xmpa3lm6PlnLAgPCBrb3VneW91ZGFuY2hpXCA7CivmpbXmpb3mtYTlnJ8gPCBnb2t1cmFrdWpvdWRvXCA7Civoh6roh6rlhazvvJPlhZogPCBqaWppa291c2FudG91XCA7CivmsJfnrqHmlK/ogrrngo4gPCBraWthbnNoaWhhaWVuXCA7CivlpJrph43lgrXli5nogIUgPCB0YWp1dXNhaW11c2hhXCA7CivljJblrabliIbmnpAgPCBrYWdha3VidW5zZWtpXCA7Civoq67llY/lp5Tlk6HkvJogPCBzaGltb24nJ2lpbmthaVwgOwor5ZCM54K55rG65YudIDwgZG91dGVua2Vzc2hvdVwgOwor5L2T5aSW6Zui6ISxIDwgdGFpZ2FpcmlkYXRzdVwgOwor55Sf54mp5YW15ZmoIDwgc2VpYnV0c3VoZWlraVwgOwor5Y2Y6Z+z56+A6KqeIDwgdGFuJydvbnNldHN1Z29cIDsKK+aUu+aSg+maiuW9oiA8IGtvdWdla2l0YWlrZWlcIDsKK+azleS6uuaJgOW+lyA8IGhvdWppbnNob3Rva3VcIDsKK+Wkp+mAhuS6i+S7tiA8IHRhaWd5YWt1amlrZW5cIDsKK+WOn+Wni+aVmeS8miA8IGdlbnNoaWt5b3VrYWlcIDsKK+S+oeagvOWNlOWumiA8IGtha2FrdWt5b3V0ZWlcIDsKK+Wvk+aEj+Wwj+iqrCA8IGd1dWlzaG91c2V0c3VcIDsKK+aYlOawl+izqiA8IG11a2FzaGlrYXRhZ2lcIDsKK+WwgumWgOaKgOihkyA8IHNlbm1vbmdpanV0c3VcIDsKK+aLoeW8teWPr+iDvSA8IGtha3VjaG91a2Fub3VcIDsKK+S/hOWLieW8tyA8IG5pd2FrYWJlbmt5b3VcIDsKK+aApemAsuS4u+e+qSA8IGt5dXVzaGluc2h1Z2lcIDsKK+iomOW/teW8j+WFuCA8IGtpbmVuc2hpa2l0ZW5cIDsKK+ertuWQiOiEsee3miA8IGt5b3Vnb3VkYXNzZW5cIDsKK+aakeS4reS8keaahyA8IHNob2NodXVreXV1a2FcIDsKK+e5geaWh+e4n+ekvCA8IGhhbmJ1bmpva3VyZWlcIDsKK+ebruaomeeuoeeQhiA8IG1va3VoeW91a2FucmlcIDsKK+aWueWQkeims+W/tSA8IGhvdWtvdWthbicnbmVuXCA7CivmtbflupXpm7vkv6EgPCBrYWl0ZWlkZW5zaGluXCA7Civmpa3nlYzli5XlkJEgPCBneW91a2FpZG91a291XCA7Civlv4XopoHntYzosrsgPCBoaXRzdXlvdWtlaWhpXCA7CivmsLTnjonmqKHmp5ggPCBtaXp1dGFtYW1veW91XCA7CivpgLLlrabnjocgPCBzaGluZ2FrdXJpdHN1XCA7Civlh7rlvoHlrrbml48gPCBzaHVzc2Vpa2F6b2t1XCA7CivntYzluLjlj47mlK8gPCBrZWlqb3VzaHV1c2hpXCA7CivlnLDnkIPnp5HlraYgPCBjaGlreXV1a2FnYWt1XCA7Civmg4XloLHmioDooZMgPCBqb3Vob3VnaWp1dHN1XCA7Civmrr/mp5jom5kgPCB0b25vc2FtYWdhZXJ1XCA7Civpq5jpq5jluqbpo5vooYwgPCBrb3Vrb3Vkb2hpa291XCA7CivnqbrkuK3liIbop6MgPCBrdXVjaHV1YnVua2FpXCA7CivlvLfliLblirTlg40gPCBreW91c2Vpcm91ZG91XCA7Civpmo7ntJrmhI/orZggPCBrYWlreXV1aXNoaWtpXCA7CivljZrlo6voq5bmlocgPCBoYWt1c2hpcm9uYnVuXCA7CivkurrmoLzlvaLmiJAgPCBqaW5rYWt1a2Vpc2VpXCA7Civntbnns7jntKHnuL4gPCBrZW5zaGlib3VzZWtpXCA7CivogbfloLTpl5jkuokgPCBzaG9rdWJhdG91c291XCA7CivpnZnohIjooYAgPCBqb3VteWFrdWtldHN1XCA7CivmlZnogrLlrabpg6ggPCBreW91aWt1Z2FrdWJ1XCA7CivlpInpgJ/oo4Xnva4gPCBoZW5zb2t1c291Y2hpXCA7CivnnJ/lhobnnJ/nj6AgPCBzaGluJydlbnNoaW5qdVwgOwor5Zu95rCR57WM5riIIDwga29rdW1pbmtlaXphaVwgOwor5LiA562L6YGTIDwgaGl0b3N1amltaWNoaVwgOwor5YaF6Z2i5o+P5YaZIDwgbmFpbWVuYnlvdXNoYVwgOwor5aqS5L2T57WC56uvIDwgYmFpdGFpc2h1dXRhblwgOwor5b+D55CG55mC5rOVIDwgc2hpbnJpcnlvdWhvdVwgOwor5oCn55qE6Zai5L+CIDwgc2VpdGVraWthbmtlaVwgOwor54Sh6Yqt6aOy6aOfIDwgbXVzZW4nJ2luc2hva3VcIDsKK+WwsealreeOhyA8IHNodXVneW91cml0c3VcIDsKK+evhOeWh+aWh+azlSA8IGhhbmNodXVidW5wb3VcIDsKK+WGhee3kuipsSA8IG5haXNob2JhbmFzaGlcIDsKK+mVt+acn+WAn+asviA8IGNob3VraXNoYWtrYW5cIDsKK+WFqOS9k+mbhuWQiCA8IHplbnRhaXNodXVnb3VcIDsKK+WPs+Wwj+aLrOW8pyA8IG1pZ2lzaG91a2Fra29cIDsKK+S7ruaDs+aVteWbvSA8IGthc291dGVraWtva3VcIDsKK+i6gemsseizqiA8IHNvdXV0c3VzaGl0c3VcIDsKK+altealveW+gOeUnyA8IGdva3VyYWt1b3Vqb3VcIDsKK+WIneetieaVmeiCsiA8IHNob3RvdWt5b3Vpa3VcIDsKK+ihjOaUv+WRveS7pCA8IGd5b3VzZWltZWlyZWlcIDsKK+WvvuWcsOaUu+aSgyA8IHRhaWNoaWtvdWdla2lcIDsKK+iHqueEtuaPj+WGmSA8IHNoaXplbmJ5b3VzaGFcIDsKK+mHkeiejeizh+acrCA8IGtpbicneXV1c2hpaG9uXCA7CivnhKHog73lipvogIUgPCBtdW5vdXJ5b2t1c2hhXCA7CivljJblrablt6Xmpa0gPCBrYWdha3Vrb3VneW91XCA7CivooYzmlL/ljLrnlLsgPCBneW91c2Vpa3VrYWt1XCA7Civlrabnv5Lovp7lhbggPCBnYWt1c2h1dWppdGVuXCA7Civlm73kvJrorbDkuovloIIgPCBrb2trYWlnaWppZG91XCA7CivplqjplqXmlL/msrsgPCBrZWliYXRzdXNlaWppXCA7CivkuozljYHlm5vnr4DmsJcgPCBuaWp1dXNoaXNla2tpXCA7Civkuovmpa3mi6HlhYUgPCBqaWd5b3VrYWt1anV1XCA7CivovrLmnZHlt6Xmpa0gPCBub3Vzb25rb3VneW91XCA7Civnp4vpm6jliY3nt5ogPCBha2lzYW1lemVuc2VuXCA7CivnhKHlvaLmlofljJbosqEgPCBtdWtlaWJ1bmthemFpXCA7CivlhbHlkIzovrLloLQgPCBreW91ZG91bm91am91XCA7CivlpbPmqKnmi6HlvLUgPCBqb2tlbmtha3VjaG91XCA7CivorJvnv5LkvJrloLQgPCBrb3VzaHV1a2Fpam91XCA7CivmsZrmn5Pnianos6ogPCBvc2VuYnVzc2hpdHN1XCA7Civnirbms4HliKTmlq0gPCBqb3VreW91aGFuZGFuXCA7CivlvZPoqbLlrpjluoEgPCB0b3VnYWlrYW5jaG91XCA7Civku7Lku4vosr/mmJMgPCBjaHV1a2FpYm91ZWtpXCA7Civlm73lhoXluILloLQgPCBrb2t1bmFpc2hpam91XCA7CivkuIDmnprnnIvmnb8gPCBpY2hpbWFpa2FuYmFuXCA7CivluILloLToh6rnlLHljJYgPCBzaGlqb3VqaXl1dWthXCA7CivntYzllrblpJrop5LljJYgPCBrZWllaXRha2FrdWthXCA7CivnhKHnt5rpgJrkv6EgPCBtdXNlbnRzdXVzaGluXCA7CivntYzmuIjlpKflm70gPCBrZWl6YWl0YWlrb2t1XCA7CivkuLvmiJHkuLvnvqnogIUgPCBzaHVnYXNodWdpc2hhXCA7Civmmpflj7fljJbmiYvms5UgPCBhbmdvdWthc2h1aG91XCA7Civlj43npL7kvJrnmoQgPCBoYW5zaGFrYWl0ZWtpXCA7CivkuIDliKnkuIDlrrMgPCBpY2hpcmlpY2hpZ2FpXCA7Civkuozlvovog4zlj40gPCBuaXJpdHN1aGFpaGFuXCA7CivlvqnlhYPkvZzmpa0gPCBmdWt1Z2Vuc2FneW91XCA7CivkurrplpPniIblvL4gPCBuaW5nZW5iYWt1ZGFuXCA7CivlraPnr4DlirTlg40gPCBraXNldHN1cm91ZG91XCA7Civpmbjou43lpKfoh6MgPCByaWt1Z3VuZGFpamluXCA7Civmlq3mirXmipfop5IgPCBkYW50ZWlrb3VrYWt1XCA7CivnhrHlirnnjocgPCBuZXRzdWtvdXJpdHN1XCA7CivkuI3opovou6LoirjogIUgPCBtaXp1dGVuZ2Vpc2hhXCA7Civnm67nmoTniakgPCBtb2t1dGVraWJ1dHN1XCA7CivpgJrkv6HmqZ/plqIgPCB0c3V1c2hpbmtpa2FuXCA7Civlj43nmbrlipsgPCBoYW5wYXRzdXJ5b2t1XCA7CivlhpnnnJ/lh7jniYggPCBzaGFzaGludG9wcGFuXCA7CivmpI3nianoqowgPCBzaG9rdWJ1dHN1c2hpXCA7CivljJblrabnmYLms5UgPCBrYWdha3VyeW91aG91XCA7Civlip/liKnkuLvnvqnogIUgPCBrb3VyaXNodWdpc2hhXCA7CivntrHntIDnspvmraMgPCBrb3VraXNodWt1c2VpXCA7CivnqI7liLbmlLnpnakgPCB6ZWlzZWlrYWlrYWt1XCA7Civoqr/lgZzoo4HliKQgPCBjaG91dGVpc2FpYmFuXCA7CivnhKHnvarliKTmsbogPCBtdXphaWhhbmtldHN1XCA7CivlpKnniZsgPCBrYW1pa2lyaW11c2hpXCA7Civou43kuovmiKbnlaUgPCBndW5qaXNlbnJ5YWt1XCA7Civorablr5/lipsgPCBrZWlzYXRzdXJ5b2t1XCA7Civoh6jluoroqabpqJMgPCByaW5zaG91c2hpa2VuXCA7CivpmLLmraLmjIfph50gPCBib3VzaGlzaGlzaGluXCA7CivmsJfosaHoprPmuKwgPCBraXNob3VrYW5zb2t1XCA7CivoiJ7lj7DnlJ/mtLsgPCBidXRhaXNlaWthdHN1XCA7CivlpKflkI3ml4XooYwgPCBkYWlteW91cnlva291XCA7CivkvZzmpa3nmYLms5UgPCBzYWd5b3VyeW91aG91XCA7CivlpJblm73ngrrmm78gPCBnYWlrb2t1a2F3YXNlXCA7Civpg73nq4vpq5jmoKEgPCB0b3JpdHN1a291a291XCA7CivlvaLlvI/kuLvnvqkgPCBrZWlzaGlraXNodWdpXCA7CivljJblrablt6XlraYgPCBrYWdha3Vrb3VnYWt1XCA7Civop5LpgYvli5Xph48gPCBrYWt1dW5kb3VyeW91XCA7CivlrozlhajnhKHmrKAgPCBrYW56ZW5tdWtldHN1XCA7CivmlL/nrZbmsbrlrpogPCBzZWlzYWt1a2V0dGVpXCA7CivosqjnianlrqQgPCBrYW1vdHN1c2hpdHN1XCA7CivlvqrnkrDlsI/mlbAgPCBqdW5rYW5zaG91c3V1XCA7CivlpKfpn5PmsJHlm70gPCBkYWlrYW5taW5rb2t1XCA7Civmh5DkuK3pj6EgPCBrYWljaHV1a2FnYW1pXCA7CivpgannlKjmpa3li5kgPCB0ZWtpeW91Z3lvdW11XCA7CivmiKbkuonmloflraYgPCBzZW5zb3VidW5nYWt1XCA7CivkuZ3lpKnnm7TkuIsgPCBreXV1dGVuY2hva2thXCA7Civmt6Hnt5HoibIgPCB0YW5yeW9rdXNob2t1XCA7CivpnaLlvpPohbnog4wgPCBtZW5qdXVmdWt1aGFpXCA7Civnorrkv53lpLHmlZcgPCBrYWt1aG9zaGlwcGFpXCA7CivlhbHpgJroqIDoqp4gPCBreW91dHN1dWdlbmdvXCA7Civoh6rli5Xou4rkv53pmbogPCBqaWRvdXNoYWhva2VuXCA7CivlvLfliLblh6bliIYgPCBreW91c2Vpc2hvYnVuXCA7Civmlq3ltJbntbblo4EgPCBkYW5nYWl6ZXBwZWtpXCA7CivnlKPmpa3npL7kvJogPCBzYW5neW91c2hha2FpXCA7CivlkITnqK7lrabmoKEgPCBrYWt1c2h1Z2Fra291XCA7CivliIbop6PlhpnnnJ8gPCBidW5rYWlzaGFzaGluXCA7CivljbDliLflqpLkvZMgPCBpbnNhdHN1YmFpdGFpXCA7CivnoJTnqbbmiYDloLEgPCBrZW5reXV1c2hvaG91XCA7CivkubHlsITkubHmkoMgPCByYW5zaGFyYW5nZWtpXCA7CivnibnoqLHkvrXlrrMgPCB0b2treW9zaGluZ2FpXCA7CivlrprpoY3osq/ph5EgPCB0ZWlnYWt1Y2hva2luXCA7CivlhazooYbkvJ3li5UgPCBrb3VzaHV1ZGVuZG91XCA7CivlpKnnq7rpvKAgPCB0ZW5qaWt1bmV6dW1pXCA7CivpiYTpgZPppqzou4ogPCB0ZXRzdWRvdWJhc2hhXCA7CivlhoXlm73ngrrmm78gPCBuYWlrb2t1a2F3YXNlXCA7CivnqK7nqK7mp5jmp5ggPCBzaHVqdXNhbWF6YW1hXCA7CivllpzoibLmuoDpnaIgPCBraXNob2t1bWFubWVuXCA7CivlvIHliKXntKDmgKcgPCBiZW5iZXRzdXNvc2VpXCA7CivkvZzmiKblkb3ku6QgPCBzYWt1c2VubWVpcmVpXCA7CivorbDplbfogbfmqKkgPCBnaWNob3VzaG9ra2VuXCA7CivntbHnjoflipsgPCB0b3VyaXRzdXJ5b2t1XCA7Civlrp/pjLLniakgPCBqaXRzdXJva3Vtb25vXCA7CivllZPokpnmgJ3mva4gPCBrZWltb3VzaGljaG91XCA7CivlhazlqLzlhajlu4MgPCBrb3VzaG91emVucGFpXCA7Civlr77pnaLkuqTpgJogPCB0YWltZW5rb3V0c3V1XCA7Civoh6rlt7HpoZXnpLrmrLIgPCBqaWtva2Vuaml5b2t1XCA7Civlr4blhaXlm70gPCBtaXRzdW55dXVnb2t1XCA7CivkuIDllY/kuIDnrZQgPCBpY2hpbW9uJydpdHRvdVwgOwor55u06Ly45Ye6IDwgY2hva3V5dXNodXRzdVwgOwor54Sh6YWN5b2T5L+d6Zm6IDwgbXVoYWl0b3Vob2tlblwgOwor6Zu75a2Q5a+G5bqmIDwgZGVuc2hpbWl0c3Vkb1wgOwor6LaF5L2O5L6h5qC8IDwgY2hvdXRlaWtha2FrdVwgOwor5LiA5ous5aOy6LK3IDwgaWtrYXRzdWJhaWJhaVwgOwor5oOa5rCX6KmxIDwgbm9yb2tlYmFuYXNoaVwgOwor5Yi257SE5p2h5Lu2IDwgc2VpeWFrdWpvdWtlblwgOwor5LyR5oim5Lya6KuHIDwga3l1dXNlbmthaWRhblwgOwor5LyR6aSK5a6kIDwga3l1dXlvdXNoaXRzdVwgOwor54mI5qip5L615a6zIDwgaGFua2Vuc2hpbmdhaVwgOwor6Zmz5YiX56qTIDwgY2hpbnJldHN1bWFkb1wgOwor55m+5YiG546HIDwgaHlha3VidW5yaXRzdVwgOwor6ZqU6Zui55eF5qOfIDwga2FrdXJpYnlvdXRvdVwgOwor55Sf6a6u5paZ5ZOBIDwgc2Vpc2VucnlvdWhpblwgOwor5Ye66KGA55eHIDwgc2h1a2tldHN1c2hvdVwgOwor5LiK5piH5YK+5ZCRIDwgam91c2hvdWtlaWtvdVwgOwor5LiN5rOV5YWl5Zu9IDwgZnVob3VueXV1Z29rdVwgOwor5pWZ6aSK5a2m6YOoIDwga3lvdXlvdWdha3VidVwgOwor6auY5L+h6aC85oCnIDwga291c2hpbnJhaXNlaVwgOwor5p6c5qi55qC95Z+56ICFIDwga2FqdXNhaWJhaXNoYVwgOwor5a625a6F5o2c57SiIDwga2F0YWt1c291c2FrdVwgOwor6KiI55S757WM5riIIDwga2Vpa2FrdWtlaXphaVwgOwor5LiJ6Lu46Kmm6aiTIDwgc2FuamlrdXNoaWtlblwgOwor5pyA57WC5q616ZqOIDwgc2Fpc2h1dWRhbmthaVwgOwor5Y+O5YWl5Y2w57SZIDwgc2h1dW55dXVpbnNoaVwgOwor5Y2K54af57e05belIDwgaGFuanVrdXJlbmtvdVwgOwor5YaZ55yf5Yik5a6aIDwgc2hhc2hpbmhhbnRlaVwgOwor57WM5riI6Kaz5b+1IDwga2VpemFpa2FuJyduZW5cIDsKK+izg+mHkeawtOa6liA8IGNoaW5naW5zdWlqdW5cIDsKK+WWtualreWPjuaUryA8IGVpZ3lvdXNodXVzaGlcIDsKK+S4ieebuOS6pOa1gSA8IHNhbnNvdWtvdXJ5dXVcIDsKK+e1jOWWtuaIpueVpSA8IGtlaWVpc2Vucnlha3VcIDsKK+aYpeWkj+eni+WGrCA8IHNodW5rYXNodXV0b3VcIDsKK+eEpueCuea3seW6piA8IHNob3V0ZW5zaGluZG9cIDsKK+S4gOaZguaJgOW+lyA8IGljaGlqaXNob3Rva3VcIDsKK+adieiKseeyieeXhyA8IHN1Z2lrYWZ1bnNob3VcIDsKK+S6uuawkeaKleelqCA8IGppbm1pbnRvdWh5b3VcIDsKK+Wvhui8uOWHuiA8IG1pdHN1eXVzaHV0c3VcIDsKK+WQiOW+k+mAo+ihoSA8IGdhc3Nob3VyZW5rb3VcIDsKK+eDj+mHjuixjOixhiA8IGthcmFzdW5vZW5kb3VcIDsKK+eEoeiKuOWkp+mjnyA8IG11Z2VpdGFpc2hva3VcIDsKK+Wbvemam+mAo+WQiCA8IGtva3VzYWlyZW5nb3VcIDsKK+WIpOWIpeW8jyA8IGhhbmJldHN1c2hpa2lcIDsKK+eGseS6pOaPm+WZqCA8IG5ldHN1a291a2Fua2lcIDsKK+Wuh+WumemWi+eZuiA8IHVjaHV1a2FpaGF0c3VcIDsKK+a8ouaWh+iok+iqrSA8IGthbmJ1bmt1bmRva3VcIDsKK+epuumWk+aEn+immiA8IGt1dWthbmthbmtha3VcIDsKK+S6jOS6uuS4ieiEmiA8IG5pbmluc2Fua3lha3VcIDsKK+aoqeWKm+S4u+e+qSA8IGtlbnJ5b2t1c2h1Z2lcIDsKK+akjeeJqeeVjCA8IHNob2t1YnV0c3VrYWlcIDsKK+WLn+mbhuW6g+WRiiA8IGJvc2h1dWtvdWtva3VcIDsKK+Wtpue/kueQhuirliA8IGdha3VzaHV1cmlyb25cIDsKK+mnkOi7iuemgeatoiA8IGNodXVzaGFraW5zaGlcIDsKK+WFseWQjOWuo+iogCA8IGt5b3Vkb3VzZW5nZW5cIDsKK+ijgeWIpOWumOW/jOmBvyA8IHNhaWJhbmthbmtpaGlcIDsKK+WkqeWcsOelnuaYjiA8IHRlbmNoaXNoaW5tZWlcIDsKK+WkouW5uyA8IHl1bWVtYWJvcm9zaGlcIDsKK+ips+e0sOaDheWgsSA8IHNob3VzYWlqb3Vob3VcIDsKK+eJm+mjsummrOmjnyA8IGd5dXVpbmJhc2hva3VcIDsKK+mdnuatpuijheWcsOW4ryA8IGhpYnVzb3VjaGl0YWlcIDsKK+mHkeWfjumJhOWjgSA8IGtpbmpvdXRlcHBla2lcIDsKK+mbhuS4reism+e+qSA8IHNodXVjaHV1a291Z2lcIDsKK+WkieW9ouiZq+mhniA8IGhlbmtlaWNodXVydWlcIDsKK+WFrOeahOW5tOmHkSA8IGtvdXRla2luZW5raW5cIDsKK+mAseWIiumbkeiqjCA8IHNodXVrYW56YXNzaGlcIDsKK+e0oee4vuW3peWgtCA8IGJvdXNla2lrb3Vqb3VcIDsKK+WIneetieaVsOWtpiA8IHNob3RvdXN1dWdha3VcIDsKK+aui+WtmOaXpeaVsCA8IHphbnNvbicnbmlzc3V1XCA7CivnqbrmsJfmuIXmtYTmqZ8gPCBrdXVraXNlaWpvdWtpXCA7Civlm73pmpvlsZXplosgPCBrb2t1c2FpdGVua2FpXCA7CivlubTlip/luo/liJcgPCBuZW5rb3Vqb3JldHN1XCA7CivnhrHlipvlraYgPCBuZXRzdXJpa2lnYWt1XCA7CivllYbmpa3pg73luIIgPCBzaG91Z3lvdXRvc2hpXCA7CivkuK3pgJTpgIDlraYgPCBjaHV1dG90YWlnYWt1XCA7CivlhbHlkIzkvJroposgPCBreW91ZG91a2Fpa2VuXCA7CivmhrLms5XlrabogIUgPCBrZW5wb3VnYWt1c2hhXCA7CivkuIDkuovkuI3lho3orbAgPCBpY2hpamlmdXNhaWdpXCA7CivlibXlu7roqJjlv7Xml6UgPCBzb3VrZW5raW5lbmJpXCA7Civmma7pgY3lpqXlvZPmgKcgPCBmdWhlbmRhdG91c2VpXCA7Civljp/lrZDniIblvL4gPCBnZW5zaGliYWt1ZGFuXCA7Civljp/lrZDnoLTlo4rmqZ8gPCBnZW5zaGloYWthaWtpXCA7CivnmbvlsbHpiYTpgZMgPCB0b3phbnRldHN1ZG91XCA7CivmlrDmraPmnIggPCBzaGluc2hvdWdhdHN1XCA7CivniannkIbljJblraYgPCBidXRzdXJpa2FnYWt1XCA7CivntabmsLTliLbpmZAgPCBreXV1c3Vpc2VpZ2VuXCA7CivmnJ3prq7miKbkuokgPCBjaG91c2Vuc2Vuc291XCA7Civlq4zmsJfnlJ/niakgPCBrZW5raXNlaWJ1dHN1XCA7Civpgbjmip7nirbmhYsgPCBzZW50YWt1am91dGFpXCA7CivkuLvpo5/niakgPCBzaHVzaG9rdWJ1dHN1XCA7Civpq5jls7DlhavluqcgPCBrb3Vob3VoYWNoaXphXCA7CivkuI3mtojljJbniakgPCBmdXNob3VrYWJ1dHN1XCA7Civms5XnmoTmlofmm7ggPCBob3V0ZWtpYnVuc2hvXCA7Civnp5jlr4bpgbjmjJkgPCBoaW1pdHN1c2Vua3lvXCA7CivpmbPliJfmo5ogPCBjaGlucmV0c3VkYW5hXCA7CivmlrDnhrHluK/ljLogPCBzaGluJyduZXR0YWlrdVwgOwor57WQ5ama5oyH6LyqIDwga2Vra29uJyd5dWJpd2FcIDsKK+WWhOmao+WPi+WlvSA8IHplbnJpbicneXV1a291XCA7Civlj5flj5bmiYvlvaIgPCB1a2V0b3JpdGVnYXRhXCA7CivmsbrnrpfloLHlkYogPCBrZXNzYW5ob3Vrb2t1XCA7Civlv4PnkIblrabogIUgPCBzaGlucmlnYWt1c2hhXCA7Civpm5Hlj47lhaUgPCB6YXRzdXNodXVueXV1XCA7Civoq5bnkIblvaLlvI8gPCByb25yaWtlaXNoaWtpXCA7CivkvY7poK3lubPouqsgPCB0ZWl0b3VoZWlzaGluXCA7Civmt7flkIjovrLmpa0gPCBrb25nb3Vub3VneW91XCA7CivmlofoirjkvZzlk4EgPCBidW5nZWlzYWt1aGluXCA7CivmnInplpHpmo7ntJogPCB5dXVrYW5rYWlreXV1XCA7Civlj4vlpb3mnaHntIQgPCB5dXVrb3Vqb3V5YWt1XCA7CivliYflpKnljrvnp4EgPCBzb2t1dGVua3lvc2hpXCA7Civlhpnlrp/kuLvnvqkgPCBzaGFqaXRzdXNodWdpXCA7Civlm73pmpvluILloLQgPCBrb2t1c2Fpc2hpam91XCA7Civkuozph43nlJ/mtLsgPCBuaWp1dXNlaWthdHN1XCA7Civoh6jmqZ/nm67mqJkgPCByaW5raW1va3VoeW91XCA7CivllYbmpa3nmbvoqJggPCBzaG91Z3lvdXRvdWtpXCA7Civpu4ToibLkurrnqK4gPCBvdXNob2t1amluc2h1XCA7Civlkajms6LlpInoqr8gPCBzaHV1aGFoZW5jaG91XCA7CivmrKDpmaXllYblk4EgPCBrZWtrYW5zaG91aGluXCA7CivlvpPlsZ7lpInmlbAgPCBqdXV6b2t1aGVuc3V1XCA7Civml6LntITooajnj74gPCBraXlha3VoeW91Z2VuXCA7CivoqbHljYrliIYgPCBoYW5hc2hpaGFuYnVuXCA7CivkuI3oia/lsJHlubQgPCBmdXJ5b3VzaG91bmVuXCA7CivmuKzph4/mioDluKsgPCBzb2t1cnlvdWdpc2hpXCA7Civmo67nvoXkuIfosaEgPCBzaGlucmFiYW5zaG91XCA7CivnlKPmpa3mp4vpgKAgPCBzYW5neW91a291em91XCA7CivmrKflt57oq7jlm70gPCBvdXNodXVzaG9rb2t1XCA7CivpgJrli6TlnLDnjYQgPCB0c3V1a2luamlnb2t1XCA7CivmmLzplpPkurrlj6MgPCBjaHV1a2Fuamlua291XCA7CivlipvkuI3otrMgPCBjaGlrYXJhYnVzb2t1XCA7CivmgKfmoLzliKTmlq0gPCBzZWlrYWt1aGFuZGFuXCA7Civkv6HpoLzplqLkv4IgPCBzaGlucmFpa2Fua2VpXCA7CivlsLHlrabnjocgPCBzaHV1Z2FrdXJpdHN1XCA7CivlkIzmnJ/pgJrkv6EgPCBkb3VraXRzdXVzaGluXCA7CivkuInph43nhKbngrkgPCBzYW5qdXVzaG91dGVuXCA7CivmipXnpajnt4/mlbAgPCB0b3VoeW91c291c3V1XCA7CivlpKfluYXliLfmlrAgPCBvb2hhYmFzYXNzaGluXCA7CivmsLTkuIrnlLogPCBtaW5ha2FtaW1hY2hpXCA7CivntZDlqZroqJjlv7Xml6UgPCBrZWtrb25raW5lbmJpXCA7CivlpKfpm6jms6jmhI/loLEgPCBvb2FtZWNodXVpaG91XCA7CivliIfmlq3mgqPogIUgPCBzZXRzdWRhbmthbmphXCA7CivoopbmiYvlgo3oprMgPCBzaHV1c2h1Ym91a2FuXCA7Civmi43miYvllp3ph4cgPCBoYWt1c2h1a2Fzc2FpXCA7CivkvZzmpa3ku67oqqwgPCBzYWd5b3VrYXNldHN1XCA7CivntYzmuIjmiJDplbcgPCBrZWl6YWlzZWljaG91XCA7CivnsbPmnbHpg6jmmYLplpMgPCBiZWl0b3VidWppa2FuXCA7CivlkIjmiJDlrp3nn7MgPCBnb3VzZWlob3VzZWtpXCA7CivntZDnt6DntYTnuZQgPCBrZXR0ZWlzb3NoaWtpXCA7CivopqrliIflv4MgPCBzaGluc2V0c3VzaGluXCA7CivlhobpjJDmm7Lnt5ogPCBlbnN1aWt5b2t1c2VuXCA7CivogZbkvZPmi53poJggPCBzZWl0YWloYWlyeW91XCA7CivlurbmsJHph5Hono0gPCBzaG9taW5raW4nJ3l1dVwgOwor5L2T56mN5oq15oqXIDwgdGFpc2VraXRlaWtvdVwgOwor5Y2U5ZCM57WE5ZCIIDwga3lvdWRvdWt1bWlhaVwgOwor5YWI5L2P5rCR5pePIDwgc2VuanV1bWluem9rdVwgOwor57Wx5LiA5oim57eaIDwgdG91aXRzdXNlbnNlblwgOwor5ZCM5pmC6YCa6KizIDwgZG91aml0c3V1eWFrdVwgOwor5ZGo55+l5b655bqVIDwgc2h1dWNoaXRldHRlaVwgOwor6Imx6Zuj6L6b6IumIDwga2FuJyduYW5zaGlua3VcIDsKK+aUv+WFmuWGhemWoyA8IHNlaXRvdW5haWtha3VcIDsKK+WItuS9nOWupCA8IHNlaXNha3VzaGl0c3VcIDsKK+WNs+eJqeeahCA8IHNva3VidXRzdXRla2lcIDsKK+ePvuWcsOWgseWRiiA8IGdlbmNoaWhvdWtva3VcIDsKK+aHuOiznuWVj+mhjCA8IGtlbnNob3Vtb25kYWlcIDsKK+WKo+aAp+mBuuS8neWtkCA8IHJlc3NlaWlkZW5zaGlcIDsKK+axsuWPluWPoyA8IGt1bWl0b3JpZ3VjaGlcIDsKK+WCreiIueWlkee0hCA8IHlvdXNlbmtlaXlha3VcIDsKK+S7iuS4iuWkqeeahyA8IGtpbmpvdXRlbicnbm91XCA7Civku5bopprnl4fnirYgPCB0YWtha3VzaG91am91XCA7CivmrKDpo5/lhZDnq6UgPCBrZXNzaG9rdWppZG91XCA7CivlqK/mpb3nlarntYQgPCBnb3Jha3ViYW5ndW1pXCA7Civnsr7npZ7ljLvlraYgPCBzZWlzaGluJydpZ2FrdVwgOwor5YaF5a656Ki85piOIDwgbmFpeW91c2hvdW1laVwgOwor5Ye65riv5YGc5q2iIDwgc2h1a2tvdXRlaXNoaVwgOwor5aSr5amm57SE5p2fIDwgZnV1ZnV5YWt1c29rdVwgOwor5peF6KGM5qWt6ICFIDwgcnlva291Z3lvdXNoYVwgOwor5L2/5b6S5L+h57WMIDwgc2hpdG9zaGlua3lvdVwgOwor5aSW6LOH5bCO5YWlIDwgZ2Fpc2hpZG91bnl1dVwgOwor54Sh5L6h5YCk6LOH55SjIDwgbXVrYWNoaXNoaXNhblwgOwor5YGl5bq35L+d6Zm65Yy7IDwga2Vua291aG9rZW4nJ2lcIDsKK+W4uOS7u+WnlOWToeS8miA8IGpvdW5pbicnaWlua2FpXCA7CivmiJDkurrmlZnogrIgPCBzZWlqaW5reW91aWt1XCA7CivlhazlvI/kuLvnvqkgPCBrb3VzaGlraXNodWdpXCA7CivopIfmlbDmpa3li5kgPCBmdWt1c3V1Z3lvdW11XCA7CivnpoHmrLLkuLvnvqkgPCBraW4nJ3lva3VzaHVnaVwgOwor56m66KWy6K2m5aCxIDwga3V1c2h1dWtlaWhvdVwgOwor55Sj5qWt5YaN55SfIDwgc2FuZ3lvdXNhaXNlaVwgOwor6LOD6LK45L6h5qC8IDwgY2hpbnRhaWtha2FrdVwgOwor5oim6ZeY5YmN5ZOoIDwgc2VudG91emVuc2hvdVwgOwor5LiA6KiA5LiA6KGMIDwgaWNoaWdlbicnaWtrb3VcIDsKK+i7liA8IHRzdW11Z2lrdXJ1bWFcIDsKK+WQueWlj+alveWboyA8IHN1aXNvdWdha3VkYW5cIDsKK+ebtOe3mui3nemboiA8IGNob2t1c2Vua3lvcmlcIDsKK+i/keimque1kOWpmiA8IGtpbnNoaW5rZWtrb25cIDsKK+exs+iLseS7j+iYrSA8IGJlaWVpYnV0c3VyYW5cIDsKK+iHqueUseS4u+e+qeiAhSA8IGppeXV1c2h1Z2lzaGFcIDsKK+efreazouWPl+S/oeapnyA8IHRhbnBhanVzaGlua2lcIDsKK+WFseWQjOS9nOalrSA8IGt5b3Vkb3VzYWd5b3VcIDsKK+a4m+WPjeaUv+etliA8IGdlbnRhbnNlaXNha3VcIDsKK+W/g+eQhuS9nOaIpiA8IHNoaW5yaXNha3VzZW5cIDsKK+e3j+mgmOWomCA8IHNvdXJ5b3VtdXN1bWVcIDsKK+S4g+emj+elniA8IHNoaWNoaWZ1a3VqaW5cIDsKK+W/g+iHk+enu+akjSA8IHNoaW56b3Vpc2hva3VcIDsKK+aciemZkOiyrOS7uyA8IHl1dWdlbnNla2luaW5cIDsKK+e1hOe5lOWGjee3qCA8IHNvc2hpa2lzYWloZW5cIDsKK+emj+mfs+aVmeS8miA8IGZ1a3Vpbmt5b3VrYWlcIDsKK+mWouS/guWJr+ipniA8IGthbmtlaWZ1a3VzaGlcIDsKK+WPsuaWmee3qOe6giA8IHNoaXJ5b3VoZW5zYW5cIDsKK+eJueWIpeW4rSA8IHRva3ViZXRzdXNla2lcIDsKK+eMn+WumOmBi+WLlSA8IHJ5b3VrYW4nJ3VuZG91XCA7CivogonkvZPlirTlg40gPCBuaWt1dGFpcm91ZG91XCA7CivnoLTlo4rkuLvnvqnogIUgPCBoYWthaXNodWdpc2hhXCA7Civlj4LnhafmlofnjK4gPCBzYW5zaG91YnVua2VuXCA7Civpn7Pmpb3nm6PnnaMgPCBvbmdha3VrYW50b2t1XCA7CivlubPouqvkvY7poK0gPCBoZWlzaGludGVpdG91XCA7CivlhbHnlKPliIblrZAgPCBreW91c2FuYnVuc2hpXCA7CivkuojntITlh7rniYggPCB5b3lha3VzaHVwcGFuXCA7Civngq3msLTljJbniakgPCB0YW5zdWlrYWJ1dHN1XCA7CivlvqHpg73lkIjkuLvnvqkgPCBnb3RzdWdvdXNodWdpXCA7CivlpJrooYDos6ogPCB0YWtldHN1c2hpdHN1XCA7Civov5Hku6PmloflraYgPCBraW5kYWlidW5nYWt1XCA7CivkuozljYHml6XlpKfmoLkgPCBoYXRzdWthZGFpa29uXCA7CivlnLDmlrnlrpjluoEgPCBjaGlob3VrYW5jaG91XCA7Civlm5vliIbkupToo4IgPCBzaGlidW5nb3JldHN1XCA7CivntYzmuIjlm57lvqkgPCBrZWl6YWlrYWlmdWt1XCA7Civlrp/lrZjkuLvnvqkgPCBqaXRzdXpvbnNodWdpXCA7CivmgZLmuKnli5XniakgPCBrb3VvbmRvdWJ1dHN1XCA7Civph47oj5zkuIDnmr8gPCB5YXNhaWhpdG9zYXJhXCA7CivlvaLlvI/oq5bnkIYgPCBrZWlzaGlraXJvbnJpXCA7CivlpKflrabmtarkurogPCBkYWlnYWt1cm91bmluXCA7CivmmqvlrprljZTlrpogPCB6YW50ZWlreW91dGVpXCA7CivokL3kuIvlgpjpg6jpmoogPCByYWtrYXNhbmJ1dGFpXCA7CivmlL7pgIHlpKflraYgPCBob3Vzb3VkYWlnYWt1XCA7Civms5XlvovliLbluqYgPCBob3VyaXRzdXNlaWRvXCA7Civplbfot53pm6Lkvp3lrZggPCBjaG91a3lvcmlpem9uXCA7Civkv6HnlKjph5HluqsgPCBzaGluJyd5b3VraW5rb1wgOwor5pyJ5ZCN54Sh5a6fIDwgeXV1bWVpbXVqaXRzdVwgOwor57WC6Lqr5Lya5ZOhIDwgc2h1dXNoaW5rYWlpblwgOwor56yR5q2i5Y2D5LiHIDwgc2hvdXNoaXNlbmJhblwgOwor5paH5a2m5Y2a5aOrIDwgYnVuZ2FrdWhha2FzZVwgOwor5bqt5YWI55u45aC0IDwgbml3YXNha2lzb3ViYVwgOwor5raI6LK76ICF5YG0IDwgc2hvdWhpc2hhZ2F3YVwgOwor57K+56We5qeL6YCgIDwgc2Vpc2hpbmtvdXpvdVwgOwor6YmE6aqo5bel5LqLIDwgdGVra290c3Vrb3VqaVwgOwor5Zu95Yip5rCR56aPIDwga29rdXJpbWlucHVrdVwgOwor6Lu95L275rWu6JaEIDwga2VpY2hvdWZ1aGFrdVwgOwor5rKW56mN5bmz6YeOIDwgY2h1dXNla2loZWl5YVwgOwor6YWq6L6y6KO95ZOBIDwgcmFrdW5vdXNlaWhpblwgOwor6Kyd572q5bqD5ZGKIDwgc2hhemFpa291a29rdVwgOwor5a+M5Zu95by35YW1IDwgZnVrb2t1a3lvdWhlaVwgOwor5aSW6YOt5Zuj5L2TIDwgZ2Fpa2FrdWRhbnRhaVwgOwor5YWx5ZCM5LyB5qWtIDwga3lvdWRvdWtpZ3lvdVwgOwor6ZqO57Sa56S+5LyaIDwga2Fpa3l1dXNoYWthaVwgOwor5a++5aSW5pS/562WIDwgdGFpZ2Fpc2Vpc2FrdVwgOwor57K+6ZyK5L+h5LuwIDwgc2VpcmVpc2hpbmtvdVwgOwor77yn77yi55CG6KuWIDwgamlcIMyEYmlcIMyEcmlyb25cIDsKK+aYpemiqOmnmOiVqSA8IHNodW5wdXV0YWl0b3VcIDsKK+atu+WIkeWft+ihjCA8IHNoaWtlaXNoaWtrb3VcIDsKK+S6jOiAheaKnuS4gCA8IG5pc2hhdGFrdWl0c3VcIDsKK+mFuOaAp+WPjeW/nCA8IHNhbnNlaWhhbicnbm91XCA7CivmoLjniIbnmbogPCBrYWt1YmFrdWhhdHN1XCA7CivmsLTpgZPmlpnph5EgPCBzdWlkb3VyeW91a2luXCA7CivnqbrmsJflipvlraYgPCBrdXVraXJpa2lnYWt1XCA7CivllYblo7LmsJfos6ogPCBzaG91YmFpa2F0YWdpXCA7CivoqJjpjLLmloflraYgPCBraXJva3VidW5nYWt1XCA7CivnrKblj7flpInmj5vlmaggPCBmdWdvdWhlbmthbmtpXCA7CivlvbzmlrnmraTmlrkgPCBhY2hpcmFrb2NoaXJhXCA7Civnq4vouqvlh7rkuJYgPCByaXNzaGluc2h1c3NlXCA7CivmraPph5HpioDooYwgPCBzaG91a2luZ2lua291XCA7CivlhbHmuIjkuovmpa0gPCBreW91c2FpamlneW91XCA7CivlhYjooYzmioDooZMgPCBzZW5rb3VnaWp1dHN1XCA7Civlm7Pmm7jnm67pjLIgPCB0b3Nob21va3Vyb2t1XCA7CivoqLzmi6DpmqDmu4UgPCBzaG91a29pbm1ldHN1XCA7CivpgIHph5HlsI/liIfmiYsgPCBzb3VraW5rb2dpdHRlXCA7Civnq7bkuonplqLkv4IgPCBreW91c291a2Fua2VpXCA7CivlvpfnpajnjocgPCB0b2t1aHlvdXJpdHN1XCA7CivooajlvbDlvI8gPCBoeW91c2hvdXNoaWtpXCA7CivlhaXlrablvI8gPCBueXV1Z2FrdXNoaWtpXCA7CivkuovliY3mpJzplrIgPCBqaXplbmtlbicnZXRzdVwgOwor6KGM5pS/5Yem5YiGIDwgZ3lvdXNlaXNob2J1blwgOwor5YWo6Z2i5bqD5ZGKIDwgemVubWVua291a29rdVwgOwor57OOIDwgc2VuY2hpbWVpdG9ydVwgOwor5Zu95YuZ6ZW35a6YIDwga29rdW11Y2hvdWthblwgOwor57KoIDwgaGVrdXRvbWVldG9ydVwgOwor57K+56We55eF6ZmiIDwgc2Vpc2hpbmJ5b3VpblwgOwor5Zub5Y2B5Lmd5pelIDwgc2hpanV1a3VuaWNoaVwgOwor5p2T5a2Q5a6a6KaPIDwgc2hha3VzaGlqb3VnaVwgOwor5Y+v5aGR54mp6LOqIDwga2Fzb2J1c3NoaXRzdVwgOwor54Gw55m96LOqIDwga2FpaGFrdXNoaXRzdVwgOwor5Y2K6L6y5Y2K5ryBIDwgaGFuJydub3VoYW5neW9cIDsKK+mjn+eUqOayuSA8IHNob2t1eW91YWJ1cmFcIDsKK+iBt+alreeahCA8IHNob2t1Z3lvdXRla2lcIDsKK+mjn+eUn+a0uyA8IHNob2t1c2Vpa2F0c3VcIDsKK+aatOmjsuaatOmjnyA8IGJvdWluYm91c2hva3VcIDsKK+eglOeptuWIhumHjiA8IGtlbmt5dXVidW4nJ3lhXCA7Civkurrlj6Plr4bluqYgPCBqaW5rb3VtaXRzdWRvXCA7Civkurrouqvlo7LosrcgPCBqaW5zaGluYmFpYmFpXCA7CivmrrrkurrmnKrpgYIgPCBzYXRzdWppbm1pc3VpXCA7CivkuLjkuIDmnIggPCBtYXJ1aGl0b3RzdWtpXCA7CivotrPliKnmmYLku6MgPCBhc2hpa2FnYWppZGFpXCA7CivlvL7nnYDot53pm6IgPCBkYW5jaGFrdWt5b3JpXCA7Civogbfmpa3nl4UgPCBzaG9rdWd5b3VieW91XCA7Civli5XnianmpJzmn7sgPCBkb3VidXRzdWtlbnNhXCA7CivolqzppIznmYLms5UgPCB5YWt1amlyeW91aG91XCA7CivkurrplpPlm73lrp0gPCBuaW5nZW5rb2t1aG91XCA7CivkuLjkuIDml6UgPCBtYXJ1aWNoaW5pY2hpXCA7Civnt4ropoHlnLDlvaIgPCBraW4nJ3lvdWNoaWtlaVwgOwor5biC5aC05oiQ6ZW3IDwgc2hpam91c2VpY2hvdVwgOwor5oyH5ZCN5oqV56WoIDwgc2hpbWVpdG91aHlvdVwgOwor5ZGJ6LaK5ZCM6IifIDwgZ29ldHN1ZG91c2h1dVwgOwor5a6F5Zyw6YCg5oiQIDwgdGFrdWNoaXpvdXNlaVwgOwor57K+56We5Yq05YONIDwgc2Vpc2hpbnJvdWRvdVwgOwor5a625peP6KiI55S7IDwga2F6b2t1a2Vpa2FrdVwgOwor6ZaL5Y+j5LiA55WqIDwga2Fpa291aWNoaWJhblwgOwor55u057O75Y2R5bGeIDwgY2hva2tlaWhpem9rdVwgOwor5Ymy6LOm5pa55byPIDwga2FwcHVob3VzaGlraVwgOwor5q+S54mp5a2mIDwgZG9rdWJ1dHN1Z2FrdVwgOwor5Yuk5Yq05aSn6KGGIDwga2lucm91dGFpc2h1dVwgOwor5pyq5Y+O5YWl6YeRIDwgbWlzaHV1bnl1dWtpblwgOwor6aKo5L+X5Za25qWtIDwgZnV1em9rdWVpZ3lvdVwgOwor5rCR5L+X6Z+z5qW9IDwgbWluem9rdW9uZ2FrdVwgOwor5rW35rC05rW05aC0IDwga2Fpc3VpeW9rdWpvdVwgOwor6YCj5ZCI5L2c5oimIDwgcmVuZ291c2FrdXNlblwgOwor5Lih6JOL5pmC6KiIIDwgcnlvdWJ1dGFkb2tlaVwgOwor5Li75a6i6Lui5YCSIDwgc2h1a2FrdXRlbnRvdVwgOwor5bCx6IG35YWIIDwgc2h1dXNob2t1c2FraVwgOwor5pCN55uK5YuY5a6aIDwgc29uJydla2lrYW5qb3VcIDsKK+WLleWKm+mZjeS4iyA8IGRvdXJ5b2t1a291a2FcIDsKK+S4ieinkumXmOS6iSA8IHNhbmtha3V0b3Vzb3VcIDsKK+mAgOWtpuWHpuWIhiA8IHRhaWdha3VzaG9idW5cIDsKK+Wun+mok+adkOaWmSA8IGppa2tlbnphaXJ5b3VcIDsKK+WPo+e0hOadnyA8IGt1Y2hpeWFrdXNva3VcIDsKK+WvvuaIpui7iueBq+WZqCA8IHRhaXNlbnNoYWtha2lcIDsKK+W8l+WMluawtOe0oOmFuCA8IGZ1a2thc3Vpc29zYW5cIDsKK+mHjeimgeeUo+alrSA8IGp1dXlvdXNhbmd5b3VcIDsKK+a2suS9k+eHg+aWmSA8IGVraXRhaW5lbnJ5b3VcIDsKK+S8nemBk+mbhuS8miA8IGRlbmRvdXNodXVrYWlcIDsKK+WFq+mdouWFreiHgiA8IGhhY2hpbWVucm9wcGlcIDsKK+Wun+WKm+iAhSA8IGppdHN1cnlva3VzaGFcIDsKK+aJjeawl+eFpeeZuiA8IHNhaWtpa2FucGF0c3VcIDsKK+aEn+aDheihqOePviA8IGthbmpvdWh5b3VnZW5cIDsKK+a5p+WHuumHjyA8IHl1dXNodXRzdXJ5b3VcIDsKK+S6uueoruW3ruWIpSA8IGppbnNodXNhYmV0c3VcIDsKK+iLseWbveeZuumfsyA8IGVpa29rdWhhdHN1b25cIDsKK+eEoemZkOaVsOWIlyA8IG11Z2Vuc3V1cmV0c3VcIDsKK+eGn+aFruaWreihjCA8IGp1a3VyeW9kYW5rb3VcIDsKK+etkuS6leetkiA8IHRzdXRzdWlkenV0c3VcIDsKK+ebtOS6pOW6p+aomSA8IGNob2trb3V6YWh5b3VcIDsKK+WMl+WkquW5s+a0iyA8IGtpdGF0YWloZWl5b3VcIDsKK+eUt+WjsOWQiOWUsSA8IGRhbnNlaWdhc3Nob3VcIDsKK+iDg+iFuOeXheWtpiA8IGljaG91YnlvdWdha3VcIDsKK+S4ieinkumWouS/giA8IHNhbmtha3VrYW5rZWlcIDsKK+ebuOijnOaAp+WOn+eQhiA8IHNvdWhvc2VpZ2VucmlcIDsKK+iSuOawl+apn+mWoui7iiA8IGpvdWtpa2lrYW5zaGFcIDsKK+WNmOeLrOS8muimiyA8IHRhbmRva3VrYWlrZW5cIDsKK+S8muWgguWPuCA8IGthaWRvdWR6dWthc2FcIDsKK+mWk+ath+eGsSA8IGthbmtldHN1bmV0c3VcIDsKK+iyoeeUo+ebuOe2miA8IHphaXNhbnNvdXpva3VcIDsKK+S4iuaZuuWkp+WtpiA8IGpvdWNoaWRhaWdha3VcIDsKK+aWh+WMluS6i+alremDqCA8IGJ1bmthamlneW91YnVcIDsKK+eEoeiomOWQjeekvuWCtSA8IG11a2ltZWlzaGFzYWlcIDsKK+WDp+W6teeUn+a0uyA8IHNvdWFuc2Vpa2F0c3VcIDsKK+azleW+i+eUqOiqniA8IGhvdXJpdHN1eW91Z29cIDsKK+mbjOmbhOmBuOaKniA8IHNoaXl1dXNlbnRha3VcIDsKK+eZvuiKsee5muS5sSA8IGh5YWtrYXJ5b3VyYW5cIDsKK+mfs+alveeZguazlSA8IG9uZ2FrdXJ5b3Vob3VcIDsKK+S9j+awkeeZu+mMsiA8IGp1dW1pbnRvdXJva3VcIDsKK+aWreWxpOWGmeecnyA8IGRhbnNvdXNoYXNoaW5cIDsKK+WNoOmgmOWcsOW4ryA8IHNlbnJ5b3VjaGl0YWlcIDsKK+iWrOWTgeS8muekviA8IHlha3VoaW5nYWlzaGFcIDsKK+WHuuWPo+iqv+afuyA8IGRlZ3VjaGljaG91c2FcIDsKK+WQiOWQjOaFsOmciuelrSA8IGdvdWRvdWlyZWlzYWlcIDsKK+iDveWLleWFjeeWqyA8IG5vdWRvdW1lbicnZWtpXCA7CivlnKjnlZnpgqbkurogPCB6YWlyeXV1aG91amluXCA7Civpuqbol4HntLDlt6UgPCBtdWdpd2FyYXNhaWt1XCA7Civlk7LlrabnmoQgPCB0ZXRzdWdha3V0ZWtpXCA7Civlt6Xoirjnvo7ooZMgPCBrb3VnZWliaWp1dHN1XCA7Civoqq3llIfooZMgPCBkb2t1c2hpbmp1dHN1XCA7CivoiKrnqbrmlLvmkoMgPCBrb3VrdXVrb3VnZWtpXCA7Civoo7jpm7vnkIMgPCBoYWRha2FkZW5reXV1XCA7Civph43ph4/pgbjmiYsgPCBqdXVyeW91c2Vuc2h1XCA7CivotaTnq4vnvr3onbYgPCBha2F0YXRlaGFjaG91XCA7Civngavngb3loLHnn6XmqZ8gPCBrYXNhaWhvdWNoaWtpXCA7Civom4vnmb3os6ogPCB0YW5wYWt1c2hpdHN1XCA7CivmhJvps6XpgLHplpMgPCBhaWNob3VzaHV1a2FuXCA7Civlt6Xmpa3ljJblraYgPCBrb3VneW91a2FnYWt1XCA7CivmioDooZPmj5DmkLogPCBnaWp1dHN1dGVpa2VpXCA7CivkuK3mgKflrZDmmJ8gPCBjaHV1c2Vpc2hpc2VpXCA7CivmjpLms4TniakgPCBoYWlzZXRzdWJ1dHN1XCA7Civpo5/ogonnm64gPCBzaG9rdW5pa3Vtb2t1XCA7CivlhazlhbHkuovmpa0gPCBrb3VreW91amlneW91XCA7CivkuIrotormnKznt5ogPCBqb3VldHN1aG9uc2VuXCA7CivmtLvli5XlipsgPCBrYXRzdWRvdXJ5b2t1XCA7CivnhKHlhJ/lpZHntIQgPCBtdXNob3VrZWl5YWt1XCA7Civpm7vms6LmjqLnn6XmqZ8gPCBkZW5wYXRhbmNoaWtpXCA7CivploPlhYnpm7vnkIMgPCBzZW5rb3VkZW5reXV1XCA7Civlm73nsY3oqIDoqp4gPCBrb2t1c2VraWdlbmdvXCA7CivlrprmuKnli5XniakgPCB0ZWlvbmRvdWJ1dHN1XCA7CivnqbrliY3ntbblvowgPCBrdXV6ZW56ZXRzdWdvXCA7CivkvrXnlaXnmoQgPCBzaGlucnlha3V0ZWtpXCA7CivmrablipvlpJbkuqQgPCBidXJ5b2t1Z2Fpa291XCA7Civlh53pm4blipsgPCBneW91c2h1dXJ5b2t1XCA7CivmiLjnsY3mioTmnKwgPCBrb3Nla2lzaG91aG9uXCA7CivmnJ3prq7ljYrls7YgPCBjaG91c2VuaGFudG91XCA7Civlj6/lpInmirXmipflmaggPCBrYWhlbnRlaWtvdWtpXCA7CivpnZ7luLjlj6zpm4YgPCBoaWpvdXNob3VzaHV1XCA7CivlhajoiKzliY3lk6ggPCB6ZW5wYW56ZW5zaG91XCA7CivlpKfkuZfku4/mlZkgPCBkYWlqb3VidWtreW91XCA7CivliIbmnpDoqabpqJMgPCBidW5zZWtpc2hpa2VuXCA7Civlhazli5nlk6HoqabpqJMgPCBrb3VtdWluc2hpa2VuXCA7Civlub3pnIrlsYvmlbcgPCB5dXVyZWl5YXNoaWtpXCA7CivmnInnlKPpmo7ntJogPCB5dXVzYW5rYWlreXV1XCA7CivmqKnlipvmlL/msrsgPCBrZW5yeW9rdXNlaWppXCA7CivohIXov6vpm7voqbEgPCBreW91aGFrdWRlbndhXCA7CivoiLnojbfoqLzliLggPCBmdW5hbmlzaG91a2VuXCA7CivmiYvml5fkv6Hlj7cgPCB0ZWJhdGFzaGluZ291XCA7CivmoITppIrlpLHoqr8gPCBlaXlvdXNoaXRjaG91XCA7CivkvZzms4HmjIfmlbAgPCBzYWtreW91c2hpc3V1XCA7Civnm7jkupLpgJrkv6EgPCBzb3Vnb3RzdXVzaGluXCA7CivooajlsaTpm6rltKkgPCBoeW91c291bmFkYXJlXCA7Civngb3lrrPlr77nrZYgPCBzYWlnYWl0YWlzYWt1XCA7Civkuovlrp/oqr/mn7sgPCBqaWppdHN1Y2hvdXNhXCA7Civml6XntYzmlrDogZ4gPCBuaWtrZWlzaGluYnVuXCA7CivkuK3plpPpgbjmjJkgPCBjaHV1a2Fuc2Vua3lvXCA7CivluILplbfpgbjmjJkgPCBzaGljaG91c2Vua3lvXCA7CivmsojpmY3mtbflsrggPCBjaGlua291a2FpZ2FuXCA7CivnjYXlrZDpoK0gPCBzaGlzaGlnYXNoaXJhXCA7Civlroflrpnpo5vooYzlo6sgPCB1Y2h1dWhpa291c2hpXCA7CivnpL7kvJrnpo/npYkgPCBzaGFrYWlmdWt1c2hpXCA7Civoq5blip/ooYzos54gPCByb25rb3Vrb3VzaG91XCA7Civlrp/ot7XouqzooYwgPCBqaXNzZW5reXV1a291XCA7CivoprPlr5/lipsgPCBrYW5zYXRzdXJ5b2t1XCA7CivmraPlia/kuozpgJogPCBzZWlmdWt1bml0c3V1XCA7CivkuqTmhJ/npZ7ntYwgPCBrb3VrYW5zaGlua2VpXCA7Civmtojosrvpnanlkb0gPCBzaG91aGlrYWt1bWVpXCA7CivohLHlipvmhJ8gPCBkYXRzdXJ5b2t1a2FuXCA7CivlsILku7vorJvluKsgPCBzZW4nJ25pbmtvdXNoaVwgOwor5pSv5Ye66aGNIDwgc2hpc2h1dHN1Z2FrdVwgOwor5aSn6YeP55Sf55SjIDwgdGFpcnlvdXNlaXNhblwgOwor5pyA6auY5qmf5a+GIDwgc2Fpa291a2ltaXRzdVwgOwor566h5bym5qW95rOVIDwga2FuZ2VuZ2FrdWhvdVwgOwor5paw5ZOB5ZCM5qeYIDwgc2hpbnBpbmRvdXlvdVwgOwor5aSn6JmQ5q66IDwgZGFpZ3lha3VzYXRzdVwgOwor5YmN5rih6YeRIDwgbWFld2F0YXNoaWtpblwgOwor55yL6K235amm5a2m6ZmiIDwga2FuZ29mdWdha3VpblwgOwor5YKZ6I2S6LKv6JOEIDwgYmlrb3VjaG9jaGlrdVwgOwor6JaE5b+X5byx6KGMIDwgaGFrdXNoaWpha2tvdVwgOwor5Yuk5Yq06ZqO57SaIDwga2lucm91a2Fpa3l1dVwgOwor5Lmz55m96ImyIDwgbnl1dWhha3VzaG9rdVwgOwor5pel5Y2w6Zai5L+CIDwgbmljaGlpbmthbmtlaVwgOwor57WC5qWt5byPIDwgc2h1dWd5b3VzaGlraVwgOwor6ZW35pyf6KiI55S7IDwgY2hvdWtpa2Vpa2FrdVwgOwor54iG55m655qEIDwgYmFrdWhhdHN1dGVraVwgOwor5LiN5pmC552A6Zm4IDwgZnVqaWNoYWt1cmlrdVwgOwor5o6S5rOE5Zmo5a6YIDwgaGFpc2V0c3VraWthblwgOwor6Iux5paH6Kej6YeIIDwgZWlidW5rYWlzaGFrdVwgOwor5YWN6LKs5p2h6aCFIDwgbWVuc2VraWpvdWtvdVwgOwor6YmE6YGT57ea6LevIDwgdGV0c3Vkb3VzZW5yb1wgOwor5Y2B5a2X6LuN6aiO5aOrIDwganV1amlndW5raXNoaVwgOwor5pS75pKD5oWL5YuiIDwga291Z2VraXRhaXNlaVwgOwor5a6a5pyf5piH57WmIDwgdGVpa2lzaG91a3l1dVwgOwor6KiY6L+w5paH5rOVIDwga2lqdXRzdWJ1bnBvdVwgOwor6Iej57GN6ZmN5LiLIDwgc2hpbnNla2lrb3VrYVwgOwor54Kt6YW46aOy5paZIDwgdGFuc2FuJydpbnJ5b3VcIDsKK+W4guWgtOaLoeWkpyA8IHNoaWpvdWtha3VkYWlcIDsKK+eyvuWvhuapn+aisCA8IHNlaW1pdHN1a2lrYWlcIDsKK+eEoeapn+mrmOWIhuWtkCA8IG11a2lrb3VidW5zaGlcIDsKK+apn+WLleitpuWvnyA8IGtpZG91a2Vpc2F0c3VcIDsKK+a4heWFg+evgCA8IGtpeW9tb3RvYnVzaGlcIDsKK+W5tOmWk+WPjuebiiA8IG5lbmthbnNodXVla2lcIDsKK+S7suijgeijgeWumiA8IGNodXVzYWlzYWl0ZWlcIDsKK+mbt+imqueItiA8IGthbWluYXJpb3lhamlcIDsKK+WBteWvn+imgeWToSA8IHRlaXNhdHN1eW91aW5cIDsKK+elnue1jOizqiA8IHNoaW5rZWlzaGl0c3VcIDsKK+aWh+iXneaYpeeniyA8IGJ1bmdlaXNodW5qdXVcIDsKK+S6uuW9ouiKneWxhSA8IG5pbmd5b3VzaGliYWlcIDsKK+awtOS4reecvOmPoSA8IHN1aWNodXVtZWdhbmVcIDsKK+WFrOW6j+iJr+S/lyA8IGtvdWpvcnlvdXpva3VcIDsKK+aOpeedgOWKmyA8IHNldGNoYWt1cnlva3VcIDsKK+S6lOaciOW5nyA8IHNhdHN1a2lub2JvcmlcIDsKK+WpmuWJjeS6pOa4iSA8IGtvbnplbmtvdXNob3VcIDsKK+WkqumZvem7kueCuSA8IHRhaXlvdWtva3V0ZW5cIDsKK+S4iuW+oeS4gOS6uiA8IGthbWlnb2ljaGluaW5cIDsKK+S4u+imgeW3pealrSA8IHNodXlvdWtvdWd5b3VcIDsKK+S4i+etieWLleeJqSA8IGthdG91ZG91YnV0c3VcIDsKK+mAhui8uOWHuiA8IGd5YWt1eXVzaHV0c3VcIDsKK+eahOS4reeOhyA8IHRla2ljaHV1cml0c3VcIDsKK+W7uuioreiyuyA8IGtlbnNldHN1aGl5b3VcIDsKK+iHpeiWquWYl+iDhiA8IGdhc2hpbnNob3V0YW5cIDsKK+aMh+aPruaJgOa8lOe/kiA8IHNoaWtpam9lbnNodXVcIDsKK+iouueZguaUr+aPtCA8IHNoaW5yeW91c2hpZW5cIDsKK+i7ouWcsOeZgumkiiA8IHRlbmNoaXJ5b3V5b3VcIDsKK+S4h+iDvemBuOaJiyA8IGJhbicnbm91c2Vuc2h1XCA7CivmlZnkvJrpn7Pmpb0gPCBreW91a2Fpb25nYWt1XCA7CivljYPovInkuIDpgYcgPCBzZW56YWlpY2hpZ3V1XCA7CivlsYjmipjnjocgPCBrdXNzZXRzdXJpdHN1XCA7Civlo7LosrflpZHntIQgPCBiYWliYWlrZWl5YWt1XCA7CivkvY/lroXlnLDluK8gPCBqdXV0YWt1Y2hpdGFpXCA7CivmuJvpgJ/oo4Xnva4gPCBnZW5zb2t1c291Y2hpXCA7CivkvY/lroXllY/poYwgPCBqdXV0YWt1bW9uZGFpXCA7CivoiLnplbflrqQgPCBzZW5jaG91c2hpdHN1XCA7CivlhY3nlqvooYDmuIUgPCBtZW4nJ2VraWtlc3NlaVwgOwor5qC45Y+N5b+c54KJIDwga2FrdWhhbicnbm91cm9cIDsKK+S4u+aVmeWupCA8IHNodWt5b3VzaGl0c3VcIDsKK+aUvuWwhOe3muWtpiA8IGhvdXNoYXNlbmdha3VcIDsKK+a1gemAmue1jOi3ryA8IHJ5dXV0c3V1a2Vpcm9cIDsKK+S6jOmFuOWMlueqkue0oCA8IG5pc2Fua2FjaGlzc29cIDsKK+Wwi+W4uOS4gOanmCA8IGppbmpvdWljaGl5b3VcIDsKK+WbveacieiyoeeUoyA8IGtva3V5dXV6YWlzYW5cIDsKK+W4guawkemajue0miA8IHNoaW1pbmthaWt5dXVcIDsKK+iogOiqnuefpeitmCA8IGdlbmdvY2hpc2hpa2lcIDsKK+WFrOWFseaUvumAgSA8IGtvdWt5b3Vob3Vzb3VcIDsKK+WupOWGhealvSA8IHNoaXRzdW5haWdha3VcIDsKK+aWkeeKtue1hOe5lCA8IGhhbmpvdXNvc2hpa2lcIDsKK+S6uuaDheipsSA8IG5pbmpvdWJhbmFzaGlcIDsKK+mHjeeIhuaSg+apnyA8IGp1dWJha3VnZWtpa2lcIDsKK+WpmuWkluS6pOa4iSA8IGtvbmdhaWtvdXNob3VcIDsKK+S7suijgeijgeWIpCA8IGNodXVzYWlzYWliYW5cIDsKK+S+r+eIteWkq+S6uiA8IGtvdXNoYWt1ZnVqaW5cIDsKK+a/g+e3keiJsiA8IG5vdXJ5b2t1c2hva3VcIDsKK+acieiJsumHjuiPnCA8IHl1dXNob2t1eWFzYWlcIDsKK+mbhuWbo+iotOionyA8IHNodXVkYW5zb3Nob3VcIDsKK+S4gOasoeeUo+alrSA8IGljaGlqaXNhbmd5b3VcIDsKK+e3tOe/kuS4jei2syA8IHJlbnNodXVidXNva3VcIDsKK+WVhuiIueWtpuagoSA8IHNob3VzZW5nYWtrb3VcIDsKK+m6puiXgeicu+ibiSA8IG11Z2l3YXJhdG9uYm9cIDsKK+iHquWLlei7iumbu+ipsSA8IGppZG91c2hhZGVud2FcIDsKK+aciemZkOmbhuWQiCA8IHl1dWdlbnNodXVnb3VcIDsKK+i/veWKoOaWmemHkSA8IHRzdWlrYXJ5b3VraW5cIDsKK86g5Lit6ZaT5a2QIDwgcGFpY2h1dWthbnNoaVwgOwor6YGg6ZqU5pWZ6IKyIDwgZW5rYWt1a3lvdWlrdVwgOwor6ISz6ISK6auE5rayIDwgbm91c2VraXp1aWVraVwgOwor5oOF5aCx5Y+v6KaW5YyWIDwgam91aG91a2FzaGlrYVwgOwor5p2x6KW/5Y2X5YyXIDwgdG91emFpbmFuYm9rdVwgOwor6Kix5a6557ea6YePIDwga3lveW91c2VucnlvdVwgOwor5q2j5pyt5YCk5q61IDwgc2hvdWZ1ZGFuZWRhblwgOwor5b+c5o6l5a6kIDwgb3VzZXRzdXNoaXRzdVwgOwor5beu5Yil6Zai56iOIDwgc2FiZXRzdWthbnplaVwgOwor5Lit562J5a2m5qChIDwgY2h1dXRvdWdha2tvdVwgOwor566h5bym5qW95ZujIDwga2FuZ2VuZ2FrdWRhblwgOwor5L6155Wl5Zu9IDwgc2hpbnJ5YWt1a29rdVwgOwor5a+E55Sf55Sf54mpIDwga2lzZWlzZWlidXRzdVwgOwor5Li75qip5Zue5b6pIDwgc2h1a2Vua2FpZnVrdVwgOwor5Lih6YOo56We6YGTIDwgcnlvdWJ1c2hpbnRvdVwgOwor5L6N5rCX6LOqIDwgc2FtdXJhaWthdGFnaVwgOwor55Sz6L685pu4IDwgbW91c2hpa29taXNob1wgOwor57W55biD5LiA5be7IDwga2VucHVoaXRvbWFraVwgOwor6YGO5Zyn5a+G5q+UIDwga2FhdHN1bWl0c3VoaVwgOwor5pGC5rCP77yS77yQ5bqmIDwgc2Vzc2hpbmlqdXVkb1wgOwor6Ieq54S26YG45oqeIDwgc2hpemVuc2VudGFrdVwgOwor55u06Kqs5rOVIDwgY2hva3VzZXRzdWhvdVwgOwor5LiL55S66aKoIDwgc2hpdGFtYWNoaWZ1dVwgOwor5Y+N5b+c6YCf5bqmIDwgaGFuJydub3Vzb2t1ZG9cIDsKK+Wwj+Wei+i1pOWutuiaiiA8IGtvZ2F0YWFrYWlla2FcIDsKK+WBteWvn+ihm+aYnyA8IHRlaXNhdHN1ZWlzZWlcIDsKK+mjn+S4reavkiA8IHNob2t1Y2h1dWRva3VcIDsKK+ato+WJr+itsOmVtyA8IHNlaWZ1a3VnaWNob3VcIDsKK+eUo+WHuumrmCA8IHNhbnNodXRzdWRha2FcIDsKK+elnuWJjee1kOWpmiA8IHNoaW56ZW5rZWtrb25cIDsKK+azleeahOaJi+autSA8IGhvdXRla2lzaHVkYW5cIDsKK+S9nOalremgmOWfnyA8IHNhZ3lvdXJ5b3Vpa2lcIDsKK+W5tOmHkeiovOabuCA8IG5lbmtpbnNob3VzaG9cIDsKK+S6pOmAmuWmqOWusyA8IGtvdXRzdXVib3VnYWlcIDsKK+eUuuadkeWQiOS9tSA8IGNob3Vzb25nYXBwZWlcIDsKK+aVmeS8muaXi+azlSA8IGt5b3VrYWlzZW5wb3VcIDsKK+W5leiXqeS9k+WItiA8IGJha3VoYW50YWlzZWlcIDsKK+esrOS4gOWNsOixoSA8IGRhaWljaGlpbnNob3VcIDsKK+ecn+epuuWMheijhSA8IHNoaW5rdXVob3Vzb3VcIDsKK+ebo+afu+iovOi3oSA8IGthbnNhc2hvdXNla2lcIDsKK+iqmOWwjumbu+a1gSA8IHl1dWRvdWRlbnJ5dXVcIDsKK+W+qeaXp+S9nOalrSA8IGZ1a2t5dXVzYWd5b3VcIDsKK+S+m+WHuuexsyA8IGt5b3VzaHV0c3VtYWlcIDsKK+aQjeWus+izoOWEnyA8IHNvbmdhaWJhaXNob3VcIDsKK+aDs+WDj+WmiuWooCA8IHNvdXpvdW5pbnNoaW5cIDsKK+iZmuW/g+WdpuaHkCA8IGt5b3NoaW50YW5rYWlcIDsKK+iAkOmch+ani+mAoCA8IHRhaXNoaW5rb3V6b3VcIDsKK+aciemZkOe0muaVsCA8IHl1dWdlbmt5dXVzdXVcIDsKK+Wil+ioreeOhyA8IHpvdXNldHN1cml0c3VcIDsKK+WbveWcn+ioiOeUuyA8IGtva3Vkb2tlaWtha3VcIDsKK+eUn+WtmOertuS6iSA8IHNlaXpvbmt5b3Vzb3VcIDsKK+e1kOWpmuaKq+mcsuWutCA8IGtla2tvbmhpcm91ZW5cIDsKK+W4guawkemdqeWRvSA8IHNoaW1pbmtha3VtZWlcIDsKK+Wcp+WKm+mNiyA8IGF0c3VyeW9rdW5hYmVcIDsKK+Wkp+e1semgmOmBuCA8IGRhaXRvdXJ5b3VzZW5cIDsKK+ijnOe/kuaVmeiCsiA8IGhvc2h1dWt5b3Vpa3VcIDsKK+WPuOS7pOmVt+WumCA8IHNoaXJlaWNob3VrYW5cIDsKK+izg+mHkeS9k+ezuyA8IGNoaW5naW50YWlrZWlcIDsKK+a1t+S4iuiHquihm+maiiA8IGthaWpvdWppZWl0YWlcIDsKK+WFqOS6uuaVmeiCsiA8IHplbmppbmt5b3Vpa3VcIDsKK+WumOaIv+mVt+WumCA8IGthbmJvdWNob3VrYW5cIDsKK+S8gealreenmOWvhiA8IGtpZ3lvdWhpbWl0c3VcIDsKK+auuuS6uuS6i+S7tiA8IHNhdHN1amluamlrZW5cIDsKK+Wbo+agl+ecvCA8IGRvbmd1cmltYW5ha29cIDsKK+Wcp+WKm+mHnCA8IGF0c3VyeW9rdWdhbWFcIDsKK+WHtuaCqueKr+e9qiA8IGt5b3Vha3VoYW56YWlcIDsKK+WkqeeEtuizh+a6kCA8IHRlbicnbmVuc2hpZ2VuXCA7Civnmb7lp5PkuIDmj4YgPCBoeWFrdXNob3Vpa2tpXCA7Civljp/moYjlp5Tlk6HkvJogPCBnZW4nJ2FuJydpaW5rYWlcIDsKK+awl+WvhuWupCA8IGtpbWl0c3VzaGl0c3VcIDsKK+e3j+WQiOWkp+WtpiA8IHNvdWdvdWRhaWdha3VcIDsKK+S7j+mgguWwiuWLnSA8IGJ1Y2hvdXNvbnNob3VcIDsKK+WNg+W3ruS4h+WIpSA8IHNlbnNhYmFuYmV0c3VcIDsKK+mBuOaJi+aoqeippuWQiCA8IHNlbnNodWtlbmppYWlcIDsKK+e2sueKtue1hOe5lCA8IG1vdWpvdXNvc2hpa2lcIDsKK+esrOS4gOmDqOmVtyA8IGRhaWljaGlidWNob3VcIDsKK+a6lua6luaxuuWLnSA8IGp1bmp1bmtlc3Nob3VcIDsKK+Wkp+WSjOawkeaXjyA8IHlhbWF0b21pbnpva3VcIDsKK+W/nOaOpeS/giA8IG91c2V0c3VnYWthcmlcIDsKK+WcsOauu+WkieWLlSA8IGNoaWtha3VoZW5kb3VcIDsKK+iyoeaUv+aUuemdqSA8IHphaXNlaWthaWtha3VcIDsKK+WFseWQjOioiOeulyA8IGt5b3Vkb3VrZWlzYW5cIDsKK+Wls+aIv+ipniA8IG55b3Vib3Vrb3RvYmFcIDsKK+WGmeecn+mbu+mAgSA8IHNoYXNoaW5kZW5zb3VcIDsKK+WIhuWIl+W8jyA8IGJ1bnJldHN1c2hpa2lcIDsKK+S4jeiJr+iouuaWrSA8IGZ1cnlvdXNoaW5kYW5cIDsKK+awtOeUo+Wkp+WtpiA8IHN1aXNhbmRhaWdha3VcIDsKK+WNmOW8j+eBq+WxsSA8IHRhbnNoaWtpa2F6YW5cIDsKK+S4gOWIhuS4gOWOmCA8IGljaGlidWljaGlyaW5cIDsKK+Wun+WcsOaknOiovCA8IGppdGNoaWtlbnNob3VcIDsKK+WMl+a4heS6i+WkiSA8IGhva3VzaGluamloZW5cIDsKK+S6uumdoueNo+W/gyA8IG5pbm1lbmp1dXNoaW5cIDsKK+imquS7u+W8jyA8IHNoaW4nJ25pbnNoaWtpXCA7CivoqIjnlLvmrrXpmo4gPCBrZWlrYWt1ZGFua2FpXCA7CivnlJ/mtLvlipsgPCBzZWlrYXRzdXJ5b2t1XCA7CivnpL7lk6Hpo5/loIIgPCBzaGFpbnNob2t1ZG91XCA7Civpg7Xkvr/mlpnph5EgPCB5dXViaW5yeW91a2luXCA7CivkupTljYHkuInmrKEgPCBnb2p1dXNhbnRzdWdpXCA7CivlhKrli53liqPmlZcgPCB5dXVzaG91cmVwcGFpXCA7Civlv6vpgJ/liJfou4ogPCBrYWlzb2t1cmVzc2hhXCA7Civpm6PmsJHmnaHntIQgPCBuYW5taW5qb3V5YWt1XCA7Civlm73pmpvmlL7pgIEgPCBrb2t1c2FpaG91c291XCA7Civlha3ljYHkvZnlt54gPCByb2t1anV1eW9zaHV1XCA7CivmgKXooYzliJfou4ogPCBreXV1a291cmVzc2hhXCA7Civml6XlkozopovkuLvnvqkgPCBoaXlvcmltaXNodWdpXCA7Civmo67mnpflnLDluK8gPCBzaGlucmluY2hpdGFpXCA7Civpjpblm73mlL/nrZYgPCBzYWtva3VzZWlzYWt1XCA7CivlhbfosaHnvo7ooZMgPCBndXNob3ViaWp1dHN1XCA7Civmh5Dnn7PmlpnnkIYgPCBrYWlzZWtpcnlvdXJpXCA7CivnsKHmmJPpo5/loIIgPCBrYW4nJ2lzaG9rdWRvdVwgOwor5pqX6buS5aSn6Zm4IDwgYW5rb2t1dGFpcmlrdVwgOwor6aeF6ZW35a6kIDwgZWtpY2hvdXNoaXRzdVwgOwor5Y+N5YuV6Z2p5ZG9IDwgaGFuZG91a2FrdW1laVwgOwor5YWt5qC55riF5rWEIDwgcm9ra29uc2hvdWpvdVwgOwor5ZWG5qWt5Li7576pIDwgc2hvdWd5b3VzaHVnaVwgOwor5Luu6KOF6Iie6LiP5LyaIDwga2Fzb3VidXRvdWthaVwgOwor5L+h6aC86Ya45oiQIDwgc2hpbnJhaWpvdXNlaVwgOwor5YWx5ZCM5aOw5piOIDwga3lvdWRvdXNlaW1laVwgOwor6YGu5YWJ5Zmo5Zyf5YG2IDwgc2hha291a2lkb2d1dVwgOwor5Ymy5byV5YiH56ymIDwgd2FyaWJpa2lraXBwdVwgOwor5LiL5rC05Yem55CG5aC0IDwgZ2VzdWlzaG9yaWpvdVwgOwor5Ya35Y205pyf6ZaTIDwgcmVpa3lha3VraWthblwgOwor5oGZ6JmrIDwgdHN1dHN1Z2FtdXNoaVwgOwor5Lmd5q275LiA55SfIDwga3l1dXNoaWlzc2hvdVwgOwor5Lit6I+v5rCR5Zu9IDwgY2h1dWthbWlua29rdVwgOwor5ZCI55CG5Li7576p6ICFIDwgZ291cmlzaHVnaXNoYVwgOwor5ouh5aOw6KOF572uIDwga2FrdXNlaXNvdWNoaVwgOwor6YGT6Lev5bu66KitIDwgZG91cm9rZW5zZXRzdVwgOwor5Lq66YCg5a6d55+zIDwgamluem91aG91c2VraVwgOwor6Ly45Ye65L+d6Zm6IDwgeXVzaHV0c3Vob2tlblwgOwor5b+F5L+u56eR55uuIDwgaGlzc2h1dWthbW9rdVwgOwor57Wm5LiO5omA5b6XIDwga3l1dXlvc2hvdG9rdVwgOwor5q205Y+y5a2m5rS+IDwgcmVraXNoaWdha3VoYVwgOwor562J5beu5pWw5YiXIDwgdG91c2FzdXVyZXRzdVwgOwor5ZCb5a2Q6LG55aSJIDwga3Vuc2hpaHlvdWhlblwgOwor5LiL6KGo5Y+C54WnIDwga2FoeW91c2Fuc2hvdVwgOwor5Yui5Yqb56+E5ZuyIDwgc2Vpcnlva3VoYW4nJ2lcIDsKK+mAmuiyqOaUv+etliA8IHRzdXVrYXNlaXNha3VcIDsKK+eLrOWNoOS8gealrSA8IGRva3VzZW5raWd5b3VcIDsKK+eJueaoqemajue0miA8IHRva2tlbmthaWt5dXVcIDsKK+ato+imj+absue3miA8IHNlaWtpa3lva3VzZW5cIDsKK+WCjeiBtOeEoeaWmSA8IGJvdWNob3VtdXJ5b3VcIDsKK+eUo+alreizh+acrCA8IHNhbmd5b3VzaGlob25cIDsKK+alveWZqOa8lOWlj+iAhSA8IGdha2tpZW5zb3VzaGFcIDsKK+eri+efs+mbu+apnyA8IHRhdGVpc2hpZGVua2lcIDsKK+WknOmWk+S4reWtpiA8IHlha2FuY2h1dWdha3VcIDsKK+iyv+aYk+aRqeaTpiA8IGJvdWVraW1hc2F0c3VcIDsKK+W5tOi8quWPsuWtpiA8IG5lbnJpbnNoaWdha3VcIDsKK+WutuS7mOWomCA8IGlldHN1a2ltdXN1bWVcIDsKK+apn+aisOe/u+iosyA8IGtpa2FpaG9uJyd5YWt1XCA7Civph5Hnp5HnjonmnaEgPCBraW5rYWd5b2t1am91XCA7CivmsJHplpPnmYLms5UgPCBtaW5rYW5yeW91aG91XCA7Civmg4Xms4HoqLzmi6AgPCBqb3VreW91c2hvdWtvXCA7Civlj6TlhbjkuLvnvqnogIUgPCBrb3RlbnNodWdpc2hhXCA7Civlv4PmgrjkuqLpgLIgPCBzaGlua2lrb3VzaGluXCA7Civlm73lnJ/lnLDnkIbpmaIgPCBrb2t1ZG9jaGlyaWluXCA7CivlrprmgKfliIbmnpAgPCB0ZWlzZWlidW5zZWtpXCA7CivluILooZfljJbljLrln58gPCBzaGlnYWlrYWt1aWtpXCA7CivnibnoqLHmioDooZMgPCB0b2treW9naWp1dHN1XCA7CivloLHpgZPlhpnnnJ8gPCBob3Vkb3VzaGFzaGluXCA7CivmnIDkvY7os4Pph5EgPCBzYWl0ZWljaGluZ2luXCA7Civnmb7ml6XojYkgPCBoeWFrdW5pY2hpc291XCA7CivnnqzplpPpm7vmlq0gPCBzaHVua2FuZGVuZGFuXCA7CivlubTpoK3mlZnmm7ggPCBuZW50b3VreW91c2hvXCA7CivmnbHmtIvmrrXpgJogPCB0b3V5b3VkYW50c3V1XCA7Civni6zljaDos4fmnKwgPCBkb2t1c2Vuc2hpaG9uXCA7CivmnbHmlrnmlZnkvJogPCB0b3Vob3VreW91a2FpXCA7Civpm7vmsJfmqZ/plqLou4ogPCBkZW5raWtpa2Fuc2hhXCA7Civoh6ropprnl4fnirYgPCBqaWtha3VzaG91am91XCA7CivlpKnkvZPoprPmuKwgPCB0ZW50YWlrYW5zb2t1XCA7CivnvqTpm4booYzli5UgPCBndW5zaHV1a291ZG91XCA7CivooYbkurrnkrDoppYgPCBzaHV1amlua2Fuc2hpXCA7Civov7fotbDnpZ7ntYwgPCBtZWlzb3VzaGlua2VpXCA7CivmiKbnlaXlhbXlmaggPCBzZW5yeWFrdWhlaWtpXCA7CivlhYjliLbmlLvmkoMgPCBzZW5zZWlrb3VnZWtpXCA7CivmnInntabkvJHmmocgPCB5dXVreXV1a3l1dWthXCA7Civopovlrabml4XooYwgPCBrZW5nYWt1cnlva291XCA7Civlm73lhoXntYzmuIggPCBrb2t1bmFpa2VpemFpXCA7Civlr77nqbrlsITmkoMgPCB0YWlrdXVzaGFnZWtpXCA7Civmr5TovIPlr77nhacgPCBoaWtha3V0YWlzaG91XCA7CivluILkuK3pioDooYwgPCBzaGljaHV1Z2lua291XCA7CivlrprngrnoprPmuKwgPCB0ZWl0ZW5rYW5zb2t1XCA7Civkv4PmiJDmoL3ln7kgPCBzb2t1c2Vpc2FpYmFpXCA7CivkuKHkuInml6UgPCByeW91c2FuJyduaWNoaVwgOwor6LOD6YeR5qC85beuIDwgY2hpbmdpbmtha3VzYVwgOwor5pSv6YWN6ZqO57SaIDwgc2hpaGFpa2Fpa3l1dVwgOwor5LqM6YeN6Zyy5Ye6IDwgbmlqdXVyb3NodXRzdVwgOwor5YuV6ISI56Gs5YyWIDwgZG91bXlha3Vrb3VrYVwgOwor6Zqj5o6l6YOo6ZqKIDwgcmluc2V0c3VidXRhaVwgOwor5bu66Kit5qmf5qKwIDwga2Vuc2V0c3VraWthaVwgOwor5LiK5bGk6ZqO57SaIDwgam91c291a2Fpa3l1dVwgOwor5LiJ5oud5Lmd5oudIDwgc2FucGFpa3l1dWhhaVwgOwor6ZaL5qCh6KiY5b+15pelIDwga2Fpa291a2luZW5iaVwgOwor5LiN5Y+v55+l6KuW6ICFIDwgZnVrYWNoaXJvbnNoYVwgOwor5peX6KGM5YiXIDwgaGF0YWd5b3VyZXRzdVwgOwor54m55q6K5rOV5Lq6IDwgdG9rdXNodWhvdWppblwgOwor5aOr6a2C5ZWG5omNIDwgc2hpa29uc2hvdXNhaVwgOwor5YK355eF5o2V6JmcIDwgc2hvdWJ5b3Vob3J5b1wgOwor54Sh5oCn55Sf5q6WIDwgbXVzZWlzZWlzaG9rdVwgOwor55yJ5ZS+54mpIDwgbWF5dXRzdWJhbW9ub1wgOwor6LKh5pS/5pS/562WIDwgemFpc2Vpc2Vpc2FrdVwgOwor6Zm45LiK56u25oqAIDwgcmlrdWpvdWt5b3VnaVwgOwor5Y2a6Kan5by36KiYIDwgaGFrdXJhbmt5b3VraVwgOwor5Lq65qip5L615a6zIDwgamlua2Vuc2hpbmdhaVwgOwor57eP6aCY5oGv5a2QIDwgc291cnlvdW11c3Vrb1wgOwor6YCy6KGM5L+CIDwgc2hpbmtvdWdha2FyaVwgOwor6I+c6aOf5Li7576pIDwgc2Fpc2hva3VzaHVnaVwgOwor54Sh6KiY5ZCN5YK15qipIDwgbXVraW1laXNhaWtlblwgOwor6LWk5aSW55m65pWjIDwgc2VraWdhaWhhc3NhblwgOwor6KGb5pif6YCa5L+hIDwgZWlzZWl0c3V1c2hpblwgOwor5Lq65ZOh5YmK5ribIDwgamluJydpbnNha3VnZW5cIDsKK+WLleakjeeJqSA8IGRvdXNob2t1YnV0c3VcIDsKK+eOh+WFiOi6rOihjCA8IHNvc3Nlbmt5dXVrb3VcIDsKK+WFjeeojuaJgOW+lyA8IG1lbnplaXNob3Rva3VcIDsKK+mYsue4ruWKoOW3pSA8IGJvdXNodWt1a2Frb3VcIDsKK+ikh+W8j+ewv+iomCA8IGZ1a3VzaGlraWJva2lcIDsKK+iyrOS7u+WIhuaLhSA8IHNla2luaW5idW50YW5cIDsKK+atpuWKm+ihjOS9vyA8IGJ1cnlva3Vrb3VzaGlcIDsKK+eVque1hOe3qOaIkCA8IGJhbmd1bWloZW5zZWlcIDsKK+WFqOazouWPl+S/oeapnyA8IHplbnBhanVzaGlua2lcIDsKK+W/heimgeeJqSA8IGhpdHN1eW91YnV0c3VcIDsKK+S8keaBr+aZgumWkyA8IGt5dXVzb2t1amlrYW5cIDsKK+S4iei7uOWupCA8IHNhbmppa3VzaGl0c3VcIDsKK+S6jOmHjemWouevgCA8IG5panV1a2Fuc2V0c3VcIDsKK+W+heWQiOWupCA8IG1hY2hpYWlzaGl0c3VcIDsKK+WNmueJqeWtpiA8IGhha3VidXRzdWdha3VcIDsKK+ims+WFieeUo+alrSA8IGthbmtvdXNhbmd5b3VcIDsKK+e1kOe0ruihkyA8IGtlc3NhdHN1anV0c3VcIDsKK+WNmuW8leaXgeiovCA8IGhha3VpbmJvdXNob3VcIDsKK+a3t+WFpeeJqSA8IGtvbicnbnl1dWJ1dHN1XCA7CivlhbHosqnkvJrnpL4gPCBreW91aGFuZ2Fpc2hhXCA7Civmj5rpmbjoiaboiYcgPCB5b3VyaWt1a2FudGVpXCA7CivlhazlrrPlr77nrZYgPCBrb3VnYWl0YWlzYWt1XCA7Civpmb3li5XkvZzmiKYgPCB5b3Vkb3VzYWt1c2VuXCA7CivlubPlkozkuLvnvqnogIUgPCBoZWl3YXNodWdpc2hhXCA7Civoqpjmi5Dniq/kurogPCB5dXVrYWloYW4nJ25pblwgOwor5YaF6IeT55a+5oKjIDwgbmFpem91c2hpa2thblwgOwor5L+u5aOr6KuW5paHIDwgc2h1dXNoaXJvbmJ1blwgOwor6auY562J5pWZ6IKyIDwga291dG91a3lvdWlrdVwgOwor5ris6YeP5qmf5qKwIDwgc29rdXJ5b3VraWthaVwgOwor6ZyK5oSf5ZWG5rOVIDwgcmVpa2Fuc2hvdWhvdVwgOwor5ZGq54mp5bSH5oudIDwganVidXRzdXN1dWhhaVwgOwor5paH5Lq65aKo5a6iIDwgYnVuamluYm9ra2FrdVwgOwor5om/55+l5LmL5YqpIDwgc2hvdWNoaW5vc3VrZVwgOwor6LaK5bm06I2J5pysIDwgZXRzdW5lbnNvdWhvblwgOwor6Z2S5aSp5LqV5LqI566XIDwgYW90ZW5qb3V5b3NhblwgOwor54q25rOB5oSP5ZGz6KuWIDwgam91a3lvdWltaXJvblwgOwor6YCa5Yuk5YiX6LuKIDwgdHN1dWtpbnJlc3NoYVwgOwor5Ye65bit546HIDwgc2h1c3Nla2lyaXRzdVwgOwor57K+6YCy5paZ55CGIDwgc2hvdWppbnJ5b3VyaVwgOwor5Li75Yqb6YOo6ZqKIDwgc2h1cnlva3VidXRhaVwgOwor5ryi5a2X5paH5YyW5ZyPIDwga2FuamlidW5rYWtlblwgOwor6YO35Zyf5paH5a2mIDwga3lvdWRvYnVuZ2FrdVwgOwor55u05o6l56iOIDwgY2hva3VzZXRzdXplaVwgOwor5aSx5qWt6ICFIDwgc2hpdHN1Z3lvdXNoYVwgOwor5q2v56eR5oqA5bel5aOrIDwgc2hpa2FnaWtvdXNoaVwgOwor5pyf5pyr6Kmm6aiTIDwga2ltYXRzdXNoaWtlblwgOwor6YCj6YKm6aaW55u4IDwgcmVucG91c2h1c2hvdVwgOwor5oOF5aCx5bel5a2mIDwgam91aG91a291Z2FrdVwgOwor54mn55Wc5qWtIDwgYm9rdWNoaWt1Z3lvdVwgOwor5LiD5YiG5LiJ5YiGIDwgc2hpY2hpYnVzYW5idVwgOwor5Y+C6ICD6LOH5paZIDwgc2Fua291c2hpcnlvdVwgOwor5rW35LiK6Ly46YCB6LevIDwga2Fpam91eXVzb3Vyb1wgOwor54us5pat5bCC6KGMIDwgZG9rdWRhbnNlbmtvdVwgOwor5YWl5a2m6ICD5p+7IDwgbnl1dWdha3Vrb3VzYVwgOwor6YGt6Zuj5L+h5Y+3IDwgc291bmFuc2hpbmdvdVwgOwor5rWB5YuV6LOH55SjIDwgcnl1dWRvdXNoaXNhblwgOwor5qeL56+J54mpIDwga291Y2hpa3VidXRzdVwgOwor5LiL5Zub5Y2K5pyfIDwgc2hpbW9zaGloYW5raVwgOwor6YG45oqe56eR55uuIDwgc2VudGFrdWthbW9rdVwgOwor6Kit56uL6ICFIDwgc2V0c3VyaXRzdXNoYVwgOwor5oOF5aCx5qSc57SiIDwgam91aG91a2Vuc2FrdVwgOwor6aCC5LiK5Lya6KuHIDwgY2hvdWpvdWthaWRhblwgOwor5YWx5riI57WE5ZCIIDwga3lvdXNhaWt1bWlhaVwgOwor5Y+C6ICD5pu455uuIDwgc2Fua291c2hvbW9rdVwgOwor5rK75a6J6K2m5a+fIDwgY2hpYW5rZWlzYXRzdVwgOwor6IiI5qWt6YqA6KGMIDwga291Z3lvdWdpbmtvdVwgOwor6Kq/5YGc5aeU5ZOh5LyaIDwgY2hvdXRlaWlpbmthaVwgOwor6KGM5pS/5pu45aOrIDwgZ3lvdXNlaXNob3NoaVwgOwor6Zai6YCj6aCF55uuIDwga2FucmVua291bW9rdVwgOwor6Zuj6KGM6Ium6KGMIDwgbmFuZ3lvdWt1Z3lvdVwgOwor6KGM5pa55LiN5piO6ICFIDwgeXVrdWVmdW1laXNoYVwgOwor6aCQ6YeR6YCa5bizIDwgeW9raW50c3V1Y2hvdVwgOwor57ay6Iac5Yml6ZuiIDwgbW91bWFrdWhha3VyaVwgOwor6Ly45Ye65qSc5p+7IDwgeXVzaHV0c3VrZW5zYVwgOwor56eB5YWxIDwgd2F0YWt1c2hpZG9tb1wgOwor5oyH5a6a6YqY5p+EIDwgc2hpdGVpbWVpZ2FyYVwgOwor6YWS5rGg6IKJ5p6XIDwgc2h1Y2hpbmlrdXJpblwgOwor5YSq562J6LOe54q2IDwgeXV1dG91c2hvdWpvdVwgOwor6buE6YeR5YiG5YmyIDwgb3Vnb25idW5rYXRzdVwgOwor5L+u57mV5bel5aC0IDwgc2h1dXplbmtvdWpvdVwgOwor6Laz6ZW36JyCIDwgYXNoaW5hZ2FiYWNoaVwgOwor5LqM6ICF6YG45LiAIDwgbmlzaGFzZW4nJ2l0c3VcIDsKK+eymOa2suizqiA8IG5lbicnZWtpc2hpdHN1XCA7Civnp4HkuosgPCB3YXRha3VzaGlnb3RvXCA7Civoj4zpoZ7lrabogIUgPCBraW5ydWlnYWt1c2hhXCA7CivlpJblm73pg7Xkvr8gPCBnYWlrb2t1eXV1YmluXCA7CivkuqTpgJrlnLDnjYQgPCBrb3V0c3V1amlnb2t1XCA7Civpm4blm6PntZDlqZogPCBzaHV1ZGFua2Vra29uXCA7CivmhJvnjqnli5XniakgPCBhaWdhbmRvdWJ1dHN1XCA7CivplpPmjqXoqbHms5UgPCBrYW5zZXRzdXdhaG91XCA7CivlrabnlJ/pg6jplbcgPCBnYWt1c2VpYnVjaG91XCA7Civpm7LlvaLlrpropo8gPCBrdW1vZ2F0YWpvdWdpXCA7CivlgIvkurrnmoTmhI/oposgPCBrb2ppbnRla2lpa2VuXCA7CivlsYvlpJbluoPlkYogPCBva3VnYWlrb3Vrb2t1XCA7CivkuqHlkb3mloflraYgPCBib3VtZWlidW5nYWt1XCA7CivljJflm73otaTmtbfogIEgPCBob2trb2t1YWthZWJpXCA7CivpgKPntprplqLmlbAgPCByZW56b2t1a2Fuc3V1XCA7Civlub3pnIroqbEgPCB5dXVyZWliYW5hc2hpXCA7CivnrYbot6HpkZHlrpogPCBoaXNzZWtpa2FudGVpXCA7CivlkIzos6rnmoQgPCBkb3VzaGl0c3V0ZWtpXCA7Civlu4PnianliKnnlKggPCBoYWlidXRzdXJpeW91XCA7Civou4rkuKHkvJrnpL4gPCBzaGFyeW91Z2Fpc2hhXCA7CivpurvolqzluLjnv5IgPCBtYXlha3Vqb3VzaHV1XCA7CivkuI3lvpfopoHpoJggPCBmdXRva3V5b3VyeW91XCA7CivlsbHlsrPlnLDluK8gPCBzYW5nYWt1Y2hpdGFpXCA7CivllY/poYzpoJjln58gPCBtb25kYWlyeW91aWtpXCA7Civln7fnnYDlv4MgPCBzaHV1Y2hha3VzaGluXCA7CivlgIvliKXosqnlo7IgPCBrb2JldHN1aGFuYmFpXCA7CivlubPooaHmhJ/oppogPCBoZWlrb3VrYW5rYWt1XCA7CivlhoXlm73pg7Xkvr8gPCBuYWlrb2t1eXV1YmluXCA7CivlipvplqLkv4IgPCBjaGlrYXJha2Fua2VpXCA7CivloLHpgZPnlarntYQgPCBob3Vkb3ViYW5ndW1pXCA7CivntJnkuIroqIjnlLsgPCBzaGlqb3VrZWlrYWt1XCA7Civkuozph43lm73nsY0gPCBuaWp1dWtva3VzZWtpXCA7CivooYzmlL/oqLToqJ8gPCBneW91c2Vpc29zaG91XCA7CivntbbnuIHmirXmipcgPCB6ZXRzdWVudGVpa291XCA7CivljL/lkI3mibnoqZUgPCB0b2t1bWVpaGloeW91XCA7CivplbfmnJ/lm73lgrUgPCBjaG91a2lrb2t1c2FpXCA7CivlhYnnt5rnmYLms5UgPCBrb3VzZW5yeW91aG91XCA7CivmtYHli5Xos4fmnKwgPCByeXV1ZG91c2hpaG9uXCA7CivoqLzliLjluILloLQgPCBzaG91a2Vuc2hpam91XCA7Civng4/oirvmspnmkanlppnnjosgPCB1c3VzYW1hbXlvdW91XCA7Civlu7roqK3lt6XkuosgPCBrZW5zZXRzdWtvdWppXCA7CivlpInmhYvmgKfmrLIgPCBoZW50YWlzZWl5b2t1XCA7CivnqbrkuK3ntLDoj4wgPCBrdXVjaHV1c2Fpa2luXCA7Civku6Pph5HlvJXmj5sgPCBkYWlraW5oaWtpa2FlXCA7CivojLbnlarni4LoqIAgPCBjaGFiYW5reW91Z2VuXCA7CivkuqTpgJropo/liYcgPCBrb3V0c3V1a2lzb2t1XCA7Civnianos6rnmoQgPCBidXNzaGl0c3V0ZWtpXCA7Civnj77niannm7jloLQgPCBnZW5idXRzdXNvdWJhXCA7CivmnZ/nuJvnkIboq5YgPCBzb2t1YmFrdXJpcm9uXCA7CivlhazmraPoqLzmm7ggPCBrb3VzZWlzaG91c2hvXCA7CivlkIznm5/mgKDmpa0gPCBkb3VtZWl0YWlneW91XCA7CivooYzli5Xmlrnph50gPCBrb3Vkb3Vob3VzaGluXCA7CivpganmraPkvqHmoLwgPCB0ZWtpc2Vpa2FrYWt1XCA7CivkurrnqK7mlLnoia8gPCBqaW5zaHVrYWlyeW91XCA7Civkvb/pgJTkuI3mmI7ph5EgPCBzaGl0b2Z1bWVpa2luXCA7CivljYrmtYHli5XkvZMgPCBoYW5yeXV1ZG91dGFpXCA7Civmma7ku4/miKbkuokgPCBmdWZ1dHN1c2Vuc291XCA7CivokrjnmbrnhrEgPCBqb3VoYXRzdW5ldHN1XCA7Civkuozph43ntZDlkIggPCBuaWp1dWtldHN1Z291XCA7CivlhY3osqznibnmqKkgPCBtZW5zZWtpdG9ra2VuXCA7Civmh7LmiJLlh6bliIYgPCBjaG91a2Fpc2hvYnVuXCA7CivkuI3lv4PlvpfogIUgPCBmdWtva29yb2Vtb25vXCA7CivosarmlL7no4rokL0gPCBnb3Vob3VyYWlyYWt1XCA7CivoiabnoLLlsITmkoMgPCBrYW5wb3VzaGFnZWtpXCA7CivplqLmlbDop6PmnpAgPCBrYW5zdXVrYWlzZWtpXCA7CivmsJHkuLvljJbpgYvli5UgPCBtaW5zaHVrYXVuZG91XCA7CivlpKnmsJfnm7joq4fmiYAgPCB0ZW5raXNvdWRhbmpvXCA7CivpgJrkv6HorJvluqcgPCB0c3V1c2hpbmtvdXphXCA7CivlpJbosqjnjbLlvpcgPCBnYWlrYWtha3V0b2t1XCA7Civlj4LliqDluIzmnJvogIUgPCBzYW5rYWtpYm91c2hhXCA7Civmh5DnlpHkuLvnvqnogIUgPCBrYWlnaXNodWdpc2hhXCA7Civpm7vmsJfmurbmjqUgPCBkZW5raXlvdXNldHN1XCA7CivlkK7nmbDoiJDnl5QgPCBzZW4nJ3lvdXNoaWppXCA7CivlirTlg43mnaHku7YgPCByb3Vkb3Vqb3VrZW5cIDsKK+WkluWbveiIqui3ryA8IGdhaWtva3Vrb3Vyb1wgOwor5Lyd6YCB6YCf5bqmIDwgZGVuc291c29rdWRvXCA7CivkuIDmnKzoqr/lrZAgPCBpcHBvbmRqb3VzaGlcIDsKK+WinOiQveS6i+aVhSA8IHRzdWlyYWt1amlrb1wgOwor6Jap5pGp6ZalIDwgc2F0c3VtYWJhdHN1XCA7CivoppbogbTnjocgPCBzaGljaG91cml0c3VcIDsKK+e3mummmeiKseeBqyA8IHNlbmtvdWhhbmFiaVwgOwor5p2x5Lqs6YO95pS/IDwgdG91a3lvdXRvc2VpXCA7Civou43kuovnlKPmpa0gPCBndW5qaXNhbmd5b3VcIDsKK+S7o+eQhueJp+W4qyA8IGRhaXJpYm9rdXNoaVwgOwor5LiJ5Y2B5LiJ5omAIDwgc2FuanV1c2Fuc2hvXCA7CivkuIDmrKHnt5rovKogPCBpY2hpamlzZW5yaW5cIDsKK+eVs+awtOe3tCA8IHRhdGFtaXN1aXJlblwgOwor5L6h5qC85aSJ5YuVIDwga2FrYWt1aGVuZG91XCA7CivmgqDmgqDoh6rpgakgPCB5dXV5dXVqaXRla2lcIDsKK+Wxsee0q+awtOaYjiA8IHNhbnNoaXN1aW1laVwgOwor5bmV5YOa6ZW3IDwgYmFrdXJ5b3VjaG91XCA7CivnqbrovLjosqjniakgPCBrdXV5dWthbW90c3VcIDsKK+ims+WFieizh+a6kCA8IGthbmtvdXNoaWdlblwgOwor6KaW6Kaa6KiA6KqeIDwgc2hpa2FrdWdlbmdvXCA7CivpurvolqzluLjnlKggPCBtYXlha3Vqb3V5b3VcIDsKK+aXpeacnei+nuWFuCA8IG5pdGNob3VqaXRlblwgOwor5bqX6aCt5YK15Yi4IDwgdGVudG91c2Fpa2VuXCA7CivniYjmqKnmiYDmnIkgPCBoYW5rZW5zaG95dXVcIDsKK+S4gOaziuihjOi7jSA8IGlwcGFrdWtvdWd1blwgOwor6Z2S56m65biC5aC0IDwgYW96b3Jhc2hpam91XCA7CivplovnpajntZDmnpwgPCBrYWloeW91a2Vra2FcIDsKK+WNmOeLrOism+WSjCA8IHRhbmRva3Vrb3V3YVwgOwor6L+R5Luj56eR5a2mIDwga2luZGFpa2FnYWt1XCA7CivnhKHnpZ7oq5bogIUgPCBtdXNoaW5yb25zaGFcIDsKK+W4guitsOS8muitsOWToSA8IHNoaWdpa2FpZ2lpblwgOwor54++5a6f55qEIDwgZ2Vuaml0c3V0ZWtpXCA7CivnlLvkuIDnmoQgPCBrYWt1aXRzdXRla2lcIDsKK+acieW9ouiyoeeUoyA8IHl1dWtlaXphaXNhblwgOwor5rKz5bK45q615LiYIDwga2FnYW5kYW5reXV1XCA7CivlpKrpmb3lhYnnt5ogPCB0YWl5b3Vrb3VzZW5cIDsKK+WNuOmFkuiyqSA8IG9yb3NoaXNodWhhblwgOwor5YSE5LiH6ZW36ICFIDwgb2t1bWFuY2hvdWphXCA7CivljJbnsqfnn7PpubggPCBrZXNob3VzZWtrZW5cIDsKK+iogOiqnueZguazlSA8IGdlbmdvcnlvdWhvdVwgOwor5a6J5a6a5oiQ6ZW3IDwgYW50ZWlzZWljaG91XCA7CivnpZ7mqKnmlL/msrsgPCBzaGlua2Vuc2VpamlcIDsKK+imquaXpeWutiA8IHNoaW4nJ25pY2hpa2FcIDsKK+iHs+S4iuWRveS7pCA8IHNoaWpvdW1laXJlaVwgOwor5YaF5Ye66KGAIDwgbmFpc2h1a2tldHN1XCA7CivkuK3lpK7lp5Tlk6HkvJogPCBjaHV1b3VpaW5rYWlcIDsKK+a9pOethuaWmSA8IGp1bnBpdHN1cnlvdVwgOwor6Z+z5qW9576O5a2mIDwgb25nYWt1YmlnYWt1XCA7CivlirTlg43lpKfoh6MgPCByb3Vkb3VkYWlqaW5cIDsKK+eUsOiIjuS+jSA8IGluYWthemFtdXJhaVwgOwor6ZmN5qC85Lq65LqLIDwga291a2FrdWppbmppXCA7Civph5Hph5jmtYEgPCBrYW5ha3VnaXJ5dXVcIDsKK+eqkue0oOiCpeaWmSA8IGNoaXNzb2hpcnlvdVwgOwor6LuN6YOo54us6KOBIDwgZ3VuYnVkb2t1c2FpXCA7Civlhazli5nnlr7nl4UgPCBrb3VtdXNoaXBwZWlcIDsKK+iKseeBq+Wkp+S8miA8IGhhbmFiaXRhaWthaVwgOwor5Ym15L2c5YqbIDwgc291c2FrdXJ5b2t1XCA7CivljbPmiKblipsgPCBzb2t1c2Vucnlva3VcIDsKK+ihjOmbsua1geawtCA8IGtvdXVucnl1dXN1aVwgOwor5Y+N5a++6KiK5ZWPIDwgaGFudGFpamlubW9uXCA7CivmlrnlkJHou6Lmj5sgPCBob3Vrb3V0ZW5rYW5cIDsKK+eEoee3muaKgOihkyA8IG11c2VuZ2lqdXRzdVwgOwor6Imu5LiL6Imu5LiKIDwgZ29ua2Fnb25zaG91XCA7Civmi6zntITnrYsgPCBrYXRzdXlha3VraW5cIDsKK+acquadpeWujOS6hiA8IG1pcmFpa2FucnlvdVwgOwor5YmN6YCy6YOo6ZqKIDwgemVuc2hpbmJ1dGFpXCA7Civml6LntITliIbmlbAgPCBraXlha3VidW5zdXVcIDsKK+iqrOW+l+WKmyA8IHNldHRva3VyeW9rdVwgOwor5YWs5Za25L2P5a6FIDwga291ZWlqdXV0YWt1XCA7Civnm6Pmn7vloLHlkYogPCBrYW5zYWhvdWtva3VcIDsKK+mQmOaSnuWggiA8IGthbmV0c3VraWRvdVwgOwor5pyI57WM5ZGo5pyfIDwgZ2Vra2Vpc2h1dWtpXCA7Civnp5Hlrabpm5HoqowgPCBrYWdha3V6YXNzaGlcIDsKK+mAmuiyqOe1seWQiCA8IHRzdXVrYXRvdWdvdVwgOwor5a++5Zyw6YCf5bqmIDwgdGFpY2hpc29rdWRvXCA7Civlrpjlg5rkuLvnvqkgPCBrYW5yeW91c2h1Z2lcIDsKK+aXp+W9ouW8jyA8IGt5dXVrZWlzaGlraVwgOwor6buE546J55+zIDwga291Z3lva3VzZWtpXCA7CivlvqHoqr/lrZDogIUgPCBvY2hvdXNoaW1vbm9cIDsKK+Wun+mok+WupCA8IGppa2tlbnNoaXRzdVwgOwor5LqM6Laz5LiJ5paHIDwgbmlzb2t1c2FubW9uXCA7CivphbjmgKfogqXmlpkgPCBzYW5zZWloaXJ5b3VcIDsKK+iogOaWh+S4gOiHtCA8IGdlbmJ1bicnaXRjaGlcIDsKK+Wvhua8geiAhSA8IG1pdHN1cnlvdXNoYVwgOwor5YWx5ZCM566h55CGIDwga3lvdWRvdWthbnJpXCA7Civog4PphbjpgY7lpJrnl4cgPCBpc2Fua2F0YXNob3VcIDsKK+a1t+WkluaXheihjCA8IGthaWdhaXJ5b2tvdVwgOwor5LiN5a+p5bCL5ZWPIDwgZnVzaGluamlubW9uXCA7Civosqzku7vou6Llq4EgPCBzZWtpbmludGVua2FcIDsKK+mVt+acn+aJi+W9oiA8IGNob3VraXRlZ2F0YVwgOwor5r2u5rGQ6KGoIDwgY2hvdXNla2loeW91XCA7CivntabkuI7msLTmupYgPCBreXV1eW9zdWlqdW5cIDsKK+eZveeGseaIpiA8IGhha3VuZXRzdXNlblwgOwor5b6T5bGe56+AIDwganV1em9rdXNldHN1XCA7CivlsJHmlbDnsr7pi60gPCBzaG91c3V1c2VpZWlcIDsKK+i7ouaPm+ekvuWCtSA8IHRlbmthbnNoYXNhaVwgOwor5rK/5bK45ryB5qWtIDwgZW5nYW5neW9neW91XCA7CivmirzliIfluLMgPCBvc2hpa2lyaWNob3VcIDsKK+mJseeJqeWtpiA8IGtvdWJ1dHN1Z2FrdVwgOwor5Lqk6Zqb56S+5LyaIDwga291c2Fpc2hha2FpXCA7CivliLbpmZDkuovpoIUgPCBzZWlnZW5qaWtva3VcIDsKK+W3puW/g+WupCA8IHNhc2hpbnNoaXRzdVwgOwor5YiR5LqL6LKs5Lu7IDwga2VpamlzZWtpbmluXCA7Civmt7flkIjngavolqwgPCBrb25nb3VrYXlha3VcIDsKK+alteW9qeiJsiA8IGdva3VzYWlzaGlraVwgOwor5Y+M5YuZ5aWR57SEIDwgc291bXVrZWl5YWt1XCA7Civogp3lv4PopoEgPCBrYW5qaW5rYW5hbWVcIDsKK+WPpOWFuOWtpuiAhSA8IGtvdGVuZ2FrdXNoYVwgOwor55Sf5rS75om25YqpIDwgc2Vpa2F0c3VmdWpvXCA7Civlu7rnr4nmpa0gPCBrZW5jaGlrdWd5b3VcIDsKK+aLkumjn+eXhyA8IGt5b3Nob2t1c2hvdVwgOwor55So55uK54mp5qipIDwgeW91ZWtpYnVra2VuXCA7CivnhrHpm7vlr74gPCBuZXRzdWRlbnRzdWlcIDsKK+WHuuWLpOaZgumWkyA8IHNodWtraW5qaWthblwgOwor6Y6W5Lyd5YuVIDwga3VzYXJpZGVuZG91XCA7Civmi6HlpKfnjocgPCBrYWt1ZGFpcml0c3VcIDsKK+ebuOmWouS/guaVsCA8IHNvdWthbmtlaXN1dVwgOwor6YO95b+YIDwgbWl5YWtvd2FzdXJlXCA7CivnpL7kvJrkv53pmpwgPCBzaGFrYWlob3Nob3VcIDsKK+WNlOWQjOWLleS9nCA8IGt5b3Vkb3Vkb3VzYVwgOwor5oOF57eS57qS57a/IDwgam91Y2hvdGVubWVuXCA7Civnq4vmhrLlkJvkuLsgPCByaWtrZW5rdW5zaHVcIDsKK+eLguS/oeeahCA8IGt5b3VzaGludGVraVwgOwor6KGo54++5YqbIDwgaHlvdWdlbnJ5b2t1XCA7CivkuK3nq4vpnaIgPCBjaHV1cml0c3VtZW5cIDsKK+aXheWIuOafu+iovCA8IHJ5b2tlbnNhc2hvdVwgOwor6LKd5q676JmrIDwga2FpZ2FyYW11c2hpXCA7CivokL3oirHni7zol4kgPCByYWtrYXJvdXpla2lcIDsKK+S4gOeVquaYnyA8IGljaGliYW5ib3NoaVwgOwor5YyW5a2m6KO95ZOBIDwga2FnYWt1c2VpaGluXCA7CivpganmgKfmpJzmn7sgPCB0ZWtpc2Vpa2Vuc2FcIDsKK+izg+WAn+S6uiA8IGNoaW5zaGFrdW5pblwgOwor55Sf5ZG956eR5a2mIDwgc2VpbWVpa2FnYWt1XCA7Civlt6XkvZzmqZ/morAgPCBrb3VzYWt1a2lrYWlcIDsKK+Wbs+abuOmkqOWtpiA8IHRvc2hva2FuZ2FrdVwgOwor5Lq65Y+j5ZWP6aGMIDwgamlua291bW9uZGFpXCA7CivlvqHnlKjlrabogIUgPCBnb3lvdWdha3VzaGFcIDsKK+awl+Wcp+mFjee9riA8IGtpYXRzdWhhaWNoaVwgOwor5pmC6ZmQ54iG5by+IDwgamlnZW5iYWt1ZGFuXCA7Civoh6rnhLblr77mlbAgPCBzaGl6ZW50YWlzdXVcIDsKK+WknOmWk+aSruW9sSA8IHlha2Fuc2F0c3VlaVwgOwor56We57WM57mK57atIDwgc2hpbmtlaXNlbicnaVwgOwor5rWB5YuV6LKg5YK1IDwgcnl1dWRvdWZ1c2FpXCA7CivmnIDpq5joqJjpjLIgPCBzYWlrb3VraXJva3VcIDsKK+aWsOimj+S6i+alrSA8IHNoaW5raWppZ3lvdVwgOwor5aeT5ZCN5Yik5patIDwgc2VpbWVpaGFuZGFuXCA7Civoo4Xpo77nmoQgPCBzb3VzaG9rdXRla2lcIDsKK+WPjeWvvue1puS7mCA8IGhhbnRhaWt5dXVmdVwgOwor5r6x57KJ6LOqIDwgZGVucHVuc2hpdHN1XCA7CivmlZfmiKbmipXmiYsgPCBoYWlzZW50b3VzaHVcIDsKK+atpua8ouS4iemOriA8IGJ1a2Fuc2FuY2hpblwgOwor6Zu75rCX6Zmw5oCn5bqmIDwgZGVua2lpbnNlaWRvXCA7CivkuIDmnJ3kuIDlpJUgPCBpdGNob3Vpc3Nla2lcIDsKK+eEoeiomOWQjemgkOmHkSA8IG11a2ltZWl5b2tpblwgOwor5a625YaF5bel5qWtIDwga2FuYWlrb3VneW91XCA7CivljYPml6XojYkgPCBzZW4nJ25pY2hpc291XCA7CivmtYXlraboj7LmiY0gPCBzZW5nYWt1aGlzYWlcIDsKK+a3t+WQiOe1jOa4iCA8IGtvbmdvdWtlaXphaVwgOwor5biC5rCR5Zuj5L2TIDwgc2hpbWluZGFudGFpXCA7CivkvIHmpa3pgKPlkIggPCBraWd5b3VyZW5nb3VcIDsKK+aZguS7o+aEn+immiA8IGppZGFpa2Fua2FrdVwgOwor5LiD5LqU6Kq/IDwgc2hpY2hpZ29jaG91XCA7CivliKnlt7HkuLvnvqnogIUgPCByaWtvc2h1Z2lzaGFcIDsKK+WFseWQjOWboOWtkCA8IGt5b3Vkb3VpbnNoaVwgOwor5LiA5oSP5bCC5b+DIDwgaWNoaWlzZW5zaGluXCA7CivmrKfnsbPoq7jlm70gPCBvdWJlaXNob2tva3VcIDsKK+mdqeWRvemBi+WLlSA8IGtha3VtZWl1bmRvdVwgOwor57SU57KL5Z+56aSKIDwganVuc3VpYmFpeW91XCA7Civlho3kuInlho3lm5sgPCBzYWlzYW5zYWlzaGlcIDsKK+S4reWbveacjSA8IGNodXVnb2t1ZnVrdVwgOwor5b2i6ICM5LiK5a2mIDwga2Vpamlqb3VnYWt1XCA7CivlnLDmlrnlm6PkvZMgPCBjaGlob3VkYW50YWlcIDsKK+WFrOawkeWtpuagoSA8IGtvdW1pbmdha2tvdVwgOwor5L6h5qC857Wx5Yi2IDwga2FrYWt1dG91c2VpXCA7CivmhI/ljKDnmbvpjLIgPCBpc2hvdXRvdXJva3VcIDsKK+mrmOWkqeWOnyA8IHRha2FtYWdhaGFyYVwgOwor5Y+X5YuV5Zar54WZIDwganVkb3VraXRzdWVuXCA7Civoo73nvLblt6XloLQgPCBzZWlrYW5rb3Vqb3VcIDsKK+WbuuW9oueHg+aWmSA8IGtva2VpbmVucnlvdVwgOwor6YO15L6/54K65pu/IDwgeXV1Ymlua2F3YXNlXCA7Civli5jlrprkv4IgPCBrYW5qb3VnYWthcmlcIDsKK+WPo+mgreW8geirliA8IGtvdXRvdWJlbnJvblwgOwor56uL5L2T5YyW5a2mIDwgcml0dGFpa2FnYWt1XCA7Civmi5jmnZ/lipsgPCBrb3Vzb2t1cnlva3VcIDsKK+WTgeihjOaWueatoyA8IGhpbmtvdWhvdXNlaVwgOwor5rKI5r6x54mpIDwgY2hpbmRlbmJ1dHN1XCA7CivpgZPmqJkgPCBtaWNoaXNoaXJ1YmVcIDsKK+WZqOizqueahCA8IGtpc2hpdHN1dGVraVwgOwor6LKp5aOy5L6h5qC8IDwgaGFuYmFpa2FrYWt1XCA7CivmgYvmhJvntZDlqZogPCByZW4nJ2Fpa2Vra29uXCA7CivljJfnsbPlnJ/kurogPCBob2t1YmVpZG9qaW5cIDsKK+WNg+aXpee0hSA8IHNlbicnbmljaGlrb3VcIDsKK+iHqOa1t+WtpuagoSA8IHJpbmthaWdha2tvdVwgOwor5LiA6Kqe5LiA6KqeIDwgaWNoaWdvaWNoaWdvXCA7Civlm73lrrblhazli5nlk6EgPCBrb2trYWtvdW11aW5cIDsKK+WNiuWumOWNiuawkSA8IGhhbmthbmhhbm1pblwgOwor5bu656+J5a2mIDwga2VuY2hpa3VnYWt1XCA7CivmlZfooYDnl4cgPCBoYWlrZXRzdXNob3VcIDsKK+Wkp+WbveS4u+e+qSA8IHRhaWtva3VzaHVnaVwgOwor5rSL5pyN566q56ylIDwgeW91ZnVrdWRhbnN1XCA7CivkuIDmlrnpgJrooYwgPCBpcHBvdXRzdXVrb3VcIDsKK+WPguiAg+aWh+eMriA8IHNhbmtvdWJ1bmtlblwgOwor5L+h5Luw566H5p2hIDwgc2hpbmtvdWtham91XCA7CivovrvnpL4gPCB0c3VqaXlhc2hpcm9cIDsKK+WNgeS4gOaciCA8IGp1dWljaGlnYXRzdVwgOwor6KKL5oi45qOaIDwgZnVrdXJvdG9kYW5hXCA7Civmi53nianmlZkgPCBoYWlidXRzdWt5b3VcIDsKK+awkemWk+izh+acrCA8IG1pbmthbnNoaWhvblwgOwor5b6p6K6Q5b+DIDwgZnVrdXNodXVzaGluXCA7CivkuIDmsYHkuIDoj5wgPCBpY2hpanV1aXNzYWlcIDsKK+WNgeeoruertuaKgCA8IGppc3NodWt5b3VnaVwgOwor5pen5bm05pyrIDwga3l1dW5lbm1hdHN1XCA7CivlpLHogbfogIUgPCBzaGlzc2hva3VzaGFcIDsKK+WGheWJsuW8lSA8IHVjaGl3YXJpYmlraVwgOwor5biM5Zyf6aGe5YWD57SgIDwga2lkb3J1aWdlbnNvXCA7CivlubPlkozlhbHlrZggPCBoZWl3YWt5b3V6b25cIDsKK+WNmOe3mumBi+i7oiA8IHRhbnNlbicndW50ZW5cIDsKK+S6i+W+jOaJv+irviA8IGppZ29zaG91ZGFrdVwgOwor5Ye655Sj546HIDwgc2h1c3NhbnJpdHN1XCA7Civlhpnlrp/nmoQgPCBzaGFqaXRzdXRla2lcIDsKK+aYoOWDj+S/oeWPtyA8IGVpem91c2hpbmdvdVwgOwor5a6J5YWo5a++562WIDwgYW56ZW50YWlzYWt1XCA7CivnlJ/nlKPntYTlkIggPCBzZWlzYW5rdW1pYWlcIDsKK+aOpee2mumnhSA8IHNldHN1em9rdWVraVwgOwor5bGF5L2P5rC05rqWIDwga3lvanV1c3VpanVuXCA7Civoo73piYTmpa0gPCBzZWl0ZXRzdWd5b3VcIDsKK+eul+eUqOaVsOWtlyA8IHNhbicneW91c3V1amlcIDsKK+WHuueUn+eOhyA8IHNodXNzZWlyaXRzdVwgOwor5aeJ5aa55Lya56S+IDwgc2hpbWFpZ2Fpc2hhXCA7CivpgbjmjJnlhazloLEgPCBzZW5reW9rb3Vob3VcIDsKK+S7j+WDj+S6jOW6pyA8IGJ1dHN1em91bml6YVwgOwor6Kaz5YWJ5peF6KGMIDwga2Fua291cnlva291XCA7CivnoJTnqbboqrLpoYwgPCBrZW5reXV1a2FkYWlcIDsKK+mHkeaLvuS4h+WGhiA8IGtpbmp1dW1hbicnZW5cIDsKK+WxjuWwv+WHpueQhiA8IHNoaW55b3VzaG9yaVwgOwor552A54mp5ae/IDwga2ltb25vc3VnYXRhXCA7CivllYbkuovkvJrnpL4gPCBzaG91amlnYWlzaGFcIDsKK+epjealteetliA8IHNla2t5b2t1c2FrdVwgOwor6ZuG5ZCI5aC05omAIDwgc2h1dWdvdWJhc2hvXCA7CivlvaLlrrnoqZ7lubkgPCBrZWl5b3VzaGlrYW5cIDsKK+adoeS7tuWPjeWwhCA8IGpvdWtlbmhhbnNoYVwgOwor5bCP5paH56+AIDwgc2hvdWJ1bnNldHN1XCA7CivntYTnuZTlipsgPCBzb3NoaWtpcnlva3VcIDsKK+S/oeW+kuS8neWLlSA8IHNoaW50b2RlbmRvdVwgOwor5pyJ5paZ6YGT6LevIDwgeXV1cnlvdWRvdXJvXCA7Civmpa3li5nlpqjlrrMgPCBneW91bXVib3VnYWlcIDsKK+mYv+eJh+S4reavkiA8IGFoZW5jaHV1ZG9rdVwgOwor57Sw6IOe6J6N5ZCIIDwgc2FpYm91eXV1Z291XCA7Civmlq3nhrHmnZAgPCBkYW4nJ25ldHN1emFpXCA7CivlkI3kurrmsJfos6ogPCBtZWlqaW5rYXRhZ2lcIDsKK+mDteaUv+Wkp+iHoyA8IHl1dXNlaWRhaWppblwgOwor6Zu75rCX5o6D6Zmk5qmfIDwgZGVua2lzb3VqaWtpXCA7CivkurrmqKnmk4HorbcgPCBqaW5rZW4nJ3lvdWdvXCA7CivlhYTlvJ/llqflmKkgPCBreW91ZGFpZ2Vua2FcIDsKK+iRl+S9nOeJqSA8IGNob3Nha3VidXRzdVwgOwor55uy5ruF5rOVIDwgbWVrdXJhbWVwcG91XCA7Civlt6HoiKrpgJ/luqYgPCBqdW5rb3Vzb2t1ZG9cIDsKK+S4gOWknOWkp+iHoyA8IGljaGl5YWRhaWppblwgOwor6ZmE552A5YqbIDwgZnVjaGFrdXJ5b2t1XCA7CivnjYXlrZDlpa7ov4UgPCBzaGlzaGlmdW5qaW5cIDsKK+a8gua1geacqCA8IGh5b3VyeXV1Ym9rdVwgOwor57Sz5aOr6Z20IDwgc2hpbnNoaWd1dHN1XCA7Civplqjnp4DkvZzlrrYgPCBrZWlzaHV1c2Fra2FcIDsKK+a1mua4q+iIuSA8IHNodW5zZXRzdXNlblwgOwor5rex5bGx54OPIDwgbWl5YW1hZ2FyYXN1XCA7CivlsILploDlrabmoKEgPCBzZW5tb25nYWtrb3VcIDsKK+aUuemdqemBjueoiyA8IGthaWtha3VrYXRlaVwgOwor57eK5oCl5o6q572uIDwga2lua3l1dXNvY2hpXCA7CivnlLvnq5zlpKnnnZsgPCBnYXJ5b3V0ZW5zZWlcIDsKK+S4gOmAsuS4gOmAgCA8IGlzc2hpbicnaXR0YWlcIDsKK+eUn+iHreeJqSA8IG5hbWFndXNhbW9ub1wgOwor5a6a5bi454q25oWLIDwgdGVpam91am91dGFpXCA7Civlr6nliKTlvbkgPCBzaGlucGFuJyd5YWt1XCA7CivmjIfmlbDplqLmlbAgPCBzaGlzdXVrYW5zdXVcIDsKK+epjealteeahCA8IHNla2t5b2t1dGVraVwgOwor6Kmm6aiT56eR55uuIDwgc2hpa2Vua2Ftb2t1XCA7Civngb3lrrPmlZHliqkgPCBzYWlnYWlreXV1am9cIDsKK+eZuuWjsuWFgyA8IGhhdHN1YmFpbW90b1wgOwor5Ya26YeR5a2m6ICFIDwgeWFraW5nYWt1c2hhXCA7CivlnLDmlrnpioDooYwgPCBjaGlob3VnaW5rb3VcIDsKK+S7j+mggumdoiA8IGJ1dGNob3VkenVyYVwgOwor57WM5riI55m65bGVIDwga2VpemFpaGF0dGVuXCA7CivnibnmrorlhbXlmaggPCB0b2t1c2h1aGVpa2lcIDsKK+a1t+S4reWFrOWckiA8IGthaWNodXVrb3VlblwgOwor5Zuj5L2T5peF6KGMIDwgZGFudGFpcnlva291XCA7CivkuInlj4nnpZ7ntYwgPCBzYW5zYXNoaW5rZWlcIDsKK+assuaxguS4jea6gCA8IHlva2t5dXVmdW1hblwgOwor6Iul57SrIDwgd2FrYW11cmFzYWtpXCA7CivntYLlpJzllrbmpa0gPCBzaHV1eWFlaWd5b3VcIDsKK+WcsOS4i+e1hOe5lCA8IGNoaWthc29zaGlraVwgOwor6ICQ6ZyH5a625bGLIDwgdGFpc2hpbmthb2t1XCA7CivmraPkuInop5LlvaIgPCBzZWlzYW5rYWtrZWlcIDsKK+i1sOihjOi7iue3miA8IHNvdWtvdXNoYXNlblwgOwor56m65rCX6Kq/5pW0IDwga3V1a2ljaG91c2VpXCA7CivpgYvli5XnpZ7ntYwgPCB1bmRvdXNoaW5rZWlcIDsKK+WPl+iDjuWRiuefpSA8IGp1dGFpa29rdWNoaVwgOwor5Y+W5byV6auYIDwgdG9yaWhpa2lkYWthXCA7Civop6PnrZTnlKjntJkgPCBrYWl0b3V5b3VzaGlcIDsKK+S4jeaJgOWtmOiAhSA8IGZ1c2hvem9ubW9ub1wgOwor55Wz6bCvIDwgdGF0YW1paXdhc2hpXCA7Civpl5blhaXogIUgPCBjaGluJydueXV1c2hhXCA7Civmr6zmoJfpoK0gPCBpZ2FndXJpYXRhbWFcIDsKK+W7uuevieS4rSA8IGtlbmNoaWt1Y2h1dVwgOwor5byx5bCP5Zu9IDwgamFrdXNob3Vrb2t1XCA7CivliqDlt6XnlKPmpa0gPCBrYWtvdXNhbmd5b3VcIDsKK+eZuuWjsuS4rSA8IGhhdHN1YmFpY2h1dVwgOwor6KaP5qC85Y6f5qGIIDwga2lrYWt1Z2VuJydhblwgOwor5ZKM6a2C5rSL5omNIDwgd2Frb24nJ3lvdXNhaVwgOwor5Y+N5oim6YGL5YuVIDwgaGFuc2VuJyd1bmRvdVwgOwor6Ku46KGM54Sh5bi4IDwgc2hvZ3lvdW11am91XCA7CivlpZHntITmnJ/plpMgPCBrZWl5YWt1a2lrYW5cIDsKK+S6uuaWh+enkeWtpiA8IGppbmJ1bmthZ2FrdVwgOwor5LiA5Lq65LiA5Lq6IDwgaGl0b3JpYml0b3JpXCA7CivlirHmjK/ntKDlrZAgPCByZWlzaGluc29zaGlcIDsKK+W+qeiukOWKhyA8IGZ1a3VzaHV1Z2VraVwgOwor5a6H5a6Z5bel5a2mIDwgdWNodXVrb3VnYWt1XCA7CivkuovliY3ml6Xku5ggPCBqaXplbmhpZHp1a2VcIDsKK+iHquWutuaSnuedgCA8IGppa2Fkb3VjaGFrdVwgOwor55+z54Gw6IKl5paZIDwgc2Vra2FpaGlyeW91XCA7Civlhaznm4rlhKrlhYggPCBrb3Vla2l5dXVzZW5cIDsKK+S4i+S7leS6iyA8IHNoaXRhc2hpZ290b1wgOwor6JaU6JaH5Y2B5a2X5ZujIDwgYmFyYWp1dWppZGFuXCA7Civml6XosYrmnKznt5ogPCBuaXBwb3Vob25zZW5cIDsKK+efs+ayueWMluWtpiA8IHNla2l5dWthZ2FrdVwgOwor5raI5qW15oCnIDwgc2hvdWt5b2t1c2VpXCA7Civnm7jlr77pgJ/luqYgPCBzb3V0YWlzb2t1ZG9cIDsKK+m7kuWtl+WAkueUoyA8IGt1cm9qaXRvdXNhblwgOwor6YeR5qyg55eFIDwga2lua2V0c3VieW91XCA7CivogbToppbnjocgPCBjaG91c2hpcml0c3VcIDsKK+WGheaGguWkluaCoyA8IG5haXl1dWdhaWthblwgOwor6Zai5pWw56m66ZaTIDwga2Fuc3V1a3V1a2FuXCA7Civku5jlsZ7nl4XpmaIgPCBmdXpva3VieW91aW5cIDsKK+iHqOW6iuWMu+WtpiA8IHJpbnNob3VpZ2FrdVwgOwor57Gz5rW35YW16ZqKIDwgYmVpa2FpaGVpdGFpXCA7Civmt7HlsbHmoZwgPCBtaXlhbWF6YWt1cmFcIDsKK+aLseaJi+WCjeimsyA8IGtvdXNodWJvdWthblwgOwor6aCG5rOV6ZeY5LqJIDwganVucG91dG91c291XCA7Civos6rllY/ogIUgPCBzaGl0c3Vtb25zaGFcIDsKK+aIpumXmOmZo+WcsCA8IHNlbnRvdWppbmNoaVwgOwor5LiA5oyZ5LiA5YuVIDwgaWtreW9pY2hpZG91XCA7CivlqIHlmoflsITmkoMgPCBpa2FrdXNoYWdla2lcIDsKK+Wun+WcsOippumokyA8IGppdGNoaXNoaWtlblwgOwor5Lit6ZaT5pmv5rCXIDwgY2h1dWthbmtlaWtpXCA7Civlj7jmlZnmqKnluqcgPCBzaGlreW91a2VuemFcIDsKK+epuue0hOadnyA8IGthcmF5YWt1c29rdVwgOwor5aSJ5pu05bGl5q20IDwgaGVua291cmlyZWtpXCA7CivpgKPmiKbpgKPmlZcgPCByZW5zZW5yZW5wYWlcIDsKK+atr+anveiGv+a8jyA8IHNoaXNvdW5vdXJvdVwgOwor57Sg57KS5a2Q6KuWIDwgc29yeXV1c2hpcm9uXCA7CivooZvmmJ/kuK3ntpkgPCBlaXNlaWNodXVrZWlcIDsKK+aOpee2muipniA8IHNldHN1em9rdXNoaVwgOwor5Zyn5bu25bel5aC0IDwgYXRzdWVua291am91XCA7CivliIblqKnoh6XluoogPCBidW5iZW5nYXNob3VcIDsKK+S6uumAoOe1ueezuCA8IGppbnpvdWtlbnNoaVwgOwor55eV6Leh5Zmo5a6YIDwga29uc2VraWtpa2FuXCA7Civmirnpppnpr6ggPCBtYWtrb3VrdWppcmFcIDsKK+ibjeWFieWhl+aWmSA8IGtlaWtvdXRvcnlvdVwgOwor5YWs5Yik6Kq/5p+7IDwga291aGFuY2hvdXNhXCA7CivpgKPntaHkvJrorbAgPCByZW5yYWt1a2FpZ2lcIDsKK+WFrOaVmeimgeeQhiA8IGtvdWt5b3V5b3VyaVwgOwor6Iqx55uX5Lq6IDwgaGFuYW51c3ViaXRvXCA7Civkub7nh6XlrqQgPCBrYW5zb3VzaGl0c3VcIDsKK+mqqOiRo+WTgeW6lyA8IGtvdHRvdWhpbnRlblwgOwor5Y2B5LqM5oyH6IW4IDwganV1bmlzaGljaG91XCA7Civnm7LmmqYgPCBtZWt1cmFnb3lvbWlcIDsKK+iyoeaUv+WVj+mhjCA8IHphaXNlaW1vbmRhaVwgOwor6KiA6Kqe5a2m6ICFIDwgZ2VuZ29nYWt1c2hhXCA7CivlsL/mr5Lnl4cgPCBueW91ZG9rdXNob3VcIDsKK+mHkeiejeapn+mWoiA8IGtpbicneXV1a2lrYW5cIDsKK+eUsOWckuipqeS6uiA8IGRlbicnZW5zaGlqaW5cIDsKK+etieavlOe0muaVsCA8IHRvdWhpa3l1dXN1dVwgOwor6IW56byTIDwgaGFyYXRzdWR6dW1pXCA7CivpgZPljJblvbnogIUgPCBkb3VrZXlha3VzaGFcIDsKK+eZh+eZqueOiSA8IGthbnNoYWt1ZGFtYVwgOwor5rSl5rSl5rWm5rWmIDwgdHN1ZHp1dXJhdXJhXCA7Civkub7nh6XlnLDluK8gPCBrYW5zb3VjaGl0YWlcIDsKK+mfs+evgOS4u+mfsyA8IG9uc2V0c3VzaHVvblwgOwor6Iiq5rW35pel6KqMIDwga291a2Fpbmlzc2hpXCA7CivljYrlsIHlu7rmgKcgPCBoYW5ob3VrZW5zZWlcIDsKK+aBi+aEm+mWouS/giA8IHJlbicnYWlrYW5rZWlcIDsKK+aIkOmVt+mBjueoiyA8IHNlaWNob3VrYXRlaVwgOwor6YCj5biv5L+d6Ki8IDwgcmVudGFpaG9zaG91XCA7Civlv4Poh5PogqXlpKcgPCBzaGluem91aGlkYWlcIDsKK+S4gOS6uueJqSA8IGljaGlqaW5idXRzdVwgOwor5Y2U57SE5Zu9IDwga3lvdXlha3Vrb2t1XCA7CivlpKnlo4znhKHnqq4gPCB0ZW5qb3VtdWt5dXVcIDsKK+WFqOi6q+m6u+mFlCA8IHplbnNoaW5tYXN1aVwgOwor5pyr5Luj54mpIDwgbWF0c3VkYWltb25vXCA7Civlm57nt5rkuqTmj5sgPCBrYWlzZW5rb3VrYW5cIDsKK+i8uOWFpeWItumZkCA8IHl1bnl1dXNlaWdlblwgOwor5YmD5YiA6LKgIDwga2FtaXNvcmltYWtlXCA7CivkuIDotrPlhYggPCBoaXRvYXNoaXNha2lcIDsKK+aenOeJqeexoCA8IGt1ZGFtb25va2Fnb1wgOwor5LiW6ZaT6KmxIDwgc2VrZW5iYW5hc2hpXCA7CivooYzmpb3lrqIgPCBrb3VyYWt1a3lha3VcIDsKK+ani+mAoOS4jeazgSA8IGtvdXpvdWZ1a3lvdVwgOwor57SL55m96J22IDwgbW9uc2hpcm9jaG91XCA7CivlhaXmua/lrqIgPCBueXV1dG91a3lha3VcIDsKK+iHquW3seWFseW9uSA8IGppa29reW91eWFrdVwgOwor5a+M5aOr54Gr5bGx5bivIDwgZnVqaWthemFudGFpXCA7Civpl4flj5blvJUgPCB5YW1pdG9yaWhpa2lcIDsKK+ani+aIkOWIhuWtkCA8IGtvdXNlaWJ1bnNoaVwgOwor5pif5bqn5oqV5b2x5qmfIDwgc2VpemF0b3VlaWtpXCA7CivluILloLTlsZXplosgPCBzaGlqb3V0ZW5rYWlcIDsKK+W6l+mgreiyqeWjsiA8IHRlbnRvdWhhbmJhaVwgOwor6YCy5rC05byPIDwgc2hpbnN1aXNoaWtpXCA7Civku67miZXph5EgPCBrYXJpYmFyYWlraW5cIDsKK+e0meWxkeexoCA8IGthbWlrdXp1a2Fnb1wgOwor5Lm+54el5Y21IDwga2Fuc291dGFtYWdvXCA7CivlkIjllLHpmorlk6EgPCBnYXNzaG91dGFpaW5cIDsKK+e1jOiyu+WJiua4myA8IGtlaWhpc2FrdWdlblwgOwor5paH6Iq45b6p6IiIIDwgYnVuZ2VpZnVra291XCA7CivnkrDlpKrlubPmtIsgPCBrYW50YWloZWl5b3VcIDsKK+WQjee+qeabuOaPmyA8IG1laWdpa2FraWthZVwgOwor57eR5YaF6ZqcIDwgcnlva3VuYWlzaG91XCA7Civph43lpKfllY/poYwgPCBqdXVkYWltb25kYWlcIDsKK+mdnuenkeWtpueahCA8IGhpa2FnYWt1dGVraVwgOwor6ZmQ5a6a5oim5LqJIDwgZ2VudGVpc2Vuc291XCA7CivmpbXmpb3ps6UgPCBnb2t1cmFrdWNob3VcIDsKK+asp+W3nuWnlOWToeS8miA8IG91c2h1dWlpbmthaVwgOwor5LiN5Zyo6Ki85piOIDwgZnV6YWlzaG91bWVpXCA7Civos4PosrjlgJ8gPCBjaGludGFpc2hha3VcIDsKK+WMu+WtpuWNmuWjqyA8IGlnYWt1aGFrdXNoaVwgOwor5qGI5YaF5pu45ZGIIDwgYW4nJ25haXNob3RlaVwgOwor5bCC5Yi25ZCb5Li7IDwgc2Vuc2Vpa3Vuc2h1XCA7Civli6Tli5nlrp/nuL4gPCBraW5tdWppc3Nla2lcIDsKK+apn+WvhuS6i+mghSA8IGtpbWl0c3VqaWtvdVwgOwor5pep5pyf6Ki65patIDwgc291a2lzaGluZGFuXCA7CivlkYrnmbrogIUgPCBrb2t1aGF0c3VzaGFcIDsKK+WBnOatouS+oeagvCA8IHRlaXNoaWtha2FrdVwgOwor6KiY5oa25a656YePIDwga2lva3V5b3VyeW91XCA7Civlh7rnlJ/pgY7libAgPCBzaHVzc2Vpa2Fqb3VcIDsKK+W8lemAgOiIiOihjCA8IGludGFpa291Z3lvdVwgOwor5LiJ5ZGz57ea5by+IDwgc2hhbWlzZW5oaWtpXCA7CivoqabpqJPmrrXpmo4gPCBzaGlrZW5kYW5rYWlcIDsKK+eZveihgOeXhSA8IGhha2tldHN1YnlvdVwgOwor6LuN5LqL5LuL5YWlIDwgZ3VuamlrYWlueXV1XCA7CivmlL/msrvpgZPlvrMgPCBzZWlqaWRvdXRva3VcIDsKK+WbveWWtuS8gealrSA8IGtva3VlaWtpZ3lvdVwgOwor5biw5bej5pys6IO9IDwga2lzb3Vob24nJ25vdVwgOwor5Lih5oCn5YW35pyJIDwgcnlvdXNlaWd1eXV1XCA7Civpu4Tph5HkuIfog70gPCBvdWdvbmJhbicnbm91XCA7CivnnJ/nj6Dos6ogPCBzaGluanVzaGl0c3VcIDsKK+aLheW9k+iqsumVtyA8IHRhbnRvdWthY2hvdVwgOwor5re35oiQ56u25oqAIDwga29uc2Vpa3lvdWdpXCA7CivlirTlg43mlLvli6IgPCByb3Vkb3Vrb3VzZWlcIDsKK+eJh+WxsemHjCA8IGthdGF5YW1hemF0b1wgOwor54us56uL56WtIDwgZG9rdXJpdHN1c2FpXCA7CivplpHoqbHkvJHpoYwgPCBrYW53YWt5dXVkYWlcIDsKK+WGheaHkCA8IHVjaGlidXRva29yb1wgOwor5LqI57SE5L+CIDwgeW95YWt1Z2FrYXJpXCA7Civlvbnli5nos6DlhJ8gPCBla2ltdWJhaXNob3VcIDsKK+W5s+WSjOeUo+alrSA8IGhlaXdhc2FuZ3lvdVwgOwor5Y2w6LGh5om56KmVIDwgaW5zaG91aGloeW91XCA7CivlgZzmu57liY3nt5ogPCB0ZWl0YWl6ZW5zZW5cIDsKK+awkemWk+aUvumAgSA8IG1pbmthbmhvdXNvdVwgOwor5bGe5Zyw5Li7576pIDwgem9rdWNoaXNodWdpXCA7CivkuIrkvY3kupLmj5vmgKcgPCBqb3VpZ29rYW5zZWlcIDsKK+WHuueJiOmDqOaVsCA8IHNodXBwYW5idXN1dVwgOwor6Ieq5YuV5Lq65b2iIDwgamlkb3VuaW5neW91XCA7CivmhI/lv5foloTlvLEgPCBpc2hpaGFrdWpha3VcIDsKK+W/g+eQhuaIpuS6iSA8IHNoaW5yaXNlbnNvdVwgOwor6Kqy56iO5omA5b6XIDwga2F6ZWlzaG90b2t1XCA7CivmtYHooYzkvZzlrrYgPCByeXV1a291c2Fra2FcIDsKK+agueawl+S7leS6iyA8IGtvbmtpc2hpZ290b1wgOwor6buE57eR6ImyIDwgb3VyeW9rdXNob2t1XCA7Civou73niq/nvarms5UgPCBrZWloYW56YWlob3VcIDsKK+aPo+aRqeaGtua4rCA8IHNoaW1hb2t1c29rdVwgOwor5pS55L+u5bel5LqLIDwga2Fpc2h1dWtvdWppXCA7Civlr77mipfmhI/orZggPCB0YWlrb3Vpc2hpa2lcIDsKK+WJjemAsuWKmyA8IHplbnNoaW5yeW9rdVwgOwor6YGT6Lev5Lqk6YCaIDwgZG91cm9rb3V0c3V1XCA7Civms5Xlu7fkvq7ovrEgPCBob3V0ZWlidWpva3VcIDsKK+WFieWtpuapn+aisCA8IGtvdWdha3VraWthaVwgOwor6ISx5a2X6KiY5Y+3IDwgZGF0c3VqaWtpZ291XCA7Civnorrnjofoq5YgPCBrYWt1cml0c3Vyb25cIDsKK+eLrOeri+ePrSA8IGRva3VyaXRzdWhhblwgOwor5YWs5pyJ5rC06Z2iIDwga291eXV1c3VpbWVuXCA7CivnrYnlnKflvI8gPCB0b3VhdHN1c2hpa2lcIDsKK+mZsOaAp+WPjeW/nCA8IGluc2VpaGFuJydub3VcIDsKK+e0oOS6uuetiyA8IHNoaXJvdXRvc3VqaVwgOwor576O5Lq65bGAIDwgdHN1dHN1bW90YXNlXCA7CivlgJ/lnLDmlpkgPCBzaGFrdWNoaXJ5b3VcIDsKK+m7hOeGseeXhSA8IGtvdW5ldHN1YnlvdVwgOwor5Z2H6KGh57WM5riIIDwga2lua291a2VpemFpXCA7CivmipXnpajnjocgPCB0b3VoeW91cml0c3VcIDsKK+mwu+S4vCA8IHVuYWdpZG9uYnVyaVwgOwor6Jit5qC95Z+55rOVIDwgcmFuc2FpYmFpaG91XCA7Civmraboo4Xpm4blm6MgPCBidXNvdXNodXVkYW5cIDsKK+iEhei/q+eahCA8IGt5b3VoYWt1dGVraVwgOwor5Y2w6ZGR6Ki85piOIDwgaW5rYW5zaG91bWVpXCA7Civln5/lhoXosr/mmJMgPCBpa2luYWlib3Vla2lcIDsKK+S9v+W+kuihjOS8nSA8IHNoaXRvZ3lvdWRlblwgOwor5L2z5Lq66JaE5ZG9IDwga2FqaW5oYWt1bWVpXCA7CivmlL7lsITnt5rnp5HljLsgPCBob3VzaGFzZW5rYWlcIDsKK+acieS9k+izh+eUoyA8IHl1dXRhaXNoaXNhblwgOwor5a++5rOw6Zai5L+CIDwgdGFpdGFpa2Fua2VpXCA7CivmrKflt57pgKPlkIggPCBvdXNodXVyZW5nb3VcIDsKK+Wls+WtkOWtpueUnyA8IGpvc2hpZ2FrdXNlaVwgOwor5Zuj57WQ5b+DIDwgZGFua2V0c3VzaGluXCA7CivljZjntJTlubPlnYcgPCB0YW5qdW5oZWlraW5cIDsKK+izquWVj+abuCA8IHNoaXRzdW1vbnNob1wgOwor5YaN5bqm56K66KqNIDwgc2FpZG9rYWt1bmluXCA7CivprLzpnaLkvJ3lv4MgPCBraW1lbmRlbnNoaW5cIDsKK+iyv+aYk+m7kuWtlyA8IGJvdWVraWt1cm9qaVwgOwor57WE5ZCI5ZOh6Ki8IDwga3VtaWFpaW5zaG91XCA7Civnhp/mn7/kuLvnvqkgPCBqdWt1c2hpc2h1Z2lcIDsKK+S4reeri+aApyA8IGNodXVyaXRzdXNlaVwgOwor5Ya35oi/6KOF572uIDwgcmVpYm91c291Y2hpXCA7Civnj77lnLDnlJ/nlKMgPCBnZW5jaGlzZWlzYW5cIDsKK+aWsOiBnuiomOiAhSA8IHNoaW5idW5raXNoYVwgOwor5ZGK55m654q2IDwga29rdWhhdHN1am91XCA7CivlpKflsbHps7Tli5UgPCB0YWl6YW5tZWlkb3VcIDsKK+azoueKtuaUu+aSgyA8IGhham91a291Z2VraVwgOwor5Y2Y6KiY5oqV56WoIDwgdGFua2l0b3VoeW91XCA7CivkuIDmrKHplqLmlbAgPCBpY2hpamlrYW5zdXVcIDsKK+W5vOW9oumAsuWMliA8IHlvdWtlaXNoaW5rYVwgOwor5Y+N5b6p6KqsIDwgaGFucHVrdXNldHN1XCA7CivljbDliLfooZMgPCBpbnNhdHN1anV0c3VcIDsKK+iDveWKm+e1piA8IG5vdXJ5b2t1a3l1dVwgOwor6Z2S54mp5biC5aC0IDwgYW9tb25vaWNoaWJhXCA7CivlrabnlJ/pgYvli5UgPCBnYWt1c2VpdW5kb3VcIDsKK+WgseW+qeaOque9riA8IGhvdWZ1a3Vzb2NoaVwgOwor5Zue5b6p5Y+v6IO9IDwga2FpZnVrdWthbm91XCA7CivmraPop5LlrprmnKggPCBzZWlrYWt1am91Z2lcIDsKK+attOWPsuWcsOeQhiA8IHJla2lzaGljaGlyaVwgOwor57e057+S5puyIDwgcmVuc2h1dWt5b2t1XCA7CivlubTkuK3nhKHkvJEgPCBuZW5qdXVtdWt5dXVcIDsKK+S7o+aVsOeahOWSjCA8IGRhaXN1dXRla2l3YVwgOwor6LaF6IO95YqbIDwgY2hvdW5vdXJ5b2t1XCA7Civlt6blj7Pnm7jnp7AgPCBzYXl1dXNvdXNob3VcIDsKK+aguOWIhuijgiA8IGtha3VidW5yZXRzdVwgOwor5bid5Zu95Li7576pIDwgdGVpa29rdXNodWdpXCA7Civopb/mtIvmnb7pnLIgPCBzZWl5b3VzaG91cm9cIDsKK+Wbnui7ouWLmOWumiA8IGthaXRlbmthbmpvdVwgOwor5L6d6KiX5bCE5pKDIDwgaXRha3VzaGFnZWtpXCA7CivmraPopo/ooajnj74gPCBzZWlraWh5b3VnZW5cIDsKK+eLrOeri+aoqSA8IGRva3VyaXRzdWtlblwgOwor57eP6aCY5LqL6aSoIDwgc291cnlvdWppa2FuXCA7CivlvoXlrrXojYkgPCBtYXRzdXlvaWd1c2FcIDsKK+S4gOS6uuWomCA8IGhpdG9yaW11c3VtZVwgOwor55uX6Zuj6Ziy5q2iIDwgdG91bmFuYm91c2hpXCA7Civmu4Xnp4HlpYnlhawgPCBtZXNzaGlob3Vrb3VcIDsKK+WbveeojuWxgCA8IGtva3V6ZWlreW9rdVwgOwor57eP5ZCI56eR5a2mIDwgc291Z291a2FnYWt1XCA7Civmi5jmnZ/mmYLplpMgPCBrb3Vzb2t1amlrYW5cIDsKK+Wbm+aWueWFq+aWuSA8IHNoaWhvdWhhcHBvdVwgOwor5Li76KaB6Ku45YWDIDwgc2h1eW91c2hvZ2VuXCA7CivljYHliIbmnaHku7YgPCBqdXVidW5qb3VrZW5cIDsKK+aZguS7o+aAnea9riA8IGppZGFpc2hpY2hvdVwgOwor5Luj55CG5oqV56WoIDwgZGFpcml0b3VoeW91XCA7Civlj6Tlhbjpn7Pmpb0gPCBrb3Rlbicnb25nYWt1XCA7CivpioDooYzlvLfnm5cgPCBnaW5rb3Vnb3V0b3VcIDsKK+S4gOmdouitmCA8IGljaGltZW5zaGlraVwgOwor5Ye66aGY6ICFIDwgc2h1dHN1Z2Fuc2hhXCA7CivotbfniIboo4Xnva4gPCBraWJha3Vzb3VjaGlcIDsKK+mAruaNleioseirviA8IHRhaWhva3lvZGFrdVwgOwor6Lq+5pa5IDwgc2hpdHN1a2VrYXRhXCA7Civmra/niZnnlr7mgqMgPCBzaGlnYXNoaWtrYW5cIDsKK+WLv+W/mOiNiSA8IHdhc3VyZW5hZ3VzYVwgOwor5by357a/6JasIDwga3lvdW1lbicneWFrdVwgOwor5YWx5ZCM56WW55WMIDwga3lvdWRvdXNva2FpXCA7Civmsrnmlq3lpKfmlbUgPCB5dWRhbnRhaXRla2lcIDsKK+WDu+W/gyA8IGhpZ2FtaWdva29yb1wgOwor5bCC5qWt6L6y5a62IDwgc2VuZ3lvdW5vdWthXCA7CivnhrHlj6/loZHmgKcgPCBuZXRzdWthc29zZWlcIDsKK+aituacqOmuqiA8IGthamlraW1hZ3Vyb1wgOwor5biC5pyJ6LKh55SjIDwgc2hpeXV1emFpc2FuXCA7Civlm73lrrbos6DlhJ8gPCBrb2trYWJhaXNob3VcIDsKK+WkseaYjuiAhSA8IHNoaXRzdW1laXNoYVwgOwor6Z2Z5oWL57eP6KiIIDwgc2VpdGFpc291a2VpXCA7CivlsILploDpm5HoqowgPCBzZW5tb256YXNzaGlcIDsKK+W8vuS4uOWIl+i7iiA8IGRhbmdhbnJlc3NoYVwgOwor5aWz6YGT5qW9IDwgb24nJ25hZG91cmFrdVwgOwor5aSn5q2j5pmC5LujIDwgdGFpc2hvdWppZGFpXCA7CivoqK3oqIjlpInmm7QgPCBzZWtrZWloZW5rb3VcIDsKK+S6huino+S6i+mghSA8IHJ5b3VrYWlqaWtvdVwgOwor5a6f6aiT5q616ZqOIDwgamlra2VuZGFua2FpXCA7CivmiJDplbfnjocgPCBzZWljaG91cml0c3VcIDsKK+eiuuWun+aApyA8IGtha3VqaXRzdXNlaVwgOwor5a6Y5YOa5pS/5rK7IDwga2FucnlvdXNlaWppXCA7CivkurrnqK7llY/poYwgPCBqaW5zaHVtb25kYWlcIDsKK+a8lOe/kuWVj+mhjCA8IGVuc2h1dW1vbmRhaVwgOwor5Yq05YON57WE5ZCIIDwgcm91ZG91a3VtaWFpXCA7Civngavngo7mlL7lsITlmaggPCBrYWVuaG91c2hha2lcIDsKK+WQiOWQjOWnlOWToeS8miA8IGdvdWRvdWlpbmthaVwgOwor6YaH6aKo576O5L+XIDwganVucHV1Yml6b2t1XCA7CivmpL/msrkgPCB0c3ViYWtpYWJ1cmFcIDsKK+m7kuijheadnyA8IGt1cm9zaG91em9rdVwgOwor5p+P6aSFIDwga2FzaGl3YW1vY2hpXCA7CivpgKDlj43mnInnkIYgPCB6b3VoYW4nJ3l1dXJpXCA7CivmtojosrvmgKflkJEgPCBzaG91aGlzZWlrb3VcIDsKK+W+oeeUqOaWsOiBniA8IGdveW91c2hpbmJ1blwgOwor5YWs5a6a5L6h5qC8IDwga291dGVpa2FrYWt1XCA7CivloIbnqY3kvZznlKggPCB0YWlzZWtpc2F5b3VcIDsKK+aUu+WuiOWQjOebnyA8IGtvdXNodWRvdW1laVwgOwor5bel56eR5aSn5a2mIDwga291a2FkYWlnYWt1XCA7CivnpL7lhazpgKPlkIggPCBzaGFrb3VyZW5nb3VcIDsKK+i7jeS6i+aVmee3tCA8IGd1bmppa3lvdXJlblwgOwor5bmz5ZKM5p2h57SEIDwgaGVpd2Fqb3V5YWt1XCA7CivnhKHos4fmoLzogIUgPCBtdXNoaWtha3VzaGFcIDsKK+eGseaLoeaVoyA8IG5ldHN1a2FrdXNhblwgOwor55u45q666Zai56iOIDwgc291c2Fpa2FuemVpXCA7CivljbPmmYLlgZzmiKYgPCBzb2t1aml0ZWlzZW5cIDsKK+afhOmgrSA8IHRzdWthZ2FzaGlyYVwgOwor5ris5Zyw6KGb5pifIDwgc29rdWNoaWVpc2VpXCA7CivnqbrkuK3mta7pgYogPCBrdXVjaHV1ZnV5dXVcIDsKK+W/oOiHo+iUtSA8IGNodXVzaGluZ3VyYVwgOwor5YuV54mp5a2mIDwgZG91YnV0c3VnYWt1XCA7CivkuIDmnprkuIsgPCBpY2hpbWFpc2hpdGFcIDsKK+S/oeeUqOipkOasuiA8IHNoaW4nJ3lvdXNhZ2lcIDsKK+iHs+adseS6rCA8IGl0YXJ1dG91a3lvdVwgOwor54us56uL5oCnIDwgZG9rdXJpdHN1c2VpXCA7CivmmI7nnLjnmpPmra8gPCBtZWlib3Vrb3VzaGlcIDsKK+S4iuetieWFteabuSA8IGpvdXRvdWhlaXNvdVwgOwor6YeR5Yip5pS/562WIDwga2lucmlzZWlzYWt1XCA7CivojYnmoLnmnKjnmq4gPCBzb3Vrb25tb2t1aGlcIDsKK+mbqOW+jOmbqiA8IGFtZW5vY2hpeXVraVwgOwor5Yq05YON54G95a6zIDwgcm91ZG91c2FpZ2FpXCA7CivmjqjlrprlubTpvaIgPCBzdWl0ZWluZW5yZWlcIDsKK+mBuueUo+euoeeQhuS6uiA8IGlzYW5rYW5yaW5pblwgOwor6LK/5piT5L6d5a2Y5bqmIDwgYm91ZWtpaXpvbmRvXCA7Civml6XmnKzmloflraYgPCBuaWhvbmJ1bmdha3VcIDsKK+WFq+ebrumwuyA8IHlhdHN1bWV1bmFnaVwgOwor5a6f6aiT56eR5a2mIDwgamlra2Vua2FnYWt1XCA7CivlirTlg43lp5Tlk6HkvJogPCByb3Vkb3VpaW5rYWlcIDsKK+WkqeeLl+ipsSA8IHRlbmd1YmFuYXNoaVwgOwor5qGI5YaF5L+CIDwgYW4nJ25haWdha2FyaVwgOwor5Y2x6Zm65L+h5Y+3IDwga2lrZW5zaGluZ291XCA7CivmtYHooYzoibIgPCByeXV1a291c2hva3VcIDsKK+mNvuS5s+efsyA8IHNob3VueXV1c2VraVwgOwor6KW/5qyn6Ku45Zu9IDwgc2Vpb3VzaG9rb2t1XCA7CivmjqXntprmgKcgPCBzZXRzdXpva3VzZWlcIDsKK+WknOmWk+WWtualrSA8IHlha2FuJydlaWd5b3VcIDsKK+aooeWei+mjm+ihjOapnyA8IG1va2VpaGlrb3VraVwgOwor55yf5a6f5oCnIDwgc2hpbmppdHN1c2VpXCA7Civkvb/lvpLmib/kvJ0gPCBzaGl0b3Nob3VkZW5cIDsKK+WbveWutuS4u+W4rSA8IGtva2thc2h1c2VraVwgOwor6Zuq6KaL54Gv57GgIDwgeXVraW1pZG91cm91XCA7CivkuLvluK3liKTkuosgPCBzaHVzZWtpaGFuamlcIDsKK+mqqOiCieiFqyA8IGtvdHN1bmlrdXNodVwgOwor54qs55Wc55SfIDwgaW51Y2hpa3VzaG91XCA7Civlrpjoo73okYnmm7ggPCBrYW5zZWloYWdha2lcIDsKK+S8neiomOaWh+WtpiA8IGRlbmtpYnVuZ2FrdVwgOwor5Yi25YuV5pS+5bCEIDwgc2VpZG91aG91c2hhXCA7CivpoJjlj47oqLwgPCByeW91c2h1dXNob3VcIDsKK+azleW+i+ihjOeCuiA8IGhvdXJpdHN1a291aVwgOwor5YWx55Sj5Zu95a62IDwga3lvdXNhbmtva2thXCA7CivmlZnogrLmqZ/plqIgPCBreW91aWt1a2lrYW5cIDsKK+mdnuW4uOS/oeWPtyA8IGhpam91c2hpbmdvdVwgOwor6Zuq6KaL6Zqc5a2QIDwgeXVraW1pc2hvdWppXCA7CivmqZ/mp4vmlLnpnakgPCBraWtvdWthaWtha3VcIDsKK+aYvOWFieiJsiA8IGNodXVrb3VzaG9rdVwgOwor5b6h546J5p2T5a2QIDwgb3RhbWFqYWt1c2hpXCA7CivmnIDntYLntZDmnpwgPCBzYWlzaHV1a2Vra2FcIDsKK+eJueaBtemWoueojiA8IHRva2tlaWthbnplaVwgOwor5Zyw6ZyH5LqI55+lIDwgamlzaGluJyd5b2NoaVwgOwor5YWx5ZCM5Yuf6YeRIDwga3lvdWRvdWJva2luXCA7Civkuovli5nlvZPlsYAgPCBqaW11dG91a3lva3VcIDsKK+S4ieWPt+mbkeiqjCA8IHNhbmdvdXphc3NoaVwgOwor5ryP5rSp6Zu75rWBIDwgcm91ZWlkZW5yeXV1XCA7CivlrqPmiKbluIPlkYogPCBzZW5zZW5mdWtva3VcIDsKK+WFseeUo+WcsOWMuiA8IGt5b3VzYW5jaGlrdVwgOwor5Luj55So5pWZ5ZOhIDwgZGFpeW91a3lvdWluXCA7CivljJfmpbXnhoogPCBob2treW9rdWd1bWFcIDsKK+S4ieinkuWumuimjyA8IHNhbmtha3Vqb3VnaVwgOwor6KW/5rSL5bCG5qOLIDwgc2VpeW91c2hvdWdpXCA7Civkv6Hlj7fnhKHoppYgPCBzaGluZ291bXVzaGlcIDsKK+Wcn+WcsOaUuemdqSA8IHRvY2hpa2Fpa2FrdVwgOwor54Cs5oi454mp5biCIDwgc2V0b21vbm9pY2hpXCA7Civlj7jku6TlrqQgPCBzaGlyZWlzaGl0c3VcIDsKK+WuieWAjeW3nemkhSA8IGFiZWthd2Ftb2NoaVwgOwor5p2x5qyn6Ku45Zu9IDwgdG91b3VzaG9rb2t1XCA7Civot6Hnm67nm7jntpogPCBhdG9tZXNvdXpva3VcIDsKK+S6uuW3peWRvOWQuCA8IGppbmtvdWtva3l1dVwgOwor5L+E55uyIDwgbml3YWthbWVrdXJhXCA7CivoiKrnqbrpg7Xkvr8gPCBrb3VrdXV5dXViaW5cIDsKK+S4puihjOi8uOWFpSA8IGhlaWtvdXl1bnl1dVwgOwor57WM5riI5qC85beuIDwga2VpemFpa2FrdXNhXCA7CivnpL7kvJros4fmnKwgPCBzaGFrYWlzaGlob25cIDsKK+WkluS6pOeJueaoqSA8IGdhaWtvdXRva2tlblwgOwor5Y2w5Yi354mpIDwgaW5zYXRzdWJ1dHN1XCA7Civmpa3li5nmj5DmkLogPCBneW91bXV0ZWlrZWlcIDsKK+a9nOWcqOaEj+itmCA8IHNlbnphaWlzaGlraVwgOwor5oq96LGh55qEIDwgY2h1dXNob3V0ZWtpXCA7CivliLblvqHoo4Xnva4gPCBzZWlneW9zb3VjaGlcIDsKK+eZveaLjeWtkCA8IHNoaXJhYnlvdXNoaVwgOwor5o+Q5Ye66ICFIDwgdGVpc2h1dHN1c2hhXCA7CivmiYDmiYDmlrnmlrkgPCBzaG9zaG9ob3Vib3VcIDsKK+iAkOWcp+WKmyA8IHRhaWF0c3VyeW9rdVwgOwor5Ye46Z2i6Y+hIDwgdG90c3VtZW5reW91XCA7Civpq5jooYDlnKcgPCBrb3VrZXRzdWF0c3VcIDsKK+afseaZguioiCA8IGhhc2hpcmFkb2tlaVwgOwor5Zu65L2T54eD5paZIDwga290YWluZW5yeW91XCA7Civlgpjmra/ou4ogPCBrYXNhaGFndXJ1bWFcIDsKK+m8u+WFg+aAneahiCA8IGhhbmFtb3RvamlhblwgOwor5Y+z5oqY56aB5q2iIDwgdXNldHN1a2luc2hpXCA7Civou43lm73oibIgPCBndW5rb2t1c2hva3VcIDsKK+WFq+mDjua9nyA8IGhhY2hpcm91Z2F0YVwgOwor5Y2D5oCd5LiH6ICDIDwgc2Vuc2hpYmFua291XCA7Civkvp3poZjpgIDogbcgPCBpZ2FudGFpc2hva3VcIDsKK+S4iemDqOWQiOWUsSA8IHNhbmJ1Z2Fzc2hvdVwgOwor6KiA6Kqe5Lit5p6iIDwgZ2VuZ29jaHV1c3V1XCA7Civnj77ku6PmlofmmI4gPCBnZW5kYWlidW5tZWlcIDsKK+mkiuitt+Wtpue0miA8IHlvdWdvZ2Fra3l1dVwgOwor5a6/5ZG955qEIDwgc2h1a3VtZWl0ZWtpXCA7Civlm57ou6LpgYvli5UgPCBrYWl0ZW4nJ3VuZG91XCA7CivpgYvovLjmpa3ogIUgPCB1bicneXVneW91c2hhXCA7CivkuK3lv4Pop5IgPCBjaHV1c2hpbmtha3VcIDsKK+mVt+mgiOmvqCA8IG5hZ2FzdWt1amlyYVwgOwor55+z5rK55YWs5ZujIDwgc2VraXl1a291ZGFuXCA7CivlsYDpg6jpurvphZQgPCBreW9rdWJ1bWFzdWlcIDsKK+e+qeWkquWkq+evgCA8IGdpZGF5dXVidXNoaVwgOwor6YeR5bGe5Yqg5belIDwga2luem9rdWtha291XCA7CivmgqrmgKfohavnmI0gPCBha3VzZWlzaHV5b3VcIDsKK+S/ruS6huiovCA8IHNodXVyeW91c2hvdVwgOwor6aas6bm/5q2j55u0IDwgYmFrYXNob3VqaWtpXCA7CivlkIjlvIHkvJrnpL4gPCBnb3ViZW5nYWlzaGFcIDsKK+auteOAheeVoCA8IGRhbmRhbmJhdGFrZVwgOwor5YWs55uK5LqL5qWtIDwga291ZWtpamlneW91XCA7Civkv6Hlj7fpm7vms6IgPCBzaGluZ291ZGVucGFcIDsKK+WkmuiCieizqiA8IHRhbmlrdXNoaXRzdVwgOwor6YCy5YWl54GvIDwgc2hpbicnbnl1dXRvdVwgOwor6ZuG57SE55qEIDwgc2h1dXlha3V0ZWtpXCA7CivlhbXlha3njokgPCBoeW91cm9rdWRhbWFcIDsKK+aRqeaTpueGsSA8IG1hc2F0c3VuZXRzdVwgOwor5YaF6Lyq5ZCM5b+XIDwgdWNoaXdhZG91c2hpXCA7CivnpL7kvJrkuovmpa0gPCBzaGFrYWlqaWd5b3VcIDsKK+aKgOihk+WKmyA8IGdpanV0c3VyeW9rdVwgOwor6Zu257Sw5LyB5qWtIDwgcmVpc2Fpa2lneW91XCA7Civku67murbmjqUgPCBrYXJpeW91c2V0c3VcIDsKK+WbveWumuWFrOWckiA8IGtva3V0ZWlrb3VlblwgOwor5b+c5Yqb5b6E6LevIDwgb3VyeW9rdWtlaXJvXCA7CivkuIvkvY3nr4TnlofljJYgPCBrYWloYW5jaHV1a2FcIDsKK+aOp+iotOajhOWNtCA8IGtvdXNva2lreWFrdVwgOwor6YCa5Yuk5a6a5pyfIDwgdHN1dWtpbnRlaWtpXCA7Civpq5jlk4Hos6ogPCBrb3VoaW5zaGl0c3VcIDsKK+attOWPsuWcsOWbsyA8IHJla2lzaGljaGl6dVwgOwor6Zu75a2Q6YO15L6/IDwgZGVuc2hpeXV1YmluXCA7CivmmZLmnKjntr8gPCBzYXJhc2hpbW9tZW5cIDsKK+S8uOe4ruazlSA8IHNoaW5zaHVrdWhvdVwgOwor5Lq65bel55+l6IO9IDwgamlua291Y2hpbm91XCA7CivnqbrkuK3mipXkuIsgPCBrdXVjaHV1dG91a2FcIDsKK+alveWkqeS4u+e+qSA8IHJha3V0ZW5zaHVnaVwgOwor5YWt6YCj55m6IDwgcm9rdXJlbnBhdHN1XCA7CivmtbflpJbmipXos4cgPCBrYWlnYWl0b3VzaGlcIDsKK+S9teeZuueXhyA8IGhlaWhhdHN1c2hvdVwgOwor5pqX6Ki855Wq5Y+3IDwgYW5zaG91YmFuZ291XCA7CivmrKDkuY/nl4cgPCBrZXRzdWJvdXNob3VcIDsKK+aeleipniA8IG1ha3VyYWtvdG9iYVwgOwor6Zai56+A5oqAIDwga2Fuc2V0c3V3YXphXCA7CivmsojmsqHoiLkgPCBjaGluYm90c3VzZW5cIDsKK+WAmeaJgCA8IHNvdXJvdXRva29yb1wgOwor5a6556mN546HIDwgeW91c2VraXJpdHN1XCA7CivmoYLnlLcgPCBrYXRzdXJhb3Rva29cIDsKK+S4u+WKm+agqiA8IHNodXJ5b2t1a2FidVwgOwor5bm06b2i5Yi26ZmQIDwgbmVucmVpc2VpZ2VuXCA7CivkvqHmoLzmiKbkuokgPCBrYWtha3VzZW5zb3VcIDsKK+mrmOmAn+W6pumLvCA8IGtvdXNva3Vkb2tvdVwgOwor5bGx5oeQIDwgeWFtYWZ1dG9rb3JvXCA7Civkub7mub/oqIggPCBrYW5zaGl0c3VrZWlcIDsKK+mdnuWWtuWIqeWbo+S9kyA8IGhpZWlyaWRhbnRhaVwgOwor54Gr5Yqb5pSv5o+0IDwga2FyeW9rdXNoaWVuXCA7Civpq5jpgJ/pgZPot68gPCBrb3Vzb2t1ZG91cm9cIDsKK+S9v+eUqOemgeatoiA8IHNoaXlvdWtpbnNoaVwgOwor5Yag5ama6JGs56WtIDwga2Fua29uc291c2FpXCA7CivmsLTlubPlsL7nv7wgPCBzdWloZWliaXlva3VcIDsKK+S4vOmjryA8IGRvbmJ1cmltZXNoaVwgOwor5rG66K2w5qmf6ZaiIDwga2V0c3VnaWtpa2FuXCA7CivkuZ3mmJ/ooZMgPCBreXV1c2VpanV0c3VcIDsKK+WPo+WFq+S4gSA8IGt1Y2hpaGF0Y2hvdVwgOwor6YCj6Y6W5Y+N5b+cIDwgcmVuc2FoYW4nJ25vdVwgOwor5biC5rCR56S+5LyaIDwgc2hpbWluc2hha2FpXCA7CivmpJzlr5/luoEgPCBrZW5zYXRzdWNob3VcIDsKK+ihqOihqOe0mSA8IG9tb3RlYnlvdXNoaVwgOwor6YOo5YiG6ZuG5ZCIIDwgYnVidW5zaHV1Z291XCA7Civlm5vmjajkupTlhaUgPCBzaGlzaGFnb255dXVcIDsKK+WPl+iol+S8muekviA8IGp1dGFrdWdhaXNoYVwgOwor5ZWP6aGM5oSP6K2YIDwgbW9uZGFpaXNoaWtpXCA7Civph5Hono3lhazluqsgPCBraW4nJ3l1dWtvdWtvXCA7Civnm7Tlj5blvJUgPCBqaWtpdG9yaWhpa2lcIDsKK+WPi+mBlOeUsuaWkCA8IHRvbW9kYWNoaWdhaVwgOwor5aSn5a2m5Y2SIDwgZGFpZ2FrdXNvdHN1XCA7CivkuIDoiKzmlZnppIogPCBpcHBhbmt5b3V5b3VcIDsKK+WkseiqnueXhyA8IHNoaXRzdWdvc2hvdVwgOwor6ZmN6Zuq6YePIDwga291c2V0c3VyeW91XCA7CivlronlrprmgZDmhYwgPCBhbnRlaWt5b3Vrb3VcIDsKK+awtOe0oOWMlueJqSA8IHN1aXNva2FidXRzdVwgOwor55Kw5aKD5aSJ5YyWIDwga2Fua3lvdWhlbmthXCA7CivkvZPmoLzmpJzmn7sgPCB0YWlrYWt1a2Vuc2FcIDsKK+a8geW4q+eUuiA8IHJ5b3VzaGltYWNoaVwgOwor5YyW5a2m5ZCI5oiQIDwga2FnYWt1Z291c2VpXCA7CivlubPlubPlh6Hlh6EgPCBoZWloZWlib25ib25cIDsKK+W4guWgtOS+oeagvCA8IHNoaWpvdWtha2FrdVwgOwor54mp6KaL5quTIDwgbW9ub21peWFndXJhXCA7CivlloTpmqPplqLkv4IgPCB6ZW5yaW5rYW5rZWlcIDsKK+WQiOaIkOa0l+WJpCA8IGdvdXNlaXNlbnphaVwgOwor6Kaz5b+15Li7576pIDwga2FuJyduZW5zaHVnaVwgOwor6YCa5Yuk5pmC6ZaTIDwgdHN1dWtpbmppa2FuXCA7CivntYzmuIjkvZPliLYgPCBrZWl6YWl0YWlzZWlcIDsKK+S9j+aJgOawj+WQjSA8IGp1dXNob3NoaW1laVwgOwor55a+6aKo5oCS5r+kIDwgc2hpcHB1dWRvdG91XCA7CivljLvnmYLmnZDmlpkgPCBpcnlvdXphaXJ5b3VcIDsKK+acieapn+i+sualrSA8IHl1dWtpbm91Z3lvdVwgOwor5aao5a6z5pS+6YCBIDwgYm91Z2FpaG91c291XCA7Civph5HlsZ7lhYPntKAgPCBraW56b2t1Z2Vuc29cIDsKK+WPluasoeW6lyA8IHRvcml0c3VnaXRlblwgOwor5q2v5YaF55mC5rOVIDwgc2hpa2FyeW91aG91XCA7CivmgqrmiK/lsI/lg6cgPCBpdGF6dXJha296b3VcIDsKK+WFqOaoqeWkp+S9vyA8IHplbmtlbnRhaXNoaVwgOwor5Y2x5oCl5a2Y5LqhIDwga2lreXV1c29uYm91XCA7CivlroflrpnkuK3ntpkgPCB1Y2h1dWNodXVrZWlcIDsKK+mdnuS6uumWk+eahCA8IGhpbmluZ2VudGVraVwgOwor5Y+X5L+h6KOF572uIDwganVzaGluc291Y2hpXCA7CivmlbDlgKToqIjnrpcgPCBzdXVjaGlrZWlzYW5cIDsKK+eJh+iogOmau+iqniA8IGhlbmdlbnNla2lnb1wgOwor5oeQ5Lit5pmC6KiIIDwga2FpY2h1dWRva2VpXCA7CivmnKfmnIjlpJwgPCBvYm9yb2R6dWtpeW9cIDsKK+ertui8qumBuOaJiyA8IGtlaXJpbnNlbnNodVwgOwor5Lqr5qW955qEIDwga3lvdXJha3V0ZWtpXCA7Civmmpflj7fop6Poqq0gPCBhbmdvdWthaWRva3VcIDsKK+WPjeWLleaAneaDsyA8IGhhbmRvdXNoaXNvdVwgOwor5a6f6Ki85Li7576pIDwgamlzc2hvdXNodWdpXCA7CivmqJnmupblgY/lt64gPCBoeW91anVuaGVuc2FcIDsKK+izh+a6kOWVj+mhjCA8IHNoaWdlbm1vbmRhaVwgOwor6YGL6YCB5qWt6ICFIDwgdW5zb3VneW91c2hhXCA7CivooYzli5XlnLDluK8gPCBrb3Vkb3VjaGl0YWlcIDsKK+awtOWKm+WtpiA8IHN1aXJ5b2t1Z2FrdVwgOwor5bmz562J5Li7576pIDwgYnlvdWRvdXNodWdpXCA7Civlj5blvJXlhYggPCB0b3JpaGlraXNha2lcIDsKK+S6pOS7o+aKleaJiyA8IGtvdXRhaXRvdXNodVwgOwor5Li86YmiIDwgZG9uYnVyaWJhY2hpXCA7CivlhaXlipvnt5ogPCBueXV1cnlva3VzZW5cIDsKK+S9juihgOWcpyA8IHRlaWtldHN1YXRzdVwgOwor5Zu95a6254us5Y2gIDwga29ra2Fkb2t1c2VuXCA7CivlnJ/lnLDmlLnoia8gPCB0b2NoaWthaXJ5b3VcIDsKK+eSsOWig+Wfuua6liA8IGthbmt5b3VraWp1blwgOwor5aSW5Lqk5paH5pu4IDwgZ2Fpa291YnVuc2hvXCA7Civou73mjJnlpoTli5UgPCBrZWlreW9tb3Vkb3VcIDsKK+mYsuiZq+WKoOW3pSA8IGJvdWNodXVrYWtvdVwgOwor5LiN5Zyo5oqV56WoIDwgZnV6YWl0b3VoeW91XCA7CivkvLjnuK7mgKcgPCBzaGluc2h1a3VzZWlcIDsKK+W+i+S7pOWItiA8IHJpdHN1cnlvdXNlaVwgOwor5auM54WZ6YGL5YuVIDwga2VuJydlbicndW5kb3VcIDsKK+Wwgee3mOiRieabuCA8IGZ1dWthbmhhZ2FraVwgOwor5b2i5byP55qEIDwga2Vpc2hpa2l0ZWtpXCA7Civms7DnhLboh6roi6UgPCB0YWl6ZW5qaWpha3VcIDsKK+aVl+WMl+S4u+e+qSA8IGhhaWJva3VzaHVnaVwgOwor5L6h5qC85oCn6IO9IDwga2FrYWt1c2Vpbm91XCA7Civmm7jpoZ7pgIHmpJwgPCBzaG9ydWlzb3VrZW5cIDsKK+S6uuaoqeWVj+mhjCA8IGppbmtlbm1vbmRhaVwgOwor5Luy56uL5Lq6IDwgbmFrYWRhY2hpbmluXCA7CivmmIfpmY3lj6MgPCBzaG91a291Z3VjaGlcIDsKK+S4gOatu+WgseWbvSA8IGlzc2hpaG91a29rdVwgOwor6KiY6Yyy5L+CIDwga2lyb2t1Z2FrYXJpXCA7Civlt6XkvZzniakgPCBrb3VzYWt1YnV0c3VcIDsKK+e3tOmmrOWkp+aguSA8IG5lcmltYWRhaWtvblwgOwor5LiA57O45LiA5q+rIDwgaXNzaGlpY2hpZ291XCA7Civnibnmrorkuovmg4UgPCB0b2t1c2h1amlqb3VcIDsKK+ato+ebtOiAhSA8IHNob3VqaWtpbW9ub1wgOwor6ICB5bCR5LiN5a6aIDwgcm91c2hvdWZ1dGVpXCA7CivkuK3lv4PnmoQgPCBjaHV1c2hpbnRla2lcIDsKK+iHque/kuWupCA8IGppc2h1dXNoaXRzdVwgOwor5LuK5piO5pelIDwga29ubXlvdW5pY2hpXCA7Civnm7jkuZflubPlnYcgPCBzb3Vqb3VoZWlraW5cIDsKK+S4h+W5tOWAmeijnCA8IG1hbicnbmVua291aG9cIDsKK+WuieWFqOaVmeiCsiA8IGFuemVua3lvdWlrdVwgOwor54Sh6LOD5LmX6LuKIDwgbXVjaGluam91c2hhXCA7CivniYfli5nlpZHntIQgPCBoZW5tdWtlaXlha3VcIDsKK+S4gOiIrOWkp+ihhiA8IGlwcGFudGFpc2h1dVwgOwor5Y+k5YW45paH5a2mIDwga290ZW5idW5nYWt1XCA7Civpq5jmoKHph47nkIMgPCBrb3Vrb3V5YWt5dXVcIDsKK+mWk+aOpeeahCA8IGthbnNldHN1dGVraVwgOwor5Lit6I+v5paZ55CGIDwgY2h1dWthcnlvdXJpXCA7Civlh7rniYjniakgPCBzaHVwcGFuYnV0c3VcIDsKK+WBpeW6t+eKtuaFiyA8IGtlbmtvdWpvdXRhaVwgOwor5qC46LuN57iuIDwga2FrdWd1bnNodWt1XCA7Civpub/lhZDls7bnnIwgPCBrYWdvc2hpbWFrZW5cIDsKK+a6luWCmeeKtuazgSA8IGp1bmJpam91a3lvdVwgOwor6YG45aSW5L2z5L2cIDwgc2VuZ2Fpa2FzYWt1XCA7CivoqIDoqp7mlZnogrIgPCBnZW5nb2t5b3Vpa3VcIDsKK+WQjOaWh+WQjOeoriA8IGRvdWJ1bmRvdXNodVwgOwor57Wm5LiO5L2T57O7IDwga3l1dXlvdGFpa2VpXCA7Civpurvolqzniq/nvaogPCBtYXlha3VoYW56YWlcIDsKK+acneS7pOaaruaUuSA8IGNob3VyZWlib2thaVwgOwor5LiA6KaL6K2YIDwgaWNoaWtlbnNoaWtpXCA7CivmlLvmkoPlipsgPCBrb3VnZWtpcnlva3VcIDsKK+S6kuaBteadoee0hCA8IGdva2Vpam91eWFrdVwgOwor5LiA5Zu95LiA56WoIDwgaWtrb2t1aXBweW91XCA7CivnoLLoiablpJbkuqQgPCBob3VrYW5nYWlrb3VcIDsKK+aVtOmrquaWmSA8IHNlaWhhdHN1cnlvdVwgOwor5rWB6KGM6KiA6JGJIDwgaGF5YXJpa290b2JhXCA7CivkuqTpgJrmqZ/plqIgPCBrb3V0c3V1a2lrYW5cIDsKK+awtOmKgOmbu+axoCA8IHN1aWdpbmRlbmNoaVwgOwor5YCS5LqLIDwgc2FrYXNhbWFnb3RvXCA7Civov73lloTkvpvppIogPCB0c3VpemVua3V5b3VcIDsKK+S7luWKm+acrOmhmCA8IHRhcmlraWhvbmdhblwgOwor56ym5Y+36Kej6KqtIDwgZnVnb3VrYWlkb2t1XCA7Civnn6Xog73mjIfmlbAgPCBjaGlub3VzaGlzdXVcIDsKK+S6nOeGseW4r+awl+WAmSA8IGFuZXR0YWlraWtvdVwgOwor5b2T5Za25qWt5omAIDwgdG91ZWlneW91c2hvXCA7Civogbflk6HkvJrorbAgPCBzaG9rdWlua2FpZ2lcIDsKK+iogOiqnueJueaciSA8IGdlbmdvdG9rdXl1dVwgOwor5pyA5bCP6ZmQ5bqmIDwgc2Fpc2hvdWdlbmRvXCA7Civmn5PkupXlkInph44gPCBzb21laXlvc2hpbm9cIDsKK+WujOWFqOeKr+e9qiA8IGthbnplbmhhbnphaVwgOwor5pqB6ZeHIDwgYWthdHN1a2l5YW1pXCA7CivmlZnogrLliLbluqYgPCBreW91aWt1c2VpZG9cIDsKK+aIpuWbveaZguS7oyA8IHNlbmdva3VqaWRhaVwgOwor5YmN6aeG55eH54q2IDwgemVua3VzaG91am91XCA7CivkuIPpnaLlgJIgPCBzaGljaGltZW5kb3VcIDsKK+iAkOa5v+aApyA8IHRhaXNoaXRzdXNlaVwgOwor57Sr57as6KSS6LOeIDwgc2hpanVob3VzaG91XCA7CivkuIDoqIDljYrlj6UgPCBpY2hpZ29uaGFua3VcIDsKK+S4jeazleWNoOaciSA8IGZ1aG91c2VuJyd5dXVcIDsKK+S7j+aWh+WtpiA8IGZ1dHN1YnVuZ2FrdVwgOwor5a625bqt55Kw5aKDIDwga2F0ZWlrYW5reW91XCA7CivnlZHmsLTnt7QgPCBoYXRha2VzdWlyZW5cIDsKK+WLheaSsOmbhiA8IGNob2t1c2Vuc2h1dVwgOwor5LiD6Z2i5L2TIDwgc2hpY2hpbWVudGFpXCA7CivoiJ7lj7Dnm6PnnaMgPCBidXRhaWthbnRva3VcIDsKK+WQiOaIkOearumdqSA8IGdvdXNlaWhpa2FrdVwgOwor5Zyo5a6F5Yuk5YuZIDwgemFpdGFrdWtpbm11XCA7CivnhKHmlL/lupzkuLvnvqkgPCBtdXNlaWZ1c2h1Z2lcIDsKK+S4jeWcqOWcsOS4uyA8IGZ1emFpamludXNoaVwgOwor5LiA5a6/5LiA6aOvIDwgaXNzaHVrdWlwcGFuXCA7CivogIHkurrnl4XpmaIgPCByb3VqaW5ieW91aW5cIDsKK+eJh+iCuumjm+ihjCA8IGthdGFoYWloaWtvdVwgOwor5a++5r2c5rC06ImmIDwgdGFpc2Vuc3Vpa2FuXCA7CivorabmiJLorabloLEgPCBrZWlrYWlrZWlob3VcIDsKK+WKueeOh+eahCA8IGtvdXJpdHN1dGVraVwgOwor57Sv56mN6LWk5a2XIDwgcnVpc2VraWFrYWppXCA7Civlrrbml4/mp4vmiJAgPCBrYXpva3Vrb3VzZWlcIDsKK+WGheaflOWkluWJmyA8IG5haWp1dWdhaWdvdVwgOwor5bGe5Lq65Li7576pIDwgem9rdWppbnNodWdpXCA7CivnhrHph4/oqIggPCBuZXRzdXJ5b3VrZWlcIDsKK+ehrOi7n+S4oea0viA8IGtvdW5hbnJ5b3VoYVwgOwor5bqn5bit55Wq5Y+3IDwgemFzZWtpYmFuZ291XCA7CivnqbrkuK3mta7mj5ogPCBrdXVjaHV1ZnV5b3VcIDsKK+S4geeomuWlieWFrCA8IGRldGNoaWJvdWtvdVwgOwor5LiA5pa55Lqk6YCaIDwgaXBwb3Vrb3V0c3V1XCA7CivkuInml6XmnIjlvaIgPCBtaWthZHp1a2lrZWlcIDsKK+enu+WLleWbs+abuOmkqCA8IGlkb3V0b3Nob2thblwgOwor5qSc5LqL57eP6ZW3IDwga2Vuamlzb3VjaG91XCA7Civms6jph4jogIUgPCBjaHV1c2hha3VzaGFcIDsKK+eLreW/g+eXhyA8IGt5b3VzaGluc2hvdVwgOwor5paw6KaP5oqV6LOHIDwgc2hpbmtpdG91c2hpXCA7CivljZjoqp7mpJzntKIgPCB0YW5nb2tlbnNha3VcIDsKK+W8peeMm+W/gyA8IHlhdGFrZWdva29yb1wgOwor6Zqg5Yy/54mp6LOHIDwgaW50b2t1YnVzc2hpXCA7CivlpbPkurrnpoHliLYgPCBueW9uaW5raW5zZWlcIDsKK+Wkp+S/rumBk+mZoiA8IGRhaXNodXVkb3VpblwgOwor5qOu5p6X5YWs5ZySIDwgc2hpbnJpbmtvdWVuXCA7Civnt4/oirHlvI8gPCBzb3ViYW5hc2hpa2lcIDsKK+WNlOWVhuWbvSA8IGt5b3VzaG91a29rdVwgOwor5Y+X6aiT6LOH5qC8IDwganVrZW5zaGlrYWt1XCA7CivkuIPntYPnkLQgPCBzaGljaGlnZW5raW5cIDsKK+Wkp+WSjOiogOiRiSA8IHlhbWF0b2tvdG9iYVwgOwor5YSA5byP5Li7576pIDwgZ2lzaGlraXNodWdpXCA7CivpgKDlsbHpgYvli5UgPCB6b3V6YW4nJ3VuZG91XCA7CivkuIDoiKzmlZnogrIgPCBpcHBhbmt5b3Vpa3VcIDsKK+eIhuijguW8viA8IGJha3VyZXRzdWRhblwgOwor56uL5L2T6Z+z6Z+/IDwgcml0dGFpb25reW91XCA7CivlrpfmlZnlv4MgPCBzaHV1a3lvdXNoaW5cIDsKK+eJuembhuiomOS6iyA8IHRva3VzaHV1a2lqaVwgOwor5LuY5biv5rG66K2wIDwgZnV0YWlrZXRzdWdpXCA7Civoo73ntJnlt6XloLQgPCBzZWlzaGlrb3Vqb3VcIDsKK+WFrOWFseeJqSA8IGtvdWt5b3VidXRzdVwgOwor5pWR5oCl566xIDwga3l1dWt5dXViYWtvXCA7CivmlZHmj7TmipXmiYsgPCBreXV1ZW50b3VzaHVcIDsKK+iyoeWbo+azleS6uiA8IHphaWRhbmhvdWppblwgOwor5rCR5L+X6Iie6LiKIDwgbWluem9rdWJ1eW91XCA7CivmiKbkuonniq/nvaogPCBzZW5zb3VoYW56YWlcIDsKK+mbo+eHg+WKoOW3pSA8IG5hbicnbmVua2Frb3VcIDsKK+WNl+iIueWMl+mmrCA8IG5hbnNlbmhva3ViYVwgOwor5qmf6IO96Zqc5a6zIDwga2lub3VzaG91Z2FpXCA7Civlrp/ooYzlp5Tlk6HkvJogPCBqaWtrb3VpaW5rYWlcIDsKK+eLguipqeabsiA8IGt5b3VzaGlreW9rdVwgOwor5pel5pys5Zu95rCRIDwgbmlob25rb2t1bWluXCA7Civkv4TliIbpmZAgPCBuaXdha2FidW5nZW5cIDsKK+iInui4j+aVmeW4qyA8IGJ1dG91a3lvdXNoaVwgOwor5p6X6ZaT5a2m5qChIDwgcmlua2FuZ2Fra291XCA7Civmnb7mr6wgPCBtYXRzdXBva2t1cmlcIDsKK+iKsemtgemBk+S4rSA8IG9pcmFuZG91Y2h1dVwgOwor5ruR6ZmN56u25oqAIDwga2Fra291a3lvdWdpXCA7CivlnKjlpJblhazppKggPCB6YWlnYWlrb3VrYW5cIDsKK+Wul+aVmeWtpiA8IHNodXVreW91Z2FrdVwgOwor6aCt6JmxIDwgYXRhbWFzaGlyYW1pXCA7CivkuIDml6XkuK0gPCBpY2hpbmljaGlqdXVcIDsKK+WcsOaWuemBuOaMmSA8IGNoaWhvdXNlbmt5b1wgOwor5rGC6IG36ICFIDwga3l1dXNob2t1c2hhXCA7CivnlZzmrrrloLQgPCBjaGlrdXNhdHN1YmFcIDsKK+WQiOaIkOWMluWtpiA8IGdvdXNlaWthZ2FrdVwgOwor56eB6KO96JGJ5pu4IDwgc2hpc2VpaGFnYWtpXCA7CivlrablubTmnKsgPCBnYWt1bmVubWF0c3VcIDsKK+S4jeWumuepjeWIhiA8IGZ1dGVpc2VraWJ1blwgOwor5q2j44CF5aCC44CFIDwgc2Vpc2VpZG91ZG91XCA7CivljYrkv6HljYrnlpEgPCBoYW5zaGluaGFuZ2lcIDsKK+epgOixoeiZqyA8IGtva3V6b3VtdXNoaVwgOwor6Ly45YWl6LaF6YGOIDwgeXVueXV1Y2hvdWthXCA7CivnhKHpn7/lrqQgPCBtdWt5b3VzaGl0c3VcIDsKK+etjeWMu+iAhSA8IHRha2Vub2tvaXNoYVwgOwor5Zub5YWD6YCf5bqmIDwgc2hpZ2Vuc29rdWRvXCA7Civku5jlsZ7lrabmoKEgPCBmdXpva3VnYWtrb3VcIDsKK+S6uuW3peecn+ePoCA8IGppbmtvdXNoaW5qdVwgOwor5r2b5b+D5YqbIDwgc2Vuc2hpbnJ5b2t1XCA7CivoiIjooYzkuLsgPCBrb3VneW91bnVzaGlcIDsKK+S6uuaoqeWbo+S9kyA8IGppbmtlbmRhbnRhaVwgOwor5pys5paH5om56KmVIDwgaG9ubW9uaGloeW91XCA7Civkub7lnLDovrLms5UgPCBrYW5jaGlub3Vob3VcIDsKK+WWp+WWp+WbguWbgiA8IGtlbmtlbmdvdWdvdVwgOwor5p2+5p6XIDwgbWF0c3ViYXlhc2hpXCA7CivkurrlrprlsIvllY8gPCBqaW50ZWlqaW5tb25cIDsKK+S7u+acn+a6gOS6hiA8IG5pbmtpbWFucnlvdVwgOwor56u26aas5paw6IGeIDwga2VpYmFzaGluYnVuXCA7Civkv67po77lrZAgPCBzaHV1c2hva3VzaGlcIDsKK+WPjuebiueOhyA8IHNodXVla2lyaXRzdVwgOwor56Wd5YSA6KKLIDwgc2h1dWdpYnVrdXJvXCA7Civpm7vmsJflt6XlraYgPCBkZW5raWtvdWdha3VcIDsKK+WpmuWnu+WxiiA8IGtvbicnaW50b2Rva2VcIDsKK+S+m+e1pumBjuWkmiA8IGt5b3VreXV1a2F0YVwgOwor5Y+j6aCt5a+p55CGIDwga291dG91c2hpbnJpXCA7CivpmpzlrrPniakgPCBzaG91Z2FpYnV0c3VcIDsKK+W5s+WSjOaVmeiCsiA8IGhlaXdha3lvdWlrdVwgOwor6buS6Yq555eFIDwga3Vyb3NhYmlieW91XCA7CivkurrnianoqZUgPCBqaW5idXRzdWh5b3VcIDsKK+e3j+WQiOeXhemZoiA8IHNvdWdvdWJ5b3VpblwgOwor5LiK5bGk5rCX5rWBIDwgam91c291a2lyeXV1XCA7CivogIHpvaLlubTph5EgPCByb3VyZWluZW5raW5cIDsKK+mbkeaJgOW+lyA8IHphdHN1c2hvdG9rdVwgOwor5Yml6KO96KGTIDwgaGFrdXNlaWp1dHN1XCA7CivmvJTlpY/nt7Tnv5IgPCBlbnNvdXJlbnNodXVcIDsKK+eLrOWNoOassiA8IGRva3VzZW4nJ3lva3VcIDsKK+S7leaOm+WcsOmbtyA8IHNoaWtha2VqaXJhaVwgOwor5p2f5p+xIDwgdHN1a2FiYXNoaXJhXCA7Civlm57ou6Los4fph5EgPCBrYWl0ZW5zaGlraW5cIDsKK+e1tuacm+eahCA8IHpldHN1Ym91dGVraVwgOwor5pqX5Lit5qih57SiIDwgYW5jaHV1bW9zYWt1XCA7CivlpKnnhLboibIgPCB0ZW4nJ25lbnNob2t1XCA7CivllK/miJHni6zlsIogPCB5dWlnYWRva3Vzb25cIDsKK+mbhuaVo+S4u+e+qSA8IHNodXVzYW5zaHVnaVwgOwor5Zyf55Sj54mp5bGLIDwgbWl5YWdlbW9ub3lhXCA7Civoh6rntaboh6rotrMgPCBqaWt5dXVqaXNva3VcIDsKK+iEguiCquizqiA8IHNoaWJvdXNoaXRzdVwgOwor5a6X5pWZ5YqHIDwgc2h1dWt5b3VnZWtpXCA7CivlkozlubPljZTlrpogPCB3YWhlaWt5b3V0ZWlcIDsKK+S7j+W/gyA8IGhvdG9rZWdva29yb1wgOwor5Ye65aC06ICFIDwgc2h1dHN1am91c2hhXCA7CivlnLDmlrnliIbmqKkgPCBjaGlob3VidW5rZW5cIDsKK+S5vua8huWDjyA8IGthbnNoaXRzdXpvdVwgOwor5biC5YaF6Kaz5YWJIDwgc2hpbmFpa2Fua291XCA7CivmlL7lsITog73pm6ggPCBob3VzaGFub3VhbWVcIDsKK+WGhee9sOeahCA8IG5haWJhdHN1dGVraVwgOwor5LiD6KeS5b2iIDwgc2hpY2hpa2Fra2VpXCA7Civoq5zloLHmqZ/plqIgPCBjaG91aG91a2lrYW5cIDsKK+WNs+iIiOabsiA8IHNva2t5b3VreW9rdVwgOwor5bCx5a2m576p5YuZIDwgc2h1dWdha3VnaW11XCA7CivoiKrnqbrlhKrli6IgPCBrb3VrdXV5dXVzZWlcIDsKK+S6uuaJjeeZu+eUqCA8IGppbnphaXRvdXlvdVwgOwor5pWj55m655qEIDwgc2FucGF0c3V0ZWtpXCA7CivopIfmnKzkvY3liLYgPCBmdWt1aG9uJydpc2VpXCA7CivnlJ/mtLvkv53orbcgPCBzZWlrYXRzdWhvZ29cIDsKK+mbhuS4reixqumbqCA8IHNodXVjaHV1Z291dVwgOwor5b605YW15YWN6ZmkIDwgY2hvdWhlaW1lbmpvXCA7CivlhazlrrPllY/poYwgPCBrb3VnYWltb25kYWlcIDsKK+WNmOi6q+i1tOS7uyA8IHRhbnNoaW5mdW5pblwgOwor5bqD5Y+j55O2IDwgaGlyb2t1Y2hpYmluXCA7Civlt67liKXnlKjoqp4gPCBzYWJldHN1eW91Z29cIDsKK+S6uuWPo+WLleaFiyA8IGppbmtvdWRvdXRhaVwgOwor5a6H5a6Z54mp55CGIDwgdWNodXVidXRzdXJpXCA7CivlhajpnaLmiKbkuokgPCB6ZW5tZW5zZW5zb3VcIDsKK+e1jOa4iOeKtuaFiyA8IGtlaXphaWpvdXRhaVwgOwor5aeU6KiX56CU56m2IDwgaXRha3VrZW5reXV1XCA7CivljYPovpvkuIfoi6YgPCBzZW5zaGluYmFua3VcIDsKK+WMu+eZguWgsemFrCA8IGlyeW91aG91c2h1dVwgOwor5rC05pm25pmC6KiIIDwgc3Vpc2hvdWRva2VpXCA7CivkuInmlofmloflo6sgPCBzYW5tb25idW5zaGlcIDsKK+Wbnui7ouacqOmmrCA8IGthaXRlbm1va3ViYVwgOwor5LiN5oim5p2h57SEIDwgZnVzZW5qb3V5YWt1XCA7CivkuIDnlJ/mh7jlkb0gPCBpc3Nob3VrZW5tZWlcIDsKK+Wcp+e4rueOhyA8IGFzc2h1a3VyaXRzdVwgOwor5pel6YCy5pyI5q2pIDwgbmlzc2hpbmdlcHBvXCA7Civlj5foqJfosqnlo7IgPCBqdXRha3VoYW5iYWlcIDsKK+aWh+WMluWLsueroCA8IGJ1bmtha3Vuc2hvdVwgOwor5oKg5oKg6ZaR6ZaRIDwgeXV1eXV1a2Fua2FuXCA7Civku4/oi7Hovp7lhbggPCBmdXRzdWVpaml0ZW5cIDsKK+Wuv+aziuS6uiA8IHNodWt1aGFrdW5pblwgOwor55WZ5a6I55Wq6Zu76KmxIDwgcnVzdWJhbmRlbndhXCA7CivooZvnlJ/lt6XlraYgPCBlaXNlaWtvdWdha3VcIDsKK+aUv+imi+aUvumAgSA8IHNlaWtlbmhvdXNvdVwgOwor5rC05oCn5aGX5paZIDwgc3Vpc2VpdG9yeW91XCA7CivnjKnntIXnhrEgPCBzaG91a291bmV0c3VcIDsKK+WFiOmAsuWFteWZqCA8IHNlbnNoaW5oZWlraVwgOwor6Ieq5bex5Lit5b+DIDwgamlrb2NodXVzaGluXCA7CivljZTlipvpi7wgPCBreW91cnlva3Vrb3VcIDsKK+WQjOWSjOaVmeiCsiA8IGRvdXdha3lvdWlrdVwgOwor5a2m6b2i5YWQ56ulIDwgZ2FrdXJlaWppZG91XCA7CivogZblnLDlt6HnpLwgPCBzZWljaGlqdW5yZWlcIDsKK+ekvuWbo+azleS6uiA8IHNoYWRhbmhvdWppblwgOwor5omA55Wq5ZywIDwgdG9rb3JvYmFuY2hpXCA7Civms6jph4jmm7ggPCBjaHV1c2hha3VzaG9cIDsKK+iyqOeJqei8uOmAgSA8IGthbW90c3V5dXNvdVwgOwor54m55b606YePIDwgdG9rdWNob3VyeW91XCA7CivmraPlpJrop5LlvaIgPCBzZWl0YWtha3VrZWlcIDsKK+aHkOW3peWQiCA8IGZ1dG9rb3JvZ3VhaVwgOwor6Zu75rCX5a656YePIDwgZGVua2l5b3VyeW91XCA7CivmupbnpoHmsrvnlKMgPCBqdW5raW5jaGlzYW5cIDsKK+aPj+WGmeWKmyA8IGJ5b3VzaGFyeW9rdVwgOwor5YyW5a2m5qeL6YCgIDwga2FnYWt1a291em91XCA7CivnlJ/nianlraYgPCBzZWlidXRzdWdha3VcIDsKK+S4gOWFmueLrOijgSA8IGl0dG91ZG9rdXNhaVwgOwor54Sh6ZmQ5bCP5pWwIDwgbXVnZW5zaG91c3V1XCA7CivmuL7nhLbkuIDkvZMgPCBrb256ZW4nJ2l0dGFpXCA7CivmtbflupXlnLDpnIcgPCBrYWl0ZWlqaXNoaW5cIDsKK+WNmuWjq+iqsueoiyA8IGhha3VzaGlrYXRlaVwgOwor5bmz5Z2H5a+/5ZG9IDwgaGVpa2luanVteW91XCA7CivluILmsJHpgYvli5UgPCBzaGltaW4nJ3VuZG91XCA7CivoqJjlv7Xlh7rniYggPCBraW5lbnNodXBwYW5cIDsKK+ijhee9ruWItuW+oSA8IHNvdWNoaXNlaWd5b1wgOwor5Y6f6KOB5Yik5omAIDwgZ2Vuc2FpYmFuc2hvXCA7CivmpJzoqI7lp5Tlk6HkvJogPCBrZW50b3VpaW5rYWlcIDsKK+WOmueUn+Wkp+iHoyA8IGtvdXNlaWRhaWppblwgOwor5rK56ISC5bel5qWtIDwgeXVzaGlrb3VneW91XCA7Civnt4/mlK/phY3kurogPCBzb3VzaGloYWluaW5cIDsKK+iqreabuOWKmyA8IGRva3VzaG9yeW9rdVwgOwor5pel54Wn5pmC6ZaTIDwgbmlzc2hvdWppa2FuXCA7CivkuIDoiKzmlZnmm7ggPCBpcHBhbmt5b3VzaG9cIDsKK+S4gOmDqOWni+e1giA8IGljaGlidXNoaWp1dVwgOwor6Zai5pWw5Y6f5Z6LIDwga2Fuc3V1Z2Vua2VpXCA7Civnn6XorZjmrLIgPCBjaGlzaGlraXlva3VcIDsKK+S4iemHjeWuneWGoCA8IHNhbmp1dWhvdWthblwgOwor5YWo6YCf5YqbIDwgemVuc29rdXJ5b2t1XCA7CivmrZPpgIHov47kvJogPCBrYW5zb3VnZWlrYWlcIDsKK+e3iuaApemBv+mboyA8IGtpbmt5dXVoaW5hblwgOwor5Yi56YKj5Li7576pIDwgc2V0c3VuYXNodWdpXCA7Civlt6Xmpa3lnLDljLogPCBrb3VneW91Y2hpa3VcIDsKK+aIkealveWkmuW4giA8IGdhcmFrdXRhaWNoaVwgOwor6KGG6K2w6Zmi6K2w5ZOhIDwgc2h1dWdpaW5naWluXCA7Civou6Llhpnmjbrmn5MgPCB0ZW5zaGFuYXNzZW5cIDsKK+iHqueEtueBveWusyA8IHNoaXplbnNhaWdhaVwgOwor5rex57SF6ImyIDwgc2hpbmtvdXNob2t1XCA7CivlpKnkupXmo6fmlbcgPCB0ZW5qb3VzYWppa2lcIDsKK+WFiOihjOadoeS7tiA8IHNlbmtvdWpvdWtlblwgOwor5pyI5LiL5rC35Lq6IDwgZ2Vra2FoeW91amluXCA7CivmnKrlubQgPCBoaXRzdWppZG9zaGlcIDsKK+iwt+aHkCA8IHRhbmlidXRva29yb1wgOwor6YG46ICD5aeU5ZOh5LyaIDwgc2Vua291aWlua2FpXCA7CivljLvolqzliIbmpa0gPCBpeWFrdWJ1bmd5b3VcIDsKK+mbgemqqCA8IGthcmlnYW5lYm9uZVwgOwor6Lqr5YWD5L+d6Ki8IDwgbWltb3RvaG9zaG91XCA7Civou5/nnYDpmbggPCBuYW5jaGFrdXJpa3VcIDsKK+e0lOato+enkeWtpiA8IGp1bnNlaWthZ2FrdVwgOwor5LqM6YeN6YGT5b6zIDwgbmlqdXVkb3V0b2t1XCA7CivmgrLllpzkuqTkuqQgPCBoaWtpa29tb2dvbW9cIDsKK+e3iuaApeWLleitsCA8IGtpbmt5dXVkb3VnaVwgOwor5aSq6Zm96Zu75rGgIDwgdGFpeW91ZGVuY2hpXCA7CivooZfpoK3pjLLpn7MgPCBnYWl0b3Vyb2t1b25cIDsKK+Wbvemam+apn+mWoiA8IGtva3VzYWlraWthblwgOwor5p2x5Y+jIDwgaGlnYXNoaWd1Y2hpXCA7CivliY3lgr7lp7/li6IgPCB6ZW5rZWlzaGlzZWlcIDsKK+W4sOWxnuaEj+itmCA8IGtpem9rdWlzaGlraVwgOwor5YWs6KGG5L6/5omAIDwga291c2h1dWJlbmpvXCA7Civml6XmnKzlm73lhoUgPCBuaWhvbmtva3VuYWlcIDsKK+iJsuaDheeLgiA8IHNoaWtpam91a3lvdVwgOwor6YO15L6/6KKLIDwgeXV1YmluYnVrdXJvXCA7CivpgbjmsJHmgJ3mg7MgPCBzZW5taW5zaGlzb3VcIDsKK+WSgOWavOmBi+WLlSA8IHNvc2hha3V1bmRvdVwgOwor6KiY5b+15YaZ55yfIDwga2luZW5zaGFzaGluXCA7CivoqLrlr5/lj7AgPCBzaGluc2F0c3VkYWlcIDsKK+azoeayq+eahCA8IGhvdW1hdHN1dGVraVwgOwor54Gr54e15biD5ZujIDwga290YXRzdWJ1dG9uXCA7Civku67ph4jmlL4gPCBrYXJpc2hha3Vob3VcIDsKK+WFqOmdouemgeatoiA8IHplbm1lbmtpbnNoaVwgOwor5YyX5Zue5biw57eaIDwga2l0YWthaWtpc2VuXCA7CivpgKPlkIjoiabpmoogPCByZW5nb3VrYW50YWlcIDsKK+aApemAsueahCA8IGt5dXVzaGludGVraVwgOwor5Lq65ZG95pWR5YqpIDwgamlubWVpa3l1dWpvXCA7CivmiKbkuonnirbmhYsgPCBzZW5zb3Vqb3V0YWlcIDsKK+Wls+WtkOWkp+WtpiA8IGpvc2hpZGFpZ2FrdVwgOwor5Zu95aOr54Sh5Y+MIDwga29rdXNoaW11c291XCA7CivlubPlnYfkvZnlkb0gPCBoZWlraW4nJ3lvbWVpXCA7CivkuovkvovnoJTnqbYgPCBqaXJlaWtlbmt5dXVcIDsKK+WIhuaVo+aKleizhyA8IGJ1bnNhbnRvdXNoaVwgOwor6Ki65a+f5Yi4IDwgc2hpbnNhdHN1a2VuXCA7CivmpbXlsI/lgKQgPCBreW9rdXNob3VjaGlcIDsKK+WBtuWDj+ekvOaLnSA8IGd1dXpvdXJlaWhhaVwgOwor5Yq55p6c6Ka/6Z2iIDwga291a2F0ZWtpbWVuXCA7Civnt4rlvLXnt6nlkowgPCBraW5jaG91a2Fud2FcIDsKK+S4jeioseikh+ijvSA8IGZ1a3lvZnVrdXNlaVwgOwor5YyX5qyn56We6KmxIDwgaG9rdW91c2hpbndhXCA7CivkurrkuovooYzmlL8gPCBqaW5qaWd5b3VzZWlcIDsKK+aYreWSjOW5tOmWkyA8IHNob3V3YW5lbmthblwgOwor5Zu95a2X5ZWP6aGMIDwga29rdWppbW9uZGFpXCA7CivkvpvooYDogIUgPCBreW91a2V0c3VzaGFcIDsKK+WbveWLmeWkp+iHoyA8IGtva3VtdWRhaWppblwgOwor5p2v5LqLIDwgc2FrYXp1a2lnb3RvXCA7CivoqIDoqp7pmpzlrrMgPCBnZW5nb3Nob3VnYWlcIDsKK+WGjeiyqeS+oeagvCA8IHNhaWhhbmtha2FrdVwgOwor5bmz5Z2H5qCq5L6hIDwgaGVpa2lua2FidWthXCA7Civlronmga/pppnphbggPCBhbnNva3Vrb3VzYW5cIDsKK+itnOS7o+Wkp+WQjSA8IGZ1ZGFpZGFpbXlvdVwgOwor5Y+O5YWl5b25IDwgc2h1dW55dXV5YWt1XCA7Civnr4DnlKjpm4YgPCBzZXRzdXlvdXNodXVcIDsKK+mFjemBlOaWmSA8IGhhaXRhdHN1cnlvdVwgOwor6aGe576p6Kqe6L6e5YW4IDwgcnVpZ2lnb2ppdGVuXCA7CivpgZPot6/oqIjnlLsgPCBkb3Vyb2tlaWtha3VcIDsKK+WPpOiHquWLlei7iiA8IGZ1cnVqaWRvdXNoYVwgOwor54us5p6VIDwgaGl0b3JpbWFrdXJhXCA7Civlrrnlp7/nq6/pupcgPCB5b3VzaGl0YW5yZWlcIDsKK+aWsOWNkuiAhSA8IHNoaW5zb3RzdXNoYVwgOwor6KuL6LKg5qWt6ICFIDwgdWtlb2lneW91c2hhXCA7CivpgJrluLjlj6Poqp4gPCB0c3V1am91a291Z29cIDsKK+WcqOWklumCpuS6uiA8IHphaWdhaWhvdWppblwgOwor5Y+O55uj5YqbIDwgc2h1dWthbnJ5b2t1XCA7CivplovmlL7ntYzmuIggPCBrYWlob3VrZWl6YWlcIDsKK+eZvuiRieeusSA8IGh5YWt1eW91YmFrb1wgOwor5L2T5pON56u25oqAIDwgdGFpc291a3lvdWdpXCA7CivlirTlg43lkIznm58gPCByb3Vkb3Vkb3VtZWlcIDsKK+Wbvemam+mDveW4giA8IGtva3VzYWl0b3NoaVwgOwor5pyJ5Yi66YmE57eaIDwgeXV1c2hpdGVzc2VuXCA7Civlm6PkvZPooYzli5UgPCBkYW50YWlrb3Vkb3VcIDsKK+W/nOeUqOaVsOWtpiA8IG91eW91c3V1Z2FrdVwgOwor5Y2U5Yqb6ICFIDwga3lvdXJ5b2t1c2hhXCA7CivkuqTpgJrlt6Hmn7sgPCBrb3V0c3V1anVuc2FcIDsKK+mAn+mBlOS+vyA8IHNva3V0YXRzdWJpblwgOwor54Sh5pW16Imm6ZqKIDwgbXV0ZWtpa2FudGFpXCA7CivoiKrnqbrkvJrnpL4gPCBrb3VrdXVnYWlzaGFcIDsKK+mKgOeZveiJsiA8IGdpbmhha3VzaG9rdVwgOwor5aSn5pS/5aWJ6YKEIDwgdGFpc2VpaG91a2FuXCA7CivkuI3mkpPkuI3lsYggPCBmdXRvdWZ1a3V0c3VcIDsKK+ebuOmWoumWouS/giA8IHNvdWthbmthbmtlaVwgOwor5ZCM55uf57235qWtIDwgZG91bWVpaGlneW91XCA7CivlpL7nq7nmoYMgPCBreW91Y2hpa3V0b3VcIDsKK+i7jeWCmeertuS6iSA8IGd1bmJpa3lvdXNvdVwgOwor5b2i5a655YuV6KmeIDwga2VpeW91ZG91c2hpXCA7Civoo5zntablubnnt5ogPCBob2t5dXVrYW5zZW5cIDsKK+eVnOeUn+mBkyA8IGNoaWt1c2hvdWRvdVwgOwor6Zuq6L6x5oimIDwgc2V0c3Vqb2t1c2VuXCA7Civngrrmm7/oo4HlrpogPCBrYXdhc2VzYWl0ZWlcIDsKK+ihqOePvuS4u+e+qSA8IGh5b3VnZW5zaHVnaVwgOwor5p2x5Lqs552AIDwgdG91a3lvdWNoYWt1XCA7Civpm7vkv6HlsYAgPCBkZW5zaGlua3lva3VcIDsKK+aWh+aVmeWcsOWMuiA8IGJ1bmt5b3VjaGlrdVwgOwor6Z2S6Imy55eHIDwgc2Vpc2hva3VzaG91XCA7CivluoPlkYrkuLsgPCBrb3Vrb2t1bnVzaGlcIDsKK+mHkeWxnueWsuWKtCA8IGtpbnpva3VoaXJvdVwgOwor5Y+z5pa56auY6bqX5qW9IDwgdWhvdWtvbWFnYWt1XCA7CivlvLfliLbnlo7plosgPCBreW91c2Vpc29rYWlcIDsKK+adseS6rOeZuiA8IHRvdWt5b3VoYXRzdVwgOwor6K2m6KaW57eP55ujIDwga2Vpc2hpc291a2FuXCA7Civku6PooajnpL7lk6EgPCBkYWloeW91c2hhaW5cIDsKK+WAn+Wxi+S9j+WxhSA8IHNoYWt1eWF6dW1haVwgOwor5b605YW15Yi25bqmIDwgY2hvdWhlaXNlaWRvXCA7Civnn63mnJ/lpKflraYgPCB0YW5raWRhaWdha3VcIDsKK+eri+S9k+aUvumAgSA8IHJpdHRhaWhvdXNvdVwgOwor5YWo6Lqr5rW0IDwgemVuc2hpbicneW9rdVwgOwor5Zyn6L+r5YyF5bivIDwgYXBwYWt1aG91dGFpXCA7CivlpInos6rogIUgPCBoZW5zaGl0c3VzaGFcIDsKK+mAmueUqOacn+mWkyA8IHRzdXV5b3VraWthblwgOwor5YuJ5by35pmC6ZaTIDwgYmVua3lvdWppa2FuXCA7CivmiLjnsY3orITmnKwgPCBrb3Nla2l0b3Vob25cIDsKK+WutuW6reaVmeiCsiA8IGthdGVpa3lvdWlrdVwgOwor5Zyw6ZyH5o6i6YmxIDwgamlzaGludGFua291XCA7Civpgb/pm6Pmoq/lrZAgPCBoaW5hbmJhc2hpZ29cIDsKK+Wkj+acqOeriyA8IG5hdHN1a29kYWNoaVwgOwor56S+5Lya5aWJ5LuVIDwgc2hha2FpaG91c2hpXCA7CivlqZrlpJbmgKfkuqQgPCBrb25nYWlzZWlrb3VcIDsKK+S4jeWPr+aKl+WKmyA8IGZ1a2Frb3VyeW9rdVwgOwor5LiA5aGKIDwgaGl0b2thdGFtYXJpXCA7Civorablr5/luoEgPCBrZWlzYXRzdWNob3VcIDsKK+alreeVjOWInSA8IGd5b3VrYWloYXRzdVwgOwor5Z+36KGM5qmf6ZaiIDwgc2hpa2tvdWtpa2FuXCA7Civli6Tli5noqZXlrpogPCBraW5tdWh5b3V0ZWlcIDsKK+WkqemVt+evgCA8IHRlbmNob3VzZXRzdVwgOwor5bi455So5a++5pWwIDwgam91eW91dGFpc3V1XCA7CivlqJjlv4MgPCBtdXN1bWVnb2tvcm9cIDsKK+Wkp+mBk+iKuOS6uiA8IGRhaWRvdWdlaW5pblwgOwor6buS6aKo55m96ZuoIDwga29rdWZ1dWhha3V1XCA7CivogqXljprmgKfpvLvngo4gPCBoaWtvdXNlaWJpZW5cIDsKK+mKgOihjOalreWLmSA8IGdpbmtvdWd5b3VtdVwgOwor54++5Zyw6Kq/5p+7IDwgZ2VuY2hpY2hvdXNhXCA7CivpgaDmtIvoiKrmtbcgPCBlbicneW91a291a2FpXCA7CivlpJbkuqTplqLkv4IgPCBnYWlrb3VrYW5rZWlcIDsKK+engeWtpuWKqeaIkCA8IHNoaWdha3Vqb3NlaVwgOwor55Sj6KSl54axIDwgc2Fuam9rdW5ldHN1XCA7CivnhKHnl5vliIblqKkgPCBtdXRzdXVidW5iZW5cIDsKK+S4jeiJr+WCteaoqSA8IGZ1cnlvdXNhaWtlblwgOwor5Zyw5Z+f5pmC5Yi7IDwgY2hpaWtpamlrb2t1XCA7Civlh7nniYjljbDliLcgPCBvdWhhbmluc2F0c3VcIDsKK+WfuuW5ueeUo+alrSA8IGtpa2Fuc2FuZ3lvdVwgOwor6Lev5LiK6aeQ6LuKIDwgcm9qb3VjaHV1c2hhXCA7CivljZjli53lvI8gPCB0YW5zaG91c2hpa2lcIDsKK+S6nOmFuOWMlueqkue0oCA8IGFzYW5rYWNoaXNzb1wgOwor6aaW6ISz5Lya6KuHIDwgc2h1bm91a2FpZGFuXCA7Civni6zoo4HmlL/msrsgPCBkb2t1c2Fpc2VpamlcIDsKK+WkluS6pOWVj+mhjCA8IGdhaWtvdW1vbmRhaVwgOwor6aCt6aCC6aqoIDwgdG91Y2hvdWtvdHN1XCA7CivnoLTnlKPnlLPoq4sgPCBoYXNhbnNoaW5zZWlcIDsKK+mDt+Wcn+iKuOiDvSA8IGt5b3Vkb2dlaW5vdVwgOwor5b6M5pa55Zyw5Z+fIDwga291aG91Y2hpaWtpXCA7CivlpKrpmb3mlL7lsIQgPCB0YWl5b3Vob3VzaGFcIDsKK+WjiuihgOeXhSA8IGthaWtldHN1YnlvdVwgOwor6KW/5rSL5paH5piOIDwgc2VpeW91YnVubWVpXCA7CivmjK/mm7/ovLjpgIEgPCBmdXJpa2FleXVzb3VcIDsKK+S6pOaPm+adoeS7tiA8IGtvdWthbmpvdWtlblwgOwor55m66KGM5biC5aC0IDwgaGFra291c2hpam91XCA7CivkuIDmmKjmmKjlubQgPCBzYWtpb3RvdG9zaGlcIDsKK+ijveiPk+alreiAhSA8IHNlaWthZ3lvdXNoYVwgOwor55yL5p2/5aiYIDwga2FuYmFubXVzdW1lXCA7CivmhJvlm73lm6PkvZMgPCBhaWtva3VkYW50YWlcIDsKK+WkieW9ouimj+WJhyA8IGhlbmtlaWtpc29rdVwgOwor5Lq65rCX5oqV56WoIDwgbmlua2l0b3VoeW91XCA7CivnlLflpbPlubPnrYkgPCBkYW5qb2J5b3Vkb3VcIDsKK+mDteS+v+iRieabuCA8IHl1dWJpbmhhZ2FraVwgOwor57eo6ZuG5bGAIDwgaGVuc2h1dWt5b2t1XCA7CivmmbTlvozpm6ggPCBoYXJlbm9jaGlhbWVcIDsKK+W4guWgtOaSpOmAgCA8IHNoaWpvdXRldHRhaVwgOwor5a6J5a6a5ZCM5L2N5L2TIDwgYW50ZWlkb3VpdGFpXCA7CivlrprmnJ/mpJzoqLogPCB0ZWlraWtlbnNoaW5cIDsKK+a1geWLlemjnyA8IHJ5dXVkb3VzaG9rdVwgOwor5aSP56WtIDwgbmF0c3VtYXRzdXJpXCA7Civlm6PkvZPnq7bmioAgPCBkYW50YWlreW91Z2lcIDsKK+mjn+mBk+alvSA8IHNob2t1ZG91cmFrdVwgOwor5rCR6ZaT5Zuj5L2TIDwgbWlua2FuZGFudGFpXCA7CivlsIHlu7rmgJ3mg7MgPCBob3VrZW5zaGlzb3VcIDsKK+iIque2mui3nemboiA8IGtvdXpva3VreW9yaVwgOwor5Y+M5bOw6aex6aedIDwgc291aG91cmFrdWRhXCA7Civnmb7np5Hlhajmm7ggPCBoeWFra2F6ZW5zaG9cIDsKK+ippuihjOmMr+iqpCA8IHNoaWtvdXNha3Vnb1wgOwor5bel5aC05Zyw5bivIDwga291am91Y2hpdGFpXCA7Civmr5vnuZTpjKYgPCBrZW9yaW5pc2hpa2lcIDsKK+aUv+ayu+aUuemdqSA8IHNlaWppa2Fpa2FrdVwgOwor5biC5rCR5Lya6aSoIDwgc2hpbWlua2Fpa2FuXCA7CivmsYLkurrlj6MgPCBreXV1amluZ3VjaGlcIDsKK+aciemZkOS8muekviA8IHl1dWdlbmdhaXNoYVwgOwor6YeN5ZWG5Li7576pIDwganV1c2hvdXNodWdpXCA7Civpp4XliY3luoPloLQgPCBla2ltYWVoaXJvYmFcIDsKK+e1guedgOmnhSA8IHNodXVjaGFrdWVraVwgOwor5pS/5rK76LKs5Lu7IDwgc2VpamlzZWtpbmluXCA7Civpu5LmsLTnhrEgPCBrb2t1c3VpbmV0c3VcIDsKK+S7rumAsue0miA8IGthcmlzaGlua3l1dVwgOwor5bCC5qWt5Li75ammIDwgc2VuZ3lvdXNodWZ1XCA7Civnj77loLTnm6PnnaMgPCBnZW5iYWthbnRva3VcIDsKK+WFrOi7ouWRqOacnyA8IGtvdXRlbnNodXVraVwgOwor5Y+j5LiJ5ZGz57eaIDwga3VjaGlqYW1pc2VuXCA7CivphY3pgZTlhYggPCBoYWl0YXRzdXNha2lcIDsKK+WvneeJqeiqniA8IG5lbW9ub2dhdGFyaVwgOwor5LiA5pio5pio5aScIDwgaXNzYWt1c2FrdXlhXCA7Civoi6Xmrr/ljp8gPCB3YWthdG9ub2JhcmFcIDsKK+ihgOa4heiCneeCjiA8IGtlc3NlaWthbicnZW5cIDsKK+S6uui3oeacqui4jyA8IGppbnNla2ltaXRvdVwgOwor5by35Yi25L+d6Zm6IDwga3lvdXNlaWhva2VuXCA7CivkuIDmnJvljYPph4wgPCBpY2hpYm91c2VucmlcIDsKK+WGt+iUteWupCA8IHJlaXpvdXNoaXRzdVwgOwor5YiR5YuZ5omA6ZW3IDwga2VpbXVzaG9jaG91XCA7CivloLTlhoXmlL7pgIEgPCBqb3VuYWlob3Vzb3VcIDsKK+acneS4ieaaruWbmyA8IGNob3VzYW5ib3NoaVwgOwor56aP56WJ5Zu95a62IDwgZnVrdXNoaWtva2thXCA7CivmsqHkuqTmuIkgPCBib3RzdWtvdXNob3VcIDsKK+mVt+WIgOS4gOaenSA8IGNob3V0b3Vpc3NoaVwgOwor6Z2Z6ISI55ikIDwgam91bXlha3VyeXV1XCA7CivnhKHnt5rlt6XlraYgPCBtdXNlbmtvdWdha3VcIDsKK+WLneWIqeaKleaJiyA8IHNob3VyaXRvdXNodVwgOwor5aSp5rCX5qaC5rOBIDwgdGVua2lnYWlreW91XCA7CivpqqjntYTnuZQgPCBrb3RzdXNvc2hpa2lcIDsKK+WNg+WNkumVtyA8IHNlbnNvdHN1Y2hvdVwgOwor54Sh5bi46L+F6YCfIDwgbXVqb3VqaW5zb2t1XCA7CivooYzli5Xnp5HlraYgPCBrb3Vkb3VrYWdha3VcIDsKK+ebtOi9hOWcsCA8IGNob2trYXRzdWNoaVwgOwor5LqI6Ziy5rOo5bCEIDwgeW9ib3VjaHV1c2hhXCA7CivmmJTlvI8gPCBtdWthc2hpc2hpa2lcIDsKK+alteenmOaDheWgsSA8IGdva3VoaWpvdWhvdVwgOwor5bCB5bu656S+5LyaIDwgaG91a2Vuc2hha2FpXCA7CivkuIDnrYvnuakgPCBoaXRvc3VqaW5hd2FcIDsKK+WKtOS9v+e0m+S6iSA8IHJvdXNoaWZ1bnNvdVwgOwor6Ieq5a2m6Ieq57+SIDwgamlnYWt1amlzaHV1XCA7CivkuI3pgKPntprnt5ogPCBmdXJlbnpva3VzZW5cIDsKK+ayu+WkluazleaoqSA8IGNoaWdhaWhvdWtlblwgOwor57WM5riI5aSW5LqkIDwga2VpemFpZ2Fpa291XCA7CivliIPniankuInmmKcgPCBoYW1vbm96YW5tYWlcIDsKK+WFieWtpue5iue2rSA8IGtvdWdha3VzZW4nJ2lcIDsKK+WwseiBt+mboyA8IHNodXVzaG9rdW5hblwgOwor5YWo5LyR5q2i56ymIDwgemVua3l1dXNoaWZ1XCA7CivlkozmtIvmipjoobcgPCB3YXlvdXNldGNodXVcIDsKK+a4heeul+S8muekviA8IHNlaXNhbmdhaXNoYVwgOwor5buD6Jep572u55yMIDwgaGFpaGFuY2hpa2VuXCA7Civoh6jluororJvnvqkgPCByaW5zaG91a291Z2lcIDsKK+iqrOe1jOevgCA8IHNla2t5b3VidXNoaVwgOwor57SU5pel5pys6aKoIDwganVuJyduaWhvbmZ1dVwgOwor5paH5a2X56ym5Y+357O7IDwgbW9qaWZ1Z291a2VpXCA7CivmjJnlm73kuIDoh7QgPCBreW9rb2t1aXRjaGlcIDsKK+Wkp+ihhumBi+WLlSA8IHRhaXNodXV1bmRvdVwgOwor5b+D6Lqr55eHIDwgc2hpbnNoaW5zaG91XCA7CivluILloLToqr/mn7sgPCBzaGlqb3VjaG91c2FcIDsKK+WFrOmWi+WkluS6pCA8IGtvdWthaWdhaWtvdVwgOwor6Z2i5Lya5a6kIDwgbWVua2Fpc2hpdHN1XCA7Civni6zlibXlipsgPCBkb2t1c291cnlva3VcIDsKK+WmueWomCA8IGltb3V0b211c3VtZVwgOwor5aSn6JS15aSn6IejIDwgb29rdXJhZGFpamluXCA7Civkv67mraPkuojnrpcgPCBzaHV1c2VpeW9zYW5cIDsKK+Wni+alreW8jyA8IHNoaWd5b3VzaGlraVwgOwor6KGM5pS/5qmf6ZaiIDwgZ3lvdXNlaWtpa2FuXCA7CivljLvnmYLovLjpgIHmqZ8gPCBpcnlvdXl1c291a2lcIDsKK+adpeWuouetiyA8IHJhaWt5YWt1c3VqaVwgOwor6YCy5a2m5aG+IDwgc2hpbmdha3VqdWt1XCA7Civnm67nmoTmoLwgPCBtb2t1dGVraWtha3VcIDsKK+aUv+aVmeWIhumboiA8IHNlaWt5b3VidW5yaVwgOwor5pCt5LmX5qGI5YaFIDwgdG91am91YW4nJ25haVwgOwor5LqU5Lq65ZuD5a2QIDwgZ29uaW5iYXlhc2hpXCA7Civni6zlloTkuLvnvqkgPCBkb2t1emVuc2h1Z2lcIDsKK+iIquepuuabuOewoSA8IGtvdWt1dXNob2thblwgOwor6LOb5ZCm5ZCM56WoIDwgc2FucGlkb3VoeW91XCA7CivkurrmloflrabmtL4gPCBqaW5idW5nYWt1aGFcIDsKK+aPtOeUqOeUn+eUoyA8IGVuJyd5b3VzZWlzYW5cIDsKK+S4jeiAleS9nOWcsCA8IGZ1a291c2FrdWNoaVwgOwor5aSn5L2/5YWs6YK4IDwgdGFpc2hpa291dGVpXCA7CivmsbrorbDkuovpoIUgPCBrZXRzdWdpamlrb3VcIDsKK+agoeato+S/giA8IGtvdXNlaWdha2FyaVwgOwor5Yqb6Ieq5oWiIDwgY2hpa2FyYWppbWFuXCA7CivpgY7phbjljJbmsLTntKAgPCBrYXNhbmthc3Vpc29cIDsKK+Wxi+aVt+eUuiA8IHlhc2hpa2ltYWNoaVwgOwor5rip5rOJ55mC5rOVIDwgb25zZW5yeW91aG91XCA7CivkuIDpobDkuIDnrJEgPCBpcHBpbicnaXNzaG91XCA7Civpm7vmsJfkv6Hlj7cgPCBkZW5raXNoaW5nb3VcIDsKK+mcnOafsSA8IHNoaW1vYmFzaGlyYVwgOwor5pyN6aO+5ZOBIDwgZnVrdXNob2t1aGluXCA7CivohqjlvLXnjocgPCBib3VjaG91cml0c3VcIDsKK+WwgueuoeawtOWfnyA8IHNlbmthbnN1aWlraVwgOwor5aSp5L2T5bSH5oudIDwgdGVudGFpc3V1aGFpXCA7Civoia/lv4PnmoQgPCByeW91c2hpbnRla2lcIDsKK+ebuOS6kuWPgueFpyA8IHNvdWdvc2Fuc2hvdVwgOwor5Ymy54O55paZ55CGIDwga2FwcG91cnlvdXJpXCA7Civnqbrlv7Xku48gPCBzb3JhbmVuYnV0c3VcIDsKK+mDiuWklumbu+i7iiA8IGtvdWdhaWRlbnNoYVwgOwor55qG55qG5qeYIDwgbWluYW1pbmFzYW1hXCA7Civkv67mraPkuLvnvqkgPCBzaHV1c2Vpc2h1Z2lcIDsKK+iDveeOh+e1piA8IG5vdXJpdHN1a3l1dVwgOwor6KOc5by36Ki85ougIDwgaG9reW91c2hvdWtvXCA7CivmmJ/ljbAgPCBob3NoaWppcnVzaGlcIDsKK+WghuepjeeJqSA8IHRhaXNla2lidXRzdVwgOwor5Lq65p2Q6YqA6KGMIDwgamluemFpZ2lua291XCA7Civov5Hku6Ppn7Pmpb0gPCBraW5kYWlvbmdha3VcIDsKK+ijj+mdouW3peS9nCA8IHJpbWVua291c2FrdVwgOwor5rOV5rK756S+5LyaIDwgaG91Y2hpc2hha2FpXCA7Civlh7rntI3kv4IgPCBzdWl0b3VnYWthcmlcIDsKK+Wkp+ebpOaMr+iIniA8IG9vYmFuYnVydW1haVwgOwor5LiJ5bKQ5Luj6KGoIDwgc2FuZ2lkYWloeW91XCA7Civok4TnqY3nrqEgPCBjaGlrdXNla2lrYW5cIDsKK+eLrOi6q+iAhSA8IGRva3VzaGlubW9ub1wgOwor5pWZ5ZOh57WE5ZCIIDwga3lvdWlua3VtaWFpXCA7Civmtbfpm6PmlZHliqkgPCBrYWluYW5reXV1am9cIDsKK+mMsumfs+aUvumAgSA8IHJva3VvbmhvdXNvdVwgOwor5LiJ6ICF5Yeh6YCAIDwgc2Fuc2hhYm9udGFpXCA7Civnn7Pnq7noibIgPCBzZWtpY2hpa3Vpcm9cIDsKK+ebtOiFuOeZjCA8IGNob2t1Y2hvdWdhblwgOwor56qB55m655qEIDwgdG9wcGF0c3V0ZWtpXCA7Civml6XmnKzmtbfmtYEgPCBuaWhvbmthaXJ5dXVcIDsKK+WPsuS4iuacgOWkpyA8IHNoaWpvdXNhaWRhaVwgOwor6Iq46KGT55qEIDwgZ2VpanV0c3V0ZWtpXCA7CivpnZ7mmbbos6ogPCBoaXNob3VzaGl0c3VcIDsKK+iomOaGtumanOWusyA8IGtpb2t1c2hvdWdhaVwgOwor5LiN5Yq05omA5b6XIDwgZnVyb3VzaG90b2t1XCA7CivogIHojZjmgJ3mg7MgPCByb3Vzb3VzaGlzb3VcIDsKK+eOieicgOm7jSA8IHRvdW1vcm9rb3NoaVwgOwor6LuN6ZyA5bel5qWtIDwgZ3VuanVrb3VneW91XCA7CivlsI/lv4PogIUgPCBzaG91c2hpbm1vbm9cIDsKK+mbouWQiOmbhuaVoyA8IHJpZ291c2h1dXNhblwgOwor6Imv5aa76LOi5q+NIDwgcnlvdXNhaWtlbmJvXCA7Civou43lj7jku6TlrpggPCBndW5zaGlyZWlrYW5cIDsKK+m7kuawtOW8lSA8IGt1cm9taXp1aGlraVwgOwor6LK/5piT5Lya56S+IDwgYm91ZWtpZ2Fpc2hhXCA7Civnh5DphbjogqXmlpkgPCByaW5zYW5oaXJ5b3VcIDsKK+aEn+eGseWJpCA8IGthbicnbmV0c3V6YWlcIDsKK+eEoemZkOiyrOS7uyA8IG11Z2Vuc2VraW5pblwgOwor5aiv5qW95a6kIDwgZ29yYWt1c2hpdHN1XCA7Civpjq7nl5volqwgPCBjaGludHN1dXlha3VcIDsKK+enkeWtpuaAneaDsyA8IGthZ2FrdXNoaXNvdVwgOwor5Zub5rW35ZCM6IOeIDwgc2hpa2FpZG91aG91XCA7Civku6PnkIblp5Tku7vnirYgPCBkYWlyaWluaW5qb3VcIDsKK+WBpeW6t+WVj+mhjCA8IGtlbmtvdW1vbmRhaVwgOwor5oSf5YK35Li7576pIDwga2Fuc2hvdXNodWdpXCA7CivppqzpoK3oprPpn7MgPCBiYXRvdWthbicnbm9uXCA7CivlpKnpoILot53pm6IgPCB0ZW5jaG91a3lvcmlcIDsKK+iDveeOh+eahCA8IG5vdXJpdHN1dGVraVwgOwor6Kq/5p+76YOo6ZW3IDwgY2hvdXNhYnVjaG91XCA7CivlkIjllLHmm7IgPCBnYXNzaG91a3lva3VcIDsKK+S4uemggum2tCA8IHRhbmNob3VkenVydVwgOwor6KGM5YuV5ZG95LukIDwga291ZG91bWVpcmVpXCA7Civngrrmm7/miYvlvaIgPCBrYXdhc2V0ZWdhdGFcIDsKK+i1pOmBk+awl+WboyA8IHNla2lkb3VraWRhblwgOwor56m65Lit6JC95LiLIDwga3V1Y2h1dXJha2thXCA7CivpnanmlrDnmoQgPCBrYWt1c2hpbnRla2lcIDsKK+WumuagvOiNt+mHjSA8IHRlaWtha3VrYWp1dVwgOwor54K65pu/6YqA6KGMIDwga2F3YXNlZ2lua291XCA7Civlrpjog73kuLvnvqkgPCBrYW4nJ25vdXNodWdpXCA7Civlrrbluq3mlZnluKsgPCBrYXRlaWt5b3VzaGlcIDsKK+aYvOWknOWFvOihjCA8IGNodXV5YWtlbmtvdVwgOwor5a6i5ZWG5aOyIDwga3lha3VzaG91YmFpXCA7CivkuIDmi6zlvI8gPCBpa2thdHN1c2hpa2lcIDsKK+eVnOeUo+alrSA8IGNoaWt1c2FuZ3lvdVwgOwor5Lya56S+5Za25qWtIDwga2Fpc2hhZWlneW91XCA7CivooovpvKAgPCBmdWt1cm9uZXp1bWlcIDsKK+WVk+iSmeaAneaDsyA8IGtlaW1vdXNoaXNvdVwgOwor6Z2e5b6q55Kw55qEIDwgaGlqdW5rYW50ZWtpXCA7CivmlofmsJHntbHliLYgPCBidW5taW50b3VzZWlcIDsKK+mBjumFuOWMlueJqSA8IGthc2Fua2FidXRzdVwgOwor5LiA5b+155m66LW3IDwgaWNoaW5lbmhva2tpXCA7Civlh7rooYDmrbsgPCBzaHVra2V0c3VzaGlcIDsKK+iCsuaIkOagveWfuSA8IGlrdXNlaXNhaWJhaVwgOwor54++5aC05qSc6Ki8IDwgZ2VuYmFrZW5zaG91XCA7CivmmYLku6PogIPoqLwgPCBqaWRhaWtvdXNob3VcIDsKK+aEn+W6puiJr+WlvSA8IGthbmRvcnlvdWtvdVwgOwor55m96auq6aCtIDwgc2hpcmFnYWF0YW1hXCA7CivpgI/mmI7kurrplpMgPCB0b3VtZWluaW5nZW5cIDsKK+aWsOW9ouW8jyA8IHNoaW5rZWlzaGlraVwgOwor5bi45aWX5omL5q61IDwgam91dG91c2h1ZGFuXCA7CivlhbHmnInniakgPCBreW91eXV1YnV0c3VcIDsKK+WSjOW5s+W3peS9nCA8IHdhaGVpa291c2FrdVwgOwor55Sz5ZGK566xIDwgc2hpbmtva3ViYWtvXCA7CivmmpfkuK3po5vouo0gPCBhbmNodXVoaXlha3VcIDsKK+S6nOWvkuW4r+awl+WAmSA8IGFrYW50YWlraWtvdVwgOwor5pu455WZ5paZIDwga2FraXRvbWVyeW91XCA7Civpq5jpn7Ppg6joqJjlj7cgPCBrb3VvbmJ1a2lnb3VcIDsKK+S6uuawkeijgeWIpCA8IGppbm1pbnNhaWJhblwgOwor5pa96KGM6KaP5YmHIDwgc2hpa291a2lzb2t1XCA7CivljYrouqvkuI3pmo8gPCBoYW5zaGluZnV6dWlcIDsKK+W4jOmHiOeGsSA8IGtpc2hha3VuZXRzdVwgOwor5pmu6YCa5ZCN6KmeIDwgZnV0c3V1bWVpc2hpXCA7CivlsbHlj6PnnIwgPCB5YW1hZ3VjaGlrZW5cIDsKK+Wft+ethuiAhSA8IHNoaXBwaXRzdXNoYVwgOwor5a++6LGh56+E5ZuyIDwgdGFpc2hvdWhhbicnaVwgOwor5Lq65rCR5oim57eaIDwgamlubWluc2Vuc2VuXCA7CivnsKHmmI7lvLflm7ogPCBrYW5tZWlreW91a29cIDsKK+WPr+iDvemBuOaKniA8IGthbm91c2VudGFrdVwgOwor5bGL5YaF56u25oqAIDwgb2t1bmFpa3lvdWdpXCA7CivlpJrmg4Xku4/lv4MgPCB0YWpvdWJ1c3NoaW5cIDsKK+WNmOe0lOioiOeulyA8IHRhbmp1bmtlaXNhblwgOwor5YWs6KGG6Zu76KmxIDwga291c2h1dWRlbndhXCA7CivllYblj5blvJUgPCBzaG91dG9yaWhpa2lcIDsKK+iKseiHquWLlei7iiA8IGhhbmFqaWRvdXNoYVwgOwor5L2N55u45bm+5L2V5a2mIDwgaXNvdWtpa2FnYWt1XCA7CivmpI3nianmsrkgPCBzaG9rdWJ1dHN1eXVcIDsKK+aUvuiVqeaBr+WtkCA8IGhvdXRvdW11c3Vrb1wgOwor5Ye66KGA5paRIDwgc2h1a2tldHN1aGFuXCA7CivkvIHnlLvlrqQgPCBraWtha3VzaGl0c3VcIDsKK+S+teWFpei7jSA8IHNoaW4nJ255dXVndW5cIDsKK+WGmeecn+apn+W6lyA8IHNoYXNoaW5raXRlblwgOwor5ryB542y54mpIDwgZ3lva2FrdWJ1dHN1XCA7CivkuInnrYnou43mm7kgPCBzYW50b3VndW5zb3VcIDsKK+e3iuaApemAruaNlSA8IGtpbmt5dXV0YWlob1wgOwor5Yqb5a2m55qEIDwgcmlraWdha3V0ZWtpXCA7Civosp7mk43ouYLouqogPCB0ZWlzb3VqdXVyaW5cIDsKK+W/g+iCuuapn+iDvSA8IHNoaW5wYWlraW5vdVwgOwor57SE5p2f5LqLIDwgeWFrdXNva3Vnb3RvXCA7Civpm4zpm4TlkIzmoKogPCBzaGl5dXVkb3VzaHVcIDsKK+mghumiqOa6gOW4hiA8IGp1bnB1dW1hbnBhblwgOwor5a2m5qCh5rOV5Lq6IDwgZ2Fra291aG91amluXCA7CivlpInkvY3pm7vmtYEgPCBoZW4nJ2lkZW5yeXV1XCA7CivliY3lk6jli6Tli5kgPCB6ZW5zaG91a2lubXVcIDsKK+e1jOW4t+WtkCA8IGt5b3VrYXRhYmlyYVwgOwor5rW35rSL56eR5a2mIDwga2FpeW91a2FnYWt1XCA7CivovrLmsJHpgYvli5UgPCBub3VtaW4nJ3VuZG91XCA7Civngavmtojlo7cgPCBoaWtlc2hpdHN1Ym9cIDsKK+iyrOS7u+evhOWbsiA8IHNla2luaW5oYW4nJ2lcIDsKK+eZuuWFieWhl+aWmSA8IGhha2tvdXRvcnlvdVwgOwor5oSf5b+c5L2c55SoIDwga2FuJydub3VzYXlvdVwgOwor5Yip5LyR6bygIDwgcmlreXV1bmV6dW1pXCA7CivlrZDmjIHmmIbluIMgPCBrb21vY2hpa29uYnVcIDsKK+W4guWWtuS9j+WuhSA8IHNoaWVpanV1dGFrdVwgOwor6aCG5b+c5YqbIDwganVuJydub3VyeW9rdVwgOwor5LqL5qWt6YOo6ZW3IDwgamlneW91YnVjaG91XCA7CivlpKfog4bkuI3mlbUgPCBkYWl0YW5mdXRla2lcIDsKK+S8iuWLouWkp+elnuWuriA8IGlzZWRhaWppbmd1dVwgOwor5aSp5Zyw5Ym16YCgIDwgdGVuY2hpc291em91XCA7CivluILloLTntYzmuIggPCBzaGlqb3VrZWl6YWlcIDsKK+e2muafhCA8IHRzdWR6dWtpZ2FyYVwgOwor5LqI5a6a5pyf5pelIDwgeW90ZWlraWppdHN1XCA7CivljLvnmYLmioDooZMgPCBpcnlvdWdpanV0c3VcIDsKK+S4i+WNiui6qyA8IHNoaW1vaGFuc2hpblwgOwor6KGo5rG65qipIDwgaHlvdWtldHN1a2VuXCA7Civmip7kuIDnmoQgPCB0YWt1aXRzdXRla2lcIDsKK+S9v+W9ueWLleipniA8IHNoaWVraWRvdXNoaVwgOwor5rWB5YuV54mpIDwgcnl1dWRvdWJ1dHN1XCA7CivpmbPov7Dmm7ggPCBjaGluanV0c3VzaG9cIDsKK+W+tOWFteaknOafuyA8IGNob3VoZWlrZW5zYVwgOwor6Ieq5a6255m66Zu7IDwgamlrYWhhdHN1ZGVuXCA7Civov73mgrzlvI8gPCB0c3VpdG91c2hpa2lcIDsKK+WQjOiqnuWPjeW+qSA8IGRvdWdvaGFucHVrdVwgOwor5byB6KuW5aSn5LyaIDwgYmVucm9udGFpa2FpXCA7CivkuIDoiKzmipXnpaggPCBpcHBhbnRvdWh5b3VcIDsKK+S4gOS6uuaBr+WtkCA8IGhpdG9yaW11c3Vrb1wgOwor6aOy6aOf54mpIDwgaW5zaG9rdWJ1dHN1XCA7CivpgIDlvbnou43kurogPCB0YWlla2lndW5qaW5cIDsKK+S6uueUn+acgOaCqiA8IGppbnNlaXNhaWFrdVwgOwor5Y2w5Yqg6Zu75ZynIDwgaW5rYWRlbicnYXRzdVwgOwor5ray5oCn6ZmQ55WMIDwgZWtpc2VpZ2Vua2FpXCA7CivkuozphbjljJbngq3ntKAgPCBuaXNhbmthdGFuc29cIDsKK+aghOmkiuWtpuiAhSA8IGVpeW91Z2FrdXNoYVwgOwor5pi86aOf5LyaIDwgY2h1dXNob2t1a2FpXCA7Civpg73luILkuqTpgJogPCB0b3NoaWtvdXRzdXVcIDsKK+eVnOeUo+WtpiA8IGNoaWt1c2FuZ2FrdVwgOwor5Lqk5o+b5pWZ5o6IIDwga291a2Fua3lvdWp1XCA7CivlrabnlJ/mmYLku6MgPCBnYWt1c2VpamlkYWlcIDsKK+itmOWtl+eOhyA8IHNoaWtpamlyaXRzdVwgOwor5oSb56S+57K+56WeIDwgYWlzaGFzZWlzaGluXCA7CivogIHljJbnj77osaEgPCByb3VrYWdlbnNob3VcIDsKK+m8u+mrmOmrmCA8IGhhbmF0YWthZGFrYVwgOwor56S+5Lya5ZWP6aGMIDwgc2hha2FpbW9uZGFpXCA7Civnm7LnrqHpioPlibUgPCBtb3VrYW5qdXVzb3VcIDsKK+eJueWIpeazlSA8IHRva3ViZXRzdWhvdVwgOwor5p2x5rW35Zyw5pa5IDwgdG91a2FpY2hpaG91XCA7Civlh7rmvIHmqKkgPCBzaHV0c3VneW9rZW5cIDsKK+eZuuihjOS8muekviA8IGhha2tvdWdhaXNoYVwgOwor6L+R5omA5ZCI5aOBIDwga2luam9nYXBwZWtpXCA7Civpn7Plo7DlnKfnuK4gPCBvbnNlaWFzc2h1a3VcIDsKK+awkeaXj+S4u+e+qSA8IG1pbnpva3VzaHVnaVwgOwor5bCC6ZaA56eR55uuIDwgc2VubW9ua2Ftb2t1XCA7CivmuJvph4/ntYzllrYgPCBnZW5yeW91a2VpZWlcIDsKK+edoeecoOS4jei2syA8IHN1aW1pbmJ1c29rdVwgOwor6YGL6YCB5aWR57SEIDwgdW5zb3VrZWl5YWt1XCA7CivoiJ7lj7DkuK3ntpkgPCBidXRhaWNodXVrZWlcIDsKK+S4i+WxpOmajue0miA8IGthc291a2Fpa3l1dVwgOwor6bO26IG35Lq6IDwgdG9iaXNob2t1bmluXCA7CivntYzmuIjpl5jkuokgPCBrZWl6YWl0b3Vzb3VcIDsKK+S4jeiJr+WwkeWlsyA8IGZ1cnlvdXNob3Vqb1wgOwor5b+c5o+05ryU6KqsIDwgb3VlbicnZW56ZXRzdVwgOwor6Y6u6a2C5puyIDwgY2hpbmtvbmt5b2t1XCA7CivooYzli5XljYrlvoQgPCBrb3Vkb3VoYW5rZWlcIDsKK+WHuua8lOaWmSA8IHNodXRzdWVucnlvdVwgOwor5Zyw6ZyH5Zyw5bivIDwgamlzaGluY2hpdGFpXCA7CivpgJrpgY7osr/mmJMgPCB0c3V1a2Fib3Vla2lcIDsKK+e1seioiOW5tOmRkSA8IHRvdWtlaW5lbmthblwgOwor5Lq65omL5LiN6LazIDwgaGl0b2RlYnVzb2t1XCA7CivpgJrkv5fnmoQgPCB0c3V1em9rdXRla2lcIDsKK+WNgeS4reWFq+S5nSA8IGppdGNodXVoYWtrdVwgOwor5ruL5by36aOy5paZIDwgamlreW91aW5yeW91XCA7Civlm5vop5Llj7fnorwgPCBzaGlrYWt1Z291bWFcIDsKK+WbuuWumuims+W/tSA8IGtvdGVpa2FuJyduZW5cIDsKK+S9jumfs+mDqOiomOWPtyA8IHRlaW9uYnVraWdvdVwgOwor57WM6aiT56eR5a2mIDwga2Vpa2Vua2FnYWd1XCA7Civojbfpm7vnspLlrZAgPCBrYWRlbnJ5dXVzaGlcIDsKK+S6uuW3peeUn+WRvSA8IGppbmtvdXNlaW1laVwgOwor6Zu75rCX5paZ6YeRIDwgZGVua2lyeW91a2luXCA7CivlvoDlvqnokYnmm7ggPCBvdWZ1a3VoYWdha2lcIDsKK+S6uumAoOefs+ayuSA8IGppbnpvdXNla2l5dVwgOwor5Zyf6JuNIDwgdHN1Y2hpYm90YXJ1XCA7CivlpKnnq7rniaHkuLkgPCB0ZW5qaWt1Ym90YW5cIDsKK+W+oemms+i1sOanmCA8IGdvY2hpc291c2FtYVwgOwor5L615YWl6ICFIDwgc2hpbicnbnl1dXNoYVwgOwor5aSp6Lev5q2056iLIDwgdGVucm9yZWtpdGVpXCA7CivlhbHlkIzkvr/miYAgPCBreW91ZG91YmVuam9cIDsKK+aal+auuuacqumBgiA8IGFuc2F0c3VtaXN1aVwgOwor5pyq5omV6LK755SoIDwgbWloYXJhaWhpeW91XCA7Civnqbrlh7rlvLUgPCBrYXJhc2h1dGNob3VcIDsKK+ebuOS6kumFjeWxniA8IHNvdWdvaGFpem9rdVwgOwor56C06aGU5LiA56yRIDwgaGFnYW4nJ2lzc2hvdVwgOwor6KGA5Zyn6KiIIDwga2V0c3VhdHN1a2VpXCA7Civog4bmsYHos6ogPCB0YW5qdXVzaGl0c3VcIDsKK+ayu+eZguWKueaenCA8IGNoaXJ5b3Vrb3VrYVwgOwor54yf5a6Y5Yi25bqmIDwgcnlvdWthbnNlaWRvXCA7Civlj47lrrnmgqPogIUgPCBzaHV1eW91a2FuamFcIDsKK+atpumZteahg+a6kCA8IGJ1cnlvdXRvdWdlblwgOwor5Lq65rCR5omA5pyJIDwgamlubWluc2hveXV1XCA7Civlj43lsITkv4LmlbAgPCBoYW5zaGFrZWlzdXVcIDsKK+W3pealreaEj+WMoCA8IGtvdWd5b3Vpc2hvdVwgOwor55u45a++6KmV5L6hIDwgc291dGFpaHlvdWthXCA7CivntYzmuIjllY/poYwgPCBrZWl6YWltb25kYWlcIDsKK+m7hOeip+eOiSA8IGtvdWhla2lneW9rdVwgOwor6ZqU5pyI5YiKIDwga2FrdWdldHN1a2FuXCA7CivkuInljYHlha3oqIggPCBzYW5qdXVyb2trZWlcIDsKK+aui+alreaJi+W9kyA8IHphbmd5b3V0ZWF0ZVwgOwor5oqV55CD5YuV5L2cIDwgdG91a3l1dWRvdXNhXCA7CivpmLLngb3oqJPnt7QgPCBib3VzYWlrdW5yZW5cIDsKK+iAkOeUqOW5tOaVsCA8IHRhaXlvdW5lbnN1dVwgOwor5rCR5a6a5oay5rOVIDwgbWludGVpa2VucG91XCA7Civnpo/liKnljprnlJ8gPCBmdWt1cmlrb3VzZWlcIDsKK+a2iOiAl+WTgeiyuyA8IHNob3Vtb3VoaW5oaVwgOwor5a2m57Sa6ZaJ6Y6WIDwgZ2Fra3l1dWhlaXNhXCA7CivkurrnlJ/oqJjpjLIgPCBqaW5zZWlraXJva3VcIDsKK+Wun+WIqeS4u+e+qSA8IGppdHN1cmlzaHVnaVwgOwor5b6p5Y6f5YqbIDwgZnVrdWdlbnJ5b2t1XCA7Civnq6Plt6XlvI8gPCBzaHVua291c2hpa2lcIDsKK+WFrOS9v+mkqOWToSA8IGtvdXNoaWthbicnaW5cIDsKK+ertuS6ieeOhyA8IGt5b3Vzb3VyaXRzdVwgOwor56mN56uL6YeRIDwgdHN1bWl0YXRla2luXCA7CivmpI3nianlnJIgPCBzaG9rdWJ1dHN1ZW5cIDsKK+mAsuWMluirluiAhSA8IHNoaW5rYXJvbnNoYVwgOwor56m65Lit5qmf5YuVIDwga3V1Y2h1dWtpZG91XCA7CivmipXnpajntZDmnpwgPCB0b3VoeW91a2Vra2FcIDsKK+WJjeaPkOadoeS7tiA8IHplbnRlaWpvdWtlblwgOwor5aSW5Lq66YG45omLIDwgZ2Fpamluc2Vuc2h1XCA7Civlt6jlpKfliIblrZAgPCBreW9kYWlidW5zaGlcIDsKK+i0i+mAoOe0meW5oyA8IGdhbnpvdXNoaWhlaVwgOwor54us6Lqr5a+uIDwgZG9rdXNoaW5yeW91XCA7CivmpJzlrproqabpqJMgPCBrZW50ZWlzaGlrZW5cIDsKK+iXjee2rOikkueroCA8IHJhbmp1aG91c2hvdVwgOwor5Y+45rOV6Kmm6aiTIDwgc2hpaG91c2hpa2VuXCA7Civmn5Tou5/kvZPmk40gPCBqdXVuYW50YWlzb3VcIDsKK+S4jeiJr+WwjuS9kyA8IGZ1cnlvdWRvdXRhaVwgOwor5a++5oim6LuK56CyIDwgdGFpc2Vuc2hhaG91XCA7CivlhaXmnK3ogIUgPCBueXV1c2F0c3VzaGFcIDsKK+atu+S9k+ino+WJliA8IHNoaXRhaWthaWJvdVwgOwor5YW85qWt6L6y5a62IDwga2VuZ3lvdW5vdWthXCA7CivmlrDlhaXnlJ8gPCBzaGluJydueXV1c2VpXCA7CivlhazplovpjLLpn7MgPCBrb3VrYWlyb2t1b25cIDsKK+a1t+i7jeWkp+iHoyA8IGthaWd1bmRhaWppblwgOwor5Y2X5Lqs6Iqx54GrIDwgbmFua2luaGFuYWJpXCA7CivnpZ7orKHpm4YgPCBzaGluJyd5b3VzaHV1XCA7CivmiYHmoYPohbrngo4gPCBoZW50b3VzZW4nJ2VuXCA7CivkuK3lpK7pioDooYwgPCBjaHV1b3VnaW5rb3VcIDsKK+S4oealteerryA8IHJ5b3VreW9rdXRhblwgOwor5Zyn57iu56m65rCXIDwgYXNzaHVrdWt1dWtpXCA7CivluLPpnaLpnaIgPCBjaG91bWVuZHp1cmFcIDsKK+imi+epjeabuCA8IG1pdHN1bW9yaXNob1wgOwor56CU5YmK5LujIDwga2Vuc2FrdXNoaXJvXCA7CivmsbrmuIjmiYvmrrUgPCBrZXNzYWlzaHVkYW5cIDsKK+S7o+eQhualreiAhSA8IGRhaXJpZ3lvdXNoYVwgOwor6YWN572u6Lui5o+bIDwgaGFpY2hpdGVua2FuXCA7CivnpoHmsrvnlKPogIUgPCBraW5jaGlzYW5zaGFcIDsKK+a0u+WLleeahCA8IGthdHN1ZG91dGVraVwgOwor5YWo6Lqr5LiN6ZqPIDwgemVuc2hpbmZ1enVpXCA7CivmhJvku5bkuLvnvqnogIUgPCBhaXRhc2h1Z2lzaGFcIDsKK+WFqOiDveWKmyA8IHplbicnbm91cnlva3VcIDsKK+mBi+i7ouaKgOihkyA8IHVudGVuZ2lqdXRzdVwgOwor6Zu75a2Q6Z+z5qW9IDwgZGVuc2hpb25nYWt1XCA7CivljYPkuIfnhKHph48gPCBzZW5tYW5tdXJ5b3VcIDsKK+iHquauuuW5h+WKqSA8IGppc2F0c3Vob3Vqb1wgOwor5Luj5pWw6Zai5pWwIDwgZGFpc3V1a2Fuc3V1XCA7Civpn7Ppn7/oqK3oqIggPCBvbmt5b3VzZWtrZWlcIDsKK+S5s+anmOeqgei1tyA8IG55dXV5b3V0b2traVwgOwor5LqL5YmN5Ymy5b2TIDwgaml6ZW53YXJpYXRlXCA7CivlhbXlvbnlhY3nirYgPCBoZWlla2ltZW5qb3VcIDsKK+Wkqea2r+WtpOeLrCA8IHRlbmdhaWtvZG9rdVwgOwor5LiN5om/5LiN5om/IDwgZnVzaG91YnVzaG91XCA7CivnhKHmiYDlsZ7nj74gPCBtdXNob3pva3VnZW5cIDsKK+acqOmAoOWutuWxiyA8IG1va3V6b3VrYW9rdVwgOwor6aSK6ICB5bm06YeRIDwgeW91cm91bmVua2luXCA7CivkuovliY3noJTkv64gPCBqaXplbmtlbnNodXVcIDsKK+mjn+iCiemhniA8IHNob2t1bmlrdXJ1aVwgOwor5L2T57O75paH5rOVIDwgdGFpa2VpYnVucG91XCA7CivogrrmtLvph48gPCBoYWlrYXRzdXJ5b3VcIDsKK+mbjOmbhOWQjOS9kyA8IHNoaXl1dWRvdXRhaVwgOwor6ZaL56Wo546HIDwga2FpaHlvdXJpdHN1XCA7CivluLjorZjnmoQgPCBqb3VzaGlraXRla2lcIDsKK+ani+mAoOaxmuiBtyA8IGtvdXpvdW9zaG9rdVwgOwor5Z+656SO55+l6K2YIDwga2lzb2NoaXNoaWtpXCA7Civlj47lrrnlipsgPCBzaHV1eW91cnlva3VcIDsKK+WcsOWfn+e0m+S6iSA8IGNoaWlraWZ1bnNvdVwgOwor5Y2Y5bOw6aex6aedIDwgdGFucG91cmFrdWRhXCA7CivosaHlvrTnmoQgPCBzaG91Y2hvdXRla2lcIDsKK+S6uuawl+WVhuWjsiA8IG5pbmtpc2hvdWJhaVwgOwor5Y2D5ae/5LiH5oWLIDwgc2Vuc2hpYmFudGFpXCA7CivlhazmnInosqHnlKMgPCBrb3V5dXV6YWlzYW5cIDsKK+iHquaFouipsSA8IGppbWFuYmFuYXNoaVwgOwor5oub5b6F5a6iIDwgc2hvdXRhaWt5YWt1XCA7CivlhYjooYzmipXos4cgPCBzZW5rb3V0b3VzaGlcIDsKK+ijvemAoOW3peeoiyA8IHNlaXpvdWtvdXRlaVwgOwor6Ieq55Sx56u25LqJIDwgaml5dXVreW91c291XCA7Civlt53prZrmlpnnkIYgPCBrYXdhdW9yeW91cmlcIDsKK+S6pOmfv+absiA8IGtvdWt5b3VreW9rdVwgOwor6Zu76Kej6LOqIDwgZGVua2Fpc2hpdHN1XCA7Civnj77ku6Pnp5HlraYgPCBnZW5kYWlrYWdha3VcIDsKK+W5s+W6leiIuSA8IGhpcmFzb2tvYnVuZVwgOwor55Sj5qWt5qmf5qKwIDwgc2FuZ3lvdWtpa2FpXCA7CivkuI3lkIjmoLzogIUgPCBmdWdvdWtha3VzaGFcIDsKK+aakeS4reimi+iIniA8IHNob2NodXVtaW1haVwgOwor6KqY5bCO5bCL5ZWPIDwgeXV1ZG91amlubW9uXCA7CivlsLHku7vlvI8gPCBzaHV1bmluc2hpa2lcIDsKK+WGt+WHjeWupCA8IHJlaXRvdXNoaXRzdVwgOwor55Gg55KD5ZSQ6I2JIDwgcnVyaWthcmFrdXNhXCA7CivlrprlvaLli5XoqZ4gPCB0ZWlrZWlkb3VzaGlcIDsKK+mFjeiGs+WupCA8IGhhaXplbnNoaXRzdVwgOwor5Lq66ZaT6Zai5L+CIDwgbmluZ2Vua2Fua2VpXCA7CivotaTljYHlrZfnpL4gPCBzZWtpanV1amlzaGFcIDsKK+W6g+WztuecjCA8IGhpcm9zaGltYWtlblwgOwor5pqm5pS55q2jIDwga295b21pa2Fpc2VpXCA7CivnhKHnlKPpmo7ntJogPCBtdXNhbmthaWt5dXVcIDsKK+W+s+W3neaWuSA8IHRva3VnYXdhZ2F0YVwgOwor5YWt5rOV5YWo5pu4IDwgcm9wcG91emVuc2hvXCA7Civpm4bmqKnmjpLpmaQgPCBzaHV1a2VuaGFpam9cIDsKK+Wbvemam+S8muitsCA8IGtva3VzYWlrYWlnaVwgOwor5YWQ56ul5paH5a2mIDwgamlkb3VidW5nYWt1XCA7Civou43kuovnp5jlr4YgPCBndW5qaWhpbWl0c3VcIDsKK+S7ruWFpeWtpiA8IGthcmlueXV1Z2FrdVwgOwor5Lu75oSP5Ye66aCtIDwgbmluJydpc2h1dHRvdVwgOwor5LuY6ZqP54++6LGhIDwgZnV6dWlnZW5zaG91XCA7Civljp/lvaLos6ogPCBnZW5rZWlzaGl0c3VcIDsKK+WUh+atr+i8lOi7iiA8IHNoaW5zaGlob3NoYVwgOwor5Y6f5Zug6Kq/5p+7IDwgZ2VuJydpbmNob3VzYVwgOwor5ouF5b2T6YOo6ZW3IDwgdGFudG91YnVjaG91XCA7CivkuLvku7vmlZnmjoggPCBzaHVuaW5reW91anVcIDsKK+i7jeWCmeWJiua4myA8IGd1bmJpc2FrdWdlblwgOwor5YWs6ZaL6KOB5YikIDwga291a2Fpc2FpYmFuXCA7CivliIbop6Pkv67nkIYgPCBidW5rYWlzaHV1cmlcIDsKK+eZvuiKseaWieaUviA8IGh5YWtrYXNlaWhvdVwgOwor6buS6Imy6IWrIDwga29rdXNob2t1c2h1XCA7CivkurrpgKDnnJ/nj6AgPCBqaW56b3VzaGluanVcIDsKK+WNkualreeUnyA8IHNvdHN1Z3lvdXNlaVwgOwor56We57WM6YGO5pWPIDwgc2hpbmtlaWthYmluXCA7CivpgIHph5Hngrrmm78gPCBzb3VraW5rYXdhc2VcIDsKK+WbnuW+qeWKmyA8IGthaWZ1a3VyeW9rdVwgOwor5Y6z5q2j56eR5a2mIDwgZ2Vuc2Vpa2FnYWt1XCA7CivlhaXkvJrlvI8gPCBueXV1a2Fpc2hpa2lcIDsKK+WPuOazleabuOWjqyA8IHNoaWhvdXNob3NoaVwgOwor5Zyo5aSW6LOH55SjIDwgemFpZ2Fpc2hpc2FuXCA7Civms5XlvovpgZXlj40gPCBob3VyaXRzdWloYW5cIDsKK+WQkeW/g+WKmyA8IGtvdXNoaW5yeW9rdVwgOwor546J6Jmr6ImyIDwgdGFtYW11c2hpaXJvXCA7CivnibnliKXlj7cgPCB0b2t1YmV0c3Vnb3VcIDsKK+mAsui3r+aMh+WwjiA8IHNoaW5yb3NoaWRvdVwgOwor5LqI5YKZ5Y2U57SEIDwgeW9iaWt5b3V5YWt1XCA7CivohLHmr5vnl4cgPCBkYXRzdW1vdXNob3VcIDsKK+Wni+eQg+W8jyA8IHNoaWt5dXVzaGlraVwgOwor5pWZ6IKy546p5YW3IDwga3lvdWlrdWdhbmd1XCA7Civmlofms5Xopo/liYcgPCBidW5wb3VraXNva3VcIDsKK+S9leiJsuaQqCA8IG5hbnNob2t1enVyaVwgOwor5a6M5LqG5pmC5Yi2IDwga2FucnlvdWppc2VpXCA7Civkv6HoqJfmpa0gPCBzaGludGFrdWd5b3VcIDsKK+S6i+Wun+iqpOiqjSA8IGppaml0c3Vnb25pblwgOwor6LuN6ZyA55Sj5qWtIDwgZ3VuanVzYW5neW91XCA7CivlnJ/nhZkgPCB0c3VjaGlrZW11cmlcIDsKK+WDu+agueaApyA8IGhpZ2FtaWtvbmpvdVwgOwor5aWq5LiJ5oyvIDwgZGF0c3VzYW5zaGluXCA7CivpiYTngavkuLwgPCB0ZWtrYWRvbmJ1cmlcIDsKK+iHqueEtuenkeWtpiA8IHNoaXplbmthZ2FrdVwgOwor5aSn56aP6aSFIDwgZGFpZnVrdW1vY2hpXCA7CivmrabogIXkv67ooYwgPCBtdXNoYXNodWd5b3VcIDsKK+S+teeVpei7jSA8IHNoaW5yeWFrdWd1blwgOwor55Sf5oiQ5paH5rOVIDwgc2Vpc2VpYnVucG91XCA7Civlj43nianos6ogPCBoYW5idXNzaGl0c3VcIDsKK+WPuOazleWkp+iHoyA8IHNoaWhvdWRhaWppblwgOwor5Li75oSP5Li7576p6ICFIDwgc2h1aXNodWdpc2hhXCA7CivliLbnkIPlipsgPCBzZWlreXV1cnlva3VcIDsKK+W+oeeUqOWVhuS6uiA8IGdveW91c2hvdW5pblwgOwor5L2/5b6S5L+h5p2hIDwgc2hpdG9zaGluam91XCA7CivoqLzmi6Dnianku7YgPCBzaG91a29idWtrZW5cIDsKK+mZuOeUo+eJqSA8IHJpa3VzYW5idXRzdVwgOwor5LqI5YKZ55+l6K2YIDwgeW9iaWNoaXNoaWtpXCA7CivlkIjlkI3kvJrnpL4gPCBnb3VtZWlnYWlzaGFcIDsKK+WFseWQjOS4gOiHtCA8IGt5b3Vkb3VpdGNoaVwgOwor5q2m5Yqb5pS/5rK7IDwgYnVyeW9rdXNlaWppXCA7Civou4zpgZPkv67mraMgPCBraWRvdXNodXVzZWlcIDsKK+i+suS9nOeJqSA8IG5vdXNha3VidXRzdVwgOwor5rm+5bK45oim5LqJIDwgd2FuZ2Fuc2Vuc291XCA7CivlkIjmoLznpYjpoZggPCBnb3VrYWt1a2lnYW5cIDsKK+WMluWtpuiCpeaWmSA8IGthZ2FrdWhpcnlvdVwgOwor56uc6IiM6JitIDwgcnl1dXpldHN1cmFuXCA7Civni6zoo4Hlm73lrrYgPCBkb2t1c2Fpa29ra2FcIDsKK+S9juWIqemHkeiejSA8IHRlaXJpa2luJyd5dXVcIDsKK+WWtualreeVkSA8IGVpZ3lvdWJhdGFrZVwgOwor5Zyf6aGe6YeR5bGeIDwgZG9ydWlraW56b2t1XCA7Civogonpo5/njaMgPCBuaWt1c2hva3VqdXVcIDsKK+WFseWSjOaUv+S9kyA8IGt5b3V3YXNlaXRhaVwgOwor5rOV5b6L5a2mIDwgaG91cml0c3VnYWt1XCA7Civms5Xlu7fpl5jkuokgPCBob3V0ZWl0b3Vzb3VcIDsKK+WGjeeUn+ijhee9riA8IHNhaXNlaXNvdWNoaVwgOwor5paw55m65piOIDwgc2hpbmhhdHN1bWVpXCA7CivljJfmlrnpoJjlnJ8gPCBob3Bwb3VyeW91ZG9cIDsKK+mAl+eVmeWuoiA8IHRvdXJ5dXVreWFrdVwgOwor5YWo5buD6KuW6ICFIDwgemVucGFpcm9uc2hhXCA7CivntK/pgLLoqrLnqI4gPCBydWlzaGlua2F6ZWlcIDsKK+WbvemYsuS8muitsCA8IGtva3Vib3VrYWlnaVwgOwor5b6z5bO255yMIDwgdG9rdXNoaW1ha2VuXCA7Civkuoznmb7ljYHml6UgPCBuaWh5YWt1dG9va2FcIDsKK+S6i+WJjemAmuWgsSA8IGppemVudHN1dWhvdVwgOwor56S+5Lya5oSP6K2YIDwgc2hha2FpaXNoaWtpXCA7Civmj7Tliqnlh43ntZAgPCBlbmpvdG91a2V0c3VcIDsKK+a4heawtOWvuiA8IGtpeW9taXp1ZGVyYVwgOwor5a6J5YWo56ys5LiAIDwgYW56ZW5kYWlpY2hpXCA7CivlgIvkurrmlLvmkoMgPCBrb2ppbmtvdWdla2lcIDsKK+aCquaIr+WdiuS4uyA8IGl0YXp1cmFib3V6dVwgOwor6YGK5YuV5YaG5pyoIDwgeXV1ZG91ZW5ib2t1XCA7CivlhoblvaLliofloLQgPCBlbmtlaWdla2lqb3VcIDsKK+eGseWuuemHjyA8IG5ldHN1eW91cnlvdVwgOwor5paH562G5qWtIDwgYnVucGl0c3VneW91XCA7Civoiq3olYnmorbmnKggPCBiYXNob3VrYWppa2lcIDsKK+iEs+WHuuihgCA8IG5vdXNodWtrZXRzdVwgOwor6Zyy5Ye655eHIDwgcm9zaHV0c3VzaG91XCA7Civpq5jotrPon7kgPCB0YWthYXNoaWdhbmlcIDsKK+aDheWgseenkeWtpiA8IGpvdWhvdWthZ2FrdVwgOwor56eB5ai856qfIDwgc2hpc2hvdWt1dHN1XCA7CivlgrflrrPkv53pmbogPCBzaG91Z2FpaG9rZW5cIDsKK+egtOeUo+Wuo+WRiiA8IGhhc2Fuc2Vua29rdVwgOwor55mp55eF5oKj6ICFIDwgcmFpYnlvdWthbmphXCA7Civpu5LoibLnmYwgPCBrb2t1c2hva3VnYW5cIDsKK+WboOWtkOWIhuaekCA8IGluc2hpYnVuc2VraVwgOwor6LKn6KGA55eHIDwgaGlua2V0c3VzaG91XCA7Civoqo3orZjnpaggPCBuaW5zaGlraWh5b3VcIDsKK+W+heWQiOaUv+ayuyA8IG1hY2hpYWlzZWlqaVwgOwor5pyr5rOV5oCd5oOzIDwgbWFwcG91c2hpc291XCA7CivoiKrntprmmYLplpMgPCBrb3V6b2t1amlrYW5cIDsKK+WwguWjsueJueiosSA8IHNlbmJhaXRva2t5b1wgOwor5ZCM56iu5ZCM5paHIDwgZG91c2h1ZG91YnVuXCA7CivpiYTpgZPkuovmlYUgPCB0ZXRzdWRvdWppa29cIDsKK+ecn+eQhumWouaVsCA8IHNoaW5yaWthbnN1dVwgOwor55ar55eF56WeIDwgeWFrdWJ5b3VnYW1pXCA7CivpnLLlh7rni4IgPCByb3NodXRzdWt5b3VcIDsKK+WtkOWtkOWtq+WtqyA8IHNoaXNoaXNvbnNvblwgOwor5YWr5LiI5bO2IDwgaGFjaGlqb3VqaW1hXCA7CivpmY3npZ7ooZMgPCBrb3VzaGluanV0c3VcIDsKK+iLseWbveefs+ayuSA8IGVpa29rdXNla2l5dVwgOwor5L+d6K236Kaz5a+fIDwgaG9nb2thbnNhdHN1XCA7Civnp5jlr4blhbXlmaggPCBoaW1pdHN1aGVpa2lcIDsKK+mDteS+v+iyr+mHkSA8IHl1dWJpbmNob2tpblwgOwor5ZOy5a2m6ICFIDwgdGV0c3VnYWt1c2hhXCA7Civkuozph43kurrmoLwgPCBuaWp1dWppbmtha3VcIDsKK+eZveiho+aYjuWmgyA8IGJ5YWt1ZW15b3VoaVwgOwor55Sf5L2T6Kej5YmWIDwgc2VpdGFpa2FpYm91XCA7CivniKsgPCB0c3VtZWthbm11cmlcIDsKK+WKm+S4gOadryA8IGNoaWthcmFpcHBhaVwgOwor5Ye65ZOB54mpIDwgc2h1cHBpbmJ1dHN1XCA7Civnq4vlpKrlrZDnpLwgPCByaXR0YWlzaGlyZWlcIDsKK+Wun+mam+WVj+mhjCA8IGppc3NhaW1vbmRhaVwgOwor5YWs6Lui6YCf5bqmIDwga291dGVuc29rdWRvXCA7CivkuIDnn7Pkuozps6UgPCBpc3Nla2luaWNob3VcIDsKK+aVmeiCsuiqsueoiyA8IGt5b3Vpa3VrYXRlaVwgOwor5Lq65Luj5ZCN6KmeIDwgamluZGFpbWVpc2hpXCA7CivmrKHphbjljJbngq3ntKAgPCBqaXNhbmthdGFuc29cIDsKK+eBsOeZveiJsiA8IGthaWhha3VzaG9rdVwgOwor54us5bGF5a6kIDwgZG9ra3lvc2hpdHN1XCA7CivlhKrnlJ/ntZDlqZogPCB5dXVzZWlrZWtrb25cIDsKK+WPo+mgreippuWVjyA8IGtvdXRvdXNoaW1vblwgOwor5Lqk6YCa5a6J5YWoIDwga291dHN1dWFuemVuXCA7CivmjqXlvoXkv4IgPCBzZXR0YWlnYWthcmlcIDsKK+S4h+W5tOmbqiA8IG1hbicnbmVuJyd5dWtpXCA7Civni4Lmg7Pmm7IgPCBreW91c291a3lva3VcIDsKK+WSjOaWh+iLseiosyA8IHdhYnVuJydlaXlha3VcIDsKK+acrOWutuacrOWFgyA8IGhvbmtlaG9ubW90b1wgOwor55uy55uu6aOb6KGMIDwgbW91bW9rdWhpa291XCA7Civmu57nqbroqJjpjLIgPCB0YWlrdXVraXJva3VcIDsKK+eri+S9k+ijgeaWrSA8IHJpdHRhaXNhaWRhblwgOwor5Zu95YaF5LqL5oOFIDwga29rdW5haWppam91XCA7CivkvrXnlaXogIUgPCBzaGlucnlha3VzaGFcIDsKK+aOpeinpuS6i+aVhSA8IHNlc3Nob2t1amlrb1wgOwor55S65b255Lq6IDwgbWFjaGl5YWt1bmluXCA7Civkub7nh6XohZDmnL0gPCBrYW5zb3VmdWt5dXVcIDsKK+iasOickueciSA8IGdlamlnZWppbWF5dVwgOwor5ZCI6LOH5Lya56S+IDwgZ291c2hpZ2Fpc2hhXCA7CivlvavliLvlhbfluqcgPCBjaG91a29rdWd1emFcIDsKK+ayu+Wuiee2reaMgeazlSA8IGNoaWFuJydpamlob3VcIDsKK+Wtpue/kuWhviA8IGdha3VzaHV1anVrdVwgOwor5oi45aSW5pKu5b2xIDwga29nYWlzYXRzdWVpXCA7Civlv5zmgKXkv67nkIYgPCBvdWt5dXVzaHV1cmlcIDsKK+m6u+mFlOazqOWwhCA8IG1hc3VpY2h1dXNoYVwgOwor5pyr56uv5L6h5qC8IDwgbWF0dGFua2FrYWt1XCA7Civlgbblg4/ltIfmi50gPCBndXV6b3VzdXVoYWlcIDsKK+aZrumAmuWIl+i7iiA8IGZ1dHN1dXJlc3NoYVwgOwor5paw55m65aOyIDwgc2hpbmhhdHN1YmFpXCA7CivlkozlubPkuqTmuIkgPCB3YWhlaWtvdXNob3VcIDsKK+ertuS6ieWKmyA8IGt5b3Vzb3VyeW9rdVwgOwor5b6q55Kw6KuW5rOVIDwganVua2Fucm9ucG91XCA7CivlpLHlkI3msI8gPCBzaGl0c3VtZWlzaGlcIDsKK+ihqOW6p+aVtyA8IG9tb3RlemFzaGlraVwgOwor6aO96aOf5pqW6KGjIDwgaG91c2hva3VkYW5pXCA7CivmqZ/morDlt6Xmpa0gPCBraWthaWtvdWd5b3VcIDsKK+eEoemZkOmbhuWQiCA8IG11Z2Vuc2h1dWdvdVwgOwor5b6055m65LukIDwgY2hvdWhhdHN1cmVpXCA7CivmnInkvqHoqLzliLggPCB5dXVrYXNob3VrZW5cIDsKK+aHkOmKrSA8IGZ1dG9rb3JvemVuaVwgOwor5LqV5oi456uv5Lya6K2wIDwgaWRvYmF0YWthaWdpXCA7Civlia/lj47lhaUgPCBmdWt1c2h1dW55dXVcIDsKK+aBkOWWnee9qiA8IGt5b3VrYXRzdXphaVwgOwor5bGI5oqY6Lu4IDwga3Vzc2V0c3VqaWt1XCA7CivlkIjliIfooosgPCBnYXNzYWlidWt1cm9cIDsKK+a2iOaBr+mAmiA8IHNob3Vzb2t1dHN1dVwgOwor57eP57Wx6YG45oyZIDwgc291dG91c2Vua3lvXCA7CivmoKrkuLvmqKkgPCBrYWJ1bnVzaGlrZW5cIDsKK+S6uuawl+W9ueiAhSA8IG5pbmtpeWFrdXNoYVwgOwor5biC5YaF6YCa6KmxIDwgc2hpbmFpdHN1dXdhXCA7CivljaDmnInnjocgPCBzZW4nJ3l1dXJpdHN1XCA7CivljZfkuqzooosgPCBuYW5raW5idWt1cm9cIDsKK+mrmOmrmOaMhyA8IHRha2F0YWtheXViaVwgOwor55m96Imy5YWJIDwgaGFrdXNob2t1a291XCA7CivkuIDnrYnpmbjlo6sgPCBpdHRvdXJpa3VzaGlcIDsKK+ism+WSjOadoee0hCA8IGtvdXdham91eWFrdVwgOwor5bel5qWt6YO95biCIDwga291Z3lvdXRvc2hpXCA7CivljZPkuIrpm7voqbEgPCB0YWt1am91ZGVud2FcIDsKK+Wuouims+S4u+e+qSA8IGt5YWtrYW5zaHVnaVwgOwor5YWx5ZCM6KyA6K2wIDwga3lvdWRvdWJvdWdpXCA7Civos7zosrfntYTlkIggPCBrb3ViYWlrdW1pYWlcIDsKK+iri+iyoOS7leS6iyA8IHVrZW9pc2hpZ290b1wgOwor6Yu46a6rIDwgbm9rb2dpcml6YW1lXCA7Civpm4fnlKjlpZHntIQgPCBrb3lvdWtlaXlha3VcIDsKK+W9k+aEj+WNs+WmmSA8IHRvdWlzb2t1bXlvdVwgOwor5pel57Gz5Y2UIDwgbmljaGliZWlreW91XCA7CivlirTlg43luILloLQgPCByb3Vkb3VzaGlqb3VcIDsKK+Wjq+WumOWtpuagoSA8IHNoaWthbmdha2tvdVwgOwor5ZCN6KqJ5Lya6ZW3IDwgbWVpeW9rYWljaG91XCA7CivluqbmlbDliIbluIPlm7MgPCBkb3N1dWJ1bnB1enVcIDsKK+WxiOaKmOinkiA8IGt1c3NldHN1a2FrdVwgOwor5q665Lq655qEIDwgc2F0c3VqaW50ZWtpXCA7CivlubPlnYfntabkuI4gPCBoZWlraW5reXV1eW9cIDsKK+W3puWbo+aJhyA8IGhpZGFyaXVjaGl3YVwgOwor6Ziy5aG15a6kIDwgYm91amluc2hpdHN1XCA7CivlsI/kvr/lsI/lg6cgPCBzaG91YmVua296b3VcIDsKK+Wcn+WfgyA8IHRzdWNoaWJva29yaVwgOwor5Lq65qip6LmC6LqqIDwgamlua2VuanV1cmluXCA7CivlnKfnuK7phbjntKAgPCBhc3NodWt1c2Fuc29cIDsKK+WQq+acieeOhyA8IGdhbicneXV1cml0c3VcIDsKK+W5tOasoeWgseWRiiA8IG5lbmppaG91a29rdVwgOwor6ISI5pCP5pWwIDwgbXlha3VoYWt1c3V1XCA7Civpg7Xkvr/nlarlj7cgPCB5dXViaW5iYW5nb3VcIDsKK+aOqOmAsuWKmyA8IHN1aXNoaW5yeW9rdVwgOwor6IG+5qGf5pW3IDwgdHN1bmJvc2FqaWtpXCA7CivoqIjnrpfllY/poYwgPCBrZWlzYW5tb25kYWlcIDsKK+e3j+WQiOmbkeiqjCA8IHNvdWdvdXphc3NoaVwgOwor57iu57es55q6IDwgY2hpcmltZW5qaXdhXCA7CivlnJ/lnLDlj47nlKggPCB0b2NoaXNodXV5b3VcIDsKK+W6g+WRiuWKueaenCA8IGtvdWtva3Vrb3VrYVwgOwor5q665Lq654uCIDwgc2F0c3VqaW5reW91XCA7CivovLjlh7rlhaUgPCB5dXNodXRzdW55dXVcIDsKK+W5vOWFkOaVmeiCsiA8IHlvdWppa3lvdWlrdVwgOwor6L+R5omA6L+35oORIDwga2luam9tZWl3YWt1XCA7CivoprPlrqLluK0gPCBrYW5reWFrdXNla2lcIDsKK+eEoemZkOe0muaVsCA8IG11Z2Vua3l1dXN1dVwgOwor5LiA5Yi75Y2D6YeRIDwgaWtrb2t1c2Vua2luXCA7Civpmarlr6nliLbluqYgPCBiYWlzaGluc2VpZG9cIDsKK+e3qOmbhuapn+iDvSA8IGhlbnNodXVraW5vdVwgOwor5YWI5Y+W54m55qipIDwgc2Vuc2h1dG9ra2VuXCA7CivlsILploDliIbph44gPCBzZW5tb25idW4nJ3lhXCA7Civlv4QgPCByaXRzdXNoaW5iZW5cIDsKK+WRveWGpeWKoCA8IGlub2NoaW15b3VnYVwgOwor5ouF5a2Q6I+M6aGeIDwgdGFuc2hpa2lucnVpXCA7CivplqLkv4LlvLfljJYgPCBrYW5rZWlreW91a2FcIDsKK+ajruael+a1tCA8IHNoaW5yaW4nJ3lva3VcIDsKK+aUu+aSg+mDqOmaiiA8IGtvdWdla2lidXRhaVwgOwor56eY5a+G5Lya6K2wIDwgaGltaXRzdWthaWdpXCA7Civoh6rli5Xou4rkuovmlYUgPCBqaWRvdXNoYWppa29cIDsKK+a2iOmfs+ijhee9riA8IHNob3VvbnNvdWNoaVwgOwor5rqA5bee5LqL5aSJIDwgbWFuc2h1dWppaGVuXCA7CivniIbnmbrnrqEgPCBiYWt1aGF0c3VrYW5cIDsKK+izh+eUo+ipleS+oSA8IHNoaXNhbmh5b3VrYVwgOwor5Ye654mI6Kix5Y+vIDwgc2h1cHBhbmt5b2thXCA7Civpu5LlhavkuIggPCBrdXJvaGFjaGlqb3VcIDsKK+WbveWGhemcgOimgSA8IGtva3VuYWlqdXlvdVwgOwor5Y2K6Lqr5rW0IDwgaGFuc2hpbicneW9rdVwgOwor5Y2D5LiH6ZW36ICFIDwgc2VuYmFuY2hvdWphXCA7CivljJblraboqabpqJMgPCBrYWdha3VzaGlrZW5cIDsKK+e0sOiDnuWfuemkiiA8IHNhaWJvdWJhaXlvdVwgOwor6Z+z6Z+757WE57mUIDwgb24nJ2luc29zaGlraVwgOwor5bqn5qiZ5aSJ5o+bIDwgemFoeW91aGVua2FuXCA7CivmqZ/morDlt6XlraYgPCBraWthaWtvdWdha3VcIDsKK+esrOS4iemDqOmVtyA8IGRhaXNhbmJ1Y2hvdVwgOwor5aWH5bKp5oCq55+zIDwga2lnYW5rYWlzZWtpXCA7CivogJDpoqjmp4vpgKAgPCB0YWlmdXVrb3V6b3VcIDsKK+aal+e3keiJsiA8IGFucnlva3VzaG9rdVwgOwor55+z6bm45bel5aC0IDwgc2Vra2Vua291am91XCA7CivlnKjpg7fou43kurogPCB6YWlnb3VndW5qaW5cIDsKK+W5vemciuS8muekviA8IHl1dXJlaWdhaXNoYVwgOwor55Kw5aKD56C05aOKIDwga2Fua3lvdWhha2FpXCA7Civlm73pmpvkuLvnvqkgPCBrb2t1c2Fpc2h1Z2lcIDsKK+W+oeevgOaWmeeQhiA8IG9zZWNoaXJ5b3VyaVwgOwor562L6IKJ55ebIDwga2luJyduaWt1dHN1dVwgOwor5L+u55CG5bel5aC0IDwgc2h1dXJpa291am91XCA7Civogbfog73ntaYgPCBzaG9rdW5vdWt5dXVcIDsKK+aWsOeUn+eJqSA8IHNoaW5zZWlidXRzdVwgOwor5YeM6ZyE6IqxIDwgbm91emVua2F6dXJhXCA7Civpu5LoibLlsIkgPCBrb2t1c2hpa2lqb3VcIDsKK+ibjeiiiyA8IGhvdGFydWJ1a3Vyb1wgOwor5YG255m655qEIDwgZ3V1aGF0c3V0ZWtpXCA7Civmi5LlkKblj43lv5wgPCBreW9oaWhhbicnbm91XCA7CivnibnnlKPniakgPCB0b2t1c2FuYnV0c3VcIDsKK+S4gOiogOS4gOWPpSA8IGljaGlnb24nJ2lra3VcIDsKK+WNmOeLrOmjm+ihjCA8IHRhbmRva3VoaWtvdVwgOwor5Li75qip5Zyo5rCRIDwgc2h1a2VuemFpbWluXCA7CivljJbnsqflrqQgPCBrZXNob3VzaGl0c3VcIDsKK+e3j+aUr+WHuiA8IHNvdXNoaXNodXRzdVwgOwor5Lq65qC85Li7576pIDwgamlua2FrdXNodWdpXCA7Civoh6rmrrrmnKrpgYIgPCBqaXNhdHN1bWlzdWlcIDsKK+WHuuWutumBgeS4liA8IHNodWtrZXRvbnNlaVwgOwor5ZOy5a2m5pu4IDwgdGV0c3VnYWt1c2hvXCA7CivljZrnianppKggPCBoYWt1YnV0c3VrYW5cIDsKK+e0kOmdqemlgumjqSA8IGhpbW9rYXdhdWRvblwgOwor5oSa5rCR5pS/562WIDwgZ3VtaW5zZWlzYWt1XCA7CivljZjnp5HlpKflraYgPCB0YW5rYWRhaWdha3VcIDsKK+mBqeato+WIqea9pCA8IHRla2lzZWlyaWp1blwgOwor55m66Z+z6KiY5Y+3IDwgaGF0c3VvbmtpZ291XCA7Civou43kuovljZTlrpogPCBndW5qaWt5b3V0ZWlcIDsKK+i+suWcsOWnlOWToeS8miA8IG5vdWNoaWlpbmthaVwgOwor5Luy5LuL54mpIDwgY2h1dWthaWJ1dHN1XCA7Civopb/pq5jmnbHkvY4gPCBzZWlrb3V0b3V0ZWlcIDsKK+aQjeiAl+S6uuWToSA8IHNvbm1vdWppbicnaW5cIDsKK+eZvemgrem3siA8IGhha3V0b3V3YXNoaVwgOwor5a6f5Yui5L6h5qC8IDwgamlzc2Vpa2FrYWt1XCA7Civmj7TnlKjoqK3oqIggPCBlbicneW91c2Vra2VpXCA7Civnj77loLTkuK3ntpkgPCBnZW5iYWNodXVrZWlcIDsKK+acgOaWsOW8jyA8IHNhaXNoaW5zaGlraVwgOwor5bGx6LqR6LqFIDwgeWFtYXRzdXRzdWppXCA7CivmhJ/nn6Xoo4Xnva4gPCBrYW5jaGlzb3VjaGlcIDsKK+itsOaxuuapn+mWoiA8IGdpa2V0c3VraWthblwgOwor55yB6Zu75YqbIDwgc2hvdWRlbnJ5b2t1XCA7Civlronlv4Pnq4vlkb0gPCBhbmppbnJ5b3VtZWlcIDsKK+WQiOWQjOS6i+alrSA8IGdvdWRvdWppZ3lvdVwgOwor5ZCM5pyf5L+h5Y+3IDwgZG91a2lzaGluZ291XCA7Civku7LplpPmhI/orZggPCBuYWthbWFpc2hpa2lcIDsKK+WqkuS7i+WkieaVsCA8IGJhaWthaWhlbnN1dVwgOwor5a+S5Lit5rC05rOzIDwga2FuY2h1dXN1aWVpXCA7CivkuIDljLnni7wgPCBpcHBpa2lvb2thbWlcIDsKK+iiq+S/nemZuueJqSA8IGhpaG9rZW5idXRzdVwgOwor5raI5oGv562LIDwgc2hvdXNva3VzdWppXCA7Civmh5DntJkgPCBmdXRva29yb2dhbWlcIDsKK+aal+auuuS6i+S7tiA8IGFuc2F0c3VqaWtlblwgOwor5oqY6KG35Li7576pIDwgc2V0Y2h1dXNodWdpXCA7CivljZjlvI/nsL/oqJggPCB0YW5zaGlraWJva2lcIDsKK+aVmemkiuiqsueoiyA8IGt5b3V5b3VrYXRlaVwgOwor5LiH5bm0562GIDwgbWFuJyduZW5oaXRzdVwgOwor5LiJ6ICF5Lya6KuHIDwgc2Fuc2hha2FpZGFuXCA7CivpgKPoqJjmipXnpaggPCByZW5raXRvdWh5b3VcIDsKK+W/g+eQhueKtuaFiyA8IHNoaW5yaWpvdXRhaVwgOwor5LuH5ZCM5rCPIDwga2F0YWtpZG91c2hpXCA7CivmtbflpJbluILloLQgPCBrYWlnYWlzaGlqb3VcIDsKK+aXouaIkOS6i+WunyA8IGtpc2VpamlqaXRzdVwgOwor5LqL5YuZ57eP5bGAIDwgamltdXNvdWt5b2t1XCA7CivliY3pgLLln7rlnLAgPCB6ZW5zaGlua2ljaGlcIDsKK+WQjOW3peeVsOabsiA8IGRvdWtvdWlreW9rdVwgOwor5ZG96aGM6Zai5pWwIDwgbWVpZGFpa2Fuc3V1XCA7CivljJfopb/oiKrot68gPCBob2t1c2Vpa291cm9cIDsKK+WxgOWcsOeahCA8IGt5b2t1Y2hpdGVraVwgOwor5ZCI5ZCM5Lya5ZCIIDwgZ291ZG91a2FpZ291XCA7Civnq4vlnLDmnaHku7YgPCByaXRjaGlqb3VrZW5cIDsKK+mdqeaJi+iiiyA8IGthd2F0ZWJ1a3Vyb1wgOwor5Zyw55CG5a2m6ICFIDwgY2hpcmlnYWt1c2hhXCA7CivlpKfmiYDpq5jmiYAgPCB0YWlzaG9rb3VzaG9cIDsKK+mHjeikh+S/nemZuiA8IGp1dWZ1a3Vob2tlblwgOwor6YCa5bi45YW15ZmoIDwgdHN1dWpvdWhlaWtpXCA7CivlpJblm73pg6jpmoogPCBnYWlrb2t1YnV0YWlcIDsKK+aWh+WMluS6pOa1gSA8IGJ1bmtha291cnl1dVwgOwor5LiD5YiG6KKWIDwgc2hpY2hpYnVzb2RlXCA7CivluILlpJbpgJroqbEgPCBzaGlnYWl0c3V1d2FcIDsKK+avm+e0sOihgOeuoSA8IG1vdXNhaWtla2thblwgOwor5YuV5oWL57Wx6KiIIDwgZG91dGFpdG91a2VpXCA7CivnpL7lhoXmg4XloLEgPCBzaGFuYWlqb3Vob3VcIDsKK+S4reWFrOaWh+W6qyA8IGNodXVrb3VidW5rb1wgOwor5Zyn6Zu75Yq55p6cIDwgYXRzdWRlbmtvdWthXCA7CivprZHprYXprY3prY4gPCBjaGltaW1vdXJ5b3VcIDsKK+W+queSsOezu+e1sSA8IGp1bmthbmtlaXRvdVwgOwor56eB6YGUIDwgd2F0YXNoaXRhY2hpXCA7Civlr77kurrplqLkv4IgPCB0YWlqaW5rYW5rZWlcIDsKK+aZrumAmumBuOaMmSA8IGZ1dHN1dXNlbmt5b1wgOwor5b+D6ZyK6KGTIDwgc2hpbnJlaWp1dHN1XCA7CivmnaHku7bpl5jkuokgPCBqb3VrZW50b3Vzb3VcIDsKK+advuerueaihSA8IHNob3VjaGlrdWJhaVwgOwor5Y2D54q25LiH5oWLIDwgc2Vuam91YmFudGFpXCA7CivmoLjplovnmbogPCBrYWt1a2FpaGF0c3VcIDsKK+WMluaIkOW3pealrSA8IGthc2Vpa291Z3lvdVwgOwor57WM5riI5Y6f6KuWIDwga2VpemFpZ2Vucm9uXCA7CivmqKnorIDooZPmlbAgPCBrZW5ib3VqdXNzdXVcIDsKK+S4jeaPrueZuuaApyA8IGZ1a2loYXRzdXNlaVwgOwor6auY562J5a2m5qChIDwga291dG91Z2Fra291XCA7CivpgKPlkIjnjovlm70gPCByZW5nb3VvdWtva3VcIDsKK+Wbvemam+iJsiA8IGtva3VzYWlzaG9rdVwgOwor6YO15L6/5pu457ChIDwgeXV1Ymluc2hva2FuXCA7CivlrZDkvpvlv4MgPCBrb2RvbW9nb2tvcm9cIDsKK+eyvuelnuWKmyA8IHNlaXNoaW5yeW9rdVwgOwor5rex6KyA6YGg5oWuIDwgc2hpbmJvdWVucnlvXCA7CivkvY/msJHpgYvli5UgPCBqdXVtaW4nJ3VuZG91XCA7Civms5Xmloflrabpg6ggPCBob3VidW5nYWt1YnVcIDsKK+aZrumAmumDteS+vyA8IGZ1dHN1dXl1dWJpblwgOwor5YaN56qB5YWlIDwgc2FpdG90c3VueXV1XCA7CivlkJvkuLvmlL/kvZMgPCBrdW5zaHVzZWl0YWlcIDsKK+eZuuS/oeWxgCA8IGhhc3NoaW5reW9rdVwgOwor5aSn5ZKM5b+DIDwgeWFtYXRvZ29rb3JvXCA7CivmjbLlnJ/ph43mnaUgPCBrZW5kb2Nob3VyYWlcIDsKK+Wls+WjsOWQiOWUsSA8IGpvc2VpZ2Fzc2hvdVwgOwor57Gz6KW/5oim5LqJIDwgYmVpc2Vpc2Vuc291XCA7Civpq5jluqbmiJDplbcgPCBrb3Vkb3NlaWNob3VcIDsKK+iqv+W+i+W4qyA8IGNob3VyaXRzdXNoaVwgOwor5Lm+5biD5pGp5pOmIDwga2FucHVtYXNhdHN1XCA7CivkuK3oj6/mgJ3mg7MgPCBjaHV1a2FzaGlzb3VcIDsKK+i+nuiBt+mhmCA8IGppc2hva3VuZWdhaVwgOwor6LSI5LiO6Ki85pu4IDwgem91eW9zaG91c2hvXCA7CivlgrXli5nkuI3lsaXooYwgPCBzYWltdWZ1cmlrb3VcIDsKK+WFrOihhuihm+eUnyA8IGtvdXNodXVlaXNlaVwgOwor5omA5omAIDwgdG9rb3JvZG9rb3JvXCA7CivnpL7kvJrnp5HlraYgPCBzaGFrYWlrYWdha3VcIDsKK+i+suiKuOWMluWtpiA8IG5vdWdlaWthZ2FrdVwgOwor5Lqk6YCa5pW055CGIDwga291dHN1dXNlaXJpXCA7Civopqrlr4bmhJ8gPCBzaGlubWl0c3VrYW5cIDsKK+eJueauiumDqOmaiiA8IHRva3VzaHVidXRhaVwgOwor56qT6Zqb5pePIDwgbWFkb2dpd2F6b2t1XCA7Civkuovlrp/nhKHmoLkgPCBqaWppdHN1bXVrb25cIDsKK+WGmeecn+ihkyA8IHNoYXNoaW5qdXRzdVwgOwor5a2U6ZuA5aaZ546LIDwga3VqYWt1bXlvdW91XCA7CivosqHnlKPliIbkuI4gPCB6YWlzYW5idW4nJ3lvXCA7CivpgqblrZfmlrDogZ4gPCBob3VqaXNoaW5idW5cIDsKK+apn+WLleioiOeUuyA8IGtpZG91a2Vpa2FrdVwgOwor6Ly75bCE54axIDwgZnVrdXNoYW5ldHN1XCA7CivlraTnq4vkuLvnvqkgPCBrb3JpdHN1c2h1Z2lcIDsKK+S+m+i/sOiAhSA8IGt5b3VqdXRzdXNoYVwgOwor5piO5rK75aSp55qHIDwgbWVpaml0ZW4nJ25vdVwgOwor54Sm54K56Led6ZuiIDwgc2hvdXRlbmt5b3JpXCA7Civpm4blkIjmmYLplpMgPCBzaHV1Z291amlrYW5cIDsKK+S9j+WuheWcsOWMuiA8IGp1dXRha3VjaGlrdVwgOwor5aSa6KeS6LK/5piTIDwgdGFrYWt1Ym91ZWtpXCA7CivpnZ7llqvnhZnogIUgPCBoaWtpdHN1ZW5zaGFcIDsKK+a2iOWMluS4jeiJryA8IHNob3VrYWZ1cnlvdVwgOwor56We57WM56+AIDwgc2hpbmtlaXNldHN1XCA7CivoiJ7lj7DnhafmmI4gPCBidXRhaXNob3VtZWlcIDsKK+S4jeeUn+eUo+eahCA8IGZ1c2Vpc2FudGVraVwgOwor54iG55m65oCnIDwgYmFrdWhhdHN1c2VpXCA7CivpnZ7nlJ/nlKPnmoQgPCBoaXNlaXNhbnRla2lcIDsKK+WLn+mbhuS6uuWToSA8IGJvc2h1dWppbicnaW5cIDsKK+WOn+eov+eUqOe0mSA8IGdlbmtvdXlvdXNoaVwgOwor54Sh5oSP6K2Y55qEIDwgbXVpc2hpa2l0ZWtpXCA7Civnt4/lj7jku6TlrpggPCBzb3VzaGlyZWlrYW5cIDsKK+itsua4oeaJgOW+lyA8IGpvdXRvc2hvdG9rdVwgOwor5a2m56ul5L+d6IKyIDwgZ2FrdWRvdWhvaWt1XCA7CivmnIDntYLlhbXlmaggPCBzYWlzaHV1aGVpa2lcIDsKK+a7kei1sOi7iui8qiA8IGthc3NvdXNoYXJpblwgOwor5pyI5YiK6ZuR6KqMIDwgZ2Vra2FuemFzc2hpXCA7Civlgo3oi6XnhKHkurogPCBib3VqYWt1YnVqaW5cIDsKK+WFqOaXpeWItiA8IHplbicnbmljaGlzZWlcIDsKK+WLpOWKtOWlieS7lSA8IGtpbnJvdWhvdXNoaVwgOwor5oCn6IW65pGY6ZmkIDwgc2Vpc2VudGVraWpvXCA7Civmtojmr5LolqwgPCBzaG91ZG9rdXlha3VcIDsKK+aGsuazleaUueatoyA8IGtlbnBvdWthaXNlaVwgOwor6KGM6Lev55eF6ICFIDwga291cm9ieW91c2hhXCA7CivkuIDkurroip3lsYUgPCBoaXRvcmlzaGliYWlcIDsKK+WFseWQjOmYsuihmyA8IGt5b3Vkb3Vib3VlaVwgOwor6ZeY5b+X5rqA5rqAIDwgdG91c2hpbWFubWFuXCA7CivluILli6Loqr/mn7sgPCBzaGlzZWljaG91c2FcIDsKK+S8muWOrei7n+mqqCA8IGVlbicnbmFua290c3VcIDsKK+i7jeeUqOWcsOWbsyA8IGd1bicneW91Y2hpenVcIDsKK+adseWllOilv+i1sCA8IHRvdWhvbnNlaXNvdVwgOwor6YGT5b6z5b6LIDwgZG91dG9rdXJpdHN1XCA7CivkuqTku6PkvZzmpa0gPCBrb3V0YWlzYWd5b3VcIDsKK+WbvemYsuiJsiA8IGtva3Vib3VzaG9rdVwgOwor5pel6KiY5paH5a2mIDwgbmlra2lidW5nYWt1XCA7CivntYLmnKvoq5YgPCBzaHV1bWF0c3Vyb25cIDsKK+aXpeezu+exs+S6uiA8IG5pa2tlaWJlaWppblwgOwor5bCG6LuN6IG3IDwgc2hvdWd1bnNob2t1XCA7Civoh7Plhazoh7PlubMgPCBzaGlrb3VzaGloZWlcIDsKK+mWoumAo+S8muekviA8IGthbnJlbmdhaXNoYVwgOwor5Lq65qip5a6j6KiAIDwgamlua2Vuc2VuZ2VuXCA7CivkurrpgKDkurrplpMgPCBqaW56b3VuaW5nZW5cIDsKK+WCvuaWnOWutuizgyA8IGtlaXNoYXlhY2hpblwgOwor6Ieq5rCR5YWa5YmHIDwgamltaW50b3Vzb2t1XCA7Civlj43lvqnoqJjlj7cgPCBoYW5wdWt1a2lnb3VcIDsKK+aXpeacrOiIquepuiA8IG5pcHBvbmtvdWt1dVwgOwor6Iux5omN5pWZ6IKyIDwgZWlzYWlreW91aWt1XCA7CivojYnmnIjmtYEgPCBzb3VnZXRzdXJ5dXVcIDsKK+aOkuawtOadoeS7tiA8IGhhaXN1aWpvdWtlblwgOwor6Iux5Zu96Iiq56m6IDwgZWlrb2t1a291a3V1XCA7CivmmI7otaToibIgPCBtZWlzZWtpc2hva3VcIDsKK+ino+axuuetliA8IGthaWtldHN1c2FrdVwgOwor5Y+j5ZSH6KOCIDwga291c2hpbnJldHN1XCA7CivkuIPojYnnsqUgPCBuYW5ha3VzYWdheXVcIDsKK+WJjeWTqOmojuWFtSA8IHplbnNob3VraWhlaVwgOwor5rC057Sg54iG5by+IDwgc3Vpc29iYWt1ZGFuXCA7CivmvYXmvJHnlKjmsLQgPCBrYW5nYWl5b3VzdWlcIDsKK+WVhualreWtpiA8IHNob3VneW91Z2FrdVwgOwor5bu66Kit55yBIDwga2Vuc2V0c3VzaG91XCA7CivliIbliKXlv4MgPCBmdW5iZXRzdXNoaW5cIDsKK+W7uuioreeahCA8IGtlbnNldHN1dGVraVwgOwor6YeR6Yu4IDwga2FuZW5va29naXJpXCA7Civkuoznv7vlvbkgPCByeWFuZmFuJyd5YWt1XCA7CivkuIDmlonlsITmkoMgPCBpc3NlaXNoYWdla2lcIDsKK+S4gOmFuOWMlueCree0oCA8IGlzc2Fua2F0YW5zb1wgOwor5Z+66Lu46YCa6LKoIDwga2lqaWt1dHN1dWthXCA7Civlgr7mlpznlJ/nlKMgPCBrZWlzaGFzZWlzYW5cIDsKK+Wig+eVjOeQhuirliA8IGt5b3VrYWlyaXJvblwgOwor5aSp55qH6Zmb5LiLIDwgdGVuJydub3VoZWlrYVwgOwor5aSp54S25p6c5rGBIDwgdGVuJyduZW5rYWp1dVwgOwor5Y+j5ouN5a2QIDwga3VjaGlieW91c2hpXCA7CivpnIrogonkuIDoh7QgPCByZWluaWt1aXRjaGlcIDsKK+S7mOWKoOS+oeWApOeojiA8IGZ1a2FrYWNoaXplaVwgOwor57WM5riI5b6p6IiIIDwga2VpemFpZnVra291XCA7Civkurrlj6PntbHoqIggPCBqaW5rb3V0b3VrZWlcIDsKK+aIpuaZgueUo+alrSA8IHNlbmppc2FuZ3lvdVwgOwor5Y+k6Yqt5a2m6ICFIDwga29zZW5nYWt1c2hhXCA7Civlr77lvL7pgZPlvL4gPCB0YWlkYW5kb3VkYW5cIDsKK+iqjeiovOW8jyA8IG5pbnNob3VzaGlraVwgOwor6KO96YCg55Wq5Y+3IDwgc2Vpem91YmFuZ291XCA7Civnt4/mi6znmoQgPCBzb3VrYXRzdXRla2lcIDsKK+WkmumHjeS6uuagvCA8IHRhanV1amlua2FrdVwgOwor5LiA5YiA5Lih5patIDwgaXR0b3VyeW91ZGFuXCA7CivmiZjpiaLlg6cgPCB0YWt1aGF0c3V6b3VcIDsKK+WFseeUo+S4u+e+qSA8IGt5b3VzYW5zaHVnaVwgOwor6KiY5ZCN5oqV56WoIDwga2ltZWl0b3VoeW91XCA7CivllYbmpa3lm70gPCBzaG91Z3lvdWtva3VcIDsKK+S7suS6uuWPoyA8IG5ha291ZG9ndWNoaVwgOwor5qGc5YmN57eaIDwgc2FrdXJhemVuc2VuXCA7CivkvJHmhqnmmYLplpMgPCBreXV1a2VpamlrYW5cIDsKK+S4uOWkqui2s+WgtCA8IG1hcnV0YWFzaGliYVwgOwor5qGD6Imy6YGK5oivIDwgbW9tb2lyb3l1dWdpXCA7Civmrablo6vpmo7ntJogPCBidXNoaWthaWt5dXVcIDsKK+W4uOe9ruWnlOWToeS8miA8IGpvdWNoaWlpbmthaVwgOwor5Zu96Zqb6Zu76KmxIDwga29rdXNhaWRlbndhXCA7Civkurrlt6XlnLDpnIcgPCBqaW5rb3VqaXNoaW5cIDsKK+a9nOWcqOS4u+aoqSA8IHNlbnphaXNodWtlblwgOwor6YGO5bCP6KmV5L6hIDwga2FzaG91aHlvdWthXCA7Civnr4Tnlofpg6jploAgPCBoYW5jaHV1YnVtb25cIDsKK+S/rumBk+WItuW6piA8IHNodXVkb3VzZWlkb1wgOwor57Wx6Kqe56+E55aHIDwgdG91Z29oYW5jaHV1XCA7CivooZvnlJ/oqK3lgpkgPCBlaXNlaXNldHN1YmlcIDsKK+S4gOasoeeUo+WTgSA8IGljaGlqaXNhbnBpblwgOwor5by35Yi25YqbIDwga3lvdXNlaXJ5b2t1XCA7CivlhazmmI7mraPlpKcgPCBrb3VtZWlzZWlkYWlcIDsKK+W/heiqreabuCA8IGhpdHN1ZG9rdXNob1wgOwor6Iqx54Gr57ea6aaZIDwgaGFuYWJpc2Vua291XCA7CivlnKflipvoqIggPCBhdHN1cnlva3VrZWlcIDsKK+iItueUqOapn+mWoiA8IGhha3V5b3VraWthblwgOwor6ZqP562G6ZuGIDwgenVpaGl0c3VzaHV1XCA7CivlhazmsJHmqKnms5UgPCBrb3VtaW5rZW5ob3VcIDsKK+eMq+ebruefsyA8IG5la29tb2t1c2VraVwgOwor5YuJ5by35py6IDwgYmVua3lvdXp1a3VlXCA7CivmmI/nnaHnirbmhYsgPCBrb25zdWlqb3V0YWlcIDsKK+WvvuWQkei7iue3miA8IHRhaWtvdXNoYXNlblwgOwor6YmE5ouz5Yi26KOBIDwgdGVra2Vuc2Vpc2FpXCA7CivmoYLlhqDoqankurogPCBrZWlrYW5zaGlqaW5cIDsKK+S6uuWPo+iqv+afuyA8IGppbmtvdWNob3VzYVwgOwor5Y+45rOV6Kej5YmWIDwgc2hpaG91a2FpYm91XCA7Civkurrlj6PpnZnmhYsgPCBqaW5rb3VzZWl0YWlcIDsKK+acieS9k+WLleeUoyA8IHl1dXRhaWRvdXNhblwgOwor5o6h55So6Kmm6aiTIDwgc2FpeW91c2hpa2VuXCA7Civnmb3njonmpbwgPCBoYWt1Z3lva3Vyb3VcIDsKK+awl+ixoeaDheWgsSA8IGtpc2hvdWpvdWhvdVwgOwor5pyJ57ea5pS+6YCBIDwgeXV1c2VuaG91c291XCA7CivplovpgJrlvI8gPCBrYWl0c3V1c2hpa2lcIDsKK+aIr+S6iyA8IHRhd2FtdXJlZ290b1wgOwor5ZaA55ew5qSc5p+7IDwga2FrdXRhbmtlbnNhXCA7Civpg7flnJ/mlpnnkIYgPCBreW91ZG9yeW91cmlcIDsKK+S4ieauteirluazlSA8IHNhbmRhbnJvbnBvdVwgOwor6KW/5Y2K55CDIDwgbmlzaGloYW5reXV1XCA7CivmmYLku6Pnsr7npZ4gPCBqaWRhaXNlaXNoaW5cIDsKK+iqh+Wkp+W6g+WRiiA8IGtvZGFpa291a29rdVwgOwor6YO95biC6KiI55S7IDwgdG9zaGlrZWlrYWt1XCA7CivplqLmnbHkuIDlhoYgPCBrYW50b3VpY2hpZW5cIDsKK+iHqueEtueZuueUnyA8IHNoaXplbmhhc3NlaVwgOwor5ZWE5pyo6bOlIDwgdGFrdWJva3VjaG91XCA7CivljZjkuIDlvaIgPCB0YW4nJ2ljaGlnYXRhXCA7CivmrL3lrprmhrLms5UgPCBraW50ZWlrZW5wb3VcIDsKK+W/heeEtueahCA8IGhpdHN1emVudGVraVwgOwor5pWw5YCk5Yi25b6hIDwgc3V1Y2hpc2VpZ3lvXCA7CivmrabogIXkurrlvaIgPCBtdXNoYW5pbmd5b3VcIDsKK+WIhuWRqOWbnui3ryA8IGJ1bnNodXVrYWlyb1wgOwor5biC5rCR5aSn5LyaIDwgc2hpbWludGFpa2FpXCA7CivotaTlrZflm73lgrUgPCBha2FqaWtva3VzYWlcIDsKK+S9v+eUqOaWueazlSA8IHNoaXlvdWhvdWhvdVwgOwor5rC06J+36J6CIDwgbWl6dWthbWFraXJpXCA7CivlsI/mmKXml6XlkowgPCBrb2hhcnViaXlvcmlcIDsKK+aYn+aciOWknCA8IGhvc2hpZHp1a3V5b1wgOwor57ie57mU54mpIDwgc2hpbWFvcmltb25vXCA7CivlhazlvI/oqablkIggPCBrb3VzaGlraWppYWlcIDsKK+eFp+WwhOWHpueQhiA8IHNob3VzaGFzaG9yaVwgOwor5bu66Kit5qWtIDwga2Vuc2V0c3VneW91XCA7Civlj4Lli6TkuqTmm78gPCBzYW5raW5rb3V0YWlcIDsKK+e+iumgreeLl+iCiSA8IHlvdXRvdWt1bmlrdVwgOwor5pah5peL5qWt6ICFIDwgYXNzZW5neW91c2hhXCA7CivkvJrnpL7mpoLopoEgPCBrYWlzaGFnYWl5b3VcIDsKK+WVhuS6uuihlyA8IHNob3VuaW5tYWNoaVwgOwor5LiA5bmV54mpIDwgaGl0b21ha3Vtb25vXCA7CivmsJHkuLvmlL/kvZMgPCBtaW5zaHVzZWl0YWlcIDsKK+eyl+aUvui+sualrSA8IHNvaG91bm91Z3lvdVwgOwor6LKh5YuZ6Ku46KGoIDwgemFpbXVzaG9oeW91XCA7Civomorlj5bnt5rpppkgPCBrYXRvcmlzZW5rb3VcIDsKK+W6g+WgseaDheWgsSA8IGtvdWhvdWpvdWhvdVwgOwor57eK5oCl5LqL5oWLIDwga2lua3l1dWppdGFpXCA7CivlnYfooaHkvqHmoLwgPCBraW5rb3VrYWtha3VcIDsKK+WFrOWuieWnlOWToeS8miA8IGtvdWFuJydpaW5rYWlcIDsKK+Wto+evgOWkieeVsCA8IGtpc2V0c3VoZW4nJ2lcIDsKK+acieaEn+WcsOmchyA8IHl1dWthbmppc2hpblwgOwor57ep5ZKM5oyv5YuVIDwga2Fud2FzaGluZG91XCA7Civlub3pnIrkurrlj6MgPCB5dXVyZWlqaW5rb3VcIDsKK+e1seiqnuaMh+aomSA8IHRvdWdvc2hpaHlvdVwgOwor5pyA6auY5L6h5qC8IDwgc2Fpa291a2FrYWt1XCA7Civnmb7kurrlipsgPCBoeWFrdW5pbnJpa2lcIDsKK+mFuOaAp+eZveWcnyA8IHNhbnNlaWhha3Vkb1wgOwor5rCR5peP6KGj6KOFIDwgbWluem9rdWlzaG91XCA7Civkvpvov7Dmm7ggPCBreW91anV0c3VzaG9cIDsKK+mdnuWWtuWIqeS6i+alrSA8IGhpZWlyaWppZ3lvdVwgOwor5a6f5qWt55WMIDwgaml0c3VneW91a2FpXCA7Civkv67lo6voqrLnqIsgPCBzaHV1c2hpa2F0ZWlcIDsKK+ihjOW5s+mNiyA8IHl1a2loaXJhbmFiZVwgOwor5YWs55uK5rOV5Lq6IDwga291ZWtpaG91amluXCA7CivmrbTlj7LkuLvnvqkgPCByZWtpc2hpc2h1Z2lcIDsKK+W8geaFtuagvOWtkCA8IGJlbmtlaWdvdXNoaVwgOwor56ys5LqM5Lq656ewIDwgZGFpbmluaW5zaG91XCA7CivkuIvmtYHnpL7kvJogPCBrYXJ5dXVzaGFrYWlcIDsKK+W/q+alveS4u+e+qSA8IGthaXJha3VzaHVnaVwgOwor6JC95oiQ5byPIDwgcmFrdXNlaXNoaWtpXCA7Civmn7Plt53pjYsgPCB5YW5hZ2F3YW5hYmVcIDsKK+iIque2muWKmyA8IGtvdXpva3VyeW9rdVwgOwor5Yi26ZmQ6YCf5bqmIDwgc2VpZ2Vuc29rdWRvXCA7CivmlofmrabkuKHpgZMgPCBidW5idXJ5b3Vkb3VcIDsKK+S4iuaYh+mZkOW6piA8IGpvdXNob3VnZW5kb1wgOwor5L2c55So56mN5YiGIDwgc2F5b3VzZWtpYnVuXCA7Civnm7TmjqXosrsgPCBjaG9rdXNldHN1aGlcIDsKK+iFueeti+mBi+WLlSA8IGZ1a2tpbicndW5kb3VcIDsKK+WFrOiqjeiomOmMsiA8IGtvdW5pbmtpcm9rdVwgOwor5bGx5qKo55yMIDwgeWFtYW5hc2hpa2VuXCA7CivkuIDntrLmiZPlsL0gPCBpY2hpbW91ZGFqaW5cIDsKK+ajl+aksOWtkCA8IG5hdHN1bWV5YXNoaVwgOwor5a2m5qCh55So5ZOBIDwgZ2Fra291eW91aGluXCA7CivkvY/lroXmiYvlvZMgPCBqdXV0YWt1dGVhdGVcIDsKK+iqjeefpeenkeWtpiA8IG5pbmNoaWthZ2FrdVwgOwor5ZWG5aOy6YGT5YW3IDwgc2hvdWJhaWRvdWd1XCA7CivliLrmv4DniakgPCBzaGlnZWtpYnV0c3VcIDsKK+WOn+WtkOaIpuS6iSA8IGdlbnNoaXNlbnNvdVwgOwor5ryr6YGK5a6iIDwgbWFuJyd5dXVreWFrdVwgOwor5LqM6YeN54Sm54K5IDwgbmlqdXVzaG91dGVuXCA7Civnk6bnhY7ppIUgPCBrYXdhcmFzZW5iZWlcIDsKK+Wbs+abuOmkqOmVtyA8IHRvc2hva2FuY2hvdVwgOwor5Zyo5bqr6Kq/5pW0IDwgemFpa29jaG91c2VpXCA7Civlr77mlbDplqLmlbAgPCB0YWlzdXVrYW5zdXVcIDsKK+imquWtkOS4vCA8IG95YWtvZG9uYnVyaVwgOwor5pS/5pWZ5LiA6Ie0IDwgc2Vpa3lvdWl0Y2hpXCA7CivmlofoirjmibnoqZUgPCBidW5nZWloaWh5b3VcIDsKK+e3muW9ouS7o+aVsCA8IHNlbmtlaWRhaXN1dVwgOwor6YCj5ZCI5pS/5qipIDwgcmVuZ291c2Vpa2VuXCA7CivpoLzmr43lrZDorJsgPCB0YW5vbW9zaGlrb3VcIDsKK+WcqOmfk+exs+i7jSA8IHphaWthbmJlaWd1blwgOwor6JGX6L+w5qWtIDwgY2hvanV0c3VneW91XCA7CivkuIDlpJzkuZ7po58gPCBpY2hpeWFrb2ppa2lcIDsKK+eVsOW4uOe1guS6hiA8IGlqb3VzaHV1cnlvdVwgOwor5ZOB5b2iIDwgc2hpbmFrYXRhY2hpXCA7CivoqabpqJPlnLDnjYQgPCBzaGlrZW5qaWdva3VcIDsKK+ekvuWToeaVmeiCsiA8IHNoYWlua3lvdWlrdVwgOwor6JK855m96ImyIDwgc291aGFrdXNob2t1XCA7CivkvIHmpa3lubTph5EgPCBraWd5b3VuZW5raW5cIDsKK+S5numjn+agueaApyA8IGtvamlraWtvbmpvdVwgOwor5LyB5qWt5ZCI5ZCMIDwga2lneW91Z291ZG91XCA7Civoh6rkuLvmjIfph50gPCBqaXNodXNoaXNoaW5cIDsKK+aEn+aFqOeEoemHjyA8IGthbmdhaW11cnlvdVwgOwor5LiD6L665b2iIDwgc2hpY2hpaGVua2VpXCA7CivmlbXmgKflm73lrrYgPCB0ZWtpc2Vpa29ra2FcIDsKK+etieW3rue0muaVsCA8IHRvdXNha3l1dXN1dVwgOwor5bm05pyr6L+EIDwgbmVubWF0c3VtYWRlXCA7CivluKvnr4TlrabmoKEgPCBzaGloYW5nYWtrb3VcIDsKK+e1jOa4iOekvuS8miA8IGtlaXphaXNoYWthaVwgOwor5pS56Imv5Li7576pIDwga2FpcnlvdXNodWdpXCA7CivntYzmuIjliLboo4EgPCBrZWl6YWlzZWlzYWlcIDsKK+S4u+aIpuaKleaJiyA8IHNodXNlbnRvdXNodVwgOwor5aOy5pil5a6/IDwgYmFpc2h1bicneWFkb1wgOwor6YGK5pKD6ZqK5ZOhIDwgeXV1Z2VraXRhaWluXCA7CivkuIDmmYLluLDkvJEgPCBpY2hpamlraWt5dXVcIDsKK+izqueCueezuyA8IHNoaXRzdXRlbmtlaVwgOwor5Y+X55uK6Ki85Yi4IDwganVla2lzaG91a2VuXCA7CivlvqHkvL3oqbEgPCBvdG9naWJhbmFzaGlcIDsKK+aLmemAn+S4u+e+qSA8IHNlc3Nva3VzaHVnaVwgOwor5pyq6ZaL5ouT5ZywIDwgbWlrYWl0YWt1Y2hpXCA7CivlhajmqKnlhazkvb8gPCB6ZW5rZW5rb3VzaGlcIDsKK+e1seWItue1jOa4iCA8IHRvdXNlaWtlaXphaVwgOwor55Sw5ZyS6aKo5pmvIDwgZGVuJydlbmZ1dWtlaVwgOwor5peF6KGM5pel56iLIDwgcnlva291bml0dGVpXCA7Civmk43mpa3njocgPCBzb3VneW91cml0c3VcIDsKK+eEoemHj+Wkp+aVsCA8IG11cnlvdWRhaXN1dVwgOwor5Ymy5byV5q2p5ZCIIDwgd2FyaWJpa2lidWFpXCA7Civlj43moLjpgYvli5UgPCBoYW5rYWt1dW5kb3VcIDsKK+aeleWxj+miqCA8IG1ha3VyYWJ5b3VidVwgOwor6KGA5ray5a2mIDwga2V0c3Vla2lnYWt1XCA7CivpppnmuK/ov5TpgoQgPCBob25rb25oZW5rYW5cIDsKK+S8gealreWQiOS9tSA8IGtpZ3lvdWdhcHBlaVwgOwor6Z2e6KGM5bCR5bm0IDwgaGlrb3VzaG91bmVuXCA7Civln7rnnaPmlZkgPCBraXJpc3V0b2t5b3VcIDsKK+mHjuWkluaSruW9sSA8IHlhZ2Fpc2F0c3VlaVwgOwor6byg6Iqx54GrIDwgbmV6dW1paGFuYWJpXCA7CivljYPmiYvoprPpn7MgPCBzZW5qdWthbicnbm9uXCA7Civnsr7npZ7kuLvnvqkgPCBzZWlzaGluc2h1Z2lcIDsKK+e1guWni+S4gOiyqyA8IHNodXVzaGlpa2thblwgOwor5o2V54mp5bizIDwgdG9yaW1vbm9jaG91XCA7CivnnIzmsJHkvJrppKggPCBrZW5taW5rYWlrYW5cIDsKK+aVmeadoeS4u+e+qSA8IGt5b3Vqb3VzaHVnaVwgOwor5pu055Sf5Lya56S+IDwga291c2VpZ2Fpc2hhXCA7CivnuYrntq3lt6Xmpa0gPCBzZW4nJ2lrb3VneW91XCA7CivkurrplpPlkIzlo6sgPCBuaW5nZW5kb3VzaGlcIDsKK+iyr+iUteWupCA8IGNob3pvdXNoaXRzdVwgOwor5YuY5ZCI6LK/5piTIDwga2FuZ291Ym91ZWtpXCA7Civnmb7lrrbkuonps7QgPCBoeWFra2Fzb3VtZWlcIDsKK+S4lueVjOaUv+etliA8IHNla2Fpc2Vpc2FrdVwgOwor5byU5ZWP5a6iIDwgY2hvdW1vbmt5YWt1XCA7CivlrrblsYvlj7DluLMgPCBrYW9rdWRhaWNob3VcIDsKK+adsea1t+mBk+e3miA8IHRvdWthaWRvdXNlblwgOwor6YG65aSx54mpIDwgaXNoaXRzdWJ1dHN1XCA7Civli5XohIjooYAgPCBkb3VteWFra2V0c3VcIDsKK+mBjuW9k+ertuS6iSA8IGthdG91a3lvdXNvdVwgOwor5ray5L2T56qS57SgIDwgZWtpdGFpY2hpc3NvXCA7CivlubPlkozljZTlrpogPCBoZWl3YWt5b3V0ZWlcIDsKK+eEoee3mumbu+S/oSA8IG11c2VuZGVuc2hpblwgOwor5YWl5aC05byPIDwgbnl1dWpvdXNoaWtpXCA7CivntLDog57os6ogPCBzYWlib3VzaGl0c3VcIDsKK+WwgumWgOeUqOiqniA8IHNlbm1vbicneW91Z29cIDsKK+S6uumAoOiCpeaWmSA8IGppbnpvdWhpcnlvdVwgOwor5aSn56Cy5LiJ6ZaAIDwgdGFpaG91c2FubW9uXCA7Civlrp/pqJPoo4Xnva4gPCBqaWtrZW5zb3VjaGlcIDsKK+ihgOa2suWeiyA8IGtldHN1ZWtpZ2F0YVwgOwor5Lit5aSu5Yq05YONIDwgY2h1dW91cm91ZG91XCA7CivlhoXnt5rnlarlj7cgPCBuYWlzZW5iYW5nb3VcIDsKK+S8neiomOS9nOiAhSA8IGRlbmtpc2FrdXNoYVwgOwor5Lq65rCR5YWs56S+IDwgamlubWlua291c2hhXCA7CivpgKPntaHliIfnrKYgPCByZW5yYWt1a2lwcHVcIDsKK+aomeitmOeBryA8IGh5b3VzaGlraXRvdVwgOwor57WM5Za25ZCI55CG5YyWIDwga2VpZWlnb3VyaWthXCA7CivlhbHlkIzlopPlnLAgPCBreW91ZG91Ym9jaGlcIDsKK+Wun+aFi+iqv+afuyA8IGppdHRhaWNob3VzYVwgOwor57eP5YuZ6ZW35a6YIDwgc291bXVjaG91a2FuXCA7Civmt7fkubHnirbmhYsgPCBrb25yYW5qb3V0YWlcIDsKK+WLoui7iiA8IGhhenVtaWd1cnVtYVwgOwor5ZOA5ZOJIDwga2FuYXNoaWlrYW5hXCA7CivljIXmi6znmoQgPCBob3VrYXRzdXRla2lcIDsKK+WKh+S4reWKhyA8IGdla2ljaHV1Z2VraVwgOwor5a625peP5oSP6K2YIDwga2F6b2t1aXNoaWtpXCA7CivlpJbmn5TlhoXliZsgPCBnYWlqdXVuYWlnb3VcIDsKK+ioquWVj+iyqeWjsiA8IGhvdW1vbmhhbmJhaVwgOwor5a6f55So55qEIDwgaml0c3V5b3V0ZWtpXCA7Civkvo3lhavpqI4gPCBzYW11cmFpaGFra2lcIDsKK+S4remWk+iJsiA8IGNodXVrYW5zaG9rdVwgOwor5o6S5pal6YGL5YuVIDwgaGFpc2VraXVuZG91XCA7CivplovohbnooZMgPCBrYWlmdWt1anV0c3VcIDsKK+WOn+WtkOW8vumgrSA8IGdlbnNoaWRhbnRvdVwgOwor55u05pKD5by+IDwgY2hva3VnZWtpZGFuXCA7Civllrbmpa3moYjlhoUgPCBlaWd5b3VhbicnbmFpXCA7CivlpKnmlofoiKrms5UgPCB0ZW5tb25rb3Vob3VcIDsKK+mdnuWun+mam+eahCA8IGhpamlzc2FpdGVraVwgOwor6KOP5pu46K2y5rihIDwgdXJhZ2FraWpvdXRvXCA7Civlia/nlKPniakgPCBmdWt1c2FuYnV0c3VcIDsKK+WRveS4reeOhyA8IG1laWNodXVyaXRzdVwgOwor6KGA5Y+L55eFIDwga2V0c3V5dXVieW91XCA7CivplqLkv4Lmm7jpoZ4gPCBrYW5rZWlzaG9ydWlcIDsKK+WFjeioseeahuS8nSA8IG1lbmt5b2thaWRlblwgOwor5Zue6Lui56u25oqAIDwga2FpdGVua3lvdWdpXCA7CivntYzmuIjmsLTln58gPCBrZWl6YWlzdWlpa2lcIDsKK+eEoeassuaBrOa3oSA8IG11eW9rdXRlbnRhblwgOwor6Ieq5oiR5a6f54++IDwgamlnYWppdHN1Z2VuXCA7Civln7fooYznjLbkuoggPCBzaGlra291eXV1eW9cIDsKK+iejemAmuaJi+W9oiA8IHl1dXp1dXRlZ2F0YVwgOwor5Y6a55Sf5bm06YeRIDwga291c2VpbmVua2luXCA7CivpmaLlhoXmhJ/mn5MgPCBpbicnbmFpa2Fuc2VuXCA7CivmgqrmgKfmsLTohasgPCBha3VzZWlzdWlzaHVcIDsKK+Wbo+WNgemDjuS4iCA8IGRhbmp1dXJvdWpvdVwgOwor57K+55m9546HIDwgc2VpaGFrdXJpdHN1XCA7Civku6Xlv4PkvJ3lv4MgPCBpc2hpbmRlbnNoaW5cIDsKK+S4gOWtl+WNg+mHkSA8IGljaGlqaXNlbmtpblwgOwor5qWt57i+5oKq5YyWIDwgZ3lvdXNla2lha2thXCA7CivlhbXlmajmi6HmlaMgPCBoZWlraWtha3VzYW5cIDsKK+S6pOWPi+mWouS/giA8IGtvdXl1dWthbmtlaVwgOwor5Zu96Zqb5pS/5rK7IDwga29rdXNhaXNlaWppXCA7CivlnYfos6rmgKcgPCBraW5zaGl0c3VzZWlcIDsKK+abuOmdouWvqeeQhiA8IHNob21lbnNoaW5yaVwgOwor5Lq66ZaT56S+5LyaIDwgbmluZ2Vuc2hha2FpXCA7Civou43lm73kuLvnvqkgPCBndW5rb2t1c2h1Z2lcIDsKK+awtOS4iuertuaKgCA8IHN1aWpvdWt5b3VnaVwgOwor5rKz5Y6f5Lme6aOfIDwga2F3YXJha29qaWtpXCA7CivmiLjnsY3kv4IgPCBrb3Nla2lnYWthcmlcIDsKK+S6jOmHjeaSruW9sSA8IG5panV1c2F0c3VlaVwgOwor57W25a++6KmV5L6hIDwgemV0dGFpaHlvdWthXCA7CivlnKjnsbPpgqbkurogPCB6YWliZWlob3VqaW5cIDsKK+Wbm+aciOmmrOm5vyA8IHNoaWdhdHN1YmFrYVwgOwor5paw6YCy5rCX6YutIDwgc2hpbnNoaW5raWVpXCA7CivmiYDlvpfmjqfpmaQgPCBzaG90b2t1a291am9cIDsKK+mWouS/guS8muekviA8IGthbmtlaWdhaXNoYVwgOwor6Ieq5L+h5rqA5rqAIDwgamlzaGlubWFubWFuXCA7Civml6XmnKzlrabogIUgPCBuaWhvbmdha3VzaGFcIDsKK+aOpeWuoualrSA8IHNla2t5YWt1Z3lvdVwgOwor5pil5pel5aSn56S+IDwga2FzdWdhdGFpc2hhXCA7CivmsLTnm4MgPCBtaXp1c2FrYXp1a2lcIDsKK+aWh+aYjuekvuS8miA8IGJ1bm1laXNoYWthaVwgOwor6JOE6Ia/55eHIDwgY2hpa3Vub3VzaG91XCA7CivlkIzkurrpm5HoqowgPCBkb3VqaW56YXNzaGlcIDsKK+iKseW9ouagqiA8IGhhbmFnYXRha2FidVwgOwor5Y+45rOV6KOB5YikIDwgc2hpaG91c2FpYmFuXCA7CivkurrkvZPlrp/pqJMgPCBqaW50YWlqaWtrZW5cIDsKK+S6oeWRveaUv+aoqSA8IGJvdW1laXNlaWtlblwgOwor5oyv5Ye65Lq6IDwgZnVyaWRhc2hpbmluXCA7Civku7LplpPlkIzlo6sgPCBuYWthbWFkb3VzaGlcIDsKK+e1jOWWtuW3peWtpiA8IGtlaWVpa291Z2FrdVwgOwor5byB6K235L6d6aC85Lq6IDwgYmVuZ29pcmFpbmluXCA7Civos5vlkKbkuKHoq5YgPCBzYW5waXJ5b3Vyb25cIDsKK+S4jeazlembhuS8miA8IGZ1aG91c2h1dWthaVwgOwor55y86auY5omL5L2OIDwgZ2Fua291c2h1dGVpXCA7CivnpoHmrLLnmoQgPCBraW4nJ3lva3V0ZWtpXCA7Civoh6rli5XlsI/pioMgPCBqaWRvdXNob3VqdXVcIDsKK+WcsOWfn+ekvuS8miA8IGNoaWlraXNoYWthaVwgOwor5Lqk5rWB5Lq65LqLIDwga291cnl1dWppbmppXCA7CivnibnmrorlirnmnpwgPCB0b2t1c2h1a291a2FcIDsKK+S4gOWIhuWIpSA8IGhpdG9mdW5iZXRzdVwgOwor6Ieq5a625Lit5q+SIDwgamlrYWNodXVkb2t1XCA7CivkurrmsJfnlarntYQgPCBuaW5raWJhbmd1bWlcIDsKK+aVteacrOS4u+e+qSA8IHRla2lob25zaHVnaVwgOwor5Y+j5YaF5oCn5LqkIDwga291bmFpc2Vpa291XCA7CivohLPou5/ljJbnl4cgPCBub3VuYW5rYXNob3VcIDsKK+WNiueLrOeriyA8IGhhbmRva3VyaXRzdVwgOwor54++5Zyw5rOV5Lq6IDwgZ2VuY2hpaG91amluXCA7Civoh6rli5Xou4rms6UgPCBqaWRvdXNoYWRvcm9cIDsKK+S4gOaZguWBnOatoiA8IGljaGlqaXRlaXNoaVwgOwor5a2m5ZyS57Sb5LqJIDwgZ2FrdWVuZnVuc291XCA7CivmnIDpq5jlrablupwgPCBzYWlrb3VnYWt1ZnVcIDsKK+S/nemZuuWlkee0hCA8IGhva2Vua2VpeWFrdVwgOwor5aWz5oCn5beu5YilIDwgam9zZWlzYWJldHN1XCA7CivlhZDnq6Xnpo/npYkgPCBqaWRvdWZ1a3VzaGlcIDsKK+Wft+WLmeS4rSA8IHNoaXRzdW11Y2h1dVwgOwor6Kmm6aiT5ZWP6aGMIDwgc2hpa2VubW9uZGFpXCA7CivmvLjpgLLkuLvnvqkgPCB6ZW5zaGluc2h1Z2lcIDsKK+mfs+S/oeS4jemAmiA8IG9uc2hpbmZ1dHN1dVwgOwor5YuH5b6A6YKB6YCyIDwgeXV1b3VtYWlzaGluXCA7CivpnZnmraLnirbmhYsgPCBzZWlzaGlqb3V0YWlcIDsKK+WMl+aUr+S6i+WkiSA8IGhva3VzaGlqaWhlblwgOwor5a+45YCf6KmQ5qy6IDwgc3Vuc2hha3VzYWdpXCA7CivmjIflkI3pgJroqbEgPCBzaGltZWl0c3V1d2FcIDsKK+iLpuW/g+aDqOaGuiA8IGt1c2hpbnNhbnRhblwgOwor54m95by35LuY5LyaIDwga2Vua3lvdWZ1a2FpXCA7Civlr5LlhrfliY3nt5ogPCBrYW5yZWl6ZW5zZW5cIDsKK+WIqeS7luS4u+e+qeiAhSA8IHJpdGFzaHVnaXNoYVwgOwor6Kaq5pel5rS+IDwgc2hpbicnbmljaGloYVwgOwor6YCf5bqm5Yi26ZmQIDwgc29rdWRvc2VpZ2VuXCA7Civlm5vpg6jlkIjllLEgPCBzaGlidWdhc3Nob3VcIDsKK+mbu+mbu+WFrOekviA8IGRlbmRlbmtvdXNoYVwgOwor56aP5bO255yMIDwgZnVrdXNoaW1ha2VuXCA7Civoqr/oibLmnb8gPCBjaG91c2hva3ViYW5cIDsKK+WEquWLneWAmeijnCA8IHl1dXNob3Vrb3Vob1wgOwor5Y+L5aW96Zai5L+CIDwgeXV1a291a2Fua2VpXCA7CivmlZHmj7Tnianos4cgPCBreXV1ZW5idXNzaGlcIDsKK+WJquWumumLjyA8IHNlbnRlaWJhc2FtaVwgOwor57eR6buE6ImyIDwgcnlva3VvdXNob2t1XCA7CivljIXntJkgPCB0c3V0c3VtaWdhbWlcIDsKK+S4i+Wxi+aVtyA8IHNoaW1veWFzaGlraVwgOwor56We56S+5LuP6ZajIDwgamluamFidWtrYWt1XCA7Civou4rnlKjlk4EgPCBrdXJ1bWF5b3VoaW5cIDsKK+iAkOS5heWKmyA8IHRhaWt5dXVyeW9rdVwgOwor5rC05bmz5oCd6ICDIDwgc3VpaGVpc2hpa291XCA7Civpn7PmhJ/mlZnogrIgPCBvbmthbmt5b3Vpa3VcIDsKK+WvneWPsOiZqyA8IHNoaW5kYWltdXNoaVwgOwor5Zec6JmQ55qEIDwgc2hpZ3lha3V0ZWtpXCA7Civmu57ntI3lh6bliIYgPCB0YWlub3VzaG9idW5cIDsKK+S4ree2meWxgCA8IGNodXVrZWlreW9rdVwgOwor5YWx5ZCM57WM5Za2IDwga3lvdWRvdWtlaWVpXCA7CivplbfluoPoiIwgPCBjaG91a291emV0c3VcIDsKK+S6jOWFreaZguS4rSA8IG5pcm9rdWppY2h1dVwgOwor5LiA5pmC6LOc6YeRIDwgaWNoaWppc2hpa2luXCA7Civoh6rnhLbltIfmi50gPCBzaGl6ZW5zdXVoYWlcIDsKK+WvqeitsOacquS6hiA8IHNoaW5naW1pcnlvdVwgOwor6aSK5a2Q57iB57WEIDwgeW91c2hpZW5ndW1pXCA7Civml6XmsqHlvowgPCBuaWNoaWJvdHN1Z29cIDsKK+awj+aXj+WItuW6piA8IHNoaXpva3VzZWlkb1wgOwor5YuV6ISI55ikIDwgZG91bXlha3VyeXV1XCA7CivkuIDovKrmjL8gPCBpY2hpcmluemFzaGlcIDsKK+i7jemZo+WMu+WtpiA8IGd1bmppbicnaWdha3VcIDsKK+iSuOeZuueavyA8IGpvdWhhdHN1emFyYVwgOwor5q2j5Zub6Z2i5L2TIDwgc2Vpc2hpbWVudGFpXCA7CivlrprmoLzoq4vosqAgPCB0ZWlrYWt1dWtlb2lcIDsKK+izg+WAn+aoqSA8IGNoaW5zaGFrdWtlblwgOwor5Y245ZWP5bGLIDwgb3Jvc2hpZG9uJyd5YVwgOwor6Ziy5rm/5YmkIDwgYm91c2hpdHN1emFpXCA7Civlj47nqavpq5ggPCBzaHV1a2FrdWRha2FcIDsKK+WGjeWHuueZuiA8IHNhaXNodXBwYXRzdVwgOwor5b6F6YGH5pS55ZaEIDwgdGFpZ3V1a2FpemVuXCA7CivnuYrntq3lhYnlraYgPCBzZW4nJ2lrb3VnYWt1XCA7Civpu5LkurrpnIrmrYwgPCBrb2t1amlucmVpa2FcIDsKK+WRqOalteaYnyA8IHNodXVreW9rdXNlaVwgOwor6Zu26KGM5YiXIDwgcmVpZ3lvdXJldHN1XCA7CivnibnmrormqZ/og70gPCB0b2t1c2h1a2lub3VcIDsKK+e1jOi3r+epjeWIhiA8IGtlaXJvc2VraWJ1blwgOwor5Zu95Za26L6y5aC0IDwga29rdWVpbm91am91XCA7Civlm73nsovkuLvnvqkgPCBrb2t1c3Vpc2h1Z2lcIDsKK+WHuueZuueCuSA8IHNodXBwYXRzdXRlblwgOwor55Sy54q26IW654KOIDwga291am91c2VuJydlblwgOwor5ZCI5qC8546HIDwgZ291a2FrdXJpdHN1XCA7Civos4fnlKPlkIjoqIggPCBzaGlzYW5nb3VrZWlcIDsKK+mvqOmjsummrOmjnyA8IGdlaWluYmFzaG9rdVwgOwor5b+D6IeT55m65L2cIDwgc2hpbnpvdWhvc3NhXCA7CivmlrDkurrmrYzmiYsgPCBzaGluamlua2FzaHVcIDsKK+i8uOWFpeaJi+W9oiA8IHl1bnl1dXRlZ2F0YVwgOwor5Zyn552A56uv5a2QIDwgYXRzdWdpdGFuc2hpXCA7CivmnKrmlLnlv4PogIUgPCBtaWthaXNoaW5zaGFcIDsKK+eEoeWKueaKleelqCA8IG11a291dG91aHlvdVwgOwor6KGM6YCy5puyIDwga291c2hpbmt5b2t1XCA7Civpm6PmlLvkuI3okL0gPCBuYW5rb3VmdXJha3VcIDsKK+S4gOW/g+WQjOS9kyA8IGlzc2hpbmRvdXRhaVwgOwor5a6l5ZKM5pS/562WIDwgeXV1d2FzZWlzYWt1XCA7CivpmZDnlYzlirnnlKggPCBnZW5rYWlrb3V5b3VcIDsKK+WNgeS4h+WEhOWcnyA8IGp1dW1hbicnb2t1ZG9cIDsKK+WkieaFi+W/g+eQhiA8IGhlbnRhaXNoaW5yaVwgOwor55m954ax54GvIDwgaGFrdW5ldHN1dG91XCA7Civmi43lrZDoqJjlj7cgPCBoeW91c2hpa2lnb3VcIDsKK+WFrOS8muWVj+etlCA8IGtvdWthaW1vbmRvdVwgOwor6ICD5Y+k5a2m6ICFIDwga291a29nYWt1c2hhXCA7Civpo5/mlpnlk4EgPCBzaG9rdXJ5b3VoaW5cIDsKK+mHjueQg+mBuOaJiyA8IHlha3l1dXNlbnNodVwgOwor5pON6LuK5L+CIDwgc291c2hhZ2FrYXJpXCA7CivlpKLpgYrnl4XogIUgPCBtdXl1dWJ5b3VzaGFcIDsKK+imgeaJgOimgeaJgCA8IHlvdXNob3lvdXNob1wgOwor5rm/6Zu75rGgIDwgc2hpdHN1ZGVuY2hpXCA7CivoprPmjozooZMgPCBrYW5zaG91anV0c3VcIDsKK+S9v+W+kue2meaJvyA8IHNoaXRva2Vpc2hvdVwgOwor5Yqx56OB6Zu75rWBIDwgcmVpamlkZW5yeXV1XCA7Civlv5cgPCBrb2tvcm96YXNoaVwgOwor5pS/IDwgbWF0c3VyaWdvdG9cIDsKK+ekvuS8muWItuW6piA8IHNoYWthaXNlaWRvXCA7Civku6PnkIbpoJjkuosgPCBkYWlyaXJ5b3VqaVwgOwor54K55pWw5YiH56ymIDwgdGVuc3V1a2lwcHVcIDsKK+WMluaIkOiCpeaWmSA8IGthc2VpaGlyeW91XCA7CivmnKrmiJDlubTogIUgPCBtaXNlaW5lbnNoYVwgOwor55yf6aqo6aCCIDwgc2hpbmtvdGNob3VcIDsKK+W/heimgeWTgSA8IGhpdHN1eW91aGluXCA7CivnlLvkuJbnmoQgPCBrYWt1c2VpdGVraVwgOwor5LiA5aSp5LiH5LmXIDwgaXR0ZW5iYW5qb3VcIDsKK+eGqOaWl+iiiyA8IG5vc2hpYnVrdXJvXCA7CivmuKzlnLDlraYgPCBzb2t1Y2hpZ2FrdVwgOwor6Kaq5a2Q6Zai5L+CIDwgb3lha29rYW5rZWlcIDsKK+mbgeacqOmRoiA8IGdhbmdpeWFzdXJpXCA7Civlho3libLlvJUgPCBzYWl3YXJpYmlraVwgOwor5oGQ5oCW5pS/5rK7IDwga3lvdWZ1c2VpamlcIDsKK+WlieeMruW8jyA8IGhvdWtlbnNoaWtpXCA7CivomZrmlbDljZjkvY0gPCBreW9zdXV0YW4nJ2lcIDsKK+mBuOaMmeWItuW6piA8IHNlbmt5b3NlaWRvXCA7CivliJ3oqpXnlJ8gPCBoYXRzdXRhbmpvdVwgOwor5LiJ5pys6LazIDwgc2FuYm9uJydhc2hpXCA7CivliKTmlq3lipsgPCBoYW5kYW5yeW9rdVwgOwor5aSn6aGY5oiQ5bCxIDwgZGFpZ2Fuam91anVcIDsKK+WNlOiqv+aApyA8IGt5b3VjaG91c2VpXCA7CivlhobljZPkvJrorbAgPCBlbnRha3VrYWlnaVwgOwor5aSp6YGT5Lm+IDwgdGVudG91Ym9zaGlcIDsKK+Wkp+WuruW+oeaJgCA8IG9vbWl5YWdvc2hvXCA7Civnmb3ml6XlpKIgPCBoYWt1aml0c3VtdVwgOwor5YiG5p6Q6KGoIDwgYnVuc2VraWh5b3VcIDsKK+S4iuS4i+mWouS/giA8IGpvdWdla2Fua2VpXCA7Civmib/oq77mm7ggPCBzaG91ZGFrdXNob1wgOwor5bCR6aOf5a62IDwgc2hvdXNob2t1a2FcIDsKK+S7ruWft+ihjCA8IGthcmlzaGlra291XCA7Civmj6HlipvoqIggPCBha3VyeW9rdWtlaVwgOwor5YWs5Za25LyB5qWtIDwga291ZWlraWd5b3VcIDsKK+mHjea2suWIhumboiA8IGp1dWVraWJ1bnJpXCA7CivkuI3otrPli50gPCBmdXNva3VnYWNoaVwgOwor5a6f6Le155CG5oCnIDwgamlzc2VucmlzZWlcIDsKK+W4r+mLuCA8IG9iaW5va29naXJpXCA7CivlvozpgLLlm70gPCBrb3VzaGlua29rdVwgOwor6KGM5L2P5Z2Q6IelIDwgZ3lvdWp1dXphZ2FcIDsKK+iogOihjOS4gOiHtCA8IGdlbmtvdWl0Y2hpXCA7CivmtJfnnLzolqwgPCBzZW5nYW4nJ3lha3VcIDsKK+W+qee/kuaWhyA8IGZ1a3VzaHV1YnVuXCA7CivluoPlpKfnhKHovrogPCBrb3VkYWltdWhlblwgOwor5YSq5YWI5LqL6aCFIDwgeXV1c2Vuamlrb3VcIDsKK+aQuuW4r+mbu+ipsSA8IGtlaXRhaWRlbndhXCA7CivmraLooYDluK8gPCBzaGlrZXRzdXRhaVwgOwor5LiL5a6/5paZIDwgZ2VzaHVrdXJ5b3VcIDsKK+aZguS7o+mMr+iqpCA8IGppZGFpc2FrdWdvXCA7Civkurrlt6XooZvmmJ8gPCBqaW5rb3VlaXNlaVwgOwor6YeN6YeP57SaIDwganV1cnlvdWt5dXVcIDsKK+e3muW9oumghuW6jyA8IHNlbmtlaWp1bmpvXCA7Civlj6zkvb8gPCBtZXNoaXRzdWthaVwgOwor5YmN6YCy6Lu4IDwgemVuc2hpbmppa3VcIDsKK+mJhOefs+W/gyA8IHRlc3Nla2lzaGluXCA7CivnlJjojLbolJMgPCBhbWFjaGFkenVydVwgOwor5aSW5Lqk5a6Y6KOcIDwgZ2Fpa291a2FuaG9cIDsKK+e9suWQjeW8jyA8IHNob21laXNoaWtpXCA7Civkurrlv4PlnLAgPCBoaXRvZ29rb2NoaVwgOwor5Zua5Lq65pyNIDwgc2h1dWppbmZ1a3VcIDsKK+W+i+WEgOiAhSA8IHJpY2hpZ2ltb25vXCA7Civlipvnn7MgPCBjaGlrYXJhaXNoaVwgOwor5L2P5bGF5omL5b2TIDwganV1a3lvdGVhdGVcIDsKK+mbgeacqOi7iiA8IGdhbmdpZ3VydW1hXCA7CivpgZPot6/mqJnnpLogPCBkb3Vyb2h5b3VqaVwgOwor55m96bygIDwgc2hpcm9uZXp1bWlcIDsKK+S6iOWCmeWwhuagoSA8IHlvYmlzaG91a291XCA7CivmhoLmrJ3nl4cgPCB5dXV1dHN1c2hvdVwgOwor5rCR6ZaT6aOb6KGMIDwgbWlua2FuaGlrb3VcIDsKK+Wun+mok+W8jyA8IGppa2tlbnNoaWtpXCA7CivmsLjlrZDkvZzmqKkgPCBlaWtvc2FrdWtlblwgOwor56S+5Lya6YGL5YuVIDwgc2hha2FpdW5kb3VcIDsKK+enu+ihjOioiOeUuyA8IGlrb3VrZWlrYWt1XCA7Civni4Lkv6HogIUgPCBreW91c2hpbnNoYVwgOwor5o6l6L+R57WM6LevIDwgc2Vra2lua2Vpcm9cIDsKK+S4lueVjOe1jOa4iCA8IHNla2Fpa2VpemFpXCA7Civmta7kuJbojYnlrZAgPCB1a2l5b3pvdXNoaVwgOwor5rCR5peP55qEIDwgbWluem9rdXRla2lcIDsKK+WumuaVsOaYr+atoyA8IHRlaXN1dXplc2VpXCA7CivnmbroqIDogIUgPCBoYXRzdWdlbnNoYVwgOwor5Yqb55ikIDwgY2hpa2FyYWtvYnVcIDsKK+WNmOe4puWIlyA8IHRhbmp1dXJldHN1XCA7Civlronkv53mnaHntIQgPCBhbnBvam91eWFrdVwgOwor6LKp5aOy5YCk5q61IDwgaGFuYmFpbmVkYW5cIDsKK+WfuuW6leani+mAoCA8IGtpdGVpa291em91XCA7Civlv4XpoIjmnaHku7YgPCBoaXNzdWpvdWtlblwgOwor5LiJ5Lq657WEIDwgc2FuJyduaW5ndW1pXCA7Civpu5LmlpHnl4UgPCBrb2t1aGFuYnlvdVwgOwor5Yy66KOB5Yik5omAIDwga3VzYWliYW5zaG9cIDsKK+S6iOihjOa8lOe/kiA8IHlva291ZW5zaHV1XCA7CivpgbjmjJnpgYvli5UgPCBzZW5reW91bmRvdVwgOwor5Zu96Zqb6KaP5qihIDwga29rdXNhaWtpYm9cIDsKK+aCquaCquaIryA8IHdhcnVpdGF6dXJhXCA7CivpgYvou6LlhY3oqLEgPCB1bnRlbm1lbmt5b1wgOwor57ea5b2i6KuW55CGIDwgc2Vua2Vpcm9ucmlcIDsKK+Wun+eUqOWTgSA8IGppdHN1eW91aGluXCA7CivlpKfohb/pqqggPCBkYWl0YWlrb3RzdVwgOwor5bm06LOA6YO15L6/IDwgbmVuZ2F5dXViaW5cIDsKK+a4qemiqOaaluaIvyA8IG9ucHV1ZGFuYm91XCA7CivlhoXpg6jmp4vpgKAgPCBuYWlidWtvdXpvdVwgOwor5rC06Jyc5qGDIDwgc3VpbWl0c3V0b3VcIDsKK+S4jeWumuWei+ipqSA8IGZ1dGVpa2Vpc2hpXCA7CivmvILmtYHoiLkgPCBoeW91cnl1dXNlblwgOwor6buE6YeR5bSH5oudIDwgb3Vnb25zdXVoYWlcIDsKK+S4luipseWls+aIvyA8IHNld2FueW91Ym91XCA7CivniqzlhJLlrabmtL4gPCBrZW5qdWdha3VoYVwgOwor6aC45YuV6ISIIDwga2VpZG91bXlha3VcIDsKK+S4gOWTgeaWmeeQhiA8IGlwcGlucnlvdXJpXCA7CivkupznoavphbjloakgPCBhcnl1dXNhbicnZW5cIDsKK+eUn+WFteazlSA8IG5hbWFieW91aG91XCA7Civng4/nvr3oibIgPCBrYXJhc3ViYWlyb1wgOwor5byf5byf5a2QIDwgb3RvdXRvZGVzaGlcIDsKK+WKh+aWh+WtpiA8IGdla2lidW5nYWt1XCA7CivliqDolqzpo68gPCBrYXlha3VtZXNoaVwgOwor5YyX5Y2K55CDIDwga2l0YWhhbmt5dXVcIDsKK+mbhuS4ree3miA8IHNodXVjaHV1c2VuXCA7CivmnInlo7DlrZDpn7MgPCB5dXVzZWlzaGlpblwgOwor5b6X5qWt5aOrIDwgdG9rdWd5b3VzaGlcIDsKK+eahuWFteWItuW6piA8IGthaWhlaXNlaWRvXCA7CivliY3pgLLop5IgPCB6ZW5zaGlua2FrdVwgOwor5pyq57WM6aiT6ICFIDwgbWlrZWlrZW5zaGFcIDsKK+mkiuauluaxoCA8IHlvdXNob2t1Y2hpXCA7Civll5zomZDmgKcgPCBzaGlneWFrdXNlaVwgOwor5bCK55qH546L5pSY5aS3IDwgc29uJydub3Vqb3VpXCA7CivkuIrmhI/kuIvpgZQgPCBqb3Vpa2F0YXRzdVwgOwor6LuK6ZaT6Led6ZuiIDwgc2hha2Fua3lvcmlcIDsKK+awt+ays+aZguS7oyA8IGh5b3VnYWppZGFpXCA7CivkuInkurrnp7AgPCBzYW4nJ25pbnNob3VcIDsKK+aDheWgseeQhuirliA8IGpvdWhvdXJpcm9uXCA7CivlvqHlpJrlv5nkuK0gPCBnb3RhYm91Y2h1dVwgOwor5Lit57Sa5ZOBIDwgY2h1dWt5dXVoaW5cIDsKK+a8gua1geiAhSA8IGh5b3VyeXV1c2hhXCA7CivmhJvmn5PmmI7njosgPCBhaXplbm15b3VvdVwgOwor6KqY5oOR54mpIDwgeXV1d2FrdW1vbm9cIDsKK+mgreiTi+mqqCA8IHRvdWdhaWtvdHN1XCA7CivnmbrmmI7lk4EgPCBoYXRzdW1laWhpblwgOwor5bmz6Z2i5Lqk5beuIDwgaGVpbWVua291c2FcIDsKK+WkseagvOiAhSA8IHNoaWtrYWt1c2hhXCA7CivmiJDnuL7ooaggPCBzZWlzZWtpaHlvdVwgOwor57WM6aiT5Li7576pIDwga2Vpa2Vuc2h1Z2lcIDsKK+W8geitt+Wjq+S8miA8IGJlbmdvc2hpa2FpXCA7Civms6jmloflhYggPCBjaHV1bW9uc2FraVwgOwor57SU5oOF5Y+v5oaQIDwganVuam91a2FyZW5cIDsKK+i8ieiyqOWQg+awtCA8IHNhaWtha2lzc3VpXCA7Civml6Lmsbrlm5ogPCBraWtldHN1c2h1dVwgOwor5Y2K5r+B6Z+z56ymIDwgaGFuZGFrdW9uZnVcIDsKK+mWqOengOeUu+WutiA8IGtlaXNodXVnYWthXCA7CivmkYLli5Xoq5YgPCBzZXRzdWRvdXJvblwgOwor5LyP5rWB5rC0IDwgZnVrdXJ5dXVzdWlcIDsKK+eLrOijgeeahCA8IGRva3VzYWl0ZWtpXCA7Civpq5joqr/lrZAgPCB0YWthY2hvdXNoaVwgOwor56uL6ISa5ZywIDwgcmlra3lha3VjaGlcIDsKK+S4ieWNiuimj+euoSA8IHNhbmhhbmtpa2FuXCA7CivlsIHlu7rmmYLku6MgPCBob3VrZW5qaWRhaVwgOwor6LaK5Yas6LOH6YeRIDwgZXR0b3VzaGlraW5cIDsKK+WGjeani+eviSA8IHNhaWtvdWNoaWt1XCA7CivmiYDluK/pgZPlhbcgPCBzaG90YWlkb3VndVwgOwor5YKy5bK454Sh56S8IDwgZ291Z2FuYnVyZWlcIDsKK+ekvuS8muS/nemZuiA8IHNoYWthaWhva2VuXCA7Civmq5PlpKrpvJMgPCB5YWd1cmFkYWlrb1wgOwor5q2i6KGA5YmkIDwgc2hpa2V0c3V6YWlcIDsKK+i8g+WEquS9jeirliA8IGtha3V5dXVpcm9uXCA7CivkuJboq5boqr/mn7sgPCB5b3JvbmNob3VzYVwgOwor5Yas5pyf5LyR5pqHIDwgdG91a2lreXV1a2FcIDsKK+S4oeaWueWFsSA8IHJ5b3Vob3V0b21vXCA7CivkuIrpg6jmp4vpgKAgPCBqb3VidWtvdXpvdVwgOwor5p2+6JGJ5p2WIDwgbWF0c3ViYWR6dWVcIDsKK+ixoeW9ouaWh+WtlyA8IHNob3VrZWltb2ppXCA7CivlipvmsLQgPCBjaGlrYXJhbWl6dVwgOwor5rKW56mN57WxIDwgY2h1dXNla2l0b3VcIDsKK+S7leS6i+eusSA8IHNoaWdvdG9iYWtvXCA7CivmsLfphovphbggPCBoeW91c2FrdXNhblwgOwor6L6y5pys5Li7576pIDwgbm91aG9uc2h1Z2lcIDsKK+abuOexjeWVhiA8IHNob3Nla2lzaG91XCA7CivkuIDliIfooYbnlJ8gPCBpc3NhaXNodWpvdVwgOwor5pen5oWL5L6d54S2IDwga3l1dXRhaWl6ZW5cIDsKK+aVtOeQhueVquWPtyA8IHNlaXJpYmFuZ291XCA7Civku67ntrTmnKwgPCBrYXJpdG9qaWhvblwgOwor55m66Zu75omAIDwgaGF0c3VkZW5zaG9cIDsKK+W9k+W6p+izh+eUoyA8IHRvdXphc2hpc2FuXCA7Civlrpjog73nmoQgPCBrYW4nJ25vdXRla2lcIDsKK+aui+WTgeaVtOeQhiA8IHphbnBpbnNlaXJpXCA7CivmnKvmoqLnmoQgPCBtYXNzaG91dGVraVwgOwor5Lit6ZaT5Zu9IDwgY2h1dWthbmtva3VcIDsKK+Wuh+WumemAn+W6piA8IHVjaHV1c29rdWRvXCA7CivmgJ3ntKLnmoQgPCBzaGlzYWt1dGVraVwgOwor5Y2X5Y+jIDwgbWluYW1pZ3VjaGlcIDsKK+WKoOawtOWIhuinoyA8IGthc3VpYnVua2FpXCA7Civlh7rouqvmoKEgPCBzaHVzc2hpbmtvdVwgOwor54Gw6Z2S6ImyIDwgaGFpc2Vpc2hva3VcIDsKK+iIqua1t+ihkyA8IGtvdWthaWp1dHN1XCA7CivlsI/mnbHkuqwgPCBzaG91dG91a3lvdVwgOwor5a6j5Lyd5L6h5YCkIDwgc2VuZGVua2FjaGlcIDsKK+W5tOWto+WlieWFrCA8IG5lbmtpYm91a291XCA7CivljYPkurrlipsgPCBzZW4nJ25pbnJpa2lcIDsKK+S6uuW3peiKnSA8IGppbmtvdXNoaWJhXCA7Civou73ph4/ntJogPCBrZWlyeW91a3l1dVwgOwor5Yqb5qWtIDwgY2hpa2FyYXdhemFcIDsKK+iyqOW5o+e1jOa4iCA8IGthaGVpa2VpemFpXCA7CivnhKHmnJ/mh7LlvbkgPCBtdWtpY2hvdWVraVwgOwor5ouY5p2f5ZynIDwga291c29rdWF0c3VcIDsKK+aIpumXmOWKmyA8IHNlbnRvdXJ5b2t1XCA7CivluILloLTljLrliIYgPCBzaGlqb3VrdWJ1blwgOwor55CD6Z2i6Y+hIDwga3l1dW1lbmt5b3VcIDsKK+WIneacn+ioreWumiA8IHNob2tpc2V0dGVpXCA7CivkurrpgKDnuYrntq0gPCBqaW56b3VzZW4nJ2lcIDsKK+aZrumAmumgkOmHkSA8IGZ1dHN1dXlva2luXCA7CivkvY7liKnos4fph5EgPCB0ZWlyaXNoaWtpblwgOwor5Lq65b2i5YqHIDwgbmluZ3lvdWdla2lcIDsKK+eEoemqqOiAhSA8IGJ1a290c3Vtb25vXCA7CivnnJ/nj6DntLDlt6UgPCBzaGluanV6YWlrdVwgOwor5Li755+l5Li7576pIDwgc2h1Y2hpc2h1Z2lcIDsKK+mAhuedqyA8IHNha2FtYXRzdWdlXCA7CivnlLrlpYnooYwgPCBtYWNoaWJ1Z3lvdVwgOwor56m66Ki85paHIDwga2FyYXNob3Vtb25cIDsKK+S6jOmgheS/guaVsCA8IG5pa291a2Vpc3V1XCA7CivntKDmgKfmp4vpgKAgPCBzb3NlaWtvdXpvdVwgOwor5oSb5Zu95Li7576pIDwgYWlrb2t1c2h1Z2lcIDsKK+aIpumXmOaUr+aPtCA8IHNlbnRvdXNoaWVuXCA7CivkurrlkI3ovp7mm7ggPCBqaW5tZWlqaXNob1wgOwor5YmN6Lyq6aeG5YuVIDwgemVucmlua3Vkb3VcIDsKK+S+oeagvOaTjeS9nCA8IGtha2FrdXNvdXNhXCA7CivmlL7niannt5ogPCBob3VidXRzdXNlblwgOwor5b2i6ICM5LiL5a2mIDwga2VpamlrYWdha3VcIDsKK+S4gOacn+S4gOS8miA8IGljaGlnb2ljaGllXCA7Civoqr/lrZDogIUgPCBjaG91c2hpbW9ub1wgOwor54++5a6f5oSfIDwgZ2Vuaml0c3VrYW5cIDsKK+mwueevgCA8IGthdHN1b2J1c2hpXCA7CivnqY3liIblraYgPCBzZWtpYnVuZ2FrdVwgOwor5Zyf5pyo5bel5LqLIDwgZG9ib2t1a291amlcIDsKK+Wls+WtkOmrmOeUnyA8IGpvc2hpa291c2VpXCA7Civnj77lrp/mgKcgPCBnZW5qaXRzdXNlaVwgOwor6auY6Zu75ZynIDwga291ZGVuJydhdHN1XCA7CivlrabllY/nmoQgPCBnYWt1bW9udGVraVwgOwor546L6YGT5qW95ZyfIDwgb3Vkb3VyYWt1ZG9cIDsKK+aCquaIpuiLpumXmCA8IGFrdXNlbmt1dG91XCA7CivnpZ7ntYzlpJbnp5EgPCBzaGlua2VpZ2VrYVwgOwor5a2m56m255qEIDwgZ2Fra3l1dXRla2lcIDsKK+mdnumWi+ekuuWQiOaEjyA8IGhpa2Fpamlnb3VpXCA7Civlj47nqavnpa0gPCBzaHV1a2FrdXNhaVwgOwor54mp55CG5a2mIDwgYnV0c3VyaWdha3VcIDsKK+S4jeecoOS4jeS8kSA8IGZ1bWluZnVreXV1XCA7CivlnoLnm7Tnt5ogPCBzdWljaG9rdXNlblwgOwor5ZCN6KqJ5pWZ5o6IIDwgbWVpeW9reW91anVcIDsKK+Wbs+abuOmkqOWToSA8IHRvc2hva2FuJydpblwgOwor5q205Y+y5a2mIDwgcmVraXNoaWdha3VcIDsKK+a9pOa7keWJpCA8IGp1bmthdHN1emFpXCA7CivntYTnuZTlraYgPCBzb3NoaWtpZ2FrdVwgOwor6auY5q2M5pS+5ZCfIDwga291a2Fob3VnaW5cIDsKK+eZuumbu+WtkCA8IGhhdHN1ZGVuc2hpXCA7CivkuInlsIrku48gPCBzYW56b25idXRzdVwgOwor5byV5Y+W5Lq6IDwgaGlraXRvcmluaW5cIDsKK+ani+aIkOWNmOS9jSA8IGtvdXNlaXRhbicnaVwgOwor5aSW5Lq66KiY6ICFIDwgZ2Fpamlua2lzaGFcIDsKK+a8guaziuiAhSA8IGh5b3VoYWt1c2hhXCA7CivkvovlpJblh6bnkIYgPCByZWlnYWlzaG9yaVwgOwor5aSr5amm6Iy256KXIDwgbWVvdG9kamF3YW5cIDsKK+ecn+eUsOiZqyA8IHNhbmFkYW11c2hpXCA7Civpl4fllYbkurogPCB5YW1pc2hvdW5pblwgOwor5YWl5ryB5paZIDwgbnl1dWd5b3J5b3VcIDsKK+WFqOmdouism+WSjCA8IHplbm1lbmtvdXdhXCA7CivkuIPlrp3nhLwgPCBzaGlwcG91eWFraVwgOwor6Yu86YmE5p2/IDwga291dGV0c3ViYW5cIDsKK+WEquiJr+agqiA8IHl1dXJ5b3VrYWJ1XCA7CivmnKzmoLznmoQgPCBob25rYWt1dGVraVwgOwor5b6p6K6Q5oimIDwgZnVrdXNodXVzZW5cIDsKK+aatOWKm+WboyA8IGJvdXJ5b2t1ZGFuXCA7CivliJ3oqLrmlpkgPCBzaG9zaGlucnlvdVwgOwor576p5YuZ5pWZ6IKyIDwgZ2ltdWt5b3Vpa3VcIDsKK+WPo+mBlOiAhSA8IGt1Y2hpZGFzc2hhXCA7CivogJDnhrHmgKcgPCB0YWluZXRzdXNlaVwgOwor5aKX6KGA5YmkIDwgem91a2V0c3V6YWlcIDsKK+aCsuims+irluiAhSA8IGhpa2Fucm9uc2hhXCA7CivlgIvkurrmg4XloLEgPCBrb2ppbmpvdWhvdVwgOwor5YyX5YyX5p2xIDwgaG9rdWhva3V0b3VcIDsKK+eZuuiogOaoqSA8IGhhdHN1Z2Vua2VuXCA7CivnlLrmrrXnlZ3mrakgPCBjaG91dGFuc2VidVwgOwor5oCl5oiQ6ZW3IDwga3l1dXNlaWNob3VcIDsKK+S7o+eQhuWkp+S9vyA8IGRhaXJpdGFpc2hpXCA7Civmp4vpgKDkuLvnvqkgPCBrb3V6b3VzaHVnaVwgOwor5Ye66LOH6aGNIDwgc2h1c3NoaWdha3VcIDsKK+WGheWIhuazjCA8IG5haWJ1bnBpdHN1XCA7CivlhZzomasgPCBrYWJ1dG9tdXNoaVwgOwor5YaF57ea6Zu76KmxIDwgbmFpc2VuZGVud2FcIDsKK+WFrOekuuS+oeagvCA8IGtvdWppa2FrYWt1XCA7CivmtrLkvZPphbjntKAgPCBla2l0YWlzYW5zb1wgOwor5Zub5pes56+AIDwgc2hpanVuc2V0c3VcIDsKK+ayg+W6puS4geW5viA8IHlvdWRvY2hpbmtpXCA7CivkuZ3lrpjps6UgPCBreXV1a2FuY2hvdVwgOwor5YiR5LqL6Ki06KifIDwga2Vpamlzb3Nob3VcIDsKK+iAgeS6uuWKmyA8IHJvdWppbnJ5b2t1XCA7CivnqLzlg43kurrlj6MgPCBrYWRvdWppbmtvdVwgOwor6Lu95qmf6Zai6YqDIDwga2Vpa2lrYW5qdXVcIDsKK+apn+WvhuS/neittyA8IGtpbWl0c3Vob2dvXCA7Civlu7rnr4nlo6sgPCBrZW5jaGlrdXNoaVwgOwor5aSq5qW15ouzIDwgdGFpa3lva3VrZW5cIDsKK+eUn+eVque1hCA8IG5hbWFiYW5ndW1pXCA7CivppIrmrpbloLQgPCB5b3VzaG9rdWpvdVwgOwor5LqI5YKZ5Lqk5riJIDwgeW9iaWtvdXNob3VcIDsKK+iZmuiEseaEnyA8IGt5b2RhdHN1a2FuXCA7CivosaHniZnos6ogPCB6b3VnZXNoaXRzdVwgOwor6ZqG6by76KGTIDwgcnl1dWJpanV0c3VcIDsKK+ihqOmdouepjSA8IGh5b3VtZW5zZWtpXCA7CivpgI/oppblm7Pms5UgPCB0b3VzaGl6dWhvdVwgOwor57e057+S6Kmm5ZCIIDwgcmVuc2h1dWppYWlcIDsKK+WKquWKm+izniA8IGRvcnlva3VzaG91XCA7CivljYHkurrkuKYgPCBqdXVuaW4nJ25hbWlcIDsKK+iWrOmRtemgrSA8IHlha2FuJydhdGFtYVwgOwor5Y+v6KaW5YWJ57eaIDwga2FzaGlrb3VzZW5cIDsKK+ethuiomOippumokyA8IGhpa2tpc2hpa2VuXCA7Civlhazlrprnm7jloLQgPCBrb3V0ZWlzb3ViYVwgOwor5L6h5qC86KaP5Yi2IDwga2FrYWt1a2lzZWlcIDsKK+WKoOmHjeW5s+WdhyA8IGthanV1aGVpa2luXCA7Civmraboo4XorablrpggPCBidXNvdWtlaWthblwgOwor5ZWG5aOy562LIDwgc2hvdWJhaXN1amlcIDsKK+awtOWtkOS+m+mkiiA8IG1penVnb2t1eW91XCA7CivmuK/mub7lsYAgPCBrb3V3YW5reW9rdVwgOwor5Y2D5aSJ5LiH5YyWIDwgc2VucGVuYmFua2FcIDsKK+awtOWVhuWjsiA8IG1penVzaG91YmFpXCA7CivpiYTpgZPkvr8gPCB0ZXRzdWRvdWJpblwgOwor5p+75a6a5L6h5qC8IDwgc2F0ZWlrYWtha3VcIDsKK+awkeaXj+WtpiA8IG1pbnpva3VnYWt1XCA7CivmrbTlj7LliocgPCByZWtpc2hpZ2VraVwgOwor5rqd5b2i6Yu8IDwgbWl6b2dhdGFrb3VcIDsKK+aYjuaZsOWkoiA8IG1laXNla2l5dW1lXCA7CivlvaLkvZMgPCBuYXJpa2F0YWNoaVwgOwor5LiL5bGk56S+5LyaIDwga2Fzb3VzaGFrYWlcIDsKK+aWree2mueahCA8IGRhbnpva3V0ZWtpXCA7CivlvI/pg6jnnIEgPCBzaGlraWJ1c2hvdVwgOwor5qW16YGT6ICFIDwgZ29rdWRvdW1vbm9cIDsKK+mWi+agoeW8jyA8IGthaWtvdXNoaWtpXCA7CivmsJHntIToq5YgPCBtaW4nJ3lha3Vyb25cIDsKK+mYsuW+oeeOhyA8IGJvdWd5b3JpdHN1XCA7CivooajpnaLnmoQgPCBoeW91bWVudGVraVwgOwor6KiI5pmC5L+CIDwga2VpamlnYWthcmlcIDsKK+W+jOeZuuWTgSA8IGtvdWhhdHN1aGluXCA7Civoh6rnhLbkuLvnvqkgPCBzaGl6ZW5zaHVnaVwgOwor6Jap5pGp54S8IDwgc2F0c3VtYXlha2lcIDsKK+W6iuafsSA8IHRva29iYXNoaXJhXCA7CivoiIjlkbPmnKzkvY0gPCBreW91bWlob24nJ2lcIDsKK+WHuui6q+WcsCA8IHNodXNzaGluY2hpXCA7CivnhKHkvZPos4fnlKMgPCBtdXRhaXNoaXNhblwgOwor6K236Lqr6KGTIDwgZ29zaGluanV0c3VcIDsKK+e1jOa4iOWwgemOliA8IGtlaXphaWZ1dXNhXCA7Civnq7bkuonnm7jmiYsgPCBreW91c291YWl0ZVwgOwor5Ye65rKhIDwgc2h1dHN1Ym90c3VcIDsKK+S4juWkquipsSA8IHlvdGFiYW5hc2hpXCA7Civlt6bnq68gPCBoaWRhcmloYXNoaVwgOwor5YaN5YWl5a2mIDwgc2Fpbnl1dWdha3VcIDsKK+S6lOi8quWkp+S8miA8IGdvcmludGFpa2FpXCA7CivljZTntITmm7ggPCBreW91eWFrdXNob1wgOwor5pel5pys5LiJ5pmvIDwgbmlob25zYW5rZWlcIDsKK+S4iee+veeDjyA8IHNhbmJhZ2FyYXN1XCA7CivoqKrllY/lrqIgPCBob3Vtb25reWFrdVwgOwor5rK55oCn5aGX5paZIDwgeXVzZWl0b3J5b3VcIDsKK+ayu+mok+iWrCA8IGNoaWtlbicneWFrdVwgOwor5oCn5ZaE6KqsIDwgc2VpemVuc2V0c3VcIDsKK+S7leS6i+afhCA8IHNoaWdvdG9nYXJhXCA7CivlpKfmoLnotrMgPCBkYWlrb24nJ2FzaGlcIDsKK+aUueioguWil+ijnCA8IGthaXRlaXpvdWhvXCA7CivkuIDoiKzmpoLlv7UgPCBpcHBhbmdhaW5lblwgOwor5YWJ54Cs6b6NIDwgbWl0c3VzZXJ5dXVcIDsKK+eLvOiXieiAhSA8IHJvdXpla2ltb25vXCA7Civlv4Pmi43mlbAgPCBzaGlucGFrdXN1dVwgOwor5bCP5LiA5pmC6ZaTIDwga29pY2hpamlrYW5cIDsKK+S4ieiEmuakheWtkCA8IHNhbmt5YWt1aXN1XCA7Civli5XnianoqowgPCBkb3VidXRzdXNoaVwgOwor6L+U5Y205YCkIDwgaGVua3lha3VjaGlcIDsKK+earuiGmuaEn+immiA8IGhpZnVrYW5rYWt1XCA7CivnhKHpp4ToqbEgPCBtdWRhYmFuYXNoaVwgOwor5YiG5a2Q5byPIDwgYnVuc2hpc2hpa2lcIDsKK+mZjei7iuWPoyA8IGtvdXNoYWd1Y2hpXCA7CivmpJzlh7rlmaggPCBrZW5zaHV0c3VraVwgOwor5qip5Yip6KGM5L2/IDwga2Vucmlrb3VzaGlcIDsKK+iQveiRieadviA8IHJha3V5b3VzaG91XCA7CivmpbXliY3nt5ogPCBreW9rdXplbnNlblwgOwor6LaF6LaK54K5IDwgY2hvdWV0c3V0ZW5cIDsKK+m7kueMqeOAhSA8IGt1cm9zaG91am91XCA7CivmvKLlrZflpInmj5sgPCBrYW5qaWhlbmthblwgOwor5Zu95oW256+AIDwga29ra2Vpc2V0c3VcIDsKK+eEoeS9k+iyoeeUoyA8IG11dGFpemFpc2FuXCA7Civlt7Tnk6YgPCB0b21vZWdhd2FyYVwgOwor5aSp55Sj54mpIDwgdGVuc2FuYnV0c3VcIDsKK+e0s+Wjq+mMsiA8IHNoaW5zaGlyb2t1XCA7Civlho3lhaXlm70gPCBzYWlueXV1a29rdVwgOwor5YWo5L2T5Lya6K2wIDwgemVudGFpa2FpZ2lcIDsKK+S6jOmHjeaKteW9kyA8IG5panV1dGVpdG91XCA7CivliIfml6UgPCBzaGltZWtpcmliaVwgOwor5qmf5qKw5paH5piOIDwga2lrYWlidW5tZWlcIDsKK+ewoea9lOaApyA8IGthbmtldHN1c2VpXCA7CivlpKnmtKXkuZnlpbMgPCBhbWF0c3VvdG9tZVwgOwor5YiH5pat6Z2iIDwgc2V0c3VkYW5tZW5cIDsKK+W8lei+vOe3miA8IGhpa2lrb21pc2VuXCA7CivliKnlrrPplqLkv4IgPCByaWdhaWthbmtlaVwgOwor5aSa6KeS57WM5Za2IDwgdGFrYWt1a2VpZWlcIDsKK+Wkq+WppuWIpeWnkyA8IGZ1dWZ1YmVzc2VpXCA7Civnspflv73ogIUgPCBzb2tvdHN1bW9ub1wgOwor6ZaL5Lya5byPIDwga2Fpa2Fpc2hpa2lcIDsKK+aXpeacrOiqnuiosyA8IG5paG9uZ295YWt1XCA7CivkuqTmj5vmqZ/og70gPCBrb3VrYW5raW5vdVwgOwor55Sj5Y215aC05omAIDwgc2FucmFuYmFzaG9cIDsKK+aEn+WCt+eahCA8IGthbnNob3V0ZWtpXCA7CivluILmnInniakgPCBzaGl5dXVidXRzdVwgOwor6LWw6KGM6Led6ZuiIDwgc291a291a3lvcmlcIDsKK+eEoeWwvee1hOWQiCA8IG11amlua3VtaWFpXCA7Civlho3nlJ/liKnnlKggPCBzYWlzZWlyaXlvdVwgOwor6IGW6IG36ICFIDwgc2Vpc2hva3VzaGFcIDsKK+iIquepuuavjeiJpiA8IGtvdWt1dWJva2FuXCA7CivkuK3ooaPlmqIgPCBuYWthZ2FrdXNoaVwgOwor54us56uL6KqeIDwgZG9rdXJpdHN1Z29cIDsKK+S6uuWQjei+nuWFuCA8IGppbm1laWppdGVuXCA7CivmmKjpnZ7ku4rmmK8gPCBzYWt1aGlrb256ZVwgOwor6IKy5YWQ5a6kIDwgaWt1amlzaGl0c3VcIDsKK+aWsOWPpOWFuOa0viA8IHNoaW5rb3RlbmhhXCA7CivnuYHmrpblnLAgPCBoYW5zaG9rdWNoaVwgOwor5LiA5Lq656ewIDwgaWNoaW5pbnNob3VcIDsKK+mVt+W0juecjCA8IG5hZ2FzYWtpa2VuXCA7CivntYzllrbos4fmupAgPCBrZWllaXNoaWdlblwgOwor5bm85b+DIDwgb3NhbmFnb2tvcm9cIDsKK+iiq+Wus+WmhOaDsyA8IGhpZ2FpbW91c291XCA7Civpm7vlipvoqIggPCBkZW5yeW9rdWtlaVwgOwor6KO95rC355q/IDwgc2VpaHlvdXphcmFcIDsKK+e0sOiPjOWFteWZqCA8IHNhaWtpbmhlaWtpXCA7Civpo73lkozmurbmtrIgPCBob3V3YXlvdWVraVwgOwor5LiA6Iis5Lya6KiIIDwgaXBwYW5rYWlrZWlcIDsKK+a6luWCmeizh+mHkSA8IGp1bmJpc2hpa2luXCA7CivkuLvnqI7lsYAgPCBzaHV6ZWlreW9rdVwgOwor5pS/5YWa5pS/5rK7IDwgc2VpdG91c2VpamlcIDsKK+avjeWtkOW5tOmHkSA8IGJvc2hpbmVua2luXCA7CivmjqXntproqp4gPCBzZXRzdXpva3Vnb1wgOwor54m56ZuG5Y+3IDwgdG9rdXNodXVnb3VcIDsKK+m7kuikkOiJsiA8IGtva2thc3Nob2t1XCA7Civnvo7lrrnmlbTlvaIgPCBiaXlvdXNlaWtlaVwgOwor5Lit5Zu95Lq6IDwgY2h1dWdva3VqaW5cIDsKK+iKseettSA8IGhhbmFtdXNoaXJvXCA7CivliJ3mnJ/mipXos4cgPCBzaG9raXRvdXNoaVwgOwor5pyA55+t6Led6ZuiIDwgc2FpdGFua3lvcmlcIDsKK+WRqOi+uuapn+WZqCA8IHNodXVoZW5raWtpXCA7CivliLbpmZDmmYLplpMgPCBzZWlnZW5qaWthblwgOwor5Yuk5Yq05oSP5qyyIDwga2lucm91aXlva3VcIDsKK+W+k+WxnuWbvSA8IGp1dXpva3Vrb2t1XCA7Civlj6Pov5TnrZQgPCBrdWNoaWhlbnRvdVwgOwor5YCJ5bqr5Lya56S+IDwgc291a29nYWlzaGFcIDsKK+eUt+mwpSA8IG90b2tveWFtb21lXCA7CivmnKrplovnpL7kvJogPCBtaWthaXNoYWthaVwgOwor5rib6KGw546HIDwgZ2Vuc3Vpcml0c3VcIDsKK+Wwjumbu+eOhyA8IGRvdWRlbnJpdHN1XCA7CivkuIDkuobnsKEgPCBpY2hpcnlvdWthblwgOwor6YGO5aSn6KmV5L6hIDwga2FkYWloeW91a2FcIDsKK+iKseelrSA8IGhhbmFtYXRzdXJpXCA7Civlho3ovLjlh7ogPCBzYWl5dXNodXRzdVwgOwor6Z2S6YqF6ImyIDwgc2VpZG91c2hva3VcIDsKK+egtOW7ieaBpee9qiA8IGhhcmVuY2hpemFpXCA7CivpmorllYblrr8gPCB0YWlzaG91eWFkb1wgOwor5pmC6ZmQ6KOF572uIDwgamlnZW5zb3VjaGlcIDsKK+aZr+awl+WkieWLlSA8IGtlaWtpaGVuZG91XCA7CivlvI/mrKHnrKwgPCBzaGlraXNoaWRhaVwgOwor5LiA5qyh6KiY5oa2IDwgaWNoaWppa2lva3VcIDsKK+eUn+eUo+eJqSA8IHNlaXNhbmJ1dHN1XCA7CivooZ3li5XooYzngrogPCBzaG91ZG91a291aVwgOwor6Kix5a6556+E5ZuyIDwga3lveW91aGFuJydpXCA7Civlubvopprnl4cgPCBnZW5rYWt1c2hvdVwgOwor55Sf55Sj566h55CGIDwgc2Vpc2Fua2FucmlcIDsKK+aKleaJi+WKmyA8IHRvdXNodXJ5b2t1XCA7CivplonkvJrlvI8gPCBoZWlrYWlzaGlraVwgOwor5rKW56mN5bGkIDwgY2h1dXNla2lzb3VcIDsKK+WMu+eZguS8nemBkyA8IGlyeW91ZGVuZG91XCA7CivlgqznnKDooZMgPCBzYWltaW5qdXRzdVwgOwor6J2Z6J2g5YKYIDwga291bW9yaWdhc2FcIDsKK+eqgeiyq+W3peS6iyA8IHRva2thbmtvdWppXCA7CivlkJHml6XmgKcgPCBrb3VuaWNoaXNlaVwgOwor5Yid5ae/IDwgaGF0c3VzdWdhdGFcIDsKK+WQuOWPlue0mSA8IHN1aXRvcmlnYW1pXCA7CivpgbjogIPln7rmupYgPCBzZW5rb3VraWp1blwgOwor6auY6KmxIDwgdGFrYWJhbmFzaGlcIDsKK+mrmOWcp+eahCA8IGtvdWF0c3V0ZWtpXCA7CivmnInlipvogIUgPCB5dXVyeW9rdXNoYVwgOwor5Yil5ZWP6aGMIDwgYmV0c3Vtb25kYWlcIDsKK+S7o+aVsOW8jyA8IGRhaXN1dXNoaWtpXCA7CivlhaXmuK/mlpkgPCBueXV1a291cnlvdVwgOwor6Iad6aCtIDwgaGl6YWdhc2hpcmFcIDsKK+eEoeWuv+iAhSA8IG11c2h1a3Vtb25vXCA7Civpg73luILpioDooYwgPCB0b3NoaWdpbmtvdVwgOwor5Y6f5a2Q5YqbIDwgZ2Vuc2hpcnlva3VcIDsKK+aIkOaWh+W+iyA8IHNlaWJ1bnJpdHN1XCA7CivnlLfkuIDljLkgPCBvdG9rb2lwcGlraVwgOwor5aGe5qCT55eHIDwgc29rdXNlbnNob3VcIDsKK+WVhuWjsuafhCA8IHNob3ViYWlnYXJhXCA7CivohbnotrPpoZ4gPCBmdWt1c29rdXJ1aVwgOwor5p2x5Y2w5bqmIDwgaGlnYXNoaWluZG9cIDsKK+izh+acrOWKmyA8IHNoaWhvbnJ5b2t1XCA7Civlt7vmn7EgPCBtYWtpYmFzaGlyYVwgOwor56WH5ZyS56WtIDwgZ2lvbm1hdHN1cmlcIDsKK+S4iuS6rOS4rSA8IGpvdWt5b3VjaHV1XCA7CivlgqznnKDolqwgPCBzYWltaW4nJ3lha3VcIDsKK+Wuo+S8neaYoOeUuyA8IHNlbmRlbicnZWlnYVwgOwor5oWI5ZaE5LqL5qWtIDwgaml6ZW5qaWd5b3VcIDsKK+ePvuixoeWtpiA8IGdlbnNob3VnYWt1XCA7Civnp4vmtKXls7YgPCBha2l0c3VzaGltYVwgOwor576K5bCP5bGLIDwgaGl0c3VqaWdveWFcIDsKK+ijhemjvuWTgSA8IHNvdXNob2t1aGluXCA7CivljYPml6XmiYsgPCBzZW4nJ25pY2hpdGVcIDsKK+WKoOmAn+W6puioiCA8IGthc29rdWRva2VpXCA7CivlgrLmhaLkuI3pgZwgPCBnb3VtYW5mdXNvblwgOwor5YiR5YuZ5L2c5qWtIDwga2VpbXVzYWd5b3VcIDsKK+WcsOeQg+imj+aooSA8IGNoaWt5dXVraWJvXCA7CivmpI3msJHlnLAgPCBzaG9rdW1pbmNoaVwgOwor6YCU5Lit6KiI5pmCIDwgdG9jaHV1a2VpamlcIDsKK+WkluWIhuazjCA8IGdhaWJ1bnBpdHN1XCA7CivpmqPov5HmiYAgPCB0b25hcmlraW5qb1wgOwor5a++6aCC6KeSIDwgdGFpY2hvdWtha3VcIDsKK+mrmOWwhOeJueenkSA8IGtvdXNoYXRva2thXCA7CivogqnnlLLpqqggPCBrZW5rb3Vrb3RzdVwgOwor5LiJ6Z2i5YWt6IeCIDwgc2FubWVucm9wcGlcIDsKK+W+ruWIhuaWremdoiA8IGJpYnVuZGFubWVuXCA7CivliIblqKnkvZznlKggPCBidW5iZW5zYXlvdVwgOwor6IWw5byB5b2TIDwga29zaGliZW50b3VcIDsKK+WPo+W3p+iAhSA8IGt1Y2hpZ291c2hhXCA7Civkv53lgaXkvZPogrIgPCBob2tlbnRhaWlrdVwgOwor5pq06LWw6YGL6LuiIDwgYm91c291dW50ZW5cIDsKK+W6leWKmyA8IHNva29kamlrYXJhXCA7CivkuI3kuJblh7ogPCBmdXNlaXNodXRzdVwgOwor6Kuu5ZWP5qmf6ZaiIDwgc2hpbW9ua2lrYW5cIDsKK+WFiOaXpeS7mCA8IHNha2loaWR6dWtlXCA7CivpgI/oppblipsgPCB0b3VzaGlyeW9rdVwgOwor5Ym16Kit6ICFIDwgc291c2V0c3VzaGFcIDsKK+eUsOiIjuiKneWxhSA8IGluYWthc2hpYmFpXCA7Civph5HprZrpiaIgPCBraW5neW9iYWNoaVwgOwor55mM6YG65Lyd5a2QIDwgZ2FuJydpZGVuc2hpXCA7Civnmb7prLzlpJzooYwgPCBoeWFra2l5YWtvdVwgOwor54Sh5q275rqA5aGBIDwgbXVzaGltYW5ydWlcIDsKK+S6jOeVquaKteW9kyA8IG5pYmFudGVpdG91XCA7CivooZLlrabnmoQgPCBnZW5nYWt1dGVraVwgOwor57eP5YuZ6YOo6ZW3IDwgc291bXVidWNob3VcIDsKK+mHkeefs+WtpiA8IGtpbnNla2lnYWt1XCA7Civph47oj5znlZEgPCB5YXNhaWJhdGFrZVwgOwor6Ieq55Sx6LK/5piTIDwgaml5dXVib3Vla2lcIDsKK+W5s+WSjOadoemghSA8IGhlaXdham91a291XCA7Civnm7TmhJ/nmoQgPCBjaG9ra2FudGVraVwgOwor5YuV54mp55u4IDwgZG91YnV0c3Vzb3VcIDsKK+awl+WIhui7ouaPmyA8IGtpYnVudGVua2FuXCA7Civos4Pku5XkuosgPCBjaGluc2hpZ290b1wgOwor54m56Kix5Li7IDwgdG9ra3lvbnVzaGlcIDsKK+WEkuaVmeS4u+e+qSA8IGp1a3lvdXNodWdpXCA7CivlpYnntI3niakgPCBob3Vub3VidXRzdVwgOwor5aWz5q2M6Iie5LyOIDwgb24nJ25ha2FidWtpXCA7Civkv53ph4jkuK0gPCBob3NoYWt1Y2h1dVwgOwor6aOb6KGM5qmf6ZuyIDwgaGlrb3VraWd1bW9cIDsKK+mdkuiXjeiJsiA8IHNlaXJhbnNob2t1XCA7CivohIXov6vogIUgPCBreW91aGFrdXNoYVwgOwor5YuV54mp55WMIDwgZG91YnV0c3VrYWlcIDsKK+i3r+mdoumbu+i7iiA8IHJvbWVuZGVuc2hhXCA7CivpgJrooYzkuIogPCB0c3V1a291ZG9tZVwgOwor5by35aWq6ICFIDwgZ291ZGF0c3VzaGFcIDsKK+iEhei/q+e9qiA8IGt5b3VoYWt1emFpXCA7CivljZjni6zooYzngrogPCB0YW5kb2t1a291aVwgOwor5Zuj57WQ5qipIDwgZGFua2V0c3VrZW5cIDsKK+iqoOW/g+iqoOaEjyA8IHNlaXNoaW5zZWlpXCA7CivntITljYrlubQgPCB5YWt1aGFuJyduZW5cIDsKK+aXpeacrOaWmeeQhiA8IG5paG9ucnlvdXJpXCA7CivmipXnpajnrrEgPCB0b3VoeW91YmFrb1wgOwor57Sg5Lq66Iq4IDwgc2hpcm91dG9nZWlcIDsKK+epjealteaApyA8IHNla2t5b2t1c2VpXCA7CivmpbXluqfmqJkgPCBreW9rdXphaHlvdVwgOwor5a+d5q2j5pyIIDwgbmVzaG91Z2F0c3VcIDsKK+a1mua4q+apnyA8IHNodW5zZXRzdWtpXCA7Civnv7zpnaLnqY0gPCB5b2t1bWVuc2VraVwgOwor55Wz6KGoIDwgdGF0YW1pb21vdGVcIDsKK+e3j+ebrumMsiA8IHNvdW1va3Vyb2t1XCA7CivmoLjlj43lv5wgPCBrYWt1aGFuJydub3VcIDsKK+WItumFuOiWrCA8IHNlaXNhbicneWFrdVwgOwor6LaF5Lq655qEIDwgY2hvdWppbnRla2lcIDsKK+esrOS4gOa1gSA8IGRhaWljaGlyeXV1XCA7CivmlYXkuovmnaXmrbQgPCBrb2ppcmFpcmVraVwgOwor5YaF6Lyq5Zan5ZipIDwgdWNoaXdhZ2Vua2FcIDsKK+i2s+aLjeWtkCA8IGFzaGlieW91c2hpXCA7CivlvLHmnZDmlpkgPCB5b3dhemFpcnlvdVwgOwor5o6l6Kem57eaIDwgc2Vzc2hva3VzZW5cIDsKK+S6nOehnemFuOWhqSA8IGFzaG91c2FuJydlblwgOwor5LiA6KeS542j5bqnIDwgaWtrYWt1anV1emFcIDsKK+WHuuWKmyA8IHNodXRzdXJ5b2t1XCA7Civlvbnlipvlo6sgPCB5YWt1cmlraXNoaVwgOwor57Wx6L2E6ICFIDwgdG91a2F0c3VzaGFcIDsKK+WPjeS9k+WItua0viA8IGhhbnRhaXNlaWhhXCA7CivljLrlioPmlbTnkIYgPCBrdWtha3VzZWlyaVwgOwor5LuV5LqL5LitIDwgc2hpZ290b2NodXVcIDsKK+Wcn+eZvuWnkyA8IGRvYnlha3VzaG91XCA7Civmloflrabos54gPCBidW5nYWt1c2hvdVwgOwor5oub6KuL5Zu9IDwgc2hvdXNlaWtva3VcIDsKK+e3j+WPjuWFpSA8IHNvdXNodXVueXV1XCA7CivmuKzph4/oiLkgPCBzb2t1cnlvdXNlblwgOwor5pS+5Lu75Li7576pIDwgaG91bmluc2h1Z2lcIDsKK+mBuuaXj+e1puS7mCA8IGl6b2t1a3l1dWZ1XCA7CivlpInkvY3liLblvqEgPCBoZW4nJ2lzZWlneW9cIDsKK+WAn+WcsOaoqSA8IHNoYWt1Y2hpa2VuXCA7Civmlofpg6jlpKfoh6MgPCBtb25idWRhaWppblwgOwor5aWz5qip6KuW6ICFIDwgam9rZW5yb25zaGFcIDsKK+S4i+Wjq+WumOWFtSA8IGthc2hpa2FuaGVpXCA7CivmspbnqY3kuJYgPCBjaHV1c2VraXNlaVwgOwor5Lit56aF5a+65rmWIDwgY2h1dXplbmppa29cIDsKK+WPo+i/sOabuCA8IGtvdWp1dHN1c2hvXCA7CivmronogbfogIUgPCBqdW5zaG9rdXNoYVwgOwor6KO95ZOB5Y6f5L6hIDwgc2VpaGluZ2Vua2FcIDsKK+S6uuawkeS4u+e+qSA8IGppbm1pbnNodWdpXCA7Civli4nlvLfpg6jlsYsgPCBiZW5reW91YmV5YVwgOwor55eF6Jmr5a6zIDwgYnlvdWNodXVnYWlcIDsKK+elnuWuruWkluiLkSA8IGppbmd1dWdhaWVuXCA7CivmoZzppIUgPCBzYWt1cmFtb2NoaVwgOwor5qGc6aOvIDwgc2FrdXJhbWVzaGlcIDsKK+aKgOihk+eahCA8IGdpanV0c3V0ZWtpXCA7CivlsI/oqqzlrrYgPCBzaG91c2V0c3VrYVwgOwor54m557SE5bqXIDwgdG9rdXlha3V0ZW5cIDsKK+S6pOmAmumHjyA8IGtvdXRzdXVyeW91XCA7CivlhajoiKzmlK/mj7QgPCB6ZW5wYW5zaGllblwgOwor5bCR5aOu5pyJ54K6IDwgc2hvdXNvdXl1dWlcIDsKK+e1jOWPo+aKleS4jiA8IGtlaWtvdXRvdXlvXCA7CivpgZPmoYjlhoUgPCBtaWNoaWFuJyduYWlcIDsKK+aPm+awl+ijhee9riA8IGthbmtpc291Y2hpXCA7CivlhbHlkozliLbluqYgPCBreW91d2FzZWlkb1wgOwor6YGT5pmu6KuLIDwgbWljaGlidXNoaW5cIDsKK+WlveiJsuiAhSA8IGtvdXNob2t1c2hhXCA7CivkuozoqrLli4nlvLcgPCBuaWthYmVua3lvdVwgOwor5raI6Iet5YmkIDwgc2hvdXNodXV6YWlcIDsKK+S6iOmYsuaOpeeoriA8IHlvYm91c2Vzc2h1XCA7Civni6zlloTnmoQgPCBkb2t1emVudGVraVwgOwor55Ww5Zu95oOF57eSIDwgaWtva3Vqb3VjaG9cIDsKK+ino+WDj+WKmyA8IGthaXpvdXJ5b2t1XCA7CivpgYvou6LlgZzmraIgPCB1bnRlbnRlaXNoaVwgOwor5oKq5Y+j6ZuR6KiAIDwgYWtrb3V6b3Vnb25cIDsKK+i7jeazleS8muitsCA8IGd1bnBvdWthaWdpXCA7Civnm7Tlh7ogPCBjaG9rdXNodXRzdVwgOwor5rW46YCP5ZynIDwgc2hpbnRvdWF0c3VcIDsKK+eGseihgOa8oiA8IG5la2tldHN1a2FuXCA7CivlpKnlnLDnhKHnlKggPCB0ZW5jaGltdXlvdVwgOwor55Wz6IG3IDwgdGF0YW1pc2hva3VcIDsKK+eVsOW4uOaAp+assiA8IGlqb3VzZWl5b2t1XCA7Civlsqnnn7PlraYgPCBnYW5zZWtpZ2FrdVwgOwor6Jyc5p+R55WRIDwgbWlrYW5iYXRha2VcIDsKK+eDj+WkqeeLlyA8IGthcmFzdXRlbmd1XCA7CivntLPlo6vnmoQgPCBzaGluc2hpdGVraVwgOwor5Lq65bel5Y+X6IOOIDwgamlua291anV0YWlcIDsKK+aXpeacrOaWh+azlSA8IG5paG9uYnVucG91XCA7CivnqpLmga/mrbsgPCBjaGlzc29rdXNoaVwgOwor5LiK5LiL5rC06YGTIDwgam91Z2VzdWlkb3VcIDsKK+S4ieWkp+evgCA8IHNhbmRhaXNldHN1XCA7CivmtLvmlq3lsaQgPCBrYXRzdWRhbnNvdVwgOwor6YqA6KGM5Y+j5bqnIDwgZ2lua291a291emFcIDsKK+ebrum8u+eriyA8IG1laGFuYWRhY2hpXCA7CivlkajmnJ/lvosgPCBzaHV1a2lyaXRzdVwgOwor6I2J5YagIDwga3VzYWthbm11cmlcIDsKK+mAgOe0heiJsiA8IHRhaWtvdXNob2t1XCA7CivlpI/mnJ/lpKflraYgPCBrYWtpZGFpZ2FrdVwgOwor6YCj6YKm6K2w5LyaIDwgcmVucG91Z2lrYWlcIDsKK+aSruWDj+euoSA8IHNhdHN1em91a2FuXCA7CivohbnlhavliIYgPCBoYXJhaGFjaGlidVwgOwor5pyr5pyf55eH54q2IDwgbWFra2lqb3V0YWlcIDsKK+S6lOauteWLleipniA8IGdvZGFuZG91c2hpXCA7Civnq4vms5XmqZ/plqIgPCByaXBwb3VraWthblwgOwor5Zug5b6q5aeR5oGvIDwgaW5qdW5rb3Nva3VcIDsKK+mAsuWFpei3ryA8IHNoaW4nJ255dXVyb1wgOwor5aSn5bGx5qSS6a2aIDwgb29zYW5zaG91dW9cIDsKK+iZjuimlueciOeciCA8IGtvc2hpdGFudGFuXCA7Civog4zml6XmgKcgPCBoYWlqaXRzdXNlaVwgOwor6IOM6Z2i6aOb6KGMIDwgaGFpbWVuaGlrb3VcIDsKK+W8vuS4uOmBk+i3ryA8IGRhbmdhbmRvdXJvXCA7CivplpPlpY/mm7IgPCBrYW5zb3VreW9rdVwgOwor5YSq5YWI5aSW6LKoIDwgeXV1c2VuZ2Fpa2FcIDsKK+W9k+eUqOa8ouWtlyA8IHRvdXlvdWthbmppXCA7CivmjIfljZflvbkgPCBzaGluYW4nJ3lha3VcIDsKK+iEhei/q+eKtiA8IGt5b3VoYWt1am91XCA7CivmsJHmnKzkuLvnvqkgPCBtaW5wb25zaHVnaVwgOwor5Yqf5ZCN5b+DIDwga291bXlvdXNoaW5cIDsKK+WbnuaVmeWbvSA8IGthaWt5b3Vrb2t1XCA7Civpqqjohpzngo4gPCBrb3RzdW1ha3VlblwgOwor5Lq65bel5Y+X57SbIDwgamlua291anVmdW5cIDsKK+S4u+imgeeJqeS+oSA8IHNodXlvdWJ1a2thXCA7CivmsqLlurXmvKwgPCB0YWt1YW5kenVrZVwgOwor5qC55YiH6JmrIDwgbmVraXJpbXVzaGlcIDsKK+S6uuW3peWPl+eyviA8IGppbmtvdWp1c2VpXCA7CivpgIHmlpnlhbEgPCBzb3VyeW91dG9tb1wgOwor5by15pys5Lq6IDwgY2hvdWhvbicnbmluXCA7CivnmbvlsbHpm7vou4ogPCB0b3phbmRlbnNoYVwgOwor5pqr5a6a5pS/5bqcIDwgemFudGVpc2VpZnVcIDsKK+S5l+i7iuWPoyA8IGpvdXNoYWd1Y2hpXCA7CivkuZflkIjppqzou4ogPCBub3JpYWliYXNoYVwgOwor5LiA5pel6LevIDwgaWNoaW5pY2hpamlcIDsKK+WcsOizquWbsyA8IGNoaXNoaXRzdXp1XCA7CivmnJ/miJDlkIznm58gPCBraXNlaWRvdW1laVwgOwor56uL5piO5oimIDwgcml0c3VtZWlzZW5cIDsKK+aKveixoeirliA8IGNodXVzaG91cm9uXCA7CivmlaPlhYnmmJ/pm7IgPCBzYW5rb3VzZWl1blwgOwor5LuV6Kiz6KGoIDwgc2hpd2FrZWh5b3VcIDsKK+mjoumkk+eZguazlSA8IGtpZ2FyeW91aG91XCA7Civlm73nqI7luoEgPCBrb2t1emVpY2hvdVwgOwor57O45YGP5pmv5rCXIDwgaXRvaGVua2Vpa2lcIDsKK+eJqeS+oeWkieWLlSA8IGJ1a2thaGVuZG91XCA7CivmgKfmgqroqqwgPCBzZWlha3VzZXRzdVwgOwor6L+R6YOK6YO95biCIDwga2lua291dG9zaGlcIDsKK+aHkOmDt+eXhSA8IGthaWt5b3VieW91XCA7CivlhazplovmnJ/plpMgPCBrb3VrYWlraWthblwgOwor5YmN5b6M5LiN6KaaIDwgemVuZ29mdWtha3VcIDsKK+a6luWCmeS9k+aTjSA8IGp1bmJpdGFpc291XCA7Civmr43ns7vlrrbml48gPCBib2tlaWthem9rdVwgOwor5q2v56eR5Yy76KGTIDwgc2hpa2FpanV0c3VcIDsKK+mHkeeuoealveWZqCA8IGtpbmthbmdha2tpXCA7CivliIfno4vnkKLno6ggPCBzZXNzYXRha3VtYVwgOwor5LiA5pmC6Kej6ZuHIDwgaWNoaWppa2Fpa29cIDsKK+afkeapmOmhniA8IGthbmtpdHN1cnVpXCA7CivpgYvou6Los4fph5EgPCB1bnRlbnNoaWtpblwgOwor5aGR5oCn6ZmQ55WMIDwgc29zZWlnZW5rYWlcIDsKK+mHkeaoqeaUv+ayuyA8IGtpbmtlbnNlaWppXCA7CivpmLLlvqHpg6jpmoogPCBib3VneW9idXRhaVwgOwor6Z2Z5q2i6KGb5pifIDwgc2Vpc2hpZWlzZWlcIDsKK+S4gOmfs+evgCA8IGljaGlvbnNldHN1XCA7Civlho3luqbljZTorbAgPCBzYWlkb2t5b3VnaVwgOwor6ISx54Kt6YW4IDwgZGF0c3V0YW5zYW5cIDsKK+aWsOaKgOihkyA8IHNoaW5naWp1dHN1XCA7CivpgIbmjqLnn6UgPCBneWFrdXRhbmNoaVwgOwor5LiA5YiH5ZCI6LKhIDwgaXNzYWlnYXNzYWlcIDsKK+mBuueUo+ebuOe2miA8IGlzYW5zb3V6b2t1XCA7Civmi77lvpfogIUgPCBzaHV1dG9rdXNoYVwgOwor5a6d54mp5q6/IDwgaG91bW90c3VkZW5cIDsKK+WWq+eFmeW4rSA8IGtpdHN1ZW5zZWtpXCA7CivlhrfooYDmvKIgPCByZWlrZXRzdWthblwgOwor5aGR5oCn5aSJ5b2iIDwgc29zZWloZW5rZWlcIDsKK+imi+anmOimi+ecn+S8vCA8IG1peW91bWltYW5lXCA7CivkuLvlipvoiaYgPCBzaHVyeW9rdWthblwgOwor5LiA5aSp5Zub5rW3IDwgaXR0ZW5zaGlrYWlcIDsKK+i7iuWkp+W3pSA8IGt1cnVtYWRhaWt1XCA7CivpgY7po5/nl4cgPCBrYXNob2t1c2hvdVwgOwor6Z+z6Z+/5Yq55p6cIDwgb25reW91a291a2FcIDsKK+Wuv+WRveirliA8IHNodWt1bWVpcm9uXCA7CivlhaXph5HnpaggPCBueXV1a2luaHlvdVwgOwor5Y2Y5pys5L2N5oCnIDwgdGFuaG9uJydpc2VpXCA7Civpm7LmlaPpnKfmtoggPCB1bnNhbm11c2hvdVwgOwor5YWo5L2T5Li7576pIDwgemVudGFpc2h1Z2lcIDsKK+iKseWxi+aVtyA8IGhhbmF5YXNoaWtpXCA7CivlhbHnmb3pq6ogPCB0b21vc2hpcmFnYVwgOwor5YGc5q2i5pmC6ZaTIDwgdGVpc2hpamlrYW5cIDsKK+S9juepuumjm+ihjCA8IHRlaWt1dWhpa291XCA7Civlj6Pluqfkv4IgPCBrb3V6YWtha2FyaVwgOwor55Oi6JmrIDwgdGVudG91bXVzaGlcIDsKK+eUn+WtmOeOhyA8IHNlaXpvbnJpdHN1XCA7CivmlK/luqbpg6jlsYsgPCBzaGl0YWt1YmV5YVwgOwor54aK5pys55yMIDwga3VtYW1vdG9rZW5cIDsKK+ebtOmKreW9oiA8IGNob2t1c2Vua2VpXCA7Civli5XnianmgKcgPCBkb3VidXRzdXNlaVwgOwor5Y6f54iG55eHIDwgZ2VuYmFrdXNob3VcIDsKK+WKoOW3peiyv+aYkyA8IGtha291Ym91ZWtpXCA7CivooZvmmJ/mlL7pgIEgPCBlaXNlaWhvdXNvdVwgOwor6Zu75rCX5YiG6KejIDwgZGVua2lidW5rYWlcIDsKK+W3puS4iyA8IGhpZGFyaXNoaXRhXCA7Civpoqjoh7TlnLDljLogPCBmdXVjaGljaGlrdVwgOwor5a+G6ZaJ5a655ZmoIDwgbWlwcGVpeW91a2lcIDsKK+mAo+W4r+WCteWLmSA8IHJlbnRhaXNhaW11XCA7Civph5HliZvolqnloJUgPCBrb25nb3VzYXR0YVwgOwor5LiA5Lq65aSp5LiLIDwgaGl0b3JpZGVua2FcIDsKK+mbu+WLleW8jyA8IGRlbmRvdXNoaWtpXCA7CivmmYLplpPlj43ou6IgPCBqaWthbmhhbnRlblwgOwor55Sf55Sj5YqbIDwgc2Vpc2Fucnlva3VcIDsKK+WJr+eJp+W4qyA8IGZ1a3Vib2t1c2hpXCA7CivogZbppJDlvI8gPCBzZWlzYW5zaGlraVwgOwor6YCG6Zai5pWwIDwgZ3lha3VrYW5zdXVcIDsKK+S4g+S6lOS4iSA8IHNoaWNoaWdvc2FuXCA7Civpp5DnlZnou40gPCBjaHV1cnl1dWd1blwgOwor5ZSv54mp6KuWIDwgeXVpYnV0c3Vyb25cIDsKK+aXheWVhuS6uiA8IHRhYmlzaG91bmluXCA7Civopb/mrKfmlofmmI4gPCBzZWlvdWJ1bm1laVwgOwor5LiL6YOo57WE57mUIDwga2FidXNvc2hpa2lcIDsKK+ebuOS5l+WKueaenCA8IHNvdWpvdWtvdWthXCA7CivmsLTlubPot53pm6IgPCBzdWloZWlreW9yaVwgOwor55m+5Ye6IDwgaHlha3VzaHV0c3VcIDsKK+aKgOihk+aWmSA8IGdpanV0c3VyeW91XCA7Civou43lgpnmkqTlu4MgPCBndW5iaXRlcHBhaVwgOwor5Zu65pyJ5ZCN6KmeIDwga295dXVtZWlzaGlcIDsKK+e3tOe/kuW4syA8IHJlbnNodXVjaG91XCA7CivpgKDnn7Ppq5ggPCB6b3Vrb2t1ZGFrYVwgOwor6LuN6ZqK5byPIDwgZ3VudGFpc2hpa2lcIDsKK+e/u+ios+iAhSA8IGhvbicneWFrdXNoYVwgOwor5r2k55uu6bCvIDwgdXJ1bWVpd2FzaGlcIDsKK+S6uumWk+eWjuWkliA8IG5pbmdlbnNvZ2FpXCA7CivojLbopJDoibIgPCBjaGFrYXNzaG9rdVwgOwor56K65a6f5bqmIDwga2FrdWppdHN1ZG9cIDsKK+acieapn+WMluWtpiA8IHl1dWtpa2FnYWt1XCA7Civnt4/lipvmiKYgPCBzb3VyeW9rdXNlblwgOwor5Luy6ZaT5YCk5q61IDwgbmFrYW1hbmVkYW5cIDsKK+WlveiJsua8oiA8IGtvdXNob2t1a2FuXCA7CivmuKnmlYXnn6XmlrAgPCBvbmtvY2hpc2hpblwgOwor5Yid5oqV56i/IDwgaGF0c3V0b3Vrb3VcIDsKK+S4h+S4h+S4gCA8IG1hbm1hbicnaWNoaVwgOwor5pqX6KaW6KOF572uIDwgYW5zaGlzb3VjaGlcIDsKK+WbveWutuippumokyA8IGtva2thc2hpa2VuXCA7CivpnZLmnpzluILloLQgPCBzZWlrYWljaGliYVwgOwor6Iul5L6NIDwgd2FrYXphbXVyYWlcIDsKK+e0s+Wjq+acjSA8IHNoaW5zaGlmdWt1XCA7CivmsJHkuovoo4HliKQgPCBtaW5qaXNhaWJhblwgOwor5Y6f5a2Q5YW15ZmoIDwgZ2Vuc2hpaGVpa2lcIDsKK+S4gOS7leS6iyA8IGhpdG9zaGlnb3RvXCA7Civll4XnpZ7ntYwgPCBreXV1c2hpbmtlaVwgOwor6IKv5a6a5b+c562UIDwga291dGVpb3V0b3VcIDsKK+WkieabtOS4jeiDvSA8IGhlbmtvdWZ1bm91XCA7CivntpnntprnmoQgPCBrZWl6b2t1dGVraVwgOwor5paH5a2m55qEIDwgYnVuZ2FrdXRla2lcIDsKK+e0gOWLouacrOe3miA8IGtpc2VpaG9uc2VuXCA7CivlgJnnlLEgPCBzb3Vyb3V5b3NoaVwgOwor6bq76KOP6I2J5bGlIDwgYXNhdXJhem91cmlcIDsKK+WFremHjeWUsSA8IHJva3VqdXVzaG91XCA7Civlj7Dmub7lnYrkuLsgPCB0YWl3YW5ib3V6dVwgOwor5a2j5YiK6ZuR6KqMIDwga2lrYW56YXNzaGlcIDsKK+WNl+mYv+aIpuS6iSA8IG5hbicnYXNlbnNvdVwgOwor54Sh57ea5ZGo5rOiIDwgbXVzZW5zaHV1aGFcIDsKK+eOhOS6uuetiyA8IGt1cm91dG9zdWppXCA7CivplbfmnJ/ph5HliKkgPCBjaG91a2lraW5yaVwgOwor5ZuD5a2Q5pa5IDwgaGF5YXNoaWthdGFcIDsKK+Wkp+S6uueJqSA8IGRhaWppbmJ1dHN1XCA7Civpo5vooYzmqZ/nrYkgPCBoaWtvdWtpbmFkb1wgOwor5YKA5YSh5pS/5bqcIDwga2FpcmFpc2VpZnVcIDsKK+WQjOezu+iJsiA8IGRvdWtlaXNob2t1XCA7CivntIXnmb3nsokgPCBiZW5pb3NoaXJvaVwgOwor5a6j6KqT5byPIDwgc2Vuc2Vpc2hpa2lcIDsKK+W4guWklumbu+ipsSA8IHNoaWdhaWRlbndhXCA7CivpgKPpgqbmlL/lupwgPCByZW5wb3VzZWlmdVwgOwor5pS+5q2M6auY5ZCfIDwgaG91a2Frb3VnaW5cIDsKK+S4reWSjOeGsSA8IGNodXV3YW5ldHN1XCA7Civlvq7ph4/lhYPntKAgPCBiaXJ5b3VnZW5zb1wgOwor6Iux5a2X5paw6IGeIDwgZWlqaXNoaW5idW5cIDsKK+a6gOi6q+WJteeXjSA8IG1hbnNoaW5zb3VpXCA7CivnrKzkuozntYTlkIggPCBkYWluaWt1bWlhaVwgOwor5raI6ICX55qEIDwgc2hvdWtvdXRla2lcIDsKK+aUu+aSg+eahCA8IGtvdWdla2l0ZWtpXCA7Civln4volLXniakgPCBtYWl6b3VidXRzdVwgOwor5Ymv6Kqt5pysIDwgZnVrdWRva3Vob25cIDsKK+m6nemmmem8oCA8IGpha291bmV6dW1pXCA7CivmnKjos4Plrr8gPCBraWNoaW4nJ3lhZG9cIDsKK+Wbm+inkuafsSA8IHNoaWtha3VjaHV1XCA7CivkuK3nqbrlo4EgPCBjaHV1a3V1a2FiZVwgOwor5amm5Lq66K2m5a6YIDwgZnVqaW5rZWlrYW5cIDsKK+iAg+iovOWtpiA8IGtvdXNob3VnYWt1XCA7CivnrKzkuInkuJbnlYwgPCBkYWlzYW5zZWthaVwgOwor5q+Y5rKZ6ZaA5aSpIDwgYmlzaGFtb250ZW5cIDsKK+ekvuS8muS4u+e+qSA8IHNoYWthaXNodWdpXCA7CivlrabkvY3oq5bmlocgPCBnYWt1aXJvbmJ1blwgOwor5a6f6Ki855qEIDwgamlzc2hvdXRla2lcIDsKK+aVkea4iOetliA8IGt5dXVzYWlzYWt1XCA7Civou43lm73oqr8gPCBndW5rb2t1Y2hvdVwgOwor55m96J2L55eFIDwgaGFrdXJvdWJ5b3VcIDsKK+ekvuS6pOi+nuS7pCA8IHNoYWtvdWppcmVpXCA7CivlvrTlhbXlv4zpgb8gPCBjaG91aGVpa2loaVwgOwor54uC54qs55eFIDwga3lvdWtlbmJ5b3VcIDsKK+awkeihhueahCA8IG1pbnNodXV0ZWtpXCA7CivmqZ/kvJrlnYfnrYkgPCBraWthaWtpbnRvdVwgOwor5pqr5a6a5o6q572uIDwgemFudGVpc29jaGlcIDsKK+aWueWQkemfs+eXtCA8IGhvdWtvdW9uY2hpXCA7CivkuIDkuKHlubQgPCBpY2hpcnlvdW5lblwgOwor5LiW55WM6YqA6KGMIDwgc2VrYWlnaW5rb3VcIDsKK+Wkp+S7j+auvyA8IGRhaWJ1dHN1ZGVuXCA7CivliLnpgqPnmoQgPCBzZXRzdW5hdGVraVwgOwor5YWo5qip5aeU5Lu7IDwgemVua2VuJydpbmluXCA7CivkvL3oqbEgPCB0b2dpYmFuYXNoaVwgOwor6Ieq54S26KiA6KqeIDwgc2hpemVuZ2VuZ29cIDsKK+WLheS7u+WumCA8IGNob2t1bmlua2FuXCA7CivoqoflpKflpoTmg7MgPCBrb2RhaW1vdXNvdVwgOwor5Y+M5Y2B56+AIDwgc291anV1c2V0c3VcIDsKK+WlveiJsuacrCA8IGtvdXNob2t1Ym9uXCA7CivljJbnsqfpgZPlhbcgPCBrZXNob3Vkb3VndVwgOwor5LiN5aSJ6LOH5pysIDwgZnVoZW5zaGlob25cIDsKK+eqkuWMlueJqSA8IGNoaWtrYWJ1dHN1XCA7Civmnb7po74gPCBtYXRzdWthemFyaVwgOwor5LiJ6KeS57+8IDwgc2Fua2FrdXlva3VcIDsKK+iznuWRs+acn+mZkCA8IHNob3VtaWtpZ2VuXCA7CivmiJDplbfmoKogPCBzZWljaG91a2FidVwgOwor55+z5p2Q5ZWGIDwgc2VraXphaXNob3VcIDsKK+S+m+iol+mHkSA8IGt5b3V0YWt1a2luXCA7Civlv4Poh5PlpJbnp5EgPCBzaGluem91Z2VrYVwgOwor54yr6aGN5aSnIDwgYnlvdWdha3VkYWlcIDsKK+WcsOaWueiJsiA8IGNoaWhvdXNob2t1XCA7Civlub7kvZXntJrmlbAgPCBraWtha3l1dXN1dVwgOwor5LiJ6YOo5ZCI5aWPIDwgc2FuYnVnYXNzb3VcIDsKK+eUn+S4ree2mSA8IG5hbWFjaHV1a2VpXCA7CivlkLjlj47liaQgPCBreXV1c2h1dXphaVwgOwor6JKZ5Y+k5Lq656iuIDwgbW91a29qaW5zaHVcIDsKK+mbu+awl+WMluWtpiA8IGRlbmtpa2FnYWt1XCA7CivmnbHpoqggPCBoaWdhc2hpa2F6ZVwgOwor5bu66JS9546HIDwga2VucGVpcml0c3VcIDsKK+Wuouims+eahCA8IGt5YWtrYW50ZWtpXCA7CivosYbohZDkuIDkuIEgPCB0b3VmdWl0Y2hvdVwgOwor5raI6LK76YO95biCIDwgc2hvdWhpdG9zaGlcIDsKK+S4i+e0muiBtyA8IGtha3l1dXNob2t1XCA7CivkuIDkuIDjgIfnlaogPCBoeWFrdXRvb2JhblwgOwor5L+u6aO+6KqeIDwgc2h1dXNob2t1Z29cIDsKK+WutuaXj+WItuW6piA8IGthem9rdXNlaWRvXCA7CivnlJ/lrZjmnJ/plpMgPCBzZWl6b25raWthblwgOwor5aSn6aOf5ryiIDwgdGFpc2hva3VrYW5cIDsKK+WGt+eskeeahCA8IHJlaXNob3V0ZWtpXCA7CivmlK/ntabpoY0gPCBzaGlreXV1Z2FrdVwgOwor5LiN5Z2H6LOqIDwgZnVraW5zaGl0c3VcIDsKK+S7o+ihqOeahCA8IGRhaWh5b3V0ZWtpXCA7CivlhaXpgZPpm7IgPCBueXV1ZG91Z3Vtb1wgOwor6YeO6Imv5LuV5LqLIDwgbm9yYXNoaWdvdG9cIDsKK+WFsemAmueCuSA8IGt5b3V0c3V1dGVuXCA7Civml6XkvIrovp7lhbggPCBuaWNoaWlqaXRlblwgOwor5YWs5b6z5b+DIDwga291dG9rdXNoaW5cIDsKK+S4jeato+S5l+i7iiA8IGZ1c2Vpam91c2hhXCA7Civoqr/mn7vntZDmnpwgPCBjaG91c2FrZWtrYVwgOwor5b2i5byP6KuWIDwga2Vpc2hpa2lyb25cIDsKK+S4jeW9k+W7ieWjsiA8IGZ1dG91cmVuYmFpXCA7Civph5HnkrDpo58gPCBraW5rYW5zaG9rdVwgOwor5Ye65pyt5omAIDwgc2h1c3NhdHN1am9cIDsKK+a7heWkmuefoumxiCA8IG1ldHRheWF0YXJhXCA7CivljJfmpbXmtbcgPCBob2treW9rdWthaVwgOwor5YmN5Lq65pyq6LiPIDwgemVuamlubWl0b3VcIDsKK+ihjOWumOW6gSA8IGd5b3VrYW5jaG91XCA7CivkuI3lvZPliKnlvpcgPCBmdXRvdXJpdG9rdVwgOwor5Zue5pWZ5a+66ZmiIDwga2Fpa3lvdWppaW5cIDsKK+S/nei6q+ihkyA8IGhvc2hpbmp1dHN1XCA7CivpkZHorZjnnLwgPCBrYW5zaGlraWdhblwgOwor5YyX5qW15rSLIDwgaG9ra3lva3V5b3VcIDsKK+i1pOe0qyA8IGFrYW11cmFzYWtpXCA7Civou43kuovoqJPnt7QgPCBndW5qaWt1bnJlblwgOwor5b2r5Yi755WMIDwgY2hvdWtva3VrYWlcIDsKK+mmrOm5v+ipsSA8IGJha2FiYW5hc2hpXCA7Civnt4/lkIjlj6PluqcgPCBzb3Vnb3Vrb3V6YVwgOwor54mp57SN56iOIDwgYnV0c3Vub3V6ZWlcIDsKK+mDoeecjOWItuW6piA8IGd1bmtlbnNlaWRvXCA7Civkvb/nlKjlj6/og70gPCBzaGl5b3VrYW5vdVwgOwor5LiL5aWz5LitIDwgc2hpbW9qb2NodXVcIDsKK+WGhemDqOeVmeS/nSA8IG5haWJ1cnl1dWhvXCA7CivlnLDkuIvlrqQgPCBjaGlrYXNoaXRzdVwgOwor5YaN6LKp5Yi25bqmIDwgc2FpaGFuc2VpZG9cIDsKK+iiq+mBuOaMmeaoqSA8IGhpc2Vua3lva2VuXCA7CivosrjmnKzlsYsgPCBrYXNoaWhvbicneWFcIDsKK+eJqeS+oee1seWItiA8IGJ1a2thdG91c2VpXCA7CivpmL/lkYbpmYDnvoXntYwgPCBhaG9kYXJha3lvdVwgOwor5Zug5pWw5YiG6KejIDwgaW5zdXVidW5rYWlcIDsKK+mNvuS5s+a0niA8IHNob3VueXV1ZG91XCA7Civogbflk6HpjLIgPCBzaG9rdWlucm9rdVwgOwor55Sf55Sf5rWB6LuiIDwgc2Vpc2VpcnV0ZW5cIDsKK+eEoeefpeiSmeaYpyA8IG11Y2hpbW91bWFpXCA7Civmoq/lrZDphZIgPCBoYXNoaWdvemFrZVwgOwor5rue5Zyo5a6iIDwgdGFpemFpa3lha3VcIDsKK+iThOmbu+axoCA8IGNoaWt1ZGVuY2hpXCA7CivoqabmjpjogIUgPCBzaGlrdXRzdXNoYVwgOwor5aSn5a2m5a+uIDwgZGFpZ2FrdXJ5b3VcIDsKK+Wnq+Wwj+adviA8IGhpbWVrb21hdHN1XCA7CivnnJ/lrp/lkbMgPCBzaGluaml0c3VtaVwgOwor5peF5b256ICFIDwgdGFiaXlha3VzaGFcIDsKK+WbveawkeeahCA8IGtva3VtaW50ZWtpXCA7CivmiKbmsqHogIUgPCBzZW5ib3RzdXNoYVwgOwor5rWB6KGM55eFIDwgcnl1dWtvdWJ5b3VcIDsKK+W9q+WIu+eJiCA8IGNob3Vrb2t1YmFuXCA7CivloJXokL3lnYrkuLsgPCBkYXJha3Vib3V6dVwgOwor6Iie5Y+w5bqm6IO4IDwgYnV0YWlkb2t5b3VcIDsKK+WRqOaXi+alrSA8IHNodXVzZW5neW91XCA7Civlm6PmiYfomasgPCB1Y2hpd2FtdXNoaVwgOwor5rOw6KW/5ZCN55S7IDwgdGFpc2VpbWVpZ2FcIDsKK+afs+iFsCA8IHlhbmFnaWdvc2hpXCA7Civlj6PlsI/oqIAgPCBrdWNoaWtvZ290b1wgOwor5rOV5rK75Zu95a62IDwgaG91Y2hpa29ra2FcIDsKK+WEquWFiOmghuS9jSA8IHl1dXNlbmp1bicnaVwgOwor5Lu75ZG95byPIDwgbmlubWVpc2hpa2lcIDsKK+mbu+WKm+WCtSA8IGRlbnJ5b2t1c2FpXCA7CivljZjkvY3ntYTlkIggPCB0YW4nJ2lrdW1pYWlcIDsKK+WKm+WLleeahCA8IHJpa2lkb3V0ZWtpXCA7CivlpI/luL3lrZAgPCBuYXRzdWJvdXNoaVwgOwor552h55yg6JasIDwgc3VpbWluJyd5YWt1XCA7Civljbjnm7jloLQgPCBvcm9zaGlzb3ViYVwgOwor5Y2w5Yi35qWtIDwgaW5zYXRzdWd5b3VcIDsKK+euoeeQhuaDheWgsSA8IGthbnJpam91aG91XCA7CivkvJ3lsI7njocgPCBkZW5kb3VyaXRzdVwgOwor6Ju45YWl6YGTIDwgdGFrb255dXVkb3VcIDsKK+irh+ipseWupCA8IGRhbndhc2hpdHN1XCA7CivlrozlhajkuLvnvqkgPCBrYW56ZW5zaHVnaVwgOwor5a6J5pyI57WmIDwgeWFzdWdla2t5dXVcIDsKK+WMl+alteaYnyA8IGhva2t5b2t1c2VpXCA7CivlvqHpnIrku6MgPCBtaXRhbWFzaGlyb1wgOwor5LiD5LiN5oCd6K2wIDwgbmFuYWZ1c2hpZ2lcIDsKK+a4rOmHj+WjqyA8IHNva3VyeW91c2hpXCA7Civlh7rpoZjmmYIgPCBzaHV0c3VnYW5qaVwgOwor5aCx5b6p6KGM54K6IDwgaG91ZnVrdWtvdWlcIDsKK+S4ieinkueQtCA8IHNhbmtha3Vnb3RvXCA7CivpiYTmnaHntrIgPCB0ZXRzdWpvdW1vdVwgOwor5a6j5Lyd5paH5Y+lIDwgc2VuZGVubW9ua3VcIDsKK+S6jOaIkOaWh+ezuyA8IG5pc2VpYnVua2VpXCA7CivkvZPlhoXmmYLoqIggPCB0YWluYWlkb2tlaVwgOwor57+76Kiz5qipIDwgaG9uJyd5YWt1a2VuXCA7CivnjonmnZPlrZAgPCB0YW1hamFrdXNoaVwgOwor5bel5qWt5Zu9IDwga291Z3lvdWtva3VcIDsKK+e1guWknOmBi+i7oiA8IHNodXV5YXVudGVuXCA7Civlkajml4vmlpkgPCBzaHV1c2VucnlvdVwgOwor6L+95pKD5oimIDwgdHN1aWdla2lzZW5cIDsKK+WKoOmAn+mBi+WLlSA8IGthc29rdXVuZG91XCA7Civlgrfnl4XlhbUgPCBzaG91YnlvdWhlaVwgOwor5b285bK45qGcIDwgaGlnYW56YWt1cmFcIDsKK+WvvuaKl+mDqOmaiiA8IHRhaWtvdWJ1dGFpXCA7CivntZDlqZrosrvnlKggPCBrZWtrb25oaXlvdVwgOwor5LiA5pmC5omVIDwgaWNoaWppYmFyYWlcIDsKK+WGheWuueeJqSA8IG5haXlvdWJ1dHN1XCA7Civou43kuovmlL/mqKkgPCBndW5qaXNlaWtlblwgOwor5pyJ5qmf6L6y5rOVIDwgeXV1a2lub3Vob3VcIDsKK+mYsuihm+mDqOmVtyA8IGJvdWVpYnVjaG91XCA7CivpgYvllrbos4fph5EgPCB1bicnZWlzaGlraW5cIDsKK+aciOimi+iVjum6piA8IHRzdWtpbWlzb2JhXCA7CivkurrnlJ/oiKrot68gPCBqaW5zZWlrb3Vyb1wgOwor54Sh5LiA54mpIDwgbXVpY2hpbW90c3VcIDsKK+eUn+WRveS/nemZuiA8IHNlaW1laWhva2VuXCA7CivlirTlg43lipsgPCByb3Vkb3VyeW9rdVwgOwor5b+c5oCl5omL5b2TIDwgb3VreXV1dGVhdGVcIDsKK+acieW9oueEoeW9oiA8IHl1dWtlaW11a2VpXCA7Civoi6Xnq7nkuq0gPCB3YWthdGFrZXRlaVwgOwor57+76Kiz5pu4IDwgaG9uJyd5YWt1c2hvXCA7CivliLDnnYDpp4UgPCB0b3VjaGFrdWVraVwgOwor55S35b+DIDwgb3Rva29nb2tvcm9cIDsKK+WwkeWbveawkSA8IHNob3Vrb2t1bWluXCA7Civlj5fkv6Hlm57ot68gPCBqdXNoaW5rYWlyb1wgOwor5Y+C6ICD5Zuz5pu4IDwgc2Fua291dG9zaG9cIDsKK+eUn+WtpuWVjyA8IG5hbWFnYWt1bW9uXCA7Civoi7Hpm4TltIfmi50gPCBlaXl1dXN1dWhhaVwgOwor5LuK5pyI5YiGIDwga29uZ2V0c3VidW5cIDsKK+WIhuaVsOW8jyA8IGJ1bnN1dXNoaWtpXCA7Civlj5fpqJPnlarlj7cgPCBqdWtlbmJhbmdvdVwgOwor6YeN6L6y5Li7576pIDwganV1bm91c2h1Z2lcIDsKK+aOiOiznuW8jyA8IGp1c2hvdXNoaWtpXCA7CivmjozkuK3mnKwgPCBzaG91Y2h1dWJvblwgOwor55yB5Yqb5YyWIDwgc2hvdXJ5b2t1a2FcIDsKK+S7o+ihqOagvCA8IGRhaWh5b3VrYWt1XCA7Civorbflm73npZ7npL4gPCBnb2tva3VqaW5qYVwgOwor5pi86IiI6KGMIDwgaGlydWtvdWd5b3VcIDsKK+m7meekuumMsiA8IG1va3VzaGlyb2t1XCA7CivmmI7msrvnpZ7lrq4gPCBtZWlqaWppbmd1dVwgOwor5bCR5pWw5oSP6KaLIDwgc2hvdXN1dWlrZW5cIDsKK+S6uuiZsSA8IGhpdG9zaGlyYW1pXCA7Civmr5Tnv7zpgKPnkIYgPCBoaXlva3VyZW5yaVwgOwor5qSc5a+f5a6YIDwga2Vuc2F0c3VrYW5cIDsKK+S+m+iol+iAhSA8IGt5b3V0YWt1c2hhXCA7CivmtbfnlKPniakgPCBrYWlzYW5idXRzdVwgOwor5pyJ5pyf5bm06YeRIDwgeXV1a2luZW5raW5cIDsKK+i/lOS/oeeUqCA8IGhlbnNoaW4nJ3lvdVwgOwor5LqM5YWD5pS+6YCBIDwgbmlnZW5ob3Vzb3VcIDsKK+iHquS/oemBjuWJsCA8IGppc2hpbmtham91XCA7CivpgYHotbDmm7IgPCB0b25zb3VreW9rdVwgOwor5aWJ57SN55u45pKyIDwgaG91bm91enVtb3VcIDsKK+i+u+W8t+eblyA8IHRzdWppZ291dG91XCA7CivkurrouqvlvqHkvpsgPCBoaXRvbWlnb2t1dVwgOwor5YWs5byP5oimIDwga291c2hpa2lzZW5cIDsKK+S/neitt+aknOadnyA8IGhvZ29rZW5zb2t1XCA7CivliIbnnIzlnLDlm7MgPCBidW5rZW5jaGl6dVwgOwor6Z205LiA6LazIDwga3V0c3Vpc3Nva3VcIDsKK+mYv+irm+i/veW+kyA8IGF5dXRzdWlzaG91XCA7Civpm7vlhYnnn7PngasgPCBkZW5rb3VzZWtrYVwgOwor5rOi54C+5LiH5LiIIDwgaGFyYW5iYW5qb3VcIDsKK+ebuOS6kumWouS/giA8IHNvdWdva2Fua2VpXCA7CivmtaroirHnr4AgPCBuYW5pd2FidXNoaVwgOwor5YaF6YOo5LuV5qeYIDwgbmFpYnVzaGl5b3VcIDsKK+WQhOWkp+WtpiA8IGtha3VkYWlnYWt1XCA7Civnt4/pgIDljbQgPCBzb3V0YWlreWFrdVwgOwor55qu5LiL5rOo5bCEIDwgaGlrYWNodXVzaGFcIDsKK+S5vueHpemHjuiPnCA8IGthbnNvdXlhc2FpXCA7Civnn63mqZ/plqLpioMgPCB0YW5raWthbmp1dVwgOwor54++5Zyw5pmC6ZaTIDwgZ2VuY2hpamlrYW5cIDsKK+WbveawkeacjSA8IGtva3VtaW5mdWt1XCA7CivkuIDnrYnou43mm7kgPCBpdHRvdWd1bnNvdVwgOwor5a6f5Zyo6KuWIDwgaml0c3V6YWlyb25cIDsKK+aVkeaApei7iiA8IGt5dXVreXV1c2hhXCA7CivplpPmjqXnqI4gPCBrYW5zZXRzdXplaVwgOwor542j6YGTIDwga2Vtb25vbWljaGlcIDsKK+WutuW6reeUqOWTgSA8IGthdGVpeW91aGluXCA7CivkubHplovnmbogPCByYW5rYWloYXRzdVwgOwor5omA5biv5Li7IDwgc2hvdGFpbnVzaGlcIDsKK+mJseWxseaKgOW4qyA8IGtvdXphbmdpc2hpXCA7CivpmLLlr5LpnbQgPCBib3VrYW5ndXRzdVwgOwor5LiA5a2Q55u45LydIDwgaXNzaGlzb3VkZW5cIDsKK+S4ieinkuafsSA8IHNhbmtha3VjaHV1XCA7CivkuIDpm6sgPCBoaXRvc2hpenVrdVwgOwor5LuV6Kiz5bizIDwgc2hpd2FrZWNob3VcIDsKK+eymOedgOaApyA8IG5lbmNoYWt1c2VpXCA7CivmmYLpmZDnq4vms5UgPCBqaWdlbnJpcHBvdVwgOwor576K6ZuyIDwgaGl0c3VqaWd1bW9cIDsKK+aEm+WIpembouiLpiA8IGFpYmV0c3VyaWt1XCA7Civlr4bpgKDphZIgPCBtaXRzdXpvdXNodVwgOwor5Zu65a6a6LOH55SjIDwga290ZWlzaGlzYW5cIDsKK+S4gOWknOa8rCA8IGljaGl5YWR6dWtlXCA7Civlkozni6zovp7lhbggPCB3YWRva3VqaXRlblwgOwor55m75qCh5ouS5ZCmIDwgdG91a291a3lvaGlcIDsKK+aWnOinkuafsSA8IHNoYWtha3VjaHV1XCA7CivmvJTlpY/ml4XooYwgPCBlbnNvdXJ5b2tvdVwgOwor5pu455S76aqo6JGjIDwgc2hvZ2Frb3R0b3VcIDsKK+WvvueFp+eahCA8IHRhaXNob3V0ZWtpXCA7CivlvbnkurrpoqggPCB5YWt1bmlua2F6ZVwgOwor6Ii56Ii25qWtIDwgc2VucGFrdWd5b3VcIDsKK+mBi+WLlemBuOaJiyA8IHVuZG91c2Vuc2h1XCA7CivlrablnJLpg73luIIgPCBnYWt1ZW50b3NoaVwgOwor5rC06YGT5bGAIDwgc3VpZG91a3lva3VcIDsKK+Wni+eZuumnhSA8IHNoaWhhdHN1ZWtpXCA7CivmnbHmtIvkuLvnvqkgPCB0b3V5b3VzaHVnaVwgOwor5YyX5qW15ZyPIDwgaG9ra3lva3VrZW5cIDsKK+aXpeeUqOWTgSA8IG5pY2hpeW91aGluXCA7Civlj43pgIbogIUgPCBoYW5neWFrdXNoYVwgOwor5aSn6aKo5ZGC5pW3IDwgb29idXJvc2hpa2lcIDsKK+acieiTi+iyqOi7iiA8IHl1dWdhaWthc2hhXCA7CivmlL/msrvos4fph5EgPCBzZWlqaXNoaWtpblwgOwor55m76Yyy5riIIDwgdG91cm9rdXp1bWlcIDsKK+WwguWjsuWxgCA8IHNlbmJhaWt5b2t1XCA7CivmqKnlipvogIUgPCBrZW5yeW9rdXNoYVwgOwor6KiA6KuW5qmf6ZaiIDwgZ2Vucm9ua2lrYW5cIDsKK+mkiuitt+WtpuagoSA8IHlvdWdvZ2Fra291XCA7CivmgZLkuYXnmoQgPCBrb3VreXV1dGVraVwgOwor6LWw6KGM5pmC6ZaTIDwgc291a291amlrYW5cIDsKK+WPjemAhue9qiA8IGhhbmd5YWt1emFpXCA7CivoqZXkvqHln7rmupYgPCBoeW91a2FraWp1blwgOwor54m5562J5bitIDwgdG9rdXRvdXNla2lcIDsKK+WGheacjeiWrCA8IG5haWZ1a3V5YWt1XCA7Civoh4bnl4XpoqggPCBva3VieW91a2F6ZVwgOwor5L6b57Wm6ICFIDwga3lvdWt5dXVzaGFcIDsKK+W9q+WIu+W4qyA8IGNob3Vrb2t1c2hpXCA7CivmlrDogZ7oqJjkuosgPCBzaGluYnVua2lqaVwgOwor5aSr5ZSx5amm6ZqPIDwgZnVzaG91ZnV6dWlcIDsKK+mbu+WtkOi+nuabuCA8IGRlbnNoaWppc2hvXCA7CivmsYLkurrpm6MgPCBreXV1amluJyduYW5cIDsKK+eMv+i9oSA8IHNhcnVndXRzdXdhXCA7CivoqabmjpjmqKkgPCBzaGlrdXRzdWtlblwgOwor5ZCM5pmC6Yyy6Z+zIDwgZG91amlyb2t1b25cIDsKK+euoeeQhuekvuS8miA8IGthbnJpc2hha2FpXCA7CivkuIDoppblkIzku4EgPCBpc3NoaWRvdWppblwgOwor5qeL6YCg5aSJ5YyWIDwga291em91aGVua2FcIDsKK+WcqOS6rOS4rSA8IHphaWt5b3VjaHV1XCA7CivmlrnnqIvlvI8gPCBob3V0ZWlzaGlraVwgOwor6Z2Z5Yqb5a2mIDwgc2VpcmlraWdha3VcIDsKK+Wls+a1geS9nOWutiA8IGpvcnl1dXNha2thXCA7CivkuIDopqfooaggPCBpY2hpcmFuaHlvdVwgOwor5YyX5pyd6a6uIDwga2l0YWNob3VzZW5cIDsKK+WPuOazleWItuW6piA8IHNoaWhvdXNlaWRvXCA7CivohIjmiYAgPCBteWFrdWRva29yb1wgOwor55m+5Y2D6bOlIDwgbW9tb2NoaWRvcmlcIDsKK+WLpOWLmeS6pOS7oyA8IGtpbm11a291dGFpXCA7Civnn63nt6jmmKDnlLsgPCB0YW5wZW4nJ2VpZ2FcIDsKK+mKg+WJo+ihkyA8IGp1dWtlbmp1dHN1XCA7CivkvJrlk6Hopo/ntIQgPCBrYWlpbmtpeWFrdVwgOwor57SN6aqo5aCCIDwgbm91a290c3Vkb3VcIDsKK+iAs+Wwj+mqqCA8IGppc2hvdWtvdHN1XCA7CivlpKfpnZnohIggPCBkYWlqb3VteWFrdVwgOwor57WM5riI5YqbIDwga2VpemFpcnlva3VcIDsKK+WtpuWNlOS8miA8IGdha3VreW91a2FpXCA7CivkuK3lv4PngrkgPCBjaHV1c2hpbnRlblwgOwor5LqM54K55YWI5Y+WIDwgbml0ZW5zZW5zaHVcIDsKK+WPjeaIpuS4u+e+qSA8IGhhbnNlbnNodWdpXCA7CivmmrTomY7ppq7msrMgPCBib3Vrb2h5b3VnYVwgOwor5YyX5qW15YWJIDwgaG9ra3lva3Vrb3VcIDsKK+mjn+WTgeW6lyA8IHNob2t1aGludGVuXCA7CivpoJjlj47mm7ggPCByeW91c2h1dXNob1wgOwor5bem6IWV5oqV5omLIDwgc2F3YW50b3VzaHVcIDsKK+S9huabuCA8IHRhZGFzaGlnYWtpXCA7CivliY3mnJ/oqabpqJMgPCB6ZW5raXNoaWtlblwgOwor6YCa55+l6KGoIDwgdHN1dWNoaWh5b3VcIDsKK+mAo+eZuumKgyA8IHJlbnBhdHN1anV1XCA7CivmlLvmkoPlgbQgPCBrb3VnZWtpZ2F3YVwgOwor5aSn5Lit5bCPIDwgZGFpY2h1dXNob3VcIDsKK+W5s+Wdh+W+iyA8IGhlaWtpbnJpdHN1XCA7CivotaTmo5/om4cgPCB5YW1ha2FnYXNoaVwgOwor6KKr6YG45oyZ5Lq6IDwgaGlzZW5reW9uaW5cIDsKK+ims+W/teeahCA8IGthbicnbmVudGVraVwgOwor5bCC6ZaA6IG3IDwgc2VubW9uc2hva3VcIDsKK+WFsemAsuS8miA8IGt5b3VzaGlua2FpXCA7Civkv6HnlKjnirYgPCBzaGluJyd5b3Vqb3VcIDsKK+e5lOeJqealrSA8IG9yaW1vbm9neW91XCA7Civog4zlvozplqLkv4IgPCBoYWlnb2thbmtlaVwgOwor6IWw5YiAIDwga29zaGlnYXRhbmFcIDsKK+i2heeJueaApSA8IGNob3V0b2treXV1XCA7Civov5Tkv6HmlpkgPCBoZW5zaGlucnlvdVwgOwor5aOB5paw6IGeIDwga2FiZXNoaW5idW5cIDsKK+mkk+msvOWkp+WwhiA8IGdha2lkYWlzaG91XCA7Civnlarlj7foqJjlj7cgPCBiYW5nb3VraWdvdVwgOwor6J6N6Kej54axIDwgeXV1a2FpbmV0c3VcIDsKK+evgOWNmuWjqyA8IGZ1c2hpaGFrYXNlXCA7CivopovniankurogPCBrZW5idXRzdW5pblwgOwor55m76Yyy5paZIDwgdG91cm9rdXJ5b3VcIDsKK+WRqOaXi+S6uiA8IHNodXVzZW4nJ25pblwgOwor5YiR5LqL6KOc5YSfIDwga2Vpamlob3Nob3VcIDsKK+mrmOm6l+iKnSA8IGtvdXJhaXNoaWJhXCA7CivkuI3opqrliIcgPCBmdXNoaW5zZXRzdVwgOwor6Kaq5ZGK572qIDwgc2hpbmtva3V6YWlcIDsKK+iUpue0heiRiSA8IHRzdXRhbW9taWppXCA7CivkupTnm67prqggPCBnb21va3V6dXNoaVwgOwor57eo6ZuG6ZW3IDwgaGVuc2h1dWNob3VcIDsKK+WHuueJiOalrSA8IHNodXBwYW5neW91XCA7Civoqr/mlZnluKsgPCBjaG91a3lvdXNoaVwgOwor6YCy6aeQ6LuNIDwgc2hpbmNodXVndW5cIDsKK+WIpeWLlemaiiA8IGJldHN1ZG91dGFpXCA7CivpgIblmbTlsIQgPCBneWFrdWZ1bnNoYVwgOwor5LiA5L2T5YWo5L2TIDwgaXR0YWl6ZW50YWlcIDsKK+S6jOWPo+ebriA8IGZ1dGFrdWNoaW1lXCA7CivmtbfpgYvlkIznm58gPCBrYWl1bmRvdW1laVwgOwor5bCC5a6I6Ziy6KGbIDwgc2Vuc2h1Ym91ZWlcIDsKK+WNl+mYv+mAo+mCpiA8IG5hbicnYXJlbnBvdVwgOwor6YCG5ZG96aGMIDwgZ3lha3VtZWlkYWlcIDsKK+eZuuihjOmDqOaVsCA8IGhha2tvdWJ1c3V1XCA7CivliJHkuovoo4HliKQgPCBrZWlqaXNhaWJhblwgOwor5YWs5bmz54Sh56eBIDwga291aGVpbXVzaGlcIDsKK+eJqeS+oeaMh+aVsCA8IGJ1a2thc2hpc3V1XCA7CivnspjnnYDliaQgPCBuZW5jaGFrdXphaVwgOwor5YiR5LqL6KKr5ZGKIDwga2VpamloaWtva3VcIDsKK+eUn+eJqeeVjCA8IHNlaWJ1dHN1a2FpXCA7CivoqJjogIXkvJroposgPCBraXNoYWthaWtlblwgOwor5b6T6LuN6KiY6ICFIDwganV1Z3Vua2lzaGFcIDsKK+epuuawl+aKteaKlyA8IGt1dWtpdGVpa291XCA7CivkupTnm67po68gPCBnb21va3VtZXNoaVwgOwor6LKi54mpIDwgbWl0c3VnaW1vbm9cIDsKK+ePvumHkeato+S+oSA8IGdlbmtpbnNlaWthXCA7CivmjqHmjpjmqKkgPCBzYWlrdXRzdWtlblwgOwor5aSn5ZCM5bCP55WwIDwgZGFpZG91c2hvdWlcIDsKK+eUn+WRveWAq+eQhiA8IHNlaW1laXJpbnJpXCA7CivlhajluYXnmoQgPCB6ZW5wdWt1dGVraVwgOwor6aeG5YuV6KOF572uIDwga3Vkb3Vzb3VjaGlcIDsKK+W9q+WIu+WIgCA8IGNob3Vrb2t1dG91XCA7CivljYPou43kuIfppqwgPCBzZW5ndW5iYW5iYVwgOwor5aSJ5bm76Ieq5ZyoIDwgaGVuZ2Vuaml6YWlcIDsKK+eglOeptuW/gyA8IGtlbmt5dXVzaGluXCA7Civnm7jlr77kuLvnvqkgPCBzb3V0YWlzaHVnaVwgOwor54us5Y2g55qEIDwgZG9rdXNlbnRla2lcIDsKK+mFuOS4reavkiA8IHNhbmNodXVkb2t1XCA7Civou43ljLvlrabmoKEgPCBndW4nJ2lnYWtrb3VcIDsKK+i2heaWsOaYnyA8IGNob3VzaGluc2VpXCA7Civpg73msJHkvJrppKggPCB0b21pbmthaWthblwgOwor5biC5aC05L6h5YCkIDwgc2hpam91a2FjaGlcIDsKK+mgguaItOeJqSA8IGNob3VkYWltb25vXCA7CivlubPlkozoq5bogIUgPCBoZWl3YXJvbnNoYVwgOwor5a6/5rOK5omAIDwgc2h1a3VoYWt1am9cIDsKK+Wwv+e0oOaoueiEgiA8IG55b3Vzb2p1c2hpXCA7Civlo7LljbTnm4ogPCBiYWlreWFrdWVraVwgOwor5o6D6Zmk5b2T55WqIDwgc291aml0b3ViYW5cIDsKK+ani+mAoOW8jyA8IGtvdXpvdXNoaWtpXCA7Civku6PnkIbmiKbkuokgPCBkYWlyaXNlbnNvdVwgOwor5Luj6KGo5L2cIDwgZGFpaHlvdXNha3VcIDsKK+WcsOebpOayiOS4iyA8IGppYmFuY2hpbmthXCA7Civmp4vmiJDkuLvnvqkgPCBrb3VzZWlzaHVnaVwgOwor5q2j5aSa6Z2i5L2TIDwgc2VpdGFtZW50YWlcIDsKK+mBjuWkseeKryA8IGthc2hpdHN1aGFuXCA7CivntJnkuIDmnpogPCBrYW1paWNoaW1haVwgOwor5L+d56iO5Zyw5Z+fIDwgaG96ZWljaGlpa2lcIDsKK+WGjeiqjeitmCA8IHNhaW5pbnNoaWtpXCA7Civkurrlk6HmlbTnkIYgPCBqaW4nJ2luc2VpcmlcIDsKK+miqOeJqeipqSA8IGZ1dWJ1dHN1c2hpXCA7CivkurrplpPku6XliY0gPCBuaW5nZW4nJ2l6ZW5cIDsKK+Wun+mWouaVsCA8IGppdHN1a2Fuc3V1XCA7CivlpKflpb3niakgPCBkYWlrb3VidXRzdVwgOwor5Lmz5r+B5rayIDwgbnl1dWRha3Vla2lcIDsKK+awtOWGt+W8jyA8IHN1aXJlaXNoaWtpXCA7CivlubPpnaLlm7PlvaIgPCBoZWltZW56dWtlaVwgOwor5b+D6YWN5oCnIDwgc2hpbnBhaXNob3VcIDsKK+WuouWupCA8IGt5YWt1c2hpdHN1XCA7Civlroflrpnml4XooYwgPCB1Y2h1dXJ5b2tvdVwgOwor5b6M5aeL5pyrIDwgYXRvc2hpbWF0c3VcIDsKK+WFqOWLouWKmyA8IHplbnNlaXJ5b2t1XCA7CivojZjlnJLliLbluqYgPCBzaG91ZW5zZWlkb1wgOwor6Zui5b+D546HIDwgcmlzaGlucml0c3VcIDsKK+S+m+e1pua6kCA8IGt5b3VreXV1Z2VuXCA7Civoh6rnpL7oo73lk4EgPCBqaXNoYXNlaWhpblwgOwor5Yid5pyf5q616ZqOIDwgc2hva2lkYW5rYWlcIDsKK+WJjemAlOmBvOmBoCA8IHplbnRvcnlvdWVuXCA7CivlpKfmlofnr4AgPCBkYWlidW5zZXRzdVwgOwor5LiA5aSc5aa7IDwgaGl0b3lvZHp1bWFcIDsKK+e1kOWQiOWtkCA8IGtldHN1Z291c2hpXCA7CivmrbvkuqHnjocgPCBzaGlib3VyaXRzdVwgOwor5pmC5bGA5p+EIDwgamlreW9rdWdhcmFcIDsKK+i1pOiRoeiQhOmFkiA8IGFrYWJ1ZG91c2h1XCA7Civljp/lp4vmmYLku6MgPCBnZW5zaGlqaWRhaVwgOwor6YWN5b2T546HIDwgaGFpdG91cml0c3VcIDsKK+aVtOmqqOW4qyA8IHNlaWtvdHN1c2hpXCA7Civlj4LorIDmnKzpg6ggPCBzYW5ib3Vob25idVwgOwor5aWz5a2Q5aSn55SfIDwgam9zaGlkYWlzZWlcIDsKK+mWoueojueOhyA8IGthbnplaXJpdHN1XCA7CivmjpLlpJbpgYvli5UgPCBoYWlnYWl1bmRvdVwgOwor5Lit5q+S5q27IDwgY2h1dWRva3VzaGlcIDsKK+awtOW5s+mjm+ihjCA8IHN1aWhlaWhpa291XCA7CivmnIDliY3liJcgPCBzYWl6ZW5yZXRzdVwgOwor5L2O5Zue6Laj5ZGzIDwgdGVpa2Fpc2h1bWlcIDsKK+S6kuaBteiyv+aYkyA8IGdva2VpYm91ZWtpXCA7CivkurrplpPku6XkuIogPCBuaW5nZW4nJ2lqb3VcIDsKK+W+oeaJgOi7iiA8IGdvc2hvZ3VydW1hXCA7CivlgrLmhaLnhKHnpLwgPCBnb3VtYW5idXJlaVwgOwor5Lq65p+xIDwgaGl0b2Jhc2hpcmFcIDsKK+azleWLmeWnlOWToeS8miA8IGhvdW11aWlua2FpXCA7CivlhoXmm7LnkIMgPCBuYWlreW9ra3l1dVwgOwor5b6S5omL56m65ouzIDwgdG9zaHVrdXVrZW5cIDsKK+S6nOeCreWMlueJqSA8IGF0YW5rYWJ1dHN1XCA7CivmsLTms7PlpKfkvJogPCBzdWllaXRhaWthaVwgOwor6Kej5pWj6KqsIDwga2Fpc2Fuc2V0c3VcIDsKK+eUt+Wls+WQjOaoqSA8IGRhbmpvZG91a2VuXCA7CivlubTph5HliLbluqYgPCBuZW5raW5zZWlkb1wgOwor56m66LuN5Z+65ZywIDwga3V1Z3Vua2ljaGlcIDsKK+Wkp+WSjOaZguS7oyA8IHlhbWF0b2ppZGFpXCA7Civlu7rpgKDniakgPCBrZW56b3VidXRzdVwgOwor5bid546L5YiH6ZaLIDwgdGVpb3VzZWtrYWlcIDsKK+eMruihgOi7iiA8IGtlbmtldHN1c2hhXCA7CivlsI/lk4Hpm4YgPCBzaG91aGluc2h1dVwgOwor6ZyK5a6J5a6kIDwgcmVpYW5zaGl0c3VcIDsKK+WPjeaUv+W6nOWFmiA8IGhhbnNlaWZ1dG91XCA7Civpm6LnnYDpmbggPCByaWNoYWt1cmlrdVwgOwor6ISK6buE6Z2S6bia5ZOlIDwgc2VraXNlaWlua29cIDsKK+atr+enkeeXhemZoiA8IHNoaWthYnlvdWluXCA7Civpq5jph47ogZYgPCBrb3V5YWhpamlyaVwgOwor6LyJ6LKo5bGv5pWwIDwgc2Fpa2F0b25zdXVcIDsKK+aVtOmrquWJpCA8IHNlaWhhdHN1emFpXCA7Civlh6bkuJbooZMgPCBzaG9zZWlqdXRzdVwgOwor6KuW6Kqs5aeU5ZOhIDwgcm9uc2V0c3VpaW5cIDsKK+WLneaJi+asoeesrCA8IGthdHRlc2hpZGFpXCA7CivnqbrmjLrpmorlk6EgPCBrdXV0ZWl0YWlpblwgOwor6Ieq55Sx57WM5riIIDwgaml5dXVrZWl6YWlcIDsKK+aXl+mgrSA8IGhhdGFnYXNoaXJhXCA7CivlrZDlubQgPCBuZXp1bWlkb3NoaVwgOwor5YWr5bmh5a6uIDwgaGFjaGltYW5ndXVcIDsKK+iyoeaUv+egtOe2uyA8IHphaXNlaWhhdGFuXCA7CivmrYzllLHlipsgPCBrYXNob3VyeW9rdVwgOwor5Zue5oqY5pCNIDwga2Fpc2V0c3Vzb25cIDsKK+aUv+ayu+eMrumHkSA8IHNlaWppa2Vua2luXCA7Civpqqjku5XkuosgPCBob25lc2hpZ290b1wgOwor6IeG55eF6ICFIDwgb2t1YnlvdW1vbm9cIDsKK+aXi+miqCA8IHRzdW11amlrYXplXCA7CivmiYvplpPku5XkuosgPCB0ZW1hc2hpZ290b1wgOwor5LiA5pys5Yud6LKgIDwgaXBwb25zaG91YnVcIDsKK+acnemjr+WJjSA8IGFzYW1lc2hpbWFlXCA7Civos6rlrp8gPCBzaGl0c3VqaXRzdVwgOwor5YiK6KGM54mpIDwga2Fua291YnV0c3VcIDsKK+ecvOmPoeapiyA8IG1lZ2FuZWJhc2hpXCA7Civos7zlhaXlhYggPCBrb3VueXV1c2FraVwgOwor5Lit6YCU5Y2K56uvIDwgY2h1dXRvaGFucGFcIDsKK+mAmumBjuWEgOekvCA8IHRzdXVrYWdpcmVpXCA7CivkuLzniakgPCBkb25idXJpbW9ub1wgOwor5byY5LuB5qC8IDwga291bmlua3lha3VcIDsKK+iLseWtl+mbhuWQiCA8IGVpamlzaHV1Z291XCA7CivnvbLlkI3pgYvli5UgPCBzaG9tZWl1bmRvdVwgOwor5aGR5oCn5oyH5pWwIDwgc29zZWlzaGlzdXVcIDsKK+WQiOWQjOWKtOe1hCA8IGdvdWRvdXJvdXNvXCA7CivmnZbmn7EgPCB0c3VlaGFzaGlyYVwgOwor5pen5aSn6Zm4IDwga3l1dXRhaXJpa3VcIDsKK+S4u+euoeapn+mWoiA8IHNodWthbmtpa2FuXCA7CivlpKnmsJfpg73lkIggPCB0ZW5raXRzdWdvdVwgOwor5YW15Zmo5bel5aC0IDwgaGVpa2lrb3Vqb3VcIDsKK+S4i+eevCA8IHNoaXRhbWFidXRhXCA7CivoqLrlr5/ml6UgPCBzaGluc2F0c3ViaVwgOwor5bmz5rCR5Li7576pIDwgaGVpbWluc2h1Z2lcIDsKK+WutuaXj+S8muitsCA8IGthem9rdWthaWdpXCA7CivmnbHlrq7ogbcgPCB0b3VndXVzaG9rdVwgOwor5rib5YK15Z+66YeRIDwgZ2Vuc2Fpa2lraW5cIDsKK+itpuWvn+e9siA8IGtlaXNhdHN1c2hvXCA7Civlhpfoq4flj6MgPCBqb3VkYW5ndWNoaVwgOwor57mU54mp5ZWGIDwgb3JpbW9ub3Nob3VcIDsKK+elluWFiOW0h+aLnSA8IHNvc2Vuc3V1aGFpXCA7CivlhavovrrlvaIgPCBoYWNoaWhlbmtlaVwgOwor6Yed5LuV5LqLIDwgaGFyaXNoaWdvdG9cIDsKK+S6i+Wkp+aAneaDsyA8IGppZGFpc2hpc291XCA7Civlpb3kurrniakgPCBrb3VqaW5idXRzdVwgOwor5Zyw5aC055Sj5qWtIDwgamliYXNhbmd5b3VcIDsKK+W+geacjeassiA8IHNlaWZ1a3V5b2t1XCA7CivpgKPpgqblm73lrrYgPCByZW5wb3Vrb2trYVwgOwor56uL5oay5Li7576pIDwgcmlra2Vuc2h1Z2lcIDsKK+adieaelyA8IHN1Z2liYXlhc2hpXCA7Civop6PoqqzogIUgPCBrYWlzZXRzdXNoYVwgOwor5bqD5ZGK5qWtIDwga291a29rdWd5b3VcIDsKK+WFq+aWuee+juS6uiA8IGhhcHBvdWJpamluXCA7CivlibXnq4vogIUgPCBzb3VyaXRzdXNoYVwgOwor6Kej54ax6JasIDwgZ2VuZXRzdXlha3VcIDsKK+aXpeabnOeJiCA8IG5pY2hpeW91YmFuXCA7CivmlrDlv6vpgJ8gPCBzaGlua2Fpc29rdVwgOwor5bGL5qC56KOP6YOo5bGLIDwgeWFuZXVyYWJleWFcIDsKK+S4lueVjOaDheWLoiA8IHNla2Fpam91c2VpXCA7CivkuI3lv6vmjIfmlbAgPCBmdWthaXNoaXN1dVwgOwor6YGg5rSL6Iiq6LevIDwgZW4nJ3lvdWtvdXJvXCA7CivkuK3lubTogIUgPCBjaHV1bmVubW9ub1wgOwor5Zu95a6257WM5riIIDwga29ra2FrZWl6YWlcIDsKK+aItOWGoOW8jyA8IHRhaWthbnNoaWtpXCA7Civoh6jmmYLlopfliIogPCByaW5qaXpvdWthblwgOwor6Lu95qWt5birIDwga2FydXdhemFzaGlcIDsKK+S4reW/g+WcsCA8IGNodXVzaGluY2hpXCA7CivllYbmhaPnv5IgPCBzaG91a2Fuc2h1dVwgOwor55Sf54mp5oimIDwgc2VpYnV0c3VzZW5cIDsKK+aVkeaApeazlSA8IGt5dXVreXV1aG91XCA7Civpo5/liY3phZIgPCBzaG9rdXplbnNodVwgOwor5YWs5q2m5ZCI5L2TIDwga291YnVnYXR0YWlcIDsKK+a3seWknOaXjyA8IHNoaW4nJ3lhem9rdVwgOwor5LqI6K6a5pys57eaIDwgeW9zYW5ob25zZW5cIDsKK+agueacrOS4u+e+qSA8IGtvbnBvbnNodWdpXCA7Civov6vmkoPnoLIgPCBoYWt1Z2VraWhvdVwgOwor6Z2e5bi46K2m5oiSIDwgaGlqb3VrZWlrYWlcIDsKK+S4reWkruaUv+W6nCA8IGNodXVvdXNlaWZ1XCA7CivpgLLou43kuK0gPCBzaGluZ3VuY2h1dVwgOwor5aqS6YWM5Lq6IDwgYmFpc2hha3VuaW5cIDsKK+S4oeaAp+eahCA8IHJ5b3VzZWl0ZWtpXCA7CivliLrnirbnqoHotbcgPCBzaGlqb3V0b2traVwgOwor5r2c5Yui5YqbIDwgc2Vuc2Vpcnlva3VcIDsKK+WFrOeahOaJtuWKqSA8IGtvdXRla2lmdWpvXCA7CivlkIjmiJDmqLnohIIgPCBnb3VzZWlqdXNoaVwgOwor5Ymy6LOm6LO86LK3IDwga2FwcHVrb3ViYWlcIDsKK+S/neWBpeWupCA8IGhva2Vuc2hpdHN1XCA7CivluoPlkYrmlpkgPCBrb3Vrb2t1cnlvdVwgOwor6YCf5Yqb5bqmIDwgc29rdXJ5b2t1ZG9cIDsKK+ebhuaPkOeBryA8IGJvbmRqb3VjaGluXCA7CivmnKrmnaXmjIflkJEgPCBtaXJhaXNoaWtvdVwgOwor6Ieq55Sx5pS+5Lu7IDwgaml5dXVob3VuaW5cIDsKK+iHqui7ouWRqOacnyA8IGppdGVuc2h1dWtpXCA7CivogbTnpZ7ntYwgPCBjaG91c2hpbmtlaVwgOwor6LaF5aSn5Zu9IDwgY2hvdXRhaWtva3VcIDsKK+WHuueJiOWFgyA8IHNodXBwYW5tb3RvXCA7Civppqzpub/lipsgPCBiYWthZGppa2FyYVwgOwor6Ieq5bex5Li75by1IDwgamlrb3NodWNob3VcIDsKK+aZkuiAhSA8IHNhcmFzaGltb25vXCA7CivpmbjljYrnkIMgPCByaWt1aGFua3l1dVwgOwor5Y2D6KiA5LiH6KqeIDwgc2VuZ2VuYmFuZ29cIDsKK+e1seeOh+iAhSA8IHRvdXNvdHN1c2hhXCA7CivlhazlhbHlv4MgPCBrb3VreW91c2hpblwgOwor5b6S5q2p56u26LWwIDwgdG9ob2t5b3Vzb3VcIDsKK+imquWWhOippuWQiCA8IHNoaW56ZW5qaWFpXCA7CivnqpLntKDlm7rlrpogPCBjaGlzc29rb3RlaVwgOwor5Lit5YWx6LuNIDwgY2h1dWt5b3VndW5cIDsKK+a8gueZveWJpCA8IGh5b3VoYWt1emFpXCA7Civlj47lhaXmupAgPCBzaHV1bnl1dWdlblwgOwor5rW35LiK5L+d6Zm6IDwga2Fpam91aG9rZW5cIDsKK+auv+anmOmiqCA8IHRvbm9zYW1hZnV1XCA7Civlv4PphY3kuosgPCBzaGlucGFpZ290b1wgOwor6aOb6KGM55Sy5p2/IDwgaGlrb3Vrb3ViYW5cIDsKK+aMh+WwjuS4u+S6iyA8IHNoaWRvdXNodWppXCA7Civnm7jkupLpioDooYwgPCBzb3Vnb2dpbmtvdVwgOwor6LuN5Y+45Luk6YOoIDwgZ3Vuc2hpcmVpYnVcIDsKK+iruOS6i+S4h+erryA8IHNob2ppYmFudGFuXCA7CivlirTngb3kv53pmbogPCByb3VzYWlob2tlblwgOwor5aSq6Zm954axIDwgdGFpeW91bmV0c3VcIDsKK+WIpOaxuuaWhyA8IGhhbmtldHN1YnVuXCA7CivmmYLovKrph5HliZsgPCBqaXJpbmtvbmdvdVwgOwor5oSP5rCX6Yq35rKIIDwgaWtpc2hvdWNoaW5cIDsKK+S/oeS7sOeahCA8IHNoaW5rb3V0ZWtpXCA7Civohp3mi43lrZAgPCBoaXphYnlvdXNoaVwgOwor6Zai56iO5Zue6YG/IDwga2FuemVpa2FpaGlcIDsKK+ebsuebrueahCA8IG1vdW1va3V0ZWtpXCA7CivnpZ7pgJrlipsgPCBqaW50c3V1cmlraVwgOwor5YWx5ZKM5Li7576pIDwga3lvdXdhc2h1Z2lcIDsKK+aBkOWmu+eXhSA8IGt5b3VzYWlieW91XCA7CivpmL/lpJrnpo/poqjpgqogPCBvdGFmdWt1a2F6ZVwgOwor5LqI6Ziy5oim5LqJIDwgeW9ib3VzZW5zb3VcIDsKK+mFuOaAp+Wcn+WjjCA8IHNhbnNlaWRvam91XCA7Civlv6Dlrp/luqYgPCBjaHV1aml0c3Vkb1wgOwor5L+h5Lu754q2IDwgc2hpbicnbmluam91XCA7Civkurrouqvkv53orbcgPCBqaW5zaGluaG9nb1wgOwor5Lit5p+xIDwgbmFrYWJhc2hpcmFcIDsKK+aWsOWPguiAhSA8IHNoaW56YW5tb25vXCA7CivlubTph5Hkv53pmbogPCBuZW5raW5ob2tlblwgOwor5oyH5ZCR6KiA6KqeIDwgc2hpa291Z2VuZ29cIDsKK+W3oeafu+mDqOmVtyA8IGp1bnNhYnVjaG91XCA7CivnnJ/niq/kurogPCBzaGluaGFuJyduaW5cIDsKK+eLuOeIuiA8IHRhbnVraWppamlpXCA7Civkv53oqLzmnJ/plpMgPCBob3Nob3VraWthblwgOwor5LiN5rOV55uj56aBIDwgZnVob3VrYW5raW5cIDsKK+W+oeiLpuWKtOanmCA8IGdva3Vyb3VzYW1hXCA7Civorablr5/niqwgPCBrZWlzYXRzdWtlblwgOwor6Ieq5rK75aSn6IejIDwgamljaGlkYWlqaW5cIDsKK+eri+S9k+S6pOW3riA8IHJpdHRhaWtvdXNhXCA7Civnq5zpoK3om4flsL4gPCByeXV1dG91ZGFiaVwgOwor5YWF6Zu75pyf6ZaTIDwganV1ZGVua2lrYW5cIDsKK+WPouaZgumbqCA8IG11cmFzaGlndXJlXCA7Civmtbfpo5/mtJ4gPCBrYWlzaG9rdWRvdVwgOwor6KiY5oa25aqS5L2TIDwga2lva3ViYWl0YWlcIDsKK+WroeWupCA8IGNoYWt1c2hpdHN1XCA7Civlj4LliJfogIUgPCBzYW5yZXRzdXNoYVwgOwor6aSK6K235pWZ6KutIDwgeW91Z29reW91eXVcIDsKK+S6uuacrOS4u+e+qSA8IGppbnBvbnNodWdpXCA7CivmtbfmtIvmipXmo4QgPCBrYWl5b3V0b3VraVwgOwor55Sf54mp5ZyPIDwgc2VpYnV0c3VrZW5cIDsKK+S+m+e1puWcsCA8IGt5b3VreXV1Y2hpXCA7CivlubLmuInnuJ4gPCBrYW5zaG91amltYVwgOwor54us5Ym155qEIDwgZG9rdXNvdXRla2lcIDsKK+S4jemaj+aEj+mBi+WLlSA8IGZ1enVpaXVuZG91XCA7CivlkozmrYzlsbHnnIwgPCB3YWtheWFtYWtlblwgOwor5aSq6Zm96Zu75rOiIDwgdGFpeW91ZGVucGFcIDsKK+eQhuenkeWkp+WtpiA8IHJpa2FkYWlnYWt1XCA7Civmn5PoibLkvZMgPCBzZW5zaG9rdXRhaVwgOwor5bqn6aCt6a+oIDwgemF0b3VrdWppcmFcIDsKK+i/keihm+W4q+WboyA8IGtvbm9lc2hpZGFuXCA7CivkuIDooaPluK/msLQgPCBpY2hpaXRhaXN1aVwgOwor6LOH5pys5Li7576pIDwgc2hpaG9uc2h1Z2lcIDsKK+eLkOeMvyA8IGtpdHN1bmV6YXJ1XCA7Civoh6rnlLHntZDlqZogPCBqaXl1dWtla2tvblwgOwor5b+F6aCI56eR55uuIDwgaGlzc3VrYW1va3VcIDsKK+i/keS7o+S4u+e+qSA8IGtpbmRhaXNodWdpXCA7CivmnbHljJcgPCBoaWdhc2hpa2l0YVwgOwor5a6I6K235aSp5L2/IDwgc2h1Z290ZW5zaGlcIDsKK+aXpeacrOiqnuaWh+WtlyA8IG5paG9uZ29tb2ppXCA7CivkvZzmpa3pg6jkvJogPCBzYWd5b3VidWthaVwgOwor6YO95biC5YaN55SfIDwgdG9zaGlzYWlzZWlcIDsKK+ebrueahOirliA8IG1va3V0ZWtpcm9uXCA7CivnnIHnlaXmmYIgPCBzaG91cnlha3VqaVwgOwor5LiD5pyIIDwgc2hpY2hpZ2F0c3VcIDsKK+W5vOeUn+WZqOWumCA8IHlvdXNlaWtpa2FuXCA7CivlvqHnlKjntYTlkIggPCBnb3lvdWt1bWlhaVwgOwor6LuN5LqL5ryU57+SIDwgZ3VuamllbnNodXVcIDsKK+efs+eCreauuyA8IHNla2l0YW5nYXJhXCA7CivliIboo4LmgKcgPCBidW5yZXRzdXNlaVwgOwor55+t57iu5b2iIDwgdGFuc2h1a3VrZWlcIDsKK+S6uumBk+S4u+e+qSA8IGppbmRvdXNodWdpXCA7CivliY3lj7LmmYLku6MgPCB6ZW5zaGlqaWRhaVwgOwor5rW35LiK5bCB6Y6WIDwga2Fpam91ZnV1c2FcIDsKK+acieiBt+iAhSA8IHl1dXNob2t1c2hhXCA7CivmhI/lkbPmt7HplbcgPCBpbWlzaGluY2hvdVwgOwor5LiA5piUIDwgaGl0b211a2FzaGlcIDsKK+imquWSjOWKmyA8IHNoaW53YXJ5b2t1XCA7CivkuqTpgJrpgZXlj40gPCBrb3V0c3V1aWhhblwgOwor5YWI44CF5pyIIDwgc2Vuc2VuZ2V0c3VcIDsKK+Wbm+WNgeWFq+aJiyA8IHlvbmp1dWhhdHRlXCA7CivmiYvlt7vlr7/lj7ggPCB0ZW1ha2l6dXNoaVwgOwor5pyJ5L2T54mpIDwgeXV1dGFpYnV0c3VcIDsKK+adseWBtCA8IGhpZ2FzaGlnYXdhXCA7Civnn63ntaHnmoQgPCB0YW5yYWt1dGVraVwgOwor5YWs6ZaL6Kyb5bqnIDwga291a2Fpa291emFcIDsKK+eJh+iogOmau+WPpSA8IGhlbmdlbnNla2t1XCA7CivprYXlipvnmoQgPCBtaXJ5b2t1dGVraVwgOwor5YyW5a2m5byPIDwga2FnYWt1c2hpa2lcIDsKK+S4gOaSriA8IGhpdG90c3VtYW1pXCA7CivlpKrpmb3ml6UgPCB0YWl5b3VqaXRzdVwgOwor6auY6Zai56iO5YyWIDwga291a2FuemVpa2FcIDsKK+mBi+mAgeS8muekviA8IHVuc291Z2Fpc2hhXCA7CivmnbHlrq7lvqHmiYAgPCB0b3VndXVnb3Nob1wgOwor5bu25rue5Yip5oGvIDwgZW50YWlyaXNva3VcIDsKK+mHjueQg+eGsSA8IHlha3l1dW5ldHN1XCA7Civngavngb3orabloLEgPCBrYXNhaWtlaWhvdVwgOwor6aO+5LuYIDwga2F6YXJpdHN1a2VcIDsKK+e3j+aMh+aPruWumCA8IHNvdXNoaWtpa2FuXCA7CivmlL7pgIHmmYLplpMgPCBob3Vzb3VqaWthblwgOwor54ax5rCX55CDIDwgbmV0c3VraWt5dXVcIDsKK+epuuaDs+WKmyA8IGt1dXNvdXJ5b2t1XCA7CivmnInlrrPnhKHnm4ogPCB5dXVnYWltdWVraVwgOwor6Z2Z5bKh55yMIDwgc2hpenVva2FrZW5cIDsKK+WppuS6uuWVj+mhjCA8IGZ1amlubW9uZGFpXCA7CivmmbTogJXpm6joqq0gPCBzZWlrb3V1ZG9rdVwgOwor5Y+N6YCG5Lq6IDwgaGFuZ3lha3VuaW5cIDsKK+afk+mrquWJpCA8IHNlbnBhdHN1emFpXCA7Civlhajouqvnl4UgPCB6ZW5zaGluYnlvdVwgOwor5LiN5paH5oay5rOVIDwgZnVidW5rZW5wb3VcIDsKK+iFueipseihkyA8IGZ1a3V3YWp1dHN1XCA7CivkuIDlr7jms5XluKsgPCBpc3N1bmJvdXNoaVwgOwor5Y+v6IO95YuV6KmeIDwga2Fub3Vkb3VzaGlcIDsKK+a1gemHj+ioiCA8IHJ5dXVyeW91a2VpXCA7Civlrozlhajpm4fnlKggPCBrYW56ZW5rb3lvdVwgOwor57ea57mU6Z2iIDwgc2Vuc2hpa2ltZW5cIDsKK+WujOe1kOe3qCA8IGthbmtldHN1aGVuXCA7Civlia/pvLvohZTngo4gPCBmdWt1YmlrdXVlblwgOwor5a2m55Sf6Ki8IDwgZ2FrdXNlaXNob3VcIDsKK+mAoOW5o+WxgCA8IHpvdWhlaWt5b2t1XCA7CivoqqzmmI7mm7ggPCBzZXRzdW1laXNob1wgOwor6Ieq57Wm546HIDwgamlreXV1cml0c3VcIDsKK+WkmuWFg+aUvumAgSA8IHRhZ2VuaG91c291XCA7CivmiZPnianluKsgPCB1Y2hpbW9ub3NoaVwgOwor5rCX5oGv5aWE5aWEIDwga2lzb2t1ZW4nJ2VuXCA7Civmg6jmrrrogIUgPCB6YW5zYXRzdXNoYVwgOwor56Ov5be+552AIDwgaXNvZ2luY2hha3VcIDsKK+mHiOi/puWmguadpSA8IHNoYWthbnlvcmFpXCA7CivkuojntITlkI3nsL8gPCB5b3lha3VtZWlib1wgOwor6Ki85Lq65bitIDwgc2hvdW5pbnNla2lcIDsKK+WroeWHuiA8IGNoYWt1c2h1dHN1XCA7CivkuI3osrflkIznm58gPCBmdWJhaWRvdW1laVwgOwor5LiL5b+DIDwgc2hpdGFnb2tvcm9cIDsKK+iLpeeZvemrqiA8IHdha2FzaGlyYWdhXCA7CivpnZ7osrflkIznm58gPCBoaWJhaWRvdW1laVwgOwor5pWw5a2m55qEIDwgc3V1Z2FrdXRla2lcIDsKK+ebtOWGhuafsSA8IGNob2t1ZW5jaHV1XCA7CivoqqzmmI7mlocgPCBzZXRzdW1laWJ1blwgOwor55u45a++5pWs6KqeIDwgc291dGFpa2VpZ29cIDsKK+e1jOa4iOeJueWMuiA8IGtlaXphaXRva2t1XCA7Civku7vmhI/lm6PkvZMgPCBuaW4nJ2lkYW50YWlcIDsKK+awtOeUo+eJqSA8IHN1aXNhbmJ1dHN1XCA7CivmjqXmlbXnp7vli5UgPCBzZXR0ZWtpaWRvdVwgOwor5pWZ5YmH5pysIDwga3lvdXNva3Vib25cIDsKK+mwpeWvoeWtpOeLrCA8IGthbmtha29kb2t1XCA7CivkuZnlpbPlv4MgPCBvdG9tZWdva29yb1wgOwor55u45a++5aOy6LK3IDwgYWl0YWliYWliYWlcIDsKK+eEoeS6uuW3peWgtCA8IG11amlua291am91XCA7CivmiKbli53lm70gPCBzZW5zaG91a29rdVwgOwor5Y2X5YyX5pydIDwgbmFuYm9rdWNob3VcIDsKK+Wkj+ihoyA8IG5hdHN1Z29yb21vXCA7Civlubvmg7Pmm7IgPCBnZW5zb3VreW9rdVwgOwor5LiN5o+b57SZ5bmjIDwgZnVrYW5zaGloZWlcIDsKK+aXheiIiOihjCA8IHRhYmlrb3VneW91XCA7Civnm7jkuZfkvZznlKggPCBzb3Vqb3VzYXlvdVwgOwor5LqI566X5LiN6LazIDwgeW9zYW5mdXNva3VcIDsKK+ixhumbu+eQgyA8IG1hbWVkZW5reXV1XCA7Civop6Poqqzmm7ggPCBrYWlzZXRzdXNob1wgOwor6Jas55CG5L2c55SoIDwgeWFrdXJpc2F5b3VcIDsKK+e/vOaJi+ebriA8IHlva3VzaHVtb2t1XCA7CivlqZrntITogIUgPCBrb24nJ3lha3VzaGFcIDsKK+eCuuabv+euoeeQhiA8IGthd2FzZWthbnJpXCA7Civpg6HlvbnmiYAgPCBndW4nJ3lha3VzaG9cIDsKK+efpeitmOWxpCA8IGNoaXNoaWtpc291XCA7CivkuovliY3ljZTorbAgPCBqaXNlbmt5b3VnaVwgOwor5Y6a6aGU54Sh5oGlIDwga291Z2FubXVjaGlcIDsKK+aSnuacqOmuqyA8IHNodW1va3V6YW1lXCA7CivnobzphbjmnKsgPCBob3VzYW5tYXRzdVwgOwor5a6J5YWo6KOF572uIDwgYW56ZW5zb3VjaGlcIDsKK+Wmluihk+iAhSA8IHlvdWp1dHN1c2hhXCA7CivkvZnnmb3poIEgPCB5b2hha3VwZWVqaVwgOwor57Wx5LiA55qEIDwgdG91aXRzdXRla2lcIDsKK+epuuawl+aEn+afkyA8IGt1dWtpa2Fuc2VuXCA7CivmsLTpgZPlt6XkuosgPCBzdWlkb3Vrb3VqaVwgOwor5LiA57SZ5Y2K6YqtIDwgaXNzaGloYW5zZW5cIDsKK+WPjeWwhOmBi+WLlSA8IGhhbnNoYXVuZG91XCA7CivouqvpmpzogIUgPCBzaGluc2hvdXNoYVwgOwor6aOf5Y2T5aGpIDwgc2hva3V0YWt1ZW5cIDsKK+WFq+Wtl+mrrSA8IGhhY2hpamloaWdlXCA7CivlvqnmtLvnpa0gPCBmdWtrYXRzdXNhaVwgOwor5Li755Sj54mpIDwgc2h1c2FuYnV0c3VcIDsKK+e+juihk+eahCA8IGJpanV0c3V0ZWtpXCA7CivloanpoZ7murbmtrIgPCBlbnJ1aXlvdWVraVwgOwor54+N54++6LGhIDwgY2hpbmdlbnNob3VcIDsKK+S4ieeonOmPoSA8IHNhbnJ5b3VreW91XCA7CivlpJbkurrpg6jpmoogPCBnYWlqaW5idXRhaVwgOwor5oud6YeR5Li7576pIDwgaGFpa2luc2h1Z2lcIDsKK+Wkp+mZuOajmiA8IHRhaXJpa3VkYW5hXCA7Civmrr/mp5joirggPCB0b25vc2FtYWdlaVwgOwor5rW36aOf5bSWIDwga2Fpc2hva3VnYWlcIDsKK+WFg+emhOiiliA8IGdlbnJva3Vzb2RlXCA7CivnlbDkvZPlkIzlv4MgPCBpdGFpZG91c2hpblwgOwor5LmX5pWw5Yq55p6cIDwgam91c3V1a291a2FcIDsKK+WFqOebm+aZguS7oyA8IHplbnNlaWppZGFpXCA7CivmlofmlZnml48gPCBidW5reW91em9rdVwgOwor6Z2i5ZCR5LiN6IOMIDwgbWVua291ZnVoYWlcIDsKK+W5s+WSjOe2reaMgei7jSA8IGhlaXdhaWppZ3VuXCA7Civmub/luqboqIggPCBzaGl0c3Vkb2tlaVwgOwor5Y+s6ZuG6ICFIDwgc2hvdXNodXVzaGFcIDsKK+epuueQhuepuuirliA8IGt1dXJpa3V1cm9uXCA7CivlhavmpbXmi7MgPCBoYWtreW9rdWtlblwgOwor5L+h5Luw5b+DIDwgc2hpbmtvdXNoaW5cIDsKK+S6uuS4gOWAjSA8IGhpdG9pY2hpYmFpXCA7CivlkIjooYblm70gPCBnYXNzaHV1a29rdVwgOwor5qmf6Zai5a6kIDwga2lrYW5zaGl0c3VcIDsKK+mdnuW4uOmajuautSA8IGhpam91a2FpZGFuXCA7Civlgrfnl43ou43kurogPCBzaG91aWd1bmppblwgOwor5Ya35Y205rayIDwgcmVpa3lha3Vla2lcIDsKK+a8geeNsumrmCA8IGd5b2tha3VkYWthXCA7CivlhaznlKjniakgPCBrb3V5b3VidXRzdVwgOwor5Y2Y55m66YqDIDwgdGFucGF0c3VqdXVcIDsKK+S4jeWXnCA8IGJ1dGFzaGluYW1pXCA7CivmnIjos6bosqnlo7IgPCBnZXBwdWhhbmJhaVwgOwor5LiH5LiW5LiA57O7IDwgYmFuc2VpaWtrZWlcIDsKK+esrOS6jOmDqOmVtyA8IGRhaW5pYnVjaG91XCA7Civpm4DonIIgPCBzdXp1bWViYWNoaVwgOwor6KGM5YSA5L2c5rOVIDwgZ3lvdWdpc2Fob3VcIDsKK+mHjeWKoOeul+eojiA8IGp1dWthc2FuemVpXCA7CivlhrfljbTmsLQgPCByZWlreWFrdXN1aVwgOwor54yu56uL6KGoIDwga29uZGF0ZWh5b3VcIDsKK+S4gOW/g+S4jeS5sSA8IGlzc2hpbmZ1cmFuXCA7Civou43kuovoo4HliKQgPCBndW5qaXNhaWJhblwgOwor6Iul6I2J6ImyIDwgd2FrYWt1c2Fpcm9cIDsKK+eFp+aYjuWZqOWFtyA8IHNob3VtZWlraWd1XCA7CivkuInlm73kuIAgPCBzYW5nb2t1aWNoaVwgOwor552j5L+D54q2IDwgdG9rdXNva3Vqb3VcIDsKK+WxjemZgOael+eOiyA8IHNoaWRhcmluJydvdVwgOwor5Luu5Y+X5Y+WIDwga2FyaXVrZXRvcmlcIDsKK+mBjuWOu+WujOS6hiA8IGtha29rYW5yeW91XCA7CivmiKblvozmrKflt54gPCBzZW5nb291c2h1dVwgOwor6KKL5bCP6LevIDwgZnVrdXJva291amlcIDsKK+itpuWvn+WumCA8IGtlaXNhdHN1a2FuXCA7CivpppbohLPkvJrorbAgPCBzaHVub3VrYWlnaVwgOwor5a625bqt5paZ55CGIDwga2F0ZWlyeW91cmlcIDsKK+aXpeacrOmKgOihjCA8IG5paG9uZ2lua291XCA7Civoh6rnhLblvosgPCBzaGl6ZW5yaXRzdVwgOwor6IG35YuZ57WmIDwgc2hva3VtdWt5dXVcIDsKK+mBoOS6pOi/keaUuyA8IGVua291a2lua291XCA7Civml4vlm57pgYvli5UgPCBzZW5rYWl1bmRvdVwgOwor55mC6aSK5LitIDwgcnlvdXlvdWNodXVcIDsKK+WQiOaIkOeJqSA8IGdvdXNlaWJ1dHN1XCA7CivluLDlm73lrZDlpbMgPCBraWtva3VzaGlqb1wgOwor5LiJ6KGM5Y2KIDwgbWlrdWRhcmloYW5cIDsKK+ihjOaUv+WtpiA8IGd5b3VzZWlnYWt1XCA7Civlrp/ooYzlipsgPCBqaWtrb3VyeW9rdVwgOwor6ZW354Gr6YmiIDwgbmFnYWhpYmFjaGlcIDsKK+mbjOmbhOa3mOaxsCA8IHNoaXl1dXRvdXRhXCA7Civmtbfpo5/lj7AgPCBrYWlzaG9rdWRhaVwgOwor6YO15L6/54mpIDwgeXV1YmluYnV0c3VcIDsKK+mKgOacrOS9jeWItiA8IGdpbmhvbicnaXNlaVwgOwor56m65rCX5p6VIDwga3V1a2ltYWt1cmFcIDsKK+WlqOWtpumHkSA8IHNob3VnYWt1a2luXCA7CivntYTpoK0gPCBrdW1pZ2FzaGlyYVwgOwor6Ieq5qWt6Ieq5b6XIDwgamlnb3VqaXRva3VcIDsKK+WFrOeUn+a0uyA8IGtvdXNlaWthdHN1XCA7Civpga7olL3niakgPCBzaGFoZWlidXRzdVwgOwor5Li75qC86KOc6KqeIDwgc2h1a2FrdWhvZ29cIDsKK+e1uee5lOeJqSA8IGtpbnVvcmltb25vXCA7CivoirjooZPoq5YgPCBnZWlqdXRzdXJvblwgOwor5YKY5b2i5Zmo5a6YIDwgc2Fua2Vpa2lrYW5cIDsKK+iWrOWKueeJqSA8IHlha2tvdWJ1dHN1XCA7Civnt5HomasgPCBtaWRvcmltdXNoaVwgOwor6Zu75YyW6KO95ZOBIDwgZGVua2FzZWloaW5cIDsKK+W6reS7leS6iyA8IG5pd2FzaGlnb3RvXCA7Civos4fnlKPkvqHlgKQgPCBzaGlzYW5rYWNoaVwgOwor5oKq6LOq5YyWIDwgYWt1c2hpdHN1a2FcIDsKK+S4reWkruertummrCA8IGNodXVvdWtlaWJhXCA7Civnn6XorZjkurogPCBjaGlzaGlraWppblwgOwor6LWk5a2X6LKh5pS/IDwgYWthaml6YWlzZWlcIDsKK+eZveWGhemanCA8IGhha3VuYWlzaG91XCA7CivmlL/msrvkuqHlkb0gPCBzZWlqaWJvdW1laVwgOwor5LqU5Y2B5bm056WtIDwgZ29qdXVuZW5zYWlcIDsKK+mBuuaXj+W5tOmHkSA8IGl6b2t1bmVua2luXCA7Civkurrlt6XmoITppIogPCBqaW5rb3VlaXlvdVwgOwor5pOs5Y+k5YW455qEIDwgZ2lrb3RlbnRla2lcIDsKK+alveWkqeeahCA8IHJha3V0ZW50ZWtpXCA7Civpm7vmsJfkvJrnpL4gPCBkZW5raWdhaXNoYVwgOwor5rCX6ZqP5rCX5YSYIDwga2l6dWlraW1hbWFcIDsKK+WIpeWLmOWumiA8IGJldHN1a2Fuam91XCA7Civph5HmnZPlrZAgPCBrYW5hamFrdXNoaVwgOwor6ZW35aSn5oGvIDwgY2hvdXRhaXNva3VcIDsKK+iBtOWPluaWmSA8IGNob3VzaHVyeW91XCA7CivnhKHlj43li5XpioMgPCBtdWhhbmRvdWp1dVwgOwor6YGg5b+D5YiG6ZuiIDwgZW5zaGluYnVucmlcIDsKK+WgtOWklummrOWIuCA8IGpvdWdhaWJha2VuXCA7CivpnZLlubTmmYLku6MgPCBzZWluZW5qaWRhaVwgOwor6aC46Z2Z6ISIIDwga2Vpam91bXlha3VcIDsKK+a8geeNsumHjyA8IGd5b2tha3VyeW91XCA7Civoqp7lrablipsgPCBnb2dha3VyeW9rdVwgOwor5rqW5YKZ5a6kIDwganVuYmlzaGl0c3VcIDsKK+S4reW5tOWilyA8IGNodXVkb3NoaW1hXCA7Civoh6rnlLHllY/poYwgPCBqaXl1dW1vbmRhaVwgOwor5ryr55S76ZuR6KqMIDwgbWFuZ2F6YXNzaGlcIDsKK+S6nOmJm+S4reavkiA8IGFlbmNodXVkb2t1XCA7Civog4znrYvlipsgPCBoYWlraW5yeW9rdVwgOwor5omA5pyJ54mpIDwgc2hveXV1YnV0c3VcIDsKK+elluWFiOS8neadpSA8IHNvc2VuZGVucmFpXCA7CivnlKPlnJ/npZ4gPCB1YnVzdW5hZ2FtaVwgOwor6Zuq56SrIDwgeXVraXRzdWJ1dGVcIDsKK+aal+i1pOiJsiA8IGFuc2VraXNob2t1XCA7Civku5Xnq4vniakgPCBzaGl0YXRlbW9ub1wgOwor5LiA5YWa5pSv6YWNIDwgaXR0b3VzaGloYWlcIDsKK+aXl+aomSA8IGhhdGFqaXJ1c2hpXCA7CivlpKLnj74gPCB5dW1ldXRzdXRzdVwgOwor5LiD5Zue5b+MIDwgc2hpY2hpa2Fpa2lcIDsKK+S4u+ims+S4u+e+qSA8IHNodWthbnNodWdpXCA7Civmurbop6PnhrEgPCB5b3VrYWluZXRzdVwgOwor57Gz5Y2B57KSIDwga29tZWp1dXJ5dXVcIDsKK+WRvOWQuOWZqOezuyA8IGtva3l1dWtpa2VpXCA7Civnibnms6jlk4EgPCB0b2t1Y2h1dWhpblwgOwor6Zub56WtIDwgaGluYW1hdHN1cmlcIDsKK+eCuuabv+aKleapnyA8IGthd2FzZXRvdWtpXCA7CivkuIDnn6XljYrop6MgPCBpdGNoaWhhbmthaVwgOwor5LiN5a6a5Yag6KmeIDwgZnV0ZWlrYW5zaGlcIDsKK+S7o+itsOaUv+S9kyA8IGRhaWdpc2VpdGFpXCA7CivlubPlkozmlLvli6IgPCBoZWl3YWtvdXNlaVwgOwor5L2O5L6h5qC85YyWIDwgdGVpa2FrYWt1a2FcIDsKK+WPpOaWsOiBniA8IGZ1cnVzaGluYnVuXCA7CivphY3pgZTkurogPCBoYWl0YXRzdW5pblwgOwor5Lqs5Lq65b2iIDwga3lvdW5pbmd5b3VcIDsKK+iCmOaOm+akheWtkCA8IGhpamlrYWtlaXN1XCA7Civlhazli5nngb3lrrMgPCBrb3VtdXNhaWdhaVwgOwor5pmv5rCX5b6q55KwIDwga2Vpa2lqdW5rYW5cIDsKK+mWouS/guazleimjyA8IGthbmtlaWhvdWtpXCA7Civos4DoqZ7kuqTmj5sgPCBnYXNoaWtvdWthblwgOwor6ICV5Zyw5pW055CGIDwga291Y2hpc2VpcmlcIDsKK+WujOe1kOaWhyA8IGthbmtldHN1YnVuXCA7Civooajoo4/kuIDkvZMgPCBoeW91cmlpdHRhaVwgOwor5Y+N5a++6ImyIDwgaGFudGFpc2hva3VcIDsKK+WVhuWTgeWtpiA8IHNob3VoaW5nYWt1XCA7CivlpbTpmrfop6PmlL4gPCBkb3JlaWthaWhvdVwgOwor5YWl5bCE6KeSIDwgbnl1dXNoYWtha3VcIDsKK+a2iOmYsuW6gSA8IHNob3Vib3VjaG91XCA7CivpmL/lpJrnpo/osYYgPCBvdGFmdWt1bWFtZVwgOwor5aWH6bqX5omAIDwga2lyZWlkb2tvcm9cIDsKK+Wls+aXsSA8IG9uJyduYWhpZGVyaVwgOwor5bGx5ZC56ImyIDwgeWFtYWJ1a2lpcm9cIDsKK+S8gealreaVtOWCmSA8IGtpZ3lvdXNlaWJpXCA7Civou43kuovooYzli5UgPCBndW5qaWtvdWRvdVwgOwor5omT5pKD546HIDwgZGFnZWtpcml0c3VcIDsKK+WcsOaWueiHquayuyA8IGNoaWhvdWppY2hpXCA7Civoq4vmsYLpoY0gPCBzZWlreXV1Z2FrdVwgOwor55m+5bm056WtIDwgaHlha3VuZW5zYWlcIDsKK+S4luS/l+S4u+e+qSA8IHNlem9rdXNodWdpXCA7Civpq5jngq3ntKDpi7wgPCBrb3V0YW5zb2tvdVwgOwor5oqR55WZ6ICFIDwgeW9rdXJ5dXVzaGFcIDsKK+mjn+mAo+aYnyA8IHNob2t1cmVuc2VpXCA7CivokL3mnK3lgKQgPCByYWt1c2F0c3VuZVwgOwor6Ieq54S25YqbIDwgc2hpemVucnlva3VcIDsKK+acieapn+iCpeaWmSA8IHl1dWtpaGlyeW91XCA7Civnp5jmm7jlrqQgPCBoaXNob3NoaXRzdVwgOwor5Y2D56eL5qW9IDwgc2Vuc2h1dXJha3VcIDsKK+avlOS+i+mFjeWIhiA8IGhpcmVpaGFpYnVuXCA7CivmjqLnqbblv4MgPCB0YW5reXV1c2hpblwgOwor5Y+N5a++6YGL5YuVIDwgaGFudGFpdW5kb3VcIDsKK+a3u+S7mOabuOmhniA8IHRlbnB1c2hvcnVpXCA7CivmgYvmhJvpgYrmiK8gPCByZW4nJ2FpeXV1Z2lcIDsKK+WJr+ekvumVtyA8IGZ1a3VzaGFjaG91XCA7CivmipXlsITljp/nkIYgPCB0b3VzaGFnZW5yaVwgOwor5aSn6KiA5aOu6KqeIDwgdGFpZ2Vuc291Z29cIDsKK+aciOS+i+S8miA8IGdldHN1cmVpa2FpXCA7CivmlbDml6XplpMgPCBzdXVqaXRzdWthblwgOwor5ZG95ZCN5byPIDwgbWVpbWVpc2hpa2lcIDsKK+aMh+WwjuWKmyA8IHNoaWRvdXJ5b2t1XCA7CivmhJ/opprnmoQgPCBrYW5rYWt1dGVraVwgOwor6YeR5pys5L2N5Yi2IDwga2luaG9uJydpc2VpXCA7CivpgKDoqp7miJDliIYgPCB6b3Vnb3NlaWJ1blwgOwor5YaN6ZaL55m6IDwgc2Fpa2FpaGF0c3VcIDsKK+WFpeWtpumboyA8IG55dXVnYWt1bmFuXCA7CivliIbmipjlraYgPCBidW5zZWtpZ2FrdVwgOwor55m+56eR6L6e5YW4IDwgaHlha2thaml0ZW5cIDsKK+iLpei8qeiAhSA8IGpha3VoYWltb25vXCA7CivkuIfku6PkuI3mmJMgPCBiYW5kYWlmdWVraVwgOwor5bmF5aSJ6Kq/IDwgaGFiYWhlbmNob3VcIDsKK+WNsemZuuinkuW6piA8IGtpa2Vua2FrdWRvXCA7CivljJblrablhbXlmaggPCBrYWdha3VoZWlraVwgOwor5aWz5b+DIDwgb24nJ25hZ29rb3JvXCA7CivlsI/mg5HmmJ8gPCBzaG91d2FrdXNlaVwgOwor5ryi5a2X5Yi26ZmQIDwga2FuamlzZWlnZW5cIDsKK+W5tOWKn+WItuW6piA8IG5lbmtvdXNlaWRvXCA7Civkurrnianlg48gPCBqaW5idXRzdXpvdVwgOwor6LqB6ayx55eFIDwgc291dXRzdWJ5b3VcIDsKK+ebtOi8uOWFpSA8IGNob2t1eXVueXV1XCA7Civkv4PpgLLliaQgPCBzb2t1c2hpbnphaVwgOwor5rW35bqV54Gr5bGxIDwga2FpdGVpa2F6YW5cIDsKK+malOmdtOaOu+eXkiA8IGtha2thc291eW91XCA7Civmj6HprqggPCBuaWdpcml6dXNoaVwgOwor6by75Ye66KGAIDwgYmlzaHVra2V0c3VcIDsKK+mdmeW/gyA8IHNoaXp1Z29rb3JvXCA7CivpnZ7miKboq5bogIUgPCBoaXNlbnJvbnNoYVwgOwor5oCl6YCy5YWaIDwga3l1dXNoaW50b3VcIDsKK+S4h+S4luS4jeaYkyA8IGJhbnNlaWZ1ZWtpXCA7Civlho3nlJ/nuYrntq0gPCBzYWlzZWlzZW4nJ2lcIDsKK+mBi+i7ouezu+e1sSA8IHVudGVua2VpdG91XCA7Civku7vmhI/lkIzooYwgPCBuaW4nJ2lkb3Vrb3VcIDsKK+mao+eUuiA8IHRvbmFyaW1hY2hpXCA7Civoh6jmmYLlm73kvJogPCByaW5qaWtva2thaVwgOwor6Kmm6aiT5pyf6ZaTIDwgc2hpa2Vua2lrYW5cIDsKK+mHkeWpmuW8jyA8IGtpbmtvbnNoaWtpXCA7CivmuoDoiabpo74gPCBtYW5rYW5zaG9rdVwgOwor5bm05Yqf5Yqg5L+4IDwgbmVua291a2Fob3VcIDsKK+W/nOaPtOWbo+mVtyA8IG91ZW5kYW5jaG91XCA7CivlpKfmmaYgPCBvb3RzdWdvbW9yaVwgOwor5YKN6L+35oORIDwgaGF0YW1laXdha3VcIDsKK+i7jeWMu+e3j+eboyA8IGd1bicnaXNvdWthblwgOwor5pi86aOf5pmCIDwgY2h1dXNob2t1amlcIDsKK+iKuOihk+elrSA8IGdlaWp1dHN1c2FpXCA7CivmhYjlloTlm6PkvZMgPCBqaXplbmRhbnRhaVwgOwor6Ieq57+S5pmC6ZaTIDwgamlzaHV1amlrYW5cIDsKK+aPoemjryA8IG5pZ2lyaW1lc2hpXCA7Civlm73lrrboo5zlhJ8gPCBrb2trYWhvc2hvdVwgOwor55ub6ICF5b+F6KGwIDwgc2VpamFoaXNzdWlcIDsKK+WtpueUn+acjSA8IGdha3VzZWlmdWt1XCA7CivkurrmlofkuLvnvqkgPCBqaW5idW5zaHVnaVwgOwor6Zu76Kmx55Wq5Y+3IDwgZGVud2FiYW5nb3VcIDsKK+WwsealreWcsCA8IHNodXVneW91Y2hpXCA7CivooajnpLrniakgPCBoeW91amlidXRzdVwgOwor6Lui5YWl55SfIDwgdGVuJydueXV1c2VpXCA7CivnkIboq5bkvZPns7sgPCByaXJvbnRhaWtlaVwgOwor5YWl5a2m6YeRIDwgbnl1dWdha3VraW5cIDsKK+aXpeacrOa1t+a6nSA8IG5paG9ua2Fpa291XCA7CivntYzluLjliKnnm4ogPCBrZWlqb3VyaWVraVwgOwor6Z2p5paw57O7IDwga2FrdXNoaW5rZWlcIDsKK+W8leiyrOi+nuS7uyA8IGluc2VraWppbmluXCA7Civpmb3mpbXnt5ogPCB5b3VreW9rdXNlblwgOwor5Ye65ryU6ICFIDwgc2h1dHN1ZW5zaGFcIDsKK+S8muitsOWupCA8IGthaWdpc2hpdHN1XCA7Civlh6blpbPoiKrmtbcgPCBzaG9qb2tvdWthaVwgOwor6Zm46YGL5bGAIDwgcmlrdXVua3lva3VcIDsKK+i/veW+tOmHkSA8IHRzdWljaG91a2luXCA7Civmrrroj4zlipsgPCBzYWtraW5yeW9rdVwgOwor5oqV5a6/6ICFIDwgdG91c2h1a3VzaGFcIDsKK+aWsOW6geiIjiA8IHNoaW5jaG91c2hhXCA7CivlhrfljbTliaQgPCByZWlreWFrdXphaVwgOwor5LiA6LuS5LiA6LuSIDwgaWtrZW4nJ2lra2VuXCA7CivpgYropqflrqIgPCB5dXVyYW5reWFrdVwgOwor6buE6YeR6JmrIDwga29nYW5lbXVzaGlcIDsKK+WVj+etlOeEoeeUqCA8IG1vbmRvdW11eW91XCA7CivpgYvlkb3oq5bogIUgPCB1bm1laXJvbnNoYVwgOwor6buS5q2755eFIDwga29rdXNoaWJ5b3VcIDsKK+mDteS+v+WxgCA8IHl1dWJpbmt5b2t1XCA7Civoj5znqK7mooXpm6ggPCBuYXRhbmVkenV5dVwgOwor6Kqy5aSW5o6I5qWtIDwga2FnYWlqdWd5b3VcIDsKK+WPjeWwhOeOhyA8IGhhbnNoYXJpdHN1XCA7Civpm6PmsJHluLDpgoQgPCBuYW5taW5raWthblwgOwor5YG25YOP56C05aOKIDwgZ3V1em91aGFrYWlcIDsKK+aVmeeah+W6gSA8IGt5b3Vrb3VjaG91XCA7Civoi6Xps6XkuLwgPCB3YWthZG9yaWRvblwgOwor5oyH56S66KOF572uIDwgc2hpamlzb3VjaGlcIDsKK+WuieWFqOWcsOW4ryA8IGFuemVuY2hpdGFpXCA7Civoh6rlt7HopIfoo70gPCBqaWtvZnVrdXNlaVwgOwor576O6KGT5ZWGIDwgYmlqdXRzdXNob3VcIDsKK+S7luS6uuihjOWEgCA8IHRhbmluZ3lvdWdpXCA7CivliKTlrpjotJTlsZMgPCBob3VnYW5iaWlraVwgOwor5ru05a6a6YePIDwgdGVraXRlaXJ5b3VcIDsKK+Wcp+aQvuepuuawlyA8IGFzc2FrdWt1dWtpXCA7CivnpZ7lrabogIUgPCBzaGluZ2FrdXNoYVwgOwor5a+G6Ly45YWlIDwgbWl0c3V5dW55dXVcIDsKK+WBpeW6t+euoeeQhiA8IGtlbmtvdWthbnJpXCA7CivouI/liIfnlaogPCBmdW1pa2lyaWJhblwgOwor6Kmm6aiT6aOb6KGMIDwgc2hpa2VuaGlrb3VcIDsKK+eUn+eUo+mBjuWJsCA8IHNlaXNhbmtham91XCA7CivliY3lpY/mm7IgPCB6ZW5zb3VreW9rdVwgOwor6ICz6by75ZK95ZaJ56eRIDwgamliaWlua291a2FcIDsKK+eUn+eQhuS8keaahyA8IHNlaXJpa3l1dWthXCA7CivkuqTpmpvloLToo48gPCBrb3VzYWlqb3VyaVwgOwor6KO45LiA6LKrIDwgaGFkYWthaWtrYW5cIDsKK+Wlj+mztOabsiA8IHNvdW1laWt5b2t1XCA7CivosYrogqXmnKznt5ogPCBob3VoaWhvbnNlblwgOwor56eB55Sf5rS7IDwgc2hpc2Vpa2F0c3VcIDsKK+e0q+iJsiA8IG11cmFzYWtpaXJvXCA7CivliKTmlq3opo/mupYgPCBoYW5kYW5raWp1blwgOwor55Sy6YmE6ImmIDwga291dGV0c3VrYW5cIDsKK+W/g+iHk+eXhSA8IHNoaW56b3VieW91XCA7CivpjKzph5HooZMgPCByZW5raW5qdXRzdVwgOwor6buS5YaF6ZqcIDwga29rdW5haXNob3VcIDsKK+acieitmOiAhSA8IHl1dXNoaWtpc2hhXCA7CivlsbHmtKXms6IgPCB5YW1hdHN1bmFtaVwgOwor6KKW54+N5pysIDwgc2h1dWNoaW5ib25cIDsKK+Wkqeizh+iLsemCgSA8IHRlbnNoaWVpbWFpXCA7CivlhYjnnYDpoIYgPCBzZW5jaGFrdWp1blwgOwor5oq15oqX6YGL5YuVIDwgdGVpa291dW5kb3VcIDsKK+mDteS+v+WIh+aJiyA8IHl1dWJpbmtpdHRlXCA7Civlrp/lkI3oqZ4gPCBqaXRzdW1laXNoaVwgOwor6Ziy6aOf5YmkIDwgYm91c2hva3V6YWlcIDsKK+WvvuensOi7uCA8IHRhaXNob3VqaWt1XCA7Civov5Hml6XngrkgPCBraW5qaXRzdXRlblwgOwor55Sw5ZyS6YO95biCIDwgZGVuJydlbnRvc2hpXCA7CivooaPmlpnlk4HlupcgPCBpcnlvdWhpbnRlblwgOwor5LqM6YOo5ZCI5ZSxIDwgbmlidWdhc3Nob3VcIDsKK+iXjeaZtuefsyA8IHJhbnNob3VzZWtpXCA7CivlpbPlrZDkvpsgPCBvbicnbmFrb2RvbW9cIDsKK+ayoemjn+WtkCA8IG1vc3Nob2t1c2hpXCA7Civpm7vlrZDpoK3ohLMgPCBkZW5zaGl6dW5vdVwgOwor5L+u57mV5LitIDwgc2h1dXplbmNodXVcIDsKK+WJsuizpuiyqeWjsiA8IGthcHB1aGFuYmFpXCA7CivogLPlrabllY8gPCBtaW1pZ2FrdW1vblwgOwor6aqo6JGj6Laj5ZGzIDwga290dG91c2h1bWlcIDsKK+i7jeWCmeWItumZkCA8IGd1bmJpc2VpZ2VuXCA7CivplbfnspLnsbMgPCBjaG91cnl1dW1haVwgOwor6YGL5YuV5LiN6LazIDwgdW5kb3VidXNva3VcIDsKK+WItumZkOa8ouWtlyA8IHNlaWdlbmthbmppXCA7CivnpZ7kv6Hlv4MgPCBrYW1pc2hpbmppblwgOwor54Sh5Y+N5YuV56CyIDwgbXVoYW5kb3Vob3VcIDsKK+WlqOWtpueUnyA8IHNob3VnYWt1c2VpXCA7Civljp/lm6DkuI3mmI4gPCBnZW4nJ2luZnVtZWlcIDsKK+ims+WFteW8jyA8IGthbnBlaXNoaWtpXCA7Civoi6XlubTlnosgPCBqYWt1bmVuZ2F0YVwgOwor6Lu96Ieq5YuV6LuKIDwga2Vpamlkb3VzaGFcIDsKK+m8oOa1t+ixmiA8IG5lenVtaWlydWthXCA7Civni5DnlpHpgKHlt6EgPCBrb2dpc2h1bmp1blwgOwor6ZuG56mN5aC0IDwgc2h1dXNla2lqb3VcIDsKK+aMh+S6uuW9oiA8IHl1YmluaW5neW91XCA7CivnqIvluqbllY/poYwgPCB0ZWlkb21vbmRhaVwgOwor6KaP5a6a5omT5bitIDwga2l0ZWlkYXNla2lcIDsKK+absuiKuOW4qyA8IGt5b2t1Z2Vpc2hpXCA7CivpuqbnspLohasgPCBiYWt1cnl1dXNodVwgOwor55uu55qE5ZywIDwgbW9rdXRla2ljaGlcIDsKK+miqOe0gOe0iuS5sSA8IGZ1dWtpYmlucmFuXCA7CivlrabnlJ/lr64gPCBnYWt1c2VpcnlvdVwgOwor5ZCI5oiQ5YqbIDwgZ291c2Vpcnlva3VcIDsKK+W4guWPguS6i+S8miA8IHNoaXNhbmppa2FpXCA7CivoqJjmhrboo4Xnva4gPCBraW9rdXNvdWNoaVwgOwor5o+Q5L6b5YG0IDwgdGVpa3lvdWdhd2FcIDsKK+mbquW6hyA8IHl1a2liaXNhc2hpXCA7Civpm7vmsJfkvJ3lsI4gPCBkZW5raWRlbmRvdVwgOwor5rW35aSW5rS+5YW1IDwga2FpZ2FpaGFoZWlcIDsKK+WkqeizpuS6uuaoqSA8IHRlbnB1amlua2VuXCA7Civmh7jlnoLpgYvli5UgPCBrZW5zdWl1bmRvdVwgOwor56We56eY5Li7576pIDwgc2hpbnBpc2h1Z2lcIDsKK+S5l+mZjeWuoiA8IGpvdWtvdWt5YWt1XCA7CivlhoXopqrnjosgPCBuYWlzaGluJydub3VcIDsKK+mBoOaFruS8mumHiCA8IGVucnlvZXNoYWt1XCA7Civns57li4nlvLcgPCBrdXNvYmVua3lvdVwgOwor5pqX5Y+35omL5rOVIDwgYW5nb3VzaHVob3VcIDsKK+efoue2meaXqSA8IHlhdHN1Z2liYXlhXCA7CivplbfoqbEgPCBuYWdhYmFuYXNoaVwgOwor6YGL6Ly45aSn6IejIDwgdW4nJ3l1ZGFpamluXCA7CivpnZ7oq5bnkIbnmoQgPCBoaXJvbnJpdGVraVwgOwor5aSJ5puy54K5IDwgaGVua3lva3V0ZW5cIDsKK+WPs+e/vOWbo+S9kyA8IHV5b2t1ZGFudGFpXCA7Civplbflm5vop5IgPCBuYWdhc2hpa2FrdVwgOwor6Kaq5YiH5rCXIDwgc2hpbnNldHN1Z2lcIDsKK+S/neWBpeihm+eUnyA8IGhva2VuJydlaXNlaVwgOwor55uX5ZOB5pWF6LK3IDwgdG91aGlua29iYWlcIDsKK+WJr+elnue1jCA8IGZ1a3VzaGlua2VpXCA7CivokYnnt5HkvZMgPCB5b3VyeW9rdXRhaVwgOwor6Z2Z5q2i6LuM6YGTIDwgc2Vpc2hpa2lkb3VcIDsKK+aFtuaHiee+qeWhviA8IGtlaW91Z2lqdWt1XCA7Civlv6vliIDkubHpursgPCBrYWl0b3VyYW5tYVwgOwor6I+K5Lq65b2iIDwga2lrdW5pbmd5b3VcIDsKK+eOqeW8hOeJqSA8IGdhbnJvdWJ1dHN1XCA7Civlj6PoqIDokYkgPCBrdWNoaWtvdG9iYVwgOwor6ZuG5ZCI55qEIDwgc2h1dWdvdXRla2lcIDsKK+iHs+i/kei3nemboiA8IHNoaWtpbmt5b3JpXCA7CivlibLlvZPpoY0gPCB3YXJpYXRlZ2FrdVwgOwor5bi457+S55qEIDwgam91c2h1dXRla2lcIDsKK+aQjeWus+S/nemZuiA8IHNvbmdhaWhva2VuXCA7Civmp4vmiJDopoHntKAgPCBrb3VzZWl5b3Vzb1wgOwor5oSf5Zyn57SZIDwga2FuJydhdHN1c2hpXCA7CivljZTorbDkuovpoIUgPCBreW91Z2lqaWtvdVwgOwor57SF54y/5a2QIDwgYmVuaW1hc2hpa29cIDsKK+W8vuaAp+eOhyA8IGRhbnNlaXJpdHN1XCA7CivoiJ7lj7Dkv7PlhKogPCBidXRhaWhhaXl1dVwgOwor5Y2x5qmf5LiA6auqIDwga2lraWlwcGF0c3VcIDsKK+WMu+WtpumbkeiqjCA8IGlnYWt1emFzc2hpXCA7Civmt6HntIXoibIgPCB0YW5rb3VzaG9rdVwgOwor5p+z6KGM5p2OIDwgeWFuYWdpZ291cmlcIDsKK+eJqeS+oeawtOa6liA8IGJ1a2thc3VpanVuXCA7CivotaTljYHlrZfpmYQgPCBzZWtpanV1amlmdVwgOwor5om26aSK5a625pePIDwgZnV5b3VrYXpva3VcIDsKK+a1geWLleeahCA8IHJ5dXVkb3V0ZWtpXCA7CivnkrDlooPluoEgPCBrYW5reW91Y2hvdVwgOwor56uL5oay5pS/5rK7IDwgcmlra2Vuc2VpamlcIDsKK+aYhuiZq+WtpiA8IGtvbmNodXVnYWt1XCA7CivluLjml6XpoIMgPCB0c3VuZWhpZ29yb1wgOwor5q+U57+85aGaIDwgaGl5b2t1ZHp1a2FcIDsKK+a3t+aIkOeJqSA8IGtvbnNlaWJ1dHN1XCA7Civkurrlt6Xoh5PlmaggPCBqaW5rb3V6b3VraVwgOwor5rq26Kej5YqbIDwgeW91a2Fpcnlva3VcIDsKK+e0meekqyA8IGthbWl0c3VidXRlXCA7CivmlZnogrLplbcgPCBreW91aWt1Y2hvdVwgOwor54S85Y2054KJIDwgc2hvdWt5YWt1cm9cIDsKK+elreaUv+S4gOiHtCA8IHNhaXNlaWl0Y2hpXCA7Civnmb3mqoDmsrkgPCBieWFrdWRhbicneXVcIDsKK+eJveW8leWKmyA8IGtlbicnaW5yeW9rdVwgOwor6Kaz5YWJ5bGAIDwga2Fua291a3lva3VcIDsKK+S4jeiogOWun+ihjCA8IGZ1Z2Vuamlra291XCA7CivlhaXlrabogIUgPCBueXV1Z2FrdXNoYVwgOwor5Zu95a2m6ICFIDwga29rdWdha3VzaGFcIDsKK+S7leS6i+mDqOWxiyA8IHNoaWdvdG9iZXlhXCA7CivmtLvli5XoqowgPCBrYXRzdWRvdXNoaVwgOwor5Ye65Zyf5ZOBIDwgc2h1dHN1ZG9oaW5cIDsKK+e0meihqOe0mSA8IGthbWlieW91c2hpXCA7CivoprPlhYnlrqIgPCBrYW5rb3VreWFrdVwgOwor5oiQ5Lq65pig55S7IDwgc2VpamluJydlaWdhXCA7Civoh6rnlLHllrbmpa0gPCBqaXl1dWVpZ3lvdVwgOwor5YWx5a2m5Yi2IDwga3lvdWdha3VzZWlcIDsKK+m2jiA8IGtpa3VpdGFkYWtpXCA7CivmqJnmupboqqTlt64gPCBoeW91anVuZ29zYVwgOwor576e5oGl5b+DIDwgc2h1dWNoaXNoaW5cIDsKK+WPguitsOmZouitsOWToSA8IHNhbmdpaW5naWluXCA7CivomavnnLzpj6EgPCBtdXNoaW1lZ2FuZVwgOwor6KiA6JGJ6LOqIDwga290b2JhamljaGlcIDsKK+WtpuiAheiGmiA8IGdha3VzaGFoYWRhXCA7CivpgJrkv6HntrIgPCB0c3V1c2hpbm1vdVwgOwor5pmu5Y+K546HIDwgZnVreXV1cml0c3VcIDsKK+S5s+WFkOiEmuawlyA8IG55dXVqaWtha2tlXCA7CivljYPps6XotrMgPCBjaGlkb3JpYXNoaVwgOwor6LuN6ZyA5bel5aC0IDwgZ3VuanVrb3Vqb3VcIDsKK+ebuOWKoOW5s+WdhyA8IHNvdWthaGVpa2luXCA7Civnspfoo73kubHpgKAgPCBzb3NlaXJhbnpvdVwgOwor5b6h5ZCN5b6h55K9IDwgZ3lvbWVpZ3lvamlcIDsKK+ijuOiZqyA8IGhhZGFrYW11c2hpXCA7Civou6LovY3miYsgPCB0ZW50ZXRzdXNodVwgOwor6LO86LK35YqbIDwga291YmFpcnlva3VcIDsKK+WFpeiznuiAhSA8IG55dXVzaG91c2hhXCA7Civpmbjou43nnIEgPCByaWt1Z3Vuc2hvdVwgOwor5Luu5Ye65omAIDwga2FyaXNodXNzaG9cIDsKK+aWh+ayu+S4u+e+qSA8IGJ1bmNoaXNodWdpXCA7Civlj6TnianllYYgPCBrb2J1dHN1c2hvdVwgOwor6Ieq54S25reY5rGwIDwgc2hpemVudG91dGFcIDsKK+WutuWuheaNnOafuyA8IGthdGFrdXNvdXNhXCA7Civml6LmiJDmpoLlv7UgPCBraXNlaWdhaW5lblwgOwor5pW05YKZ5bel5aC0IDwgc2VpYmlrb3Vqb3VcIDsKK+WvvuepuuegsueBqyA8IHRhaWt1dWhvdWthXCA7Civmu57nqbrmmYLplpMgPCB0YWlrdXVqaWthblwgOwor6LGh5b606KmpIDwgc2hvdWNob3VzaGlcIDsKK+S4i+WNlOitsCA8IHNoaXRha3lvdWdpXCA7Civlj6zpm4bku6QgPCBzaG91c2h1dXJlaVwgOwor6LK/5piT6LWk5a2XIDwgYm91ZWtpYWthamlcIDsKK+S4gOiogOWxheWjqyA8IGljaGlnZW5rb2ppXCA7CivnhafkvJrlhYggPCBzaG91a2Fpc2FraVwgOwor5bGL5LiK5bqt5ZySIDwgb2t1am91dGVpZW5cIDsKK+WghuepjeWtpiA8IHRhaXNla2lnYWt1XCA7Civoqq3op6PlipsgPCBkb2trYWlyeW9rdVwgOwor6Z+z5aOw6KGo6KiYIDwgb25zZWloeW91a2lcIDsKK+iFuOe1kOaguCA8IGNob3VrZWtrYWt1XCA7CivlubTmgbDlpb0gPCB0b3NoaWtha2tvdVwgOwor5a+p576O5Li7576pIDwgc2hpbmJpc2h1Z2lcIDsKK+mAmueUo+ecgSA8IHRzdXVzYW5zaG91XCA7Civlv5znlKjllY/poYwgPCBvdXlvdW1vbmRhaVwgOwor5LqS5oG16Zai56iOIDwgZ29rZWlrYW56ZWlcIDsKK+edo+WtpuWumCA8IHRva3VnYWt1a2FuXCA7Civmh5DkuK3niakgPCBrYWljaHV1bW9ub1wgOwor6YCa5L+h56S+IDwgdHN1dXNoaW5zaGFcIDsKK+i7n+aAp+S4i+eWsyA8IG5hbnNlaWdla2FuXCA7Civlm73oqp7ovp7lhbggPCBrb2t1Z29qaXRlblwgOwor5YWs6KqN5YCZ6KOcIDwga291bmlua291aG9cIDsKK+eUn+W5tOaciOaXpSA8IHNlaW5lbmdhcHBpXCA7CivlpYfnrZbnuKbmqKogPCBraXNha3VqdXVvdVwgOwor5YWJ5a2m5paH5a2XIDwga291Z2FrdW1vamlcIDsKK+WNg+efs+iIuSA8IHNlbmdva3VidW5lXCA7CivlgZzou4rmmYLplpMgPCB0ZWlzaGFqaWthblwgOwor6YeR54mb5a6uIDwga2luZ3l1dWt5dXVcIDsKK+aOpeWQiOWtkCA8IHNldHN1Z291c2hpXCA7CivnmoflrqTosrsgPCBrb3VzaGl0c3VoaVwgOwor5YWx5ZKM5pS/5rK7IDwga3lvdXdhc2VpamlcIDsKK+WbveW6q+WCteaoqSA8IGtva2tvc2Fpa2VuXCA7Civov73lvrTnqI4gPCB0c3VpY2hvdXplaVwgOwor5aOw5biv5qih5YaZIDwgc2VpdGFpbW9zaGFcIDsKK+acgOWkp+mZkOW6piA8IHNhaWRhaWdlbmRvXCA7CivlsYDlpJbogIUgPCBreW9rdWdhaXNoYVwgOwor5YWr5YiG6Z+z56ymIDwgaGFjaGlidW9ucHVcIDsKK+e/jOe/jOW5tCA8IHlva3V5b2t1bmVuXCA7CivnibnliKXmqZ8gPCB0b2t1YmV0c3VraVwgOwor5reh6KSQ6ImyIDwgdGFua2Fzc2hva3VcIDsKK+WBj+Wft+eXhSA8IGhlbnNodXVieW91XCA7Civku67mg7PnqbrplpMgPCBrYXNvdWt1dWthblwgOwor5a2m57+S6ICFIDwgZ2FrdXNodXVzaGFcIDsKK+mYsumfs+WupCA8IGJvdW9uc2hpdHN1XCA7CivlubPmiJDmmYLku6MgPCBoZWlzZWlqaWRhaVwgOwor5Yip55uK56S+5LyaIDwgcmlla2lzaGFrYWlcIDsKK+iCieS9k+eahCA8IG5pa3V0YWl0ZWtpXCA7Civlrrbluq3oqKrllY8gPCBrYXRlaWhvdW1vblwgOwor5paZ6YeR6KGoIDwgcnlvdWtpbmh5b3VcIDsKK+WGhemZuOWbvSA8IG5haXJpa3Vrb2t1XCA7CivljIXlrrnlipsgPCBob3V5b3VyeW9rdVwgOwor5Ye65ryB5pyfIDwgc2h1dHN1Z3lva2lcIDsKK+iWhOWIqeWkmuWjsiA8IGhha3VyaXRhYmFpXCA7CivkuLvkurrlvbkgPCBzaHVqaW4nJ3lha3VcIDsKK+awkeS4u+S4u+e+qSA8IG1pbnNodXNodWdpXCA7CivlpbPmgKflkI3oqZ4gPCBqb3NlaW1laXNoaVwgOwor5oSb5oaO5L215a2YIDwgYWl6b3VoZWlzb25cIDsKK+aIkOWKn+eOhyA8IHNlaWtvdXJpdHN1XCA7CivlhazmnInniakgPCBrb3V5dXVidXRzdVwgOwor6Kaz6Imm5byPIDwga2Fua2Fuc2hpa2lcIDsKK+WPjeWwhOS9nOeUqCA8IGhhbnNoYXNheW91XCA7CivmnIjlpJzojLggPCB0c3VraXlvdGFrZVwgOwor5pyJ5LqL56uL5rOVIDwgeXV1amlyaXBwb3VcIDsKK+WFpeWtpueUnyA8IG55dXVnYWt1c2VpXCA7CivmmI7lvozml6UgPCBteW91Z29uaWNoaVwgOwor5rS75YuV6ICFIDwga2F0c3Vkb3VzaGFcIDsKK+S4ieWOn+iJsiA8IHNhbmdlbnNob2t1XCA7Civnmbrlo7DlmajlrpggPCBoYXNzZWlraWthblwgOwor5YGP5Z+354uCIDwgaGVuc2h1dWt5b3VcIDsKK+WpmuekvOiho+ijhSA8IGtvbnJlaWlzaG91XCA7CivkuK3lpK7nqoHnoLQgPCBjaHV1b3V0b3BwYVwgOwor5LiJ6aCt5pS/5rK7IDwgc2FudG91c2VpamlcIDsKK+WNsemZuuWcsOW4ryA8IGtpa2VuY2hpdGFpXCA7CivljJblrabkvZznlKggPCBrYWdha3VzYXlvdVwgOwor54Sh6ZaT5Zyw542EIDwgbXVnZW5qaWdva3VcIDsKK+ipseS4rSA8IGhhbmFzaGljaHV1XCA7CivlvoDlvqnliIfnrKYgPCBvdWZ1a3VraXBwdVwgOwor6JKL5LuL55+zIDwgc2hvdWthaXNla2lcIDsKK+eUs+WRiuabuCA8IHNoaW5rb2t1c2hvXCA7CivlrZjlnKjnkIbnlLEgPCBzb256YWlyaXl1dVwgOwor57eo56yg6Iy4IDwgYW1pZ2FzYXRha2VcIDsKK+Wwj+WNiuaXpSA8IGtvaGFuJyduaWNoaVwgOwor6Z2e56S+5Lqk55qEIDwgaGlqYWtvdXRla2lcIDsKK+ihqOW9sOeKtiA8IGh5b3VzaG91am91XCA7CivlhoXoqLzkuosgPCBuYWlzaG91Z290b1wgOwor5bCB5bu65Yi25bqmIDwgaG91a2Vuc2VpZG9cIDsKK+iouuaWreWtpiA8IHNoaW5kYW5nYWt1XCA7CivljZfmpbXngrkgPCBuYW5reW9rdXRlblwgOwor5Lq66Lqr5LqL5pWFIDwgamluc2hpbmppa29cIDsKK+absuWwhOegsiA8IGt5b2t1c2hhaG91XCA7CivlhazplovmjZzmn7sgPCBrb3VrYWlzb3VzYVwgOwor5oiR55Sw5byV5rC0IDwgZ2FkZW4nJ2luc3VpXCA7Civli5XkvZzoqJjpjLIgPCBkb3VzYWtpcm9rdVwgOwor5YWI55m66ZqKIDwgc2VucGF0c3V0YWlcIDsKK+aIkOWxpOeBq+WxsSA8IHNlaXNvdWthemFuXCA7CivmgKfnlJ/mtLsgPCBzZWlzZWlrYXRzdVwgOwor5qSc6Zay5a6YIDwga2VuJydldHN1a2FuXCA7CivmtYHpgJrnqI4gPCByeXV1dHN1dXplaVwgOwor5Yip55uK6YWN5b2TIDwgcmlla2loYWl0b3VcIDsKK+a0l+a/r+eziiA8IHNlbnRha3Vub3JpXCA7CivljYrnm7Tnt5ogPCBoYW5jaG9rdXNlblwgOwor5rSX5r+v57GgIDwgc2VudGFrdWthZ29cIDsKK+aOpeWQiOWJpCA8IHNldHN1Z291emFpXCA7CivkuIDmiYDmh7jlkb0gPCBpc3Nob2tlbm1laVwgOwor6L6y55Sj54mpIDwgbm91c2FuYnV0c3VcIDsKK+a6kOazieiqsueojiA8IGdlbnNlbmthemVpXCA7CivmlL/msrvntZDnpL4gPCBzZWlqaWtlc3NoYVwgOwor5aG15Z+DIDwgY2hpcmlob2tvcmlcIDsKK+mojummrOawkeaXjyA8IGtpYmFtaW56b2t1XCA7CivpmpTkuJbpgbrkvJ0gPCBrYWt1c2VpaWRlblwgOwor5Y+k6YGT5YW35bGLIDwgZnVydWRvdWd1eWFcIDsKK+WQueWlj+alveWZqCA8IHN1aXNvdWdha2tpXCA7CivmqZ/pioPmjoPlsIQgPCBraWp1dXNvdXNoYVwgOwor5o6l5Y+X5Zu9IDwgc2V0c3VqdWtva3VcIDsKK+atpuWutuWxi+aVtyA8IGJ1a2V5YXNoaWtpXCA7CivljZfmpbXmtbcgPCBuYW5reW9rdWthaVwgOwor552h55yg5pmC6ZaTIDwgc3VpbWluamlrYW5cIDsKK+e1kOiGnOeCjiA8IGtldHN1bWFrdWVuXCA7CivopqrnnabkvJogPCBzaGluYm9rdWthaVwgOwor56Gr5YyW54mpIDwgcnl1dWthYnV0c3VcIDsKK+aDs+WDj+WKmyA8IHNvdXpvdXJ5b2t1XCA7CivoirjooZPlk4EgPCBnZWlqdXRzdWhpblwgOwor54Sh6KiY5ZCN5qCqIDwgbXVraW1laWthYnVcIDsKK+WNl+altea0iyA8IG5hbmt5b2t1eW91XCA7Civkuovli5nnt4/plbcgPCBqaW11c291Y2hvdVwgOwor5YaN5ris6YePIDwgc2Fpc29rdXJ5b3VcIDsKK+S4u+ayu+WKueiDvSA8IHNodWppa291bm91XCA7CivlpKnmtKXlvqHnpZYgPCBhbWF0c3VtaW95YVwgOwor5rCX6LGh6KGb5pifIDwga2lzaG91ZWlzZWlcIDsKK+acieWKueacn+mZkCA8IHl1dWtvdWtpZ2VuXCA7CivovrLlpbTop6PmlL4gPCBub3Vkb2thaWhvdVwgOwor6Zyy5Ye66KiIIDwgcm9zaHV0c3VrZWlcIDsKK+W/g+iHk+m6u+eXuiA8IHNoaW56b3VtYWhpXCA7CivphZTnlJ/lpKLmrbsgPCBzdWlzZWltdXNoaVwgOwor54Sh5rOV5Zyw5bivIDwgbXVob3VjaGl0YWlcIDsKK+ihl+mgreWLn+mHkSA8IGdhaXRvdWJva2luXCA7CivnlZnlrabnlJ8gPCByeXV1Z2FrdXNlaVwgOwor5rC05LuV5LqLIDwgbWl6dXNoaWdvdG9cIDsKK+Wtpue/kueUqCA8IGdha3VzaHV1eW91XCA7CivojZLllJDnhKHnqL0gPCBrb3V0b3VtdWtlaVwgOwor5rOo5bCE6YedIDwgY2h1dXNoYWJhcmlcIDsKK+ims+Wvn+iAhSA8IGthbnNhdHN1c2hhXCA7CivmoITppIrkuI3otrMgPCBlaXlvdWZ1c29rdVwgOwor6YCa5L+h5qyEIDwgdHN1dXNoaW5yYW5cIDsKK+WQjeiqieW4guawkSA8IG1laXlvc2hpbWluXCA7Civou43kuovlkIznm58gPCBndW5qaWRvdW1laVwgOwor5pyJ5Yq55L2c55SoIDwgeXV1a291c2F5b3VcIDsKK+S6lOaciOmXhyA8IHNhdHN1a2l5YW1pXCA7CivnmbrnnYDloLQgPCBoYXRjaGFrdWpvdVwgOwor5YWI6YGj6YOo6ZqKIDwgc2Vua2VuYnV0YWlcIDsKK+WYieiogOWWhOihjCA8IGthZ2VuemVua291XCA7CivovLjlh7rnqI4gPCB5dXNodXRzdXplaVwgOwor5ZCI5ZCM5Lya6K2wIDwgZ291ZG91a2FpZ2lcIDsKK+i1t+atu+WbnueUnyA8IGtpc2hpa2Fpc2VpXCA7CivpgI/oppbnlLvms5UgPCB0b3VzaGlnYWhvdVwgOwor54Sh6Yqt5peF6KGMIDwgbXVzZW5yeW9rb3VcIDsKK+WwseiBt+aZgiA8IHNodXVzaG9rdWppXCA7Civkv53lronoqK3lgpkgPCBob2Fuc2V0c3ViaVwgOwor552A55y854K5IDwgY2hha3VnYW50ZW5cIDsKK+epuuWGt+W8jyA8IGt1dXJlaXNoaWtpXCA7CivmurbmjqXlt6UgPCB5b3VzZXRzdWtvdVwgOwor5Li45pyo5qmLIDwgbWFydWtpYmFzaGlcIDsKK+WGhemDqOmXmOS6iSA8IG5haWJ1dG91c291XCA7CivkuI3mraPono3os4cgPCBmdXNlaXl1dXNoaVwgOwor5bGx5b2i55yMIDwgeWFtYWdhdGFrZW5cIDsKK+S6pOmciuihkyA8IGtvdXJlaWp1dHN1XCA7CivmvKLoi7Hovp7lhbggPCBrYW4nJ2Vpaml0ZW5cIDsKK+WJtemAoOiqrCA8IHNvdXpvdXNldHN1XCA7CivpoJjlnJ/kv53lhaggPCByeW91ZG9ob3plblwgOwor5oub5b6F5bitIDwgc2hvdXRhaXNla2lcIDsKK+eEoeS6i+aBr+eBvSA8IGJ1amlzb2t1c2FpXCA7Civpm6rkuIrou4ogPCBzZXRzdWpvdXNoYVwgOwor5Lqk6Z+/5qW9IDwga291a3lvdWdha3VcIDsKK+i+sualreWbvSA8IG5vdWd5b3Vrb2t1XCA7CivljZPotorpoqggPCB0YWt1ZXRzdWZ1dVwgOwor5oyH5ZCN5omL6YWNIDwgc2hpbWVpdGVoYWlcIDsKK+mOrueXm+aApyA8IGNoaW50c3V1c2VpXCA7CivpgYropqfpo5vooYwgPCB5dXVyYW5oaWtvdVwgOwor6KqN6K2Y6KuWIDwgbmluc2hpa2lyb25cIDsKK+WPl+mok+WcsOeNhCA8IGp1a2Vuamlnb2t1XCA7CivorablgpnlvLfljJYgPCBrZWliaWt5b3VrYVwgOwor5bCx5a+d5YmNIDwgc2h1dXNoaW56ZW5cIDsKK+W/g+eQhuS4u+e+qSA8IHNoaW5yaXNodWdpXCA7Civlj4zmm7Lnt5ogPCBzb3VreW9rdXNlblwgOwor6Zui5ama6Ki06KifIDwgcmlrb25zb3Nob3VcIDsKK+Wkj+aZguWIuyA8IG5hdHN1amlrb2t1XCA7CivlpI/lpKfmoLkgPCBuYXRzdWRhaWtvblwgOwor6Z+z6KiT57Si5byVIDwgb25rdW5zYWt1aW5cIDsKK+WNsemZuuWboOWtkCA8IGtpa2VuJydpbnNoaVwgOwor5p2R5YWr5YiGIDwgbXVyYWhhY2hpYnVcIDsKK+i2hemBjuWLpOWLmSA8IGNob3VrYWtpbm11XCA7CivlgpjkvJDmnpcgPCBzYW5iYXRzdXJpblwgOwor5bi46Kit6aSoIDwgam91c2V0c3VrYW5cIDsKK+WNl+alteaYnyA8IG5hbmt5b2t1c2VpXCA7CivnpZ7lrablo6sgPCBzaGluZ2FrdXNoaVwgOwor6YCy5q2p5Li7576pIDwgc2hpbnBvc2h1Z2lcIDsKK+S4iuWRiuWvqSA8IGpvdWtva3VzaGluXCA7CivlhYjlhaXoprMgPCBzZW4nJ255dXVrYW5cIDsKK+WFiOWFpeimiyA8IHNlbicnbnl1dWtlblwgOwor5L+d5YWo5Lya56S+IDwgaG96ZW5rYWlzaGFcIDsKK+a0l+a/r+eJqSA8IHNlbnRha3Vtb25vXCA7CivkuIfokYnpm4YgPCBtYW4nJ3lvdXNodXVcIDsKK+iHquW3see0ueS7iyA8IGppa29zaG91a2FpXCA7CivkurrpgZPmlK/mj7QgPCBqaW5kb3VzaGllblwgOwor5rqA5bee5Zu9IDwgbWFuc2h1dWtva3VcIDsKK+W4jOWwkeS+oeWApCA8IGtpc2hvdWthY2hpXCA7Civooajlv6DloZQgPCBoeW91Y2h1dXRvdVwgOwor5LiJ6YeN5q66IDwgc2FuanV1c2F0c3VcIDsKK+WppuS6uuenkeWtpiA8IGZ1amlua2FnYWt1XCA7CivmlK/mj7Tlm6PkvZMgPCBzaGllbmRhbnRhaVwgOwor5YiG5rOM5rayIDwgYnVucGl0c3Vla2lcIDsKK+Wuh+WumeepuumWkyA8IHVjaHV1a3V1a2FuXCA7CivpmqPmjqXnnIwgPCByaW5zZXRzdWtlblwgOwor5ZiY5YWr55m+IDwgdXNvaGFwcHlha3VcIDsKK+iInui4j+WupCA8IGJ1dG91c2hpdHN1XCA7CivlvZPlsYDogIUgPCB0b3VreW9rdXNoYVwgOwor5YyW57Kn54WJ55OmIDwga2VzaG91cmVuZ2FcIDsKK+e3qeihneWbvSA8IGthbnNob3Vrb2t1XCA7Civml6nmnJ/nmbroposgPCBzb3VraWhha2tlblwgOwor6Ieq54S25rK755mSIDwgc2hpemVuY2hpeXVcIDsKK+S4jeWPr+efpeeahCA8IGZ1a2FjaGl0ZWtpXCA7CivoqLToqJ/osrvnlKggPCBzb3Nob3VoaXlvdVwgOwor6JeB5Lq65b2iIDwgd2FyYW5pbmd5b3VcIDsKK+W9semfv+WKmyA8IGVpa3lvdXJ5b2t1XCA7Civngb3lrrPkv53pmbogPCBzYWlnYWlob2tlblwgOwor5aSn5Zmo5pmp5oiQIDwgdGFpa2liYW5zZWlcIDsKK+aWh+evgOaVsCA8IGJ1bnNldHN1c3V1XCA7CivmlbDnj6DkuIDpgKMgPCBqdXp1aWNoaXJlblwgOwor5paH5piO6ZaL5YyWIDwgYnVubWVpa2Fpa2FcIDsKK+aCquaOqOmHjyA8IHdhcnV6dWlyeW91XCA7CivlkKvmnInph48gPCBnYW4nJ3l1dXJ5b3VcIDsKK+iqmOmbu+eOhyA8IHl1dWRlbnJpdHN1XCA7Civlj43li5XkuLvnvqkgPCBoYW5kb3VzaHVnaVwgOwor6Kaz5a+f55y8IDwga2Fuc2F0c3VnYW5cIDsKK+aUv+W6nOmrmOWumCA8IHNlaWZ1a291a2FuXCA7Civpj6HppIUgPCBrYWdhbWltb2NoaVwgOwor6KOP5YiH6ICFIDwgdXJhZ2lyaW1vbm9cIDsKK+S6rOmDveW6nOitpiA8IGt5b3V0b2Z1a2VpXCA7CivpmLLpm6rmnpcgPCBib3VzZXRzdXJpblwgOwor5aSp56We6autIDwgdGVuc2hpbmhpZ2VcIDsKK+auuuWus+iAhSA8IHNhdHN1Z2Fpc2hhXCA7Civli6TnjovmlJjlpLcgPCBraW4nJ25vdWpvdWlcIDsKK+epuuaMuumDqOmaiiA8IGt1dXRlaWJ1dGFpXCA7CivmlZnogrLnnIEgPCBreW91aWt1c2hvdVwgOwor6Zui5Lmz6aOfIDwgcmlueXV1c2hva3VcIDsKK+aVmeiCsueahCA8IGt5b3Vpa3V0ZWtpXCA7CivlpJrlo6vmuIjmuIggPCB0YXNoaXNlaXNlaVwgOwor5LiN5Zmo55So6ICFIDwgYnVraXlvdW1vbm9cIDsKK+WFteermeWfuuWcsCA8IGhlaXRhbmtpY2hpXCA7CivmnInnkIbplqLmlbAgPCB5dXVyaWthbnN1dVwgOwor5Lq65bel6aCt6ISzIDwgamlua291enVub3VcIDsKK+eJueWIpeWMuiA8IHRva3ViZXRzdWt1XCA7CivosqHmlL/lipsgPCB6YWlzZWlyeW9rdVwgOwor5Y2B5YWt6Z+z56ymIDwganV1cm9rdW9ucHVcIDsKK+W8t+ehrOetliA8IGt5b3Vrb3VzYWt1XCA7CivmlrDlubTlj7cgPCBzaGluJyduZW5nb3VcIDsKK+ejr+mmtOadviA8IHNvbmFyZW1hdHN1XCA7CivlpYfmg7PlpKnlpJYgPCBraXNvdXRlbmdhaVwgOwor5YaF5a656KaL5pysIDwgbmFpeW91bWlob25cIDsKK+WFpemkqOaWmSA8IG55dXVrYW5yeW91XCA7Civniannm7jpo68gPCBtb3Nzb3VtZXNoaVwgOwor6KO96Z2p5qWtIDwgc2Vpa2FrdWd5b3VcIDsKK+S4reWtpueUnyA8IGNodXVnYWt1c2VpXCA7CivovLjlh7rmuK8gPCB5dXNodXRzdWtvdVwgOwor5Y2X5qW15bivIDwgbmFua3lva3V0YWlcIDsKK+aWmeeQhumBk+WFtyA8IHJ5b3VyaWRvdWd1XCA7CivlpKflnI/oiKrot68gPCB0YWlrZW5rb3Vyb1wgOwor5rq25o6l5YmkIDwgeW91c2V0c3V6YWlcIDsKK+aApeeXheS6uiA8IGt5dXVieW91bmluXCA7Civlr4Tlrr/mlpkgPCBraXNodWt1cnlvdVwgOwor6auY5bO255SwIDwgdGFrYXNoaW1hZGFcIDsKK+Wwj+ato+aciCA8IGtvc2hvdWdhdHN1XCA7Civli5XlipvoqIggPCBkb3VyeW9rdWtlaVwgOwor5qW15aSn5YCkIDwga3lva3VkYWljaGlcIDsKK+a6luWCmeeuoeWItiA8IGp1bmJpa2Fuc2VpXCA7Civng4/lj6MgPCBrYXJhc3VndWNoaVwgOwor5Ye66YeR6aGNIDwgc2h1a2tpbmdha3VcIDsKK+eUs+WRiuWItiA8IHNoaW5rb2t1c2VpXCA7Civnso0gPCBtaXJpbWVpdG9ydVwgOwor6Zmj6aCt5oyH5o+uIDwgamludG91c2hpa2lcIDsKK+eygSA8IGtpcm9tZWl0b3J1XCA7CivnsbUgPCBkZWthbWVldG9ydVwgOwor6IeT5Zmo56e75qSNIDwgem91a2lpc2hva3VcIDsKK+WfuuacrOamguW/tSA8IGtpaG9uZ2FpbmVuXCA7CivlrZDkvpvpgZQgPCBrb2RvbW90YWNoaVwgOwor5Lya6K2w5pel56iLIDwga2FpZ2luaXR0ZWlcIDsKK+WFrOWumuWcsOS+oSA8IGtvdXRlaWNoaWthXCA7Civln7rnpI7noJTnqbYgPCBraXNva2Vua3l1dVwgOwor55Kw5aKD5rGa5p+TIDwga2Fua3lvdW9zZW5cIDsKK+WqkuS7i+eJqSA8IGJhaWthaWJ1dHN1XCA7CivnlpHlv4PmmpfprLwgPCBnaXNoaW4nJ2Fua2lcIDsKK+m7hOmBk+iJsiA8IGtvdWRvdXNob2t1XCA7CivkuInokYnomasgPCBzYW4nJ3lvdWNodXVcIDsKK+WFqOizquWMliA8IHplbnNoaXRzdWthXCA7CivnlJ/mtLvpm6MgPCBzZWlrYXRzdW5hblwgOwor57Sw5YuV6ISIIDwgc2FpZG91bXlha3VcIDsKK+axn+aIuOWJjeWvv+WPuCA8IGVkb21hZXp1c2hpXCA7Civnt4/nkIblpKfoh6MgPCBzb3VyaWRhaWppblwgOwor6KSH6ZuR5YyWIDwgZnVrdXphdHN1a2FcIDsKK+iHquW3sea6gOi2syA8IGppa29tYW56b2t1XCA7Civli6LlipvlnI8gPCBzZWlyeW9rdWtlblwgOwor57W25a++5Li7576pIDwgemV0dGFpc2h1Z2lcIDsKK+ersCA8IHNlbmNoaXJpdHRvXCA7CivmraPlkbPlgKTmrrUgPCBzaG91bWluZWRhblwgOwor56uhIDwgaGVrdXRvcml0dG9cIDsKK+erkyA8IG1pcmlyaXR0b3J1XCA7Civnq48gPCBraXJvcml0dG9ydVwgOwor5YCL5Lq65pWZ5o6IIDwga29qaW5reW91anVcIDsKK+ikh+ikh+e3miA8IGZ1a3VmdWt1c2VuXCA7CivlsJHlo67msJfpi60gPCBzaG91c291a2llaVwgOwor5paw5bm05LyaIDwgc2hpbicnbmVua2FpXCA7CivkuI3norrlrp8gPCBmdWtha3VqaXRzdVwgOwor5p2x5Lqc6Ku45Zu9IDwgdG91YXNob2tva3VcIDsKK+WWh+WPreawtOS7mSA8IHJhcHBhenVpc2VuXCA7Civpjq7nl5vliaQgPCBjaGludHN1dXphaVwgOwor5oCq5Lq654mpIDwga2FpamluYnV0c3VcIDsKK+mAmuWtpueUnyA8IHRzdXVnYWt1c2VpXCA7CivniIblv4PlnLAgPCBiYWt1c2hpbmNoaVwgOwor5a6f6KGM5Y+v6IO9IDwgamlra291a2Fub3VcIDsKK+S6i+WJjemBi+WLlSA8IGppemVuJyd1bmRvdVwgOwor5aeL5pyr5pu4IDwgc2hpbWF0c3VzaG9cIDsKK+WkluadpeaCo+iAhSA8IGdhaXJhaWthbmphXCA7Civnq7bkuonlv4MgPCBreW91c291c2hpblwgOwor6YG/6Zuj6KiT57e0IDwgaGluYW5rdW5yZW5cIDsKK+WJvei7veiAhSA8IGh5b3VraW5tb25vXCA7CivohbjplonloZ4gPCBjaG91aGVpc29rdVwgOwor6LKp5aOy6YOo6ZaAIDwgaGFuYmFpYnVtb25cIDsKK+i7jeW9k+WxgCA8IGd1bnRvdWt5b2t1XCA7CivlirTlg43pgYvli5UgPCByb3Vkb3V1bmRvdVwgOwor5rqW5YKZ6YqA6KGMIDwganVuYmlnaW5rb3VcIDsKK+W5uee3mumBk+i3ryA8IGthbnNlbmRvdXJvXCA7CivkuI3pgI/mmI7mgKcgPCBmdXRvdW1laXNlaVwgOwor55m95a2Q6bOpIDwgc2hpcmFrb2JhdG9cIDsKK+eUuuW9ueWgtCA8IG1hY2hpeWFrdWJhXCA7CivliqDlnKfmsLTngokgPCBrYWF0c3VzdWlyb1wgOwor5LiN5b+g5a6fIDwgZnVjaHV1aml0c3VcIDsKK+ihqOmfs+aWh+WtlyA8IGh5b3Vvbm1vbmppXCA7CivmjIflkI3miZPogIUgPCBzaGltZWlkYXNoYVwgOwor57eP5Y+45Luk6YOoIDwgc291c2hpcmVpYnVcIDsKK+WNmuWtpuiAhSA8IGhha3VnYWt1c2hhXCA7CivkvJ3ntbHkuLvnvqkgPCBkZW50b3VzaHVnaVwgOwor5oim55Wl5LiKIDwgc2Vucnlha3Vqb3VcIDsKK+S4u+imgemDveW4giA8IHNodXlvdXRvc2hpXCA7CivljZfmpbXlnI8gPCBuYW5reW9rdWtlblwgOwor5Lih6ISa6KaPIDwgcnlvdWt5YWt1a2lcIDsKK+S9jua4qeauuuiPjCA8IHRlaW9uc2Fra2luXCA7CivlhbHoqLPogIUgPCBreW91eWFrdXNoYVwgOwor5aSr5amm6Zai5L+CIDwgZnV1ZnVrYW5rZWlcIDsKK+W/jeiAkOWKmyA8IG5pbnRhaXJ5b2t1XCA7CivkvZzmpa3mmYLplpMgPCBzYWd5b3VqaWthblwgOwor6ZuG6YeR5Lq6IDwgc2h1dWtpbicnbmluXCA7CivpnZ7luLjmiYvmrrUgPCBoaWpvdXNodWRhblwgOwor5Y2B5YWr6YeRIDwganV1aGFjaGlraW5cIDsKK+WwguWItuaUv+ayuyA8IHNlbnNlaXNlaWppXCA7CivmmKDnlLvnm6PnnaMgPCBlaWdha2FudG9rdVwgOwor5YCf55So6ICFIDwgc2hha3V5b3VzaGFcIDsKK+eTsCA8IGRlc2hpZ3VyYW11XCA7Civmv4Pmt6HnlLvlg48gPCBub3V0YW5nYXpvdVwgOwor56uv6YeRIDwgaGFzaGl0YWdhbmVcIDsKK+eBr+eBq+euoeWItiA8IHRvdWtha2Fuc2VpXCA7Civph43opoHkuovpoIUgPCBqdXV5b3VqaWtvdVwgOwor6Z2e5bi45ZG86ZuGIDwgaGlqb3Vrb3NodXVcIDsKK+aMgeS5heWKmyA8IGppa3l1dXJ5b2t1XCA7CivlsYDlnLDpoqggPCBreW9rdWNoaWZ1dVwgOwor55m655mM5oCnIDwgaGF0c3VnYW5zZWlcIDsKK+aPmumZuOaWmSA8IHlvdXJpa3VyeW91XCA7Civlr4bosr/mmJMgPCBtaXRzdWJvdWVraVwgOwor6YCa5L+h5ZOhIDwgdHN1dXNoaW4nJ2luXCA7Civnq4vlgJnoo5zogIUgPCByaWtrb3Vob3NoYVwgOwor5Yag5YuV6ISIIDwga2FuZG91bXlha3VcIDsKK+WkieWlj+absiA8IGhlbnNvdWt5b2t1XCA7CivmtYTljJboo4Xnva4gPCBqb3VrYXNvdWNoaVwgOwor5b6h55Sf5oaO5qeYIDwgb2FpbmlrdXNhbWFcIDsKK+ihqOW9sOWPsCA8IGh5b3VzaG91ZGFpXCA7Civkurrlk6Hmt5jmsbAgPCBqaW4nJ2ludG91dGFcIDsKK+iRrOmAgeabsiA8IHNvdXNvdWt5b2t1XCA7CivkuqTpgJrkuovmlYUgPCBrb3V0c3V1amlrb1wgOwor5Y2D5YiG546HIDwgc2VuYnVucml0c3VcIDsKK+Wbm+i8qumnhuWLlSA8IHlvbnJpbmt1ZG91XCA7CivkuLjkuIDlubQgPCBtYXJ1aWNoaW5lblwgOwor5Luj55CG5YWs5L2/IDwgZGFpcmlrb3VzaGlcIDsKK+WkluWLmeWkp+iHoyA8IGdhaW11ZGFpamluXCA7CivogIHlu4PniakgPCByb3VoYWlidXRzdVwgOwor5Y2X5qW15YWJIDwgbmFua3lva3Vrb3VcIDsKK+earueul+eUqCA8IGthd2F6YW4nJ3lvdVwgOwor6YeO5oim56Cy5YW1IDwgeWFzZW5ob3VoZWlcIDsKK+i/veWIhuevgCA8IG9pd2FrZWJ1c2hpXCA7CivlvrPlt53li6IgPCB0b2t1Z2F3YXplaVwgOwor5Zyw5ZCN6L6e5YW4IDwgY2hpbWVpaml0ZW5cIDsKK+S4jeWLleeUo+WxiyA8IGZ1ZG91c2FuJyd5YVwgOwor5Ym16YCg54mpIDwgc291em91YnV0c3VcIDsKK+WIneiIqua1tyA8IGhhdHN1a291a2FpXCA7Civos7zoqq3mlpkgPCBrb3Vkb2t1cnlvdVwgOwor5b6X56Wo5pWwIDwgdG9rdWh5b3VzdXVcIDsKK+S9k+aEn+a4qeW6piA8IHRhaWthbicnb25kb1wgOwor6Zuq5pmv6ImyIDwgeXVraWdlc2hpa2lcIDsKK+ims+WFiemDveW4giA8IGthbmtvdXRvc2hpXCA7CivlkIzmgKfmhJvogIUgPCBkb3VzZWlhaXNoYVwgOwor6YOo6ZqK5pKk6YCAIDwgYnV0YWl0ZXR0YWlcIDsKK+eyvuelnueahCA8IHNlaXNoaW50ZWtpXCA7CivljZTorbDkvJrlk6EgPCBreW91Z2lrYWlpblwgOwor5ZWT6JKZ6YGL5YuVIDwga2VpbW91dW5kb3VcIDsKK+W+s+W3neWFrCA8IHRva3VnYXdha291XCA7Civoh6rnq4vlv4MgPCBqaXJpdHN1c2hpblwgOwor5LqA55Sy5qih5qeYIDwga2lra291bW95b3VcIDsKK+ihm+eUn+eKtuaFiyA8IGVpc2Vpam91dGFpXCA7CivmvLjpgLLnmoQgPCB6ZW5zaGludGVraVwgOwor5pWZ5Lya5pqmIDwga3lvdWthaXJla2lcIDsKK+auuuS6uuiAhSA8IHNhdHN1amluc2hhXCA7Civpjpblm73kuLvnvqkgPCBzYWtva3VzaHVnaVwgOwor57K+56We55eFIDwgc2Vpc2hpbmJ5b3VcIDsKK+auuuS6uue9qiA8IHNhdHN1amluemFpXCA7CivmiJDlubTlvI8gPCBzZWluZW5zaGlraVwgOwor5Zmo55So6LKn5LmPIDwga2l5b3ViaW5ib3VcIDsKK+iEseefs+ayuSA8IGRhdHN1c2VraXl1XCA7CivlhYjpgLLlm70gPCBzZW5zaGlua29rdVwgOwor55y857K+55ay5Yq0IDwgZ2Fuc2VpaGlyb3VcIDsKK+Wuo+S8neapn+mWoiA8IHNlbmRlbmtpa2FuXCA7CivlnJ/lm6PlrZAgPCB0c3VjaGlkYW5nb1wgOwor5L2V5pmC5L2V5pmCIDwgaXRzdW5hbmRva2lcIDsKK+aOp+WupCA8IGhpa2Flc2hpdHN1XCA7CivmsJHmqKnkuLvnvqkgPCBtaW5rZW5zaHVnaVwgOwor5bm05qyh57eP5LyaIDwgbmVuamlzb3VrYWlcIDsKK+a3t+WQiOeJqSA8IGtvbmdvdWJ1dHN1XCA7Civou43mpb3plbcgPCBndW5nYWt1Y2hvdVwgOwor5rOV5b6L5LiKIDwgaG91cml0c3Vqb3VcIDsKK+eVnOeKrOeojiA8IGNoaWt1a2VuemVpXCA7CivnhKHlhJ/kuqTku5ggPCBtdXNob3Vrb3VmdVwgOwor55+t5pyf5omL5b2iIDwgdGFua2l0ZWdhdGFcIDsKK+WGheWLmeWkp+iHoyA8IG5haW11ZGFpamluXCA7CivkuIDkuJbkuIDku6MgPCBpc3NlaWNoaWRhaVwgOwor5LqL6aCF57Si5byVIDwgamlrb3VzYWt1aW5cIDsKK+aUvuWwhOe3muenkSA8IGhvdXNoYXNlbmthXCA7CivnmoflpKrlrZDlpoMgPCBrb3V0YWlzaGloaVwgOwor5qKB5bGx5rOKIDwgcnlvdXphbnBha3VcIDsKK+W9q+WhkeihkyA8IGNob3Vzb2p1dHN1XCA7Civku6PnlKjpo58gPCBkYWl5b3VzaG9rdVwgOwor5aaW5oCq5aSJ5YyWIDwgeW91a2FpaGVuZ2VcIDsKK+S4puacqOmBkyA8IG5hbWlraW1pY2hpXCA7Civlrp3nn7PnrrEgPCBob3VzZWtpYmFrb1wgOwor5Y2S5qWt5b6MIDwgc290c3VneW91Z29cIDsKK+WPo+inkuWKmyA8IGt1Y2hpZHp1bW91XCA7Civkuovmpa3kuLsgPCBqaWd5b3VudXNoaVwgOwor6Ieq6JmQ55qEIDwgamlneWFrdXRla2lcIDsKK+S4i+ebuOirhyA8IHNoaXRhc291ZGFuXCA7CivlpInlvaLpg6jploAgPCBoZW5rZWlidW1vblwgOwor6YeO5oim55eF6ZmiIDwgeWFzZW5ieW91aW5cIDsKK+emv+mgreeXhSA8IHRva3V0b3VieW91XCA7CivmiKbngb3lnLDljLogPCBzZW5zYWljaGlrdVwgOwor5by+552A54K5IDwgZGFuY2hha3V0ZW5cIDsKK+eJueWLmeapn+mWoiA8IHRva3VtdWtpa2FuXCA7CivkupTmnIjnl4UgPCBnb2dhdHN1YnlvdVwgOwor56CC57OW5aSn5qC5IDwgc2F0b3VkYWlrb25cIDsKK+W8vuWKm+aApyA8IGRhbnJ5b2t1c2VpXCA7CivmoLjniIblvL4gPCBrYWt1YmFrdWRhblwgOwor5ZWG5qWt6KGXIDwgc2hvdWd5b3VnYWlcIDsKK+mgreaWh+WtlyA8IGthc2hpcmFtb2ppXCA7CivljYrliqDlt6Xlk4EgPCBoYW5rYWtvdWhpblwgOwor6Ieq6KiY5rip5bqm6KiIIDwgamlraW9uZG9rZWlcIDsKK+e4rue3rOe0mSA8IGNoaXJpbWVuc2hpXCA7CivkuoznrYnliIbnt5ogPCBuaXRvdWJ1bnNlblwgOwor5o6I5qWt5pmC6ZaTIDwganVneW91amlrYW5cIDsKK+WkqeelnuWcsOelhyA8IHRlbmppbmNoaWdpXCA7Civov73liqDkuojnrpcgPCB0c3Vpa2F5b3NhblwgOwor6Z2e5ZCI55CG55qEIDwgaGlnb3VyaXRla2lcIDsKK+WKtOi+suaUv+W6nCA8IHJvdW5vdXNlaWZ1XCA7CivljZfkuqzomasgPCBuYW5raW5tdXNoaVwgOwor6KOB5rG65pu4IDwgc2Fpa2V0c3VzaG9cIDsKK+S4i+aEj+S4iumBlCA8IGthaWpvdXRhdHN1XCA7CivmoLjnh4PmlpkgPCBrYWt1bmVucnlvdVwgOwor5LmX6LuK5ouS5ZCmIDwgam91c2hha3lvaGlcIDsKK+mAkOWtl+iosyA8IGNoaWt1aml5YWt1XCA7CivmsLTmtJfkvr/miYAgPCBzdWlzZW5iZW5qb1wgOwor5Y+O57SN5a625YW3IDwgc2h1dW5vdWthZ3VcIDsKK+acqumWi+WivuWcsCA8IG1pa2Fpa29uY2hpXCA7CivmraPlvZPpmLLooZsgPCBzZWl0b3Vib3VlaVwgOwor5LiA5b656ICFIDwgaXR0ZXRzdW1vbm9cIDsKK+W+oeWNlOWKmyA8IGdva3lvdXJ5b2t1XCA7Civlrabnp5HoqabpqJMgPCBnYWtrYXNoaWtlblwgOwor5L+C5bGe5LitIDwga2Vpem9rdWNodXVcIDsKK+a9nOawtOavjeiJpiA8IHNlbnN1aWJva2FuXCA7CivnsbPljbAgPCBrb21lamlydXNoaVwgOwor55eF5Lit5ZCfIDwgYnlvdWNodXVnaW5cIDsKK+S9v+eUqOS+oeWApCA8IHNoaXlvdWthY2hpXCA7CivmpbXpmZDlgKQgPCBreW9rdWdlbmNoaVwgOwor5pWZ6IKy5a2mIDwga3lvdWlrdWdha3VcIDsKK+mbu+ipseWupCA8IGRlbndhc2hpdHN1XCA7CivpgaDlv4PlipsgPCBlbnNoaW5yeW9rdVwgOwor5a6Y5bCK5rCR5Y2RIDwga2Fuc29ubWlucGlcIDsKK+WuruW0juecjCA8IG1peWF6YWtpa2VuXCA7CivllYblt6Xmpa0gPCBzaG91a291Z3lvdVwgOwor6KGd5YuV55qEIDwgc2hvdWRvdXRla2lcIDsKK+iDhuefs+eXhyA8IHRhbnNla2lzaG91XCA7CivovLjlh7rlk4EgPCB5dXNodXRzdWhpblwgOwor5pmu6YGN5paH5rOVIDwgZnVoZW5idW5wb3VcIDsKK+mBjuWJsOS6uuWPoyA8IGtham91amlua291XCA7CivkuInnnKDompUgPCBzYW5taW5rYWlrb1wgOwor6ZaT5qyg5rOJIDwga2Fua2V0c3VzZW5cIDsKK+WHuuWFiOapn+mWoiA8IGRlc2FraWtpa2FuXCA7Civmupblgpnlp5Tlk6HkvJogPCBqdW5iaWlpbmthaVwgOwor5aSp6b6N5bedIDwgdGVucnl1dWthd2FcIDsKK+aVmee/kueUnyA8IGt5b3VzaHV1c2VpXCA7CivpmqPmjqXlnLAgPCByaW5zZXRzdWNoaVwgOwor55m655Sf546HIDwgaGFzc2Vpcml0c3VcIDsKK+iRoeiQhOeVkSA8IGJ1ZG91YmF0YWtlXCA7CivlooPnlYzmqJkgPCBreW91a2FpaHlvdVwgOwor56m66LuN5YqbIDwga3V1Z3Vucnlva3VcIDsKK+S6pOWjsOabsiA8IGtvdXNlaWt5b2t1XCA7Civnj77lhoXplqMgPCBnZW4nJ25haWtha3VcIDsKK+WNoOaYn+ihkyA8IHNlbnNlaWp1dHN1XCA7CivpppnovpvmlpkgPCBrb3VzaGlucnlvdVwgOwor55S66YGT5aC0IDwgbWFjaGlkb3Vqb3VcIDsKK+Wuo+S8neWKueaenCA8IHNlbmRlbmtvdWthXCA7CivmmYLjgIXliLvjgIUgPCBqaWppa29ra29rdVwgOwor6L+R5Ly86KiI566XIDwga2luamlrZWlzYW5cIDsKK+WLleWKm+a6kCA8IGRvdXJ5b2t1Z2VuXCA7CivmgZLnrYnlvI8gPCBrb3V0b3VzaGlraVwgOwor6KiO5LyQ6LuNIDwgdG91YmF0c3VndW5cIDsKK+ihqOeci+advyA8IG9tb3Rla2FuYmFuXCA7CivorbfmhrLpgYvli5UgPCBnb2tlbicndW5kb3VcIDsKK+a/g+mdkuiJsiA8IG5vdXNlaXNob2t1XCA7Civmrrrkurrniq8gPCBzYXRzdWppbmhhblwgOwor5q6L5b+16LOeIDwgemFuJyduZW5zaG91XCA7Civljp/lm6DntZDmnpwgPCBnZW4nJ2lua2Vra2FcIDsKK+WPi+i7jemDqOmaiiA8IHl1dWd1bmJ1dGFpXCA7CivohLPlhYXooYAgPCBub3VqdXVrZXRzdVwgOwor6aOf5Lq656iuIDwgc2hva3VqaW5zaHVcIDsKK+i1pOikkOiJsiA8IHNla2thc3Nob2t1XCA7CivnhKHlsL3kvJrnpL4gPCBtdWppbmdhaXNoYVwgOwor6IiI5L+h6YyyIDwga291c2hpbnJva3VcIDsKK+mbu+eGseWZqCA8IGRlbicnbmV0c3VraVwgOwor5L2c5puy6ICFIDwgc2Fra3lva3VzaGFcIDsKK+WPpOS7iuadseilvyA8IGtva29udG91emFpXCA7CivllJDpjKYgPCBrYXJhbmlzaGlraVwgOwor55yL6K235amm6ZW3IDwga2FuZ29mdWNob3VcIDsKK+WVhuaomeaoqSA8IHNob3VoeW91a2VuXCA7CivmgrLmhqTmhbfmhaggPCBoaWZ1bmtvdWdhaVwgOwor5bi46K2Y5Lq6IDwgam91c2hpa2lqaW5cIDsKK+WPpOS7o+aWh+aYjiA8IGtvZGFpYnVubWVpXCA7CivoprPlrqLlsaQgPCBrYW5reWFrdXNvdVwgOwor54Sh55Sj5pS/5YWaIDwgbXVzYW5zZWl0b3VcIDsKK+S4gOmHjeahnCA8IGhpdG9lemFrdXJhXCA7CivpgbjmjJnmupblgpkgPCBzZW5reW9qdW5iaVwgOwor5Zyw5YuV6KqsIDwgY2hpZG91c2V0c3VcIDsKK+aEj+itmOS4jeaYjiA8IGlzaGlraWZ1bWVpXCA7Civnmb3kupzos6ogPCBoYWt1YXNoaXRzdVwgOwor6Iag552A5YmkIDwga291Y2hha3V6YWlcIDsKK+S4gOauteiQvSA8IGljaGlkYW5yYWt1XCA7CivntYTlkIjkuLvnvqkgPCBrdW1pYWlzaHVnaVwgOwor6LuN55So6bOpIDwgZ3VuJyd5b3ViYXRvXCA7Civkv5fmloflraYgPCB6b2t1YnVuZ2FrdVwgOwor5YCL5L2T55m655SfIDwga290YWloYXNzZWlcIDsKK+mbu+Wcp+ioiCA8IGRlbicnYXRzdWtlaVwgOwor6Jas5bGA5pa5IDwgeWFra3lva3Vob3VcIDsKK+azleWItuWxgCA8IGhvdXNlaWt5b2t1XCA7CivolqzlrabogIUgPCB5YWt1Z2FrdXNoYVwgOwor5L+C5LqJ54mpIDwga2Vpc291YnV0c3VcIDsKK+Wbm+WIhumfs+espiA8IHNoaWJ1bicnb25wdVwgOwor5L2/5b6S5pu457ChIDwgc2hpdG9zaG9rYW5cIDsKK+WEquaflOS4jeaWrSA8IHl1dWp1dWZ1ZGFuXCA7CivohLHmr5vliaQgPCBkYXRzdW1vdXphaVwgOwor54WO6aSF6JKy5ZujIDwgc2VuYmVpYnV0b25cIDsKK+euoei9hOaoqSA8IGthbmthdHN1a2VuXCA7CivlgJ/nlKjmm7ggPCBzaGFrdXlvdXNob1wgOwor5LqI5a6a6Kq/5ZKMIDwgeW90ZWljaG91d2FcIDsKK+WlieWFrOWPoyA8IGhvdWtvdWd1Y2hpXCA7CivlhYjnpZbkvJ3mnaUgPCBzZW56b2RlbnJhaVwgOwor5pS+6YCB5bGAIDwgaG91c291a3lva3VcIDsKK+S6i+alremDqOWItiA8IGppZ3lvdWJ1c2VpXCA7Civpu4Tnmb3oibIgPCBrb2hha3VzaG9rdVwgOwor6Ieo5pmC5YiX6LuKIDwgcmluamlyZXNzaGFcIDsKK+Wumuacn+ippumokyA8IHRlaWtpc2hpa2VuXCA7Civnvr3nuZToorQgPCBoYW9yaWhha2FtYVwgOwor57eP5ZCI6Kqy56iOIDwgc291Z291a2F6ZWlcIDsKK+mBoOmalOism+e+qSA8IGVua2FrdWtvdWdpXCA7CivpmaTluZXlvI8gPCBqb21ha3VzaGlraVwgOwor5rW35bqV5rK555SwIDwga2FpdGVpeXVkZW5cIDsKK+ecn+S4gOaWh+WtlyA8IG1haWNoaW1vbmppXCA7CivonbjniZsgPCBkZW5kZW5tdXNoaVwgOwor6Zu76Kmx6Kq/5p+7IDwgZGVud2FjaG91c2FcIDsKK+aKgOihk+aPtOWKqSA8IGdpanV0c3VlbmpvXCA7CivlvLfliLbnmoQgPCBreW91c2VpdGVraVwgOwor5by35b+D5YmkIDwga3lvdXNoaW56YWlcIDsKK+eUn+a0u+eSsCA8IHNlaWthdHN1a2FuXCA7CivmmKXkuIDnlaogPCBoYXJ1aWNoaWJhblwgOwor5Y2B5YWr55WqIDwganV1aGFjaGliYW5cIDsKK+m7kum2qyA8IGt1cm90c3VndW1pXCA7CivlgY/lkJHlm57ot68gPCBoZW5rb3VrYWlyb1wgOwor5LqI5a6a57SN56iOIDwgeW90ZWlub3V6ZWlcIDsKK+eah+WQjumZm+S4iyA8IGtvdWdvdWhlaWthXCA7CivpgKPpgqbliLbluqYgPCByZW5wb3VzZWlkb1wgOwor6Yym6JuHIDwgbmlzaGlraWhlYmlcIDsKK+e1gui6q+WumCA8IHNodXVzaGlua2FuXCA7Civlm73kvo0gPCBrdW5pemFtdXJhaVwgOwor6Zu75rCX6Zu75a2QIDwgZGVua2lkZW5zaGlcIDsKK+S7o+ihjOapn+mWoiA8IGRhaWtvdWtpa2FuXCA7CivnlrLlirTlm7DmhoogPCBoaXJvdWtvbnBhaVwgOwor55uX6Zuj5L+d6Zm6IDwgdG91bmFuaG9rZW5cIDsKK+e0lOecn+eEoeWeoiA8IGp1bnNoaW5tdWt1XCA7CivmnIjplbfnn7MgPCBnZXRjaG91c2VraVwgOwor5pWZ6IG35ZOhIDwga3lvdXNob2t1aW5cIDsKK+S4i+S9jeS6kuaPm+aApyA8IGthaWdva2Fuc2VpXCA7Civms5Xli5nlpKfoh6MgPCBob3VtdWRhaWppblwgOwor6YCB5Yil5LyaIDwgc291YmV0c3VrYWlcIDsKK+WHuuWTgeWbvSA8IHNodXBwaW5rb2t1XCA7CivliJHkuovlh6bliIYgPCBrZWlqaXNob2J1blwgOwor6aeQ6LuK6YGV5Y+NIDwgY2h1dXNoYWloYW5cIDsKK+WNl+S6rOeUuiA8IG5hbmtpbm1hY2hpXCA7CivmmYLmqZ/lsJrml6kgPCBqaWtpc2hvdXNvdVwgOwor6YGT5b6z55qEIDwgZG91dG9rdXRla2lcIDsKK+WVhualreeVjCA8IHNob3VneW91a2FpXCA7Civlj47ntI3poY0gPCBzaHV1bm91Z2FrdVwgOwor6byO56uL5oimIDwgdGVpcml0c3VzZW5cIDsKK+WOn+WJh+eahCA8IGdlbnNva3V0ZWtpXCA7CivlubTph5Hln7rph5EgPCBuZW5raW5raWtpblwgOwor5YKN6IG05paZIDwgYm91Y2hvdXJ5b3VcIDsKK+WNg+WGhuacrSA8IHNlbicnZW5zYXRzdVwgOwor5a6a5Y+O5YWlIDwgdGVpc2h1dW55dXVcIDsKK+mBqeazleihjOeCuiA8IHRla2lob3Vrb3VpXCA7CivnianopovpgYrlsbEgPCBtb25vbWl5dXNhblwgOwor5b6X5oSP5rqA6Z2iIDwgdG9rdWltYW5tZW5cIDsKK+aZguW3ruWHuuWLpCA8IGppc2FzaHVra2luXCA7CivmlL/msrvllY/poYwgPCBzZWlqaW1vbmRhaVwgOwor57W25a++5pWs6KqeIDwgemV0dGFpa2VpZ29cIDsKK+mNteebpOalveWZqCA8IGtlbmJhbmdha2tpXCA7CivoqLToqJ/kuovku7YgPCBzb3Nob3VqaWtlblwgOwor5oSP5ZGz5b255YmyIDwgaW1peWFrdXdhcmlcIDsKK+WFreWkp+W3niA8IHJva3VkYWlzaHV1XCA7CivlibLlvJXliLggPCB3YXJpYmlraWtlblwgOwor5L2P55Sf5rS7IDwganV1c2Vpa2F0c3VcIDsKK+S+oeagvOWuieWumiA8IGtha2FrdWFudGVpXCA7Civku4rkuIrpmZvkuIsgPCBraW5qb3VoZWlrYVwgOwor6Zu75rCX57O757WxIDwgZGVua2lrZWl0b3VcIDsKK+WJjeeri+iFuiA8IHplbnJpdHN1c2VuXCA7CivlhYzmj5vpioDooYwgPCBkYWthbmdpbmtvdVwgOwor5YaZ55yf6ZuGIDwgc2hhc2hpbnNodXVcIDsKK+WFqOS8muS4gOiHtCA8IHplbmthaWl0Y2hpXCA7Civnmb7kuIfpgY0gPCBoeWFrdW1hbmJlblwgOwor6J2J5pmC6ZuoIDwgc2VtaXNoaWd1cmVcIDsKK+m6u+iWrOaCo+iAhSA8IG1heWFrdWthbmphXCA7CivlibLlvJXlgrUgPCB3YXJpYmlraXNhaVwgOwor5b+D5qmf5LiA6LuiIDwgc2hpbmtpaXR0ZW5cIDsKK+eEoeWQjeaIpuWjqyA8IG11bWVpc2Vuc2hpXCA7CivllK/kuIDnhKHkuowgPCB5dWlpdHN1bXVuaVwgOwor5o6l552A5YmkIDwgc2V0Y2hha3V6YWlcIDsKK+aJi+ihk+WPsCA8IHNodWp1dHN1ZGFpXCA7CivpmLLngavmiYkgPCBib3VrYXRvYmlyYVwgOwor5Lmx5YWl6ICFIDwgcmFuJydueXV1c2hhXCA7CivoqIjnlLvnmoQgPCBrZWlrYWt1dGVraVwgOwor6LKh5pS/5a6J5a6aIDwgemFpc2VpYW50ZWlcIDsKK+iqv+WNsOW8jyA8IGNob3VpbnNoaWtpXCA7CivnnIvorbflrabmoKEgPCBrYW5nb2dha2tvdVwgOwor6YCG6Lui5bGkIDwgZ3lha3V0ZW5zb3VcIDsKK+eUn+a0u+azlSA8IHNlaWthdHN1aG91XCA7CivnspjlnJ/os6ogPCBuZW5kb3NoaXRzdVwgOwor5YiG6aGe5Z+65rqWIDwgYnVucnVpa2lqdW5cIDsKK+mAhui8uOWFpSA8IGd5YWt1eXVueXV1XCA7Civmlofmm7jlgb3pgKAgPCBidW5zaG9naXpvdVwgOwor5a2k6LuN5aWu6ZeYIDwga29ndW5mdW50b3VcIDsKK+aWsOiIiOWbvSA8IHNoaW5rb3Vrb2t1XCA7CivmlbDmrKHml4XliLggPCBzdXVqaXJ5b2tlblwgOwor5ZCI55uu55qEIDwgZ291bW9rdXRla2lcIDsKK+WQiOaIkOe5iue2rSA8IGdvdXNlaXNlbicnaVwgOwor5paw5Lq66LOeIDwgc2hpbmppbnNob3VcIDsKK+mbu+WgseWxgCA8IGRlbnBvdWt5b2t1XCA7CivosrTml4/mlL/msrsgPCBraXpva3VzZWlqaVwgOwor5Y2a5oSb5Li7576pIDwgaGFrdWFpc2h1Z2lcIDsKK+S4gOaWieaknOaMmSA8IGlzc2Vpa2Vua3lvXCA7CivkupzpiZvoj6/ou5/oho8gPCBhZW5rYW5hbmtvdVwgOwor5LiJ5bmV54mpIDwgc2FubWFrdW1vbm9cIDsKK+eZveacqOiTriA8IGhha3Vtb2t1cmVuXCA7CivllYbmpa3muK8gPCBzaG91Z3lvdWtvdVwgOwor5LiA6YeM5aGaIDwgaWNoaXJpZHp1a2FcIDsKK+e1gui6q+WIkSA8IHNodXVzaGlua2VpXCA7CivkvY7muKnovLjpgIEgPCB0ZWlvbicneXVzb3VcIDsKK+miqOWFieaYjuWqmiA8IGZ1dWtvdW1laWJpXCA7Civlvozpg6jluqfluK0gPCBrb3VidXphc2VraVwgOwor5YuV5Yqb5a2mIDwgZG91cmlraWdha3VcIDsKK+evgOaWmeeQhiA8IHNlY2hpcnlvdXJpXCA7Civlh7rlk4HkurogPCBzaHVwcGluJyduaW5cIDsKK+WCjeiBtOW4rSA8IGJvdWNob3VzZWtpXCA7CivkuI3pganliIcgPCBmdXRla2lzZXRzdVwgOwor5YCL5Lq65oqV6LOHIDwga29qaW50b3VzaGlcIDsKK+Wtpumam+eahCA8IGdha3VzYWl0ZWtpXCA7Civnq5zpqqjluqcgPCByeXV1a290c3V6YVwgOwor5L+d6Zm65Lya56S+IDwgaG9rZW5nYWlzaGFcIDsKK+ehq+WMluawtOe0oCA8IHJ5dXVrYXN1aXNvXCA7Civku67mnaHntIQgPCBrYXJpam91eWFrdVwgOwor5pel5pys5YiX5bO2IDwgbmlob25yZXR0b3VcIDsKK+majue0mueroCA8IGthaWt5dXVzaG91XCA7CivmiKbmmYLlhazlgrUgPCBzZW5qaWtvdXNhaVwgOwor5oq15oqX5YqbIDwgdGVpa291cnlva3VcIDsKK+ajruael+WtpiA8IHNoaW5yaW5nYWt1XCA7Civmtbflk6HntYTlkIggPCBrYWlpbmt1bWlhaVwgOwor55m+5LiH6KiAIDwgaHlha3VtYW5nZW5cIDsKK+S/rui+nueWkeWVjyA8IHNodXVqaWdpbW9uXCA7CivmuK/nlLogPCBtaW5hdG9tYWNoaVwgOwor5rOV5a6a6LKo5bmjIDwgaG91dGVpa2FoZWlcIDsKK+S9k+WGheWPl+eyviA8IHRhaW5haWp1c2VpXCA7CivljJbnsqfkuIsgPCBrZXNob3VzaGl0YVwgOwor6Jmr6JasIDwgbXVzaGlndXN1cmlcIDsKK+alveims+S4u+e+qSA8IHJha2thbnNodWdpXCA7CivotaTmj5Dnga8gPCBha2FjaG91Y2hpblwgOwor5YWl6Zmi5oKj6ICFIDwgbnl1dWlua2FuamFcIDsKK+WJtemAoOS4uyA8IHNvdXpvdW51c2hpXCA7CivplqLpgKPkuovpoIUgPCBrYW5yZW5qaWtvdVwgOwor5Y6f5L6h6KiI566XIDwgZ2Vua2FrZWlzYW5cIDsKK+mbu+WtkOWbnui3ryA8IGRlbnNoaWthaXJvXCA7CivlgJnlrZ3os6IgPCBob3VzaGF1c2hlblwgOwor6YeN54K55Li7576pIDwganV1dGVuc2h1Z2lcIDsKK+S+oembu+WtkOW4ryA8IGthZGVuc2hpdGFpXCA7CivmnInlirnpnIDopoEgPCB5dXVrb3VqdXlvdVwgOwor5LqL5qWt5bm05bqmIDwgamlneW91bmVuZG9cIDsKK+ebuOWPjeWumueQhiA8IHNvdWhhbnRlaXJpXCA7Civlha3liIblhIDluqcgPCByb2t1YnVuZ2l6YVwgOwor5Yas5bCG6LuNIDwgZnV5dXNob3VndW5cIDsKK+WuieWumueKtuaFiyA8IGFudGVpam91dGFpXCA7CivmsJHkuLvmlL/msrsgPCBtaW5zaHVzZWlqaVwgOwor54us57+S5pu4IDwgZG9rdXNodXVzaG9cIDsKK+WFrOiovOaWmSA8IGtvdXNob3VyeW91XCA7CivllJDntIUgPCBrYXJha3VyZW5haVwgOwor57a/57mU54mpIDwgbWVuJydvcmltb25vXCA7CivljJblrabnuYrntq0gPCBrYWdha3VzZW4nJ2lcIDsKK+e1tuWvvumfs+aEnyA8IHpldHRhaW9ua2FuXCA7CivlhYjlhaXkuLsgPCBzZW4nJ255dXVzaHVcIDsKK+acgOe1gueahCA8IHNhaXNodXV0ZWtpXCA7CivmnKzlu7rnr4kgPCBob25rZW5jaGlrdVwgOwor6Ieq54S256C05aOKIDwgc2hpemVuaGFrYWlcIDsKK+WgsemBk+apn+mWoiA8IGhvdWRvdWtpa2FuXCA7CivmjZXomZzkuqTmj5sgPCBob3J5b2tvdWthblwgOwor54uX5bC+6I2JIDwgZW5va29yb2d1c2FcIDsKK+S6nOexs+WIqeWKoOadiSA8IGFtZXJpa2FzdWdpXCA7CivkvqHlgKTliKTmlq0gPCBrYWNoaWhhbmRhblwgOwor6KGM5ZWG5Lq6IDwgZ3lvdXNob3VuaW5cIDsKK+WIh+WIhuazlSA8IHNldHN1YnVuaG91XCA7CivmiYvnt7TmiYvnrqEgPCB0ZXJlbnRla3VkYVwgOwor5Zmo5qKw5L2T5pONIDwga2lrYWl0YWlzb3VcIDsKK+mkiuiAgeS/nemZuiA8IHlvdXJvdWhva2VuXCA7CivlsI/nmb7lp5MgPCBrb2J5YWt1c2hvdVwgOwor5b+D5LiI5aSrIDwga29rb3Jvam91YnVcIDsKK+mzpemhnuWtpiA8IGNob3VydWlnYWt1XCA7CivlvLHlubTogIUgPCBqYWt1bmVubW9ub1wgOwor5Lit6ZqK6ZW3IDwgY2h1dXRhaWNob3VcIDsKK+S4jeW9k+ihqOekuiA8IGZ1dG91aHlvdWppXCA7CivlronlhajpgYvou6IgPCBhbnplbicndW50ZW5cIDsKK+ebuOirh+W9uSA8IHNvdWRhbicneWFrdVwgOwor5Lqk6Zqb56+E5ZuyIDwga291c2FpaGFuJydpXCA7Civlv5znlKjnp5HlraYgPCBvdXlvdWthZ2FrdVwgOwor6aOf5LqL5pmCIDwgc2hva3VqaWRva2lcIDsKK+WFq+mdouS9kyA8IGhhY2hpbWVudGFpXCA7CivkuI3mlbTlkIjkurogPCBmdXNlaWdvdWppblwgOwor5Y6f5Yik5rG6IDwgZ2VuaGFua2V0c3VcIDsKK+WNmOWFg+WItuW6piA8IHRhbmdlbnNlaWRvXCA7CivkuIDmranliY3pgLIgPCBpcHBvemVuc2hpblwgOwor5Zu9546L6Zmb5LiLIDwga29rdW91aGVpa2FcIDsKK+alteWcsOWcjyA8IGt5b2t1Y2hpa2VuXCA7CivmlL7pgIHooZvmmJ8gPCBob3Vzb3VlaXNlaVwgOwor5a+C5YWJ5rWE5ZyfIDwgamFra291am91ZG9cIDsKK+ebo+Wvn+WumCA8IGthbnNhdHN1a2FuXCA7CivlvoznlJ/lpKfkuosgPCBnb3Nob3VkYWlqaVwgOwor5LiJ5rCR5Li7576pIDwgc2FubWluc2h1Z2lcIDsKK+eZveeOieeyiSA8IHNoaXJhdGFtYWtvXCA7CivllYbmpa3mlocgPCBzaG91Z3lvdWJ1blwgOwor5rCX566h5YiH6ZaLIDwga2lrYW5zZWtrYWlcIDsKK+WkqeWLleiqrCA8IHRlbmRvdXNldHN1XCA7CivlgrLlsrjkuI3pgZwgPCBnb3VnYW5mdXNvblwgOwor6L676Kqs5rOVIDwgdHN1amlzZXBwb3VcIDsKK+WutueItumVt+WItiA8IGthZnVjaG91c2VpXCA7Civmmpfpu5LmmJ/pm7IgPCBhbmtva3VzZWl1blwgOwor6L+R5Luj5Zu95a62IDwga2luZGFpa29ra2FcIDsKK+eFieS4ueihkyA8IHJlbnRhbmp1dHN1XCA7Civopb/mtbflsrggPCBuaXNoaWthaWdhblwgOwor5YmN6YCU5pyJ5pybIDwgemVudG95dXVib3VcIDsKK+aApeS4iuaYhyA8IGt5dXVqb3VzaG91XCA7Civlrp3nn7PllYYgPCBob3VzZWtpc2hvdVwgOwor5o+b566X546HIDwga2Fuc2Fucml0c3VcIDsKK+W7uuioreiAhSA8IGtlbnNldHN1c2hhXCA7CivljJfjgIXopb8gPCBob2t1aG9rdXNlaVwgOwor6Z+z5qW955CG6KuWIDwgb25nYWt1cmlyb25cIDsKK+WnlOiol+iyqeWjsiA8IGl0YWt1aGFuYmFpXCA7CivpioDlqZrlvI8gPCBnaW5rb25zaGlraVwgOwor5LiJ5a+S5Zub5ripIDwgc2Fua2Fuc2hpb25cIDsKK+iyp+S5j+aJgOW4ryA8IGJpbmJvdWpvdGFpXCA7CivlvqHkvL3ojYnlrZAgPCBvdG9naXpvdXNoaVwgOwor56We5aWI5bed55yMIDwga2FuYWdhd2FrZW5cIDsKK+mbu+awl+ijhee9riA8IGRlbmtpc291Y2hpXCA7CivlnLDmlrnorbDkvJogPCBjaGlob3VnaWthaVwgOwor5Y6f5YuV5YqbIDwgZ2VuZG91cnlva3VcIDsKK+S/hOaZr+awlyA8IG5pd2FrYWdlaWtpXCA7Civoo4XnlLLpg6jpmoogPCBzb3Vrb3VidXRhaVwgOwor5LiN5Y+v5YWl5oCnIDwgZnVrYW55dXVzZWlcIDsKK+aCquaIr+iAhSA8IGl0YXp1cmFtb25vXCA7CivlpKfnpo/luLMgPCBkYWlmdWt1Y2hvdVwgOwor5pmC56+A5p+EIDwgamlzZXRzdWdhcmFcIDsKK+WNl+S6rOacqOe2vyA8IG5hbmtpbm1vbWVuXCA7Civno6/pta8gPCBpc29oaXlvZG9yaVwgOwor5Y2w6LGh5Li7576pIDwgaW5zaG91c2h1Z2lcIDsKK+WQuOihgOmsvCA8IGt5dXVrZXRzdWtpXCA7Civns5blsL/nl4UgPCB0b3VueW91YnlvdVwgOwor5LiA5by15LiA5bybIDwgaXRjaG91aXNzaGlcIDsKK+WMuumWk+WIl+i7iiA8IGt1a2FucmVzc2hhXCA7Civou6Lku7vlhYggPCB0ZW4nJ25pbnNha2lcIDsKK+aUr+mFjeWKmyA8IHNoaWhhaXJ5b2t1XCA7Civnm7jmgJ3nm7jmhJsgPCBzb3VzaGlzb3VhaVwgOwor6Iiq56m65Z+65ZywIDwga291a3V1a2ljaGlcIDsKK+ebo+afu+iomOmMsiA8IGthbnNha2lyb2t1XCA7CivmioDooZPnp7vou6IgPCBnaWp1dHN1aXRlblwgOwor55Sj5YWQ5Yi26ZmQIDwgc2FuamlzZWlnZW5cIDsKK+WNmOmfs+evgCA8IHRhbicnb25zZXRzdVwgOwor5paw6IGe56iuIDwgc2hpbmJ1bmRhbmVcIDsKK+mjveWSjOeKtuaFiyA8IGhvdXdham91dGFpXCA7CivkvY7kuJjpmbUgPCB0ZWlreXV1cnlvdVwgOwor5Zu96Zqb55qEIDwga29rdXNhaXRla2lcIDsKK+mDt+Wcn+iJsiA8IGt5b3Vkb3Nob2t1XCA7Civnq5znlLDlp6sgPCB0YXRzdXRhaGltZVwgOwor5bCP5a2m6aSoIDwgc2hvdWdha3VrYW5cIDsKK+efpeiDveaknOafuyA8IGNoaW5vdWtlbnNhXCA7Civkvb/nr4Dlm6MgPCBzaGlzZXRzdWRhblwgOwor5raI5oGv5paHIDwgc2hvdXNva3VidW5cIDsKK+e3i+iho+iNiSA8IGhpZ29yb21vc291XCA7CivkuLvoqIjlsYAgPCBzaHVrZWlreW9rdVwgOwor6YGT5b6z5b+DIDwgZG91dG9rdXNoaW5cIDsKK+acquaxuuWbmiA8IG1pa2V0c3VzaHV1XCA7CivmhJvllLHmm7IgPCBhaXNob3VreW9rdVwgOwor5a2k5b2x5oKE54S2IDwga29laXNob3V6ZW5cIDsKK+S6lOeoruertuaKgCA8IGdvc2h1a3lvdWdpXCA7CivlgbXlr5/pmoogPCB0ZWlzYXRzdXRhaVwgOwor5Zuj5L2T5L+d6Zm6IDwgZGFudGFpaG9rZW5cIDsKK+eZuuS/oeWBtCA8IGhhc3NoaW5nYXdhXCA7Civlp4nlprnpg73luIIgPCBzaGltYWl0b3NoaVwgOwor6YGg5bGx6YeMIDwgdG9veWFtYXphdG9cIDsKK+elnue1jOeXmyA8IHNoaW5rZWl0c3V1XCA7CivkuI3pgJrnrofmiYAgPCBmdXRzdXVrYXNob1wgOwor56We57WM55eHIDwgc2hpbmtlaXNob3VcIDsKK+elnue1jOeXhSA8IHNoaW5rZWlieW91XCA7CivnoLTpgqrpoZXmraMgPCBoYWpha2Vuc2hvdVwgOwor5pS/5rK75Zuj5L2TIDwgc2VpamlkYW50YWlcIDsKK+S4gOWWnOS4gOaGgiA8IGlra2lpY2hpeXV1XCA7CivlrprnnYDmtrIgPCB0ZWljaGFrdWVraVwgOwor5byB6Ki85a2mIDwgYmVuc2hvdWdha3VcIDsKK+a6luWCmeWRveS7pCA8IGp1bmJpbWVpcmVpXCA7Civlj5fpqJPnp5Hnm64gPCBqdWtlbmthbW9rdVwgOwor5pyo566h5qW95ZmoIDwgbW9ra2FuZ2Fra2lcIDsKK+eZuuS/oeS6uiA8IGhhc3NoaW4nJ25pblwgOwor5Lit6auY6Z+z6YOoIDwgY2h1dWtvdW9uYnVcIDsKK+WPi+aEm+e1kOWpmiA8IHl1dWFpa2Vra29uXCA7Civnt5HlnLDluK8gPCByeW9rdWNoaXRhaVwgOwor5rW36LuN5Z+65ZywIDwga2FpZ3Vua2ljaGlcIDsKK+eUn+a0u+WcjyA8IHNlaWthdHN1a2VuXCA7Civpm7vlrZDntKDlrZAgPCBkZW5zaGlzb3NoaVwgOwor54ax5Lyd5bCOIDwgbmV0c3VkZW5kb3VcIDsKK+mBk+W+s+WtpiA8IGRvdXRva3VnYWt1XCA7CivmhJvlm73pgYvli5UgPCBhaWtva3V1bmRvdVwgOwor6YGp5qC86ICFIDwgdGVraWtha3VzaGFcIDsKK+Wbs+abuOWupCA8IHRvc2hvc2hpdHN1XCA7CivoprPpn7Pmp5ggPCBrYW4nJ25vbnNhbWFcIDsKK+e1kOWpmuW8jyA8IGtla2tvbnNoaWtpXCA7Civopb/mtIvlvI8gPCBzZWl5b3VzaGlraVwgOwor5Lq65paH5Zyw55CGIDwgamlubW9uY2hpcmlcIDsKK+WKtOWDjeS6ieitsCA8IHJvdWRvdXNvdWdpXCA7Civmg4XloLHlh6bnkIYgPCBqb3Vob3VzaG9yaVwgOwor5Y+v5aSJ6LOH5pysIDwga2FoZW5zaGlob25cIDsKK+eCuuabv+W3ruebiiA8IGthd2FzZXNhZWtpXCA7Civoqpjmi5Dkuovku7YgPCB5dXVrYWlqaWtlblwgOwor5LiJ5aSn6YO95biCIDwgc2FuZGFpdG9zaGlcIDsKK+eUt+WGpeWIqSA8IG90b2tvbXlvdXJpXCA7CivmiYDopoHmmYLplpMgPCBzaG95b3VqaWthblwgOwor5aWz5qip6YGL5YuVIDwgam9rZW4nJ3VuZG91XCA7CivliIbmlaPlh6bnkIYgPCBidW5zYW5zaG9yaVwgOwor6LWw6KGM5Y+v6IO9IDwgc291a291a2Fub3VcIDsKK+WRvee2sSA8IGlub2NoaWR6dW5hXCA7CivmtYHoqIDpo5voqp4gPCByeXV1Z2VuaGlnb1wgOwor5LiA5paw57SA5YWDIDwgaXNzaGlua2lnZW5cIDsKK+W+kuaJi+S9k+aTjSA8IHRvc2h1dGFpc291XCA7CivkuIrohZXpqqggPCBqb3V3YW5rb3RzdVwgOwor55Sf5ZG95YqbIDwgc2VpbWVpcnlva3VcIDsKK+ehrOmqqOa8oiA8IGtvdWtvdHN1a2FuXCA7CivllYbmpa3lnLAgPCBzaG91Z3lvdWNoaVwgOwor6YeR6L2hIDwga2FuYWd1dHN1d2FcIDsKK+S4h+W5tOW6iiA8IG1hbicnbmVuZG9rb1wgOwor5Y+j6LuKIDwga3VjaGlndXJ1bWFcIDsKK+ism+mHiOW4qyA8IGtvdXNoYWt1c2hpXCA7CivkuInluYXlr74gPCBzYW5wdWt1dHN1aVwgOwor6JuL55m95bC/IDwgdGFucGFrdW55b3VcIDsKK+WIuua/gOiHrSA8IHNoaWdla2lzaHV1XCA7CivojYnpnovomasgPCB3YXJhamltdXNoaVwgOwor6YeR6J6N5qWtIDwga2luJyd5dXVneW91XCA7CivlsIHlu7rkuLvnvqkgPCBob3VrZW5zaHVnaVwgOwor6I+c56iu5rK5IDwgbmF0YW5lYWJ1cmFcIDsKK+WPl+mok+aIpuS6iSA8IGp1a2Vuc2Vuc291XCA7Civlh7rpm7LlpKfnpL4gPCBpenVtb3RhaXNoYVwgOwor6Zub5Lq65b2iIDwgaGluYW5pbmd5b3VcIDsKK+aoqemWgOWLouWutiA8IGtlbm1vbnNlaWthXCA7CivnhKHnnYDpmbggPCBtdWNoYWt1cmlrdVwgOwor5LiK5YiG5YilIDwgam91ZnVuYmV0c3VcIDsKK+Wkp+WLleiEiCA8IGRhaWRvdW15YWt1XCA7CivnhKHnt5rmk43nuKYgPCBtdXNlbnNvdWp1dVwgOwor56We54Sh5pyIIDwga2FuJyduYWR6dWtpXCA7CivlubzpprTmn5MgPCBvc2FuYW5hamltaVwgOwor5YaG5ZGo546HIDwgZW5zaHV1cml0c3VcIDsKK+WAn+WutuS6ieitsCA8IHNoYWtrYXNvdWdpXCA7Civlroflrpnnp5HlraYgPCB1Y2h1dWthZ2FrdVwgOwor5ZWG5qWt5Y+yIDwgc2hvdWd5b3VzaGlcIDsKK+WPpOWFuOiKuOiDvSA8IGtvdGVuZ2Vpbm91XCA7CivlsbHlsrPnl4UgPCBzYW5nYWt1YnlvdVwgOwor6Kaq5Lu75a6YIDwgc2hpbicnbmlua2FuXCA7Civov73ot6HogIUgPCB0c3Vpc2VraXNoYVwgOwor6LGq6I+v57Wi54ibIDwgZ291a2FrZW5yYW5cIDsKK+eZuuS8muW8jyA8IGhha2thaXNoaWtpXCA7CivlqabkurrpgYvli5UgPCBmdWppbicndW5kb3VcIDsKK+W6iumdouepjSA8IHl1a2FtZW5zZWtpXCA7CivkuI3li5XmmI7njosgPCBmdWRvdW15b3VvdVwgOwor5L2T5aSW5Y+X57K+IDwgdGFpZ2FpanVzZWlcIDsKK+eLuOimqueItiA8IHRhbnVraW95YWppXCA7CivmnKjnn7PmvKIgPCBib2t1c2VraWthblwgOwor5Zu96Ziy55yBIDwga29rdWJvdXNob3VcIDsKK+WLpOWLmeW5tOmZkCA8IGtpbm11bmVuZ2VuXCA7Civlm73mloflraYgPCBrb2t1YnVuZ2FrdVwgOwor55Sf5q6W6IW6IDwgc2Vpc2hva3VzZW5cIDsKK+a6gOWgtOS4gOiHtCA8IG1hbmpvdWl0Y2hpXCA7CivliY3kuJbnlJ/lrZggPCB6ZW5zZXNlaXpvblwgOwor6Ieq5q6655qEIDwgamlzYXRzdXRla2lcIDsKK+S8muioiOW5tOW6piA8IGthaWtlaW5lbmRvXCA7CivpgKDniankuLsgPCB6b3VidXRzdXNodVwgOwor5LiH6JGJ5Luu5ZCNIDwgbWFuJyd5b3VnYW5hXCA7Civlgo3ogbTpmo/mhI8gPCBib3VjaG91enVpaVwgOwor55So5YW16KGTIDwgeW91aGVpanV0c3VcIDsKK+e1tuWvvuWkmuaVsCA8IHpldHRhaXRhc3V1XCA7Civlj5boqr8gPCB0b3Jpc2hpcmFiZVwgOwor6YCA6IG36YeRIDwgdGFpc2hva3VraW5cIDsKK+e0heeZveippuWQiCA8IGtvdWhha3VqaWFpXCA7CivkvJroqIjnm6Pmn7sgPCBrYWlrZWlrYW5zYVwgOwor5b2O5pyI54q2IDwgd2FuZ2V0c3Vqb3VcIDsKK+WFq+e0mOS4gOWuhyA8IGhha2tvdWljaGl1XCA7CivoiJ7lj7Doo4Xnva4gPCBidXRhaXNvdWNoaVwgOwor55Sf5rKh5bm0IDwgc2VpYm90c3VuZW5cIDsKK+WNmOS4gOaApyA8IHRhbicnaXRzdXNlaVwgOwor6by75p+xIDwgaGFuYWJhc2hpcmFcIDsKK+aMgee2muWKmyA8IGppem9rdXJ5b2t1XCA7Civkuovli5nplbflrpggPCBqaW11Y2hvdWthblwgOwor5LiA6Iis56S+5LyaIDwgaXBwYW5zaGFrYWlcIDsKK+aXpeW4neaZguS7oyA8IG5pdHRlaWppZGFpXCA7CivmlrDogZ7mpa0gPCBzaGluYnVuZ3lvdVwgOwor55m75Z2C6LuK57eaIDwgdG9oYW5zaGFzZW5cIDsKK+elnue1jOaguCA8IHNoaW5rZWlrYWt1XCA7CivkuJbnlYzmnIDlpKcgPCBzZWthaXNhaWRhaVwgOwor5oyH5bCO5Y6f55CGIDwgc2hpZG91Z2VucmlcIDsKK+aeoui7uOWbvSA8IHN1dWppa3Vrb2t1XCA7CivpgKDmrKHpoZvmspsgPCB6b3VqaXRlbnBhaVwgOwor6Iiq56m6566h55CGIDwga291a3V1a2FucmlcIDsKK+S4ieiJsueJiCA8IHNhbnNob2t1YmFuXCA7Civnqq/ljbAgPCBrYW1hamlydXNoaVwgOwor5Lit6ZaT6aeFIDwgY2h1dWthbicnZWtpXCA7Civog73oo4XmnZ8gPCBub3VzaG91em9rdVwgOwor57WQ5pm25a2mIDwga2Vzc2hvdWdha3VcIDsKK+aEn+afk+e1jOi3ryA8IGthbnNlbmtlaXJvXCA7Civop6Pmsbrms5UgPCBrYWlrZXRzdWhvdVwgOwor6K2m5oiS6ImyIDwga2Vpa2Fpc2hva3VcIDsKK+S6jOetiei7jeabuSA8IG5pdG91Z3Vuc291XCA7CivkuIDmr5vkvZwgPCBpY2hpbW91c2FrdVwgOwor5rip54ax5oCnIDwgb24nJ25ldHN1c2VpXCA7CivpmLLngavloZfmlpkgPCBib3VrYXRvcnlvdVwgOwor6Ieq57iE6Ieq57ibIDwgamlqb3VqaWJha3VcIDsKK+mAlOS4reS4i+i7iiA8IHRvY2h1dWdlc2hhXCA7CivnkrDlooPkv53orbcgPCBrYW5reW91aG9nb1wgOwor5ZiY55m66KaL5ZmoIDwgdXNvaGFra2Vua2lcIDsKK+mdouS8muaZgumWkyA8IG1lbmthaWppa2FuXCA7Civph43mqZ/plqLpioMgPCBqdXVraWthbmp1dVwgOwor5YaF5Y+N6ISaIDwgbmFpaGFua3lha3VcIDsKK+azleahiOWvqeitsCA8IGhvdWFuc2hpbmdpXCA7Civlu7bnuITmvIEgPCBoYWVuYXdhcnlvdVwgOwor55u05pa55L2TIDwgY2hva3Vob3V0YWlcIDsKK+iHquWLleWItuW+oSA8IGppZG91c2VpZ3lvXCA7Civlrrbml4/pgZQgPCBrYXpva3V0YWNoaVwgOwor5Yi65r+A55qEIDwgc2hpZ2VraXRla2lcIDsKK+WAi+S6uuaMh+WwjiA8IGtvamluc2hpZG91XCA7Civoh6rnhLbnmbrngasgPCBzaGl6ZW5oYWtrYVwgOwor5Li75YuZ5aSn6IejIDwgc2h1bXVkYWlqaW5cIDsKK+efreacn+axuuaIpiA8IHRhbmtpa2Vzc2VuXCA7CivoqIDoqp7pgYvnlKggPCBnZW5nb3VuJyd5b3VcIDsKK+S6pOaPm+WxgCA8IGtvdWthbmt5b2t1XCA7CivljbHpmbrmgJ3mg7MgPCBraWtlbnNoaXNvdVwgOwor56m65Z+f566h55CGIDwga3V1aWtpa2FucmlcIDsKK+W+oeauv+Wls+S4rSA8IGdvdGVuam9jaHV1XCA7CivkuIPlubTlv4wgPCBzaGljaGluZW5raVwgOwor6Zqj5L+d5LqL5qWtIDwgcmlucG9qaWd5b3VcIDsKK+aCquaIr+abuCA8IGl0YXp1cmFnYWtpXCA7CivljYPkurrph50gPCBzZW4nJ25pbmJhcmlcIDsKK+WQiOaEj+W/g+S4rSA8IGdvdWlzaGluanV1XCA7CivkuJbnlYzoqJjpjLIgPCBzZWthaWtpcm9rdVwgOwor5Z+65pys5p2h5Lu2IDwga2lob25qb3VrZW5cIDsKK+i+suawkeS4gOaPhiA8IG5vdW1pbicnaWtraVwgOwor5YmN5Luj5pyq6IGeIDwgemVuZGFpbWltb25cIDsKK+a2iOavkua2siA8IHNob3Vkb2t1ZWtpXCA7CivopIflkIjmsZrmn5MgPCBmdWt1Z291b3NlblwgOwor57W25a++6Zu25bqmIDwgemV0dGFpcmVpZG9cIDsKK+ani+aIkOWPr+iDvSA8IGtvdXNlaWthbm91XCA7CivkuIDkurroiJ7lj7AgPCBoaXRvcmlidXRhaVwgOwor55qu5LiL57WE57mUIDwgaGlrYXNvc2hpa2lcIDsKK+ayueegpeefsyA8IGFidXJhdG9pc2hpXCA7CivlnLDkuIvos4fmupAgPCBjaGlrYXNoaWdlblwgOwor54uQ6aWC6aOpIDwga2l0c3VuZXVkb25cIDsKK+a/g+ikkOiJsiA8IG5vdWthc3Nob2t1XCA7CivmnZDmnKjllYYgPCB6YWltb2t1c2hvdVwgOwor55m95YyW5YCL5L2TIDwgaGFrdWtha290YWlcIDsKK+mbu+ipseWbnue3miA8IGRlbndha2Fpc2VuXCA7CivkuI3mraPlkqzlkIggPCBmdXNlaWtvdWdvdVwgOwor5pGp6Ki25LiN5oCd6K2wIDwgbWFrYWZ1c2hpZ2lcIDsKK+WOn+iJsueJiCA8IGdlbnNob2t1YmFuXCA7Civnvo7lrrnkvZPmk40gPCBiaXlvdXRhaXNvdVwgOwor5Y2U6K2w6Zui5amaIDwga3lvdWdpcmlrb25cIDsKK+iUpuiYvyA8IHRzdXRha2F6dXJhXCA7CivmuKnmmpbliY3nt5ogPCBvbmRhbnplbnNlblwgOwor5Y2Y6aCF5byPIDwgdGFua291c2hpa2lcIDsKK+aWsOimj+S/neeuoSA8IHNoaW5raWhva2FuXCA7CivlnJ/msJfoibIgPCB0c3VjaGlrZWlyb1wgOwor5Y+W57egIDwgdG9yaXNoaW1hcmlcIDsKK+S7mOWxnuevgCA8IGZ1em9rdXNldHN1XCA7CivkuIDosqvnlarlj7cgPCBpa2thbmJhbmdvdVwgOwor54++6KGM5rOV6KaPIDwgZ2Vua291aG91a2lcIDsKK+S4gOeVqum2jyA8IGljaGliYW5kb3JpXCA7CivntIvnq6DlraYgPCBtb25zaG91Z2FrdVwgOwor55yf5Y+q5LitIDwgbWF0dGFkYW5ha2FcIDsKK+elluWbveW+qeW4sCA8IHNva29rdWZ1a2tpXCA7CivlkKvmsLTngq3ntKAgPCBnYW5zdWl0YW5zb1wgOwor5Yq05YON5pmC6ZaTIDwgcm91ZG91amlrYW5cIDsKK+WHuuW4reiAhSA8IHNodXNzZWtpc2hhXCA7Civngrrmm7/nm7jloLQgPCBrYXdhc2Vzb3ViYVwgOwor5LiW55WM5LiA5ZGoIDwgc2VrYWlpc3NodXVcIDsKK+WMu+eZguazleS6uiA8IGlyeW91aG91amluXCA7CivploDliY3nlLogPCBtb256ZW5tYWNoaVwgOwor5rC36KKLIDwga29vcmlidWt1cm9cIDsKK+m8k+iInua/gOWKsSA8IGtvYnVnZWtpcmVpXCA7CivmlZnoqJPnmoQgPCBreW91a3VudGVraVwgOwor6LKv6YeR5bGAIDwgY2hva2lua3lva3VcIDsKK+WumOWDmuiHrSA8IGthbnJ5b3VzaHV1XCA7CivouYTpiYTlt6UgPCB0ZWl0ZXRzdWtvdVwgOwor57KS5bqm5YiG5biDIDwgcnl1dWRvYnVucHVcIDsKK+elnue1jOWtpiA8IHNoaW5rZWlnYWt1XCA7CivmipXkuIvos4fmnKwgPCB0b3VrYXNoaWhvblwgOwor55So5oSP5ZGo5YiwIDwgeW91aXNodXV0b3VcIDsKK+ihqOeOhOmWoiA8IG9tb3RlZ2Vua2FuXCA7CivlhoXnh4PmqZ/plqIgPCBuYWluZW5raWthblwgOwor5Ye65by15bqXIDwgc2h1dGNob3V0ZW5cIDsKK+aXheihjOmehCA8IHJ5b2tvdWthYmFuXCA7CivmuJvloanpo58gPCBnZW4nJ2Vuc2hva3VcIDsKK+Wbo+S9k+WuoiA8IGRhbnRhaWt5YWt1XCA7CivpmLLmsLTliqDlt6UgPCBib3VzdWlrYWtvdVwgOwor5b+D6ZyK5a2mIDwgc2hpbnJlaWdha3VcIDsKK+WAi+S6uua2iOiyuyA8IGtvamluc2hvdWhpXCA7Civku67mgKfov5HoppYgPCBrYXNlaWtpbnNoaVwgOwor5aSn5q2j55C0IDwgdGFpc2hvdWdvdG9cIDsKK+asoOWLpOeOhyA8IGtla2tpbnJpdHN1XCA7CivlrprnnYDliaQgPCB0ZWljaGFrdXphaVwgOwor5Y2X6KW/IDwgbWluYW1pbmlzaGlcIDsKK+WFpeWgtOaWmSA8IG55dXVqb3VyeW91XCA7CivpgJDoqp7oqLMgPCBjaGlrdWdveWFrdVwgOwor5oCd6ICD5YqbIDwgc2hpa291cnlva3VcIDsKK+S5s+eUqOeJmyA8IG55dXV5b3VneXV1XCA7CivmraPopprlnYogPCBzaG91Z2FrdWJvdVwgOwor57eR6Je76aGeIDwgcnlva3Vzb3VydWlcIDsKK+ebruaSg+iAhSA8IG1va3VnZWtpc2hhXCA7Civpu5Lmm5znn7MgPCBrb2t1eW91c2VraVwgOwor56m65rCX5Lyd5p+TIDwga3V1a2lkZW5zZW5cIDsKK+a6gOS4gOW5tCA8IG1hbicnaWNoaW5lblwgOwor5rKh5oiR55qEIDwgYm90c3VnYXRla2lcIDsKK+WQq+WhteeOhyA8IGdhbmppbnJpdHN1XCA7CivlubzlubTmmYLku6MgPCB5b3VuZW5qaWRhaVwgOwor6YCA6IG36ICFIDwgdGFpc2hva3VzaGFcIDsKK+iUteWxi+aVtyA8IGt1cmF5YXNoaWtpXCA7CivnpL7kvJrlvqnluLAgPCBzaGFrYWlmdWtraVwgOwor6Zu75rCX6KO95ZOBIDwgZGVua2lzZWloaW5cIDsKK+WMhemHkSA8IHRzdXRzdW1pa2luXCA7Civlho3lu7rnr4kgPCBzYWlrZW5jaGlrdVwgOwor55Sj5amm5Lq656eR5Yy7IDwgc2FuZnVqaW5rYWlcIDsKK+S4gOiyq+S9nOalrSA8IGlra2Fuc2FneW91XCA7Civmu57lnKjmnJ/plpMgPCB0YWl6YWlraWthblwgOwor54yu6Lqr55qEIDwga2Vuc2hpbnRla2lcIDsKK+eEoeW9ouiyoeeUoyA8IG11a2VpemFpc2FuXCA7CivlpqjlrrPniakgPCBib3VnYWlidXRzdVwgOwor54K555y86JasIDwgdGVuZ2FuJyd5YWt1XCA7CivlhYPpppbnm7ggPCBtb3Rvc2h1c2hvdVwgOwor54Sh5pat6Lui6LyJIDwgbXVkYW50ZW5zYWlcIDsKK+aBkOawtOeXhSA8IGt5b3VzdWlieW91XCA7CivlnYfooaHkuojnrpcgPCBraW5rb3V5b3NhblwgOwor5a+G5aOy5ZOBIDwgbWl0c3ViYWloaW5cIDsKK+efs+W3neecjCA8IGlzaGlrYXdha2VuXCA7Civku5jluK/mnaHku7YgPCBmdXRhaWpvdWtlblwgOwor5Ymv5Lya6ZW3IDwgZnVrdWthaWNob3VcIDsKK+eZuuaYjuiAhSA8IGhhdHN1bWVpc2hhXCA7Civou43kuovlt6XloLQgPCBndW5qaWtvdWpvdVwgOwor5pyJ5Yq55pWw5a2XIDwgeXV1a291c3V1amlcIDsKK+WJteS9nOeahCA8IHNvdXNha3V0ZWtpXCA7Civoh43kuIvkuLnnlLAgPCBzZWlrYXRhbmRlblwgOwor5aSn6YCG572qIDwgdGFpZ3lha3V6YWlcIDsKK+ippueUqOacn+mWkyA8IHNoaXlvdWtpa2FuXCA7CivkuIDlhYPnmoQgPCBpY2hpZ2VudGVraVwgOwor5YyW5a2m5aSJ5YyWIDwga2FnYWt1aGVua2FcIDsKK+iHquWLlei7iueojiA8IGppZG91c2hhemVpXCA7CivoqIDoqp7pgZPmlq0gPCBnb25nb2RvdWRhblwgOwor55m+6Z2i55u4IDwgaHlha3VtZW5zb3VcIDsKK+S4jeS+teeVpSA8IGZ1c2hpbnJ5YWt1XCA7Civlj6Tni5AgPCBmdXJ1Z2l0c3VuZVwgOwor5LuY5bGe54mpIDwgZnV6b2t1YnV0c3VcIDsKK+aLheS/neeJqeaoqSA8IHRhbnBvYnVra2VuXCA7Civllrbmpa3mmYLplpMgPCBlaWd5b3VqaWthblwgOwor5YuJ5by35LitIDwgYmVua3lvdWNodXVcIDsKK+WGmeecn+W4syA8IHNoYXNoaW5jaG91XCA7CivkuIDnm67mlaMgPCBpY2hpbW9rdXNhblwgOwor6aKo5Yqb6KiIIDwgZnV1cnlva3VrZWlcIDsKK+a0u+eUqOW9oiA8IGthdHN1eW91a2VpXCA7Civoh6rli5XmiYkgPCBqaWRvdXRvYmlyYVwgOwor5oSb5aa75byB5b2TIDwgYWlzYWliZW50b3VcIDsKK+S8muekvueriyA8IGthaXNoYXJpdHN1XCA7Civnvo7nmoTlq4zmgqogPCBiaXRla2lrZW4nJ29cIDsKK+imi+ebruW9oiA8IG1pbWVrYXRhY2hpXCA7CivkuInljYPkuJbnlYwgPCBzYW56ZW5zZWthaVwgOwor6ZGR5Yil5omAIDwga2FuYmV0c3VzaG9cIDsKK+WkmumHjeaUvumAgSA8IHRhanV1aG91c291XCA7Civkuozph43lpJbkuqQgPCBuaWp1dWdhaWtvdVwgOwor5Luu5aWR57SEIDwga2FyaWtlaXlha3VcIDsKK+aguOaLoeaVoyA8IGtha3VrYWt1c2FuXCA7Civlkajovrrlm70gPCBzaHV1aGVua29rdVwgOwor5LqI5YKZ5bel5L2cIDwgeW9iaWtvdXNha3VcIDsKK+efreazouaUvumAgSA8IHRhbnBhaG91c291XCA7CivpoqjlhYnntbbkvbMgPCBmdXVrb3V6ZWtrYVwgOwor5b+F54S25oCnIDwgaGl0c3V6ZW5zZWlcIDsKK+S4u+aDheS4u+e+qSA8IHNodWpvdXNodWdpXCA7CivkuKHmm7/llYYgPCByeW91Z2Flc2hvdVwgOwor6KGM5YuV5Li7576pIDwga291ZG91c2h1Z2lcIDsKK+iHquWIhuiHqui6qyA8IGppYnVuamlzaGluXCA7CivohLHoibLliaQgPCBkYXNzaG9rdXphaVwgOwor5aSc5YWJ5aGX5paZIDwgeWFrb3V0b3J5b3VcIDsKK+WPs+W/g+WupCA8IHVzaGluc2hpdHN1XCA7CivlipvpnakgPCBjaGlrYXJhZ2F3YVwgOwor5Lit5aSu5Y+jIDwgY2h1dW91Z3VjaGlcIDsKK+ecn+iPjOeXhyA8IHNoaW5raW5zaG91XCA7CivlnKflipvms6IgPCBhdHN1cnlva3VoYVwgOwor5biw54Sh5Luu6KqsIDwga2ltdWthc2V0c3VcIDsKK+W4guWgtOWOn+eQhiA8IHNoaWpvdWdlbnJpXCA7Civlhajlm73nmoQgPCB6ZW5rb2t1dGVraVwgOwor5Lqs5ruL5Zyw5pa5IDwga2VpamljaGlob3VcIDsKK+e4hOair+WtkCA8IG5hd2FiYXNoaWdvXCA7CivlpKfnvqnlkI3liIYgPCB0YWlnaW1laWJ1blwgOwor5ZG85ZC46YGL5YuVIDwga29reXV1dW5kb3VcIDsKK+ieuuaXi+majuautSA8IHJhc2Vua2FpZGFuXCA7Civoi7Hoqp7mlZnogrIgPCBlaWdva3lvdWlrdVwgOwor6LGh54mZ5rW35bK4IDwgem91Z2VrYWlnYW5cIDsKK+aIkeeJqemhlCA8IHdhZ2Ftb25vZ2FvXCA7Civml6XmnKzohLPngo4gPCBuaWhvbicnbm91ZW5cIDsKK+mjn+Wggui7iiA8IHNob2t1ZG91c2hhXCA7CivpgYvllrblp5Tlk6HkvJogPCB1bicnZWlpaW5rYWlcIDsKK+WWhOefpeitmCA8IHplbmNoaXNoaWtpXCA7CivlkozprYLmvKLmiY0gPCB3YWtvbmthbnNhaVwgOwor57WM5Za25YaN5bu6IDwga2VpZWlzYWlrZW5cIDsKK+iEs+S4i+WeguS9kyA8IG5vdWthc3VpdGFpXCA7CivkuIDlhobmnK0gPCBpY2hpZW5zYXRzdVwgOwor6KaW6IG06KaaIDwgc2hpY2hvdWtha3VcIDsKK+WLn+mHkemBi+WLlSA8IGJva2luJyd1bmRvdVwgOwor6ICQ54ax6Yu8IDwgdGFpbmV0c3Vrb3VcIDsKK+WIu+iLpuWLieWKsSA8IGtva2t1YmVucmVpXCA7Civml6LlqZrnlLfmgKcgPCBraWtvbmRhbnNlaVwgOwor6Z2p5ZG955qEIDwga2FrdW1laXRla2lcIDsKK+ayu+awtOW3peS6iyA8IGNoaXN1aWtvdWppXCA7CivlsI/kvJHmraIgPCBzaG91a3l1dXNoaVwgOwor5pel5pys5Lq66KuWIDwgbmlob25qaW5yb25cIDsKK+WlveWPlue1hCA8IGtvdXRvcmlrdW1pXCA7CivljZrlpZXlrr8gPCBiYWt1Y2hpeWFkb1wgOwor6LuN5LqL5YWs5YK1IDwgZ3Vuamlrb3VzYWlcIDsKK+WNgeS6uuWNgeiJsiA8IGp1dW5pbnRvaXJvXCA7CivnhKHphY3kvJrnpL4gPCBtdWhhaWdhaXNoYVwgOwor6ISz6LKn6KGAIDwgbm91aGlua2V0c3VcIDsKK+WutuaXj+aJi+W9kyA8IGthem9rdXRlYXRlXCA7CivmtJfnpLzlvI8gPCBzZW5yZWlzaGlraVwgOwor55Sy6aqo5paHIDwga291a290c3VidW5cIDsKK+aXpemKgOWIuCA8IG5pY2hpZ2lua2VuXCA7CivnvoXph53nm6TluqcgPCByYXNoaW5iYW56YVwgOwor56aP56WJ5qmf5ZmoIDwgZnVrdXNoaWtpa2lcIDsKK+iyp+awkeeqnyA8IGhpbm1pbmt1dHN1XCA7CivlpYnnjK7niakgPCBob3VrZW5idXRzdVwgOwor5a6f5qWt5a62IDwgaml0c3VneW91a2FcIDsKK+iDuOeul+eUqCA8IG11bmV6YW4nJ3lvdVwgOwor5pqr5a6a5LqI566XIDwgemFudGVpeW9zYW5cIDsKK+iHquiyu+WHuueJiCA8IGppaGlzaHVwcGFuXCA7CivlhqzmnKjnq4sgPCBmdXl1a29kYWNoaVwgOwor5bi455So5ryi5a2XIDwgam91eW91a2FuamlcIDsKK+e1kOe0ruezuCA8IGtlc3NhdHN1c2hpXCA7Civnjovkvq/osrTml48gPCBvdWtvdWtpem9rdVwgOwor6YCG5a6j5LydIDwgZ3lha3VzZW5kZW5cIDsKK+S6uuS9k+aooeWeiyA8IGppbnRhaW1va2VpXCA7Civprq7ntIXoibIgPCBzZW5rb3VzaG9rdVwgOwor5YWl5Zu956iOIDwgbnl1dWtva3V6ZWlcIDsKK+aXpeilv+i+nuWFuCA8IG5pc3NlaWppdGVuXCA7Civnp4HlhIAgPCB3YXRha3VzaGlnaVwgOwor5oSf5oOF56e75YWlIDwga2Fuam91aW55dXVcIDsKK+aLoeWkp+mPoSA8IGtha3VkYWlreW91XCA7CivlnLDmlrnnq7bppqwgPCBjaGlob3VrZWliYVwgOwor6YGT5qW96ICFIDwgZG91cmFrdW1vbm9cIDsKK+Wls+aIv+W9uSA8IG55b3Vib3V5YWt1XCA7CivmnaHntITlm70gPCBqb3V5YWt1a29rdVwgOwor5Yqb6LazIDwgY2hpa2FyYWFzaGlcIDsKK+e1jOa4iOWKueaenCA8IGtlaXphaWtvdWthXCA7Civku6Pmm7/niakgPCBkYWl0YWlidXRzdVwgOwor5re35Yed5ZyfIDwga29ua3VyaXpldG9cIDsKK+awkeS6i+iotOionyA8IG1pbmppc29zaG91XCA7CivljJblraboqJjlj7cgPCBrYWdha3VraWdvdVwgOwor56eB5L6bIDwgd2F0YXNoaWRvbW9cIDsKK+WPguWKoOaEj+itmCA8IHNhbmthaXNoaWtpXCA7CivmiKbmmYLkvZPliLYgPCBzZW5qaXRhaXNlaVwgOwor6Ieq55Sx5biC5aC0IDwgaml5dXVzaGlqb3VcIDsKK+WGt+aIv+WujOWCmSA8IHJlaWJvdWthbmJpXCA7Civoh6rlt7Hlj4zlr74gPCBqaWtvc291dHN1aVwgOwor5raI5q+S5YmkIDwgc2hvdWRva3V6YWlcIDsKK+WKm+iyoCA8IGNoaWthcmFtYWtlXCA7Civngavnh7XmjpvluIMgPCBrb3RhdHN1Z2FrZVwgOwor5LiH6IO96JasIDwgbWFuJydub3V5YWt1XCA7Civkv6HmhpHmgKcgPCBzaGlucHlvdXNlaVwgOwor5biM5pyb5L6h5qC8IDwga2lib3VrYWtha3VcIDsKK+WIl+S8neS9kyA8IHJldHN1ZGVudGFpXCA7Civlj6Plj6/nrJEgPCBrdWNoaW9rYXNoaVwgOwor6YG45a++5pys6YOoIDwgc2VudGFpaG9uYnVcIDsKK+WFiOmgreaJk+iAhSA8IHNlbnRvdWRhc2hhXCA7Civlrp/nlJ/mtLsgPCBqaXNzZWlrYXRzdVwgOwor5ZCN5YmN56m66ZaTIDwgbmFtYWVrdXVrYW5cIDsKK+eZvuWnk+WutiA8IGh5YWt1c2hvdXlhXCA7CivmtYXojYnmtbfoi5QgPCBhc2FrdXNhbm9yaVwgOwor5LqL5qWt5pys6YOoIDwgamlneW91aG9uYnVcIDsKK+eQhuirlumXmOS6iSA8IHJpcm9udG91c291XCA7Civkurrlj6PlopfliqAgPCBqaW5rb3V6b3VrYVwgOwor5aSW5Lqk6L6e5LukIDwgZ2Fpa291amlyZWlcIDsKK+WQjOmfs+eVsOe+qeiqniA8IGRvdW9uJydpZ2lnb1wgOwor5rCP5aeT5Yi25bqmIDwgc2hpc2Vpc2VpZG9cIDsKK+S4gOWxgOmDqCA8IGljaGlreW9rdWJ1XCA7CivnuITmlofmmYLku6MgPCBqb3Vtb25qaWRhaVwgOwor6ZaT5LiA6auqIDwga2FuJydpcHBhdHN1XCA7CivkuJbnlYzlpKfmiKYgPCBzZWthaXRhaXNlblwgOwor5qmf5YuV5ryU57+SIDwga2lkb3VlbnNodXVcIDsKK+iHquitpuWbo+WToSA8IGppa2VpZGFuJydpblwgOwor6Zu75rCX5oq15oqXIDwgZGVua2l0ZWlrb3VcIDsKK+mOp+S4gOWFtyA8IHlvcm9paWNoaWd1XCA7CivnlLrkurrniakgPCBjaG91bmlubW9ub1wgOwor6YCa6Kiz5a6YIDwgdHN1dXlha3VrYW5cIDsKK+W/heimgeaCqiA8IGhpdHN1eW91YWt1XCA7CivpiYTpgZPntrIgPCB0ZXRzdWRvdW1vdVwgOwor5Y6f55Sj54mpIDwgZ2Vuc2FuYnV0c3VcIDsKK+WZqOalveabsiA8IGtpZ2FrdWt5b2t1XCA7Civlv4XopoHmgKcgPCBoaXRzdXlvdXNlaVwgOwor6Ziy6Z+z6KOF572uIDwgYm91b25zb3VjaGlcIDsKK+WNiumdouitmCA8IGhhbm1lbnNoaWtpXCA7CivmsLTmvoQgPCBtaXp1c3VtYXNoaVwgOwor5Y+W5omxIDwgdG9yaWF0c3VrYWlcIDsKK+WkouW/g+WcsCA8IHl1bWVnb2tvY2hpXCA7CivosqDlgrXlkIjoqIggPCBmdXNhaWdvdWtlaVwgOwor5LuK6YCx5LitIDwga29uc2h1dWNodXVcIDsKK+ipseS4i+aJiyA8IGhhbmFzaGliZXRhXCA7CivpgYrou43oqJjogIUgPCB5dXVndW5raXNoYVwgOwor5L6h5YCk5L2T57O7IDwga2FjaGl0YWlrZWlcIDsKK+S6jOmHjee1kOWpmiA8IG5panV1a2Vra29uXCA7CivkuIDplbfkuIDnn60gPCBpdGNob3VpdHRhblwgOwor6K236YCB6Ii55ZujIDwgZ29zb3VzZW5kYW5cIDsKK+eKr+ihjOePvuWgtCA8IGhhbmtvdWdlbmJhXCA7CivmhI/opovluoPlkYogPCBpa2Vua291a29rdVwgOwor5bCP5LmX55qEIDwgc2hvdWpvdXRla2lcIDsKK+WWhOWboOWWhOaenCA8IHplbicnaW56ZW5rYVwgOwor56uL6ISa54K5IDwgcmlra3lha3V0ZW5cIDsKK+mJhOWFnCA8IHRldHN1a2FidXRvXCA7CivnhKHkurrlnLDluK8gPCBtdWppbmNoaXRhaVwgOwor57WM5Za26Lui5o+bIDwga2VpZWl0ZW5rYW5cIDsKK+S4jeS/oeWunyA8IGZ1c2hpbmppdHN1XCA7Civosqnlo7LmqZ/kvJogPCBoYW5iYWlraWthaVwgOwor5LqJ5aWq5oimIDwgc291ZGF0c3VzZW5cIDsKK+WVhuWtpuWjqyA8IHNob3VnYWt1c2hpXCA7CivkuIrlsYvmlbcgPCBrYW1peWFzaGlraVwgOwor6Iul5aSn5bCGIDwgd2FrYWRhaXNob3VcIDsKK+mBoOmalOaTjeS9nCA8IGVua2FrdXNvdXNhXCA7Civmk43oiLXlrqQgPCBzb3VkYXNoaXRzdVwgOwor5oiQ5Lq65byPIDwgc2Vpamluc2hpa2lcIDsKK+aFo+eUqOiqnuWPpSA8IGthbicneW91Z29rdVwgOwor5ray5L2T56m65rCXIDwgZWtpdGFpa3V1a2lcIDsKK+aWsOmdouebriA8IHNoaW5tZW5tb2t1XCA7Civms6jmlofmnI0gPCBjaHV1bW9uZnVrdVwgOwor5LiK5qOf5byPIDwgam91dG91c2hpa2lcIDsKK+i1pOmKheiJsiA8IHNoYWt1ZG91aXJvXCA7Civlh7rliIPljIXkuIEgPCBkZWJhYm91Y2hvdVwgOwor5ZCR5a2m5b+DIDwga291Z2FrdXNoaW5cIDsKK+a4h+acm+iAhSA8IGthdHN1Ym91c2hhXCA7CivlnJ/orprmnKznt5ogPCBkb3NhbmhvbnNlblwgOwor6LKh5pS/5pSv5o+0IDwgemFpc2Vpc2hpZW5cIDsKK+WuruW7t+eUu+WutiA8IGt5dXV0ZWlnYWthXCA7Civln7fpgZTlkI8gPCBzaGl0dGF0c3VyaVwgOwor5pyA5b6M5YiX6LuKIDwgc2FpZ29yZXNzaGFcIDsKK+eQhuW3peWtpumDqCA8IHJpa291Z2FrdWJ1XCA7Civkv53nrqHkvJrnpL4gPCBob2thbmdhaXNoYVwgOwor5LmX5b+D5ZywIDwgbm9yaWdva29jaGlcIDsKK+mFjeWQiOemgeW/jCA8IGhhaWdvdWtpbmtpXCA7CivlvJTnpa3mlpkgPCBjaG91c2FpcnlvdVwgOwor6YGO5Ymw5oqV6LOHIDwga2Fqb3V0b3VzaGlcIDsKK+WutumVt+WItuW6piA8IGthY2hvdXNlaWRvXCA7Civlj6/ogbTot53pm6IgPCBrYWNob3VreW9yaVwgOwor5LiL5qSc5YiGIDwgc2hpdGFrZW5idW5cIDsKK+imqumhnue4geiAhSA8IHNoaW5ydWllbmphXCA7CivplovlgqzlvI8gPCBrYWlzYWlzaGlraVwgOwor55Sw6IiO5aiYIDwgaW5ha2FtdXN1bWVcIDsKK+euseeBq+mJoiA8IGhha29oaWJhY2hpXCA7CivnhKHnkIblv4PkuK0gPCBtdXJpc2hpbmp1dVwgOwor5Ymv6aaW55u4IDwgZnVrdXNodXNob3VcIDsKK+W5tOizgOiRieabuCA8IG5lbmdhaGFnYWtpXCA7CivmlbXmhL7lv4MgPCB0ZWtpZ2Fpc2hpblwgOwor6YeI56m65rW3IDwgc2hha3VrdXVrYWlcIDsKK+mAo+mCpuS6iOeulyA8IHJlbnBvdXlvc2FuXCA7CivntYTnuZTnpaggPCBzb3NoaWtpaHlvdVwgOwor5Ye66Lqr6ICFIDwgc2h1c3NoaW5zaGFcIDsKK+WJteS+oeWtpuS8miA8IHNvdWthZ2Fra2FpXCA7Civku5Xkuovph48gPCBzaGlnb3RvcnlvdVwgOwor5Y2K5pyI5b2iIDwgaGFuZ2V0c3VrZWlcIDsKK+WIhuWtkOiqrCA8IGJ1bnNoaXNldHN1XCA7CivljYrmnIjlvIEgPCBoYW5nZXRzdWJlblwgOwor5q2j562U546HIDwgc2VpdG91cml0c3VcIDsKK+WIqeWtkOijnOe1piA8IHJpc2hpaG9reXV1XCA7CivlraPnr4DnmoQgPCBraXNldHN1dGVraVwgOwor5rC35p6VIDwga29vcmltYWt1cmFcIDsKK+awtOafsSA8IG1penViYXNoaXJhXCA7CivmoLnmnKzljp/nkIYgPCBrb25wb25nZW5yaVwgOwor5a6J5YWo5L+d6ZqcIDwgYW56ZW5ob3Nob3VcIDsKK+WOn+WtkOiqrCA8IGdlbnNoaXNldHN1XCA7CivlgaXlurfkv53pmbogPCBrZW5rb3Vob2tlblwgOwor5pqX6buS5pmC5LujIDwgYW5rb2t1amlkYWlcIDsKK+S4luS7o+S6pOS7oyA8IHNlZGFpa291dGFpXCA7CivnpZ7lmJfnpa0gPCBrYW4nJ25hbWVzYWlcIDsKK+ahp+iInuWPsCA8IGhpbm9raWJ1dGFpXCA7Civou6LpgIHpm7voqbEgPCB0ZW5zb3VkZW53YVwgOwor5a++5bGA6ICFIDwgdGFpa3lva3VzaGFcIDsKK+iyneauu+mqqCA8IGthaWdhcmFib25lXCA7CivljYPkuKHnrrEgPCBzZW5yeW91YmFrb1wgOwor5pit5ZKM5pmC5LujIDwgc2hvdXdhamlkYWlcIDsKK+e0lOWPjuWFpSA8IGp1bnNodXVueXV1XCA7CivniannkIbnmoQgPCBidXRzdXJpdGVraVwgOwor5p6X55Sj54mpIDwgcmluc2FuYnV0c3VcIDsKK+eqgeeEtuatuyA8IHRvdHN1emVuc2hpXCA7Civkvb/nlKjoqLHlj68gPCBzaGl5b3VreW9rYVwgOwor6Ki85Y+W5rOVIDwgc2hvdXRvcmlob3VcIDsKK+attOWPsueahCA8IHJla2lzaGl0ZWtpXCA7CivntYTnuZTnmoQgPCBzb3NoaWtpdGVraVwgOwor6LSI5ZGI5byPIDwgem91dGVpc2hpa2lcIDsKK+epjei8iemHjyA8IHNla2lzYWlyeW91XCA7Civoh6rnmbrnmoQgPCBqaWhhdHN1dGVraVwgOwor5bexIDwgdHN1Y2hpbm90b1wgOwor5bGhIDwgc2hpYmFzaGliYVwgOwor6KyAIDwgaGFrYXJpZ290b1wgOwor54afIDwgdHN1a3VkenVrdVwgOwor5Zi0IDwga3VjaGliYXNoaVwgOwor44CFIDwga3VyaWthZXNoaVwgOwor5Zyf55+z5rWBIDwgZG9zZWtpcnl1dVwgOwor5biC55S65p2RIDwgc2hpY2hvdXNvblwgOwor6Z+z5qW95pig55S7IDwgb25nYWt1ZWlnYVwgOwor6aOf5aGp5rC0IDwgc2hva3VlbnN1aVwgOwor5r2k5ruR5rK5IDwganVua2F0c3V5dVwgOwor5rWB5pif576kIDwgcnl1dXNlaWd1blwgOwor5aWR57SE6YeRIDwga2VpeWFrdWtpblwgOwor5rG66K2w5paHIDwga2V0c3VnaWJ1blwgOwor6JK455WZ6YWSIDwgam91cnl1dXNodVwgOwor6Yed6JGJ5qi5IDwgc2hpbicneW91anVcIDsKK+eMm+WLieW8tyA8IG1vdWJlbmt5b3VcIDsKK+Wuh+WumemBiuazsyA8IHVjaHV1eXV1ZWlcIDsKK+a3seWIu+WMliA8IHNoaW5rb2t1a2FcIDsKK+WIh+mAmiA8IGtpcmlkb29zaGlcIDsKK+aJgOW+l+mhlCA8IHRva29yb2VnYW9cIDsKK+W+oeWuouanmCA8IG9reWFrdXNhbWFcIDsKK+iUteabuOelqCA8IHpvdXNob2h5b3VcIDsKK+S6uuW3pembqiA8IGppbmtvdXl1a2lcIDsKK+WQjOiFueS7lCA8IGRvdWZ1a3VzaGlcIDsKK+WwhOWAluW/gyA8IHNoYWtvdXNoaW5cIDsKK+S/neWBpeWItuW6piA8IGhva2Vuc2VpZG9cIDsKK+a6luWCmemBi+WLlSA8IGp1bmJpdW5kb3VcIDsKK+S7o+itsOWItuW6piA8IGRhaWdpc2VpZG9cIDsKK+WNmuWjq+WPtyA8IGhha3VzaGlnb3VcIDsKK+WFpea8geiAhSA8IG55dXVneW9zaGFcIDsKK+WIpemZpOaoqSA8IGJldHN1am9rZW5cIDsKK+aIpumXmOacjSA8IHNlbnRvdWZ1a3VcIDsKK+aooeWei+WcsOWbsyA8IG1va2VpY2hpenVcIDsKK+mkium2j+alrSA8IHlvdWtlaWd5b3VcIDsKK+itsOaxuuaoqSA8IGdpa2V0c3VrZW5cIDsKK+WFpeWckuaWmSA8IG55dXVlbnJ5b3VcIDsKK+WEquWFiOeahCA8IHl1dXNlbnRla2lcIDsKK+eEoeiMtuiLpuiMtiA8IG11Y2hha3VjaGFcIDsKK+WQjOS4gOimliA8IGRvdWl0c3VzaGlcIDsKK+WPpOW+gOS7iuadpSA8IGtvb3Vrb25yYWlcIDsKK+mbo+ihjOmBkyA8IG5hbmd5b3Vkb3VcIDsKK+mBuuWkseWTgSA8IGlzaGl0c3VoaW5cIDsKK+mjn+aWh+WMliA8IHNob2t1YnVua2FcIDsKK+mvsOmrrSA8IG5hbWF6dWhpZ2VcIDsKK+awkeS4u+WbvSA8IG1pbnNodWtva3VcIDsKK+WGjeW4sOeGsSA8IHNhaWtpbmV0c3VcIDsKK+eCreWMlueJqSA8IHRhbmthYnV0c3VcIDsKK+aWreeJh+eahCA8IGRhbnBlbnRla2lcIDsKK+a6uuatu+S9kyA8IGRla2lzaGl0YWlcIDsKK+a1t+a0i+WtpiA8IGthaXlvdWdha3VcIDsKK+atr+elnue1jCA8IHNoaXNoaW5rZWlcIDsKK+WPo+WPoyA8IGt1Y2hpZ3VjaGlcIDsKK+WPjeaKl+eahCA8IGhhbmtvdXRla2lcIDsKK+mWi+WCrOWbvSA8IGthaXNhaWtva3VcIDsKK+W+oeS4oeimqiA8IGdvcnlvdXNoaW5cIDsKK+aRqeWIqeaUr+WkqSA8IG1hcmlzaGl0ZW5cIDsKK+S/ruato+a2siA8IHNodXVzZWlla2lcIDsKK+WIneipoyA8IGhhdHN1bW91ZGVcIDsKK+efs+eVsyA8IGlzaGlkYXRhbWlcIDsKK+S6uueCuua3mOaxsCA8IGppbicnaXRvdXRhXCA7CivljprnlJ/nnIEgPCBrb3VzZWlzaG91XCA7CivpgIboqqwgPCBneWFrdXNldHN1XCA7Civpq5jntJrou4ogPCBrb3VreXV1c2hhXCA7Civou5/mloflraYgPCBuYW5idW5nYWt1XCA7CivnqLzlg43mmYLplpMgPCBrYWRvdWppa2FuXCA7CivoqabkvZzlk4EgPCBzaGlzYWt1aGluXCA7CivoprPopqfmlpkgPCBrYW5yYW5yeW91XCA7CivkuI3kv6Hku7sgPCBmdXNoaW4nJ25pblwgOwor6Iy46ZuyIDwga2lub2tvZ3Vtb1wgOwor6L+R6YGTIDwgY2hpa2FtaWNoaVwgOwor5LiJ6ISa5p62IDwgc2Fua3lha3VrYVwgOwor5aSJ5oWL55qEIDwgaGVudGFpdGVraVwgOwor5Yy755mC5Yi25bqmIDwgaXJ5b3VzZWlkb1wgOwor6L+R6L+RIDwgY2hpa2FkamlrYVwgOwor5Lme6auY6KmVIDwga291a291aHlvdVwgOwor5rC05b+DIDwgbWl6dWdva29yb1wgOwor5q+b5rCI6IuUIDwgbW91c2VuZ29rZVwgOwor6Z2i572157215YCSIDwgbWVuYmFiYXRvdVwgOwor5LiJ5bC65bivIDwgc2FuamFrdW9iaVwgOwor5b+c5oCl562WIDwgb3VreXV1c2FrdVwgOwor56CC54WZIDwgc3VuYWtlbXVyaVwgOwor5Lq66YGT55qEIDwgamluZG91dGVraVwgOwor5rW36YW45ry/IDwgdW1paG9venVraVwgOwor5om/6KqN54q2IDwgc2hvdW5pbmpvdVwgOwor6ZqP562G5a62IDwgenVpaGl0c3VrYVwgOwor5qC46J6N5ZCIIDwga2FrdXl1dWdvdVwgOwor5oq96YG45Yi4IDwgY2h1dXNlbmtlblwgOwor5bed6a2aIDwga2F3YXpha2FuYVwgOwor5YWN6Kix6Ki8IDwgbWVua3lvc2hvdVwgOwor576O5a656KGTIDwgYml5b3VqdXRzdVwgOwor6KOP6LK45bGLIDwgdXJhZ2FzaGl5YVwgOwor6Ziy5q+S6Z2iIDwgYm91ZG9rdW1lblwgOwor5byB5oW26J+5IDwgYmVua2VpZ2FuaVwgOwor5Y2v5bm0IDwgdXNhZ2lkb3NoaVwgOwor5LqM57ea5byPIDwgbmlzZW5zaGlraVwgOwor5b+F6KaB5LqLIDwgaGl0c3V5b3VqaVwgOwor55m65piO5a62IDwgaGF0c3VtZWlrYVwgOwor54us6KOB6ICFIDwgZG9rdXNhaXNoYVwgOwor55y65pyb5qipIDwgY2hvdWJvdWtlblwgOwor5YaF6YCa6ICFIDwgbmFpdHN1dXNoYVwgOwor5Lit6ZW35pyfIDwgY2h1dWNob3VraVwgOwor6YG45oyZ6YGV5Y+NIDwgc2Vua3lvaWhhblwgOwor54++6LGh6KuWIDwgZ2Vuc2hvdXJvblwgOwor6a2U6KGT5birIDwgbWFqdXRzdXNoaVwgOwor5Zu95Zyf5bqBIDwga29rdWRvY2hvdVwgOwor56mN5YiG5rOVIDwgc2VraWJ1bmhvdVwgOwor5L+h5Y+354GvIDwgc2hpbmdvdXRvdVwgOwor5Y2K6Zmw6Zm9IDwgaGFuJydpbicneW91XCA7Civml6XmnKzmmYLplpMgPCBuaWhvbmppa2FuXCA7CivovrvovrsgPCB0c3VqaXRzdWppXCA7CivlubPpnaLpj6EgPCBoZWltZW5reW91XCA7CivljJfmnpUgPCBraXRhbWFrdXJhXCA7CivlroXphY3kvr8gPCB0YWt1aGFpYmluXCA7CivokI7nuK7nl4cgPCBpc2h1a3VzaG91XCA7CivlpKnnm67lsbEgPCB0ZW5tb2t1emFuXCA7CivlgY/lubPotrMgPCBoZW5wZWlzb2t1XCA7Civms5Xlrablo6sgPCBob3VnYWt1c2hpXCA7CivlpbTpmrfliLbluqYgPCBkb3JlaXNlaWRvXCA7Civmp4vpgKDkv53mjIEgPCBrb3V6b3Vob2ppXCA7Civnorrln7cgPCBrYWt1c2hpdHN1XCA7CivmsLflrqQgPCBoeW91c2hpdHN1XCA7CivnmbrnhZnnrZIgPCBoYXRzdWVudG91XCA7CivlgbTpoK3okYkgPCBzb2t1dG91eW91XCA7CivlpKnnmofmna8gPCB0ZW4nJ25vdWhhaVwgOwor57Sw6IOe5qC4IDwgc2FpYm91a2FrdVwgOwor6Ieq5YuV6LuK5YyWIDwgamlkb3VzaGFrYVwgOwor54us5pOF5aC0IDwgZG9rdXNlbmpvdVwgOwor5pel5pys5pu457SAIDwgbmlob25zaG9raVwgOwor6KO96Yu85qWtIDwgc2Vpa291Z3lvdVwgOwor5YWJ54ax6LK7IDwga291bmV0c3VoaVwgOwor5oSb6YO35b+DIDwgYWlreW91c2hpblwgOwor5rG65YilIDwga2V0c3ViZXRzdVwgOwor55Sf55Sj6auYIDwgc2Vpc2FuZGFrYVwgOwor5rW35rC05rW0IDwga2Fpc3VpeW9rdVwgOwor5Luu57mD5bivIDwga2FyaWhvdXRhaVwgOwor5Y+K56ys6ICFIDwga3l1dWRhaXNoYVwgOwor5b6M5oqAIDwgdXNoaXJvd2F6YVwgOwor5Y2N5be0IDwgbWFuamlkb21vZVwgOwor57Gz6Zm46LuNIDwgYmVpcmlrdWd1blwgOwor5b+D5a6kIDwgc2hpbnNoaXRzdVwgOwor5rOo5paH5ZOBIDwgY2h1dW1vbmhpblwgOwor5oGS5bi455qEIDwga291am91dGVraVwgOwor5Lq65b2i5birIDwgbmluZ3lvdXNoaVwgOwor5qa05pWj5by+IDwgcnl1dXNhbmRhblwgOwor55m66Zu75qmfIDwgaGF0c3VkZW5raVwgOwor5LiN56m65oiQ5bCxIDwgZnVrdXVqb3VqdVwgOwor5pen5biC6KGXIDwga3l1dXNoaWdhaVwgOwor6Kaz6Kan5bitIDwga2FucmFuc2VraVwgOwor5a6f55So5YyWIDwgaml0c3V5b3VrYVwgOwor6ICD54++5a2mIDwga291Z2VuZ2FrdVwgOwor5bmz5ZKM6YGL5YuVIDwgaGVpd2F1bmRvdVwgOwor5YWs5a6a5q2p5ZCIIDwga291dGVpYnVhaVwgOwor5aSp6KGj54Sh57irIDwgdGVuJydpbXVob3VcIDsKK+mWi+WCrOS4rSA8IGthaXNhaWNodXVcIDsKK+eQhui3r+aVtOeEtiA8IHJpcm9zZWl6ZW5cIDsKK+edgOiJsiA8IGNoYWt1c2hva3VcIDsKK+WNl+S6rOe5u+WtkCA8IG5hbmtpbmp1c3VcIDsKK+WGhumPoSA8IG1hcnVrYWdhbWlcIDsKK+eUo+alreeVjCA8IHNhbmd5b3VrYWlcIDsKK+mBo+ebtCA8IHlhcmluYW9zaGlcIDsKK+iZmueEoeS4u+e+qSA8IGt5b211c2h1Z2lcIDsKK+W6tuawkeWKhyA8IHNob21pbmdla2lcIDsKK+S4jeS7leacqyA8IGZ1c2hpbWF0c3VcIDsKK+WRhuawl+iAhSA8IHV0c3VrZW1vbm9cIDsKK+ino+WJluWtpiA8IGthaWJvdWdha3VcIDsKK+S7ruWfi+iRrCA8IGthcmltYWlzb3VcIDsKK+mHo+mBk+WFtyA8IHRzdXJpZG91Z3VcIDsKK+eUn+eUo+mhjSA8IHNlaXNhbmdha3VcIDsKK+aCsuWKh+eahCA8IGhpZ2VraXRla2lcIDsKK+edgOiEsSA8IGNoYWt1ZGF0c3VcIDsKK+WMl+awt+a0iyA8IGhvcHB5b3V5b3VcIDsKK+WNgeS6jOaciCA8IGp1dW5pZ2F0c3VcIDsKK+WQjOWtpuW5tCA8IGRvdWdha3VuZW5cIDsKK+W9l+aYnyA8IGhvdWtpYm9zaGlcIDsKK+ePvuS7o+eahCA8IGdlbmRhaXRla2lcIDsKK+WkouWIpOaWrSA8IHl1bWVoYW5kYW5cIDsKK+Wys+WPi+S8miA8IGdha3V5dXVrYWlcIDsKK+WLmOWumuWwuyA8IGthbmpvdWppcmlcIDsKK+WGhumJiyA8IG1hcnVnYW4nJ25hXCA7CivlvozlvowgPCBub2NoaW5vY2hpXCA7CivlkIjlrr/miYAgPCBnYXNzaHVrdWpvXCA7CivooLHmg5HnmoQgPCBrb3dha3V0ZWtpXCA7CivnqbrplpPou7ggPCBrdXVrYW5qaWt1XCA7CivkuK3plpPlsaQgPCBjaHV1a2Fuc291XCA7CivnibnntJrphZIgPCB0b2treXV1c2h1XCA7CivmqKnlqIHkuLvnvqkgPCBrZW4nJ2lzaHVnaVwgOwor5Y245ZWGIDwgb3Jvc2hpc2hvdVwgOwor572y5ZCN5Zu9IDwgc2hvbWVpa29rdVwgOwor6L676KSEIDwgdHN1aml0c3VtYVwgOwor5rCX54KO5LiH5LiIIDwga2llbmJhbmpvdVwgOwor5ryU5YqH55qEIDwgZW5nZWtpdGVraVwgOwor5Lqk5oim5Zu9IDwga291c2Vua29rdVwgOwor5aSW5b2i55qEIDwgZ2Fpa2VpdGVraVwgOwor5Lit6ZaT5a2QIDwgY2h1dWthbnNoaVwgOwor6Iqx6bC5IDwgaGFuYWdhdHN1b1wgOwor5pW05rWB5a2QIDwgc2Vpcnl1dXNoaVwgOwor5YSq5YWI5qCqIDwgeXV1c2Vua2FidVwgOwor55+t5YW15oClIDwgdGFucGVpa3l1dVwgOwor5byB5oW257ieIDwgYmVua2VpamltYVwgOwor54mh5Li56ZuqIDwgYm90YW4nJ3l1a2lcIDsKK+aWnOagvOaApyA8IHNoYWtha3VzZWlcIDsKK+m2tOWYtCA8IHRzdXJ1aGFzaGlcIDsKK+mrmOinkuegsiA8IGtvdWtha3Vob3VcIDsKK+attOW5tOm9oiA8IHJla2luZW5yZWlcIDsKK+eEoeWIhuWIpSA8IG11ZnVuYmV0c3VcIDsKK+WIuuaIn+aApyA8IHNoaWdla2lzZWlcIDsKK+WFiOmaoyA8IHNha2lkb25hcmlcIDsKK+mAmuihjOeojiA8IHRzdXVrb3V6ZWlcIDsKK+i2heiHqueEtiA8IGNob3VzaGl6ZW5cIDsKK+WJiuawt+apnyA8IHNha3VoeW91a2lcIDsKK+Wlkee0hOiAhSA8IGtlaXlha3VzaGFcIDsKK+WknOebl+iZqyA8IHlvdG91bXVzaGlcIDsKK+S4ieS4ieS5neW6piA8IHNhbnNhbmt1ZG9cIDsKK+WuieWFqOeOhyA8IGFuemVucml0c3VcIDsKK+WOn+WtkOeXhyA8IGdlbnNoaXNob3VcIDsKK+WOn+WtkOeXhSA8IGdlbnNoaWJ5b3VcIDsKK+ioiOeul+apn+mWkyA8IGtlaXNhbmtpbWFcIDsKK+Wto+evgOaEnyA8IGtpc2V0c3VrYW5cIDsKK+aXp+WLmOWumiA8IGt5dXVrYW5qb3VcIDsKK+S7ruiqv+WNsCA8IGthcmljaG91aW5cIDsKK+ekvOWEgOS9nOazlSA8IHJlaWdpc2Fob3VcIDsKK+a7heiMtuiLpuiMtiA8IG1lY2hha3VjaGFcIDsKK+S5l+i7iuizgyA8IGpvdXNoYWNoaW5cIDsKK+W3pui2syA8IGhpZGFyaWFzaGlcIDsKK+mYsuiZq+WJpCA8IGJvdWNodXV6YWlcIDsKK+W+l+WksSA8IHRva3VzaGl0c3VcIDsKK+aguOaIpuS6iSA8IGtha3VzZW5zb3VcIDsKK+eZuuWjsuaXpSA8IGhhdHN1YmFpYmlcIDsKK+iAs+S4i+iFuueCjiA8IGppa2FzZW4nJ2VuXCA7CivlrprotrPmlbAgPCB0ZWlzb2t1c3V1XCA7Civnn7PmsrnljbHmqZ8gPCBzZWtpeXVraWtpXCA7Civph4znpZ7mpb0gPCBzYXRva2FndXJhXCA7CivlkoTjgIUgPCB0b3RzdXRvdHN1XCA7CivolqnmkanoiosgPCBzYXRzdW1haW1vXCA7Civlp6bpgJrnvaogPCBrYW50c3V1emFpXCA7CivlsbHmnpflraYgPCBzYW5yaW5nYWt1XCA7Civlia/orbDplbcgPCBmdWt1Z2ljaG91XCA7CivliJHkuovkuovku7YgPCBrZWlqaWppa2VuXCA7CivoiKrnqbrnl4UgPCBrb3VrdXVieW91XCA7CivmvKLotorpn7MgPCBrYW4nJ2V0c3VvblwgOwor5Ye65YWl5Y+jIDwgZGVpcmlndWNoaVwgOwor5Yip55So5L6h5YCkIDwgcml5b3VrYWNoaVwgOwor6YWS5YemIDwgc2FrZWRva29yb1wgOwor5Luu57SN56iOIDwga2FyaW5vdXplaVwgOwor57eP5ZCI55qEIDwgc291Z291dGVraVwgOwor5Luy6KOB6ICFIDwgY2h1dXNhaXNoYVwgOwor5Ye65bGV6ICFIDwgc2h1dHRlbnNoYVwgOwor5rS75a2X5L2TIDwga2F0c3VqaXRhaVwgOwor6IKY6YmE56CyIDwgaGlqaWRlcHBvdVwgOwor5a++6Lmg5ZywIDwgdGFpc2VraWNoaVwgOwor5Zue57ea6LKg6I23IDwga2Fpc2VuZnVrYVwgOwor5bu75ryV5qWtIDwga2Fpc291Z3lvdVwgOwor5L2O6Zqc56KNIDwgdGVpc2hvdWdhaVwgOwor5q2z5pyIIDwgdG9zaGl0c3VraVwgOwor5q6L5L2Z6aGNIDwgemFuJyd5b2dha3VcIDsKK+aoqui7iiA8IHlva29ndXJ1bWFcIDsKK+ayu+eZguazlSA8IGNoaXJ5b3Vob3VcIDsKK+apn+aisOayuSA8IGtpa2FpYWJ1cmFcIDsKK+iHqueZuuaApyA8IGppaGF0c3VzZWlcIDsKK+S/oeWPt+aJiyA8IHNoaW5nb3VzaHVcIDsKK+mmluWwvuS4gOiyqyA8IHNodWJpaWtrYW5cIDsKK+WMu+eZguS/nemZuiA8IGlyeW91aG9rZW5cIDsKK+agg+acqOecjCA8IHRvY2hpZ2lrZW5cIDsKK+iqv+afu+elqCA8IGNob3VzYWh5b3VcIDsKK+atpuijheino+mZpCA8IGJ1c291a2Fpam9cIDsKK+e3qOW5tOWPsiA8IGhlbicnbmVuc2hpXCA7CivlnJ/nnYDmsJEgPCBkb2NoYWt1bWluXCA7CivljZPlh7ogPCB0YWt1c2h1dHN1XCA7CivpgLLlkYjmnKwgPCBzaGludGVpYm9uXCA7CivnkZ7lrp3nq6AgPCB6dWlob3VzaG91XCA7CivooajmhI/mloflrZcgPCBoeW91aW1vbmppXCA7CivokL3pgbjogIUgPCByYWt1c2Vuc2hhXCA7CivlhoXli5jlrpogPCB1Y2hpa2Fuam91XCA7CivlpYnntI3poY0gPCBob3Vub3VnYWt1XCA7CivlvI/ml6UgPCBzaGlraWppdHN1XCA7CivntLDog57lraYgPCBzYWlib3VnYWt1XCA7Civpg73luILlm73lrrYgPCB0b3NoaWtva2thXCA7Civmnpzlrp/lupcgPCBrYWppdHN1dGVuXCA7CivnhKHngrrlvpLpo58gPCBtdWl0b3Nob2t1XCA7CivmmKDnlLvpn7Pmpb0gPCBlaWdhb25nYWt1XCA7Civlrp/mmYLplpMgPCBqaXRzdWppa2FuXCA7CivlhaXmvIHmqKkgPCBueXV1Z3lva2VuXCA7CivlhaXos6ogPCBueXV1c2hpY2hpXCA7CivokZfkvZzogIUgPCBjaG9zYWt1c2hhXCA7CivnnYDnnYAgPCBjaGFrdWNoYWt1XCA7CivljZflgbQgPCBtaW5hbWlnYXdhXCA7CivohLHohILkubMgPCBkYXNzaGlueXV1XCA7CivliY3lvozlt6blj7MgPCB6ZW5nb3NheXV1XCA7Civnpa3npYDmlpkgPCBzYWlzaGlyeW91XCA7Civph47miKbnibnnp5EgPCB5YXNlbnRva2thXCA7CivkuI3nvojlpZTmlL4gPCBmdWtpaG9ucG91XCA7CivlhoXlvIHmhbYgPCB1Y2hpYmVua2VpXCA7CivlkJHkuIrlv4MgPCBrb3Vqb3VzaGluXCA7CivkuIDmiYvosqnlo7IgPCBpdHRlaGFuYmFpXCA7CivniafnvorogIUgPCBib2t1eW91c2hhXCA7Civlj4LoprPkurogPCBzYW5rYW4nJ25pblwgOwor55qu6KGjIDwga2F3YWdvcm9tb1wgOwor5Z2H5LiA5YyWIDwga2luJydpdHN1a2FcIDsKK+WFseWQjOiAhSA8IGt5b3Vkb3VzaGFcIDsKK+aYjuacneS9kyA8IG1pbmNob3V0YWlcIDsKK+WhqeiDoeakkiA8IHNoaW9rb3Nob3VcIDsKK+iAkOmch+aApyA8IHRhaXNoaW5zZWlcIDsKK+aWsOilv+iYrSA8IG55xatqxKtyYW5kb1wgOwor5Yy65Yy6IDwgbWFjaGltYWNoaVwgOwor552A55m6IDwgY2hha3VoYXRzdVwgOwor5LiA5p6a6LKdIDwgaWNoaW1haWdhaVwgOwor5Lmx5pq06ICFIDwgcmFuYm91bW9ub1wgOwor5ZCE5LiA6YOoIDwga2FrdWljaGlidVwgOwor6Zmw5pel5ZCRIDwga2FnZWhpbmF0YVwgOwor57Sr5a645q6/IDwgc2hpc2hpbmRlblwgOwor5bm96ZyK5qCqIDwgeXV1cmVpa2FidVwgOwor5omA5b6X6ICFIDwgc2hvdG9rdXNoYVwgOwor6LuN5LqL5YqbIDwgZ3VuamlyeW9rdVwgOwor5Yud6LKg5LqLIDwgc2hvdWJ1Z290b1wgOwor5b2T5bqn6aCQ6YeRIDwgdG91emF5b2tpblwgOwor6Iqx6YuPIDwgaGFuYWJhc2FtaVwgOwor57Wm5rC06LuKIDwga3l1dXN1aXNoYVwgOwor57Sw6IOe5aOBIDwgc2FpYm91aGVraVwgOwor5bqt5ryGIDwgbml3YXVydXNoaVwgOwor5qGc6Iqx54ib5ryrIDwgb3VrYXJhbm1hblwgOwor5Y+v6YCG5oCnIDwga2FneWFrdXNlaVwgOwor6Ieq55Sx6Ieq5ZyoIDwgaml5dXVqaXphaVwgOwor5Lm+54el54Sh5ZGzIDwga2Fuc291bXVtaVwgOwor5LqM6aCF5a6a55CGIDwgbmlrb3V0ZWlyaVwgOwor5oe46LOe6YeRIDwga2Vuc2hvdWtpblwgOwor56CC5bWQIDwgc3VuYWFyYXNoaVwgOwor5ZCr5Ze96JasIDwgZ2Fuc291eWFrdVwgOwor6KaL5a2m6ICFIDwga2VuZ2FrdXNoYVwgOwor5YSq5YWI5bitIDwgeXV1c2Vuc2VraVwgOwor5bCR5pWw6ICFIDwgc2hvdXN1dXNoYVwgOwor5YWx5ZCM57eaIDwga3lvdWRvdXNlblwgOwor5bm055S3IDwgdG9zaGlvdG9rb1wgOwor5Y+K56ys54K5IDwga3l1dWRhaXRlblwgOwor5rS75oCn5rGa5rOlIDwga2Fzc2Vpb2RlaVwgOwor5YiG6aGe6KGoIDwgYnVucnVpaHlvdVwgOwor6L+R55y86Y+hIDwga2luZ2Fua3lvdVwgOwor6Zai5pWw5pePIDwga2Fuc3V1em9rdVwgOwor55S65p2R5Yi2IDwgY2hvdXNvbnNlaVwgOwor5qW15oKq5Lq6IDwgZ29rdWFrdW5pblwgOwor5byV5Y+X5Lq6IDwgaGlraXVrZW5pblwgOwor57eo5bm05L2TIDwgaGVuJyduZW50YWlcIDsKK+S7o+mhmOS6uiA8IGRhaWdhbicnbmluXCA7CivmnInlipvppqwgPCB5dXVyeW9rdWJhXCA7CivmrKHmrKEgPCB0c3VnaXRzdWdpXCA7CivkuInkuInkupTkupQgPCBzYW5zYW5nb2dvXCA7CivpmaTpm6rou4ogPCBqb3NldHN1c2hhXCA7CivlpKflr6npmaIgPCBkYWlzaGluJydpblwgOwor56iO6Zai6ZW3IDwgemVpa2FuY2hvdVwgOwor5Lit6ZaT5L2TIDwgY2h1dWthbnRhaVwgOwor5ruL6aSK54mpIDwgaml5b3VidXRzdVwgOwor5Lmd5bel5aSnIDwga3l1dWtvdWRhaVwgOwor5YiA55a1IDwga2F0YW5ha2l6dVwgOwor5Yqg5rm/5ZmoIDwga2FzaGl0c3VraVwgOwor5paw6KiC54mIIDwgc2hpbnRlaWJhblwgOwor6YGV5qOaIDwgY2hpZ2FpZGFuYVwgOwor5Y2B5Lq65YqbIDwganV1bmlucmlraVwgOwor5LiL5a6/5Lq6IDwgZ2VzaHVrdW5pblwgOwor5aSn5qWt54mpIDwgb293YXphbW9ub1wgOwor55u0562GIDwgY2hva3VoaXRzdVwgOwor5YG06Z2i6KazIDwgc29rdW1lbmthblwgOwor5byQ5b+DIDwgZnV0YWdva29yb1wgOwor54++6LGh55WMIDwgZ2Vuc2hvdWthaVwgOwor6L+96Kmm6aiTIDwgdHN1aXNoaWtlblwgOwor5YWI5aSp55qEIDwgc2VudGVudGVraVwgOwor5bu656+J5a62IDwga2VuY2hpa3VrYVwgOwor5rC06YeP6KiIIDwgc3VpcnlvdWtlaVwgOwor55u056uLIDwgY2hva3VyaXRzdVwgOwor5YWc6J+5IDwga2FidXRvZ2FuaVwgOwor6Kaq6KGb6ZqKIDwgc2hpbicnZWl0YWlcIDsKK+ebsueqkyA8IG1la3VyYW1hZG9cIDsKK+WFiOWkqeeXhSA8IHNlbnRlbmJ5b3VcIDsKK+e5geauluacnyA8IGhhbnNob2t1a2lcIDsKK+iIueW5vemciiA8IGZ1bmF5dXVyZWlcIDsKK+awkeaXj+aApyA8IG1pbnpva3VzZWlcIDsKK+W+oeS6huaJvyA8IGdvcnlvdXNob3VcIDsKK+awtOibh+W6pyA8IG1penVoZWJpemFcIDsKK+aLneWklueahCA8IGhhaWdhaXRla2lcIDsKK+WIuuaIn+WJpCA8IHNoaWdla2l6YWlcIDsKK+aJgOW+l+eojiA8IHNob3Rva3V6ZWlcIDsKK+ajieWun+ayuSA8IG1lbmppdHN1eXVcIDsKK+WHuueNhCA8IHNodXRzdWdva3VcIDsKK+WHuueMnyA8IHNodXRzdXJ5b3VcIDsKK+WLpOe2muiAhSA8IGtpbnpva3VzaGFcIDsKK+Wkqeeah+WItiA8IHRlbicnbm91c2VpXCA7CivllqvnhZnou4ogPCBraXRzdWVuc2hhXCA7Civlrp/nv5LnlJ8gPCBqaXNzaHV1c2VpXCA7CivkvZPns7vnmoQgPCB0YWlrZWl0ZWtpXCA7CivpgYroiIjnqI4gPCB5dXVreW91emVpXCA7Civkv67pgZPlo6sgPCBzaHV1ZG91c2hpXCA7CivmlrDmlZnlvpIgPCBzaGlua3lvdXRvXCA7CivnoILln4MgPCBzdW5hYm9rb3JpXCA7CivljZropqfkvJogPCBoYWt1cmFua2FpXCA7CivliY3nmbvpjLIgPCB6ZW50b3Vyb2t1XCA7CivmnbHmtIvlraYgPCB0b3V5b3VnYWt1XCA7CivlpKflsIbou40gPCBkYWlzaG91Z3VuXCA7CivlnKjluqvnrqHnkIYgPCB6YWlrb2thbnJpXCA7Civljp/lrZDmoLggPCBnZW5zaGlrYWt1XCA7CivlpKflhazlm70gPCB0YWlrb3Vrb2t1XCA7CivkvJHmga/miYAgPCBreXV1c29rdWpvXCA7Civlt6bogLMgPCBoaWRhcmltaW1pXCA7Civpq5jpmpzlrrMgPCBrb3VzaG91Z2FpXCA7CivlipvluK8gPCBjaGlrYXJhb2JpXCA7CivmsYLpgZPogIUgPCBreXV1ZG91c2hhXCA7CivlpKnlrojplqMgPCB0ZW5zaHVrYWt1XCA7CivnoILlmqIgPCBzdW5hYnVrdXJvXCA7Civkub7nianlsYsgPCBrYW5idXRzdXlhXCA7CivmsLTpiYTnoLIgPCBtaXp1ZGVwcG91XCA7CivljYPkuInlsYsgPCBzZW5taXRzdXlhXCA7CivlhaXmuK/nqI4gPCBueXV1a291emVpXCA7CivpioDooYzmpa0gPCBnaW5rb3VneW91XCA7Civngavngb3kv53pmbogPCBrYXNhaWhva2VuXCA7CivkvJHms4rmiYAgPCBreXV1aGFrdWpvXCA7Civkurrlt6XnmoQgPCBqaW5rb3V0ZWtpXCA7CivnvbXoqYjpm5HoqIAgPCBiYXJpem91Z29uXCA7CivlhYnomJogPCBoaWthcmlnb2tlXCA7CivogbToppbogIUgPCBjaG91c2hpc2hhXCA7CivkuKHlm73oqp4gPCByeW91a29rdWdvXCA7CivpgZPot6/lsIHpjpYgPCBkb3Vyb2Z1dXNhXCA7CivoirHoqZ4gPCBoYW5ha290b2JhXCA7Civpq5jngKzoiJ8gPCB0YWthc2VidW5lXCA7CivntYTnuZTlkI0gPCBzb3NoaWtpbWVpXCA7CivliJ3msLcgPCBoYXRzdWdvb3JpXCA7CivlkIzmnJ/lvI8gPCBkb3VraXNoaWtpXCA7CivlpKfohbjoj4wgPCBkYWljaG91a2luXCA7CivljYrni4LkubEgPCBoYW5reW91cmFuXCA7CivotIXmsqLlk4EgPCB6ZWl0YWt1aGluXCA7CivlsI/lp5Tlk6HkvJogPCBzaG91aWlua2FpXCA7CivkuIDmnKzpgZMgPCBpcHBvbm1pY2hpXCA7CivliKnmvaTnjocgPCByaWp1bnJpdHN1XCA7Civov6vlrrPogIUgPCBoYWt1Z2Fpc2hhXCA7CivlpKfmpbXmrr8gPCBkYWlnb2t1ZGVuXCA7Civph43ph4/mhJ8gPCBqdXVyeW91a2FuXCA7Civnvo7lrabnmoQgPCBiaWdha3V0ZWtpXCA7CivlhpnnlJ/luLMgPCBzaGFzZWljaG91XCA7CivkuqTmuInlp5Tlk6EgPCBrb3VzaG91aWluXCA7Civlu4Pmo4TniakgPCBoYWlraWJ1dHN1XCA7Civpm7vno4Hnn7MgPCBkZW5qaXNoYWt1XCA7CivpgKDllrbniakgPCB6b3VlaWJ1dHN1XCA7CivmioDooZPpnaIgPCBnaWp1dHN1bWVuXCA7Civku5Xnva7ogIUgPCBzaGlva2ltb25vXCA7Civoi6boib4gPCBuaWdheW9tb2dpXCA7CivmmYLliLvooaggPCBqaWtva3VoeW91XCA7CivlkIjlkIzooYzngrogPCBnb3Vkb3Vrb3VpXCA7Civngonovrroq4foqbEgPCByb2hlbmRhbndhXCA7Civmr5Lnp5HlraYgPCBkb2t1a2FnYWt1XCA7Civnm7TooYzkvr8gPCBjaG9ra291YmluXCA7CivmiYvlhoXogbcgPCB0ZW5haXNob2t1XCA7Civml4XooYzlhYggPCByeW9rb3VzYWtpXCA7CivmoLjlvL7poK0gPCBrYWt1ZGFudG91XCA7CivpgY7ljrvliIboqZ4gPCBrYWtvYnVuc2hpXCA7Civnqbrpm4blkIggPCBrdXVzaHV1Z291XCA7Civnmr/np6QgPCBzYXJhYmFrYXJpXCA7CivnibnoqLHmlpkgPCB0b2treW9yeW91XCA7CivkuLvmg4XnmoQgPCBzaHVqb3V0ZWtpXCA7CivllrbliKnkvJrnpL4gPCBlaXJpZ2Fpc2hhXCA7Civmm7TooaPlrqQgPCBrb3Vpc2hpdHN1XCA7CivmrrrkvJAgPCBzYXRzdWJhdHN1XCA7CivkvJrluK3ohrMgPCBrYWlzZWtpemVuXCA7CivljYPkuIDlpJwgPCBzZW4nJ2ljaGl5YVwgOwor55yf55Sw57SQIDwgc2FuYWRhaGltb1wgOwor6YGT5a2m6ICFIDwgZG91Z2FrdXNoYVwgOwor5o+u55m65oCnIDwga2loYXRzdXNlaVwgOwor5rK444CFIDwgZnV0c3VmdXRzdVwgOwor5Ye66LOH6YeRIDwgc2h1c3NoaWtpblwgOwor54mn576K54qsIDwgYm9rdXlvdWtlblwgOwor5Lq65LqL5LiN55yBIDwgamluamlmdXNlaVwgOwor6JK455WZ5rC0IDwgam91cnl1dXN1aVwgOwor55Ww5oCn6Zai5L+CIDwgaXNlaWthbmtlaVwgOwor562J5Zyn57eaIDwgdG91YXRzdXNlblwgOwor5q+S5ZGz5b25IDwgZG9rdW1peWFrdVwgOwor5YWO6ISjIDwgbWl0c3VrdWNoaVwgOwor5LqL5pWF5Y6f5ZugIDwgamlrb2dlbicnaW5cIDsKK+WEquiJr+W6lyA8IHl1dXJ5b3V0ZW5cIDsKK+WGheiKuOiAhSA8IHVjaGlnZWlzaGFcIDsKK+aCqumBlOiAhSA8IHdhcnVkYXNzaGFcIDsKK+S4iemdoumPoSA8IHNhbm1lbmt5b3VcIDsKK+eLuOiVjum6piA8IHRhbnVraXNvYmFcIDsKK+ijj+abuOS6uiA8IHVyYWdha2luaW5cIDsKK+eJueWkp+WPtyA8IHRva3VkYWlnb3VcIDsKK+e1hOe5lOS9kyA8IHNvc2hpa2l0YWlcIDsKK+ePvuWun+WMliA8IGdlbmppdHN1a2FcIDsKK+WkmuebrueahCA8IHRhbW9rdXRla2lcIDsKK+WwhuadpeaApyA8IHNob3VyYWlzZWlcIDsKK+S4gOS6uuiFuSA8IGhpdG9yaWJhcmFcIDsKK+W6p+aKgCA8IHN1d2FyaXdhemFcIDsKK+eUu+S4gOWMliA8IGtha3VpdHN1a2FcIDsKK+mHjemHkeWxniA8IGp1dWtpbnpva3VcIDsKK+iJr+izqiA8IHJ5b3VzaGl0c3VcIDsKK+anjeihviA8IHlhcmlidXN1bWFcIDsKK+WutuWHuuWwkeWlsyA8IGllZGVzaG91am9cIDsKK+eri+S8muS6uiA8IHRhY2hpYWluaW5cIDsKK+WPpOWFuOS4u+e+qSA8IGtvdGVuc2h1Z2lcIDsKK+S4jeazleaKleajhCA8IGZ1aG91dG91a2lcIDsKK+mAkOaXpSA8IGNoaWt1aml0c3VcIDsKK+attOWPsuS4iiA8IHJla2lzaGlqb3VcIDsKK+ijvemJhOaJgCA8IHNlaXRldHN1am9cIDsKK+iLpee3kSA8IHdha2FtaWRvcmlcIDsKK+S4gOS6uuiAhSA8IGhpdG9yaW1vbm9cIDsKK+i7iuizgyA8IGt1cnVtYWNoaW5cIDsKK+S6jOmHjeieuuaXiyA8IG5panV1cmFzZW5cIDsKK+mBruaWreWjgSA8IHNoYWRhbnBla2lcIDsKK+eJueWjsuWgtCA8IHRva3ViYWlqb3VcIDsKK+WRiuefpeadvyA8IGtva3VjaGliYW5cIDsKK+ayluepjeacnyA8IGNodXVzZWtpa2lcIDsKK+S7ruiomOWFpSA8IGthcmlraW55dXVcIDsKK+S/rumBk+S8miA8IHNodXVkb3VrYWlcIDsKK+S9jeebuOmAn+W6piA8IGlzb3Vzb2t1ZG9cIDsKK+ahn+air+WtkCA8IHNhbmJhc2hpZ29cIDsKK+eVquWPt+acrSA8IGJhbmdvdWZ1ZGFcIDsKK+WwkeaVsOeCuSA8IHNob3VzdXV0ZW5cIDsKK+WxseeMq+W6pyA8IHlhbWFuZWtvemFcIDsKK+WvneWPsOWIuCA8IHNoaW5kYWlrZW5cIDsKK+awtOmKgOafsSA8IHN1aWdpbmNodXVcIDsKK+i1pOa1t+S6gCA8IGFrYXVtaWdhbWVcIDsKK+mqqOebuOWtpiA8IGtvc3NvdWdha3VcIDsKK+mfs+mfu+mDqOmWgCA8IG9uJydpbmJ1bW9uXCA7CivmqZ/og73kuLvnvqkgPCBraW5vdXNodWdpXCA7CivlpKfoh7zmra8gPCBkYWlreXV1c2hpXCA7CivmqZ/morDorablgpkgPCBraWthaWtlaWJpXCA7CivmsJHml4/lj7IgPCBtaW56b2t1c2hpXCA7CivkupTnqJzpg60gPCBnb3J5b3VrYWt1XCA7CivlpZHntITmm7ggPCBrZWl5YWt1c2hvXCA7CivlvbHms5XluKsgPCBrYWdlYm91c2hpXCA7Civph5HliZvnn7MgPCBrb25nb3VzZWtpXCA7CivnlZHpvKAgPCBoYXRhbmV6dW1pXCA7CivnibnoqLHluoEgPCB0b2treW9jaG91XCA7Civln7rnpI7oqabpqJMgPCBraXNvc2hpa2VuXCA7Civlrrbluq3oj5zlnJIgPCBrYXRlaXNhaWVuXCA7Civnibnlo7Llk4EgPCB0b2t1YmFpaGluXCA7CivpgZPot6/lt6XkuosgPCBkb3Vyb2tvdWppXCA7CivkuIvoq4vosqAgPCBzaGl0YXVrZW9pXCA7Civlj47nqavmnJ8gPCBzaHV1a2FrdWtpXCA7CivkupzniL7nhLbkuIEgPCBhcnV6ZW5jaGluXCA7Civlm5voi6blhavoi6YgPCBzaGlrdWhha2t1XCA7CivnnYDmiZUgPCBjaGFrdWJhcmFpXCA7CivpmbjmiKbpmoogPCByaWt1c2VudGFpXCA7CivntabmsLTnrqEgPCBreXV1c3Vpa2FuXCA7Civlp5TntLDpnaLoq4cgPCBpc2FpbWVuZGFuXCA7CivnpZ7np5jnmoQgPCBzaGlucGl0ZWtpXCA7Civph43ph4/lmbggPCBqdXVyeW91dG9uXCA7Civlr77moKHoqablkIggPCB0YWlrb3VqaWFpXCA7Civlj47nqavmmYIgPCBzaHV1a2FrdWppXCA7Civpq5jlnKfnuK4gPCBrb3Vhc3NodWt1XCA7CivokZfkvZzmqKkgPCBjaG9zYWt1a2VuXCA7CivkurrmsJfkvZzlrrYgPCBuaW5raXNha2thXCA7Civku6Pln7fooYwgPCBkYWlzaGlra291XCA7CivpmZDlrprnmoQgPCBnZW50ZWl0ZWtpXCA7Civpq5jlnKfnt5ogPCBrb3VhdHN1c2VuXCA7Civku67mjqHnlKggPCBrYXJpc2FpeW91XCA7CivmmpblhqznlbDlpIkgPCBkYW50b3VpaGVuXCA7Civlh7rmkoMgPCBzaHV0c3VnZWtpXCA7CivmlLnpnanogIUgPCBrYWlrYWt1c2hhXCA7CivlnLDkuIvpiYQgPCBjaGlrYXRldHN1XCA7CivlsIrnjovlhZogPCBzb24nJ25vdXRvdVwgOwor5Zyf5L+16ZqbIDwgZG9oeW91Z2l3YVwgOwor5aSn5bGx54yrIDwgb295YW1hbmVrb1wgOwor6Iiq56m65a2mIDwga291a3V1Z2FrdVwgOwor5Y6f5p2Q5paZIDwgZ2VuemFpcnlvdVwgOwor5Ye655Sj5pWwIDwgc2h1c3NhbnN1dVwgOwor5qyE5Y+C54WnIDwgcmFuc2Fuc2hvdVwgOwor5Ye655Sf5pWwIDwgc2h1c3NlaXN1dVwgOwor5a6I5YKZ546HIDwgc2h1YmlyaXRzdVwgOwor5paH6Iq45a2mIDwgYnVuZ2VpZ2FrdVwgOwor5aWz5oCn5LiA6IisIDwgam9zZWlpcHBhblwgOwor57SF5Yag6bOlIDwga291a2FuY2hvdVwgOwor5Yid5aC05omAIDwgaGF0c3ViYXNob1wgOwor5Lmz54q25rayIDwgbnl1dWpvdWVraVwgOwor5Y2Y5Z2Q5byPIDwgdGFuemFzaGlraVwgOwor5Zyo55WZ5rCRIDwgemFpcnl1dW1pblwgOwor576O6aGU6KGTIDwgYmlnYW5qdXRzdVwgOwor54Wu5rK45ZmoIDwgc2hhZnV0c3VraVwgOwor5YSq6Imv5ZOBIDwgeXV1cnlvdWhpblwgOwor5oCq542j5pig55S7IDwga2FpanV1ZWlnYVwgOwor5aSa56iu5aSa5qeYIDwgdGFzaHV0YXlvdVwgOwor5bOg6YGTIDwgdG91Z2VtaWNoaVwgOwor5LqM6YOo5pWZ5o6IIDwgbmlidWt5b3VqdVwgOwor5oim6KGT5a62IDwgc2VuanV0c3VrYVwgOwor6YCf5bqm6YGV5Y+NIDwgc29rdWRvaWhhblwgOwor5LuV5LqL5birIDwgc2hpZ290b3NoaVwgOwor5bm05by3IDwgdG9zaGlkenV5b1wgOwor5qiq5pat5q2p6YGTIDwgb3VkYW5ob2RvdVwgOwor54Sh55Sf54mpIDwgbXVzZWlidXRzdVwgOwor6ZuR5paH5a62IDwgemF0c3VidW5rYVwgOwor5ZCM6Kq/6ICFIDwgZG91Y2hvdXNoYVwgOwor5LqI57SE5bitIDwgeW95YWt1c2VraVwgOwor6YeR55+z5paHIDwga2luc2VraWJ1blwgOwor57e057+S6Ii5IDwgcmVuc2h1dXNlblwgOwor6IiX6KOF6YGT6LevIDwgaG9zb3Vkb3Vyb1wgOwor5ris5rex5qmfIDwgc29rdXNoaW5raVwgOwor6Im26Im2IDwgdHN1eWF0c3V5YVwgOwor55m66KaL5paZIDwgaGFra2VucnlvdVwgOwor6KGS5a2m6ICFIDwgZ2VuZ2FrdXNoYVwgOwor5byV5Ye654mpIDwgaGlraWRlbW9ub1wgOwor6ZaL5p625byPIDwga2Fpa2FzaGlraVwgOwor5YyF5ZCr55qEIDwgaG91Z2FudGVraVwgOwor5ZCI5aWP6Kq/IDwgZ2Fzc291Y2hvdVwgOwor55Sw6bWRIDwgaG90b3RvZ2lzdVwgOwor5YWx5ZKM5Zu9IDwga3lvdXdha29rdVwgOwor5a+p5Yik5ZOhIDwgc2hpbnBhbicnaW5cIDsKK+eEoee3muaKgOW4qyA8IG11c2VuZ2lzaGlcIDsKK+a4heacneS9kyA8IHNlaWNob3V0YWlcIDsKK+mjm+mzpeaZguS7oyA8IGFzdWthamlkYWlcIDsKK+ihqOaXpeacrCA8IG9tb3Rlbmlob25cIDsKK+ePvuS7o+WKhyA8IGdlbmRhaWdla2lcIDsKK+WxsemvqCA8IHlhbWFrdWppcmFcIDsKK+WNs+WKueiWrCA8IHNva2tvdXlha3VcIDsKK+aXpemBi+WLlSA8IG5pY2hpdW5kb3VcIDsKK+iNieaelSA8IGt1c2FtYWt1cmFcIDsKK+iBt+majuWItiA8IHNob2trYWlzZWlcIDsKK+WJjei7iui7uCA8IHplbnNoYWppa3VcIDsKK+Wbnui3r+WfuuadvyA8IGthaXJva2liYW5cIDsKK+S4iuaYh+e3miA8IGpvdXNob3VzZW5cIDsKK+apn+WvhuaApyA8IGtpbWl0c3VzZWlcIDsKK+aYjue0sOihqCA8IG1laXNhaWh5b3VcIDsKK+W9ouaIkOWkluenkSA8IGtlaXNlaWdla2FcIDsKK+S/rui+nuWtpiA8IHNodXVqaWdha3VcIDsKK+WQjeiqieiBtyA8IG1laXlvc2hva3VcIDsKK+Wuh+WumeWFteWZqCA8IHVjaHV1aGVpa2lcIDsKK+Wbm+WkqeeOiyA8IHNoaXRlbicnbm91XCA7CivnlbDluLjmsJfosaEgPCBpam91a2lzaG91XCA7Civkurrnm7jlraYgPCBuaW5zb3VnYWt1XCA7CivnnYDlrp8gPCBjaGFrdWppdHN1XCA7Civmjojmpa3mlpkgPCBqdWd5b3VyeW91XCA7CivpiZvkuK3mr5IgPCBlbmNodXVkb2t1XCA7CivnhKHmqZ/ljJblraYgPCBtdWtpa2FnYWt1XCA7Civoh6rnlLHkuLvnvqkgPCBqaXl1dXNodWdpXCA7CivmsrvnmYLku6MgPCBjaGlyeW91ZGFpXCA7CivlgrfolqwgPCBraXp1Z3VzdXJpXCA7CivkvY3oqJjov73otIggPCBpa2l0c3Vpc291XCA7CivluK/pu4ToibIgPCB0YWlvdXNob2t1XCA7CivojLbmn7EgPCBjaGFiYXNoaXJhXCA7Civnm7TmjqUgPCBjaG9rdXNldHN1XCA7CivlupXlnJ8gPCBzb2tvdHN1Y2hpXCA7Civlrp/lhpnmmKDnlLsgPCBqaXNzaGFlaWdhXCA7Civotbflt6XlvI8gPCBraWtvdXNoaWtpXCA7Civoh6rnlLHmmYLplpMgPCBqaXl1dWppa2FuXCA7CivnlbPph50gPCB0YXRhbWloYXJpXCA7CivnmbrnhrEgPCBoYXRzdW5ldHN1XCA7CivliIflrp8gPCBzZXRzdWppdHN1XCA7Civlj5blvpfogIUgPCBzaHV0b2t1c2hhXCA7CivlvqHnpLzlpYnlhawgPCBvcmVpYm91a291XCA7CivlsbHpoqogPCB5YW1hb3Jvc2hpXCA7CivmgqrlubPnrYkgPCBha3VieW91ZG91XCA7CivlhYnniakgPCBoaWthcmltb25vXCA7CivliZTlh7ogPCB0ZWtpc2h1dHN1XCA7CivnlJ/prZogPCBuYW1hemFrYW5hXCA7CivmnLHlrZDlraYgPCBzaHVzaGlnYWt1XCA7Civou73ph5HlsZ4gPCBrZWlraW56b2t1XCA7CivlgaXohJrlrrYgPCBrZW5reWFrdWthXCA7CivlhYjopprogIUgPCBzZW5rYWt1c2hhXCA7CivkuI3mlbTohIggPCBmdXNlaW15YWt1XCA7Civku7LplpPlhoUgPCBuYWthbWF1Y2hpXCA7CivlsIbmnaXlg48gPCBzaG91cmFpem91XCA7CivkvY7mlZnkvJogPCB0ZWlreW91a2FpXCA7CivmgKfooZ3li5UgPCBzZWlzaG91ZG91XCA7CivlnJLoirjnlKjlhbcgPCBlbmdlaXlvdWd1XCA7CivntJnoip3lsYUgPCBrYW1pc2hpYmFpXCA7CivlgY/ovrogPCBrYXRhaG9yb3JpXCA7CivkvZzmiJDogIUgPCBzYWt1c2Vpc2hhXCA7Civlm57mmKXliaQgPCBrYWlzaHVuemFpXCA7Civmtojosrvph48gPCBzaG91aGlyeW91XCA7CivkuKboo73lk4EgPCBuYW1pc2VpaGluXCA7CivoirHnlZEgPCBoYW5hYmF0YWtlXCA7CivnoLTojLbnm67ojLYgPCBoYWNoYW1lY2hhXCA7CivlsILmnInmqKkgPCBzZW4nJ3l1dWtlblwgOwor5LmX6aas6Z20IDwgam91YmFndXRzdVwgOwor5YCZ6ZaTIDwgc291cm91YWlkYVwgOwor5LiN56mP5paH5pu4IDwgZnVvbmJ1bnNob1wgOwor5Ye66LOH6ICFIDwgc2h1c3NoaXNoYVwgOwor5YyW55+z5a2mIDwga2FzZWtpZ2FrdVwgOwor5ryi5a2X5paH5YyWIDwga2FuamlidW5rYVwgOwor6IG06Ki65ZmoIDwgY2hvdXNoaW5raVwgOwor6YCy5Ye6IDwgc2hpbnNodXRzdVwgOwor54yp54yp6KCFIDwgc2hvdWpvdWJhZVwgOwor5Lmx5pWw6KGoIDwgcmFuc3V1aHlvdVwgOwor5LqI5YKZ6Kmm6aiTIDwgeW9iaXNoaWtlblwgOwor5Yq05YuZ566h55CGIDwgcm91bXVrYW5yaVwgOwor5bqX5Y24IDwgdGFuYW9yb3NoaVwgOwor5Z+L56uL5ZywIDwgdW1ldGF0ZWNoaVwgOwor5YWx5ZCM5oCnIDwga3lvdWRvdXNlaVwgOwor54af57e06ICFIDwganVrdXJlbnNoYVwgOwor5p2x5YyX5p2xIDwgdG91aG9rdXRvdVwgOwor5bmz5ZKM5Lya6K2wIDwgaGVpd2FrYWlnaVwgOwor55Wl6L+wIDwgcnlha3VqdXRzdVwgOwor55Sf5L2T6IacIDwgc2VpdGFpbWFrdVwgOwor5Lu75YuZ6YOo6ZqKIDwgbmlubXVidXRhaVwgOwor5rCR6KGG6aeFIDwgbWluc2h1dWVraVwgOwor5a6H5a6Z6aOfIDwgdWNodXVzaG9rdVwgOwor5bi45bi4IDwgdHN1bmVkenVuZVwgOwor5pel5YWJ5rW0IDwgbmlra291eW9rdVwgOwor5Luj5pWw5a2mIDwgZGFpc3V1Z2FrdVwgOwor5bCP6ZaT54mp5bGLIDwga29tYW1vbm95YVwgOwor6IO95b256ICFIDwgbm91eWFrdXNoYVwgOwor5rKW56mN5ZyfIDwgY2h1dXNla2lkb1wgOwor5byV5Yqb5ZyPIDwgaW5yeW9rdWtlblwgOwor5Yil5Y+jIDwgYmV0c3VrdWNoaVwgOwor5Lit5oqY5bi9IDwgbmFrYW9yZWJvdVwgOwor6Z2e5rS75YuVIDwgaGlrYXRzdWRvdVwgOwor57im5qiq54Sh5bC9IDwganV1b3VtdWppblwgOwor5YWr5qmLIDwgeWF0c3VoYXNoaVwgOwor5Zu95a625Li7576pIDwga29ra2FzaHVnaVwgOwor6YGO5Ymw5oqV5LiOIDwga2Fqb3V0b3V5b1wgOwor6KuW55CG5Zue6LevIDwgcm9ucmlrYWlyb1wgOwor5pyJ5Yqf56ugIDwgeXV1a291c2hvdVwgOwor5oqV56Wo6ICFIDwgdG91aHlvdXNoYVwgOwor5pS75pKD6ZqKIDwga291Z2VraXRhaVwgOwor5aCx5ZGK6ICFIDwgaG91a29rdXNoYVwgOwor55m66KGo6ICFIDwgaGFwcHlvdXNoYVwgOwor5oOj566h6aCYIDwgc291a2FucnlvdVwgOwor6Ieq5aOK5L2c55SoIDwgamlrYWlzYXlvdVwgOwor6YG45oqe6IKiIDwgc2VudGFrdXNoaVwgOwor5oqA6KGT6ICFIDwgZ2lqdXRzdXNoYVwgOwor6YCy5q2p55qEIDwgc2hpbnBvdGVraVwgOwor5Z+L6JS16YePIDwgbWFpem91cnlvdVwgOwor5LuV5LqL5Y+wIDwgc2hpZ290b2RhaVwgOwor5oCn5oiQ54afIDwgc2Vpc2VpanVrdVwgOwor5rC45bm06ZaTIDwgbmFnYW5lbmthblwgOwor6IOM5pWZ6ICFIDwgaGFpa3lvdXNoYVwgOwor6L6w5bm0IDwgdGF0c3Vkb3NoaVwgOwor5omL5bel5qWtIDwgc2h1a291Z3lvdVwgOwor5rqW5YKZ5pyf6ZaTIDwganVuYmlraWthblwgOwor5Yil5YilIDwgYmV0c3ViZXRzdVwgOwor5bC76aSgIDwgc2hpcmltb2NoaVwgOwor55Sz6KuL6ICFIDwgc2hpbnNlaXNoYVwgOwor5ryU5Ye65a62IDwgZW5zaHV0c3VrYVwgOwor5LiA5a6J5b+DIDwgaGl0b2Fuc2hpblwgOwor5aSp5LiL54Sh5Y+MIDwgdGVua2FtdXNvdVwgOwor6KGM5qW95ZywIDwga291cmFrdWNoaVwgOwor6aOf566h5rOVIDwgc2hva2thbmhvdVwgOwor6Kaz5ris6Ii5IDwga2Fuc29rdXNlblwgOwor56u25ZCI6ICFIDwga3lvdWdvdXNoYVwgOwor5YGl6ISz5YmkIDwga2VuJydub3V6YWlcIDsKK+S4gOeAieWNg+mHjCA8IGlzc2hhc2VucmlcIDsKK+eZveaouiA8IHNoaXJha2FuYmFcIDsKK+mHkeWJm+adliA8IGtvbmdvdWR6dWVcIDsKK+aoquihjOmXiuatqSA8IG91a291a2FwcG9cIDsKK+isneiCieelrSA8IHNoYW5pa3VzYWlcIDsKK+ikh+WGmee0mSA8IGZ1a3VzaGFzaGlcIDsKK+mAseWIiuiqjCA8IHNodXVrYW5zaGlcIDsKK+WPjueojuaJgCA8IHNodXV6ZWlzaG9cIDsKK+WJsOS9meS+oeWApCA8IGpvdXlva2FjaGlcIDsKK+WFq+aciCA8IGhhY2hpZ2F0c3VcIDsKK+mAmuihjOS6uiA8IHRzdXVrb3VuaW5cIDsKK+mRkeWumuaWmSA8IGthbnRlaXJ5b3VcIDsKK+i4j+i7iiA8IGZ1bWlndXJ1bWFcIDsKK+aWh+WMluWbveWutiA8IGJ1bmtha29ra2FcIDsKK+iInuWPsOeoveWPpCA8IGJ1dGFpZ2Vpa29cIDsKK+WQjOS4gOS6uiA8IGRvdWl0c3VuaW5cIDsKK+mrmOa9rue3miA8IGtvdWNob3VzZW5cIDsKK+a1uOmAj+aApyA8IHNoaW50b3VzZWlcIDsKK+ihgOiJsue0oCA8IGtlc3NoaWtpc29cIDsKK+iEs+mch+ebqiA8IG5vdXNoaW50b3VcIDsKK+S8iuWLouWkp+W7nyA8IGlzZXRhaWJ5b3VcIDsKK+izg+iyuOS6uiA8IGNoaW50YWluaW5cIDsKK+WHuueUn+WcsCA8IHNodXNzZWljaGlcIDsKK+eVpeiqrCA8IHJ5YWt1c2V0c3VcIDsKK+e3tOe/kueUnyA8IHJlbnNodXVzZWlcIDsKK+W6p+W4reihqCA8IHphc2VraWh5b3VcIDsKK+ims+a4rOiAhSA8IGthbnNva3VzaGFcIDsKK+ebuOS6kuaUr+aPtCA8IHNvdWdvc2hpZW5cIDsKK+WcsOeNhOiAsyA8IGppZ29rdW1pbWlcIDsKK+mrmOe0muWTgSA8IGtvdWt5dXVoaW5cIDsKK+mBoOaXpeeCuSA8IGVuaml0c3V0ZW5cIDsKK+a8ouWtpuiAhSA8IGthbmdha3VzaGFcIDsKK+eJp+WgtOmzpSA8IG1ha2liYXRvcmlcIDsKK+eUs+i+vCA8IG1vdXNoaWtvbWlcIDsKK+WIh+WIhyA8IHNldHN1c2V0c3VcIDsKK+atu+WIkeWbmiA8IHNoaWtlaXNodXVcIDsKK+awt+egguezliA8IGtvb3JpemF0b3VcIDsKK+aZrumBjeWOn+eQhiA8IGZ1aGVuZ2VucmlcIDsKK+WFseiRl+iAhSA8IGt5b3VjaG9zaGFcIDsKK+mqqOmrhOeCjiA8IGtvdHN1enVpZW5cIDsKK+S4jeWNs+S4jemboiA8IGZ1c29rdWZ1cmlcIDsKK+aUvueJp+WcsCA8IGhvdWJva3VjaGlcIDsKK+aCquWboOaCquaenCA8IGFrdWluJydha2thXCA7Civnmb3ooYDnkIMgPCBoYWtrZWtreXV1XCA7Civnm7Llo4EgPCBtZWt1cmFrYWJlXCA7CivmurblsqnmtYEgPCB5b3VnYW5yeXV1XCA7CivmrbvlgrfogIUgPCBzaGlzaG91c2hhXCA7CivlvI/pg6jlrpggPCBzaGlraWJ1a2FuXCA7CivohIblvLHmgKcgPCB6ZWlqYWt1c2VpXCA7CivntabmsLTmoJMgPCBreXV1c3Vpc2VuXCA7Civpr6jluZUgPCBrdWppcmFtYWt1XCA7CivoprPmuKzntrIgPCBrYW5zb2t1bW91XCA7CivmgKXooYzliLggPCBreXV1a291a2VuXCA7Civnmb3mmJ8gPCBzaGlyb2Jvc2hpXCA7Civnmb7ml6UgPCBoeWFrdW5pY2hpXCA7CivpmYTlkozpm7flkIwgPCBmdXdhcmFpZG91XCA7CivlvqHpnq3mkrsgPCBnb2JlbnRhdHN1XCA7Civnt5HljYHlrZcgPCByeW9rdWp1dWppXCA7CivljJbnsqfpg6jlsYsgPCBrZXNob3ViZXlhXCA7CivmtYHnt5rlvaIgPCByeXV1c2Vua2VpXCA7Civohpzos6ogPCBtYWt1c2hpdHN1XCA7Civljp/lp4vnmoQgPCBnZW5zaGl0ZWtpXCA7CivniafnvorlnLAgPCBib2t1eW91Y2hpXCA7Civlh7rlhaUgPCBzaHV0c3VueXV1XCA7Civno6joo73nn7PlmaggPCBtYXNlaXNla2tpXCA7CivniLblrZDlrrbluq0gPCBmdXNoaWthdGVpXCA7Civln7znjonnnIwgPCBzYWl0YW1ha2VuXCA7CivkvZnpn7vlq4vlq4sgPCB5b2luam91am91XCA7CivmlLvmkoPou40gPCBrb3VnZWtpZ3VuXCA7CivmlbXoiabpmoogPCB0ZWtpa2FudGFpXCA7CivlubTkuIsgPCB0b3NoaXNoaXRhXCA7Civpo5/lmajmo5ogPCBzaG9ra2lkYW5hXCA7CivkvJ3pgIHlhYggPCBkZW5zb3VzYWtpXCA7CivnqLLojbfprqggPCBpbmFyaXp1c2hpXCA7Civkv4LplbcgPCBrYWthcmljaG91XCA7Civlvqnoqr/lmaggPCBmdWt1Y2hvdWtpXCA7CivlpKfnl4XkurogPCBkYWlieW91bmluXCA7CivlhbHlirTogIUgPCBreW91cm91c2hhXCA7CivlgJnoqr8gPCBzb3Vyb3VjaG91XCA7Civnl4Xljp/oj4wgPCBieW91Z2Vua2luXCA7CivmnJ3prq7kurogPCBjaG91c2VuamluXCA7CivnuITmloflnJ/lmaggPCBqb3Vtb25kb2tpXCA7CivlhKrotormqKkgPCB5dXVldHN1a2VuXCA7Civpr6jlsLogPCBrdWppcmFqYWt1XCA7CivkuIDkurrml4UgPCBoaXRvcml0YWJpXCA7Civmloflraboq5YgPCBidW5nYWt1cm9uXCA7CivogonmhJ/nmoQgPCBuaWtrYW50ZWtpXCA7CivmgKXooYzkvr8gPCBreXV1a291YmluXCA7CivnlLLkuZnkuJkgPCBrb3VvdHN1aGVpXCA7CivkuK3ms6LplbcgPCBjaHV1aGFjaG91XCA7CivnhKHogbfogIUgPCBtdXNob2t1c2hhXCA7Civlj47nqI7lrpggPCBzaHV1emVpa2FuXCA7Civlrabpg6jplbcgPCBnYWt1YnVjaG91XCA7CivosqHli5nnrqHnkIYgPCB6YWltdWthbnJpXCA7CivotoXmoLzlrZAgPCBjaG91a291c2hpXCA7CivnqYLnirboirHluo8gPCBzdWlqb3VrYWpvXCA7Civpl4rokYnmqLkgPCBrYXRzdXlvdWp1XCA7Civnm5vlnJ8gPCBtb3JpdHN1Y2hpXCA7CivlhbHps7TogIUgPCBreW91bWVpc2hhXCA7CivnhKHkvZPniakgPCBtdXRhaWJ1dHN1XCA7Civmta7msJflpbMgPCB1d2FraW9uJyduYVwgOwor55m756uc6ZaAIDwgdG91cnl1dW1vblwgOwor5LiA576p55qEIDwgaWNoaWdpdGVraVwgOwor56ys5LiA5p2hIDwgZGFpaWNoaWpvdVwgOwor6L6e5pu46YOo6ZaAIDwgamlzaG9idW1vblwgOwor5YaF55So6JasIDwgbmFpeW91eWFrdVwgOwor5qmf5YuV6YOo6ZqKIDwga2lkb3VidXRhaVwgOwor5L+d5a6J5Yem5YiGIDwgaG9hbnNob2J1blwgOwor6Iqx5pqmIDwgaGFuYWdveW9taVwgOwor5bqn5qiZ6Lu4IDwgemFoeW91amlrdVwgOwor562W5rqQ5ZywIDwgc2FrdWdlbmNoaVwgOwor55u05YiXIDwgY2hva3VyZXRzdVwgOwor5YSq55Sf5a2mIDwgeXV1c2VpZ2FrdVwgOwor5oSP5oCd6KGo56S6IDwgaXNoaWh5b3VqaVwgOwor5YiG6ZqK6ZW3IDwgYnVudGFpY2hvdVwgOwor5Za25Yip5LqL5qWtIDwgZWlyaWppZ3lvdVwgOwor5YmN5YCf6YeRIDwgemVuc2hha2tpblwgOwor55qu6Iaa56e75qSNIDwgaGlmdWlzaG9rdVwgOwor5Luy6KOB5Lq6IDwgY2h1dXNhaW5pblwgOwor6LWk6YGT56WtIDwgc2VraWRvdXNhaVwgOwor5p2x5YyX5aSnIDwgdG91aG9rdWRhaVwgOwor5a6f6Ki86KuWIDwgamlzc2hvdXJvblwgOwor5LiN54eD54mpIDwgZnVuZW5idXRzdVwgOwor5YWo5by36aKoIDwgemVua3lvdWZ1dVwgOwor6K2w5LqL5aao5a6zIDwgZ2lqaWJvdWdhaVwgOwor5bCP5aSp5ZywIDwgc2hvdXRlbmNoaVwgOwor6YWi6YW45aGpIDwgc2FrdXNhbicnZW5cIDsKK+i2hemfs+mAnyA8IGNob3VvbnNva3VcIDsKK+WvhuWRiuiAhSA8IG1pa2tva3VzaGFcIDsKK+WIhumhnuWtpiA8IGJ1bnJ1aWdha3VcIDsKK+W9q+mHkeW4qyA8IGNob3VraW5zaGlcIDsKK+S4gOmojuW9k+WNgyA8IGlra2l0b3VzZW5cIDsKK+mYv+m8u+WPq+WWmiA8IGFiaWt5b3VrYW5cIDsKK+e1tuWvvua4qeW6piA8IHpldHRhaW9uZG9cIDsKK+m7hOmHkeS4lueVjCA8IG91Z29uc2VrYWlcIDsKK+WFsemAmuiqniA8IGt5b3V0c3V1Z29cIDsKK+WGveWGvSA8IHJldHN1cmV0c3VcIDsKK+elnuenmOWtpiA8IHNoaW5oaWdha3VcIDsKK+S4gOacrOapiyA8IGlwcG9uYmFzaGlcIDsKK+esrOS6lOWIlyA8IGRhaWdvcmV0c3VcIDsKK+e0s+Wjq+eUqCA8IHNoaW5zaGl5b3VcIDsKK+S4gOaemuWyqSA8IGljaGltYWlpd2FcIDsKK+S4gOacrOanjSA8IGlwcG9uJyd5YXJpXCA7Civlm7Dnqq7ogIUgPCBrb25reXV1c2hhXCA7CivlhaXlrqQgPCBueXV1c2hpdHN1XCA7Civmo5LmuKnluqboqIggPCBib3VvbmRva2VpXCA7CivlhqzmlK/luqYgPCBmdXl1aml0YWt1XCA7CivlhbHlkIzkvZMgPCBreW91ZG91dGFpXCA7CivlsJHmlbDlhZogPCBzaG91c3V1dG91XCA7CivlhajmsJHooYYgPCB6ZW5taW5zaHV1XCA7Civnm7jlj43nmoQgPCBzb3VoYW50ZWtpXCA7Civmta7pgYrniakgPCBmdXl1dWJ1dHN1XCA7CivlirTlg43nnIEgPCByb3Vkb3VzaG91XCA7Civlravmga/lrZAgPCBtYWdvbXVzdWtvXCA7Civlj43lr77mhI/oposgPCBoYW50YWlpa2VuXCA7CivkvpvppIrloZogPCBrdXlvdWR6dWthXCA7Civpp4bpgJDoiaYgPCBrdWNoaWt1a2FuXCA7CivntKDkurrnm64gPCBzaGlyb3V0b21lXCA7Civnsr7ogonlupcgPCBzZWluaWt1dGVuXCA7Civlj4zmrrvpoZ4gPCBzb3VrYWt1cnVpXCA7CivmrKPmsYLmtYTlnJ8gPCBnb25ndWpvdWRvXCA7Civph5HosqjmupblgpkgPCBraW5rYWp1bmJpXCA7CivlpajlirHph5EgPCBzaG91cmVpa2luXCA7CivkuI3nsr7pq60gPCBidXNob3VoaWdlXCA7Civoq5bnkIbntKDlrZAgPCByb25yaXNvc2hpXCA7Civog73li5XnmoQgPCBub3Vkb3V0ZWtpXCA7CivntITljYrliIYgPCB5YWt1aGFuYnVuXCA7CivlsbHojZIgPCB5YW1hYXJhc2hpXCA7CivntrLmvIHmpa0gPCBhbWlneW9neW91XCA7Civmjojmpa3kuK0gPCBqdWd5b3VjaHV1XCA7Civlsqnnn7PlnI8gPCBnYW5zZWtpa2VuXCA7CivpnLLlnLDmoL3ln7kgPCByb2ppc2FpYmFpXCA7Civlvbnnm67mn4QgPCB5YWt1bWVnYXJhXCA7Civlj6TlorPmmYLku6MgPCBrb2Z1bmppZGFpXCA7CivkuIDmnKzmnb4gPCBpcHBvbm1hdHN1XCA7CivloannhY7ppIUgPCBzaGlvc2VuYmVpXCA7CivljZfjgIXopb8gPCBuYW4nJ25hbnNlaVwgOwor5Zyo5a2m55SfIDwgemFpZ2FrdXNlaVwgOwor5YmD5YiA56ClIDwga2FtaXNvcmlkb1wgOwor5aSa55m65oCnIDwgdGFoYXRzdXNlaVwgOwor54Sh54WZ54Gr6JasIDwgbXVlbmtheWFrdVwgOwor5YSq6LaK5oSfIDwgeXV1ZXRzdWthblwgOwor54m557Sa5ZOBIDwgdG9ra3l1dWhpblwgOwor5LiJ6KeS6YyQIDwgc2Fua2FrdXN1aVwgOwor5YKR54mpIDwga2V0c3VidXRzdVwgOwor5b+F5rK76JasIDwgaGl0Y2hpeWFrdVwgOwor5Y2Y5oyv5YuVIDwgdGFuc2hpbmRvdVwgOwor5Li75by16ICFIDwgc2h1Y2hvdXNoYVwgOwor5o6S5LuW5b6LIDwgaGFpdGFyaXRzdVwgOwor5pS/5rK75qmf5qeLIDwgc2VpamlraWtvdVwgOwor5oSP5b+X5rG65a6aIDwgaXNoaWtldHRlaVwgOwor5YSq6LaK5oCnIDwgeXV1ZXRzdXNlaVwgOwor5b2i5oWL5a2mIDwga2VpdGFpZ2FrdVwgOwor5bel5qWt55WMIDwga291Z3lvdWthaVwgOwor5bel5qWt55SoIDwga291Z3lvdXlvdVwgOwor56mN5Lmx6ZuyIDwgc2VraXJhbicndW5cIDsKK+aLneims+aWmSA8IGhhaWthbnJ5b3VcIDsKK+mgmOa1t+e3miA8IHJ5b3VrYWlzZW5cIDsKK+inkuWIhuaVoyA8IGtha3VidW5zYW5cIDsKK+S4jeimi+itmCA8IGZ1a2Vuc2hpa2lcIDsKK+Wkp+WtpueUnyA8IGRhaWdha3VzZWlcIDsKK+acgOWMl+erryA8IHNhaWhva3V0YW5cIDsKK+ihqOmdouS4iiA8IGh5b3VtZW5qb3VcIDsKK+a/g+ehq+mFuCA8IG5vdXJ5dXVzYW5cIDsKK+eVpeethiA8IHJ5YWt1aGl0c3VcIDsKK+awtOWMlueJqSA8IHN1aWthYnV0c3VcIDsKK+i2heS8neWwjiA8IGNob3VkZW5kb3VcIDsKK+aWh+WtpuiAhSA8IGJ1bmdha3VzaGFcIDsKK+eyl+ebrumbqiA8IHphcmFtZXl1a2lcIDsKK+WPsuWtpuiAhSA8IHNoaWdha3VzaGFcIDsKK+Wbveawkei7jSA8IGtva3VtaW5ndW5cIDsKK+WSgOWavOetiyA8IHNvc2hha3VraW5cIDsKK+S9j+aJgOmMsiA8IGp1dXNob3Jva3VcIDsKK+mnkOWBnOi7iiA8IGNodXV0ZWlzaGFcIDsKK+akjeaoueelrSA8IHNob2t1anVzYWlcIDsKK+iyoOiNt+WIhuaVoyA8IGZ1a2FidW5zYW5cIDsKK+inkumAn+W6piA8IGtha3Vzb2t1ZG9cIDsKK+W3puWIqSA8IGhpZGFyaWtpa2lcIDsKK+Wkp+i1pOaWkSA8IGRhaXNla2loYW5cIDsKK+WcsOS4rea1tyA8IGNoaWNodXVrYWlcIDsKK+S8uOmkhSA8IG5vc2hpbW9jaGlcIDsKK+S4jeWBj+S4jeWFmiA8IGZ1aGVuZnV0b3VcIDsKK+WGheWGkSA8IHVjaGlrYWJ1dG9cIDsKK+WVhuWjsuS6uiA8IHNob3ViYWluaW5cIDsKK+WQjOW6iueVsOWkoiA8IGRvdXNob3VpbXVcIDsKK+WPl+WPluS6uiA8IHVrZXRvcmluaW5cIDsKK+imi+acrOW4giA8IG1paG9uJydpY2hpXCA7CivnhKHpmZDou4zpgZMgPCBtdWdlbmtpZG91XCA7CivmipXnpajmqKkgPCB0b3VoeW91a2VuXCA7CivmjqLnhafnga8gPCB0YW5zaG91dG91XCA7Civlhajli53ou40gPCB6ZW5zaG91Z3VuXCA7CivntabmsLTloZQgPCBreXV1c3VpdG91XCA7Civmva7lubLni6kgPCBzaGlvaGlnYXJpXCA7Civou43kuovpoafllY8gPCBndW5qaWtvbW9uXCA7CivniaHnvorluqcgPCBvaGl0c3VqaXphXCA7CivogL3nvo7kuLvnvqkgPCB0YW5iaXNodWdpXCA7Civlj47nqI7kurogPCBzaHV1emVpbmluXCA7CivllpzliofmmKDnlLsgPCBraWdla2llaWdhXCA7Civlt6blgbQgPCBoaWRhcmlnYXdhXCA7Civpgbjmip7mqKkgPCBzZW50YWt1a2VuXCA7CivmjqHngrnooaggPCBzYWl0ZW5oeW91XCA7Civlt6Xlt6Xlm5sgPCBrdW5rdW5zaGlpXCA7CivlhaXlj6MgPCBoYWlyaWd1Y2hpXCA7CivoqJjpjLLnmoQgPCBraXJva3V0ZWtpXCA7CivosYbmnb/pioAgPCBtYW1laXRhZ2luXCA7Civntbblr77ph48gPCB6ZXR0YWlyeW91XCA7CivmnbHljJfkurogPCB0b3Vob2t1amluXCA7Civmtbfou43nnIEgPCBrYWlndW5zaG91XCA7Civph5HliZvlipsgPCBrb25nb3VyaWtpXCA7CivnnJ/mmpfpl4cgPCBtYWt1cmF5YW1pXCA7CivmpJznlqvlrpggPCBrZW4nJ2VraWthblwgOwor5a6k6ZW3IDwgc2hpdHN1Y2hvdVwgOwor5a++6LGh5aSWIDwgdGFpc2hvdWdhaVwgOwor5paw5r2f55yMIDwgbmlpZ2F0YWtlblwgOwor6ZeH5YaN6LKpIDwgeWFtaXNhaWhhblwgOwor5YuV54mp5oSbIDwgZG91YnV0c3VhaVwgOwor5pu854+g5rKZ6I+vIDwgbWFuanVzaGFnZVwgOwor5L2/55So6YePIDwgc2hpeW91cnlvdVwgOwor5YSq5ae/IDwgeWFzYXN1Z2F0YVwgOwor6JeB5Y2K57SZIDwgd2FyYWJhbnNoaVwgOwor5qih5pOs6Kmm6aiTIDwgbW9naXNoaWtlblwgOwor5paw6ZaL5ZywIDwgc2hpbmthaWNoaVwgOwor6Z2e5bi46K2YIDwgaGlqb3VzaGlraVwgOwor5LiA6Z2i6KazIDwgaWNoaW1lbmthblwgOwor566h57WD5qW9IDwga2FuZ2VuZ2FrdVwgOwor6KaP5YmH6YGV5Y+NIDwga2lzb2t1aWhhblwgOwor5pyA5oG15Zu9IDwgc2Fpa2Vpa29rdVwgOwor5oWi5oCn55qEIDwgbWFuc2VpdGVraVwgOwor5aSP54KJ5Yas5omHIDwga2Fyb3RvdXNlblwgOwor5o6o6KiI5a2mIDwgc3Vpa2VpZ2FrdVwgOwor5Ymv6aCY5LqLIDwgZnVrdXJ5b3VqaVwgOwor5Y2w5Yi36ICFIDwgaW5zYXRzdXNoYVwgOwor6ICQ54Gr5YqbIDwgdGFpa2FyeW9rdVwgOwor5Y+L56aF5p+TIDwgeXV1emVuem9tZVwgOwor5aCx5ZGK5pu4IDwgaG91a29rdXNob1wgOwor6aqo5qC8562LIDwga29ra2FrdWtpblwgOwor6Zuo5aSp5rG66KGMIDwgdXRlbmtla2tvdVwgOwor6Je75aGp6I2JIDwgbW9zaGlvZ3VzYVwgOwor6ZuG5aSn5oiQIDwgc2h1dXRhaXNlaVwgOwor5oWi5oCn55eFIDwgbWFuc2VpYnlvdVwgOwor5a6j6KiA55qEIDwgc2VuZ2VudGVraVwgOwor5YWt6YeN5aWPIDwgcm9rdWp1dXNvdVwgOwor6Z+z6Z+/5a2mIDwgb25reW91Z2FrdVwgOwor55Sz56uLIDwgbW91c2hpdGF0ZVwgOwor5bel5qWt5rivIDwga291Z3lvdWtvdVwgOwor57eP6L6e6IG3IDwgc291amlzaG9rdVwgOwor6LuN5Zuj6ZW3IDwgZ3VuZGFuY2hvdVwgOwor5oSP6KaL5Lqk5o+bIDwgaWtlbmtvdWthblwgOwor5bm06ZW36ICFIDwgbmVuY2hvdXNoYVwgOwor57eP5YuZ5bGAIDwgc291bXVreW9rdVwgOwor5LiN5Lm+5oCn5rK5IDwgZnVrYW5zZWl5dVwgOwor6Z2i55u4562GIDwgbWVuc291ZnVkZVwgOwor5pWj5q2p6YGTIDwgc2FucG9taWNoaVwgOwor56S65Zyn6KiIIDwgc2hpYXRzdWtlaVwgOwor5LiW57SA5pyrIDwgc2Vpa2ltYXRzdVwgOwor56ys5LiJ5Zu9IDwgZGFpc2FuZ29rdVwgOwor5oqV56Wo5pWwIDwgdG91aHlvdXN1dVwgOwor5L2V566H5pyIIDwgbmFua2FnZXRzdVwgOwor55Sz6KuL5pu4IDwgc2hpbnNlaXNob1wgOwor5qSN54mpIDwgc2hva3VidXRzdVwgOwor6IW56Iac54KOIDwgZnVrdW1ha3VlblwgOwor5rip5rOJ55S6IDwgb25zZW5tYWNoaVwgOwor5Li75YuV55qEIDwgc2h1ZG91dGVraVwgOwor5rOM5bC/5Zmo56eRIDwgaGlueW91a2lrYVwgOwor5LiN5paH5b6LIDwgZnVidW5yaXRzdVwgOwor5byB5b2T566xIDwgYmVudG91YmFrb1wgOwor5bKp54eVIDwgaXdhdHN1YmFtZVwgOwor5aSp5L2T5a2mIDwgdGVudGFpZ2FrdVwgOwor5Y2w5Yi357SZIDwgaW5zYXRzdXNoaVwgOwor5L2O5oiQ6ZW3IDwgdGVpc2VpY2hvdVwgOwor5L+v5Luw6KeSIDwgZnVneW91a2FrdVwgOwor5bi35bmE5LiK5aWPIDwgaWFrdWpvdXNvdVwgOwor5pS+54ax5ZmoIDwgaG91bmV0c3VraVwgOwor57SU6Imv5ZOBIDwganVucnlvdWhpblwgOwor5YKZ5b6M6KGoIDwgYmluZ29vbW90ZVwgOwor5pqX5q666ICFIDwgYW5zYXRzdXNoYVwgOwor5bmz5pWZ5ZOhIDwgaGlyYWt5b3VpblwgOwor5LiN6Kaa6ICFIDwgZnVrYWt1bW9ub1wgOwor5oiQ6ZW354K5IDwgc2VpY2hvdXRlblwgOwor5p2x5qiq57eaIDwgdG91eW9rb3NlblwgOwor5pWR5riI6ICFIDwga3l1dXNhaXNoYVwgOwor55+l6IO955qEIDwgY2hpbm91dGVraVwgOwor5YSy5Y+jIDwgbW91a2VndWNoaVwgOwor5YWo5qip5aeU5ZOhIDwgemVua2VuJydpaW5cIDsKK+W5u+immuWJpCA8IGdlbmtha3V6YWlcIDsKK+aenOeJqeWxiyA8IGt1ZGFtb25veWFcIDsKK+a8lOeul+apn+aniyA8IGVuemFua2lrb3VcIDsKK+S6uuagvOiAhSA8IGppbmtha3VzaGFcIDsKK+eEoeiTi+iyqOi7iiA8IG11Z2Fpa2FzaGFcIDsKK+mHkeWxnumWkyA8IGtpbnpva3VrYW5cIDsKK+iKseafs+eXhSA8IGthcnl1dWJ5b3VcIDsKK+ajn+eTpiA8IG11bmFnYXdhcmFcIDsKK+mrmOaelSA8IHRha2FtYWt1cmFcIDsKK+iAgeWkp+WbvSA8IHJvdXRhaWtva3VcIDsKK+S7o+iogOS6uiA8IGRhaWdlbicnbmluXCA7Civlv4PlvpfpoZQgPCBrb2tvcm9lZ2FvXCA7Civku6PooajogIUgPCBkYWloeW91c2hhXCA7CivkuLvnn6XnmoQgPCBzaHVjaGl0ZWtpXCA7CivmloflrabnlYwgPCBidW5nYWt1a2FpXCA7CivliIfmlq3mqZ8gPCBzZXRzdWRhbmtpXCA7CivkuIDmmYLnmoQgPCBpY2hpaml0ZWtpXCA7CivkuqTpgJrntrIgPCBrb3V0c3V1bW91XCA7CivkuozljYHkuJbntIAgPCBuaWppc3NlaWtpXCA7Civkv53orbflh6bliIYgPCBob2dvc2hvYnVuXCA7CivlnLDnkIPkurogPCBjaGlreXV1amluXCA7CivohLnohJsgPCBmdWt1cmFoYWdpXCA7Civpq5jmm4cgPCB0YWthZ3Vtb3JpXCA7Civnmq7ohprnp5HlraYgPCBoaWZ1a2FnYWt1XCA7CivlnLDnkIPkuIogPCBjaGlreXV1am91XCA7CivpgIbmj5DmoYggPCBneWFrdXRlaWFuXCA7Civlr77mlbDooaggPCB0YWlzdXVoeW91XCA7CivooYbmhJrmlL/msrsgPCBzaHVndXNlaWppXCA7CivmlZfmiKblm70gPCBoYWlzZW5rb2t1XCA7Civkvo3lvpPmrablrpggPCBqaWp1dWJ1a2FuXCA7CivmlrDoo73lk4EgPCBzaGluc2VpaGluXCA7CivmjqfoqLTmnJ/plpMgPCBrb3Vzb2tpa2FuXCA7CivkuIrkvY3mp4vpgKAgPCBqb3Vpa291em91XCA7CivmpbXot53pm6IgPCBreW9rdWt5b3JpXCA7CivluLjku7vlp5Tlk6EgPCBqb3VuaW4nJ2lpblwgOwor6Iqd5bGF5bCP5bGLIDwgc2hpYmFpZ295YVwgOwor5qGc6IqxIDwgc2FrdXJhYmFuYVwgOwor5YWs56ef5YWs6KqyIDwga291c29rb3VrYVwgOwor54af57e05belIDwganVrdXJlbmtvdVwgOwor6Imy57Sg5L2TIDwgc2hpa2lzb3RhaVwgOwor5Li456Cl55+zIDwgbWFydXRvaXNoaVwgOwor5ZCM5peP5LyaIDwgZG91em9rdWthaVwgOwor57WM5riI55qEIDwga2VpemFpdGVraVwgOwor5piT5oSf5p+T5oCnIDwgaWthbnNlbnNlaVwgOwor54mb5Lmz5bGLIDwgZ3l1dW55dXV5YVwgOwor57e057+S5aC0IDwgcmVuc2h1dWpvdVwgOwor57SA5LyK5ZyL5bGLIDwga2lub2t1bml5YVwgOwor5qGR6Iu6IDwga3V3YWljaGlnb1wgOwor5aSc6be56JWO6bqmIDwgeW90YWthc29iYVwgOwor54m56KO95ZOBIDwgdG9rdXNlaWhpblwgOwor5Yuk5YuZ5pmC6ZaTIDwga2lubXVqaWthblwgOwor5Y6t5LiW5Li7576pIDwgZW5zZWlzaHVnaVwgOwor5Y2Y5L2N6KiY5Y+3IDwgdGFuJydpa2lnb3VcIDsKK+iEmuiJsiA8IGt5YWt1c2hva3VcIDsKK+S4jeiqoOWunyA8IGZ1c2Vpaml0c3VcIDsKK+W+k+adpeWeiyA8IGp1dXJhaWdhdGFcIDsKK+WvvuixoeS9kyA8IHRhaXNob3V0YWlcIDsKK+eyieefs+m5uCA8IGtvbmFzZWtrZW5cIDsKK+WknOWwv+eXhyA8IHlhbnlvdXNob3VcIDsKK+i2heaWh+mdoiA8IGNob3VidW5tZW5cIDsKK+aOkuS7luS4u+e+qSA8IGhhaXRhc2h1Z2lcIDsKK+WLleeJqeWckiA8IGRvdWJ1dHN1ZW5cIDsKK+e3j+ebo+edoyA8IHNvdWthbnRva3VcIDsKK+Wun+mam+eahCA8IGppc3NhaXRla2lcIDsKK+mgvOS/oee0mSA8IHJhaXNoaW5zaGlcIDsKK+Wuh+Wumemjm+ihjCA8IHVjaHV1aGlrb3VcIDsKK+Wuo+aVmeW4qyA8IHNlbmt5b3VzaGlcIDsKK+ahnOiCiSA8IHNha3VyYW5pa3VcIDsKK+iyrOS7u+iAhSA8IHNla2luaW5zaGFcIDsKK+mWouevgOeCjiA8IGthbnNldHN1ZW5cIDsKK+iCqei7iiA8IGthdGFndXJ1bWFcIDsKK+WFsemztOadvyA8IGt5b3VtZWliYW5cIDsKK+Wul+S4u+WbvSA8IHNvdXNodWtva3VcIDsKK+S7ruWQjeiNiee0mSA8IGthbmF6b3VzaGlcIDsKK+aXp+i7jeS6uiA8IGt5dXVndW5qaW5cIDsKK+WNiua/geeCuSA8IGhhbmRha3V0ZW5cIDsKK+WdkeWGheS6i+aVhSA8IGtvdW5haWppa29cIDsKK+WNiumVt+W9oiA8IGhhbmNob3VrZWlcIDsKK+S4reawtOmBkyA8IGNodXVzdWlkb3VcIDsKK+mBuOaJi+adkSA8IHNlbnNodW11cmFcIDsKK+irlueQhua8lOeulyA8IHJvbnJpZW56YW5cIDsKK+izqumHjyA8IHNoaXRzdXJ5b3VcIDsKK+WNsOWIt+eUqCA8IGluc2F0c3V5b3VcIDsKK+mciuafqei7iiA8IHJlaWt5dXVzaGFcIDsKK+a1t+WyuOerryA8IGthaWdhbmJhdGFcIDsKK+WklueUqOiWrCA8IGdhaXlvdXlha3VcIDsKK+e0q+aWkeeXhSA8IHNoaWhhbmJ5b3VcIDsKK+ibuOmFjeW9kyA8IHRha29oYWl0b3VcIDsKK+mrmOaJgOeXhSA8IGtvdXNob2J5b3VcIDsKK+eVnOauuiA8IGNoaWt1c2F0c3VcIDsKK+Wkp+Wwj+S+vyA8IGRhaXNob3ViZW5cIDsKK+mbu+awl+avm+W4gyA8IGRlbmtpbW91ZnVcIDsKK+exs+WbveawkSA8IGJlaWtva3VtaW5cIDsKK+WQuOawtOaApyA8IGt5dXVzdWlzZWlcIDsKK+mbsumsouiKsemhlCA8IHVuYmlua2FnYW5cIDsKK+W/teS6lOaXpSA8IG5lbmdvbmljaGlcIDsKK+WHuuadpeW/gyA8IGRla2lnb2tvcm9cIDsKK+S4reW/g+mDqCA8IGNodXVzaGluYnVcIDsKK+W+oeWJjeS8muitsCA8IGdvemVua2FpZ2lcIDsKK+iEiOiEiCA8IG15YWt1bXlha3VcIDsKK+eUn+S9k+WtpiA8IHNlaXRhaWdha3VcIDsKK+allOW9oiA8IGt1c2FiaWdhdGFcIDsKK+S6iOWCmeiqv+afuyA8IHlvYmljaG91c2FcIDsKK+W5s+WSjOS4u+e+qSA8IGhlaXdhc2h1Z2lcIDsKK+iCr+WumueahCA8IGtvdXRlaXRla2lcIDsKK+ahnOe0mSA8IHNha3VyYWdhbWlcIDsKK+azqOaEj+S6i+mghSA8IGNodXVpamlrb3VcIDsKK+WLleeJqeWMliA8IGRvdWJ1dHN1a2FcIDsKK+awtOW5s+e/vCA8IHN1aWhlaXlva3VcIDsKK+iyv+aYk+alrSA8IGJvdWVraWd5b3VcIDsKK+iFsOW4g+WboyA8IGtvc2hpYnV0b25cIDsKK+eIhuaSg+apnyA8IGJha3VnZWtpa2lcIDsKK+iogOihjOmMsiA8IGdlbmtvdXJva3VcIDsKK+Wbo+WcsOaXjyA8IGRhbmNoaXpva3VcIDsKK+S5seiqv+WtkCA8IHJhbmNob3VzaGlcIDsKK+WCmeiThOexsyA8IGJpY2hpa3VtYWlcIDsKK+Wkp+S5l+eahCA8IGRhaWpvdXRla2lcIDsKK+eEoeiDveWKmyA8IG11bm91cnlva3VcIDsKK+mFqui+suWgtCA8IHJha3Vub3Vqb3VcIDsKK+iDuOmDqOWkluenkSA8IGt5b3VidWdla2FcIDsKK+iyqOWuouiIuSA8IGtha3lha3VzZW5cIDsKK+aEn+afk+eXhyA8IGthbnNlbnNob3VcIDsKK+ecn+eQhuaVmSA8IHNoaW5yaWt5b3VcIDsKK+aFiOWWhOmNiyA8IGppemVuJyduYWJlXCA7Civnl4XlrqQgPCBieW91c2hpdHN1XCA7CivmioDooZPlo6sgPCBnaWp1dHN1c2hpXCA7Civoiovkvo0gPCBpbW96YW11cmFpXCA7Civlk6jmiJLoiYcgPCBzaG91a2FpdGVpXCA7CivphZLnn7PphbggPCBzaHVzZWtpc2FuXCA7CivmlbfluIPlm6MgPCBzaGlraWJ1dG9uXCA7CivpnZ7lj6/mj5vnvqQgPCBoaWtha2FuZ3VuXCA7Civlj43liYfph5EgPCBoYW5zb2t1a2luXCA7CivpgbrkvJ3mg4XloLEgPCBpZGVuam91aG91XCA7CivmnInmqZ/niakgPCB5dXVraWJ1dHN1XCA7Civogonos6ogPCBuaWt1c2hpdHN1XCA7Civlr4TnlJ/ngavlsbEgPCBraXNlaWthemFuXCA7Civmir3osaHnlLsgPCBjaHV1c2hvdWdhXCA7Civnp5/lgJ/mqKkgPCBzb3NoYWt1a2VuXCA7CivlhoXnlLPmm7ggPCBuYWlzaGluc2hvXCA7CivlkIzntJrnlJ8gPCBkb3VreXV1c2VpXCA7CivlkJHnsbPnmoQgPCBrb3ViZWl0ZWtpXCA7CivopqrooZvlhbUgPCBzaGluJydlaWhlaVwgOwor5LuP5paH56eRIDwgZnV0c3VidW5rYVwgOwor5LqM6YOo5o6I5qWtIDwgbmlidWp1Z3lvdVwgOwor5Y+W5byV5omAIDwgdG9yaWhpa2lqb1wgOwor6Zu76LuK6LODIDwgZGVuc2hhY2hpblwgOwor6ZuG5pWj5ZywIDwgc2h1dXNhbmNoaVwgOwor57a65oOz5puyIDwga2lzb3VreW9rdVwgOwor5LiK6Kq/5a2QIDwgdXdhY2hvdXNoaVwgOwor5YaF6IeT5byTIDwgbmFpem91a3l1dVwgOwor5Y2K6ZaL5Zu9IDwgaGFua2Fpa29rdVwgOwor6KO96YCg5qWtIDwgc2Vpem91Z3lvdVwgOwor6L+95pKD5qmfIDwgdHN1aWdla2lraVwgOwor5LiJ6KeS562LIDwgc2Fua2FrdWtpblwgOwor6Z2e5Za25Yip55qEIDwgaGllaXJpdGVraVwgOwor562J5rex57eaIDwgdG91c2hpbnNlblwgOwor6aeG5YuV5YqbIDwga3Vkb3VyeW9rdVwgOwor5rKz5bed5bel5LqLIDwga2FzZW5rb3VqaVwgOwor6YeN5bel5qWtIDwganV1a291Z3lvdVwgOwor6bq757mU54mpIDwgYXNhb3JpbW9ub1wgOwor5pel5bCE55eFIDwgbmlzc2hhYnlvdVwgOwor54ax6KGA5YWQIDwgbmVra2V0c3VqaVwgOwor6YeR5bGe6KO9IDwga2luem9rdXNlaVwgOwor5pys5aWR57SEIDwgaG9ua2VpeWFrdVwgOwor55u45omL5qyh56ysIDwgYWl0ZXNoaWRhaVwgOwor6buE6KSQ6ImyIDwgb3VrYXNzaG9rdVwgOwor6LO85YWl6ICFIDwga291bnl1dXNoYVwgOwor5LiN57K+6ICFIDwgYnVzaG91bW9ub1wgOwor5Li75b+c5YqbIDwgc2h1b3VyeW9rdVwgOwor5L6/5a6c5Li7576pIDwgYmVuZ2lzaHVnaVwgOwor5Z+8546J5YuiIDwgc2FpdGFtYXplaVwgOwor5a6d6Ii5IDwgdGFrYXJhYnVuZVwgOwor6YeN5YK36ICFIDwganV1c2hvdXNoYVwgOwor55qu6Iaa5ZG85ZC4IDwgaGlmdWtva3l1dVwgOwor5bGx5qGcIDwgeWFtYXpha3VyYVwgOwor5Lqc5oiQ5bGk5ZyPIDwgYXNlaXNvdWtlblwgOwor5YK35a6z572qIDwgc2hvdWdhaXphaVwgOwor5L2c5oim5LiKIDwgc2FrdXNlbmpvdVwgOwor5YG05a6kIDwgc29rdXNoaXRzdVwgOwor6Iad5p6VIDwgaGl6YW1ha3VyYVwgOwor5r2c5rC055eFIDwgc2Vuc3VpYnlvdVwgOwor5Lit5oCn57SZIDwgY2h1dXNlaXNoaVwgOwor5Lmz6aaWIDwgY2hpY2hpa3ViaVwgOwor6Ki655mC5omAIDwgc2hpbnJ5b3Vqb1wgOwor56m66LuN5aSn5bCJIDwga3V1Z3VudGFpaVwgOwor5pel5pys6aOfIDwgbmlob25zaG9rdVwgOwor56i85YON546HIDwga2Fkb3VyaXRzdVwgOwor6YCj5ZCI5Zu9IDwgcmVuZ291a29rdVwgOwor5YWs5rCR5a2mIDwga291bWluZ2FrdVwgOwor56CU56m26ICFIDwga2Vua3l1dXNoYVwgOwor6Z2Z5rC05ZynIDwgc2Vpc3VpYXRzdVwgOwor55m76Yyy6ICFIDwgdG91cm9rdXNoYVwgOwor5rqW5rG65YudIDwganVua2Vzc2hvdVwgOwor5qW15YqbIDwga3lva3VyeW9rdVwgOwor5qKv5a2Q6LuKIDwgaGFzaGlnb3NoYVwgOwor5LiJ6Kaq562JIDwgc2Fuc2hpbnRvdVwgOwor5LiN57SU54mpIDwgZnVqdW5idXRzdVwgOwor5LiK5aWz5LitIDwga2FtaWpvY2h1dVwgOwor6bOl5Y+W55yMIDwgdG90dG9yaWtlblwgOwor5qGR55WRIDwga3V3YWJhdGFrZVwgOwor6LKn5LmP6ayuIDwgYmluYm91a3VqaVwgOwor5ZSv5LiA5bqmIDwgdGFkYWljaGlkb1wgOwor5qK15ZKM6L6e5YW4IDwgYm9ud2FqaXRlblwgOwor5aW96Imy5a62IDwga291c2hva3VrYVwgOwor5q+b55qu5ZWGIDwga2VnYXdhc2hvdVwgOwor5q+U6LyD57SaIDwgaGlrYWt1a3l1dVwgOwor54++5Zyo6auYIDwgZ2VuemFpZGFrYVwgOwor55Wl5byPIDwgcnlha3VzaGlraVwgOwor6Zm45rW356m6IDwgcmlrdWthaWt1dVwgOwor5Y+M55y86Y+hIDwgc291Z2Fua3lvdVwgOwor5o6n6Ki055CG55SxIDwga291c29yaXl1dVwgOwor6aeQ6Lyq5aC0IDwgY2h1dXJpbmpvdVwgOwor6YOo6ZqK5Yy65YiGIDwgYnV0YWlrdWJ1blwgOwor5p6V6KixIDwgbWFrdXJhbW90b1wgOwor55m96YmE6YmxIDwgaGFrdXRla2tvdVwgOwor5aSn5a6u5Lq6IDwgb29taXlhYml0b1wgOwor5oKq6a2U5Li7576pIDwgYWt1bWFzaHVnaVwgOwor6Zuq5ZCI5oimIDwgeXVraWdhc3NlblwgOwor54mH5qCX57KJIDwga2F0YWt1cmlrb1wgOwor55m66KGo5LyaIDwgaGFwcHlvdWthaVwgOwor5a6d57GkIDwgdGFrYXJha3VqaVwgOwor5ZCQ54CJ54mpIDwgdG9zaGFidXRzdVwgOwor6K235bK45bel5LqLIDwgZ29nYW5rb3VqaVwgOwor6KOP6KGo57SZIDwgdXJhYnlvdXNoaVwgOwor5YiH5pat5ZuzIDwgc2V0c3VkYW56dVwgOwor5oCd5oOR6LK3IDwgb21vd2FrdWdhaVwgOwor6Kaz5b+16KuWIDwga2FuJyduZW5yb25cIDsKK+eOiemfs+ebpCA8IGd5b2t1b25iYW5cIDsKK+WuneeusSA8IHRha2FyYWJha29cIDsKK+WPjeWLleeahCA8IGhhbmRvdXRla2lcIDsKK+izquiNiSA8IHNoaWNoaWd1c2FcIDsKK+aVkeWRveiJhyA8IGt5dXVtZWl0ZWlcIDsKK+e1tuWvvueahCA8IHpldHRhaXRla2lcIDsKK+mqqOWjtyA8IGtvdHN1dHN1Ym9cIDsKK+a4rOmHj+WbsyA8IHNva3VyeW91enVcIDsKK+S4ieWkp+WbvSA8IHNhbmRhaWtva3VcIDsKK+WcsOaWueeXhSA8IGNoaWhvdWJ5b3VcIDsKK+Wuv+ebtCA8IHNodWt1Y2hva3VcIDsKK+WHuueJiOiAhSA8IHNodXBwYW5zaGFcIDsKK+S+m+e1pui3ryA8IGt5b3VreXV1cm9cIDsKK+ernOa2jummmSA8IHJ5dXV6ZW5rb3VcIDsKK+WwhOeIhuWgtCA8IHNoYWJha3Vqb3VcIDsKK+a4rOmHj+WZqCA8IHNva3VyeW91a2lcIDsKK+Wcn+S/l+WtpiA8IGRvem9rdWdha3VcIDsKK+e+juWls+ahnCA8IGJpam96YWt1cmFcIDsKK+WNl+OAheadsSA8IG5hbicnbmFudG91XCA7CivkurrmoLzmqKkgPCBqaW5rYWt1a2VuXCA7CivliIbop6PnmoQgPCBidW5rYWl0ZWtpXCA7CivnlLDlpKvph47kurogPCBkZW5wdXlhamluXCA7Civku5bopprnmoQgPCB0YWtha3V0ZWtpXCA7CivlpKnkuLvmlZkgPCB0ZW5zaHVreW91XCA7Civpm6rljJbnsqcgPCB5dWtpZ2VzaG91XCA7CivlvaLlvI/nvo4gPCBrZWlzaGlraWJpXCA7CivlpYflpYfmgKrmgKogPCBraWtpa2Fpa2FpXCA7Civpm7vpgJrlpKcgPCBkZW50c3V1ZGFpXCA7CivkuInop5LngrkgPCBzYW5rYWt1dGVuXCA7CivkvJ3mm7jps6kgPCBkZW5zaG9iYXRvXCA7Civku5bopprnl4cgPCB0YWtha3VzaG91XCA7CivmtojogJfmiKYgPCBzaG91bW91c2VuXCA7Civku5XoqLPmm7ggPCBzaGl3YWtlc2hvXCA7CivpgYrkvJHlnLAgPCB5dXVreXV1Y2hpXCA7Civlgpnku5ggPCBzb25hZXRzdWtlXCA7Civlj43lv5zmgKcgPCBoYW4nJ25vdXNlaVwgOwor5pq06LWw5pePIDwgYm91c291em9rdVwgOwor57SA5YWD56+AIDwga2lnZW5zZXRzdVwgOwor5rip5rOJ5a6/IDwgb25zZW4nJ3lhZG9cIDsKK+WUkOi+m+WtkCA8IHRvdWdhcmFzaGlcIDsKK+aXpeS4remfkyA8IG5pdGNodXVrYW5cIDsKK+eQhuino+WKmyA8IHJpa2Fpcnlva3VcIDsKK+eVpeWlqiA8IHJ5YWt1ZGF0c3VcIDsKK+WFrOWFseiyoSA8IGtvdWt5b3V6YWlcIDsKK+aknOWumuaWmSA8IGtlbnRlaXJ5b3VcIDsKK+W4gumVt+mBuCA8IHNoaWNob3VzZW5cIDsKK+WuieaZruiriyA8IHlhc3VidXNoaW5cIDsKK+elnuS7o+aWh+WtlyA8IGppbmRhaW1vamlcIDsKK+WPpOWFuOaZguS7oyA8IGtvdGVuamlkYWlcIDsKK+W4guS8muitsOWToSA8IHNoaWthaWdpaW5cIDsKK+awtOmBk+aWmSA8IHN1aWRvdXJ5b3VcIDsKK+S4oeaIkOaVlyA8IHJ5b3VzZWliYWlcIDsKK+WNsemZuuiyoOaLhSA8IGtpa2VuZnV0YW5cIDsKK+WIneevgOWPpSA8IGhhdHN1emVra3VcIDsKK+avlOi8g+eahCA8IGhpa2FrdXRla2lcIDsKK+WbvemAo+i7jSA8IGtva3VyZW5ndW5cIDsKK+S4iue0mueUnyA8IGpvdWt5dXVzZWlcIDsKK+eEoemgk+edgCA8IG11dG9uY2hha3VcIDsKK+WGjeadpeaciCA8IHNhcmFpZ2V0c3VcIDsKK+W+jOaXpeirhyA8IGdvaml0c3VkYW5cIDsKK+WCmeiNkumjnyA8IGJpa291c2hva3VcIDsKK+WBpeW6t+S4jeWuiSA8IGtlbmtvdWZ1YW5cIDsKK+advuiZqyA8IG1hdHN1bXVzaGlcIDsKK+S4jeihjOi3oSA8IGZ1Z3lvdXNla2lcIDsKK+aWnOmZveaXjyA8IHNoYXlvdXpva3VcIDsKK+mdkuWMlueJqSA8IHNlaWthYnV0c3VcIDsKK+W/nOaApea4oeaysyA8IG91a3l1dXRva2FcIDsKK+WkqeeOi+WxsSA8IHRlbicnbm91emFuXCA7Civkuozph43lkKblrpogPCBuaWp1dWhpdGVpXCA7CivljoTku4vogIUgPCB5YWtrYWltb25vXCA7Civli4fnjJvlv4MgPCB5dXVtb3VzaGluXCA7CivmrablipvmiKYgPCBidXJ5b2t1c2VuXCA7CivkuInop5Lms5UgPCBzYW5rYWt1aG91XCA7CivmhI/msJfooZ3lpKkgPCBpa2lzaG91dGVuXCA7CivlrpfmlZnnlLsgPCBzaHV1a3lvdWdhXCA7CivnoJTnqbbnlJ8gPCBrZW5reXV1c2VpXCA7Civlh7rlpZTogIUgPCBzaHVwcG9uc2hhXCA7Civlj47nm4rph5EgPCBzaHV1ZWtpa2luXCA7CivmsLfoj5PlrZAgPCBrb29yaWdhc2hpXCA7CivljLvlrabnlKjoqp4gPCBpZ2FrdXlvdWdvXCA7CivoiJ7lj7DlirnmnpwgPCBidXRhaWtvdWthXCA7Civou73lt6Xmpa0gPCBrZWlrb3VneW91XCA7CivoqJjmhrblipsgPCBraW9rdXJ5b2t1XCA7CivljbPoiIjoqakgPCBzb2treW91c2hpXCA7Civlj6TnlJ/niakgPCBrb3NlaWJ1dHN1XCA7CivnhrHmhJvogIUgPCBuZXRzdWFpc2hhXCA7CivlpKnpoILngrkgPCB0ZW5jaG91dGVuXCA7CivnhKHos4flipsgPCBtdXNoaXJ5b2t1XCA7CivoiIjooYzmqKkgPCBrb3VneW91a2VuXCA7Civmnb7moLnmsrkgPCBzaG91a29uJyd5dVwgOwor5Lih6ZqjIDwgcnlvdWRvbmFyaVwgOwor55m+5riI5qW9IDwga3VkYXJhZ2FrdVwgOwor5Zyo5Lu75LitIDwgemFpbmluY2h1dVwgOwor5rue5Zyo5LitIDwgdGFpemFpY2h1dVwgOwor6KO96Iy25qWtIDwgc2VpY2hhZ3lvdVwgOwor6LK/5piT5ZWGIDwgYm91ZWtpc2hvdVwgOwor5Zu95YuZ55yBIDwga29rdW11c2hvdVwgOwor5Lit5Y2X57GzIDwgY2h1dW5hbmJlaVwgOwor576k6ZuAIDwgbXVyYXN1enVtZVwgOwor5qGQ5LiA6JGJIDwga2lyaWhpdG9oYVwgOwor6Zu75L2N5beu6KiIIDwgZGVuJydpc2FrZWlcIDsKK+WFpemBuOiAhSA8IG55dXVzZW5zaGFcIDsKK+e4puekvuS8miA8IHRhdGVzaGFrYWlcIDsKK+W6puaVsOWIhuW4gyA8IGRvc3V1YnVucHVcIDsKK+aTjee4puW4rSA8IHNvdWp1dXNla2lcIDsKK+WRqOaXi+WxiyA8IHNodXVzZW4nJ3lhXCA7Civmloflrablo6sgPCBidW5nYWt1c2hpXCA7CivpgYvpgIHkv53pmbogPCB1bnNvdWhva2VuXCA7Civlt6XlrabogIUgPCBrb3VnYWt1c2hhXCA7Civlj6TkvJ3oqqwgPCBrb2RlbnNldHN1XCA7CivljbDliLflt6UgPCBpbnNhdHN1a291XCA7CivmvZzmsLTmnI0gPCBzZW5zdWlmdWt1XCA7CivmnKjos6ogPCBtb2t1c2hpdHN1XCA7CivlpKfkuLvmlZkgPCBkYWlzaHVreW91XCA7CivkuIrloLTmoKogPCBqb3Vqb3VrYWJ1XCA7CivpoZ7lnovnmoQgPCBydWlrZWl0ZWtpXCA7Civlrp/niakgPCBqaXRzdWJ1dHN1XCA7CivkuIvpnLIgPCBzaGl0YXRzdXl1XCA7CivlkLnlh7rniakgPCBmdWtpZGVtb25vXCA7CivmipfnnJ/oj4wgPCBrb3VzaGlua2luXCA7Civpm6Pms6LmvZ8gPCBuYW5pd2FnYXRhXCA7Civnp5/lgJ/lnLAgPCBzb3NoYWt1Y2hpXCA7CivliqDovrLnoLIgPCBrYW4nJ25vbmhvdVwgOwor6YCg55+z56iOIDwgem91a29rdXplaVwgOwor6aeQ6LuK5aC0IDwgY2h1dXNoYWpvdVwgOwor6Kmm566X6KGoIDwgc2hpc2FuaHlvdVwgOwor57WM5riI5a2mIDwga2VpemFpZ2FrdVwgOwor5oCl5Yu+6YWNIDwga3l1dWtvdWJhaVwgOwor5YSA5byP55SoIDwgZ2lzaGlraXlvdVwgOwor6auY5omL5bCP5omLIDwgdGFrYXRla290ZVwgOwor6KGA5qCT55eHIDwga2Vzc2Vuc2hvdVwgOwor5LyK6YGU5ae/IDwgZGF0ZXN1Z2F0YVwgOwor55eF5Y6f5L2TIDwgYnlvdWdlbnRhaVwgOwor54Sh5ZGz5Lm+54elIDwgbXVtaWthbnNvdVwgOwor5LiL6Zmi6K2w6ZW3IDwga2FpbmdpY2hvdVwgOwor5YWr5YiG55uuIDwgaGFjaGlidW5tZVwgOwor6Kej5p6Q5oCnIDwga2Fpc2VraXNlaVwgOwor6LuN5YKZ566h55CGIDwgZ3VuYmlrYW5yaVwgOwor5a6i6Kaz5oCnIDwga3lha2thbnNlaVwgOwor55Wc5YqbIDwgY2hpa3VyeW9rdVwgOwor6LaF5aqS5L2TIDwgY2hvdWJhaXRhaVwgOwor5rC06Iqt6JWJIDwgbWl6dWJhc2hvdVwgOwor6ZW35pyf55qEIDwgY2hvdWtpdGVraVwgOwor55y86Y+h6JuHIDwgbWVnYW5laGViaVwgOwor5qi56ISC5Yqg5belIDwganVzaGlrYWtvdVwgOwor5Ye654mI55WMIDwgc2h1cHBhbmthaVwgOwor5byB5YSf6YeRIDwgYmVuc2hvdWtpblwgOwor5pyq54af6ICFIDwgbWlqdWt1bW9ub1wgOwor5YiG5pWj5Z6LIDwgYnVuc2FuZ2F0YVwgOwor55+t57eo6ZuGIDwgdGFucGVuc2h1dVwgOwor5a+S5qS/IDwga2FudHN1YmFraVwgOwor5Yip5rC05bel5LqLIDwgcmlzdWlrb3VqaVwgOwor5reh6Lev5bO2IDwgYXdhamlzaGltYVwgOwor5aKX5q6W54KJIDwgem91c2hva3Vyb1wgOwor5LiL6KaL5p2/IDwgc2hpdGFtaWl0YVwgOwor5YiG5pWZ5aC0IDwgYnVua3lvdWpvdVwgOwor6Z2e5bi45LqL5oWLIDwgaGlqb3VqaXRhaVwgOwor5q2m6KOF6JyC6LW3IDwgYnVzb3Vob3VraVwgOwor5Y+y5paZ6aSoIDwgc2hpcnlvdWthblwgOwor5pyJ5aOw6Z+z5YyWIDwgeXV1c2Vpb25rYVwgOwor6KGA5bCP5p2/IDwga2Vzc2hvdWJhblwgOwor6LOq55qEIDwgc2hpdHN1dGVraVwgOwor6YeR6Imy5aCCIDwga29uamlraWRvdVwgOwor5ryi5pa56JasIDwga2FucG91eWFrdVwgOwor5L6h5YCk5Z+65rqWIDwga2FjaGlraWp1blwgOwor6Kq/55CG5Zmo5YW3IDwgY2hvdXJpa2lndVwgOwor56Cy54WZ5by+6ZuoIDwgaG91ZW5kYW4nJ3VcIDsKK+e/u+ios+WutiA8IGhvbicneWFrdWthXCA7CivlubPnrYnoprMgPCBieW91ZG91a2FuXCA7CivmpJzmn7vlrpggPCBrZW5zaG91a2FuXCA7CivlpInliIblraYgPCBoZW5idW5nYWt1XCA7CivliY3moL3niakgPCBzZW56YWltb25vXCA7CivlvLflo67liaQgPCBreW91c291emFpXCA7CivmtbfnlKPmpa0gPCBrYWlzYW5neW91XCA7CivppqzogLPmnbHpoqggPCBiYWppdG91ZnV1XCA7CivnjK7ntI3ogIUgPCBrZW4nJ25vdXNoYVwgOwor5YWt6YCj5pifIDwgcm9rdXJlbnNlaVwgOwor5qKU5a2QIDwga3VjaGluYXNoaVwgOwor5YuF6aGY5a+6IDwgY2hva3VnYW5qaVwgOwor5Lyd5p+T55eFIDwgZGVuc2VuYnlvdVwgOwor6amA5ZywIDwgbWFzc2hpZ3VyYVwgOwor5Lit6I+v6Y2LIDwgY2h1dWthbmFiZVwgOwor5aSp5LiK5bedIDwgdGVuam91Z2F3YVwgOwor5rSL6Iql5a2QIDwgeW91Z2FyYXNoaVwgOwor55qG5Yuk6LOeIDwga2Fpa2luc2hvdVwgOwor6YeR5bGe54mHIDwga2luem9rdWhlblwgOwor5aWH6KGT5birIDwga2lqdXRzdXNoaVwgOwor5aKX5Yqg546HIDwgem91a2FyaXRzdVwgOwor5qiZ5rqW5Z6LIDwgaHlvdWp1bmtlaVwgOwor6YeR6LWk6ImyIDwga2luJydha2Fpcm9cIDsKK+iyrOS7u+aEnyA8IHNla2luaW5rYW5cIDsKK+a3i+W3tOevgCA8IHJpbnBhc2V0c3VcIDsKK+S+m+eJqeWPsCA8IGt1bW90c3VkYWlcIDsKK+exs+WbveS6uiA8IGJlaWtva3VqaW5cIDsKK+etiea4qeW8jyA8IHRvdW9uc2hpa2lcIDsKK+WJjeS7u+iAhSA8IHplbicnbmluc2hhXCA7Civoo73pgKDlhYMgPCBzZWl6b3Vtb3RvXCA7Civmg4XloLHph48gPCBqb3Vob3VyeW91XCA7CivlubPooYznp7vli5UgPCBoZWlrb3VpZG91XCA7CivmtojogJflk4EgPCBzaG91bW91aGluXCA7CivkuKHmiYvliKkgPCByeW91dGVraWtpXCA7Civok4Tpm7vlmaggPCBjaGlrdWRlbmtpXCA7Civlr77op5Lnt5ogPCB0YWlrYWt1c2VuXCA7CivlsbHliIAgPCB5YW1hZ2F0YW5hXCA7CivkuIDmmankuK0gPCBoaXRvYmFuanV1XCA7CivkuIvpgZMgPCBzaGl0YW1pY2hpXCA7CivmmpfliaPmrrogPCBhbmtlbnNhdHN1XCA7CivpoK3otrPpoZ4gPCB0b3Vzb2t1cnVpXCA7CivlnKjmnbHkuqwgPCB6YWl0b3VreW91XCA7Civmo4ToqIDokYkgPCBzdXRla290b2JhXCA7CivlhY3nqI7ooaggPCBtZW56ZWloeW91XCA7Civlm73msJHmgKcgPCBrb2t1bWluc2VpXCA7Civoo5zliqnli5XoqZ4gPCBob2pvZG91c2hpXCA7CivlvavliLvlrrYgPCBjaG91a29rdWthXCA7CivkuI3our4gPCBidXNoaXRzdWtlXCA7CivnlJ/ljbUgPCBuYW1hdGFtYWdvXCA7Civoqq3mm7jnlYwgPCBkb2t1c2hva2FpXCA7CivpoqjolqwgPCBrYXplZ3VzdXJpXCA7Civmm7LoqqwgPCBreW9rdXNldHN1XCA7CivlsYXnlZnmsJEgPCBreW9yeXV1bWluXCA7CivkuLjoo7ggPCBtYXJ1aGFkYWthXCA7Civml4vlhYnop5IgPCBzZW5rb3VrYWt1XCA7Civpo6/nspIgPCBtZXNoaXRzdWJ1XCA7CivlsI/plpPkvb8gPCBrb21hZHp1a2FpXCA7Civop5Lohpzngo4gPCBrYWt1bWFrdWVuXCA7CivnjKvou4ogPCBuZWtvZ3VydW1hXCA7CivpsK3ohJrpoZ4gPCBraWt5YWt1cnVpXCA7CivpkZHorZjlrrYgPCBrYW5zaGlraWthXCA7CivoiIjooYzluKsgPCBrb3VneW91c2hpXCA7CivkuInotoogPCBtaXRzdWtvc2hpXCA7CivlrLblpKnkuIsgPCBrYWthYWRlbmthXCA7Civlm7rlvaLniakgPCBrb2tlaWJ1dHN1XCA7CivntKHnuL7ns7ggPCBib3VzZWtpaXRvXCA7CivlkKblrprlv5znrZQgPCBoaXRlaW91dG91XCA7CivlkJ3ll4flrrYgPCByaW5zaG9rdWthXCA7Civngrrmm7/lsLsgPCBrYXdhc2VqaXJpXCA7Civoqq3ogIXmrIQgPCBkb2t1c2hhcmFuXCA7Civlh7rkuJbkvZwgPCBzaHVzc2VzYWt1XCA7Civli5Xmkanmk6YgPCBkb3VtYXNhdHN1XCA7Civpg6jliIbpo58gPCBidWJ1bnNob2t1XCA7Civlh7rniYjms5UgPCBzaHVwcGFuaG91XCA7CivoqrLpoYzmm7IgPCBrYWRhaWt5b2t1XCA7CivlrqLmnIggPCBreWFrdWdldHN1XCA7CivmrrromavliaQgPCBzYXRjaHV1emFpXCA7CivoloTpm6rojYkgPCB1c3V5dWtpc291XCA7CivkurrkvZPlraYgPCBqaW50YWlnYWt1XCA7CivlubPln47kuqwgPCBoZWlqb3VreW91XCA7CivkuInop5LluL0gPCBzYW5rYWt1Ym91XCA7CivooZ3mkoPms6IgPCBzaG91Z2VraWhhXCA7Civoh6rlt7Hos4fmnKwgPCBqaWtvc2hpaG9uXCA7Civpg7XpgIHmlpkgPCB5dXVzb3VyeW91XCA7Civnn7Pngq3phbggPCBzZWtpdGFuc2FuXCA7CivlvoHmnI3ogIUgPCBzZWlmdWt1c2hhXCA7CivpoZTosowgPCBrYW9rYXRhY2hpXCA7Civpu4Tph5HmmYLku6MgPCBvdWdvbmppZGFpXCA7Civlkb3ku6TkuIDkuIsgPCBtZWlyZWlpa2thXCA7CivlvLfooYzou40gPCBreW91a291Z3VuXCA7CivntI3ku5jmnJ/pmZAgPCBub3VmdWtpZ2VuXCA7Civku6Pooajlm6MgPCBkYWloeW91ZGFuXCA7CivlsI/lhZDpurvnl7ogPCBzaG91bmltYWhpXCA7CivohJrmnKzlrrYgPCBreWFrdWhvbmthXCA7Civoj5PlrZDpiaIgPCBrYXNoaWJhY2hpXCA7Civnm7TlhobpjJAgPCBjaG9rdWVuc3VpXCA7CivlrqPkvJ3oqJjkuosgPCBzZW5kZW5raWppXCA7Civlh7rniYjmqKkgPCBzaHVwcGFua2VuXCA7Civlho3mnI3lvbkgPCBzYWlmdWt1ZWtpXCA7CivnlJ/mlL7pgIEgPCBuYW1haG91c291XCA7CivoqIjnrpflsLogPCBrZWlzYW5qYWt1XCA7CivlpI/lraPkvJHmmocgPCBrYWtpa3l1dWthXCA7CivpgJrli6TogIUgPCB0c3V1a2luc2hhXCA7CivkuIDloYHnt5ogPCBpY2hpcnVpc2VuXCA7Civoh6jmmYLmlL/lupwgPCByaW5qaXNlaWZ1XCA7CivlsLrlhasgPCBzaGFrdWhhY2hpXCA7CivmtrLph4/oqIggPCBla2lyeW91a2VpXCA7CivkuInml6XkuInmmakgPCBtaWtrYW1pYmFuXCA7CivliIfmlK/kuLkgPCBraXJpc2hpdGFuXCA7Civpl4fluILloLQgPCB5YW1pc2hpam91XCA7CivmnbHnlLcgPCBhenVtYW90b2tvXCA7CivpmpzlrrPogIUgPCBzaG91Z2Fpc2hhXCA7CivosrTml4/nmoQgPCBraXpva3V0ZWtpXCA7CivljbDliLfkurogPCBpbnNhdHN1bmluXCA7Civmtbfos4roiLkgPCBrYWl6b2t1c2VuXCA7Civmir3osaHljJYgPCBjaHV1c2hvdWthXCA7CivorJvnv5LkvJogPCBrb3VzaHV1a2FpXCA7CivmhJvnjqnniakgPCBhaWdhbmJ1dHN1XCA7Civpurvpm4DlsYsgPCBtYXplamFuJyd5YVwgOwor5Lyd5p+T5q+SIDwgZGVuc2VuZG9rdVwgOwor54Sh55CG6Zuj6aGMIDwgbXVyaW5hbmRhaVwgOwor5LuW5Zu96ICFIDwgdGFrb2t1bW9ub1wgOwor5LqI5YKZ6KOF572uIDwgeW9iaXNvdWNoaVwgOwor5p6c5qi55qC95Z+5IDwga2FqdXNhaWJhaVwgOwor6YeN5bGk55qEIDwganV1c291dGVraVwgOwor6LOq5qi4IDwgc2hpdHN1Ym9rdVwgOwor5LqU6YeN5aGUIDwgZ29qdXVub3RvdVwgOwor5LiL57Sa5a+pIDwga2FreXV1c2hpblwgOwor6IKY5p6VIDwgaGlqaW1ha3VyYVwgOwor57KX6KGj57KX6aOfIDwgc29pc29zaG9rdVwgOwor5L2O5omA5b6XIDwgdGVpc2hvdG9rdVwgOwor5LuP5ruFIDwgYnV0c3VtZXRzdVwgOwor5bCC6ZaA56ugIDwgc2VubW9uc2hvdVwgOwor6Yuz6YCg5omAIDwgY2h1dXpvdXNob1wgOwor55+t5pmC5pelIDwgdGFuamlqaXRzdVwgOwor5LyR5qWt5pelIDwga3l1dWd5b3ViaVwgOwor5YWI56uv55qEIDwgc2VudGFudGVraVwgOwor5Lq65rCR5aeU5ZOhIDwgamlubWluJydpaW5cIDsKK+WWp+WYqeiFsCA8IGtlbmthZ29zaGlcIDsKK+iNieWPjOe0mSA8IGt1c2F6b3VzaGlcIDsKK+epuuaDs+eahCA8IGt1dXNvdXRla2lcIDsKK+mjveWSjOiSuOawlyA8IGhvdXdham91a2lcIDsKK+mbqumBlOejqCA8IHl1a2lkYXJ1bWFcIDsKK+WMueWkq+WMueWppiA8IGhpcHB1aGlwcHVcIDsKK+WGheS6pOa4iSA8IG5haWtvdXNob3VcIDsKK+W6g+WRiuekviA8IGtvdWtva3VzaGFcIDsKK+Wwj+WMhSA8IGtvZHp1dHN1bWlcIDsKK+WvhuWvhiA8IG1pdHN1bWl0c3VcIDsKK+S6jOWIhumfs+espiA8IG5pYnVuJydvbnB1XCA7Civosqjnianpp4UgPCBrYW1vdHN1ZWtpXCA7CivljYPms6LkuIfms6IgPCBzZW5wYWJhbnBhXCA7CivosqfkuY/nsaQgPCBiaW5ib3VndWppXCA7Civlr77oqbHlvI8gPCB0YWl3YXNoaWtpXCA7CivlsLHkuK0gPCBuYWthbmR6dWt1XCA7CivlhbHnlKPou40gPCBreW91c2FuZ3VuXCA7CivkuIrok4YgPCB1d2FtdXNoaXJvXCA7CivkuI3mib/oq74gPCBmdXNob3VkYWt1XCA7CivmsYLkurroqowgPCBreXV1amluc2hpXCA7Civpnq3mr5vomasgPCBiZW5tb3VjaHV1XCA7CivnsKHljZjmnI0gPCBrYW50YW5mdWt1XCA7Civpu5LnqYLnl4UgPCBrdXJvaG9ieW91XCA7CivohLHlipsgPCBkYXRzdXJ5b2t1XCA7Civos6rmnK0gPCBzaGljaGlmdWRhXCA7CivliIbmi4XpoY0gPCBidW50YW5nYWt1XCA7CivnlbDluLjnmbrnlJ8gPCBpam91aGFzc2VpXCA7Civmsrvlronpg6jpmoogPCBjaGlhbmJ1dGFpXCA7CivlpKrpmb3omasgPCB0YWl5b3VjaHV1XCA7CivmmqvlrprnmoQgPCB6YW50ZWl0ZWtpXCA7Civku6PooajkvosgPCBkYWloeW91cmVpXCA7CivkuInoj7EgPCBtaXRzdWJpc2hpXCA7CivliIPlgrfmspnmsbAgPCBuaW5qb3V6YXRhXCA7CivlkIzlm73msJEgPCBkb3Vrb2t1bWluXCA7CivoqJjlv7XniakgPCBraW5lbmJ1dHN1XCA7Civml6fkvZPliLYgPCBreXV1dGFpc2VpXCA7Civku67mnpUgPCBrYXJpbWFrdXJhXCA7CivljZfmtIvmnZAgPCBuYW4nJ3lvdXphaVwgOwor6Z2e5bi45Y+jIDwgaGlqb3VndWNoaVwgOwor5LiK6KGo57SZIDwgdXdhYnlvdXNoaVwgOwor6Z2i55m95ZGzIDwgb21vc2hpcm9taVwgOwor5L+d5a2Y6aOfIDwgaG96b25zaG9rdVwgOwor5LiN5rS75oCn5YyWIDwgZnVrYXNzZWlrYVwgOwor5Y2K5oSP6K2YIDwgaGFuJydpc2hpa2lcIDsKK+S+m+WHuiA8IGt5b3VzaHV0c3VcIDsKK+WuruWupCA8IGt5dXVzaGl0c3VcIDsKK+acrOiqv+WtkCA8IGhvbmNob3VzaGlcIDsKK+e5lOWls+aYnyA8IHNob2t1am9zZWlcIDsKK+aYpemcniA8IGhhcnVnYXN1bWlcIDsKK+WwgumWgOeahCA8IHNlbm1vbnRla2lcIDsKK+mjn+eJqSA8IHNob2t1bW90c3VcIDsKK+WgseWEn+mHkSA8IGhvdXNob3VraW5cIDsKK+aTsuW8vuetkiA8IHRla2lkYW50b3VcIDsKK+iyp+S5j+elniA8IGJpbmJvdWdhbWlcIDsKK+aYlOmiqCA8IG11a2FzaGlmdXVcIDsKK+Wkp+e1semgmCA8IGRhaXRvdXJ5b3VcIDsKK+mHj+WtkOirliA8IHJ5b3VzaGlyb25cIDsKK+S4reWKm+eyiSA8IGNodXVyaWtpa29cIDsKK+WuneWztiA8IHRha2FyYWppbWFcIDsKK+W3peS6i+ePvuWgtCA8IGtvdWppZ2VuYmFcIDsKK+ecvOmPoeeMvyA8IG1lZ2FuZXphcnVcIDsKK+S7j+anmCA8IGhvdG9rZXNhbWFcIDsKK+iEmuWKmyA8IGt5YWt1cnlva3VcIDsKK+alreeVjOe0mSA8IGd5b3VrYWlzaGlcIDsKK+mdnuWFrOW8jyA8IGhpa291c2hpa2lcIDsKK+awtOWFteacjSA8IHN1aWhlaWZ1a3VcIDsKK+iyr+acqOWgtCA8IGNob2Jva3Vqb3VcIDsKK+air+WtkOautSA8IGhhc2hpZ29kYW5cIDsKK+W9k+ats+mnkiA8IHRvdXNhaWdvbWFcIDsKK+Wul+aVmeWutiA8IHNodXVreW91a2FcIDsKK+eglOeptuWumCA8IGtlbmt5dXVrYW5cIDsKK+auieaVmeiAhSA8IGp1bmt5b3VzaGFcIDsKK+auiembo+iAhSA8IGp1bicnbmFuc2hhXCA7Civlo4HoqLToqJ8gPCBrYWJlem9zaG91XCA7CivkuIvogbcgPCBzaGl0YXNob2t1XCA7Civoh6rlt7HlrqPkvJ0gPCBqaWtvc2VuZGVuXCA7CivnjonmlbTnkIYgPCBneW9rdXNlaXJpXCA7CivojKjln47nnIwgPCBpYmFyYWtpa2VuXCA7CivlsYjmm7Lpg6ggPCBrdWtreW9rdWJ1XCA7CivmtojpmLLpmoogPCBzaG91Ym91dGFpXCA7CivmnKfmmIbluIMgPCBvYm9yb2tvbmJ1XCA7CivmsJfnrqHmlK/ngo4gPCBraWthbnNoaWVuXCA7CivnnIvnl4XkurogPCBrYW5ieW91bmluXCA7CivoirHpm7vou4ogPCBoYW5hZGVuc2hhXCA7CivlnLDmloflraYgPCBjaGltb25nYWt1XCA7Civlj6Pkvpvmm7ggPCBrb3VreW91c2hvXCA7Civmm7LnrYYgPCBreW9rdWhpdHN1XCA7CivmiYvliY3li53miYsgPCB0ZW1hZWdhdHRlXCA7Civkv53lrojkuLvnvqkgPCBob3NodXNodWdpXCA7CivojYnph47nkIMgPCBrdXNheWFreXV1XCA7CivmpJzkuovlsYAgPCBrZW5qaWt5b2t1XCA7CivmnKjnq6/lvq7lobUgPCBrb3BwYW1pamluXCA7Civlha3ovrrlvaIgPCByb2t1aGVua2VpXCA7CivmrbvkuqHoqJjkuosgPCBzaGlib3VraWppXCA7Civoqq3ogIXlsaQgPCBkb2t1c2hhc291XCA7Civlgqzkv4PnirYgPCBzYWlzb2t1am91XCA7Civlgr7mlpzop5IgPCBrZWlzaGFrYWt1XCA7CivpgY7libDliKnnm4ogPCBrYWpvdXJpZWtpXCA7Civlj47nm6PnirYgPCBzaHV1a2Fuam91XCA7CivlnLDpnIflraYgPCBqaXNoaW5nYWt1XCA7CivlnKjkuJbkuK0gPCB6YWlzZWljaHV1XCA7CivlpaXluqfmlbcgPCBva3V6YXNoaWtpXCA7CivkuIDnuo8gPCBoaXRvbWF0b21lXCA7Civnvo7ooZPppKggPCBiaWp1dHN1a2FuXCA7CivoqLHlrrnph48gPCBreW95b3VyeW91XCA7CivlpbPlsIrnlLfljZEgPCBqb3NvbmRhbnBpXCA7CivlsITmkoPloLQgPCBzaGFnZWtpam91XCA7CivlvozlpKnnmoQgPCBrb3V0ZW50ZWtpXCA7Civpp5Dlsa/lnLAgPCBjaHV1dG9uY2hpXCA7Civpo6/mq4MgPCBtZXNoaWJpdHN1XCA7CivohLPmuqLooYAgPCBub3Vpa2tldHN1XCA7CivlrZjlkb3kuK0gPCB6b25tZWljaHV1XCA7Civns7vliJfljJYgPCBrZWlyZXRzdWthXCA7Civlh7rniYjlsYsgPCBzaHVwcGFuJyd5YVwgOwor5a+p576O55qEIDwgc2hpbmJpdGVraVwgOwor5oGS5LmF5oCnIDwga291a3l1dXNlaVwgOwor6LKd5p+xIDwga2FpYmFzaGlyYVwgOwor54mH6LK/5piTIDwga2F0YWJvdWVraVwgOwor5paH54yu5a2mIDwgYnVua2VuZ2FrdVwgOwor5Y2B5LqM5Y2Y6KGjIDwganV1bmloaXRvZVwgOwor5pmC5Luj6ImyIDwgamlkYWlzaG9rdVwgOwor5YiG6Zui6Kqy56iOIDwgYnVucmlrYXplaVwgOwor5aSn5aSn55qEIDwgZGFpZGFpdGVraVwgOwor5LqM6YeN5qmLIDwgbmlqdXViYXNoaVwgOwor5Zyw6KqM5a2mIDwgY2hpc2hpZ2FrdVwgOwor5YyW5a2m55qEIDwga2FnYWt1dGVraVwgOwor5puy55u0IDwga3lva3VjaG9rdVwgOwor6IKJ5by+5oimIDwgbmlrdWRhbnNlblwgOwor5LiA57WD55C0IDwgaWNoaWdlbmtpblwgOwor6YGK54mn5rCRIDwgeXV1Ym9rdW1pblwgOwor5Li455OmIDwgbWFydWdhd2FyYVwgOwor5qC45a6f6aiTIDwga2FrdWppa2tlblwgOwor6LKo54mp6LuKIDwga2Ftb3RzdXNoYVwgOwor5Lu75oSP5o2c5p+7IDwgbmluJydpc291c2FcIDsKK+axguS6uuiAhSA8IGt5dXVqaW5zaGFcIDsKK+S4g+eriCA8IG5hbmFrYW1hZG9cIDsKK+WcsOmch+WbvSA8IGppc2hpbmtva3VcIDsKK+WxheeVmeWcsCA8IGt5b3J5dXVjaGlcIDsKK+S4iuS9jeamguW/tSA8IGpvdWlnYWluZW5cIDsKK+manOWtkOe0mSA8IHNob3VqaWdhbWlcIDsKK+iInuWPsOmBk+WFtyA8IGJ1dGFpZG91Z3VcIDsKK+a9nOWHveeXhSA8IHNlbmthbmJ5b3VcIDsKK+S4gOeptCA8IGhpdG90c3VhbmFcIDsKK+W8leeOh+iAhSA8IGluc290c3VzaGFcIDsKK+S4iuaYoOaZgumWkyA8IGpvdWVpamlrYW5cIDsKK+Wtq+WomCA8IG1hZ29tdXN1bWVcIDsKK+a1t+iziueJiCA8IGthaXpva3ViYW5cIDsKK+S/oeS7sOiAhSA8IHNoaW5rb3VzaGFcIDsKK+a2iOmYsui7iiA8IHNob3Vib3VzaGFcIDsKK+S4ieetieizniA8IHNhbnRvdXNob3VcIDsKK+eEoeitpuWvnyA8IG11a2Vpc2F0c3VcIDsKK+S7j+aApyA8IGhvdG9rZXNob3VcIDsKK+mdmemdmSA8IHNoaXp1c2hpenVcIDsKK+W9qeiJsueUuyA8IHNhaXNob2t1Z2FcIDsKK+WLp+WRiuiAhSA8IGthbmtva3VzaGFcIDsKK+ioiOWZqOmjm+ihjCA8IGtlaWtpaGlrb3VcIDsKK+Wun+WKmyA8IGppdHN1cnlva3VcIDsKK+absueOhyA8IGt5b2t1cml0c3VcIDsKK+Wkp+m8kyA8IG9vdHN1ZHp1bWlcIDsKK+W6g+WRiuashCA8IGtvdWtva3VyYW5cIDsKK+iznumHkeeOiyA8IHNob3VraW4nJ291XCA7CivmiKbngb3lraTlhZAgPCBzZW5zYWlrb2ppXCA7CivpgJrnn6XnirYgPCB0c3V1Y2hpam91XCA7Civlt6XkvZzlk4EgPCBrb3VzYWt1aGluXCA7CivlnLDmlL/lraYgPCBjaGlzZWlnYWt1XCA7CivlpKrpmb3npZ4gPCB0YWl5b3VzaGluXCA7Civntpnmib/ogIUgPCBrZWlzaG91c2hhXCA7Civln7rmnKzljp/nkIYgPCBraWhvbmdlbnJpXCA7CivkubPoo73lk4EgPCBueXV1c2VpaGluXCA7Civni5DoibIgPCBraXRzdW5laXJvXCA7CivpgYrmkoPpmoogPCB5dXVnZWtpdGFpXCA7CivljZHmgK/ogIUgPCBoaWt5b3Vtb25vXCA7Civlho3mlZnogrIgPCBzYWlreW91aWt1XCA7Civlm73lhoXnt5ogPCBrb2t1bmFpc2VuXCA7CivlmZvnhZnojYkgPCBrYW1pdGFiYWtvXCA7CivkuIDnnaEgPCBoaXRvbmVtdXJpXCA7CivmhYjlloTluIIgPCBqaXplbicnaWNoaVwgOwor5Zue5oOz6YyyIDwga2Fpc291cm9rdVwgOwor5aSW5Lqk55qEIDwgZ2Fpa291dGVraVwgOwor5oOF5oSP5oqV5ZCIIDwgam91aXRvdWdvdVwgOwor5LiL55S6IDwgc2hpdGFtYWNoaVwgOwor566h55CG5qmf6IO9IDwga2FucmlraW5vdVwgOwor5Lq65b+DIDwgaGl0b2dva29yb1wgOwor5L+u55CG5LitIDwgc2h1dXJpY2h1dVwgOwor6Ieo5pmC6KiY5Y+3IDwgcmluamlraWdvdVwgOwor5LiJ562J6KaqIDwgc2FudG91c2hpblwgOwor5Zyw6KGo6Z2iIDwgY2hpaHlvdW1lblwgOwor5bmy5riJ6KiIIDwga2Fuc2hvdWtlaVwgOwor56CU56m25LyaIDwga2Vua3l1dWthaVwgOwor6IKW5YOP5qipIDwgc2hvdXpvdWtlblwgOwor5LiD55SfIDwgc2hpY2hpc2hvdVwgOwor5YW15b255b+M6YG/IDwgaGVpZWtpa2loaVwgOwor54eV6bqmIDwga2FyYXN1bXVnaVwgOwor5b255LiN6LazIDwgeWFrdWJ1c29rdVwgOwor5LiA55WqIDwgaGl0b3RzdWdhaVwgOwor5rOo5oSP5YqbIDwgY2h1dWlyeW9rdVwgOwor6IW55LiK5q27IDwgZnVrdWpvdXNoaVwgOwor57eo6ZuG6ICFIDwgaGVuc2h1dXNoYVwgOwor5bqD5ZGK5p2/IDwga291a29rdWJhblwgOwor5riJ56a96aGeIDwgc2hvdWtpbnJ1aVwgOwor5YCS6Yyv6ICFIDwgdG91c2FrdXNoYVwgOwor5rC055ax55ihIDwgbWl6dWJvdXNvdVwgOwor5bmz562J5qipIDwgYnlvdWRvdWtlblwgOwor5aSn6ZyH54G9IDwgZGFpc2hpbnNhaVwgOwor6YeN55eH5L6LIDwganV1c2hvdXJlaVwgOwor5Zyw5Z+f55qEIDwgY2hpaWtpdGVraVwgOwor5YWx55Sj57O7IDwga3lvdXNhbmtlaVwgOwor6ZaL6ZaJ5qmLIDwga2FpaGVpa3lvdVwgOwor5oim5LqJ5pig55S7IDwgc2Vuc291ZWlnYVwgOwor6Zmz5oOF5pu4IDwgY2hpbmpvdXNob1wgOwor6LKh5pS/5Y2x5qmfIDwgemFpc2Vpa2lraVwgOwor5oqV5qmf54axIDwgdG91a2luZXRzdVwgOwor5pyJ6ZmQ6Iqx5bqPIDwgeXV1Z2Vua2Fqb1wgOwor54mp6KqeIDwgbW9ub2dhdGFyaVwgOwor5YaX6KuH5LqLIDwgam91ZGFua290b1wgOwor5pyA6auY57SaIDwgc2Fpa291a3l1dVwgOwor5oCd5oOR5birIDwgb21vd2FrdXNoaVwgOwor5aWz6YGUIDwgb24nJ25hdGFjaGlcIDsKK+ilv+aXpeacrCA8IG5pc2hpbmlob25cIDsKK+i/keS7o+eahCA8IGtpbmRhaXRla2lcIDsKK+i2heWkp+WeiyA8IGNob3Vvb2dhdGFcIDsKK+egleawt+iIuSA8IHNhaWh5b3VzZW5cIDsKK+a8gealreazlSA8IGd5b2d5b3Vob3VcIDsKK+acp+aciCA8IG9ib3JvZHp1a2lcIDsKK+acquino+axuiA8IG1pa2Fpa2V0c3VcIDsKK+eJh+i3myA8IGthdGFjaGluYmFcIDsKK+i7jeS6i+WfuuWcsCA8IGd1bmppa2ljaGlcIDsKK+W3qOS6uuWbvSA8IGt5b2ppbmtva3VcIDsKK+acgOWwj+mZkCA8IHNhaXNob3VnZW5cIDsKK+acq+aXpSA8IG1hdHN1aml0c3VcIDsKK+WFrOWFseaApyA8IGtvdWt5b3VzZWlcIDsKK+S4jeato+S6i+S7tiA8IGZ1c2VpamlrZW5cIDsKK+WHuuadpeasoeesrCA8IGRla2lzaGlkYWlcIDsKK+W3peWtpuWjqyA8IGtvdWdha3VzaGlcIDsKK+mFkumAoOalrSA8IHNodXpvdWd5b3VcIDsKK+WkieS9k+S7ruWQjSA8IGhlbnRhaWdhbmFcIDsKK+iJsumJm+ethiA8IGlyb2VucGl0c3VcIDsKK+acm+aciCA8IG1vY2hpZHp1a2lcIDsKK+iLsembhOS4u+e+qSA8IGVpeXV1c2h1Z2lcIDsKK+eBq+aJk+efsyA8IGhpdWNoaWlzaGlcIDsKK+mGuOmAoOalrSA8IGpvdXpvdWd5b3VcIDsKK+Wkp+mavCA8IG9vaGF5YWJ1c2FcIDsKK+WNmOecvOmPoSA8IHRhbmdhbmt5b3VcIDsKK+eXtOipseWWp+WYqSA8IGNoaXdhZ2Vua2FcIDsKK+a8gealreaoqSA8IGd5b2d5b3VrZW5cIDsKK+efs+eBr+exoCA8IGlzaGlkb3Vyb3VcIDsKK+WNl+awt+a0iyA8IG5hbnB5b3V5b3VcIDsKK+mxiOWgtOifuSA8IHRhcmFiYWdhbmlcIDsKK+WyoeWxseecjCA8IG9rYXlhbWFrZW5cIDsKK+eDj+acieWFiOeUnyA8IHV5dXVzZW5zZWlcIDsKK+e0oee4vuW3pSA8IGJvdXNla2lrb3VcIDsKK+i1t+eIhuiWrCA8IGtpYmFrdXlha3VcIDsKK+eiuuiqjeabuCA8IGtha3VuaW5zaG9cIDsKK+aGsuazlemBleWPjSA8IGtlbnBvdWloYW5cIDsKK+Wbnui7ouakheWtkCA8IGthaXRlbicnaXN1XCA7CivoqpXnlJ/nn7MgPCB0YW5qb3VzZWtpXCA7CivpmLLoh63liaQgPCBib3VzaHV1emFpXCA7CivpjKvoo73lk4EgPCBzdXp1c2VpaGluXCA7CivmnIjmnIggPCB0c3VraWR6dWtpXCA7CivosqjnianoiLkgPCBrYW1vdHN1c2VuXCA7CivkuIDloYHmiYsgPCBpY2hpcnVpc2h1XCA7CivohJrnt5rnvo4gPCBreWFrdXNlbmJpXCA7Civog73nmbvljYrls7YgPCBub3RvaGFudG91XCA7CivliqPmgKfpgbrkvJ0gPCByZXNzZWlpZGVuXCA7CivmnInkvqHniakgPCB5dXVrYWJ1dHN1XCA7Civoq4vosqDliLbluqYgPCB1a2VvaXNlaWRvXCA7CivmpI3nlJ/lm7MgPCBzaG9rdXNlaXp1XCA7CivkuIDmuKEgPCBoaXRvd2F0YXJpXCA7Civnmbrmg4XmnJ8gPCBoYXRzdWpvdWtpXCA7Civnmb3msLTnpL4gPCBoYWt1c3Vpc2hhXCA7CivmsLTou4rlsI/lsYsgPCBzdWlzaGFnb3lhXCA7CivmjqHnrpfmoKogPCBzYWlzYW5rYWJ1XCA7CivopJDmr5vlkoznqK4gPCBha2FnZXdhc2h1XCA7CivplbfkuIHloLQgPCBuYWdhY2hvdWJhXCA7Civlpr7ohbkgPCBtZWtha2ViYXJhXCA7CivmnInlrZTomasgPCB5dXVrb3VjaHV1XCA7Civlm7rlrprosqDlgrUgPCBrb3RlaWZ1c2FpXCA7CivlpKnnhLbnl5ggPCB0ZW4nJ25lbnRvdVwgOwor5L6d6aGY5YWN5a6YIDwgaWdhbm1lbmthblwgOwor5Zub5ouN5a2QIDwgeW9uYnlvdXNoaVwgOwor5YaX6ZW357O7IDwgam91Y2hvdWtlaVwgOwor5pel5pys5byPIDwgbmlob25zaGlraVwgOwor5rqA5bm06b2iIDwgbWFuJyduZW5yZWlcIDsKK+a2iOmYsuiJhyA8IHNob3Vib3V0ZWlcIDsKK+Wwj+a2suiDniA8IHNob3Vla2lob3VcIDsKK+mmluWUseiAhSA8IHNodXNob3VzaGFcIDsKK+mbsumcniA8IGt1bW9rYXN1bWlcIDsKK+aXpeacrOW5syA8IG5paG9uZGFpcmFcIDsKK+mdqeiiiyA8IGthd2FidWt1cm9cIDsKK+mJhOmdoueariA8IHRldHN1bWVucGlcIDsKK+S4u+aoqeWbvSA8IHNodWtlbmtva3VcIDsKK+iyt+aOm+mHkSA8IGthaWtha2VraW5cIDsKK+efs+eBsOefsyA8IHNla2thaXNla2lcIDsKK+exs+WVj+WxiyA8IGtvbWVkb24nJ3lhXCA7CivmgJ3mg7PliocgPCBzaGlzb3VnZWtpXCA7CivkuIflm73msJEgPCBiYW5rb2t1bWluXCA7Civli6flkYrnirYgPCBrYW5rb2t1am91XCA7CivmlZfljJfmhJ8gPCBoYWlib2t1a2FuXCA7Civlr4bovLjoiLkgPCBtaXRzdXl1c2VuXCA7Civlh7rmnaXkuI3lh7rmnaUgPCBkZWtpZnVkZWtpXCA7Civlj6/lpInnv7wgPCBrYWhlbicneW9rdVwgOwor5pS/5bqc5qmf6ZaiIDwgc2VpZnVraWthblwgOwor5YGP6aCt55ebIDwgaGVudG91dHN1dVwgOwor5bm06b2i57WmIDwgbmVucmVpa3l1dVwgOwor6YCP56OB546HIDwgdG91amlyaXRzdVwgOwor5LqL5Lu26KiY6ICFIDwgamlrZW5raXNoYVwgOwor5bmz5a6J5b6M5pyfIDwgaGVpYW5rb3VraVwgOwor5Y6E5LuL5LqLIDwgeWFra2FpZ290b1wgOwor5LyP5bCE5r+gIDwgZnVrdXNoYWdvdVwgOwor5p6Q5Ye6IDwgc2VraXNodXRzdVwgOwor5oe45aOF5Z6CIDwga2VuJyd5b3VzdWlcIDsKK+eVjOejgealtSA8IGthaWppa3lva3VcIDsKK+W/nOeUqOWKmyA8IG91eW91cnlva3VcIDsKK+aXpeabnOaXpSA8IG5pY2hpeW91YmlcIDsKK+a2iOmYsue9siA8IHNob3Vib3VzaG9cIDsKK+mbh+eUqOS/nemZuiA8IGtveW91aG9rZW5cIDsKK+iyp+S5j+aApyA8IGJpbmJvdXNob3VcIDsKK+aguOW0qeWjiiA8IGtha3Vob3VrYWlcIDsKK+S4jea9lOaEnyA8IGZ1a2V0c3VrYW5cIDsKK+aVsOWtpuiAhSA8IHN1dWdha3VzaGFcIDsKK+iBtOWPluiAhSA8IGNob3VzaHVzaGFcIDsKK+iqreabuOS6uiA8IGRva3VzaG9qaW5cIDsKK+S/neitt+iyv+aYkyA8IGhvZ29ib3Vla2lcIDsKK+WJjeS7u+WcsCA8IHplbicnbmluY2hpXCA7CivmvIHoibLlrrYgPCBneW9zaG9rdWthXCA7CivkuJbnlYzliLbopocgPCBzZWthaXNlaWhhXCA7Civoo73kvZzogIUgPCBzZWlzYWt1c2hhXCA7CivkuI3mnZ8gPCBmdXRzdXRzdWthXCA7CivmsqHlgIvmgKcgPCBib3RzdWtvc2VpXCA7CivnhKHmqZ/ogqXmlpkgPCBtdWtpaGlyeW91XCA7CivlhajlupfkuK0gPCB6ZW50ZW5jaHV1XCA7Civpq5jph47osYbohZAgPCBrb3V5YWRvdWZ1XCA7Civlrpjntablk4EgPCBrYW5reXV1aGluXCA7Civnmb3ph5Hml48gPCBoYWtraW56b2t1XCA7CivlpKnmloflraYgPCB0ZW5tb25nYWt1XCA7CivlhbXlrabogIUgPCBoZWlnYWt1c2hhXCA7CivlkIjllLHpmoogPCBnYXNzaG91dGFpXCA7Civku6PorbDmlL/msrsgPCBkYWlnaXNlaWppXCA7CivkuI3miJDnq4sgPCBmdXNlaXJpdHN1XCA7CivnjKvmn7MgPCBuZWtveWFuYWdpXCA7CivnjK7ntI3lk4EgPCBrZW4nJ25vdWhpblwgOwor57Sw57KS5YiGIDwgc2Fpcnl1dWJ1blwgOwor5oSP6aas5b+D54y/IDwgaWJhc2hpbicnZW5cIDsKK+eMm+e3tOe/kiA8IG1vdXJlbnNodXVcIDsKK+S6pOmAmumBuuWFkCA8IGtvdXRzdXVpamlcIDsKK+S+i+WklueahCA8IHJlaWdhaXRla2lcIDsKK+WKueeOh+WMliA8IGtvdXJpdHN1a2FcIDsKK+mZpOiZq+iPiiA8IGpvY2h1dWdpa3VcIDsKK+e0heeUn+WnnCA8IGJlbmlzaG91Z2FcIDsKK+W5suaLk+WcsCA8IGthbnRha3VjaGlcIDsKK+WHjeWCt+iAhSA8IHRvdXNob3VzaGFcIDsKK+WQjOWbveS6uiA8IGRvdWtva3VqaW5cIDsKK+ebrueahOiqniA8IG1va3V0ZWtpZ29cIDsKK+iyuOS7mCA8IGthc2hpdHN1a2VcIDsKK+S4ieWbveW/lyA8IHNhbmdva3VzaGlcIDsKK+S6uueJqeeUuyA8IGppbmJ1dHN1Z2FcIDsKK+WQuOWFpeWZqCA8IGt5dXVueXV1a2lcIDsKK+mYsuWvkuacjSA8IGJvdWthbmZ1a3VcIDsKK+S/rumZoumVtyA8IHNodXVpbmNob3VcIDsKK+WbveWGheazlSA8IGtva3VuYWlob3VcIDsKK+aOoueptuiAhSA8IHRhbmt5dXVzaGFcIDsKK+WIneW/g+iAhSA8IHNob3NoaW5zaGFcIDsKK+eLuOaxgSA8IHRhbnVraWppcnVcIDsKK+acqumWi+eZuiA8IG1pa2FpaGF0c3VcIDsKK+W6g+WRiuWhlCA8IGtvdWtva3V0b3VcIDsKK+mWi+aLk+iAhSA8IGthaXRha3VzaGFcIDsKK+S6uumhnuWtpiA8IGppbnJ1aWdha3VcIDsKK+efpeaXpea0viA8IGNoaW5pY2hpaGFcIDsKK+acgOmrmOa9riA8IHNhaWtvdWNob3VcIDsKK+WkqeeEtua4ryA8IHRlbicnbmVua291XCA7Civlj43pgIblhZAgPCBoYW5neWFrdWppXCA7CivkuIDlm73ogIUgPCBpa2tva3Vtb25vXCA7Civlpb3mnZDmlpkgPCBrb3V6YWlyeW91XCA7CivlpKrpmb3mmqYgPCB0YWl5b3VyZWtpXCA7CivluLjnlKjnmZYgPCBqb3V5b3VoZWtpXCA7Civml6nmlZnogrIgPCBzb3VreW91aWt1XCA7CivmoLzlrZDnuJ4gPCBrb3VzaGlqaW1hXCA7Civlj43ou43nmoQgPCBoYW5ndW50ZWtpXCA7CivolqzljIXntJkgPCB5YWt1aG91c2hpXCA7CivlhbXmm7nplbcgPCBoZWlzb3VjaG91XCA7CivmvKLmloflraYgPCBrYW5idW5nYWt1XCA7CivmgKXlhYjpi5IgPCBreXV1c2VucG91XCA7CivkuI3mirEgPCBrYWthd2FyYXp1XCA7Civlj6PlpYfpupcgPCBrdWNoaWdpcmVpXCA7CivooYzmlL/ms5UgPCBneW91c2VpaG91XCA7CivpgIHph5HpoY0gPCBzb3VraW5nYWt1XCA7CivmsYLlqZrogIUgPCBreXV1a29uc2hhXCA7Civlho3oqr/mlbQgPCBzYWljaG91c2VpXCA7Civpoqjopovpto8gPCBrYXphbWlkb3JpXCA7Civln7fmlL/lrpggPCBzaGlzc2Vpa2FuXCA7Civog73mpb3loIIgPCBub3VnYWt1ZG91XCA7Civlpb3kuIvniakgPCBrb3VrYWJ1dHN1XCA7Civlj4znmbrmqZ8gPCBzb3VoYXRzdWtpXCA7Civpgbrmo4TosqjniakgPCBpa2lrYW1vdHN1XCA7CivlhazlhbHlgrUgPCBrb3VreW91c2FpXCA7CivmmKjlubTmnaUgPCBzYWt1bmVucmFpXCA7Civmj5DkvpvogIUgPCB0ZWlreW91c2hhXCA7CivphrjpgKDlraYgPCBqb3V6b3VnYWt1XCA7CivkuIDmiYAgPCBoaXRvdG9rb3JvXCA7CivlvpfngrnlnI8gPCB0b2t1dGVua2VuXCA7Civngq3ljJbmsLTntKAgPCB0YW5rYXN1aXNvXCA7Civlr6nnvo7lraYgPCBzaGluYmlnYWt1XCA7CivlpbPkvr/miYAgPCBvbicnbmFiZW5qb1wgOwor5ZGJ5pyN54mpIDwgZ29mdWt1bW9ub1wgOwor55eH5YCZ576kIDwgc2hvdWtvdWd1blwgOwor5Zuy56KB5LiJ57SaIDwgaWdvc2Fua3l1dVwgOwor55Sj5amm5Lq656eRIDwgc2FuZnVqaW5rYVwgOwor5puy5bC6IDwga3lva3VzaGFrdVwgOwor5qC85a2Q56qTIDwga291c2hpbWFkb1wgOwor5paH5piO5Zu9IDwgYnVubWVpa29rdVwgOwor6KGM5pS/5qipIDwgZ3lvdXNlaWtlblwgOwor6YeR5pyo54qAIDwga2lubW9rdXNlaVwgOwor55CG5oOz5Li7576pIDwgcmlzb3VzaHVnaVwgOwor5Y2B5a2X56Cy54GrIDwganV1amlob3VrYVwgOwor6Zuq6LOqIDwgeXVraXNoaXRzdVwgOwor6YO96YGT5bqc55yMIDwgdG9kb3VmdWtlblwgOwor6bqd6aaZ6LGM6LGGIDwgamFrb3VlbmRvdVwgOwor5omL5pyt5Z6LIDwgdGVmdWRhZ2F0YVwgOwor5YWo6Iis55qEIDwgemVucGFudGVraVwgOwor54m55q6K6Yu8IDwgdG9rdXNodWtvdVwgOwor5Zyn57iu5oCnIDwgYXNzaHVrdXNlaVwgOwor55uy5ZSW5a2m5qChIDwgbW91YWdha2tvdVwgOwor5L+d5a6J5p2h5L6LIDwgaG9hbmpvdXJlaVwgOwor55+z5Zmo5pmC5LujIDwgc2Vra2lqaWRhaVwgOwor5Ly86Z2e55CG5bGIIDwgZXNlcmlrdXRzdVwgOwor5a6Y5oi/6ZW3IDwga2FuYm91Y2hvdVwgOwor6KiY5b+15YiH5omLIDwga2luZW5raXR0ZVwgOwor55m956CC57OWIDwgc2hpcm96YXRvdVwgOwor5YCL5Lq65YCL5Lq6IDwga29qaW5rb2ppblwgOwor5pil5YiG54K5IDwgc2h1bmJ1bnRlblwgOwor5pen5Li75Lq6IDwga3l1dXNodWppblwgOwor54qH54qHIDwgaGlzaGloaXNoaVwgOwor6Zub6LGGIDwgaGl5b2tvbWFtZVwgOwor5bu25rue5Yip5a2QIDwgZW50YWlyaXNoaVwgOwor6JGJ57eR57SgIDwgeW91cnlva3Vzb1wgOwor57ay6aCtIDwgYW1pZ2FzaGlyYVwgOwor5YiG5rS+5Li7576pIDwgYnVucGFzaHVnaVwgOwor5YaF6Z2i55qEIDwgbmFpbWVudGVraVwgOwor5q+A6KqJ6KSS6LK2IDwga2l5b2hvdWhlblwgOwor6IK657WQ5qC4IDwgaGFpa2Vra2FrdVwgOwor5ZSv576O5Li7576pIDwgeXVpYmlzaHVnaVwgOwor5aGp6a2aIDwgc2hpb3pha2FuYVwgOwor5Zue5Y+O6YeRIDwga2Fpc2h1dWtpblwgOwor57a/5bi95a2QIDwgd2F0YWJvdXNoaVwgOwor5Lit5Z+3IDwgY2h1dXNoaXRzdVwgOwor5aSP6JmrIDwgbmF0c3VtdXNoaVwgOwor5oCl6YCy5rS+IDwga3l1dXNoaW5oYVwgOwor6LuN5LqL6KGb5pifIDwgZ3VuamllaXNlaVwgOwor6Iq46KGT6ZmiIDwgZ2VpanV0c3VpblwgOwor5qa05by+56CyIDwgcnl1dWRhbnBvdVwgOwor5YaS6Zm65b+DIDwgYm91a2Vuc2hpblwgOwor5Y+v54eD54mpIDwga2FuZW5idXRzdVwgOwor5pel5pys5LiAIDwgbmlob24nJ2ljaGlcIDsKK+S/rue3tOiAhSA8IHNodXVyZW5zaGFcIDsKK+WPjeWwhOmPoSA8IGhhbnNoYWt5b3VcIDsKK+S6jOebtOinkiA8IG5pY2hva2tha3VcIDsKK+eEoeaIkeWkouS4rSA8IG11Z2FtdWNodXVcIDsKK+Wei+WkieaPmyA8IGthdGFoZW5rYW5cIDsKK+WOu+WLoueJmyA8IGt5b3NlaXVzaGlcIDsKK+S6iOWumuacn+mZkCA8IHlvdGVpa2lnZW5cIDsKK+eKr+e9quWtpiA8IGhhbnphaWdha3VcIDsKK+WOn+exjeWcsCA8IGdlbnNla2ljaGlcIDsKK+e2vumMpiA8IGF5YW5pc2hpa2lcIDsKK+aAp+mBk+W+syA8IHNlaWRvdXRva3VcIDsKK+W5s+a7keWMliA8IGhlaWthdHN1a2FcIDsKK+eri+S9k+aYoOeUuyA8IHJpdHRhaWVpZ2FcIDsKK+mDteS+v+eusSA8IHl1dWJpbmJha29cIDsKK+WPl+S/oeaWmSA8IGp1c2hpbnJ5b3VcIDsKK+WGjee1hOe5lCA8IHNhaXNvc2hpa2lcIDsKK+e+juihk+eVjCA8IGJpanV0c3VrYWlcIDsKK+Wkqeawl+aooeanmCA8IHRlbmtpbW95b3VcIDsKK+S4jeetieW8jyA8IGZ1ZG91c2hpa2lcIDsKK+eBq+WPo+WOn+a5liA8IGtha291Z2Vua29cIDsKK+aciOWIpSA8IHRzdWtpYmV0c3VcIDsKK+ihqOmfs+Wtl+avjSA8IGh5b3VvbmppYm9cIDsKK+e0hOWumuabuCA8IHlha3Vqb3VzaG9cIDsKK+S4ieeuh+aXpSA8IHNhbmdhbmljaGlcIDsKK+mfs+WjsOiogOiqniA8IG9uc2VpZ2VuZ29cIDsKK+eZuuelpeWcsCA8IGhhc3Nob3VjaGlcIDsKK+S4gOaYqOaYqOaXpSA8IHNha2lvdG90b2lcIDsKK+WLneaJi+WPoyA8IGthdHRlZ3VjaGlcIDsKK+Wklemjn+W+jCA8IHl1dXNob2t1Z29cIDsKK+aQrOWFpeaXpSA8IGhhbicnbnl1dWJpXCA7CivosarllYblsaQgPCBnb3VzaG91c291XCA7CivlpbTosYbohZAgPCB5YWtrb2RvdWZ1XCA7CivohLHms5XooYzngrogPCBkYXBwb3Vrb3VpXCA7CivmhJ/opproq5YgPCBrYW5rYWt1cm9uXCA7Civlm73nlKPou4ogPCBrb2t1c2Fuc2hhXCA7CivkuI3mtYHpgJogPCBmdXJ5dXV0c3V1XCA7CivmqYvpoK3loKEgPCBreW91dG91aG91XCA7CivlgIvkurrkuLvnvqkgPCBrb2ppbnNodWdpXCA7CivlpI/mmYLplpMgPCBuYXRzdWppa2FuXCA7Civnn7Pngq3lsaQgPCBzZWtpdGFuc291XCA7CivntbnkuIDljLkgPCBraW51aXBwaWtpXCA7Civlu7rnmb3mm7ggPCBrZW5wYWt1c2hvXCA7CivmtojpmLLms5UgPCBzaG91Ym91aG91XCA7CivkuK3ov5HmnbEgPCBjaHV1a2ludG91XCA7CivkuI3mraPopo/ou40gPCBmdXNlaWtpZ3VuXCA7CivlparnlaUgPCBkYXRzdXJ5YWt1XCA7CivoqLzkurrlj7AgPCBzaG91bmluZGFpXCA7CivmsLTnlKPmpa0gPCBzdWlzYW5neW91XCA7Civmr5TkvovlvI8gPCBoaXJlaXNoaWtpXCA7CivnlLfmiYDluK8gPCBvdG9rb2pvdGFpXCA7Civkv67mlbTniYggPCBzaHV1c2VpaGFuXCA7Civlh4bnnIvorbflqaYgPCBqdW5rYW5nb2Z1XCA7CivlhrfmsLTmtbQgPCByZWlzdWl5b2t1XCA7CivlpI/nvr3nuZQgPCBuYXRzdWJhb3JpXCA7CivopJLoqIDokYkgPCBob21la290b2JhXCA7CivnuYHnuYEgPCBzaGlnZXNoaWdlXCA7Civkuovli5nmnLogPCBqaW11ZHp1a3VlXCA7CivkuLvlgqzlm70gPCBzaHVzYWlrb2t1XCA7CivlpKflpJbliIggPCBvb3NvdG9nYXJpXCA7CivmuIXnrpfkurogPCBzZWlzYW4nJ25pblwgOwor5L2P5rCR56WoIDwganV1bWluaHlvdVwgOwor5q+N5a2Q5a625bqtIDwgYm9zaGlrYXRlaVwgOwor54Sh57ea5bGAIDwgbXVzZW5reW9rdVwgOwor5oKq5p2Q5paZIDwgYWt1emFpcnlvdVwgOwor5pel54Wn6KiIIDwgbmlzc2hvdWtlaVwgOwor5pSv5oyB546HIDwgc2hpamlyaXRzdVwgOwor5LqM6YCj55m6IDwgbmlyZW5wYXRzdVwgOwor5ZCM5ZCN55Ww5Lq6IDwgZG91bWVpaWppblwgOwor5YW36LGh55qEIDwgZ3VzaG91dGVraVwgOwor5Ymv5oq15b2TIDwgZnVrdXRlaXRvdVwgOwor6IKy5YWQ5pmC6ZaTIDwgaWt1amlqaWthblwgOwor5pmC5L6h55m66KGMIDwgamlrYWhha2tvdVwgOwor6IO46Iac54KOIDwga3lvdW1ha3VlblwgOwor6Zmk5rm/5ZmoIDwgam9zaGl0c3VraVwgOwor5LmX5o+b6aeFIDwgbm9yaWthZWVraVwgOwor5LiA5ZGoIDwgaGl0b21lZ3VyaVwgOwor5Y+k5pys5bGLIDwgZnVydWhvbicneWFcIDsKK+W3qOWkp+eXhyA8IGt5b2RhaXNob3VcIDsKK+S8muitsOS6i+mghSA8IGthaWdpamlrb3VcIDsKK+efpeaXpeWutiA8IGNoaW5pY2hpa2FcIDsKK+eZveecvOimliA8IGhha3VnYW5zaGlcIDsKK+eFp+WwhOazlSA8IHNob3VzaGFob3VcIDsKK+S7ruaDs+iomOaGtiA8IGthc291a2lva3VcIDsKK+eDj+mzqSA8IGthcmFzdWJhdG9cIDsKK+i1pOS/oeWPtyA8IGFrYXNoaW5nb3VcIDsKK+mVt+aWueW9oiA8IGNob3Vob3VrZWlcIDsKK+S4h+WbveWPsiA8IGJhbmtva3VzaGlcIDsKK+mAoOWFteW7oCA8IHpvdWhlaXNob3VcIDsKK+adseS6rOa5viA8IHRvdWt5b3V3YW5cIDsKK+eLrOWJteaApyA8IGRva3Vzb3VzZWlcIDsKK+mDqOWIhum6u+mFlCA8IGJ1YnVubWFzdWlcIDsKK+aknOS6i+aOp+iotCA8IGtlbmppa291c29cIDsKK+aUvua1queZliA8IGhvdXJvdWhla2lcIDsKK+ihjOaUv+WumCA8IGd5b3VzZWlrYW5cIDsKK+ayoei2o+WRsyA8IGJvdHN1c2h1bWlcIDsKK+mZtumFlOWigyA8IHRvdXN1aWt5b3VcIDsKK+WPjeWwhOinkiA8IGhhbnNoYWtha3VcIDsKK+aXheeDjyA8IHRhYmlnYXJhc3VcIDsKK+S4g+WFiSA8IG5hbmFoaWthcmlcIDsKK+eJueWKueiWrCA8IHRva2tvdXlha3VcIDsKK+WomOWpvyA8IG11c3VtZW11a29cIDsKK+aXpeayoSA8IG5pY2hpYm90c3VcIDsKK+WkmumgheW8jyA8IHRha291c2hpa2lcIDsKK+ihqOaDheetiyA8IGh5b3Vqb3VraW5cIDsKK+e1jOWWtueuoeeQhiA8IGtlaWVpa2FucmlcIDsKK+WIqeebiueOhyA8IHJpZWtpcml0c3VcIDsKK+S4ieaLjeWtkCA8IHNhbmJ5b3VzaGlcIDsKK+mHj+iyqeW6lyA8IHJ5b3VoYW50ZW5cIDsKK+e3qOmbhuWtkCA8IGhlbnNodXVzaGlcIDsKK+WGl+mVt+aApyA8IGpvdWNob3VzZWlcIDsKK+m8u+ecvOmPoSA8IGhhbmFtZWdhbmVcIDsKK+WGheimlumPoSA8IG5haXNoaWt5b3VcIDsKK+i1pOe/oee/oCA8IGFrYXNob3ViaW5cIDsKK+mjm+ihjOaZgumWkyA8IGhpa291amlrYW5cIDsKK+eGseapn+mWoiA8IG5ldHN1a2lrYW5cIDsKK+aRguitt+iFuiA8IHNldHN1Z29zZW5cIDsKK+WvvuaKl+etliA8IHRhaWtvdXNha3VcIDsKK+i/keS7o+WKhyA8IGtpbmRhaWdla2lcIDsKK+W+ueW6leeahCA8IHRldHRlaXRla2lcIDsKK+Wbm+Wtl+eGn+iqniA8IHlvamlqdWt1Z29cIDsKK+attOS7o+WPsiA8IHJla2lkYWlzaGlcIDsKK+aXqeimi+ihqCA8IGhheWFtaWh5b3VcIDsKK+iHqOapn+W/nOWkiSA8IHJpbmtpb3VoZW5cIDsKK+aKleWwhOinkiA8IHRvdXNoYWtha3VcIDsKK+Wumuacn+S/nemZuiA8IHRlaWtpaG9rZW5cIDsKK+ebo+edo+iAhSA8IGthbnRva3VzaGFcIDsKK+WFseeUo+WcjyA8IGt5b3VzYW5rZW5cIDsKK+Wun+ihjOS4rSA8IGppa2tvdWNodXVcIDsKK+eMm+aUu+aSgyA8IG1vdWtvdWdla2lcIDsKK+mbu+WtkOauuyA8IGRlbnNoaWtha3VcIDsKK+mAoOiogOmjm+iqniA8IHpvdWdlbmhpZ29cIDsKK+adkeW9ueWgtCA8IG11cmF5YWt1YmFcIDsKK+e0sOmbqiA8IHNhc2FtZXl1a2lcIDsKK+mZuOi7n+miqCA8IHJpa3VuYW5wdXVcIDsKK+aUv+ayu+iJsiA8IHNlaWppc2hva3VcIDsKK+avjeWtkOiNiSA8IGhhaGFrb2d1c2FcIDsKK+eJueW+heeUnyA8IHRva3V0YWlzZWlcIDsKK+mgreWIhiA8IGthc2hpcmFidW5cIDsKK+S4reebpOaIpiA8IGNodXViYW5zZW5cIDsKK+S6i+WLmeeUqOWTgSA8IGppbXV5b3VoaW5cIDsKK+iInui4j+mdtCA8IGJ1dG91Z3V0c3VcIDsKK+iogOiqnuWcsOeQhiA8IGdlbmdvY2hpcmlcIDsKK+Wkp+mZquWvqSA8IGRhaWJhaXNoaW5cIDsKK+eEoee4geS7jyA8IG11ZW5ib3Rva2VcIDsKK+aWkeeJmyA8IG1hZGFyYXVzaGlcIDsKK+e3keiJsiA8IHJ5b2t1c2hva3VcIDsKK+iqjeWumuiovCA8IG5pbnRlaXNob3VcIDsKK+e+juihk+abuCA8IGJpanV0c3VzaG9cIDsKK+ioiOmHj+azlSA8IGtlaXJ5b3Vob3VcIDsKK+WOn+aMr+WLlSA8IGdlbnNoaW5kb3VcIDsKK+WtpuiKuOS8miA8IGdha3VnZWlrYWlcIDsKK+iEguiCquW/gyA8IHNoaWJvdXNoaW5cIDsKK+eLuOmlgumjqSA8IHRhbnVraXVkb25cIDsKK+awtOeUo+W6gSA8IHN1aXNhbmNob3VcIDsKK+WQiOaGsueahCA8IGdvdWtlbnRla2lcIDsKK+S4u+S9k+eahCA8IHNodXRhaXRla2lcIDsKK+eKr+e9quihjOeCuiA8IGhhbnphaWtvdWlcIDsKK+aXpeaciCA8IG5pY2hpZ2V0c3VcIDsKK+eqg+ebl+eLgiA8IHNldHRvdWt5b3VcIDsKK+Wls+S4gOiIrCA8IG9uJyduYWlwcGFuXCA7Civmsbrli53nt5ogPCBrZXNzaG91c2VuXCA7Civml63ml6UgPCBreW9rdWppdHN1XCA7CivovLjpgIHmqZ/plqIgPCB5dXNvdWtpa2FuXCA7Civlj6PkuIrmiYsgPCBrdWNoaWpvdXp1XCA7Civlt6XloLTplbcgPCBrb3Vqb3VjaG91XCA7Civml5fkuozmtYEgPCBoYXRhbmlyeXV1XCA7Civoo5zliqnoiaboiYcgPCBob2pva2FudGVpXCA7CivljbPkvY3lvI8gPCBzb2t1aXNoaWtpXCA7CivkupTph4zpnKfkuK0gPCBnb3JpbXVjaHV1XCA7Civmh5Dmn5TnrZYgPCBrYWlqdXVzYWt1XCA7CivkuInml6XlpKnkuIsgPCBtaWtrYXRlbmthXCA7Civlubvmg7PliocgPCBnZW5zb3VnZWtpXCA7Civln7rmnKzljZjkvY0gPCBraWhvbnRhbicnaVwgOwor5LqL5YuZ5a6kIDwgamltdXNoaXRzdVwgOwor6LaF6KaP5YmHIDwgY2hvdWtpc29rdVwgOwor5qC45a625pePIDwga2FrdWthem9rdVwgOwor5aSV5pyI5aScIDwgeXV1ZHp1a2V5b1wgOwor54y25LqI5pyf6ZaTIDwgeXV1eW9raWthblwgOwor5aSn6KGG6LuKIDwgZGFpc2h1dXNoYVwgOwor54Sh57GN6ICFIDwgbXVzZWtpbW9ub1wgOwor5pel54us5LyKIDwgbmljaGlkb2t1aVwgOwor6Zqj57WEIDwgdG9uYXJpZ3VtaVwgOwor5oKq57+S5oWjIDwgYWt1c2h1dWthblwgOwor56Gr6YW46YqFIDwgcnl1dXNhbmRvdVwgOwor5rC055Sj5a2mIDwgc3Vpc2FuZ2FrdVwgOwor54OP6YeRIDwga2FyYXN1Z2FuZVwgOwor5bm456aP5oSfIDwga291ZnVrdWthblwgOwor6LOg5YSf6YeRIDwgYmFpc2hvdWtpblwgOwor6KuL6LKg5bel5LqLIDwgdWtlb2lrb3VqaVwgOwor6Zq856eRIDwgaGF5YWJ1c2FrYVwgOwor5YWx55Sj5YWaIDwga3lvdXNhbnRvdVwgOwor54mp5b+DIDwgbW9ub2dva29yb1wgOwor5peF5p6VIDwgdGFiaW1ha3VyYVwgOwor57SF6ZuAIDwgYmVuaXN1enVtZVwgOwor54i25pa5IDwgY2hpY2hpa2F0YVwgOwor5b6M6YCA5paH5a2XIDwga291dGFpbW9qaVwgOwor6Ii55p2/5aGAIDwgZnVuYWl0YWJlaVwgOwor5YWo5a2m6YCjIDwgemVuZ2FrdXJlblwgOwor55u06LWw6LevIDwgY2hva3Vzb3Vyb1wgOwor55S35bCK5aWz5Y2RIDwgZGFuc29uam9oaVwgOwor5rC36LGG6IWQIDwga29vcmlkb3VmdVwgOwor5YWl5bGF6ICFIDwgbnl1dWt5b3NoYVwgOwor5pel6Zmw6ICFIDwgaGlrYWdlbW9ub1wgOwor57W257iB57eaIDwgemV0c3VlbnNlblwgOwor5aSn5oWI5aSn5oKyIDwgZGFpamlkYWloaVwgOwor5aG16IqlIDwgY2hpcmlha3V0YVwgOwor5ZOB6KmV5LyaIDwgaGlucHlvdWthaVwgOwor5rC055O25bqnIDwgbWl6dWdhbWV6YVwgOwor5ZCE5Zuj5L2TIDwga2FrdWRhbnRhaVwgOwor5p2l5p2l6YCxIDwgcmFpcmFpc2h1dVwgOwor5Zub5Y2B6ZuAIDwgc2hpanV1a2FyYVwgOwor5aaC5L2V5qeY5birIDwgaWthc2FtYXNoaVwgOwor6YCa55So6ZaAIDwgdHN1dXlvdW1vblwgOwor54iq5qWK5p6dIDwgdHN1bWF5b3VqaVwgOwor5pWj6auq5bGLIDwgc2FucGF0c3V5YVwgOwor5qCh5q2j5Yi3IDwga291c2VpenVyaVwgOwor6buS55y86Y+hIDwga3Vyb21lZ2FuZVwgOwor6Ieo55WM5LqL5pWFIDwgcmlua2Fpamlrb1wgOwor6Zuo54eVIDwgYW1hdHN1YmFtZVwgOwor5aa55am/IDwgaW1vdXRvbXVrb1wgOwor6YCg6Ii55qWtIDwgem91c2VuZ3lvdVwgOwor6Kaz5YqH5LyaIDwga2FuZ2VraWthaVwgOwor6Zuq54WZIDwgeXVraWtlbXVyaVwgOwor5YWs5a6z55eFIDwga291Z2FpYnlvdVwgOwor5Y+X5L+h5YG0IDwganVzaGluZ2F3YVwgOwor5LyB5qWt5b+DIDwga2lneW91c2hpblwgOwor5Zug5p6c6Zai5L+CIDwgaW5nYWthbmtlaVwgOwor5L+u57mV5belIDwgc2h1dXplbmtvdVwgOwor5Y2Y6Lqr6YqDIDwgdGFuc2hpbmp1dVwgOwor6KeS6JuZIDwgdHN1bm9nYWVydVwgOwor55Ww56iu5Lqk6YWNIDwgaXNodWtvdWhhaVwgOwor5aSc6ZaT5Yuk5YuZIDwgeWFrYW5raW5tdVwgOwor55m+5bm055uuIDwgaHlha3VuZW5tZVwgOwor5rKh55CG5oOzIDwgYm90c3VyaXNvdVwgOwor6Z2Z6ISI54KOIDwgam91bXlha3VlblwgOwor5b6h5Zu96Ieq5oWiIDwgb2t1bmlqaW1hblwgOwor5YWo6IO96ICFIDwgemVuJydub3VzaGFcIDsKK+WRieacjeWVhiA8IGdvZnVrdXNob3VcIDsKK+ecgeizh+a6kCA8IHNob3VzaGlnZW5cIDsKK+mbhuWQiOirliA8IHNodXVnb3Vyb25cIDsKK+emgeeFmeW4rSA8IGtpbicnZW5zZWtpXCA7CivlpLHmpa0gPCBzaGl0c3VneW91XCA7CivoqK3nq4sgPCBzZXRzdXJpdHN1XCA7CivplbfmlrnkvZMgPCBjaG91aG91dGFpXCA7Civlj5fkv6HkurogPCBqdXNoaW4nJ25pblwgOwor5oCl5YGc6LuKIDwga3l1dXRlaXNoYVwgOwor6ZuR54mpIDwgemF0c3VidXRzdVwgOwor56We57WM56eR5Yy7IDwgc2hpbmtlaWthaVwgOwor57Oe5bqm6IO4IDwga3Vzb2Rva3lvdVwgOwor5raI6Ziy5aOrIDwgc2hvdWJvdXNoaVwgOwor5pyJ55CG5byPIDwgeXV1cmlzaGlraVwgOwor57WC5YiX6LuKIDwgc2h1dXJlc3NoYVwgOwor5omA5pyJ5qC8IDwgc2hveXV1a2FrdVwgOwor55+l6Kaa55+lIDwgY2hpa2FrdWNoaVwgOwor6YGK5pKD5omLIDwgeXV1Z2VraXNodVwgOwor6Kej54ax5YmkIDwgZ2VuZXRzdXphaVwgOwor5bqX5bGL54mpIDwgdGVuJyd5YW1vbm9cIDsKK+eGseeDiCA8IG5ldHN1cmV0c3VcIDsKK+mBiuaSg+aIpiA8IHl1dWdla2lzZW5cIDsKK+WxseawtOmWoyA8IHNhbnN1aWtha3VcIDsKK+iqrOaVmeW4qyA8IHNla2t5b3VzaGlcIDsKK+WztuW4neWbvSA8IHRvdXRlaWtva3VcIDsKK+WNkeWKo+a8oiA8IGhpcmV0c3VrYW5cIDsKK+maj+elniA8IGthbicnbmFnYXJhXCA7Civoo7jpuqYgPCBoYWRha2FtdWdpXCA7CivlhajnlJ/mtq8gPCB6ZW5zaG91Z2FpXCA7CivlhajkvJrooYYgPCB6ZW5rYWlzaHV1XCA7Civlj47lrrnogIUgPCBzaHV1eW91c2hhXCA7Civop6Ppm4blkIggPCBrYWlzaHV1Z291XCA7Civnm7jlr77nmoQgPCBzb3V0YWl0ZWtpXCA7Civnn7PngbDkubMgPCBzZWtrYWlueXV1XCA7CivlhbHmnInogIUgPCBreW91eXV1c2hhXCA7CivmjIflrprluK0gPCBzaGl0ZWlzZWtpXCA7CivllYblk4HlkI0gPCBzaG91aGlubWVpXCA7CivmoLnmnKznmoQgPCBrb25wb250ZWtpXCA7Civnvo7ooZPlsZUgPCBiaWp1dHN1dGVuXCA7CivnuJ7mqKHmp5ggPCBzaGltYW1veW91XCA7CivmtojpmLLlm6MgPCBzaG91Ym91ZGFuXCA7Civkub7okaHokIQgPCBob3NoaWJ1ZG91XCA7CivpnJzmnIggPCBzaGltb3RzdWtpXCA7Civnvr3moLnou4ogPCBoYW5lZ3VydW1hXCA7CivlrozlhajoqablkIggPCBrYW56ZW5qaWFpXCA7Civnmbrli5XmqZ8gPCBoYXRzdWRvdWtpXCA7Civpl5jniZvlo6sgPCB0b3VneXV1c2hpXCA7CivlkIzmg4XnpaggPCBkb3Vqb3VoeW91XCA7CivlhaXkvJrph5EgPCBueXV1a2Fpa2luXCA7CivnhrHnoazljJYgPCBuZXRzdWtvdWthXCA7CivlpKLmnpUgPCB5dW1lbWFrdXJhXCA7Civml4Xlv4MgPCB0YWJpZ29rb3JvXCA7Civpl5jniZvloLQgPCB0b3VneXV1am91XCA7Civlj43lr77npaggPCBoYW50YWloeW91XCA7Civniqzkvo0gPCBpbnV6YW11cmFpXCA7CivlhrfljbTlmaggPCByZWlreWFrdWtpXCA7CivlgJ/lhaXph5EgPCBrYXJpaXJla2luXCA7CivllYblk4HliLggPCBzaG91aGlua2VuXCA7CivlhaznpLrlnLDkvqEgPCBrb3VqaWNoaWthXCA7CivmrZPmpb3ooZcgPCBrYW5yYWt1Z2FpXCA7CivnoJTliYrnm6QgPCBrZW5zYWt1YmFuXCA7CivkuIDlrZfkuIDlj6UgPCBpY2hpamlpa2t1XCA7CivorZjliKUgPCBzaGlraWJldHN1XCA7Civljp/nkIbkuLvnvqkgPCBnZW5yaXNodWdpXCA7CivmnKznsY3lnLAgPCBob25zZWtpY2hpXCA7CivmsJfmrJ3nl4cgPCBraXV0c3VzaG91XCA7CivmgYvlpbPmiL8gPCBrb2lueW91Ym91XCA7CivohLPnpZ7ntYwgPCBub3VzaGlua2VpXCA7CivohqDljp/nl4UgPCBrb3VnZW5ieW91XCA7Civnib3liLbnkIMgPCBrZW5zZWlreXV1XCA7CivmlrDpgKDoiLkgPCBzaGluem91c2VuXCA7CivmhJ/opprngrkgPCBrYW5rYWt1dGVuXCA7Civlgb3lkJvlrZAgPCBuaXNla3Vuc2hpXCA7Civmsbrli53ngrkgPCBrZXNzaG91dGVuXCA7CivlpJrmlbDmsbogPCB0YXN1dWtldHN1XCA7CivmhI/orZjnmoQgPCBpc2hpa2l0ZWtpXCA7Civlj43lsITnmoQgPCBoYW5zaGF0ZWtpXCA7CivkuI3mtLvnmbogPCBmdWthcHBhdHN1XCA7Civlj5fpoJjoqLwgPCBqdXJ5b3VzaG91XCA7CivntJTmloflraYgPCBqdW5idW5nYWt1XCA7CivnibnmgKXliLggPCB0b2treXV1a2VuXCA7Civlpr7lh7ogPCBzaG91c2h1dHN1XCA7Civpu4Tph5HooZMgPCBvdWdvbmp1dHN1XCA7Civku67li5jlrpogPCBrYXJpa2Fuam91XCA7Civnt5HnjokgPCByeW9rdWd5b2t1XCA7Civng4/om4cgPCBrYXJhc3VoZWJpXCA7CivpnIrplbfpoZ4gPCByZWljaG91cnVpXCA7Civlhajouqvlg48gPCB6ZW5zaGluem91XCA7Civlr4bovLjlk4EgPCBtaXRzdXl1aGluXCA7Civml6LoqK3nt5ogPCBraXNldHN1c2VuXCA7CivkuozpgKPlvI8gPCBuaXJlbnNoaWtpXCA7Civnq6XoqbHkvZzlrrYgPCBkb3V3YXNha2thXCA7CivmuJvpgJ/mnZAgPCBnZW5zb2t1emFpXCA7CivlhYnno4HmsJcgPCBoaWthcmlqaWtpXCA7CivoqLzmmI7mm7ggPCBzaG91bWVpc2hvXCA7Civplovmi5PlnLAgPCBrYWl0YWt1Y2hpXCA7Civku67lhY3oqLEgPCBrYXJpbWVua3lvXCA7Civnibnlh7ogPCB0b2t1c2h1dHN1XCA7CivntJnooosgPCBrYW1pYnVrdXJvXCA7CivljbDosaHnmoQgPCBpbnNob3V0ZWtpXCA7Civml6fmlZnlvpIgPCBreXV1a3lvdXRvXCA7Civosqjniankvr8gPCBrYW1vdHN1YmluXCA7CivlpqjlrrPooYzngrogPCBib3VnYWlrb3VpXCA7Civpm6rmn7MgPCB5dWtpeWFuYWdpXCA7CivmnInmnJvmoKogPCB5dXVib3VrYWJ1XCA7CivmhaPkvovnmoQgPCBrYW5yZWl0ZWtpXCA7CivoprPnm7jlraYgPCBrYW5zb3VnYWt1XCA7CivogonnlKjnqK4gPCBuaWt1eW91c2h1XCA7CivpgYvllrbntYzosrsgPCB1bicnZWlrZWloaVwgOwor5pil5LyRIDwgaGFydXlhc3VtaVwgOwor5Z+65Zyw5bGAIDwga2ljaGlreW9rdVwgOwor6YGp5b+c55eHIDwgdGVraW91c2hvdVwgOwor5Lit6auY55SfIDwgY2h1dWtvdXNlaVwgOwor5LiL5rqW5YKZIDwgc2hpdGFqdW5iaVwgOwor5L+h6aC85oSfIDwgc2hpbnJhaWthblwgOwor55m66YW15LmzIDwgaGFra291bnl1dVwgOwor5peF6Iq45Lq6IDwgdGFiaWdlaW5pblwgOwor5Lq66Zuq5bSpIDwgaGl0b25hZGFyZVwgOwor5Li75L+h5Y+3IDwgc2h1c2hpbmdvdVwgOwor5LqM6YOo5ZCI5aWPIDwgbmlidWdhc3NvdVwgOwor5L+h5aWJ6ICFIDwgc2hpbnBvdXNoYVwgOwor5ZCN6KqJ5q+A5pCNIDwgbWVpeW9raXNvblwgOwor5bC66LKr5rOVIDwgc2hha2thbmhvdVwgOwor576O6KGT5ZOBIDwgYmlqdXRzdWhpblwgOwor6KiY6Yyy5pig55S7IDwga2lyb2t1ZWlnYVwgOwor6YCa5L+h6LK7IDwgdHN1dXNoaW5oaVwgOwor5L+h6aC85oCnIDwgc2hpbnJhaXNlaVwgOwor5oSf6Kaa5q+bIDwga2Fua2FrdW1vdVwgOwor6aCG5b+c5oCnIDwganVuJydub3VzZWlcIDsKK+W4uOe/kuiAhSA8IGpvdXNodXVzaGFcIDsKK+e+juihk+WPsiA8IGJpanV0c3VzaGlcIDsKK+aqgOmCo+WvuiA8IGRhbicnbmFkZXJhXCA7CivljYPmrbPpo7QgPCBjaGl0b3NlYW1lXCA7Civoo73mnZDmpa0gPCBzZWl6YWlneW91XCA7CivmlrDmqZ/ou7ggPCBzaGlua2lqaWt1XCA7CivogonppYXpoK0gPCBuaWt1bWFuanV1XCA7CivmsLTos4fmupAgPCBtaXp1c2hpZ2VuXCA7Civnmb3ps6XluqcgPCBoYWt1Y2hvdXphXCA7Civnmb7liIbmr5QgPCBoeWFrdWJ1bmhpXCA7Civoqabph5Hnn7MgPCBzaGlraW5zZWtpXCA7CivpgYvmkKznrqHnkIYgPCB1bnBhbmthbnJpXCA7CivlhKrnrYnos54gPCB5dXV0b3VzaG91XCA7CivljLvnp5HlpKflraYgPCBpa2FkYWlnYWt1XCA7CivlpKfooYbntJkgPCB0YWlzaHV1c2hpXCA7CivoirHopovmmYIgPCBoYW5hbWlkb2tpXCA7CivliqDmuJvkuZfpmaQgPCBrYWdlbmpvdWpvXCA7CivloZfmk6bliaQgPCB0b3NhdHN1emFpXCA7CivpmL/niYfmiKbkuokgPCBhaGVuc2Vuc291XCA7CivmnKjoo73lk4EgPCBtb2t1c2VpaGluXCA7CivlhoXop5LnkIMgPCBuYWlrYWtreXV1XCA7CivppZLoiIzlrrYgPCBqb3V6ZXRzdWthXCA7CivnhrHlh6bnkIYgPCBuZXRzdXNob3JpXCA7Civop6bnmbogPCBzaG9rdWhhdHN1XCA7CivmlrDlubnnt5ogPCBzaGlua2Fuc2VuXCA7Civli5XlkJHooaggPCBkb3Vrb3VoeW91XCA7CivkuqTpn7/oqakgPCBrb3VreW91c2hpXCA7CivmjKjmi7bnirYgPCBhaXNhdHN1am91XCA7CivpmaXmsqHmuZYgPCBrYW5ib3RzdWtvXCA7CivllK/llK/oq77oq74gPCBpaWRha3VkYWt1XCA7Civkv6HlpKnnv4EgPCBzaGludGVuJydvdVwgOwor6LW36Zu75YqbIDwga2lkZW5yeW9rdVwgOwor6Y6u6a2C56WtIDwgY2hpbmtvbnNhaVwgOwor6Ii25p2l5ZOBIDwgaGFrdXJhaWhpblwgOwor5omL5aGp55q/IDwgdGVzaGlvemFyYVwgOwor6buS5bqV57+zIDwga3Vyb3Nva29oaVwgOwor5a2m55Sf5bi9IDwgZ2FrdXNlaWJvdVwgOwor57aZ54i2IDwgbWFtYWNoaWNoaVwgOwor5rC05qC95Z+5IDwgbWl6dXNhaWJhaVwgOwor5Za26YCg54mpIDwgZWl6b3VidXRzdVwgOwor5pel54Wn5qipIDwgbmlzc2hvdWtlblwgOwor55u45a++6Kqk5beuIDwgc291dGFpZ29zYVwgOwor5YWJ6YeP5a2QIDwga291cnlvdXNoaVwgOwor5LiH5oSa56+AIDwgYmFuZ3VzZXRzdVwgOwor6IO954uC6KiAIDwgbm91a3lvdWdlblwgOwor6aOy6YWS6YGL6LuiIDwgaW5zaHV1bnRlblwgOwor54OP57SZIDwga2FyYXN1Z2FtaVwgOwor5pSv5oyB5YqbIDwgc2hpamlyeW9rdVwgOwor57Wx6KiI6KGoIDwgdG91a2VpaHlvdVwgOwor5YWI5Y+y5a2mIDwgc2Vuc2hpZ2FrdVwgOwor5oyH5ZCN6Kmm5ZCIIDwgc2hpbWVpamlhaVwgOwor5pel5LuPIDwgbmljaGlmdXRzdVwgOwor56Gr6YW457SZIDwgcnl1dXNhbnNoaVwgOwor5oCn5beu5YilIDwgc2Vpc2FiZXRzdVwgOwor6Z205LiLIDwga3V0c3VzaGl0YVwgOwor5pys5Zu95Lq6IDwgaG9uZ29rdWppblwgOwor5beo6KaW55qEIDwga3lvc2hpdGVraVwgOwor6Lui6L2N5qmfIDwgdGVudGV0c3VraVwgOwor6KGo5b+g56KRIDwgaHlvdWNodXVoaVwgOwor5Y+O6LOE572qIDwgc2h1dXdhaXphaVwgOwor6Jas5Ymk5birIDwgeWFrdXphaXNoaVwgOwor5b6M6KaL5Lq6IDwga291a2VuJyduaW5cIDsKK+mAo+eUqOW9oiA8IHJlbicneW91a2VpXCA7CivkvZnnmb3ms6ggPCB5b2hha3VjaHV1XCA7CivkvJ3ntbHnmoQgPCBkZW50b3V0ZWtpXCA7CivnuK7lsLogPCBzaHVrdXNoYWt1XCA7CivlvpLlvJ/liLbluqYgPCB0b3RlaXNlaWRvXCA7CivopqrmqKnogIUgPCBzaGlua2Vuc2hhXCA7CivntIvnvr3kuozph40gPCBtb25oYWJ1dGFlXCA7CivlhoblpKnkupUgPCBtYXJ1dGVuam91XCA7CivlpbPkuLsgPCBvbicnbmFhcnVqaVwgOwor5bCR5bm06ZmiIDwgc2hvdW5lbicnaW5cIDsKK+attOmdkueCrSA8IHJla2lzZWl0YW5cIDsKK+iyqOW5o+WItuW6piA8IGthaGVpc2VpZG9cIDsKK+igj+W3peiIuSA8IGthbmlrb3VzZW5cIDsKK+ebruWFq+WIhiA8IG1laGFjaGlidW5cIDsKK+Wbm+WNgeiCqSA8IHNoaWp1dWthdGFcIDsKK+alveims+eahCA8IHJha2thbnRla2lcIDsKK+W/g+WBnOatoiA8IHNoaW50ZWlzaGlcIDsKK+mAn+WwhOegsiA8IHNva3VzaGFob3VcIDsKK+aVteWksSA8IHRla2lzaGl0c3VcIDsKK+aXpeWSjOS4i+mnhCA8IGhpeW9yaWdldGFcIDsKK+aWsOW7uuadkCA8IHNoaW5rZW56YWlcIDsKK+S4jeW/heimgSA8IGZ1aGl0c3V5b3VcIDsKK+aJgemdkuefsyA8IGhlbnNlaXNla2lcIDsKK+WPjOeQg+iPjCA8IHNvdWt5dXVraW5cIDsKK+S4lueVjOW5s+WSjCA8IHNla2FpaGVpd2FcIDsKK+awtOe+iue+riA8IG1penV5b3VrYW5cIDsKK+aKnOacrOeahCA8IGJhcHBvbnRla2lcIDsKK+aVmeWupCA8IGt5b3VzaGl0c3VcIDsKK+WNmOeZuuapnyA8IHRhbnBhdHN1a2lcIDsKK+eEoeeQhumWouaVsCA8IG11cmlrYW5zdXVcIDsKK+i7oumAgeWFiCA8IHRlbnNvdXNha2lcIDsKK+WFpeS8muiAhSA8IG55dXVrYWlzaGFcIDsKK+S4uOacqOiIuSA8IG1hcnVraWJ1bmVcIDsKK+mfs+WQkOacl+aclyA8IG9udG9yb3Vyb3VcIDsKK+W4jOmHiOa2siA8IGtpc2hha3Vla2lcIDsKK+aihembqOWJjee3miA8IGJhaXV6ZW5zZW5cIDsKK+aciOabnOaXpSA8IGdldHN1eW91YmlcIDsKK+acgOizg+azlSA8IHNhaWNoaW5ob3VcIDsKK+mbu+awl+aZguioiCA8IGRlbmtpZG9rZWlcIDsKK+mdqeaWsOa0viA8IGtha3VzaGluaGFcIDsKK+e1tua7hSA8IHpldHN1bWV0c3VcIDsKK+S6jOWNgeWbm+aXpSA8IG5panV1eW9ra2FcIDsKK+aIpueXheatuyA8IHNlbmJ5b3VzaGlcIDsKK+eUt+aAp+eahCA8IGRhbnNlaXRla2lcIDsKK+S5s+mFuOiPjCA8IG55dXVzYW5raW5cIDsKK+WJjeeFp+eBryA8IHplbnNob3V0b3VcIDsKK+aCsuatjOaFt+aFqCA8IGhpa2Frb3VnYWlcIDsKK+iFuOaNu+i7oiA8IGNob3VuZW50ZW5cIDsKK+imquWIhuagqiA8IG95YWJ1bmthYnVcIDsKK+WtpueUqOWTgSA8IGdha3V5b3VoaW5cIDsKK+eJueauiuaApyA8IHRva3VzaHVzZWlcIDsKK+WNmOiJsueUuyA8IHRhbnNob2t1Z2FcIDsKK+S7leeri+WIuCA8IHNoaXRhdGVrZW5cIDsKK+S6iOmYsuWMu+WtpiA8IHlvYm91aWdha3VcIDsKK+W9k+acn+WIqeebiiA8IHRvdWtpcmlla2lcIDsKK+imgeefsyA8IGthbmFtZWlzaGlcIDsKK+earuS4i+iEguiCqiA8IGhpa2FzaGlib3VcIDsKK+mZsOW8geaFtiA8IGthZ2ViZW5rZWlcIDsKK+a3t+ihgOWFkCA8IGtvbmtldHN1amlcIDsKK+iyqeWjsuWFgyA8IGhhbmJhaW1vdG9cIDsKK+W4uOe/kueKryA8IGpvdXNodXVoYW5cIDsKK+mZtuejgeWZqOW6lyA8IHRvdWppa2l0ZW5cIDsKK+a4hea2vOWJpCA8IHNlaXJ5b3V6YWlcIDsKK+acgOWwj+WApCA8IHNhaXNob3VjaGlcIDsKK+WIh+espuWjsuWgtCA8IGtpcHB1dXJpYmFcIDsKK+ijuOS9k+S4u+e+qSA8IHJhdGFpc2h1Z2lcIDsKK+awtOaXj+mkqCA8IHN1aXpva3VrYW5cIDsKK+WFseeKr+iAhSA8IGt5b3VoYW5zaGFcIDsKK+Wvv+WPuOmjryA8IHN1c2hpbWVzaGlcIDsKK+aApei7ouaPmyA8IGt5dXV0ZW5rYW5cIDsKK+aLm+W+heeKtiA8IHNob3V0YWlqb3VcIDsKK+aJk+aSsuWCtyA8IGRhYm9rdXNob3VcIDsKK+mfs+aomeaWh+WtlyA8IG9ucHlvdW1vamlcIDsKK+eJueW+heWIuCA8IHRva3V0YWlrZW5cIDsKK+avkuS6uuWPgiA8IGRva3VuaW5qaW5cIDsKK+S4jeato+imj+aIpiA8IGZ1c2Vpa2lzZW5cIDsKK+WkqeeruuiRtSA8IHRlbmppa3Vhb2lcIDsKK+Wls+S4luW4ryA8IG9uJyduYWpvdGFpXCA7CivkurrplpPnmoQgPCBuaW5nZW50ZWtpXCA7CivoqLrmlq3mm7ggPCBzaGluZGFuc2hvXCA7CivomJroi5TlraYgPCBzZW50YWlnYWt1XCA7Civntbblr77kvY3nva4gPCB6ZXR0YWlpY2hpXCA7Civljp/nqL/mlpkgPCBnZW5rb3VyeW91XCA7Civnm6PnnaPlrpggPCBrYW50b2t1a2FuXCA7CivllYbli5nnnIEgPCBzaG91bXVzaG91XCA7CivlrqPlkYrmm7ggPCBzZW5rb2t1c2hvXCA7CivlpJzlpJzkuK0gPCB5b3J1eW9uYWthXCA7Civoo4/oqbEgPCB1cmFiYW5hc2hpXCA7CivpgJrkv6HnsL8gPCB0c3V1c2hpbmJvXCA7CivloIbnqY3lsqkgPCB0YWlzZWtpZ2FuXCA7CivmipHnlZnmiYAgPCB5b2t1cnl1dWpvXCA7Civmkp7mnKjmnZYgPCBzaHVtb2t1enVlXCA7Civpu4Tph5HnjocgPCBvdWdvbnJpdHN1XCA7CivloIbnqY3lsaQgPCB0YWlzZWtpc291XCA7CivlkIjllLHlm6MgPCBnYXNzaG91ZGFuXCA7Civlpb3mlbXmiYsgPCBrb3V0ZWtpc2h1XCA7CivnsKHmmJPkv53pmbogPCBrYW4nJ2lob2tlblwgOwor57KJ6JasIDwga29uYWd1c3VyaVwgOwor5paH56ug6aGMIDwgYnVuc2hvdWRhaVwgOwor5a+h6aCt5pS/5rK7IDwga2F0b3VzZWlqaVwgOwor6YeR54mp5bGLIDwga2FuYW1vbm95YVwgOwor5Zuj6I+K56WtIDwgZGFuZ2lrdXNhaVwgOwor57ep6KGd5rayIDwga2Fuc2hvdWVraVwgOwor5a+E5a6/6IiOIDwga2lzaHVrdXNoYVwgOwor57iu5Yi3IDwgc2h1a3VzYXRzdVwgOwor5r2c5pyb6Y+hIDwgc2VuYm91a3lvdVwgOwor5paw5bem57+8IDwgc2hpbnNheW9rdVwgOwor6YGh5Y+K55qEIDwgc29reXV1dGVraVwgOwor5ZCM5oOF5b+DIDwgZG91am91c2hpblwgOwor5LiL56i95Y+kIDwgc2hpdGFnZWlrb1wgOwor56u25LqJ6ICFIDwga3lvdXNvdXNoYVwgOwor5ZWG5bqX6KGXIDwgc2hvdXRlbmdhaVwgOwor546J5omL566xIDwgdGFtYXRlYmFrb1wgOwor5Zyf6LGaIDwgdHN1Y2hpYnV0YVwgOwor5LiK5Y2K6LqrIDwgam91aGFuc2hpblwgOwor5LiL5rC05Yem55CGIDwgZ2VzdWlzaG9yaVwgOwor5ris5a6a5rOVIDwgc29rdXRlaWhvdVwgOwor6ZmN5Zyn5YmkIDwga291YXRzdXphaVwgOwor5oCl5YK+5pacIDwga3l1dWtlaXNoYVwgOwor5Lih5qOy6aGeIDwgcnlvdXNlaXJ1aVwgOwor5pyA5LiK57SaIDwgc2Fpam91a3l1dVwgOwor5YGD5pyI5YiAIDwgZW5nZXRzdXRvdVwgOwor55yL6K235Y2SIDwga2FuZ29zb3RzdVwgOwor6KiY5oa257Sg5a2QIDwga2lva3Vzb3NoaVwgOwor6Z+z5aOw6KiY5Y+3IDwgb25zZWlraWdvdVwgOwor5ZKM5bmz5Lya6K2wIDwgd2FoZWlrYWlnaVwgOwor572r57ea6KGoIDwga2Vpc2VuaHlvdVwgOwor56C05aOK5Li7576pIDwgaGFrYWlzaHVnaVwgOwor6Yed5Zyf56ucIDwgaGFyaW1vZ3VyYVwgOwor5a6H5a6Z5Z+65ZywIDwgdWNodXVraWNoaVwgOwor54Gv5Y+w5a6IIDwgdG91ZGFpbW9yaVwgOwor5Luu5YWN54q2IDwga2FyaW1lbmpvdVwgOwor5by+6Jas5bqrIDwgZGFuJyd5YWt1a29cIDsKK+WQiOazleeahCA8IGdvdWhvdXRla2lcIDsKK+S4jeWPr+efpeirliA8IGZ1a2FjaGlyb25cIDsKK+iHquihm+aJi+autSA8IGppZWlzaHVkYW5cIDsKK+aMq+aKmOaEnyA8IHphc2V0c3VrYW5cIDsKK+Wwj+WjsuWApOautSA8IGtvdXJpbmVkYW5cIDsKK+aVkeWHuiA8IGt5dXVzaHV0c3VcIDsKK+WjgeWcnyA8IGthYmV0c3VjaGlcIDsKK+i1pOaWsOiBniA8IGFrYXNoaW5idW5cIDsKK+iGoOedgOiqniA8IGtvdWNoYWt1Z29cIDsKK+e1guatouW9oiA8IHNodXVzaGlrZWlcIDsKK+WHuua4r+iIuSA8IHNodWtrb3VzZW5cIDsKK+i8uOWFpemhjSA8IHl1bnl1dWdha3VcIDsKK+eUsuauu+mhniA8IGtvdWtha3VydWlcIDsKK+W4guWgtOimj+aooSA8IHNoaWpvdWtpYm9cIDsKK+itsOWToeeri+azlSA8IGdpaW5yaXBwb3VcIDsKK+manOWjgeeUuyA8IHNob3VoZWtpZ2FcIDsKK+a6tuaOpeapnyA8IHlvdXNldHN1a2lcIDsKK+S5l+e1hOWToSA8IG5vcmlrdW1paW5cIDsKK+iFjuiHk+eXhSA8IGppbnpvdWJ5b3VcIDsKK+WPr+aQrOW8jyA8IGthaGFuc2hpa2lcIDsKK+WBpeethuWutiA8IGtlbnBpdHN1a2FcIDsKK+ato+S4ree3miA8IHNlaWNodXVzZW5cIDsKK+WNg+W5tOmWkyA8IHNlbicnbmVua2FuXCA7Civmo5Lno4Hnn7MgPCBib3VqaXNoYWt1XCA7CivoprPos57prZogPCBrYW5zaG91Z3lvXCA7CivnpZ7lrabmoKEgPCBzaGluZ2Fra291XCA7CivkvZzmpa3mnI0gPCBzYWd5b3VmdWt1XCA7CivnmbrnnYDmiYAgPCBoYXRjaGFrdWpvXCA7Civopqrov5HmhJ8gPCBzaGlua2lua2FuXCA7CivkubHms6XmtYEgPCByYW5kZWlyeXV1XCA7CivlvZPnm7Tlk6EgPCB0b3VjaG9rdWluXCA7CivlrabntJrlp5Tlk6EgPCBnYWtreXV1aWluXCA7CivntbHoqIjnmoQgPCB0b3VrZWl0ZWtpXCA7CivntZDmnKsgPCBrZXRzdW1hdHN1XCA7CivoirjooZPlrrYgPCBnZWlqdXRzdWthXCA7CivnjoTplqLlhYggPCBnZW5rYW5zYWtpXCA7Civopqrmn7EgPCBveWFiYXNoaXJhXCA7Civmt7HmtbfprZogPCBzaGlua2FpZ3lvXCA7CivlkIzlv5fnmoQgPCBkb3VzaGl0ZWtpXCA7CivnspvnspsgPCBzaHVrdXNodWt1XCA7CivkvqHljYPph5EgPCBhdGFpc2Vua2luXCA7CivorbDkvJrkuLvnvqkgPCBnaWthaXNodWdpXCA7CivkuZ3lm57miKYgPCBreXV1a2Fpc2VuXCA7Civln7rnpI7np5HlraYgPCBraXNva2FnYWt1XCA7Civlm73oqJsgPCBrdW5pbmFtYXJpXCA7CivmjZzmn7vmnKzpg6ggPCBzb3VzYWhvbmJ1XCA7CivljYrmsLjkuYUgPCBoYW4nJ2Vpa3l1dVwgOwor6ZuR5b255ammIDwgemF0c3Vla2lmdVwgOwor5Ya35YeN5qWtIDwgcmVpdG91Z3lvdVwgOwor57a/5Z+DIDwgd2F0YWJva29yaVwgOwor5a6H5a6Z5o6i5p+7IDwgdWNodXV0YW5zYVwgOwor5YSS5pWZ55qEIDwganVreW91dGVraVwgOwor6Kaq5pelIDwgc2hpbicnbmljaGlcIDsKK+mFmyA8IHNha2Vub21vdG9cIDsKK+aPmumZuOiJpiA8IHlvdXJpa3VrYW5cIDsKK+mHjeisueaFjiA8IGp1dWtpbnNoaW5cIDsKK+WHjeixhuiFkCA8IHNoaW1pZG91ZnVcIDsKK+awuOiwt+WckiA8IG5hZ2F0YW5pZW5cIDsKK+S6jOanveW8jyA8IG5pc291c2hpa2lcIDsKK+ebuOS5l+epjSA8IHNvdWpvdXNla2lcIDsKK+iPjOmhnuWtpiA8IGtpbnJ1aWdha3VcIDsKK+aWsOWIiuabuCA8IHNoaW5rYW5zaG9cIDsKK+mdkuWwkeW5tCA8IHNlaXNob3VuZW5cIDsKK+aOqOmAsuiAhSA8IHN1aXNoaW5zaGFcIDsKK+eBvOeGsSA8IHNoYWt1bmV0c3VcIDsKK+WIl+W4reiAhSA8IHJlc3Nla2lzaGFcIDsKK+WbveeUo+WTgSA8IGtva3VzYW5oaW5cIDsKK+aHkOaXp+irhyA8IGthaWt5dXVkYW5cIDsKK+aer+iNieeGsSA8IGtvc291bmV0c3VcIDsKK+mbh+S4uyA8IHlhdG9pbnVzaGlcIDsKK+S4reeUsuadvyA8IGNodXVrYW5wYW5cIDsKK+Wfi+S8j+atryA8IG1haWZ1a3VzaGlcIDsKK+WGhee3kuS6iyA8IG5haXNob2dvdG9cIDsKK+S4gOetieWNkiA8IGl0dG91c290c3VcIDsKK+S6nOm6u+e5lOeJqSA8IGFtYW9yaW1vbm9cIDsKK+elnuS7o+adiSA8IGppbmRhaXN1Z2lcIDsKK+WApOW1qeagqiA8IG5lZ2FzYWthYnVcIDsKK+aUv+ayu+WKmyA8IHNlaWppcnlva3VcIDsKK+etlOeUs+abuCA8IHRvdXNoaW5zaG9cIDsKK+mghuW6j+S4jeWQjCA8IGp1bmpvZnVkb3VcIDsKK+e2meWomCA8IG1hbWFtdXN1bWVcIDsKK+S5seW/g+iAhSA8IHJhbnNoaW5zaGFcIDsKK+e1jOa4iOaPtOWKqSA8IGtlaXphaWVuam9cIDsKK+eEvOWksSA8IHNob3VzaGl0c3VcIDsKK+S6uumWk+alrSA8IG5pbmdlbndhemFcIDsKK+e0r+eul+a4qeW6piA8IHJ1aXNhbm9uZG9cIDsKK+WFseisgOiAhSA8IGt5b3Vib3VzaGFcIDsKK+adpeizk+W4rSA8IHJhaWhpbnNla2lcIDsKK+iInui4j+absiA8IGJ1dG91a3lva3VcIDsKK+S/ruihjOiAhSA8IHNodWd5b3VzaGFcIDsKK+WztuagueecjCA8IHNoaW1hbmVrZW5cIDsKK+W8t+ehrOirliA8IGt5b3Vrb3Vyb25cIDsKK+azleayu+WbvSA8IGhvdWNoaWtva3VcIDsKK+S4jeW+l+etliA8IGZ1dG9rdXNha3VcIDsKK+ios+WHuiA8IHlha3VzaHV0c3VcIDsKK+eDiOaXpSA8IHJldHN1aml0c3VcIDsKK+WcqOexs+S4rSA8IHphaWJlaWNodXVcIDsKK+WMv+WQjeaApyA8IHRva3VtZWlzZWlcIDsKK+eZu+WxsemdtCA8IHRvemFuZ3V0c3VcIDsKK+a1qua8q+S4u+e+qSA8IHJvbWFuc2h1Z2lcIDsKK+W6p+aVt+eJoiA8IHphc2hpa2lyb3VcIDsKK+elnuagvOWMliA8IHNoaW5rYWt1a2FcIDsKK+i1pOWklue3miA8IHNla2lnYWlzZW5cIDsKK+iWrOeUqOmFkiA8IHlha3V5b3VzaHVcIDsKK+e1kOaguOiPjCA8IGtla2tha3VraW5cIDsKK+e3oOS7mCA8IHNoaW1ldHN1a2VcIDsKK+iNieWxpeiZqyA8IHpvdXJpbXVzaGlcIDsKK+atpuijhemDveW4giA8IGJ1c291dG9zaGlcIDsKK+Wkp+ihhuaApyA8IHRhaXNodXVzZWlcIDsKK+WvhOWuv+eUnyA8IGtpc2h1a3VzZWlcIDsKK+aYh+axnuawtCA8IHNob3Vrb3VzdWlcIDsKK+atpuiAheaFhCA8IG11c2hhYnVydWlcIDsKK+aWh+eroOirliA8IGJ1bnNob3Vyb25cIDsKK+eJuemBuOWTgSA8IHRva3VzZW5oaW5cIDsKK+i/keimquiAhSA8IGtpbnNoaW5zaGFcIDsKK+ikh+aVsOW9oiA8IGZ1a3VzdXVrZWlcIDsKK+W5vemCg+WigyA8IHl1dXN1aWt5b3VcIDsKK+WGjeaKleelqCA8IHNhaXRvdWh5b3VcIDsKK+S4jea0u+WLlSA8IGZ1a2F0c3Vkb3VcIDsKK+WFqOWvruWItiA8IHplbnJ5b3VzZWlcIDsKK+W5s+WSjOWbveWutiA8IGhlaXdha29ra2FcIDsKK+i/veaCvOS8miA8IHRzdWl0b3VrYWlcIDsKK+mBk+i3r+WcsOWbsyA8IGRvdXJvY2hpenVcIDsKK+etkumzpSA8IHRzdXRzdWRvcmlcIDsKK+eZveWFteaIpiA8IGhha3VoZWlzZW5cIDsKK+iri+axguaoqSA8IHNlaWt5dXVrZW5cIDsKK+W/oOmciuWhlCA8IGNodXVyZWl0b3VcIDsKK+mamemWk+miqCA8IHN1a2ltYWthemVcIDsKK+WFseacieWcsCA8IGt5b3V5dXVjaGlcIDsKK+eJh+eCuuabvyA8IGthdGFnYXdhc2VcIDsKK+e3qeihneW8gSA8IGthbnNob3ViZW5cIDsKK+Wuv+agueiNiSA8IHNodWtrb25zb3VcIDsKK+Wkp+eri+iAhSA8IG9vZGF0ZW1vbm9cIDsKK+azsOWxseacqCA8IHRhaXNhbmJva3VcIDsKK+ezuOeKtuiZqyA8IHNoaWpvdWNodXVcIDsKK+e1tue4geS9kyA8IHpldHN1ZW50YWlcIDsKK+mHjOiogOiRiSA8IHNhdG9rb3RvYmFcIDsKK+W+oeacseWNsOiIuSA8IGdvc2h1aW5zZW5cIDsKK+izvOiqreiAhSA8IGtvdWRva3VzaGFcIDsKK+Wjsuiyt+mrmCA8IGJhaWJhaWRha2FcIDsKK+aMuumAsumaiiA8IHRlaXNoaW50YWlcIDsKK+iplCA8IG1pa290b25vcmlcIDsKK+iEseawtOeXhyA8IGRhc3N1aXNob3VcIDsKK+WLp+mAsuW4syA8IGthbmppbmNob3VcIDsKK+aLoeW8teWMliA8IGtha3VjaG91a2FcIDsKK+auuuS6uumsvCA8IHNhdHN1amlua2lcIDsKK+a1geWLleaApyA8IHJ5dXVkb3VzZWlcIDsKK+Wbm+mHjeWUsSA8IHNoaWp1dXNob3VcIDsKK+aVmeiCsuiAhSA8IGt5b3Vpa3VzaGFcIDsKK+WPjeWvvuWBtCA8IGhhbnRhaWdhd2FcIDsKK+eQtOS4gOW8tSA8IGtvdG9pdGNob3VcIDsKK+WGheWcqOeahCA8IG5haXphaXRla2lcIDsKK+S4ieautei3syA8IHNhbmRhbnRvYmlcIDsKK+mjm+i6jeeahCA8IGhpeWFrdXRla2lcIDsKK+aJi+mVt+eMvyA8IHRlbmFnYXphcnVcIDsKK+iAgeecvOmPoSA8IHJvdWdhbmt5b3VcIDsKK+S7ruWHpuWIhiA8IGthcmlzaG9idW5cIDsKK+iii+iAsyA8IGZ1a3Vyb21pbWlcIDsKK+WFqOS6uuagvCA8IHplbmppbmtha3VcIDsKK+WIhuazjOeJqSA8IGJ1bnBpYnV0c3VcIDsKK+iri+axguabuCA8IHNlaWt5dXVzaG9cIDsKK+e1kOWunyA8IGtldHN1aml0c3VcIDsKK+S4jeaxuuaWrSA8IGZ1a2V0c3VkYW5cIDsKK+WFiOWFiOmAsSA8IHNlbnNlbnNodXVcIDsKK+iHtOWRveeahCA8IGNoaW1laXRla2lcIDsKK+S5s+efs+iLsSA8IG55dXVzZWtpZWlcIDsKK+iyoeaUv+WtpiA8IHphaXNlaWdha3VcIDsKK+e2muWHuiA8IHpva3VzaHV0c3VcIDsKK+WknOmDjuiHquWkpyA8IHlhcm91amlkYWlcIDsKK+mjsumjn+W6lyA8IGluc2hva3V0ZW5cIDsKK+mDqOWIhuWQpuWumiA8IGJ1YnVuaGl0ZWlcIDsKK+e0meijveWTgSA8IGthbWlzZWloaW5cIDsKK+idnyA8IGhhcmluZXp1bWlcIDsKK+ism+WSjOS8muitsCA8IGtvdXdha2FpZ2lcIDsKK+e3qOe1hOapn+aisCA8IGhlbnNva2lrYWlcIDsKK+azleW+i+ahiCA8IGhvdXJpdHN1YW5cIDsKK+WNiuebsueXhyA8IGhhbm1vdXNob3VcIDsKK+ehnemFuOmKgCA8IHNob3VzYW5naW5cIDsKK+WMu+eZguWZqOaisCA8IGlyeW91a2lrYWlcIDsKK+mYsue3j+ecgSA8IGJvdXNvdXNob3VcIDsKK+ato+imj+WIhuW4gyA8IHNlaWtpYnVucHVcIDsKK+mAhuavlOS+iyA8IGd5YWt1aGlyZWlcIDsKK+aKleabuOeusSA8IHRvdXNob2Jha29cIDsKK+S8muWToeWQjeewvyA8IGthaWlubWVpYm9cIDsKK+a/g+e0qyA8IGtvbXVyYXNha2lcIDsKK+WfjuS4i+eUuiA8IGpvdWthbWFjaGlcIDsKK+eJueWIpeWnlCA8IHRva3ViZXRzdWlcIDsKK+adkeiKneWxhSA8IG11cmFzaGliYWlcIDsKK+e2meaBr+WtkCA8IG1hbWFtdXN1a29cIDsKK+eZuuS/oemfsyA8IGhhc3NoaW4nJ29uXCA7CivlpKnlpInlnLDnlbAgPCB0ZW5wZW5jaGlpXCA7CivmnInlj7Lku6XmnaUgPCB5dXVzaGlpcmFpXCA7Civlm5vmrbvnkIMgPCBzaGlzaGlreXV1XCA7CivnjK7ph5HnrrEgPCBrZW5raW5iYWtvXCA7CivmiKbnlaXlrrYgPCBzZW5yeWFrdWthXCA7CivlhazogbTkvJogPCBrb3VjaG91a2FpXCA7Civmup3pvKAgPCBkb2J1bmV6dW1pXCA7CivokJkgPCBrdXRhYmlyZXJ1XCA7CivopIfmlbDlm54gPCBmdWt1c3V1a2FpXCA7CivkvJroqIjlraYgPCBrYWlrZWlnYWt1XCA7CivnsKHnlaXljJYgPCBrYW5yeWFrdWthXCA7Civntabpm7vnt5ogPCBreXV1ZGVuc2VuXCA7CivlkInnpaXlpKkgPCBraXNzaG91dGVuXCA7Civkv53orbfplqLnqI4gPCBob2dva2FuemVpXCA7CivmnKrluLDpgoTogIUgPCBtaWtpa2Fuc2hhXCA7CivlvqHlvbHnn7MgPCBtaWthZ2Vpc2hpXCA7CivlhoXlm73nlKMgPCBuYWlrb2t1c2FuXCA7CivkuInml6XlnYrkuLsgPCBtaWtrYWJvdXp1XCA7Civpm6rmnIjoirEgPCBzZXRzdWdla2thXCA7Civnp4Hmm7jnrrEgPCBzaGlzaG9iYWtvXCA7Civnm7TmmKDppKggPCBjaG9rdWVpa2FuXCA7Civnl4XnkIblraYgPCBieW91cmlnYWt1XCA7CivlvqnliLvniYggPCBmdWtrb2t1YmFuXCA7CivpgIDlu4PnmoQgPCB0YWloYWl0ZWtpXCA7Civnorrlm7rkuI3li5UgPCBrYWtrb2Z1ZG91XCA7CivkurrplpPlraYgPCBuaW5nZW5nYWt1XCA7CivkuIvnnYDpoZ4gPCBzaGl0YWdpcnVpXCA7CivllJDlpInmnKggPCB0b3VoZW5ib2t1XCA7Civnt5rmkq7lvbEgPCBzZW5zYXRzdWVpXCA7CivmlofmiL/lhbflsYsgPCBidW5ib3VndXlhXCA7CivmlrDnlJ/pnaIgPCBzaGluc2VpbWVuXCA7CivlurfnhZXlrZflhbggPCBrb3VraWppdGVuXCA7CivooYDohIggPCBrZXRzdW15YWt1XCA7CivmlbDml6XlvowgPCBzdXVqaXRzdWdvXCA7CivmnKrmnaXmsLjliqsgPCBtaXJhaWVpZ291XCA7CivotoXlkIjph5EgPCBjaG91Z291a2luXCA7CivlpJrlm73nsY0gPCB0YWtva3VzZWtpXCA7CivnqY3nrpfms5UgPCBzZWtpc2FuaG91XCA7CivnhKHnkIbnrpfmrrUgPCBtdXJpc2FuZGFuXCA7CivlpJbngrrms5UgPCBnYWl0YW1laG91XCA7Civlh7rlk4HogIUgPCBzaHVwcGluc2hhXCA7CivopprphpLliaQgPCBrYWt1c2VpemFpXCA7Civpq5jlsbHonbYgPCBrb3V6YW5jaG91XCA7Civov5HnuIHlsZ4gPCBraW4nJ2Vuem9rdVwgOwor5LiK6YGU6YOoIDwga2FuZGFjaGltZVwgOwor5Y+v6Y2b6YmEIDwga2F0YW50ZXRzdVwgOwor5b+D55CG55qEIDwgc2hpbnJpdGVraVwgOwor5LmX5o+b5Yi4IDwgbm9yaWthZWtlblwgOwor5pWZ6IKy55WMIDwga3lvdWlrdWthaVwgOwor6Zmw5qW157eaIDwgaW5reW9rdXNlblwgOwor5Y2K6ImH6LqrIDwgaGFudGVpc2hpblwgOwor6Kaq5YWE5byfIDwgb3lha3lvdWRhaVwgOwor5peF6aSo5qWtIDwgcnlva2FuZ3lvdVwgOwor5a2m5pyf5pyrIDwgZ2Fra2ltYXRzdVwgOwor6Jme576O5Lq66I2JIDwgZ3ViaWppbnNvdVwgOwor5Yiw5p2l54mpIDwgdG91cmFpbW9ub1wgOwor6LGh54mZ57Sw5belIDwgem91Z2V6YWlrdVwgOwor5rKW5Luy5LuVIDwgb2tpbmFrYXNoaVwgOwor5aSW5Zu96KO9IDwgZ2Fpa29rdXNlaVwgOwor57WC55uk5oimIDwgc2h1dWJhbnNlblwgOwor6YCG5YWJ57eaIDwgZ3lha2tvdXNlblwgOwor6LGh5b605rS+IDwgc2hvdWNob3VoYVwgOwor5Yun6YCy5YWDIDwga2FuamlubW90b1wgOwor6a2a6aGe5a2mIDwgZ3lvcnVpZ2FrdVwgOwor6Y6M6bysIDwga2FtYWl0YWNoaVwgOwor57ie55Gq55GZIDwgc2hpbWFtZW5vdVwgOwor55yf56m6566hIDwgc2hpbmt1dWthblwgOwor6IiO5Yip5YilIDwgc2hhcmliZXRzdVwgOwor5Lqs6Ziq56WeIDwga2VpaGFuc2hpblwgOwor5oWj57+S5rOVIDwga2Fuc2h1dWhvdVwgOwor5ruF6Iy25ruF6Iy2IDwgbWVjaGFtZWNoYVwgOwor6aCt6ZmA6KKLIDwgenVkYWJ1a3Vyb1wgOwor6Zmw5qW1566hIDwgaW5reW9rdWthblwgOwor5re35ZKM54mpIDwga29ud2FidXRzdVwgOwor5YiA6Y2b5Ya2IDwga2F0YW5ha2FqaVwgOwor5r2c5LyP5oCnIDwgc2VucHVrdXNlaVwgOwor6aKo6LuK5bCP5bGLIDwgZnV1c2hhZ295YVwgOwor5oub5b6F5Yi4IDwgc2hvdXRhaWtlblwgOwor5a2Q5L6b6YOo5bGLIDwga29kb21vYmV5YVwgOwor5rGC5oSb6KqH56S6IDwga3l1dWFpa29qaVwgOwor5Y+X6Zuj56+AIDwganVuYW5zZXRzdVwgOwor5ris5a6a5YCkIDwgc29rdXRlaWNoaVwgOwor5YyW57Kn57SZIDwga2VzaG91Z2FtaVwgOwor5aSn5oay56ugIDwgZGFpa2Vuc2hvdVwgOwor546L5pS/5b6p5Y+kIDwgb3VzZWlmdWtrb1wgOwor5Y2Y6Imy5YWJIDwgdGFuc2hva2tvdVwgOwor6KKL54mpIDwgZnVrdXJvbW9ub1wgOwor55Sy5q6757axIDwga291a2FrdWtvdVwgOwor6ZuG5ZCI5L2TIDwgc2h1dWdvdXRhaVwgOwor5LiA5Lq66YOo5bGLIDwgaGl0b3JpYmV5YVwgOwor56uL5b6A55SfIDwgdGFjaGlvdWpvdVwgOwor56uVIDwgZGVzaGlyaXR0b1wgOwor5LiN6LK36YGL5YuVIDwgZnViYWl1bmRvdVwgOwor5a2Q5a6u6aC4IDwgc2hpa3l1dWtlaVwgOwor5ZCd5ZeH5ZCd5ZeHIDwga2VjaGlrZWNoaVwgOwor57WM6aiT55qEIDwga2Vpa2VudGVraVwgOwor5YyW57Kn566xIDwga2VzaG91YmFrb1wgOwor5LqM55Wq5pifIDwgbmliYW5ib3NoaVwgOwor6KW/5Y+jIDwgbmlzaGlndWNoaVwgOwor5rOV5b6L5a62IDwgaG91cml0c3VrYVwgOwor5a6a5pyf6aCQ6YeRIDwgdGVpa2l5b2tpblwgOwor5LiA5a6a5pyf6ZaTIDwgaXR0ZWlraWthblwgOwor5rSX5r+v5p2/IDwgc2VudGFrdWl0YVwgOwor5ruR5rKi5YmkIDwga2F0dGFrdXphaVwgOwor5a++56ew5oCnIDwgdGFpc2hvdXNlaVwgOwor5bCR5bm05rOVIDwgc2hvdW5lbmhvdVwgOwor5b6z5bed5a62IDwgdG9rdWdhd2FrZVwgOwor5Zyw5LiL6YGL5YuVIDwgY2hpa2F1bmRvdVwgOwor5rWB5YuV5L2TIDwgcnl1dWRvdXRhaVwgOwor57WC5YiK5Y+3IDwgc2h1dWthbmdvdVwgOwor55uj5L+u6ICFIDwga2Fuc2h1dXNoYVwgOwor5YWx57eo6ICFIDwga3lvdWhlbnNoYVwgOwor5oeQ55aR5Li7576pIDwga2FpZ2lzaHVnaVwgOwor6J6N6YCa54Sh56KNIDwgeXV1enV1bXVnZVwgOwor5L+d5a6J6KaB5ZOhIDwgaG9hbicneW91aW5cIDsKK+e1seioiOWtpiA8IHRvdWtlaWdha3VcIDsKK+i8qumDree3miA8IHJpbmtha3VzZW5cIDsKK+i7jeiJpumzpSA8IGd1bmthbmRvcmlcIDsKK+WVhuiIuemaiiA8IHNob3VzZW50YWlcIDsKK+i2hea6gOWToSA8IGNob3VtYW4nJ2luXCA7CivniYfmiYvpjYsgPCBrYXRhdGVuYWJlXCA7CivogqHplqLnr4AgPCBrb2thbnNldHN1XCA7Civnr4Dnr4AgPCBmdXNoaWJ1c2hpXCA7Civoqr/lkbPmlpkgPCBjaG91bWlyeW91XCA7Civlj4jlsI/kvZwgPCBtYXRha29zYWt1XCA7CivnrZLoopYgPCB0c3V0c3Vzb2RlXCA7CivkuI3mraPnm7QgPCBmdXNob3VqaWtpXCA7CivmtKrnqY3lsaQgPCBrb3VzZWtpc291XCA7CivmpJzlnKflmaggPCBrZW4nJ2F0c3VraVwgOwor5Li75oiR5Li7576pIDwgc2h1Z2FzaHVnaVwgOwor5p+T54mp5bGLIDwgc29tZW1vbm95YVwgOwor6YWN6Iaz5Lq6IDwgaGFpemVuJyduaW5cIDsKK+Wig+eVjOe3miA8IGt5b3VrYWlzZW5cIDsKK+mdmeeJqeeUuyA8IHNlaWJ1dHN1Z2FcIDsKK+aVmeiCsuazlSA8IGt5b3Vpa3Vob3VcIDsKK+WPjumbhumtlCA8IHNodXVzaHV1bWFcIDsKK+mbouiBt+iAhSA8IHJpc2hva3VzaGFcIDsKK+eJp+W4q+mkqCA8IGJva3VzaGlrYW5cIDsKK+WNoOmgmOi7jSA8IHNlbnJ5b3VndW5cIDsKK+ezuOWNsCA8IGl0b2ppcnVzaGlcIDsKK+S4reeUn+S7oyA8IGNodXVzZWlkYWlcIDsKK+eCuuS6uiA8IGhpdG90b25hcmlcIDsKK+S4i+WNiuacnyA8IHNoaW1vaGFua2lcIDsKK+aVmeS8muazlSA8IGt5b3VrYWlob3VcIDsKK+WOn+awtOeIhiA8IGdlbnN1aWJha3VcIDsKK+eUhSA8IHNlbmNoaWd1cmFcIDsKK+eTuCA8IGhla3V0b2d1cmFcIDsKK+eCreS/tSA8IHN1bWlkYXdhcmFcIDsKK+eTsSA8IG1pcmlndXJhbXVcIDsKK+eTqSA8IGtpcm9ndXJhbXVcIDsKK+eTpyA8IGRla2FndXJhbXVcIDsKK+WIuue5jeezuCA8IHNoaXNodXVpdG9cIDsKK+S4jeS9nOeCuueKryA8IGZ1c2FrdWloYW5cIDsKK+aQreS5l+apiyA8IHRvdWpvdWt5b3VcIDsKK+efs+m5uOeusSA8IHNla2tlbmJha29cIDsKK+Wbnui7oui7uCA8IGthaXRlbmppa3VcIDsKK+WIu+S4gOWIuyA8IGtva3Vpa2tva3VcIDsKK+WJtemAoOeahCA8IHNvdXpvdXRla2lcIDsKK+eXtOWRhueXhyA8IGNoaWhvdXNob3VcIDsKK+exs+aJgCA8IGtvbWVkb2tvcm9cIDsKK+aOkuawtOmHjyA8IGhhaXN1aXJ5b3VcIDsKK+WQhOaDheWgsSA8IGtha3Vqb3Vob3VcIDsKK+iIl+ijheeFieeTpiA8IGhvc291cmVuZ2FcIDsKK+aKleW9seWbs+azlSA8IHRvdWVpenVob3VcIDsKK+aguOaWh+azlSA8IGtha3VidW5wb3VcIDsKK+WjsuS4iumrmCA8IHVyaWFnZWRha2FcIDsKK+a3seaIkOWyqSA8IHNoaW5zZWlnYW5cIDsKK+iDuOS4ieWvuCA8IG11bmVzYW56dW5cIDsKK+W+l+aEj+WuoiA8IHRva3Vpa3lha3VcIDsKK+W+tOWFteWItiA8IGNob3VoZWlzZWlcIDsKK+err+i/kSA8IGhhc2hpZGppa2FcIDsKK+mOlumOjCA8IGt1c2FyaWdhbWFcIDsKK+aAp+acrOiDvSA8IHNlaWhvbicnbm91XCA7Civmu4Xoo4IgPCBtZXRzdXJldHN1XCA7CivkvJHoqLrml6UgPCBreXV1c2hpbmJpXCA7Civln7fph5Hpi7wgPCBzaGlra29uZ291XCA7Civnt4/nirboirHluo8gPCBzb3Vqb3VrYWpvXCA7Civnq5znmq7lt7sgPCByeXV1aGltYWtpXCA7Civlm57luLDnhrEgPCBrYWlraW5ldHN1XCA7CivnpZ3os4DkvJogPCBzaHVrdWdha2FpXCA7CivnlJ/mtLvosrsgPCBzZWlrYXRzdWhpXCA7Civms5Xli5nlsYAgPCBob3VtdWt5b2t1XCA7CivkuK3lrabmoKEgPCBjaHV1Z2Fra291XCA7CivmnIjopovojYkgPCB0c3VraW1pc291XCA7CivmuIXmtYTnhKHlnqIgPCBzZWlqb3VtdWt1XCA7CivpgJrkv5fljJYgPCB0c3V1em9rdWthXCA7Civnm7TkuqTmgKcgPCBjaG9ra291c2VpXCA7CivnqLLnhrHnl4UgPCBpbW9jaGlieW91XCA7CivkuInpnaLoqJjkuosgPCBzYW5tZW5raWppXCA7Civpq5jouI/nmoQgPCBrb3V0b3V0ZWtpXCA7Civntabmlpnml6UgPCBreXV1cnlvdWJpXCA7CivmiY3msJfnuKbmqKogPCBzYWlraWp1dW91XCA7CivkuIflubTpnZIgPCBtYW4nJ25lbnNlaVwgOwor5bCP5YmN5o+QIDwgc2hvdXplbnRlaVwgOwor5YWt5LiJ5Yi2IDwgcm9rdXNhbnNlaVwgOwor6YCg5p6X5a2mIDwgem91cmluZ2FrdVwgOwor5pys5L2N6LKo5bmjIDwgaG9uJydpa2FoZWlcIDsKK+WFqOiyrOS7uyA8IHplbnNla2luaW5cIDsKK+mmrOm5v+S4geWvpyA8IGJha2F0ZWluZWlcIDsKK+eFp+aYjuW8viA8IHNob3VtZWlkYW5cIDsKK+aEm+WbveW/gyA8IGFpa29rdXNoaW5cIDsKK+a9rueFmSA8IHNoaW9rZW11cmlcIDsKK+efs+m5uOeavyA8IHNla2tlbnphcmFcIDsKK+S6iOWumuiqrCA8IHlvdGVpc2V0c3VcIDsKK+ethuiIjCA8IGhpdHN1emV0c3VcIDsKK+aXpeiRoei+nuabuCA8IG5pcHBvamlzaG9cIDsKK+iEs+ehrOWhniA8IG5vdWtvdXNva3VcIDsKK+e3j+Wkp+WwhiA8IHNvdWRhaXNob3VcIDsKK+Wni+acq+WxiyA8IHNoaW1hdHN1eWFcIDsKK+WbveacieaelyA8IGtva3V5dXVyaW5cIDsKK+iWrOWtpumDqCA8IHlha3VnYWt1YnVcIDsKK+aJueWIpOWKmyA8IGhpaGFucnlva3VcIDsKK+etiei6q+WkpyA8IHRvdXNoaW5kYWlcIDsKK+S9jeebuOepuumWkyA8IGlzb3VrdXVrYW5cIDsKK+a1t+S6i+ihm+aYnyA8IGthaWppZWlzZWlcIDsKK+epuuawl+apn+aisCA8IGt1dWtpa2lrYWlcIDsKK+e3j+aUu+aSgyA8IHNvdWtvdWdla2lcIDsKK+mrmOWxseeXhSA8IGtvdXphbmJ5b3VcIDsKK+S6lOaciOelrSA8IGdvZ2F0c3VzYWlcIDsKK+WFseWQjOS6leaIuCA8IGt5b3Vkb3VpZG9cIDsKK+i7jealvemaiiA8IGd1bmdha3V0YWlcIDsKK+S4iemHjeWUsSA8IHNhbmp1dXNob3VcIDsKK+WNl+S6rOixhiA8IG5hbmtpbm1hbWVcIDsKK+absummrOW4qyA8IGt5b2t1YmFzaGlcIDsKK+WJr+WPuOS7pCA8IGZ1a3VzaGlyZWlcIDsKK+mMpumviSA8IG5pc2hpa2lnb2lcIDsKK+aYvOaXpeS4rSA8IGhpcnVoaW5ha2FcIDsKK+WQiOeQhuS4u+e+qSA8IGdvdXJpc2h1Z2lcIDsKK+W4uOitmOWutiA8IGpvdXNoaWtpa2FcIDsKK+a7keiEsSA8IGthdHN1ZGF0c3VcIDsKK+Wkqea0peW+oeWniSA8IGFtYXRzdW1pa29cIDsKK+WkqeaJi+WPpOiIniA8IHRlbnRla29tYWlcIDsKK+iogOiRieWwuyA8IGtvdG9iYWppcmlcIDsKK+iCuua1uOa9pCA8IGhhaXNoaW5qdW5cIDsKK+WknOWFieaZguioiCA8IHlha291ZG9rZWlcIDsKK+iAleS9nOiAhSA8IGtvdXNha3VzaGFcIDsKK+WQjOW/g+WGhiA8IGRvdXNoaW4nJ2VuXCA7Civoh7Tmrbvph48gPCBjaGlzaGlyeW91XCA7CivlvIHoqLzoq5YgPCBiZW5zaG91cm9uXCA7CivmlrDnmbvloLQgPCBzaGludG91am91XCA7Civoh6rou6Lou4rlsYsgPCBqaXRlbnNoYXlhXCA7CivlvLflipvnsokgPCBreW91cmlraWtvXCA7CivkuojlgpnlrqQgPCB5b2Jpc2hpdHN1XCA7CivlupfpoK3moKogPCB0ZW50b3VrYWJ1XCA7CivnmbrlsITolqwgPCBoYXNzaGF5YWt1XCA7Civoh6rlrrbnlKjou4ogPCBqaWtheW91c2hhXCA7CivljZjkvY3liLbluqYgPCB0YW4nJ2lzZWlkb1wgOwor5YyW57Kn5rC0IDwga2VzaG91bWl6dVwgOwor5Y2B6YCy5rOVIDwgamlzc2hpbmhvdVwgOwor5paH5a2X5oOF5aCxIDwgbW9qaWpvdWhvdVwgOwor5paH562G5a62IDwgYnVucGl0c3VrYVwgOwor5b6T6YeP56iOIDwganV1cnlvdXplaVwgOwor55Om5bGL5qC5IDwga2F3YXJheWFuZVwgOwor6Zai5L+C6Kq/IDwga2Fua2VpY2hvdVwgOwor5ZSv5b+D6KuWIDwgeXVpc2hpbnJvblwgOwor5Yqx5oyv566hIDwgcmVpc2hpbmthblwgOwor5YWo5pel56m6IDwgemVuJyduaWtrdXVcIDsKK+S6jOaemuiFsCA8IG5pbWFpZ29zaGlcIDsKK+a1geWIkeWcsCA8IHJ5dXVrZWljaGlcIDsKK+a0quepjeS4liA8IGtvdXNla2lzZWlcIDsKK+mch+eBveWcsCA8IHNoaW5zYWljaGlcIDsKK+ethuetkiA8IGZ1ZGVkenV0c3VcIDsKK+imj+WItuino+mZpCA8IGtpc2Vpa2Fpam9cIDsKK+aPj+WHuiA8IGJ5b3VzaHV0c3VcIDsKK+ecvOi7n+iGjyA8IGdhbicnbmFua291XCA7CivmsLTmmbbkvZMgPCBzdWlzaG91dGFpXCA7Civngrnmu4XlmaggPCB0ZW5tZXRzdWtpXCA7CivlhYTlvJ/liIYgPCBreW91ZGFpYnVuXCA7Civph5HploDmqYsgPCBraW5tb25reW91XCA7Civmma/li53lnLAgPCBrZWlzaG91Y2hpXCA7CivlhoXmjqXlhoYgPCBuYWlzZXRzdWVuXCA7CivnlJ/mtLvoi6YgPCBzZWlrYXRzdWt1XCA7CivmnbHnhaflrq4gPCB0b3VzaG91Z3V1XCA7Civlj5fpm6Pmm7IgPCBqdW5hbmt5b2t1XCA7Civlr77mtYHlnI8gPCB0YWlyeXV1a2VuXCA7CivkuIvmsLTlt6XkuosgPCBnZXN1aWtvdWppXCA7CivljbHpmbrniakgPCBraWtlbmJ1dHN1XCA7CivnoJTkv67nlJ8gPCBrZW5zaHV1c2VpXCA7Civov5HopqrlqZogPCBraW5zaGlua29uXCA7CivkuqToqq3mlocgPCBrb3Vkb2t1YnVuXCA7CivohLPljZLkuK0gPCBub3Vzb3RjaHV1XCA7CivnhLzmrbvkvZMgPCBzaG91c2hpdGFpXCA7CivkuIDnpZ7mlZkgPCBpc3NoaW5reW91XCA7CivmtL7lh7rmiYAgPCBoYXNodXRzdWpvXCA7CivmjK/li5XoqIggPCBzaGluZG91a2VpXCA7CivlsYjmipjoqp4gPCBrdXNzZXRzdWdvXCA7Civmm7Lppqzlm6MgPCBreW9rdWJhZGFuXCA7Civms6jlsITmtrIgPCBjaHV1c2hhZWtpXCA7CivlkIjmhI/mg4XmrbsgPCBnb3Vpam91c2hpXCA7Civnpo/npoTlr78gPCBmdWt1cm9rdWp1XCA7CivntJnlkLnpm6ogPCBrYW1pZnVidWtpXCA7Civku7Lku4vogIUgPCBjaHV1a2Fpc2hhXCA7Civpm4bphY3kurogPCBzaHV1aGFpbmluXCA7CivlrprnpI7lvI8gPCB0ZWlzb3NoaWtpXCA7Civoo4HliKTplbcgPCBzYWliYW5jaG91XCA7Civpm7voqbHlsYAgPCBkZW53YWt5b2t1XCA7Civkv7jnpb/nsbMgPCBob3Vyb2t1bWFpXCA7CivoirHlkLnpm6ogPCBoYW5hZnVidWtpXCA7CivlnJ/lo4EgPCB0c3VjaGlrYWJlXCA7CivlhbXns6fnsbMgPCBoeW91cm91bWFpXCA7Civop5LntLDlt6UgPCB0c3Vub3phaWt1XCA7CivovLjpgIHlipsgPCB5dXNvdXJ5b2t1XCA7Civmnpfph47luoEgPCByaW4nJ3lhY2hvdVwgOwor5pSv6YWN55qEIDwgc2hpaGFpdGVraVwgOwor5aSq6byT5qmLIDwgdGFpa29iYXNoaVwgOwor566U5Yqb57KJIDwgaGFrdXJpa2lrb1wgOwor542F5a2Q6by7IDwgc2hpc2hpYmFuYVwgOwor6YCj6ZqK6ZW3IDwgcmVudGFpY2hvdVwgOwor56uv5pyr5qmfIDwgdGFubWF0c3VraVwgOwor5ZC55aWP5qW9IDwgc3Vpc291Z2FrdVwgOwor54ax5bCE55eFIDwgbmVzc2hhYnlvdVwgOwor5pOFIDwgaG9zaGlpbWFtYVwgOwor5q2m6KOF5bmz5ZKMIDwgYnVzb3VoZWl3YVwgOwor5b6z55So55O2IDwgdG9rdXlvdWJpblwgOwor5omL57aaIDwgdGV0c3VkenVraVwgOwor5aSp5rSl56WeIDwgYW1hdHN1a2FtaVwgOwor6ZmN5rC06YePIDwga291c3VpcnlvdVwgOwor5Ye66YeR6ICFIDwgc2h1a2tpbnNoYVwgOwor5YW45Z6L55qEIDwgdGVua2VpdGVraVwgOwor6J6i55+zIDwgaG90YXJ1aXNoaVwgOwor5Lit5p6i5oCnIDwgY2h1dXN1dXNlaVwgOwor6L+35b2p5pyNIDwgbWVpc2FpZnVrdVwgOwor5L2P5a6F6ZujIDwganV1dGFrdW5hblwgOwor5LuY5biv5LqL6aCFIDwgZnV0YWlqaWtvdVwgOwor5YyW57Kn5paZIDwga2VzaG91cnlvdVwgOwor5b+D55CG5a2mIDwgc2hpbnJpZ2FrdVwgOwor6Iqz5ZCN6YyyIDwgaG91bWVpcm9rdVwgOwor5YuV5Yqb54KJIDwgZG91cnlva3Vyb1wgOwor5bCP5YWQ55eFIDwgc2hvdW5pYnlvdVwgOwor5bCR5bm05ZujIDwgc2hvdW5lbmRhblwgOwor5YWo6Z2i55qEIDwgemVubWVudGVraVwgOwor6KGM5pa55LiN5piOIDwgeXVrdWVmdW1laVwgOwor5bCP5biC5rCRIDwgc2hvdXNoaW1pblwgOwor6Jyc6JyCIDwgbWl0c3ViYWNoaVwgOwor5aSp5rCX5LqI5aCxIDwgdGVua2l5b2hvdVwgOwor5LiN5bmz5LiN5rqAIDwgZnVoZWlmdW1hblwgOwor6KKr5L+d6Zm66ICFIDwgaGlob2tlbnNoYVwgOwor5Ymv5qyh55qEIDwgZnVrdWppdGVraVwgOwor5qSO6ZaT5p2/IDwgdHN1aWthbmJhblwgOwor6Kaq5a2Q6Zu76KmxIDwgb3lha29kZW53YVwgOwor6Kqy56iO546HIDwga2F6ZWlyaXRzdVwgOwor6YO15pS/55yBIDwgeXV1c2Vpc2hvdVwgOwor5aSP5aC05omAIDwgbmF0c3ViYXNob1wgOwor5aSa5oOF5aSa5oGoIDwgdGFqb3V0YWtvblwgOwor566x5p+zIDwgaGFrb3lhbmFnaVwgOwor57WM5Za256C057a7IDwga2VpZWloYXRhblwgOwor5Y6a5YyW57KnIDwgYXRzdWdlc2hvdVwgOwor6LOb5Yqp5Lya5ZOhIDwgc2Fuam9rYWlpblwgOwor5LqM5Lq657WEIDwgZnV0YXJpZ3VtaVwgOwor6Ie05ZG95YK3IDwgY2hpbWVpc2hvdVwgOwor566x5p6VIDwgaGFrb21ha3VyYVwgOwor5Ymv6YO95b+DIDwgZnVrdXRvc2hpblwgOwor57Gz5L+1IDwga29tZWRhd2FyYVwgOwor55m65qGI6ICFIDwgaGF0c3VhbnNoYVwgOwor5by35Yqb54qvIDwgZ291cmlraWhhblwgOwor5LiL6YOo5qeL6YCgIDwga2FidWtvdXpvdVwgOwor5rSX5r+v5LujIDwgc2VudGFrdWRhaVwgOwor6YGK5rOz6KGTIDwgeXV1ZWlqdXRzdVwgOwor5q+O5Zyf5puc5pelIDwgbWFpZG95b3ViaVwgOwor6KO96Zm25qWtIDwgc2VpdG91Z3lvdVwgOwor55CD5bqn5qiZIDwga3l1dXphaHlvdVwgOwor5rKI5LiB6IqxIDwgY2hpbmNob3VnZVwgOwor6JyC6JycIDwgaGFjaGltaXRzdVwgOwor5LqI566X5o6q572uIDwgeW9zYW5zb2NoaVwgOwor6JGh6JCE54mZIDwgcG9ydXRvZ2FydVwgOwor5LiN56mP5YiG5a2QIDwgZnVvbmJ1bnNoaVwgOwor5pWZ5Lya5aCCIDwga3lvdWthaWRvdVwgOwor5pSv5bqX6ZW3IDwgc2hpdGVuY2hvdVwgOwor5Zac5oCS5ZOA5qW9IDwga2lkb2FpcmFrdVwgOwor5b6h5bm0546JIDwgb3Rvc2hpZGFtYVwgOwor6KW/5rSL6JGxIDwgc2VpeW91bmVnaVwgOwor55Oc5a6f6aGUIDwgdXJpemFuZWdhb1wgOwor55yf56m65bivIDwgc2hpbmt1dXRhaVwgOwor56u5562SIDwgdGFrZWR6dXRzdVwgOwor6L+96YCB5qScIDwgdHN1aXNvdWtlblwgOwor5pyq5rG655ujIDwgbWlrZXRzdWthblwgOwor5ryi5ZKM6L6e5YW4IDwga2Fud2FqaXRlblwgOwor5pmu6YCa5qCqIDwgZnV0c3V1a2FidVwgOwor5Y+L6Kq85Zu95a62IDwgeXV1Z2lrb2trYVwgOwor55u45LqS5L+d6Zm6IDwgc291Z29ob2tlblwgOwor5ZWG5bqX5Li7IDwgc2hvdXRlbnNodVwgOwor5o6h55+z5aC0IDwgc2Fpc2VraWpvdVwgOwor54mi5ZCN5Li7IDwgcm91bmFudXNoaVwgOwor57Sv6YCy56iOIDwgcnVpc2hpbnplaVwgOwor5aSn56u25LqJIDwgZGFpa3lvdXNvdVwgOwor5qOu5p6X5rOVIDwgc2hpbnJpbmhvdVwgOwor5ZCM6YO35Lq6IDwgZG91a3lvdWppblwgOwor5rS+5Ye65ammIDwgaGFzaHV0c3VmdVwgOwor5LqL5aSn5Li7576pIDwgamlkYWlzaHVnaVwgOwor5YaF5Zu95YK1IDwgbmFpa29rdXNhaVwgOwor5LqU6Lyq5Lya6K2wIDwgZ29yaW5rYWlnaVwgOwor5pSv5bqm6YeRIDwgc2hpdGFrdWtpblwgOwor56uv56uvIDwgaGFzaGliYXNoaVwgOwor5YaN5rW456S8IDwgc2Fpc2hpbnJlaVwgOwor5Zu95pyJ5ZywIDwga29rdXl1dWNoaVwgOwor6Kaq5bGV5pu4IDwgc2hpbnRlbnNob1wgOwor6Kqe5b2i5aSJ5YyWIDwgZ29rZWloZW5rYVwgOwor5buJ5oGl5b+DIDwgcmVuY2hpc2hpblwgOwor55qG5pei6aOfIDwga2Fpa2lzaG9rdVwgOwor6Z2e5oim6ZeY5ZOhIDwgaGlzZW50b3VpblwgOwor6Lui5bGF5YWIIDwgdGVua3lvc2FraVwgOwor6YCj57Wh6aeFIDwgcmVucmFrdWVraVwgOwor6Zu76Kmx5Y+jIDwgZGVud2FndWNoaVwgOwor54Sh5b+154Sh5oOzIDwgbXVuZW5tdXNvdVwgOwor57K+5Yuk6LOeIDwgc2Vpa2luc2hvdVwgOwor5YGl5b+Y55eHIDwga2VuYm91c2hvdVwgOwor6J2255WqIDwgY2hvdXRzdWdhaVwgOwor5ryU566X5omL6aCGIDwgZW56YW50ZWp1blwgOwor5pWZ5Lya5Y+yIDwga3lvdWthaXNoaVwgOwor5bCR5bm05LyaIDwgc2hvdW5lbmthaVwgOwor6LSL5omL57SZIDwgbmlzZXRlZ2FtaVwgOwor5Ye65b6B6LuNIDwgc2h1c3NlaWd1blwgOwor5q2m5pat5Li7576pIDwgYnVkYW5zaHVnaVwgOwor6KiI55S76ICFIDwga2Vpa2FrdXNoYVwgOwor5pWj5paH55qEIDwgc2FuYnVudGVraVwgOwor5LiW6Kmx5Lq66ZaTIDwgc2V3YW5pbmdlblwgOwor5bm+5L2V5bmz5Z2HIDwga2lrYWhlaWtpblwgOwor5oug5omAIDwgeW9yaWRva29yb1wgOwor5Lq65bel6ZmN6ZuoIDwgamlua291a291dVwgOwor6buS6bygIDwga3Vyb25lenVtaVwgOwor5Y+L5aW955qEIDwgeXV1a291dGVraVwgOwor6Ieq5ZWP6Ieq562UIDwgamltb25qaXRvdVwgOwor5Y+s5Zaa54q2IDwgc2hvdWthbmpvdVwgOwor6KqN6Ki86ICFIDwgbmluc2hvdXNoYVwgOwor5bm055Sj6aGNIDwgbmVuc2FuZ2FrdVwgOwor5o+b566X6KGoIDwga2FuemFuaHlvdVwgOwor5rKW57iE55yMIDwgb2tpbmF3YWtlblwgOwor5pWR5LiW6LuNIDwga3l1dXNlaWd1blwgOwor5rqA6Laz5oSfIDwgbWFuem9rdWthblwgOwor5aWJ5YWs5YWIIDwgaG91a291c2FraVwgOwor6Zu75aCx5paZIDwgZGVucG91cnlvdVwgOwor6I2S5LqL5birIDwgYXJhZ290b3NoaVwgOwor5qGD5rqQ6YO3IDwgdG91Z2Vua3lvdVwgOwor6JOu5pyI5bC8IDwgcmVuZ2V0c3VuaVwgOwor55qH57SA5bm05bqmIDwga291a2luZW5kb1wgOwor57695paR6JqKIDwgaGFtYWRhcmFrYVwgOwor5py05b+15LuBIDwgYm9rdW5lbmppblwgOwor5a2Q5a6u55mMIDwgc2hpa3l1dWdhblwgOwor6KGo5Y+jIDwgb21vdGVndWNoaVwgOwor56OB5Yqb6KiIIDwgamlyeW9rdWtlaVwgOwor5qC557KS6I+MIDwga29ucnl1dWtpblwgOwor57im5peL55ukIDwgdGF0ZXNlbmJhblwgOwor5biC5b255omAIDwgc2hpeWFrdXNob1wgOwor5qSc5rWB6KiIIDwga2Vucnl1dWtlaVwgOwor5Y2z5aOy5LyaIDwgc29rdWJhaWthaVwgOwor5bu25Lq65ZOhIDwgbm9iZWppbicnaW5cIDsKK+WPo+iFlOWkluenkSA8IGtvdWtvdWdla2FcIDsKK+iqv+WQiOWJpCA8IGNob3Vnb3V6YWlcIDsKK+imgeeiuuiqjSA8IHlvdWtha3VuaW5cIDsKK+W4uOe3keaouSA8IGpvdXJ5b2t1anVcIDsKK+eriOelniA8IGthbWFkb2dhbWlcIDsKK+mBuOeQg+ecvCA8IHNlbmt5dXVnYW5cIDsKK+efs+WQiOaIpiA8IGlzaGlnYXNzZW5cIDsKK+WwgeW7uueahCA8IGhvdWtlbnRla2lcIDsKK+mnkOWcqOaJgCA8IGNodXV6YWlzaG9cIDsKK+S4luW4r+S4uyA8IHNldGFpbnVzaGlcIDsKK+W5s+W4uOW/gyA8IGhlaWpvdXNoaW5cIDsKK+m7kumuqiA8IGt1cm9tYWd1cm9cIDsKK+iEs+aAp+m6u+eXuiA8IG5vdXNlaW1haGlcIDsKK+S6lOWNgemfs+mghiA8IGdvanV1b25qdW5cIDsKK+ixhuWPsOmiqCA8IG1hbWV0YWlmdXVcIDsKK+a8lOeul+eyvuW6piA8IGVuemFuc2VpZG9cIDsKK+mJseWxsealrSA8IGtvdXphbmd5b3VcIDsKK+WNgeWtl+aetueKtiA8IGp1dWppa2Fqb3VcIDsKK+ihqOWHuiA8IGh5b3VzaHV0c3VcIDsKK+ani+aWh+acqCA8IGtvdWJ1bm1va3VcIDsKK+WPguisgOmVtyA8IHNhbmJvdWNob3VcIDsKK+S4jeiAgeS4jeatuyA8IGZ1cm91ZnVzaGlcIDsKK+S4lueVjOS4u+e+qSA8IHNla2Fpc2h1Z2lcIDsKK+WGmeecn+mkqCA8IHNoYXNoaW5rYW5cIDsKK+aIpuaZguiJsiA8IHNlbmppc2hva3VcIDsKK+ieuumIv+e0sOW3pSA8IHJhZGVuemFpa3VcIDsKK+iomOi8ieS6i+mghSA8IGtpc2Fpamlrb3VcIDsKK+S9j+WuheihlyA8IGp1dXRha3VnYWlcIDsKK+mgk+ePjea8oiA8IHRvbmNoaW5rYW5cIDsKK+W8semFuOaApyA8IGpha3VzYW5zZWlcIDsKK+S4reS7leWIhyA8IG5ha2FqaWtpcmlcIDsKK+eCree0oOe5iue2rSA8IHRhbnNvc2VuJydpXCA7CivllJDooaMgPCBrYXJha29yb21vXCA7CivliJ3oiJ7lj7AgPCBoYXRzdWJ1dGFpXCA7CivlhpnnnJ/poZQgPCBzaGFzaGluZ2FvXCA7CivnhKHnt5rpm7voqbEgPCBtdXNlbmRlbndhXCA7CivljZfkuqznjokgPCBuYW5raW5kYW1hXCA7CivoiLnnsY3muK8gPCBzZW5zZWtpa291XCA7Civnh5DngbDnn7MgPCByaW5rYWlzZWtpXCA7CivkuIDlubTplpMgPCBpY2hpbmVua2FuXCA7CivpnZ7mjqXop6YgPCBoaXNlc3Nob2t1XCA7CivmjIHntprnmoQgPCBqaXpva3V0ZWtpXCA7CivmuKnmg4XkuLvnvqkgPCBvbmpvdXNodWdpXCA7Civllrbmpa3kuK0gPCBlaWd5b3VjaHV1XCA7CivotoXpgY7poY0gPCBjaG91a2FnYWt1XCA7CivpoJDosrjnjocgPCB5b3RhaXJpdHN1XCA7Civku6PnlKjogokgPCBkYWl5b3VuaWt1XCA7CivlgIvkurrntYzllrYgPCBrb2ppbmtlaWVpXCA7CivmmYLns7vliJcgPCBqaWtlaXJldHN1XCA7CivnrYbml4EgPCBmdWRlenVrdXJpXCA7CivlpZTmlL7kuI3nvoggPCBob25wb3VmdWtpXCA7CivlrZDkvpvmnI0gPCBrb2RvbW9mdWt1XCA7CivoraboppbluoEgPCBrZWlzaGljaG91XCA7CivlhY3nlqvmgKcgPCBtZW4nJ2VraXNlaVwgOwor57O757Wx55qEIDwga2VpdG91dGVraVwgOwor6LuN55So6YeRIDwgZ3VuJyd5b3VraW5cIDsKK+iNkuS7leS6iyA8IGFyYXNoaWdvdG9cIDsKK+eZu+WxseWuoiA8IHRvemFua3lha3VcIDsKK+S9juizg+mHkSA8IHRlaWNoaW5naW5cIDsKK+S+teWus+iAhSA8IHNoaW5nYWlzaGFcIDsKK+WjsuS4iuelqCA8IHVyaWFnZXB5b3VcIDsKK+mJhOWZqOaZguS7oyA8IHRla2tpamlkYWlcIDsKK+aUvumAgeWKhyA8IGhvdXNvdWdla2lcIDsKK+aXpeeoi+ihqCA8IG5pdHRlaWh5b3VcIDsKK+WJr+iRrOWTgSA8IGZ1a3Vzb3VoaW5cIDsKK+m9o+iQvSA8IGtvbWFvdG9zaGlcIDsKK+aMv+WFpeaWhyA8IHNvdW55dXVidW5cIDsKK+WIneWtpuiAhSA8IHNob2dha3VzaGFcIDsKK+aVmee/kuaJgCA8IGt5b3VzaHV1am9cIDsKK+WFpeWgtOmWgCA8IG55dXVqb3Vtb25cIDsKK+WumOW6geihlyA8IGthbmNob3VnYWlcIDsKK+eJqeS+oemosOiytCA8IGJ1a2thdG91a2lcIDsKK+imj+WJh+eahCA8IGtpc29rdXRla2lcIDsKK+Wwj+WGiuWtkCA8IHNob3VzYXNzaGlcIDsKK+i8u+WwhOe3miA8IGZ1a3VzaGFzZW5cIDsKK+WAqSA8IHRzdXJhdHN1cmFcIDsKK+WNgemAsuWItiA8IGppc3NoaW5zZWlcIDsKK+ikh+ijveWTgSA8IGZ1a3VzZWloaW5cIDsKK+ajruael+W4ryA8IHNoaW5yaW50YWlcIDsKK+e1kOaZtuezuyA8IGtlc3Nob3VrZWlcIDsKK+eEoeenqeW6jyA8IG11Y2hpdHN1am9cIDsKK+aXpeacrOiInui4iiA8IG5paG9uYnV5b3VcIDsKK+iBvuWUluWtpuagoSA8IHJvdWFnYWtrb3VcIDsKK+mMqOe2sSA8IGlrYXJpZHp1bmFcIDsKK+S4u+ims+eahCA8IHNodWthbnRla2lcIDsKK+egtOWjiuWKmyA8IGhha2Fpcnlva3VcIDsKK+S4ieavm+S9nCA8IHNhbm1vdXNha3VcIDsKK+ahp+earuiRuiA8IGhpd2FkYWJ1a2lcIDsKK+WKm+e5lOapnyA8IHJpa2lzaG9ra2lcIDsKK+WFremdouS9kyA8IHJva3VtZW50YWlcIDsKK+ePvuS7o+iLseiqniA8IGdlbmRhaWVpZ29cIDsKK+eZveS6uueoriA8IGhha3VqaW5zaHVcIDsKK+axjuelnuirliA8IGhhbnNoaW5yb25cIDsKK+S7ruWumuasviA8IGthcml0ZWlrYW5cIDsKK+e0jeeojumhjSA8IG5vdXplaWdha3VcIDsKK+iruOWkluWbvSA8IHNob2dhaWtva3VcIDsKK+WkluaOpeWGhiA8IGdhaXNldHN1ZW5cIDsKK+WNgeS6jOS9v+W+kiA8IGp1dW5pc2hpdG9cIDsKK+ijvee0mealrSA8IHNlaXNoaWd5b3VcIDsKK+mJm+ebtOe3miA8IGVuY2hva3VzZW5cIDsKK+W/g+mbu+ioiCA8IHNoaW5kZW5rZWlcIDsKK+emj+WIqeihqCA8IGZ1a3VyaWh5b3VcIDsKK+etkuW9oiA8IHRzdXRzdWdhdGFcIDsKK+W+rueUn+eJqSA8IGJpc2VpYnV0c3VcIDsKK+Wuneefs+W6lyA8IGhvdXNla2l0ZW5cIDsKK+WJtealreiAhSA8IHNvdWd5b3VzaGFcIDsKK+aXpeacrOW6reWckiA8IG5paG9udGVpZW5cIDsKK+mdqeijveWTgSA8IGthd2FzZWloaW5cIDsKK+W5s+W5tOS9nCA8IGhlaW5lbnNha3VcIDsKK+a3see3kSA8IGZ1a2FtaWRvcmlcIDsKK+mBuuS8neaal+WPtyA8IGlkZW4nJ2FuZ291XCA7CivnjL/oip3lsYUgPCBzYXJ1c2hpYmFpXCA7CivloLTlpJbmoKogPCBqb3VnYWlrYWJ1XCA7CivpvLvolqwgPCBoYW5hZ3VzdXJpXCA7CivlvIHoqLzms5UgPCBiZW5zaG91aG91XCA7CivljZTlrprmm7ggPCBreW91dGVpc2hvXCA7Civou43kuovovLjpgIEgPCBndW5qaXl1c291XCA7CivkupTml6znr4AgPCBnb2p1bnNldHN1XCA7CivkvLTmgKfpgbrkvJ0gPCBoYW5zZWlpZGVuXCA7CivmiYDmn4QgPCB0b2tvcm9nYXJhXCA7CivliJ3ku7vntaYgPCBzaG9uaW5reXV1XCA7Civpmbjmm7nnrYkgPCByaWt1c291dG91XCA7CivntYzllrblj4LliqAgPCBrZWllaXNhbmthXCA7Civlpb3miJDnuL4gPCBrb3VzZWlzZWtpXCA7CivpgJrmnInmgKcgPCB0c3V1eXV1c2VpXCA7CivogbTlsI7niqwgPCBjaG91ZG91a2VuXCA7CivkuojlgpnpgbjmjJkgPCB5b2Jpc2Vua3lvXCA7CivlvqHpq5jnpZbpoK3lt74gPCBva29zb3p1a2luXCA7CivkuojlgpnoiabpmoogPCB5b2Jpa2FudGFpXCA7Civno4Hlipvnt5ogPCBqaXJ5b2t1c2VuXCA7Civpm6LlqZrnjocgPCByaWtvbnJpdHN1XCA7CivnoZ3phbjloakgPCBzaG91c2FuJydlblwgOwor5LqI5YKZ6YG45omLIDwgeW9iaXNlbnNodVwgOwor5YaN56K66KqNIDwgc2Fpa2FrdW5pblwgOwor55m65qGI5qipIDwgaGF0c3VhbmtlblwgOwor6YWq6KO95ZOBIDwgcmFrdXNlaWhpblwgOwor5Zyf5oCn6aqoIDwgZG9zaG91Ym9uZVwgOwor6YG/5aaK6JasIDwgaGluaW4nJ3lha3VcIDsKK+S4jeWAtuaItOWkqSA8IGZ1Z3V0YWl0ZW5cIDsKK+aMgeS4uyA8IG1vY2hpbnVzaGlcIDsKK+eZuueUn+WtpiA8IGhhc3NlaWdha3VcIDsKK+S6uueorueahCA8IGppbnNodXRla2lcIDsKK+ejgeefs+ebpCA8IGppc2hha3ViYW5cIDsKK+Wkp+iUtee1jCA8IGRhaXpvdWt5b3VcIDsKK+ays+WOn+m2uCA8IGthd2FyYWhpd2FcIDsKK+aLmeWKoyA8IHNldHN1cmV0c3VcIDsKK+eVmee9ruWgtCA8IHJ5dXVjaGlqb3VcIDsKK+mAmumiqOWtlCA8IHRzdXVmdXVrb3VcIDsKK+imgeaxguiAhSA8IHlvdWt5dXVzaGFcIDsKK+efpeaBteiiiyA8IGNoaWVidWt1cm9cIDsKK+e0memJhOegsiA8IGthbWlkZXBwb3VcIDsKK+WInemjm+ihjCA8IGhhdHN1aGlrb3VcIDsKK+eZu+WxseWPoyA8IHRvemFuZ3VjaGlcIDsKK+iyr+awtOmHjyA8IGNob3N1aXJ5b3VcIDsKK+ekvuS8mumNiyA8IHNoYWthaW5hYmVcIDsKK+W5s+WSjOmDqOmaiiA8IGhlaXdhYnV0YWlcIDsKK+auiuWLsuizniA8IHNodWt1bnNob3VcIDsKK+mBi+WLlemdtCA8IHVuZG91Z3V0c3VcIDsKK+S6pOmam+WbvSA8IGtvdXNhaWtva3VcIDsKK+WFq+aWh+WtlyA8IGhhY2hpbW9uamlcIDsKK+ijgeWIpOaymeaxsCA8IHNhaWJhbnphdGFcIDsKK+mWi+eZuumDqCA8IGthaWhhdHN1YnVcIDsKK+iqv+WNsOWbvSA8IGNob3Vpbmtva3VcIDsKK+ebuOe2mueojiA8IHNvdXpva3V6ZWlcIDsKK+idi+S6uuW9oiA8IHJvdW5pbmd5b3VcIDsKK+S6uuWQjemMsiA8IGppbm1laXJva3VcIDsKK+WWtuWIqeazleS6uiA8IGVpcmlob3VqaW5cIDsKK+iQveesrOeUnyA8IHJha3VkYWlzZWlcIDsKK+WHneeBsOWyqSA8IGd5b3VrYWlnYW5cIDsKK+WIqeS7mOWCtSA8IHJpdHN1a2lzYWlcIDsKK+itsOS8muaUv+ayuyA8IGdpa2Fpc2VpamlcIDsKK+mbqOWkqemghuW7tiA8IHV0ZW5qdW4nJ2VuXCA7CivkvZPohZTlo4EgPCB0YWlrb3VoZWtpXCA7CivmjIfmjozntIsgPCBzaGlzaG91bW9uXCA7Civku5jluK/osrvnlKggPCBmdXRhaWhpeW91XCA7CivlpYfot6HnmoQgPCBraXNla2l0ZWtpXCA7Civku6PorbDlk6Hlm6MgPCBkYWlnaWluZGFuXCA7Civom4vnmb3mupAgPCB0YW5wYWt1Z2VuXCA7Civmlq3mnKvprZQgPCBkYW5tYXRzdW1hXCA7CivoqbPkvJ3npL4gPCBzaG91ZGVuc2hhXCA7CivokazlhIDlvI8gPCBzb3VnaXNoaWtpXCA7CivmkI3lrrPpoY0gPCBzb25nYWlnYWt1XCA7CivpiYTpi7zmpa0gPCB0ZWtrb3VneW91XCA7CivmmpfntKvoibIgPCBhbnNoaXNob2t1XCA7CivlhYjku7vpoIYgPCBzZW4nJ25pbmp1blwgOwor5aW95oim55qEIDwga291c2VudGVraVwgOwor6Ziy6ZW35a6YIDwgYm91Y2hvdWthblwgOwor5rC05Zyn6KiIIDwgc3VpYXRzdWtlaVwgOwor5aSW5Zu95YuiIDwgZ2Fpa29rdXplaVwgOwor6Z+T5Zu95Lq6IDwga2Fua29rdWppblwgOwor5pWi6ZeY6LOeIDwga2FudG91c2hvdVwgOwor5rWB6LOqIDwgcnl1dXNoaWNoaVwgOwor5qmf5YaF6aOfIDwga2luYWlzaG9rdVwgOwor6KOP55Wq57WEIDwgdXJhYmFuZ3VtaVwgOwor5Zu96Ziy6KuWIDwga29rdWJvdXJvblwgOwor5LqM6YeN6Kqy56iOIDwgbmlqdXVrYXplaVwgOwor5om26aSK5o6n6ZmkIDwgZnV5b3Vrb3Vqb1wgOwor5Zu96Zqb57eaIDwga29rdXNhaXNlblwgOwor6KGb5pif6YO95biCIDwgZWlzZWl0b3NoaVwgOwor6Zu75rCX5Zue6LevIDwgZGVua2lrYWlyb1wgOwor6LK46YeR5bqrIDwga2FzaGlraW5rb1wgOwor6YCf6KiY6KGTIDwgc29ra2lqdXRzdVwgOwor5Zu96KiA6JGJIDwga3VuaWtvdG9iYVwgOwor5oq95Ye6IDwgY2h1dXNodXRzdVwgOwor5YyQ6KGM55a5IDwgZnVra291c2hpblwgOwor55S65bel5aC0IDwgbWFjaGlrb3ViYVwgOwor5Zyw5LiL5LqM6ZqOIDwgY2hpa2FuaWthaVwgOwor6Iez5oCl5L6/IDwgc2hpa3l1dWJpblwgOwor5a6d5Yag56ugIDwgaG91a2Fuc2hvdVwgOwor6Iul5pem6YKjIDwgd2FrYWRhbicnbmFcIDsKK+aMkeaIpuiAhSA8IGNob3VzZW5zaGFcIDsKK+mJhOmJseefsyA8IHRla2tvdXNla2lcIDsKK+aoqumalOiGnCA8IG91a2FrdW1ha3VcIDsKK+mgkOmHkeWPo+W6pyA8IHlva2lua291emFcIDsKK+WQjOalreiAhSA8IGRvdWd5b3VzaGFcIDsKK+a0u+eUqOiqniA8IGthdHN1eW91Z29cIDsKK+a3seWRvOWQuCA8IHNoaW5rb2t5dXVcIDsKK+S4ieeVqum2jyA8IHNhbmJhbmRvcmlcIDsKK+WIpOS7u+WumCA8IGhhbicnbmlua2FuXCA7CivlpJblm73lgrUgPCBnYWlrb2t1c2FpXCA7CivpgKPntaHoiLkgPCByZW5yYWt1c2VuXCA7CivokL3nrKzngrkgPCByYWt1ZGFpdGVuXCA7CivpgLLooYznm7ggPCBzaGlua291c291XCA7CivoibLmgYvmspnmsbAgPCBpcm9rb2l6YXRhXCA7CivmsbrlrprnmoQgPCBrZXR0ZWl0ZWtpXCA7CivogonmlpnnkIYgPCBuaWt1cnlvdXJpXCA7Civmlofms5XnmoQgPCBidW5wb3V0ZWtpXCA7Civlm73mlofms5UgPCBrb2t1YnVucG91XCA7CivotoXlvKnntJogPCBjaG91ZG9reXV1XCA7CivlpKfolLXnnIEgPCBvb2t1cmFzaG91XCA7CivmhJ/mg4XnmoQgPCBrYW5qb3V0ZWtpXCA7CivkuZflkIjoiLkgPCBub3JpYWlidW5lXCA7CivlvrPnlKjlk4EgPCB0b2t1eW91aGluXCA7Civnh4Pmlpnmo5IgPCBuZW5yeW91Ym91XCA7Civkuozml6XphZQgPCBmdXRzdWtheW9pXCA7CivnpZ7ntYzns7sgPCBzaGlua2Vpa2VpXCA7Civku67orbDplbcgPCBrYXJpZ2ljaG91XCA7CivosqjluaPkvqHlgKQgPCBrYWhlaWthY2hpXCA7Civni6zmlq3oq5YgPCBkb2t1ZGFucm9uXCA7CivlpJblm73kurogPCBnYWlrb2t1amluXCA7Civnj43ns57mvKIgPCBjaGlucHVua2FuXCA7CivmjK/li5Xmnb8gPCBzaGluZG91YmFuXCA7Civmrovli5nmlbTnkIYgPCB6YW5tdXNlaXJpXCA7CivkuLvmlZnlhqAgPCBzaHVreW91a2FuXCA7CivmraPmlZnluKsgPCBzZWlreW91c2hpXCA7CivntLDoj4zlraYgPCBzYWlraW5nYWt1XCA7CivonJzmnIggPCBtaXRzdWdldHN1XCA7CivogJXkvZzlnLAgPCBrb3VzYWt1Y2hpXCA7CivmlLnpgLLlhZogPCBrYWlzaGludG91XCA7CivkuInliIbmkJcgPCBzYW5idXRzdWtpXCA7CivkvJHplpHlnLAgPCBreXV1a2FuY2hpXCA7Civou43nlKjoiaYgPCBndW4nJ3lvdWthblwgOwor5paw6IGe57SZIDwgc2hpbmJ1bnNoaVwgOwor6Ly75bCE54K5IDwgZnVrdXNoYXRlblwgOwor5YWs5Za25L+d6Zm6IDwga291ZWlob2tlblwgOwor5LiW5L+X55qEIDwgc2V6b2t1dGVraVwgOwor6YeN5Zyn5oSfIDwganV1YXRzdWthblwgOwor6LGG6YmE56CyIDwgbWFtZWRlcHBvdVwgOwor5YSq56eA5ZOBIDwgeXV1c2h1dWhpblwgOwor56m65raZIDwgc29yYW5hbWlkYVwgOwor6YeR6J6N55WMIDwga2luJyd5dXVrYWlcIDsKK+WCjeiBtOWIuCA8IGJvdWNob3VrZW5cIDsKK+iyr+mHkeeusSA8IGNob2tpbmJha29cIDsKK+WbveWig+e3miA8IGtva2t5b3VzZW5cIDsKK+itsua4oeaLheS/nSA8IGpvdXRvdGFucG9cIDsKK+ialeezuOalrSA8IHNhbnNoaWd5b3VcIDsKK+S4gOW5tOiNiSA8IGljaGluZW5zb3VcIDsKK+mrmOWvhuW6piA8IGtvdW1pdHN1ZG9cIDsKK+WFjeeWq+S9kyA8IG1lbicnZWtpdGFpXCA7Civno4HmsJfltZAgPCBqaWtpYXJhc2hpXCA7CivmjK/li5XmlbAgPCBzaGluZG91c3V1XCA7CivlpKfnpLzmnI0gPCB0YWlyZWlmdWt1XCA7CivmlLnoia/nqK4gPCBrYWlyeW91c2h1XCA7CivljJflm73kurogPCBob2trb2t1amluXCA7CivniaLlvbnkurogPCByb3V5YWt1bmluXCA7CivmuIvmuIsgPCBzaGlidXNoaWJ1XCA7CivlhoXnpZ3oqIAgPCBuYWlzaHV1Z2VuXCA7CivkuIDlrrblm6PmrJIgPCBpa2thZGFucmFuXCA7Civku6PorbDlk6HkvJogPCBkYWlnaWlua2FpXCA7CivljYrouqvlg48gPCBoYW5zaGluem91XCA7CivlpKfpu5LlpKkgPCBkYWlrb2t1dGVuXCA7Civnpo/ooosgPCBmdWt1YnVrdXJvXCA7Civoo5zmraPkuojnrpcgPCBob3NlaXlvc2FuXCA7CivkuI3liIblibIgPCBmdWJ1bmthdHN1XCA7Civopb/ljJfopb8gPCBzZWlob2t1c2VpXCA7CivpgY7libDpmLLooZsgPCBrYWpvdWJvdWVpXCA7CivnrZLlhYggPCB0c3V0c3VzYWtpXCA7CivnrYblipsgPCBoaXRzdXJ5b2t1XCA7CivmgJLpq6rlpKkgPCBkb2hhdHN1dGVuXCA7CivmiJHlv4MgPCB3YWdha29rb3JvXCA7CivkuojlgpnluqfluK0gPCB5b2JpemFzZWtpXCA7Civlj43pnanlkb0gPCBoYW5rYWt1bWVpXCA7CivooZvnlJ/ln7rmupYgPCBlaXNlaWtpanVuXCA7CivmlrDogZ7npL4gPCBzaGluYnVuc2hhXCA7CivkuIDmqZ/ou7ggPCBpY2hpa2lqaWt1XCA7Civkv53orbflm6PkvZMgPCBob2dvZGFudGFpXCA7Civpm4bprZrnga8gPCBzaHV1Z3lvdG91XCA7Civpm6ropovphZIgPCB5dWtpbWl6YWtlXCA7CivlhIDoo4Xppqzou4ogPCBnaXNvdWJhc2hhXCA7CivlnYrkuLvpoK0gPCBib3V6dWF0YW1hXCA7CivlhYjpqJPnmoQgPCBzZW5rZW50ZWtpXCA7Civpl4fntabkuI4gPCB5YW1pa3l1dXlvXCA7CivmmYLkuovllY/poYwgPCBqaWppbW9uZGFpXCA7Civlgo3ogbTkurogPCBib3VjaG91bmluXCA7Civkuovlrp/kuIogPCBqaWppdHN1am91XCA7CivnvqnkvqDlv4MgPCBnaWt5b3VzaGluXCA7CivnlKjmsLTloIAgPCB5b3VzdWlib3JpXCA7Civpu5Loi7ogPCBrdXJvaWNoaWdvXCA7Civku67mma7oq4sgPCBrYXJpYnVzaGluXCA7CivljaDpoJjlnLAgPCBzZW5yeW91Y2hpXCA7Civlr53oo4Xlk4EgPCBzaGluc291aGluXCA7CivnlLrlhoXkvJogPCBjaG91bmFpa2FpXCA7CivlkIznm5/lm70gPCBkb3VtZWlrb2t1XCA7CivnmbrogrLmnJ8gPCBoYXRzdWlrdWtpXCA7CivoqpPntITmm7ggPCBzZWl5YWt1c2hvXCA7CivnmbrlsZXkuK0gPCBoYXR0ZW5jaHV1XCA7CivojLbnlarnmoQgPCBjaGFiYW50ZWtpXCA7CivnibnnlKPlk4EgPCB0b2t1c2FuaGluXCA7CivlpKvlqabllqflmKkgPCBmdXVmdWdlbmthXCA7Civoo73nsonmpa0gPCBzZWlmdW5neW91XCA7Civmtojljrvms5UgPCBzaG91a3lvaG91XCA7CivogpvploDlraYgPCBrb3Vtb25nYWt1XCA7Civnp6nnpoQgPCBjaGl0c3Vyb2t1XCA7CivlpKflj7jmlZkgPCBkYWlzaGlreW91XCA7CivlpoTmg7Pnl4cgPCBtb3Vzb3VzaG91XCA7CivlvqHnlKjpgZQgPCBnb3lvdWRhdHN1XCA7CivlsZXnpLrniakgPCB0ZW5qaWJ1dHN1XCA7Civoh6rmrrrogIUgPCBqaXNhdHN1c2hhXCA7CivkvZzmm7LlrrYgPCBzYWtreW9rdWthXCA7CivlhazmlZnkvJogPCBrb3VreW91a2FpXCA7Civlj4jpmqMgPCBtYXRhZG9uYXJpXCA7CivoqIjnlLvmgKcgPCBrZWlrYWt1c2VpXCA7CivliIfov6vmhJ8gPCBzZXBwYWt1a2FuXCA7CivmnqLlr4bpmaIgPCBzdXVtaXRzdWluXCA7Civlm5vlha3liKQgPCBzaGlyb2t1YmFuXCA7Civov73kvZPpqJMgPCB0c3VpdGFpa2VuXCA7CivlhaXloLTogIUgPCBueXV1am91c2hhXCA7CivljYrnl4XkurogPCBoYW5ieW91bmluXCA7Civph5Hpi48gPCBrYW5hYmFzYW1pXCA7Civmlq3lm7rmipforbAgPCBkYW5rb2tvdWdpXCA7CivmjZzntKLpmoogPCBzb3VzYWt1dGFpXCA7Civlj4vlpb3lm70gPCB5dXVrb3Vrb2t1XCA7Civmrr/kuIrkurogPCB0ZW5qb3ViaXRvXCA7CivnhKHmsLTniakgPCBtdXN1aWJ1dHN1XCA7CivlgaXlurfnmoQgPCBrZW5rb3V0ZWtpXCA7CivmlrDkvZPmk40gPCBzaGludGFpc291XCA7Civmh5DmiYsgPCBmdXRva29yb2RlXCA7CivnqbrkuK3nt5ogPCBrdXVjaHV1c2VuXCA7CivnlLDoiI7pgZMgPCBpbmFrYW1pY2hpXCA7Civms6LkuYPoirEgPCBuYW1pbm9oYW5hXCA7Civlgbblg4/mlZkgPCBndXV6b3VreW91XCA7CivnpZ7oqbHlraYgPCBzaGlud2FnYWt1XCA7Civnm7jntprmqKkgPCBzb3V6b2t1a2VuXCA7CivmgKfmlZnogrIgPCBzZWlreW91aWt1XCA7CivliY3lk6jnt5ogPCB6ZW5zaG91c2VuXCA7CivkupTovKrogZbngasgPCBnb3JpbnNlaWthXCA7Civni6zlpY/ogIUgPCBkb2t1c291c2hhXCA7Civoh6rliIbli53miYsgPCBqaWJ1bmthdHRlXCA7CivotaTooYDnkIMgPCBzZWtrZWtreXV1XCA7CivlpKnlj7DlrpcgPCB0ZW5kYWlzaHV1XCA7Civou43mpb3miYsgPCBndW5nYWt1c2h1XCA7Civou43pnIDmma/msJcgPCBndW5qdWtlaWtpXCA7Civou43oiablt7sgPCBndW5rYW5tYWtpXCA7Civpu5Lnt5EgPCBrdXJvbWlkb3JpXCA7CivmmpfopJDoibIgPCBhbmthc3Nob2t1XCA7CivpgIbkvZznlKggPCBneWFrdXNheW91XCA7CivmjJHmiKbnirYgPCBjaG91c2Vuam91XCA7CivmpJzph4/nt5ogPCBrZW5yeW91c2VuXCA7CivntrLmnZPlrZAgPCBhbWlqYWt1c2hpXCA7Civlho3ms6jmlocgPCBzYWljaHV1bW9uXCA7CivlhoXlj43otrMgPCBuYWloYW5zb2t1XCA7CivlubTlsJHogIUgPCBuZW5zaG91c2hhXCA7CivmlrDnlJ/ku6MgPCBzaGluc2VpZGFpXCA7Civkv53nrqHniakgPCBob2thbmJ1dHN1XCA7Civln7rlupXpg6jploAgPCBraXRlaWJ1bW9uXCA7CivlhKrli53ogIUgPCB5dXVzaG91c2hhXCA7CivmlLnoia/ngrkgPCBrYWlyeW91dGVuXCA7CivkuLjlpKrlsI/lsYsgPCBtYXJ1dGFnb3lhXCA7CivmhYTng4ggPCByaXRzdXJldHN1XCA7CivntabmjpLmsLQgPCBreXV1aGFpc3VpXCA7CivlpKnnnLzpj6EgPCB0ZW5nYW5reW91XCA7CivkuInpgKPli50gPCBzYW5yZW5zaG91XCA7CivkuI3nmbrlvL4gPCBmdWhhdHN1ZGFuXCA7CivljYrlrpjnmoQgPCBoYW5rYW50ZWtpXCA7CivmjK/li5XlrZAgPCBzaGluZG91c2hpXCA7Civpi7jmra8gPCBub2tvZ2lyaWJhXCA7CivmtLvnmbrljJYgPCBrYXBwYXRzdWthXCA7Civkuojmg7PliKnnm4ogPCB5b3NvdXJpZWtpXCA7Civlj47pm4blrrYgPCBzaHV1c2h1dWthXCA7CivphbjljJbpiYQgPCBzYW5rYXRldHN1XCA7CivmlrDkurrnjosgPCBzaGluamluJydvdVwgOwor5bu25pel5pWwIDwgbm9iZW5pc3N1dVwgOwor5aWJ54yu6aCMIDwgaG91a2Vuc2hvdVwgOwor6LK45bqX6IiXIDwga2FzaGl0ZW5wb1wgOwor5LqU6Z+z6Z+z6ZqOIDwgZ29vbicnb25rYWlcIDsKK+S6jOS6uuWFsSA8IGZ1dGFyaXRvbW9cIDsKK+WPjuaWguWJpCA8IHNodXVyZW56YWlcIDsKK+Wbvemam+azlSA8IGtva3VzYWlob3VcIDsKK+mrmOWtpuW5tCA8IGtvdWdha3VuZW5cIDsKK+aguOeBveWusyA8IGtha3VzYWlnYWlcIDsKK+S8veiNieWtkCA8IHRvZ2l6b3VzaGlcIDsKK+eFveaDheeahCA8IHNlbmpvdXRla2lcIDsKK+iqjeiovOWumCA8IG5pbnNob3VrYW5cIDsKK+mkiuialealrSA8IHlvdXNhbmd5b3VcIDsKK+eBq+WxseiEiCA8IGthemFubXlha3VcIDsKK+iPnOeoruauuyA8IG5hdGFuZWdhcmFcIDsKK+mBv+aakeWuoiA8IGhpc2hva3lha3VcIDsKK+eBq+awl+WOs+emgSA8IGtha2lnZW5raW5cIDsKK+abuOipleashCA8IHNob2h5b3VyYW5cIDsKK+WFpeWgtOeojiA8IG55dXVqb3V6ZWlcIDsKK+a6jOWJjCA8IGhhdHN1cmF0c3VcIDsKK+ippuS9nOi7iiA8IHNoaXNha3VzaGFcIDsKK+eNhOS4reiomCA8IGdva3VjaHV1a2lcIDsKK+S5s+WFhOW8nyA8IGNoaWt5b3VkYWlcIDsKK+WNgeWtl+aetuWDjyA8IGp1dWppa2F6b3VcIDsKK+S6jOS4g+aXpSA8IGZ1dGFuYW5va2FcIDsKK+ato+aVmeS8miA8IHNlaWt5b3VrYWlcIDsKK+WFiOeUn+aWuSA8IHNlbnNlaWdhdGFcIDsKK+iNiembsumbgCA8IGt1c2FoaWJhcmlcIDsKK+S+jeW+k+iBtyA8IGppanV1c2hva3VcIDsKK+WHpueQhumBjueoiyA8IHNob3Jpa2F0ZWlcIDsKK+WcsOW9ouWtpiA8IGNoaWtlaWdha3VcIDsKK+S4gOWumuS4jeWkiSA8IGl0dGVpZnVoZW5cIDsKK+aciOS4i+e+juS6uiA8IGdla2thYmlqaW5cIDsKK+S4gOebtOe3miA8IGl0Y2hva3VzZW5cIDsKK+WkqeecvOmAmiA8IHRlbmdhbnRzdXVcIDsKK+S7suiyt+S6uiA8IG5ha2FnYWluaW5cIDsKK+iWrOeQhuWtpiA8IHlha3VyaWdha3VcIDsKK+eArOaIuOWGhea1tyA8IHNldG9uYWlrYWlcIDsKK+iAgeaUv+ayu+WutiA8IHJvdXNlaWppa2FcIDsKK+WbveaWh+WwgiA8IGtva3VidW5zZW5cIDsKK+S4gOW5tOeUnyA8IGljaGluZW5zZWlcIDsKK+WumuW8j+WMliA8IHRlaXNoaWtpa2FcIDsKK+WVhualreWMliA8IHNob3VneW91a2FcIDsKK+S4gOi8qui7iiA8IGljaGlyaW5zaGFcIDsKK+WKn+WIqeS4u+e+qSA8IGtvdXJpc2h1Z2lcIDsKK+a7sueCremLvCA8IHNoaW50YW5rb3VcIDsKK+i7jeeUqOeKrCA8IGd1bicneW91a2VuXCA7Civlha3op5LloIIgPCByb2trYWt1ZG91XCA7CivluormmpbmiL8gPCB5dWthZGFuYm91XCA7CivnrYbkuI3nsr4gPCBmdWRlYnVzaG91XCA7Civmtbfnh5UgPCB1bWl0c3ViYW1lXCA7CivlhazoqLzkurogPCBrb3VzaG91bmluXCA7Civopo/liLbnt6nlkowgPCBraXNlaWthbndhXCA7CivniafojYnlnLAgPCBib2t1c291Y2hpXCA7CivlsZ7mgKflgKQgPCB6b2t1c2VpY2hpXCA7Civop6Pmr5LolqwgPCBnZWRva3V5YWt1XCA7CivmuoDmnJ/ml6UgPCBtYW5raWppdHN1XCA7CivlkI3kvZzpgbggPCBtZWlzYWt1c2VuXCA7CivlpoLmmK/miJHogZ4gPCBueW96ZWdhbW9uXCA7CivmmI7msrvmmYLku6MgPCBtZWlqaWppZGFpXCA7CivllYbnlKjmlocgPCBzaG91eW91YnVuXCA7CivlkIzljJbkvZznlKggPCBkb3VrYXNheW91XCA7Civlm73oqp7lraYgPCBrb2t1Z29nYWt1XCA7Civlj6/lj4rnmoQgPCBrYWt5dXV0ZWtpXCA7CivliKXpgJTpoJDph5EgPCBiZXR0b3lva2luXCA7Civph5HooosgPCBrYW5hYnVrdXJvXCA7CivlhpnnnJ/nj60gPCBzaGFzaGluaGFuXCA7CivmsrnomasgPCBhYnVyYW11c2hpXCA7CivkuIDlhYPoq5YgPCBpY2hpZ2Vucm9uXCA7CivkuIvnqK7moLnmgKcgPCBnZXN1a29uam91XCA7Civoqr/liaTluKsgPCBjaG91emFpc2hpXCA7CivljZjkuInlvaIgPCB0YW5zYW5nYXRhXCA7CivnlLLlhpHluKsgPCBrYXRjaHV1c2hpXCA7CivlhYjku7vogIUgPCBzZW4nJ25pbnNoYVwgOwor5puy57ea576OIDwga3lva3VzZW5iaVwgOwor6YqA54uQIDwgZ2luZ2l0c3VuZVwgOwor5Y2X6aKoIDwgbWluYW1pa2F6ZVwgOwor5YWs57SE5pWwIDwga291eWFrdXN1dVwgOwor54ax54uC6ICFIDwgbmVra3lvdXNoYVwgOwor5rC057SL5a2mIDwgc3VpbW9uZ2FrdVwgOwor5Lq656iu5a2mIDwgamluc2h1Z2FrdVwgOwor5q6L5b+N5oCnIDwgemFuJyduaW5zZWlcIDsKK+aPtOWKqeS6pOmamyA8IGVuam9rb3VzYWlcIDsKK+iZkOauuiA8IGd5YWt1c2F0c3VcIDsKK+ebuOmWoueahCA8IHNvdWthbnRla2lcIDsKK+WGmeecn+eJiCA8IHNoYXNoaW5iYW5cIDsKK+eUn+aBr+WcsCA8IHNlaXNva3VjaGlcIDsKK+WbveS8muitsOWToSA8IGtva2thaWdpaW5cIDsKK+Wcn+WcsOWIqeeUqCA8IHRvY2hpcml5b3VcIDsKK+efpeaAp+eahCA8IGNoaXNlaXRla2lcIDsKK+aghOaer+ebm+ihsCA8IGVpa29zZWlzdWlcIDsKK+acqueZuumBlCA8IG1paGF0dGF0c3VcIDsKK+mWi+W5leaIpiA8IGthaW1ha3VzZW5cIDsKK+ebuOS6kuS9nOeUqCA8IHNvdWdvc2F5b3VcIDsKK+awtOmPoSA8IG1penVrYWdhbWlcIDsKK+iInuWPsOiho+ijhSA8IGJ1dGFpaXNob3VcIDsKK+W+jOmFjeagqiA8IGtvdWhhaWthYnVcIDsKK+WBnOaziuWcsCA8IHRlaWhha3VjaGlcIDsKK+e9ueaCo+eOhyA8IHJpa2Fucml0c3VcIDsKK+mAsuihjOW9oiA8IHNoaW5rb3VrZWlcIDsKK+mBk+W+s+S4iiA8IGRvdXRva3Vqb3VcIDsKK+ekvuS8mueahCA8IHNoYWthaXRla2lcIDsKK+mch+a6kOWcsCA8IHNoaW5nZW5jaGlcIDsKK+aYn+mbsuiqrCA8IHNlaXVuc2V0c3VcIDsKK+ays+WOn+iAhSA8IGthd2FyYW1vbm9cIDsKK+a6uuatu+iAhSA8IGRla2lzaGlzaGFcIDsKK+a1t+WVhuazlSA8IGthaXNob3Vob3VcIDsKK+eQhumrquW6lyA8IHJpaGF0c3V0ZW5cIDsKK+mdqeWRvei7jSA8IGtha3VtZWlndW5cIDsKK+a0u+eJqSA8IGthdHN1YnV0c3VcIDsKK+WNtemFkiA8IHRhbWFnb3pha2VcIDsKK+WQiOitsOWItuW6piA8IGdvdWdpc2VpZG9cIDsKK+abuOiqjOWtpiA8IHNob3NoaWdha3VcIDsKK+S6jOmFuOWMluehq+m7hCA8IG5pc2Fua2Fpb3VcIDsKK+eQhumrquW4qyA8IHJpaGF0c3VzaGlcIDsKK+S4luS/l+W/gyA8IHNlem9rdXNoaW5cIDsKK+mBqeS7u+iAhSA8IHRla2luaW5zaGFcIDsKK+WkieWcp+aJgCA8IGhlbicnYXRzdWpvXCA7CivmvKLmsJHml48gPCBrYW5taW56b2t1XCA7CivpgannlKjmgKcgPCB0ZWtpeW91c2VpXCA7Civpg73ps6UgPCBtaXlha29kb3JpXCA7Civmsbroo4IgPCBrZXRzdXJldHN1XCA7CivolqznrrEgPCBrdXN1cmliYWtvXCA7CivpuqbnlZEgPCBtdWdpYmF0YWtlXCA7Civpm4zpm4TnlbDmoKogPCBzaGl5dXVpc2h1XCA7Civnm7Toq4fliKQgPCBqaWthZGFucGFuXCA7Civog4zkv6HogIUgPCBoYWlzaGluc2hhXCA7CivnrYbogJXmlpkgPCBoaWtrb3VyeW91XCA7CivkvJ3ms5XogowgPCBkZW5ib3VoYWRhXCA7CivnuYrmr5vomasgPCBzZW5tb3VjaHV1XCA7Civnq7blo7LkurogPCBreW91YmFpbmluXCA7CivkvZzoqZ7ogIUgPCBzYWt1c2hpc2hhXCA7Civpu5LmvIYgPCBrb2t1c2hpdHN1XCA7CivlronmrbvooZMgPCBhbnNoaWp1dHN1XCA7Civllonku48gPCBub2RvYm90b2tlXCA7Civlj43lsIToqqTlt64gPCBoYW5zaGFnb3NhXCA7CivloanntKDphbjloakgPCBlbnNvc2FuJydlblwgOwor5qmf5YuV5YqbIDwga2lkb3VyeW9rdVwgOwor57W25a++6Kqk5beuIDwgemV0dGFpZ29zYVwgOwor5pyA57WC5ZueIDwgc2Fpc2h1dWthaVwgOwor5Li76KaB5Zu9IDwgc2h1eW91a29rdVwgOwor5Y+N6Zm95a2QIDwgaGFuJyd5b3VzaGlcIDsKK+WGheWQkeeahCA8IG5haWtvdXRla2lcIDsKK+mYsua9ruWgpCA8IGJvdWNob3V0ZWlcIDsKK+eJqeaQjeS6i+aVhSA8IGJ1c3Nvbmppa29cIDsKK+a2suaZtuebpCA8IGVraXNob3ViYW5cIDsKK+elnue1jOaIpiA8IHNoaW5rZWlzZW5cIDsKK+m7hOWFq+S4iCA8IGtpaGFjaGlqb3VcIDsKK+ihqOS6jOmajiA8IG9tb3RlbmlrYWlcIDsKK+ippumok+eahCA8IHNoaWtlbnRla2lcIDsKK+WxoOauuuWgtCA8IHRvc2F0c3Vqb3VcIDsKK+aXheaUr+W6piA8IHRhYmlqaXRha3VcIDsKK+WFqOmDqOS/nemZuiA8IHplbmJ1aG9rZW5cIDsKK+mHkeiBviA8IGthbmF0c3VuYm9cIDsKK+abuOewoembhiA8IHNob2thbnNodXVcIDsKK+WWtuael+WxgCA8IGVpcmlua3lva3VcIDsKK+eEoemHjeWKmyA8IG11anV1cnlva3VcIDsKK+mBuuWkseiAhSA8IGlzaGl0c3VzaGFcIDsKK+aCquW3q+WxseaIryA8IHdhcnVmdXpha2VcIDsKK+aVtOW9ouWkluenkSA8IHNlaWtlaWdla2FcIDsKK+eUn+W+l+aoqSA8IHNlaXRva3VrZW5cIDsKK+exs+mokuWLlSA8IGtvbWVzb3Vkb3VcIDsKK+aWsOS9k+WItiA8IHNoaW50YWlzZWlcIDsKK+ihgOa4heWtpiA8IGtlc3NlaWdha3VcIDsKK+mDqOmVt+mWsiA8IGJ1Y2hvdWV0c3VcIDsKK+WknOaDs+absiA8IHlhc291a3lva3VcIDsKK+atpuWutuaUv+aoqSA8IGJ1a2VzZWlrZW5cIDsKK+amguW/teeahCA8IGdhaW5lbnRla2lcIDsKK+epuuS4reaoqSA8IGt1dWNodXVrZW5cIDsKK+S6jOmgheWIhuW4gyA8IG5pa291YnVucHVcIDsKK+WRqOmBiuWIuCA8IHNodXV5dXVrZW5cIDsKK+WJteS9nOiAhSA8IHNvdXNha3VzaGFcIDsKK+WQq+ezlumHjyA8IGdhbnRvdXJ5b3VcIDsKK+WAuee0hOWutiA8IGtlbicneWFrdWthXCA7Civlh7rlvLXmiYAgPCBzaHV0Y2hvdWpvXCA7CivmmKDnlLvkvJrnpL4gPCBlaWdhZ2Fpc2hhXCA7CivnrqHnkIbogbcgPCBrYW5yaXNob2t1XCA7CivpiYTnoLLnmb7lkIggPCB0ZXBwb3V5dXJpXCA7CivmgZDmgJbnl4cgPCBreW91ZnVzaG91XCA7CivmlL/nlaXlrrYgPCBzZWlyeWFrdWthXCA7CivlhazooYbntrIgPCBrb3VzaHV1bW91XCA7CivlhaXloLTmqKkgPCBueXV1am91a2VuXCA7CivlkI3oqonkvJrlk6EgPCBtZWl5b2thaWluXCA7CivnnaPmiKbpmoogPCB0b2t1c2VudGFpXCA7CivljYPnvr3ptrQgPCBzZW5iYWR6dXJ1XCA7CivkvY/lroXlnLAgPCBqdXV0YWt1Y2hpXCA7Civlv5zli5/nlKjntJkgPCBvdWJveW91c2hpXCA7CivlhoXmg5HmmJ8gPCBuYWl3YWt1c2VpXCA7CivnnJ/mraPnm7QgPCBtYXNob3VqaWtpXCA7CivlraPnr4DpoqggPCBraXNldHN1ZnV1XCA7CivkvY7lrablubQgPCB0ZWlnYWt1bmVuXCA7CivlrabnsY3nsL8gPCBnYWt1c2VraWJvXCA7Civnq4vkvZPpj6EgPCByaXR0YWlreW91XCA7CivkuozpoIXlvI8gPCBuaWtvdXNoaWtpXCA7Civnmb7ml6XntIUgPCBzYXJ1c3ViZXJpXCA7Civou43nlaXlrrYgPCBndW5yeWFrdWthXCA7Civoh6rmtYTkvZznlKggPCBqaWpvdXNheW91XCA7CivmsJHorZrpm4YgPCBtaW5kYW5zaHV1XCA7CivmhbDllY/ooosgPCBpbW9uYnVrdXJvXCA7Civmtojnn7PngbAgPCBzaG91c2Vra2FpXCA7CivljZjkuIDljJYgPCB0YW4nJ2l0c3VrYVwgOwor5bCC55So6LuKIDwgc2VuJyd5b3VzaGFcIDsKK+S7leiInueJqSA8IHNoaW1haW1vbm9cIDsKK+Wkp+eZvemzpSA8IG9vaGFrdWNob3VcIDsKK+e3qeW+kOabsiA8IGthbmpva3lva3VcIDsKK+WIgOWJo+WVhiA8IHRvdWtlbnNob3VcIDsKK+S8veiKneWxhSA8IHRvZ2lzaGliYWlcIDsKK+WkluiyqOmgkOmHkSA8IGdhaWtheW9raW5cIDsKK+awl+ixoeW6gSA8IGtpc2hvdWNob3VcIDsKK+S4gOWGhueOiSA8IGljaGllbmRhbWFcIDsKK+aBkOaAluaYoOeUuyA8IGt5b3VmdWVpZ2FcIDsKK+iqsueojuaOp+mZpCA8IGthemVpa291am9cIDsKK+W3oea0i+iJpiA8IGp1bicneW91a2FuXCA7Civlv4XpnIDlk4EgPCBoaXRzdWp1aGluXCA7CivkuI3kv6HnlKggPCBmdXNoaW4nJ3lvdVwgOwor5ris5Zyw57eaIDwgc29rdWNoaXNlblwgOwor6auY5pyo5bGkIDwga291Ym9rdXNvdVwgOwor6Kix5a656Kqk5beuIDwga3lveW91Z29zYVwgOwor6KGo5bGk5oCnIDwgaHlvdXNvdXNlaVwgOwor5rC06JasIDwgbWl6dWd1c3VyaVwgOwor5Ye65bit57C/IDwgc2h1c3Nla2lib1wgOwor6Kaq546L5aaDIDwgc2hpbicnbm91aGlcIDsKK+mFjee1puezuyA8IGhhaWt5dXVrZWlcIDsKK+WkieWcp+WZqCA8IGhlbicnYXRzdWtpXCA7Civlrp/kvZPpj6EgPCBqaXR0YWlreW91XCA7CivlhKrli53mna8gPCB5dXVzaG91aGFpXCA7CivpgankuI3pgakgPCB0ZWtpZnV0ZWtpXCA7CivkuI3lrprmnJ/liJEgPCBmdXRlaWtpa2VpXCA7CivnpL7kuqTnmoQgPCBzaGFrb3V0ZWtpXCA7CivphY3ntabnsbMgPCBoYWlreXV1bWFpXCA7Civmm7joqJjlsYAgPCBzaG9raWt5b2t1XCA7CivotIjlj47os4QgPCB6b3VzaHV1d2FpXCA7Civlh7jlh7nntJkgPCB0b3RzdW91c2hpXCA7Civoo4HliKTkurogPCBzYWliYW4nJ25pblwgOwor5LuK6YGT5b+DIDwgaW1hZG91c2hpblwgOwor5piO5rK757at5pawIDwgbWVpamlpc2hpblwgOwor57S55LuL6ICFIDwgc2hvdWthaXNoYVwgOwor6KiA6Kqe5qmf6IO9IDwgZ2VuZ29raW5vdVwgOwor5L+d56iO5YCJ5bqrIDwgaG96ZWlzb3Vrb1wgOwor5rCX6LGh5a2mIDwga2lzaG91Z2FrdVwgOwor55u457aa5Lq6IDwgc291em9rdW5pblwgOwor6KKr5ZGK5bitIDwgaGlrb2t1c2VraVwgOwor5Lmz6ISC6IKqIDwgbnl1dXNoaWJvdVwgOwor6L6y54mn5ZywIDwgbm91Ym9rdWNoaVwgOwor5Yy755mC5qmf6ZaiIDwgaXJ5b3VraWthblwgOwor5oKq5oiv5a2QIDwgaXRhenVyYWtrb1wgOwor5bCE55qE5aC0IDwgc2hhdGVraWpvdVwgOwor5rOJ54axIDwgaXp1bWluZXRzdVwgOwor5rOV5a2m6ICFIDwgaG91Z2FrdXNoYVwgOwor5YWo5Zu957SZIDwgemVua29rdXNoaVwgOwor5pWR6Zuj6Ii5IDwga3l1dW5hbnNlblwgOwor6YeR6J6N5YK1IDwga2luJyd5dXVzYWlcIDsKK+efs+S6leiBsOS6kiA8IGlzaGlpc291Z29cIDsKK+i7jeS6i+WwgemOliA8IGd1bmppZnV1c2FcIDsKK+S4iui8ieWcpyA8IGpvdXNhaWF0c3VcIDsKK+WPo+WWp+WYqSA8IGt1Y2hpZ2Vua2FcIDsKK+aIkOS6uueXhSA8IHNlaWppbmJ5b3VcIDsKK+iKseawtOacqCA8IGhhbmFtaXp1a2lcIDsKK+mAoOWckuihkyA8IHpvdWVuanV0c3VcIDsKK+S5s+iFuueCjiA8IG55dXVzZW4nJ2VuXCA7CivkvY3pmo7li7LnrYkgPCBpa2Fpa3VudG91XCA7CivmtbTlrqQgPCB5b2t1c2hpdHN1XCA7CivmtbfmtYHnk7YgPCBrYWlyeXV1YmluXCA7CivliIblhYnlraYgPCBidW5rb3VnYWt1XCA7CivmsJHkuLvnmoQgPCBtaW5zaHV0ZWtpXCA7Civnsr7nmb3ns5YgPCBzZWloYWt1dG91XCA7CivnhKHmqZ/os6ogPCBtdWtpc2hpdHN1XCA7CivmhJvlqJggPCBtYW5hbXVzdW1lXCA7CivpgJroqbHmlpkgPCB0c3V1d2FyeW91XCA7CivogJDngavnhYnnk6YgPCB0YWlrYXJlbmdhXCA7CivmlLnoia/lk4EgPCBrYWlyeW91aGluXCA7Civnsr7nmb3nsbMgPCBzZWloYWt1bWFpXCA7Civlv6vliYrpi7wgPCBrYWlzYWt1a291XCA7Civml6XlkJHmsLQgPCBoaW5hdGFtaXp1XCA7Civlj6Tni7ggPCBmdXJ1ZGFudWtpXCA7Civpmarlr6nlk6EgPCBiYWlzaGluJydpblwgOwor5Y+k5LuK54Sh6aGeIDwga29rb25tdXJ1aVwgOwor5bir5Zuj6ZW3IDwgc2hpZGFuY2hvdVwgOwor57WE6IG35L2TIDwgc29zaG9rdXRhaVwgOwor5p6c5a6f6YWSIDwga2FqaXRzdXNodVwgOwor5am/6aSK5a2QIDwgbXVrb3lvdXNoaVwgOwor5YaZ55yf5birIDwgc2hhc2hpbnNoaVwgOwor6Zu75rOi566h55CGIDwgZGVucGFrYW5yaVwgOwor5rKz54OPIDwga2F3YWdhcmFzdVwgOwor5LiL5qSc5p+7IDwgc2hpdGFrZW5zYVwgOwor5YSq5Yud5oimIDwgeXV1c2hvdXNlblwgOwor56eB5a6bIDwgd2F0YXNoaWF0ZVwgOwor6YCj57aa5L2TIDwgcmVuem9rdXRhaVwgOwor5aSp5YiR55eFIDwgdGVua2VpYnlvdVwgOwor5rCR5LqL5LqL5Lu2IDwgbWluamlqaWtlblwgOwor5Y2K57+F55uuIDwgaGFuc2hpbW9rdVwgOwor6Iy255Wq5YqHIDwgY2hhYmFuZ2VraVwgOwor6Ieq54S25L+d6K23IDwgc2hpemVuaG9nb1wgOwor5YaZ55yf5bGLIDwgc2hhc2hpbicneWFcIDsKK+eUu+WDj+WHpueQhiA8IGdhem91c2hvcmlcIDsKK+iJr+WwjuS9kyA8IHJ5b3Vkb3V0YWlcIDsKK+aVkeS4luS4uyA8IGt5dXVzZWlzaHVcIDsKK+acquedgOaJiyA8IG1pY2hha3VzaHVcIDsKK+S9nOipqeazlSA8IHNha3VzaGlob3VcIDsKK+ecn+mtmumwuSA8IG1hbmFnYXRzdW9cIDsKK+WHuuW8teWToSA8IHNodXRjaG91aW5cIDsKK+S6uuWKm+i7iiA8IGppbnJpa2lzaGFcIDsKK+eorueorumbkeWkmiA8IHNodWp1emF0dGFcIDsKK+W/hee9sCA8IGhpdHN1YmF0c3VcIDsKK+elneaXpSA8IHNodWt1aml0c3VcIDsKK+Wbvemam+S6uiA8IGtva3VzYWlqaW5cIDsKK+a4rOmVt+apnyA8IHNva3VjaG91a2lcIDsKK+Wwj+S4u+imsyA8IHNob3VzaHVrYW5cIDsKK+aYoOeUu+S/s+WEqiA8IGVpZ2FoYWl5dXVcIDsKK+Wun+i3teeahCA8IGppc3NlbnRla2lcIDsKK+mAo+e1kOWZqCA8IHJlbmtldHN1a2lcIDsKK+iAkOS5heaApyA8IHRhaWt5dXVzZWlcIDsKK+adieS4puacqCA8IHN1Z2luYW1pa2lcIDsKK+e1guS6huW+jCA8IHNodXVyeW91Z29cIDsKK+WkqemBk+anmCA8IHRlbnRvdXNhbWFcIDsKK+WQiuapiyA8IHRzdXJpYmFzaGlcIDsKK+aSruW9semaiiA8IHNhdHN1ZWl0YWlcIDsKK+iKseiPluiSsiA8IGhhbmFzaG91YnVcIDsKK+aknOecvOmPoSA8IGtlbmdhbmt5b3VcIDsKK+W9ouiosSA8IGthdGFiYWthcmlcIDsKK+mFuOWMlueJqSA8IHNhbmthYnV0c3VcIDsKK+azouaelSA8IG5hbWltYWt1cmFcIDsKK+Wwj+S9nOaWmSA8IGtvc2FrdXJ5b3VcIDsKK+W6tuawkeeahCA8IHNob21pbnRla2lcIDsKK+i8quiInuabsiA8IHJpbmJ1a3lva3VcIDsKK+ejgeawl+mMsumfsyA8IGppa2lyb2t1b25cIDsKK+S4jeWNlOWSjOmfsyA8IGZ1a3lvdXdhb25cIDsKK+WHjee1kOWZqCA8IHRvdWtldHN1a2lcIDsKK+Wkj+icnOafkSA8IG5hdHN1bWlrYW5cIDsKK+acrOS9jeiomOWPtyA8IGhvbicnaWtpZ291XCA7CivnrYnmlrnnmoQgPCB0b3Vob3V0ZWtpXCA7CivooZvnlJ/nrqHnkIYgPCBlaXNlaWthbnJpXCA7CivlsqnmuIXmsLQgPCBpd2FzaGltaXp1XCA7Civnq4vmoYjogIUgPCByaXRzdWFuc2hhXCA7Civnm7jkupLkuLvnvqkgPCBzb3Vnb3NodWdpXCA7CivokZfov7DlrrYgPCBjaG9qdXRzdWthXCA7CivohLPmooXmr5IgPCBub3ViYWlkb2t1XCA7Civou43nlKjlk4EgPCBndW4nJ3lvdWhpblwgOwor5b+c5Yuf6LOH6YeRIDwgb3Vib3NoaWtpblwgOwor5YOV5Luy6ZaTIDwgYm9rdW5ha2FtYVwgOwor6Zuj6KaW6IG0IDwgbmFuc2hpY2hvdVwgOwor5b6p5Y+k5Li7576pIDwgZnVra29zaHVnaVwgOwor5b6z576p5b+DIDwgdG9rdWdpc2hpblwgOwor6L+R5rW354mpIDwga2lua2FpbW9ub1wgOwor5p2x5rSL6YCaIDwgdG91eW91dHN1dVwgOwor5qyh5Lqc56Gr6YW4IDwgamlhcnl1dXNhblwgOwor5bmz5a6J5pmC5LujIDwgaGVpYW5qaWRhaVwgOwor6YmE56Cy546JIDwgdGVwcG91ZGFtYVwgOwor5rC056ekIDwgbWl6dWJha2FyaVwgOwor5rWB5aSxIDwgcnl1dXNoaXRzdVwgOwor5L6h5qC86KGoIDwga2FrYWt1aHlvdVwgOwor6Kq/5YGc6ICFIDwgY2hvdXRlaXNoYVwgOwor5q205Y+y6KazIDwgcmVraXNoaWthblwgOwor5bu656+J6LK7IDwga2VuY2hpa3VoaVwgOwor6YmL5bGRIDwga2FuJyduYWt1enVcIDsKK+S6uuaDheWKhyA8IG5pbmpvdWdla2lcIDsKK+iPsemkhSA8IGhpc2hpbW9jaGlcIDsKK+WkmuelnuaVmSA8IHRhc2hpbmt5b3VcIDsKK+aDheWgseapn+WZqCA8IGpvdWhvdWtpa2lcIDsKK+WJjeWTqOWcsCA8IHplbnNob3VjaGlcIDsKK+S4ieS9jeS4gOS9kyA8IHNhbm1paXR0YWlcIDsKK+aUv+WLmeasoeWumCA8IHNlaW11amlrYW5cIDsKK+WQieaXpSA8IGtpY2hpbmljaGlcIDsKK+S4gOW6puS4iCA8IGljaGlkb2Rha2VcIDsKK+iWrOaMhyA8IGt1c3VyaXl1YmlcIDsKK+mAo+e1oeS8miA8IHJlbnJha3VrYWlcIDsKK+S4gOiIrOiBtyA8IGlwcGFuc2hva3VcIDsKK+mbjOmbhOeVsOS9kyA8IHNoaXl1dWl0YWlcIDsKK+ekvuS8muWtpiA8IHNoYWthaWdha3VcIDsKK+WBteWvn+apnyA8IHRlaXNhdHN1a2lcIDsKK+WvneWPsOi7iiA8IHNoaW5kYWlzaGFcIDsKK+W5tOS7o+eJqSA8IG5lbmRhaW1vbm9cIDsKK+S4oeabv+S6uiA8IHJ5b3VnYWVuaW5cIDsKK+WQhOaWuSA8IG9ub29ub2dhdGFcIDsKK+atpuaWreaUv+ayuyA8IGJ1ZGFuc2VpamlcIDsKK+WQiOagvOiAhSA8IGdvdWtha3VzaGFcIDsKK+mHkeanjCA8IGthbmFkenVjaGlcIDsKK+WwgueUqOe3miA8IHNlbicneW91c2VuXCA7CivluK/ln5/luYUgPCB0YWlpa2loYWJhXCA7CivliJ3kuIDlv7UgPCBzaG9pY2hpbmVuXCA7CivntLnku4vnirYgPCBzaG91a2Fpam91XCA7Civmtojmr5LlmaggPCBzaG91ZG9rdWtpXCA7Civml6bpgqPooYYgPCBkYW4nJ25hc2h1dVwgOwor5aCF5L+h56S8IDwga2Vuc2hpbnJlaVwgOwor5a6Y5YWs5bqBIDwga2Fua291Y2hvdVwgOwor6IG06IGe5YOnIDwgY2hvdW1vbnNvdVwgOwor5aSq5bmz5qW9IDwgdGFpaGVpcmFrdVwgOwor5Lih5aSp56ekIDwgcnlvdXRlbmJpblwgOwor5a2U6ZuA55+zIDwga3VqYWt1c2VraVwgOwor5Ym15L2c5qipIDwgc291c2FrdWtlblwgOwor6Imy5LqL5birIDwgaXJvZ290b3NoaVwgOwor6YW45YyW54Kt57SgIDwgc2Fua2F0YW5zb1wgOwor5rC05b2p55S75a62IDwgc3Vpc2FpZ2FrYVwgOwor6ZmN6a2U6KGTIDwga291bWFqdXRzdVwgOwor5bCR6LOH5pysIDwgc2hvdXNoaWhvblwgOwor6LOH55Sj5qCqIDwgc2hpc2Fua2FidVwgOwor5Z+656SO5Luj6KydIDwga2lzb3RhaXNoYVwgOwor5oGQ5oCW5b+DIDwga3lvdWZ1c2hpblwgOwor5a6f6aiT55qEIDwgamlra2VudGVraVwgOwor5L2/5b6S6YGUIDwgc2hpdG90YWNoaVwgOwor5YmN6aCtIDwgbWFlZ2FzaGlyYVwgOwor5a6J6YWS5aC0IDwgeWFzdXNha2FiYVwgOwor6IG06IGe5LyaIDwgY2hvdW1vbmthaVwgOwor6IKy5YWQ6aOfIDwgaWt1amlzaG9rdVwgOwor55S35L6/5omAIDwgb3Rva29iZW5qb1wgOwor6aaW5a6f5qScIDwga3ViaWppa2tlblwgOwor57Sw6IOe6IacIDwgc2FpYm91bWFrdVwgOwor5ZCN5Lq66IKMIDwgbWVpamluaGFkYVwgOwor5bCP5a2m5qChIDwgc2hvdWdha2tvdVwgOwor5LiA5p2v5qmf5auMIDwgaXBwYWlraWdlblwgOwor5pen6Jep5Li7IDwga3l1dWhhbnNodVwgOwor5rCR5pyJ5p6XIDwgbWluJyd5dXVyaW5cIDsKK+i1pOmJhOmJsSA8IHNla2l0ZWtrb3VcIDsKK+acrOiNieWtpiA8IGhvbnpvdWdha3VcIDsKK+S/ruato+iAhSA8IHNodXVzZWlzaGFcIDsKK+miqOmAn+ioiCA8IGZ1dXNva3VrZWlcIDsKK+mBk+i3r+i8uOmAgSA8IGRvdXJveXVzb3VcIDsKK+a9nOWcqOeahCA8IHNlbnphaXRla2lcIDsKK+WkieaLjeWtkCA8IGhlbmJ5b3VzaGlcIDsKK+aXp+aAneaDsyA8IGt5dXVzaGlzb3VcIDsKK+S6nOeGseW4r+aelyA8IGFuZXR0YWlyaW5cIDsKK+mbkeacqOaelyA8IHpvdWJva3VyaW5cIDsKK+aIpumXmOeahCA8IHNlbnRvdXRla2lcIDsKK+mdkuaBr+WQkOaBryA8IGFvaWtpdG9pa2lcIDsKK+e1gumbu+i7iiA8IHNodXVkZW5zaGFcIDsKK+iDjOe+jumvqCA8IHNlbWlrdWppcmFcIDsKK+aFh+aHg+eEoeekvCA8IGluZ2luYnVyZWlcIDsKK+eptOadk+WtkCA8IGFuYWpha3VzaGlcIDsKK+S4gOW5tOS4rSA8IGljaGluZW5qdXVcIDsKK+mJhOegsuawtCA8IHRlcHBvdW1penVcIDsKK+WFqOWbveawkSA8IHplbmtva3VtaW5cIDsKK+S6uuWPo+WtpiA8IGppbmtvdWdha3VcIDsKK+a1geWHuiA8IHJ5dXVzaHV0c3VcIDsKK+a0u+WKmyA8IGthdHN1cnlva3VcIDsKK+ebtOa7kemZjSA8IGNob2trYWtrb3VcIDsKK+eznuecn+mdouebriA8IGt1c29tYWppbWVcIDsKK+S4iueUs+abuCA8IGpvdXNoaW5zaG9cIDsKK+WNteeEvCA8IHRhbWFnb3lha2lcIDsKK+mHneWNg+acrCA8IGhhcmlzZW5ib25cIDsKK+iHquS4u+imj+WItiA8IGppc2h1a2lzZWlcIDsKK+S4iealreWcsCA8IHNhbmd5b3VjaGlcIDsKK+S4puWkp+aKtSA8IG5hbWl0YWl0ZWlcIDsKK+eZvembsuefsyA8IGhha3V1bnNla2lcIDsKK+awtOeFmSA8IG1penVrZW11cmlcIDsKK+asoOW4reiAhSA8IGtlc3Nla2lzaGFcIDsKK+W8leW9k+mHkSA8IGhpa2lhdGVraW5cIDsKK+ijhemjvumfsyA8IHNvdXNob2t1b25cIDsKK+imluiBtOiAhSA8IHNoaWNob3VzaGFcIDsKK+S5s+iHreWFkCA8IG55dXVzaHV1amlcIDsKK+aJi+ayouacrCA8IHNodXRha3Vib25cIDsKK+itpuaIkuW/gyA8IGtlaWthaXNoaW5cIDsKK+W8peeUn+aZguS7oyA8IHlheW9pamlkYWlcIDsKK+S4reWbveiqniA8IGNodXVnb2t1Z29cIDsKK+WFpeaJi+mboyA8IG55dXVzaHVuYW5cIDsKK+mbu+a1geioiCA8IGRlbnJ5dXVrZWlcIDsKK+mBk+mBkyA8IG1pY2hpbWljaGlcIDsKK+S6iOWCmeS8muirhyA8IHlvYmlrYWlkYW5cIDsKK+WQm+S4u+WbvSA8IGt1bnNodWtva3VcIDsKK+mfs+alveWtpiA8IG9uZ2FrdWdha3VcIDsKK+mMr+Wtl+eXhyA8IHNha3VqaXNob3VcIDsKK+etieS9jeani+mAoCA8IHRvdWlrb3V6b3VcIDsKK+Wkp+ebpOefsyA8IGRhaWJhbmpha3VcIDsKK+WIhuWtkOmHjyA8IGJ1bnNoaXJ5b3VcIDsKK+S4gOeVquiMtiA8IGljaGliYW5jaGFcIDsKK+S7lua1geippuWQiCA8IHRhcnl1dWppYWlcIDsKK+WuieWumuaTjeS9nCA8IGFudGVpc291c2FcIDsKK+eEoeWEn+ihjOeCuiA8IG11c2hvdWtvdWlcIDsKK+mBheWIu+iAhSA8IGNoaWtva3VzaGFcIDsKK+WGjeeZuui2syA8IHNhaWhvc3Nva3VcIDsKK+Wvvui5oOeahCA8IHRhaXNob3Rla2lcIDsKK+Wkj+acn+WtpuagoSA8IGtha2lnYWtrb3VcIDsKK+anjeihk+WutiA8IHNvdWp1dHN1a2FcIDsKK+atjOisoeabsiA8IGtheW91a3lva3VcIDsKK+a0u+S6uueUuyA8IGthdHN1amluZ2FcIDsKK+S6jOiogOebriA8IGZ1dGFrb3RvbWVcIDsKK+WOn+WtkOmHjyA8IGdlbnNoaXJ5b3VcIDsKK+W8t+iFsCA8IHRzdXlvZ29zaGlcIDsKK+Wkp+W5heeJqSA8IG9vaGFiYW1vbm9cIDsKK+eLrOWlj+S8miA8IGRva3Vzb3VrYWlcIDsKK+WInemcnCA8IGhhdHN1c2hpbW9cIDsKK+Wuh+WumeWMu+WtpiA8IHVjaHV1aWdha3VcIDsKK+WQjeiqiemZpOmaiiA8IG1laXlvam90YWlcIDsKK+S6lOiHk+WFreiFkSA8IGdvem91cm9wcHVcIDsKK+WPs+W3piA8IG1pZ2loaWRhcmlcIDsKK+iEseiHreWJpCA8IGRhc3NodXV6YWlcIDsKK+W/q+mAn+iIuSA8IGthaXNva3VzZW5cIDsKK+eUn+auluWZqCA8IHNlaXNob2t1a2lcIDsKK+i7iuS4reirhyA8IHNoYWNodXVkYW5cIDsKK+mOrumdmeWJpCA8IGNoaW5zZWl6YWlcIDsKK+WQiOS9teeXhyA8IGdhcHBlaXNob3VcIDsKK+aHh+imquS8miA8IGtvbnNoaW5rYWlcIDsKK+edgOmbqiA8IGNoYWt1c2V0c3VcIDsKK+W/hea7hSA8IGhpdHN1bWV0c3VcIDsKK+eJveeJm+aYnyA8IGtlbmd5dXVzZWlcIDsKK+Wft+ihjOWnlOWToSA8IHNoaWtrb3VpaW5cIDsKK+mHjOW/gyA8IHNhdG9nb2tvcm9cIDsKK+Wbm+mdoualmuatjCA8IHNoaW1lbnNva2FcIDsKK+iMtuafhOadkyA8IGNoYWJpc2hha3VcIDsKK+acieelnuirliA8IHl1dXNoaW5yb25cIDsKK+WRveS4reaVsCA8IG1laWNodXVzdXVcIDsKK+aWueino+efsyA8IGhvdWthaXNla2lcIDsKK+WjsuaOm+mHkSA8IHVyaWtha2VraW5cIDsKK+i2heW3qOaYnyA8IGNob3VreW9zZWlcIDsKK+eri+S9k+eahCA8IHJpdHRhaXRla2lcIDsKK+eZveaYvOWkoiA8IGhha3VjaHV1bXVcIDsKK+aWsOiomOmMsiA8IHNoaW5raXJva3VcIDsKK+S/nemHiOmHkSA8IGhvc2hha3VraW5cIDsKK+WPjeeykuWtkCA8IGhhbnJ5dXVzaGlcIDsKK+S4i+i2s+aWmSA8IGdlc29rdXJ5b3VcIDsKK+azqOaWh+abuCA8IGNodXVtb25zaG9cIDsKK+WogemiqOWgguWggiA8IGlmdXVkb3Vkb3VcIDsKK+WMluWQiOeJqSA8IGthZ291YnV0c3VcIDsKK+Wxi+W9ouiIuSA8IHlha2F0YWJ1bmVcIDsKK+i7jeS6i+S8muitsCA8IGd1bmppa2FpZ2lcIDsKK+i3m+ihjOaZr+awlyA8IGhha291a2Vpa2lcIDsKK+mBi+WLleWKmyA8IHVuZG91cnlva3VcIDsKK+mKmOmKmOeavyA8IG1laW1laXphcmFcIDsKK+m7kuabnOWyqSA8IGtva3V5b3VnYW5cIDsKK+WOn+S9nOiAhSA8IGdlbnNha3VzaGFcIDsKK+WFteermeWtpiA8IGhlaXRhbmdha3VcIDsKK+e0sOWvhueUuyA8IHNhaW1pdHN1Z2FcIDsKK+mlgumjqeeyieeXhSA8IHVkb25rb2J5b3VcIDsKK+S4gOeVque3miA8IGljaGliYW5zZW5cIDsKK+WNiuS6uuWJjSA8IGhhbicnbmlubWFlXCA7CivliofloLTooZcgPCBnZWtpam91Z2FpXCA7CivlpKnkuIvkuIDlk4EgPCB0ZW5rYWlwcGluXCA7CivmsbrorbDmqKkgPCBrZXRzdWdpa2VuXCA7Civln7rlnLDplonpjpYgPCBraWNoaWhlaXNhXCA7CivokbXnpa0gPCBhb2ltYXRzdXJpXCA7CivkuIDmp73lvI8gPCBpc3NvdXNoaWtpXCA7CivlroXmgKXkvr8gPCB0YWtreXV1YmluXCA7Civmsrnlo7cgPCBhYnVyYXRzdWJvXCA7CivogIHkurrnl4UgPCByb3VqaW5ieW91XCA7CivnrYboqJjnlKjlhbcgPCBoaWtraXlvdWd1XCA7CivokrjmsJfmqZ/plqIgPCBqb3VraWtpa2FuXCA7CivlkIjmoLzngrkgPCBnb3VrYWt1dGVuXCA7CivliLvotrMgPCBraXphbWlhc2hpXCA7Civoqabkvpvlk4EgPCBzaGlreW91aGluXCA7CivkuK3loIXmiYsgPCBjaHV1a2Vuc2h1XCA7CivokZvppYXpoK0gPCBrdXp1bWFuanV1XCA7CivmjqXlrqLlqaYgPCBzZWtreWFrdWZ1XCA7CivmtLvlrZfmnKwgPCBrYXRzdWppaG9uXCA7CivllY/poYzliocgPCBtb25kYWlnZWtpXCA7Civno4HmsJfmirXmipcgPCBqaWtpdGVpa291XCA7CivogbTorJvnlJ8gPCBjaG91a291c2VpXCA7CivmsLTmnpUgPCBtaXp1bWFrdXJhXCA7Civos73piq3nrrEgPCBzYWlzZW5iYWtvXCA7Civmj5DllLHogIUgPCB0ZWlzaG91c2hhXCA7CivkuIHlrZflrpropo8gPCB0ZWlqaWpvdWdpXCA7CivlmbTpo6/niakgPCBmdW5wYW5tb25vXCA7Civlm7rlrprph5HliKkgPCBrb3RlaWtpbnJpXCA7CivliIbmpbXljJYgPCBidW5reW9rdWthXCA7CivnrqHnkIblsYAgPCBrYW5yaWt5b2t1XCA7Civop5LpjJDlj7AgPCBrYWt1c3VpZGFpXCA7Civnpo/lsqHnnIwgPCBmdWt1b2tha2VuXCA7Civni6zlo4floLQgPCBkb2t1ZGFuam91XCA7Civku7LplpPopJIgPCBuYWthbWFib21lXCA7Civpmo/mg7PpjLIgPCB6dWlzb3Vyb2t1XCA7Civmkq7lvbHogIUgPCBzYXRzdWVpc2hhXCA7CivlpoLoj6nolqkgPCBueW9ib3NhdHN1XCA7Civlkb3kuK3lvL4gPCBtZWljaHV1ZGFuXCA7CivnnJ/liIbmlbAgPCBzaGluYnVuc3V1XCA7CivpsK/pm7IgPCBpd2FzaGlndW1vXCA7Civpm4fnlKjkuLsgPCBrb3lvdW51c2hpXCA7Civlv4Pmn4QgPCBrb2tvcm9nYXJhXCA7Civotbfli5XmmYLplpMgPCBraWRvdWppa2FuXCA7CivlubsgPCBtYWJvcm9zaGlcIDsKK+WxjSA8IHNoaWthYmFuZVwgOwor5a2kIDwgbWluYXNoaWdvXCA7CivnjKogPCBpbm9zaGlzaGlcIDsKK+WUhyA8IGt1Y2hpYmlydVwgOwor5qqjIDwgaG9iYXNoaXJhXCA7CivmqZggPCB0YWNoaWJhbmFcIDsKK+WFtSA8IHRzdXdhbW9ub1wgOwor6YqAIDwgc2hpcm9nYW5lXCA7CivpgqogPCB5b2tvc2hpbWFcIDsKK+Wxr+eUsOWFtSA8IHRvbmRlbmhlaVwgOwor5pW16YOo6ZqKIDwgdGVraWJ1dGFpXCA7CivmirXlvZPmqKkgPCB0ZWl0b3VrZW5cIDsKK+adkeWkq+WtkCA8IHNvbnB1dXNoaVwgOwor6Ieq5bex5qy6556eIDwgamlrb2dpbWFuXCA7CivmhbDlronml4XooYwgPCBpYW5yeW9rb3VcIDsKK+aPmuawtOi7iiA8IHlvdXN1aXNoYVwgOwor5pWR5o+06LuNIDwga3l1dWVuZ3VuXCA7CivogrLmr5vliaQgPCBpa3Vtb3V6YWlcIDsKK+edpuiogCA8IG11dHN1Z290b1wgOwor5Y+O5aWqIDwgc2h1dWRhdHN1XCA7Civpu5LpoK3lt74gPCBrdXJvenVraW5cIDsKK+ino+avkuWJpCA8IGdlZG9rdXphaVwgOwor5oGQ5ZadIDwga3lvdWthdHN1XCA7Civpq5jlp7/li6IgPCBrb3VzaGlzZWlcIDsKK+Wxi+WPsOW6lyA8IHlhdGFpbWlzZVwgOwor6LW356OB5YqbIDwga2lqaXJ5b2t1XCA7Civljp/nlJ/mnpcgPCBnZW5zZWlyaW5cIDsKK+attOWPsueUuyA8IHJla2lzaGlnYVwgOwor55uu6aCtIDwgbWVnYXNoaXJhXCA7CivojYnppKAgPCBrdXNhbW9jaGlcIDsKK+WJjeWNiueUnyA8IHplbmhhbnNlaVwgOwor5a2Y5Zyo6KuWIDwgc29uemFpcm9uXCA7CivliofogbcgPCBnZWtpc2hva3VcIDsKK+W4jOacm+eahCA8IGtpYm91dGVraVwgOwor6Jas5LujIDwga3VzdXJpZGFpXCA7Civkurrlt6Xpm7cgPCBqaW5rb3VyYWlcIDsKK+WwgueUqOapnyA8IHNlbicneW91a2lcIDsKK+W8t+ebtCA8IGt5b3VjaG9rdVwgOwor5bqm6YeP6KGhIDwgZG9yeW91a291XCA7CivlhZrlpKfkvJogPCB0b3V0YWlrYWlcIDsKK+WQjOS5l+iAhSA8IGRvdWpvdXNoYVwgOwor5Yq05YuV6ICFIDwgcm91ZG91c2hhXCA7CivljZjmlbDlnosgPCB0YW5zdXVrZWlcIDsKK+W+k+WFhOW8nyA8IGp1dWtlaXRlaVwgOwor6b2n5q2v6aGeIDwgZ2Vzc2hpcnVpXCA7CivlkITlhoogPCBrYWt1c2F0c3VcIDsKK+mAmuiqrCA8IHRzdXVzZXRzdVwgOwor5Yag5pyo6ZaAIDwga2FidWtpbW9uXCA7Civku5jlsZ7lk4EgPCBmdXpva3VoaW5cIDsKK+ioquWVj+iAhSA8IGhvdW1vbnNoYVwgOwor5rKz5Y+jIDwga2F3YWd1Y2hpXCA7CivpgIbos4ogPCBneWFrdXpva3VcIDsKK+mBk+iNiSA8IG1pY2hpa3VzYVwgOwor55m66aCt5Lq6IDwgaG90dG91bmluXCA7CivmrbvnpZ4gPCBzaGluaWdhbWlcIDsKK+aWh+mBuOW3pSA8IGJ1bnNlbmtvdVwgOwor6YGp6IG3IDwgdGVraXNob2t1XCA7CivmrKDokL0gPCBrZXRzdXJha3VcIDsKK+W3u+muqCA8IG1ha2l6dXNoaVwgOwor5ZCM5bGF5Lq6IDwgZG91a3lvbmluXCA7Civlj4LoqaPkurogPCBzYW5rZWluaW5cIDsKK+W9ueWToeS8miA8IHlha3VpbmthaVwgOwor5a2k56uL6KqeIDwga29yaXRzdWdvXCA7CivnlJ/oj5PlrZAgPCBuYW1hZ2FzaGlcIDsKK+mbu+awl+WZqOWFtyA8IGRlbmtpa2lndVwgOwor5Yud546HIDwgc2hvdXJpdHN1XCA7Civli5jlrprmm7ggPCBrYW5qb3VzaG9cIDsKK+mWi+WCrOWcsCA8IGthaXNhaWNoaVwgOwor6JC95b6M6ICFIDwgcmFrdWdvc2hhXCA7Civlh7rou40gPCBzaHV0c3VndW5cIDsKK+WNseapn+aJk+iAhSA8IGtpa2lkYXNoYVwgOwor5Y2K5pelIDwgaGFuJyduaWNoaVwgOwor5aGp5YyW5rC057SgIDwgZW5rYXN1aXNvXCA7CivljoTlubQgPCB5YWt1ZG9zaGlcIDsKK+eUt+WtkOagoSA8IGRhbnNoaWtvdVwgOwor5Yml6ISxIDwgaGFrdWRhdHN1XCA7CivkuIDoi6blirQgPCBoaXRva3Vyb3VcIDsKK+WCrOa2meW8viA8IHNhaXJ1aWRhblwgOwor57Wx5rK75qipIDwgdG91Y2hpa2VuXCA7CivlvpLmoZwgPCBhZGF6YWt1cmFcIDsKK+WNg+aXpSA8IHNlbicnbmljaGlcIDsKK+emgei7oui8iSA8IGtpbnRlbnNhaVwgOwor5Lq65LqL55Ww5YuVIDwgamluamlpZG91XCA7CivmuK/mub7nqI4gPCBrb3V3YW56ZWlcIDsKK+S4jeWvm+WuuSA8IGZ1a2FuJyd5b3VcIDsKK+WIpeihjCA8IGJldHN1Z3lvdVwgOwor5LiN5L+h5LuwIDwgZnVzaGlua291XCA7CivlpKrlhazmnJsgPCB0YWlrb3Vib3VcIDsKK+S4uOaLrOW8pyA8IG1hcnVnYWtrb1wgOwor5aSW5ZCR5oCnIDwgZ2Fpa291c2VpXCA7CivokL3nnYAgPCByYWt1Y2hha3VcIDsKK+S4jei2s+WJjSA8IHRhcmF6dW1hZVwgOwor5LqM5Zu96ZaTIDwgbmlrb2t1a2FuXCA7CivkupzpiZvpiYTmnb8gPCBhZW50ZXBwYW5cIDsKK+S8muiRrOiAhSA8IGthaXNvdXNoYVwgOwor6YGu5LqM54Sh5LqMIDwgc2hhbmltdW5pXCA7CivpgIbopbIgPCBneWFrdXNodXVcIDsKK+emj+Wvv+iNiSA8IGZ1a3VqdXNvdVwgOwor5q+S5q66IDwgZG9rdXNhdHN1XCA7Civnorrlrp8gPCBrYWt1aml0c3VcIDsKK+azleabueeVjCA8IGhvdXNvdWthaVwgOwor6YeN5Ye6IDwganV1c2h1dHN1XCA7Civlj6PlhYggPCBrdWNoaXNha2lcIDsKK+mBi+i8uOecgSA8IHVuJyd5dXNob3VcIDsKK+WPo+WFgyA8IGt1Y2hpbW90b1wgOwor5byP55uuIDwgc2hpa2ltb2t1XCA7CivljZPmipwgPCB0YWt1YmF0c3VcIDsKK+S5l+i7iumnhSA8IGpvdXNoYWVraVwgOwor5pyd6a6u6KqeIDwgY2hvdXNlbmdvXCA7Civpnanlkb3lrrYgPCBrYWt1bWVpa2FcIDsKK+apn+WvhuiyuyA8IGtpbWl0c3VoaVwgOwor5Lq66YCg57GzIDwgamluem91bWFpXCA7CivmtIvlk4HlupcgPCB5b3VoaW50ZW5cIDsKK+WAi+S6uueahCA8IGtvamludGVraVwgOwor5LiA5YWD5YyWIDwgaWNoaWdlbmthXCA7CivkvJ3pgZPoiLkgPCBkZW5kb3VzZW5cIDsKK+ayoeWFpSA8IGJvdHN1bnl1dVwgOwor5Zyn6L+r5oSfIDwgYXBwYWt1a2FuXCA7CivkuojpmLLnrZYgPCB5b2JvdXNha3VcIDsKK+iLpemaoOWxhSA8IHdha2Fpbmt5b1wgOwor5a6a5L2P6ICFIDwgdGVpanV1c2hhXCA7Civlj7PkuIsgPCBtaWdpc2hpdGFcIDsKK+awtOa6tuaApyA8IHN1aXlvdXNlaVwgOwor5by354OIIDwga3lvdXJldHN1XCA7CivpgbroqIDmm7ggPCB5dWlnb25zaG9cIDsKK+S7o+eHg+i7iiA8IGRhaW5lbnNoYVwgOwor5aSJ5oiQ5bKpIDwgaGVuc2VpZ2FuXCA7CivkuIDlrprph48gPCBpdHRlaXJ5b3VcIDsKK+iLpueBsOefsyA8IGt1a2Fpc2VraVwgOwor5bem5b+D5oi/IDwgc2FzaGluYm91XCA7CivovKrnlarliLYgPCByaW5iYW5zZWlcIDsKK+iri+mhmOiAhSA8IHNlaWdhbnNoYVwgOwor6YC46ISxIDwgaXRzdWRhdHN1XCA7Civnmb3pu5IgPCBzaGlyb2t1cm9cIDsKK+ebtOmBlCA8IGppa2l0YXRzdVwgOwor5Zyn6L+r5oCnIDwgYXBwYWt1c2VpXCA7CivmgYvku4cgPCBrb2lnYXRha2lcIDsKK+e+heeUn+mWgCA8IHJhc2hvdW1vblwgOwor55u06YCyIDwgY2hva3VzaGluXCA7CivlgIvkurrnlKggPCBrb2ppbicneW91XCA7Civkuqvlj5fogIUgPCBreW91anVzaGFcIDsKK+W+oei2s+WKtCA8IGdvc29rdXJvdVwgOwor55u06YCaIDwgY2hva3V0c3V1XCA7Civlib3nqoMgPCBoeW91c2V0c3VcIDsKK+eIrOiZq+mhniA8IGhhY2h1dXJ1aVwgOwor6L+35L+h5a62IDwgbWVpc2hpbmthXCA7CivlibLnrrggPCB3YXJpYmFzaGlcIDsKK+abuOewoeaWhyA8IHNob2thbmJ1blwgOwor6Kix5Y+v6Ki8IDwga3lva2FzaG91XCA7CivmsJHkuLvlhZogPCBtaW5zaHV0b3VcIDsKK+WFjem7nCA8IG1lbmNodXRzdVwgOwor6YeR5LuPIDwga2FuYWJ1dHN1XCA7Civnmb3pt7ogPCBzaGlyYXNhZ2lcIDsKK+mGteWHuiA8IGt5b3NodXRzdVwgOwor55u06L2EIDwgY2hva2thdHN1XCA7CivlpKrliIDlhYggPCB0YWNoaXNha2lcIDsKK+WNoOW4qyA8IHVyYW5haXNoaVwgOwor5Lyd6YGT6ICFIDwgZGVuZG91c2hhXCA7Civnm6PoppboiLkgPCBrYW5zaGlzZW5cIDsKK+e4hOaaluewviA8IG5hd2Fub3JlblwgOwor57a/6KO95ZOBIDwgbWVuc2VpaGluXCA7Civnmq7pnbQgPCBrYXdhZ3V0c3VcIDsKK+WHuui1sOmmrCA8IHNodXNzb3ViYVwgOwor5oCl5YiHIDwga3l1dXNldHN1XCA7Civkuozpmo7lu7ogPCBuaWthaWRhdGVcIDsKK+S/ruato+ahiCA8IHNodXVzZWlhblwgOwor5a6j5Lyd5oimIDwgc2VuZGVuc2VuXCA7CivphYnlubQgPCB0b3JpZG9zaGlcIDsKK+iri+iyoOalrSA8IHVrZW9pZ3lvdVwgOwor6aGe5Lq654y/IDwgcnVpamluJydlblwgOwor5ZCI55CG55qEIDwgZ291cml0ZWtpXCA7Civli53osqDluKsgPCBzaG91YnVzaGlcIDsKK+ezuOiar+iakyA8IGl0b21pbWl6dVwgOwor5bu26ZW35oimIDwgZW5jaG91c2VuXCA7CivlnJ/lu7rmpa0gPCBkb2tlbmd5b3VcIDsKK+i0iOWRiOWTgSA8IHpvdXRlaWhpblwgOwor6YeR6Ymx5ZywIDwga2lua291Y2hpXCA7CivnnJ/oo7ggPCBtYXBwYWRha2FcIDsKK+aYvOW+oemjryA8IGhpcnVnb2hhblwgOwor6JKZ5Y+k6KWeIDwgbW91a29oaWRhXCA7CivljYrmnIjliIogPCBoYW5nZWtrYW5cIDsKK+WHuuihgCA8IHNodWtrZXRzdVwgOwor55m96bGaIDwgc2hpcm9naXN1XCA7CivpgZPnrYsgPCBtaWNoaXN1amlcIDsKK+ecjOawkeeojiA8IGtlbm1pbnplaVwgOwor5omH5YuV6ICFIDwgc2VuZG91c2hhXCA7Civpm4bkvJrmiYAgPCBzaHV1a2Fpam9cIDsKK+acqOW3peWgtCA8IG1va2tvdWpvdVwgOwor5rSS6JC96ICFIDwgc2hhcmVtb25vXCA7CivmiKbpl5jluL0gPCBzZW50b3Vib3VcIDsKK+WkleWMlueypyA8IHl1dWdlc2hvdVwgOwor6YGT56uvIDwgbWljaGliYXRhXCA7Civlj6/li5XloLAgPCBrYWRvdXpla2lcIDsKK+Wkp+W5tOWilyA8IG9vdG9zaGltYVwgOwor5rOV55CG5a2mIDwgaG91cmlnYWt1XCA7Civpu4TpoLfom4cgPCBhb2RhaXNob3VcIDsKK+mAj+aYjuS9kyA8IHRvdW1laXRhaVwgOwor5pWF6Zqc6LuKIDwga29zaG91c2hhXCA7Civnm6PoppbogIUgPCBrYW5zaGlzaGFcIDsKK+WNuOWjsiA8IG9yb3NoaXVyaVwgOwor5b+Y5aSxIDwgYm91c2hpdHN1XCA7CivolK3lj6MgPCBrYWdlZ3VjaGlcIDsKK+WNteWkpyA8IHRhbWFnb2RhaVwgOwor5byB5oW26I2JIDwgYmVua2Vpc291XCA7CivliJ3oirEgPCBoYXRzdWhhbmFcIDsKK+mBk+eoiyA8IG1pY2hpbm9yaVwgOwor5a2Y5Zyo6ICFIDwgc29uemFpc2hhXCA7Civlhajlm73ljLogPCB6ZW5rb2t1a3VcIDsKK+eZvemrqiA8IGhha3VoYXRzdVwgOwor5aSp55qH5peXIDwgdGVuJydub3VraVwgOwor5a6Y5YOa5YyWIDwga2FucnlvdWthXCA7Civml6LlvpfmqKkgPCBraXRva3VrZW5cIDsKK+WFiee3mumKgyA8IGtvdXNlbmp1dVwgOwor56OU5YiRIDwgaGFyaXRzdWtlXCA7Civku67pnaLliocgPCBrYW1lbmdla2lcIDsKK+apn+aisOeahCA8IGtpa2FpdGVraVwgOwor5b2m5pifIDwgaGlrb2Jvc2hpXCA7CivpgbrkvJ3lnLDlm7MgPCBpZGVuY2hpenVcIDsKK+i+m+i+oyA8IHNoaW5yYXRzdVwgOwor5q2j54mpIDwgc2hvdWJ1dHN1XCA7Civlk4HjgIUgPCBzaGluYWppbmFcIDsKK+eGqOaWl+e0mSA8IG5vc2hpZ2FtaVwgOwor5YaZ5qSN5qmfIDwgc2hhc2hva2tpXCA7Civlh7rol40gPCBzaHV0c3VyYW5cIDsKK+acrOS9k+irliA8IGhvbnRhaXJvblwgOwor55m65aOw5rOVIDwgaGFzc2VpaG91XCA7Civntabmua/lmaggPCBreXV1dG91a2lcIDsKK+W5tOiLpSA8IHRvc2hpd2FrYVwgOwor6YGK6IiI6LK7IDwgeXV1a3lvdWhpXCA7CivlubPlronkuqwgPCBoZWlhbmt5b3VcIDsKK+mAhuiHoyA8IGd5YWt1c2hpblwgOwor55Sf5qyg5Ly4IDwgbmFtYWFrdWJpXCA7CivpgIHku5jlhYggPCBzb3VmdXNha2lcIDsKK+WklumHjuW4rSA8IGdhaXlhc2VraVwgOwor5bmz6IqdIDwgaGlyYXNoaWJhXCA7CivmqKrpnaIgPCB5b2tvdHN1cmFcIDsKK+eri+S9k+aIpiA8IHJpdHRhaXNlblwgOwor55u06KqtIDwgY2hva3Vkb2t1XCA7Civnm6PoppbntrIgPCBrYW5zaGltb3VcIDsKK+aciOawtOmHkSA8IGdlc3N1aWtpblwgOwor5q2j5oqV5omLIDwgc2VpdG91c2h1XCA7Civlh53ooYAgPCBneW91a2V0c3VcIDsKK+mBoOi1pOWkliA8IGVuc2VraWdhaVwgOwor5oyH56S66JasIDwgc2hpaml5YWt1XCA7CivpgIPohbAgPCBuaWdlZ29zaGlcIDsKK+W/g+WkqiA8IHRva29yb3RlblwgOwor55u06KizIDwgY2hva3V5YWt1XCA7CivliJ3ogLMgPCBoYXRzdW1pbWlcIDsKK+S/oeWPt+apnyA8IHNoaW5nb3VraVwgOwor5LqV5oi46LuKIDwgaWRvZ3VydW1hXCA7CivmnInlkI3nqI4gPCB5dXVtZWl6ZWlcIDsKK+eri+S9k+aEnyA8IHJpdHRhaWthblwgOwor5YSq5YWI5qipIDwgeXV1c2Vua2VuXCA7Civlrp/pqJPloLQgPCBqaWtrZW5qb3VcIDsKK+eJoeS4uemkhSA8IGJvdGFtb2NoaVwgOwor57WM5Zuj6YCjIDwga2VpZGFucmVuXCA7CivkuI3ms5XooYzngrogPCBmdWhvdWtvdWlcIDsKK+aWremgreWPsCA8IGRhbnRvdWRhaVwgOwor5LqI57SE6ICFIDwgeW95YWt1c2hhXCA7CivntYLlpJznga8gPCBzaHV1eWF0b3VcIDsKK+aal+m7kumdoiA8IGFua29rdW1lblwgOwor5a6j5Lyd5bGLIDwgc2VuZGVuJyd5YVwgOwor5Luj5pu/5ZOBIDwgZGFpdGFpaGluXCA7Civngq3phbjloakgPCB0YW5zYW4nJ2VuXCA7CivkuIvlrr/lsYsgPCBnZXNodWt1eWFcIDsKK+ijnOe1pue3miA8IGhva3l1dXNlblwgOwor5ZCN5Lq65oimIDwgbWVpamluc2VuXCA7CivkuIDoiKzluK0gPCBpcHBhbnNla2lcIDsKK+mBrembo+iAhSA8IHNvdW5hbnNoYVwgOwor55m96ZuqIDwgaGFrdXNldHN1XCA7Civlh7roibIgPCBzaHVzc2hva3VcIDsKK+WOn+WtkOegsiA8IGdlbnNoaWhvdVwgOwor5YCS572u5rOVIDwgdG91Y2hpaG91XCA7Civlu4Pnlr4gPCBoYWlzaGl0c3VcIDsKK+eFp+a6luWZqCA8IHNob3VqdW5raVwgOwor5Y6f5L2P5rCRIDwgZ2VuanV1bWluXCA7CivogZblhazkvJogPCBzZWlrb3VrYWlcIDsKK+WKh+eDiCA8IGdla2lyZXRzdVwgOwor5Y6f55Sj5ZywIDwgZ2Vuc2FuY2hpXCA7Civpnanlkb3lhZAgPCBrYWt1bWVpamlcIDsKK+mAn+ethiA8IHNva3VoaXRzdVwgOwor5YSq6ae/6aasIDwgeXV1c2h1bmJhXCA7CivkuLvmg4Xoq5YgPCBzaHVqb3Vyb25cIDsKK+mqqOiRo+WTgSA8IGtvdHRvdWhpblwgOwor566h6LKh5Lq6IDwga2FuemFpbmluXCA7CivmvJTliofnlYwgPCBlbmdla2lrYWlcIDsKK+mKgOmWo+WvuiA8IGdpbmtha3VqaVwgOwor6aKo6bOl5bqnIDwgZnV1Y2hvdXphXCA7CivmjJ/nnrzlmaggPCBreW91a2Vua2lcIDsKK+aVmeaOiOazlSA8IGt5b3VqdWhvdVwgOwor6Zu75rCX6YecIDwgZGVua2lnYW1hXCA7Civpm7vmsJfph48gPCBkZW5raXJ5b3VcIDsKK+awtOWPoyA8IG1penVndWNoaVwgOwor5q275L2T6YG65qOEIDwgc2hpdGFpaWtpXCA7CivngrnlhYnmupAgPCB0ZW5rb3VnZW5cIDsKK+aXpeWIiue0mSA8IG5pa2thbnNoaVwgOwor6ZaT54uC6KiAIDwgYWlreW91Z2VuXCA7CivmrrrmiK4gPCBzYXRzdXJpa3VcIDsKK+iAgeS6uuaApyA8IHJvdWppbnNlaVwgOwor5b6M5a6kIDwga291c2hpdHN1XCA7CivoqIjmlbDnrqEgPCBrZWlzdXVrYW5cIDsKK+mHkeWIqememCA8IGtpbnJpc2hvdVwgOwor6JOE5aa+IDwgY2hpa3VzaG91XCA7Civku67mlL/lupwgPCBrYXJpc2VpZnVcIDsKK+ePvuS7o+eJiCA8IGdlbmRhaWJhblwgOwor5L2O5ae/5YuiIDwgdGVpc2hpc2VpXCA7CivmgKXpmY3kuIsgPCBreXV1a291a2FcIDsKK+erpeipseWKhyA8IGRvdXdhZ2VraVwgOwor5a6f6aiT5Y+wIDwgamlra2VuZGFpXCA7CivmsLTmiJDlsqkgPCBzdWlzZWlnYW5cIDsKK+W+oeWvruS6uiA8IGdvcnlvdW5pblwgOwor6Ieq6Lqr55WqIDwgamlzaGluYmFuXCA7CivnoILmmYLoqIggPCBzdW5hZG9rZWlcIDsKK+WGhemHjuWuieaJkyA8IG5haXlhYW5kYVwgOwor6KGA6YGU56OoIDwgY2hpZGFydW1hXCA7CivppIrpto/loLQgPCB5b3VrZWlqb3VcIDsKK+mAsueZuiA8IHNoaW5wYXRzdVwgOwor6ISx6LWw5YW1IDwgZGFzc291aGVpXCA7CivojLbooosgPCBjaGFidWt1cm9cIDsKK+iNmOWckuWItiA8IHNob3VlbnNlaVwgOwor5Yid56m6IDwgaGF0c3V6b3JhXCA7CivliY3ljYrmiKYgPCB6ZW5wYW5zZW5cIDsKK+iok+ipgeWtpiA8IGt1bmtvZ2FrdVwgOwor6LuK5LqV5oi4IDwga3VydW1haWRvXCA7CivlpJbli5nnnIEgPCBnYWltdXNob3VcIDsKK+aWsOaZguS7oyA8IHNoaW5qaWRhaVwgOwor5riJ5aSW6YOoIDwgc2hvdWdhaWJ1XCA7CivmqKrpgZMgPCB5b2tvbWljaGlcIDsKK+aEn+WFiee0mSA8IGthbmtvdXNoaVwgOwor5pKu5b2x5qmfIDwgc2F0c3VlaWtpXCA7CivkuIDnlJ/mtq8gPCBpc3Nob3VnYWlcIDsKK+awtOa6kOWcsCA8IHN1aWdlbmNoaVwgOwor5pW05rWB5ZmoIDwgc2Vpcnl1dWtpXCA7CivlubPnqY/nhKHkuosgPCBoZWlvbmJ1amlcIDsKK+iQveacrSA8IHJha3VzYXRzdVwgOwor5Yiu55uuIDwga2F0c3Vtb2t1XCA7Civnmb3phZIgPCBzaGlyb3pha2VcIDsKK+mKgOihjOeVjCA8IGdpbmtvdWthaVwgOwor54++5L2P5omAIDwgZ2VuanV1c2hvXCA7Civli5jmiYAgPCBrYW5kb2tvcm9cIDsKK+WJjeWPo+S4iiA8IG1hZWtvdWpvdVwgOwor5Zyw5a++56m6IDwgY2hpdGFpa3V1XCA7Civov73nqoEgPCB0c3VpdG90c3VcIDsKK+esrOS4gOmbhiA8IGRhaWlzc2h1dVwgOwor5byP5pyNIDwgc2hpa2lmdWt1XCA7CivlpKnnmoflrrYgPCB0ZW4nJ25vdWtlXCA7CivljZTlipsgPCBreW91cnlva3VcIDsKK+e1puayueiIuSA8IGt5dXV5dXNlblwgOwor5Luj5pu45Lq6IDwgZGFpc2hvbmluXCA7CivlibXlp4vogIUgPCBzb3VzaGlzaGFcIDsKK+S+oeagvOW4ryA8IGtha2FrdXRhaVwgOwor5aC05omA5p+EIDwgYmFzaG9nYXJhXCA7Civkv6Hlj7fmiYAgPCBzaGluZ291am9cIDsKK+aYjuaYjuW+jOaXpSA8IHNoaWFzYXR0ZVwgOwor55+z5oyBIDwgaXNoaW1vY2hpXCA7CivmgqrlvqrnkrAgPCBha3VqdW5rYW5cIDsKK+iQveaXpSA8IHJha3VqaXRzdVwgOwor5LiA5rCX5ZG15oiQIDwgaWtraWthc2VpXCA7Civlrp/pqJPlgKQgPCBqaWtrZW5jaGlcIDsKK+mAuOeJqSA8IGljaGltb3RzdVwgOwor5LiN6aKo5rWBIDwgYnVmdXVyeXV1XCA7CivlrqPkvJ3lk6EgPCBzZW5kZW4nJ2luXCA7CivpmaTpm7vph50gPCBqb2RlbmJhcmlcIDsKK+ihm+eUn+WtpiA8IGVpc2VpZ2FrdVwgOwor55u06IW4IDwgY2hva3VjaG91XCA7CivmrablmajosrjkuI4gPCBidWtpdGFpeW9cIDsKK+eZuuimi+iAhSA8IGhha2tlbnNoYVwgOwor5rOV546L5bqBIDwgaG91b3VjaG91XCA7CivmrbTml6UgPCByZWtpaml0c3VcIDsKK+S4gOeVquaJiyA8IGljaGliYW50ZVwgOwor5LiA5aSr5aSa5aa7IDwgaXBwdXRhc2FpXCA7CivpmZDnlYzngrkgPCBnZW5rYWl0ZW5cIDsKK+adv+ebrue0mSA8IGl0YW1lZ2FtaVwgOwor5oSB5ZiG5aC0IDwgc2h1dXRhbmJhXCA7CivpgLLniakgPCBzaGlubW90c3VcIDsKK+iKseebuOaSsiA8IGhhbmF6dW1vdVwgOwor5q2v56eR5a2mIDwgc2hpa2FnYWt1XCA7Civku5XkuovnnYAgPCBzaGlnb3RvZ2lcIDsKK+WFieaWh+ekviA8IGtvdWJ1bnNoYVwgOwor6auY54el5ZywIDwga291c291Y2hpXCA7CivovrLlnLDms5UgPCBub3VjaGlob3VcIDsKK+iRm+aguea5ryA8IGtha2tvbnRvdVwgOwor5Ye656uLIDwgc2h1dHRhdHN1XCA7CivnnJ/nrYYgPCBzaGlucGl0c3VcIDsKK+ato+aciCA8IHNob3VnYXRzdVwgOwor5Yed57iuIDwgZ3lvdXNodWt1XCA7CivlhYnpm7vnrqEgPCBrb3VkZW5rYW5cIDsKK+i6q+WIhuafhCA8IG1pYnVuZ2FyYVwgOwor6Kaz6Kan5Yi4IDwga2FucmFua2VuXCA7CivnpoHliLblk4EgPCBraW5zZWloaW5cIDsKK+edgOebriA8IGNoYWt1bW9rdVwgOwor5b2T57Gk6ICFIDwgdG91c2Vuc2hhXCA7CivpgLLljJboq5YgPCBzaGlua2Fyb25cIDsKK+WGjeaknOiojiA8IHNhaWtlbnRvdVwgOwor5YWt6K2YIDwgcm9rdXNoaWtpXCA7CivljYrlpI/nlJ8gPCBoYW5nZXNob3VcIDsKK+W+oemjr+aZgiA8IGdvaGFuZG9raVwgOwor5oSb5byf5a2QIDwgbWFuYWRlc2hpXCA7CivmiYvlvJXmm7ggPCB0ZWJpa2lzaG9cIDsKK+aPrueZuuayuSA8IGtpaGF0c3V5dVwgOwor57+w5p6X6ZmiIDwga2FucmluJydpblwgOwor5pW05ZCI5oCnIDwgc2VpZ291c2VpXCA7CivmlpnnkIbnlaogPCByeW91cmliYW5cIDsKK+WNgeS6jOWuriA8IGp1dW5pa3l1dVwgOwor55Sf55Sj6LKhIDwgc2Vpc2FuemFpXCA7CivkuIDku6PoqJggPCBpY2hpZGFpa2lcIDsKK+WFg+Wni+elrSA8IGdlbnNoaXNhaVwgOwor5Lqh5ZG96ICFIDwgYm91bWVpc2hhXCA7CivmnInnqI7lk4EgPCB5dXV6ZWloaW5cIDsKK+ecvOeWviA8IGdhbnNoaXRzdVwgOwor5aSn5L2/6aSoIDwgdGFpc2hpa2FuXCA7CivpmZDlrproqZ4gPCBnZW50ZWlzaGlcIDsKK+atjOaelSA8IHV0YW1ha3VyYVwgOwor77y457eaIDwgZWtrdXN1c2VuXCA7CivnhKHpp4Tpo68gPCBtdWRhbWVzaGlcIDsKK+e3j+axuueulyA8IHNvdWtlc3NhblwgOwor5q205Y+y5a62IDwgcmVraXNoaWthXCA7CivmtbfmsLTluL0gPCBrYWlzdWlib3VcIDsKK+aOp+mZpOmhjSA8IGtvdWpvZ2FrdVwgOwor55+l5oKJIDwgY2hpc2hpdHN1XCA7CivlrrbmlL/lraYgPCBrYXNlaWdha3VcIDsKK+WGheW8n+WtkCA8IHVjaGlkZXNoaVwgOwor5aSa5b+Z5LitIDwgdGFib3VjaHV1XCA7CivliKXniakgPCBiZXRzdW1vbm9cIDsKK+WOn+WvuOWkpyA8IGdlbnN1bmRhaVwgOwor55u057WQIDwgY2hva2tldHN1XCA7CivmqZ/og73nmoQgPCBraW5vdXRla2lcIDsKK+Wls+aAp+eahCA8IGpvc2VpdGVraVwgOwor5ruR57+U5qmfIDwga2Fzc2hvdWtpXCA7CivlubTlp4vnirYgPCBuZW5zaGlqb3VcIDsKK+WtkOeFqeaCqSA8IGtvYm9uJydub3VcIDsKK+aMh+WNl+i7iiA8IHNoaW5hbnNoYVwgOwor5Yed56uLIDwgZ3lvdXJpdHN1XCA7CivluLjnr4AgPCB0b2tvYnVzaGlcIDsKK+WGmeeUn+aWhyA8IHNoYXNlaWJ1blwgOwor5qiZ6K2YIDwgaHlvdXNoaWtpXCA7CivlhoXpgYrmmJ8gPCBuYWl5dXVzZWlcIDsKK+W+jOWHuiA8IGtvdXNodXRzdVwgOwor5Yid54mpIDwgaGF0c3Vtb25vXCA7Civoi6booYzogIUgPCBrdWd5b3VzaGFcIDsKK+e9quaCquaEnyA8IHphaWFrdWthblwgOwor54Sh55eH54q2IDwgbXVzaG91am91XCA7CivoirHpgZMgPCBoYW5hbWljaGlcIDsKK+inkuegguezliA8IGtha3V6YXRvdVwgOwor55Sf6L+U5LqLIDwgbmFtYWhlbmppXCA7Civlh7rnmbogPCBzaHVwcGF0c3VcIDsKK+WNmOe0lOaApyA8IHRhbmp1bnNlaVwgOwor5YyX5Y+jIDwga2l0YWd1Y2hpXCA7CivlpKflg6fmraMgPCBkYWlzb3Vqb3VcIDsKK+W5tOeOiSA8IHRvc2hpZGFtYVwgOwor5LiA6Lqr5LiKIDwgaXNzaGluam91XCA7Civkv67pgZPlsLwgPCBzaHV1ZG91bmlcIDsKK+i7jeaUvumAgSA8IGd1bmhvdXNvdVwgOwor55m76KiY5paZIDwgdG91a2lyeW91XCA7Civoi7Hlm73kurogPCBlaWtva3VqaW5cIDsKK+WBveiovOiAhSA8IGdpc2hvdXNoYVwgOwor6YGT6Lev5qmLIDwgZG91cm9reW91XCA7CivmqZnoibIgPCBkYWlkYWlpcm9cIDsKK+efqeW3riA8IGthbmV6YXNoaVwgOwor5Y2D5LiHIDwgY2hpeW9yb3p1XCA7Civmkq7lvbHmiYAgPCBzYXRzdWVpam9cIDsKK+W9ouaFi+irliA8IGtlaXRhaXJvblwgOwor5YG96Ki8572qIDwgZ2lzaG91emFpXCA7CivpppborIDogIUgPCBzaHVib3VzaGFcIDsKK+ikh+WPt+WMliA8IGZ1a3Vnb3VrYVwgOwor5byT5bymIDwgeXVtaWR6dXJ1XCA7Civlp4vnpZbps6UgPCBzaGlzb2Nob3VcIDsKK+eJueioseazlSA8IHRva2t5b2hvdVwgOwor6aSK5q+b5YmkIDwgeW91bW91emFpXCA7Civmta7msJfogIUgPCB1d2FraW1vbm9cIDsKK+ebsueptCA8IG1la3VyYWFuYVwgOwor5Y2x5qmf56qB56C0IDwga2lraXRvcHBhXCA7Civmmpfpu5LooZcgPCBhbmtva3VnYWlcIDsKK+Wkp+WFg+W4pSA8IGRhaWdlbnN1aVwgOwor5YWN6Kix54q2IDwgbWVua3lvam91XCA7CivojYnnrpIgPCBrdXNhYm91a2lcIDsKK+WHuuePviA8IHNodXRzdWdlblwgOwor5aSc5YWJ6JmrIDwgeWFrb3VjaHV1XCA7CivlpYflpKnng4ggPCBraXRlcmV0c3VcIDsKK+WMmeWKoOa4myA8IHNhamlrYWdlblwgOwor5Yed552AIDwgZ3lvdWNoYWt1XCA7CivliqPlvLEgPCByZXRzdWpha3VcIDsKK+aKleaJi+advyA8IHRvdXNodWJhblwgOwor5b6T5qWt5ZOhIDwganV1Z3lvdWluXCA7CivmibnoqZXnnLwgPCBoaWh5b3VnYW5cIDsKK+S/rumBk+WlsyA8IHNodXVkb3Vqb1wgOwor5Zyn55eb54K5IDwgYXR0c3V1dGVuXCA7CivmtbflhbXpmoogPCBrYWloZWl0YWlcIDsKK+iAg+iqsuihqCA8IGtvdWthaHlvdVwgOwor6bqm6Iq957OWIDwgYmFrdWdhdG91XCA7CivnnJ/njocgPCBzaGluc290c3VcIDsKK+iLpuiZqyA8IG5pZ2FtdXNoaVwgOwor5qmL6ISaIDwga3lvdWt5YWt1XCA7Civlt6bohZUgPCBoaWRhcml1ZGVcIDsKK+aWh+iKuOashCA8IGJ1bmdlaXJhblwgOwor5aSc55uy55eHIDwgeWFtb3VzaG91XCA7CivmipXnqL/ogIUgPCB0b3Vrb3VzaGFcIDsKK+eEoeW3ruWIpSA8IG11c2FiZXRzdVwgOwor56m65oy66ZqKIDwga3V1dGVpdGFpXCA7Civlvq7oqr/mlbQgPCBiaWNob3VzZWlcIDsKK+WPo+W/oOWunyA8IGt1Y2hpbWFtZVwgOwor6Iqx5qih5qeYIDwgaGFuYW1veW91XCA7CivmnInlkI3moKEgPCB5dXVtZWlrb3VcIDsKK+eJueioseaoqSA8IHRva2t5b2tlblwgOwor6auY6by+IDwgdGFrYWliaWtpXCA7Civmp4vmiJDlrZAgPCBrb3VzZWlzaGlcIDsKK+ecn+eJqSA8IHNoaW5idXRzdVwgOwor5byU5a6iIDwgY2hvdWt5YWt1XCA7Civoq4vpoZjmm7ggPCBzZWlnYW5zaG9cIDsKK+aLoeWjsOapnyA8IGtha3VzZWlraVwgOwor5Yy755mC5qmf5ZmoIDwgaXJ5b3VraWtpXCA7Civnmb7olqwgPCBoeWFrdXlha3VcIDsKK+iojuirluS8miA8IHRvdXJvbmthaVwgOwor6Iy2562SIDwgY2hhZHp1dHN1XCA7CivlvJ/lqJggPCBvdG9tdXN1bWVcIDsKK+ecgeeVpSA8IHNob3VyeWFrdVwgOwor5ouY572u5omAIDwga291Y2hpc2hvXCA7CivkuqTmuInlk6EgPCBrb3VzaG91aW5cIDsKK+WKtOW9ueWgtCA8IHJvdWVraWpvdVwgOwor6ZW35bC+6baPIDwgbmFnYW9kb3JpXCA7CivmsLTpioDnga8gPCBzdWlnaW50b3VcIDsKK+S4u+aIkOWIhiA8IHNodXNlaWJ1blwgOwor5L+u6L6e5rOVIDwgc2h1dWppaG91XCA7CivljZPoqbHkvJogPCB0YWt1d2FrYWlcIDsKK+mAhua1gSA8IGd5YWt1cnl1dVwgOwor5q2M5b+DIDwgdXRhZ29rb3JvXCA7CivmiYvlt6XoirggPCBzaHVrb3VnZWlcIDsKK+aWmeeQhuazlSA8IHJ5b3VyaWhvdVwgOwor5om/6KqN5ZuzIDwgc2hvdW5pbnp1XCA7CivmnKzls7bkurogPCBob250b3VqaW5cIDsKK+aBkuW4uOaApyA8IGtvdWpvdXNlaVwgOwor6YCx5pyrIDwgc2h1dW1hdHN1XCA7CivnnYDmsLcgPCBjaGFrdWh5b3VcIDsKK+eZveiPiiA8IHNoaXJhZ2lrdVwgOwor5bm05rOiIDwgdG9zaGluYW1pXCA7CivntYTnuZTljJYgPCBzb3NoaWtpa2FcIDsKK+W+oeaWsOmAoCA8IGdvc2hpbnpvdVwgOwor5q2j5a6kIDwgc2Vpc2hpdHN1XCA7Civkub7pm7vmsaAgPCBrYW5kZW5jaGlcIDsKK+iHquS9nOi+siA8IGppc2FrdW5vdVwgOwor6I+K5pyIIDwga2lrdWR6dWtpXCA7CivliLbnqbrmqKkgPCBzZWlrdXVrZW5cIDsKK+iKseaksOiPnCA8IGhhbmF5YXNhaVwgOwor56u25oqA5aC0IDwga3lvdWdpam91XCA7Civml6fliLbluqYgPCBreXV1c2VpZG9cIDsKK+WFseWSjOaUvyA8IGt5b3V3YXNlaVwgOwor5aSp5LiL54Sh5q+UIDwgdGVua2FtdWhpXCA7CivlsIrnjovlrrYgPCBzb24nJ25vdWthXCA7CivlubTmr44gPCB0b3NoaWdvdG9cIDsKK+mAseaXpSA8IHNodXVqaXRzdVwgOwor6YGF6YCy5YWQIDwgY2hpc2hpbmppXCA7CivoirHooZcgPCBoYW5hbWFjaGlcIDsKK+W3nee4gSA8IGthd2FidWNoaVwgOwor5b2i5LujIDwga2F0YXNoaXJvXCA7CivmoITppIrlraYgPCBlaXlvdWdha3VcIDsKK+aOqeitt+mDqOmaiiA8IGVuZ29idXRhaVwgOwor55m96ImyIDwgaGFrdXNob2t1XCA7CivkuI3ku4vlhaUgPCBmdWthaW55dXVcIDsKK+aKleaJi+aIpiA8IHRvdXNodXNlblwgOwor54qs5by15a2QIDwgaW51aGFyaWtvXCA7CivpgIHpm7vnt5ogPCBzb3VkZW5zZW5cIDsKK+WNtem7hOWaoiA8IHJhbicnb3Vub3VcIDsKK+WIpeajnyA8IGJldHN1bXVuZVwgOwor5rCX5Zyn6KiIIDwga2lhdHN1a2VpXCA7Civpp4bomavliaQgPCBrdWNodXV6YWlcIDsKK+eKrOi/veeJqSA8IGludW91bW9ub1wgOwor5LiJ5paR6baJIDwgbWlmdXV6dXJhXCA7Civlhornq4sgPCBzYWt1cml0c3VcIDsKK+mmrOm5v+mHjumDjiA8IGJha2F5YXJvdVwgOwor5bO26aKoIDwgc2hpbWFrYXplXCA7Civmi43lrZDmnKggPCBoeW91c2hpZ2lcIDsKK+Wkmuavm+S9nCA8IHRhbW91c2FrdVwgOwor5omL6I2354mpIDwgdGVuaW1vdHN1XCA7CivlvLHljZIgPCBqYWt1c290c3VcIDsKK+WHoOW4s+mdoiA8IGtpY2hvdW1lblwgOwor5qih56+E55qEIDwgbW9oYW50ZWtpXCA7Civlg5XpgZQgPCBib2t1dGFjaGlcIDsKK+mrremdoiA8IGhpZ2VkenVyYVwgOwor562G6KiY5bizIDwgaGlra2ljaG91XCA7CivlvLXlipsgPCBjaG91cnlva3VcIDsKK+i7n+izqiA8IG5hbnNoaXRzdVwgOwor6ZW36Led6ZuiIDwgY2hvdWt5b3JpXCA7Civnvo7lsJHlubQgPCBiaXNob3VuZW5cIDsKK+S5vueHpeadkCA8IGthbnNvdXphaVwgOwor55Sf55Sj6ICFIDwgc2Vpc2Fuc2hhXCA7CivkuI3mnI3lvpMgPCBmdWZ1a3VqdXVcIDsKK+acrOagvOa0viA8IGhvbmtha3VoYVwgOwor6I+x5b2iIDwgaGlzaGlnYXRhXCA7Civljp/lrZDmiKYgPCBnZW5zaGlzZW5cIDsKK+S4jeWkiemHjyA8IGZ1aGVucnlvdVwgOwor6aGU6aa05p+TIDwga2FvbmFqaW1pXCA7CivpgLLmjZcgPCBzaGluY2hva3VcIDsKK+iQveiRieaouSA8IHJha3V5b3VqdVwgOwor5LiJ6aCt562LIDwgc2FudG91a2luXCA7Civlg7voqqwgPCBoZWtpc2V0c3VcIDsKK+WPo+iqnuiLseiqniA8IGtvdWdvZWlnb1wgOwor5Luj6KiA6ICFIDwgZGFpZ2Vuc2hhXCA7CivojLbnlZEgPCBjaGFiYXRha2VcIDsKK+aPrueZuuW6piA8IGtpaGF0c3Vkb1wgOwor5aSn6Ieq54S2IDwgZGFpc2hpemVuXCA7CivkuI3mmYLnnYAgPCBmdWppY2hha3VcIDsKK+e1seWItue3miA8IHRvdXNlaXNlblwgOwor5qiq57axIDwgeW9rb2R6dW5hXCA7CivlhY7ogLMgPCB1c2FnaW1pbWlcIDsKK+WFiembu+axoCA8IGtvdWRlbmNoaVwgOwor6Iqx5L6b6aSKIDwgaGFuYWt1eW91XCA7Civpm6PllY/poYwgPCBuYW5tb25kYWlcIDsKK+e2membu+mNtSA8IGtlaWRlbmtlblwgOwor5qmf5qKw5a2mIDwga2lrYWlnYWt1XCA7Civls7bpmbAgPCBzaGltYWthZ2VcIDsKK+WppuS6uueXhSA8IGZ1amluYnlvdVwgOwor5ZCM5aW96ICFIDwgZG91a291c2hhXCA7Civlgb3lporlqKAgPCBnaW5pbnNoaW5cIDsKK+efouWNsCA8IHlhamlydXNoaVwgOwor552A5pyNIDwgY2hha3VmdWt1XCA7CivngavnuITpioMgPCBoaW5hd2FqdXVcIDsKK+W7uuWdqiA8IHRhdGV0c3Vib1wgOwor5Ymv5bC6IDwgZnVrdXNoYWt1XCA7CivliJ3mmKUgPCBoYXRzdWhhcnVcIDsKK+WJjeWLmOWumiA8IG1hZWthbmpvdVwgOwor5pei55m66KGoIDwga2loYXBweW91XCA7CivlhbHnq4sgPCBreW91cml0c3VcIDsKK+iKseiPsSA8IGhhbmFiaXNoaVwgOwor55Sy54q26IW6IDwga291am91c2VuXCA7CivnqL3lj6TkuosgPCBrZWlrb2dvdG9cIDsKK+aIkOaWh+azlSA8IHNlaWJ1bmhvdVwgOwor5bu25Z2qIDwgbm9iZXRzdWJvXCA7Civopo/moLzlk4EgPCBraWtha3VoaW5cIDsKK+S7leS6i+aXpSA8IHNoaWdvdG9iaVwgOwor5YiG5LiO56iOIDwgYnVuJyd5b3plaVwgOwor55m954Sh5Z6iIDwgc2hpcm9tdWt1XCA7CivkuoznrYnos54gPCBuaXRvdXNob3VcIDsKK+altemHjyA8IGt5b2t1cnlvdVwgOwor5a6a5LyR5pelIDwgdGVpa3l1dWJpXCA7Civoia/orZggPCByeW91c2hpa2lcIDsKK+W8n+WIhiA8IG90b3V0b2J1blwgOwor55m954Gv5rK5IDwgaGFrdXRvdXl1XCA7CivoibLoqr8gPCBzaGlraWNob3VcIDsKK+mJhOeBq+WRs+WZjCA8IHRla2thbWlzb1wgOwor6YGL6Lui5bitIDwgdW50ZW5zZWtpXCA7CivlhazmsJHppKggPCBrb3VtaW5rYW5cIDsKK+evpOi+suWutiA8IHRva3Vub3VrYVwgOwor6IyJ6I6J6IqxIDwgbWF0c3VyaWthXCA7Civkurrlt6XmuK8gPCBqaW5rb3Vrb3VcIDsKK+mztuWPoyA8IHRvYmlndWNoaVwgOwor6auY6Zm15ZyfIDwga291cnlvdWRvXCA7CivmhJ/lhYnmnb8gPCBrYW5rb3ViYW5cIDsKK+WFq+emjyA8IGhhY2hpZnVrdVwgOwor6Imy6KaaIDwgc2hpa2lrYWt1XCA7CivkuInkuZfmoLkgPCBzYW5qb3Vrb25cIDsKK+efs+S7jyA8IHNla2lidXRzdVwgOwor55S36aKo5ZGCIDwgb3Rva29idXJvXCA7CivlpbPpg47oirEgPCBvbWluYWVzaGlcIDsKK+a7nue0jeiAhSA8IHRhaW5vdXNoYVwgOwor5q2z5Ye6IDwgc2Fpc2h1dHN1XCA7CivkvJ3pgZPluKsgPCBkZW5kb3VzaGlcIDsKK+W/nOWPrOWFtSA8IG91c2hvdWhlaVwgOwor6KSH5Y2B5a2XIDwgZnVrdWp1dWppXCA7Civnm7TmtYEgPCBjaG9rdXJ5dXVcIDsKK+mYv+W8pemZgOe1jCA8IGFtaWRha3lvdVwgOwor6IqN6JasIDwgc2hha3V5YWt1XCA7Civlho3mp4vmiJAgPCBzYWlrb3VzZWlcIDsKK+acieauteiAhSA8IHl1dWRhbnNoYVwgOwor5Y2Y6KGj54mpIDwgaGl0b2Vtb25vXCA7Civopo/moLzliKQgPCBraWtha3ViYW5cIDsKK+esrOS4ieiAhSA8IGRhaXNhbnNoYVwgOwor5Ye65pytIDwgc2h1c3NhdHN1XCA7CivlibLlopcgPCB3YXJpbWFzaGlcIDsKK+S9k+aTjeWgtCA8IHRhaXNvdWpvdVwgOwor5Li75rWB5rS+IDwgc2h1cnl1dWhhXCA7Civoip3ojYkgPCBzaGliYWt1c2FcIDsKK+W6g+WgseWumCA8IGtvdWhvdWthblwgOwor55yf5p2xIDwgbWFoaWdhc2hpXCA7Civkurrlt6XmsaAgPCBqaW5rb3Vpa2VcIDsKK+WPo+iTi+WegiA8IGtvdWdhaXN1aVwgOwor6YeR5Ymb56CCIDwga29uZ291c2hhXCA7CivljYHkuInlpJwgPCBqdXVzYW4nJ3lhXCA7CivlpKflrabpmaIgPCBkYWlnYWt1aW5cIDsKK+S5l+eUqOi7iiA8IGpvdXlvdXNoYVwgOwor5LiN5piO56K6IDwgZnVtZWlrYWt1XCA7CivpmL/lvKXpmYDnsaQgPCBhbWlkYWt1amlcIDsKK+icg+awl+alvCA8IHNoaW5raXJvdVwgOwor6KSH6JGJ5qmfIDwgZnVrdXlvdWtpXCA7CivkuoznrYnopqogPCBuaXRvdXNoaW5cIDsKK+iNieertummrCA8IGt1c2FrZWliYVwgOwor5qi455u0IDwgYm9rdWNob2t1XCA7CivpmqDlhYPosYYgPCBpbmdlbm1hbWVcIDsKK+W5leacqyA8IGJha3VtYXRzdVwgOwor57Sv5LmX5qC5IDwgcnVpam91a29uXCA7CivmpI7pqqggPCB0c3Vpa290c3VcIDsKK+adsea0i+S6uiA8IHRvdXlvdWppblwgOwor56u25oqA5LyaIDwga3lvdWdpa2FpXCA7Civli6foqpjlk6EgPCBrYW4nJ3l1dWluXCA7CivogIHlqYblv4MgPCByb3ViYXNoaW5cIDsKK+WCteaoqeiAhSA8IHNhaWtlbnNoYVwgOwor56ys5LiA576pIDwgZGFpaWNoaWdpXCA7CivmraPlh7ogPCBzZWlzaHV0c3VcIDsKK+Wcp+WAkueahCA8IGF0dG91dGVraVwgOwor5LiN5piO556tIDwgZnVtZWlyeW91XCA7CivmlL7pm7vnrqEgPCBob3VkZW5rYW5cIDsKK+WHtuaXpSA8IGt5b3VqaXRzdVwgOwor5YmN6Lqr6aCDIDwgbWFlbWlnb3JvXCA7CivlsJHmlbDmtL4gPCBzaG91c3V1aGFcIDsKK+eJueaNnOmDqCA8IHRva3Vzb3VidVwgOwor6Kq/6aas5birIDwgY2hvdWJhc2hpXCA7CivpgYrlpLEgPCB5dXVzaGl0c3VcIDsKK+eQhuirlueahCA8IHJpcm9udGVraVwgOwor6aOy5rC06YePIDwgaW5zdWlyeW91XCA7Civoqr/nkIbms5UgPCBjaG91cmlob3VcIDsKK+e0r+eKr+iAhSA8IHJ1aWhhbnNoYVwgOwor6LuK6J2mIDwga3VydW1hZWJpXCA7Civlpb3pg73lkIggPCBrb3V0c3Vnb3VcIDsKK+WuieWFqOWfnyA8IGFuemVuJydpa2lcIDsKK+iZmuaghOW/gyA8IGt5b2Vpc2hpblwgOwor5a6a5pyf55qEIDwgdGVpa2l0ZWtpXCA7CivliJ3lvbkgPCBoYXRzdXlha3VcIDsKK+iqjeWPr+iovCA8IG5pbmthc2hvdVwgOwor5L+h5b+D5a62IDwgc2hpbmppbmthXCA7CivlvLflp6bnvaogPCBnb3VrYW56YWlcIDsKK+aVmeaOiOS8miA8IGt5b3VqdWthaVwgOwor6YCj5ZCI6LuNIDwgcmVuZ291Z3VuXCA7Civpgbjlh7ogPCBzZW5zaHV0c3VcIDsKK+i/q+aMgSA8IHNlcmltb2NoaVwgOwor6YeN5ZCI5L2TIDwganV1Z291dGFpXCA7CivliqDomZDmhJsgPCBrYWd5YWt1YWlcIDsKK+ays+W3neaVtyA8IGthc2VuamlraVwgOwor6LuN6ZqK6JGsIDwgZ3VudGFpc291XCA7CivmlbDlubTplpMgPCBzdXVuZW5rYW5cIDsKK+i7veawl+eQgyA8IGtlaWtpa3l1dVwgOwor6Z2S5rWu6I2JIDwgYW91a2lrdXNhXCA7CivlrZjlnKjmhI/nvqkgPCBzb256YWlpZ2lcIDsKK+WuiealveatuyA8IGFucmFrdXNoaVwgOwor6YeR5bmz57OWIDwga29ucGVpdG91XCA7CivlrprkvY/lnLAgPCB0ZWlqdXVjaGlcIDsKK+mHkei8qumamyA8IGtvbnJpbnphaVwgOwor5paZ55CG5bqXIDwgcnlvdXJpdGVuXCA7Civosr/mmJPpoqggPCBib3Vla2lmdXVcIDsKK+S6uuW3peaelyA8IGppbmtvdXJpblwgOwor5rW36YGL5qWtIDwga2FpdW5neW91XCA7CivooaPpo5/kvY8gPCBpc2hva3VqdXVcIDsKK+edgOW6iiA8IGNoYWt1c2hvdVwgOwor5a+d5YW36aGeIDwgc2hpbmd1cnVpXCA7CivlubTlvLEgPCB0b3NoaXlvd2FcIDsKK+Wxsem2iSA8IHlhbWF1enVyYVwgOwor5p2x5Y2X5p2xIDwgdG91bmFudG91XCA7CivvvLfmna8gPCBkYWJ1cnVoYWlcIDsKK+eUsuadv+WToSA8IGtvdWhhbicnaW5cIDsKK+ePvuS7o+WPsiA8IGdlbmRhaXNoaVwgOwor5qC56I+c6aGeIDwga29uc2FpcnVpXCA7CivnnYDluK0gPCBjaGFrdXNla2lcIDsKK+WumuS+i+S8miA8IHRlaXJlaWthaVwgOwor5rG66ZeY54q2IDwga2V0dG91am91XCA7CivompXljbXntJkgPCBzYW5yYW5zaGlcIDsKK+WkluiSmeWPpCA8IHNvdG9tb3Vrb1wgOwor6L675pytIDwgdHN1amlmdWRhXCA7Civou4rkuKHljJYgPCBzaGFyeW91a2FcIDsKK+mBqeWIhyA8IHRla2lzZXRzdVwgOwor5Y+I5b6T5YWE5byfIDwgbWF0YWl0b2tvXCA7Civnmbrnl4UgPCBoYXRzdWJ5b3VcIDsKK+aEn+WFieaApyA8IGthbmtvdXNlaVwgOwor56ys5LiA56ugIDwgZGFpaXNzaG91XCA7Civnl4XorZggPCBieW91c2hpa2lcIDsKK+WJteWHuiA8IHNvdXNodXRzdVwgOwor5Yil5a6kIDwgYmVzc2hpdHN1XCA7Civoh6jnlYzngrkgPCByaW5rYWl0ZW5cIDsKK+WVhuWjsuawlyA8IHNob3ViYWlnaVwgOwor5Zu95oay5rOVIDwga29ra2VucG91XCA7CivkuKHpmZvkuIsgPCByeW91aGVpa2FcIDsKK+mZkOWumueJiCA8IGdlbnRlaWJhblwgOwor5YmN6LuK6LyqIDwgemVuc2hhcmluXCA7CivlubTltakgPCB0b3NoaWthc2FcIDsKK+e+veavm+W4g+WboyA8IHVtb3VmdXRvblwgOwor6ZuE54mb57OeIDwgb3VzaGlrdXNvXCA7CivkuI3lpornl4cgPCBmdW5pbnNob3VcIDsKK+Wkiea1geWZqCA8IGhlbnJ5dXVraVwgOwor5Yid5a2rIDwgaGF0c3VtYWdvXCA7Civlh7rlvqEgPCBzaHV0c3VneW9cIDsKK+mHneS+m+mkiiA8IGhhcmlrdXlvdVwgOwor5b6u6KaW55qEIDwgYmlzaGl0ZWtpXCA7Civnm6PoppbloZQgPCBrYW5zaGl0b3VcIDsKK+eZveeOiSA8IHNoaXJhdGFtYVwgOwor5Y2g5oug5ZywIDwgc2Vua3lvY2hpXCA7CivmjIflkJHmgKcgPCBzaGlrb3VzZWlcIDsKK+S4gOS6uueUqCA8IGhpdG9yaXlvdVwgOwor6Kq/6aas5aC0IDwgY2hvdWJham91XCA7Civlho3ovLjlhaUgPCBzYWl5dW55dXVcIDsKK+e2v+a0peimiyA8IHdhdGF0c3VtaVwgOwor5YSq6Imv5YWQIDwgeXV1cnlvdWppXCA7Civmta7li5XnpaggPCBmdWRvdWh5b3VcIDsKK+WFiOWkqeaApyA8IHNlbnRlbnNlaVwgOwor5b2i5oiQ5bGkIDwga2Vpc2Vpc291XCA7Civnm7TmkoMgPCBjaG9rdWdla2lcIDsKK+W4q+evhOS7oyA8IHNoaWhhbmRhaVwgOwor5bm05a+EIDwgdG9zaGl5b3JpXCA7CivkvJHmraLnrKYgPCBreXV1c2hpZnVcIDsKK+amjuiMuCA8IGVub2tpdGFrZVwgOwor5LiN6Z2i55uuIDwgZnVtZW5tb2t1XCA7CivoiLnomasgPCBmdW5hbXVzaGlcIDsKK+Wwj+ezoOmbqCA8IGtvbnVrYWFtZVwgOwor5pys5LqI566XIDwgaG9uJyd5b3NhblwgOwor5oyH5Y2X55WqIDwgc2hpbmFuYmFuXCA7Civoh6rnlLHmpa0gPCBqaXl1dWd5b3VcIDsKK+emgei8uOWTgSA8IGtpbicneXVoaW5cIDsKK+WPuOS8muiAhSA8IHNoaWthaXNoYVwgOwor5oqV56i/5qyEIDwgdG91a291cmFuXCA7Civnmb3nhrEgPCBoYWt1bmV0c3VcIDsKK+alteiWhCA8IGt5b2t1aGFrdVwgOwor55m954aKIDwgc2hpcm9rdW1hXCA7CivmjL/oqbHnmoQgPCBzb3V3YXRla2lcIDsKK+WJsuS7mCA8IHdhcml0c3VrZVwgOwor5Yid5aSiIDwgaGF0c3V5dW1lXCA7CivpgZPkuK3oqJggPCBkb3VjaHV1a2lcIDsKK+WNiuWhqeawtCA8IGhhbicnZW5zdWlcIDsKK+aOkuS7lueahCA8IGhhaXRhdGVraVwgOwor5aSn6IW454KOIDwgZGFpY2hvdWVuXCA7CivliIblrqQgPCBidW5zaGl0c3VcIDsKK+WwvOazleW4qyA8IGFtYWhvdXNoaVwgOwor5a6a572u57ayIDwgdGVpY2hpYW1pXCA7Civlurblh7ogPCBzaG9zaHV0c3VcIDsKK+WFpea7hSA8IG55dXVtZXRzdVwgOwor6Iq46IO955WMIDwgZ2Vpbm91a2FpXCA7CivljYrmv4Hpn7MgPCBoYW5kYWt1b25cIDsKK+mFjeeuoeW3pSA8IGhhaWthbmtvdVwgOwor5Ymy5LiLIDwgd2FyaXNoaXRhXCA7Civnj77ku6PkurogPCBnZW5kYWlqaW5cIDsKK+i+sua8geawkSA8IG5vdWd5b21pblwgOwor5biC5p2+IDwgaWNoaW1hdHN1XCA7CivlpbPmgKflraYgPCBqb3NlaWdha3VcIDsKK+S5vueHpeWcsCA8IGthbnNvdWNoaVwgOwor5YiG6aGe5rOVIDwgYnVucnVpaG91XCA7CivliKnlt7HkuLvnvqkgPCByaWtvc2h1Z2lcIDsKK+efs+iGj+WDjyA8IHNla2tvdXpvdVwgOwor5b2x5q2m6ICFIDwga2FnZW11c2hhXCA7CivmtLvniYjmnKwgPCBrYXBwYW5ib25cIDsKK+S7leS6i+WgtCA8IHNoaWdvdG9iYVwgOwor5amm5Lq65pyNIDwgZnVqaW5mdWt1XCA7Civlr53lv4PlnLAgPCBuZWdva29jaGlcIDsKK+WEqueUtyA8IHlhc2FvdG9rb1wgOwor57W15be754mpIDwgZW1ha2ltb25vXCA7CivkuI3mlpnnsKEgPCBmdXJ5b3VrZW5cIDsKK+WMluefs+WxpCA8IGthc2VraXNvdVwgOwor5pmp6aSQ5LyaIDwgYmFuc2Fua2FpXCA7Civku5XmlL7poYwgPCBzaGlob3VkYWlcIDsKK+ahiOWGheeKtiA8IGFuJyduYWlqb3VcIDsKK+WkmuWFg+eahCA8IHRhZ2VudGVraVwgOwor5Yi25rW35qipIDwgc2Vpa2Fpa2VuXCA7CivkuqTphY3nqK4gPCBrb3VoYWlzaHVcIDsKK+i9ouauuiA8IHJla2lzYXRzdVwgOwor5Zyo5L2P6ICFIDwgemFpanV1c2hhXCA7CivmiJDnhp/mnJ8gPCBzZWlqdWt1a2lcIDsKK+ecn+WunyA8IHNoaW5qaXRzdVwgOwor5YWx5ZKM5YWaIDwga3lvdXdhdG91XCA7CivlubPmlrnmoLkgPCBoZWlob3Vrb25cIDsKK+irnOWgseWToSA8IGNob3Vob3VpblwgOwor6IiI5aWu5YmkIDwga291ZnVuemFpXCA7Civnmb3mu50gPCBzaGlyYXRha2lcIDsKK+WFiOimi+iAhSA8IHNlbmtlbnNoYVwgOwor6Iiq56m65Yi4IDwga291a3V1a2VuXCA7CivpgJ/lj6MgPCBoYXlha3VjaGlcIDsKK+WFiembu+WtkCA8IGtvdWRlbnNoaVwgOwor6YCy5YWlIDwgc2hpbicnbnl1dVwgOwor5YSy54mpIDwgbW91a2Vtb25vXCA7CivohbDpq5ggPCBrb3NoaWRha2FcIDsKK+WjsuWbveWltCA8IGJhaWtva3Vkb1wgOwor57mB5YiG5pWwIDwgaGFuYnVuc3V1XCA7CivmgKfooYzli5UgPCBzZWlrb3Vkb3VcIDsKK+mKgOihjOWIuCA8IGdpbmtvdWtlblwgOwor5qmL5qGBIDwgaGFzaGlnZXRhXCA7CivkuIfkuIfmrbMgPCBiYW5iYW56YWlcIDsKK+mqqOizqiA8IGtvc3NoaXRzdVwgOwor5YGc6Ii55aC0IDwgdGVpc2Vuam91XCA7CivohbDpqqggPCBrb3NoaWJvbmVcIDsKK+WYhumhmOabuCA8IHRhbmdhbnNob1wgOwor5YaN55Sf55SjIDwgc2Fpc2Vpc2FuXCA7CivlnLDlr77lnLAgPCBjaGl0YWljaGlcIDsKK+S/rumjviA8IHNodXVzaG9rdVwgOwor5paH5L2T6KuWIDwgYnVudGFpcm9uXCA7Civoqr/mn7vlm6MgPCBjaG91c2FkYW5cIDsKK+eZvea1qiA8IHNoaXJhbmFtaVwgOwor5Y2Y6KGM5pysIDwgdGFua291Ym9uXCA7CivlsI/lpJzmm7IgPCBzYXlva3lva3VcIDsKK+WHuuS4lumWkyA8IHNodXNzZWtlblwgOwor55m95rWcIDwgc2hpcmFoYW1hXCA7CivoibbnqK4gPCB0c3V5YWRhbmVcIDsKK+mAn+WKmyA8IHNva3VyeW9rdVwgOwor5Y2Y6KGM5pu4IDwgdGFua291c2hvXCA7CivkuIDmmYLplpMgPCBpY2hpamlrYW5cIDsKK+a4qeaziemDtyA8IG9uc2Vua3lvdVwgOwor6L675bqXIDwgdHN1amltaXNlXCA7CivmnInlkI3kurogPCB5dXVtZWlqaW5cIDsKK+W+jOeUsuadvyA8IGtvdWthbnBhblwgOwor5Za25Yip5Li7576pIDwgZWlyaXNodWdpXCA7CivlvLHkvZPljJYgPCBqYWt1dGFpa2FcIDsKK+e1jOa4iOmdoiA8IGtlaXphaW1lblwgOwor5L+u6aiT6YGTIDwgc2h1Z2VuZG91XCA7CivojLbmiYAgPCBjaGFkb2tvcm9cIDsKK+W+gOeUn+mamyA8IG91am91Z2l3YVwgOwor5bqD5Y+jIDwgaGlyb2t1Y2hpXCA7CivlsLrpqqggPCBzaGFra290c3VcIDsKK+WHuuWhgSA8IHNodXRzdXJ1aVwgOwor5q6L5a2Y6ICFIDwgemFuem9uc2hhXCA7CivoiKrnqbrkvr8gPCBrb3VrdXViaW5cIDsKK+aguOatpuijhSA8IGtha3VidXNvdVwgOwor55uu5bqHIDwgbWFiaXNhc2hpXCA7Civnmb3msLQgPCBzaGlyb21penVcIDsKK+iJsuelniA8IHNoaWtpc2hpblwgOwor5Z+L6JS16YeRIDwgbWFpem91a2luXCA7CivlraTnq4vljJYgPCBrb3JpdHN1a2FcIDsKK+iBluWutuaXjyA8IHNlaWthem9rdVwgOwor5rOl54Kt5ZywIDwgZGVpdGFuY2hpXCA7CivlpJbovKroiLkgPCBnYWlyaW5zZW5cIDsKK+ikh+WIqeazlSA8IGZ1a3VyaWhvdVwgOwor5YWl5qSNIDwgbnl1dXNob2t1XCA7CivokrjnlZnlmaggPCBqb3VyeXV1a2lcIDsKK+mRkeWumuabuCA8IGthbnRlaXNob1wgOwor6KO95rC35qmfIDwgc2VpaHlvdWtpXCA7Civnm7TlsZ4gPCBjaG9rdXpva3VcIDsKK+a2iOiyu+iyoSA8IHNob3VoaXphaVwgOwor6JGX5L2c5a62IDwgY2hvc2FrdWthXCA7CivluILosqnlk4EgPCBzaGloYW5oaW5cIDsKK+W3u+mgreiogCA8IGthbnRvdWdlblwgOwor5Yeh5aSxIDwgYm9uc2hpdHN1XCA7Civoqr/nkIbluKsgPCBjaG91cmlzaGlcIDsKK+WFreaciCA8IHJva3VnYXRzdVwgOwor55yf5qGR55OcIDwgbWFrdXdhdXJpXCA7Civpmo/lvpPogIUgPCB6dWlqdXVzaGFcIDsKK+S4gOWvuOWFiCA8IGlzc3Vuc2FraVwgOwor5paH5a2m6YOoIDwgYnVuZ2FrdWJ1XCA7CivkuojntITliLYgPCB5b3lha3VzZWlcIDsKK+e3mumAn+W6piA8IHNlbnNva3Vkb1wgOwor5bmz6Z2i5b2iIDwgaGVpbWVua2VpXCA7CivopIfmr5TkvosgPCBmdWt1aGlyZWlcIDsKK+aVo+awtOi7iiA8IHNhbnN1aXNoYVwgOwor5LiA5pmC6YeRIDwgaWNoaWppa2luXCA7CivliY3lubTluqYgPCB6ZW4nJ25lbmRvXCA7CivnhKHlo7DmmKDnlLsgPCBtdXNlaWVpZ2FcIDsKK+WFpeacrSA8IG55dXVzYXRzdVwgOwor55m66KGM6ICFIDwgaGFra291c2hhXCA7CivlgZznlZnmiYAgPCB0ZWlyeXV1am9cIDsKK+WuruWfjuecjCA8IG1peWFnaWtlblwgOwor5YmN5YmN5ZueIDwgemVuemVua2FpXCA7Civnh5flvrPliKkgPCBrYW5kb2t1cmlcIDsKK+atu+WIkeWgtCA8IHNoaWtlaWpvdVwgOwor5bGx6YGTIDwgeWFtYW1pY2hpXCA7Civlt7vlrZDmnKwgPCBrYW5zaGlob25cIDsKK+mAgOWHuiA8IHRhaXNodXRzdVwgOwor5qW956+AIDwgZ2FrdXNldHN1XCA7CivluLjlpI8gPCB0b2tvbmF0c3VcIDsKK+eUuuitsOS8miA8IGNob3VnaWthaVwgOwor55Sz6YGUIDwgc2hpbnRhdHN1XCA7CivkurrnlJ/oprMgPCBqaW5zZWlrYW5cIDsKK+ecn+ePoOiynSA8IHNoaW5qdWdhaVwgOwor6Iul5p2+IDwgd2FrYW1hdHN1XCA7CivlsYDplbcgPCBreW9rdWNob3VcIDsKK+msvOeTpiA8IG9uaWdhd2FyYVwgOwor5bid5a6kIDwgdGVpc2hpdHN1XCA7Civkuqzpg73luIIgPCBreW91dG9zaGlcIDsKK+mbqOWPsOmiqCA8IGFtZXRhaWZ1dVwgOwor6Ieq55Sx5b2iIDwgaml5dXVnYXRhXCA7CivlhY3oqLHliLYgPCBtZW5reW9zZWlcIDsKK+mbkeWgseashCA8IHphcHBvdXJhblwgOwor5oSb5YWa5b+DIDwgYWl0b3VzaGluXCA7CivpmLLmraLms5UgPCBib3VzaGlob3VcIDsKK+ijnOWKqea8ouWtlyA8IGhvam9rYW5qaVwgOwor5bqK5LiLIDwgeXVrYXNoaXRhXCA7CivpgbjmjJnms5UgPCBzZW5reW9ob3VcIDsKK+WSjOiLsei+nuabuCA8IHdhZWlqaXNob1wgOwor552A5L+hIDwgY2hha3VzaGluXCA7CivlpKnkupXoo48gPCB0ZW5qb3V1cmFcIDsKK+WNiumZsOW9sSA8IGhhbicnaW4nJ2VpXCA7CivmnIDph43ngrkgPCBzYWlqdXV0ZW5cIDsKK+S4gOWvvuS4gCA8IGl0dGFpaWNoaVwgOwor55m95pytIDwgc2hpcm9mdWRhXCA7CivliIflhaUgPCBzZXRzdW55dXVcIDsKK+aomeacrSA8IGh5b3VzYXRzdVwgOwor5Ye65YuVIDwgc2h1dHN1ZG91XCA7Civov6vlipsgPCBoYWt1cnlva3VcIDsKK+WxkemJhCA8IGt1enV0ZXRzdVwgOwor6auq57axIDwga2FtaWR6dW5hXCA7CivpgbjmjJnmsJEgPCBzZW5reW9taW5cIDsKK+mAkOS4gCA8IGNoaWt1aWNoaVwgOwor5pWZ5ZSG6ICFIDwga3lvdXNhc2hhXCA7CivmlpnnkIbkurogPCByeW91cmluaW5cIDsKK+iHqueUseW4rSA8IGppeXV1c2VraVwgOwor5pyI5YiK6KqMIDwgZ2Vra2Fuc2hpXCA7CivkvrXpo58gPCBzaGluc2hva3VcIDsKK+S4jeeGn+e3tCA8IGZ1anVrdXJlblwgOwor5Y+k5YW455qEIDwga290ZW50ZWtpXCA7CivoirHmsLcgPCBoYW5hZ29vcmlcIDsKK+S/hOmbqCA8IG5pd2FrYWFtZVwgOwor5aSJ5q276ICFIDwgaGVuc2hpc2hhXCA7CivmnKzmoLzljJYgPCBob25rYWt1a2FcIDsKK+S7leS4iuW3pSA8IHNoaWFnZWtvdVwgOwor54mh5Li55p2PIDwgYm90YW5reW91XCA7CivlubPmlrnlvaIgPCBoZWlob3VrZWlcIDsKK+WkieWMlueQgyA8IGhlbmtha3l1dVwgOwor6YGg6ZqU6KaWIDwgZW5rYWt1c2hpXCA7CivojLblrqQgPCBjaGFzaGl0c3VcIDsKK+mbkeiomOW4syA8IHpha2tpY2hvdVwgOwor5Zyo5qCh55SfIDwgemFpa291c2VpXCA7Civnmb3ml6UgPCBoYWt1aml0c3VcIDsKK+S+oOmqqCA8IGt5b3Vrb3RzdVwgOwor5ZCM5L2N5YWD57SgIDwgZG91aWdlbnNvXCA7Civmkanmk6bpn7MgPCBtYXNhdHN1b25cIDsKK+WwkemjnyA8IHNob3VzaG9rdVwgOwor5bez5bm0IDwgaGViaWRvc2hpXCA7Civom43ng4/os4ogPCBob3RhcnVpa2FcIDsKK+iJtueJqSA8IHRzdXlhbW9ub1wgOwor5YaN55Sf5rOVIDwgc2Fpc2VpaG91XCA7CivlpJrnmbrmqZ8gPCB0YWhhdHN1a2lcIDsKK+WGt+WltCA8IGhpeWF5YWtrb1wgOwor5rS754mI5bGLIDwga2FwcGFuJyd5YVwgOwor6YeR5Ymb5omLIDwga29uZ291c2h1XCA7CivooqvlrrPpoY0gPCBoaWdhaWdha3VcIDsKK+WGjeW+k+WFhOW8nyA8IGZ1dGFpdG9rb1wgOwor6YG45oyZ5qipIDwgc2Vua3lva2VuXCA7Civln7rmnKzntaYgPCBraWhvbmt5dXVcIDsKK+mdnumHkeWxniA8IGhpa2luem9rdVwgOwor5bCP6aCtIDwga29nYXNoaXJhXCA7CivnjKnnjKnnt4sgPCBzaG91am91aGlcIDsKK+WbnuaVmeW+kiA8IGthaWt5b3V0b1wgOwor5oyH56S65YWIIDwgc2hpamlzYWtpXCA7Civlgpnlv5jpjLIgPCBiaWJvdXJva3VcIDsKK+egguezlum7jSA8IHNhdG91a2liaVwgOwor5qGI5YaF5pu4IDwgYW4nJ25haXNob1wgOwor5Yqf5Yq06YeRIDwga291cm91a2luXCA7Civooqvlt67liKUgPCBoaXNhYmV0c3VcIDsKK+eXmOeXlemdoiA8IGFiYXRhenVyYVwgOwor5pyx5paH6YeRIDwgc2h1YnVua2luXCA7CivkuI3orLnmhY4gPCBmdWtpbnNoaW5cIDsKK+iCneehrOWkiSA8IGthbmtvdWhlblwgOwor5pyr5pyf55qEIDwgbWFra2l0ZWtpXCA7CivnpLzlpYnlhawgPCByZWlib3Vrb3VcIDsKK+WNlOaKgOiAhSA8IGt5b3VnaXNoYVwgOwor5aSa6Laz6aGeIDwgdGFzb2t1cnVpXCA7CivlsYjovrEgPCBrdXRzdWpva3VcIDsKK+elnuenmOaApyA8IHNoaW5waXNlaVwgOwor5rK46aiw54K5IDwgZnV0dG91dGVuXCA7CivppIrprZrmsaAgPCB5b3VneW9jaGlcIDsKK+mtlOazleeahCA8IG1haG91dGVraVwgOwor5Lqc6Ymb5Ye454mIIDwgYWVudG9wcGFuXCA7Civoo73msLfmiYAgPCBzZWloeW91am9cIDsKK+mWouilv+W8gSA8IGthbnNhaWJlblwgOwor6aqo6IacIDwga290c3VtYWt1XCA7CivlhavljYPojYkgPCB5YWNoaWd1c2FcIDsKK+eUuuinkiA8IG1hY2hpa2Fkb1wgOwor6L675ZCbIDwgdHN1amlnaW1pXCA7CivnnIHlipsgPCBzaG91cnlva3VcIDsKK+mvieW5nyA8IGtvaW5vYm9yaVwgOwor6YGT5Lqk5rOVIDwgZG91a291aG91XCA7Civph47oj5zmsYEgPCB5YXNhaWppcnVcIDsKK+aWoeaXi+aWmSA8IGFzc2VucnlvdVwgOwor6LWk6bCvIDwgYWthaXdhc2hpXCA7CivoiKrmtbflo6sgPCBrb3VrYWlzaGlcIDsKK+a1ruWLleagqiA8IGZ1ZG91a2FidVwgOwor6aqo6IKJIDwga290c3VuaWt1XCA7CivlhoXlrqQgPCBuYWlzaGl0c3VcIDsKK+a3t+S6pOaelyA8IGtvbmtvdXJpblwgOwor5qih56+E5ZuaIDwgbW9oYW5zaHV1XCA7Civlt53lsrggPCBrYXdhZ2lzaGlcIDsKK+ism+e+qemMsiA8IGtvdWdpcm9rdVwgOwor5bmV5LiLIDwgbWFrdXNoaXRhXCA7Civnm67ljbAgPCBtZWppcnVzaGlcIDsKK+eUn+WtmOiAhSA8IHNlaXpvbnNoYVwgOwor5bC76Lu9IDwgc2hpcmlnYXJ1XCA7CivkuI3orKzmgKcgPCBmdWJ5dXVzZWlcIDsKK+Wwjumbu+aApyA8IGRvdWRlbnNlaVwgOwor5pS56Z2p5qGIIDwga2Fpa2FrdWFuXCA7Civno4HmsJfmta7kuIogPCBqaWtpZnVqb3VcIDsKK+eUt+ihhiA8IG90b2tvc2h1dVwgOwor5rOV5pS55q2jIDwgaG91a2Fpc2VpXCA7CivnlJ/nlKPmgKcgPCBzZWlzYW5zZWlcIDsKK+mwkOWPoyA8IHdhbmlndWNoaVwgOwor5LiK5Lit5LiLIDwgam91Y2h1dWdlXCA7Civkv6HotoogPCBzaGluJydldHN1XCA7Civkv4rpgLggPCBzaHVuJydpdHN1XCA7CivntabmsLTmiYAgPCBreXV1c3Vpam9cIDsKK+eMnOeWkeW/gyA8IHNhaWdpc2hpblwgOwor5LiN6Kq/5rOVIDwgYnVjaG91aG91XCA7CivlsZ7oqJcgPCBzaG9rdXRha3VcIDsKK+ebsuWIpCA8IG1la3VyYWJhblwgOwor5Y+X5YuV55qEIDwganVkb3V0ZWtpXCA7Civoqr/nkIblj7AgPCBjaG91cmlkYWlcIDsKK+epuumWkeWcsCA8IGt1dWthbmNoaVwgOwor5Yq05YON56WtIDwgcm91ZG91c2FpXCA7Civlho3mnaXpgLEgPCBzYXJhaXNodXVcIDsKK+iJsuayoiA8IHNoaWtpdGFrdVwgOwor5YWt5bC6IDwgcm9rdXNoYWt1XCA7Civku6Pooajpg6ggPCBkYWloeW91YnVcIDsKK+WDheWwkeW3riA8IGtpbnNob3VzYVwgOwor5ZGo5pyf5oCnIDwgc2h1dWtpc2VpXCA7Civpo5vooYzmnI0gPCBoaWtvdWZ1a3VcIDsKK+S4jeeJueWumiA8IGZ1dG9rdXRlaVwgOwor6KGo6Z2i5YyWIDwgaHlvdW1lbmthXCA7CivluILmnInlnLAgPCBzaGl5dXVjaGlcIDsKK+aomea6luiqniA8IGh5b3VqdW5nb1wgOwor6L6b5Y+jIDwga2FyYWt1Y2hpXCA7CivmsLTlubPpnaIgPCBzdWloZWltZW5cIDsKK+S6pOmAmui3ryA8IGtvdXRzdXVyb1wgOwor5raI6LK76ICFIDwgc2hvdWhpc2hhXCA7Civlj6TpgZPlhbcgPCBmdXJ1ZG91Z3VcIDsKK+WfuuacrOeahCA8IGtpaG9udGVraVwgOwor6I2J5Zuj5a2QIDwga3VzYWRhbmdvXCA7CivnnJ/nj6DoibIgPCBzaGluanVpcm9cIDsKK+e1seW4peaoqSA8IHRvdXN1aWtlblwgOwor6Imy5qyyIDwgc2hpa2l5b2t1XCA7Civnt7Tnv5LmqZ8gPCByZW5zaHV1a2lcIDsKK+alteeGsSA8IGdva3VuZXRzdVwgOwor6Lez6JmrIDwgdG9iaW11c2hpXCA7CivmmIfpmY3oiLUgPCBzaG91a291ZGFcIDsKK+WFteW6q+ecjCA8IGh5b3Vnb2tlblwgOwor5YWs5rW35LiKIDwga291a2Fpam91XCA7Civmv4DmiKbljLogPCBnZWtpc2Vua3VcIDsKK+WEgOekvOeahCA8IGdpcmVpdGVraVwgOwor5pyJ5bmz57OWIDwgYXJ1aGVpdG91XCA7Civnl5vng4ggPCB0c3V1cmV0c3VcIDsKK+S6pOmAmuiyuyA8IGtvdXRzdXVoaVwgOwor6Iej56+AIDwgc2hpbnNldHN1XCA7Civph5HprZrojYkgPCBraW5neW9zb3VcIDsKK+edgOeBq+eCuSA8IGNoYWtrYXRlblwgOwor6YG45oyZ5oimIDwgc2Vua3lvc2VuXCA7CivpqqjnrrEgPCBrb3RzdWJha29cIDsKK+Wul+S4u+aoqSA8IHNvdXNodWtlblwgOwor5rC06YW45qC5IDwgc3Vpc2Fua29uXCA7CivotaTljYHlrZcgPCBzZWtpanV1amlcIDsKK+iThOmfs+apnyA8IGNoaWt1b25raVwgOwor5L+X6KqsIDwgem9rdXNldHN1XCA7Civoh6rlsIrlv4MgPCBqaXNvbnNoaW5cIDsKK+ihqOiomOazlSA8IGh5b3VraWhvdVwgOwor6Zyy5aSp5ZWGIDwgcm90ZW5zaG91XCA7CivkvJHlu7fml6UgPCBreXV1dGVpYmlcIDsKK+mjsumFkueZliA8IGluc2h1aGVraVwgOwor5LiA5paJ6auYIDwgaXNzZWlkYWthXCA7Civlh6bliJHlj7AgPCBzaG9rZWlkYWlcIDsKK+WGt+aIv+i7iiA8IHJlaWJvdXNoYVwgOwor5qSc55ar5omAIDwga2VuJydla2lqb1wgOwor54Wn5bqm6KiIIDwgc2hvdWRva2VpXCA7Civlj47nqI7lkI8gPCBzaHV1emVpcmlcIDsKK+WWieiHquaFoiA8IG5vZG9qaW1hblwgOwor6YeR55yL5p2/IDwga2lua2FuYmFuXCA7CivmlaPlvL7pioMgPCBzYW5kYW5qdXVcIDsKK+WEsuW9uSA8IG1vdWtleWFrdVwgOwor5Z+56aSK5rayIDwgYmFpeW91ZWtpXCA7CivlpKnni5fpoqggPCB0ZW5ndWthemVcIDsKK+S4gOacrOadiSA8IGlwcG9uc3VnaVwgOwor5ris5b6u6KiIIDwgc29rdWJpa2VpXCA7Civpoqjoh7TmnpcgPCBmdXVjaGlyaW5cIDsKK+WcsOeQhuWtpiA8IGNoaXJpZ2FrdVwgOwor576O6aOf5a62IDwgYmlzaG9rdWthXCA7CivlsL/pgZPngo4gPCBueW91ZG91ZW5cIDsKK+ies+ieguaLsyA8IHRvdXJvdWtlblwgOwor6Kq/55CG5Lq6IDwgY2hvdXJpbmluXCA7CivllqvnhZnmiYAgPCBraXRzdWVuam9cIDsKK+aZguWIhuaZgiA8IGppYnVuZG9raVwgOwor5L6b6L+wIDwga3lvdWp1dHN1XCA7Civlhavph43moZwgPCB5YWV6YWt1cmFcIDsKK+WNl+ibruiIuSA8IG5hbmJhbnNlblwgOwor6LGM6LGG6LGGIDwgZW5kb3VtYW1lXCA7Civls7vng4ggPCBzaHVucmV0c3VcIDsKK+eUt+iFuSA8IG90b2tvYmFyYVwgOwor5Zue5pWw5Yi4IDwga2Fpc3V1a2VuXCA7Civoo73pgKDogIUgPCBzZWl6b3VzaGFcIDsKK+mHjeW9ueS8miA8IGp1dXlha2thaVwgOwor5YyX5qyn5Lq6IDwgaG9rdW91amluXCA7CivkuIDkurrlrZAgPCBoaXRvcmlra29cIDsKK+altea1gSA8IGt5b2t1cnl1dVwgOwor5q2755Sf6KazIDwgc2hpc2Vpa2FuXCA7Civngq3nlr3nl4UgPCB0YW5zb2J5b3VcIDsKK+eZveWcsOWbsyA8IGhha3VjaGl6dVwgOwor55Wl56ugIDwgcnlha3VzaG91XCA7CivpvIjnlLLoibIgPCBiZWtrb3Vpcm9cIDsKK+S5l+i7iuWIuCA8IGpvdXNoYWtlblwgOwor5ris56iL5ZmoIDwgc29rdXRlaWtpXCA7CivlhoboiJ7mm7IgPCBlbmJ1a3lva3VcIDsKK+iJr+aXpSA8IHJ5b3VqaXRzdVwgOwor5raI6LK756iOIDwgc2hvdWhpemVpXCA7Civlo4HkuIDph40gPCBrYWJlaGl0b2VcIDsKK+Wbm+mdouS9kyA8IHNoaW1lbnRhaVwgOwor5bem5YmNIDwgaGlkYXJpbWFlXCA7CivlnKjmnaXnt5ogPCB6YWlyYWlzZW5cIDsKK+Wkp+eQhuefsyA8IGRhaXJpc2VraVwgOwor55Sf55Sj5ZywIDwgc2Vpc2FuY2hpXCA7Civlr77os6ogPCB0YWlzaGl0c3VcIDsKK+S4jeazleenu+awkSA8IGZ1aG91aW1pblwgOwor54mH55Sw6IiOIDwga2F0YWluYWthXCA7CivopIflhpnmqZ8gPCBmdWt1c2hha2lcIDsKK+Wwj+iqrCA8IHNob3VzZXRzdVwgOwor6aKo5L+X55S7IDwgZnV1em9rdWdhXCA7Civlt6blhZogPCBoaWRhcml0b3VcIDsKK+iEh+mBkyA8IHdha2ltaWNoaVwgOwor5YG06Z2i5ZuzIDwgc29rdW1lbnp1XCA7Civmo7nnp6QgPCBzYW9iYWthcmlcIDsKK+i2iuaoqeihjOeCuiA8IGVra2Vua291aVwgOwor6KiA6Kqe5a2mIDwgZ2VuZ29nYWt1XCA7Civlt6HoiKroiLkgPCBqdW5rb3VzZW5cIDsKK+WOn+Wni+aelyA8IGdlbnNoaXJpblwgOwor6Iez5LiK5qipIDwgc2hpam91a2VuXCA7CivlsI/lo7LllYYgPCBrb3VyaXNob3VcIDsKK+ahnOiynSA8IHNha3VyYWdhaVwgOwor57Wx5Yi25ZOBIDwgdG91c2VpaGluXCA7Civnl4XmsqEgPCBieW91Ym90c3VcIDsKK+esrOS4gOWvqSA8IGRhaWlzc2hpblwgOwor57SF5q+b5Lq6IDwga291bW91amluXCA7CivoiLnmqYsgPCBmdW5hYmFzaGlcIDsKK+ishOWGmeeJiCA8IHRvdXNoYWJhblwgOwor5o6n6Ki05a+pIDwga291c29zaGluXCA7CivkuK3lj6Tou4ogPCBjaHV1a29zaGFcIDsKK+mrquayuSA8IGthbWlhYnVyYVwgOwor5paw57SA5YWDIDwgc2hpbmtpZ2VuXCA7Civnt7Tnv5LmiYAgPCByZW5zaHV1am9cIDsKK+eri+aWueaguSA8IHJpcHBvdWtvblwgOwor55+t6Z+z6ZqOIDwgdGFuJydvbmthaVwgOwor5Li75oSP5Li7576pIDwgc2h1aXNodWdpXCA7CivlrqPoqpPmm7ggPCBzZW5zZWlzaG9cIDsKK+S6jOaLjeWtkCA8IG5pYnlvdXNoaVwgOwor5Yq06L6y5YWaIDwgcm91bm91dG91XCA7CivlvbzlsrjoirEgPCBoaWdhbmJhbmFcIDsKK+W/oOmtgueikSA8IGNodXVrb25oaVwgOwor5pyJ5Yq55oCnIDwgeXV1a291c2VpXCA7CivkuInml6XmnIggPCBtaWthZHp1a2lcIDsKK+eZuuaMr+apnyA8IGhhc3NoaW5raVwgOwor6Ieq5bex5qSc5p+7IDwgamlrb2tlbnNhXCA7Civnt4/li5nluoEgPCBzb3VtdWNob3VcIDsKK+eXheasoCA8IGJ5b3VrZXRzdVwgOwor5YWr5YiHIDwgeWF0c3VnaXJpXCA7CivmtYHooYzoqp4gPCByeXV1a291Z29cIDsKK+WGhemuruS6uiA8IG5haXNlbmppblwgOwor5YWl5YqbIDwgbnl1dXJ5b2t1XCA7CivnlJ/nkIbnmoQgPCBzZWlyaXRla2lcIDsKK+WQjeiqieaFviA8IG1laXlveW9rdVwgOwor5Yqq5Yqb5a62IDwgZG9yeW9rdWthXCA7CivlnKjmnaXnqK4gPCB6YWlyYWlzaHVcIDsKK+eUuuetiyA8IG1hY2hpc3VqaVwgOwor5aSa5LqL5aSa6ZujIDwgdGFqaXRhbmFuXCA7CivliqDnoavms5UgPCBrYXJ5dXVob3VcIDsKK+Wkp+WutuaXjyA8IGRhaWthem9rdVwgOwor5pmv5pWZ5b6SIDwga2Vpa3lvdXRvXCA7CivvvKHvvKLvvKPpoIYgPCDEk2LEq3NoxKtqdW5cIDsKK+iEgui2syA8IGFidXJhYXNoaVwgOwor55S656uLIDwgY2hvdXJpdHN1XCA7Civpq5jnqY3pm7IgPCBrb3VzZWtpdW5cIDsKK+aEj+awl+aPmuaPmiA8IGlraXlvdXlvdVwgOwor5LmX6Ii55Yi4IDwgam91c2Vua2VuXCA7CivohJroqLsgPCBreWFrdWNodXVcIDsKK+WGjeWvqeafuyA8IHNhaXNoaW5zYVwgOwor55So6Kqe6ZuGIDwgeW91Z29zaHV1XCA7CivmpbXmnIggPCBnb2t1Z2V0c3VcIDsKK+iyoOWCt+iAhSA8IGZ1c2hvdXNoYVwgOwor6ISC6LOqIDwgc2hpc2hpdHN1XCA7CivlirTlg43ms5UgPCByb3Vkb3Vob3VcIDsKK+axjueUqOapnyA8IGhhbicneW91a2lcIDsKK+iIn+apiyA8IGZ1bmFoYXNoaVwgOwor5L6b6KGAIDwga3lvdWtldHN1XCA7CivlkI3oqonlv4MgPCBtZWl5b3NoaW5cIDsKK+mRkeWumuS6uiA8IGthbnRlaW5pblwgOwor5bed5LiLIDwga2F3YXNoaW1vXCA7CivmipXnpajml6UgPCB0b3VoeW91YmlcIDsKK+WFiOihjOipniA8IHNlbmtvdXNoaVwgOwor54us5ryU5LyaIDwgZG9rdWVua2FpXCA7Civpn7Ppn7vlraYgPCBvbicnaW5nYWt1XCA7Civlip/lirTogIUgPCBrb3Vyb3VzaGFcIDsKK+Wun+mMsiA8IGppdHN1cm9rdVwgOwor6ISz57Sw6IOeIDwgbm91c2FpYm91XCA7Civnvo7mlofoqr8gPCBiaWJ1bmNob3VcIDsKK+aYjue0sOabuCA8IG1laXNhaXNob1wgOwor55S35paH5a2XIDwgb3Rva29tb2ppXCA7Civlkozoi7Hovp7lhbggPCB3YWVpaml0ZW5cIDsKK+e3j+WLmOWumiA8IHNvdWthbmpvdVwgOwor6Imy5byxIDwgc2hpa2lqYWt1XCA7Civlm57opqfmnb8gPCBrYWlyYW5iYW5cIDsKK+S7u+WRveeKtiA8IG5pbm1laWpvdVwgOwor55m65Ye6IDwgaGFzc2h1dHN1XCA7CivkuIrntI3ph5EgPCBqb3Vub3VraW5cIDsKK+aLt+WVj+WPsCA8IGdvdW1vbmRhaVwgOwor6IWw57iEIDwga29zaGluYXdhXCA7CivnlJ/nr4AgPCBuYW1hYnVzaGlcIDsKK+S4iuWlj+aWhyA8IGpvdXNvdWJ1blwgOwor6Ieq6LKs54K5IDwgamlzZWtpdGVuXCA7CivotrPohbAgPCBhc2hpa29zaGlcIDsKK+WKqeebo+edoyA8IGpva2FudG9rdVwgOwor5YWl5LuPIDwgbnl1dWJ1dHN1XCA7Civlh6bnlJ/oqJMgPCBzaG9zZWlrdW5cIDsKK+WFpeS6pCA8IGlyaW1hamlyaVwgOwor6IWw57SQIDwga29zaGloaW1vXCA7CivmnKzoqabpqJMgPCBob25zaGlrZW5cIDsKK+WkluS/oemDqCA8IGdhaXNoaW5idVwgOwor5L+u56+JIDwgc2h1dWNoaWt1XCA7CivkuIDkurrliY0gPCBoaXRvcmltYWVcIDsKK+WKtOWDjeaoqSA8IHJvdWRvdWtlblwgOwor6IKJ6aOfIDwgbmlrdXNob2t1XCA7CivlnLDnkIPlhIAgPCBjaGlreXV1Z2lcIDsKK+WcsOS4iuaoqSA8IGNoaWpvdWtlblwgOwor5L+h57SEIDwgc2hpbicneWFrdVwgOwor6YeR5bGP6aKoIDwga2luYnlvdWJ1XCA7CivlsI7pm7vkvZMgPCBkb3VkZW50YWlcIDsKK+WFseebiuiyuyA8IGt5b3Vla2loaVwgOwor6ISx6JC9IDwgZGF0c3VyYWt1XCA7CivkuI3mhI/oqabpqJMgPCBmdWlzaGlrZW5cIDsKK+mmrOm5v+mdoiA8IGJha2FkenVyYVwgOwor5Zyf55So5rOiIDwgZG95b3VuYW1pXCA7Civnt4/pgbjmjJkgPCBzb3VzZW5reW9cIDsKK+WItuW+oeebpCA8IHNlaWd5b2JhblwgOwor5b+D5oSP5rCXIDwga29rb3JvaWtpXCA7CivmqKHnr4ToqablkIggPCBtb2hhbmppYWlcIDsKK+mHjeWKtOWDjSA8IGp1dXJvdWRvdVwgOwor5omL5qa05by+IDwgdGVyeXV1ZGFuXCA7CivkuIDmnprkuIogPCBpY2hpbWFpdWVcIDsKK+WkqeS6leeBryA8IHRlbmpvdXRvdVwgOwor6aSK6a2a5aC0IDwgeW91Z3lvam91XCA7CivmipXnpajmiYAgPCB0b3VoeW91am9cIDsKK+i8qeWHuiA8IGhhaXNodXRzdVwgOwor5bqn5qiZ57O7IDwgemFoeW91a2VpXCA7CivlhoblgJ/mrL4gPCBlbnNoYWtrYW5cIDsKK+e1tuWvvuirliA8IHpldHRhaXJvblwgOwor5o2V6Jmr57ayIDwgaG9jaHV1YW1pXCA7Civlh7rmnaXmmJ8gPCBkZWtpYm9zaGlcIDsKK+S6jOmHjeavjemfsyA8IG5panV1Ym9pblwgOwor6Iqx5p+z55WMIDwga2FyeXV1a2FpXCA7CivlhazmsJHmqKkgPCBrb3VtaW5rZW5cIDsKK+WmguS9leiosSA8IGlrYWJha2FyaVwgOwor5riF5pWZ5b6SIDwgc2Vpa3lvdXRvXCA7CivntKvlpJbnt5ogPCBzaGlnYWlzZW5cIDsKK+S/ruelkyA8IHNodXVmdXRzdVwgOwor5ZCM5aW95LyaIDwgZG91a291a2FpXCA7CivmtJfou4rloLQgPCBzZW5zaGFqb3VcIDsKK+Wxleacm+i7iiA8IHRlbmJvdXNoYVwgOwor5a2m6ZalIDwgZ2FrdWJhdHN1XCA7Civmmpflj7fluLMgPCBhbmdvdWNob3VcIDsKK+S9jeiyoCA8IGt1cmFpbWFrZVwgOwor6IuX5LujIDwgbmF3YXNoaXJvXCA7CivlsbHnlLcgPCB5YW1hb3Rva29cIDsKK+W5jOmmrOi7iiA8IGhvcm9iYXNoYVwgOwor5aSn5LyB5qWtIDwgZGFpa2lneW91XCA7Civlo7LnrJHlqaYgPCBiYWlzaG91ZnVcIDsKK+aOoeeCueiAhSA8IHNhaXRlbnNoYVwgOwor5qCE6ICA5qCE6I+vIDwgZWl5b3VlaWdhXCA7CivplpPpmpnmr5QgPCBrYW5nZWtpaGlcIDsKK+WjruihjOS8miA8IHNvdWtvdWthaVwgOwor5YaN55Sf5ZOBIDwgc2Fpc2VpaGluXCA7CivlhaznpL7lgrUgPCBrb3VzaGFzYWlcIDsKK+ahnOiNiSA8IHNha3VyYXNvdVwgOwor5a6i6LazIDwga3lha3Vhc2hpXCA7CivlsZ7nm64gPCBzaG9rdW1va3VcIDsKK+acquadpeWtpiA8IG1pcmFpZ2FrdVwgOwor5L+X562GIDwgem9rdWhpdHN1XCA7CivmnKvlp4vntYIgPCBzdWVzaGlqdXVcIDsKK+WEn+WNtCA8IHNob3VreWFrdVwgOwor5r2c5rC06ImmIDwgc2Vuc3Vpa2FuXCA7CivmsLTpgZPnrqEgPCBzdWlkb3VrYW5cIDsKK+avjeiqnuipseiAhSA8IGJvZ293YXNoYVwgOwor5aSp55CG5pWZIDwgdGVucmlreW91XCA7Civmpb3lvosgPCBnYWt1cml0c3VcIDsKK+ahnOiJsiA8IHNha3VyYWlyb1wgOwor5LqI5oOz6auYIDwgeW9zb3VkYWthXCA7CivmiYvmn4TpoZQgPCB0ZWdhcmFnYW9cIDsKK+aJi+iKuOWTgSA8IHNodWdlaWhpblwgOwor5bmz6KGh6YyYIDwgaGVpa291c3VpXCA7Civmipfmr5LntKAgPCBrb3Vkb2t1c29cIDsKK+Wwj+e+iiA8IGtvaGl0c3VqaVwgOwor5aSn6LGG57KVIDwgZGFpenVrYXN1XCA7CivnoJTnqbbosrsgPCBrZW5reXV1aGlcIDsKK+Wun+izqiA8IGppc3NoaXRzdVwgOwor55+l6IO954qvIDwgY2hpbm91aGFuXCA7CivpgbjmiYvmqKkgPCBzZW5zaHVrZW5cIDsKK+m6nemmmem5vyA8IGpha291amlrYVwgOwor5rW35bK457eaIDwga2FpZ2Fuc2VuXCA7Civosr/mmJPmuK8gPCBib3Vla2lrb3VcIDsKK+aapuW5tOW6piA8IHJla2luZW5kb1wgOwor5aSp5a6u5ZuzIDwgdGVua3l1dXp1XCA7CivmnInmqKnogIUgPCB5dXVrZW5zaGFcIDsKK+S9k+ijgeS4iiA8IHRlaXNhaWpvdVwgOwor5LyK6YGU55S3IDwgZGF0ZW90b2tvXCA7CivkvJHliIrml6UgPCBreXV1a2FuYmlcIDsKK+iCmOmJhCA8IGhpaml0ZXRzdVwgOwor6LOD6aSFIDwgY2hpbm1vY2hpXCA7Civlj6TlhbjlraYgPCBrb3Rlbmdha3VcIDsKK+WuneiynSA8IHRha2FyYWdhaVwgOwor6Lu95Y+jIDwga2FydWt1Y2hpXCA7CivmlLnoqILniYggPCBrYWl0ZWliYW5cIDsKK+eUn+WtmOaoqSA8IHNlaXpvbmtlblwgOwor6LaF6ISxIDwgY2hvdWRhdHN1XCA7CivoqbLllY/poYwgPCBnYWltb25kYWlcIDsKK+aal+WPt+WtpiA8IGFuZ291Z2FrdVwgOwor5Luj6KGM6ICFIDwgZGFpa291c2hhXCA7CivnlLfniakgPCBvdG9rb21vbm9cIDsKK+WFq+WNg+atsyA8IHlhY2hpdG9zZVwgOwor5Y+j55yf5Ly8IDwga3VjaGltYW5lXCA7Civlh7rniYjpg6ggPCBzaHVwcGFuYnVcIDsKK+iBt+mVtyA8IHNob2t1Y2hvdVwgOwor6Kaz5ris5omAIDwga2Fuc29rdWpvXCA7CivntYzmuIjnlYwgPCBrZWl6YWlrYWlcIDsKK+S4jeeGseW/gyA8IGZ1bmVzc2hpblwgOwor5YWs5rOV5Lq6IDwga291aG91amluXCA7CivkvJHnnKDmnJ8gPCBreXV1bWlua2lcIDsKK+WJr+e3j+eQhiA8IGZ1a3Vzb3VyaVwgOwor5Ly05aWP6ICFIDwgYmFuc291c2hhXCA7Civlr77oq4fogIUgPCB0YWlkYW5zaGFcIDsKK+iyv+aYk+azlSA8IGJvdWVraWhvdVwgOwor5ZyS6YGK5LyaIDwgZW4nJ3l1dWthaVwgOwor6LOb5oiQ6ICFIDwgc2Fuc2Vpc2hhXCA7Civku4/poZQgPCBob3Rva2VnYW9cIDsKK+iKuOiDveS6uiA8IGdlaW5vdWppblwgOwor5YiG6K2y5ZywIDwgYnVuam91Y2hpXCA7CivlsYjlhYnmgKcgPCBrdWtrb3VzZWlcIDsKK+ecn+ePoOa5viA8IHNoaW5qdXdhblwgOwor5LuP6aCYIDwgZnV0c3VyeW91XCA7CivkuqTpgJrnpo0gPCBrb3V0c3V1a2FcIDsKK+aLneeBq+aVmSA8IGhhaWtha3lvdVwgOwor566H5p2h5pu4IDwga2Fqb3VnYWtpXCA7CivnlaXmrbQgPCByeWFrdXJla2lcIDsKK+mBuOaMmeS6uiA8IHNlbmt5b25pblwgOwor6YWq6L6y5a62IDwgcmFrdW5vdWthXCA7Civlt6Xoirjlk4EgPCBrb3VnZWloaW5cIDsKK+acquadpeWeiyA8IG1pcmFpZ2F0YVwgOwor5byB6bCT6aGeIDwgYmVuc2FpcnVpXCA7CivnhKHos4fmoLwgPCBtdXNoaWtha3VcIDsKK+S7u+WRveaoqSA8IG5pbm1laWtlblwgOwor6Jmr5Z6C54KOIDwgY2h1dXN1aWVuXCA7Civpqqjmn4QgPCBrb3RzdWdhcmFcIDsKK+acqOaIuOW+oeWFjSA8IGtpZG9nb21lblwgOwor56C06JC95oi4IDwgZ29yb3RzdWtpXCA7Civnt6nkuIvolqwgPCBrYW5nZXlha3VcIDsKK+acieapn+eahCA8IHl1dWtpdGVraVwgOwor6LWk6ImyIDwgc2VraXNob2t1XCA7CivmraPlj43lr74gPCBzZWloYW50YWlcIDsKK+Wwu+eZliA8IHNoaXJpa3VzZVwgOwor6Z2S5rW35Y6fIDwgYW91bmFiYXJhXCA7Civlh7npnaLpj6EgPCBvdW1lbmt5b3VcIDsKK+WgsemBk+mZoyA8IGhvdWRvdWppblwgOwor5qW15bCPIDwga3lva3VzaG91XCA7CivliqPli6LmhJ8gPCByZXNzZWlrYW5cIDsKK+iHquW3seeWjuWkliA8IGppa29zb2dhaVwgOwor5L+154mpIDwgaHlvdW1vdHN1XCA7CivlvqHmlpnlnLAgPCBnb3J5b3VjaGlcIDsKK+eUn+eIqiA8IG5hbWFkenVtZVwgOwor5p2+6aKoIDwgbWF0c3VrYXplXCA7CivoqIjnrpfogIUgPCBrZWlzYW5zaGFcIDsKK+eEoemnhOWPoyA8IG11ZGFndWNoaVwgOwor5p2O5om/5pmpIDwgcmlzaG91YmFuXCA7CivotoXntbYgPCBjaG91emV0c3VcIDsKK+iIueWupCA8IHNlbnNoaXRzdVwgOwor56aP6Z+z5pu4IDwgZnVrdWluc2hvXCA7CivlhavljabmjowgPCBoYWtrZXNob3VcIDsKK+iHquS4u+eahCA8IGppc2h1dGVraVwgOwor6YCy5q2p5YWaIDwgc2hpbnBvdG91XCA7Civnm7jlj43mgKcgPCBzb3VoYW5zZWlcIDsKK+iDveWLleaFiyA8IG5vdWRvdXRhaVwgOwor5Y+45Luk5a6YIDwgc2hpcmVpa2FuXCA7CivlnLDpnIfoqIggPCBqaXNoaW5rZWlcIDsKK+e0meS4gOmHjSA8IGthbWloaXRvZVwgOwor5rC05Yqg5ribIDwgbWl6dWthZ2VuXCA7Civlh7rniYjosrsgPCBzaHVwcGFuaGlcIDsKK+aenOWgseiAhSA8IGthaG91bW9ub1wgOwor5oiQ6ZW35pyfIDwgc2VpY2hvdWtpXCA7CivohbrnhrEgPCBzZW4nJ25ldHN1XCA7CivmtYTlnJ/mlZkgPCBqb3Vkb2t5b3VcIDsKK+adn+mrqiA8IHNva3VoYXRzdVwgOwor6Lui5Ye6IDwgdGVuc2h1dHN1XCA7CivlpKnkupXmnb8gPCB0ZW5qb3VpdGFcIDsKK+mbhuWhteapnyA8IHNodXVqaW5raVwgOwor5YeM5rOi5oCnIDwgcnlvdWhhc2VpXCA7Civlv6vnlLflrZAgPCBrYWlkYW5zaGlcIDsKK+WkqeeLl+iMuCA8IHRlbmd1dGFrZVwgOwor54uZ5pKD5YW1IDwgc29nZWtpaGVpXCA7CivlpJbovKrlsbEgPCBnYWlyaW56YW5cIDsKK+aYh+mZjeapnyA8IHNob3Vrb3VraVwgOwor5Z+656SO5o6n6ZmkIDwga2lzb2tvdWpvXCA7Civls7bls7YgPCBzaGltYWppbWFcIDsKK+aUvueBq+eLgiA8IGhvdWtha3lvdVwgOwor6aKo6aas54mbIDwgZnV1YmFneXV1XCA7CivpmbblmajllYYgPCB0b3VraXNob3VcIDsKK+eVpeacjSA8IHJ5YWt1ZnVrdVwgOwor5LiJ5aGB57eaIDwgc2FucnVpc2VuXCA7Civls7blsbEgPCBzaGltYXlhbWFcIDsKK+mBk+e+qeW/gyA8IGRvdWdpc2hpblwgOwor6LaF5pmC56m6IDwgY2hvdWppa3V1XCA7Civlvq7nspLlrZAgPCBiaXJ5dXVzaGlcIDsKK+awtOW5s+e3miA8IHN1aWhlaXNlblwgOwor5YaN5bCL5ZWPIDwgc2FpamlubW9uXCA7CivprLHli4MgPCB1dHN1Ym90c3VcIDsKK+adsembsiA8IHNoaW5vbm9tZVwgOwor55Sf5ruFIDwgc2hvdW1ldHN1XCA7CivmuIXmjoPou4ogPCBzZWlzb3VzaGFcIDsKK+S/l+eJqSA8IHpva3VidXRzdVwgOwor6ISx56GrIDwgZGF0c3VyeXV1XCA7CivohIjntaEgPCBteWFrdXJha3VcIDsKK+S4gOWumua4qeW6piA8IGl0dGVpb25kb1wgOwor5pyA5YmN57eaIDwgc2FpemVuc2VuXCA7Civntbblr77ogIUgPCB6ZXR0YWlzaGFcIDsKK+ato+eiuuW6piA8IHNlaWtha3Vkb1wgOwor5rC35YmK5qmfIDwgaHlvdXNha2tpXCA7CivliIbop6Pog70gPCBidW5rYWlub3VcIDsKK+Wbm+inkuW9oiA8IHNoaWtha2tlaVwgOwor5a6j6KiA5pu4IDwgc2VuZ2Vuc2hvXCA7Civlj7jku6TloZQgPCBzaGlyZWl0b3VcIDsKK+WtpuitmCA8IGdha3VzaGlraVwgOwor56uL5aSq5a2QIDwgcml0dGFpc2hpXCA7CivmnInouYTpoZ4gPCB5dXV0ZWlydWlcIDsKK+S9v+eUqOiAhSA8IHNoaXlvdXNoYVwgOwor5L6155WlIDwgc2hpbnJ5YWt1XCA7CivlpKnkuIrnlYwgPCB0ZW5qb3VrYWlcIDsKK+mdkua1t+S6gCA8IGFvdW1pZ2FtZVwgOwor5p2l6YGK6ICFIDwgcmFpeXV1c2hhXCA7Civlt6jkurrou40gPCBreW9qaW5ndW5cIDsKK+WtpumDqOeUnyA8IGdha3VidXNlaVwgOwor5bel5a2m6YOoIDwga291Z2FrdWJ1XCA7CivmlZnnp5Hmm7ggPCBreW91a2FzaG9cIDsKK+e1jOa4iOazlSA8IGtlaXphaWhvdVwgOwor56C05YK36aKoIDwgaGFzaG91ZnV1XCA7CivogbfosqwgPCBzaG9rdXNla2lcIDsKK+aMgeWPguS6uiA8IGppc2FuJyduaW5cIDsKK+e3j+edo+W6nCA8IHNvdXRva3VmdVwgOwor5pel5pys6auqIDwgbmlob25nYW1pXCA7CivoibbkuosgPCB0c3V5YWdvdG9cIDsKK+WItuW+oeajkiA8IHNlaWd5b2JvdVwgOwor5qSc5qGI5pu4IDwga2VuJydhbnNob1wgOwor546J6bSrIDwgdGFtYXNoaWdpXCA7CivmranpgZPmqYsgPCBob2RvdWt5b3VcIDsKK+WcsOaWuee0mSA8IGNoaWhvdXNoaVwgOwor5pel5YKt5Y+WIDwgaGl5b3V0b3JpXCA7CivlnLDnjYTlpIkgPCBqaWdva3VoZW5cIDsKK+WQiOWlj+WboyA8IGdhc3NvdWRhblwgOwor55Om54mIIDwga2F3YXJhYmFuXCA7CivlpKnkupXmiYcgPCB0ZW5qb3VzZW5cIDsKK+WCt+WPoyA8IGtpenVndWNoaVwgOwor5YWo5Y+N5bCEIDwgemVuaGFuc2hhXCA7Civlr4bntIQgPCBtaXRzdXlha3VcIDsKK+WkiemAn+apnyA8IGhlbnNva3VraVwgOwor54Sh55CG5byPIDwgbXVyaXNoaWtpXCA7Civou73lirTlg40gPCBrZWlyb3Vkb3VcIDsKK+WtpuihkyA8IGdha3VqdXRzdVwgOwor5q2j5Y+N5ZCIIDwgc2VpaGFuZ291XCA7CivntYzmuIjmrIQgPCBrZWl6YWlyYW5cIDsKK+i7kuS4iyA8IG5va2lzaGl0YVwgOwor6LuK5LujIDwga3VydW1hZGFpXCA7CivlgJ/mlpkgPCBzaGFrdXJ5b3VcIDsKK+eUn+Wtl+W8lSA8IGlraWppYmlraVwgOwor5oqV56Wo5Yy6IDwgdG91aHlvdWt1XCA7CivkurrpgZQgPCBoaXRvdGFjaGlcIDsKK+acqOabnOaXpSA8IG1va3V5b3ViaVwgOwor5Ye65pyo5bm0IDwgZGVraWRvc2hpXCA7CivlgJnmlocgPCBzb3Vyb3VidW5cIDsKK+eik+awt+WzoCA8IHVzdWl0b3VnZVwgOwor5a+655S3IDwgdGVyYW90b2tvXCA7CivliqDlhaXph5EgPCBrYW55dXVraW5cIDsKK+awkemWk+S6uiA8IG1pbmthbmppblwgOwor5YWs5Yuf5qCqIDwga291Ym9rYWJ1XCA7CivmpbXljJcgPCBreW9rdWhva3VcIDsKK+S5l+mmrOacjSA8IGpvdWJhZnVrdVwgOwor6ISx542EIDwgZGF0c3Vnb2t1XCA7Civml6XmnKzpoJggPCBuaWhvbnJ5b3VcIDsKK+iRl+abuOWQjSA8IGNob3Nob21laVwgOwor57WM5Za25a2mIDwga2VpZWlnYWt1XCA7Civnmb3piZvpibEgPCBoYWt1ZW5rb3VcIDsKK+eUuuaWuSA8IG1hY2hpa2F0YVwgOwor57KX55uu57OWIDwgemFyYW1ldG91XCA7CivmiYvliY3lkbPlmYwgPCB0ZW1hZW1pc29cIDsKK+WGheeOhOmWoiA8IG5haWdlbmthblwgOwor5Zyw5pa556iOIDwgY2hpaG91emVpXCA7Civpq5jlnY8gPCB0YWthdHN1a2lcIDsKK+W3oeafu+mVtyA8IGp1bnNhY2hvdVwgOwor5Y2w5Yi35qmfIDwgaW5zYXRzdWtpXCA7Civlh43mrbvogIUgPCB0b3VzaGlzaGFcIDsKK+eZvemKheiyqCA8IGhha3Vkb3VrYVwgOwor6LK46LODIDwga2FzaGljaGluXCA7Civljp/lp4vkurogPCBnZW5zaGlqaW5cIDsKK+WKoOW3peizgyA8IGtha291Y2hpblwgOwor5YWB5paH5YWB5q2mIDwgaW5idW5pbmJ1XCA7Civnq7novKrpuqkgPCBjaGlrdXdhZnVcIDsKK+S4gOaWueeahCA8IGlwcG91dGVraVwgOwor5Ye65LuV5LqLIDwgZGVzaGlnb3RvXCA7CivmraPlv7XloLQgPCBzaG91bmVuYmFcIDsKK+WAieaVtyA8IGt1cmFzaGlraVwgOwor5Lme6aOfIDwga290c3VqaWtpXCA7Civmn5TpgZPloLQgPCBqdXVkb3Vqb3VcIDsKK+iEiumrhOeCjiA8IHNla2l6dWllblwgOwor5LqM6YeN6YecIDwgbmlqdXVnYW1hXCA7Civnq4vmlrnkvZMgPCByaXBwb3V0YWlcIDsKK+S8uOe4riA8IHNoaW5zaHVrdVwgOwor6YGg6ZqU5oCnIDwgZW5rYWt1c2VpXCA7Civou73mrYzliocgPCBrZWlrYWdla2lcIDsKK+WItuWLleeBryA8IHNlaWRvdXRvdVwgOwor5YKs55yg5YmkIDwgc2FpbWluemFpXCA7Civku4rkuIDluqYgPCBpbWFpY2hpZG9cIDsKK+aUu+mYsuaIpiA8IGtvdWJvdXNlblwgOwor5rWE5Zyf5a6XIDwgam91ZG9zaHV1XCA7Civmk43nuKbmob8gPCBzb3VqdXVrYW5cIDsKK+aWh+aYjumkqCA8IGJ1bm1laWthblwgOwor5bCO6Zai5pWwIDwgZG91a2Fuc3V1XCA7Civmu57lnKjlnLAgPCB0YWl6YWljaGlcIDsKK+S6uuizqiA8IGhpdG9qaWNoaVwgOwor5pyd6aOfIDwgY2hvdXNob2t1XCA7CivkuIrntI3nsbMgPCBqb3Vub3VtYWlcIDsKK+Wuh+WumeacjSA8IHVjaHV1ZnVrdVwgOwor5Yip5Y+j6ICFIDwgcmlrb3Vtb25vXCA7Civmlrnms5Xoq5YgPCBob3Vob3Vyb25cIDsKK+iTi+eEtuaApyA8IGdhaXplbnNlaVwgOwor5Y2K6KO95ZOBIDwgaGFuc2VpaGluXCA7Civls7vliKUgPCBzaHVuYmV0c3VcIDsKK+S4gOWgtOmdoiA8IGljaGliYW1lblwgOwor55+z54mI55S7IDwgc2VraWJhbmdhXCA7CivnmbvpjLLnsL8gPCB0b3Vyb2t1Ym9cIDsKK+iHquaatOiHquajhCA8IGppYm91amlraVwgOwor5LiA5pio5pmpIDwgaXNzYWt1YmFuXCA7CivlsYrmm7ggPCB0b2Rva2VzaG9cIDsKK+WuouetiyA8IGt5YWt1c3VqaVwgOwor5aSa5qW15YyWIDwgdGFreW9rdWthXCA7CivlpKfkuIDnlaogPCBvb2ljaGliYW5cIDsKK+ihm+aYn+WbvSA8IGVpc2Vpa29rdVwgOwor55u45pKy6YOo5bGLIDwgc3Vtb3ViZXlhXCA7CivmnI3po74gPCBmdWt1c2hva3VcIDsKK+WCkeWHuiA8IGtlc3NodXRzdVwgOwor5LyR6IG3IDwga3l1dXNob2t1XCA7CivkuIvntJrnlJ8gPCBrYWt5dXVzZWlcIDsKK+aomea6luaZgiA8IGh5b3VqdW5qaVwgOwor5LqM6YGTIDwgZnV0YW1pY2hpXCA7Civpq5jpvaLogIUgPCBrb3VyZWlzaGFcIDsKK+S4gOS4geWJjSA8IGl0Y2hvdW1hZVwgOwor6Ii55Li7IDwgZnVuYW51c2hpXCA7Civpo5/pgJogPCBzaG9rdXRzdXVcIDsKK+aoquaBi+aFlSA8IHlva29yZW5ib1wgOwor6LKh55Sj56iOIDwgemFpc2FuemVpXCA7Civoh6rlt7Hkv53lrZggPCBqaWtvaG96b25cIDsKK+S6jOmHjei6qyA8IG5panV1c2hpblwgOwor5a6i56iuIDwga3lha3VkYW5lXCA7Civos4romZAgPCB6b2t1Z3lha3VcIDsKK+eUn+eQhuWtpiA8IHNlaXJpZ2FrdVwgOwor54ax5Zmo5YW3IDwgbmV0c3VraWd1XCA7Civlr5LlhrfntJcgPCBrYW5yZWlzaGFcIDsKK+awtOmBk+agkyA8IHN1aWRvdXNlblwgOwor5o6i57Si5pyoIDwgdGFuc2FrdWdpXCA7CivnoJTnqbbnp5EgPCBrZW5reXV1a2FcIDsKK+S5s+mJoiA8IG55dXViYWNoaVwgOwor5pyI6aGNIDwgZ2V0c3VnYWt1XCA7Civlrp/mlr3kvosgPCBqaXNzaGlyZWlcIDsKK+mVt+mfs+majiA8IGNob3VvbmthaVwgOwor5LiN6KmV5YikIDwgZnVoeW91YmFuXCA7CivmnIjpoIMgPCB0c3VraWdvcm9cIDsKK+mBuOaJi+WboyA8IHNlbnNodWRhblwgOwor5L2c55S3IDwgc2FrdW90b2tvXCA7CivlpJrkuovlpJrnq68gPCB0YWppdGF0YW5cIDsKK+WKn+WIqeeahCA8IGtvdXJpdGVraVwgOwor5aSp55CD5YSAIDwgdGVua3l1dWdpXCA7CivnlLflvbkgPCBvdG9rb3lha3VcIDsKK+ecn+ePoOWxpCA8IHNoaW5qdXNvdVwgOwor5bmz5Z2H54K5IDwgaGVpa2ludGVuXCA7CivkuIrptrIgPCBqb3ViaXRha2lcIDsKK+iFleaelSA8IHVkZW1ha3VyYVwgOwor6YCj5ZCI5LyaIDwgcmVuZ291a2FpXCA7Civlt6Xmpa3ljJYgPCBrb3VneW91a2FcIDsKK+i1pOmBk+WEgCA8IHNla2lkb3VnaVwgOwor6LWk54axIDwgc2VraW5ldHN1XCA7CivmloflrabluqcgPCBidW5nYWt1emFcIDsKK+abluaYp+aooeeziiA8IGFpbWFpbW9rb1wgOwor6IiM5YWIIDwgc2hpdGFzYWtpXCA7CivlirTlg43lhZogPCByb3Vkb3V0b3VcIDsKK+iFueaMgSA8IGhhcmFtb2NoaVwgOwor57WM5riI5oimIDwga2VpemFpc2VuXCA7Civnj43oqqwgPCBjaGluc2V0c3VcIDsKK+exs+epuui7jSA8IGJlaWt1dWd1blwgOwor5pW35bGF572uIDwgc2hpa2lpY2hpXCA7Civku5jokL0gPCB0c3VrZW9jaGlcIDsKK+mFjeW9k+mHkSA8IGhhaXRvdWtpblwgOwor6IWw5o6bIDwga29zaGlrYWtlXCA7CivkuYXpl4ogPCBreXV1a2F0c3VcIDsKK+mjm+iaiueXhyA8IGhpYnVuc2hvdVwgOwor5a+G54yfIDwgbWl0c3VyeW91XCA7CivotaTnl6Loj4wgPCBzZWtpcmlraW5cIDsKK+S6lOWNgeiCqSA8IGdvanV1a2F0YVwgOwor6auY562J5a6YIDwga291dG91a2FuXCA7CivlnLDmlrnniYggPCBjaGlob3ViYW5cIDsKK+eUs+W5tCA8IHNhcnVkb3NoaVwgOwor5p2Q6LOqIDwgemFpc2hpdHN1XCA7CivniYfohLPmsrkgPCBoZW4nJ25vdXl1XCA7Civmnb7onYkgPCBtYXRzdXplbWlcIDsKK+S6i+WLmeasoeWumCA8IGppbXVqaWthblwgOwor5aWJ6KGM5omAIDwgYnVneW91c2hvXCA7Civogq/lrprmlocgPCBrb3V0ZWlidW5cIDsKK+S6rOihqCA8IGt5b3VvbW90ZVwgOwor6Iqz6aaZ5YmkIDwgaG91a291emFpXCA7Civngavngb3mtYEgPCBrYXNhaXJ5dXVcIDsKK+WNsOWIt+aJgCA8IGluc2F0c3Vqb1wgOwor5qKF5pqmIDwgdW1lZ295b21pXCA7CivlpKfogZbloIIgPCBkYWlzZWlkb3VcIDsKK+e1jOa4iOaApyA8IGtlaXphaXNlaVwgOwor6JuH57SL55+zIDwgamFtb25zZWtpXCA7CivmtYHooYzmrYwgPCByeXV1a291a2FcIDsKK+S9nOeJqSA8IHNha3Vtb3RzdVwgOwor6LOe572wIDwgc2hvdWJhdHN1XCA7CivkuInop5LmtLIgPCBzYW5rYWt1c3VcIDsKK+WupOeUuiA8IG11cm9tYWNoaVwgOwor5LiJ5paH5YikIDwgc2FubW9uYmFuXCA7CivkuInop5Lms6IgPCBzYW5rYWt1aGFcIDsKK+Wun+mam+aApyA8IGppc3NhaXNlaVwgOwor56u555+i5p2lIDwgdGFrZXlhcmFpXCA7CivlubPooYznt5ogPCBoZWlrb3VzZW5cIDsKK+iRseWdiuS4uyA8IG5lZ2lib3V6dVwgOwor5a2r5byf5a2QIDwgbWFnb2Rlc2hpXCA7CivlrrnnqY3mr5QgPCB5b3VzZWtpaGlcIDsKK+S4u+ecvOeCuSA8IHNodWdhbnRlblwgOwor6YGg6ZqU5ZywIDwgZW5rYWt1Y2hpXCA7CivkuInop5Lmr5QgPCBzYW5rYWt1aGlcIDsKK+Wwj+absiA8IHNob3VreW9rdVwgOwor6ZW35pmC6ZaTIDwgY2hvdWppa2FuXCA7CivljYrnq6/ogIUgPCBoYW5wYW1vbm9cIDsKK+eLrOemgeazlSA8IGRva2tpbmhvdVwgOwor5bqD5ZGK6LK7IDwga291a29rdWhpXCA7CivmpJzlh7ogPCBrZW5zaHV0c3VcIDsKK+acgOWEqumBhyA8IHNhaXl1dWd1dVwgOwor5Y+w6aKo55y8IDwgdGFpZnV1Z2FuXCA7CivmnKrmlZnogrIgPCBtaWt5b3Vpa3VcIDsKK+S/iuaKnCA8IHNodW5iYXRzdVwgOwor6KOB5pat5birIDwgc2FpZGFuc2hpXCA7CivogonnrYYgPCBuaWt1aGl0c3VcIDsKK+WFqOWNmOWwhCA8IHplbnRhbnNoYVwgOwor6IWw5byxIDwga29zaGl5b3dhXCA7CivlirnmnpznmoQgPCBrb3VrYXRla2lcIDsKK+epuuaJi+W9oiA8IGt1dXRlZ2F0YVwgOwor5Y2w5Yi75birIDwgaW5rb2t1c2hpXCA7Civog4bnjokgPCBraW1vdHRhbWFcIDsKK+mdkuW5tOi8qSA8IHNlaW5lbmhhaVwgOwor5Ymy54O55bqXIDwga2FwcG91dGVuXCA7Civmnb7ojLggPCBtYXRzdXRha2VcIDsKK+iyv+aYk+WTgSA8IGJvdWVraWhpblwgOwor5YmK5bKp5qmfIDwgc2FrdWdhbmtpXCA7CivmoZzmoYMgPCBzYWt1cmFuYm9cIDsKK+Wvgua7hSA8IGpha3VtZXRzdVwgOwor5pys6LOqIDwgaG9uc2hpdHN1XCA7CivlrozkuoblvowgPCBrYW5yeW91Z29cIDsKK+Wkp+S4iuautSA8IGRhaWpvdWRhblwgOwor5ZyS6Iq45a2mIDwgZW5nZWlnYWt1XCA7CivmjIfnm7jmkrIgPCB5dWJpenVtb3VcIDsKK+awl+Wuh+W6g+WkpyA8IGtpdWtvdWRhaVwgOwor6IKp55Sy5bivIDwga2Vua291dGFpXCA7CivmraPlvZPmgKcgPCBzZWl0b3VzZWlcIDsKK+eUo+WupCA8IHNhbnNoaXRzdVwgOwor56CC57OW5rC0IDwgc2F0b3VtaXp1XCA7CivmlrnpjJDlvaIgPCBob3VzdWlrZWlcIDsKK+ebuOW9k+aVsCA8IHNvdXRvdXN1dVwgOwor6IWw5biDIDwga29zaGludW5vXCA7CivohbDlt7sgPCBrb3NoaW1ha2lcIDsKK+S9g+eFriA8IHRzdWt1ZGFuaVwgOwor6Ya46YCg6YWSIDwgam91em91c2h1XCA7Civlt6bkuK3plpMgPCBzYWNodXVrYW5cIDsKK+S8neS7pOiAhSA8IGRlbnJlaXNoYVwgOwor5pyo57a/6YedIDwgbW9tZW5iYXJpXCA7CivmoYHmqYsgPCBrZXRhYmFzaGlcIDsKK+acqOeJiOeUuyA8IG1va3VoYW5nYVwgOwor5qSc5p+75b25IDwga2Vuc2F5YWt1XCA7Civlv5jlubTkvJogPCBib3VuZW5rYWlcIDsKK+Wuh+WumeWtpiA8IHVjaHV1Z2FrdVwgOwor5py06KilIDwgYm9rdXRvdHN1XCA7Civpo5/omasgPCBzaG9rdWNodXVcIDsKK+ecn+eQhuWApCA8IHNoaW5yaWNoaVwgOwor6YWN5rC0566hIDwgaGFpc3Vpa2FuXCA7CivlpKrpmb3poqggPCB0YWl5b3VmdXVcIDsKK+advuiEgiA8IG1hdHN1eWFuaVwgOwor5LiD6ZujIDwgc2hpY2hpbmFuXCA7Civkvb/nlKjms5UgPCBzaGl5b3Vob3VcIDsKK+WNsOWIt+WxiyA8IGluc2F0c3V5YVwgOwor6Z+z5aOw5a2mIDwgb25zZWlnYWt1XCA7CivkvIrpgZTlpbMgPCBkYXRlb24nJ25hXCA7CivnlLflnYIgPCBvdG9rb3pha2FcIDsKK+Wuv+aziiA8IHNodWt1aGFrdVwgOwor5Lyv54i1IDwgaGFrdXNoYWt1XCA7CivmopPlvJMgPCBhenVzYXl1bWlcIDsKK+WJr+ipnuWPpSA8IGZ1a3VzaGlrdVwgOwor5a6f5pWw5L2TIDwgamlzc3V1dGFpXCA7CivlpJrmlbDmhI/oposgPCB0YXN1dWlrZW5cIDsKK+mkheiCjCA8IG1vY2hpaGFkYVwgOwor6KOP6ZW35bGLIDwgdXJhbmFnYXlhXCA7CivmnbHlt6XlpKcgPCB0b3Vrb3VkYWlcIDsKK+WxheWupCA8IGt5b3NoaXRzdVwgOwor6aGN6ZqbIDwgaGl0YWlnaXdhXCA7CivnlZnliKUgPCByeXV1YmV0c3VcIDsKK+atr+enkeWMu+W4qyA8IHNoaWthaXNoaVwgOwor6Iqx5pmC6KiIIDwgaGFuYWRva2VpXCA7Civoo73pgKDlk4EgPCBzZWl6b3VoaW5cIDsKK+ioiOeul+abuCA8IGtlaXNhbnNob1wgOwor5Yi25YuV5omLIDwgc2VpZG91c2h1XCA7CivkuI3opo/lvosgPCBmdWtpcml0c3VcIDsKK+WPo+iFlOeZjCA8IGtvdWtvdWdhblwgOwor5Zue562U6ICFIDwga2FpdG91c2hhXCA7CivljZjlvpPpmaMgPCB0YW5qdXVqaW5cIDsKK+WPjeiLsembhCA8IGhhbicnZWl5dXVcIDsKK+S4u+aoqeiAhSA8IHNodWtlbnNoYVwgOwor5aSn5pys5bGxIDwgZGFpaG9uemFuXCA7CivkuK3lkozliaQgPCBjaHV1d2F6YWlcIDsKK+aFiOWWhOeusSA8IGppemVuYmFrb1wgOwor5pyA5bem57+8IDwgc2Fpc2F5b2t1XCA7CivkuInop5Lml5cgPCBzYW5rYWt1a2lcIDsKK+e+juWMlumBi+WLlSA8IGJpa2F1bmRvdVwgOwor5Yqg5YWl6ICFIDwga2FueXV1c2hhXCA7Civoo77mqKHmp5ggPCBzdXNvbW95b3VcIDsKK+S4gOmau+ecvCA8IGlzc2VraWdhblwgOwor5L2/55So5qipIDwgc2hpeW91a2VuXCA7Civov5HkvZPoqakgPCBraW50YWlzaGlcIDsKK+WkqeeLvOaYnyA8IHRlbnJvdXNlaVwgOwor6LSI54mpIDwgb2t1cmltb25vXCA7Civlho3niq/ogIUgPCBzYWloYW5zaGFcIDsKK+WTqOaIkuapnyA8IHNob3VrYWlraVwgOwor6YCa6YGO6aeFIDwgdHN1dWthZWtpXCA7CivlpKfkurrlhbEgPCBvdG9uYWRvbW9cIDsKK+mnkOaXpSA8IGNodXVuaWNoaVwgOwor6Ium5b+D6KuHIDwga3VzaGluZGFuXCA7Civmk43nuKblo6sgPCBzb3VqdXVzaGlcIDsKK+ecn+ePoOWFiSA8IHNoaW5qdWtvdVwgOwor5p+/5riLIDwga2FraXNoaWJ1XCA7CivpgJ/luqboqIggPCBzb2t1ZG9rZWlcIDsKK+eEoeiyrOS7uyA8IG11c2VraW5pblwgOwor5pKt5L2G57eaIDwgYmFudGFuc2VuXCA7CivogZboqpXnpa0gPCBzZWl0YW5zYWlcIDsKK+eEoeS4gOaWhyA8IG11aWNoaW1vblwgOwor5bi45YiG5pWwIDwgam91YnVuc3V1XCA7CivkuIvph5EgPCBzaGl0YWdhbmVcIDsKK+S4rei2iiA8IGNodXVnb3NoaVwgOwor5YaN6ICD5oWuIDwgc2Fpa291cnlvXCA7CivlhIDlhbjplbcgPCBnaXRlbmNob3VcIDsKK+W3peWtpuenkSA8IGtvdWdha3VrYVwgOwor6Ieq5bex5Li7576pIDwgamlrb3NodWdpXCA7CivlqpLos6ogPCBiYWlzaGl0c3VcIDsKK+S6pOatk+S8miA8IGtvdWthbmthaVwgOwor5aSp6LGh5YSAIDwgdGVuc2hvdWdpXCA7Civkub7ojYkgPCBob3NoaWd1c2FcIDsKK+eQtOeIqiA8IGtvdG9kenVtZVwgOwor6IWw5Z6jIDwga29zaGlnYWtpXCA7CivlvJXnlKjmlocgPCBpbicneW91YnVuXCA7Civkv4LlrpggPCBrYWthcmlrYW5cIDsKK+iNkuazleW4qyA8IGFyYWhvdXNoaVwgOwor6ISI5pCPIDwgbXlha3VoYWt1XCA7CivnjonomasgPCB0YW1hbXVzaGlcIDsKK+eUn+WUviA8IG5hbWF0c3ViYVwgOwor5a6f6KGM5aeU5ZOhIDwgamlra291aWluXCA7CivnmYLppIrosrsgPCByeW91eW91aGlcIDsKK+apn+mWoumVtyA8IGtpa2FuY2hvdVwgOwor5ZCR5Zyw5oCnIDwga291Y2hpc2VpXCA7Civlh7Hml4vploAgPCBnYWlzZW5tb25cIDsKK+mjn+iCiSA8IHNob2t1bmlrdVwgOwor6Kit5YKZ6LK7IDwgc2V0c3ViaWhpXCA7Civmnb7nrKAgPCBtYXRzdWthc2FcIDsKK+ijgee4q+W4qyA8IHNhaWhvdXNoaVwgOwor6LKh55Sj5qipIDwgemFpc2Fua2VuXCA7CivmipXnn7PmqZ8gPCB0b3VzZWtpa2lcIDsKK+aEm+agoeW/gyA8IGFpa291c2hpblwgOwor5LyP6a2U5q6/IDwgZnVrdW1hZGVuXCA7CivojLblmajntYQgPCBjaGFraWd1bWlcIDsKK+S4ieWhgeaJiyA8IHNhbnJ1aXNodVwgOwor5LiD6YGTIDwgc2hpY2hpZG91XCA7CivomZrnhKHnmoQgPCBreW9tdXRla2lcIDsKK+eUs+WFpSA8IG1vdXNoaWlyZVwgOwor5Lyd5bCO5oCnIDwgZGVuZG91c2VpXCA7CivlrqLmp5ggPCBreWFrdXNhbWFcIDsKK+aWh+Wtl+WIlyA8IG1vamlyZXRzdVwgOwor5Y+N6Iq76aGeIDwgaGFuc3V1cnVpXCA7CivlrprlnovoqakgPCB0ZWlrZWlzaGlcIDsKK+awtOiPk+WtkCA8IG1penVnYXNoaVwgOwor5YCf5Li7IDwga2FyaW51c2hpXCA7Civpu43lm6PlrZAgPCBraWJpZGFuZ29cIDsKK+i7n+WPo+iTiyA8IG5hbmtvdWdhaVwgOwor5Lm+6IKJIDwgaG9zaGluaWt1XCA7Civpl4fnm7jloLQgPCB5YW1pc291YmFcIDsKK+Wuv+aWmSA8IHNodWt1cnlvdVwgOwor5a6f5qWtIDwgaml0c3VneW91XCA7CivlkIjmsJfpgZPlrrYgPCBhaWtpZG91a2FcIDsKK+Wuv+aVtSA8IHNodWt1dGVraVwgOwor5a6H5a6Z5Y2aIDwgdWNodXVoYWt1XCA7CivkuIPovKogPCBzaGljaGlyaW5cIDsKK+eUo+WHuiA8IHNhbnNodXRzdVwgOwor6Iql5a2Q6I+cIDwga2FyYXNoaW5hXCA7Civnj43pgZPlhbcgPCBjaGluZG91Z3VcIDsKK+S9leaXpSA8IG5hbicnbmljaGlcIDsKK+izqueCuSA8IHNoaXRzdXRlblwgOwor6buE6KGo57SZIDwga2lieW91c2hpXCA7CivohLPlrqQgPCBub3VzaGl0c3VcIDsKK+W+k+WnieWmuSA8IGp1dXNoaW1haVwgOwor5bGx5LyPIDwgeWFtYWJ1c2hpXCA7CivlrZDnpo/ogIUgPCBrb2J1a3VzaGFcIDsKK+aAneaDs+eVjCA8IHNoaXNvdWthaVwgOwor5rCR6KGG5YyWIDwgbWluc2h1dWthXCA7CivpiI3pu4ToibIgPCBuaWJ1a2lpcm9cIDsKK+Wun+agqiA8IGppdHN1a2FidVwgOwor5LiJ6KeS5b2iIDwgc2Fua2Fra2VpXCA7CivkvrXlpaogPCBzaGluZGF0c3VcIDsKK+Wkp+acrOWWtiA8IGRhaWhvbicnZWlcIDsKK+eMm+eJueiokyA8IG1vdXRva2t1blwgOwor55S65LitIDwgbWFjaGluYWthXCA7CivnlLrkuKYgPCBtYWNoaW5hbWlcIDsKK+S6iOWRiue3qCA8IHlva29rdWhlblwgOwor5Ya35rm/5biDIDwgcmVpc2hpcHB1XCA7CivmqJnmupbljJYgPCBoeW91anVua2FcIDsKK+S4iuizqiA8IGpvdXNoaXRzdVwgOwor5LiL6LK8IDwgc2hpdGFiYXJpXCA7Civpo5/ntIUgPCBzaG9rdWJlbmlcIDsKK+WNl+ibruS6uiA8IG5hbmJhbmppblwgOwor5pu06KGjIDwga29yb21vZ2FlXCA7Civpo5/ns6cgPCBzaG9rdXJ5b3VcIDsKK+eUsOWckuipqSA8IGRlbicnZW5zaGlcIDsKK+S4reihqCA8IG5ha2FvbW90ZVwgOwor5LiJ6KeS5bqnIDwgc2Fua2FrdXphXCA7CivlsI/lp5EgPCBrb2p1dXRvbWVcIDsKK+WGjeippumokyA8IHNhaXNoaWtlblwgOwor5qCD5pyoIDwgdG9jaGlub2tpXCA7Civlr5LluK/mnpcgPCBrYW50YWlyaW5cIDsKK+iEguaApyA8IGFidXJhc2hvdVwgOwor5YCJ5Li7IDwga3VyYW51c2hpXCA7Civlgr7mlpzpnaIgPCBrZWlzaGFtZW5cIDsKK+atu+S6oeiAhSA8IHNoaWJvdXNoYVwgOwor5LiD6LOiIDwgc2hpY2hpa2VuXCA7Civpgbrml4/mibbliqkgPCBpem9rdWZ1am9cIDsKK+Wokee+heWPjOaouSA8IHNhcmFzb3VqdVwgOwor5LiJ6KeS5biGIDwgc2Fua2FrdWhvXCA7CivlsLvlj5YgPCBzaGlyaXRvcmlcIDsKK+WpmuWnu+azlSA8IGtvbicnaW5ob3VcIDsKK+S6jOmHjeeqkyA8IG5panV1bWFkb1wgOwor6Ieq54S26aGeIDwgc2hpemVucnVpXCA7CivlsILlo7Llk4EgPCBzZW5iYWloaW5cIDsKK+agvOW8jyA8IGtha3VzaGlraVwgOwor5LiN57Wx5LiAIDwgZnV0b3VpdHN1XCA7CivmmLzps7YgPCBoaXJ1dG9uYmlcIDsKK+WknOS8muacjSA8IHlha2FpZnVrdVwgOwor5Lqu55u0IDwgcnlvdWNob2t1XCA7CivmmqLpgZQgPCBjaG91dGF0c3VcIDsKK+WFmua0vuW/gyA8IHRvdWhhc2hpblwgOwor5oCd5oOz54qvIDwgc2hpc291aGFuXCA7CivohbDlhYMgPCBrb3NoaW1vdG9cIDsKK+iEh+W3riA8IHdha2l6YXNoaVwgOwor5byB5b2T5LujIDwgYmVudG91ZGFpXCA7CivmnYnnrrggPCBzdWdpYmFzaGlcIDsKK+iCneiHk+eZjCA8IGthbnpvdWdhblwgOwor5LuY54S8IDwgdHN1a2V5YWtpXCA7CivntYzmuIjkurogPCBrZWl6YWlqaW5cIDsKK+S7j+aVmeW+kiA8IGJ1a2t5b3V0b1wgOwor57Gz5rW36LuNIDwgYmVpa2FpZ3VuXCA7CivlkKvmsrnlsaQgPCBnYW4nJ3l1c291XCA7Civmg4XloLHoqowgPCBqb3Vob3VzaGlcIDsKK+WtpuauliA8IGdha3VzaG9rdVwgOwor5Yex5peL6LuNIDwgZ2Fpc2VuZ3VuXCA7Civono3op6PngrkgPCB5dXVrYWl0ZW5cIDsKK+a3i+W3tOeQgyA8IHJpbnBha3l1dVwgOwor5auM54WZ5qipIDwga2VuJydlbmtlblwgOwor5aSr5amm5LuyIDwgZnV1ZnVuYWthXCA7CivmhJ/mn5Pljp8gPCBrYW5zZW5nZW5cIDsKK+i/juizk+mkqCA8IGdlaWhpbmthblwgOwor5qCq5byPIDwga2FidXNoaWtpXCA7CivoqZXorbDkvJogPCBoeW91Z2lrYWlcIDsKK+WlveeUt+WtkCA8IGtvdWRhbnNoaVwgOwor5pep5pil6LOmIDwgc291c2h1bmZ1XCA7Civmn4/mp5kgPCBieWFrdXNoaW5cIDsKK+WWiemgreeZjCA8IGtvdXRvdWdhblwgOwor54us6YWMIDwgZG9rdXNoYWt1XCA7Civlr53mpa3luKsgPCBuZXdhemFzaGlcIDsKK+S6uuagvOWMliA8IGppbmtha3VrYVwgOwor5a+F5bm0IDwgdG9yYWRvc2hpXCA7CivntrrpupfkuosgPCBraXJlaWdvdG9cIDsKK+iomOWQjeagqiA8IGtpbWVpa2FidVwgOwor5pC65biv5ZOBIDwga2VpdGFpaGluXCA7Civpp5Dlsa/miYAgPCBjaHV1dG9uam9cIDsKK+eglOeptuaJgCA8IGtlbmt5dXVqb1wgOwor5pyA5YWI56uvIDwgc2Fpc2VudGFuXCA7CivlsYXkvY/ogIUgPCBreW9qdXVzaGFcIDsKK+iqh+W8teazlSA8IGtvY2hvdWhvdVwgOwor5bCP5ZKEIDwga29iYW5hc2hpXCA7CivkuLjohbAgPCBtYXJ1Z29zaGlcIDsKK+aYvOmjryA8IGhpcnVtZXNoaVwgOwor6KaW6Kaa5YyWIDwgc2hpa2FrdWthXCA7CivkvJDmnKggPCBiYXRzdWJva3VcIDsKK+S/iuWCkSA8IHNodW5rZXRzdVwgOwor5Lit6I+v6KGXIDwgY2h1dWthZ2FpXCA7CivogbfmrbQgPCBzaG9rdXJla2lcIDsKK+mAo+WIpOeKtiA8IHJlbmJhbmpvdVwgOwor6bqd6aaZ54yrIDwgamFrb3VuZWtvXCA7CivlpInlhYnmmJ8gPCBoZW5rb3VzZWlcIDsKK+Wvqeafu+WumCA8IHNoaW5zYWthblwgOwor5aSa55So5LitIDwgdGF5b3VjaHV1XCA7Civml6nmnbHmiKYgPCBzb3V0b3VzZW5cIDsKK+m7meenmOaoqSA8IG1va3VoaWtlblwgOwor5YaS6Zm66KuHIDwgYm91a2VuZGFuXCA7CivluLjlgpnolqwgPCBqb3ViaXlha3VcIDsKK+aetuapiyA8IGtha2VoYXNoaVwgOwor5aaK5amm5pyNIDwgbmlucHVmdWt1XCA7Civmn4/mnKggPCBrYXNoaXdhZ2lcIDsKK+S9k+mHjeioiCA8IHRhaWp1dWtlaVwgOwor6K2m5a6Y6ZqKIDwga2Vpa2FudGFpXCA7Civku67mqYsgPCBrYXJpYmFzaGlcIDsKK+ism+irh+ekviA8IGtvdWRhbnNoYVwgOwor6LGG57KSIDwgbWFtZXRzdWJ1XCA7CivkvJHml6UgPCBreXV1aml0c3VcIDsKK+S4iuiWrCA8IHV3YWd1c3VyaVwgOwor6L+R5Luj6KmpIDwga2luZGFpc2hpXCA7CivnhZnojYnpiq0gPCB0YWJha29zZW5cIDsKK+mWk+aKleipniA8IGthbnRvdXNoaVwgOwor562U5byB6ICFIDwgdG91YmVuc2hhXCA7CivlubPooYzmo5IgPCBoZWlrb3Vib3VcIDsKK+ifu+WcsOeNhCA8IGFyaWppZ29rdVwgOwor5a+G5a6kIDwgbWlzc2hpdHN1XCA7CivmiYHmoYPohbogPCBoZW50b3VzZW5cIDsKK+WFrOWIpOW7tyA8IGtvdWhhbnRlaVwgOwor546J56ugIDwgZ3lva3VzaG91XCA7CivmlbDlhITlubQgPCBzdXVva3VuZW5cIDsKK+ebhueBr+exoCA8IGJvbmRvdXJvdVwgOwor5a6/5bCGIDwgc2h1a3VzaG91XCA7CivntYLmiKblvowgPCBzaHV1c2VuZ29cIDsKK+WwhuWNkiA8IHNob3Vzb3RzdVwgOwor5Lih6IiMIDwgcnlvdXpldHN1XCA7Civnt6jpm4bpg6ggPCBoZW5zaHV1YnVcIDsKK+WRqOWbsumVtyA8IHNodXVpY2hvdVwgOwor5YWs6YG45Yi2IDwga291c2Vuc2VpXCA7Civogbfmpa0gPCBzaG9rdWd5b3VcIDsKK+S/rueQhuW3pSA8IHNodXVyaWtvdVwgOwor5pyA6YGp5YyWIDwgc2FpdGVraWthXCA7CivljJblrabogIUgPCBrYWdha3VzaGFcIDsKK+WwjuWHuiA8IGRvdXNodXRzdVwgOwor6LSI6LOE572qIDwgem91d2FpemFpXCA7Civlrr/lraYgPCBzaHVrdWdha3VcIDsKK+S4jeaJv+iqjSA8IGZ1c2hvdW5pblwgOwor5LqU6YeN5ZSxIDwgZ29qdXVzaG91XCA7CivlsI/lhoogPCBzaG91c2F0c3VcIDsKK+iHquW3semhleekuiA8IGppa29rZW5qaVwgOwor5bm06b2i6aCGIDwgbmVucmVpanVuXCA7Civos63ljZrloLQgPCB0b2Jha3Vqb3VcIDsKK+S4oeiEmiA8IHJ5b3VreWFrdVwgOwor55yL5a6I6ICFIDwga2Fuc2h1c2hhXCA7CivohLHlh7ogPCBkYXNzaHV0c3VcIDsKK+WuouW4rSA8IGt5YWt1c2VraVwgOwor5byx6Zu75ZmoIDwgamFrdWRlbmtpXCA7CivkuIvojYkgPCBzaGl0YWt1c2FcIDsKK+aXpeacrOeahCA8IG5paG9udGVraVwgOwor5bCE5Ye6IDwgc2hhc2h1dHN1XCA7Civplovlor7lnLAgPCBrYWlrb25jaGlcIDsKK+aapuihkyA8IHJla2lqdXRzdVwgOwor56aB54yf5pyfIDwga2lucnlvdWtpXCA7CivotaTlnJ8gPCBha2F0c3VjaGlcIDsKK+WJjemhjemDqCA8IHplbmdha3VidVwgOwor6KmV6KuW5a62IDwgaHlvdXJvbmthXCA7Civoh6rlt7HosqDmi4UgPCBqaWtvZnV0YW5cIDsKK+S4gOaWieWuiSA8IGlzc2VpeWFzdVwgOwor6Zyy5aSp6aKo5ZGCIDwgcm90ZW5idXJvXCA7CivkuIDopqrnrYkgPCBpc3NoaW50b3VcIDsKK+WGjeaUvumAgSA8IHNhaWhvdXNvdVwgOwor5YyW5a2m57eaIDwga2FnYWt1c2VuXCA7CivmiKbmrbvogIUgPCBzZW5zaGlzaGFcIDsKK+S4gOaWh+WtlyA8IGljaGltb25qaVwgOwor5oSP5rCX5oqV5ZCIIDwgaWtpdG91Z291XCA7Civmloflo6vpgKMgPCBidW5zaGlyZW5cIDsKK+acqOe2v+ezuCA8IG1vbWVuJydpdG9cIDsKK+eEpumbu+awlyA8IHNob3VkZW5raVwgOwor5o6I5LiO5byPIDwganV5b3NoaWtpXCA7Civnm67liIbph48gPCBtZWJ1bnJ5b3VcIDsKK+WkqeS4i+S4gCA8IHRlbmthaWNoaVwgOwor5Lit5Y+k5ZOBIDwgY2h1dWtvaGluXCA7CivkuK3ntbYgPCBjaHV1emV0c3VcIDsKK+W4guWgtOaApyA8IHNoaWpvdXNlaVwgOwor5Lit5oCn5aGpIDwgY2h1dXNlaWVuXCA7CivkuIvohbkgPCBzaGl0YWJhcmFcIDsKK+iEseS/lyA8IGRhdHN1em9rdVwgOwor5paH6Kqe6Kq/IDwgYnVuZ29jaG91XCA7CivmlaPlhbXnt5ogPCBzYW5wZWlzZW5cIDsKK+a1geihjOWFkCA8IHJ5dXVrb3VqaVwgOwor6IW55pmC6KiIIDwgaGFyYWRva2VpXCA7CivluIPooovohbkgPCBob3RlaWJhcmFcIDsKK+eEoeaVmeiCsiA8IG11a3lvdWlrdVwgOwor5p+P5omLIDwga2FzaGl3YWRlXCA7CivmlZnljLrmsJEgPCBreW91a3VtaW5cIDsKK+WcsOmch+W4ryA8IGppc2hpbnRhaVwgOwor6ZW35pyf5oimIDwgY2hvdWtpc2VuXCA7CivpgJrnn6XnsL8gPCB0c3V1Y2hpYm9cIDsKK+S5vueJqSA8IGhvc2hpbW9ub1wgOwor5a6f5a2mIDwgaml0c3VnYWt1XCA7CivliqDlt6Xmpa0gPCBrYWtvdWd5b3VcIDsKK+S4jeihjOeKtiA8IGZ1Z3lvdWpvdVwgOwor5qGf5L+1IDwgc2FuZGF3YXJhXCA7Civog6HpurvmsrkgPCBnb21hYWJ1cmFcIDsKK+aXpeacrOeMvyA8IG5paG9uemFydVwgOwor54yf6ImyIDwgcnlvdXNob2t1XCA7Civml6fkuJbnlYwgPCBreXV1c2VrYWlcIDsKK+S4gOiEiCA8IGljaGlteWFrdVwgOwor5rC05bmz5YuVIDwgc3VpaGVpZG91XCA7CivotaTlj6MgPCBzZWtpZ3VjaGlcIDsKK+efreWkp+eUnyA8IHRhbmRhaXNlaVwgOwor6IKW5YOP55S7IDwgc2hvdXpvdWdhXCA7CivkuIDop5LnjaMgPCBpa2tha3VqdXVcIDsKK+WPr+WkiemVtyA8IGthaGVuY2hvdVwgOwor5LiA6KaB57SgIDwgaWNoaXlvdXNvXCA7CivlhZDnq6XliocgPCBqaWRvdWdla2lcIDsKK+S4reeriyA8IGNodXVyaXRzdVwgOwor5Z+L6JGs5ZywIDwgbWFpc291Y2hpXCA7CivkuIroo73mnKwgPCBqb3VzZWlib25cIDsKK+S4oeaAp+iKsSA8IHJ5b3VzZWlrYVwgOwor5a6f6KGM6ICFIDwgamlra291c2hhXCA7CivogbfmjowgPCBzaG9rdXNob3VcIDsKK+WCvuaWnOioiCA8IGtlaXNoYWtlaVwgOwor5a6k5aSWIDwgc2hpdHN1Z2FpXCA7Civniq/nvarogIUgPCBoYW56YWlzaGFcIDsKK+WvkuWNtSA8IGthbnRhbWFnb1wgOwor57W25Lqk54q2IDwgemVra291am91XCA7CivlpJbmnaXogIUgPCBnYWlyYWlzaGFcIDsKK+S8neWwjuS9kyA8IGRlbmRvdXRhaVwgOwor6LOq5oSfIDwgc2hpdHN1a2FuXCA7CivmoLzliKUgPCBrYWt1YmV0c3VcIDsKK+aguOWKmyA8IGtha3VyeW9rdVwgOwor5pac5ruR6ZmNIDwgc2hha2Fra291XCA7CivluLjlubPlgIkgPCBqb3VoZWlzb3VcIDsKK+S4u+WCrOiAhSA8IHNodXNhaXNoYVwgOwor5p+U6Luf5oCnIDwganV1bmFuc2VpXCA7CivliIbmi4Xph5EgPCBidW50YW5raW5cIDsKK+WGt+iUtei7iiA8IHJlaXpvdXNoYVwgOwor5pyA6auY6KOBIDwgc2Fpa291c2FpXCA7CivkuKHnq68gPCByeW91aGFzaGlcIDsKK+WKoOWFpeaoqSA8IGthbnl1dWtlblwgOwor5Lih56uLIDwgcnlvdXJpdHN1XCA7CivliY3kvY/miYAgPCB6ZW5qdXVzaG9cIDsKK+Wxleacm+WhlCA8IHRlbmJvdXRvdVwgOwor6YGO5pWP55eHIDwga2FiaW5zaG91XCA7CivkurrpoK3nqI4gPCBuaW50b3V6ZWlcIDsKK+iInuWPsOWKhyA8IGJ1dGFpZ2VraVwgOwor5LiL57SQIDwgc2hpdGFoaW1vXCA7CivlubPlnYflgKQgPCBoZWlraW5jaGlcIDsKK+S7iuaXpSA8IGtvbicnbmljaGlcIDsKK+agvOWtkOmdoiA8IGtvdXNoaW1lblwgOwor5pep6aOvIDwgaGF5YW1lc2hpXCA7CivmsLTojLblsYsgPCBtaXp1Y2hheWFcIDsKK+aDheWgsee2siA8IGpvdWhvdW1vdVwgOwor5be05pem5p2PIDwgaGF0YW5reW91XCA7CivosrjmlrkgPCBrYXNoaWthdGFcIDsKK+Wvqee+juecvCA8IHNoaW5iaWdhblwgOwor6Ieq54S26KazIDwgc2hpemVua2FuXCA7CivpgYvlkKblpKnos6YgPCB1bnB1dGVucHVcIDsKK+WvjOaghOmkiuWMliA8IGZ1ZWl5b3VrYVwgOwor6ISC6IKq6YW4IDwgc2hpYm91c2FuXCA7CivploDlpJbmvKIgPCBtb25nYWlrYW5cIDsKK+S5vua5vyA8IGthbnNoaXRzdVwgOwor5oqX6I+M5oCnIDwga291a2luc2VpXCA7CivpoY3nuIEgPCBnYWt1YnVjaGlcIDsKK+S8neafk+aApyA8IGRlbnNlbnNlaVwgOwor5Y2w5bqm5pSv6YKjIDwgaW5kb3NoaW5hXCA7CivmnKrntYTnuZQgPCBtaXNvc2hpa2lcIDsKK+asp+WMluS4u+e+qSA8IG91a2FzaHVnaVwgOwor5rC05qeY5rayIDwgc3VpeW91ZWtpXCA7CivmlZHliqnpmoogPCBreXV1am90YWlcIDsKK+eEoeS6jOeEoeS4iSA8IG11bmltdXphblwgOwor5L+d5a2Y6YePIDwgaG96b25yeW91XCA7CivkuInml6XkuInlpJwgPCBtaWtrYW1peW9cIDsKK+eJoeS4uea1t+iAgSA8IGJvdGFuJydlYmlcIDsKK+aguOWFteWZqCA8IGtha3VoZWlraVwgOwor5LiN5rqA6LazIDwgZnVtYW56b2t1XCA7Civplbfoq4forbAgPCBuYWdhZGFuZ2lcIDsKK+WGkumZuuiAhSA8IGJvdWtlbnNoYVwgOwor5LiA57KSIDwgaGl0b3RzdWJ1XCA7Civlq6HmtYEgPCBjaGFrdXJ5dXVcIDsKK+absuebriA8IGt5b2t1bW9rdVwgOwor6aOf5qyyIDwgc2hva3V5b2t1XCA7Civnvr3okrLlm6MgPCBoYW5lYnV0b25cIDsKK+aftOWeoyA8IHNoaWJhZ2FraVwgOwor5Zyw5pa55YK1IDwgY2hpaG91c2FpXCA7Civkuq7mnIggPCByeW91Z2V0c3VcIDsKK+acrOWgtOeJqSA8IGhvbmJhbW9ub1wgOwor6Kqe5a2m6ICFIDwgZ29nYWt1c2hhXCA7CivkuIvnqb8gPCBzaGl0YWJha2lcIDsKK+WGjeippuihjCA8IHNhaXNoaWtvdVwgOwor5LiA56+AIDwgaGl0b2Z1c2hpXCA7CivlsYXkuIjpq5ggPCBpdGFrZWRha2FcIDsKK+WkqumZveezuyA8IHRhaXlvdWtlaVwgOwor56CU56m25ZOhIDwga2Vua3l1dWluXCA7CivlvKXnuKvnrZYgPCBiaWhvdXNha3VcIDsKK+eEoeWgsemFrCA8IG11aG91c2h1dVwgOwor6JiG5rqd5qmLIDwgcm9rb3VreW91XCA7Civntbblr77lgKQgPCB6ZXR0YWljaGlcIDsKK+WkqemgguWEgCA8IHRlbmNob3VnaVwgOwor5Lit55WlIDwgY2h1dXJ5YWt1XCA7Civmtbfos4rnjosgPCBrYWl6b2t1b3VcIDsKK+iyoeeVjOS6uiA8IHphaWthaWppblwgOwor6aKo5p2l5Z2KIDwgZnV1cmFpYm91XCA7CivnirbooosgPCBqb3VidWt1cm9cIDsKK+WvkuWGt+WcsCA8IGthbnJlaWNoaVwgOwor5YmN572u6KmeIDwgemVuY2hpc2hpXCA7Civnianph48gPCBidXRzdXJ5b3VcIDsKK+WKoOWIpOS6uiA8IGthaGFuJyduaW5cIDsKK+WLlea7kei7iiA8IGRvdWthc3NoYVwgOwor57WQ5rC35pyfIDwga2VwcHlvdWtpXCA7Civpm7vmsJfmqZ/lmaggPCBkZW5raWtpa2lcIDsKK+Wxleacm+WPsCA8IHRlbmJvdWRhaVwgOwor56S85oud5aCCIDwgcmVpaGFpZG91XCA7Civpq5jmgKfog70gPCBrb3VzZWlub3VcIDsKK+S5vua1t+iLlCA8IGhvc2hpbm9yaVwgOwor5L2/55So5L6LIDwgc2hpeW91cmVpXCA7CivmnInnlLDnhLwgPCBhcml0YXlha2lcIDsKK+mrmOWRqOazoiA8IGtvdXNodXVoYVwgOwor5bC/5qSc5p+7IDwgbnlvdWtlbnNhXCA7CivnkrDnirbnt5ogPCBrYW5qb3VzZW5cIDsKK+acq+a1gSA8IG1hdHN1cnl1dVwgOwor55m65oOz5rOVIDwgaGFzc291aG91XCA7CivmoKrkuLsgPCBrYWJ1bnVzaGlcIDsKK+S4i+efsyA8IHNoaXRhaXNoaVwgOwor5YWN56iO54K5IDwgbWVuemVpdGVuXCA7CivlgKTmrrXooaggPCBuZWRhbmh5b3VcIDsKK+mjr+aZgiA8IG1lc2hpZG9raVwgOwor55u05byf5a2QIDwgamlraWRlc2hpXCA7Civoh6rlt7Hlq4zmgqogPCBqaWtva2VuJydvXCA7CivpgKPpgqbliLYgPCByZW5wb3VzZWlcIDsKK+S9v+eUqOS6uiA8IHNoaXlvdW5pblwgOwor5qSN5pyo6YmiIDwgdWVraWJhY2hpXCA7CivnhaflsITph44gPCBzaG91c2hheWFcIDsKK+S9nOS7mCA8IHNha3VkenVrZVwgOwor5oWI5ZaE5b+DIDwgaml6ZW5zaGluXCA7CivkuIrnnrwgPCB1d2FtYWJ1dGFcIDsKK+acqOeFieeTpiA8IG1va3VyZW5nYVwgOwor5pyo57a/54mpIDwgbW9tZW5tb25vXCA7Civlha3liIblhIAgPCByb2t1YnVuZ2lcIDsKK+imluWcsOW5syA8IHNoaWNoaWhlaVwgOwor5bel5L2c5ZOhIDwga291c2FrdWluXCA7CivkvK/lj5QgPCBoYWt1c2h1a3VcIDsKK+eIqumdqSA8IHRzdW1ha2F3YVwgOwor5a6k5YaFIDwgc2hpdHN1bmFpXCA7Civlrr/kuLsgPCB5YWRvbnVzaGlcIDsKK+Wbnua8leW6lyA8IGthaXNvdXRlblwgOwor55+z54Kt57SAIDwgc2VraXRhbmtpXCA7CivmipXmqZ/nmoQgPCB0b3VraXRla2lcIDsKK+eMn+eKrOW6pyA8IHJ5b3VrZW56YVwgOwor5LqM5pyIIDwgZnV0YXRzdWtpXCA7Civml6XpjLIgPCBuaWNoaXJva3VcIDsKK+earuiyoeW4gyA8IGthd2F6YWlmdVwgOwor5LiA556lIDwgaWNoaWJldHN1XCA7CivohLPooYDmoJMgPCBub3VrZXNzZW5cIDsKK+ato+WJh+WMliA8IHNlaXNva3VrYVwgOwor5aSn5aWl5qeYIDwgb29va3VzYW1hXCA7Civku6TlrqQgPCByZWlzaGl0c3VcIDsKK+S9k+S4rSA8IGthcmFkYWp1dVwgOwor5qyg6Zml6LuKIDwga2Vra2Fuc2hhXCA7CivkuIDlpKfkuosgPCBpY2hpZGFpamlcIDsKK+mAo+WIhuaVsCA8IHJlbmJ1bnN1dVwgOwor5L+u55CG5LujIDwgc2h1dXJpZGFpXCA7Civku7Llpb0gPCBuYWtheW9zaGlcIDsKK+iVgem6u+eWuSA8IGppbm1hc2hpblwgOwor5YW355Sz5pu4IDwgZ3VzaGluc2hvXCA7Civoqq3mm7jlrrYgPCBkb2t1c2hva2FcIDsKK+e+juihk+mDqCA8IGJpanV0c3VidVwgOwor5oSf6Kyd56WtIDwga2Fuc2hhc2FpXCA7CivosrTmlrnmlrkgPCBhbmF0YWdhdGFcIDsKK+iqv+mrqiA8IGNob3VoYXRzdVwgOwor5p2x5Lqs6YO9IDwgdG91a3lvdXRvXCA7Civml6flrZfkvZMgPCBreXV1aml0YWlcIDsKK+ijveS9nOiyuyA8IHNlaXNha3VoaVwgOwor5LqM6YCx6ZaTIDwgbmlzaHV1a2FuXCA7Civpg6jokL3msJEgPCBidXJha3VtaW5cIDsKK+eJqeizqiA8IGJ1c3NoaXRzdVwgOwor5pep6YGTIDwgaGF5YW1pY2hpXCA7CivliqDnm5/lm70gPCBrYW1laWtva3VcIDsKK+S4gOWknOS4rSA8IGhpdG95YWp1dVwgOwor5qeL6YCg5L2TIDwga291em91dGFpXCA7CivkuK3ljLvlraYgPCBjaHV1aWdha3VcIDsKK+WPl+S/oeiAhSA8IGp1c2hpbnNoYVwgOwor5Lya6K2w6YyyIDwga2FpZ2lyb2t1XCA7CivnpoHnhZnou4ogPCBraW4nJ2Vuc2hhXCA7CivniYfpgZMgPCBrYXRhbWljaGlcIDsKK+mbu+WtkOmKgyA8IGRlbnNoaWp1dVwgOwor5YW35L2T562WIDwgZ3V0YWlzYWt1XCA7Civou4rmjozljLogPCBzaGFzaG91a3VcIDsKK+eJueiorSA8IHRva3VzZXRzdVwgOwor5LuW5Zu95rCRIDwgdGFrb2t1bWluXCA7CivlhJLlrabogIUgPCBqdWdha3VzaGFcIDsKK+WQjeaOouWBtSA8IG1laXRhbnRlaVwgOwor5Zu96YCj5peXIDwga29rdXJlbmtpXCA7Civpr6Png4/os4ogPCBzdXJ1bWVpa2FcIDsKK+WFqOW4guawkSA8IHplbnNoaW1pblwgOwor5aCx6YGT5a6YIDwgaG91ZG91a2FuXCA7Civku4/lraYgPCBidXRzdWdha3VcIDsKK+aXpeacrOaZtCA8IG5paG9uYmFyZVwgOwor5biD5Zuj55quIDwgZnV0b25nYXdhXCA7Civkv67nuZXosrsgPCBzaHV1emVuaGlcIDsKK+mcsumcnCA8IHRzdXl1amltb1wgOwor5bCC6ZaA5pu4IDwgc2VubW9uc2hvXCA7CivlhaznlKjou4ogPCBrb3V5b3VzaGFcIDsKK+iAkOaAp+iPjCA8IHRhaXNlaWtpblwgOwor5pyt5p2fIDwgc2F0c3V0YWJhXCA7CivlkIznqK7poZ4gPCBkb3VzaHVydWlcIDsKK+mfs+Wfn+WkliA8IG9uJydpa2lnYWlcIDsKK+Wkj+mzpSA8IG5hdHN1ZG9yaVwgOwor6LOq5ZWPIDwgc2hpdHN1bW9uXCA7CivopqrlkozmgKcgPCBzaGlud2FzZWlcIDsKK+WJjemgreiRiSA8IHplbnRvdXlvdVwgOwor54+g5pqW57C+IDwgdGFtYW5vcmVuXCA7Civni6znq4sgPCBkb2t1cml0c3VcIDsKK+S5neaYn+WutiA8IGt5dXVzZWlrYVwgOwor6YCa5rCX5a2UIDwgdHN1dWtpa291XCA7CivmnIjmrKEgPCB0c3VraW5hbWlcIDsKK+isrOiqrCA8IGJ5dXVzZXRzdVwgOwor6Zqj5Lq65oSbIDwgcmluamluJydhaVwgOwor5LiN5om/55+lIDwgZnVzaG91Y2hpXCA7CivmrbvkuqHmlbAgPCBzaGlib3VzdXVcIDsKK+WtpuWNkiA8IGdha3Vzb3RzdVwgOwor5bGF5L2P5qipIDwga3lvanV1a2VuXCA7CivpiaTmi6zlvKcgPCBrYWdpa2Fra29cIDsKK+WApuaAoOaEnyA8IGtlbnRhaWthblwgOwor5Ya36JS16Ii5IDwgcmVpem91c2VuXCA7CivlpbTovKkgPCB5YXRzdWJhcmFcIDsKK+WQiOaIkOmFkiA8IGdvdXNlaXNodVwgOwor5ZGz5ZmM5rGBIDwgbWlzb3NoaXJ1XCA7CivmjIflsI7ogIUgPCBzaGlkb3VzaGFcIDsKK+WtpuWKmyA8IGdha3VyeW9rdVwgOwor5Y2K5Y+v6YCaIDwgaGFua2F0c3V1XCA7CivnhKHorablkYogPCBtdWtlaWtva3VcIDsKK+WfuuacrOWQiOaEjyA8IGtpaG9uZ291aVwgOwor5aSn6KW/6YO3IDwgZGFpc2FpZ291XCA7CivnnaHnnKDliaQgPCBzdWltaW56YWlcIDsKK+aXi+ebpOW3pSA8IHNlbmJhbmtvdVwgOwor5biv5YiG5pWwIDwgdGFpYnVuc3V1XCA7CivlsI/lhZDnp5HljLsgPCBzaG91bmlrYWlcIDsKK+W+jOe2meiAhSA8IGtvdWtlaXNoYVwgOwor5Lqu5a+fIDwgcnlvdXNhdHN1XCA7CivlpKnml6XloakgPCB0ZW5waXNoaW9cIDsKK+WogeWcp+eahCA8IGlhdHN1dGVraVwgOwor5LqM6YeN5bqVIDwgbmlqdXV6b2tvXCA7Civlj4jlvJ/lrZAgPCBtYXRhZGVzaGlcIDsKK+aVkeWRveWFtyA8IGt5dXVtZWlndVwgOwor5Lit5qyhIDwgbmFrYXRzdWdpXCA7CivnpoHnjJ/ljLogPCBraW5yeW91a3VcIDsKK+W8qee0muiJpiA8IGRva3l1dWthblwgOwor5pen6K2YIDwga3l1dXNoaWtpXCA7CivkurrlprsgPCBoaXRvZHp1bWFcIDsKK+aBkuS5heWMliA8IGtvdWt5dXVrYVwgOwor5paw6YeIIDwgc2hpbnNoYWt1XCA7CivlhbfkvZPnmoQgPCBndXRhaXRla2lcIDsKK+iFueS4gOadryA8IGhhcmFpcHBhaVwgOwor5qC855CG6KuWIDwga2FrdXJpcm9uXCA7Civml6Xoq74gPCBuaWNoaWRha3VcIDsKK+aEn+isneeKtiA8IGthbnNoYWpvdVwgOwor6IKh5LiLIDwgbWF0YXNoaXRhXCA7Civnj77ooYzniq8gPCBnZW5rb3VoYW5cIDsKK+ePjeWuoiA8IGNoaW5reWFrdVwgOwor5pel5LuY5Y2wIDwgaGlkenVrZWluXCA7CivlpKrpmb3nga8gPCB0YWl5b3V0b3VcIDsKK+aIkeatpuiAhee+hSA8IGdhbXVzaGFyYVwgOwor5aSW6Z2iIDwgc290b2R6dXJhXCA7Civmg4XloLHmupAgPCBqb3Vob3VnZW5cIDsKK+aYpeiJsiA8IHNodW5zaG9rdVwgOwor5YWs5L2/6aSoIDwga291c2hpa2FuXCA7Civnv4zmnIggPCB5b2t1Z2V0c3VcIDsKK+W4hueri+iynSA8IGhvdGF0ZWdhaVwgOwor6Iul5q2m6ICFIDwgd2FrYW11c2hhXCA7CivkuqzlpbMgPCBreW91b24nJ25hXCA7CivmuIXnrpfmm7ggPCBzZWlzYW5zaG9cIDsKK+acrOihl+mBkyA8IGhvbmthaWRvdVwgOwor5Liy5p+/IDwga3VzaGlnYWtpXCA7Civpg7Xkvr/ou4ogPCB5dXViaW5zaGFcIDsKK+iHquW3seeKoOeJsiA8IGppa29naXNlaVwgOwor57+M5pelIDwgeW9rdWppdHN1XCA7CivkuIDngrnmqZ8gPCBpY2hpdGVua2lcIDsKK+S4oealtSA8IHJ5b3VreW9rdVwgOwor5aSP6aKo6YKqIDwgbmF0c3VrYXplXCA7Civku4/lkI0gPCBidXRzdW15b3VcIDsKK+eJueiJsiA8IHRva3VzaG9rdVwgOwor5Lit6YGT5rS+IDwgY2h1dWRvdWhhXCA7CivmmrTpoqjln58gPCBib3VmdXVpa2lcIDsKK+eZuuemgeacrCA8IGhha2tpbmJvblwgOwor5Zyn6Zu75rCXIDwgYXRzdWRlbmtpXCA7Civlt6jkurrlhZogPCBreW9qaW50b3VcIDsKK+mjn+WuoiA8IHNob2treWFrdVwgOwor5pmC5Luj54mpIDwgamlkYWltb25vXCA7CivlsY/poqjlsqkgPCBieW91YnVpd2FcIDsKK+W/q+iomOmMsiA8IGthaWtpcm9rdVwgOwor54i26KaqIDwgY2hpY2hpb3lhXCA7CivmmrTpoqjlnI8gPCBib3VmdXVrZW5cIDsKK+S7ruS9jyA8IGthcml6dW1haVwgOwor6Zuq6Z20IDwgeXVraWd1dHN1XCA7CivkuI3miJDnuL4gPCBmdXNlaXNla2lcIDsKK+ePvuWHuiA8IGdlbnNodXRzdVwgOwor5LuP5YqbIDwgYnV0c3VyaWtpXCA7CivlpJrpn7Pnr4AgPCB0YW9uc2V0c3VcIDsKK+mAo+W4r+aEnyA8IHJlbnRhaWthblwgOwor6YOo5YiG55qEIDwgYnVidW50ZWtpXCA7CivlsILploDlupcgPCBzZW5tb250ZW5cIDsKK+aFo+eUqOmfsyA8IGthbicneW91b25cIDsKK+WknOS7leS6iyA8IHlvc2hpZ290b1wgOwor5ryU57+S5p6XIDwgZW5zaHV1cmluXCA7CivkuIvmp5ggPCBzaGltb3phbWFcIDsKK+afkOmrmOagoSA8IGJvdWtvdWtvdVwgOwor57mw6LaKIDwga3VyaWtvc2hpXCA7Civntr/oj5PlrZAgPCB3YXRhZ2FzaGlcIDsKK+i3qOe3muapiyA8IGtvc2Vua3lvdVwgOwor54WZ6I2J55uGIDwgdGFiYWtvYm9uXCA7Civlj5fpqJPnpaggPCBqdWtlbmh5b3VcIDsKK+WGheaWnOimliA8IG5haXNoYXNoaVwgOwor6Zu75L+h5qmfIDwgZGVuc2hpbmtpXCA7CivlnKfnuK7mqZ8gPCBhc3NodWt1a2lcIDsKK+eJqeiFsCA8IG1vbm9nb3NoaVwgOwor5LiJ5qSPIDwgbWl0c3VtYXRhXCA7Civlrp/ooYzmqKkgPCBqaWtrb3VrZW5cIDsKK+advuWOnyA8IG1hdHN1YmFyYVwgOwor55u45LqS5om25YqpIDwgc291Z29mdWpvXCA7Civos4PlgJ8gPCBjaGluc2hha3VcIDsKK+ePvuihjOazlSA8IGdlbmtvdWhvdVwgOwor6Ieq54S255WMIDwgc2hpemVua2FpXCA7Civmh7jlnoLnt5ogPCBrZW5zdWlzZW5cIDsKK+S4iuaJi+iAhSA8IGpvdXp1bW9ub1wgOwor5pel5pys5a2mIDwgbmlob25nYWt1XCA7CivmjpLpmpzlmaggPCBoYWlzaG91a2lcIDsKK+ecn+Wkj+aXpSA8IG1hbmF0c3ViaVwgOwor54af6aOfIDwganVrdXNob2t1XCA7CivmhJ/nhKHph48gPCBrYW5tdXJ5b3VcIDsKK+e1puS7mOmHkSA8IGt5dXVmdWtpblwgOwor5LuY5Lq6IDwgdHN1a2ViaXRvXCA7Civku6PlkI3oqZ4gPCBkYWltZWlzaGlcIDsKK+WQjOmfs+eVsOe+qSA8IGRvdW9uJydpZ2lcIDsKK+aVkeWKqeiIuSA8IGt5dXVqb3NlblwgOwor54m95byV6LuKIDwga2VuJydpbnNoYVwgOwor5bGF5L2P5oCnIDwga3lvanV1c2VpXCA7Civmipflh53lm7ogPCBrb3VneW91a29cIDsKK+eci+itt+mVtyA8IGthbmdvY2hvdVwgOwor5L2O5oCn6IO9IDwgdGVpc2Vpbm91XCA7CivnhKHoqIjnlLsgPCBtdWtlaWtha3VcIDsKK+WkmumdouinkiA8IHRhbWVua2FrdVwgOwor5L2O5ZGo5rOiIDwgdGVpc2h1dWhhXCA7CivnkIbmg7Ppg7cgPCByaXNvdWt5b3VcIDsKK+iiq+eIhuiAhSA8IGhpYmFrdXNoYVwgOwor57K+6KO957OWIDwgc2Vpc2VpdG91XCA7CivmnInnlKjmgKcgPCB5dXV5b3VzZWlcIDsKK+Wor+alveihlyA8IGdvcmFrdWdhaVwgOwor5b6M5aSp5oCnIDwga291dGVuc2VpXCA7CivmoKHlj4vkvJogPCBrb3V5dXVrYWlcIDsKK+WNmOWIqeihqCA8IHRhbnJpaHlvdVwgOwor6Ieq5bex5pys5L2NIDwgamlrb2hvbicnaVwgOwor5pyI5b2xIDwgdHN1a2lrYWdlXCA7CivnmYLppIrmiYAgPCByeW91eW91am9cIDsKK+S/neWuiOeahCA8IGhvc2h1dGVraVwgOwor5pyI5b2iIDwgdHN1a2lnYXRhXCA7CivnmofmsJHlhZogPCBrb3VtaW50b3VcIDsKK+S6jOmHjeWUsSA8IG5panV1c2hvdVwgOwor5LiD5pucIDwgc2hpY2hpeW91XCA7CivljbXog47nlJ8gPCByYW50YWlzZWlcIDsKK+S4gOaciCA8IGhpdG90c3VraVwgOwor57ea6aaZ5LujIDwgc2Vua291ZGFpXCA7Civlr77op5LljJYgPCB0YWlrYWt1a2FcIDsKK+acgOmrmOeCuSA8IHNhaWtvdXRlblwgOwor5aSp6LOqIDwgdGVuc2hpdHN1XCA7CivkuIvmlbcgPCBzaGl0YWppa2lcIDsKK+acgOS9jumZkCA8IHNhaXRlaWdlblwgOwor5LiD5pifIDwgc2hpY2hpc2VpXCA7CivmrYzlkIjmiKYgPCB1dGFnYXNzZW5cIDsKK+W5s+WSjOizniA8IGhlaXdhc2hvdVwgOwor5pWw5L+C5pWwIDwgc3V1a2Vpc3V1XCA7CivmnKjngq3nlLsgPCBtb2t1dGFuZ2FcIDsKK+WGjemZjeiHqCA8IHNhaWtvdXJpblwgOwor5pif56m6IDwgaG9zaGl6b3JhXCA7Civlho3oqr/mn7sgPCBzYWljaG91c2FcIDsKK+mrmOmHjuanmSA8IGtvdXlhbWFraVwgOwor5a6a5ruR6LuKIDwgdGVpa2Fzc2hhXCA7CivkvLzmiJHonIIgPCBqaWdhYmFjaGlcIDsKK+aXi+WFieaApyA8IHNlbmtvdXNlaVwgOwor5ZCN5oqV5omLIDwgbWVpdG91c2h1XCA7CivnibnnrYYgPCB0b2t1aGl0c3VcIDsKK+S4gOaXpSA8IHRzdWl0YWNoaVwgOwor5o6h566X5oCnIDwgc2Fpc2Fuc2VpXCA7CivkvIHmpa3ogIUgPCBraWd5b3VzaGFcIDsKK+S6uuS8nSA8IGhpdG9kenV0ZVwgOwor55Ww5bi46auY5ripIDwgaWpvdWtvdW9uXCA7Civni5DngasgPCBraXRzdW5lYmlcIDsKK+mKgOegguWtkCA8IGdpbnN1bmFnb1wgOwor54iG6KOCIDwgYmFrdXJldHN1XCA7Civnibnnq4sgPCB0b2t1cml0c3VcIDsKK+S6uuS7mCA8IGhpdG9kenVraVwgOwor5Zu95YiG5a+6IDwga29rdWJ1bmppXCA7CivppIrosZrloLQgPCB5b3V0b25qb3VcIDsKK+mdnuWvvuensCA8IGhpdGFpc2hvdVwgOwor5LiN6Yq56Yu8IDwgZnVzaHV1a291XCA7CivlpLHoqIAgPCBzaGl0c3VnZW5cIDsKK+S4gOmZouWItiA8IGljaGlpbnNlaVwgOwor5omL5LuV5LqLIDwgdGVzaGlnb3RvXCA7Civog4blmqLngo4gPCB0YW4nJ25vdWVuXCA7Civpm6rpgZMgPCB5dWtpbWljaGlcIDsKK+mbkemMsiA8IHphdHN1cm9rdVwgOwor5by35omT6ICFIDwga3lvdWRhc2hhXCA7Civopo/nr4TnmoQgPCBraWhhbnRla2lcIDsKK+e+hee0l+e0mSA8IHJhc2hhZ2FtaVwgOwor6ISx6KGj5aC0IDwgZGF0c3Vpam91XCA7CivlpbPohbkgPCBvbicnbmFiYXJhXCA7CivnhrHph48gPCBuZXRzdXJ5b3VcIDsKK+aVkeWKqee2siA8IGt5dXVqb21vdVwgOwor6Zuq6L6xIDwgc2V0c3Vqb2t1XCA7CivlpKrpmbDmmqYgPCB0YWlpbnJla2lcIDsKK+aPmue+veidtiA8IGFnZWhhY2hvdVwgOwor6aCt5qCqIDwgYXRhbWFrYWJ1XCA7Civlo6vlkJvlrZAgPCBzaGlrdW5zaGlcIDsKK+iFsOe+veebriA8IGtvc2hpYmFtZVwgOwor54mH5LiA5pa5IDwga2F0YWlwcG91XCA7CivpmL/niYfnqp8gPCBhaGVua3V0c3VcIDsKK+WkseihgCA8IHNoaWtrZXRzdVwgOwor5pqm5pyIIDwgcmVraWdldHN1XCA7CivlkL7mnKjpppkgPCB3YXJlbW9rb3VcIDsKK+WkieizqiA8IGhlbnNoaXRzdVwgOwor6aOf5Ye6IDwgaGFtaWRhc2hpXCA7CivlpKflnovou4ogPCBvb2dhdGFzaGFcIDsKK+Wkj+Wto+eGsSA8IGtha2luZXRzdVwgOwor5aSc6KmxIDwgeW9iYW5hc2hpXCA7CivlhoXpmbjpnKcgPCBuYWlyaWt1bXVcIDsKK+akjeWtl+apnyA8IHNob2t1amlraVwgOwor6YGK6Kan6Ii5IDwgeXV1cmFuc2VuXCA7CivkubPmiL/ngo4gPCBueXV1Ym91ZW5cIDsKK+iEs+aMq+WCtyA8IG5vdXphc2hvdVwgOwor5aSp6KKLIDwgdGVuYnVrdXJvXCA7CivlrabnlJ/oqrIgPCBnYWt1c2Vpa2FcIDsKK+mdtOe0kCA8IGt1dHN1aGltb1wgOwor6JeB5biD5ZujIDwgd2FyYWJ1dG9uXCA7CivoqbPov7AgPCBzaG91anV0c3VcIDsKK+aKleapn+W/gyA8IHRvdWtpc2hpblwgOwor6YO15L6/6Ii5IDwgeXV1Ymluc2VuXCA7CivpnZLlubTlm6MgPCBzZWluZW5kYW5cIDsKK+WLp+WRiuahiCA8IGthbmtva3VhblwgOwor54m555m6IDwgdG9rdWhhdHN1XCA7Civou43kuovmj7TliqkgPCBndW5qaWVuam9cIDsKK+WkqeaWh+WPsCA8IHRlbm1vbmRhaVwgOwor6Ieq54S25rOVIDwgc2hpemVuaG91XCA7Civnn7PngbDmtJ4gPCBzZWtrYWlkb3VcIDsKK+W8iuiho+egtOW4vSA8IGhlaWloYWJvdVwgOwor6Z2056+mIDwga3V0c3ViZXJhXCA7CivlopfliIrlj7cgPCB6b3VrYW5nb3VcIDsKK+S4i+W9uSA8IHNoaXRheWFrdVwgOwor5Lih5bK4IDwgcnlvdWdpc2hpXCA7Civmm7LlraYgPCBreW9rdWdha3VcIDsKK+WGheWkp+iHoyA8IG5haWRhaWppblwgOwor54++5Zyo5ZywIDwgZ2VuemFpY2hpXCA7CivmiKbou4rpmoogPCBzZW5zaGF0YWlcIDsKK+eGn+mBlCA8IGp1a3V0YXRzdVwgOwor5LiR5bm0IDwgdXNoaWRvc2hpXCA7Civkuozph43kuLggPCBuaWp1dW1hcnVcIDsKK+mcsuiNiSA8IHRzdXl1a3VzYVwgOwor6YWS6YCg5aC0IDwgc2h1em91am91XCA7CivmhJvoqq3ogIUgPCBhaWRva3VzaGFcIDsKK+S4g+S6lOS4iee4hCA8IHNoaW1lbmF3YVwgOwor5paH5YyW6YG655SjIDwgYnVua2Fpc2FuXCA7Civnn7PngbDmsLQgPCBzZWtrYWlzdWlcIDsKK+Wkp+WcsOmchyA8IGRhaWppc2hpblwgOwor6KmV6YeIIDwgaHlvdXNoYWt1XCA7CivkuI3mi6HlpKcgPCBmdWtha3VkYWlcIDsKK+S4u+WwjuiAhSA8IHNodWRvdXNoYVwgOwor6auY6JKU57W1IDwgdGFrYW1ha2llXCA7Civoh6rnhLbmrbsgPCBzaGl6ZW5zaGlcIDsKK+WxheS9j+WcsCA8IGt5b2p1dWNoaVwgOwor5LiA5b6LIDwgaWNoaXJpdHN1XCA7CivmsbrmrbvpmoogPCBrZXNzaGl0YWlcIDsKK+S4u+iEs+iAhSA8IHNodW5vdXNoYVwgOwor6Iie5qW96Z2iIDwgYnVnYWt1bWVuXCA7CivprZrku4vpoZ4gPCBneW9rYWlydWlcIDsKK+acgOmrmOaknCA8IHNhaWtvdWtlblwgOwor54ax5rGa5p+TIDwgbmV0c3Vvc2VuXCA7CivmgZLmmJ/lubQgPCBrb3VzZWluZW5cIDsKK+iHquWcqOmJpCA8IGppemFpa2FnaVwgOwor56u26LWw6aasIDwga3lvdXNvdWJhXCA7CivlvqHmiYvmtJcgPCBtaXRhcmFzaGlcIDsKK+Wil+W5heWZqCA8IHpvdWZ1a3VraVwgOwor5pel5pys5YG0IDwgbmlob25nYXdhXCA7CivkurrpoZ7lj7IgPCBqaW5ydWlzaGlcIDsKK+iLpuWKtOanmCA8IGt1cm91c2FtYVwgOwor56aA6KuL5pu4IDwgcmluc2Vpc2hvXCA7Civpoqjlj6MgPCBrYXphZ3VjaGlcIDsKK+S/s+irp+W4qyA8IGhhaWthaXNoaVwgOwor5aSP6J2JIDwgbmF0c3V6ZW1pXCA7Civoh6rlrrblj5fnsr4gPCBqaWthanVzZWlcIDsKK+aFo+eUqOiqniA8IGthbicneW91Z29cIDsKK+Wls+WtpueUnyA8IGpvZ2FrdXNlaVwgOwor6Zu75a2Q566hIDwgZGVuc2hpa2FuXCA7CivmorXlpKnnjosgPCBib250ZW4nJ291XCA7CivpnJ7ojYkgPCBrYXN1bWlzb3VcIDsKK+WQiOaIkOe0mSA8IGdvdXNlaXNoaVwgOwor6buE6YqF6YmxIDwga291ZG91a291XCA7Civoh6rlrrblj5fnsokgPCBqaWthanVmdW5cIDsKK+eJp+eVnCA8IGJva3VjaGlrdVwgOwor5Y+45pWZ5Yy6IDwgc2hpa3lvdWt1XCA7Civop6PmlaPmqKkgPCBrYWlzYW5rZW5cIDsKK+mBqem9ouacnyA8IHRla2lyZWlraVwgOwor5aiB5ZqH55qEIDwgaWtha3V0ZWtpXCA7CivpioPpgKPlsIQgPCBqdXVyZW5zaGFcIDsKK+WFjeeojuWTgSA8IG1lbnplaWhpblwgOwor54S86aSFIDwgeWFraW1vY2hpXCA7Civpq5jmsLTmupYgPCBrb3VzdWlqdW5cIDsKK+WkqumZveW5tCA8IHRhaXlvdW5lblwgOwor5rCR55Sf5aeU5ZOhIDwgbWluc2VpaWluXCA7Civnn7PntLDlt6UgPCBpc2hpemFpa3VcIDsKK+WvneWwj+S+vyA8IG5lc2hvdWJlblwgOwor5pyr5YOaIDwgYmF0c3VyeW91XCA7CivlhrfolLXms5UgPCByZWl6b3Vob3VcIDsKK+mFjeWIhuazlSA8IGhhaWJ1bmhvdVwgOwor6IC9576O55qEIDwgdGFuYml0ZWtpXCA7CivoqLvph4ggPCBjaHV1c2hha3VcIDsKK+a9nOiIquiJhyA8IHNlbmtvdXRlaVwgOwor5ZCM56qT55SfIDwgZG91c291c2VpXCA7CivmlL7mtarogIUgPCBob3Vyb3VzaGFcIDsKK+eoruamguW/tSA8IHNodWdhaW5lblwgOwor5pep5piO5oimIDwgc291bWVpc2VuXCA7Civlvq7nqY3liIYgPCBiaXNla2lidW5cIDsKK+mzpeeesOWbsyA8IGNob3VrYW56dVwgOwor5aWz546L6JyCIDwgam9vdWJhY2hpXCA7CivmlrDnt5EgPCBzaGlucnlva3VcIDsKK+WkseiEmiA8IHNoaWtreWFrdVwgOwor5aSW5Lqk5a6YIDwgZ2Fpa291a2FuXCA7Civmra/ogonngo4gPCBzaGluaWt1ZW5cIDsKK+iHqueEtuaelyA8IHNoaXplbnJpblwgOwor5ryU57+S5aC0IDwgZW5zaHV1am91XCA7CivlsI/puqboibIgPCBrb211Z2lpcm9cIDsKK+W+qeWPpOiqvyA8IGZ1a2tvY2hvdVwgOwor5Y+N55yB5LyaIDwgaGFuc2Vpa2FpXCA7CivnhrHluK/prZogPCBuZXR0YWlneW9cIDsKK+WkseiBtyA8IHNoaXNzaG9rdVwgOwor5Y2Y6JGJ5qmfIDwgdGFuJyd5b3VraVwgOwor5oSb5LuW5Li7576pIDwgYWl0YXNodWdpXCA7CivmiYDmnInogIUgPCBzaG95dXVzaGFcIDsKK+iyqeWjsuiAhSA8IGhhbmJhaXNoYVwgOwor5Li75Lq66aGUIDwgc2h1amluZ2FvXCA7Civmu5HnqL3ogIUgPCBvZG9rZW1vbm9cIDsKK+awtOmjoumliSA8IG1penVraWtpblwgOwor5rW35LiK5rOVIDwga2Fpam91aG91XCA7CivnhrHlj6/loZEgPCBuZXRzdWthc29cIDsKK+Wkj+iPiiA8IG5hdHN1Z2lrdVwgOwor5LiA5YWa5LiA5rS+IDwgaXR0b3VpcHBhXCA7CivljJblrablk4EgPCBrYWdha3VoaW5cIDsKK+e4nuibhyA8IHNoaW1haGViaVwgOwor5Lit5ZOyIDwgY2h1dXRldHN1XCA7CivlrZDmsqLlsbEgPCBrb2Rha3VzYW5cIDsKK+S9meawtOWQkCA8IHlvc3VpaGFraVwgOwor5oCq5aWH5pig55S7IDwga2Fpa2llaWdhXCA7CivoqLPov7AgPCB5YWt1anV0c3VcIDsKK+aWsOeviSA8IHNoaW5jaGlrdVwgOwor5aSP6I2JIDwgbmF0c3VndXNhXCA7CivmmKjlubTluqYgPCBzYWt1bmVuZG9cIDsKK+eOieS4siA8IHRhbWFndXNoaVwgOwor6Ieq54S25pWwIDwgc2hpemVuc3V1XCA7Civlho3oqILniYggPCBzYWl0ZWliYW5cIDsKK+mdkuW5tOS8miA8IHNlaW5lbmthaVwgOwor5Lit5Y+jIDwgbmFrYWd1Y2hpXCA7CivlpbPnmZYgPCBvbicnbmFndXNlXCA7Civnj77lnLDkurogPCBnZW5jaGlqaW5cIDsKK+aHkOeWkeW/gyA8IGthaWdpc2hpblwgOwor5ael5qGcIDwgdWJhemFrdXJhXCA7CivmnJ3ml6XlvbEgPCBhc2FoaWthZ2VcIDsKK+mHiOi/pueJn+WwvCA8IHNoYWthbXVuaVwgOwor6KqY5bCO5by+IDwgeXV1ZG91ZGFuXCA7Civosqnlo7LntrIgPCBoYW5iYWltb3VcIDsKK+S4reWNkiA8IGNodXVzb3RzdVwgOwor5YWr55m+5LiHIDwgeWFveW9yb3p1XCA7CivkuIvlnYIgPCBzaGltb3Nha2FcIDsKK+iyp+S5j+S6uiA8IGJpbmJvdW5pblwgOwor5bel5LqL5LitIDwga291amljaHV1XCA7CivnqoPnm5fnvaogPCBzZXR0b3V6YWlcIDsKK+miqOS4iyA8IGthemFzaGltb1wgOwor6Zye57ayIDwga2FzdW1pYW1pXCA7Civljp/oo4HliKQgPCBnZW5zYWliYW5cIDsKK+eCueeBq+iWrCA8IHRlbmtheWFrdVwgOwor5rW35LiK5qipIDwga2Fpam91a2VuXCA7CivljJblrabliaQgPCBrYWdha3V6YWlcIDsKK+eyvuijveazlSA8IHNlaXNlaWhvdVwgOwor5Lih5Y+jIDwgcnlvdWd1Y2hpXCA7CivmlrnnnLzntJkgPCBob3VnYW5zaGlcIDsKK+WPl+iznuiAhSA8IGp1c2hvdXNoYVwgOwor5o6o6Jam6ICFIDwgc3Vpc2Vuc2hhXCA7Civpm6rmqKHmp5ggPCB5dWtpbW95b3VcIDsKK+eIhueruSA8IGJha3VjaGlrdVwgOwor5LiA57Sa5ZOBIDwgaWtreXV1aGluXCA7CivmoLzlrZDngrkgPCBrb3VzaGl0ZW5cIDsKK+aXpeeLrCA8IG5pY2hpZG9rdVwgOwor6LO86LK36ICFIDwga291YmFpc2hhXCA7CivkuIDnrYnos54gPCBpdHRvdXNob3VcIDsKK+S7luWbveS6uiA8IHRha29rdWppblwgOwor56m65rCX5rW0IDwga3V1a2l5b2t1XCA7Civml6fniakgPCBreXV1YnV0c3VcIDsKK+eNo+WBjyA8IGtlbW9ub2hlblwgOwor5aSW5Lqk5ZujIDwgZ2Fpa291ZGFuXCA7Civln7fooYzpg6ggPCBzaGlra291YnVcIDsKK+mcsueoiyA8IHRzdXl1aG9kb1wgOwor6Kq/56+AIDwgY2hvdXNldHN1XCA7CivnkIbnpZ7oq5YgPCByaXNoaW5yb25cIDsKK+WPl+mok+aWmSA8IGp1a2VucnlvdVwgOwor6aCt5a2XIDwga2FzaGlyYWppXCA7Civli53miYvlhYMgPCBrYXR0ZW1vdG9cIDsKK+ebuOWvvuirliA8IHNvdXRhaXJvblwgOwor5YiK6KGM5LyaIDwga2Fua291a2FpXCA7CivnjYTljZIgPCBnb2t1c290c3VcIDsKK+S/neiCsuaWmSA8IGhvaWt1cnlvdVwgOwor57eP6LOH55SjIDwgc291c2hpc2FuXCA7CivkvY/msJHnqI4gPCBqdXVtaW56ZWlcIDsKK+S4lOWPiCA8IGthdHN1bWF0YVwgOwor5L+457Wm5pelIDwgaG91a3l1dWJpXCA7CivnianmtYEgPCBidXRzdXJ5dXVcIDsKK+S4oeWHuCA8IHJ5b3V0b3RzdVwgOwor6Zmz6L+wIDwgY2hpbmp1dHN1XCA7CivooYzmlL/lupwgPCBneW91c2VpZnVcIDsKK+WHpuWls+iGnCA8IHNob2pvbWFrdVwgOwor6ZqP5Ly06ICFIDwgenVpaGFuc2hhXCA7CivmlrDnnYAgPCBzaGluY2hha3VcIDsKK+Wls+eJqSA8IG9uJyduYW1vbm9cIDsKK+S4jeWNsCA8IGZ1amlydXNoaVwgOwor5oKq5a6j5LydIDwgYWt1c2VuZGVuXCA7Civmm7jku5ggPCBrYWtpdHN1a2VcIDsKK+WkmumdoueahCA8IHRhbWVudGVraVwgOwor6Kmw6I2JIDwgdHN1bWVrdXNhXCA7Civlr77miKbou4ogPCB0YWlzZW5zaGFcIDsKK+S4reS9jSA8IGNodXVndXJhaVwgOwor54aK6JyCIDwga3VtYWJhY2hpXCA7Civoi6blirTmgKcgPCBrdXJvdXNob3VcIDsKK+aBkOWmu+WutiA8IGt5b3VzYWlrYVwgOwor5Y2K6bm55rC0IDwgaGFua2Fuc3VpXCA7CivnpL7kvJrntYzmuIggPCBzaGFrYWlrZWlcIDsKK+e1kOi3j+i2uuW6pyA8IGtla2thZnV6YVwgOwor5a+G6Iiq6ICFIDwgbWlra291c2hhXCA7CivkuIDnrYnopqogPCBpdHRvdXNoaW5cIDsKK+aVmeiBtyA8IGt5b3VzaG9rdVwgOwor5aSx56S8IDwgc2hpdHN1cmVpXCA7Civoo5zlvLfnrYsgPCBob2t5b3VraW5cIDsKK+eci+adv+WxiyA8IGthbmJhbicneWFcIDsKK+ekvuWToeWvriA8IHNoYWlucnlvdVwgOwor5ZG85ZC45rOVIDwga29reXV1aG91XCA7CivnianmrLIgPCBidXRzdXlva3VcIDsKK+S4gOWPoyA8IGhpdG9rdWNoaVwgOwor5pOC6YmiIDwgc3VyaWJhY2hpXCA7CivkvZPph4/lmaggPCB0YWlyeW91a2lcIDsKK+WMluWtpuS4iiA8IGthZ2FrdWpvdVwgOwor5Ly96JeN6bOlIDwgZ2FyYW5jaG91XCA7Civlv4Poh5Ppg6ggPCBzaGluem91YnVcIDsKK+eIhueZuiA8IGJha3VoYXRzdVwgOwor5pyA6auY5bOwIDwgc2Fpa291aG91XCA7Civnq7bovKrloLQgPCBrZWlyaW5qb3VcIDsKK+mHjeWpmuiAhSA8IGp1dWtvbnNoYVwgOwor6KaB5pKD5qmfIDwgeW91Z2VraWtpXCA7CivmsJfljJbnhrEgPCBraWthbmV0c3VcIDsKK+aYqOaXpSA8IHNha3VqaXRzdVwgOwor5pel5pWZ57WEIDwgbmlra3lvdXNvXCA7Civok5bpurvlrZDmsrkgPCBoaW1hc2hpeXVcIDsKK+e4rue0hCA8IHNodWt1eWFrdVwgOwor5LiJ562J5pifIDwgc2FudG91c2VpXCA7Civlkb3lkI3ms5UgPCBtZWltZWlob3VcIDsKK+WPguWKoOWbvSA8IHNhbmtha29rdVwgOwor5pyq6ZaL5ouTIDwgbWlrYWl0YWt1XCA7Civlho3nt6jmiJAgPCBzYWloZW5zZWlcIDsKK+WkseedgCA8IHNoaXRjaGFrdVwgOwor6YCP5rC05oCnIDwgdG91c3Vpc2VpXCA7CivkuIDliJcgPCBpY2hpcmV0c3VcIDsKK+WPjeWvvuirliA8IGhhbnRhaXJvblwgOwor5a2m6Iq45ZOhIDwgZ2FrdWdlaWluXCA7Civlhrflh43prZogPCByZWl0b3VneW9cIDsKK+aVl+aui+WFtSA8IGhhaXphbmhlaVwgOwor5LiL5YG0IDwgc2hpdGFnYXdhXCA7Civpm4DoibIgPCBzdXp1bWVpcm9cIDsKK+abuOeUn+irliA8IHNob3NlaXJvblwgOwor6LKh5pS/6ZujIDwgemFpc2VpbmFuXCA7CivkuIDlhLIgPCBoaXRvbW91a2VcIDsKK+WItueZjOWJpCA8IHNlaWdhbnphaVwgOwor5peP5ruFIDwgem9rdW1ldHN1XCA7Civnmbrms6HliaQgPCBoYXBwb3V6YWlcIDsKK+S8neWlh+eahCA8IGRlbmtpdGVraVwgOwor57WG5Ym16IaPIDwgYmFuc291a291XCA7CivkuIvkvZwgPCBzaGl0YXNha3VcIDsKK+efs+eBsOWyqSA8IHNla2thaWdhblwgOwor6Kq/55WlIDwgY2hvdXJ5YWt1XCA7CivlhbXlrabmoKEgPCBoZWlnYWtrb3VcIDsKK+WvjOWxseecjCA8IHRveWFtYWtlblwgOwor6Kmy5b2T6ICFIDwgZ2FpdG91c2hhXCA7CivngrnmlbDliLYgPCB0ZW5zdXVzZWlcIDsKK+aYlOaXpSA8IHNla2lqaXRzdVwgOwor6auY55+l55yMIDwga291Y2hpa2VuXCA7Civlj6PkuIrmm7ggPCBrb3Vqb3VzaG9cIDsKK+ino+aUvuaEnyA8IGthaWhvdWthblwgOwor5bmz5ZKM55qEIDwgaGVpd2F0ZWtpXCA7Civoh6rplonnl4cgPCBqaWhlaXNob3VcIDsKK+mjsueUqOawtCA8IGluJyd5b3VzdWlcIDsKK+WkqumZveWFiSA8IHRhaXlvdWtvdVwgOwor5qmL6aCt5L+dIDwga3lvdXRvdWhvXCA7Civlj6Tmm7jluIIgPCBrb3Nob2ljaGlcIDsKK+WkqeeEtuWhqSA8IHRlbicnbmVuZW5cIDsKK+aWreeGsSA8IGRhbicnbmV0c3VcIDsKK+aYjuaXpSA8IG15b3VuaWNoaVwgOwor5LiL5LiLIDwgc2hpbW9qaW1vXCA7Civmlbfnn7MgPCBzaGlraWlzaGlcIDsKK+eJueaSriA8IHRva3VzYXRzdVwgOwor5YWs5a6z572qIDwga291Z2FpemFpXCA7Civmt6vlo7Llrr8gPCBpbmJhaXlhZG9cIDsKK+i1t+iri+aWhyA8IGtpc2hvdW1vblwgOwor6aGY5LqLIDwgbmVnYWlnb3RvXCA7CivnooHnm6TnuJ4gPCBnb2JhbmppbWFcIDsKK+mgu+WHuiA8IGhpbnNodXRzdVwgOwor57ay6KKLIDwgYW1pYnVrdXJvXCA7Civkv5fkuJbplpMgPCB6b2t1c2VrZW5cIDsKK+eUmOe0jeixhiA8IGFtYW5hdHRvdVwgOwor5Lm+6YWq57SgIDwga2FucmFrdXNvXCA7Civlhrbph5HlraYgPCB5YWtpbmdha3VcIDsKK+WGl+mVt+W6piA8IGpvdWNob3Vkb1wgOwor6KeS6YCQIDwga2FrdWNoaWt1XCA7Civnp4Hlrrbpm4YgPCBzaGlrYXNodXVcIDsKK+S4g+S4iSA8IHNoaWNoaXNhblwgOwor57Sw6Z2iIDwgaG9zb29tb3RlXCA7CivluILooZflnLAgPCBzaGlnYWljaGlcIDsKK+WPr+iqreaApyA8IGthZG9rdXNlaVwgOwor5piO56S655qEIDwgbWVpaml0ZWtpXCA7CivlpKflm57ou6IgPCBkYWlrYWl0ZW5cIDsKK+WRieacjeW6lyA8IGdvZnVrdXRlblwgOwor5Lit6I+v5Li8IDwgY2h1dWthZG9uXCA7CivlpKfopb/mtIsgPCB0YWlzZWl5b3VcIDsKK+eQhuaDs+eahCA8IHJpc291dGVraVwgOwor5aa75biv6ICFIDwgc2FpdGFpc2hhXCA7Civlhavlrp3oj5wgPCBoYXBwb3VzYWlcIDsKK+WPjOi5hOeNuCA8IHNvdXRlaWp1dVwgOwor6ZuG57WQIDwgc2h1dWtldHN1XCA7Civlm73lhajlnJ8gPCBrb2t1emVuZG9cIDsKK+S6jOmAsuazlSA8IG5pc2hpbmhvdVwgOwor6KW/6aKoIDwgbmlzaGlrYXplXCA7Civoh6rnhLblopcgPCBzaGl6ZW56b3VcIDsKK+aZguS7o+WKhyA8IGppZGFpZ2VraVwgOwor5aSP55epIDwgbmF0c3V5YXNlXCA7Civmt7fmiJDphZIgPCBrb25zZWlzaHVcIDsKK+WFrOWAjeaVsCA8IGtvdWJhaXN1dVwgOwor5Yem5pa5566LIDwgc2hvaG91c2VuXCA7CivnmYzntLDog54gPCBnYW5zYWlib3VcIDsKK+e0r+a4m+eojiA8IHJ1aWdlbnplaVwgOwor5omA5L2c5LqLIDwgc2hvc2Fnb3RvXCA7CivnhKHpmZDlsI8gPCBtdWdlbnNob3VcIDsKK+eJqeaMhyA8IG1vbm9zYXNoaVwgOwor56qD55uX54qvIDwgc2V0dG91aGFuXCA7Civku5XmiYvmoKogPCBzaGl0ZWthYnVcIDsKK+WPo+S4i+aJiyA8IGt1Y2hpYmV0YVwgOwor6YeR5puc5pelIDwga2luJyd5b3ViaVwgOwor5L2O5rC05rqWIDwgdGVpc3VpanVuXCA7Civoo73kvZzmiYAgPCBzZWlzYWt1am9cIDsKK+S8neWjsOeuoSA8IGRlbnNlaWthblwgOwor6YeP5a2Q5YyWIDwgcnlvdXNoaWthXCA7CivmmJ/lvbEgPCBob3NoaWthZ2VcIDsKK+eLrOWKmyA8IGRva3VyeW9rdVwgOwor5aW95LiA5a++IDwga291aXR0c3VpXCA7Civop6boqLogPCBzaG9rdXNoaW5cIDsKK+S6i+WLmeWxgCA8IGppbXVreW9rdVwgOwor5aO655q/IDwgdHN1Ym96YXJhXCA7Civlia/pvLvohZQgPCBmdWt1YmlrdXVcIDsKK+a1quiyu+eZliA8IHJvdWhpaGVraVwgOwor57Wm6LK755SfIDwga3l1dWhpc2VpXCA7CivnnIzkurrkvJogPCBrZW5qaW5rYWlcIDsKK+S4u+S7u+iAhSA8IHNodW5pbnNoYVwgOwor5YWs55So5paHIDwga291eW91YnVuXCA7CivnvarkurogPCB0c3VtaWJpdG9cIDsKK+ihjOaUv+WMuiA8IGd5b3VzZWlrdVwgOwor5o6o6Jam54q2IDwgc3Vpc2Vuam91XCA7CivkuK3ot53pm6IgPCBjaHV1a3lvcmlcIDsKK+WFseeUo+WMliA8IGt5b3VzYW5rYVwgOwor5Lya5pyf5LitIDwga2Fpa2ljaHV1XCA7Civph47nkIPloLQgPCB5YWt5dXVqb3VcIDsKK+mWkeWPpOmzpSA8IGthbmtvZG9yaVwgOwor55Sj6KSl5pyfIDwgc2Fuam9rdWtpXCA7CivkuLvlsI7mqKkgPCBzaHVkb3VrZW5cIDsKK+WLn+mHkeeusSA8IGJva2luYmFrb1wgOwor56Gs5Y+j6JOLIDwga291a291Z2FpXCA7CivmlbfniakgPCBzaGlraW1vbm9cIDsKK+WPsuiomOaKhCA8IHNoaWtpc2hvdVwgOwor5bm06b2i5bGkIDwgbmVucmVpc291XCA7CivpoK3poILpg6ggPCB0b3VjaG91YnVcIDsKK+mbqueUtyA8IHl1a2lvdG9rb1wgOwor5pep5aC057GzIDwgaGF5YWJhbWFpXCA7Civlj6Poqp7oqLMgPCBrb3Vnb3lha3VcIDsKK+ayueWcp+ioiCA8IHl1YXRzdWtlaVwgOwor5aSP54mpIDwgbmF0c3Vtb25vXCA7Civkuozmr5vkvZwgPCBuaW1vdXNha3VcIDsKK+aknOezluioiCA8IGtlbnRvdWtlaVwgOwor6KqY5bCO5L2TIDwgeXV1ZG91dGFpXCA7CivnnJ/lm5vop5IgPCBtYXNoaWtha3VcIDsKK+eUs+WRveiomCA8IHNoaW5tZWlraVwgOwor6ISC6IKq5bGkIDwgc2hpYm91c291XCA7CivntbHoqIggPCBiYXJhdHN1a2lcIDsKK+eJqeWTgeeojiA8IGJ1cHBpbnplaVwgOwor6bOz57+F6ZCYIDwgaG91c2hpdG91XCA7CivlpbPmlrkgPCBvbicnbmFnYXRhXCA7CivmlrDmqYsgPCBzaGluYmFzaGlcIDsKK+WxpOepjembsiA8IHNvdXNla2l1blwgOwor56eS5pmC6KiIIDwgYnlvdWRva2VpXCA7Civnj4rnkZrnpIEgPCBzYW5nb3Nob3VcIDsKK+mAo+S9k+ipniA8IHJlbnRhaXNoaVwgOwor54ax55eFIDwgbmV0c3VieW91XCA7Civpm7vnhrEgPCBkZW4nJ25ldHN1XCA7CivmmJ/lsZEgPCBob3NoaWt1enVcIDsKK+Wkqeawl+WFt+WQiCA8IHRlbmtpZ3VhaVwgOwor5bGB55CG5bGIIDwgaGVyaWt1dHN1XCA7Civlv5fpoZjogIUgPCBzaGlnYW5zaGFcIDsKK+a1quS6uueUnyA8IHJvdW5pbnNlaVwgOwor5LiN5Y+v6YCGIDwgZnVrYWd5YWt1XCA7CivpmpTntbYgPCBrYWt1emV0c3VcIDsKK+eLrOS7jyA8IGRva3VmdXRzdVwgOwor5aSn6Ziq5biCIDwgb29zYWthc2hpXCA7CivlprvlrqQgPCBzYWlzaGl0c3VcIDsKK+aEm+iqreabuCA8IGFpZG9rdXNob1wgOwor5Y+v5aGR54mpIDwga2Fzb2J1dHN1XCA7CivmlrDpgKDoqp4gPCBzaGluem91Z29cIDsKK+eJqeW5siA8IG1vbm9ob3NoaVwgOwor5Y+N5a++6ICFIDwgaGFudGFpc2hhXCA7CivntLDpgZMgPCBob3NvbWljaGlcIDsKK+m7kuegguezliA8IGt1cm96YXRvdVwgOwor546E57Gz6Iy2IDwgZ2VubWFpY2hhXCA7CivmvJTnubnms5UgPCBlbicnZWtpaG91XCA7Civoh6jloLTmhJ8gPCByaW5qb3VrYW5cIDsKK+eGseeQgyA8IG5ldHN1a3l1dVwgOwor5YGP6KW/6aKoIDwgaGVuc2VpZnV1XCA7CivpppnlkbPmlpkgPCBrb3VtaXJ5b3VcIDsKK+ato+eUsuadvyA8IHNlaWthbnBhblwgOwor5a+p6K2w5LyaIDwgc2hpbmdpa2FpXCA7CivpnZLmo67nnIwgPCBhb21vcmlrZW5cIDsKK+S4jeaEn+eXhyA8IGZ1a2Fuc2hvdVwgOwor57ie54mpIDwgc2hpbWFtb25vXCA7CivnpoHooZvpmoogPCBraW4nJ2VpdGFpXCA7CivmlrDmnpUgPCBuaWltYWt1cmFcIDsKK+aUvuawtOi7iiA8IGhvdXN1aXNoYVwgOwor6ICQ5rC05oCnIDwgdGFpc3Vpc2VpXCA7CivnjoTplqLnlaogPCBnZW5rYW5iYW5cIDsKK+WJjeWknOelrSA8IHplbicneWFzYWlcIDsKK+aciOahguWGoCA8IGdla2tlaWthblwgOwor57Wm6KGAIDwga3l1dWtldHN1XCA7CivkuozliIDmtYEgPCBuaXRvdXJ5dXVcIDsKK+aWsOacrSA8IHNoaW5zYXRzdVwgOwor5omA5pyJ5qipIDwgc2hveXV1a2VuXCA7Civlhrflh43ou4ogPCByZWl0b3VzaGFcIDsKK+aWsOaciCA8IHNoaW5nZXRzdVwgOwor5p2l5Lya6ICFIDwgcmFpa2Fpc2hhXCA7CivmlrDmm7IgPCBzaGlua3lva3VcIDsKK+S4gOWPo+WQjOmfsyA8IGlra3Vkb3VvblwgOwor5LiK562J5ZOBIDwgam91dG91aGluXCA7CivojZLnmYLmsrsgPCBhcmFyeW91amlcIDsKK+alveims+irliA8IHJha2thbnJvblwgOwor5YC26IiO5a6XIDwga3VzaGFzaHV1XCA7CivnhKHoqIDliocgPCBtdWdvbmdla2lcIDsKK+WFpeiLkeWIuCA8IG55dXVlbmtlblwgOwor6IWx6Z6Y54KOIDwga2Vuc2hvdWVuXCA7CivkuI3lj6/mgJ3orbAgPCBmdWthc2hpZ2lcIDsKK+mrmOW5tOiAhSA8IGtvdW5lbnNoYVwgOwor6Kmw54mpIDwgdHN1bWVtb25vXCA7CivmjqLmtbfnga8gPCB0YW5rYWl0b3VcIDsKK+eEoeimj+W+iyA8IG11a2lyaXRzdVwgOwor54OP6LKdIDwga2FyYXN1Z2FpXCA7CivpnbTlupUgPCBrdXRzdXpva29cIDsKK+W9ouWuueipniA8IGtlaXlvdXNoaVwgOwor5Yy75LqL5Lyd6YGTIDwgaWppZGVuZG91XCA7Civml6flubQgPCBmdXJ1dG9zaGlcIDsKK+WyqembsumbgCA8IGl3YWhpYmFyaVwgOwor5pif5Z6LIDwgaG9zaGlnYXRhXCA7CivlvpLnq7botbAgPCB0b2t5b3Vzb3VcIDsKK+S4jeaIpuWLnSA8IGZ1c2Vuc2hvdVwgOwor6Ieq54S25Lq6IDwgc2hpemVuamluXCA7Civlrrbluq3nmoQgPCBrYXRlaXRla2lcIDsKK+mrmOawl+WcpyA8IGtvdWtpYXRzdVwgOwor5ruR56i95pysIDwga29ra2VpYm9uXCA7CivlpbPlrZDlr64gPCBqb3NoaXJ5b3VcIDsKK+WkseacmyA8IHNoaXRzdWJvdVwgOwor5pS/5rK755qEIDwgc2Vpaml0ZWtpXCA7CivkuIrnrYnlhbUgPCBqb3V0b3VoZWlcIDsKK+eEvOe1kCA8IHNob3VrZXRzdVwgOwor5Y6f56i/57SZIDwgZ2Vua291c2hpXCA7CivoibLnnLzpj6EgPCBpcm9tZWdhbmVcIDsKK+alveitnOWPsCA8IGdha3VmdWRhaVwgOwor5Ya35rC05aGKIDwgcmVpc3Vpa2FpXCA7Civkv53orbfoibIgPCBob2dvc2hva3VcIDsKK+Whtee0mSA8IGNoaXJpZ2FtaVwgOwor6Imy5Y+O5beuIDwgaXJvc2h1dXNhXCA7Civnvo7ooZPlrrYgPCBiaWp1dHN1a2FcIDsKK+WGjeipleS+oSA8IHNhaWh5b3VrYVwgOwor5aSx5piOIDwgc2hpdHN1bWVpXCA7CivmupblgpnkuK0gPCBqdW5iaWNodXVcIDsKK+WFieWQiOaIkCA8IGtvdWdvdXNlaVwgOwor5oKq5p2h5Lu2IDwgYWt1am91a2VuXCA7CivkuInmgqrotqMgPCBzYW5ha3VzaHVcIDsKK+S4u+eUo+WcsCA8IHNodXNhbmNoaVwgOwor6Z+z6YOo6KiY5Y+3IDwgb25idWtpZ291XCA7Civlt7vnqY3pm7IgPCBrZW5zZWtpdW5cIDsKK+W4jOehq+mFuCA8IGtpcnl1dXNhblwgOwor5paH5pyIIDwgZnVtaWR6dWtpXCA7CivohLHnqYDmqZ8gPCBkYWtrb2t1a2lcIDsKK+m8juirh+S8miA8IHRlaWRhbmthaVwgOwor6KSH5pys5L2NIDwgZnVrdWhvbicnaVwgOwor5L+X6Laj5ZGzIDwgem9rdXNodW1pXCA7CivntYLmraLnrKYgPCBzaHV1c2hpZnVcIDsKK+eCreizqiA8IHRhbnNoaXRzdVwgOwor57K+6KO95ZOBIDwgc2Vpc2VpaGluXCA7CivmhrLlhbXpmoogPCBrZW5wZWl0YWlcIDsKK+iqheauuiA8IGNodXVzYXRzdVwgOwor5aSn5piUIDwgb29tdWthc2hpXCA7CivphY3lgbbogIUgPCBoYWlndXVzaGFcIDsKK+WFheW9k+mHkSA8IGp1dXRvdWtpblwgOwor5raI54Gr5qCTIDwgc2hvdWthc2VuXCA7CivlpYjoia/mmYLku6MgPCBuYXJhamlkYWlcIDsKK+WvhOeVmeiAhSA8IGtpcnl1dXNoYVwgOwor54Gw56We5qW9IDwgaGFpa2FndXJhXCA7Civph5HkuIDlsIEgPCBraW4nJ2lwcHV1XCA7CivluorpgYvli5UgPCB5dWthdW5kb3VcIDsKK+mVt+mdtCA8IG5hZ2FndXRzdVwgOwor5a+E55Sf6JmrIDwga2lzZWljaHV1XCA7Civns7jou4ogPCBpdG9ndXJ1bWFcIDsKK+WknOaZkiA8IHlvemFyYXNoaVwgOwor5LiJ562J5YiGIDwgc2FudG91YnVuXCA7CivllqvmsLTnt5ogPCBraXNzdWlzZW5cIDsKK+Wkj+acjSA8IG5hdHN1ZnVrdVwgOwor5oKq546J5YyWIDwgYWt1ZGFtYWthXCA7CivotoXnsKHmmJMgPCBjaG91a2FuJydpXCA7CivpnbTloqggPCBrdXRzdXp1bWlcIDsKK+ijuOmmrCA8IGhhZGFrYXVtYVwgOwor5oiv5L2c6ICFIDwgZ2VzYWt1c2hhXCA7CivlprnliIYgPCBpbW91dG9idW5cIDsKK+aXpeWiqCA8IG5pY2hpYm9rdVwgOwor5paw5byPIDwgc2hpbnNoaWtpXCA7CivpnZLnk6LnrqogPCBhb2J5b3V0YW5cIDsKK+aCo+iAheanmCA8IGthbmphc2FtYVwgOwor5LqU5a+46YeYIDwgZ29zdW5rdWdpXCA7Civku67nmbvoqJggPCBrYXJpdG91a2lcIDsKK+WQiOWQjOi7jSA8IGdvdWRvdWd1blwgOwor5aSP5pmCIDwgbmF0c3Vkb2tpXCA7Civngrjoo4IgPCBzYWt1cmV0c3VcIDsKK+eJueWIpSA8IHRva3ViZXRzdVwgOwor6KSH6ZuRIDwgZnVrdXphdHN1XCA7CivpnbTlnosgPCBrdXRzdWdhdGFcIDsKK+eykumjnyA8IHJ5dXVzaG9rdVwgOwor6Z2e54++5qWtIDwgaGlnZW5neW91XCA7Civli6TlirTogIUgPCBraW5yb3VzaGFcIDsKK+WbuuWumumVtyA8IGtvdGVpY2hvdVwgOwor5q666I+M5YmkIDwgc2Fra2luemFpXCA7CivntZDohpwgPCBrZXRzdW1ha3VcIDsKK+a0i+acjeWxiyA8IHlvdWZ1a3V5YVwgOwor6LW354iG5YmkIDwga2liYWt1emFpXCA7CivooajnpLrnga8gPCBoeW91aml0b3VcIDsKK+S+v+WIqeW4syA8IGJlbnJpY2hvdVwgOwor5Y+W5p2Q54+tIDwgc2h1emFpaGFuXCA7CivohILogqrkvZMgPCBzaGlib3V0YWlcIDsKK+mDteS+v+WxiyA8IHl1dWJpbicneWFcIDsKK+e4nuafhCA8IHNoaW1hZ2FyYVwgOwor5Lit6L6e5YW4IDwgY2h1dWppdGVuXCA7CivmtJfpnaLlj7AgPCBzZW5tZW5kYWlcIDsKK+WkseaBiyA8IHNoaXRzdXJlblwgOwor5YaF6KOP6ZubIDwgZGFpcmliaW5hXCA7Civlhajkuozph40gPCB6ZW4nJ25panV1XCA7Civmurbop6PmgKcgPCB5b3VrYWlzZWlcIDsKK+WkseW/tSA8IHNoaXRzdW5lblwgOwor6Zuo5puHIDwgYW1hZ3Vtb3JpXCA7CivmlbTmlbDoq5YgPCBzZWlzdXVyb25cIDsKK+ipleaxuiA8IGh5b3VrZXRzdVwgOwor5rCR56S+5YWaIDwgbWluc2hhdG91XCA7CivkvIHnlLvmm7ggPCBraWtha3VzaG9cIDsKK+eUn+WcsOeNhCA8IGlraWppZ29rdVwgOwor57SU57Gz6YWSIDwganVubWFpc2h1XCA7Civlm57pgYrprZogPCBrYWl5dXVneW9cIDsKK+eEoemWouW/gyA8IG11a2Fuc2hpblwgOwor6ICz6by75ZK95ZaJIDwgamliaWlua291XCA7CivlpbPlnYIgPCBvbicnbmF6YWthXCA7CivntprnmbogPCB6b2t1aGF0c3VcIDsKK+WPi+S6uumWkyA8IHl1dWppbmthblwgOwor5pyJ5paQ6ZajIDwgeXV1aGlrYWt1XCA7Civosqnlo7LlupcgPCBoYW5iYWl0ZW5cIDsKK+mbkeagqiA8IHphdHN1a2FidVwgOwor5b+X5pyb5qChIDwgc2hpYm91a291XCA7CivlpYnov47ploAgPCBob3VnZWltb25cIDsKK+eJm+WIuiA8IGd5dXVzYXNoaVwgOwor5Z+36JGXIDwgc2h1dWNoYWt1XCA7CivpnaLkvJrkurogPCBtZW5rYWluaW5cIDsKK+S4gOeuh+aciCA8IGlra2FnZXRzdVwgOwor6YCB5rC0566hIDwgc291c3Vpa2FuXCA7Civns5bos6ogPCB0b3VzaGl0c3VcIDsKK+WGt+WHjeiIuSA8IHJlaXRvdXNlblwgOwor5bm06YWN6ICFIDwgbmVucGFpc2hhXCA7CivmiYvmlbDmlpkgPCB0ZXN1dXJ5b3VcIDsKK+mboumtgueXhSA8IHJpa29uYnlvdVwgOwor56m65rCX5rGa5p+TIDwga3V1a2lvc2VuXCA7CivniYflj6MgPCBrYXRha3VjaGlcIDsKK+awtOS4reiKsSA8IHN1aWNodXVrYVwgOwor5YuV5ZCN6KmeIDwgZG91bWVpc2hpXCA7CivntLDohbAgPCBob3NvZ29zaGlcIDsKK+eDj+W4veWtkOiynSA8IGVib3NoaWdhaVwgOwor6buE6YeR6ImyIDwga29nYW5laXJvXCA7CivkuozlhYPnmoQgPCBuaWdlbnRla2lcIDsKK+e4nuagl+m8oCA8IHNoaW1hcmlzdVwgOwor5aiv5qW95aC0IDwgZ29yYWt1am91XCA7CivpgYropqflnLAgPCB5dXVyYW5jaGlcIDsKK+acrOWboOWdiiA8IGhvbicnaW5ib3VcIDsKK+WFseaghOWcjyA8IGt5b3VlaWtlblwgOwor55u45a++5q27IDwgYWl0YWlqaW5pXCA7Civlm73oh6rmhaIgPCBrdW5pamltYW5cIDsKK+mHjeWkp+imliA8IGp1dWRhaXNoaVwgOwor5LyB5qWt5YaFIDwga2lneW91bmFpXCA7Civpm4bmnK0gPCBzaHV1c2F0c3VcIDsKK+WQjOeqk+S8miA8IGRvdXNvdWthaVwgOwor5rOV6JOu6I2JIDwgaG91cmVuc291XCA7CivmtbflpJbniYggPCBrYWlnYWliYW5cIDsKK+aJh+eKtuWcsCA8IHNlbmpvdWNoaVwgOwor5pel5Ye6IDwgbmlzc2h1dHN1XCA7CivmiZPmkoPmiKYgPCBkYWdla2lzZW5cIDsKK+acieixoeeEoeixoSA8IHV6b3VtdXpvdVwgOwor6YCP5YaZ57SZIDwgdG91c2hhc2hpXCA7Civkurrmloflj7IgPCBqaW5idW5zaGlcIDsKK+aMh+WumuWIuCA8IHNoaXRlaWtlblwgOwor6aaZ5rC055O2IDwga291c3VpYmluXCA7CivnhrHluK/nl4UgPCBuZXRhaWJ5b3VcIDsKK+S8neiomOeJqSA8IGRlbmtpbW9ub1wgOwor6KiI6YeP5ZmoIDwga2VpcnlvdWtpXCA7Civoo5zlhJ/ph5EgPCBob3Nob3VraW5cIDsKK+i7veeKr+e9qiA8IGtlaWhhbnphaVwgOwor5Z2q6YePIDwgdHN1Ym9yeW91XCA7CivlkIjmhrLmgKcgPCBnb3VrZW5zZWlcIDsKK+WcsOmOruelrSA8IGppY2hpbnNhaVwgOwor5Li75L2T5oCnIDwgc2h1dGFpc2VpXCA7CivntKDnspLlrZAgPCBzb3J5dXVzaGlcIDsKK+idv+WcsOeNhCA8IGhhZWppZ29rdVwgOwor5aSn54G95a6zIDwgZGFpc2FpZ2FpXCA7CivlpbTlh6cgPCB5YWtrb2Rha29cIDsKK+alveWkqeWutiA8IHJha3V0ZW5rYVwgOwor55CG5oCn55qEIDwgcmlzZWl0ZWtpXCA7Civntr/msrkgPCB3YXRhYWJ1cmFcIDsKK+eEtueEtiA8IHNoaWthamlrYVwgOwor6byT56yb6ZqKIDwga290ZWtpdGFpXCA7CivotbfoqLTnjLbkuoggPCBraXNveXV1eW9cIDsKK+WvkuaaluioiCA8IGthbmRhbmtlaVwgOwor6Iqx57KJ55eHIDwga2FmdW5zaG91XCA7CivkurrngrrnmoQgPCBqaW4nJ2l0ZWtpXCA7CivkvIrli6LnpZ7lrq4gPCBpc2VqaW5ndXVcIDsKK+WPl+mgmOiAhSA8IGp1cnlvdXNoYVwgOwor5LyB55S75oCnIDwga2lrYWt1c2VpXCA7CivlhoXpnIDlnosgPCBuYWlqdWdhdGFcIDsKK+WwuOS9jee0oOmkkCA8IHNoaWlzb3NhblwgOwor54Sm54axIDwgc2hvdW5ldHN1XCA7Civljp/miJDlsqkgPCBnZW5zZWlnYW5cIDsKK+ihqOekuuadvyA8IGh5b3VqaWJhblwgOwor5aSP5bGxIDwgbmF0c3V5YW1hXCA7CivniKrliIcgPCB0c3VtZWtpcmlcIDsKK+awuOS5heatryA8IGVpa3l1dXNoaVwgOwor5Y2D56S+5pytIDwgc2VuamFmdWRhXCA7Civoj6nmj5Dlv4MgPCBib2RhaXNoaW5cIDsKK+aUv+aJgCA8IG1hbmRva29yb1wgOwor5pWZ5byPIDwga3lvdXNoaWtpXCA7CivooajnpLrmm7ggPCBoeW91amlzaG9cIDsKK+aUvuawtOeuoSA8IGhvdXN1aWthblwgOwor5Y+M5a2Q6JGJIDwgc291c2hpeW91XCA7CivmgKfou6Lmj5sgPCBzZWl0ZW5rYW5cIDsKK+i8uOmAgemHjyA8IHl1c291cnlvdVwgOwor5omA5pyJ5ZywIDwgc2hveXV1Y2hpXCA7CivpvJPmiYvplbcgPCBrb3NodWNob3VcIDsKK+eIquWFiCA8IHRzdW1hc2FraVwgOwor57eP5pys5bqXIDwgc291aG9udGVuXCA7CivlhYPmsJfogIUgPCBnZW5raW1vbm9cIDsKK+S7o+W8geiAhSA8IGRhaWJlbnNoYVwgOwor6YeO5aSp6aKo5ZGCIDwgbm90ZW5idXJvXCA7CivnlLrljLvogIUgPCBtYWNoaWlzaGFcIDsKK+ijveadkOaJgCA8IHNlaXphaXNob1wgOwor5aGp5rysIDwgc2hpb2R6dWtlXCA7Civlj43kubHou40gPCBoYW5yYW5ndW5cIDsKK+e3j+S6uuWPoyA8IHNvdWppbmtvdVwgOwor5bqX5LuV6IieIDwgbWlzZWppbWFpXCA7CivkuK3kv53ogIUgPCBjaHV1aG9zaGFcIDsKK+WllOWHuiA8IGhvbnNodXRzdVwgOwor56uL5rOV6ICFIDwgcmlwcG91c2hhXCA7CivojYnnm7jmkrIgPCBrdXNhenVtb3VcIDsKK+S6iOWCmemMqCA8IHlvYmlpa2FyaVwgOwor6ZqU5pyIIDwga2FrdWdldHN1XCA7CivmrZPpgIHkvJogPCBrYW5zb3VrYWlcIDsKK+WPjOe/hemhniA8IHNvdXNoaXJ1aVwgOwor57SZ57Sw5belIDwga2FtaXphaWt1XCA7CivlsbHmsLTojZggPCBzYW5zdWlzb3VcIDsKK+ihqOaymeaxsCA8IG9tb3RlemF0YVwgOwor5ZSQ542F5a2QIDwga2FyYWppc2hpXCA7CivlubPlkozlm70gPCBoZWl3YWtva3VcIDsKK+S9juawl+WcpyA8IHRlaWtpYXRzdVwgOwor5L2c5qWt55SoIDwgc2FneW91eW91XCA7CivmkoPnmbogPCBnZWtpaGF0c3VcIDsKK+Wft+ethiA8IHNoaXBwaXRzdVwgOwor5rC05a6z5ZywIDwgc3VpZ2FpY2hpXCA7Civnt4/mnKzlsbEgPCBzb3Vob256YW5cIDsKK+a8lOiqrOWutiA8IGVuemV0c3VrYVwgOwor55uy6IW454KOIDwgbW91Y2hvdWVuXCA7CivmlqXlipsgPCBzZWtpcnlva3VcIDsKK+e1gueZuiA8IHNodXVoYXRzdVwgOwor6YGj5ZSQ5L2/IDwga2VudG91c2hpXCA7CivlnYLpgZMgPCBzYWthbWljaGlcIDsKK+S9nOalreePrSA8IHNhZ3lvdWhhblwgOwor5rS75oCn54KtIDwga2Fzc2VpdGFuXCA7CivmnIDlsI/ljJYgPCBzYWlzaG91a2FcIDsKK+S5l+mZjeWgtCA8IGpvdWtvdWpvdVwgOwor5L+X5LiW55WMIDwgem9rdXNla2FpXCA7Civmr5vnuZTniakgPCBrZW9yaW1vbm9cIDsKK+W/l+mhmOabuCA8IHNoaWdhbnNob1wgOwor5LiN5q276bOlIDwgZnVzaGljaG91XCA7CivmgrLoprPnmoQgPCBoaWthbnRla2lcIDsKK+aSsua7hSA8IGJva3VtZXRzdVwgOwor5oiQ5Yqf6ICFIDwgc2Vpa291c2hhXCA7CivnnIvorbflraYgPCBrYW5nb2dha3VcIDsKK+S4iuWQkee3miA8IGpvdWtvdXNlblwgOwor5raI54KO5YmkIDwgc2hvdWVuemFpXCA7CivlhazkvJHml6UgPCBrb3VreXV1YmlcIDsKK+e3j+e9t+alrSA8IHNvdWhpZ3lvdVwgOwor5YaN5oqV6LOHIDwgc2FpdG91c2hpXCA7CivmrYzliofloLQgPCBrYWdla2lqb3VcIDsKK+a1hOawtOWgtCA8IGpvdXN1aWpvdVwgOwor6Zuq5aWzIDwgeXVraW9uJyduYVwgOwor6Kmz5a+GIDwgc2hvdW1pdHN1XCA7CivmsLTogJXms5UgPCBzdWlrb3Vob3VcIDsKK+Wkp+a8lOe/kiA8IGRhaWVuc2h1dVwgOwor54Sh55CG54Sh5L2TIDwgbXVyaW11dGFpXCA7Civlrp/muKzlm7MgPCBqaXNzb2t1enVcIDsKK+iGqOW8teW6piA8IGJvdWNob3Vkb1wgOwor5pig5YaZ5bmVIDwgZWlzaGFtYWt1XCA7CivkuIrmsLTpgZMgPCBqb3VzdWlkb3VcIDsKK+WFqOS9j+awkSA8IHplbmp1dW1pblwgOwor5rWE5rC05ZywIDwgam91c3VpY2hpXCA7Civpm5HlraYgPCB6YXRzdWdha3VcIDsKK+Wdh+izqiA8IGtpbnNoaXRzdVwgOwor55S35oCn55SoIDwgZGFuc2VpeW91XCA7Civlpb3lpYflv4MgPCBrb3VraXNoaW5cIDsKK+iCieS9k+e+jiA8IG5pa3V0YWliaVwgOwor5Zu95a6255qEIDwga29ra2F0ZWtpXCA7CivniqDnibLnmoQgPCBnaXNlaXRla2lcIDsKK+mAo+WtkOeqkyA8IHJlbmppbWFkb1wgOwor55u45a++5oCnIDwgc291dGFpc2VpXCA7Civng4/nk5wgPCBrYXJhc3V1cmlcIDsKK+mWouW/g+S6iyA8IGthbnNoaW5qaVwgOwor5YyX5paX5pifIDwgaG9rdXRvc2VpXCA7CivmnKzmi6DlnLAgPCBob25reW9jaGlcIDsKK+iInui4j+eXhSA8IGJ1dG91YnlvdVwgOwor5YaF5aSW5Lq6IDwgbmFpZ2FpamluXCA7CivmkrLmrrogPCBib2t1c2F0c3VcIDsKK+aRmOeZuiA8IHRla2loYXRzdVwgOwor5LiL56iu5aWzIDwgZ2VzdW9uJyduYVwgOwor6LWk6Zu76LuKIDwgYWthZGVuc2hhXCA7CivlpI/lkJEgPCBuYXRzdW11a2lcIDsKK+eymOadv+WyqSA8IG5lbmJhbmdhblwgOwor5LqL5qWt6ICFIDwgamlneW91c2hhXCA7CivmrZPov47kvJogPCBrYW5nZWlrYWlcIDsKK+iol+WFkOaJgCA8IHRha3VqaXNob1wgOwor5rC05pmC6KiIIDwgbWl6dWRva2VpXCA7CivmjajpiaIgPCBzdXRlYmFjaGlcIDsKK+ebsuWwjueKrCA8IG1vdWRvdWtlblwgOwor6LKp5aOy5Lq6IDwgaGFuYmFpbmluXCA7Civpr5AgPCBzdWJhc2hpcmlcIDsKK+S6uuWbveiomCA8IGppbmtva3VraVwgOwor5pmu5Y+K54mIIDwgZnVreXV1YmFuXCA7CivprpcgPCBrb25vc2hpcm9cIDsKK+WNiumDqOaXjyA8IGhhbmJ1em9rdVwgOwor6aOb6YGT5YW3IDwgdG9iaWRvdWd1XCA7CivkurrplpPnlYwgPCBuaW5nZW5rYWlcIDsKK+S5s+avjei7iiA8IHViYWd1cnVtYVwgOwor5oOo5q275L2TIDwgemFuc2hpdGFpXCA7CivloIXniakgPCBrYXRhYnV0c3VcIDsKK+mBi+aQrOS6uiA8IHVucGFuJyduaW5cIDsKK+aKl+eUn+WJpCA8IGtvdXNlaXphaVwgOwor5Zu96YmEIDwga29rdXRldHN1XCA7Civop5LmqL0gPCB0c3Vub2RhcnVcIDsKK+aSg+a7hSA8IGdla2ltZXRzdVwgOwor5LiW6L+36KiAIDwgeW9tYWlnb3RvXCA7CivkvJ3oqIDmnb8gPCBkZW5nb25iYW5cIDsKK+iHqueri+iqniA8IGppcml0c3Vnb1wgOwor57On56ejIDwgcnlvdW1hdHN1XCA7CivnhrHluK/mnpcgPCBuZXR0YWlyaW5cIDsKK+awuOS5heaApyA8IGVpa3l1dXNlaVwgOwor6KO95pys5bGLIDwgc2VpaG9uJyd5YVwgOwor5rG96LuK6LODIDwga2lzaGFjaGluXCA7CivpmqPlrqQgPCByaW5zaGl0c3VcIDsKK+emgeijj+anmCA8IGtpbnJpc2FtYVwgOwor5oWj55So5Y+lIDwga2FuJyd5b3VrdVwgOwor6Kaz5YWJ5ZywIDwga2Fua291Y2hpXCA7CivkvJropovogIUgPCBrYWlrZW5zaGFcIDsKK+adseWkqee0hSA8IHRvdXRlbmtvdVwgOwor6Kaz5YWJ5ZujIDwga2Fua291ZGFuXCA7CivmioDlt6fnmoQgPCBnaWtvdXRla2lcIDsKK+alvemaoOWxhSA8IHJha3Vpbmt5b1wgOwor6auY6YCf5bqmIDwga291c29rdWRvXCA7Civnp4HnlJ/lrZAgPCBzaGlzZWlzaGlcIDsKK+aXpeiomOW4syA8IG5pa2tpY2hvdVwgOwor5pS/5rK75a2mIDwgc2VpamlnYWt1XCA7CivlpJbku5ggPCBzb3RvZHp1a2VcIDsKK+awtOeQhuWtpiA8IHN1aXJpZ2FrdVwgOwor5q+N5a2Q5a+uIDwgYm9zaGlyeW91XCA7CivnnYDlv4PlnLAgPCBraWdva29jaGlcIDsKK+Wkj+S9nCA8IG5hdHN1c2FrdVwgOwor5oiS5Y6z5LukIDwga2FpZ2VucmVpXCA7CivmipXkuI7ph48gPCB0b3V5b3J5b3VcIDsKK+eFp+WwuiA8IHNob3VzaGFrdVwgOwor5oSP5rCX6LuS6auYIDwgaWtpa2Vua291XCA7Civpm6rlhY4gPCB5dWtpdXNhZ2lcIDsKK+WTuuS5s+mhniA8IGhvbnl1dXJ1aVwgOwor5aSn6J2Z6J2gIDwgb29rb3Vtb3JpXCA7CivnhKHmipXnpaggPCBtdXRvdWh5b3VcIDsKK+aMh+S6huWbsyA8IHNoaXJ5b3V6dVwgOwor6YGp5b+c5oCnIDwgdGVraW91c2VpXCA7CivopbLniLUgPCBzaHV1c2hha3VcIDsKK+a8q+aJjeW4qyA8IG1hbnphaXNoaVwgOwor5LqL5qWt56iOIDwgamlneW91emVpXCA7Civlj47lrrnmiYAgPCBzaHV1eW91am9cIDsKK+WbveeSveabuCA8IGtva3VqaXNob1wgOwor5oSf6Kaa5ZmoIDwga2Fua2FrdWtpXCA7CivmlZnogrLosrsgPCBreW91aWt1aGlcIDsKK+WbuuWumue1piA8IGtvdGVpa3l1dVwgOwor5bGV6Kan5LyaIDwgdGVucmFua2FpXCA7CivkuqTku6PliLYgPCBrb3V0YWlzZWlcIDsKK+mYnSA8IGtvemF0b2hlblwgOwor6KaG5ruFIDwgZnVrdW1ldHN1XCA7Civlt6HoppboiYcgPCBqdW5zaGl0ZWlcIDsKK+W3oeimluiIuSA8IGp1bnNoaXNlblwgOwor5rGO6Zai5pWwIDwgaGFua2Fuc3V1XCA7CivlhajkurrnlJ8gPCB6ZW5qaW5zZWlcIDsKK+aWreW8t+W6piA8IGRhbmt5b3Vkb1wgOwor5Yem5aWz5L2cIDwgc2hvam9zYWt1XCA7CivlgIvmgKfnmoQgPCBrb3NlaXRla2lcIDsKK+WiqOWjtyA8IHN1bWl0c3Vib1wgOwor5YWo6Z+z6ZqOIDwgemVuJydvbmthaVwgOwor6KqF5LyQIDwgY2h1dWJhdHN1XCA7Civlj43kubHogIUgPCBoYW5yYW5zaGFcIDsKK+i7vemfs+alvSA8IGtlaW9uZ2FrdVwgOwor5Zue5b6p5pyfIDwga2FpZnVrdWtpXCA7CivkuI3lkIjmoLwgPCBmdWdvdWtha3VcIDsKK+WRqOazouioiCA8IHNodXVoYWtlaVwgOwor5LiN5Y+v5qygIDwgZnVrYWtldHN1XCA7CivmlL7lh7ogPCBob3VzaHV0c3VcIDsKK+e1gualtSA8IHNodXVreW9rdVwgOwor56Gs5YyW55eHIDwga291a2FzaG91XCA7CivpgIblirnmnpwgPCBneWFra291a2FcIDsKK+ijuOe3miA8IGhhZGFrYXNlblwgOwor6KaG5rKhIDwgZnVrdWJvdHN1XCA7CivkuIDnrYnlm70gPCBpdHRvdWtva3VcIDsKK+WFqOWwgeWcsCA8IHplbmhvdWNoaVwgOwor5YiG6YWN6YeRIDwgYnVucGFpa2luXCA7Civoqp7lsL7lpInljJYgPCBnb2JpaGVua2FcIDsKK+WbnumBiuiIuSA8IGthaXl1dXNlblwgOwor5YWs5Lya5aCCIDwga291a2FpZG91XCA7CivnhKHooajmg4UgPCBtdWh5b3Vqb3VcIDsKK+eFqeWeiyA8IHVydXNhZ2F0YVwgOwor5rC06aSD5a2QIDwgc3VpZ3lvdXphXCA7CivoqZTli4UgPCBzaG91Y2hva3VcIDsKK+miqOWcn+eXhSA8IGZ1dWRvYnlvdVwgOwor5pSv5Ye6IDwgc2hpc2h1dHN1XCA7CivpgIPpgb/nmoQgPCB0b3VoaXRla2lcIDsKK+WPpOaWh+WtpiA8IGtvYnVuZ2FrdVwgOwor5YSq562J55SfIDwgeXV1dG91c2VpXCA7CivntqLlr4YgPCBjaHV1bWl0c3VcIDsKK+WbuuWumuelqCA8IGtvdGVpaHlvdVwgOwor5a++5ZCR6LuKIDwgdGFpa291c2hhXCA7CivntYTmm7IgPCBrdW1pa3lva3VcIDsKK+S6i+alreeVjCA8IGppZ3lvdWthaVwgOwor5om55Yik55qEIDwgaGloYW50ZWtpXCA7CivlpKnlnLDkurogPCB0ZW5jaGlqaW5cIDsKK+ihgOe1seabuCA8IGtldHRvdXNob1wgOwor5Lit5LqM6ZqOIDwgY2h1dW5pa2FpXCA7CivntpnlrqQgPCBrZWlzaGl0c3VcIDsKK+WbveihqCA8IGt1bmlvbW90ZVwgOwor5bGx6JGh6JCEIDwgeWFtYWJ1ZG91XCA7Civpu4TpgZPpnaIgPCBrb3Vkb3VtZW5cIDsKK+WPl+mbo+mAsSA8IGp1bmFuc2h1dVwgOwor5bCK5Y6z5q27IDwgc29uZ2Vuc2hpXCA7CivogIPlj6TlraYgPCBrb3Vrb2dha3VcIDsKK+S/nemZuuiovCA8IGhva2Vuc2hvdVwgOwor6auY5YiG5a2QIDwga291YnVuc2hpXCA7CivlhqXliqDph5EgPCBteW91Z2FraW5cIDsKK+WGheWcsOexsyA8IG5haWNoaW1haVwgOwor5p6v6JGJ5YmkIDwga2FyZWhhemFpXCA7Civnt6DliIcgPCBzaGltZWtpcmlcIDsKK+aLm+W+heaXpSA8IHNob3V0YWliaVwgOwor6KqT6aGY5qipIDwgc2VpZ2Fua2VuXCA7CivmhJvlm73ogIUgPCBhaWtva3VzaGFcIDsKK+iotOmhmOS6uiA8IHNvZ2FuJyduaW5cIDsKK+mgmOS6i+mkqCA8IHJ5b3VqaWthblwgOwor5Li754qv6ICFIDwgc2h1aGFuc2hhXCA7CivpmLLorbflo4EgPCBib3Vnb2hla2lcIDsKK+izh+mHkea6kCA8IHNoaWtpbmdlblwgOwor6byg5ZKs55eHIDwgc29rb3VzaG91XCA7CivkuInph43nm5cgPCBzYW5qdXV0b3VcIDsKK+mAo+S9k+W9oiA8IHJlbnRhaWtlaVwgOwor5Zyf6ImyIDwgdHN1Y2hpaXJvXCA7Civnj77mrrXpmo4gPCBnZW5kYW5rYWlcIDsKK+aIkOW5tOiAhSA8IHNlaW5lbnNoYVwgOwor6YeR6Kej56aBIDwga2lua2Fpa2luXCA7Civnvr3lrZDnqoEgPCBoYW5ldHN1a2lcIDsKK+a0l+a/r+eyiSA8IHNlbnRha3Vrb1wgOwor5YWJ5YyW5a2mIDwga291a2FnYWt1XCA7CivovrLlrabpg6ggPCBub3VnYWt1YnVcIDsKK+S4u+S7u+WItiA8IHNodW5pbnNlaVwgOwor6Iie6LiP5pyNIDwgYnV0b3VmdWt1XCA7CivntYzpqJPoq5YgPCBrZWlrZW5yb25cIDsKK+e1jOmok+irhyA8IGtlaWtlbmRhblwgOwor5o6l57aaIDwgc2V0c3V6b2t1XCA7Civmk6bpgY7lgrcgPCBzYWtrYXNob3VcIDsKK+exs+eykiA8IGtvbWV0c3VidVwgOwor57Of5rysIDwga2FzdWR6dWtlXCA7Civlm5vph43lpY8gPCBzaGlqdXVzb3VcIDsKK+i4nSA8IGt1cnVidXNoaVwgOwor55u45a++5YCkIDwgc291dGFpY2hpXCA7Civmr43lrZDlhbEgPCBib3NoaXRvbW9cIDsKK+mJhOeBq+W3uyA8IHRla2thbWFraVwgOwor6Iux5L2c5paHIDwgZWlzYWt1YnVuXCA7CivmiKbou4rlhbUgPCBzZW5zaGFoZWlcIDsKK+WGjeaKleeovyA8IHNhaXRvdWtvdVwgOwor5pWZ6aSK6YOoIDwga3lvdXlvdWJ1XCA7Civnq4vms5XmqKkgPCByaXBwb3VrZW5cIDsKK+WmpeWNlOeCuSA8IGRha3lvdXRlblwgOwor6Zuy5LuZ5bKzIDwgdW56ZW5kYWtlXCA7Civlj5fpoJjmm7ggPCBqdXJ5b3VzaG9cIDsKK+S4jea0u+WMliA8IGZ1a2F0c3VrYVwgOwor5paH56ug6KqeIDwgYnVuc2hvdWdvXCA7CivpnZLkv6Hlj7cgPCBhb3NoaW5nb3VcIDsKK+aZguioiOeavyA8IHRva2VpemFyYVwgOwor5bm95Yal55WMIDwgeXV1bWVpa2FpXCA7Civln7fooYzlkI8gPCBzaGlra291cmlcIDsKK+etiemrmOe3miA8IHRvdWtvdXNlblwgOwor57We6aaW5Y+wIDwga291c2h1ZGFpXCA7CivnoLTmk6bpn7MgPCBoYXNhdHN1b25cIDsKK+mAgeWPl+S/oSA8IHNvdWp1c2hpblwgOwor5pKr5a2QIDwgbmFkZXNoaWtvXCA7CivkuIDnpZ7oq5YgPCBpc3NoaW5yb25cIDsKK+edgOmBk+alvSA8IGtpZG91cmFrdVwgOwor5piO5b6M5bm0IDwgbXlvdWdvbmVuXCA7Civms5Xli5nnnIEgPCBob3VtdXNob3VcIDsKK+mFtee0oOWtpiA8IGtvdXNvZ2FrdVwgOwor57Og5rK5IDwgbnVrYWFidXJhXCA7CivplbfniakgPCBjaG91YnV0c3VcIDsKK+Wbs+WDj+WtpiA8IHp1em91Z2FrdVwgOwor5aWJ5Yqg5bizIDwgaG91Z2FjaG91XCA7CivmhJ/lmIboqZ4gPCBrYW50YW5zaGlcIDsKK+WJjeWjsuWIuCA8IG1hZXVyaWtlblwgOwor6Kaq5b+DIDwgb3lhZ29rb3JvXCA7CivooYboqqwgPCBzaHV1c2V0c3VcIDsKK+W/l+mhmOWFtSA8IHNoaWdhbmhlaVwgOwor5Y+N5bCE5YWJIDwgaGFuc2hha291XCA7Civnmq7ntLDlt6UgPCBrYXdhemFpa3VcIDsKK+W+qeawtOWZqCA8IGZ1a3VzdWlraVwgOwor6Zai6YCj5oCnIDwga2FucmVuc2VpXCA7CivntbHoqp7lraYgPCB0b3Vnb2dha3VcIDsKK+e1tuWmmSA8IHpldHN1bXlvdVwgOwor6Kyb5ryU5paZIDwga291ZW5yeW91XCA7CivmlazogIHkvJogPCBrZWlyb3VrYWlcIDsKK+aZgumWk+i7uCA8IGppa2FuamlrdVwgOwor5Y+N5a++5YWaIDwgaGFudGFpdG91XCA7CivmkK3kuZfogIUgPCB0b3Vqb3VzaGFcIDsKK+S5neWIhuS5neWOmCA8IGt1YnVrdXJpblwgOwor57O45qGcIDwgaXRvemFrdXJhXCA7CivnpL7msJHlhZogPCBzaGFtaW50b3VcIDsKK+e1nummluWIkSA8IGtvdXNodWtlaVwgOwor5Ym15bu66ICFIDwgc291a2Vuc2hhXCA7CivmnIDlpKfpmZAgPCBzYWlkYWlnZW5cIDsKK+mZs+WIlyA8IGNoaW5yZXRzdVwgOwor57O45p+zIDwgaXRveWFuYWdpXCA7CivmpZPlrZDpppkgPCBmdXVzaGlrb3VcIDsKK+a3t+aIkOWyqSA8IGtvbnNlaWdhblwgOwor5Z+35ouXIDwgc2hpdHN1eW91XCA7CivntJnnspjlnJ8gPCBrYW1pbmVuZG9cIDsKK+adoeS7tuaWhyA8IGpvdWtlbmJ1blwgOwor5oSP6K2Y5L2TIDwgaXNoaWtpdGFpXCA7Civnp4HkvIHmpa0gPCBzaGlraWd5b3VcIDsKK+epuuaooeanmCA8IHNvcmFtb3lvdVwgOwor5YWs5pyJ5p6XIDwga291eXV1cmluXCA7CivlsbHmsLTmpbwgPCBzYW5zdWlyb3VcIDsKK+ijgyA8IGthbWlzaGltb1wgOwor5a+E55WZ5ZywIDwga2lyeXV1Y2hpXCA7Civmlq3liZvmgKcgPCBkYW5nb3VzZWlcIDsKK+epuuWFg+awlyA8IGthcmFnZW5raVwgOwor6KGkIDwga29yb21vaGVuXCA7CivmiZPnrpfnmoQgPCBkYXNhbnRla2lcIDsKK+mAgOiUteWTgSA8IHRhaXpvdWhpblwgOwor6Kaq5a+GIDwgc2hpbm1pdHN1XCA7CivlvbHpn7/lnI8gPCBlaWt5b3VrZW5cIDsKK+ecn+WWhOe+jiA8IHNoaW56ZW5iaVwgOwor5omL6KGT6KGjIDwgc2h1anV0c3VpXCA7CivkurrplpPmhJsgPCBuaW5nZW4nJ2FpXCA7CivnkIbnn6XnmoQgPCByaWNoaXRla2lcIDsKK+etkumfsyA8IHRzdXRzdW90b1wgOwor55Cl54+A6ImyIDwga29oYWt1aXJvXCA7CivlvqHolK3mp5ggPCBva2FnZXNhbWFcIDsKK+avm+e0sOeuoSA8IG1vdXNhaWthblwgOwor57SL5omAIDwgbW9uZG9rb3JvXCA7CivooovntrIgPCBmdWt1cm9hbWlcIDsKK+eZveiDoem6uyA8IHNoaXJvZ29tYVwgOwor6Ieq5bex6KaP5Yi2IDwgamlrb2tpc2VpXCA7CivkuLvkurrlhawgPCBzaHVqaW5rb3VcIDsKK+WQjOWnlOWToeS8miA8IGRvdWlpbmthaVwgOwor5Lq66ZaT5oCnIDwgbmluZ2Vuc2VpXCA7CivljZjlrZTpoZ4gPCB0YW5rb3VydWlcIDsKK+WQjOWKtOiAhSA8IGRvdXJvdXNoYVwgOwor5Y2z5pmC5oCnIDwgc29rdWppc2VpXCA7CivkubPlkZHlhZAgPCBjaGlub21pZ29cIDsKK+S4jeW+s+a8oiA8IGZ1dG9rdWthblwgOwor6YGt6YGH5oimIDwgc291Z3V1c2VuXCA7CivoqIDkvJ0gPCBrb3RvZHp1dGVcIDsKK+WPiOWutuadpSA8IG1hdGFnZXJhaVwgOwor54Gr5p+xIDwgaGliYXNoaXJhXCA7CivkuIDlprvlpJrlpKsgPCBpc3NhaXRhZnVcIDsKK+mWpeaXjyA8IGJhdHN1em9rdVwgOwor5q2j5pu45rOVIDwgc2Vpc2hvaG91XCA7Civni6zoh6rmgKcgPCBkb2t1amlzZWlcIDsKK+W8geiyoeWkqSA8IGJlbnphaXRlblwgOwor5Yuk5YuZ5YWIIDwga2lubXVzYWtpXCA7Civop5Llj4kgPCB0c3Vub21hdGFcIDsKK+aMgeS5heaIpiA8IGppa3l1dXNlblwgOwor6YeN6KaB6KaWIDwganV1eW91c2hpXCA7CivnqbrmooXpm6ggPCBrYXJhdHN1eXVcIDsKK+a3t+aIkOWboyA8IGtvbnNlaWRhblwgOwor5LiN5q2j6KGM54K6IDwgZnVzZWlrb3VpXCA7CivmipzpjKggPCBiYXRzdWJ5b3VcIDsKK+eBq+WPo+WjgSA8IGtha291aGVraVwgOwor5pmC6ZaT6KGoIDwgamlrYW5oeW91XCA7CivnoILliKnpgZMgPCBqYXJpbWljaGlcIDsKK+S8muioiOWumCA8IGthaWtlaWthblwgOwor6LOk5qWt5ammIDwgc2VuZ3lvdWZ1XCA7CivntYzpqJPogIUgPCBrZWlrZW5zaGFcIDsKK+mfk+WbveiqniA8IGhhbmtva3Vnb1wgOwor5pWZ5p2Q6LK7IDwga3lvdXphaWhpXCA7Civlm73nq4sgPCBrb2t1cml0c3VcIDsKK+WLneWIqeiAhSA8IHNob3VyaXNoYVwgOwor5r2c5LyP5pyfIDwgc2VucHVrdWtpXCA7CivlpKflm6PlhoYgPCBkYWlkYW4nJ2VuXCA7CivljYjliY3mp5ggPCBnb3plbnNhbWFcIDsKK+a1t+a9rumfsyA8IGthaWNob3VvblwgOwor5q2j54qv6ICFIDwgc2VpaGFuc2hhXCA7Civlj6/lnKfmgKcgPCBrYWF0c3VzZWlcIDsKK+iIueWkp+W3pSA8IGZ1bmFkYWlrdVwgOwor5Zyf5Zyw5p+EIDwgdG9jaGlnYXJhXCA7CivnmbvoiLfnpLwgPCB0b3VnZW5yZWlcIDsKK+a/gOeqgSA8IGdla2l0b3RzdVwgOwor5pS/5bqc562LIDwgc2VpZnVzdWppXCA7CivmtLvmgKfliaQgPCBrYXNzZWl6YWlcIDsKK+WPjeS9k+WItiA8IGhhbnRhaXNlaVwgOwor6Je76I+M6aGeIDwgc291a2lucnVpXCA7Civmu5Hnn7PnsokgPCBrYXNzZWtpa29cIDsKK+e3qeihneWZqCA8IGthbnNob3VraVwgOwor6bOp57696ImyIDwgaGF0b2JhaXJvXCA7CivpoZXlvq7pj6EgPCBrZW5iaWt5b3VcIDsKK+WQjeW6l+ihlyA8IG1laXRlbmdhaVwgOwor5Yip5LyR6ImyIDwgcmlreXV1aXJvXCA7Civlm73kuovniq8gPCBrb2t1amloYW5cIDsKK+mWgOadviA8IGthZG9tYXRzdVwgOwor5re35oiQ5ZOBIDwga29uc2VpaGluXCA7CivliIbphY3ogIUgPCBidW5wYWlzaGFcIDsKK+WNiumAj+aYjiA8IGhhbnRvdW1laVwgOwor5YiG5rC057eaIDwgYnVuc3Vpc2VuXCA7CivpgYrmiK/nmoQgPCB5dXVnaXRla2lcIDsKK+i/keimluecvCA8IGtpbnNoaWdhblwgOwor5Lya6KiI5aOrIDwga2Fpa2Vpc2hpXCA7CivmipzpgZMgPCBudWtlbWljaGlcIDsKK+WIneW5tOWFtSA8IHNob25lbmhlaVwgOwor5ZCM5bm06LypIDwgZG91bmVucGFpXCA7Civnj43nhKHpoZ4gPCBjaGlubXVydWlcIDsKK+euneWPo+S7pCA8IGthbmtvdXJlaVwgOwor5ZCI5rOV5oCnIDwgZ291aG91c2VpXCA7Civnt4/poJjkuosgPCBzb3VyeW91amlcIDsKK+W3nuaUv+W6nCA8IHNodXVzZWlmdVwgOwor5ZWG5YuZ5a6YIDwgc2hvdW11a2FuXCA7CivplbfmnIggPCBuYWdhdHN1a2lcIDsKK+W/nOaOpemWkyA8IG91c2V0c3VtYVwgOwor6KGA6IKJIDwga2V0c3VuaWt1XCA7Civlj4LkvJrogIUgPCBzYW5rYWlzaGFcIDsKK+S6lOS6uue1hCA8IGdvbmluZ3VtaVwgOwor6buE5rC05pm2IDwga2l6dWlzaG91XCA7CivlhoXoo4/mp5ggPCBkYWlyaXNhbWFcIDsKK+Wkp+ihhuWMliA8IHRhaXNodXVrYVwgOwor6YeN5aSn5oCnIDwganV1ZGFpc2VpXCA7CivlpJblm73oqp4gPCBnYWlrb2t1Z29cIDsKK+ePvueKtue2reaMgSA8IGdlbmpvdWlqaVwgOwor5Yui5Yqb5a62IDwgc2Vpcnlva2thXCA7Civlo7Dmpb3lrrYgPCBzZWlnYWt1a2FcIDsKK+ijvemdtOalrSA8IHNlaWthZ3lvdVwgOwor57Sb5aSxIDwgZnVuc2hpdHN1XCA7CivnrrHppqzou4ogPCBoYWtvYmFzaGFcIDsKK+WuruWGheecgSA8IGt1bmFpc2hvdVwgOwor5Zyf54miIDwgdHN1Y2hpcm91XCA7Civkuovmpa3miYAgPCBqaWd5b3VzaG9cIDsKK+epv+WxseeUsiA8IHNlbnphbmtvdVwgOwor6Ieo5riv57eaIDwgcmlua291c2VuXCA7CivllK/lkI3oq5YgPCB5dWltZWlyb25cIDsKK+exs+ayuSA8IGtvbWVhYnVyYVwgOwor5pS56YCg6LuKIDwga2Fpem91c2hhXCA7Civpu4Tph5Hlm70gPCBvdWdvbmtva3VcIDsKK+iKi+e+iue+uSA8IGltb3lvdWthblwgOwor5pu055Sf5ZOBIDwga291c2VpaGluXCA7CivluoPlsI/ot68gPCBoaXJva291amlcIDsKK+eti+mBkyA8IHN1amltaWNoaVwgOwor56m66L+U5LqLIDwgc29yYWhlbmppXCA7Civnr7Pnr6UgPCBoaWNoaXJpa2lcIDsKK+iFkOakjeWcnyA8IGZ1c2hva3Vkb1wgOwor5qyh5ZaE562WIDwgaml6ZW5zYWt1XCA7Civnvo7ovp7pupflj6UgPCBiaWppcmVpa3VcIDsKK+mBoOecvOmPoSA8IHRvb21lZ2FuZVwgOwor5Ym16YCg6ICFIDwgc291em91c2hhXCA7CivkvJHpm7vml6UgPCBreXV1ZGVuYmlcIDsKK+adv+mWgOW6lyA8IGhhbm1vbnRlblwgOwor6KGd56qBIDwgc2hvdXRvdHN1XCA7CivlsI7lhaXpg6ggPCBkb3VueXV1YnVcIDsKK+emheWVj+etlCA8IHplbm1vbmRvdVwgOwor6KSH5pWw5YCLIDwgZnVrdXN1dWtvXCA7Civnm7LlrabmoKEgPCBtb3VnYWtrb3VcIDsKK+eglOS/ruiqsiA8IGtlbnNodXVrYVwgOwor5by+5oCn5L2TIDwgZGFuc2VpdGFpXCA7CivnsbPmq4MgPCBrb21lYml0c3VcIDsKK+eMruWRiOacrCA8IGtlbnRlaWJvblwgOwor5bC+6ZW36baPIDwgb25hZ2Fkb3JpXCA7CivmlL7pgIHntrIgPCBob3Vzb3Vtb3VcIDsKK+m6u+mFlOiWrCA8IG1hc3VpeWFrdVwgOwor5Y2D5bm057SAIDwgc2VuJyduZW5raVwgOwor5YOn5bi95byBIDwgc291Ym91YmVuXCA7CivlpKrpvJPohbkgPCB0YWlrb2JhcmFcIDsKK+S4jeiogOS4jeiqniA8IGZ1Z2VuZnVnb1wgOwor5YmN6KOF56CyIDwgemVuc291aG91XCA7CivliIbpgaPpmoogPCBidW5rZW50YWlcIDsKK+WQueWlj+iAhSA8IHN1aXNvdXNoYVwgOwor56uc6aqoIDwgcnl1dWtvdHN1XCA7Civlpb3op5LlrrYgPCBrb3VrYWt1a2FcIDsKK+e1kOS6hiA8IGtldHN1cnlvdVwgOwor5oKq5aSp5YCZIDwgYWt1dGVua291XCA7CivmjqjpgLLmqZ8gPCBzdWlzaGlua2lcIDsKK+aJmOmJoiA8IHRha3VoYXRzdVwgOwor6Ymk5Y2B5a2XIDwga2FnaWp1dWppXCA7CivkubHmsJfmtYEgPCByYW5raXJ5dXVcIDsKK+WGt+WHjeWJpCA8IHJlaXRvdXphaVwgOwor5Yid5a++6Z2iIDwgc2hvdGFpbWVuXCA7Civplo/lubQgPCB1cnV1ZG9zaGlcIDsKK+erjSA8IGRla2FyaXR0b1wgOwor5pyq5Y+O6LyJIDwgbWlzaHV1c2FpXCA7Civll5zlpb3lk4EgPCBzaGlrb3VoaW5cIDsKK+aCquWkqeS9vyA8IGFrdXRlbnNoaVwgOwor5by35YyW57GzIDwga3lvdWthbWFpXCA7CivmsLTpm7foiYcgPCBzdWlyYWl0ZWlcIDsKK+ims+alk+S8miA8IGthbnB1dWthaVwgOwor5L2T6aiT6KuHIDwgdGFpa2VuZGFuXCA7CivnhKHmhJ/oppogPCBtdWthbmtha3VcIDsKK+e+pOmAn+W6piA8IGd1bnNva3Vkb1wgOwor6Zu757eP56CUIDwgZGVuc291a2VuXCA7CivkuI3norrlrpogPCBmdWtha3V0ZWlcIDsKK+eZveeZvuWQiCA8IHNoaXJheXVyaVwgOwor6Iie6LiK5YqHIDwgYnV5b3VnZWtpXCA7Civngavlj6PkuJggPCBrYWtvdWt5dXVcIDsKK+S4jeato+eiuiA8IGZ1c2Vpa2FrdVwgOwor56+A57SEIDwgc2V0c3V5YWt1XCA7Civpmb3lrZDnt5ogPCB5b3VzaGlzZW5cIDsKK+S4i+mDqOapn+mWoiA8IGthYnVraWthblwgOwor5YCL5Lq66Kqk5beuIDwga29qaW5nb3NhXCA7CivmmYLplpPntaYgPCBqaWthbmt5dXVcIDsKK+WIhuawtOeVjCA8IGJ1bnN1aWthaVwgOwor5Lmx5Y+N5bCEIDwgcmFuaGFuc2hhXCA7Civop6PnrZTmrIQgPCBrYWl0b3VyYW5cIDsKK+mtmumbt+iJhyA8IGd5b3JhaXRlaVwgOwor5YWs5pyJ5ZywIDwga291eXV1Y2hpXCA7CivmrLrnnp7nmoQgPCBnaW1hbnRla2lcIDsKK+aYjueereW6piA8IG1laXJ5b3Vkb1wgOwor5Lya6KiI5L+CIDwga2Fpa2Vpa2VpXCA7Civon4fom5kgPCBoaWtpZ2FlcnVcIDsKK+i8uOWFpeeojiA8IHl1bnl1dXplaVwgOwor6JyA6buNIDwgbW9yb2tvc2hpXCA7CivkuI3lv4PlvpcgPCBmdWtva29yb2VcIDsKK+S6jOalreWcsCA8IG5pZ3lvdWNoaVwgOwor5Y2Y5a2Q6KuWIDwgdGFuc2hpcm9uXCA7CivoqLzmi6Dph5EgPCBzaG91a29raW5cIDsKK+eUn+a8lOWljyA8IG5hbWFlbnNvdVwgOwor5b6u5YiG5a2mIDwgYmlidW5nYWt1XCA7CivlsILlvpPogIUgPCBzZW5qdXVzaGFcIDsKK+S7meWPsOS+ryA8IHNlbmRhaWtvdVwgOwor6KGA55y8IDwgY2hpbWFuYWtvXCA7CivnrrjnrrEgPCBoYXNoaWJha29cIDsKK+ikh+W8jyA8IGZ1a3VzaGlraVwgOwor5YWE5byf5oSbIDwga3lvdWRhaWFpXCA7CivkuIfoj6/pj6EgPCBtYW5nZWt5b3VcIDsKK+ilv+WBtCA8IG5pc2hpZ2F3YVwgOwor5pCN5aSxIDwgc29uc2hpdHN1XCA7CivkurrplpPlg48gPCBuaW5nZW56b3VcIDsKK+WbnuW4sOeahCA8IGthaWtpdGVraVwgOwor5biC5rCR56iOIDwgc2hpbWluemVpXCA7Civlr4zlo6vpoY0gPCBmdWppYml0YWlcIDsKK+mXluWFpSA8IGNoaW4nJ255dXVcIDsKK+icgumzpSA8IGhhY2hpZG9yaVwgOwor6ZaL56Wo5omAIDwga2FpaHlvdWpvXCA7CivkvZPogrLppKggPCB0YWlpa3VrYW5cIDsKK+eCuuS9kyA8IHRlaXRhcmFrdVwgOwor5aSJ6Kq/5rOiIDwgaGVuY2hvdWhhXCA7CivlkIznm5/ou40gPCBkb3VtZWlndW5cIDsKK+WRiuiotOS6uiA8IGtva3Vzb25pblwgOwor5a2m5aOr6ZmiIDwgZ2FrdXNoaWluXCA7CivlgKvnkIbnmoQgPCByaW5yaXRla2lcIDsKK+eCuem8u+iWrCA8IHRlbmJpeWFrdVwgOwor5oqV5pu45qyEIDwgdG91c2hvcmFuXCA7CivoqLToqJ/ms5UgPCBzb3Nob3Vob3VcIDsKK+a6tuizqiA8IHlvdXNoaXRzdVwgOwor5Zub5Y2K5YiGIDwgc2hpaGFuYnVuXCA7CivlkLjpn7PmnZAgPCBreXV1b256YWlcIDsKK+WIneS9k+mokyA8IHNob3RhaWtlblwgOwor6Ly45YWl55ukIDwgeXVueXV1YmFuXCA7CivkuI3nn6XngasgPCBzaGlyYW51aGlcIDsKK+WNtee0sOiDniA8IHJhbnNhaWJvdVwgOwor54Gw5ZyfIDwgaGFpdHN1Y2hpXCA7CivkuozmpbXljJYgPCBuaWt5b2t1a2FcIDsKK+WNl+S6rOmMoCA8IG5hbmtpbmpvdVwgOwor6bOp5pmC6KiIIDwgaGF0b2Rva2VpXCA7Civlk7rkubPnk7YgPCBob255dXViaW5cIDsKK+ilv+a0i+miqCA8IHNlaXlvdWZ1dVwgOwor5pei6KO95pyNIDwga2lzZWlmdWt1XCA7Civoh6rnlLHmhI/lv5cgPCBqaXl1dWlzaGlcIDsKK+mHjuWkluWKhyA8IHlhZ2FpZ2VraVwgOwor5pmu6YGN55qEIDwgZnVoZW50ZWtpXCA7Civkuovmpa3lm6MgPCBqaWd5b3VkYW5cIDsKK+Wwj+W9ueS6uiA8IGtveWFrdW5pblwgOwor6bOl5aqS6IqxIDwgY2hvdWJhaWthXCA7Civoh6rmsrvpoJggPCBqaWNoaXJ5b3VcIDsKK+ijj+aJiSA8IHVyYXRvYmlyYVwgOwor56C05aOK55qEIDwgaGFrYWl0ZWtpXCA7CivmkKzlh7ogPCBoYW5zaHV0c3VcIDsKK+eqruaOquWkpyA8IGt5dXVzb2RhaVwgOwor6YGU56Oo6Ii5IDwgZGFydW1hc2VuXCA7CivlhoXlnKjmgKcgPCBuYWl6YWlzZWlcIDsKK+Wwj+iNt+eJqSA8IGtvbmltb3RzdVwgOwor5pel57O75Lq6IDwgbmlra2VpamluXCA7Civnsr7npZ7np5EgPCBzZWlzaGlua2FcIDsKK+S4gOWQiOebriA8IGljaGlnb3VtZVwgOwor5L2P5bGF6LehIDwganV1a3lvYXRvXCA7Civlho3mipflvIEgPCBzYWlrb3ViZW5cIDsKK+i+suS9nOalrSA8IG5vdXNhZ3lvdVwgOwor6J6i5YWJ54eIIDwga2Vpa291dG91XCA7Civku5jlubTooaggPCBmdW5lbnB5b3VcIDsKK+ato+iqpOihqCA8IHNlaWdvaHlvdVwgOwor6KOP5oOFIDwgdXJhbmFzYWtlXCA7Civlm5vovKrou4ogPCB5b25yaW5zaGFcIDsKK+ifh+iCoSA8IGthZXJ1bWF0YVwgOwor5LiJ6YeN5aWPIDwgc2FuanV1c291XCA7Civkv53oqLzmm7ggPCBob3Nob3VzaG9cIDsKK+WQpuWumueahCA8IGhpdGVpdGVraVwgOwor5LiN6YCj57aaIDwgZnVyZW56b2t1XCA7Civmrabmlq3nmoQgPCBidWRhbnRla2lcIDsKK+WHuuepguacnyA8IHNodXNzdWlraVwgOwor5LiK5Y2K5pyfIDwga2FtaWhhbmtpXCA7CivljZjlrZDokYkgPCB0YW5zaGl5b3VcIDsKK+W+ruWIhuWVhiA8IGJpYnVuc2hvdVwgOwor6KGA54WZIDwgY2hpa2VtdXJpXCA7CivnvqnlhYTlvJ8gPCBnaWt5b3VkYWlcIDsKK+ikh+e0oOaVsCA8IGZ1a3Vzb3N1dVwgOwor6Lui5qCh55SfIDwgdGVua291c2VpXCA7CivmmLzlpJzluK8gPCBjaHV1eWFvYmlcIDsKK+S6i+S7tuihqCA8IGppa2VuaHlvdVwgOwor5by356Gs5rS+IDwga3lvdWtvdWhhXCA7CivmjpLmsJfph48gPCBoYWlraXJ5b3VcIDsKK+S6jOasoeiomOaGtiA8IG5pamlraW9rdVwgOwor5aWz5paH5a2XIDwgb24nJ25hbW9qaVwgOwor54Sh5omA5bGeIDwgbXVzaG96b2t1XCA7Civlkajms6LmlbAgPCBzaHV1aGFzdXVcIDsKK+eMm+emvemhniA8IG1vdWtpbnJ1aVwgOwor55Sf5oWL57O7IDwgc2VpdGFpa2VpXCA7Civmu5HokL0gPCBrYXRzdXJha3VcIDsKK+aMgeeJqSA8IG1vY2hpbW9ub1wgOwor5pWj5paH6KmpIDwgc2FuYnVuc2hpXCA7CivmoL3ln7nnqK4gPCBzYWliYWlzaHVcIDsKK+WOn+iRl+iAhSA8IGdlbmNob3NoYVwgOwor6Zu76Kmx5paZIDwgZGVud2FyeW91XCA7CivmioDog73os54gPCBnaW5vdXNob3VcIDsKK+aWmemHkeaJgCA8IHJ5b3VraW5qb1wgOwor5pSv6YWN6ICFIDwgc2hpaGFpc2hhXCA7CivmtJfmv6/lsYsgPCBzZW50YWt1eWFcIDsKK+WBtOi/keiAhSA8IHNva2tpbnNoYVwgOwor6ZaA5Y+jIDwga2Fkb2d1Y2hpXCA7Civlrp/npL7kvJogPCBqaXNzaGFrYWlcIDsKK+W+oemAo+e1oSA8IGdvcmVucmFrdVwgOwor6aaZ5bed55yMIDwga2FnYXdha2VuXCA7Civngrnmu7TlmaggPCB0ZW50ZWtpa2lcIDsKK+S6iOWumuihqCA8IHlvdGVpaHlvdVwgOwor5byB6K235paZIDwgYmVuZ29yeW91XCA7CivkuLvopoHpp4UgPCBzaHV5b3Vla2lcIDsKK+WMuuS8muitsOWToSA8IGt1a2FpZ2lpblwgOwor5oyf5q66IDwga3lvdXNhdHN1XCA7Civlr77lv5znrZYgPCB0YWlvdXNha3VcIDsKK+i8uOWFpea4ryA8IHl1bnl1dWtvdVwgOwor5ZCM5b+X5LyaIDwgZG91c2hpa2FpXCA7Civov47mkoPmqZ8gPCBnZWlnZWtpa2lcIDsKK+S6uuWcsOWQjSA8IGppbmNoaW1laVwgOwor5L+d6Zm65paZIDwgaG9rZW5yeW91XCA7CivlpKflkozoiosgPCB5YW1hdG9pbW9cIDsKK+mrmOWEquWFiCA8IGtvdXl1dXNlblwgOwor5pS+6YCB5rOVIDwgaG91c291aG91XCA7CivnpLrlipvlm7MgPCBqaXJ5b2t1enVcIDsKK+WPpOS6i+iomOS8nSA8IGtvamlraWRlblwgOwor6Zuq5aWz6YOOIDwgeXVraWpvcm91XCA7Civooajmm7ggPCBvbW90ZWdha2lcIDsKK+mbtue0sOi+siA8IHJlaXNhaW5vdVwgOwor57OK5LujIDwgbm9yaXNoaXJvXCA7CivnnJ/muIXmsLQgPCBtYXNoaW1penVcIDsKK+WKqeWkquWIgCA8IHN1a2VkYWNoaVwgOwor5YWL5bex5b+DIDwga29ra2lzaGluXCA7CivoqK3oqIjogIUgPCBzZWtrZWlzaGFcIDsKK+eEoeelnuirliA8IG11c2hpbnJvblwgOwor54Sh54K654Sh562WIDwgbXVpbXVzYWt1XCA7CivmnInooovpoZ4gPCB5dXV0YWlydWlcIDsKK+S4gOauuumCoyA8IGlzc2V0c3VuYVwgOwor5b+D55CG5oimIDwgc2hpbnJpc2VuXCA7CivlvqHmrbTmrbQgPCBvcmVraXJla2lcIDsKK+S4jeW5s+etiSA8IGZ1YnlvdWRvdVwgOwor5Yip5bC/5YmkIDwgcmlueW91emFpXCA7CivnqbTpmpkgPCBrZXRzdWdla2lcIDsKK+eJp+atjOeahCA8IGJva2thdGVraVwgOwor5ry46L+R57eaIDwgemVua2luc2VuXCA7CivlrZDlronosp0gPCBrb3lhc3VrYWlcIDsKK+aXheaXpeiomCA8IHRhYmluaWtraVwgOwor5aOy5LiK6YeRIDwgdXJpYWdla2luXCA7Civlj5fntabogIUgPCBqdWt5dXVzaGFcIDsKK+aYjuW5tOW6piA8IG15b3VuZW5kb1wgOwor5LqM5p6a6IiMIDwgbmltYWlqaXRhXCA7CivkuInph43lhqAgPCBzYW5qdXVrYW5cIDsKK+iqmOmbu+WtkCA8IHl1dWRlbnNoaVwgOwor6Yyv6ZuRIDwgc2FrdXphdHN1XCA7CivlnKflr4YgPCBhdHN1bWl0c3VcIDsKK+mWouS/guipniA8IGthbmtlaXNoaVwgOwor57Sh6YyY5b2iIDwgYm91c3Vpa2VpXCA7CivlpYnluaPkvb8gPCBob3VoZWlzaGlcIDsKK+W4guawkeazlSA8IHNoaW1pbmhvdVwgOwor5pyA5pWs56S8IDwgc2Fpa2VpcmVpXCA7CivmpLQgPCB0b2RvbWF0c3VcIDsKK+iLpuWtpueUnyA8IGt1Z2FrdXNlaVwgOwor5bCP55Sf5oSP5rCXIDwga29uYW1haWtpXCA7CivlvpfmhI/lhYggPCB0b2t1aXNha2lcIDsKK+mbqOS7leW6piA8IGFtYWppdGFrdVwgOwor5ZGo5rOi5bivIDwgc2h1dWhhdGFpXCA7CivmvKzniakgPCB0c3VrZW1vbm9cIDsKK+euoeWItuWumCA8IGthbnNlaWthblwgOwor6Jyc6LGGIDwgbWl0c3VtYW1lXCA7CivmvILnnYAgPCBoeW91Y2hha3VcIDsKK+eHg+aWmeiyuyA8IG5lbnJ5b3VoaVwgOwor6YeP6KiY5Y+3IDwgcnlvdWtpZ291XCA7CivnmbrlhYnkvZMgPCBoYWtrb3V0YWlcIDsKK+WNiuWGhuW9oiA8IGhhbicnZW5rZWlcIDsKK+axmuafk+mZpOWOuyA8IG9zZW5qb2t5b1wgOwor5o+Q5Ye6IDwgdGVpc2h1dHN1XCA7CivlhobomavpoZ4gPCBlbmNodXVydWlcIDsKK+aJtumkiue+qeWLmSA8IGZ1eW91Z2ltdVwgOwor5oe45oOz5paHIDwga2Vzb3VidW1pXCA7CivmpJzmva7lmaggPCBrZW5jaG91a2lcIDsKK+WnieWmuee3qCA8IHNoaW1haWhlblwgOwor6KGA57OW5YCkIDwga2V0dG91Y2hpXCA7Civmt7HpnbQgPCBmdWthZ3V0c3VcIDsKK+eEoemHjemHjyA8IG11anV1cnlvdVwgOwor6Zu76Kmx5bizIDwgZGVud2FjaG91XCA7CivljYjliY3kuK0gPCBnb3plbmNodXVcIDsKK+WWtualreaJgCA8IGVpZ3lvdXNob1wgOwor56+A5qyyIDwgc2V0c3V5b2t1XCA7CivnsbPluILloLQgPCBiZWlpY2hpYmFcIDsKK+S4jeWLleW/gyA8IGZ1ZG91c2hpblwgOwor6KKL5bivIDwgZnVrdXJvb2JpXCA7CivlsI/liKTlvaIgPCBrb2JhbmdhdGFcIDsKK+eFp+aYjuWZqCA8IHNob3VtZWlraVwgOwor5b6555Sy5by+IDwgdGVra291ZGFuXCA7Civlrq7lhoXluoEgPCBrdW5haWNob3VcIDsKK+aTrOWPpOS4u+e+qSA8IGdpa29zaHVnaVwgOwor5biC5rCR5qipIDwgc2hpbWlua2VuXCA7CivnqYDpo58gPCBrb2t1c2hva3VcIDsKK+WNiuiIt+egsiA8IGhhbmdlbmhvdVwgOwor5qip5aiB562LIDwga2VuJydpc3VqaVwgOwor5aSJ6Zu75omAIDwgaGVuZGVuc2hvXCA7CivnqY3pm6ogPCBzZWtpc2V0c3VcIDsKK+mbu+ino+a2siA8IGRlbmthaWVraVwgOwor6Zuy5LiK5Lq6IDwgdW5qb3ViaXRvXCA7Civnr4DmppEgPCBmdXNoaWt1cmVcIDsKK+S4gOWRqOW5tCA8IGlzc2h1dW5lblwgOwor6KGA5pePIDwga2V0c3V6b2t1XCA7CivnrqHliLbloZQgPCBrYW5zZWl0b3VcIDsKK+iPr+WOs+e1jCA8IGtlZ29ua3lvdVwgOwor5a++5oOF5aCxIDwgdGFpam91aG91XCA7CivmoLzlpInljJYgPCBrYWt1aGVua2FcIDsKK+aVmeiCsuWutiA8IGt5b3Vpa3VrYVwgOwor5a6J5oGv6aaZIDwgYW5zb2t1a291XCA7Civnn7PpubjmsLQgPCBzZWtrZW5zdWlcIDsKK+S4jeWLieW8tyA8IGZ1YmVua3lvdVwgOwor5aGp5YyW54mpIDwgZW5rYWJ1dHN1XCA7CivkuZ3lr7jkupTliIYgPCBrdXN1bmdvYnVcIDsKK+S4oeeUqOapnyA8IHJ5b3V5b3VraVwgOwor5b2T5LiW6aKoIDwgdG91c2VpZnV1XCA7CivnrZbnlaUgPCBzYWt1cnlha3VcIDsKK+agvOWkqeS6lSA8IGdvdXRlbmpvdVwgOwor5Lit6ICV5qmfIDwgY2h1dWtvdWtpXCA7CivkuI3pganmoLwgPCBmdXRla2tha3VcIDsKK+mBoOW/g+WIhiA8IGVuc2hpbmJ1blwgOwor6Y286KGTIDwgc2hpbmp1dHN1XCA7Civmma7pgJrms5UgPCBmdXRzdXVob3VcIDsKK+Wqkuafk+WJpCA8IGJhaXNlbnphaVwgOwor56C06KOC6Z+zIDwgaGFyZXRzdW9uXCA7CivkuLvoprPoq5YgPCBzaHVrYW5yb25cIDsKK+S6jOeVquS9nCA8IG5pYmFuc2FrdVwgOwor55Sf5ZG957eaIDwgc2VpbWVpc2VuXCA7Civnqbrlr77nqbogPCBrdXV0YWlrdXVcIDsKK+eMm+WQuembqiA8IG1vdWZ1YnVraVwgOwor5ouT5q6WIDwgdGFrdXNob2t1XCA7Civpq5jlsITnoLIgPCBrb3VzaGFob3VcIDsKK+S4gOatqemKgCA8IGljaGlidWdpblwgOwor5aWI6Imv5rysIDwgbmFyYWR6dWtlXCA7CivlvaLosaHljJYgPCBrZWlzaG91a2FcIDsKK+WGheWcsOS6uiA8IG5haWNoaWppblwgOwor55+z5Y2X6IqxIDwgc2hha3VuYWdlXCA7CivlgoDlhKHluKsgPCBrYWlyYWlzaGlcIDsKK+S4gOatqemHkSA8IGljaGlidWtpblwgOwor5aWz6YOO6JyY6JubIDwgam9yb3VndW1vXCA7Civnl6nmiJHmhaIgPCB5YXNlZ2FtYW5cIDsKK+ibmei3syA8IGthZXJ1dG9iaVwgOwor5oKq5Zug57iBIDwgYWt1aW4nJ25lblwgOwor5LiN55yg55eHIDwgZnVtaW5zaG91XCA7Civpm7vop6Pmp70gPCBkZW5rYWlzb3VcIDsKK+azleiPr+WulyA8IGhva2tlc2h1dVwgOwor5LiA556s6ZaTIDwgaXNzaHVua2FuXCA7CivmraPkuInkvY0gPCBzaG91c2FubWlcIDsKK+W8vumBk+W8viA8IGRhbmRvdWRhblwgOwor5re35ZCI5p6XIDwga29uZ291cmluXCA7CivmsLTloqjnlLsgPCBzdWlib2t1Z2FcIDsKK+S6pOaYk+S8miA8IGtvdWVraWthaVwgOwor6auY5qWK5a2QIDwgdGFrYXlvdWppXCA7CivmqKnlqIHnmoQgPCBrZW4nJ2l0ZWtpXCA7CivnpL7nlKjou4ogPCBzaGF5b3VzaGFcIDsKK+WIhuawtOW2uiA8IGJ1bnN1aXJlaVwgOwor5a2Q5L6b55SoIDwga29kb21veW91XCA7CivopqrlrZ3ooYwgPCBveWFrb3Vrb3VcIDsKK+eZuuWwhOetkiA8IGhhc3NoYXRvdVwgOwor5ou+5LiH5YaGIDwganV1bWFuJydlblwgOwor5Yuk55qH5a62IDwga2luJydub3VrYVwgOwor5Lmz5YyW5YmkIDwgbnl1dWthemFpXCA7Civov5HlnLDngrkgPCBraW5jaGl0ZW5cIDsKK+Wcp+WKmyA8IGF0c3VyeW9rdVwgOwor54Sh56u25LqJIDwgbXVreW91c291XCA7CivkuqTpmpvms5UgPCBrb3VzYWlob3VcIDsKK+WPguS4juiAhSA8IHNhbicneW9zaGFcIDsKK+erueeukiA8IHRha2Vib3VraVwgOwor6aOy5paZ5rC0IDwgaW5yeW91c3VpXCA7CivpvLvpnaIgPCBoYW5hZHp1cmFcIDsKK+eni+aXpeWSjCA8IGFraWJpeW9yaVwgOwor5Yy65b255omAIDwga3V5YWt1c2hvXCA7Civnq4vlv5fkvJ0gPCByaXNzaGlkZW5cIDsKK+WkqeenpOajkiA8IHRlbmJpbmJvdVwgOwor5aSJ6Kq/5ZmoIDwgaGVuY2hvdWtpXCA7CivplqLkv4LogIUgPCBrYW5rZWlzaGFcIDsKK+S4jemaj+aEj+etiyA8IGZ1enVpaWtpblwgOwor5aSn5oiQ5YqfIDwgZGFpc2Vpa291XCA7Civkuozkurrnp7AgPCBuaW5pbnNob3VcIDsKK+WBtuWDj+imliA8IGd1dXpvdXNoaVwgOwor5YG26LmE6aGeIDwgZ3V1dGVpcnVpXCA7CivmnaXoqKrogIUgPCByYWlob3VzaGFcIDsKK+mokuS5see9qiA8IHNvdXJhbnphaVwgOwor5a6M5oiQ5ZOBIDwga2Fuc2VpaGluXCA7Civnp7vooYzmnJ/plpMgPCBpa291a2lrYW5cIDsKK+iiluWPoyA8IHNvZGVndWNoaVwgOwor5Ym16YCg5oCnIDwgc291em91c2VpXCA7Civmjbvlh7ogPCBuZW5zaHV0c3VcIDsKK+WPiOiri+iyoCA8IG1hdGF1a2VvaVwgOwor6YeR6Zaj5a+6IDwga2lua2FrdWppXCA7Civoqpjpm7vkvZMgPCB5dXVkZW50YWlcIDsKK+WNl+S6rOexsyA8IG5hbmtpbm1haVwgOwor54Sh56We57WMIDwgbXVzaGlua2VpXCA7CivpioDkuqTmj5sgPCBnaW5rb3VrYW5cIDsKK+W1mSA8IHlhbWFzaGluYVwgOwor6KO95aGp5qWtIDwgc2VpZW5neW91XCA7CivmlZnkvJrlk6EgPCBreW91a2FpaW5cIDsKK+WVk+ifhCA8IGtlaWNoaXRzdVwgOwor5pCt5LmX5Yi4IDwgdG91am91a2VuXCA7CivpgY7noavphbggPCBrYXJ5dXVzYW5cIDsKK+mBi+WRveeahCA8IHVubWVpdGVraVwgOwor6Kaz5qGc5LyaIDwga2FuJydvdWthaVwgOwor5raZ6ZuoIDwgbmFtaWRhYW1lXCA7CivnhKHnpLzogIUgPCBidXJlaW1vbm9cIDsKK+ani+aWh+azlSA8IGtvdWJ1bnBvdVwgOwor56+k5a6fIDwgdG9rdWppdHN1XCA7Civpjpbns7ggPCBrdXNhcmlpdG9cIDsKK+emv+m3siA8IGhhZ2V3YXNoaVwgOwor6KGA5bC/IDwga2V0c3VueW91XCA7CivmjqXov5HmiKYgPCBzZWtraW5zZW5cIDsKK+eEoeazleiAhSA8IG11aG91bW9ub1wgOwor5oey572wIDwgY2hvdWJhdHN1XCA7CivkuI3pganlvZMgPCBmdXRla2l0b3VcIDsKK+eEoeawtOmNiyA8IG11c3VpbmFiZVwgOwor5pyI57Wm5pelIDwgZ2Vra3l1dWJpXCA7Civlm73lipsgPCBrb2t1cnlva3VcIDsKK+aWpeWAmemaiiA8IHNla2tvdXRhaVwgOwor5Ym15qWt6LK7IDwgc291Z3lvdWhpXCA7Civlm73liKUgPCBrdW5pYmV0c3VcIDsKK+mHjeimgeaApyA8IGp1dXlvdXNlaVwgOwor57eP5aOy5LiKIDwgc291dXJpYWdlXCA7CivljYHlhobnjokgPCBqdXVlbmRhbWFcIDsKK+aKveaWlyA8IGhpa2lkYXNoaVwgOwor5YCr55CG5a2mIDwgcmlucmlnYWt1XCA7CivkuIDpgLHplpMgPCBpc3NodXVrYW5cIDsKK+ekvuWGheWgsSA8IHNoYW5haWhvdVwgOwor5L2P5a6F6LK7IDwganV1dGFrdWhpXCA7CivlsYjlnLDmgKcgPCBrdXRjaGlzZWlcIDsKK+S7mOWKoOS+oeWApCA8IGZ1a2FrYWNoaVwgOwor56+J5bGxIDwgdHN1a2l5YW1hXCA7Civlm73mnInljJYgPCBrb2t1eXV1a2FcIDsKK+mAmumiqOapnyA8IHRzdXVmdXVraVwgOwor5a625bGL5pW3IDwgaWV5YXNoaWtpXCA7CivlsbHmpJLprZogPCBzYW5zaG91dW9cIDsKK+WFrOaWh+abuCA8IGtvdWJ1bnNob1wgOwor5rG65a6a6KuWIDwga2V0dGVpcm9uXCA7Civkv53oqLzkurogPCBob3Nob3VuaW5cIDsKK+ayv+a1t+W3niA8IGVua2Fpc2h1dVwgOwor5LiN6YGT5b6zIDwgZnVkb3V0b2t1XCA7Civkvr/kuZfogIUgPCBiaW5qb3VzaGFcIDsKK+S4gOWNh+eTtiA8IGlzc2hvdWJpblwgOwor56m66IW55pmCIDwga3V1ZnVrdWppXCA7CivliY3ooZvmiKYgPCB6ZW4nJ2Vpc2VuXCA7Civoopbku5ggPCBzb2RldHN1a2VcIDsKK+aEn+aDheirliA8IGthbmpvdXJvblwgOwor5pSv6YWN5qipIDwgc2hpaGFpa2VuXCA7Civlm6PlrZDpvLsgPCBkYW5nb2JhbmFcIDsKK+WFqOirlueCuSA8IHplbnJvbnRlblwgOwor5om85q66IDwgeWFrdXNhdHN1XCA7CivpgZPljJbogIUgPCBkb3VrZW1vbm9cIDsKK+ilv+a0i+e0mSA8IHNlaXlvdXNoaVwgOwor5pu46KiY6ZW3IDwgc2hva2ljaG91XCA7CivlnJ/lo4zmsZrmn5MgPCBkb2pvdW9zZW5cIDsKK+ihgOWhlyA8IGNoaW1pZG9yb1wgOwor5b+M6KiA6JGJIDwgaW1pa290b2JhXCA7Civpm6Pkuovmpa0gPCBuYW5qaWd5b3VcIDsKK+S7mOW4r+eahCA8IGZ1dGFpdGVraVwgOwor6auY6aOb6LuKIDwgdGFrYWJpc2hhXCA7Civpm7voqbHkuK0gPCBkZW53YWNodXVcIDsKK+m7hOmBk+W4ryA8IGtvdWRvdXRhaVwgOwor6auY5qCh55SfIDwga291a291c2VpXCA7Civpurnpu7QgPCBrb3VqaWthYmlcIDsKK+a2memHkSA8IG5hbWlkYWtpblwgOwor6IK65rC06IWrIDwgaGFpc3Vpc2h1XCA7CivllYbnlKjoqp4gPCBzaG91eW91Z29cIDsKK+eVpeiomOazlSA8IHJ5YWtraWhvdVwgOwor6KGA5ZynIDwga2V0c3VhdHN1XCA7Civmva7looMgPCBzaGlvemFrYWlcIDsKK+iRoeiQhOajmiA8IGJ1ZG91ZGFuYVwgOwor5aWJ5YWs5Lq6IDwgaG91a291bmluXCA7CivnqJ/os6ogPCBoaW5zaGl0c3VcIDsKK+a5v+eUsCA8IHNoaXRzdWRlblwgOwor5LuP5rOV5YOnIDwgYnVwcG91c291XCA7Civpu5Lpq6ogPCBrb2t1aGF0c3VcIDsKK+S9k+iCsuelrSA8IHRhaWlrdXNhaVwgOwor5pmu6YCa5by+IDwgZnV0c3V1ZGFuXCA7CivmiKbkuK3mtL4gPCBzZW5jaHV1aGFcIDsKK+mrmOWxseW4ryA8IGtvdXphbnRhaVwgOwor5oCn54qv572qIDwgc2VpaGFuemFpXCA7CivmsJHoirjlk4EgPCBtaW5nZWloaW5cIDsKK+imquS8muekviA8IG95YWdhaXNoYVwgOwor5omT5raIIDwgdWNoaWtlc2hpXCA7Civlj4Los4DluLMgPCBzYW5nYWNob3VcIDsKK+S4iei8qui7iiA8IHNhbnJpbnNoYVwgOwor55Sj56eR5a2mIDwgc2Fua2FnYWt1XCA7Civou4rlhoXnga8gPCBzaGFuYWl0b3VcIDsKK+WMu+WLmeWupCA8IGltdXNoaXRzdVwgOwor5rC457aa5oCnIDwgZWl6b2t1c2VpXCA7CivooajlgbQgPCBvbW90ZWdhd2FcIDsKK+aOouaknOmaiiA8IHRhbmtlbnRhaVwgOwor5a6f5YuZ5a62IDwgaml0c3VtdWthXCA7Civlv4XpoIjmoLwgPCBoaXNzdWtha3VcIDsKK+Wkp+WSjOatjCA8IHlhbWF0b3V0YVwgOwor5Li45aSq5p2QIDwgbWFydXRhemFpXCA7CivnoJTkv67miYAgPCBrZW5zaHV1am9cIDsKK+WFrOaYjuWFmiA8IGtvdW1laXRvdVwgOwor57W156m66KiAIDwgZXNvcmFnb3RvXCA7CivnvoXph53nm6QgPCByYXNoaW5iYW5cIDsKK+S4iumZouitsOWToSA8IGpvdWluZ2lpblwgOwor5Zmo6YeP5Lq6IDwga2lyeW91amluXCA7Civlm73pmpvoqp4gPCBrb2t1c2FpZ29cIDsKK+Wbm+i+uuW9oiA8IHNoaWhlbmtlaVwgOwor55m65L2c55qEIDwgaG9zc2F0ZWtpXCA7Civogb7lrabmoKEgPCByb3VnYWtrb3VcIDsKK+mQmOaSniA8IGthbmV0c3VraVwgOwor5o6D5rW36ImHIDwgc291a2FpdGVpXCA7Civlj4LogIPmm7ggPCBzYW5rb3VzaG9cIDsKK+WMlueyp+WTgSA8IGtlc2hvdWhpblwgOwor5Zyw5bmz6Z2iIDwgY2hpaGVpbWVuXCA7CivooYzliJcgPCBneW91cmV0c3VcIDsKK+S9juiDveiAhSA8IHRlaW5vdXNoYVwgOwor5YWI6aiT6KuWIDwgc2Vua2Vucm9uXCA7Civpm4boi7HnpL4gPCBzaHV1ZWlzaGFcIDsKK+eUqOawtOaxoCA8IHlvdXN1aWNoaVwgOwor5Y+X6Zuj5YqHIDwganVuYW5nZWtpXCA7CivlgInluqvmpa0gPCBzb3Vrb2d5b3VcIDsKK+WNg+WFreacrCA8IHNlbnJvcHBvblwgOwor6Ly45YWl5ZOBIDwgeXVueXV1aGluXCA7CivljJbnsqflj7AgPCBrZXNob3VkYWlcIDsKK+WhqeWKoOa4myA8IHNoaW9rYWdlblwgOwor5aiY5a2Q6LuNIDwgam91c2hpZ3VuXCA7Civoh6rmsrvnnIEgPCBqaWNoaXNob3VcIDsKK+WwvumVt+eMvyA8IG9uYWdhemFydVwgOwor6K2m6Ziy5ZujIDwga2VpYm91ZGFuXCA7CivmraPop6PogIUgPCBzZWlrYWlzaGFcIDsKK+mZkOW6pumhjSA8IGdlbmRvZ2FrdVwgOwor5YaN5rSX56S8IDwgc2Fpc2VucmVpXCA7Civlp4nlprnmoKEgPCBzaGltYWlrb3VcIDsKK+agvOmXmOaKgCA8IGtha3V0b3VnaVwgOwor6Z2S5pil5pyfIDwgc2Vpc2h1bmtpXCA7CivpgJ/oqJjpjLIgPCBzb2traXJva3VcIDsKK+WEquWLnemmrCA8IHl1dXNob3ViYVwgOwor5YepIDwga29nYXJhc2hpXCA7CivmsJflgJnlraYgPCBraWtvdWdha3VcIDsKK+eXhemZouiIuSA8IGJ5b3VpbnNlblwgOwor5Zu95paH56eRIDwga29rdWJ1bmthXCA7Civmi4XlvZPogIUgPCB0YW50b3VzaGFcIDsKK+adpeWgtOiAhSA8IHJhaWpvdXNoYVwgOwor5omN5qeMIDwgc2FpZHp1Y2hpXCA7CivmjpLmsLTmup0gPCBoYWlzdWlrb3VcIDsKK+Wzu+S4i+WJpCA8IHNodW5nZXphaVwgOwor5aSW5ZWG6YOoIDwgZ2Fpc2hvdWJ1XCA7Civmub/mvaQgPCBzaGl0c3VqdW5cIDsKK+m8u+ihnSA8IGhhbmF0c3VraVwgOwor5q2j5pa55b2iIDwgc2VpaG91a2VpXCA7CivmuIvntJkgPCBzaGlidWdhbWlcIDsKK+aciOe1jOW4ryA8IGdla2tlaXRhaVwgOwor6KeS6KGM54GvIDwga2FrdWFuZG9uXCA7CivoqrLlvrTph5EgPCBrYWNob3VraW5cIDsKK+S6pOaPm+iIuSA8IGtvdWthbnNlblwgOwor5L+d566h6Ki8IDwgaG9rYW5zaG91XCA7Civmt7vliqDniakgPCB0ZW5rYW1vbm9cIDsKK+m8oOismyA8IG5lenVtaWtvdVwgOwor5p2l6Kaz6ICFIDwgcmFpa2Fuc2hhXCA7CivlvqHlrrbpqJLli5UgPCBvaWVzb3Vkb3VcIDsKK+mPoeadvyA8IGthZ2FtaWl0YVwgOwor57a6576F5pifIDwga2lyYWJvc2hpXCA7CivlsbHlsrPpg6ggPCBzYW5nYWt1YnVcIDsKK+eZuuWxleaApyA8IGhhdHRlbnNlaVwgOwor56m656m0IDwga2FyYWtldHN1XCA7CivljZTlrprmoYggPCBreW91dGVpYW5cIDsKK+m6pumjryA8IG11Z2ltZXNoaVwgOwor6Yu86ImyIDwgaGFnYW5laXJvXCA7Civms6jlsITlmaggPCBjaHV1c2hha2lcIDsKK+aJleaagSA8IGZ1dHN1Z3lvdVwgOwor5Y+45rOV5qipIDwgc2hpaG91a2VuXCA7CivomavonrsgPCBtdXNoaWtlcmFcIDsKK+ato+aUu+azlSA8IHNlaWtvdWhvdVwgOwor5omL5ouN5a2QIDwgdGVieW91c2hpXCA7CivnpL7kvJrpnaIgPCBzaGFrYWltZW5cIDsKK+ixoeearueXhSA8IHpvdWhpYnlvdVwgOwor56aB5Y+N6KiAIDwga2luaGFuZ2VuXCA7CivnhKHlj4znqpMgPCBtdXNvdW1hZG9cIDsKK+aZgumWk+WJsiA8IGppa2Fud2FyaVwgOwor55So5b+D5qOSIDwgeW91amluYm91XCA7Civlho3mhJ/mn5MgPCBzYWlrYW5zZW5cIDsKK+avm+ijveWTgSA8IG1vdXNlaWhpblwgOwor5LqM5bqm5LiJ5bqmIDwgbmlkb3NhbmRvXCA7Civpq5jnpZbpoK3lt74gPCBrb3NvenVraW5cIDsKK+agvOe0jeW6qyA8IGtha3Vub3Vrb1wgOwor57eP57Si5byVIDwgc291c2FrdWluXCA7Civkuojlr6nlu7cgPCB5b3NoaW50ZWlcIDsKK+iMtuWxi+mFkiA8IGNoYXlhemFrZVwgOwor5Zub5YiG5YaGIDwgc2hpYnVuJydlblwgOwor5L2X5L2P5bGFIDwgd2FiaXp1bWFpXCA7CivniYfmiYvmobYgPCBrYXRhdGVva2VcIDsKK+WJteWIiuWPtyA8IHNvdWthbmdvdVwgOwor5Zub5YiG5YWtIDwgc2hpYnVyb2t1XCA7Civnq6XmrYwgPCB3YXJhYmV1dGFcIDsKK+mYsua9nOe2siA8IGJvdXNlbm1vdVwgOwor5omT5pOyIDwgY2hvdWNoYWt1XCA7CivlkI3liLrliKQgPCBtZWlzaGliYW5cIDsKK+ays+erpeW3uyA8IGthcHBhbWFraVwgOwor5Yuy5LiA562JIDwga3VuJydpdHRvdVwgOwor5Y+N54mp5bGLIDwgdGFubW9ub3lhXCA7Civkuojlgpnpg6jlk4EgPCB5b2JpYnVoaW5cIDsKK+S6kuitsueahCA8IGdvam91dGVraVwgOwor5LiW55WM55qEIDwgc2VrYWl0ZWtpXCA7CivlvqHov7fmg5EgPCBnb21laXdha3VcIDsKK+S4iemDqOS9nCA8IHNhbmJ1c2FrdVwgOwor5rS76YePIDwga2F0c3VyeW91XCA7CivmraPpnaLlm7MgPCBzaG91bWVuenVcIDsKK+ihqOWFt+W4qyA8IGh5b3VndXNoaVwgOwor5LiN6YGp5Lu7IDwgZnV0ZWtpbmluXCA7CivntYzkvIHluoEgPCBrZWlraWNob3VcIDsKK+mBi+WLlemgmCA8IHVuZG91cnlvdVwgOwor5YWI6Iis5p2lIDwgc2VucGFucmFpXCA7CivlrprlhqDoqZ4gPCB0ZWlrYW5zaGlcIDsKK+iHquW3seaJueWIpCA8IGppa29oaWhhblwgOwor5o6l5bC+6L6eIDwgc2V0c3ViaWppXCA7CivmsLTnhKHmnIggPCBtaW5hZHp1a2lcIDsKK+mnkOWcqOWToSA8IGNodXV6YWlpblwgOwor5Zm05Ye6IDwgZnVuc2h1dHN1XCA7CivmuIvnmq4gPCBzaGlidWthd2FcIDsKK+i8uOWwv+euoSA8IHl1bnlvdWthblwgOwor6JeB6Z20IDwgd2FyYWd1dHN1XCA7Civlm73pmLLosrsgPCBrb2t1Ym91aGlcIDsKK+S+jeW+k+mVtyA8IGppanV1Y2hvdVwgOwor6Y6W5qiLIDwga3VzYXJpdG9pXCA7CivmtLvou7ggPCBrYXRzdWppa3VcIDsKK+auuumiqOaZryA8IHNhcHB1dWtlaVwgOwor5Lit5pSv6YKjIDwgbmFrYXNoaW5hXCA7CivoqqTmjL/lhaUgPCBnb3NvdW55dXVcIDsKK+ato+aVmeaOiCA8IHNlaWt5b3VqdVwgOwor5LyR54Gr5bGxIDwga3l1dWthemFuXCA7CivlrZDlrojmrYwgPCBrb21vcml1dGFcIDsKK+axuuWumueovyA8IGtldHRlaWtvdVwgOwor6Ziy54Gr5aOBIDwgYm91a2FoZWtpXCA7Civmub/mnb8gPCBzaGl0c3ViYW5cIDsKK+a1ruiiiyA8IHVraWJ1a3Vyb1wgOwor5Y+w5rm+5Lq6IDwgdGFpd2FuamluXCA7CivmtLvouo0gPCBrYXRzdXlha3VcIDsKK+aXpeeroOaXlyA8IG5pc3Nob3VraVwgOwor6YOo6ZqK6ZW3IDwgYnV0YWljaG91XCA7CivlvqHnnJ/lvbEgPCBnb3NoaW4nJ2VpXCA7CivomavohbkgPCBtdXNoaWJhcmFcIDsKK+WHneWbuueCuSA8IGd5b3Vrb3RlblwgOwor5pSv5bqX57ayIDwgc2hpdGVubW91XCA7CivmlbDooajnpLogPCBzdXVoeW91amlcIDsKK+miqOWQkeioiCA8IGZ1dWtvdWtlaVwgOwor6JuN5YWJ5p2/IDwga2Vpa291YmFuXCA7CivmlrDogZ7oiJcgPCBzaGluYnVuaG9cIDsKK+ilv+WNl+ilvyA8IHNlaW5hbnNlaVwgOwor6YG/6Zu36YedIDwgaGlyYWlzaGluXCA7CivnjYXlrZDoiJ4gPCBzaGlzaGltYWlcIDsKK+S7u+acn+S4rSA8IG5pbmtpY2h1dVwgOwor5pa56Z2i6ZqKIDwgaG91bWVudGFpXCA7CivpoqjpiLTojYkgPCBmdXVyaW5zb3VcIDsKK+absueLrOalvSA8IGt5b2t1Z29tYVwgOwor55yf5ZCR5rOVIDwgbWFra291aG91XCA7CivllYboiLnml5cgPCBzaG91c2Vua2lcIDsKK+m8oOiJsiA8IG5lenVtaWlyb1wgOwor5rOl6Z20IDwgZG9yb2d1dHN1XCA7CivnoJTkv67lk6EgPCBrZW5zaHV1aW5cIDsKK+ipleWIpOiomCA8IGh5b3ViYW5raVwgOwor5pmu6YCa5L6/IDwgZnV0c3V1YmluXCA7Civlia/nn6XkuosgPCBmdWt1Y2hpamlcIDsKK+avjembhuWboyA8IGJvc2h1dWRhblwgOwor5LiJ5Yag546LIDwgc2Fua2FuJydvdVwgOwor5oGL5oSb6KazIDwgcmVuJydhaWthblwgOwor562G5aKoIDwgaGl0c3Vib2t1XCA7Civph53psLsgPCBoYXJpdW5hZ2lcIDsKK+m8u+e2sSA8IGhhbmFkenVuYVwgOwor5Zyw5b255qipIDwgY2hpZWtpa2VuXCA7CivnrYbloZogPCBmdWRlZHp1a2FcIDsKK+aZrumAmuS6uiA8IGZ1dHN1dWppblwgOwor5rud5aO6IDwgdGFraXRzdWJvXCA7Civlho3ljZTorbAgPCBzYWlreW91a2lcIDsKK+S7o+i1reiJsiA8IHRhaXNoYWlyb1wgOwor5o6l5bC+6KqeIDwgc2V0c3ViaWdvXCA7CivliofkvZzlrrYgPCBnZWtpc2Fra2FcIDsKK+mHjeaIpui7iiA8IGp1dXNlbnNoYVwgOwor6Z+z5qW96ZqKIDwgb25nYWt1dGFpXCA7CivlkYrpgZQgPCBrb2t1dGF0c3VcIDsKK+WGjeemgeatoiA8IHNhaWtpbnNoaVwgOwor54e76JK45YmkIDwga3Vuam91emFpXCA7CivmtIvoo4HluKsgPCB5b3VzYWlzaGlcIDsKK+ecn+ato+mdoiA8IG1hc2hvdW1lblwgOwor5ryP5Ye6IDwgcm91c2h1dHN1XCA7CivnrYblnKcgPCBoaXRzdWF0c3VcIDsKK+aciOe1jOWJjSA8IGdla2tlaW1hZVwgOwor56qu5qW1IDwga3l1dWt5b2t1XCA7CivkvY7lsbHluK8gPCB0ZWl6YW50YWlcIDsKK+WKseaMr+WZqCA8IHJlaXNoaW5raVwgOwor6YeR6a+xIDwga2luc2hhY2hpXCA7Civoi7Hpm4TnmoQgPCBlaXl1dXRla2lcIDsKK+iomOiAheW4rSA8IGtpc2hhc2VraVwgOwor5YGl5bq36ICFIDwga2Vua291c2hhXCA7CivogqXmuoDnl4cgPCBoaW1hbnNob3VcIDsKK+acgOWkp+WApCA8IHNhaWRhaWNoaVwgOwor6KiI55S75qGIIDwga2Vpa2FrdWFuXCA7Civoj6/ljrPlrpcgPCBrZWdvbnNodXVcIDsKK+S4u+imgeeCuSA8IHNodXlvdXRlblwgOwor5Y+j6autIDwga3VjaGloaWdlXCA7CivomavnsaAgPCBtdXNoaWthZ29cIDsKK+a1geihgCA8IHJ5dXVrZXRzdVwgOwor5oaR54mpIDwgdHN1a2ltb25vXCA7CivnqY3njocgPCBzZWtpcml0c3VcIDsKK+S8muWToeiovCA8IGthaWluc2hvdVwgOwor57K+6JaE5YWQIDwgc2VpaGFrdWppXCA7CivmjL/lhaXlm7MgPCBzb3VueXV1enVcIDsKK+mHnOmjryA8IGthbWFtZXNoaVwgOwor5LiB5bm06ICFIDwgdGVpbmVuc2hhXCA7Civmt7HniKogPCBmdWthZHp1bWVcIDsKK+erueW4myA8IGNoaWt1aGFrdVwgOwor55uj5p+75b25IDwga2Fuc2F5YWt1XCA7CivoloTljJbnsqcgPCB1c3VnZXNob3VcIDsKK+WHuuWLpOewvyA8IHNodWtraW5ib1wgOwor5Lit5aSu57eaIDwgY2h1dW91c2VuXCA7CivlsaXmrbTmm7ggPCByaXJla2lzaG9cIDsKK+azoemKrSA8IGFidWt1emVuaVwgOwor6aSK5Zej5a2QIDwgeW91c2hpc2hpXCA7Civmgqros6ogPCBha3VzaGl0c3VcIDsKK+Wkp+a1t+WOnyA8IG9vdW5hYmFyYVwgOwor5L2O5L6h5qC8IDwgdGVpa2FrYWt1XCA7CivkuqTpmpvkuIogPCBrb3VzYWlqb3VcIDsKK+m6u+iiiyA8IGFzYWJ1a3Vyb1wgOwor5Y+C6ICD5ZOBIDwgc2Fua291aGluXCA7CivnpZ7ntYznp5EgPCBzaGlua2Vpa2FcIDsKK+Wwj+S9nOi+siA8IGtvc2FrdW5vdVwgOwor6Ieq55S76Ieq6LObIDwgamlnYWppc2FuXCA7Civnp4Hmlofmm7ggPCBzaGlidW5zaG9cIDsKK+axuuWumueJiCA8IGtldHRlaWJhblwgOwor5b+D5LiN5YWoIDwgc2hpbmZ1emVuXCA7CivkubPlubzlhZAgPCBueXV1eW91amlcIDsKK+imj+WJh+abuCA8IGtpc29rdXNob1wgOwor5rud5Y+jIDwgdGFraWd1Y2hpXCA7CivliqDpmaTlvI8gPCBrYWpvc2hpa2lcIDsKK+m8oOeulyA8IG5lenVtaXphblwgOwor5rm/5byPIDwgc2hpc3NoaWtpXCA7Civlj7jms5XlrpggPCBzaGlob3VrYW5cIDsKK+epgOeJqSA8IGtva3Vtb3RzdVwgOwor56m65a++5ZywIDwga3V1dGFpY2hpXCA7CivmraPoppbnnLwgPCBzZWlzaGlnYW5cIDsKK+aXqeaFtuaIpiA8IHNvdWtlaXNlblwgOwor5rOl6YGTIDwgZG9yb21pY2hpXCA7Civlj6TpnbQgPCBmdXJ1Z3V0c3VcIDsKK+aOmOWJiuapnyA8IGt1c3Nha3VraVwgOwor5pyq56K65a6aIDwgbWlrYWt1dGVpXCA7Civpq5jmnrbmqYsgPCBrb3VrYWt5b3VcIDsKK+ayiOmssSA8IGNoaW4nJ3V0c3VcIDsKK+WAi+WIpeWMliA8IGtvYmV0c3VrYVwgOwor5ZCb6YGUIDwga2ltaXRhY2hpXCA7CivmjL/lhaXlj6UgPCBzb3VueXV1a3VcIDsKK+m3sum8uyA8IHdhc2hpYmFuYVwgOwor5oqY5LyPIDwgc2hha3VidWt1XCA7CivpvKDnqbQgPCBuZXp1bWlhbmFcIDsKK+a7keWPsCA8IHN1YmVyaWRhaVwgOwor5pS/5qip5YWaIDwgc2Vpa2VudG91XCA7CivlsITliKnlv4MgPCBzaGFyaXNoaW5cIDsKK+ernOW3uyA8IHRhdHN1bWFraVwgOwor6Yej6ZCYIDwgdHN1cmlnYW5lXCA7Civnm6Plr5/ljLsgPCBrYW5zYXRzdWlcIDsKK+mBk+WMluaWuSA8IGRvdWtlZ2F0YVwgOwor5Y2K5LqM6YeNIDwgaGFuJyduaWp1dVwgOwor56aB5rK755SjIDwga2luY2hpc2FuXCA7CivpppbkvY3miZPogIUgPCBzaHVpZGFzaGFcIDsKK+WNmOiqnumbhiA8IHRhbmdvc2h1dVwgOwor55So5rC05ZywIDwgeW91c3VpaWtlXCA7Civou4rpq5jnn60gPCBzaGFrb3V0YW5cIDsKK+i/kea1t+mtmiA8IGtpbmthaWd5b1wgOwor5pyo6YeR5ZyfIDwgbW9rdWtpbmRvXCA7CivmjIHntprmgKcgPCBqaXpva3VzZWlcIDsKK+WQjeW3peWkpyA8IG1laWtvdWRhaVwgOwor5pSv6YWN5Lq6IDwgc2hpaGFpbmluXCA7CivlubnkuovplbcgPCBrYW5qaWNob3VcIDsKK+mVt+awtOi3ryA8IGNob3VzdWlyb1wgOwor5bmz5YWa5ZOhIDwgaGlyYXRvdWluXCA7CivlvqrnkrDnt5ogPCBqdW5rYW5zZW5cIDsKK+S4i+WJi+S4iiA8IGdla29rdWpvdVwgOwor5rqA5a6kIDwgbWFuc2hpdHN1XCA7CivkuIrlsaTpoqggPCBqb3Vzb3VmdXVcIDsKK+Wcp+W7tumLvCA8IGF0c3VlbmtvdVwgOwor5Zug5p6c5b+c5aCxIDwgaW5nYW91aG91XCA7CivmupbmlZnlk6EgPCBqdW5reW91aW5cIDsKK+m3pum3ryA8IG1pc29zYXphaVwgOwor5Ye555y86Y+hIDwgb3VnYW5reW91XCA7CivniankvqHpq5ggPCBidWtrYWRha2FcIDsKK+iqmOaLkOe9qiA8IHl1dWthaXphaVwgOwor56uv5aWzIDwgaGFzaGl0YW1lXCA7CivlvqrnkrDns7sgPCBqdW5rYW5rZWlcIDsKK+mHo+mHnSA8IHRzdXJpYmFyaVwgOwor5rS+55Sf55qEIDwgaGFzZWl0ZWtpXCA7CivntKDlj43lv5wgPCBzb2hhbicnbm91XCA7CivlnKjpg7fogIUgPCB6YWlnb3VzaGFcIDsKK+mHkemOliA8IGtpbmd1c2FyaVwgOwor5YyX5rW36YGTIDwgaG9ra2FpZG91XCA7CivkuIvlpbPkuIvnlLcgPCBnZWpvZ2VuYW5cIDsKK+ael+aqjueXhSA8IHJpbmdvYnlvdVwgOwor6Jek6JSTIDwgZnVqaWR6dXJ1XCA7Civolqzkuovms5UgPCB5YWt1amlob3VcIDsKK+efreavm+eoriA8IHRhbm1vdXNodVwgOwor5qaC5b+16KuWIDwgZ2FpbmVucm9uXCA7CivpiZvoibIgPCBuYW1hcmlpcm9cIDsKK+mBk+W+s+WutiA8IGRvdXRva3VrYVwgOwor5Y+C5LiO5a6YIDwgc2FuJyd5b2thblwgOwor5riL5p+/IDwgc2hpYnVnYWtpXCA7CivmnIDntYLmoYggPCBzYWlzaHV1YW5cIDsKK+S4lueVjOaWsCA8IHNla2Fpc2hpblwgOwor5Y+C6ICD5Lq6IDwgc2Fua291bmluXCA7CivlsYvlj7DpqqggPCB5YXRhaWJvbmVcIDsKK+Wkp+atk+i/jiA8IGRhaWthbmdlaVwgOwor5LiK5bGk6ZqOIDwgam91c291a2FpXCA7CivkuIDliIfntYwgPCBpc3NhaWt5b3VcIDsKK+WPpOmJhCA8IGZ1cnV0ZXRzdVwgOwor5YaN6YWN572uIDwgc2FpaGFpY2hpXCA7CivogozopabooqIgPCBoYWRhanViYW5cIDsKK+WFreinkuW9oiA8IHJva2tha2tlaVwgOwor5paw55Sf5YWQIDwgc2hpbnNlaWppXCA7CivpiLTomasgPCBzdXp1bXVzaGlcIDsKK+mGnOalreWppiA8IHNodWd5b3VmdVwgOwor5ZCM6LOqIDwgZG91c2hpdHN1XCA7Civoo4HliKTmqKkgPCBzYWliYW5rZW5cIDsKK+Wkp+elnuWuriA8IGRhaWppbmd1dVwgOwor5q2j5pWZ5ZOhIDwgc2Vpa3lvdWluXCA7Civlj6Pph5EgPCBrdWNoaWdhbmVcIDsKK+eqgeaSgyA8IHRvdHN1Z2VraVwgOwor5oKq5oiv552AIDwgaXRhenVyYWdpXCA7CivmmLzooYznga8gPCBoaXJ1YW5kb25cIDsKK+WcsOW5s+e3miA8IGNoaWhlaXNlblwgOwor5a6J5qW95qSF5a2QIDwgYW5yYWt1aXN1XCA7CivphY3pm7vnt5ogPCBoYWlkZW5zZW5cIDsKK+eZvemgree/gSA8IGhha3V0b3VvdVwgOwor55m65bCE5Y+wIDwgaGFzc2hhZGFpXCA7Civpu5LnuIEgPCBrdXJvYnVjaGlcIDsKK+S4u+mZo+WcsCA8IHNodWppbmNoaVwgOwor5oSf5oOz5paHIDwga2Fuc291YnVuXCA7CivmtojljJbns7sgPCBzaG91a2FrZWlcIDsKK+mOruWcpyA8IGNoaW4nJ2F0c3VcIDsKK+S4u+ims+aApyA8IHNodWthbnNlaVwgOwor5aSn5rOV5bu3IDwgZGFpaG91dGVpXCA7CivmnIDntYLml6UgPCBzYWlzaHV1YmlcIDsKK+axuuWumuaoqSA8IGtldHRlaWtlblwgOwor5Zaq5aSxIDwgc291c2hpdHN1XCA7CivlhY7lsI/lsYsgPCB1c2FnaWdveWFcIDsKK+WkmuelnuirliA8IHRhc2hpbnJvblwgOwor5aeU5ZOh5LuY6KiXIDwgaWluZnV0YWt1XCA7CivlvozljYrnlJ8gPCBrb3VoYW5zZWlcIDsKK+eoruayuSA8IHRhbmVhYnVyYVwgOwor5aKX6KiC54mIIDwgem91dGVpYmFuXCA7CivmiYDlnKjlnLAgPCBzaG96YWljaGlcIDsKK+eBveWus+WcsCA8IHNhaWdhaWNoaVwgOwor5raI5YyW566hIDwgc2hvdWtha2FuXCA7CivlubTku6PpoIYgPCBuZW5kYWlqdW5cIDsKK+elnue1jOeCjiA8IHNoaW5rZWllblwgOwor5aWJ5LuV6ICFIDwgaG91c2hpc2hhXCA7CivllJDmq4MgPCBrYXJhYml0c3VcIDsKK+WGjeWPl+a1uCA8IHNhaWp1c2hpblwgOwor5Y+j6Lu9IDwga3VjaGlnYXJ1XCA7Civnqq7lsYggPCBreXV1a3V0c3VcIDsKK+S6iOWCmemBi+WLlSA8IHlvYml1bmRvdVwgOwor5LqM5Lq65YmNIDwgZnV0YXJpbWFlXCA7Civlr4zlo6vlo7ogPCBmdWppdHN1Ym9cIDsKK+mBuueUo+euoeeQhiA8IGlzYW5rYW5yaVwgOwor55m+6LKo5bqXIDwgaHlha2thdGVuXCA7CivmqKrmlq3luZUgPCBvdWRhbm1ha3VcIDsKK+S6jOS6uuWIhiA8IGZ1dGFyaWJ1blwgOwor57SN56iO6ICFIDwgbm91emVpc2hhXCA7CivphbjmgKfntJkgPCBzYW5zZWlzaGlcIDsKK+W3puWPs+i7uCA8IHNheXV1amlrdVwgOwor5aSp5rC05qG2IDwgdGVuc3Vpb2tlXCA7Civpu5Lnq7kgPCBrdXJvY2hpa3VcIDsKK+WPi+mBlCA8IHRvbW9kYWNoaVwgOwor5ZOB54mpIDwgc2hpbmFtb25vXCA7CivosrTph5HlsZ4gPCBraWtpbnpva3VcIDsKK+azoue+heicnCA8IGhhcmFtaXRzdVwgOwor54up54yf5pyfIDwgc2h1cnlvdWtpXCA7Civmlofms5Xmm7ggPCBidW5wb3VzaG9cIDsKK+erueWFiSA8IHRha2VtaXRzdVwgOwor6JeB6IueIDwgd2FyYWR6dXRvXCA7CivljaDpoJjkuIsgPCBzZW5yeW91a2FcIDsKK+eHg+eEvOeCiSA8IG5lbnNob3Vyb1wgOwor5Y+k562G5a62IDwga29oaXRzdWthXCA7CivpmLLooZvluoEgPCBib3VlaWNob3VcIDsKK+Wkp+elreWPuCA8IGRhaXNhaXNoaVwgOwor5ZSQ5p2+IDwga2FyYW1hdHN1XCA7Civpm5vnvYznsp8gPCBoaW5hZ2VzaGlcIDsKK+WFqOWkqeWAmSA8IHplbnRlbmtvdVwgOwor6LaF55+t5rOiIDwgY2hvdXRhbnBhXCA7CivmlL7lsITog70gPCBob3VzaGFub3VcIDsKK+WJjeenkeiAhSA8IHplbmthbW9ub1wgOwor6ZW36YeO55yMIDwgbmFnYW5va2VuXCA7Civnn6XmgbXnhrEgPCBjaGllbmV0c3VcIDsKK+WMheijhee0mSA8IGhvdXNvdXNoaVwgOwor5LqJ6K2w6KGM54K6IDwgc291Z2lrb3VpXCA7CivnsbPnlKPlnLAgPCBiZWlzYW5jaGlcIDsKK+WFq+inkuW9oiA8IGhha2tha2tlaVwgOwor5LqU5aSn5rSyIDwgZ29kYWlzaHV1XCA7CivmlrDlrabmnJ8gPCBzaGluZ2Fra2lcIDsKK+m6u+WphuixhuiFkCA8IG3EgWJvZG91ZnVcIDsKK+mFjembu+ebpCA8IGhhaWRlbmJhblwgOwor6Iux5paH5a2mIDwgZWlidW5nYWt1XCA7Civomormn7EgPCBrYWJhc2hpcmFcIDsKK+W+oeWFhOW8nyA8IGdva3lvdWRhaVwgOwor6KOB5Yik5omAIDwgc2FpYmFuc2hvXCA7Civlj4LpmaLpgbggPCBzYW4nJ2luc2VuXCA7Civnq7nkuLIgPCB0YWtlZ3VzaGlcIDsKK+i7jeS6uumiqCA8IGd1bmppbmZ1dVwgOwor54Sh5b6X54K5IDwgbXV0b2t1dGVuXCA7Civoq5bnkIbnmoQgPCByb25yaXRla2lcIDsKK+m7kueZvSA8IGtva3VieWFrdVwgOwor5YqD5pyf55qEIDwga2Fra2l0ZWtpXCA7CivnpZ7nvbAgPCBzaGluYmF0c3VcIDsKK+ayueidiSA8IGFidXJhemVtaVwgOwor5LiJ55yB5aCCIDwgc2Fuc2VpZG91XCA7Civlj5boqqwgPCB0b3Jpc2V0c3VcIDsKK+iZmuW8seWFkCA8IGt5b2pha3VqaVwgOwor5paH5YyW5pig55S7IDwgYnVua2FlaWdhXCA7CivlvZPkuovlm70gPCB0b3VqaWtva3VcIDsKK+irluS6ieiAhSA8IHJvbnNvdXNoYVwgOwor5pS+5bCE57eaIDwgaG91c2hhc2VuXCA7Civom7jlo7wgPCB0YWtvdHN1Ym9cIDsKK+W0h+aLneiAhSA8IHN1dWhhaXNoYVwgOwor5YGl5bq35rOVIDwga2Vua291aG91XCA7CivmgKrmlofmm7ggPCBrYWlidW5zaG9cIDsKK+mAruaNleattCA8IHRhaWhvcmVraVwgOwor562G6aCt6ICFIDwgaGl0dG91c2hhXCA7Civmuaflh7ogPCB5b3VzaHV0c3VcIDsKK+epuuWupCA8IGt1dXNoaXRzdVwgOwor5Lm+55Sf5aecIDwga2Fuc2hvdWdhXCA7CivnlJ/mrovogIUgPCBzZWl6YW5zaGFcIDsKK+a3oeawtOmtmiA8IHRhbnN1aWd5b1wgOwor6LSI562U5ZOBIDwgem91dG91aGluXCA7CivkuqTmj5vmiYsgPCBrb3VrYW5zaHVcIDsKK+ibjeWFieS9kyA8IGtlaWtvdXRhaVwgOwor5rC354K55LiLIDwgaHlvdXRlbmthXCA7Civoqpjmi5Dniq8gPCB5dXVrYWloYW5cIDsKK+eFjueOieWtkCA8IGlyaXRhbWFnb1wgOwor6IiI5L+h5omAIDwga291c2hpbmpvXCA7CivnlJjlkbPmlpkgPCBrYW5taXJ5b3VcIDsKK+ippumok+e0mSA8IHNoaWtlbnNoaVwgOwor6IKJ6KWm6KKiIDwgbmlrdWp1YmFuXCA7Civnm6PlrojkurogPCBrYW5zaHVuaW5cIDsKK+Wil+Wkp+WPtyA8IHpvdWRhaWdvdVwgOwor5ruR6LWw6LyqIDwga2Fzc291cmluXCA7Civlho3libXpgKAgPCBzYWlzb3V6b3VcIDsKK+aIuOexjeazlSA8IGtvc2VraWhvdVwgOwor6YyY5b2iIDwgdHN1bXVnYXRhXCA7CivojZLnianlsYsgPCBhcmFtb25veWFcIDsKK+S4reilv+mDqCA8IGNodXVzZWlidVwgOwor6Ieq5YuV55qEIDwgamlkb3V0ZWtpXCA7CivlgJ/lrrbkurogPCBzaGFra2FuaW5cIDsKK+azleWtpumDqCA8IGhvdWdha3VidVwgOwor6LuN6LOH6YeRIDwgZ3Vuc2hpa2luXCA7Civmlofms5XmgKcgPCBidW5wb3VzZWlcIDsKK+i+suWkq+eXhyA8IG5vdWZ1c2hvdVwgOwor5p2Q5paZ6LK7IDwgemFpcnlvdWhpXCA7CivlgqzmtpnpioMgPCBzYWlydWlqdXVcIDsKK+WkieaPm+WtkCA8IGhlbmthbnNoaVwgOwor5p2Q5pyo5bGLIDwgemFpbW9rdXlhXCA7Civosqfnqq7ljJYgPCBoaW5reXV1a2FcIDsKK+aXqeWQiOeCuSA8IGhheWFnYXRlblwgOwor6LuK6aas6LODIDwgc2hhYmFjaGluXCA7Civnq5zpqI7lhbUgPCByeXV1a2loZWlcIDsKK+Wcn+WPsOefsyA8IGRvZGFpaXNoaVwgOwor6Kmm6aiT566hIDwgc2hpa2Vua2FuXCA7CivlpKflj43lr74gPCBkYWloYW50YWlcIDsKK+mdnuWbveawkSA8IGhpa29rdW1pblwgOwor5bCP6LGG6bGSIDwgYXp1a2ltYXN1XCA7CivojqLosYzosYYgPCBzYXlhZW5kb3VcIDsKK+S4oeabv+apnyA8IHJ5b3VnYWVraVwgOwor57a/54Gr6JasIDwgbWVua2F5YWt1XCA7CivkurrmsJHou40gPCBqaW5taW5ndW5cIDsKK+asoOWLpOiAhSA8IGtla2tpbnNoYVwgOwor5bCP5L2c57GzIDwga29zYWt1bWFpXCA7Civms6Xmnb/lsqkgPCBkZWliYW5nYW5cIDsKK+aTrOmdqee0mSA8IGdpa2FrdXNoaVwgOwor6LK06YeN5ZOBIDwga2ljaG91aGluXCA7CivngavlsbHnpKsgPCBrYXphbnJla2lcIDsKK+mhlOWGmeecnyA8IGthb2phc2hpblwgOwor5YWx5ryU6ICFIDwga3lvdWVuc2hhXCA7CivmlZHorbfnj60gPCBreXV1Z29oYW5cIDsKK+mHkeiUkyA8IGthbmVkenVydVwgOwor5YaN5b6q55KwIDwgc2FpanVua2FuXCA7CivmhI/lkbPlhoXlrrkgPCBpbWluYWl5b3VcIDsKK+iNu+axn+evgCA8IG9naWVidXNoaVwgOwor6ZuG5YWJ5ZmoIDwgc2h1dWtvdWtpXCA7CivkuIDpg6jliIYgPCBpY2hpYnVidW5cIDsKK+mHo+iIuSA8IHRzdXJpYnVuZVwgOwor6KOF55Sy6LuKIDwgc291a291c2hhXCA7CivmlrDkuJbntIAgPCBzaGluc2Vpa2lcIDsKK+S6iOWCmeWIpOS6iyA8IHlvYmloYW5qaVwgOwor6Ymi54mpIDwgaGFjaGltb25vXCA7CivmtZrmuKsgPCBzaHVuc2V0c3VcIDsKK+a3keW+syA8IHNodWt1dG9rdVwgOwor56Wd56aPIDwgc2h1a3VmdWt1XCA7Civoo4HliKTlrpggPCBzYWliYW5rYW5cIDsKK+WHuuWLpOaXpSA8IHNodWtraW5iaVwgOwor6YCB5L+h5qmfIDwgc291c2hpbmtpXCA7CivmsqHokL0gPCBib3RzdXJha3VcIDsKK+eqk+WPoyA8IG1hZG9ndWNoaVwgOwor6ZuR5bGF5ZywIDwgemFra3lvY2hpXCA7Civoi7HmlbDlm70gPCBlaXN1dWtva3VcIDsKK+S/neeuoeaWmSA8IGhva2FucnlvdVwgOwor5q2m5a625pmC5LujIDwgYnVrZWppZGFpXCA7CivljYrosrTnn7MgPCBoYW5raXNla2lcIDsKK+i7jeeUqOapnyA8IGd1bicneW91a2lcIDsKK+WTgeafhCA8IHNoaW5hZ2FyYVwgOwor5Yy755mC6YGO6KqkIDwgaXJ5b3VrYWdvXCA7CivomY7okL3nrJsgPCBtb2dhcmlidWVcIDsKK+eUn+mChOiAhSA8IHNlaWthbnNoYVwgOwor5oeH6KuH5LyaIDwga29uZGFua2FpXCA7CivmnKrlhazooaggPCBtaWtvdWh5b3VcIDsKK+ilv+a0i+S6uiA8IHNlaXlvdWppblwgOwor55Sw6IiO6ICFIDwgaW5ha2Ftb25vXCA7CivlkLjnnYAgPCBreXV1Y2hha3VcIDsKK+a2iOWMlua2siA8IHNob3VrYWVraVwgOwor5q2m5a625pS/5rK7IDwgYnVrZXNlaWppXCA7CivlpbPnjovpmZvkuIsgPCBqb291aGVpa2FcIDsKK+eptOWxheS6uiA8IGtla2t5b2ppblwgOwor5aao5qWt5ZOhIDwgYm91Z3lvdWluXCA7CivpoqjlkYLmlbcgPCBmdXJvc2hpa2lcIDsKK+WPo+iEhyA8IGt1Y2hpd2FraVwgOwor5L2V5puc5pelIDwgbmFuJyd5b3ViaVwgOwor6K2m5oiS57eaIDwga2Vpa2Fpc2VuXCA7CivnorroqqwgPCBrYWt1c2V0c3VcIDsKK+S6pOaPm+WsoiA8IGtvdWthbmpvdVwgOwor5aSn6YGT6Iq4IDwgZGFpZG91Z2VpXCA7CivlgZzmraLnt5ogPCB0ZWlzaGlzZW5cIDsKK+iWhOe3kSA8IHVzdW1pZG9yaVwgOwor5ZOB5pWwIDwgc2hpbmFrYXp1XCA7Civli4nlvLflrrYgPCBiZW5reW91a2FcIDsKK+a1qua8q+eahCA8IHJvbWFudGVraVwgOwor5Yun5LiW57iSIDwga2FuemV5b3JpXCA7Civnq7nntLDlt6UgPCB0YWtlemFpa3VcIDsKK+eUo+WNteWPoyA8IHNhbnJhbmtvdVwgOwor5oSf5YuV6KmeIDwga2FuZG91c2hpXCA7CivmsLTlnKfmqZ8gPCBzdWlhdHN1a2lcIDsKK+mfs+alveelrSA8IG9uZ2FrdXNhaVwgOwor6bm/55quIDwgc2hpa2FnYXdhXCA7Civpu5nmrrogPCBtb2t1c2F0c3VcIDsKK+S6uuaDheacrCA8IG5pbmpvdWJvblwgOwor55qH6ZyK5q6/IDwga291cmVpZGVuXCA7CivmgZDnuK4gPCBreW91c2h1a3VcIDsKK+S9v+WRveiAhSA8IHNoaW1laXNoYVwgOwor56qB5Ye6IDwgdG9zc2h1dHN1XCA7Civku6PnlKjlk4EgPCBkYWl5b3VoaW5cIDsKK+iRieiPnOmhniA8IHlvdXNhaXJ1aVwgOwor6YO96aKoIDwgbWl5YWtvZnV1XCA7Civmsrnns58gPCBhYnVyYWthc3VcIDsKK+WGmeecn+apnyA8IHNoYXNoaW5raVwgOwor5rC06LOqIDwgc3Vpc2hpdHN1XCA7CivnlLfkvIrpgZQgPCBvdG9rb2RhdGVcIDsKK+WFteermee3miA8IGhlaXRhbnNlblwgOwor5biv6Zu75L2TIDwgdGFpZGVudGFpXCA7CivnqoHlhaUgPCB0b3RzdW55dXVcIDsKK+aWh+WMlueahCA8IGJ1bmthdGVraVwgOwor5pyq55m66KGoIDwgbWloYXBweW91XCA7CivlhYjkvY/msJEgPCBzZW5qdXVtaW5cIDsKK+mAlOS4iuWbvSA8IHRvam91a29rdVwgOwor5aSn5rCX5rGa5p+TIDwgdGFpa2lvc2VuXCA7CivljYrpn7Ppmo4gPCBoYW4nJ29ua2FpXCA7Civnmb3mnKjlsYsgPCBzaGlyb2tpeWFcIDsKK+S7leanmOabuCA8IHNoaXlvdXNob1wgOwor5rCR5LqL55qEIDwgbWluaml0ZWtpXCA7CivmiJDlsaTlnI8gPCBzZWlzb3VrZW5cIDsKK+iSuOawl+WcpyA8IGpvdWtpYXRzdVwgOwor5Lih5pu/5omAIDwgcnlvdWdhZWpvXCA7CivnqKDlr4YgPCBjaG91bWl0c3VcIDsKK+m7kuaoqyA8IGt1cm9nYXNoaVwgOwor5rS75q20IDwga2F0c3VyZWtpXCA7CivlvozljYrmiKYgPCBrb3VoYW5zZW5cIDsKK+WPo+e0hSA8IGt1Y2hpYmVuaVwgOwor5Y+z56uvIDwgbWlnaWhhc2hpXCA7Civlub3lr4LlkbMgPCB5dXVqYWt1bWlcIDsKK+W4neeOi+WtpiA8IHRlaW91Z2FrdVwgOwor6LKv5rC05rGgIDwgY2hvc3VpY2hpXCA7Civolqznk7YgPCBrdXN1cmliaW5cIDsKK+WTsuWtpiA8IHRldHN1Z2FrdVwgOwor5paw5LiW55WMIDwgc2hpbnNla2FpXCA7Civlkb3ku6Tms5UgPCBtZWlyZWlob3VcIDsKK+WfuuekjuW3peS6iyA8IGtpc29rb3VqaVwgOwor54++5YOP5rayIDwgZ2Vuem91ZWtpXCA7CivoprPopqfou4ogPCBrYW5yYW5zaGFcIDsKK+S8muekvuiRrCA8IGthaXNoYXNvdVwgOwor6YmE5riLIDwga2FuYXNoaWJ1XCA7CivnpoHphZLms5UgPCBraW5zaHVob3VcIDsKK+iEs+iGnOeCjiA8IG5vdW1ha3VlblwgOwor5Y+O57iuIDwgc2h1dXNodWt1XCA7Civlj7Dnp6QgPCBkYWliYWthcmlcIDsKK+aWh+mDqOecgSA8IG1vbmJ1c2hvdVwgOwor6LuN5LqL6YCaIDwgZ3Vuaml0c3V1XCA7CivohLPohavnmI0gPCBub3VzaHV5b3VcIDsKK+S4lueVjOS4gCA8IHNla2FpaWNoaVwgOwor5b+F6KqtIDwgaGl0c3Vkb2t1XCA7CivljZrorZggPCBoYWt1c2hpa2lcIDsKK+WGjeWIhumFjSA8IHNhaWJ1bnBhaVwgOwor5o6b5biD5ZujIDwga2FrZWJ1dG9uXCA7CivlpJbmtIvoiLkgPCBnYWl5b3VzZW5cIDsKK+m7kuadviA8IGt1cm9tYXRzdVwgOwor57WE6IG35ZuzIDwgc29zaG9rdXp1XCA7CivnhKHnkIblvoDnlJ8gPCBtdXJpb3Vqb3VcIDsKK+S6pOaPm+WTgSA8IGtvdWthbmhpblwgOwor54Gr6aOf6bOlIDwgaGlrdWlkb3JpXCA7Civosq/msLTmp70gPCBjaG9zdWlzb3VcIDsKK+a1t+awtOmtmiA8IGthaXN1aWd5b1wgOwor57K+6YCy5pelIDwgc2hvdWppbmJpXCA7CivljZPorZggPCB0YWt1c2hpa2lcIDsKK+iWrOeJqSA8IHlha3VidXRzdVwgOwor5LiJ6Imy5peXIDwgc2Fuc2hva2tpXCA7CivpgIPkuqHogIUgPCB0b3Vib3VzaGFcIDsKK+mBk+WFt+eusSA8IGRvdWd1YmFrb1wgOwor5Ye65bu35pelIDwgc2h1dHRlaWJpXCA7CivnlLvlrabntJkgPCBnYWdha3VzaGlcIDsKK+awt+idlSA8IGh5b3VzaG9rdVwgOwor6LKv6JS15omAIDwgY2hvem91c2hvXCA7CivmnbHmtbfpgZMgPCB0b3VrYWlkb3VcIDsKK+S6pOaPm+WPsCA8IGtvdWthbmRhaVwgOwor5oim5pmC5LitIDwgc2VuamljaHV1XCA7CivljZPoqqwgPCB0YWt1c2V0c3VcIDsKK+m7kuaYnyA8IGt1cm9ib3NoaVwgOwor5re35YiG5pWwIDwga29uYnVuc3V1XCA7CivnlJ/nn7PngbAgPCBzZWlzZWtrYWlcIDsKK+S4jeaknOadnyA8IGZ1a2Vuc29rdVwgOwor5bCP5p2+6I+cIDwga29tYXRzdW5hXCA7CivotIjlkYjogIUgPCB6b3V0ZWlzaGFcIDsKK+mhnuamguW/tSA8IHJ1aWdhaW5lblwgOwor5Lu75aSp5aCCIDwgbmludGVuZG91XCA7CivljZfmlrnnlKMgPCBuYW5wb3VzYW5cIDsKK+e1kOe0jemHkSA8IHl1aW5vdWtpblwgOwor56eA5oqcIDwgc2h1dWJhdHN1XCA7Civlv4PooYAgPCBzaGlua2V0c3VcIDsKK+WkquWIgOetiyA8IHRhY2hpc3VqaVwgOwor5rC06JmrIDwgbWl6dW11c2hpXCA7CivolJPojYkgPCB0c3VydWt1c2FcIDsKK+W8t+mjryA8IGtvd2FtZXNoaVwgOwor54af5a2X6KiTIDwganVrdWppa3VuXCA7Civlo7DmmI7mm7ggPCBzZWltZWlzaG9cIDsKK+WVj+mhjOeCuSA8IG1vbmRhaXRlblwgOwor5YiG5bel5aC0IDwgYnVua291am91XCA7CivlrprlubTliLYgPCB0ZWluZW5zZWlcIDsKK+WcsOWFg+e0mSA8IGppbW90b3NoaVwgOwor6aCQ6KiX6YeRIDwgeW90YWt1a2luXCA7CivpmLLnqbrnoLIgPCBib3VrdXVob3VcIDsKK+mdmeWcp+avlCA8IHNlaWF0c3VoaVwgOwor6JGb6aSFIDwga3V6dW1vY2hpXCA7Civlm57poafpjLIgPCBrYWlrb3Jva3VcIDsKK+m2ieixhiA8IHV6dXJhbWFtZVwgOwor5Lih5pu/5bGLIDwgcnlvdWdhZXlhXCA7CivkurrmsJfogIUgPCBuaW5raW1vbm9cIDsKK+S4jeiJr+WTgSA8IGZ1cnlvdWhpblwgOwor5bCP5L6/5omAIDwgc2hvdWJlbmpvXCA7CivlvqrnkrDmgKcgPCBqdW5rYW5zZWlcIDsKK+WVhueUqOWMliA8IHNob3V5b3VrYVwgOwor5Lqk5o+b5YaGIDwga291a2FuJydlblwgOwor6Kmm6aiT5rOVIDwgc2hpa2VuaG91XCA7CivlrablnJLnpa0gPCBnYWt1ZW5zYWlcIDsKK+S9leaZguaZguWIhiA8IGl0c3VqaWJ1blwgOwor6YeR55ulIDwga2FuYWRhcmFpXCA7Civlj6PnmZYgPCBrdWNoaWd1c2VcIDsKK+esrOWFreaEnyA8IGRhaXJva2thblwgOwor6LKn5rCR6KGXIDwgaGlubWluZ2FpXCA7Civlkb3ku6Tmm7ggPCBtZWlyZWlzaG9cIDsKK+WNiuWwjuS9kyA8IGhhbmRvdXRhaVwgOwor55+z6aCtIDwgaXNoaWF0YW1hXCA7Civps6Xpu5AgPCB0b3JpbW9jaGlcIDsKK+a2meWjsCA8IG5hbWlkYWdvZVwgOwor5YW15Zmo5bugIDwgaGVpa2lzaG91XCA7CivokL3pq6ogPCByYWt1aGF0c3VcIDsKK+ijgeWIpOS4iiA8IHNhaWJhbmpvdVwgOwor5aOy5pil5ammIDwgYmFpc2h1bnB1XCA7Civli4XpoY0gPCBjaG9rdWdha3VcIDsKK+mFjembu+aJgCA8IGhhaWRlbnNob1wgOwor56S+5Lqk55WMIDwgc2hha291a2FpXCA7CivlhKrli53ml5cgPCB5dXVzaG91a2lcIDsKK+aJi+WTgeW4qyA8IHRlamluYXNoaVwgOwor6auE6Iac54KOIDwgenVpbWFrdWVuXCA7Civkv67pgZPpmaIgPCBzaHV1ZG91aW5cIDsKK+WNteiJsiA8IHRhbWFnb2lyb1wgOwor5rW36JuH5bqnIDwgdW1paGViaXphXCA7CivnqLLlhYkgPCBpbmFiaWthcmlcIDsKK+WRveS7pOaWhyA8IG1laXJlaWJ1blwgOwor5p2x5rSL6aKoIDwgdG91eW91ZnV1XCA7CivlvJ/mga/lrZAgPCBvdG9tdXN1a29cIDsKK+S6lOWkp+WbvSA8IGdvZGFpa29rdVwgOwor5o6l6aqo5Yy7IDwgc2Vra290c3VpXCA7CivmnJvpgaDpj6EgPCBib3Vlbmt5b3VcIDsKK+aihembqOepuiA8IHRzdXl1em9yYVwgOwor5bel5ZOh5a+uIDwga291aW5yeW91XCA7CivnhKHpgYrnl4UgPCBtdXl1dWJ5b3VcIDsKK+auv+mBlCA8IHRvbm90YWNoaVwgOwor5Zu96Zqb5YyWIDwga29rdXNhaWthXCA7CivpqZrnlbDnmoQgPCBreW91aXRla2lcIDsKK+iQvemjviA8IHJha3VzaG9rdVwgOwor6Zai5p2x5byBIDwga2FudG91YmVuXCA7Civnm7jkupLkvp3lrZggPCBzb3Vnb2l6b25cIDsKK+ikh+WQiOiqniA8IGZ1a3Vnb3Vnb1wgOwor5byY5riI5LyaIDwga291c2Fpa2FpXCA7Civoh7Pov5HlvL4gPCBzaGlraW5kYW5cIDsKK+acrOW5tOW6piA8IGhvbicnbmVuZG9cIDsKK+aVkeitt+aJgCA8IGt5dXVnb3Nob1wgOwor5rKI552AIDwgY2hpbmNoYWt1XCA7CivlkZHmsJfogIUgPCBub25raW1vbm9cIDsKK+Wwj+S9nOaoqSA8IGtvc2FrdWtlblwgOwor5Luj55CG5q+NIDwgZGFpcmloYWhhXCA7CivliIbnlYznt5ogPCBidW5rYWlzZW5cIDsKK+err+Wig+acnyA8IGhhemFrYWlraVwgOwor6Kqe5rqQ5a2mIDwgZ29nZW5nYWt1XCA7Civlv4Ppm7vlm7MgPCBzaGluZGVuenVcIDsKK+WBpeW6t+WcsCA8IGtlbmtvdWNoaVwgOwor6Kqe5b2Z6KaP5YmHIDwgZ29pa2lzb2t1XCA7CivmsI/lrZDmnK0gPCB1amlrb2Z1ZGFcIDsKK+iruOWVj+mhjCA8IHNob21vbmRhaVwgOwor5Y+j5ZSH5pyfIDwga291c2hpbmtpXCA7CivlsIbmo4vnm6QgPCBzaG91Z2liYW5cIDsKK+eNheWtkOWUkCA8IHNoaXNoaXRvdVwgOwor5bmz5L+h5b6SIDwgaGVpc2hpbnRvXCA7CivnpaXmnIggPCBzaG91dHN1a2lcIDsKK+Wkp+awl+WcpyA8IHRhaWtpYXRzdVwgOwor5bCG6LuN5a62IDwgc2hvdWd1bmtlXCA7CivljYPku6PntJkgPCBjaGl5b2dhbWlcIDsKK+S4u+aIpuirliA8IHNodXNlbnJvblwgOwor5Yqj562J55SfIDwgcmV0dG91c2VpXCA7CivmlrDlrZfkvZMgPCBzaGluaml0YWlcIDsKK+WPjueOhyA8IHNodXVyaXRzdVwgOwor57SN5ZOB5pu4IDwgbm91aGluc2hvXCA7CivnmoflpKrlrZAgPCBrb3V0YWlzaGlcIDsKK+eiuueriyA8IGtha3VyaXRzdVwgOwor6aiS5pO+572qIDwgc291am91emFpXCA7CivljYrlrpjloLEgPCBoYW5rYW5wb3VcIDsKK+WQjOS8tOiAhSA8IGRvdWhhbnNoYVwgOwor5rW36byg5p2/IDwgbmFtYWtvYmFuXCA7Civlh4blo6vlrpggPCBqdW5zaGlrYW5cIDsKK+Wun+mok+iAhSA8IGppa2tlbnNoYVwgOwor5Luj55CG5qWtIDwgZGFpcmlneW91XCA7CivkuIDmrKHlhYMgPCBpY2hpamlnZW5cIDsKK+eUqOebiuaoqSA8IHlvdWVraWtlblwgOwor5LiK6IWV562LIDwgam91d2Fua2luXCA7Civlj4LmlL/mqKkgPCBzYW5zZWlrZW5cIDsKK+W3oeekvOiAhSA8IGp1bnJlaXNoYVwgOwor5a6f6aiT576kIDwgamlra2VuZ3VuXCA7Civnqbrmma/msJcgPCBrYXJhZ2Vpa2lcIDsKK+WNoOiAhSA8IHVyYW5haXNoYVwgOwor5YaZ55yf5a62IDwgc2hhc2hpbmthXCA7Civou4rmpIXlrZAgPCBrdXJ1bWFpc3VcIDsKK+aPruavq+aWmSA8IGtpZ291cnlvdVwgOwor6Ieq5bex5byB6K23IDwgamlrb2JlbmdvXCA7CivorablkYrpn7MgPCBrZWlrb2t1b25cIDsKK+aVmeaOiOmZoyA8IGt5b3VqdWppblwgOwor5Yid5LiD5pelIDwgc2hvbmFub2thXCA7Civlronlv4PmhJ8gPCBhbnNoaW5rYW5cIDsKK+W/oOevgCA8IGNodXVzZXRzdVwgOwor6Ymi5be7IDwgaGFjaGltYWtpXCA7CivlpKflhaXpgZMgPCBvb255dXVkb3VcIDsKK+ekvuS8muaCqiA8IHNoYWthaWFrdVwgOwor5ZKE5a62IDwgaGFuYXNoaWthXCA7CivkuLvoo73lk4EgPCBzaHVzZWloaW5cIDsKK+eEoeawl+WKmyA8IG11a2lyeW9rdVwgOwor56S+5Lya5oCnIDwgc2hha2Fpc2VpXCA7CivohLHohILntr8gPCBkYXNzaGltZW5cIDsKK+awl+ixoeWPsCA8IGtpc2hvdWRhaVwgOwor5ZG95Luk5b2iIDwgbWVpcmVpa2VpXCA7Civoq5bnkIblraYgPCByb25yaWdha3VcIDsKK+Wun+S9k+irliA8IGppdHRhaXJvblwgOwor5bCP5Lya5rS+IDwgc2hvdWthaWhhXCA7CivlkIzlgKTmgKcgPCBkb3VjaGlzZWlcIDsKK+mFuOaAp+WyqSA8IHNhbnNlaWdhblwgOwor55+N6ZGgIDwga2FrdXNoYWt1XCA7CivkuIvotrPnlaogPCBnZXNva3ViYW5cIDsKK+S6lOWNgemfs+WbsyA8IGdvanV1b256dVwgOwor5pal5YCZ5YW1IDwgc2Vra291aGVpXCA7Civlpb3lvbHpn78gPCBrb3VlaWt5b3VcIDsKK+eUn+WMluWtpiA8IHNlaWthZ2FrdVwgOwor6Kmm5LmX6LuKIDwgc2hpam91c2hhXCA7CivlnKfliLbnmoQgPCBhc3NlaXRla2lcIDsKK+eCremFuOe0mSA8IHRhbnNhbnNoaVwgOwor5Yip5LuW5Li7576pIDwgcml0YXNodWdpXCA7Civlho3lvpPlvJ8gPCBzYWlqdXV0ZWlcIDsKK+S9meioiOiAhSA8IHlva2VpbW9ub1wgOwor5q+S6JmrIDwgZG9rdW11c2hpXCA7CivkuI3lr53nlaogPCBmdXNoaW5iYW5cIDsKK+eQhuWxiOWxiyA8IHJpa3V0c3V5YVwgOwor5L+d566h5Lq6IDwgaG9rYW4nJ25pblwgOwor5YSq6Imv6aasIDwgeXV1cnlvdWJhXCA7CivpgYvovLjph48gPCB1bicneXVyeW91XCA7CivljZPntbYgPCB0YWt1emV0c3VcIDsKK+WkquW5s+a0iyA8IHRhaWhlaXlvdVwgOwor6LKv6JS15ZOBIDwgY2hvem91aGluXCA7CivljZjns5bpoZ4gPCB0YW50b3VydWlcIDsKK+WPlua2iCA8IHRvcmlrZXNoaVwgOwor6IGa5qW956ysIDwganVyYWt1ZGFpXCA7CivnlJ/ljYrlj68gPCBuYW1haGFua2FcIDsKK+WRqOWvhiA8IHNodXVtaXRzdVwgOwor6JKf6JK7IDwga29uJydueWFrdVwgOwor5Y2U6K2w5omAIDwga3lvdWdpc2hvXCA7Civku4rlubTluqYgPCBrb24nJ25lbmRvXCA7CivlkITmnIggPCBrYWt1dHN1a2lcIDsKK+auteiiiyA8IGRhbmJ1a3Vyb1wgOwor56S+5Lya5bGkIDwgc2hha2Fpc291XCA7CivmgJ3mmKXmnJ8gPCBzaGlzaHVua2lcIDsKK+aUvuWwhOaApyA8IGhvdXNoYXNlaVwgOwor6Jmr5aqS6IqxIDwgY2h1dWJhaWthXCA7CivliqDmjIHnpYjnpbcgPCBrYWppa2l0b3VcIDsKK+WGheWQkeaApyA8IG5haWtvdXNlaVwgOwor5YSq5b6F5Yi4IDwgeXV1dGFpa2VuXCA7Civlm5vkurrntYQgPCB5b25pbmd1bWlcIDsKK+mAgOWssOeahCA8IHRhaWVpdGVraVwgOwor5ZaE5b6M562WIDwgemVuZ29zYWt1XCA7Civlj47msqEgPCBzaHV1Ym90c3VcIDsKK+mJhOWxkSA8IHRldHN1a3V6dVwgOwor5Yqp5omL5bitIDwgam9zaHVzZWtpXCA7CivngavmnKjph5EgPCBrYW1va3VraW5cIDsKK+WNk+ethiA8IHRha3VoaXRzdVwgOwor5rCP5a2Q5bizIDwgdWppa29jaG91XCA7CivnmoflpKrlkI4gPCBrb3V0YWlnb3VcIDsKK+WPluasoSA8IHRvcml0c3VnaVwgOwor54m55pS76ZqKIDwgdG9ra291dGFpXCA7CivljZPnq4sgPCB0YWt1cml0c3VcIDsKK+mBuuiogOiAhSA8IHl1aWdvbnNoYVwgOwor6YO35Zyf5Y+yIDwga3lvdWRvc2hpXCA7CivmraPpgZMgPCBtYXNhbWljaGlcIDsKK+S7mOWxnuagoSA8IGZ1em9rdWtvdVwgOwor5rKI5rKhIDwgY2hpbmJvdHN1XCA7CivntbHmsrvogIUgPCB0b3VjaGlzaGFcIDsKK+WQjeS6uuiKuCA8IG1laWppbmdlaVwgOwor5YeE5paH5Y+lIDwgc3Vnb21vbmt1XCA7CivmiKbngb3ogIUgPCBzZW5zYWlzaGFcIDsKK+ippuS9nOapnyA8IHNoaXNha3VraVwgOwor6buE5p6v6Iy2IDwga2lnYXJhY2hhXCA7Civog4PohbjolqwgPCBpY2hvdXlha3VcIDsKK+avkuiIjCA8IGRva3V6ZXRzdVwgOwor6Zm96Zu75a2QIDwgeW91ZGVuc2hpXCA7Civno6jmsYEgPCB0b2dpc2hpcnVcIDsKK+aWh+auiuanmCA8IG1vbmp1c2FtYVwgOwor5b256IG3IDwgeWFrdXNob2t1XCA7Civku5jlsZ7mm7ggPCBmdXpva3VzaG9cIDsKK+iojuirluiAhSA8IHRvdXJvbnNoYVwgOwor5aSa5rGX55eHIDwgdGFrYW5zaG91XCA7CivnoqfnjokgPCBoZWtpZ3lva3VcIDsKK+aKleaJi+mZoyA8IHRvdXNodWppblwgOwor5Lit57aZ5omAIDwgY2h1dWtlaWpvXCA7CivmoLnmi6DlnLAgPCBrb25reW9jaGlcIDsKK+azleS6uueojiA8IGhvdWppbnplaVwgOwor5Zyw5YWD5rCRIDwgamltb3RvbWluXCA7CivlubTmnJ/ogIUgPCBuZW5raW1vbm9cIDsKK+mFt+eGsSA8IGtva3VuZXRzdVwgOwor6Iqx5Y2J5ZyS6Iq4IDwga2FraWVuZ2VpXCA7Civpn7Pmpb3mgKcgPCBvbmdha3VzZWlcIDsKK+iiq+WRiuS6uiA8IGhpa29rdW5pblwgOwor5paH5YyW5bqBIDwgYnVua2FjaG91XCA7CivlgY/lkJHmnb8gPCBoZW5rb3ViYW5cIDsKK+iDjOS7u+e9qiA8IGhhaW5pbnphaVwgOwor5YKN6Kaz6ICFIDwgYm91a2Fuc2hhXCA7CivolLXmtZogPCBrdXJhemFyYWVcIDsKK+aYn+eKtuS9kyA8IHNlaWpvdXRhaVwgOwor5raI5YyW5YmkIDwgc2hvdWthemFpXCA7CivmrKflt57niYggPCBvdXNodXViYW5cIDsKK+WSjOijveiLseiqniA8IHdhc2VpZWlnb1wgOwor5Y+j5pepIDwga3VjaGliYXlhXCA7CivlsI/osYbnsqUgPCBhenVraWdheXVcIDsKK+axgeeJqSA8IHNoaXJ1bW9ub1wgOwor57O75Zuz5a2mIDwga2VpenVnYWt1XCA7Civphbfng4ggPCBrb2t1cmV0c3VcIDsKK+S7ruWQjeaJi+acrCA8IGthbmFkZWhvblwgOwor6JOE56mNIDwgY2hpa3VzZWtpXCA7Civmm7jnsKHnrosgPCBzaG9rYW5zZW5cIDsKK+WGjemFjeWIhiA8IHNhaWhhaWJ1blwgOwor5byx6JmrIDwgeW93YW11c2hpXCA7CivljZTorbDlrpggPCBreW91Z2lrYW5cIDsKK+WQjOmhnumghSA8IGRvdXJ1aWtvdVwgOwor6Ieq6Lui6Lu4IDwgaml0ZW5qaWt1XCA7Civlv6Dng4ggPCBjaHV1cmV0c3VcIDsKK+S4iueUsuadvyA8IGpvdWthbnBhblwgOwor5oOc5YilIDwgc2VraWJldHN1XCA7CivlhajlnLDmlrkgPCB6ZW5jaGlob3VcIDsKK+S8muekvuazlSA8IGthaXNoYWhvdVwgOwor5rS75YqHIDwga2F0c3VnZWtpXCA7CivlpYnku5Xlk4EgPCBob3VzaGloaW5cIDsKK+aIquaLs+mBkyA8IHNla2tlbmRvdVwgOwor5Y+w5omAIDwgZGFpZG9rb3JvXCA7Civku5XoiJ7lsYsgPCBzaGltb3RheWFcIDsKK+aKmOiht+ahiCA8IHNldGNodXVhblwgOwor6Iiq56m66ZqKIDwga291a3V1dGFpXCA7Civonabon4flj6MgPCBnYW1hZ3VjaGlcIDsKK+emgeatouazlSA8IGtpbnNoaWhvdVwgOwor6YGT5YW35pa5IDwgZG91Z3VrYXRhXCA7CivlvoznqIsgPCBub2NoaWhvZG9cIDsKK+aXpumCo+iKuCA8IGRhbicnbmFnZWlcIDsKK+aJtumkiuaWmSA8IGZ1eW91cnlvdVwgOwor5byT6KGTIDwga3l1dWp1dHN1XCA7CivkuI3kv6Hlv4MgPCBmdXNoaW5qaW5cIDsKK+mBoOi/kSA8IG9jaGlrb2NoaVwgOwor5Yqb6KqsIDwgcmlraXNldHN1XCA7CivlubPlronmnJ0gPCBoZWlhbmNob3VcIDsKK+WGhemHjuW4rSA8IG5haXlhc2VraVwgOwor5Zug5p6c5b6LIDwgaW5nYXJpdHN1XCA7Civoi7Hlkozovp7lhbggPCBlaXdhaml0ZW5cIDsKK+i7vea8lOWKhyA8IGtlaWVuZ2VraVwgOwor5LqI5YKZ5Lya6K2wIDwgeW9iaWthaWdpXCA7Civmnb/ph5Hlt6UgPCBiYW5raW5rb3VcIDsKK+WumuS+oeihqCA8IHRlaWthaHlvdVwgOwor56+k5b+X5a62IDwgdG9rdXNoaWthXCA7CivptKzoibIgPCB1Z3Vpc3Vpcm9cIDsKK+ippumok+WgtCA8IHNoaWtlbmpvdVwgOwor5peF6KGM6ICFIDwgcnlva291c2hhXCA7Civmra/pvabngo4gPCBzaGlnaW4nJ2VuXCA7Civom7jlnYrkuLsgPCB0YWtvYm91enVcIDsKK+WNmueJqSA8IGhha3VidXRzdVwgOwor5Y+C5pS/5a6YIDwgc2Fuc2Vpa2FuXCA7Civou43kuovnmoQgPCBndW5qaXRla2lcIDsKK+WPpOmKreWtpiA8IGtvc2VuZ2FrdVwgOwor6LuN5a6Y5oayIDwgZ3Vua2Fua2VuXCA7CivplqLmlbDoq5YgPCBrYW5zdXVyb25cIDsKK+ayu+eZguiyuyA8IGNoaXJ5b3VoaVwgOwor5q+S562GIDwgZG9rdWhpdHN1XCA7CivlkZHlj6MgPCBub21pZ3VjaGlcIDsKK+WRveS5niA8IGlub2NoaWdvaVwgOwor5p2/6YeR5bGLIDwgYmFua2luJyd5YVwgOwor5pON6LuK5aC0IDwgc291c2hham91XCA7CivmipXono3os4cgPCB0b3V5dXVzaGlcIDsKK+ekvuS6pOaApyA8IHNoYWtvdXNlaVwgOwor5pOs54iG5by+IDwgZ2liYWt1ZGFuXCA7Civnq7nonLvom4kgPCB0YWtldG9uYm9cIDsKK+aBi+W/gyA8IGtvaWdva29yb1wgOwor6LaF5YWa5rS+IDwgY2hvdXRvdWhhXCA7CivllY/poYzlpJYgPCBtb25kYWlnYWlcIDsKK+S4gOiIrOeahCA8IGlwcGFudGVraVwgOwor6LOH5pys6YeRIDwgc2hpaG9ua2luXCA7Civmgqrlj6MgPCB3YXJ1Z3VjaGlcIDsKK+eUt+WtkOeUqCA8IGRhbnNoaXlvdVwgOwor5Yid6ZuqIDwgaGF0c3V5dWtpXCA7CivnpL7kvJrlhZogPCBzaGFrYWl0b3VcIDsKK+WOreS4lueahCA8IGVuc2VpdGVraVwgOwor5byx6IWwIDwgeW93YWdvc2hpXCA7CivoqJPnt7TnlJ8gPCBrdW5yZW5zZWlcIDsKK+mAhumemCA8IGd5YWt1emF5YVwgOwor6LSI5ZGI5pysIDwgem91dGVpYm9uXCA7CivkuozpmaLliLbluqYgPCBuaWluc2VpZG9cIDsKK+W5tOmggyA8IHRvc2hpZ29yb1wgOwor5a625peP5rOVIDwga2F6b2t1aG91XCA7CivkurrmsJfmoKogPCBuaW5raWthYnVcIDsKK+iqreW+jOaEnyA8IGRva3Vnb2thblwgOwor5Y2Y57Sw6IOeIDwgdGFuc2FpYm91XCA7Civps7Tnpr3poZ4gPCBtZWlraW5ydWlcIDsKK+WGhemDqOeahCA8IG5haWJ1dGVraVwgOwor57e05YW15aC0IDwgcmVucGVpam91XCA7CivlpI/mnJ/mmYLplpMgPCBrYWtpamlrYW5cIDsKK+Wkp+WJjeaPkCA8IGRhaXplbnRlaVwgOwor552A6Zm4IDwgY2hha3VyaWt1XCA7Civlho3lvpPlhYQgPCBzYWlqdXVrZWlcIDsKK+WRiuWIpSA8IGtva3ViZXRzdVwgOwor5Y+v5YuV5qmLIDwga2Fkb3VreW91XCA7CivmsLTmsrkgPCBtaXp1YWJ1cmFcIDsKK+awt+awtCA8IGtvb3JpbWl6dVwgOwor6Z+z5qW95aCCIDwgb25nYWt1ZG91XCA7CivojZLpmqDlhYMgPCBzYXlhaW5nZW5cIDsKK+S6leaIuOWxi+W9oiA8IGlkb3lha2F0YVwgOwor5rSX56S85ZCNIDwgc2VucmVpbWVpXCA7Civnj77mpa3lk6EgPCBnZW5neW91aW5cIDsKK+S4gOW3peWkqyA8IGhpdG9rdWZ1dVwgOwor5YmN6Ly/IDwgc2FraWdvc2hpXCA7Civlj7flrqQgPCBnb3VzaGl0c3VcIDsKK+iGneWwj+WDpyA8IGhpemFrb3pvdVwgOwor6Ieq5bex55+b55u+IDwgamlrb211anVuXCA7CivkvZzoqZ7lrrYgPCBzYWt1c2hpa2FcIDsKK+S9nOeCuueahCA8IHNha3VpdGVraVwgOwor5bCP5a6H5a6ZIDwgc2hvdXVjaHV1XCA7CivpoqjmsLTlrrMgPCBmdXVzdWlnYWlcIDsKK+Wkp+i7iui8qiA8IGRhaXNoYXJpblwgOwor5pS55a6a54mIIDwga2FpdGVpaGFuXCA7CivnpL7kvJrkurogPCBzaGFrYWlqaW5cIDsKK+aCquW9semfvyA8IGFrdWVpa3lvdVwgOwor6KW/6YOo5YqHIDwgc2VpYnVnZWtpXCA7Civpm5HosqjllYYgPCB6YWtrYXNob3VcIDsKK+WKo+etieaEnyA8IHJldHRvdWthblwgOwor5Ye66aGYIDwgc2h1dHN1Z2FuXCA7CivpgI/mmI7mgKcgPCB0b3VtZWlzZWlcIDsKK+WHuumhjCA8IHNodXRzdWRhaVwgOwor6Iul5aSr5ammIDwgd2FrYWZ1dWZ1XCA7CivpsZfpm7IgPCB1cm9rb2d1bW9cIDsKK+m0g+iIjCA8IGdla2l6ZXRzdVwgOwor6Zmw6Zm96YGTIDwgb25teW91ZG91XCA7CivkvJHmhqnmiYAgPCBreXV1a2Vpam9cIDsKK+mFjee1puaJgCA8IGhhaWt5dXVqb1wgOwor6KOF6Lqr5YW3IDwgc291c2hpbmd1XCA7CivnhKHmrKDluK0gPCBtdWtlc3Nla2lcIDsKK+iHquWItuW/gyA8IGppc2Vpc2hpblwgOwor6YCa6YeIIDwgdHN1dXNoYWt1XCA7CivnoILnspIgPCBzdW5hdHN1YnVcIDsKK+WJr+S9nOeUqCA8IGZ1a3VzYXlvdVwgOwor5YaN6YG45oyZIDwgc2Fpc2Vua3lvXCA7CivpmqDljL/ogIUgPCBpbnRva3VzaGFcIDsKK+WQjOS6uueoriA8IGRvdWppbnNodVwgOwor6YGL6YCB5qWtIDwgdW5zb3VneW91XCA7CivlhoXli5nnnIEgPCBuYWltdXNob3VcIDsKK+eCremFuOawtCA8IHRhbnNhbnN1aVwgOwor6KGb55Sf55qEIDwgZWlzZWl0ZWtpXCA7Civlho3nmbrooYwgPCBzYWloYWtrb3VcIDsKK+mBuuiogOeKtiA8IHl1aWdvbmpvdVwgOwor6YCf6YGUIDwgc29rdXRhdHN1XCA7CivngrnnnLzmsLQgPCB0ZW5nYW5zdWlcIDsKK+i7veWQiOmHkSA8IGtlaWdvdWtpblwgOwor5LiA55m65bGLIDwgaXBwYXRzdXlhXCA7Civlh7rpmaMgPCBzaHV0c3VqaW5cIDsKK+WFqOijveWTgSA8IHplbnNlaWhpblwgOwor6YCa6YGUIDwgdHN1dXRhdHN1XCA7Civlv5zlj6zogIUgPCBvdXNob3VzaGFcIDsKK+WInemHnCA8IGhhdHN1Z2FtYVwgOwor5Y+k5Y2w57SZIDwgZnVydWluc2hpXCA7Civos4fmnKzosqEgPCBzaGlob256YWlcIDsKK+Wbnumhp+eahCA8IGthaWtvdGVraVwgOwor5LqM6Kaq562JIDwgbmlzaGludG91XCA7CivkuqTmiKbmqKkgPCBrb3VzZW5rZW5cIDsKK+W6g+WgseiqjCA8IGtvdWhvdXNoaVwgOwor5L6L5bm056WtIDwgcmVpbmVuc2FpXCA7CivkuojpmLLolqwgPCB5b2JvdXlha3VcIDsKK+WSjOWjsOWtpiA8IHdhc2VpZ2FrdVwgOwor5Ye66ZaAIDwgc2h1dHN1bW9uXCA7Civpn7Pmpb3lj7IgPCBvbmdha3VzaGlcIDsKK+iQjue4ruiFjiA8IGlzaHVrdWppblwgOwor55uX6IG05ZmoIDwgdG91Y2hvdWtpXCA7CivkuojntITph5EgPCB5b3lha3VraW5cIDsKK+mHo+WggCA8IHRzdXJpYm9yaVwgOwor5pil5aC05omAIDwgaGFydWJhc2hvXCA7Civnp5/lurjoqr8gPCBzb3lvdWNob3VcIDsKK+i/kemggyA8IGNoaWthZ29yb1wgOwor6bO26IG3IDwgdG9iaXNob2t1XCA7Civljp/lrZDoq5YgPCBnZW5zaGlyb25cIDsKK+eEoeapn+eJqSA8IG11a2lidXRzdVwgOwor5rG66K2w5qGIIDwga2V0c3VnaWFuXCA7CivlibXkvZzlrrYgPCBzb3VzYWt1a2FcIDsKK+eIm+eGn+acnyA8IHJhbmp1a3VraVwgOwor5Lit6ZaT5rS+IDwgY2h1dWthbmhhXCA7Civnn7PnrYYgPCBzZWtpaGl0c3VcIDsKK+mHjOeoi+aomSA8IHJpdGVpaHlvdVwgOwor6LOH5pys6KuWIDwgc2hpaG9ucm9uXCA7Civku4rmp5jmrYwgPCBpbWF5b3V1dGFcIDsKK+efs+eruSA8IHNla2ljaGlrdVwgOwor5byV57axIDwgaGlraWR6dW5hXCA7CivkvJrmtKXloZcgPCBhaWR6dW51cmlcIDsKK+S4uOWdiuS4uyA8IG1hcnVib3V6dVwgOwor56e75qSN5oCnIDwgaXNob2t1c2VpXCA7Civnn63nrZIgPCB0YW5kenV0c3VcIDsKK+WIpeWkqeWcsCA8IGJldHRlbmNoaVwgOwor5q+S54mpIDwgZG9rdWJ1dHN1XCA7CivljbPml6UgPCBzb2t1aml0c3VcIDsKK+mYsuepuuWjlSA8IGJvdWt1dWdvdVwgOwor6YCD6YGTIDwgbmlnZW1pY2hpXCA7CivpgYvpgIHmlpkgPCB1bnNvdXJ5b3VcIDsKK+elnuS4uyA8IGthbicnbnVzaGlcIDsKK+W5vemciuiIuSA8IHl1dXJlaXNlblwgOwor5Lyv5YKZ57eaIDwgaGFrdWJpc2VuXCA7Civog4Pohbjnl4UgPCBpY2hvdWJ5b3VcIDsKK+WNseapn+euoeeQhiA8IGtpa2lrYW5yaVwgOwor5ZCI5Y2wIDwgYWlqaXJ1c2hpXCA7Civln7rnpI7kvZPmuKkgPCBraXNvdGFpb25cIDsKK+WNkualrSA8IHNvdHN1Z3lvdVwgOwor5ZGK56S65p2/IDwga29rdWppYmFuXCA7CivlsI/kvZzkurogPCBrb3Nha3VuaW5cIDsKK+mboumWk+etliA8IHJpa2Fuc2FrdVwgOwor5Yud552AIDwgc2hvdWNoYWt1XCA7CivlvLEgPCBuYXlvbmF5b1wgOwor6LmyIDwgdHN1a3ViYWlcIDsKK+WnkSA8IHNodXV0b21lXCA7CivloYogPCBrYXRhbWFyaVwgOwor5aCkIDwgdHN1dHN1bWlcIDsKK+m8kyA8IHRzdWR6dW1pXCA7CivmupAgPCBtaW5hbW90b1wgOwor6baPIDwgbml3YXRvcmlcIDsKK+WPoiA8IGt1c2FtdXJhXCA7CivljbAgPCBzaGlydXNoaVwgOwor6a2CIDwgdGFtYXNoaWlcIDsKK+iFuCA8IGhhcmF3YXRhXCA7Civmna8gPCBzYWthenVraVwgOwor6Zu3IDwga2FtaW5hcmlcIDsKK+mbgSA8IGthcmlnYW5lXCA7CivmmoEgPCBha2F0c3VraVwgOwor57SrIDwgbXVyYXNha2lcIDsKK+aOjCA8IHRlbm9oaXJhXCA7CivmipEgPCBzb21vc29tb1wgOwor5oeQIDwgZnV0b2tvcm9cIDsKK+WQkOWHuiA8IHRvc2h1dHN1XCA7Civph5HlnosgPCBrYW5hZ2F0YVwgOwor55+z56WeIDwgc2hha3VqaW5cIDsKK+WQjeWIuSA8IG1laXNhdHN1XCA7CivlvL7nnYAgPCBkYW5jaGFrdVwgOwor6JC957GNIDwgcmFrdXNla2lcIDsKK+efouetkiA8IHlhZHp1dHN1XCA7Civlv4PmnI0gPCBzaGlucHVrdVwgOwor6YCG6LuiIDwgZ3lha3V0ZW5cIDsKK+WQiOWKmyA8IGdvdXJ5b2t1XCA7CivolpnliIAgPCBuYWdpbmF0YVwgOwor5ZCM5YiXIDwgZG91cmV0c3VcIDsKK+awkeaVsOiomCA8IG1pbnN1dWtpXCA7CivpiYTnoLLluqcgPCB0ZXBwb3V6YVwgOwor55uC6Jit55uG5LyaIDwgdXJhYm9uJydlXCA7CivmlofljJbkurogPCBidW5rYWppblwgOwor5pyo5bel5omAIDwgbW9ra291am9cIDsKK+WMu+enkeatr+enkSA8IGlrYXNoaWthXCA7Civnm7TpnaIgPCBjaG9rdW1lblwgOwor5LiA6Iis5rOVIDwgaXBwYW5ob3VcIDsKK+W+qealrSA8IGZ1a3VneW91XCA7CivoloTlj6MgPCB1c3VrdWNoaVwgOwor5Yq05YuZ6ICFIDwgcm91bXVzaGFcIDsKK+iNiemjnyA8IHNvdXNob2t1XCA7CivmlofluqvmnKwgPCBidW5rb2JvblwgOwor5bi46ZeHIDwgdG9rb3lhbWlcIDsKK+WQiOWGiiA8IGdvdXNhdHN1XCA7CivliaXokL0gPCBoYWt1cmFrdVwgOwor6Iy26auqIDwgY2hhcGF0c3VcIDsKK+mAn+iqrSA8IHNva3Vkb2t1XCA7CivljrPlr4YgPCBnZW5taXRzdVwgOwor5Luj55CG5Lq6IDwgZGFpcmluaW5cIDsKK+a1t+awtOedgCA8IGthaXN1aWdpXCA7Civlh7rpg7cgPCBzaHVra3lvdVwgOwor5Y6a5bqVIDwgYXRzdXpva29cIDsKK+iHquW3sea1gSA8IGppa29yeXV1XCA7CivlvJXnqpMgPCBoaWtpbWFkb1wgOwor5LiB5a+n6KqeIDwgdGVpbmVpZ29cIDsKK+WIhui9hCA8IGJ1bmthdHN1XCA7Civpn7Pmpb3kvJogPCBvbmdha2thaVwgOwor5ZCM6IOe5oSbIDwgZG91aG91YWlcIDsKK+mAmuiqrSA8IHRzdXVkb2t1XCA7Civmr5vllJDkurogPCBrZXRvdWppblwgOwor5rCR5LqL5LiKIDwgbWluamlqb3VcIDsKK+a3oeW9qeeUuyA8IHRhbnNhaWdhXCA7CivmnJ/lvoXlgKQgPCBraXRhaWNoaVwgOwor6YGc6ImyIDwgc29uc2hva3VcIDsKK+WFqOijuOS9kyA8IHplbnJhdGFpXCA7Civnq4vkvZPmtL4gPCByaXR0YWloYVwgOwor6L+96LehIDwgdHN1aXNla2lcIDsKK+WLsueItSA8IGt1bnNoYWt1XCA7CivorbfpgIHoiLkgPCBnb3NvdXNlblwgOwor6YCa6KizIDwgdHN1dXlha3VcIDsKK+mHjuibruS6uiA8IHlhYmFuamluXCA7Civlj6rlj6ogPCB0YWRhdGFkYVwgOwor5Y+L5Z6jIDwgdG9tb2dha2lcIDsKK+Wls+aAp+i7jSA8IGpvc2VpZ3VuXCA7CivlkIzotqPlkbMgPCBkb3VzaHVtaVwgOwor5Y2K5pyIIDwgaGFudHN1a2lcIDsKK+WPr+WLleaApyA8IGthZG91c2VpXCA7CivkuI3ppIrnlJ8gPCBmdXlvdWpvdVwgOwor6aO95ZKM54K5IDwgaG91d2F0ZW5cIDsKK+ecn+i/uSA8IHNoaW5zZWtpXCA7Civml6LlvoDnl4cgPCBraW91c2hvdVwgOwor5ZCJ5L6LIDwga2l0c3VyZWlcIDsKK+i/kemJhCA8IGtpbnRldHN1XCA7CivojLbpo68gPCBjaGFtZXNoaVwgOwor5Yil6KiAIDwgYmV0c3VnZW5cIDsKK+aulueUoyA8IHNob2t1c2FuXCA7Civph5Hlj6MgPCBraW5ndWNoaVwgOwor6YCg6KGAIDwgem91a2V0c3VcIDsKK+mzpeexoCA8IHRvcmlrYWdvXCA7Civli4PnmbogPCBib3BwYXRzdVwgOwor5bu656+JIDwga2VuY2hpa3VcIDsKK+S4gOiHtOeCuSA8IGl0Y2hpdGVuXCA7Civlh7rouqsgPCBzaHVzc2hpblwgOwor562G6KiY6ICFIDwgaGlra2lzaGFcIDsKK+WNgeaciCA8IGp1dWdhdHN1XCA7CivpgIHpoqjmqZ8gPCBzb3VmdXVraVwgOwor5Y+j5Y2gIDwga3VjaGl1cmFcIDsKK+Wnq+W+oeWtkCA8IGhpbWVtaWtvXCA7CivmiYvphY3mm7ggPCB0ZWhhaXNob1wgOwor5q2j56uLIDwgc2Vpcml0c3VcIDsKK+mvqOmqqCA8IGdlaWtvdHN1XCA7CivmsYLlv4MgPCBreXV1c2hpblwgOwor55u46Y6aIDwgYWlkenVjaGlcIDsKK+ecvOitmCA8IGdhbnNoaWtpXCA7CivohLPnj4rnkZogPCBub3VzYW5nb1wgOwor5LiK5bGk5ZyfIDwgam91c291ZG9cIDsKK+W/g+aLjSA8IHNoaW5wYWt1XCA7CivkuojntIToqp4gPCB5b3lha3Vnb1wgOwor5b285q2kIDwga2FyZWtvcmVcIDsKK+ayueanveiIuSA8IHl1c291c2VuXCA7Civmra/no6ggPCBoYW1pZ2FraVwgOwor5bid6ZeVIDwgdGVpa2V0c3VcIDsKK+S4gOWvuOimiyA8IGNob3R0b21pXCA7CivkuojpmLLnt5ogPCB5b2JvdXNlblwgOwor5YuY5a6a5pelIDwga2Fuam91YmlcIDsKK+WGhemwkCA8IHVjaGl3YW5pXCA7Civlj6TlibUgPCBmdXJ1a2l6dVwgOwor6bSo54yfIDwga2Ftb3J5b3VcIDsKK+ayoeWNtCA8IGJva2t5YWt1XCA7CivlhoXluJHph5EgPCBuYWlkb2tpblwgOwor6YeR5YqbIDwga2lucnlva3VcIDsKK+WPs+WBtCA8IG1pZ2lnYXdhXCA7Civlh7rotoUgPCBzaHV0Y2hvdVwgOwor5Y+j5YmNIDwga3VjaGltYWVcIDsKK+S8nemAgei3ryA8IGRlbnNvdXJvXCA7CivliLvoloQgPCBrb2t1aGFrdVwgOwor6YqA57Sw5belIDwgZ2luemFpa3VcIDsKK+S6uuebuOimiyA8IG5pbnNvdW1pXCA7CivmsLTmgKcgPCBtaXp1c2hvdVwgOwor5bqD6KKWIDwgaGlyb3NvZGVcIDsKK+mHjeWKmyA8IGp1dXJ5b2t1XCA7CivpoqjliLrnlLsgPCBmdXVzaGlnYVwgOwor55u46YmEIDwgc291dGV0c3VcIDsKK+iNt+i7iiA8IG5pZ3VydW1hXCA7Civli5XniakgPCBkb3VidXRzdVwgOwor5Y2I6aSQ5LyaIDwgZ29zYW5rYWlcIDsKK+efpeeVpSA8IGNoaXJ5YWt1XCA7Civnm67pjLIgPCBtb2t1cm9rdVwgOwor54Sh5qyg5YukIDwgbXVrZWtraW5cIDsKK+avlOmHjeioiCA8IGhpanV1a2VpXCA7CivliIfoq5YgPCBzZXRzdXJvblwgOwor6YGL6YCB5bqXIDwgdW5zb3V0ZW5cIDsKK+WHtuiziiA8IGt5b3V6b2t1XCA7Civmk43kvZznm6QgPCBzb3VzYWJhblwgOwor552A6KOFIDwgY2hha3Vzb3VcIDsKK+WcqOW6q+WTgSA8IHphaWtvaGluXCA7CivpgYXohIggPCBjaGlteWFrdVwgOwor5rC05byVIDwgbWl6dWhpa2lcIDsKK+apiOmqqCA8IHRvdWtvdHN1XCA7CivmrrLmu4UgPCBzZW5tZXRzdVwgOwor5Yag6ZuqIDwga2Fuc2V0c3VcIDsKK+WMl+altSA8IGhva2t5b2t1XCA7CivlubvooZMgPCBnZW5qdXRzdVwgOwor5rC35bqKIDwgaHlvdXNob3VcIDsKK+WKg+etliA8IGtha3VzYWt1XCA7CivmsJHkuLvljJYgPCBtaW5zaHVrYVwgOwor5Y2z5bitIDwgc29rdXNla2lcIDsKK+W7tua7numHkSA8IGVudGFpa2luXCA7Civlj4jlj4ggPCBtYXRhbWF0YVwgOwor5rC05bqVIDwgbWluYXNva29cIDsKK+WUkOegtOmiqCA8IGthcmFoYWZ1XCA7Civnm7TphY0gPCBjaG9rdWhhaVwgOwor5YiH6KiAIDwgc2V0c3VnZW5cIDsKK+iHquWFrOawkSA8IGppa291bWluXCA7CivmgKXlkYogPCBreXV1a29rdVwgOwor6YeI5YW4IDwgc2hha3V0ZW5cIDsKK+izouWkq+S6uiA8IGtlbnB1amluXCA7Civmr6vmnKsgPCBnb3VtYXRzdVwgOwor5Y2K5oqYIDwgaGFuc2V0c3VcIDsKK+W5s+iiliA8IGhpcmFzb2RlXCA7CivkuozluqbmiYvplpMgPCBuaWRvZGVtYVwgOwor6a+b6aOvIDwgdGFpbWVzaGlcIDsKK+mBi+i7ouiAhSA8IHVudGVuc2hhXCA7CivliIfopoEgPCBzZXRzdXlvdVwgOwor5be76ZuyIDwgbWFraWd1bW9cIDsKK+S4jeagvOWlvSA8IGJ1a2Fra291XCA7Civlgqzmt6vliaQgPCBzYWlpbnphaVwgOwor5q6L54mpIDwgemFuYnV0c3VcIDsKK+aghOmkiuefrSA8IGVpeW91dGFuXCA7CivmhYvjgIUgPCB3YXphd2F6YVwgOwor5Yqr55WlIDwgZ291cnlha3VcIDsKK+WPjeWIpSA8IHRhbmJldHN1XCA7CivmraPnm7QgPCBzaG91amlraVwgOwor5Yy75a2m55WMIDwgaWdha3VrYWlcIDsKK+WKueeOhyA8IGtvdXJpdHN1XCA7CivnhKHluLjmhJ8gPCBtdWpvdWthblwgOwor5Y+q5LqLIDwgdGFkYWdvdG9cIDsKK+eiqeWtpiA8IHNla2lnYWt1XCA7Civog4zmoLzlpb0gPCBzZWtha2tvdVwgOwor5bGx5p+75a2QIDwgc2FuemFzaGlcIDsKK+WMu+WtpueUnyA8IGlnYWt1c2VpXCA7CivmsLTltakgPCBtaXp1a2FzYVwgOwor6ZaL5qWt5Yy7IDwga2FpZ3lvdWlcIDsKK+ebtOmAgSA8IGNob2t1c291XCA7CivliIboo4IgPCBidW5yZXRzdVwgOwor5b255p+EIDwgeWFrdWdhcmFcIDsKK+WHjOi+sSA8IHJ5b3Vqb2t1XCA7CivlvovmlocgPCByaXRzdWJ1blwgOwor56iL44CFIDwgaG9kb2hvZG9cIDsKK+WPjuWFpSA8IHNodXVueXV1XCA7Civkvr/ooaPpmoogPCBiZW4nJ2l0YWlcIDsKK+iLpem2jyA8IHdha2Fkb3JpXCA7Civmsojli4cgPCBjaGluJyd5dXVcIDsKK+WPjOWFrSA8IHN1Z29yb2t1XCA7Civlu4PntbYgPCBoYWl6ZXRzdVwgOwor5bm55LqL5LyaIDwga2FuamlrYWlcIDsKK+mBk+ezuCA8IG1pY2hpaXRvXCA7CivlpJrljp/lrZAgPCB0YWdlbnNoaVwgOwor5Ym156uLIDwgc291cml0c3VcIDsKK+WNlOW/gyA8IGt5b3VzaGluXCA7CivljJfmnJ0gPCBob2t1Y2hvdVwgOwor5YuH54OIIDwgeXV1cmV0c3VcIDsKK+aAp+WIpSA8IHNlaWJldHN1XCA7Civli4PnhLYgPCBib3RzdXplblwgOwor5Y2B5a2X5b2iIDwganV1amlrZWlcIDsKK+WNmOW8jyA8IHRhbnNoaWtpXCA7CivlpJbph47miYsgPCBnYWl5YXNodVwgOwor5YGl6IOD6YygIDwga2VuJydpam91XCA7CivplqLopb/ppqwgPCBrYW5zYWliYVwgOwor5oyH56S66KmeIDwgc2hpamlzaGlcIDsKK+WPguWIlyA8IHNhbnJldHN1XCA7CivmmI7ml6XokYkgPCBhc2hpdGFiYVwgOwor5rCX5b+DIDwga2lnb2tvcm9cIDsKK+efrei3nemboiA8IHRhbmt5b3JpXCA7CivkuIDou5LlsYsgPCBpa2tlbicneWFcIDsKK+W3nemiqCA8IGthd2FrYXplXCA7Civoirjlgpnnt5ogPCBnZWliaXNlblwgOwor5YiA6KGTIDwgdG91anV0c3VcIDsKK+WMoeaVkSA8IGt5b3VreXV1XCA7CivmrbvniakgPCBzaGlidXRzdVwgOwor5Yiz6IifIDwga3VyaWJ1bmVcIDsKK+mZo+Wkqum8kyA8IGppbmRhaWtvXCA7CivnnJ/lhqzml6UgPCBtYWZ1eXViaVwgOwor5Zub5a2j5aCxIDwgc2hpa2lob3VcIDsKK+WIhuidlSA8IGJ1bnNob2t1XCA7Civnmb3ps6UgPCBoYWt1Y2hvdVwgOwor5YW16aOfIDwgaGVpc2hva3VcIDsKK+auv+anmCA8IHRvbm9zYW1hXCA7Civlj4LlhaUgPCBzYW4nJ255dXVcIDsKK+WPl+S7mCA8IHVrZXRzdWtlXCA7CivljZjluK8gPCBoaXRvZW9iaVwgOwor55+v5r+AIDwga3lvdWdla2lcIDsKK+aAquWCkSA8IGthaWtldHN1XCA7CivliLrogqEgPCBzYXN1bWF0YVwgOwor5rGy5Y+WIDwga3VtaXRvcmlcIDsKK+eggua1nCA8IHN1bmFoYW1hXCA7CivnuYHoj6/ooZcgPCBoYW5rYWdhaVwgOwor6KiT57e05omAIDwga3VucmVuam9cIDsKK+mBlOethiA8IHRhcHBpdHN1XCA7CivmtbfmsLTmuKkgPCBrYWlzdWlvblwgOwor562L6Zu75ZuzIDwga2luZGVuenVcIDsKK+WJsuekvCA8IGthdHN1cmVpXCA7Civmr47mnIggPCBtYWl0c3VraVwgOwor5rOM5bC/5bm+IDwgaGlueW91a2lcIDsKK+WNh+W9oiA8IG1hc3VnYXRhXCA7CivkuI3lronlv4MgPCBmdWFuc2hpblwgOwor5bed6ZynIDwga2F3YWdpcmlcIDsKK+WKh+eahCA8IGdla2l0ZWtpXCA7CivoqKrllY/nnYAgPCBob3Vtb25naVwgOwor5YiG6JiWIDwgYnVua2V0c3VcIDsKK+S8muekvuWToSA8IGthaXNoYWluXCA7Civlj5TkuJYgPCBzaHVrdXNlaVwgOwor5YWA6be5IDwgaGFnZXRha2FcIDsKK+azleeOi+aoqSA8IGhvdW91a2VuXCA7Civli5jmsbogPCBrYW5rZXRzdVwgOwor5LiN5bCO5L2TIDwgZnVkb3V0YWlcIDsKK+WNmOippuWQiCA8IHRhbnNoaWFpXCA7CivljbPlppkgPCBzb2t1bXlvdVwgOwor5Ymj56qBIDwga2VudHN1a3VcIDsKK+W/heWumiA8IGhpdHN1am91XCA7CivliY3ntIQgPCB6ZW4nJ3lha3VcIDsKK+WKh+eXmyA8IGdla2l0c3V1XCA7CivljYjlubQgPCB1bWFkb3NoaVwgOwor5bmz6JC9IDwgaGlyYW9jaGlcIDsKK+ehrOW8jyA8IGtvdXNoaWtpXCA7CivlhpnnlJ/nlLsgPCBzaGFzZWlnYVwgOwor5bi46K2YIDwgam91c2hpa2lcIDsKK+euoeeQhuS6uiA8IGthbnJpbmluXCA7Civlv4PlraYgPCBzaGluZ2FrdVwgOwor5q+O5pelIDwgbWFpbmljaGlcIDsKK+eZvemqqCA8IGhha2tvdHN1XCA7CivkuIDlrrboqIAgPCBpa2thZ290b1wgOwor5Y2H5bitIDwgbWFzdXNla2lcIDsKK+WQjOacn+eUnyA8IGRvdWtpc2VpXCA7CivmqKrpoqggPCB5b2tva2F6ZVwgOwor5LiB5a6a6KaPIDwgdGVpam91Z2lcIDsKK+mwkOi2syA8IHdhbmlhc2hpXCA7CivpgYXnrYYgPCBjaGloaXRzdVwgOwor5q+N5pa5IDwgaGFoYWthdGFcIDsKK+WuiOWCmemaiiA8IHNodWJpdGFpXCA7CivmsLflo4EgPCBoeW91aGVraVwgOwor556e552AIDwgbWFuY2hha3VcIDsKK+i+m+i+myA8IGthcmFnYXJhXCA7Civnm7jorZggPCBzb3VzaGlraVwgOwor6I+c5664IDwgc2FpYmFzaGlcIDsKK+S9teWQiOe9qiA8IGhlaWdvemFpXCA7CivpgLHntaYgPCBzaHV1a3l1dVwgOwor5YWr6Z2iIDwgaGFjaGltZW5cIDsKK+WNmuWtpiA8IGhha3VnYWt1XCA7CivmrpbmsJEgPCBzaG9rdW1pblwgOwor6YCy57SaIDwgc2hpbmt5dXVcIDsKK+awl+eEoeeyviA8IGtpYnVzaG91XCA7CivkuInmnprnm64gPCBzYW5tYWltZVwgOwor5YmN56+AIDwgemVuc2V0c3VcIDsKK+W+l+W/gyA8IHRva3VzaGluXCA7CivmiYvphY3luKsgPCB0ZWhhaXNoaVwgOwor552A6Ii5IDwgY2hha3VzZW5cIDsKK+W8lea9riA8IGhpa2lzaGlvXCA7CivluLjoqK0gPCBqb3VzZXRzdVwgOwor54Sh6Ieq6KaaIDwgbXVqaWtha3VcIDsKK+W+l+W+lyA8IHRva3V0b2t1XCA7CivokL3mva4gPCByYWt1Y2hvdVwgOwor5byx5q+SIDwgamFrdWRva3VcIDsKK+WOpeWGtyA8IGtldHN1cmVpXCA7CivolLXlhYMgPCBrdXJhbW90b1wgOwor5bu654mpIDwgdGF0ZW1vbm9cIDsKK+atu+a7hSA8IHNoaW1ldHN1XCA7Civli4fmsbogPCB5dXVrZXRzdVwgOwor5YWI6auYIDwgc2FraWRha2FcIDsKK+eZuumnhSA8IGhhdHN1ZWtpXCA7Civngavkuovms6UgPCBrYWppZG9yb1wgOwor6YCA6ImyIDwgdGFpc2hva3VcIDsKK+awl+WupCA8IGtpc2hpdHN1XCA7Civkurrlt6Xoqp4gPCBqaW5rb3Vnb1wgOwor5pei5b6A5q20IDwga2lvdXJla2lcIDsKK+WGhumMkCA8IG1hcnVnaXJpXCA7CivkuIDoiKzmgKcgPCBpcHBhbnNlaVwgOwor5Yud5qW9IDwgc2hvdXJha3VcIDsKK+W5tOaciOaXpSA8IG5lbmdhcHBpXCA7CivlhY7ppqwgPCB1c2FnaXVtYVwgOwor5b2T5pyIIDwgdG91Z2V0c3VcIDsKK+WNg+WztiA8IGNoaXNoaW1hXCA7CivmqKrpm7IgPCB5b2tvZ3Vtb1wgOwor5aSJ5oiQ5ZmoIDwgaGVuc2Vpa2lcIDsKK+W+kOW+kCA8IHNvcm9zb3JvXCA7CivlhYPpq5ggPCBtb3RvZGFrYVwgOwor5pyq5L+h6ICFIDwgbWlzaGluamFcIDsKK+W4q+iqrCA8IHNoaXNldHN1XCA7CivljIXmkYIgPCBob3VzZXRzdVwgOwor5q6/5pa5IDwgdG9ub2dhdGFcIDsKK+awkeWuvyA8IG1pbnNodWt1XCA7CivkuI3moYjlhoUgPCBmdWFuJyduYWlcIDsKK+iHquajhOmFkiA8IHlha2V6YWtlXCA7CivloZHlvL7mgKcgPCBzb2RhbnNlaVwgOwor5q2m5Zmo5YCJIDwgYnVraWd1cmFcIDsKK+mAo+e1kCA8IHJlbmtldHN1XCA7CivogbTpn7PlmaggPCBjaG91b25raVwgOwor55u06KiAIDwgY2hva3VnZW5cIDsKK+W5s+S7ruWQjSA8IGhpcmFnYW5hXCA7CivlvY7mnIggPCB3YW5nZXRzdVwgOwor5oSf55+l5ZmoIDwga2FuY2hpa2lcIDsKK+W3oemMqyA8IGp1bnNoYWt1XCA7CivlvY7mm7IgPCB3YW5reW9rdVwgOwor55u06KeSIDwgY2hva2tha3VcIDsKK+W7ieebtCA8IHJlbmNob2t1XCA7Civnm7ToppYgPCBjaG9rdXNoaVwgOwor5q275rS7IDwgc2hpa2F0c3VcIDsKK+W/g+WigyA8IHNoaW5reW91XCA7CivlubPohIggPCBoZWlteWFrdVwgOwor5b2T5pelIDwgdG91aml0c3VcIDsKK+WJjeWNiuacnyA8IHplbnBhbmtpXCA7CivlvqnlraYgPCBmdWt1Z2FrdVwgOwor5YWl6ZajIDwgbnl1dWtha3VcIDsKK+epuuirluWutiA8IGt1dXJvbmthXCA7CivmgbXmr5Tlr7/poZQgPCBlYmlzdWdhb1wgOwor5qiq6ZW3IDwgeW9rb25hZ2FcIDsKK+atu+ayoSA8IHNoaWJvdHN1XCA7CivljIXmi6wgPCBob3VrYXRzdVwgOwor5b+g5ZGKIDwgY2h1dWtva3VcIDsKK+W3u+i7uCA8IG1ha2lqaWt1XCA7CivovrLplpHmnJ8gPCBub3VrYW5raVwgOwor55m+6Zu3IDwgaHlha3VyYWlcIDsKK+S4jeizm+aIkCA8IGZ1c2Fuc2VpXCA7Civnmb7pm6MgPCBoeWFrdW5hblwgOwor6aSK6baP5a62IDwgeW91a2Vpa2FcIDsKK+WHuuiKvSA8IHNodXRzdWdhXCA7Civoj4XnrKAgPCBzdWdlZ2FzYVwgOwor5Ymb55u0IDwgZ291Y2hva3VcIDsKK+WNgeS6jOaUryA8IGp1dW5pc2hpXCA7CivliqDmub8gPCBrYXNoaXRzdVwgOwor5qeL5oiQ5q+UIDwga291c2VpaGlcIDsKK+WQkeaXpeiRtSA8IGhpbWF3YXJpXCA7Civnmbrpm7sgPCBoYXRzdWRlblwgOwor5YiG6ISIIDwgYnVubXlha3VcIDsKK+ebo+iosyA8IGthbicneWFrdVwgOwor6YGF552AIDwgY2hpY2hha3VcIDsKK+apn+alreWutiA8IGtpZ3lvdWthXCA7CivlhZrplqUgPCB0b3ViYXRzdVwgOwor5Yil57SNIDwgYmV0c3Vub3VcIDsKK+WIkee9sCA8IGtlaWJhdHN1XCA7CivlhoXpgZQgPCBuYWl0YXRzdVwgOwor5rC05ru45LydIDwgc3Vpa29kZW5cIDsKK+W+oeWsouanmCA8IG9qb3VzYW1hXCA7Civlv4PlmqIgPCBzaGluJydub3VcIDsKK+W9ueW+lyA8IHlha3V0b2t1XCA7Civoh6jluorljLsgPCByaW5zaG91aVwgOwor6YCj56uLIDwgcmVucml0c3VcIDsKK+mDt+aEgSA8IGt5b3VzaHV1XCA7Civlvbflvb8gPCBob3VmdXRzdVwgOwor5bqt55+zIDwgbml3YWlzaGlcIDsKK+WIh+iAhSA8IGtpcmVtb25vXCA7CivpgYXnmbogPCBjaGloYXRzdVwgOwor5qCE6aSK5rqQIDwgZWl5b3VnZW5cIDsKK+WkmuW5tOiNiSA8IHRhbmVuc291XCA7CivojbfljoTku4sgPCBuaXlha2thaVwgOwor5YWD6Z6YIDwgbW90b3NheWFcIDsKK+WKseejgeaQjSA8IHJlaWppc29uXCA7Civlronlhajnk6MgPCBhbnplbmJlblwgOwor6YeN6YW457SgIDwganV1c2Fuc29cIDsKK+W/mOWNtCA8IGJvdWt5YWt1XCA7CivmrbTmrbQgPCByZWtpcmVraVwgOwor5LqM5aGB5omLIDwgbmlydWlzaHVcIDsKK+eiuuS/oSA8IGtha3VzaGluXCA7Civnn7Pmn7EgPCBzZWtpY2h1dVwgOwor5pyo5bel5YW3IDwgbW9ra291Z3VcIDsKK+asoOeVqiA8IGtldHN1YmFuXCA7CivlvbDlvrMgPCBzaG91dG9rdVwgOwor54K555y85ZmoIDwgdGVuZ2Fua2lcIDsKK+aEmuWbs+aEmuWbsyA8IGd1enVndXp1XCA7CivpsYjohbkgPCB0YXJhZnVrdVwgOwor5Ymy54mpIDwgd2FyZW1vbm9cIDsKK+W5leiHoyA8IGJha3VzaGluXCA7CivlhaXpi48gPCBueXV1a3lvdVwgOwor6I6r5aSn5bCPIDwgbWVyaXlhc3VcIDsKK+ijvemLvOaJgCA8IHNlaWtvdWpvXCA7Civou73ptKggPCBrYXJ1Z2Ftb1wgOwor6Zqg6JS95a2QIDwgaW5wZWlzaGlcIDsKK+WLmOWumuWgtCA8IGthbmpvdWJhXCA7Civnvr3lm6PmiYcgPCBoYXVjaGl3YVwgOwor5b+15LuPIDwgbmVuYnV0c3VcIDsKK+egtOaIkuWDpyA8IGhha2Fpc291XCA7CivngKzmiLjniakgPCBzZXRvbW9ub1wgOwor6I+K55+zIDwga2lrdWlzaGlcIDsKK+WGt+ihgCA8IHJlaWtldHN1XCA7CivlubPntbkgPCBoaXJhZ2ludVwgOwor6YWS5ZGRIDwgc2FrZW5vbWlcIDsKK+iRieahnCA8IGhhemFrdXJhXCA7CivnnYDnsbMgPCBjaGFrdWJlaVwgOwor5aSn6Iux5patIDwgZGFpZWlkYW5cIDsKK+W8t+aVtSA8IGt5b3V0ZWtpXCA7CivmsYLlhJ8gPCBreXV1c2hvdVwgOwor6YCa56ewIDwgdHN1dXNob3VcIDsKK+W/oOWDlSA8IGNodXVib2t1XCA7CivmsLTlipsgPCBzdWlyeW9rdVwgOwor5q6L5pyIIDwgemFuZ2V0c3VcIDsKK+WLheabuCA8IGNob2t1c2hvXCA7CivlhYjorbDmqKkgPCBzZW5naWtlblwgOwor5YWx6YCaIDwga3lvdXRzdXVcIDsKK+WPjeaKl+acnyA8IGhhbmtvdWtpXCA7CivmnKzkvJrorbAgPCBob25rYWlnaVwgOwor5YmN55WlIDwgemVucnlha3VcIDsKK+auiuabtCA8IGtvdG9zYXJhXCA7CivlvKbmnIggPCBnZW5nZXRzdVwgOwor6Iux57Gz5Lq6IDwgZWliZWlqaW5cIDsKK+S9jumghuS9jSA8IHRlaWp1bicnaVwgOwor55uu6JasIDwgbWVndXN1cmlcIDsKK+S4jeiAgeaziSA8IGZ1cm91c2VuXCA7CivljZTllYYgPCBreW91c2hvdVwgOwor55m+6YysIDwgaHlha3VyZW5cIDsKK+WFrOmBlCA8IGtvdXRhdHN1XCA7CivlvLHmlbUgPCBqYWt1dGVraVwgOwor6YCG566XIDwgZ3lha3VzYW5cIDsKK+m7meOAhSA8IG1va3Vtb2t1XCA7CivlhavpgZQgPCBoYXR0YXRzdVwgOwor5YWr6YGTIDwgaGFjaGlkb3VcIDsKK+WMl+WxsSA8IGtpdGF5YW1hXCA7Civlib/mu4UgPCBzb3VtZXRzdVwgOwor5ZCN5a6b5Lq6IDwgbmFhdGVuaW5cIDsKK+WSjOawl+iXueiXuSA8IHdha2lhaWFpXCA7Civoh6rnlLHoqakgPCBqaXl1dXNoaVwgOwor5buD54mpIDwgaGFpYnV0c3VcIDsKK+WFrOi/sCA8IGtvdWp1dHN1XCA7Civlv6Dkv6EgPCBjaHV1c2hpblwgOwor55qu6LOqIDwgaGlzaGl0c3VcIDsKK+efs+aWhyA8IGlzaGlidW1pXCA7CivlvaLlvI8gPCBrZWlzaGlraVwgOwor5YeL6JC9IDwgY2hvdXJha3VcIDsKK+aEj+W/l+eahCA8IGlzaGl0ZWtpXCA7CivljbjlgKQgPCBvcm9zaGluZVwgOwor5oim6ZeY5ZOhIDwgc2VudG91aW5cIDsKK+WOn+eUu+WDjyA8IGdlbmdhem91XCA7Civnn63ml6UgPCB0YW5qaXRzdVwgOwor5rC05YWIIDwgbWl6dXNha2lcIDsKK+W3t+iqrCA8IGtvdXNldHN1XCA7CivlpKfohb/pg6ggPCBkYWl0YWlidVwgOwor5YWx6LubIDwga3lvdXlha3VcIDsKK+m7kuOAhSA8IGt1cm9ndXJvXCA7CivliaXnhLwgPCBzdWtpeWFraVwgOwor5ruL6LOA55yMIDwgc2hpZ2FrZW5cIDsKK+mHjeawtOe0oCA8IGp1dXN1aXNvXCA7CivpgKLnnYAgPCBob3VjaGFrdVwgOwor5buD54axIDwgaGFpbmV0c3VcIDsKK+S6uumAoOa5liA8IGppbnpvdWtvXCA7CivlvbnlroUgPCB5YWt1dGFrdVwgOwor5Yiw552AIDwgdG91Y2hha3VcIDsKK+iri+iyoOW4qyA8IHVrZW9pc2hpXCA7CivojLnom7ggPCB5dWRlZGFrb1wgOwor5rC05rqW5ZmoIDwgc3VpanVua2lcIDsKK+a8q+eUu+acrCA8IG1hbmdhaG9uXCA7CivkuI3nnJ/pnaLnm64gPCBmdW1hamltZVwgOwor5YaN6KqsIDwgc2Fpc2V0c3VcIDsKK+mAo+eZuiA8IHJlbnBhdHN1XCA7CivlvqnllLEgPCBmdWt1c2hvdVwgOwor55+l5pelIDwgY2hpbmljaGlcIDsKK+W+tOWPjiA8IGNob3VzaHV1XCA7Civli4XmkrAgPCBjaG9rdXNlblwgOwor5LqS5o+b5oCnIDwgZ29rYW5zZWlcIDsKK+WIhuevgCA8IGJ1bnNldHN1XCA7CivphY3liJcgPCBoYWlyZXRzdVwgOwor56iu56iu55u4IDwgc2h1anVzb3VcIDsKK+WHpue9sCA8IHNob2JhdHN1XCA7CivkuojpmLLms5UgPCB5b2JvdWhvdVwgOwor5a6J5YWo54GvIDwgYW56ZW50b3VcIDsKK+attOacnSA8IHJla2ljaG91XCA7Civliofmr5IgPCBnZWtpZG9rdVwgOwor6L+956m2IDwgdHN1aWt5dXVcIDsKK+ats+acqyA8IHNhaW1hdHN1XCA7CivmqKrou7ggPCB5b2tvamlrdVwgOwor5YiG562GIDwgYnVucGl0c3VcIDsKK+i8r+mMsiA8IHNodXVyb2t1XCA7CivljYrlj6MgPCBoYW5rdWNoaVwgOwor6YGL6YCB5Lq6IDwgdW5zb3VuaW5cIDsKK+WNgeWTsiA8IGp1dHRldHN1XCA7Civnmb7pgbggPCBoeWFrdXNlblwgOwor5LiK6aaW5bC+IDwgam91c2h1YmlcIDsKK+S7j+iIjuWIqSA8IGJ1c3NoYXJpXCA7CivoiIflpKrogIUgPCB5b3RhbW9ub1wgOwor5rqA5aSp5LiLIDwgbWFudGVua2FcIDsKK+W+l+aJi+WLneaJiyA8IGV0ZWthdHRlXCA7CivlhYjph5EgPCBzYWtpZ2FuZVwgOwor6Lu96aOfIDwga2Vpc2hva3VcIDsKK+WIhueriyA8IGJ1bnJpdHN1XCA7CivkvqHmoLzlt64gPCBrYWtha3VzYVwgOwor5YaF6KizIDwgdWNoaXdha2VcIDsKK+i/veemjyA8IHRzdWlmdWt1XCA7CivnhKHoirHmnpwgPCBpY2hpamlrdVwgOwor5qyy5rexIDwgeW9rdWJ1a2FcIDsKK+S4jeS6uuaDhSA8IGZ1bmluam91XCA7CivlnJ/lu7rlsYsgPCBkb2tlbicneWFcIDsKK+atquabsiA8IHdhaWt5b2t1XCA7CivlhaXotoUgPCBueXV1Y2hvdVwgOwor5Ymy5rOoIDwgd2FyaWNodXVcIDsKK+awkeWKmyA8IG1pbnJ5b2t1XCA7Civpga7mlq3mqZ8gPCBzaGFkYW5raVwgOwor5Lmx5p2t5q2vIDwgcmFuZ3VpYmFcIDsKK+idi+e0sOW3pSA8IHJvdXphaWt1XCA7CivljJflo4EgPCBob2t1aGVraVwgOwor57Oc54ib5oCnIDwgYmlyYW5zZWlcIDsKK+iytOWFrOWtkCA8IGtpa291c2hpXCA7Civlu4Pmu4UgPCBoYWltZXRzdVwgOwor5rC05LiKIDwgbWluYWthbWlcIDsKK+WIneebhiA8IGhhdHN1Ym9uXCA7Civlu4nkvqHniYggPCByZW5rYWJhblwgOwor5q2j5pytIDwgc2hvdWZ1ZGFcIDsKK+WFpeizniA8IG55dXVzaG91XCA7CivlhYjpgZQgPCBzZW5kYXRzdVwgOwor5q2i5pyoIDwgdG9tYXJpZ2lcIDsKK+edgOecvCA8IGNoYWt1Z2FuXCA7CivliJ3nmbogPCBzaG9oYXRzdVwgOwor5Y6f5a2Q54KJIDwgZ2Vuc2hpcm9cIDsKK+i7ouaPm+eCiSA8IHRlbmthbnJvXCA7Civpu47mmI7mnJ8gPCByZWltZWlraVwgOwor6Luf6aqoIDwgbmFua290c3VcIDsKK+iPluiSsua5ryA8IHNob3VidXl1XCA7CivnhKHpp4TpqqggPCBtdWRhYm9uZVwgOwor6aGe5Ly85ZOBIDwgcnVpamloaW5cIDsKK+mjm+ihjOmaiiA8IGhpa291dGFpXCA7CivlvZPlsYAgPCB0b3VreW9rdVwgOwor5q665a6zIDwgc2F0c3VnYWlcIDsKK+mHkemzs+iKsSA8IGtpbnBvdWdlXCA7Civpu5Lpm7Lmr40gPCBrdXJvdW5tb1wgOwor6JC95o6MIDwgcmFrdXNob3VcIDsKK+ebuOaJi+aWuSA8IGFpdGVnYXRhXCA7CivkuI3lrozlhaggPCBmdWthbnplblwgOwor5by35byxIDwga3lvdWpha3VcIDsKK+W/g+S4rSA8IHNoaW5jaHV1XCA7CivnpZblm73mhJsgPCBzb2tva3VhaVwgOwor5bmz55q/IDwgaGlyYXphcmFcIDsKK+WLn+mbhuiyuyA8IGJvc2h1dWhpXCA7CivliJ3nlKMgPCBoYXRzdXphblwgOwor5bi457eRIDwgam91cnlva3VcIDsKK+eUn+eUo+iyuyA8IHNlaXNhbmhpXCA7CivntbHlkIjljJYgPCB0b3Vnb3VrYVwgOwor5peF6KGM5a62IDwgcnlva291a2FcIDsKK+ekvuWkluenmCA8IHNoYWdhaWhpXCA7CivljZfku48gPCBuYW5mdXRzdVwgOwor5b6T5L6h56iOIDwganV1a2F6ZWlcIDsKK+WNgeWFqyA8IGp1dWhhY2hpXCA7Civkvb/lvpLmm7ggPCBzaGl0b3Nob1wgOwor6YGp5qWtIDwgdGVraWd5b3VcIDsKK+mssemssSA8IHV0c3V1dHN1XCA7Civov73nmb0gPCB0c3VpaGFrdVwgOwor5b6T5Y2SIDwganV1c290c3VcIDsKK+W+oeWGoCA8IG9rYW5tdXJpXCA7CivlvovlkYIgPCByaXRzdXJ5b1wgOwor6L6j6IWVIDwgcmF0c3V3YW5cIDsKK+edgOeUqCA8IGNoYWt1eW91XCA7CivpgIbnlKggPCBneWFrdXlvdVwgOwor6YCG55SjIDwgZ3lha3V6YW5cIDsKK+WFreimqiA8IHJva3VzaGluXCA7Civlvozlj6MgPCBhdG9rdWNoaVwgOwor5a+d5YyW57KnIDwgbmVnZXNob3VcIDsKK+WJteS4luacnyA8IHNvdXNlaWtpXCA7Civph5Hnm67pr5sgPCBraW5tZWRhaVwgOwor5Y2Y5LiAIDwgdGFuJydpdHN1XCA7CivluK/nt5EgPCB0YWlyeW9rdVwgOwor55+z5byTIDwgaXNoaXl1bWlcIDsKK+mBuOabsiA8IHNlbmt5b2t1XCA7CivpgJrniZIgPCB0c3V1Y2hvdVwgOwor5LiK5LiL57eaIDwgam91Z2VzZW5cIDsKK+eQhuS6i+WbvSA8IHJpamlrb2t1XCA7CivmsLTmupblhIAgPCBzdWlqdW5naVwgOwor5YaN5L+d6Zm6IDwgc2FpaG9rZW5cIDsKK+ecjOeriyA8IGtlbnJpdHN1XCA7CivliKXnirYgPCBiZXRzdWpvdVwgOwor5LiL6aas5YWIIDwgZ2ViYXNha2lcIDsKK+WHjee1kCA8IHRvdWtldHN1XCA7Civlr4Tku5jooYzngrogPCBraWZ1a291aVwgOwor5rOJ6LKo57SZIDwgc2Vua2FzaGlcIDsKK+W+oeS7pOWsoiA8IGdvcmVpam91XCA7Civlt53onYkgPCBrYXdhc2VtaVwgOwor6YO35Zu9IDwga3lvdWtva3VcIDsKK+i/veeUsyA8IHRzdWlzaGluXCA7Civpm7vmsJfooZcgPCBkZW5raWdhaVwgOwor56CC5bGxIDwgc3VuYXlhbWFcIDsKK+W+i+WLlSA8IHJpdHN1ZG91XCA7CivmraPmjqUgPCBzZWlzZXRzdVwgOwor6L+r55yfIDwgaGFrdXNoaW5cIDsKK+i7jeaUv+mDqCA8IGd1bnNlaWJ1XCA7CivlvqHpoYznm64gPCBvZGFpbW9rdVwgOwor55yB562GIDwgc2VpaGl0c3VcIDsKK+W8n+W+oSA8IG90b3V0b2dvXCA7Civlh4TntbYgPCBzZWl6ZXRzdVwgOwor5b6M5YiXIDwga291cmV0c3VcIDsKK+eEoeS/neiovCA8IG11aG9zaG91XCA7Civlj6/liIbmgKcgPCBrYWJ1bnNlaVwgOwor5Lqc6Ymb6YmEIDwgYWVudGV0c3VcIDsKK+WLleWuieWumiA8IGRvdWFudGVpXCA7CivlubTnjocgPCBuZW5yaXRzdVwgOwor5YiR5LqL5LiKIDwga2Vpamlqb3VcIDsKK+Wls+aAp+eUqCA8IGpvc2VpeW91XCA7CivlhpfoiIwgPCBqb3V6ZXRzdVwgOwor5qiZ6Ki7IDwgaHlvdWNodXVcIDsKK+ecn+eZvSA8IG1hc3NoaXJvXCA7CivlhbjolqwgPCB0ZW4nJ3lha3VcIDsKK+S5vueHpeeCiSA8IGthbnNvdXJvXCA7CivlvLHlsJEgPCBqYWt1c2hvdVwgOwor6IKy5YWQ5rOVIDwgaWt1amlob3VcIDsKK+ebtOetlCA8IGNob2t1dG91XCA7Civnn7PlsbEgPCBpc2hpeWFtYVwgOwor6Iyc6ImyIDwgYWthbmVpcm9cIDsKK+eZuuiogCA8IGhhdHN1Z2VuXCA7CivmhJvps6XlrrYgPCBhaWNob3VrYVwgOwor5pys6Iie5Y+wIDwgaG9uYnV0YWlcIDsKK+WAi+S6uuaApyA8IGtvamluc2VpXCA7CivlvJPlvaIgPCB5dW1pbmFyaVwgOwor5Ymv5pyoIDwgZnVrdWJva3VcIDsKK+S+neWtmOeXhyA8IGl6b25zaG91XCA7CivnnJ/nl4cgPCBzaGluc2hvdVwgOwor5Yqj5oOFIDwgcmV0c3Vqb3VcIDsKK+aCquaAp+W6piA8IGFrdXNlaWRvXCA7CivlhqXnvbAgPCBtZWliYXRzdVwgOwor56We44CFIDwga2FtaWdhbWlcIDsKK+WKo+aCqiA8IHJldHN1YWt1XCA7Civprq7ooYAgPCBzZW5rZXRzdVwgOwor576O55S35a2QIDwgYmluYW5zaGlcIDsKK+W9ueWJsiA8IHlha3V3YXJpXCA7Civnn7PlrqQgPCBpc2hpbXVyb1wgOwor6Iul6KGGIDwgd2FrYXNodXVcIDsKK+avjeWQmyA8IGhhaGFnaW1pXCA7Civpm7vms6Lms5UgPCBkZW5wYWhvdVwgOwor6LuN5LqL5LiKIDwgZ3Vuamlqb3VcIDsKK+W5s+eGsSA8IGhlaW5ldHN1XCA7Civnm7TnqI4gPCBjaG9rdXplaVwgOwor6L+R552AIDwga2luY2hha3VcIDsKK+mBk+advyA8IG1pY2hpaXRhXCA7Civng4/nioDop5IgPCB1c2Fpa2FrdVwgOwor55+p5bC6IDwga2FuZWpha3VcIDsKK+WBj+W+ruWIhiA8IGhlbmJpYnVuXCA7CivntKDlr5LosqcgPCBzdWthbnBpblwgOwor6LGa5bCP5bGLIDwgYnV0YWdveWFcIDsKK+W7tua7nueojiA8IGVudGFpemVpXCA7CivpgbjmipwgPCBzZW5iYXRzdVwgOwor5Yal546L5pifIDwgbWVpb3VzZWlcIDsKK+WGhuebpOeKtiA8IGVuYmFuam91XCA7Civnmb3on7sgPCBzaGlyb2FyaVwgOwor5by35aWqIDwgZ291ZGF0c3VcIDsKK+iUteabuOWutiA8IHpvdXNob2thXCA7CivpjLLpn7PmqZ8gPCByb2t1b25raVwgOwor6YGO6Iis5p2lIDwga2FoYW5yYWlcIDsKK+mRmuWtlOapnyA8IHNhbmtvdWtpXCA7CivkuIDoiKzkurogPCBpcHBhbmppblwgOwor5Yi65q66IDwgc2hpc2F0c3VcIDsKK+WHoeeZviA8IGJvbnB5YWt1XCA7Civlvovku6QgPCByaXRzdXJlaVwgOwor55u45omL5b25IDwgYWl0ZXlha3VcIDsKK+WGheiFvyA8IHVjaGltb21vXCA7CivmranlkIjntaYgPCBidWFpa3l1dVwgOwor5LqV5oi457axIDwgaWRvZHp1bmFcIDsKK+aXouefpeaVsCA8IGtpY2hpc3V1XCA7Civou43plqUgPCBndW5iYXRzdVwgOwor5bel5YuZ5bqXIDwga291bXV0ZW5cIDsKK+W5o+eJqSA8IGhlaW1vdHN1XCA7CivpgLjmpb0gPCBpdHN1cmFrdVwgOwor6YCf5rG6IDwgc29ra2V0c3VcIDsKK+WMl+WBtCA8IGhva3Vzb2t1XCA7CivkuIDmnLHpioAgPCBpc3NodWdpblwgOwor5b2r5Yi7IDwgY2hvdWtva3VcIDsKK+mAhua9riA8IHNha2FzaGlvXCA7CivnoLLliJcgPCBob3VyZXRzdVwgOwor6Iiq56m65qmfIDwga291a3V1a2lcIDsKK+m7kue5u+WtkCA8IGt1cm9qdXN1XCA7CivnmbvoqJjmiYAgPCB0b3VraXNob1wgOwor5q2j5byPIDwgc2Vpc2hpa2lcIDsKK+mBqeaZguaJkyA8IHRla2lqaWRhXCA7CivlhqDntbYgPCBrYW56ZXRzdVwgOwor5q6/5Y6fIDwgdG9ub2JhcmFcIDsKK+WHuOeKtiA8IHRvdHN1am91XCA7CivlkIjnkIbmgKcgPCBnb3VyaXNlaVwgOwor6YGU5paHIDwgdGF0c3VidW5cIDsKK+W+geS8kCA8IHNlaWJhdHN1XCA7Civlubvmu4UgPCBnZW5tZXRzdVwgOwor5by+5ZynIDwgZGFuJydhdHN1XCA7Civou73ou70gPCBrYXJ1Z2FydVwgOwor6Zmw6Zu75a2QIDwgaW5kZW5zaGlcIDsKK+WFheihgCA8IGp1dWtldHN1XCA7CivlhoXogbcgPCBuYWlzaG9rdVwgOwor5Yqp5YuV6KmeIDwgam9kb3VzaGlcIDsKK+aFsOiXieaWmSA8IGlzaGFyeW91XCA7Civou5/piYQgPCBuYW50ZXRzdVwgOwor6KGb55Sf5YW1IDwgZWlzZWloZWlcIDsKK+efs+WiqCA8IHNla2lib2t1XCA7CivkvY7niankvqEgPCB0ZWlidWtrYVwgOwor5YCL5Lq65bGVIDwga29qaW50ZW5cIDsKK+Wun+S9k+WMliA8IGppdHRhaWthXCA7CivliKTmsbogPCBoYW5rZXRzdVwgOwor55+t5aScIDwgbWlqaWtheW9cIDsKK+W8t+WcpyA8IGt5b3VhdHN1XCA7CivpgqrprZTogIUgPCBqYW1hbW9ub1wgOwor5bmz5ruRIDwgaGVpa2F0c3VcIDsKK+msoumVtyA8IGJpbicnbmFnYVwgOwor57Gz6K2w5LyaIDwgYmVpZ2lrYWlcIDsKK+eEoeWwveiUtSA8IG11amluem91XCA7CivlhobnvZAgPCBtYXJ1Z2FtYVwgOwor55u055u0IDwgamlraWppa2lcIDsKK+W3u+e0mSA8IG1ha2lnYW1pXCA7CivlhbzogbcgPCBrZW5zaG9rdVwgOwor6Lui5o+b5pyfIDwgdGVua2Fua2lcIDsKK+asoOaWhyA8IGtldHN1YnVuXCA7Civku6PorbDlo6sgPCBkYWlnaXNoaVwgOwor6by75r+B6Z+zIDwgYmlkYWt1b25cIDsKK+WGrOepuiA8IGZ1eXV6b3JhXCA7CivpgYXml6UgPCBjaGlqaXRzdVwgOwor5Yil5q6/IDwgYmV0c3VkZW5cIDsKK+WIpeautSA8IGJldHN1ZGFuXCA7CivpgIbmtaogPCBzYWthbmFtaVwgOwor55m96JOuIDwgYnlha3VyZW5cIDsKK+efs+WeoyA8IGlzaGlnYWtpXCA7Civpq5jpm7vkvY0gPCBrb3VkZW4nJ2lcIDsKK+aMgeWPgumHkSA8IGppc2Fua2luXCA7CivllK/nkIboq5YgPCB5dWlyaXJvblwgOwor6Lu46LazIDwgamlrdWFzaGlcIDsKK+WQjeacm+WutiA8IG1laWJvdWthXCA7CivlpJrlhYPoq5YgPCB0YWdlbnJvblwgOwor55uu55qEIDwgbW9rdXRla2lcIDsKK+iQqeWxniA8IGhhZ2l6b2t1XCA7Civoh6rmo4Tns54gPCB5YWtla3Vzb1wgOwor5q2j56ym5Y+3IDwgc2VpZnVnb3VcIDsKK+eEoeeUo+iAhSA8IG11c2Fuc2hhXCA7CivpgJ/mpa0gPCBoYXlhd2F6YVwgOwor6IKy5YWQ5pu4IDwgaWt1amlzaG9cIDsKK+W4gueriyA8IHNoaXJpdHN1XCA7Civoi6XojYkgPCB3YWtha3VzYVwgOwor5a6a5pyf6Ii5IDwgdGVpa2lzZW5cIDsKK+edgOawtCA8IGNoYWt1c3VpXCA7CivmiYvlvIHlvZMgPCB0ZWJlbnRvdVwgOwor5Lm+54el5qmfIDwga2Fuc291a2lcIDsKK+S4ieaXpemWkyA8IG1pa2tha2FuXCA7CivljYHkuozliIYgPCBqdXVuaWJ1blwgOwor56i95Y+k5Y+wIDwga2Vpa29kYWlcIDsKK+i7oui9jSA8IHRlbnRldHN1XCA7CivpsJDnmq4gPCB3YW5pZ2F3YVwgOwor5q2i5a6/IDwgc2hpc2h1a3VcIDsKK+iKuOihkyA8IGdlaWp1dHN1XCA7CivlhYjpoK3kvI0gPCBzZW50b3Vnb1wgOwor5q2j5a6XIDwgbWFzYW11bmVcIDsKK+aoquiFuSA8IHlva29iYXJhXCA7CivlhpfnrYYgPCBqb3VoaXRzdVwgOwor5YWs6IG3IDwga291c2hva3VcIDsKK+WQhOOAhSA8IHNvcmV6b3JlXCA7CivliIPmuKEgPCBoYXdhdGFyaVwgOwor6bOp5bC+IDwgbWl6b29jaGlcIDsKK+WHuuadpemrmCA8IGRla2lkYWthXCA7Civlh7rmvJQgPCBzaHV0c3VlblwgOwor6YGp5b25IDwgdGVraXlha3VcIDsKK+i6q+mVtyA8IHNoaW5jaG91XCA7CivkuInkuJbnm7ggPCBzYW56ZXNvdVwgOwor5Yqb5a2mIDwgcmlraWdha3VcIDsKK+iJsumBkyA8IHNoaWtpZG91XCA7Civnmb7oirggPCBoeWFrdWdlaVwgOwor5LmO5Y+k5q2i54K5IDwgb2tvdG90ZW5cIDsKK+WLouWKmyA8IHNlaXJ5b2t1XCA7CivoiLnpnIogPCBmdW5hZGFtYVwgOwor6YGL5qC56YiNIDwgdW5rb25kb25cIDsKK+egguWOnyA8IHN1bmFoYXJhXCA7CivlvY7lhaUgPCB3YW4nJ255dXVcIDsKK+ihm+eUn+S4iiA8IGVpc2Vpam91XCA7CivliLbmnK0gPCBzZWlzYXRzdVwgOwor5qW96ZW3IDwgZ2FrdWNob3VcIDsKK+ebtOeQgyA8IGNob2treXV1XCA7CivljLvlrablo6sgPCBpZ2FrdXNoaVwgOwor6KuL6LKg5Lq6IDwgdWtlb2luaW5cIDsKK+altemZkCA8IGt5b2t1Z2VuXCA7CivprqvohpogPCBzYW1laGFkYVwgOwor5pat6Z2i5ZuzIDwgZGFubWVuenVcIDsKK+eZuuiJsiA8IGhhc3Nob2t1XCA7CivomZrku67njL8gPCBrb2tlemFydVwgOwor5pyq5L2/55SoIDwgbWlzaGl5b3VcIDsKK+mbu+azouaYnyA8IGRlbnBhc2VpXCA7CivokazliJcgPCBzb3VyZXRzdVwgOwor5YuF5ZWPIDwgY2hva3Vtb25cIDsKK+W8vuWKmyA8IGRhbnJ5b2t1XCA7CivlvI/loLQgPCBzaGlraWpvdVwgOwor6auY6auYIDwgdGFrYWRha2FcIDsKK+mfs+mfu+irliA8IG9uJydpbnJvblwgOwor5Ymy5byVIDwgd2FyaWJpa2lcIDsKK+apn+aisOW3pSA8IGtpa2Fpa291XCA7CivmrLLlv4MgPCB5b2t1c2hpblwgOwor5YaN5bCB6Y6WIDwgc2FpZnV1c2FcIDsKK+WJlOaKiSA8IHRla2tldHN1XCA7CivpmLLms6LloKQgPCBib3VoYXRlaVwgOwor5qyy5b6XIDwgeW9rdXRva3VcIDsKK+mBi+i7ouaJiyA8IHVudGVuc2h1XCA7Civprq7ogokgPCBzZW4nJ25pa3VcIDsKK+mAhuanmCA8IHNha2FzYW1hXCA7CivpgLLmkoMgPCBzaGluZ2VraVwgOwor5LqJ6KaH5oimIDwgc291aGFzZW5cIDsKK+m7kuaWh+WtlyA8IGt1cm9tb2ppXCA7CivnhKHpp4TotrMgPCBtdWRhYXNoaVwgOwor5YuV5YqbIDwgZG91cnlva3VcIDsKK+WLheWRvSA8IGNob2t1bWVpXCA7CivnnYDnianlnLAgPCBraW1vbm9qaVwgOwor5aSW5rCX5ZyPIDwgZ2Fpa2lrZW5cIDsKK+WHm+eDiCA8IHJpbnJldHN1XCA7CivplovkvJrml6UgPCBrYWlrYWliaVwgOwor55Sx5p2l5pu4IDwgeXVyYWlzaG9cIDsKK+atpuWjqyA8IG1vbm9ub2Z1XCA7CivptZ3lj6PnmKEgPCBnYWtvdXNvdVwgOwor5q665Lq6IDwgc2F0c3VqaW5cIDsKK+WDrei2iiA8IHNlbicnZXRzdVwgOwor6YCj5pelIDwgcmVuaml0c3VcIDsKK+ato+WkoiA8IG1hc2F5dW1lXCA7Civkub7nh6XmnpwgPCBrYW5zb3VrYVwgOwor5Yi35pWwIDwgc2F0c3VzdXVcIDsKK+i7i+i9oiA8IGF0c3VyZWtpXCA7CivlronlhajmgKcgPCBhbnplbnNlaVwgOwor5YSy6JOEIDwgY2hvY2hpa3VcIDsKK+WvjOWjq+S6lOa5liA8IGZ1amlnb2tvXCA7CivlhobnqpMgPCBtYXJ1bWFkb1wgOwor6Iul6ICFIDwgd2FrYW1vbm9cIDsKK+i7iui9hCA8IHNoYWthdHN1XCA7CivmgZDjgIUgPCBrb3dhZ293YVwgOwor6YCa5pqBIDwgdHN1dWd5b3VcIDsKK+WJjeaJlSA8IG1hZWJhcmFpXCA7Civnmb7ogZ4gPCBoeWFrdWJ1blwgOwor5piv5piv6Z2e6Z2eIDwgemV6ZWhpaGlcIDsKK+eZuuiCsiA8IGhhdHN1aWt1XCA7CivpgJDmnaEgPCBjaGlrdWpvdVwgOwor55uK55uKIDwgbWFzdW1hc3VcIDsKK+aoque4niA8IHlva29qaW1hXCA7CivpgZTlvIEgPCB0YXRzdWJlblwgOwor5qCE6aSK5aOrIDwgZWl5b3VzaGlcIDsKK+WPsOW4g+W3viA8IGRhaWJ1a2luXCA7Civlt6Pnqp8gPCBzb3VrdXRzdVwgOwor5bed562LIDwga2F3YXN1amlcIDsKK+ani+aIkOWToSA8IGtvdXNlaWluXCA7CivlhY3ogbcgPCBtZW5zaG9rdVwgOwor5qih56+E55SfIDwgbW9oYW5zZWlcIDsKK+mnhuWLlei8qiA8IGt1ZG91cmluXCA7Civli4flipsgPCB5dXVyeW9rdVwgOwor5bed56uvIDwga2F3YWJhdGFcIDsKK+WLgeWNkiA8IGtlaXNvdHN1XCA7CivmnbHmtIvlj7IgPCB0b3lvZnVtaVwgOwor5YaF56WdIDwgdWNoaWl3YWlcIDsKK+iNieeJqSA8IGt1c2Ftb25vXCA7CivlsrPpupMgPCBnYWt1cm9rdVwgOwor5YiG5qW1IDwgYnVua3lva3VcIDsKK+anjeihkyA8IHNvdWp1dHN1XCA7CivpgKPmjqUgPCByZW5zZXRzdVwgOwor5Y2Y57K+5bqmIDwgdGFuc2VpZG9cIDsKK+eBq+acqOWcnyA8IGthbW9rdWRvXCA7Civku6PorbDliLYgPCBkYWlnaXNlaVwgOwor5pyq5a6a56i/IDwgbWl0ZWlrb3VcIDsKK+WFpeexjSA8IG55dXVzZWtpXCA7CivkuJboqbHniakgPCBzZXdhbW9ub1wgOwor5Ymv5a+pIDwgZnVrdXNoaW5cIDsKK+efpeWKmyA8IGNoaXJ5b2t1XCA7CivlibLlrokgPCB3YXJpeWFzdVwgOwor5Yem5rG6IDwgc2hva2V0c3VcIDsKK+W5tOacqyA8IG5lbm1hdHN1XCA7Civlub7ml6UgPCBpa3VuaWNoaVwgOwor5bm05pyIIDwgbmVuZ2V0c3VcIDsKK+WIh+agqiA8IGtpcmlrYWJ1XCA7CivlirnlipsgPCBrb3VyeW9rdVwgOwor6Kaz5oim6KiYIDwga2Fuc2Vua2lcIDsKK+WkqeeTnOeyiSA8IHRlbmthZnVuXCA7CivpqrjpqqggPCBnYWlrb3RzdVwgOwor5b2i5oiQ5pyfIDwga2Vpc2Vpa2lcIDsKK+aUvuaYoOaoqSA8IGhvdWVpa2VuXCA7CivlvI/lj7AgPCBzaGlraWRhaVwgOwor55uj6KaW5omAIDwga2Fuc2hpam9cIDsKK+mqqOmxlyA8IGtvdHN1cmluXCA7CivlvqHmnKzlsIogPCBnb2hvbnpvblwgOwor5Y2Y57SU5YyWIDwgdGFuanVua2FcIDsKK+WAi+S6uuWQjSA8IGtvamlubWVpXCA7CivmpJznnLzljLsgPCBrZW5nYW4nJ2lcIDsKK+WGjeeZuiA8IHNhaWhhdHN1XCA7CivmrbvlipsgPCBzaGlyeW9rdVwgOwor5pyq6LiP5bOwIDwgbWl0b3Vob3VcIDsKK+WKtOWKmyA8IHJvdXJ5b2t1XCA7CivmqKrnrYsgPCB5b2tvc3VqaVwgOwor5pat5pat5Zu6IDwgZGFuZGFua29cIDsKK+W3jOeqnyA8IGdhbmt1dHN1XCA7CivlhqzniakgPCBmdXl1bW9ub1wgOwor6YCG5pWwIDwgZ3lha3VzdXVcIDsKK+WFjue2siA8IHVzYWdpYW1pXCA7CivmmpbmiL/lmaggPCBkYW5ib3VraVwgOwor55m957O4IDwgc2hpcmFpdG9cIDsKK+atu+WIpSA8IHNoaWJldHN1XCA7CivliIfmnK0gPCBraXJpZnVkYVwgOwor5pah5peL6ICFIDwgYXNzZW5zaGFcIDsKK+WIh+acmyA8IHNldHN1Ym91XCA7CivlubPml6UgPCBoZWlqaXRzdVwgOwor5bem55uuIDwgaGlkYXJpbWVcIDsKK+i7veiUkSA8IGtlaWJldHN1XCA7Civku4/nlJ/kvJogPCBidXNzaG91ZVwgOwor5Ymj5a6iIDwga2Vua3lha3VcIDsKK+WGheeZuiA8IG5haWhhdHN1XCA7Civopo/moLzljJYgPCBraWtha3VrYVwgOwor5Y+45Luk6YOoIDwgc2hpcmVpYnVcIDsKK+aEj+WMoOaoqSA8IGlzaG91a2VuXCA7CivoiovomasgPCBpbW9tdXNoaVwgOwor5qSL6bOlIDwgbXVrdWRvcmlcIDsKK+W5s+aUvyA8IGhpcmFtYXNhXCA7CivlsIrmlazoqp4gPCBzb25rZWlnb1wgOwor6aqo6auEIDwga290c3V6dWlcIDsKK+W9ouaFi+e0oCA8IGtlaXRhaXNvXCA7Civnm67muKwgPCBtb2t1c29rdVwgOwor5YWD57egIDwgbW90b2ppbWVcIDsKK+aIkeWIqeaIkeWIqSA8IGdhcmlnYXJpXCA7Civnn7PkuoAgPCBpc2hpZ2FtZVwgOwor5YWI57SwIDwgc2FraWJvc29cIDsKK+WLheS7uyA8IGNob2t1bmluXCA7Civnn5vlhYggPCBob2tvc2FraVwgOwor576O5bCR5aWzIDwgYmlzaG91am9cIDsKK+W6puW6piA8IHRhYml0YWJpXCA7CivlhobpgYvli5UgPCBlbicndW5kb3VcIDsKK+WLheS7pCA8IGNob2t1cmVpXCA7CivlhYjntIQgPCBzZW4nJ3lha3VcIDsKK+ixoeeJmeiJsiA8IHpvdWdlaXJvXCA7CivokKnljp8gPCBoYWdpd2FyYVwgOwor5YWl56WeIDwgbnl1dXNoaW5cIDsKK+atr+WIlyA8IHNoaXJldHN1XCA7CivliIfmlq0gPCBzZXRzdWRhblwgOwor5buD5auhIDwgaGFpY2hha3VcIDsKK+atquWKmyA8IHdhaXJ5b2t1XCA7CivlvI/lhbggPCBzaGlraXRlblwgOwor6Kix5Y+v5pu4IDwga3lva2FzaG9cIDsKK+i/veaSgyA8IHRzdWlnZWtpXCA7CivllYborbDlk6EgPCBzaG91Z2lpblwgOwor5b6h5LiA5pawIDwgZ29pc3NoaW5cIDsKK+iKi+iUkyA8IGltb2R6dXJ1XCA7CivmhInlv6vniq8gPCB5dWthaWhhblwgOwor5be754mpIDwgbWFraW1vbm9cIDsKK+aMh+ekuuadvyA8IHNoaWppYmFuXCA7Civnm7jmrrogPCBzb3VzYXRzdVwgOwor5YaX54mpIDwgam91YnV0c3VcIDsKK+mJhOW3peaJgCA8IHRla2tvdWpvXCA7CivliY3lsYggPCB6ZW5rdXRzdVwgOwor5Yiz5b2iIDwga3VyaWthdGFcIDsKK+e1jOWWtumboyA8IGtlaWVpbmFuXCA7CivmraPlibIgPCBzZWlrYXRzdVwgOwor6LqN6YCyIDwgeWFrdXNoaW5cIDsKK+W8geWIpSA8IGJlbmJldHN1XCA7CivpmbDpmb3luKsgPCBvbicneW91amlcIDsKK+aPm+awl+aJhyA8IGthbmtpc2VuXCA7CivpnZ7lkIjms5UgPCBoaWdvdWhvdVwgOwor6aOb6KGM6ImHIDwgaGlrb3V0ZWlcIDsKK+edgOaJiyA8IGNoYWt1c2h1XCA7Civpo5vooYzoiLkgPCBoaWtvdXNlblwgOwor57WM5Za26ZmjIDwga2VpZWlqaW5cIDsKK+W+oeadpeWFiSA8IGdvcmFpa291XCA7CivkuI3mlq3ojYkgPCBmdWRhbnNvdVwgOwor6Iy25rysIDwgY2hhZHp1a2VcIDsKK+eVmemzpSA8IHJ5dXVjaG91XCA7CivmoITppIrliaQgPCBlaXlvdXphaVwgOwor6Ii56LazIDwgZnVuYWFzaGlcIDsKK+mAo+mOluW6lyA8IHJlbnNhdGVuXCA7CivlhbXnlaUgPCBoZWlyeWFrdVwgOwor55m956WoIDwgaGFrdWh5b3VcIDsKK+WFteazleWutiA8IGhlaWhvdWthXCA7CivpoLvluqbmlbAgPCBoaW5kb3N1dVwgOwor6LOH5pys5a62IDwgc2hpaG9ua2FcIDsKK+WBj+mjnyA8IGhlbnNob2t1XCA7CivmnIDlj7Pnv7wgPCBzYWl1eW9rdVwgOwor5qCE6aSK5YiGIDwgZWl5b3VidW5cIDsKK+atjOWQiCA8IHV0YWF3YXNlXCA7CivoupHouoUgPCB0c3V0c3VqaVwgOwor5q2M5Y+jIDwgdXRhZ3VjaGlcIDsKK+mwueacqCA8IGthdHN1b2dpXCA7Civov6vmkoMgPCBoYWt1Z2VraVwgOwor5Y+v5Yem5YiGIDwga2FzaG9idW5cIDsKK+axsuOAhSA8IGt5dXVreXV1XCA7Civokpnlj6TmlpEgPCBtb3Vrb2hhblwgOwor5Yid5oGLIDwgaGF0c3Vrb2lcIDsKK+WFiOeoiyA8IHNha2lob2RvXCA7CivoiLnos4MgPCBmdW5hY2hpblwgOwor6Iy25riLIDwgY2hhc2hpYnVcIDsKK+mAj+W+uSA8IHRvdXRldHN1XCA7Civnl4XouqsgPCBieW91c2hpblwgOwor5a+S56i95Y+kIDwga2FuZ2Vpa29cIDsKK+esrOS4iee0gCA8IGRhaXNhbmtpXCA7CivmpoLoqqwgPCBnYWlzZXRzdVwgOwor5bqK5bqXIDwgdG9rb21pc2VcIDsKK+eggumiqOWRgiA8IHN1bmFidXJvXCA7CivpgYvou6Llo6sgPCB1bnRlbnNoaVwgOwor56ys5LiA57eaIDwgZGFpaXNzZW5cIDsKK+iJr+iWrCA8IHJ5b3V5YWt1XCA7CivmrKDloLQgPCBrZXRzdWpvdVwgOwor5YiH5oi7IDwgc2V0c3VyYWlcIDsKK+aomeefsyA8IGh5b3VzZWtpXCA7Civlgb3ph5EgPCBuaXNlZ2FuZVwgOwor55uu5qiZIDwgbW9rdWh5b3VcIDsKK+mKgOihjOWutiA8IGdpbmtvdWthXCA7CivlipvlgIYgPCByaWtpcnlvdVwgOwor6YG45YilIDwgc2VuYmV0c3VcIDsKK+WIuuWuoiA8IHNoaWt5YWt1XCA7CivkuInku5nlj4kgPCBzYW5zZW5zYVwgOwor6YCQ5bm0IDwgY2hpa3VuZW5cIDsKK+muq+eariA8IHNhbWVnYXdhXCA7CivluoPluoMgPCBoaXJvYmlyb1wgOwor5YaN5bel5LqLIDwgc2Fpa291amlcIDsKK+aoqueUuiA8IHlva29jaG91XCA7Civoo4/ml6XmnKwgPCB1cmFuaWhvblwgOwor6KKr5YKt6ICFIDwgaGl5b3VzaGFcIDsKK+i/keaXpSA8IGtpbmppdHN1XCA7CivluoPluYUgPCBoaXJvaGFiYVwgOwor5Yqb5L2cIDwgcmlraXNha3VcIDsKK+aknOmWsiA8IGtlbicnZXRzdVwgOwor556s5Yi7IDwgc2h1bmtva3VcIDsKK+eZuuedgCA8IGhhdGNoYWt1XCA7CivmpbXoq5YgPCBreW9rdXJvblwgOwor552A5by+IDwgY2hha3VkYW5cIDsKK+i7veawtOeCiSA8IGtlaXN1aXJvXCA7CivlhbjniakgPCB0ZW5idXRzdVwgOwor6Ieq55Sx5rivIDwgaml5dXVrb3VcIDsKK+W+oeabueWtkCA8IG9uem91c2hpXCA7CivpmLLmsLTmiYkgPCBib3VzdWloaVwgOwor55m955qZIDwgaGFrdXNla2lcIDsKK+WxheW/g+WcsCA8IGlnb2tvY2hpXCA7CivlnLDkuIvpgZMgPCBjaGlrYWRvdVwgOwor55m955m9IDwgaGFrdWhha3VcIDsKK+WIh+aDhSA8IHNldHN1am91XCA7CivliJHlvosgPCBrZWlyaXRzdVwgOwor5qiZ55qEIDwgaHlvdXRla2lcIDsKK+WHuuaJgCA8IGRlZG9rb3JvXCA7CivnhKHpp4ToirEgPCBtdWRhYmFuYVwgOwor6L+95b60IDwgdHN1aWNob3VcIDsKK+edgOW6lSA8IGNoYWt1dGVpXCA7CivlhZrnlaUgPCB0b3VyeWFrdVwgOwor54Sh5a6a6KaLIDwgbXV0ZWlrZW5cIDsKK+W6iuWxsSA8IHRva295YW1hXCA7Civnl5voppogPCB0c3V1a2FrdVwgOwor5bm05byPIDwgbmVuc2hpa2lcIDsKK+eZuueZjCA8IGhhdHN1Z2FuXCA7CivnnYDluL0gPCBjaGFrdWJvdVwgOwor5YaF5r+gIDwgdWNoaWJvcmlcIDsKK+WFiOedgCA8IHNlbmNoYWt1XCA7CivnnYDluK8gPCBjaGFrdXRhaVwgOwor5bi45pilIDwgdG9rb2hhcnVcIDsKK+e+juWuueW4qyA8IGJpeW91c2hpXCA7CivnmbrngavngrkgPCBoYWtrYXRlblwgOwor6I235o2MIDwgbmlzYWJha2lcIDsKK+W5s+W6rSA8IGhpcmFuaXdhXCA7CivlsbHps6kgPCB5YW1hYmF0b1wgOwor5bGx6bOlIDwgeWFtYWRvcmlcIDsKK+mAmuWtpiA8IHRzdXVnYWt1XCA7CivnlZzpoZ4gPCBjaGlrdXJ1aVwgOwor5bmz5bqVIDwgaGlyYXpva29cIDsKK+WFpeeNhCA8IG55dXVnb2t1XCA7CivlhazniLUgPCBrb3VzaGFrdVwgOwor6Imy6Im2IDwgaXJvdHN1eWFcIDsKK+W5s+W5lSA8IGhpcmFtYWt1XCA7Civnj77ku6PljJYgPCBnZW5kYWlrYVwgOwor5YWI55m6IDwgc2VucGF0c3VcIDsKK+emj+S6leecjCA8IGZ1a3Vpa2VuXCA7Civnmb3nk5wgPCBzaGlyb3VyaVwgOwor5LiN5pWs6JmUIDwgZnVrZWlrZW5cIDsKK+i/keaOpSA8IGtpbnNldHN1XCA7CivkuIHlrZDmsrkgPCBjaG91aml5dVwgOwor6Lui6IG3IDwgdGVuc2hva3VcIDsKK+mAj+WvnyA8IHRvdXNhdHN1XCA7CivliofkvZwgPCBnZWtpc2FrdVwgOwor6LKh5YuZ5a6YIDwgemFpbXVrYW5cIDsKK+aWmeeQhuWxiyA8IHJ5b3VyaXlhXCA7Civou7jntKIgPCBqaWt1c2FrdVwgOwor5bit5paZIDwgc2VraXJ5b3VcIDsKK+asoOWPtyA8IGtldHN1Z291XCA7CivlgZzou4rloLQgPCB0ZWlzaGFiYVwgOwor5oSf5YWJ5bqmIDwga2Fua291ZG9cIDsKK+eEoeiDveiAhSA8IG11bm91c2hhXCA7Civnmb7njaMgPCBoeWFrdWp1dVwgOwor5YOa6Ii5IDwgdG9tb2J1bmVcIDsKK+ecn+W/gyA8IG1hZ29rb3JvXCA7CivliofkuK0gPCBnZWtpY2h1dVwgOwor6LmE6YmEIDwgdGVpdGV0c3VcIDsKK+S6pOWPieeCuSA8IGtvdXNhdGVuXCA7CivmsLfmsrPmnJ8gPCBoeW91Z2FraVwgOwor6YCA5bGIIDwgdGFpa3V0c3VcIDsKK+S9jumbu+S9jSA8IHRlaWRlbicnaVwgOwor5Ye65LiW6a2aIDwgc2h1c3NldW9cIDsKK+mBi+i7ouWPsCA8IHVudGVuZGFpXCA7CivliY3lk7IgPCB6ZW50ZXRzdVwgOwor5Ye65busIDwgc2h1dHN1cm9cIDsKK+mBqeS9nCA8IHRla2lzYWt1XCA7Civph47lv4PlrrYgPCB5YXNoaW5rYVwgOwor5YaF5rOVIDwgdWNoaW5vcmlcIDsKK+WHuuW6piA8IHNodXRzdWRvXCA7CivlioPkuIAgPCBrYWt1aXRzdVwgOwor6Ieq55Sx5qipIDwgaml5dXVrZW5cIDsKK+i7uOeusSA8IGppa3ViYWtvXCA7CivpmLLmsLTluIMgPCBib3VzdWlmdVwgOwor5Ye65bitIDwgc2h1c3Nla2lcIDsKK+WGjeiHqOa0viA8IHNhaXJpbmhhXCA7CivliKXlo7IgPCBiZXRzdWJhaVwgOwor5bid5pelIDwgdGVpaml0c3VcIDsKK+ani+eviSA8IGtvdWNoaWt1XCA7Civnm67mkoMgPCBtb2t1Z2VraVwgOwor6LuN6IG3IDwgZ3Vuc2hva3VcIDsKK+WQjeWgtOmdoiA8IG1laWJhbWVuXCA7CivnrYboqJjkvZMgPCBoaWtraXRhaVwgOwor5bym5qW95ZmoIDwgZ2VuZ2Fra2lcIDsKK+a7nuWcqOiyuyA8IHRhaXphaWhpXCA7Civopo/lrprlgKQgPCBraXRlaWNoaVwgOwor5LiA5L2T5oSfIDwgaXR0YWlrYW5cIDsKK+WGrOacjSA8IGZ1eXVmdWt1XCA7CivojLbmnZMgPCBjaGFzaGFrdVwgOwor6a6u54OIIDwgc2VucmV0c3VcIDsKK+i1pOegguezliA8IGFrYXphdG91XCA7CivniZvlsI/lsYsgPCB1c2hpZ295YVwgOwor5buJ5L6h5ZOBIDwgcmVua2FoaW5cIDsKK+awkemcgOWTgSA8IG1pbmp1aGluXCA7CivnnJ/kurrplpMgPCBtYW5pbmdlblwgOwor5YaZ5qSNIDwgc2hhc2hva3VcIDsKK+mHkeebnuiKsSA8IGtpbnNlbmthXCA7CivliKXloIIgPCBiZXRzdWRvdVwgOwor5YiG5a6/IDwgYnVuc2h1a3VcIDsKK+WFqOa7hSA8IHplbm1ldHN1XCA7CivlsbHpoqggPCB5YW1ha2F6ZVwgOwor6I2J5pG6IDwga3VzYXp1cmlcIDsKK+axn+aIuOaZguS7oyA8IGVkb2ppZGFpXCA7CivlhYjniakgPCBzYWtpbW9ub1wgOwor5Y+W5rKZ5rGwIDwgdG9yaXphdGFcIDsKK+mKgOihjOWToSA8IGdpbmtvdWluXCA7CivlsaTkvY3lraYgPCBzb3VpZ2FrdVwgOwor55m+54K5IDwgaHlha3V0ZW5cIDsKK+mAhuWkoiA8IHNha2F5dW1lXCA7CivpgI/oppblm7MgPCB0b3VzaGl6dVwgOwor5ZCN576p5Lq6IDwgbWVpZ2luaW5cIDsKK+e1puayueaJgCA8IGt5dXV5dWpvXCA7CivlhYnnhrEgPCBrb3VuZXRzdVwgOwor6Ieq6LWw56CyIDwgamlzb3Vob3VcIDsKK+WJjeWIlyA8IHplbnJldHN1XCA7Civlr4TnqL/ogIUgPCBraWtvdXNoYVwgOwor5oqS5oOF6KmpIDwgam9qb3VzaGlcIDsKK+mAhuWigyA8IGd5YWtreW91XCA7CivlhobliIPliIAgPCBlbmppbnRvdVwgOwor55mH55mqIDwga2Fuc2hha3VcIDsKK+i7jee4riA8IGd1bnNodWt1XCA7Civprq3mvIEgPCBzYWtlcnlvdVwgOwor6YGU5Lq6IDwgdGF0c3VqaW5cIDsKK+iJsue0mSA8IHNoaWtpc2hpXCA7Civnmb3mv4EgPCBoYWt1ZGFrdVwgOwor5YSB56eAIDwgc2h1bnNodXVcIDsKK+W5heW6gyA8IGhhYmFoaXJvXCA7CivlsbHpnKcgPCB5YW1hZ2lyaVwgOwor5LiJ5LiD5pelIDwgbWluYW5va2FcIDsKK+mAuOWHuiA8IGlzc2h1dHN1XCA7CivlhaXmtbQgPCBueXV1eW9rdVwgOwor5qyg5L6/IDwga2V0c3ViaW5cIDsKK+i7veefsyA8IGthcnVpc2hpXCA7CivliIflprsgPCBraXJpenVtYVwgOwor5be75pyrIDwga2FubWF0c3VcIDsKK+WvuuWwj+WxiyA8IHRlcmFrb3lhXCA7Civot53pqqggPCBreW9rb3RzdVwgOwor55Sw6Zuy6ZuAIDwgdGFoaWJhcmlcIDsKK+a4qea5v+W4gyA8IG9uc2hpcHB1XCA7CivnlJ/pppYgPCBuYW1ha3ViaVwgOwor5YWl5rSbIDwgbnl1dXJha3VcIDsKK+ebtOaDhSA8IGNob2t1am91XCA7Civlh7blroUgPCBreW91dGFrdVwgOwor5bGx6ZqbIDwgeWFtYWdpd2FcIDsKK+W6reWFiCA8IG5pd2FzYWtpXCA7CivlvqHpnaLnm7ggPCBnb21lbnNvdVwgOwor5bGx6ZmwIDwgeWFtYWthZ2VcIDsKK+WJg+WIgCA8IGthbWlzb3JpXCA7CivmqKrms6IgPCB5b2tvbmFtaVwgOwor552A5ZywIDwgY2hha3VjaGlcIDsKK+S4iuaZr+awlyA8IGpvdWtlaWtpXCA7CivogrLoi7HkvJogPCBpa3VlaWthaVwgOwor5LmX6aas6ZqKIDwgam91YmF0YWlcIDsKK+WcsOS4i+ihlyA8IGNoaWthZ2FpXCA7Civnm5fmjpggPCB0b3VrdXRzdVwgOwor55yB5bqBIDwgc2hvdWNob3VcIDsKK+eVmemHkSA8IHRvbWVnYW5lXCA7CivmqYvmooEgPCBreW91cnlvdVwgOwor55S66ZW3IDwgY2hvdWNob3VcIDsKK+WxnumgmCA8IHpva3VyeW91XCA7CivpgJrlkYogPCB0c3V1a29rdVwgOwor5YmN5YCfIDwgemVuc2hha3VcIDsKK+mdkuaHuOW3oyA8IGFva2FrZXN1XCA7CivmrKDkuY8gPCBrZXRzdWJvdVwgOwor5qW16Ie0IDwga3lva3VjaGlcIDsKK+S4jeaVrOe9qiA8IGZ1a2VpemFpXCA7Civljp/lrZDkvqEgPCBnZW5zaGlrYVwgOwor5Yil5ZG9IDwgYmV0c3VtZWlcIDsKK+iJr+etliA8IHJ5b3VzYWt1XCA7CivnlJjpo58gPCBhbWFzaG9rdVwgOwor5YaF5p6gIDwgdWNoaXdha3VcIDsKK+api+adrSA8IGhhc2hpZ3VpXCA7Civnt4/mrabnt5ogPCBzb3VidXNlblwgOwor5LiN57i557e7IDwgYnVraXJ5b3VcIDsKK+WIpeWPtyA8IGJldHN1Z291XCA7CivlgJ/piq0gPCBzaGFrdXNlblwgOwor55yJ5bC7IDwgbWF5dWppcmlcIDsKK+ecn+WmgiA8IHNoaW4nJ255b1wgOwor6Kej5YOP5bqmIDwga2Fpem91ZG9cIDsKK+iLpeawtCA8IHdha2FtaXp1XCA7CivmjqfoqLTnirYgPCBrb3Vzb2pvdVwgOwor6YCa5YqbIDwgdHN1dXJpa2lcIDsKK+W6l+WFiCA8IG1pc2VzYWtpXCA7CivnlZTpgZMgPCBhemVtaWNoaVwgOwor6Iul5q6/IDwgd2FrYXRvbm9cIDsKK+WGjeaknOafuyA8IHNhaWtlbnNhXCA7CivpgJrliYcgPCB0c3V1c29rdVwgOwor5Yid5Y+jIDwgc2hva3VjaGlcIDsKK+aoveafvyA8IHRhcnVnYWtpXCA7Civoh63oppogPCBzaHV1a2FrdVwgOwor6KSH5bqn5qmfIDwgZnVrdXpha2lcIDsKK+aJueipleWutiA8IGhpaHlvdWthXCA7CivlvqHkuK3lhYMgPCBvY2h1dWdlblwgOwor5Lq655yf5Ly8IDwgaGl0b21hbmVcIDsKK+aoquanmCA8IHlva296YW1hXCA7CivmqKrmp40gPCB5b2tveWFyaVwgOwor5Ya35b65IDwgcmVpdGV0c3VcIDsKK+eahOWcsOS9jSA8IHRla2ljaGlpXCA7CivnnaPkv4MgPCB0b2t1c29rdVwgOwor5o+b5rCX5Y+jIDwga2Fua2lrb3VcIDsKK+iqv+afu+WToSA8IGNob3VzYWluXCA7CivkuJboqbHlvbkgPCBzZXdheWFrdVwgOwor5Yik5YilIDwgaGFuYmV0c3VcIDsKK+W4uOWuoiA8IGpvdWt5YWt1XCA7CivluLPlsLsgPCBjaG91amlyaVwgOwor5oKq55+l5oG1IDwgd2FydWRqaWVcIDsKK+iLl+awtCA8IG5hd2FtaXp1XCA7Civnn63mnJ/plpMgPCB0YW5raWthblwgOwor5b6h5Li75Lq6IDwgZ29zaHVqaW5cIDsKK+WxsemJviA8IHlhbWFib2tvXCA7Civpq4TomasgPCB6dWltdXNoaVwgOwor55qG5qeYIDwgbWluYXNhbWFcIDsKK+WIpeWGjCA8IGJlc3NhdHN1XCA7CivlkIzmmYLmgKcgPCBkb3VqaXNlaVwgOwor5bi35a2QIDwga2F0YWJpcmFcIDsKK+iNieW4giA8IGt1c2FpY2hpXCA7Civpu4TlpInnsbMgPCBvdWhlbm1haVwgOwor5L2Z5omA6ICFIDwgeW9zb21vbm9cIDsKK+eZveaqgCA8IGJ5YWt1ZGFuXCA7Civoi6Xmp5ggPCB3YWthc2FtYVwgOwor55u05bCEIDwgY2hva3VzaGFcIDsKK+WxsemHjCA8IHlhbWF6YXRvXCA7CivpgIDljbQgPCB0YWlreWFrdVwgOwor5ruL6aSK5YiGIDwgaml5b3VidW5cIDsKK+anjeeOiSA8IHlhcmlkYW1hXCA7Civmo5rniaHkuLkgPCB0YW5hYm90YVwgOwor55Sy6YmEIDwga291dGV0c3VcIDsKK+mKmOmFkuWxiyA8IG1laXNodXlhXCA7CivloanpoZ7ms4kgPCBlbnJ1aXNlblwgOwor5bGA6Z2iIDwga3lva3VtZW5cIDsKK+S/neiPjOiAhSA8IGhva2luc2hhXCA7CivpgJrkv6EgPCB0c3V1c2hpblwgOwor5qW157eaIDwga3lva3VzZW5cIDsKK+mYsuegguaelyA8IGJvdXNhcmluXCA7CivpgJrkv5cgPCB0c3V1em9rdVwgOwor6Ii557iBIDwgZnVuYWJlcmlcIDsKK+eak+aciCA8IGtvdWdldHN1XCA7CivoibLnm7ggPCBzaGlraXNvdVwgOwor6Imy55uyIDwgc2hpa2ltb3VcIDsKK+ecieWiqCA8IG1heXV6dW1pXCA7CivlhoXmjqUgPCBuYWlzZXRzdVwgOwor6ZaJ5LiW55WMIDwgaGVpc2VrYWlcIDsKK+W3tOaIpiA8IHRvbW9lc2VuXCA7Civlhajmm7IgPCB6ZW5reW9rdVwgOwor6Lu454mpIDwgamlrdW1vbm9cIDsKK+alree4viA8IGd5b3VzZWtpXCA7CivlnLDkuIvojI4gPCBjaGlrYWtlaVwgOwor5aSa6L665b2iIDwgdGFoZW5rZWlcIDsKK+WFpeacqCA8IG55dXVib2t1XCA7CivmpbXntLAgPCBnb2t1Ym9zb1wgOwor5LiN5piO5pyXIDwgZnVtZWlyb3VcIDsKK+mAgeWIpSA8IHNvdWJldHN1XCA7CivotrPpppYgPCBhc2hpa3ViaVwgOwor5YW85pGCIDwga2Vuc2V0c3VcIDsKK+WIpeS+vyA8IGJldHN1YmluXCA7CivlubTliKUgPCBuZW5iZXRzdVwgOwor5rOl54Gr5bGxIDwgZGVpa2F6YW5cIDsKK+eUn+mMsiA8IG5hbWFyb2t1XCA7Civkuqzpg73lupwgPCBreW91dG9mdVwgOwor55m95qKFIDwgc2hpcmF1bWVcIDsKK+iHhuiqrCA8IG9rdXNldHN1XCA7Civku6TlpKvkurogPCByZWlmdWppblwgOwor5YWI5qeYIDwgc2FraXNhbWFcIDsKK+WFqOaXpSA8IHplbmppdHN1XCA7CivluIPlvJUgPCBudW5vYmlraVwgOwor57235YWN5qipIDwgaGltZW5rZW5cIDsKK+S4geWtl+W9oiA8IHRlaWppa2VpXCA7Civnm6Plr58gPCBrYW5zYXRzdVwgOwor5YiG5YqbIDwgYnVucnlva3VcIDsKK+WAmeijnOiAhSA8IGtvdWhvc2hhXCA7Civlgo3ogLMgPCBrYXRhbWltaVwgOwor55Wl6KiAIDwgcnlha3VnZW5cIDsKK+WIpeS6uiA8IGJldHN1bmluXCA7CivlsI/prZogPCBrb3pha2FuYVwgOwor5bem5omLIDwgaGlkYXJpdGVcIDsKK+iJsueUuiA8IGlyb21hY2hpXCA7CivoibLnlLcgPCBpcm9vdG9rb1wgOwor5qW956ugIDwgZ2FrdXNob3VcIDsKK+WIhuWIpSA8IGJ1bmJldHN1XCA7CivntbXnlLvppKggPCBrYWlnYWthblwgOwor6ayx55eFIDwgdXRzdWJ5b3VcIDsKK+WbveWWtuWMliA8IGtva3VlaWthXCA7CivpgIbkv64gPCBneWFrdXNodVwgOwor54mp5pWF6ICFIDwgYnVra29zaGFcIDsKK+WJjeebuOaSsiA8IG1hZXp1bW91XCA7CivnoJTnsbPmqZ8gPCBrZW5tYWlraVwgOwor55u05aOyIDwgY2hva3ViYWlcIDsKK+WAn+iyuCA8IHNoYWt1dGFpXCA7Civmmpfpu5LmnJ8gPCBhbmtva3VraVwgOwor5YCf6LKhIDwgc2hha3V6YWlcIDsKK+ePvuaZgueCuSA8IGdlbmppdGVuXCA7CivpmqPkv53ppKggPCByaW5wb2thblwgOwor5Yas5bGxIDwgZnV5dXlhbWFcIDsKK+WIhuWGiiA8IGJ1bnNhdHN1XCA7CivnhLzlpLflvL4gPCBzaG91aWRhblwgOwor5LiB5a2X5bivIDwgdGVpaml0YWlcIDsKK+i7jeeVpSA8IGd1bnJ5YWt1XCA7CivliqDphY3nsbMgPCBrYWhhaW1haVwgOwor55So6YGUIDwgeW91dGF0c3VcIDsKK+iNkuWktyA8IGFyYWViaXN1XCA7CivmpbXnq68gPCBreW9rdXRhblwgOwor55yf5Y2XIDwgbWFtaW5hbWlcIDsKK+atr+enkeWMu+mZoiA8IHNoaWthaWluXCA7Civpq5jnsr7luqYgPCBrb3VzZWlkb1wgOwor55Wl6KOFIDwgcnlha3Vzb3VcIDsKK+mZsOmWouaVsCA8IGlua2Fuc3V1XCA7CivmsLTms7PluL0gPCBzdWllaWJvdVwgOwor5YiX5LydIDwgcmV0c3VkZW5cIDsKK+iyuOiyu+eUnyA8IHRhaWhpc2VpXCA7CivoiLnnq68gPCBmdW5hYmF0YVwgOwor6a+o5bqnIDwga3VqaXJhemFcIDsKK+edgOS7uyA8IGNoYWt1bmluXCA7CivlopfnqI7moYggPCB6b3V6ZWlhblwgOwor6L675aCCIDwgdHN1amlkb3VcIDsKK+S/uumBlCA8IG9yZXRhY2hpXCA7CivppJPprLzlhbEgPCBnYWtpZG9tb1wgOwor55yf5YuHIDwgc2hpbicneXV1XCA7CivlgpjntJkgPCBrYXNhZ2FtaVwgOwor6Kix5Y+v5Yi2IDwga3lva2FzZWlcIDsKK+eZveaYvCA8IGhha3VjaHV1XCA7Civnl7znlr4gPCBrb3NoaXRzdVwgOwor5YG96ICFIDwgbmlzZW1vbm9cIDsKK+WFi+acjSA8IGtva3VmdWt1XCA7CivlpbPmgKflg48gPCBqb3NlaXpvdVwgOwor55S76LOqIDwgZ2FzaGl0c3VcIDsKK+i3s+i6jSA8IGNob3V5YWt1XCA7CivngavmmJ/lubQgPCBrYXNlaW5lblwgOwor55m65piOIDwgaGF0c3VtZWlcIDsKK+S6nOehq+mFuCA8IGFyeXV1c2FuXCA7CivpgIbkuIogPCBneWFrdWpvdVwgOwor5YWI5pyIIDwgc2VuZ2V0c3VcIDsKK+W5s+S7hCA8IGh5b3Vzb2t1XCA7CivlhoblvaIgPCBtYXJ1Z2F0YVwgOwor5YaN6LuN5YKZIDwgc2FpZ3VuYmlcIDsKK+adv+Wxi+iynSA8IGl0YXlhZ2FpXCA7CivlsJHpoY0gPCBzaG91Z2FrdVwgOwor5pah5peL5qGIIDwgYXNzZW4nJ2FuXCA7CivoirHltJflsqkgPCBrYWtvdWdhblwgOwor6L+U5Y20IDwgaGVua3lha3VcIDsKK+WHtuWFhiA8IGt5b3VjaG91XCA7CivmpZPns5YgPCBrYWVkZXRvdVwgOwor5bmV5YaFIDwgbWFrdXVjaGlcIDsKK+acquWujOaIkCA8IG1pa2Fuc2VpXCA7Civlt7vlsLogPCBtYWtpamFrdVwgOwor5YWI5pelIDwgc2Vuaml0c3VcIDsKK+eEoeeUqOW/gyA8IGJ1eW91amluXCA7CivmiJDmlofljJYgPCBzZWlidW5rYVwgOwor5YCf6KanIDwgc2hha3VyYW5cIDsKK+eyl+aCquWTgSA8IHNvYWt1aGluXCA7CivmjqfoqLTmqKkgPCBrb3Vzb2tlblwgOwor6aeS6bOlIDwga29tYWRvcmlcIDsKK+iqv+eQhuWgtCA8IGNob3VyaWJhXCA7CivlnLDkuIvnt5ogPCBjaGlrYXNlblwgOwor5bmV5YOaIDwgYmFrdXJ5b3VcIDsKK+WGmeWunyA8IHNoYWppdHN1XCA7CivkupznoZ3phbggPCBhc2hvdXNhblwgOwor5YWD5pelIDwgZ2Fuaml0c3VcIDsKK+eZveaPjyA8IGhha3VieW91XCA7CivlsLvph40gPCBzaGlyaW9tb1wgOwor6ISb6aqoIDwga2Vpa290c3VcIDsKK+S9k+ezu+WMliA8IHRhaWtlaWthXCA7CivlhYPmlrkgPCBtb3Rva2F0YVwgOwor55m65o+aIDwgaGF0c3V5b3VcIDsKK+e1jOWWtuiAhSA8IGtlaWVpc2hhXCA7CivojLblo7ogPCBjaGF0c3Vib1wgOwor5L+u6LqrIDwgc2h1dXNoaW5cIDsKK+eZuuaOmCA8IGhha2t1dHN1XCA7Civlt53lupUgPCBrYXdhem9rb1wgOwor5bed5bqKIDwga2F3YWRva29cIDsKK+WHtuS9nCA8IGt5b3VzYWt1XCA7CivmpoLnlaUgPCBnYWlyeWFrdVwgOwor6KKr5YaZ5L2TIDwgaGlzaGF0YWlcIDsKK+W3neW5hSA8IGthd2FoYWJhXCA7Civlgrfnl4UgPCBzaG91YnlvdVwgOwor5qSO6Iy4IDwgc2hpaXRha2VcIDsKK+W3nuW3niA8IHNodXVzaHV1XCA7CivlgZzogbcgPCB0ZWlzaG9rdVwgOwor5L6R6aOfIDwgeXV1c2hva3VcIDsKK+WIhuWoqeacnyA8IGJ1bmJlbmtpXCA7Civlvozku5XoiJ4gPCBhdG9qaW1haVwgOwor5YaF5bGAIDwgbmFpa3lva3VcIDsKK+eUt+imqiA8IG90b2tvb3lhXCA7Civoo4/pnaLlj7IgPCByaW1lbnNoaVwgOwor6Iqx5p+EIDwgaGFuYWdhcmFcIDsKK+imi+S4lueJqSA8IG1pc2Vtb25vXCA7CivlsbHopZ4gPCB5YW1haGlkYVwgOwor6L675Y2gIDwgdHN1aml1cmFcIDsKK+anmOanmCA8IHNhbWF6YW1hXCA7CivnnJ/kuK0gPCBtYW4nJ25ha2FcIDsKK+WGheWvhiA8IG5haW1pdHN1XCA7Civoqp7lvZnlipsgPCBnb2lyeW9rdVwgOwor6Iqx5p2fIDwgaGFuYXRhYmFcIDsKK+WGheWunyA8IG5haWppdHN1XCA7CivlhbHluIMgPCB0b21vbnVub1wgOwor5bGx6KO+IDwgeWFtYXN1c29cIDsKK+mrmOepuiA8IHRha2F6b3JhXCA7CivoirHmnK0gPCBoYW5hZnVkYVwgOwor6a2U5rOV55O2IDwgbWFob3ViaW5cIDsKK+eZvuaFiyA8IGh5YWt1dGFpXCA7CivliIblqKnmmYIgPCBidW5iZW5qaVwgOwor5LiK5LiL5YuVIDwgam91Z2Vkb3VcIDsKK+W5s+mdouWbsyA8IGhlaW1lbnp1XCA7CivogJDngavmgKcgPCB0YWlrYXNlaVwgOwor55eU55a+IDwgamlzaGl0c3VcIDsKK+WGjeWumue+qSA8IHNhaXRlaWdpXCA7Civpm7vmsJflt6UgPCBkZW5raWtvdVwgOwor5Y+N5Y+k57GgIDwgaG9ndWthZ29cIDsKK+WFq+W5oSA8IGhhY2hpbWFuXCA7CivlvqHpmY3oqpUgPCBnb2tvdXRhblwgOwor5beh5a+fIDwganVuc2F0c3VcIDsKK+i7vealrSA8IGthcnV3YXphXCA7Civlt53lsLsgPCBrYXdhamlyaVwgOwor5piO5paH5YyWIDwgbWVpYnVua2FcIDsKK+iFueWFt+WQiCA8IGhhcmFndWFpXCA7Civnm7TliY0gPCBjaG9rdXplblwgOwor6YG45oyZ5pelIDwgc2Vua3lvYmlcIDsKK+ajkuihkyA8IGJvdWp1dHN1XCA7CivoirHmmYIgPCBoYW5hZG9raVwgOwor5YWl5bmVIDwgbnl1dW1ha3VcIDsKK+eZuuaDhSA8IGhhdHN1am91XCA7Civkv7PorJQgPCBoYWlneWFrdVwgOwor5bKp6ISIIDwgZ2FubXlha3VcIDsKK+W4s+WFgyA8IGNob3Vtb3RvXCA7Civnl4XnmoQgPCBieW91dGVraVwgOwor5qiq5bmFIDwgeW9rb2hhYmFcIDsKK+i8uOeyvueuoSA8IHl1c2Vpa2FuXCA7Civnl4XnmZYgPCBieW91aGVraVwgOwor5bCP5aOy5bqXIDwga291cml0ZW5cIDsKK+Wuh+WumeirliA8IHVjaHV1cm9uXCA7Civog7jpq5ggPCBtdW5hZGFrYVwgOwor6ZGR5a6a5a62IDwga2FudGVpa2FcIDsKK+S/g+mAsiA8IHNva3VzaGluXCA7CivmqJnlvrQgPCBoeW91Y2hvdVwgOwor5Zu65rq25L2TIDwga295b3V0YWlcIDsKK+ahiOWGheaJgCA8IGFuJyduYWlqb1wgOwor55eF55eHIDwgYnlvdXNob3VcIDsKK+iHquS/oeWutiA8IGppc2hpbmthXCA7CivlhrfljbQgPCByZWlreWFrdVwgOwor5Lqc6Ymb5pyrIDwgYWVubWF0c3VcIDsKK+iGj+ihgCA8IGtvdWtldHN1XCA7CivlgrfniakgPCBraXp1bW9ub1wgOwor5bCO6Zu75bqmIDwgZG91ZGVuZG9cIDsKK+ecjOefpeS6iyA8IGtlbmNoaWppXCA7Civnmb7lvIogPCBoeWFrdWhlaVwgOwor5Yed5LmzIDwgZ3lvdW55dXVcIDsKK+eVnOiIjiA8IGNoaWt1c2hhXCA7CivmhI/msJfpmLvllqogPCBpa2lzb3NvdVwgOwor5YWx5a2mIDwga3lvdWdha3VcIDsKK+Wuh+WumeimsyA8IHVjaHV1a2FuXCA7Civpm7vli5XmqZ8gPCBkZW5kb3VraVwgOwor5bCR6YePIDwgc2hvdXJ5b3VcIDsKK+S4gOS4geebriA8IGl0Y2hvdW1lXCA7CivkvIrpgZTooYYgPCBkYXRlc2h1dVwgOwor6IWL56qp6IW6IDwgZWtpa2FzZW5cIDsKK+S4jeaWh+azlSA8IGZ1YnVucG91XCA7Civnmb7lubQgPCBoeWFrdW5lblwgOwor6Laz6Lu9IDwgYXNoaWdhcnVcIDsKK+S4gOiyq+aApyA8IGlra2Fuc2VpXCA7Civlj6PlhoXngo4gPCBrb3VuYWllblwgOwor5YGl562GIDwga2VucGl0c3VcIDsKK+mBjuS4jei2syA8IGthZnVzb2t1XCA7Civlr5LppIUgPCBrYW5tb2NoaVwgOwor5a+u6ZW3IDwgcnlvdWNob3VcIDsKK+aEm+eUqOiAhSA8IGFpeW91c2hhXCA7Civkv4rotrMgPCBzaHVuc29rdVwgOwor5YWs5rCR56eRIDwga291bWlua2FcIDsKK+WFpeWvgiA8IG55dXVqYWt1XCA7Civlh7rmoLzlrZAgPCBkZWdvdXNoaVwgOwor5L+h6KqNIDwgc2hpbicnbmluXCA7Civku4rkuJbntIAgPCBrb25zZWlraVwgOwor5YWl5a2mIDwgbnl1dWdha3VcIDsKK+alreeJqSA8IHdhemFtb25vXCA7CivmnKrlqZrogIUgPCBtaWtvbnNoYVwgOwor6LWk6Z20IDwgYWthZ3V0c3VcIDsKK+WAmeijnOeUnyA8IGtvdWhvc2VpXCA7Civlt57looMgPCBzaHV1a3lvdVwgOwor5p2x5Y2X5LqcIDwgdG91bmFuJydhXCA7Civkv6HoqJcgPCBzaGludGFrdVwgOwor5L6b6aSK5aGUIDwga3V5b3V0b3VcIDsKK+WBpeiDg+WJpCA8IGtlbicnaXphaVwgOwor5a6/6aeFIDwgc2h1a3Vla2lcIDsKK+alteeCuSA8IGt5b2t1dGVuXCA7Civkv5foqr8gPCB6b2t1Y2hvdVwgOwor6IiM55mMIDwgemV0c3VnYW5cIDsKK+ebtOS4rSA8IHRhZGFuYWthXCA7CivoirHmiL8gPCBoYW5hZnVzYVwgOwor5L+u6aiT6ICFIDwgc2h1Z2VuamFcIDsKK+eWq+eXhSA8IHlha3VieW91XCA7Civoi6Xlrq4gPCB3YWthbWl5YVwgOwor5YWD5bizIDwgbW90b2Nob3VcIDsKK+Wvm+mXiiA8IGthbmthdHN1XCA7Civlr7jpiYQgPCBzdW50ZXRzdVwgOwor6YGV54qv6KGM54K6IDwgaWhhbmtvdWlcIDsKK+aflOmBk+edgCA8IGp1dWRvdWdpXCA7Civnmb7lrrMgPCBoeWFrdWdhaVwgOwor5b6u57O75pWwIDwgYmlrZWlzdXVcIDsKK+S7lee9ruWgtCA8IHNoaW9raWJhXCA7CivlgbbnmbogPCBndXVoYXRzdVwgOwor5bmz5pa55ZKMIDwgaGVpaG91d2FcIDsKK+Wwj+i6qyA8IHNob3VzaGluXCA7Civlrr/poZggPCBzaHVrdWdhblwgOwor5Ly05aWP6YOoIDwgYmFuc291YnVcIDsKK+eUn+iWrCA8IHNob3V5YWt1XCA7Civlrr/poYwgPCBzaHVrdWRhaVwgOwor5Y+k5YaZ5pysIDwga29zaGFob25cIDsKK+eTtuipsCA8IGJpbmR6dW1lXCA7CivlgY/nqp8gPCBoZW5rdXRzdVwgOwor5YWI5bGxIDwgc2FraXlhbWFcIDsKK+eUt+iJsiA8IG5hbnNob2t1XCA7CivohLHovKogPCBkYXRzdXJpblwgOwor5Ye65p2l54mpIDwgZGVraW1vbm9cIDsKK+WAuee0hCA8IGtlbicneWFrdVwgOwor6I2J5LiIIDwga3VzYXRha2VcIDsKK+Wcn+mlhemgrSA8IGRvbWFuanV1XCA7CivkuJboqbHkurogPCBzZXdhYml0b1wgOwor5YWl5aG+IDwgbnl1dWp1a3VcIDsKK+e+jumhlOawtCA8IGJpZ2Fuc3VpXCA7Civoh6rnlLHliJEgPCBqaXl1dWtlaVwgOwor5aGp6aKo5ZGCIDwgc2hpb2J1cm9cIDsKK+WFhembu+WZqCA8IGp1dWRlbmtpXCA7CivooqvpqJPogIUgPCBoaWtlbnNoYVwgOwor5bCP54aK5bqnIDwga29ndW1hemFcIDsKK+WEquW9oiA8IHlhc2FnYXRhXCA7CivmiYvkv6Hoqp4gPCB0ZXNoaW5nb1wgOwor5YWI5a6iIDwgc2Vua3lha3VcIDsKK+i1pOavm+W4gyA8IGFrYWdldHRvXCA7Civkv5fooYYgPCB6b2t1c2h1dVwgOwor5bGx6IaaIDwgeWFtYWhhZGFcIDsKK+amleaouSA8IGdhanVtYXJ1XCA7CivlhYjlrokgPCBzYWtpeWFzdVwgOwor6aas6Z2iIDwgdW1hZHp1cmFcIDsKK+awtOW9qeeUuyA8IHN1aXNhaWdhXCA7CivkuIDkurrlr50gPCBoaXRvcmluZVwgOwor6Z2S5ZGz5rOlIDwgYW9taWRvcm9cIDsKK+eZvuWnkyA8IGh5YWt1c2VpXCA7Civoh6rnlLHlhZogPCBqaXl1dXRvdVwgOwor5YWF5a6fIDwganV1aml0c3VcIDsKK+iKmeiTieWzsCA8IGZ1eW91aG91XCA7CivokL3oirHnlJ8gPCByYWtrYXNlaVwgOwor6Iqx5b2iIDwgaGFuYWdhdGFcIDsKK+WxsemWk+mDqCA8IHNhbmthbmJ1XCA7Civnm5fkurogPCBudXN1Yml0b1wgOwor5ZCM5pmC5LujIDwgZG91amlkYWlcIDsKK+eZveWmmSA8IHNoaXJvdGFlXCA7CivlsbHohIggPCB5YW1hbmFtaVwgOwor54Sh5a6X5rS+IDwgbXVzaHV1aGFcIDsKK+iKseW8gSA8IGhhbmFiaXJhXCA7CivlhaXlm70gPCBueXV1a29rdVwgOwor5qW15rSLIDwga3lva3V5b3VcIDsKK+i7jeaUv+W6nCA8IGd1bnNlaWZ1XCA7Civnmb3lo4EgPCBoYWt1aGVraVwgOwor55m95aKoIDwgaGFrdWJva3VcIDsKK+eZuuWjsiA8IGhhdHN1YmFpXCA7CivlhoXlipsgPCBuYWlyeW9rdVwgOwor6LWk6YqFIDwgc2hha3Vkb3VcIDsKK+earuWJpSA8IGthd2FoYWdpXCA7CivlqabkurrkvJogPCBmdWppbmthaVwgOwor5Y6f57mK57atIDwgZ2Vuc2VuJydpXCA7Civlt6jliLkgPCBreW9zYXRzdVwgOwor6aqo55ukIDwga290c3ViYW5cIDsKK+mvieWPoyA8IGtvaWd1Y2hpXCA7CivnlJ/oibIgPCBzZWlzaG9rdVwgOwor57aZ6Zu75rCXIDwga2VpZGVua2lcIDsKK+S4jeaWh+aYjiA8IGZ1YnVubWVpXCA7CivlubPlnJ/plpMgPCBoaXJhZG9tYVwgOwor5qyh55S35Z2KIDwgamluYW5ib3VcIDsKK+WFiOWkqiA8IHNha2lidXRvXCA7CivotoXotoogPCBjaG91ZXRzdVwgOwor6IaA6IOx54KOIDwgYm91a291ZW5cIDsKK+acieWKueaJkyA8IHl1dWtvdWRhXCA7Civpm6jph4/oqIggPCB1cnlvdWtlaVwgOwor5YW15Y2SIDwgaGVpc290c3VcIDsKK+Wuh+WumeiIuSA8IHVjaHV1c2VuXCA7CivmuJvoobDlmaggPCBnZW5zdWlraVwgOwor5qeY5byPIDwgeW91c2hpa2lcIDsKK+S8tOmjnyA8IGJhbnNob2t1XCA7CivlpJroirjmgKcgPCB0YWdlaXNlaVwgOwor5YW15YqbIDwgaGVpcnlva3VcIDsKK+i1pOWIh+espiA8IGFrYWdpcHB1XCA7Civmpb3mpb0gPCByYWt1cmFrdVwgOwor6auY5r2uIDwgdGFrYXNoaW9cIDsKK+WGheWBtCA8IHVjaGlnYXdhXCA7CivohIXov6sgPCBreW91aGFrdVwgOwor6IW56IacIDwgZnVrdW1ha3VcIDsKK+eBq+aYn+S6uiA8IGthc2VpamluXCA7CivlhoXlgIkgPCB1Y2hpZ3VyYVwgOwor5pel6Iiq5qmfIDwgbmlra291a2lcIDsKK+S7iuS4lueVjCA8IGtvbnNla2FpXCA7CivoirHlroggPCBoYW5hbW9yaVwgOwor6IO46YOtIDwga3lvdWtha3VcIDsKK+i7jemcgOWTgSA8IGd1bmp1aGluXCA7Civnl4Xmr5IgPCBieW91ZG9rdVwgOwor5qW15qW9IDwgZ29rdXJha3VcIDsKK+awtOiSuOawlyA8IHN1aWpvdWtpXCA7CivmpbXmpbUgPCBnb2t1Z29rdVwgOwor5Y2Y5ryi5a2XIDwgdGFua2FuamlcIDsKK+WNgeaWh+WtlyA8IGp1dW1vbmppXCA7CivlrojlgpnlhbUgPCBzaHViaWhlaVwgOwor55eF5q20IDwgYnlvdXJla2lcIDsKK+aal+WPt+aWhyA8IGFuZ291YnVuXCA7CivoirHlq4EgPCBoYW5heW9tZVwgOwor5YWo5YqbIDwgemVucnlva3VcIDsKK+WFseWFsSA8IHRvbW9kb21vXCA7Civpq5jnrYnnp5EgPCBrb3V0b3VrYVwgOwor6Iqx5am/IDwgaGFuYW11a29cIDsKK+i0i+mmliA8IG5pc2VrdWJpXCA7Civoi6XlkJsgPCB3YWthZ2ltaVwgOwor5bGA6IiOIDwga3lva3VzaGFcIDsKK+W3nuS/lyA8IHNodXV6b2t1XCA7Civmt7vkuZflk6EgPCB0ZW5qb3VpblwgOwor5qSN55SfIDwgc2hva3VzZWlcIDsKK+aoqeWKmyA8IGtlbnJ5b2t1XCA7CivlhKrlpbMgPCB5YXNhb24nJ2FcIDsKK+Wuv+mFlCA8IHNodWt1c3VpXCA7CivotavotasgPCBrYWt1a2FrdVwgOwor5qGI5YaF5ZuzIDwgYW4nJ25haXp1XCA7CivlkIjoqIDokYkgPCBhaWtvdG9iYVwgOwor5a+G6YCgIDwgbWl0c3V6b3VcIDsKK+alveabsiA8IGdha2t5b2t1XCA7Civpq5jms6IgPCB0YWthbmFtaVwgOwor5Lya6aOfIDwga2Fpc2hva3VcIDsKK+Wumuacn+WIuCA8IHRlaWtpa2VuXCA7CivlgJLnq4sgPCB0b3VyaXRzdVwgOwor6Imy5oSfIDwgc2hpa2lrYW5cIDsKK+W3puS4iiA8IGhpZGFyaXVlXCA7CivkuojnrpfmoYggPCB5b3NhbicnYW5cIDsKK+WkmuanmOaApyA8IHRheW91c2VpXCA7CivlhYjlk7IgPCBzZW50ZXRzdVwgOwor6Ieq6LOg5rOVIDwgamliYWlob3VcIDsKK+alteadsSA8IGt5b2t1dG91XCA7Civlh7rkuI3nsr4gPCBkZWJ1c2hvdVwgOwor5a6J5bGx5bKpIDwgYW56YW5nYW5cIDsKK+iAgeWkp+WutiA8IHJvdXRhaWthXCA7CivmsI/ntKDmgKcgPCB1amlzdWpvdVwgOwor5LiK5aSp5rCXIDwgam91dGVua2lcIDsKK+esrOS4gOWjsCA8IGRhaWlzc2VpXCA7CivlsI7ngavnt5ogPCBkb3VrYXNlblwgOwor6a2a5bGLIDwgc2FrYW5heWFcIDsKK+S+nemgvOW/gyA8IGlyYWlzaGluXCA7Civot7PnrrEgPCB0b2JpYmFrb1wgOwor6Luf5byPIDwgbmFuc2hpa2lcIDsKK+iyoOWCteiAhSA8IGZ1c2Fpc2hhXCA7Civpq5jmrr8gPCB0YWthZG9ub1wgOwor5b6M6aCt6YOoIDwga291dG91YnVcIDsKK+WBj+eJhyA8IGthdGFoYXJhXCA7Civlt53kuIogPCBrYXdha2FtaVwgOwor55qu6Iaa55eFIDwgaGlmdWJ5b3VcIDsKK+WxseeoiyA8IHlhbWFob2RvXCA7Civnmbrli5UgPCBoYXRzdWRvdVwgOwor6ICB5aSr5ammIDwgcm91ZnV1ZnVcIDsKK+WFiOWPoyA8IHNlbmt1Y2hpXCA7CivlnLDkuIvmsLQgPCBjaGlrYXN1aVwgOwor6IKL6aqoIDwgcm9ra290c3VcIDsKK+mbu+awl+S7oyA8IGRlbmtpZGFpXCA7Civlrprnvqnln58gPCB0ZWlnaWlraVwgOwor55Wc55SjIDwgY2hpa3VzYW5cIDsKK+iJsuW9qSA8IHNoaWtpc2FpXCA7Civoia/lv4MgPCByeW91c2hpblwgOwor55Sf57GzIDwgbmFtYWdvbWVcIDsKK+eUqOethiA8IHlvdWhpdHN1XCA7CivmlL7ngavnvaogPCBob3VrYXphaVwgOwor6Zuo5ZCI5769IDwgYW1hZ2FwcGFcIDsKK+WPl+WIkeiAhSA8IGp1a2Vpc2hhXCA7Civoh5PniakgPCB6b3Vtb3RzdVwgOwor6Z2e5YWs6ZaLIDwgaGlrb3VrYWlcIDsKK+mBmeOAhSA8IGhhcnViYXJ1XCA7CivpqqjngbAgPCBrb3RzdWJhaVwgOwor5pmu6KuL5aC0IDwgZnVzaGluYmFcIDsKK+WkmuWztua1tyA8IHRhdG91a2FpXCA7CivoiLnml4UgPCBmdW5hdGFiaVwgOwor6Ii55pa5IDwgZnVuYWthdGFcIDsKK+WKtOWDjeatjCA8IHJvdWRvdWthXCA7Civlr4TmuK/lnLAgPCBraWtvdWNoaVwgOwor6Iqx5ZySIDwgaGFuYXpvbm9cIDsKK+Wumuacn+S+vyA8IHRlaWtpYmluXCA7Civou43lvosgPCBndW5yaXRzdVwgOwor6LuN5b25IDwgZ3VuJyd5YWt1XCA7CivmnKrmnaXlvaIgPCBtaXJhaWtlaVwgOwor55m+5YSEIDwgaHlha3Vva3VcIDsKK+WxkeexoCA8IGt1enVrYWdvXCA7Civnl5vmkoMgPCB0c3V1Z2VraVwgOwor5YWo5LmzIDwgemVuJydueXV1XCA7CivmoLzoqr8gPCBrYWt1Y2hvdVwgOwor6Ly45Ye6IDwgeXVzaHV0c3VcIDsKK+mjm+ihjOWjqyA8IGhpa291c2hpXCA7CivmpoLmi6wgPCBnYWlrYXRzdVwgOwor6Iag552AIDwga291Y2hha3VcIDsKK+WmiueUo+WppiA8IG5pbnNhbnB1XCA7Civnn63mmYLplpMgPCB0YW5qaWthblwgOwor5L216KitIDwgaGVpc2V0c3VcIDsKK+eZvuWAjSA8IGh5YWt1YmFpXCA7CivlgY/lt67lgKQgPCBoZW5zYWNoaVwgOwor5LiL6ZmN57eaIDwga2Frb3VzZW5cIDsKK+a0i+iPk+WtkCA8IHlvdWdhc2hpXCA7Civmlq3oo4HmqZ8gPCBkYW5zYWlraVwgOwor6LuK5bqnIDwga3VydW1hemFcIDsKK+WFiOWFpSA8IHNlbicnbnl1dVwgOwor6aOb6KGM5aC0IDwgaGlrb3Vqb3VcIDsKK+WAn+eUqCA8IHNoYWt1eW91XCA7Civlrr/os4MgPCB5YWRvY2hpblwgOwor55Wc54qsIDwgY2hpa3VrZW5cIDsKK+aBteavlOmgiOismyA8IGViaXN1a291XCA7Civlgo3mnZYgPCBzb2JhZHp1ZVwgOwor5YWD5YWDIDwgbW90b21vdG9cIDsKK+W3peWFt+WFpSA8IGtvdWd1aXJlXCA7CivkvZPmuKnoqIggPCB0YWlvbmtlaVwgOwor5a+d6KKLIDwgbmVidWt1cm9cIDsKK+eZuuihjOaXpSA8IGhha2tvdWJpXCA7Civoip3lnLAgPCBzaGliYWNoaVwgOwor5ou35ZWP5YW3IDwgZ291bW9uZ3VcIDsKK+eahOS4rSA8IHRla2ljaHV1XCA7CivpmaTlpJbkvosgPCBqb2dhaXJlaVwgOwor5bCx57ibIDwgc2h1dWJha3VcIDsKK+Wvv+iAgeS6uiA8IGp1cm91amluXCA7Civlr4borIAgPCBtaXRzdWJvdVwgOwor5YWs5Y+W5aeUIDwga291dG9yaWlcIDsKK+mZouWkluWboyA8IGluZ2FpZGFuXCA7CivkuI3lpInmgKcgPCBmdWhlbnNlaVwgOwor5a+G6KuHIDwgbWl0c3VkYW5cIDsKK+WkmueUo+ezuyA8IHRhc2Fua2VpXCA7Civnmbrku6QgPCBoYXRzdXJlaVwgOwor5bCP6KaP5qihIDwgc2hvdWtpYm9cIDsKK+WQiOitsOWItiA8IGdvdWdpc2VpXCA7Civntq3nrqHmnZ8gPCBpa2Fuc29rdVwgOwor6Imv5bCGIDwgcnlvdXNob3VcIDsKK+Wuoui7iiA8IGt5YWt1c2hhXCA7CivohLHoibIgPCBkYXNzaG9rdVwgOwor6auY5rip6KiIIDwga291b25rZWlcIDsKK+mrmOacrSA8IGtvdXNhdHN1XCA7CivliJ3nrYnnp5EgPCBzaG90b3VrYVwgOwor6KiY5oa25rOVIDwga2lva3Vob3VcIDsKK+S7iuacneaWuSA8IGtlc2FnYXRhXCA7Civnmb7kuIcgPCBoeWFrdW1hblwgOwor56C056CV5oCnIDwgaGFzYWlzZWlcIDsKK+m5v+mHjuiLkSA8IHJva3V5YW9uXCA7Civku5npqqggPCBzZW5rb3RzdVwgOwor5a6J6YWSIDwgeWFzdXpha2VcIDsKK+WDu+WigyA8IGhla2lreW91XCA7Civou4rlsYsgPCBrdXJ1bWF5YVwgOwor6Iie5Y+w6KOPIDwgYnV0YWl1cmFcIDsKK+e1jOWWtuaoqSA8IGtlaWVpa2VuXCA7Civouqvlv4MgPCBzaGluc2hpblwgOwor55eb5oOcIDwgdHN1dXNla2lcIDsKK+S4jeeHg+aApyA8IGZ1bmVuc2VpXCA7Civlgb3mnK0gPCBuaXNlZnVkYVwgOwor56We56WH5a6YIDwgamluZ2lrYW5cIDsKK+WAn+eJqSA8IGthcmltb25vXCA7CivotaTom5kgPCBha2FnYWVydVwgOwor6KKr5a6z6ICFIDwgaGlnYWlzaGFcIDsKK+S7mOmmrCA8IHRzdWtldW1hXCA7CivmsLTphbjln7ogPCBzdWlzYW5raVwgOwor5aSp5L2T5ZuzIDwgdGVudGFpenVcIDsKK+i/kei3nemboiA8IGtpbmt5b3JpXCA7CivmupbnpL7lk6EgPCBqdW5zaGFpblwgOwor6LWk6JmrIDwgYWthbXVzaGlcIDsKK+S9l+iogCA8IHdhYmlnb3RvXCA7Civkurrku7bosrsgPCBqaW5rZW5oaVwgOwor5bi45b6X5oSPIDwgam91dG9rdWlcIDsKK+eUn+eariA8IG5hbWFrYXdhXCA7CivmpbXmgKcgPCBreW9rdXNlaVwgOwor6Imy5aWzIDwgaXJvb24nJ25hXCA7CivovKrkvJAgPCByaW5iYXRzdVwgOwor5YCN546HIDwgYmFpcml0c3VcIDsKK+earuiEguiFuiA8IGhpc2hpc2VuXCA7CivnhKHlrprlvaIgPCBtdXRlaWtlaVwgOwor5Y+v55So5oCnIDwga2F5b3VzZWlcIDsKK+S6uueUn+a0viA8IGppbnNlaWhhXCA7Civkv5fnp7AgPCB6b2t1c2hvdVwgOwor5bGx54y/IDwgeWFtYXphcnVcIDsKK+WxseeMqyA8IHlhbWFuZWtvXCA7CivkvJ3pgZQgPCBkZW50YXRzdVwgOwor55m66KGM5omAIDwgaGFra291am9cIDsKK+aRqeWkqealvCA8IG1hdGVucm91XCA7Civlr7Xoh6MgPCBjaG91c2hpblwgOwor5bCP6ZaT54mpIDwga29tYW1vbm9cIDsKK+akjeavmyA8IHNob2t1bW91XCA7CivlvqHlpKflsaQgPCBnb3RhaXNvdVwgOwor6K2m5YKZ6ZqKIDwga2VpYml0YWlcIDsKK+WJsueDueedgCA8IGthcHBvdWdpXCA7CivljZTlkozpn7MgPCBreW91d2FvblwgOwor5Y+X5YuV5oWLIDwganVkb3V0YWlcIDsKK+e3j+WLleWToSA8IHNvdWRvdWluXCA7CivogonpjYsgPCBuaWt1bmFiZVwgOwor55S354i1IDwgZGFuc2hha3VcIDsKK+iKseael+ezliA8IGthcmludG91XCA7CivkurrprYIgPCBoaXRvZGFtYVwgOwor6IW555ebIDwgZnVrdXRzdXVcIDsKK+iIueW6lSA8IGZ1bmF6b2tvXCA7CivoiLnluoogPCBmdW5hZG9rb1wgOwor6aeG6JC9IDwga2FrZW9jaGlcIDsKK+alteW4jCA8IGdva3VtYXJlXCA7CivkurrpqqggPCBqaW5rb3RzdVwgOwor5bCP57WQIDwga29tdXN1YmlcIDsKK+ato+ekvuWToSA8IHNlaXNoYWluXCA7CivnrYnmuKnnt5ogPCB0b3VvbnNlblwgOwor5a6f6KqsIDwgamlzc2V0c3VcIDsKK+W+oemciuWxiyA8IG1pdGFtYXlhXCA7CivkuIDlpJXoqbEgPCBpc3Nla2l3YVwgOwor5bCP54K65pu/IDwga29nYXdhc2VcIDsKK+esrOS4gOS9jSA8IGRhaWljaGlpXCA7CivlsaXniakgPCBoYWtpbW9ub1wgOwor55eF5b60IDwgYnlvdWNob3VcIDsKK+eojumWouWQjyA8IHplaWthbnJpXCA7CivppIrogrLosrsgPCB5b3Vpa3VoaVwgOwor5a6a6KqsIDwgdGVpc2V0c3VcIDsKK+iHqOaciCA8IHJpbmdldHN1XCA7CivmtYHpj5HppqwgPCB5YWJ1c2FtZVwgOwor55eF5byxIDwgYnlvdWpha3VcIDsKK+aOp+iotOS6uiA8IGtvdXNvbmluXCA7CivojLboqbHkvJogPCBjaGF3YWthaVwgOwor5Zar57eK5LqLIDwga2lra2luamlcIDsKK+WQuOmHkeWJmyA8IGtva29uZ291XCA7CivpqqjmnZAgPCBrb3RzdXphaVwgOwor55Sj54mpIDwgc2FuYnV0c3VcIDsKK+aknOacrSA8IGtlbnNhdHN1XCA7Civosqrpo58gPCBkb25zaG9rdVwgOwor5L+h55SoIDwgc2hpbicneW91XCA7CivohIfohbkgPCB3YWtpYmFyYVwgOwor6ICB57e05a62IDwgcm91cmVua2FcIDsKK+S4jeiqv+WSjCA8IGZ1Y2hvdXdhXCA7CivnlJ/niakgPCBuYW1hbW9ub1wgOwor5bGA55WqIDwga3lva3ViYW5cIDsKK+Wwj+etliA8IHNob3VzYWt1XCA7Civmp43lhYggPCB5YXJpc2FraVwgOwor5rCX566h5pSvIDwga2lrYW5zaGlcIDsKK+eXsOWjuiA8IHRhbnRzdWJvXCA7Civpq6rluoogPCBrYW1pZG9rb1wgOwor5rC06YW45YyWIDwgc3Vpc2Fua2FcIDsKK+Wkp+S6uuawlyA8IGRhaW5pbmtpXCA7Civlr5LoibIgPCBrYW5zaG9rdVwgOwor6Z2S6YqF5ZmoIDwgc2VpZG91a2lcIDsKK+akjeagvSA8IHNob2t1c2FpXCA7CivkvJHotrMgPCBreXV1c29rdVwgOwor6Ii55a6/IDwgZnVuYXlhZG9cIDsKK+S7j+mWgCA8IGJ1dHN1bW9uXCA7Civpo5vooYzkvr8gPCBoaWtvdWJpblwgOwor5YKN5b25IDwgd2FraXlha3VcIDsKK+iCiei/qyA8IG5pa3VoYWt1XCA7Civlj6/og73ms5UgPCBrYW5vdWhvdVwgOwor55yf54+g5q+NIDwgc2hpbmp1Ym9cIDsKK+aguOiGnCA8IGtha3VtYWt1XCA7CivlsILmlLvnp5EgPCBzZW5rb3VrYVwgOwor5YyW6Ia/6I+MIDwga2Fub3VraW5cIDsKK+S6oemquCA8IG5ha2lnYXJhXCA7Civoh5jmnIggPCByb3VnZXRzdVwgOwor5qSN5p6XIDwgc2hva3VyaW5cIDsKK+mdnuW4uOe3miA8IGhpam91c2VuXCA7Civnsr7kuIDmna8gPCBzZWlpcHBhaVwgOwor6YGH5LiN6YGHIDwgZ3V1ZnVndXVcIDsKK+iDuOiGnCA8IGt5b3VtYWt1XCA7Civpo73po58gPCBob3VzaG9rdVwgOwor5L+u54afIDwgc2h1dWp1a3VcIDsKK+acquiAleWcsCA8IG1pa291Y2hpXCA7CivploDkuIvnlJ8gPCBtb25rYXNlaVwgOwor5LiA6aKo5ZGCIDwgaGl0b2Z1cm9cIDsKK+WuheiouiA8IHRha3VzaGluXCA7CivlsI/npoQgPCBzaG91cm9rdVwgOwor5Lyd6KqsIDwgZGVuc2V0c3VcIDsKK+i2s+eZliA8IGFzaGlrdXNlXCA7CivohLHnqI4gPCBkYXRzdXplaVwgOwor5Lqs6Z+/IDwga3lvdWt5b3VcIDsKK+WfuemkiuWfuiA8IGJhaXlvdWtpXCA7Civou6LlhaUgPCB0ZW4nJ255dXVcIDsKK+i7jemaiuWMliA8IGd1bnRhaWthXCA7CivmvJToirjkvJogPCBlbmdlaWthaVwgOwor5a++56uLIDwgdGFpcml0c3VcIDsKK+aWh+S6uueUuyA8IGJ1bmppbmdhXCA7Civnj77mmYLku6MgPCBnZW5qaWRhaVwgOwor6IWr54mpIDwgc2h1bW90c3VcIDsKK+W6g+evhOWbsiA8IGtvdWhhbicnaVwgOwor5qW15aSnIDwga3lva3VkYWlcIDsKK+eVpeabuCA8IHJ5YWt1c2hvXCA7Civlrr/oiI4gPCBzaHVrdXNoYVwgOwor6LuN5Y2SIDwgZ3Vuc290c3VcIDsKK+WGhuWxi+aguSA8IG1hcnV5YW5lXCA7Civls7Dls7AgPCBtaW5lbWluZVwgOwor5Z+56aSK5ZyfIDwgYmFpeW91ZG9cIDsKK+Wvkuawl+WboyA8IGthbmtpZGFuXCA7CivlrrnoibIgPCB5b3VzaG9rdVwgOwor57KX5Yip55uKIDwgYXJhcmlla2lcIDsKK+S7i+mMryA8IGthaXNoYWt1XCA7CivkuojnrpflpJYgPCB5b3NhbmdhaVwgOwor6Z2e5rCR5Li7IDwgaGltaW5zaHVcIDsKK+W1jOWFpSA8IGthbicnbnl1dVwgOwor6LuS5YilIDwga2VuYmV0c3VcIDsKK+WBtOW9uSA8IHNvYmF5YWt1XCA7Civou6LlgJ8gPCB0ZW5zaGFrdVwgOwor5Y+X55uK6ICFIDwganVla2lzaGFcIDsKK+iEiue0oiA8IHNla2lzYWt1XCA7Civlronlrprmnb8gPCBhbnRlaWJhblwgOwor6KiY5b+16aSoIDwga2luZW5rYW5cIDsKK+S4gOatqeS4gOatqSA8IGlwcG9pcHBvXCA7CivlpKflroflrpkgPCBkYWl1Y2h1dVwgOwor6LKh6ZalIDwgemFpYmF0c3VcIDsKK+S6nOaApeaApyA8IGFreXV1c2VpXCA7CivmnKjpvKAgPCBraW5lenVtaVwgOwor6aqo5oqYIDwga29zc2V0c3VcIDsKK+iEmueriyA8IGt5YXRhdHN1XCA7Civlg7vkuosgPCBoaWdhZ290b1wgOwor6KiI566X57C/IDwga2Vpc2FuYm9cIDsKK+eVpeaWhyA8IHJ5YWt1YnVuXCA7Civou5LlhYggPCBub2tpc2FraVwgOwor6Z2Z5q2i55S7IDwgc2Vpc2hpZ2FcIDsKK+S4jeaVtOWQiCA8IGZ1c2VpZ291XCA7Civkuozph43poY4gPCBuaWp1dWFnb1wgOwor5Yi25b6h5qmfIDwgc2VpZ3lva2lcIDsKK+aguee1tiA8IGtvbnpldHN1XCA7Civmnp3pgZMgPCBlZGFtaWNoaVwgOwor5LqM562J5YiGIDwgbml0b3VidW5cIDsKK+Wuv+iAgSA8IHNodWt1cm91XCA7Civosrjph5EgPCBrYXNoaWtpblwgOwor5bmz54KJ5rOVIDwgaGVpcm9ob3VcIDsKK+mrmOWvhiA8IGtvdW1pdHN1XCA7CivkupTnqJzloKEgPCBnb3J5b3Vob1wgOwor5pyq5p2l5YOPIDwgbWlyYWl6b3VcIDsKK+i2s+a4qeWZqCA8IHNva3VvbmtpXCA7CivkuoznrYnlhbUgPCBuaXRvdWhlaVwgOwor6LK05peP6ZmiIDwga2l6b2t1aW5cIDsKK+S7j+mBkyA8IGJ1dHN1ZG91XCA7CivkvZXogIUgPCBuYW5pbW9ub1wgOwor6Imv5L+XIDwgcnlvdXpva3VcIDsKK+iomOWPt+irliA8IGtpZ291cm9uXCA7CivkvY/ogbcgPCBqdXVzaG9rdVwgOwor5p+U6KGTIDwganV1anV0c3VcIDsKK+eUn+awtCA8IG5hbWFtaXp1XCA7CivlkI3oqZ7lj6UgPCBtZWlzaGlrdVwgOwor6IO457OeIDwgbXVuZWt1c29cIDsKK+WuouiIuSA8IGt5YWt1c2VuXCA7CivogIHpqqggPCByb3Vrb3RzdVwgOwor5p6V6L66IDwgbWFrdXJhYmVcIDsKK+WwpOeJqSA8IHl1dWJ1dHN1XCA7CivkvJ3ppqzoiLkgPCB0ZW5tYXNlblwgOwor5Lmx6auqIDwgcmFucGF0c3VcIDsKK+mKgOays+ezuyA8IGdpbmdha2VpXCA7CivkvZPnvbAgPCB0YWliYXRzdVwgOwor5Lq66YeMIDwgaGl0b3phdG9cIDsKK+WuouiGsyA8IGt5YWt1emVuXCA7CivlpKflrq7lj7ggPCBkYWlndXVqaVwgOwor6IKJ6KaqIDwgbmlrdXNoaW5cIDsKK+a1geihjOebriA8IGhheWFyaW1lXCA7CivpgaDoppbnnLwgPCBlbnNoaWdhblwgOwor5a+M57GkIDwgdG9taWt1amlcIDsKK+WNteW3o+eCjiA8IHJhbnNvdWVuXCA7CivlgbXlr58gPCB0ZWlzYXRzdVwgOwor6IO9562GIDwgbm91aGl0c3VcIDsKK+S5vumiqCA8IGthcmFrYXplXCA7Civpq6rlnosgPCBrYW1pZ2F0YVwgOwor5pyq5Lqh5Lq6IDwgbWlib3VqaW5cIDsKK+W8leeUqOespiA8IGluJyd5b3VmdVwgOwor6Imv5LmFIDwgcnlvdWt5dXVcIDsKK+adkembqCA8IG11cmFzYW1lXCA7Civmn5TpgZPlrrYgPCBqdXVkb3VrYVwgOwor6LuS5LimIDwgbm9raW5hbWlcIDsKK+S4jeWdh+ihoSA8IGZ1a2lua291XCA7Civou5LkuIggPCBub2tpdGFrZVwgOwor5a+S56u5IDwga2FuY2hpa3VcIDsKK+aciOm9oiA8IGdldHN1cmVpXCA7Civlr77oqbHogIUgPCB0YWl3YXNoYVwgOwor6Lez5qKBIDwgY2hvdXJ5b3VcIDsKK+WvkuepuiA8IHNhbXV6b3JhXCA7CivoqJ/li5npg6ggPCBzaG91bXVidVwgOwor5Luw6KeSIDwgZ3lvdWtha3VcIDsKK+W+oemciuWJjSA8IGdvcmVpemVuXCA7CivlhYzmj5vliLggPCBkYWthbmtlblwgOwor5LiN5pGC55SfIDwgZnVzZXNzZWlcIDsKK+alveWKhyA8IGdha3VnZWtpXCA7Civml6XmnKzpoqggPCBuaWhvbmZ1dVwgOwor6aOE6aOEIDwgaHlvdWh5b3VcIDsKK+acqOmqqCA8IG1va2tvdHN1XCA7CivlgJnoo5zlnLAgPCBrb3Vob2NoaVwgOwor546J6auEIDwgZ3lva3V6dWlcIDsKK+eggumYsuaelyA8IHNhYm91cmluXCA7Civkv5fmtYEgPCB6b2t1cnl1dVwgOwor5LiL5aOr5a6YIDwga2FzaGlrYW5cIDsKK+W4guitsOS8miA8IHNoaWdpa2FpXCA7CivkuIDmmYLmnJ8gPCBpY2hpamlraVwgOwor5YGl5a6fIDwga2Vuaml0c3VcIDsKK+iHquiyoOW/gyA8IGppZnVzaGluXCA7Civosarpm6ogPCBnb3VzZXRzdVwgOwor55u45ZCI5YKYIDwgYWlhaWdhc2FcIDsKK+iBtOimmiA8IGNob3VrYWt1XCA7CivorJnorbLoqp4gPCBrZW5qb3Vnb1wgOwor54+N6YeNIDwgY2hpbmNob3VcIDsKK+aJtuaMgeexsyA8IGZ1Y2hpbWFpXCA7Civlho3otbfli5UgPCBzYWlraWRvdVwgOwor542j5Yy75a2mIDwganV1aWdha3VcIDsKK+mdnuW4uOeUqCA8IGhpam91eW91XCA7CivnoLTlu4nmgaUgPCBoYXJlbmNoaVwgOwor5Ye65pS+6aGMIDwgZGVob3VkYWlcIDsKK+WuieWumuaEnyA8IGFudGVpa2FuXCA7CivlgbTlo4EgPCBzb2t1aGVraVwgOwor5qSc5bC/IDwga2VuJydueW91XCA7CivppIrogIHpmaIgPCB5b3Vyb3VpblwgOwor5Lmx6ZuRIDwgcmFuemF0c3VcIDsKK+WxnuacmyA8IHNob2t1Ym91XCA7Civph47oia/njKsgPCBub3JhbmVrb1wgOwor5Lit6buSIDwgbmFrYWd1cm9cIDsKK+acquS4geW5tCA8IG1pdGVpbmVuXCA7CivkurrotrMgPCBoaXRvYXNoaVwgOwor5a++54mpIDwgdGFpYnV0c3VcIDsKK+WuieWumuaApyA8IGFudGVpc2VpXCA7CivnjonpoZQgPCBneW9rdWdhblwgOwor6aKv6aKvIDwgc2Fzc2F0c3VcIDsKK+S7j+iqrCA8IGJ1c3NldHN1XCA7Civls7blj7AgPCBzaGltYWRhaVwgOwor5LuH6K6OIDwga3l1dXNodXVcIDsKK+S9teeZuiA8IGhlaWhhdHN1XCA7Civpp5DnlZkgPCBjaHV1cnl1dVwgOwor55Wl5bi9IDwgcnlha3Vib3VcIDsKK+axuueul+acnyA8IGtlc3NhbmtpXCA7CivmnJ3po68gPCBhc2FtZXNoaVwgOwor6Ieq5LmX5qC5IDwgamlqb3Vrb25cIDsKK+WFqOiNt+mHjSA8IHplbmthanV1XCA7CivkvZXnqIsgPCBuYW5paG9kb1wgOwor5aWl5b6h5q6/IDwgb2t1Z290ZW5cIDsKK+miqOmjnyA8IGZ1dXNob2t1XCA7CivnlbPlsYsgPCB0YXRhbWl5YVwgOwor6KO96YCg5omAIDwgc2Vpem91am9cIDsKK+WBtOWcpyA8IHNva3VhdHN1XCA7CivotJbnvaogPCBzaG9rdXphaVwgOwor5b+r55S35YWQIDwga2FpZGFuamlcIDsKK+iCqeiCmCA8IGthdGFoaWppXCA7Civml7rmlofnpL4gPCBvdWJ1bnNoYVwgOwor5p+T6ImyIDwgc2Vuc2hva3VcIDsKK+i2hemfs+azoiA8IGNob3VvbnBhXCA7CivlrojorbfpnIogPCBzaHVnb3JlaVwgOwor54Sh5pyf5bu25pyfIDwgbXVraWVua2lcIDsKK+acqOabvuW3nSA8IGtpc29nYXdhXCA7CivlvLHpn7PlmaggPCBqYWt1b25raVwgOwor5p2R6YeMIDwgbXVyYXphdG9cIDsKK+S7meihkyA8IHNlbmp1dHN1XCA7Civkv5fmpb0gPCB6b2t1Z2FrdVwgOwor6aaW562LIDwga3ViaXN1amlcIDsKK+S9h+eriyA8IGNob3JpdHN1XCA7Civlr4bnnYAgPCBtaXRjaGFrdVwgOwor5rG6566X5pelIDwga2Vzc2FuYmlcIDsKK+iFsOadvyA8IGtvc2hpaXRhXCA7CivogqHogokgPCBtb21vbmlrdVwgOwor6ISx5ryPIDwgZGF0c3Vyb3VcIDsKK+iHquS4u+aoqSA8IGppc2h1a2VuXCA7Civog73lvIHlrrYgPCBub3ViZW5rYVwgOwor5Y+v6IO95oCnIDwga2Fub3VzZWlcIDsKK+Wkp+aXpumCoyA8IG9vZGFuJyduYVwgOwor5Li46au3IDwgbWFydW1hZ2VcIDsKK+WNsOW6puaVmSA8IGluZG9reW91XCA7CivlsYjmm7IgPCBrdWtreW9rdVwgOwor6Ii55Lq6IDwgZnVuYWJpdG9cIDsKK+mqqOWkqiA8IGhvbmVidXRvXCA7Civpq5jljZIgPCBrb3Vzb3RzdVwgOwor54Sh5Lq65bO2IDwgbXVqaW50b3VcIDsKK+WwsealrSA8IHNodXVneW91XCA7Civpo5/pgZMgPCBzaG9rdWRvdVwgOwor55yf5Ly85LqLIDwgbWFuZWdvdG9cIDsKK+iwt+miqCA8IHRhbmlrYXplXCA7CivorITlhpnlmaggPCB0b3VzaGFraVwgOwor5Luu6JG6IDwga2FyaWJ1a2lcIDsKK+miqOmbqiA8IGZ1dXNldHN1XCA7Civmn5TogowgPCB5YXdhaGFkYVwgOwor6aeQ54usIDwgY2h1dWRva3VcIDsKK+W4sOmChOiAhSA8IGtpa2Fuc2hhXCA7CivnjonploAgPCBneW9rdW1vblwgOwor5Yqp55Sj6ZmiIDwgam9zYW4nJ2luXCA7CivmnIjpo58gPCBnZXNzaG9rdVwgOwor5aWz5bqX5ZOhIDwgam90ZW4nJ2luXCA7CivmoJfnn7MgPCBrdXJpaXNoaVwgOwor5bCP5rOiIDwgc2F6YW5hbWlcIDsKK+ibuOmDqOWxiyA8IHRha29iZXlhXCA7CivkuojnrpfkuIogPCB5b3NhbmpvdVwgOwor5a6a56uLIDwgdGVpcml0c3VcIDsKK+S4uOmmliA8IG1hcnVrdWJpXCA7CivkuK3pq5ggPCBuYWthZGFrYVwgOwor5a6a5pmC5Yi2IDwgdGVpamlzZWlcIDsKK+WumOeriyA8IGthbnJpdHN1XCA7Civog73njocgPCBub3VyaXRzdVwgOwor5q2j5bym5rOiIDwgc2VpZ2VuaGFcIDsKK+S9meaJgOS6iyA8IHlvc29nb3RvXCA7CivotrPmpa0gPCBhc2hpd2F6YVwgOwor5pyo6ZC4IDwgYm9rdXRha3VcIDsKK+S4u+mjnyA8IHNodXNob2t1XCA7Civkv5fmm7IgPCB6b2treW9rdVwgOwor5L2c55eFIDwgc2FrdWJ5b3VcIDsKK+S9leeZviA8IG5hbmJ5YWt1XCA7Civku4HooZMgPCBqaW5qdXRzdVwgOwor6aas6bm/6ICFIDwgYmFrYW1vbm9cIDsKK+ahnOa5ryA8IHNha3VyYXl1XCA7CivmpJzlnKcgPCBrZW4nJ2F0c3VcIDsKK+WEgOekvOWFtSA8IGdpcmVpaGVpXCA7CivkuIDpvaMgPCBoaXRva29tYVwgOwor6Laz5qKwIDwgYXNoaWthc2VcIDsKK+aciOmdoiA8IGdldHN1bWVuXCA7Civml6XmnKzphZIgPCBuaWhvbnNodVwgOwor5bC95pelIDwgamluaml0c3VcIDsKK+WwkeassiA8IHNob3V5b2t1XCA7CivnlLvlvJUgPCBrYWt1YmlraVwgOwor5pep55Sj5YWQIDwgc291emFuamlcIDsKK+eVmeWtpiA8IHJ5dXVnYWt1XCA7Civlrabnv5IgPCBnYWt1c2h1dVwgOwor6LeL5paHIDwgYmF0c3VidW5cIDsKK+WxseW9piA8IHlhbWFiaWtvXCA7CivlsbHlvaIgPCB5YW1hZ2F0YVwgOwor55eF5LitIDwgYnlvdWNodXVcIDsKK+aOoee2v+WZqCA8IHNhaW1lbmtpXCA7CivlgbblipsgPCBndXVyeW9rdVwgOwor6Iux6YCj6YKmIDwgZWlyZW5wb3VcIDsKK+S7u+iBtyA8IG5pbnNob2t1XCA7CivohLHmr5sgPCBkYXRzdW1vdVwgOwor5pep55Sf5YWQIDwgc291c2VpamlcIDsKK+acqOmLjyA8IGtpYmFzYW1pXCA7CivosqfooYAgPCBoaW5rZXRzdVwgOwor5Yqg55uf6ICFIDwga2FtZWlzaGFcIDsKK+mZjembqOmHjyA8IGtvdXVyeW91XCA7CivogLPoqLEgPCBtaW1pbW90b1wgOwor5YKR5Lq6IDwga2V0c3VqaW5cIDsKK+WvvuaxuiA8IHRhaWtldHN1XCA7CivlsITmrrogPCBzaGFzYXRzdVwgOwor6K2m5YKZ6ImHIDwga2VpYml0ZWlcIDsKK+WHuuadpeS6iyA8IGRla2lnb3RvXCA7Civku6ToibIgPCByZWlzaG9rdVwgOwor5L6h6Zu75a2QIDwga2FkZW5zaGlcIDsKK+WwgeauuiA8IGZ1dXNhdHN1XCA7Civlj6TnlJ/nlYwgPCBrb3NlaWthaVwgOwor5bCP5qeMIDwga29kenVjaGlcIDsKK+Wtpue4viA8IGdha3VzZWtpXCA7CivlsbHlt50gPCB5YW1hZ2F3YVwgOwor6auY5L2OIDwgdGFrYWhpa3VcIDsKK+S4remggyA8IG5ha2Fnb3JvXCA7Civogbfog70gPCBzaG9rdW5vdVwgOwor5bGI5oqYIDwga3Vzc2V0c3VcIDsKK+Wun+ebtCA8IGppdGNob2t1XCA7Civph5HprZrlsYsgPCBraW5neW95YVwgOwor6IWw5oqYIDwga29zaGlvcmVcIDsKK+acqOWkqeiTvCA8IG1hdGF0YWJpXCA7Civlrp/nm4ogPCBqaXRzdWVraVwgOwor5Y2K6KO45L2TIDwgaGFucmF0YWlcIDsKK+WumuedgCA8IHRlaWNoYWt1XCA7CivmooHmnKggPCByeW91Ym9rdVwgOwor5pel5pys6LuNIDwgbmlob25ndW5cIDsKK+aXpeacrOi7iiA8IG5paG9uc2hhXCA7CivlgbblgbYgPCB0YW1hdGFtYVwgOwor5L+u576F6YGTIDwgc2h1cmFkb3VcIDsKK+i2s+aXqSA8IGFzaGliYXlhXCA7CivllYbooYzngrogPCBzaG91a291aVwgOwor6IiM5LujIDwgemV0c3VkYWlcIDsKK+afseefsyA8IGNodXVzZWtpXCA7CivlsbHlsbEgPCB5YW1heWFtYVwgOwor5p2h6YeM5Yi2IDwgam91cmlzZWlcIDsKK+S4remalCA8IGNodXVrYWt1XCA7CivlsYDmiYAgPCBreW9rdXNob1wgOwor5p+T562GIDwgc2VucGl0c3VcIDsKK+aKleW9seazlSA8IHRvdWVpaG91XCA7Civkv6HmhpEgPCBzaGlucHlvdVwgOwor5qGf5qmLIDwgc2FuYmFzaGlcIDsKK+iCiee0sCA8IG5pa3Vib3NvXCA7CivlrqLnlKggPCBreWFrdXlvdVwgOwor5Lit6ZmQIDwgbmFrYWdpcmlcIDsKK+acieWwvumhniA8IHl1dWJpcnVpXCA7CivlsbHlr7ogPCB5YW1hZGVyYVwgOwor5qyn576F5be0IDwgeW91cm9wcGFcIDsKK+S4h+mqqCA8IGJhbmtvdHN1XCA7CivkuJbplpPkvZMgPCBzZWtlbnRlaVwgOwor5LyK6YGU5be7IDwgZGF0ZW1ha2lcIDsKK+S/ruW+qSA8IHNodXVmdWt1XCA7Civku4/oiaYgPCBmdXRzdWthblwgOwor5a6f55SoIDwgaml0c3V5b3VcIDsKK+S/ruW+lyA8IHNodXV0b2t1XCA7Civog4bnlaUgPCB0YW5yeWFrdVwgOwor5rC05Yip5qipIDwgc3VpcmlrZW5cIDsKK+WPsuWtpuWutiA8IHNoaWdha2thXCA7CivkuLjpkb8gPCBtYXJ1bm9taVwgOwor5bGx5a6IIDwgeWFtYW1vcmlcIDsKK+i2s+aRuiA8IGFzaGl6dXJpXCA7Civpo5/oqIAgPCBzaG9rdWdlblwgOwor57SN5LuY6YeRIDwgbm91ZnVraW5cIDsKK+iVjum6puauuyA8IHNvYmFnYXJhXCA7CivkuozoqIAgPCBmdXRha290b1wgOwor5L2T54axIDwgdGFpbmV0c3VcIDsKK+i1pOmzpei1pOiFuSA8IGFrYWtva2tvXCA7CivmlrnlkJHoiLUgPCBob3Vrb3VkYVwgOwor5Luu57a0IDwga2FyaXRvamlcIDsKK+Wkj+iHs+e3miA8IGdlc2hpc2VuXCA7CivkuI3lnYfnrYkgPCBmdWtpbnRvdVwgOwor5a6H5a6Z5bi9IDwgdWNodXVib3VcIDsKK+eEoemgvOa8oiA8IGJ1cmFpa2FuXCA7CivlsYjlvpMgPCBrdXRzdWp1dVwgOwor5a6f54++IDwgaml0c3VnZW5cIDsKK+a/g+W6puioiCA8IG5vdWRva2VpXCA7Civnj77ogbcgPCBnZW5zaG9rdVwgOwor6LGB6YGUIDwga2F0dGF0c3VcIDsKK+S/oeW/tSA8IHNoaW4nJ25lblwgOwor6aGO6aqoIDwgZ2Fra290c3VcIDsKK+S4gOaYqOW5tCA8IG90b3Rvc2hpXCA7CivmnKrntYzpqJMgPCBtaWtlaWtlblwgOwor5LiJ6aOfIDwgc2Fuc2hva3VcIDsKK+acneWvneWdiiA8IGFzYW5lYm91XCA7CivkuoboppogPCByeW91a2FrdVwgOwor576k6ZuyIDwgbXVyYWt1bW9cIDsKK+aciOmHkSA8IGdldHN1a2luXCA7CivotaTmsoggPCBzZWtpY2hpblwgOwor5LiL6aGOIDwgc2hpdGFhZ29cIDsKK+WxseWnqyA8IHlhbWFoaW1lXCA7CivohILmsZcgPCBhYnVyYWFzZVwgOwor6IWw5byBIDwga29zaGliZW5cIDsKK+WuneeOiSA8IGhvdWd5b2t1XCA7CivpgY7lpKfoppYgPCBrYWRhaXNoaVwgOwor5bCR5pW1IDwgc2hvdXRla2lcIDsKK+e/oee/oOiJsiA8IGhpc3VpaXJvXCA7CivpqY3lsIYgPCBneW91c2hvdVwgOwor5LiY6Zm1IDwga3l1dXJ5b3VcIDsKK+eVpeWQjSA8IHJ5YWt1bWVpXCA7CivlnJ/moLnmgKcgPCBkb2tvbmpvdVwgOwor55Wl5Y+3IDwgcnlha3Vnb3VcIDsKK+eVpeWPsiA8IHJ5YWt1c2hpXCA7CivnlarljZIgPCBiYW5zb3RzdVwgOwor57eP5qih5qeYIDwgc291bW95b3VcIDsKK+eVpeWPliA8IHJ5YWt1c2h1XCA7CivoqIjnrpfmqZ8gPCBrZWlzYW5raVwgOwor5byB5b2T5bGLIDwgYmVudG91eWFcIDsKK+S7o+aJk+iAhSA8IGRhaWRhc2hhXCA7Civlrp/nirYgPCBqaXRzdWpvdVwgOwor5YCf5ZywIDwgc2hha3VjaGlcIDsKK+S9teauuiA8IGhlaXNhdHN1XCA7CivohbDluK8gPCBrb3NoaW9iaVwgOwor5LiK6Z20IDwgdXdhZ3V0c3VcIDsKK+iGnOWjgSA8IG1ha3VoZWtpXCA7CivpoqjlqpLoirEgPCBmdXViYWlrYVwgOwor6ISx5paHIDwgZGF0c3VidW5cIDsKK+WtmOeriyA8IHNvbnJpdHN1XCA7CivnhKHoqabpqJMgPCBtdXNoaWtlblwgOwor5a6d54mpIDwgaG91bW90c3VcIDsKK+mGuOmAoOmFoiA8IGpvdXpvdXN1XCA7Civkv5flvaIgPCB6b2t1Z3lvdVwgOwor5Y+N5YuV5rS+IDwgaGFuZG91aGFcIDsKK+e1jOa4iOWutiA8IGtlaXphaWthXCA7Civmt4vlt7TohbogPCByaW5wYXNlblwgOwor5Lq66IaaIDwgaGl0b2hhZGFcIDsKK+miqOi2syA8IGthemFhc2hpXCA7Civkub7oo4IgPCBrYW5yZXRzdVwgOwor5qGO5qKPIDwgc2hpa2tva3VcIDsKK+S4gOmggyA8IGhpdG9rb3JvXCA7Civoh6rkuLvmgKcgPCBqaXNodXNlaVwgOwor57+M6YCxIDwgeW9rdXNodXVcIDsKK+i2iuWkqealvSA8IGV0ZW5yYWt1XCA7CivmqKnliKnph5EgPCBrZW5yaWtpblwgOwor5a++5pelIDwgdGFpbmljaGlcIDsKK+aeoOe1hCA8IHdha3VndW1pXCA7CivmhaLmgKfljJYgPCBtYW5zZWlrYVwgOwor57+76KizIDwgaG9uJyd5YWt1XCA7CivkurrohIggPCBqaW5teWFrdVwgOwor5o6I5Lmz5pyfIDwganVueXV1a2lcIDsKK+WwgumWgOiqniA8IHNlbm1vbmdvXCA7CivlsbHln44gPCB5YW1hamlyb1wgOwor5YmN6Iie5Y+wIDwgbWFlYnV0YWlcIDsKK+WkqeeIvuS5juazoiA8IHRlbml3b2hhXCA7CivohJrmnKwgPCBreWFrdWhvblwgOwor6YG456eR55SfIDwgc2Vua2FzZWlcIDsKK+adseiKnSA8IHRvdXNoaWJhXCA7CivotaTmqKsgPCBha2FnYXNoaVwgOwor6ISK5qSOIDwgc2VraXRzdWlcIDsKK+Wun+mam+WutiA8IGppc3NhaWthXCA7Civmn7TniqwgPCBzaGliYWludVwgOwor5L+u5a2mIDwgc2h1dWdha3VcIDsKK+S/iuW+syA8IHNodW50b2t1XCA7CivkuIDmmLzlpJwgPCBpdGNodXV5YVwgOwor5pyI6LyqIDwgZ2V0c3VyaW5cIDsKK+S7sueniyA8IGNodXVzaHV1XCA7CivkuLvov7AgPCBzaHVqdXRzdVwgOwor6KGG6K2w6ZmiIDwgc2h1dWdpaW5cIDsKK+S6uuiCiSA8IGppbicnbmlrdVwgOwor5aqS6YWMIDwgYmFpc2hha3VcIDsKK+aXpeacrOijvSA8IG5paG9uc2VpXCA7CivkvovmnIggPCByZWlnZXRzdVwgOwor55Sf5aiYIDwga2ltdXN1bWVcIDsKK+WNsOWIpOW4qyA8IGluYmFuc2hpXCA7Civku6PnrYYgPCBkYWloaXRzdVwgOwor5a+G5q66IDwgbWlzc2F0c3VcIDsKK+aatOmjnyA8IGJvdXNob2t1XCA7CivlsbHlm70gPCB5YW1hZ3VuaVwgOwor6IG356iuIDwgc2hva3VzaHVcIDsKK+S4gOmamyA8IGhpdG9raXdhXCA7CivlsI/ngavlmaggPCBzaG91a2FraVwgOwor54Sh6aKo5bivIDwgbXVmdXV0YWlcIDsKK+S4gOmahSA8IGhpdG9zdW1pXCA7CivlsLHluoogPCBzaHV1c2hvdVwgOwor5LiI6ZW3IDwgdGFrZW5hZ2FcIDsKK+mgremrqiA8IHRvdWhhdHN1XCA7CivnjKXpm5EgPCB3YWl6YXRzdVwgOwor6Laz5b2iIDwgYXNoaWdhdGFcIDsKK+i1sOafu+e3miA8IHNvdXNhc2VuXCA7CivlronniakgPCB5YXN1bW9ub1wgOwor56m65omL5a62IDwga2FyYXRla2FcIDsKK+WkqeS6leWApCA8IHRlbmpvdW5lXCA7Civlr5LmpbUgPCBrYW5reW9rdVwgOwor6Laz5byxIDwgYXNoaXlvd2FcIDsKK+ioiOeul+acqCA8IGtlaXNhbmdpXCA7CivlgJnlk4kgPCBzb3Vyb3V5YVwgOwor5L6L5pelIDwgcmVpaml0c3VcIDsKK+S4remAnyA8IGNodXVzb2t1XCA7CivmjqHngq3miYAgPCBzYWl0YW5qb1wgOwor5byB5YuZ5a6YIDwgYmVubXVrYW5cIDsKK+WPl+ebiuaoqSA8IGp1ZWtpa2VuXCA7CivnlJ/lo4EgPCBuYW1ha2FiZVwgOwor5Yqg5bel57SZIDwga2Frb3VzaGlcIDsKK+iCieeahCA8IG5pa3V0ZWtpXCA7Civog7jmpI4gPCBreW91dHN1aVwgOwor5pWZ5YuZ6KqyIDwga3lvdW11a2FcIDsKK+ahguaciCA8IGtlaWdldHN1XCA7CivlrqTmuKkgPCBzaGl0c3VvblwgOwor6YCj5YuV5qmfIDwgcmVuZG91a2lcIDsKK+S7meeqnyA8IHNlbmt1dHN1XCA7Civlr6fml6UgPCBuZWlqaXRzdVwgOwor6K2w5LqL6YyyIDwgZ2lqaXJva3VcIDsKK+WGjeadpeW5tCA8IHNhcmFpbmVuXCA7CivkuIDmmKjlpJwgPCBpc3Nha3V5YVwgOwor55Wq5LuYIDwgYmFuZHp1a2VcIDsKK+Wuh+WumeWhtSA8IHVjaHV1amluXCA7CivmsLTpgZPlsYsgPCBzdWlkb3V5YVwgOwor6LWk5p2+IDwgYWthbWF0c3VcIDsKK+eVpeS9kyA8IHJ5YWt1dGFpXCA7CivmooXlubIgPCB1bWVib3NoaVwgOwor6IW55aOBIDwgZnVrdWhla2lcIDsKK+S4rei7uCA8IGNodXVqaWt1XCA7CivnlaXkvJ0gPCByeWFrdWRlblwgOwor6IW45aOBIDwgY2hvdWhla2lcIDsKK+ixoeiZqyA8IHpvdW11c2hpXCA7Civmnpfnq4sgPCByaW5yaXRzdVwgOwor6YeN6LuM5p2hIDwganV1a2lqb3VcIDsKK+izqueWkSA8IHNoaXRzdWdpXCA7CivlsbHlkLkgPCB5YW1hYnVraVwgOwor6LiP5YiHIDwgZnVtaWtpcmlcIDsKK+mBlee0hOmHkSA8IGl5YWt1a2luXCA7CivmnY/ojLggPCBhbnp1dGFrZVwgOwor55Sf5Zu9IDwgc2hvdWtva3VcIDsKK+m4mum1oeeXhSA8IG91bXVieW91XCA7CivmnZ/ohKkgPCBzb2t1c2h1dVwgOwor5Y2Y5oCn6IqxIDwgdGFuc2Vpa2FcIDsKK+Wuv+alrSA8IHNodWt1Z291XCA7Civms6jmhI/ngrkgPCBjaHV1aXRlblwgOwor5bi45YKZ6YeRIDwgam91YmlraW5cIDsKK+eUs+WRiiA8IHNoaW5rb2t1XCA7Civlr5LmnIggPCBrYW5nZXRzdVwgOwor5pyJ6K2YIDwgeXV1c2hpa2lcIDsKK+i7ouenu+aApyA8IHRlbicnaXNlaVwgOwor6aSF57ayIDwgbW9jaGlhbWlcIDsKK+S9leanmCA8IG5hbmlzYW1hXCA7Civnv4Hosp0gPCBva2luYWdhaVwgOwor5rS754Gr5bGxIDwga2Fra2F6YW5cIDsKK+WvjOacrSA8IHRvbWlmdWRhXCA7CivlsYDlpJYgPCBreW9rdWdhaVwgOwor6aOf6IazIDwgc2hva3V6ZW5cIDsKK+adieiLlCA8IHN1Z2lnb2tlXCA7Civlr4bmnpcgPCBtaXRzdXJpblwgOwor5YCJ5Y2SIDwgc291c290c3VcIDsKK+WuouauvyA8IGt5YWt1ZGVuXCA7CivkuKbotrMgPCBuYW1pYXNoaVwgOwor5Yqg5bel56iOIDwga2Frb3V6ZWlcIDsKK+eVkeS9nCA8IGhhdGFzYWt1XCA7Civnk6blsYsgPCBrYXdhcmF5YVwgOwor5a6i5q27IDwga3lha3VzaGlcIDsKK+eUt+WJjSA8IG90b2tvbWFlXCA7CivlsYDloLEgPCBreW9rdWhvdVwgOwor6aGw6LmZIDwgaGluc2h1a3VcIDsKK+e+jueyp+mZoiA8IGJpc2hvdWluXCA7Civlrq7mp5ggPCBtaXlhc2FtYVwgOwor5L2c5p+EIDwgc2FrdWdhcmFcIDsKK+eMrumFjCA8IGtlbnNoYWt1XCA7CivojLbnrqrnrKUgPCBjaGFkYW5zdVwgOwor6aOf6IKyIDwgc2hva3Vpa3VcIDsKK+WZtOeBq+WxsSA8IGZ1bmthemFuXCA7CivlnLDmlrnmmYIgPCBjaGlob3VqaVwgOwor5Lih6LazIDwgcnlvdXNva3VcIDsKK+aCqumkk+msvCA8IHdhcnVnYWtpXCA7CivljZrmhJvlrrYgPCBoYWt1YWlrYVwgOwor5LqM6IKhIDwgZnV0YW1hdGFcIDsKK+S4iumBlCA8IGpvdXRhdHN1XCA7Civmg4XloLHpg6ggPCBqb3Vob3VidVwgOwor6Iad5YWDIDwgaGl6YW1vdG9cIDsKK+Wuv+acmyA8IHNodWt1Ym91XCA7Civml6XmnKzojLYgPCBuaWhvbmNoYVwgOwor6ISx5bi9IDwgZGF0c3Vib3VcIDsKK+eUs+WHuiA8IG1vdXNoaWRlXCA7Civmn4TniakgPCBnYXJhbW9ub1wgOwor5LiK6L+wIDwgam91anV0c3VcIDsKK+S9nOabsiA8IHNha2t5b2t1XCA7CivogLPns54gPCBtaW1pa3Vzb1wgOwor6ICB6IulIDwgcm91bnlha3VcIDsKK+WFieihjOW3riA8IGtvdWtvdXNhXCA7CivlpJbogLPpgZMgPCBnYWlqaWRvdVwgOwor6IKJ54mbIDwgbmlrdWd5dXVcIDsKK+WxseWFgyA8IHlhbWFtb3RvXCA7CivlnLDpnIfms6IgPCBqaXNoaW5oYVwgOwor5LiJ5aGB5omTIDwgc2FucnVpZGFcIDsKK+adn+e4myA8IHNva3ViYWt1XCA7Civli77lvJXnirYgPCBrb3VpbmpvdVwgOwor5Zyw6Zu35rqQIDwgamlyYWlnZW5cIDsKK+mbu+apn+WtkCA8IGRlbmtpc2hpXCA7CivmnKvokYkgPCBtYXRzdXlvdVwgOwor5bi45YKZ6LuNIDwgam91YmlndW5cIDsKK+S9leaciCA8IG5hbmdhdHN1XCA7CivosZrojYkgPCBidXRha3VzYVwgOwor5bCR5bCRIDwgc2hvdXNob3VcIDsKK+Wwj+Wei+WMliA8IGtvZ2F0YWthXCA7CivliLfmr5vlhYggPCBoYWtlc2FraVwgOwor5pqX6ZeHIDwga3VyYXlhbWlcIDsKK+eOieiRsSA8IHRhbWFuZWdpXCA7CivpnZLlhoXpmpwgPCBhb3Nva29oaVwgOwor6KmV6K2w5ZOhIDwgaHlvdWdpaW5cIDsKK+S5s+iHrSA8IG55dXVzaHV1XCA7CivnlJjlj6MgPCBhbWFrdWNoaVwgOwor5YWs5YiG5q+NIDwga291YnVuYm9cIDsKK+acqOiPnyA8IG1pbWl6dWt1XCA7Civlj6/ogbTluqYgPCBrYWNob3Vkb1wgOwor54Sh5p2h5Lu2IDwgbXVqb3VrZW5cIDsKK+efoumjm+eZvSA8IHlhZ2FzdXJpXCA7CivmiYvohZXlrrYgPCBzaHV3YW5rYVwgOwor55Sj5YilIDwgc2FuYmV0c3VcIDsKK+aknOS6i+atoyA8IGtlbmppc2VpXCA7Civkvr/lo7ogPCBiZW50c3Vib1wgOwor5LiA6LybIDwgaWNoaXJ5b3VcIDsKK+iznOeJqSA8IHRhbWFtb25vXCA7Civlgb3lloTogIUgPCBnaXplbnNoYVwgOwor5Lyd5bCO5bqmIDwgZGVuZG91ZG9cIDsKK+WFrOWLn+WCtSA8IGtvdWJvc2FpXCA7CivpppbmnrcgPCBrdWJpa2FzZVwgOwor5a2Q54i1IDwgc2hpc2hha3VcIDsKK+S+i+W8jyA8IHJlaXNoaWtpXCA7Civnj77nlJ8gPCBnZW4nJ25hbWFcIDsKK+acqOiLuiA8IGtpaWNoaWdvXCA7CivmqZ/plqLpioMgPCBraWthbmp1dVwgOwor54qs6beyIDwgaW51d2FzaGlcIDsKK+acrOiJsiA8IGhvbnNob2t1XCA7CivkubHohIggPCByYW5teWFrdVwgOwor5a+G5o6lIDwgbWlzc2V0c3VcIDsKK+S4gOi6jSA8IGljaGl5YWt1XCA7CivlsbHkurogPCB5YW1hYml0b1wgOwor6ISH5oGvIDwga3lvdXNva3VcIDsKK+e+veihoyA8IGhhZ29yb21vXCA7CivmnI3olqwgPCBmdWt1eWFrdVwgOwor5q2m5YuH5LydIDwgYnV5dXVkZW5cIDsKK+aiteWIuSA8IGJvbnNldHN1XCA7CivkvI/mtYEgPCBmdWt1cnl1dVwgOwor5Yi25b6h5LiLIDwgc2VpZ3lva2FcIDsKK+WvvuWxgCA8IHRhaWt5b2t1XCA7Civok67oj6/ojYkgPCByZW5nZXNvdVwgOwor5aCx55+l5qmfIDwgaG91Y2hpa2lcIDsKK+eMq+i2syA8IG5la29hc2hpXCA7CivlsI/lqJggPCBrb211c3VtZVwgOwor5Luj54mpIDwgZGFpYnV0c3VcIDsKK+Wnq+mxkiA8IGhpbWVtYXN1XCA7CivmnKzohbAgPCBob25nb3NoaVwgOwor6IW55YiHIDwgaGFyYWtpcmlcIDsKK+aZqemjryA8IGJhbm1lc2hpXCA7Civnv7znv7wgPCB5b2t1eW9rdVwgOwor55Sf5YK3IDwgbmFtYWtpenVcIDsKK+ixmuiCiSA8IGJ1dGFuaWt1XCA7CivlpI/oh7PngrkgPCBnZXNoaXRlblwgOwor6aCt6YeRIDwgYXRhbWFraW5cIDsKK+atpuiKuOiAhSA8IGJ1Z2Vpc2hhXCA7Civnvo7os6ogPCBiaXNoaXRzdVwgOwor6LWw6aas54GvIDwgc291bWF0b3VcIDsKK+WxiuWHuiA8IHRvZG9rZWRlXCA7CivotaTlv4MgPCBzZWtpc2hpblwgOwor54q26aqoIDwgam91a290c3VcIDsKK+e/oOiJsiA8IHN1aXNob2t1XCA7CivkuKHoopYgPCByeW91c29kZVwgOwor5Li46JasIDwgZ2FuJyd5YWt1XCA7Civlrr/miYAgPCBzaHVrdXNob1wgOwor5p6c54mpIDwga3VkYW1vbm9cIDsKK+S6jOmHjeeojiA8IG5panV1emVpXCA7Civnj77niakgPCBnZW5idXRzdVwgOwor5LiL6KuLIDwgc2hpdGF1a2VcIDsKK+acqOiAsyA8IGtpa3VyYWdlXCA7CivlsL3lipsgPCBqaW5yeW9rdVwgOwor5q2j5q+U5L6LIDwgc2VpaGlyZWlcIDsKK+mgkOmHkeiAhSA8IHlva2luc2hhXCA7CivkurrnlZwgPCBqaW5jaGlrdVwgOwor5Yqg6YCf5bqmIDwga2Fzb2t1ZG9cIDsKK+ato+W9k+WMliA8IHNlaXRvdWthXCA7CivmiYvkuI3otrMgPCB0ZWJ1c29rdVwgOwor5YG054Gr5bGxIDwgc29ra2F6YW5cIDsKK+mBjuS4jeWPiiA8IGthZnVreXV1XCA7CivmrrrpvKDliaQgPCBzYXNzb3phaVwgOwor6KiY5b+156WtIDwga2luZW5zYWlcIDsKK+S/guWToSA8IGtha2FyaWluXCA7CivkuI3miYvpmpsgPCBmdXRlZ2l3YVwgOwor5LiN562J6L66IDwgZnV0b3VoZW5cIDsKK+iiq+Wus+WcsCA8IGhpZ2FpY2hpXCA7Civml6XmnKzntJkgPCBuaWhvbnNoaVwgOwor5LiA6Ku+IDwgaWNoaWRha3VcIDsKK+a9nOawtOWkqyA8IHNlbnN1aWZ1XCA7CivlvqHpmYDku48gPCBvZGFidXRzdVwgOwor5a2m5q20IDwgZ2FrdXJla2lcIDsKK+Wuv+aCqiA8IHNodWt1YWt1XCA7Civog7jluqcgPCBtdW5hZ3VyYVwgOwor5LiA6KqtIDwgaWNoaWRva3VcIDsKK+WvpeWvpSA8IHJ5b3VyeW91XCA7CivmnaXnnYAgPCByYWljaGFrdVwgOwor5LyR5qWtIDwga3l1dWd5b3VcIDsKK+WknOWtpuagoSA8IHlhZ2Fra291XCA7Civlho3kuIrmmKAgPCBzYWlqb3VlaVwgOwor5L+u5LqGIDwgc2h1dXJ5b3VcIDsKK+iDuOW5hSA8IG11bmVoYWJhXCA7CivlpJbmnaXoqp4gPCBnYWlyYWlnb1wgOwor6Zuj56C06Ii5IDwgbmFucGFzZW5cIDsKK+S4gOiogCA8IGhpdG9rb3RvXCA7Civlrr/lv5cgPCBzaHVrdXNoaVwgOwor6aeS5LiL6aeEIDwga29tYWdldGFcIDsKK+iFleWKmyA8IHdhbnJ5b2t1XCA7CivohbnkuK0gPCBmdWt1Y2h1dVwgOwor5LiA6KeSIDwgaGl0b2thZG9cIDsKK+iCieassiA8IG5pa3V5b2t1XCA7Civms6jmhI/mm7ggPCBjaHV1aXNob1wgOwor54+g546JIDwgc2h1Z3lva3VcIDsKK+S7gOeJqSA8IGp1dW1vdHN1XCA7CivkupTph43lpY8gPCBnb2p1dXNvdVwgOwor6IKp5pu4IDwga2F0YWdha2lcIDsKK+a8q+irh+WutiA8IG1hbmRhbmthXCA7CivlgI3nsr7luqYgPCBiYWlzZWlkb1wgOwor57SN5LuY6ICFIDwgbm91ZnVzaGFcIDsKK+Wuv+W8iiA8IHNodWt1aGVpXCA7CivlmbTngavlj6MgPCBmdW5rYWtvdVwgOwor5LuL6K235Lq6IDwga2FpZ29uaW5cIDsKK+S5seethiA8IHJhbnBpdHN1XCA7CivkurrniakgPCBqaW5idXRzdVwgOwor5L+X5L+hIDwgem9rdXNoaW5cIDsKK+eMruihgCA8IGtlbmtldHN1XCA7CivmoLzlrokgPCBrYWt1eWFzdVwgOwor5Lih6JOLIDwgcnlvdWJ1dGFcIDsKK+WtpualrSA8IGdha3VneW91XCA7CivkurrniLUgPCBqaW5zaGFrdVwgOwor54yl6KS7IDwgd2Fpc2V0c3VcIDsKK+mBk+itsOS8miA8IGRvdWdpa2FpXCA7CivmnInmqZ/kvZMgPCB5dXVraXRhaVwgOwor6LGa566xIDwgYnV0YWJha29cIDsKK+S7ruauvyA8IGthcmlkb25vXCA7Civpo5vnn7MgPCB0b2JpaXNoaVwgOwor5Lmx56uLIDwgcmFucml0c3VcIDsKK+atu+eUo+WFkCA8IHNoaXphbmppXCA7Civlrr/luLMgPCB5YWRvY2hvdVwgOwor5a+S5a+SIDwgc2FtdXphbXVcIDsKK+acseethiA8IHNodWhpdHN1XCA7CivkuI3opo/liYcgPCBmdWtpc29rdVwgOwor5Li76ISIIDwgc2h1bXlha3VcIDsKK+a9nOawtOWZqCA8IHNlbnN1aWtpXCA7Civku5jmt7sgPCB0c3VraXNvaVwgOwor5pys56+AIDwgaG9uYnVzaGlcIDsKK+absuiKuCA8IGt5b2t1Z2VpXCA7CivmnKvnr4AgPCBtYXNzZXRzdVwgOwor6Laz5YWDIDwgYXNoaW1vdG9cIDsKK+iyoeeJqSA8IHphaWJ1dHN1XCA7CivlsI/lkI0gPCBzaG91bXlvdVwgOwor5pW05YKZ5belIDwgc2VpYmlrb3VcIDsKK+S5l+e1hCA8IG5vcmlrdW1pXCA7Civlr53lp78gPCBuZXN1Z2F0YVwgOwor5puz6Ii5IDwgaGlraWJ1bmVcIDsKK+acq+ethiA8IG1hcHBpdHN1XCA7CivojZLmrabogIUgPCBhcmFtdXNoYVwgOwor6YGg5Zyw54K5IDwgZW5jaGl0ZW5cIDsKK+aYvOmggyA8IGhpcnVnb3JvXCA7Civni6zouqsgPCBkb2t1c2hpblwgOwor55C05puyIDwga2lua3lva3VcIDsKK+S6rOeJqSA8IGt5b3Vtb25vXCA7Civmn5DmnIggPCBib3VnZXRzdVwgOwor5aSW5a2X57SZIDwgZ2FpamlzaGlcIDsKK+S7iuaZguWIhiA8IGltYWppYnVuXCA7CivosYbnspUgPCBtYW1la2FzdVwgOwor5Lit6IW5IDwgY2h1dWZ1a3VcIDsKK+WPjeWLleWutiA8IGhhbmRvdWthXCA7CivpoIbpgIYgPCBqdW5neWFrdVwgOwor5aSn5pmm5pelIDwgb29taXNva2FcIDsKK+adieeariA8IHN1Z2lrYXdhXCA7CivlsIblj4ggPCBoYXRhbWF0YVwgOwor5LiN57K+5benIDwgZnVzZWlrb3VcIDsKK+Wkp+S4iOWkqyA8IGRhaWpvdWJ1XCA7CivohLHljbQgPCBkYWtreWFrdVwgOwor5a+C5a+eIDwgc2VraWJha3VcIDsKK+mjn+eUqCA8IHNob2t1eW91XCA7Civmn5Dml6UgPCBib3VqaXRzdVwgOwor5L+d5YWo5LyaIDwgaG96ZW5rYWlcIDsKK+WQjOe0oOS9kyA8IGRvdXNvdGFpXCA7CivmmanphYwgPCBiYW5zaGFrdVwgOwor5Lit6IKJIDwgY2h1dW5pa3VcIDsKK+S+neaAmei0lOWxkyA8IGVrb2hpaWtpXCA7Civosp7ng4ggPCB0ZWlyZXRzdVwgOwor5YaN5Lqk5LuYIDwgc2Fpa291ZnVcIDsKK+mjsueJqSA8IG5vbWltb25vXCA7CivkuKHohpogPCByeW91aGFkYVwgOwor5a6f5by+IDwgaml0c3VkYW5cIDsKK+S4i+iQoCA8IHNoaXRhbW9lXCA7CivlpKnml6Xms5UgPCB0ZW5waWhvdVwgOwor5puy6ICFIDwga3VzZW1vbm9cIDsKK+WuiOitt+elniA8IHNodWdvamluXCA7CivmoYPlnJIgPCBtb21vem9ub1wgOwor57WE5ZCI6LK7IDwga3VtaWFpaGlcIDsKK+mmluW3uyA8IGt1YmltYWtpXCA7Civku4/msJcgPCBob3Rva2VnaVwgOwor5pil6aKoIDwgaGFydWthemVcIDsKK+iNkuiVquWcsCA8IGtvdWJ1Y2hpXCA7CivkuKbogokgPCBuYW1pbmlrdVwgOwor5oSb5aqb55yMIDwgZWhpbWVrZW5cIDsKK+acqumdkuW5tCA8IG1pc2VpbmVuXCA7CivlrqLlubQgPCBreWFrdW5lblwgOwor6LaK5Y2XIDwgYmV0b25hbXVcIDsKK+S4oeiEhyA8IHJ5b3V3YWtpXCA7CivpoqjnqpMgPCBrYXphbWFkb1wgOwor5Lq65LqL5qyEIDwgamluamlyYW5cIDsKK+miqOeptCA8IGZ1dWtldHN1XCA7Civku4/mrr8gPCBidXRzdWRlblwgOwor6IO45aOBIDwga3lvdWhla2lcIDsKK+mVt+mfs+espiA8IGNob3VvbnB1XCA7CivlrprlvI8gPCB0ZWlzaGlraVwgOwor5LiN5Z2H5paJIDwgZnVraW5zZWlcIDsKK+S4oeiCmCA8IHJ5b3VoaWppXCA7Civmupblgpnph5EgPCBqdW5iaWtpblwgOwor5auh55S3IDwgY2hha3VuYW5cIDsKK+S5s+eZvSA8IG55dXVoYWt1XCA7Civmt4vlt7TmtrIgPCByaW5wYWVraVwgOwor5LqL5YuZ6ZW3IDwgamltdWNob3VcIDsKK+S/rueQhuWxiyA8IHNodXVyaXlhXCA7CivkvY7lr4YgPCB0ZWltaXRzdVwgOwor5Lih6ICzIDwgcnlvdW1pbWlcIDsKK+aHkOeWkeirliA8IGthaWdpcm9uXCA7CivllonpoK3ngo4gPCBrb3V0b3VlblwgOwor5pq06JmQIDwgYm91Z3lha3VcIDsKK+iCmOaOmyA8IGhpamlrYWtlXCA7Civnlo7lpJbmhJ8gPCBzb2dhaWthblwgOwor5Lih57+8IDwgcnlvdXlva3VcIDsKK+WvhuWjsiA8IG1pdHN1YmFpXCA7CivmnKjnn7MgPCBib2t1c2VraVwgOwor546J56CVIDwgZ3lva3VzYWlcIDsKK+S4g+iNiSA8IG5hbmFrdXNhXCA7CivliqDpgJ/lmaggPCBrYXNva3VraVwgOwor5a6u5a6IIDwgbWl5YW1vcmlcIDsKK+eOieefsyA8IHRhbWFpc2hpXCA7Civluq3kuIvpp4QgPCBuaXdhZ2V0YVwgOwor5Luy5pilIDwgY2h1dXNodW5cIDsKK+ahkeWOnyA8IGt1d2FiYXJhXCA7CivorZjplr4gPCBzaGlraWlraVwgOwor5Lq65rOiIDwgaGl0b25hbWlcIDsKK+aYpembqCA8IGhhcnVzYW1lXCA7Civnv7Pnm64gPCBrYXN1bWltZVwgOwor54y/6IKhIDwgc2FydW1hdGFcIDsKK+S8keaImiA8IGt5dXVzZWtpXCA7CivpnZ7luLjli6QgPCBoaWpvdWtpblwgOwor6YeO55CD6YOoIDwgeWFreXV1YnVcIDsKK+WuouWxpCA8IGt5YWt1c291XCA7CivliY3pp4bmiKYgPCB6ZW5rdXNlblwgOwor5pil6Zm9IDwgc2h1bicneW91XCA7Civosp7mt5EgPCB0ZWlzaHVrdVwgOwor5a6I5b25IDwgbW9yaXlha3VcIDsKK+S4u+evgCA8IHNodXNldHN1XCA7CivmjIflsI7pg6ggPCBzaGlkb3VidVwgOwor6LKh55Sj5a62IDwgemFpc2Fua2FcIDsKK+S4gOiKsSA8IGhpdG9oYW5hXCA7CivpoZToibIgPCBnYW5zaG9rdVwgOwor5Lit57SwIDwgY2h1dWJvc29cIDsKK+S4ree0miA8IGNodXVreXV1XCA7CivlsYXlgqzkv4MgPCBpemFpc29rdVwgOwor546H55u0IDwgc290Y2hva3VcIDsKK+eMq+iIjCA8IG5la29qaXRhXCA7CivkuInohJogPCBzYW5reWFrdVwgOwor5pm66K2YIDwgY2hpc2hpa2lcIDsKK+W9k+ats+mmrCA8IHRvdXNhaWJhXCA7CivkuIvogqUgPCBzaGltb2dvZVwgOwor5a6f5a6zIDwgaml0c3VnYWlcIDsKK+Wwj+S4gCA8IHNob3VpY2hpXCA7CivosqrmrLIgPCBkb24nJ3lva3VcIDsKK+S7geeOi+WKmyA8IG5pb3VyaWtpXCA7CivkurrmrLIgPCBqaW4nJ3lva3VcIDsKK+WkmuiCieaenCA8IHRhbmlrdWthXCA7CivmnIDnm5vmnJ8gPCBzYWlzZWlraVwgOwor5a6f5a2YIDwgaml0c3V6b25cIDsKK+WPjeavlOS+iyA8IGhhbnBpcmVpXCA7CivpoJjoopYgPCByeW91c2h1dVwgOwor5pex6a2DIDwga2FuYmF0c3VcIDsKK+eJuembhiA8IHRva3VzaHV1XCA7CivmnKvnlLcgPCBiYXRzdW5hblwgOwor6Z+z6LOqIDwgb25zaGl0c3VcIDsKK+WvuOWAnyA8IHN1bnNoYWt1XCA7CivlpbPlrZDpq5ggPCBqb3NoaWtvdVwgOwor6ZaL5Zue6LevIDwga2Fpa2Fpcm9cIDsKK+i2heS/lyA8IGNob3V6b2t1XCA7Civmm7LnrqEgPCBreW9rdWthblwgOwor5a+p5p+75ZOhIDwgc2hpbnNhaW5cIDsKK+iEiOWLlSA8IG15YWt1ZG91XCA7CivogqnluYUgPCBrYXRhaGFiYVwgOwor5LqL5YuZ5qmf5ZmoIDwgamltdWtpa2lcIDsKK+ahiOWHuiA8IGFuc2h1dHN1XCA7Civpup3pppnmsLQgPCBqYWtvdXN1aVwgOwor5pel5pys54qsIDwgbmlob25rZW5cIDsKK+S6i+WLmemHjyA8IGppbXVyeW91XCA7CivogqHlvJUgPCBtb21vaGlraVwgOwor5Li456a/IDwgbWFydWhhZ2VcIDsKK+W8leeUqOWPpSA8IGluJyd5b3VrdVwgOwor5L6b5Lq6IDwgdG9tb2JpdG9cIDsKK+enkeWtpumZoiA8IGthZ2FrdWluXCA7Civkurrmp5ggPCBoaXRvc2FtYVwgOwor5Lmz54mbIDwgbnl1dWd5dXVcIDsKK+WwguS4gCA8IHNlbicnaXRzdVwgOwor5YmN6aCt6YOoIDwgemVudG91YnVcIDsKK+WNgeWbm+aXpSA8IGp1dXlva2thXCA7CivmnpXmnKggPCBtYWt1cmFnaVwgOwor6IKh5bqnIDwgbWF0YWd1cmFcIDsKK+eJuemVtyA8IHRva3VjaG91XCA7Civni7jol7sgPCB0YW51a2ltb1wgOwor57y26KmwIDwga2FuZHp1bWVcIDsKK+S4gOe/vCA8IGljaGl5b2t1XCA7Civlrp/lprkgPCBqaXRzdW1haVwgOwor5Lit56m6IDwgbmFrYXpvcmFcIDsKK+mjsuawtCA8IG5vbWltaXp1XCA7CivkuK3nqIsgPCBuYWthaG9kb1wgOwor5LuK5pyIIDwga29uZ2V0c3VcIDsKK+iyuOacrCA8IGthc2hpaG9uXCA7CivkuKbnq4sgPCBoZWlyaXRzdVwgOwor5a6J5a6/IDwgeWFzdXlhZG9cIDsKK+iHquW3seaal+ekuiA8IGppa29hbmppXCA7Civog73lipsgPCBub3VyeW9rdVwgOwor6YCj5q2M5birIDwgcmVuZ2FzaGlcIDsKK+eJqemZsCA8IG1vbm9rYWdlXCA7CivlronlrokgPCB5YXN1eWFzdVwgOwor5a2m5b6zIDwgZ2FrdXRva3VcIDsKK+aUr+aPtOiAhSA8IHNoaWVuc2hhXCA7Civnv5LnmZYgPCBzaHV1aGVraVwgOwor5qK25pyo5bqnIDwga2FqaWtpemFcIDsKK+S4uOefsyA8IG1hcnVpc2hpXCA7CivlnLDmlrnljLogPCBjaGlob3VrdVwgOwor5LiH57eRIDwgYmFucnlva3VcIDsKK+Wuv+WRvSA8IHNodWt1bWVpXCA7CivlsbHngavkuosgPCB5YW1ha2FqaVwgOwor5omN5pyq5rqAIDwgc2FpbWltYW5cIDsKK+S7j+aWhyA8IGZ1dHN1YnVuXCA7CivniZvpnakgPCBneXV1a2F3YVwgOwor6IGW5pelIDwgc2Vpaml0c3VcIDsKK+S6uuafhCA8IGhpdG9nYXJhXCA7Civkuqvmpb0gPCBreW91cmFrdVwgOwor5p2+5p+PIDwgc2hvdWhha3VcIDsKK+e+pOeruSA8IG11cmF0YWtlXCA7CivorabouZUgPCBrZWloaXRzdVwgOwor5Lmz5r+BIDwgbnl1dWRha3VcIDsKK+e/oOeOiSA8IHN1aWd5b2t1XCA7CivkurrpoZ7njL8gPCBqaW5ydWllblwgOwor5pel6aOfIDwgbmlzc2hva3VcIDsKK+S7h+aVtSA8IGt5dXV0ZWtpXCA7CivpnbrpnqggPCBtYWtrYXRzdVwgOwor5ae/6KaLIDwgc3VnYXRhbWlcIDsKK+itsOWumuabuCA8IGdpdGVpc2hvXCA7Civlrp/lnKggPCBqaXRzdXphaVwgOwor5pyI55WqIDwgdHN1a2liYW5cIDsKK+eSsOS4gyA8IGthbicnbmFuYVwgOwor6IO45YWIIDwgbXVuYXNha2lcIDsKK+iDuOWFgyA8IG11bmFtb3RvXCA7CivkuIDntYQgPCBoaXRva3VtaVwgOwor6Iy25Z2K5Li7IDwgY2hhYm91enVcIDsKK+eMq+ezniA8IG5la29iYWJhXCA7CivliqDnm5/lupcgPCBrYW1laXRlblwgOwor6Z206Z+zIDwga3V0c3VvdG9cIDsKK+S5l+eJqSA8IG5vcmltb25vXCA7CivpoqjniakgPCBmdXVidXRzdVwgOwor5L2c5YqHIDwgc2FrdWdla2lcIDsKK+aaluiJsiA8IGRhbnNob2t1XCA7CivkvZXljZIgPCBuYW5pdG96b1wgOwor57ep5LiL5YmkIDwga2FuZ2V6YWlcIDsKK+eOh+eEtiA8IHNvdHN1emVuXCA7CivokIzpu4ToibIgPCBtb2VnaWlyb1wgOwor56m65rCX6YqDIDwga3V1a2lqdXVcIDsKK+S8keWtpiA8IGt5dXVnYWt1XCA7CivpubnmsLTmuZYgPCBrYW5zdWlrb1wgOwor5LiJ562GIDwgc2FucGl0c3VcIDsKK+S9j+WPiyA8IHN1bWl0b21vXCA7CivmtbfogIHohbAgPCBlYmlnb3NoaVwgOwor5p2+5piOIDwgdGFpbWF0c3VcIDsKK+S7ruW9uSA8IGthcml5YWt1XCA7CivnlJ/oqIjosrsgPCBzZWlrZWloaVwgOwor5Lit55q/IDwgY2h1dXphcmFcIDsKK+S6uuaVsCA8IGhpdG9rYXp1XCA7CivlqZrntIQgPCBrb24nJ3lha3VcIDsKK+S4i+eptCA8IHNoaXRhYW5hXCA7Civlrr/lha0gPCB5YWRvcm9rdVwgOwor5Y+C5Yqg6ICFIDwgc2Fua2FzaGFcIDsKK+aXpeacrOa1tyA8IG5paG9ua2FpXCA7CivogLPmnLYgPCBtaW1pdGFidVwgOwor5pu455WZIDwga2FraXRvbWVcIDsKK+S4gOetiyA8IGhpdG9zdWppXCA7Civlrablr64gPCBnYWt1cnlvdVwgOwor5LiA562GIDwgaGl0b2Z1ZGVcIDsKK+iiq+S5l+aVsCA8IGhpam91c3V1XCA7CivniYfpmoUgPCBrYXRhc3VtaVwgOwor6LGB54S2IDwga2F0c3V6ZW5cIDsKK+aJi+miqOeQtCA8IHRlZnV1a2luXCA7CivniYfpmbAgPCBrYXRha2FnZVwgOwor5Lql5pyIIDwgZ2FpZ2V0c3VcIDsKK+azqOaEj+WgsSA8IGNodXVpaG91XCA7Civpoqjmma/nlLsgPCBmdXVrZWlnYVwgOwor6LOq5bGLIDwgc2hpY2hpeWFcIDsKK+eMqueqgSA8IGNob3RvdHN1XCA7CivkuqzmlrkgPCBreW91Z2F0YVwgOwor6Zu75a2Q6Z+zIDwgZGVuc2hpb25cIDsKK+eJm+mNiyA8IGd5dXVuYWJlXCA7Civlrp/lkI0gPCBqaXRzdW1laVwgOwor6Lui5YyW57OWIDwgdGVua2F0b3VcIDsKK+adpeaciCA8IHJhaWdldHN1XCA7Civog7jkuK0gPCBreW91Y2h1dVwgOwor5LiA56iuIDwgaGl0b2t1c2FcIDsKK+mWiee1jOacnyA8IGhlaWtlaWtpXCA7CivmmI7pgZQgPCBtZWl0YXRzdVwgOwor5a6/5L6/IDwgc2h1a3ViZW5cIDsKK+WvhuS7pCA8IG1pdHN1cmVpXCA7CivkuIDnp5IgPCBpY2hpYnlvdVwgOwor5LqS5Yqp55qEIDwgZ29qb3Rla2lcIDsKK+S5vuaJgOW4ryA8IGthbmpvdGFpXCA7CivlpKfpn7Plo7AgPCBkYWlvbmpvdVwgOwor56C055Sj6ICFIDwgaGFzYW5zaGFcIDsKK+mWieWbnui3ryA8IGhlaWthaXJvXCA7CivkuLvniakgPCBzaHVidXRzdVwgOwor576k55m6IDwgZ3VucGF0c3VcIDsKK+absueQgyA8IGt5b2treXV1XCA7Civml6npkJggPCBoYXlhZ2FuZVwgOwor6IOh6bq75pOCIDwgZ29tYXN1cmlcIDsKK+apn+mbt+WOnyA8IGtpcmFpZ2VuXCA7CivkuozmoYEgPCBmdXRha2V0YVwgOwor5p2l5pelIDwgcmFpbmljaGlcIDsKK+eIqumfsyA8IHRzdW1hb3RvXCA7Civmlq3pq6ogPCBkYW5wYXRzdVwgOwor5puy546JIDwgbWFnYXRhbWFcIDsKK+WkmuWtlOaApyA8IHRha291c2VpXCA7CivlkIjmiJDpn7MgPCBnb3VzZWlvblwgOwor56C06a2U5byTIDwgaGFtYXl1bWlcIDsKK+WuouWIhiA8IGt5YWt1YnVuXCA7CivkvZXkvZUgPCBuYW5pbmFuaVwgOwor6YCg5b2x5YmkIDwgem91ZWl6YWlcIDsKK+iDhuWKmyA8IHRhbnJ5b2t1XCA7Civkuovmn4QgPCBrb3RvZ2FyYVwgOwor5Luu5a6uIDwga2FyaW1peWFcIDsKK+abuOeJqSA8IHNob21vdHN1XCA7CivniZvphaogPCBneXV1cmFrdVwgOwor5YCm5oCg5pyfIDwga2VudGFpa2lcIDsKK+eLrOe/kiA8IGRva3VzaHV1XCA7Civku67lroUgPCBrYXJpdGFrdVwgOwor5a2Q5a6dIDwga29kYWthcmFcIDsKK+mfruiRsSA8IG5pcmFuZWdpXCA7CivmnKrntI3ogIUgPCBtaW5vdXNoYVwgOwor5LqM6YeN5pifIDwgbmlqdXVzZWlcIDsKK+S9l+S6uiA8IHdhYmliaXRvXCA7Civku4/lvI8gPCBidXNzaGlraVwgOwor5LiJ55u0IDwgc2FuY2hva3VcIDsKK+S9leS6iyA8IG5hbmlnb3RvXCA7CivogonlpKogPCBuaWt1YnV0b1wgOwor57mB5L2T5a2XIDwgaGFudGFpamlcIDsKK+S4ieeZviA8IHNhbmJ5YWt1XCA7Civnibnos54gPCB0b2t1c2hvdVwgOwor5raI6Z+z5ZmoIDwgc2hvdW9ua2lcIDsKK+mhlOedgCA8IGdhbmNoYWt1XCA7CivlpJrkurrmlbAgPCB0YW5pbnp1dVwgOwor6LW05Lu75ZywIDwgZnVuaW5jaGlcIDsKK+WPpOeUn+S7oyA8IGtvc2VpZGFpXCA7CivkubPmpa0gPCBueXV1Z3lvdVwgOwor5pel6YqAIDwgbmljaGlnaW5cIDsKK+aeleW4rSA8IGNoaW5zZWtpXCA7Civos5PlrqIgPCBoaW5reWFrdVwgOwor6Iqd5bGF5rCXIDwgc2hpYmFpZ2VcIDsKK+Wun+WDjyA8IGppdHN1em91XCA7Civlrp/lg40gPCBqaXRzdWRvdVwgOwor5qiq5bqn5qiZIDwgb3V6YWh5b3VcIDsKK+iHquitpuWboyA8IGppa2VpZGFuXCA7CivmmqvlrprmoYggPCB6YW50ZWlhblwgOwor6a2a5biC5aC0IDwgdW9pY2hpYmFcIDsKK+WuruS6uiA8IG1peWFiaXRvXCA7Civml6fph4wgPCBmdXJ1c2F0b1wgOwor5LiA55q/IDwgaGl0b3NhcmFcIDsKK+S4gOeariA8IGhpdG9rYXdhXCA7CivkuozmlrkgPCBmdXRha2F0YVwgOwor6aeF6aas6LuKIDwgZWtpYmFzaGFcIDsKK+S4iueVpSA8IGpvdXJ5YWt1XCA7CivosqvlvrkgPCBrYW50ZXRzdVwgOwor5a++6Kmx5L2TIDwgdGFpd2F0YWlcIDsKK+aeouWvhiA8IHN1dW1pdHN1XCA7CivkuIDnmZYgPCBoaXRva3VzZVwgOwor5a6u5LitIDwga3l1dWNodXVcIDsKK+ixhuauuyA8IG1hbWVnYXJhXCA7Civnj77lsLogPCBnZW5zaGFrdVwgOwor5Lq65b2xIDwgaGl0b2thZ2VcIDsKK+WuouS9kyA8IGt5YWt1dGFpXCA7CivmuIXmjoPlpKsgPCBzZWlzb3VmdVwgOwor5a6f5L6LIDwgaml0c3VyZWlcIDsKK+mrmOaEn+W6piA8IGtvdWthbmRvXCA7CivmnKjmp4wgPCBraWR6dWNoaVwgOwor57SA5YWD5YmNIDwga2lnZW56ZW5cIDsKK+ejqOeglOe0mSA8IG1ha2Vuc2hpXCA7Civnj77lrp8gPCBnZW5qaXRzdVwgOwor5a6i5Lq6IDwga3lha3VqaW5cIDsKK+aXouWpmuiAhSA8IGtpa29uc2hhXCA7CivpnLnpnYIgPCBoZWtpcmVraVwgOwor5pCs6YCB5rOiIDwgaGFuc291aGFcIDsKK+itsuiRiSA8IHl1enVyaWhhXCA7Civnlo7plovogIUgPCBzb2thaXNoYVwgOwor5oCd5oOz5a62IDwgc2hpc291a2FcIDsKK+iwt+awtCA8IHRhbmltaXp1XCA7Civosarml6UgPCBnb3VuaWNoaVwgOwor5pyN5q+SIDwgZnVrdWRva3VcIDsKK+WyqeeUsOW4ryA8IGl3YXRhb2JpXCA7Civogbfln58gPCBzaG9rdWlraVwgOwor5pq055m6IDwgYm91aGF0c3VcIDsKK+mWi+mWieapnyA8IGthaWhlaWtpXCA7Civluo/noLTmgKUgPCBqb2hha3l1dVwgOwor6Laz5b+g5a6fIDwgYXNoaW1hbWVcIDsKK+mjn+aMhyA8IHNob2t1c2hpXCA7CivljYrmuJvmnJ8gPCBoYW5nZW5raVwgOwor5pel6LyqIDwgbmljaGlyaW5cIDsKK+iHqueEtue+jiA8IHNoaXplbmJpXCA7CivogqnlhYggPCBrYXRhc2FraVwgOwor5aSW6bCQIDwgc290b3dhbmlcIDsKK+mgu+eZuiA8IGhpbnBhdHN1XCA7CivliY3kuJbntIAgPCB6ZW5zZWlraVwgOwor5pys5pyrIDwgaG9ubWF0c3VcIDsKK+eglOejqOe0mSA8IGtlbm1hc2hpXCA7CivkuIfniakgPCBiYW5tb3RzdVwgOwor546J5p2vIDwgZ3lva3VoYWlcIDsKK+eMrueJqSA8IGtlbm1vdHN1XCA7CivkurrlsbEgPCBoaXRveWFtYVwgOwor6Z2S5YaZ55yfIDwgYW9qYXNoaW5cIDsKK+aXqei2syA8IGhheWFhc2hpXCA7CivnpYjnpbfmm7ggPCBraXRvdXNob1wgOwor6Zyn6ZuoIDwga2lyaXNhbWVcIDsKK+W4sOmChOWFtSA8IGtpa2FuaGVpXCA7CivplonntYzlvowgPCBoZWlrZWlnb1wgOwor6LOi5ZOyIDwga2VudGV0c3VcIDsKK+eJh+i2syA8IGthdGFhc2hpXCA7CivkuIDniYcgPCBoaXRvaGlyYVwgOwor5aSa5pa56Z2iIDwgdGFob3VtZW5cIDsKK+eHleWwvuacjSA8IGVuYmlmdWt1XCA7CivnpoDorbDmm7ggPCByaW5naXNob1wgOwor5pys5pelIDwgaG9uaml0c3VcIDsKK+S5vuaLrSA8IGthcmFidWtpXCA7CivniLblhYTkvJogPCBmdWtlaWthaVwgOwor6auY6bqX5qW9IDwga29tYWdha3VcIDsKK+mjn+aEnyA8IHNob2t1a2FuXCA7CivmlbTpq6ogPCBzZWloYXRzdVwgOwor5LuP5aOHIDwgYnV0c3VkYW5cIDsKK+S6iOaDs+WkliA8IHlvc291Z2FpXCA7CivmiYHmoYPmsrkgPCBoZW50b3V5dVwgOwor5a2m5YmyIDwgZ2FrdXdhcmlcIDsKK+aVtOmqqCA8IHNlaWtvdHN1XCA7CivotIvkvZwgPCBuaXNlc2FrdVwgOwor5a2m5YmHIDwgZ2FrdXNva3VcIDsKK+absuawtCA8IGt5b2t1c3VpXCA7CivpnZLlubTmnJ8gPCBzZWluZW5raVwgOwor6aKo5pyIIDwgZnV1Z2V0c3VcIDsKK+mcnOmbqiA8IHNvdXNldHN1XCA7CivlnYfnrYnljJYgPCBraW50b3VrYVwgOwor5Lmx5o6YIDwgcmFua3V0c3VcIDsKK+WPl+mok+iAhSA8IGp1a2Vuc2hhXCA7CivmmYLku6Pnm7ggPCBqaWRhaXNvdVwgOwor5Lmd5pelIDwga29rb25va2FcIDsKK+aXpeixqiA8IG5pY2hpZ291XCA7CivlopfliqDliIYgPCB6b3VrYWJ1blwgOwor5LqM6YCj6YqDIDwgbmlyZW5qdXVcIDsKK+S5neaXjyA8IGt5dXV6b2t1XCA7Civoqq3pn78gPCB5b21pa3lvdVwgOwor54mb6KeSIDwgZ3l1dWtha3VcIDsKK+Wkp+mbqiA8IHRhaXNldHN1XCA7CivlpJbpo58gPCBnYWlzaG9rdVwgOwor5LiA5Zue6LuiIDwgaWtrYWl0ZW5cIDsKK+WklemjryA8IHl1dW1lc2hpXCA7CivogbflkI0gPCBzaG9rdW1laVwgOwor5pmp56+AIDwgYmFuc2V0c3VcIDsKK+S6jOW9uSA8IGZ1dGF5YWt1XCA7CivkuLvohLPpg6ggPCBzaHVub3VidVwgOwor5LqM5b2iIDwgZnV0YW5hcmlcIDsKK+aYpeiPiiA8IHNodW5naWt1XCA7Civlrablg5UgPCBnYWt1Ym9rdVwgOwor57SN5LuY5pu4IDwgbm91ZnVzaG9cIDsKK+ixhuaWmSA8IG1hbWVyeW91XCA7CivmnJ3mlbUgPCBjaG91dGVraVwgOwor5Y2Y5byB6IqxIDwgdGFuYmVua2FcIDsKK+a1gea1quiAhSA8IHJ1cm91c2hhXCA7CivmlaPpq6ogPCBzYW5wYXRzdVwgOwor6I+T5a2Q55uGIDwga2FzaGlib25cIDsKK+isjuisjiA8IG5hem9uYXpvXCA7CivlhaznlKjoqp4gPCBrb3V5b3Vnb1wgOwor5aaE6KqsIDwgbW91c2V0c3VcIDsKK+mgk+edgCA8IHRvbmNoYWt1XCA7Civku4/lmbggPCBmdXRzdXRvblwgOwor5aaW6KGTIDwgeW91anV0c3VcIDsKK+mbm+mzpSA8IGhpbmFkb3JpXCA7Civpm7vpo74gPCBkZW5zaG9rdVwgOwor5aSq6Zm954KJIDwgdGFpeW91cm9cIDsKK+aXp+iosyA8IGt5dXV5YWt1XCA7CivmnIjmnKsgPCB0c3VraXp1ZVwgOwor54us55m9IDwgZG9rdWhha3VcIDsKK+eMm+eDiCA8IG1vdXJldHN1XCA7Civlj5fouqvlvaIgPCB1a2VtaWtlaVwgOwor5rCR5Za25YyWIDwgbWluJydlaWthXCA7CivkurrmnJvlrrYgPCBqaW5ib3VrYVwgOwor54iq6LehIDwgdHN1bWVhdG9cIDsKK+S7ruWInSA8IGthcmlzb21lXCA7CivmnaXlrqIgPCByYWlreWFrdVwgOwor5pyI5pucIDwgZ2V0c3V5b3VcIDsKK+e/jOacnSA8IHlva3VjaG91XCA7Civnt4/kuozpmo4gPCBzb3VuaWthaVwgOwor57mB6ZuRIDwgaGFuemF0c3VcIDsKK+ino+mbh+iAhSA8IGthaWtvc2hhXCA7CivmvKLmmYLku6MgPCBrYW5qaWRhaVwgOwor5YaF5aSW6YeOIDwgbmFpZ2FpeWFcIDsKK+eJh+S7ruWQjSA8IGthdGFrYW5hXCA7CivohLHooaPmiYAgPCBkYXRzdWlqb1wgOwor6IG35YiGIDwgc2hva3VidW5cIDsKK+S5vuW8jyA8IGthbnNoaWtpXCA7CivpnaLorZggPCBtZW5zaGlraVwgOwor5Lq65Z6jIDwgaGl0b2dha2lcIDsKK+i0iOS4juiAhSA8IHpvdXlvc2hhXCA7CivlpLHpjK8gPCBzaGlzc2FrdVwgOwor5LmF5pa5IDwgaGlzYWthdGFcIDsKK+aciOaYjiA8IGdldHN1bWVpXCA7Civlo7Dpq5ggPCBrb3dhZGFrYVwgOwor6KuW6L+wIDwgcm9uanV0c3VcIDsKK+e/jOaYpSA8IHlva3VzaHVuXCA7Civkv53lrojns7sgPCBob3NodWtlaVwgOwor6Ku+6Ku+IDwgZGFrdWRha3VcIDsKK+itmOiAhSA8IHNoaWtpc2hhXCA7Civku5Xlj6MgPCBzaGlrdWNoaVwgOwor5rW36aas5ZueIDwga2FpYmFrYWlcIDsKK+iHquWgleiQvSA8IGppZGFyYWt1XCA7Civnj43lppkgPCBjaGlubXlvdVwgOwor6LKd5aGaIDwga2FpZHp1a2FcIDsKK+acrOWhgeaJkyA8IGhvbnJ1aWRhXCA7CivogZblk7IgPCBzZWl0ZXRzdVwgOwor5oSb6aSQ5LyaIDwgYWlzYW5rYWlcIDsKK+WvvuaKl+mmrCA8IHRhaWtvdWJhXCA7CivpnaLoqbAgPCBtZW5raXRzdVwgOwor57ie6aasIDwgc2hpbWF1bWFcIDsKK+S7ruWQjeaWhyA8IGthbmFidW1pXCA7Civpo5/lsL0gPCBzaG9rdWppblwgOwor6LOt5LqLIDwga2FrZWdvdG9cIDsKK+S4gOa1gSA8IGljaGlyeXV1XCA7CivkuK3mn4QgPCBjaHV1Z2FyYVwgOwor5pu45pytIDwgc2hvc2F0c3VcIDsKK+WmmeiWrCA8IG15b3V5YWt1XCA7CivkuLvml6UgPCBzaHVqaXRzdVwgOwor6Ku46Ku4IDwgbW9yb21vcm9cIDsKK+iDoem6u+WhqSA8IGdvbWFzaGlvXCA7CivliqDlt6Xlk4EgPCBrYWtvdWhpblwgOwor5qip5Yip5pu4IDwga2VucmlzaG9cIDsKK+iruOiqrCA8IHNob3NldHN1XCA7Civlu4PopoHntKAgPCBoYWl5b3Vzb1wgOwor5aWz6KaqIDwgb24nJ25hb3lhXCA7Civmm7Tmm7QgPCBzYXJhc2FyYVwgOwor5p2T5a2QIDwgc2hha3VzaGlcIDsKK+epuuaDs+WutiA8IGt1dXNvdWthXCA7Civmm7Lmm7IgPCBrdW1hZ3VtYVwgOwor5piO6ImyIDwgbWVpc2hva3VcIDsKK+iyqeWjsumDqCA8IGhhbmJhaWJ1XCA7CivnnLzpj6HlsYsgPCBtZWdhbmV5YVwgOwor5LuW5Ye6IDwgdGFzaHV0c3VcIDsKK+WJjeS4lueVjCA8IHplbnNla2FpXCA7CivmnKzloLTmiYAgPCBob25iYXNob1wgOwor6Zuo6Z20IDwgYW1hZ3V0c3VcIDsKK+iZmueEoeWFmiA8IGt5b211dG91XCA7CivkurrpoZ7mhJsgPCBqaW5ydWlhaVwgOwor5LqM6YeN5aWPIDwgbmlqdXVzb3VcIDsKK+aEm+WlveiAhSA8IGFpa291c2hhXCA7CivlkIjmiJDoqp4gPCBnb3VzZWlnb1wgOwor5pys5byPIDwgaG9uc2hpa2lcIDsKK+S7j+WJjSA8IGJ1dHN1emVuXCA7Civpm6rpm7IgPCB5dWtpZ3Vtb1wgOwor6Zuo6ZywIDwgYW1lYXJhcmVcIDsKK+acqOW9qyA8IG1va3VjaG91XCA7CivmmpHnhrEgPCBzaG9uZXRzdVwgOwor55+z54Gr55+iIDwgaXNoaWJpeWFcIDsKK+eJqeiJsiA8IGJ1c3Nob2t1XCA7CivogbfkurogPCBzaG9rdW5pblwgOwor5Ye657SN57C/IDwgc3VpdG91Ym9cIDsKK+irp+islCA8IGthaWd5YWt1XCA7Civni6znibkgPCBkb2t1dG9rdVwgOwor5aSx6YCfIDwgc2hpc3Nva3VcIDsKK+aYpee5rSA8IGhhcnVtYXl1XCA7CivnhrHpoZggPCBuZXRzdWdhblwgOwor6LuN566h5Yy6IDwgZ3Vua2Fua3VcIDsKK+acq+W5tCA8IG1hdHN1bmVuXCA7Civlq6HlrasgPCBjaGFrdXNvblwgOwor54mp6IetIDwgbW9ub2d1c2FcIDsKK+WroeWtkCA8IGNoYWt1c2hpXCA7Civoq6Toq6QgPCBnYWt1Z2FrdVwgOwor54uh54y+IDwga291a2F0c3VcIDsKK+mbkemjnyA8IHphc3Nob2t1XCA7CivkuLvmjIEgPCBzaHVtb2NoaVwgOwor5ayw5YWQIDwgbWlkb3JpZ29cIDsKK+eni+eUsOecjCA8IGFraXRha2VuXCA7CivnuKbplbcgPCB0YXRlbmFnYVwgOwor5YSS5a2m55WMIDwganVnYWtrYWlcIDsKK+S4i+aJi+ezniA8IGhldGFrdXNvXCA7CivkuonlpaogPCBzb3VkYXRzdVwgOwor5LuP5YOPIDwgYnV0c3V6b3VcIDsKK+acquWivuWcsCA8IG1pa29uY2hpXCA7CivlpKflpJrmlbAgPCBkYWl0YXN1dVwgOwor5a2Q5Y2I57eaIDwgc2hpZ29zZW5cIDsKK+iAgeWunyA8IHJvdWppdHN1XCA7CivlpKfpgIYgPCBkYWlneWFrdVwgOwor5pel6JOuIDwgbmljaGlyZW5cIDsKK+ato+W4uOWMliA8IHNlaWpvdWthXCA7CivnmbrphbXntKAgPCBoYWtrb3Vzb1wgOwor6Led6Zui6KiIIDwga3lvcmlrZWlcIDsKK+eGsembtyA8IG5ldHN1cmFpXCA7CivoiLnlsI/lsYsgPCBmdW5hZ295YVwgOwor6Ya46YCg5omAIDwgam91em91am9cIDsKK+ippumjnyA8IHNoaXNob2t1XCA7Civmlbfph5EgPCBzaGlraWtpblwgOwor5auh5aa7IDwgY2hha3VzYWlcIDsKK+S4gOajnyA8IGhpdG9tdW5lXCA7CivlpKfntI3oqIAgPCBkYWluYWdvblwgOwor5aSp5paH5a62IDwgdGVubW9ua2FcIDsKK+aooemAoOiAhSA8IG1vem91c2hhXCA7CivlpLHot6EgPCBzaGlzc2VraVwgOwor5a+d5LiN6LazIDwgbmVidXNva3VcIDsKK+S6uuWIuiA8IGppbnNhc2hpXCA7Civpm7vpiYQgPCBkZW50ZXRzdVwgOwor5Lq65YilIDwgbmluYmV0c3VcIDsKK+WwgumWgOWutiA8IHNlbm1vbmthXCA7Civoq5boqqwgPCByb25zZXRzdVwgOwor5pyq54S25b2iIDwgbWl6ZW5rZWlcIDsKK+acrOWxgCA8IGhvbmt5b2t1XCA7Civliaroo4HmqZ8gPCBzZW5zYWlraVwgOwor5Lit5oyHIDwgbmFrYXl1YmlcIDsKK+izvOiyt+mDqCA8IGtvdWJhaWJ1XCA7CivosrjlgJ8gPCB0YWlzaGFrdVwgOwor542y5b6XIDwga2FrdXRva3VcIDsKK+irluipsCA8IHJvbmtpdHN1XCA7CivmhYjlloTkvJogPCBqaXplbmthaVwgOwor5oKq6Laj5ZGzIDwgYWt1c2h1bWlcIDsKK+S4gOahgSA8IGhpdG9rZXRhXCA7Civmlr3ooZMgPCBzaGlqdXRzdVwgOwor6aGb5pyrIDwgdGVubWF0c3VcIDsKK+i0iOS4jueojiA8IHpvdXlvemVpXCA7CivosqHlipsgPCB6YWlyeW9rdVwgOwor6Kqe6YOoIDwga2F0YXJpYmVcIDsKK+S/neWtmOezuyA8IGhvem9ua2VpXCA7CivkuInmm7IgPCBzYW5reW9rdVwgOwor5rCX5YuV6LuKIDwga2lkb3VzaGFcIDsKK+awuOS9j+iAhSA8IGVpanV1c2hhXCA7Civmma/niakgPCBrZWlidXRzdVwgOwor5pa56KGTIDwgaG91anV0c3VcIDsKK+eJuee0hCA8IHRva3V5YWt1XCA7CivnubDoqIAgPCBrdXJpZ290b1wgOwor54mb6IKJIDwgZ3l1dW5pa3VcIDsKK+adieWeoyA8IHN1Z2lnYWtpXCA7CivnjovlrqQgPCBvdXNoaXRzdVwgOwor5LiA5p2fIDwgaGl0b3RhYmFcIDsKK+eJoee+iiA8IG9oaXRzdWppXCA7CivosLflupUgPCB0YW5pem9rb1wgOwor5pyq54af5YWQIDwgbWlqdWt1amlcIDsKK+S4gOacqCA8IGljaGlib2t1XCA7CivkurrlgpEgPCBqaW5rZXRzdVwgOwor6KiY5b+15ZOBIDwga2luZW5oaW5cIDsKK+egtOeTnOeXhSA8IGhha2FieW91XCA7CivmmKjnp4sgPCBzYWt1c2h1dVwgOwor6LC35bedIDwgdGFuaWdhd2FcIDsKK+S7hOS7hCA8IGhvbm9ib25vXCA7CivnoLTnlKPms5UgPCBoYXNhbmhvdVwgOwor5YGc6Zu75pelIDwgdGVpZGVuYmlcIDsKK+iyt+S4uyA8IGthaW51c2hpXCA7Civlj5fpqJPnlJ8gPCBqdWtlbnNlaVwgOwor6Zm46JK45rCXIDwgb2tham91a2lcIDsKK+S4gOaZgiA8IGhpdG90b2tpXCA7CivmmIfntaYgPCBzaG91a3l1dVwgOwor5a6f6KGM5pmCIDwgamlra291amlcIDsKK+eJh+iGnSA8IGthdGFoaXphXCA7Civpo7LliqkgPCBub21pc3VrZVwgOwor5puy5oKqIDwga3lva3Vha3VcIDsKK+aooemAoOe0mSA8IG1vem91c2hpXCA7Civkuozljp/lrZAgPCBuaWdlbnNoaVwgOwor5LiA5peXIDwgaGl0b2hhdGFcIDsKK+S4gOaXjyA8IGljaGl6b2t1XCA7Civpo5/lk4EgPCBzaG9rdWhpblwgOwor54mp57SNIDwgYnV0c3Vub3VcIDsKK+WkseiqvyA8IHNoaXRjaG91XCA7Civnha7prZogPCBuaXpha2FuYVwgOwor5aSx6KqeIDwgc2hpdHN1Z29cIDsKK+S4h+WbveaXlyA8IGJhbmtva2tpXCA7Civml6nogLMgPCBoYXlhbWltaVwgOwor5Li45bqVIDwgbWFydXpva29cIDsKK+S6i+WLmeeahCA8IGppbXV0ZWtpXCA7CivkurrkurogPCBoaXRvYml0b1wgOwor5pWj6YC4IDwgc2FuJydpdHN1XCA7CivniYfogowgPCBrYXRhaGFkYVwgOwor5pu45byPIDwgc2hvc2hpa2lcIDsKK+S6uuS6iyA8IGhpdG9nb3RvXCA7Civnt4/pq6ogPCBzb3VoYXRzdVwgOwor5pyN5bGeIDwgZnVrdXpva3VcIDsKK+eJueeoriA8IHRva3VkYW5lXCA7CivkuK3lvaIgPCBjaHV1Z2F0YVwgOwor5Lq65LitIDwgaGl0b25ha2FcIDsKK+aOqOenu+eahCA8IHN1aWl0ZWtpXCA7CivkuIDmkoMgPCBpY2hpZ2VraVwgOwor56m65rCX56m0IDwga3V1a2lhbmFcIDsKK+WPl+WuueiAhSA8IGp1eW91c2hhXCA7Civns6DlkbPlmYwgPCBudWthbWlzb1wgOwor5pa55b2i5rOiIDwgaG91a2VpaGFcIDsKK+aIpuWJjea0viA8IHNlbnplbmhhXCA7Civlh6bnkIbloLQgPCBzaG9yaWpvdVwgOwor5LqM5bym55C0IDwgbmlnZW5raW5cIDsKK+S4reW6rSA8IG5ha2FuaXdhXCA7Civlp4vnmbogPCBzaGloYXRzdVwgOwor6Kyd57W2IDwgc2hhemV0c3VcIDsKK+S5vuWSsyA8IGthcmF6ZWtpXCA7CivphZLpgKDlrrYgPCBzaHV6b3VrYVwgOwor5Lit5bmVIDwgbmFrYW1ha3VcIDsKK+S4reW5hSA8IGNodXVoYWJhXCA7CivmjrLnpLrmnb8gPCBrZWlqaWJhblwgOwor5YaF6aKo5ZGCIDwgdWNoaWJ1cm9cIDsKK+iruOiGnSA8IG1vcm9oaXphXCA7Civoq7johpogPCBtb3JvaGFkYVwgOwor5Lit5bitIDwgbmFrYXNla2lcIDsKK+acneWklSA8IGNob3VzZWtpXCA7CivniafnrJsgPCBib2t1dGVraVwgOwor5Lih5b6XIDwgcnlvdXRva3VcIDsKK+e4pui7uCA8IHRhdGVqaWt1XCA7CivkuK3lirTlp5QgPCBjaHV1cm91aVwgOwor5aem54mpIDwga2FuYnV0c3VcIDsKK+mjn+WIuyA8IHNob2trb2t1XCA7CivnjonlnqMgPCB0YW1hZ2FraVwgOwor5oSb54yr5a62IDwgYWlieW91a2FcIDsKK+S4ieWbnuW/jCA8IHNhbmthaWtpXCA7Civnt4/ku5XoiJ4gPCBzb3VqaW1haVwgOwor6Zuy6LazIDwga3Vtb2FzaGlcIDsKK+e3kemiqCA8IHJ5b2t1ZnV1XCA7CivniannqK4gPCBtb25vZGFuZVwgOwor5Lim5bmFIDwgbmFtaWhhYmFcIDsKK+WmmeetliA8IG15b3VzYWt1XCA7CivpnZnohIggPCBqb3VteWFrdVwgOwor54mp56iOIDwgYnV0c3V6ZWlcIDsKK+S4u+WuoiA8IHNodWt5YWt1XCA7CivphrjpgKDlrrYgPCBqb3V6b3VrYVwgOwor5Lqk5LqkIDwga29tb2dvbW9cIDsKK+eIhuiWrCA8IGJha3V5YWt1XCA7CivkuK3ls7YgPCBuYWthamltYVwgOwor5Lqk5LuY6YeRIDwga291ZnVraW5cIDsKK+S6i+WFsSA8IGtvdG9kb21vXCA7CivmiYfpoqjmqZ8gPCBzZW5wdXVraVwgOwor5LiN5oKJIDwgZnVzaGl0c3VcIDsKK+WFqOWAmeijnCA8IHplbmtvdWhvXCA7CivnkIbmg7Poq5YgPCByaXNvdXJvblwgOwor54mn56WeIDwgYm9rdXNoaW5cIDsKK+e3kemdkiA8IHJva3VzaG91XCA7CivmvKLmlbDlrZcgPCBrYW5zdXVqaVwgOwor6Lyd54WM5bidIDwga2lrb3V0ZWlcIDsKK+aUr+aMgeiAhSA8IHNoaWppc2hhXCA7CivmlrnoiJ8gPCBoYWtvYnVuZVwgOwor6aOv5LqLIDwgbWFtYWdvdG9cIDsKK+S4reWwjyA8IGNodXVzaG91XCA7Civml6XnsbMgPCBuaWNoaWJlaVwgOwor54S86bOlIDwgeWFraXRvcmlcIDsKK+Wkp+aWh+WtlyA8IGRhaW1vbmppXCA7CivorLnnm7QgPCBraW5jaG9rdVwgOwor5Lit5a2mIDwgY2h1dWdha3VcIDsKK+e3tOmJhCA8IHJlbnRldHN1XCA7CivlpInoqqwgPCBoZW5zZXRzdVwgOwor5pW16KWyIDwgdGVraXNodXVcIDsKK+WtkOWNiOeSsCA8IHNoaWdva2FuXCA7CivmlL7pgJAgPCBob3VjaGlrdVwgOwor5LiJ5b25IDwgc2FuJyd5YWt1XCA7Civoqo3orZggPCBuaW5zaGlraVwgOwor6Im256aP5a62IDwgZW5wdWt1a2FcIDsKK+WwgumWgOWMuyA8IHNlbm1vbicnaVwgOwor5pu05bm05pyfIDwga291bmVua2lcIDsKK+aXpeacrOWIgCA8IG5paG9udG91XCA7Civnt5HploAgPCByeW9rdW1vblwgOwor5LiN6KGM5YSAIDwgZnVneW91Z2lcIDsKK+W4sOW3o+aApyA8IGtpc291c2VpXCA7CivkuIvmiYvniakgPCBnZXRlbW9ub1wgOwor5p2R5Lq6IDwgbXVyYWJpdG9cIDsKK+aPkOahiOiAhSA8IHRlaWFuc2hhXCA7Civlj5fkv6HmqZ8gPCBqdXNoaW5raVwgOwor5LiL5bivIDwgc2hpdGFvYmlcIDsKK+S4gOW9uSA8IGhpdG95YWt1XCA7CivosarlgpEgPCBnb3VrZXRzdVwgOwor5o+a5a2Q5rGfIDwgeW91c3Vrb3VcIDsKK+S6i+S6iyA8IGtvdG9nb3RvXCA7Civntr/pm7IgPCB3YXRhZ3Vtb1wgOwor5Lmx5YWlIDwgcmFuJydueXV1XCA7Civntr/pm6ogPCB3YXRheXVraVwgOwor57WM5bi46LK7IDwga2Vpam91aGlcIDsKK+S6iOS6iCA8IGthbmVnYW5lXCA7CivkuJblsYAgPCBzZWlreW9rdVwgOwor57e06YGUIDwgcmVudGF0c3VcIDsKK+aah+aahyA8IGhpbWFoaW1hXCA7CivpmobpmoYgPCByeXV1cnl1dVwgOwor5rW3546L5pifIDwga2Fpb3VzZWlcIDsKK+S4gOW6piA8IGhpdG90YWJpXCA7CivpmoXpmoUgPCBzdW1penVtaVwgOwor5bm856ia5ZySIDwgeW91Y2hpZW5cIDsKK+S4gOW5tCA8IGhpdG90b3NlXCA7CivpnZnnspsgPCBzZWlzaHVrdVwgOwor5aGp6a6tIDwgc2hpb3pha2VcIDsKK+aXj+exjSA8IHpva3VzZWtpXCA7CivlpKfokpwgPCBuaW4nJ25pa3VcIDsKK+S4gOW5lSA8IGhpdG9tYWt1XCA7CivmnIjmoYLmqLkgPCBnZWtrZWlqdVwgOwor5pyq6KiY5YWlIDwgbWlraW55dXVcIDsKK+S4gOW3uyA8IGhpdG9tYWtpXCA7Civpm6PoqbAgPCBuYW5raXRzdVwgOwor6ZuA6LqNIDwgamFrdXlha3VcIDsKK+S4reWhlyA8IG5ha2FudXJpXCA7Civpmarpo58gPCBiYWlzaG9rdVwgOwor56CU56Oo5p2QIDwga2VubWF6YWlcIDsKK+S6jOW5tOiNiSA8IG5pbmVuc291XCA7CivpoIzmmKUgPCBzaG91c2h1blwgOwor576p5YuH6LuNIDwgZ2l5dXVndW5cIDsKK+aWh+iqnuaWhyA8IGJ1bmdvYnVuXCA7CivoqpXnlJ/ml6UgPCB0YW5qb3ViaVwgOwor5Lyv5YmM6KW/54i+IDwgYnVyYWppcnVcIDsKK+S4h+WxiyA8IHlvcm96dXlhXCA7CivkuK3lnqMgPCBuYWthZ2FraVwgOwor6YeR5pmC6KiIIDwga2luZG9rZWlcIDsKK+miqOWKmyA8IGZ1dXJ5b2t1XCA7CivnqbrmtJ7ljJYgPCBrdXVkb3VrYVwgOwor57Oe5ZGz5ZmMIDwga3Vzb21pc29cIDsKK+S5seS8kCA8IHJhbmJhdHN1XCA7Civml6XmnKzkurogPCBuaWhvbmppblwgOwor54yr5bGeIDwgbmVrb3pva3VcIDsKK+aAp+mBiuaIryA8IHNlaXl1dWdpXCA7CivkuK3lm70gPCBjaHV1Z29rdVwgOwor5qyh54K56ICFIDwgaml0ZW5zaGFcIDsKK+mgg+aXpSA8IGtlaWppdHN1XCA7CivpmLLohZDliaQgPCBib3VmdXphaVwgOwor6Kmz6Ki7IDwgc2hvdWNodXVcIDsKK+aXpeacrOS4rSA8IG5paG9uanV1XCA7Civpm5Hoq4cgPCB6YXRzdWRhblwgOwor6IWV55u45pKyIDwgdWRlenVtb3VcIDsKK+WcsOWfn+W3riA8IGNoaWlraXNhXCA7Civkv53orbfps6UgPCBob2dvY2hvdVwgOwor5pel55u0IDwgbml0Y2hva3VcIDsKK+e3kemFkiA8IHJ5b2t1c2h1XCA7CivkuIDlrqQgPCBpc3NoaXRzdVwgOwor5aSq6IW/IDwgZnV0b21vbW9cIDsKK+Wwj+aJi+WFiCA8IGtvdGVzYWtpXCA7CivnhKHpmY3msLQgPCBtdWtvdXN1aVwgOwor5pat57W2IDwgZGFuemV0c3VcIDsKK+S4gOWtkCA8IGhpdG9yaWdvXCA7Civlp6vmp5ggPCBoaW1lc2FtYVwgOwor6by75ZG85ZC4IDwgYmlrb2t5dXVcIDsKK+mbu+iThCA8IGRlbmNoaWt1XCA7Civph43pqI7lhbUgPCBqdXVraWhlaVwgOwor5Y+k5Luj5Y+yIDwga29kYWlzaGlcIDsKK+acq+S7oyA8IG1hdHN1ZGFpXCA7CivoqIDpnIogPCBrb3RvZGFtYVwgOwor5Lih5Zu9IDwgcnlvdWdva3VcIDsKK+S4u+WPliA8IHNodXVkb3JpXCA7Civpm6jom5kgPCBhbWFnYWVydVwgOwor54af6KqtIDwganVrdWRva3VcIDsKK+eOieS9kyA8IGd5b2t1dGFpXCA7CivniafniZsgPCBib2t1Z3l1dVwgOwor5aG+6ZW3IDwganVrdWNob3VcIDsKK+eGseihgCA8IG5la2tldHN1XCA7Civog73oiJ7lj7AgPCBub3VidXRhaVwgOwor546J5LujIDwgZ3lva3VkYWlcIDsKK+mbhuiouyA8IHNodXVjaHV1XCA7Civnq7bppqzppqwgPCBrZWliYXVtYVwgOwor6ZqU6YCxIDwga2FrdXNodXVcIDsKK+WFjeenn+WcsCA8IG1lbnNvY2hpXCA7Civml6XnlKggPCBuaWNoaXlvdVwgOwor5pu45Y+WIDwga2FraXRvcmlcIDsKK+S6jOasoeeahCA8IG5paml0ZWtpXCA7CivmvJTlpY/ogIUgPCBlbnNvdXNoYVwgOwor5Li75YqbIDwgc2h1cnlva3VcIDsKK+WFt+S9k+aApyA8IGd1dGFpc2VpXCA7CivmnIjlhoUgPCBnZXRzdW5haVwgOwor5Lme5LiQIDwga290c3VnYWlcIDsKK+S4g+WklSA8IHRhbmFiYXRhXCA7CivorKHniakgPCB1dGFpbW9ub1wgOwor6aC75bC/IDwgaGluJydueW91XCA7CivlpKnnvbAgPCB0ZW5iYXRzdVwgOwor5LiA562J6LuKIDwgaXR0b3VzaGFcIDsKK+mdoueZvSA8IG9tb3NoaXJvXCA7Civmm7LlkI0gPCBreW9rdW1laVwgOwor57eP6L2EIDwgc291a2F0c3VcIDsKK+S4reWPpCA8IGNodXVidXJ1XCA7CivkuI3lk4HooYwgPCBmdWhpbmtvdVwgOwor54u85bqnIDwgb29rYW1pemFcIDsKK+iovOi3oSA8IHNob3VzZWtpXCA7Civnibnnp5HlhbUgPCB0b2trYWhlaVwgOwor6ISC6IKq5rK5IDwgc2hpYm91eXVcIDsKK+W3puWkp+iHoyA8IHNhZGFpamluXCA7Civph5HlrZfloZQgPCBraW5qaXRvdVwgOwor5aWu55m6IDwgZnVucGF0c3VcIDsKK+mrmOmHjuWxsSA8IGtvdXlhc2FuXCA7CivlpKfnhorluqcgPCBvb2d1bWF6YVwgOwor5piO5ruFIDwgbWVpbWV0c3VcIDsKK+mZuOmHoyA8IG9rYWR6dXJpXCA7CivorIDnlaUgPCBib3VyeWFrdVwgOwor5LiA5aGpIDwgaGl0b3NoaW9cIDsKK+miqOS4iiA8IGthemFrYW1pXCA7CivlhpLpmbrlrrYgPCBib3VrZW5rYVwgOwor5aSW6IKhIDwgc290b21hdGFcIDsKK+Whqea/g+W6piA8IGVuJydub3Vkb1wgOwor57W26aOfIDwgemVzc2hva3VcIDsKK+abuOWInSA8IGtha2l6b21lXCA7Civml6XkuYPkuLggPCBoaW5vbWFydVwgOwor6Kqm57+SIDwgc2hvdXNodXVcIDsKK+eIhueskSA8IGJha3VzaG91XCA7Civnv5LkvZwgPCBzaHV1c2FrdVwgOwor54m55rOoIDwgdG9rdWNodXVcIDsKK+aapuWtpiA8IHJla2lnYWt1XCA7CivkuLjlgrcgPCB0YW1ha2l6dVwgOwor5L2V5Yem6L+EIDwgZG9rb21hZGVcIDsKK+i/keS8vOWApCA8IGtpbmppY2hpXCA7CivpgI/no4HmgKcgPCB0b3VqaXNlaVwgOwor5aWJ56WdIDwgaG91c2h1a3VcIDsKK+S/neitt+mgmCA8IGhvZ29yeW91XCA7CivkuK3lhbEgPCBjaHV1a3lvdVwgOwor54m55rS+5ZOhIDwgdG9rdWhhaW5cIDsKK+S4puWIlyA8IGhlaXJldHN1XCA7CivkuYXkuYUgPCBoaXNhYmlzYVwgOwor5ZS+5ray6IW6IDwgZGFla2lzZW5cIDsKK+e3keixhiA8IHJ5b2t1dG91XCA7Civlpb3niakgPCBrb3VidXRzdVwgOwor5LiL6Zmi6K2w5ZOhIDwga2FpbmdpaW5cIDsKK+W6reacqOaIuCA8IG5pd2FraWRvXCA7CivpnZLnlbMgPCBhb2RhdGFtaVwgOwor6Zub6I+KIDwgaGluYWdpa3VcIDsKK+aZguaZgiA8IHRva2lkb2tpXCA7Civlvozmj7TogIUgPCBrb3VlbnNoYVwgOwor6buE6YmE6YmxIDwgb3V0ZWtrb3VcIDsKK+WkseeskSA8IHNoaXNzaG91XCA7CivmlZfoibIgPCBoYWlzaG9rdVwgOwor6Zuq6IaaIDwgeXVraWhhZGFcIDsKK+aal+WupCA8IGFuc2hpdHN1XCA7Civlj6Tku6PkurogPCBrb2RhaWppblwgOwor5LqL5YuZ5pyNIDwgamltdWZ1a3VcIDsKK+Wwj+m6pueyiSA8IGtvbXVnaWtvXCA7CivkuIvlkbMgPCBzaGl0YWFqaVwgOwor5LiN5rq25oCnIDwgZnV5b3VzZWlcIDsKK+e1kOmrqiA8IGtlcHBhdHN1XCA7CivpoafllY/lm6MgPCBrb21vbmRhblwgOwor5pi85pmCIDwgaGlydWRva2lcIDsKK+S/neacieiAhSA8IGhveXV1c2hhXCA7Civpgb/nl4XpmaIgPCBoaWJ5b3VpblwgOwor5YmN5pmv5rCXIDwgbWFlZ2Vpa2lcIDsKK+S4uOS6iyA8IG1hcnVnb3RvXCA7Civpm7vmsJfmpIXlrZAgPCBkZW5raWlzdVwgOwor5aSW5Lqk5ZOhIDwgZ2Fpa291aW5cIDsKK+aWh+eusSA8IGZ1bWliYWtvXCA7CivlpKfnrZIgPCBvb2R6dXRzdVwgOwor5Li45Li4IDwgbWFydW1hcnVcIDsKK+mYsumbqiA8IGJvdXNldHN1XCA7CivpioXnm7jloLQgPCBkb3Vzb3ViYVwgOwor6Kiz6KqtIDwgeWFrdWRva3VcIDsKK+S4g+WRsyA8IHNoaWNoaW1pXCA7CivmlrnnlaUgPCBob3VyeWFrdVwgOwor5Li45LiAIDwgbWFydWljaGlcIDsKK+S4reS9jiA8IG5ha2FiaWt1XCA7Civlp4vmnKsgPCBzaGltYXRzdVwgOwor5aSn56ulIDwgb293YXJhd2FcIDsKK+WCvuaWnOW6piA8IGtlaXNoYWRvXCA7Civpq5jluqboqIggPCBrb3Vkb2tlaVwgOwor6Z2S546JIDwgc2VpZ3lva3VcIDsKK+i/keacquadpSA8IGtpbm1pcmFpXCA7CivmjZXpr6joiLkgPCBob2dlaXNlblwgOwor5aSx56WeIDwgc2hpc3NoaW5cIDsKK+mbhuiQvSA8IHNodXVyYWt1XCA7CivpnZnniakgPCBzZWlidXRzdVwgOwor5Yqg5a6z6ICFIDwga2FnYWlzaGFcIDsKK+aVsOePoOeOiSA8IGp1enVkYW1hXCA7CivkuIDlkJEgPCBoaXRhc3VyYVwgOwor54us5a2mIDwgZG9rdWdha3VcIDsKK+aYqOacnSA8IHNha3VjaG91XCA7CivkuIDlj6IgPCBoaXRvbXVyYVwgOwor5puy5LqLIDwga3VzZWdvdG9cIDsKK+aJi+e+veWFiCA8IHRlYmFzYWtpXCA7Civoo5zliqnnv7wgPCBob2pveW9rdVwgOwor5Lit5LitIDwgbmFrYW5ha2FcIDsKK+aFiOaCsuW/gyA8IGppaGlzaGluXCA7CivpoZ7liKUgPCBydWliZXRzdVwgOwor5aSW6LKo5YK1IDwgZ2Fpa2FzYWlcIDsKK+e4rue3rCA8IGNoaXJpbWVuXCA7Civmg4XloLHljJYgPCBqb3Vob3VrYVwgOwor5pio5pqBIDwgc2FrdWd5b3VcIDsKK+e3j+S6iOeulyA8IHNvdXlvc2FuXCA7CivnnJ/lpJzkuK0gPCBtYXlvbmFrYVwgOwor57WQ6aGYIDwga2VjaGlnYW5cIDsKK+aYqOaYpSA8IHNha3VzaHVuXCA7CivkuIfliKUgPCBiYW5iZXRzdVwgOwor6aCB5bKpIDwga2V0c3VnYW5cIDsKK+S4puS4piA8IG5hbWluYW1pXCA7CivnuKbnuJ4gPCB0YXRlamltYVwgOwor6KaX6a2UIDwgbm96b2tpbWFcIDsKK+Wil+iorSA8IHpvdXNldHN1XCA7CivkuIDlibIgPCBpY2hpd2FyaVwgOwor5aSV56uLIDwgeXV1ZGFjaGlcIDsKK+Whqei+myA8IHNoaW9rYXJhXCA7Civml6fmtYEgPCBreXV1cnl1dVwgOwor5LiL5oSP6K2YIDwga2Fpc2hpa2lcIDsKK+S7o+eoveWPpCA8IGRhaWdlaWtvXCA7CivmsLjkvY/mqKkgPCBlaWp1dWtlblwgOwor5L+d5pyJ57GzIDwgaG95dXVtYWlcIDsKK+iHquWbveiqniA8IGppa29rdWdvXCA7Civlj43lr77oqp4gPCBoYW50YWlnb1wgOwor5aSJ55Ww5L2TIDwgaGVuJydpdGFpXCA7Civntbnph50gPCBraW51YmFyaVwgOwor542E5LitIDwgZ29rdWNodXVcIDsKK+WIqeW3seeahCA8IHJpa290ZWtpXCA7CivkuIDlhYggPCBoaXRvbWF6dVwgOwor5bu65YW35bGLIDwgdGF0ZWd1eWFcIDsKK+aYh+agvCA8IHNob3VrYWt1XCA7CivpmLLlr5LlhbcgPCBib3VrYW5ndVwgOwor5aWz5a2m5qChIDwgam9nYWtrb3VcIDsKK+S/neWuiOaApyA8IGhvc2h1c2VpXCA7Civnua3njokgPCBtYXl1ZGFtYVwgOwor5piO5pyIIDwgbWVpZ2V0c3VcIDsKK+mereaSuyA8IGJlbnRhdHN1XCA7Civpm6jnspIgPCBhbWV0c3VidVwgOwor5aW95pmv5rCXIDwga291a2Vpa2lcIDsKK+W5s+WSjOe2reaMgSA8IGhlaXdhaWppXCA7CivkuqTku5jogIUgPCBrb3VmdXNoYVwgOwor5Y+v5aSJ5pWwIDwga2FoZW5zdXVcIDsKK+iKseaWh+WtlyA8IGhhbmFtb2ppXCA7CivmmrTlipsgPCBib3VyeW9rdVwgOwor6Z2i5Lya5pelIDwgbWVua2FpYmlcIDsKK+ims+mWsiA8IGthbicnZXRzdVwgOwor54WZ6I2J5bGLIDwgdGFiYWtveWFcIDsKK+e3keiXuyA8IHJ5b2t1c291XCA7Civlo67ntbYgPCBzb3V6ZXRzdVwgOwor6Zuo5qih5qeYIDwgYW1lbW95b3VcIDsKK+aVmeexjSA8IGt5b3VzZWtpXCA7CivmmI7mmKUgPCBteW91c2h1blwgOwor5LiH5LujIDwgeW9yb3p1eW9cIDsKK+aUr+iEiCA8IHNoaW15YWt1XCA7Civmj7rnsYPmnJ8gPCB5b3VyYW5raVwgOwor56qB56C05Y+jIDwgdG9wcGFrb3VcIDsKK+eLrOWbvSA8IGRva3Vrb2t1XCA7Civov5Hku6PljJYgPCBraW5kYWlrYVwgOwor54K554Gr57O7IDwgdGVua2FrZWlcIDsKK+S6jOW5tOeUnyA8IG5pbmVuc2VpXCA7CivmmJ/msJfkvZMgPCBzZWlraXRhaVwgOwor5LiN562J5Y+3IDwgZnVkb3Vnb3VcIDsKK+acieeCuui7ouWkiSA8IHVpdGVucGVuXCA7CivkupTovrrlvaIgPCBnb2hlbmtlaVwgOwor5LqM6Lyq6LuKIDwgbmlyaW5zaGFcIDsKK+S4ieS4iyA8IHNhbnNoaXRhXCA7CivlpKfnlaUgPCB0YWlyeWFrdVwgOwor55So566q56ylIDwgeW91ZGFuc3VcIDsKK+Wls+awlyA8IG9uJyduYWtrZVwgOwor5aGp6LGGIDwgc2hpb21hbWVcIDsKK+WGt+iUteW6qyA8IHJlaXpvdWtvXCA7CivkuIfkuIAgPCBtYW4nJ2ljaGlcIDsKK+mbquepuiA8IHl1a2l6b3JhXCA7CivorIDmrrogPCBib3VzYXRzdVwgOwor57WE6ZW3IDwga3VtaWNob3VcIDsKK+iogOiqrCA8IGdlbnNldHN1XCA7CivkuI3miYDlrZggPCBmdXNob3pvblwgOwor6KeS6YCaIDwga2FrdXRzdXVcIDsKK+aKleWFieWZqCA8IHRvdWtvdWtpXCA7CivmtZzojITlrZAgPCBoYW1hbmFzdVwgOwor5Y+k5pu45bGVIDwga29zaG90ZW5cIDsKK+S6jOWNgeS7oyA8IG5panV1ZGFpXCA7CivkuIDkuIAgPCBpdHN1aXRzdVwgOwor57Wx6L2EIDwgdG91a2F0c3VcIDsKK+isoeabsiA8IHlvdWt5b2t1XCA7CivntIXpsZIgPCBiZW5pbWFzdVwgOwor5biC6KGX5ZuzIDwgc2hpZ2FpenVcIDsKK+eLrOWUsSA8IGRva3VzaG91XCA7CivmqLnmnp3nirYgPCBqdXNoaWpvdVwgOwor57eR6Iy2IDwgcnlva3VjaGFcIDsKK+W6j+ebpOaIpiA8IGpvYmFuc2VuXCA7CivmmLzluK0gPCBoaXJ1c2VraVwgOwor54Gr5oiQ5bKpIDwga2FzZWlnYW5cIDsKK+e1hOWQiOWToSA8IGt1bWlhaWluXCA7CivkupzohLHoh7wgPCBhZGFra3l1dVwgOwor57SF6a6tIDwgYmVuaXpha2VcIDsKK+e0jemqqCA8IG5vdWtvdHN1XCA7CivprLHph5HoibIgPCB1a29uJydpcm9cIDsKK+aXp+agqiA8IGt5dXVrYWJ1XCA7Civlp6vlrq4gPCBoaW1lbWl5YVwgOwor5aKc6JC9IDwgdHN1aXJha3VcIDsKK+msvOatpuiAhSA8IG9uaW11c2hhXCA7CivmlpzmipXlvbEgPCBzaGF0b3VlaVwgOwor5pWw55m+IDwgc3V1aHlha3VcIDsKK+mbhue0hCA8IHNodXV5YWt1XCA7CivoqpjnmbogPCB5dXVoYXRzdVwgOwor5ruR56m65qmfIDwga2Fra3V1a2lcIDsKK+eJh+aglyA8IGthdGFrdXJpXCA7Civml6zmnIggPCBqdW5nZXRzdVwgOwor6Lu96aiO5YW1IDwga2Vpa2loZWlcIDsKK+S6jOWFg+irliA8IG5pZ2Vucm9uXCA7CivmiYvmlpnnkIYgPCB0ZXJ5b3VyaVwgOwor5Y2Y5Yip5rOVIDwgdGFucmlob3VcIDsKK+W+oeelnui8vyA8IG9taWtvc2hpXCA7CivlhYjpi63ljJYgPCBzZW4nJ2Vpa2FcIDsKK+mbu+eVpSA8IGRlbnJ5YWt1XCA7CivmkpLluIPliaQgPCBzYXBwdXphaVwgOwor5paH54mpIDwgYnVuYnV0c3VcIDsKK+WRieacjeWxiyA8IGdvZnVrdXlhXCA7CivmlLnnr4kgPCBrYWljaGlrdVwgOwor6Kmm562LIDwgdGFtZXN1amlcIDsKK+ippuethiA8IHNoaWhpdHN1XCA7Civml6fmmqYgPCBreXV1cmVraVwgOwor5pes5pelIDwganVuaml0c3VcIDsKK+mbkeeojiA8IHphdHN1emVpXCA7Civoqq3niakgPCB5b21pbW9ub1wgOwor5rq26Kej54KJIDwgeW91a2Fpcm9cIDsKK+mbquebsiA8IHNldHN1bW91XCA7Civlj6/lpInmgKcgPCBrYWhlbnNlaVwgOwor6K2m5a+fIDwga2Vpc2F0c3VcIDsKK+W5tOm9ouW3riA8IG5lbnJlaXNhXCA7Civop6PoqqwgPCBrYWlzZXRzdVwgOwor57ep57epIDwgeXVydXl1cnVcIDsKK+aXqeaXqSA8IGhheWFiYXlhXCA7Civop5Losp0gPCB0c3Vub2dhaVwgOwor5YiA5Zyt5a62IDwgdG91a2Vpa2FcIDsKK+aRgumjnyA8IHNlc3Nob2t1XCA7Civopb/pmaMgPCBuaXNoaWppblwgOwor6bOz5LuZ6IqxIDwgaG91c2Vua2FcIDsKK+inpuinkiA8IHNob2trYWt1XCA7Civlo4HntJkgPCBrYWJlZ2FtaVwgOwor5bCO5rOi566hIDwgZG91aGFrYW5cIDsKK+WNmOavlOS+iyA8IHRhbnBpcmVpXCA7CivmjZXpr6jnoLIgPCBob2dlaWhvdVwgOwor57SQ6Z2pIDwgaGltb2thd2FcIDsKK+ebtOi2s+iiiyA8IGppa2F0YWJpXCA7Civml6fmlZkgPCBreXV1a3lvdVwgOwor6ZuG56mNIDwgc2h1dXNla2lcIDsKK+Wfi+mqqCA8IG1haWtvdHN1XCA7Civml5fmnKwgPCBoYXRhbW90b1wgOwor5aSW54mpIDwgZ2FpYnV0c3VcIDsKK+aCquWkqumDjiA8IGFrdXRhcm91XCA7CivmnInnkIbmlbAgPCB5dXVyaXN1dVwgOwor6YOo5YiG5ZOBIDwgYnVidW5oaW5cIDsKK+WPr+eHg+aApyA8IGthbmVuc2VpXCA7CivkuI3lloTmhJ8gPCBmdXplbmthblwgOwor57Sa6ZW3IDwga3l1dWNob3VcIDsKK+aWrOauuiA8IHphbnNhdHN1XCA7CivmtJfpnaLmiYAgPCBzZW5tZW5qb1wgOwor54mp5oOFIDwgYnV0c3Vqb3VcIDsKK+mbhuelqCA8IHNodXVoeW91XCA7Civpm6jnlLcgPCBhbWVvdG9rb1wgOwor54iG5rKIIDwgYmFrdWNoaW5cIDsKK+WknOeDjyA8IHlvZ2FyYXN1XCA7CivpgIHmsrnnrqEgPCBzb3V5dWthblwgOwor5qC85a2Q5oi4IDwga291c2hpZG9cIDsKK+WFt+S9k+S+iyA8IGd1dGFpcmVpXCA7Civlp6vlnqMgPCBoaW1lZ2FraVwgOwor5pSv5oyB5p2tIDwgc2hpamlrb3VcIDsKK+eGiuesuSA8IGt1bWF6YXNhXCA7CivnhrHnmbogPCBuZXBwYXRzdVwgOwor54Sh6ZmQ5aSnIDwgbXVnZW5kYWlcIDsKK+mghuWIlyA8IGp1bnJldHN1XCA7CivloqjnuakgPCBzdW1pbmF3YVwgOwor57K+57Gz5omAIDwgc2VpbWFpam9cIDsKK+ismeaKkSA8IGtlbicneW9rdVwgOwor5pKu6KaBIDwgc2F0c3V5b3VcIDsKK+WkieeJqSA8IGhlbmJ1dHN1XCA7CivntbHoqp7oq5YgPCB0b3Vnb3JvblwgOwor5pyq6ZaL5aK+IDwgbWlrYWlrb25cIDsKK+aYpeWutSA8IHNodW5zaG91XCA7CivkvZzmpa3osrsgPCBzYWd5b3VoaVwgOwor6ZeH6ZuyIDwgeWFtaWt1bW9cIDsKK+Wkp+mYquW6nCA8IG9vc2FrYWZ1XCA7CivnjIrnvo7muJMgPCBnZWliaWtlaVwgOwor5omT5pKD546LIDwgZGFnZWtpb3VcIDsKK+e2muiQvSA8IHpva3VyYWt1XCA7Civpm6rnjokgPCB5dWtpZGFtYVwgOwor5pGY6YyyIDwgdGVraXJva3VcIDsKK+W6g+iRieaouSA8IGtvdXlvdWp1XCA7Civnt4rnuK4gPCBraW5zaHVrdVwgOwor6Kmm552AIDwgc2hpY2hha3VcIDsKK+iNieWJteacnyA8IHNvdXNvdWtpXCA7Civkvo3ooZvplbcgPCBqaWVpY2hvdVwgOwor5LqM6YCy5pyoIDwgbmlzaGluZ2lcIDsKK+Wklua/oCA8IHNvdG9ib3JpXCA7Civlpr7lroUgPCBzaG91dGFrdVwgOwor6aGV5Zyo5YyWIDwga2VuemFpa2FcIDsKK+WGjeippuWQiCA8IHNhaXNoaWFpXCA7CivkvJ3pn7PlmaggPCBkZW4nJ29ua2lcIDsKK+e+qeWLmeeahCA8IGdpbXV0ZWtpXCA7CivovLjljbXnrqEgPCB5dXJhbmthblwgOwor5L2O5Yip6YeRIDwgdGVpcmlraW5cIDsKK+aIpuWIqeWTgSA8IHNlbnJpaGluXCA7Civmlofoqp7kvZMgPCBidW5nb3RhaVwgOwor5Lm+5oCn5rK5IDwga2Fuc2VpeXVcIDsKK+inkuiiliA8IGtha3Vzb2RlXCA7Civmk4LnsonmnKggPCBzdXJpa29naVwgOwor6ZeH6ZeHIDwgeWFtaXlhbWlcIDsKK+aMh+WwjuWToSA8IHNoaWRvdWluXCA7CivmnKrplovlnLAgPCBtaWthaWNoaVwgOwor56eY5pu45a6YIDwgaGlzaG9rYW5cIDsKK+Wkmua5vyA8IHRhc2hpdHN1XCA7CivpnaLmjqUgPCBtZW5zZXRzdVwgOwor6ZuR55SoIDwgemF0c3V5b3VcIDsKK+aWsOagqiA8IHNoaW5rYWJ1XCA7CivmkbrotrMgPCBzdXJpYXNoaVwgOwor5q2m5a6254mpIDwgYnVrZW1vbm9cIDsKK+aVtOeQhuWIuCA8IHNlaXJpa2VuXCA7CivogrLpm5vlmaggPCBpa3VzdXVraVwgOwor5Zyn5pC+5qmfIDwgYXNzYWt1a2lcIDsKK+aXgeaXgSA8IGthdGFnYXRhXCA7CivmlrDmn4QgPCBzaGluZ2FyYVwgOwor5pS/55WlIDwgc2Vpcnlha3VcIDsKK+imi+mAmiA8IG1pdG9vc2hpXCA7Civpm6PniakgPCBuYW5idXRzdVwgOwor5LqM5YiG5rOVIDwgbmlidW5ob3VcIDsKK+a3t+aIkOiqniA8IGtvbnNlaWdvXCA7Civnj4jnkLLoi5EgPCBrb3VoaWllblwgOwor5LqM6YOo5L2cIDwgbmlidXNha3VcIDsKK+e3j+S8muWxiyA8IHNvdWthaXlhXCA7Civopovov5QgPCBtaWthZXNoaVwgOwor5LuV5omL5oimIDwgc2hpdGVzZW5cIDsKK+Wnq+WQmyA8IGhpbWVnaW1pXCA7CivmlLvnlaUgPCBrb3VyeWFrdVwgOwor57WQ6KuWIDwga2V0c3Vyb25cIDsKK+Wlj+absiA8IHNvdWt5b2t1XCA7Civlpb3lpb3niLogPCBrb3Vrb3V5YVwgOwor56iO5YuZ572yIDwgemVpbXVzaG9cIDsKK+iyqeWjsuapnyA8IGhhbmJhaWtpXCA7CivpnL3mnIggPCBzZWlnZXRzdVwgOwor56m65rCX5a2UIDwga3V1a2lrb3VcIDsKK+eWsuWKtOaEnyA8IGhpcm91a2FuXCA7CivmlL7msLTot68gPCBob3VzdWlyb1wgOwor5paw5pqmIDwgc2hpbnJla2lcIDsKK+eEvOiCiSA8IHlha2luaWt1XCA7CivntZDoqIAgPCBrZXRzdWdlblwgOwor6Ki856WoIDwgc2hvdWh5b3VcIDsKK+maj+ethiA8IHp1aWhpdHN1XCA7CivlpJbms5UgPCBzb3Rvbm9yaVwgOwor5paw5pilIDwgc2hpbnNodW5cIDsKK+S8muitsOaJgCA8IGthaWdpc2hvXCA7CivpmbjntpogPCByaWt1em9rdVwgOwor54ax54axIDwgYXRzdWF0c3VcIDsKK+Wil+eviSA8IHpvdWNoaWt1XCA7CivlvaLlrrnoqp4gPCBrZWl5b3Vnb1wgOwor5LiA5Zue5oimIDwgaWtrYWlzZW5cIDsKK+e4rua4myA8IHNodWt1Z2VuXCA7CivnuYHmrpYgPCBoYW5zaG9rdVwgOwor5aSp5qW1IDwgdGVua3lva3VcIDsKK+eWkeWVj+ipniA8IGdpbW9uc2hpXCA7Civml6fluZUgPCBreXV1YmFrdVwgOwor57W56I6iIDwga2ludXNheWFcIDsKK+iLpuWKtOS6uiA8IGt1cm91bmluXCA7CivlpLHmoLwgPCBzaGlra2FrdVwgOwor6IGW54Gr5Y+wIDwgc2Vpa2FkYWlcIDsKK+aXpeW4uCA8IG5pY2hpam91XCA7CivmsLTkvY3mqJkgPCBzdWlpaHlvdVwgOwor5oKy6Kaz6KuWIDwgaGlrYW5yb25cIDsKK+WmhOiqnuaIkiA8IG1vdWdva2FpXCA7Civpm5HnhLYgPCB6YXRzdXplblwgOwor5rC45bCP5L2cIDwgZWlrb3Nha3VcIDsKK+eCree0oOmLvCA8IHRhbnNva291XCA7CivnuYrntq3mnZ8gPCBzZW5pc29rdVwgOwor6Kej5pS+5Yy6IDwga2FpaG91a3VcIDsKK+S/neWuiOWFmiA8IGhvc2h1dG91XCA7CivmlL7nhrEgPCBob3VuZXRzdVwgOwor6KqY5q66IDwgeXV1c2F0c3VcIDsKK+e0oOizqiA8IHNvc2hpdHN1XCA7CivntIXkuIDngrkgPCBrb3VpdHRlblwgOwor5Z6C6auqIDwgdGFyZWdhbWlcIDsKK+mbgeeIqiA8IGdhbmR6dW1lXCA7CivnuKbms6IgPCB0YXRlbmFtaVwgOwor6Ki655mCIDwgc2hpbnJ5b3VcIDsKK+e2mue2miA8IHpva3V6b2t1XCA7CivniIbmkoMgPCBiYWt1Z2VraVwgOwor5a625bqt55SoIDwga2F0ZWl5b3VcIDsKK+imi+itmCA8IGtlbnNoaWtpXCA7CivomZrnqbrolLUgPCBrb2t1dXpvdVwgOwor6Kqw5p+QIDwgZGFyZXNvcmVcIDsKK+aXi+W+iyA8IHNlbnJpdHN1XCA7CivkvJroqIjoqrIgPCBrYWlrZWlrYVwgOwor54ax5rqQIDwgbmV0c3VnZW5cIDsKK+WLpOWLmeiAhSA8IGtpbm11c2hhXCA7CivlpJzmoZwgPCB5b3pha3VyYVwgOwor5paH5pyrIDwgYnVubWF0c3VcIDsKK+i3nembouaEnyA8IGt5b3Jpa2FuXCA7Civml6flroUgPCBreXV1dGFrdVwgOwor6Kq/5pWZIDwgY2hvdWt5b3VcIDsKK+aZguWBtiA8IHRva2l0YW1hXCA7CivlpoLlrp8gPCBueW9qaXRzdVwgOwor5paO5pelIDwgc2Fpaml0c3VcIDsKK+eGsea2mSA8IG5ldHN1cnVpXCA7Civpm7vmpbUgPCBkZW5reW9rdVwgOwor5aG1566xIDwgZ29taWJha29cIDsKK+aVj+a0uyA8IGJpbmthdHN1XCA7Civplovpl6IgPCBrYWlieWFrdVwgOwor54Wl55m6IDwga2FucGF0c3VcIDsKK+eci+itt+azlSA8IGthbmdvaG91XCA7CivlpKfml6UgPCBkYWluaWNoaVwgOwor5YKs5LqL5aC0IDwgc2Fpamlqb3VcIDsKK+msvOWFtemaiiA8IGtpaGVpdGFpXCA7CivlpbPlrZDlpKcgPCBqb3NoaWRhaVwgOwor6Z+T5Lq6IDwga2FyYWJpdG9cIDsKK+WkluaeoCA8IHNvdG93YWt1XCA7CivllK/miJHoq5YgPCB5dWlnYXJvblwgOwor5pyq6KO95ZOBIDwgbWlzZWloaW5cIDsKK+aVt+advyA8IHNoaWtpaXRhXCA7CivoqqzmmI4gPCBzZXRzdW1laVwgOwor54Sh57Wx5Yi2IDwgbXV0b3VzZWlcIDsKK+e4puaoqiA8IHRhdGV5b2tvXCA7CivopoHoqKMgPCB5b3VrZXRzdVwgOwor5aKX55m6IDwgem91aGF0c3VcIDsKK+mAoOiIueaJgCA8IHpvdXNlbmpvXCA7CivouqvmlK/luqYgPCBtaWppdGFrdVwgOwor5piO5ZOyIDwgbWVpdGV0c3VcIDsKK+WknOaYvCA8IHlvcnVoaXJ1XCA7Civph5HmnKzkvY0gPCBraW5ob24nJ2lcIDsKK+WkleaciCA8IHl1dWR6dWtpXCA7CivlpJrpnaLmgKcgPCB0YW1lbnNlaVwgOwor5aSn5Z6L5qmfIDwgb29nYXRha2lcIDsKK+aWueW8jyA8IGhvdXNoaWtpXCA7CivmnKrplovkurogPCBtaWthaWppblwgOwor6ZaA6ZalIDwgbW9uYmF0c3VcIDsKK+iXgeWxi+aguSA8IHdhcmF5YW5lXCA7CivmnIjkuJbnlYwgPCBnZXNzZWthaVwgOwor5b6X5oSP6aGUIDwgdG9rdWlnYW9cIDsKK+aJi+mWk+mamSA8IHRlbWFoaW1hXCA7CivmlL/msrvniq8gPCBzZWlqaWhhblwgOwor5pil5YWIIDwgaGFydXNha2lcIDsKK+Wni+WApCA8IGhhamltZW5lXCA7CivmtJfpnaLlmaggPCBzZW5tZW5raVwgOwor5paw5b2iIDwgc2hpbmdhdGFcIDsKK+S6uuaWh+WtlyA8IGhpdG9tb2ppXCA7CivmqKHpgKDlk4EgPCBtb3pvdWhpblwgOwor6Zm455u4IDwgcmlrdXNob3VcIDsKK+WRvOWQuOWZqCA8IGtva3l1dWtpXCA7Civntbnntr8gPCBraW51d2F0YVwgOwor5Zyf5Zyw6ZGRIDwgdG9jaGlrYW5cIDsKK+eJhuWjgSA8IHNob3VoZWtpXCA7Civlo4rmu4UgPCBrYWltZXRzdVwgOwor6Zqb54mpIDwga2l3YW1vbm9cIDsKK+awl+mAgeeuoSA8IGtpc291a2FuXCA7CivkvY7ph5HliKkgPCB0ZWlraW5yaVwgOwor5aSt5oqYIDwgeW91c2V0c3VcIDsKK+iLseWwj+aWh+WtlyA8IGVpa29tb2ppXCA7CivmlbXmlrkgPCB0ZWtpZ2F0YVwgOwor6ZW36ZW3IDwgbmFnYW5hZ2FcIDsKK+W4veWtkOWxiyA8IGJvdXNoaXlhXCA7CivlvqHmiJDlip8gPCBnb3NlaWtvdVwgOwor54+K55Ga5rW3IDwgc2FuZ29rYWlcIDsKK+e0hOirviA8IHlha3VkYWt1XCA7CivmlbDml6UgPCBzdXVqaXRzdVwgOwor5puz5YWJ5by+IDwgZWlrb3VkYW5cIDsKK+WNg+mHjOecvCA8IHNlbnJpZ2FuXCA7CivpmLLnuK4gPCBib3VzaHVrdVwgOwor6JC95LiL5YKYIDwgcmFra2FzYW5cIDsKK+aTgeeriyA8IHlvdXJpdHN1XCA7CivmuKHoiKrogIUgPCB0b2tvdXNoYVwgOwor5pWw5pWwIDwga2F6dWthenVcIDsKK+Wkp+aJgCA8IG9vZG9rb3JvXCA7CivlnLDpvKAgPCBqaW5lenVtaVwgOwor5LiL5omL5Lq6IDwgZ2VzaHVuaW5cIDsKK+WHpuWls+aelyA8IHNob2pvcmluXCA7CivntJTooYAgPCBqdW5rZXRzdVwgOwor5LqL5qWt6YOoIDwgamlneW91YnVcIDsKK+WvjOWxseaIvyA8IGZ1emFuYm91XCA7Civnsonpo74gPCBmdW5zaG9rdVwgOwor57im5pu4IDwgdGF0ZWdha2lcIDsKK+aTpueWtSA8IHN1cmlraXp1XCA7CivloZrnqbQgPCB0c3VrYWFuYVwgOwor5o6l5b6F6LK7IDwgc2V0dGFpaGlcIDsKK+e5iue2reaApyA8IHNlbicnaXNlaVwgOwor5omL6Kmx5rOVIDwgc2h1d2Fob3VcIDsKK+S9leWHpuWFtuWHpiA8IGRva29zb2tvXCA7Civkv53ppIrlnLAgPCBob3lvdWNoaVwgOwor54Wn54S8IDwgdGVyaXlha2lcIDsKK+WIqeW3seW/gyA8IHJpa29zaGluXCA7CivngrnngavmoJMgPCB0ZW5rYXNlblwgOwor57W2562GIDwgemVwcGl0c3VcIDsKK+mbo+absiA8IG5hbmt5b2t1XCA7CivoqIjnlaUgPCBrZWlyeWFrdVwgOwor6Y6U6Ymx54KJIDwgeW91a291cm9cIDsKK+WPr+aPm+e+pCA8IGtha2FuZ3VuXCA7CivkvJrorbDloLQgPCBrYWlnaWpvdVwgOwor5Lq66Z2e5Lq6IDwgbmlucGluaW5cIDsKK+imi+iQvSA8IG1pb3Rvc2hpXCA7CivngrjolqwgPCBzYWt1eWFrdVwgOwor6Iqx57KJ566hIDwga2FmdW5rYW5cIDsKK+Wfi+iorSA8IG1haXNldHN1XCA7CivpgY7mv4DmtL4gPCBrYWdla2loYVwgOwor5o6l6aqoIDwgc2Vra290c3VcIDsKK+mZveeJqSA8IHlvdWJ1dHN1XCA7Civoq5blrqIgPCByb25reWFrdVwgOwor6KeS56ybIDwgdHN1bm9idWVcIDsKK+eGseacmyA8IG5ldHN1Ym91XCA7Civmurbop6PluqYgPCB5b3VrYWlkb1wgOwor6Zay6KqtIDwgZXRzdWRva3VcIDsKK+WPpeiqreeCuSA8IGt1dG91dGVuXCA7CivmjZzmn7vpmaMgPCBzb3VzYWppblwgOwor6Kqw5b28IDwgdGFyZWthcmVcIDsKK+exs+mjnyA8IGJlaXNob2t1XCA7CivntKLojqsgPCBzYWt1YmFrdVwgOwor5Za25Yip55qEIDwgZWlyaXRla2lcIDsKK+iiq+eBveiAhSA8IGhpc2Fpc2hhXCA7CivkuI3lvpPpoIYgPCBmdWp1dWp1blwgOwor5Y+N5bCE54KJIDwgaGFuc2hhcm9cIDsKK+mbkeabsiA8IHpha2t5b2t1XCA7CivkvZ3lg4Lnl4UgPCBrdXJ1YnlvdVwgOwor5aSq5be7IDwgZnV0b21ha2lcIDsKK+aWsOWmuyA8IG5paWR6dW1hXCA7Civpg73kvJrkurogPCB0b2thaWppblwgOwor57WQ57SuIDwga2Vzc2F0c3VcIDsKK+WRquemgemBkyA8IGp1a29uZG91XCA7Civlj6TniYjmnKwgPCBrb2hhbmJvblwgOwor5ris5YCZ5omAIDwgc29ra291am9cIDsKK+aXp+WKhyA8IGt5dXVnZWtpXCA7CivmtL7pgaPpmoogPCBoYWtlbnRhaVwgOwor5pGY6IqvIDwgdGVraXNoaW5cIDsKK+atk+i/juWutCA8IGthbmdlaWVuXCA7CivniankuosgPCBtb25vZ290b1wgOwor5oiQ5Yqf6KOhIDwgc2Vpa291cmlcIDsKK+ios+azqCA8IHlha3VjaHV1XCA7CivmlLnmnK0gPCBrYWlzYXRzdVwgOwor5a625bqt5qyEIDwga2F0ZWlyYW5cIDsKK+eFruayuCA8IHNoYWZ1dHN1XCA7CivlpKfltZAgPCBvb2FyYXNoaVwgOwor5aSa5aSJ5pWwIDwgdGFoZW5zdXVcIDsKK+eUt+aAp+e+jiA8IGRhbnNlaWJpXCA7Civpm5HmlocgPCB6YXRzdWJ1blwgOwor6auY5qmf6IO9IDwga291a2lub3VcIDsKK+e0meiKsSA8IGthbWliYW5hXCA7CivkurrplpPoi6YgPCBuaW5nZW5rdVwgOwor54S854mpIDwgeWFraW1vbm9cIDsKK+e1kOevgCA8IGtlc3NldHN1XCA7Civplbfou7ggPCBjaG91amlrdVwgOwor5aSW5bqtIDwgc290b25pd2FcIDsKK+S4ieWRs+e3miA8IHNoYW1pc2VuXCA7CivntYTntJAgPCBrdW1paGltb1wgOwor57KS6YqAIDwgdHN1YnVnaW5cIDsKK+mWi+ixgSA8IGthaWthdHN1XCA7CivnuIHml6UgPCBlbicnbmljaGlcIDsKK+WQjOeoi+W6piA8IGRvdXRlaWRvXCA7CivlpJzltZAgPCB5b2FyYXNoaVwgOwor5pWw5byPIDwgc3V1c2hpa2lcIDsKK+WlveWhqeiPjCA8IGtvdWVua2luXCA7CivpgIHmsJfnrqEgPCBzb3VraWthblwgOwor54qg54my6ICFIDwgZ2lzZWlzaGFcIDsKK+iKsee0i+advyA8IGthbW9uYmFuXCA7Civpm7vlrZDljJYgPCBkZW5zaGlrYVwgOwor54mb5LmzIDwgZ3l1dW55dXVcIDsKK+WwveacquadpSA8IGppbm1pcmFpXCA7Civlj6Xoqq3ms5UgPCBrdXRvdWhvdVwgOwor5aW95aSp5rCXIDwga291dGVua2lcIDsKK+mVt+i2syA8IGNob3Vzb2t1XCA7CivloanniakgPCBzaGlvbW9ub1wgOwor54mH5YG0IDwga2F0YWdhd2FcIDsKK+a1hOWMluanvSA8IGpvdWthc291XCA7Civpm4DmlpEgPCBzb2Jha2FzdVwgOwor5pyJ5aOw6Z+zIDwgeXV1c2Vpb25cIDsKK+mbsuW9oiA8IGt1bW9nYXRhXCA7CivntYznqbQgPCBrZWlrZXRzdVwgOwor5Y+N5L2c55SoIDwgaGFuc2F5b3VcIDsKK+aSnuedgCA8IGRvdWNoYWt1XCA7Civlhajoh6rli5UgPCB6ZW5qaWRvdVwgOwor5Y+N5a++5rS+IDwgaGFudGFpaGFcIDsKK+aXp+S9nCA8IGt5dXVzYWt1XCA7CivntIXoirEgPCBiZW5pYmFuYVwgOwor5Yem5aWz5oCnIDwgc2hvam9zZWlcIDsKK+aJi+mWk+izgyA8IHRlbWFjaGluXCA7CivpmbDmub8gPCBpbnNoaXRzdVwgOwor57eo5puyIDwgaGVua3lva3VcIDsKK+e1hOeriyA8IGt1bWl0YXRlXCA7CivntLDntLAgPCBob3NvYm9zb1wgOwor6Kmm5o6YIDwgc2hpa3V0c3VcIDsKK+WhqeeEvCA8IHNoaW95YWtpXCA7CivlpJblsYAgPCBnYWlreW9rdVwgOwor5aKX5q6WIDwgem91c2hva3VcIDsKK+aXp+S6uiA8IGZ1cnViaXRvXCA7CivkuIDlm57liIYgPCBpa2thaWJ1blwgOwor572554G96ICFIDwgcmlzYWlzaGFcIDsKK+ios+alrSA8IHlha3VneW91XCA7CivmjpLpm6ogPCBoYWlzZXRzdVwgOwor57Kb6LuNIDwgc2h1a3VndW5cIDsKK+eGseaEnyA8IG5ldHN1a2FuXCA7CivlpLHlopwgPCBzaGl0dHN1aVwgOwor5Zu96bOlIDwga29rdWNob3VcIDsKK+iyr+eCreaJgCA8IGNob3RhbmpvXCA7Civoq7jlhbEgPCBtb3JvdG9tb1wgOwor5pyJ5Lq65YyWIDwgeXV1amlua2FcIDsKK+WkluWuoiA8IGdhaWt5YWt1XCA7CivljbDosaHmtL4gPCBpbnNob3VoYVwgOwor54ax5oOFIDwgbmV0c3Vqb3VcIDsKK+WkluWtqyA8IHNvdG9tYWdvXCA7Civns5bonJwgPCB0b3VtaXRzdVwgOwor6Zuj5b25IDwgbmFuJyd5YWt1XCA7CivloZfniakgPCBudXJpbW9ub1wgOwor54mI5LiLIDwgaGFuc2hpdGFcIDsKK+anjemojuWFtSA8IHNvdWtpaGVpXCA7CivpmaTmub8gPCBqb3NoaXRzdVwgOwor6YCD6YG/6KGMIDwgdG91aGlrb3VcIDsKK+WGheeBq+iJhyA8IG5haWthdGVpXCA7CivntbHnjocgPCB0b3Vzb3RzdVwgOwor5peF5YWIIDwgdGFiaXNha2lcIDsKK+e0sOethiA8IHNhaWhpdHN1XCA7Civpm6rltrogPCBzZXRzdXJlaVwgOwor57W554mpIDwga2ludW1vbm9cIDsKK+WIqeaoqeWxiyA8IHJpa2VuJyd5YVwgOwor6Kiz5p+EIDwgd2FrZWdhcmFcIDsKK+iln+iFsCA8IGVyaWtvc2hpXCA7CivntZDnnYAgPCBrZXRjaGFrdVwgOwor57eR5p6XIDwgcnlva3VyaW5cIDsKK+mWsuWFteWPsCA8IGVwcGVpZGFpXCA7CivntZDnm58gPCBrZXRzdW1laVwgOwor5re356iu6KqeIDwga29uc2h1Z29cIDsKK+eGseW8gSA8IG5ldHN1YmVuXCA7CivpgI/pgY7mgKcgPCB0b3VrYXNlaVwgOwor5Lya6KaL6KiYIDwga2Fpa2Vua2lcIDsKK+mbkeW/tSA8IHphdHN1bmVuXCA7CivoqI7mrbsgPCB1Y2hpamluaVwgOwor55u45Ly854K5IDwgc291aml0ZW5cIDsKK+ieuuWtkOmHmCA8IG5lamlrdWdpXCA7Civlh6blpbPls7AgPCBzaG9qb2hvdVwgOwor55yL6K235birIDwga2FuZ29zaGlcIDsKK+aUr+aJlSA8IHNoaWhhcmFpXCA7CivopqrnnaYgPCBzaGluYm9rdVwgOwor5aCA56uvIDwgaG9yaWJhdGFcIDsKK+mZpeayoSA8IGthbmJvdHN1XCA7Civop5LniZsgPCBrYWt1Z3l1dVwgOwor6ZuR5b25IDwgemF0c3Vla2lcIDsKK+mbquWxsSA8IHl1a2l5YW1hXCA7CivmnInpoILngrkgPCB1Y2hvdXRlblwgOwor6Ku45Lq6IDwgbW9yb2JpdG9cIDsKK+S4gOetieaYnyA8IGl0dG91c2VpXCA7CivkuIvmsLTpgZMgPCBnZXN1aWRvdVwgOwor6Z2e5Lq65oOFIDwgaGluaW5qb3VcIDsKK+mZo+ayoSA8IGppbmJvdHN1XCA7CivniLbkuIogPCBjaGljaGl1ZVwgOwor6Zuq5a6zIDwgc2V0c3VnYWlcIDsKK+mVt+iiliA8IG5hZ2Fzb2RlXCA7CivpmLLnhrEgPCBib3VuZXRzdVwgOwor5Li7576p6ICFIDwgc2h1Z2lzaGFcIDsKK+e4hOW8tSA8IG5hd2FiYXJpXCA7CivmtL7pgaPou40gPCBoYWtlbmd1blwgOwor5YaN5o+Q5qGIIDwgc2FpdGVpYW5cIDsKK+e+juaEj+itmCA8IGJpaXNoaWtpXCA7Civoo4/pgZMgPCB1cmFtaWNoaVwgOwor6Zqj5o6lIDwgcmluc2V0c3VcIDsKK+e2meavjSA8IG1hbWFoYWhhXCA7CivlpKfllp0gPCBkYWlrYXRzdVwgOwor57eP5pys5a62IDwgc291aG9ua2VcIDsKK+W6puWkluimliA8IGRvZ2Fpc2hpXCA7Civlh7rmnaXlhbflkIggPCBkZWtpZ3VhaVwgOwor6Zyy5Ye6IDwgcm9zaHV0c3VcIDsKK+ioquaXpSA8IGhvdW5pY2hpXCA7CivpgaDlvoHpmoogPCBlbnNlaXRhaVwgOwor5aGp5rC0IDwgc2hpb21penVcIDsKK+eQhuaDs+WeiyA8IHJpc291a2VpXCA7CivmlbflnLAgPCBzaGlraWNoaVwgOwor5Luu5YiG5pWwIDwga2FidW5zdXVcIDsKK+mahuaYjCA8IHJ5dXVzaG91XCA7CivmlrDkv64gPCBzaGluc2h1dVwgOwor5Yqp5pWw6KmeIDwgam9zdXVzaGlcIDsKK+eyvueul+aJgCA8IHNlaXNhbmpvXCA7CivlpKflkIkgPCBkYWlraWNoaVwgOwor5aSa6Z2i5L2TIDwgdGFtZW50YWlcIDsKK+aWsOS9nCA8IHNoaW5zYWt1XCA7CivplqLohIcgPCBzZWtpd2FrZVwgOwor54et5Y+wIDwgc2hva3VkYWlcIDsKK+eCreeqryA8IHN1bWlnYW1hXCA7Civpm7vlnKcgPCBkZW4nJ2F0c3VcIDsKK+mbqOWlsyA8IGFtZW9uJyduYVwgOwor5r+A6ZyHIDwgZ2VraXNoaW5cIDsKK+WkieWcpyA8IGhlbicnYXRzdVwgOwor5b2i6aq45YyWIDwga2VpZ2Fpa2FcIDsKK+asp+exs+S6uiA8IG91YmVpamluXCA7CivlpKfljZIgPCBkYWlzb3RzdVwgOwor57WM5bir5bGLIDwga3lvdWppeWFcIDsKK+iqpOWkieaPmyA8IGdvaGVua2FuXCA7CivpgoTku5jph5EgPCBrYW5wdWtpblwgOwor5aOB5b25IDwga2FiZXlha3VcIDsKK+aOm+i7uCA8IGtha2VqaWt1XCA7CivnuITlsLsgPCBuYXdhamlyaVwgOwor6KOy6KWgIDwgdWNoaWtha2VcIDsKK+WfuuedoyA8IGtpcmlzdXRvXCA7CivmmanlvqHpo68gPCBiYW5nb2hhblwgOwor6IWV6Ieq5oWiIDwgdWRlamltYW5cIDsKK+a1hOawtOWZqCA8IGpvdXN1aWtpXCA7CivliqnmlZnoq60gPCBqb2t5b3V5dVwgOwor5aSn5YilIDwgdGFpYmV0c3VcIDsKK+aWieWIlyA8IHNlaXJldHN1XCA7Civpm6rlm70gPCB5dWtpZ3VuaVwgOwor5Yem5aWz5ZywIDwgc2hvam9jaGlcIDsKK+Wkp+WGiiA8IHRhaXNhdHN1XCA7Civnt7vlr4YgPCBjaGltaXRzdVwgOwor5aSJ5ZOyIDwgaGVudGV0c3VcIDsKK+ezuOeruSA8IHNoaWNoaWt1XCA7CivplovohJogPCBrYWlreWFrdVwgOwor5pSv5bGAIDwgc2hpa3lva3VcIDsKK+WkseS/nSA8IHNoaXRzdWhvXCA7CivliKnnlKjogIUgPCByaXlvdXNoYVwgOwor57WC54aEIDwgc2h1dXNva3VcIDsKK+eEoeeyvuWNtSA8IG11c2VpcmFuXCA7CivpsakgPCBoYXRhaGF0YVwgOwor54Sh6Zai5L+CIDwgbXVrYW5rZWlcIDsKK+WkluWKmyA8IGdhaXJ5b2t1XCA7Civoqr/kvI8gPCBjaG91YnVrdVwgOwor6Zub5Z6LIDwgaGluYWdhdGFcIDsKK+ato+Wtl+azlSA8IHNlaWppaG91XCA7CivopoHnlaUgPCB5b3VyeWFrdVwgOwor6LuN5Yy755ujIDwgZ3VuJydpa2FuXCA7Civpr5EgPCBrYXp1bm9rb1wgOwor6K2m5LiW5a62IDwga2Vpc2Vpa2FcIDsKK+adpeWtpuacnyA8IHJhaWdha2tpXCA7CivmmKDnlLvoqZUgPCBlaWdhaHlvdVwgOwor5om55Yik6ICFIDwgaGloYW5zaGFcIDsKK+mWgOiEiCA8IG1vbm15YWt1XCA7CivlubPlj5nmlocgPCBoZWlqb2J1blwgOwor6KSQ6ImyIDwga2Fzc2hva3VcIDsKK+S4iemHjeiLpiA8IHNhbmp1dWt1XCA7CivprYEgPCBzYWtpZ2FrZVwgOwor5qih5YCj6ICFIDwgbW9ob3VzaGFcIDsKK+msoyA8IHRhdGVnYW1pXCA7Civpm7vlipsgPCBkZW5yeW9rdVwgOwor5LqI6YG45LyaIDwgeW9zZW5rYWlcIDsKK+a8lOWlj+S8miA8IGVuc291a2FpXCA7CivmlbDliJcgPCBzdXVyZXRzdVwgOwor5pS+5Z+SIDwgaG91cmF0c3VcIDsKK+WkluWBtCA8IHNvdG9nYXdhXCA7CivooajploAgPCBvbW90ZW1vblwgOwor5pWw5YaKIDwgc3V1c2F0c3VcIDsKK+mbsuWKqSA8IGt1bW9zdWtlXCA7Civpm5HlmqIgPCB6YXRzdW5vdVwgOwor5LiN5rS75oCnIDwgZnVrYXNzZWlcIDsKK+a/gemFkiA8IGRvYnVyb2t1XCA7CivlnJ/os6ogPCBkb3NoaXRzdVwgOwor6ZaL5Y+j6YOoIDwga2Fpa291YnVcIDsKK+aVteWBtCA8IHRla2lnYXdhXCA7Civlj4zog7TmqZ8gPCBzb3Vkb3VraVwgOwor6Kil5byBIDwgdG90c3ViZW5cIDsKK+ijj+ihqCA8IHVyYW9tb3RlXCA7Civoqq3kuoYgPCBkb2t1cnlvdVwgOwor54Gw56+pIDwgaGFpZnVydWlcIDsKK+eypeiFuSA8IGtheXViYXJhXCA7CivpoIjlvKXlsbEgPCBzaHVtaXNlblwgOwor54CJ6KGAIDwgc2hha2V0c3VcIDsKK+WBvemAoOe9qiA8IGdpem91emFpXCA7CivloIXngq0gPCBrYXRhenVtaVwgOwor57a/5byTIDwgd2F0YXl1bWlcIDsKK+mkniA8IGhhbmFtdWtlXCA7CivlnoLogLMgPCB0YXJlbWltaVwgOwor6Kmw5ZWPIDwga2l0c3Vtb25cIDsKK+engOeUu+WutiA8IHNodXVnYWthXCA7CivkuqTku6Plk6EgPCBrb3V0YWlpblwgOwor5aOy5Y20IDwgYmFpa3lha3VcIDsKK+aOoeihgCA8IHNhaWtldHN1XCA7CivnuKbliJcgPCBqdXVyZXRzdVwgOwor6LWk6Zu76KmxIDwgYWthZGVud2FcIDsKK+acieacn+WIkSA8IHl1dWtpa2VpXCA7Civlj6PoqbHms5UgPCBrb3V3YWhvdVwgOwor5oi45Li75qipIDwga29zaHVrZW5cIDsKK+e1tuacmyA8IHpldHN1Ym91XCA7CivlhazlronlrpggPCBrb3VhbmthblwgOwor5pKD5rKIIDwgZ2VraWNoaW5cIDsKK+inkuafsSA8IGtha3VjaHV1XCA7Civlm73ovrEgPCBrb2t1am9rdVwgOwor5q2v54mZ54q2IDwgc2hpZ2Fqb3VcIDsKK+S8neWjsOWZqCA8IGRlbnNlaWtpXCA7CivpoJEgPCBrYXRha3VuYVwgOwor5L+d6Zm66YeRIDwgaG9rZW5raW5cIDsKK+Wjq+WNkiA8IHNoaXNvdHN1XCA7CivmjIfmlbDpg6ggPCBzaGlzdXVidVwgOwor6LGq6I+v6Ii5IDwgZ291a2FzZW5cIDsKK+S4uOaal+iomCA8IG1hcnVhbmtpXCA7CivlnLDooosgPCBqaWJ1a3Vyb1wgOwor5aOy5Ye6IDwgdXJpZGFzaGlcIDsKK+e3iuWvhiA8IGtpbm1pdHN1XCA7Civln7rmupbngrkgPCBraWp1bnRlblwgOwor5o+656+tIDwgeXVyaWthZ29cIDsKK+mbquWDjyA8IHNldHN1em91XCA7CivntIXnjokgPCBrb3VneW9rdVwgOwor57Gz6JS1IDwga29tZWd1cmFcIDsKK+W+jOaPtOS8miA8IGtvdWVua2FpXCA7Civmva7poqggPCBzaGlva2F6ZVwgOwor5Z6L57SZIDwga2F0YWdhbWlcIDsKK+ecjOitsOS8miA8IGtlbmdpa2FpXCA7CivoqKrlrqIgPCBob3VreWFrdVwgOwor6KGM5Zyo5omAIDwgYW56YWlzaG9cIDsKK+mavCA8IGhheWFidXNhXCA7CivoqLHlq4EgPCBpaW5henVrZVwgOwor5o2P6YCgIDwgbmV0c3V6b3VcIDsKK+WPo+iqnuaWhyA8IGtvdWdvYnVuXCA7Civlr53nhZnojYkgPCBuZXRhYmFrb1wgOwor5pat56C05aOKIDwgZGFuaGFrYWlcIDsKK+mZtSA8IG1pc2FzYWdpXCA7Civno4HpiYTpibEgPCBqaXRla2tvdVwgOwor5YaG54K65pu/IDwgZW5nYXdhc2VcIDsKK+eci+itt+WFtSA8IGthbmdvaGVpXCA7Civllrbmpa3pg6ggPCBlaWd5b3VidVwgOwor6ZaP56eSIDwgdXJ1dWJ5b3VcIDsKK+S4jea2iOWMliA8IGZ1c2hvdWthXCA7CivmvaTpo74gPCBqdW5zaG9rdVwgOwor5ouz6aqoIDwgZ2Vua290c3VcIDsKK+e2v+WvhiA8IG1lbm1pdHN1XCA7CivkuI3lvrPnvqkgPCBmdXRva3VnaVwgOwor5Zyw5ZC56ZuqIDwgamlmdWJ1a2lcIDsKK+a/gOi2iiA8IGdla2lldHN1XCA7CivpoIjlvKXlo4cgPCBzaHVtaWRhblwgOwor57a/5a6fIDwgbWVuaml0c3VcIDsKK+S9kOW5lea0viA8IHNhYmFrdWhhXCA7CivploogPCB0c3VrYWVydVwgOwor6aCT55e05rCXIDwgdG9uY2hpa2lcIDsKK+WbveiziiA8IGtva3V6b2t1XCA7CivlpJrmlbDlhZogPCB0YXN1dXRvdVwgOwor54K55ruFIDwgdGVubWV0c3VcIDsKK+a/gOizniA8IGdla2lzaG91XCA7CivmjqHmsrnmqKkgPCBzYWl5dWtlblwgOwor5p2l5LiW57SAIDwgcmFpc2Vpa2lcIDsKK+malOWjgSA8IGtha3VoZWtpXCA7CivlsbHmsLTnlLsgPCBzYW5zdWlnYVwgOwor5o6D6Zmk5Lq6IDwgc291amluaW5cIDsKK+aEj+WRs+mDqOmWgCA8IGltaWJ1bW9uXCA7CivkuIDnrYnlnLAgPCBpdHRvdWNoaVwgOwor56iO5YuZ5a6YIDwgemVpbXVrYW5cIDsKK+eci+itt+S6uiA8IGthbmdvbmluXCA7CivljYrliIfnrKYgPCBoYW5raXBwdVwgOwor5Zyn54CY5ZmoIDwgYXRzdXJva2lcIDsKK+e3keWcsCA8IHJ5b2t1Y2hpXCA7Civln7rmupbms5UgPCBraWp1bmhvdVwgOwor56+A6Zu7IDwgc2V0c3VkZW5cIDsKK+WPl+ism+iAhSA8IGp1a291c2hhXCA7CivmuKzot53lhIAgPCBzb2treW9naVwgOwor57KY57KYIDwgbmViYW5lYmFcIDsKK+WGt+WHjeapnyA8IHJlaXRvdWtpXCA7Civpi7ggPCBub2tvZ2lyaVwgOwor562J6Led6ZuiIDwgdG91a3lvcmlcIDsKK+eCjueGsSA8IGVuJyduZXRzdVwgOwor5Zu96KixIDwga3VuaW1vdG9cIDsKK+S4jeWQjeaVsCA8IGZ1bWVpc3V1XCA7CivplovnmbogPCBrYWloYXRzdVwgOwor6Kmm6YGL6LuiIDwgc2hpdW50ZW5cIDsKK+e+qeWLh+WFtSA8IGdpeXV1aGVpXCA7CivopqrnlLvpnaIgPCBveWFnYW1lblwgOwor5ouS5ZCm5qipIDwga3lvaGlrZW5cIDsKK+S6jOeVque3miA8IG5pYmFuc2VuXCA7Civllrbmpa3osrsgPCBlaWd5b3VoaVwgOwor55u45Ly85b2iIDwgc291amlrZWlcIDsKK+e9ueeBveawkSA8IHJpc2FpbWluXCA7Civlr4TnlJ/mnKggPCB5YWRvcmlnaVwgOwor6Kaq5pePIDwgc2hpbnpva3VcIDsKK+eBq+iWrOW6qyA8IGtheWFrdWtvXCA7CivotaTpoK3lt74gPCBha2F6dWtpblwgOwor6Jyl6Jy05bqnIDwgdG9rYWdlemFcIDsKK+itpuWgsemfsyA8IGtlaWhvdW9uXCA7CivnsonnsokgPCBrb25hZ29uYVwgOwor5aSn6Jyl6Jy0IDwgb290b2thZ2VcIDsKK+mbh+S6uiA8IHlhdG9pbmluXCA7Civmm7TnlJ/mnJ8gPCBrb3VzZWlraVwgOwor6Kit5ZWPIDwgc2V0c3Vtb25cIDsKK+Wcn+W3puihm+mWgCA8IGRvemFlbW9uXCA7Civopprmm7ggPCBvYm9lZ2FraVwgOwor55aR5ZWP5paHIDwgZ2ltb25idW5cIDsKK+iNt+eCuuabvyA8IG5pZ2F3YXNlXCA7Civnt6jlhaUgPCBoZW4nJ255dXVcIDsKK+aLkumjnyA8IGt5b3Nob2t1XCA7CivohY7oh5Pngo4gPCBqaW56b3VlblwgOwor57Sv5pyIIDwgcnVpZ2V0c3VcIDsKK+WeguebtCA8IHN1aWNob2t1XCA7Civlr4TotIjogIUgPCBraXpvdXNoYVwgOwor5a625bqt5YaFIDwga2F0ZWluYWlcIDsKK+e0heauuyA8IGJlbmlnYXJhXCA7CivokL3oqp7lrrYgPCByYWt1Z29rYVwgOwor54Sh56+A5pONIDwgbXVzZXNzb3VcIDsKK+inkuW6lyA8IGthZG9taXNlXCA7Civnt7TkubMgPCByZW4nJ255dXVcIDsKK+WuueeWkeiAhSA8IHlvdWdpc2hhXCA7CivnsbPns6AgPCBrb21lbnVrYVwgOwor5bGV6ZaL5ZuzIDwgdGVua2FpenVcIDsKK+engeeUn+WFkCA8IHNoaXNlaWppXCA7Civour4gPCBzaGl0c3VrZVwgOwor57eP5YqbIDwgc291cnlva3VcIDsKK+Wkp+aJi+etiyA8IG9vdGVzdWppXCA7CivntK/ml6UgPCBydWlqaXRzdVwgOwor5YWs5a6a5L6hIDwga291dGVpa2FcIDsKK+awl+WIhuWxiyA8IGtpYnVuJyd5YVwgOwor5Zyo6IG3IDwgemFpc2hva3VcIDsKK+Wfi+ayoSA8IG1haWJvdHN1XCA7CivkuIDnrYnlhbUgPCBpdHRvdWhlaVwgOwor5LiL5rC0566hIDwgZ2VzdWlrYW5cIDsKK+aVtOaVsOavlCA8IHNlaXN1dWhpXCA7CivnspjnnYAgPCBuZW5jaGFrdVwgOwor57Oe5rqcIDwga3Vzb2RhbWVcIDsKK+eviemAoCA8IGNoaWt1em91XCA7CivnpL7li5nmiYAgPCBzaGFtdXNob1wgOwor6Kem5aqSIDwgc2hva3ViYWlcIDsKK+mrmOWxpOmbsiA8IGtvdXNvdXVuXCA7CivluLjlpZfoqp4gPCBqb3V0b3Vnb1wgOwor6Ii55aSW5qmfIDwgc2VuZ2Fpa2lcIDsKK+maiuWIlyA8IHRhaXJldHN1XCA7Civlj4zmmpfou4ogPCBzb3VhbnNoYVwgOwor57Si5pW1IDwgc2FrdXRla2lcIDsKK+aXheWuouapnyA8IHJ5b2tha2tpXCA7CivlopfliLcgPCB6b3VzYXRzdVwgOwor57eR5L6/IDwgcnlva3ViZW5cIDsKK+a9rui2syA8IHNoaW9hc2hpXCA7CivplrLmrbQgPCBldHN1cmVraVwgOwor6YGL5Za26ICFIDwgdW4nJ2Vpc2hhXCA7CivmgaPmhI/nmoQgPCBzaGlpdGVraVwgOwor57SN5pytIDwgbm91c2F0c3VcIDsKK+egtOWkqeiNkiA8IGhhdGVua291XCA7CivnhrHluK/lpJwgPCBuZXR0YWl5YVwgOwor6YGU5oiQ5bqmIDwgdGFzc2VpZG9cIDsKK+WkmuinkuW9oiA8IHRha2Fra2VpXCA7CivmjK/oopYgPCBmdXJpc29kZVwgOwor57Of5rGBIDwga2FzdWppcnVcIDsKK+WFpeS8muaoqSA8IGlyaWFpa2VuXCA7CivljYPokYnnnIwgPCBjaGliYWtlblwgOwor5LqU5pyI6ZuoIDwgc2FtaWRhcmVcIDsKK+a6luS8muWToSA8IGp1bmthaWluXCA7Civoq7ogPCBrb3Rvd2F6YVwgOwor57SE5p2fIDwgeWFrdXNva3VcIDsKK+awtOabnOaXpSA8IHN1aXlvdWJpXCA7CivmuIfmsLTmnJ8gPCBrYXNzdWlraVwgOwor5oqR6ayxIDwgeW9rdXV0c3VcIDsKK+ertummrOWgtCA8IGtlaWJham91XCA7CivmjIfosqsgPCB5dWJpbnVraVwgOwor6bOp5bCP5bGLIDwgaGF0b2dveWFcIDsKK+a/gOiHrSA8IGdla2lzaHV1XCA7CivkuI3mraPoppYgPCBmdXNlaXNoaVwgOwor6KaL5omAIDwgbWlkb2tvcm9cIDsKK+Wbm+WNiuacnyA8IHNoaWhhbmtpXCA7CivnspfnjocgPCBhcmFyaXRzdVwgOwor5L2c55So54K5IDwgc2F5b3V0ZW5cIDsKK+mBiuWckuWcsCA8IHl1dWVuY2hpXCA7Civou4zpgZPoiLkgPCBraWRvdXNlblwgOwor5byB55CG5aOrIDwgYmVucmlzaGlcIDsKK+e1guW5lSA8IHNodXVtYWt1XCA7CivopbLmkoMgPCBzaHV1Z2VraVwgOwor6bq76YWU6YqDIDwgbWFzdWlqdXVcIDsKK+ikjCA8IGZ1bmRvc2hpXCA7CivmnKjonrrlrZAgPCBtb2t1bmVqaVwgOwor57WQ5bGAIDwga2Vra3lva3VcIDsKK+atqeaVsOioiCA8IGhvc3V1a2VpXCA7CivkuLvpoYzmrYwgPCBzaHVkYWlrYVwgOwor562L6aqoIDwgc3VqaWJvbmVcIDsKK+ato+S8muWToSA8IHNlaWthaWluXCA7Civlvq7liIbms5UgPCBiaWJ1bmhvdVwgOwor5YuV5ZOh5LukIDwgZG91aW5yZWlcIDsKK+ims+WuoiA8IGthbmt5YWt1XCA7CivmjqXnnYAgPCBzZXRjaGFrdVwgOwor6Z2S55Om5Y+wIDwgc2VpZ2FkYWlcIDsKK+mZo+WIlyA8IGppbnJldHN1XCA7CivmuKHoiLnloLQgPCB0b3NlbmpvdVwgOwor5Zyf562GIDwgdHN1a3VzaGlcIDsKK+eym+eEtiA8IHNodWt1emVuXCA7CivmhI/orZjkuIsgPCBpc2hpa2lrYVwgOwor57Sw5byVIDwgaG9zb2Jpa2lcIDsKK+imquWxgCA8IG95YWt5b2t1XCA7Civkv53orbflm70gPCBob2dva29rdVwgOwor5ZCM5oCn5oSbIDwgZG91c2VpYWlcIDsKK+ayueWcp+WZqCA8IHl1YXRzdWtpXCA7Civnh5XpnZLmi7MgPCBlbnNlaWtlblwgOwor5bm85bm05pyfIDwgeW91bmVua2lcIDsKK+ixquiPr+eJiCA8IGdvdWthYmFuXCA7CivooajoirggPCBvbW90ZWdlaVwgOwor5Yy75Y6f55eFIDwgaWdlbmJ5b3VcIDsKK+mbu+ipsee3miA8IGRlbndhc2VuXCA7Civlhrflh43luqsgPCByZWl0b3Vrb1wgOwor6YKE5LuY56iOIDwga2FucHV6ZWlcIDsKK+W8geitt+iAhSA8IGJlbmdvc2hhXCA7Civoo4XnnYAgPCBzb3VjaGFrdVwgOwor6Zu76Kmx57ayIDwgZGVud2Ftb3VcIDsKK+eZu+WxsemBkyA8IHRvemFuZG91XCA7Civom6QgPCBoYW1hZ3VyaVwgOwor5r+D57iuIDwgbm91c2h1a3VcIDsKK+aEj+WRs+WOn+eQhiA8IGltaWdlbnJpXCA7Civmj5Dnga8gPCBjaG91Y2hpblwgOwor6Zi/5oi/6bOlIDwgYWhvdWRvcmlcIDsKK+S6iOWCmeeahCA8IHlvYml0ZWtpXCA7Civoo4/nlLogPCB1cmFtYWNoaVwgOwor5Zyf56WeIDwgdWNoaWdhbWlcIDsKK+aJtuWKqeaWmSA8IGZ1am9yeW91XCA7CivloIDlt50gPCBob3Jpa2F3YVwgOwor54y/55+l5oG1IDwgc2FydWRqaWVcIDsKK+WcsOiUtemhlCA8IGppem91Z2FvXCA7Civntbblkb0gPCB6ZXRzdW1laVwgOwor6ZmL5YqjIDwgcm91cmV0c3VcIDsKK+S9nOalreWgtCA8IHNhZ3lvdWJhXCA7CivnrYbpoIYgPCBoaXRzdWp1blwgOwor56m655u45aC0IDwga3V1c291YmFcIDsKK+iitOedgCA8IGhha2FtYWdpXCA7Civlm73nsY0gPCBrb2t1c2VraVwgOwor5oy96IKJIDwgaGlraW5pa3VcIDsKK+a3t+WQiOiqniA8IGtvbmdvdWdvXCA7CivlpqXljZTmoYggPCBkYWt5b3VhblwgOwor57Sw5a+GIDwgc2FpbWl0c3VcIDsKK+mWk+afhCA8IGFpZGFnYXJhXCA7CivnhKHmirXmipcgPCBtdXRlaWtvdVwgOwor5pKD5aKcIDwgZ2VraXRzdWlcIDsKK+iRieevgOeCuSA8IGhhc2V0dGVuXCA7Civku5bli5XoqZ4gPCB0YWRvdXNoaVwgOwor5pig55S754uCIDwgZWlnYWt5b3VcIDsKK+WbveetliA8IGtva3VzYWt1XCA7Civms5Xoj6/ntYwgPCBob2tla3lvdVwgOwor562G6ZmjIDwgaGl0c3VqaW5cIDsKK+mFouaWmeeQhiA8IHN1cnlvdXJpXCA7CivmlL/lupznsbMgPCBzZWlmdW1haVwgOwor57WQ5ZujIDwga2V0c3VkYW5cIDsKK+ieoumbqiA8IGtlaXNldHN1XCA7Civlpb3ntZDmnpwgPCBrb3VrZWtrYVwgOwor5rS75oCn5YyWIDwga2Fzc2Vpa2FcIDsKK+WKqeiogOiAhSA8IGpvZ29uc2hhXCA7Civoo4/ljYPlrrYgPCB1cmFzZW5rZVwgOwor6IiO5Yip5aGUIDwgc2hhcml0b3VcIDsKK+idtumuqyA8IGNob3V6YW1lXCA7CivmkKbmiYsgPCBrYXJhbWV0ZVwgOwor5LiN56Wd5YSAIDwgYnVzaHV1Z2lcIDsKK+Wbo+e1kCA8IGRhbmtldHN1XCA7CivpgY7muKHnmoQgPCBrYXRvdGVraVwgOwor6Zm26Iq45a62IDwgdG91Z2Vpa2FcIDsKK+e0meWxkSA8IGthbWlrdXp1XCA7CivkvZzmpa3lk6EgPCBzYWd5b3VpblwgOwor6KGA6ImyIDwga2Vzc2hva3VcIDsKK+WkmuaRqeW3nSA8IHRhbWFnYXdhXCA7Civlvq7oi6bnrJEgPCBiaWt1c2hvdVwgOwor5qy6556e6ICFIDwgZ2ltYW5zaGFcIDsKK+mWgOacrSA8IG1vbnNhdHN1XCA7Civnq4vms5XlupwgPCByaXBwb3VmdVwgOwor6KKr54G95ZywIDwgaGlzYWljaGlcIDsKK+eMm+aJk+iAhSA8IG1vdWRhc2hhXCA7CivntbblgKsgPCB6ZXRzdXJpblwgOwor5Z6L5p6gIDwga2F0YXdha3VcIDsKK+S4jeelpeS6iyA8IGZ1c2hvdWppXCA7CivntZDmnpzoq5YgPCBrZWtrYXJvblwgOwor6ZeH5biCIDwgeWFtaWljaGlcIDsKK+iejembqiA8IHl1dXNldHN1XCA7CivnsJLnq4sgPCBzYW5yaXRzdVwgOwor5LiL5rC05rqdIDwgZ2VzdWlrb3VcIDsKK+awtOmiqOWRgiA8IG1penVidXJvXCA7CivmlrnkvY3op5IgPCBob3Vpa2FrdVwgOwor6Ziy5aG1552AIDwgYm91amluZ2lcIDsKK+aXouimluaDsyA8IGtpc2hpa2FuXCA7CivlnLDnhrEgPCBjaGluZXRzdVwgOwor6IG+IDwgbWltaXNoaWlcIDsKK+WPo+iqnuS9kyA8IGtvdWdvdGFpXCA7Civlubnpg6jkvJogPCBrYW5idWthaVwgOwor5Lqk6Zqb6LK7IDwga291c2FpaGlcIDsKK+eti+mHkSA8IHN1amlnYW5lXCA7Civmrablo6vpgZMgPCBidXNoaWRvdVwgOwor6a2U5pa56ZmjIDwgbWFob3VqaW5cIDsKK+eul+ihkyA8IHNhbmp1dHN1XCA7CivokaHokITphZIgPCBidWRvdXNodVwgOwor6ZW35peFIDwgbmFnYXRhYmlcIDsKK+WPjOWtkOW6pyA8IGZ1dGFnb3phXCA7CivohLHmsLTmqZ8gPCBkYXNzdWlraVwgOwor54Gr5Y+j5Y6fIDwga2Frb3VnZW5cIDsKK+S9juasoeWFgyA8IHRlaWppZ2VuXCA7CivpmLLkurogPCBzYWtpbW9yaVwgOwor5Y6z5Yas5pyfIDwgZ2VudG91a2lcIDsKK+S4jemAgOi7oiA8IGZ1dGFpdGVuXCA7Civon7vonIIgPCBhcmliYWNoaVwgOwor5omL5Zyf55SjIDwgdGVtaXlhZ2VcIDsKK+WNsemZuuimliA8IGtpa2Vuc2hpXCA7CivooZ3nq4sgPCB0c3VpdGF0ZVwgOwor6Iie6LiK5ZujIDwgYnV0b3VkYW5cIDsKK+S4jeaxuuWumiA8IGZ1a2V0dGVpXCA7Civlm57luLDnt5ogPCBrYWlraXNlblwgOwor57a0IDwgdHN1ZHp1cmlcIDsKK+WMuuawkeeojiA8IGt1bWluemVpXCA7CivkvZXnlarnm64gPCBuYW5iYW5tZVwgOwor57Ch55WlIDwga2Fucnlha3VcIDsKK+iEseawl+awtCA8IGRha2tpc3VpXCA7CivliJHli5nmiYAgPCBrZWltdXNob1wgOwor5YGl5ZWW5a62IDwga2VudGFua2FcIDsKK+egtOWjiuiAhSA8IGhha2Fpc2hhXCA7Civoh6rmhI/orZggPCBqaWlzaGlraVwgOwor5LiD5Y2B6LevIDwgbmFuYXNvamlcIDsKK+ims+iHquWcqCA8IGthbmppemFpXCA7CivpgaDlv4PmqZ8gPCBlbnNoaW5raVwgOwor5o2o54yrIDwgc3V0ZW5la29cIDsKK+acseWNsOiIuSA8IHNodWluc2VuXCA7CivmtJfmv6/mqZ8gPCBzZW50YWtraVwgOwor5LiN5YuV55SjIDwgZnVkb3VzYW5cIDsKK+ifgOiwtyA8IGtvbWVrYW1pXCA7CivlmbTmsJflrZQgPCBmdW5raWtvdVwgOwor6J+v6JmrIDwgZ3lvdWNodXVcIDsKK+idpuWkt+adviA8IGV6b21hdHN1XCA7CivprLzliJHkuosgPCBvbmlrZWlqaVwgOwor5oSf5ZiG56ymIDwga2FudGFuZnVcIDsKK+azleWMu+WtpiA8IGhvdWlnYWt1XCA7CivnsonmnKsgPCBmdW5tYXRzdVwgOwor56+BIDwgdGFrYW11cmFcIDsKK+WfkuWkliA8IHJhY2hpZ2FpXCA7Civps6XlsI/lsYsgPCB0b3JpZ295YVwgOwor5Z2q5pWwIDwgdHN1Ym9zdXVcIDsKK+etjSA8IHRha2Vub2tvXCA7Civoh6rllrbmpa0gPCBqaWVpZ3lvdVwgOwor57Oe5bC/IDwgZnVuJydueW91XCA7Civooajnmb0gPCBoeW91aGFrdVwgOwor57K+6Yys5omAIDwgc2VpcmVuam9cIDsKK+Wbm+eZviA8IHlvbmh5YWt1XCA7CivntLDliKUgPCBzYWliZXRzdVwgOwor5omL6Y+hIDwgdGVrYWdhbWlcIDsKK+m7hOiPluiSsiA8IGtpc2hvdWJ1XCA7CivkupzlpKfpmbggPCBhdGFpcmlrdVwgOwor5YKZ6ICD5qyEIDwgYmlrb3VyYW5cIDsKK+igj+iCoSA8IGdhbmltYXRhXCA7CivloIDlibIgPCBob3Jpd2FyaVwgOwor54mH5omL6ZaTIDwga2F0YXRlbWFcIDsKK+S6uumWk+WRsyA8IG5pbmdlbm1pXCA7CivplqLlroggPCBzZWtpbW9yaVwgOwor54Sh5oSP6K2YIDwgbXVpc2hpa2lcIDsKK+aKleizh+WutiA8IHRvdXNoaWthXCA7CivkuIvmsLTmnb8gPCBnZXN1aWl0YVwgOwor6KGA56iOIDwga2V0c3V6ZWlcIDsKK+mmrOi5hOW9oiA8IGJhdGVpa2VpXCA7Civlhajpn7PnrKYgPCB6ZW4nJ29ucHVcIDsKK+Wft+WLmSA8IHNoaXRzdW11XCA7CivmjZXniakgPCB0b3JpbW9ub1wgOwor5oiQ6aaZIDwgbmFyaWt5b3VcIDsKK+mrmOi8neW6piA8IGtvdWtpZG91XCA7CivnsbPmnb4gPCBiZWltYXRzdVwgOwor56+A57O4IDwgZnVzaGlpdG9cIDsKK+S4jeWPr+S+tSA8IGZ1a2FzaGluXCA7Civpu4Tlj6PlhZAgPCBrb3Vrb3VqaVwgOwor5YiG56eR5LyaIDwgYnVua2FrYWlcIDsKK+evgOexsyA8IHNldHN1bWFpXCA7CivonJjom5vohpwgPCBrdW1vbWFrdVwgOwor5LqL5qWt5a62IDwgamlneW91a2FcIDsKK+aJv+irviA8IHNob3VkYWt1XCA7CivlhaXkvJrlnLAgPCBpcmlhaWNoaVwgOwor562G6KuHIDwgaGl0c3VkYW5cIDsKK+Wbs+abuOmkqCA8IHRvc2hva2FuXCA7CivplovlsYAgPCBrYWlreW9rdVwgOwor6KO954mI5omAIDwgc2VpaGFuam9cIDsKK+adseWkp+WvuiA8IHRvdWRhaWppXCA7CivpjozpppYgPCBrYW1ha3ViaVwgOwor56uL6aOfIDwgcmlzc2hva3VcIDsKK+S4reS9jeaVsCA8IGNodXVpc3V1XCA7CivooYbnm64gPCBzaHV1bW9rdVwgOwor562G6KemIDwgaGlzc2hva3VcIDsKK+WPguizgOiAhSA8IHNhbmdhc2hhXCA7Civmibnlh4bmm7ggPCBoaWp1bnNob1wgOwor5Z6C5bmVIDwgdGFyZW1ha3VcIDsKK+eri+mhmCA8IHJpdHN1Z2FuXCA7CivmkYLli5UgPCBzZXRzdWRvdVwgOwor6Iie6LiP5LyaIDwgYnV0b3VrYWlcIDsKK+eyvuWvhiA8IHNlaW1pdHN1XCA7CivnkIbljJblraYgPCByaWthZ2FrdVwgOwor56+A56m0IDwgZnVzaGlhbmFcIDsKK+eZu+WxseiAhSA8IHRvemFuc2hhXCA7CivliqnmlZnmjoggPCBqb2t5b3VqdVwgOwor5YiR5YuZ5a6YIDwga2VpbXVrYW5cIDsKK+eZuCA8IG1penVub3RvXCA7CivmlL/li5nlrpggPCBzZWltdWthblwgOwor56+A56iOIDwgc2V0c3V6ZWlcIDsKK+ato+e+qeaEnyA8IHNlaWdpa2FuXCA7Civns7jlj6MgPCBpdG9ndWNoaVwgOwor5Yy76Jas5ZOBIDwgaXlha3VoaW5cIDsKK+WMlueyp+edgCA8IGtlc2hvdWdpXCA7CivmiYvou4ogPCB0ZWd1cnVtYVwgOwor54Gr6YGU56OoIDwgaGlkYXJ1bWFcIDsKK+mVt+WwuyA8IG5hZ2FqaXJpXCA7Civmv4HmtYEgPCBkYWt1cnl1dVwgOwor57Sg5Lq6IDwgc2hpcm91dG9cIDsKK+S4jeW+ueW6lSA8IGZ1dGV0dGVpXCA7Civmv4DmtYEgPCBnZWtpcnl1dVwgOwor5Z+35LqLIDwgc2hpdHN1amlcIDsKK+eVmeWuiOWuhSA8IHJ1c3V0YWt1XCA7CivmiYDovYQgPCBzaG9rYXRzdVwgOwor5ouS57W2IDwga3lvemV0c3VcIDsKK+WHoeippuWQiCA8IGJvbnNoaWFpXCA7CivkuIfmranoqIggPCBtYW5wb2tlaVwgOwor5LqM5p6a6LKdIDwgbmltYWlnYWlcIDsKK+aOkuaXpSA8IGhhaW5pY2hpXCA7CivnlKjmsLTot68gPCB5b3VzdWlyb1wgOwor57O75YiXIDwga2VpcmV0c3VcIDsKK+ihsOa7hSA8IHN1aW1ldHN1XCA7CivmmYLoqIjlupcgPCB0b2tlaXRlblwgOwor5Zu65a6a5a2QIDwga290ZWlzaGlcIDsKK+acieeFmeeCrSA8IHl1dWVudGFuXCA7Civoo4/prLzploAgPCB1cmFraW1vblwgOwor5o6h5o6YIDwgc2Fpa3V0c3VcIDsKK+W+oeavjeanmCA8IG9rYWFzYW1hXCA7Civln5LlhoUgPCByYWNoaW5haVwgOwor6YGT56WW56WeIDwgZG91c29qaW5cIDsKK+WcqOaXpSA8IHphaW5pY2hpXCA7CivlkIjms5XljJYgPCBnb3Vob3VrYVwgOwor5ryB6ImyIDwgZ3lvc2hva3VcIDsKK+aLmeethiA8IHNlcHBpdHN1XCA7CivntJTkuIAgPCBqdW4nJ2l0c3VcIDsKK+mmlumDveWcjyA8IHNodXRva2VuXCA7CivkuInmr5vnjKsgPCBtaWtlbmVrb1wgOwor5o6i55+l5qmfIDwgdGFuY2hpa2lcIDsKK+atu+eBq+WxsSA8IHNoaWthemFuXCA7CivoibLmqKHmp5ggPCBpcm9tb3lvdVwgOwor57O46Zu76KmxIDwgaXRvZGVud2FcIDsKK+mHjeWkp+WMliA8IGp1dWRhaWthXCA7CivmkKzlhaUgPCBoYW4nJ255dXVcIDsKK+mWouWPliA8IHNla2l0b3JpXCA7CivkuInmrrXnm64gPCBzYW5kYW5tZVwgOwor56Wt5aOH5bqnIDwgc2FpZGFuemFcIDsKK+aQvuS5syA8IHNha3VueXV1XCA7Civng4/luL3lrZDlkI0gPCBlYm9zaGluYVwgOwor5ryr562GIDwgbWFucGl0c3VcIDsKK+WFhOW8n+WtkCA8IGFuaWRlc2hpXCA7CivpgYvlkb3oq5YgPCB1bm1laXJvblwgOwor5pmu6YCa56eRIDwgZnV0c3V1a2FcIDsKK+S4iuWPpOWPsiA8IGpvdWtvc2hpXCA7CivpoJDosq/ph5EgPCB5b2Nob2tpblwgOwor5oqc576kIDwgYmF0c3VndW5cIDsKK+WmpeW9k+aApyA8IGRhdG91c2VpXCA7Civlm73mn4QgPCBrdW5pZ2FyYVwgOwor6JGh6JCE6ImyIDwgYnVkb3Vpcm9cIDsKK+aOkuawtOi3ryA8IGhhaXN1aXJvXCA7CivmqKrmlq3pnaIgPCBvdWRhbm1lblwgOwor5pW057WM5qmfIDwgc2Vpa2Vpa2lcIDsKK+aJi+iiiyA8IHRlYnVrdXJvXCA7CivplqPlg5ogPCBrYWt1cnlvdVwgOwor57Ch5L2T5a2XIDwga2FudGFpamlcIDsKK+miqOmCquawl+WRsyA8IGthemVnaW1pXCA7Civlj6/murbniYcgPCBrYXlvdWhlblwgOwor5YSA5LuX5YW1IDwgZ2lqb3VoZWlcIDsKK+mZuOWxi+aguSA8IHJva3V5YW5lXCA7CivnsaTlvJUgPCBrdWppYmlraVwgOwor5bqn6KuH5LyaIDwgemFkYW5rYWlcIDsKK+W4huWJjeiIuSA8IGhvbWFlc2VuXCA7CivmjIfoqbHms5UgPCBzaGl3YWhvdVwgOwor5YG96YCg5ZOBIDwgZ2l6b3VoaW5cIDsKK+eti+iCiSA8IGtpbicnbmlrdVwgOwor5LiW5biv5pWwIDwgc2V0YWlzdXVcIDsKK+S4gOWRqOacnyA8IGlzc2h1dWtpXCA7CivkuK3ogLPngo4gPCBjaHV1amllblwgOwor56qT6ZqbIDwgbWFkb2dpd2FcIDsKK+WvjOWjq+mAmiA8IGZ1aml0c3V1XCA7CivlrrblsYvnqI4gPCBrYW9rdXplaVwgOwor6ZaT5YWrIDwga2FucGFjaGlcIDsKK+esueiInyA8IHNhc2FidW5lXCA7CivmqZ/li5XpmoogPCBraWRvdXRhaVwgOwor6Ziy54Gr57eaIDwgYm91a2FzZW5cIDsKK+aVmeitt+mZoiA8IGt5b3Vnb2luXCA7CivmjqXlsrggPCBzZXRzdWdhblwgOwor5oiv6KiAIDwgdGF3YWdvdG9cIDsKK+ieuuWtkOWxsSA8IG5laml5YW1hXCA7CivkubPlhZDpmaIgPCBueXV1amlpblwgOwor6KGA5rayIDwga2V0c3Vla2lcIDsKK+iFleaZguioiCA8IHVkZWRva2VpXCA7CivooI/njokgPCBrYW5pdGFtYVwgOwor6KGA5raZIDwga2V0c3VydWlcIDsKK+aIuOiiiyA8IHRvYnVrdXJvXCA7CivmnLHljbDnirYgPCBzaHVpbmpvdVwgOwor5o6o5a+fIDwgc3Vpc2F0c3VcIDsKK+ecn+aEj+e+qSA8IHNoaW4nJ2lnaVwgOwor6YGK5oqA5aC0IDwgeXV1Z2lqb3VcIDsKK+WLp+W3peWgtCA8IGthbmtvdWJhXCA7CivmjqXlrqIgPCBzZWtreWFrdVwgOwor5LiJ5Yag6aasIDwgc2Fua2FuYmFcIDsKK+WXheimmiA8IGt5dXVrYWt1XCA7CivlpKnmiY3lhZAgPCB0ZW5zYWlqaVwgOwor6YCG6IyC5pyoIDwgc2FrYW1vZ2lcIDsKK+aKmOevgCA8IG9yaWZ1c2hpXCA7Civoo5zlhYXlhbUgPCBob2p1dWhlaVwgOwor5bu66K2w6ICFIDwga2VuZ2lzaGFcIDsKK+W4uOWknOeBryA8IGpvdXlhdG91XCA7CivmvaTmu5EgPCBqdW5rYXRzdVwgOwor6Y6M6LazIDwga2FtYWFzaGlcIDsKK+iNieWxi+aguSA8IGt1c2F5YW5lXCA7Civmva7mtYEgPCBjaG91cnl1dVwgOwor5Zub5pyIIDwgc2hpZ2F0c3VcIDsKK+WYsueskSA8IGNob3VzaG91XCA7CivmqKnlqIHogIUgPCBrZW4nJ2lzaGFcIDsKK+eqrui/vSA8IGt5dXV0c3VpXCA7Civnqq7ov6sgPCBreXV1aGFrdVwgOwor5o+h5YqbIDwgYWt1cnlva3VcIDsKK+egleWyqeapnyA8IHNhaWdhbmtpXCA7CivokaHokITns5YgPCBidWRvdXRvdVwgOwor55m95Lqc6aSoIDwgaGFrdWFrYW5cIDsKK+a3t+WSjOaApyA8IGtvbndhc2VpXCA7Civlt6bpoaflj7PnnIQgPCBzYWtvdWJlblwgOwor5YyW57Kn5q6/IDwga2V3YWlkZW5cIDsKK+mNm+mJhCA8IHRhbnRldHN1XCA7Civmj5rlipsgPCB5b3VyeW9rdVwgOwor5Y2D5YiG5q+UIDwgc2VuYnVuaGlcIDsKK+erueiWriA8IHRha2V5YWJ1XCA7CivmiY3oibIgPCBzYWlzaG9rdVwgOwor5pmC6KiI5Y+wIDwgdG9rZWlkYWlcIDsKK+WQjOavjeWniSA8IGRvdWJvc2hpXCA7Civnq4voq5YgPCByaXRzdXJvblwgOwor57Gz5Z2qIDwgYmVpdHN1Ym9cIDsKK+aloCA8IGt1c3Vub2tpXCA7CivnrYbnrrEgPCBmdWRlYmFrb1wgOwor5ris6YePIDwgc29rdXJ5b3VcIDsKK+etieetiSA8IG5hZG9uYWRvXCA7Civnq4voqIAgPCByaXRzdWdlblwgOwor6buE5rC05LuZIDwga2lzdWlzZW5cIDsKK+eym+WFmiA8IHNodWt1dG91XCA7CivlvLHlkbPlmYwgPCB5b3dhbWlzb1wgOwor6KO45Ye6IDwgcmFzaHV0c3VcIDsKK+mNi+mHnCA8IG5hYmVrYW1hXCA7CivnlZnlrojkuK0gPCBydXN1Y2h1dVwgOwor6KGd5pKDIDwgc2hvdWdla2lcIDsKK+a3t+mbkSA8IGtvbnphdHN1XCA7CivlsI/lhZDnp5EgPCBzaG91bmlrYVwgOwor6ZW35LmFIDwgY2hvdWt5dXVcIDsKK+S4ieWNgeaIuCA8IHNhbmppa2tvXCA7Civpm7vpm6LlsaQgPCBkZW5yaXNvdVwgOwor6auY6LiP5rS+IDwga291dG91aGFcIDsKK+eQhuW3peezuyA8IHJpa291a2VpXCA7CivnhKHnpLzorJsgPCBidXJlaWtvdVwgOwor5Zyw5aKDIDwgZGppemFrYWlcIDsKK+aMv+aKnCA8IHNvdWJhdHN1XCA7Civku67lkI3mloflrZcgPCBrYW5hbW9qaVwgOwor5LiN5Y2B5YiGIDwgZnVqdXVidW5cIDsKK+WTuuS5s+acnyA8IGhvbnl1dWtpXCA7Civnn7PmsrnnjosgPCBzZWtpeXVvdVwgOwor6KGj5omLIDwga29yb21vZGVcIDsKK+W+oeWIqeebiiA8IGdvcml5YWt1XCA7CivmipXmm7jlrrYgPCB0b3VzaG9rYVwgOwor6YG655WZ5ZOBIDwgaXJ5dXVoaW5cIDsKK+ibuOi2syA8IHRha29hc2hpXCA7CivpgbrkvJ3nl4UgPCBpZGVuYnlvdVwgOwor5o+a54Kt5qmfIDwgeW91dGFua2lcIDsKK+mdnuWkieaPmyA8IGhpaGVua2FuXCA7CivmlLnmraPmoYggPCBrYWlzZWlhblwgOwor6auY6auY5bqmIDwga291a291ZG9cIDsKK+e1jOeUo+WppiA8IGtlaXNhbnB1XCA7CivmjqXlkIggPCBzZXRzdWdvdVwgOwor6KOP5Y+jIDwgdXJhZ3VjaGlcIDsKK+aKkeeVmSA8IHlva3VyeXV1XCA7CivotaToo7joo7ggPCBzZWtpcmFyYVwgOwor5re35ZCI5qmfIDwga29uZ291a2lcIDsKK+a9ruaZgiA8IHNoaW9kb2tpXCA7Civlr4TotIjlk4EgPCBraXpvdWhpblwgOwor5r+D5a+GIDwgbm91bWl0c3VcIDsKK+WknOihjOaApyA8IHlha291c2VpXCA7CivliY3ooZvmtL4gPCB6ZW4nJ2VpaGFcIDsKK+acquaxuueulyA8IG1pa2Vzc2FuXCA7Civlm73lraYgPCBrb2t1Z2FrdVwgOwor5ryg5rygIDwgYmFrdWJha3VcIDsKK+aPieS6iyA8IG1vbWVnb3RvXCA7CivkuLvopoHpg6ggPCBzaHV5b3VidVwgOwor6YG/5a+S5ZywIDwgaGlrYW5jaGlcIDsKK+awtOWeoumboiA8IG1penVnb3JpXCA7Civlp5ToqJfnlJ8gPCBpdGFrdXNlaVwgOwor6K2m5aCx5qmfIDwga2VpaG91a2lcIDsKK+a4qee9qOazlSA8IG9uJydhbnBvdVwgOwor5a++5b+c54mIIDwgdGFpb3ViYW5cIDsKK+WWh+WYm+aVmSA8IHJhbWFreW91XCA7CivpgbrnlZnliIYgPCBpcnl1dWJ1blwgOwor5piG5biD6Iy2IDwga29uYnVjaGFcIDsKK+m8u+mrrSA8IGhhbmFoaWdlXCA7CivkuZfnrpflmaggPCBqb3V6YW5raVwgOwor56uL6JG1IDwgdGFjaGlhb2lcIDsKK+eyieS5syA8IGZ1bicnbnl1dVwgOwor6by76auYIDwgaGFuYXRha2FcIDsKK+iRrOWEgOekviA8IHNvdWdpc2hhXCA7CivliKTmpJzkuosgPCBoYW5rZW5qaVwgOwor5ZaA6KGAIDwga2Fra2V0c3VcIDsKK+eJueeVsOeCuSA8IHRva3VpdGVuXCA7Civkv53pmbrlsYsgPCBob2tlbicneWFcIDsKK+aKleeJqSA8IG5hZ2Vtb25vXCA7CivlnLDljbUgPCBqaXRhbWFnb1wgOwor5LiN6YO95ZCIIDwgZnV0c3Vnb3VcIDsKK+aJgOaMgemHkSA8IHNob2ppa2luXCA7CivomY7msrPosZogPCB0b3JhZnVndVwgOwor5oqA6IO96ICFIDwgZ2lub3VzaGFcIDsKK+aKl+itsOaWhyA8IGtvdWdpYnVuXCA7CivoopblnqMgPCBzb2RlZ2FraVwgOwor5pei6KO95ZOBIDwga2lzZWloaW5cIDsKK+WfuuekjueahCA8IGtpc290ZWtpXCA7Civmt7HphZIgPCBmdWthemFrZVwgOwor6LKd57Sw5belIDwga2FpemFpa3VcIDsKK+m7kueZvuWQiCA8IGt1cm95dXJpXCA7CivnqbrosYYgPCBzb3JhbWFtZVwgOwor6Iy26I+T5a2QIDwgY2hhZ2FzaGlcIDsKK+m8u+miqCA8IGhhbmFrYXplXCA7CivnsbPku48gPCBiZWlmdXRzdVwgOwor5ZCm5a6a5paHIDwgaGl0ZWlidW5cIDsKK+aNleWksSA8IGhvc2hpdHN1XCA7CivmioTniakgPCBzaG91bW9ub1wgOwor56u557ChIDwgY2hpa3VrYW5cIDsKK+aKueauuiA8IG1hc3NhdHN1XCA7CivlvIHorbflo6sgPCBiZW5nb3NoaVwgOwor5omL6KOP5YmjIDwgc2h1cmlrZW5cIDsKK+mKgOaZguioiCA8IGdpbmRva2VpXCA7CivkuInpgKPnrKYgPCBzYW5yZW5wdVwgOwor6KOP5LuYIDwgdXJhZHp1a2VcIDsKK+WUkOmLpCA8IGthcmFzdWtpXCA7CivlnKflh7ogPCBhc3NodXRzdVwgOwor56uL6ISaIDwgcmlra3lha3VcIDsKK+erueeuhiA8IHRha2ViZXJhXCA7Civlm73lm70gPCBrdW5pZ3VuaVwgOwor57CS5aWqIDwgc2FuZGF0c3VcIDsKK+Wdh+S4gCA8IGtpbicnaXRzdVwgOwor5ryP5rOEIDwgcm91c2V0c3VcIDsKK+m8u+mdqSA8IGhhbmFnYXdhXCA7CivnqbroqqwgPCBrdXVzZXRzdVwgOwor5bCP5YiH5a2QIDwga29raXJpa29cIDsKK+aQreS5l+WToSA8IHRvdWpvdWluXCA7CivkuJbnlYzoprMgPCBzZWthaWthblwgOwor5Zyn5YWlIDwgYXRzdW55dXVcIDsKK+aMmeW8jyA8IGt5b3NoaWtpXCA7CivnqbroqIAgPCBzb3JhZ290b1wgOwor5ZSQ6YeRIDwga2FyYWthbmVcIDsKK+WAieW6q+eVqiA8IHNvdWtvYmFuXCA7CivomY7prJogPCB0b3JhaGlnZVwgOwor5rq255m6IDwgeW91aGF0c3VcIDsKK+a7tOa7tCA8IHRla2l0ZWtpXCA7CivmvILmtYEgPCBoeW91cnl1dVwgOwor6Y+R55+iIDwga2FidXJheWFcIDsKK+aWh+enkeezuyA8IGJ1bmtha2VpXCA7Civog73mloflrrYgPCBub3VidW5rYVwgOwor5byB6K235ZujIDwgYmVuZ29kYW5cIDsKK+W3qyA8IGthbicnbmFnaVwgOwor6YqA5LiW55WMIDwgZ2luc2VrYWlcIDsKK+aLmeaWhyA8IHNldHN1YnVuXCA7CivonqLngasgPCBob3RhcnViaVwgOwor5YyI54mZ5YipIDwgaGFuZ2FyaWlcIDsKK+aJjeeVpSA8IHNhaXJ5YWt1XCA7CivpioDpvKAgPCBnaW4nJ25lenVcIDsKK+eMv+ecn+S8vCA8IHNhcnVtYW5lXCA7CivnjKrlj6PmiY0gPCBjaG9rb3phaVwgOwor6Yuz54mp5birIDwgaW1vbm9zaGlcIDsKK+eEoemJhOegsiA8IG11dGVwcG91XCA7CivlkIzliIbmr40gPCBkb3VidW5ib1wgOwor5Zu95Y6fIDwga3VuaWJhcmFcIDsKK+acqua2iOWMliA8IG1pc2hvdWthXCA7Civom57onZMgPCBuYW1la3VqaVwgOwor56m66J2JIDwgdXRzdXNlbWlcIDsKK+evieW6rSA8IGNoaWt1dGVpXCA7Civnr6TlraYgPCB0b2t1Z2FrdVwgOwor5bqD5p2x6KqeIDwga2FudG9uZ29cIDsKK+WvvyA8IGtvdG9idWtpXCA7CivkuIDnp4HkurogPCBpc3NoaWppblwgOwor6J6N54axIDwgeXV1bmV0c3VcIDsKK+a8ouiUteiqniA8IGthbnpvdWdvXCA7Civkuozkurrnm64gPCBmdXRhcmltZVwgOwor5a+M5aOr57W5IDwgZnVqaWdpbnVcIDsKK+iCm+mWgOenkSA8IGtvdW1vbmthXCA7CivpnZnpm7vmsJcgPCBzZWlkZW5raVwgOwor6Y2L6JOLIDwgbmFiZWJ1dGFcIDsKK+WOn+WLleapnyA8IGdlbmRvdWtpXCA7Civkub7oiLnmuKAgPCBrYW5kb2trdVwgOwor6byT5ZC56ICFIDwga29zdWlzaGFcIDsKK+Wkp+WSjOeFriA8IHlhbWF0b25pXCA7CivnrYbmtJcgPCBmdWRlYXJhaVwgOwor6Iy26YGT5YW3IDwgY2hhZG91Z3VcIDsKK+WbsOWNtCA8IGtvbmt5YWt1XCA7Civmh7jntbYgPCBrZW56ZXRzdVwgOwor5o6S5rCX566hIDwgaGFpa2lrYW5cIDsKK+m7kum7tCA8IGt1cm9rYWJpXCA7CivlvZPkuovogIUgPCB0b3VqaXNoYVwgOwor5aKT6KqM6YqYIDwgYm9zaGltZWlcIDsKK+m7kum6piA8IGt1cm9tdWdpXCA7Civnn63msLTot68gPCB0YW5zdWlyb1wgOwor5oiQ56iLIDwgbmFydWhvZG9cIDsKK+WWq+iMtuW6lyA8IGtpc3NhdGVuXCA7CivmmYLplpPluK8gPCBqaWthbnRhaVwgOwor54Sh5rC06YW4IDwgbXVzdWlzYW5cIDsKK+aJjeeJqSA8IHNhaWJ1dHN1XCA7Civpu5Lpt7ogPCBrdXJvc2FnaVwgOwor6Ymk6by7IDwga2FnaWJhbmFcIDsKK+egtOmYsuazlSA8IGhhYm91aG91XCA7Civmt7fooYAgPCBrb25rZXRzdVwgOwor566x5bqtIDwgaGFrb25pd2FcIDsKK+WQiOatk+acqCA8IG5lbXVub2tpXCA7Civmi5nmgqogPCBzZXRzdWFrdVwgOwor6IGW5q2M6ZqKIDwgc2Vpa2F0YWlcIDsKK+m7kum0qCA8IGt1cm9nYW1vXCA7CivpioDpq6ogPCBnaW5wYXRzdVwgOwor6JuG6JmrIDwgdWppbXVzaGlcIDsKK+WNsOe0meeojiA8IGluc2hpemVpXCA7CivooI3luqcgPCBzYXNvcml6YVwgOwor6KKW5LiIIDwgc29kZXRha2VcIDsKK+aIpueVpSA8IHNlbnJ5YWt1XCA7CivmlofmiL/lhbcgPCBidW5ib3VndVwgOwor5L+d566h6YeRIDwgaG9rYW5raW5cIDsKK+WbnuWLhSA8IGthaWNob2t1XCA7CivmnIDlpJrmlbAgPCBzYWl0YXN1dVwgOwor5LiN6YCP5piOIDwgZnV0b3VtZWlcIDsKK+agveWfueaJgCA8IHNhaWJhaWpvXCA7Civmnpfmqo7phZIgPCByaW5nb3NodVwgOwor5Zu95Lq6IDwga3VuaWJpdG9cIDsKK+avjee0sOiDniA8IGJvc2FpYm91XCA7Civlpb3miZPogIUgPCBrb3VkYXNoYVwgOwor5YaG562S5b2iIDwgZW50b3VrZWlcIDsKK+aRgumWouWutiA8IHNla2thbmtlXCA7CivmraPopo/ou40gPCBzZWlraWd1blwgOwor5rWc6aKoIDwgaGFtYWthemVcIDsKK+W4uOWll+WPpSA8IGpvdXRvdWt1XCA7Civnq6rnkLQgPCB0YXRlZ290b1wgOwor5riL6Iy2IDwgc2hpYnVjaGFcIDsKK+acquaxuua4iCA8IG1pa2Vzc2FpXCA7CivomrDonJIgPCBnZWppZ2VqaVwgOwor57SN5oi46ImyIDwgbmFuZG9pcm9cIDsKK+aKl+aXpSA8IGtvdW5pY2hpXCA7CivpnZ7nt5rlvaIgPCBoaXNlbmtlaVwgOwor6aKo5ZGC6YecIDwgZnVyb2dhbWFcIDsKK+W8geitt+S6uiA8IGJlbmdvbmluXCA7CivmuIvoibIgPCBzaGlidWlyb1wgOwor6Y6u5a6I5bqcIDwgY2hpbmp1ZnVcIDsKK+S4gOW8tee+hSA8IGl0Y2hvdXJhXCA7CivlrZDkvJrnpL4gPCBrb2dhaXNoYVwgOwor5LiN5YeN5rivIDwgZnV0b3Vrb3VcIDsKK+a0u+mtmiA8IGthdHN1Z3lvXCA7CivljbXloZTloLQgPCByYW50b3ViYVwgOwor5Lit5aSu6YOoIDwgY2h1dW91YnVcIDsKK+S4jeWHjea2siA8IGZ1dG91ZWtpXCA7CivlpKnnp6TluqcgPCB0ZW5iaW56YVwgOwor56m66ICzIDwgc29yYW1pbWlcIDsKK+WNsemZuuaApyA8IGtpa2Vuc2VpXCA7CivkuI3lh43mtbcgPCBmdXRvdWthaVwgOwor5aSn55yf6Z2i55uuIDwgb29tYWppbWVcIDsKK+eZu+WxseW4vSA8IHRvemFuYm91XCA7Civpiq3ph5EgPCB6ZW5pa2FuZVwgOwor54WO6LGG6IWQIDwgaXJpZG91ZnVcIDsKK+WIuOWjsuapnyA8IGtlbmJhaWtpXCA7CivmmYLplpPlpJYgPCBqaWthbmdhaVwgOwor5oud5a+fIDwgaGFpc2F0c3VcIDsKK+awl+WAmeW4ryA8IGtpa291dGFpXCA7Civmpb3lmajlupcgPCBnYWtraXRlblwgOwor5om/5pyNIDwgc2hvdWZ1a3VcIDsKK+aknOmdnumBleS9vyA8IGtlYmlpc2hpXCA7CivmiKrnhLYgPCBzZXRzdXplblwgOwor6b6N6IifIDwgcnl1dXNodXVcIDsKK+acrOmHkeW6qyA8IGhvbmtpbmtvXCA7Civpm4TlvIHlrrYgPCB5dXViZW5rYVwgOwor5LuY5biv54qvIDwgZnV0YWloYW5cIDsKK+ilv+a0i+eigSA8IHNlaXlvdWdvXCA7CivmiKbkuonlvowgPCBzZW5zb3Vnb1wgOwor5pWP6IWV5a62IDwgYmlud2Fua2FcIDsKK+S4reS7peS4iiA8IGNodXVpam91XCA7Civpq5jkuIvpp4QgPCB0YWthZ2V0YVwgOwor6Z2e5aOy5ZOBIDwgaGliYWloaW5cIDsKK+a3t+iJsiA8IGtvbnNob2t1XCA7CivkvZXku6Pnm64gPCBuYW5kYWltZVwgOwor6auY5p6257eaIDwga291a2FzZW5cIDsKK+awtOmdouS4iyA8IHN1aW1lbmthXCA7Civnsr7msrnmiYAgPCBzZWl5dXNob1wgOwor5p2x6KW/5bGLIDwgdG91emFpeWFcIDsKK+a6oua1gSA8IGl0c3VyeXV1XCA7CivpioXniYjnlLsgPCBkb3VoYW5nYVwgOwor5oqV5oqAIDwgbmFnZXdhemFcIDsKK+eCiumjr+WZqCA8IHN1aWhhbmtpXCA7CivmiJHniakgPCB3YWdhbW9ub1wgOwor5YWD5bil5bqcIDwgZ2Vuc3VpZnVcIDsKK+m8u+iosSA8IGhhbmFtb3RvXCA7Civps6XkuYvlt6MgPCB0b3Jpbm9zdVwgOwor5Yy755mC6LuKIDwgaXJ5b3VzaGFcIDsKK+eJueeVsOaApyA8IHRva3Vpc2VpXCA7Civmup3ms6UgPCBkb2J1ZG9yb1wgOwor56aE6auYIDwgcm9rdWRha2FcIDsKK+WGrOiHs+e3miA8IHRvdWppc2VuXCA7Civnqb/lrZTmqZ8gPCBzZW5rb3VraVwgOwor54Sh6JOL6LuKIDwgbXVnYWlzaGFcIDsKK+a6neawtCA8IGRvYnVtaXp1XCA7CivnqbrnsaQgPCBrYXJha3VqaVwgOwor5oq15oqX5ZmoIDwgdGVpa291a2lcIDsKK+iSuOawl+iIuSA8IGpvdWtpc2VuXCA7CivpnZ7oqLHlrrkgPCBoaWt5b3lvdVwgOwor6YGg6L+R5rOVIDwgZW5raW5ob3VcIDsKK+mJhOmqqCA8IHRla2tvdHN1XCA7Civmua/nhZkgPCB5dWtlbXVyaVwgOwor5reh6ImyIDwgdGFuc2hva3VcIDsKK+S7ruWumuazlSA8IGthdGVpaG91XCA7Civopb/mtIvnlLsgPCBzZWl5b3VnYVwgOwor56eB6YmEIDwgc2hpdGV0c3VcIDsKK+mBlOejqOW/jCA8IGRhcnVtYWtpXCA7Civnp5LpgJ8gPCBieW91c29rdVwgOwor56m6566xIDwga2FyYWJha29cIDsKK+eqgeeriyA8IHRvdHRhdHN1XCA7CivnlbPmiJDoqp4gPCBqb3VzZWlnb1wgOwor5oCq5LqL5Lu2IDwga2FpamlrZW5cIDsKK+aJgOaMgeiAhSA8IHNob2ppc2hhXCA7Civmk6zkurrms5UgPCBnaWppbmhvdVwgOwor5ZSQ6I2JIDwga2FyYWt1c2FcIDsKK+a6luWkp+aJiyA8IGp1bicnb290ZVwgOwor5Zue6Lui5qmfIDwga2FpdGVua2lcIDsKK+ifu+WhmiA8IGFyaWR6dWthXCA7Civmva7lhYggPCBzaGlvc2FraVwgOwor6Jma6KqsIDwga3lvc2V0c3VcIDsKK+ihgOS+vyA8IGtldHN1YmVuXCA7CivmiKbmsqEgPCBzZW5ib3RzdVwgOwor5Y+v5ZOA55u4IDwga2F3YWlzb3VcIDsKK+aMh+WFiCA8IHl1YmlzYWtpXCA7CivpjKbntbUgPCBuaXNoaWtpZVwgOwor5Lqk6Zqb5a62IDwga291c2Fpa2FcIDsKK+mbouS5s+acnyA8IHJpbnl1dWtpXCA7Civno4HmgKflsaQgPCBqaXNlaXNvdVwgOwor6LaK5Yas6ZqKIDwgZXR0b3V0YWlcIDsKK+W+oeeEoeaymeaxsCA8IGdvYnVzYXRhXCA7CivmiYvmnpUgPCB0ZW1ha3VyYVwgOwor5Y+z6aGn5bem55yEIDwgdWtvc2FiZW5cIDsKK+itnOmdouWPsCA8IGZ1bWVuZGFpXCA7Civnp4DpgLggPCBzaHV1aXRzdVwgOwor5Luu5bCP5bGLIDwga2FyaWdveWFcIDsKK+ebruirluimiyA8IG1va3Vyb21pXCA7Civnq7nmp40gPCB0YWtleWFyaVwgOwor5ryU566X5a2QIDwgZW56YW5zaGlcIDsKK+m7kumJhCA8IGt1cm9nYW5lXCA7CivmnInpmZDlgIsgPCB5dXVnZW5rb1wgOwor5oi46Zqc5a2QIDwgdG9zaG91amlcIDsKK+WPr+mNm+aApyA8IGthdGFuc2VpXCA7CivlpKrpvJPliKQgPCB0YWlrb2JhblwgOwor5rW35Z2K5Li7IDwgdW1pYm91enVcIDsKK+etieW8jyA8IHRvdXNoaWtpXCA7Civol6nplqUgPCBoYW5iYXRzdVwgOwor5rWB6YePIDwgcnl1dXJ5b3VcIDsKK+m7jemtmuWtkCA8IGtpYmluYWdvXCA7CivnqoHnmbogPCB0b3BwYXRzdVwgOwor6Ymk6YedIDwga2FnaWJhcmlcIDsKK+aKleWuvyA8IHRvdXNodWt1XCA7CivllrbmnpfnvbIgPCBlaXJpbnNob1wgOwor56u55p6XIDwgY2hpa3VyaW5cIDsKK+WbuuacieWApCA8IGtveXV1Y2hpXCA7CivllZPnmbogPCBrZWloYXRzdVwgOwor56u55p2QIDwgY2hpa3V6YWlcIDsKK+mBuuS8neWtpiA8IGlkZW5nYWt1XCA7CivogrLnqK7miYAgPCBpa3VzaHVqb1wgOwor56m655m6IDwga3V1aGF0c3VcIDsKK+aJleaLrSA8IGZ1c3Nob2t1XCA7Civph5HpjY3ph5EgPCBraW5tZWtraVwgOwor56We6aKoIDwga2FtaWthemVcIDsKK+a1gemAnyA8IHJ5dXVzb2t1XCA7CivmtYHpgJogPCByeXV1dHN1dVwgOwor5rud5bedIDwgdGFraWdhd2FcIDsKK+WPguS6i+WumCA8IHNhbmppa2FuXCA7Civnm7joq4fmiYAgPCBzb3VkYW5qb1wgOwor54Sh56iO5ZOBIDwgbXV6ZWloaW5cIDsKK+epgOeykiA8IGtva3VyeXV1XCA7Civnq6/mnKsgPCB0YW5tYXRzdVwgOwor5ZSQ57SZIDwga2FyYWthbWlcIDsKK+W/nOetlOiDvSA8IG91dG91bm91XCA7CivmpJzllY/miYAgPCBrZW5tb25qb1wgOwor5bKh5aC05omAIDwgb2thYmFzaG9cIDsKK+WcsOiUteWwiiA8IGppem91c29uXCA7CivnqbrkuJbovp4gPCBrYXJhc2VqaVwgOwor6KGo5YW35bGLIDwgaHlvdWd1eWFcIDsKK+W8lOaFsOmHkSA8IGNob3Vpa2luXCA7CivliJ3nlKPlqaYgPCBzaG9zYW5wdVwgOwor6Ju454S8IDwgdGFrb3lha2lcIDsKK+elnembuyA8IHNodWt1ZGVuXCA7CivmgZDpvo0gPCBreW91cnl1dVwgOwor5pqX6KiY54mpIDwgYW5raW1vbm9cIDsKK+m6u+mFlOWJpCA8IG1hc3VpemFpXCA7Civol6rljLvogIUgPCB5YWJ1aXNoYVwgOwor5ZOB6JaEIDwgc2hpbmF1c3VcIDsKK+aLneWAnyA8IGhhaXNoYWt1XCA7CivkvZXmmYLpoIMgPCBpdHN1Z29yb1wgOwor56iu57SZIDwgdGFuZWdhbWlcIDsKK+a4qeeGsSA8IG9uJyduZXRzdVwgOwor6YmE6YmiIDwgdGVwcGFjaGlcIDsKK+a6gOaciCA8IG1hbmdldHN1XCA7CivpjYvniakgPCBuYWJlbW9ub1wgOwor5LqM576p55qEIDwgbmlnaXRla2lcIDsKK+mbgeearue0mSA8IGdhbnBpc2hpXCA7Civml6XlkozoposgPCBoaXlvcmltaVwgOwor5rOi6aKoIDwgbmFtaWthemVcIDsKK+ekvuS8mumDqCA8IHNoYWthaWJ1XCA7CivpkZHliKUgPCBrYW5iZXRzdVwgOwor6buS6LG5IDwga3Vyb2h5b3VcIDsKK+aIv+aIvyA8IGZ1c2FmdXNhXCA7Civpu5LosYYgPCBrdXJvbWFtZVwgOwor5Yil5LiW55WMIDwgYmVzc2VrYWlcIDsKK+eEoeWQjeawjyA8IG11bWVpc2hpXCA7Civpm4flgq3ogIUgPCBrb3lvdXNoYVwgOwor5ZSQ56qBIDwgdG91dG90c3VcIDsKK+e1oue3nuWtkCA8IGF5YWRvbnN1XCA7CivmuKbnirbmlocgPCBrYWpvdW1vblwgOwor6buZ6Ku+IDwgbW9rdWRha3VcIDsKK+iHquWLlei7iiA8IGppZG91c2hhXCA7CivpmaTojYnliaQgPCBqb3NvdXphaVwgOwor6YeO6bygIDwgbm9uZXp1bWlcIDsKK+S4jeWFrOatoyA8IGZ1a291c2VpXCA7Civpl5jmioDloLQgPCB0b3VnaWpvdVwgOwor5Zas5pyoIDwga3lvdWJva3VcIDsKK+m7meiqrSA8IG1va3Vkb2t1XCA7CivmgaXpqqggPCBjaGlrb3RzdVwgOwor5Li76KiY5oa2IDwgc2h1a2lva3VcIDsKK+aJi+W/gyA8IHRlZ29rb3JvXCA7CivnqoHnhLYgPCB0b3RzdXplblwgOwor6by75LiL6ZW3IDwgYmlrYWNob3VcIDsKK+acgOWkp+WMliA8IHNhaWRhaWthXCA7CivmirzliIcgPCBvc2hpa2lyaVwgOwor6Ziy54KO5YmkIDwgYm91ZW56YWlcIDsKK+aKkeWcpyA8IHlva3VhdHN1XCA7CivmhbbnpZ0gPCBrZWlzaHVrdVwgOwor562G5aSqIDwgZnVkZWJ1dG9cIDsKK+mJhOmBkyA8IHRldHN1ZG91XCA7CivkvZXmmYLplpMgPCBuYW5qaWthblwgOwor57O757Wx5qi5IDwga2VpdG91anVcIDsKK+W+oeiHqui6qyA8IGdvamlzaGluXCA7CivkuIroj5PlrZAgPCBqb3VnYXNoaVwgOwor6Jma6ISxIDwga3lvZGF0c3VcIDsKK+ays+mxkiA8IGthd2FtYXN1XCA7CivooqvmuJvmlbAgPCBoaWdlbnN1dVwgOwor5pif5p2h5peXIDwgc2Vpam91a2lcIDsKK+mKreiLlCA8IHplbmlnb2tlXCA7Civnq4vmnK0gPCB0YXRlZnVkYVwgOwor5Zmb5YK3IDwga2FtaWtpenVcIDsKK+mHjum2siA8IG5vYml0YWtpXCA7Civnlo7msLTmgKcgPCBzb3N1aXNlaVwgOwor6Ieq5rK75qipIDwgamljaGlrZW5cIDsKK+mAruaNleiAhSA8IHRhaWhvc2hhXCA7CivmvJTlh7ogPCBlbnNodXRzdVwgOwor6by757SZIDwgaGFuYWdhbWlcIDsKK+a4qea4qSA8IG51a3VudWt1XCA7CivkuozpoK3nrYsgPCBuaXRvdWtpblwgOwor6by757OeIDwgaGFuYWt1c29cIDsKK+e0oOa1quS6uiA8IHN1cm91bmluXCA7Civnp4vloLTmiYAgPCBha2liYXNob1wgOwor6Ii554Gr5LqLIDwgZnVuYWthamlcIDsKK+iCsueoruWutiA8IGlrdXNodWthXCA7CivmgqrpgIYgPCBha3VneWFrdVwgOwor5q2j6Kqy5aSWIDwgc2Vpa2FnYWlcIDsKK+eFieeTpuWhgCA8IHJlbmdhYmVpXCA7CivmgqrovqMgPCBha3VyYXRzdVwgOwor6Iux5paH5rOVIDwgZWlidW5wb3VcIDsKK+acquaxuuWumiA8IG1pa2V0dGVpXCA7Civpu5LooaggPCBrb2t1aHlvdVwgOwor5YGl5bq3576OIDwga2Vua291YmlcIDsKK+S4oeitsOmZoiA8IHJ5b3VnaWluXCA7CivmhJvllLHmrYwgPCBhaXNob3VrYVwgOwor5LqM5pys5qOSIDwgbmlob25ib3VcIDsKK+m8u+etiyA8IGhhbmFzdWppXCA7Civmsojpu5kgPCBjaGlubW9rdVwgOwor6Z2S54mp5bGLIDwgYW9tb25veWFcIDsKK+mHkemrqiA8IGtpbnBhdHN1XCA7Civku67lrprlvaIgPCBrYXRlaWtlaVwgOwor6YmI6LGGIDwgbmF0YW1hbWVcIDsKK+ejr+m3uCA8IGlzb3NoaWdpXCA7Civmup3lt50gPCBkb2J1Z2F3YVwgOwor6Ieq5YuV6KmeIDwgamlkb3VzaGlcIDsKK+S+v+WunOS4iiA8IGJlbmdpam91XCA7CivnlLDoiI7poqggPCBpbmFrYWZ1dVwgOwor6Y215p2fIDwga2FnaXRhYmFcIDsKK+elnumAnyA8IHNoaW5zb2t1XCA7CivmnJ3lvqHpo68gPCBhc2Fnb2hhblwgOwor6buS6JuHIDwga3Vyb2hlYmlcIDsKK+aMh+aPruaoqSA8IHNoaWtpa2VuXCA7CivoqK3oqIjlm7MgPCBzZWtrZWl6dVwgOwor5rqA5oKmIDwgbWFuJydldHN1XCA7CivmiJHmiJEgPCB3YXJld2FyZVwgOwor6YOo5aSW6ICFIDwgYnVnYWlzaGFcIDsKK+a4hea9lCA8IHNlaWtldHN1XCA7CivokazlhIDloLQgPCBzb3VnaWpvdVwgOwor56OB5oCn5L2TIDwgamlzZWl0YWlcIDsKK+mKgOacrOS9jSA8IGdpbmhvbicnaVwgOwor562G5ZCNIDwgaGl0c3VtZWlcIDsKK+aUv+WFmuWToSA8IHNlaXRvdWluXCA7Civlr77lv5zlgKQgPCB0YWlvdWNoaVwgOwor6LuN6Imm5peXIDwgZ3Vua2Fua2lcIDsKK+S6jOS5l+aguSA8IG5pam91a29uXCA7CivnqK7nlZwgPCBzaHVjaGlrdVwgOwor5oyH5o+u5qOSIDwgc2hpa2lib3VcIDsKK+avjeWbveiqniA8IGJva29rdWdvXCA7CivnlLvnlKjntJkgPCBnYXlvdXNoaVwgOwor6YqF6ImyIDwgZG91c2hva3VcIDsKK+aknOa4qeWZqCA8IGtlbicnb25raVwgOwor5Y+N6aqoIDwgaGFua290c3VcIDsKK+WVhuazgSA8IHNob3VreW91XCA7Civpp4bmvZzoiYcgPCBrdXNlbnRlaVwgOwor5aCV6IOO572qIDwgZGF0YWl6YWlcIDsKK+a5v+W6piA8IHNoaXRzdWRvXCA7Civno4HmsJflraYgPCBqaWtpZ2FrdVwgOwor6J+E5LyPIDwgY2hpcHB1a3VcIDsKK+a1heiRsSA8IGFzYXRzdWtpXCA7Civmh5DngonngbAgPCBrYWlyb2JhaVwgOwor6KaB5rOo5oSPIDwgeW91Y2h1dWlcIDsKK+WIneeUn+WFkCA8IHNob3NlaWppXCA7CivmiJLlvosgPCBrYWlyaXRzdVwgOwor5LiN6a6u5piOIDwgZnVzZW5tZWlcIDsKK+eruuWtpiA8IGppa3VnYWt1XCA7CivlpKnptZ7ntaggPCBiaXJvdWRvdVwgOwor5ZC56LKrIDwgZnVraW51a2lcIDsKK+esueWOnyA8IHNhc2FoYXJhXCA7CivnqpPmnqAgPCBtYWRvd2FrdVwgOwor5ZSQ54mpIDwgdG91bW90c3VcIDsKK+ijveezluaJgCA8IHNlaXRvdWpvXCA7Civnq6/lsYAgPCB0YW5reW9rdVwgOwor5oqe5LiAIDwgdGFrdWl0c3VcIDsKK+WFiOmnhuiAhSA8IHNlbmt1c2hhXCA7CivliqnmiJDph5EgPCBqb3NlaWtpblwgOwor5rih5p2l5Lq6IDwgdG9yYWlqaW5cIDsKK+ethuWFiCA8IGZ1ZGVzYWtpXCA7CivpgJ/oqJjogIUgPCBzb2traXNoYVwgOwor6Yqt566xIDwgemVuaWJha29cIDsKK+mMqOaziiA8IGJ5b3VoYWt1XCA7CivoiabovInmqZ8gPCBrYW5zYWlraVwgOwor5re35rW0IDwga29uJyd5b2t1XCA7Civmt7Hmt7EgPCBmdWthYnVrYVwgOwor6Jeq6JuHIDwgeWFidWhlYmlcIDsKK+ijveeyieapnyA8IHNlaWZ1bmtpXCA7CivkubHlsaTpm7IgPCByYW5zb3V1blwgOwor5Y+C5LqL5LyaIDwgc2FuamlrYWlcIDsKK+eorueJqSA8IHRhbmVtb25vXCA7CivnqK7niZsgPCB0YW5ldXNoaVwgOwor6JuH5q+SIDwgaGViaWRva3VcIDsKK+aIjOW5tCA8IGludWRvc2hpXCA7CivpgZXms5XooYzngrogPCBpaG91a291aVwgOwor5o6S5rCX5byBIDwgaGFpa2liZW5cIDsKK+a7keWJpCA8IGthdHN1emFpXCA7Civpu5LoiLkgPCBrdXJvZnVuZVwgOwor5q2j57Wx5rS+IDwgc2VpdG91aGFcIDsKK+mKgOe/vCA8IGdpbicneW9rdVwgOwor5rOl6LazIDwgZG9yb2FzaGlcIDsKK+ijnOS9kOW9uSA8IGhvc2F5YWt1XCA7CivpjozlvaIgPCBrYW1hZ2F0YVwgOwor5pyq6YWN5b2TIDwgbWloYWl0b3VcIDsKK+a7heWNtCA8IG1la2t5YWt1XCA7CivmmK/pnZ7lhbEgPCB6ZWhpdG9tb1wgOwor6Yej6YqtIDwgdHN1cmlzZW5cIDsKK+acquWIiuihjCA8IG1pa2Fua291XCA7CivmnqLmqZ/ljb8gPCBzdXVraWtlaVwgOwor5pyq6YGC572qIDwgbWlzdWl6YWlcIDsKK+aWh+WMluiyoSA8IGJ1bmthemFpXCA7Civmraboo4XoiLkgPCBidXNvdXNlblwgOwor6KiY6ICF5ZujIDwga2lzaGFkYW5cIDsKK+WVhualrSA8IHNob3VneW91XCA7CivlvqHnlKjpgrggPCBnb3lvdXRlaVwgOwor5b6h5YWI5qOSIDwgb3Nha2lib3VcIDsKK+mJseiEiCA8IGtvdW15YWt1XCA7Civomornh7sgPCBrYWlidXNoaVwgOwor5ZCD6YCGIDwgc2hha2t1cmlcIDsKK+m6ueiPjCA8IGtvdWppa2luXCA7Civlrprmr5TkvosgPCB0ZWloaXJlaVwgOwor5ZG96ISIIDwgbWVpbXlha3VcIDsKK+WvjOWjq+W3nSA8IGZ1amlrYXdhXCA7Civpu5LogokgPCBrdXJvbmlrdVwgOwor6bqm6JeBIDwgbXVnaXdhcmFcIDsKK+eUo+WNteacnyA8IHNhbnJhbmtpXCA7Civnq7nlnqMgPCB0YWtlZ2FraVwgOwor5YiG55u45qmfIDwgYnVuc291a2lcIDsKK+mNm+aOpSA8IHRhbnNldHN1XCA7Civph53ph5EgPCBoYXJpZ2FuZVwgOwor5Lya5oSP5paH5a2XIDwga2FpaW1vamlcIDsKK+mKgOe4gSA8IGdpbmJ1Y2hpXCA7CivkuIrlsaTpm7IgPCBqb3Vzb3V1blwgOwor6YeR6YyGIDwga2FuYXNhYmlcIDsKK+eojueOhyA8IHplaXJpdHN1XCA7Civnq4vlsbEgPCB0YXRleWFtYVwgOwor5LiJ5qyh5YWDIDwgc2FuamlnZW5cIDsKK+e+pOmmrOecjCA8IGd1bm1ha2VuXCA7CivpuqbokpQgPCBtdWdpbWFraVwgOwor5Y+k6YeRIDwgZnVydWdhbmVcIDsKK+WVhOacqCA8IHRha3Vib2t1XCA7Civlj6Pph40gPCBrdWNoaW9tb1wgOwor5YW156uZ6YOoIDwgaGVpdGFuYnVcIDsKK+S4jeWFrOW5syA8IGZ1a291aGVpXCA7CivmuIfmnJsgPCBrYXRzdWJvdVwgOwor5omN5YqbIDwgc2Fpcnlva3VcIDsKK+WPpOmFkiA8IGZ1cnV6YWtlXCA7CivliY3pvLvnt5IgPCBtYWVoYW5hb1wgOwor5LiN5YeN5YmkIDwgZnV0b3V6YWlcIDsKK+m8u+eGiiA8IGhhbmFndW1hXCA7CivpjKvmnZYgPCBzaGFrdWpvdVwgOwor56m65pKuIDwga3V1c2F0c3VcIDsKK+m7mee0hCA8IG1va3V5YWt1XCA7CivniannnJ/kvLwgPCBtb25vbWFuZVwgOwor6YGK5q2p6YGTIDwgeXV1aG9kb3VcIDsKK+ekvuiqrCA8IHNoYXNldHN1XCA7CivmtYXnt5EgPCBzZW5yeW9rdVwgOwor5omL5YiAIDwgdGVnYXRhbmFcIDsKK+WQiOe4geWlh+e4gSA8IGFpZW5raWVuXCA7CivnhKHliLbpmZAgPCBtdXNlaWdlblwgOwor56mN5qW1IDwgc2Vra3lva3VcIDsKK+aJk+WCtyA8IHVjaGlraXp1XCA7CivpiYToibIgPCB0ZXRzdWlyb1wgOwor5L2T6IKy5a62IDwgdGFpaWt1a2FcIDsKK+WIhuWykOmnhSA8IGJ1bmtpZWtpXCA7Civnpo/ogLMgPCBmdWt1bWltaVwgOwor5ruF5LqhIDwgbWV0c3Vib3VcIDsKK+WMu+eZgueUqCA8IGlyeW91eW91XCA7CivmhYTnhLYgPCByaXRzdXplblwgOwor5ZCM6KqsIDwgZG91c2V0c3VcIDsKK+eqkuaBryA8IGNoaXNzb2t1XCA7Civlj7PotrMgPCBtaWdpYXNoaVwgOwor6YCu5o2V54q2IDwgdGFpaG9qb3VcIDsKK+aylumHoyA8IG9raWR6dXJpXCA7CivpgY7ljrvluLMgPCBrYWtvY2hvdVwgOwor6buS57GzIDwga3Vyb2dvbWVcIDsKK+apn+WLleaApyA8IGtpZG91c2VpXCA7CivpiYTohZUgPCB0ZXRzdXdhblwgOwor5Y+b6YCGIDwgaGFuZ3lha3VcIDsKK+eGsemiqOeCiSA8IG5lcHB1dXJvXCA7CivmranooYzogIUgPCBob2tvdXNoYVwgOwor6bue56m0IDwgdGVua2V0c3VcIDsKK+awtOmzpSA8IG1penVkb3JpXCA7CivmuoDllqsgPCBtYW5raXRzdVwgOwor5YaG6YyQ5b2iIDwgZW5zdWlrZWlcIDsKK+aIkeWbvSA8IHdhZ2FrdW5pXCA7Civlrojpiq3lpbQgPCBzaHVzZW5kb1wgOwor6YGT5YyW5birIDwgZG91a2VzaGlcIDsKK+aCquiIjCA8IGFrdXpldHN1XCA7CivomY7njKsgPCB0b3JhbmVrb1wgOwor5LiL6IW56YOoIDwga2FmdWt1YnVcIDsKK+WPjeaUv+W6nCA8IGhhbnNlaWZ1XCA7Civlm57ou6LlhIAgPCBrYWl0ZW5naVwgOwor5LiK6I2J5bGlIDwgdXdhem91cmlcIDsKK+exs+S4iumZoiA8IGJlaWpvdWluXCA7CivmtJLohLEgPCBzaGFkYXRzdVwgOwor6bq757axIDwgYXNhZHp1bmFcIDsKK+m7kOervyA8IG1vY2hpemFvXCA7CivmnJ3nqL3lj6QgPCBhc2FnZWlrb1wgOwor5ZCr6JOEIDwgZ2FuY2hpa3VcIDsKK+ijveeyieaJgCA8IHNlaWZ1bmpvXCA7CivooqvmsrvogIUgPCBoaWNoaXNoYVwgOwor5Y+C6YWMIDwgc2Fuc2hha3VcIDsKK+WurueUsOWutiA8IG1peWF0YWtlXCA7Civov5HooZvlhbUgPCBrb25vZWhlaVwgOwor5bKp5omL55yMIDwgaXdhdGVrZW5cIDsKK+mAo+maiuaXlyA8IHJlbnRhaWtpXCA7CivnrqHmpb3lmaggPCBrYW5nYWtraVwgOwor6Kyd5oGp5LyaIDwgc2hhb25rYWlcIDsKK+mkiuicguWutiA8IHlvdWhvdWthXCA7CivkupTnt5rntJkgPCBnb3NlbnNoaVwgOwor5ZCE6KGMIDwga2FrdWd5b3VcIDsKK+mNi+W6lSA8IG5hYmV6b2tvXCA7CivlubPnlJ/nnYAgPCBoZWl6ZWlnaVwgOwor5qmf5biG6Ii5IDwga2loYW5zZW5cIDsKK+aCquiAhSA8IHdhcnVtb25vXCA7CivpvLvmsLQgPCBoYW5hbWl6dVwgOwor6Z2e5o6S5rC0IDwgaGloYWlzdWlcIDsKK+edgOeVquWPtyA8IGtpYmFuZ291XCA7CivkuI3lgKvnvaogPCBmdXJpbnphaVwgOwor6aO057Sw5belIDwgYW1lemFpa3VcIDsKK+WBveS8vOeXhyA8IGdpamlzaG91XCA7CivlpKfluoPplpMgPCBvb2hpcm9tYVwgOwor6YG/6Zuj6ICFIDwgaGluYW5zaGFcIDsKK+WumuW4uOazoiA8IHRlaWpvdWhhXCA7Civku5jlsZ7oqp4gPCBmdXpva3Vnb1wgOwor5oK257W2IDwgbW9uemV0c3VcIDsKK+W5tOS8muiyuyA8IG5lbmthaWhpXCA7CivmlYXosrfogIUgPCBrb2JhaXNoYVwgOwor5LqU5aSn5rSLIDwgZ29kYWl5b3VcIDsKK+eri+WRvSA8IHJpdHN1bWVpXCA7Civnj6rol7vlnJ8gPCBrZWlzb3Vkb1wgOwor5Y6z6YGUIDwgZ2VudGF0c3VcIDsKK+S6uuWQjeewvyA8IGppbm1laWJvXCA7CivmjpLmsJflj6MgPCBoYWlraWtvdVwgOwor6YG/5aaK5rOVIDwgaGluaW5ob3VcIDsKK+eJueS+oeWTgSA8IHRva2thaGluXCA7Civph43oqqwgPCBqdXVzZXRzdVwgOwor5o+a5oqX5q+UIDwgeW91a291aGlcIDsKK+mNi+WwuyA8IG5hYmVqaXJpXCA7Civovp7mm7jpoZ4gPCBqaXNob3J1aVwgOwor5aSn5b6A55SfIDwgZGFpb3Vqb3VcIDsKK+i/vei1t+iotCA8IHRzdWlraXNvXCA7CivmsLfpnIcgPCBoeW91c2hpblwgOwor6YGO5Y2K5pWwIDwga2FoYW5zdXVcIDsKK+mJhOethiA8IHRlcHBpdHN1XCA7Civlronmga/ml6UgPCBhbnNva3ViaVwgOwor5YaN5rWu5LiKIDwgc2FpZnVqb3VcIDsKK+a0u+ecvCA8IGthdHN1Z2FuXCA7Civlm7Pmm7jliLggPCB0b3Nob2tlblwgOwor55m66LW35Lq6IDwgaG9ra2luaW5cIDsKK+a0nueqnyA8IGRvdWt1dHN1XCA7CivpgZPlhbfoq5YgPCBkb3VndXJvblwgOwor5YiG55u45b+cIDwgYnVuc291b3VcIDsKK+aIkeWEmCA8IHdhZ2FtYW1hXCA7Civnq4vlgJnoo5wgPCByaWtrb3Vob1wgOwor6YG/5pqR5ZywIDwgaGlzaG9jaGlcIDsKK+awtOmamyA8IG1penVnaXdhXCA7CivmjqXpqqjmnKggPCBuaXdhdG9rb1wgOwor56S+5Lya56eRIDwgc2hha2Fpa2FcIDsKK+mHjeikhyA8IGNob3VmdWt1XCA7CivmtLvnmbogPCBrYXBwYXRzdVwgOwor5LiK5qmf5auMIDwgam91a2lnZW5cIDsKK+S6pOaPm+aJgCA8IGtvdWthbmpvXCA7CivllpzmrYzliocgPCBraWthZ2VraVwgOwor5re75Yqg5YmkIDwgdGVua2F6YWlcIDsKK+acquW+qeWToSA8IG1pZnVrdWluXCA7CivmtojmsoggPCBzaG91Y2hpblwgOwor6KyZ6YGc6KqeIDwga2Vuc29uZ29cIDsKK+acquWHpue9riA8IG1pc2hvY2hpXCA7CivmgqrnrYYgPCBha3VoaXRzdVwgOwor5Zyw5b2i5ZuzIDwgY2hpa2VpenVcIDsKK+acquefpeaVsCA8IG1pY2hpc3V1XCA7CivnoazpqqggPCBrb3Vrb3RzdVwgOwor5YWr5r2u6LevIDwgeWFzaGlvamlcIDsKK+ayouigjyA8IHNhd2FnYW5pXCA7Civku6PnkIbogIUgPCBkYWlyaXNoYVwgOwor5oar5a+fIDwgYmluc2F0c3VcIDsKK+m6l+ethiA8IHJlaWhpdHN1XCA7Civol4HntJkgPCB3YXJhZ2FtaVwgOwor6LuN5Luk6YOoIDwgZ3VucmVpYnVcIDsKK+eri+WDjyA8IHJpdHN1em91XCA7CivmqKrmloflrZcgPCB5b2tvbW9qaVwgOwor5rS755SoIDwga2F0c3V5b3VcIDsKK+a2iOavkiA8IHNob3Vkb2t1XCA7CivlpKrlj6Tku6MgPCB0YWlrb2RhaVwgOwor5oiR5Lq6IDwgd2FyZWhpdG9cIDsKK+mNi+WiqCA8IG5hYmV6dW1pXCA7Civpu5LnjKsgPCBrdXJvbmVrb1wgOwor5oiR5LqLIDwgd2FnYWtvdG9cIDsKK+W5vuS9leWtpiA8IGtpa2FnYWt1XCA7Civopb/mtIvljJYgPCBzZWl5b3VrYVwgOwor5YiR5L2Z6ICFIDwga2VpeW9zaGFcIDsKK+a4oeS4luS6uiA8IHRvc2VpbmluXCA7CivlkIzog54gPCBoYXJha2FyYVwgOwor576F6Yed5YSAIDwgcmFzaGluZ2lcIDsKK+WtkOmfs+e+pCA8IHNoaWluZ3VuXCA7CivmmpfoqLzljJYgPCBhbnNob3VrYVwgOwor5ruR6LWw6LevIDwga2Fzc291cm9cIDsKK+ijveWbs+advyA8IHNlaXp1YmFuXCA7CivnmofntbHorZwgPCBrb3V0b3VmdVwgOwor55CG5a2m6YOoIDwgcmlnYWt1YnVcIDsKK+epuuWkoiA8IHNvcmF5dW1lXCA7Civms6XnuIQgPCBkb3JvbmF3YVwgOwor6Iux6Kqe5aG+IDwgZWlnb2p1a3VcIDsKK+mFi+mVtyA8IHNodXVjaG91XCA7CivmgrLllpzliocgPCBoaWtpZ2VraVwgOwor5L+d566h5p6XIDwgaG9rYW5yaW5cIDsKK+WNiumdtCA8IGhhbmd1dHN1XCA7CivmgrbnnYAgPCBtb25jaGFrdVwgOwor5YaN5q2m6KOFIDwgc2FpYnVzb3VcIDsKK+m7kueGiiA8IGt1cm9ndW1hXCA7CivokrLprZogPCBrYW1hdG90b1wgOwor5ZaJ5YWDIDwgbm9kb21vdG9cIDsKK+epuuWggCA8IGthcmFib3JpXCA7CivotaTonLvom4kgPCBha2F0b25ib1wgOwor6JaE6IacIDwgaGFrdW1ha3VcIDsKK+eqr+WFgyA8IGthbWFtb3RvXCA7CivmuJvlnKcgPCBnZW4nJ2F0c3VcIDsKK+eEoei+uumamyA8IG11aGVuemFpXCA7CivkuI3oh6rnhLYgPCBmdXNoaXplblwgOwor6IWO5LiN5YWoIDwgamluZnV6ZW5cIDsKK+eomuaLmSA8IGNoaXNldHN1XCA7CivnpZDnrYYgPCB5dXVoaXRzdVwgOwor5a605Lya5aC0IDwgZW5rYWlqb3VcIDsKK+WPpOiNiSA8IGZ1cnVrdXNhXCA7CivkuI3kv6HogIUgPCBmdXNoaW5qYVwgOwor5Y+j6I2SIDwga3VjaGlhcmFcIDsKK+WNmOacrOS9jSA8IHRhbmhvbicnaVwgOwor5YaG6YyQ5Y+wIDwgZW5zdWlkYWlcIDsKK+elneelrSA8IHNodWt1c2FpXCA7Civlm6DmnpzogIUgPCBpbmdhbW9ub1wgOwor5LiN5L+h576pIDwgZnVzaGluZ2lcIDsKK+WNiumVtyA8IGhhbicnbmFnYVwgOwor6YmE55O2IDwgdGV0c3ViaW5cIDsKK+awtOmDqCA8IG1penVub2J1XCA7Civou43kuovpnaIgPCBndW5qaW1lblwgOwor5oGS5rKz5rKZIDwgZ291Z2FzaGFcIDsKK+aCqueZliA8IHdhcnVndXNlXCA7Civpu5Lmva4gPCBrdXJvc2hpb1wgOwor6JOE6Zu7IDwgY2hpa3VkZW5cIDsKK+avjemzpSA8IGhhaGFkb3JpXCA7Civoh6rmsrvkvZMgPCBqaWNoaXRhaVwgOwor552A5bC65ZywIDwga2lqYWt1amlcIDsKK+W+jOWNiuacnyA8IGtvdWhhbmtpXCA7Civlj6PoiIwgPCBrb3V6ZXRzdVwgOwor56Wd56CyIDwgc2h1a3Vob3VcIDsKK+avm+mrqiA8IG1vdWhhdHN1XCA7Civoh6rmsrvkvJogPCBqaWNoaWthaVwgOwor5L6h5YCk6KazIDwga2FjaGlrYW5cIDsKK+ilv+mBiuiomCA8IHNlaXl1dWtpXCA7Civnm6Pmn7vlp5Tlk6EgPCBrYW5zYWlpblwgOwor56S856+AIDwgcmVpc2V0c3VcIDsKK+W5tOS7o+iomCA8IG5lbmRhaWtpXCA7CivmhJ/mg4XlrrYgPCBrYW5qb3VrYVwgOwor5paH5YyW56WtIDwgYnVua2FzYWlcIDsKK+WPiuiQvSA8IGt5dXVyYWt1XCA7CivpioPmrrogPCBqdXVzYXRzdVwgOwor5aSJ5o+b5ZmoIDwgaGVua2Fua2lcIDsKK+aDheeGsSA8IGpvdW5ldHN1XCA7CivkuJbnlYzlj7IgPCBzZWthaXNoaVwgOwor5Y+X57K+5Y21IDwganVzZWlyYW5cIDsKK+mHkeiEiCA8IGtpbm15YWt1XCA7Civlj6rogIUgPCB0YWRhbW9ub1wgOwor5oeH5YiHIDwga29uc2V0c3VcIDsKK+emgeeJqSA8IGtpbm1vdHN1XCA7CivlubTnlLLmlpAgPCB0b3NoaWdhaVwgOwor6JmQ5pS/IDwgZ3lha3VzZWlcIDsKK+WQjeethiA8IG1laWhpdHN1XCA7CivnorroqLwgPCBrYWt1c2hvdVwgOwor5ZCM562GIDwgZG91aGl0c3VcIDsKK+mFjemBlCA8IGhhaXRhdHN1XCA7Civms6Xku5XlkIggPCBkb3JvamlhaVwgOwor5riF5a2Q6Z+zIDwgc2Vpc2hpaW5cIDsKK+S6jOacn+S9nCA8IG5pa2lzYWt1XCA7Civpi7jlsZEgPCBub2tva3V6dVwgOwor5qiq57SL562LIDwgb3Vtb25raW5cIDsKK+a3gOW3nSA8IHlvZG9nYXdhXCA7CivpgYvli5XnlYwgPCB1bmRvdWthaVwgOwor5oOR5rq6IDwgd2FrdWRla2lcIDsKK+acqueZuuimiyA8IG1paGFra2VuXCA7CivmtYXmspMgPCBhc2FndXRzdVwgOwor5ZCM56m0IDwgZG91a2V0c3VcIDsKK+WBtuWDj+WMliA8IGd1dXpvdWthXCA7Civoo5zogbTlmaggPCBob2Nob3VraVwgOwor6Iux6Kqe5YqHIDwgZWlnb2dla2lcIDsKK+mHo+ezuCA8IHRzdXJpaXRvXCA7Civpm7vnrpfmqZ8gPCBkZW5zYW5raVwgOwor5rSX54aKIDwgYXJhaWd1bWFcIDsKK+WGjeWQn+WRsyA8IHNhaWdpbm1pXCA7Civph43nvbAgPCBqdXViYXRzdVwgOwor5YaG6YyQ5L2TIDwgZW5zdWl0YWlcIDsKK+a1geawtyA8IHJ5dXVoeW91XCA7Civms6jnm64gPCBjaHV1bW9rdVwgOwor6Z2S5aSp5LqVIDwgYW90ZW5qb3VcIDsKK+WPjOiEmiA8IHNvdWt5YWt1XCA7Civmtarmm7IgPCByb3VreW9rdVwgOwor6Z2e5oim6KuWIDwgaGlzZW5yb25cIDsKK+acqueZuuihjCA8IG1paGFra291XCA7Civnm7jloLTluKsgPCBzb3ViYXNoaVwgOwor5Y+k5oim5aC0IDwga29zZW5qb3VcIDsKK+S4ieeVs+e0gCA8IHNhbmpvdWtpXCA7Civlpb3mhI/nmoQgPCBrb3VpdGVraVwgOwor5b6h6aaz6LWwIDwgZ29jaGlzb3VcIDsKK+mHkee4gSA8IGtpbmJ1Y2hpXCA7CivljYrpgZMgPCBoYW5taWNoaVwgOwor5YyX6Zm4IDwgaG9rdXJpa3VcIDsKK+aJtumkiuiAhSA8IGZ1eW91c2hhXCA7CivljYHlrZfou40gPCBqdXVqaWd1blwgOwor5oyJ5omL56S8IDwgYW5zaHVyZWlcIDsKK+WQjOS9jeinkiA8IGRvdWlrYWt1XCA7Civljp/olqwgPCBnZW4nJ3lha3VcIDsKK+WNs+irviA8IHNva3VkYWt1XCA7CivmtLvmrrogPCBrYXNzYXRzdVwgOwor5ZGo5rWBIDwgc2h1dXJ5dXVcIDsKK+i8qui7ouapnyA8IHJpbnRlbmtpXCA7CivnqLLlprsgPCBpbmFkenVtYVwgOwor5Y6t5Lq66ICFIDwgZW5qaW5zaGFcIDsKK+eEoemFjeW9kyA8IG11aGFpdG91XCA7CivllJDloqggPCBrYXJhc3VtaVwgOwor5a+M6KOV56iOIDwgZnV5dXV6ZWlcIDsKK+eVsOWPo+WQjOmfsyA8IGlrdWRvdW9uXCA7Civph6Pnq78gPCB0c3VyaXphb1wgOwor6YGO5Yq05q27IDwga2Fyb3VzaGlcIDsKK+e0heihm+WFtSA8IGtvdWVpaGVpXCA7Civph53nrrEgPCBoYXJpYmFrb1wgOwor566h55CG6ICFIDwga2FucmlzaGFcIDsKK+WknOWVhuS6uiA8IHlvYWtpbmRvXCA7CivoiIzkuIvohbogPCB6ZWtrYXNlblwgOwor5omA5oyB5ZOBIDwgc2hvamloaW5cIDsKK+e0gOihjOaWhyA8IGtpa291YnVuXCA7CivngavlsbHngbAgPCBrYXphbmJhaVwgOwor6aiO5aOr6YGTIDwga2lzaGlkb3VcIDsKK+WJsOS9memHkSA8IGpvdXlva2luXCA7CivljZPotoogPCB0YWt1ZXRzdVwgOwor6LGK5rC05pyfIDwgaG91c3Vpa2lcIDsKK+S9juiDveWFkCA8IHRlaW5vdWppXCA7CivluLDntI3ms5UgPCBraW5vdWhvdVwgOwor542F5a2Q5bqnIDwgc2hpc2hpemFcIDsKK+S6pOaPm+WZqCA8IGtvdWthbmtpXCA7CivkuJbnlYzkurogPCBzZWthaWppblwgOwor6KGb55Sf6ZqKIDwgZWlzZWl0YWlcIDsKK+WPlue1hCA8IHRvcmlrdW1pXCA7CivokrLpib4gPCBrYW1hYm9rb1wgOwor5rW35oqcIDwga2FpYmF0c3VcIDsKK+mHkeeusSA8IGthbmViYWtvXCA7CivnkIbkuovplbcgPCByaWppY2hvdVwgOwor5bmz5bGL5qC5IDwgaGlyYXlhbmVcIDsKK+a2iOaBryA8IHNob3Vzb2t1XCA7CivlhYPogIHpmaIgPCBnZW5yb3VpblwgOwor5qOE5qip6ICFIDwga2lrZW5zaGFcIDsKK+S4lueVjOS4rSA8IHNla2FpanV1XCA7CivmsrPlj6PmuK8gPCBrYWtvdWtvdVwgOwor5Y+j56ybIDwga3VjaGlidWVcIDsKK+WOn+iMuCA8IGhhcmF0YWtlXCA7CivptJvptKYgPCBvc2hpZG9yaVwgOwor6Jas546JIDwga3VzdWRhbWFcIDsKK+S4jeS9k+ijgSA8IGZ1dGVpc2FpXCA7CivomZDlvoUgPCBneWFrdXRhaVwgOwor5q+S6JyY6JubIDwgZG9rdWd1bW9cIDsKK+WNmOiqnuevhyA8IHRhbmdvaGVuXCA7Civpu5LmnqAgPCBrdXJvd2FrdVwgOwor6YeR56m0IDwga2lua2V0c3VcIDsKK+eUn+W+kuaVsCA8IHNlaXRvc3V1XCA7Civpu5LmnI0gPCBrdXJvZnVrdVwgOwor576K55qu57SZIDwgeW91aGlzaGlcIDsKK+WLnemmrCA8IGthY2hpdW1hXCA7CivnoLTpkJggPCB3YXJlZ2FuZVwgOwor5b+F6KaBIDwgaGl0c3V5b3VcIDsKK+a3t+WFpSA8IGtvbicnbnl1dVwgOwor5q+N57O75Yi2IDwgYm9rZWlzZWlcIDsKK+WxleekuuWgtCA8IHRlbmppam91XCA7Civlv43ooZMgPCBuaW5qdXRzdVwgOwor5Y6z572wIDwgZ2VuYmF0c3VcIDsKK+W+jOmBuueXhyA8IGtvdWlzaG91XCA7CivmtYHmnKggPCByeXV1Ym9rdVwgOwor6YiN54mpIDwgZG9uYnV0c3VcIDsKK+W8leeBq+a4qeW6piA8IGlua2FvbmRvXCA7Civlj7jnm7QgPCBzaGljaG9rdVwgOwor56aB5qyyIDwga2luJyd5b2t1XCA7CivmuIfku7AgPCBrYXRzdWdvdVwgOwor56ep5bqPIDwgY2hpdHN1am9cIDsKK+WNkuirliA8IHNvdHN1cm9uXCA7CivkuI3lrproqZ4gPCBmdXRlaXNoaVwgOwor5rC06JycIDwgc3VpbWl0c3VcIDsKK+WKoOaLheiAhSA8IGthdGFuc2hhXCA7Civnn7Ppq5ggPCBrb2t1ZGFrYVwgOwor6Zm96Zu75rCXIDwgeW91ZGVua2lcIDsKK+WRveaXpSA8IG1laW5pY2hpXCA7CivlvqnorpAgPCBmdWt1c2h1dVwgOwor5a6j5Lyd6LK7IDwgc2VuZGVuaGlcIDsKK+WQjOeOhyA8IGRvdXJpdHN1XCA7Civmg5zmmKUgPCBzZWtpc2h1blwgOwor5YqH5pig55S7IDwgZ2VraWVpZ2FcIDsKK+ekvOeJqSA8IHJlaW1vdHN1XCA7Civnn63pq6ogPCB0YW5wYXRzdVwgOwor6Jma5a6fIDwga3lvaml0c3VcIDsKK+aBi+edgCA8IHJlbmNoYWt1XCA7CivpmL/lj6TlsYvosp0gPCBha295YWdhaVwgOwor6YGK6JWp5YWQIDwgeXV1dG91amlcIDsKK+W+qeiqvyA8IGZ1a3VjaG91XCA7Civph5HmuoDlrrYgPCBraW5tYW5rYVwgOwor6Yyg5YmN5bGLIDwgam91bWFleWFcIDsKK+efpeWQjeW6piA8IGNoaW1laWRvXCA7CivlkI3niakgPCBtZWlidXRzdVwgOwor5YyX6YCyIDwgaG9rdXNoaW5cIDsKK+WHuumxiOebriA8IGRldGFyYW1lXCA7Civpu4TmmI8gPCB0YXNvZ2FyZVwgOwor5oeH6Kmx5LyaIDwga29ud2FrYWlcIDsKK+mBv+mbo+awkSA8IGhpbmFubWluXCA7Civlj7LnlaUgPCBzaGlyeWFrdVwgOwor5Y2B5a2X6KGXIDwganV1amlnYWlcIDsKK+S4u+a8lOiAhSA8IHNodWVuc2hhXCA7Civms6Xmv5ggPCBudWthcnVtaVwgOwor6Jek5qOaIDwgZnVqaWRhbmFcIDsKK+S4luS/l+WMliA8IHNlem9rdWthXCA7Civnspfoo73lk4EgPCBzb3NlaWhpblwgOwor5Y6z57KbIDwgZ2Vuc2h1a3VcIDsKK+mJhOajkiA8IHRldHN1Ym91XCA7Civps6npuqYgPCBoYXRvbXVnaVwgOwor5Y+z5b+D5oi/IDwgdXNoaW5ib3VcIDsKK+Wcp+WItuiAhSA8IGFzc2Vpc2hhXCA7CivlsZXnpLrlk4EgPCB0ZW5qaWhpblwgOwor6YmE5qKDIDwga2FuYXRla29cIDsKK+iQvemthCA8IHJha3VoYWt1XCA7Civph4/nmoQgPCByeW91dGVraVwgOwor5b+g6ImvIDwgY2h1dXJ5b3VcIDsKK+abuOiomOWumCA8IHNob2tpa2FuXCA7Civpg7flnJ/mhJsgPCBreW91ZG9haVwgOwor6LKv6JS15bqrIDwgY2hvem91a29cIDsKK+iXqeacrSA8IGhhbnNhdHN1XCA7CivnlJ/nnJ/pnaLnm64gPCBraW1hamltZVwgOwor5LiL6aas6KmVIDwgZ2ViYWh5b3VcIDsKK+S4jeiDveiAhSA8IGZ1bm91c2hhXCA7Civli4XpoZggPCBjaG9rdWdhblwgOwor6YWS6JS1IDwgc2FrYWd1cmFcIDsKK+WLhemhjCA8IGNob2t1ZGFpXCA7CivkuI3oia/ljJYgPCBmdXJ5b3VrYVwgOwor6JaE6I2357OWIDwgaGFra2F0b3VcIDsKK+iWhOiNt+eyviA8IGhha2thc2VpXCA7CivlvLHpnIcgPCBqYWt1c2hpblwgOwor5q+U5Zap55qEIDwgaGl5dXRla2lcIDsKK+emgeacrSA8IGtpbnNhdHN1XCA7CivkuonorbDmqKkgPCBzb3VnaWtlblwgOwor6YeN56aB6YyuIDwganV1a2lua29cIDsKK+mBi+WLleashCA8IHVuZG91cmFuXCA7CivnqK7liKUgPCBzaHViZXRzdVwgOwor6buS5oi/IDwga3Vyb2J1c2FcIDsKK+i+sue5geacnyA8IG5vdWhhbmtpXCA7Civmgqbmpb0gPCBldHN1cmFrdVwgOwor5rC06I2JIDwgbWl6dWt1c2FcIDsKK+aEm+WtkCA8IGl0b3NoaWdvXCA7CivpiYTmnZAgPCB0ZXRzdXphaVwgOwor5bym6Z+zIDwgdHN1cnVvdG9cIDsKK+WUkOWCmCA8IGthcmFrYXNhXCA7CivmhJ/lj5fmgKcgPCBrYW5qdXNlaVwgOwor6bqm5p2fIDwgbXVnaXRhYmFcIDsKK+WFteWZqOW3pSA8IGhlaWtpa291XCA7CivlgKrpm7LmnpcgPCBnZWl1bnJpblwgOwor5rC06IyOIDwgbWl6dWd1a2lcIDsKK+mBi+mAgeiIuSA8IHVuc291c2VuXCA7CivmhoLkuosgPCB1cmVpZ290b1wgOwor55+t6Z20IDwgdGFuZ3V0c3VcIDsKK+awtOiLlCA8IG1penVnb2tlXCA7CivpgYrlhrbpg44gPCB5dXV5YXJvdVwgOwor55S75LuZ57SZIDwgZ2FzZW5zaGlcIDsKK+a0i+aiqCA8IHlvdW5hc2hpXCA7CivlpJrmrrXpmo4gPCB0YWRhbmthaVwgOwor6Kmm6aiT5qmfIDwgc2hpa2Vua2lcIDsKK+S4gOiIrOirliA8IGlwcGFucm9uXCA7CivliqDnrpfnqI4gPCBrYXNhbnplaVwgOwor5q6L6ZuqIDwgemFuc2V0c3VcIDsKK+WOmue0mSA8IGF0c3VnYW1pXCA7CivmtbTlrqIgPCB5b2treWFrdVwgOwor5YiG5bKQ57eaIDwgYnVua2lzZW5cIDsKK+WWh+WPreaJiyA8IHJhcHBhc2h1XCA7CivmsLToiLkgPCBtaXp1YnVuZVwgOwor5rOl5rK8IDwgZG9yb251bWFcIDsKK+WPjeeZuiA8IGhhbnBhdHN1XCA7CivnpZ7mp5ggPCBrYW1pc2FtYVwgOwor56Oo55+zIDwgdG9naWlzaGlcIDsKK+W8gemrqiA8IGJlbnBhdHN1XCA7Civms6XmsLQgPCBkb3JvbWl6dVwgOwor5rOh5rKrIDwgaG91bWF0c3VcIDsKK+WFjee9quespiA8IG1lbnphaWZ1XCA7Civniqzpu4TmpYogPCBpbnV0c3VnZVwgOwor56We5qWtIDwga2FtaXdhemFcIDsKK+awtOiFuSA8IG1penViYXJhXCA7Civlj4LnnYAgPCBzYW5jaGFrdVwgOwor5Y6t5LiW6KazIDwgZW5zZWlrYW5cIDsKK+eiuue0hCA8IGtha3V5YWt1XCA7CivmsLTohIggPCBzdWlteWFrdVwgOwor5Y2K5LiW57SAIDwgaGFuc2Vpa2lcIDsKK+mFteavjeiPjCA8IGtvdWJva2luXCA7CivnpZ7mo5ogPCBrYW1pZGFuYVwgOwor5Ya3572o5rOVIDwgcmVpYW5wb3VcIDsKK+WPpOeJqSA8IGZ1cnVtb25vXCA7CivmhJvolLXniYggPCBhaXpvdWJhblwgOwor5b+r57W2IDwga2FpemV0c3VcIDsKK+W+oeWBieaWuSA8IG9lcmFnYXRhXCA7CivoqJjmlbDms5UgPCBraXN1dWhvdVwgOwor56m65LiL5omLIDwga2FyYWhldGFcIDsKK+mHkeeJqSA8IGthbmFtb25vXCA7CivnpZ7moLwgPCBzaGlua2FrdVwgOwor56a/5bGxIDwgaGFnZXlhbWFcIDsKK+WNgeiWrCA8IGRva3VkYW1pXCA7CivkuI3lgaXlurcgPCBmdWtlbmtvdVwgOwor5rKI55ebIDwgY2hpbnRzdXVcIDsKK+aApeeXhSA8IGt5dXVieW91XCA7CivmjqLmpJzlrrYgPCB0YW5rZW5rYVwgOwor55+z6Y+DIDwgc2VraXpva3VcIDsKK+Wkp+awl+WcjyA8IHRhaWtpa2VuXCA7CivnjYXlrZDlkLwgPCBzaGlzaGlrdVwgOwor56iO5YilIDwgemVpYmV0c3VcIDsKK+S7o+eQhuaoqSA8IGRhaXJpa2VuXCA7Civnianku7bosrsgPCBidWtrZW5oaVwgOwor6buS5bmVIDwga3Vyb21ha3VcIDsKK+elneadryA8IHNodWt1aGFpXCA7Civmgqrmk6YgPCB3YXJ1enVyZVwgOwor5q2j6KaP5YW1IDwgc2Vpa2loZWlcIDsKK+WGjemFjeW4gyA8IHNhaWhhaWZ1XCA7CivpvLvlhYggPCBoYW5hc2FraVwgOwor56We5pyIIDwga291ZHp1a2lcIDsKK+awkeiNiSA8IHRhbWlndXNhXCA7Civlm5vnlbPljYogPCB5b2pvdWhhblwgOwor5rS75byBIDwga2F0c3ViZW5cIDsKK+WxleekuuS8miA8IHRlbmppa2FpXCA7CivlpKfpg73luIIgPCBkYWl0b3NoaVwgOwor5ZKM5a6kIDwgd2FzaGl0c3VcIDsKK+WFiOWtpuacnyA8IHNlbmdha2tpXCA7CivmgqrmtJLokL0gPCB3YXJ1amFyZVwgOwor6YeI54S2IDwgc2hha3V6ZW5cIDsKK+iHquawkeWFmiA8IGppbWludG91XCA7CivljLvnmYLlk4EgPCBpcnlvdWhpblwgOwor5YaF5rKZ5rGwIDwgdWNoaXphdGFcIDsKK+WTsuS6uiA8IHRldHN1amluXCA7Civnpo/lvrMgPCBmdWt1dG9rdVwgOwor6buS5bGxIDwga3Vyb3lhbWFcIDsKK+WLv+irliA8IG1vY2hpcm9uXCA7CivliIblhYnlmaggPCBidW5rb3VraVwgOwor5oCq54mpIDwga2FpYnV0c3VcIDsKK+imquS4jeWtnSA8IG95YWZ1a291XCA7Civnpo/lvJUgPCBmdWt1YmlraVwgOwor5Y2S6ICFIDwgc290c3VzaGFcIDsKK+e4gei1t+eJqSA8IGVuZ2ltb25vXCA7CivmtYHmmJ/pm6ggPCByeXV1c2VpdVwgOwor5Y6f55m6IDwgZ2VucGF0c3VcIDsKK+WJsumrmCA8IHdhcmlkYWthXCA7CivokZfov7AgPCBjaG9qdXRzdVwgOwor5bm06LKi57GzIDwgbmVuZ3VtYWlcIDsKK+WOmueariA8IGF0c3VrYXdhXCA7CivmtJfmtYTlmaggPCBzZW5qb3VraVwgOwor5q+b6JmxIDwga2VqaXJhbWlcIDsKK+W+queSsOWZqCA8IGp1bmthbmtpXCA7CivphZLns58gPCBzYWtla2FzdVwgOwor54Sh55CG55+i55CGIDwgbXVyaXlhcmlcIDsKK+WBpeW6t+WFkCA8IGtlbmtvdWppXCA7CivnqI7nkIblo6sgPCB6ZWlyaXNoaVwgOwor5byV6YeRIDwgaGlraWdhbmVcIDsKK+WPpOaysyA8IGZ1cnVrYXdhXCA7Civkurrmg4XlkbMgPCBuaW5qb3VtaVwgOwor562J6Kqe57eaIDwgdG91Z29zZW5cIDsKK+avkuibhyA8IGRva3VoZWJpXCA7CivljYHlrZfnt5ogPCBqdXVqaXNlblwgOwor5LiN5L2/55SoIDwgZnVzaGl5b3VcIDsKK+S4gOeUn+mdoiA8IGlzc2VpbWVuXCA7Civml4XooYzoqJggPCByeW9rb3VraVwgOwor6YmE5bqKIDwga2FuYXRva29cIDsKK+WAi+S9k+e+pCA8IGtvdGFpZ3VuXCA7CivlkI3mm7IgPCBtZWlreW9rdVwgOwor5Y+j6JOL6Z+zIDwga291Z2Fpb25cIDsKK+WQjOaciCA8IGRvdWdldHN1XCA7CivlnKflu7bmqZ8gPCBhdHN1ZW5raVwgOwor5ZKM5aOw5rOVIDwgd2FzZWlob3VcIDsKK+WNoOeulyA8IHVyYXlhc2FuXCA7Civpq5jpoLvluqYgPCBrb3VoaW5kb1wgOwor5bCP6LGG6ImyIDwgYXp1a2lpcm9cIDsKK+avkuiWrCA8IGRva3V5YWt1XCA7CivljrPnvo7muJMgPCBnZW5iaWtlaVwgOwor5rG654S2IDwga2V0c3V6ZW5cIDsKK+ekuuWogemBi+WLlSA8IGppaXVuZG91XCA7CivngavlsbHlvL4gPCBrYXphbmRhblwgOwor5Y2K6Kun6Z+zIDwgaGFua2Fpb25cIDsKK+aDheWunyA8IGpvdWppdHN1XCA7Civnp4vlj6MgPCBha2lndWNoaVwgOwor5Y+W5rG6IDwgdG9yaWtpbWVcIDsKK+WQjOaXpSA8IGRvdWppdHN1XCA7Civnpa3lvI8gPCBzYWlzaGlraVwgOwor6JmQ5L2/IDwgZ3lha3VzaGlcIDsKK+aykOa1tCA8IG1va3V5b2t1XCA7CivpiYTlsbEgPCB0ZXRzdXphblwgOwor5rGC5rOV6ICFIDwgZ3Vob3VzaGFcIDsKK+eBq+WxseW4ryA8IGthemFudGFpXCA7CivmtJ7lr58gPCBkb3VzYXRzdVwgOwor5LiL6aeE566xIDwgZ2V0YWJha29cIDsKK+mBk+mghiA8IG1pY2hpanVuXCA7CivnpZ7lvrMgPCBzaGludG9rdVwgOwor6Iqd5rW36ICBIDwgc2hpYmFlYmlcIDsKK+Wkp+WIhuecjCA8IG9vaXRha2VuXCA7CivlvqnnsY0gPCBmdWt1c2VraVwgOwor5bGx576K6autIDwgeWFnaWhpZ2VcIDsKK+eArOaIuOmamyA8IHNldG9naXdhXCA7Civmr5LojLggPCBkb2t1dGFrZVwgOwor5bu26YeRIDwgbm9iZWdhbmVcIDsKK+eijOeijCA8IHJva3Vyb2t1XCA7Civpiq3kuoAgPCB6ZW5pZ2FtZVwgOwor54Gr5bGx5bO2IDwga2F6YW50b3VcIDsKK+S4gOWkq+S4gOWppiA8IGlwcHVpcHB1XCA7Civmra/ou4ogPCBoYWd1cnVtYVwgOwor5LiN5a+p54GrIDwgZnVzaGluYmlcIDsKK+WlieS7leWlsyA8IGhvdXNoaW1lXCA7CivngavlsbHlsqkgPCBrYXphbmdhblwgOwor5byV6LaKIDwgaGlra29zaGlcIDsKK+WJg+mrqiA8IHRlaWhhdHN1XCA7Civlv73nhLYgPCBrb3RzdXplblwgOwor546J56CC5YipIDwgdGFtYWphcmlcIDsKK+S4gOWIhuWNiiA8IGlwcHVuaGFuXCA7Civlj6TmoKogPCBmdXJ1a2FidVwgOwor6Iqx6bOl55S7IDwga2FjaG91Z2FcIDsKK+eEoeiPjOazlSA8IG11a2luaG91XCA7CivmgoTmgoQgPCBzdWdvc3Vnb1wgOwor54Sh5YWN6KixIDwgbXVtZW5reW9cIDsKK+W+hemBv+e3miA8IHRhaWhpc2VuXCA7CivnoaznrYYgPCBrb3VoaXRzdVwgOwor5bm06LOA54q2IDwgbmVuZ2Fqb3VcIDsKK+WPpOWPguiAhSA8IGtvc2Fuc2hhXCA7Civlv4XnnYAgPCBoaXRjaGFrdVwgOwor5LqU5YiG5LqU5YiGIDwgZ29idWdvYnVcIDsKK+WPpOacjSA8IGZ1cnVmdWt1XCA7CivliIblspDngrkgPCBidW5raXRlblwgOwor5L6N5b6T5a6YIDwgamlqdXVrYW5cIDsKK+WGhemHjuaJiyA8IG5haXlhc2h1XCA7CivmsrnpgIHnrqEgPCB5dXNvdWthblwgOwor5rC055O2IDwgbWl6dWdhbWVcIDsKK+iqmOibvueBryA8IHl1dWdhdG91XCA7Civlv4PnmoQgPCBzaGludGVraVwgOwor6KiI55CG5aOrIDwga2VpcmlzaGlcIDsKK+mbkeiyqOW6lyA8IHpha2thdGVuXCA7Civluqflj7PpipggPCB6YXl1dW1laVwgOwor5ZC+5a2QIDwgd2FnaW1va29cIDsKK+WtkOmfs+aApyA8IHNoaWluc2VpXCA7CivmsJfnn60gPCBraW1pamlrYVwgOwor5b6X562WIDwgdG9rdXNha3VcIDsKK+WLheijgSA8IGNob2t1c2FpXCA7CivmnJ/lvoXmhJ8gPCBraXRhaWthblwgOwor6YGp6YePIDwgdGVraXJ5b3VcIDsKK+W/g+eXmyA8IHNoaW50c3V1XCA7CivpgYvli5XlrrYgPCB1bmRvdXNoYVwgOwor6YeR5pifIDwga2luYm9zaGlcIDsKK+aEmumAo+maiiA8IGd1cmVudGFpXCA7Civljp/lrZDpm7IgPCBnZW5zaGl1blwgOwor5Luj55CG5bqXIDwgZGFpcml0ZW5cIDsKK+W8vuiWrCA8IGRhbicneWFrdVwgOwor5rC0546JIDwgbWl6dXRhbWFcIDsKK+emgeWcpyA8IGtpbicnYXRzdVwgOwor5b6z55uuIDwgdG9rdW1va3VcIDsKK+iruOWZqOaisCA8IHNob2tpa2FpXCA7Civph4zmlrkgPCBzYXRva2F0YVwgOwor5rOV5b6LIDwgaG91cml0c3VcIDsKK+mHiOaYjiA8IHNoYWt1bWVpXCA7Civmk43oiLXmiYsgPCBzb3VkYXNodVwgOwor5Ye65q2v5LqAIDwgZGViYWthbWVcIDsKK+S4jeWBpeWFqCA8IGZ1a2VuemVuXCA7CivmtLvli5UgPCBrYXRzdWRvdVwgOwor6buS5YaGIDwga3Vyb21hcnVcIDsKK+ebuOijnOaApyA8IHNvdWhvc2VpXCA7CivmsLTniakgPCBtaXp1bW9ub1wgOwor5b6X56WoIDwgdG9rdWh5b3VcIDsKK+WIneacn+WApCA8IHNob2tpY2hpXCA7CivmtL7lh7ogPCBoYXNodXRzdVwgOwor6YeI5pS+IDwgc2hha3Vob3VcIDsKK+aOpemgrei+niA8IHNldHRvdWppXCA7CivnlJ/lvpLkvJogPCBzZWl0b2thaVwgOwor5rWB5YWlIDwgcnl1dW55dXVcIDsKK+aui+iZkCA8IHphbmd5YWt1XCA7CivolqzlsYsgPCBrdXN1cml5YVwgOwor6Jas5bGAIDwgeWFra3lva3VcIDsKK+ehrOebtCA8IGtvdWNob2t1XCA7CivlkIjlvI8gPCBnb3VzaGlraVwgOwor56We5aaZIDwgc2hpbm15b3VcIDsKK+mBoOmBkyA8IHRvb21pY2hpXCA7CivpoJDoqIDogIUgPCB5b2dlbnNoYVwgOwor5b2T6IG3IDwgdG91c2hva3VcIDsKK+W6lemdqSA8IHNva29nYXdhXCA7CivolqzlraYgPCB5YWt1Z2FrdVwgOwor56aP5YqpIDwgZnVrdXN1a2VcIDsKK+mWi+WCrOaXpSA8IGthaXNhaWJpXCA7Civog7TplpPlo7AgPCBkb3VtYWdvZVwgOwor6IOM55Wq5Y+3IDwgc2ViYW5nb3VcIDsKK+a1rua1quiAhSA8IGZ1cm91c2hhXCA7CivkvJrlk6HliLggPCBrYWlpbmtlblwgOwor5Lya5ZOh5Yi2IDwga2FpaW5zZWlcIDsKK+avm+ethiA8IG1vdWhpdHN1XCA7Civoi7HnsbPms5UgPCBlaWJlaWhvdVwgOwor5Y675pyIIDwga3lvZ2V0c3VcIDsKK+edgOmnhSA8IGNoYWt1ZWtpXCA7CivlkIjnkIboq5YgPCBnb3VyaXJvblwgOwor5aSn6YOo5YiGIDwgZGFpYnVidW5cIDsKK+aBkOaCpiA8IGt5b3VldHN1XCA7CivolK3mp5ggPCBrYWdlc2FtYVwgOwor56We5Z+fIDwgc2hpbicnaWtpXCA7CivljYPnlJ8gPCBzZW4nJ25hcmlcIDsKK+iWhOW8sSA8IGhha3VqYWt1XCA7CivkupTop5LlvaIgPCBnb2tha2tlaVwgOwor5Lit6KaP5qihIDwgY2h1dWtpYm9cIDsKK+W/heeEtiA8IGhpdHN1emVuXCA7CivlpKfpg73kvJogPCBkYWl0b2thaVwgOwor6K236YCB6LuKIDwgZ29zb3VzaGFcIDsKK+mHjeaJi+S7oyA8IG9tb3RlZGFpXCA7CivlkIzlsYAgPCBkb3VreW9rdVwgOwor6JK4552AIDwgam91Y2hha3VcIDsKK+W6g+WgsemDqCA8IGtvdWhvdWJ1XCA7CivljYrnjokgPCBoYW5neW9rdVwgOwor6YCG6aKoIDwgZ3lha3VmdXVcIDsKK+WIhumqqCA8IGJ1bmtvdHN1XCA7Civlvozps6Xnvr3pmaIgPCBnb3RvYmFpblwgOwor5bm86aGUIDwgb3NhbmFnYW9cIDsKK+WQjOWuvyA8IGRvdXNodWt1XCA7CivlkI3lrp8gPCBtZWlqaXRzdVwgOwor5q2i6KGAIDwgc2hpa2V0c3VcIDsKK+WLleiEiCA8IGRvdW15YWt1XCA7CivnnYDpoIYgPCBjaGFrdWp1blwgOwor6JK455m6IDwgam91aGF0c3VcIDsKK+mAhumghiA8IGd5YWt1anVuXCA7CivlkIjlrr8gPCBnYXNzaHVrdVwgOwor5YqH6KmVIDwgZ2VraWh5b3VcIDsKK+mFuOasoCA8IHNhbmtldHN1XCA7CivlvoznmbogPCBrb3VoYXRzdVwgOwor5LiJ5p2v6YWiIDwgc2FuYmFpenVcIDsKK+evgOeCreWZqCA8IHNldHRhbmtpXCA7CivpiYTliIYgPCB0ZXRzdWJ1blwgOwor5biM5pyb6ICFIDwga2lib3VzaGFcIDsKK+WkluenkeWtpiA8IGdla2FnYWt1XCA7CivliJHkuovniq8gPCBrZWlqaWhhblwgOwor6YWN57ea5ZuzIDwgaGFpc2VuenVcIDsKK+apn+aisOirliA8IGtpa2Fpcm9uXCA7CivnnYDpm7sgPCBjaGFrdWRlblwgOwor5bed56eL5rKZIDwga2F3YWFpc2FcIDsKK+WPi+aIkCA8IHRvbW9uYXJpXCA7CivmlofljJblnI8gPCBidW5rYWtlblwgOwor5o6l6aCt6KqeIDwgc2V0dG91Z29cIDsKK+awtOa0nyA8IG1penViYW5hXCA7CivkuovmlYXmrbQgPCBqaWtvcmVraVwgOwor5YmN6L+wIDwgemVuanV0c3VcIDsKK+WJsuitsiA8IGthdHN1am91XCA7CivlsbHlsI/lsYsgPCB5YW1hZ295YVwgOwor5Y6f5puyIDwgZ2Vua3lva3VcIDsKK+ezuOicu+ibiSA8IGl0b3RvbmJvXCA7CivljYHph43kuozljYHph40gPCB0b2VoYXRhZVwgOwor5b6M55SjIDwgbm9jaGl6YW5cIDsKK+enu+i7ouWFiCA8IGl0ZW5zYWtpXCA7CivokL3ojqsgPCByYWt1YmFrdVwgOwor6YGp6KmVIDwgdGVraWh5b3VcIDsKK+iTi+eJqSA8IGZ1dGFtb25vXCA7Civlh7rppqwgPCBzaHV0c3ViYVwgOwor5rC05rKhIDwgc3VpYm90c3VcIDsKK+W+oeeJqSA8IGd5b2J1dHN1XCA7CivlpKfli7LkvY0gPCBkYWlrdW4nJ2lcIDsKK+W9k+evgCA8IHRvdXNldHN1XCA7CivlkLjlj6MgPCBzdWlrdWNoaVwgOwor5aSn55uu546JIDwgb29tZWRhbWFcIDsKK+WumOWFrOWQjyA8IGthbmtvdXJpXCA7Civmgovll4cgPCByaW5zaG9rdVwgOwor5Y2U6K2w5ZOhIDwga3lvdWdpaW5cIDsKK+i7jeS6i+eKryA8IGd1bmppaGFuXCA7Civpmo/ooYzlk6EgPCB6dWlrb3VpblwgOwor5LiA6L665YCSIDwgaXBwZW50b3VcIDsKK+mHneWxsSA8IGhhcml5YW1hXCA7Civlj5blvJUgPCB0b3JpaGlraVwgOwor5rKh5bm0IDwgYm90c3VuZW5cIDsKK+WPsuWunyA8IHNoaWppdHN1XCA7CivokYnohIggPCB5b3VteWFrdVwgOwor5Y+w5a+GIDwgdGFpbWl0c3VcIDsKK+ePvuS7o+iqniA8IGdlbmRhaWdvXCA7CivpgZTorZggPCB0YXNzaGlraVwgOwor6bqm5L2cIDwgbXVnaXNha3VcIDsKK+S4jeWwjuaApyA8IGZ1ZG91c2VpXCA7CivmgKfmgqogPCBzaG91d2FydVwgOwor55CG5a655birIDwgcml5b3VzaGlcIDsKK+W+k+eJqSA8IGp1dWJ1dHN1XCA7CivkubHpq5jkuIsgPCByYW5rb3VnZVwgOwor5b2555WcIDwgZWtpY2hpa3VcIDsKK+WHoemqqCA8IGJvbmtvdHN1XCA7Civph5HlsZEgPCBrYW5ha3V6dVwgOwor5b+F5q66IDwgaGlzc2F0c3VcIDsKK+WPpOWvuiA8IGZ1cnVkZXJhXCA7CivnpL7kuqTlrrYgPCBzaGFrb3VrYVwgOwor5rSb5LitIDwgcmFrdWNodXVcIDsKK+WHuOmdoiA8IHRvdHN1bWVuXCA7CivmlofljJblj7IgPCBidW5rYXNoaVwgOwor5ZC45YWlIDwga3l1dW55dXVcIDsKK+S4jeeUqOWTgSA8IGZ1eW91aGluXCA7CivliLDpgZQgPCB0b3V0YXRzdVwgOwor5Y+j5a6fIDwga291aml0c3VcIDsKK+mAj+aYjuW6piA8IHRvdW1laWRvXCA7CivkuI3lrprms5UgPCBmdXRlaWhvdVwgOwor5YqH6JasIDwgZ2VraXlha3VcIDsKK+efree4riA8IHRhbnNodWt1XCA7CivmuKnmjpLmsLQgPCBvbmhhaXN1aVwgOwor5Ya36bqmIDwgaGl5YW11Z2lcIDsKK+elneWFuCA8IHNodWt1dGVuXCA7Civlh7rpmbMgPCBzaHV0Y2hpblwgOwor6Iiq56m66LevIDwga291a3V1cm9cIDsKK+iRm+exoCA8IHRzdWR6dXJhXCA7Civos4fnlKPlrrYgPCBzaGlzYW5rYVwgOwor6aGe5Ly854K5IDwgcnVpaml0ZW5cIDsKK+a3oeawtOa5liA8IHRhbnN1aWtvXCA7CivluoPloLHoqrIgPCBrb3Vob3VrYVwgOwor5b6z5rKiIDwgdG9rdXRha3VcIDsKK+mHiOWwiiA8IHNoYWt1c29uXCA7CivlubPpjYsgPCBoaXJhbmFiZVwgOwor6YWS5qi9IDwgc2FrYWRhcnVcIDsKK+W8geiIjCA8IGJlbnpldHN1XCA7CivlsI/kurrmlbAgPCBrb25pbnp1dVwgOwor5oSb55+l55yMIDwgYWljaGlrZW5cIDsKK+i/vemMsiA8IHRzdWlyb2t1XCA7CivmgYvlprsgPCBrb2lkenVtYVwgOwor5b6p5rS7IDwgZnVra2F0c3VcIDsKK+S6uumAoOiXjSA8IGppbnpvdWFpXCA7CivljLvlrabogIUgPCBpZ2FrdXNoYVwgOwor5oKq5oSf5oOFIDwgYWtrYW5qb3VcIDsKK+aBq+WWnSA8IGRvdWthdHN1XCA7CivmnKrlh6bliIYgPCBtaXNob2J1blwgOwor5beu6YWN5Lq6IDwgc2FoYWluaW5cIDsKK+S9jumgu+W6piA8IHRlaWhpbmRvXCA7CivkvZzngrrniq8gPCBzYWt1aWhhblwgOwor5Ymj6KGTIDwga2VuanV0c3VcIDsKK+WOs+W+iyA8IGdlbnJpdHN1XCA7Civmra/np5HnlKggPCBzaGlrYXlvdVwgOwor5Yqr572wIDwgZ291YmF0c3VcIDsKK+W9q+eQoiA8IGNob3V0YWt1XCA7CivljJbniakgPCBiYWtlbW9ub1wgOwor6Jaq5YmyIDwgbWFraXdhcmlcIDsKK+W9k+ebtCA8IHRvdWNob2t1XCA7Civlho3lh6bnkIYgPCBzYWlzaG9yaVwgOwor5Ymv6Jm5IDwgZnVrdW5pamlcIDsKK+iKseiMo+iTmSA8IGhhbmFnb3phXCA7CivljJfniIYgPCBob2t1YmFrdVwgOwor546E5q2m5bKpIDwgZ2VuYnVnYW5cIDsKK+W4uOmjnyA8IGpvdXNob2t1XCA7CivpsJDprqsgPCB3YW5pemFtZVwgOwor5rOo5YWlIDwgY2h1dW55dXVcIDsKK+aApeWzuyA8IGt5dXVzaHVuXCA7CivmtrLnirbljJYgPCBla2lqb3VrYVwgOwor54Sh5Yip5oGvIDwgbXVyaXNva3VcIDsKK+mZo+e+vee5lCA8IGppbmJhb3JpXCA7Civps6nog7ggPCBoYXRvbXVuZVwgOwor5oim6ZeY5qmfIDwgc2VudG91a2lcIDsKK+acieaEj+eahCA8IHl1dWl0ZWtpXCA7Civlupfos4MgPCB0YW5hY2hpblwgOwor5ZWP6aGM5YWQIDwgbW9uZGFpamlcIDsKK+W/g+aguSA8IGtva29yb25lXCA7Civlhqzps6UgPCBmdXl1ZG9yaVwgOwor5Y2U5qWtIDwga3lvdWd5b3VcIDsKK+WCteWLmeiAhSA8IHNhaW11c2hhXCA7Civlh53pm4YgPCBneW91c2h1dVwgOwor5LiA6aiO6KiOIDwgaWtraXVjaGlcIDsKK+ijnOe1pui3ryA8IGhva3l1dXJvXCA7CivpgIHpgZQgPCBzb3V0YXRzdVwgOwor5b2r54mpIDwgaG9yaW1vbm9cIDsKK+W6leixhiA8IHNva29tYW1lXCA7Civps6XogowgPCB0b3JpaGFkYVwgOwor6bOl6IKJIDwgdG9yaW5pa3VcIDsKK+avjeeJqSA8IGhhaGFtb25vXCA7CivlvaIgPCBrYXRhY2hpXCA7CivovY0gPCB3YWRhY2hpXCA7Civlt7cgPCBjaGltYXRhXCA7Civot6MgPCBoYWRhc2hpXCA7CivotqMgPCBvbW9tdWtpXCA7CivlsYAgPCB0c3Vib25lXCA7Civlr6cgPCBtdXNoaXJvXCA7CivnjbogPCBrYXdhdXNvXCA7Civni5AgPCBraXRzdW5lXCA7Civlq4IgPCBhbml5b21lXCA7CivoqbEgPCBoYW5hc2hpXCA7Civnh5UgPCB0c3ViYW1lXCA7Civmu7QgPCBzaGl6dWt1XCA7CivmuZYgPCBtaXp1dW1pXCA7CivliaMgPCB0c3VydWdpXCA7Civlh50gPCBzaGlrb3JpXCA7CivlhqAgPCBrYW5tdXJpXCA7CivmpL8gPCB0c3ViYWtpXCA7Civmop8gPCBmdWt1cm91XCA7CivpoIIgPCBpdGFkYWtpXCA7Civmn7EgPCBoYXNoaXJhXCA7Civkv44gPCBtYW5haXRhXCA7CivmnpcgPCBoYXlhc2hpXCA7Civkvo0gPCBzYW11cmFpXCA7CivnvoogPCBoaXRzdWppXCA7CivmnbEgPCBoaWdhc2hpXCA7CivmmJQgPCBtdWthc2hpXCA7CivntYwgPCB0YXRlaXRvXCA7CivpjKYgPCBuaXNoaWtpXCA7Civnp4EgPCB3YXRhc2hpXCA7Civnpa0gPCBtYXRzdXJpXCA7CivnpL4gPCB5YXNoaXJvXCA7CivnorogPCB0YXNoaWthXCA7CivpgrggPCB5YXNoaWtpXCA7CivnpL7lhbEgPCBzaGFreW91XCA7Civlv4PmnZAgPCBzaGluemFpXCA7Civov5HplpMgPCBjaGlrYW1hXCA7CivljrvlsLEgPCBreW9zaHV1XCA7CivliY3ooaggPCB6ZW5weW91XCA7CivlkJvlgbQgPCBrdW5zb2t1XCA7Civov73pgIEgPCB0c3Vpc291XCA7CivljaDmnIkgPCBzZW4nJ3l1dVwgOwor5b+M5pelIDwga2luaWNoaVwgOwor5Y2g5pu4IDwgdXJhYnVtaVwgOwor5biz6Z2iIDwgY2hvdW1lblwgOwor55u06Z+zIDwgY2hva3VvblwgOwor5Yqf57i+IDwga291c2VraVwgOwor5rCR5qWtIDwgbWluZ3lvdVwgOwor6JaE5ZG9IDwgaGFrdW1laVwgOwor5bit6aCGIDwgc2VraWp1blwgOwor55uK6bOlIDwgZWtpY2hvdVwgOwor5rKW5aSpIDwgY2h1dXRlblwgOwor5LiL5bGk5ZyfIDwga2Fzb3Vkb1wgOwor5b+c5o6lIDwgb3VzZXRzdVwgOwor556g6IulIDwgZG91amFrdVwgOwor6LW35YuV5qmfIDwga2lkb3VraVwgOwor5b6M5rWBIDwga291cnl1dVwgOwor5Y+s5ZaaIDwgc2hvdWthblwgOwor5byV566XIDwgaGlraXphblwgOwor5biv6Z2pIDwgb2Jpa2F3YVwgOwor5Ye66YeRIDwgc2h1a2tpblwgOwor5Y2B5a2X5p62IDwganV1amlrYVwgOwor5Y+r5ZaaIDwga3lvdWthblwgOwor5ZCJ5Ye2IDwga2lra3lvdVwgOwor6YeN5ZynIDwganV1YXRzdVwgOwor6L+w6YOoIDwganV0c3VidVwgOwor6bey5bqnIDwgd2FzaGl6YVwgOwor5byT566tIDwga3l1dXNlblwgOwor5YiG6YCyIDwgYnVuc2hpblwgOwor6I+p6JapIDwgYm9zYXRzdVwgOwor5YiG6YCfIDwgZnVuc29rdVwgOwor5rC05pKDIDwgc3VpZ2VraVwgOwor5rKi5ZywIDwgc2F3YWNoaVwgOwor5YiH6L+rIDwgc2VwcGFrdVwgOwor5Y2X5pydIDwgbmFuY2hvdVwgOwor5Lq65bel6ZuoIDwgamlua291dVwgOwor5b+15b+1IDwgbmVuJyduZW5cIDsKK++8rumfvyA8IGVudWt5b3VcIDsKK+ato+e2miA8IHNlaXpva3VcIDsKK+iQveesrCA8IHJha3VkYWlcIDsKK+mHo+WQiCA8IHRzdXJpYWlcIDsKK+ato+e1uSA8IHNob3VrZW5cIDsKK+mkk+msvOmBkyA8IGdha2lkb3VcIDsKK+WOs+WuuSA8IGdlbicneW91XCA7CivpgLLooYwgPCBzaGlua291XCA7CivlkInlhYYgPCBraXRjaG91XCA7CivkuI3lrprmnJ8gPCBmdXRlaWtpXCA7Civli5XnmoQgPCBkb3V0ZWtpXCA7CivlkIzlg5ogPCBkb3VyeW91XCA7CivmraPntYwgPCBzZWlreW91XCA7CivljJfmuoAgPCBob2t1bWFuXCA7CivljYrmoLwgPCBoYW5rYWt1XCA7CivpgJrorIAgPCB0c3V1Ym91XCA7CivmqKHmk6zlupcgPCBtb2dpdGVuXCA7Civlj6zlkb0gPCBzaG91bWVpXCA7CivpgJroq5YgPCB0c3V1cm9uXCA7Civluo/oqqwgPCBqb3NldHN1XCA7Civms6XkuK0gPCBkZWljaHV1XCA7CivlupXop5IgPCB0ZWlrYWt1XCA7CivlibLoiIggPCB3YXJpa291XCA7CivlvrPmnJsgPCB0b2t1Ym91XCA7CivmgKXlpIkgPCBreXV1aGVuXCA7Civlj6PllIcgPCBrb3VzaGluXCA7Civps6XntrIgPCB0b3JpYW1pXCA7Civmga3lgLkgPCBreW91a2VuXCA7Civlj6vlj7cgPCBreW91Z291XCA7Civlj6TmrabpgZMgPCBrb2J1ZG91XCA7CivmoITppIrntKAgPCBlaXlvdXNvXCA7CivliLrooZ0gPCBzaGlzaG91XCA7Civlub3osLcgPCB5dXVrb2t1XCA7CivphJnmrYwgPCBoaW5hdXRhXCA7CivmrrXniakgPCBkYW5tb25vXCA7CivlkIzkv6EgPCBkb3VzaGluXCA7Civnn7Pnm6QgPCBzZWtpYmFuXCA7CivmrbvnpaggPCBzaGloeW91XCA7CivlibLohbkgPCBrYXBwdWt1XCA7Civlu5DoiI4gPCBreXV1c2hhXCA7CivpgJroqIggPCB0c3V1a2VpXCA7Civlj7DljJcgPCB0YWlob2t1XCA7Civli6TnjosgPCBraW4nJ25vdVwgOwor5b+r5b6pIDwga2FpZnVrdVwgOwor5rCR5pyJIDwgbWluJyd5dXVcIDsKK+attOeoiyA8IHJla2l0ZWlcIDsKK+egtOa7hSA8IGhhbWV0c3VcIDsKK+aApeWilyA8IGt5dXV6b3VcIDsKK+mAmuinoyA8IHRzdXVrYWlcIDsKK+WIpOiqrSA8IGhhbmRva3VcIDsKK+mHjeWUsSA8IGp1dXNob3VcIDsKK+WQjeS9nCA8IG1laXNha3VcIDsKK+mAmuimsyA8IHRzdXVrYW5cIDsKK+W8lOelrSA8IGNob3VzYWlcIDsKK+WQhOWBnCA8IGtha3V0ZWlcIDsKK+aBqeWAnyA8IG9uc2hha3VcIDsKK+WPsuWKhyA8IHNoaWdla2lcIDsKK+WMl+a0iyA8IGhva3V5b3VcIDsKK+mAmuimpyA8IHRzdXVyYW5cIDsKK+mBqeiAhSA8IHRla2lzaGFcIDsKK+WJr+iFjiA8IGZ1a3VqaW5cIDsKK+ekvuS4rSA8IHNoYWNodXVcIDsKK+i/vei0iCA8IHRzdWl6b3VcIDsKK+aApeWgsSA8IGt5dXVob3VcIDsKK+W4q+mVtyA8IHNoaWNob3VcIDsKK+WIgOi6qyA8IHRvdXNoaW5cIDsKK+WKoOethiA8IGthaGl0c3VcIDsKK+WOu+WjsCA8IGt5b3Nob3VcIDsKK+WQjeS7oyA8IG15b3VkYWlcIDsKK+WMoeatoyA8IGt5b3VzZWlcIDsKK+i6q+WLneaJiyA8IG1pZ2F0dGVcIDsKK+WQiOS9nCA8IGdhc3Nha3VcIDsKK+eEoeWIqeWtkCA8IG11cmlzaGlcIDsKK+W+k+alrSA8IGp1dWd5b3VcIDsKK+WNiuaZgiA8IGhhbnRva2lcIDsKK+iQveejkCA8IHJha3ViYW5cIDsKK+WOn+WvqSA8IGdlbnNoaW5cIDsKK+avkua2siA8IGRva3Vla2lcIDsKK+W9vOawjyA8IGthcmVzaGlcIDsKK+W4nemZtSA8IHRlaXJ5b3VcIDsKK+W+s+aUvyA8IHRva3VzZWlcIDsKK+awkeaXjyA8IG1pbnpva3VcIDsKK+mBoOiAsyA8IHRvb21pbWlcIDsKK+eRoOeSg+iJsiA8IHJ1cmlpcm9cIDsKK+WQjeS4uyA8IG5hbnVzaGlcIDsKK+aApeWdgiA8IGt5dXVoYW5cIDsKK+WIneiouiA8IHNob3NoaW5cIDsKK+W6g+inkiA8IGtvdWtha3VcIDsKK+WQieS6iyA8IGtpdHN1amlcIDsKK+awj+aXjyA8IHNoaXpva3VcIDsKK+W8lOegsiA8IGNob3Vob3VcIDsKK+W7uuetliA8IGtlbnNha3VcIDsKK+WJjeiRiSA8IHplbicneW91XCA7CivpgJrooYwgPCB0c3V1a291XCA7CivlkIzkuIAgPCBkb3VpdHN1XCA7Civlub7oqLEgPCBpa3ViYWt1XCA7Civph43ljpogPCBjaG91a291XCA7CivojbfpgIEgPCBuaW9rdXJpXCA7Civlvqnml6cgPCBmdWtreXV1XCA7Civog4Pohbjngo4gPCBpY2hvdWVuXCA7CivmsqHlj44gPCBib3NzaHV1XCA7Civlu7vnq6AgPCBrYWlzaG91XCA7CivljZrmjZwgPCBoYWt1c291XCA7Civnn6XnmoQgPCBjaGl0ZWtpXCA7CivlkITkurogPCBrYWt1amluXCA7CivmrovnlZkgPCB6YW5yeXV1XCA7Civotbfli5XmmYIgPCBraWRvdWppXCA7CivluZXou40gPCBiYWt1Z3VuXCA7Civlu7rnq4sgPCBrb25yeXV1XCA7CivmsoPlnLAgPCB5b2t1Y2hpXCA7CivpgYroiIggPCB5dXVreW91XCA7CivlvqnmlocgPCBmdWt1YnVuXCA7CivlkIjkuIAgPCBnb3VpdHN1XCA7CivliKXooaggPCBiZXBweW91XCA7Civlia/nvbIgPCBmdWt1c2hvXCA7Civlj5flj5YgPCB1a2V0b3JpXCA7Civlv4PmiL8gPCBzaGluYm91XCA7Civlj6TliLkgPCBrb3NhdHN1XCA7CivlirTnm7ggPCByb3VzaG91XCA7Civpg63muIUgPCBrYWt1c2VpXCA7Civlh7rotbAgPCBzaHVzc291XCA7CivlubvoppogPCBnZW5rYWt1XCA7CivliZvohbkgPCBnb3VmdWt1XCA7CivmrrrpmaPluKsgPCB0YXRlc2hpXCA7CivpoZ7nvqnoqp4gPCBydWlnaWdvXCA7Civmra/nn7MgPCBzaGlzZWtpXCA7CivlrrboqIjnsL8gPCBrYWtlaWJvXCA7CivmgaXkuJggPCBjaGlreXV1XCA7CivlhajpuqYgPCB6ZW5iYWt1XCA7CivljZrmiZMgPCBiYWt1Y2hpXCA7Civov73oqo0gPCB0c3VpbmluXCA7Civph4/liJEgPCByeW91a2VpXCA7Civph43liLsgPCBqdXVrb2t1XCA7CivnorrlroggPCBrYWt1c2h1XCA7CivnmbvoqJjnsL8gPCB0b3VraWJvXCA7Civov73oqaYgPCB0c3Vpc2hpXCA7Civlh7ros4cgPCBzaHVzc2hpXCA7CivnnJ/otIsgPCBzaGluZ2FuXCA7CivmsJfmjIEgPCBraW1vY2hpXCA7Civph43mr43pn7MgPCBqdXVib2luXCA7CivlubPop5IgPCBoZWlrYWt1XCA7CivmraPnorogPCBzZWlrYWt1XCA7Civov73oqI4gPCB0c3VpdG91XCA7Civmr6zmoJcgPCBpZ2FndXJpXCA7Civmrbvnl4UgPCBzaGlieW91XCA7CivlhbHps7QgPCBreW91bWVpXCA7Civlj43lj44gPCB0YW5zaHV1XCA7CivpgYXnn6XmgbUgPCBvc29kamllXCA7Civlv5bluqYgPCBzb250YWt1XCA7CivluK/ph5EgPCBvYmlnYW5lXCA7CivojZjph40gPCBzb3VjaG91XCA7CivlpKfpgY7ljrsgPCBkYWlrYWtvXCA7Civlv4Pmg4UgPCBzaGluam91XCA7CivljLnmlbUgPCBoaXR0ZWtpXCA7Civpg6jmtLsgPCBidWthdHN1XCA7Civph47lhY4gPCBub3VzYWdpXCA7CivmsLjlubQgPCBuYWdhbmVuXCA7CivliqDnrpflmaggPCBrYXNhbmtpXCA7CivpgIbooYwgPCBneWFra291XCA7CivlpKfnm7jmkrIgPCBvb3p1bW91XCA7Civov4XpgJ8gPCBqaW5zb2t1XCA7CivmqZ/og73oqp4gPCBraW5vdWdvXCA7Civlvozmm7ggPCBhdG9nYWtpXCA7CivliY3ohoogPCB6ZW5wYWt1XCA7Civph5HlgbQgPCBraW5nYXdhXCA7Civlv4PmgKcgPCBzaGluc2VpXCA7Civov7Doqp4gPCBqdXRzdWdvXCA7CivnoqflsbEgPCBoZWtpemFuXCA7CivmsojlkJ8gPCBjaGluZ2luXCA7CivmnInmsJfpn7MgPCB5dXVraW9uXCA7CivliY3ohLMgPCB6ZW4nJ25vdVwgOwor5bm06KGoIDwgbmVucHlvdVwgOwor5YmN6ISaIDwgbWFlYXNoaVwgOwor5q2O56ewIDwgdGFuc2hvdVwgOwor5Ye66KybIDwgc2h1a2tvdVwgOwor5LiN5p2h55CGIDwgZnVqb3VyaVwgOwor5Yi66I2JIDwgaXJha3VzYVwgOwor5Y2D5oyvIDwgc2VuYnVyaVwgOwor5b+D5b6XIDwga29rb3JvZVwgOwor5oGS5LmFIDwga291a3l1dVwgOwor5Y+q5LuKIDwgdGFkYWltYVwgOwor5Y+N5YmHIDwgaGFuc29rdVwgOwor5Y+j5L6bIDwga291a3lvdVwgOwor5by354GrIDwgdHN1eW9iaVwgOwor5oGL5LuyIDwga29pbmFrYVwgOwor5q2755CDIDwgc2hpa3l1dVwgOwor5Yqp55WqIDwgc3VrZWJhblwgOwor5b6M5pelIDwgZ29uaWNoaVwgOwor6YWN5b25IDwgaGFpeWFrdVwgOwor5oGL5Lq6IDwga29pYml0b1wgOwor5aSn6YGT5YW3IDwgb29kb3VndVwgOwor5a6a5L2N572uIDwgdGVpaWNoaVwgOwor5oCq5YqbIDwga2FpcmlraVwgOwor5b6B5pyNIDwgc2VpZnVrdVwgOwor5q+N5qeYIDwga2Fhc2FtYVwgOwor55yf6KumIDwgc2hpbnRlaVwgOwor5byx54K5IDwgamFrdXRlblwgOwor6YCj6I2YIDwgcmVuY2hhblwgOwor5YaG6aGUIDwgbWFydWdhb1wgOwor55uy6YCyIDwgbW91c2hpblwgOwor5b+g5a2dIDwgY2h1dWtvdVwgOwor6bOl556wIDwgY2hvdWthblwgOwor5bm86JmrIDwgeW91Y2h1dVwgOwor6JC955CDIDwgcmFra3l1dVwgOwor5beo6aGNIDwga3lvZ2FrdVwgOwor5Ymy566XIDwgd2FyaXphblwgOwor6YGL6YCB5bGLIDwgdW5zb3V5YVwgOwor6YCg5Za26LK7IDwgem91ZWloaVwgOwor5Y+N5YWxIDwgaGFua3lvdVwgOwor5q6L54WnIDwgemFuc2hvdVwgOwor5YyX5p2xIDwgaG9rdXRvdVwgOwor6YC46IGeIDwgaXRzdWJ1blwgOwor6YWS5bitIDwgc2h1c2VraVwgOwor55+z54KtIDwgc2VraXRhblwgOwor5rC35bGxIDwgaHlvdXphblwgOwor5byV546HIDwgaW5zb3RzdVwgOwor5bu2552AIDwgZW5jaGFrdVwgOwor5rC35bGLIDwga29vcml5YVwgOwor5Y2x5bGAIDwga2lreW9rdVwgOwor6JKZ5Y+k6KqeIDwgbW91a29nb1wgOwor5Ye46KeSIDwgdG9ra2FrdVwgOwor55uu6YCBIDwgbW9rdXNvdVwgOwor5qmf5qKw56eRIDwga2lrYWlrYVwgOwor55u06Ly4IDwgY2hva3V5dVwgOwor56CV5rC3IDwgc2FpaHlvdVwgOwor55yf6KiAIDwgc2hpbmdvblwgOwor5bu655m9IDwga2VucGFrdVwgOwor5q2m55WlIDwgYnVyeWFrdVwgOwor5oCn5YiGIDwgc2hvdWJ1blwgOwor5YaX6ZW3IDwgam91Y2hvdVwgOwor56K65aCxIDwga2FrdWhvdVwgOwor5bqn6IG3IDwgemFzaG9rdVwgOwor5Y+j5LitIDwga291Y2h1dVwgOwor5Ya36YW3IDwgcmVpa29rdVwgOwor5qyh5bm05bqmIDwgamluZW5kb1wgOwor5q605q66IDwgb3VzYXRzdVwgOwor5YWl6a2CIDwgbnl1dWtvblwgOwor5b+X5a2mIDwgc2hpZ2FrdVwgOwor5aSa6YeN5YyWIDwgdGFqdXVrYVwgOwor5b6A5pelIDwgb3VqaXRzdVwgOwor5rGC5amaIDwga3l1dWtvblwgOwor5bu255m6IDwgZW5wYXRzdVwgOwor5Y2D5Luj5aWzIDwgY2hpeW9qb1wgOwor55yf6KW/IDwgbWFuaXNoaVwgOwor5Y+k56S+5a+6IDwga29zaGFqaVwgOwor5byT54q2IDwga3l1dWpvdVwgOwor6Yac5ZCNIDwgc2h1dW1laVwgOwor5rCR5b+DIDwgbWluc2hpblwgOwor5qip6auYIDwga2VuZGFrYVwgOwor5LiA5bGk55uuIDwgaXNzb3VtZVwgOwor5rCR5b6zIDwgbWludG9rdVwgOwor5Y+N5L+XIDwgaGFuem9rdVwgOwor5rG65YudIDwga2Vzc2hvdVwgOwor5YaF6Zm4IDwgbmFpcmlrdVwgOwor55u06LevIDwgY2hva3Vyb1wgOwor6YGp56K6IDwgdGVra2FrdVwgOwor6Iy26YecIDwgY2hhZ2FtYVwgOwor5aiR5amG5rCXIDwgc2hhYmFrZVwgOwor6L6b6YW4IDwgc2hpbnNhblwgOwor5biM6YeIIDwga2lzaGFrdVwgOwor5Ye26KGMIDwga3lvdWtvdVwgOwor5q+O5pydIDwgbWFpY2hvdVwgOwor55m96a+oIDwgaGFrdWdlaVwgOwor5Y2K5byTIDwgaGFua3l1dVwgOwor5Yqx56OB5qmfIDwgcmVpamlraVwgOwor5LiN6aaW5bC+IDwgZnVzaHViaVwgOwor5Yid6I23IDwgaGF0c3VuaVwgOwor5YyX5pSvIDwgaG9rdXNoaVwgOwor5oKq5oSf5YyWIDwgYWtrYW5rYVwgOwor5b6F6YG/5omAIDwgdGFpaGlqb1wgOwor5YaF6ZayIDwgbmFpZXRzdVwgOwor5YaF6ZajIDwgbmFpa2FrdVwgOwor6YWN5bGeIDwgaGFpem9rdVwgOwor6JS15Yy/IDwgem91dG9rdVwgOwor5bir6LWwIDwgc2hpd2FzdVwgOwor5rKI5YCrIDwgY2hpbnJpblwgOwor6YWS5a6iIDwgc2h1a2FrdVwgOwor5q+U5pelIDwgaGluaWNoaVwgOwor5Y6f5ZGKIDwgZ2Vua29rdVwgOwor5Zub6IKh5ZCNIDwgc2hpa29uYVwgOwor55m96a2aIDwgc2hpcmF1b1wgOwor5Y2K5bm0IDwgaGFuJyduZW5cIDsKK+mBi+ethiA8IHVucGl0c3VcIDsKK+m3ueWMoCA8IHRha2Fqb3VcIDsKK+attOeEtiA8IHJla2l6ZW5cIDsKK+S4jeS6uuawlyA8IGZ1bmlua2lcIDsKK+WFrOmgmCA8IGtvdXJ5b3VcIDsKK+i/keimqiA8IGtpbnNoaW5cIDsKK+aApeS9vyA8IGt5dXVzaGlcIDsKK+WJveeblyA8IGh5b3V0b3VcIDsKK+W5vOiLpSA8IHlvdWpha3VcIDsKK+ilv+asp+WMliA8IHNlaW91a2FcIDsKK+WFqOmhjSA8IHplbmdha3VcIDsKK+aomemrmCA8IGh5b3Vrb3VcIDsKK+WNs+WjsiA8IHNva3ViYWlcIDsKK+S6jOmajuWxiyA8IG5pa2FpeWFcIDsKK+WNg+W6piA8IGNoaXRhYmlcIDsKK+W8t+awlyA8IHRzdXlva2lcIDsKK+ajkuaal+iomCA8IGJvdWFua2lcIDsKK+W6geiIjiA8IGNob3VzaGFcIDsKK+WKh+eVjCA8IGdla2lrYWlcIDsKK+WNg+W5tCA8IGNoaXRvc2VcIDsKK+S4jeS4gOiHtCA8IGZ1aXRjaGlcIDsKK+ihgOWPjeWQkCA8IGNoaWhlZG9cIDsKK+WKh+eUmiA8IGdla2lqaW5cIDsKK+aoqumhlCA8IHlva29nYW9cIDsKK+abs+eBq+W8viA8IGVpa2FkYW5cIDsKK+WLp+alrSA8IGthbmd5b3VcIDsKK+WHneimliA8IGd5b3VzaGlcIDsKK+WIuue5jSA8IHNoaXNodXVcIDsKK+eeoOebriA8IGRvdW1va3VcIDsKK+WGjemMsiA8IHNhaXJva3VcIDsKK+ecn+iZqyA8IG1hbXVzaGlcIDsKK+mzpeeNoyA8IGNob3VqdXVcIDsKK+W+ueWutSA8IHRlc3Nob3VcIDsKK+WNkeWxiCA8IGhpa3V0c3VcIDsKK+WKoOeGsSA8IGthbmV0c3VcIDsKK+ewoee0oOWMliA8IGthbnNva2FcIDsKK+WAi+S9k+W3riA8IGtvdGFpc2FcIDsKK+WGjemLsyA8IHNhaWNodXVcIDsKK+awt+WhiiA8IGh5b3VrYWlcIDsKK+WQjOmfs+iqniA8IGRvdW9uZ29cIDsKK+WNkuWvvyA8IHNvdHN1anVcIDsKK+W8t+assiA8IGdvdXlva3VcIDsKK+WNlOWumiA8IGt5b3V0ZWlcIDsKK+WFtemVtyA8IGhlaWNob3VcIDsKK+mFjOWppiA8IHNoYWt1ZnVcIDsKK+egsuaSgyA8IGhvdWdla2lcIDsKK+awl+WvhiA8IGtpbWl0c3VcIDsKK+mBuOeQgyA8IHNlbmt5dXVcIDsKK+WOn+WJhyA8IGdlbnNva3VcIDsKK+WFsemXmCA8IGt5b3V0b3VcIDsKK+S5l+WLmeWToSA8IGpvdW11aW5cIDsKK+ebtOirqyA8IGNob2trYW5cIDsKK+ijj+acqOaIuCA8IHVyYWtpZG9cIDsKK+eZuummrCA8IGhhdHN1YmFcIDsKK+WIuue1oSA8IHNoaXJha3VcIDsKK+WFqOmbhiA8IHplbnNodXVcIDsKK+WNk+WtkCA8IHRlaWJ1cnVcIDsKK+ebtOirhyA8IGppa2lkYW5cIDsKK+WFpembuyA8IG55dXVkZW5cIDsKK+WJjeeroCA8IHplbnNob3VcIDsKK+efs+autSA8IGlzaGlkYW5cIDsKK+atpueDiCA8IGJ1cmV0c3VcIDsKK+ebtOipsSA8IGNob2t1d2FcIDsKK+ejgeWKmyA8IGppcnlva3VcIDsKK+awtOWeoiA8IG1penVha2FcIDsKK+W5s+iHvCA8IGhpcmF1c3VcIDsKK+W9ueaJgCA8IHlha3VzaG9cIDsKK+mBqeeUqCA8IHRla2l5b3VcIDsKK+mAo+e2miA8IHJlbnpva3VcIDsKK+WNteWaoiA8IHJhbicnbm91XCA7CivmsI/lr7ogPCB1amlkZXJhXCA7CivlhaXpmoogPCBueXV1dGFpXCA7Civlv4PlpJYgPCBzaGluZ2FpXCA7Civph5Hmr5jnvoUgPCBrb25waXJhXCA7CivljYrlrrUgPCBoYW5zaG91XCA7CivpgKPntaEgPCByZW5yYWt1XCA7CivliLbntIQgPCBzZWl5YWt1XCA7CivnnpHnm64gPCBtZWltb2t1XCA7CivlipvngrkgPCByaWtpdGVuXCA7CivmsLTlnKcgPCBzdWlhdHN1XCA7CivlubvogbQgPCBnZW5jaG91XCA7CivmqJnpoYwgPCBoeW91ZGFpXCA7CivmsLflmqIgPCBoeW91bm91XCA7Civlv7XlipsgPCBuZW5yaWtpXCA7CivnhKHpgKDkvZwgPCBtdXpvdXNhXCA7Civnm7TopqcgPCBqaWtpcmFuXCA7CivljYPlsIsgPCBjaGloaXJvXCA7CivlhajplbcgPCB6ZW5jaG91XCA7CivljZrlpKcgPCBoYWt1ZGFpXCA7CivljYHkuozmmYIgPCBqdXVuaWppXCA7CivokL3mtpkgPCByYWt1cnVpXCA7CivlhoXph5EgPCB1Y2hpa2luXCA7CivnmbvpoIIgPCB0b3VjaG91XCA7Civnm5fos4ogPCB0b3V6b2t1XCA7CivljZrlo6sgPCBoYWt1c2hpXCA7CivmhI/mg7PlpJYgPCBpc291Z2FpXCA7CivkuI3lronlrpogPCBmdWFudGVpXCA7Civnmbrpn7MgPCBoYXRzdW9uXCA7CivlhaXploAgPCBueXV1bW9uXCA7Civmr5LmiYsgPCBkb2t1c2h1XCA7Civnn7PmqYsgPCBzZWtreW91XCA7CivnnJ/oj4wgPCBzaGlua2luXCA7Civnmb3pnaIgPCBoYWt1bWVuXCA7CivlvrnlpJwgPCB0ZXRzdXlhXCA7CivpmbDpm7vmsJcgPCBpbmRlbmtpXCA7Civnn7Pmp6ggPCBzZWtrYWt1XCA7CivliIfohbkgPCBzZXBwdWt1XCA7Civlv6DlkJsgPCBjaHV1a3VuXCA7CivoloTppqzpub8gPCB1c3ViYWthXCA7CivolLXkurogPCBrdXJvdWRvXCA7CivlubTogIEgPCB0b3NoaW9pXCA7Civoi5TpoZ4gPCBrb2tlcnVpXCA7CivkuIHlrZfot68gPCB0ZWlqaXJvXCA7CivnmbrpnLIgPCBoYXRzdXJvXCA7CivlhYfpoZ4gPCBreW91cnVpXCA7CivpgJTntbYgPCB0b3pldHN1XCA7Civnm7TooYwgPCBjaG9ra291XCA7CivlipvmvJUgPCByaWtpc291XCA7CivljaDlnLAgPCBzaGltZWppXCA7Civlv4PlnLAgPCBrb2tvY2hpXCA7Civmj5DnpLrpg6ggPCB0ZWlqaWJ1XCA7CivlhYjpoIMgPCBzZW5rb3JvXCA7Civmrbvmr5IgPCBzaGlkb2t1XCA7CivmhbDllY/lk4EgPCBpbW9uaGluXCA7Civlupznq4sgPCBmdXJpdHN1XCA7Civljp/kvZwgPCBnZW5zYWt1XCA7CivljbDlk7IgPCBpbnRldHN1XCA7CivlhrfoqZUgPCByZWloeW91XCA7Civlv4Plm6AgPCBzaGluJydpblwgOwor6YCf566XIDwgc29rdXNhblwgOwor5Y6E5YmNIDwgeWFrdW1hZVwgOwor5q6L5qWtIDwgemFuZ3lvdVwgOwor6I2S6KGMIDwgYXJhZ3lvdVwgOwor5YaF6YCaIDwgbmFpdHN1dVwgOwor6Kaq5paH5a2XIDwgb3lhbW9qaVwgOwor5Yud5pmvIDwgc2hvdWtlaVwgOwor556t54S2IDwgcnlvdXplblwgOwor5b6T5bGeIDwganV1em9rdVwgOwor5bym5qW9IDwgZ2VuZ2FrdVwgOwor5YqD54S2IDwga2FrdXplblwgOwor5Y2z5ZCfIDwgc29rdWdpblwgOwor5Y2D5aerIDwgc2VuaGltZVwgOwor5b+g5YukIDwgY2h1dWtpblwgOwor5b+g5YuHIDwgY2h1dXl1dVwgOwor55CG6LKh5a62IDwgcml6YWlrYVwgOwor5Ya36KaaIDwgcmVpa2FrdVwgOwor6YCa566XIDwgdHN1dXNhblwgOwor6YCG57iBIDwgZ3lha3VlblwgOwor5pyJ6IC254Sh6IC2IDwgdXlhbXV5YVwgOwor56i95Y+k5pelIDwga2Vpa29iaVwgOwor5Yid57SaIDwgc2hva3l1dVwgOwor5q+S5oCnIDwgZG9rdXNlaVwgOwor5beh6YGKIDwganVuJyd5dXVcIDsKK+W+k+WuuSA8IHNob3V5b3VcIDsKK+WNl+WbvSA8IG5hbmdva3VcIDsKK+S6jOWhgeaJkyA8IG5pcnVpZGFcIDsKK+W8t+aatCA8IGt5b3Vib3VcIDsKK+W5leiIjiA8IGJha3VzaGFcIDsKK+awt+WOnyA8IGh5b3VnZW5cIDsKK+W5s+e5lCA8IGhpcmFvcmlcIDsKK+W/nOWKmyA8IG91cnlva3VcIDsKK+WLneaVlyA8IHNob3VoYWlcIDsKK+aJi+ebuOimiyA8IHRlc291bWlcIDsKK+axguWIkSA8IGt5dXVrZWlcIDsKK+WknOebl+ibviA8IHlvdG91Z2FcIDsKK+W3u+iynSA8IG1ha2lnYWlcIDsKK+W8j+asoSA8IHNoaWtpamlcIDsKK+WGmeixoSA8IHNoYXNob3VcIDsKK+Wls+aAp+e+jiA8IGpvc2VpYmlcIDsKK+aui+afsSA8IHphbmNodXVcIDsKK+efs+adkCA8IHNla2l6YWlcIDsKK+miqOmCquWjsCA8IGthemVnb2VcIDsKK+WOreS4luWutiA8IGVuc2Vpa2FcIDsKK+mCpualvSA8IGhvdWdha3VcIDsKK+WJo+eOiSA8IGtlbmRhbWFcIDsKK+WMl+W2uiA8IGhva3VyZWlcIDsKK+W5tOe1piA8IG5lbmt5dXVcIDsKK+WFqOmHjyA8IHplbnJ5b3VcIDsKK+W+jOWtpiA8IGtvdWdha3VcIDsKK+mChOa1gSA8IGthbnJ5dXVcIDsKK+WNs+WIuyA8IHNva2tva3VcIDsKK+WHtuiBniA8IGt5b3VidW5cIDsKK+awkeWbvSA8IG1pbmtva3VcIDsKK+WFpemHkSA8IG55dXVraW5cIDsKK+WJm+eQgyA8IGdvdWt5dXVcIDsKK+eGqOaWl+ebriA8IG5vc2hpbWVcIDsKK+WNiuWbvSA8IGhhbmdva3VcIDsKK+awuOWIpSA8IGVpYmV0c3VcIDsKK+mFt+S9vyA8IGtva3VzaGlcIDsKK+W/q+S9nCA8IGthaXNha3VcIDsKK+WNsOWItyA8IGluc2F0c3VcIDsKK+i/vee0jSA8IHRzdWlub3VcIDsKK+awt+WIgyA8IGh5b3VqaW5cIDsKK+mZsOisgOWutiA8IGluYm91a2FcIDsKK+WFremBkyA8IHJva3Vkb3VcIDsKK+WMl+WyuCA8IGhva3VnYW5cIDsKK+mAgeexjSA8IHNvdXNla2lcIDsKK+WIpeensCA8IGJlc3Nob3VcIDsKK+maj+aEj+etiyA8IHp1aWlraW5cIDsKK+W6reeVqiA8IG5pd2FiYW5cIDsKK+i+suiWrCA8IG5vdXlha3VcIDsKK+mBiueMnyA8IHl1dXJ5b3VcIDsKK+eZu+mMsiA8IHRvdXJva3VcIDsKK+WNoOWNnCA8IHNlbmJva3VcIDsKK+aJi+WKoOa4myA8IHRla2FnZW5cIDsKK+iumue+juatjCA8IHNhbmJpa2FcIDsKK+iRieaciCA8IGhhZHp1a2lcIDsKK+W3qOiziiA8IGt5b3pva3VcIDsKK+iPr+eHrSA8IGthc2hva3VcIDsKK+W9k+aDkSA8IHRvdXdha3VcIDsKK+WIhue0jSA8IGJ1bicnbm91XCA7CivliJ3nqYIgPCBoYXRzdWhvXCA7Civlv4Xli50gPCBoaXNzaG91XCA7Civnmb3pipEgPCBoYWt1c2VuXCA7CivlhajpgJ8gPCB6ZW5zb2t1XCA7CivlhaXpgbggPCBueXV1c2VuXCA7CivlhajpgJogPCB6ZW50c3V1XCA7Civnmb3pioUgPCBoYWt1ZG91XCA7Civnmb3pioAgPCBoYWt1Z2luXCA7CivlhaXpgZMgPCBueXV1ZG91XCA7Civpgqrmm7IgPCBqYWt5b2t1XCA7CivljZzljaAgPCBib2t1c2VuXCA7CivlkIzkvY3kvZMgPCBkb3VpdGFpXCA7Civlt6Xos4MgPCBrb3VjaGluXCA7CivmsLflg48gPCBoeW91em91XCA7CivpoZ7pn7Poqp4gPCBydWlvbmdvXCA7CivpgYrniacgPCB5dXVib2t1XCA7CivpgLHnlaogPCBzaHV1YmFuXCA7Civlv4PlirQgPCBzaGlucm91XCA7CivliJ3np4sgPCBzaG9zaHV1XCA7Civlub7nqIsgPCBpa3Vob2RvXCA7CivmrovmlbUgPCB6YW50ZWtpXCA7CivpgJrnoJQgPCB0c3V1a2VuXCA7CivljZTlkIwgPCBreW91ZG91XCA7CivlubPnrYkgPCBieW91ZG91XCA7Civlj4nmiYvntrIgPCBzYWRlYW1pXCA7CivljbPlgKQgPCBzb2t1Y2hpXCA7CivpgJrnn6UgPCB0c3V1Y2hpXCA7CivnmYLppIogPCByeW91eW91XCA7CivlubTnq68gPCB0b3NoaWhhXCA7Civluq3nkIMgPCB0ZWlreXV1XCA7CivmronmlZkgPCBqdW5reW91XCA7CivmrYzmsqIgPCB1dGF6YXdhXCA7Civli4HmlbUgPCBrZWl0ZWtpXCA7Civlho3oqr8gPCBzYWljaG91XCA7Civlho3oqq0gPCBzYWlkb2t1XCA7CivmsYLkurogPCBreXV1amluXCA7Civlip/mpa0gPCBrb3VneW91XCA7CivoibLpu5IgPCBpcm9ndXJvXCA7CivljZfljJcgPCBuYW5ib2t1XCA7CivlsI/ntqzpto8gPCBrb2p1a2VpXCA7CivljZrlirQgPCBiYWt1cm91XCA7CivmmbTpm6joqIggPCBzZWl1a2VpXCA7CivmlofluqvljJYgPCBidW5rb2thXCA7CivnoLTlsYAgPCBoYWt5b2t1XCA7CivmraPmpa0gPCBzZWlneW91XCA7Civph47mrKHppqwgPCB5YWppdW1hXCA7CivluK/oiq8gPCBvYmlzaGluXCA7CivljYrlkaggPCBoYW5zaHV1XCA7CivpgaHmupAgPCBzYWt1Z2VuXCA7CivlhajouqsgPCB6ZW5zaGluXCA7Civmr5LlrrMgPCBkb2t1Z2FpXCA7CivooZfot6/mqLkgPCBnYWlyb2p1XCA7CivlhoXoq74gPCBuYWlkYWt1XCA7Civlubjnpo8gPCBrb3VmdWt1XCA7Civli6TmgaogPCBraW5rYWt1XCA7Civlh7rnsr4gPCBzaHVzc2VpXCA7Civlvqnlkb0gPCBmdWt1bWVpXCA7Civoi6XpgKAgPCB3YWthem91XCA7CivlupfnlaogPCBtaXNlYmFuXCA7CivprY3prY4gPCBtb3VyeW91XCA7CivmjqfoqLTpmaIgPCBrb3Vzb2luXCA7Civpganms5UgPCB0ZWtpaG91XCA7CivlhKrplbcgPCB5dXVjaG91XCA7Civlv5nkuK0gPCBib3VjaHV1XCA7CivljZHliqMgPCBoaXJldHN1XCA7CivliKnnmbogPCByaWhhdHN1XCA7Civku5nkurrmjowgPCBzYWJvdGVuXCA7Civlvqnlj7cgPCBmdWt1Z291XCA7Civlv4Plg48gPCBzaGluem91XCA7CivpgKPnlKggPCByZW4nJ3lvdVwgOwor5rCX5YqbIDwga2lyeW9rdVwgOwor5q615bmzIDwgZGFuYmlyYVwgOwor5YWx6LKpIDwga3lvdWhhblwgOwor5YaF6Ki8IDwgbmFpc2hvdVwgOwor5YaF6Ki6IDwgbmFpc2hpblwgOwor5YmK54mHIDwgc2FrdWhlblwgOwor5b6p5Y6fIDwgZnVrdWdlblwgOwor55m66YCyIDwgaGFzc2hpblwgOwor5byU5paHIDwgY2hvdWJ1blwgOwor5YyX5aSpIDwgaG9rdXRlblwgOwor5YyX5aSnIDwgaG9rdWRhaVwgOwor5YWD6YeRIDwgbW90b2tpblwgOwor6Iul6LypIDwgamFrdWhhaVwgOwor55uK6JmrIDwgZWtpY2h1dVwgOwor5b6z5YipIDwgdG9ra3VyaVwgOwor5YuB5o23IDwga2Vpc2hvdVwgOwor5b+F5L+uIDwgaGlzc2h1dVwgOwor55uy6IW4IDwgbW91Y2hvdVwgOwor5b6z5YiGIDwgdG9rdWJ1blwgOwor6JK45ZmoIDwgbXVzaGlraVwgOwor5b6u5YqbIDwgYmlyeW9rdVwgOwor5Yy/5ZCNIDwgdG9rdW1laVwgOwor5bq154K5IDwgaW9yaXRlblwgOwor5bu25qOSIDwgbm9iZWJvdVwgOwor5bi457+SIDwgam91c2h1dVwgOwor5Yi255CDIDwgc2Vpa3l1dVwgOwor5YiG56eSIDwgZnVuYnlvdVwgOwor5q2T5qW9IDwga2FucmFrdVwgOwor5rC05LitIDwgc3VpY2h1dVwgOwor6YOo5bGAIDwgYnVreW9rdVwgOwor5YeN6IKJIDwgdG91bmlrdVwgOwor6YCa55SoIDwgdHN1dXlvdVwgOwor6I2J6ImyIDwga3VzYWlyb1wgOwor5YyX5aKDIDwgaG9ra3lvdVwgOwor6a2C6a2EIDwga29ucGFrdVwgOwor5b605YW1IDwgY2hvdWhlaVwgOwor6YWN5L+hIDwgaGFpc2hpblwgOwor6YCX55WZIDwgdG91cnl1dVwgOwor6YGp5q2jIDwgdGVraXNlaVwgOwor5q2j5pydIDwgc2VpY2hvdVwgOwor5q2j5pyUIDwgc2Vpc2FrdVwgOwor5YeE6IWVIDwgc3Vnb3VkZVwgOwor5YWJ6YCfIDwga291c29rdVwgOwor5YuY5b+NIDwga2FuJyduaW5cIDsKK+WFiOmAsiA8IHNlbnNoaW5cIDsKK+WFiOmAsSA8IHNlbnNodXVcIDsKK+WFpeiyoiA8IG55dXVrb3VcIDsKK+mFkuS7oyA8IHNha2FkYWlcIDsKK+eZvei6qyA8IHNoaXJvbWlcIDsKK+W3q+ihkyA8IGZ1anV0c3VcIDsKK+mAn+eQgyA8IHNva2t5dXVcIDsKK+i/lOe0jSA8IGhlbicnbm91XCA7CivlvqnliLsgPCBmdWtrb2t1XCA7Civou73pnIcgPCBrZWlzaGluXCA7CivojZLogp0gPCBhcmFnaW1vXCA7Civlh7rnqYIgPCBzaHVzc3VpXCA7CivlvJXmj5sgPCBoaWtpa2FlXCA7CivovLvovLMgPCBmdWt1c291XCA7CivmrLLmsYIgPCB5b2treXV1XCA7Civlu7bmnb8gPCBub2JlaXRhXCA7CivnnJ/nqbogPCBzaGlua3V1XCA7CivnnLznm64gPCBnYW5tb2t1XCA7CivlvJXmjqUgPCBpbnNldHN1XCA7CivoibLprZQgPCBzaGlraW1hXCA7Civlv4XkuK0gPCBoaXRjaHV1XCA7CivovKrpg60gPCByaW5rYWt1XCA7Civnvqnmj7Tph5EgPCBnaWVua2luXCA7CivljZjkvZwgPCB0YW5zYWt1XCA7CivnnIHnt5ogPCBzaG91c2VuXCA7CivlvL7luZUgPCBkYW5tYWt1XCA7CivlubTnm4ogPCBuZW4nJ2VraVwgOwor5b6p5YWaIDwgZnVrdXRvdVwgOwor5YWJ6Lu4IDwga291amlrdVwgOwor5bu/5pelIDwgaGF0c3VrYVwgOwor5byx5b+XIDwgamFrdXNoaVwgOwor5YyX5Zu9IDwgaG9ra29rdVwgOwor5by35byBIDwga3lvdWJlblwgOwor6YKE5pqmIDwga2FucmVraVwgOwor5Yqx5oyvIDwgcmVpc2hpblwgOwor6L6e6ImyIDwgamlzaG9rdVwgOwor5Ye656S+IDwgc2h1c3NoYVwgOwor6I2J6IKlIDwga3VzYWdvZVwgOwor5Yip546HIDwgcmlyaXRzdVwgOwor55m66LazIDwgaG9zc29rdVwgOwor5YWs6KmVIDwga291aHlvdVwgOwor5YWs6Ki8IDwga291c2hvdVwgOwor5Y2B5YWtIDwganV1cm9rdVwgOwor5Yil54+NIDwgYmV0Y2hpblwgOwor5Y2U5LyaIDwga3lvdWthaVwgOwor5L+v556w5ZuzIDwgZnVrYW56dVwgOwor5b6h5paw6aaZIDwgb3NoaW5rb1wgOwor5Lqc57Gz5Yip5YqgIDwgYW1lcmlrYVwgOwor5Yy65YilIDwga3ViZXRzdVwgOwor5Y2D5YSEIDwgc2VuJydva3VcIDsKK+awl+S9jSA8IGtpZ3VyYWlcIDsKK+W+oeWutuS6uiA8IGdva2VuaW5cIDsKK+W8seW8nyA8IGpha3V0ZWlcIDsKK+WFseilnyA8IHRvbW9lcmlcIDsKK+ecvOeXhSA8IGdhbmJ5b3VcIDsKK+WFreinkiA8IHJva2tha3VcIDsKK+WNkuS8jSA8IHNvdHN1Z29cIDsKK+Wkp+WvuumZoiA8IGRhaWppaW5cIDsKK+aur+WuriA8IGhpbmt5dXVcIDsKK+eglOWtpiA8IGtlbmdha3VcIDsKK+aui+W/tSA8IHphbicnbmVuXCA7CivojbfnqY0gPCBuaWR6dW1pXCA7CivljZfkuK0gPCBuYW5jaHV1XCA7CivlhrfogokgPCByZWluaWt1XCA7CivokL3miYsgPCByYWt1c2h1XCA7Civnm7jntpogPCBzb3V6b2t1XCA7Civmrovlv40gPCB6YW4nJ25pblwgOwor5rCX5LuYIDwga2lkenVrZVwgOwor5YWl6KmmIDwgbnl1dXNoaVwgOwor5q6L5b+DIDwgemFuc2hpblwgOwor54OP5769546JIDwgdWJhdGFtYVwgOwor5Ym15qWtIDwgc291Z3lvdVwgOwor5Yeh562WIDwgYm9uc2FrdVwgOwor5YuJ5by3IDwgYmVua3lvdVwgOwor5YWx6KOPIDwgdG9tb3VyYVwgOwor5b6M5Y6EIDwgYXRveWFrdVwgOwor6JC95oiQIDwgcmFrdXNlaVwgOwor5YWo6KeSIDwgemVua2FrdVwgOwor5byx5bm0IDwgamFrdW5lblwgOwor5Yun5a2mIDwga2FuZ2FrdVwgOwor5Y2K5L2cIDwgaGFuc2FrdVwgOwor5bq25rWBIDwgc2hvcnl1dVwgOwor5oCn6KGM54K6IDwgc2Vpa291aVwgOwor5q205oimIDwgcmVraXNlblwgOwor5LiA6Iis5YyWIDwgaXBwYW5rYVwgOwor5bed6J2mIDwga2F3YWViaVwgOwor5q2M5puyIDwga2FreW9rdVwgOwor5b6F5ZCIIDwgbWFjaGlhaVwgOwor5biw57WQIDwga2lrZXRzdVwgOwor55+z5bqtIDwgc2VraXRlaVwgOwor5Y2S5LitIDwgc290Y2h1dVwgOwor5Y2T5LiKIDwgdGFrdWpvdVwgOwor5YWF6LazIDwganV1c29rdVwgOwor6Iy26IW5IDwgY2hhYmFyYVwgOwor5YWN6LKsIDwgbWVuc2VraVwgOwor6I2S57iEIDwgYXJhbmF3YVwgOwor5YO76ZqFIDwgaGVraWd1dVwgOwor5YqH5pqRIDwgZ2VraXNob1wgOwor55u057WMIDwgY2hva2tlaVwgOwor5Y2B5LqU5aScIDwganV1Z295YVwgOwor55uu57iBIDwgbWFidWNoaVwgOwor5YO76ZmsIDwgaGVraXN1dVwgOwor6YGN5q20IDwgaGVucmVraVwgOwor5biv57SZIDwgb2JpZ2FtaVwgOwor5bmy55OiIDwga2FucHlvdVwgOwor5YSf6YeRIDwgc2hvdWtpblwgOwor5rCP5Lq6IDwgdWppaGl0b1wgOwor55+l5b6zIDwgY2hpdG9rdVwgOwor6YGK5q20IDwgeXV1cmVraVwgOwor5LqM6Zmi5Yi2IDwgbmlpbnNlaVwgOwor5YWs6KGGIDwga291c2h1dVwgOwor5YWI6LKgIDwgc2VubWFrZVwgOwor55y855CDIDwgZ2Fua3l1dVwgOwor5bi956ugIDwgYm91c2hvdVwgOwor6L+R56ewIDwga2luc2hvdVwgOwor55m66K2wIDwgaGF0c3VnaVwgOwor5Ye655ujIDwgc2h1a2thblwgOwor6YCB55CDIDwgc291a3l1dVwgOwor5a625pS/5ammIDwga2FzZWlmdVwgOwor6Imv6aKoIDwgcnlvdWZ1dVwgOwor5YiG55WZIDwgYnVucnl1dVwgOwor5YuY5a+pIDwga2Fuc2hpblwgOwor6YGp5p2QIDwgdGVraXphaVwgOwor6YKA5pKDIDwgeW91Z2VraVwgOwor6YCj5r+BIDwgcmVuZGFrdVwgOwor56ys5LqM576pIDwgZGFpbmlnaVwgOwor5q2/5b6MIDwgYm90c3Vnb1wgOwor5YaG6LuM6YGTIDwgZW5raWRvdVwgOwor55yf55u4IDwgc2hpbnNvdVwgOwor55yf55u0IDwgbWFzc3VndVwgOwor5b255ZCNIDwgeWFrdW1laVwgOwor5b6T5YOVIDwganV1Ym9rdVwgOwor6YGT5qW9IDwgZG91cmFrdVwgOwor556s5patIDwgc2h1bmRhblwgOwor6YeO6JGh6JCEIDwgbm9idWRvdVwgOwor55m66KqeIDwgaGF0c3Vnb1wgOwor5Yun5aWoIDwga2Fuc2hvdVwgOwor5Yqb5oqVIDwgcmlraXRvdVwgOwor5YiR542EIDwga2VpZ29rdVwgOwor55m+6KiIIDwgaHlha2tlaVwgOwor5Y2D5LihIDwgc2VucnlvdVwgOwor5b6M5YWIIDwgYXRvc2FraVwgOwor5Y2B5LmdIDwganV1a3l1dVwgOwor55m66KmxIDwgaGF0c3V3YVwgOwor5YyX5Y2KIDwgaG9rdWhhblwgOwor5buD5qWtIDwgaGFpZ3lvdVwgOwor55m66Ki7IDwgaGF0Y2h1dVwgOwor5Y2B5LihIDwganV1cnlvdVwgOwor5Yqb5oimIDwgcmlraXNlblwgOwor5Y2B5LiDIDwganV1bmFuYVwgOwor5Y2B5LiAIDwganV1aWNoaVwgOwor5byV5b2TIDwgaGlraWF0ZVwgOwor6YC45rCRIDwgaXRzdW1pblwgOwor5b6L5YSAIDwgcmljaGlnaVwgOwor5b+c5Yuf6ICFIDwgb3Vib3NoYVwgOwor5YmN5q20IDwgemVucmVraVwgOwor5Ymv5pysIDwgZnVrdWhvblwgOwor6Imx6ZujIDwga2FuJyduYW5cIDsKK+m6u+Wun+ayuSA8IGFzYW1peXVcIDsKK+iMtumjr+S6iyA8IHNhaGFuamlcIDsKK+W8j+W+riA8IHNoaWtpYmlcIDsKK+mBiualvSA8IHl1dXJha3VcIDsKK+i7vemHjyA8IGtlaXJ5b3VcIDsKK+i7vemHjSA8IGtlaWNob3VcIDsKK+ebrueulyA8IG1va3VzYW5cIDsKK+WHuueUoyA8IHNodXNzYW5cIDsKK+eZuuimmiA8IGhha2tha3VcIDsKK+mAsuawtCA8IHNoaW5zdWlcIDsKK+WFq+mHjembsiA8IHlhZWd1bWFcIDsKK+assuacmyA8IHlva3Vib3VcIDsKK+WLh+WwhiA8IHl1dXNob3VcIDsKK+ebn+e0hCA8IG1laXlha3VcIDsKK+ebuOensCA8IHNvdXNob3VcIDsKK+W9vOWHpiA8IGthc2hpa29cIDsKK+efruWwjyA8IHdhaXNob3VcIDsKK+edq+avmyA8IG1hdHN1Z2VcIDsKK+mCuOWuhSA8IHRlaXRha3VcIDsKK+ebruerryA8IG1laGFzaGlcIDsKK+WLieWtpiA8IGJlbmdha3VcIDsKK+mvqOiCiSA8IGdlaW5pa3VcIDsKK+WEqui2iiA8IHl1dWV0c3VcIDsKK+eZvuihjCA8IGh5YWtrb3VcIDsKK+i/keecvCA8IGNoaWthbWVcIDsKK+iPjOavkiA8IGtpbmRva3VcIDsKK+attOW5tCA8IHJla2luZW5cIDsKK+acqui4j+afuyA8IG1pdG91c2FcIDsKK+W8k+W4qyA8IHl1bWlzaGlcIDsKK+WFiOimmiA8IHNlbmtha3VcIDsKK+W+jOS9nCA8IGF0b3Nha3VcIDsKK+W3qOiItiA8IGt5b2hha3VcIDsKK+W6lea1gSA8IHRlaXJ5dXVcIDsKK+e1teiRieabuCA8IGVoYWdha2lcIDsKK+eZuuihqCA8IGhhcHB5b3VcIDsKK+mBuOaKniA8IHNlbnRha3VcIDsKK+asoOagvCA8IGtla2tha3VcIDsKK+WFseiRlyA8IGt5b3VjaG9cIDsKK+eoveWPpOWgtCA8IGtlaWtvYmFcIDsKK+W6g+a8oCA8IGtvdWJha3VcIDsKK+iNieesmyA8IGt1c2FidWVcIDsKK+WLneWgsSA8IHNob3Vob3VcIDsKK+WInea9riA8IHNob2Nob3VcIDsKK+WKqeW5syA8IHN1a2ViZWlcIDsKK+WuieWFqOacnyA8IGFuemVua2lcIDsKK+W8t+WkpyA8IGt5b3VkYWlcIDsKK+WPjeaEj+iqniA8IGhhbicnaWdvXCA7CivovKroqq0gPCByaW5kb2t1XCA7Civnn6XlsIYgPCBjaGlzaG91XCA7CivlhoXohpwgPCBuYWltYWt1XCA7CivlvLflo64gPCBreW91c291XCA7Civlvbnlg6cgPCB5YWt1c291XCA7CivlgIvkurrlt64gPCBrb2ppbnNhXCA7CivliofmiKYgPCBnZWtpc2VuXCA7Civnt4/li5npg6ggPCBzb3VtdWJ1XCA7Civmr5LliIMgPCBkb2t1amluXCA7Civnmb3onYsgPCBoYWt1cm91XCA7CivluIbntrEgPCBob2R6dW5hXCA7Civou43plbcgPCBndW5jaG91XCA7CivlipvlvbkgPCByaWtpZWtpXCA7Civorabpg6joo5wgPCBrZWlidWhvXCA7CivlhrfnrJEgPCByZWlzaG91XCA7CivkuI7lpKrpg44gPCB5b3Rhcm91XCA7CivojLbnsqUgPCBjaGFnYXl1XCA7Civlu7vlv4MgPCBrYWlzaGluXCA7CivnnIvnl4UgPCBrYW5ieW91XCA7Civnm67npLwgPCBtb2t1cmVpXCA7CivovLjooYAgPCB5dWtldHN1XCA7CivkvY3niYzloIIgPCBpaGFpZG91XCA7Civli53lnLAgPCBzaG91Y2hpXCA7CivliJ3mua8gPCBoYXRzdXl1XCA7CivnvqnlpKrlpKsgPCBnaWRheXV1XCA7Civlh7bnjJsgPCBreW91bW91XCA7CivkuInpnq3phZIgPCBzaGFucGVuXCA7CivoiabplbcgPCBrYW5jaG91XCA7CivlpoPmrr/kuIsgPCBoaWRlbmthXCA7Civlh43nn7MgPCB0b3VzZWtpXCA7CivliLbmrLIgPCBzZWl5b2t1XCA7Civlh7rniYggPCBzaHVwcGFuXCA7CivlvJ/lq4EgPCBvdG95b21lXCA7Civlh7bnirYgPCBreW91am91XCA7CivmqLroibIgPCBrYWJhaXJvXCA7CivpgIDmva4gPCB0YWljaG91XCA7CivnoILlnLAgPCBzdW5hY2hpXCA7CivpgZPmlZkgPCBkb3VreW91XCA7CivmvKvnlLvlrrYgPCBtYW5nYWthXCA7CivpgY7ml6UgPCBrYWppdHN1XCA7Civou6Lph50gPCB0ZW5zaGluXCA7CivojLbnrrEgPCBjaGFiYWtvXCA7CivluLDnnYAgPCBraWNoYWt1XCA7CivpganmiYAgPCB0ZWtpc2hvXCA7Civlg7vpgpEgPCBoZWtpeXV1XCA7CivkuI3mnKzmhI8gPCBmdWhvbicnaVwgOwor5q2O5oGvIDwgdGFuc29rdVwgOwor6Iub6JmQIDwga2FneWFrdVwgOwor5q2p5ZCI566XIDwgYnVhaXphblwgOwor5b2r5YOPIDwgY2hvdXpvdVwgOwor6Kqe5b2Z55qEIDwgZ29pdGVraVwgOwor55+z5aGUIDwgc2VraXRvdVwgOwor6L+U55CDIDwgaGVua3l1dVwgOwor55+z5aGAIDwgaXNoaWJlaVwgOwor5byf5aerIDwgb3RvaGltZVwgOwor5Yip5q6WIDwgcmlzaG9rdVwgOwor5b255Lq6IDwgeWFrdW5pblwgOwor6L6x55+lIDwgam9rdWNoaVwgOwor5Yun5ZGKIDwga2Fua29rdVwgOwor55uy55uuIDwgbW91bW9rdVwgOwor55eb6aKoIDwgdHN1dWZ1dVwgOwor6YC45p2QIDwgaXRzdXphaVwgOwor56ys5LiA6KqyIDwgZGFpaWtrYVwgOwor5Ye654KtIDwgc2h1dHRhblwgOwor5byx5Zu9IDwgamFra29rdVwgOwor6I2354mpIDwgbmltb3RzdVwgOwor5YyX5LiKIDwgaG9rdWpvdVwgOwor5LqV5oi456uvIDwgaWRvYmF0YVwgOwor5Ymv5omLIDwgZnVrdXNodVwgOwor5Ym95oKNIDwgaHlvdWthblwgOwor6Imy6YeMIDwgaXJvemF0b1wgOwor55CG5LqL5LyaIDwgcmlqaWthaVwgOwor55uk55+zIDwgYmFuamFrdVwgOwor6L6y55u4IDwgbm91c2hvdVwgOwor6YGK5pKDIDwgeXV1Z2VraVwgOwor54Gr5puc5pelIDwga2F5b3ViaVwgOwor5YWl6IiOIDwgbnl1dXNoYVwgOwor5b6h5LiN5rWEIDwgZ29mdWpvdVwgOwor6YCQ5qyhIDwgY2hpa3VqaVwgOwor6L6655aGIDwgaGVua3lvdVwgOwor5YmN5pa5IDwgbWFla2F0YVwgOwor55m96I+cIDwgaGFrdXNhaVwgOwor5pyq5a6a576pIDwgbWl0ZWlnaVwgOwor5Ymy5oSbIDwga2F0c3VhaVwgOwor55uj552jIDwga2FudG9rdVwgOwor6LqB6ayxIDwgc291dXRzdVwgOwor5qW96ZqKIDwgZ2FrdXRhaVwgOwor5q6J5Zu9IDwganVua29rdVwgOwor6YCG5q+UIDwgZ3lha3VoaVwgOwor5a++5L2N5rOVIDwgdGFpaWhvdVwgOwor5Yal56aPIDwgbWVpZnVrdVwgOwor552m5pyIIDwgbXV0c3VraVwgOwor5Yi75pysIDwga29rdWhvblwgOwor5q2j5a2QIDwgc2hvdXNoaVwgOwor5bm95qydIDwgeXV1dXRzdVwgOwor5q665YK3IDwgc2Fzc2hvdVwgOwor5rWu5rWq5YWQIDwgZnVyb3VqaVwgOwor5amm5Lq656eRIDwgZnVqaW5rYVwgOwor5YaF57SEIDwgbmFpeWFrdVwgOwor5by35ZGzIDwgdHN1eW9taVwgOwor5Ymj5oifIDwga2VuZ2VraVwgOwor6L+U54WnIDwgaGVuc2hvdVwgOwor6ImH6ZW3IDwgdGVpY2hvdVwgOwor5LuW5LiW55WMIDwgdGFzZWthaVwgOwor6YGp5b2TIDwgdGVraXRvdVwgOwor5oWw5Yq06YeRIDwgaXJvdWtpblwgOwor5qip6IO9IDwga2VuJydub3VcIDsKK+ato+WroSA8IHNlaXRla2lcIDsKK+assuaDhSA8IHlva3Vqb3VcIDsKK+W6p+aVtyA8IHphc2hpa2lcIDsKK+alvOmWoyA8IHJvdWtha3VcIDsKK+WIhuazqCA8IGJ1bmNodXVcIDsKK+WMheS4gSA8IGhvdWNob3VcIDsKK+eZuuiKvSA8IGhhdHN1Z2FcIDsKK+mAsuaVsCA8IHNoaW5zdXVcIDsKK+eQhuS4jeWwvSA8IHJpZnVqaW5cIDsKK+eZvuiIrCA8IGh5YXBwYW5cIDsKK+WHuua4oCA8IHNodWtreW9cIDsKK+WNmOWdkOapnyA8IHRhbnpha2lcIDsKK+iQveWfjiA8IHJha3Vqb3VcIDsKK+WJsuW9kyA8IHdhcmlhdGVcIDsKK+assuW/tSA8IHlva3VuZW5cIDsKK+aon+iEsyA8IHNob3Vub3VcIDsKK+S4jemjveWSjCA8IGZ1aG91d2FcIDsKK+i/keeBqyA8IGNoaWthYmlcIDsKK+WIpeagvCA8IGJla2tha3VcIDsKK+eWvumiqCA8IHNoaXBwdXVcIDsKK+iQveWcsCA8IHJha3VjaGlcIDsKK+WFsee3qCA8IGt5b3VoZW5cIDsKK+atpOWltCA8IGtveWF0c3VcIDsKK+ebl+eZliA8IHRvdWhla2lcIDsKK+iIuemVtyA8IHNlbmNob3VcIDsKK+S7o+itsOWToSA8IGRhaWdpaW5cIDsKK+eglOS/riA8IGtlbnNodXVcIDsKK+WIt+aWsCA8IHNhc3NoaW5cIDsKK+mdnuWQiOeQhiA8IGhpZ291cmlcIDsKK+auv+S4rSA8IGRlbmNodXVcIDsKK+W8t+WKmyA8IGdvdXJpa2lcIDsKK+W6j+absiA8IGpva3lva3VcIDsKK+e3j+WLmeiqsiA8IHNvdW11a2FcIDsKK+W6iuadvyA8IHl1a2FpdGFcIDsKK+mAmuaciSA8IHRzdXV5dXVcIDsKK+WFteezpyA8IGh5b3Vyb3VcIDsKK+ebhuefsyA8IGJvbnNla2lcIDsKK+aso+aCpiA8IGtpbmV0c3VcIDsKK+WFuOexjSA8IHRlbnNla2lcIDsKK+mBk+W+syA8IGRvdXRva3VcIDsKK+eXhemboyA8IGJ5b3VuYW5cIDsKK+WKm+WjqyA8IHJpa2lzaGlcIDsKK+aksOWtkOayuSA8IHlhc2hpeXVcIDsKK+i7iui8myA8IHNoYXJ5b3VcIDsKK+WFteexjSA8IGhlaXNla2lcIDsKK+mAn+aWrSA8IHNva3VkYW5cIDsKK+i7iui7uCA8IHNoYWppa3VcIDsKK+WGheepjSA8IG5haXNla2lcIDsKK+WJo+W9oiA8IGtlbmdhdGFcIDsKK+iNkueJqSA8IGFyYW1vbm9cIDsKK+ebsueIhiA8IG1vdWJha3VcIDsKK+WDu+irliA8IGhla2lyb25cIDsKK+W8t+WFtSA8IGt5b3VoZWlcIDsKK+WFrOe0hCA8IGtvdXlha3VcIDsKK+auteS4mCA8IGRhbmt5dXVcIDsKK+i+sueJpyA8IG5vdWJva3VcIDsKK+WFpee2vyA8IGlyZXdhdGFcIDsKK+awtOazs+edgCA8IHN1aWVpZ2lcIDsKK+aoque3miA8IHlva29zZW5cIDsKK+eZvee+vSA8IHNoaXJhaGFcIDsKK+Wzu+mZuiA8IHNodW5rZW5cIDsKK+W3q+elnSA8IGZ1c2h1a3VcIDsKK+i7uOijhSA8IGppa3Vzb3VcIDsKK+ebo+eNhCA8IGthbmdva3VcIDsKK+WIpeaZgiA8IGJldHN1amlcIDsKK+W8lOWVjyA8IGNob3Vtb25cIDsKK+WFqOe0miA8IHplbmt5dXVcIDsKK+WGheemjyA8IG5haWZ1a3VcIDsKK+WGmeecnyA8IHNoYXNoaW5cIDsKK+WHnea7niA8IGd5b3V0YWlcIDsKK+mBk+W6iiA8IGRvdXNob3VcIDsKK+auiuWLnSA8IHNodXNob3VcIDsKK+i7jei2syA8IGd1bnNva3VcIDsKK+WDu+iogCA8IGhla2lnZW5cIDsKK+e1teiNiee0mSA8IGV6b3VzaGlcIDsKK+WJo+W5lSA8IGtlbm1ha3VcIDsKK+WHtuatsyA8IGt5b3VzYWlcIDsKK+WJm+W8tyA8IGdvdWt5b3VcIDsKK+WIhualrSA8IGJ1bmd5b3VcIDsKK+i7ouiqvyA8IHRlbmNob3VcIDsKK+atjOWnqyA8IHV0YWhpbWVcIDsKK+mBoOWxsSA8IHRvb3lhbWFcIDsKK+aoquezuCA8IHlva29pdG9cIDsKK+asoeW8jyA8IGppc2hpa2lcIDsKK+mBiuW8iyA8IHl1dXlva3VcIDsKK+mBuuWksSA8IGlzaGl0c3VcIDsKK+mBuOWlqCA8IHNlbnNob3VcIDsKK+WDu+imiyA8IGhla2lrZW5cIDsKK+iKseiRtSA8IGhhbmFhb2lcIDsKK+iQveWRvSA8IHJha3VtZWlcIDsKK+mBiuW7kyA8IHl1dWtha3VcIDsKK+aoueeriyA8IGp1cml0c3VcIDsKK+mtlOihkyA8IG1hanV0c3VcIDsKK+WHoea1gSA8IGJvbnJ5dXVcIDsKK+iIjOmfsyA8IHpldHN1b25cIDsKK+WIneaXpSA8IGhhdHN1aGlcIDsKK+W8leWPlyA8IGhpa2l1a2VcIDsKK+WKh+WkiSA8IGdla2loZW5cIDsKK+W7uuWbvSA8IGtlbmtva3VcIDsKK+efreWGiiA8IHRhbnpha3VcIDsKK+efs+WDjyA8IHNla2l6b3VcIDsKK+edo+aIpiA8IHRva3VzZW5cIDsKK+ecuuacmyA8IGNob3Vib3VcIDsKK+WKh+WjhyA8IGdla2lkYW5cIDsKK+i/keazgSA8IGtpbmt5b3VcIDsKK+asoOW4rSA8IGtlc3Nla2lcIDsKK+W3qOefsyA8IGt5b3Nla2lcIDsKK+attOWPsiA8IHJla2lzaGlcIDsKK+W5s+acjSA8IGhlaWZ1a3VcIDsKK+i7ouimhiA8IHRlbnB1a3VcIDsKK+apn+eVpSA8IGtpcnlha3VcIDsKK+Wwj+eKrOW6pyA8IGtvaW51emFcIDsKK+WKh+WgtCA8IGdla2lqb3VcIDsKK+i6q+i/kSA8IG1pZGppa2FcIDsKK+mAhuaXhSA8IGdla2lyeW9cIDsKK+i6q+i+uiA8IHNoaW5wZW5cIDsKK+WIhuaekCA8IGJ1bnNla2lcIDsKK+W8seS9kyA8IGpha3V0YWlcIDsKK+aoquesmyA8IHlva29idWVcIDsKK+eZuue1piA8IGhha2t5dXVcIDsKK+i7veiWhCA8IGtlaWhha3VcIDsKK+W8leWKmyA8IGlucnlva3VcIDsKK+WGhuebhiA8IG1hcnVib25cIDsKK+i1pOWRs+WZjCA8IGFrYW1pc29cIDsKK+iRl+S9nCA8IGNob3Nha3VcIDsKK+eXqei6qyA8IHNvdXNoaW5cIDsKK+iKseiJsiA8IGhhbmFpcm9cIDsKK+mAn+aIkCA8IHNva3VzZWlcIDsKK+W3puebtCA8IHNhY2hva3VcIDsKK+WJjeW5tCA8IHplbicnbmVuXCA7CivpgIHmlpkgPCBzb3VyeW91XCA7CivpsZfmnKggPCByaW5ib2t1XCA7Civnmb3nsokgPCBvc2hpcm9pXCA7CivlhoXnmoQgPCBuYWl0ZWtpXCA7Civoi6bnr4AgPCBrdXNldHN1XCA7Civnmb3nsbMgPCBoYWt1bWFpXCA7Civnn63kv6EgPCB0YW5zaGluXCA7CivmqKrnqbQgPCB5b2tvYW5hXCA7CivmpbXpgZMgPCBnb2t1ZG91XCA7Civlr77nvqnoqp4gPCB0YWlnaWdvXCA7CivnnLfml48gPCBrZW56b2t1XCA7CivpgZPlraYgPCBkb3VnYWt1XCA7CivlgbTpnaIgPCBzb2t1bWVuXCA7CivluaPmnZ8gPCBoZWlzb2t1XCA7Civliqnli6IgPCBzdWtlemVpXCA7Civlip/lkI0gPCBrb3VteW91XCA7CivoiYfouqsgPCB0ZWlzaGluXCA7CivmsZrmn5Poj4wgPCBvc2Vua2luXCA7CivpgY7lr4YgPCBrYW1pdHN1XCA7CivkuInml6Xot68gPCBtaWtrYWppXCA7CivliqrlipsgPCBkb3J5b2t1XCA7CivlsYXphZLlsYsgPCBpemFrYXlhXCA7Civluq3luKsgPCBuaXdhc2hpXCA7CivpqqjpqrwgPCBrb2trYWt1XCA7CivliqnlipsgPCBqb3J5b2t1XCA7Civov73mlL4gPCB0c3VpaG91XCA7Civoh6rlrrboo70gPCBqaWthc2VpXCA7CivpgYrlraYgPCB5dXVnYWt1XCA7CivmrbPlhaUgPCBzYWlueXV1XCA7Civps6nlkIggPCBreXV1Z291XCA7CivmrKDlrZcgPCBrZXRzdWppXCA7CivloZfluIPliaQgPCB0b2Z1emFpXCA7CivmraPljJcgPCBzZWlob2t1XCA7Civlgrfot6EgPCBraXp1YXRvXCA7CivmrablipsgPCBidXJ5b2t1XCA7CivpganlnLAgPCB0ZWtpY2hpXCA7Civlip/lipsgPCBrb3VyaWtpXCA7Civlj6Tlhbjoqp4gPCBrb3RlbmdvXCA7CivojZLms6IgPCBhcmFuYW1pXCA7Civov5Hmpa0gPCBraW5neW91XCA7CivnnJ/mm7ggPCBzaGluc2hvXCA7CivlurXlrqQgPCBhbmppdHN1XCA7CivlhbHnm4ogPCBreW91ZWtpXCA7CivpgJrmgKcgPCB0c3V1c2VpXCA7CivmraPliYcgPCBzZWlzb2t1XCA7CivprLHooYAgPCB1a2tldHN1XCA7CivlhbznlKggPCBrZW4nJ3lvdVwgOwor5Yq05L2cIDwgcm91c2FrdVwgOwor6YCa5b+1IDwgdHN1dW5lblwgOwor5YeL5q6LIDwgY2hvdXphblwgOwor5LiN5pmv5rCXIDwgZnVrZWlraVwgOwor5Ya35ra8IDwgcmVpcnlvdVwgOwor6Lu96IifIDwga2Vpc2h1dVwgOwor6JC95L2TIDwgcmFrdXRhaVwgOwor6YCj5bm0IDwgcmVuJyduZW5cIDsKK+WIh+aPmyA8IGtpcmlrYWVcIDsKK+eXlei3oSA8IGtvbnNla2lcIDsKK+WQiOeQhuWMliA8IGdvdXJpa2FcIDsKK+W5suaLkyA8IGthbnRha3VcIDsKK+atu+S6uiA8IHNoaWJpdG9cIDsKK+WFrOeahCA8IGtvdXRla2lcIDsKK+W7uuWJjSA8IHRhdGVtYWVcIDsKK+WIh+aOmyA8IGtpa2tha2VcIDsKK+mAsuWxlSA8IHNoaW50ZW5cIDsKK+asoOWmgiA8IGtldHN1am9cIDsKK+mqqOmggiA8IGtvdGNob3VcIDsKK+aoquedgCA8IG91Y2hha3VcIDsKK+WIhuaOjCA8IGJ1bnNob3VcIDsKK+W8geWEnyA8IGJlbnNob3VcIDsKK+aLieS4geiqniA8IHJhdGVuZ29cIDsKK+WIkeaIriA8IGtlaXJpa3VcIDsKK+mAmuW8iiA8IHRzdXVoZWlcIDsKK+eZuuelpSA8IGhhc3Nob3VcIDsKK+mAmuW8gSA8IHRzdXViZW5cIDsKK+attOS8nSA8IHJla2lkZW5cIDsKK+W5veaEgSA8IHl1dXNodXVcIDsKK+iQveS6uiA8IG9jaHV1ZG9cIDsKK+WFpeeboyA8IG55dXVrYW5cIDsKK+atu+S4rSA8IHNoaWNodXVcIDsKK+attOS7uyA8IHJla2luaW5cIDsKK+WIpeW+jCA8IGJldHN1Z29cIDsKK+mbu+ejgeazoiA8IGRlbmppaGFcIDsKK+attOS7oyA8IHJla2lkYWlcIDsKK+WFseeUqCA8IGt5b3V5b3VcIDsKK+alteiypyA8IGdva3VoaW5cIDsKK+WFseeUoyA8IGt5b3VzYW5cIDsKK+aoqeebiiA8IGtlbicnZWtpXCA7Civlubvmg5EgPCBnZW53YWt1XCA7Civou6LokL0gPCB0ZW5yYWt1XCA7CivluZXmlL8gPCBiYWt1c2VpXCA7CivnnIzmnIkgPCBrZW4nJ3l1dVwgOwor6L+95oeQIDwgdHN1aWthaVwgOwor6a2a6IW5IDwgZ3lvZnVrdVwgOwor6YCa5bi4IDwgdHN1dWpvdVwgOwor6L+95oa2IDwgdHN1aW9rdVwgOwor6LqK6LqHIDwgY2h1dWNob1wgOwor6ay86JOuIDwgb25pYmFzdVwgOwor55yf5pGvIDwgc2hpbnNoaVwgOwor6Zu756OB5rCXIDwgZGVuamlraVwgOwor55qG55uuIDwga2FpbW9rdVwgOwor55m956CCIDwgaGFrdXNoYVwgOwor5qaC6KmVIDwgZ2FpaHlvdVwgOwor5byL5Lq6IDwgeW9rdWppblwgOwor5Yed5pybIDwgZ3lvdWJvdVwgOwor5YK+6KeSIDwga2Vpa2FrdVwgOwor5YW4542EIDwgdGVuZ29rdVwgOwor6a+b54S8IDwgdGFpeWFraVwgOwor6YGp5ZCIIDwgdGVraWdvdVwgOwor5YqH5YmkIDwgZ2VraXphaVwgOwor5Yil5bitIDwgYmVzc2VraVwgOwor5YWD56aEIDwgZ2Vucm9rdVwgOwor5YK+6KaGIDwga2VpZnVrdVwgOwor6a2a6IKJIDwgZ3lvbmlrdVwgOwor5YWl55SoIDwgbnl1dXlvdVwgOwor55m955y8IDwgaGFrdWdhblwgOwor6I2S5qWtIDwgYXJhd2F6YVwgOwor5Yi65a2QIDwgc2FzaGlrb1wgOwor5q2j5L2TIDwgc2hvdXRhaVwgOwor6YCG5b6SIDwgZ3lha3V0b1wgOwor5bGx6bqTIDwgc2Fucm9rdVwgOwor6L+O5pilIDwgZ2Vpc2h1blwgOwor55m955uuIDwgc2hpcm9tZVwgOwor5YiX5by3IDwgcmVra3lvdVwgOwor6L6y5qWtIDwgbm91Z3lvdVwgOwor5YiH5oSbIDwgc2V0c3VhaVwgOwor5YCZ6bOlIDwga291Y2hvdVwgOwor5qCE6aSK5L6hIDwgZWl5b3VrYVwgOwor6YKE5L+XIDwgZ2Vuem9rdVwgOwor6YCf5bCEIDwgc29rdXNoYVwgOwor6L+35oORIDwgbWVpd2FrdVwgOwor6YC85aGeIDwgaGlzc29rdVwgOwor55eb6KiAIDwgdHN1dWdlblwgOwor5Yid5bezIDwgaGF0c3VtaVwgOwor56ys5LqM5qyhIDwgZGFpbmlqaVwgOwor55a+6LWwIDwgc2hpc3NvdVwgOwor5YiX5bqnIDwgcmV0c3V6YVwgOwor552A5bqnIDwgY2hha3V6YVwgOwor6Iy25q67IDwgY2hhZ2FyYVwgOwor6L+95b6TIDwgdHN1aWp1dVwgOwor5q2j5LitIDwgc2VpY2h1dVwgOwor6Lqs6KGMIDwga3l1dWtvdVwgOwor55m955e0IDwgaGFrdWNoaVwgOwor5LqV5oi45rC0IDwgaWRvbWl6dVwgOwor5Ye25omLIDwga3lvdXNodVwgOwor5biC5rOBIDwgc2hpa3lvdVwgOwor5YiX5bitIDwgcmVzc2VraVwgOwor5bid5qWtIDwgdGVpZ3lvdVwgOwor5YmN5Z6CIDwgbWFlZGFyZVwgOwor5LiA5YCL5Lq6IDwgaWtrb2ppblwgOwor5Lqh56WW54i2IDwgYm91c29mdVwgOwor5b6h5pyx5Y2wIDwgZ29zaHVpblwgOwor552A5belIDwgY2hha2tvdVwgOwor5Ymy5YuYIDwgd2FyaWthblwgOwor55Ww5oCn5L2TIDwgaXNlaXRhaVwgOwor55m655a5IDwgaG9zc2hpblwgOwor6bOl5Lq6IDwgY2hvdWppblwgOwor6L+O5pKDIDwgZ2VpZ2VraVwgOwor6YCy5aGBIDwgc2hpbnJ1aVwgOwor5Ymj5ZGRIDwga2VuJydub25cIDsKK+WGkua2nCA8IGJvdXRva3VcIDsKK+aknOmPoSA8IGtlbmt5b3VcIDsKK+WFiOeahyA8IHNlbicnbm91XCA7CivpgIDluK0gPCB0YWlzZWtpXCA7CivliKXlrrQgPCBiZXRzdWVuXCA7CivpgLHloLEgPCBzaHV1aG91XCA7CivlibLliY0gPCB3YXJpbWFlXCA7Civlhobmu5EgPCBlbmtvdHN1XCA7CivliKXlroUgPCBiZXR0YWt1XCA7CivlhY3nlqsgPCBtZW4nJ2VraVwgOwor5Ymy5YikIDwgd2FyaWhhblwgOwor6Z2e5ZCM5pyfIDwgaGlkb3VraVwgOwor6Lu457eaIDwgamlrdXNlblwgOwor5Y2B6Zyy55ukIDwgc29yb2JhblwgOwor5YG06L66IDwgc29rdWhlblwgOwor5qyg5ZOhIDwga2V0c3VpblwgOwor5qOS6bGIIDwgYm91ZGFyYVwgOwor5YWl54mpIDwgaXJlbW9ub1wgOwor5YWl54miIDwgbnl1dXJvdVwgOwor6YG45Lu7IDwgc2VuJyduaW5cIDsKK+WHtuaCqiA8IGt5b3Vha3VcIDsKK+ethuiomOWFtyA8IGhpa2tpZ3VcIDsKK+eVqumVtyA8IGJhbmNob3VcIDsKK+epj+WBpea0viA8IG9ua2VuaGFcIDsKK+iCsuWFkOWckiA8IGlrdWppZW5cIDsKK+W5vOWwkSA8IHlvdXNob3VcIDsKK+mbu+awl+eCiSA8IGRlbmtpcm9cIDsKK+iNieacqCA8IHNvdW1va3VcIDsKK+ebruaYnyA8IG1lYm9zaGlcIDsKK+S+neWtmOaApyA8IGl6b25zZWlcIDsKK+W5veWvgiA8IHl1dWpha3VcIDsKK+WDmuiJpiA8IHJ5b3VrYW5cIDsKK+WIhuW3uyA8IGJ1bm1ha2lcIDsKK+avlOWPoeWxsSA8IGhpZWl6YW5cIDsKK+eZqeeXhSA8IHJhaWJ5b3VcIDsKK+mAmuWljyA8IHRzdXVzb3VcIDsKK+eWo+i2syA8IGlib2FzaGlcIDsKK+S+nemgvOiAhSA8IGlyYWlzaGFcIDsKK+iJr+iDvSA8IHJ5b3Vub3VcIDsKK+i8ieepjSA8IHNhaXNla2lcIDsKK+iMtuajmiA8IGNoYWRhbmFcIDsKK+W5vOWtkCA8IG9zYW5hZ29cIDsKK+mBqeS+iyA8IHRla2lyZWlcIDsKK+aknOmHnSA8IGtlbnNoaW5cIDsKK+WHuuW7tyA8IHNodXR0ZWlcIDsKK+W0qeiQvSA8IGhvdXJha3VcIDsKK+ecn+W9sSA8IHNoaW4nJ2VpXCA7CivlubTlsJEgPCBuZW5zaG91XCA7CivluaPluJsgPCBoZWloYWt1XCA7Civlh7blvL4gPCBreW91ZGFuXCA7CivpgJ/loLEgPCBzb2t1aG91XCA7CivnlLLpq5ggPCBrb3VkYWthXCA7Civnmb3nirYgPCBoYWt1am91XCA7Civoo73msrnmiYAgPCBzZWl5dWpvXCA7Civpganku7sgPCB0ZWtpbmluXCA7CivliLblnKcgPCBzZWlhdHN1XCA7Civnlr7oppYgPCBzaGlzc2hpXCA7Civoi6bnhrEgPCBrdW5ldHN1XCA7Civnmbrni4IgPCBoYWtreW91XCA7CivlibXkvZwgPCBzb3VzYWt1XCA7CivmqoTmlocgPCBnZWtpYnVuXCA7CivlhoXmsaAgPCB1Y2hpaWtlXCA7Civnm67mkqUgPCBtZWJhY2hpXCA7CivlgY/ph50gPCBoZW5zaGluXCA7CivpgIDlraYgPCB0YWlnYWt1XCA7CivlgY/ph40gPCBoZW5jaG91XCA7CivlubTlrZAgPCB0b3NoaWdvXCA7CivpgJrloLEgPCB0c3V1aG91XCA7Civln7rmnKzoqp4gPCBraWhvbmdvXCA7CivliaPlhYggPCBrZW5zYWtpXCA7Civlh7blubQgPCBreW91bmVuXCA7CivnnJ/lubMgPCBtYXBwaXJhXCA7CivnmZLnnYAgPCB5dWNoYWt1XCA7CivlvqHkuInlrrYgPCBnb3NhbmtlXCA7Civlia/kvb8gPCBmdWt1c2hpXCA7CivojqvlpKcgPCBiYWt1ZGFpXCA7CivliY3ljoQgPCBtYWV5YWt1XCA7CivprZrnq5wgPCBneW9yeXV1XCA7Civov7flrq4gPCBtZWlreXV1XCA7CivpgYXliLsgPCBjaGlrb2t1XCA7CivluZTluZUgPCBtYW5tYWt1XCA7CivkupTnr4Dlj6UgPCBnb3Nla2t1XCA7Civmo67plpEgPCBzaGlua2FuXCA7Civovp/mmJMgPCBoZWtpZWtpXCA7CivlhaXmvIEgPCBueXV1Z3lvXCA7Civnm7TmiqsgPCBjaG9rdWhpXCA7CivoqqTli5XkvZwgPCBnb2RvdXNhXCA7CivnmbrnhZkgPCBoYXRzdWVuXCA7CivoiJ/ooYwgPCBzaHV1a291XCA7CivlsrjovrogPCBraXNoaWJlXCA7CivpgZPkv5cgPCBkb3V6b2t1XCA7CivpgLLlj5YgPCBzaGluc2h1XCA7CivohqjpmoYgPCBib3VyeXV1XCA7CivlgI3poY0gPCBiYWlnYWt1XCA7Civnm67mjIcgPCBtb2t1c2hpXCA7CivlvbHljbDmnKwgPCBlaWluaG9uXCA7CivprZTnqp8gPCBtYWt1dHN1XCA7Civlh53lv7UgPCBneW91bmVuXCA7Civlt6HmrbQgPCBqdW5yZWtpXCA7CivlsbHpoIIgPCBzYW5jaG91XCA7CivlhaXmua8gPCBueXV1dG91XCA7Civlh7rlsZUgPCBzaHV0dGVuXCA7CivlhaXmuKAgPCBueXV1a3lvXCA7Civoi5vng4ggPCBrYXJldHN1XCA7CivntYzllrbosrsgPCBrZWllaWhpXCA7Civov6vlrrMgPCBoYWt1Z2FpXCA7CivlhavmtLIgPCB5YXNoaW1hXCA7Civlhobnm7jloLQgPCBlbnNvdWJhXCA7CivovZ/msoggPCBnb3VjaGluXCA7CivnnIzluoEgPCBrZW5jaG91XCA7Civlh6HlurggPCBib24nJ3lvdVwgOwor55mH55mWIDwga2FucGVraVwgOwor6Imy57SgIDwgc2hpa2lzb1wgOwor6L+R5bm0IDwga2luJyduZW5cIDsKK+ebhuaariA8IGJvbmt1cmVcIDsKK+i5iei3jCA8IHNhdGV0c3VcIDsKK+W5tOWilyA8IHRvc2hpbWFcIDsKK+mBk+S4uyA8IGRvdXNodXVcIDsKK+WHi+aCtCA8IGNob3VzdWlcIDsKK+mBk+S4rSA8IGRvdWNodXVcIDsKK+WxsemZvSA8IHNhbicneW91XCA7CivlsbHpmbUgPCBzYW5yeW91XCA7CivpgYrkvJEgPCB5dXVreXV1XCA7Civnl5joi5cgPCB0b3VieW91XCA7CivpgLHliIogPCBzaHV1a2FuXCA7CivooqvnlpHogIUgPCBoaWdpc2hhXCA7CivlupbljqggPCBob3VjaHV1XCA7CivlgJLplqMgPCB0b3VrYWt1XCA7CivliJflm70gPCByZWtrb2t1XCA7CivnnaPlirEgPCB0b2t1cmVpXCA7Civlt6Hmpa0gPCBqdW5neW91XCA7CivmqJnmupYgPCBoeW91anVuXCA7Civoj4rliKQgPCBraWt1YmFuXCA7CivnlKPpoY0gPCBzYW5nYWt1XCA7CivpgLHlhoUgPCBzaHV1bmFpXCA7CivpsLvlsYsgPCB1bmFnaXlhXCA7CivlhaXmsLQgPCBueXV1c3VpXCA7CivliLbli50gPCBzZWlzaG91XCA7CivliLvliLsgPCBrb2trb2t1XCA7Civlgpnok4QgPCBiaWNoaWt1XCA7CivpgJrlkI0gPCB0b29yaW5hXCA7Civou43nsY0gPCBndW5zZWtpXCA7CivoiLnoiLYgPCBzZW5wYWt1XCA7CivpgKPli50gPCByZW5zaG91XCA7CivpgJrlj7IgPCB0c3V1c2hpXCA7Civnm7TlvowgPCBjaG9rdWdvXCA7Civnm7TlvoAgPCBjaG9rdW91XCA7CivmlL7ngavprZQgPCBob3VrYW1hXCA7Civkv67ppIogPCBzaHV1eW91XCA7CivkuI3mlq3nnYAgPCBmdWRhbmdpXCA7CivogZbot6/liqAgPCBzZWlyb2thXCA7Civnl4Xoj4wgPCBieW91a2luXCA7Civlh7rlpZQgPCBzaHVwcG9uXCA7Civmpb3ogZYgPCBnYWt1c2VpXCA7CivoiLnohbkgPCBzZW5wdWt1XCA7CivkuIvnt5rpg6ggPCBrYXNlbmJ1XCA7Civnmb3mtLIgPCBzaGlyYXN1XCA7Civlh6HlsI8gPCBib25zaG91XCA7CivliY3ku7sgPCB6ZW4nJ25pblwgOwor5beo5pyoIDwga3lvYm9rdVwgOwor6Iis6IulIDwgaGFuJydueWFcIDsKK+WCt+iAhSA8IHNob3VzaGFcIDsKK+WGhuabsiA8IGVua3lva3VcIDsKK+WwvumqqCA8IGJpa290c3VcIDsKK+W6g+WRiiA8IGtvdWtva3VcIDsKK+iKneeUnyA8IHNoaWJhZnVcIDsKK+mAmuWLpCA8IHRzdXVraW5cIDsKK+iHquiqrCA8IGppc2V0c3VcIDsKK+WFhea6oiA8IGp1dWl0c3VcIDsKK+eci+WuoiA8IGthbmtha3VcIDsKK+iMtuaJmCA8IGNoYXRha3VcIDsKK+ecn+WkjyA8IG1hbmF0c3VcIDsKK+i+uuW5hSA8IGhlbnB1a3VcIDsKK+W6l+WGhSA8IHRlbicnbmFpXCA7CivlpJrmrKHlhYMgPCB0YWppZ2VuXCA7Civlt53mn7MgPCBzZW5yeXV1XCA7Civmpa3ohbkgPCBnb3VoYXJhXCA7Civoia/nqK4gPCByeW91c2h1XCA7CivlgJ/ph5EgPCBzaGFra2luXCA7CivliYrkupUgPCBzYWt1c2VpXCA7CivkvLzpnZ7ogIUgPCBlc2Vtb25vXCA7Civluo/liJcgPCBqb3JldHN1XCA7CivlgJLpjK8gPCB0b3VzYWt1XCA7CivluJ3lvrMgPCB0ZWl0b2t1XCA7CivohLPlpJbnp5EgPCBub3VnZWthXCA7CivpgJrliIYgPCB0c3V1YnVuXCA7Civov73lloQgPCB0c3VpemVuXCA7Civlh7bloLEgPCBreW91aG91XCA7CivlvqHkuIvllY8gPCBnb2thbW9uXCA7CivmpJzoqo0gPCBrZW4nJ25pblwgOwor6I2S5be7IDwgYXJhbWFraVwgOwor55eF6IiOIDwgYnlvdXNoYVwgOwor6Iie6Iy4IDwgbWFpdGFrZVwgOwor6YCx5LukIDwgc2h1dXJlaVwgOwor5YeG5beeIDwganVuc2h1dVwgOwor6IaD6IKt6IeNIDwgb3R0b3NlaVwgOwor5YWx5qCTIDwgdG9tb3NlblwgOwor5aWz5oCn5ZmoIDwgam9zZWlraVwgOwor5a215Y215ZmoIDwgZnVyYW5raVwgOwor5qSc6Ki8IDwga2Vuc2hvdVwgOwor54Sh55CG6KejIDwgbXVyaWthaVwgOwor5bi45a6/IDwgam91eWFkb1wgOwor5L+h6aC8IDwgc2hpbnJhaVwgOwor5YWJ5rKiIDwga291dGFrdVwgOwor5bid5bufIDwgdGVpYnlvdVwgOwor5Ye55ZywIDwga3Vib2NoaVwgOwor5Ye45Z2KIDwgZGVrb2JvdVwgOwor6LuN56WoIDwgZ3VucHlvdVwgOwor55ub5b6zIDwgc2VpdG9rdVwgOwor5qWt6ICFIDwgZ3lvdXNoYVwgOwor6LuN56WeIDwgZ3Vuc2hpblwgOwor6LmI6KWyIDwgdG91c2h1dVwgOwor6Iif6ImHIDwgc2h1dXRlaVwgOwor5qiq5qOSIDwgeW9rb2JvdVwgOwor5bm05Y+OIDwgbmVuc2h1dVwgOwor5YWl5qKFIDwgbnl1dWJhaVwgOwor6IWT6aqoIDwgaGlrb3RzdVwgOwor5YWx5pyJIDwga3lvdXl1dVwgOwor6bCk5a2QIDwgYnVyaWtrb1wgOwor55u45a6iIDwgYWlreWFrdVwgOwor54i25oCn5oSbIDwgZnVzZWlhaVwgOwor6L+95Y+3IDwgdHN1aWdvdVwgOwor6YCj5L2cIDwgcmVuc2FrdVwgOwor5YWO5qygIDwgdG9rZXRzdVwgOwor5YWG5rCRIDwgY2hvdW1pblwgOwor5Yil5YSAIDwgYmV0c3VnaVwgOwor6Z2e5q2m6KOFIDwgaGlidXNvdVwgOwor6Imv55+lIDwgcnlvdWNoaVwgOwor6YCj5LyRIDwgcmVua3l1dVwgOwor5YiH5ZGzIDwga2lyZWFqaVwgOwor6YCg5L2cIDwgem91c2FrdVwgOwor5YWt5pu4IDwgcm9rdXNob1wgOwor552A5YmjIDwgY2hha2tlblwgOwor5YiG5ZGoIDwgYnVuc2h1dVwgOwor5YWt5pucIDwgcm9rdXlvdVwgOwor5YWr5pyUIDwgaGFzc2FrdVwgOwor5Yiq5L+uIDwgc2Fuc2h1dVwgOwor5YeG5bCGIDwganVuc2hvdVwgOwor6IWV6aaWIDwgdWRla3ViaVwgOwor55y85YqbIDwgZ2FucmlraVwgOwor6YCa5L6LIDwgdHN1dXJlaVwgOwor5qiZ5qacIDwgaHlvdWJvdVwgOwor5YWl5p2lIDwgbnl1dXJhaVwgOwor55Wl6K2cIDwgcnlha3VmdVwgOwor6L2i5patIDwgcmVraWRhblwgOwor6Lui55SoIDwgdGVuJyd5b3VcIDsKK+eakOaciCA8IHNhdHN1a2lcIDsKK+mAo+S4rSA8IHJlbmNodXVcIDsKK+WFg+atjCA8IG1vdG91dGFcIDsKK+iJsueZvSA8IGlyb2ppcm9cIDsKK+WyqeinkiA8IGl3YWthZG9cIDsKK+WQjOeItuavjSA8IGRvdWZ1Ym9cIDsKK+iMtuW6lyA8IGNoYW1pc2VcIDsKK+WHneWhiiA8IGd5b3VrYWlcIDsKK+WHuuWTgSA8IHNodXBwaW5cIDsKK+i+suWtpiA8IG5vdWdha3VcIDsKK+mAmuS6uiA8IHRzdXVqaW5cIDsKK+eVpeiqniA8IHJ5YWt1Z29cIDsKK+WDreeUqCA8IHNlbicneW91XCA7CivouIrouo0gPCB5b3V5YWt1XCA7CivojLbluK0gPCBjaGFzZWtpXCA7Civov73liIogPCB0c3Vpa2FuXCA7CivnlKjph48gPCB5b3VyeW91XCA7Civoh6romZAgPCBqaWd5YWt1XCA7CivprLznlZwgPCBraWNoaWt1XCA7CivohZDpo58gPCBmdXNob2t1XCA7CivlubTlhoUgPCBuZW4nJ25haVwgOwor5YKN6IG0IDwgYm91Y2hvdVwgOwor5bem5oqYIDwgc2FzZXRzdVwgOwor55m95qGDIDwgaGFrdXRvdVwgOwor5aWz5oCn5YyWIDwgam9zZWlrYVwgOwor6Iul5p6dIDwgd2FrYWVkYVwgOwor6L+R5Zu9IDwga2luZ29rdVwgOwor6Ii557GNIDwgc2Vuc2VraVwgOwor5YWD5qiZIDwgZ2VucHlvdVwgOwor5Ye65Y+jIDwgZGVndWNoaVwgOwor5YiH5YmKIDwgc2Vzc2FrdVwgOwor55Wl6KejIDwgcnlha2thaVwgOwor5YiA5YygIDwgdG91c2hvdVwgOwor55m65qGIIDwgaGF0c3VhblwgOwor54Sh5pyf6ZmQIDwgbXVraWdlblwgOwor6Luf55CDIDwgbmFua3l1dVwgOwor5L+u6YysIDwgc2h1dXJlblwgOwor6Ieq5a6255SoIDwgamlrYXlvdVwgOwor55u05aWPIDwgamlraXNvdVwgOwor6Iiq57aaIDwga291em9rdVwgOwor6Imv55SwIDwgcnlvdWRlblwgOwor6Laz6Z+zIDwgYXNoaW90b1wgOwor5YWI5qOSIDwgc2FraWJvdVwgOwor5a6257O75ZuzIDwga2FrZWl6dVwgOwor5LiA5LiW57SAIDwgaXNzZWlraVwgOwor5YiI5YWlIDwga2FyaWlyZVwgOwor55m95pyoIDwgc2hpcmFraVwgOwor6Ieq55Sx5bqmIDwgaml5dXVkb1wgOwor5qiZ5pysIDwgaHlvdWhvblwgOwor55m95pu4IDwgaGFrdXNob1wgOwor5rGa5p+T5rqQIDwgb3NlbmdlblwgOwor6LuN55SoIDwgZ3VuJyd5b3VcIDsKK+WIneS5syA8IHNob255dXVcIDsKK+W5s+S/oSA8IGhlaXNoaW5cIDsKK+iNkuWjgSA8IGFyYWthYmVcIDsKK+WFq+aOmyA8IGhha2tha2VcIDsKK+i8qualrSA8IHJpbmd5b3VcIDsKK+iMtuWvriA8IGNoYXJ5b3VcIDsKK+W5s+S9nCA8IGhlaXNha3VcIDsKK+ebsuWftyA8IG1vdXNodXVcIDsKK+eUmOmFkiA8IGFtYXpha2VcIDsKK+WFg+agkyA8IG1vdG9zZW5cIDsKK+WFq+aMuiA8IGhhdGNob3VcIDsKK+ecn+WJoyA8IHNoaW5rZW5cIDsKK+S+nemgvOeKtiA8IGlyYWlqb3VcIDsKK+WHueWHuCA8IG91dG90c3VcIDsKK+i+m+WtkCA8IGthcmFzaGlcIDsKK+WHuOWHuSA8IHRvdHN1b3VcIDsKK+eZvuaWuSA8IGh5YXBwb3VcIDsKK+WBtOiDjCA8IHNva3VoYWlcIDsKK+eZguazlSA8IHJ5b3Vob3VcIDsKK+WFpeaOmyA8IGlyZWtha3VcIDsKK+i/t+S/oSA8IG1laXNoaW5cIDsKK+WHtuWIgyA8IGt5b3VqaW5cIDsKK+esrOS4gOatqSA8IGRhaWlwcG9cIDsKK+WHuuWFtSA8IHNodXBwZWlcIDsKK+eZveaWkSA8IGhha3VoYW5cIDsKK+mAgOS6rCA8IHRhaWt5b3VcIDsKK+eZveaWhyA8IGhha3VidW5cIDsKK+W+ruWhteWtkCA8IG1pamlua29cIDsKK+WHuOWGhiA8IHRvdHN1ZW5cIDsKK+WxseiziiA8IHNhbnpva3VcIDsKK+ecvOS4rSA8IGdhbmNodXVcIDsKK+i0lOWxk+ebriA8IGhpaWtpbWVcIDsKK+WBtOiBniA8IHNva3VidW5cIDsKK+alreeoriA8IGd5b3VzaHVcIDsKK+WFq+aJiyA8IHlhdHN1ZGVcIDsKK+iJsueJqSA8IGlyb21vbm9cIDsKK+eXs+eXhSA8IHJpbmJ5b3VcIDsKK+WFg+acjSA8IGdlbnB1a3VcIDsKK+S/rumBkyA8IHNodXVkb3VcIDsKK+WFi+aYjiA8IGtva3VtZWlcIDsKK+W5tOS4iiA8IHRvc2hpdWVcIDsKK+S/nemHiCA8IGhvc2hha3VcIDsKK+WFpeaJiyA8IG55dXVzaHVcIDsKK+WFpeaJgCA8IG55dXVzaG9cIDsKK+i/sOS9nCA8IGp1c3Nha3VcIDsKK+mbu+ejgeWgtCA8IGRlbmppYmFcIDsKK+ebtOWWtiA8IGNob2t1ZWlcIDsKK+Wwj+mdoiA8IHNob3VtZW5cIDsKK+Wwv+mFuCA8IG55b3VzYW5cIDsKK+i+m+WktyA8IGtvYnVzaGlcIDsKK+WFreaDhSA8IHJva3Vqb3VcIDsKK+S4gOS9k+WMliA8IGl0dGFpa2FcIDsKK+W+oeaXpeanmCA8IG9oaXNhbWFcIDsKK+mfs+e+veWxiyA8IG90b3dheWFcIDsKK+mrmOeysSA8IGtvdXJ5YW5cIDsKK+Wwj+mboyA8IHNob3VuYW5cIDsKK+WxgOmDqCA8IGt5b2t1YnVcIDsKK+WMu+mZoumVtyA8IGlpbmNob3VcIDsKK+WNsOasp+iqniA8IGluJydvdWdvXCA7CivluJ3lm70gPCB0ZWlrb2t1XCA7Civlh7rkvJogPCBzaHVra2FpXCA7CivprLHnhLYgPCB1dHN1emVuXCA7Civlgrfnl5UgPCBzaG91a29uXCA7Civlho3lr6kgPCBzYWlzaGluXCA7CivnnIzlhoUgPCBrZW4nJ25haVwgOwor5bC/6YGTIDwgbnlvdWRvdVwgOwor5YG057eaIDwgc29rdXNlblwgOwor5YWs5b6zIDwga291dG9rdVwgOwor5bi45YudIDwgam91c2hvdVwgOwor5Yal5aKDIDwgbWVpa3lvdVwgOwor55yf5Lq6IDwgc2hpbmppblwgOwor5Ya35ZiyIDwgcmVpY2hvdVwgOwor6aa06bm/IDwgdG9uYWthaVwgOwor55u05Y+CIDwgamlraXNhblwgOwor5Ye65p2l56eLIDwgZGVraWFraVwgOwor6aOb6KGM5qmfIDwgaGlrb3VraVwgOwor5YWl5b+1IDwgbnl1dW5lblwgOwor6ISK6auEIDwgc2VraXp1aVwgOwor54Sh5L2c54K6IDwgbXVzYWt1aVwgOwor55yf5LiLIDwgbWFzaGl0YVwgOwor5YaG5a6JIDwgZW4nJ3lhc3VcIDsKK+WwiumVtyA8IHNvbmNob3VcIDsKK+WBveethiA8IGdpaGl0c3VcIDsKK+ebuOWJiyA8IHNvdWtva3VcIDsKK+iGneihjCA8IHNoaWtrb3VcIDsKK+mDveW4gumDqCA8IHRvc2hpYnVcIDsKK+i7ouazqCA8IHRlbmNodXVcIDsKK+W6p+iSsuWboyA8IHphYnV0b25cIDsKK+WFpeW7tyA8IG55dXV0ZWlcIDsKK+S/l+i8qSA8IHpva3VoYWlcIDsKK+iEmumfuyA8IGt5YWt1aW5cIDsKK+WHoeS/lyA8IGJvbnpva3VcIDsKK+WvkumukiA8IGthbmJ1bmFcIDsKK+alreeXhSA8IGdvdWJ5b3VcIDsKK+i+suWNmiA8IG5vdWhha3VcIDsKK+i+suWNlCA8IG5vdWt5b3VcIDsKK+WFqOW5hSA8IHplbnB1a3VcIDsKK+aUvuiqsuW+jCA8IGhvdWthZ29cIDsKK+WFqOW4rSA8IHplbnNla2lcIDsKK+mrmOemhCA8IGtvdXJva3VcIDsKK+i/keS9nCA8IGtpbnNha3VcIDsKK+iNt+S4uyA8IG5pbnVzaGlcIDsKK+iJr+a4ryA8IHJ5b3Vrb3VcIDsKK+WvuOmamSA8IHN1bmdla2lcIDsKK+S4gOacrOawlyA8IGlwcG9uZ2lcIDsKK+ebruWJjSA8IG1va3V6ZW5cIDsKK+WyqeiCjCA8IGl3YWhhZGFcIDsKK+WHoeS6uiA8IGJvbicnbmluXCA7Civkv6HosqkgPCBzaGlucGFuXCA7Civpm7vmsJflsYsgPCBkZW5raXlhXCA7Civkv5fotqMgPCB6b2t1c2h1XCA7Civkv67oq5YgPCBzaHV1cm9uXCA7CivlhbXlraYgPCBoZWlnYWt1XCA7CivnlLDonrogPCB0YW5pc2hpXCA7CivnlKPopKUgPCBzYW5qb2t1XCA7CivlsI/pioMgPCBzaG91anV1XCA7Civkvr/pgJogPCBiZW50c3V1XCA7CivlsI/piaIgPCBrb2JhY2hpXCA7CivmnKrmnaXmtL4gPCBtaXJhaWhhXCA7CivotaTpo68gPCBzZWtpaGFuXCA7CivluJ3liocgPCB0ZWlnZWtpXCA7CivlhbHlrZggPCBreW91em9uXCA7CivnnIHku6QgPCBzaG91cmVpXCA7Civoh6rnspsgPCBqaXNodWt1XCA7Civnmb7luqYgPCBoeWFrdWRvXCA7CivmoIToqonnpLwgPCBlaXlvcmVpXCA7CivlhoXlo4EgPCBuYWloZWtpXCA7Civnlr7nl4UgPCBzaGlwcGVpXCA7CivlhYPmgqogPCBnZW4nJ2FrdVwgOwor57OW6KGj6YygIDwgdG91aWpvdVwgOwor55a855ebIDwgdG91dHN1dVwgOwor5a6z6bOlIDwgZ2FpY2hvdVwgOwor5YKN55m9IDwgYm91aGFrdVwgOwor6Imv5rCRIDwgcnlvdW1pblwgOwor6LqB55eFIDwgc291YnlvdVwgOwor55CG6KuW5a62IDwgcmlyb25rYVwgOwor55Sw6JmrIDwgdGFtdXNoaVwgOwor55m95biGIDwgc2hpcmFob1wgOwor6auY55u0IDwga291amlraVwgOwor5omT5qW95ZmoIDwgZGFnYWtraVwgOwor55Sf6KGAIDwgbmFtYWNoaVwgOwor54Sh5L2c5rOVIDwgYnVzYWhvdVwgOwor5YWl5a6aIDwgbnl1dWpvdVwgOwor6Lui5qWtIDwgdGVuZ3lvdVwgOwor5bGI6KiXIDwga3V0dGFrdVwgOwor55u05LydIDwgamlraWRlblwgOwor6Iy25YyZIDwgY2hhc2FqaVwgOwor6Ieq562GIDwgamloaXRzdVwgOwor5LuB546L6ZaAIDwgbmlvdW1vblwgOwor6IuX5bqKIDwgbmFlZG9rb1wgOwor6LWk6Z2iIDwgc2VraW1lblwgOwor5Y+k5YW45rS+IDwga290ZW5oYVwgOwor5YaF5ZynIDwgbmFpYXRzdVwgOwor55eb54K5IDwgdHN1dXRlblwgOwor57Sg5bCB5a62IDwgc29ob3VrYVwgOwor5YWI5bm0IDwgc2VuJyduZW5cIDsKK+eWseeWuSA8IGhvdXNoaW5cIDsKK+S/l+isoSA8IHpva3V5b3VcIDsKK+Wwj+mBkyA8IGtvbWljaGlcIDsKK+iHqueriyA8IGppcml0c3VcIDsKK+S/ruihjCA8IHNodWd5b3VcIDsKK+WGheWbvSA8IG5haWtva3VcIDsKK+S/l+iruiA8IHpva3VnZW5cIDsKK+iHs+emjyA8IHNoaWZ1a3VcIDsKK+WvuumKrSA8IHRlcmFzZW5cIDsKK+i+suS9nCA8IG5vdXNha3VcIDsKK+S/l+irpiA8IHpva3V0YWlcIDsKK+S/iuixqiA8IHNodW5nb3VcIDsKK+S/l+irliA8IHpva3Vyb25cIDsKK+eXh+eKtiA8IHNob3Vqb3VcIDsKK+S/l+irhyA8IHpva3VkYW5cIDsKK+WwjumAmiA8IGRvdXRzdXVcIDsKK+mtmuaXjyA8IGd5b3pva3VcIDsKK+WFpeWpvyA8IGlyaW11a29cIDsKK+WDu+adkSA8IGhla2lzb25cIDsKK+muqOWxiyA8IHN1c2hpeWFcIDsKK+WvhOmjnyA8IGtpc2hva3VcIDsKK+eZveWxsSA8IGhha3VzYW5cIDsKK+eXheeKtiA8IGJ5b3Vqb3VcIDsKK+WFg+W5tCA8IGdhbicnbmVuXCA7CivluK3kuIogPCBzZWtpam91XCA7CivojZLkuosgPCBhcmFnb3RvXCA7Civnm6Pkv64gPCBrYW5zaHV1XCA7CivmranlkIjliLYgPCBidWFpc2VpXCA7Civlgbjnm5cgPCBjaHV1dG91XCA7Civlg7vmm7ggPCBoZWtpc2hvXCA7CivnlZnnva4gPCByeXV1Y2hpXCA7CivovpvlhZogPCBrYXJhdG91XCA7CivmoLzpl5ggPCBrYWt1dG91XCA7CivnlarntYQgPCBiYW5ndW1pXCA7CivprYLmn7EgPCBrb25jaHV1XCA7Civnmb7lrpggPCBoeWFra2FuXCA7CivkvZzpoqggPCBzYWt1ZnV1XCA7CivprZrmsrPlsrggPCB1b2dhc2hpXCA7Civppqzpo58gPCBiYXNob2t1XCA7Civoh6rnlLHljJYgPCBqaXl1dWthXCA7CivoiabmqYsgPCBrYW5reW91XCA7CivmqJnlrpogPCBoeW91dGVpXCA7CivmqKrlpaogPCBvdWRhdHN1XCA7Civnmb3lrZAgPCBzaGlyb2tvXCA7Civlho3lkYogPCBzYWlrb2t1XCA7Civou43mpb0gPCBndW5nYWt1XCA7CivlsbHoiosgPCB5YW1haW1vXCA7CivluJ3kuqwgPCB0ZWlreW91XCA7CivovLvlsIQgPCBmdWt1c2hhXCA7CivlhaXlo7AgPCBuaXNzaG91XCA7CivmjojnlKPmiYAgPCBqdXNhbmpvXCA7Civpp4bli5XmqZ8gPCBrdWRvdWtpXCA7Civlr4bpm7IgPCBtaXRzdXVuXCA7CivkuoznrofmiYAgPCBuaWthc2hvXCA7Civlgr7ms6ggPCBrZWljaHV1XCA7CivlhaXloqggPCBpcmV6dW1pXCA7Civlr4bpm4YgPCBtaXNzaHV1XCA7CivpgZXniq/ogIUgPCBpaGFuc2hhXCA7Civoh6rnlLvlg48gPCBqaWdhem91XCA7CivoibLmn4QgPCBpcm9nYXJhXCA7CivlvaLmhI/mi7MgPCBrZWlpa2VuXCA7Civog4zpq5ggPCBzZWl0YWthXCA7CivlsIbou40gPCBzaG91Z3VuXCA7CivmpoLms4EgPCBnYWlreW91XCA7Civlhajln58gPCB6ZW4nJ2lraVwgOwor5q+N5oCn5oSbIDwgYm9zZWlhaVwgOwor5LqV5oi45YG0IDwgaWRvZ2F3YVwgOwor5bGx6IW5IDwgc2FucHVrdVwgOwor5YWI5a2mIDwgc2VuZ2FrdVwgOwor6ISa6YOoIDwga3lha3VidVwgOwor6IO06ZW3IDwgZG91bmFnYVwgOwor5YOn5pyNIDwgc291ZnVrdVwgOwor5YaN5YudIDwgc2Fpc2hvdVwgOwor6IW56JS1IDwgZnVrdXpvdVwgOwor6Imv5p2QIDwgcnlvdXphaVwgOwor5L2O6aGNIDwgdGVpZ2FrdVwgOwor6a2a5ouTIDwgZ3lvdGFrdVwgOwor6LyU5by8IDwgaG9oaXRzdVwgOwor5YWo5Zu9IDwgemVuZ29rdVwgOwor6Imv5pu4IDwgcnlvdXNob1wgOwor5a6w6aCYIDwgc2FpcnlvdVwgOwor55m95aSqIDwgc2hpcmF0YVwgOwor55m95aScIDwgYnlha3V5YVwgOwor6Lm054iqIDwga2VkenVtZVwgOwor6LWk6YyGIDwgYWthc2FiaVwgOwor5YWl5ZujIDwgbnl1dWRhblwgOwor5bel5Y2aIDwga291aGFrdVwgOwor5beu5YilIDwgc2FiZXRzdVwgOwor5Yaq5LmXIDwgYmVraWpvdVwgOwor6LuN5pyNIDwgZ3VucHVrdVwgOwor55Sy6IOEIDwga2F0Y2h1dVwgOwor6Ieq55m6IDwgamloYXRzdVwgOwor55Wi56ufIDwgaGlra3lvdVwgOwor5qCh6ZayIDwga291ZXRzdVwgOwor55aO55WlIDwgc29yeWFrdVwgOwor5bKp56SBIDwgZ2Fuc2hvdVwgOwor5YK35q2OIDwgc2hvdXRhblwgOwor6Imy5paHIDwgaXJvYnVtaVwgOwor56C056CV5qmfIDwgaGFzYWlraVwgOwor6aaW6aCYIDwgc2h1cnlvdVwgOwor6YGV6K2m572qIDwgaWtlaXphaVwgOwor5biM5Zyf6aGeIDwga2lkb3J1aVwgOwor6LWk6YeRIDwgYWthZ2FuZVwgOwor6amV6IKGIDwga3lvdXNoaVwgOwor5a2m6b2iIDwgZ2FrdXJlaVwgOwor5a616ZeHIDwgeW9peWFtaVwgOwor5bCP6KuWIDwgc2hvdXJvblwgOwor5Lqc6Ymb5byVIDwgYWVuYmlraVwgOwor5aSq5a6w5bqcIDwgZGF6YWlmdVwgOwor5bKp55+zIDwgZ2Fuc2VraVwgOwor6IW56Iq4IDwgaGFyYWdlaVwgOwor55m95ZywIDwgc2hpcm9qaVwgOwor5qC46YW4IDwga2FrdXNhblwgOwor5YWt5ZCIIDwgcmlrdWdvdVwgOwor6Ii55q2MIDwgZnVuYXV0YVwgOwor5a++6LGhIDwgdGFpc2hvdVwgOwor6aiw6JC9IDwgdG91cmFrdVwgOwor5YGP55mWIDwgaGVucGVraVwgOwor5YW45YmHIDwgdGVuc29rdVwgOwor5qOS57ieIDwgYm91amltYVwgOwor5LyK6YGU6ICFIDwgZGF0ZXNoYVwgOwor5YWt5Y2BIDwgcm9rdWp1dVwgOwor6LWk6YGTIDwgc2VraWRvdVwgOwor55Sf6IKJIDwgc2VpbmlrdVwgOwor6YCB6Kmx5ZmoIDwgc291d2FraVwgOwor5qSN55quIDwgc2hva3VoaVwgOwor5a6f6ZyAIDwgaml0c3VqdVwgOwor5YWN5ZuaIDwgbWVuc2h1dVwgOwor5Ly05aSp6YCjIDwgYmF0ZXJlblwgOwor6aeG6YCQIDwga3VjaGlrdVwgOwor5Lqc6bq75biDIDwgYW1hbnVub1wgOwor6aeQ6LuKIDwgY2h1dXNoYVwgOwor5qCq6YeRIDwga2FidWtpblwgOwor6Ieq546JIDwgamlneW9rdVwgOwor5aWz6YOO5bGLIDwgam9yb3V5YVwgOwor5a6/6YqtIDwgeWFkb3NlblwgOwor6aaW6ZW3IDwgc2h1Y2hvdVwgOwor6IW56IOMIDwgZnVrdWhhaVwgOwor5Zm06Zyn5ZmoIDwgZnVubXVraVwgOwor55eF5q27IDwgYnlvdXNoaVwgOwor5bCE6KeSIDwgc2hha2FrdVwgOwor6Iux5Y2Y6KqeIDwgZWl0YW5nb1wgOwor5a6i6ZaTIDwga3lha3VtYVwgOwor5bel5L2cIDwga291c2FrdVwgOwor5YSA5byPIDwgZ2lzaGlraVwgOwor55Sw57SzIDwgZGVuc2hpblwgOwor5a++6KizIDwgdGFpeWFrdVwgOwor6LWk6LuNIDwgc2VraWd1blwgOwor6ISC6LqrIDwgYWJ1cmFtaVwgOwor5bOh5rm+IDwga3lvdXdhblwgOwor6LuN5ouhIDwgZ3Vua2FrdVwgOwor55m+5ZGzIDwgaHlha3VtaVwgOwor6I236aas6LuKIDwgbmliYXNoYVwgOwor5pOs5oWL6KqeIDwgZ2l0YWlnb1wgOwor5a++6KeSIDwgdGFpa2FrdVwgOwor5p+x6Z2iIDwgY2h1dW1lblwgOwor5beo5LmzIDwga3lvbnl1dVwgOwor55Ww6YKm5Lq6IDwgaWhvdWppblwgOwor55S7562GIDwgZ2FoaXRzdVwgOwor5L6b6KanIDwga3lvdXJhblwgOwor5oCq5oiR5Lq6IDwga2VnYW5pblwgOwor5a+46KmVIDwgc3VucHlvdVwgOwor5YaF5LitIDwgdWNoaWp1dVwgOwor5Yq55p6c6Z+zIDwga291a2FvblwgOwor5a+G6YCaIDwgbWl0dHN1dVwgOwor5YC255m6IDwgZ3VoYXRzdVwgOwor5YWs5YOVIDwga291Ym9rdVwgOwor5L2T6YePIDwgdGFpcnlvdVwgOwor5aKT56KR6YqYIDwgYm9oaW1laVwgOwor5a6X6ZaAIDwgc2h1dW1vblwgOwor6IeG55eFIDwgb2t1YnlvdVwgOwor5YWo5YSqIDwgemVuJyd5dXVcIDsKK+mjm+ihjOWutiA8IGhpa291a2FcIDsKK+eVpeeUuyA8IHJ5YWt1Z2FcIDsKK+S/uOe1piA8IGhvdWt5dXVcIDsKK+Wuv+mBiyA8IHNodWt1dW5cIDsKK+iIueadvyA8IGZ1bmFpdGFcIDsKK+S/iuiLsSA8IHNodW4nJ2VpXCA7CivoirPloqggPCBob3Vib2t1XCA7Civnmb7ljIEgPCBoeWFrdW1lXCA7CivnlJ/ntbkgPCBzdXp1c2hpXCA7Civou5/lvLEgPCBuYW5qYWt1XCA7CivkvJHppKggPCBreXV1a2FuXCA7Civlr4bovLggPCBtaXRzdXl1XCA7CivlhZrliYcgPCB0b3Vzb2t1XCA7Civkv67nuZUgPCBzaHV1emVuXCA7CivkvJHppIogPCBreXV1eW91XCA7CivmprTlvL4gPCByeXV1ZGFuXCA7CivlsbHnqY0gPCBzYW5zZWtpXCA7CivoiLbmnaUgPCBoYWt1cmFpXCA7CivotaTosqcgPCBzZWtpaGluXCA7Civoi7HlgpEgPCBlaWtldHN1XCA7CivmpbXmmpEgPCBnb2t1c2hvXCA7Civnl4Xmo58gPCBieW91dG91XCA7CivngavnhqjmlpcgPCBoaW5vc2hpXCA7CivogozpqqggPCBraWtvdHN1XCA7Civoia/mgKcgPCByeW91c2VpXCA7CivotrPoirggPCBhc2hpZ2VpXCA7Civohbjnt5ogPCBjaG91c2VuXCA7CivovKrllLEgPCByaW5zaG91XCA7CivlgYnniakgPCBlcmFtb25vXCA7Civnmb3liIMgPCBoYWt1amluXCA7Civkvq7olJEgPCBidWJldHN1XCA7Civoi6XlhZogPCB3YWthdG91XCA7Civnl4XmoLkgPCBieW91a29uXCA7CivkvJrpm4YgPCBrYWlzaHV1XCA7CivlsZHns7ggPCBrdXp1aXRvXCA7Civmop/nvaogPCBreW91emFpXCA7Civnmb3lhbUgPCBoYWt1aGVpXCA7CivkvY7pgJ8gPCB0ZWlzb2t1XCA7CivlhaXkvJogPCBueXV1a2FpXCA7CivlsZHnsbMgPCBrdXp1bWFpXCA7Civou73lppkgPCBrZWlteW91XCA7Civoh6rmu4UgPCBqaW1ldHN1XCA7CivkvJHpm7sgPCBreXV1ZGVuXCA7Civls7bmoLkgPCBzaGltYW5lXCA7CivlrabpoqggPCBnYWt1ZnV1XCA7Civlg7XlsY0gPCBreW9uc2hpXCA7CivlhYjliLsgPCBzZW5rb2t1XCA7CivlhKrkvY3mgKcgPCB5dXVpc2VpXCA7CivogonppYUgPCBuaWt1bWFuXCA7CivkvbXoqq0gPCBoZWlkb2t1XCA7Civppqzot7MgPCB1bWF0b2JpXCA7Civou6LlsZ4gPCB0ZW56b2t1XCA7CivotaToqqAgPCBzZWtpc2VpXCA7Civoia/luKsgPCByeW91c2hpXCA7CivkvJrplbcgPCBrYWljaG91XCA7CivmoLzoqIAgPCBrYWt1Z2VuXCA7Civpp4Hoq5YgPCBiYWt1cm9uXCA7CivnhKHotqPlkbMgPCBtdXNodW1pXCA7CivpgY7nj77mnKogPCBrYWdlbm1pXCA7CivlhYPlh7YgPCBnZW5reW91XCA7CivogonpoZ4gPCBuaWt1cnVpXCA7CivnlrzmnKggPCBoaWlyYWdpXCA7Civou6LlroUgPCB0ZW50YWt1XCA7CivmoITpgZQgPCBlaXRhdHN1XCA7Civou6LlraYgPCB0ZW5nYWt1XCA7Civoh6rmtLsgPCBqaWthdHN1XCA7Civkv7jnpoQgPCBob3Vyb2t1XCA7Civoi6XkurogPCB3YWtvdWRvXCA7Civmpb3miY0gPCBnYWt1c2FpXCA7Civlr4borbAgPCBtaXRzdWdpXCA7Civpppnou4ogPCBreW91c2hhXCA7Civkv5fntK8gPCB6b2t1cnVpXCA7CivplbfmpIXlrZAgPCBuYWdhaXN1XCA7Civogb7llJbogIUgPCByb3Vhc2hhXCA7CivlgZzms4ogPCB0ZWloYWt1XCA7CivmpYrmn7MgPCB5b3VyeXV1XCA7CivlsI/oiIUgPCBrb2p1dXRvXCA7Civoh6rmsbogPCBqaWtldHN1XCA7Civnmb7kuosgPCBoeWFrdWppXCA7Civlr4boqp4gPCBtaXRzdWdvXCA7Civog7jopZ8gPCBreW91a2luXCA7CivlsL/nrqEgPCBueW91a2FuXCA7CivprLHlsYggPCB1a2t1dHN1XCA7Civou43lsZ4gPCBndW56b2t1XCA7CivmloflrZfnm6QgPCBtb2ppYmFuXCA7Civnl5vmhqQgPCB0c3V1ZnVuXCA7CivkupTljYHpn7MgPCBnb2p1dW9uXCA7CivlsbHnlaogPCB5YW1hYmFuXCA7Civmpb3mg7MgPCBnYWt1c291XCA7Civoh6rmrrogPCBqaXNhdHN1XCA7CivohLHoh7wgPCBkYWtreXV1XCA7CivpppbotrMgPCBzaHVzb2t1XCA7CivohLHoh60gPCBkYXNzaHV1XCA7Civou43lsIYgPCBndW5zaG91XCA7CivlgrfmgrQgPCBzaG91c3VpXCA7CivlgY/mtYEgPCBoZW5yeXV1XCA7CivohLPohpwgPCBub3VtYWt1XCA7Civnj77pq5ggPCBnZW5kYWthXCA7Civoh6PmsJEgPCBzaGlubWluXCA7CivprLzlqYYgPCBvbmliYWJhXCA7CivkvZzoqakgPCBzYWt1c2hpXCA7CivohLHohbggPCBkYXRjaG91XCA7CivlroXphY0gPCB0YWt1aGFpXCA7CivkvJHpjJggPCBreXV1c3VpXCA7CivnlLDnlZEgPCBkZW5wYXRhXCA7Civnl5vmgaggPCB0c3V1a29uXCA7Civoh7PmpbUgPCBzaGlnb2t1XCA7CivmpbXmgqogPCBnb2t1YWt1XCA7CivlronpgLggPCBhbicnaXRzdVwgOwor5aSp5amm576FIDwgdGVucHVyYVwgOwor5YO75ZywIDwgaGVraWNoaVwgOwor5YO75ZyoIDwgaGVraXphaVwgOwor5a6a6LehIDwgam91c2VraVwgOwor6Lyq5L2cIDwgcmluc2FrdVwgOwor5bKp5rOiIDwgaXdhbmFtaVwgOwor5bO75ouSIDwgc2h1bmt5b1wgOwor6Imv5aa7IDwgcnlvdXNhaVwgOwor6IeG5risIDwgb2t1c29rdVwgOwor55Sj55ebIDwgc2FudHN1dVwgOwor5a+d6YGT5YW3IDwgbmVkb3VndVwgOwor6IG36ZqOIDwgc2hva2thaVwgOwor55Wd5rqdIDwgdW5lbWl6b1wgOwor5qW15b6uIDwga3lva3ViaVwgOwor55Ww5YiG5a2QIDwgaWJ1bnNoaVwgOwor6Iac54q2IDwgbWFrdWpvdVwgOwor55SY55quIDwgYW1ha2F3YVwgOwor6LWk6JWqIDwgYWtha2FidVwgOwor5bGx54qsIDwgeWFtYWludVwgOwor5L+K56ulIDwgc2h1bmRvdVwgOwor5qW95birIDwgZ2FrdXNoaVwgOwor5qGR6ImyIDwga3V3YWlyb1wgOwor6IWV56ugIDwgd2Fuc2hvdVwgOwor6aas6KGTIDwgYmFqdXRzdVwgOwor55eF5oWLIDwgYnlvdXRhaVwgOwor6IWV56uLIDwgdWRldGF0ZVwgOwor6IW555mSIDwgaGFyYWlzZVwgOwor6Iie5omHIDwgbWFpb3VnaVwgOwor5a+u6IiOIDwgcnlvdXNoYVwgOwor5qW15bqmIDwga3lva3Vkb1wgOwor5YGV5qW9IDwga2FpcmFrdVwgOwor55CD6Z2iIDwga3l1dW1lblwgOwor5bCP57eoIDwgc2hvdWhlblwgOwor6Ieq6LKp5qmfIDwgamloYW5raVwgOwor55eF5oKjIDwgYnlvdWthblwgOwor5a6i6KqeIDwga3lha3Vnb1wgOwor5p6V6aCtIDwgY2hpbnRvdVwgOwor5qW15bemIDwga3lva3VzYVwgOwor55Oi566qIDwgaHlvdXRhblwgOwor5YWr6YeN5Z6jIDwgeWFlZ2FraVwgOwor6Iq45LqLIDwgZ2VpZ290b1wgOwor5qSN5qi5IDwgc2hva3VqdVwgOwor5a6f6KmxIDwgaml0c3V3YVwgOwor55a+5oKjIDwgc2hpa2thblwgOwor54Sh5L6h5YCkIDwgbXVrYWNoaVwgOwor5qGD6ImyIDwgbW9tb2lyb1wgOwor5qSc5qChIDwga2VuZ3lvdVwgOwor5a6f6Ki8IDwgamlzc2hvdVwgOwor5LuK6aCDIDwgaW1hZ29yb1wgOwor6IWw55ebIDwgeW91dHN1dVwgOwor5bCP57KSIDwga290c3VidVwgOwor5qWt5birIDwgd2F6YXNoaVwgOwor6Iqx5LujIDwgaGFuYWRhaVwgOwor5a6i6KazIDwga3lha2thblwgOwor5L+X55y8IDwgem9rdWdhblwgOwor5L2/6IejIDwgc2hpc2hpblwgOwor5a+S6I+KIDwga2FuZ2lrdVwgOwor5Lq65LqL6ZmiIDwgamluamlpblwgOwor5LyR6LyJIDwga3l1dXNhaVwgOwor5bC755uuIDwgc2hpcmltZVwgOwor5a6a6KmVIDwgdGVpaHlvdVwgOwor5LyR6LuiIDwga3l1dXRlblwgOwor55eF5byKIDwgYnlvdWhlaVwgOwor5YK35a6zIDwgc2hvdWdhaVwgOwor5a6a6KizIDwgdGVpeWFrdVwgOwor6LuN5Zu9IDwgZ3Vua29rdVwgOwor6a2U5YqbIDwgbWFyeW9rdVwgOwor5qSc5p2fIDwga2Vuc29rdVwgOwor5LiN5aSc5Z+OIDwgZnV5YWpvdVwgOwor5bGF55WZIDwga3lvcnl1dVwgOwor576O5LiI5aSrIDwgYmlqb3VmdVwgOwor6I2P6IOh6bq75rK5IDwgZWdvbWF5dVwgOwor5bKp5qOaIDwgaXdhZGFuYVwgOwor5LuP6ZmAIDwgYnV0c3VkYVwgOwor5a6z6JmrIDwgZ2FpY2h1dVwgOwor5bCx55ygIDwgc2h1dW1pblwgOwor6ISH6IO9IDwgd2FraW5vdVwgOwor5YSE5YWGIDwgb2t1Y2hvdVwgOwor55eF5bejIDwgYnlvdXNvdVwgOwor6LWk6IaaIDwgYWthaGFkYVwgOwor5bCP56ulIDwga293YXBwYVwgOwor5LuP6ZajIDwgYnVra2FrdVwgOwor5piT5pCN5ZOBIDwgaXNvbmhpblwgOwor5LuP6ZaTIDwgYnV0c3VtYVwgOwor6LWk6IW5IDwgYWthaGFyYVwgOwor5bC85YOn6ZmiIDwgbmlzb3VpblwgOwor6IWO55+zIDwgamluc2VraVwgOwor6Imv5ZOBIDwgcnlvdWhpblwgOwor6IOD6KKLIDwgaWJ1a3Vyb1wgOwor54Sh55CG5pWwIDwgbXVyaXN1dVwgOwor5bO75ba6IDwgc2h1bnJlaVwgOwor5YSS5LuPIDwganVidXRzdVwgOwor6a2F5YqbIDwgbWlyeW9rdVwgOwor6LK46ZaTIDwga2FzaGltYVwgOwor6IO46IeGIDwga3lvdW9rdVwgOwor54Sh6Z+76KmpIDwgbXVpbnNoaVwgOwor6a2a5L+hIDwgZ3lvc2hpblwgOwor6IWV55m9IDwgd2FucGFrdVwgOwor5aSa5qeY5YyWIDwgdGF5b3VrYVwgOwor6IO46IW6IDwga3lvdXNlblwgOwor5Lqs6aKoIDwga3lvdWZ1dVwgOwor5qW95aSpIDwgcmFrdXRlblwgOwor6Imv5Y+LIDwgcnlvdXl1dVwgOwor6ISx56mAIDwgZGFra29rdVwgOwor54+t6ZW3IDwgaGFuY2hvdVwgOwor5Lyd6KqmIDwgZGVuc2hvdVwgOwor5bCK56ewIDwgc29uc2hvdVwgOwor5YGD5pyIIDwgZW5nZXRzdVwgOwor5a++562WIDwgdGFpc2FrdVwgOwor5YCf5qy+IDwgc2hha2thblwgOwor5qW95aOHIDwgZ2FrdWRhblwgOwor5L6/55uKIDwgYmVuJydla2lcIDsKK+S8muiqrSA8IGthaWRva3VcIDsKK+ajuuahtiA8IGthbicnb2tlXCA7CivkvY7okL0gPCB0ZWlyYWt1XCA7Civnl4XlrrMgPCBieW91Z2FpXCA7CivlgYnmlrkgPCBlcmFnYXRhXCA7Civnmq7ohprnp5HljLsgPCBoaWZ1a2FpXCA7CivnlYzmqJkgPCBrYWloeW91XCA7Civos4Ppiq0gPCBjaGluc2VuXCA7CivkvZ7oh6MgPCBuZWlzaGluXCA7CivkvZnoibIgPCB5b3Nob2t1XCA7Civpo7Lpo58gPCBpbnNob2t1XCA7CivlsYvmoLnoo48gPCB5YW5ldXJhXCA7Civlgr7lm70gPCBrZWlrb2t1XCA7CivmmrTpoqjpm6ggPCBib3VmdXV1XCA7Civkv4LnlZkgPCBrZWlyeXV1XCA7CivnlLfmsJcgPCBvdG9rb2dpXCA7CivmpZPlsZ4gPCBmdXV6b2t1XCA7Civog4PolqwgPCBpZ3VzdXJpXCA7Civku5npg7cgPCBzZW5reW91XCA7CivmoJfoibIgPCBrdXJpaXJvXCA7Civos7zoqq0gPCBrb3Vkb2t1XCA7CivnlJ/nkIbml6UgPCBzZWlyaWJpXCA7Civou4rlipsgPCBzaGFyaWtpXCA7CivliIbpmZDogIUgPCBidWdlbmphXCA7Civoh6XmiYAgPCBmdXNoaWRvXCA7CivkvZPoh60gPCB0YWlzaHV1XCA7CivppqzohJogPCBiYWt5YWt1XCA7Civlr7jnp5IgPCBzdW5ieW91XCA7Civkurrkuovpg6ggPCBqaW5qaWJ1XCA7CivotbfnrYYgPCBraWhpdHN1XCA7Civpp5DnsbMgPCBjaHV1YmVpXCA7Civkub7prZogPCBob3NoaXVvXCA7CivpuJrptaHosp0gPCBvdW11Z2FpXCA7Civogp3opoEgPCBrYW4nJ3lvdVwgOwor5qOu5p6XIDwgc2hpbnJpblwgOwor6LWk57WEIDwgYWthZ3VtaVwgOwor6Lui5Lu7IDwgdGVuJyduaW5cIDsKK+agvOe0jSA8IGtha3Vub3VcIDsKK+Wwj+eZqiA8IGtvc2hha3VcIDsKK+i1pOe0mSA8IGFrYWdhbWlcIDsKK+mpmuatjiA8IGt5b3V0YW5cIDsKK+i1t+eriyA8IGtpcml0c3VcIDsKK+S4gOS4geWtlyA8IGl0dGVpamlcIDsKK+S9nOiAhSA8IHNha3VzaGFcIDsKK+mjn+mkjCA8IHNob2t1amlcIDsKK+iFuOa6gCA8IGNob3VtYW5cIDsKK+S7suiytyA8IG5ha2FnYWlcIDsKK+WIhumboua0viA8IGJ1bnJpaGFcIDsKK+Wwj+e0sOW3pSA8IGtvemFpa3VcIDsKK+eXheWkiSA8IGJ5b3VoZW5cIDsKK+aal+WPt+WMliA8IGFuZ291a2FcIDsKK+WDpeWAliA8IGd5b3Vrb3VcIDsKK+izoOiyrCA8IGJhaXNla2lcIDsKK+iznuizmyA8IHNob3VzYW5cIDsKK+WwiueahyA8IHNvbicnbm91XCA7CivnjoTpuqYgPCBnZW5iYWt1XCA7CivohIjnrqEgPCBteWFra2FuXCA7CivmnqLou7ggPCBzdXVqaWt1XCA7CivoiJ7lp6sgPCBtYWloaW1lXCA7Civnl5vlmIYgPCB0c3V1dGFuXCA7CivlsKjniqwgPCBtdWt1aW51XCA7Civmo5/mooEgPCB0b3VyeW91XCA7Civlj7PlvoDlt6blvoAgPCB1b3VzYW91XCA7CivljbDluqbmtIsgPCBpbmRveW91XCA7CivloanntKDphbggPCBlbnNvc2FuXCA7CivlsaDmrrogPCB0b3NhdHN1XCA7Civos4rou40gPCB6b2t1Z3VuXCA7CivohbjmtrIgPCBjaG91ZWtpXCA7CivoiI7lroUgPCBzaGF0YWt1XCA7Civouqvlkb0gPCBzaGlubWVpXCA7Civkvp3poLzkurogPCBpcmFpbmluXCA7CivnlqvlraYgPCBla2lnYWt1XCA7CivlsI/nlLogPCBrb21hY2hpXCA7CivlsI/nlLcgPCBrb290b2tvXCA7CivohbDmua8gPCBrb3NoaXl1XCA7CivlsITnmoQgPCBzaGF0ZWtpXCA7CivohLPnl4UgPCBub3VieW91XCA7CivlsI/nlJ8gPCBzaG91c2VpXCA7CivniLbmr43kvJogPCBmdWJva2FpXCA7CivlsbHmpJIgPCBzYW5zaG91XCA7CivkvbPnr4AgPCBrYXNldHN1XCA7Civku4rpgLEgPCBrb25zaHV1XCA7CivogZbpgLEgPCBzZWlzaHV1XCA7Civpo7LphZLlrrYgPCBpbnNodWthXCA7CivkuI3oqo3lj68gPCBmdW5pbmthXCA7CivkvY7nv7wgPCB0ZWl5b2t1XCA7CivoibLkuosgPCBpcm9nb3RvXCA7Civmn7/oibIgPCBrYWtpaXJvXCA7CivnlLDmpb0gPCBkZW5nYWt1XCA7Civku4rov4QgPCBpbWFtYWRlXCA7Civkub7po68gPCBob3NoaWlpXCA7Civoia/kurogPCByeW91amluXCA7Civlrr/nuIEgPCBzaHVrdWVuXCA7Civoh6PlvpMgPCBzaGluanV1XCA7CivohbnmsLQgPCBmdWt1c3VpXCA7Civot4vmuIkgPCBiYXNzaG91XCA7CivnlLrmnZEgPCBjaG91c29uXCA7CivlgJLmnKggPCB0b3Vib2t1XCA7CivmhbDlirTkvJogPCBpcm91a2FpXCA7Civoh6jluK0gPCByaW5zZWtpXCA7Civkv67mraMgPCBzaHV1c2VpXCA7CivmnKjprZogPCBtb2t1Z3lvXCA7CivosYbohZDlsYsgPCB0b3VmdXlhXCA7Civpq5jlo7AgPCB0YWthZ29lXCA7CivkvbXnp7AgPCBoZWlzaG91XCA7CivliIbpm6LmqZ8gPCBidW5yaWtpXCA7CivmpoLliYcgPCBnYWlzb2t1XCA7CivogJDpnIcgPCB0YWlzaGluXCA7CivmoITogbcgPCBlaXNob2t1XCA7Civku4/ot6EgPCBidXNzZWtpXCA7Civngavngo7nk7YgPCBrYWVuYmluXCA7CivosqvpgJogPCBrYW50c3V1XCA7CivogZbouZ8gPCBzZWlzZWtpXCA7Civls7blm70gPCB0b3Vnb2t1XCA7CivnlKPmpa0gPCBzYW5neW91XCA7CivohbDmsJcgPCBrb3NoaWtlXCA7CivlgrflibUgPCBzaG91c291XCA7Civpo5/plpMgPCBzaG9ra2FuXCA7CivlvqHlpJrliIYgPCBnb3RhYnVuXCA7Civku67opqogPCBrYXJpb3lhXCA7CivogrLoi5cgPCBpa3VieW91XCA7Civlrpjog70gPCBrYW4nJ25vdVwgOwor6LOD6LK4IDwgY2hpbnRhaVwgOwor5bKh5oOaIDwgb2thYm9yZVwgOwor5p6d6LGGIDwgZWRhbWFtZVwgOwor6IG06KixIDwgY2hvdWt5b1wgOwor55Sf5qWtIDwgbmFyaXdhaVwgOwor5Luj6KqtIDwgZGFpZG9rdVwgOwor54++6LGhIDwgZ2Vuc2hvdVwgOwor5a6f57+SIDwgamlzc2h1dVwgOwor5Luy6KOBIDwgY2h1dXNhaVwgOwor5bCP54iqIDwga29kenVtZVwgOwor55aO5a+GIDwgc29taXRzdVwgOwor6IG06KejIDwgY2hvdWthaVwgOwor6LKn6L6yIDwgaGluJydub3VcIDsKK+iHqOaZguiyuyA8IHJpbmppaGlcIDsKK+S7o+iouiA8IGRhaXNoaW5cIDsKK+iBtOimliA8IGNob3VzaGlcIDsKK+WxnuagvCA8IHpva2tha3VcIDsKK+WCt+WFtSA8IHNob3VoZWlcIDsKK+alveWFuCA8IGdha3V0ZW5cIDsKK+eUu+aVsCA8IGtha3VzdXVcIDsKK+iGuuaHsiA8IHlvdWNob3VcIDsKK+WAjeaXpyA8IGJhaWt5dXVcIDsKK+Wkp+Wkqum8kyA8IG9vZGFpa29cIDsKK+mrmOWcpyA8IGtvdWF0c3VcIDsKK+eUuuaUvyA8IGNob3VzZWlcIDsKK+alteWIkSA8IGt5b2trZWlcIDsKK+WmguS9leeoiyA8IGlrYWhvZG9cIDsKK+eJoeeJm+W6pyA8IG91c2hpemFcIDsKK+eXheWQjSA8IGJ5b3VtZWlcIDsKK+WKoOW3peiyuyA8IGtha291aGlcIDsKK+aituajkiA8IGthamlib3VcIDsKK+alteWGoCA8IGt5b2trYW5cIDsKK+alteWGhSA8IGdva3VuYWlcIDsKK+eXheWPiyA8IGJ5b3V5dXVcIDsKK+mqsOWtkCA8IHNhaWtvcm9cIDsKK+WyoeW8lSA8IG9rYWhpa2lcIDsKK+WCtOWDgiA8IHNlbXVzaGlcIDsKK+acsememCA8IHNodXpheWFcIDsKK+S6uuS6i+iqsiA8IGppbmppa2FcIDsKK+Wun+e4viA8IGppc3Nla2lcIDsKK+eXheWOnyA8IGJ5b3VnZW5cIDsKK+alteWFiSA8IGt5b2trb3VcIDsKK+S6qOmAmiA8IGtvdXRzdXVcIDsKK+acrOmgmCA8IGhvbnJ5b3VcIDsKK+S6uui3oSA8IGhpdG9hdG9cIDsKK+S7mOiorSA8IGZ1c2V0c3VcIDsKK+mmlue0miA8IHNodWt5dXVcIDsKK+S+m+eJqSA8IGt1bW90c3VcIDsKK+Wzu+WOsyA8IHNodW5nZW5cIDsKK+ixoemZkCA8IHNob3VnZW5cIDsKK+i6q+S9kyA8IHNoaW50YWlcIDsKK+iHs+WmmSA8IHNoaW15b3VcIDsKK+eUmOaglyA8IGFtYWd1cmlcIDsKK+S7leiosyA8IHNoaXdha2VcIDsKK+i6jeWLlSA8IHlha3Vkb3VcIDsKK+S7o+ihqCA8IGRhaWh5b3VcIDsKK+mHjuiJr+eKrCA8IG5vcmFpbnVcIDsKK+eXheWLoiA8IGJ5b3VzZWlcIDsKK+WuueepjSA8IHlvdXNla2lcIDsKK+S7j+iqniA8IGJ1dHN1Z29cIDsKK+iFsOakjiA8IHlvdXRzdWlcIDsKK+i6q+S7oyA8IHNoaW5kYWlcIDsKK+aXpeacrOmWkyA8IG5paG9ubWFcIDsKK+eOiemfsyA8IGd5b2t1b25cIDsKK+Wkp+ixhuayuSA8IGRhaXp1eXVcIDsKK+Wvk+ebriA8IGd1dW1va3VcIDsKK+adpemAsSA8IHJhaXNodXVcIDsKK+iIueWBtCA8IHNlbnNva3VcIDsKK+acrOmchyA8IGhvbnNoaW5cIDsKK+acqOmdtCA8IGtpZ3V0c3VcIDsKK+mmmeeusSA8IGtvdWJha29cIDsKK+acnemiqCA8IGFzYWthemVcIDsKK+WFkOerpeeUuyA8IGppZG91Z2FcIDsKK+a8lOiInuWgtCA8IGVuYnVqb3VcIDsKK+WyqeWxsSA8IGl3YXlhbWFcIDsKK+alveS6uiA8IGdha3VqaW5cIDsKK+ixhumhniA8IG1hbWVydWlcIDsKK+WumOe1piA8IGthbmt5dXVcIDsKK+eOiemcsiA8IGd5b2t1cm9cIDsKK+iIueS+vyA8IGZ1bmFiaW5cIDsKK+WCrOS/gyA8IHNhaXNva3VcIDsKK+eUn+aWsCA8IHNlaXNoaW5cIDsKK+i2heeEtiA8IGNob3V6ZW5cIDsKK+S8nee/kiA8IGRlbnNodXVcIDsKK+eVmeW5tCA8IHJ5dXVuZW5cIDsKK+i0heiCiSA8IHplaW5pa3VcIDsKK+mrmOWPsCA8IHRha2FkYWlcIDsKK+WyqeWupCA8IGl3YW11cm9cIDsKK+S/teaVsCA8IGh5b3VzdXVcIDsKK+WtpuiKuCA8IGdha3VnZWlcIDsKK+eUt+aJiyA8IG90b2tvZGVcIDsKK+S8vOmdnuS6iyA8IGVzZWdvdG9cIDsKK+aiheavkiA8IGJhaWRva3VcIDsKK+S4jee1kOaenCA8IGZ1a2Vra2FcIDsKK+acnemdhCA8IGFzYW1veWFcIDsKK+WxiOacjSA8IGt1cHB1a3VcIDsKK+acnemcpyA8IGFzYWdpcmlcIDsKK+iCjOiJsiA8IGhhZGFpcm9cIDsKK+WtpuiIjiA8IGdha3VzaGFcIDsKK+alteS4iiA8IGdva3Vqb3VcIDsKK+eXh+WAmSA8IHNob3Vrb3VcIDsKK+iIueS4rSA8IHNlbmNodXVcIDsKK+iCieiJsiA8IG5pa3Vpcm9cIDsKK+S/ruaUuSA8IHNodXVrYWlcIDsKK+WyuOWjgSA8IGdhbnBla2lcIDsKK+S6uuiovCA8IG5pbnNob3VcIDsKK+eVpeWtlyA8IHJ5YWt1amlcIDsKK+S/ruaSsCA8IHNodXVzZW5cIDsKK+WcsOS4i+WMliA8IGNoaWtha2FcIDsKK+S8j+e9qiA8IGZ1a3V6YWlcIDsKK+WvhueUuyA8IG1pdHN1Z2FcIDsKK+WFq+eZvumVtyA8IHlhb2Nob3VcIDsKK+mkoeicnCA8IGFubWl0c3VcIDsKK+iAveiqrSA8IHRhbmRva3VcIDsKK+iCieiFqyA8IG5pa3VzaHVcIDsKK+S/l+abuCA8IHpva3VzaG9cIDsKK+iAgemGnCA8IHJvdXNodXVcIDsKK+mpleaFoiA8IGt5b3VtYW5cIDsKK+WAlOW8tyA8IGt1a2t5b3VcIDsKK+eXheS6uiA8IGJ5b3VuaW5cIDsKK+WBj+WftyA8IGhlbnNodXVcIDsKK+mBjumjveWSjCA8IGthaG91d2FcIDsKK+S5s+mFuCA8IG55dXVzYW5cIDsKK+S9r+eLgiA8IHlvdWt5b3VcIDsKK+abs+mmrCA8IGhpa2l1bWFcIDsKK+Wvvua1gSA8IHRhaXJ5dXVcIDsKK+mhlOm7kiA8IGdhbmd1cm9cIDsKK+S8j+e4qyA8IGZ1c2VudWlcIDsKK+absummrCA8IGt5b2t1YmFcIDsKK+i1pOeHkCA8IHNla2lyaW5cIDsKK+WCkeS9nCA8IGtlc3Nha3VcIDsKK+eRnuelpSA8IHp1aXNob3VcIDsKK+S8j+e3miA8IGZ1a3VzZW5cIDsKK+WCgOWEoSA8IGt1Z3V0c3VcIDsKK+ePjeirhyA8IGNoaW5kYW5cIDsKK+S/l+aWhyA8IHpva3VidW5cIDsKK+WAkuW5lSA8IHRvdWJha3VcIDsKK+WutueVnCA8IGthY2hpa3VcIDsKK+S4remjryA8IGNodXVoYW5cIDsKK+eQg+iPjCA8IGt5dXVraW5cIDsKK+aXqeWwkeWlsyA8IHNhb3RvbWVcIDsKK+S4remiqCA8IGNodXVidXVcIDsKK+miqOmOriA8IGZ1dWNoaW5cIDsKK+WAn+WxiyA8IHNoYWt1eWFcIDsKK+WztuS4rSA8IHRvdWNodXVcIDsKK+WuneefsyA8IGhvdXNla2lcIDsKK+iDhuefsyA8IHRhbnNla2lcIDsKK+WxseW4qyA8IHlhbWFzaGlcIDsKK+acqOmHkSA8IG1va3VraW5cIDsKK+WmguS9leeJqSA8IGlrYW1vbm9cIDsKK+WxnuaApyA8IHpva3VzZWlcIDsKK+adpeiouiA8IHJhaXNoaW5cIDsKK+eJiOeUu+WutiA8IGhhbmdha2FcIDsKK+S+v+acjSA8IGJlbnB1a3VcIDsKK+S6oeimqiA8IGJvdXNoaW5cIDsKK+S7leiNiSA8IHNoaWd1c2FcIDsKK+S5nemHjSA8IGtva29ub2VcIDsKK+S/iuaVjyA8IHNodW5iaW5cIDsKK+i4iuWtlyA8IG9kb3JpamlcIDsKK+WxseWzoSA8IHlhbWFrYWlcIDsKK+i1pOa9riA8IGFrYXNoaW9cIDsKK+Wtpue0miA8IGdha2t5dXVcIDsKK+eVpeWbsyA8IHJ5YWt1enVcIDsKK+S4oemgrSA8IHJ5b3V0b3VcIDsKK+WwmuabtCA8IG5hb3NhcmFcIDsKK+S4remaiiA8IGNodXV0YWlcIDsKK+acqOmAoCA8IG1va3V6b3VcIDsKK+S8neelqCA8IGRlbnB5b3VcIDsKK+acnemFkiA8IGFzYXpha2VcIDsKK+WvgueEtiA8IHNla2l6ZW5cIDsKK+WwgualrSA8IHNlbmd5b3VcIDsKK+i3oeW9oiA8IGF0b2thdGFcIDsKK+WBtuS9nCA8IGd1dXNha3VcIDsKK+Wwj+afhCA8IGtvZHp1a2FcIDsKK+iBtOe9qiA8IGNob3V6YWlcIDsKK+S9meeGsSA8IHlvbmV0c3VcIDsKK+S4oemdoiA8IHJ5b3VtZW5cIDsKK+S/oeaEmyA8IHNoaW4nJ2FpXCA7Civkv5fmiY0gPCB6b2t1c2FpXCA7CivlrZjntpogPCBzb256b2t1XCA7CivmnJvpg7cgPCBib3VreW91XCA7Civlrp3nlJ8gPCBob3VzaG91XCA7Civnvo7pq6ogPCBiaWhhdHN1XCA7CivkuK3plpMgPCBjaHV1a2FuXCA7CivkuIDpq6ogPCBpcHBhdHN1XCA7Civku7LntpkgPCBjaHV1a2VpXCA7CivlronnnYAgPCBhbmNoYWt1XCA7CivlraPnr4AgPCBraXNldHN1XCA7CivmhJvpo7LogIUgPCBhaWluc2hhXCA7CivkuozopqogPCBmdXRhb3lhXCA7CivosZrotrMgPCB0b25zb2t1XCA7CivkvZnng4ggPCB5b3JldHN1XCA7Civmnb7okYkgPCBtYXRzdWJhXCA7Civlronnm7QgPCBhbmNob2t1XCA7CivpoqjpgJ8gPCBmdXVzb2t1XCA7CivpoY7pq60gPCBhZ29oaWdlXCA7Civnv7zos5sgPCB5b2t1c2FuXCA7CivlsZ7ls7YgPCB6b2t1dG91XCA7Civogrrnl4UgPCBoYWlieW91XCA7Civlrp/nkIYgPCBqaXRzdXJpXCA7Civlrabnq6UgPCBnYWt1ZG91XCA7CivlronlrprlmaggPCBhbnRlaWtpXCA7Civmo4vlrqIgPCBraWt5YWt1XCA7CivmnKvot68gPCBtYXRzdXJvXCA7Civpp4Toj5PlrZAgPCBkYWdhc2hpXCA7CivlsIbmnaUgPCBzaG91cmFpXCA7Civkuobop6MgPCByeW91a2FpXCA7CivnlZHlnLAgPCBoYXRhY2hpXCA7CivnlLflqLwgPCBkYW5zaG91XCA7CivlraTnq4sgPCBrb3JpdHN1XCA7CivllJDog6HpursgPCB0b3Vnb21hXCA7CivohbnluK8gPCBmdWt1dGFpXCA7Civkv5fmg4UgPCB6b2t1am91XCA7CivkuoboposgPCByeW91a2VuXCA7CivkuLjpi7wgPCBtYXJ1a291XCA7Civkv4rmiY0gPCBzaHVuc2FpXCA7CivlgZzpn7PnrKYgPCB0ZWlvbnB1XCA7Civkv5fmgqogPCB6b2t1YWt1XCA7CivogbfntYQgPCBzaG9rdXNvXCA7CivnvqTpm4YgPCBndW5zaHV1XCA7CivnvqTpm4QgPCBndW4nJ3l1dVwgOwor5bGx5aelIDwgeWFtYXViYVwgOwor5LiK6aGOIDwgam91Z2FrdVwgOwor5a+d5q6/IDwgc2hpbmRlblwgOwor5bCR5pWwIDwgc2hvdXN1dVwgOwor5ZyS6Iq45a62IDwgZW5nZWlrYVwgOwor5bCP5paOIDwgc2hvdXNhaVwgOwor5oqV5b2x5qmfIDwgdG91ZWlraVwgOwor6ISC5rCXIDwgYWJ1cmFrZVwgOwor5bC95b+gIDwgamluY2h1dVwgOwor6Iux5ZCJ5YipIDwgaWdpcmlzdVwgOwor5p2h6JmrIDwgam91Y2h1dVwgOwor55Wl5Y+ZIDwgcnlha3Vqb1wgOwor576O6aOfIDwgYmlzaG9rdVwgOwor5bGx5aWlIDwgeWFtYW9rdVwgOwor54+N6JS1IDwgY2hpbnpvdVwgOwor54Sh5aOw6Z+zIDwgbXVzZWlvblwgOwor5L+X5b+1IDwgem9rdW5lblwgOwor5qC85q61IDwga2FrdWRhblwgOwor5LiA6aOfIDwgaXNzaG9rdVwgOwor542E6ZaAIDwgZ29rdW1vblwgOwor5ZSQ6IyE5a2QIDwgdG91bmFzdVwgOwor5pel5pys6KqeIDwgbmlob25nb1wgOwor5Lmx6Kq/IDwgcmFuY2hvdVwgOwor5Lq66IejIDwgamluc2hpblwgOwor5LiA6aGeIDwgaWNoaXJ1aVwgOwor5Lmx6KqtIDwgcmFuZG9rdVwgOwor5LqA6KOCIDwga2lyZXRzdVwgOwor6IO45rC0IDwga3lvdXN1aVwgOwor5p6g57eaIDwgd2FrdXNlblwgOwor5LyR55ygIDwga3l1dW1pblwgOwor6Ieo5LyRIDwgcmlua3l1dVwgOwor5b6T5LiJ5L2NIDwganVzYW5taVwgOwor5amm5aWz5a2QIDwgZnVqb3NoaVwgOwor5LyP55uuIDwgZnVzaGltZVwgOwor5LiH6ZujIDwgYmFuJyduYW5cIDsKK+WxjuWwvyA8IHNoaW55b3VcIDsKK+S4iumZuCA8IGpvdXJpa3VcIDsKK+WwuuW6piA8IHNoYWt1ZG9cIDsKK+S4h+manCA8IGJhbnNob3VcIDsKK+acgOmBqSA8IHNhaXRla2lcIDsKK+WwseW9uSA8IHNodXVla2lcIDsKK+S4gOmdoiA8IGljaGltZW5cIDsKK+WvvuaVtSA8IHRhaXRla2lcIDsKK+W3peS6i+iyuyA8IGtvdWppaGlcIDsKK+a4qeW6puioiCA8IG9uZG9rZWlcIDsKK+S7j+e4gSA8IGJ1dHN1ZW5cIDsKK+S7lee1hCA8IHNoaWt1bWlcIDsKK+ahkOadkCA8IGtpcml6YWlcIDsKK+WwhOaSgyA8IHNoYWdla2lcIDsKK+WuieWumuWMliA8IGFudGVpa2FcIDsKK+S4gOmbqCA8IGhpdG9hbWVcIDsKK+afseeKtiA8IGNodXVqb3VcIDsKK+S9nOazgSA8IHNha2t5b3VcIDsKK+S4gOmboyA8IGljaGluYW5cIDsKK+WxseWcsCA8IHlhbWFjaGlcIDsKK+azleieuuiynSA8IGhvcmFnYWlcIDsKK+iDtOassiA8IGRvdXlva3VcIDsKK+mhjemdoiA8IGdha3VtZW5cIDsKK+ePjeiKuCA8IGNoaW5nZWlcIDsKK+ajruWOsyA8IHNoaW5nZW5cIDsKK+eUt+WbmiA8IGRhbnNodXVcIDsKK+air+WtkCA8IGhhc2hpZ29cIDsKK+aelee1tSA8IG1ha3VyYWVcIDsKK+eVquWCmCA8IGJhbmdhc2FcIDsKK+mdnuW4uOaZgiA8IGhpam91amlcIDsKK+S4gOmZoyA8IGljaGlqaW5cIDsKK+S7j+e1jCA8IGJ1a2t5b3VcIDsKK+mgrOmrrSA8IGhvb2hpZ2VcIDsKK+acquiorSA8IG1pc2V0c3VcIDsKK+eVpeWEgCA8IHJ5YWt1Z2lcIDsKK+S4u+i7uCA8IHNodWppa3VcIDsKK+mgrOmqqCA8IGhvb2JvbmVcIDsKK+S5seihjCA8IHJhbmd5b3VcIDsKK+iCieecvCA8IG5pa3VnYW5cIDsKK+S4remBkyA8IGNodXVkb3VcIDsKK+Wuoua8lCA8IGt5YWt1ZW5cIDsKK+WujOeGnyA8IGthbmp1a3VcIDsKK+S4gOmWgCA8IGljaGltb25cIDsKK+aal+mssSA8IGFuJyd1dHN1XCA7CivlhavljYPku6MgPCB5YWNoaXlvXCA7CivmpI3ku5ggPCB1ZXRzdWtlXCA7CivnkIbnqp8gPCByaWt1dHN1XCA7Civlrp/mvJQgPCBqaXRzdWVuXCA7CivlsLzlr7ogPCBhbWFkZXJhXCA7CivkuK3ovrIgPCBjaHV1bm91XCA7CivmnZHokL0gPCBzb25yYWt1XCA7CivmnKvoo5QgPCBtYXRzdWVpXCA7CivlsLrlr7ggPCBzZWtpc3VuXCA7CivmnKjoo70gPCBtb2t1c2VpXCA7CivkvZfmrYwgPCB3YWJpdXRhXCA7Civkv67lo6sgPCBzaHV1c2hpXCA7CivpoqjoqZUgPCBmdXVoeW91XCA7CivnlarkurogPCBiYW4nJ25pblwgOwor5a6z5q+SIDwgZ2FpZG9rdVwgOwor5pyX6KqtIDwgcm91ZG9rdVwgOwor5a6f5risIDwgamlzc29rdVwgOwor55Sf5Z6jIDwgaWtlZ2FraVwgOwor5bGe5Zu9IDwgem9ra29rdVwgOwor5LqU6ImyIDwgZ29zaG9rdVwgOwor6LWk5pytIDwgYWthZnVkYVwgOwor5LiN57Sw5belIDwgYnVzYWlrdVwgOwor5p2/57egIDwgaXRhamltZVwgOwor54+N6IGeIDwgY2hpbmJ1blwgOwor5L2Z5rC06LevIDwgeW9zdWlyb1wgOwor55S65ZCNIDwgY2hvdW1laVwgOwor5pyd6KaLIDwgY2hvdWtlblwgOwor5pqu6ZuqIDwgYm9zZXRzdVwgOwor5L2z5pyIIDwga2FnZXRzdVwgOwor6IKJ55WMIDwgbmlrdWthaVwgOwor5p2l6IG0IDwgcmFpY2hvdVwgOwor5Lu755SoIDwgbmluJyd5b3VcIDsKK+iDuOadvyA8IG11bmFpdGFcIDsKK+S/oeWliSA8IHNoaW5wb3VcIDsKK+adv+e0mSA8IGl0YWdhbWlcIDsKK+S6jOiJsiA8IG5pc2hva3VcIDsKK+mnkOaUryA8IGNodXVzaGlcIDsKK+absui3ryA8IGt5b2t1cm9cIDsKK+WwkeW8nyA8IHNob3V0ZWlcIDsKK+ebuOmBleeCuSA8IHNvdWl0ZW5cIDsKK+S4oei8qiA8IHJ5b3VyaW5cIDsKK+acqOidiyA8IG1va3Vyb3VcIDsKK+S4gOmMoCA8IGljaGlqb3VcIDsKK+Wun+azgSA8IGppa2t5b3VcIDsKK+i1pOaXlyA8IGFrYWhhdGFcIDsKK+S/guWxniA8IGtlaXpva3VcIDsKK+S4oei7jSA8IHJ5b3VndW5cIDsKK+iDjuavkiA8IHRhaWRva3VcIDsKK+eVmeS7uyA8IHJ5dXVuaW5cIDsKK+acveiRiSA8IGt1Y2hpYmFcIDsKK+abvOiNvOe+hSA8IG1hbmRhcmFcIDsKK+WxseWLmCA8IHlhbWFrYW5cIDsKK+WwkeW5tCA8IHNob3VuZW5cIDsKK+S7iueoiyA8IGltYWhvZG9cIDsKK+mnkuaQjSA8IGtvbWFzb25cIDsKK+e9qumanCA8IHphaXNob3VcIDsKK+Wwj+W6lyA8IHNob3V0ZW5cIDsKK+WcsOmbt+eBqyA8IGppcmFpa2FcIDsKK+WFrOWLmeWToSA8IGtvdW11aW5cIDsKK+Wuv+aguSA8IHNodWtrb25cIDsKK+aciOiplSA8IGdlcHB5b3VcIDsKK+ahiOWxseWtkCA8IGtha2FzaGlcIDsKK+S4i+mDqCA8IHNoaW1vYmVcIDsKK+adn+e+pCA8IHNva3VndW5cIDsKK+Wun+avjSA8IGppdHN1Ym9cIDsKK+S4jemBlCA8IGZ1dGF0c3VcIDsKK+WPpOS7o+iqniA8IGtvZGFpZ29cIDsKK+eUn+S4gOacrCA8IGtpaXBwb25cIDsKK+S4i+mBlCA8IGthdGF0c3VcIDsKK+mjm+iEmiA8IGhpa3lha3VcIDsKK+eUuuWGhSA8IGNob3VuYWlcIDsKK+aciOimiyA8IHRzdWtpbWlcIDsKK+S/l+WhtSA8IHpva3VqaW5cIDsKK+WAi+WIpSA8IGtvYmV0c3VcIDsKK+WxnuWQjSA8IHpva3VtZWlcIDsKK+S7mOedgCA8IGZ1Y2hha3VcIDsKK+S4iumAsiA8IGpvdXNoaW5cIDsKK+eMn+mKgyA8IHJ5b3VqdXVcIDsKK+S6pOe1oSA8IGtvdXJha3VcIDsKK+S9leafkCA8IG5hbmlib3VcIDsKK+i6q+i0lOWxkyA8IG1pYmlpa2lcIDsKK+S7leedgCA8IHNoaWtpc2VcIDsKK+acqOiUpiA8IGtpZHp1dGFcIDsKK+iCieeJhyA8IG5pa3VoZW5cIDsKK+eUt+WEqiA8IGRhbicneXV1XCA7CivmnKjok64gPCBtb2t1cmVuXCA7CivmnKrmlbTnkIYgPCBtaXNlaXJpXCA7Civkuojnp5HnlJ8gPCB5b2thc2VpXCA7Civmm7LorZwgPCBreW9rdWZ1XCA7CivogqXmupwgPCBrb2VkYW1lXCA7Civos57njqkgPCBzaG91Z2FuXCA7CivlgJ/kurogPCBrYXJpbmluXCA7Civkv4rlo6sgPCBzaHVuc2hpXCA7Civmm7joqZUgPCBzaG9oeW91XCA7Civlr4bmlZkgPCBtaWtreW91XCA7CivkuIDpgZMgPCBpY2hpZG91XCA7CivkuIDpgYcgPCBpY2hpZ3V1XCA7Civmm7joqLwgPCBzaG9zaG91XCA7CivosqvnpoQgPCBrYW5yb2t1XCA7CivmnKrntYzpgY4gPCBtaWtlaWthXCA7CivotorlubQgPCBldHN1bmVuXCA7CivkuIDpgKMgPCBpY2hpcmVuXCA7CivkuInou7ggPCBzYW5qaWt1XCA7CivogIHoh6MgPCByb3VzaGluXCA7CivmnaHntIQgPCBqb3V5YWt1XCA7CivosYbolLUgPCBtYW1lem91XCA7CivkvZnml6UgPCB5b2ppdHN1XCA7CivnkIPnlYwgPCBreXV1a2FpXCA7CivkvZzmlocgPCBzYWt1YnVuXCA7Civmtbfmnb7osp0gPCBtaXJ1Z2FpXCA7CivkvY7mnKggPCB0ZWlib2t1XCA7CivppqzmlrkgPCB1bWFrYXRhXCA7CivkubHoh6MgPCByYW5zaGluXCA7CivkvZXmmYIgPCBuYW5kb2tpXCA7CivotaTmiYsgPCBzZWtpc2h1XCA7CivlgJLkvI8gPCB0b3VmdWt1XCA7Civmm7Lop6MgPCBreW9ra2FpXCA7CivkuIDovKogPCBpY2hpcmluXCA7CivlsIrlrrkgPCBzb24nJ3lvdVwgOwor5LiK6LazIDwgam91c29rdVwgOwor5Lih6KuWIDwgcnlvdXJvblwgOwor5LiA6LuNIDwgaWNoaWd1blwgOwor55S65Lq6IDwgY2hvdW5pblwgOwor5LiK6LaKIDwgam91ZXRzdVwgOwor5bGA5ZOhIDwga3lva3VpblwgOwor5bCC5bGeIDwgc2Vuem9rdVwgOwor5L2V5pWFIDwgbmFuaXl1ZVwgOwor5LuL55eFIDwga2FpYnlvdVwgOwor5LuP55S7IDwgYnV0c3VnYVwgOwor6ISx5a2XIDwgZGF0c3VqaVwgOwor54yb6L+9IDwgbW91dHN1aVwgOwor6LSF5rKiIDwgemVpdGFrdVwgOwor5L+h5Y+3IDwgc2hpbmdvdVwgOwor55Sw5L2cIDwgZGVuc2FrdVwgOwor5YW15YWQ5bivIDwgaGVrb29iaVwgOwor5bGx5LitIDwgc2FuY2h1dVwgOwor5pys6IW5IDwgaG9ucHVrdVwgOwor5LqU56+AIDwgZ29zZXRzdVwgOwor5Li76Jm5IDwgc2h1bmlqaVwgOwor5Lim6KO9IDwgbmFtaXNlaVwgOwor55Sa5YWtIDwgamlucm9rdVwgOwor6LWk5oGlIDwgYWthaGFqaVwgOwor6Lqr5aWH6bqXIDwgbWlnaXJlaVwgOwor5pyx6IKJIDwgc2h1bmlrdVwgOwor5L2Z5o6lIDwgeW9zZXRzdVwgOwor5qSc5p+75ZOhIDwga2Vuc2FpblwgOwor55Sy5LmZIDwga291b3RzdVwgOwor5LqV562SIDwgaWR6dXRzdVwgOwor5pys6IO9IDwgaG9uJydub3VcIDsKK+eRo+acqyA8IHNhbWF0c3VcIDsKK+S6uueahyA8IG5pbicnbm91XCA7CivkurrnmoQgPCBqaW50ZWtpXCA7CivohIblvLEgPCB6ZWlqYWt1XCA7CivppZHmuIcgPCBraWthdHN1XCA7CivkuLvolqwgPCBzaHV5YWt1XCA7CivljbHmqZ/mhJ8gPCBraWtpa2FuXCA7CivotaTojITlrZAgPCBha2FuYXN1XCA7CivlrpjmnIkgPCBrYW4nJ3l1dVwgOwor5LuW54mpIDwgdGFidXRzdVwgOwor57696JmrIDwgaGFtdXNoaVwgOwor55Sj5LyRIDwgc2Fua3l1dVwgOwor5L2c5oimIDwgc2FrdXNlblwgOwor5Lyv5p6XIDwgYmVydXJpblwgOwor6IOM5pWZIDwgaGFpa3lvdVwgOwor6LGK6IO4IDwgaG91a3lvdVwgOwor5p+z5p2hIDwgcnl1dWpvdVwgOwor56uv5q2m6ICFIDwgaGFtdXNoYVwgOwor55Sf5LmzIDwgc2Vpbnl1dVwgOwor5Y2w5bqm5Lq6IDwgaW5kb2ppblwgOwor5YaF5a6J5omTIDwgbmFpYW5kYVwgOwor6IKJ5rGgIDwgbmlrdWNoaVwgOwor5LiJ6KeSIDwgc2Fua2FrdVwgOwor5LiL6KaLIDwgc2hpdGFtaVwgOwor5LyP5qiLIDwgZnVzZWRvaVwgOwor6IKJ5rGBIDwgbmlrdWp1dVwgOwor5bGL5qC55p2/IDwgeWFuZWl0YVwgOwor54Sh5pyf5YiRIDwgbXVraWtlaVwgOwor546E57+BIDwgZ2VuJydub3VcIDsKK+iomOW/teeikSA8IGtpbmVuaGlcIDsKK+S4gOiqrCA8IGlzc2V0c3VcIDsKK+mnkOWxryA8IGNodXV0b25cIDsKK+WwseWKtCA8IHNodXVyb3VcIDsKK+iyt+eJqSA8IGthaW1vbm9cIDsKK+mDveW4guWMliA8IHRvc2hpa2FcIDsKK+WxheWAmSA8IGlzb3Vyb3VcIDsKK+acjeiGuiA8IGZ1a3V5b3VcIDsKK+aer+a4hyA8IGtva2F0c3VcIDsKK+miqOe/kiA8IGZ1dXNodXVcIDsKK+S5l+e+gyA8IGpvdWJla2lcIDsKK+WxiOS8uCA8IGt1c3NoaW5cIDsKK+S/l+WDpyA8IHpva3Vzb3VcIDsKK+W6nOefpeS6iyA8IGZ1Y2hpamlcIDsKK+WGheiAs+eCjiA8IG5haWppZW5cIDsKK+acrOe1piA8IGhvbmt5dXVcIDsKK+S4reiRiSA8IGNodXV5b3VcIDsKK+e9qui3oSA8IHphaXNla2lcIDsKK+mjm+ekqyA8IHRzdWJ1dGVcIDsKK+adoeebriA8IGpvdW1va3VcIDsKK+S4gOimpyA8IGljaGlyYW5cIDsKK+WvhuW6piA8IG1pdHN1ZG9cIDsKK+S4iuihqCA8IGpvdWh5b3VcIDsKK+WMl+S6rOiqniA8IHBla2luZ29cIDsKK+S4i+ihgCA8IGdla2V0c3VcIDsKK+i2s+WKtCA8IHNva3Vyb3VcIDsKK+Wwj+WWhCA8IHNob3V6ZW5cIDsKK+S7ruaxuiA8IGtha2V0c3VcIDsKK+S6leebriA8IHNlaW1va3VcIDsKK+WwmuWPiCA8IG5hb21hdGFcIDsKK+eKrOWwj+WxiyA8IGludWdveWFcIDsKK+aal+i6jSA8IGFuJyd5YWt1XCA7CivlvbzlsrjkvJogPCBoaWdhbicnZVwgOwor6LKo54mpIDwga2Ftb3RzdVwgOwor5a6f5oqAIDwgaml0c3VnaVwgOwor5pys57GkIDwgaG9ua3VqaVwgOwor6ISx5Za2IDwgZGF0c3VlaVwgOwor5L2T5b6XIDwgdGFpdG9rdVwgOwor5pys57GNIDwgaG9uc2VraVwgOwor5bCP5ZOBIDwgc2hvdWhpblwgOwor5pyJ6IG3IDwgeXV1c29rdVwgOwor5L2z5a6iIDwga2FreWFrdVwgOwor576O6KGTIDwgYmlqdXRzdVwgOwor6LWk5a2QIDwgc2VraXNoaVwgOwor5a6z5b+DIDwgZ2Fpc2hpblwgOwor5pi86aSQIDwgY2h1dXNhblwgOwor5LqM552AIDwgbmljaGFrdVwgOwor55u45byf5a2QIDwgYWlkZXNoaVwgOwor5L+X5LydIDwgem9rdWRlblwgOwor5qC45a2QIDwga2FrdXNoaVwgOwor5pys566xIDwgaG9uYmFrb1wgOwor5LqM55u0IDwgbmljaG9rdVwgOwor6aas5biCIDwgdW1haWNoaVwgOwor5L2V5bm0IDwgbmFuJyduZW5cIDsKK+Wwj+WPoyA8IGtvZ3VjaGlcIDsKK+advueFpCA8IHNob3ViYWlcIDsKK+acrOetiyA8IGhvbnN1amlcIDsKK+adseeLrCA8IHRvdWRva3VcIDsKK+eNo+iCiSA8IGp1dW5pa3VcIDsKK+S6jOeZviA8IG5paHlha3VcIDsKK+absuiIniA8IGt1c2VtYWlcIDsKK+ePjeeNoyA8IGNoaW5qdXVcIDsKK+acrOeroCA8IGhvbnNob3VcIDsKK+S4u+e/vCA8IHNodXlva3VcIDsKK+e+pOiQvSA8IGd1bnJha3VcIDsKK+mjtOeOiSA8IGFtZWRhbWFcIDsKK+iAhOeijCA8IG1vdXJva3VcIDsKK+WuruW7tyA8IGt5dXV0ZWlcIDsKK+WwseS7uyA8IHNodXVuaW5cIDsKK+Wmmem9oiA8IG15b3VyZWlcIDsKK+aZgumbqCA8IHNoaWd1cmVcIDsKK+acqOeriyA8IGtvZGFjaGlcIDsKK+eOi+eriyA8IG91cml0c3VcIDsKK+Wwj+WLhyA8IHNob3V5dXVcIDsKK+iBt+aoqSA8IHNob2trZW5cIDsKK+WvhOWuvyA8IGtpc2h1a3VcIDsKK+mzs+WHsOW6pyA8IGhvdW91emFcIDsKK+iDjOW+syA8IGhhaXRva3VcIDsKK+agvOWkliA8IGtha3VnYWlcIDsKK+WSvemgreeCjiA8IGludG91ZW5cIDsKK+S4iuiUnyA8IGpvdXpva3VcIDsKK+S4reiDjCA8IGNodXV6ZWlcIDsKK+i1pOWkliA8IHNla2lnYWlcIDsKK+S4oeiItyA8IHJ5b3VnZW5cIDsKK+Wto+acqyA8IGtpbWF0c3VcIDsKK+advua/pCA8IHNob3V0b3VcIDsKK+afhOadkyA8IGhpc2hha3VcIDsKK+eLrOi1sCA8IGRva3Vzb3VcIDsKK+aKleW9seWbsyA8IHRvdWVpenVcIDsKK+eOieeovyA8IGd5b2trb3VcIDsKK+S+v+S+qyA8IGJlbicnbmVpXCA7CivkuI3ooZvnlJ8gPCBmdWVpc2VpXCA7Civku5bmrrogPCB0YXNhdHN1XCA7CivkuIvokYkgPCBzaGl0YWJhXCA7CivotrPku6MgPCBhc2hpZGFpXCA7CivkuK3ogIEgPCBjaHV1cm91XCA7CivmnIjntaYgPCBnZWtreXV1XCA7Civpp5DlnKggPCBjaHV1emFpXCA7CivkuKHohZUgPCByeW91dWRlXCA7CivnjYToiI4gPCBnb2t1c2hhXCA7CivlsI7lhaUgPCBkb3VueXV1XCA7CivmlbTnkIbpg6ggPCBzZWlyaWJ1XCA7CivlhaXmr43lsYsgPCBpcmltb3lhXCA7CivkuZnnqK4gPCBvdHN1c2h1XCA7CivniZ3pto8gPCBtZW5kb3JpXCA7CivlpJrotqPlkbMgPCB0YXNodW1pXCA7CivlrZ/mmKUgPCBtb3VzaHVuXCA7Civkvpvli6IgPCB0b21vemVpXCA7Civlr6nllY8gPCBzaGlubW9uXCA7Civku4vmrrsgPCBrYWlrYWt1XCA7CivkuIDokYkgPCBpY2hpeW91XCA7CivmnIDntYIgPCBzYWlzaHV1XCA7CivkubPnmYwgPCBueXV1Z2FuXCA7CivogL3murogPCB0YW5kZWtpXCA7CivkvY/lroUgPCBqdXV0YWt1XCA7CivotoXli6QgPCBjaG91a2luXCA7CivogIHnl4UgPCByb3VieW91XCA7Civos5PmoLwgPCBoaW5rYWt1XCA7CivmnJ3npLwgPCBjaG91cmVpXCA7Civpn7PoqJjlj7cgPCBvbmtpZ291XCA7CivlsI/kvr8gPCBzaG9uYmVuXCA7CivlsIHlhaUgPCBmdXVueXV1XCA7CivmmKXpm7cgPCBzaHVucmFpXCA7CivlsI/lnYrkuLsgPCBrb2JvdXp1XCA7CivkuK3nt6ggPCBjaHV1aGVuXCA7CivmnKrnnYAgPCBtaWNoYWt1XCA7Civmm7jntYwgPCBzaG9reW91XCA7Civlr7jliLsgPCBzdW5rb2t1XCA7CivkuovniakgPCBqaWJ1dHN1XCA7Civku5Xmpa0gPCBzaGl3YXphXCA7Civml6XmnKznlLsgPCBuaWhvbmdhXCA7Civnj77mpa0gPCBnZW5neW91XCA7Civmm7PntrIgPCBoaWtpYW1pXCA7CivlsIrkv6EgPCBzb25zaGluXCA7CivotoXlh6EgPCBjaG91Ym9uXCA7Civku7Lmlq0gPCBjaHV1ZGFuXCA7CivlsI/kvJ0gPCBzaG91ZGVuXCA7Civpnqbpn4YgPCBidXJhbmtvXCA7CivntIDlhYPlvowgPCBraWdlbmdvXCA7CivkubHnlKggPCByYW4nJ3lvdVwgOwor5LiD6ImyIDwgbmFuYWlyb1wgOwor5LiK6IaKIDwgam91aGFrdVwgOwor5L2V5aW0IDwgZG95YXRzdVwgOwor5L2T5rip5ZmoIDwgdGFpb25raVwgOwor5LiA6Iq4IDwgaWNoaWdlaVwgOwor54qs6YeYIDwgaW51a3VnaVwgOwor5pyq55m6IDwgbWloYXRzdVwgOwor5bCP5Lq6IDwgc2hvdW5pblwgOwor5L2X5aOwIDwgd2FiaWdvZVwgOwor5LiA6ImyIDwgaGl0b2lyb1wgOwor5Li7562LIDwgc2h1c3VqaVwgOwor5Lit57O4IDwgY2h1dWl0b1wgOwor6LOH5qC8IDwgc2hpa2FrdVwgOwor5pu457GNIDwgc2hvc2VraVwgOwor5a6/5aC0IDwgc2h1a3ViYVwgOwor5pil6ZeYIDwgc2h1bnRvdVwgOwor5pq06JC9IDwgYm91cmFrdVwgOwor5Lqs5rSbIDwga2VpcmFrdVwgOwor5LiH6IO9IDwgbWFuJydub3VcIDsKK+S4ieiCsiA8IHNhbicnaWt1XCA7CivkuInogqEgPCBzYW5tYXRhXCA7CivkuIDohrMgPCBpY2hpemVuXCA7Civnibnpm7sgPCB0b2t1ZGVuXCA7CivpoIboqr8gPCBqdW5jaG91XCA7Civnvr3nrpIgPCBoYWJvdWtpXCA7CivohJrlhYkgPCBreWFra291XCA7Civni6zoo4EgPCBkb2t1c2FpXCA7CivnvorohpwgPCB5b3VtYWt1XCA7CivmnKvnlJ8gPCBzdWVuYXJpXCA7Civmn7vlr58gPCBzYXNhdHN1XCA7CivkuIrnv7wgPCBqb3V5b2t1XCA7CivkvJHmgKAgPCBreXV1dGFpXCA7CivkubHnjbIgPCByYW5rYWt1XCA7CivnvqnntbYgPCBnaXpldHN1XCA7CivmmIfpoIYgPCBzaG91anVuXCA7Civnj77mnIkgPCBnZW4nJ3l1dVwgOwor6LKd5q68IDwga2FpZ2FyYVwgOwor54mp6Z+zIDwgbW9ub290b1wgOwor5b6u5rip5rmvIDwgYmlvbnRvdVwgOwor5Li756WeIDwgc2h1c2hpblwgOwor546J55K9IDwgZ3lva3VqaVwgOwor5Lya5bitIDwga2Fpc2VraVwgOwor54u86JeJIDwgcm91emVraVwgOwor576K6IKJIDwgeW91bmlrdVwgOwor6aCQ6KGAIDwgeW9rZXRzdVwgOwor6LK05amm5Lq6IDwga2lmdWppblwgOwor6aKo55a5IDwgZnV1c2hpblwgOwor546J55GbIDwgZ3lva3VlaVwgOwor5a6/5Za2IDwgc2h1a3VlaVwgOwor5LuW5pelIDwgdGFqaXRzdVwgOwor6ICB54afIDwgcm91anVrdVwgOwor6LOH5paZIDwgc2hpcnlvdVwgOwor6aeQ5YW1IDwgY2h1dWhlaVwgOwor5Y+z5aSn6IejIDwgdWRhaWppblwgOwor5L2O5ZynIDwgdGVpYXRzdVwgOwor5p2+5qWTIDwgc2hvdWZ1dVwgOwor5LuK5pydIDwga29uY2hvdVwgOwor5Li556KnIDwgdGFucGVraVwgOwor5pqu6ImyIDwgYm9zaG9rdVwgOwor5LuV5pa5IDwgc2hpa2F0YVwgOwor5biw5YyW5Lq6IDwga2lrYWppblwgOwor5LuK5pu0IDwgaW1hc2FyYVwgOwor5a+G5ZGKIDwgbWlra29rdVwgOwor54qv6LehIDwgaGFuc2VraVwgOwor6LK05pytIDwga2lzYXRzdVwgOwor6aOE54S2IDwgaHlvdXplblwgOwor5LuK5pqBIDwga29uZ3lvdVwgOwor5pep6aasIDwgaGF5YXVtYVwgOwor5L2c5ZOBIDwgc2FrdWhpblwgOwor6LKg5qW1IDwgZnVreW9rdVwgOwor5oim5b6M5rS+IDwgc2VuZ29oYVwgOwor5Lq65qC8IDwgamlua2FrdVwgOwor5pys54mpIDwgaG9ubW9ub1wgOwor5LuK5pmCIDwgaW1hZG9raVwgOwor5p2l5q20IDwgcmFpcmVraVwgOwor6Z+z6KizIDwgb24nJ3lha3VcIDsKK+S7iuaYpSA8IGtvbnNodW5cIDsKK+iyr+acqCA8IGNob2Jva3VcIDsKK+iyt+aYpSA8IGJhaXNodW5cIDsKK+WvjOWKmyA8IGZ1cnlva3VcIDsKK+S4iue0miA8IGpvdWt5dXVcIDsKK+S4iue0mSA8IHV3YWdhbWlcIDsKK+iBmuaVoyA8IHNodXVzYW5cIDsKK+S4iue0kCA8IHV3YWhpbW9cIDsKK+S7iuaWuSA8IGltYWdhdGFcIDsKK+acqOeJiCA8IG1va3VoYW5cIDsKK+acqOeJhyA8IG1va3VoZW5cIDsKK+iDjOWcpyA8IGhhaWF0c3VcIDsKK+iCieW8viA8IG5pa3VkYW5cIDsKK+eNhOeqkyA8IGdva3Vzb3VcIDsKK+WtpuW5tCA8IGdha3VuZW5cIDsKK+WuouWcnyA8IGt5YWt1ZG9cIDsKK+ittOiyrCA8IGtlbnNla2lcIDsKK+S9juWUsSA8IHRlaXNob3VcIDsKK+aXp+miqCA8IGt5dXVmdXVcIDsKK+WtmOW/tSA8IHpvbicnbmVuXCA7CivnjofniL4gPCBzb3RzdWppXCA7CivlrabluL0gPCBnYWt1Ym91XCA7CivmnKznhLYgPCBob24nJ25lblwgOwor54uC6KiAIDwga3lvdWdlblwgOwor5LuV5o6bIDwgc2hpa2FrZVwgOwor5qCq5Yi4IDwga2FidWtlblwgOwor6aOb5rKrIDwgaGltYXRzdVwgOwor6aKo54uCIDwgZnV1a3lvdVwgOwor5a2Q5oGvIDwgc2hpc29rdVwgOwor6aas5Yy5IDwgYmFoaXRzdVwgOwor5pu455uuIDwgc2hvbW9rdVwgOwor5LiK566xIDwgdXdhYmFrb1wgOwor6IO45YOPIDwga3lvdXpvdVwgOwor6IO05YWDIDwgZG91bW90b1wgOwor5pqX6ImyIDwgYW5zaG9rdVwgOwor5a6M5aOBIDwga2FuYmVraVwgOwor6IOG5ZqiIDwgdGFuJydub3VcIDsKK+ixiueGnyA8IGhvdWp1a3VcIDsKK+S4iuetliA8IGpvdXNha3VcIDsKK+mhjue0kCA8IGFnb2hpbW9cIDsKK+acqOeCrSA8IG1va3V0YW5cIDsKK+S9meWKmyA8IHlvcnlva3VcIDsKK+WPl+WDj+apnyA8IGp1em91a2lcIDsKK+S4reebpCA8IGNodXViYW5cIDsKK+iomOW/teaouSA8IGtpbmVuanVcIDsKK+iAs+agkyA8IG1pbWlzZW5cIDsKK+S9meWJsiA8IHlva2F0c3VcIDsKK+S4h+etliA8IGJhbnNha3VcIDsKK+S7pOaBryA8IHJlaXNva3VcIDsKK+eyieW+ruWhtSA8IGtvbWlqaW5cIDsKK+eJh+mdoiA8IGthdGFtZW5cIDsKK+eCuuaUv+iAhSA8IGlzZWlzaGFcIDsKK+eJuemFjSA8IHRva3VoYWlcIDsKK+S5s+a4hSA8IG55dXVzZWlcIDsKK+aXpemcsiA8IG5pY2hpcm9cIDsKK+Wkp+eKrOW6pyA8IG9vaW51emFcIDsKK+aXpeaZguioiCA8IGhpZG9rZWlcIDsKK+S5s+a2siA8IG55dXVla2lcIDsKK+eMrueriyA8IGtvbmRhdGVcIDsKK+S4oeecvCA8IHJ5b3VnYW5cIDsKK+S9leWHpiA8IGRva29pcmFcIDsKK+ixhueCrSA8IG1hbWV0YW5cIDsKK+Wun+WToSA8IGppdHN1aW5cIDsKK+ePjeacrCA8IGNoaW5wb25cIDsKK+S7o+W9uSA8IGRhaXlha3VcIDsKK+S5sea1gSA8IHJhbnJ5dXVcIDsKK+S4gOerryA8IGlwcGFzaGlcIDsKK+ePjeabuCA8IGNoaW5zaG9cIDsKK+S9leWFsSA8IG5hbnRvbW9cIDsKK+WvkuS4rSA8IGthbmNodXVcIDsKK+aZguS6i+irliA8IGppamlyb25cIDsKK+S4reeTtiA8IGNodXViaW5cIDsKK+S4h+emjyA8IG1hbnB1a3VcIDsKK+iBt+W3pSA8IHNob2trb3VcIDsKK+WuheWcsCA8IHRha3VjaGlcIDsKK+S5s+axgSA8IG55dXVqdXVcIDsKK+agoeWAiSA8IGF6ZWt1cmFcIDsKK+e/leeEtiA8IGt5dXV6ZW5cIDsKK+S/nemkiumZoiA8IGhveW91aW5cIDsKK+aWsOmuriA8IHNoaW5zZW5cIDsKK+ixiua8gSA8IGhvdXJ5b3VcIDsKK+itq+iogCA8IHV3YWdvdG9cIDsKK+acnea9riA8IGFzYXNoaW9cIDsKK+iHqueEtuiWryA8IGppbmVuam9cIDsKK+S/neWBpeaJgCA8IGhva2Vuam9cIDsKK+miqOa9riA8IGZ1dWNob3VcIDsKK+iDtOS4rSA8IGRvdW5ha2FcIDsKK+mgmuiCiSA8IGtlaW5pa3VcIDsKK+S9nOS+iyA8IHNha3VyZWlcIDsKK+mbouW8geiKsSA8IHJpYmVua2FcIDsKK+acrOa1gSA8IGhvbnJ5dXVcIDsKK+WvhuS6iyA8IG1pdHN1amlcIDsKK+S7sOWxsSA8IGd5b3VzYW5cIDsKK+S7j+aBqSA8IGJ1dHN1b25cIDsKK+asoeS4luS7oyA8IGppc2VkYWlcIDsKK+S7luW+iyA8IHRhcml0c3VcIDsKK+adpeaYpSA8IHJhaWhhcnVcIDsKK+S4jeWZqOeUqCA8IGJ1a2l5b3VcIDsKK+ePvuW9uSA8IGdlbicnZWtpXCA7CivkuIDnpLwgPCBpY2hpcmVpXCA7CivpoIboia8gPCBqdW5yeW91XCA7CivkuIrnn7MgPCB1d2Fpc2hpXCA7Civlrp/li5kgPCBqaXRzdW11XCA7CivlrZDlsYAgPCBrb2t5b2t1XCA7CivmiYvlpYfpupcgPCB0ZWdpcmVpXCA7CivkuIvnnYAgPCBzaGl0YWdpXCA7CivmnKrmsbogPCBtaWtldHN1XCA7CivlpKfpu5IgPCBkYWlrb2t1XCA7Civloanln7rmgKcgPCBlbmtpc2VpXCA7Civku5XluqYgPCBzaGl0YWt1XCA7CivlrablpJYgPCBnYWt1Z2FpXCA7CivpoKzntIUgPCBob29iZW5pXCA7CivpnaLplbcgPCBvbW9uYWdhXCA7CivorZjoqp4gPCBzaGlraWdvXCA7CivkvY7kv5cgPCB0ZWl6b2t1XCA7CivkuIvnm64gPCBzaGl0YW1lXCA7CivmnY/mnpcgPCBreW91cmluXCA7CivlrZHlrZEgPCBib3VmdXJpXCA7Civmmpfnt5EgPCBhbnJ5b2t1XCA7CivppqzkuLsgPCBiYW51c2hpXCA7CivnibnotaYgPCB0b2t1c2hhXCA7CivkuI3nmbogPCBmdWhhdHN1XCA7CivkvZXkurogPCBuYW5waXRvXCA7CivoqJjlv7Xml6UgPCBraW5lbmJpXCA7Civpq5jnpZbniLYgPCBrb3Vzb2Z1XCA7Civku4rml6XkuK0gPCBreW91anV1XCA7CivogbflrokgPCBzaG9rdWFuXCA7Civmma/oibIgPCBrZXNoaWtpXCA7CivmnZHmnIkgPCBzb24nJ3l1dVwgOwor5p2Q5pyoIDwgemFpbW9rdVwgOwor5pyn5rCXIDwgb2Jvcm9nZVwgOwor5LiH55uuIDwgYmFubW9rdVwgOwor6Zyy6aqoIDwgcm9rb3RzdVwgOwor5LuP5bqnIDwgYnV0c3V6YVwgOwor6aOb5pytIDwgaGlzYXRzdVwgOwor5aSn6be6IDwgZGFpc2FnaVwgOwor6KuW6aeBIDwgcm9uYmFrdVwgOwor6aKo5rWBIDwgZnV1cnl1dVwgOwor5a2m5aCxIDwgZ2FrdWhvdVwgOwor6IKJ5aOwIDwgbmlrdXNlaVwgOwor5Luj5bCGIDwgZGFpc2hvdVwgOwor6LGK5rKDIDwgaG91eW9rdVwgOwor6JCO6buE55eFIDwgaW91YnlvdVwgOwor6IGW5bufIDwgc2VpYnlvdVwgOwor5a625Li7IDwgeWFudXNoaVwgOwor5LiA552AIDwgaXRjaGFrdVwgOwor5LiA55y8IDwgaWNoaWdhblwgOwor5LiA55y4IDwgaWNoaWJvdVwgOwor6K2Y6KaLIDwgc2hpa2tlblwgOwor5p+Q5Zu9IDwgYm91a29rdVwgOwor5p2J5p2QIDwgc3VnaXphaVwgOwor5LiA55ygIDwgaWNoaW1pblwgOwor5LuB5b6zIDwgamludG9rdVwgOwor5a6b5YWIIDwgYXRlc2FraVwgOwor5pOs5Y+k5paHIDwgZ2lrb2J1blwgOwor5paw6aKoIDwgc2hpbnB1dVwgOwor5LiA55u0IDwgaXRjaG9rdVwgOwor5LuK5bm0IDwga29uJyduZW5cIDsKK+iDmuS5syA8IGhhaW55dXVcIDsKK+S6jOaXpSA8IGZ1dHN1a2FcIDsKK+aWremjnyA8IGRhbmppa2lcIDsKK+S5s+ajkiA8IG55dXVib3VcIDsKK+S4i+eVpSA8IGdlcnlha3VcIDsKK+eRnuWFhiA8IHp1aWNob3VcIDsKK+aWsOmhlCA8IHNoaW5nYW9cIDsKK+S4h+eXhSA8IG1hbmJ5b3VcIDsKK+mfu+iEmiA8IGlua3lha3VcIDsKK+WcsOiho+mhniA8IGNoaWlydWlcIDsKK+e/vOajnyA8IHlva3V0b3VcIDsKK+S4ieeUtyA8IHNhbicnbmFuXCA7CivmnZDmlpkgPCB6YWlyeW91XCA7CivlqYbnvoXploAgPCBiYXJhbW9uXCA7Civlrpjlg5ogPCBrYW5yeW91XCA7Civmlofps6UgPCBidW5jaG91XCA7CivkurrlvrMgPCBuaW50b2t1XCA7Civku7DlpKkgPCBneW91dGVuXCA7Civos4rlrrMgPCB6b2t1Z2FpXCA7CivpoYznm64gPCBkYWltb2t1XCA7CivkurrlvaIgPCBuaW5neW91XCA7CivniZvou4ogPCBneXV1c2hhXCA7Civos4rlrZAgPCB6b2t1c2hpXCA7Civnp5jmm7joqrIgPCBoaXNob2thXCA7CivmnKzmpa0gPCBob25neW91XCA7CivljbDnlLvntJkgPCBpbmdhc2hpXCA7CivosqflvLEgPCBoaW5qYWt1XCA7CivniIbpoqggPCBiYWt1ZnV1XCA7CivogIHmnL0gPCByb3VreXV1XCA7Civml6npgJ8gPCBzYXNzb2t1XCA7Civml6fpgZMgPCBreXV1ZG91XCA7CivogIHmnKggPCByb3Vib2t1XCA7Civnibnoqo0gPCB0b2t1bmluXCA7CivmnKzmo5ogPCBob25kYW5hXCA7CivlppnotqMgPCBteW91c2h1XCA7CivnianosaEgPCBidXNzaG91XCA7Civku4/lr7ogPCBidXRzdWppXCA7Civkuojmg7PlsYsgPCB5b3NvdXlhXCA7CivmhYjlloTlrrYgPCBqaXplbmthXCA7CivmnKvmoqIgPCBtYXNzaG91XCA7Civoq5bpm6MgPCByb24nJ25hblwgOwor5Zyf5puc5pelIDwgZG95b3ViaVwgOwor5LiK546JIDwgam91ZGFtYVwgOwor6KuW6ZuGIDwgcm9uc2h1dVwgOwor5p6X5a2mIDwgcmluZ2FrdVwgOwor5a2m5ZWPIDwgZ2FrdW1vblwgOwor6LGq5pePIDwgZ291em9rdVwgOwor6IG35aC0IDwgc2hva3ViYVwgOwor5pys5qC8IDwgaG9ua2FrdVwgOwor5Lya5YmHIDwga2Fpc29rdVwgOwor5Li75rWBIDwgc2h1cnl1dVwgOwor5pei6L+wIDwga2lqdXRzdVwgOwor576p54OIIDwgZ2lyZXRzdVwgOwor6ZmN6Zuo5p6XIDwga291dXJpblwgOwor54mp6K2wIDwgYnV0c3VnaVwgOwor6LK45a62IDwga2FzaGl5YVwgOwor5pyJ5q+SIDwgeXV1ZG9rdVwgOwor5paw6ZaLIDwgc2hpbmthaVwgOwor5LiL54mpIDwga2FidXRzdVwgOwor5LuZ5aWzIDwgc2VuJydueW9cIDsKK+eIhumbtyA8IGJha3VyYWlcIDsKK+S8j+WLoiA8IGZ1c2V6ZWlcIDsKK+S4iueJqSA8IGpvdW1vbm9cIDsKK+acnemiqOWRgiA8IGFzYWJ1cm9cIDsKK+aeoOWkliA8IHdha3VnYWlcIDsKK+acrOacnSA8IGhvbmNob3VcIDsKK+eJueijhSA8IHRva3Vzb3VcIDsKK+mgmOepuiA8IHJ5b3VrdXVcIDsKK+WtpuWQjSA8IGdha3VtZWlcIDsKK+aXp+i5nyA8IGZ1cnVhdG9cIDsKK+acq+acnyA8IG1hdHN1Z29cIDsKK+acqOadryA8IG1va3VoYWlcIDsKK+WGjeS4i+S7mCA8IHNhaWthZnVcIDsKK+a0i+eUu+WutiA8IHlvdWdha2FcIDsKK+isrOirliA8IGJ5dXVyb25cIDsKK+acqOadkCA8IG1va3V6YWlcIDsKK+WtpuWPiyA8IGdha3V5dXVcIDsKK+acqOacrCA8IG1va3Vob25cIDsKK+S4i+eGsSA8IGdlbmV0c3VcIDsKK+Wumuimj+W6pyA8IGpvdWdpemFcIDsKK+adpeW+qSA8IHJhaWZ1a3VcIDsKK+acqOabnCA8IG1va3V5b3VcIDsKK+absua1piA8IGt5b2t1aG9cIDsKK+mhnueEvCA8IHJ1aXNob3VcIDsKK+miqOagvCA8IGZ1dWtha3VcIDsKK+advuWxiyA8IG1hdHN1eWFcIDsKK+mgreebriA8IHRvdW1va3VcIDsKK+S5neaciCA8IGt1Z2F0c3VcIDsKK+S8j+WFtSA8IGZ1a3VoZWlcIDsKK+eJueiejSA8IHRva3V5dXVcIDsKK+S5seaSgyA8IHJhbmdla2lcIDsKK+eNo+assiA8IGp1dXlva3VcIDsKK+WkqemgmCA8IHRlbnJ5b3VcIDsKK+mcgOeUqOWutiA8IGp1eW91a2FcIDsKK+S/neWBpeWppiA8IGhva2VuZnVcIDsKK+ixhuadvyA8IG1hbWVpdGFcIDsKK+izvOWFpSA8IGtvdW55dXVcIDsKK+mkheWxiyA8IG1vY2hpeWFcIDsKK+WroeaKqyA8IGNoYWt1aGlcIDsKK+acneadpSA8IGNob3VyYWlcIDsKK+isrOimiyA8IGJ5dXVrZW5cIDsKK+S4i+eBqyA8IHNoaXRhYmlcIDsKK+ixhuacrCA8IG1hbWVob25cIDsKK+mrmOelluavjSA8IGtvdXNvYm9cIDsKK+WmmeioiCA8IG15b3VrZWlcIDsKK+S7iuWklSA8IGtvbicneXV1XCA7CivkuZ3mmJ8gPCBreXV1c2VpXCA7Civlp7/ntbUgPCBzdWdhdGFlXCA7Civogbflk6EgPCBzaG9rdWluXCA7CivlpJzpo58gPCB5YXNob2t1XCA7CivnkIPlm6MgPCBreXV1ZGFuXCA7CivlpJbogLPngo4gPCBnYWlqaWVuXCA7CivlpJrpo58gPCB0YXNob2t1XCA7Civogpblg48gPCBzaG91em91XCA7CivmnbHlsYsgPCBhenVtYXlhXCA7CivlpKnpm7IgPCBhbWFndW1vXCA7CivkuI3mvZQgPCBmdWtldHN1XCA7CivkuI3oo4Hlj68gPCBmdXNhaWthXCA7CivlrablhoUgPCBnYWt1bmFpXCA7CivkuK3mraMgPCBjaHV1c2VpXCA7CivmlofpnakgPCBidW5rYWt1XCA7CivmnZ/luK8gPCBzb2t1dGFpXCA7Civorablgpnlk6EgPCBrZWliaWluXCA7CivmnJ/ml6UgPCBraWppdHN1XCA7Civpo5/lvowgPCBzaG9rdWdvXCA7CivkuI3mu4UgPCBmdW1ldHN1XCA7CivmnJ3mlrkgPCBhc2FnYXRhXCA7CivlpJXpoqggPCB5dXVrYXplXCA7Civpn7Pnr4AgPCBvbnNldHN1XCA7CivlpKfpmbggPCB0YWlyaWt1XCA7CivoqqTkvZzli5UgPCBnb3NhZG91XCA7CivogbTlj5YgPCBjaG91c2h1XCA7Civni6znnLwgPCBkb2t1Z2FuXCA7CivkuIvmua8gPCBzaGltb3l1XCA7CivlpJzpnLIgPCB5b3RzdXl1XCA7Civkurrlo7AgPCBoaXRvZ29lXCA7Civnj43lrp0gPCBjaGlucG91XCA7CivlpoToqZUgPCBtb3VoeW91XCA7Civogbfli5kgPCBzaG9rdW11XCA7Civpo6/lsYsgPCBtZXNoaXlhXCA7Civmnb/lo4EgPCBpdGFrYWJlXCA7CivkurrlooMgPCBqaW5reW91XCA7Civkub7lvrMgPCBrZW50b2t1XCA7Civku67lkI3mnKwgPCBrYW5haG9uXCA7Civmm7jmo5ogPCBzaG9kYW5hXCA7CivlpJXpnYQgPCB5dXVtb3lhXCA7CivmnaXlroUgPCByYWl0YWt1XCA7Civnva7niakgPCBva2ltb25vXCA7CivnjYTmrbsgPCBnb2t1c2hpXCA7CivmnKvmioAgPCBtYXRzdWdpXCA7CivmnK3miYAgPCBmdWRhc2hvXCA7CivlpJXpnKcgPCB5dXVnaXJpXCA7CivpoJLnmb0gPCBoYW5wYWt1XCA7CivkuIrmtbcgPCBzaGFuaGFpXCA7CivmlqTph48gPCBraW5yeW91XCA7CivmlrDpgZMgPCBzaGluZG91XCA7Civmmannp4sgPCBiYW5zaHV1XCA7CivkuIrmtYEgPCBqb3VyeXV1XCA7CivkuZfmj5sgPCBub3Jpa2FlXCA7CivkuInmtYEgPCBzYW5yeXV1XCA7CivkuIrmtJsgPCBqb3VyYWt1XCA7CivmnKvmiJAgPCB1cmFuYXJpXCA7CivniYfopqogPCBrYXRhb3lhXCA7Civos6DlhJ8gPCBiYWlzaG91XCA7Civnv4zmmakgPCB5b2t1YmFuXCA7CivkuZ3mi50gPCBreXV1aGFpXCA7Civku67lhY0gPCBrYXJpbWVuXCA7CivkuLjmnZAgPCBtYXJ1emFpXCA7Civku7vkvqAgPCBuaW5reW91XCA7CivogonkvZMgPCBuaWt1dGFpXCA7CivmnIjml6UgPCB0c3VraWhpXCA7CivmlbXpmaMgPCB0ZWtpamluXCA7CivpoIXnm64gPCBrb3Vtb2t1XCA7CivlpInpnakgPCBoZW5rYWt1XCA7CivkuIDmtaogPCBpY2hpcm91XCA7Civmlpnph5EgPCByeW91a2luXCA7CivogIHlvLEgPCByb3VqYWt1XCA7CivlpJXpl4cgPCB5dXV5YW1pXCA7CivmlbDpmrsgPCBzdXVzZWtpXCA7CivmlrDou4ogPCBzaGluc2hhXCA7CivkuK3mnqIgPCBjaHV1c3V1XCA7CivkuovlsYAgPCBqaWt5b2t1XCA7Civmlofpjq4gPCBidW5jaGluXCA7Civku67lgJ8gPCBrYXNoYWt1XCA7Civku6PlhaUgPCBkYWlueXV1XCA7CivkuIDms6EgPCBoaXRvYXdhXCA7Civpm6jpoqggPCBhbWVrYXplXCA7Civosarlt54gPCBnb3VzaHV1XCA7CivliqnnlKPmiYAgPCBqb3NhbmpvXCA7Civpnanoo4UgPCBrYXdhc291XCA7Civku4/ljbAgPCBmdXRzdWluXCA7CivkuLvmlZkgPCBzaHVreW91XCA7CivkuIDmsbogPCBpa2tldHN1XCA7Civkuovlrp8gPCBqaWppdHN1XCA7Civkuojlr58gPCB5b3NhdHN1XCA7CivkuIDmsZcgPCBoaXRvYXNlXCA7Civoq7joqLMgPCBzaG93YWtlXCA7Civlp6bnrZYgPCBrYW5zYWt1XCA7Civku7Lku5UgPCBuYWthc2hpXCA7Civku7Lku4sgPCBjaHV1a2FpXCA7Civku7LkurogPCBuYWtvdWRvXCA7CivkuqzlnLAgPCBreW91Y2hpXCA7Civosrflj44gPCBiYWlzaHV1XCA7CivkuIDmr6sgPCBpY2hpZ291XCA7CivmnqDlhoUgPCB3YWt1bmFpXCA7CivkuIDmr5sgPCBpY2hpbW91XCA7CivogLPlnqIgPCBtaW1pYWthXCA7CivniafojYkgPCBib2t1c291XCA7CivppKjlhoUgPCBrYW4nJ25haVwgOwor5Lit5pesIDwgY2h1dWp1blwgOwor57im6ZqUIDwganV1a2FrdVwgOwor5aSn5pmC5LujIDwgb29qaWRhaVwgOwor5p645que6YW4IDwga3VlbnNhblwgOwor6ZuR6aeBIDwgemFwcGFrdVwgOwor6aCT54uCIDwgdG9ua3lvdVwgOwor6Jma54Sh5YOnIDwga29tdXNvdVwgOwor5aSx6YCPIDwgc2hpdHRvdVwgOwor5Lih5pu/IDwgcnlvdWdhZVwgOwor6Zuq6ZqgIDwgc2V0Y2hpblwgOwor5ayw6KiY5Y+3IDwgZWlraWdvdVwgOwor5pyr5bqnIDwgbWF0c3V6YVwgOwor6aO05Z2KIDwgYW1lbmJvdVwgOwor5L+d5YGl5Yy7IDwgaG9rZW4nJ2lcIDsKK+S7o+S9nCA8IGRhaXNha3VcIDsKK+S4uOaQjSA8IG1hcnV6b25cIDsKK+ael+WGhSA8IHJpbicnbmFpXCA7CivmnKvluoMgPCBzdWVoaXJvXCA7CivpoK3lrZfoqp4gPCB0b3VqaWdvXCA7Civku6PkvJEgPCBkYWlreXV1XCA7CivniafoiI4gPCBib2t1c2hhXCA7Civku4/lhbcgPCBidXRzdWd1XCA7CivmnKvluK0gPCBtYXNzZWtpXCA7CivorLnogbQgPCBraW5jaG91XCA7Civoq7jooYwgPCBzaG9neW91XCA7CivmnKjlpKrliIAgPCBraWRhY2hpXCA7CivnjonluqcgPCBneW9rdXphXCA7CivmnKzlt54gPCBob25zaHV1XCA7CivnjJvmr5IgPCBtb3Vkb2t1XCA7Civnt5jpu5kgPCBrYW5tb2t1XCA7Civku4vlhaUgPCBrYWlueXV1XCA7Civmm53mm7ggPCBiYWt1c2hvXCA7CivosbnlpIkgPCBoeW91aGVuXCA7CivmlZHpm6MgPCBreXV1bmFuXCA7CivkuKHmlq0gPCByeW91ZGFuXCA7CivlpaXooYwgPCBva3V5dWtpXCA7CivmnJ3lu7cgPCBjaG91dGVpXCA7CivmlofpgJogPCBidW50c3V1XCA7Civpo5/loakgPCBzaG9rdWVuXCA7CivnhrHpm7IgPCBuZXRzdXVuXCA7Civok67oj6/luqcgPCByZW5nZXphXCA7CivmlZnploAgPCBreW91bW9uXCA7Civpm5Hpn7MgPCB6YXRzdW9uXCA7Civni5vniqwgPCBrb21haW51XCA7Civnj43llY8gPCBjaGlubW9uXCA7CivmhJvmm7jlrrYgPCBhaXNob2thXCA7Civpm4HpppYgPCBnYW5rdWJpXCA7Civmmqbms5UgPCByZWtpaG91XCA7CivlpKnou7ggPCB0ZW5qaWt1XCA7Civoqp7ph4ggPCBnb3NoYWt1XCA7CivkurrliY0gPCBoaXRvbWFlXCA7CivppqzliIDosp0gPCBtYXRlZ2FpXCA7Civnj77ku7sgPCBnZW4nJ25pblwgOwor5aSc6YGTIDwgeW9taWNoaVwgOwor6KuW6Kq/IDwgcm9uY2hvdVwgOwor5LmZ5behIDwgb3RzdWp1blwgOwor5aSP6YeOIDwgbmF0c3Vub1wgOwor5aSW6YOtIDwgZ2Fpa2FrdVwgOwor54+N5ZOBIDwgY2hpbnBpblwgOwor5pyd5biCIDwgYXNhaWNoaVwgOwor5aWJ6KqtIDwgaG91ZG9rdVwgOwor5pi856S8IDwgY2h1dXJlaVwgOwor5pyr5bC+IDwgbWF0c3ViaVwgOwor5LiL5pyfIDwgc2hpbW9raVwgOwor5pWw6YePIDwgc3V1cnlvdVwgOwor54eX6YWSIDwga2FuemFrZVwgOwor5LuV5LqLIDwgc2hpZ290b1wgOwor6KuW6KmVIDwgcm9ucHlvdVwgOwor5LiK5pyNIDwgdXdhZnVrdVwgOwor5pyo5bGlIDwgcG9ra3VyaVwgOwor5pyr5a+6IDwgbWF0c3VqaVwgOwor6KuW6Ki8IDwgcm9uc2hvdVwgOwor54mp572uIDwgbW9ub29raVwgOwor5pyN5b6TIDwgZnVrdWp1dVwgOwor5LiJ5pyIIDwgbWl0c3VraVwgOwor6Laj5oSP5pu4IDwgc2h1aXNob1wgOwor5pyN5b25IDwgZnVrdWVraVwgOwor5Lih5pCNIDwgcnlvdXpvblwgOwor54mb6ISCIDwgZ3l1dXNoaVwgOwor54mn576KIDwgYm9rdXlvdVwgOwor5aSJ6YePIDwgaGVucnlvdVwgOwor5LiH5pyJIDwgYmFuJyd5dXVcIDsKK+acrOWuhSA8IGhvbnRha3VcIDsKK+absuaKgCA8IGt5b2t1Z2lcIDsKK+mdkuibmSA8IGFvZ2FlcnVcIDsKK+acieW+syA8IHl1dXRva3VcIDsKK+eJuee0miA8IHRva2t5dXVcIDsKK+eMruacqCA8IGtlbmJva3VcIDsKK+mjm+WcsCA8IHRvYmljaGlcIDsKK+eMq+advyA8IG5la29pdGFcIDsKK+aXpeiLsSA8IG5pY2hpZWlcIDsKK+iri+isgSA8IHNlaWV0c3VcIDsKK+aYk+e1jCA8IGVraWt5b3VcIDsKK+iyneWJsiA8IGthaXdhcmlcIDsKK+S4jeaXpSA8IGZ1aml0c3VcIDsKK+aalua1gSA8IGRhbnJ5dXVcIDsKK+mdkuiZqyA8IGFvbXVzaGlcIDsKK+S4ieaYpSA8IHNhbnNodW5cIDsKK+S4gOacrSA8IGlzc2F0c3VcIDsKK+iAkOWcpyA8IHRhaWF0c3VcIDsKK+e4q+mHnSA8IG51aWJhcmlcIDsKK+mBi+aQrOiyuyA8IHVucGFuaGlcIDsKK+mggueCuSA8IGNob3V0ZW5cIDsKK+S4gOabsiA8IGlra3lva3VcIDsKK+S4ueW/tSA8IHRhbicnbmVuXCA7Civpn7PniakgPCBpbm1vdHN1XCA7Civml6XoiJ4gPCBuaWNoaWJ1XCA7Civml6foh5ggPCBreXV1cm91XCA7CivnjaPlv4MgPCBqdXVzaGluXCA7Civoq4voqJcgPCBzZWl0YWt1XCA7CivogIHlooMgPCByb3VreW91XCA7CivmlJjlpLfoq5YgPCBqb3Vpcm9uXCA7Civmh5DnlpHmtL4gPCBrYWlnaWhhXCA7Civku4rkuIAgPCBpbWFpY2hpXCA7CivkuIfmlpsgPCBiYW5rb2t1XCA7CivnhKHnhZnngq0gPCBtdWVudGFuXCA7CivkuInmlZkgPCBzYW5reW91XCA7CivkuIDmmakgPCBoaXRvYmFuXCA7CivlpKnosaEgPCB0ZW5zaG91XCA7Civmmannhp8gPCBiYW5qdWt1XCA7CivlpqXntZAgPCBkYWtldHN1XCA7CivmmKXnp4sgPCBoYXJ1YWtpXCA7CivniZvnvLYgPCBneXV1a2FuXCA7CivlronpnZnmmYIgPCBhbnNlaWppXCA7CivmnIDlvLcgPCBzYWlreW91XCA7CivlpInpgJ8gPCBoZW5zb2t1XCA7CivlpInpgJogPCBoZW50c3V1XCA7CivmmpfmrrogPCBhbnNhdHN1XCA7CivmlbXou40gPCB0ZWtpZ3VuXCA7CivnibnnrYkgPCB0b2t1dG91XCA7CivniYfohZUgPCBrYXRhdWRlXCA7CivkuIDml6wgPCBpY2hpanVuXCA7CivlpbPnlJ/lvpIgPCBqb3NlaXRvXCA7CivkuZ7lqb8gPCBrb2ltdWtvXCA7CivomY7nh5Xmi7MgPCBrb2Vua2VuXCA7CivpoLjmpI4gPCBrZWl0c3VpXCA7Civosqzku7sgPCBzZWtpbmluXCA7CivpoZTmlpkgPCBnYW5yeW91XCA7CivmraPluLjkvY0gPCBzZWlqb3VpXCA7CivmnKvlpbMgPCBtYXRzdWpvXCA7CivmnLHloqggPCBzaHVib2t1XCA7CivkuIHmlbAgPCBjaG91c3V1XCA7Civml5foibIgPCBoYXRhaXJvXCA7Civoo5zliqnph5EgPCBob2pva2luXCA7CivlpbPoibIgPCBqb3Nob2t1XCA7Civml6fogZ4gPCBreXV1YnVuXCA7CivpmL/lqYbmk6YgPCBhYmF6dXJlXCA7CivniYfogrogPCBrYXRhaGFpXCA7CivmnLHloZcgPCBzaHVudXJpXCA7CivpoJjmsLQgPCByeW91c3VpXCA7CivpnaLoiLUgPCBvbW9rYWppXCA7CivkuLjluK8gPCBtYXJ1b2JpXCA7CivnkLXnkLbooYwgPCBiaXdha291XCA7Civnt4/pq5ggPCBzb3VkYWthXCA7Civlo7Dph48gPCBzZWlyeW91XCA7CivliqnnlKPlqaYgPCBqb3NhbnB1XCA7CivmnKflpJwgPCBvYm9yb3lvXCA7Civlo4HpnaIgPCBoZWtpbWVuXCA7Civnv7DloqggPCBrYW5ib2t1XCA7CivnjoTlppkgPCBnZW5teW91XCA7Civkv67nvoXloLQgPCBzaHVyYWJhXCA7CivnvrjlvLEgPCBydWlqYWt1XCA7CivkuZ3lpKcgPCBreXV1ZGFpXCA7CivkuInmjK8gPCBzYW5zaGluXCA7CivkuI3mipwgPCBmdWJhdHN1XCA7CivlpKfoqbAgPCBvb2R6dW1lXCA7CivosarllYYgPCBnb3VzaG91XCA7CivmiYvkuIDmna8gPCB0ZWlwcGFpXCA7CivkuK3lubQgPCBjaHV1bmVuXCA7CivkuIDmj6EgPCBpY2hpYWt1XCA7Civmm7LluocgPCBreW9rdWhpXCA7Civoqqzoq60gPCBzZXRzdXl1XCA7CivnhKHnt5rmqZ8gPCBtdXNlbmtpXCA7CivkuK3luL0gPCBjaHV1Ym91XCA7CivmmKXnnKAgPCBzaHVubWluXCA7CivpoKzmoYEgPCBob29nZXRhXCA7CivkuIfnga/kvJogPCBtYW5kb3VlXCA7Civniafnq6UgPCBib2t1ZG91XCA7CivmnbHkuqwgPCB0b3VreW91XCA7CivmnKzlm70gPCBob25nb2t1XCA7CivoqqzoqbEgPCBzZXRzdXdhXCA7CivkuozliJcgPCBuaXJldHN1XCA7CivkuIDmi6wgPCBpa2thdHN1XCA7CivpnZ7ogbcgPCBoaXNob2t1XCA7CivmlLnpi7MgPCBrYWljaHV1XCA7CivnjJvmkoMgPCBtb3VnZWtpXCA7CivmlY/pgJ8gPCBiaW5zb2t1XCA7CivpoKzmnZYgPCBob29kenVlXCA7CivmlrDokZcgPCBzaGluY2hvXCA7CivmsLTkvY3oqIggPCBzdWlpa2VpXCA7Civnvp7mgaUgPCBzaHV1Y2hpXCA7CivkuZ3lnLAgPCBreXV1Y2hpXCA7CivmmI7norogPCBtZWlrYWt1XCA7Civnt4/poY0gPCBzb3VnYWt1XCA7CivkuozlhasgPCBuaWhhY2hpXCA7CivmvKLmlrnljLsgPCBrYW5wb3VpXCA7Civmma/ms4EgPCBrZWlreW91XCA7Civml6XntaYgPCBuaWtreXV1XCA7Civnvr3nm67mnb8gPCBoYW1laXRhXCA7CivlhbfkvZPmoYggPCBndXRhaWFuXCA7Civpm4bph5EgPCBzaHV1a2luXCA7Civpm6jotrMgPCBhbWVhc2hpXCA7CivmmqbmlbAgPCByZWtpc3V1XCA7CivmlrDojLYgPCBzaGluY2hhXCA7CivpoqjlnKcgPCBmdXVhdHN1XCA7Civnt4/pnakgPCBzb3VnYXdhXCA7CivkuK3lsIogPCBjaHV1em9uXCA7CivmmI7nnq0gPCBtZWlyeW91XCA7CivnuLfoqqwgPCBydXNldHN1XCA7Civpm4bphY0gPCBzaHV1aGFpXCA7CivmnIjlpK4gPCBnZXRzdW91XCA7CivkuK3lrq4gPCBjaHV1Z3V1XCA7Civntr/po7QgPCB3YXRhYW1lXCA7CivmnIjlpJwgPCB0c3VraXlvXCA7Civml6XmnKzljJYgPCBuaWhvbmthXCA7CivkuInlvrMgPCBzYW50b2t1XCA7CivpmbDprLEgPCBpbicndXRzdVwgOwor57eR6ZmwIDwgcnlva3VpblwgOwor5pW16KaWIDwgdGVraXNoaVwgOwor5pS+6YC4IDwgaG91aXRzdVwgOwor56CU56Oo5qmfIDwga2VubWFraVwgOwor5LiK5b25IDwgdXdheWFrdVwgOwor5aKX6aGNIDwgem91Z2FrdVwgOwor5LiA5oGvIDwgaGl0b2lraVwgOwor5Lmz5YmkIDwgbnl1dXphaVwgOwor5piO55m9IDwgbWVpaGFrdVwgOwor5aSn6ZuR5oqKIDwgb296YXBwYVwgOwor5LiL5bqnIDwgc2hpbW96YVwgOwor5Y+k5LqV5oi4IDwgZnVydWlkb1wgOwor5LiA5b+1IDwgaWNoaW5lblwgOwor5LiH5byVIDwgbWFuYmlraVwgOwor6IOD5r2w55iNIDwgaWthaXlvdVwgOwor54m555SjIDwgdG9rdXNhblwgOwor5pyo5Y+jIDwga2lndWNoaVwgOwor5LiA5b65IDwgaXR0ZXRzdVwgOwor6aGU5b25IDwga2FveWFrdVwgOwor57+75Yi7IDwgaG9ua29rdVwgOwor5LiJ5bm0IDwgc2FuJyduZW5cIDsKK+aXpeeriyA8IGhpdGFjaGlcIDsKK+aVkeiypyA8IGt5dXVoaW5cIDsKK+aWreiFuCA8IGRhbmNob3VcIDsKK+adj+S7gSA8IGt5b3VuaW5cIDsKK+S4h+W5tCA8IG1hbicnbmVuXCA7CivniannmoQgPCBidXR0ZWtpXCA7CivpmbjpoqggPCByaWt1ZnV1XCA7CivlpJrnvqnmgKcgPCB0YWdpc2VpXCA7CivkuIDlvI8gPCBpc3NoaWtpXCA7Civnirbms4EgPCBqb3VreW91XCA7CivnlJjpnLLnha4gPCBrYW5yb25pXCA7CivmlrDogZ4gPCBzaGluYnVuXCA7CivmnKzliYcgPCBob25zb2t1XCA7CivkuK3lpJYgPCBjaHV1Z2FpXCA7CivkuZnlpbPluqcgPCBvdG9tZXphXCA7CivlpbTnrYkgPCB5YXRzdXJhXCA7Civni6zmlq0gPCBkb2t1ZGFuXCA7CivoqbDosqwgPCBraXNzZWtpXCA7CivogJDkuYUgPCB0YWlreXV1XCA7Civpm6Poqq0gPCBuYW5kb2t1XCA7CivpoaflrqIgPCBrb2t5YWt1XCA7Civni6zmlocgPCBkb2t1YnVuXCA7Civkv53lrojmtL4gPCBob3NodWhhXCA7Civml5fnq78gPCBoYXRhemFvXCA7CivpnIrolqwgPCByZWl5YWt1XCA7CivmlZnoqJMgPCBreW91a3VuXCA7CivkuI3lsYggPCBmdWt1dHN1XCA7CivmnKjliIAgPCBib2t1dG91XCA7CivmlrDnvoUgPCBzaGlyYWdpXCA7CivlopfplbcgPCB6b3VjaG91XCA7CivmmoHmmJ8gPCBneW91c2VpXCA7Civpmbrpm6MgPCBrZW4nJ25hblwgOwor5Y+Z5LqL6KmpIDwgam9qaXNoaVwgOwor5LiK5bGlIDwgdXdhYmFraVwgOwor5pys5YWDIDwgaG9ubW90b1wgOwor5aSn5o6D6ZmkIDwgb29zb3VqaVwgOwor54OP6b6N6Iy2IDwgxatyb25jaGFcIDsKK+S4reWghSA8IGNodXVrZW5cIDsKK+Wkj+ialSA8IG5hdHN1Z29cIDsKK+Wls+eOi+ifuyA8IGpvb3VhcmlcIDsKK+WNiuavjemfsyA8IGhhbmJvaW5cIDsKK+S4ieWwuiA8IHNhbmpha3VcIDsKK+WkqeiNiSA8IHRlbmd1c2FcIDsKK+aciOWVhiA8IGdlc3Nob3VcIDsKK+eEoeaUv+W6nCA8IG11c2VpZnVcIDsKK+S4i+WuvyA8IGdlc2h1a3VcIDsKK+itsOaxuiA8IGdpa2V0c3VcIDsKK+S5seS9nCA8IHJhbnNha3VcIDsKK+S4i+WutiA8IHNoaXRheWFcIDsKK+eJm+eXmCA8IGd5dXV0b3VcIDsKK+eJqeeQhiA8IGJ1dHN1cmlcIDsKK+abtOWcsCA8IHNhcmFjaGlcIDsKK+eJm+eWqyA8IGd5dXVla2lcIDsKK+e+qeWSjOWboyA8IGdpd2FkYW5cIDsKK+acneWHqiA8IGFzYW5hZ2lcIDsKK+S4gOWwuiA8IGlzc2hha3VcIDsKK+eLrOaOoiA8IGRva3V0YW5cIDsKK+e3kemHjiA8IHJ5b2t1eWFcIDsKK+S4g+WunSA8IHNoaXBwb3VcIDsKK+aXp+ebpCA8IGt5dXViYW5cIDsKK+ips+inoyA8IHNob3VrYWlcIDsKK+Wlkee0hCA8IGtlaXlha3VcIDsKK+mbo+ihjCA8IG5hbmd5b3VcIDsKK+aciOWPjiA8IGdlc3NodXVcIDsKK+mbkeipsSA8IHphdHN1d2FcIDsKK+aXp+ebhiA8IGt5dXVib25cIDsKK+S4gOWuvyA8IGlzc2h1a3VcIDsKK+eEoemqqCA8IGJ1a290c3VcIDsKK+WlveS6i+WutiA8IGtvdXp1a2FcIDsKK+WjsuihjCA8IHVyZXl1a2lcIDsKK+mggeaVsCA8IHDEk2ppc3V1XCA7Civmlq3ntpogPCBkYW56b2t1XCA7Civpn7Pmm7IgPCBvbmd5b2t1XCA7CivkuIDlrZggPCBpY2hpem9uXCA7CivlpJXoj4UgPCB5dXVzdWdlXCA7Civmlr3nrZYgPCBzaGlzYWt1XCA7Civml6Xnmb0gPCBuaXBwYWt1XCA7CivlpKfohbggPCBkYWljaG91XCA7CivooYzngrrogIUgPCBrb3Vpc2hhXCA7CivniaLnjYQgPCByb3Vnb2t1XCA7CivniqzmqYcgPCBpbnV6b3JpXCA7CivkuI7lpaogPCB5b2RhdHN1XCA7CivmnKzkurogPCBob24nJ25pblwgOwor54af6KuHIDwganVrdWRhblwgOwor5qmf6Zai5bqrIDwga2lrYW5rb1wgOwor5qmf6Zai5bqnIDwga2lrYW56YVwgOwor54mh54yrIDwgb3N1bmVrb1wgOwor5pmp5pilIDwgYmFuc2h1blwgOwor54us5oi/IDwgZG9rdWJvdVwgOwor5paw57GzIDwgc2hpbm1haVwgOwor5pa5562WIDwgaG91c2FrdVwgOwor54qs5qeZIDwgaW51bWFraVwgOwor5pyo5LuPIDwga2lidXRzdVwgOwor5pep55WqIDwgaGF5YWJhblwgOwor5pys5Li4IDwgaG9ubWFydVwgOwor5pmp5pa5IDwgYmFuZ2F0YVwgOwor57mt57SsIDwga2VuY2h1dVwgOwor6Z2S56WoIDwgc2VpaHlvdVwgOwor54yb5bCGIDwgbW91c2hvdVwgOwor5ZCM5oSP6KaLIDwgZG91aWtlblwgOwor5LiI5aSrIDwgbWFzdXJhb1wgOwor5pyI5YipIDwgZ2V0c3VyaVwgOwor5pS56KizIDwga2FpeWFrdVwgOwor5aKX6YePIDwgem91cnlvdVwgOwor6Zu26JC9IDwgcmVpcmFrdVwgOwor5Li45Y2BIDwgbWFydWp1dVwgOwor6ZuG6KiIIDwgc2h1dWtlaVwgOwor6Kmx6KGTIDwgd2FqdXRzdVwgOwor54md54qsIDwgbWVzdWludVwgOwor54af6KanIDwganVrdXJhblwgOwor54af6KaWIDwganVrdXNoaVwgOwor6Z2i55uuIDwgbWVubW9rdVwgOwor54WO6Y2LIDwgaXJpbmFiZVwgOwor546E5Lq6IDwga3Vyb3V0b1wgOwor5pat566xIDwgZGFuYmFrb1wgOwor6K2w5LqL5aCCIDwgZ2lqaWRvdVwgOwor5aGr6ZqZIDwgdGVuZ2VraVwgOwor5LiK5aGXIDwgdXdhbnVyaVwgOwor5LiA5aaCIDwgaWNoaW55b1wgOwor5LiN5Z+SIDwgZnVyYWNoaVwgOwor57eK6L+rIDwga2lucGFrdVwgOwor5LiH5aKDIDwgYmFua3lvdVwgOwor6KuW562WIDwgcm9uc2FrdVwgOwor6Kiz6LyJIDwgeWFrdXNhaVwgOwor5piO5r6EIDwgbWVpY2hvdVwgOwor5LiA5aSnIDwgaWNoaWRhaVwgOwor6KmV6KuWIDwgaHlvdXJvblwgOwor6Kq/57e0IDwgY2hvdXJlblwgOwor5Lit5Y6fIDwgY2h1dWdlblwgOwor6Kqk6ISxIDwgZ29kYXRzdVwgOwor6Kqt6ICFIDwgZG9rdXNoYVwgOwor5aOy6JasIDwgYmFpeWFrdVwgOwor6LGG5LmzIDwgdG91bnl1dVwgOwor5LiA5aOwIDwgaGl0b2tvZVwgOwor5aSp57O455OcIDwgaGVjaGltYVwgOwor5L+d5a6J5p6XIDwgaG9hbnJpblwgOwor6IWQ6JGJ5ZyfIDwgZnV5b3Vkb1wgOwor5LiL5ZywIDwgc2hpdGFqaVwgOwor5aKX6YCyIDwgem91c2hpblwgOwor6Z2i55aUIDwgbWVuY2hvdVwgOwor6aCC5oi0IDwgY2hvdWRhaVwgOwor6KuW56m2IDwgcm9ua3l1dVwgOwor5paw56iOIDwgc2hpbnplaVwgOwor5rW36LGa5bqnIDwgaXJ1a2F6YVwgOwor5LiL5ZuzIDwgc2hpdGF6dVwgOwor6Ieq6KGb6ZqKIDwgamllaXRhaVwgOwor5pS56KGMIDwga2FpZ3lvdVwgOwor6Kqe6ISIIDwgZ29teWFrdVwgOwor57mK57at57SgIDwgc2VuJydpc29cIDsKK+S4ieWbvSA8IHNhbmdva3VcIDsKK+S4oeWQjSA8IHJ5b3VtZWlcIDsKK+maj+i6qyA8IHp1aXNoaW5cIDsKK+eEoembkSA8IG11emF0c3VcIDsKK+enu+ihjOaApyA8IGlrb3VzZWlcIDsKK+S4reWJjSA8IGNodXV6ZW5cIDsKK+imqum4niA8IHNoaW5yYW5cIDsKK+mbu+iEsyA8IGRlbicnbm91XCA7Civmua/mua/lqYYgPCB5dXRhbnBvXCA7CivkuK3liIYgPCBjaHV1YnVuXCA7CivntbbpoIIgPCB6ZXRjaG91XCA7CivpoJHlvLcgPCBnYW5reW91XCA7CivnuYvnuJsgPCBrZWliYWt1XCA7CivlpKrns7ggPCBmdXRvaXRvXCA7CivkuqTlsL7mnJ8gPCBrb3ViaWtpXCA7Civlp4vmpa0gPCBzaGlneW91XCA7CivkuIDlm6MgPCBpY2hpZGFuXCA7Civml6nnhp8gPCBzb3VqdWt1XCA7CivoqofoibIgPCBrb3Nob2t1XCA7CivoqJfpgIEgPCB0YWt1c291XCA7Civpm4zomIIgPCBtZXNoaWJlXCA7CivpoIblv5wgPCBqdW4nJ25vdVwgOwor6Zm46YCBIDwgcmlrdXNvdVwgOwor5pyI5LqLIDwgZ2V0c3VqaVwgOwor6Kaq6bOlIDwgb3lhZG9yaVwgOwor54m55q61IDwgdG9rdWRhblwgOwor5Lih5YmNIDwgcnlvdW1hZVwgOwor5aSn57KSIDwgb290c3VidVwgOwor6KiT6L+qIDwga3VudGVraVwgOwor6Zm256OB5ZmoIDwgdG91amlraVwgOwor54m55q6KIDwgdG9rdXNodVwgOwor5aKD6YGHIDwga3lvdWd1dVwgOwor6Kmm6JasIDwgc2hpeWFrdVwgOwor6YeN6aas5aC0IDwgb21vYmFiYVwgOwor6KmQ6KGTIDwgc2FqdXRzdVwgOwor5Lih5YiGIDwgcnlvdWJ1blwgOwor5q2z5pmC6KiYIDwgc2FpamlraVwgOwor6Zi/5aSa56aPIDwgb3RhZnVrdVwgOwor5LiN5ZCJIDwgZnVraXRzdVwgOwor5LiK5ZGKIDwgam91a29rdVwgOwor5b6h56+A5LuLIDwgb3Nla2thaVwgOwor6Zm46LuNIDwgcmlrdWd1blwgOwor5Lqc6bq75LuB5rK5IDwgYW1hbml5dVwgOwor5paw55ukIDwgc2hpbmJhblwgOwor6Z+75b6LIDwgaW5yaXRzdVwgOwor5pq05ZynIDwgYm91YXRzdVwgOwor6Kix6Ku+IDwga3lvZGFrdVwgOwor54iG56CVIDwgYmFrdXNhaVwgOwor5Lih5YOPIDwgcnlvdXpvdVwgOwor54uC5oWLIDwga3lvdXRhaVwgOwor5am/5YWlIDwgbXVrb2lyaVwgOwor6Kiz6KmpIDwgeWFrdXNoaVwgOwor6Zui6ISxIDwgcmlkYXRzdVwgOwor5piH5q61IDwgc2hvdWRhblwgOwor54mn5rCRIDwgYm9rdW1pblwgOwor5aSp56qTIDwgdGVubWFkb1wgOwor5LiA5ZG9IDwgaWNoaW1laVwgOwor5pWZ6IKyIDwga3lvdWlrdVwgOwor5LiA5ZGzIDwgaGl0b2FqaVwgOwor5aSx56aBIDwgc2hpa2tpblwgOwor57eP6KmVIDwgc291aHlvdVwgOwor5aaZ5rOVIDwgbXlvdWhvdVwgOwor6Kaq6aqoIDwgb3lhYm9uZVwgOwor5pu45LitIDwgc2hvY2h1dVwgOwor5LiH5Y2aIDwgYmFucGFrdVwgOwor55Wq5bCP5bGLIDwgYmFuZ295YVwgOwor6Z+z5b6LIDwgb25yaXRzdVwgOwor5LiL5YqjIDwgZ2VyZXRzdVwgOwor5oSb54qs5a62IDwgYWlrZW5rYVwgOwor5LiJ5YqpIDwgc2Fuc3VrZVwgOwor5Lih5L6/IDwgcnlvdWJlblwgOwor6IC9576O5rS+IDwgdGFuYmloYVwgOwor5pil5pysIDwgc2h1bnBvblwgOwor5LiD5Y2BIDwgbmFuYWp1dVwgOwor6Ka/6Z2iIDwgdGVraW1lblwgOwor5LiH5YqbIDwgbWFucmlraVwgOwor5LiB5Y2KIDwgY2hvdWhhblwgOwor5aSn56aPIDwgZGFpZnVrdVwgOwor5aSp56WQIDwgdGVuJyd5dXVcIDsKK+aYqOaZqSA8IHNha3ViYW5cIDsKK+S/neiCsuaJgCA8IGhvaWt1am9cIDsKK+aZqeW5tCA8IGJhbicnbmVuXCA7CivnhafopqcgPCBzaG91cmFuXCA7Civnt4ropoEgPCBraW4nJ3lvdVwgOwor5aao5qWtIDwgYm91Z3lvdVwgOwor5Lih5Lq6IDwgcnlvdW5pblwgOwor6Kaz6Z+zIDwga2FuJydub25cIDsKK+aZguaKmCA8IHRva2lvcmlcIDsKK+mBiumbouWfuiA8IHl1dXJpa2lcIDsKK+aSsOmMsiA8IHNlbnJva3VcIDsKK+S6kuWKqeS8miA8IGdvam9rYWlcIDsKK+aUueiJryA8IGthaXJ5b3VcIDsKK+aWveeJqSA8IHNlbW90c3VcIDsKK+Wlrua/gCA8IGZ1bmdla2lcIDsKK+S4oeS4iSA8IHJ5b3VzYW5cIDsKK+mbu+eulyA8IGRlbnNvcm9cIDsKK+e1kOmcsiA8IGtldHN1cm9cIDsKK+aVmee3tCA8IGt5b3VyZW5cIDsKK+S4iuWBtCA8IHV3YWdhd2FcIDsKK+WnpuaCqiA8IGthbicnYWt1XCA7Civoo5zliqnnt5ogPCBob2pvc2VuXCA7Civop5LpjJAgPCBrYWt1c3VpXCA7CivntZDpm4YgPCBrZXNzaHV1XCA7CivkuIvlgKQgPCBzaGl0YW5lXCA7CivlpbPmua8gPCBvbicnbmF5dVwgOwor5LiA5YWDIDwgaWNoaWdlblwgOwor576F5YiXIDwgcmFyZXRzdVwgOwor5pqW5Zu9IDwgZGFua29rdVwgOwor5LqL5YuZ5omAIDwgamltdXNob1wgOwor6Zmz6KydIDwgY2hpbnNoYVwgOwor5LiA5YSEIDwgaWNoaW9rdVwgOwor6KiT6KqtIDwga3VuZG9rdVwgOwor54ib54afIDwgcmFuanVrdVwgOwor5piO5pydIDwgbWluY2hvdVwgOwor6KiX6KiAIDwgdGFrdWdlblwgOwor6aCY5Z+fIDwgcnlvdWlraVwgOwor6KiA6LKsIDwgZ2Vuc2VraVwgOwor5L+d6K236YeRIDwgaG9nb2tpblwgOwor5aSq55m9IDwgdGFpaGFrdVwgOwor54m55peoIDwgdG9rdXNoaVwgOwor5aSp55qHIDwgdGVuJydub3VcIDsKK+aVsOenkiA8IHN1dWJ5b3VcIDsKK+aVo+etliA8IHNhbnNha3VcIDsKK+S4h+S9nCA8IG1hbnNha3VcIDsKK+aYjuaZsCA8IG1laXNla2lcIDsKK+aZqeWtpiA8IGJhbmdha3VcIDsKK+aYjuaZqSA8IG15b3ViYW5cIDsKK+S4gOWAjSA8IGljaGliYWlcIDsKK+e1gumbuyA8IHNodXVkZW5cIDsKK+aXpeaspyA8IG5pY2hpb3VcIDsKK+aYjuaYnyA8IG15b3Vqb3VcIDsKK+S4ieS6uiA8IHNhbicnbmluXCA7CivnuKbnrJsgPCB0YXRlYnVlXCA7Civpm4bnvqQgPCBzaHV1Z3VuXCA7CivkuIfkurogPCBtYW4nJ25pblwgOwor5aSn55eFIDwgdGFpYnlvdVwgOwor6I+T5a2Q5ZmoIDwga2FzaGlraVwgOwor6aCt5Y+WIDwgdG91ZG9yaVwgOwor6Zuo56ygIDwgYW1hZ2FzYVwgOwor57im56m0IDwgdGF0ZWFuYVwgOwor5LiA5Lu7IDwgaWNoaW5pblwgOwor5aSn55S3IDwgb29vdG9rb1wgOwor572w5YmHIDwgYmFzc29rdVwgOwor6ZyH55uqIDwgc2hpbnRvdVwgOwor6ZyK55qEIDwgcmVpdGVraVwgOwor5oSb5aa75a62IDwgYWlzYWlrYVwgOwor5aSW55u4IDwgZ2Fpc2hvdVwgOwor5aSa55m6IDwgdGFoYXRzdVwgOwor6Zuo56m6IDwgYW1hem9yYVwgOwor54S26Ku+IDwgemVuZGFrdVwgOwor6Kmu57SiIDwgc2Vuc2FrdVwgOwor5pWj56WoIDwgc2FucHlvdVwgOwor6aSK54i25q+NIDwgeW91ZnVib1wgOwor57e057+SIDwgcmVuc2h1dVwgOwor6KmV6ICFIDwgaHlvdXNoYVwgOwor54af57e0IDwganVrdXJlblwgOwor5aSW55qEIDwgZ2FpdGVraVwgOwor6Zqc5rOl54OP6LOKIDwgYW9yaWlrYVwgOwor54us5ZaEIDwgZG9rdXplblwgOwor5aSP552AIDwgbmF0c3VnaVwgOwor5aSp55CDIDwgdGVua3l1dVwgOwor6LW36Zu75qmfIDwga2lkZW5raVwgOwor5aa75oi4IDwgdHN1bWFkb1wgOwor5LqM5q275b6MIDwgbmlzaGlnb1wgOwor5paR54yrIDwgaGFubXlvdVwgOwor5pmL5bGxIDwgc2hpbnphblwgOwor5peL5q+bIDwgdHN1bXVqaVwgOwor5aCx6YWsIDwgaG91c2h1dVwgOwor6JGJ54mh5Li5IDwgaGFib3RhblwgOwor5bey54S25b2iIDwgaXplbmtlaVwgOwor54OI6ZyHIDwgcmVzc2hpblwgOwor5pil5oOFIDwgc2h1bmpvdVwgOwor57es576KIDwgbWVuJyd5b3VcIDsKK+e4n+ekvCA8IGpva3VyZWlcIDsKK+Wkp+eNhCA8IHRhaWdva3VcIDsKK+eLguWllCA8IGt5b3Vob25cIDsKK+WiqOiJsiA8IHN1bWlpcm9cIDsKK+e3j+iKsSA8IHNvdWJhbmFcIDsKK+aVpuedpiA8IHRvbmJva3VcIDsKK+Wkp+imj+aooSA8IGRhaWtpYm9cIDsKK+eLrOWQnyA8IGRva3VnaW5cIDsKK+WFt+S9k+WMliA8IGd1dGFpa2FcIDsKK+imhumdoiA8IGZ1a3VtZW5cIDsKK+e5lOeJqSA8IG9yaW1vbm9cIDsKK+S/neWuieWumCA8IGhvYW5rYW5cIDsKK+aXp+adpSA8IGt5dXVyYWlcIDsKK+aXp+adkSA8IGt5dXVzb25cIDsKK+mHjueNo+a0viA8IHlhanV1aGFcIDsKK+eLrOWNoCA8IGRva3VzZW5cIDsKK+mbu+S9jeW3riA8IGRlbicnaXNhXCA7Civml6XmnJ0gPCBuaXRjaG91XCA7CivlpoLmnIggPCBuaWdhdHN1XCA7CivlpLHngrkgPCBzaGl0dGVuXCA7Civpm5HnqYAgPCB6YWtrb2t1XCA7CivopZ/pq6ogPCBlcmlnYW1pXCA7Civopqrph4wgPCBveWF6YXRvXCA7Civnhafoh6ggPCBzaG91cmluXCA7Civml6nmmKUgPCBzb3VzaHVuXCA7CivmmKjlubQgPCBzYWt1bmVuXCA7CivlpKnnhLYgPCB0ZW4nJ25lblwgOwor5aWl5qeYIDwgb2t1c2FtYVwgOwor5pel5pmCIDwgbmljaGlqaVwgOwor57eR6IKlIDwgcnlva3VoaVwgOwor6Z2e5a++5b+cIDwgaGl0YWlvdVwgOwor6JOW6bq75a2QIDwgaGltYXNoaVwgOwor6KO45L2T55S7IDwgcmF0YWlnYVwgOwor6aCY5YaFIDwgcnlvdW5haVwgOwor5LqL5YuZ5a6YIDwgamltdWthblwgOwor6Zu755CDIDwgZGVua3l1dVwgOwor54mH5pa5IDwga2F0YWhvdVwgOwor6Kiz6ICFIDwgeWFrdXNoYVwgOwor54m55b6FIDwgdG9rdXRhaVwgOwor6LW36Ki054q2IDwga2lzb2pvdVwgOwor6KWf6aaWIDwgZXJpa3ViaVwgOwor5aWq5qC8IDwgZGFra2FrdVwgOwor6YeO5pqu55SoIDwgeWFib3lvdVwgOwor5pW154q2IDwgdGVraWpvdVwgOwor5pKD6YCAIDwgZ2VraXRhaVwgOwor54Sh54Gv54GrIDwgbXV0b3VrYVwgOwor6Zuj55mWIDwgbmFua3VzZVwgOwor5pil5bWQIDwgc2h1bnJhblwgOwor6KWy6Zu3IDwgc2h1dXJhaVwgOwor5aaZ5omAIDwgbXlvdXNob1wgOwor5piO5b6zIDwgbWVpdG9rdVwgOwor6Zuj55eHIDwgbmFuc2hvdVwgOwor6Zuj55eFIDwgbmFuYnlvdVwgOwor54Sh6KGAIDwgbXVrZXRzdVwgOwor54Sh6KiY5ZCNIDwgbXVraW1laVwgOwor5piU5bm0IDwgc2VraW5lblwgOwor54KS6aOvIDwgY2hhYWhhblwgOwor6KqY54iGIDwgeXV1YmFrdVwgOwor5aSW54K6IDwgZ2FpdGFtZVwgOwor6ZyH54G9IDwgc2hpbnNhaVwgOwor5pil5a+SIDwgc2h1bmthblwgOwor54iG5q27IDwgYmFrdXNoaVwgOwor6YO96K2w6YG4IDwgdG9naXNlblwgOwor57ay6IacIDwgbW91bWFrdVwgOwor54af55+lIDwganVrdWNoaVwgOwor5piO5bm0IDwgbXlvdW5lblwgOwor5aSp5ribIDwgdGVuYmlraVwgOwor5L+d6IKy5ZySIDwgaG9pa3VlblwgOwor5aeJ5am/IDwgYW5lbXVrb1wgOwor57WC6LuKIDwgc2h1dXNoYVwgOwor57K+6bqmIDwgc2VpYmFrdVwgOwor54af552hIDwganVrdXN1aVwgOwor57ir54mpIDwgbnVpbW9ub1wgOwor57eK57ibIDwga2luYmFrdVwgOwor54af55ygIDwganVrdW1pblwgOwor5L+d6IKy5ZmoIDwgaG9pa3VraVwgOwor5aKo57O4IDwgc3VtaWl0b1wgOwor6Zmw6IazIDwga2FnZXplblwgOwor6Kmp55qEIDwgc2hpdGVraVwgOwor5pif5a2mIDwgc2VpZ2FrdVwgOwor5oSb5aW95a62IDwgYWlrb3VrYVwgOwor6Z2S5pilIDwgc2Vpc2h1blwgOwor5pqH5Lq6IDwgaGltYWppblwgOwor6Z+z5YqbIDwgb25yeW9rdVwgOwor54K66YqAIDwgdGFtZWdpblwgOwor6KiT6IKyIDwga3VuJydpa3VcIDsKK+WlpeaWuSA8IG9rdWdhdGFcIDsKK+eLqeS6uiA8IGthcnl1ZG9cIDsKK+e0r+mAsiA8IHJ1aXNoaW5cIDsKK+eEvOiKiyA8IHlha2lpbW9cIDsKK+WnlOS7u+eKtiA8IGluaW5qb3VcIDsKK+mZquiHoyA8IGJhaXNoaW5cIDsKK+eJp+W4qyA8IGJva3VzaGlcIDsKK+W+oeaKq+mcsuebriA8IG9oaXJvbWVcIDsKK+aWsOahiCA8IHNoaW4nJ2FuXCA7Civpmo7ntJogPCBrYWlreXV1XCA7CivnibnlrpogPCB0b2t1dGVpXCA7CivnlKjlmajnlLsgPCB5b3VraWdhXCA7CivmmKjlpJUgPCBzYWt1eXV1XCA7CivpmrvnnLwgPCBzZWtpZ2FuXCA7Civkv53ppIrmiYAgPCBob3lvdWpvXCA7Civlrrbluq3np5EgPCBrYXRlaWthXCA7CivlopfntaYgPCB6b3VreXV1XCA7CivkuI3lkI3oqokgPCBmdW1laXlvXCA7Civml6fmgqogPCBreXV1YWt1XCA7CivmlbDmu7QgPCBzdXV0ZWtpXCA7Civntr7ntbkgPCBheWFnaW51XCA7CivntKLpgZMgPCBzYWt1ZG91XCA7CivntZDoqp4gPCBrZXRzdWdvXCA7CivlpbPmiYsgPCBvbicnbmFkZVwgOwor54ax54uCIDwgbmVra3lvdVwgOwor5aWz5oi/IDwgbnlvdWJvdVwgOwor5aSW5rW3IDwgc290b3VtaVwgOwor5aSn5qyyIDwgdGFpeW9rdVwgOwor57WQ6KiXIDwga2V0dGFrdVwgOwor5aSW5rOKIDwgZ2FpaGFrdVwgOwor6KaG6LyqIDwgZnVrdXJpblwgOwor5pW05rWBIDwgc2Vpcnl1dVwgOwor6aCC5LiKIDwgY2hvdWpvdVwgOwor5LqU6Lyq5peXIDwgZ29yaW5raVwgOwor54ax54eXIDwgYXRzdWthblwgOwor5pel5b2TIDwgaGlhdGFyaVwgOwor57Og6ZuoIDwgbnVrYWFtZVwgOwor5pen5byKIDwga3l1dWhlaVwgOwor54m55aSnIDwgdG9rdWRhaVwgOwor6Kaq6KixIDwgb3lhbW90b1wgOwor5pil5Z2KIDwgaGFydWJvdVwgOwor5L2c5qWt6KGjIDwgc2FneW91aVwgOwor6Kmr54q2IDwgd2FiaWpvdVwgOwor6Zu75rWBIDwgZGVucnl1dVwgOwor5pyo5oi46YqtIDwga2lkb3NlblwgOwor54m55aOyIDwgdG9rdWJhaVwgOwor6ICz5LiL6IW6IDwgamlrYXNlblwgOwor54Sh6ImyIDwgbXVzaG9rdVwgOwor6KuW5pW1IDwgcm9udGVraVwgOwor5a625bqt552AIDwga2F0ZWlnaVwgOwor6ZuA55CDIDwgamFua3l1dVwgOwor5paH5qeYIDwgbW9uJyd5b3VcIDsKK+Wkp+alrSA8IHRhaWd5b3VcIDsKK+aXheaJgCA8IHRhYmlzaG9cIDsKK+ezuOmLuCA8IGl0b25va29cIDsKK+WklumZsOmDqCA8IGdhaWluYnVcIDsKK+eJueWgsSA8IHRva3Vob3VcIDsKK+aWh+alvSA8IGJ1bnJha3VcIDsKK+eEoeiFsCA8IG11Z29zaGlcIDsKK+mdouW9sSA8IG9tb2thZ2VcIDsKK+eFmeeqgSA8IGVudG90c3VcIDsKK+Wik+eptCA8IGJva2V0c3VcIDsKK+WSjOiPk+WtkCA8IHdhZ2FzaGlcIDsKK+iqv+abuCA8IGNob3VzaG9cIDsKK+mdqeW4ryA8IGthd2FvYmlcIDsKK+aXheaEgSA8IHJ5b3NodXVcIDsKK+iHquWcqOeUuyA8IGppemFpZ2FcIDsKK+ino+iEsSA8IGdlZGF0c3VcIDsKK+aYvOWJjSA8IGhpcnVtYWVcIDsKK+e2mue3qCA8IHpva3VoZW5cIDsKK+iAlemBi+apnyA8IGtvdXVua2lcIDsKK+eGsea8lCA8IG5ldHN1ZW5cIDsKK+mbqua0niA8IGJvbmJvcmlcIDsKK+e3j+edoyA8IHNvdXRva3VcIDsKK+S4gOWbnuW/jCA8IGlra2Fpa2lcIDsKK+mWk+mamSA8IGthbmdla2lcIDsKK+S4jeWPr+inoyA8IGZ1a2FrYWlcIDsKK+mdtOWxiyA8IGt1dHN1eWFcIDsKK+aWjuacjSA8IHNhaWZ1a3VcIDsKK+aXp+WxhSA8IGt5dXVreW9cIDsKK+S4jeWPr+imliA8IGZ1a2FzaGlcIDsKK+Wkp+acqCA8IHRhaWJva3VcIDsKK+WfjumDrSA8IGpvdWtha3VcIDsKK+mZuOeosiA8IHJpa3V0b3VcIDsKK+e3j+eQhuW6nCA8IHNvdXJpZnVcIDsKK+WkseaVrCA8IHNoaWtrZWlcIDsKK+mWi+mZsyA8IGthaWNoaW5cIDsKK+WkseaVlyA8IHNoaXBwYWlcIDsKK+Wlh+aKnCA8IGtpYmF0c3VcIDsKK+S6jOWIhuacqCA8IG5pYnVuZ2lcIDsKK+WkseaUvyA8IHNoaXNzZWlcIDsKK+iojueptiA8IHRvdWt5dXVcIDsKK+mciuafqSA8IHJlaWt5dXVcIDsKK+iqreacrCA8IGRva3Vob25cIDsKK+mYsuiHrSA8IGJvdXNodXVcIDsKK+iqreabuCA8IGRva3VzaG9cIDsKK+eKr+S6uiA8IGhhbicnbmluXCA7CivlpaXluq0gPCBva3VuaXdhXCA7CivlporlqKAgPCBuaW5zaGluXCA7CivlpaXlupUgPCBva3V6b2tvXCA7CivniaflnLAgPCBib2t1Y2hpXCA7CivluoPovp7oi5EgPCBrb3VqaWVuXCA7Civnt6jniakgPCBhbWltb25vXCA7CivlpKnmlbUgPCB0ZW50ZWtpXCA7CivpnIrmnKggPCByZWlib2t1XCA7CivlpJzmm7IgPCB5YWt5b2t1XCA7Civnt4/nlLsgPCBzb3VrYWt1XCA7CivlpJrmlbDmtL4gPCB0YXN1dWhhXCA7CivpmaPnrKAgPCBqaW5nYXNhXCA7Civpmobnm5sgPCByeXV1c2VpXCA7CivoqZXngrkgPCBoeW91dGVuXCA7Civkv53orbfogIUgPCBob2dvc2hhXCA7CivlpJzplpPpg6ggPCB5YWthbmJ1XCA7CivmlofmlZkgPCBidW5reW91XCA7CivnlZnlrojpm7sgPCBydXN1ZGVuXCA7CivlpInmooMgPCBoZW50ZWtvXCA7CivnsbPpuqYgPCBiZWliYWt1XCA7CivntLDonrogPCBraXNoYWdvXCA7CivnhrHmsJcgPCBuZXRzdWtlXCA7CivmmKjlhqwgPCBzYWt1dG91XCA7CivmmKXliIYgPCBzaHVuYnVuXCA7Civplbfpm6ggPCBuYWdhYW1lXCA7Civml6flpZcgPCBreXV1dG91XCA7Civoqp7mnKsgPCBnb21hdHN1XCA7Civns6fpgZMgPCByeW91ZG91XCA7CivmjoPpmaTmqZ8gPCBzb3VqaWtpXCA7CivopZ/otrMgPCBlcmlhc2hpXCA7CivorLnlkYogPCBraW5rb2t1XCA7Civkuovli5nkvJogPCBqaW11a2FpXCA7Civmlq3lv7UgPCBkYW4nJ25lblwgOwor5pel5aScIDwgbmljaGl5YVwgOwor5pel5aSVIDwgbmlzc2VraVwgOwor5pil5YWJIDwgc2h1bmtvdVwgOwor5pS+5rWBIDwgaG91cnl1dVwgOwor6ZyH5pemIDwgc2hpbnRhblwgOwor5aWl5bGxIDwgb2t1eWFtYVwgOwor6Z2Z5a+CIDwgc2VpamFrdVwgOwor5LqL5YmN5b6MIDwgaml6ZW5nb1wgOwor6I+p5o+Q5qi5IDwgYm9kYWlqdVwgOwor54Gr6YmiIDwgaGliYWNoaVwgOwor57W257iBIDwgemV0c3VlblwgOwor5aSV5pa5IDwgeXV1Z2F0YVwgOwor57KX6aOfIDwgc29zaG9rdVwgOwor6LKd54us5qW9IDwgYmFpZ29tYVwgOwor5aKD55uuIDwgc2FrYWltZVwgOwor54Sh6Ziy5YKZIDwgbXVib3ViaVwgOwor5LiN5oCd6K2wIDwgZnVzaGlnaVwgOwor5peF5a6iIDwgcnlva2FrdVwgOwor5LiN56mP5b2TIDwgZnVvbnRvdVwgOwor5pit5LujIDwgc2hvdWRhaVwgOwor54Sh562GIDwgbXVoaXRzdVwgOwor5aSx5oWLIDwgc2hpdHRhaVwgOwor57WQ6IW4IDwga2V0Y2hvdVwgOwor54m55YW4IDwgdG9rdXRlblwgOwor5Y+v5aGR5p2QIDwga2Fzb3phaVwgOwor5aSx5oSPIDwgc2hpdHN1aVwgOwor54iG5by+IDwgYmFrdWRhblwgOwor54m55YWNIDwgdG9rdW1lblwgOwor5pSv5rWBIDwgc2hpcnl1dVwgOwor5o+a6Zm4IDwgeW91cmlrdVwgOwor6Kaq6Ii5IDwgb3lhYnVuZVwgOwor6Zm455SjIDwgcmlrdXNhblwgOwor6Zm455SfIDwgcmlrdXNlaVwgOwor6Z2i5aOBIDwgbWVucGVraVwgOwor5o6i6bOlIDwgdGFuY2hvdVwgOwor57SE6KiAIDwgeWFrdWdlblwgOwor5qKz57a/5qmfIDwgc29tZW5raVwgOwor57KX6ZuRIDwgc296YXRzdVwgOwor54Sh5omL6aCGIDwgbXV0ZWp1blwgOwor6Zu75pKDIDwgZGVuZ2VraVwgOwor5pWZ5pu4IDwga3lvdXNob1wgOwor6ZaT6L+RIDwgbWFkamlrYVwgOwor5paw5bGFIDwgc2hpbmt5b1wgOwor57S66ImyIDwga29uJydpcm9cIDsKK+e2meebriA8IHRzdWdpbWVcIDsKK+mbt+aSgyA8IHJhaWdla2lcIDsKK+WwvueKtuiKsSA8IGJpam91a2FcIDsKK+WhvueUnyA8IGp1a3VzZWlcIDsKK+iqv+W8piA8IGNob3VnZW5cIDsKK+eHg+aWmSA8IG5lbnJ5b3VcIDsKK+maoOa7hSA8IGlubWV0c3VcIDsKK+Wkp+aBryA8IHRhaXNva3VcIDsKK+mbhuaoqSA8IHNodXVrZW5cIDsKK+S+v+WIqeWxiyA8IGJlbnJpeWFcIDsKK+mWi+mAmiA8IGthaXRzdXVcIDsKK+mZo+eXmyA8IGppbnRzdXVcIDsKK+WkluaImiA8IGdhaXNla2lcIDsKK+e2sueMnyA8IGFtaXJ5b3VcIDsKK+aVteaJiyA8IHRla2lzaHVcIDsKK+Wkp+W+syA8IGRhaXRva3VcIDsKK+mbouaXpSA8IHJpbmljaGlcIDsKK+eyvumAsiA8IHNob3VqaW5cIDsKK+S6iOefpeWkoiA8IHlvY2hpbXVcIDsKK+eyvumAmiA8IHNlaXRzdXVcIDsKK+eFieeNhCA8IHJlbmdva3VcIDsKK+W+oeelnuexpCA8IG9taWt1amlcIDsKK+iruOWbvSA8IHNob2tva3VcIDsKK+aXp+WQjSA8IGt5dXVtZWlcIDsKK+aYoOWGmeapnyA8IGVpc2hha2lcIDsKK+mbo+aVtSA8IG5hbnRla2lcIDsKK+S/neitt+eojiA8IGhvZ296ZWlcIDsKK+eAnemdkiA8IHJla2lzZWlcIDsKK+WPmeS6i+aWhyA8IGpvamlidW5cIDsKK+aXp+WPiyA8IGt5dXV5dXVcIDsKK+e1kOe4gSA8IGtlY2hpZW5cIDsKK+iinum+jSA8IGtvbnJ5b3VcIDsKK+aWsOWpmiA8IHNoaW5rb25cIDsKK+iLseS8muipsSA8IGVpa2Fpd2FcIDsKK+aWh+W8sSA8IGJ1bmpha3VcIDsKK+aXpeWPjiA8IG5pc3NodXVcIDsKK+S4jeWPr+iDvSA8IGZ1a2Fub3VcIDsKK+mbkeacqCA8IHpvdWJva3VcIDsKK+iqrOW+lyA8IHNldHRva3VcIDsKK+aYoOeUu+mkqCA8IGVpZ2FrYW5cIDsKK+mdluWbvSA8IHNlaWtva3VcIDsKK+WkqeW5lSA8IHRlbm1ha3VcIDsKK+mWsuimpyA8IGV0c3VyYW5cIDsKK+mdqeWRvSA8IGtha3VtZWlcIDsKK+e5lOW4gyA8IHNob2t1ZnVcIDsKK+aXpeWNsCA8IG5pY2hpaW5cIDsKK+e5iuW8sSA8IHNlbmpha3VcIDsKK+e0sOiFlSA8IGhvc291ZGVcIDsKK+mbtuaIpiA8IHplcm9zZW5cIDsKK+immuiAhSA8IGtha3VzaGFcIDsKK+e1hOe5lCA8IHNvc2hpa2lcIDsKK+isrOS8nSA8IGJ5dXVkZW5cIDsKK+iqmOaDkSA8IHl1dXdha3VcIDsKK+eJp+S6uiA8IGJva3VqaW5cIDsKK+mVt+i+uiA8IGNob3VoZW5cIDsKK+mciuW7nyA8IHJlaWJ5b3VcIDsKK+ipruaWuSA8IHNlbmthdGFcIDsKK+eJh+WJjSA8IGthdGFtYWVcIDsKK+miqOmbsuWFkCA8IGZ1dXVuamlcIDsKK+Wegui/uSA8IHN1aWpha3VcIDsKK+WiqOaxgSA8IGJva3VqdXVcIDsKK+aUueaapiA8IGthaXJla2lcIDsKK+mYquelniA8IGhhbnNoaW5cIDsKK+aVteW8viA8IHRla2lkYW5cIDsKK+mWgOi3oSA8IG1vbnpla2lcIDsKK+eyl+mHkSA8IGFyYWdhbmVcIDsKK+imquexsyA8IHNoaW5iZWlcIDsKK+aVj+aNtyA8IGJpbnNob3VcIDsKK+eJiOWFgyA8IGhhbm1vdG9cIDsKK+alleWGhuW9oiA8IGRhZW5rZWlcIDsKK+imi+e/kiA8IG1pbmFyYWlcIDsKK+aWsOWcsCA8IHNoaW5jaGlcIDsKK+aUvuaTsiA8IGhvdXRla2lcIDsKK+a8lOWlj+WutiA8IGVuc291a2FcIDsKK+aVt+W4gyA8IHNoaWtpZnVcIDsKK+eJm+S4vCA8IGd5dXVkb25cIDsKK+inkuebhiA8IGtha3Vib25cIDsKK+iplOabuCA8IHNob3VzaG9cIDsKK+Wkp+WtpiA8IGRhaWdha3VcIDsKK+WPr+WhkeaApyA8IGthc29zZWlcIDsKK+WjgeadvyA8IGthYmVpdGFcIDsKK+iiq+mZpOaVsCA8IGhpam9zdXVcIDsKK+aWh+WtpiA8IGJ1bmdha3VcIDsKK+aUu+aSgyA8IGtvdWdla2lcIDsKK+S6jOasoeWFgyA8IG5pamlnZW5cIDsKK+e3keaouSA8IHJ5b2t1anVcIDsKK+eIquWNsCA8IHRzdW1laW5cIDsKK+aJi+aWh+W6qyA8IHRlYnVua29cIDsKK+aXp+S+iyA8IGt5dXVyZWlcIDsKK+eznuidvyA8IGt1c29iYWVcIDsKK+S4gOeuh+aJgCA8IGlra2FzaG9cIDsKK+S6iOWCmemaiiA8IHlvYml0YWlcIDsKK+eWkeWVj+espiA8IGdpbW9uZnVcIDsKK+e5lOWnqyA8IG9yaWhpbWVcIDsKK+e0heiJsiA8IGJlbmlpcm9cIDsKK+mZuOa1tyA8IHJpa3VrYWlcIDsKK+e1guerryA8IHNodXV0YW5cIDsKK+inkueVqiA8IGthZG9iYW5cIDsKK+WbuuWumuiyuyA8IGtvdGVpaGlcIDsKK+eyvuiqrSA8IHNlaWRva3VcIDsKK+e5lOWlsyA8IHNob2t1am9cIDsKK+aXpeS7mCA8IGhpZHp1a2VcIDsKK+eGseaEmyA8IG5ldHN1YWlcIDsKK+Wig+a2ryA8IGt5b3VnYWlcIDsKK+mcnOWknCA8IHNoaW1veW9cIDsKK+Wls+WCkSA8IGpva2V0c3VcIDsKK+WkqeWlsyA8IHRlbicnbnlvXCA7Civop5Lnk7YgPCBrYWt1YmluXCA7CivntKHnuL4gPCBib3VzZWtpXCA7Civml6fkuLsgPCBreXV1c2h1XCA7CivlpKflpbMgPCBvb29uJyduYVwgOwor5pW15a++IDwgdGVraXRhaVwgOwor6KiI5risIDwga2Vpc29rdVwgOwor5paw5ZOBIDwgc2hpbnBpblwgOwor5piO5rK75bqnIDwgbWVpaml6YVwgOwor55CG5oOz5a62IDwgcmlzb3VrYVwgOwor54Sh54axIDwgbXVuZXRzdVwgOwor5Zyf5aOH5aC0IDwgZG90YW5iYVwgOwor5LqM5qyh5LyaIDwgbmlqaWthaVwgOwor57eP5qGQIDwgc291Z2lyaVwgOwor6KuW5ZGKIDwgcm9ua29rdVwgOwor54ax5b+DIDwgbmVzc2hpblwgOwor5aWJ5ZGKIDwgaG91a29rdVwgOwor5aSx5ZywIDwgc2hpdGNoaVwgOwor576p5YuZ5oSfIDwgZ2ltdWthblwgOwor5pWw5a2mIDwgc3V1Z2FrdVwgOwor5pKD56CVIDwgZ2VraXNhaVwgOwor6Kqt5aOyIDwgeW9taXVyaVwgOwor5o6Y6ZG/IDwga3Vzc2FrdVwgOwor6Zu55a6zIDwgaHlvdWdhaVwgOwor57eP5p+EIDwgc291Z2FyYVwgOwor6ZyK5aaZIDwgcmVpbXlvdVwgOwor5LiJ5Y+J6LevIDwgc2Fuc2Fyb1wgOwor5aSJ5a65IDwgaGVuJyd5b3VcIDsKK+aXheWDpyA8IHRhYmlzb3VcIDsKK+eGn+aFriA8IGp1a3VyeW9cIDsKK+eCjuiJsiA8IGVuc2hva3VcIDsKK+ios+acrCA8IHlha3Vob25cIDsKK+WiqOabuCA8IGJva3VzaG9cIDsKK+e0m+ezviA8IGZ1bmt5dXVcIDsKK+aOqOmHjyA8IHN1aXJ5b3VcIDsKK+aSnueQgyA8IGRvdWt5dXVcIDsKK+WkmeWknCA8IHNodWt1eWFcIDsKK+eGseW6piA8IG5ldHN1ZG9cIDsKK+mch+WkriA8IHNoaW4nJ291XCA7Civms6LluIPojLYgPCBoYWJ1Y2hhXCA7CivntK/nqY0gPCBydWlzZWtpXCA7Civoo4/ph5ggPCB1cmFrdWdpXCA7Civoo4/ph5EgPCB1cmFnYW5lXCA7CivmlKrmi4wgPCBrYWt1aGFuXCA7CivpmbjmqYsgPCByaWtreW91XCA7CivoqLzmlocgPCBzaG91bW9uXCA7CivotaTllYTmnKjps6UgPCBha2FnZXJhXCA7CivkuI3mhJvmg7MgPCBidWFpc291XCA7CivoqLrmlq0gPCBzaGluZGFuXCA7CivlpKflm70gPCB0YWlrb2t1XCA7CivoqLvmlocgPCBjaHV1bW9uXCA7CivntLrnoqcgPCBrb25wZWtpXCA7CivkuIDnroflubQgPCBpa2thbmVuXCA7CivmlLnmgpsgPCBrYWlzaHVuXCA7CivntbbnhKEgPCB6ZXRzdW11XCA7CivlpJblo4EgPCBnYWloZWtpXCA7CivloZ7mupAgPCBzb2t1Z2VuXCA7CivlpKflmLQgPCBvb2hhc2hpXCA7CivmlrDlhbUgPCBzaGlucGVpXCA7CivoqLPmlocgPCB5YWt1YnVuXCA7Civkuojlgpnph5EgPCB5b2Jpa2luXCA7Civmjpvph5EgPCBrYWtla2luXCA7CivmlZflsIYgPCBoYWlzaG91XCA7CivmjqjpgLIgPCBzdWlzaGluXCA7Civpm4Tlv4MgPCB5dXVzaGluXCA7CivmlbXloYEgPCB0ZWtpcnVpXCA7CivntrLmo5ogPCBhbWlkYW5hXCA7Civpmbjmo5ogPCByaWt1aG91XCA7CivkuI3lj6/nn6UgPCBmdWthY2hpXCA7Civlm73poqggPCBrb2t1ZnV1XCA7Civpmobmm78gPCByeXV1dGFpXCA7Civnt5rmj48gPCBzZW5ieW91XCA7Civoqr/lkIggPCBjaG91Z291XCA7Civoj6nmj5Dlr7ogPCBib2RhaWppXCA7Civnoavpu4TlsbEgPCBpb3V5YW1hXCA7CivpmbDmpbUgPCBpbmt5b2t1XCA7CivlpI/loLQgPCBuYXRzdWJhXCA7CivntKDlm6DmlbAgPCBzb2luc3V1XCA7CivopIfoo70gPCBmdWt1c2VpXCA7CivlpJblnKcgPCBnYWlhdHN1XCA7Civku4/omK3opb8gPCBmdXJhbnN1XCA7Civnhp/lubQgPCBqdWt1bmVuXCA7CivntZDnkIMgPCBrZWtreXV1XCA7CivlpJblm70gPCBnYWlrb2t1XCA7CivmjqXovp4gPCBzZXRzdWppXCA7CivkuI3lkIjnkIYgPCBmdWdvdXJpXCA7Civnsr7oloQgPCBzZWloYWt1XCA7CivmjoPpmaTlqaYgPCBzb3VqaWZ1XCA7CivmjZXpo58gPCBob3Nob2t1XCA7CivmlbXlm70gPCB0ZWtrb2t1XCA7Civph47mmq7lpKkgPCB5YWJvdGVuXCA7CivlpInln58gPCBoZW4nJ2lraVwgOwor5L+d6K235aeU5ZOhIDwgaG9nb2lpblwgOwor6Zm95pqmIDwgeW91cmVraVwgOwor5a625YW3562JIDwga2FndXRvdVwgOwor5aSn5ZCNIDwgZGFpbXlvdVwgOwor6JaU6JaH6ImyIDwgYmFyYWlyb1wgOwor5Zu96Zu7IDwga29rdWRlblwgOwor5aSn5Y+jIDwgb29ndWNoaVwgOwor5LiN5oSJ5b+rIDwgZnV5dWthaVwgOwor6L6y5qmf5YW3IDwgbm91a2lndVwgOwor5Zu96ZujIDwga29rdW5hblwgOwor6Ly46YCB6LK7IDwgeXVzb3VoaVwgOwor6b2yIDwgbXVzaGliYVwgOwor6Zm95pilIDwgeW91c2h1blwgOwor55yL6K235ammIDwga2FuZ29mdVwgOwor5Zu96ZqbIDwga29rdXNhaVwgOwor57SL56ugIDwgbW9uc2hvdVwgOwor5Zyw6YGTIDwgamltaWNoaVwgOwor6Kaq546JIDwgb3lhZGFtYVwgOwor5b6h56We54GrIDwgZ29qaW5rYVwgOwor5pWF5a6fIDwga29qaXRzdVwgOwor5Zu96ZiyIDwga29rdWJvdVwgOwor5pS+5bC/IDwgaG91bnlvdVwgOwor5paH5Y2aIDwgYnVuaGFrdVwgOwor5LqI5YKZ6LuNIDwgeW9iaWd1blwgOwor5pOv5palIDwgaGluc2VraVwgOwor57iu5ZuzIDwgc2h1a3V6dVwgOwor6ZaT6IacIDwga2FubWFrdVwgOwor5aSn5YqbIDwgZGFpcmlraVwgOwor5o6o6LOeIDwgc3Vpc2hvdVwgOwor5r+A6ZeYIDwgZ2VraXRvdVwgOwor5aSW5ZGoIDwgZ2Fpc2h1dVwgOwor5Y+k5paH5pu4IDwga29tb25qb1wgOwor5Zuw6ZujIDwga29uJyduYW5cIDsKK+e4puWdkSA8IHRhdGVrb3VcIDsKK+e1pua6kCA8IGt5dXVnZW5cIDsKK+mcsuS7jyA8IHJvZnV0c3VcIDsKK+iHquihm+aoqSA8IGppZWlrZW5cIDsKK+iqoeWRiiA8IGthaWtva3VcIDsKK+WcsOi7uCA8IGNoaWppa3VcIDsKK+Wkp+WHtiA8IGRhaWt5b3VcIDsKK+m2qyA8IHRzdWd1bWlcIDsKK+imgeebriA8IHlvdW1va3VcIDsKK+e1hOeJiCA8IGt1bWloYW5cIDsKK+e5lOWFgyA8IG9yaW1vdG9cIDsKK+iln+eroCA8IGVyaXNob3VcIDsKK+m1pCA8IGlrYXJ1Z2FcIDsKK+mbm+WjhyA8IGhpbmFkYW5cIDsKK+m1hiA8IGNoaWRvcmlcIDsKK+e0lOecnyA8IGp1bnNoaW5cIDsKK+mat+WxniA8IHJlaXpva3VcIDsKK+aWnOS6pCA8IGhhc3VrYWlcIDsKK+e5geWKhyA8IGhhbmdla2lcIDsKK+eFqeaCqSA8IGJvbicnbm91XCA7Civlo7Llm70gPCBiYWlrb2t1XCA7CivntJTnm4ogPCBqdW4nJ2VraVwgOwor5paZ5LqtIDwgcnlvdXRlaVwgOwor57ee5bizIDwgZG9uY2hvdVwgOwor6bCYIDwgbXVyb2FqaVwgOwor5pW15YuiIDwgdGVraXplaVwgOwor6KGo6Z2iIDwgaHlvdW1lblwgOwor6ZW36IqLIDwgbmFnYWltb1wgOwor57SU55m9IDwganVucGFrdVwgOwor6a+zIDwgc3VrZXNvdVwgOwor6Ziy5q+SIDwgYm91ZG9rdVwgOwor5pWw5Yy5IDwgc3V1aGlraVwgOwor6Zu75Y2TIDwgZGVudGFrdVwgOwor57WC54K5IDwgc2h1dXRlblwgOwor57eK5oClIDwga2lua3l1dVwgOwor5pW15YmNIDwgdGVraXplblwgOwor5aSV5YeqIDwgeXV1bmFnaVwgOwor5ZCI5rCj6YGTIDwgYWlraWRvdVwgOwor57ma5LmxIDwgcnlvdXJhblwgOwor57iE5aKoIDwgam91Ym9rdVwgOwor6ayYIDwga2F0c3VyYVwgOwor6Kaq5r2uIDwgb3lhc2hpb1wgOwor54K554Gr5ZmoIDwgdGVua2FraVwgOwor6KOc6KGAIDwgaG9rZXRzdVwgOwor6Kaz5risIDwga2Fuc29rdVwgOwor54Wu5bmyIDwgbmlib3NoaVwgOwor57ax5omLIDwgdHN1bmFkZVwgOwor6Zm45oimIDwgcmlrdXNlblwgOwor57695LqM6YeNIDwgaGFidXRhZVwgOwor6ZuG5aG1IDwgc2h1dWppblwgOwor6KaP5rqW5YyWIDwga2lqdW5rYVwgOwor6ZqU5bm0IDwga2FrdW5lblwgOwor6auY5bqm5beuIDwga291ZG9zYVwgOwor54Sh5pytIDwgbXVzYXRzdVwgOwor54Sh5pyIIDwgbXVnZXRzdVwgOwor54ax5ZSxIDwgbmVzc2hvdVwgOwor5a+E5LuY6YeRIDwga2lmdWtpblwgOwor5paJ5LiAIDwgc2VpaXRzdVwgOwor54Gr5Y+j5rmWIDwga2Frb3Vrb1wgOwor5aKX5by3IDwgem91a3lvdVwgOwor6Zm65oKqIDwga2VuJydha3VcIDsKK+mVt+iAgSA8IGNob3Vyb3VcIDsKK+aUv+ayu+WxiyA8IHNlaWppeWFcIDsKK+ihjOmgrSA8IGd5b3V0b3VcIDsKK+WAi+OAheS6uiA8IGtva29qaW5cIDsKK+maoOWvhiA8IG9ubWl0c3VcIDsKK+mcjeS5sSA8IGtha3VyYW5cIDsKK+WbvemBkyA8IGtva3Vkb3VcIDsKK+e1kOawtyA8IGtlcHB5b3VcIDsKK+mbhuWboyA8IHNodXVkYW5cIDsKK+aUv+ayu+WutiA8IHNlaWppa2FcIDsKK+WbvemAoyA8IGtva3VyZW5cIDsKK+mBi+WWtuiyuyA8IHVuJydlaWhpXCA7CivpmbPmg4UgPCBjaGluam91XCA7CivngavnrrggPCBoaWJhc2hpXCA7CivonablpLfoj4ogPCBlem9naWt1XCA7Civlo7LljZwgPCBiYWlib2t1XCA7CivmlZfljJcgPCBoYWlib2t1XCA7CivlopfluYUgPCB6b3VmdWt1XCA7Civkv53orbfmnpcgPCBob2dvcmluXCA7Civmva7pqJIgPCBzaGlvc2FpXCA7CivmnKjmiLjnlaogPCBraWRvYmFuXCA7CivntKLnhLYgPCBzYWt1emVuXCA7Civntr7luIMgPCBheWFudW5vXCA7CivnspjohpwgPCBuZW5tYWt1XCA7CivmkYLnkIYgPCBzZXRzdXJpXCA7Civpm6rlhqQgPCBzZXRzdWVuXCA7CivloqjlroggPCBib2t1c2h1XCA7CivnsonojLYgPCBrb25hY2hhXCA7Civop5LmnZAgPCBrYWt1emFpXCA7CivntYzmrbQgPCBrZWlyZWtpXCA7Civpm6LliKUgPCByaWJldHN1XCA7Civpl5jniZsgPCB0b3VneXV1XCA7Civmkanmu4UgPCBtYW1ldHN1XCA7Civlm73ou40gPCBrb2t1Z3VuXCA7Civmv6vop7QgPCByYW5zaG91XCA7CivmlZnlhbggPCBreW91dGVuXCA7CivlnLDooaggPCBjaGloeW91XCA7CivmjqjolqwgPCBzdWl5YWt1XCA7CivpmbPlvIEgPCBjaGluYmVuXCA7Civngqznh7UgPCBrb3RhdHN1XCA7CivooYzplpMgPCBneW91a2FuXCA7Civplovnq4sgPCBrYWlyeXV1XCA7Civmkp7mnKggPCBzaHVtb2t1XCA7CivmtYXnn6XmgbUgPCBhc2FkamllXCA7Civpm5Hli5kgPCB6YXRzdW11XCA7CivntLDmtYEgPCBzYWlyeXV1XCA7Civpm4blkIggPCBzaHV1Z291XCA7CivlnLDonIIgPCBqaWJhY2hpXCA7CivpnZLosYzosYYgPCBhb2VuZG91XCA7Civpmbrls7sgPCBrZW5zaHVuXCA7CivooZfpjLIgPCBnYWlyb2t1XCA7CivlpbPkuIjlpKsgPCBqb2pvdWJ1XCA7CivlhoboqJjlj7cgPCBlbmtpZ291XCA7Civpm5HliYcgPCB6YXNzb2t1XCA7Civoo4XolqwgPCBzb3V5YWt1XCA7Civlm73os5MgPCBrb2t1aGluXCA7CivpmbjlsrggPCByaWt1Z2FuXCA7CivloZfmirkgPCB0b21hdHN1XCA7Civpmb3lsIQgPCBoaXphc2hpXCA7CivplqLnmb0gPCBrYW5wYWt1XCA7CivnhKbmha4gPCBzaG91cnlvXCA7Civkupzlr5LluK8gPCBha2FudGFpXCA7CivmjK/piLQgPCBzaGlucmVpXCA7Civpm5HlhbUgPCB6b3VoeW91XCA7CivpmqPlm70gPCByaW5nb2t1XCA7Civpm4DljZMgPCBqYW50YWt1XCA7Civpm6rkuK0gPCBzZXRjaHV1XCA7CivloqjloKQgPCBib2t1dGVpXCA7CivoqJflrqMgPCB0YWt1c2VuXCA7CivmkI3nm4ogPCBzb24nJ2VraVwgOwor6Zmj5bmVIDwgamlubWFrdVwgOwor5rGf5oi45bedIDwgZWRvZ2F3YVwgOwor54Gw55q/IDwgaGFpemFyYVwgOwor57WQ5p2fIDwga2Vzc29rdVwgOwor54Gw55m9IDwga2FpaGFrdVwgOwor6Kaq5qCqIDwgb3lha2FidVwgOwor5bm85YWQ6KqeIDwgeW91amlnb1wgOwor6Y65IDwga2FzdWdhaVwgOwor5Zu96KuWIDwga29rdXJvblwgOwor57eR5ZyfIDwgcnlva3Vkb1wgOwor5r+A6KuWIDwgZ2VraXJvblwgOwor5pqX5pqX6KOhIDwgYW4nJ2FucmlcIDsKK+S4jea1hOWgtCA8IGZ1am91YmFcIDsKK+imgeaxgiA8IHlvdWt5dXVcIDsKK+mLqSA8IGtpc3Nha2lcIDsKK+eGseS4rSA8IG5ldGNodXVcIDsKK+a5r+ayu+WgtCA8IHRvdWppYmFcIDsKK+ijj+iFuSA8IHVyYWhhcmFcIDsKK+ipleWIpCA8IGh5b3ViYW5cIDsKK+e0jea2vCA8IG5vdXJ5b3VcIDsKK+Wbs+iqrCA8IHp1c2V0c3VcIDsKK+mWk+eUtyA8IG1hb3Rva29cIDsKK+aRuuacrCA8IHNob3Vob25cIDsKK+iEs+WRs+WZjCA8IG5vdW1pc29cIDsKK+mbkeS6iyA8IHphdHN1amlcIDsKK+WtkOeUu+mdoiA8IGtvZ2FtZW5cIDsKK+e1tuaBryA8IHplc3Nva3VcIDsKK+mZo+WuuSA8IGppbicneW91XCA7CivpmbjlpKcgPCByaWt1ZGFpXCA7CivopKXnmKEgPCBqb2t1c291XCA7CivnspfnrYsgPCBhcmFzdWppXCA7Civplbfnn60gPCBjaG91dGFuXCA7CivopqrmlrkgPCBveWFrYXRhXCA7Civlj6/oppbljJYgPCBrYXNoaWthXCA7CivoqK3llrYgPCBzZXRzdWVpXCA7CivntbXlv4MgPCBlZ29rb3JvXCA7Civmi53poJggPCBoYWlyeW91XCA7CivntbblvowgPCB6ZXRzdWdvXCA7CivkuI3ms6jmhI8gPCBmdWNodXVpXCA7CivnspjnqKAgPCBuZW5jaHV1XCA7Civmkq7lvbEgPCBzYXRzdWVpXCA7CivorbfooZvoiaYgPCBnb2Vpa2FuXCA7CivloanlrrMgPCBzaGlvZ2FpXCA7Civoo5zntrQgPCBob3RldHN1XCA7Civnr6TovrIgPCB0b2t1bm91XCA7Civmj67nmbogPCBraWhhdHN1XCA7Civng4/mnKggPCBrb2t1dGFuXCA7CivmrKHmiZPogIUgPCBqaWRhc2hhXCA7CivloIbmnLEgPCB0c3Vpc2h1XCA7CivpmbjlnLAgPCByaWt1Y2hpXCA7CivlooPln58gPCBreW91aWtpXCA7CivmiqvpnLLlrrQgPCBoaXJvdWVuXCA7CivnhaflkIggPCBzaG91Z291XCA7CivoqZXkvJ0gPCBoeW91ZGVuXCA7Civoh6rooZvlrpggPCBqaWVpa2FuXCA7CivlnovnlaogPCBrYXRhYmFuXCA7CivnhLzlo7IgPCBzaHV1bWFpXCA7CivnlZnlrojnlaogPCBydXN1YmFuXCA7CivopIfnnLwgPCBmdWt1Z2FuXCA7Civkupzpn7PpgJ8gPCBhb25zb2t1XCA7CivnhKHlrr8gPCBtdXNodWt1XCA7Civop5LluL0gPCBrYWt1Ym91XCA7CivplbfnlLcgPCBjaG91bmFuXCA7CivopqrmjIcgPCBveWF5dWJpXCA7Civop5LluK8gPCBrYWt1b2JpXCA7CivnhKHlrp8gPCBtdWppdHN1XCA7CivntKLmnaEgPCBzYWt1am91XCA7Civnt4/liYcgPCBzb3Vzb2t1XCA7CivouYQgPCBoaWR6dW1lXCA7Civlopflj44gPCB6b3VzaHV1XCA7Civntr7lj5YgPCBheWF0b3JpXCA7CivntprloLEgPCB6b2t1aG91XCA7CivloLHlvrMgPCBob3V0b2t1XCA7Civmkanmk6YgPCBtYXNhdHN1XCA7CivloLHlvqkgPCBob3VmdWt1XCA7CivlvqHms6jmhI8gPCBnb2NodXVpXCA7CivopovmlpkgPCBrZW5yeW91XCA7Civooajoo4UgPCBoeW91c291XCA7Civlm73okawgPCBrb2t1c291XCA7Civopb/mmqYgPCBzZWlyZWtpXCA7CivnsaDntaEgPCByb3VyYWt1XCA7CivljLvnp5HlraYgPCBpa2FnYWt1XCA7Civnspfnmq4gPCBhcmFrYXdhXCA7Civngq3mn7EgPCB0YW5jaHV1XCA7CivoprPlv7UgPCBrYW4nJ25lblwgOwor57SU5py0IDwganVuYm9rdVwgOwor6KiT5ZGKIDwga3Vua29rdVwgOwor6KW/5pelIDwgbmlzaGliaVwgOwor57Gz56mAIDwgYmVpa29rdVwgOwor55Ww5pa55oCnIDwgaWhvdXNlaVwgOwor5pOB5aOBIDwgeW91aGVraVwgOwor6Kit5YKZIDwgc2V0c3ViaVwgOwor6KGA6LGGIDwgY2hpbWFtZVwgOwor5Zyn57iuIDwgYXNzaHVrdVwgOwor57eS5L2cIDwgc2hvc2FrdVwgOwor54Sh6ZGR5p+7IDwgbXVrYW5zYVwgOwor57Sa5pWwIDwga3l1dXN1dVwgOwor57SL5pyNIDwgbW9ucHVrdVwgOwor6KOV56aPIDwgeXV1ZnVrdVwgOwor5o6b566XIDwga2FrZXphblwgOwor57W15ae/IDwgZXN1Z2F0YVwgOwor6KysIDwgYXlhbWFyaVwgOwor5Zyw57GNIDwgY2hpc2VraVwgOwor5LqM55Wq55uuIDwgbmliYW5tZVwgOwor5o6i56m2IDwgdGFua3l1dVwgOwor57KS55WMIDwgcnl1dWthaVwgOwor56Gs5YyW5rK5IDwga291a2F5dVwgOwor5pCN5rWBIDwgc29ucnl1dVwgOwor6Kq8IDwgeW9zaGltaVwgOwor5pig55S756WtIDwgZWlnYXNhaVwgOwor6KquIDwgeWFzYXNoaVwgOwor5ryG6aOfIDwgc2hpa2t1aVwgOwor5pig55S756S+IDwgZWlnYXNoYVwgOwor54K55o+PIDwgdGVuYnlvdVwgOwor5LiN5q2j6KaPIDwgZnVzZWlraVwgOwor6I2K5qOY57eaIDwgYmFyYXNlblwgOwor5ouT6YqAIDwgdGFrdWdpblwgOwor57W25aOBIDwgemVwcGVraVwgOwor5oWw6ZyK56WtIDwgaXJlaXNhaVwgOwor5a2m5qCh5Yy7IDwgZ2Fra291aVwgOwor6Zm45YW1IDwgcmlrdWhlaVwgOwor57ax5YW3IDwgdHN1bmFndVwgOwor57KX546JIDwgYXJhdGFtYVwgOwor57ay5YWDIDwgYW1pbW90b1wgOwor6KiA5Y+KIDwgZ2Vua3l1dVwgOwor6YeR5paH5a2XIDwga2lubW9qaVwgOwor57O45p6gIDwgaXRvd2FrdVwgOwor6Zmk5Y20IDwgam9reWFrdVwgOwor5ryr6YyyIDwgbWFucm9rdVwgOwor6ZqP5LiAIDwgenVpaWNoaVwgOwor57O45p2JIDwgaXRvc3VnaVwgOwor54Gw5q67IDwgaGFpZ2FyYVwgOwor5pGC5pS/IDwgc2Vzc2hvdVwgOwor6KWFIDwgY2hpaGF5YVwgOwor5aGp5ZGzIDwgc2hpb2FqaVwgOwor57WQ5bC+IDwga2V0c3ViaVwgOwor57SE5pWwIDwgeWFrdXN1dVwgOwor6Ziy5aOBIDwgYm91aGVraVwgOwor5b6h5rOV5bqmIDwgZ29oYXR0b1wgOwor5aGB5aOBIDwgcnVpaGVraVwgOwor57WQ5a+pIDwga2Vzc2hpblwgOwor5ouZ6YCfIDwgc2Vzc29rdVwgOwor5pKu5ZyfIDwgc2F0c3Vkb1wgOwor5rCX5L+d6aSKIDwga2lob3lvdVwgOwor6KCOIDwgdXdhYmFtaVwgOwor6YmE54Gr5aC0IDwgdGVra2FiYVwgOwor5Yuk5YuZ5ZOhIDwga2lubXVpblwgOwor6KeS5ZywIDwga2Fkb2NoaVwgOwor57WM5a2mIDwga2VpZ2FrdVwgOwor57KL54uCIDwgc3Vpa3lvdVwgOwor6KOP55m9IDwgdXJhamlyb1wgOwor5aG15YWlIDwgZ29taWlyZVwgOwor55Ww5pif5Lq6IDwgaXNlaWppblwgOwor57Sw5bivIDwgaG9zb29iaVwgOwor6JyGIDwgc2hpamltaVwgOwor54Sh5Y+jIDwgbXVrdWNoaVwgOwor5Z+35b+1IDwgc2h1dW5lblwgOwor6Zm45LiKIDwgcmlrdWpvdVwgOwor5pig55S755WMIDwgZWlnYWthaVwgOwor5ryr6YGKIDwgbWFuJyd5dXVcIDsKK+e1tuWUsSA8IHplc3Nob3VcIDsKK+iZsSA8IHNoaXJhbWlcIDsKK+S6lOeVv+WGhSA8IGdva2luYWlcIDsKK+W+oeegtOeulyA8IGdvaGFzYW5cIDsKK+WcsOebriA8IGNoaW1va3VcIDsKK+WQpuWumuiqniA8IGhpdGVpZ29cIDsKK+eEoeWKmyA8IG11cnlva3VcIDsKK+iVviA8IHRzdWJvbWlcIDsKK+aKvemBuCA8IGNodXVzZW5cIDsKK+e1tuWPqyA8IHpla2t5b3VcIDsKK+mBleaGsuaApyA8IGlrZW5zZWlcIDsKK+WhqeWMlumKgCA8IGVua2FnaW5cIDsKK+WbveeyiyA8IGtva3VzdWlcIDsKK+mWiealrSA8IGhlaWd5b3VcIDsKK+exs+eLrCA8IGJlaWRva3VcIDsKK+aMr+iIniA8IGZ1cnVtYWlcIDsKK+S/neitt+WPuCA8IGhvZ29zaGlcIDsKK+mVt+atjCA8IG5hZ2F1dGFcIDsKK+e0jeW+lyA8IG5hdHRva3VcIDsKK+Wcn+edgCA8IGRvY2hha3VcIDsKK+WbveetiSA8IGtva3V0b3VcIDsKK+WgguWuiCA8IGRvdW1vcmlcIDsKK+aLneisgSA8IGhhaWV0c3VcIDsKK+W+l+aEj+awlyA8IHRva3VpZ2VcIDsKK+aSpOWPjiA8IHRlc3NodXVcIDsKK+eBr+aYjiA8IHRvdW15b3VcIDsKK+aLneiqrSA8IGhhaWRva3VcIDsKK+etiemWkSA8IG5hb3phcmlcIDsKK+mPpOmqqCA8IHJ1a290c3VcIDsKK+aJi+e0sOW3pSA8IHRlemFpa3VcIDsKK+iIjuWIqeWhqSA8IHNoYXJpZW5cIDsKK+WcqOeVmSA8IHphaXJ5dXVcIDsKK+aQjeaWmSA8IHNvbnJ5b3VcIDsKK+WcreeSpyA8IGtlaWhla2lcIDsKK+aPj+azlSA8IGJ5b3Vob3VcIDsKK+imqummrOm5vyA8IG95YWJha2FcIDsKK+iInui4iuWutiA8IGJ1dG91a2FcIDsKK+WbveeojiA8IGtva3V6ZWlcIDsKK+Wlh+W9ouWFkCA8IGtpa2VpamlcIDsKK+mWgOafsSA8IG1vbmNodXVcIDsKK+WNiOW+jOS4rSA8IGdvZ29qdXVcIDsKK+iJgCA8IGhhc2hpa2VcIDsKK+WbsOeqriA8IGtvbmt5dXVcIDsKK+ihqOe0mSA8IGh5b3VzaGlcIDsKK+eDiOWlsyA8IHJldHN1am9cIDsKK+ipreW8geWutiA8IGtpYmVua2FcIDsKK+imquWWhCA8IHNoaW56ZW5cIDsKK+a8q+iqrSA8IG1hbmRva3VcIDsKK+mWouaJgCA8IHNla2lzaG9cIDsKK+ezuOW6lSA8IGl0b3pva29cIDsKK+a8q+iplSA8IG1hbnB5b3VcIDsKK+imi+WigyA8IG1pc2FrYWlcIDsKK+iBoiA8IHNoaWthdG9cIDsKK+iDg+a0l+a1hCA8IGlzZW5qb3VcIDsKK+aKmOi+vCA8IG9yaWtvbWlcIDsKK+S4jeWQjOWMliA8IGZ1ZG91a2FcIDsKK+e/vCA8IHRzdWJhc2FcIDsKK+eVsOaVmeW+kiA8IGlreW91dG9cIDsKK+aOiOeItSA8IGp1c2hha3VcIDsKK+mPoemdoiA8IGt5b3VtZW5cIDsKK+WbuuedgCA8IGtvY2hha3VcIDsKK+aOqOa4rCA8IHN1aXNva3VcIDsKK+WbveebiiA8IGtva3Vla2lcIDsKK+a5r+WKoOa4myA8IHl1a2FnZW5cIDsKK+e0hOWumiA8IHlha3Vqb3VcIDsKK+mdnuiqsueojiA8IGhpa2F6ZWlcIDsKK+WSjOalveWZqCA8IHdhZ2Fra2lcIDsKK+e1seS4gCA8IHRvdWl0c3VcIDsKK+mWi+aLkyA8IGthaXRha3VcIDsKK+ijnOauuiA8IGhvc2F0c3VcIDsKK+ezuOWxkSA8IGl0b2t1enVcIDsKK+mBleazleiAhSA8IGlob3VzaGFcIDsKK+aSg+WJoyA8IGdla2lrZW5cIDsKK+aJgemhjSA8IGhlbmdha3VcIDsKK+a8lOiqrCA8IGVuemV0c3VcIDsKK+aJgOmgmCA8IHNob3J5b3VcIDsKK+eruemmrCA8IGNoaWt1YmFcIDsKK+WbveeUoyA8IGtva3VzYW5cIDsKK+ihgOe4gSA8IGtldHN1ZW5cIDsKK+ikh+aWuSA8IGZ1a3Vob3VcIDsKK+eyl+acqyA8IHNvbWF0c3VcIDsKK+mOrumtgiA8IGNoaW5nb25cIDsKK+ikh+aVsCA8IGZ1a3VzdXVcIDsKK+aQjeW+lyA8IHNvbnRva3VcIDsKK+WgleWKmyA8IGRhcnlva3VcIDsKK+i8uOmAgeapnyA8IHl1c291a2lcIDsKK+S4jumHjuWFmiA8IHlveWF0b3VcIDsKK+ihgOeziiA8IGNoaW5vcmlcIDsKK+W8leeBq+eCuSA8IGlua2F0ZW5cIDsKK+a8uOiQvSA8IHplbnJha3VcIDsKK+eyl+aWuSA8IGFyYWthdGFcIDsKK+ezuOWnqyA8IGl0b2hpbWVcIDsKK+evgOe+qSA8IHNldHN1Z2lcIDsKK+e+veWtkOadvyA8IGhhZ29pdGFcIDsKK+ethui5nyA8IGhpc3Nla2lcIDsKK+mfs+aymeaxsCA8IG90b3NhdGFcIDsKK+emvuacrOenkSA8IGthaG9ua2FcIDsKK+S4jeWPr+WIhiA8IGZ1a2FidW5cIDsKK+e1guWApCA8IG93YXJpbmVcIDsKK+ihgOetiyA8IGNoaXN1amlcIDsKK+WfjuWjgSA8IGpvdWhla2lcIDsKK+m8oOW+hOmDqCA8IHNva2VpYnVcIDsKK+WcsOauuyA8IGNoaWtha3VcIDsKK+etluisgCA8IHNha3Vib3VcIDsKK+iejemAmiA8IHl1dWR6dXVcIDsKK+mWi+W5lSA8IGthaW1ha3VcIDsKK+WWq+mpmiA8IGJpa2t1cmlcIDsKK+mWieW5lSA8IGhlaW1ha3VcIDsKK+mOlumqqCA8IHNha290c3VcIDsKK+a6gOmhjSA8IG1hbmdha3VcIDsKK+ihl+edgCA8IG1hY2hpZ2lcIDsKK+Wcp+auuiA8IGFzc2F0c3VcIDsKK+mOrumdmSA8IGNoaW5zZWlcIDsKK+eEoeaKgOW3pyA8IG11Z2lrb3VcIDsKK+ifi+ifgCA8IGtvb3JvZ2lcIDsKK+aLneiBtCA8IGhhaWNob3VcIDsKK+a/geeCuSA8IGRha3V0ZW5cIDsKK+igj+e8tiA8IGthbmlrYW5cIDsKK+ekjiA8IGlzaGl6dWVcIDsKK+mVt+W+hCA8IGNob3VrZWlcIDsKK+mDveitsOS8miA8IHRvZ2lrYWlcIDsKK+aOqOacjSA8IHN1aWZ1a3VcIDsKK+mWkeWvgiA8IGthbmpha3VcIDsKK+ezvuWVjyA8IGt5dXVtb25cIDsKK+ijj+abuCA8IHVyYWdha2lcIDsKK+S6iOWCmeagoSA8IHlvYmlrb3VcIDsKK+mVt+W5vCA8IGNob3V5b3VcIDsKK+aQvuWPliA8IHNha3VzaHVcIDsKK+WgheS6uiA8IGthdGFqaW5cIDsKK+Wcn+apiyA8IGRvYmFzaGlcIDsKK+ims+S4lumfsyA8IGthbnplb25cIDsKK+aJi+i/kSA8IHRlZGppa2FcIDsKK+ijj+aWuSA8IHVyYWthdGFcIDsKK+WNiumBjuWOuyA8IGhhbmtha29cIDsKK+S4jeWPguWKoCA8IGZ1c2Fua2FcIDsKK+a/gOa4myA8IGdla2lnZW5cIDsKK+eyl+W/vSA8IHNva290c3VcIDsKK+e0jeWFpSA8IG5vdW55dXVcIDsKK+aKgOihkyA8IGdpanV0c3VcIDsKK+aKleiWrCA8IHRvdXlha3VcIDsKK+a/gOa1qiA8IGdla2lyb3VcIDsKK+aBo+aEj+aApyA8IHNoaWlzZWlcIDsKK+WbveazlSA8IGtva3Vob3VcIDsKK+eykuW+hCA8IHJ5dXVrZWlcIDsKK+eUpiA8IHlvbWlnYWVcIDsKK+S7mOWKoOeojiA8IGZ1a2F6ZWlcIDsKK+WbveawkSA8IGtva3VtaW5cIDsKK+eyvuWmmSA8IHNlaW15b3VcIDsKK+a/geawtCA8IGRha3VzdWlcIDsKK+aZguioiOW6pyA8IHRva2VpemFcIDsKK+aOkuaWpSA8IGhhaXNla2lcIDsKK+mDqOWxi+S7oyA8IGhleWFkYWlcIDsKK+avjemfs+aApyA8IGJvaW5zZWlcIDsKK+ihjOeKtiA8IGd5b3Vqb3VcIDsKK+idtuiynSA8IGNob3VnYWlcIDsKK+S4jeW+l+aEjyA8IGZ1dG9rdWlcIDsKK+iln+WFgyA8IGVyaW1vdG9cIDsKK+mbu+ipseapnyA8IGRlbndha2lcIDsKK+eEoeaLheS/nSA8IG11dGFucG9cIDsKK+aHuOmalCA8IGtlbmtha3VcIDsKK+ijj+aKgCA8IHVyYXdhemFcIDsKK+WcqOaWuSA8IHphaWthdGFcIDsKK+eruei8qiA8IGNoaWt1d2FcIDsKK+aOkuaSgyA8IGhhaWdla2lcIDsKK+aOqui+nuazlSA8IHNvamlob3VcIDsKK+aOoeaKniA8IHNhaXRha3VcIDsKK+WFq+S5neWIhiA8IGhha2t1YnVcIDsKK+ien+iZqyA8IG1laWNodXVcIDsKK+eBveWOhCA8IHNhaXlha3VcIDsKK+Wcn+aXpSA8IGRvbmljaGlcIDsKK+agueWkquadvyA8IG5lZGFpdGFcIDsKK+aIkOmKgCA8IG5hcmlnaW5cIDsKK+eJnCA8IHVzaGloZW5cIDsKK+evhOeWhyA8IGhhbmNodXVcIDsKK+eBq+WKoOa4myA8IGhpa2FnZW5cIDsKK+S6nOeHkOmFuCA8IGFyaW5zYW5cIDsKK+aZguioiOWxiyA8IHRva2VpeWFcIDsKK+aOjOaPoSA8IHNob3Vha3VcIDsKK+aIkOmHkSA8IG5hcmlraW5cIDsKK+a9lOeZvSA8IGtlcHBha3VcIDsKK+mdkuS6jOaJjSA8IGFvbmlzYWlcIDsKK+a9lOeZliA8IGtlcHBla2lcIDsKK+a8ouexjSA8IGthbnNla2lcIDsKK+Wcp+aOpSA8IGFzc2V0c3VcIDsKK+mHjuaUvuWbsyA8IG5vaG91enVcIDsKK+eykuWtkCA8IHJ5dXVzaGlcIDsKK+aJjeimmiA8IHNhaWtha3VcIDsKK+eBq+WPoyA8IGhpZ3VjaGlcIDsKK+aJgOisgiA8IGl3YXl1cnVcIDsKK+mWk+WPoyA8IG1hZ3VjaGlcIDsKK+mWo+WGhSA8IGtha3VuYWlcIDsKK+W5vOWFkOacnyA8IHlvdWppa2lcIDsKK+a6gOi6qyA8IG1hbnNoaW5cIDsKK+aMieaRqeiGjyA8IGFubWFrb3VcIDsKK+awl+iLpuWKtCA8IGtpZ3Vyb3VcIDsKK+ijj+W6rSA8IHVyYW5pd2FcIDsKK+ijj+W6lyA8IHVyYWRhbmFcIDsKK+WbveaciSA8IGtva3V5dXVcIDsKK+aUv+W6nOahiCA8IHNlaWZ1YW5cIDsKK+WbveabuCA8IGtva3VzaG9cIDsKK+eBq+WKmyA8IGthcnlva3VcIDsKK+ernOi7iiA8IHJ5dXVzaGFcIDsKK+S6iOWCmeW9uSA8IHlvYmlla2lcIDsKK+aIkei8qSA8IHdhZ2FoYWlcIDsKK+a6gOi2syA8IG1hbnpva3VcIDsKK+ihgOa9riA8IGNoaXNoaW9cIDsKK+a8hue1tSA8IHVydXNoaWVcIDsKK+m9t+m9qiA8IGFrdXNla3VcIDsKK+WcsOW/gyA8IGNoaXNoaW5cIDsKK+epuummrCA8IGthcmF1bWFcIDsKK+WbveaWhyA8IGtva3VidW5cIDsKK+WbveaVmSA8IGtva2t5b3VcIDsKK+WbveaUvyA8IGtva3VzZWlcIDsKK+exs+WvqSA8IGJlaXNoaW5cIDsKK+WdqeWgnSA8IHJ1dHN1Ym9cIDsKK+S4jemBk+eQhiA8IGZ1ZG91cmlcIDsKK+mHkeeEoeWeoiA8IGtpbm11a3VcIDsKK+Wbo+aglyA8IGRvbmd1cmlcIDsKK+Wbs+aYnyA8IHp1Ym9zaGlcIDsKK+ijj+WxsSA8IHVyYXlhbWFcIDsKK+aKmOe0mSA8IG9yaWdhbWlcIDsKK+ihjOawtCA8IGd5b3V6dWlcIDsKK+eyieWjgSA8IGZ1bnBla2lcIDsKK+WBvemAoOWNsCA8IGdpem91aW5cIDsKK+eri+i6qyA8IHJpc3NoaW5cIDsKK+erueijvSA8IHRha2VzZWlcIDsKK+eEoeaJueWIpCA8IG11aGloYW5cIDsKK+ihgOayiCA8IGtldGNoaW5cIDsKK+aJi+iUkyA8IHRlZHp1cnVcIDsKK+avriA8IG11c2hpcnVcIDsKK+Wbs+abuOiyuyA8IHRvc2hvaGlcIDsKK+eBq+S7mCA8IGhpdHN1a2VcIDsKK+W5uOmBi+WFkCA8IGtvdXVuamlcIDsKK+WUkOm7jSA8IHRvdWtpYmlcIDsKK+WcsOWzoSA8IGNoaWt5b3VcIDsKK+WhqeawtOa5liA8IGVuc3Vpa29cIDsKK+a1geW4g+acrCA8IHJ1ZnVib25cIDsKK+eviea4ryA8IGNoaWtrb3VcIDsKK+epuumamSA8IGt1dWdla2lcIDsKK+aKnOeptCA8IG51a2VhbmFcIDsKK+WxseiMtuiKsSA8IHNhemFua2FcIDsKK+enu+awkeazlSA8IGltaW5ob3VcIDsKK+epuumZuCA8IGt1dXJpa3VcIDsKK+msvOeZvuWQiCA8IG9uaXl1cmlcIDsKK+mWk+S4rSA8IGFpZGFqdXVcIDsKK+aOkuWwvyA8IGhhaW55b3VcIDsKK+WbveaJiyA8IGtva3VzaHVcIDsKK+ihqOaYjiA8IGh5b3VtZWlcIDsKK+WliOiJr+ecjCA8IG5hcmFrZW5cIDsKK+S4jeWLneaJiyA8IGZ1a2F0dGVcIDsKK+WbnuaVmSA8IGthaWt5b3VcIDsKK+WcsOWtpiA8IGNoaWdha3VcIDsKK+a8geekgSA8IGd5b3Nob3VcIDsKK+ihqOaVrCA8IGh5b3VrZWlcIDsKK+a/gOaGpCA8IGdla2lmdW5cIDsKK+a9pOayoiA8IGp1bnRha3VcIDsKK+aMr+abvyA8IGZ1cmlrYWVcIDsKK+evpuajkiA8IGJlcmFib3VcIDsKK+aKleelqCA8IHRvdWh5b3VcIDsKK+WbveaDhSA8IGtva3Vqb3VcIDsKK+WcqOWuhSA8IHphaXRha3VcIDsKK+S4jeWIqeebiiA8IGZ1cmlla2lcIDsKK+WcqOWtpiA8IHphaWdha3VcIDsKK+W4guWQj+WToSA8IHNoaXJpaW5cIDsKK+aEj+imi+abuCA8IGlrZW5zaG9cIDsKK+aFsOmciuWhlCA8IGlyZWl0b3VcIDsKK+eri+iovCA8IHJpc3Nob3VcIDsKK+ajlyA8IG5hdHN1bWVcIDsKK+aOm+WjsCA8IGtha2Vnb2VcIDsKK+aiuyA8IHNoaWtpbWlcIDsKK+aIkeWIqeWLiSA8IGdhcmliZW5cIDsKK+ihjOacqyA8IHl1a3VzdWVcIDsKK+ihjOabuCA8IGd5b3VzaG9cIDsKK+a4vui6qyA8IGtvbnNoaW5cIDsKK+WbsOaDkSA8IGtvbndha3VcIDsKK+ihhuacmyA8IHNodXVib3VcIDsKK+a4m+mHjyA8IGdlbnJ5b3VcIDsKK+abmSA8IGFrZWJvbm9cIDsKK+aTrOWuneePoCA8IGdpYm9zaGlcIDsKK+Wkp+WSjOe1tSA8IHlhbWF0b2VcIDsKK+ihjOaVsCA8IGd5b3VzdXVcIDsKK+Wbs+W8jyA8IHp1c2hpa2lcIDsKK+Wwj+WIh+aJiyA8IGtvZ2l0dGVcIDsKK+a8v+a2siA8IHNob3Vla2lcIDsKK+aZkiA8IHNhcmFzaGlcIDsKK+i7oui3r+WZqCA8IHRlbnJva2lcIDsKK+epgOmhniA8IGtva3VydWlcIDsKK+a8oOeEtiA8IGJha3V6ZW5cIDsKK+eqgemAsiA8IHRvc3NoaW5cIDsKK+exs+WPjiA8IGJlaXNodXVcIDsKK+aXgSA8IHRzdWt1cmlcIDsKK+WIpOS6i+ijnCA8IGhhbmppaG9cIDsKK+WxoOiYh+aVoyA8IHRvc29zYW5cIDsKK+epv+mAmiA8IHNlbnRzdXVcIDsKK+ihqOaDhSA8IGh5b3Vqb3VcIDsKK+WZtOa1gSA8IGZ1bnJ5dXVcIDsKK+eorummrCA8IHRhbmV1bWFcIDsKK+a3oembqiA8IGF3YXl1a2lcIDsKK+WPguitsOmZoiA8IHNhbmdpaW5cIDsKK+aOpeWPlyA8IHNldHN1anVcIDsKK+aMqOaLtiA8IGFpc2F0c3VcIDsKK+aMq+aKmCA8IHphc2V0c3VcIDsKK+aOpeWPjiA8IHNlc3NodXVcIDsKK+aJi+e2sSA8IHRhZHp1bmFcIDsKK+WbveWvviA8IGtva3V0YWlcIDsKK+S6iOWCmeWTgSA8IHlvYmloaW5cIDsKK+a8geeNsiA8IGd5b2tha3VcIDsKK+aJiee1tSA8IHRvYmlyYWVcIDsKK+a8geeMnyA8IGd5b3J5b3VcIDsKK+WbveWumiA8IGtva3V0ZWlcIDsKK+eQhuW3peenkSA8IHJpa291a2FcIDsKK+eBq+iRrOWgtCA8IGthc291YmFcIDsKK+WUh+mfsyA8IHNoaW4nJ29uXCA7Civlr5LlnqLpm6IgPCBrYW5nb3JpXCA7CivooYzmiJAgPCBpa2luYXJpXCA7Civmu5Hnn7MgPCBrYXNzZWtpXCA7CivpmLLooZvosrsgPCBib3VlaWhpXCA7CivlnLDlj6MgPCBqaWd1Y2hpXCA7CivmiYvnrpIgPCB0ZWJvdWtpXCA7CivllJDploAgPCBrYXJhbW9uXCA7CivppqzlsI/lsYsgPCB1bWFnb3lhXCA7Civnq5zohLMgPCByeXV1bm91XCA7Civlm73lpKcgPCBrb2t1ZGFpXCA7CivnsbPkv5cgPCBiZWl6b2t1XCA7Civlm73lpJYgPCBrb2t1Z2FpXCA7Civoo4/lgbQgPCB1cmFnYXdhXCA7Civmv4Hlo7AgPCBkYW1pZ29lXCA7CivnsbPkvZwgPCBiZWlzYWt1XCA7CivkuojlgpnlhbUgPCB5b2JpaGVpXCA7CivllLHpgZMgPCBzaG91ZG91XCA7CivllY/osqwgPCBtb25zZWtpXCA7CivnqbrosLcgPCBrdXVrb2t1XCA7Civmv4DlopcgPCBnZWtpem91XCA7CivlsI/pgZPlhbcgPCBrb2RvdWd1XCA7Civnq6/ntrEgPCBoYWR6dW5hXCA7Civmt7HpgaAgPCBzaGluJydlblwgOwor6KOP5L2cIDwgdXJhc2FrdVwgOwor6KOC5YK3IDwgcmVzc2hvdVwgOwor6Juu6KWfIDwgYmFua2FyYVwgOwor5biM5YWD57SgIDwga2lnZW5zb1wgOwor5oC6IDwga29yYWVydVwgOwor5LiW55WM6KqeIDwgc2VrYWlnb1wgOwor57Gz5LitIDwgYmVpY2h1dVwgOwor56uL6IW5IDwgcmlwcHVrdVwgOwor56iO6aGNIDwgemVpZ2FrdVwgOwor56u/56u5IDwgc2FvZGFrZVwgOwor5rer6YC4IDwgaW4nJ2l0c3VcIDsKK+W+pCA8IHRha2VzaGlcIDsKK+itt+ihm+WFtSA8IGdvZWloZWlcIDsKK+epuuiqvyA8IGt1dWNob3VcIDsKK+iZq+mhniA8IGNodXVydWlcIDsKK+W9ouiAjOS4iyA8IGtlaWppa2FcIDsKK+aNuuWNsCA8IG5hdHN1aW5cIDsKK+ihhuW6tiA8IHNodXVzaG9cIDsKK+erueervyA8IHRha2V6YW9cIDsKK+mdkumbu+ipsSA8IGFvZGVud2FcIDsKK+S6jOaemuebriA8IG5pbWFpbWVcIDsKK+WVj+iouiA8IG1vbnNoaW5cIDsKK+aLk+acrCA8IHRha3Vob25cIDsKK+epjei8iSA8IHNla2lzYWlcIDsKK+epuuilsiA8IGt1dXNodXVcIDsKK+S7luW6nOecjCA8IHRhZnVrZW5cIDsKK+S/nee3muWMuiA8IGhvc2Vua3VcIDsKK+W3vSA8IHRhdHN1bWlcIDsKK+WcqOS/lyA8IHphaXpva3VcIDsKK+WHuueoveWPpCA8IGRlZ2Vpa29cIDsKK+epuuihjCA8IGt1dWd5b3VcIDsKK+WcsOS4uyA8IGppbnVzaGlcIDsKK+S4jeWFt+iAhSA8IGZ1Z3VzaGFcIDsKK+WcsOS4rSA8IGNoaWNodXVcIDsKK+a8lOeul+apnyA8IGVuemFua2lcIDsKK+mBuuS8neazlSA8IGlkZW5ob3VcIDsKK+WbveWPtyA8IGtva3Vnb3VcIDsKK+mMr+inkiA8IHNha2tha3VcIDsKK+WcqOS6rCA8IHphaWt5b3VcIDsKK+aLjeaVsCA8IGhha3VzdXVcIDsKK+mBuuWutuaXjyA8IGlrYXpva3VcIDsKK+Wwj+WIqeWPoyA8IGtvcmlrb3VcIDsKK+WcqOS4rSA8IHphaWNodXVcIDsKK+ihqOWcqCA8IGh5b3V6YWlcIDsKK+a7tOawtCA8IHRla2lzdWlcIDsKK+aJk+eOhyA8IGRhcml0c3VcIDsKK+mLs+mAoCA8IGNodXV6b3VcIDsKK+Wbm+WbvSA8IHNoaWtva3VcIDsKK+WbveWKtCA8IGtva3Vyb3VcIDsKK+a/gOWLlSA8IGdla2lkb3VcIDsKK+eri+exsyA8IHJ5dXViZWlcIDsKK+eti+azqCA8IGtpbmNodXVcIDsKK+a/gOWKsSA8IGdla2lyZWlcIDsKK+aKkeatoiA8IHlva3VzaGlcIDsKK+a8ouaXjyA8IGthbnpva3VcIDsKK+evgOW6piA8IHNldHN1ZG9cIDsKK+Wkqeawl+mBiyA8IHRlbmtpdW5cIDsKK+a8gealrSA8IGd5b2d5b3VcIDsKK+a2sumHjyA8IGVraXJ5b3VcIDsKK+W6nOitsOS8miA8IGZ1Z2lrYWlcIDsKK+ibh+igjSA8IGRha2F0c3VcIDsKK+WbveWGhSA8IGtva3VuYWlcIDsKK+WbveWFuCA8IGtva3V0ZW5cIDsKK+idi+efsyA8IHJvdXNla2lcIDsKK+ernOelniA8IHJ5dXVqaW5cIDsKK+a2iOmYsiA8IHNob3Vib3VcIDsKK+a1gem6lyA8IHJ5dXVyZWlcIDsKK+err+eahCA8IHRhbnRla2lcIDsKK+a4qeiJsiA8IG9uc2hva3VcIDsKK+a6lueUqCA8IGp1bicneW91XCA7CivnqbTolLUgPCBhbmFndXJhXCA7Civmi43miYsgPCBoYWt1c2h1XCA7CivmiYvnh60gPCB0ZXNob2t1XCA7Civlo6wgPCBtaXp1bm9lXCA7CivmraLpn7PlmaggPCBzaGlvbmtpXCA7CivlkIjmsJfkvJogPCBhaWtpa2FpXCA7Civpho3phpDlkbMgPCBkYWlnb21pXCA7CivnrrHluKsgPCBoYWtvc2hpXCA7Civooajlj7cgPCBoeW91Z291XCA7Civpu4TpursgPCB0c3VuYXNvXCA7CivomavphbggPCBtdXNoaXp1XCA7CivmuoDnm64gPCBtYW5tb2t1XCA7Civmi53lvqkgPCBoYWlmdWt1XCA7CivpkJjmpbwgPCBzaG91cm91XCA7Civnq4vnp4sgPCByaXNzaHV1XCA7Civnp4vpoqggPCBzaHV1ZnV1XCA7CivmirzmjbogPCBvdW5hdHN1XCA7CivmhI/lm7PnmoQgPCBpdG90ZWtpXCA7CivmtabpoqggPCB1cmFrYXplXCA7CivnqbrojLYgPCBrYXJhY2hhXCA7Civnq5znnLwgPCByeXV1Z2FuXCA7CivmtbfpmbggPCBrYWlyaWt1XCA7CivlnLDno4HmsJcgPCBjaGlqaWtpXCA7CivnqI7ovrwgPCB6ZWlrb21pXCA7CivnlJ/mhI/msJcgPCBuYW1haWtpXCA7Civpu5Lpr5sgPCBrdXJvZGFpXCA7CivnqbroibIgPCBzb3JhaXJvXCA7Civlm5vmrKHlhYMgPCB5b2ppZ2VuXCA7CivmjJnlm70gPCBreW9rb2t1XCA7CivoobDlhYYgPCBzdWljaG91XCA7Civlm73kuK0gPCBrdW5panV1XCA7Civnp4vpnJwgPCBzaHV1c291XCA7CivllonnrJsgPCBub2RvYnVlXCA7Civnp4vpnJYgPCBzaHV1cmluXCA7CivlvqHnm67njokgPCBvbWVkYW1hXCA7CivooYzllZMgPCBneW91a2VpXCA7Civlmo8gPCBrdXNoYW1pXCA7Civnp4vpm6ggPCBha2lzYW1lXCA7CivnqbrohbkgPCBrdXVmdWt1XCA7CivmjL/lhaUgPCBzb3VueXV1XCA7Civlkozpo58gPCB3YXNob2t1XCA7Civmipzmk6IgPCBiYXR0ZWtpXCA7CivpjbXnqbQgPCBrYWdpYW5hXCA7Civon7vlt7sgPCBhcmltYWtpXCA7CivmjIflnKcgPCBzaGlhdHN1XCA7CivmipXmk7IgPCB0b3V0ZWtpXCA7CivlhazmlofmiYAgPCBrdW1vbmpvXCA7CivmjIflm7MgPCBzYXNoaXp1XCA7CivlvqHluqfmiYAgPCBnb3phc2hvXCA7CivmurrmsLQgPCBkZWtpc3VpXCA7CivlpKfpi7jlsZEgPCBvZ2FrdXp1XCA7Civnr4nlnLAgPCB0c3VraWppXCA7CivnlJjmtbfoi5QgPCBhbWFub3JpXCA7Civlu7rorbDmoYggPCBrZW5naWFuXCA7CivonYvnh60gPCByb3Vzb2t1XCA7CivmurrmrbsgPCBkZWtpc2hpXCA7CivnooHkvJrmiYAgPCBnb2thaWpvXCA7Civmi5nlroUgPCBzZXR0YWt1XCA7CivmiYvmsqIgPCBzaHV0YWt1XCA7CivmipHmj5ogPCB5b2t1eW91XCA7CivnrIrms5UgPCB6YXJ1aG91XCA7Civmh4fnr6QgPCBrb250b2t1XCA7CivllJDolq8gPCBrYXJhaW1vXCA7CivnqI7oqr8gPCB6ZWljaG91XCA7CivomK3pi7MgPCByYW5jaHV1XCA7Civmi6HlpKcgPCBrYWt1ZGFpXCA7CivpmLLngavmiLggPCBib3VrYWRvXCA7CivpioXpkLggPCBkb3V0YWt1XCA7CivnmbvlsbHlrrYgPCB0b3phbmthXCA7CivngorkuovloLQgPCBzdWlqaWJhXCA7CivmiJDnhp8gPCBzZWlqdWt1XCA7CivmupzmsaAgPCB0YW1laWtlXCA7Civmtabph4wgPCB1cmF6YXRvXCA7Civoi7Hmlofnp5EgPCBlaWJ1bmthXCA7Civmua/nhqggPCB5dW5vc2hpXCA7CivllqvnhZkgPCBraXRzdWVuXCA7CivmuoDmva4gPCBtYW5jaG91XCA7CivlmoflmocgPCBrYWtrYWt1XCA7Civmi5PlpKcgPCB0YWt1ZGFpXCA7CivmupDmtYEgPCBnZW5yeXV1XCA7CivnqY7ohLEgPCBlaWRhdHN1XCA7CivnqoHnq68gPCB0b3BwYW5hXCA7CivphbjmgKfpm6ggPCBzYW5zZWl1XCA7Civpu4Tpm4AgPCBrb3VqYWt1XCA7CivlloDnl7AgPCBrYWt1dGFuXCA7CivpvLvooYAgPCBoYW5hZGppXCA7CivpjK/ntpwgPCBzYWt1c291XCA7CivooZPkuK0gPCBqdXRjaHV1XCA7CivmtL7nlJ/oqp4gPCBoYXNlaWdvXCA7CivmtL7plqUgPCBoYWJhdHN1XCA7CivpgbrkvJ3mgKcgPCBpZGVuc2VpXCA7CivljLvnmYLosrsgPCBpcnlvdWhpXCA7CivlpKfnpZbniLYgPCBkYWlzb2Z1XCA7Civpurvpm4AgPCBtYXplamFuXCA7Civnr4bliLsgPCB0ZW5rb2t1XCA7Civou43ojbzliKkgPCBndW5kYXJpXCA7CivmiK/mrYwgPCB6YXJldXRhXCA7CivllJDoh7wgPCBrYXJhdXN1XCA7CivmuoDmtLIgPCBtYW5zaHV1XCA7Civmub7mtYEgPCB3YW5yeXV1XCA7CivlloTnjokgPCB6ZW5kYW1hXCA7Civnp4HpgJogPCBzaGl0c3V1XCA7CivnqK7oi5cgPCBzaHVieW91XCA7Civnmb3kupzntIAgPCBoYWt1YWtpXCA7CivkuLwgPCBkb25idXJpXCA7Civmtbfos4ogPCBrYWl6b2t1XCA7CivnqK7oiosgPCB0YW5laW1vXCA7CivmiKbmrbQgPCBzZW5yZWtpXCA7CivpqI7ppqzmiKYgPCBraWJhc2VuXCA7Civnm67kuIDmna8gPCBtZWlwcGFpXCA7CivmjIflgKQgPCBzYXNoaW5lXCA7CivoqJjkuovmlocgPCBraWppYnVuXCA7CivmtbfosaEgPCBzZWl1Y2hpXCA7Civmirzlo7IgPCBvc2hpdXJpXCA7Civlk4HoqZUgPCBoaW5weW91XCA7Civmg6jphbcgPCB6YW5rb2t1XCA7CivlkozlpKrpvJMgPCB3YWRhaWtvXCA7Civmgqrpo58gPCBha3VqaWtpXCA7Civom67nmoQgPCBiYW50ZWtpXCA7CivkuojlrprmoYggPCB5b3RlaWFuXCA7CivnpZ7pq4QgPCBzaGluenVpXCA7CivomIfpiYQgPCBzb3RldHN1XCA7Civon4TlsYUgPCBjaGlra3lvXCA7CivmhJroqqwgPCBndXNldHN1XCA7Civmh7jmv4EgPCBrZW5kYWt1XCA7Civmup3mnb8gPCBkb2J1aXRhXCA7CivnrKblj7flmaggPCBmdWdvdWtpXCA7CivlmqLkuK0gPCBub3VjaHV1XCA7Civmm7joqJjoo5wgPCBzaG9raWhvXCA7Civnp5joqKMgPCBoaWtldHN1XCA7Civnqbrnmb0gPCBrdXVoYWt1XCA7Civlv5zmj7Tlm6MgPCBvdWVuZGFuXCA7CivpgbrkvJ3lrZAgPCBpZGVuc2hpXCA7CivpmaTojYnlmaggPCBqb3NvdWtpXCA7CivombnoibIgPCBuaWppaXJvXCA7CivnrZblrpogPCBzYWt1dGVpXCA7CivmtYHpgKMgPCByeXV1cmVuXCA7CivnqY3nrpcgPCBzZWtpc2FuXCA7Civkuojlrprml6UgPCB5b3RlaWJpXCA7CivmgqrpmLsgPCB0c3V3YXJpXCA7CivmiK/mm7IgPCBnaWt5b2t1XCA7Civkv53mjIHogIUgPCBob2ppc2hhXCA7Civmi6HlhYUgPCBrYWt1anV1XCA7CivnqYDnsokgPCBrb2t1ZnVuXCA7CivllJDns7ggPCBrYXJhaXRvXCA7CivpiYTpjpogPCB0ZXR0c3VpXCA7Civnqbrnk7YgPCBrYXJhYmluXCA7CivljZjkvY3lhYMgPCB0YW5pZ2VuXCA7CivmhI/lnLDmgqogPCBpaml3YXJ1XCA7CivmuoDmoKogPCBtYW5rYWJ1XCA7Civnp5jooZMgPCBoaWp1dHN1XCA7Civom4vnmb0gPCB0YW5wYWt1XCA7CivkuIrlh7rmnaUgPCBqb3VkZWtpXCA7CivlkajpgYogPCBzaHV1eXV1XCA7CivnrKblj7fljJYgPCBmdWdvdWthXCA7Civmu4XluqYgPCBtZXRzdWRvXCA7CivmuoDmm7QgPCBtYW56YXJhXCA7CivlkajovrogPCBzaHV1aGVuXCA7CivmiJDmoYIgPCBuYXJpa2VpXCA7Civmtbfom4cgPCB1bWloZWJpXCA7CivmtLvot68gPCBrYXRzdXJvXCA7Civpu5LosoIgPCBrdXJvdGVuXCA7CivkuI3nm7jlv5wgPCBmdXNvdW91XCA7Civpiq3okbUgPCB6ZW5pYW9pXCA7Civoi7Hoqp7niYggPCBlaWdvYmFuXCA7Civph43ngavlmaggPCBqdXVrYWtpXCA7Civms6Lpn7MgPCBuYW1pb3RvXCA7CivmkanliKnmlK8gPCBtYXJpc2hpXCA7CivnqJznt5ogPCByeW91c2VuXCA7CivnlbDnq6/oppYgPCBpdGFuc2hpXCA7CivmiY3lvrMgPCBzYWl0b2t1XCA7Civnq4vmoYggPCByaXRzdWFuXCA7Civpu5noqo0gPCBtb2t1bmluXCA7CivnqbrniIYgPCBrdXViYWt1XCA7CivlkITpp4UgPCBrYWt1ZWtpXCA7CivmirzlhaUgPCBvc2hpaXJlXCA7Civmt7fnlKggPCBrb24nJ3lvdVwgOwor5rim5r2uIDwgdXp1c2hpb1wgOwor6JGs5YSA5bGLIDwgc291Z2l5YVwgOwor6aCF5L2N572uIDwga291aWNoaVwgOwor6Yej6a2aIDwgY2hvdWd5b1wgOwor5oiR5pa5IDwgd2FnYWhvdVwgOwor56m054aKIDwgYW5hZ3VtYVwgOwor5omA5b6XIDwgc2hvdG9rdVwgOwor5Yy75bir5rOVIDwgaXNoaWhvdVwgOwor5rqc5oGvIDwgdGFtZWlraVwgOwor5oGt6aCGIDwga3lvdWp1blwgOwor5ryP5Yi7IDwgcm91a29rdVwgOwor6JGh6JCE5ZySIDwgYnVkb3VlblwgOwor6Jap6ZW3IDwgc2F0Y2hvdVwgOwor5rWB6KiAIDwgcnl1dWdlblwgOwor5ouF5Lu7IDwgdGFuJyduaW5cIDsKK+eri+aYpSA8IHJpc3NodW5cIDsKK+eqr+alrSA8IHlvdWd5b3VcIDsKK+aKnOWOuyA8IGJha2t5b3VcIDsKK+a4qea1tCA8IG9uJyd5b2t1XCA7CivnpoHotrMgPCBraW5zb2t1XCA7CivmupbmgKUgPCBqdW5reXV1XCA7CivlkIPpn7MgPCBraXRzdW9uXCA7CivpiYTot68gPCB0ZXRzdXJvXCA7CivkupTmlpfnsbMgPCBnb3RvYmVpXCA7CivnpL7plbcgPCBzaGFjaG91XCA7CivlkITpnaIgPCBrYWt1bWVuXCA7Civpu5LooYAgPCBrdXJvY2hpXCA7CivmtojogJcgPCBzaG91bW91XCA7Civnq6PmiJAgPCBzaHVuc2VpXCA7Civpu5Lon7sgPCBrdXJvYXJpXCA7Civlj6/mhJvmsJcgPCBrYXdhaWdlXCA7CivmtYHooYwgPCByeXV1a291XCA7CivnqpLmrbsgPCBjaGlzc2hpXCA7Civph5Hpq5ggPCBraW5kYWthXCA7CivkupTnt5rorZwgPCBnb3NlbmZ1XCA7CivlkITpmo4gPCBrYWt1a2FpXCA7Civnp4vojYkgPCBha2lrdXNhXCA7CivmiY3lraYgPCBzYWlnYWt1XCA7CivlvqHlupzlhoUgPCBnb2Z1bmFpXCA7CivlrZDppqzluqcgPCBrb3VtYXphXCA7CivmhInoibIgPCB5dXNob2t1XCA7CivlsI/oiqXlrZAgPCBrb2tlc2hpXCA7CivmuIXmv4EgPCBzZWlkYWt1XCA7CivlkajopqcgPCBzaHV1cmFuXCA7CivmgZLmuKnlmaggPCBrb3VvbmtpXCA7CivmiYDlsZ4gPCBzaG96b2t1XCA7CivmiKblvbkgPCBzZW4nJ2VraVwgOwor55+l5oG16ICFIDwgY2hpZXNoYVwgOwor6JaE6ZuyIDwgdXN1Z3Vtb1wgOwor6JaE6ZuqIDwgdXN1eXVraVwgOwor56Wd6L6eIDwgc2h1a3VqaVwgOwor5oqR5Yi2IDwgeW9rdXNlaVwgOwor5oGL6aKoIDwga29pa2F6ZVwgOwor56We6Ly/IDwgbWlrb3NoaVwgOwor6YG66LSI5YiGIDwgaXpvdWJ1blwgOwor6bm/6L+9IDwgc2hpa2FvaVwgOwor56WW6L+wIDwgc29qdXRzdVwgOwor5oiK5oiMIDwgYm9qdXRzdVwgOwor6Jas6YWSIDwgeWFrdXNodVwgOwor5ZGq6KGTIDwganVqdXRzdVwgOwor5Y+k6aGUIDwgZnVydWdhb1wgOwor5aSq5YiA6a2aIDwgdGFjaGl1b1wgOwor5omL5aa7IDwgdGVkenVtYVwgOwor5re35r+BIDwga29uZGFrdVwgOwor5Yqp5ryU6ICFIDwgam9lbnNoYVwgOwor6YeR6aGNIDwga2luZ2FrdVwgOwor5Luj55CG6YOoIDwgZGFpcmlidVwgOwor5oOo6JC9IDwgc2FucmFrdVwgOwor6JiK6JOEIDwgdW5jaGlrdVwgOwor6YqA6ImyIDwgZ2luJydpcm9cIDsKK+m6puinkiA8IGJha2tha3VcIDsKK+WPsOmWoyA8IGRhaWtha3VcIDsKK+a6gOW4rSA8IG1hbnNla2lcIDsKK+enu+WLleS9kyA8IGlkb3V0YWlcIDsKK+mBi+WLleiyuyA8IHVuZG91aGlcIDsKK+Wkqem1nee1qCA8IGJpcm91ZG9cIDsKK+S4gOmFuOWMliA8IGlzc2Fua2FcIDsKK+elneizgCA8IHNodWt1Z2FcIDsKK+aCquiplSA8IGFrdWh5b3VcIDsKK+aCquiosyA8IGFrdXlha3VcIDsKK+iVqumbkSA8IGJ1emF0c3VcIDsKK+m7kuiMtiA8IGt1cm9jaGFcIDsKK+eojuebriA8IHplaW1va3VcIDsKK+mBoOi3nemboiA8IGVua3lvcmlcIDsKK+S9kOizgOecjCA8IHNhZ2FrZW5cIDsKK+ekuumBlCA8IGppdGF0c3VcIDsKK+iZjueptCA8IGtva2V0c3VcIDsKK+mrmOmfs+mDqCA8IGtvdW9uYnVcIDsKK+mOruWumiA8IGNoaW50ZWlcIDsKK+eVsOerr+iAhSA8IGl0YW5zaGFcIDsKK+etkuS6lSA8IHRzdXRzdWlcIDsKK+WTsueQhiA8IHRldHN1cmlcIDsKK+mIjei2syA8IGRvbnNva3VcIDsKK+epuuahtiA8IGthcmFva2VcIDsKK+iWhOmIjSA8IHVzdW5vcm9cIDsKK+aHsuaCqiA8IGNob3Vha3VcIDsKK+epuuagqiA8IGt1dWthYnVcIDsKK+ibruaXjyA8IGJhbnpva3VcIDsKK+esm+WQuSA8IGZ1ZWZ1a2lcIDsKK+aEn+WMlumZoiA8IGthbmthaW5cIDsKK+ernOWuriA8IHJ5dXVndXVcIDsKK+elneiogCA8IHNodXVnZW5cIDsKK+aBpei+sSA8IGNoaWpva3VcIDsKK+S4jeapn+WrjCA8IGZ1a2lnZW5cIDsKK+mDqOWkluenmCA8IGJ1Z2FpaGlcIDsKK+WWhOaCqiA8IHplbicnYWt1XCA7Civph43pjq4gPCBqdXVjaGluXCA7CivoloTpgYcgPCBoYWt1Z3V1XCA7CivkupznhrHluK8gPCBhbmV0dGFpXCA7CivmiYvlj6MgPCB0ZWd1Y2hpXCA7CivmsojpmY0gPCBjaGlua291XCA7CivlloTlvrMgPCB6ZW50b2t1XCA7Civmt6vmrLIgPCBpbicneW9rdVwgOwor6YqA57SZIDwgZ2luZ2FtaVwgOwor5a+M5aOr5bGxIDwgZnVqaXNhblwgOwor6Yi06JitIDwgc3V6dXJhblwgOwor5oim5Z+fIDwgc2VuJydpa2lcIDsKK+WQn+iqpiA8IGdpbnNob3VcIDsKK+aMh+aPruaJgCA8IHNoaWtpam9cIDsKK+WTgeebriA8IGhpbm1va3VcIDsKK+mGnOmhniA8IHNodXVydWlcIDsKK+eUn+mGpOayuSA8IGtpam91eXVcIDsKK+mKheeulCA8IGRvdWhha3VcIDsKK+aIpuWbvSA8IHNlbmdva3VcIDsKK+aEm+edgCA8IGFpY2hha3VcIDsKK+a1hOeRoOeSgyA8IGpvdXJ1cmlcIDsKK+ijnOS9kOWumCA8IGhvc2FrYW5cIDsKK+mIjeinkiA8IGRvbmtha3VcIDsKK+m6puiMtiA8IG11Z2ljaGFcIDsKK+m7kue3miA8IGtva3VzZW5cIDsKK+mBjuWOu+W9oiA8IGtha29rZWlcIDsKK+iNieS7ruWQjSA8IHNvdWdhbmFcIDsKK+aEmuebtCA8IGd1Y2hva3VcIDsKK+mKgOeulCA8IGdpbnBha3VcIDsKK+iXpOiJsiA8IGZ1amlpcm9cIDsKK+aIuOWPoyA8IHRvZ3VjaGlcIDsKK+epuuaPmiA8IGthcmFhZ2VcIDsKK+mKgOesmyA8IGdpbnRla2lcIDsKK+W+oeapn+WrjCA8IGdva2lnZW5cIDsKK+esrOS4gCA8IGRhaWljaGlcIDsKK+mHjumBkyA8IG5vbWljaGlcIDsKK+WUkOatjCA8IGthcmF1dGFcIDsKK+WQjOiqvyA8IGRvdWNob3VcIDsKK+S4jeWxpeihjCA8IGZ1cmlrb3VcIDsKK+WQiOiqvyA8IGdvdWNob3VcIDsKK+WPo+i8qiA8IGt1Y2hpd2FcIDsKK+W/oOmtgiA8IGNodXVrb25cIDsKK+WQhOirliA8IGtha3Vyb25cIDsKK+WQiOiplSA8IGdhcHB5b3VcIDsKK+WPmei/sCA8IGpvanV0c3VcIDsKK+eri+WgtCA8IHRhY2hpYmFcIDsKK+WUkOanmCA8IGthcmF5b3VcIDsKK+mYv+W8l+WIqeWKoCA8IGFmdXJpa2FcIDsKK+m6u+e4hCA8IGFzYW5hd2FcIDsKK+m2uum0kiA8IHNla2lyZWlcIDsKK+aCquiHrSA8IGFrdXNodXVcIDsKK+aTrOS6uuWMliA8IGdpamlua2FcIDsKK+epjeacqCA8IHRzdW1pa2lcIDsKK+a6luWJhyA8IGp1bnNva3VcIDsKK+mOruWPsCA8IGNoaW5kYWlcIDsKK+WIhuW6puWZqCA8IGJ1bmRva2lcIDsKK+ayiOmFlCA8IGNoaW5zdWlcIDsKK+m7meeltyA8IG1va3V0b3VcIDsKK+mHkei1pCA8IGtpbicnYWthXCA7Civnq4vlm70gPCByaWtrb2t1XCA7CivmiYvkuK0gPCBzaHVjaHV1XCA7CivmiYvkuIsgPCB0ZXNoaXRhXCA7Civlj47ovIkgPCBzaHV1c2FpXCA7Civlh7rnm67ph5EgPCBkZW1la2luXCA7CivlpJzmsb3ou4ogPCB5b2dpc2hhXCA7CivmuoDljZMgPCBtYW50YWt1XCA7Civlt6bmtL7ns7sgPCBzYWhha2VpXCA7CivmuKblt7sgPCB1enVtYWtpXCA7CivmtbfnjKsgPCB1bWluZWtvXCA7CivmhJrniakgPCBndWJ1dHN1XCA7Civph43osqwgPCBqdXVzZWtpXCA7CivpvLvmsZcgPCBoYW5hYXNlXCA7CivmgKXpgIEgPCBreXV1c291XCA7CivlloTlpbMgPCB6ZW4nJ255b1wgOwor6Ymb562GIDwgZW5waXRzdVwgOwor5oiS5ZCNIDwga2FpbXlvdVwgOwor5Y6E6ZujIDwgeWFrdW5hblwgOwor5rW354mbIDwga2FpZ3l1dVwgOwor6Jas6I6iIDwgeWFra3lvdVwgOwor6by75q2MIDwgaGFuYXV0YVwgOwor5oaR5ougIDwgaHlvdWt5b1wgOwor6YmE57SiIDwgdGVzc2FrdVwgOwor5Y+N6LaKIDwgaGFuZXRzdVwgOwor5ZC56IG0IDwgZnVpY2hvdVwgOwor5rmv5Y+jIDwgeXVndWNoaVwgOwor5Y+k6KqsIDwga29zZXRzdVwgOwor5rC06aO0IDwgbWl6dWFtZVwgOwor5Y2z6aGMIDwgc29rdWRhaVwgOwor5Y+j6KqsIDwga3V6ZXRzdVwgOwor6KmQ5qy6572qIDwgc2FnaXphaVwgOwor56iu5p2/IDwgdGFuZWl0YVwgOwor6Jmr5rCXIDwgbXVzaGlrZVwgOwor56m65bitIDwga3V1c2VraVwgOwor5ris5a6aIDwgc29rdXRlaVwgOwor6aWC6aOp5bGLIDwgdWRvbicneWFcIDsKK+a5vuWGhSA8IHdhbicnbmFpXCA7CivmhJXnhLYgPCBnYWt1emVuXCA7CivnqK7mnKwgPCB0YW5laG9uXCA7Civlj47os4QgPCBzaHV1d2FpXCA7CivlpKLmg7PlrrYgPCBtdXNvdWthXCA7CivoqJjorZzms5UgPCBraWZ1aG91XCA7CivkuIDmrbvlvowgPCBpc3NoaWdvXCA7Civph43oqLMgPCBqdXV5YWt1XCA7CivpiI3oibIgPCBuaWJpaXJvXCA7Civmt7Hmha4gPCBzaGlucnlvXCA7CivpnZ7ooZvnlJ8gPCBoaWVpc2VpXCA7CivnqK7ml48gPCBzaHV6b2t1XCA7Civph4zopqogPCBzYXRvb3lhXCA7Civpu5Lnl6MgPCBrdXJvYXphXCA7CivphovphbggPCBzYWt1c2FuXCA7CivpuqbnrJsgPCBtdWdpYnVlXCA7CivlkJvoh6MgPCBrdW5zaGluXCA7CivmtJ7nqbQgPCBob3JhYW5hXCA7CivoqqTmipXkuIsgPCBnb3RvdWthXCA7CivmtbjmvaQgPCBzaGluanVuXCA7Civlj6TooYAgPCBmdXJ1Y2hpXCA7CivmhoLmiJogPCB5dXVzZWtpXCA7CivlkKvnvp4gPCBnYW5zaHV1XCA7CivnqbrlsIYgPCBrdXVzaG91XCA7CivmsLTpmbggPCBzdWlyaWt1XCA7CivkuI3oh6rnlLEgPCBmdWppeXV1XCA7CivmtYHnlKggPCByeXV1eW91XCA7CivmuoDkuoYgPCBtYW5yeW91XCA7CivmtYHnlKMgPCByeXV1emFuXCA7CivnqY3mgqogPCBzZWtpYWt1XCA7CivpiZvnm7QgPCBlbmNob2t1XCA7CivjgIMgPCBvbmFqaWt1XCA7CivmgqrnrZYgPCBha3VzYWt1XCA7Civpuqbnp4sgPCBtdWdpYWtpXCA7Civph5Hono0gPCBraW4nJ3l1dVwgOwor6Iux5pWw5a2XIDwgZWlzdXVqaVwgOwor5b+F6ZyAIDwgaGl0c3VqdVwgOwor56We57WMIDwgc2hpbmtlaVwgOwor5Y+N6KaGIDwgaGFucHVrdVwgOwor56qB5aaCIDwgdG90c3Vqb1wgOwor5ray5pm2IDwgZWtpc2hvdVwgOwor5ZCM6IW5IDwgZG91ZnVrdVwgOwor56mN5byKIDwgc2VraWhlaVwgOwor6Jma5qWtIDwga3lvZ3lvdVwgOwor5rK56I+cIDwgYWJ1cmFuYVwgOwor5Y2K6aGNIDwgaGFuZ2FrdVwgOwor5rG66K2wIDwga2V0c3VnaVwgOwor6YmE55+zIDwgdGVzc2VraVwgOwor5b+r6YGpIDwga2FpdGVraVwgOwor6YW36YGHIDwga29rdWd1dVwgOwor6buZ54S2IDwgbW9rdW5lblwgOwor6YWq6YW4IDwgcmFrdXNhblwgOwor6YeJ6JasIDwgeXV1eWFrdVwgOwor5ZGK55+lIDwga29rdWNoaVwgOwor55+l5oOF5oSPIDwgY2hpam91aVwgOwor6aKo5ZGC5qG2IDwgZnVyb29rZVwgOwor5oGL6I2JIDwga29pZ3VzYVwgOwor5rWm5rOiIDwgdXJhbmFtaVwgOwor6Jas57GgIDwgeWFrdXJvdVwgOwor6Iux6Kqe5ZyPIDwgZWlnb2tlblwgOwor56m65ZynIDwga3V1YXRzdVwgOwor5L2O6Z+z6YOoIDwgdGVpb25idVwgOwor56eL5rC0IDwgc2h1dXN1aVwgOwor5Y+z6IWVIDwgbWlnaXVkZVwgOwor5Y+j6Iy2IDwga3VjaGlqYVwgOwor5b6S6aOfIDwgdG9zaG9rdVwgOwor6YWq6L6yIDwgcmFrdW5vdVwgOwor6JaE6IKJIDwgdXN1bmlrdVwgOwor5YyX6a6uIDwgaG9rdXNlblwgOwor6buE54afIDwga291anVrdVwgOwor5LqM5pyf5Yi2IDwgbmlraXNlaVwgOwor5Y+O6JS1IDwgc2h1dXpvdVwgOwor5rW05qe9IDwgeW9rdXNvdVwgOwor6YeR6ImyIDwga29uamlraVwgOwor5pOs5aOw6KqeIDwgZ2lzZWlnb1wgOwor5Y6f6Ki7IDwgZ2VuY2h1dVwgOwor5oKq55eHIDwgYWt1c2hvdVwgOwor5oKq55eFIDwgYWt1YnlvdVwgOwor5YyW6aqoIDwga2Frb3RzdVwgOwor6YeM6IqLIDwgc2F0b2ltb1wgOwor5Y+N6JC9IDwgaGFucmFrdVwgOwor5b+D6YWNIDwgc2hpbnBhaVwgOwor5rC36LyqIDwgaHlvdXJpblwgOwor5oSf5pyNIDwga2FucHVrdVwgOwor5q+S6a2aIDwgZG9rdWd5b1wgOwor56eB5qyyIDwgc2hpeW9rdVwgOwor6bm/56CmIDwgcm9rdXNhaVwgOwor55So5YuZ5ZOhIDwgeW91bXVpblwgOwor56qu5LmPIDwga3l1dWJvdVwgOwor5rex5aScIDwgc2hpbicneWFcIDsKK+eiuuiqjSA8IGtha3VuaW5cIDsKK+a4m+WPjiA8IGdlbnNodXVcIDsKK+iWrOekvCA8IHlha3VyZWlcIDsKK+mMqOWcsCA8IGJ5b3VjaGlcIDsKK+iWhOe4gSA8IHVzdWJlcmlcIDsKK+W+oeiLpuWKtCA8IGdva3Vyb3VcIDsKK+acqueZu+iomCA8IG1pdG91a2lcIDsKK+ewoeaYk+WMliA8IGthbicnaWthXCA7CivoloTntbkgPCB1c3VnaW51XCA7Civlv6voq74gPCBrYWlkYWt1XCA7CivljJfpoqggPCBob2t1ZnV1XCA7CivkuIDpgY7mgKcgPCBpa2thc2VpXCA7Civph43ogbQgPCBqdXVjaG91XCA7Civpipjmn4QgPCBtZWlnYXJhXCA7CivmgqrnjokgPCBha3VkYW1hXCA7Civnp5jmm7IgPCBoaWt5b2t1XCA7CivoloTntJkgPCB1c3VnYW1pXCA7CivoloTntIUgPCB1c3ViZW5pXCA7CivpgYvpgIHosrsgPCB1bnNvdWhpXCA7CivmuIvlkbMgPCBzaGlidW1pXCA7CivljZfpgLIgPCBuYW5zaGluXCA7CivljLvluKvkvJogPCBpc2hpa2FpXCA7CivpipjmnKggPCBtZWlib2t1XCA7CivlkI3np7AgPCBtZWlzaG91XCA7CivmtYHmsZcgPCByeXV1a2FuXCA7CivljJfpnaIgPCBob2t1bWVuXCA7CivmgonnmoYgPCBzaGlra2FpXCA7CivmtYHmsLQgPCByeXV1c3VpXCA7Civoh6rlj5nkvJ0gPCBqaWpvZGVuXCA7CivnqoHlhYggPCB0b3NzYWtpXCA7CivmtLvms4EgPCBrYWtreW91XCA7Civph4jnvqkgPCBzaGFrdWdpXCA7CivlpKnmsJflsYsgPCB0ZW5raXlhXCA7Civpm6PmmJPluqYgPCBuYW4nJ2lkb1wgOwor5ZCJ56WlIDwga2lzc2hvdVwgOwor56Gr6YW4IDwgcnl1dXNhblwgOwor5byx6b2iIDwgamFrdXJlaVwgOwor5rOh55ubIDwgYXdhbW9yaVwgOwor5YyX6ZmQIDwgaG9rdWdlblwgOwor56eL5pm0IDwgYWtpYmFyZVwgOwor56m05Ye5IDwgYW5hYm9rb1wgOwor6YeR57ayIDwga2FuYWFtaVwgOwor5Y+356ybIDwgZ291dGVraVwgOwor6JuH5Y+jIDwgamFndWNoaVwgOwor5reR5aWzIDwgc2h1a3Vqb1wgOwor5Y+M57+8IDwgc291eW9rdVwgOwor5Luu5pWw6YOoIDwga2FzdXVidVwgOwor5Y2K6L6yIDwgaGFuJydub3VcIDsKK+mIjeeXmyA8IGRvbnRzdXVcIDsKK+WNgeWtl+i3ryA8IGp1dWppcm9cIDsKK+WMl+mWgCA8IGtpdGFtb25cIDsKK+WQuOeJqSA8IHN1aW1vbm9cIDsKK+WNgemAsiA8IGppc3NoaW5cIDsKK+iWrOeUqCA8IHlha3V5b3VcIDsKK+mKgOadjyA8IGdpbicnbmFuXCA7CivmuKHku48gPCB0b2Z1dHN1XCA7Civno4rokL0gPCByYWlyYWt1XCA7CivomZrlv4MgPCBreW9zaGluXCA7CivmtJfmu4wgPCBzZW5kZWtpXCA7CivmtKXms6IgPCB0c3VuYW1pXCA7CivmspbnuIQgPCBva2luYXdhXCA7CivmsJHouIogPCBtaW4nJ3lvdVwgOwor6Jma5byxIDwga3lvamFrdVwgOwor5Y+k562GIDwga29oaXRzdVwgOwor5b6M6YecIDwgYXRvZ2FtYVwgOwor6YeN56+kIDwganV1dG9rdVwgOwor5re75YmKIDwgdGVuc2FrdVwgOwor6YeR562LIDwga2luc3VqaVwgOwor5b6X6YGTIDwgdG9rdWRvdVwgOwor6LKg56ym5Y+3IDwgZnVmdWdvdVwgOwor6YeN566xIDwganV1YmFrb1wgOwor5ZCE55yMIDwga2FrdWtlblwgOwor5Y+v56WdIDwga2FzaGlrdVwgOwor5ZCM55eFIDwgZG91YnlvdVwgOwor5aSn5b6h5omAIDwgb29nb3Nob1wgOwor5Y+O57SNIDwgc2h1dW5vdVwgOwor56m65LitIDwga3V1Y2h1dVwgOwor6buS5p2/IDwga29rdWJhblwgOwor6JeB54GwIDwgd2FyYWJhaVwgOwor5YiG5biD5ZuzIDwgYnVucHV6dVwgOwor6YqD5pKDIDwganV1Z2VraVwgOwor55+z6a+bIDwgaXNoaWRhaVwgOwor6Yac6IGeIDwgc2h1dWJ1blwgOwor6KO95Zuz5a62IDwgc2VpenVrYVwgOwor5b6M6YC4IDwga291aXRzdVwgOwor5Y+w55+zIDwgZGFpaXNoaVwgOwor5Y2T6KuWIDwgdGFrdXJvblwgOwor5q6/6ZajIDwgZGVua2FrdVwgOwor6JaE55quIDwgdXN1a2F3YVwgOwor5oim5pmC5LiLIDwgc2VuamlrYVwgOwor5Y6a6Ie8IDwgYXRzdXVzdVwgOwor5Y2a6KanIDwgaGFrdXJhblwgOwor5aSp5rCX5ZuzIDwgdGVua2l6dVwgOwor5Y2Y6KeSIDwgdGFua2FrdVwgOwor6JmO5be7IDwgdG9yYWthblwgOwor5b2T6ZmQIDwgdG91Z2lyaVwgOwor56mN5YiGIDwgc2VraWJ1blwgOwor6Yyv5LmxIDwgc2FrdXJhblwgOwor6buS5paRIDwga29rdWhhblwgOwor5rK755mCIDwgY2hpcnlvdVwgOwor5Y2Y6KSHIDwgdGFucHVrdVwgOwor5q6L6auYIDwgemFuZGFrYVwgOwor6YmE5qmLIDwgdGVra3lvdVwgOwor6LuN5LqL6LK7IDwgZ3VuamloaVwgOwor5re35L2cIDwga29uc2FrdVwgOwor6YeR55+zIDwga2luc2VraVwgOwor54KO5aSp5LiLIDwgZW50ZW5rYVwgOwor5LuK5pel5piO5pelIDwga3lvdWFzdVwgOwor5Y+O56iOIDwgc2h1dXplaVwgOwor5oOc5pWXIDwgc2VraWhhaVwgOwor56iy5Y+iIDwgaW5hbXVyYVwgOwor5rWu5b2rIDwgdWtpYm9yaVwgOwor5b6M6LazIDwgYXRvYXNoaVwgOwor5YyX6L66IDwgaG9rdWhlblwgOwor6IKl5rqA5YWQIDwgaGltYW5qaVwgOwor6Yej55O2IDwgdHN1cnViZVwgOwor5rWq5ryr5rS+IDwgcm9tYW5oYVwgOwor5oWf5ZOtIDwgZG91a29rdVwgOwor5oOR5pifIDwgd2FrdXNlaVwgOwor5Y2K6KWfIDwgaGFuJydlcmlcIDsKK+i1t+mHjeapnyA8IGtpanV1a2lcIDsKK+Wcp+egleapnyA8IGFzc2Fpa2lcIDsKK+atu+mthCA8IHNoaWhha3VcIDsKK+Wbnui3r+WbsyA8IGthaXJvenVcIDsKK+eiuuiBniA8IGtha3VidW5cIDsKK+aBi+eXhSA8IGtvaXlhbWlcIDsKK+mHkeeahCA8IGtpbnRla2lcIDsKK+WNiuiiliA8IGhhbnNvZGVcIDsKK+WQuOauuyA8IHN1aWdhcmFcIDsKK+iZq+WegiA8IGNodXVzdWlcIDsKK+awkeihhiA8IG1pbnNodXVcIDsKK+WFteWZqOW6qyA8IGhlaWtpa29cIDsKK+mJhOafsSA8IHRldGNodXVcIDsKK+avjumAsSA8IG1haXNodXVcIDsKK+aui+mhjSA8IHphbmdha3VcIDsKK+aBr+eBvSA8IHNva3VzYWlcIDsKK+WykOmYnOecjCA8IGdpZnVrZW5cIDsKK+W8sembuyA8IGpha3VkZW5cIDsKK+iUteexsyA8IGt1cmFtYWlcIDsKK+a1t+WxsSA8IHVtaXlhbWFcIDsKK+aui+mfvyA8IHphbmt5b3VcIDsKK+a0i+alvSA8IHlvdWdha3VcIDsKK+mHjeeXhSA8IGp1dWJ5b3VcIDsKK+iWrOa2siA8IHlha3Vla2lcIDsKK+iWhOeJqSA8IHVzdW1vbm9cIDsKK+iWhOeJhyA8IGhha3VoZW5cIDsKK+azpea1tyA8IGRvcm91bWlcIDsKK+W6tuWLmeiqsiA8IHNob211a2FcIDsKK+W+oeiiiyA8IG9mdWt1cm9cIDsKK+awtOiKuCA8IG1penVnZWlcIDsKK+WNs+iIiCA8IHNva2t5b3VcIDsKK+enmOWvhiA8IGhpbWl0c3VcIDsKK+WNteiGnCA8IHJhbm1ha3VcIDsKK+WPjeebriA8IGhhbm1va3VcIDsKK+awtOiJsiA8IG1penVpcm9cIDsKK+mboue4geeKtiA8IHJpZW5qb3VcIDsKK+iVg+elniA8IGJhbnNoaW5cIDsKK+mHneeKtiA8IGhhcmlqb3VcIDsKK+auiemboyA8IGp1bicnbmFuXCA7Civlvovoqp4gPCByaXRzdWdvXCA7CivmgYvnjKsgPCBrb2luZWtvXCA7CivlkozlvI8gPCB3YXNoaWtpXCA7CivljZjokYkgPCB0YW4nJ3lvdVwgOwor6buZ5b6TIDwgbW9rdWp1dVwgOwor6YeR546JIDwga2ludGFtYVwgOwor6YqA5bmVIDwgZ2lubWFrdVwgOwor55+i6Z2iIDwgeWFvbW90ZVwgOwor56iO5Y+OIDwgemVpc2h1dVwgOwor56iy5L2cIDwgaW5hc2FrdVwgOwor5rSL5pyNIDwgeW91ZnVrdVwgOwor5q2j6KaP5YyWIDwgc2Vpa2lrYVwgOwor5Y2w6IKJIDwgaW4nJ25pa3VcIDsKK+aAp+eZliA8IHNlaWhla2lcIDsKK+W8gemngSA8IGJlbnBha3VcIDsKK+iYreWtpiA8IHJhbmdha3VcIDsKK+WQjea1gSA8IG1laXJ5dXVcIDsKK+aBteayoiA8IGtlaXRha3VcIDsKK+W9oui3oSA8IGtlaXNla2lcIDsKK+WQjOa1gSA8IGRvdXJ5dXVcIDsKK+W8lOmbuyA8IGNob3VkZW5cIDsKK+iQvembtyA8IHJha3VyYWlcIDsKK+WPjOeSpyA8IHNvdWhla2lcIDsKK+aCquaWuSA8IGFrdWdhdGFcIDsKK+WQiOa1gSA8IGdvdXJ5dXVcIDsKK+iQvembgSA8IHJha3VnYW5cIDsKK+ekvuattCA8IHNoYXJla2lcIDsKK+iQvemZvSA8IHJha3V5b3VcIDsKK+mHjeeIhiA8IGp1dWJha3VcIDsKK+S7iuWHuuadpSA8IGltYWRla2lcIDsKK+m7kuW4ryA8IGt1cm9vYmlcIDsKK+WPmeeItSA8IGpvc2hha3VcIDsKK+WMl+ilvyA8IGhva3VzZWlcIDsKK+aknOazouWZqCA8IGtlbnBha2lcIDsKK+WPo+eBqyA8IGt1Y2hpYmlcIDsKK+WPlOeItiA8IHNodWt1ZnVcIDsKK+azpeajkiA8IGRvcm9ib3VcIDsKK+axgeeyiSA8IHNoaXJ1a29cIDsKK+W8semFuCA8IGpha3VzYW5cIDsKK+iUteebuCA8IHpvdXNob3VcIDsKK+WNg+iNiSA8IGNoaWd1c2FcIDsKK+WQq+aciSA8IGdhbicneXV1XCA7Civlj43niakgPCB0YW5tb25vXCA7Civps6XpoZ4gPCBjaG91cnVpXCA7CivlvIHpm6MgPCBiZW4nJ25hblwgOwor5Y2z57SNIDwgc29rdW5vdVwgOwor56S+5qWtIDwgc2hhZ3lvdVwgOwor5rCX6ISIIDwga2lteWFrdVwgOwor56S85qW9IDwgcmVpZ2FrdVwgOwor5q+N6KaqIDwgaGFoYW95YVwgOwor56e75Ye6IDwgaXNodXRzdVwgOwor5b6z6IKyIDwgdG9rdWlrdVwgOwor56OB55+zIDwgamlzaGFrdVwgOwor5raI5Y67IDwgc2hvdWt5b1wgOwor6Yac55S3IDwgYnVvdG9rb1wgOwor56C06KOCIDwgaGFyZXRzdVwgOwor5raI5Y2wIDwga2VzaGlpblwgOwor5ZCM5qWtIDwgZG91Z3lvdVwgOwor56eB5aG+IDwgc2hpanVrdVwgOwor5oKq5oivIDwgaXRhenVyYVwgOwor5YuV6Lu4IDwgZG91amlrdVwgOwor56Kn56m6IDwgaGVraWt1dVwgOwor5YqI6aCtIDwgaGVraXRvdVwgOwor6Jit5Zu9IDwgcmFua29rdVwgOwor5Y2z562UIDwgc29rdXRvdVwgOwor5LiL5LuY6YeRIDwga2FmdWtpblwgOwor6YmE5b+DIDwgdGVzc2hpblwgOwor5q+b6JmrIDwga2VtdXNoaVwgOwor6YG/6Zuj5omAIDwgaGluYW5qb1wgOwor5oGL5rKzIDwga29pa2F3YVwgOwor6YWN57WmIDwgaGFpa3l1dVwgOwor5ZCM5qC8IDwgZG91a2FrdVwgOwor54mH5oSP5ZywIDwga2F0YWlqaVwgOwor6Jas5pa5IDwgeWFrdWhvdVwgOwor5rS75a2XIDwga2F0c3VqaVwgOwor5ZOA5YilIDwgYWliZXRzdVwgOwor5b6S6IqxIDwgYWRhYmFuYVwgOwor56S85pyNIDwgcmVpZnVrdVwgOwor5oGL5rC0IDwga29pbWl6dVwgOwor5ZOA5YiHIDwgYWlzZXRzdVwgOwor5ZCI5qC8IDwgZ291a2FrdVwgOwor5rW35Y6fIDwgdW5hYmFyYVwgOwor6bq75bGRIDwgYXNha3V6dVwgOwor5Y+k5rGgIDwgZnVydWlrZVwgOwor5oSa5YqjIDwgZ3VyZXRzdVwgOwor55+t6Lu4IDwgdGFuamlrdVwgOwor6Yac54q2IDwgc2h1dWpvdVwgOwor5ZCE5qChIDwga2FrdWtvdVwgOwor5oGL5q27IDwga29pamluaVwgOwor5oKq5b6zIDwgYWt1dG9rdVwgOwor5rCX57W2IDwga2l6ZXRzdVwgOwor5rKI5r6xIDwgY2hpbmRlblwgOwor5YqI6ZaLIDwgaGVraWthaVwgOwor5Y+k5q2MIDwgZnVydXV0YVwgOwor6JC96YG4IDwgcmFrdXNlblwgOwor5Ymv6aGMIDwgZnVrdWRhaVwgOwor5byP6YOoIDwgc2hpa2lidVwgOwor5Y2c562uIDwgYm9rdXplaVwgOwor5Yy75a2m6YOoIDwgaWdha3VidVwgOwor5ZGC5b6LIDwgcm9yZXRzdVwgOwor6JGJ6LqrIDwgeW91c2hpblwgOwor5b6Q6ISIIDwgam9teWFrdVwgOwor56Kn55y8IDwgaGVraWdhblwgOwor5b6M6IW5IDwgYXRvYmFyYVwgOwor5q206YGKIDwgcmVraXl1dVwgOwor5LqI5aCx6Z+zIDwgeW9ob3VvblwgOwor5b2s6JSaIDwgaGludXRzdVwgOwor56aF5a+6IDwgemVuZGVyYVwgOwor6aKo5ZGC5LujIDwgZnVyb2RhaVwgOwor5q276Lu4IDwgc2hpamlrdVwgOwor5rWB5Z+fIDwgcnl1dWlraVwgOwor5b6M55+l5oG1IDwgYXRvZGppZVwgOwor6ba056eRIDwgdHN1cnVrYVwgOwor5oGt5pWsIDwga3lvdWtlaVwgOwor5rGO55SoIDwgaGFuJyd5b3VcIDsKK+W3ruapn+mWoiA8IHNha2lrYW5cIDsKK+WPlOavjSA8IHNodWt1Ym9cIDsKK+engOWQnyA8IHNodXVnaW5cIDsKK+WJjemrqiA8IG1hZWdhbWlcIDsKK+WSgOWavCA8IHNvc2hha3VcIDsKK+auuuiZqyA8IHNhdGNodXVcIDsKK+WLpOihjCA8IGdvbmd5b3VcIDsKK+ipkOasuuW4qyA8IHNhZ2lzaGlcIDsKK+WNteeZvSA8IHJhbnBha3VcIDsKK+mHkeajkiA8IGthbmFib3VcIDsKK+W6p+mqqCA8IHpha290c3VcIDsKK+W+tOeojiA8IGNob3V6ZWlcIDsKK+WKtOizgyA8IHJvdWNoaW5cIDsKK+WQiOaOjCA8IGdhc3Nob3VcIDsKK+WkluellueItiA8IGdhaXNvZnVcIDsKK+WLheiosSA8IGNob2treW9cIDsKK+efreiplSA8IHRhbnB5b3VcIDsKK+irlueQhuWSjCA8IHJvbnJpd2FcIDsKK+enmOS7jyA8IGhpYnV0c3VcIDsKK+mHjuWWtuWcsCA8IHlhZWljaGlcIDsKK+a1t+S6gCA8IHVtaWdhbWVcIDsKK+mCgemAsiA8IG1haXNoaW5cIDsKK+mbsOWbsuawlyA8IGZ1bicnaWtpXCA7Civlm6Dnvo7nt5ogPCBpbmJpc2VuXCA7Civlj6TmnKwgPCBmdXJ1Ym9uXCA7Civlj43mp5ggPCBrYWlzYW1hXCA7CivmsJHnpo8gPCBtaW5wdWt1XCA7CivmsJfkuIjlpKsgPCBraWpvdWJ1XCA7CivliJ3mnJ/ljJYgPCBzaG9raWthXCA7CivpgYXpnJwgPCBvc29qaW1vXCA7CivmtJvlpJYgPCByYWt1Z2FpXCA7CivphZLnmZYgPCBzaHVoZWtpXCA7CivpgqroqqwgPCBqYXNldHN1XCA7CivmsI/npZ4gPCB1amlnYW1pXCA7CivmrrXokL0gPCBkYW5yYWt1XCA7CivlkbvlkJ8gPCBzaGluZ2luXCA7CivpiYTlo4EgPCB0ZXBwZWtpXCA7Civnp4vkvZwgPCBha2lzYWt1XCA7CivljLrnq4sgPCBrdXJpdHN1XCA7CivlkITmiYAgPCBrYWt1c2hvXCA7Civmg6jliocgPCBzYW5nZWtpXCA7CivmgYvmlocgPCBrb2lidW1pXCA7Civms5XmgqYgPCBob3VldHN1XCA7CivpgqboqLMgPCBob3V5YWt1XCA7CivmsLTnkIMgPCBzdWlreXV1XCA7CivmtabkurogPCB1cmFiaXRvXCA7CivpioDlgbQgPCBnaW5nYXdhXCA7Civlj5bmm78gPCB0b3Jpa2FlXCA7CivmranooYzlmaggPCBob2tvdWtpXCA7CivliY3pmbMgPCB6ZW5jaGluXCA7Civnn7PonYsgPCBzZWtpcm91XCA7Civok6znlJ8gPCB5b21vZ2l1XCA7CivmtYHli5UgPCByeXV1ZG91XCA7Civmua/osYbohZAgPCB5dWRvdWZ1XCA7Civoo4/og4zmiLggPCB1cmFzZWRvXCA7CivpgIbpsZcgPCBnZWtpcmluXCA7Civnn6XooYwgPCBjaGlneW91XCA7CivlkIzlvbkgPCBkb3V5YWt1XCA7CivphbjmvL8gPCBob296dWtpXCA7CivmrbTopqcgPCByZWtpcmFuXCA7CivmsLTniaIgPCBtaXp1cm91XCA7CivmsLTniZsgPCBzdWlneXV1XCA7CivmlL7nlJ/kvJogPCBob3Vqb3VlXCA7CivogrLlhZDpmaIgPCBpa3VqaWluXCA7CivkuI3kvZzngrogPCBmdXNha3VpXCA7Civps6Xosp0gPCB0b3JpZ2FpXCA7CivmsLTniIYgPCBzdWliYWt1XCA7Civmraboo4XlhbcgPCBidXNvdWd1XCA7CivljJfnsbMgPCBob2t1YmVpXCA7CivkuIvpp4TnlaogPCBnZXRhYmFuXCA7CivljZPnlKggPCB0YWt1eW91XCA7Civlib3ou70gPCBoeW91a2luXCA7Civlko7kurogPCB0b2dhbmluXCA7CivokYnonIIgPCBoYWJhY2hpXCA7CivlvrPnlKggPCB0b2t1eW91XCA7CivljYHnm64gPCBqdXVtb2t1XCA7CivlkIzluK0gPCBkb3VzZWtpXCA7CivnnJ/pu5IgPCBtYWtrdXJvXCA7Civoh6rli5XljJYgPCBqaWRvdWthXCA7CivliqPop5IgPCByZWtrYWt1XCA7CivolqzlrrMgPCB5YWt1Z2FpXCA7CivnpoTlkb0gPCByb2t1bWVpXCA7CivliLvpmZAgPCBrb2t1Z2VuXCA7CivlkJvlr7UgPCBrdW5jaG91XCA7CivlkITlupcgPCBrYWt1dGVuXCA7CivljZPnkIMgPCB0YWtreXV1XCA7CivnhKHpgaDmha4gPCBidWVucnlvXCA7CivpgYvli5XloLQgPCB1bmRvdWJhXCA7CivlrrboqIjosrsgPCBrYWtlaWhpXCA7CivnpoDlkYogPCByaW5rb2t1XCA7CivlkajliLAgPCBzaHV1dG91XCA7CivmsZfmsLQgPCBhc2VtaXp1XCA7CivljJfnq68gPCBob2t1dGFuXCA7Civpn7Pmpb3lrrYgPCBvbmdha2thXCA7Civpu5LkurogPCBrb2t1amluXCA7CivlvbznqIsgPCBhcmVob2RvXCA7CivpgZPovrogPCBtaWNoaWJlXCA7CivmrabooZMgPCBidWp1dHN1XCA7CivlpJbnpZbmr40gPCBnYWlzb2JvXCA7Civmrovoj4ogPCB6YW5naWt1XCA7CivmsqHmiJEgPCBib3RzdWdhXCA7CivmtYHkuqEgPCByeXV1Ym91XCA7CivlirTli5noqrIgPCByb3VtdWthXCA7CivliJ3pn7MgPCBoYXRzdW5lXCA7Civpg73nq4sgPCB0b3JpdHN1XCA7CivliKXpm6IgPCBiZXRzdXJpXCA7CivlvpPnmoQgPCBqdXV0ZWtpXCA7CivnoLTnq7kgPCBoYWNoaWt1XCA7Civokrznmb0gPCBzb3VoYWt1XCA7CivmsLTmu7QgPCBzdWl0ZWtpXCA7CivlipvooYwgPCByeW9ra291XCA7CivnhKHou4zpgZMgPCBtdWtpZG91XCA7CivpgbjoqZUgPCBzZW5weW91XCA7CivnpKvlsqkgPCByZWtpZ2FuXCA7CivlkITlsaQgPCBrYWt1c291XCA7CivliKXpmaIgPCBiZXRzdWluXCA7CivliofoqakgPCBnZWtpc2hpXCA7CivpiYTliYcgPCB0ZXNzb2t1XCA7CivpgYXpgJ8gPCBjaGlzb2t1XCA7CivnoqfmsLQgPCBoZWtpc3VpXCA7Civnn7Poh7wgPCBpc2hpdXN1XCA7CivlubTpoY0gPCBuZW5nYWt1XCA7CivliKXplpMgPCBiZXRzdW1hXCA7CivmsYHmsJcgPCBzaGlydWtlXCA7CivmtJvlhoUgPCByYWt1bmFpXCA7Civmr47np5IgPCBtYWlieW91XCA7Civlvq7nhrEgPCBiaW5ldHN1XCA7CivmsLTmtbQgPCBzdWl5b2t1XCA7Civmg5HkubEgPCB3YWt1cmFuXCA7Civog4Pnl5nmlKMgPCBpa2VpcmVuXCA7Civlj6TlvI8gPCBrb3NoaWtpXCA7CivpgYvli5Xlk6EgPCB1bmRvdWluXCA7CivmqZ/morDoqp4gPCBraWthaWdvXCA7CivljYrnhp8gPCBoYW5qdWt1XCA7CivmsLTmtYEgPCBzdWlyeXV1XCA7Civljp/mnKggPCBnZW5ib2t1XCA7Civli6TntpogPCBraW56b2t1XCA7CivpgLzov6sgPCBoaXBwYWt1XCA7Civljprmnb8gPCBhdHN1aXRhXCA7Civnvo7lrrnpmaIgPCBiaXlvdWluXCA7CivlvLHogIUgPCBqYWt1c2hhXCA7Civph5HlubMgPCBraW5waXJhXCA7CivljbHmsJcgPCBhYnVuYWdlXCA7CivmgKXmiYAgPCBreXV1c2hvXCA7Civmrrvnq78gPCBrYXJhc2FvXCA7CivkuIDou6LmqZ8gPCBpdHRlbmtpXCA7Civlj5blvpcgPCBzaHV0b2t1XCA7CivljbPmrbsgPCBzb2t1c2hpXCA7CivptIfoibIgPCB0b2tpaXJvXCA7Civlj7DlsLsgPCBkYWlqaXJpXCA7CivmnZPmloflrZcgPCBzaGFtb2ppXCA7Civov73pmo8gPCB0c3VpenVpXCA7Civli7Lnq6AgPCBrdW5zaG91XCA7CivpgKPph48gPCByZW5yeW91XCA7CivmjqLmn7vmqZ8gPCB0YW5zYWtpXCA7CivnlLDoiI7lrrYgPCBpbmFrYXlhXCA7CivlkIjlo4EgPCBnYXBwZWtpXCA7Civlh7rpoY0gPCBkZWJpdGFpXCA7CivliLnpgqMgPCBzZXRzdW5hXCA7CivlubTplbcgPCBuZW5jaG91XCA7Civlh7rpoK0gPCBzaHV0dG91XCA7CivliIfpmaQgPCBzZXRzdWpvXCA7Civoka3nsIAgPCB5b3NoaXp1XCA7CivpgYvou6LosrsgPCB1bnRlbmhpXCA7CivmqZnnmq7msrkgPCB0b3VoaXl1XCA7CivmtIvlgpggPCB5b3VnYXNhXCA7CivpgY7lubTluqYgPCBrYW5lbmRvXCA7CivnoJTnqbYgPCBrZW5reXV1XCA7CivpgLLou40gPCBzaGluZ3VuXCA7CivphZLmr5IgPCBzaHVkb2t1XCA7Civolqzlk4EgPCB5YWt1aGluXCA7CivmsojmgJ0gPCBjaGluc2hpXCA7CivljZfmtIsgPCBuYW4nJ3lvdVwgOwor5q276IKJIDwgc2hpbmlrdVwgOwor5oCd5oORIDwgb21vd2FrdVwgOwor6bO26ImyIDwgdG9iaWlyb1wgOwor6YGL5YuV5YW3IDwgdW5kb3VndVwgOwor6JC96IOGIDwgcmFrdXRhblwgOwor6bOl6JGsIDwgY2hvdXNvdVwgOwor5rKi5bGxIDwgdGFrdXNhblwgOwor5b6h5a2Y55+lIDwgZ296b25qaVwgOwor5Yi66LqrIDwgc2FzaGltaVwgOwor5ZCE5ZywIDwga2FrdWNoaVwgOwor6JaE5aKoIDwgdXN1enVtaVwgOwor5a625pS/56eRIDwga2FzZWlrYVwgOwor5ZCE5Zu9IDwga2Fra29rdVwgOwor6JGm56ybIDwgYXNoaWJ1ZVwgOwor5bCP5aWH6bqXIDwga29naXJlaVwgOwor5bmV6Zu7IDwgbWFrdWRlblwgOwor5Yml6KO9IDwgaGFrdXNlaVwgOwor6Yac5oWLIDwgc2h1dXRhaVwgOwor55+t57WhIDwgdGFucmFrdVwgOwor56e75L2P6ICFIDwgaWp1dXNoYVwgOwor5rCR5rOKIDwgbWlucGFrdVwgOwor56S+5ZGKIDwgc2hha29rdVwgOwor5byB6IacIDwgYmVubWFrdVwgOwor6YGT5YW35bGLIDwgZG91Z3V5YVwgOwor6Yac5oKqIDwgc2h1dWFrdVwgOwor6Jas5YmkIDwgeWFrdXphaVwgOwor5q+U546HIDwgaGlyaXRzdVwgOwor5byK57+SIDwgaGVpc2h1dVwgOwor5b2554mbIDwgZWtpZ3l1dVwgOwor5ZCM576p6KqeIDwgZG91Z2lnb1wgOwor5rK85ZywIDwgbnVtYWNoaVwgOwor6I6r6YCjIDwgYmFrdXJlblwgOwor5rOV5ZCNIDwgaG91bXlvdVwgOwor5qih5pOs5oimIDwgbW9naXNlblwgOwor5Yid6YCfIDwgc2hvc29rdVwgOwor5ZCN5Y+3IDwgbXlvdWdvdVwgOwor5rOV5Y2aIDwgaG91aGFrdVwgOwor6YCG6YGLIDwgZ3lha3V1blwgOwor55yJ6ZuqIDwgYmlzZXRzdVwgOwor5Ye46Y+hIDwgdG9ra3lvdVwgOwor5ZCI5Y+jIDwgYWlrdWNoaVwgOwor56S+5YmHIDwgc2hhc29rdVwgOwor6I2S6aeSIDwgYXJhZ29tYVwgOwor5rC45pelIDwgZWlqaXRzdVwgOwor5YiG6YedIDwgZnVuc2hpblwgOwor5YiG6YePIDwgYnVucnlvdVwgOwor6JKy5YWs6IuxIDwgdGFucG9wb1wgOwor5Yil6LevIDwgYmV0c3Vyb1wgOwor5rOV5YqbIDwgaG91cmlraVwgOwor5q+U54axIDwgaGluZXRzdVwgOwor5rOV5YmHIDwgaG91c29rdVwgOwor56i95Y+k552AIDwga2Vpa29naVwgOwor5568IDwgbWFidXRhXCA7CivovrcgPCBzdWJlcnVcIDsKK+eesyA8IGhpdG9taVwgOwor6LypIDwgeWFrYXJhXCA7Civnm7IgPCBtZXNoaWlcIDsKK+i7iiA8IGt1cnVtYVwgOwor5bqPIDwgdHN1aWRlXCA7CivnmoYgPCBtaW4nJ25hXCA7CivluZUgPCB0b2JhcmlcIDsKK+W4nSA8IG1pa2Fkb1wgOwor5bemIDwgaGlkYXJpXCA7Civnlr4gPCBzaGl0c3VcIDsKK+eVsyA8IHRhdGFtaVwgOwor55WgIDwgaGF0YWtlXCA7Civnk6YgPCBrYXdhcmFcIDsKK+WyrCA8IG1pc2FraVwgOwor5bGKIDwgdG9kb2tlXCA7CivlsIogPCBtaWtvdG9cIDsKK+WunSA8IHRha2FyYVwgOwor542jIDwga2Vtb25vXCA7Civni7wgPCBvb2thbWlcIDsKK+eLrCA8IGRvaXRzdVwgOwor6KqgIDwgbWFrb3RvXCA7CivoqLwgPCBha2FzaGlcIDsKK+eItiA8IGNoaWNoaVwgOwor6KibIDwgbmFtYXJpXCA7CivlqJggPCBtdXN1bWVcIDsKK+WnvyA8IHN1Z2F0YVwgOwor5aa+IDwgd2FyYXdhXCA7CivlprkgPCBpbW91dG9cIDsKK+imgSA8IGthbmFtZVwgOwor6KW3IDwgdGFzdWtpXCA7CivnhZkgPCBrZW11cmlcIDsKK+illiA8IGZ1c3VtYVwgOwor6KO4IDwgaGFkYWthXCA7CivoorQgPCBoYWthbWFcIDsKK+iiiyA8IGZ1a3Vyb1wgOwor6KGjIDwga29yb21vXCA7Civln4MgPCBob2tvcmlcIDsKK+ifgCA8IHNodXRzdVwgOwor6bysIDwgaXRhY2hpXCA7CivpvKAgPCBuZXp1bWlcIDsKK+WcnyA8IHRzdWNoaVwgOwor5ryGIDwgdXJ1c2hpXCA7Civom7kgPCBzYW5hZ2lcIDsKK+ibmSA8IGthd2F6dVwgOwor5ZmoIDwgdXRzdXdhXCA7CivmuK8gPCBtaW5hdG9cIDsKK+iWrCA8IGt1c3VyaVwgOwor6JaqIDwgdGFraWdpXCA7CivmtpkgPCBuYW1pZGFcIDsKK+iWhyA8IHplbm1haVwgOwor6JaEIDwgc3VzdWtpXCA7CivptIkgPCBrYXJhc3VcIDsKK+WOqCA8IGt1cml5YVwgOwor5Y24IDwgb3Jvc2hpXCA7CivljbUgPCB0YW1hZ29cIDsKK+atqiA8IGliaXRzdVwgOwor6a2aIDwgc2FrYW5hXCA7CivljZcgPCBtaW5hbWlcIDsKK+WMoCA8IHRha3VtaVwgOwor5qu7IDwgc2FrdXJhXCA7Civoi7ogPCBpY2hpZ29cIDsKK+WLoiA8IGhhenVtaVwgOwor5qqcIDwgaGlub2tpXCA7CivoiIUgPCBzaHV1dG9cIDsKK+amiiA8IHNha2FraVwgOwor5YWJIDwgaGlrYXJpXCA7CivppKggPCB5YWthdGFcIDsKK+WAmSA8IHNvdXJvdVwgOwor6Z+/IDwgaGliaWtpXCA7Civmn7MgPCB5YW5hZ2lcIDsKK+S/hCA8IG5pd2FrYVwgOwor5L+CIDwga2FrYXJpXCA7Civkvr8gPCB5b3N1Z2FcIDsKK+aelSA8IG1ha3VyYVwgOwor5py6IDwgdHN1a3VlXCA7Civku48gPCBob3Rva2VcIDsKK+abhyA8IGt1bW9yaVwgOwor6ZuAIDwgc3V6dW1lXCA7CivkuqwgPCBtaXlha29cIDsKK+maoyA8IHRvbmFyaVwgOwor5LmZIDwga2lub3RvXCA7CivkuY0gPCBuYWdhcmFcIDsKK+S4hyA8IHlvcm96dVwgOwor5LiDIDwgc2hpY2hpXCA7CivkuIEgPCBoaW5vdG9cIDsKK+e3kSA8IG1pZG9yaVwgOwor57WjIDwga2FzdXJpXCA7CivntYYgPCBraXp1bmFcIDsKK+ewviA8IHN1ZGFyZVwgOwor6Y+hIDwga2FnYW1pXCA7CivpjpYgPCBrdXNhcmlcIDsKK+etkiA8IHRzdXRzdVwgOwor5o2MIDwgc2FiYWtpXCA7Civpi7wgPCBoYWdhbmVcIDsKK+erpSA8IHdhcmFiZVwgOwor6YuPIDwgaGFzYW1pXCA7CivmiYkgPCB0b2JpcmFcIDsKK+aJgCA8IHRva29yb1wgOwor5buD6JmaIDwgaGFpa3lvXCA7Civlv7/mgJIgPCBmdW4nJ251XCA7CivpgIHov44gPCBzb3VnZWlcIDsKK+i/hembtyA8IGppbnJhaVwgOwor5b+X5pONIDwgc2hpc291XCA7CivpgJrosqggPCB0c3V1a2FcIDsKK+WQjeWIuiA8IG1laXNoaVwgOwor5ZCM5YmNIDwgZG91emVuXCA7CivnpLzlhbggPCByZWl0ZW5cIDsKK+WJjeihmyA8IHplbicnZWlcIDsKK+efouetiCA8IHlhaGF6dVwgOwor6YeR5Z2RIDwga2lua291XCA7Civljp/lvaIgPCBnZW5rZWlcIDsKK+W+qeaoqSA8IGZ1a2tlblwgOwor5YmN6KGMIDwgemVua291XCA7CivlkI3liIYgPCBtZWlidW5cIDsKK+W9oueKtiA8IGtlaWpvdVwgOwor5YiX6LuKIDwgcmVzc2hhXCA7CivlkI3liIAgPCBtZWl0b3VcIDsKK+W7g+iXqSA8IGhhaWhhblwgOwor6YWN5pysIDwgaGFpaG9uXCA7Civljprlv5cgPCBrb3VzaGlcIDsKK+iWhOWRsyA8IGhha3VtaVwgOwor56S+5YOnIDwgc2hhc291XCA7CivlkIjliaQgPCBnb3V6YWlcIDsKK+WQjOWHpiA8IGRvdXNob1wgOwor5rOV5YW4IDwgaG91dGVuXCA7CivnpL7lgrUgPCBzaGFzYWlcIDsKK+W5tOi8qiA8IG5lbnJpblwgOwor5bm06LypIDwgbmVucGFpXCA7Civno4Hlv4MgPCBqaXNoaW5cIDsKK+WIhumBoyA8IGJ1bmtlblwgOwor5Y+L5aW9IDwgeXV1a291XCA7Civli6TnlaogPCBraW5iYW5cIDsKK+efs+eikSA8IHNla2loaVwgOwor5ZCI5YiHIDwgZ2Fzc2FpXCA7CivpgIDou6IgPCB0YWl0ZW5cIDsKK+ato+e3qCA8IHNlaWhlblwgOwor5Y+N5aSJIDwgaGFucGVuXCA7Civlj7HlkqQgPCBzaGl0dGFcIDsKK+WQjOWFmiA8IGRvdXRvdVwgOwor5bm96LajIDwgeXV1c2h1XCA7CivliqDntaYgPCBrYWt5dXVcIDsKK+WQjeWEqiA8IG1laXl1dVwgOwor5Y6z5bCBIDwgZ2VucHV1XCA7CivluK/pm7sgPCB0YWlkZW5cIDsKK+W+i+azlSA8IHJpcHBvdVwgOwor5YeM6ZuyIDwgcnlvdXVuXCA7Civlv6vmhJ8gPCBrYWlrYW5cIDsKK+mBuOiAgyA8IHNlbmtvdVwgOwor55+i56iuIDwgeWFkYW5lXCA7CivmsY7mhJsgPCBoYW4nJ2FpXCA7CivlvLfnm5cgPCBnb3V0b3VcIDsKK+WOs+WvkiA8IGdlbmthblwgOwor6YeP5ZmoIDwgcnlvdWtpXCA7CivlkI3lg6cgPCBtZWlzb3VcIDsKK+ato+e1sSA8IHNlaXRvdVwgOwor6YGK6JWpIDwgeXV1dG91XCA7CivmsbrlrpogPCBrZXR0ZWlcIDsKK+iSuOawkSA8IGpvdW1pblwgOwor5by+55eVIDwgZGFua29uXCA7Civph43lmbggPCBqdXV0b25cIDsKK+i/gumXiiA8IHVrYXRzdVwgOwor6YCg6KmjIDwgem91a2VpXCA7Civmt6HjgIUgPCB0YW50YW5cIDsKK+WOs+WuiCA8IGdlbnNodVwgOwor5Y+w5ZCNIDwgdGFpbWVpXCA7CivljrPlrZggPCBnZW5zb25cIDsKK+ato+ezuyA8IHNlaWtlaVwgOwor6YKq56WeIDwgamFzaGluXCA7CivovrrpmawgPCBoZW5zdXVcIDsKK+mAoOiogCA8IHpvdWdlblwgOwor6YCD6LWwIDwgdG91c291XCA7CivpgJroqp4gPCB0c3V1Z29cIDsKK+WIhui8iSA8IGJ1bnNhaVwgOwor6YW45oCnIDwgc2Fuc2VpXCA7Civnm7jplqIgPCBzb3VrYW5cIDsKK+W+jOautSA8IGtvdWRhblwgOwor56S+5LyaIDwgc2hha2FpXCA7CivpgJroqbEgPCB0c3V1d2FcIDsKK+W+qeagoSA8IGZ1a2tvdVwgOwor5ZCM5YCkIDwgZG91Y2hpXCA7CivliIfouqsgPCBraXJpbWlcIDsKK+WQm+S4uyA8IGt1bnNodVwgOwor6I2J6Z6LIDwgd2FyYWppXCA7Civms5XkvosgPCBob3VyZWlcIDsKK+WItuijgSA8IHNlaXNhaVwgOwor5Y2X5pa5IDwgbmFucG91XCA7CivljJfmtbcgPCBob2trYWlcIDsKK+W/oOaEmyA8IGNodXVhaVwgOwor6YeR5ZOhIDwga2luJydpblwgOwor5Y2Y5paHIDwgdGFuYnVuXCA7CivnorrluqYgPCBrYWt1ZG9cIDsKK+awkeacmyA8IG1pbmJvdVwgOwor6JaE5YipIDwgaGFrdXJpXCA7CivnpL7kuqQgPCBzaGFrb3VcIDsKK+W+ruacjSA8IGJpZnVrdVwgOwor5rGC5oSbIDwga3l1dWFpXCA7CivljZjmlbAgPCB0YW5zdXVcIDsKK+W/heaQuiA8IGhpa2tlaVwgOwor6YeR5ZOBIDwga2lucGluXCA7CivliqPnrYkgPCByZXR0b3VcIDsKK+ebpOmdoiA8IGJhbm1lblwgOwor5Yyg5rCXIDwgc2hvdWtpXCA7Civli5XnlKMgPCBkb3VzYW5cIDsKK+W7tue0jSA8IGVuJydub3VcIDsKK+egleeJhyA8IHNhaWhlblwgOwor55yf6YCGIDwgbWFzYWthXCA7CivlkIzkvZMgPCBkb3V0YWlcIDsKK+ays+WMlyA8IGthaG9rdVwgOwor56S+5Li7IDwgc2hhc2h1XCA7CivljZfmlK8gPCBuYW5zaGlcIDsKK+WPo+WQuyA8IGtvdWZ1blwgOwor5by+55C0IDwgZGFua2luXCA7CivluKvploAgPCBzaGltb25cIDsKK+awl+aXqSA8IGtpYmF5YVwgOwor5oCl5aC0IDwga3l1dWJhXCA7CivlkIzkvLQgPCBkb3VoYW5cIDsKK+mAo+ihoSA8IHJlbmtvdVwgOwor5Y+j5ZCfIDwga291Z2luXCA7Civms5XkurogPCBob3VqaW5cIDsKK+WGt+mdmSA8IHJlaXNlaVwgOwor6L+U6YeRIDwgaGVua2luXCA7Civlj4LloIIgPCBzYW5kb3VcIDsKK+W/q+W8gSA8IGthaWJlblwgOwor5b+g5oGVIDwgY2h1dWpvXCA7Civlj6zli58gPCBzaG91Ym9cIDsKK+WQiOS9tSA8IGdvdWhlaVwgOwor5ZCQ5LmzIDwgdG9ueXV1XCA7CivlkI3kurogPCBtZWlqaW5cIDsKK+WQiOS9kyA8IGdhdHRhaVwgOwor6JaE5YWJIDwgaGFra291XCA7CivolJPlu7YgPCBtYW4nJ2VuXCA7CivlvZPnhLYgPCB0b3V6ZW5cIDsKK+WPjeWZrCA8IGhhbnplaVwgOwor5Y6f5a+4IDwgZ2Vuc3VuXCA7CivlkIzku4EgPCBkb3VqaW5cIDsKK+WQjOS6uiA8IGRvdW5pblwgOwor5YW46bqXIDwgdGVucmVpXCA7CivlkJHkuIogPCBrb3Vqb3VcIDsKK+W3o+m2jyA8IHN1ZG9yaVwgOwor5Y2B5pysIDwganVwcG9uXCA7Civlu4PoiaYgPCBoYWlrYW5cIDsKK+axn+WxsSA8IGtvdXphblwgOwor5bqn6JasIDwgemF5YWt1XCA7CivokI7nuK4gPCBpc2h1a3VcIDsKK+mHjeWQiCA8IGp1dWdvdVwgOwor5bqD6KiAIDwga291Z2VuXCA7Civlu4PoiLkgPCBoYWlzZW5cIDsKK+W7kOiCpSA8IGt5dXVoaVwgOwor5ZCM5LmXIDwgZG91am91XCA7Civlv5zmgKUgPCBvdWt5dXVcIDsKK+mBiuiKuCA8IHl1dWdlaVwgOwor5q6L55eVIDwgemFua29uXCA7CivliY3okZcgPCB6ZW5jaG9cIDsKK+iPluiSsiA8IHNob3VidVwgOwor6YeO5Y6fIDwgbm9oYXJhXCA7Civmsbrlo4ogPCBrZWtrYWlcIDsKK+WOn+WtkCA8IGdlbnNoaVwgOwor5q+b5rCIIDwgbW91c2VuXCA7CivljaDmi6AgPCBzZW5reW9cIDsKK+WIpeijvSA8IGJlc3NlaVwgOwor5byK56S+IDwgaGVpc2hhXCA7Civmr5Tms4EgPCBoaWt5b3VcIDsKK+mAj+imliA8IHRvdXNoaVwgOwor5Y2K5pWwIDwgaGFuc3V1XCA7CivphpzlpbMgPCBzaHV1am9cIDsKK+WKueebriA8IGtpa2ltZVwgOwor5rCR5pS/IDwgbWluc2VpXCA7Civps7Tnpr0gPCBtZWlraW5cIDsKK+awkeaUviA8IG1pbnBvdVwgOwor6L+R6YO3IDwga2luZ291XCA7CivphZLmiYsgPCBzYWthdGVcIDsKK+i/lOmChCA8IGhlbmthblwgOwor5byT55+iIDwgeXVtaXlhXCA7CivliY3oj5wgPCB6ZW5zYWlcIDsKK+WPjeWVjyA8IGhhbm1vblwgOwor5Yem6YGHIDwgc2hvZ3V1XCA7Civlv4PmioAgPCBzaGluZ2lcIDsKK+WIneimiyA8IHNob2tlblwgOwor5qyg6IiqIDwga2Vra291XCA7Civnm5fpm7sgPCB0b3VkZW5cIDsKK+W3qOmvqCA8IGt5b2dlaVwgOwor5rKD5ZyfIDwgeW9rdWRvXCA7Civlt7vpppYgPCBrYW5zaHVcIDsKK+WHuui2syA8IGRlYXNoaVwgOwor5q6L55SfIDwgemFuc2VpXCA7CivljJfmrKcgPCBob2t1b3VcIDsKK+ebl+mboyA8IHRvdW5hblwgOwor5Yqg56aEIDwga2Fyb2t1XCA7Civlj7fkv7ggPCBnb3Vob3VcIDsKK+WNseaApSA8IGtpa3l1dVwgOwor5Ymb6IeGIDwgZ291b2t1XCA7CivlvL7niYcgPCBkYW5wZW5cIDsKK+ecjOmBkyA8IGtlbmRvdVwgOwor5Y2z5b+cIDwgc29rdW91XCA7CivmrabnpZ4gPCBidXNoaW5cIDsKK+i/lOmAgSA8IGhlbnNvdVwgOwor5b6p5pS5IDwgZnVra2FpXCA7Civph5HliZsgPCBrb25nb3VcIDsKK+W5o+iyoiA8IGhlaWtvdVwgOwor6YWN5omAIDwgaGFpc2hvXCA7CivljbXlvaIgPCByYW5rZWlcIDsKK+mHkeWIuCA8IGtpbmtlblwgOwor6YWU5oWLIDwgc3VpdGFpXCA7Civlt6jprYEgPCBreW9rYWlcIDsKK+iVg+WcsCA8IGJhbmNoaVwgOwor5Y2B5pWwIDwganV1c3V1XCA7Civmsb3lnKcgPCBraWF0c3VcIDsKK+WHoemAgCA8IGJvbnRhaVwgOwor6YGU6ICFIDwgdGFzc2hhXCA7CivlvpPmnaUgPCBqdXVyYWlcIDsKK+mBuOeuoSA8IHNlbmthblwgOwor5YiG6K2yIDwgYnVuam91XCA7Civlj7jkvJogPCBzaGlrYWlcIDsKK+W+oeaWmSA8IGdvcnlvdVwgOwor5YaG6auYIDwgZW5kYWthXCA7Civov5HovrogPCBraW5wZW5cIDsKK+WPo+WGhSA8IGtvdW5haVwgOwor5Ye66LK7IDwgc2h1cHBpXCA7Civph5HlhqAgPCBraW5rYW5cIDsKK+WNsOW9oiA8IGluZ3lvdVwgOwor5Y+45LukIDwgc2hpcmVpXCA7Civph43liJEgPCBqdXVrZWlcIDsKK+i/veiotCA8IHRzdWlzb1wgOwor5Y+35LukIDwgZ291cmVpXCA7CivliqDnoasgPCBrYXJ5dXVcIDsKK+WJm+iDhiA8IGdvdXRhblwgOwor6YeR5YW3IDwga2FuYWd1XCA7Civlj47lj5cgPCBzaHV1anVcIDsKK+mFjeaFriA8IGhhaXJ5b1wgOwor6L+36KuWIDwgbWVpcm9uXCA7Civmr47mr44gPCBtYWltYWlcIDsKK+i/veiomCA8IHRzdWlraVwgOwor552h6JOuIDwgc3VpcmVuXCA7Civlv4PmhI8gPCBzaGluJydpXCA7CivlibLnt5ogPCBrYXNzZW5cIDsKK+WIh+irjCA8IHNla2thblwgOwor5b+Y5bm0IDwgYm91bmVuXCA7CivljbPluqcgPCBzb2t1emFcIDsKK+W3u+mgrSA8IGthbnRvdVwgOwor5Yq555SoIDwga291eW91XCA7CivokrLmn7MgPCBob3J5dXVcIDsKK+aBkuS+iyA8IGtvdXJlaVwgOwor5Y+y5LydIDwgc2hpZGVuXCA7Civlv43lvpMgPCBuaW5qdXVcIDsKK+mFt+WvkiA8IGtva2thblwgOwor5YuH54ybIDwgeXV1bW91XCA7Civmr6zmnpwgPCBreXV1a2FcIDsKK+iNt+i2syA8IG5pYXNoaVwgOwor5bi46YGTIDwgam91ZG91XCA7CivliIboqZ4gPCBidW5zaGlcIDsKK+ayu+S5sSA8IGNoaXJhblwgOwor5Y215bejIDwgcmFuc291XCA7CivmrbvnlKMgPCBzaGl6YW5cIDsKK+atu+eUnyA8IHNoaXNlaVwgOwor5Y2a5oSbIDwgaGFrdWFpXCA7CivluLjpgKMgPCBqb3VyZW5cIDsKK+WGkumgrSA8IGJvdXRvdVwgOwor5oCn5ZCRIDwgc2Vpa291XCA7CivluLDpg7cgPCBraWt5b3VcIDsKK+awtOW5syA8IHN1aWhlaVwgOwor5rK75LiWIDwgY2hpc2VpXCA7CivlvJXnlKggPCBpbicneW91XCA7Civprq7pupcgPCBzZW5yZWlcIDsKK+ebrumHmCA8IG1la3VnaVwgOwor5Y+N5YuVIDwgaGFuZG91XCA7CivliY3ohZUgPCBtYWV1ZGVcIDsKK+WPsuS5lyA8IHNoaWpvdVwgOwor5YiG6KejIDwgYnVua2FpXCA7Civlj4LlkJEgPCBzYW5rb3VcIDsKK+WPs+S4iiA8IG1pZ2l1ZVwgOwor6YGj57GzIDwga2VuYmVpXCA7Civlj6Tkv5cgPCBrb3pva3VcIDsKK+W+jOaZryA8IGtvdWtlaVwgOwor5Y6W5aSnIDwgYm91ZGFpXCA7CivpgIDooYwgPCB0YWlrb3VcIDsKK+WPr+S5nyA8IGthbmFyaVwgOwor5bqn6IiIIDwgemFreW91XCA7CivmraPnnLwgPCBzZWlnYW5cIDsKK+W+heacmyA8IHRhaWJvdVwgOwor56OB5aOBIDwgamloZWtpXCA7Civlt67poY0gPCBzYWdha3VcIDsKK+aui+eJhyA8IHphbnBlblwgOwor5Y+l5L2cIDwga3VzYWt1XCA7CivlvozmmIYgPCBrb3Vrb25cIDsKK+ato+ebriA8IG1hc2FtZVwgOwor55+i546JIDwgeWFkYW1hXCA7CivljYHmjIcgPCBqdXNzaGlcIDsKK+WNmOaApyA8IHRhbnNlaVwgOwor5q+b5qC5IDwgbW91a29uXCA7CivokrjmlaMgPCBqb3VzYW5cIDsKK+W+jOaWuSA8IGtvdWhvdVwgOwor6YWN5b2TIDwgaGFpdG91XCA7CivliqDnmYIgPCBrYXJ5b3VcIDsKK+W+i+aXiyA8IHJpc3NlblwgOwor5Y+j5LydIDwga291ZGVuXCA7CivphZLlupcgPCBzaHV0ZW5cIDsKK+W4q+mBkyA8IHNoaWRvdVwgOwor5bqV6I23IDwgc29rb25pXCA7CivliIrooYwgPCBrYW5rb3VcIDsKK+WHuuiotCA8IHNodXNzb1wgOwor5Y2a5b6SIDwgYmFrdXRvXCA7CivnoILmvKAgPCBzYWJha3VcIDsKK+aApeWLnyA8IGt5dXVib1wgOwor5byx54GrIDwgeW93YWJpXCA7CivliY3ogIUgPCB6ZW5zaGFcIDsKK+aApeWLmSA8IGt5dXVtdVwgOwor5beo6aCtIDwga3lvdG91XCA7CivokYnniakgPCBoYW1vbm9cIDsKK+WIhuiigiA8IGJ1bmJlaVwgOwor5YaG6aCCIDwgZW5jaG91XCA7CivmsJfmga8gPCBraXNva3VcIDsKK+W+jOaUuyA8IGtvdWtvdVwgOwor6bOp55uuIDwgaGF0b21lXCA7Civph43kvZMgPCBqdXV0YWlcIDsKK+WOs+WRvSA8IGdlbm1laVwgOwor5LiL5LiW6KmxIDwgZ2VzZXdhXCA7CivlhpLpmbogPCBib3VrZW5cIDsKK+WOn+WboCA8IGdlbicnaW5cIDsKK+WGhemghSA8IG5haWtvdVwgOwor5YmN57+FIDwgemVuc2hpXCA7Civluqbog7ggPCBkb2t5b3VcIDsKK+eci+iyqyA8IGthbmthblwgOwor5Y2a5byVIDwgaGFrdWluXCA7CivmqZ/plbcgPCBraWNob3VcIDsKK+WJsuespiA8IHdhcmlmdVwgOwor5rCX5oCnIDwga2lzaG91XCA7CivljYHmiJIgPCBqaWtrYWlcIDsKK+WPl+S/oSA8IGp1c2hpblwgOwor55uu6YCUIDwgbW9rdXRvXCA7CivovrLpgZMgPCBub3Vkb3VcIDsKK+efs+eBsCA8IHNla2thaVwgOwor5rCR5oOFIDwgbWluam91XCA7CivljprlnLAgPCBhdHN1amlcIDsKK+mHjeS7uyA8IGp1dW5pblwgOwor6L+O6LOTIDwgZ2VpaGluXCA7CivljrPlkJsgPCBnZW5rdW5cIDsKK+WJjee9riA8IHplbmNoaVwgOwor6YeN5LujIDwganV1ZGFpXCA7CivliJfol6kgPCByZXBwYW5cIDsKK+mzpeebriA8IHRvcmltZVwgOwor5Y2Y5byBIDwgdGFuYmVuXCA7CivmrrXmrrUgPCBkYW5kYW5cIDsKK+awtOWxiyA8IG1penV5YVwgOwor5b6A5piUIDwgb3VzZWtpXCA7Civph5HkuLsgPCBraW5zaHVcIDsKK+egtOagvCA8IGhha2FrdVwgOwor5Y2D5oWuIDwgc2VucnlvXCA7Civljrvli6IgPCBreW9zZWlcIDsKK+W9k+atsyA8IHRvdXNhaVwgOwor55qu6Z2pIDwgaGlrYWt1XCA7CivlhoXpnaIgPCBuYWltZW5cIDsKK+W3t+mWkyA8IGtvdWthblwgOwor5Ya36YWSIDwgcmVpc2h1XCA7CivljbXlrZAgPCByYW5zaGlcIDsKK+aAquWFiSA8IGthaWtvdVwgOwor5YW86aGMIDwga2VuZGFpXCA7CivmqoDpgqMgPCBkYW4nJ25hXCA7Civph47kuK0gPCBub25ha2FcIDsKK+mAoOiIuSA8IHpvdXNlblwgOwor5Y+C5YaFIDwgc2FuZGFpXCA7CivmsLTlrrMgPCBzdWlnYWlcIDsKK+W+ueW6lSA8IHRldHRlaVwgOwor5rCX5byxIDwga2l5b3dhXCA7Civlj5vkubEgPCBoYW5yYW5cIDsKK+W+oeaFtiA8IGd5b2tlaVwgOwor55yM6K2mIDwga2Vua2VpXCA7CivluJ3pgZMgPCB0ZWlkb3VcIDsKK+WIpeiNmCA8IGJlc3NvdVwgOwor56KB5bitIDwgZ29zZWtpXCA7CivliJ3okYkgPCBzaG95b3VcIDsKK+W9vOaWuSA8IGthbmF0YVwgOwor55uf6YKmIDwgbWVpaG91XCA7Civlv6vloLEgPCBrYWlob3VcIDsKK+WOreWOrSA8IGl5YWl5YVwgOwor5rC05a2QIDwgbWl6dWdvXCA7Civlho3plosgPCBzYWlrYWlcIDsKK+mBoOensCA8IGVuc2hvdVwgOwor5YyX5pa5IDwgaG9wcG91XCA7CivlhoXpmaMgPCBuYWlqaW5cIDsKK+WNiuW+hCA8IGhhbmtlaVwgOwor6JGb5rmvIDwga3V6dXl1XCA7Civprq7prZogPCBzZW5neW9cIDsKK+WGt+mBhyA8IHJlaWd1dVwgOwor5Y2K5b2xIDwgaGFuJydlaVwgOwor5Y+N5L6LIDwgaGFucmVpXCA7Civlt6Ppm5sgPCBzdWhpbmFcIDsKK+i/pualvOe+hSA8IGthcnVyYVwgOwor5b6u5byxIDwgYmlqYWt1XCA7Civpg7fmnZEgPCBnb3Vzb25cIDsKK+ehrOaApyA8IGtvdXNlaVwgOwor6YWS5bGLIDwgc2FrYXlhXCA7CivliY3nt6ggPCB6ZW5wZW5cIDsKK+mAgOiUtSA8IHRhaXpvdVwgOwor5Yed6K2wIDwgZ3lvdWdpXCA7CivliY3nt5ogPCB6ZW5zZW5cIDsKK+W3nemdoiA8IGthd2Ftb1wgOwor5Y6f5ZOBIDwgZ2VucGluXCA7CivlvJXnhacgPCBpbnNob3VcIDsKK+WFqOmkqCA8IHplbmthblwgOwor6L+R6KmgIDwga2luJydlaVwgOwor6JKZ5pinIDwgbW91bWFpXCA7Civmrovmu5MgPCB6YW5zaGlcIDsKK+aymeS4mCA8IHNha3l1dVwgOwor5q2754K5IDwgc2hpdGVuXCA7Civnm7josowgPCBzb3Vib3VcIDsKK+mAgeiRrCA8IHNvdXNvdVwgOwor55m96a2UIDwgaGFrdW1hXCA7CivljZzlsYUgPCBib2treW9cIDsKK+eijeWtkCA8IGdhaXNoaVwgOwor5q+O5pmpIDwgbWFpYmFuXCA7CivljrPlhqwgPCBnZW50b3VcIDsKK+WPi+S6uiA8IHl1dWppblwgOwor55uK6YeRIDwgZWtpa2luXCA7CivlirTngb0gPCByb3VzYWlcIDsKK+WNl+WyuCA8IG5hbmdhblwgOwor5omL5b+g5a6fIDwgdGVtYW1lXCA7CivnnYDojbcgPCBjaGFra2FcIDsKK+iRpuavmyA8IGFzaGlnZVwgOwor5qyh56ysIDwgc2hpZGFpXCA7CivljprlkbMgPCBhdHN1bWlcIDsKK+WFtemboyA8IGhlaW5hblwgOwor5Y2z5aScIDwgc29rdXlhXCA7CivlvaLmnKggPCBrYXRhZ2lcIDsKK+W4q+izhyA8IHNoaXNoaVwgOwor5Y2X5bGxIDwgbmFuemFuXCA7CivnnIvoppYgPCBrYW5zaGlcIDsKK+i/keimliA8IGtpbnNoaVwgOwor5beM6aCtIDwgZ2FudG91XCA7CivojLbpgZMgPCBjaGFkb3VcIDsKK+asoeeroCA8IGppc2hvdVwgOwor5YW36ZmzIDwgZ3VjaGluXCA7CivmgKrkurogPCBrYWlqaW5cIDsKK+eZu+mrmCA8IHRvdWtvdVwgOwor55uk6LieIDwgYmFua3lvXCA7CivlhbXpmoogPCBoZWl0YWlcIDsKK+mAo+e9siA8IHJlbnNob1wgOwor6aeE5rSS6JC9IDwgZGFqYXJlXCA7CivmraPniq8gPCBzZWloYW5cIDsKK+WNmOWwhCA8IHRhbnNoYVwgOwor5Y+C5LyaIDwgc2Fua2FpXCA7CivliofnlLsgPCBnZWtpZ2FcIDsKK+WFqOmfsyA8IHplbicnb25cIDsKK+WNteWhlCA8IHJhbnRvdVwgOwor5YWa6aaWIDwgdG91c2h1XCA7CivpgY7np7AgPCBrYXNob3VcIDsKK+WNgeW5siA8IGppa2thblwgOwor6Iux6aCYIDwgZWlyeW91XCA7CivljZHlsawgPCBoaXpva3VcIDsKK+W3qOmQmCA8IG9vZ2FuZVwgOwor5qiq6aCYIDwgb3VyeW91XCA7Civnn7PmsrkgPCBzZWtpeXVcIDsKK+W7u+eKtiA8IGthaWpvdVwgOwor5LiL6aeE5bGLIDwgZ2V0YXlhXCA7CivpgZTno6ggPCBkYXJ1bWFcIDsKK+WOn+WLlSA8IGdlbmRvdVwgOwor5Y2X5a6LIDwgbmFuc291XCA7CivlvLHmsJcgPCB5b3dha2lcIDsKK+WFqOmdoiA8IHplbm1lblwgOwor5b6h5bm4IDwgbWl5dWtpXCA7CivlvpjlvoogPCBoYWlrYWlcIDsKK+mDteaUvyA8IHl1dXNlaVwgOwor5Y2K5bO2IDwgaGFudG91XCA7CivljZHlsI8gPCBoaXNob3VcIDsKK+eZvemmrCA8IGhha3ViYVwgOwor55u46KuHIDwgc291ZGFuXCA7CivmrJ3nqY0gPCB1c3Nla2lcIDsKK+W+geaIpiA8IHNlaXNlblwgOwor5Ymy55uuIDwgd2FyZW1lXCA7CivlhajpnIogPCB6ZW5yZWlcIDsKK+mAo+e5iyA8IHJlbmtlaVwgOwor5b2T5p2/IDwgYXRlaXRhXCA7Civlj4LkuI4gPCBzYW4nJ3lvXCA7CivlvozmgpQgPCBrb3VrYWlcIDsKK+WPguS4iiA8IHNhbmpvdVwgOwor5rKI5LiLIDwgY2hpbmthXCA7CivnnJ/olq8gPCBzaGluam9cIDsKK+WHveiTiyA8IGthbmdhaVwgOwor5Y6f5YidIDwgZ2Vuc2hvXCA7CivliY3nq68gPCB6ZW50YW5cIDsKK+W/q+WTiSA8IGthaXNhaVwgOwor5rCX5a2mIDwga2lnYWt1XCA7CivmsLTln58gPCBzdWlpa2lcIDsKK+W+ruWwkSA8IGJpc2hvdVwgOwor5YWo6ZqKIDwgemVudGFpXCA7CivpgIHoh7QgPCBzb3VjaGlcIDsKK+mAo+e2vyA8IHJlbm1lblwgOwor5Ym155eVIDwgc291a29uXCA7CivmrLLnm64gPCB5b2t1bWVcIDsKK+W+l+W6piA8IHRva3Vkb1wgOwor5b6T5byfIDwganV1dGVpXCA7Civpg6jml48gPCBidXpva3VcIDsKK+iVg+S6uiA8IGJhbmppblwgOwor6I+c56iuIDwgbmF0YW5lXCA7Civnm7ToqLQgPCBqaWtpc29cIDsKK+WOn+WFuCA8IGdlbnRlblwgOwor6bGX6IyOIDwgcmlua2VpXCA7CivlhaXpmaIgPCBueXV1aW5cIDsKK+efreavmyA8IHRhbm1vdVwgOwor6I2S6KqVIDwga291dGFuXCA7CivliJ3ogIEgPCBzaG9yb3VcIDsKK+mFt+WQjyA8IGtva3VyaVwgOwor6YCj57SvIDwgcmVucnVpXCA7CivolYPkuLsgPCBiYW5zaHVcIDsKK+W4q+iokyA8IHNoaWt1blwgOwor5qip6ZmQIDwga2VuZ2VuXCA7Civli5jmpJwgPCBrYW5rZW5cIDsKK+mBuueJqSA8IGlidXRzdVwgOwor5YeG6KixIDwganVua3lvXCA7CivphZLloLQgPCBzYWthYmFcIDsKK+WFqOmWiyA8IHplbmthaVwgOwor5q6J5q27IDwganVuc2hpXCA7Civljp/lg48gPCBnZW56b3VcIDsKK+ebruiosSA8IG1lbW90b1wgOwor5rC05ZqiIDwgc3Vpbm91XCA7CivlvZPmlrkgPCB0b3Vob3VcIDsKK+WHuuiNtyA8IHNodWtrYVwgOwor55yf6I+wIDwgbWFrb21vXCA7CivljZflpKkgPCBuYW50ZW5cIDsKK+ebruinkiA8IG1la2Fkb1wgOwor5YaN6YG4IDwgc2Fpc2VuXCA7Civlu4Pnm6QgPCBoYWliYW5cIDsKK+ehq+WuiSA8IHJ5dXVhblwgOwor5qmf6Lu4IDwga2lqaWt1XCA7Civli6LmnJsgPCBzZWlib3VcIDsKK+aoqemWgCA8IGtlbm1vblwgOwor6YqY44CFIDwgbWVpbWVpXCA7Civli5jmoYggPCBrYW4nJ2FuXCA7CivlvozlubQgPCBrb3VuZW5cIDsKK+WMu+WxgCA8IGlreW9rdVwgOwor5YaN6YGKIDwgc2FpeXV1XCA7CivnoLLmiYsgPCBob3VzaHVcIDsKK+eZvemcsiA8IGhha3Vyb1wgOwor6Iqx6bOlIDwga2FjaG91XCA7Civov73ogqUgPCB0c3VpaGlcIDsKK+W/teWGmSA8IG5lbnNoYVwgOwor55+l5q2vIDwgY2hpc2hpXCA7CivluIbotbAgPCBoYW5zb3VcIDsKK+W+gOW+qSA8IG91ZnVrdVwgOwor55+z5qa0IDwgemFrdXJvXCA7Civnmb3pm7IgPCBoYWt1dW5cIDsKK+WGjemAgSA8IHNhaXNvdVwgOwor5YWJ6aCtIDwga291dG91XCA7CivlvovluKsgPCByaXNzaGlcIDsKK+aEiOOAhSA8IGl5b2l5b1wgOwor5YW16YuSIDwgaGVpaG91XCA7Civlh7roirEgPCBkZWJhbmFcIDsKK+atqea4rCA8IGhvc29rdVwgOwor5YWI6aCtIDwgc2VudG91XCA7CivluoPnuIEgPCBoaXJvZW5cIDsKK+a1quOAhSA8IHJvdXJvdVwgOwor5Yqb5ryUIDwgcmlraWVuXCA7CivpgqrmrLIgPCBqYXlva3VcIDsKK+mnhOazleieuiA8IGRhYm9yYVwgOwor5b+D5ZyfIDwgc2hpbmRvXCA7Civlvq7lppkgPCBiaW15b3VcIDsKK+W+hOW6rSA8IGtlaXRlaVwgOwor5Yil57SZIDwgYmVzc2hpXCA7Civlv5zlj6wgPCBvdXNob3VcIDsKK+WHuuiIuSA8IGRlZnVuZVwgOwor6YW35YiRIDwga29ra2VpXCA7Civlv6vliIAgPCBrYWl0b3VcIDsKK+WFiOmerSA8IHNlbmJlblwgOwor5ben6YGFIDwga291Y2hpXCA7CivluqfnpIEgPCB6YXNob3VcIDsKK+mBuOeCrSA8IHNlbnRhblwgOwor5byB5riIIDwgYmVuc2FpXCA7CivljYrlpKkgPCBoYW50ZW5cIDsKK+W/l+WQkSA8IHNoaWtvdVwgOwor5Ye66IeNIDwgZGViZXNvXCA7CivlvbflvqggPCBob3Vrb3VcIDsKK+WNiuWknCA8IGhhbicneWFcIDsKK+WItuepuiA8IHNlaWt1dVwgOwor5Y6f5Lq6IDwgZ2VuamluXCA7Civlho3ou6IgPCBzYWl0ZW5cIDsKK+W9ouaIkCA8IGtlaXNlaVwgOwor5biC6LKpIDwgc2hpaGFuXCA7CivnoZ3lrokgPCBzaG91YW5cIDsKK+WInee1jCA8IHNob2tlaVwgOwor5Y2K5aOKIDwgaGFua2FpXCA7CivlvJTmrYwgPCBjaG91a2FcIDsKK+i/keiRlyA8IGtpbmNob1wgOwor6JC95qy+IDwgcmFra2FuXCA7CivliIfnvr0gPCBraXJpaGFcIDsKK+ehneWtkCA8IGdhcmFzdVwgOwor5bm557eaIDwga2Fuc2VuXCA7Civpg73lv4MgPCB0b3NoaW5cIDsKK+eiuuS/nSA8IGtha3Vob1wgOwor5q2z5q2zIDwgc2Fpc2FpXCA7CivlhYXpm7sgPCBqdXVkZW5cIDsKK+axoOS6rSA8IGNoaXRlaVwgOwor5YaF6LyqIDwgdWNoaXdhXCA7CivpgYvnlKggPCB1bicneW91XCA7Civnm5voprMgPCBzZWlrYW5cIDsKK+WNg+WknCA8IHNlbicneWFcIDsKK+W6j+eroCA8IGpvc2hvdVwgOwor5Yi256amIDwgc2VpZ3lvXCA7CivliIbnvbIgPCBidW5zaG9cIDsKK+W9ouaFiyA8IGtlaXRhaVwgOwor56Gs5aSJIDwga291aGVuXCA7CivlhYjpmaMgPCBzZW5qaW5cIDsKK+WFrOmHkSA8IGtvdWtpblwgOwor6bOl5rihIDwgY2hvdHRvXCA7CivpgYXnlaogPCBvc29iYW5cIDsKK+WKm+azsyA8IHJpa2llaVwgOwor5q2j5rK5IDwgc2hvdXl1XCA7CivljbDljKMgPCBpbmJha29cIDsKK+WNs+WKuSA8IHNva2tvdVwgOwor6I236Ii5IDwgbmlidW5lXCA7CivluoPnr4QgPCBrb3VoYW5cIDsKK+efs+acqCA8IGlzaGlraVwgOwor56Kp5YSSIDwgc2VraWp1XCA7CivokZfmm7ggPCBjaG9zaG9cIDsKK+W3nei+uiA8IGthd2FiZVwgOwor6bOp5rS+IDwgaGF0b2hhXCA7Civmr43lvqEgPCBoYWhhZ29cIDsKK+mBjuS/neittyA8IGthaG9nb1wgOwor6YSt5aOwIDwgdGVpc2VpXCA7CivnoLLlvL4gPCBob3VkYW5cIDsKK+W9k+aJgCA8IHRvdXNob1wgOwor55ub6KOFIDwgc2Vpc291XCA7CivmsLTli6IgPCBzdWlzZWlcIDsKK+mDveW6gSA8IHRvY2hvdVwgOwor5YWt6YOoIDwgcm9rdWJ1XCA7CivmraLmsLQgPCBzaGlzdWlcIDsKK+murumLrSA8IHNlbicnZWlcIDsKK+mFkuWQjSA8IHNodW1laVwgOwor55ub6KGwIDwgc2Vpc3VpXCA7CivmsJHlm6MgPCBtaW5kYW5cIDsKK+iKuOmiqCA8IGdlaWZ1dVwgOwor5bym5p2QIDwgZ2VuemFpXCA7CivliJ3nrYkgPCBzaG90b3VcIDsKK+WFrOmCuCA8IGtvdXRlaVwgOwor5Y2w5Yi7IDwgaW5rb2t1XCA7CivlibLng7kgPCBrYXBwb3VcIDsKK+iTruWPsCA8IHJlbmRhaVwgOwor5q2j5q6/IDwgc2VpZGVuXCA7Civlho3osqkgPCBzYWloYW5cIDsKK+WIh+e3miA8IHNlc3NlblwgOwor5Ymj54q2IDwga2Vuam91XCA7CivljbXlhoYgPCByYW4nJ2VuXCA7CivphbfkvLwgPCBrb2t1amlcIDsKK+WIpeeoriA8IGJlc3NodVwgOwor552l552oIDwgaGVpZ2VpXCA7CivokYnmn4QgPCB5b3VoZWlcIDsKK+iRl+aYjiA8IGNob21laVwgOwor5b6T5aeJIDwganV1c2hpXCA7CivmrrrmhI8gPCBzYXRzdWlcIDsKK+i+nuihqCA8IGppaHlvdVwgOwor6Z2e5Za25YipIDwgaGllaXJpXCA7CivlhazpgbggPCBrb3VzZW5cIDsKK+W+k+WmuSA8IGp1dW1haVwgOwor5Yip56aPIDwgcmlmdWt1XCA7CivntYznt6/lhIAgPCBrZWlpZ2lcIDsKK+WNoOWPliA8IHNlbnNodVwgOwor5q+O5bm0IDwgbWFpbmVuXCA7CivmrovmmpEgPCB6YW5zaG9cIDsKK+WFrOmBkyA8IGtvdWRvdVwgOwor5q2j5q2jIDwgc2Vpc2VpXCA7CivlubPnsbMgPCBoZWliZWlcIDsKK+mFjeWQiCA8IGhhaWdvdVwgOwor5rC05YiGIDwgc3VpYnVuXCA7CivnnJ/nvo4gPCBzaGluYmlcIDsKK+W5hOiIjiA8IGFrdXNoYVwgOwor6a2a6bGXIDwgZ3lvcmluXCA7Civnn6Lmn4QgPCB5YWdhcmFcIDsKK+WFpemDqCA8IG55dXVidVwgOwor55+z5panIDwgc2VraWZ1XCA7Civlhpfoq4cgPCBqb3VkYW5cIDsKK+awtOWGtyA8IHN1aXJlaVwgOwor55+u5pifIDwgd2Fpc2VpXCA7CivokrzlpKkgPCBzb3V0ZW5cIDsKK+WFqOmBkyA8IHplbmRvdVwgOwor5bm856ulIDwgeW91ZG91XCA7CivovZ/ovZ8gPCBnb3Vnb3VcIDsKK+edoeecoCA8IHN1aW1pblwgOwor5beo6LOHIDwga3lvc2hpXCA7CivokYnmm7ggPCBoYWdha2lcIDsKK+WMheW4ryA8IGhvdXRhaVwgOwor5Y6E5LuLIDwgeWFra2FpXCA7CivmsJHllrYgPCBtaW4nJ2VpXCA7Civli4fmlq0gPCB5dXVkYW5cIDsKK+WLleaPuiA8IGRvdXlvdVwgOwor5q6/5b6hIDwgdG9ub2dvXCA7CivljYHlm54gPCBqdWtrYWlcIDsKK+WNgeWbmyA8IGp1dXlvblwgOwor5beo6LKhIDwga3lvemFpXCA7CivljZTlkowgPCBreW91d2FcIDsKK+W5veeqkyA8IHl1dXNvdVwgOwor5bed6LevIDwga2F3YWppXCA7Civli4fmlaIgPCB5dXVrYW5cIDsKK+W3qOixoSA8IGt5b3pvdVwgOwor5YaX6KiAIDwgam91Z2VuXCA7CivmrKDniYcgPCBrYWtlcmFcIDsKK+mAo+ebnyA8IHJlbm1laVwgOwor5bm856iaIDwgeW91Y2hpXCA7CivlvozlpKkgPCBrb3V0ZW5cIDsKK+WFt+i2syA8IGd1c29rdVwgOwor6bGX57KJIDwgcmlucHVuXCA7CivljJblraYgPCBrYWdha3VcIDsKK+mBteazlSA8IGp1bnBvdVwgOwor55m96YeRIDwgaGFra2luXCA7CivpganmuKkgPCB0ZWtpb25cIDsKK+WNl+WNiiA8IG5hbmhhblwgOwor6YC455CDIDwgaWtreXV1XCA7CivphY3liaQgPCBoYWl6YWlcIDsKK+atr+aguSA8IHNoaWtvblwgOwor5Y2S5Y67IDwgc29ra3lvXCA7Civlho3oqpUgPCBzYWl0YW5cIDsKK+mBuOawkSA8IHNlbm1pblwgOwor5biC6KGXIDwgc2hpZ2FpXCA7Civltanpq5ggPCBzdXVrb3VcIDsKK+WFiOmLkiA8IHNlbnBvdVwgOwor55yf57a/IDwgbWF3YXRhXCA7CivmrKPnhLYgPCBraW56ZW5cIDsKK+WRkeWFteihmyA8IG5vbmJlZVwgOwor5b6M5aG1IDwga291amluXCA7Civlhajou40gPCB6ZW5ndW5cIDsKK+mAgeeovyA8IHNvdWtvdVwgOwor5Ya36JS1IDwgcmVpem91XCA7CivphY3liIYgPCBoYWlidW5cIDsKK+W+qeWToSA8IGZ1a3VpblwgOwor5Ye657SNIDwgc3VpdG91XCA7Civlh6bnva4gPCBzaG9jaGlcIDsKK+WGjeioqiA8IHNhaWhvdVwgOwor6I2J6JGJIDwga3VzYWJhXCA7CivlubTnqI4gPCBuZW56ZWlcIDsKK+WGjeiogiA8IHNhaXRlaVwgOwor6Iub6YW3IDwga2Frb2t1XCA7CivlvLfmiZMgPCBreW91ZGFcIDsKK+mCquaVmSA8IGpha3lvdVwgOwor55+i5paHIDwgeWFidW1pXCA7CivlhoXoq4cgPCBuYWlkYW5cIDsKK+awj+WQjSA8IHNoaW1laVwgOwor5YW36LGhIDwgZ3VzaG91XCA7CivnnJ/ntIUgPCBzaGlua3VcIDsKK+WNk+WKuSA8IHRha2tvdVwgOwor6Imm6b2iIDwga2FucmVpXCA7Civli6TmgKAgPCBraW50YWlcIDsKK+WNs+S7iiA8IHNva2tvblwgOwor6YCj55WqIDwgcmVuYmFuXCA7CivlvrTli58gPCBjaG91Ym9cIDsKK+mCpuaWhyA8IGhvdWJ1blwgOwor5b2T5bqXIDwgdG91dGVuXCA7CivmrKDngrkgPCBrZXR0ZW5cIDsKK+W8iuadkSA8IGhlaXNvblwgOwor5b2T5bm0IDwgdG91bmVuXCA7CivlubTnpa0gPCBuZW5zYWlcIDsKK+W9vOWlsyA8IGthbm9qb1wgOwor6I2357iEIDwgbmluYXdhXCA7CivmrbvmlocgPCBzaGlidW5cIDsKK+iNj+iLkiA8IGppbnplblwgOwor5q2z5pmpIDwgc2FpYmFuXCA7CivljIXlrrkgPCBob3V5b3VcIDsKK+i+suiKuCA8IG5vdWdlaVwgOwor5bm056S8IDwgbmVucmVpXCA7CivlvJTml5cgPCBjaG91a2lcIDsKK+mAgOekviA8IHRhaXNoYVwgOwor5Y2K5Y2KIDwgaGFuaGFuXCA7CivliKXnm4MgPCBiZXBwYWlcIDsKK+mBjua/gCA8IGthZ2VraVwgOwor5YaF6KiTIDwgbmFpa3VuXCA7Civnmofou40gPCBrb3VndW5cIDsKK+awtOS7mSA8IHN1aXNlblwgOwor5Y205LiLIDwga3lha2thXCA7CivkuI3nvqnnkIYgPCBmdWdpcmlcIDsKK+WGjeijvSA8IHNhaXNlaVwgOwor5by35oWiIDwgZ291bWFuXCA7CivluIzoloQgPCBraWhha3VcIDsKK+WNmOWFgyA8IHRhbmdlblwgOwor6YGg5rWFIDwgdG9vYXNhXCA7CivovYbovaQgPCByb2t1cm9cIDsKK+avkuWppiA8IGRva3VmdVwgOwor5Y2X5YWJIDwgbmFua291XCA7CivphY3lgbYgPCBoYWlndXVcIDsKK+WGheimsyA8IG5haWthblwgOwor55m66YCBIDwgaGFzc291XCA7CivlvqHlkYogPCBvdHN1Z2VcIDsKK+WGheimpyA8IG5haXJhblwgOwor6YGg5rSLIDwgZW4nJ3lvdVwgOwor5by+5oCnIDwgZGFuc2VpXCA7CivlhoXoposgPCBuYWlrZW5cIDsKK+W9ouWuuSA8IGtlaXlvdVwgOwor5pyJ5oSP5beuIDwgeXV1aXNhXCA7CivlvLfmg4UgPCBnb3Vqb3VcIDsKK+WNg+WNgyA8IGNoaWRqaVwgOwor6L+R57iBIDwga2luJydlblwgOwor55yf566HIDwgc2hpbmtvXCA7CivprZrpoZ4gPCBneW9ydWlcIDsKK+WLh+aIpiA8IHl1dXNlblwgOwor6baP5Y+jIDwga2Vpa291XCA7CivluLjnva4gPCBqb3VjaGlcIDsKK+WNkuWFiCA8IHNvc3NlblwgOwor6YGg5rKIIDwgZW5jaGluXCA7CivmraPmnKwgPCBzZWlob25cIDsKK+ato+acqCA8IG1hc2FraVwgOwor5YWo6LKMIDwgemVuYm91XCA7Civpg6jlsIYgPCBidXNob3VcIDsKK+WFiOmBoyA8IHNlbmtlblwgOwor56Gr5YyWIDwgcnl1dWthXCA7CivpgaHmsYIgPCBzb2t5dXVcIDsKK+ecvOeevCA8IGdhbmtlblwgOwor5Y2K5YiGIDwgaGFucHVuXCA7CivliIbnpL4gPCBidW5zaGFcIDsKK+ato+abuCA8IHNlaXNob1wgOwor5YWl6LK7IDwgbnl1dWhpXCA7Civnn63miYAgPCB0YW5zaG9cIDsKK+WNiOWIuyA8IGdva29rdVwgOwor5Y2g5L2PIDwgc2VuanV1XCA7Civlt6HopqcgPCBqdW5yYW5cIDsKK+awl+WEmCA8IGtpbWFtYVwgOwor5b+M5LitIDwga2ljaHV1XCA7CivlhoXoo4UgPCBuYWlzb3VcIDsKK+W9ueWgtCA8IHlha3ViYVwgOwor6a2U6aKoIDwgbWFrYXplXCA7Civlh7rnqpMgPCBkZW1hZG9cIDsKK+ebruiEgiA8IG1leWFuaVwgOwor5Yqp5pWZIDwgam9reW91XCA7CivphZLku5kgPCBzaHVzZW5cIDsKK+m2j+WNtSA8IGtlaXJhblwgOwor55yf56u5IDwgbWFkYWtlXCA7CivnnIvntYwgPCBrYW5raW5cIDsKK+W7uuadkCA8IGtlbnphaVwgOwor55m66LuKIDwgaGFzc2hhXCA7CivmsJHlhbUgPCBtaW5wZWlcIDsKK+W+qeWIiiA8IGZ1a2thblwgOwor5Y2K5YaGIDwgaGFuJydlblwgOwor5YuY5b2TIDwga2FuZG91XCA7CivlvIrmlL8gPCBoZWlzZWlcIDsKK+WMiOWltCA8IGt5b3Vkb1wgOwor6YWS5LmxIDwgc2h1cmFuXCA7Civnm7LogIUgPCBtb3VzaGFcIDsKK+W7g+a2siA8IGhhaWVraVwgOwor5bem6KGoIDwgc2FoeW91XCA7CivpgYXmu54gPCBjaGl0YWlcIDsKK+WIgOekvCA8IHRvdXJlaVwgOwor5byB5piOIDwgYmVubWVpXCA7Civlv4PkuosgPCBzaGluamlcIDsKK+WLmOW8gSA8IGthbmJlblwgOwor5qyy5rCXIDwgeW9rdWtlXCA7Civnn63mha4gPCB0YW5yeW9cIDsKK+WNg+WIhiA8IHNlbmJ1blwgOwor5Yqj5pWXIDwgcmVwcGFpXCA7Civmr47lpJUgPCBtYWl5dXVcIDsKK+egsuWjsCA8IGhvdXNlaVwgOwor5YWJ6LyqIDwga291cmluXCA7CivljZLlgJIgPCBzb3R0b3VcIDsKK+WNmOS9kyA8IHRhbnRhaVwgOwor55m+6LazIDwgbXVrYWRlXCA7CivmrKfmtLIgPCBvdXNodXVcIDsKK+WLheaEjyA8IGNob2t1aVwgOwor5YWs6KuWIDwga291cm9uXCA7CivljYHliIYgPCBqdXBwdW5cIDsKK+mtmumbtyA8IGd5b3JhaVwgOwor5YWI6LypIDwgc2VucGFpXCA7CivlubPnm64gPCBoaXJhbWVcIDsKK+mDt+WjqyA8IGdvdXNoaVwgOwor5q2k5pa5IDwga29uYXRhXCA7CivliaPms5UgPCBrZW5wb3VcIDsKK+iMtuiMtiA8IGNoYWNoYVwgOwor5q2j5pa5IDwgc2VpaG91XCA7CivmrabmlZkgPCBidWt5b3VcIDsKK+WJquavmyA8IHNlbm1vdVwgOwor6YWN5LmXIDwgaGFpam91XCA7Civnn5zmjIEgPCBreW91amlcIDsKK+i+suiAlSA8IG5vdWtvdVwgOwor5Y2D5YaGIDwgc2VuJydlblwgOwor5Yid55SfIDwgc2hvc2VpXCA7Civlhazoqo0gPCBrb3VuaW5cIDsKK+W3oeihjCA8IGp1bmtvdVwgOwor5Yy65YqDIDwga3VrYWt1XCA7CivmraPmlocgPCBzZWlidW5cIDsKK+atjOagvCA8IGtha2FrdVwgOwor5bm955WMIDwgeXV1a2FpXCA7CivmraPmlbAgPCBzZWlzdXVcIDsKK+W+jOWRsyA8IGF0b2FqaVwgOwor56Cy5aGUIDwgaG91dG91XCA7CivnoZ3ljJYgPCBzaG91a2FcIDsKK+WFvOihjCA8IGtlbmtvdVwgOwor5b2r5aGRIDwgY2hvdXNvXCA7CivljYHlhaggPCBqdXV6ZW5cIDsKK+WFrOiosSA8IGtvdWt5b1wgOwor5Y2X5LqsIDwgbmFua2luXCA7Civnn6Xmha4gPCBjaGlyeW9cIDsKK+atu+aJgCA8IHNoaXNob1wgOwor5bm855SfIDwgeW91c2VpXCA7CivpgZPmsJEgPCBkb3VtaW5cIDsKK+WNiuWApCA8IGhhbicnbmVcIDsKK+aCtuOAhSA8IG1vbm1vblwgOwor6L+U562UIDwgaGVudG91XCA7CivojLboibIgPCBjaGFpcm9cIDsKK+aoqeisgCA8IGtlbmJvdVwgOwor6baP5YagIDwgdG9zYWthXCA7Civnmb7osqggPCBoeWFra2FcIDsKK+W7u+aWhyA8IGthaWJ1blwgOwor5YuB5oKNIDwga2Vpa2FuXCA7CivlhYPou40gPCBnZW5ndW5cIDsKK+WNgeWEhCA8IGp1dW9rdVwgOwor5byV5omLIDwgaGlraXRlXCA7CivprZTpmpwgPCBtYXNob3VcIDsKK+WIh+ebriA8IGtpcmVtZVwgOwor5byV5oi4IDwgaGlraWRvXCA7Civou5/poqggPCBuYW5wdXVcIDsKK+ecvOeVjCA8IGdhbmthaVwgOwor6Iy26Ie8IDwgY2hhdXN1XCA7Civpgbjmm7ggPCBzZW5zaG9cIDsKK+iLseiosyA8IGVpeWFrdVwgOwor6Lui6Z+zIDwgdGVuJydvblwgOwor5q6L5b2xIDwgemFuJydlaVwgOwor6Iqz6YaHIDwgaG91anVuXCA7CivlubTnlKMgPCBuZW5zYW5cIDsKK+W5tOeUnyA8IG5lbnNlaVwgOwor5Y2D5YCNIDwgc2VuYmFpXCA7Civlu4PmrosgPCBoYWl6YW5cIDsKK+iJr+mmrCA8IHJ5b3ViYVwgOwor5bmz55SfIDwgaGVpemVpXCA7CivpgYrmsJEgPCB5dXVtaW5cIDsKK+iRm+W4gyA8IGt1enVmdVwgOwor5buD5q2iIDwgaGFpc2hpXCA7CivovKrou6IgPCByaW50ZW5cIDsKK+mrmOe3r+W6piA8IGtvdWlkb1wgOwor5biG6Ii5IDwgaG9idW5lXCA7CivljYHlgI0gPCBqdXViYWlcIDsKK+WJm+avmyA8IGdvdW1vdVwgOwor5q+O5ZueIDwgbWFpa2FpXCA7Civmr43lm70gPCBib2tva3VcIDsKK+awkeS6uiA8IG1pbmppblwgOwor55yf56CCIDwgbWFzYWdvXCA7CivliqnmiYsgPCBzdWtldGVcIDsKK+atouaPmiA8IHNoaXlvdVwgOwor5bm9546EIDwgeXV1Z2VuXCA7CivoirjpgZMgPCBnZWlkb3VcIDsKK+WKoOaMryA8IGthc2hpblwgOwor55ub6ICFIDwgam91c2hhXCA7Civlvbnlk6EgPCB5YWt1aW5cIDsKK+W+ruS5syA8IGJpbnl1dVwgOwor55yM56iOIDwga2VuemVpXCA7CivlhKrpgYcgPCB5dXVndXVcIDsKK+efs+W3pSA8IHNla2tvdVwgOwor5YaF6JS1IDwgbmFpem91XCA7CivmsJHkuLsgPCBtaW5zaHVcIDsKK+WIneeKryA8IHNob2hhblwgOwor5q6/5aCCIDwgZGVuZG91XCA7CivlurbmsJEgPCBzaG9taW5cIDsKK+eerOaZgiA8IHNodW5qaVwgOwor5YSq6YCAIDwgeXV1dGFpXCA7Civlh7nnm64gPCBrdWJvbWVcIDsKK+WKo+aJjSA8IHJlc3NhaVwgOwor6Lyq6LedIDwgcmlua3lvXCA7Civov5TnpLwgPCBoZW5yZWlcIDsKK+WIgOeXlSA8IHRvdWtvblwgOwor6bO05oi4IDwgbmFydXRvXCA7Civli5jlrpogPCBrYW5qb3VcIDsKK+WGheiSmSA8IG5haW1vdVwgOwor55uu57OeIDwgbWVrdXNvXCA7CivluqfmtbQgPCB6YXlva3VcIDsKK+aomeiqniA8IGh5b3Vnb1wgOwor55m96KmxIDwgaGFrdXdhXCA7CivliKTnhLYgPCBoYW56ZW5cIDsKK+egguWtkCA8IHN1bmFnb1wgOwor5oKg44CFIDwgeXV1eXV1XCA7CivlirTlvbkgPCByb3Vla2lcIDsKK+iMl+iNtyA8IG15b3VnYVwgOwor55uu57GgIDwgbWVrYWdvXCA7CivnnYDniakgPCBraW1vbm9cIDsKK+i7iumiqCA8IHNoYWZ1dVwgOwor5qiZ6KiYIDwgaHlvdWtpXCA7CivprJrpq68gPCBzaHV6ZW5cIDsKK+WJjeautSA8IHplbmRhblwgOwor6YGu5patIDwgc2hhZGFuXCA7CivpganmmYIgPCB0ZWtpamlcIDsKK+iNiee0mSA8IHNvdXNoaVwgOwor6JC95b6MIDwgcmFrdWdvXCA7Civnm7LnrqEgPCBtb3VrYW5cIDsKK+WNgeS4iSA8IGp1dXNhblwgOwor5Y2B5LiHIDwganV1bWFuXCA7Civmr5LlkbMgPCBkb2t1bWlcIDsKK+iRieW3uyA8IGhhbWFraVwgOwor5by15a2QIDwgaGFyaWtvXCA7Civnn7PlsYsgPCBpc2hpeWFcIDsKK+W+oeS4uyA8IG9udXNoaVwgOwor6YO95ZCIIDwgdHN1Z291XCA7CivlvqHkuK0gPCBvbmNodXVcIDsKK+iKsei8qiA8IGhhbmF3YVwgOwor5byB5oW2IDwgYmVua2VpXCA7CivkuI3osp7lr50gPCBmdXRlbmVcIDsKK+WFjeiosSA8IG1lbmt5b1wgOwor5bmy54qvIDwga2FucGFuXCA7Civliarmnp0gPCBzZW5zaGlcIDsKK+iKsei7uCA8IGthamlrdVwgOwor5bm954S2IDwgeXV1emVuXCA7Civlh7nnlLAgPCBrdWJvdGFcIDsKK+iLpuihtyA8IGt1Y2h1dVwgOwor55m66KaLIDwgaGFra2VuXCA7CivlhY7op5IgPCB0b2tha3VcIDsKK+W9k+WcsCA8IHRvdWNoaVwgOwor5bmy54mpIDwgaGltb25vXCA7CivlubPniYggPCBoZWloYW5cIDsKK+iLpuihjCA8IGt1Z3lvdVwgOwor6a+o6ISCIDwgZ2Vpc2hpXCA7Civlho3oiIggPCBzYWlrb3VcIDsKK+iQveW6piA8IG9jaGlkb1wgOwor56Cy5Y+wIDwgaG91ZGFpXCA7Civlho3oh6ggPCBzYWlyaW5cIDsKK+ecn+eUsCA8IHNhbmFkYVwgOwor5Yqp5b25IDwgam95YWt1XCA7Civmr47lj7cgPCBtYWlnb3VcIDsKK+WKo+aApyA8IHJlc3NlaVwgOwor55uu56yKIDwgbWV6YXJ1XCA7Civmra/lvaIgPCBoYWdhdGFcIDsKK+W8vuWljyA8IGRhbnNvdVwgOwor5YyF5ZCrIDwgaG91Z2FuXCA7Civlu4PmoKEgPCBoYWlrb3VcIDsKK+W+jOS+vyA8IGtvdWJpblwgOwor5YyN5YyQIDwgaG9mdWt1XCA7Civpg4rlpJYgPCBrb3VnYWlcIDsKK+W8t+WnpiA8IGdvdWthblwgOwor55m96KGjIDwgYnlha3VlXCA7Civlt6joiaYgPCBreW9rYW5cIDsKK+mAsuatqSA8IHNoaW5wb1wgOwor5Yeh55y8IDwgYm9uZ2FuXCA7Civlg6fploAgPCBzb3Vtb25cIDsKK+i/lOebgyA8IGhlbnBhaVwgOwor5bel6Iq4IDwga291Z2VpXCA7Civou43pmoogPCBndW50YWlcIDsKK+iQveW3riA8IHJha3VzYVwgOwor5beo6Ii5IDwga3lvc2VuXCA7CivpsZfnirYgPCByaW5qb3VcIDsKK+i7jemZoyA8IGd1bmppblwgOwor6Lyq6KybIDwgcmlua291XCA7CivmrovlrZggPCB6YW56b25cIDsKK+W5s+eEtiA8IGhlaXplblwgOwor5YiH54mHIDwgc2VwcGVuXCA7CivljJflhYkgPCBob2trb3VcIDsKK+atpuW+syA8IGJ1dG9rdVwgOwor55yJ55uuIDwgYmltb2t1XCA7CivnnLzngrkgPCBnYW50ZW5cIDsKK+WLleWkqSA8IGRvdXRlblwgOwor5Yqf5b6zIDwga3Vkb2t1XCA7Civlvozku7YgPCBrb3VrZW5cIDsKK+iJpumaiiA8IGthbnRhaVwgOwor5q2v5Yy76ICFIDwgaGFpc2hhXCA7Civoi5foo5QgPCBieW91ZWlcIDsKK+WKoOW9uSA8IGtheWFrdVwgOwor5b6M5LujIDwga291ZGFpXCA7CivpsZfniYcgPCByaW5wZW5cIDsKK+W8iuW6lyA8IGhlaXRlblwgOwor55yf55CGIDwgc2hpbnJpXCA7CivlhJXovKkgPCBzYWloYWlcIDsKK+earuiGnCA8IGhpbWFrdVwgOwor5Ly86aGU57W1IDwgbmlnYW9lXCA7CivlvbnlhIAgPCB5YWt1Z2lcIDsKK+ecn+ePoCA8IHNoaW5qdVwgOwor5Ymq5patIDwgc2VuZGFuXCA7CivlhazokawgPCBrb3Vzb3VcIDsKK+egguWgtCA8IHN1bmFiYVwgOwor5byB5b2TIDwgYmVudG91XCA7CivpgJPmuJsgPCB0ZWlnZW5cIDsKK+W+gOS/oSA8IG91c2hpblwgOwor6LuN6ZaAIDwgZ3VubW9uXCA7CivluqfmqJkgPCB6YWh5b3VcIDsKK+mtmumBkyA8IGd5b2RvdVwgOwor6ImH6aaWIDwgdGVpc2h1XCA7CivpgqrlrpcgPCBqYXNodXVcIDsKK+ato+W8piA8IHNlaWdlblwgOwor5YuH5ae/IDwgeXV1c2hpXCA7CivliIbnhZkgPCBidW4nJ2VuXCA7CivmrKDmnKwgPCBrZXBwb25cIDsKK+avjuWIhiA8IG1haWZ1blwgOwor5Yi25q2iIDwgc2Vpc2hpXCA7Civpg7XliLggPCB5dXVrZW5cIDsKK+iNkuejryA8IGFyYWlzb1wgOwor6Lu96LypIDwga2VpaGFpXCA7Civoj6/ml48gPCBrYXpva3VcIDsKK+ani+mAoCA8IGtvdXpvdVwgOwor6JGX5aSnIDwgY2hvZGFpXCA7Civlh7rniakgPCBkZW1vbm9cIDsKK+iMheiIjiA8IGJvdXNoYVwgOwor5bqn5qWtIDwgemFneW91XCA7Civli53lm6AgPCBzaG91aW5cIDsKK+earuiCiSA8IGhpbmlrdVwgOwor5YmN5qC9IDwgc2VuemFpXCA7CivnoLLlhbUgPCBob3VoZWlcIDsKK+WGheiBniA8IG5haWJ1blwgOwor5YiG54K5IDwgYnVudGVuXCA7CivmrbvlroggPCBzaGlzaHVcIDsKK+W6leatoiA8IHRlaXNoaVwgOwor5YW16Ii5IDwgaGVpc2VuXCA7CivliKXms5UgPCBiZXBwb3VcIDsKK+WHuOeJiCA8IHRvcHBhblwgOwor6YCa5rCXIDwgdHN1dWtpXCA7CivliqDlt54gPCBrYXNodXVcIDsKK+ato+W4uCA8IHNlaWpvdVwgOwor5bu75buKIDwga2Fpcm91XCA7CivpgJ/mrakgPCBzb2t1aG9cIDsKK+W5sua9nyA8IGhpZ2F0YVwgOwor6Lu96LqBIDwga2Vpc291XCA7CivpgaXmi50gPCB5b3VoYWlcIDsKK+iKuOirhyA8IGdlaWRhblwgOwor5ben6ICFIDwga291c2hhXCA7CivlhKroq5ogPCB5dXVqb3VcIDsKK+mzqeW6pyA8IGhhdG96YVwgOwor55+t5aSnIDwgdGFuZGFpXCA7Civlt6bnv7wgPCBzYXlva3VcIDsKK+iMtuethSA8IGNoYXNlblwgOwor5YmN5p2/IDwgbWFlaXRhXCA7Civlg7vpgaAgPCBoZWtpZW5cIDsKK+mrmOm6lyA8IGtvdXJhaVwgOwor6Lqr6aCDIDwgbWlnb3JvXCA7CivliY3mnaEgPCB6ZW5qb3VcIDsKK+WFpeiNtyA8IG55dXVrYVwgOwor5Ymy5ougIDwga2Fra3lvXCA7CivlvLflm7ogPCBreW91a29cIDsKK+W5s+a6liA8IGhlaWp1blwgOwor5byf5aa5IDwgdGVpbWFpXCA7Civnl5vpo7IgPCB0c3V1aW5cIDsKK+WKvuWljyA8IGdhaXNvdVwgOwor5bmy5rqAIDwga2FubWFuXCA7CivliY3mm7ggPCB6ZW5zaG9cIDsKK+W7tuW5tCA8IGVuJyduZW5cIDsKK+eXhemtlCA8IGJ5b3VtYVwgOwor5Yip5qyyIDwgcml5b2t1XCA7Civpg63lhawgPCBrYWtrb3VcIDsKK+W6reacqCA8IG5pd2FraVwgOwor5qW96Z+zIDwgZ2FrdW9uXCA7CivmrovloYEgPCB6YW5ydWlcIDsKK+WFpeiLkSA8IG55dXVlblwgOwor6Iul6JGJIDwgd2FrYWJhXCA7Civlh4bnnIsgPCBqdW5rYW5cIDsKK+W4uOeUqCA8IGpvdXlvdVwgOwor5Yuy5YqfIDwga3Vua291XCA7CivlvIrlrrMgPCBoZWlnYWlcIDsKK+atpOWyuCA8IHNoaWdhblwgOwor5bmz5rehIDwgaGVpdGFuXCA7CivngavkuovloLQgPCBrYWppYmFcIDsKK+WFqOiIrCA8IHplbnBhblwgOwor5YmN5pmvIDwgemVua2VpXCA7CivpgaDmiJogPCBlbnNla2lcIDsKK+auuuWIsCA8IHNhdHRvdVwgOwor55uu55ubIDwgbWVtb3JpXCA7Civoi6Xoj5wgPCB3YWthbmFcIDsKK+W4hueriyA8IGhvdGF0ZVwgOwor6YOh5Yi2IDwgZ3Vuc2VpXCA7Civpg7Xkvr8gPCB5dXViaW5cIDsKK+i7oumAgSA8IHRlbnNvdVwgOwor55uu55m9IDwgbWVqaXJvXCA7Civnm6rnm6ogPCB0b3V0b3VcIDsKK+WIneautSA8IHNob2RhblwgOwor6Ii56aCtIDwgc2VuZG91XCA7CivlvZPliIYgPCB0b3VidW5cIDsKK+mAseacnyA8IHNodXVraVwgOwor6YOO5ZCbIDwgcm91a3VuXCA7Civov5HnirYgPCBraW5qb3VcIDsKK+W3qOe3qCA8IGt5b2hlblwgOwor6Iqx6KaLIDwgaGFuYW1pXCA7CivlhoXnt5ogPCBuYWlzZW5cIDsKK+asoOaQjSA8IGtlc3NvblwgOwor5YaF57eSIDwgbmFpc2hvXCA7CivliJHms5UgPCBrZWlob3VcIDsKK+mztOWtkCA8IG5hcnVrb1wgOwor5YmN5paHIDwgemVuYnVuXCA7CivmrablraYgPCBidWdha3VcIDsKK+WHuua9riA8IGRlc2hpb1wgOwor5bit55S7IDwgc2VraWdhXCA7CivpgIbmr5sgPCBzYWthZ2VcIDsKK+mBqeW/nCA8IHRla2lvdVwgOwor6a2a6LKdIDwgZ3lvYmFpXCA7Civoi6Xoir0gPCB3YWthbWVcIDsKK+i7oui8iSA8IHRlbnNhaVwgOwor5Ya355y8IDwgcmVpZ2FuXCA7Civli6Tli4kgPCBraW5iZW5cIDsKK+arm+avlCA8IHNoaXBwaVwgOwor6YCB5rC0IDwgc291c3VpXCA7Civli6TlirQgPCBraW5yb3VcIDsKK+W4gueojiA8IHNoaXplaVwgOwor5q+N5LmzIDwgYm9ueXV1XCA7Civou6Lou6IgPCB0ZW50ZW5cIDsKK+mBlOaIkCA8IHRhc3NlaVwgOwor5YaF57SbIDwgbmFpZnVuXCA7Civli7/kvZMgPCBtb3R0YWlcIDsKK+WLmOWQiCA8IGthbmdvdVwgOwor6Iy256KXIDwgY2hhd2FuXCA7Civou43phY0gPCBndW5iYWlcIDsKK+W5s+awtCA8IGhlaXN1aVwgOwor6bOl5bGLIDwgdG9yaXlhXCA7CivlubPmsJEgPCBoZWltaW5cIDsKK+W5s+awjyA8IGhlaXNoaVwgOwor6YCj5p6dIDwgcmVuc2hpXCA7Civmr43kuIogPCBoYWhhdWVcIDsKK+WLleWQkSA8IGRvdWtvdVwgOwor55a+6aeGIDwgc2hpa2t1XCA7Civlh73muKAgPCBrYW5reW9cIDsKK+i+sueUoyA8IG5vdXNhblwgOwor5YiR5q27IDwga2Vpc2hpXCA7CivmpbzploAgPCByb3Vtb25cIDsKK+WFrOe9siA8IGtvdXNob1wgOwor5bm05q2vIDwgbmVuc2hpXCA7CivpgKDmnpcgPCB6b3VyaW5cIDsKK+iIuemaiiA8IHNlbnRhaVwgOwor6YGg5b+DIDwgZW5zaGluXCA7Civoi5voi5sgPCBpcmFpcmFcIDsKK+W8seWRsyA8IHlvd2FtaVwgOwor6YGp5bqmIDwgdGVraWRvXCA7CivliYrmkakgPCBzYWt1bWFcIDsKK+i8quiUtSA8IHJpbnpvdVwgOwor5by+5Yq+IDwgZGFuZ2FpXCA7CivpgZTmhI8gPCB0YXRzdWlcIDsKK+W6leacrCA8IHRlaWhvblwgOwor5Yiw5p2lIDwgdG91cmFpXCA7CivnmbroiaYgPCBoYWtrYW5cIDsKK+WIjuatuyA8IGZ1bnNoaVwgOwor6LuN6YGTIDwgZ3VuZG91XCA7CivlibXlu7ogPCBzb3VrZW5cIDsKK+WJjeaPkCA8IHplbnRlaVwgOwor5Yas552AIDwgZnV5dWdpXCA7CivpgKDmnKwgPCB6b3Vob25cIDsKK+eci+eCuSA8IGthbnRlblwgOwor5qyj5oeQIDwga2lua2FpXCA7CivoloTjgIUgPCB1c3V1c3VcIDsKK+WGrOecoCA8IHRvdW1pblwgOwor6LGq6Zuo56aNIDwgZ291dWthXCA7Civli53liKkgPCBzaG91cmlcIDsKK+eZu+iHqCA8IHRvdXJpblwgOwor6LuK6YGTIDwgc2hhZG91XCA7CivlvLfljJYgPCBreW91a2FcIDsKK+i+m+ebriA8IGthcmFtZVwgOwor5YuV5YuiIDwgZG91c2VpXCA7Civnl7TpiI0gPCBjaGlkb25cIDsKK+aui+WTgSA8IHphbnBpblwgOwor5bq45omNIDwgeW91c2FpXCA7Civli5XlirQgPCBkb3Vyb3VcIDsKK+i7kui8iiA8IGtlbmNoaVwgOwor5YWJ6IqSIDwga291Ym91XCA7CivluK/nirYgPCBvYmlqb3VcIDsKK+iLpuiCiSA8IGt1bmlrdVwgOwor6YCj5pifIDwgcmVuc2VpXCA7Civnm67njokgPCBtZWRhbWFcIDsKK+iMtuebhiA8IGNoYWJvblwgOwor6YOO5YWaIDwgcm91ZG91XCA7CivluIPnn7MgPCBmdXNla2lcIDsKK+iHpem+jSA8IGdhcnlvdVwgOwor5byB5aSpIDwgYmVudGVuXCA7CivliIfmra8gPCBzZXNzaGlcIDsKK+efreWRvSA8IHRhbm1laVwgOwor5bej566xIDwgc3ViYWtvXCA7Civmrr/kuIogPCB0ZW5qb3VcIDsKK+iIt+mWgCA8IGdlbm1vblwgOwor6YG45a6aIDwgc2VudGVpXCA7Civli4flkI0gPCB5dXVtZWlcIDsKK+ato+WkpyA8IHNlaWRhaVwgOwor6auR6auPIDwgZG9rdXJvXCA7CivliKnmnK0gPCByaWZ1ZGFcIDsKK+mBt+WuriA8IHNlbmd1dVwgOwor6Lui6LK4IDwgdGVudGFpXCA7CivlvIHlo6sgPCBiZW5zaGlcIDsKK+S6nOm6u+ijvSA8IGFtYXNlaVwgOwor6YGT5b+1IDwgZG91bmVuXCA7CivnnrPlrZAgPCBkb3VzaGlcIDsKK+W9k+S7oyA8IHRvdWRhaVwgOwor5bqK5py6IDwgc2hvdWdpXCA7CivlhYjoiKwgPCBzZW5wYW5cIDsKK+W9k+S6uiA8IHRvdW5pblwgOwor6YG15a6IIDwganVuc2h1XCA7Civou4rovKogPCBzaGFyaW5cIDsKK+WIneagoSA8IHNob2tvdVwgOwor6LuN6LuKIDwgZ3Vuc2hhXCA7CivpgKPmlZcgPCByZW5wYWlcIDsKK+W6leaVsCA8IHRlaXN1dVwgOwor5Ye65rC0IDwgZGVtaXp1XCA7Civouqvpiq0gPCBtaXplbmlcIDsKK+iJpui8iSA8IGthbnNhaVwgOwor5bqD5p2xIDwga2FudG9uXCA7CivluIPnm64gPCBudW5vbWVcIDsKK+WFuOevhCA8IHRlbnBhblwgOwor55eF6ZmiIDwgYnlvdWluXCA7Civnn6Xlkb0gPCBjaGltZWlcIDsKK+ebl+eUqCA8IHRvdXlvdVwgOwor5Ymb5oCnIDwgZ291c2VpXCA7CivlvZPkuJYgPCB0b3VzZWlcIDsKK+WLieWKsSA8IGJlbnJlaVwgOwor5Ye65q67IDwgZGVnYXJhXCA7CivlhY7ogokgPCB0b25pa3VcIDsKK+ecoOawlyA8IG5lbXVrZVwgOwor6Iy255WqIDwgY2hhYmFuXCA7CivnnJ/msLQgPCBtYW1penVcIDsKK+W3pueoiyA8IHNhaG9kb1wgOwor6auY6aKoIDwga291ZnV1XCA7Civlub3mnpcgPCB5dXVyaW5cIDsKK+i/lOa4iCA8IGhlbnNhaVwgOwor5Yas55OcIDwgdG91Z2FuXCA7Civmrorli7IgPCBzaHVrdW5cIDsKK+WFieiDjCA8IGtvdWhhaVwgOwor6LuM6LehIDwga2lzZWtpXCA7CivlvLHlhqAgPCBqYWtrYW5cIDsKK+efpeWPiyA8IGNoaXl1dVwgOwor5Yqg5ZynIDwga2FhdHN1XCA7CivojLbnk7YgPCBjaGFiaW5cIDsKK+WIqeaVtSA8IHJpdGVraVwgOwor5Yik5piOIDwgaGFubWVpXCA7CivpganlrpwgPCB0ZWtpZ2lcIDsKK+auiuWKnyA8IHNodWtvdVwgOwor5byl5YuSIDwgbWlyb2t1XCA7CivlhqXnlYwgPCBtZWlrYWlcIDsKK+iKreiViSA8IGJhc2hvdVwgOwor6YGL5byTIDwgdW5reXV1XCA7CivliaPluK8gPCBrZW50YWlcIDsKK+mrmOmfsyA8IHRha2FuZVwgOwor6Imv6LKoIDwgcnlvdWthXCA7Civnn63liaMgPCB0YW5rZW5cIDsKK+WFiOiBliA8IHNlbnNlaVwgOwor5YWo57GzIDwgemVuYmVpXCA7Civnm7LngrkgPCBtb3V0ZW5cIDsKK+WIpOaWrSA8IGhhbmRhblwgOwor5q2T5aOwIDwga2Fuc2VpXCA7CivmrL3lrpogPCBraW50ZWlcIDsKK+mAj+aYjiA8IHRvdW1laVwgOwor6YeN44CFIDwganV1anV1XCA7Civou5/oq5YgPCBuYW5yb25cIDsKK+mCuOWGhSA8IHRlaW5haVwgOwor5YWN572qIDwgbWVuemFpXCA7Civlu4PluJ0gPCBoYWl0ZWlcIDsKK+efreWIgCA8IHRhbnRvdVwgOwor5YWs566XIDwga291c2FuXCA7CivoiIzpoK0gPCB6ZXR0b3VcIDsKK+mBuOWkliA8IHNlbmdhaVwgOwor5q275Y67IDwgc2hpa3lvXCA7Civou43os4cgPCBndW5zaGlcIDsKK+W8leWQiCA8IGhpa2lhaVwgOwor5bm95pmvIDwgeXV1a2VpXCA7CivpgYrlupUgPCB5dXV0ZWlcIDsKK+efqeWJhyA8IGt1c29rdVwgOwor5beh56S8IDwganVucmVpXCA7CivlubTmnaUgPCBuZW5yYWlcIDsKK+WIneaXrCA8IHNob2p1blwgOwor5bmz5p2/IDwgaGVpYmFuXCA7CivlhIDooaggPCBnaWh5b3VcIDsKK+WFteeoriA8IGhlaXNodVwgOwor5beo56CyIDwga3lvaG91XCA7CivnmobntI0gPCBrYWlub3VcIDsKK+aui+WFmiA8IHphbnRvdVwgOwor5qyh5bitIDwgamlzZWtpXCA7CivmrYzlo7AgPCB1dGFnb2VcIDsKK+aooee0oiA8IG1vc2FrdVwgOwor5q6L5YWJIDwgemFua291XCA7CivlhYPogIEgPCBnZW5yb3VcIDsKK+iKs+iNiSA8IGhvdXNvdVwgOwor55yf5qiqIDwgbWF5b2tvXCA7Civlhavnq68gPCBoYXR0YW5cIDsKK+WIhuagoSA8IGJ1bmtvdVwgOwor6YCj5oqVIDwgcmVudG91XCA7Civnm5fniq8gPCB0b3VoYW5cIDsKK+W8vuS4uCA8IGRhbmdhblwgOwor5q2M5aKDIDwga2FreW91XCA7CivlhpnnlJ8gPCBzaGFzZWlcIDsKK+aui+WDjyA8IHphbnpvdVwgOwor5q2p5ZOoIDwgaG9zaG91XCA7CivnnIzmsJEgPCBrZW5taW5cIDsKK+WJo+WxsSA8IGtlbnphblwgOwor5Yq05YqfIDwgcm91a291XCA7CivpgKPmiKYgPCByZW5zZW5cIDsKK+WGt+eEtiA8IHJlaXplblwgOwor5YuV5LmxIDwgZG91cmFuXCA7CivliLbmhrIgPCBzZWlrZW5cIDsKK+W8k+WLoiA8IHl1bnplaVwgOwor5YaF55yBIDwgbmFpc2VpXCA7CivlubPmmI4gPCBoZWltZWlcIDsKK+atu+WIkSA8IHNoaWtlaVwgOwor55yJ5q+bIDwgbWF5dWdlXCA7CivpgKDmiJAgPCB6b3VzZWlcIDsKK+W7g+WxiyA8IGhhaW9rdVwgOwor5YiH5pu/IDwgc2V0dGFpXCA7CivpgIPmlaMgPCB0b3VzYW5cIDsKK+i6q+i7vSA8IG1pZ2FydVwgOwor55+i5YWIIDwgeWFzYWtpXCA7Civou43oq4cgPCBndW5kYW5cIDsKK+W5tOaVsCA8IG5lbnN1dVwgOwor5bGx576K5bqnIDwgeWFnaXphXCA7CivmraPlkbMgPCBzaG91bWlcIDsKK+mAgOaVoyA8IHRhaXNhblwgOwor6Iq46IO9IDwgZ2Vpbm91XCA7CivpgKPmg7MgPCByZW5zb3VcIDsKK+aui+S9mSA8IHphbicneW9cIDsKK+mBo+WkliA8IGtlbmdhaVwgOwor5byB5Y+jIDwgYmVua291XCA7CivnmpPnpKwgPCBrb3ViYW5cIDsKK+ato+WPtyA8IHNlaWdvdVwgOwor6Ium56yRIDwga3VzaG91XCA7CivliIbmmI4gPCBidW5tZWlcIDsKK+W8k+WFtyA8IGt5dXVndVwgOwor55mM6IWrIDwgZ2Fuc2h1XCA7Civnn67kurogPCB3YWlqaW5cIDsKK+iNkua1tyA8IGFyYXVtaVwgOwor6bO05YuVIDwgbWVpZG91XCA7CivlhoXnlYwgPCBuYWlrYWlcIDsKK+W6p+W4rSA8IHphc2VraVwgOwor5q2j5Y2XIDwgc2VpbmFuXCA7CivoirjogIUgPCBnZWlzaGFcIDsKK+ato+WNiCA8IHNob3Vnb1wgOwor5YaF55SoIDwgbmFpeW91XCA7CivliKXmh4cgPCBiZWtrb25cIDsKK+WIhuaVsCA8IGJ1bnN1dVwgOwor5YiG5pWjIDwgYnVuc2FuXCA7CivlhKrogIUgPCB5dXVzaGFcIDsKK+WNkuWhlOWphiA8IHNvdG9iYVwgOwor5q2v5YagIDwgc2hpa2FuXCA7Civlho3nj74gPCBzYWlnZW5cIDsKK+W6t+WvpyA8IGtvdW5laVwgOwor5Yqf5Yq0IDwga291cm91XCA7CivmrITlubIgPCByYW5rYW5cIDsKK+WIl+aMmSA8IHJla2t5b1wgOwor5YmN5bGxIDwgemVuemFuXCA7CivlvKXkuYUgPCBiaWt5dXVcIDsKK+eZuuerryA8IGhvdHRhblwgOwor5Yid5oimIDwgc2hvc2VuXCA7Civou43oo4UgPCBndW5zb3VcIDsKK+WIpeaEjyA8IGJldHN1aVwgOwor5Ye65pmCIDwgZGVkb2tpXCA7CivpgKPlvL4gPCByZW5kYW5cIDsKK+S6nOm6u+iJsiA8IGFtYWlyb1wgOwor55+l5Lq6IDwgY2hpamluXCA7CivojKvnhLYgPCBib3V6ZW5cIDsKK+i8lOe/vCA8IGhveW9rdVwgOwor6L6y5rOVIDwgbm91aG91XCA7CivliKnmga8gPCByaXNva3VcIDsKK+W6nOW6gSA8IGZ1Y2hvdVwgOwor5bq25a2QIDwgc2hvc2hpXCA7Civoj6/lpaIgPCBreWFzaGFcIDsKK+iHs+mboyA8IHNoaW5hblwgOwor5Yq05L2/IDwgcm91c2hpXCA7Civlu4nlo7IgPCByZW5iYWlcIDsKK+atu+S9kyA8IHNoaXRhaVwgOwor6YCi5byVIDwgYWliaWtpXCA7CivlgZzpoJMgPCB0ZWl0b25cIDsKK+mBuuWRiiA8IHl1aWdvdVwgOwor5Ye95pWwIDwga2Fuc3V1XCA7Civlhrfmt6EgPCByZWl0YW5cIDsKK+ecn+aYvCA8IG1haGlydVwgOwor5Ye65pa5IDwgZGVrYXRhXCA7CivliaPlo6sgPCBrZW5zaGlcIDsKK+WFrOebiiA8IGtvdWVraVwgOwor6Ii56LevIDwgZnVuYWppXCA7Civnlo7pmpQgPCBzb2tha3VcIDsKK+WKoOWFpSA8IGthbnl1dVwgOwor6L6y5rCRIDwgbm91bWluXCA7CivpgaDlm70gPCBvbmdva3VcIDsKK+WFt+eUsyA8IGd1c2hpblwgOwor6I235pytIDwgbmlmdWRhXCA7CivluK3mrKEgPCBzZWtpamlcIDsKK+WIqeW+lyA8IHJpdG9rdVwgOwor5YWo55uyIDwgemVubW91XCA7CivmrbvkuqEgPCBzaGlib3VcIDsKK+W3qOeNoyA8IGt5b2p1dVwgOwor5q2j5YW1IDwgc2VpaGVpXCA7Civlhajnm5sgPCB6ZW5zZWlcIDsKK+i5iOmetCA8IHRhdGFyYVwgOwor6YCj5bivIDwgcmVudGFpXCA7CivpgJ/luqYgPCBzb2t1ZG9cIDsKK+WIsOW6lSA8IHRvdXRlaVwgOwor5YWN56iOIDwgbWVuemVpXCA7CivoiIzpi5IgPCB6ZXBwb3VcIDsKK+mAoOW5oyA8IHpvdWhlaVwgOwor5qiZ56S6IDwgaHlvdWppXCA7CivlubPmiYsgPCBoaXJhdGVcIDsKK+WBnOmbuyA8IHRlaWRlblwgOwor5YGl6ZeYIDwga2VudG91XCA7CivoiJ/pgYsgPCBzaHV1dW5cIDsKK+aoquebriA8IHlva29tZVwgOwor5Yex5peLIDwgZ2Fpc2VuXCA7Civnm67mrKEgPCBtb2t1amlcIDsKK+WGt+aziSA8IHJlaXNlblwgOwor5YWo55mSIDwgemVuJyd5dVwgOwor55m956OBIDwgaGFrdWppXCA7Civov5TmnKwgPCBoZW5wb25cIDsKK+WIpeW9oiA8IGJla2tlaVwgOwor5bm75oOzIDwgZ2Vuc291XCA7CivnnIvmnb8gPCBrYW5iYW5cIDsKK+WGjeeHgyA8IHNhaW5lblwgOwor552A5oSPIDwgY2hha3VpXCA7CivlhoXnirYgPCBuYWlqb3VcIDsKK+WIpeW9kyA8IGJldHRvdVwgOwor6L+R5p2xIDwga2ludG91XCA7Civlu7rlhbcgPCB0YXRlZ3VcIDsKK+i/keadpSA8IGtpbnJhaVwgOwor6L+U5pu4IDwgaGVuc2hvXCA7Civluo/luZUgPCBqb21ha3VcIDsKK+WBtOmOliA8IHNva3VzYVwgOwor5qaC6KuWIDwgZ2Fpcm9uXCA7Civnl4Xouq8gPCBieW91a3VcIDsKK+alveitnCA8IGdha3VmdVwgOwor5Ya35rGXIDwgcmVpa2FuXCA7CivliIbmi4UgPCBidW50YW5cIDsKK+i+o+ayuSA8IHJhemV5dVwgOwor5YqH5YyWIDwgZ2VraWthXCA7CivlhrfmsLQgPCByZWlzdWlcIDsKK+mChOWFgyA8IGthbmdlblwgOwor5Yip5bmFIDwgcmloYWJhXCA7Civlh6Hmm7ggPCBib25zaG9cIDsKK+mAo+WzsCA8IHJlbnBvdVwgOwor5YqH5YuZIDwgZ2VraW11XCA7CivliIfmiYsgPCBraXJldGVcIDsKK+W5u+aAqiA8IGdlbmthaVwgOwor6L+95oWVIDwgdHN1aWJvXCA7CivnmbrnoLIgPCBoYXBwb3VcIDsKK+i6q+iosSA8IG1pbW90b1wgOwor6YGp5ZCmIDwgdGVraWhpXCA7Civlh7rmjpsgPCBkZWdha2VcIDsKK+WGhueGnyA8IGVuanVrdVwgOwor6L+R5pmvIDwga2lua2VpXCA7CivpgKPlsbEgPCByZW56YW5cIDsKK+mrmOmCgSA8IGtvdW1haVwgOwor5YmN5aWPIDwgemVuc291XCA7CivlupflsYsgPCBtaXNleWFcIDsKK+WHpuaWuSA8IHNob2hvdVwgOwor6Z2S5rW36IuUIDwgYW9ub3JpXCA7CivpgY3lnKggPCBoZW56YWlcIDsKK+WIpeW3uyA8IGJla2thblwgOwor5YaX5ryrIDwgam91bWFuXCA7CivmpoLoprMgPCBnYWlrYW5cIDsKK+WJjeWknCA8IHplbicneWFcIDsKK+W7uuWApCA8IHRhdGVuZVwgOwor5bm75b2xIDwgZ2VuJydlaVwgOwor6YCj5bCEIDwgcmVuc2hhXCA7CivliY3lo7IgPCBtYWV1cmlcIDsKK+amguimgSA8IGdhaXlvdVwgOwor5YKN6LypIDwgaG91YmFpXCA7Civnmb3nnIkgPCBoYWt1YmlcIDsKK+WzoemDqCA8IGt5b3VidVwgOwor5Yi25a6aIDwgc2VpdGVpXCA7Civou73nvaogPCBrZWl6YWlcIDsKK+eVqumgrSA8IGJhbnRvdVwgOwor5Yid5bm0IDwgc2hvbmVuXCA7CivovpvmsJcgPCBzaGlua2lcIDsKK+WJsuWQiCA8IHdhcmlhaVwgOwor5qW86KazIDwgcm91a2FuXCA7Civoi6bnl5sgPCBrdXRzdXVcIDsKK+W5vuW5tCA8IGlrdW5lblwgOwor5Yas5q+bIDwgZnV5dWdlXCA7CivlhYjnn6UgPCBzZW5jaGlcIDsKK+W6l+WtkCA8IHRhbmFrb1wgOwor6a2a576kIDwgZ3lvZ3VuXCA7CivpgIDlvbkgPCB0YWlla2lcIDsKK+W5vOW5tCA8IHlvdW5lblwgOwor6L+C5puyIDwgdWt5b2t1XCA7CivlibLljbAgPCB3YXJpaW5cIDsKK+WIqeWwvyA8IHJpbnlvdVwgOwor5Ly86Z2e6KaqIDwgZXNlb3lhXCA7CivluorlsYsgPCB0b2tveWFcIDsKK+mAgOW7tyA8IHRhaXRlaVwgOwor5qip54++IDwgZ29uZ2VuXCA7CivlgbTpg6ggPCBzb2t1YnVcIDsKK+W4sOacjSA8IGtpZnVrdVwgOwor55y85bqVIDwgZ2FudGVpXCA7CivpgIDlu4MgPCB0YWloYWlcIDsKK+WIpeWxhSA8IGJla2t5b1wgOwor55WZ6aOyIDwgcnl1dWluXCA7CivliKrlrpogPCBzYW50ZWlcIDsKK+ashOWkliA8IHJhbmdhaVwgOwor5Yag5rC0IDwga2Fuc3VpXCA7CivliKXlsIEgPCBiZXBwdXVcIDsKK+ecvOW4ryA8IGdhbnRhaVwgOwor5bmz5bm0IDwgaGVpbmVuXCA7CivlubPlubMgPCBoZWloZWlcIDsKK+iHhumdoiA8IG9rdW1lblwgOwor5buD5ZOBIDwgaGFpaGluXCA7Civov7flvakgPCBtZWlzYWlcIDsKK+W4guawkSA8IHNoaW1pblwgOwor5bqE5bGLIDwgc2hvdXlhXCA7CivoibLoibIgPCBpcm9pcm9cIDsKK+WGoOavmyA8IGthbm1vdVwgOwor5bi45pWwIDwgam91c3V1XCA7CivovrLmnpcgPCBub3VyaW5cIDsKK+W5s+W4uCA8IGhlaWpvdVwgOwor6IuU55msIDwgdGFpc2VuXCA7CivnmbLnmYcgPCB0ZW5rYW5cIDsKK+S6nOm6u+ezuCA8IGFtYWl0b1wgOwor5Yik5a6aIDwgaGFudGVpXCA7CivliKTlrpggPCBoYW5nYW5cIDsKK+W3neeArCA8IGthd2FzZVwgOwor5bu35LiBIDwgdGVpdGVpXCA7CivnmbrnlJ8gPCBoYXNzZWlcIDsKK+i+suadkSA8IG5vdXNvblwgOwor5YG06L+RIDwgc29ra2luXCA7Civnm6TmoLkgPCBiYW5rb25cIDsKK+mtguiDhiA8IGtvbnRhblwgOwor5YWt5Y2B6LevIDwgbXVzb2ppXCA7CivovZ/nhLYgPCBnb3V6ZW5cIDsKK+WIpeWsqiA8IGJlcHBpblwgOwor5qyg5ZOBIDwga2VwcGluXCA7CivprZrntrIgPCBneW9tb3VcIDsKK+WGhea5ryA8IHVjaGl5dVwgOwor5Lqc5rip5bivIDwgYW9udGFpXCA7CivnlJ/puqkgPCBuYW1hZnVcIDsKK+W5veWxhSA8IHl1dWt5b1wgOwor6YCj5aScIDwgcmVuJyd5YVwgOwor5beh5ryUIDwganVuJydlblwgOwor5q2M5LyaIDwgdXRha2FpXCA7CivlhaznhLYgPCBrb3V6ZW5cIDsKK+W3u+avmyA8IG1ha2lnZVwgOwor6LuN6ImmIDwgZ3Vua2FuXCA7CivpgKPlo7AgPCByZW5qb3VcIDsKK+S9meaJgOimiyA8IHlvc29taVwgOwor6Ieq6YeNIDwgamljaG91XCA7CivlhoXmuIggPCBuYWlzYWlcIDsKK+WFiOeVqiA8IHNlbmJhblwgOwor6YGK5ZCfIDwgeXV1Z2luXCA7CivpgYrlkJsgPCB5dXVrdW5cIDsKK+i7jeiIuSA8IGd1bnNlblwgOwor6I2J5pysIDwgc291aG9uXCA7Civnm7Lmlq0gPCBtb3VkYW5cIDsKK+edgOWwuiA8IGtpamFrdVwgOwor6Imo6ImfIDwgbW91ZG91XCA7Civlgb3otrMgPCBnaXNva3VcIDsKK+iNieabuCA8IHNvdXNob1wgOwor5YWo54S2IDwgemVuemVuXCA7CivliJflr6cgPCByZWVuaW5cIDsKK+mtmueyviA8IGd5b3NlaVwgOwor6Imm6ImHIDwga2FudGVpXCA7Civnm67mlrkgPCBtZWthdGFcIDsKK+WHoeaJjSA8IGJvbnNhaVwgOwor5Yeh5omLIDwgYm9uc2h1XCA7CivlhYXnlKggPCBqdXV5b3VcIDsKK+mtmueyiSA8IGd5b2Z1blwgOwor5Yeh5oimIDwgYm9uc2VuXCA7CivlurjlkJsgPCB5b3VrdW5cIDsKK+WApOmggyA8IG5lZ29yb1wgOwor5Ye25b6SIDwga3lvdXRvXCA7Civnlo7pgJogPCBzb3RzdXVcIDsKK+iHs+i/kSA8IHNoaWtpblwgOwor5bmi5bmhIDwgZG91YmFuXCA7CivlubPlsYsgPCBoaXJheWFcIDsKK+mBheWPgiA8IGNoaXNhblwgOwor6YCG5a2QIDwgc2FrYWdvXCA7Civlp5Tlk6HkvJogPCBpaW5rYWlcIDsKK+eZveeLkCA8IGJ5YWtrb1wgOwor5YCk6Z6YIDwgbmV6YXlhXCA7Civlh7rluqsgPCBzaHVra29cIDsKK+i/veWwviA8IHRzdWliaVwgOwor5Ye65bqcIDwgc2h1cHB1XCA7CivliJ3lqZogPCBzaG9rb25cIDsKK+WHuuW6lyA8IGRlbWlzZVwgOwor5YaF5rK7IDwgbmFpY2hpXCA7CivovrLmlL8gPCBub3VzZWlcIDsKK+WJm+WLhyA8IGdvdXl1dVwgOwor5qyg5YukIDwga2Vra2luXCA7CivlhbHmvJQgPCBreW91ZW5cIDsKK+iHqumBqSA8IGppdGVraVwgOwor5Yeh5oWuIDwgYm9ucnlvXCA7CivpgIDlrpggPCB0YWlrYW5cIDsKK+ecvOWtlCA8IGdhbmtvdVwgOwor55WM6Z2iIDwga2FpbWVuXCA7Civpga/kuJYgPCB0b25zZWlcIDsKK+W5s+WumiA8IGhlaXRlaVwgOwor6I+v5YaRIDwga2FjaHV1XCA7CivovKrnlaogPCByaW5iYW5cIDsKK+S+neWtmOW6piA8IGl6b25kb1wgOwor5Ye65birIDwgc3Vpc2hpXCA7CivliY3lkI0gPCB6ZW5tZWlcIDsKK+mBk+WFgyA8IGRvdWdlblwgOwor5YmN5Y+3IDwgemVuZ291XCA7CivliKTlo6sgPCBoYW5zaGlcIDsKK+i8queUnyA8IHJpbnNlaVwgOwor5YaF5rCXIDwgdWNoaWtpXCA7Civlgo3oqJMgPCBib3VrdW5cIDsKK+ecuOWtkCA8IGJvdXNoaVwgOwor6YGF5Yq5IDwgY2hpa291XCA7Civlu4PlhbUgPCBoYWloZWlcIDsKK+WFjeeKtiA8IG1lbmpvdVwgOwor5biG5qGBIDwgaG9nZXRhXCA7CivmqZ/mpa0gPCBraWd5b3VcIDsKK+mAk+WilyA8IHRlaXpvdVwgOwor5bmV5bqcIDwgYmFrdWZ1XCA7CivluK3mjbIgPCBzZWtrZW5cIDsKK+iNt+W9uSA8IG5peWFrdVwgOwor5YaF5q6/IDwgbmFpZGVuXCA7Civlgo3oprMgPCBib3VrYW5cIDsKK+eVjOmaiCA8IGthaXdhaVwgOwor5YiG5bCBIDwgYnVucG91XCA7CivlhazmupYgPCBrb3VqdW5cIDsKK+WCjeimliA8IHdha2ltaVwgOwor55m954WZIDwgaGFrdWVuXCA7Civoi5TnirYgPCB0YWlqb3VcIDsKK+mtlOesmyA8IG1hdGVraVwgOwor5Ym15LiWIDwgc291c2VpXCA7Civot7PppqwgPCBjaG91YmFcIDsKK+W4uOaFiyA8IGpvdXRhaVwgOwor5bqD5aC0IDwgaGlyb2JhXCA7CivlsbHpoZsgPCBzYW50ZW5cIDsKK+WBnOi7iiA8IHRlaXNoYVwgOwor6auY6KanIDwga291cmFuXCA7CivnlJjpr5sgPCBhbWFkYWlcIDsKK+W6g+WfnyA8IGtvdWlraVwgOwor5qiq5rqiIDwgb3VpdHN1XCA7Civlhqzml6UgPCBmdXl1YmlcIDsKK+mrmOimiyA8IHRha2FtaVwgOwor5YOn57axIDwgc291Z291XCA7CivliY3liY0gPCBtYWVtYWVcIDsKK+W6p+WNkyA8IHphdGFrdVwgOwor5Yag5pyoIDwga2FidWtpXCA7Civoia/nuIEgPCByeW91ZW5cIDsKK+WJm+WBpSA8IGdvdWtlblwgOwor5YG96Ki8IDwgZ2lzaG91XCA7CivluILmnIkgPCBzaGl5dXVcIDsKK+W6reWJjSA8IHRlaXplblwgOwor6Zi/5YOn56WHIDwgYXNvdWdpXCA7CivmpJzou4ogPCBrZW5zaGFcIDsKK+W6l+WToSA8IHRlbicnaW5cIDsKK+mAsuWMliA8IHNoaW5rYVwgOwor5qi55rC3IDwganVoeW91XCA7CivluoTlnJIgPCBzaG91ZW5cIDsKK+iHqui2syA8IGppc29rdVwgOwor6aqo6LqrIDwgaG9uZW1pXCA7Civlha3ms5UgPCByb3Bwb3VcIDsKK+WHuuWutiA8IHNodWtrZVwgOwor6auY6KOBIDwga291c2FpXCA7CivnlLvpm4YgPCBnYXNodXVcIDsKK+WIhuWoqSA8IGJ1bmJlblwgOwor6Imy57O4IDwgaXJvaXRvXCA7CivnlLvpmpwgPCBnYXNob3VcIDsKK+WxsemciiA8IHNhbnJlaVwgOwor5YaZ5pysIDwgc2hhaG9uXCA7CivlhaXmtbcgPCBpcml1bWlcIDsKK+i5gui6qiA8IGp1dXJpblwgOwor5bmV5bGLIDwgbWFrdXlhXCA7CivliLvljbAgPCBrb2t1aW5cIDsKK+WHoeW4uCA8IGJvbmpvdVwgOwor6L+35aaEIDwgbWVpbW91XCA7Civnl5voi6YgPCB0c3V1a3VcIDsKK+ebhuaZryA8IGJvbmtlaVwgOwor6Ii56I23IDwgZnVuYW5pXCA7CivpgKPlkJ8gPCByZW5naW5cIDsKK+WIneWbniA8IHNob2thaVwgOwor5buD5Lq6IDwgaGFpamluXCA7CivliZvkvZMgPCBnb3V0YWlcIDsKK+i7iue3miA8IHNoYXNlblwgOwor6YCj5ZCIIDwgcmVuZ291XCA7Civnm7Lmg7MgPCBtb3Vzb3VcIDsKK+W5tOWgsSA8IG5lbnBvdVwgOwor55u45oCnIDwgYWlzaG91XCA7Civoi6Xmua8gPCB3YWtheXVcIDsKK+WFrOawkSA8IGtvdW1pblwgOwor5biC5pelIDwgaWNoaWJpXCA7Civmp5jnm7ggPCB5b3Vzb3VcIDsKK+mxiOWtkCA8IHRhcmFrb1wgOwor5YiG5aSWIDwgYnVuZ2FpXCA7Civnm6PmiL8gPCBrYW5ib3VcIDsKK+W4g+aVmSA8IGZ1a3lvdVwgOwor6YCg5Y+NIDwgem91aGFuXCA7CivliIblo7IgPCBidW5iYWlcIDsKK+WHhOaDqCA8IHNlaXNhblwgOwor55ub5oyZIDwgc2Vpa3lvXCA7Civou73nm64gPCBrYXJ1bWVcIDsKK+W4sOW/gyA8IGtpc2hpblwgOwor6IyY5p6dIDwgcmVpc2hpXCA7Civnm7jlvbkgPCBhaXlha3VcIDsKK+W6p+WFgyA8IHphbW90b1wgOwor5YaN5p2lIDwgc2FpcmFpXCA7Civlhbzmpa0gPCBrZW5nb3VcIDsKK+ebvuW6pyA8IHRhdGV6YVwgOwor5Ya35oi/IDwgcmVpYm91XCA7CivliLbli5UgPCBzZWlkb3VcIDsKK+ebuOW9kyA8IHNvdXRvdVwgOwor5beh5qScIDwganVua2VuXCA7CivlhbXmqKkgPCBoZWlrZW5cIDsKK+eZvua4iCA8IGt1ZGFyYVwgOwor6Iez6KuWIDwgc2hpcm9uXCA7CivoiLnoiZkgPCBzZW5zb3VcIDsKK+WxsemWkyA8IHlhbWFhaVwgOwor5bmz5Z2HIDwgaGVpa2luXCA7CivlsbHploAgPCBzYW5tb25cIDsKK+WCreiIuSA8IHlvdXNlblwgOwor5YaG5p+xIDwgZW5jaHV1XCA7CivnlJ/poZ4gPCBzZWlydWlcIDsKK+W5s+WcsCA8IGhlaWNoaVwgOwor6YCj5YuVIDwgcmVuZG91XCA7CivliY3kvr8gPCB6ZW5iaW5cIDsKK+W6uOS6uiA8IHlvdWppblwgOwor5bm05ZueIDwgbmVua2FpXCA7CivpgIDlm6MgPCB0YWlkYW5cIDsKK+ebsuW+kyA8IG1vdWp1dVwgOwor5YaX5paHIDwgam91YnVuXCA7CivlhajmrKcgPCB6ZW4nJ291XCA7Civnnb7kuLggPCBrb3VnYW5cIDsKK+iHs+iogCA8IHNoaWdlblwgOwor6YCj5YikIDwgcmVucGFuXCA7Civou5Lnq68gPCBub2tpYmFcIDsKK+W4q+W8nyA8IHNoaXRlaVwgOwor5YmN5Lu2IDwgemVua2VuXCA7CivlhavljYHot68gPCB5YXNvamlcIDsKK+Wxj+miqCA8IGJ5b3VidVwgOwor55u45bitIDwgYWlzZWtpXCA7CivliY3ku6MgPCB6ZW5kYWlcIDsKK+eUn+mdoiA8IHNlaW1lblwgOwor6Ium5rGBIDwgbmlnYXJpXCA7CivkvIrli6LonaYgPCBpc2VlYmlcIDsKK+WJjeS6uiA8IHplbmppblwgOwor5YiH5ZywIDwga2lyZWppXCA7Civlh7blpKIgPCBreW91bXVcIDsKK+WIhuWcsCA8IGJ1bmNoaVwgOwor6Im256aPIDwgZW5wdWt1XCA7Civoi6XmsJcgPCB3YWthZ2VcIDsKK+eUo+mZoiA8IHNhbicnaW5cIDsKK+WIhuWboyA8IGJ1bmRhblwgOwor6Ieq6Ki7IDwgamljaHV1XCA7CivliJ3lj7cgPCBzaG9nb3VcIDsKK+mAuOS6iyA8IGl0c3VqaVwgOwor5YO755uuIDwgaGlnYW1lXCA7CivliIDlnK0gPCB0b3VrZWlcIDsKK+WGiuaVsCA8IHNhc3N1dVwgOwor55S76YuyIDwgZ2FieW91XCA7Civlh7rln44gPCBkZWppcm9cIDsKK+W5vOWQjSA8IHlvdW1laVwgOwor5bCP6by7IDwga29iYW5hXCA7CivlhoXml6ggPCBuYWlzaGlcIDsKK+eXm+e9tSA8IHRzdXViYVwgOwor6Ieq6KaaIDwgamlrYWt1XCA7CivlhoXmlrkgPCBuYWlob3VcIDsKK+WBveiWrCA8IGdpeWFrdVwgOwor55eF6IelIDwgYnlvdWdhXCA7CivlhbHmoIQgPCBreW91ZWlcIDsKK+WApOmBhyA8IGNoaWd1dVwgOwor5bm25ZGRIDwgaGVpZG9uXCA7Civlub7ljYMgPCBpa3VzZW5cIDsKK+mrmOiRlyA8IGtvdWNob1wgOwor5bCP6bqmIDwga29tdWdpXCA7CivliIbllrYgPCBidW4nJ2VpXCA7Civmo5Lpi7wgPCBib3Vrb3VcIDsKK+mAgeWRiCA8IHNvdXRlaVwgOwor5bqn5LitIDwgemFjaHV1XCA7CivlubblkIggPCBoZWlnb3VcIDsKK+S/rumZoiA8IHNodXVpblwgOwor5bqV5YCkIDwgc29rb25lXCA7CivluLDlsZ4gPCBraXpva3VcIDsKK+W3peaVsCA8IGtvdXN1dVwgOwor5YW15pu5IDwgaGVpc291XCA7CivlhbXmm7ggPCBoZWlzaG9cIDsKK+abvuellueItiA8IGhpamlqaVwgOwor5YiR5ZCNIDwga2VpbWVpXCA7Civou43npLwgPCBndW5yZWlcIDsKK+aoueacqCA8IGp1bW9rdVwgOwor6auY6I+cIDwgdGFrYW5hXCA7Civnm7jlr74gPCBzb3V0YWlcIDsKK+W5tOWPtyA8IG5lbmdvdVwgOwor6KaL5qCE5Z2KIDwgbWllYm91XCA7CivoirHngasgPCBoYW5hYmlcIDsKK+WxlemWiyA8IHRlbmthaVwgOwor55u45a6/IDwgYWl5YWRvXCA7CivpgIDljrsgPCB0YWlreW9cIDsKK+W4r+WwgSA8IG9iaWZ1dVwgOwor5Lqc6Ymb54mIIDwgYWVuYmFuXCA7Civlh43lr5IgPCB0b3VrYW5cIDsKK+W5s+WOnyA8IGhlaWdlblwgOwor5YeN5a6zIDwgdG91Z2FpXCA7CivlsbHph44gPCBzYW4nJ3lhXCA7CivpgI/lhpkgPCB0b3VzaGFcIDsKK+WItuS7pCA8IHNlaXJlaVwgOwor5YWt5pysIDwgcm9wcG9uXCA7Civoi6bmpb0gPCBrdXJha3VcIDsKK+W4sOWuhSA8IGtpdGFrdVwgOwor55a96IWrIDwgc29zaG91XCA7CivmqKrmoLkgPCB5b2tvbmVcIDsKK+W5vuWIhiA8IGlrdWJ1blwgOwor55Ww6KqsIDwgaXNldHN1XCA7CivprZTnkIMgPCBtYWt5dXVcIDsKK+WHtuWZqCA8IGt5b3VraVwgOwor5L+d6Z2pIDwgaG9rYWt1XCA7Civlho3mjJkgPCBzYWlreW9cIDsKK+S/iummrCA8IHNodW5tZVwgOwor5YWr5pysIDwgaGFwcG9uXCA7CivlhazmnIkgPCBrb3V5dXVcIDsKK+WBj+imiyA8IGhlbmtlblwgOwor5bqc5LitIDwgZnVjaHV1XCA7Civnm67lsLsgPCBtZWppcmlcIDsKK+WFtuaWuSA8IHNvbmF0YVwgOwor55ub5bm0IDwgc2VpbmVuXCA7CivlsI/ptKggPCBrb2dhbW9cIDsKK+mAgOWLoiA8IHRhaXNlaVwgOwor6L+U5aCxIDwgaGVucG91XCA7CivlhoXmjqIgPCBuYWl0YW5cIDsKK+aoqeafhCA8IGtlbnBlaVwgOwor5bCP6bOlIDwga290b3JpXCA7CivlubTlip8gPCBuZW5rb3VcIDsKK+eUsOmHjiA8IGRlbicneWFcIDsKK+WFteaVsCA8IGhlaXN1dVwgOwor55uq5bC9IDwgdG91amluXCA7CivnnLzliY0gPCBnYW56ZW5cIDsKK+iJpuegsiA8IGthbnBvdVwgOwor5bqX5Li7IDwgdGVuc2h1XCA7Civou6LnlJ8gPCB0ZW5zZWlcIDsKK+i2s+mnhCA8IGFzaGlkYVwgOwor5YWr5pmvIDwgaGFra2VpXCA7CivnmbvmpbwgPCB0b3Vyb3VcIDsKK+ebruWuiSA8IG1leWFzdVwgOwor5qaC566XIDwgZ2Fpc2FuXCA7CivliIbljpggPCBidW5yaW5cIDsKK+W+oeeMquWPoyA8IG9jaG9rb1wgOwor6L+95YqgIDwgdHN1aWthXCA7CivmqKrmnKggPCB5b2tvZ2lcIDsKK+WEqua4pSA8IHl1dWFrdVwgOwor5biG5b2xIDwgaG9rYWdlXCA7CivlubTliJ0gPCBuZW5zaG9cIDsKK+iFsOmWkyA8IHlvdWthblwgOwor6I2J5bGLIDwgc291b2t1XCA7CivlhazmmI4gPCBrb3VtZWlcIDsKK+W5tOWIiiA8IG5lbmthblwgOwor5bm05YiGIDwgbmVuYnVuXCA7CivluZXllrYgPCBiYWt1ZWlcIDsKK+Wwj+mwrSA8IGtvaGFkYVwgOwor5bmz5YiGIDwgaGVpYnVuXCA7CivlubPlh6EgPCBoZWlib25cIDsKK+eYi+eZsiA8IGZ1dXRlblwgOwor6L+95YiGIDwgb2l3YWtlXCA7CivpsKXlpKsgPCB5YW1vbWVcIDsKK+eUqOmHkSA8IHlvdWtpblwgOwor6a6O5Lim5aWzIDwgYWluYW1lXCA7CivprZTniakgPCBtYW1vbm9cIDsKK+WFrOaWhyA8IGtvdWJ1blwgOwor6Iy25be+IDwgY2hha2luXCA7CivliJHlhbggPCBrZWl0ZW5cIDsKK+i/keWcqCA8IGtpbnphaVwgOwor5Yil5Lu2IDwgYmVra2VuXCA7CivlsbHovrogPCB5YW1hYmVcIDsKK+eVpeiomCA8IHJ5YWtraVwgOwor5ben5omLIDwga291c2h1XCA7CivnnJ/lkbMgPCBzaGlubWlcIDsKK+i6q+epuiA8IG1pc29yYVwgOwor6IqL54mIIDwgaW1vYmFuXCA7Civlt6Hmi50gPCBqdW5wYWlcIDsKK+eUo+mHkSA8IHNhbmtpblwgOwor5YWo5pWwIDwgemVuc3V1XCA7CivlhajmlZcgPCB6ZW5wYWlcIDsKK+ecn+WQpiA8IHNoaW5waVwgOwor6Iul5pyoIDwgd2FrYWdpXCA7CivliJflgJkgPCByZWtrb3VcIDsKK+i/veWEuiA8IHRzdWluYVwgOwor5Ya35a6zIDwgcmVpZ2FpXCA7CivluorkuIogPCB5dWthdWVcIDsKK+WBveiGnCA8IGdpbWFrdVwgOwor5biG5biDIDwgaG9udW5vXCA7Civlh53lm7ogPCBneW91a29cIDsKK+mAlOS4rSA8IHRvY2h1dVwgOwor5YaF5oaCIDwgbmFpeXV1XCA7Civkv5fplpMgPCB6b2trYW5cIDsKK+S/g+mfsyA8IHNva3VvblwgOwor5bCP6aqoIDwga29ib25lXCA7Civlhbjmi6AgPCB0ZW5reW9cIDsKK+eZu+advyA8IHRvdWJhblwgOwor5Yid5LujIDwgc2hvZGFpXCA7CivliIDliaMgPCB0b3VrZW5cIDsKK+W5leWQjyA8IGJha3VyaVwgOwor6a2a54GvIDwgZ3lvdG91XCA7CivohprouqsgPCBoYWRhbWlcIDsKK+eZluavmyA8IGt1c2VnZVwgOwor5YOt546LIDwgc2VuJydvdVwgOwor5YaN5oCdIDwgc2Fpc2hpXCA7CivnnIzllrYgPCBrZW4nJ2VpXCA7Civprq7mmI4gPCBzZW5tZWlcIDsKK+eUn+mFkiA8IGtpemFrZVwgOwor5YiG5YWaIDwgYnVudG91XCA7Civlub7kurogPCBpa3VuaW5cIDsKK+iEs+mrhCA8IG5vdXp1aVwgOwor55yf5YyXIDwgbWFraXRhXCA7Civlt6jmgqogPCBreW9ha3VcIDsKK+iNiuWmuyA8IGtlaXNhaVwgOwor5YWo5pCNIDwgemVuc29uXCA7CivliIPlhYggPCBoYXNha2lcIDsKK+Wxsei3ryA8IHlhbWFqaVwgOwor5biv5Z+fIDwgdGFpaWtpXCA7Civov5Tlk4EgPCBoZW5waW5cIDsKK+Wwj+mmliA8IGtva3ViaVwgOwor5bm05L2ZIDwgbmVuJyd5b1wgOwor55SY6YW4IDwga2Fuc2FuXCA7CivpqJLpnIogPCBzb3VyZWlcIDsKK+iHs+iKuCA8IHNoaWdlaVwgOwor6YCA5LyaIDwgdGFpa2FpXCA7Civlr6Hpu5kgPCBrYW1va3VcIDsKK+WIg+WCtyA8IG5pbmpvdVwgOwor5YaN5bu6IDwgc2Fpa29uXCA7CivmpbXnp5ggPCBnb2t1aGlcIDsKK+mAg+S6oSA8IHRvdWJvdVwgOwor6YCA5Lu7IDwgdGFpbmluXCA7CivlubTku6MgPCBuZW5kYWlcIDsKK+WCjee3miA8IGJvdXNlblwgOwor55yB5Za2IDwgc2hvdWVpXCA7CivluLDlm70gPCBraWtva3VcIDsKK+edgOS4iCA8IGtpdGFrZVwgOwor6L6y5aC0IDwgbm91am91XCA7Civou73muJsgPCBrZWlnZW5cIDsKK+mqqOiRoyA8IGtvdHRvdVwgOwor55mC5rK7IDwgcnlvdWppXCA7CivovrrlnLAgPCBoZW5jaGlcIDsKK+mnnemzpSA8IGRhY2hvdVwgOwor5YaF5b6EIDwgbmFpa2VpXCA7Civohbnpg6ggPCBmdWt1YnVcIDsKK+WHuuWFiCA8IGRlc2FraVwgOwor5YWD5p2lIDwgZ2FucmFpXCA7CivnnJ/lhqwgPCBtYWZ1eXVcIDsKK+i8quagvSA8IHJpbnNhaVwgOwor5beo5by+IDwga3lvZGFuXCA7CivlhYPmnKwgPCBnZW5wb25cIDsKK+WHtuWFtyA8IGt5b3VndVwgOwor6Ieq6IulIDwgamlqYWt1XCA7CivlubTkuK0gPCBuZW5qdXVcIDsKK+eZuuaVoyA8IGhhc3NhblwgOwor5bir5ZujIDwgc2hpZGFuXCA7Civpp7Hpp50gPCByYWt1ZGFcIDsKK+WGheW7tyA8IG5haXRlaVwgOwor5YKN57O7IDwgYm91a2VpXCA7CivliIbkvZMgPCBidW50YWlcIDsKK+W5s+aYk+WMliA8IGhlaWlrYVwgOwor6L+O5ZCIIDwgZ2VpZ291XCA7Civlronkv53nkIYgPCBhbnBvcmlcIDsKK+S/rumAoCA8IHNodXpvdVwgOwor6I2J5aCCIDwgc291ZG91XCA7CivlubLkuI4gPCBrYW4nJ3lvXCA7CivmqZ/lsYsgPCBoYXRheWFcIDsKK+i+suWcsCA8IG5vdWNoaVwgOwor5pu+56WW5q+NIDwgaGliYWJhXCA7CivoiKrnqbogPCBrb3VrdXVcIDsKK+W4guWtkCA8IGljaGlrb1wgOwor5bCK6aGUIDwgc29uZ2FuXCA7Civou43niqwgPCBnZW5rZW5cIDsKK+S/rui+niA8IHNodXVqaVwgOwor55Sf6LqrIDwgbmFtYW1pXCA7CivmqKrmiYsgPCB5b2tvdGVcIDsKK+WBnOiIuSA8IHRlaXNlblwgOwor55yM5YuiIDwga2Vuc2VpXCA7Civlha3mhJ8gPCByb2trYW5cIDsKK+WFg+aXpiA8IGdhbnRhblwgOwor55S76Kq/IDwgZ2FjaG91XCA7CivlhpflrpggPCBqb3VrYW5cIDsKK+WHpuWIhiA8IHNob2J1blwgOwor6Lu95rC0IDwga2Vpc3VpXCA7Civoh6rohbkgPCBqaWJhcmFcIDsKK+WIhuS4jiA8IGJ1bicneW9cIDsKK+WHpuWHpiA8IHNob3Nob1wgOwor6IqS5rSLIDwgYm91eW91XCA7CivlsI/pm6ogPCBrb3l1a2lcIDsKK+Wwj+mbqCA8IGtvc2FtZVwgOwor5bCO6Zu7IDwgZG91ZGVuXCA7CivlhbXlvbkgPCBoZWlla2lcIDsKK+Wwj+mbgCA8IGtvZ2FyYVwgOwor57GQ5qSF5a2QIDwgdG91aXN1XCA7Civlh73kurogPCBrYW5qaW5cIDsKK+ebl+WhgSA8IHRvdXJ1aVwgOwor6Ium5omLIDwgbmlnYXRlXCA7Civlr77poZQgPCB0YWlnYW5cIDsKK+iLpeaJiyA8IHdha2F0ZVwgOwor5Yas5aC0IDwgZnV5dWJhXCA7CivlgqznnKAgPCBzYWltaW5cIDsKK+WEquaflCA8IHl1dWp1dVwgOwor5bCP5paH5a2XIDwga29tb2ppXCA7CivoirjmnpcgPCBnZWlyaW5cIDsKK+ebuOWPjSA8IHNvdWhhblwgOwor5beo5bKpIDwga3lvZ2FuXCA7CivluK/lkIwgPCB0YWlkb3VcIDsKK+W4uOWLpCA8IGpvdWtpblwgOwor6I2Y5Y+4IDwgc2hvdWppXCA7Civlh43ljp8gPCB0b3VnZW5cIDsKK+alveeVjCA8IGdha2thaVwgOwor6I2Y5Y6zIDwgc291Z29uXCA7Civlh7rkuJYgPCBzaHVzc2VcIDsKK+WHhOWRsyA8IHN1Z29taVwgOwor6Ieq57+SIDwgamlzaHV1XCA7Civlh6Hlg6cgPCBib25zb3VcIDsKK+WvvumdoiA8IHRhaW1lblwgOwor55Wq6Iy2IDwgYmFuY2hhXCA7CivnlbDoibIgPCBpc2hva3VcIDsKK+WGhuWvgiA8IGVuamFrdVwgOwor5bee5bSOIDwgc3VzYWtpXCA7Civov5Hlgo0gPCBraW5ib3VcIDsKK+WFpeW+oSA8IG55dXVnb1wgOwor5YaF5a6uIDwgbmFpZ3V1XCA7CivluILlobUgPCBzaGlqaW5cIDsKK+i3teiogCA8IHNlbmdlblwgOwor6Iqz5pu4IDwgaG91c2hvXCA7CivnlKjoq4cgPCB5b3VkYW5cIDsKK+iKseacqCA8IGthYm9rdVwgOwor5L2Z5omA55uuIDwgeW9zb21lXCA7CivlhazlubMgPCBrb3VoZWlcIDsKK+WGheWtqyA8IG5haXNvblwgOwor5L+d6LqrIDwgaG9zaGluXCA7CivnmbrmhqQgPCBoYXBwdW5cIDsKK+iIjOerryA8IHpldHRhblwgOwor5YWo5bqXIDwgemVudGVuXCA7Civlr77pmaMgPCB0YWlqaW5cIDsKK+S+i+mhjCA8IHJlaWRhaVwgOwor5biv5YmjIDwgdGFpa2VuXCA7CivluJ3lkb0gPCB0ZWltZWlcIDsKK+i7n+azpSA8IG5hbmRlaVwgOwor6IyF5bGLIDwgYm91b2t1XCA7CivlhaXluqsgPCBueXV1a29cIDsKK+eUqOiogCA8IHlvdWdlblwgOwor55m65oSPIDwgaGF0c3VpXCA7CivlhaXlupwgPCBueXV1ZnVcIDsKK+iKuOaWhyA8IGdlaWJ1blwgOwor5bCC6ZaAIDwgc2VubW9uXCA7CivluK/liIAgPCB0YWl0b3VcIDsKK+iLpuW/gyA8IGt1c2hpblwgOwor5qqA5ZCbIDwgZGFua3VuXCA7CivlhbzlrpggPCBrZW5rYW5cIDsKK+Wwv+i3ryA8IG55b3Vyb1wgOwor55yM5LyaIDwga2Vua2FpXCA7Civnm6Tlj7AgPCBiYW5kYWlcIDsKK+W4g+WcsCA8IG51bm9qaVwgOwor6Iez57SUIDwgc2hpanVuXCA7CivojYnljp8gPCBzb3VnZW5cIDsKK+iHque4myA8IGppYmFrdVwgOwor5qKF6YWSIDwgdW1lc2h1XCA7CivlhYPmiYsgPCBtb3RvZGVcIDsKK+S4i+mZouitsCA8IGthaW5naVwgOwor55yM5LukIDwga2VucmVpXCA7Civlr53pppYgPCBuZWt1YmlcIDsKK+eUn+iqlSA8IHNlaXRhblwgOwor6Luf5rC0IDwgbmFuc3VpXCA7Civov5Hku6MgPCBraW5kYWlcIDsKK+ecjOS6uiA8IGtlbmppblwgOwor55uG5ZywIDwgYm9uY2hpXCA7CivlrbXljJblmaggPCBmdWtha2lcIDsKK+i7jea4ryA8IGd1bmtvdVwgOwor5YWa5byKIDwgdG91aGVpXCA7CivlhrfljrMgPCByZWlnZW5cIDsKK+iHree0oCA8IHNodXVzb1wgOwor6IyE5a2QIDwgbmFzdWJpXCA7Civnm5flk4EgPCB0b3VoaW5cIDsKK+iIl+efsyA8IGhvc2VraVwgOwor6Ieq57WmIDwgamlreXV1XCA7Civov5TkuIogPCBoZW5qb3VcIDsKK+mtmuairyA8IGd5b3RlaVwgOwor55ub5ZCNIDwgc2VpbWVpXCA7Civlhajls7YgPCB6ZW50b3VcIDsKK+i1remhlCA8IHNoYWdhblwgOwor5YWx5a+dIDwgdG9tb25lXCA7CivmiYvnnJ/kvLwgPCB0ZW1hbmVcIDsKK+Wwj+mKrSA8IGtvemVuaVwgOwor6L+R5LiWIDwga2luc2VpXCA7Civoh6jntYIgPCByaW5qdXVcIDsKK+W4uOS+iyA8IGpvdXJlaVwgOwor5YWo5bK4IDwgemVuZ2FuXCA7Civlt6jlpKcgPCBreW9kYWlcIDsKK+i+m+WRsyA8IGthcmFtaVwgOwor5YaF5aSWIDwgbmFpZ2FpXCA7Civnm67lhYggPCBtZXNha2lcIDsKK+W4uOS9jyA8IGpvdWp1dVwgOwor6L6y5YW1IDwgbm91aGVpXCA7Civlgo3nm64gPCBoYXRhbWVcIDsKK+WxleimpyA8IHRlbnJhblwgOwor5bi45LyaIDwgam91a2FpXCA7CivluLjku7sgPCBqb3VuaW5cIDsKK+S/r+inkiA8IGZ1a2FrdVwgOwor55e05ryiIDwgY2hpa2FuXCA7Civou43ms5UgPCBndW5wb3VcIDsKK+Wwj+mHkSA8IGtvZ2FuZVwgOwor5Ya35YmbIDwgcmVpZ291XCA7CivluLjkurogPCBqb3VqaW5cIDsKK+mtmuadvyA8IGd5b2JhblwgOwor5bSp5r2wIDwgaG91a2FpXCA7CivkuI3lpoLmhI8gPCBmdW55b2lcIDsKK+WDp+atoyA8IHNvdWpvdVwgOwor5YWB5oGtIDwgaW5reW91XCA7Civou7jmnKggPCBqaWt1Z2lcIDsKK+ebuOS8nSA8IHNvdWRlblwgOwor5bid5YagIDwgdGVpa2FuXCA7CivkvbXpn7MgPCBwaW4nJ2luXCA7Civpq5jnm64gPCB0YWthbWVcIDsKK+WGhuWfnyA8IGVuJydpa2lcIDsKK+WvkumiqCA8IGthbnB1dVwgOwor6aeF6aCtIDwgZWtpdG91XCA7Civlgr7ngIkgPCBrZWlzaGFcIDsKK+WGt+WHjSA8IHJlaXRvdVwgOwor6LuN5rCRIDwgZ3VubWluXCA7CivpqqjnsokgPCBrb3BwdW5cIDsKK+eXheeQhiA8IGJ5b3VyaVwgOwor5bi45LiWIDwgdG9rb3lvXCA7CivohrXoh5MgPCBzdWl6b3VcIDsKK+WFtuWltCA8IHNvaXRzdVwgOwor5YWF5b2TIDwganV1dG91XCA7Civkv67oo5wgPCBzaHV1aG9cIDsKK+W4g+WRiiA8IGZ1a29rdVwgOwor6IiO55ujIDwgc2hha2FuXCA7CivlhJLmlZkgPCBqdWt5b3VcIDsKK+S/l+itsCA8IHpva3VnaVwgOwor5rmv5paH5a2XIDwgeXVtb2ppXCA7CivlhrflhYkgPCByZWlrb3VcIDsKK+WvnemamyA8IG5lZ2l3YVwgOwor55qE5bGLIDwgdGVraXlhXCA7CivnlbDmqZ/nqK4gPCBpa2lzaHVcIDsKK+ebiuWPiyA8IGVraXl1dVwgOwor5YaF5ZyoIDwgbmFpemFpXCA7CivlhbXlpIkgPCBoZWloZW5cIDsKK+WxseiRtSA8IHdhc2FiaVwgOwor5YG155+lIDwgdGVpY2hpXCA7CivnlqvnmZggPCBla2lyZWlcIDsKK+ebsuS6uiA8IG1vdWppblwgOwor55qH5a6uIDwga291Z3V1XCA7Civog73pnaIgPCBub3VtZW5cIDsKK+ebm+WFuCA8IHNlaXRlblwgOwor5qC56ZuqIDwgbmV5dWtpXCA7CivojIXloLQgPCBrYXlhYmFcIDsKK+W4sOS4gCA8IGtpaXRzdVwgOwor55qH5a2rIDwga291c29uXCA7Civkvq7ovrEgPCBidWpva3VcIDsKK+eVque3miA8IGJhbnNlblwgOwor6L6y5LyaIDwgbm91a2FpXCA7Civkv5foqp4gPCB6b2t1Z29cIDsKK+ebruS7iiA8IG1va2tvblwgOwor55u05LiLIDwgY2hva2thXCA7CivlsbHoj5wgPCBzYW5zYWlcIDsKK+i7ouagoSA8IHRlbmtvdVwgOwor5L+X6KmxIDwgem9rdXdhXCA7CivnlqXnmawgPCBrYWlzZW5cIDsKK+iLpuWtpiA8IGt1Z2FrdVwgOwor5YWD5bilIDwgZ2Vuc3VpXCA7Civnmb3lr78gPCBoYWt1anVcIDsKK+WGpeWIqSA8IG15b3VyaVwgOwor55m65bGVIDwgaGF0dGVuXCA7Civlt6Hlm54gPCBqdW5rYWlcIDsKK+i8quW7uyA8IHJpbicnbmVcIDsKK+WFuOWeiyA8IHRlbmtlaVwgOwor5bGx6I2YIDwgc2Fuc291XCA7Civlhazlo7IgPCBrb3ViYWlcIDsKK+iEsemAgCA8IGRhdHRhaVwgOwor5L+X6KejIDwgem9ra2FpXCA7Civog4zpsK0gPCBzZWJpcmVcIDsKK+i1pOmWgCA8IGFrYW1vblwgOwor5bGN6J2LIDwgc2hpcm91XCA7CivnlZ3nuZQgPCB1bmVvcmlcIDsKK+S/l+imiyA8IHpva2tlblwgOwor5YCJ6I23IDwga3VyYW5pXCA7CivoirPmg4UgPCBob3Vqb3VcIDsKK+mmlumtgSA8IHNodWthaVwgOwor55Sf6JaRIDwgc2hvdWdhXCA7CivlhbXlm6MgPCBoZWlkYW5cIDsKK+WvvumBhyA8IHRhaWd1dVwgOwor5Lqc56CS6YW4IDwgYWhpc2FuXCA7CivnlJ/olYMgPCBzZWliYW5cIDsKK+WFjeWumCA8IG1lbmthblwgOwor5biC5YaFIDwgc2hpbmFpXCA7Civou73mjJkgPCBrZWlreW9cIDsKK+iJr+ahiCA8IHJ5b3VhblwgOwor5a656aGUIDwgeW91Z2FuXCA7CivlhoblkbMgPCBtYXJ1bWlcIDsKK+ebm+S8miA8IHNlaWthaVwgOwor5YaG5ZGoIDwgZW5zaHV1XCA7CivoirjlvZMgPCBnZWl0b3VcIDsKK+eUmOiWryA8IGthbnNob1wgOwor5YaF5ZG9IDwgbmFpbWVpXCA7Civou4rmpJwgPCBzaGFrZW5cIDsKK+iKs+W/lyA8IGhvdXNoaVwgOwor5bCP6LazIDwga29hc2hpXCA7Civlr77ovrogPCB0YWloZW5cIDsKK+iLl+WtlyA8IG15b3VqaVwgOwor6IOM6aqoIDwgc2Vib25lXCA7CivlhoXlkKsgPCBuYWlnYW5cIDsKK+mmrOmdqSA8IGJha2FrdVwgOwor55uf5Li7IDwgbWVpc2h1XCA7CivlhoXlkIggPCBuYWlnb3VcIDsKK+W3qOWPoyA8IGt5b2tvdVwgOwor5YaN5YukIDwgc2Fpa2luXCA7CivluILlgrUgPCBzaGlzYWlcIDsKK+WyqeeptCA8IGl3YWFuYVwgOwor5YWD5a+HIDwgZ2Vua291XCA7CivkvZnpnIcgPCB5b3NoaW5cIDsKK+WGleWGoCA8IGJlbmthblwgOwor6Iy25LyaIDwgY2hha2FpXCA7CivkvY7poK0gPCB0ZWl0b3VcIDsKK+WGhuWNkyA8IGVudGFrdVwgOwor5a+G6ZaJIDwgbWlwcGVpXCA7CivlsbHog4wgPCB5YW1hc2VcIDsKK+anmOaFiyA8IHlvdXRhaVwgOwor6Iy25LujIDwgY2hhZGFpXCA7CivlgqzmtpkgPCBzYWlydWlcIDsKK+iDjOmmsyA8IGhhaWNoaVwgOwor6ISx6LWwIDwgZGFzc291XCA7Civnmb7lpJwgPCBtb21veW9cIDsKK+iLpuWigyA8IGt1a3lvdVwgOwor5YaZ5YOPIDwgc2hhem91XCA7Civlrp/pqJMgPCBqaWtrZW5cIDsKK+iMtuS6uiA8IGNoYWppblwgOwor6Iux5Zu9IDwgZWlrb2t1XCA7Civlho3liIogPCBzYWlrYW5cIDsKK+WGheWLpCA8IG5haWtpblwgOwor6IK66a2aIDwgaGFpZ3lvXCA7Civoh6rnmb0gPCBqaWhha3VcIDsKK+i7jeabuCA8IGd1bnNob1wgOwor5YKN54K5IDwgYm91dGVuXCA7Civkvr/opqcgPCBiZW5yYW5cIDsKK+eZu+WjhyA8IHRvdWRhblwgOwor5qSc55y8IDwga2VuZ2FuXCA7CivmoKHploAgPCBrb3Vtb25cIDsKK+mmlumhjCA8IHNodWRhaVwgOwor5YWI5aa7IDwgc2Vuc2FpXCA7Civpqqjnm7ggPCBrb3Nzb3VcIDsKK+mYv+S/rue+hSA8IGFzaHVyYVwgOwor55SY6I2JIDwga2Fuem91XCA7CivnlJjojLYgPCBhbWFjaGFcIDsKK+eZu+WgtCA8IHRvdWpvdVwgOwor5a+d6YWSIDwgbmV6YWtlXCA7CivlvqHpm5Hnha4gPCBvem91bmlcIDsKK+WFhOWmuSA8IGtlaW1haVwgOwor5YWl5Za2IDwgbnl1dWVpXCA7Civlhbzli6QgPCBrZW5raW5cIDsKK+i7kuaVsCA8IGtlbnN1dVwgOwor5YWI5aSpIDwgc2VudGVuXCA7CivlhoblhoUgPCBlbicnbmFpXCA7CivlhoXlhoUgPCBuYWluYWlcIDsKK+i7jeaXhSA8IGd1bnJ5b1wgOwor5YaF5YW4IDwgbmFpdGVuXCA7Civou73lv6sgPCBrZWlrYWlcIDsKK+WFqOWToSA8IHplbicnaW5cIDsKK+iHqOeVjCA8IHJpbmthaVwgOwor6auY54CsIDwgdGFrYXNlXCA7Civlhajlk4EgPCB6ZW5waW5cIDsKK+aknOeXsCA8IGtlbnRhblwgOwor5YWl5ZSQIDwgbml0dG91XCA7CivlsI/oqbEgPCBzaG91d2FcIDsKK+iDjOmdqSA8IHNlZ2F3YVwgOwor5beo5YSEIDwga3lvb2t1XCA7Civog4zpnaIgPCBoYWltZW5cIDsKK+WCteaoqSA8IHNhaWtlblwgOwor6Lyq5aemIDwgcmlua2FuXCA7CivnlpHnjYQgPCBnaWdva3VcIDsKK+earuiGmuenkSA8IGhpZnVrYVwgOwor5bCP6KiAIDwga29nb3RvXCA7CivmpJznlaogPCBrZW5iYW5cIDsKK+WFheWhqyA8IGp1dXRlblwgOwor5bGk576kIDwgc291Z3VuXCA7CivoirHlsYsgPCBoYW5heWFcIDsKK+i7n+aKlSA8IG5hbnRvdVwgOwor6Lui5oimIDwgdGVuc2VuXCA7CivlgbbnhLYgPCBndXV6ZW5cIDsKK+eUn+iCsiA8IHNlaWlrdVwgOwor5bKp55ukIDwgZ2FuYmFuXCA7CivlhbHliqkgPCBreW91am9cIDsKK+i8g+W3riA8IGtha3VzYVwgOwor5YW15YiDIDwgaGVpamluXCA7Civoi5flnIMgPCBieW91aG9cIDsKK+WGjeS7uyA8IHNhaW5pblwgOwor5L2Z6YyyIDwgeW9yb2t1XCA7Civnl4XmsJcgPCBieW91a2lcIDsKK+mnhemAkyA8IGVraXRlaVwgOwor5a6f6ZqbIDwgamlzc2FpXCA7CivnlJ/ogIUgPCBzaG91amFcIDsKK+eUsee3kiA8IHl1aXNob1wgOwor5L+z6IGWIDwgaGFpc2VpXCA7CivlsbHns7sgPCBzYW5rZWlcIDsKK+eUt+ezuyA8IGRhbmtlaVwgOwor5a++6KuWIDwgdGFpcm9uXCA7Civlr67osrsgPCByeW91aGlcIDsKK+i6q+afhCA8IG1pZ2FyYVwgOwor5YCr56S+IDwgcmluc2hhXCA7Civlt6jkvZMgPCBreW90YWlcIDsKK+WGheS9jyA8IG5haWp1dVwgOwor55qH5ZCOIDwga291Z291XCA7CivlsI/oopYgPCBrb3NvZGVcIDsKK+WvvuiqniA8IHRzdWlnb1wgOwor6IO96L6vIDwgbm91YmVuXCA7Civoi6blkbMgPCBuaWdhbWlcIDsKK+mtheaDkSA8IG1pd2FrdVwgOwor5YaN5LiJIDwgc2Fpc2FuXCA7Civlt6jkurogPCBreW9qaW5cIDsKK+WwhuijnCA8IHNob3Vob1wgOwor6Iq45aSnIDwgZ2VpZGFpXCA7CivoiLfmoq8gPCBnZW50ZWlcIDsKK+iEseihoyA8IGRhdHN1aVwgOwor5YaG5LiYIDwgZW5reXV1XCA7Civoip3lsYUgPCBzaGliYWlcIDsKK+i7n+aApyA8IG5hbnNlaVwgOwor55qG5YukIDwga2Fpa2luXCA7Civlt6jkuIcgPCBreW9tYW5cIDsKK+afu+mWsiA8IHNhZXRzdVwgOwor5a+46KiAIDwgc3VuZ2VuXCA7Civlr4bpgIEgPCBtaXNzb3VcIDsKK+eUqOe0mSA8IHlvdXNoaVwgOwor5L2T6YeNIDwgdGFpanV1XCA7Civmo4TntIQgPCBraXlha3VcIDsKK+S+jeiqrSA8IGppZG9rdVwgOwor6aqo54mMIDwga2FydXRhXCA7CivpqqjniYcgPCBrb3BwZW5cIDsKK+WEkuWtpiA8IGp1Z2FrdVwgOwor6Ieq54S2IDwgc2hpemVuXCA7CivotaTotaQgPCBha2Fha2FcIDsKK+iJsuaCqiA8IGlyb2FrdVwgOwor6Ium5YqbIDwga3V1cmlpXCA7CivouqvmlrkgPCBtaWthdGFcIDsKK+alt+abuCA8IGthaXNob1wgOwor5a6d6ZGRIDwgaG91a2FuXCA7CivlvJ/lsI/niLYgPCBvdG9vamlcIDsKK+S/oeiAhSA8IHNoaW5qYVwgOwor6Ia/55iNIDwgbm91eW91XCA7CivmpoLmlbAgPCBnYWlzdXVcIDsKK+iKuOWfnyA8IGdlaWlraVwgOwor5bCP6JmOIDwga29kb3JhXCA7CivoibLmgYsgPCBpcm9rb2lcIDsKK+iCuumWgCA8IGhhaW1vblwgOwor55Wi55SfIDwgaGlzc2VpXCA7CivnlJ/ntJkgPCBraWdhbWlcIDsKK+WFiOWQmyA8IHNlbmt1blwgOwor6LWk6LKdIDwgYWthZ2FpXCA7Civkvovop6MgPCByZWlrYWlcIDsKK+eahuWFtSA8IGthaWhlaVwgOwor6LuN5oOFIDwgZ3Vuam91XCA7Civpq5jmra8gPCB0YWthYmFcIDsKK+WFteS5sSA8IGhlaXJhblwgOwor5L2V6YGNIDwgbmFuYmVuXCA7Civpp4Tos4MgPCBkYWNoaW5cIDsKK+Wwvue/vCA8IGJpeW9rdVwgOwor6auE5rayIDwgenVpZWtpXCA7CivlsIHonYsgPCBmdXVyb3VcIDsKK+WFmuWGhSA8IHRvdW5haVwgOwor5YWs5L2PIDwga291anV1XCA7CivnlJ/nsosgPCBraXNzdWlcIDsKK+S/l+iAsyA8IHpva3VqaVwgOwor5a606YGKIDwgZW4nJ3l1dVwgOwor5YWD5Y+3IDwgZ2VuZ291XCA7Civpqqjngq0gPCBrb3R0YW5cIDsKK+WBtOazsyA8IHNvYmFlaVwgOwor6Iux5L+KIDwgZWlzaHVuXCA7CivohLHol6kgPCBkYXBwYW5cIDsKK+WEgOWuuCA8IGdpc2hpblwgOwor5L+C6Ii5IDwga2Vpc2VuXCA7Civmn5TpoIYgPCBqdXVqdW5cIDsKK+eVqueKrCA8IGJhbmtlblwgOwor6aas6LqrIDwgYmFzaGluXCA7Civnl5nmlKMgPCBrZWlyZW5cIDsKK+S+v+iIuSA8IGJpbnNlblwgOwor6IWO6IeTIDwgamluem91XCA7CivpprPotbAgPCBjaGlzb3VcIDsKK+S4u+ayu+WMuyA8IHNodWppaVwgOwor6IWL6IetIDwgd2FraWdhXCA7CivkuI3oqqDmhI8gPCBmdXNlaWlcIDsKK+WBnOa7niA8IHRlaXRhaVwgOwor6Iux5LqsIDwgZWlreW91XCA7Civlr53oqIAgPCBuZWdvdG9cIDsKK+WBieeDiCA8IGlyZXRzdVwgOwor6a2v5Zu9IDwgcm9rb2t1XCA7CivlhYXliIYgPCBqdXVidW5cIDsKK+eahuS8nSA8IGthaWRlblwgOwor55e05oOFIDwgY2hpam91XCA7CivltIfmlawgPCBzdXVrZWlcIDsKK+W+oeipoOatjCA8IGdvZWlrYVwgOwor6Lui5a+dIDwgZ29yb25lXCA7CivohZDogokgPCBmdW5pa3VcIDsKK+i8uOWFpSA8IHl1bnl1dVwgOwor5YWI5YW1IDwgc2VucGVpXCA7Civou43luL0gPCBndW5ib3VcIDsKK+S/l+e4gSA8IHpva3VlblwgOwor6IW5562LIDwgZnVra2luXCA7Civoh6rmtpwgPCBqaXRva3VcIDsKK+iGmuedgCA8IGhhZGFnaVwgOwor5a656LWmIDwgeW91c2hhXCA7CivlsL/ntKAgPCBueW91c29cIDsKK+aghOmAsiA8IGVpc2hpblwgOwor5qWT5p6XIDwgZnV1cmluXCA7CivkvZnos4ogPCB5b3pva3VcIDsKK+aknOa4qSA8IGtlbicnb25cIDsKK+Wvk+iogCA8IGd1dWdlblwgOwor6aaW6LyqIDwga3ViaXdhXCA7CivoirjlkI0gPCBnZWltZWlcIDsKK+WBpeawlyA8IGtlbmFnZVwgOwor5qCE6L6xIDwgZWlqb2t1XCA7Civog4PkuIvlnoIgPCBpa2FzdWlcIDsKK+i1pOijuCA8IHNla2lyYVwgOwor5bCP6Ii5IDwga29idW5lXCA7CivkvI3plbcgPCBnb2Nob3VcIDsKK+WxiOetiyA8IGt1a2tpblwgOwor5a656LKMIDwgeW91Ym91XCA7CivnmbrkvJogPCBoYWtrYWlcIDsKK+iHquayiCA8IGppY2hpblwgOwor55eb5omTIDwgdHN1dWRhXCA7Civlrrbos4MgPCB5YWNoaW5cIDsKK+eZu+S7mSA8IHRvdXNlblwgOwor6Iqz5ZCNIDwgaG91bWVpXCA7CivlrabpmaIgPCBnYWt1aW5cIDsKK+WIt+avm+ebriA8IGhha2VtZVwgOwor6a2U5aKDIDwgbWFreW91XCA7CivnlLLng4/os4ogPCBrb3Vpa2FcIDsKK+iIjOaguSA8IHpla2tvblwgOwor5bSp5b6hIDwgaG91Z3lvXCA7CivppYXpoK0gPCBtYW5qdXVcIDsKK+S9nOitnCA8IHNha3VmdVwgOwor5YWI5L6/IDwgc2VuYmluXCA7CivlsI/ohp0gPCBrb2hpemFcIDsKK+WyrOa5viA8IGtvdXdhblwgOwor5bCP6IW5IDwga29iYXJhXCA7CivlhYPlgKQgPCBtb3RvbmVcIDsKK+mqqOazlSA8IGtvcHBvdVwgOwor6Imv5a62IDwgcnlvdWtlXCA7CivlhYnkvZMgPCBrb3V0YWlcIDsKK+WumOi+uiA8IGthbnBlblwgOwor5a6f6LuKIDwgamlzc2hhXCA7Civlr4boqIggPCBtaWtrZWlcIDsKK+S6nOaLieavmOS6nCA8IGFyYWJpYVwgOwor5LuL6bGXIDwga2FpcmluXCA7Civog7joo48gPCBreW91cmlcIDsKK+Wwj+iEhyA8IGtvd2FraVwgOwor5LyK6YGU552AIDwgZGF0ZWdpXCA7CivltIfmi50gPCBzdXVoYWlcIDsKK+amguW/tSA8IGdhaW5lblwgOwor55So55uKIDwgeW91ZWtpXCA7Civlsa/nlLAgPCB0b25kZW5cIDsKK+iGvueCmSA8IGthaXNoYVwgOwor5YWI5LujIDwgc2VuZGFpXCA7CivlsI/ogqEgPCBrb21hdGFcIDsKK+i7ouWkiSA8IHRlbnBlblwgOwor6Lui5aOyIDwgdGVuYmFpXCA7CivlvqHopovoiJ4gPCBvbWltYWlcIDsKK+Wun+i3tSA8IGppc3NlblwgOwor5a6Y6LuNIDwga2FuZ3VuXCA7Civog4zotbAgPCBoYWlzb3VcIDsKK+i6q+W9oiA8IG1pbmFyaVwgOwor5qCh6KiTIDwga291a3VuXCA7CivlsI/ogLMgPCBrb21pbWlcIDsKK+iBtOmfsyA8IGNob3VvblwgOwor5a656KqNIDwgeW91bmluXCA7CivohLHohIIgPCBkYXNzaGlcIDsKK+S8mumHiCA8IGVzaGFrdVwgOwor5a2U6ZuAIDwga3VqYWt1XCA7CivlsI/ogIUgPCBrb21vbm9cIDsKK+S7o+mhmCA8IGRhaWdhblwgOwor6aSK6baPIDwgeW91a2VpXCA7Civog4zmloflrZcgPCBzZW1vamlcIDsKK+S/gue0ryA8IGtlaXJ1aVwgOwor6IKd6YqYIDwga2FubWVpXCA7CivkvZnop5IgPCB5b2tha3VcIDsKK+iEseiCmyA8IGRha2tvdVwgOwor5a+d6JeBIDwgbmV3YXJhXCA7CivlhKrmm4foj68gPCB1ZG9uZ2VcIDsKK+WBtuaciSA8IGd1dXl1dVwgOwor5a+G6KGMIDwgbWlra291XCA7CivlhYPkuIkgPCBnYW56YW5cIDsKK+S9k+iogCA8IHRhaWdlblwgOwor6Lqr5bmFIDwgbWloYWJhXCA7Civku7LplpMgPCBuYWthbWFcIDsKK+S8tOi1sCA8IGJhbnNvdVwgOwor6Lui5ZywIDwgdGVuY2hpXCA7Civoia/lpJwgPCByeW91eWFcIDsKK+S9k+imgSA8IHRhaXlvdVwgOwor5Lyd6YCBIDwgZGVuc291XCA7CivotIvpgKAgPCBnYW56b3VcIDsKK+W+oeilgeikkyA8IG9tdXRzdVwgOwor6Ieo5qScIDwgcmlua2VuXCA7Civlr77oga8gPCB0YWlyZW5cIDsKK+mmluisgCA8IHNodWJvdVwgOwor5YOV5amiIDwgYm9rdWhpXCA7Civmo5LnirYgPCBib3Vqb3VcIDsKK+S7lumgmCA8IHRhcnlvdVwgOwor5a+46IO0IDwgenVuZG91XCA7CivkurrprZogPCBuaW5neW9cIDsKK+S9k+ijgSA8IHRlaXNhaVwgOwor5YG25pWwIDwgZ3V1c3V1XCA7CivppIrprZogPCB5b3VneW9cIDsKK+Wwjue3miA8IGRvdXNlblwgOwor5a6M6LWwIDwga2Fuc291XCA7Civppqzonb8gPCB1bWFiYWVcIDsKK+S7pOmWqCA8IHJlaWtlaVwgOwor5a++572uIDwgdGFpY2hpXCA7Civpp5Doi7EgPCBjaHV1ZWlcIDsKK+ilv+ePreeJmSA8IHN1cGVpblwgOwor6IKp6LqrIDwga2F0YW1pXCA7Civku4rpoqggPCBpbWFmdXVcIDsKK+mAmeOAhSA8IGhvdWhvdVwgOwor6Iq45Lq6IDwgZ2VpbmluXCA7Civmn5TpgZMgPCBqdXVkb3VcIDsKK+iEsee3miA8IGRhc3NlblwgOwor5qC56I+cIDwga29uc2FpXCA7Civog6HonbYgPCBrb2Nob3VcIDsKK+Wwj+ezoCA8IGtvbnVrYVwgOwor5qSc5qGIIDwga2VuJydhblwgOwor5a6a6KuWIDwgdGVpcm9uXCA7Civmpb3lsYsgPCBnYWt1eWFcIDsKK+eXheW+jCA8IGJ5b3Vnb1wgOwor6Ia/5rGBIDwgbm91anV1XCA7CivlgrLlsrggPCBnb3VnYW5cIDsKK+Wwj+exsyA8IGtvZ29tZVwgOwor5a2m6YOoIDwgZ2FrdWJ1XCA7Civoh6jmm7ggPCByaW5zaG9cIDsKK+afu+iqrSA8IHNhZG9rdVwgOwor6IWr55iNIDwgc2h1eW91XCA7Civmpb3lr50gPCByYWt1bmVcIDsKK+Wwgee3mCA8IGZ1dWthblwgOwor5qC56IyOIDwga29ua2VpXCA7CivohqjmuoAgPCBib3VtYW5cIDsKK+S/rueQhiA8IHNodXVyaVwgOwor6ISx57OeIDwgZGFwcHVuXCA7Civoh5jmooUgPCByb3ViYWlcIDsKK+afu+iovCA8IHNhc2hvdVwgOwor5YCS5r2wIDwgdG91a2FpXCA7CivoiIzmiKYgPCB6ZXNzZW5cIDsKK+mrmOaFoiA8IGtvdW1hblwgOwor5p+U6LufIDwganV1bmFuXCA7CivlsI/nrrEgPCBrb2Jha29cIDsKK+WwveeYgSA8IGppbnN1aVwgOwor5bCK57ChIDwgc29ua2FuXCA7CivlsI7nrqEgPCBkb3VrZW5cIDsKK+WumuimiyA8IHRlaWtlblwgOwor55Om56SrIDwgZ2FyZWtpXCA7Civlrp/oo4UgPCBqaXNzb3VcIDsKK+alteWvkiA8IGdva2thblwgOwor6aeF6IiOIDwgZWtpc2hhXCA7CivmnaXprq4gPCByYWlzZW5cIDsKK+S6uumhniA8IGppbnJ1aVwgOwor5Lqh6a2CIDwgYm91a29uXCA7CivotIjos4QgPCB6b3V3YWlcIDsKK+S9v+iBmCA8IHNoaWhlaVwgOwor5Lq66aCtIDwgamludG91XCA7CivotbDogIUgPCBzb3VzaGFcIDsKK+Wun+ihjCA8IGppa2tvdVwgOwor6LuN5Za2IDwgZ3VuJydlaVwgOwor6Lu95L6/IDwga2VpYmVuXCA7Civkvb/ogIUgPCBzaGlzaGFcIDsKK+WBtuaIkCA8IGd1dXNlaVwgOwor6Lui5YukIDwgdGVua2luXCA7Civkv5fnlLsgPCB6b2t1Z2FcIDsKK+WvvuexsyA8IHRhaWJlaVwgOwor6Led54iqIDwga3lvc291XCA7CivkurrpnaIgPCBqaW5tZW5cIDsKK+iAgem9oiA8IHJvdXJlaVwgOwor6Imv5ZCPIDwgcnlvdXJpXCA7Civmnb7pnLIgPCBzaG91cm9cIDsKK+WwgeetkiA8IGZ1dXRvdVwgOwor6aOb6bOlIDwgaGljaG91XCA7CivohJrntYYgPCBreWFoYW5cIDsKK+WBtuaEnyA8IGd1dWthblwgOwor6LKd6aGeIDwga2FpcnVpXCA7Civku5jpjLIgPCBmdXJva3VcIDsKK+WBj+aXgSA8IGhlbmJvdVwgOwor5Luj6YeRIDwgZGFpa2luXCA7CivlgY/mlpwgPCBoZW5zaGFcIDsKK+WvkuiCpSA8IGthbmdvZVwgOwor6Lui5YaZIDwgdGVuc2hhXCA7CivkvJroq4cgPCBrYWlkYW5cIDsKK+iIjuW8nyA8IHNoYXRlaVwgOwor6aa06Ie0IDwganVuY2hpXCA7CivprZrku4sgPCBneW9rYWlcIDsKK+WCmOWxiyA8IGthc2F5YVwgOwor5Lyd6KiAIDwgZGVuZ29uXCA7Civou4rlj7AgPCBzaGFkYWlcIDsKK+S4jeimi+ebriA8IG1pamltZVwgOwor5a++56m6IDwgdGFpa3V1XCA7CivkvJroqIggPCBrYWlrZWlcIDsKK+S9nOiIiCA8IHNha2tvdVwgOwor6IW454KOIDwgY2hvdWVuXCA7CivkurrplpMgPCBuaW5nZW5cIDsKK+WtpuiyuyA8IGdha3VoaVwgOwor5p2x6Z2iIDwgdG91bWVuXCA7CivlsI/noLQgPCBzaG91aGFcIDsKK+mjm+mtmiA8IHRvYml1b1wgOwor5bGx5rC0IDwgc2Fuc3VpXCA7CivkvZnoiIggPCB5b2t5b3VcIDsKK+WxseawlyA8IHlhbWFrZVwgOwor5bCP55+zIDwga29pc2hpXCA7CivolY7puqbnsokgPCBzb2Jha29cIDsKK+i7jeWLoiA8IGd1bnplaVwgOwor5L2Z6IetIDwgeW9zaHV1XCA7CivkvJroposgPCBrYWlrZW5cIDsKK+WwgeemhSA8IGhvdXplblwgOwor6LSF6KiAIDwgemVpZ2VuXCA7Civnj77ph5EgPCBnZW5raW5cIDsKK+WxheeEtiA8IGt5b3plblwgOwor5YSE5LiHIDwgb2t1bWFuXCA7CivmpJzmjJkgPCBrZW5reW9cIDsKK+i7ouWAkiA8IHRlbnRvdVwgOwor55S65q2pIDwgY2hvdWJ1XCA7Civlg6flhbUgPCBzb3VoZWlcIDsKK+eWkeaDkSA8IGdpd2FrdVwgOwor5Luj6L+UIDwgZGFpaGVuXCA7Civmpb3lnJ8gPCByYWt1ZG9cIDsKK+iHqOaIpiA8IHJpbnNlblwgOwor5a6d6JS1IDwgaG91em91XCA7Civmpb3lnJIgPCByYWt1ZW5cIDsKK+ael+mHjiA8IHJpbicneWFcIDsKK+S6rOmYqiA8IGtlaWhhblwgOwor6LWk57eaIDwgYWthc2VuXCA7Civku5bpg7cgPCB0YWt5b3VcIDsKK+i7jeWIgCA8IGd1bnRvdVwgOwor55e05ZGGIDwgY2hpaG91XCA7CivmnaHpoIUgPCBqb3Vrb3VcIDsKK+Wwj+ebriA8IGtvbW9rdVwgOwor5qCE6JC9IDwgZWlyYWt1XCA7Civou6LkvY8gPCB0ZW5qdXVcIDsKK+eUqOazlSA8IHlvdWhvdVwgOwor6IeG5patIDwgb2t1ZGFuXCA7Civouo3lpoIgPCB5YWt1am9cIDsKK+Wwj+eavyA8IGtvemFyYVwgOwor5bCP55q6IDwga29qaXdhXCA7CivkuqHpnIogPCBib3VyZWlcIDsKK+aireWtkOmtmiA8IGthbWFzdVwgOwor6Ii55Z6LIDwgc2Vua2VpXCA7CivotaTntYwgPCBzZWtrZWlcIDsKK+S9nuiAhSA8IG5laXNoYVwgOwor6aas6IKJIDwgYmFuaWt1XCA7CivlgZXmiJAgPCBrYWlzZWlcIDsKK+i7jeWFtSA8IGd1bnBlaVwgOwor5p2l6Zu7IDwgcmFpZGVuXCA7CivmnbHploAgPCB0b3Vtb25cIDsKK+eUqOawtCA8IHlvdXN1aVwgOwor6LuK5YaFIDwgc2hhbmFpXCA7Civppq3ogIUgPCBneW9zaGFcIDsKK+S4jemaj+aEjyA8IGZ1enVpaVwgOwor6a2F5LqGIDwgbWlyeW91XCA7Civkuozpo58gPCBuaWppa2lcIDsKK+iEgueyiSA8IHNoaWZ1blwgOwor6Iez5b2TIDwgc2hpdG91XCA7CivkvZPogrIgPCB0YWlpa3VcIDsKK+WxpeattCA8IHJpcmVraVwgOwor5YOn5L62IDwgc291cnlvXCA7CivmnpfpgZMgPCByaW5kb3VcIDsKK+WApOacrSA8IG5lZnVkYVwgOwor57Sr6Zm96IqxIDwgYWppc2FpXCA7CivkvY7og70gPCB0ZWlub3VcIDsKK+adpemYqiA8IHJhaWhhblwgOwor5L6L56WtIDwgcmVpc2FpXCA7CivosrTphawgPCBraXNodXVcIDsKK+iDmuiDjiA8IGhhaXRhaVwgOwor5YOn5Ly9IDwgc291Z3lhXCA7Civmoafnmq4gPCBoaXdhZGFcIDsKK+WtkOixmiA8IGtvYnV0YVwgOwor6LKv6YeRIDwgY2hva2luXCA7Civku6PotbAgPCBkYWlzb3VcIDsKK+iCuuiRiSA8IGhhaXlvdVwgOwor5YOt5LiKIDwgc2Vuam91XCA7Civoh6jlvqEgPCByaW5neW9cIDsKK+iyp+mJsSA8IGhpbmtvdVwgOwor5YGP5oSbIDwgaGVuJydhaVwgOwor5YG95a2mIDwgZ2lnYWt1XCA7CivlgpHlo6sgPCBrZXNzaGlcIDsKK+mHjuiJr+edgCA8IG5vcmFnaVwgOwor6aaW6ISzIDwgc2h1bm91XCA7CivnlJ/mrosgPCBzZWl6YW5cIDsKK+adv+mHkSA8IGJhbmtpblwgOwor5qOf5pyoIDwgbXVuYWdpXCA7CivnlarmiYAgPCBiYW5zaG9cIDsKK+S6juiYreebhiA8IHVyYWJvblwgOwor6Lev5qiZIDwgcm9oeW91XCA7Civou4rkvZMgPCBzaGF0YWlcIDsKK+iIueWToSA8IHNlbicnaW5cIDsKK+Wtl+iosyA8IGppeWFrdVwgOwor6Ium5ZGz57SgIDwga3VtaXNvXCA7CivlgY/mgKcgPCBoZW5zZWlcIDsKK+ajjeajkiA8IGtvbmJvdVwgOwor5YGc5bm0IDwgdGVpbmVuXCA7CivlgpjlnLAgPCBrYXNhamlcIDsKK+WumOiIjiA8IGthbnNoYVwgOwor6aiS54S2IDwgc291emVuXCA7CivlsbHmnpcgPCBzYW5yaW5cIDsKK+alteWPsyA8IGt5b2t1dVwgOwor5pyo6a2CIDwga29kYW1hXCA7CivohY7ngo4gPCBqaW4nJ2VuXCA7CivlsbHmnZEgPCBzYW5zb25cIDsKK+S6uumBuCA8IGppbnNlblwgOwor5bCP54yrIDwga29uZWtvXCA7Civku67oqJcgPCBrYXRha3VcIDsKK+ajkuadrSA8IGJvdWd1aVwgOwor5Lq66YGTIDwgamluZG91XCA7Civppqzns6cgPCBiYXJ5b3VcIDsKK+izh+iyoSA8IHNoaXphaVwgOwor6aas57OeIDwgbWFndXNvXCA7Civlg4Xlg4UgPCBraW5raW5cIDsKK+alteWNsCA8IGdva3VpblwgOwor5Luj6KybIDwgZGFpa291XCA7CivkvJrokawgPCBrYWlzb3VcIDsKK+i7iuS4iiA8IHNoYWpvdVwgOwor6Iez5bCKIDwgc2hpc29uXCA7CivoiIXlp5EgPCBreXV1a29cIDsKK+iCuuiHkyA8IGhhaXpvdVwgOwor6Lqr5YaFIDwgbWl1Y2hpXCA7CivouqvlhbEgPCBtaWRvbW9cIDsKK+iHs+WunSA8IHNoaWhvdVwgOwor5L2T57O7IDwgdGFpa2VpXCA7CivlgY/lubMgPCBoZW5wZWlcIDsKK+Wvn+efpSA8IHNhdGNoaVwgOwor5pyr6aaZIDwgbWFra291XCA7CivmnKjppqwgPCBtb2t1YmFcIDsKK+WBtOWlsyA8IHNvYmFtZVwgOwor5pys6aSoIDwgaG9ua2FuXCA7Civku6PoqIAgPCBkYWlnZW5cIDsKK+iCuuiDniA8IGhhaWhvdVwgOwor5Lq66LuKIDwgamluc2hhXCA7CivmnLHpoZQgPCBzaHVnYW5cIDsKK+eUqOadkCA8IHlvdXphaVwgOwor6Laz5rmvIDwgYXNoaXl1XCA7Civlgr7lgJIgPCBrZWl0b3VcIDsKK+alreWLmSA8IGd5b3VtdVwgOwor5YCN5pWwIDwgYmFpc3V1XCA7CivogIHpm4QgPCByb3V5dXVcIDsKK+iIueWHuiA8IGZ1bmFkZVwgOwor6Ieq5a6FIDwgaml0YWt1XCA7CivohIfnm64gPCB3YWtpbWVcIDsKK+acrOmhmCA8IGhvbmdhblwgOwor5pys6aGMIDwgaG9uZGFpXCA7CivkubHpm7IgPCByYW4nJ3VuXCA7Civnlr7lkbwgPCBzaGlra29cIDsKK+iIueWFtyA8IGZ1bmFndVwgOwor5a62562LIDwgaWVzdWppXCA7CivmnKzpn7MgPCBob24nJ25lXCA7Civku5joqJcgPCBmdXRha3VcIDsKK+eUn+adpSA8IHNlaXJhaVwgOwor5YCm5oaKIDwga2VucGFpXCA7CivmnqLopoEgPCBzdXV5b3VcIDsKK+misemiqCA8IHRhaWZ1dVwgOwor5a+d55mWIDwgbmVndXNlXCA7CivnhKHkuovmlYUgPCBtdWppa29cIDsKK+iHjeW4ryA8IHNlaXRhaVwgOwor5qSc5a6aIDwga2VudGVpXCA7CivmnaXpgrggPCByYWl0ZWlcIDsKK+iFueahiCA8IGZ1a3VhblwgOwor55Sf5pyoIDwgbmFtYWtpXCA7CivkvZnnqIsgPCB5b2hvZG9cIDsKK+WCsuWAqCA8IGdvdWt5b1wgOwor6aqo5a2QIDwga29zc2hpXCA7CivmnaXpgYogPCByYWl5dXVcIDsKK+adsei7jSA8IHRvdWd1blwgOwor5bGV5pybIDwgdGVuYm91XCA7CivogLPovKogPCBtaW1pd2FcIDsKK+Wwj+a9riA8IGtvc2hpb1wgOwor5qK25pyoIDwga2FqaWtpXCA7Civosqfos6QgPCBoaW5zZW5cIDsKK+adpei/jiA8IHJhaWdvdVwgOwor5pyJ6auqIDwgdWhhdHN1XCA7CivotaTnl6IgPCBzZWtpcmlcIDsKK+S+v+azlSA8IGJlbnBvdVwgOwor5L2O56m6IDwgdGVpa3V1XCA7CivkvJ3ogZ4gPCBkZW5idW5cIDsKK+acrOmaiiA8IGhvbnRhaVwgOwor5bKp5bGkIDwgZ2Fuc291XCA7CivmnJ3poZQgPCBhc2FnYW9cIDsKK+i6q+S4iCA8IG1pdGFrZVwgOwor5pys6ZmjIDwgaG9uamluXCA7CivmnKzpmaIgPCBob24nJ2luXCA7CivlsKjmr5sgPCBtdWt1Z2VcIDsKK+Wumue0iyA8IGpvdW1vblwgOwor6aSK6LGaIDwgeW91dG9uXCA7Civku5jooaggPCBmdWh5b3VcIDsKK+acsemWgCA8IHNodW1vblwgOwor5L2155SoIDwgaGVpeW91XCA7CivmnKjpmbAgPCBrb2thZ2VcIDsKK+WCteS4uyA8IHNhaXNodVwgOwor5p2l6LuKIDwgcmFpc2hhXCA7Civog4znrYsgPCBoYWlraW5cIDsKK+WxseaJiyA8IHlhbWF0ZVwgOwor6IWL5q+bIDwgd2FraWdlXCA7Civkvr/mrr8gPCBiZW5kZW5cIDsKK+iCneiDhiA8IGthbnRhblwgOwor5pyd6ZyyIDwgY2hvdXJvXCA7Civlsa/miYAgPCB0b25zaG9cIDsKK+izgOihqCA8IGdhaHlvdVwgOwor5a6d566XIDwgaG91c2FuXCA7CivkuIDmmKjml6UgPCBvdG90b2lcIDsKK+miqOmcnCA8IGZ1dXNvdVwgOwor6LW354iGIDwga2liYWt1XCA7CivoiIjlkbMgPCBreW91bWlcIDsKK+iCieiKvSA8IG5pa3VnYVwgOwor5a2k6IifIDwga29zaHV1XCA7CivkuozpgLIgPCBuaXNoaW5cIDsKK+adkemBkyA8IHNvbmRvdVwgOwor5YGP5aW9IDwgaGVua291XCA7CivkuozpgJogPCBuaXRzdXVcIDsKK+WApOW5hSA8IG5laGFiYVwgOwor6aKo6ZiyIDwgZnV1Ym91XCA7Civmnq/okYkgPCBrYXJlaGFcIDsKK+WutuedoyA8IGthdG9rdVwgOwor5YG25ZCfIDwgZ3V1a2luXCA7CivkvJ3nt5ogPCBkZW5zZW5cIDsKK+iHquWbvSA8IGppa29rdVwgOwor6Ieo5ZyoIDwgcmluemFpXCA7CivkvZnnmb0gPCB5b2hha3VcIDsKK+Wuv+eXviA8IHNodWt1YVwgOwor5a+G55SfIDwgbWlzc2VpXCA7Civlr4TnlZkgPCBraXJ5dXVcIDsKK+adpeizkyA8IHJhaWhpblwgOwor5Lyd57WxIDwgZGVudG91XCA7CivnlLvlv4MgPCBnYXNoaW5cIDsKK+WwjuawtCA8IGRvdXN1aVwgOwor5p2l6LKiIDwgcmFpa291XCA7CivohLHms5UgPCBkYXBwb3VcIDsKK+WApOW1qSA8IG5lZ2FzYVwgOwor5Ye65p2l5YCkIDwgZGVraW5lXCA7CivosarpgrggPCBnb3V0ZWlcIDsKK+S9meeXhSA8IHlvYnlvdVwgOwor6ICB6YWSIDwgcm91c2h1XCA7CivkvY7nm64gPCBoaWt1bWVcIDsKK+S9nOeUuyA8IHNha3VnYVwgOwor542j6aGeIDwganV1cnVpXCA7CivosarpgoEgPCBnb3VtYWlcIDsKK+WwhOazlSA8IHNoYWhvdVwgOwor6aeE54mpIDwgZGFtb25vXCA7CivohLHmsLQgPCBkYXNzdWlcIDsKK+mjm+i6jSA8IGhpeWFrdVwgOwor5Lmx6YWUIDwgcmFuc3VpXCA7CivkubHphZIgPCByYW5zaHVcIDsKK+iIjuWFhCA8IHNoYWtlaVwgOwor5Luw6IelIDwgZ3lvdWdhXCA7CivnlarlpJYgPCBiYW5nYWlcIDsKK+WyqeWhqSA8IGdhbicnZW5cIDsKK+S9leeVqiA8IG5hbmJhblwgOwor5pu46aKoIDwgc2hvZnV1XCA7CivohLPmrbsgPCBub3VzaGlcIDsKK+S6jOi2syA8IG5pc29rdVwgOwor57696aKoIDwgaGFrYXplXCA7CivosarovrIgPCBnb3Vub3VcIDsKK+eUu+W5hSA8IGdhZnVrdVwgOwor5pu46aGeIDwgc2hvcnVpXCA7CivnlJ/mho4gPCBhaW5pa3VcIDsKK+S4remjmyA8IGNodXVoaVwgOwor6LC36ZaTIDwgdGFuaW1hXCA7CivmnbHopb8gPCB0b3V6YWlcIDsKK+iHreWRsyA8IHNodXVtaVwgOwor55C057eaIDwga2luc2VuXCA7Civog6Hnk5wgPCBreXV1cmlcIDsKK+mjm+i2iiA8IGhpZXRzdVwgOwor5p2l6KuHIDwgcmFpZGFuXCA7CivlgInlu6kgPCBzb3VyaW5cIDsKK+iFkOacvSA8IGZ1a3l1dVwgOwor5a6J56mPIDwgYW4nJ25vblwgOwor5YCk5a6JIDwgbmV5YXN1XCA7Civku6PoiaYgPCBkYWlrYW5cIDsKK+WvuOazlSA8IHN1bnBvdVwgOwor6IOO55ukIDwgdGFpYmFuXCA7CivogIHovrIgPCByb3Vub3VcIDsKK+S5semAoCA8IHJhbnpvdVwgOwor5YKN5Lq6IDwgYm91amluXCA7CivlsYjmjIcgPCBrdXNzaGlcIDsKK+iCsueoriA8IGlrdXNodVwgOwor5qKF5p6XIDwgYmFpcmluXCA7CivmnKjph5ggPCBraWt1Z2lcIDsKK+eUt+W3pSA8IGRhbmtvdVwgOwor6LG86LKFIDwgaGlreXV1XCA7CivmnIjplpMgPCBnZWtrYW5cIDsKK+S7j+iRrCA8IGJ1c3NvdVwgOwor5YCf5a62IDwgc2hha2thXCA7Civmm7jpnaIgPCBzaG9tZW5cIDsKK+adpeioqiA8IHJhaWhvdVwgOwor5Lit6Z+zIDwgY2h1dW9uXCA7CivotIjnrZQgPCB6b3V0b3VcIDsKK+iAgei8qSA8IHJvdWhhaVwgOwor6IG+6ICFIDwgcm91c2hhXCA7CivmoZHmtbcgPCBzb3VrYWlcIDsKK+Wwj+alryA8IGtvZGF0ZVwgOwor5p+x56SOIDwgY2h1dXNvXCA7CivogZrokL0gPCBqdXJha3VcIDsKK+aknOWTgSA8IGtlbnBpblwgOwor5YG25YOPIDwgZ3V1em91XCA7CivlrZjnva4gPCBzb25jaGlcIDsKK+acrOmCuCA8IGhvbnRlaVwgOwor5pys6YKmIDwgaG9ucG91XCA7CivmnaXoprMgPCByYWlrYW5cIDsKK+mkiuialSA8IHlvdXNhblwgOwor5pys6YG4IDwgaG9uc2VuXCA7CivpoL3pvaIgPCB0YWlyZWlcIDsKK+eSsOa1tyA8IGthbmthaVwgOwor5pyo6YOoIDwgbW9rdWJ1XCA7CivmnKzpgZMgPCBob25kb3VcIDsKK+WxheaJgCA8IGt5b3Nob1wgOwor6Lev5bqKIDwgcm9zaG91XCA7Civlgb3kvZwgPCBnaXNha3VcIDsKK+S5sei7jSA8IHJhbmd1blwgOwor6LOe576OIDwgc2hvdWJpXCA7Civosq/olLUgPCBjaG96b3VcIDsKK+WAoeWppiA8IHNob3VmdVwgOwor5pyd6YeOIDwgY2hvdXlhXCA7Civog5rnj6AgPCBoYWlzaHVcIDsKK+acqumAsiA8IG1pc2hpblwgOwor5LyR56ymIDwga3l1dWZ1XCA7Civpoqjph4cgPCBmdXVzYWlcIDsKK+eUo+W7gyA8IHNhbnBhaVwgOwor5Luk6IGeIDwgcmVpYnVuXCA7Civoh6rlipsgPCBqaXJpa2lcIDsKK+S/guaVsCA8IGtlaXN1dVwgOwor5Lit6ZmwIDwgY2h1dWluXCA7CivmpJzljbAgPCBrZW4nJ2luXCA7CivlsJHmnpcgPCBzaG9yaW5cIDsKK+WBpeWFqCA8IGtlbnplblwgOwor5a+u5q+NIDwgcnlvdWJvXCA7CivnlLvlraYgPCBnYWdha3VcIDsKK+S6kuinkiA8IGdva2FrdVwgOwor6LOq57SgIDwgc2hpc3NvXCA7CivmoLnmupAgPCBrb25nZW5cIDsKK+afs+eciSA8IHJ5dXViaVwgOwor5LqJ6KuWIDwgc291cm9uXCA7CivotbDms5UgPCBzb3Vob3VcIDsKK+S4iumosCA8IGpvdXRvdVwgOwor5bGx5a62IDwgeWFtYWdhXCA7Civlrp/nlJ8gPCBtaXNob3VcIDsKK+acq+i8qSA8IG1hcHBhaVwgOwor5bGe5beuIDwgem9rdXNhXCA7CivkuI3pprQgPCBmdW5hcmVcIDsKK+akv+S6iyA8IGNoaW5qaVwgOwor6aaW54+tIDwgc2h1aGFuXCA7CivlrprnlaogPCB0ZWliYW5cIDsKK+WBtuS6uiA8IGd1dWppblwgOwor55S35a2QIDwgZGFuc2hpXCA7Civku6PnvbIgPCBkYWlzaG9cIDsKK+S7o+e9riA8IGRhaWNoaVwgOwor5LyK5Yui5Li5IDwgaXNldGFuXCA7CivogrrnmYwgPCBoYWlnYW5cIDsKK+mljOexsyA8IHNlbm1haVwgOwor6Laj5peoIDwgc2h1c2hpXCA7Civku4roiKwgPCBrb25wYW5cIDsKK+WwiuadpSA8IHNvbnJhaVwgOwor5qKv5b2iIDwgdGVpa2VpXCA7CivkuozoposgPCBmdXRhbWlcIDsKK+iHquWEmCA8IGppbWFtYVwgOwor5p6c6IKJIDwga2FuaWt1XCA7CivmpJzliIYgPCBrZW5idW5cIDsKK+S4oemZoiA8IHJ5b3VpblwgOwor55Sy5a2QIDwga2Fzc2hpXCA7CivkuIDpqZogPCBpa2t5b3VcIDsKK+S6lOihjCA8IGdvZ3lvdVwgOwor6Iez5L6/IDwgc2hpYmVuXCA7CivlsIrmm7ggPCBzb25zaG9cIDsKK+Wwj+aYvCA8IGtvaGlydVwgOwor5pud6ZyyIDwgYmFrdXJvXCA7CivlsI/mmKUgPCBrb2hhcnVcIDsKK+S9meeAnSA8IHlvcmVraVwgOwor54yu6aWMIDwga2Vuc2VuXCA7Civkv6HlvpIgPCBzaGludG9cIDsKK+eVquWPtyA8IGJhbmdvdVwgOwor5LiA6aeEIDwgaWNoaWRhXCA7CivpoZ7poYwgPCBydWlkYWlcIDsKK+abnOmciiA8IHlvdXJlaVwgOwor5qC55rK7IDwga29uY2hpXCA7CivlgYnlipsgPCBpcnlva3VcIDsKK+WvoeassiA8IGtheW9rdVwgOwor5pyJ6YWNIDwgeXV1aGFpXCA7Civku5Xnva4gPCBzaGlva2lcIDsKK+miqOi7iiA8IGZ1dXNoYVwgOwor5pqX6buZIDwgYW5tb2t1XCA7CivlsbHlpbMgPCB5YW1hbWVcIDsKK+aal+m7kiA8IGFua29rdVwgOwor5bCB5pu4IDwgZnV1c2hvXCA7Civku4/ogIUgPCBidXNzaGFcIDsKK+ajhOWtkCA8IHN1dGVnb1wgOwor5YC55ZCdIDwga2VucmluXCA7Civoh6rkvpsgPCBqaWt5b3VcIDsKK+S4iemfkyA8IHNhbmthblwgOwor5LqI6KGoIDwgeW9oeW91XCA7CivkuIfpoIMgPCBiYW5rZWlcIDsKK+S4gOmjmyA8IGljaGloaVwgOwor5qC55q+bIDwga29ubW91XCA7CivkvZnmu7QgPCB5b3Rla2lcIDsKK+WAjeWkpyA8IGJhaWRhaVwgOwor6Ieq5L2cIDwgamlzYWt1XCA7CivogrLnlJ8gPCBpa3VzZWlcIDsKK+eUu+WigyA8IGdha3lvdVwgOwor5pyo6LOKIDwgdG9rdXNhXCA7CivlsIrmlawgPCBzb25rZWlcIDsKK+S4iumdoiA8IGpvdW1lblwgOwor5bGF5bi4IDwga3lvam91XCA7Civku6PntI0gPCBkYWlub3VcIDsKK+WvkuawlyA8IHNhbXVrZVwgOwor5LiJ6Z2iIDwgc2FubWVuXCA7CivlsIrmlJggPCBzb25qb3VcIDsKK+WBnOS8miA8IHRlaWthaVwgOwor5YCN5aKXIDwgYmFpem91XCA7CivmpJzkvr8gPCBrZW5iZW5cIDsKK+eUn+WtmCA8IHNlaXpvblwgOwor5bGR5bGLIDwga3V6dXlhXCA7CivpoZjpnaIgPCBnYW5tZW5cIDsKK+miqOi2oyA8IGZ1dXNodVwgOwor6IO45q+bIDwgbXVuYWdlXCA7CivlsbHloLQgPCB5YW1hYmFcIDsKK+Wxj+WxhSA8IGhlaWt5b1wgOwor5LiH6Zu3IDwgYmFucmFpXCA7CivkuInpmo4gPCBzYW5nYWlcIDsKK+WvneanmCA8IG5lemFtYVwgOwor5q2k5Yem562JIDwga29rb3JhXCA7CivnlarlhbUgPCBiYW5wZWlcIDsKK+acneizgCA8IGNob3VnYVwgOwor5a++5pWwIDwgdGFpc3V1XCA7Civlr6nmn7sgPCBzaGluc2FcIDsKK+WvnealrSA8IG5ld2F6YVwgOwor6Zyy6KW/5LqcIDwgcm9zaGlhXCA7CivmnKzoq5YgPCBob25yb25cIDsKK+WAn+WVjyA8IHNoYW1vblwgOwor5pu+6YGKIDwgc291eXV1XCA7CivnkKLno6ggPCB0YWt1bWFcIDsKK+iFueWtkCA8IGhhcmFrb1wgOwor5qGf5pW3IDwgc2FqaWtpXCA7Civlr77mlK8gPCB0YWlzaGlcIDsKK+mkiuiCsiA8IHlvdWlrdVwgOwor5Lyv54i2IDwgaGFrdWZ1XCA7CivmnKzoqowgPCBob25zaGlcIDsKK+WtkOeoriA8IGtvZGFuZVwgOwor5bCP5oyHIDwga295dWJpXCA7CivmnKroqq0gPCBtaWRva3VcIDsKK+ebruWMu+iAhSA8IG1laXNoYVwgOwor5LiA6Zq7IDwgaXNzZWtpXCA7Civlr7jmlq0gPCBzdW5kYW5cIDsKK+iAgeihsCA8IHJvdXN1aVwgOwor6IWQ5b+DIDwgZnVzaGluXCA7CivmmrTpoqggPCBib3VmdXVcIDsKK+S9meayoiA8IHlvdGFrdVwgOwor5a6a54K5IDwgdGVpdGVuXCA7Civmm7jpgZMgPCBzaG9kb3VcIDsKK+S4remDqCA8IGNodXVidVwgOwor5YGP5Lq6IDwgaGVuamluXCA7CivlgKbljq0gPCBrZW4nJ2VuXCA7Civlrabnm6MgPCBnYWtrYW5cIDsKK+mkiuiAgSA8IHlvdXJvdVwgOwor55Sj5aOwIDwgdWJ1Z29lXCA7Civpo7ToibIgPCBhbWVpcm9cIDsKK+eUsOWcsCA8IGRlbmNoaVwgOwor5pyd6K2wIDwgY2hvdWdpXCA7CivnlLDlnJIgPCBkZW4nJ2VuXCA7CivpppnmuK8gPCBob25rb25cIDsKK+ahguaelyA8IGtlaXJpblwgOwor5LiA6ZaTIDwgaGl0b21hXCA7CivlrZjnn6UgPCB6b25jaGlcIDsKK+S4remAlCA8IGNodXV0b1wgOwor55C655GvIDwgaG91cm91XCA7CivpoLvpoLsgPCBoaW5waW5cIDsKK+Wwu+WwviA8IHNoaXBwb1wgOwor55Sa5aSnIDwgamluZGFpXCA7CivkvovmlbAgPCByZWlzdXVcIDsKK+S6jOiRiSA8IGZ1dGFiYVwgOwor6aO86IKyIDwgc2hpaWt1XCA7Civkv7Plo4cgPCBoYWlkYW5cIDsKK+Wxr+WWtiA8IHRvbicnZWlcIDsKK+adpeiHqCA8IHJhaXJpblwgOwor5qK15aSpIDwgYm9udGVuXCA7CivlpoLkvZXmp5ggPCBpa2F5b3VcIDsKK+WvkuaihSA8IGthbmJhaVwgOwor5qC55p+iIDwga29udGVpXCA7CivkvZXmrbMgPCBuYW5zYWlcIDsKK+agl+avmyA8IGt1cmlnZVwgOwor5bCK5oWuIDwgc29ucnlvXCA7CivkvY/msJEgPCBqdXVtaW5cIDsKK+WwkeaBqSA8IHNob3VvblwgOwor55Sj5ZywIDwgc2FuY2hpXCA7CivkvIHnlLsgPCBraWtha3VcIDsKK+eUmOWhqSA8IGFtYWppb1wgOwor6LWk5pysIDwgYWthaG9uXCA7Civpoqjop6MgPCBmdXVrYWlcIDsKK+S9teaciSA8IGhlaXl1dVwgOwor5bGL5aSWIDwgb2t1Z2FpXCA7CivppqzmqYcgPCBiYXNvcmlcIDsKK+S4rei6qyA8IG5ha2FtaVwgOwor55CG56WeIDwgcmlzaGluXCA7CivmoLnmnKwgPCBuZW1vdG9cIDsKK+S6uue1uSA8IGppbmtlblwgOwor5Li76LOTIDwgc2h1aGluXCA7CivnlJ/lnLAgPCBzZWljaGlcIDsKK+miqOimiyA8IGthemFtaVwgOwor5LuW56ewIDwgdGFzaG91XCA7CivpppnmsLQgPCBrb3VzdWlcIDsKK+WvkuadkSA8IGthbnNvblwgOwor5p2J6I+cIDwgc3VnaW5hXCA7CivnlZnkv50gPCByeXV1aG9cIDsKK+iDveabuCA8IG5vdXNob1wgOwor5L2c5qWtIDwgc2FneW91XCA7CivlgKjlgrIgPCBreW9nb3VcIDsKK+agueaalyA8IG5la3VyYVwgOwor6Leh5ZywIDwgYXRvY2hpXCA7Civkurrns54gPCBqaW5wdW5cIDsKK+WtpueQhiA8IGdha3VyaVwgOwor5L2Z5qWtIDwgeW9neW91XCA7CivlsI/lvaIgPCBrb2dhdGFcIDsKK+aciOisnSA8IGdlc3NoYVwgOwor5a+G5qCTIDwgbWlzc2VuXCA7Civlr5LmmpYgPCBrYW5kYW5cIDsKK+miqOiiiyA8IGZ1dXRhaVwgOwor5LiJ6YeNIDwgc2FuanV1XCA7CivosqHntYwgPCB6YWlrZWlcIDsKK+WtmOeUnyA8IHpvbmpvdVwgOwor5LiH6YeRIDwgbWFua2luXCA7CivlsIrlvbEgPCBzb24nJ2VpXCA7CivmoLnmlrkgPCBuZWthdGFcIDsKK+eUqOWTgSA8IHlvdWhpblwgOwor5Luu55eFIDwga2VieW91XCA7CivkuIrphZIgPCBqb3VzaHVcIDsKK+Wul+a0viA8IHNodXVoYVwgOwor5a6a5rOVIDwgam91aG91XCA7Civlrrbmpa0gPCBrYWd5b3VcIDsKK+iDoeakkiA8IGtvc2hvdVwgOwor6IOG5rGBIDwgdGFuanV1XCA7CivnkKXnj4AgPCBrb2hha3VcIDsKK+iDveaWhyA8IG5vdWJ1blwgOwor5bCP5bmFIDwga29oYWJhXCA7CivlraTni6wgPCBrb2Rva3VcIDsKK+eUo+WTgSA8IHNhbnBpblwgOwor5LiN6YGpIDwgZnV0ZWtpXCA7Civlr4bmm7ggPCBtaXNzaG9cIDsKK+iCoeeBqyA8IG1hdGFiaVwgOwor576O6YacIDwgYmlzaHV1XCA7CivkuIDph4wgPCBpY2hpcmlcIDsKK+WvteaEmyA8IGNob3VhaVwgOwor5a6d5q6/IDwgaG91ZGVuXCA7CivlsI/lt64gPCBzaG91c2FcIDsKK+ePoOeulyA8IHNodXphblwgOwor5LiN6YCaIDwgZnV0c3V1XCA7CivohLPlubkgPCBub3VrYW5cIDsKK+S+m+W/nCA8IGt5b3VvdVwgOwor546J6Je7IDwgdGFtYW1vXCA7Civogp3ngo4gPCBrYW4nJ2VuXCA7CivkuInpgbggPCBzYW5zZW5cIDsKK+Wwi+W4uCA8IGppbmpvdVwgOwor5L+u5Za2IDwgc2h1dWVpXCA7Civog6HmoYMgPCBrdXJ1bWlcIDsKK+S4h+mCpiA8IGJhbnBvdVwgOwor6ICB6I2YIDwgcm91c291XCA7CivlrpjmsJEgPCBrYW5taW5cIDsKK+egtOmtlOefoiA8IGhhbWF5YVwgOwor5bGe5ZCPIDwgem9rdXJpXCA7CivmnqHnm64gPCBtYXN1bWVcIDsKK+S4gemFiSA8IHRlaXl1dVwgOwor6LaK5b6MIDwgZWNoaWdvXCA7CivlsJrlsJogPCBuYW9uYW9cIDsKK+S4iemAoyA8IHNhbnJlblwgOwor5Li76KiIIDwgc2h1a2VpXCA7CivmoKHmnKwgPCBrb3Vob25cIDsKK+aarumQmCA8IGJvc2hvdVwgOwor5bCB5bu6IDwgaG91a2VuXCA7CivlgJLlg48gPCB0b3V6b3VcIDsKK+e+hemHnSA8IHJhc2hpblwgOwor5qK15ZSEIDwgYm9uYmFpXCA7CivkuIrovrogPCBqb3VoZW5cIDsKK+S4gOmDrSA8IGlra2FrdVwgOwor5LiA6YOoIDwgaWNoaWJ1XCA7CivkvZXmnpogPCBuYW5tYWlcIDsKK+WvuOW/lyA8IHN1bnNoaVwgOwor5L2e5pm6IDwgbmVpY2hpXCA7CivkuLvoprMgPCBzaHVrYW5cIDsKK+WutuafhCA8IGllZ2FyYVwgOwor5bCP5bO2IDwga29qaW1hXCA7CivmnKzokawgPCBob25zb3VcIDsKK+eUo+WNtSA8IHNhbnJhblwgOwor5Lq656iuIDwgamluc2h1XCA7CivlrozmsrsgPCBrYW5jaGlcIDsKK+S9leadoSA8IG5hbmpvdVwgOwor5Luj55SoIDwgZGFpeW91XCA7Civnm7jpg6jlsYsgPCBhaWJleWFcIDsKK+S8r+avjSA8IGhha3Vib1wgOwor5L+z5ZCNIDwgaGFpbWVpXCA7CivlraTlhZDpmaIgPCBrb2ppaW5cIDsKK+e+qeiziiA8IGdpem9rdVwgOwor5bCP5bGxIDwga295YW1hXCA7CivlsIrltIcgPCBzb25zdXVcIDsKK+S/s+WPiyA8IGhhaXl1dVwgOwor5LiA6YCxIDwgaXNzaHV1XCA7CivkvJHmvJQgPCBreXV1ZW5cIDsKK+S4gOmAmiA8IGl0dHN1dVwgOwor6ISH5oi4IDwgd2FraWRvXCA7CivlsL/lmaggPCBueW91a2lcIDsKK+S4iei7jSA8IHNhbmd1blwgOwor54ut6ZynIDwgc2FnaXJpXCA7CivmoLnmi6AgPCBrb25reW9cIDsKK+S6lee2sSA8IGlkenVuYVwgOwor5LuK5pel5pelIDwga3lvdWJpXCA7CivkuIfou40gPCBiYW5ndW5cIDsKK+adseerryA8IHRvdXRhblwgOwor5pys6I2JIDwgaG9uem91XCA7Civosrvnm64gPCBoaW1va3VcIDsKK+S7meeVjCA8IHNlbmthaVwgOwor55Sj5YmNIDwgc2FuemVuXCA7Civnjonoj5wgPCB0YW1hbmFcIDsKK+acq+iMtiA8IG1hdGNoYVwgOwor6aOv57GzIDwgaGFubWFpXCA7CivpoIbpoqggPCBqdW5wdXVcIDsKK+acseiJsiA8IHNodWlyb1wgOwor5Lyd5rOVIDwgZGVucG91XCA7CivnlLvkvK8gPCBnYWhha3VcIDsKK+eLremamCA8IGt5b3VhaVwgOwor542j6KGMIDwganV1a291XCA7CivkuI3otrMgPCBmdXNva3VcIDsKK+izh+eUoyA8IHNoaXNhblwgOwor5auB6I+cIDwgeW9tZW5hXCA7CivkupTntYwgPCBnb2t5b3VcIDsKK+mnheaJiyA8IGVraXNodVwgOwor55Sf5YmNIDwgc2VpemVuXCA7CivkuIvotrMgPCBnZXNva3VcIDsKK+S9leaWuSA8IGRvbmF0YVwgOwor6LGa6IiOIDwgdG9uc2hhXCA7CivotrPloLQgPCBhc2hpYmFcIDsKK+mghumghiA8IGp1bmp1blwgOwor6I285p6z5bC8IDwgZGFraW5pXCA7CivkuIDouqsgPCBpc3NoaW5cIDsKK+iCpeaygyA8IGhpeW9rdVwgOwor5qKx5YyFIDwga29ucG91XCA7CivmnpfnlKMgPCByaW5zYW5cIDsKK+S6uuefpSA8IGppbmNoaVwgOwor572w6YeRIDwgYmFra2luXCA7Civku6TnirYgPCByZWlqb3VcIDsKK+S+i+W5tCA8IHJlaW5lblwgOwor54ut6ZaTIDwgaGF6YW1hXCA7CivohJvlt74gPCBoYWJha2lcIDsKK+WxpeS/riA8IHJpc2h1dVwgOwor6Iad5LiLIDwgc2hpa2thXCA7CivkuozntJogPCBuaWt5dXVcIDsKK+a1t+iAgemMoCA8IGViaWpvdVwgOwor5pys6IazIDwgaG9uemVuXCA7CivkuIDot68gPCBpY2hpcm9cIDsKK+iEhuaApyA8IHplaXNlaVwgOwor5L2T5pONIDwgdGFpc291XCA7Civkvb/lvbkgPCBzaGlla2lcIDsKK+aZqemkkCA8IGJhbnNhblwgOwor6IKd5rK5IDwga2FuJyd5dVwgOwor576k6KuWIDwgZ3Vucm9uXCA7CivnlKjkvr8gPCB5b3ViZW5cIDsKK+S7iueUnyA8IGtvbmpvdVwgOwor5bCR5aWzIDwgc2hvdWpvXCA7Civkurrnm7ggPCBuaW5zb3VcIDsKK+S6iOe0hCA8IHlveWFrdVwgOwor5Lq655uuIDwgaGl0b21lXCA7CivnlJjlhZogPCBhbWF0b3VcIDsKK+iyp+ebuCA8IGhpbnNvdVwgOwor6IOM5pmvIDwgaGFpa2VpXCA7Civpp5LluqcgPCBrb21hemFcIDsKK+WuiealvSA8IGFucmFrdVwgOwor5LiW6KmVIDwgc2VoeW91XCA7Civnj63nlLAgPCBoYW5kZW5cIDsKK+acieiTiyA8IHl1dWdhaVwgOwor55So5Lu2IDwgeW91a2VuXCA7CivkuZfoiLkgPCBqb3VzZW5cIDsKK+Wun+aZryA8IGppa2tlaVwgOwor5bGL5YaFIDwgb2t1bmFpXCA7CivlrabmtL4gPCBnYWt1aGFcIDsKK+miqOiIuSA8IGZ1dXNlblwgOwor5p+U5q+bIDwganV1bW91XCA7Civnj77nirYgPCBnZW5qb3VcIDsKK+mfs+mfvyA8IG9ua3lvdVwgOwor5pyo6IKMIDwga2loYWRhXCA7CivlsIrlpKcgPCBzb25kYWlcIDsKK+iEs+WkqSA8IG5vdXRlblwgOwor5aqa6JasIDwgYml5YWt1XCA7Civpoqjoh7QgPCBmdXVjaGlcIDsKK+WvneW6iiA8IG5lZG9rb1wgOwor5LiW6KWyIDwgc2VzaHV1XCA7CivogIHnt7QgPCByb3VyZW5cIDsKK+S4jeipsyA8IGZ1c2hvdVwgOwor5a6f5pa9IDwgamlzc2hpXCA7CivkuIforJ0gPCBiYW5zaGFcIDsKK+S4ieirliA8IHNhbnJvblwgOwor5L+X5YuZIDwgem9rdW11XCA7Civpp4XlvIEgPCBla2liZW5cIDsKK+acrOe9siA8IGhvbnNob1wgOwor5a+d5be7IDwgbmVtYWtpXCA7Civlrp/mlbAgPCBqaXNzdXVcIDsKK+S6uueUnyA8IGppbnNlaVwgOwor5a6I5qCqIDwgc2h1c2h1XCA7CivolY7puqblsYsgPCBzb2JheWFcIDsKK+S6ieerryA8IHNvdXRhblwgOwor5LiA6K2wIDwgaWNoaWdpXCA7CivkvLTmmJ8gPCBiYW5zZWlcIDsKK+mjm+ernCA8IGhpcnl1dVwgOwor5qC55bm5IDwga29ua2FuXCA7CivotaTluL0gPCBha2Fib3VcIDsKK+mkiueUnyA8IHlvdWpvdVwgOwor5pq06LWwIDwgYm91c291XCA7CivkuIroqIggPCBqb3VrZWlcIDsKK+Wuv+aEjyA8IHNodWt1aVwgOwor5a6M5pysIDwga2FucG9uXCA7CivogLPnm64gPCBqaW1va3VcIDsKK+S9nuaCqiA8IG5laWFrdVwgOwor5L+v5LyPIDwgZnVmdWt1XCA7CivpqJnlj5YgPCBoZW5zaHVcIDsKK+S/r+S7sCA8IGZ1Z3lvdVwgOwor5LiK6KanIDwgam91cmFuXCA7CivkuIfoqIAgPCBtYW5nZW5cIDsKK+WvvuWkliA8IHRhaWdhaVwgOwor5L2P5omAIDwganV1c2hvXCA7CivosqHnlYwgPCB6YWlrYWlcIDsKK+miqOiBniA8IGZ1dWJ1blwgOwor5LiK6KaGIDwgdXdhb29pXCA7CivlrrnmhYsgPCB5b3VkYWlcIDsKK+iyoeeUoyA8IHphaXNhblwgOwor6ZuM5o275a2QIDwgbWVuZWppXCA7CivkuKHomY4gPCByeW91a29cIDsKK+eMpeirhyA8IHdhaWRhblwgOwor6LaK5aKDIDwgZWtreW91XCA7CivkuIroo70gPCBqb3VzZWlcIDsKK+S/l+WEkiA8IHpva3VqdVwgOwor5LiK6KOBIDwgam91c2FpXCA7CivkvJ3mnaUgPCBkZW5yYWlcIDsKK+WvneWwjyA8IG5lc2hvdVwgOwor5pys57W5IDwgaG9ua2VuXCA7Civpo6/nm5IgPCBoYW5nb3VcIDsKK+S4i+ihqCA8IGthaHlvdVwgOwor6IWV5YmNIDwgdWRlbWFlXCA7Civku67ms4ogPCBrYWhha3VcIDsKK+S9meW+syA8IHlvdG9rdVwgOwor5L2e5byBIDwgbmVpYmVuXCA7CivkuK3oj68gPCBjaHV1a2FcIDsKK+Wus+aCqiA8IGdhaWFrdVwgOwor5bCB5ZywIDwgaG91Y2hpXCA7CivlrozmlZcgPCBrYW5wYWlcIDsKK+S/muS/lyA8IHJpem9rdVwgOwor5bGL5LiKIDwgb2t1am91XCA7CivmnKjntYQgPCBraWd1bWlcIDsKK+acieiDvSA8IHl1dW5vdVwgOwor5bCa5Y+kIDwgc2hvdWtvXCA7Civog4zmiLsgPCBoYWlyZWlcIDsKK+Wuo+aIpiA8IHNlbnNlblwgOwor5LqU55uuIDwgZ29tb2t1XCA7Civlr5PlsYUgPCBndXVreW9cIDsKK+Wwi+WVjyA8IGppbm1vblwgOwor5pq06KuWIDwgYm91cm9uXCA7CivmnaHnl5UgPCBqb3Vrb25cIDsKK+S9teWtmCA8IGhlaXpvblwgOwor5a+M5bKzIDwgZnVnYWt1XCA7Civog6HlvJMgPCBrb2t5dXVcIDsKK+aYvOmkiSA8IGhpcnVnZVwgOwor55C05p+xIDwga290b2ppXCA7Civotqjli6IgPCBzdXVzZWlcIDsKK+mgkei/tyA8IGdhbm1laVwgOwor5a6b5omAIDwgYXRlc2hvXCA7Civmn5Dmn5AgPCBib3Vib3VcIDsKK+iyr+eCrSA8IGNob3RhblwgOwor5LqM55uuIDwgZnV0YW1lXCA7CivmmrToqIAgPCBib3VnZW5cIDsKK+S/iuWBiSA8IHNodW4nJ2lcIDsKK+WwiuWRvSA8IHNvbm1laVwgOwor6IKl5paZIDwgaGlyeW91XCA7Civlrp/mhYsgPCBqaXR0YWlcIDsKK+acqOeusSA8IGtpYmFrb1wgOwor5pyJ572qIDwgeXV1emFpXCA7CivlrabmoKEgPCBnYWtrb3VcIDsKK+acqOeuoSA8IG1va2thblwgOwor546E57GzIDwgZ2VubWFpXCA7Civnj4jnkLIgPCBrb3VoaWlcIDsKK+miqOe0iyA8IGZ1dW1vblwgOwor5qCq5bGLIDwga2FidXlhXCA7CivlsIrlkJsgPCBzb25rdW5cIDsKK+Wun+aEjyA8IGppdHN1aVwgOwor5L2O5buJIDwgdGVpcmVuXCA7Civpo7zniqwgPCBrYWlpbnVcIDsKK+WwiuWPtyA8IHNvbmdvdVwgOwor5LuW5rWBIDwgdGFyeXV1XCA7CivmnKvnq68gPCBtYXR0YW5cIDsKK+S6uueBvSA8IGppbnNhaVwgOwor5LiL6JasIDwgZ2V5YWt1XCA7Civlr4blsIEgPCBtaXBwdXVcIDsKK+Wwj+WMmSA8IGtvc2FqaVwgOwor5bCK5Y6zIDwgc29uZ2VuXCA7CivogonmoYIgPCBuaWtrZWlcIDsKK+i1sOWhgSA8IHNvdXJ1aVwgOwor5Lyd5pCsIDwgZGVucGFuXCA7Civlr5vlpKcgPCBrYW5kYWlcIDsKK+WPpOS6i+iomCA8IGtvamlraVwgOwor5pys56i/IDwgaG9ua291XCA7CivlrZDmp5ggPCBrb3NhbWFcIDsKK+Wuv+WxiyA8IHlhZG95YVwgOwor5a+/5ZG9IDwganVteW91XCA7CivnnJ/pnaLnm64gPCBtYWppbWVcIDsKK+S4ieiUtSA8IHNhbnpvdVwgOwor6Z+z6YePIDwgb25yeW91XCA7CivkuZfnrpcgPCBqb3V6YW5cIDsKK+agueWkqiA8IG5lYnV0b1wgOwor6K2w6ZW3IDwgZ2ljaG91XCA7Civmm7jnv7AgPCBzaG9rYW5cIDsKK+adpeeKtiA8IHJhaWpvdVwgOwor5LuP5rOVIDwgYnVwcG91XCA7CivlronmiYsgPCB5YXN1ZGVcIDsKK+WvvuWPpSA8IHRzdWlrdVwgOwor5Lit6ICzIDwgY2h1dWppXCA7CivmnKznpL4gPCBob25zaGFcIDsKK+S4i+iQvSA8IGdlcmFrdVwgOwor6K2m6ZiyIDwga2VpYm91XCA7Civlr5LlpJwgPCBrYW4nJ3lhXCA7CivlrojmiJAgPCBzaHVzZWlcIDsKK+eJuemrmCA8IHRva2tvdVwgOwor5pyr56S+IDwgbWFzc2hhXCA7CivkvZflr50gPCB3YWJpbmVcIDsKK+Wun+W8nyA8IGppdHRlaVwgOwor546y55OPIDwgcmVpcm91XCA7CivogIHnnLwgPCByb3VnYW5cIDsKK+agveWfuSA8IHNhaWJhaVwgOwor54mh6baPIDwgb25kb3JpXCA7CivlsI/lhbUgPCBrb2h5b3VcIDsKK+aciOe1jCA8IGdla2tlaVwgOwor6IOM5bqDIDwgc2ViaXJvXCA7CivlraPmmKUgPCBraXNodW5cIDsKK+Wwj+WFkCA8IHNob3VuaVwgOwor6LGK56iUIDwgaG91bmVuXCA7CivniZ3pt4QgPCBoaW5rZWlcIDsKK+ixoeecvCA8IHpvdWdhblwgOwor546z55GBIDwgdGFpbWFpXCA7CivmmpfoqqYgPCBhbnNob3VcIDsKK+mokuS6uiA8IHNvdWppblwgOwor5a2Q5qCqIDwga29rYWJ1XCA7CivmmLzplpMgPCBoaXJ1bWFcIDsKK+S9juWxpCA8IHRlaXNvdVwgOwor5qC55Z+OIDwgbmVqaXJvXCA7CivkuoDnlLIgPCBraWtrb3VcIDsKK+mhleiRlyA8IGtlbmNob1wgOwor6aiS5LmxIDwgc291cmFuXCA7CivlsIrlhawgPCBzb25rb3VcIDsKK+WuteWuriA8IHlvbWl5YVwgOwor5L2P5bCCIDwganV1c2VuXCA7Civpn7PpgJ8gPCBvbnNva3VcIDsKK+S8kOaOoSA8IGJhc3NhaVwgOwor5L6/5LmXIDwgYmluam91XCA7Civkub7nlLAgPCBrYW5kZW5cIDsKK+ixhuenkSA8IG1hbWVrYVwgOwor6ISx5YWaIDwgZGF0dG91XCA7CivkvZ7lp6YgPCBuZWlrYW5cIDsKK+S9j+WutiA8IHN1bWlrYVwgOwor546y546yIDwgcmVpcmVpXCA7CivkvrbkvLQgPCByeW9oYW5cIDsKK+iznOadryA8IHNoaWhhaVwgOwor6LKh5rqQIDwgemFpZ2VuXCA7Civlronmga8gPCBhbnNva3VcIDsKK+WwiuWDjyA8IHNvbnpvdVwgOwor5LiN6ImvIDwgZnVyeW91XCA7CivlrprluLggPCB0ZWlqb3VcIDsKK+eMruiMtiA8IGtlbmNoYVwgOwor5LiA6I+KIDwgaWtraWt1XCA7Civlrq7lrrYgPCBtaXlha2VcIDsKK+miqOelniA8IGZ1dWppblwgOwor5a++5YemIDwgdGFpc2hvXCA7CivkuKHnvqkgPCByeW91Z2lcIDsKK+S4h+iKuCA8IGJhbmdlaVwgOwor6LOi5piOIDwga2VubWVpXCA7Civosq/msLQgPCBjaG9zdWlcIDsKK+aer+acqCA8IGthcmVraVwgOwor5LiA6I2YIDwgaWljaGFuXCA7Civlr7jliY0gPCBzdW56ZW5cIDsKK+Wuj+W8gSA8IGtvdWJlblwgOwor5a++5YaFIDwgdGFpbmFpXCA7CivogIHnlJ8gPCByb3VzZWlcIDsKK+eNuuelrSA8IGRhc3NhaVwgOwor54us6KqeIDwgZG9rdWdvXCA7CivkuIroh7wgPCB1d2F1c3VcIDsKK+Wwj+S9nCA8IGtvc2FrdVwgOwor5pys55uXIDwgaG9udG91XCA7Civpo73muoAgPCBob3VtYW5cIDsKK+mCo+eUseS7liA8IG5heXV0YVwgOwor5a+45YiGIDwgc3VuYnVuXCA7Civni6zoqbEgPCBkb2t1d2FcIDsKK+S4h+iIrCA8IGJhbnBhblwgOwor5LiK6IeIIDwgam91cm91XCA7CivmnKjnm64gPCBtb2t1bWVcIDsKK+WupuWumCA8IGthbmdhblwgOwor5pu057SXIDwgc2FyYXNhXCA7CivkurrmsJcgPCBoaXRva2VcIDsKK+acqOeavyA8IGtpemFyYVwgOwor5Lq65rCRIDwgamlubWluXCA7CivkuIrohZUgPCBqb3V3YW5cIDsKK+WwiuS9kyA8IHNvbnRhaVwgOwor5pyo55quIDwgbW9rdWhpXCA7Civku6Pmm78gPCBkYWl0YWlcIDsKK+afkOaJgCA8IGJvdXNob1wgOwor5a2Q5pa5IDwga29rYXRhXCA7CivkvZzloLQgPCBzYWt1YmFcIDsKK+iyp+awkSA8IGhpbm1pblwgOwor5LuK5qeYIDwgaW1heW91XCA7CivkuqzmtZwgPCBrZWloaW5cIDsKK+acieeojiA8IHl1dXplaVwgOwor6ISx5LyaIDwgZGFra2FpXCA7CivkuIrog4wgPCB1d2F6ZWlcIDsKK+WvteWFkCA8IGNob3VqaVwgOwor5LiK6IKiIDwgam91c2hpXCA7CivmmbrorIAgPCBjaGlib3VcIDsKK+mhnuiBmiA8IHJ1aWp1dVwgOwor5pys55WqIDwgaG9uYmFuXCA7CivnibnpnIAgPCB0b2t1anVcIDsKK+iytOanmCA8IGtpc2FtYVwgOwor6IGw5piOIDwgc291bWVpXCA7CivpoqjnnLwgPCBmdXVnYW5cIDsKK+iAgeeNqiA8IHJvdWthaVwgOwor5a625aG+IDwga2FqdWt1XCA7Civos4fmnKwgPCBzaGlob25cIDsKK+S9nOWcnyA8IHNha3Vkb1wgOwor5Lya5byPIDwgZXNoaWtpXCA7CivnvprnvoogPCByZWl5b3VcIDsKK+S4ieiAhSA8IHNhbnNoYVwgOwor6LGq54i9IDwgZ291c291XCA7CivkvZzlm7MgPCBzYWt1enVcIDsKK+eMq+iDjCA8IG5la296ZVwgOwor6aOb54GrIDwgdG9iaWhpXCA7CivniYfpsZcgPCBoZW5yaW5cIDsKK+mnheWQjSA8IGVraW1laVwgOwor5Luj5pWwIDwgZGFpc3V1XCA7CivosZDnlLAgPCB0b3lvdGFcIDsKK+eLrOihjCA8IGRva2tvdVwgOwor54mb6aasIDwgZ3l1dWJhXCA7CivkuLjnp5ggPCBtYXJ1aGlcIDsKK+mjm+eAkSA8IGhpYmFrdVwgOwor5YC25qW96YOoIDwga3VyYWJ1XCA7CivpoJLooYwgPCBoYW5rb3VcIDsKK+adseavjiA8IHRvdW1haVwgOwor6IOh5Zu9IDwga29rb2t1XCA7CivmoYjlhoUgPCBhbicnbmFpXCA7CivkvZXlm54gPCBuYW5rYWlcIDsKK+itt+i6qyA8IGdvc2hpblwgOwor5pyo55C0IDwgbW9ra2luXCA7Civku4/mm7ggPCBidXNzaG9cIDsKK+mhnue6giA8IHJ1aXNhblwgOwor6Z2S6bu0IDwgYW9rYWJpXCA7CivmnKjnkIYgPCBtb2t1cmlcIDsKK+S+m+S4jiA8IGt5b3V5b1wgOwor6K6S6KyXIDwgemFuYm91XCA7Civlr53liIMgPCBuZXRhYmFcIDsKK+S4gOe+vSA8IGljaGl3YVwgOwor6IKJ5oSfIDwgbmlra2FuXCA7Civos6LmiY0gPCBrZW5zYWlcIDsKK+Wxi+agueWxiyA8IHlhbmV5YVwgOwor5a6J5a+nIDwgYW4nJ25laVwgOwor5Li756CyIDwgc2h1aG91XCA7Civlr53lhbcgPCBzaGluZ3VcIDsKK+iyv+aYkyA8IGJvdWVraVwgOwor54++5pWwIDwgZ2Vuc3V1XCA7Civpn7Poqr8gPCBvbmNob3VcIDsKK+mnheWJjSA8IGVraW1hZVwgOwor5a6I5a6uIDwgeWFtb3JpXCA7Civpn7Poqq0gPCBvbmRva3VcIDsKK+aemuaVsCA8IG1haXN1dVwgOwor6IGh5pWPIDwgc291YmluXCA7Civosqfmo5IgPCBiaW5ib3VcIDsKK+aciOebuCA8IGdlc3NvdVwgOwor6Z2S6be6IDwgYW9zYWdpXCA7CivlrablvpIgPCBnYWt1dG9cIDsKK+acieebiiA8IHl1dWVraVwgOwor5LuK5pmpIDwga29uYmFuXCA7Civlr5LliaQgPCBrYW56YWlcIDsKK+izouaFriA8IGtlbnJ5b1wgOwor5LiL57W1IDwgc2hpdGFlXCA7CivorpLoqIAgPCB6YW5nZW5cIDsKK+i1puWFjSA8IHNoYW1lblwgOwor5LqI5risIDwgeW9zb2t1XCA7CivpoqjnkLQgPCBmdXVraW5cIDsKK+S4iee1hCA8IG1pa3VtaVwgOwor5LiJ57WDIDwgc2FuZ2VuXCA7CivkuIrntI0gPCBqb3Vub3VcIDsKK+eOi+eJqSA8IG91bW9ub1wgOwor5LiA57i3IDwgaWNoaXJ1XCA7CivkuozmtYEgPCBuaXJ5dXVcIDsKK+a1t+iAgeiMtiA8IGViaWNoYVwgOwor6IGW5patIDwgc2VpZGFuXCA7CivkvanliaMgPCBoYWlrZW5cIDsKK+S6uuadkCA8IGppbnphaVwgOwor5pyq54afIDwgbWlqdWt1XCA7CivkuIrnsbMgPCBqb3VtYWlcIDsKK+S4reegtCA8IGNodXVoYVwgOwor5Lq65pybIDwgamluYm91XCA7Civlr6HkvZwgPCBrYXNha3VcIDsKK+S4reegpSA8IG5ha2F0b1wgOwor6aKv54i9IDwgc2Fzc291XCA7Civlrp/lnLAgPCBqaXRjaGlcIDsKK+iDjOWaoiA8IGhhaW5vdVwgOwor6LOm5b25IDwgYnV5YWt1XCA7CivmnInnlKggPCB5dXV5b3VcIDsKK+acieeUoyA8IHl1dXNhblwgOwor5pyI55SjIDwgZ2Vzc2FuXCA7CivkvI/lsYsgPCBmdXNleWFcIDsKK+mYv+Wqvea4ryA8IGFtYWtvdVwgOwor5p2R5rCRIDwgc29ubWluXCA7CivnkIPmioAgPCBreXV1Z2lcIDsKK+aemuaMmSA8IG1haWt5b1wgOwor5pel6aCDIDwgaGlnb3JvXCA7CivkuIvnrZYgPCBnZXNha3VcIDsKK+mdkumuqyA8IGFvemFtZVwgOwor5a2X5byVIDwgamliaWtpXCA7CivkvY7lkJ8gPCB0ZWlnaW5cIDsKK+S9leWNgyA8IG5hbnplblwgOwor5L2V5Y2BIDwgbmFuanV1XCA7CivppqzlipsgPCBiYXJpa2lcIDsKK+WtmOW7gyA8IHpvbnBhaVwgOwor56OB5pa55L2NIDwgamlob3VpXCA7CivkuInnrYkgPCBzYW50b3VcIDsKK+S4gOexjCA8IGl0Y2h1dVwgOwor5a2Q5b25IDwga295YWt1XCA7CivkvI/lrZcgPCBmdXNlamlcIDsKK+iAkOawtCA8IHRhaXN1aVwgOwor5LiK56uvIDwgam91dGFuXCA7Civpp4TkvZwgPCBkYXNha3VcIDsKK+S4ueeUsCA8IHRhbmRlblwgOwor6aeF5LydIDwgZWtpZGVuXCA7CivlrZfluZUgPCBqaW1ha3VcIDsKK+S4h+erryA8IGJhbnRhblwgOwor5LiK56m6IDwgam91a3V1XCA7CivnjbDnjJsgPCBuZWltb3VcIDsKK+eJh+mbsiA8IGhlbicndW5cIDsKK+eLrOiLsSA8IGRva3VlaVwgOwor5pel6ZuAIDwgaGlnYXJhXCA7CivpoYznsL0gPCBkYWlzZW5cIDsKK+WvhuWBtSA8IG1pdHRlaVwgOwor6aC757mBIDwgaGlucGFuXCA7CivkuIDnrZYgPCBpc3Nha3VcIDsKK+S9leWIhiA8IG5hbnB1blwgOwor54m96YCjIDwga2VucmVuXCA7CivlravlrZAgPCBtYWdva29cIDsKK+S4ieeoriA8IHNhbnNodVwgOwor5LiK56iLIDwgam91dGVpXCA7Civml6XpmbAgPCBoaWthZ2VcIDsKK+mmrOWFiyA8IG1hcnVrdVwgOwor5a6Y5Za2IDwga2FuJydlaVwgOwor576955SwIDwgaGFuZWRhXCA7CivkuIDnrJEgPCBpc3Nob3VcIDsKK+mdoumgrCA8IG1lbnBvb1wgOwor5pel6ZmQIDwgaGlnaXJpXCA7CivkuKHnm64gPCByeW91bWVcIDsKK+acrOa6kCA8IGhvbmdlblwgOwor6IKJ5bGLIDwgbmlrdXlhXCA7Civlp6boqIggPCBrYW5rZWlcIDsKK+mdmemkiiA8IHNlaXlvdVwgOwor6LKh5pS/IDwgemFpc2VpXCA7CivlraTlrqIgPCBrb2tha3VcIDsKK+S7pOW8nyA8IHJlaXRlaVwgOwor5qCq5L6hIDwga2FidWthXCA7CivkuK3nlJ8gPCBuYWthdGVcIDsKK+eLrOiHqiA8IGRva3VqaVwgOwor5Luj5byBIDwgZGFpYmVuXCA7Civlr4bkvb8gPCBtaXNzaGlcIDsKK+WutuWFgyA8IGllbW90b1wgOwor54mn6YeOIDwgYm9rdXlhXCA7CivpnaLpnaIgPCBtZW5tZW5cIDsKK+S6i+alrSA8IGppZ3lvdVwgOwor5LiB56iaIDwgZGV0Y2hpXCA7CivmnaXmm7ggPCByYWlzaG9cIDsKK+aXpemVtyA8IGhpbmFnYVwgOwor5LqU5qGBIDwgZ29rZXRhXCA7CivkvJrloIIgPCBrYWlkb3VcIDsKK+WvhuS8miA8IG1pa2thaVwgOwor6LOK5b6SIDwgem9rdXRvXCA7CivnjKvnp5EgPCBuZWtva2FcIDsKK+aXhemkqCA8IHJ5b2thblwgOwor5Lu75a6YIDwgbmlua2FuXCA7CivlrZ/lrZAgPCBtb3VzaGlcIDsKK+e+pOebsiA8IGd1bm1vdVwgOwor5piP6L+3IDwga29ubWVpXCA7CivkubPmr40gPCBueXV1Ym9cIDsKK+S7luW/gyA8IHRhc2hpblwgOwor5L2P5YOnIDwganV1c291XCA7CivkuIDnpaggPCBpcHB5b3VcIDsKK+mNm+WGtuWxiyA8IGthaml5YVwgOwor5p+75Y+OIDwgc2FzaHV1XCA7CivkuozmoLggPCBuaWtha3VcIDsKK+Wun+WLoiA8IGppc3NlaVwgOwor5Luu5bGLIDwga2FyaXlhXCA7CivkvZ7kurogPCBuZWlqaW5cIDsKK+acq+azlSA8IG1hcHBvdVwgOwor5p2l5pa5IDwga2lrYXRhXCA7Civpo7LmlpkgPCBpbnJ5b3VcIDsKK+WumOWNsCA8IGthbicnaW5cIDsKK+S6uuaJiyA8IGhpdG9kZVwgOwor5pu454q2IDwgc2hvam91XCA7Civku67lr50gPCBrYXJpbmVcIDsKK+WtlOWtnyA8IGtvdW1vdVwgOwor5Luu5a62IDwga2FyaWllXCA7Civku4HmhJsgPCBqaW4nJ2FpXCA7CivlpKfpuqYgPCBvb211Z2lcIDsKK+eLree+qSA8IGt5b3VnaVwgOwor6Kyd6YeRIDwgc2hha2luXCA7CivlrZDlroggPCBrb21vcmlcIDsKK+Wuv+S4liA8IHN1a3VzZVwgOwor5aWu6ZeYIDwgZnVudG91XCA7Civlrpfli5kgPCBzaHV1bXVcIDsKK+WpmuekvCA8IGtvbnJlaVwgOwor5pys5q6/IDwgaG9uZGVuXCA7CivnjJvnpr0gPCBtb3VraW5cIDsKK+S7geaBtSA8IGppbmtlaVwgOwor5LqU5pelIDwgaXRzdWthXCA7Civmmbrog70gPCBjaGlub3VcIDsKK+S4gOeerCA8IGlzc2h1blwgOwor6aKo5rSeIDwgZnV1ZG91XCA7CivmlqzpppYgPCB6YW5zaHVcIDsKK+aXpemKrSA8IGhpemVuaVwgOwor5pys5qyEIDwgaG9ucmFuXCA7Civku4/luKsgPCBidXNzaGlcIDsKK+WutuS4piA8IHlhbmFtaVwgOwor6LGK5rC0IDwgaG91c3VpXCA7CivkuIHnm64gPCBjaG91bWVcIDsKK+S7pOWtqyA8IHJlaXNvblwgOwor5LuP5belIDwgYnVra291XCA7Civloanln7rluqYgPCBlbmtpZG9cIDsKK+iCieWhiiA8IG5pa2thaVwgOwor5pqu56eLIDwgYm9zaHV1XCA7CivmmbrogIUgPCBjaGlzaGFcIDsKK+aWuemdoiA8IGhvdW1lblwgOwor5a2Y5aSWIDwgem9uZ2FpXCA7Civnvo7nmoQgPCBiaXRla2lcIDsKK+S8tuWEqiA8IHJlaXl1dVwgOwor55+i57695qC5IDwgeWFiYW5lXCA7CivkuZfmsJcgPCBub3Jpa2lcIDsKK+S4iueVqiA8IGpvdWJhblwgOwor6aKo5rC0IDwgZnV1c3VpXCA7Civku5jlsZ4gPCBmdXpva3VcIDsKK+S4ieeVqiA8IHNhbmJhblwgOwor5a2m5ZySIDwgZ2FrdWVuXCA7CivorJnpgZwgPCBrZW5zb25cIDsKK+S4iueUsCA8IGpvdWRlblwgOwor5aSc6be5IDwgeW90YWthXCA7CivotIjlkYggPCB6b3V0ZWlcIDsKK+irlumhjCA8IHJvbmRhaVwgOwor5Lya5ZCIIDwga2FpZ291XCA7CivnkIblraYgPCByaWdha3VcIDsKK+aXp+mDvSA8IGt5dXV0b1wgOwor6LSI5Y+3IDwgem91Z291XCA7CivkuK3ngasgPCBjaHV1YmlcIDsKK+S8neWNmCA8IGRlbnRhblwgOwor5a6j5LydIDwgc2VuZGVuXCA7CivotIvljbAgPCBuaXNlaW5cIDsKK+iDjOS7uyA8IGhhaW5pblwgOwor57+75qGIIDwgaG9uJydhblwgOwor546L5qeYIDwgb3VzYW1hXCA7Civku7vlnLAgPCBuaW5jaGlcIDsKK+S4gOeWiyA8IGlwcGlraVwgOwor6ICB5p2lIDwgcm91cmFpXCA7Civku5blrpcgPCB0YXNodXVcIDsKK+iAgeadiSA8IHJvdXNhblwgOwor5a6M5YWoIDwga2FuemVuXCA7Civmlq3pnaIgPCBkYW5tZW5cIDsKK+S7pOWmuSA8IHJlaW1haVwgOwor5aSc6bOlIDwgeWFjaG91XCA7CivnjJvnnIEgPCBtb3VzZWlcIDsKK+aflOWSjCA8IG55dXV3YVwgOwor5a6a5L6LIDwgdGVpcmVpXCA7Civnj77lrZggPCBnZW56b25cIDsKK+S5seadrSA8IHJhbmd1aVwgOwor5Ly05L62IDwgaGFucnlvXCA7CivlrprkvY8gPCB0ZWlqdXVcIDsKK+WuiOWFtSA8IHNodWhlaVwgOwor6IOM5LitIDwgc2VuYWthXCA7CivnibnoqLEgPCB0b2treW9cIDsKK+WtmOWcqCA8IHNvbnphaVwgOwor6IOM5LiIIDwgc2V0YWtlXCA7CivnibnoqJMgPCB0b2trdW5cIDsKK+eIhumfsyA8IGJha3VvblwgOwor5LiL542EIDwgZ2Vnb2t1XCA7Civku4rlsJogPCBpbWFuYW9cIDsKK+S6uuW3pSA8IGppbmtvdVwgOwor5Lmx5pq0IDwgcmFuYm91XCA7CivmnJvmqJMgPCBib3Vyb3VcIDsKK+S4ieeMvyA8IG1pemFydVwgOwor6KuW6ZmjIDwgcm9uamluXCA7CivkvLbkurogPCByZWlqaW5cIDsKK+isueiogCA8IGtpbmdlblwgOwor5pyx5pu4IDwgc2h1c2hvXCA7CivppKjlqIMgPCBrYW4nJ2FpXCA7CivniYfovKogPCBrYXRhd2FcIDsKK+WuieWApCA8IHlhc3VuZVwgOwor5pys5p2lIDwgaG9ucmFpXCA7CivmmI7oqIAgPCBtZWlnZW5cIDsKK+e/sOaelyA8IGthbnJpblwgOwor5Luk5aCCIDwgcmVpZG91XCA7CivkuIfnirYgPCBiYW5qb3VcIDsKK+Wul+S4uyA8IHNvdXNodVwgOwor6ZyK6a2CIDwgcmVpa29uXCA7CivmnKzmnKggPCBtb3Rva2lcIDsKK+acrOacmyA8IGhvbm1vdVwgOwor572555eFIDwgcmlieW91XCA7CivpoZjnirYgPCBnYW5qb3VcIDsKK+acq+acqyA8IHN1ZXp1ZVwgOwor55m+5ZCI5qC5IDwgeXVyaW5lXCA7CivlrZDlmqIgPCBzaGlub3VcIDsKK+S6jOaJiyA8IGZ1dGF0ZVwgOwor5Lmx5pWwIDwgcmFuc3V1XCA7CivmmKXompUgPCBoYXJ1Z29cIDsKK+acqOacqyA8IGtvbnVyZVwgOwor6IKM5ZCIIDwgaGFkYWFpXCA7CivnjovmnJ0gPCBvdWNob3VcIDsKK+mbt+mztCA8IHJhaW1laVwgOwor5Lu75ZG9IDwgbmlubWVpXCA7Civku4Dlrp0gPCBqdXVob3VcIDsKK+S6uuWxiyA8IGhpdG95YVwgOwor5pym5pynIDwgbW91cm91XCA7CivmnKbmnKYgPCBtb3Vtb3VcIDsKK+S4rea0siA8IG5ha2FzdVwgOwor6LOb5ZiGIDwgc2FudGFuXCA7Civml6XotrMgPCBoaWFzaGlcIDsKK+aWnOmZvSA8IHNoYXlvdVwgOwor5aSn6aKoIDwgb29rYXplXCA7CivlparpgoQgPCBkYWtrYW5cIDsKK+mfs+e3oCA8IG5lamltZVwgOwor5aSp6aGUIDwgdGVuZ2FuXCA7CivnianoposgPCBtb25vbWlcIDsKK+mYv+e+hea8oiA8IGFyYWthblwgOwor5a2m5YuZIDwgZ2FrdW11XCA7Civmm7/mrYwgPCBrYWV1dGFcIDsKK+WtmOWRvSA8IHpvbm1laVwgOwor5aWu6L+FIDwgZnVuamluXCA7Civos63ljZogPCB0b2Jha3VcIDsKK+adieaIuCA8IHN1Z2lkb1wgOwor6LKn5a+SIDwgaGlua2FuXCA7CivmnInmp5ggPCBhcml5b3VcIDsKK+acrOaWhyA8IGhvbm1vblwgOwor5p2l5bqXIDwgcmFpdGVuXCA7CivmnKzmlbAgPCBob25zdXVcIDsKK+aWp+mRvyA8IGZ1c2FrdVwgOwor5p2l5bm0IDwgcmFpbmVuXCA7CivmlofpoYwgPCBidW5kYWlcIDsKK+eOi+aXjyA8IG91em9rdVwgOwor5LqU5b6zIDwgZ290b2t1XCA7CivkuIfngrkgPCBtYW50ZW5cIDsKK+S7iuWknCA8IGtvbicneWFcIDsKK+S4reawlyA8IGNodXVraVwgOwor5Lyd5LukIDwgZGVucmVpXCA7Civku4/loZQgPCBidXR0b3VcIDsKK+mcnOmbsCA8IHNvdWZ1blwgOwor6aCt55ebIDwgenV0c3V1XCA7CivkuLvmqKkgPCBzaHVrZW5cIDsKK+mbt+mtmiA8IHJhaWd5b1wgOwor5LiH54GvIDwgbWFuZG91XCA7CivosqHlrp0gPCB6YWlob3VcIDsKK+WknOmiqCA8IHlva2F6ZVwgOwor6LKq5amqIDwgZG9ucmFuXCA7CivkvJDlgJIgPCBiYXR0b3VcIDsKK+mHjui3r+WtkCA8IG5vamlrb1wgOwor54++5ZywIDwgZ2VuY2hpXCA7CivnjJvniqwgPCBtb3VrZW5cIDsKK+WkqembtyA8IHRlbnJhaVwgOwor5pyd5pmpIDwgYXNhYmFuXCA7Civku5blm70gPCB0YWtva3VcIDsKK+S7ruWQjSA8IGtlbXlvdVwgOwor6aKo5pmvIDwgZnV1a2VpXCA7Civoq5bpi5IgPCByb25wb3VcIDsKK+aWh+mdoiA8IGJ1bm1lblwgOwor5LyO5YCGIDwgZ2lyeW91XCA7CivppIPlrZAgPCBneW91emFcIDsKK+WtpuWFhCA8IGdha2tlaVwgOwor54qv572qIDwgaGFuemFpXCA7CivlpKfpm6MgPCB0YWluYW5cIDsKK+S4reaspyA8IGNodXVvdVwgOwor5Lyd5LiWIDwgZGVuc2VpXCA7CivlpJrpoY0gPCB0YWdha3VcIDsKK+WkqemZuiA8IHRlbmtlblwgOwor5Lya5Li7IDwga2Fpc2h1XCA7CivmnbHlrq4gPCB0b3VndXVcIDsKK+iBluWfnyA8IHNlaWlraVwgOwor5Luj5ZOBIDwgZGFpaGluXCA7CivpoJPnn6UgPCB0b25jaGlcIDsKK+WklemhlCA8IHl1dWdhb1wgOwor5Lmx5oimIDwgcmFuc2VuXCA7CivogIPmha4gPCBrb3VyeW9cIDsKK+S7i+WcqCA8IGthaXphaVwgOwor5pW06aKoIDwgc2VpZnV1XCA7Civku7vlhY0gPCBuaW5tZW5cIDsKK+WtmOWIhiA8IHpvbmJ1blwgOwor5Luk5ZCNIDwgcmVpbWVpXCA7Civpo7LlsYsgPCBub21peWFcIDsKK+S6uuWkliA8IG5pbmdhaVwgOwor5pan6YmeIDwgZnVldHN1XCA7CivlpJzpnKcgPCB5b2dpcmlcIDsKK+eMm+eEtiA8IG1vdXplblwgOwor5Lq65aOrIDwgamluc2hpXCA7CivpnaLosowgPCBtZW5ib3VcIDsKK+iyqeWjsiA8IGhhbmJhaVwgOwor5Li75qC5IDwgc2h1a29uXCA7CivlpKfplqIgPCBvb3pla2lcIDsKK+aXp+ipoCA8IGt5dXVlaVwgOwor5LuK5ZueIDwga29ua2FpXCA7Civml6XoqowgPCBuaXNzaGlcIDsKK+aXqeioiCA8IHNvdWtlaVwgOwor5Luj5Y+CIDwgZGFpc2FuXCA7CivlpKfploAgPCBkYWltb25cIDsKK+acrOaLoCA8IGhvbmt5b1wgOwor5pyJ5pybIDwgeXV1Ym91XCA7CivmlbTpoJMgPCBzZWl0b25cIDsKK+aXp+iomCA8IGt5dXVraVwgOwor5aaE6KiAIDwgbW91Z2VuXCA7Civml4Xot68gPCB0YWJpamlcIDsKK+ixquW/qyA8IGdvdWthaVwgOwor5pep6KaLIDwgaGF5YW1pXCA7Civpm7vpoZUgPCBkZW5rZW5cIDsKK+WklumbuyA8IGdhaWRlblwgOwor5p2/5aGAIDwgaXRhYmVpXCA7CivniYfoqIAgPCBoZW5nZW5cIDsKK+e9queKtiA8IHphaWpvdVwgOwor546p5byEIDwgZ2Fucm91XCA7CivlpYnpgbcgPCBob3VzZW5cIDsKK+acrOaHkCA8IGhvbmthaVwgOwor5Li55pyxIDwgdGFuc2h1XCA7CivkuLjmnKggPCBtYXJ1a2lcIDsKK+WtpuS6iyA8IGdha3VqaVwgOwor5pyI5pemIDwgZ2V0dGFuXCA7CivlpJzplbcgPCB5b25hZ2FcIDsKK+mdouirhyA8IG1lbmRhblwgOwor5aWJ6L+OIDwgaG91Z2VpXCA7CivmnInmlbAgPCB5dXVzdXVcIDsKK+WqkuafkyA8IGJhaXNlblwgOwor57mB6ZaRIDwgaGFua2FuXCA7Civku7LlgKQgPCBuYWthbmVcIDsKK+S4iuawtCA8IGpvdXN1aVwgOwor6KqY6Zu7IDwgeXV1ZGVuXCA7CivmmbTnnYAgPCBoYXJlZ2lcIDsKK+e9sOeCuSA8IGJhdHRlblwgOwor5aSn6Y6MIDwgb29nYW1hXCA7CivkuqHlprsgPCBib3VzYWlcIDsKK+mdkuixhiA8IGFvbWFtZVwgOwor6LKn5ZuwIDwgaGlua29uXCA7Civku7Lkv50gPCBjaHV1aG9cIDsKK+ePjeWlhyA8IGNoaW5raVwgOwor5aSn6Y2LIDwgb29uYWJlXCA7CivmnIDml6kgPCBtb2hheWFcIDsKK+S4h+awkSA8IGJhbm1pblwgOwor5LmX5omLIDwgbm9yaXRlXCA7Civku4/lj4IgPCBidXNzYW5cIDsKK+S4gOaziiA8IGlwcGFrdVwgOwor5Li75paHIDwgc2h1YnVuXCA7Civnj77li6IgPCBnZW5zZWlcIDsKK+iAgeW5vCA8IHJvdXlvdVwgOwor6ICB5bm0IDwgcm91bmVuXCA7CivkuInmrbsgPCBzYW5zaGlcIDsKK+S7luWKmyA8IHRhcmlraVwgOwor5pys5oCnIDwgaG9uc2VpXCA7Civnv7vlvIQgPCBob25yb3VcIDsKK+iyoeWboyA8IHphaWRhblwgOwor6KqM6Z2iIDwgc2hpbWVuXCA7CivkuIfmrbsgPCBiYW5zaGlcIDsKK+S4h+atsyA8IG1hbnphaVwgOwor5a2Q5L6bIDwga29kb21vXCA7CivlrZjkuqEgPCBzb25ib3VcIDsKK+S6jOWtkCA8IGZ1dGFnb1wgOwor5Zyf5LiL5bqnIDwgZG9nZXphXCA7CivpoIbnlaogPCBqdW5iYW5cIDsKK+mbsumbhiA8IHVuc2h1dVwgOwor6Zuy6ZuAIDwgaGliYXJpXCA7Civnj77liY0gPCBnZW56ZW5cIDsKK+S7i+WNtSA8IGthaXJhblwgOwor5aSn6YmIIDwgb29uYXRhXCA7Civpm6PpoYwgPCBuYW5kYWlcIDsKK+acrOW9sSA8IGhvbicnZWlcIDsKK+S4puacqCA8IG5hbWlraVwgOwor5pac6L66IDwgc2hhaGVuXCA7Civos6LkuLsgPCBrZW5zaHVcIDsKK+abuOaWjiA8IHNob3NhaVwgOwor576K5q+bIDwgeW91bW91XCA7CivlpKfph5EgPCB0YWlraW5cIDsKK+S7geWQmyA8IGppbmt1blwgOwor5LiN5qeYIDwgYnV6YW1hXCA7Civkurrlk6EgPCBqaW4nJ2luXCA7CivkuK3ml6UgPCBuYWthYmlcIDsKK+acq+W8nyA8IG1hdHRlaVwgOwor5Lq65ZOBIDwgamlucGluXCA7CivkuInmqKkgPCBzYW5rZW5cIDsKK+S4gOasoSA8IGljaGlqaVwgOwor54ax6aKoIDwgbmVwcHV1XCA7CivkuIrmp5ggPCB1ZXphbWFcIDsKK+Wkp+mFkiA8IG9vemFrZVwgOwor5Lq65ZG9IDwgamlubWVpXCA7CivnuKbpmaMgPCBqdXVqaW5cIDsKK+WrgeW+oSA8IHlvbWVnb1wgOwor6LOe5LiOIDwgc2hvdXlvXCA7CivmnKzlupcgPCBob250ZW5cIDsKK+mbsumWkyA8IGt1bW9tYVwgOwor5aeL57WCIDwgc2hpanV1XCA7Civoq5bos5sgPCByb25zYW5cIDsKK+S7j+WFuCA8IGJ1dHRlblwgOwor5LiJ5qWtIDwgc2FuZ291XCA7Civku6Pku7sgPCBkYWluaW5cIDsKK+e+qOacmyA8IHNlbmJvdVwgOwor6Kmm6aiTIDwgc2hpa2VuXCA7CivkuJbmn4QgPCB5b2dhcmFcIDsKK+iqnumMsiA8IGdvcm9rdVwgOwor5aSp6YGTIDwgdGVuZG91XCA7Civkurrlj4IgPCBuaW5qaW5cIDsKK+WkqemBiyA8IHRlbicndW5cIDsKK+S4gOaouSA8IGljaGlqdVwgOwor5LuK5YasIDwga29udG91XCA7CivlpKfpgZMgPCBkYWlkb3VcIDsKK+aFsOWuieiAhSA8IGlhbnNoYVwgOwor6Zui6ZqUIDwgcmlrYWt1XCA7CivmmrTmsJEgPCBib3VtaW5cIDsKK+mboumZuCA8IHJpcmlrdVwgOwor6ICB5a6zIDwgcm91Z2FpXCA7CivmlofpgbggPCBidW5zZW5cIDsKK+acqOW3pSA8IG1va2tvdVwgOwor5Lmx5bCEIDwgcmFuc2hhXCA7CivlpKnovrogPCB0ZXBwZW5cIDsKK+iyrOWLmSA8IHNla2ltdVwgOwor5paH6YGLIDwgYnVuJyd1blwgOwor5peF6KOFIDwgcnlvc291XCA7CivmlrnoqIAgPCBob3VnZW5cIDsKK+S4ieahgSA8IG1pa2V0YVwgOwor6ICB5ayiIDwgcm91am91XCA7CivogZblg48gPCBzZWl6b3VcIDsKK+aXheihjCA8IHJ5b2tvdVwgOwor6Zuj6ZaiIDwgbmFua2FuXCA7CivmlrDoqp4gPCBzaGluZ29cIDsKK+Wkp+i8qiA8IHRhaXJpblwgOwor5pys5bGxIDwgaG9uemFuXCA7CivlpKnou40gPCB0ZW5ndW5cIDsKK+S4ieaemiA8IHNhbm1haVwgOwor5p2/5YmNIDwgaXRhbWFlXCA7Civnj77ku6MgPCBnZW5kYWlcIDsKK+mgu+atuyA8IGhpbnNoaVwgOwor5pys5bGLIDwgaG9uJyd5YVwgOwor5LiJ5p2/IDwgc2FucGFuXCA7CivpoZ7mnKwgPCBydWlob25cIDsKK+WjsOmWgCA8IHNlaW1vblwgOwor54++5LuKIDwgZ2Vua29uXCA7Civkuqvlj5cgPCBreW91anVcIDsKK+miqOW4qyA8IGZ1dXNoaVwgOwor6aGe5pu4IDwgcnVpc2hvXCA7CivmnKzlsIogPCBob256b25cIDsKK+S4iuacnyA8IGthbWlraVwgOwor54ax6ZeYIDwgbmV0dG91XCA7Civnj43lkbMgPCBjaGlubWlcIDsKK+abuOaIvyA8IHNob2JvdVwgOwor5LiA5qGIIDwgaWNoaWFuXCA7CivkuInmnKwgPCBzYW5ib25cIDsKK+mkiuWIhiA8IHlvdWJ1blwgOwor6LGq5aWiIDwgZ291c2hhXCA7CivmlLnpoYwgPCBrYWlkYWlcIDsKK+S4iuabuCA8IGpvdXNob1wgOwor5pyo5bGRIDwga2lrdXp1XCA7Civku4/kvJogPCBidXRzdWVcIDsKK+S6oeWRvSA8IGJvdW1laVwgOwor5pat6KiAIDwgZGFuZ2VuXCA7CivlpJbpgYogPCBnYWl5dXVcIDsKK+eOieWxiyA8IHRhbWF5YVwgOwor5LuV5LiKIDwgc2hpYWdlXCA7CivpoZjmnJsgPCBnYW5tb3VcIDsKK+eIrOiZqyA8IGhhY2h1dVwgOwor54yu5pysIDwga2VucG9uXCA7CivmnIDmgqogPCBzYWlha3VcIDsKK+eLrOa8lCA8IGRva3VlblwgOwor6aGY5pu4IDwgZ2Fuc2hvXCA7CivmnKvlrasgPCBtYXNzb25cIDsKK+aal+a1gSA8IGFucnl1dVwgOwor5pyr5a2QIDwgbWFzc2hpXCA7Civnv6DltZAgPCBzdWlyYW5cIDsKK+mjn+WZqCA8IHNob2traVwgOwor5aSn6LazIDwgb29hc2hpXCA7CivkuqHlj4sgPCBib3V5dXVcIDsKK+S7iuS7iiA8IGltYWltYVwgOwor5LuK5Lq6IDwga29uamluXCA7CivogZbkurogPCBzZWlqaW5cIDsKK+eNo+aApyA8IGp1dXNlaVwgOwor6Zuy6YePIDwgdW5yeW91XCA7CivkuIrml6wgPCBqb3VqdW5cIDsKK+S4gOacnSA8IGl0Y2hvdVwgOwor5aSi6LevIDwgeXVtZWppXCA7CivkuIDmnI0gPCBpcHB1a3VcIDsKK+irh+irliA8IGRhbnJvblwgOwor5Lih5ouzIDwgamFua2VuXCA7Civpo6/lj7AgPCBoYW5kYWlcIDsKK+aXpeiIqiA8IG5pa2tvdVwgOwor57235qWtIDwgaGlneW91XCA7CivkurrlgY8gPCBuaW5iZW5cIDsKK+Wklui8qiA8IGdhaXJpblwgOwor5aSp6LOcIDwgdGVuc2hpXCA7CivkuInmlrkgPCBzYW5wb3VcIDsKK+mdkuiXjSA8IHNlaXJhblwgOwor6Z+y54mpIDwgYWVtb25vXCA7CivkuLvlvpMgPCBzaHVqdXVcIDsKK+aWreijgSA8IGRhbnNhaVwgOwor5Lq65YCrIDwgamlucmluXCA7Civoq4voqJMgPCBzZWlrdW5cIDsKK+eMpeacrCA8IHdhaWhvblwgOwor5Lm+5Z2kIDwga2Vua29uXCA7CivkubHlo7IgPCByYW5iYWlcIDsKK+WkiemBtyA8IGhlbnNlblwgOwor6aGM5p2QIDwgZGFpemFpXCA7CivlpJbou4ogPCBnYWlzaGFcIDsKK+S4oeaJiyA8IHJ5b3V0ZVwgOwor5LiD5pelIDwgbmFub2thXCA7CivlpInpgKAgPCBoZW56b3VcIDsKK+mhmOaWhyA8IGdhbm1vblwgOwor5aWJ6KGMIDwgYnVneW91XCA7Civku4HkurogPCBqaW5qaW5cIDsKK+acrOWmuyA8IGhvbnNhaVwgOwor6aKo5a6zIDwgZnV1Z2FpXCA7Civlq4nlpqwgPCBzaGl0dG9cIDsKK+isnee9qiA8IHNoYXphaVwgOwor5Lq65L2TIDwgbmludGVpXCA7CivmlofosaogPCBidW5nb3VcIDsKK+aWveiWrCA8IHNleWFrdVwgOwor5pac6KaWIDwgc2hhc2hpXCA7CivmlbDou5IgPCBzdXVrZW5cIDsKK+e9qualrSA8IHphaWdvdVwgOwor6Zu76LuKIDwgZGVuc2hhXCA7CivpoZ7mjqggPCBydWlzdWlcIDsKK+Wkiei7oiA8IGhlbnRlblwgOwor5LiA5pOyIDwgaXR0ZWtpXCA7CivnjJvmmpEgPCBtb3VzaG9cIDsKK+iruOiKuCA8IHNob2dlaVwgOwor5LqI5ZGKIDwgeW9rb2t1XCA7Civmm7jlupcgPCBzaG90ZW5cIDsKK+acrOWhgSA8IGhvbnJ1aVwgOwor54e76KO9IDwga3Vuc2VpXCA7Civpm6Lpg7cgPCByaWt5b3VcIDsKK+e1teaXpeiomCA8IGVuaWtraVwgOwor6Z2S6I2JIDwgYW9rdXNhXCA7CivlpJbosowgPCBnYWlib3VcIDsKK+S4reW6pyA8IGNodXV6YVwgOwor572w5p2vIDwgYmFwcGFpXCA7CivpoLjmnKggPCBrdWJpa2lcIDsKK+S5meWknCA8IG90c3V5YVwgOwor6aCT5q27IDwgdG9uc2hpXCA7CivmmKXnnYAgPCBoYXJ1Z2lcIDsKK+e3qOmaiiA8IGhlbnRhaVwgOwor6Kqt6KqmIDwgZG9rdWp1XCA7CivkuqzkurogPCBrZWlqaW5cIDsKK+eMm+aUuyA8IG1vdWtvdVwgOwor5LqM5YmyIDwgbml3YXJpXCA7CivmnKjlnosgPCBraWdhdGFcIDsKK+acm+WkliA8IGJvdWdhaVwgOwor5pqu5pilIDwgYm9zaHVuXCA7CivkuLvlsI4gPCBzaHVkb3VcIDsKK+Wor+alvSA8IGdvcmFrdVwgOwor6ZmA576F5bC8IDwgZGFyYW5pXCA7CivmmrTmlL8gPCBib3VzZWlcIDsKK+iqpOisrCA8IGdvYnl1dVwgOwor5LqA5Y2cIDwga2lib2t1XCA7Civoqq3op6MgPCBkb2trYWlcIDsKK+S4u+WusCA8IHNodXNhaVwgOwor546L5Zu9IDwgb3Vrb2t1XCA7CivlpJroqq0gPCB0YWRva3VcIDsKK+S5l+WgtCA8IG5vcmliYVwgOwor5aSi6KaLIDwgeXVtZW1pXCA7CivkuKHluqYgPCByeW91ZG9cIDsKK+mgu+aVsCA8IGhpbnN1dVwgOwor6Kqk6KqtIDwgZ29kb2t1XCA7CivmmabmuIsgPCBrYWlqdXVcIDsKK+S4jeaDkSA8IGZ1d2FrdVwgOwor5pWX6LuNIDwgaGFpZ3VuXCA7CivmnaXkvJogPCByYWlrYWlcIDsKK+S4gOaJiyA8IGhpdG90ZVwgOwor576F5pa55L2NIDwgcmFob3VpXCA7CivmnaXku7sgPCByYWluaW5cIDsKK+abvuWtqyA8IGhpbWFnb1wgOwor6Kqk6KizIDwgZ295YWt1XCA7CivmnJfloLEgPCByb3Vob3VcIDsKK+WkmuinkiA8IHRha2FrdVwgOwor5LiH5oSfIDwgYmFua2FuXCA7CivlpYjokL0gPCBuYXJha3VcIDsKK+WknOilsiA8IHlhc2h1dVwgOwor54qg54mbIDwgZ2lneXV1XCA7CivmmKXnlLsgPCBzaHVuZ2FcIDsKK+adoeS7tiA8IGpvdWtlblwgOwor5pWj6LKhIDwgc2FuemFpXCA7Civpmo/poIYgPCB6dWlqdW5cIDsKK+adpeS4liA8IHJhaXNlaVwgOwor57im6LKrIDwganV1a2FuXCA7CivkuI3lvrMgPCBmdXRva3VcIDsKK+e3kembqCA8IHJ5b2t1dVwgOwor5aSW6KaLIDwgc290b21pXCA7CivmmI/nnaEgPCBrb25zdWlcIDsKK+ipqemBuCA8IHNoaXNlblwgOwor6Z2i57mLIDwgb21vZ2FpXCA7CivmlrDoir0gPCBzaGlubWVcIDsKK+aVsOipniA8IHN1dXNoaVwgOwor5piO55y4IDwgbWVpYm91XCA7CivpoK3mlbAgPCB0b3VzdXVcIDsKK+aatOaMmSA8IGJvdWt5b1wgOwor6ZqU6ZuiIDwga2FrdXJpXCA7CivmnKzlkb0gPCBob25tZWlcIDsKK+mhnuW9oiA8IHJ1aWtlaVwgOwor5Lit5a2QIDwgbmFrYWdvXCA7Civmm7PlrZAgPCBoaWtpa29cIDsKK+WkqeialSA8IHRlbnNhblwgOwor5aWz57WmIDwgam9reXV1XCA7Civpm7vop6MgPCBkZW5rYWlcIDsKK+aciOWgsSA8IGdlcHBvdVwgOwor5pyA5aSnIDwgc2FpZGFpXCA7Civnh7vokrggPCBrdW5qb3VcIDsKK+S6keS6kSA8IHVuJydudW5cIDsKK+mamemWkyA8IHN1a2ltYVwgOwor5pyA5aSWIDwgc2FpZ2FpXCA7CivmlLnpgKAgPCBrYWl6b3VcIDsKK+Wkp+iZjiA8IG9vZG9yYVwgOwor6Zm16aeVIDwgcnlvdWdhXCA7Civlo7LosrcgPCBiYWliYWlcIDsKK+S4uOWkqiA8IG1hcnV0YVwgOwor5p2R5LyaIDwgc29ua2FpXCA7Civnvo7lvrMgPCBiaXRva3VcIDsKK+acquWPjiA8IG1pc2h1dVwgOwor5LiA5b+cIDwgaWNoaW91XCA7CivmnI3lnLAgPCBmdWt1amlcIDsKK+isneekvCA8IHNoYXJlaVwgOwor5pyo5Y+iIDwga29tdXJhXCA7CivkuIDlvrMgPCBpdHRva3VcIDsKK+S6jOS6uiA8IGZ1dGFyaVwgOwor6ICB5YW1IDwgcm91aGVpXCA7CivnjYTlsYsgPCBnb2t1eWFcIDsKK+eFjumkhSA8IHNlbmJlaVwgOwor5LiK5bivIDwgdXdhb2JpXCA7Civpm5HouI8gPCB6YXR0b3VcIDsKK+aWh+iXuyA8IGJ1bnNvdVwgOwor54ax6LObIDwgbmVzc2FuXCA7CivmlZnorbcgPCBreW91Z29cIDsKK+S5s+WFkCA8IG55dXVqaVwgOwor576k5bGFIDwgZ3Vua3lvXCA7Civnuo/ntr8gPCB0ZW5tZW5cIDsKK+eVsOS9k+WtlyA8IGl0YWlqaVwgOwor54yb5oKqIDwgbW91YWt1XCA7CivlpKfolLUgPCBvb2t1cmFcIDsKK+S4h+W3uyA8IG1hbmdhblwgOwor5pel56iLIDwgbml0dGVpXCA7CivkuIHluqYgPCBjaG91ZG9cIDsKK+WkqeiTiyA8IHRlbmdhaVwgOwor5pWZ6KutIDwga3lvdXl1XCA7CivkuIDluqcgPCBpY2hpemFcIDsKK+S5l+WQiCA8IG5vcmlhaVwgOwor6Z+z5qiZIDwgb25weW91XCA7CivkuZflj7cgPCBqb3Vnb3VcIDsKK+aatOaCqiA8IGJvdWFrdVwgOwor6aKo5ZCRIDwgZnV1a291XCA7CivmnKzliIYgPCBob25idW5cIDsKK+aVkeittyA8IGt5dXVnb1wgOwor57im6KanIDwganV1cmFuXCA7CivmnI3llqogPCBmdWt1bW9cIDsKK+acqOWJoyA8IGJva2tlblwgOwor5aSn6JGXIDwgdGFpY2hvXCA7Civmk6zpnakgPCBnaWtha3VcIDsKK+irluiAhSA8IHJvbnNoYVwgOwor6KuW6ICDIDwgcm9ua291XCA7Civpn7Pmpb0gPCBvbmdha3VcIDsKK+acl+WQnyA8IHJvdWdpblwgOwor6Zuq6KaLIDwgeXVraW1pXCA7CivkubHlgKsgPCByYW5yaW5cIDsKK+mbsuihqCA8IHVucHlvdVwgOwor54mb55quIDwgZ3l1dWhpXCA7CivkuIrlsaQgPCBqb3Vzb3VcIDsKK+mbo+iokyA8IG5hbmt1blwgOwor6ICB5L2TIDwgcm91dGFpXCA7Civpmbjpm6IgPCByaWt1cmlcIDsKK+aWree9qiA8IGRhbnphaVwgOwor6KiT6Zu7IDwga3VuZGVuXCA7CivniaLnlaogPCByb3ViYW5cIDsKK+aZgua1gSA8IGppcnl1dVwgOwor5pas572qIDwgemFuemFpXCA7Civml4XnsaAgPCBoYXRhZ29cIDsKK+aZtOaclyA8IHNlaXJvdVwgOwor5LiJ5bCBIDwgc2FucHV1XCA7CivnhrHoqqAgPCBuZXNzZWlcIDsKK+S4ieWvuCA8IHNhbnp1blwgOwor6ICB5Lq6IDwgcm91amluXCA7CivmmbTmm4cgPCBzZWlkb25cIDsKK+miqOWJjSA8IGZ1dXplblwgOwor6Zmj6aKoIDwgamlucHV1XCA7Civpm4bosqggPCBzaHV1a2FcIDsKK+map+mBkyA8IHN1aWRvdVwgOwor5pyA5ZaEIDwgc2FpemVuXCA7CivnvarmgqogPCB6YWlha3VcIDsKK+aaluaIvyA8IGRhbmJvdVwgOwor5pWs6JmUIDwga2Vpa2VuXCA7CivpmqPpgqYgPCByaW5wb3VcIDsKK+S5seS6pCA8IHJhbmtvdVwgOwor6ICB5LitIDwgcm91anV1XCA7CivlpbPnpZ4gPCBtZWdhbWlcIDsKK+mdkuetiyA8IGFvc3VqaVwgOwor6Ku456iuIDwgc2hvc2h1XCA7CivmnIvlj4sgPCBob3V5dXVcIDsKK+aWh+iKuCA8IGJ1bmdlaVwgOwor6Zmw6Zm9IDwgb24nJ3lvdVwgOwor5LiB5a+nIDwgdGVpbmVpXCA7CivkuIDlr74gPCBpdHRzdWlcIDsKK+e+qeWhviA8IGdpanVrdVwgOwor5aSn6Ii5IDwgb29idW5lXCA7CivpnZLnq7kgPCBhb2Rha2VcIDsKK+mdqeegpSA8IGthd2F0b1wgOwor6ZuR6KqMIDwgemFzc2hpXCA7CivniYfnnLwgPCBrYXRhbWVcIDsKK+aWree3miA8IGRhbnNlblwgOwor5Lmx5LiWIDwgcmFuc2VpXCA7Civnhp/orbAgPCBqdWt1Z2lcIDsKK+maoOmAuCA8IGluaXRzdVwgOwor5aSn6IejIDwgZGFpamluXCA7Civnvo7lraYgPCBiaWdha3VcIDsKK+aUv+irliA8IHNlaXJvblwgOwor5pyN5YuZIDwgZnVrdW11XCA7CivpnZLnqbogPCBhb3pvcmFcIDsKK+acieWNiiA8IHl1dWhhblwgOwor6ZuR6KiAIDwgem91Z29uXCA7CivlkIzmhI/oqp4gPCBkb3VpZ29cIDsKK+S4i+WnkyA8IGdlc2hvdVwgOwor5aaZ546LIDwgbXlvdW91XCA7Civml4XnqIsgPCByeW90ZWlcIDsKK+Wliee0jSA8IGhvdW5vdVwgOwor54af6KqeIDwganVrdWdvXCA7Civni5nmkoMgPCBzb2dla2lcIDsKK+eMtuWkqiA8IHl1ZGF5YVwgOwor5aSc6Ii5IDwgeW9mdW5lXCA7CivlpKfog4YgPCBkYWl0YW5cIDsKK+S4iuWkqSA8IGpvdXRlblwgOwor5pep55SjIDwgc291emFuXCA7CivlpKfogqEgPCBvb21hdGFcIDsKK+acgOWNlyA8IHNhaW5hblwgOwor5aSp6IGeIDwgdGVuYnVuXCA7CivoqLTov70gPCBzb3RzdWlcIDsKK+ipoOiqpiA8IGVpc2hvdVwgOwor5pmm5pelIDwgbWlzb2thXCA7CivoqJjpjLIgPCBraXJva3VcIDsKK+abuOWQjSA8IHNob21laVwgOwor5LiH5aSpIDwgYmFudGVuXCA7CivkuK3lkowgPCBjaHV1d2FcIDsKK+aUueiogiA8IGthaXRlaVwgOwor5pel55SjIDwgbmlzc2FuXCA7CivpnaLnm7ggPCBtZW5zb3VcIDsKK+ipleitsCA8IGh5b3VnaVwgOwor5aSn6ICBIDwgdGFpcm91XCA7CivpoqjkvZMgPCBmdXV0ZWlcIDsKK+eJneeJmyA8IG1ldXNoaVwgOwor5aKX6YWNIDwgem91aGFpXCA7CivkuIDlpbMgPCBpY2hpam9cIDsKK+S4iuWgtCA8IGpvdWpvdVwgOwor5aSn576kIDwgdGFpZ3VuXCA7CivpmaLplbcgPCBpbmNob3VcIDsKK+S4reWPpSA8IGNodXVrdVwgOwor5LiJ5aGBIDwgc2FucnVpXCA7Civpmrvoqp4gPCBzZWtpZ29cIDsKK+abh+WkqSA8IGRvbnRlblwgOwor5pyI5YWJIDwgZ2Vra291XCA7CivpnIrog70gPCByZWlub3VcIDsKK+Wnu+aXjyA8IGluem9rdVwgOwor5Li55YmNIDwgdGFuemVuXCA7CivkuLjliaQgPCBnYW56YWlcIDsKK+S4gOWkoiA8IGljaGltdVwgOwor5pyA5YidIDwgc2Fpc2hvXCA7CivkuIDlpJwgPCBoaXRveW9cIDsKK+S4h+WgtCA8IG1hbmpvdVwgOwor6Ku455u4IDwgc2hvc291XCA7CivlpYfnrZYgPCBraXNha3VcIDsKK+WpmuWnuyA8IGtvbicnaW5cIDsKK+S4juWcpyA8IHlvYXRzdVwgOwor54aU6KejIDwgeW91a2FpXCA7CivlpJrogokgPCB0YW5pa3VcIDsKK+aal+W5lSA8IGFubWFrdVwgOwor6ZqG6YGLIDwgcnl1dXVuXCA7Civpn4vpp4TlpKkgPCBpZGF0ZW5cIDsKK+iqmOiHtCA8IHl1dWNoaVwgOwor5pqW5bivIDwgZGFudGFpXCA7CivkuIvlm70gPCBnZWtva3VcIDsKK+aaq+WumiA8IHphbnRlaVwgOwor5pat56iuIDwgZGFuc2h1XCA7Civni6zlvoAgPCBkb2t1b3VcIDsKK+S4ieWbsiA8IG1pdHN1aVwgOwor5aSW6IGeIDwgZ2FpYnVuXCA7CivnibnmtL4gPCB0b2t1aGFcIDsKK+S4u+WCmCA8IHNodXNhblwgOwor54K65pS/5a62IDwgaXNlaWthXCA7CivlpKnntrIgPCB0ZW5tb3VcIDsKK+mZtumFlCA8IHRvdXN1aVwgOwor5pu45YaZIDwgc2hvc2hhXCA7Civkuozluqbnm64gPCBuaWRvbWVcIDsKK+eNhOWQjyA8IGdva3VyaVwgOwor54us5bqnIDwgZG9rdXphXCA7CivkuIDlm70gPCBpa2tva3VcIDsKK+mgmOW4gyA8IHJ5b3VmdVwgOwor54mH54mHIDwgaGVucGVuXCA7CivkuIDlm6AgPCBpY2hpaW5cIDsKK+mcp+esmyA8IG11dGVraVwgOwor6Zm46YGLIDwgcmlrdXVuXCA7CivnhKHpl4cgPCBtdXlhbWlcIDsKK+mbhOicgiA8IG9iYWNoaVwgOwor57W56ZuyIDwga2VuJyd1blwgOwor54Wu6LGGIDwgbmltYW1lXCA7CivnhpTono0gPCB5b3V5dXVcIDsKK+S4u+S9kyA8IHNodXRhaVwgOwor6KiT6YCjIDwga3VucmVuXCA7CivkuIflloQgPCBtYW56ZW5cIDsKK+aWh+ezuyA8IGJ1bmtlaVwgOwor5pa955mCIDwgc2VyeW91XCA7CivkuLvku7sgPCBzaHVuaW5cIDsKK+aVrOiAgSA8IGtlaXJvdVwgOwor6aCG5b2TIDwganVudG91XCA7Civpmb3ou6IgPCB5b3V0ZW5cIDsKK+aXpeeEvCA8IGhpeWFrZVwgOwor5LiK5ZOBIDwgam91Ym9uXCA7CivkuLvkurogPCBzaHVqaW5cIDsKK+mbhOiYgiA8IHl1dXp1aVwgOwor6Zuj6Ii5IDwgbmFuc2VuXCA7CivpmobotbcgPCByeXV1a2lcIDsKK+Wnu+aImiA8IGluc2VraVwgOwor6aGe5ZCMIDwgcnVpZG91XCA7CivoqqbntYwgPCB6dWt5b3VcIDsKK+aXqeeArCA8IGhheWFzZVwgOwor5pu45L2TIDwgc2hvdGFpXCA7Civnt5Loq5YgPCBjaG9yb25cIDsKK+S4u+S4iiA8IHNodWpvdVwgOwor5pyA5LitIDwgbW9uYWthXCA7Civpm5Hoj4wgPCB6YWtraW5cIDsKK+aWh+evhCA8IGJ1bnBhblwgOwor5paw55uGIDwgbmlpYm9uXCA7Civlopfos4cgPCB6b3VzaGlcIDsKK+acgOS4iiA8IG1vZ2FtaVwgOwor5aSn562LIDwgb29zdWppXCA7CivlqpLkvZMgPCBiYWl0YWlcIDsKK+eIhuegtCA8IGJha3VoYVwgOwor54us5bGFIDwgZG9ra3lvXCA7CivnibnmqKkgPCB0b2trZW5cIDsKK+ios+iqniA8IHlha3Vnb1wgOwor5Lit5L2QIDwgY2h1dXNhXCA7CivkuIflj6MgPCBiYW5rb3VcIDsKK+mbkeiNiSA8IHphc3NvdVwgOwor5LiK5Y2KIDwgam91aGFuXCA7Civpmbjot68gPCByaWt1cm9cIDsKK+WqkuS7iyA8IGJhaWthaVwgOwor5aSp56m6IDwgdGVua3V1XCA7Civnt5LoqIAgPCBjaG9nZW5cIDsKK+mcgOe1piA8IGp1a3l1dVwgOwor5LiO5YqbIDwgeW9yaWtpXCA7CivlpKfnqbogPCBvb3pvcmFcIDsKK+WkluexsyA8IGdhaW1haVwgOwor5aSp56ifIDwgdGVucGluXCA7CivkuK3kuowgPCBjaHV1bmlcIDsKK+Wlh+eZliA8IGtpaGVraVwgOwor5pWP6IWVIDwgYmlud2FuXCA7CivlpKnnp6QgPCB0ZW5iaW5cIDsKK+e0oum6uiA8IHNvdW1lblwgOwor576k5YOPIDwgZ3Vuem91XCA7Civlpa7nhLYgPCBmdW56ZW5cIDsKK+S4h+WKqyA8IG1hbmdvdVwgOwor5LiK5YmNIDwgdXdhbWFlXCA7Civpm4zoirEgPCBtZWJhbmFcIDsKK+Wlh+eXhSA8IGtpYnlvdVwgOwor6Z2S54mpIDwgYW9tb25vXCA7CivlpKnnpZ4gPCB0ZW5qaW5cIDsKK+eEtui/hCA8IHNhbWFkZVwgOwor6aGM5ZCNIDwgZGFpbWVpXCA7CivpoYzlj7cgPCBkYWlnb3VcIDsKK+Wkp+elrSA8IHRhaXNhaVwgOwor5LiJ5YiGIDwgc2FucHVuXCA7CivnvqnkvqAgPCBnaWt5b3VcIDsKK+e3j+ijjyA8IHNvdXVyYVwgOwor54mp5qipIDwgYnVra2VuXCA7CivlpJznqbogPCB5b3pvcmFcIDsKK+e3j+ijgSA8IHNvdXNhaVwgOwor54Sh6YePIDwgbXVyeW91XCA7Civpm4DojZggPCBqYW5zb3VcIDsKK+e3iuikjCA8IGtpbmtvblwgOwor5LiW5L+XIDwgc2V6b2t1XCA7CivniZvmrakgPCBneXV1aG9cIDsKK+aXp+a0viA8IGt5dXVoYVwgOwor576F5YyXIDwgcmFob2t1XCA7CivntLDprZogPCBzYXlvcmlcIDsKK+S4i+WDlSA8IGdlYm9rdVwgOwor5aSn56CyIDwgdGFpaG91XCA7CivmlbDnrYkgPCBzdXV0b3VcIDsKK+Wls+a7nSA8IG1lZGFraVwgOwor6K2m5omLIDwga2Vpc2h1XCA7Civpmo/ooYwgPCB6dWlrb3VcIDsKK+WmguazlSA8IG55b2hvdVwgOwor5LiA5YaGIDwgaWNoaWVuXCA7CivkuIDlhbcgPCBpY2hpZ3VcIDsKK+aVsOWvhOWxiyA8IHN1a2l5YVwgOwor57eo6JGXIDwgaGVuY2hvXCA7CivniJvniJsgPCByYW5yYW5cIDsKK+aaluWcsCA8IGRhbmNoaVwgOwor57a46KiAIDwgcmluZ2VuXCA7CivmlL7og4YgPCBob3V0YW5cIDsKK+iok+irrSA8IGt1bicneXVcIDsKK+iqreegtCA8IGRva3VoYVwgOwor5LiJ5YCNIDwgc2FuYmFpXCA7CivnjJvli4cgPCBtb3V5dXVcIDsKK+mhnuS+iyA8IHJ1aXJlaVwgOwor6KiT6KqhIDwga3Vua2FpXCA7CivorLnmm7ggPCBraW5zaG9cIDsKK+aYjuaclyA8IG1laXJvdVwgOwor5aSp55uDIDwgdGVucGFpXCA7CivmmrTli5UgPCBib3Vkb3VcIDsKK+WgpOmYsiA8IHRlaWJvdVwgOwor6KiO6KuWIDwgdG91cm9uXCA7Civml6Xmr44gPCBoaWdvdG9cIDsKK+S4jeS7siA8IGZ1bmFrYVwgOwor5aSn55q/IDwgb296YXJhXCA7CivkuInkvZMgPCBzYW50YWlcIDsKK+WQjOaEj+e+qSA8IGRvdWlnaVwgOwor5paH55uyIDwgbW9ubW91XCA7CivnhrHnt5ogPCBuZXNzZW5cIDsKK+eGn+iAgyA8IGp1a2tvdVwgOwor54yf5YW3IDwgcnlvdWd1XCA7CivlopPooaggPCBib2h5b3VcIDsKK+aYteaHhyA8IGppa2tvblwgOwor5aWz5rWBIDwgam9yeXV1XCA7CivpnIrnn6UgPCByZWljaGlcIDsKK+S4iuS7oyA8IGpvdWRhaVwgOwor5aWH54m5IDwga2lkb2t1XCA7Civnvo7kv5cgPCBiaXpva3VcIDsKK+aYk+aWrSA8IGVraWRhblwgOwor5LiN5LmZIDwgZnVpdHN1XCA7CivnvarlkI0gPCB6YWltZWlcIDsKK+aYj+aYjyA8IGtvbmtvblwgOwor6ZuR57qCIDwgemFzc2FuXCA7CivlppnmoYggPCBteW91YW5cIDsKK+Wls+azoiA8IG1lbmFtaVwgOwor6Zui57GNIDwgcmlzZWtpXCA7CivmmI7mlq0gPCBtZWlkYW5cIDsKK+aVrOekvCA8IGtlaXJlaVwgOwor6Zu356WeIDwgcmFpamluXCA7Civoqr/nkIYgPCBjaG91cmlcIDsKK+aWreeEtiA8IGRhbnplblwgOwor5piO5pWPIDwgbWVpYmluXCA7CivniYjmqKkgPCBoYW5rZW5cIDsKK+eDiOmiqCA8IHJlcHB1dVwgOwor5LiH5LiHIDwgbWFubWFuXCA7CivoqIDoq5YgPCBnZW5yb25cIDsKK+mZuOihjCA8IHJpa2tvdVwgOwor5aSn55SfIDwgZGFpc2VpXCA7Civpm4DnvoUgPCBqYWt1cmFcIDsKK+S4geS6pSA8IHRlaWdhaVwgOwor6K2w5bitIDwgZ2lzZWtpXCA7Civnvo7kuosgPCBtaWdvdG9cIDsKK+WnkeaBryA8IGtvc29rdVwgOwor57mB55ubIDwgaGFuam91XCA7CivkuIDkurogPCBoaXRvcmlcIDsKK+aUvue4piA8IGhvdWp1dVwgOwor6KuW54K5IDwgcm9udGVuXCA7Civoqannt6ggPCBzaGloZW5cIDsKK+aXpeanmCA8IGhpc2FtYVwgOwor6Zmq6KazIDwgYmFpa2FuXCA7CivkuIDkuowgPCBpY2hpbmlcIDsKK+e0oOmmliA8IHNva3ViaVwgOwor54ib5ryrIDwgcmFubWFuXCA7CivnibnmjqogPCB0b2t1c29cIDsKK+ippue3tCA8IHNoaXJlblwgOwor6KiA6KizIDwgaWl3YWtlXCA7Civln7nppIogPCBiYWl5b3VcIDsKK+iogOiogCA8IGdlbmdlblwgOwor57eP6I+cIDwgc291emFpXCA7CivlpJrnl4UgPCB0YWJ5b3VcIDsKK+aSpOmAgCA8IHRldHRhaVwgOwor5pS557eoIDwga2FpaGVuXCA7CivnhKHos4MgPCBtdWNoaW5cIDsKK+mbhOe3qCA8IHl1dWhlblwgOwor57iB57WEIDwgZW5ndW1pXCA7CivnibnmioAgPCB0b2t1Z2lcIDsKK+aVmeelliA8IGt5b3Vzb1wgOwor54mp5pCNIDwgYnVzc29uXCA7CivopoHpoIUgPCB5b3Vrb3VcIDsKK+e9sOS/uCA8IGJhcHBvdVwgOwor5aeJ5byfIDwgc2hpbWFpXCA7Civpm6LnpIEgPCByaXNob3VcIDsKK+mfs+WfnyA8IG9uJydpa2lcIDsKK+WgsemBkyA8IGhvdWRvdVwgOwor5pet5pqJIDwga3lva2tpXCA7Civntbbos5sgPCB6ZXNzYW5cIDsKK+WmguadpSA8IG55b3JhaVwgOwor5aSn54mpIDwgb29tb25vXCA7CivpnLLmu7QgPCByb3Rla2lcIDsKK+e2muihjCA8IHpva2tvdVwgOwor54mI5pysIDwgaGFucG9uXCA7CivmmpblhqwgPCBkYW50b3VcIDsKK+mbu+eVqiA8IGRlbmJhblwgOwor5aSn6KKI6KOfIDwgb29nZXNhXCA7Civml6nmmakgPCBzb3ViYW5cIDsKK+mciueNoyA8IHJlaWp1dVwgOwor57eo57qCIDwgaGVuc2FuXCA7CivmlrDmtL4gPCBzaGlucGFcIDsKK+mbkeeoriA8IHphc3NodVwgOwor6Zuq55uuIDwgeXVraW1lXCA7Civml6fmmYIgPCBreXV1amlcIDsKK+iqleeUnyA8IHRhbmpvdVwgOwor5pi85a+dIDwgaGlydW5lXCA7Civkuovli5nlsYsgPCBqaW11eWFcIDsKK+a1ruS4lue1tSA8IHVraXlvZVwgOwor54m55oG1IDwgdG9ra2VpXCA7CivnhZnojYkgPCB0YWJha29cIDsKK+eQteeQtua5liA8IGJpd2Frb1wgOwor6KyE5pysIDwgdG91aG9uXCA7CivmlLnnq4QgPCBrYWl6YW5cIDsKK+eJueW/qyA8IHRva2thaVwgOwor5LqL5YuZ5a62IDwgamltdWthXCA7Civml6XmlbAgPCBoaWthenVcIDsKK+aWreawtCA8IGRhbnN1aVwgOwor5aaZ5oqAIDwgbXlvdWdpXCA7CivlprvluK8gPCBzYWl0YWlcIDsKK+WogeWWnSA8IGlrYXRzdVwgOwor54WO6Iy2IDwgc2VuY2hhXCA7Civpm7fnjaMgPCByYWlqdXVcIDsKK+mdkuahkCA8IGFvZ2lyaVwgOwor5aSn5r2uIDwgb29zaGlvXCA7CivpmbboirggPCB0b3VnZWlcIDsKK+aXl+aXpSA8IGhhdGFiaVwgOwor6Z2S5p+zIDwgYW95YWdpXCA7CivoqK3nva4gPCBzZXRjaGlcIDsKK+eJqeaApyA8IGJ1c3NlaVwgOwor5pqX5LitIDwgYW5jaHV1XCA7CivmmLzlpJwgPCBjaHV1eWFcIDsKK+iogOiRiSA8IGtvdG9iYVwgOwor57Sh6YyYIDwgYm91c3VpXCA7CivlpJbnga8gPCBnYWl0b3VcIDsKK+WfvOmKgCA8IHNhaWdpblwgOwor5LiN5Y+v6YG/IDwgZnVrYWhpXCA7CivplpPptKggPCBhaWdhbW9cIDsKK+mcp+awtyA8IG11aHlvdVwgOwor5pil5a2jIDwgc2h1bmtpXCA7Civlopfnva4gPCB6b3VjaGlcIDsKK+e2vue+hSA8IHJ5b3VyYVwgOwor54uC5Y+lIDwga3lvdWt1XCA7CivpmbPohZAgPCBjaGlucHVcIDsKK+WgseisnSA8IGhvdXNoYVwgOwor54Wp57SvIDwgaGFucnVpXCA7CivniYfmiYsgPCBrYXRhdGVcIDsKK+eJh+aIuCA8IGthdGFkb1wgOwor5paR5rCXIDwgbXVyYWtpXCA7CivmlabnhYwgPCB0b25rb3VcIDsKK+Wkp+azoiA8IG9vbmFtaVwgOwor5pat5qGIIDwgZGFuJydhblwgOwor5aSp5rC0IDwgdGVuc3VpXCA7CivlpJbmua8gPCBzb3RveXVcIDsKK+aZpuWGpSA8IGthaW1laVwgOwor5pWZ54i2IDwga3lvdWZ1XCA7CivntJTpioAgPCBqdW5naW5cIDsKK+Wkp+awtCA8IG9vbWl6dVwgOwor5aSW5rivIDwgZ2Fpa291XCA7Civoqqzms5UgPCBzZXBwb3VcIDsKK+imi+i+vCA8IG1pa29taVwgOwor6Kiq57GzIDwgaG91YmVpXCA7CivntLDouqsgPCBob3NvbWlcIDsKK+aWh+awkSA8IGJ1bm1pblwgOwor54Kt6YmxIDwgdGFua291XCA7Civml6fmgakgPCBreXV1b25cIDsKK+e0lOmHkSA8IGp1bmtpblwgOwor5LqL5YuZ5ZmoIDwgamltdWtpXCA7CivlpJzms4ogPCB5YWhha3VcIDsKK+aWueaWuSA8IGhvdWJvdVwgOwor57a/57O4IDwgbWVuc2hpXCA7Civml6jlv7UgPCBzaGluZW5cIDsKK+aTjeiIuSA8IHNvdXNlblwgOwor57a+57O4IDwgYXlhaXRvXCA7Civpm7vmupAgPCBkZW5nZW5cIDsKK+WmhOW/tSA8IG1vdW5lblwgOwor6KW/6YGKIDwgc2VpeXV1XCA7Civlpa7miKYgPCBmdW5zZW5cIDsKK+eCremFuCA8IHRhbnNhblwgOwor57SN6YeRIDwgbm91a2luXCA7CivntI3ph4cgPCBub3VzYWlcIDsKK+ims+impyA8IGthbnJhblwgOwor6Ku45omLIDwgbW9yb3RlXCA7Civpn7Pkv6EgPCBvbnNoaW5cIDsKK+eyvumtgiA8IHNlaWtvblwgOwor5aSc5q+OIDwgeW9nb3RvXCA7CivmlaPmvKsgPCBzYW5tYW5cIDsKK+e3qeebriA8IHl1cnVtZVwgOwor54mH5b2xIDwgaGVuJydlaVwgOwor5aaE5byBIDwgYm91YmVuXCA7CivpnIrmrr8gPCByZWlkZW5cIDsKK+aXouW+lyA8IGtpdG9rdVwgOwor6KuW5peoIDwgcm9uc2hpXCA7Civnsr7pq4QgPCBzZWl6dWlcIDsKK+W+oea0kuiQvSA8IG9zaGFyZVwgOwor5LqL5YuZ5ZOhIDwgamltdWluXCA7Civln7TovKogPCBoYW5pd2FcIDsKK+irluaWrSA8IHJvbmRhblwgOwor6KuW5paHIDwgcm9uYnVuXCA7CivnhZnnrqEgPCBraXNlcnVcIDsKK+iqv+afuyA8IGNob3VzYVwgOwor5qSN5pyo5bGLIDwgdWVraXlhXCA7CivnhKHoh60gPCBtdXNodXVcIDsKK+mdseW4ryA8IGppbnRhaVwgOwor5piO5aSnIDwgbWVpZGFpXCA7CivplonppKggPCBoZWlrYW5cIDsKK+iruOaCqiA8IHNob2FrdVwgOwor5aOB55S7IDwgaGVraWdhXCA7CivntKDotrMgPCBzdWFzaGlcIDsKK+aVteatqSA8IHRla2lmdVwgOwor6ZuE54qsIDwgb3N1aW51XCA7CivlopfnqI4gPCB6b3V6ZWlcIDsKK+WivueUsCA8IGtvbmRlblwgOwor5pS554mIIDwga2FpaGFuXCA7CivniLblvqEgPCB0ZXRlZ29cIDsKK+S4jeWPr+iqpCA8IGZ1a2Fnb1wgOwor6Zai6ZaAIDwga2FubW9uXCA7CivlpKfmoLkgPCBkYWlrb25cIDsKK+mbkeeCiiA8IHpvdXN1aVwgOwor5aSc5qWtIDwgeWFneW91XCA7CivntLDoq5YgPCBzYWlyb25cIDsKK+eJp+WkqyA8IGJva3VmdVwgOwor5paH5qGIIDwgYnVuJydhblwgOwor5peF5oOFIDwgcnlvam91XCA7CivlpInmrbsgPCBoZW5zaGlcIDsKK+WkluanmCA8IHRvemFtYVwgOwor5aSn5p+EIDwgb29nYXJhXCA7CivlvqHph4jov6YgPCBvc2hha2FcIDsKK+iruOW9piA8IHNob2dlblwgOwor6ZaT6ZqbIDwgbWFnaXdhXCA7CivnhKHogYogPCBidXJ5b3VcIDsKK+mVt+mnhiA8IGNob3VrdVwgOwor6Zuy5q+NIDwga2lyYXJhXCA7Civml6nlr50gPCBoYXlhbmVcIDsKK+ilv+iyoiA8IHNhaWdvblwgOwor5pWZ5rS+IDwga3lvdWhhXCA7Civmk43nuKYgPCBzb3VqdXVcIDsKK+Wkp+acrCA8IHRhaWhvblwgOwor5aSn5pybIDwgdGFpbW91XCA7Civoq5bmi6AgPCByb25reW9cIDsKK+aXpeWwhCA8IG5pc3NoYVwgOwor5aWJ5oudIDwgaG91aGFpXCA7CivniafloLQgPCBtYWtpYmFcIDsKK+ioiOeulyA8IGtlaXNhblwgOwor6Zmk57GNIDwgam9zZWtpXCA7Civns7jpgYogPCBpdG95dXVcIDsKK+mbo+ayuyA8IG5hbmNoaVwgOwor5aKo55eVIDwgYm9ra29uXCA7CivljbDlrZfmqZ8gPCBpbmppa2lcIDsKK+irluaIpiA8IHJvbnNlblwgOwor5aSp5piOIDwgdGVubWVpXCA7CivlopPnn7MgPCBib3Nla2lcIDsKK+WiqOeUuyA8IGJva3VnYVwgOwor6Zuj5rCRIDwgbmFubWluXCA7CivntKDoqq0gPCBzb2Rva3VcIDsKK+imgeirpiA8IHlvdXRlaVwgOwor5aSp5paHIDwgdGVubW9uXCA7CivlpKfmlrkgPCBvb2thdGFcIDsKK+ehq+m7hOaziSA8IGlvdXNlblwgOwor6ZaL6ZaAIDwga2FpbW9uXCA7Civnt7Tngq0gPCByZW50YW5cIDsKK+mWiemWgCA8IGhlaW1vblwgOwor5aKX55uKIDwgem91ZWtpXCA7CivlpJbmnaUgPCBnYWlyYWlcIDsKK+mXh+i3ryA8IHlhbWlqaVwgOwor5aSW5p2QIDwgZ2FpemFpXCA7CivploDpmaIgPCBtb24nJ2luXCA7CivntI3osYYgPCBuYXR0b3VcIDsKK+mWgOmZkCA8IG1vbmdlblwgOwor5pa55b2iIDwgaG91a2VpXCA7CivmlofmlL8gPCBidW5zZWlcIDsKK+Wls+WumCA8IG55b2thblwgOwor54Sh57WmIDwgbXVreXV1XCA7Civml6nlpKcgPCBzb3VkYWlcIDsKK+imgeimpyA8IHlvdXJhblwgOwor6Zub5q61IDwgc3V1ZGFuXCA7CivpnaLlrZAgPCBtZW50c3VcIDsKK+aVsOaemiA8IHN1dW1haVwgOwor6Zuo5qiLIDwgYW1hZG9pXCA7Civpm4TmuL4gPCB5dXVrb25cIDsKK+ikh+mfsyA8IGZ1a3VvblwgOwor5piO5ZCbIDwgbWVpa3VuXCA7Civpmbrnm7ggPCBrZW5zb3VcIDsKK+eJueWLmSA8IHRva3VtdVwgOwor54mp5ZOBIDwgYnVwcGluXCA7CivlopfnlKMgPCB6b3VzYW5cIDsKK+aQjemHkSA8IHNvbmtpblwgOwor6ZW36ZaRIDwgbm9kb2thXCA7Civoqp7ml48gPCBnb3pva3VcIDsKK+WBieS4iOWkqyA8IGlqb3VmdVwgOwor6KuW5byBIDwgcm9uYmVuXCA7Civml6XloLEgPCBuaXBwb3VcIDsKK+mWgOmRkSA8IG1vbmthblwgOwor5aCV6JC9IDwgZGFyYWt1XCA7CivplqLpgKMgPCBrYW5yZW5cIDsKK+eFrueJqSA8IG5pbW9ub1wgOwor5peF5a+dIDwgdGFiaW5lXCA7CivpmbPnmq4gPCBjaGlucGlcIDsKK+W4g+a1t+iLlCA8IGZ1bm9yaVwgOwor57Sr6JitIDwgc2hpcmFuXCA7CivplovpioAgPCBrYWlnaW5cIDsKK+eEoeetliA8IG11c2FrdVwgOwor6Kym5ZKzIDwga2VpZ2FpXCA7CivlpqXljZQgPCBkYWt5b3VcIDsKK+Wkp+aKgCA8IG9vd2F6YVwgOwor57K+6YysIDwgc2VpcmVuXCA7Civml6flnJ8gPCBreXV1ZG9cIDsKK+mbu+aWrSA8IGRlbmRhblwgOwor6Zyw5by+IDwgc2FuZGFuXCA7CivmlZnmoYggPCBreW91YW5cIDsKK+WmmeWRsyA8IG15b3VtaVwgOwor5piO5YidIDwgbWVpc2hvXCA7CivntZ7nvaogPCBrb3V6YWlcIDsKK+aYqOS7iiA8IHNha2tvblwgOwor57Wo57eeIDwganV1dGFuXCA7Civmlrnlr7ggPCBob3VzdW5cIDsKK+WkieaUuSA8IGhlbmthaVwgOwor6Zu25pWXIDwgcmVpaGFpXCA7CivlpaXlppkgPCBvdW15b3VcIDsKK+aVo+aWhyA8IHNhbmJ1blwgOwor5pWj5pWjIDwgc2FuemFuXCA7CivlnJ/pvo0gPCBtb2d1cmFcIDsKK+e4puaWrSA8IGp1dWRhblwgOwor6Kya5Y+3IDwgc2hpZ291XCA7CivlpbPlm5ogPCBqb3NodXVcIDsKK+aWreWumiA8IGRhbnRlaVwgOwor6KuW5a6aIDwgcm9udGVpXCA7CivlobXnlYwgPCBqaW5rYWlcIDsKK+irluWtnyA8IHJvbm1vdVwgOwor5pel5ZKMIDwgaGl5b3JpXCA7CivntrLnirYgPCBtb3Vqb3VcIDsKK+Wkp+W9oiA8IG9vZ3lvdVwgOwor5oWw5a6J5LyaIDwgaWFua2FpXCA7Civpm6PmlocgPCBuYW5idW5cIDsKK+aKq+mcsuebriA8IGhpcm9tZVwgOwor57Gz6aOvIDwgYmVpaGFuXCA7CivntrLniYggPCBhbWloYW5cIDsKK+WjsuaWhyA8IGJhaWJ1blwgOwor5pel5ZCRIDwgaGluYXRhXCA7Civnsr7ovrIgPCBzZWlub3VcIDsKK+aWsOWppiA8IHNoaW5wdVwgOwor6Ziy56m6IDwgYm91a3V1XCA7CivlpKnlupUgPCB0ZW50ZWlcIDsKK+WkquW5syA8IHRhaWhlaVwgOwor5aWl5ZywIDwgb2t1Y2hpXCA7CivlpKflupcgPCBvb2RhbmFcIDsKK+mbkeabuCA8IHphc3Nob1wgOwor6Zaj6K2wIDwga2FrdWdpXCA7CivngbDosp0gPCBoYWlnYWlcIDsKK+Wkp+W5hSA8IG9vaGFiYVwgOwor5aSn5birIDwgZGFpc2hpXCA7CivntZDntI0gPCB5dWlub3VcIDsKK+aXheWboyA8IHJ5b2RhblwgOwor57mB5b+ZIDwgaGFuYm91XCA7CivlnLDpq6ogPCBqaWdhbWlcIDsKK+mYsuempiA8IGJvdWd5b1wgOwor57Sw6IOeIDwgc2FpYm91XCA7Civml6Xli6QgPCBuaWtraW5cIDsKK+eCueiMtiA8IHRlbmNoYVwgOwor6ZW36YCUIDwgY2hvdXRvXCA7CivkuojlgpnppqwgPCB5b2JpYmFcIDsKK+awl+WMluWZqCA8IGtpa2FraVwgOwor5pGY6Iq9IDwgdGVraWdhXCA7Civpm4Tmnb4gPCBvbWF0c3VcIDsKK+aXqeWHuiA8IGhheWFkZVwgOwor5aWH5aaZIDwga2lteW91XCA7CivlpJblvoQgPCBnYWlrZWlcIDsKK+WkluW+gSA8IGdhaXNlaVwgOwor5o6l6aCtIDwgc2V0dG91XCA7CivoqJPngrkgPCBrdW50ZW5cIDsKK+atpuiAhee1tSA8IG11c2hhZVwgOwor6KuW5aSWIDwgcm9uZ2FpXCA7CivlpJzlupcgPCB5b21pc2VcIDsKK+e1g+e3miA8IGdlbnNlblwgOwor6Ku+5ZCmIDwgZGFrdWhpXCA7CivnhKHnl5sgPCBtdXRzdXVcIDsKK+eEoeeXhSA8IG11YnlvdVwgOwor5aOf5patIDwgcm91ZGFuXCA7CivniYfliIMgPCBrYXRhaGFcIDsKK+aVteW9sSA8IHRla2llaVwgOwor57W555uuIDwga2ludW1lXCA7Civnha7msYEgPCBuaWppcnVcIDsKK+ijvumHjiA8IHN1c29ub1wgOwor5aSc5biCIDwgeW9pY2hpXCA7CivlpKflsbEgPCB0YWl6YW5cIDsKK+iruOWQmyA8IHNob2t1blwgOwor6Zyc5a6zIDwgc291Z2FpXCA7CivmlLnmmJMgPCBrYWlla2lcIDsKK+WjruaMmSA8IHNvdWt5b1wgOwor57SF6JGJIDwgbW9taWppXCA7Civmlo7lrq4gPCBzYWlndXVcIDsKK+mbo+aJgCA8IG5hbnNob1wgOwor5aWq5Y+WIDwgZGFzc2h1XCA7CivlpKrlroggPCB0YWlzaHVcIDsKK+aWieWwhCA8IHNlaXNoYVwgOwor5aSJ5b2iIDwgaGVua2VpXCA7CivntKDogowgPCBzdWhhZGFcIDsKK+WkquWtlyA8IGZ1dG9qaVwgOwor5aSp5a2rIDwgdGVuc29uXCA7Civpm5HmkI0gPCB6YXNzb25cIDsKK+aXpeWCmCA8IGhpZ2FzYVwgOwor6Z2p5YW3IDwga2F3YWd1XCA7CivpnaLliY0gPCBtZW56ZW5cIDsKK+mciuWzsCA8IHJlaWhvdVwgOwor6Zq35pu4IDwgcmVpc2hvXCA7Civop5Lnmq4gPCBrYWt1aGlcIDsKK+aVsOW5tCA8IHN1dW5lblwgOwor5aWu5YqxIDwgZnVucmVpXCA7CivpnZ7lipsgPCBoaXJpa2lcIDsKK+irreWRiiA8IHl1a29rdVwgOwor6aKo5Zyf6KiYIDwgZnVkb2tpXCA7CivmloflrpggPCBidW5rYW5cIDsKK+aXrOS9mSA8IGp1bicneW9cIDsKK+e0heiMtiA8IGtvdWNoYVwgOwor57Sw57e7IDwgc2FpY2hpXCA7Civln4volLUgPCBtYWl6b3VcIDsKK+mciuWxsSA8IHJlaXphblwgOwor6KOP6ZaAIDwgdXJhbW9uXCA7Civpm7vlt6UgPCBkZW5rb3VcIDsKK+aWnOWhlCA8IHNoYXRvdVwgOwor5aSc5a+SIDwgeW96YW11XCA7Civloannha4gPCBzaGlvbmlcIDsKK+iruOWIgyA8IG1vcm9oYVwgOwor5Z+L6JGsIDwgbWFpc291XCA7Civntr/mr5sgPCB3YXRhZ2VcIDsKK+e1kOekviA8IGtlc3NoYVwgOwor6KSS6LK2IDwgaG91aGVuXCA7CivntK/ntK8gPCBydWlydWlcIDsKK+WcsOmciiA8IGNoaXJlaVwgOwor5aSc5a2mIDwgeWFnYWt1XCA7Civml6XkvIogPCBuaWNoaWlcIDsKK+inkueVjCA8IGtha2thaVwgOwor5pWP5oSfIDwgYmlua2FuXCA7CivmlbflsYUgPCBzaGlraWlcIDsKK+eCreiCuiA8IHRhbmhhaVwgOwor54WZ5q+SIDwgZW5kb2t1XCA7CivnhrHmhI8gPCBuZXRzdWlcIDsKK+WcsOmajiA8IGNoaWthaVwgOwor5peF5Yi4IDwgcnlva2VuXCA7CivpmqPmnZEgPCByaW5zb25cIDsKK+mdouWAkiA8IG1lbmRvdVwgOwor5pel5LitIDwgaGluYWthXCA7CivlpZHlkIggPCBrZWlnb3VcIDsKK+mciuWqkiA8IHJlaWJhaVwgOwor57Gz6YqtIDwgYmVpc2VuXCA7Civoqp7lraYgPCBnb2dha3VcIDsKK+iqmOWwjiA8IHl1dWRvdVwgOwor6ZuR5oSfIDwgemFra2FuXCA7Civmlo7loLQgPCBzYWlqb3VcIDsKK+Wls+S9kyA8IG55b3RhaVwgOwor6Z2i5L2TIDwgbWVudGVpXCA7CivlpYnlkYggPCBob3V0ZWlcIDsKK+aSg+egtCA8IGdla2loYVwgOwor6Z2i5LyaIDwgbWVua2FpXCA7Civlo7LlupcgPCBiYWl0ZW5cIDsKK+irluWPoiA8IHJvbnNvdVwgOwor6Zu75a2QIDwgZGVuc2hpXCA7CivniLXkvY0gPCBzaGFrdWlcIDsKK+Wls+S6uiA8IG55b25pblwgOwor57W254mIIDwgemVwcGFuXCA7Civpm6rltKkgPCBuYWRhcmVcIDsKK+e0m+e0myA8IGZ1bnB1blwgOwor5aOu5bm0IDwgc291bmVuXCA7CivlpKflnosgPCBvb2dhdGFcIDsKK+e0lOe2vyA8IGp1bm1lblwgOwor5aGp5rmvIDwgc2hpb3l1XCA7CivlpbPkuK0gPCBqb2NodXVcIDsKK+mWgOihmyA8IG1vbicnZWlcIDsKK+WeguiokyA8IHN1aWt1blwgOwor6Ziy54qvIDwgYm91aGFuXCA7CivnhrHluK8gPCBuZXR0YWlcIDsKK+eEmueBqyA8IHRha2liaVwgOwor5pS55oKqIDwga2FpYWt1XCA7CivntJTns7sgPCBqdW5rZWlcIDsKK+WlpeS8nSA8IG9rdWRlblwgOwor5aGp5rW0IDwgZW55b2t1XCA7Civoq4flkIggPCBkYW5nb3VcIDsKK+mciuWfnyA8IHJlaWlraVwgOwor6KuW5YikIDwgcm9ucGFuXCA7Civnha7mlrkgPCBuaWthdGFcIDsKK+eGiuaJiyA8IGt1bWFkZVwgOwor57SU57KLIDwganVuc3VpXCA7Civoqq3lm7MgPCBkb2t1enVcIDsKK+eBq+iTiyA8IGhpYnV0YVwgOwor6Kq/5ZKMIDwgY2hvdXdhXCA7Civoqr/lkbMgPCBjaG91bWlcIDsKK+aXheS6uiA8IHJ5b2ppblwgOwor57eP5pWwIDwgc291c3V1XCA7Civpm5Hlt74gPCB6b3VraW5cIDsKK+maheacqCA8IHN1bWlraVwgOwor6Kaq55aOIDwgc2hpbnNvXCA7Civmlrnkvr8gPCBob3ViZW5cIDsKK+mbouWuriA8IHJpa3l1dVwgOwor57Wi54ibIDwga2VucmFuXCA7CivlvqHmsrPnq6UgPCBva2FwcGFcIDsKK+WkluWcsCA8IGdhaWNoaVwgOwor5aGp5rCXIDwgc2hpb2tlXCA7CivmjqXov5EgPCBzZWtraW5cIDsKK+mbhOW8gSA8IHl1dWJlblwgOwor57Gz6LuNIDwgYmVpZ3VuXCA7CivmlLnlu4MgPCBrYWloYWlcIDsKK+majuaVsCA8IGthaXN1dVwgOwor5Zyw6YeRIDwgamlnYW5lXCA7Civoqr/ljbAgPCBjaG91aW5cIDsKK+expOmBiyA8IGt1aml1blwgOwor5r+B6Z+zIDwgZGFrdW9uXCA7CivlpKflkowgPCB5YW1hdG9cIDsKK+irh+WIpCA8IGRhbnBhblwgOwor6ZW36JuHIDwgY2hvdWRhXCA7Civmlrnku4ogPCBob3Vrb25cIDsKK+e0heeyiSA8IGJlbmlrb1wgOwor5Zyw6YWSIDwgaml6YWtlXCA7CivpmrvlvbEgPCBzZWtpZWlcIDsKK+Wcn+mNiyA8IGRvbmFiZVwgOwor54Gw6ImyIDwgaGFpaXJvXCA7CivlpKnlj7AgPCB0ZW5kYWlcIDsKK+Wkp+WQmyA8IHRhaWt1blwgOwor6Zmw5qC4IDwgaW5rYWt1XCA7CivntLDnm64gPCBob3NvbWVcIDsKK+aPkOimgSA8IHRlaXlvdVwgOwor54Gr6IqxIDwgaGliYW5hXCA7Civpm5HlsYUgPCB6YWtreW9cIDsKK+Wfi+e3miA8IG1haXNlblwgOwor5pWw5ZueIDwgc3V1a2FpXCA7CivlpZXkuJYgPCBla2lzZWlcIDsKK+m9piA8IGhhZ3VraVwgOwor5aSn5Y2KIDwgdGFpaGFuXCA7CivpvIggPCBzdXBwb25cIDsKK+ikkOiXuyA8IGthc3NvdVwgOwor6bucIDwgY2h1dHN1XCA7CivnhKHmr5IgPCBtdWRva3VcIDsKK+Wkp+WMmSA8IG9vc2FqaVwgOwor57W25rW3IDwgemVra2FpXCA7Civpm4Tls7AgPCB5dXVob3VcIDsKK+e0jeeojiA8IG5vdXplaVwgOwor5Zyf6YecIDwgZG9nYW1hXCA7CivlpKfli6IgPCB0YWl6ZWlcIDsKK+e3kuaIpiA8IGNob3NlblwgOwor6bqTIDwgZnVtb3RvXCA7CivlpKfli4cgPCB0YWl5dXVcIDsKK+ijs+ijviA8IG1vc3Vzb1wgOwor6Zmk5qC4IDwgam9rYWt1XCA7Civop6Pmr5IgPCBnZWRva3VcIDsKK+mZsOaapiA8IGlucmVraVwgOwor54Sh5qyyIDwgbXV5b2t1XCA7CivoqqPlkYogPCBidWtva3VcIDsKK+Wkp+WIhiA8IGRhaWJ1blwgOwor5aSn5YiAIDwgZGFpdG91XCA7Civpm5HlqZogPCB6YWtrb25cIDsKK+aQjeiAlyA8IHNvbm1vdVwgOwor5Zyn6L+rIDwgYXBwYWt1XCA7CivlpKflh6EgPCBvb3lvc29cIDsKK+maj+aJgCA8IHp1aXNob1wgOwor6ZuF5a6iIDwgZ2FrYWt1XCA7CivlpKnlhbUgPCB0ZW5wZWlcIDsKK+m1pSA8IGtha2VzdVwgOwor6Zqg5b+NIDwgaW4nJ25pblwgOwor6Zmk5pyNIDwgam9mdWt1XCA7CivptKwgPCB1Z3Vpc3VcIDsKK+Wkp+WFqCA8IHRhaXplblwgOwor6bSOIDwga2Ftb21lXCA7Civpm7vlkb0gPCBkZW5tZWlcIDsKK+ijnOiouyA8IGhvY2h1dVwgOwor5pG454mMIDwgbW91cGFpXCA7CivmhJvnhZnlrrYgPCBhaWVua2FcIDsKK+mDqOWxi+edgCA8IGhleWFnaVwgOwor6ZyK5YmjIDwgcmVpa2VuXCA7CivmlbDlkI0gPCBzdXVtZWlcIDsKK+ihqOmfsyA8IGh5b3VvblwgOwor5LqI5YKZ6LK7IDwgeW9iaWhpXCA7CivlpJbli6QgPCBnYWlraW5cIDsKK+maj+aEnyA8IHp1aWthblwgOwor6bG4IDwgc3V6dWtpXCA7Civngq/nnLwgPCBrZWlnYW5cIDsKK+mxsCA8IHNoaWlyYVwgOwor5aSc5YeqIDwgeW9uYWdpXCA7Civpmo/mg7MgPCB6dWlzb3VcIDsKK+mwuSA8IGthdHN1b1wgOwor5o6o6KuWIDwgc3Vpcm9uXCA7CivpsK8gPCBpd2FzaGlcIDsKK+WkieWQjSA8IGhlbm1laVwgOwor57Wm5rK5IDwga3l1dXl1XCA7CivpsJogPCBoYXJha2FcIDsKK+e1gueEiSA8IHNodXVlblwgOwor6bCGIDwgc2F3YXJhXCA7CivnhrHlnosgPCBuZWtrZWlcIDsKK+mbt+WQjCA8IHJhaWRvdVwgOwor6Zyn5LitIDwgbXVjaHV1XCA7Civpr7EgPCBzaGFjaGlcIDsKK+mvsCA8IG5hbWF6dVwgOwor6a+oIDwga3VqaXJhXCA7Civpr6MgPCBzdXJ1bWVcIDsKK+aVsOWNgyA8IHN1dXNlblwgOwor5pWw5Y2BIDwgc3V1anV1XCA7CivopoHnlKggPCB5b3V5b3VcIDsKK+e2muaYoCA8IHpva3VlaVwgOwor5Z+055SfIDwgaGFueXV1XCA7CivlpJblh7ogPCBzb3RvZGVcIDsKK+mbsuWRkSA8IHdhbnRhblwgOwor6a6qIDwgbWFndXJvXCA7CivntZDmu54gPCBrZXR0YWlcIDsKK+muliA8IGthamlrYVwgOwor54KJ56uvIDwgcm9iYXRhXCA7Civpm5HloLEgPCB6YXBwb3VcIDsKK+e0r+eKryA8IHJ1aWhhblwgOwor5o6o6KiIIDwgc3Vpa2VpXCA7Civnhaflv5wgPCBzaG91b3VcIDsKK+e4q+WQiCA8IGhvdWdvdVwgOwor5Zub6ZqjIDwgc2hpcmluXCA7CivlpJblhbggPCBnYWl0ZW5cIDsKK+eAmOmBjuWZqCA8IHJva2FraVwgOwor5Zub6ZqFIDwgeW9zdW1pXCA7CivloIXniaIgPCBrZW5yb3VcIDsKK+eBq+e4hCA8IGhpbmF3YVwgOwor5aSJ5YuVIDwgaGVuZG91XCA7Civpmo/lvpMgPCB6dWlqdXVcIDsKK+mbhOWkpyA8IHl1dWRhaVwgOwor5paH5L6LIDwgYnVucmVpXCA7Civpm6PllY8gPCBuYW5tb25cIDsKK+aVmeWUhiA8IGt5b3VzYVwgOwor5o6i6KiqIDwgdGFuYm91XCA7Civmjbvou6IgPCBuZW50ZW5cIDsKK+aVmeWToSA8IGt5b3VpblwgOwor5Zuz6YyyIDwgenVyb2t1XCA7CivlpKfku6MgPCBkYWlkYWlcIDsKK+ijnOWKqeWToSA8IGhvam9pblwgOwor6KOP6KWfIDwgdXJhZXJpXCA7CivlnJ/otrMgPCBkb3Nva3VcIDsKK+WkluWCtSA8IGdhaXNhaVwgOwor5o6I6LOeIDwganVzaG91XCA7CivopovniakgPCBtaW1vbm9cIDsKK+WkqeS4vCA8IHRlbmRvblwgOwor5aSn5LmxIDwgdGFpcmFuXCA7CivnhafluqYgPCBzaG91ZG9cIDsKK+aWh+S6uiA8IGJ1bmppblwgOwor5aSn5LmXIDwgZGFpam91XCA7Civlo7Llk4EgPCBiYWloaW5cIDsKK+WkqeS4jiA8IHRlbicneW9cIDsKK+WcsOisoSA8IGppdXRhaVwgOwor6KO96Iy2IDwgc2VpY2hhXCA7CivlpJzkvL0gPCB5b3RvZ2lcIDsKK+WkmuS9nCA8IHRhc2FrdVwgOwor6ZW36ICFIDwgY2hvdWphXCA7Civlo7LlkI0gPCBiYWltZWlcIDsKK+WhiuaguSA8IGthaWtvblwgOwor54Sa5pu4IDwgZnVuc2hvXCA7CivmkYLnlJ8gPCBzZXNzZWlcIDsKK+mWouepuiA8IGthbmt1dVwgOwor54Sh5piOIDwgbXVteW91XCA7Civmr5TkuJjlsLwgPCBiaWt1bmlcIDsKK+WbvemBiyA8IGtva3V1blwgOwor6ZaJ57WMIDwgaGVpa2VpXCA7CivooYDppIUgPCBrZXBwZWlcIDsKK+mbu+WBnCA8IGRlbnRlaVwgOwor5pWw5YCkIDwgc3V1Y2hpXCA7CivplqLnqI4gPCBrYW56ZWlcIDsKK+aVsOWAjSA8IHN1dWJhaVwgOwor5aSc5LitIDwgeW9uYWthXCA7CivmlaPlhbUgPCBzYW5wZWlcIDsKK+WkluS6uiA8IGdhaWppblwgOwor5aOH5aC0IDwgZGFuam91XCA7CivmjajouqsgPCBzdXRlbWlcIDsKK+Whl+aWmSA8IHRvcnlvdVwgOwor57Sg54S8IDwgc3V5YWtpXCA7CivnhZnluZUgPCBlbm1ha3VcIDsKK+WkluS5sSA8IGdhaXJhblwgOwor6ZuR5ZOBIDwgemFwcGluXCA7Civop6PmlaMgPCBrYWlzYW5cIDsKK+aTseW6pyA8IGtha3V6YVwgOwor57K+57K+IDwgc2VpemVpXCA7Civntbbmma8gPCB6ZWtrZWlcIDsKK+ioseWuuSA8IGt5b3lvdVwgOwor5Zyw6KOBIDwgY2hpc2FpXCA7Civnsr7nsokgPCBzZWlmdW5cIDsKK+mekCA8IGtvaGF6ZVwgOwor5o2V6YC4IDwgaG9pdHN1XCA7CivmlZHliqkgPCBreXV1am9cIDsKK+eyvuexsyA8IHNlaW1haVwgOwor5pS55ZaEIDwga2FpemVuXCA7CivlnKfoppogPCBha2tha3VcIDsKK+aVsOS6uiA8IHN1dW5pblwgOwor6Zmw5b6zIDwgaW50b2t1XCA7CivngavnqK4gPCBoaWRhbmVcIDsKK+mcniA8IGthc3VtaVwgOwor6ZyZIDwgbWl6b3JlXCA7CivoqK3lrpogPCBzZXR0ZWlcIDsKK+ipqeWQnyA8IHNoaWdpblwgOwor6ZubIDwgaGl5b2tvXCA7CivntK/muJsgPCBydWlnZW5cIDsKK+e0lOeEtiA8IGp1bnplblwgOwor5pWw5LiHIDwgc3V1bWFuXCA7CivlpInkubEgPCBoZW5yYW5cIDsKK+azouatouWgtCA8IGhhdG9iYVwgOwor6Zmq5b6TIDwgYmFpanV1XCA7CivooaPpiaIgPCBpaGF0c3VcIDsKK+iiq+imhiA8IGhpZnVrdVwgOwor54Kv54KvIDwga2Vpa2VpXCA7Civngq3ngasgPCBzdW1pYmlcIDsKK+WbveiyuyA8IGtva3VoaVwgOwor5Zyw6JmrIDwgbWltaXp1XCA7Civlm57pgYogPCBrYWl5dXVcIDsKK+ims+ahnCA8IGthbicnb3VcIDsKK+aYk+WLleW6piA8IGlkb3Vkb1wgOwor5Z6C56+EIDwgc3VpaGFuXCA7Civpm6Pku7YgPCBuYW5rZW5cIDsKK+iok+WwjiA8IGt1bmRvdVwgOwor6ZGiIDwgeWFzdXJpXCA7CivntbXlm7PpnaIgPCBlenVtZW5cIDsKK+aVl+S6oSA8IGhhaWJvdVwgOwor5aOy5Lq6IDwgYmFpbmluXCA7Civmva7plpMgPCBzaGlvbWFcIDsKK+ijuOWppueUuyA8IHJhZnVnYVwgOwor6Zui5LmzIDwgcmlueXV1XCA7Civoo4/oirggPCB1cmFnZWlcIDsKK+Wbnui7oiA8IGthaXRlblwgOwor5aC05pWwIDwgYmFrYXp1XCA7Civngavnmr8gPCBoaXphcmFcIDsKK+atqeS4gOatqSA8IGhvaXBwb1wgOwor5aKX5aSnIDwgem91ZGFpXCA7CivnuIHlhYggPCBlbnNha2lcIDsKK+S4ieWNgei3ryA8IG1pc29qaVwgOwor5aOy5LiKIDwgdXJpYWdlXCA7Civpm5Hkv7MgPCB6YXBwYWlcIDsKK+WbveiqniA8IGtva3Vnb1wgOwor6Yy6IDwga2F6YXJpXCA7CivntYzmm7ggPCBrZWlzaG9cIDsKK+aUueWFgyA8IGthaWdlblwgOwor5o+b566XIDwga2FuemFuXCA7CivnspfnspcgPCBhcmFhcmFcIDsKK+eCiueIqCA8IHN1aXNhblwgOwor5r+A6KqeIDwgZ2VraWdvXCA7CivntKHmr5sgPCBib3Vtb3VcIDsKK+eEoeW/gyA8IG11c2hpblwgOwor57Sr5qqAIDwgc2hpdGFuXCA7CivnuIHlgbQgPCBlbmdhd2FcIDsKK+S4jeaymeaxsCA8IGJ1c2F0YVwgOwor6YqNIDwgY2hpdHN1XCA7Civoo5znv5IgPCBob3NodXVcIDsKK+mZo+WxiyA8IGppbicneWFcIDsKK+mbkeS7tiA8IHpha2tlblwgOwor6YmLIDwga2FuJyduYVwgOwor5LiN5q276LqrIDwgZnVqaW1pXCA7Civpm5HkurogPCB6b3VuaW5cIDsKK+e3tOWFtSA8IHJlbnBlaVwgOwor5aKT5aC0IDwgaGFrYWJhXCA7Civpm4Xkv5cgPCBnYXpva3VcIDsKK+mGqiA8IG1vcm9taVwgOwor5pS+5Lu7IDwgaG91bmluXCA7CivliqDlpYjpmYAgPCBrYW5hZGFcIDsKK+aOqOiAgyA8IHN1aWtvdVwgOwor57SU5q+bIDwganVubW91XCA7CivntIXmtpkgPCBrb3VydWlcIDsKK+e0oOaouCA8IHNvYm9rdVwgOwor5Zm06aOvIDwgZnVucGFuXCA7CivntpnlrZAgPCBtYW1ha29cIDsKK+e0lOatoyA8IGp1bnNlaVwgOwor6KaH5qWtIDwgaGFneW91XCA7CivngavnjokgPCBoaWRhbWFcIDsKK+ioquWVjyA8IGhvdW1vblwgOwor6ZW355uuIDwgbmFnYW1lXCA7CivntbHlvqEgPCB0b3VneW9cIDsKK+mBliA8IGFwcGFyZVwgOwor6J+76aOfIDwgYXJpa3VpXCA7CivmkL7msrkgPCBzYWt1eXVcIDsKK+S7pemBoOaoqSA8IGllbmtlblwgOwor6KG/6KOPIDwgZXJpdXJhXCA7Civoo5zntaYgPCBob2t5dXVcIDsKK+aWvemkk+msvCA8IHNlZ2FraVwgOwor6KmV5L6hIDwgaHlvdWthXCA7CivploDnlaogPCBtb25iYW5cIDsKK+Wbs+ihqCA8IHp1aHlvdVwgOwor6L+aIDwgdG90ZW1vXCA7CivnsbPntr8gPCBiZWltZW5cIDsKK+WhueWjlSA8IHphbmdvdVwgOwor5LiJ6YeN55yMIDwgbWlla2VuXCA7Civnt5HljJYgPCByeW9ra2FcIDsKK+mZi+WxiyA8IHJvdW9rdVwgOwor5Zyw6IKMIDwgamloYWRhXCA7CivpmLLlvL4gPCBib3VkYW5cIDsKK+W+oeaymeaxsCA8IGdvc2F0YVwgOwor6KiA5aSWIDwgZ2VuZ2FpXCA7Civnt4/li6IgPCBzb3V6ZWlcIDsKK+WbnuiokyA8IGthaWt1blwgOwor57WQ5oiQIDwga2Vzc2VpXCA7Civou4ggPCB5YWdhdGVcIDsKK+e0hOasviA8IHlha2thblwgOwor6Lq7IDwgdXRzdWtlXCA7Civouq4gPCBzZWdhcmVcIDsKK+aSpOW7gyA8IHRlcHBhaVwgOwor5Zug6KWyIDwgaW5zaHV1XCA7CivnsbPnsokgPCBiZWlmdW5cIDsKK+eFqeWKtCA8IGhhbnJvdVwgOwor5aKo5YiRIDwgYm9ra2VpXCA7CivnhKHlraYgPCBtdWdha3VcIDsKK+avm+e5u+WtkCA8IGtlanVzdVwgOwor5o+P56C0IDwgYnlvdWhhXCA7CivmkZjmnpwgPCB0ZWtpa2FcIDsKK+mZsOWaoiA8IGZ1Z3VyaVwgOwor6Li1IDwga2FrYXRvXCA7CivkuI3lkIzmhI8gPCBmdWRvdWlcIDsKK+aLs+mKgyA8IGtlbmp1dVwgOwor56+A6YWSIDwgc2Vzc2h1XCA7CivlmbTploAgPCBmdW5tb25cIDsKK+ihqOijjyA8IGh5b3VyaVwgOwor6ZqP5YiGIDwgenVpYnVuXCA7Civntbblr74gPCB6ZXR0YWlcIDsKK+eyl+ebriA8IHphcmFtZVwgOwor5ryi6Z+zIDwga2FuJydvblwgOwor5oyH6LyqIDwgeXViaXdhXCA7CivnsonnoJUgPCBmdW5zYWlcIDsKK+mZsOWUhyA8IGluc2hpblwgOwor6Zqj5Lq6IDwgcmluamluXCA7CivnsbPnqoEgPCBtxJN0b3J1XCA7CivntKDmlbUgPCBzdXRla2lcIDsKK+Wil+WIiiA8IHpvdWthblwgOwor5aKX5YiGIDwgem91YnVuXCA7Civmva7ot68gPCBzaGlvamlcIDsKK+ihk+ioiCA8IGp1a2tlaVwgOwor57SN5p2vIDwgbm91aGFpXCA7CivooYborbAgPCBzaHV1Z2lcIDsKK+eCueaVsCA8IHRlbnN1dVwgOwor57SN5pysIDwgbm91aG9uXCA7Civmi7PpgZMgPCBrb25kb3VcIDsKK+mZo+WWtiA8IGppbicnZWlcIDsKK+e0meaVsCA8IHNoaXN1dVwgOwor57Sb5pO+IDwgZnVuam91XCA7CivploDnga8gPCBtb250b3VcIDsKK+aLoOmHkSA8IGt5b2tpblwgOwor6ZaA54GrIDwga2Fkb2JpXCA7Civntbblpb0gPCB6ZWtrb3VcIDsKK+e0oOaPjyA8IHNvYnlvdVwgOwor6KKx57SXIDwgZnVrdXNhXCA7Civpmo/kvLQgPCB6dWloYW5cIDsKK+aPkOeQtCA8IHRlaWtpblwgOwor6KiY5YWlIDwga2lueXV1XCA7CivlnKjnsbMgPCB6YWliZWlcIDsKK+immuaCnyA8IGtha3Vnb1wgOwor5aKX5L+4IDwgem91aG91XCA7Civlopfkvr8gPCB6b3ViaW5cIDsKK+iogSA8IGdvbmJlblwgOwor5ryP6Zu7IDwgcm91ZGVuXCA7Civkuojlgpnnp5EgPCB5b2Jpa2FcIDsKK+ikkOeCrSA8IGthdHRhblwgOwor5o6755eSIDwgc291eW91XCA7Civngonmo5ogPCByb2RhbmFcIDsKK+Wig+WGhSA8IGtlaWRhaVwgOwor5o6o55+lIDwgc3VpY2hpXCA7CivngavmsLQgPCBoaW1penVcIDsKK+imgeaJgCA8IHlvdXNob1wgOwor5Zyw56iOIDwgY2hpemVpXCA7CivntbnlnLAgPCBraW51amlcIDsKK+axn+aIuOWJjSA8IGVkb21hZVwgOwor57K+5rayIDwgc2VpZWtpXCA7CivmjqLnn6UgPCB0YW5jaGlcIDsKK+WZqOmHjyA8IGtpcnlvdVwgOwor6KCNIDwgc2Fzb3JpXCA7Civplbfmua8gPCBuYWdheXVcIDsKK+a8uOi/kSA8IHplbmtpblwgOwor6Zmi5YaFIDwgaW4nJ25haVwgOwor5aC05aSWIDwgam91Z2FpXCA7CivlnoLmupYgPCBzdWlqdW5cIDsKK+eEoeWRiiA8IG11a29rdVwgOwor6KiT5LukIDwga3VucmVpXCA7CivntK/lubQgPCBydWluZW5cIDsKK+Wcp+elniA8IGFzc2hpblwgOwor57Gz55SjIDwgYmVpc2FuXCA7CivntZDlqZogPCBrZWtrb25cIDsKK+e0jeaJgCA8IG5hc3Nob1wgOwor6JuNIDwgaG90YXJ1XCA7CivmkqTlm54gPCB0ZWtrYWlcIDsKK+exoOebriA8IGthZ29tZVwgOwor57SU5oSbIDwganVuJydhaVwgOwor5omL6by7IDwgdGViYW5hXCA7Civplbfms6IgPCBjaG91aGFcIDsKK+Wegua2jiA8IHp1aXplblwgOwor57Si5byVIDwgc2FrdWluXCA7CivntJTmg4UgPCBqdW5qb3VcIDsKK+e1tuWTgSA8IHplcHBpblwgOwor5o6i55WqIDwgdGFuYmFuXCA7CivploDmra8gPCBtb25zaGlcIDsKK+a/g+e0uiA8IG5vdWtvblwgOwor57SE5omLIDwgeWFrdXRlXCA7CivolrogPCBuYXp1bmFcIDsKK+ihsOiAlyA8IHN1aW1vdVwgOwor562G6aCtIDwgaGl0dG91XCA7CivmjqHnlKggPCBzYWl5b3VcIDsKK+aNlee4myA8IGhvYmFrdVwgOwor6JWoIDwgd2FyYWJpXCA7Civnsonngq0gPCBmdW50YW5cIDsKK+mZquS5lyA8IGJhaWpvdVwgOwor6JS2IDwgc29ub2tvXCA7CivlnKfnnYAgPCBhdHN1Z2lcIDsKK+Weo+aguSA8IGtha2luZVwgOwor6JOsIDwgeW9tb2dpXCA7Civop6PliZYgPCBrYWlib3VcIDsKK+e1seWQiCA8IHRvdWdvdVwgOwor5Zyf55+zIDwgZG9zZWtpXCA7CivokoUgPCBzdWt1bW9cIDsKK+WcsOeVqiA8IGNoaWJhblwgOwor54Sa5YiRIDwgZnVua2VpXCA7CivntLDlrZcgPCBob3NvamlcIDsKK+eEoeWEnyA8IG11c2hvdVwgOwor57WC5aScIDwgc2h1dXlhXCA7CivoqIDkuIogPCBnb25qb3VcIDsKK+S/neitt+WMuiA8IGhvZ29rdVwgOwor6ZaT5pyNIDwgYWlmdWt1XCA7CivmtYXojIXnlJ8gPCBhc2FqaXVcIDsKK+eEoeWCtyA8IG11a2l6dVwgOwor5pKk5Y67IDwgdGVra3lvXCA7CivojLggPCBraW5va29cIDsKK+WboOe4gSA8IGluJyduZW5cIDsKK+WYhumhmCA8IHRhbmdhblwgOwor5r6x57KJIDwgZGVucHVuXCA7CivopoHlrrMgPCB5b3VnYWlcIDsKK+e0meWxiyA8IGthbWl5YVwgOwor6ZaT5pWwIDwgbWFrYXp1XCA7Civlm73npoEgPCBrb2traW5cIDsKK+aMv+e1tSA8IHNhc2hpZVwgOwor5Zyw542EIDwgamlnb2t1XCA7CivlnoLmpYogPCBzdWl5b3VcIDsKK+Wcn+eUoyA8IG1peWFnZVwgOwor6Kej5L2TIDwga2FpdGFpXCA7CivmjqXngrkgPCBzZXR0ZW5cIDsKK+WbveekjiA8IGtva3Vzb1wgOwor6IagIDwgbmlrYXdhXCA7Civnq6/pupcgPCB0YW5yZWlcIDsKK+ihgOiGvyA8IGNoaXVtaVwgOwor6Kej5Lu7IDwga2FpbmluXCA7CivntJnlrZAgPCBrYW1pa29cIDsKK+eCreWxpCA8IHRhbnNvdVwgOwor5pKk5YW1IDwgdGVwcGVpXCA7CivntK/lopcgPCBydWl6b3VcIDsKK+ihjOiAhSA8IGd5b3VqYVwgOwor54OI5aOrIDwgcmVzc2hpXCA7CivmvKvoq4cgPCBtYW5kYW5cIDsKK+aJi+mnkiA8IHRlZ29tYVwgOwor5aCF5aGBIDwga2VucnVpXCA7CivlrrblhbflsYsgPCBrYWd1eWFcIDsKK+aJi+mmliA8IHRla3ViaVwgOwor5bCP5rCX5ZGzIDwga29raW1pXCA7Civngonlv4MgPCByb3NoaW5cIDsKK+ethumLkiA8IGhpcHBvdVwgOwor5aCC5aCCIDwgZG91ZG91XCA7CivopqrlkowgPCBzaGlud2FcIDsKK+WeguacqCA8IHRhcnVraVwgOwor5aC05YaFIDwgam91bmFpXCA7CivmjInohbkgPCBhbnB1a3VcIDsKK+WcsOeCuSA8IGNoaXRlblwgOwor6ZeH5bGLIDwgeWFtaXlhXCA7CivntbbkuJYgPCB6ZXNzZWlcIDsKK+e1hOWQiCA8IGt1bWlhaVwgOwor5omL6aCDIDwgdGVnb3JvXCA7CivopoblnJ8gPCBmdWt1ZG9cIDsKK+WfueWcsCA8IGJhaWNoaVwgOwor5Zue56S8IDwga2FpcmVpXCA7CivmiYDpoZggPCBzaG9nYW5cIDsKK+e1kOWFmiA8IGtldHRvdVwgOwor57SU5aKXIDwganVuem91XCA7CivnuIUgPCBvZG9zaGlcIDsKK+ijveadkCA8IHNlaXphaVwgOwor54OZ5Y2wIDwgcmFrdWluXCA7CivmiYvpmpsgPCB0ZWdpd2FcIDsKK+aJi+mamSA8IHRlc3VraVwgOwor6Kaq5YiGIDwgb3lhYnVuXCA7CivnrYnovrogPCB0b3VoZW5cIDsKK+eCueWcqCA8IHRlbnphaVwgOwor57Wm5LiOIDwga3l1dXlvXCA7Civngq3lobUgPCB0YW5qaW5cIDsKK+eyl+acjSA8IHNvZnVrdVwgOwor5Z+f5aSWIDwgaWtpZ2FpXCA7CivntLDlkJsgPCBzYWlrdW5cIDsKK+WkqeialeezuCA8IHRlZ3VzdVwgOwor57OSIDwgaG9zaGlpXCA7Civmi5nokZcgPCBzZXRjaG9cIDsKK+aJi+mVtyA8IHRlbmFnYVwgOwor6ZeH5aScIDwgeWFtaXlvXCA7Civlm73njosgPCBrb2t1b3VcIDsKK+eyieacrCA8IGZ1bnBvblwgOwor5ZyP54K5IDwga2VudGVuXCA7CivngavluoogPCBoaWRva29cIDsKK+ihgOeuoSA8IGtla2thblwgOwor57WM5LydIDwga2VpZGVuXCA7Civooajnmq4gPCBoeW91aGlcIDsKK+esgiA8IHV0c3Vib1wgOwor5o6S5rC0IDwgaGFpc3VpXCA7Civlm73niLYgPCBrb2t1ZnVcIDsKK+e0sOWIhiA8IHNhaWJ1blwgOwor56uIIDwga2FtYWRvXCA7CivmjIHntpogPCBqaXpva3VcIDsKK+aPoeaJiyA8IGFrdXNodVwgOwor5omL6Y2LIDwgdGVuYWJlXCA7Civnq5zppqwgPCByeXV1bWVcIDsKK+eqrum8oCA8IGt5dXVzb1wgOwor5Z+O5aGBIDwgam91cnVpXCA7Civmu5Hou4ogPCBrYXNzaGFcIDsKK+erpemhlCA8IGRvdWdhblwgOwor56ekIDwgaGFrYXJpXCA7CivploDlvJ8gPCBtb250ZWlcIDsKK+aIpumbsiA8IHNlbicndW5cIDsKK+emiiA8IG1pc29naVwgOwor5omL6YmkIDwgdGVrYWdpXCA7Civmub7poK0gPCB3YW50b3VcIDsKK+e0jeWTgSA8IG5vdWhpblwgOwor5pCN5a6zIDwgc29uZ2FpXCA7CivnsbPmnZAgPCBiZWl6YWlcIDsKK+eVsOaWh+WMliA8IGlidW5rYVwgOwor5rqA6Z2iIDwgbWFubWVuXCA7Civnq5zpoK0gPCByeXV1enVcIDsKK+WWq+mjryA8IGtpcHBhblwgOwor57Si5YW3IDwgc2FrdWd1XCA7Civoo4/mnb8gPCB1cmFpdGFcIDsKK+aJi+mFjCA8IHRlamFrdVwgOwor5ouZ6ICFIDwgc2Vzc2hhXCA7CivnoKYgPCB0b3JpZGVcIDsKK+mVt+W6pyA8IGNob3V6YVwgOwor6ZaJ5bGxIDwgaGVpemFuXCA7CivlnLDmpJwgPCBjaGlrZW5cIDsKK+mWi+WwgSA8IGthaWZ1dVwgOwor54Kt5Yq0IDwgdGFucm91XCA7CivntJTliIYgPCBqdW5idW5cIDsKK+WdpuaHkCA8IHRhbmthaVwgOwor5rqA6ZaLIDwgbWFua2FpXCA7CivntK/kuZcgPCBydWlqb3VcIDsKK+aOqOaWrSA8IHN1aWRhblwgOwor5om56KmVIDwgaGloeW91XCA7Civmjojmpa0gPCBqdWd5b3VcIDsKK+S9jeebuOW3riA8IGlzb3VzYVwgOwor57Sv5LiWIDwgcnVpc2VpXCA7CivooYDnm7ggPCBrZXNzb3VcIDsKK+ikh+W6pyA8IGZ1a3V6YVwgOwor5r+D5rehIDwgbm91dGFuXCA7CivmiYvou70gPCB0ZWdhcnVcIDsKK+WcqOagoSA8IHphaWtvdVwgOwor6KSl5ammIDwgam9rdWZ1XCA7CivplbflsYsgPCBuYWdheWFcIDsKK+ihgOeXsCA8IGtldHRhblwgOwor6ZaL5aeLIDwga2Fpc2hpXCA7Civln5/lhoUgPCBpa2luYWlcIDsKK+mVt+WvvyA8IGNob3VqdVwgOwor5Zyo5p2lIDwgemFpcmFpXCA7Civoo4Hmlq0gPCBzYWlkYW5cIDsKK+eTvCA8IHNhcmFrZVwgOwor5oqc6JCDIDwgYmFzc3VpXCA7CivntJvkuokgPCBmdW5zb3VcIDsKK+aJi+i2syA8IHRlYXNoaVwgOwor5Zyn5pyNIDwgYXBwdWt1XCA7CivntJvkubEgPCBmdW5yYW5cIDsKK+a9sOeYjSA8IGthaXlvdVwgOwor5o6o5oyZIDwgc3Vpa3lvXCA7Civlm73mr40gPCBrb2t1Ym9cIDsKK+eykuW6piA8IHJ5dXVkb1wgOwor5Zyw5paHIDwgY2hpbW9uXCA7CivolpToloflnJIgPCBiYXJhZW5cIDsKK+a4uOmtmiA8IHl1dWd5b1wgOwor5Zyf5pyoIDwgZG9ib2t1XCA7CivnsbPmh4cgPCBiZWlrb25cIDsKK+mWo+WToSA8IGtha3VpblwgOwor6ZaA5aSWIDwgbW9uZ2FpXCA7Civmjbrmn5MgPCBuYXNzZW5cIDsKK+WfjuWFtSA8IGpvdWhlaVwgOwor5ryB6Ii5IDwgZ3lvc2VuXCA7CivpgY7muKHmnJ8gPCBrYXRva2lcIDsKK+mXh+WApCA8IHlhbWluZVwgOwor54u4IDwgdGFudWtpXCA7CivmjIHnl4UgPCBqaWJ5b3VcIDsKK+mVt+WlsyA8IGNob3Vqb1wgOwor5Zu95qipIDwga29ra2VuXCA7CivntIrkubEgPCBidW5yYW5cIDsKK+Wcn+aWuSA8IGRva2F0YVwgOwor5omT6Ki6IDwgZGFzaGluXCA7CivlnKfmkL4gPCBhc3Nha3VcIDsKK+a8lOe5uSA8IGVuJydla2lcIDsKK+ijnOW8tyA8IGhva3lvdVwgOwor6ZaA5ZywIDwgbW9uY2hpXCA7Civnq4vpjJAgPCByaXNzdWlcIDsKK+WWhOmaoyA8IHplbnJpblwgOwor5oim6LuKIDwgc2Vuc2hhXCA7CivmiYvoqLEgPCB0ZW1vdG9cIDsKK+ihsOauiyA8IHN1aXphblwgOwor57KJ5bGLIDwga29uYXlhXCA7CivmiYDoq5YgPCBzaG9yb25cIDsKK+Wbo+askiA8IGRhbnJhblwgOwor5rqA6LyJIDwgbWFuc2FpXCA7CivlsYXloLTmiYAgPCBpYmFzaG9cIDsKK+a6gOi7iiA8IG1hbnNoYVwgOwor5Zyo5omAIDwgemFpc2hvXCA7CivnsbPluJ0gPCBiZWl0ZWlcIDsKK+WWnemHhyA8IGthc3NhaVwgOwor6Juu6aKoIDwgYmFucHV1XCA7Civmh4fpoZggPCBrb25nYW5cIDsKK+ethuiHtCA8IGhpdGNoaVwgOwor5Zuz5p+EIDwgenVnYXJhXCA7CivmiIrovrAgPCBib3NoaW5cIDsKK+WbveaYryA8IGtva3V6ZVwgOwor57Oe5L6/IDwgZnVuYmVuXCA7CivpgZXlkozmhJ8gPCBpd2FrYW5cIDsKK+a9rueArCA8IHNoaW9zZVwgOwor56ul6LKeIDwgZG91dGVpXCA7CivnqoHpoqggPCB0b3BwdXVcIDsKK+eBq+WFiCA8IGhvc2FraVwgOwor57Gz5bGLIDwga29tZXlhXCA7CivngavlhYMgPCBoaW1vdG9cIDsKK+WcsOW9oiA8IGNoaWtlaVwgOwor5riaIDwgbmFnaXNhXCA7Civnsr7li6QgPCBzZWlraW5cIDsKK+aKnOezuCA8IGJhc3NoaVwgOwor56m06aasIDwgYW5hdW1hXCA7CivngavlgrcgPCB5YWtlZG9cIDsKK+a7heiPjCA8IG1la2tpblwgOwor55Sf6JWO6bqmIDwga2lzb2JhXCA7CivnrYbogJUgPCBoaWtrb3VcIDsKK+mOruittyA8IGNoaW5nb1wgOwor6Juu6Zq3IDwgYmFucmVpXCA7Civmto4gPCB5b2RhcmVcIDsKK+ethuiAhSA8IGhpc3NoYVwgOwor5Zyo5b25IDwgemFpZWtpXCA7CivlnLDlubMgPCBjaGloZWlcIDsKK+aOqOWumiA8IHN1aXRlaVwgOwor5ZWP6aGMIDwgbW9uZGFpXCA7CivploDliY0gPCBtb256ZW5cIDsKK+Wbm+ahgSA8IHlva2V0YVwgOwor6KGM5q6KIDwgZ3lvdWpvXCA7Civnqbrpn7MgPCBzb3JhbmVcIDsKK+Wcp+W7tiA8IGF0c3VlblwgOwor6ZaA5Ye6IDwga2Fkb2RlXCA7CivmjqHlr7ggPCBzYWlzdW5cIDsKK+aJtue/vCA8IGZ1eW9rdVwgOwor5rGAIDwgbWlnaXdhXCA7CivmsLUgPCBzYW56dWlcIDsKK+exoOWxhSA8IHJvdWt5b1wgOwor5oe46LuNIDwga2VuZ3VuXCA7Civnqbrpm7sgPCBrdXVkZW5cIDsKK+ijveWTgSA8IHNlaWhpblwgOwor56m66ZqbIDwga3V1c2FpXCA7CivpjZvpjKwgPCB0YW5yZW5cIDsKK+WbveaKgCA8IGtva3VnaVwgOwor6Yyy6Z+zIDwgcm9rdW9uXCA7CivmiYDolLUgPCBzaG96b3VcIDsKK+mWi+S8miA8IGthaWthaVwgOwor5r2f5rmWIDwgc2VraWtvXCA7CivkuI3msJflkbMgPCBidWtpbWlcIDsKK+WWiei8qiA8IG5vZG93YVwgOwor5riL6Z2iIDwganV1bWVuXCA7CivplonkvJogPCBoZWlrYWlcIDsKK+ethue0mSA8IGhpc3NoaVwgOwor56m66ZaoIDwga3V1a2VpXCA7CivmvJTnm64gPCBlbm1va3VcIDsKK+epuumWkyA8IGt1dWthblwgOwor5qi1IDwga2lrb3JpXCA7CivmqK4gPCBob2t1c29cIDsKK+aJjeiKuCA8IHNhaWdlaVwgOwor6KSH5YipIDwgZnVrdXJpXCA7Civoo4/lo7AgPCB1cmFnb2VcIDsKK+a7nue0jSA8IHRhaW5vdVwgOwor5oug54K5IDwga3lvdGVuXCA7CivmiYvoirggPCBzaHVnZWlcIDsKK+a4rOmJmyA8IHNva3VlblwgOwor5Zyo5a6YIDwgemFpa2FuXCA7CivlmbTnhZkgPCBmdW4nJ2VuXCA7CivmpZQgPCBrdXNhYmlcIDsKK+a8gueggiA8IGh5b3VzYVwgOwor6ZaA5Lq6IDwgbW9uamluXCA7CivmpKogPCBrdW51Z2lcIDsKK+ethueulyA8IGhpc3NhblwgOwor5Zu95oGpIDwga29rdW9uXCA7CivmiY3ohZUgPCBzYWl3YW5cIDsKK+WbsOaGiiA8IGtvbnBhaVwgOwor56+A5rC0IDwgc2Vzc3VpXCA7CivnrYbnq68gPCBoaXR0YW5cIDsKK+aJi+iFlSA8IHNodXdhblwgOwor5r2c5rC0IDwgc2Vuc3VpXCA7Civmv4DmgJIgPCBnZWtpZG9cIDsKK+aJjeiDvSA8IHNhaW5vdVwgOwor6Y2b6YCgIDwgdGFuem91XCA7CivmoJ4gPCBzaGlvcmlcIDsKK+WcsOWkiSA8IGNoaWhlblwgOwor6KGA5qCTIDwga2Vzc2VuXCA7CivmiYvogbcgPCB0ZWpva3VcIDsKK+eqk+i+uiA8IG1hZG9iZVwgOwor6KGT5pWwIDwganVzc3V1XCA7CivmnY4gPCBzdW1vbW9cIDsKK+a/geW6piA8IGRha3Vkb1wgOwor5Zyo5aSpIDwgemFpdGVuXCA7CivlnKjlpJYgPCB6YWlnYWlcIDsKK+ihgOabuCA8IGtlc3Nob1wgOwor5Zyw5Z+fIDwgY2hpaWtpXCA7CivmmqYgPCBrb3lvbWlcIDsKK+a4m+mFjSA8IGdlbnBhaVwgOwor56mN6ZuyIDwgc2VraXVuXCA7CivmmLQgPCBzdWJhcnVcIDsKK+a6gOiSmSA8IG1hbm1vdVwgOwor5b6h5q2z5pquIDwgb3NlaWJvXCA7CivmvLjmuJsgPCB6ZW5nZW5cIDsKK+a7keepuiA8IGtha2t1dVwgOwor5rex6ZaTIDwgZnVrYW1hXCA7CivooYDmlpEgPCBrZXBwYW5cIDsKK+eomumwpCA8IHdhcmFzYVwgOwor5rib6YCAIDwgZ2VudGFpXCA7Civnq6/oiYcgPCB0YW50ZWlcIDsKK+aOpeWQuyA8IHNlcHB1blwgOwor5ouY5rOlIDwga291ZGVpXCA7CivnrYvnm64gPCBzdWppbWVcIDsKK+eomumujiA8IGNoaWF5dVwgOwor5LqI5YKZ5ZOhIDwgeW9iaWluXCA7CivonKXonLQgPCB0b2thZ2VcIDsKK+aLneauvyA8IGhhaWRlblwgOwor56ia6a2aIDwgY2hpZ3lvXCA7CivmmKDnlLvljJYgPCBlaWdha2FcIDsKK+WZtOawtCA8IGZ1bnN1aVwgOwor5omL57SZIDwgdGVnYW1pXCA7Civnr4bmm7ggPCB0ZW5zaG9cIDsKK+eorumhniA8IHNodXJ1aVwgOwor5riF6YWSIDwgc2Vpc2h1XCA7CivnsonkvZMgPCBmdW50YWlcIDsKK+WVhumBiyA8IHNob3V1blwgOwor56m66LuiIDwga3V1dGVuXCA7CivmrKfljbDoqp4gPCBvdWluZ29cIDsKK+Wdh+WIhiA8IGtpbmJ1blwgOwor5ruF56eBIDwgbWVzc2hpXCA7Civnqbrou40gPCBrdXVndW5cIDsKK+epuui7iiA8IGt1dXNoYVwgOwor57KL5Lq6IDwgc3VpamluXCA7Civlm7PmoYjlrrYgPCB6dWFua2FcIDsKK+aJi+exoCA8IHRla2Fnb1wgOwor5rqA6IWUIDwgbWFua291XCA7CivmiqvngJ0gPCBoaXJla2lcIDsKK+aJi+eusSA8IHRlYmFrb1wgOwor5omL566hIDwgdGVrdWRhXCA7CivmiYvnrYsgPCB0ZXN1amlcIDsKK+aJi+etiCA8IHRlaGF6dVwgOwor5oyZ5omLIDwga3lvc2h1XCA7CivmiZYgPCBoYW1lcnVcIDsKK+eqgeiyqyA8IHRva2thblwgOwor56u557iBIDwgdGFrZWVuXCA7CivmjpLljbUgPCBoYWlyYW5cIDsKK+a5r+iKsSA8IHl1YmFuYVwgOwor5oeH6KuLIDwga29uc2VpXCA7Civmh4foq4cgPCBrb25kYW5cIDsKK+aNqOWgtCA8IHN1dGViYVwgOwor5rmv6Ii5IDwgeXVidW5lXCA7CivooYbmhJogPCBzaHV1Z3VcIDsKK+aGliA8IG5hbWFqaVwgOwor5rex6YOoIDwgc2hpbmJ1XCA7CivmiLjnsY0gPCBrb3Nla2lcIDsKK+evgOaTjSA8IHNlc3NvdVwgOwor6KKr5ZGKIDwgaGlrb2t1XCA7Civmu4Xnm7ggPCBtZXNzb3VcIDsKK+err+e3miA8IHRhbnNlblwgOwor56uv57eSIDwgdGFuY2hvXCA7CivlnKjli6QgPCB6YWlraW5cIDsKK+a9lOaWjiA8IGtlc3NhaVwgOwor5Zyn5YudIDwgYXNzaG91XCA7CivmtbfpvKAgPCBuYW1ha29cIDsKK+aOpeS8tCA8IHNlcHBhblwgOwor56u557CAIDwgdGFrZXN1XCA7CivlnLDlhYMgPCBqaW1vdG9cIDsKK+a2sumdoiA8IGVraW1lblwgOwor6JuH6LazIDwgZGFzb2t1XCA7Civlm73lnJ8gPCBrb2t1ZG9cIDsKK+W/nOaPtOatjCA8IG91ZW5rYVwgOwor56m66KuWIDwga3V1cm9uXCA7Civnqbroq4cgPCBrdXVkYW5cIDsKK+W9oCA8IGt1d2FrdVwgOwor5ryB5rivIDwgZ3lva291XCA7CivmhJvps6UgPCBhaWNob3VcIDsKK+W7kyA8IGt1cnV3YVwgOwor6KCx5oORIDwga293YWt1XCA7CivmjpLkvr8gPCBoYWliZW5cIDsKK+WbveWWtiA8IGtva3VlaVwgOwor5bmfIDwgbm9ib3JpXCA7CivluYkgPCB0YXp1bmFcIDsKK+aLruaNriA8IGtpa2t5b1wgOwor5oyv5a2QIDwgZnVyaWtvXCA7CivlmbjmlbAgPCB0b25zdXVcIDsKK+a8geazlSA8IGd5b2hvdVwgOwor5Zuj5aGKIDwgZGFua2FpXCA7CivlnLDku6MgPCBjaGlkYWlcIDsKK+WWq+e3iiA8IGtpa2tpblwgOwor5omL55mWIDwgdGVrdXNlXCA7CivpjK/oqqQgPCBzYWt1Z29cIDsKK+eojumWoiA8IHplaWthblwgOwor5bWQIDwgYXJhc2hpXCA7CivmvIHmsJEgPCBneW9taW5cIDsKK+WcqOS9jyA8IHphaWp1dVwgOwor6JqK6YmkIDwga2FiYXJpXCA7CivlnKjku7sgPCB6YWluaW5cIDsKK+a9ruW5siA8IHNoaW9oaVwgOwor5rW36a2aIDwga2FpZ3lvXCA7CivnrpfmlbAgPCBzYW5zdXVcIDsKK+Wcn+S/tSA8IGRvaHlvdVwgOwor5Zyf5L+XIDwgZG96b2t1XCA7CivmiZPnkIMgPCBkYWt5dXVcIDsKK+m8u+mPoSA8IGJpa3lvdVwgOwor5o6I5LmzIDwganVueXV1XCA7CivmtbfpqaIgPCBhc2hpa2FcIDsKK+a8q+aWhyA8IG1hbmJ1blwgOwor6KGo5ZyfIDwgaHlvdWRvXCA7Civlm73li5kgPCBrb2t1bXVcIDsKK+aIkeetiSA8IHdhcmVyYVwgOwor5oy95ZueIDwgYmFua2FpXCA7CivnqbromZogPCBrdXVreW9cIDsKK+Wcn+S4rSA8IGRvY2h1dVwgOwor5omA55SjIDwgc2hvc2FuXCA7Civlq58gPCBqaXl1a3VcIDsKK+iejeeCuSA8IHl1dXRlblwgOwor5ryi5paHIDwga2FuYnVuXCA7CivmiYvnjokgPCB0ZWRhbWFcIDsKK+WWqueroCA8IG1vc2hvdVwgOwor5Zuj5ZOhIDwgZGFuJydpblwgOwor5omL54utIDwgdGV6ZW1hXCA7Civlm73lhYkgPCBrb2trb3VcIDsKK+mKgOmxlyA8IGdpbnJpblwgOwor6Zi/6Jit6ZmAIDwgb3JhbmRhXCA7CivllZPokpkgPCBrZWltb3VcIDsKK+ihhuWkmiA8IHNodXV0YVwgOwor56iO6YeRIDwgemVpa2luXCA7Civpu5LptZAgPCBrdXJvamlcIDsKK+igj+W6pyA8IGthbml6YVwgOwor5ryB5p2RIDwgZ3lvc29uXCA7Civmtbfpm6MgPCBrYWluYW5cIDsKK+epuuiNtyA8IGthcmFuaVwgOwor5Zub5Y2DIDwgeW9uc2VuXCA7Civlm5vljYEgPCB5b25qdXVcIDsKK+WbveS8miA8IGtva2thaVwgOwor5Zy3IDwgYWt1dHN1XCA7Civlm7PkvZMgPCB6dXV0YWlcIDsKK+euseWxiyA8IGhha295YVwgOwor5ruF5rOVIDwgbWVwcG91XCA7CivmirXmipcgPCB0ZWlrb3VcIDsKK+a/geS4liA8IGRha3VzZVwgOwor54Sh5oWI5oKyIDwgbXVqaWhpXCA7CivpvbLonZUgPCB1c2hva3VcIDsKK+ihqOWFtyA8IGh5b3VndVwgOwor5ryB5pKIIDwgZ3lvcm91XCA7CivmuJvogJcgPCBnZW5tb3VcIDsKK+ihjOWPuCA8IGd5b3VqaVwgOwor5Y+X6Kmx5ZmoIDwganV3YWtpXCA7CivnqpLntKAgPCBjaGlzc29cIDsKK+mLreinkiA8IGVpa2FrdVwgOwor56eY6YyyIDwgaGlyb2t1XCA7Civnv7vou4rprZogPCBtYW5ib3VcIDsKK+S4jeWHuuadpSA8IGZ1ZGVraVwgOwor6KGw5LqhIDwgc3VpYm91XCA7Civnq5znjosgPCByeXV1b3VcIDsKK+WZtOWwhCA8IGZ1bnNoYVwgOwor5ZCOIDwga2lzYWtpXCA7CivllY/nvaogPCBtb256YWlcIDsKK+mbkemtmuWvnSA8IHpha29uZVwgOwor5Y6gIDwga2F3YXlhXCA7Civom4fohbkgPCBqYWJhcmFcIDsKK+S8iuWkquWIqSA8IGl0YXJpaVwgOwor5omL5rC0IDwgdGVtaXp1XCA7CivmhJvpg7cgPCBhaWt5b3VcIDsKK+mlgumjqeeyiSA8IHVkb25rb1wgOwor5omL5q+sIDwgdGVtYXJpXCA7CivmipjmipggPCBvcmlvcmlcIDsKK+a5r+eOiSA8IHl1ZGFtYVwgOwor5oyZ5YuVIDwga3lvZG91XCA7CivmtYHpn7MgPCByeXV1b25cIDsKK+aJi+autSA8IHNodWRhblwgOwor5rWB6ZyyIDwgcnl1dXJvXCA7CivmiormjYkgPCBoYXNva3VcIDsKK+a1gemboiA8IHJ5dXVyaVwgOwor6byg6LOKIDwgc296b2t1XCA7CivnlJjmtbfogIEgPCBhbWFlYmlcIDsKK+aMmeWFtSA8IGt5b2hlaVwgOwor5rip56qBIDwgb25kb3J1XCA7CivmiYvmqZ8gPCB0ZWJhdGFcIDsKK+WFnCA8IGthYnV0b1wgOwor5ou35ZWPIDwgZ291bW9uXCA7Civono3mnJcgPCB5dXVyb3VcIDsKK+m6uumhniA8IG1lbnJ1aVwgOwor5rib566XIDwgZ2VuemFuXCA7CivmiYvmpa0gPCB0ZXdhemFcIDsKK+a8uOWilyA8IHplbnpvdVwgOwor5rW36LuNIDwga2FpZ3VuXCA7CivmtojosrsgPCBzaG91aGlcIDsKK+a1qumAnyA8IG5hbml3YVwgOwor6YqA6YmxIDwgZ2lua291XCA7CivllY/nrZQgPCBtb25kb3VcIDsKK+WQuemztCA8IHN1aW1laVwgOwor562G5omNIDwgaGlzc2FpXCA7CivpioDpiLQgPCBnaW5yZWlcIDsKK+a4hee0lCA8IHNlaWp1blwgOwor562G5oimIDwgaGlzc2VuXCA7CivlsI/ppqzpub8gPCBrb2Jha2FcIDsKK+iZmuiqlSA8IGt5b3RhblwgOwor5reL6I+MIDwgcmlua2luXCA7CivmuJvnqI4gPCBnZW56ZWlcIDsKK+etluW/nCA8IHNha3VvdVwgOwor56m656m6IDwga3V1a3V1XCA7Civnq7bmrakgPCBreW91aG9cIDsKK+a4qeefsyA8IG9uamFrdVwgOwor6Jma6KiAIDwga3lvZ2VuXCA7CivmiYvmn4QgPCB0ZWdhcmFcIDsKK+aJi+aetyA8IHRla2FzZVwgOwor5re357eaIDwga29uc2VuXCA7Civku4cgPCBrYXRha2lcIDsKK+ethuaEjyA8IGhpdHN1aVwgOwor5omL5pytIDwgdGVmdWRhXCA7CivlvqHoj5PlrZAgPCBva2FzaGlcIDsKK+etlOW8gSA8IHRvdWJlblwgOwor5rSX6aGUIDwgc2VuZ2FuXCA7CivmtZzovrogPCBoYW1hYmVcIDsKK+m7kumJmyA8IGtva3VlblwgOwor5rqA5rC0IDwgbWFuc3VpXCA7CivmiLjmo5ogPCB0b2RhbmFcIDsKK+m8juirhyA8IHRlaWRhblwgOwor5rm/5rCXIDwgc2hpa2tlXCA7CivmiJHmtYEgPCBnYXJ5dXVcIDsKK+aCqumiqCA8IGFrdWZ1dVwgOwor5rSX6Z2iIDwgc2VubWVuXCA7CivmtIvpoqggPCB5b3VmdXVcIDsKK+epuuegsiA8IGt1dWhvdVwgOwor5r2c5YOPIDwgc2Vuem91XCA7CivmhJvoqq0gPCBhaWRva3VcIDsKK+aJgOacmyA8IHNob21vdVwgOwor5omA5pyJIDwgc2hveXV1XCA7Civpu5LphZIgPCBrdXJva2lcIDsKK+aJk+aSsiA8IGRhYm9rdVwgOwor56aF6ZaAIDwgemVubW9uXCA7CivmiZPmkoMgPCBkYWdla2lcIDsKK+S4ieefpeWcnyA8IHRhdGFraVwgOwor5rSe6ZaAIDwgZG91bW9uXCA7CivlkLjpo7IgPCBreXV1aW5cIDsKK+epuuebriA8IHNvcmFtZVwgOwor5rmv5rC0IDwgeXVtaXp1XCA7CivmgqrpnIogPCBha3VyZWlcIDsKK+aJi+aRuiA8IHRlc3VyaVwgOwor56+A5LyaIDwgc2VjaGllXCA7CivmiJHmrLIgPCBnYXlva3VcIDsKK+a5r+auvyA8IHl1ZG9ub1wgOwor56uv5qCqIDwgaGFrYWJ1XCA7CivmuafmsLQgPCB5dXVzdWlcIDsKK+WWtualrSA8IGVpZ3lvdVwgOwor5rib55SjIDwgZ2Vuc2FuXCA7Civos5PkvY3oqp4gPCBoaW5pZ29cIDsKK+aJi+aLrSA8IHRlZnVraVwgOwor5ZC56ZuqIDwgZnVidWtpXCA7CivmurrmhJsgPCBkZWtpYWlcIDsKK+eti+WtkCA8IHN1amlrb1wgOwor6YmE6Yu8IDwgdGVra291XCA7CivmgozpoIYgPCB0ZWlqdW5cIDsKK+a0l+mMrCA8IHNlbnJlblwgOwor5rqA5p2vIDwgbWFucGFpXCA7CivolqzppIwgPCB5YWt1amlcIDsKK+emj+mBiyA8IGZ1a3V1blwgOwor5pGp6I6r5p6zIDwgbWFtYWtpXCA7CivolqvpoqggPCBrdW5wdXVcIDsKK+mMsueUuyA8IHJva3VnYVwgOwor5ryG5ZmoIDwgc2hpa2tpXCA7CivmtYTosqEgPCBqb3V6YWlcIDsKK+iZjuiQvSA8IG1vZ2FyaVwgOwor5rip54G4IDwgb25reXV1XCA7Civmgqrpiq0gPCBha3VzZW5cIDsKK+WQjemmmSA8IG1laWtvdVwgOwor5ZKM6KizIDwgd2F5YWt1XCA7CivmtpnohbogPCBydWlzZW5cIDsKK+aKseWNtSA8IGhvdXJhblwgOwor5omV5bqVIDwgZnV0dGVpXCA7CivmtIvpioAgPCB5b3VnaW5cIDsKK+mOruaSqyA8IGNoaW5idVwgOwor5Zaq5pyNIDwgbW9mdWt1XCA7CivlkozopqogPCB3YXNoaW5cIDsKK+aJi+W9uSA8IHRleWFrdVwgOwor6YqA6KO9IDwgZ2luc2VpXCA7Civpu5noqLEgPCBtb2treW9cIDsKK+aJi+W9oiA8IHRlZ2F0YVwgOwor5omT5bitIDwgZGFzZWtpXCA7CivolqvpmbYgPCBrdW50b3VcIDsKK+aJi+W8lSA8IHRlYmlraVwgOwor5ri+5rKMIDwga29udG9uXCA7CivmvJTliocgPCBlbmdla2lcIDsKK+emgei8uCA8IGtpbicneXVcIDsKK+a1ruiWhCA8IGZ1aGFrdVwgOwor5ZCM6aGeIDwgZG91cnVpXCA7CivmtIvphZIgPCB5b3VzaHVcIDsKK+aJi+W4syA8IHRlY2hvdVwgOwor5oiQ5pWXIDwgc2VpYmFpXCA7CivomZrogZ4gPCBreW9idW5cIDsKK+mIjemWkyA8IG5vcm9tYVwgOwor6Yed6a2aIDwgaGFyaXlvXCA7Civms6LplpMgPCBuYW1pbWFcIDsKK+m8k+iGnCA8IGtvbWFrdVwgOwor5oar54S2IDwgYmluemVuXCA7CivmgqrpgZMgPCBha3Vkb3VcIDsKK+azoumVtyA8IGhhY2hvdVwgOwor6byT6IW5IDwga29mdWt1XCA7Civms5Xpm6MgPCBob3VuYW5cIDsKK+ayuOmosCA8IGZ1dHRvdVwgOwor56yg5a2QIDwga2FzYWdvXCA7CivmtLvoqIggPCBrYWtrZWlcIDsKK+a7nuWcqCA8IHRhaXphaVwgOwor5rih5riJIDwgdG9zaG91XCA7Civph5HprZogPCBraW5neW9cIDsKK+mKmOiMtiA8IG1laWNoYVwgOwor56eB6JS1IDwgc2hpem91XCA7CivlkbPoppogPCBtaWtha3VcIDsKK+m+leeBryA8IGdhbmRvdVwgOwor6bu06I+MIDwgYmFpa2luXCA7CivmipzliaMgPCBiYWtrZW5cIDsKK+WWhOaguSA8IHplbmtvblwgOwor5ZCN6ZaAIDwgbWVpbW9uXCA7CivnqbrmuK8gPCBrdXVrb3VcIDsKK+mMmOeKtiA8IHN1aWpvdVwgOwor5rq25aqSIDwgeW91YmFpXCA7Civmsr/pnakgPCBlbmtha3VcIDsKK+Wwj+eZvuWQiCA8IHNheXVyaVwgOwor56uv5b25IDwgaGF5YWt1XCA7CivlkYnotoogPCBnb2V0c3VcIDsKK+a3t+eEtiA8IGtvbnplblwgOwor562L5ZCIIDwgc3VqaWFpXCA7CivmuJvms5UgPCBnZW5wb3VcIDsKK+epuua0niA8IGt1dWRvdVwgOwor5rqQ5bmzIDwgZ2VucGVpXCA7CivlkI3pkZEgPCBtZWlrYW5cIDsKK+mHjumnkiA8IG5vZ29tYVwgOwor5rWu6IWrIDwgbXVrdW1pXCA7Civpurvoo48gPCBhc2F1cmFcIDsKK+eorueXmCA8IHNodXRvdVwgOwor6YiN6YeNIDwgZG9uanV1XCA7CivmiYDlrpogPCBzaG90ZWlcIDsKK+a2meeuoSA8IHJ1aWthblwgOwor5omA5a2YIDwgc2hvem9uXCA7Civms6XphZQgPCBkZWlzdWlcIDsKK+a4m+auuiA8IGdlbnNhaVwgOwor5rib5q61IDwgZ2VudGFuXCA7Civpjq7luqcgPCBjaGluemFcIDsKK+WQiOmNtSA8IGFpa2FnaVwgOwor56uL5oayIDwgcmlra2VuXCA7CivnpLzph5EgPCByZWlraW5cIDsKK+a6gOW5siA8IG1hbmthblwgOwor56a96IiOIDwga2luc2hhXCA7CivlkYroq60gPCBrb2t1eXVcIDsKK+epuuashCA8IGt1dXJhblwgOwor5rKh6aCtIDwgYm90dG91XCA7Civlj6Xpm4YgPCBrdXNodXVcIDsKK+aJi+WhqSA8IHRlc2hpb1wgOwor5rm/5biDIDwgc2hpcHB1XCA7Civnq6/lsbEgPCBoYXlhbWFcIDsKK+ernOW6pyA8IHJ5dXV6YVwgOwor6YmE6KO9IDwgdGVzc2VpXCA7Civlj5fpoJggPCBqdXJ5b3VcIDsKK+a4h+awtCA8IGthc3N1aVwgOwor54OP5bi95a2QIDwgZWJvc2hpXCA7CivlkIjph5EgPCBnb3VraW5cIDsKK+a3t+a3hiA8IGtvbmtvdVwgOwor5ZOB562JIDwgaGludG91XCA7CivmgqroqIAgPCBha3VnZW5cIDsKK+WWnOaCpiA8IGtpZXRzdVwgOwor6byT56ybIDwga290ZWtpXCA7CivpurvolqwgPCBtYXlha3VcIDsKK+err+WtkCA8IHRhbnNoaVwgOwor6Jma56S8IDwga3lvcmVpXCA7Civono3lkIggPCB5dXVnb3VcIDsKK+WQjOmCpiA8IGRvdWhvdVwgOwor5oeH5pu4IDwga29uc2hvXCA7Civmub7lsrggPCB3YW5nYW5cIDsKK+a6gOWxsSA8IG1hbnphblwgOwor5omN5Zm4IDwgc2FpdG9uXCA7CivnqLLnhrEgPCBpbW9jaGlcIDsKK+mOruWuiCA8IGNoaW5qdVwgOwor5ZOB56iuIDwgaGluc2h1XCA7Civpu4Toj4ogPCBraWdpa3VcIDsKK+aEmuetliA8IGd1c2FrdVwgOwor5ZCE6YOoIDwga2FrdWJ1XCA7CivnpZbniLbmr40gPCBzb2Z1Ym9cIDsKK+azoui3ryA8IG5hbWlqaVwgOwor5Y+N6Z2iIDwgaGFubWVuXCA7CivljYHlha3lpJwgPCBpemF5b2lcIDsKK+aJgOWcqCA8IHNob3phaVwgOwor5oKq6KGAIDwgb2tldHN1XCA7CivmhajnhLYgPCBnYWl6ZW5cIDsKK+ertuWjsiA8IGtlaWJhaVwgOwor6Je76I2JIDwgbW9ndXNhXCA7Civnp7vnnYAgPCBpY2hha3VcIDsKK+elneipniA8IG5vcml0b1wgOwor5ZCM6LypIDwgZG91aGFpXCA7CivmgKXpoIggPCBreXV1c3VcIDsKK+enmOetliA8IGhpc2FrdVwgOwor5raI56OoIDwgc2hvdW1hXCA7Civmho7msJcgPCBuaWt1Z2VcIDsKK+WQjOi7iiA8IGRvdXNoYVwgOwor5rmW5b+DIDwga29zaGluXCA7CivnqK7ngasgPCB0YW5lYmlcIDsKK+aJi+WTgSA8IHRlamluYVwgOwor5oiR5a62IDwgd2FnYXlhXCA7Civnqbrmm7kgPCBrdXVzb3VcIDsKK+i/guWbnui3ryA8IHVrYWlyb1wgOwor5omN5ZCNIDwgc2FpbWVpXCA7CivnpL7os5MgPCBzaGFoaW5cIDsKK+a2sueKtiA8IGVraWpvdVwgOwor6KWk6KS45a62IDwgYm9yb3lhXCA7CivmgbXotIggPCBrZWl6b3VcIDsKK+ekvOizmyA8IHJhaXNhblwgOwor56mC5rOiIDwgaG9uYW1pXCA7Civpj6TliLsgPCBydWtva3VcIDsKK+mHkemKgCA8IGtpbmdpblwgOwor6YqA57WMIDwgZ2lua2VpXCA7CivlkozntrQgPCB3YXRvamlcIDsKK+mdkue0q+iYhyA8IGFvamlzb1wgOwor57eR5ZWE5pyo6bOlIDwgYW9nZXJhXCA7CivpioDns7ggPCBnaW5zaGlcIDsKK+a3oeawtCA8IHRhbnN1aVwgOwor56m65paHIDwga3V1YnVuXCA7CivlkJ/oqaAgPCBnaW4nJ2VpXCA7CivpioDnsokgPCBnaW5wdW5cIDsKK+aHpuW8sSA8IGRhamFrdVwgOwor5oGt6LOAIDwga3lvdWdhXCA7CivljbXpu4QgPCByYW4nJ291XCA7CivmuoDloYEgPCBtYW5ydWlcIDsKK+aBqeizniA8IG9uc2hvdVwgOwor5rC06bu9IDwgYW1lbmJvXCA7Civlk4Dnl5sgPCBhaXRzdXVcIDsKK+m6puiKvSA8IGJha3VnYVwgOwor5Y+w6LuKIDwgZGFpc2hhXCA7Civlk4HnlaogPCBoaW5iYW5cIDsKK+aJi+WGmSA8IHNodXNoYVwgOwor5rOV6KuWIDwgaG91cm9uXCA7CivmiYvlhYggPCB0ZXNha2lcIDsKK+aBqeiukCA8IG9uc2h1dVwgOwor5Y6f6Z+zIDwgZ2VuJydvblwgOwor56m65oy6IDwga3V1dGVpXCA7CivpiI3ooYwgPCBkb25rb3VcIDsKK+aJi+WCtyA8IHRla2l6dVwgOwor56m65ouzIDwga3V1a2VuXCA7Civph53ot68gPCBzaGlucm9cIDsKK+WQjOiokyA8IGRvdWt1blwgOwor6YeR6LyqIDwga2FuYXdhXCA7CivmsqLovrogPCBzYXdhYmVcIDsKK+m8iOeUsiA8IGJla2tvdVwgOwor56m65omLIDwga2FyYXRlXCA7CivnpLzoo4UgPCByZWlzb3VcIDsKK+epuuaJgCA8IGt1dXNob1wgOwor5b+16aGYIDwgbmVuZ2FuXCA7CivlkIjoqIggPCBnb3VrZWlcIDsKK+m6u+e5lCA8IGFzYW9yaVwgOwor5ZGq57ibIDwganViYWt1XCA7CivnqbrmiKYgPCBrdXVzZW5cIDsKK+aFqOatjiA8IGdhaXRhblwgOwor5b+16aCtIDwgbmVudG91XCA7Civnp5Hnmb0gPCBzZXJpZnVcIDsKK+iWruiaiiA8IHlhYnVrYVwgOwor5rqA5ZOhIDwgbWFuJydpblwgOwor5Y+b6LuNIDwgaGFuZ3VuXCA7Civpu4TnsokgPCBraW5ha29cIDsKK+mOluWbvSA8IHNha29rdVwgOwor5oSB55yJIDwgc2h1dWJpXCA7CivpurvntbIgPCBhc2FpdG9cIDsKK+aJjeS6uiA8IHNhaWppblwgOwor5ZCM6KG+IDwgZG91a2luXCA7Civnq4vlnLAgPCByaXRjaGlcIDsKK+m7kuepgiA8IGt1cm9ib1wgOwor5oOF57eSIDwgam91Y2hvXCA7CivmsoPph44gPCB5b2t1eWFcIDsKK+aEm+eMqyA8IGFpYnlvdVwgOwor6Ya46YCgIDwgam91em91XCA7Civmub7lj6MgPCB3YW5rb3VcIDsKK+mKg+ecvCA8IGp1dWdhblwgOwor56ug5Y+lIDwgc2hvdWt1XCA7Civmhrblv7UgPCBva3VuZW5cIDsKK+aIpuWJjSA8IHNlbnplblwgOwor6bie6Ly/IDwgcmFuJyd5b1wgOwor5oan5oasIDwgZG91a2VpXCA7CivmtrLmsYEgPCBla2lqdXVcIDsKK+aGpOaHoyA8IGZ1bm1hblwgOwor5Y+v6KqtIDwga2Fkb2t1XCA7Civmh7jlnoIgPCBrZW5zdWlcIDsKK+eojuazlSA8IHplaWhvdVwgOwor5Y6z6YeNIDwgZ2VuanV1XCA7CivpioDnm6QgPCBnaW5iYW5cIDsKK+WPi+i7jSA8IHl1dWd1blwgOwor5ZKM552mIDwgd2Fib2t1XCA7CivpioDnm4MgPCBnaW5wYWlcIDsKK+aGpOaFqCA8IGZ1bmdhaVwgOwor6YmE57eaIDwgdGVzc2VuXCA7CivpvLvmr5sgPCBoYW5hZ2VcIDsKK+WPo+iqvyA8IGt1Y2hvdVwgOwor56uv5YCqIDwgdGFuZ2VpXCA7Civph5Hoq4cgPCBraW5kYW5cIDsKK+WPpOiouyA8IGtvY2h1dVwgOwor5rWB55+zIDwgc2FzdWdhXCA7CivpiYTnsokgPCB0ZXBwdW5cIDsKK+m6pueyiSA8IG11Z2lrb1wgOwor5rex5omLIDwgZnVrYWRlXCA7Civpu5Lnm64gPCBrdXJvbWVcIDsKK+aGkOaGqyA8IHJlbmJpblwgOwor5Y6f6YeOIDwgZ2VuJyd5YVwgOwor5Y+X6Ku+IDwganVkYWt1XCA7CivmsJfprLEgPCBraXV0c3VcIDsKK+iWrOiIlyA8IHlha3Vob1wgOwor5ZCN6JGXIDwgbWVpY2hvXCA7CivpiYTnrqEgPCB0ZWtrYW5cIDsKK+mHjeiogCA8IGp1dWdvblwgOwor5rC36ZynIDwgaHlvdW11XCA7Civph5HopbQgPCBraW5yYW5cIDsKK+awtOmdoiA8IG1pbm9tb1wgOwor56aN56aPIDwga2FmdWt1XCA7CivmsLfpm6ggPCBoaXNhbWVcIDsKK+mJhOetiyA8IHRla2tpblwgOwor6YWU6aGUIDwgc3VpZ2FuXCA7CivlkIjokZcgPCBnb3VjaG9cIDsKK+emveeNoyA8IGtpbmp1dVwgOwor5rC06Zu3IDwgc3VpcmFpXCA7Civlj5foqLsgPCBqdWNodXVcIDsKK+awtOmboyA8IHN1aW5hblwgOwor5ZCb6IeoIDwga3VucmluXCA7Civlj5foqJcgPCBqdXRha3VcIDsKK+aIpuS5sSA8IHNlbnJhblwgOwor5LiN5YW35ZCIIDwgZnVndWFpXCA7CivllY/lsYsgPCB0b24nJ3lhXCA7CivpiYTnqpMgPCB0ZXNzb3VcIDsKK+aFp+aVjyA8IGtlaWJpblwgOwor6JuH5bqnIDwgaGViaXphXCA7Civmua/lhYMgPCB5dW1vdG9cIDsKK+m8u+aigSA8IGJpcnlvdVwgOwor5Y+N6KuWIDwgaGFucm9uXCA7CivllpzliocgPCBraWdla2lcIDsKK+aGguaGpCA8IHl1dWZ1blwgOwor5oSf5raZIDwga2FucnVpXCA7CivnqbTlsYUgPCBrZWtreW9cIDsKK+eri+WGrCA8IHJpdHRvdVwgOwor5oaC5oWuIDwgeXV1cnlvXCA7Civlkozni6wgPCB3YWRva3VcIDsKK+mHkeidvyA8IGtpbmJhZVwgOwor5rC06ZaAIDwgc3VpbW9uXCA7CivlloTlk4kgPCB6ZW56YWlcIDsKK+WNmOmfsyA8IHRhbicnb25cIDsKK+mJm+eZvSA8IGVucGFrdVwgOwor5Y+C6KyAIDwgc2FuYm91XCA7CivmhoLmgrYgPCB5dXVtb25cIDsKK+m8u+acqCA8IGhhbmFnaVwgOwor5ZKM54mbIDwgd2FneXV1XCA7CivoloTokYkgPCB1c3V5b3VcIDsKK+WUkOaIuCA8IGthcmFkb1wgOwor5ZCI6Ie0IDwgZ2F0Y2hpXCA7CivljZfpnaIgPCBuYW5tZW5cIDsKK+a1t+a1nCA8IGthaWhpblwgOwor5rCR6aKoIDwgbWlucHV1XCA7CivmgqrnqI4gPCBha3V6ZWlcIDsKK+WQueeuoSA8IHN1aWthblwgOwor6YmE56CyIDwgdGVwcG91XCA7CivlkIToh6ogPCBrYWt1amlcIDsKK+m6u+eWuSA8IG1hc2hpblwgOwor5Zan5LydIDwga2VuZGVuXCA7CivoloTojLYgPCB1c3VjaGFcIDsKK+WNl+mahSA8IG5hbmd1dVwgOwor5oKq56WeIDwgYWt1amluXCA7Civnq4vkvZMgPCByaXR0YWlcIDsKK+WNiumfsyA8IGhhbicnb25cIDsKK+WNl+mZkCA8IG5hbmdlblwgOwor56qB5aCkIDwgdG90dGVpXCA7CivllqrkuK0gPCBtb2NodXVcIDsKK+a4m+WhqSA8IGdlbicnZW5cIDsKK+a4peWcsCA8IGFrdWNoaVwgOwor5reh5b2pIDwgdGFuc2FpXCA7CivmtbfmsLQgPCBrYWlzdWlcIDsKK+a1rua1gSA8IGZ1cnl1dVwgOwor6YeR6JS1IDwga2luem91XCA7CivmhJvmrLIgPCBhaXlva3VcIDsKK+WOs+irhyA8IGdlbmRhblwgOwor6JaE6ImyIDwgdXN1aXJvXCA7Civnpa3npLwgPCBzYWlyZWlcIDsKK+efpeaBteatryA8IGNoaWViYVwgOwor6Jma5qC5IDwga3lva29uXCA7Civlvq7pnIcgPCBiaXNoaW5cIDsKK+mFqemFiiA8IG1laXRlaVwgOwor5ZCM572qIDwgZG91emFpXCA7Civmta7msoggPCBmdWNoaW5cIDsKK+awtOmKgCA8IHN1aWdpblwgOwor5b6h6aGMIDwgZ3lvZGFpXCA7Civlk4Dmpb0gPCBhaXJha3VcIDsKK+epuuWfnyA8IGt1dWlraVwgOwor6YqA5ryiIDwgZ2lua2FuXCA7Civmt7HlsbEgPCBtaXlhbWFcIDsKK+mHjuiSnCA8IG5vYmlydVwgOwor5rS754mIIDwga2FwcGFuXCA7CivmsJfplbcgPCBraW5hZ2FcIDsKK+epuuWcsCA8IGFraWNoaVwgOwor5oSb5qW9IDwgYWlneW91XCA7Civph47oj4ogPCBub2dpa3VcIDsKK+awkemWkyA8IG1pbmthblwgOwor5oKq55u4IDwgYWt1c291XCA7CivlvqHpnIogPCBtaXRhbWFcIDsKK+azlee2siA8IGhvdW1vdVwgOwor5oKy55ebIDwgaGl0c3V1XCA7CivpuqbnlLAgPCBtdWdpdGFcIDsKK+awtOmDtyA8IHN1aWdvdVwgOwor5ZCI57mKIDwgZ291c2VuXCA7CivkuI3otbfoqLQgPCBmdWtpc29cIDsKK+aFouaApyA8IG1hbnNlaVwgOwor5ZCR57GzIDwga291YmVpXCA7CivpioDms6UgPCBnaW5kZWlcIDsKK+iZmuaVsCA8IGt5b3N1dVwgOwor5oKq55arIDwgYWt1ZWtpXCA7CivmsLTovrogPCBtaXp1YmVcIDsKK+eon+aApyA8IGhpbnNlaVwgOwor6Y2b5Ya2IDwgdGFuJyd5YVwgOwor5oKq55SoIDwgYWt1eW91XCA7CivmhInmpb0gPCB5dXJha3VcIDsKK+eEoeWMu+adkSA8IG11aXNvblwgOwor5rC06LuKIDwgc3Vpc2hhXCA7CivomY7mlpEgPCB0b3JhZnVcIDsKK+W+jOmboyA8IGtvdW5hblwgOwor56m65ZCNIDwga3V1bWVpXCA7CivpjKblnLAgPCBraW5jaGlcIDsKK+m8u+aBryA8IGJpc29rdVwgOwor5oKq55CDIDwgYWtreXV1XCA7CivlkIjnrpcgPCBnYXNzYW5cIDsKK+a1t+aciCA8IGt1cmFnZVwgOwor5ZSQ5a2QIDwga2FyYWtvXCA7CivmtYHmtL4gPCByeXV1aGFcIDsKK+iWhOe0lyA8IGhha3VzYVwgOwor5re35ZyoIDwga29uemFpXCA7CivlkIznqpMgPCBkb3Vzb3VcIDsKK+mKmOadvyA8IG1laWJhblwgOwor5rK557W1IDwgYWJ1cmFlXCA7CivljYrph5EgPCBoYW5raW5cIDsKK+avm+mgrSA8IG1vdXRvdVwgOwor5ZCM56iuIDwgZG91c2h1XCA7Civph43nvaogPCBqdXV6YWlcIDsKK+mFouixmiA8IHN1YnV0YVwgOwor5Y2D6YieIDwgc2Vua2luXCA7CivnqbrliY0gPCBrdXV6ZW5cIDsKK+W/nOirviA8IG91ZGFrdVwgOwor5rib5YWNIDwgZ2VubWVuXCA7CivmsJHpgbggPCBtaW5zZW5cIDsKK+epuuWGtyA8IGt1dXJlaVwgOwor5oOa5rCXIDwgbm9yb2tlXCA7Civlkozmpb0gPCB3YXJha3VcIDsKK+aAquiFlSA8IGthaXdhblwgOwor5ZCI56WtIDwgZ291c2FpXCA7CivllYbli5kgPCBzaG91bXVcIDsKK+aCqueGsSA8IGFuZXRzdVwgOwor6buE5rC0IDwga2ltaXp1XCA7Civlj6PntbUgPCBrdWNoaWVcIDsKK+W+oemFjCA8IG9zaGFrdVwgOwor5rCX6Lu9IDwga2lnYXJ1XCA7CivmnpzmqLnlnJIgPCBrYWp1ZW5cIDsKK+a1t+aQjSA8IGthaXNvblwgOwor5oWu5aSWIDwgcnlvZ2FpXCA7CivphZLosaogPCBzaHVnb3VcIDsKK+WNiui8qiA8IGhhbnJpblwgOwor6YeR57KJIDwga2lucHVuXCA7CivlvZPpp4UgPCB0b3Vla2lcIDsKK+W+oemBiiA8IGd5b3l1dVwgOwor5rOV55u4IDwgaG9zc291XCA7Civmt7HlkbMgPCBmdWthbWlcIDsKK+WOn+iRlyA8IGdlbmNob1wgOwor6bqm5rmvIDwgbXVnaXl1XCA7CivlkIznm58gPCBkb3VtZWlcIDsKK+a0quawtCA8IGtvdXp1aVwgOwor5ZOA5oSBIDwgYWlzaHV1XCA7CivlkInnm7ggPCBraXNzb3VcIDsKK+epuuS8vCA8IHNvcmFuaVwgOwor5ZKM5pyNIDwgd2FmdWt1XCA7CivlvqHou6LlqYYgPCBvdGVuYmFcIDsKK+iWrOeQhiA8IHlha3VyaVwgOwor5b6M6YeRIDwgYXRva2luXCA7CivpubXnjbIgPCByb2tha3VcIDsKK+WRveaguSA8IG1laWtvblwgOwor6Yyg5YmNIDwgam91bWFlXCA7CivlkI3nlKMgPCBtZWlzYW5cIDsKK+aEm+aBryA8IGFpc29rdVwgOwor5rOl54q2IDwgZGVpam91XCA7Civlv4XoposgPCBoaWtrZW5cIDsKK+WPjeexsyA8IGhhbmJlaVwgOwor56C06Y+hIDwgaGFreW91XCA7Civph43nqI4gPCBqdXV6ZWlcIDsKK+mFouibuCA8IHN1ZGFrb1wgOwor5Y+i56WgIDwgaG9rb3JhXCA7CivlvpPou40gPCBqdXVndW5cIDsKK+avm+mIjiA8IGtlYmFyaVwgOwor6YOo6ZW3IDwgYnVjaG91XCA7Civmg6jmlZcgPCB6YW5wYWlcIDsKK+aCquazlSA8IGFrdWhvdVwgOwor5Y+z55uuIDwgbWlnaW1lXCA7Civlv4XoobAgPCBoaXNzdWlcIDsKK+atr+m7kiA8IGhhZ3Vyb1wgOwor5rCR6KuWIDwgbWlucm9uXCA7Civlj4LnsaAgPCBzYW5yb3VcIDsKK+aCquawtCA8IGFrdXN1aVwgOwor5oSJ5oKmIDwgeXVldHN1XCA7Civph53nm64gPCBoYXJpbWVcIDsKK+WMl+mDqCA8IGhva3VidVwgOwor5oKq5rCXIDwgd2FydWdpXCA7Civnn6LpsYggPCB5YXRhcmFcIDsKK+ekjuefsyA8IHNvc2VraVwgOwor5rW05b6MIDwgeW9rdWdvXCA7CivljZPoposgPCB0YWtrZW5cIDsKK+WRveaVsCA8IG1laXN1dVwgOwor5q6L6aq4IDwgemFuZ2FpXCA7CivpoqjlkYLlsYsgPCBmdXJveWFcIDsKK+azpeeCrSA8IGRlaXRhblwgOwor5ZCN54q2IDwgbWVpam91XCA7CivokZvppKEgPCBrdXp1YW5cIDsKK+ayvOeUsCA8IG51bWFkYVwgOwor56Wt5q6/IDwgc2FpZGVuXCA7CivnoLLph5EgPCBob3VraW5cIDsKK+WPpOedgCA8IGZ1cnVnaVwgOwor6YqA5omHIDwgZ2luc2VuXCA7Civph43nn7MgPCBvbW9zaGlcIDsKK+W8t+mfsyA8IGt5b3VvblwgOwor5rGa6IG3IDwgb3Nob2t1XCA7Civmt7fkubEgPCBrb25yYW5cIDsKK+mHkeebriA8IGthbmVtZVwgOwor5oSP5ZGz6KuWIDwgaW1pcm9uXCA7CivnoJTpkb0gPCBrZW5zYW5cIDsKK+W8semfsyA8IHlvd2FuZVwgOwor5q6L6aOvIDwgemFucGFuXCA7CivmsLTokawgPCBzdWlzb3VcIDsKK+WNiuijgSA8IGhhbnNhaVwgOwor5ZSv5LiAIDwgeXVpdHN1XCA7CivnhKHpgqrmsJcgPCBtdWpha2lcIDsKK+W+oeiolyA8IGdvdGFrdVwgOwor5b6u6KG3IDwgYmljaHV1XCA7CivljYroob8gPCBoYW5lcmlcIDsKK+iZmuWmhCA8IGt5b21vdVwgOwor5rG6566XIDwga2Vzc2FuXCA7CivljJbouqsgPCBrZXNoaW5cIDsKK+aBrOeEtiA8IHRlbnplblwgOwor6Jas5rmvIDwgeWFrdXl1XCA7Civmsb3nrJsgPCBraXRla2lcIDsKK+a2vOWRsyA8IHJ5b3VtaVwgOwor5rC06I+cIDwgbWl6dW5hXCA7CivmtbflsrggPCBrYWlnYW5cIDsKK+aCqualrSA8IGFrdWdvdVwgOwor6YmE5p2/IDwgdGVwcGFuXCA7Civok7Toj5wgPCBqdW5zYWlcIDsKK+WQq+awtCA8IGdhbnN1aVwgOwor5b2x6LqrIDwga2FnZW1pXCA7Civmr5votrMgPCBrZWFzaGlcIDsKK+atr+mrhCA8IHNoaXp1aVwgOwor6JC96aasIDwgcmFrdWJhXCA7Civlj4znnLwgPCBzb3VnYW5cIDsKK+WPjeecgSA8IGhhbnNlaVwgOwor5rOo5rK5IDwgY2h1dXl1XCA7Civpg7fou40gPCBnb3VndW5cIDsKK+ayiOeggiA8IGNoaW5zYVwgOwor5Yun6YqAIDwga2FuZ2luXCA7CivljLvooZMgPCBpanV0c3VcIDsKK+miqOWRguWgtCA8IGZ1cm9iYVwgOwor5oSf5aWuIDwga2FucHVuXCA7CivmtpnlmqIgPCBydWlub3VcIDsKK+WNteiDniA8IHJhbmhvdVwgOwor6YeO55CDIDwgeWFreXV1XCA7CivlkYnmnI0gPCBnb2Z1a3VcIDsKK+elnualvSA8IGthZ3VyYVwgOwor5b+g576pIDwgY2h1dWdpXCA7CivmsLTohasgPCBzdWlzaHVcIDsKK+iXjeafkyA8IGFpem9tZVwgOwor5oKq5pu4IDwgYWt1c2hvXCA7CivmtIvmnKwgPCB5b3Vob25cIDsKK+WQm+awkSA8IGt1bm1pblwgOwor6JGJ6ZmwIDwgaGFrYWdlXCA7CivpmL/omIflsbEgPCBhc29zYW5cIDsKK+ayuOeCuSA8IGZ1dHRlblwgOwor5oGs5rehIDwgdGVudGFuXCA7Civpu5nluqcgPCBtb2t1emFcIDsKK+a2suWJpCA8IGVraXphaVwgOwor5q6/6LuNIDwgZGVuZ3VuXCA7CivlvIrpoqggPCBoZWlmdXVcIDsKK+mHkeeJjCA8IGtpbnBhaVwgOwor6YqF5bGxIDwgZG91emFuXCA7CivmtbflpJYgPCBrYWlnYWlcIDsKK+mDteiyryA8IHl1dWNob1wgOwor6YeO54mbIDwgeWFneXV1XCA7CivmtLvmgKcgPCBrYXNzZWlcIDsKK+ekvuauvyA8IHNoYWRlblwgOwor6YeN54mIIDwganV1aGFuXCA7CivmgqrmlocgPCBha3VidW5cIDsKK+W+oeWutuiKuCA8IG9pZWdlaVwgOwor6YWN6IazIDwgaGFpemVuXCA7CivpioDlsbEgPCBnaW56YW5cIDsKK+W/jeiAkCA8IG5pbnRhaVwgOwor5oKq5pS/IDwgYWt1c2VpXCA7Civnpa3mlocgPCBzYWltb25cIDsKK+WQhOa0viA8IGtha3VoYVwgOwor6YG66aqoIDwgaWtvdHN1XCA7Civpu5Llt74gPCBrdXJvZ29cIDsKK+aBqeayoiA8IG9udGFrdVwgOwor5rW35Z+fIDwga2FpaWtpXCA7CivmhJvlm70gPCBhaWtva3VcIDsKK+mJhOaLsyA8IHRla2tlblwgOwor5ZCN5q6LIDwgbmFnb3JpXCA7CivomZrlkI0gPCBreW9tZWlcIDsKK+W8vumBkyA8IGRhbmRvdVwgOwor5rCR6Iq4IDwgbWluZ2VpXCA7Civlk7rkubMgPCBob255dXVcIDsKK+WPsOa5viA8IHRhaXdhblwgOwor5rC457aaIDwgZWl6b2t1XCA7CivmraPpnaIgPCBtYXRvbW9cIDsKK+mHjeeBsCA8IGp1dWthaVwgOwor5Y2x57W1IDwgYWJ1bmFlXCA7CivmgaXmr5sgPCBjaGltb3VcIDsKK+WKqemVtyA8IGpvY2hvdVwgOwor5ray5L2TIDwgZWtpdGFpXCA7CivpiI3moLkgPCBkb25rb25cIDsKK+aDheW/tSA8IGpvdW5lblwgOwor5q6L6YeRIDwgemFua2luXCA7Civmr6zol7sgPCBtYXJpbW9cIDsKK+iWq+afkyA8IGt1bnNlblwgOwor5q+b6J+5IDwga2VnYW5pXCA7Civlk4HlkI0gPCBoaW5tZWlcIDsKK+aCquaKlSA8IGFrdXRvdVwgOwor5Y6f55ukIDwgZ2VuYmFuXCA7Civli5XovKogPCBkb3VyaW5cIDsKK+aCquaJjSA8IGFrdXNhaVwgOwor5rK75rC0IDwgY2hpc3VpXCA7Civpu5LlrZAgPCBob2t1cm9cIDsKK+WLh+mCgSA8IHl1dW1haVwgOwor5oKy5oSBIDwgaGlzaHV1XCA7CivmrorpgYcgPCBzaHVndXVcIDsKK+aCquaFiyA8IGFrdXRhaVwgOwor5Y+k5rWBIDwga29yeXV1XCA7CivljYHog70gPCBqdXVub3VcIDsKK+mKgOWhiiA8IGdpbmthaVwgOwor6Je75bGRIDwgbW9rdXp1XCA7CivlkIzmoLkgPCBkb3Vrb25cIDsKK+m7meWlkSA8IG1va2tlaVwgOwor6YeN5rayIDwganV1ZWtpXCA7Civmr5Lom74gPCBkb2t1Z2FcIDsKK+mHkeazpSA8IGtvbmRlaVwgOwor5rGg55WUIDwgY2hpaGFuXCA7CivlkIzmnZEgPCBkb3Vzb25cIDsKK+WQjeacrSA8IG5hZnVkYVwgOwor5Y2Y57SUIDwgdGFuanVuXCA7CivlpKfpg6jlsYsgPCBvb2JleWFcIDsKK+iYiuWlpSA8IHVuJydub3VcIDsKK+W/q+ecoCA8IGthaW1pblwgOwor5oKq5b+1IDwgYWt1bmVuXCA7CivlkIzmnIsgPCBkb3Vib3VcIDsKK+WQiOadvyA8IGdvdWJhblwgOwor6YeR5rCXIDwga2FuYWtlXCA7Civnp5jljL8gPCBoaXRva3VcIDsKK+emj+WvvyA8IGZ1a3VqdVwgOwor5ZCI5pysIDwgZ2FwcG9uXCA7Civpga3pm6MgPCBzb3VuYW5cIDsKK+mHjeawtCA8IGp1dXN1aVwgOwor5rC056a9IDwgc3Vpa2luXCA7CivomZrkvJ0gPCBreW9kZW5cIDsKK+WNl+exsyA8IG5hbmJlaVwgOwor6baP576kIDwga2VpZ3VuXCA7CivloJXog47ljLsgPCBkYXRhaWlcIDsKK+WNmOewoSA8IHRhbmthblwgOwor5oKq5byKIDwgYWt1aGVpXCA7CivlvqnnuIEgPCBmdWt1ZW5cIDsKK+m7veWLiSA8IGJpbmJlblwgOwor56aF5bC8IDwgemVuJyduaVwgOwor5ZCM5patIDwgZG91ZGFuXCA7Civlj5bmsLQgPCBzaHVzdWlcIDsKK+a1hOWfnyA8IGpvdWlraVwgOwor6YWS56iOIDwgc2h1emVpXCA7CivlkIzmlocgPCBkb3VidW5cIDsKK+WLneiotCA8IHNob3Vzb1wgOwor5ZCM5pWwIDwgZG91c3V1XCA7CivlvpPogIUgPCBqdXVzaGFcIDsKK+WQiOaWuSA8IGFpa2F0YVwgOwor5Y6f54mIIDwgZ2VucGFuXCA7CivoloTmnb8gPCB1c3VpdGFcIDsKK+WNl+erryA8IG5hbnRhblwgOwor5by36KuHIDwgZ291ZGFuXCA7Civnp4Dlj6UgPCBzaHV1a3VcIDsKK+WPpOalvSA8IGtvZ2FrdVwgOwor6YiN5omNIDwgZG9uc2FpXCA7Civol7vloakgPCBtb3NoaW9cIDsKK+WPjeavmyA8IGhhbm1vdVwgOwor5rC0552AIDwgbWl6dWdpXCA7CivnopHnn7MgPCBoaXNla2lcIDsKK+WKoOmAnyA8IGthc29rdVwgOwor5rGa54mpIDwgb2J1dHN1XCA7Civlj7DmnKwgPCBkYWlob25cIDsKK+m2j+ezniA8IGtlaWZ1blwgOwor5rC055ukIDwgc3VpYmFuXCA7CivljYPnr4cgPCBzZW5wZW5cIDsKK+mIjeaEnyA8IGRvbmthblwgOwor5q+b6ISbIDwga2V6dW5lXCA7Civps7PovKYgPCBob3VyZW5cIDsKK+S4jeeUqOaEjyA8IGZ1eW91aVwgOwor5LmF5oWI55uuIDwga3VqaW1lXCA7Civlu7rpgKAgPCBrZW56b3VcIDsKK+WIuumtmiA8IHRvZ2V1b1wgOwor6YOo6JC9IDwgYnVyYWt1XCA7Civlj7fmlbAgPCBnb3VzdXVcIDsKK+mKg+WJoyA8IGp1dWtlblwgOwor5Y+C5q6/IDwgc2FuZGVuXCA7CivmsLTnlrEgPCBzdWlob3VcIDsKK+WPs+aWhyA8IHl1dWJ1blwgOwor5Y+k5pyoIDwga29ib2t1XCA7CivlkJvmgakgPCBrdW4nJ29uXCA7CivlpKflvqHku6MgPCBvb21peW9cIDsKK+W+ruemhCA8IGJpcm9rdVwgOwor56KB55+zIDwgZ29pc2hpXCA7CivmsLTnlLAgPCBzdWlkZW5cIDsKK+W6lemtmiA8IHNva291b1wgOwor56eY5LitIDwgaGljaHV1XCA7Civmrrroj4wgPCBzYWtraW5cIDsKK+mKmOS7mSA8IG1laXNlblwgOwor5byx6KGMIDwgamFra291XCA7CivlkbzlkI0gPCB5b2JpbmFcIDsKK+axuuawtCA8IGtlc3N1aVwgOwor5ZCM5oaCIDwgZG91eXV1XCA7CivpioXlg48gPCBkb3V6b3VcIDsKK+atk+i/jiA8IGthbmdlaVwgOwor6YmE5aGUIDwgdGV0dG91XCA7CivlkIzmhJ8gPCBkb3VrYW5cIDsKK+a1quS6uiA8IHJvdW5pblwgOwor5YmU6ZmkIDwgdGVraWpvXCA7CivmsqHmm7ggPCBib3NzaG9cIDsKK+m3uea0viA8IHRha2FoYVwgOwor5YmN6Zu7IDwgemVuZGVuXCA7Civmg7Plg48gPCBzb3V6b3VcIDsKK+WPluadkCA8IHNodXphaVwgOwor6Jit5Lq6IDwgcmFuamluXCA7Civoj4zpoZ4gPCBraW5ydWlcIDsKK+elnuWuriA8IGppbmd1dVwgOwor5Y2154q2IDwgcmFuam91XCA7CivmgqrlpKkgPCBha3V0ZW5cIDsKK+mBremBhyA8IHNvdWd1dVwgOwor5YmK6ZmkIDwgc2FrdWpvXCA7CivljYrnnaEgPCBoYW5zdWlcIDsKK+WQvuWmuSA8IHdhZ2ltb1wgOwor5Y+z5oqYIDwgdXNldHN1XCA7Civljp/msrkgPCBnZW4nJ3l1XCA7CivmrbPoqIggPCBzYWlrZWlcIDsKK+aAp+aguSA8IHNob3VuZVwgOwor6JGb6JekIDwga2F0dG91XCA7CivmgqrloLQgPCB3YXJ1YmFcIDsKK+WPs+aJiyA8IG1pZ2l0ZVwgOwor5Y+J5pyoIDwgbWF0YWdpXCA7Civmranoqr8gPCBob2Nob3VcIDsKK+WOn+awkSA8IGdlbm1pblwgOwor5ZCN5bqXIDwgbWVpdGVuXCA7CivliLjpnaIgPCBrZW5tZW5cIDsKK+W5sumxiCA8IGhpZGFyYVwgOwor5ZCI5byBIDwgZ291YmVuXCA7CivlvIHoq5YgPCBiZW5yb25cIDsKK+a1geWEgCA8IHJ5dXVnaVwgOwor5rC054WuIDwgbWl6dW5pXCA7CivluqfplbcgPCB6YWNob3VcIDsKK+avkue0oCA8IGRva3Vzb1wgOwor5bqV6Z2iIDwgdGVpbWVuXCA7CivlvbznrYkgPCBrYXJlcmFcIDsKK+WOmOavmyA8IHJpbm1vdVwgOwor5Y675p2lIDwga3lvcmFpXCA7CivlvIHop6MgPCBiZW5rYWlcIDsKK+mBi+mHnSA8IHVuc2hpblwgOwor5Y+k5omLIDwgZnVydXRlXCA7Civmr5vnrYsgPCBrZXN1amlcIDsKK+ekvuWxiyA8IHNoYW9rdVwgOwor5Y+v5oOcIDwgYXR0YXJhXCA7CivpgYrph5EgPCB5dXVraW5cIDsKK+WQm+WtkCA8IGt1bnNoaVwgOwor5Yip6Z6YIDwgcml6YXlhXCA7CivmgKjmlbUgPCBvbnRla2lcIDsKK+acieaEj+e+qSA8IHl1dWlnaVwgOwor6YeO6JaU6JaHIDwgbm9iYXJhXCA7CivmgYvmhJsgPCByZW4nJ2FpXCA7CivmrKDphY0gPCBrZXBwYWlcIDsKK+WRveS7pCA8IG1laXJlaVwgOwor5ZCN5bGxIDwgbWVpemFuXCA7CivnnJ/ptKggPCBtYWdhbW9cIDsKK+mAo+mWoiA8IHJlbmthblwgOwor5rGA5riaIDwgdGVpc2hvXCA7CivlvqHnm67opovlvpcgPCBvbWVtaWVcIDsKK+WQjOWxhSA8IGRvdWt5b1wgOwor6YGF6YWNIDwgY2hpaGFpXCA7CivmooXpm6jmnJ8gPCBiYWl1a2lcIDsKK+aBteWtmCA8IGtlaXpvblwgOwor5ZCM5bCBIDwgZG91ZnV1XCA7Civlj7DlvaIgPCBkYWlrZWlcIDsKK+aBi+aBiyA8IHJlbnJlblwgOwor6YGg6LazIDwgZW5zb2t1XCA7CivliY3ph5EgPCBtYWVraW5cIDsKK+WJpei6qyA8IG11a2ltaVwgOwor5rC05rqQIDwgc3VpZ2VuXCA7CivpgIHpoqggPCBzb3VmdXVcIDsKK+mBuuiogCA8IHl1aWdvblwgOwor5oGv5a2QIDwgbXVzdWtvXCA7CivmgqrlkI0gPCBha3VtZWlcIDsKK+WOn+ahiCA8IGdlbicnYW5cIDsKK+elluWbvSA8IHNva29rdVwgOwor6JS15pu4IDwgem91c2hvXCA7Civmgqrlj4sgPCBha3V5dXVcIDsKK+W5vemciiA8IHl1dXJlaVwgOwor5oKy5YqHIDwgaGlnZWtpXCA7Civluqfph5EgPCB6YWdhbmVcIDsKK+WPjeaIpiA8IGhhbnNlblwgOwor5bqm6YePIDwgZG9yeW91XCA7Civph47lv4MgPCB5YXNoaW5cIDsKK+WLg+iIiCA8IGJva2tvdVwgOwor5YyW55+zIDwga2FzZWtpXCA7CivnpL7lpJYgPCBzaGFnYWlcIDsKK+WPpOW7nyA8IGtvYnlvdVwgOwor5bqD6ZaTIDwgaGlyb21hXCA7CivmsLfmsrMgPCBoeW91Z2FcIDsKK+W5s+mdoiA8IGhlaW1lblwgOwor5ZC75ZCIIDwgZnVuZ291XCA7CivliIbpoZ4gPCBidW5ydWlcIDsKK+W+jOeUnyA8IGdvc2hvdVwgOwor5b+r5qW9IDwga2VyYWt1XCA7CivolqzlnJIgPCB5YWt1ZW5cIDsKK+aBr+WlsyA8IHNva3Vqb1wgOwor5rOV5aSWIDwgaG91Z2FpXCA7CivpiYTlgpggPCB0ZXNzYW5cIDsKK+W5vemWiSA8IHl1dWhlaVwgOwor5b+N5rOVIDwgbmlucG91XCA7CivlkIzlpKcgPCBkb3VkYWlcIDsKK+W9ueebriA8IHlha3VtZVwgOwor6JGX6ICFIDwgY2hvc2hhXCA7CivlkI3lo7AgPCBtZWlzZWlcIDsKK+WPpOW3oyA8IGZ1cnVzdVwgOwor5rC05rCXIDwgbWl6dWtlXCA7CivlubTpmZAgPCBuZW5nZW5cIDsKK+ayouW6tSA8IHRha3VhblwgOwor5q+S55+iIDwgZG9rdXlhXCA7CivlkIjlpY8gPCBnYXNzb3VcIDsKK+avm+eariA8IGtlZ2F3YVwgOwor5Y2X5rqfIDwgbmFubWVpXCA7Civnm67pvLsgPCBtZWhhbmFcIDsKK+mDveedoyA8IHRvdG9rdVwgOwor5Y2X5rqAIDwgbmFubWFuXCA7CivpgYvos4MgPCB1bmNoaW5cIDsKK+WOn+aWhyA8IGdlbmJ1blwgOwor6bqm5L6hIDwgYmFrdWthXCA7CivnpoHku6QgPCBraW5yZWlcIDsKK+iXqeS4uyA8IGhhbnNodVwgOwor55+l6IKyIDwgY2hpaWt1XCA7Civlirnog70gPCBrb3Vub3VcIDsKK+WIhumamyA8IGJ1bnphaVwgOwor6YGB6LWwIDwgdG9uc291XCA7CivlkInloLEgPCBraXBwb3VcIDsKK+aAoOaFoiA8IHRhaW1hblwgOwor6YCg6YWSIDwgem91c2h1XCA7CivliIbpmaIgPCBidW4nJ2luXCA7CivliIbpmZAgPCBidW5nZW5cIDsKK+aAneaFriA8IHNoaXJ5b1wgOwor5Yex6aKoIDwgZ2FpZnV1XCA7CivmgKjlv7UgPCBvbicnbmVuXCA7CivljJbnlJ8gPCBrZXNob3VcIDsKK+mHkeWxsSA8IGtpbnphblwgOwor5oKf5YWlIDwgZ29ueXV1XCA7CivpgLjotrMgPCBpc3Nva3VcIDsKK+egpeefsyA8IHRvaXNoaVwgOwor5Y+k5a62IDwgZnVydWllXCA7CivolqzlkbMgPCB5YWt1bWlcIDsKK+ecvOmPoSA8IG1lZ2FuZVwgOwor55yf6Z2SIDwgbWFzc2FvXCA7CivljYrmuJsgPCBoYW5nZW5cIDsKK+WPt+WkliA8IGdvdWdhaVwgOwor6YGU6KazIDwgdGFra2FuXCA7Civlh7rpmpsgPCBkZWdpd2FcIDsKK+WPjuW3riA8IHNodXVzYVwgOwor5rG65oSPIDwga2V0c3VpXCA7CivlupXovrogPCB0ZWloZW5cIDsKK+WQm+WRvSA8IGt1bm1laVwgOwor6YeO5a6/IDwgbm9qdWt1XCA7Civnn63nt6ggPCB0YW5wZW5cIDsKK+iRm+eyiSA8IGt1enVrb1wgOwor6YCa6YGLIDwgdHN1dXVuXCA7CivoloTloakgPCB1c3VqaW9cIDsKK+aCquS6uiA8IGFrdW5pblwgOwor6YCj6LyJIDwgcmVuc2FpXCA7CivliKXpgrggPCBiZXR0ZWlcIDsKK+azouWPiiA8IGhha3l1dVwgOwor5Y6f5ougIDwgZ2Vua3lvXCA7CivlvKnntJogPCBkb2t5dXVcIDsKK+avm+eOiSA8IGtlZGFtYVwgOwor6YeM5a2QIDwgc2F0b2dvXCA7CivnpL7lkb0gPCBzaGFtZWlcIDsKK+atr+iCiSA8IGhhbmlrdVwgOwor6I236Z6NIDwgbmlndXJhXCA7Civnn7PnsokgPCBpc2hpa29cIDsKK+aCqeS5sSA8IG5vdXJhblwgOwor5Y6E5pelIDwgeWFrdWJpXCA7CivljZfmrKcgPCBuYW4nJ291XCA7CivogLPpvLvnp5EgPCBqaWJpa2FcIDsKK+mBiuimpyA8IHl1dXJhblwgOwor6YGu6JS9IDwgc2hhaGVpXCA7CivolqzlirkgPCB5YWtrb3VcIDsKK+WQjeWTgSA8IG1laWhpblwgOwor56S+5Y+LIDwgc2hheXV1XCA7Civpg6HnnIwgPCBndW5rZW5cIDsKK+mHjeWpmiA8IGp1dWtvblwgOwor6YCB6YeRIDwgc291a2luXCA7CivljprmiYsgPCBhdHN1ZGVcIDsKK+W5lemWkyA8IG1ha3VhaVwgOwor5bm06YeRIDwgbmVua2luXCA7Civlj43lsIQgPCBoYW5zaGFcIDsKK+WPjeWvviA8IGhhbnRhaVwgOwor5ZCN5ZCfIDwgbWVpZ2luXCA7Civnm67pq5ggPCBtZWRha2FcIDsKK+i/lOmbuyA8IGhlbmRlblwgOwor6YiN5YiAIDwgZG9udG91XCA7CivnoLTnjYQgPCBoYWdva3VcIDsKK+ayueWcpyA8IHl1YXRzdVwgOwor5Y2v5pyIIDwgdWR6dWtpXCA7CivmsLTmnKggPCBtaXp1a2lcIDsKK+egguekqyA8IHNhcmVraVwgOwor5oCS5by1IDwgZG9jaG91XCA7CivnlLvmnrbluqcgPCBnYWthemFcIDsKK+WIhumKhSA8IGZ1bmRvdVwgOwor5LiN5a6J5rCXIDwgZnVhbmdlXCA7CivpgLjoqbEgPCBpdHN1d2FcIDsKK+iNiemtmiA8IHNvdWd5b1wgOwor5Y2z5pmCIDwgc29rdWppXCA7CivlvIHogIUgPCBiZW5zaGFcIDsKK+mAmui3ryA8IHRzdXVyb1wgOwor6JOu5qC5IDwgcmVua29uXCA7CivlkIjlkIwgPCBnb3Vkb3VcIDsKK+i/kemaoyA8IGtpbnJpblwgOwor5aSn5Ye65p2lIDwgb29kZWtpXCA7Civph43lpIkgPCBqdXVoZW5cIDsKK+miqOmCquawlyA8IGthemVrZVwgOwor6I2S6aasIDwgYXJhdW1hXCA7Civlv6vmjJkgPCBrYWlreW9cIDsKK+WIhumHjiA8IGJ1bicneWFcIDsKK+mFkuadryA8IHNodWhhaVwgOwor5ZCM5YuiIDwgZG91emVpXCA7CivmsJfmpb0gPCBraXJha3VcIDsKK+awkeaoqSA8IG1pbmtlblwgOwor5YiD6YedIDwgaGFiYXJpXCA7CivmrablmajluqsgPCBidWtpa29cIDsKK+WPguWuriA8IHNhbmd1dVwgOwor5YiG6YWNIDwgYnVucGFpXCA7CivpgbrohLEgPCBpZGF0c3VcIDsKK+i/sCA8IGp1dHN1XCA7Civlv4UgPCBoaXRzdVwgOwor6L67IDwgdHN1amlcIDsKK+W+uSA8IHRldHN1XCA7CivnnqUgPCBiZXRzdVwgOwor5b6MIDwgbm9jaGlcIDsKK+W+iyA8IHJpdHN1XCA7CivnnYAgPCBjaGFrdVwgOwor5byPIDwgc2hpa2lcIDsKK+eauiA8IHNoaXdhXCA7CivouoUgPCBjaG9rdVwgOwor55m+IDwgaHlha3VcIDsKK+eZvSA8IHNoaXJvXCA7CivnmbwgPCBob3RzdVwgOwor55m6IDwgaGF0c3VcIDsKK+W5uCA8IHNhY2hpXCA7CivlubQgPCB0b3NoaVwgOwor55mqIDwgc2hha3VcIDsKK+W3tCA8IHRvbW9lXCA7Civnl4UgPCB5YW1haVwgOwor55WlIDwgcnlha3VcIDsKK+eVnCA8IGNoaWt1XCA7CivnlLogPCBtYWNoaVwgOwor55S3IDwgb3Rva29cIDsKK+eUsSA8IHlvc2hpXCA7Civls7YgPCBzaGltYVwgOwor6LOqIDwgdGFjaGlcIDsKK+WyuCA8IGtpc2hpXCA7CivlsYggPCBrdXRzdVwgOwor5bC7IDwgc2hpcmlcIDsKK+WvpiA8IGppdHN1XCA7Civlr58gPCBzYXRzdVwgOwor5a+GIDwgbWl0c3VcIDsKK+WutCA8IHV0YWdlXCA7CivlrqIgPCBreWFrdVwgOwor54y+IDwga2F0c3VcIDsKK+iqrCA8IHNldHN1XCA7CivoqbAgPCBraXRzdVwgOwor54i6IDwgamlqaWlcIDsKK+eIqiA8IHRzdW1lXCA7CivoqKMgPCBrZXRzdVwgOwor6Ke4IDwgc2hva3VcIDsKK+inkiA8IHRzdW5vXCA7CivlprsgPCB0c3VtYVwgOwor54axIDwgbmV0c3VcIDsKK+ilvyA8IG5pc2hpXCA7CivlpbQgPCB5YXRzdVwgOwor5aWqIDwgZGF0c3VcIDsKK+WkjyA8IG5hdHN1XCA7Civng4ggPCByZXRzdVwgOwor6KK3IDwgYXdhc2VcIDsKK+eCjiA8IGhvbm9vXCA7CivlooMgPCBzYWthaVwgOwor5aG1IDwgY2hpcmlcIDsKK+WhmiA8IHRzdWthXCA7Civln7ogPCBtb3RvaVwgOwor5Z+SIDwgcmFjaGlcIDsKK+m9oiA8IHlvd2FpXCA7CivpvL4gPCBpYmlraVwgOwor6JyCIDwgaGFjaGlcIDsKK+m7kCA8IG1vY2hpXCA7Civmu4UgPCBtZXRzdVwgOwor6JqVIDwga2Fpa29cIDsKK+m5vyA8IHNoaWthXCA7CivomasgPCBtdXNoaVwgOwor6JmeIDwgb3NvcmVcIDsKK+WZgiA8IHV3YXNhXCA7Civmt7UgPCBmdWNoaVwgOwor6beyIDwgd2FzaGlcIDsKK+a3kSA8IHNodWt1XCA7CivptrQgPCB0c3VydVwgOwor5ZaHIDwgcmF0c3VcIDsKK+WUviA8IHRzdWJhXCA7Civms4kgPCBpenVtaVwgOwor5rK5IDwgYWJ1cmFcIDsKK+ayoSA8IGJvdHN1XCA7CivlkoQgPCB0b3RzdVwgOwor5rGBIDwgdHN1eXVcIDsKK+mwjCA8IGRvam91XCA7CivlkIkgPCBraWNoaVwgOwor5Y+jIDwga3VjaGlcIDsKK+WNmCA8IGhpdG9lXCA7CivljZIgPCBzb3RzdVwgOwor5qyhIDwgdHN1Z2lcIDsKK+armyA8IGt1c2hpXCA7Civoip0gPCBzaGliYVwgOwor5YqbIDwgcnlva3VcIDsKK+iJtiA8IHRzdXlhXCA7CivmqYsgPCBoYXNoaVwgOwor5qirIDwga2FzaGlcIDsKK+iIjCA8IHNoaXRhXCA7CivliIMgPCB5YWliYVwgOwor6IWwIDwga29zaGlcIDsKK+WFjiA8IHVzYWdpXCA7CivlhYAgPCBrb3RzdVwgOwor6ISIIDwgbXlha3VcIDsKK+mjryA8IG1lc2hpXCA7CivmoqggPCBuYXNoaVwgOwor5qKiIDwga296dWVcIDsKK+aikyA8IGF6dXNhXCA7CivpoY0gPCBoaXRhaVwgOwor6aCBIDwgcGVpamlcIDsKK+e/gSA8IG9raW5hXCA7Civpnq0gPCBtdWNoaVwgOwor6Z6EIDwga2FiYW5cIDsKK+adviA8IG1hdHN1XCA7CivnvbAgPCBiYXRzdVwgOwor572qIDwgdHN1bWlcIDsKK+S9myA8IGJ1dHN1XCA7CivkvY0gPCBrdXJhaVwgOwor5Ly4IDwgbm9zaGlcIDsKK+mcsCA8IGFyYXJlXCA7CivpnJwgPCBzaGltb1wgOwor5pyIIDwgdHN1a2lcIDsKK+absiA8IGt5b2t1XCA7Civpm5wgPCB6YXRzdVwgOwor5LuZIDwgc2VudG9cIDsKK+mbhyA8IHlhdG9pXCA7Civkub4gPCBob3NoaVwgOwor5Li7IDwgbnVzaGlcIDsKK+e2sSA8IHRzdW5hXCA7CivntbYgPCB6ZXRzdVwgOwor57WCIDwgb3dhcmlcIDsKK+aTjSA8IG1pc2FvXCA7Civnr4AgPCBidXNoaVwgOwor566SIDwgaG91a2lcIDsKK+etlCA8IGtvdGFlXCA7Civmi4IgPCBmdXRzdVwgOwor5oimIDwgaWt1c2FcIDsKK+mBkyA8IG1pY2hpXCA7CivpgLkgPCB0YXRzdVwgOwor6YCGIDwgZ3lha3VcIDsKK+eeveiAhSA8IGtvc2hhXCA7CivlkI3liY0gPCBuYW1hZVwgOwor5biw6aCGIDwga2lqdW5cIDsKK+W6p+imliA8IHphc2hpXCA7Civlv6vmiZMgPCBrYWlkYVwgOwor6YCB6L6eIDwgc291amlcIDsKK+WQjeWIqSA8IG1laXJpXCA7CivnnInplpMgPCBtaWtlblwgOwor56OB5oCnIDwgamlzZWlcIDsKK+iWrOS+oSA8IHlha2thXCA7CivnoLLnhZkgPCBob3VlblwgOwor56S85YSAIDwgcmVpZ2lcIDsKK+azleWFtyA8IGhvdWd1XCA7CivlkI/lhZogPCByaXRvdVwgOwor55uu6aGUIDwgbWVnYW9cIDsKK+eikeaWhyA8IGhpYnVuXCA7CivpgKPoqp4gPCByZW5nb1wgOwor6YeN5ZuyIDwgY2hvdWlcIDsKK+ayruWWqiA8IHNvc291XCA7Civpgbrnv5IgPCBpc2h1dVwgOwor6YG46ICFIDwgc2VuamFcIDsKK+atjOiBliA8IGthc2VpXCA7CivpgKDoqp4gPCB6b3Vnb1wgOwor56Cy54GrIDwgaG91a2FcIDsKK+iSuOawlyA8IGpvdWtpXCA7CivmgKrlpYcgPCBrYWlraVwgOwor6YCj6KiYIDwgcmVua2lcIDsKK+mHjeWZqCA8IGp1dWtpXCA7CivliqDns5YgPCBrYXRvdVwgOwor5oGp5YW4IDwgb250ZW5cIDsKK+W6j+irliA8IGpvcm9uXCA7Civmr4XnhLYgPCBraXplblwgOwor5Yi26KaHIDwgc2VpaGFcIDsKK+atjue+jiA8IHRhbmJpXCA7CivpgIDot68gPCB0YWlyb1wgOwor5b+c5omLIDwgb3VzaHVcIDsKK+mAn+iomCA8IHNva2tpXCA7Civms6LkubEgPCBoYXJhblwgOwor5b+c5oimIDwgb3VzZW5cIDsKK+mAo+imhyA8IHJlbnBhXCA7CivmgKjlo7AgPCBlbnNlaVwgOwor5rK55Y2YIDwgeXV0YW5cIDsKK+W6j+ipniA8IGpvc2hpXCA7CivljLvmpa0gPCBpZ3lvdVwgOwor5bqP6KiAIDwgam9nZW5cIDsKK+W/mOaIkSA8IGJvdWdhXCA7Civojbfph40gPCBrYWp1dVwgOwor5Yy65qScIDwga3VrZW5cIDsKK+WNl+aWlyA8IG5hbnRvXCA7Civmsr3liLggPCBrb2tlblwgOwor5Y2K5pyfIDwgaGFua2lcIDsKK+WQjOS+oSA8IGRvdWthXCA7Civli5XnlLsgPCBkb3VnYVwgOwor5rKz5Y2XIDwga2FuYW5cIDsKK+iWhOWIgyA8IHVzdWJhXCA7CivliqDnrpcgPCBrYXNhblwgOwor5bm06LOmIDwgbmVucHVcIDsKK+WPo+WRsyA8IGtvdW1pXCA7Civov7fot68gPCBtZWlyb1wgOwor5rK55YmkIDwgeXV6YWlcIDsKK+W5tOizgCA8IG5lbmdhXCA7Civlj6/li5UgPCBrYWRvdVwgOwor5bm06LKiIDwgbmVuZ3VcIDsKK+W+oeagqiA8IG9rYWJ1XCA7CivljqjlrZAgPCB6dXNoaVwgOwor5Yil6KiYIDwgYmVra2lcIDsKK+WQj+S6uiA8IHJpamluXCA7CivlkITlgIsgPCBrYWtrb1wgOwor6YKq55+lIDwgamFjaGlcIDsKK+WPpOWPgiA8IGtvc2FuXCA7Civms5XkuosgPCBob3VqaVwgOwor6JWD5aS3IDwgYmFuJydpXCA7Civph43lkbMgPCBvbW9taVwgOwor5qi56b2iIDwganVyZWlcIDsKK+WNg+acqCA8IGNoaWdpXCA7CivmgbXkuI4gPCBrZWl5b1wgOwor6YW45bqmIDwgc2FuZG9cIDsKK+WKseejgSA8IHJlaWppXCA7CivliaPoiJ4gPCBrZW5idVwgOwor5rOV5Li7IDwgaG9zc3VcIDsKK+avjea4ryA8IGJva291XCA7Civph47lkIggPCB5YWdvdVwgOwor5ZCM5LqLIDwgZG91amlcIDsKK+WPr+WIhiA8IGthYnVuXCA7Civph47lj7IgPCB5YXNoaVwgOwor5Yqp56WtIDwgam9zYWlcIDsKK+WQhOS9jSA8IGtha3VpXCA7CivlvqHmnK0gPCBvZnVkYVwgOwor6YGO6IisIDwga2FoYW5cIDsKK+WIhuizpiA8IGJ1bnB1XCA7CivnqK7jgIUgPCBzaHVqdVwgOwor5b+Y5oGpIDwgYm91b25cIDsKK+W+heapnyA8IHRhaWtpXCA7CivmgankurogPCBvbmppblwgOwor5b+M5oaaIDwga2l0YW5cIDsKK+mBi+iIqiA8IHVua291XCA7CivmsrPlhoUgPCBoYW5vaVwgOwor5oGo5LqLIDwga29uamlcIDsKK+aAp+WZqCA8IHNlaWtpXCA7CivmgJLlo7AgPCBkb3NlaVwgOwor5qmf6aaWIDwga2lzaHVcIDsKK+WIl+iomCA8IHJla2tpXCA7Civlj6TliLYgPCBrb3NlaVwgOwor5Y+N5ZO6IDwgaGFucG9cIDsKK+WNgeaXpSA8IHRvb2thXCA7CivlvqHmmLwgPCBvaGlydVwgOwor6YO95rCRIDwgdG9taW5cIDsKK+eci+mBjiA8IGthbmthXCA7Civlj6TliIAgPCBrb3RvdVwgOwor5byl55SfIDwgeWF5b2lcIDsKK+mAgeipsSA8IHNvdXdhXCA7CivlubPoqp4gPCBoZWlnb1wgOwor5q+S5rCXIDwgZG9ra2VcIDsKK+efm+ebviA8IG11anVuXCA7CivnoLTmsLQgPCBoYXN1aVwgOwor6YeR5YipIDwga2lucmlcIDsKK+azieS4iyA8IHNlbmthXCA7Civov5Tovp4gPCBoZW5qaVwgOwor6bWe5q+bIDwgZ2Ftb3VcIDsKK+WPmeWLsiA8IGpva3VuXCA7CivmspblkIggPCBva2lhaVwgOwor5Y+k5YW4IDwga290ZW5cIDsKK+mvqOmjsiA8IGdlaWluXCA7Civph43liKkgPCBqdXVyaVwgOwor5Y2w5b2xIDwgaW4nJ2VpXCA7CivljZjmiZMgPCB0YW5kYVwgOwor5b6h5pWwIDwgb2thenVcIDsKK+WPl+WLlSA8IGp1ZG91XCA7CivpgZPnvqkgPCBkb3VnaVwgOwor5b6M5p62IDwga291a2FcIDsKK+mBoOe4gSA8IHRvb2VuXCA7CivliIboqrIgPCBidW5rYVwgOwor6YKm55S7IDwgaG91Z2FcIDsKK+mHjuWFmiA8IHlhdG91XCA7CivnnYDooaMgPCB5YWt1aVwgOwor5Y+X5YiRIDwganVrZWlcIDsKK+avjuasoSA8IG1haWppXCA7CivlvozmnJ8gPCBrb3VraVwgOwor6JWp5YWQIDwgdG91amlcIDsKK+ayueS6lSA8IHl1c2VpXCA7Civlu7rnopEgPCBrZW5waVwgOwor5Yal6ZeHIDwgbWVpYW5cIDsKK+W4g+mZoyA8IGZ1amluXCA7CivojZLph44gPCBrb3V5YVwgOwor5rK75LiLIDwgY2hpa2FcIDsKK+i+uumEmSA8IGhlbnBpXCA7CivphZLlvpIgPCBzaHV0b1wgOwor5qmf6Zu3IDwga2lyYWlcIDsKK+atjOeovyA8IGtha291XCA7CivlvKfnirYgPCBrb2pvdVwgOwor6YG356e7IDwgc2VuJydpXCA7CivluLDpgoQgPCBraWthblwgOwor5q2v55ebIDwgaGFpdGFcIDsKK+awkeaIuCA8IG1pbmtvXCA7CivliqDnm58gPCBrYW1laVwgOwor6I+K6IqxIDwga2lra2FcIDsKK+WPpOS+iyA8IGtvcmVpXCA7Civlj7DkuIsgPCBkYWlrYVwgOwor5Yi76IumIDwga29ra3VcIDsKK+avjeaoqSA8IGJva2VuXCA7Civlj6TkvZMgPCBrb3RhaVwgOwor5b6A5p2lIDwgb3VyYWlcIDsKK+WPl+WDjyA8IGp1em91XCA7Civlj6XkvJogPCBrdWthaVwgOwor5Y+k5LydIDwga29kZW5cIDsKK+W/nOWvviA8IG91dGFpXCA7CivljbHls7AgPCBraWhvdVwgOwor5q665rCXIDwgc2Fra2lcIDsKK+WKqeeUoyA8IGpvc2FuXCA7CivluLDovrIgPCBraW5vdVwgOwor5Y+k5LujIDwga29kYWlcIDsKK+WPpOS7iiA8IGtva29uXCA7Civlj6TkurogPCBrb2ppblwgOwor6YGV57SEIDwgaXlha3VcIDsKK+WOn+WbsyA8IGdlbnp1XCA7CivljYHmiYsgPCBqaXR0ZVwgOwor5rCR5oSPIDwgbWluJydpXCA7Civlj4LliqAgPCBzYW5rYVwgOwor5Ya26YeRIDwgeWFraW5cIDsKK+efs+eBqyA8IHNla2thXCA7CivlhbXppqwgPCBoZWliYVwgOwor5b6h5omAIDwgZ29zaG9cIDsKK+mHjuS6uiA8IHlhamluXCA7CivlvIHnlo8gPCBiZW5zb1wgOwor5Y6f5ZmoIDwgZ2Vua2lcIDsKK+mAoOiKsSA8IHpvdWthXCA7CivluJ3pg70gPCB0ZWl0b1wgOwor6Iux6a2CIDwgZWlrb25cIDsKK+WOreWRsyA8IGl5YW1pXCA7CivljbHlrrMgPCBraWdhaVwgOwor5bqX6IiXIDwgdGVucG9cIDsKK+mFjeW4gyA8IGhhaWZ1XCA7CivmrrXmrakgPCB0YW5idVwgOwor5Y2Y5bqnIDwgdGFuemFcIDsKK+WPmeS7uyA8IGpvbmluXCA7CivmrKfnsbMgPCBvdWJlaVwgOwor5oCS5Y+3IDwgZG9nb3VcIDsKK+awuOWtmCA8IGVpem9uXCA7Civlt6XpnaIgPCBrdW1lblwgOwor5YaF6ZyAIDwgbmFpanVcIDsKK+WPl+S7uyA8IGp1bmluXCA7Civlvozmj7QgPCBrb3VlblwgOwor55yM6K2wIDwga2VuZ2lcIDsKK+WLpOaxgiA8IGdvbmd1XCA7CivnnIvorbcgPCBrYW5nb1wgOwor5YaG6ZmjIDwgZW5qaW5cIDsKK+mFuOWfuiA8IHNhbmtpXCA7CivluLDotqggPCBraXN1dVwgOwor5b2T5qmfIDwgdG91a2lcIDsKK+W8geeQhiA8IGJlbnJpXCA7Civmr43mnZAgPCBib3phaVwgOwor5b6S5omLIDwgdG9zaHVcIDsKK+ebm+mBiyA8IHNlaXVuXCA7Civmra/niZkgPCBzaGlnYVwgOwor5rCR5bqmIDwgbWluZG9cIDsKK+mBi+eulyA8IHVuemFuXCA7Civlv5zlpIkgPCBvdWhlblwgOwor6YWS5a62IDwgc2h1a2FcIDsKK+W8pea8qyA8IGJpbWFuXCA7CivphZLlrrQgPCBzaHVlblwgOwor6a6f6bGHIDwgYW5rb3VcIDsKK+i9n+mfsyA8IGdvdW9uXCA7CivlvqHlv7UgPCBnb25lblwgOwor5b6X5oSPIDwgdG9rdWlcIDsKK+WFuOmbhSA8IHRlbmdhXCA7Civlj4zkupIgPCBzb3Vnb1wgOwor5YuY5rCXIDwga2Fua2lcIDsKK+i+numAgCA8IGppdGFpXCA7Civljp/lj6UgPCBnZW5rdVwgOwor6YG655WZIDwgaXJ5dXVcIDsKK+apn+mKgyA8IGtpanV1XCA7Civpg73mlL8gPCB0b3NlaVwgOwor5YuV5rCXIDwgZG91a2lcIDsKK+W/nOWgsSA8IG91aG91XCA7Civlubzoir0gPCB5b3VnYVwgOwor56Gs5bqmIDwga291ZG9cIDsKK+W+qeW4sCA8IGZ1a2tpXCA7CivmrLrnnp4gPCBnaW1hblwgOwor6YGg55+iIDwgdG9veWFcIDsKK+mBjueoiyA8IGthdGVpXCA7CivmsLTlpKsgPCBzdWlmdVwgOwor5q+N5paRIDwgYm9oYW5cIDsKK+aAnOS/kCA8IHJlaXJpXCA7CivluILpg6ggPCBzaGlidVwgOwor5Yqr54GrIDwgZ291a2FcIDsKK+WGpemAlCA8IG1laWRvXCA7Civlj4LkuosgPCBzYW5qaVwgOwor5b6h5bmjIDwgZ29oZWlcIDsKK+W8vuapnyA8IGRhbmtpXCA7CivpgaDnnLwgPCBlbmdhblwgOwor56C05pGnIDwgaGFzYWlcIDsKK+i/keihmyA8IGtvbm9lXCA7Civnn63ms6IgPCB0YW5wYVwgOwor6YGg55uuIDwgdG9vbWVcIDsKK+mGh+WMliA8IGp1bmthXCA7CivliKTogIUgPCBoYW5qYVwgOwor56C05pCNIDwgaGFzb25cIDsKK+mBk+egtCA8IGRvdWhhXCA7Civoi7HpnIogPCBlaXJlaVwgOwor5YuH5rCXIDwgeXV1a2lcIDsKK+awl+WtlCA8IGtpa291XCA7CivliqDngrkgPCBrYXRlblwgOwor6YW45ZGzIDwgc2FubWlcIDsKK+WGoOi+niA8IGthbmppXCA7Civoi7Hpm4QgPCBlaXl1dVwgOwor5b+r5ZGzIDwga2FpbWlcIDsKK+W5s+iHpSA8IGhlaWdhXCA7CivljprliKkgPCBrb3VyaVwgOwor5b6S5byfIDwgdG90ZWlcIDsKK+efreawlyA8IHRhbmtpXCA7CivmsJHlrrYgPCBtaW5rYVwgOwor5beu6YeRIDwgc2FraW5cIDsKK+mDqOaVsCA8IGJ1c3V1XCA7CivluoPnvqkgPCBrb3VnaVwgOwor5YuH5q2mIDwgeXV1YnVcIDsKK+WFiOmnhiA8IHNlbmt1XCA7Civpgqrms5UgPCBqYWhvdVwgOwor5b+M5Z6jIDwgaWdha2lcIDsKK+WJjeenkSA8IHplbmthXCA7CivmsI/lrZAgPCB1amlrb1wgOwor5beu6YWNIDwgc2FoYWlcIDsKK+efreatjCA8IHRhbmthXCA7CivlhoXph44gPCBuYWl5YVwgOwor55u46KOcIDwgc291aG9cIDsKK+W8puatjCA8IGdlbmthXCA7CivljYPlrrYgPCBzZW5rZVwgOwor6Ium6ZujIDwga3VuYW5cIDsKK+W8mOazlSA8IGd1aG91XCA7CivmqZ/ou6IgPCBraXRlblwgOwor56C05oiSIDwgaGFrYWlcIDsKK+avgOaQjSA8IGtpc29uXCA7CivljYHlrZcgPCBqdXVqaVwgOwor5beu6YGjIDwgc2FrZW5cIDsKK+W+oeWutCA8IGd5b2VuXCA7Civli5jmn7sgPCBrYW5zYVwgOwor55+u5qi5IDwgd2FpanVcIDsKK+eZvembqCA8IGhha3V1XCA7CivlvqHlroUgPCBvdGFrdVwgOwor5YaF6YOoIDwgbmFpYnVcIDsKK+WGt+iqniA8IHJlaWdvXCA7CivluqfnpoUgPCB6YXplblwgOwor6I236JGJIDwga2F5b3VcIDsKK+iLpumXmCA8IGt1dG91XCA7Civovp7orbIgPCBqaWpvdVwgOwor5Yy75a2mIDwgaWdha3VcIDsKK+WKoOa4myA8IGthZ2VuXCA7CivluqfnpLwgPCB6YXJlaVwgOwor6YWS5ZmoIDwgc2h1a2lcIDsKK+W3pumBtyA8IHNhc2VuXCA7CivnmbvpmaIgPCB0b3VpblwgOwor5YWI6Z2eIDwgc2VucGlcIDsKK+mBi+eXtCA8IHVuY2hpXCA7CivluILosrsgPCBzaGloaVwgOwor5b6A5bm0IDwgb3VuZW5cIDsKK+W6nOeojiA8IGZ1emVpXCA7CivnoJTmkakgPCBrZW5tYVwgOwor5beh6YKPIDwganVucmFcIDsKK+WJo+eSvSA8IGtlbmppXCA7CivlhY3pmaQgPCBtZW5qb1wgOwor6Iqx6a2BIDwgb2lyYW5cIDsKK+W7tua7niA8IGVudGFpXCA7Civlt6bovrogPCBzYWhlblwgOwor5b6u5aG1IDwgbWlqaW5cIDsKK+mDqOaJgCA8IGJ1c2hvXCA7CivljLnlqaYgPCBoaXBwdVwgOwor5YWJ6ZmwIDwga291aW5cIDsKK+asoeeUtyA8IGppbmFuXCA7CivliqDms5UgPCBrYWhvdVwgOwor5b6M5bC+IDwga291YmlcIDsKK+WGhui7oiA8IGVudGVuXCA7CivpgZPnkIYgPCBkb3VyaVwgOwor5q2z5qyhIDwgc2FpamlcIDsKK+WGl+iyuyA8IGpvdWhpXCA7CivliKXnrocgPCBiZWtrb1wgOwor6Iy26KmxIDwgY2hhd2FcIDsKK+avjeaApyA8IGJvc2VpXCA7CivmsJflnI8gPCBraWtlblwgOwor5biC6K2wIDwgc2hpZ2lcIDsKK+awl+WboyA8IGtpZGFuXCA7Civlv5zliIYgPCBvdWJ1blwgOwor5b6h5aSnIDwgb250YWlcIDsKK+WKoOawtCA8IGthc3VpXCA7Civmr5vluIMgPCBtb3VmdVwgOwor5YaN6LW3IDwgc2Fpa2lcIDsKK+awuOWKqyA8IGVpZ291XCA7CivmsLTljJYgPCBzdWlrYVwgOwor6YCU56uvIDwgdG90YW5cIDsKK+mDveW6piA8IHRzdWRvXCA7Civmr43lvaIgPCBib2tlaVwgOwor5bmz57SgIDwgaGVpc29cIDsKK+WLv+aAqiA8IG1va2tlXCA7CivlhpnorZwgPCBzaGFmdVwgOwor5q2j5q+UIDwgc2VpaGlcIDsKK+W9vOWyuCA8IGhpZ2FuXCA7CivljbDliKQgPCBpbnBhblwgOwor5q+O5bqmIDwgbWFpZG9cIDsKK+WFqOmDvSA8IHplbnRvXCA7CivljbDliIAgPCBpbnRvdVwgOwor5YWo6YOoIDwgemVuYnVcIDsKK+awtOWIqSA8IHN1aXJpXCA7CivlvanluqYgPCBzYWlkb1wgOwor5b2i5b2xIDwga2VpZWlcIDsKK+WIpeenkSA8IGJla2thXCA7CivpgaDngasgPCB0b29iaVwgOwor6JGJ5pyrIDwgaGF6dWVcIDsKK+W/q+S6iyA8IGthaWppXCA7CivlupznnIwgPCBmdWtlblwgOwor5YaX6KqeIDwgam91Z29cIDsKK+WMuuWfnyA8IGt1aWtpXCA7Civlt6josrsgPCBreW9oaVwgOwor5b6h5Z2KIDwgZ29ib3VcIDsKK+efouadpSA8IHlhcmFpXCA7CivljJblsI4gPCBrZWRvdVwgOwor6Iux6YKBIDwgZWltYWlcIDsKK+W+jOWmuyA8IGdvc2FpXCA7Civmr5Tls7YgPCBoaXRvdVwgOwor5Y2Y5Y+lIDwgdGFua3VcIDsKK+awl+WTgSA8IGtpaGluXCA7Civlho3orbAgPCBzYWlnaVwgOwor5bel6LK7IDwga291aGlcIDsKK+WLneaJiyA8IGthdHRlXCA7CivnnLznqqkgPCBnYW5rYVwgOwor5biD6KKLIDwgaG90ZWlcIDsKK+iJtum6lyA8IGVucmVpXCA7CivlhKrpm4UgPCB5dXVnYVwgOwor5q+b5a2UIDwga2VhbmFcIDsKK+egtOWxiyA8IGhhb2t1XCA7Civli6Tmg7AgPCBraW5kYVwgOwor5YaF6K2wIDwgbmFpZ2lcIDsKK+atlOastyA8IGt5b2tpXCA7CivovLjpioAgPCB5dWdpblwgOwor5YWo6LqvIDwgemVua3VcIDsKK+W5s+epjyA8IGhlaW9uXCA7CivljbPkvY0gPCBzb2t1aVwgOwor5bqP55ukIDwgam9iYW5cIDsKK+i/kee/kiA8IGtpbmp1XCA7CivmqKHpgKAgPCBtb3pvdVwgOwor5q+N5bGLIDwgb21veWFcIDsKK+mtkemthSA8IGNoaW1pXCA7CivmsLjkvY8gPCBlaWp1dVwgOwor55uu6Iy2IDwgbWVjaGFcIDsKK+WFrOi3ryA8IGtvdXJvXCA7CivliIfnrKYgPCBraXBwdVwgOwor5qiq6LuiIDwgb3V0ZW5cIDsKK+W5tOennyA8IG5lbnNvXCA7Civou43pvJMgPCBndW5rb1wgOwor5Y2K5Y+vIDwgaGFua2FcIDsKK+WNiuWPpSA8IGhhbmt1XCA7CivljZjliKkgPCB0YW5yaVwgOwor5b6z5YyWIDwgdG9ra2FcIDsKK+WIqeebiiA8IHJpZWtpXCA7CivmrKHngrkgPCBqaXRlblwgOwor5b2T5bqnIDwgdG91emFcIDsKK+W+k+WboCA8IGp1dWluXCA7CivmsLjku6MgPCBlaXRhaVwgOwor5rCX5YuiIDwga2lzZWlcIDsKK+atr+actiA8IHNoaWRhXCA7CivmrbPmmq4gPCBzZWlib1wgOwor5b285aW0IDwgYWl0c3VcIDsKK+W+qeWPpCA8IGZ1a2tvXCA7Civlh4ToibYgPCBzZWllblwgOwor5q+N5a2QIDwgYm9zaGlcIDsKK+mBoOa1tyA8IGVua2FpXCA7CivmsJfliY0gPCBraW1hZVwgOwor5Y2D5Y+kIDwgc2Vua29cIDsKK+WGt+iPkyA8IHJlaWthXCA7CivlvJXmlbAgPCBpbnN1dVwgOwor5Yyq5ZujIDwgaGlkYW5cIDsKK+mFjeWCmSA8IGhhaWJpXCA7Civlvq7li5UgPCBiaWRvdVwgOwor5rC45LiWIDwgZWlzZWlcIDsKK+auteW3riA8IGRhbnNhXCA7CivlvbnlpKsgPCBla2lmdVwgOwor5rCX5YiGIDwga2lidW5cIDsKK+mFkuS/nSA8IHNodWhvXCA7CivlvLfmhI8gPCBreW91aVwgOwor5YaF6KaPIDwgbmFpa2lcIDsKK+mBoOazsyA8IGVuJydlaVwgOwor6I2J6IqxIDwgc291a2FcIDsKK+mFlOS9mSA8IHN1aXlvXCA7CivokrLlm6MgPCBmdXRvblwgOwor5b6h5Y+wIDwgbWlkYWlcIDsKK+i7jem2jyA8IHNoYW1vXCA7CivpgKPnkIYgPCByZW5yaVwgOwor6YKq5o6oIDwgamFzdWlcIDsKK+awkeWIqSA8IG1pbnJpXCA7CivpgYvmvJUgPCB1bnNvdVwgOwor6YCj54+gIDwgcmVuanVcIDsKK+WIqeeUqCA8IHJpeW91XCA7Civlvq7liIYgPCBiaWJ1blwgOwor5Y2I5YmNIDwgZ296ZW5cIDsKK+iLseizhyA8IGVpc2hpXCA7CivlhoXoo48gPCBkYWlyaVwgOwor6Ly46YCBIDwgeXVzb3VcIDsKK+WFiOmAlCA8IHNlbmRvXCA7CivliqnmlLsgPCBqb2tvdVwgOwor5q6/5a6HIDwgZGVuJyd1XCA7Civoip/pmaQgPCBzYW5qb1wgOwor5YiH56OLIDwgc2Vzc2FcIDsKK+awkeWFtyA8IG1pbmd1XCA7CivptYTlsL4gPCBzaGliaVwgOwor5Yy75Y2aIDwgaWhha3VcIDsKK+iMtuiPkyA8IGNoYWthXCA7Civlvq7lhYkgPCBiaWtvdVwgOwor5q2p5pWwIDwgaG9zdXVcIDsKK+avjuWknCA8IG1haXlvXCA7Civmrabmlq0gPCBidWRhblwgOwor5Y2Y5L2NIDwgdGFuJydpXCA7Civlhbzoo5wgPCBrZW5wb1wgOwor5Yqg5pWwIDwga2FzdXVcIDsKK+W9k+WutiA8IHRvdWtlXCA7CivlvLflvJUgPCBnb3VpblwgOwor5b6S5ZCNIDwgYWRhbmFcIDsKK+W+oeWHuCA8IG9kZWtvXCA7CivlvZPlrZcgPCBhdGVqaVwgOwor6YWN5LiLIDwgaGFpa2FcIDsKK+WFrOiotCA8IGtvdXNvXCA7CivlubPnmZIgPCBoZWl5dVwgOwor55m66LW3IDwgaG9ra2lcIDsKK+awl+S9kyA8IGtpdGFpXCA7CivpgqrmhbMgPCBqYWtlblwgOwor5Yy65YiGIDwga3VidW5cIDsKK+mBv+aakSA8IGhpc2hvXCA7CivpgYrms7MgPCB5dXVlaVwgOwor5Yy65YemIDwga3VzaG9cIDsKK+avjeWggiA8IGJvZG91XCA7CivlvqHlhY0gPCBnb21lblwgOwor5b6h5YWIIDwgb3Nha2lcIDsKK+iMtuiIlyA8IGNoYWhvXCA7Civli4flvoAgPCB5dXVvdVwgOwor5byT5omLIDwgeXVuZGVcIDsKK+WNl+S4iyA8IG5hbmthXCA7CivljLrlhoUgPCBrdW5haVwgOwor6Imy6aaZIDwgaXJva2FcIDsKK+W+kuWKtCA8IHRvcm91XCA7CivlhZrorbAgPCB0b3VnaVwgOwor6YKq5oKqIDwgamFha3VcIDsKK+W5tOeUqyA8IG5lbnBvXCA7Civpg6jlpJYgPCBidWdhaVwgOwor5q2M5pu4IDwga2FzaG9cIDsKK+WJm+awlyA8IGdvdWtpXCA7CivlvKflvaIgPCBrb2tlaVwgOwor5Yui5a62IDwgc2Vpa2FcIDsKK+WKg+acnyA8IGtha2tpXCA7CivnoILlsqkgPCBzYWdhblwgOwor6YKq5oGLIDwgamFyZW5cIDsKK+awl+S4iCA8IGtpam91XCA7CivlvqnkvY0gPCBmdWt1aVwgOwor5b6S5YiRIDwgdG9rZWlcIDsKK+ebrue3miA8IG1lc2VuXCA7CivokIzmnKggPCBtb2VnaVwgOwor5Ya35721IDwgcmVpYmFcIDsKK+awkeS6iyA8IG1pbmppXCA7Civnn6nlvaIgPCBrdWtlaVwgOwor6YG65pePIDwgaXpva3VcIDsKK+avm+WUkCA8IGtldG91XCA7Civlhajoo7ggPCB6ZW5yYVwgOwor6YKq5b+1IDwgamFuZW5cIDsKK+WKqeaIkCA8IGpvc2VpXCA7Civou43ppqwgPCBndW5iYVwgOwor5Ym15qGIIDwgc291YW5cIDsKK+aooeippiA8IG1vc2hpXCA7CivpgYrmrakgPCB5dXVob1wgOwor5Ye555y8IDwgb3VnYW5cIDsKK+W9k+WknCA8IHRvdXlhXCA7Civou4rppqwgPCBzaGFiYVwgOwor5Yqg5ouFIDwga2F0YW5cIDsKK+m0qOWxhSA8IGthbW9pXCA7CivlvqHkvpsgPCBvdG9tb1wgOwor5b6S5YWaIDwgdG90b3VcIDsKK+WGhuiTiyA8IGVuZ2FpXCA7CivljYPku6MgPCBjaGl5b1wgOwor5YWE6LK0IDwgYW5pa2lcIDsKK+iLpuiogCA8IGt1Z2VuXCA7CivlvqHkvL0gPCBvdG9naVwgOwor5YyW5ZCIIDwga2Fnb3VcIDsKK+WIqeeCuSA8IHJpdGVuXCA7CivprLzpnaIgPCBraW1lblwgOwor6Ly/6KuWIDwgeW9yb25cIDsKK+WNgeS6lCA8IGp1dWdvXCA7CivmrbvlvowgPCBzaGlnb1wgOwor5Y2B5LqMIDwganV1bmlcIDsKK+aoquihjCA8IG91a291XCA7CivlvqHku4EgPCBnb2ppblwgOwor5b6M5YWJIDwgZ29rb3VcIDsKK+WFiOitsCA8IHNlbmdpXCA7CivpgaDmnaUgPCBlbnJhaVwgOwor5YmN5q2vIDwgbWFlYmFcIDsKK+mBoOacmyA8IGVuYm91XCA7Civlh7rnlaogPCBkZWJhblwgOwor55+l5bexIDwgY2hpa2lcIDsKK+WKseW8pyA8IHJlaWtvXCA7CivnnIvnoLQgPCBrYW5wYVwgOwor5b6h5LiKIDwgb2thbWlcIDsKK+WFjeiotCA8IG1lbnNvXCA7Civlvbnli5kgPCBla2ltdVwgOwor6JKZ5Y+kIDwgbW91a29cIDsKK+WGoOiAhSA8IGthbmphXCA7Civlu4Pmo4QgPCBoYWlraVwgOwor5Yip5r2kIDwgcmlqdW5cIDsKK+WDp+mZoiA8IHNvdWluXCA7Civou43pnbQgPCBndW5rYVwgOwor5Yak572qIDwgZW56YWlcIDsKK+mBoOaZryA8IGVua2VpXCA7CivlhoXoi5EgPCBuYWllblwgOwor5buD5qGIIDwgaGFpYW5cIDsKK+i7jemcgCA8IGd1bmp1XCA7CivprLzploAgPCBraW1vblwgOwor6YGg5pa5IDwgZW5wb3VcIDsKK+W3puiItyA8IHNhZ2VuXCA7CivlhYHoqLEgPCBpbmt5b1wgOwor5biw56S+IDwga2lzaGFcIDsKK+WKo+W8pyA8IHJla2tvXCA7Civpg6jlk4EgPCBidWhpblwgOwor56CC5aG1IDwgc2FqaW5cIDsKK+WInea8lCA8IHNob2VuXCA7Civmranlu4ogPCBob3JvdVwgOwor5q2M5omLIDwga2FzaHVcIDsKK+W+jOS6iyA8IGtvdWppXCA7Civli4flqaYgPCB5dXVmdVwgOwor5q2q5bqmIDwgd2FpZG9cIDsKK+W5s+eCiSA8IGhlaXJvXCA7CivovrLnp5EgPCBub3VrYVwgOwor5q2m5byBIDwgYnViZW5cIDsKK+mDveWGhSA8IHRvbmFpXCA7CivlvJ/lrZAgPCBkZXNoaVwgOwor5bem6ISzIDwgc2Fub3VcIDsKK+WKoOW5tCA8IGthbmVuXCA7Civov5Hnlb8gPCBraW5raVwgOwor5byB5bqnIDwgYmVuemFcIDsKK+WIpea0viA8IGJlcHBhXCA7CivmraPluqcgPCBzZWl6YVwgOwor5byV5bCOIDwgaW5kb3VcIDsKK+mAo+atjCA8IHJlbmdhXCA7CivprZTpgZMgPCBtYWRvdVwgOwor5b2x5YOPIDwgZWl6b3VcIDsKK+W3q+iAhSA8IGZ1c2hhXCA7Civlh7nniYggPCBvdWJhblwgOwor5YaF6ICzIDwgbmFpamlcIDsKK+W9k+WQpiA8IHRvdWhpXCA7CivliKnmsLQgPCByaXN1aVwgOwor6YCg5qyhIDwgem91amlcIDsKK+WFreiKsSA8IHJpa2thXCA7Civlh6bnkIYgPCBzaG9yaVwgOwor5bu25byVIDwgZW4nJ2luXCA7Civnnb/mmbogPCBlaWNoaVwgOwor5YWr6IumIDwgaGFra3VcIDsKK+avlOWAqyA8IGhpcmluXCA7CivpgY7mlY8gPCBrYWJpblwgOwor5bu25bu2IDwgZW4nJ2VuXCA7Civli5Xlm6AgPCBkb3VpblwgOwor5byK5bGlIDwgaGVpcmlcIDsKK+mBuuW+syA8IGl0b2t1XCA7CivnoLTlgKsgPCBoYXJpblwgOwor5YyX5LqsIDwgcGVraW5cIDsKK+egguWYtCA8IHNhc2hpXCA7CivliY3mnJ8gPCB6ZW5raVwgOwor5qyh5pWwIDwgamlzdXVcIDsKK+mAoOapnyA8IHpvdWtpXCA7Civmr5TkvosgPCBoaXJlaVwgOwor6YOo5YiGIDwgYnVidW5cIDsKK+WGjee4gSA8IHNhaWVuXCA7Civnm67nnKkgPCBtZW1haVwgOwor5qi56ISCIDwganVzaGlcIDsKK+aui+WfuiA8IHphbmtpXCA7CivpgLjmm7ggPCBpc3Nob1wgOwor6YO95LyaIDwgdG9rYWlcIDsKK+asveaFlSA8IGtpbmJvXCA7Civpg6jlhoUgPCBidW5haVwgOwor5YWt6IWRIDwgcm9wcHVcIDsKK+mAk+asoSA8IHRlaWppXCA7Civpg73kurogPCB0b2ppblwgOwor6YGL5pCsIDwgdW5wYW5cIDsKK+WJjeaXpSA8IG1hZWJpXCA7Civmr43kvZMgPCBib3RhaVwgOwor5Yip5qipIDwgcmlrZW5cIDsKK+mBt+W6pyA8IHNlbnphXCA7CivliqDlrrMgPCBrYWdhaVwgOwor6YGg5oWuIDwgZW5yeW9cIDsKK+WLp+WMliA8IGthbmdlXCA7Civli4flm7MgPCB5dXV0b1wgOwor6I+p5o+QIDwgYm9kYWlcIDsKK+WDp+mDvSA8IHNvdXp1XCA7CivmrablrpggPCBidWthblwgOwor5Yid5q2pIDwgc2hvaG9cIDsKK+efs+WZqCA8IHNla2tpXCA7CivpgIDmsrsgPCB0YWlqaVwgOwor6I+y5omNIDwgaGlzYWlcIDsKK+WLpOWLmSA8IGtpbm11XCA7CivmraPlrZcgPCBzZWlqaVwgOwor5beo57SwIDwga29zYWlcIDsKK+mBi+aMhyA8IHVuc2hpXCA7Civps6XlsYUgPCB0b3JpaVwgOwor5bmz5rCXIDwgaGVpa2lcIDsKK+mAo+aetiA8IHJlbmthXCA7CivliIbmtL4gPCBidW5wYVwgOwor6LuN6YOoIDwgZ3VuYnVcIDsKK+WHuua5ryA8IGlkZXl1XCA7CivluqbmlbAgPCBkb3N1dVwgOwor6YGK5oqAIDwgeXV1Z2lcIDsKK+mAgOatqSA8IHRhaWhvXCA7CivpgqblnJ8gPCBob3Vkb1wgOwor6YG/5a+SIDwgaGlrYW5cIDsKK+mDqOS8miA8IGJ1a2FpXCA7CivliKnmoLkgPCByaWtvblwgOwor5bSO6Zm9IDwga2l5b3VcIDsKK+W5tOasoSA8IG5lbmppXCA7Civlt67nrYkgPCBzYXRvdVwgOwor6LuM6YGTIDwga2lkb3VcIDsKK+mBuuWwvyA8IGlueW91XCA7Civmrbvlm6AgPCBzaGlpblwgOwor5Yuy5L2NIDwga3VuJydpXCA7CivokazlhbcgPCBzb3VndVwgOwor5YaG562SIDwgZW50b3VcIDsKK+WIhuavjSA8IGJ1bmJvXCA7CivojLbnm64gPCBjaGFtZVwgOwor5bqX5pivIDwgdGVuemVcIDsKK+WLn+WFtSA8IGJvaGVpXCA7Civmrr/kuIsgPCBkZW5rYVwgOwor5qyd5oakIDwgdXBwdW5cIDsKK+iRrOWEgCA8IHNvdWdpXCA7CivpgZXlv4MgPCBpc2hpblwgOwor5byx5YyWIDwgamFra2FcIDsKK+WKoOWilyA8IGthem91XCA7CivpgYrmg7AgPCB5dXVkYVwgOwor5Yuf5YK1IDwgYm9zYWlcIDsKK+mBjuaAoCA8IGthdGFpXCA7Civlh7rmsYEgPCBkYXNoaVwgOwor55uj55CGIDwga2FucmlcIDsKK+WJjeaIryA8IHplbmdpXCA7CivluKvniLYgPCBzaGlmdVwgOwor5bq45oSaIDwgeW91Z3VcIDsKK+W8leWWqSA8IGluJyd5dVwgOwor5bid546LIDwgdGVpb3VcIDsKK+mBv+WmiiA8IGhpbmluXCA7CivlhoXnp5EgPCBuYWlrYVwgOwor5bqP5paHIDwgam9idW5cIDsKK+i7jei3ryA8IGd1bnJvXCA7Civluo/mlbAgPCBqb3N1dVwgOwor5q6L5YuZIDwgemFubXVcIDsKK+WIneacnyA8IHNob2tpXCA7Civouqvph40gPCBtaW9tb1wgOwor5bqn5omAIDwgemFzaG9cIDsKK+i8quiIniA8IHJpbmJ1XCA7CivpgJTmlrkgPCB0b2hvdVwgOwor5YSA6KOFIDwgZ2lzb3VcIDsKK+W5veaalyA8IHl1dWFuXCA7Civoi7HnsbMgPCBlaWJlaVwgOwor6LuN6LK7IDwgZ3VucGlcIDsKK+mtlOihlyA8IG1hZ2FpXCA7Civou6LoqJsgPCB0ZW5rYVwgOwor6Lui6KiYIDwgdGVua2lcIDsKK+WHseatjCA8IGdhaWthXCA7CivmrKHlubQgPCBqaW5lblwgOwor6YG65aKoIDwgaWJva3VcIDsKK+mBheW7tiA8IGNoaWVuXCA7CivlubzmmYIgPCB5b3VqaVwgOwor55uG55S7IDwgYm9uZ2FcIDsKK+WIkeacnyA8IGtlaWtpXCA7CivlubTmnJ8gPCBuZW5raVwgOwor5YuV5L2cIDwgZG91c2FcIDsKK+WHuuanmCA8IGRleW91XCA7Civoirjoi5EgPCBnZWllblwgOwor5byn5YWJIDwga29rb3VcIDsKK+atjOWjhyA8IGthZGFuXCA7CivlhbXnp5EgPCBoZWlrYVwgOwor5Yqp5ZG9IDwgam9tZWlcIDsKK+mrmOmbhSA8IGtvdWdhXCA7CivluLjmuKkgPCBqb3VvblwgOwor5YmN5b6MIDwgemVuZ29cIDsKK+atpuWVjyA8IGJ1bW9uXCA7CivlirTli5kgPCByb3VtdVwgOwor5beu55uKIDwgc2Fla2lcIDsKK+mAo+aJkyA8IHJlbmRhXCA7CivlhKroibYgPCB5dXVlblwgOwor6Iqx6IyOIDwga2FrZWlcIDsKK+egguS4iiA8IHNham91XCA7Civou43orbAgPCBndW5naVwgOwor5bmz5pmCIDwgaGVpamlcIDsKK+S8iuWRguazoiA8IGlyb2hhXCA7Civlhobnm6QgPCBlbmJhblwgOwor5YG96Zu7IDwgZ2lkZW5cIDsKK+earuebuCA8IGhpc291XCA7Civov5TmrYwgPCBoZW5rYVwgOwor5YmN5bqnIDwgemVuemFcIDsKK+eXqei6ryA8IHNvdWt1XCA7CivliIbmnKggPCBidW5naVwgOwor5q2j5ZOhIDwgc2VpaW5cIDsKK+WGheeariA8IG5haWhpXCA7CivmqKHnr4QgPCBtb2hhblwgOwor6Iq96IOeIDwgZ2Fob3VcIDsKK+WIgOaetiA8IHRvdWthXCA7CivovInojbcgPCBzYWlrYVwgOwor55qu55msIDwgaGl6ZW5cIDsKK+mBiuWxsSA8IHl1c2FuXCA7CivmrablkI0gPCBidW1laVwgOwor5Lqc6Ymb6I+vIDwgYWVua2FcIDsKK+iKmeiTiSA8IGZ1eW91XCA7CivmrbvlhZAgPCBzaGlqaVwgOwor5bqV5oSPIDwgc29rb2lcIDsKK+iHqummliA8IGppc2h1XCA7Civou43oqJggPCBndW5raVwgOwor5Yqj5YyWIDwgcmVra2FcIDsKK+mBoOWkpyA8IGVuZGFpXCA7CivlhbfnnLwgPCBndWdhblwgOwor5qyh5a6YIDwgamlrYW5cIDsKK+asoeWtkCA8IGppc2hpXCA7Civmrabli7IgPCBidWt1blwgOwor5bu25ZG9IDwgZW5tZWlcIDsKK+WFg+e0oCA8IGdlbnNvXCA7Civmrabli4cgPCBidXl1dVwgOwor5q2m5YqfIDwgYnVrb3VcIDsKK+W7t+WQjyA8IHRlaXJpXCA7CivlhobnkrAgPCBlbmthblwgOwor5bKp6a2aIDwgaXdhbmFcIDsKK+WIneaJiyA8IHNob3RlXCA7CivlhKrnvo4gPCB5dXViaVwgOwor5YSS6ImvIDwganVnb25cIDsKK+WFkOerpSA8IGppZG91XCA7CivmrZPlkbwgPCBrYW5rb1wgOwor6bOz5YewIDwgaG91b3VcIDsKK+efpeS6iyA8IGNoaWppXCA7CivpgZPlpK4gPCBkb3VvdVwgOwor6LuN6KGjIDwgZ3VuJydpXCA7CivliLbluqYgPCBzZWlkb1wgOwor5q2p5YW1IDwgaG9oZWlcIDsKK+WBnOmfsyA8IHRlaW9uXCA7CivlvJXkvosgPCBpbnJlaVwgOwor55e06KmxIDwgY2hpd2FcIDsKK+WKoOWGoCA8IGtha2FuXCA7CivpgKPluqcgPCByZW56YVwgOwor6YGg5ZywIDwgZW5jaGlcIDsKK+eZveemjSA8IGhha2thXCA7CivpgY7lpKcgPCBrYWRhaVwgOwor6Iub56iOIDwga2F6ZWlcIDsKK+mBiuWlsyA8IHl1dWpvXCA7CivovJ3nt5ogPCBraXNlblwgOwor5YWl55u4IDwgaXJpYWlcIDsKK+iKi+iMjiA8IHp1aWtpXCA7Civnlo7plosgPCBzb2thaVwgOwor5YmN5ammIDwgemVucHVcIDsKK+WBj+mglyA8IGhlbnBhXCA7CivpgbfljJYgPCBzZW5nZVwgOwor57at5oyB6LK7IDwgaWppaGlcIDsKK+iQveS4iyA8IHJha2thXCA7Civlhbfnj74gPCBndWdlblwgOwor5Ya35rCXIDwgcmVpa2lcIDsKK+WEkuiAhSA8IGp1c2hhXCA7CivoiJfpgZMgPCBob2RvdVwgOwor5YWI56WWIDwgc2Vuem9cIDsKK+eZuuegtCA8IGhhcHBhXCA7CivnlbPpn7sgPCBqb3VpblwgOwor55u45qOSIDwgYWlib3VcIDsKK+W7g+WckiA8IGhhaWVuXCA7Civov5HmmYIgPCBraW5qaVwgOwor6a2a6IKlIDwgZ3lvaGlcIDsKK+i6jei1tyA8IHlha2tpXCA7CivoirHntIsgPCBrYW1vblwgOwor5YWD56WWIDwgZ2Fuc29cIDsKK+ebl+axlyA8IG5lYXNlXCA7CivmrabkurogPCBidWppblwgOwor6Iqx57KJIDwga2FmdW5cIDsKK+iInui5iCA8IGJ1dG91XCA7Civlub7luqYgPCBpa3Vkb1wgOwor5qyh5ZueIDwgamlrYWlcIDsKK+msseiSvCA8IHVzc291XCA7CivoiJ7ouIogPCBidXlvdVwgOwor6Lyq56aNIDwgcmlua2FcIDsKK+WIkeW+kiA8IGtlaXRvXCA7CivlubTlvowgPCBuZW5nb1wgOwor6YCj5a2QIDwgcmVuamlcIDsKK+ebuOadvyA8IGFpYmFuXCA7CivliY3loLQgPCB6ZW5iYVwgOwor55Sw6bqpIDwgZGVuYnVcIDsKK+WHueaJgCA8IG91c2hvXCA7Civlgb3pgKAgPCBnaXpvdVwgOwor6Ium55WMIDwga3VnYWlcIDsKK+W4uOaZgiA8IGpvdWppXCA7CivpgoTku5ggPCBrYW5wdVwgOwor6YGL5Za2IDwgdW4nJ2VpXCA7CivlubTluqYgPCBuZW5kb1wgOwor6YCu5aScIDwgdGFpeWFcIDsKK+mAgOW6pyA8IHRhaXphXCA7CivliKnlrrMgPCByaWdhaVwgOwor6Imx6IumIDwga2Fua3VcIDsKK+asoeWWhCA8IGppemVuXCA7CivliKnlrZAgPCByaXNoaVwgOwor5Yil5a62IDwgYmVra2VcIDsKK+mBuuS9nCA8IGlzYWt1XCA7CivojZLmnKggPCBhcmFraVwgOwor5bKp6ZaTIDwgaXdhbWFcIDsKK+W6reWckiA8IHRlaWVuXCA7Civpr6jms6IgPCBnZWloYVwgOwor5bm05beuIDwgbmVuc2FcIDsKK+mvqOayuSA8IGdlaXl1XCA7CivoubbotbcgPCBrZWtraVwgOwor5YaG5rqAIDwgZW5tYW5cIDsKK+i+suacnyA8IG5vdWtpXCA7CivliKTlrZAgPCBoYW5rb1wgOwor6I+v5Y6zIDwga2Vnb25cIDsKK+mBoOWHuiA8IHRvb2RlXCA7CivpgYvlkb0gPCB1bm1laVwgOwor6YGT5YyWIDwgZG91a2VcIDsKK+atjOS7mSA8IGthc2VuXCA7Civou6LnvqkgPCB0ZW5naVwgOwor5qyh5Y+3IDwgamlnb3VcIDsKK+atjOS6uiA8IGthamluXCA7Civnm7jmkrIgPCBzdW1vdVwgOwor6Im26IGeIDwgZW5idW5cIDsKK+W6j+WljyA8IGpvc291XCA7Civov5HmiYAgPCBraW5qb1wgOwor5Yeh5omTIDwgYm9uZGFcIDsKK+WHueW9oiA8IG91a2VpXCA7CivoiI7osrsgPCBzaGFoaVwgOwor6YGO5YukIDwga2FraW5cIDsKK+mBjuWKtCA8IGthcm91XCA7Civoh6rpgrggPCBqaXRlaVwgOwor6YGL5YuiIDwgdW5zZWlcIDsKK+W3qOazoiA8IGt5b2hhXCA7CivpgYvli5UgPCB1bmRvdVwgOwor6L6e5p+EIDwgamloZWlcIDsKK+mBjuWJsCA8IGtham91XCA7CivnlZ3plpMgPCB1bmVtYVwgOwor6Ieq6YG4IDwgamlzZW5cIDsKK+i+nuaelyA8IGppcmluXCA7CivlubPlrrYgPCBoZWlrZVwgOwor6YC45ZOBIDwgaXBwaW5cIDsKK+mBk+WFtyA8IGRvdWd1XCA7CivlubPlrokgPCBoZWlhblwgOwor55qG54ShIDwga2FpbXVcIDsKK+WHoeaEmiA8IGJvbmd1XCA7CivliIblspAgPCBidW5raVwgOwor5YmN5Y+kIDwgemVua29cIDsKK+eUu+mkhSA8IGdhYmVpXCA7Civkvp3kvLDlnLAgPCBla29qaVwgOwor6L6e5pu4IDwgamlzaG9cIDsKK+mAoOWckiA8IHpvdWVuXCA7CivlibDkvZkgPCBqb3V5b1wgOwor5bq25YuZIDwgc2hvbXVcIDsKK+eUu+miqCA8IGdhZnV1XCA7CivlhIDnr4QgPCBnaWhhblwgOwor6Iqz55yJIDwgaG91YmlcIDsKK+WIneWknCA8IHNob3lhXCA7CivmqLnmtrIgPCBqdWVraVwgOwor5Yid5aSPIDwgc2hva2FcIDsKK+W4jOacmyA8IGtpYm91XCA7Civlt6jmrakgPCBreW9ob1wgOwor5bm85aWzIDwgeW91am9cIDsKK+eUu+mhjCA8IGdhZGFpXCA7CivliIblrrYgPCBidW5rZVwgOwor5biM5pu4IDwga2lzaG9cIDsKK+W4sOaKlSA8IGtpdG91XCA7CivlhqTmnokgPCBlbicnb3VcIDsKK+aouea1tyA8IGp1a2FpXCA7Civlub7lpJwgPCBpa3V5b1wgOwor5bm+5aSaIDwgaWt1dGFcIDsKK+asoeWFhCA8IGppa2VpXCA7CivmrKHlhYMgPCBqaWdlblwgOwor6L+35a2QIDwgbWFpZ29cIDsKK+apn+aisCA8IGtpa2FpXCA7Civluqflj7MgPCB6YXl1dVwgOwor5bm75aSiIDwgZ2VubXVcIDsKK+WFiOeItiA8IHNlbnB1XCA7CivpgaHkuIogPCBzb2pvdVwgOwor5qmf5qC5IDwga2lrb25cIDsKK+WBveiqkyA8IGdpc2VpXCA7CivpgKDllrYgPCB6b3VlaVwgOwor6IiX6KOFIDwgaG9zb3VcIDsKK+eVsOmDtyA8IGlreW91XCA7CivnlLvpnaIgPCBnYW1lblwgOwor5YCN6Z+zIDwgYmFpb25cIDsKK+aji+miqCA8IGtpZnV1XCA7Civlgb3oqIggPCBnaWtlaVwgOwor55u45oSbIDwgc291YWlcIDsKK+WBveiogCA8IGdpZ2VuXCA7Civlgbboqp4gPCBndXVnb1wgOwor5qmf5p2QIDwga2l6YWlcIDsKK+asoeS+vyA8IGppYmluXCA7CivpgKPlkbwgPCByZW5rb1wgOwor5bem5qeYIDwgc2F5b3VcIDsKK+WBtuipoCA8IGd1dWVpXCA7CivprZTnpZ4gPCBtYWppblwgOwor5buK5LiLIDwgcm91a2FcIDsKK+mpn+mbqCA8IHNodXV1XCA7Civnm7LmhJsgPCBtb3VhaVwgOwor5YaN5qGIIDwgc2FpYW5cIDsKK+aEj+awl+WcsCA8IGlrdWppXCA7CivlhIDnpLwgPCBnaXJlaVwgOwor6Ieq6LObIDwgamlzYW5cIDsKK+mAo+WPpSA8IHJlbmt1XCA7Civot6/poK0gPCByb3RvdVwgOwor6L+35aSiIDwgbWVpbXVcIDsKK+iLseazlSA8IGVpaG91XCA7Civoh6rosqkgPCBqaWhhblwgOwor6Ium5riLIDwga3VqdXVcIDsKK+ebuOW/nCA8IHNvdW91XCA7CivmrKHku6MgPCBqaWRhaVwgOwor5bC+6bCtIDwgb2JpcmVcIDsKK+W4q+aBqSA8IHNoaW9uXCA7CivlhazmraYgPCBrb3VidVwgOwor6Lui56e7IDwgdGVuJydpXCA7Civot6/pnaIgPCByb21lblwgOwor5bKh6L66IDwgb2thYmVcIDsKK+WBiei5nyA8IGlzZWtpXCA7CivlhZrmtL4gPCB0b3VoYVwgOwor6YGL5LiKIDwgdW5qb3VcIDsKK+alreiLpiA8IGdvdWt1XCA7CivlsaTpm7IgPCBzb3V1blwgOwor5bqn5YOPIDwgemF6b3VcIDsKK+W4t+W5lSA8IGliYWt1XCA7CivluLfluLMgPCBpY2hvdVwgOwor5Yip5Y+jIDwgcmlrb3VcIDsKK+apn+aVjyA8IGtpYmluXCA7CivlhaXmra8gPCBpcmViYVwgOwor5bq25LqLIDwgc2hvamlcIDsKK+mtlOedoSA8IG1hc3VpXCA7CivmqKrmrbsgPCBvdXNoaVwgOwor6LuM56+EIDwga2loYW5cIDsKK+WGhuacrCA8IGVucG9uXCA7CivlhJLnlJ8gPCBqdXNlaVwgOwor5beh5p+7IDwganVuc2FcIDsKK+WGjeaYoCA8IHNhaWVpXCA7CivlurXkuLsgPCBhbnNodVwgOwor6Ieq6KqNIDwgamluaW5cIDsKK+iKseeJhyA8IGthaGVuXCA7CivprLznpZ4gPCBraWppblwgOwor6Ly45rayIDwgeXVla2lcIDsKK+eUmOmcsiA8IGthbnJvXCA7CivmqoDlvpIgPCBkYW50b1wgOwor55Ww6LGhIDwgaXNob3VcIDsKK+iMguaelyA8IG1vcmluXCA7Civkv53ppIogPCBob3lvdVwgOwor5YWJ5rOiIDwga291aGFcIDsKK+i3nemboiA8IGt5b3JpXCA7Civlt6bmlrkgPCBzYWhvdVwgOwor5bqn5LmXIDwgemFqb3VcIDsKK+aoueaelyA8IGp1cmluXCA7CivprZTnlYwgPCBtYWthaVwgOwor5bmz5ZKMIDwgaGVpd2FcIDsKK+WFt+aciSA8IGd1eXV1XCA7CivlhazmoYggPCBrb3VhblwgOwor5Yem5aWzIDwgc2hvam9cIDsKK+W4neW6pyA8IHRlaXphXCA7CivliJHlkI8gPCBrZWlyaVwgOwor6YCB5Y+XIDwgc291anVcIDsKK+W3ruaQjSA8IHNhc29uXCA7CivmqKHmp5ggPCBtb3lvdVwgOwor5qmf5omNIDwga2lzYWlcIDsKK+WHoeWkqyA8IGJvbnB1XCA7CivliLvkuIsgPCBrb2trYVwgOwor6YCA5YyWIDwgdGFpa2FcIDsKK+WHhuWwiSA8IGp1bicnaVwgOwor5Ya25belIDwgeWFrb3VcIDsKK+aoquafhCA8IG91aGVpXCA7CivlhbjmlYUgPCB0ZW5rb1wgOwor6Imy55uuIDwgaXJvbWVcIDsKK+WIqeS+vyA8IHJpYmVuXCA7CivnlLvpgZMgPCBnYWRvdVwgOwor6Lev6YqAIDwgcm9naW5cIDsKK+iNieWxpSA8IHpvdXJpXCA7Civkv53pmbogPCBob2tlblwgOwor5bm05YipIDwgbmVucmlcIDsKK+iLseabuCA8IGVpc2hvXCA7Civlha3ml6UgPCBtdWlrYVwgOwor5YiG5Yy6IDwgYnVua3VcIDsKK+WFq+aXpSA8IHlvdWthXCA7CivlhazmlrkgPCBrdWJvdVwgOwor5qiq5pq0IDwgb3Vib3VcIDsKK+WGpeW6nCA8IG1laWZ1XCA7CivliJHlhbcgPCBrZWlndVwgOwor6Ium5p2vIDwga3VoYWlcIDsKK+iLseaYjiA8IGVpbWVpXCA7CivmqoDlrrYgPCBkYW5rYVwgOwor5qih5pysIDwgbW9ob25cIDsKK+WFpeaXpSA8IGlyaWhpXCA7CivlsL7plbcgPCBvbmFnYVwgOwor6L6y5ammIDwgbm91ZnVcIDsKK+Wwj+msoiA8IGtvYmluXCA7CivliKTkuosgPCBoYW5qaVwgOwor5YiG5YipIDwgYnVucmlcIDsKK+iLseaWrSA8IGVpZGFuXCA7CivlgoXogrIgPCBmdWlrdVwgOwor5qiq5patIDwgb3VkYW5cIDsKK+iLseaWhyA8IGVpYnVuXCA7Civlh6HlmaggPCBib25raVwgOwor6Iux5pWwIDwgZWlzdXVcIDsKK+WGtOWvkiA8IGdva2FuXCA7CivpgJTkuIogPCB0b2pvdVwgOwor5biD5be+IDwgZnVraW5cIDsKK+ebuOWgtCA8IHNvdWJhXCA7CivpqJLpn7MgPCBzb3VvblwgOwor5YWa5pivIDwgdG91emVcIDsKK+i+suWltCA8IG5vdWRvXCA7CivnlKjpgJQgPCB5b3V0b1wgOwor5YWJ5qCEIDwga291ZWlcIDsKK+iMtuWxiyA8IGNoYXlhXCA7CivovL/mnJsgPCB5b2JvdVwgOwor6Ieq6JGXIDwgamljaG9cIDsKK+WFkOabuSA8IGppc291XCA7Civlh7rliY0gPCBkZW1hZVwgOwor5bCP6aasIDwga291bWFcIDsKK+iNt+WPsCA8IG5pZGFpXCA7CivnlJjphaIgPCBhbWF6dVwgOwor6IuX5pyoIDwgbmFlZ2lcIDsKK+mnu+mmrCA8IGthbmJhXCA7CivnlLvos5sgPCBnYXNhblwgOwor55m95peXIDwgaGFra2lcIDsKK+mAgeS7mCA8IHNvdWZ1XCA7CivlhoXlv5wgPCBuYWlvdVwgOwor5YeN5ZyfIDwgdG91ZG9cIDsKK+W4r+WcsCA8IG9iaWppXCA7CivovrrlnJ8gPCBoZW5kb1wgOwor5bC+6YygIDwgYmlqb3VcIDsKK+WIkeS6iyA8IGtlaWppXCA7CivlhoblvL4gPCBlbmRhblwgOwor55uu5Z6iIDwgbWVha2FcIDsKK+i/keWPpCA8IGtpbmtvXCA7Civou73mta4gPCBrZWlmdVwgOwor6Iub5paCIDwga2FyZW5cIDsKK+i7oueCiSA8IHRlbnJvXCA7CivovrLlnJIgPCBub3VlblwgOwor5be75bC+IDwga2FuYmlcIDsKK+eni+WIgOmtmiA8IHNhbm1hXCA7CivkvbPpupcgPCBrYXJlaVwgOwor6Im254S2IDwgZW56ZW5cIDsKK+iLseaJjSA8IGVpc2FpXCA7CivohbDpg6ggPCB5b3VidVwgOwor6Lu95rK5IDwga2VpeXVcIDsKK+W5h+WKqSA8IGhvdWpvXCA7CivlhoXluJEgPCBuYWlkb1wgOwor55S76KuHIDwgZ2FkYW5cIDsKK+WGmeWtlyA8IHNoYWppXCA7CivkvpvppIogPCBrdXlvdVwgOwor5YCS6KqeIDwgdG91Z29cIDsKK+msvOeBqyA8IG9uaWJpXCA7CivprZrmsrkgPCBneW95dVwgOwor5bid5ZyfIDwgdGVpZG9cIDsKK+apn+WrjCA8IGtpZ2VuXCA7CivoirHmoqggPCBrYXJpblwgOwor5YWM5o+bIDwgZGFrYW5cIDsKK+mtlOazlSA8IG1haG91XCA7Civoi6bmiKYgPCBrdXNlblwgOwor5YK355eNIDwgc2hvdWlcIDsKK+WAmeijnCA8IGtvdWhvXCA7CivluLjli5kgPCBqb3VtdVwgOwor5biw5Y+CIDwga2lzYW5cIDsKK+WGhuWxhSA8IG1hZG9pXCA7CivmqLnlubkgPCBqdWthblwgOwor6Ium5oWuIDwga3VyeW9cIDsKK+mmrOm9oiA8IGJhcmVpXCA7CivkvZnpvaIgPCB5b3JlaVwgOwor55eU55i7IDwgamlyb3VcIDsKK+W3qOWvjCA8IGt5b2Z1XCA7CivlhazluqsgPCBrb3Vrb1wgOwor5YKZ56CyIDwgYmlob3VcIDsKK+WFrOW6jyA8IGtvdWpvXCA7Civoi6bmg4UgPCBrdWpvdVwgOwor6Iy25ZySIDwgY2hhZW5cIDsKK+iLpuaCtiA8IGt1bW9uXCA7Civoi6bmgqkgPCBrdW5vdVwgOwor55So6KqeIDwgeW91Z29cIDsKK+W3puWumCA8IHNha2FuXCA7Civmp5DmqLkgPCBrYWlqdVwgOwor5YaX5aSaIDwgam91dGFcIDsKK+i7n+a0viA8IG5hbnBhXCA7CivlhazluIMgPCBrb3VmdVwgOwor55Ww6IW5IDwgaWZ1a3VcIDsKK+WFiOaJiyA8IHNlbnRlXCA7Civlhazlt64gPCBrb3VzYVwgOwor6Iy25ZmoIDwgY2hha2lcIDsKK+iHk+iFkSA8IHpvdWZ1XCA7CivprLHmu54gPCB1dHRhaVwgOwor5qGC6aasIDwga2VpbWFcIDsKK+i/lOS7mCA8IGhlbnB1XCA7CivmooXphaIgPCB1bWV6dVwgOwor6L6y5YuZIDwgbm91bXVcIDsKK+W4uOWCmSA8IGpvdWJpXCA7Civoi6blvbkgPCBrdWVraVwgOwor6IiM56aNIDwgemVra2FcIDsKK+W1kOawlyA8IHJhbmtpXCA7CivmorXoqp4gPCBib25nb1wgOwor55yM5LiLIDwga2Vua2FcIDsKK+iFlei8qiA8IHVkZXdhXCA7Civotbfpm7sgPCBraWRlblwgOwor5bir5YSSIDwgc2hpanVcIDsKK+Wutum0qCA8IGFoaXJ1XCA7Civlr53poZQgPCBuZWdhb1wgOwor6L6y5YW3IDwgbm91Z3VcIDsKK+W4guWWtiA8IHNoaWVpXCA7CivlhoblorMgPCBlbnB1blwgOwor6Imy5rCXIDwgaXJva2VcIDsKK+i+nuWOuyA8IGppa3lvXCA7CivprLzmra8gPCBvbmliYVwgOwor5bCB6Y6WIDwgZnV1c2FcIDsKK+iLseWxryA8IGVpdG9uXCA7CivlsJbpg6ggPCBzZW5idVwgOwor5bel5aC0IDwga291YmFcIDsKK+eZuuW4gyA8IGhhcHB1XCA7CivluLDku7sgPCBraW5pblwgOwor5YWE5b6MIDwgYW5pZ29cIDsKK+WFq+mHjeatryA8IHlhZWJhXCA7CivlgLbogIUgPCBrdXNoYVwgOwor5L+a6Ku6IDwgcmlnZW5cIDsKK+S/juixhiA8IHNvdG91XCA7CivnlJ/onYsgPCBraXJvdVwgOwor5YWL5bexIDwga29ra2lcIDsKK+WGheWboCA8IG5haWluXCA7Civot5vooYwgPCBoYWtvdVwgOwor55uy5LqAIDwgbW91a2lcIDsKK+iLpuWvkiA8IGt1a2FuXCA7Civnlqvnl6IgPCBla2lyaVwgOwor55ub5YSAIDwgc2VpZ2lcIDsKK+W4guWMuiA8IHNoaWt1XCA7CivppqzpppYgPCBiYXNodVwgOwor5L2Z6aaZIDwgeW9rb3VcIDsKK+eZu+WxsSA8IHRvemFuXCA7Civlhpflj6UgPCBqb3VrdVwgOwor5aSn5Lyv54i2IDwgb29vamlcIDsKK+i+suS6iyA8IG5vdWppXCA7CivmqKnlqIEgPCBrZW4nJ2lcIDsKK+ebruS4iyA8IG1va2thXCA7Civltq7lsqggPCBrZW5zb1wgOwor6Ieq56S+IDwgamlzaGFcIDsKK+eWo+eXlCA8IGlib2ppXCA7CivkvZnpoqggPCB5b2Z1dVwgOwor5L2Z6aGeIDwgeW9ydWlcIDsKK+WFkOWtqyA8IGppc29uXCA7CivppqzpoK0gPCBiYXRvdVwgOwor55SY6Je7IDwgYW1hbW9cIDsKK+WutumiqCA8IGthZnV1XCA7Civoibbmm7ggPCBlbnNob1wgOwor5YSq5bynIDwgeXV1a29cIDsKK+i+nuS7pCA8IGppcmVpXCA7Civmo4noirEgPCBtZW5rYVwgOwor5qmf5YaFIDwga2luYWlcIDsKK+WFrOWbsyA8IGtvdXp1XCA7CivlhbXllrYgPCBoZWllaVwgOwor55Sw6IiOIDwgaW5ha2FcIDsKK+W3puWPsyA8IHNheXV1XCA7CivlhajlnJ8gPCB6ZW5kb1wgOwor5YWo5ZuzIDwgemVuenVcIDsKK+iDr+mWkyA8IGtva2FuXCA7CivnlLvogZYgPCBnYXNlaVwgOwor5biM5LujIDwga2lkYWlcIDsKK+Wwj+ixhiA8IGF6dWtpXCA7CivlhbXlk6EgPCBoZWlpblwgOwor5qGI6YWNIDwgYW5iYWlcIDsKK+WutumbuyA8IGthZGVuXCA7CivlhoXli5kgPCBuYWltdVwgOwor5bCK6LK0IDwgc29ua2lcIDsKK+W3ruWIhiA8IHNhYnVuXCA7CivlhoXliqkgPCBuYWlqb1wgOwor55Om6KejIDwgZ2FrYWlcIDsKK+WGoOS9jSA8IGthbicnaVwgOwor5qKF6KaLIDwgdW1lbWlcIDsKK+W3peWLmSA8IGtvdW11XCA7CivmqKHlnosgPCBtb2tlaVwgOwor5qCE6aSKIDwgZWl5b3VcIDsKK+S/mOiZnCA8IGZ1cnlvXCA7CivprZTmiYsgPCBtYXNodVwgOwor5L2O6ZuyIDwgdGVpdW5cIDsKK+W4g+S7pCA8IGZ1cmVpXCA7Civnmb3loIogPCBoYWt1YVwgOwor5YW85YuZIDwga2VubXVcIDsKK+i3r+iCqSA8IHJva2VuXCA7CivkvLzpoZQgPCBuaWdhb1wgOwor55Sy576FIDwga291cmFcIDsKK+iHqueUsSA8IGppeXV1XCA7Civmo4Tog4wgPCBraWhhaVwgOwor5L6/6KGjIDwgYmVuJydpXCA7CivlhoblhYkgPCBlbmtvdVwgOwor6Ieq55SoIDwgaml5b3VcIDsKK+S9v+mAlCA8IHNoaXRvXCA7Civou73lvq4gPCBrZWliaVwgOwor5YW15YyqIDwgaGVpaGlcIDsKK+W3peWFtyA8IGtvdWd1XCA7CivnmbvlnYIgPCB0b2hhblwgOwor5a+M6YmxIDwgZnVrb3VcIDsKK+S+ruiogCA8IGJ1Z2VuXCA7CivovL/lnLAgPCB5b2NoaVwgOwor6Iq45a2QIDwgZ2Vpa29cIDsKK+iDjOmboiA8IGhhaXJpXCA7Civlt6blgr4gPCBzYWtlaVwgOwor5L+d6I+MIDwgaG9raW5cIDsKK+WFq+WNpiA8IGhha2tlXCA7Civou73luqYgPCBrZWlkb1wgOwor5be05Lq6IDwgaGFqaW5cIDsKK+eUu+e0mSA8IGdhc2hpXCA7Civlhazli58gPCBrb3Vib1wgOwor55Wq55uuIDwgYmFubWVcIDsKK+Wkp+S8r+avjSA8IG9vb2JhXCA7CivlhbzlgpkgPCBrZW5iaVwgOwor5a+E6YeRIDwga2lraW5cIDsKK+i1sOi3ryA8IHNvdXJvXCA7CivprZTlvL4gPCBtYWRhblwgOwor5bKh55uuIDwgb2thbWVcIDsKK+WumOmcgCA8IGthbmp1XCA7CivnkZ7pm7IgPCB6dWl1blwgOwor6auY5ripIDwga291b25cIDsKK+WwvuiKsSA8IG9iYW5hXCA7Civlr77oqbEgPCB0YWl3YVwgOwor5Lyd6aasIDwgdGVubWFcIDsKK+i9jeWPiSA8IHRlc3NhXCA7Civkvp3oqJcgPCBpdGFrdVwgOwor6ISz6KOhIDwgbm91cmlcIDsKK+aoqeWMliA8IGdvbmdlXCA7Civoi6blkJ8gPCBrdWdpblwgOwor6Iq45aaTIDwgZ2VpZ2lcIDsKK+i3r+e3miA8IHJvc2VuXCA7CivotaTouqsgPCBha2FtaVwgOwor5YW15YKZIDwgaGVpYmlcIDsKK+WvjOi+siA8IGZ1bm91XCA7Civkv67nvoUgPCBzaHVyYVwgOwor6Iql5a2QIDwga2VzaGlcIDsKK+eWkeeCuSA8IGdpdGVuXCA7CivmqL3kv44gPCBzb25zb1wgOwor5L6N6KybIDwgamlrb3VcIDsKK+i7jeaJiyA8IGd1bnRlXCA7CivmqKnliKkgPCBrZW5yaVwgOwor5Lya6aOyIDwga2FpaW5cIDsKK+WFuOS+jSA8IHRlbmppXCA7CivlronpnZkgPCBhbnNlaVwgOwor6aeF6LevIDwgZWtpcm9cIDsKK+WFpeWGhSA8IGp1ZGFpXCA7CivlhZrli5kgPCB0b3VtdVwgOwor5YW35L2TIDwgZ3V0YWlcIDsKK+eZuuWPpSA8IGhva2t1XCA7Civoi6blirQgPCBrdXJvdVwgOwor5qeY5a2QIDwgeW91c3VcIDsKK+S/neiCsiA8IGhvaWt1XCA7CivnlLvnqL8gPCBnYWtvdVwgOwor5L6L6KmxIDwgcmVpd2FcIDsKK+WFqOWCmSA8IHplbmJpXCA7CivlhZrliKkgPCB0b3VyaVwgOwor6Ieq54KKIDwgamlzdWlcIDsKK+S9s+izkyA8IGthaGluXCA7CivnlJ/ns7ggPCBraWl0b1wgOwor5qih5YaZIDwgbW9zaGFcIDsKK+WDp+W+kiA8IHNvdXRvXCA7Civnlo7mvI8gPCBzb3JvdVwgOwor5a6J6ZaRIDwgYW5rYW5cIDsKK+aoueS4iiA8IGp1am91XCA7CivkvZnovKkgPCB5b2hhaVwgOwor5qKF6IqxIDwgYmFpa2FcIDsKK+WEgOWuuSA8IGdpeW91XCA7CivnlLDnp58gPCBkZW5zb1wgOwor6aas6LuKIDwgYmFzaGFcIDsKK+WFiOWLmSA8IHNlbm11XCA7Civkv7rnrYkgPCBvcmVyYVwgOwor5qih5YCjIDwgbW9ob3VcIDsKK+WvjOixqiA8IGZ1Z291XCA7CivppqzouYQgPCBiYXRlaVwgOwor6Le156WaIDwgc2Vuc29cIDsKK+i3r+eoiyA8IHJvdGVpXCA7CivntKvpm7Loi7EgPCBnZW5nZVwgOwor5a+E6LSIIDwga2l6b3VcIDsKK+S9k+i6ryA8IHRhaWt1XCA7Civnl7TmhJogPCBjaGlndVwgOwor6IOM6YOoIDwgaGFpYnVcIDsKK+S/nee3miA8IGhvc2VuXCA7Civoi7HkuLsgPCBlaXNodVwgOwor5YWD5YipIDwgZ2VucmlcIDsKK+WAq+eQhiA8IHJpbnJpXCA7Civou4rluqsgPCBzaGFrb1wgOwor5a+T6KmxIDwgZ3V1d2FcIDsKK+eWj+awtCA8IHNvc3VpXCA7CivkvZnosqEgPCB5b3phaVwgOwor6IS+6IefIDwgaGl6b3VcIDsKK+WDp+WwvCA8IHNvdW5pXCA7CivnmbrkvZwgPCBob3NzYVwgOwor6Ieq5rK7IDwgamljaGlcIDsKK+eZkuWQiCA8IHl1Z291XCA7CivlhYXlgpkgPCBqdXViaVwgOwor6IS+6IWrIDwgaGlzaHVcIDsKK+WwvuexoCA8IGJpcm91XCA7Civnl5vmiYsgPCBpdGFkZVwgOwor5a626LKhIDwga2F6YWlcIDsKK+i7ouWphiA8IHRlbmJhXCA7CivprLzlrZAgPCBvbmlnb1wgOwor5a6Y6YCUIDwga2FudG9cIDsKK+iHquawkSA8IGppbWluXCA7Civkv53nrqEgPCBob2thblwgOwor5qCE6LuiIDwgZWl0ZW5cIDsKK+aknOazoiA8IGtlbnBhXCA7CivlrZfpnaIgPCBqaW1lblwgOwor6Lev55ukIDwgcm9iYW5cIDsKK+iIteaJiyA8IGRhc2h1XCA7CivkvZnoq4cgPCB5b2RhblwgOwor5a+M6KOVIDwgZnV5dXVcIDsKK+eUo+edgCA8IHVidWdpXCA7CivlgY/ms6IgPCBoZW5oYVwgOwor5YG95pysIDwgZ2lob25cIDsKK+iJtuWnvyA8IGVuc2hpXCA7CivlhKrliKkgPCB5dXVyaVwgOwor5qW15oSPIDwgZ29rdWlcIDsKK+S7rumdoiA8IGthbWVuXCA7Civlgb3mm7ggPCBnaXNob1wgOwor5bKh5rmvIDwgb2theXVcIDsKK+S/neeojiA8IGhvemVpXCA7CivkvZnoqIggPCB5b2tlaVwgOwor5YOF5beuIDwga2luc2FcIDsKK+S/r+eesCA8IGZ1a2FuXCA7Civoh6jmqZ8gPCByaW5raVwgOwor5pyq5pu+5pyJIDwgbWl6b3VcIDsKK+iJh+W6qyA8IHRlaWtvXCA7CivlsIrogIUgPCBzb25qYVwgOwor6Leh55uuIDwgYXRvbWVcIDsKK+i3r+eUqCA8IHJveW91XCA7CivlrrboqJMgPCBrYWt1blwgOwor5L2O6KqeIDwgdGVpZ29cIDsKK+Wun+iyuyA8IGppcHBpXCA7Civlgr7lt64gPCBrZWlzYVwgOwor55S354yrIDwgb25la29cIDsKK+eUpueUnyA8IHNvc2VpXCA7CivotbfojYkgPCBraXNvdVwgOwor5L2Z6KOVIDwgeW95dXVcIDsKK+W1qeWRvCA8IHN1dWtvXCA7CivlrpjosrsgPCBrYW5waVwgOwor6aSK6a+JIDwgeW91cmlcIDsKK+i7jeWkqyA8IGd1bnB1XCA7Civnlo7mnpcgPCBzb3JpblwgOwor5a626KOBIDwga2FzYWlcIDsKK+S/s+eUuyA8IGhhaWdhXCA7Civku5bpnaIgPCB0YW1lblwgOwor5bCP57SLIDwga29tb25cIDsKK+eUn+eQhiA8IHNlaXJpXCA7CivohYvnqqkgPCBla2lrYVwgOwor5LuY6ZqPIDwgZnV6dWlcIDsKK+WutuidvyA8IGllYmFlXCA7CivmpJzmn7sgPCBrZW5zYVwgOwor5YKZ5b+YIDwgYmlib3VcIDsKK+Wwj+eyiyA8IGtvaWtpXCA7Civlrp/oqJggPCBqaWtraVwgOwor5Lq66aasIDwgamluYmFcIDsKK+WEhOWKqyA8IG9ra3V1XCA7Civoh6rmmrQgPCBqaWJvdVwgOwor5L6/56eYIDwgYmVucGlcIDsKK+WumOipsSA8IGthbndhXCA7CivkvK/niLbosrQgPCBvamlraVwgOwor55aO5pS+IDwgc29ob3VcIDsKK+S9meiWqyA8IHlva3VuXCA7Civoh6rmmI4gPCBqaW1laVwgOwor6Ieo5pmCIDwgcmluamlcIDsKK+mkjOmjnyA8IGVqaWtpXCA7Civlrpropo8gPCBqb3VnaVwgOwor6Ii55bC+IDwgc2VuYmlcIDsKK+S7iumamyA8IGltYXdhXCA7CivlhITlhoYgPCBva3VlblwgOwor5YSA5YiAIDwgZ2l0b3VcIDsKK+WuiOittyA8IHNodWdvXCA7CivkvJrosrsgPCBrYWloaVwgOwor5bKp5qC5IDwgaXdhbmVcIDsKK+eUt+a7nSA8IG9kYWtpXCA7Civnk5znp5EgPCB1cmlrYVwgOwor6Lu95L6uIDwga2VpYnVcIDsKK+S+m+exsyA8IGt1bWFpXCA7CivmoITonrogPCBzYXphZVwgOwor5YCk5q61IDwgbmVkYW5cIDsKK+WtpOi7jSA8IGtvZ3VuXCA7Civlgb3mgqogPCBnaWFrdVwgOwor5Lqc6bq75LuBIDwgYW1hbmlcIDsKK+eWsuW8iiA8IGhpaGVpXCA7CivkvJrorbAgPCBrYWlnaVwgOwor5p2l6aeVIDwgcmFpZ2FcIDsKK+mrmOW6pyA8IGtvdXphXCA7Civoia/ljLsgPCByeW91aVwgOwor5Lyd6KiYIDwgZGVua2lcIDsKK+S8muipsSA8IGthaXdhXCA7CivkvZnoirMgPCB5b2hvdVwgOwor5Lmx6bq7IDwgcmFubWFcIDsKK+WCmOWvvyA8IHNhbmp1XCA7CivlsbHmsrMgPCBzYW5nYVwgOwor6ICz6aCGIDwgamlqdW5cIDsKK+S8veiXjSA8IGdhcmFuXCA7CivlhIDku5cgPCBnaWpvdVwgOwor5a6I6KGbIDwgc2h1ZWlcIDsKK+i7jeWLmSA8IGd1bm11XCA7CivnlKPmua8gPCB1YnV5dVwgOwor6aaZ6I+vIDwga291Z2VcIDsKK+WwvueHiCA8IGJpdG91XCA7Civkvpvnpa0gPCBndXNhaVwgOwor6LOT6L6eIDwgaGluamlcIDsKK+S6lOWNgei3ryA8IGlzb2ppXCA7CivoiJ7lrZAgPCBtYWlrb1wgOwor6Ieq5oWiIDwgamltYW5cIDsKK+alveWZqCA8IGdha2tpXCA7CivnlpHlv7UgPCBnaW5lblwgOwor5L2Z6IGeIDwgeW9idW5cIDsKK+WtpuiqsiA8IGdha2thXCA7CivppqzogJUgPCBiYWtvdVwgOwor6LiP5p+7IDwgdG91c2FcIDsKK+eUu+alvCA8IGdhcm91XCA7CivohLHnmq4gPCBkYXBwaVwgOwor5p2l6ZmiIDwgcmFpaW5cIDsKK+S+jeelrSA8IGppc2FpXCA7Civou43lgpkgPCBndW5iaVwgOwor55Sj5rCXIDwgc2Fua2VcIDsKK+eUo+avmyA8IHVidWdlXCA7CivohZDniJsgPCBmdXJhblwgOwor6ISx55a9IDwgZGFzc29cIDsKK+WyqeaIuCA8IGl3YXRvXCA7Civlr7/nm4MgPCBqdWhhaVwgOwor6Ieq5byBIDwgamliZW5cIDsKK+eVquaJiyA8IGJhbnRlXCA7CivlgbjlrokgPCB0b3VhblwgOwor5bCP55C0IDwgb2dvdG9cIDsKK+S/hOeEtiA8IGdhemVuXCA7CivnlLvmnb8gPCBnYWJhblwgOwor5a2X6KiTIDwgamlrdW5cIDsKK+ais+avmyA8IHNvbW91XCA7Civpo5vpm7sgPCBoaWRlblwgOwor5LqM6ZqOIDwgbmlrYWlcIDsKK+eUu+adkCA8IGdhemFpXCA7Civou43kuosgPCBndW5qaVwgOwor55CG6LKhIDwgcml6YWlcIDsKK+eUu+acrCA8IGdhaG9uXCA7CivnlbjlvaIgPCBraWtlaVwgOwor5Luj6K2wIDwgZGFpZ2lcIDsKK+i1sOegtCA8IHNvdWhhXCA7CivlgrXli5kgPCBzYWltdVwgOwor6Lqr5YiGIDwgbWlidW5cIDsKK+izhOizgiA8IHdhaXJvXCA7CivogrLoi7EgPCBpa3VlaVwgOwor5bCP54qsIDwga29pbnVcIDsKK+eUseadpSA8IHl1cmFpXCA7CivkvL3nvoUgPCBreWFyYVwgOwor5LuP6LKoIDwgZnVra2FcIDsKK+adsemDvSA8IHRvdXRvXCA7CivmnbHpg6ggPCB0b3VidVwgOwor5Luu6KOFIDwga2Fzb3VcIDsKK+iHquWwvSA8IGppamluXCA7CivnkIboq5YgPCByaXJvblwgOwor5YGP5beuIDwgaGVuc2FcIDsKK+WwiueItiA8IHNvbnB1XCA7Civlgb3loLEgPCBnaWhvdVwgOwor5a6a576pIDwgdGVpZ2lcIDsKK+WCmeWTgSA8IGJpaGluXCA7Civosqjou4ogPCBrYXNoYVwgOwor5L+X5rCXIDwgem9ra2VcIDsKK+iHquWusyA8IGppZ2FpXCA7CivosrjosrsgPCB0YWloaVwgOwor55WZ5oSPIDwgcnl1dWlcIDsKK+S9leeuhyA8IG5hbmtvXCA7CivlgIvmlbAgPCBrb3N1dVwgOwor5a+d55u4IDwgbmV6b3VcIDsKK+mitumiqCA8IGd1ZnV1XCA7CivmoYLnmq4gPCBrZWloaVwgOwor6aOy6YWSIDwgaW5zaHVcIDsKK+S6qOmBiyA8IGtvdXVuXCA7CivnkIbop6MgPCByaWthaVwgOwor5L2V562JIDwgbmFucmFcIDsKK+iyqei3ryA8IGhhbnJvXCA7Civkv5fmrYwgPCB6b2trYVwgOwor5LmX6aasIDwgam91YmFcIDsKK+S7mOiogCA8IGZ1Z2VuXCA7CivotaTnm64gPCBha2FtZVwgOwor5LuL6K23IDwga2FpZ29cIDsKK+S7luiogCA8IHRhZ29uXCA7CivkupTph40gPCBnb2p1dVwgOwor6Iie5Y+wIDwgYnV0YWlcIDsKK+acnemkiSA8IGFzYWdlXCA7Civlr6HnlLcgPCB5YW1vb1wgOwor5LuW6KaLIDwgdGFrZW5cIDsKK+iIjuWWtiA8IHNoYWVpXCA7CivkvI7oirggPCBnaWdlaVwgOwor55aO5aSWIDwgc29nYWlcIDsKK+WBtuWboCA8IGd1dWluXCA7Civlronnva4gPCBhbmNoaVwgOwor5YKN5Y+XIDwgYm91anVcIDsKK+WyqeWxiyA8IGl3YXlhXCA7Civkuozph40gPCBmdXRhZVwgOwor6IKl6IKyIDwgaGlpa3VcIDsKK+Wwj+a7nSA8IG90YWtpXCA7Civlgb3lloQgPCBnaXplblwgOwor5qKn5qGQIDwgZ290b3VcIDsKK+eUu+aJjSA8IGdhc2FpXCA7CivnlLvmiYsgPCBnYXNodVwgOwor6aKo6Z+7IDwgZnV1aW5cIDsKK+S7luihjCA8IHRha291XCA7CivosqHosqggPCB6YWlrYVwgOwor5LqS6YG4IDwgZ29zZW5cIDsKK+miqOmdoSA8IGZ1dWJpXCA7CivkvI7og70gPCBnaW5vdVwgOwor5pyq6ZaLIDwgbWlrYWlcIDsKK+iytOimpyA8IGtpcmFuXCA7Civpoqjpm7IgPCBmdXV1blwgOwor5LmW6ZuiIDwga2FpcmlcIDsKK+eWsuWKtCA8IGhpcm91XCA7Civlgb3lkI0gPCBnaW1laVwgOwor5Lq66KqeIDwgamluZ29cIDsKK+miqOmbhSA8IGZ1dWdhXCA7CivkupTovKogPCBnb3JpblwgOwor5YG95Y+yIDwgZ2lzaGlcIDsKK+S6iOmBuCA8IHlvc2VuXCA7CivkuZfpmaQgPCBqb3Vqb1wgOwor5YGP5aWHIDwgaGVua2lcIDsKK+S4u+mmrCA8IHNodW1lXCA7Civkv53mnIkgPCBob3l1dVwgOwor6Ieq5ZyoIDwgaml6YWlcIDsKK+S6jOi8qiA8IG5pcmluXCA7CivmnJ3plpMgPCBhc2FtYVwgOwor6ISz5rOiIDwgbm91aGFcIDsKK+Wun+enkSA8IGppa2thXCA7CivlsaDmiYAgPCB0b3Nob1wgOwor55aR5ZWPIDwgZ2ltb25cIDsKK+iIjuWIqSA8IHNoYXJpXCA7Civkuozou40gPCBuaWd1blwgOwor5YCS5b2xIDwgdG91ZWlcIDsKK+S7luiWpiA8IHRhemVuXCA7Civpp4TniqwgPCBkYWtlblwgOwor6aOb6LuKIDwgaGlzaGFcIDsKK+WxueW6piA8IGtpdHRvXCA7CivlgK3lr4cgPCB3YWtvdVwgOwor5bCP5q2MIDwga291dGFcIDsKK+S4u+mfsyA8IHNodW9uXCA7CivlrrnnlpEgPCB5b3VnaVwgOwor5L2Z55SfIDwgeW9zZWlcIDsKK+e+jum6lyA8IGJpcmVpXCA7CivlrprnpI4gPCB0ZWlzb1wgOwor5bKp5aC0IDwgaXdhYmFcIDsKK+iHquWVjyA8IGppbW9uXCA7Civlgb3lhbUgPCBnaWhlaVwgOwor6IWV5pyoIDwgdWRlZ2lcIDsKK+eUu+W4liA8IGdham91XCA7Civnvr3pn7MgPCBoYW90b1wgOwor5YCJ5bqrIDwgc291a29cIDsKK+acuui+uiA8IGtpaGVuXCA7CivnlbDlm70gPCBpa29rdVwgOwor5p2R6LK7IDwgc29ucGlcIDsKK+izouiAhSA8IGtlbmphXCA7CivmnKzpg6ggPCBob25idVwgOwor5LqS6K2yIDwgZ29qb3VcIDsKK+WvvuaspyA8IHRhaW91XCA7CivogIHouq8gPCByb3VrdVwgOwor55Sj5b6MIDwgc2FuZ29cIDsKK+eUqOW6piA8IHlvdWRvXCA7Civmm7jpmaIgPCBzaG9pblwgOwor5qGQ5rK5IDwgdG91eXVcIDsKK+acqumBgiA8IG1pc3VpXCA7CivnlJ/lvpIgPCBzZWl0b1wgOwor55Sf5b6MIDwgc2VpZ29cIDsKK+iEmuawlyA8IGtha2tlXCA7CivnjovpgZMgPCBvdWRvdVwgOwor6LOb576OIDwgc2FuYmlcIDsKK+iFkOaVlyA8IGZ1aGFpXCA7CivouYTlj4kgPCB0ZWlzYVwgOwor5pyo6YCaIDwgYWtlYmlcIDsKK+S7leiIniA8IGppbWFpXCA7CivotormqKkgPCBla2tlblwgOwor6LeL5omIIDwgYmFra29cIDsKK+S9meeHvCA8IHlvamluXCA7Civoh6rliY0gPCBqaW1hZVwgOwor6IOD55ebIDwgaXRzdXVcIDsKK+Wwj+aenSA8IGtvZWRhXCA7Civog4Pnl4UgPCBpYnlvdVwgOwor6Ieq5YiGIDwgamlidW5cIDsKK+i1t+avmyA8IGtpbW91XCA7CivnkarnkZkgPCBtZW5vdVwgOwor6aKo6YKqIDwgZnV1amFcIDsKK+S9nOeCuiA8IHNha3VpXCA7CivlronnnKAgPCBhbm1pblwgOwor6Ieq5YWaIDwgaml0b3VcIDsKK+Wwv+aEjyA8IG55b3VpXCA7CivmnJvpgaAgPCBib3VlblwgOwor5LqI6KiAIDwgeW9nZW5cIDsKK+S5nei8qiA8IGt1cmluXCA7CivkubHosrsgPCByYW5waVwgOwor5LuW6IGeIDwgdGFidW5cIDsKK+acqui4jyA8IG1pdG91XCA7Civlr77moYggPCB0YWlhblwgOwor5LqI6KaLIDwgeW9rZW5cIDsKK+S7luiAhSA8IHRhc2hhXCA7Civku67ntI0gPCBrYW5vdVwgOwor54yq6aaWIDwgaWt1YmlcIDsKK+S4jemghiA8IGZ1anVuXCA7CivkuIDpppYgPCBpc3NodVwgOwor55Sj5bGLIDwgdWJ1eWFcIDsKK+S7rueypyA8IGtld2FpXCA7Civosaroqp4gPCBnb3Vnb1wgOwor6aGe6Z+7IDwgcnVpaW5cIDsKK+mhnumfsyA8IHJ1aW9uXCA7Civosqfoi6YgPCBoaW5rdVwgOwor55S35aWzIDwgZGFuam9cIDsKK+agueawlyA8IGtvbmtpXCA7CivotaTmr5sgPCBha2FnZVwgOwor5LiA6aOvIDwgaXBwYW5cIDsKK+e+jumiqCA8IGJpZnV1XCA7Civpo5vooYwgPCBoaWtvdVwgOwor5Lqs6I+vIDwga2Vpa2FcIDsKK+WuieeUoyA8IGFuemFuXCA7CivkuIDpoqggPCBpcHB1dVwgOwor576O6aGUIDwgYmlnYW5cIDsKK+Wun+eItiA8IGppcHB1XCA7Civoh6rkvJ0gPCBqaWRlblwgOwor6IGW6ICFIDwgc2VpamFcIDsKK+S+v+aJgCA8IGJlbmpvXCA7CivkuJbplpMgPCBzZWtlblwgOwor5LiA6aCtIDwgaXR0b3VcIDsKK+iHquS7iiA8IGppa29uXCA7CivkuLvpg6ggPCBzaHVidVwgOwor5LiA6aCFIDwgaWtrb3VcIDsKK+eUsOWkqyA8IGRlbnB1XCA7Civpo5vonZcgPCBiYXR0YVwgOwor55CG57O7IDwgcmlrZWlcIDsKK+eUo+WppiA8IHNhbnB1XCA7Civlr7jmmocgPCBzdW5rYVwgOwor5p6256m6IDwga2FrdXVcIDsKK+eUo+WphiA8IHNhbmJhXCA7CivosYzosYYgPCBlbmRvdVwgOwor5LiL6ZiqIDwgZ2VoYW5cIDsKK+WvuOaZgiA8IHN1bmppXCA7CivmorXlrZcgPCBib25qaVwgOwor55SY5a2QIDwgYW1hZ29cIDsKK+S9k+a4qSA8IHRhaW9uXCA7Civku4HnvqkgPCBqaW5naVwgOwor5Li76L6eIDwgc2h1amlcIDsKK+aatOmjsiA8IGJvdWluXCA7Civlr53mo7ogPCBuZWthblwgOwor6LWw5p+7IDwgc291c2FcIDsKK+S4gOmajiA8IGlra2FpXCA7CivmnKzoqLQgPCBob25zb1wgOwor5LiA6ZqKIDwgaXR0YWlcIDsKK+abuemBlCA8IHNvdWRhXCA7CivosqfogIUgPCBoaW5qYVwgOwor55Sw5ZyDIDwgZGVucG9cIDsKK+S7mOeuiyA8IGZ1c2VuXCA7CivkuIDploMgPCBpc3NlblwgOwor5L6u5oWiIDwgYnVtYW5cIDsKK+S9nOatjCA8IHNha2thXCA7CivmnKjkuYPkvIogPCBtaWlyYVwgOwor576p6YeRIDwgZ2lraW5cIDsKK+S/neWuiCA8IGhvc2h1XCA7Civpoqjoq60gPCBmdXV5dVwgOwor5LiW6YqAIDwgc2VnaW5cIDsKK+S/neWtmCA8IGhvem9uXCA7CivnlJjlpKIgPCBrYW5tdVwgOwor5bCk5bqmIDwgeXV1ZG9cIDsKK+aciOizpiA8IGdlcHB1XCA7CivlsZXlopMgPCB0ZW5ib1wgOwor54+q57SgIDwga2Vpc29cIDsKK+aguOaenCA8IGtha2thXCA7CivlsIrmhI8gPCBzb24nJ2lcIDsKK+mmmeayuSA8IGtvdXl1XCA7CivnlKjlmaggPCB5b3VraVwgOwor5qGI5paHIDwgYW5tb25cIDsKK+acl+ipoCA8IHJvdWVpXCA7CivlgJLlj6UgPCB0b3VrdVwgOwor5YCS5Y+ZIDwgdG91am9cIDsKK+S7ruecoCA8IGthbWluXCA7CivkupToh5MgPCBnb3pvdVwgOwor6IOM5rOzIDwgaGFpZWlcIDsKK+S6oeiAhSA8IG1vdWphXCA7CivkuIfph4wgPCBiYW5yaVwgOwor55CG55+lIDwgcmljaGlcIDsKK+S7j+elliA8IGJ1c3NvXCA7Civpp4TmlocgPCBkYWJ1blwgOwor576p6LuNIDwgZ2lndW5cIDsKK+WAreS6uiA8IHdhamluXCA7CivkuIPph40gPCBuYW5hZVwgOwor5LiL6YOOIDwgZ2Vyb3VcIDsKK+S4iumDqCA8IGpvdWJ1XCA7CivpoJPppqwgPCB0b25tYVwgOwor5LiJ6YOoIDwgc2FuYnVcIDsKK+S4jemBnCA8IGZ1c29uXCA7CivkuI3pgYcgPCBmdWd1dVwgOwor5L6/5a6cIDwgYmVuZ2lcIDsKK+S4jemAniA8IGZ1dGVpXCA7CivlsI/lt50gPCBvZ2F3YVwgOwor5LiN6YCAIDwgZnV0YWlcIDsKK+e+jumFkiA8IGJpc2h1XCA7CivkuLvoqLQgPCBzaHVzb1wgOwor5pqX6ZuyIDwgYW4nJ3VuXCA7CivkuozljYHph40gPCBoYXRhZVwgOwor55S35YWQIDwgZGFuamlcIDsKK+S6jOiAhSA8IG5pc2hhXCA7CivnlLvlg48gPCBnYXpvdVwgOwor5L+z5ZGzIDwgaGFpbWlcIDsKK+eUqOWLmSA8IHlvdW11XCA7CivlqabpgZMgPCBmdWRvdVwgOwor5p2R57+BIDwgc29ub3VcIDsKK+WuieazsCA8IGFudGFpXCA7CivogqXmuoAgPCBoaW1hblwgOwor5LiL6LypIDwgZ2VoYWlcIDsKK+WutuadpSA8IGtlcmFpXCA7CivlgKTkuIogPCBuZWFnZVwgOwor55SY5ZGzIDwga2FubWlcIDsKK+S/s+WPpSA8IGhhaWt1XCA7CivkuIDpgY0gPCBpcHBlblwgOwor6ICB6IiXIDwgcm91aG9cIDsKK+aal+mXmCA8IGFudG91XCA7CivkuIvou4ogPCBnZXNoYVwgOwor55Sa5Y+lIDwgamlua3VcIDsKK+S6m+e0sCA8IHNhc2FpXCA7CivnkIbnlLEgPCByaXl1dVwgOwor5Lq656WWIDwgamluc29cIDsKK+S5seiIniA8IHJhbmJ1XCA7Civkvo3lvpMgPCBqaWp1dVwgOwor5aiD6ayfIDwgYWlrYW5cIDsKK+S8mua0viA8IGthaWhhXCA7Civku5bnlYwgPCB0YWthaVwgOwor5LqU57WDIDwgZ29nZW5cIDsKK+Wwj+WtlyA8IGtvYXphXCA7CivlsYvlj7AgPCB5YXRhaVwgOwor5bCK5a62IDwgc29ua2FcIDsKK+S4gOi7oiA8IGl0dGVuXCA7CivnlLvkurogPCBnYWppblwgOwor6aGM6L6eIDwgZGFpamlcIDsKK+S4gOi7kiA8IGlra2VuXCA7Civlrp/mooUgPCBtaXVtZVwgOwor6Lev5YKNIDwgcm9ib3VcIDsKK+acrOiIlyA8IGhvbnBvXCA7CivkuI3osrcgPCBmdWJhaVwgOwor5LiL6LOkIDwgZ2VzZW5cIDsKK+WvneaBryA8IG5laWtpXCA7Civmnq/nh6UgPCBrb3NvdVwgOwor5pyo6IieIDwga29tYWlcIDsKK+iAgee/gSA8IHJvdW91XCA7Civnvr3on7sgPCBoYWFyaVwgOwor5a+b5oGVIDwga2Fuam9cIDsKK+iyu+eUqCA8IGhpeW91XCA7Civku6PniLYgPCBkYWlmdVwgOwor6LKr55uuIDwga2FubWVcIDsKK+e+qeiokyA8IGdpa3VuXCA7CivkuojntI0gPCB5b25vdVwgOwor5LiH6LKoIDwgYmFua2FcIDsKK+adv+ebriA8IGl0YW1lXCA7CivpoK3ph40gPCB6dW9tb1wgOwor5qKF5ZySIDwgYmFpZW5cIDsKK+iytOeUtyA8IHRha2FvXCA7CivlrprmnJ8gPCB0ZWlraVwgOwor5bCP5aOwIDwga29nb2VcIDsKK+ahguW6tSA8IGtlaWFuXCA7CivkuIDosqsgPCBpa2thblwgOwor55Sf5L+dIDwgc2VpaG9cIDsKK+S+v+WZqCA8IGJlbmtpXCA7CivmnKrogZ4gPCBtaW1vblwgOwor6Z+z6Z+7IDwgb24nJ2luXCA7Civmma/pm7IgPCBrZWl1blwgOwor5LqM562JIDwgbml0b3VcIDsKK+S4iuirrSA8IGpvdXl1XCA7CivkuojnrpcgPCB5b3NhblwgOwor6aGe6KqeIDwgcnVpZ29cIDsKK+i3r+S4iiA8IHJvam91XCA7CivmnKznvqkgPCBob25naVwgOwor6LGG6IWQIDwgdG91ZnVcIDsKK+mnhOW8gSA8IGRhYmVuXCA7CivlqaboraYgPCBmdWtlaVwgOwor6LW35bGFIDwga2lreW9cIDsKK+adv+eUuyA8IGhhbmdhXCA7CivkvZPmioAgPCB0YWlnaVwgOwor5L+d5Ya3IDwgaG9yZWlcIDsKK+S9meaGpCA8IHlvZnVuXCA7CivkuIroqLQgPCBqb3Vzb1wgOwor5L+d5YWoIDwgaG96ZW5cIDsKK+S6jOeoriA8IG5pc2h1XCA7CivmnpznhLYgPCBrYXplblwgOwor6Z+z6ZqOIDwgb25rYWlcIDsKK+e+juirhyA8IGJpZGFuXCA7CivlrrbmhrIgPCBrYWtlblwgOwor5Luj5ryUIDwgZGFpZW5cIDsKK+S9meaDhSA8IHlvam91XCA7Civlr6HlsYUgPCBrYWt5b1wgOwor54qs6aasIDwga2VuYmFcIDsKK+WwvOWDpyA8IG5pc291XCA7Civnv6Hnv6AgPCBoaXN1aVwgOwor5p6v5rehIDwga290YW5cIDsKK+acque3tCA8IG1pcmVuXCA7CivkuIDoqIggPCBpa2tlaVwgOwor576O6KazIDwgYmlrYW5cIDsKK+mgkOmHkSA8IHlva2luXCA7CivkvZnlv7UgPCB5b25lblwgOwor6aGM6KmgIDwgZGFpZWlcIDsKK+acqOe2vyA8IG1vbWVuXCA7CivkuLnoibIgPCBuaWlyb1wgOwor546L57WxIDwgb3V0b3VcIDsKK+i2o+WRsyA8IHNodW1pXCA7Civos6Lmr40gPCBrZW5ib1wgOwor5pqX6LuiIDwgYW50ZW5cIDsKK+acque0jSA8IG1pbm91XCA7CivorbDpoYwgPCBnaWRhaVwgOwor5L2Z5byKIDwgeW9oZWlcIDsKK+i1pOWtlyA8IGFrYWppXCA7CivppIrniLYgPCB5b3VmdVwgOwor5p2l55SxIDwgcmFpeXVcIDsKK+agueWtkCA8IG5la2tvXCA7Civlr7jlnJ8gPCBzdW5kb1wgOwor5L2V5bqmIDwgbmFuZG9cIDsKK+iDoeW6pyA8IGFndXJhXCA7CivmoYjlpJYgPCBhbmdhaVwgOwor5L2c5YuZ6KGjIDwgc2FtdWVcIDsKK+abs+iIqiA8IGVpa291XCA7CivnkIbms5UgPCByaWhvdVwgOwor6aKo57SAIDwgZnV1a2lcIDsKK+S7o+avjSA8IGRhaWJvXCA7CivkurrngrogPCBqaW4nJ2lcIDsKK+S8neaSrSA8IGRlbnBhXCA7CivnvbXoqIAgPCBiYWdlblwgOwor6aiO5YW1IDwga2loZWlcIDsKK+ahkeWckiA8IHNvdWVuXCA7CivkupLnlKggPCBnb3lvdVwgOwor5Li7576pIDwgc2h1Z2lcIDsKK+adoeeQhiA8IGpvdXJpXCA7CivlsI/li6IgPCBrb3plaVwgOwor5a+E5a+TIDwga2lndXVcIDsKK+S6jOeVqiA8IG5pYmFuXCA7Civog4zlvowgPCBoYWlnb1wgOwor54mh6bm/IDwgb2ppa2FcIDsKK+acrOenkSA8IGhvbmthXCA7CivppqzlsYsgPCB1bWF5YVwgOwor5Lyd5o6IIDwgZGVuanVcIDsKK+Wwj+WIpCA8IGtvYmFuXCA7Civnvr3nv7wgPCB1eW9rdVwgOwor5p6d5q+bIDwgZWRhZ2VcIDsKK+Wvv+WPuCA8IHN1c2hpXCA7CivpppbluqcgPCBzaHV6YVwgOwor6aaW5bqcIDwgc2h1ZnVcIDsKK+S6oeeItiA8IGJvdWZ1XCA7Civmma7pgY0gPCBmdWhlblwgOwor5L2Z5a+SIDwgeW9rYW5cIDsKK+itnOmdoiA8IGZ1bWVuXCA7Civku7vmnJ8gPCBuaW5raVwgOwor6LWt5ZyfIDwgc2hhZG9cIDsKK+WutuWxiyA8IGthb2t1XCA7CivogZbmsrkgPCBzZWl5dVwgOwor54yf6JmOIDwgcmFra29cIDsKK+WvneWdiiA8IG5lYm91XCA7Civpo7Tnha4gPCBhbWVuaVwgOwor5p6i5qmfIDwgc3V1a2lcIDsKK+S9j+WxhSA8IHN1bWFpXCA7Civog4PlvLEgPCBpamFrdVwgOwor5Lyd5omLIDwgdHN1dGVcIDsKK+WuteWvnSA8IHlvaW5lXCA7CivotrPkuIsgPCBzb2trYVwgOwor5bCP5YOnIDwga296b3VcIDsKK+WuneW6qyA8IGhvdWtvXCA7CivpoIbot68gPCBqdW5yb1wgOwor5LiK6I23IDwgdXdhbmlcIDsKK+S4gOiRpiA8IGljaGlpXCA7Civlrq7lsYUgPCBtaXlhaVwgOwor6ISx5YWOIDwgZGF0dG9cIDsKK+e+vee5lCA8IGhhb3JpXCA7CivmmpfoppYgPCBhbnNoaVwgOwor5p6X5qqOIDwgcmluZ29cIDsKK+S7o+ahiCA8IGRhaWFuXCA7CivpppblsL4gPCBzaHViaVwgOwor6LaK5YasIDwgZXR0b3VcIDsKK+WuieW/gyA8IGFuamluXCA7CivosqrmsZogPCB0YW4nJ29cIDsKK+S+oeWApCA8IGthY2hpXCA7CivlppbprZQgPCB5b3VtYVwgOwor5LiA6ImYIDwgaXNzb3VcIDsKK+adpea8lCA8IHJhaWVuXCA7CivkvJHmhI8gPCBreXV1aVwgOwor6aSK5q+NIDwgeW91Ym9cIDsKK+S4gOiHtCA8IGl0Y2hpXCA7Civpp4Xlk6EgPCBla2lpblwgOwor5Lya5b6XIDwgZXRva3VcIDsKK+WvneWPsCA8IG5lZGFpXCA7CivkuI3ogIEgPCBmdXJvdVwgOwor6K236YCBIDwgZ29zb3VcIDsKK+S7luadkSA8IHRhc29uXCA7CivmnZzmvI8gPCB6dXJvdVwgOwor5p+75a6aIDwgc2F0ZWlcIDsKK+Wul+WutiA8IHNvdWtlXCA7CivniZ3ppqwgPCBoaW5iYVwgOwor576O6IKyIDwgYmlpa3VcIDsKK+ahiOWIhiA8IGFuYnVuXCA7Civku4/mnpwgPCBidWtrYVwgOwor6ICB54i6IDwgcm91eWFcIDsKK+iAgeeItiA8IHJvdWZ1XCA7CivpoK3ok4sgPCB6dWdhaVwgOwor55CG5pWwIDwgcmlzdXVcIDsKK+S6nOa1gSA8IGFyeXV1XCA7CivosaHniZkgPCB6b3VnZVwgOwor6K2m6YKPIDwga2VpcmFcIDsKK+WuieWxhSA8IGFua3lvXCA7CivmnbHmrKcgPCB0b3VvdVwgOwor6aeG5YuVIDwga3Vkb3VcIDsKK+i0lOWxkyA8IGhpaWtpXCA7Civlr6HlhbUgPCBrYWhlaVwgOwor5LuW5pa5IDwgdGFob3VcIDsKK+S7u+aEjyA8IG5pbicnaVwgOwor6aGe57iBIDwgcnVpZW5cIDsKK+S9meWWmCA8IHlvemVuXCA7CivorpLoqqMgPCB6YW5idVwgOwor5Lqh5q+NIDwgYm91Ym9cIDsKK+WxheeVmeWuiCA8IGlydXN1XCA7CivlronlrpogPCBhbnRlaVwgOwor5LiL57eSIDwgc2FnZW9cIDsKK+Wuh+WumSA8IHVjaHV1XCA7CivorpLoqLQgPCB6YW5zb1wgOwor6Z+z6KmpIDwgb25zaGlcIDsKK+S8juW3pSA8IGdpa291XCA7Civpn7PoqJMgPCBvbmt1blwgOwor6LOi5oSaIDwga2VuZ3VcIDsKK+iDg+WjgSA8IGloZWtpXCA7CivkvZnlkb0gPCB5b21laVwgOwor5LiN57KLIDwgYnVzdWlcIDsKK+WmlumbsiA8IHlvdXVuXCA7CivotbTku7sgPCBmdW5pblwgOwor6LOm5oCnIDwgZnVzZWlcIDsKK+S7o+aJkyA8IGRhaWRhXCA7CivmoYjku7YgPCBhbmtlblwgOwor542j55quIDwganV1aGlcIDsKK+S6lOautSA8IGdvZGFuXCA7Civos5vmhI8gPCBzYW4nJ2lcIDsKK+adv+acqCA8IGhhbmdpXCA7Civpo6LmsJEgPCBraW1pblwgOwor6aOb5rOJIDwgaGlzZW5cIDsKK+acqueEtiA8IG1pemVuXCA7Civpp5DkvIogPCBjaHV1aVwgOwor5pig6YWNIDwgZWloYWlcIDsKK+WtpOW4hiA8IGtvaGFuXCA7CivkvZzli5UgPCBzYWRvdVwgOwor5LiA57O4IDwgaXNzaGlcIDsKK+S4jeetiSA8IGZ1dG91XCA7CivkurrmmYIgPCBuaW5qaVwgOwor6aCt6ISzIDwgenVub3VcIDsKK+acqOeBsCA8IGtpYmFpXCA7CivnvoXntJcgPCByYXNoYVwgOwor5aWH6bqXIDwga2lyZWlcIDsKK+S7leaJiyA8IHNoaXRlXCA7CivppqzliLggPCBiYWtlblwgOwor5a6u5Y+4IDwgZ3V1amlcIDsKK+eQhuaDsyA8IHJpc291XCA7CivlrqXlkowgPCB5dXV3YVwgOwor6K2w6KuWIDwgZ2lyb25cIDsKK+abuOeUuyA8IHNob2dhXCA7CivnjbLniakgPCBlbW9ub1wgOwor5aWu6aObIDwgZnVucGlcIDsKK+iCpeWkpyA8IGhpZGFpXCA7CivkvZnlhZogPCB5b3RvdVwgOwor55CG5oCnIDwgcmlzZWlcIDsKK+aZguirliA8IGppcm9uXCA7CivoraborbcgPCBrZWlnb1wgOwor6LKg5pWwIDwgZnVzdXVcIDsKK+S6jOanmCA8IG5peW91XCA7CivnvqnnnLwgPCBnaWdhblwgOwor5p+75ZWPIDwgc2Ftb25cIDsKK+eQhuW/tSA8IHJpbmVuXCA7CivpnZLppqwgPCBhb3VtYVwgOwor6K2r6KqeIDwgc2VuZ29cIDsKK+acqua6gCA8IG1pbWFuXCA7CivlrrblhoUgPCBrYW5haVwgOwor5LiW55+lIDwgc2VjaGlcIDsKK+WumuWToSA8IHRlaWluXCA7CivosrfmiYsgPCBrYWl0ZVwgOwor5a+d5qSF5a2QIDwgbmVpc3VcIDsKK+adpeacnyA8IHJhaWtpXCA7CivkupXmoYEgPCBpZ2V0YVwgOwor5pqX57+zIDwgYW4nJ2VpXCA7CivmnKrmuIggPCBtaXNhaVwgOwor5aeJ6LK0IDwgYW5la2lcIDsKK+iAgeavjSA8IHJvdWJvXCA7Civku5blv7UgPCB0YW5lblwgOwor5a6b5ZCNIDwgYXRlbmFcIDsKK+Wls+mboyA8IGpvbmFuXCA7CivlpbTpmrcgPCBkb3JlaVwgOwor5LiW55u4IDwgc2Vzb3VcIDsKK+S7suWxhSA8IG5ha2FpXCA7CivmnKvmtL4gPCBtYXBwYVwgOwor6Z2e6ZujIDwgaGluYW5cIDsKK+S4i+efpSA8IGdlZGppXCA7CivlpKrpvJMgPCB0YWlrb1wgOwor6aCI6Ie+IDwgc2h1eXVcIDsKK+acnea5ryA8IGFzYXl1XCA7CivlpZTppqwgPCBob25iYVwgOwor6IGW5oGpIDwgc2Vpb25cIDsKK+WrjOawlyA8IGtlbmtpXCA7CivkuI3nnKAgPCBmdW1pblwgOwor5Lqc5pePIDwgYXpva3VcIDsKK+S7geaFiCA8IGppbmppXCA7Civku67lr5MgPCBrYWd1dVwgOwor5LuP5b6SIDwgYnV0dG9cIDsKK+adv+aIuCA8IGl0YWRvXCA7CivkurrmiJEgPCBqaW5nYVwgOwor6LKn5omTIDwgaGluZGFcIDsKK+S9meS6uiA8IHlvbmluXCA7Civku5blupcgPCB0YXRlblwgOwor5aSn6buEIDwgZGFpb3VcIDsKK+S4iuedgCA8IHV3YWdpXCA7CivlpKfpursgPCB0YWltYVwgOwor5pys5rCXIDwgaG9ua2lcIDsKK+iAgeaouSA8IHJvdWp1XCA7CivmmK/oqo0gPCB6ZW5pblwgOwor6LKg5ouFIDwgZnV0YW5cIDsKK+aal+e3miA8IGFuc2VuXCA7CivkuIrnm64gPCB1d2FtZVwgOwor5qCE5YagIDwgZWlrYW5cIDsKK+S9juS+oSA8IHRlaWthXCA7CivnjovmsLQgPCBvdXN1aVwgOwor5LuK5b6MIDwga29uZ29cIDsKK+S4lueVjCA8IHNla2FpXCA7CivlrZ/lpbMgPCBtb3Vqb1wgOwor6aOb5p2lIDwgaGlyYWlcIDsKK+S6jOabtCA8IG5pa291XCA7CivppqzkuIogPCBiYWpvdVwgOwor5a625Lq6IDwga2VuaW5cIDsKK+S7geaBlSA8IGppbmpvXCA7CivlrZ/lpI8gPCBtb3VrYVwgOwor5paR6bOpIDwgaWthcnVcIDsKK+miqOazoiA8IGZ1dWhhXCA7Civku4rluqYgPCBrb25kb1wgOwor5LiL55azIDwgZ2VrYW5cIDsKK+mfs+iJsiA8IG5laXJvXCA7CivogIzmnaUgPCBqaXJhaVwgOwor5p2c5pKwIDwgenVzYW5cIDsKK+itjuipkCA8IGtpc3NhXCA7CivkuIvnlYwgPCBnZWthaVwgOwor5LiL55S3IDwgZ2VuYW5cIDsKK+S4i+eUsCA8IGdlZGVuXCA7CivmmpbnsL4gPCBub3JlblwgOwor5LuW5bGxIDwgdGF6YW5cIDsKK+WtkOWlsyA8IHNoaWpvXCA7CivnjovmqKkgPCBvdWtlblwgOwor6aOb5pWjIDwgaGlzYW5cIDsKK+WsjOaFiyA8IHNoaW5hXCA7Civnvo7nlLcgPCBiaW5hblwgOwor576O55SwIDwgYmlkZW5cIDsKK+S4gOeUnyA8IGlzc2VpXCA7CivlronlhaggPCBhbnplblwgOwor5LqU5oyHIDwgZ29zaGlcIDsKK+S7j+WutiA8IGJ1a2tlXCA7CivnibnoqJggPCB0b2traVwgOwor5pei6YGCIDwga2lzdWlcIDsKK+mhjOeUuyA8IGRhaWdhXCA7CivogZblr78gPCBzZWlqdVwgOwor6Ky56KmxIDwga2lud2FcIDsKK+S4jeeKryA8IGZ1Ym9uXCA7Civku4rlrrUgPCBrb3lvaVwgOwor5LqU5oiSIDwgZ29rYWlcIDsKK+adnuaGgiA8IGtpeXV1XCA7CivpnaLpg6ggPCBtZW5idVwgOwor5piO6KiYIDwgbWVpa2lcIDsKK+S7luWnkyA8IHRhc2VpXCA7CivlpbPpg44gPCBqb3JvdVwgOwor6LKh5biDIDwgc2FpZnVcIDsKK+acquadpSA8IG1pcmFpXCA7CivkuI3nh4MgPCBmdW5lblwgOwor5LiA54yuIDwgaWtrb25cIDsKK+aWvemMoCA8IHNlam91XCA7CivlronkvY8gPCBhbmp1dVwgOwor5bqn5qSF5a2QIDwgemFpc3VcIDsKK+mdnumBkyA8IGhpZG91XCA7CivpnKfpm7AgPCBtdWZ1blwgOwor5p2/5bGLIDwgaXRheWFcIDsKK+S6lOaCqiA8IGdvYWt1XCA7CivlrabljLogPCBnYWtrdVwgOwor5Lq65a+/IDwgamluanVcIDsKK+S4jueCuSA8IHlvdGVuXCA7CivkurrlrrYgPCBqaW5rYVwgOwor5pyq5piOIDwgbWltZWlcIDsKK+S6kuaBtSA8IGdva2VpXCA7CivpnaLovKogPCBvbW93YVwgOwor6LKn5a+MIDwgaGlucHVcIDsKK+ePvuWgtCA8IGdlbmJhXCA7CivosqflrrYgPCBoaW5rYVwgOwor6aGe54GrIDwgcnVpa2FcIDsKK+WtmOWQpiA8IHpvbnBpXCA7Civmnb/lrZAgPCBpdGFnb1wgOwor5aWg6YO9IDwgdGVudG9cIDsKK+iBluWknCA8IHNlaXlhXCA7Civku4rlpI8gPCBrb25rYVwgOwor5LqI5oOzIDwgeW9zb3VcIDsKK+S7u+WLmSA8IG5pbm11XCA7Civmlrnph4wgPCBob3VyaVwgOwor546L5pS/IDwgb3VzZWlcIDsKK+e+jueCuSA8IGJpdGVuXCA7Civkuozlv7UgPCBuaW5lblwgOwor6Kyb6KmxIDwga291d2FcIDsKK+izm+WQpiA8IHNhbnBpXCA7CivlpKfpm6ggPCBvb2FtZVwgOwor5aSV6aSJIDwgeXV1Z2VcIDsKK+WkqumZsCA8IHRhaWluXCA7CivmnJ3ml6UgPCBhc2FoaVwgOwor5Luj5ZOhIDwgZGFpaW5cIDsKK+S4iua8lCA8IGpvdWVuXCA7Civmlofpm4UgPCBidW5nYVwgOwor5LiN5rqAIDwgZnVtYW5cIDsKK+i0iOS4jiA8IHpvdXlvXCA7CivkubHmiZMgPCByYW5kYVwgOwor5aSW6aGMIDwgZ2VkYWlcIDsKK+eJoeigoyA8IGJvcmVpXCA7Civlpa7otbcgPCBmdW5raVwgOwor5Lq65aSrIDwgbmlucHVcIDsKK+iAtuWsoiA8IHlham91XCA7CivlpoToqp4gPCBtb3Vnb1wgOwor6LKe5ammIDwgdGVpZnVcIDsKK+e+qeawkSA8IGdpbWluXCA7Civoqp7poZ4gPCBnb3J1aVwgOwor5pa56YCUIDwgaG91dG9cIDsKK+S7j+WZqCA8IGJ1a2tpXCA7Civml6XoqrIgPCBuaWtrYVwgOwor6Kqe6aCGIDwgZ29qdW5cIDsKK+S4u+afuyA8IHNodXNhXCA7CivlpJrpm6MgPCB0YW5hblwgOwor5LiN5rWEIDwgZnVqb3VcIDsKK+aXpeiomCA8IG5pa2tpXCA7Civku6XljJcgPCBpaG9rdVwgOwor5a2Q5YiGIDwga29idW5cIDsKK+WklumcgCA8IGdhaWp1XCA7CivlrabkvY0gPCBnYWt1aVwgOwor5pys5omLIDwgaG9udGVcIDsKK+iynuWlsyA8IHRlaWpvXCA7Civpn7PnqIsgPCBvbnRlaVwgOwor57+75oSPIDwgaG9uJydpXCA7CivorIDorbAgPCBib3VnaVwgOwor5LiN5rOVIDwgZnVob3VcIDsKK+S7o+WLmSA8IGRhaW11XCA7CivnvoXmvKIgPCByYWthblwgOwor572554G9IDwgcmlzYWlcIDsKK+acquaIkCA8IG1pc2VpXCA7CivmnIDmnJ8gPCBzYWlnb1wgOwor6Zuq6aeEIDwgc2V0dGFcIDsKK+WklemZvSA8IHl1dWhpXCA7CivlpJzplpMgPCB5YWthblwgOwor6ICB5b6MIDwgcm91Z29cIDsKK+aXheiyuyA8IHJ5b2hpXCA7CivkupXlroggPCBpbW9yaVwgOwor6Z2S6LKdIDwgYW9nYWlcIDsKK+S4i+awtCA8IGdlc3VpXCA7CivlpYjovrogPCBuYWhlblwgOwor5pW06ZmkIDwgc2Vpam9cIDsKK+S4jeavmyA8IGZ1bW91XCA7CivkuIvmsJEgPCBnZW1pblwgOwor5auM5oKqIDwga2VuJydvXCA7CivosqflnJ8gPCBoaW5kb1wgOwor6Zu76ZuiIDwgZGVucmlcIDsKK+mhnuavlCA8IHJ1aWhpXCA7CivkuI3mrbsgPCBmdXNoaVwgOwor5LiL5q61IDwgZ2VkYW5cIDsKK+mbtumcsiA8IHJlaXJvXCA7CivkuozlsIEgPCBuaWZ1dVwgOwor6Zu36ZuyIDwgcmFpdW5cIDsKK+S7luWLlSA8IHRhZG91XCA7CivkuIrmra8gPCB1d2FiYVwgOwor5LqM5a6uIDwgbmlndXVcIDsKK+S7luWKsSA8IHRhcmVpXCA7Civnj63lk6EgPCBoYW5pblwgOwor6Ku36KqmIDwgZnV1anVcIDsKK+S4gOawtCA8IGlzc3VpXCA7CivkuojlrpogPCB5b3RlaVwgOwor6LK05ZCbIDwga2lrdW5cIDsKK+aWrei3ryA8IGRhbnJvXCA7Civni7znhZkgPCByb3VlblwgOwor6LK05ZCNIDwga2ltZWlcIDsKK+S7ruS7pCA8IHRhdG9lXCA7CivkuIDmrrUgPCBpdHRhblwgOwor5LiA5q2zIDwgaXNzYWlcIDsKK+adpeWgtCA8IHJhaWJhXCA7Civpn7Pnm6QgPCBvbmJhblwgOwor5LuL5YqpIDwga2Fpam9cIDsKK+S4h+apnyA8IGJhbmtpXCA7Civpm6roirHoj5wgPCBva2FyYVwgOwor6aOv5aC0IDwgaGFuYmFcIDsKK+Wkp+mDqCA8IGRhaWJ1XCA7CivmmYLnqbogPCBqaWt1dVwgOwor6Z+z55e0IDwgb25jaGlcIDsKK+aWh+mDqCA8IG1vbmJ1XCA7CivmmpfmvrkgPCBhbnRhblwgOwor6Kmx6aGMIDwgd2FkYWlcIDsKK+WkmumHjSA8IHRhanV1XCA7CivoqbHpoK0gPCB3YXRvdVwgOwor5LqL5aSJIDwgamloZW5cIDsKK+aZqeeUnyA8IG9rdXRlXCA7Civpm6jplpMgPCBhbWFhaVwgOwor5aaW6Im2IDwgeW91ZW5cIDsKK+WklumHjiA8IGdhaXlhXCA7CivkuIvmoKEgPCBnZWtvdVwgOwor6KuW6K2wIDwgcm9uZ2lcIDsKK+iqremBjiA8IGRva2thXCA7CivmmI7nvo4gPCBtZWliaVwgOwor5LuY5LyaIDwgZnVrYWlcIDsKK+iri+iyoCA8IHVrZW9pXCA7CivkuLvmiJEgPCBzaHVnYVwgOwor6aO95ZKMIDwgaG91d2FcIDsKK+S6jOWhgSA8IG5pcnVpXCA7CivoqqTphY0gPCBnb2hhaVwgOwor6Zui6ZaTIDwgcmlrYW5cIDsKK+e/u+WtlyA8IGhvbmppXCA7Civpo5vloLEgPCBoaWhvdVwgOwor5LuW5Lq6IDwgdGFuaW5cIDsKK+WklumDqCA8IGdhaWJ1XCA7Civoq5boqp4gPCByb25nb1wgOwor5puc5pelIDwgeW91YmlcIDsKK+WklumDjiA8IHVpcm91XCA7CivpnZLonb8gPCBhb2JhZVwgOwor572o5rOVIDwgYW5wb3VcIDsKK+iAgeWphiA8IHJvdWJhXCA7CivosqHli5kgPCB6YWltdVwgOwor5LiL5pu4IDwgZ2VzaG9cIDsKK+aWveihjCA8IHNla291XCA7CivmnIDmhJsgPCBzYWlhaVwgOwor5puW5pinIDwgYWltYWlcIDsKK+aXqeiLlyA8IHNhbmFlXCA7CivkuIfmnLYgPCBiYW5kYVwgOwor5pys5a62IDwgaG9ua2VcIDsKK+WklumBkyA8IGdlZG91XCA7CivlqprmhYsgPCBiaXRhaVwgOwor5pmC55+tIDwgaml0YW5cIDsKK+aal+a2mSA8IGFucnVpXCA7CivmnInlv4MgPCB1c2hpblwgOwor54++5LiWIDwgZ2VuemVcIDsKK+aaouawlyA8IG5vbmtpXCA7CivogIHlppMgPCByb3VnaVwgOwor5pyq5a6aIDwgbWl0ZWlcIDsKK+S4jeaYkyA8IGZ1ZWtpXCA7CivmnKrlrowgPCBtaWthblwgOwor5LiN5piOIDwgZnVtZWlcIDsKK+iyvOS7mCA8IHRlbnB1XCA7CivmnKvlraMgPCBtYWtraVwgOwor6ICB5aWzIDwgcm91am9cIDsKK+S4gOadryA8IGlwcGFpXCA7Civnvo7mnKwgPCBiaWhvblwgOwor5LiK5pigIDwgam91ZWlcIDsKK+eOi+WtqyA8IG91c29uXCA7CivkuIvml6wgPCBnZWp1blwgOwor5LiN5patIDwgZnVkYW5cIDsKK+S4gOacrCA8IGlwcG9uXCA7CivkuI3mlocgPCBmdWJ1blwgOwor5p2Q5ZmoIDwgemFpa2lcIDsKK+WFq+eZvuWxiyA8IHlhb3lhXCA7CivkuInml6UgPCBtaWtrYVwgOwor5aeL56WWIDwgc2hpc29cIDsKK+S4jeaVjyA8IGZ1YmluXCA7CivosYrlr4wgPCBob3VmdVwgOwor576O5pmvIDwgYmlrZWlcIDsKK+e+qeaMmSA8IGdpa3lvXCA7Civoq4foqbEgPCBkYW53YVwgOwor5pWs6YGgIDwga2VpZW5cIDsKK+acquWpmiA8IG1pa29uXCA7CivmnJ3lr50gPCBhc2FuZVwgOwor6LK45LiOIDwgdGFpeW9cIDsKK+iyoOWCtSA8IGZ1c2FpXCA7CivkuZnlrZAgPCBvdG9nb1wgOwor5aSn6LGGIDwgZGFpenVcIDsKK+mbqOmHjyA8IHVyeW91XCA7CivnvqnmiYsgPCBnaXNodVwgOwor5LiA5pa5IDwgaXBwb3VcIDsKK+S4gOaWpCA8IGlra2luXCA7CivnvqnmiKYgPCBnaXNlblwgOwor6Kq56KyXIDwgaGlib3VcIDsKK+e3i+mviSA8IGhpZ29pXCA7Civnvojml4UgPCBraXJ5b1wgOwor576p5oakIDwgZ2lmdW5cIDsKK+S6jOWQmyA8IG5pa3VuXCA7CivkuJbmiY0gPCBzZXNhaVwgOwor5LqM5Y+3IDwgbmlnb3VcIDsKK+acgOW3piA8IHNhaXNhXCA7CivkuqHlhZAgPCBib3VqaVwgOwor5pu45bqrIDwgc2hva29cIDsKK+mbu+i3ryA8IGRlbnJvXCA7CivkuZnlpbMgPCBvdG9tZVwgOwor5paH6KqeIDwgYnVuZ29cIDsKK+S4luaFiyA8IHNldGFpXCA7CivnjqnlkbMgPCBnYW5taVwgOwor6aGn5oWuIDwga29yeW9cIDsKK+WknOitpiA8IHlha2VpXCA7CivpmqDpoZUgPCBpbmtlblwgOwor546L5Z+OIDwgb3Vqb3VcIDsKK+S4iuaJiyA8IGpvdXp1XCA7CivmnKzlnJ8gPCBob25kb1wgOwor576O5oyZIDwgYmlreW9cIDsKK+S4gOaMmSA8IGlra3lvXCA7Civpm6LovrIgPCByaW5vdVwgOwor5LiH5oi4IDwgYmFua29cIDsKK+mfs+a6kCA8IG9uZ2VuXCA7CivkuozliIYgPCBuaWJ1blwgOwor5pqr5pmCIDwgemFuamlcIDsKK+aYjuekuiA8IG1laWppXCA7CivpmqDpnaIgPCBpbm1lblwgOwor6Ki06aGYIDwgc29nYW5cIDsKK+e+qeW8nyA8IGdpdGVpXCA7CivnjoflnJ8gPCBzb3R0b1wgOwor5Lqk5LqSIDwga291Z29cIDsKK+iqpOiqjSA8IGdvbmluXCA7CivpnaLnvbUgPCBtZW5iYVwgOwor5aSW6KqeIDwgZ2FpZ29cIDsKK+WkmuiogCA8IHRhZ2VuXCA7CivkupTlgI0gPCBnb2JhaVwgOwor6aCG5qyhIDwganVuamlcIDsKK+mhmOaEjyA8IGdhbicnaVwgOwor6aKo5ZyfIDwgZnV1ZG9cIDsKK+mbo+i3ryA8IG5hbnJvXCA7Civnh4PosrsgPCBuZW5waVwgOwor5LqU5L2TIDwgZ290YWlcIDsKK+acieWkjyA8IHl1dWthXCA7CivkuozlgI0gPCBuaWJhaVwgOwor5LiL5b6hIDwgZ2VneW9cIDsKK+eOqeWFtyA8IGdhbmd1XCA7Civoqa3ovq8gPCBraWJlblwgOwor5aWl576pIDwgb2t1Z2lcIDsKK+mbu+ipsSA8IGRlbndhXCA7CivnjJvmiZMgPCBtb3VkYVwgOwor6ZyA6KaBIDwganV5b3VcIDsKK+Wkp+ibhyA8IGRhaWphXCA7CivmnLHljbAgPCBzaHVpblwgOwor5aSW6KKrIDwgZ2FpaGlcIDsKK+acgOWkmiA8IHNhaXRhXCA7CivkuI3lubMgPCBmdWhlaVwgOwor5aWz57O7IDwgam9rZWlcIDsKK+iwt+WcsCA8IHlhY2hpXCA7CivkuIrluqcgPCBqb3V6YVwgOwor57iB6L66IDwgZW5wZW5cIDsKK+S6i+S7tiA8IGppa2VuXCA7CivkuozkuZcgPCBuaWpvdVwgOwor5LiK5biDIDwgam91ZnVcIDsKK+acrOWLmSA8IGhvbm11XCA7CivkuozkuJYgPCBuaXNlaVwgOwor5LqM5LiJIDwgbmlzYW5cIDsKK+itsua4oSA8IGpvdXRvXCA7CivpoqjlkbMgPCBmdXVtaVwgOwor6K235rOVIDwgZ29ob3VcIDsKK+ixmuWFkCA8IHRvbmppXCA7Civpm6Poqp4gPCBuYW5nb1wgOwor5pWF6LK3IDwga29iYWlcIDsKK+mbkeiyuyA8IHphcHBpXCA7Civpm5HosqggPCB6YWtrYVwgOwor5LiL5bGxIDwgZ2V6YW5cIDsKK+aVl+iotCA8IGhhaXNvXCA7Civlo7DoqokgPCBzZWl5b1wgOwor5LiK5bGLIDwgdXdheWFcIDsKK+eOi+WGoCA8IG91a2FuXCA7CivpoqjljJYgPCBmdXVrYVwgOwor5pq05b6SIDwgYm91dG9cIDsKK+e+qeWmuSA8IGdpbWFpXCA7CivkuIflr78gPCBiYW5qdVwgOwor6aGe5a2XIDwgcnVpamlcIDsKK+mZjemtlCA8IGdvdW1hXCA7Civpn7PmoJMgPCBvbnNlblwgOwor6Z+75pu4IDwgaW5zaG9cIDsKK+aWveexsyA8IHNlbWFpXCA7CivorbLmrakgPCBqb3Vob1wgOwor5paH6IuRIDwgYnVuZW5cIDsKK+e+juWuuSA8IGJpeW91XCA7Civoq4fnvqkgPCBkYW5naVwgOwor6Zqg6YGBIDwgaW50b25cIDsKK+S4gOWumiA8IGl0dGVpXCA7CivpoJPmjKsgPCB0b256YVwgOwor6ZuR6KiYIDwgemFra2lcIDsKK+maoOmAgCA8IGludGFpXCA7CivpnbHnmq4gPCBqaW5waVwgOwor6aKo5YSAIDwgZnV1Z2lcIDsKK+mZpOmciiA8IGpvcmVpXCA7CivloanpoZ4gPCBlbnJ1aVwgOwor6Zmw6ZaAIDwgaW5tb25cIDsKK+aXp+eXviA8IGt5dXVhXCA7Civpn7vmlocgPCBpbmJ1blwgOwor5pyA5Y+kIDwgc2Fpa29cIDsKK+e5geiMgiA8IGhhbm1vXCA7CivlpJroirggPCB0YWdlaVwgOwor6Zmk6ZqKIDwgam90YWlcIDsKK+WkluiLkSA8IGdhaWVuXCA7CivmnKvkuJYgPCBtYXNzZVwgOwor5LiH5aSrIDwgYmFucHVcIDsKK+S4u+WLmSA8IHNodW11XCA7Civoq63npLogPCB5dXNoaVwgOwor6ZuF6KiAIDwgZ2FnZW5cIDsKK+eEoemiqCA8IG11ZnV1XCA7CivpnaLnmq4gPCBtZW5waVwgOwor6aCt5be+IDwgenVraW5cIDsKK+eEoemhniA8IG11cnVpXCA7Civnvo7lpKcgPCBiaWRhaVwgOwor57ea6LevIDwgc2Vucm9cIDsKK+eEoemhjCA8IG11ZGFpXCA7CivnhKHpoLwgPCBidXJhaVwgOwor6Kmm6KOcIDwgc2hpaG9cIDsKK+e+juWjsCA8IGJpc2VpXCA7CivlpJrog70gPCB0YW5vdVwgOwor5LiL5Z+OIDwgZ2Vqb3VcIDsKK+aYr+atoyA8IHplc2VpXCA7CivmlaPoj68gPCBzYW5nZVwgOwor5aSP6IezIDwgZ2VzaGlcIDsKK+e3j+i6qyA8IHNvdW1pXCA7CivkuI3lnKggPCBmdXphaVwgOwor6Kqk6IGeIDwgZ29idW5cIDsKK+mdoueUuyA8IG1lbmdhXCA7CivnhKHpm7sgPCBtdWRlblwgOwor54Sh6ZujIDwgYnVuYW5cIDsKK+WkluiAsyA8IGdhaWppXCA7CivpnZ7nlaogPCBoaWJhblwgOwor5pyJ5L2ZIDwgeXV1eW9cIDsKK+eEoemZkCA8IG11Z2VuXCA7CivkuI3lloQgPCBmdXplblwgOwor5LiN5ZWPIDwgZnVtb25cIDsKK+acieS6iyA8IHl1dWppXCA7Civnoavpu4Toj68gPCBpb3VrYVwgOwor576p5YuHIDwgZ2l5dXVcIDsKK+mgkuW4gyA8IGhhbnB1XCA7Civoq5bnoLQgPCByb25wYVwgOwor57215aOwIDwgYmFzZWlcIDsKK+S4i+WTgSA8IGdlaGluXCA7CivmnIjkuIsgPCBnZWtrYVwgOwor6KiT6L6eIDwga3VuamlcIDsKK+WkoueyviA8IG11c2VpXCA7Civpn7PmhJ8gPCBvbmthblwgOwor5LiN5Y+CIDwgZnVzYW5cIDsKK+mghuW6jyA8IGp1bmpvXCA7CivpoZ7lj6UgPCBydWlrdVwgOwor5LiK5Y+kIDwgam91a29cIDsKK+S4ieWPiSA8IHNhbnNhXCA7Civpmbrot68gPCBrZW5yb1wgOwor6Ziy6ZmkIDwgYm91am9cIDsKK+S4jeWLoiA8IGJ1emVpXCA7CivoqbHoirggPCB3YWdlaVwgOwor576O5ZCNIDwgYmltZWlcIDsKK+WhqemFuCA8IGVuc2FuXCA7CivlpKfnqbQgPCBvb2FuYVwgOwor54yq5Y+jIDwgY2hva29cIDsKK+aWpOebriA8IGtpbm1lXCA7CivniafmrYwgPCBib2trYVwgOwor5LiL5YmkIDwgZ2V6YWlcIDsKK+eEoemKrSA8IG11c2VuXCA7CivloLTpnaIgPCBiYW1lblwgOwor6KiA6L6eIDwgZ2VuamlcIDsKK+eEoemKmCA8IG11bWVpXCA7CivoqqTnrpcgPCBnb3NhblwgOwor54iq54mZIDwgc291Z2FcIDsKK+WkquelliA8IHRhaXNvXCA7CivmmpflpJwgPCBhbicneWFcIDsKK+WkqeelliA8IHRlbnNvXCA7CivorbfmhrIgPCBnb2tlblwgOwor5aSa56uvIDwgdGF0YW5cIDsKK+ipoOiNiSA8IGVpc291XCA7Civlo67nvo4gPCBzb3ViaVwgOwor5aSa56iuIDwgdGFzaHVcIDsKK+eEoemFjSA8IG11aGFpXCA7Civniq/mhI8gPCBoYW4nJ2lcIDsKK+S4i+WDpyA8IGdlc291XCA7CivnvqnkurogPCBnaWppblwgOwor5LiA5YiGIDwgaXBwdW5cIDsKK+Wlh+eRniA8IGtpenVpXCA7Civoq5bnkIYgPCByb25yaVwgOwor5aSn56C0IDwgdGFpaGFcIDsKK+mbheiHtCA8IGdhY2hpXCA7CivkuI3lgKsgPCBmdXJpblwgOwor6Kmx6ICFIDwgd2FzaGFcIDsKK+aXpeazoiA8IG5pcHBvXCA7CivkuJbku6MgPCBzZWRhaVwgOwor5LiW5Lq6IDwgc2VqaW5cIDsKK+aVheiAgSA8IGtvcm91XCA7CivkuIrlgKQgPCB1d2FuZVwgOwor54Sh6YGTIDwgbXVkb3VcIDsKK+S4jeS+vyA8IGZ1YmVuXCA7Civlopfoo5wgPCB6b3Vob1wgOwor57mU55uuIDwgb3JpbWVcIDsKK+iok+ipsSA8IGt1bndhXCA7CivnhKHovrogPCBtdWhlblwgOwor6Zqg6JS9IDwgaW5wZWlcIDsKK+e+heWFuCA8IHJhdGVuXCA7CivpmbDorIAgPCBpbmJvdVwgOwor6KiT6KmBIDwga3Vua29cIDsKK+Wmk+alvCA8IGdpcm91XCA7Civmlofnm64gPCBheWFtZVwgOwor5aSJ56e7IDwgaGVuJydpXCA7CivkuIvkurogPCBnZW5pblwgOwor5pq05YipIDwgYm91cmlcIDsKK+aal+WWqSA8IGFuJyd5dVwgOwor5aGR6YCgIDwgc296b3VcIDsKK+WpmuWEgCA8IGtvbmdpXCA7CivntJnprZogPCBzaGltaVwgOwor5LiH5LqLIDwgYmFuamlcIDsKK+iruOa0viA8IHNob2hhXCA7CivkuIrkuIsgPCBqb3VnZVwgOwor5LiJ5LiWIDwgc2FuemVcIDsKK+mbu+ejgSA8IGRlbmppXCA7CivpoJHlm7ogPCBnYW5rb1wgOwor576O5Lq6IDwgYmlqaW5cIDsKK+e9t+WFjSA8IGhpbWVuXCA7CivlpKfnk7YgPCBvb2JpblwgOwor6KiA6KqeIDwgZ2VuZ29cIDsKK+Wkt+eLhCA8IGl0ZWtpXCA7CivmmpflkJsgPCBhbmt1blwgOwor5pqX5ZCIIDwgYW5nb3VcIDsKK+itt+WyuCA8IGdvZ2FuXCA7CivlvqHnpZ7phZIgPCBvbWlraVwgOwor54mp5pWFIDwgYnVra29cIDsKK+WkqeeQhiA8IHRlbnJpXCA7CivntKDppIogPCBzb3lvdVwgOwor5aeQ5b6hIDwgYW5lZ29cIDsKK+WknOeVqiA8IHlvYmFuXCA7CivpnLLngrkgPCByb3RlblwgOwor6Z+z5aSnIDwgb25kYWlcIDsKK+mfs+WjsCA8IG9uc2VpXCA7CivlpJrnlKggPCB0YXlvdVwgOwor5aSa55SjIDwgdGFzYW5cIDsKK+e0oOmhlCA8IHN1Z2FvXCA7CivmlLnntYQgPCBrYWlzb1wgOwor57Sr6ZuyIDwgc2hpdW5cIDsKK+e3qOiAhSA8IGhlbmphXCA7CivlpbPmqKkgPCBqb2tlblwgOwor5aSp54uXIDwgdGVuZ3VcIDsKK+WlpeatryA8IG9rdWJhXCA7Civml6nmnJ8gPCBzb3VraVwgOwor57Sg6Z2iIDwgc3VtZW5cIDsKK+e4q+ebriA8IG51aW1lXCA7CivnhKHorIAgPCBtdWJvdVwgOwor5peF5qyhIDwgcnlvamlcIDsKK+aXpeacrCA8IG5paG9uXCA7CivnhKHoq5YgPCBtdXJvblwgOwor6Z2e5qWtIDwgaGlnb3VcIDsKK+aXpuaariA8IHRhbmJvXCA7Civns7jprZogPCBpdG95b1wgOwor6Zuo552AIDwgYW1hZ2lcIDsKK+WogeWcpyA8IGlhdHN1XCA7CivnhKHoqIAgPCBtdWdvblwgOwor5aaC5pivIDwgbnlvemVcIDsKK+WogeWahyA8IGlrYWt1XCA7CivmlbDnkIYgPCBzdXVyaVwgOwor54ax56CCIDwgbmVzc2FcIDsKK+WkqeeBqyA8IHRlbnBpXCA7CivnjIrkuIsgPCBnZWlrYVwgOwor6Ziy6K23IDwgYm91Z29cIDsKK+mgreS4iiA8IHp1am91XCA7CivpnZLmooUgPCBhb3VtZVwgOwor5aGX6KOFIDwgdG9zb3VcIDsKK+aVheefpSA8IGtvY2hpXCA7CivpmqDnt5ogPCBpbnNlblwgOwor6KaW6YeOIDwgc2hpeWFcIDsKK+mZsOiMjiA8IGlua2VpXCA7Civnh6DngasgPCBva2liaVwgOwor6Z+z5ZCNIDwgb25tZWlcIDsKK+WmpeW9kyA8IGRhdG91XCA7CivmmYLloLEgPCBqaWhvdVwgOwor57WM6LevIDwga2Vpcm9cIDsKK+WhqeiUtSA8IGVuem91XCA7CivmmKDlsIQgPCBlaXNoYVwgOwor6Ku65paHIDwgb25tb25cIDsKK+WiqOe1tSA8IHN1bWllXCA7CivntLDpg6ggPCBzYWlidVwgOwor57e056OoIDwgcmVubWFcIDsKK+isneaBqSA8IHNoYW9uXCA7CivmmIbluIMgPCBrb25idVwgOwor6Zuy54WZIDwgdW4nJ2VuXCA7Civlpb3miZMgPCBrb3VkYVwgOwor6Ziy6KGbIDwgYm91ZWlcIDsKK+Wkp+aysyA8IHRhaWdhXCA7Civpm7fngasgPCByYWlrYVwgOwor57ay576FIDwgbW91cmFcIDsKK+iok+e+qSA8IGt1bmdpXCA7CivmmKjlpJwgPCB5dXViZVwgOwor54Sh6JOLIDwgbXVnYWlcIDsKK+imh+mBkyA8IGhhZG91XCA7Civopb/pg6ggPCBzZWlidVwgOwor6ZuH55SoIDwga295b3VcIDsKK+mfs+WDjyA8IG9uem91XCA7CivkvIrkvZDmnKggPCBpc2FraVwgOwor5aa75aWzIDwgc2Fpam9cIDsKK+Wkp+atjCA8IG9vdXRhXCA7CivmlofmroogPCBtb25qdVwgOwor54Sh6I+MIDwgbXVraW5cIDsKK+aWh+atpiA8IGJ1bmJ1XCA7CivmhbDlronlqaYgPCBpYW5mdVwgOwor54Sh6Iy2IDwgbXVjaGFcIDsKK+mfs+S+vyA8IG9uYmluXCA7CivlpJrmr5sgPCB0YW1vdVwgOwor5aSn5qi5IDwgdGFpanVcIDsKK+WkluawlyA8IGdhaWtpXCA7CivnhKHoirggPCBtdWdlaVwgOwor5aSn5qeYIDwgb295b3VcIDsKK+ijvem6uyA8IHNlaW1hXCA7Civnt4/npL4gPCBzb3VqYVwgOwor6K2m5Y+lIDwga2Vpa3VcIDsKK+mdnuaDhSA8IGhpam91XCA7CivmmYLljJYgPCBzaGlrZVwgOwor6Zuo5ru0IDwgdXRla2lcIDsKK+mbsua1tyA8IHVua2FpXCA7Civpm5Hnha4gPCB6b3VuaVwgOwor5pif5ZuzIDwgc2VpenVcIDsKK+imgei3ryA8IHlvdXJvXCA7CivlpbPlvqEgPCBueW9nb1wgOwor5pah5peLIDwgYXNzZW5cIDsKK+mbsuazpSA8IHVuZGVpXCA7Civorabli5kgPCBrZWltdVwgOwor54Sh6IO9IDwgbXVub3VcIDsKK+eKrOWEkiA8IGtlbmp1XCA7CivlpKfopovlvpcgPCBvb21pZVwgOwor5pWw5qyhIDwgc3V1amlcIDsKK+aVteapnyA8IHRla2tpXCA7Civpm7LmsLQgPCB1bnN1aVwgOwor5aaW5amGIDwgeW91YmFcIDsKK+mdkuaBryA8IGFvaWtpXCA7CivplpHpm4UgPCBrYW5nYVwgOwor5aSn5p6dIDwgb29lZGFcIDsKK+Wjsua3qyA8IGJhaWluXCA7CivpnKfmlaMgPCBtdXNhblwgOwor5aWz5bidIDwgam90ZWlcIDsKK+e3mueUuyA8IHNlbmdhXCA7CivmlrDmiYsgPCBhcmF0ZVwgOwor54Sh572qIDwgbXV6YWlcIDsKK+aVo+atqSA8IHNhbnBvXCA7Civpm6jmsLcgPCB1aHlvdVwgOwor5paH5pu4IDwgbW9uam9cIDsKK+aXouWumiA8IGtpdGVpXCA7CivntJvorbAgPCBmdW5naVwgOwor6Zmk566XIDwgam96YW5cIDsKK+itsOS8miA8IGdpa2FpXCA7CivlsITmiYvluqcgPCBpdGV6YVwgOwor6Kmm5ryUIDwgc2hpZW5cIDsKK+aSq+iCsiA8IGJ1aWt1XCA7Civoqp7moLkgPCBnb2tvblwgOwor54ax5rOiIDwgbmVwcGFcIDsKK+WkmuacmyA8IHRhYm91XCA7CivlpbPlsIogPCBqb3NvblwgOwor54mi5Zu6IDwgcm91a29cIDsKK+ipseazlSA8IHdhaG91XCA7CivngonovrogPCByb2hlblwgOwor54Wp55GjIDwgaGFuc2FcIDsKK+e3j+eQhiA8IHNvdXJpXCA7CivnhKHns5YgPCBtdXRvdVwgOwor6Zm955quIDwgeW91aGlcIDsKK+Wkp+aQjSA8IG9vem9uXCA7CivpnLLmgqogPCByb2FrdVwgOwor54qA5YipIDwgc2FpcmlcIDsKK+WkmuaVsCA8IHRhc3V1XCA7CivntrLnm64gPCBhbWltZVwgOwor5aSp5o6IIDwgdGVuanVcIDsKK+WkluaWuSA8IHNvcHBvXCA7CivnspfppJAgPCBzb3NhblwgOwor57KX6aOvIDwgc29oYW5cIDsKK+mWiemOliA8IGhlaXNhXCA7CivntKDooYwgPCBzb2tvdVwgOwor57W557W1IDwga2ludWVcIDsKK+itnOS7oyA8IGZ1ZGFpXCA7CivloannqI4gPCBlbnplaVwgOwor57W157W5IDwgZWdpbnVcIDsKK+maoOeEtiA8IGluemVuXCA7Civoqp7mlbAgPCBnb3N1dVwgOwor5pig5YCrIDwgZWlyaW5cIDsKK+eyvumLrSA8IHNlaWVpXCA7Civpm7Lmma8gPCB1bmtlaVwgOwor54mI5ZuzIDwgaGFudG9cIDsKK+Wlh+W3jCA8IGtpZ2FuXCA7Civlp4nkuIogPCBhbmV1ZVwgOwor54Sh56i9IDwgbXVrZWlcIDsKK+ilsuihoyA8IHNodXVpXCA7CivplpPpgaAgPCBtYWRvb1wgOwor54Sh56iOIDwgbXV6ZWlcIDsKK+ipoOatjiA8IGVpdGFuXCA7CivlpKfmhJogPCB0YWlndVwgOwor6Zuy5pWjIDwgdW5zYW5cIDsKK+mbouadkSA8IHJpc29uXCA7CivlpJzmiKYgPCB5YXNlblwgOwor5LiN5oSP5rCXIDwgYnVpa2lcIDsKK+e1teethiA8IGVmdWRlXCA7CivlpJrmiY0gPCB0YXNhaVwgOwor5paH5oSPIDwgYnVuJydpXCA7CivopaTopLggPCByYW5ydVwgOwor5aSn5oKfIDwgZGFpZ29cIDsKK+eEoeekvCA8IGJ1cmVpXCA7CivnubvlrZAgPCBzaHVzdVwgOwor6ZaL6YGLIDwga2FpdW5cIDsKK+Wkp+aBqSA8IGRhaW9uXCA7CivoqbLmoYggPCBnYWlhblwgOwor5aSi5oOzIDwgbXVzb3VcIDsKK+ilpuiioiA8IGp1YmFuXCA7Civpm6PmmJMgPCBuYW4nJ2lcIDsKK+aXqOWRsyA8IHVtYW1pXCA7CivoqbHmn4QgPCB3YWhlaVwgOwor5aWJ5a6JIDwgaG91YW5cIDsKK+WgleiDjiA8IGRhdGFpXCA7CivlpJrmhJ8gPCB0YWthblwgOwor5pKt56iuIDwgaGFzaHVcIDsKK+iqsuW9uSA8IGthZWtpXCA7CivpmaLnlJ8gPCBpbnNlaVwgOwor6KOc6aGMIDwgaG9kYWlcIDsKK+WkmuaDhSA8IHRham91XCA7Civpm6LmlaMgPCByaXNhblwgOwor6Kmm5qGIIDwgc2hpYW5cIDsKK+WkmuaBqCA8IHRha29uXCA7CivlpKfluqYgPCB0YWlkb1wgOwor5pW15oSPIDwgdGVraWlcIDsKK+aWh+W6qyA8IGJ1bmtvXCA7CivopovoiJ4gPCBtaW1haVwgOwor5aCV572qIDwgZGF6YWlcIDsKK+WhqeeUsCA8IGVuZGVuXCA7CivnhKHnm4ogPCBtdWVraVwgOwor5aSn5beuIDwgdGFpc2FcIDsKK+Wkp+W3pSA8IGRhaWt1XCA7CivlpJrlvaIgPCB0YWtlaVwgOwor5pWs5oWVIDwga2VpYm9cIDsKK+aPtOi7jSA8IGVuZ3VuXCA7CivmlazmhJsgPCBrZWlhaVwgOwor5aSa5byBIDwgdGFiZW5cIDsKK+mdnuWRvSA8IGhpbWVpXCA7CivorIDlj5sgPCBtdWhvblwgOwor57KX6YqFIDwgc29kb3VcIDsKK+aRqeiAlyA8IG1hbW91XCA7CivniLblkJsgPCBmdWt1blwgOwor5pS+5pigIDwgaG91ZWlcIDsKK+e0heiTriA8IGd1cmVuXCA7Civpm4HmnKggPCBnYW5naVwgOwor6KOP6Z2iIDwgcmltZW5cIDsKK+aWueWbsyA8IGhvdXp1XCA7Civpm6jmiLggPCBhbWFkb1wgOwor54Sh55SoIDwgbXV5b3VcIDsKK+eJoeS4uSA8IGJvdGFuXCA7CivlpKflsL4gPCB0YWliaVwgOwor57KX6YWSIDwgc29zaHVcIDsKK+WjsuaJiyA8IHVyaXRlXCA7CivlopfmtL4gPCB6b3VoYVwgOwor6KqY5byVIDwgeXV1aW5cIDsKK+Wkp+WutiA8IHRhaWtlXCA7Civpm4XmlocgPCBnYWJ1blwgOwor6KaH6ICFIDwgaGFzaGFcIDsKK+aVsOW6piA8IHN1dWRvXCA7CivlpKflrZcgPCBvb2F6YVwgOwor5pat5Zu6IDwgZGFua29cIDsKK+iNj+iDoem6uyA8IGVnb21hXCA7CivmloflrZcgPCBtb25qaVwgOwor54eV5bejIDwgZW5zb3VcIDsKK+WlpeWNsCA8IG9rdWluXCA7CivlpKvlqaYgPCBtZW90b1wgOwor5aSa5bGkIDwgdGFzb3VcIDsKK+iotOaoqSA8IHNva2VuXCA7Civpm7bluqYgPCByZWlkb1wgOwor54K56ICFIDwgdGVuamFcIDsKK+e1teeUuyA8IGthaWdhXCA7CivpnZ7lh6EgPCBoaWJvblwgOwor5aWz5YSqIDwgam95dXVcIDsKK+iqpOWwhCA8IGdvc2hhXCA7CivlpJblrq4gPCBnZWt1dVwgOwor5aSq5aSrIDwgdGF5dXVcIDsKK+Wkp+WlpSA8IG9vb2t1XCA7CivmjpLpmaQgPCBoYWlqb1wgOwor5aaC5LiKIDwgam9qb3VcIDsKK+Wkp+WjsCA8IG9vZ29lXCA7Civmk6zmr5sgPCBnaW1vdVwgOwor5aWR5Y2wIDwga2VpaW5cIDsKK+imgee0oCA8IHlvdXNvXCA7Civpm7LlsYUgPCBrdW1vaVwgOwor6Zyy5ZG9IDwgcm9tZWlcIDsKK+mZsOavmyA8IGlubW91XCA7CivnuZTlnLAgPCBvcmlqaVwgOwor6ZyK5aSiIDwgcmVpbXVcIDsKK+WkmuWkpyA8IHRhZGFpXCA7CivmjZXpr6ggPCBob2dlaVwgOwor5aSa5aOyIDwgdGFiYWlcIDsKK+mcsuWPsCA8IHJvZGFpXCA7CivnuYHlpJogPCBoYW50YVwgOwor6Zmk5rOVIDwgam9ob3VcIDsKK+eEnOeCiSA8IGtvbnJvXCA7Civpm6LlsrggPCByaWdhblwgOwor54Kt57SgIDwgdGFuc29cIDsKK+WkluWgtCA8IGdhaWJhXCA7Civpm6LlsbEgPCByaXphblwgOwor5aSn5ZiYIDwgb291c29cIDsKK+aVsOWkmiA8IHN1dXRhXCA7Civpmo/mmYIgPCB6dWlqaVwgOwor6ZyK5ZySIDwgcmVpZW5cIDsKK+aUv+W6nCA8IHNlaWZ1XCA7CivpmL/mvJUgPCBha29naVwgOwor5paX5Y2XIDwgdG9uYW5cIDsKK+WjsuWtkCA8IHVyaWtvXCA7Civpm7vloLQgPCBkZW5iYVwgOwor5aSW5ZugIDwgZ2FpaW5cIDsKK+mYsueBqyA8IGJvdWthXCA7CivpnLLlhYkgPCByb2tvdVwgOwor5aSn5ZGzIDwgb29hamlcIDsKK+aWveS4uyA8IHNlc2h1XCA7CivnhKHms5UgPCBtdWhvdVwgOwor5pWF5bGxIDwga296YW5cIDsKK+Wkp+WPsCA8IG9vZGFpXCA7CivlnKjph44gPCB6YWl5YVwgOwor54Gr6ImyIDwgaGlpcm9cIDsKK+aWh+WPpSA8IG1vbmt1XCA7CivpvL8gPCBnb3RzdVwgOwor54Sh5rC0IDwgbXVzdWlcIDsKK+m8jiA8IGthbmFlXCA7CivnhKHmr5sgPCBtdW1vdVwgOwor5Zuz6Z2iIDwgenVtZW5cIDsKK+aUvuWxgSA8IGhvdWhpXCA7Civlo7LlpbMgPCBiYWl0YVwgOwor5aSp5YqpIDwgdGVuam9cIDsKK+exs+iyqCA8IGJlaWthXCA7CivnhKHmrosgPCBtdXphblwgOwor6ZaL6IqxIDwga2Fpa2FcIDsKK+WknOWPiSA8IHlhc2hhXCA7Civln7rnm6QgPCBraWJhblwgOwor6bepIDwgaGV0c3VcIDsKK+Wkp+WIpCA8IG9vYmFuXCA7CivntKDnm7QgPCBzdW5hb1wgOwor6Kaq54i6IDwgb3lhamlcIDsKK+mcgOWTgSA8IGp1aGluXCA7Civoo5zorJsgPCBob2tvdVwgOwor6Zuj5aC0IDwgbmFuYmFcIDsKK+m2jSA8IGlzdWthXCA7Civlo7LloLQgPCB1cmliYVwgOwor6baJIDwgdXp1cmFcIDsKK+mZouacrCA8IGlucG9uXCA7CivlpJrli6IgPCB0YXplaVwgOwor5Zub6aGnIDwgc2hpa29cIDsKK+Wkp+WEkiA8IGRhaWp1XCA7CivlpJzliY0gPCB5YXplblwgOwor57Gz6KqeIDwgYmVpZ29cIDsKK+mYu+atoiA8IHNvc2hpXCA7CivlpJbli5kgPCBnYWltdVwgOwor6ZuR5aSaIDwgemF0dGFcIDsKK+WknOWIhiA8IHlhYnVuXCA7CivmlZflm6AgPCBoYWlpblwgOwor57Gz6KmxIDwgYmVpd2FcIDsKK+mxlyA8IHVyb2tvXCA7CivpsLsgPCB1bmFnaVwgOwor5paJ5YKZIDwgc2VpYmlcIDsKK+e1teaWh+WtlyA8IGVtb2ppXCA7CivlopPmiYAgPCBib3Nob1wgOwor6bCSIDwgYXdhYmlcIDsKK+mwjyA8IGh5b2t1XCA7Civoqp7li6IgPCBnb3NlaVwgOwor6bCNIDwgaW5hZGFcIDsKK+iqpOWIpCA8IGdvaGFuXCA7CivpsIkgPCBoaWdhaVwgOwor6a+PIDwgYXNhcmlcIDsKK+Wbs+mRkSA8IHp1a2FuXCA7Civprq0gPCBzaGFrZVwgOwor6Zuy5Y+wIDwgdW5kYWlcIDsKK+iqjeWQpiA8IG5pbnBpXCA7CivnhKHmoLkgPCBtdWtvblwgOwor5aSJ5YyWIDwgaGVuZ2VcIDsKK+iqjeWPryA8IG5pbmthXCA7Civpq7ogPCBnYXRzdVwgOwor57ay5oi4IDwgYW1pZG9cIDsKK+iomOaGtiA8IGtpb2t1XCA7CivmlofkuosgPCBidW5qaVwgOwor5pOs5oWLIDwgZ2l0YWlcIDsKK+eyl+iMtiA8IHNvY2hhXCA7CivlpJzkvJogPCB5YWthaVwgOwor57SU55CGIDwganVucmlcIDsKK+mbouWQiCA8IHJpZ291XCA7Civpm6Plj6UgPCBuYW5rdVwgOwor57ee5a2QIDwgZG9uc3VcIDsKK+mbouWPjSA8IHJpaGFuXCA7CivntKDniYcgPCBzb2hlblwgOwor6Kqk5LydIDwgZ29kZW5cIDsKK+ezuOebriA8IGl0b21lXCA7CivntbXmn4QgPCBlZ2FyYVwgOwor6KiY5b+1IDwga2luZW5cIDsKK+eEoeaWrSA8IG11ZGFuXCA7CivpmbDmg6ggPCBpbnNhblwgOwor54Sh5pWwIDwgbXVzdXVcIDsKK+e1teacrSA8IGVmdWRhXCA7CivmlbDkvqEgPCBzdXVrYVwgOwor57a/5biDIDwgbWVucHVcIDsKK+mbu+S9jSA8IGRlbicnaVwgOwor57K+57KXIDwgc2Vpc29cIDsKK+mbqOWFtyA8IGFtYWd1XCA7CivpnaggPCBla3Vib1wgOwor5o6p6JS9IDwgZW5wZWlcIDsKK+mbo+WEgCA8IG5hbmdpXCA7CivpmokgPCBnZXRzdVwgOwor6Kmm5ZCIIDwgc2hpYWlcIDsKK+maoOWjqyA8IGluc2hpXCA7CivlorPlopMgPCBmdW5ib1wgOwor6KGw6YGLIDwgc3VpdW5cIDsKK+mbheWPtyA8IGdhZ291XCA7CivoqaDlkJ8gPCBlaWdpblwgOwor5pS/5YuZIDwgc2VpbXVcIDsKK+WgtOacqyA8IGJhc3VlXCA7Civntr7lrZAgPCByaW56dVwgOwor54Sh5omNIDwgbXVzYWlcIDsKK+eCrOeBqyA8IGt5b2thXCA7CivnsbPoi7EgPCBiZWllaVwgOwor6Zqg5Z2KIDwgb25ib3VcIDsKK+mau+WPpSA8IHNla2t1XCA7CivnhKHmha4gPCBtdXJ5b1wgOwor5aCA5rGfIDwgaG9yaWVcIDsKK+mbouS7uyA8IHJpbmluXCA7CivntZDmnpwgPCBrZWtrYVwgOwor6KGw6LqvIDwgc3Vpa3VcIDsKK+mbo+S6iyA8IG5hbmppXCA7CivlnLDolLUgPCBqaXpvdVwgOwor54Sh5oOFIDwgbXVqb3VcIDsKK+mPiSA8IHNoeXV1XCA7CivpjqcgPCB5b3JvaVwgOwor6KmQ5Y+WIDwgc2FzaHVcIDsKK+mbheWFhCA8IGdha2VpXCA7CivpjKggPCBpa2FyaVwgOwor6YyYIDwgdHN1bXVcIDsKK+eEoeW/tSA8IG11bmVuXCA7Civlm57ot68gPCBrYWlyb1wgOwor6Kaq5pyoIDwgb3lhZ2lcIDsKK+mbkeS9nCA8IHpvdXNhXCA7CivpmZDluqYgPCBnZW5kb1wgOwor6Yi6IDwgZ3lva3VcIDsKK+WhgeaJkyA8IHJ1aWRhXCA7CivlnJ/olLUgPCBkb3pvdVwgOwor6KaL5qeYIDwgbWl5b3VcIDsKK+aVheS4uyA8IGtvc2h1XCA7Civopb/mrKcgPCBzZWlvdVwgOwor6KaH5qipIDwgaGFrZW5cIDsKK+eyl+esqCA8IHNvaG9uXCA7CivntKHmqZ8gPCBib3VraVwgOwor5Zuz6KejIDwgenVrYWlcIDsKK+WcsOiJsiA8IGppaXJvXCA7CivlnJ/okawgPCBkb3NvdVwgOwor5o6q572uIDwgc29jaGlcIDsKK+Wik+WcsCA8IGJvY2hpXCA7CivlnKjoi7EgPCB6YWllaVwgOwor57Oc54ibIDwgYmlyYW5cIDsKK+WgtOaJgCA8IGJhc2hvXCA7CivooZfot68gPCBnYWlyb1wgOwor5aGX5belIDwgdG9rb3VcIDsKK+maj+WToSA8IHp1aWluXCA7Civmi5fpn7MgPCB5b3VvblwgOwor6KaL5qCEIDwgbWliYWVcIDsKK+e1ueW4gyA8IGtlbnB1XCA7CivnhKHlsL0gPCBtdWppblwgOwor6Zmk5aSWIDwgam9nYWlcIDsKK+Wil+WToSA8IHpvdWluXCA7CivntbXlt7sgPCBlbWFraVwgOwor6KaL5pysIDwgbWlob25cIDsKK+mZouWkliA8IGluZ2FpXCA7Civnt4/li5kgPCBzb3VtdVwgOwor6ZeK5q2pIDwga2FwcG9cIDsKK+i6tSA8IG5lcmF1XCA7CivpmqDlhYMgPCBpbmdlblwgOwor54Sh5a6YIDwgbXVrYW5cIDsKK+WfuuacrCA8IGtpaG9uXCA7CivnspfnoKUgPCBhcmF0b1wgOwor5aCx5oGpIDwgaG91b25cIDsKK+e0oOadkCA8IHNvemFpXCA7Civnt4/lh7ogPCBzb3VkZVwgOwor5ZyS6Iq4IDwgZW5nZWlcIDsKK+i3myA8IGJpa2tvXCA7CivmjZXomZwgPCBob3J5b1wgOwor6Zqj5L+dIDwgcmlucG9cIDsKK+Wik+WPgiA8IGJvc2FuXCA7Civoo7jnnLwgPCByYWdhblwgOwor57W25a62IDwgemVra2VcIDsKK+iomOWPtyA8IGtpZ291XCA7Civmv77ntJkgPCByb3NoaVwgOwor5pGp5pCNIDwgbWFzb25cIDsKK+WhlOWphiA8IHRvdWJhXCA7CivntKDmlbAgPCBzb3N1dVwgOwor5aKT5YmNIDwgYm96ZW5cIDsKK+imquW+oSA8IG95YWdvXCA7Civngrnmkq0gPCB0ZW5wYVwgOwor6Ki05Lq6IDwgc29uaW5cIDsKK+ihl+ihoiA8IGdhaWt1XCA7CivplovmvJQgPCBrYWllblwgOwor57SL5pelIDwgbW9uYmlcIDsKK+mZpOWPtyA8IGpvZ291XCA7Civlm7Doi6YgPCBrb25rdVwgOwor6Zmk5Y67IDwgam9reW9cIDsKK+mZouWPtyA8IGluZ291XCA7CivpmorkvI0gPCB0YWlnb1wgOwor6J+76YW4IDwgZ2lzYW5cIDsKK+WcsOennyA8IGNoaXNvXCA7CivntLDlvq4gPCBzYWliaVwgOwor5oud6L6eIDwgaGFpamlcIDsKK+Wcn+euoSA8IGRva2FuXCA7CivloYrlnJ8gPCBrYWlkb1wgOwor6KOP55uuIDwgdXJhbWVcIDsKK+imluW6piA8IHNoaWRvXCA7Civnspfnha4gPCBhcmFuaVwgOwor6KaW5beuIDwgc2hpc2FcIDsKK+e0oOaApyA8IHN1am91XCA7CivntLDlt6UgPCBzYWlrdVwgOwor6Zmq5L6NIDwgYmFpamlcIDsKK+WgsOWgpCA8IGVudGVpXCA7Civol5wgPCBha2F6YVwgOwor5Zyn56CVIDwgYXNzYWlcIDsKK+eEoeWKuSA8IG11a291XCA7CivlnLDnm6QgPCBqaWJhblwgOwor6JaKIDwgYXphbWlcIDsKK+eBq+ahtiA8IGhpb2tlXCA7CivmjZXnuIQgPCBob2pvdVwgOwor57W25Y+lIDwgemVra3VcIDsKK+ewoee0oCA8IGthbnNvXCA7CivolKYgPCB0c3V0YVwgOwor6JSkIDwgYml0c3VcIDsKK+aKvOmAgSA8IG91c291XCA7CivlnJ/noIIgPCBkb3NoYVwgOwor54K55beuIDwgdGVuc2FcIDsKK+WgoeWhgSA8IGhvcnVpXCA7CivntJTluqYgPCBqdW5kb1wgOwor5Zyn55eVIDwgYWtrb25cIDsKK+iMqCA8IGliYXJhXCA7CivojJwgPCBha2FuZVwgOwor57K+5p+7IDwgc2Vpc2FcIDsKK+iMgCA8IGh1dHN1XCA7Civoi7YgPCBkZXRzdVwgOwor5oG15q+U5a+/IDwgZWJpc3VcIDsKK+WgtOWRsyA8IGJhYWppXCA7Civng4jlqaYgPCByZXBwdVwgOwor5o6I55SjIDwganVzYW5cIDsKK+eEoeS9kyA8IG11dGFpXCA7CivooYzohJogPCBhbmd5YVwgOwor54Sh5L2PIDwgbXVqdXVcIDsKK+aPuuabsyA8IHlvdWVpXCA7CivlnJ/nlKggPCBkb3lvdVwgOwor6J666Yi/IDwgcmFkZW5cIDsKK+eEoeS6uiA8IG11bmluXCA7CivlnJ/nk7YgPCBkb2JpblwgOwor6Ziy5YW3IDwgYm91Z3VcIDsKK+mVt+afhCA8IG5hZ2FlXCA7CivopZ/luqYgPCBraW5kb1wgOwor6KGj57OnIDwgaXJ5b3VcIDsKK+mYsuWCmSA8IGJvdWJpXCA7Civogq0gPCBkb3RzdVwgOwor57WQ5Y+lIDwga2Vra3VcIDsKK+iCiyA8IGFiYXJhXCA7CivmiZPpoIYgPCBkYWp1blwgOwor5pGC5a62IDwgc2Vra2VcIDsKK+WgheWbuiA8IGtlbmdvXCA7CivmiYvpoIYgPCB0ZWp1blwgOwor5omT6Zu7IDwgZGFkZW5cIDsKK+aPkOahiCA8IHRlaWFuXCA7CivlnKfngrkgPCBhdHRlblwgOwor6KOc5q2jIDwgaG9zZWlcIDsKK+aPoeaWpyA8IGFrdWZ1XCA7CivmiZPplosgPCBkYWthaVwgOwor6KaB5ZuzIDwgeW91enVcIDsKK+imgeWboCA8IHlvdWluXCA7Civnq7bppqwgPCBrZWliYVwgOwor5ryP6KmxIDwgcm91d2FcIDsKK+aOoeayuSA8IHNhaXl1XCA7CivloLTku6MgPCBiYWRhaVwgOwor57KX5pq0IDwgc29ib3VcIDsKK+WcsOa4qSA8IGNoaW9uXCA7Civoo4/mr5sgPCB1cmFrZVwgOwor6ZaA5omJIDwgbW9ucGlcIDsKK+mWgOaIuCA8IG1vbmtvXCA7CivnspIgPCB0c3VidVwgOwor5oqr6KaLIDwgaGlrZW5cIDsKK+evqSA8IGZ1cnVpXCA7Civngq3lm6MgPCB0YWRvblwgOwor5Zue55uuIDwga2FpbWVcIDsKK+a7hemHkSA8IG1la2tpXCA7CivnrY8gPCBpa2FkYVwgOwor5Zyw5q2pIDwgY2hpaG9cIDsKK+aJi+mMoCA8IHRlam91XCA7CivlnLDmrYwgPCBqaXV0YVwgOwor6ZaA5b6SIDwgbW9udG9cIDsKK+enqyA8IGpvdHN1XCA7Civlm7PniYggPCB6dWhhblwgOwor54Gr5bGxIDwga2F6YW5cIDsKK+ezu+WbsyA8IGtlaXp1XCA7CivlnKfmrbsgPCBhc3NoaVwgOwor5omL6YeRIDwgdGVraW5cIDsKK+Wcn+awkSA8IGRvbWluXCA7CivngrnliY0gPCB0ZW1hZVwgOwor5o6i5p+7IDwgdGFuc2FcIDsKK+e0jeWPlyA8IG5vdWp1XCA7CivmiYvphY0gPCB0ZWhhaVwgOwor5o6I5qipIDwganVrZW5cIDsKK+ethuiomCA8IGhpa2tpXCA7CivnspfmgqogPCBzb2FrdVwgOwor57Sg5L2TIDwgc290YWlcIDsKK+eznuWcnyA8IGZ1bmRvXCA7CivnlZnlrojlsYUgPCBydXN1aVwgOwor6ZW35bGFIDwgbmFnYWlcIDsKK+a8q+e9tSA8IG1hbmJhXCA7Civnq6/piq0gPCBoYXNlblwgOwor55aZIDwgZ2l0c3VcIDsKK+S4jeW+l+aJiyA8IGZ1ZXRlXCA7CivnrqrnrKUgPCB0YW5zdVwgOwor5Zuz5rOVIDwgenVob3VcIDsKK+a9pOebriA8IHVydW1lXCA7CivmuZbpnaIgPCBrb21lblwgOwor5o+a5bGLIDwgYWdleWFcIDsKK+ijj+aJiyA8IHVyYXRlXCA7Civonp/om74gPCBtZWlnYVwgOwor5Zyn5pS/IDwgYXNzZWlcIDsKK+aKvOe1tSA8IG9zaGllXCA7Civmua/piq0gPCB5dXNlblwgOwor6Zay5YW1IDwgZXBwZWlcIDsKK+ijnOW8piA8IGhvZ2VuXCA7CivooYznga8gPCBhbmRvblwgOwor5omL6KmxIDwgc2h1d2FcIDsKK+Wcp+aOkiA8IGFwcGFpXCA7CivllrbovrIgPCBlaW5vdVwgOwor5omL6KO9IDwgdGVzZWlcIDsKK+WfjuS4iyA8IGpvdWthXCA7CivnspflpKcgPCBzb2RhaVwgOwor5Zu65pyJIDwga295dXVcIDsKK+a4qemhlCA8IG9uZ2FuXCA7CivngorkuosgPCBzdWlqaVwgOwor54KO5LiKIDwgZW5qb3VcIDsKK+aNu+aMqyA8IG5lbnphXCA7CivmvJTnrpcgPCBlbnphblwgOwor5rip6aCGIDwgb25qdW5cIDsKK+eqgemjmyA8IHRvcHBpXCA7CivnhKHmhI/nvqkgPCBtdWlnaVwgOwor57Gz5a+/IDwgYmVpanVcIDsKK+aKlee2siA8IHRvYW1pXCA7CivmkI3kv50gPCBzb25wb1wgOwor6KOP5bGLIDwgdXJheWFcIDsKK+aOquWumiA8IHNvdGVpXCA7CivmiKboqJggPCBzZW5raVwgOwor5omL6JaEIDwgdGV1c3VcIDsKK+WcqOW6qyA8IHphaWtvXCA7Civnq6XoqbEgPCBkb3V3YVwgOwor6ZaT5LujIDwgbWFkYWlcIDsKK+Wcp+W3uyA8IGFra2FuXCA7CivmvKvnlLsgPCBtYW5nYVwgOwor5o+a5Y+lIDwgYWdla3VcIDsKK+ijnOWhqyA8IGhvdGVuXCA7Civnspflk4EgPCBzb2hpblwgOwor5Zyf5belIDwgZG9rb3VcIDsKK+Wbm+aXpSA8IHlva2thXCA7CivmiYvojZIgPCB0ZWFyYVwgOwor57Gz5aGpIDwgYmVpZW5cIDsKK+aOqeWjlSA8IGVuZ291XCA7CivlnKjlrrYgPCB6YWlrZVwgOwor6KOc5ZueIDwgaG9rYWlcIDsKK+alviA8IGhhem91XCA7CivmpKMgPCBzaGlkZVwgOwor6ZaA5LiLIDwgbW9ua2FcIDsKK+WZtOeBqyA8IGZ1bmthXCA7CivnspfliKkgPCBhcmFyaVwgOwor6KOP5ZywIDwgdXJhamlcIDsKK+a3q+miqCA8IGlucHV1XCA7CivmiZPogIUgPCBkYXNoYVwgOwor5qCDIDwgdG9jaGlcIDsKK+WcsOWjsCA8IGppZ29lXCA7Civlm73luqsgPCBrb2trb1wgOwor5p2BIDwgZWJ1cmlcIDsKK+ethuemjSA8IGhpa2thXCA7CivonLvom4kgPCB0b25ib1wgOwor6KGM5pa5IDwgeXVrdWVcIDsKK+ijuOWDjyA8IHJhem91XCA7Civlm7PlvaIgPCB6dWtlaVwgOwor77yw77yjIDwgcMSrc2jEq1wgOwor5omT57eaIDwgZGFzZW5cIDsKK+WcsOWbsyA8IGNoaXp1XCA7CivooajmhI8gPCBoeW91aVwgOwor5oqA56CUIDwgZ2lrZW5cIDsKK+aJi+e5lCA8IHRlb3JpXCA7Civoo7jkvZMgPCByYXRhaVwgOwor5Zuz5belIDwgenVrb3VcIDsKK+ihsOW+riA8IHN1aWJpXCA7Civoo4/lkI0gPCB1cmFuYVwgOwor5Zyf5aGKIDwgZG9rYWlcIDsKK+aJi+e3tCA8IHRlcmVuXCA7CivlnJ/loYEgPCBkb3J1aVwgOwor5Zyf5aGAIDwgZG9iZWlcIDsKK+WUkOmfsyA8IHRvdW9uXCA7Civlm6DlvqogPCBpbmp1blwgOwor57C/5aSWIDwgYm9nYWlcIDsKK+aOoeWQpiA8IHNhaWhpXCA7CivmkqUgPCBiYWNoaVwgOwor5oqA55ujIDwgZ2lrYW5cIDsKK+epuui8uCA8IGt1dXl1XCA7Civoo5zlhYUgPCBob2p1dVwgOwor5Z2R5YSSIDwga291anVcIDsKK+WbuuWumiA8IGtvdGVpXCA7CivmjJnmjqogPCBreW9zb1wgOwor5omT566XIDwgZGFzYW5cIDsKK+aOnyA8IG9raXRlXCA7CivlnJ/lmqIgPCBkb25vdVwgOwor5ry45qyhIDwgemVuamlcIDsKK+epuui3ryA8IGt1dXJvXCA7Civlm73lqIEgPCBrb2t1aVwgOwor5r2c5pmCIDwgc2VuamlcIDsKK+aHpCA8IGNoeXV1XCA7Civoo5zku7sgPCBob25pblwgOwor5ryr5q2pIDwgbWFucG9cIDsKK+a8geeBqyA8IGd5b2thXCA7Civmh4foqbEgPCBrb253YVwgOwor56m66LK7IDwga3V1aGlcIDsKK+ibruiqniA8IGJhbmdvXCA7CivmiK/ntbUgPCB6YXJlZVwgOwor5Zuj5a2QIDwgZGFuZ29cIDsKK+Wcn+WPsCA8IGRvZGFpXCA7Civmtrzpm6ggPCByeW91dVwgOwor5Z2K5Li7IDwgYm91enVcIDsKK+WWtue5lSA8IGVpemVuXCA7Civnp7vpp5AgPCBpY2h1dVwgOwor6JmO6a2aIDwgb2tvemVcIDsKK+eul+acqCA8IHNhbmdpXCA7CivmiYvnm7ggPCB0ZXNvdVwgOwor5Zyn5YCSIDwgYXR0b3VcIDsKK+a1t+mwuyA8IGFuYWdvXCA7Civlto0gPCBzaGlodVwgOwor5oaC6LqrIDwgdWtpbWlcIDsKK+aJueeCuSA8IGhpdGVuXCA7CivlnJ/lgbYgPCBkb2d1dVwgOwor6KGM5a6uIDwgYW5ndXVcIDsKK+WzoCA8IHRvdWdlXCA7Civlso8gPCBndXdhblwgOwor5ZOA6aGYIDwgYWlnYW5cIDsKK+Wcn+S6uiA8IGRvamluXCA7CivlrbAgPCBpenVyZVwgOwor5oSb6aSQIDwgYWlzYW5cIDsKK+WshyA8IGt1d2FpXCA7Civom4fooYwgPCBkYWtvdVwgOwor5rWF6buEIDwgYXNhZ2lcIDsKK+aFtuizgCA8IGtlaWdhXCA7CivooZflm7MgPCBnYWl6dVwgOwor5aO3IDwgdHN1Ym9cIDsKK+aJk+eCuSA8IGRhdGVuXCA7CivmvI/mlpcgPCByb3V0b1wgOwor5rih6Ii5IDwgdG9zZW5cIDsKK+a3q+ihjCA8IGlua291XCA7CivlnpQgPCBzaHlvdVwgOwor5Z6PIDwgcm90c3VcIDsKK+WbriA8IG90b3JpXCA7CivmuKnnv5IgPCBzYXJhaVwgOwor56+A5ammIDwgc2VwcHVcIDsKK+WWneegtCA8IGthcHBhXCA7Civll6cgPCBnYXJvblwgOwor5ZeWIDwgc2h1aHVcIDsKK+WSjOmiqCA8IHdhZnV1XCA7Civonrrml4sgPCByYXNlblwgOwor56if6K2wIDwgcmluZ2lcIDsKK+aGguiZniA8IHl1dWd1XCA7CivmiZPms5UgPCBkYWhvdVwgOwor5ZOYIDwgc2Fzb3VcIDsKK+aJtuahkSA8IGZ1c291XCA7CivomZrovp4gPCBreW9qaVwgOwor6KGb5YW1IDwgZWloZWlcIDsKK+aEmumIjSA8IGd1ZG9uXCA7CivpvKDovKkgPCBzb2hhaVwgOwor5ZCLIDwgaW5jaGlcIDsKK+WbnuS7mCA8IGthaWZ1XCA7CivljY0gPCBtYW5qaVwgOwor6byg6LmKIDwgc29rZWlcIDsKK+WMgSA8IG1vbm1lXCA7Civmiormj6EgPCBoYWFrdVwgOwor5rih57GzIDwgdG9iZWlcIDsKK+aLs+WbuiA8IGdlbmtvXCA7CivmipXmiZMgPCB0b3VkYVwgOwor6bqS6bqfIDwga2lyaW5cIDsKK+aGguiLpiA8IHl1dWt1XCA7Civll5/mrY4gPCBzYXRhblwgOwor5YSyIDwgbW91a2VcIDsKK+a1t+i+uiA8IHVtaWJlXCA7CivmhJvou4ogPCBhaXNoYVwgOwor5omT5qOSIDwgZGFib3VcIDsKK+WBnyA8IGt1d2F1XCA7CivlgIwgPCBrdXdhblwgOwor5oKq6a2UIDwgYWt1bWFcIDsKK+a5r+eBjCA8IHl1a2FuXCA7CivmiYvmobYgPCB0ZW9rZVwgOwor56iy6I23IDwgaW5hcmlcIDsKK+a1pui+uiA8IHVyYWJlXCA7Civlkozph5EgPCB3YWtpblwgOwor6bqd6aaZIDwgamFrb3VcIDsKK+mIjem6uyA8IGRvbm1hXCA7CivmgqrppqwgPCBha3VtZVwgOwor5omL5pysIDwgdGVob25cIDsKK+S5hCA8IHNoaW1lXCA7CivmuJvno6ggPCBnZW5tYVwgOwor56qB56C0IDwgdG9wcGFcIDsKK+a1t+ixmiA8IGlydWthXCA7Civom4fnrqEgPCBqYWthblwgOwor5ZOA6KmpIDwgYWlzaGlcIDsKK+aJk+aVsCA8IGRhc3V1XCA7CivmhJroq5YgPCBndXJvblwgOwor5omL5panIDwgdGVvbm9cIDsKK+aLneWPlyA8IGhhaWp1XCA7CivmtarosrsgPCByb3VoaVwgOwor5omL5pWwIDwgdGVzdXVcIDsKK+aIuOadvyA8IHRvaXRhXCA7CivmvKLlnJ8gPCBrYW5kb1wgOwor5oSa6KiIIDwgZ3VrZWlcIDsKK+mJm+mMmCA8IGVuc3VpXCA7Civnq4vmtL4gPCByaXBwYVwgOwor5oSa6KaLIDwgZ3VrZW5cIDsKK+aDuei1tyA8IGpha2tpXCA7CivlkbPphoIgPCBtaXJpblwgOwor5ZG96YGLIDwgbWVpdW5cIDsKK+enmOioiCA8IGhpa2VpXCA7CivomIfpgKMgPCBzb3JlblwgOwor5oSa6KGMIDwgZ3Vrb3VcIDsKK+epuueWjiA8IGt1dXNvXCA7CivmvIHlpKsgPCBneW9mdVwgOwor5oud5YW3IDwgaGFpZ3VcIDsKK+mKgOiyqCA8IGdpbmthXCA7Civnq6/mnKwgPCBoYWhvblwgOwor5rWB6LuiIDwgcnV0ZW5cIDsKK+a1tOihoyA8IHlva3VpXCA7CivmvIHloLQgPCBneW9iYVwgOwor5oSP6KGoIDwgaWh5b3VcIDsKK+aIr+aWhyA8IGdpYnVuXCA7CivmtrLogqUgPCBla2loaVwgOwor56m655CGIDwga3V1cmlcIDsKK+a6gOacnyA8IG1hbmtpXCA7CivmuZbmsLQgPCBrb3N1aVwgOwor5ZKM6K6aIDwgd2FzYW5cIDsKK+err+aVsCA8IGhhc3V1XCA7CivlmJjlrZcgPCB1c29qaVwgOwor5oiQ5qGIIDwgc2VpYW5cIDsKK+azoumgrSA8IGhhdG91XCA7CivmhJvolLUgPCBhaXpvdVwgOwor6bqm6YWSIDwgYmlpcnVcIDsKK+WQjemmrCA8IG1laWJhXCA7CivlkozoqJMgPCB3YWt1blwgOwor5ZKM6KejIDwgd2FrYWlcIDsKK+azoumdoiA8IGhhbWVuXCA7CivmiYvlvZMgPCB0ZWF0ZVwgOwor56iy56mCIDwgaW5haG9cIDsKK+m8u+e3kiA8IGhhbmFvXCA7Civlkozoo70gPCB3YXNlaVwgOwor6Yuk57C+IDwgam9yZW5cIDsKK+WSjOijhSA8IHdhc291XCA7Civmi4Xkv50gPCB0YW5wb1wgOwor5ZKM6KOBIDwgd2FzYWlcIDsKK+aGguebriA8IHVraW1lXCA7CivmuKnmua8gPCBvbnRvdVwgOwor5ZCM6Z+zIDwgZG91b25cIDsKK+aGrueEtiA8IGJ1emVuXCA7CivmgqrpgYsgPCBha3V1blwgOwor5oe45p62IDwga2VuZ2FcIDsKK+aCo+mDqCA8IGthbmJ1XCA7Civpipjoj5MgPCBtZWlrYVwgOwor6buS6KGjIDwga29rdWVcIDsKK+aCn+mBkyA8IGdvZG91XCA7CivlkbPoposgPCBhamltaVwgOwor54Sh5oSP5ZGzIDwgbXVpbWlcIDsKK+a4qeawtCA8IG9uc3VpXCA7CivpvLvnq68gPCBiaXRhblwgOwor5rih5rSLIDwgdG95b3VcIDsKK+aEm+iCsiA8IGFpaWt1XCA7Civmu4XlpJogPCBtZXR0YVwgOwor5rer54ylIDwgaW53YWlcIDsKK+a8geWFtyA8IGd5b2d1XCA7Civmgqrot68gPCBha3Vyb1wgOwor5oOF6KmxIDwgam91d2FcIDsKK+eorueariA8IHNodWhpXCA7CivmhJrogIUgPCBndXNoYVwgOwor5omH5a2QIDwgc2Vuc3VcIDsKK+mHjummrCA8IG5vdW1hXCA7CivnpoXoqbEgPCB6ZW53YVwgOwor5oiR5oWiIDwgZ2FtYW5cIDsKK+WPpOmiqCA8IGtvZnV1XCA7CivnqbrmsJcgPCBrdXVraVwgOwor56m65q+NIDwga3V1Ym9cIDsKK+WUvua2siA8IGRhZWtpXCA7CivmuoDluqcgPCBtYW56YVwgOwor5Za25bqtIDwgZWl0ZWlcIDsKK+iZmuepuiA8IGtva3V1XCA7Civmt7XmupAgPCBlbmdlblwgOwor5ZKM6Ii5IDwgd2FzZW5cIDsKK+ekvumBiyA8IHNoYXVuXCA7CivmibnliKQgPCBoaWhhblwgOwor5omL5Z6iIDwgdGVha2FcIDsKK+aCquioiCA8IGFra2VpXCA7Civmibnlh4YgPCBoaWp1blwgOwor6byT56ulIDwga29kb3VcIDsKK+WQj+mBkyA8IHJvZG91XCA7CivmipXkuI4gPCB0b3V5b1wgOwor5oe45oOzIDwga2Vzb3VcIDsKK+WPl+mboyA8IGp1bmFuXCA7CivmiLjlpJYgPCBrb2dhaVwgOwor5oe65oKUIDwgemFuZ2VcIDsKK+mLs+eJqSA8IGltb25vXCA7CivmuKnmmpYgPCBvbmRhblwgOwor5rih5p2lIDwgdG9yYWlcIDsKK+aBpemDqCA8IGNoaWJ1XCA7Civmh7jlv7UgPCBrZW5lblwgOwor5oKq6KGMIDwgYWtrb3VcIDsKK+a3oea5liA8IHRhbmtvXCA7CivmiJDlsLEgPCBqb3VqdVwgOwor56ef56iOIDwgc296ZWlcIDsKK+WWhOaEjyA8IHplbicnaVwgOwor5Y+k6YqtIDwga29zZW5cIDsKK+erpeWlsyA8IGRvdWpvXCA7CivpvKDnlqsgPCBzb2VraVwgOwor5rWB572qIDwgcnV6YWlcIDsKK+WXmuWSvSA8IG9ldHN1XCA7CivmganotaYgPCBvbnNoYVwgOwor5omL5YuiIDwgdGV6ZWlcIDsKK+aEj+WbuuWcsCA8IGlrb2ppXCA7Civmt5jmsbAgPCB0b3V0YVwgOwor5rSS6JC9IDwgc2hhcmVcIDsKK+a1t+eggiA8IGthaXNhXCA7Civlj7DovKogPCBkYWl3YVwgOwor5rmW5bK4IDwga29nYW5cIDsKK+a0tee+jiA8IGp1bmJpXCA7CivnrKzkuowgPCBkYWluaVwgOwor56S66KuHIDwgamlkYW5cIDsKK+mHjumDjiA8IHlhcm91XCA7Civms5Xoqp4gPCBob3Vnb1wgOwor5ZCI6K2wIDwgZ291Z2lcIDsKK+aHh+aEjyA8IGtvbicnaVwgOwor5oeK5oKpIDwgb3Vub3VcIDsKK+WQjeiqiSA8IG1laXlvXCA7CivmhJrnl7QgPCBndWNoaVwgOwor5rC06baPIDwga3VpbmFcIDsKK+WPiemKgyA8IHNhanV1XCA7CivmuKnmg4UgPCBvbmpvdVwgOwor5oSb55SoIDwgYWl5b3VcIDsKK+aHiOaAoCA8IGdldGFpXCA7CivmhJrnlJ8gPCBndXNlaVwgOwor6YeI6L+mIDwgc2hha2FcIDsKK+a5r+WeoiA8IHl1YWthXCA7CivmgYvot68gPCBrb2lqaVwgOwor5rS+57GzIDwgaGFiZWlcIDsKK+azleiiqyA8IGhhcHBpXCA7Civol43oibIgPCBhaWlyb1wgOwor56uv5Y2IIDwgdGFuZ29cIDsKK+iZmueEoSA8IGt5b211XCA7CivmiYvku6MgPCB0ZWRhaVwgOwor5Y+X6LqrIDwgdWtlbWlcIDsKK+a4oeW+oSA8IHRvZ3lvXCA7CivmsLTprZQgPCBzdWltYVwgOwor6YeO6LajIDwgeWFzaHVcIDsKK+W/q+mfsyA8IGthaW9uXCA7CivmiYDkvZwgPCBzaG9zYVwgOwor5Y+k6LGqIDwga29nb3VcIDsKK+mHkeiyqCA8IGtpbmthXCA7CivmhJvniqwgPCBhaWtlblwgOwor56Ov6L66IDwgaXNvYmVcIDsKK+m8u+axgSA8IGJpanV1XCA7Civmg7DnnKAgPCBkYW1pblwgOwor5oKq5721IDwgYWt1YmFcIDsKK+aIkOWPpSA8IHNlaWt1XCA7CivmiYDkuI4gPCBzaG95b1wgOwor5Y+k6Ku6IDwga29nZW5cIDsKK+eosuacqCA8IGluYWdpXCA7Civlj6ToqJMgPCBrb2t1blwgOwor56m65bejIDwgYWtpc3VcIDsKK+aCque4gSA8IGFrdWVuXCA7CivmuKnlrZggPCBvbnpvblwgOwor5Y+X6KybIDwganVrb3VcIDsKK+WPoeimpyA8IGVpcmFuXCA7CivljbHpm6MgPCBraW5hblwgOwor5b6h6L6e5YSAIDwgb2ppZ2lcIDsKK+W/hemgiCA8IGhpc3N1XCA7Civlj43oqp4gPCBoYW5nb1wgOwor6by75qC5IDwgYmlrb25cIDsKK+WPjeiotCA8IGhhbnNvXCA7Civpi63mlY8gPCBlaWJpblwgOwor5oSb5rayIDwgYWlla2lcIDsKK+WQjeiIlyA8IG1laWhvXCA7CivmtL7nlJ8gPCBoYXNlaVwgOwor5ZaH5Y+tIDwgcmFwcGFcIDsKK+mNvOWMuyA8IGhhcmlpXCA7CivmgKroqJ0gPCBrZWdlblwgOwor6YeO6JuuIDwgeWFiYW5cIDsKK+WNsOmRkSA8IGlua2FuXCA7CivmsZrovrEgPCBvam9rdVwgOwor6YqD54GrIDwganV1a2FcIDsKK+aEmuawkSA8IGd1bWluXCA7CivllqrkuLsgPCBtb3NodVwgOwor5Y2X6Zi/IDwgbmFuJydhXCA7Civpu4Tnj60gPCBvdWhhblwgOwor5ZCN576pIDwgbWVpZ2lcIDsKK+awkemcgCA8IG1pbmp1XCA7CivomZrmoIQgPCBreW9laVwgOwor5raF5qeDIDwgbmVoYW5cIDsKK+a3u+WtlyA8IHNvZWppXCA7Civlk6HmlbAgPCBpbnp1dVwgOwor5rWu5rCXIDwgdXdha2lcIDsKK+azoue0iyA8IGhhbW9uXCA7CivnpoXnlLsgPCB6ZW5nYVwgOwor56m05aC0IDwgYW5hYmFcIDsKK+WSjOa8oiA8IHdha2FuXCA7CivmhI/mrLIgPCBpeW9rdVwgOwor6YeO6I+cIDwgeWFzYWlcIDsKK+WPpOiMtiA8IGtvY2hhXCA7CivnpZ7npL4gPCBqaW5qYVwgOwor6buE54eQIDwgb3VyaW5cIDsKK+a1heeArCA8IGFzYXNlXCA7CivlvqHpm6MgPCBnb25hblwgOwor6YeO6I2JIDwgeWFzb3VcIDsKK+W+oemZsCA8IG9rYWdlXCA7CivompXluqcgPCBzYW56YVwgOwor5rip5Y6aIDwgb25rb3VcIDsKK+mKgOazoiA8IGdpbnBhXCA7CivpioDmsrMgPCBnaW5nYVwgOwor5oWV5oOFIDwgYm9qb3VcIDsKK+WSjOa0iyA8IHdheW91XCA7CivlkI3nsL8gPCBtZWlib1wgOwor5reL5be0IDwgcmlucGFcIDsKK+aFh+aHgyA8IGluZ2luXCA7Civlv7XoqqYgPCBuZW5qdVwgOwor5oSb5pu4IDwgYWlzaG9cIDsKK+ayv+e3miA8IGVuc2VuXCA7Civph5HogqUgPCBraW5waVwgOwor5Y6f6KKrIDwgZ2VucGlcIDsKK+iVl+iNiSA8IHJvc291XCA7CivmsJfph40gPCBraW9tb1wgOwor5Y2X6YOoIDwgbmFuYnVcIDsKK+a3q+WjsiA8IGluYmFpXCA7Civnp5jmnKwgPCBoaWhvblwgOwor5oSa5pinIDwgZ3VtYWlcIDsKK+a1gea1qiA8IHJ1cm91XCA7CivmsLTot68gPCBzdWlyb1wgOwor5rCX6YWNIDwga2VoYWlcIDsKK+iWrOeglCA8IHlhZ2VuXCA7Civlj5fog44gPCBqdXRhaVwgOwor5b6u6Ya6IDwgYmlrdW5cIDsKK+WNiumHjCA8IGhhbnJpXCA7CivnqLLlrZAgPCBpbmFnb1wgOwor5q+U6aGeIDwgaGlydWlcIDsKK+a1geawkSA8IHJ1bWluXCA7CivljYPph4wgPCBzZW5yaVwgOwor5ZCM56WWIDwgZG91c29cIDsKK+mJhOeBqyA8IHRla2thXCA7CivnoLTpoZQgPCBoYWdhblwgOwor5Y2R6L+RIDwgaGlraW5cIDsKK+W+oemHnCA8IG9rYW1hXCA7CivlvqHph5EgPCBva2FuZVwgOwor5rWm5puyIDwgdXJhd2FcIDsKK+mHjee4gSA8IGp1dWVuXCA7Civpg6jpppYgPCBidXNodVwgOwor6YO96Zu7IDwgdG9kZW5cIDsKK+aEmuaMmSA8IGd1a3lvXCA7Civlk4DmhqsgPCBhaWJpblwgOwor5ZOA5oaQIDwgYWlyZW5cIDsKK+W9qembsiA8IHNhaXVuXCA7Civpg6jpoZ4gPCBidXJ1aVwgOwor6JSs6I+cIDwgc29zYWlcIDsKK+WSjOacrCA8IHdhaG9uXCA7CivmtrLlrokgPCBla2lhblwgOwor56m65L2QIDwga3V1c2FcIDsKK+WPl+e0jSA8IGp1bm91XCA7Civlk4Dmg4UgPCBhaWpvdVwgOwor5ZOA5oK8IDwgYWl0b3VcIDsKK+WSjOabuCA8IHdhc2hvXCA7CivmhoLlk60gPCB1a2luZVwgOwor5Y+X57KJIDwganVmdW5cIDsKK+mDqOmdoiA8IGJ1bWVuXCA7Civnn67pto8gPCBjaGFib1wgOwor5q+r6YeQIDwgZ291cmlcIDsKK+aEm+aDsyA8IGFpc291XCA7Civpu4TmpYogPCB0c3VnZVwgOwor6Yuz5Z6LIDwgaWdhdGFcIDsKK+W+ruizpCA8IGJpc2VuXCA7CivlkozmlocgPCB3YWJ1blwgOwor6JaE552AIDwgdXN1Z2lcIDsKK+azoueKtiA8IGhham91XCA7CivoloTnm64gPCB1c3VtZVwgOwor5b6S6LypIDwgdG9oYWlcIDsKK+mHjOeoiyA8IHJpdGVpXCA7Civom4fkvZMgPCBqYXRhaVwgOwor56i95Y+kIDwga2Vpa29cIDsKK+aEmuW8nyA8IGd1dGVpXCA7CivmhJrlvIQgPCBndXJvdVwgOwor6Jar54WZIDwga3VuZW5cIDsKK+ayu+eZkiA8IGNoaXl1XCA7CivmgrLmrY4gPCBoaXRhblwgOwor5rGa6IetIDwgb3NodXVcIDsKK+WNkeiogCA8IGhpZ2VuXCA7CivmsJHoqbEgPCBtaW53YVwgOwor5q+U6YeNIDwgaGlqdXVcIDsKK+emjeaguSA8IGtha29uXCA7Civph47noLIgPCB5YWhvdVwgOwor5oSJ5b+rIDwgeXVrYWlcIDsKK+epj+WBpSA8IG9ua2VuXCA7Civljp/nvqkgPCBnZW5naVwgOwor6Zi/5byl6ZmAIDwgYW1pZGFcIDsKK+ayueeUsCA8IHl1ZGVuXCA7CivlvL7pm6ggPCBkYW4nJ3VcIDsKK+mDvemCkSA8IHRveXV1XCA7CivljYroo7ggPCBoYW5yYVwgOwor5b6h6KmgIDwgZ3lvZWlcIDsKK+mHjeebriA8IG9tb21lXCA7CivnoILpmLIgPCBzYWJvdVwgOwor5ZGq5paHIDwganVtb25cIDsKK+W+oeimpyA8IGdvcmFuXCA7CivlkJDngIkgPCB0b3NoYVwgOwor5rer5LmxIDwgaW5yYW5cIDsKK+elnuatpiA8IGppbm11XCA7CivlkIjngrkgPCBnYXRlblwgOwor5oSb5a2rIDwgYWlzb25cIDsKK+a1heaJiyA8IGFzYWRlXCA7CivompXlhbcgPCBzYW5ndVwgOwor5oOw5oCnIDwgZGFzZWlcIDsKK+WxheWQiOmBkyA8IGlhZG91XCA7CivmsrnnirYgPCB5dWpvdVwgOwor6YeO55SfIDwgeWFzZWlcIDsKK+azoua1qiA8IGhhcm91XCA7Civok67oj68gPCByZW5nZVwgOwor5oSb5am/IDwgYWlzZWlcIDsKK+W/jeiLpiA8IG5pbmt1XCA7CivpioPluqcgPCBqdXV6YVwgOwor5Y6f57C/IDwgZ2VuYm9cIDsKK+mKgOW6pyA8IGdpbnphXCA7CivmhJvlprsgPCBhaXNhaVwgOwor56iO5ZCPIDwgemVpcmlcIDsKK+aEm+WlvSA8IGFpa291XCA7CivlirTpn7MgPCByb3VvblwgOwor6YeO542jIDwgeWFqdXVcIDsKK+mHjueMqiA8IHlhY2hvXCA7CivmsLTogqUgPCBzdWloaVwgOwor5Yuf6YeRIDwgYm9raW5cIDsKK+mFuOe0oCA8IHNhbnNvXCA7Civph47niqwgPCB5YWtlblwgOwor5bu26auEIDwgZW56dWlcIDsKK+eojuWLmSA8IHplaW11XCA7Civmgqrml6UgPCBha3ViaVwgOwor56ia5YWQIDwgY2hpZ29cIDsKK+W/jeiAhSA8IG5pbmphXCA7CivpvLvlhoUgPCBiaW5haVwgOwor5Y+l54K5IDwga3V0ZW5cIDsKK+egtOirhyA8IGhhZGFuXCA7CivlkozlsJogPCBvc2hvdVwgOwor5b2T6LevIDwgdG91cm9cIDsKK+aDheaEmyA8IGpvdWFpXCA7Civpg6josqEgPCBidXphaVwgOwor6YmE5omJIDwgdGVwcGlcIDsKK+a1t+WbsyA8IGthaXp1XCA7CivmhJrllY8gPCBndW1vblwgOwor5rC057SgIDwgc3Vpc29cIDsKK+WTgOWPtyA8IGFpZ291XCA7CivmgrLmhqQgPCBoaWZ1blwgOwor6bq75bm5IDwgb2dhcmFcIDsKK+WNsOexoCA8IGlucm91XCA7Civnp7vlhaUgPCBpbnl1dVwgOwor5rOw5paXIDwgdGFpdG9cIDsKK+aEm+WQnyA8IGFpZ2luXCA7Civph43mua8gPCBvbW95dVwgOwor5qy66aiZIDwgZ2loZW5cIDsKK+W+oeiFuSA8IG9uYWthXCA7CivmgrLmgYsgPCBoaXJlblwgOwor5Y+l5rOVIDwga3Vob3VcIDsKK+W+rue9qiA8IGJpemFpXCA7Civljp/nlLsgPCBnZW5nYVwgOwor5Y+k5rOVIDwga29ob3VcIDsKK+iZmuWBvSA8IGt5b2dpXCA7Civli7LoqJggPCBrdW5raVwgOwor6YeR5rOiIDwga2lucGFcIDsKK+a1t+WPgiA8IGlyaWtvXCA7Civnp5jlj7IgPCBoaXNoaVwgOwor6YKq6YGTIDwgamFkb3VcIDsKK+WOs+eItiA8IGdlbnB1XCA7CivpioDlnLAgPCBnaW5qaVwgOwor56S+5pivIDwgc2hhemVcIDsKK+a1t+WMuiA8IGthaWt1XCA7CivljbDnqI4gPCBpbnplaVwgOwor6YeN5rK5IDwganV1eXVcIDsKK+efrui6ryA8IHdhaWt1XCA7Civmgqrlv4MgPCBvc2hpblwgOwor5rGX55a5IDwgYXNlbW9cIDsKK+aCquW+kiA8IGFrdXRvXCA7CivnobzntKAgPCBob3Vzb1wgOwor5Y+X5rSXIDwganVzZW5cIDsKK+mKgOWZqCA8IGdpbmtpXCA7Civlv6vnmZIgPCBrYWl5dVwgOwor6YeR5q2vIDwga2luYmFcIDsKK+efrei3ryA8IHRhbnJvXCA7CivpgaDpn7MgPCB0b29uZVwgOwor5b6u57SwIDwgYmlzYWlcIDsKK+WLg+i1tyA8IGJva2tpXCA7CivmhJrlg6cgPCBndXNvdVwgOwor56aF5a62IDwgemVua2VcIDsKK+WKoOmFjSA8IGthaGFpXCA7Civlk4HkvY0gPCBoaW4nJ2lcIDsKK+asp+miqCA8IG91ZnV1XCA7CivmtYTlnJ8gPCBqb3Vkb1wgOwor5pyq6YCa5aWzIDwgb2Jva29cIDsKK+aAkua/pCA8IGRvdG91XCA7Civmg7nlj6UgPCBqYWtrdVwgOwor56Oo5resIDwgbWFzYWlcIDsKK+awuOecoCA8IGVpbWluXCA7CivlvLfoqLQgPCBnb3Vzb1wgOwor5ZKE5ZefIDwgdG9zc2FcIDsKK+atpumBkyA8IGJ1ZG91XCA7Civlj43mr5QgPCBoYW5waVwgOwor5Y2w55u4IDwgaW56b3VcIDsKK+asoemhniA8IGppcnVpXCA7Civlj43mra8gPCBzb3BwYVwgOwor5Ymq6ZmkIDwgc2Vuam9cIDsKK+mGuOavjSA8IGpvdWJvXCA7CivmrabovrogPCBidWhlblwgOwor5bqn6auYIDwgemFrb3VcIDsKK+WSjOWQjSA8IHdhbWVpXCA7CivmhJvkurogPCBhaWppblwgOwor5ZKM5ZCIIDwgd2Fnb3VcIDsKK+WNiuerryA8IGhhbnBhXCA7CivoloTml6UgPCB1c3ViaVwgOwor5oSa5Lq6IDwgZ3VqaW5cIDsKK+W/nOeUqCA8IG91eW91XCA7CivlkKblv5wgPCBpeWFvdVwgOwor5q+N6ImmIDwgYm9rYW5cIDsKK+ayueaWrSA8IHl1ZGFuXCA7Civmr43oiLkgPCBib3NlblwgOwor5Y+k5p2lIDwga29yYWlcIDsKK+WPpOabuCA8IGtvc2hvXCA7Civph47mnKsgPCBub3p1ZVwgOwor6YeO5pybIDwgeWFib3VcIDsKK+ato+i3ryA8IHNlaXJvXCA7CivpibHljLogPCBrb3VrdVwgOwor5rOi5b2iIDwgaGFrZWlcIDsKK+WJjemdniA8IHplbnBpXCA7CivmsZrmv4EgPCBvZGFrdVwgOwor56KB55ukIDwgZ29iYW5cIDsKK+W8mOiqkyA8IGd1emVpXCA7Civmta7kuJYgPCB1a2l5b1wgOwor5bqn6aCtIDwgemF0b3VcIDsKK+WQkOaBryA8IHRvaWtpXCA7CivmgqrlpbMgPCBha3Vqb1wgOwor5q+b57mUIDwga2VvcmlcIDsKK+axn+a5liA8IGdvdWtvXCA7CivmganmhJsgPCBvbicnYWlcIDsKK+aCquWkoiA8IGFrdW11XCA7CivljJfnt68gPCBob2t1aVwgOwor6JaE5omLIDwgdXN1ZGVcIDsKK+aBqeaBtSA8IG9ua2VpXCA7CivmsLjniaIgPCBlaXJvdVwgOwor5Y2I552hIDwgZ29zdWlcIDsKK+a1geWIkSA8IHJ1a2VpXCA7CivpioDkvY0gPCBnaW4nJ2lcIDsKK+WNl+eUuyA8IG5hbmdhXCA7Civlm7Lngonoo48gPCBpcm9yaVwgOwor5byB6K23IDwgYmVuZ29cIDsKK+WLpOiLpiA8IGtpbmt1XCA7CivliqnoqIAgPCBqb2dvblwgOwor5rOV5bqmIDwgaGF0dG9cIDsKK+aDheWRsyA8IGpvdW1pXCA7CivlkKblrpogPCBoaXRlaVwgOwor5b2x57W1IDwga2FnZWVcIDsKK+WQjOW6pyA8IGRvdXphXCA7CivnoLTntrsgPCBoYXRhblwgOwor5rS+5YW1IDwgaGFoZWlcIDsKK+emheWRsyA8IHplbm1pXCA7Civmgqrlm6AgPCBha3VpblwgOwor6JKU57W1IDwgbWFraWVcIDsKK+WMleeuuCA8IGhpY2hvXCA7CivljYrnlLAgPCBoYW5kYVwgOwor5oGL5oWVIDwgcmVuYm9cIDsKK+mHjeaJiyA8IG9tb2RlXCA7Civmraboo4UgPCBidXNvdVwgOwor5Y2R54ylIDwgaGl3YWlcIDsKK+egtOeulyA8IGhhc2FuXCA7CivlkZHlkJAgPCBkb250b1wgOwor5rK55b2pIDwgeXVzYWlcIDsKK+WPoeaFriA8IGVpcnlvXCA7CivmtYHkurogPCBydW5pblwgOwor5b6h55K9IDwgZ3lvamlcIDsKK+WPluaJiyA8IHRvdHRlXCA7CivlkI3lrpsgPCBuYWF0ZVwgOwor552A6aGeIDwga2lydWlcIDsKK+atjOirliA8IGthcm9uXCA7Civph43mhJsgPCBqdXVhaVwgOwor5Y+w5bqnIDwgZGFpemFcIDsKK+WJsuizpiA8IHdhcHB1XCA7CivnnJ/pr4kgPCBtYWdvaVwgOwor5q6L6IqxIDwgemFua2FcIDsKK+m7hOS6uiA8IG91amluXCA7CivmsLTmuKkgPCBzdWlvblwgOwor6YGL6Ly4IDwgdW4nJ3l1XCA7Civol6nlhJIgPCBoYW5qdVwgOwor6bqX5Y+lIDwgcmVpa3VcIDsKK+iRieiMtiA8IGhhZGphXCA7CivlvqHnjokgPCBvdGFtYVwgOwor6YGT6LevIDwgZG91cm9cIDsKK+mBi+i7oiA8IHVudGVuXCA7CivliJ3pmaMgPCB1aWppblwgOwor6YCj6Y6WIDwgcmVuc2FcIDsKK+mBjei3ryA8IGhlbnJvXCA7CivpiZvkuLkgPCBlbnRhblwgOwor5rC05rOzIDwgc3VpZWlcIDsKK+azpeWcnyA8IGRlaWRvXCA7Civlj4vmhJsgPCB5dXVhaVwgOwor5ZCM5aScIDwgZG91eWFcIDsKK+mHjeW6piA8IGp1dWRvXCA7CivliY3ovKogPCBtYWV3YVwgOwor5rK75a6JIDwgY2hpYW5cIDsKK+mIjeWZqCA8IGRvbmtpXCA7CivmgKfmhJsgPCBzZWlhaVwgOwor56CC57W1IDwgc3VuYWVcIDsKK+aymeW8pSA8IHNoYW1pXCA7Civnpa3lhbcgPCBzYWlndVwgOwor6YWN5rWBIDwgaGFpcnVcIDsKK+WIiOmZpCA8IGdhaWpvXCA7CivmgKjmgaggPCBlbmtvblwgOwor6YGg6KaLIDwgdG9vbWlcIDsKK+iNt+mmrCA8IG5pdW1hXCA7CivnnJ/poZQgPCBtYWdhb1wgOwor5Yip6YiNIDwgcmlkb25cIDsKK+aAneaFlSA8IHNoaWJvXCA7CivmgKDmg7AgPCB0YWlkYVwgOwor5Yip6YeRIDwgcmlraW5cIDsKK+mFlOatqSA8IHN1aWhvXCA7Civlh7npnaIgPCBvdW1lblwgOwor5ZCf5ZGzIDwgZ2lubWlcIDsKK+atpuiKuCA8IGJ1Z2VpXCA7CivlvpLnhLYgPCB0b3plblwgOwor6YeR5a2QIDwga2luc3VcIDsKK+WNmOavlCA8IHRhbnBpXCA7CivpgY7oqIAgPCBrYWdvblwgOwor56S+5ZOhIDwgc2hhaW5cIDsKK+aCquS6iyA8IGFrdWppXCA7CivlvannlLsgPCBzYWlnYVwgOwor6Jar5YyWIDwga3Vua2FcIDsKK+elluWFiCA8IHNvc2VuXCA7CivpiI3ljJYgPCBkb25rYVwgOwor5Yil6YCUIDwgYmV0dG9cIDsKK+WPsOWgtCA8IGRhaWJhXCA7CivoloTlnLAgPCB1c3VqaVwgOwor5Y2w5p2QIDwgaW56YWlcIDsKK+W5s+mHjiA8IGhlaXlhXCA7Civmga/lkLkgPCBpYnVraVwgOwor5ZCN5Y+lIDwgbWVpa3VcIDsKK+atpuiAhSA8IG11c2hhXCA7CivnpL7li5kgPCBzaGFtdVwgOwor5Y6f5oSPIDwgZ2VuJydpXCA7Civlj6TlorMgPCBrb2Z1blwgOwor6YeO5aSpIDwgbm90ZW5cIDsKK+WQiOWQpiA8IGdvdWhpXCA7CivlirTntYQgPCByb3Vzb1wgOwor6YeO5aSWIDwgeWFnYWlcIDsKK+W6p+irhyA8IHphZGFuXCA7CivlvJfntKAgPCBmdXNzb1wgOwor5rOV5YuZIDwgaG91bXVcIDsKK+W+oeS4lui+niA8IG9zZWppXCA7CivnoLTniYcgPCBoYWhlblwgOwor5ZCQ5YmkIDwgdG96YWlcIDsKK+W+oeauvyA8IGdvdGVuXCA7CivljLrmsJEgPCBrdW1pblwgOwor55+zIDwga29rdVwgOwor6L+rIDwgaGFrdVwgOwor6L+EIDwgbWFkZVwgOwor5b+DIDwgc2hpblwgOwor6L68IDwga29tdVwgOwor5b60IDwgY2hvdVwgOwor5b6zIDwgdG9rdVwgOwor6L6xIDwgam9rdVwgOwor556tIDwgcnlvdVwgOwor556sIDwgc2h1blwgOwor5b6pIDwgZnVrdVwgOwor5b28IDwga2FyZVwgOwor5b25IDwgeWFrdVwgOwor5b2xIDwga2FnZVwgOwor552mIDwgYm9rdVwgOwor5by+IDwgdGFtYVwgOwor5by3IDwga3lvdVwgOwor6LyvIDwgc2h1dVwgOwor55yJIDwgbWF5dVwgOwor6LyDIDwga2FrdVwgOwor55u0IDwgaGl0YVwgOwor6LuSIDwgbm9raVwgOwor5buCIDwgc2hvdVwgOwor55q/IDwgc2FyYVwgOwor5bq1IDwgaW9yaVwgOwor55quIDwga2F3YVwgOwor5bqtIDwgbml3YVwgOwor5bqXIDwgbWlzZVwgOwor5bqVIDwgc29rb1wgOwor6LqRIDwgdGVraVwgOwor6LqKIDwgY2h1dVwgOwor5bqKIDwgeXVrYVwgOwor55qEIDwgbWF0b1wgOwor5bm5IDwgbWlraVwgOwor5bmzIDwgaGlyYVwgOwor6LmgIDwgc2VraVwgOwor55mWIDwga3VzZVwgOwor5bmFIDwgaGFiYVwgOwor5bi4IDwgdG93YVwgOwor5biMIDwgbWFyZVwgOwor5biDIDwgbnVub1wgOwor5be7IDwgbWFraVwgOwor6LazIDwgYXNoaVwgOwor6LaKIDwgZXRzdVwgOwor55WZIDwgcnl1dVwgOwor55SzIDwgc2FydVwgOwor55SfIDwgbmFtYVwgOwor5bSWIDwgZ2FrZVwgOwor5bSOIDwgc2FraVwgOwor5bOwIDwgbWluZVwgOwor6LOKIDwgem9rdVwgOwor6LODIDwgY2hpblwgOwor5bGxIDwgeWFtYVwgOwor5bGRIDwga3V6dVwgOwor6LGGIDwgbWFtZVwgOwor55C0IDwga290b1wgOwor5a++IDwgdHN1aVwgOwor5a+6IDwgdGVyYVwgOwor5a+MIDwgdG9taVwgOwor5a+CIDwgc2FiaVwgOwor5a6/IDwgeWFkb1wgOwor5a6uIDwgbWl5YVwgOwor5a6kIDwgbXVyb1wgOwor546WIDwga3l1dVwgOwor546JIDwgZGFtYVwgOwor5a6JIDwgeWFzdVwgOwor5a6IIDwgbW9yaVwgOwor5a6FIDwgdGFrdVwgOwor5a24IDwgZ2FrdVwgOwor5a2rIDwgbWFnb1wgOwor542oIDwgZG9rdVwgOwor542EIDwgZ29rdVwgOwor54yrIDwgbmVrb1wgOwor6KyhIDwgdXRhaVwgOwor6KyOIDwgbmF6b1wgOwor5auBIDwgeW9tZVwgOwor6KqwIDwgZGFyZVwgOwor5am/IDwgbXVrb1wgOwor54mpIDwgbW9ub1wgOwor54mbIDwgdXNoaVwgOwor6KmVIDwgaHlvdVwgOwor5amGIDwgYmFiYVwgOwor6KizIDwgd2FrZVwgOwor54iGIDwgYmFrdVwgOwor5aerIDwgaGltZVwgOwor5aaZIDwgbXlvdVwgOwor54aKIDwga3VtYVwgOwor54WkIDwgc3VzdVwgOwor54S8IDwgeWFraVwgOwor5aSrIDwgb3R0b1wgOwor5aSiIDwgeXVtZVwgOwor5aScIDwgeW9ydVwgOwor5aSWIDwgaG9rYVwgOwor6KO+IDwgc3Vzb1wgOwor5aOxIDwgaWNoaVwgOwor5aOTIDwgYXRzdVwgOwor5aOBIDwga2FiZVwgOwor54K6IDwgdGFtZVwgOwor54KtIDwgc3VtaVwgOwor6KKWIDwgc29kZVwgOwor5aKTIDwgaGFrYVwgOwor5aGpIDwgc2hpb1wgOwor5aGeIDwgc29rdVwgOwor6KGTIDwgc3ViZVwgOwor6KGMIDwgZ3lvdVwgOwor54CdIDwgcmVraVwgOwor5aCAIDwgaG9yaVwgOwor5r+BIDwgZGFrdVwgOwor5r+AIDwgZ2VraVwgOwor5Z6jIDwga2FraVwgOwor5Z6LIDwga2F0YVwgOwor6J2JIDwgc2VtaVwgOwor5Z2CIDwgc2FrYVwgOwor6by7IDwgaGFuYVwgOwor5ZySIDwgc29ub1wgOwor5Zu9IDwga3VuaVwgOwor6bu0IDwga2FiaVwgOwor6buZIDwgbW9rdVwgOwor6buSIDwga3Vyb1wgOwor6buNIDwga2liaVwgOwor6JuHIDwgaGViaVwgOwor5rq6IDwgZGVraVwgOwor6bqmIDwgbXVnaVwgOwor6JqkIDwgbm9taVwgOwor5rqiIDwgaXRzdVwgOwor5rqdIDwgbWl6b1wgOwor6JmOIDwgdG9yYVwgOwor6be5IDwgdGFrYVwgOwor6JekIDwgZnVqaVwgOwor6JeBIDwgd2FyYVwgOwor5ZaJIDwgbm9kb1wgOwor5rW0IDwgeW9rdVwgOwor5rWcIDwgaGFtYVwgOwor5ZSvIDwgdGFkYVwgOwor5rSeIDwgaG9yYVwgOwor5rSbIDwgcmFrdVwgOwor5ZSWIDwgb3NoaVwgOwor6JOuIDwgaGFzdVwgOwor6bOpIDwgaGF0b1wgOwor6bOlIDwgdG9yaVwgOwor5rOlIDwgZG9yb1wgOwor5rOiIDwgbmFtaVwgOwor6JOLIDwgZnV0YVwgOwor5rK8IDwgbnVtYVwgOwor6JK7IDwgamFrdVwgOwor6JKyIDwgZ2FtYVwgOwor5rKiIDwgc2F3YVwgOwor6bGIIDwgdGFyYVwgOwor6JC9IDwgb2NoaVwgOwor5rC0IDwgbWl6dVwgOwor5rCRIDwgdGFtaVwgOwor5Y+zIDwgbWlnaVwgOwor5Y+kIDwgZnVydVwgOwor5q+NIDwgaGFoYVwgOwor6I+KIDwga2lrdVwgOwor5Y+LIDwgdG9tb1wgOwor5Y+IIDwgbWF0YVwgOwor5q6/IDwgZG9ub1wgOwor5q67IDwga2FyYVwgOwor6I6iIDwgc2F5YVwgOwor5Y6fIDwgaGFyYVwgOwor6I2JIDwga3VzYVwgOwor5Y2HIDwgbWFzdVwgOwor6ayxIDwgdXRzdVwgOwor6ayaIDwgaGlnZVwgOwor5YyZIDwgc2FqaVwgOwor5YyXIDwgaG9rdVwgOwor6IyOIDwga3VraVwgOwor6IyFIDwga2F5YVwgOwor5YyCIDwgbmlvdVwgOwor6au3IDwgbWFnZVwgOwor6auqIDwga2FtaVwgOwor6IuUIDwga29rZVwgOwor6aqoIDwgaG9uZVwgOwor5YqpIDwgc3VrZVwgOwor5YmyIDwgd2FyaVwgOwor5qmfIDwgaGF0YVwgOwor5YmKIDwgc2FrdVwgOwor6Ii5IDwgZnVuZVwgOwor5Yi6IDwgdG9nZVwgOwor5qiqIDwgeW9rb1wgOwor5YiIIDwga2FyaVwgOwor5qiFIDwgbW9taVwgOwor6aeSIDwga29tYVwgOwor6IeNIDwgaGVzb1wgOwor5YasIDwgZnV5dVwgOwor6IadIDwgaGl6YVwgOwor6IacIDwgbWFrdVwgOwor6aaWIDwga3ViaVwgOwor5YaGIDwgbWFydVwgOwor5YaFIDwgdWNoaVwgOwor5YWxIDwgZG9tb1wgOwor5qWtIDwgd2F6YVwgOwor5YWtIDwgcm9rdVwgOwor5YWlIDwgbnl1dVwgOwor5YWDIDwgbW90b1wgOwor5YSYIDwgbWFtYVwgOwor6ISHIDwgd2FraVwgOwor6ISCIDwgeWFuaVwgOwor6IO4IDwgbXVuZVwgOwor5qOaIDwgdGFuYVwgOwor6IKdIDwga2ltb1wgOwor6IKYIDwgaGlqaVwgOwor5YKYIDwga2FzYVwgOwor6IKMIDwgaGFkYVwgOwor6IKJIDwgbmlrdVwgOwor5qKDIDwgdGVrb1wgOwor5YG9IDwgbmlzZVwgOwor5qGQIDwga2lyaVwgOwor5qGDIDwgbW9tb1wgOwor5qGBIDwga2V0YVwgOwor6ICzIDwgbWltaVwgOwor6aCsIDwgaG9ob1wgOwor5qCXIDwga3VyaVwgOwor6aCDIDwgZ29yb1wgOwor5p+aIDwgeXV6dVwgOwor5L6hIDwgYXRhaVwgOwor5p2WIDwgdHN1ZVwgOwor5p2RIDwgbXVyYVwgOwor5p2PIDwgYW56dVwgOwor5p2JIDwgc3VnaVwgOwor5Ly9IDwgdG9naVwgOwor5pytIDwgZnVkYVwgOwor6ZuyIDwga3Vtb1wgOwor5LuyIDwgbmFrYVwgOwor6ZuqIDwgeXVraVwgOwor6ZuMIDwgbWVzdVwgOwor5Lq6IDwgaGl0b1wgOwor6ZqZIDwgc3VraVwgOwor5pqHIDwgaGltYVwgOwor5LmLIDwga29yZVwgOwor5pmCIDwgdG9raVwgOwor5pi8IDwgaGlydVwgOwor57imIDwgdGF0ZVwgOwor5pilIDwgaGFydVwgOwor5LiIIDwgZGFrZVwgOwor57iEIDwgbmF3YVwgOwor6ZeHIDwgeWFtaVwgOwor5peFIDwgdGFiaVwgOwor57a/IDwgd2F0YVwgOwor57W5IDwga2ludVwgOwor57WEIDwga3VtaVwgOwor57SQIDwgaGltb1wgOwor57SFIDwgYmVuaVwgOwor57KlIDwga2F5dVwgOwor57KJIDwga29uYVwgOwor57GzIDwga29tZVwgOwor57GgIDwga2Fnb1wgOwor6ZCYIDwga2FuZVwgOwor5o+6IDwgeXVyaVwgOwor5o+PIDwgYnlvdVwgOwor566xIDwgaGFrb1wgOwor566hIDwga3VkYVwgOwor6Y21IDwga2FnaVwgOwor6Y2LIDwgbmFiZVwgOwor562LIDwgc3VqaVwgOwor562JIDwgbmFkb1wgOwor562IIDwgaGF6dVwgOwor562GIDwgZnVkZVwgOwor56y5IDwgc2FzYVwgOwor5oyHIDwgeXViaVwgOwor56u5IDwgdGFrZVwgOwor56qTIDwgbWFkb1wgOwor6YqRIDwgenVrdVwgOwor56m6IDwgc29yYVwgOwor5omHIDwgb3VnaVwgOwor5oi/IDwgZnVzYVwgOwor6Yi0IDwgc3V6dVwgOwor56iuIDwgdGFuZVwgOwor5oiRIDwgd2FyZVwgOwor56iNIDwgeWF5YVwgOwor56iLIDwgaG9kb1wgOwor6YedIDwgaGFyaVwgOwor6YecIDwga2FtYVwgOwor6YeYIDwga3VnaVwgOwor56a/IDwgaGFnZVwgOwor5oapIDwgaWtvaVwgOwor6YWSIDwgc2FrZVwgOwor5oWLIDwgemFtYVwgOwor5oORIDwgd2FrdVwgOwor5oKqIDwgd2FydVwgOwor56KnIDwgaGVraVwgOwor5oGlIDwgaGFqaVwgOwor6YCaIDwgdHN1dVwgOwor56CCIDwgc3VuYVwgOwor5b+c5o+0IDwgb3VlblwgOwor5Y+k5ZmoIDwga29raVwgOwor5YeN6ZuoIDwgdG91dVwgOwor5b6S5q2pIDwgdG9ob1wgOwor5Y+v5ZCmIDwga2FoaVwgOwor5b6Q5q2pIDwgam9ob1wgOwor5bqH6K23IDwgaGlnb1wgOwor6YeO5Za2IDwgeWFlaVwgOwor5rOV5LyaIDwgaG91ZVwgOwor5ZCM5L2NIDwgZG91aVwgOwor5Y2x5oe8IDwga2lndVwgOwor5Y+l5Y+lIDwga3VrdVwgOwor5Y+j5Y+XIDwga3VqdVwgOwor5rK75YW3IDwgamlndVwgOwor5Ya36ZuoIDwgcmVpdVwgOwor5b2T54K6IDwgdG91aVwgOwor5Y+z5YWaIDwgdXRvdVwgOwor6YG657K+IDwgaXNlaVwgOwor6YeO5Y2RIDwgeWFoaVwgOwor5Y+z5YK+IDwgdWtlaVwgOwor5Yy75pu4IDwgaXNob1wgOwor6YGV6IOMIDwgaWhhaVwgOwor5oCo5ZefIDwgZW5zYVwgOwor6bia5ZOlIDwgaW5rb1wgOwor56C05q+AIDwgaGFraVwgOwor5Y+N5ZCQIDwgaGVkb1wgOwor5Y+N5Y+kIDwgaG9nb1wgOwor5Y+k5YSAIDwga29naVwgOwor5Y2w5bqmIDwgaW5kb1wgOwor6YG656i/IDwgaWtvdVwgOwor55u46YGVIDwgc291aVwgOwor5bqn6IelIDwgemFnYVwgOwor5biw6YCUIDwga2l0b1wgOwor5YaG6aGxIDwgZW5yb1wgOwor56OB5aC0IDwgamliYVwgOwor5Y+k5LqLIDwga29qaVwgOwor5rC45a+/IDwgZWlqdVwgOwor5b6A5pmCIDwgb3VqaVwgOwor56OB5ZyfIDwgamlkb1wgOwor6bSJ54mHIDwgYWhlblwgOwor5Y2w5a2XIDwgaW5qaVwgOwor6YGV566XIDwgaXNhblwgOwor5Y+Z5LqLIDwgam9qaVwgOwor56OB5ZmoIDwgamlraVwgOwor5b6u5b6uIDwgYmliaVwgOwor5biw6LevIDwga2lyb1wgOwor5b6h5oSPIDwgZ3lvaVwgOwor56CC5rSyIDwgc2FzdVwgOwor5Y2I5b6MIDwgZ29nb1wgOwor5q+A5qOEIDwga2lraVwgOwor6YGg56WWIDwgZW5zb1wgOwor5b6M5omLIDwgZ290ZVwgOwor5bmy6JGJIDwgaGliYVwgOwor5byV54GrIDwgaW5rYVwgOwor5b6h5b2xIDwgZ29laVwgOwor5qi56ZmwIDwganVpblwgOwor6Iux6Z+zIDwgZWlvblwgOwor5rGa5ZCNIDwgb21laVwgOwor56OB5Yy6IDwgamlrdVwgOwor6YKq5rerIDwgamFpblwgOwor6L+C6KiAIDwgdWdlblwgOwor56OB5YyWIDwgamlrYVwgOwor5Yy75birIDwgaXNoaVwgOwor5b285oiRIDwgaGlnYVwgOwor5Y2x5Z2QIDwga2l6YVwgOwor5qmf6YGLIDwga2l1blwgOwor5Yqp5ryUIDwgam9lblwgOwor6YKq5rCXIDwgamFraVwgOwor5byl5qyhIDwgeWFqaVwgOwor5b6A5b6AIDwgb3VvdVwgOwor5YiA6IeqIDwgdG9qaVwgOwor5b6h5a2QIDwgbWlrb1wgOwor5Yy75a6YIDwgaWthblwgOwor5Yqg5ripIDwga2FvblwgOwor6YGO55aOIDwga2Fzb1wgOwor5b+c5YufIDwgb3Vib1wgOwor6YG65ryPIDwgaXJvdVwgOwor5b6M5a62IDwgZ29rZVwgOwor5Yy75aSnIDwgaWRhaVwgOwor5q605omTIDwgb3VkYVwgOwor5q2p5q2mIDwgaG9idVwgOwor6YGV54qvIDwgaWhhblwgOwor5YaG6LKoIDwgZW5rYVwgOwor5rCX5ZGzIDwgZ2ltaVwgOwor5rCX5ZCIIDwga2lhaVwgOwor5biD6KGNIDwgZnVlblwgOwor6a2U6a2FIDwgbWFtaVwgOwor5b6M5aC0IDwgZ29iYVwgOwor56C05a62IDwgYmFrYVwgOwor5rCX5YyWIDwga2lrYVwgOwor5b6B5aS3IDwgc2VpaVwgOwor5rC05L2NIDwgc3VpaVwgOwor5YaG6KaPIDwgZW5raVwgOwor55uI6JmnIDwgZWlraVwgOwor5b6h5ZCNIDwgbWluYVwgOwor6YOo5bGLIDwgaGV5YVwgOwor6Iux6LKoIDwgZWlrYVwgOwor6YGO5rihIDwga2F0b1wgOwor6YGV5rOVIDwgaWhvdVwgOwor5q635a+MIDwgaW5wdVwgOwor6Iyj6JOZIDwgZ296YVwgOwor6Iux6KqeIDwgZWlnb1wgOwor6YGL5rKzIDwgdW5nYVwgOwor55+l5oG1IDwgY2hpZVwgOwor6YGL5rCXIDwgdW5raVwgOwor6Ly46LSPIDwgeXVlaVwgOwor5Yui5a2QIDwgc2Vrb1wgOwor5YyF5ZuyIDwgaG91aVwgOwor5b6A5Y+kIDwgb3Vrb1wgOwor5Yqg5oyBIDwga2FqaVwgOwor5byn5bqmIDwga29kb1wgOwor6YO95Za2IDwgdG9laVwgOwor5q+U5ZapIDwgaGl5dVwgOwor6YG65paHIDwgaWJ1blwgOwor6YCi54CsIDwgb3VzZVwgOwor5Ye655uuIDwgZGVtZVwgOwor5q2m5oqAIDwgYnVnaVwgOwor5bqn5rSyIDwgemFzdVwgOwor5b6h5LujIDwgbWl5b1wgOwor5Yy75LyaIDwgaWthaVwgOwor5b6X5L2TIDwgZXRhaVwgOwor5b2x5Y2wIDwgZWlpblwgOwor5YaG6IieIDwgZW5idVwgOwor6bWc5YygIDwgdWpvdVwgOwor5q+N5Y2wIDwgYm9pblwgOwor6YC45qmfIDwgaWtraVwgOwor6YOo5ZOhIDwgYnVpblwgOwor55qu6IaaIDwgaGlmdVwgOwor5Yi35q+bIDwgaGFrZVwgOwor5q2m5bqrIDwgYnVrb1wgOwor5qmf57iBIDwga2llblwgOwor56CC5ZyfIDwgc2Fkb1wgOwor6YG65oGoIDwgaWtvblwgOwor6Iqx6K2cIDwga2FmdVwgOwor5q+U5L6hIDwgaGlrYVwgOwor5q2m5a62IDwgYnVrZVwgOwor5qiq6IelIDwgb3VnYVwgOwor6ayx6YeRIDwgdWtvblwgOwor5q+U5LiYIDwgYmlrdVwgOwor6YO95LiLIDwgdG9rYVwgOwor55+i5aC0IDwgeWFiYVwgOwor6YGV5oayIDwgaWtlblwgOwor5bu25a+/IDwgZW5qdVwgOwor55m+6IiMIDwgbW96dVwgOwor5q2m5aSrIDwgYnVmdVwgOwor56CC5YipIDwgamFyaVwgOwor6YOo5LiLIDwgYnVrYVwgOwor55695aWzIDwgZ296ZVwgOwor5Ye65q2vIDwgZGViYVwgOwor6YGO5bqmIDwga2Fkb1wgOwor5q2m5ZmoIDwgYnVraVwgOwor6YGL5bqnIDwgdW56YVwgOwor5qyh5bqPIDwgamlqb1wgOwor5qih57OKIDwgbW9rb1wgOwor6Iqx6Iq9IDwga2FnYVwgOwor5bmz5piTIDwgaGVpaVwgOwor5q2p5ZCIIDwgYnVhaVwgOwor55aO6Z+zIDwgc29pblwgOwor5qi555quIDwganVoaVwgOwor5bqc5bqrIDwgZnVrb1wgOwor6YG65ZOBIDwgaWhpblwgOwor55aR6ZuyIDwgZ2l1blwgOwor6YG65ZG9IDwgaW1laVwgOwor5q2k5YemIDwga29rb1wgOwor5q2m5YW3IDwgYnVndVwgOwor5Yeg5qGIIDwga2lhblwgOwor5q2m5YKZIDwgYnViaVwgOwor6L+95omLIDwgb3R0ZVwgOwor55Ww6aKoIDwgaWZ1dVwgOwor55Ww6aGeIDwgaXJ1aVwgOwor5Yip5bexIDwgcmlrb1wgOwor5q2m5LqLIDwgYnVqaVwgOwor6I2K5qOYIDwgYmFyYVwgOwor6a2U576FIDwgbWFyYVwgOwor6YG65L2TIDwgaXRhaVwgOwor6YG65LydIDwgaWRlblwgOwor6YGO5Y67IDwga2Frb1wgOwor5qyn5YyWIDwgb3VrYVwgOwor55aO6YGgIDwgc29lblwgOwor55aR6L6eIDwgZ2lqaVwgOwor5bem5rS+IDwgc2FoYVwgOwor6Im2576OIDwgZW5iaVwgOwor6ami6aasIDwgcm9iYVwgOwor5bKQ6ZicIDwgZ2lmdVwgOwor5bqn5ZOhIDwgemFpblwgOwor5rC444CFIDwgZWllaVwgOwor55yf5biGIDwgbWFob1wgOwor55u45omLIDwgYWl0ZVwgOwor5bqm5ZCIIDwgZG9haVwgOwor6YGV5L6LIDwgaXJlaVwgOwor5Yip5ZmoIDwgcmlraVwgOwor6Imy57W1IDwgaXJvZVwgOwor5buD5L2NIDwgaGFpaVwgOwor5biD5pa9IDwgZnVzZVwgOwor6Ieq6LK7IDwgamloaVwgOwor6Ieq6LKgIDwgamlmdVwgOwor5YWl5rGfIDwgaXJpZVwgOwor6ai+6aasIDwgcmFiYVwgOwor6Iqx546LIDwga2FvdVwgOwor5qOL6ZmiIDwga2lpblwgOwor5bi35bmEIDwgaWFrdVwgOwor6Iux5q2mIDwgZWlidVwgOwor55Ww6LajIDwgaXNodVwgOwor5YW35qGIIDwgZ3VhblwgOwor6Ieq6KGbIDwgamllaVwgOwor55Ww6KuWIDwgaXJvblwgOwor55u45a2QIDwgYWlrb1wgOwor5bqc5LiLIDwgZnVrYVwgOwor6a2U546LIDwgbWFvdVwgOwor5Yip5LuWIDwgcml0YVwgOwor6aiO6aasIDwga2liYVwgOwor5qmf5b2xIDwga2llaVwgOwor55m65p2hIDwgYmFuZVwgOwor5YaF5oSPIDwgbmFpaVwgOwor5qmf5bqPIDwga2lqb1wgOwor5bid5aiBIDwgdGVpaVwgOwor6L+C5ZueIDwgdWthaVwgOwor6YCA5L2NIDwgdGFpaVwgOwor5qKF6ZuoIDwgYmFpdVwgOwor5qih5pOsIDwgbW9naVwgOwor5YaG5bynIDwgZW5rb1wgOwor55ey55e6IDwgbWFoaVwgOwor55uu5ZywIDwgbWVqaVwgOwor5YaG5bqnIDwgZW56YVwgOwor6Iqx5qi5IDwga2FqdVwgOwor55S76K2cIDwgZ2FmdVwgOwor5qmf5a6cIDwga2lnaVwgOwor5bC+6YOoIDwgYmlidVwgOwor55uy5ZSWIDwgbW91YVwgOwor5L6d6aGYIDwgaWdhblwgOwor5L6d6aC8IDwgaXJhaVwgOwor55aR576pIDwgZ2lnaVwgOwor55yf5Ly8IDwgbWFuZVwgOwor5qOL6K2cIDwga2lmdVwgOwor5YWQ5oivIDwgamlnaVwgOwor55yf5LiKIDwgbWF1ZVwgOwor5biM5ZyfIDwga2lkb1wgOwor6IeZ6ISCIDwgZW5qaVwgOwor5YGD6IelIDwgZW5nYVwgOwor6IOh6bq7IDwgZ29tYVwgOwor5qCX6bygIDwgcmlzdVwgOwor5a+66ZmiIDwgamlpblwgOwor55uu5YemIDwgbWVkb1wgOwor6aeE6aasIDwgZGFiYVwgOwor5YWs5a62IDwga3VnZVwgOwor6ayx5rCXIDwgdWtraVwgOwor6Lu95piTIDwga2VpaVwgOwor6Iux5a2XIDwgZWlqaVwgOwor5L+a6KqeIDwgcmlnb1wgOwor5bGg6JiHIDwgdG9zb1wgOwor6aeG6ZmkIDwga3Vqb1wgOwor5a+d6ZaTIDwgbmVtYVwgOwor55uu5LiKIDwgbWV1ZVwgOwor6Lyq5beuIDwgd2FzYVwgOwor5L2Z6Z+7IDwgeW9pblwgOwor55Ww56uvIDwgaXRhblwgOwor5bel5ZCIIDwgZ3VhaVwgOwor6Iqx5bqPIDwga2Fqb1wgOwor5bGx576KIDwgeWFnaVwgOwor6Ium5ZyfIDwga3Vkb1wgOwor5a+/6LOAIDwganVnYVwgOwor6Ieq55S7IDwgamlnYVwgOwor55+z5paR6a2aIDwgdWd1aVwgOwor6Iux5ZKMIDwgZWl3YVwgOwor55S757SgIDwgZ2Fzb1wgOwor5qKo6IqxIDwgcmlrYVwgOwor55Sx57iBIDwgeXVlblwgOwor6a2a5bqnIDwgdW96YVwgOwor5YW35YKZIDwgZ3ViaVwgOwor6LaK6Ki0IDwgZXNzb1wgOwor5YSS5a62IDwganVrYVwgOwor6LW36Ki0IDwga2lzb1wgOwor5L+a6ICzIDwgcmlqaVwgOwor5a626YGLIDwga2F1blwgOwor55Ww54q2IDwgaWpvdVwgOwor5qWa5qWaIDwgc29zb1wgOwor6aWR6aSTIDwga2lnYVwgOwor55qH5L2NIDwga291aVwgOwor5a626LevIDwgaWVqaVwgOwor6a2U5aWzIDwgbWFqb1wgOwor6aWC6aOpIDwgdWRvblwgOwor5a2X6Z+zIDwgamlvblwgOwor5a+E6KqeIDwga2lnb1wgOwor6ICz6by7IDwgamliaVwgOwor6aST6ay8IDwgZ2FraVwgOwor6IOk6KOUIDwgaW5laVwgOwor5YSy5L2NIDwgY2hvaVwgOwor6Ieq5qOEIDwgeWFrZVwgOwor55CG6Z2eIDwgcmloaVwgOwor5YSq5L2NIDwgeXV1aVwgOwor5qCE6KqJIDwgZWl5b1wgOwor6LyU5L2QIDwgaG9zYVwgOwor5LyK6YGUIDwgZGF0ZVwgOwor55Ww5qeYIDwgaXlvdVwgOwor5L2Z6JiKIDwgeW91blwgOwor5a626JqKIDwgaWVrYVwgOwor5bC855SrIDwgamlob1wgOwor5YGJ5p2QIDwgaXphaVwgOwor55Ww5pysIDwgaWhvblwgOwor5qSN5pyoIDwgdWVraVwgOwor6IO86IOdIDwgdGFrb1wgOwor6Iiq5a6HIDwga291dVwgOwor55aR5oe8IDwgZ2lrdVwgOwor55Ww5pWwIDwgaXN1dVwgOwor55aR5oOnIDwgZ2lndVwgOwor6a2B5YGJIDwga2FpaVwgOwor5L+d54ShIDwgaG9tdVwgOwor6Ieq5oSbIDwgamlhaVwgOwor5qCE6I+vIDwgZWlnYVwgOwor5YGJ5oyZIDwgaWt5b1wgOwor5YGJ5omNIDwgaXNhaVwgOwor55CG6LevIDwgcmlyb1wgOwor6LOm6KmgIDwgZnVlaVwgOwor55WP5pWsIDwgaWtlaVwgOwor5L+d5ripIDwgaG9vblwgOwor55S75p62IDwgZ2FrYVwgOwor5LqM6ZmiIDwgbmlpblwgOwor6Ieq5bexIDwgamlrb1wgOwor6LGq6ZuoIDwgZ291dVwgOwor5LuY6K2wIDwgZnVnaVwgOwor5L+d5q+NIDwgaG9ib1wgOwor5a6J6IelIDwgYW5nYVwgOwor5Lqc6Yi0IDwgYXJlaVwgOwor5LuY6KiYIDwgZnVraVwgOwor5bCP54GrIDwgYm95YVwgOwor6aeE55uuIDwgZGFtZVwgOwor5bGL5qC5IDwgeWFuZVwgOwor5L6d54S2IDwgaXplblwgOwor55Ww5a2YIDwgaXpvblwgOwor5LqM6YOoIDwgbmlidVwgOwor6aKo6ZuoIDwgZnV1dVwgOwor5qWV5YaGIDwgZGFlblwgOwor5YG95Y2wIDwgZ2lpblwgOwor55Ww5aSJIDwgaWhlblwgOwor55WZ5a6IIDwgcnVzdVwgOwor5L2N55u4IDwgaXNvdVwgOwor5LiA6byTIDwgaWtrb1wgOwor55So5oSPIDwgeW91aVwgOwor6ICz6KqeIDwgamlnb1wgOwor55Ww5Z+fIDwgaWlraVwgOwor5L+d5oyBIDwgaG9qaVwgOwor6IiI5LqcIDwga291YVwgOwor55Om5pavIDwgZ2FzdVwgOwor6Ieq5YipIDwgamlyaVwgOwor5L2Z54WZIDwgeW9lblwgOwor5LiL6aeEIDwgZ2V0YVwgOwor5LiL6aasIDwgZ2ViYVwgOwor5YGH5ZCNIDwga2FuYVwgOwor55Ww5ZCMIDwgaWRvdVwgOwor6IC26JiHIDwgeWFzb1wgOwor55Gg55KDIDwgcnVyaVwgOwor5YGJ5YuyIDwgaWt1blwgOwor5LmF6YGgIDwga3VvblwgOwor6Ieq5L2ZIDwgaml5b1wgOwor5LiN6ZuiIDwgZnVyaVwgOwor6Ieq5LuWIDwgaml0YVwgOwor576O6Z+zIDwgYmlvblwgOwor5a2Q562JIDwga29yYVwgOwor5LiL6ZmiIDwga2FpblwgOwor5LiN6ZaTIDwgYnVtYVwgOwor55S75ZugIDwgZ2FpblwgOwor5L2Z5rOiIDwgeW9oYVwgOwor55WP5Y+LIDwgaXl1dVwgOwor5bCP5omLIDwga290ZVwgOwor6Laj5oSPIDwgc2h1aVwgOwor5YGJ5Lq6IDwgaWppblwgOwor5L+d5a6JIDwgaG9hblwgOwor5L2Z5q6DIDwgeW9vdVwgOwor6Lev5ZywIDwgcm9qaVwgOwor55C155C2IDwgYml3YVwgOwor5pqu6ZuyIDwgYm91blwgOwor6IOD5rayIDwgaWVraVwgOwor5Lqc6IGWIDwgYXNlaVwgOwor5LiL6YeOIDwgZ2V5YVwgOwor5LiK6YeOIDwgdWVub1wgOwor6IKM55CGIDwga2ltZVwgOwor6aa05p+TIDwgbmFqaVwgOwor5Lqc576kIDwgYWd1blwgOwor5LiW6L6eIDwgc2VqaVwgOwor5LiN6YGLIDwgZnV1blwgOwor5L2Z5qCEIDwgeW9laVwgOwor5qKo5ZySIDwgcmllblwgOwor5L6b5b6hIDwgZ3Vnb1wgOwor6Lev5YqgIDwgcnVrYVwgOwor5Lqc57axIDwgYWtvdVwgOwor5L2Z5pqHIDwgeW9rYVwgOwor5LiA6YGOIDwgaWtrYVwgOwor5bCP5bGLIDwga295YVwgOwor5LiA6YCUIDwgaXR0b1wgOwor576O6L6eIDwgYmlqaVwgOwor5a6J5rCXIDwgYW5raVwgOwor5qCE5p6vIDwgZWlrb1wgOwor5a+T5oSPIDwgZ3V1aVwgOwor5LiW6KmxIDwgc2V3YVwgOwor5Lqc56iuIDwgYXNodVwgOwor5pm06ZuoIDwgc2VpdVwgOwor5bCP5aScIDwgc2F5b1wgOwor6aOb57C3IDwgaGllblwgOwor6Z+z6aCtIDwgb25kb1wgOwor5L2Z5oqAIDwgeW9naVwgOwor5LiN6KqeIDwgZnVnb1wgOwor5L2Z5omAIDwgeW9zb1wgOwor546L6ICFIDwgb3VqYVwgOwor5pqX6YOoIDwgYW5idVwgOwor5L6b5aWJIDwgZ3VidVwgOwor5a6z5oSPIDwgZ2FpaVwgOwor5LqI56S6IDwgeW9qaVwgOwor5a6J5piTIDwgYW4nJ2lcIDsKK+S4i+ihhiA8IGdlc3VcIDsKK+S4iuihoyA8IGpvdWlcIDsKK+Wtl+avjSA8IGppYm9cIDsKK+iDjOaIuCA8IHNlZG9cIDsKK+WvhOW4rSA8IHlvc2VcIDsKK+S9s+WutCA8IGthZW5cIDsKK+eKoOmjmyA8IGdpaGlcIDsKK+S4jeiZniA8IGZ1Z3VcIDsKK+iFkOWEkiA8IGZ1anVcIDsKK+e9teipiCA8IGJhcmlcIDsKK+S7lua0viA8IHRhaGFcIDsKK+WuieaJkyA8IGFuZGFcIDsKK+aal+itnCA8IGFucHVcIDsKK+aYr+mdniA8IHplaGlcIDsKK+WutuWutiA8IGllaWVcIDsKK+aeuOadniA8IGt1a29cIDsKK+eMv+iHgiA8IGVucGlcIDsKK+S6keeIviA8IHVuamlcIDsKK+S6nOeCrSA8IGF0YW5cIDsKK+S7peadsSA8IGl0b3VcIDsKK+WuieW6pyA8IGFuemFcIDsKK+aXl+m8kyA8IGtpa29cIDsKK+mejemmrCA8IGFuYmFcIDsKK+S4gOiHgiA8IGlwcGlcIDsKK+acqOeTnCA8IGJva2VcIDsKK+iCqeW3viA8IGhpcmVcIDsKK+aZgumBiyA8IGppdW5cIDsKK+mfu+iqniA8IGluZ29cIDsKK+mfs+itnCA8IG9ucHVcIDsKK+S4iue1tSA8IHV3YWVcIDsKK+WtpOW9sSA8IGtvZWlcIDsKK+ahiOS+oSA8IGFua2FcIDsKK+eMm+iAhSA8IG1vc2FcIDsKK+e+veebriA8IGhhbWVcIDsKK+itt+isqCA8IGdvbXVcIDsKK+S6jOasoSA8IG5pamlcIDsKK+WmgumcsiA8IGpvcm9cIDsKK+S4jeepjyA8IGZ1b25cIDsKK+WuieWgtSA8IGFuZG9cIDsKK+mmrOWFtyA8IGJhZ3VcIDsKK+S7luaEmyA8IHRhYWlcIDsKK+WutuWHuiA8IGllZGVcIDsKK+WuieWbuiA8IGFua29cIDsKK+WutuWFtyA8IGthZ3VcIDsKK+S4jeejqCA8IGZ1bWFcIDsKK+aXpemWkyA8IGhpYWlcIDsKK+S8juWlsyA8IGdpam9cIDsKK+WvhOS4jiA8IGtpeW9cIDsKK+mdkumdkiA8IGFvYW9cIDsKK+S6jOacnyA8IG5pa2lcIDsKK+WuieWQpiA8IGFucGlcIDsKK+iDoeS5sSA8IHVyb25cIDsKK+S6iOacnyA8IHlva2lcIDsKK+e+qeeQhiA8IGdpcmlcIDsKK+itj+iquSA8IGtpaGlcIDsKK+S4i+eXoiA8IGdlcmlcIDsKK+izreWgtCA8IHRvYmFcIDsKK+izgOWutCA8IGdhZW5cIDsKK+Wuh+WGhSA8IHVkYWlcIDsKK+S7peWkliA8IGlnYWlcIDsKK+WkoumtlCA8IG11bWFcIDsKK+adpeaEjyA8IHJhaWlcIDsKK+aal+ekuiA8IGFuamlcIDsKK+WuieS/nSA8IGFucG9cIDsKK+mdnumBiyA8IGhpdW5cIDsKK+iBvuWUliA8IHJvdWFcIDsKK+e+veavmyA8IHVtb3VcIDsKK+mfs+e0oCA8IG9uc29cIDsKK+i0iOS9jSA8IHpvdWlcIDsKK+S7mOWbsyA8IGZ1enVcIDsKK+S6iOW+jCA8IHlvZ29cIDsKK+S6jOW6piA8IG5pZG9cIDsKK+e+qeawlyA8IGdpa2lcIDsKK+e+qeavjSA8IGdpYm9cIDsKK+iqnumfsyA8IGdvb25cIDsKK+S7peWNlyA8IGluYW5cIDsKK+WknOmZsCA8IHlhaW5cIDsKK+S7mOWSjCA8IGZ1d2FcIDsKK+eOi+aJiyA8IG91dGVcIDsKK+e+veaguSA8IGhhbmVcIDsKK+mdnuitsCA8IGhpZ2lcIDsKK+S7peWGhSA8IGluYWlcIDsKK+S4gOa0viA8IGlwcGFcIDsKK+S4ieavmyA8IG1pa2VcIDsKK+mbt+mbqCA8IHJhaXVcIDsKK+mbkemtmiA8IGpha29cIDsKK+itt+espiA8IGdvZnVcIDsKK+mbsumcpyA8IHVubXVcIDsKK+izpuS4jiA8IGZ1eW9cIDsKK+Wkp+mHjiA8IG9vbm9cIDsKK+S4gOatqSA8IGlwcG9cIDsKK+aWjumDqCA8IGluYmVcIDsKK+S7o+S9jSA8IGRhaWlcIDsKK+eOi+W6pyA8IG91emFcIDsKK+S7o+S7oyA8IHlveW9cIDsKK+S7luS6iyA8IHRhamlcIDsKK+eLkueLkiA8IGhpaGlcIDsKK+eLkOeLuCA8IGtvcmlcIDsKK+mcsuiqniA8IHJvZ29cIDsKK+Wkp+i3ryA8IG9vamlcIDsKK+eOi+WutiA8IG91a2VcIDsKK+e+qeaPtCA8IGdpZW5cIDsKK+eOi+WmgyA8IG91aGlcIDsKK+eOi+WlsyA8IG91am9cIDsKK+mdkuiRiSA8IGFvYmFcIDsKK+mdkuiPnCA8IGFvbmFcIDsKK+S6kuWKqSA8IGdvam9cIDsKK+S6lOWIhiA8IGdvYnVcIDsKK+S6i+WLmSA8IGppbXVcIDsKK+S4i+aJiyA8IGhldGFcIDsKK+S4i+aIuCA8IGdla29cIDsKK+adseS6niA8IHRvdWFcIDsKK+acqOWcsCA8IGtpamlcIDsKK+eOi+WcnyA8IG91ZG9cIDsKK+e+juaKgCA8IGJpZ2lcIDsKK+iqpOiomCA8IGdva2lcIDsKK+mfs+azoiA8IG9ucGFcIDsKK+mfu+avjSA8IGluYm9cIDsKK+S6iOWCmSA8IHlvYmlcIDsKK+S6jOS+oSA8IG5pa2FcIDsKK+aWveiCpSA8IHNlaGlcIDsKK+S6jOS9kCA8IG5pc2FcIDsKK+aXqeeosiA8IHdhc2VcIDsKK+eFmemcpyA8IGVubXVcIDsKK+eFmembqCA8IGVuJyd1XCA7CivpoqjlkYIgPCBmdXJvXCA7Civkub7kvY0gPCBrZW5pXCA7Civmk6zpn7MgPCBnaW9uXCA7CivnuIHotbcgPCBlbmdpXCA7CivkuZ3liIYgPCBrdWJ1XCA7CivkuI3lrokgPCBmdWFuXCA7CivniLbnpZYgPCBmdXNvXCA7CivkuIDlrrYgPCBpa2tlXCA7CivpmbDpmJwgPCBpbmZ1XCA7CivmmpfmhJogPCBhbmd1XCA7CivkuI7lpKogPCB5b3RhXCA7CivkuIvlpbMgPCBnZWpvXCA7CivnhKHpp4QgPCBtdWRhXCA7CivnuIHoqp4gPCBlbmdvXCA7Civpm4Xoqp4gPCBnYWdvXCA7CivnjaPljLsgPCBqdXVpXCA7Civnvo7lp6sgPCBiaWtpXCA7CivlqablpbMgPCBmdWpvXCA7CivpoqjkvY0gPCBmdXVpXCA7Civnvo7lpbMgPCBiaWpvXCA7CivpnZLnoKUgPCBhb3RvXCA7CivnhKHpn7MgPCBtdW9uXCA7CivorbDmoYggPCBnaWFuXCA7CivkuI3lm7MgPCBmdXRvXCA7Civpmpjot68gPCBhaXJvXCA7CivnjJvlqIEgPCBtb3VpXCA7CivlpJrnvqkgPCB0YWdpXCA7CivmmrTlqIEgPCBib3VpXCA7Civoqp7nvqkgPCBnb2dpXCA7CivpmbDpg6ggPCBpbmJ1XCA7CivlpbPnjosgPCBqb291XCA7CivpnZ7nkIYgPCBoaXJpXCA7Civpm7LohIIgPCBmdWtlXCA7Civnvqnli5kgPCBnaW11XCA7Civpm6Loi6YgPCByaWt1XCA7CivpnZLnlLAgPCBhb3RhXCA7CivkuI3lkbMgPCBmdW1pXCA7CivkuInlkbMgPCBzYW1pXCA7CivkuIvlj6UgPCBnZWt1XCA7CivnuLfnuLcgPCBydXJ1XCA7Civlo4HonaggPCBkYW5pXCA7Civnvo7lkbMgPCBiaW1pXCA7CivkuIvljZEgPCBnZWJpXCA7CivorbfmjIEgPCBnb2ppXCA7CivkuIDlj6UgPCBpa2t1XCA7CivnhKHpiZsgPCBtdWVuXCA7Civnvo7ljJYgPCBiaWthXCA7CivkuI3lgpkgPCBmdWJpXCA7CivniqDmiZMgPCBnaWRhXCA7CivlpJbnp5EgPCBnZWthXCA7CivlpKfnm64gPCBvb21lXCA7CivnuIHogIUgPCBlbmphXCA7Civml6XmrakgPCBoaWJ1XCA7Civpn7PlrZcgPCBvbmppXCA7CivpmaLorbAgPCBpbmdpXCA7CivkuIDkvZAgPCBpc3NhXCA7CivniLbmr40gPCBmdWJvXCA7CivpnZ7mr4AgPCBoaWtpXCA7CivmmYLlt64gPCBqaXNhXCA7CivntLDpm6ggPCBzYWl1XCA7CivpnIrnlbAgPCByZWlpXCA7Civln7rpn7MgPCBraW9uXCA7Civnt6/nt5ogPCBpc2VuXCA7CivpmqDogIUgPCBpbmphXCA7CivplrvprZQgPCBlbm1hXCA7Civml6Xml6UgPCBoaWJpXCA7CivmlbDnj6AgPCBqdXp1XCA7CivpmbDokI4gPCBpbicnaVwgOwor6Z+z5ZCQIDwgb250b1wgOwor6Z+z5Y+JIDwgb25zYVwgOwor6Z2S5pyoIDwgYW9raVwgOwor5aiB5Y6zIDwgaWdlblwgOwor6Kyd5oSPIDwgc2hhaVwgOwor57a6576FIDwga2lyYVwgOwor5Z+66YOoIDwga2lidVwgOwor5aaC5oSPIDwgbnlvaVwgOwor5aW95oKqIDwga291b1wgOwor6Z+z5L6hIDwgb25rYVwgOwor5pei5b6AIDwga2lvdVwgOwor5aWl5oSPIDwgb2t1aVwgOwor5aKT56KRIDwgYm9oaVwgOwor6Zuo5rC0IDwgdXN1aVwgOwor5aSc5pqXIDwgeWFhblwgOwor5pmC5LqLIDwgamlqaVwgOwor5aeU5Lu7IDwgaW5pblwgOwor5aW05amiIDwgbnVoaVwgOwor5aSn5omLIDwgb29kZVwgOwor6Zyy5bqnIDwgcm96YVwgOwor6Zmw55S7IDwgaW5nYVwgOwor5aOK5q27IDwgZXNoaVwgOwor54Sh56KNIDwgbXVnZVwgOwor6KmQ5qy6IDwgc2FnaVwgOwor6Z2S5ZywIDwgYW9qaVwgOwor6Z2S5ZuzIDwgYW96dVwgOwor57KX6YeOIDwgc295YVwgOwor5aSn5bGLIDwgb295YVwgOwor6Kqk5beuIDwgZ29zYVwgOwor54Sh55CGIDwgbXVyaVwgOwor5aSi5a+QIDwgbXViaVwgOwor5aSa5bKQIDwgdGFraVwgOwor54WZ5rOiIDwgZW5wYVwgOwor5pen5LqLIDwga3VqaVwgOwor6Kqe5bC+IDwgZ29iaVwgOwor6Zyy5Za2IDwgcm9laVwgOwor6Zmw5rCXIDwgaW5raVwgOwor5aSa5aSaIDwgdGF0YVwgOwor5Zyf6ZaTIDwgZG9tYVwgOwor5o6q6L6eIDwgc29qaVwgOwor54Sh5rS+IDwgbXVoYVwgOwor5r++6YGOIDwgcm9rYVwgOwor6b2xIDwgc2VrdVwgOwor6Zuo5aSpIDwgdXRlblwgOwor6Zuo5aOwIDwgdXNlaVwgOwor6byPIDwgYmVraVwgOwor54Sh5q+UIDwgbXVoaVwgOwor6KaL55uuIDwgbWltZVwgOwor6bq/IDwgbWFyb1wgOwor6Zuo5Z+fIDwgdWlraVwgOwor5aSc5Y2KIDwgeW93YVwgOwor6baqIDwga2VraVwgOwor54Sh5qmfIDwgbXVraVwgOwor6bSoIDwga2Ftb1wgOwor6Zqg5b6uIDwgaW5iaVwgOwor6KOc6KiYIDwgaG9raVwgOwor6ZqP5oSPIDwgenVpaVwgOwor6bGnIDwgaGFtb1wgOwor6bGaIDwga2lzdVwgOwor6bCkIDwgYnVyaVwgOwor6bCZIDwgaGF5YVwgOwor6bCQIDwgd2FuaVwgOwor5aSc5YW3IDwgeWFndVwgOwor6a+WIDwgc2FiYVwgOwor6a+UIDwgYm9yYVwgOwor6a+KIDwgaGF6ZVwgOwor6a60IDwgZ29yaVwgOwor6a6yIDwgbWF0ZVwgOwor6a6rIDwgc2FtZVwgOwor6a6SIDwgZnVuYVwgOwor6a25IDwgdG9kb1wgOwor6aqtIDwgaGFnaVwgOwor6aqJIDwgaHl1dVwgOwor57KX6I+TIDwgc29rYVwgOwor54Gr566tIDwgaGl5YVwgOwor57W15pysIDwgZWhvblwgOwor6Z+uIDwgbmlyYVwgOwor6Z6gIDwgbWFyaVwgOwor5Zyf6KqeIDwgZG9nb1wgOwor6Z2EIDwgbW95YVwgOwor5Zyw6KGjIDwgY2hpaVwgOwor6ZuH5ZOhIDwga29pblwgOwor6ZuF5ZGzIDwgZ2FtaVwgOwor57C/6KiYIDwgYm9raVwgOwor6ZaWIDwgeXVydVwgOwor54Sh5omLIDwgbXV0ZVwgOwor54Sh5oiRIDwgbXVnYVwgOwor6ZGTIDwgeWFyaVwgOwor6ZGDIDwgdHlvdVwgOwor6Zi/5oi/IDwgYWhvdVwgOwor6Y2sIDwga3V3YVwgOwor6KOc6IKlIDwgaG9oaVwgOwor6Ym+IDwgaG9rb1wgOwor6KaP5qihIDwga2lib1wgOwor6KKI6KOfIDwga2VzYVwgOwor6YSZIDwgaGluYVwgOwor5aGX5biDIDwgdG9mdVwgOwor6YCpIDwga2FtdVwgOwor6YCnIDwgc2Frb1wgOwor6L+NIDwgY2h1blwgOwor6L2MIDwgc29yaVwgOwor6Zmk5aScIDwgam95YVwgOwor54Gr54KJIDwga2Fyb1wgOwor6LOtIDwga2FrZVwgOwor5oq86Z+7IDwgb3VpblwgOwor5pOs5Y+kIDwgZ2lrb1wgOwor6LGaIDwgYnV0YVwgOwor54Sh5Z6iIDwgbXVrdVwgOwor54Sh5ZywIDwgbXVqaVwgOwor6KWeIDwgaGlkYVwgOwor57Sg5omLIDwgc3VkZVwgOwor6KSxIDwga2FpZVwgOwor6KObIDwgeW91dVwgOwor6KKwIDwgaG9yb1wgOwor6J+5IDwga2FuaVwgOwor54Sh5ZGzIDwgbXVtaVwgOwor6JqLIDwgYnV5b1wgOwor6JmZIDwgaHVrdVwgOwor6JeqIDwgeWFidVwgOwor6JWqIDwga2FidVwgOwor6JSHIDwga2lrZVwgOwor6JO8IDwgdGFkZVwgOwor6JORIDwgbWlub1wgOwor6JGxIDwgbmVnaVwgOwor6Zmi5Li7IDwgaW5qdVwgOwor5aCC5a6HIDwgZG91dVwgOwor6Zi/5YWEIDwgYWtlaVwgOwor6IuGIDwgc3VzYVwgOwor6Iq5IDwgc2VyaVwgOwor54Sh5L6hIDwgbXVrYVwgOwor6IqSIDwgbm9naVwgOwor5aC05ZCIIDwgYmFhaVwgOwor57W15YOPIDwgZXpvdVwgOwor54Sh5LqMIDwgbXVuaVwgOwor6IaDIDwgb3RzdVwgOwor6ISbIDwgc3VuZVwgOwor6KGj57SLIDwgZW1vblwgOwor57SN5bGLIDwgbmF5YVwgOwor6KaL5aC0IDwgbWliYVwgOwor56yR6aGUIDwgZWdhb1wgOwor572gIDwgd2FuYVwgOwor5o+25o+EIDwgeWF5dVwgOwor57abIDwga2FzZVwgOwor57KX5py2IDwgc29kYVwgOwor57OgIDwgbnVrYVwgOwor57OKIDwgbm9yaVwgOwor5omL6ZaTIDwgdGVtYVwgOwor5Zuz55S7IDwgenVnYVwgOwor57KCIDwga3VtZVwgOwor57CXIDwgeWFuYVwgOwor566NIDwgdGFnYVwgOwor566GIDwgaGVyYVwgOwor56yKIDwgemFydVwgOwor54Gr5bGLIDwgaG95YVwgOwor54Cs5oi4IDwgc2V0b1wgOwor6J676JuEIDwga2VyYVwgOwor55ikIDwga29idVwgOwor6ZaT5aSrIDwgbWFidVwgOwor55SVIDwgbWlrYVwgOwor57KX5biDIDwgc29mdVwgOwor55GVIDwga2l6dVwgOwor5422IDwgbnlvdVwgOwor6JuZ6bu9IDwgYWJvdVwgOwor5o6P5pG4IDwgc3VyaVwgOwor54e4IDwgaml5dVwgOwor6KO45ammIDwgcmFmdVwgOwor5Zuz5qGIIDwgenVhblwgOwor5Zyf5omLIDwgZG90ZVwgOwor5ruTIDwga2FzdVwgOwor5rip6ZuFIDwgb25nYVwgOwor5o+05YqpIDwgZW5qb1wgOwor6b2f6b2sIDwgc29nb1wgOwor5qmzIDwgbnVkZVwgOwor5qmyIDwgenVzYVwgOwor5Zub5pa5IDwgeW9tb1wgOwor5qi9IDwgdGFydVwgOwor5qi6IDwga2FiYVwgOwor5qWFIDwgaHlrdVwgOwor5qSoIDwgdGFmdVwgOwor5qSlIDwgbmFnaVwgOwor5qCCIDwgdG9nYVwgOwor5p2jIDwgc29tYVwgOwor5Zu95bqcIDwga29mdVwgOwor5o275a2QIDwgbmVqaVwgOwor5omL5769IDwgdGViYVwgOwor5rer6ZuoIDwgaW4nJ3VcIDsKK+ijnOWKqSA8IGhvam9cIDsKK+a5r+iRiSA8IHl1YmFcIDsKK+Wcn+WZqCA8IGRva2lcIDsKK+aMieaRqSA8IGFubWFcIDsKK+aJqCA8IHNhdGVcIDsKK+aOiOWPlyA8IGp1anVcIDsKK+aJk+egtCA8IGRhaGFcIDsKK+aLv+aNlSA8IGRhaG9cIDsKK+Wcn+WMqiA8IGRvaGlcIDsKK+W9tiA8IGtpaHVcIDsKK+W8tiA8IGd5YXVcIDsKK+W8lyA8IGRvcnVcIDsKK+W8kyA8IHl1bWlcIDsKK+W7pyA8IHNoYXVcIDsKK+W4pCA8IGdleW9cIDsKK+W4oiA8IGthaHVcIDsKK+W3pCA8IHJlaHVcIDsKK+W2ryA8IHNoaXVcIDsKK+W1gCA8IGNoaXVcIDsKK+WcqOS9jSA8IHphaWlcIDsKK+W0qCA8IHNlaHVcIDsKK+WzhSA8IGt1cmFcIDsKK+a1ruWhteWtkCA8IHVua2FcIDsKK+WxtiA8IG5hdGFcIDsKK+aEm+mmrCA8IGFpYmFcIDsKK+WuqCA8IHRld2FcIDsKK+aOiOS4jiA8IGp1eW9cIDsKK+Wbm+WbsiA8IHNoaWlcIDsKK+WbuuWMliA8IGtva2FcIDsKK+aEm+mjsiA8IGFpaW5cIDsKK+WsvCA8IHJpd2FcIDsKK+WTgOmfsyA8IGFpb25cIDsKK+WstiA8IGtha2FcIDsKK+WqgyA8IGp5dXVcIDsKK+WbnuWQkSA8IGVrb3VcIDsKK+aIr+eUuyA8IGdpZ2FcIDsKK+WhviA8IGp1a3VcIDsKK+WfliA8IGdvbWlcIDsKK+aFsOisnSA8IGlzaGFcIDsKK+WcviA8IGd5dXVcIDsKK+WYuCA8IHNhem9cIDsKK+WYgSA8IHNhaHVcIDsKK+WXvSA8IHVnYWlcIDsKK+WWoiA8IHRlaHVcIDsKK+WVpiA8IHJhaHVcIDsKK+WSjOmfsyA8IHdhb25cIDsKK+WStiA8IGt1dWlcIDsKK+aKvOW/jSA8IG9zc3VcIDsKK+enu+i7oiA8IGl0ZW5cIDsKK+mKhemRvCA8IGRvcmFcIDsKK+WKiyA8IHN5b3VcIDsKK+WHuCA8IGRla29cIDsKK+aEm+i8nSA8IGFpa2lcIDsKK+a5r+eFriA8IHl1bmlcIDsKK+aCqumsvCA8IGFra2lcIDsKK+S/hyA8IGt5YXVcIDsKK+S+oCA8IGt5YW5cIDsKK+S9lyA8IHdhYmlcIDsKK+S6gCA8IGthbWVcIDsKK+S5nyA8IG5hcmlcIDsKK+aEm+ittyA8IGFpZ29cIDsKK+WTgOipsSA8IGFpd2FcIDsKK+WTgOiotCA8IGFpc29cIDsKK+WRiemgiCA8IGdvc3VcIDsKK+enmOipsSA8IGhpd2FcIDsKK+a5r+awlyA8IHl1Z2VcIDsKK+m7hOi6qyA8IGtpbWlcIDsKK+WSjOitsCA8IHdhZ2lcIDsKK+WSjOiqniA8IHdhZ29cIDsKK+WQkOmcsiA8IHRvcm9cIDsKK+aBqemhpyA8IG9ua29cIDsKK+aBtembqCA8IGtlaXVcIDsKK+a1t+iKiyA8IGthaXVcIDsKK+a1hOihoyA8IGpvdWVcIDsKK+iVjum6piA8IHNvYmFcIDsKK+m4mum1oSA8IG91bXVcIDsKK+WQiOmWkyA8IGFpbWFcIDsKK+WPs+mdoiA8IHVtZW5cIDsKK+m8u+elliA8IGJpc29cIDsKK+aCquiyqCA8IGFra2FcIDsKK+a4oeaspyA8IHRvb3VcIDsKK+WPpOmfsyA8IGtvb25cIDsKK+WYlOWQkCA8IG91dG9cIDsKK+WSjOiLsSA8IHdhZWlcIDsKK+WPpOmbhSA8IGtvZ2FcIDsKK+a7i+WRsyA8IGppbWlcIDsKK+WUlueEtiA8IGF6ZW5cIDsKK+iYh+iKsyA8IHN1b3VcIDsKK+iXjeikuCA8IGJvcm9cIDsKK+aCquihoyA8IGFrdWlcIDsKK+a5r+WxiyA8IHl1eWFcIDsKK+WUvuajhCA8IGRha2lcIDsKK+WPs+i+uiA8IHVoZW5cIDsKK+WWnOWvvyA8IGtpanVcIDsKK+a5r+WlsyA8IHl1bmFcIDsKK+WOremboiA8IG9ucmlcIDsKK+m8u+eCjiA8IGJpZW5cIDsKK+mHjui+uiA8IG5vYmVcIDsKK+aBqeiqvCA8IG9uZ2lcIDsKK+mHjui3ryA8IG5vamlcIDsKK+WRquespiA8IGp1ZnVcIDsKK+WPpOiqniA8IGtvZ29cIDsKK+WWtuWIqSA8IGVpcmlcIDsKK+W/nOmcgCA8IG91anVcIDsKK+aIkeWIqSA8IGdhcmlcIDsKK+enu+awkSA8IGltaW5cIDsKK+WWh+WYmyA8IHJhbWFcIDsKK+aGjuaCqiA8IHpvdW9cIDsKK+WPs+iRiSA8IHV5b3VcIDsKK+WTgOatjCA8IGFpa2FcIDsKK+WPl+iYiiA8IGp1dW5cIDsKK+W+oemhlCA8IG9rYW9cIDsKK+m5teewvyA8IHJvYm9cIDsKK+WNgembqCA8IGp1dXVcIDsKK+WPs+iEsyA8IHVub3VcIDsKK+a4qeWSjCA8IG9ud2FcIDsKK+awuOmBoCA8IGVpZW5cIDsKK+mHjuiJryA8IG5vcmFcIDsKK+a1t+adviA8IG1pcnVcIDsKK+WSjOatjCA8IHdha2FcIDsKK+axmuihjCA8IG9rb3VcIDsKK+egtOmiqCA8IGhhZnVcIDsKK+aEm+aSqyA8IGFpYnVcIDsKK+m7hOaziSA8IHlvbWlcIDsKK+W/nOiotCA8IG91c29cIDsKK+WTgOaFlSA8IGFpYm9cIDsKK+WQiOedgCA8IGFpZ2lcIDsKK+W+oei6qyA8IG9ubWlcIDsKK+aFsOWVjyA8IGltb25cIDsKK+WMuuiyuyA8IGt1aGlcIDsKK+WRhuawlyA8IGFra2VcIDsKK+mCqumtlCA8IGphbWFcIDsKK+mDvemEmSA8IHRvaGlcIDsKK+egtOmCqiA8IGhhamFcIDsKK+W+gOi3ryA8IG91cm9cIDsKK+mCqumjmyA8IGphaGlcIDsKK+elluavjSA8IHNvYm9cIDsKK+a0vuaJiyA8IGhhZGVcIDsKK+W8pemZgCA8IG1pZGFcIDsKK+mHjueMvyA8IHlhZW5cIDsKK+WPl+eQhiA8IGp1cmlcIDsKK+WRvOW/nCA8IGtvb3VcIDsKK+enmOWlpSA8IGhpb3VcIDsKK+axmuepoiA8IG93YWlcIDsKK+aEmuWbsyA8IGd1enVcIDsKK+a1geW4gyA8IHJ1ZnVcIDsKK+avjeiqniA8IGJvZ29cIDsKK+mHjueBqyA8IG5vYmlcIDsKK+WSjOWtlyA8IHdhamlcIDsKK+WQiOatkyA8IG5lbXVcIDsKK+W+oeiMtiA8IG9jaGFcIDsKK+m6u+W4gyA8IG1hZnVcIDsKK+aCquaEnyA8IG9rYW5cIDsKK+enu+S9jyA8IGlqdXVcIDsKK+iZmuS9jSA8IGt5b2lcIDsKK+aBteaWuSA8IGVob3VcIDsKK+aEm+WFkCA8IGFpamlcIDsKK+aymeaxsCA8IHNhdGFcIDsKK+atpumBiyA8IGJ1dW5cIDsKK+W+oeewviA8IG1pc3VcIDsKK+WRs+WZjCA8IG1pc29cIDsKK+WPs+aWuSA8IHVob3VcIDsKK+S6nOe0sOS6nCA8IGFqaWFcIDsKK+W7iOmWgCA8IGFtb2lcIDsKK+axmueCuSA8IG90ZW5cIDsKK+avm+e+vSA8IGtlYmFcIDsKK+mHjuaariA8IHlhYm9cIDsKK+WQiOaEjyA8IGdvdWlcIDsKK+W+oeekvCA8IG9yZWlcIDsKK+azouW4gyA8IGhhYnVcIDsKK+W+oeeilyA8IG93YW5cIDsKK+mBuui0iCA8IGl6b3VcIDsKK+axmuazpSA8IG9kZWlcIDsKK+efs+iTtCA8IGFvc2FcIDsKK+W+oeebhiA8IG9ib25cIDsKK+axmuawtCA8IG9zdWlcIDsKK+WNl+eEoSA8IG5hbXVcIDsKK+i/vemiqCA8IG9pdGVcIDsKK+egkue0oCA8IGhpc29cIDsKK+aAquaIkSA8IGtlZ2FcIDsKK+WPs+WyuCA8IHVnYW5cIDsKK+axmuafkyA8IG9zZW5cIDsKK+aBqeWogSA8IG9uJydpXCA7Civojbfpp4QgPCBuaWRhXCA7CivlkIjlm7MgPCBhaXp1XCA7CivpgbrokZcgPCBpY2hvXCA7Civlub7ph40gPCBpa3VlXCA7CivmsZrmkI0gPCBvc29uXCA7CivlkI/lk6EgPCByaWluXCA7Civljq3mgqogPCBlbicnb1wgOwor5Y675bm0IDwga296b1wgOwor5ZCN5Yy7IDwgbWVpaVwgOwor5ZCP5YuZIDwgcmltdVwgOwor6L+3IDwgbWVpXCA7Civlv7UgPCBuZW5cIDsKK+efrSA8IHRhblwgOwor5b+rIDwga2FpXCA7Civov6UgPCBrZWlcIDsKK+efpSA8IGNoaVwgOwor55+cIDwga2luXCA7Civlv5kgPCBib3VcIDsKK+i/lCA8IGhlblwgOwor6L+OIDwgZ2VpXCA7Civlv40gPCBuaW5cIDsKK+i/hSA8IGppblwgOwor6L6/IDwgdGVuXCA7CivnnrsgPCBzZW5cIDsKK+i+siA8IG5vdVwgOwor6L6vIDwgYmVuXCA7CivlvqogPCBqdW5cIDsKK+eeoCA8IGRvdVwgOwor5b6eIDwganV1XCA7CivlvoUgPCB0YWlcIDsKK+W9qSA8IHNhaVwgOwor552hIDwgc3VpXCA7CivovZ8gPCBnb3VcIDsKK+W9kyA8IHRvdVwgOwor5b2IIDwgZGFuXCA7CivnnKkgPCBnZW5cIDsKK+ecoCA8IG1pblwgOwor5byfIDwgdGVpXCA7CivlvJsgPCBzaGlcIDsKK+W8mCA8IGtvdVwgOwor55yMIDwga2VuXCA7CivnnIsgPCBrYW5cIDsKK+W8hCA8IHJvdVwgOwor55yBIDwgc2VpXCA7Civnm7ggPCBzb3VcIDsKK+W7oiA8IGhhaVwgOwor6LuNIDwgZ3VuXCA7Civlu4kgPCByZW5cIDsKK+ebhiA8IGJvblwgOwor5bq4IDwgeW91XCA7CivnmrAgPCBob3VcIDsKK+i6hyA8IGNob1wgOwor5bm+IDwgaWt1XCA7Civlub0gPCB5dXVcIDsKK+eZjCA8IGdhblwgOwor6LehIDwgYXRvXCA7Civot58gPCBrb25cIDsKK+i3nSA8IGt5b1wgOwor55aKIDwgam91XCA7CivnlaogPCBiYW5cIDsKK+eVpiA8IGF6ZVwgOwor55WUIDwgaGFuXCA7CivnlKMgPCBzYW5cIDsKK+i0hSA8IHplaVwgOwor55O2IDwgYmluXCA7Civos6MgPCBiYWlcIDsKK+eTnCA8IHVyaVwgOwor5bKpIDwgaXdhXCA7CivosqEgPCB6YWlcIDsKK+ixoSA8IHpvdVwgOwor5bGPIDwgaGVpXCA7CivlsJogPCBuYW9cIDsKK+WwhCA8IHNoYVwgOwor5bCBIDwgZnV1XCA7Civlr7ggPCBzdW5cIDsKK+WutSA8IHlvaVwgOwor5a6zIDwgZ2FpXCA7CivlrpsgPCBhdGVcIDsKK+WtmCA8IHNvblwgOwor5ayqIDwgaGluXCA7Civoq7ggPCBzaG9cIDsKK+irliA8IHJvblwgOwor5auMIDwgaXlhXCA7CivniqwgPCBpbnVcIDsKK+iqhCA8IHJ1aVwgOwor54mhIDwgb3N1XCA7CivniYwgPCBwYWlcIDsKK+eImyA8IHJhblwgOwor54e7IDwga3VuXCA7Civlp4kgPCBhbmVcIDsKK+imqiA8IG95YVwgOwor5aWuIDwgZnVuXCA7CivlpaUgPCBva3VcIDsKK+ilnyA8IGVyaVwgOwor54S2IDwgemVuXCA7Civlo7AgPCBrb2VcIDsKK+ijjyA8IHVyYVwgOwor6KKCIDwgYmVpXCA7Civon7sgPCBhcmlcIDsKK+a/mCA8IG5laVwgOwor5Z+LIDwgbWFpXCA7CivlnqIgPCBha2FcIDsKK+idvyA8IGhhZVwgOwor6b2hIDwgcmVpXCA7Civmu78gPCBtYW5cIDsKK+ibmyA8IHNodVwgOwor5ZubIDwgeW9uXCA7CivpursgPCBhc2FcIDsKK+a5viA8IHdhblwgOwor6JmcIDwgcnlvXCA7CivmuKYgPCB1enVcIDsKK+WYmCA8IHVzb1wgOwor6JiCIDwgenVpXCA7Civmt4sgPCByaW5cIDsKK+a2siA8IGVraVwgOwor5ZawIDwga3V1XCA7CivmtbcgPCB1bWlcIDsKK+WVjyA8IG1vblwgOwor5rOhIDwgYXdhXCA7CivokpkgPCBtb3VcIDsKK+ayliA8IG9raVwgOwor5rKMIDwgdG9uXCA7CivlkbMgPCBhamlcIDsKK+axoCA8IGlrZVwgOwor5rGXIDwgYXNlXCA7CivlkZEgPCBkb25cIDsKK+awjyA8IHVqaVwgOwor5Y+wIDwgZGFpXCA7CivmrpggPCB6YW5cIDsKK+atjCA8IHV0YVwgOwor5Y2IIDwgdW1hXCA7CivljYEgPCB0b29cIDsKK+msvCA8IG9uaVwgOwor6Iy2IDwgY2hhXCA7Civli6QgPCBnb25cIDsKK+iLlyA8IG5hZVwgOwor6ImyIDwgaXJvXCA7CivliY0gPCBtYWVcIDsKK+WIhiA8IGJ1blwgOwor6Ie8IDwgdXN1XCA7Civppq0gPCBneW9cIDsKK+iFlSA8IHVkZVwgOwor5YWNIDwgbWVuXCA7CivlhYQgPCBhbmlcIDsKK+mjtCA8IGFtZVwgOwor6aOcIDwgaG9uXCA7CivlgrMgPCBkZW5cIDsKK+aihSA8IHVtZVwgOwor5qG2IDwgb2tlXCA7CivlgbYgPCBndXVcIDsKK+mhlCA8IGthb1wgOwor6aGOIDwgYWdvXCA7CivpoLwgPCByYWlcIDsKK+S/uiA8IG9yZVwgOwor5p6dIDwgZWRhXCA7Civmnb8gPCBpdGFcIDsKK+S9lSA8IG5hblwgOwor6ZqIIDwgd2FpXCA7CivnuZQgPCBvcmlcIDsKK+S4mCA8IG9rYVwgOwor57ayIDwgYW1pXCA7CivplbcgPCBvc2FcIDsKK+aVuCA8IHN1dVwgOwor5pWFIDwgeXVlXCA7Civns7ggPCBpdG9cIDsKK+eylyA8IGFyYVwgOwor5o+hIDwgYWt1XCA7CivnrJsgPCBmdWVcIDsKK+ervyA8IHNhb1wgOwor56iyIDwgaW5lXCA7CivmiJYgPCBhcnVcIDsKK+mHjSA8IG9tb1wgOwor56eLIDwgYWtpXCA7CivnprAgPCBkZWlcIDsKK+aBryA8IGlraVwgOwor5oGLIDwga29pXCA7Civov4LpgaAgPCB1ZW5cIDsKK+W+ruaEjyA8IGJpaVwgOwor5Y+Z5L2NIDwgam9pXCA7Civov4Lot68gPCB1cm9cIDsKK+W+l+aJiyA8IGV0ZVwgOwor5rCX5a6HIDwga2l1XCA7CivljLvlrrYgPCBpa2FcIDsKK+WFq+mHjSA8IHlhZVwgOwor5Yy75ZOhIDwgaWluXCA7CivljLvli5kgPCBpbXVcIDsKK+WMu+S6iyA8IGlqaVwgOwor6YG65oSbIDwgaWFpXCA7CivpgbrlvbEgPCBpZWlcIDsKK+mDqOS9jSA8IGJ1aVwgOwor6YG65a2kIDwgaWtvXCA7CivnlbDpn7MgPCBpb25cIDsKK+W4jOaciSA8IGtldVwgOwor6L+C5oSaIDwgdWd1XCA7CivmrKfkupwgPCBvdWFcIDsKK+asoeS9jSA8IGppaVwgOwor5qyh5LqcIDwgamlhXCA7CivnnInlrocgPCBiaXVcIDsKK+eVsOitsCA8IGlnaVwgOwor5bGF6ZaTIDwgaW1hXCA7CivluLDkvp0gPCBraWVcIDsKK+mmmemtmiA8IGF5dVwgOwor5qmf5L2NIDwga2lpXCA7CivkvLzpnZ4gPCBlc2VcIDsKK+Wwvue+vSA8IG9oYVwgOwor55Ww54i2IDwgaWZ1XCA7CivkvJrpmbAgPCBlaW5cIDsKK+eVsOavjSA8IGlib1wgOwor5Lqc6bq7IDwgYW1hXCA7Civku6XpgaAgPCBpZW5cIDsKK+S8iuiqniA8IGlnb1wgOwor5Lqc6YmbIDwgYWVuXCA7CivlsL7moLkgPCBvbmVcIDsKK+akheWtkCA8IGlzdVwgOwor5L6d5oCZIDwgZWtvXCA7CivkupHngrogPCB1bmlcIDsKK+S6nOaspyA8IGFvdVwgOwor5Lul5b6AIDwgaW91XCA7CivmnInnhKEgPCB1bXVcIDsKK+S8muWOrSA8IGVlblwgOwor5qCE5L2NIDwgZWlpXCA7CivkupXmiLggPCBpZG9cIDsKK+mdnumBlSA8IGhpaVwgOwor5aSc6ZuoIDwgeWF1XCA7CivlpJrpm6ggPCB0YXVcIDsKK+S6jOWwiSA8IG5paVwgOwor5LiN5oSPIDwgZnVpXCA7CivlqIHmraYgPCBpYnVcIDsKK+acieWNpiA8IHVrZVwgOwor546L5L2NIDwgb3VpXCA7CivnvoXlrocgPCByYW9cIDsKK+e+veWMliA8IHVrYVwgOwor57W16aasIDwgZW1hXCA7Civlo4rnlr0gPCBlc29cIDsKK+mbqOawlyA8IHVraVwgOwor6Kqe5oSPIDwgZ29pXCA7Civpm6jlvowgPCB1Z29cIDsKK+eEoeeCuiA8IG11aVwgOwor6KOc6YG6IDwgaG9pXCA7CivpvpIgPCByeXVcIDsKK+m7tiA8IGF6YVwgOwor6Zi/5q+UIDwgYWJpXCA7Civps7AgPCBuaW9cIDsKK+mwlSA8IGViaVwgOwor6bCTIDwgZXJhXCA7CivppIwgPCBlc2FcIDsKK+mOiiA8IGhhdVwgOwor6Y2RIDwgaHV1XCA7CivpjLUgPCBuaWVcIDsKK+mIliA8IGh1blwgOwor6YS8IDwgc2FiXCA7CivphJ4gPCBnaW5cIDsKK+mCviA8IGNodVwgOwor6L2RIDwgcmF1XCA7CivopJwgPCBlbmFcIDsKK+e1teWbsyA8IGV6dVwgOwor6KaL5b6XIDwgbWllXCA7CivombsgPCBhYnVcIDsKK+mYv+WQvSA8IGF1blwgOwor6JG1IDwgYW9pXCA7CivojbsgPCBvZ2lcIDsKK+iKiyA8IGltb1wgOwor6IeRIDwgZGF1XCA7Civmu4vpm6ggPCBqaXVcIDsKK+eolyA8IGhpZVwgOwor55O0IDwgcmlpXCA7CivntIbkvZkgPCB1eW9cIDsKK+aoiyA8IHRvaVwgOwor5qOwIDwgc29pXCA7Civmna0gPCBrdWlcIDsKK+aWpyA8IG9ub1wgOwor5oSwIDwga2F1XCA7Civlva8gPCBoZXVcIDsKK+W8qCA8IHNldVwgOwor5buHIDwgcml1XCA7Civlu4UgPCBhaHVcIDsKK+W6oyA8IHRldVwgOwor5baGIDwgc2F1XCA7CivltbogPCByZXVcIDsKK+W1tiA8IHRhb1wgOwor5rW36auqIDwgb2dvXCA7CivlrIggPCBkZXVcIDsKK+WruSA8IGJhdVwgOwor5auZIDwgc2ViXCA7CivmhI/ppqwgPCBpYmFcIDsKK+WloSA8IGdhdVwgOwor5Z6aIDwgZ2V1XCA7CivlnKYgPCBpcmlcIDsKK+WatyA8IGphdVwgOwor5Zuz5LyaIDwgenVlXCA7CivlmKsgPCBkYW1cIDsKK+WDoCA8IGZhblwgOwor5L2CIDwgeWFpXCA7CivmgqrpnLIgPCBvcm9cIDsKK+idpuWktyA8IGV6b1wgOwor56mi5aSaIDwgZXRhXCA7CivnqaLlnJ8gPCBlZG9cIDsKK+aFsOWuiSA8IGlhblwgOwor5Y2B6YeNIDwgdG9lXCA7CivmhJrmhI8gPCBndWlcIDsKK+WPs+a0viA8IHVoYVwgOwor5oSP5ZGzIDwgaW1pXCA7CivokI7pnaEgPCBpYmlcIDsKK+i/piA8IGthXCA7Civnn6IgPCB5YVwgOwor5b+cIDwgb3VcIDsKK+W/jCA8IGtpXCA7Civovq0gPCBqaVwgOwor5b6uIDwgYmlcIDsKK+W+oSA8IGdvXCA7CivlvpIgPCB0b1wgOwor5b6QIDwgam9cIDsKK+ecvCA8IG1lXCA7CivovKogPCB3YVwgOwor5bylIDwgbWlcIDsKK+ecnyA8IG1hXCA7CivlvJUgPCBpblwgOwor5byQIDwgbmlcIDsKK+W7tiA8IGVuXCA7CivluqsgPCBrb1wgOwor5bqnIDwgemFcIDsKK+W6piA8IGRvXCA7CivlupwgPCBmdVwgOwor5bqHIDwgaGlcIDsKK+i4sCA8IHl1XCA7Civot68gPCByb1wgOwor5beuIDwgc2FcIDsKK+W3oyA8IHN1XCA7Civnl5sgPCB0c1wgOwor55aRIDwgZ2lcIDsKK+eWjiA8IHNvXCA7CivnlLAgPCB0YVwgOwor55SlIDwgb2lcIDsKK+ixqyA8IHlvXCA7CivlsaUgPCByaVwgOwor5a+dIDwgbmVcIDsKK+WutiA8IGtlXCA7CivoqJ0gPCBnYVwgOwor54efIDwgZWlcIDsKK+ilpiA8IGp1XCA7CivlpYggPCBuYVwgOwor54ShIDwgbXVcIDsKK+ikniA8IG9uXCA7CivopJMgPCBob1wgOwor6KOzIDwgbW9cIDsKK+WiriA8IGRhXCA7CivloLQgPCBiYVwgOwor54CsIDwgc2VcIDsKK+ieuiA8IHJhXCA7Civlm7MgPCB6dVwgOwor5ZefIDwgYWFcIDsKK+iXjSA8IGFpXCA7CivptaEgPCBidVwgOwor5rS+IDwgaGFcIDsKK+iOqyA8IGJvXCA7Civoi6YgPCBrdVwgOwor5Ye6IDwgZGVcIDsKK+WFtyA8IGd1XCA7CivmoYggPCBhblwgOwor6Z2SIDwgYW9cIDsKK+S6kSA8IHVuXCA7CivkuYMgPCBub1wgOwor5pivIDwgemVcIDsKK+aJiyA8IHRlXCA7Civmg7kgPCBqYVwgOwor5LyK5LqVIDwgaWlcIDsKK+mXniA8IGtuXCA7CivpiIcgPCBodVwgOwor6K6EIDwgcnVcIDsKK+abvSA8IHpvXCA7CivmkJkgPCBudVwgOwor5bquIDwgaXVcIDsKK+W2tCA8IGF1XCA7CivlsoYgPCBldVwgOwor5bGBIDwgaGVcIDsKK+W4tyA8IGlcIDsKK+WwviA8IG9cIDsKK+WuhyA8IHVcIDsKK+axnyA8IGVcIDsKK+S6niA8IGFcIDsKK+azleWtpuezu+Wkp+WtpumZouWFsemAmuWFpeWtpuippumokyA+IGhvdWdha3VrZWlkYWlnYWt1aW5reW91dHN1dW55dXVnYWt1c2hpa2VuXCA7CivmnJ3prq7msJHkuLvkuLvnvqnkurrmsJHlhbHlkozlm70gPiBjaG91c2VubWluc2h1c2h1Z2lqaW5taW5reW91d2Frb2t1XCA7Civoh6rli5Xou4rmkI3lrrPos6DlhJ/osqzku7vkv53pmbogPiBqaWRvdXNoYXNvbmdhaWJhaXNob3VzZWtpbmluaG9rZW5cIDsKK+exs+WbveWkp+WtpuWFpeWtpuWFsemAmuippumokyA+IGJlaWtva3VkYWlnYWt1bnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor5pel5pys5Yq05YON57WE5ZCI57eP6KmV6K2w5LyaID4gbmlob25yb3Vkb3VrdW1pYWlzb3VoeW91Z2lrYWlcIDsKK+aLmOadn+WQjeewv+W8j+avlOS+i+S7o+ihqOWItiA+IGtvdXNva3VtZWlib2hpcmVpZGFpaHlvdXNlaVwgOwor6Ieo5YW16ZeY6ICF55qG6Zmj6KOC5Zyo5YmNID4gcmlucHlvdXRvdXNoYWthaWppbnJldHN1emFpemVuXCA7CivlpKrlubPmtIvmqZ/morDnv7voqLPljZTkvJogPiB0YWloZWl5b3VraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+WLpOWKtOiAheiyoeeUo+W9ouaIkOS/g+mAsiA+IGtpbnJvdXNoYXphaXNhbmtlaXNlaXNva3VzaGluXCA7CivotoXotoXlpKfopo/mqKHpm4bnqY3lm57ot68gPiBjaG91Y2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivotoXjgIXlpKfopo/mqKHpm4bnqY3lm57ot68gPiBjaG91Y2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivlpKrlubPmtIvlronlhajkv53pmpzmnaHntIQgPiB0YWloZWl5b3Vhbnplbmhvc2hvdWpvdXlha3VcIDsKK+aTjee4puW4remfs+WjsOiomOmMsuijhee9riA+IHNvdWp1dXNla2lvbnNlaWtpcm9rdXNvdWNoaVwgOwor6Iiq56m65a6H5a6Z5oqA6KGT56CU56m25omAID4ga291a3V1dWNodXVnaWp1dHN1a2Vua3l1dWpvXCA7Civmta7li5XlsI/mlbDngrnmvJTnrpfmqZ/mp4sgPiBmdWRvdXNob3VzdXV0ZW4nJ2VuemFua2lrb3VcIDsKK+ePvumHkeiHquWLlemgkOmHkeaUr+aJleapnyA+IGdlbmtpbmppZG91eW9raW5zaGloYXJhaWtpXCA7CivkuLvovp7pp4bli5Xlj6Xmp4vpgKDmlofms5UgPiBzaHVqaWt1ZG91a3Vrb3V6b3VidW5wb3VcIDsKK+e1jOa4iOWNlOWKm+mWi+eZuuapn+aniyA+IGtlaXphaWt5b3VyeW9rdWthaWhhdHN1a2lrb3VcIDsKK+WMl+a1t+mBk+mWi+eZuuW6gemVt+WumCA+IGhva2thaWRvdWthaWhhdHN1Y2hvdWNob3VrYW5cIDsKK+WkluWbveS6uueZu+mMsuiovOaYjuabuCA+IGdhaWtva3VqaW50b3Vyb2t1c2hvdW1laXNob1wgOwor5oim55Wl5YW15Zmo5YmK5rib5p2h57SEID4gc2Vucnlha3VoZWlraXNha3VnZW5qb3V5YWt1XCA7Civlm73pmpvmqZ/morDnv7voqLPljZTkvJogPiBrb2t1c2Fpa2lrYWlob24nJ3lha3VreW91a2FpXCA7Civlm73pmpvpm7vmsJfpgJrkv6HpgKPlkIggPiBrb2t1c2FpZGVua2l0c3V1c2hpbnJlbmdvdVwgOwor5rW35aSW57WM5riI5Y2U5Yqb5Z+66YeRID4ga2FpZ2Fpa2VpemFpa3lvdXJ5b2t1a2lraW5cIDsKK+aXpeexs+WuieWFqOS/nemanOadoee0hCA+IG5pY2hpYmVpYW56ZW5ob3Nob3Vqb3V5YWt1XCA7CivmiKbmsqHogIXov73mgrzoqJjlv7Xml6UgPiBzZW5ib3RzdXNoYXRzdWl0b3VraW5lbmJpXCA7CivmiKbooZPoiKrnqbrntbHliLbmnKzpg6ggPiBzZW5qdXRzdWtvdWt1dXRvdXNlaWhvbmJ1XCA7Civlt6Xmpa3pq5jnrYnlsILploDlrabmoKEgPiBrb3VneW91a291dG91c2VubW9uZ2Fra291XCA7CivljJflpKfopb/mtIvmnaHntITmqZ/mp4sgPiBraXRhdGFpc2VpeW91am91eWFrdWtpa291XCA7CivotoXlpKfopo/mqKHpm4bnqY3lm57ot68gPiBjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WMluWtpuWFteWZqOemgeatouadoee0hCA+IGthZ2FrdWhlaWtpa2luc2hpam91eWFrdVwgOwor6Zai56iO6LK/5piT5LiA6Iis5Y2U5a6aID4ga2FuemVpYm91ZWtpaXBwYW5reW91dGVpXCA7CivlnKjnlZnmnJ/plpPmm7TmlrDoqLHlj68gPiB6YWlyeXV1a2lrYW5rb3VzaGlua3lva2FcIDsKK+S4h+WbveWbvemam+mfs+aomeaWh+WtlyA+IGJhbmtva3Vrb2t1c2Fpb25weW91bW9qaVwgOwor5rW35rSL5oqV5qOE6KaP5Yi25p2h57SEID4ga2FpeW91dG91a2lraXNlaWpvdXlha3VcIDsKK+mHjueUn+WLleeJqeS/neitt+Wbo+S9kyA+IHlhc2VpZG91YnV0c3Vob2dvZGFudGFpXCA7Civoh6rli5XliJfou4rliLblvqHoo4Xnva4gPiBqaWRvdXJlc3NoYXNlaWd5b3NvdWNoaVwgOwor5aSp54S26LOH5rqQ5L+d6K236KuW6ICFID4gdGVuJyduZW5zaGlnZW5ob2dvcm9uc2hhXCA7CivpnZ7luLjkuovmhYvlr77lh6boqIjnlLsgPiBoaWpvdWppdGFpdGFpc2hva2Vpa2FrdVwgOwor6Ieq5YuV5YiX6LuK5YGc5q2i6KOF572uID4gamlkb3VyZXNzaGF0ZWlzaGlzb3VjaGlcIDsKK+i1pOWNgeWtl+Wbvemam+WnlOWToeS8miA+IHNla2lqdXVqaWtva3VzYWlpaW5rYWlcIDsKK+irh+ipseihqOekuuani+mAoOeQhuirliA+IGRhbndhaHlvdWppa291em91cmlyb25cIDsKK+WFseeUo+WFmuS4reWkruWnlOWToeS8miA+IGt5b3VzYW50b3VjaHV1b3VpaW5rYWlcIDsKK+awkeS4u+WFmuWFqOWbveWnlOWToeS8miA+IG1pbnNodXRvdXplbmtva3VpaW5rYWlcIDsKK+iLseiqnuWfuuekjuiDveWKm+ippumokyA+IGVpZ29raXNvbm91cnlva3VzaGlrZW5cIDsKK+S4gOiIrOWRveS7pOa8lOeul+apn+aniyA+IGlwcGFubWVpcmVpZW56YW5raWtvdVwgOwor55+l6K2Y6ZuG57SE5Z6L55Sj5qWtID4gY2hpc2hpa2lzaHV1eWFrdWdhdGFzYW5neW91XCA7Civoh6rlvovnpZ7ntYzlpLHoqr/nl4cgPiBqaXJpdHN1c2hpbmtlaXNoaXRjaG91c2hvdVwgOwor5rKW57iE6ZaL55m65bqB6ZW35a6YID4gb2tpbmF3YWthaWhhdHN1Y2hvdWNob3VrYW5cIDsKK+W8geiovOazleeahOWUr+eJqeirliA+IGJlbnNob3Vob3V0ZWtpeXVpYnV0c3Vyb25cIDsKK+Wbvemam+WNlOWKm+S6i+alreWboyA+IGtva3VzYWlreW91cnlva3VqaWd5b3VkYW5cIDsKK+e3j+WQiOeahOWTgeizqueuoeeQhiA+IHNvdWdvdXRla2loaW5zaGl0c3VrYW5yaVwgOwor55aR5Ly855u05o6l55uu55qE6KqeID4gZ2lqaWNob2t1c2V0c3Vtb2t1dGVraWdvXCA7CivkuIflm73okZfkvZzmqKnmnaHntIQgPiBiYW5rb2t1Y2hvc2FrdWtlbmpvdXlha3VcIDsKK+iogOiqnuWtpueahOWun+WcqOirliA+IGdlbmdvZ2FrdXRla2lqaXRzdXphaXJvblwgOwor5Yag54q25YuV6ISI6KGA5qCT55eHID4ga2Fuam91ZG91bXlha3VrZXNzZW5zaG91XCA7Civnp5HlrabmioDooZPluoHplbflrpggPiBrYWdha3VnaWp1dHN1Y2hvdWNob3VrYW5cIDsKK+i1pOihgOeQg+ayiOmZjemAn+W6piA+IHNla2tla2t5dXVjaGlua291c29rdWRvXCA7Civnn7PmsrnovLjlh7rlm73mqZ/mp4sgPiBzZWtpeXV5dXNodXRzdWtva3VraWtvdVwgOwor5YWs5YWx6IG35qWt5a6J5a6a5omAID4ga291a3lvdXNob2t1Z3lvdWFudGVpam9cIDsKK+aIpuihk+iIquepuue1seWItuePrSA+IHNlbmp1dHN1a291a3V1dG91c2VpaGFuXCA7Civoh6rli5Xph5Hpiq3lh7rlhaXmqZ8gPiBqaWRvdWtpbnNlbnNodXRzdW55dXVraVwgOwor5Zyw6ZyH6Zu354Gr5LqL6Kaq54i2ID4gamlzaGlua2FtaW5hcmlrYWppb3lhamlcIDsKK+WkmuiCoumBuOaKnuW8j+ippuWVjyA+IHRhc2hpc2VudGFrdXNoaWtpc2hpbW9uXCA7CivmlrDplqLopb/lm73pmpvnqbrmuK8gPiBzaGlua2Fuc2Fpa29rdXNhaWt1dWtvdVwgOwor6KiA6Kqe5a2m55qE6Kaz5b+16KuWID4gZ2VuZ29nYWt1dGVraWthbicnbmVucm9uXCA7CivlvoznmbrnmbrlsZXpgJTkuIrlm70gPiBrb3VoYXRzdWhhdHRlbnRvam91a29rdVwgOwor5oq55raI55m76Yyy6Ki85piO5pu4ID4gbWFzaG91dG91cm9rdXNob3VtZWlzaG9cIDsKK+e1jOa4iOS8geeUu+W6gemVt+WumCA+IGtlaXphaWtpa2FrdWNob3VjaG91a2FuXCA7Civlho3nlJ/kuI3oia/mgKfosqfooYAgPiBzYWlzZWlmdXJ5b3VzZWloaW5rZXRzdVwgOwor54Gr5Yqb5pSv5o+06Kq/5pW057eaID4ga2FyeW9rdXNoaWVuY2hvdXNlaXNlblwgOwor56C05aOK5rS75YuV6Ziy5q2i5rOVID4gaGFrYWlrYXRzdWRvdWJvdXNoaWhvdVwgOwor5Zu96Zqb6L+U5L+h5YiH5omL5Yi4ID4ga29rdXNhaWhlbnNoaW5raXR0ZWtlblwgOwor5Lit6I+v5Lq65rCR5YWx5ZKM5Zu9ID4gY2h1dWthamlubWlua3lvdXdha29rdVwgOwor5p2x5rW36YGT5LqU5Y2B5LiJ5qyhID4gdG91a2FpZG91Z29qdXVzYW50c3VnaVwgOwor5a6H5a6Z6ZaL55m65LqL5qWt5ZujID4gdWNodXVrYWloYXRzdWppZ3lvdWRhblwgOwor5LiJ6Lu45Zyn57iu6Kmm6aiT5qmfID4gc2FuamlrdWFzc2h1a3VzaGlrZW5raVwgOwor6KaW6IG06ICF5Y+C5Yqg55Wq57WEID4gc2hpY2hvdXNoYXNhbmthYmFuZ3VtaVwgOwor5bee6Zqb6YCa5ZWG5aeU5ZOh5LyaID4gc2h1dXNhaXRzdXVzaG91aWlua2FpXCA7Civlkajms6LmlbDlpInmj5voo4Xnva4gPiBzaHV1aGFzdXVoZW5rYW5zb3VjaGlcIDsKK+aFouaAp+eWsuWKtOeXh+WAmee+pCA+IG1hbnNlaWhpcm91c2hvdWtvdWd1blwgOwor5YWs5a6z5a++562W5Z+65pys5rOVID4ga291Z2FpdGFpc2FrdWtpaG9uaG91XCA7CivntYzmuIjlm6PkvZPpgKPlkIjkvJogPiBrZWl6YWlkYW50YWlyZW5nb3VrYWlcIDsKK+aIpumXmOmbu+WtkOaIpuaDheWgsSA+IHNlbnRvdWRlbnNoaXNlbmpvdWhvdVwgOwor54++6YeR6Ieq5YuV5pSv5omV5qmfID4gZ2Vua2luamlkb3VzaGloYXJhaWtpXCA7CivmnIDpq5jntYzllrbosqzku7vogIUgPiBzYWlrb3VrZWllaXNla2luaW5zaGFcIDsKK+ijheeUsuS6uuWToemBi+aQrOi7iiA+IHNvdWtvdWppbicnaW4nJ3VucGFuc2hhXCA7Civml6XmnKzoqp7og73lipvoqabpqJMgPiBuaWhvbmdvbm91cnlva3VzaGlrZW5cIDsKK+mfs+evgOS4u+mfs+eahOWtkOmfsyA+IG9uc2V0c3VzaHVvbnRla2lzaGlpblwgOwor6Ki85Yi45Y+W5byV5aeU5ZOh5LyaID4gc2hvdWtlbnRvcmloaWtpaWlua2FpXCA7CivmnIDpq5josqHli5nosqzku7vogIUgPiBzYWlrb3V6YWltdXNla2luaW5zaGFcIDsKK+efrei3nemboumbouedgOmZuOapnyA+IHRhbmt5b3JpcmljaGFrdXJpa3VraVwgOwor5qmf6IO95Y2Y5LiA5YyW5paH5rOVID4ga2lub3V0YW4nJ2l0c3VrYWJ1bnBvdVwgOwor55+l6IO95oOF5aCx56CU56m26YOoID4gY2hpbm91am91aG91a2Vua3l1dWJ1XCA7CivliqDlnKfmsLTlnovljp/lrZDngokgPiBrYWF0c3VzdWlnYXRhZ2Vuc2hpcm9cIDsKK+eSsOWkquW5s+a0i+WcsOmch+W4ryA+IGthbnRhaWhlaXlvdWppc2hpbnRhaVwgOwor5Lq656iu5beu5Yil5Li7576p6ICFID4gamluc2h1c2FiZXRzdXNodWdpc2hhXCA7Civoh6rnhLbnkrDlooPkv53lhajms5UgPiBzaGl6ZW5rYW5reW91aG96ZW5ob3VcIDsKK+eSsOWkquW5s+a0i+mAoOWxseW4ryA+IGthbnRhaWhlaXlvdXpvdXphbnRhaVwgOwor6KGM5YuV5Li7576p5b+D55CG5a2mID4ga291ZG91c2h1Z2lzaGlucmlnYWt1XCA7CivnrKzkuIDmrKHkuJbnlYzlpKfmiKYgPiBkYWlpY2hpamlzZWthaXRhaXNlblwgOwor5aSJ5YuV54K65pu/55u45aC05Yi2ID4gaGVuZG91a2F3YXNlc291YmFzZWlcIDsKK+atr+WGheeZguazleWwgumWgOWMuyA+IHNoaWthcnlvdWhvdXNlbm1vbicnaVwgOwor55Kw5aSq5bmz5rSL54Gr5bGx5bivID4ga2FudGFpaGVpeW91a2F6YW50YWlcIDsKK+Wun+aDheiqv+afu+WnlOWToeS8miA+IGppdHN1am91Y2hvdXNhaWlua2FpXCA7Civnp5Hlrabln7rnpI7noJTnqbbmiYAgPiBrYWdha3VraXNva2Vua3l1dXNob1wgOwor5aSJ5b2i55Sf5oiQ57Wx6Kqe6KuWID4gaGVua2Vpc2Vpc2VpdG91Z29yb25cIDsKK+Wkp+imj+aooembhuepjeWbnui3ryA+IGRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivljZfnhKHlppnms5Xok67oj6/ntYwgPiBuYW11bXlvdWhvdXJlbmdla3lvdVwgOwor5pyq56K66KqN6aOb6KGM54mp5L2TID4gbWlrYWt1bmluaGlrb3VidXR0YWlcIDsKK+S4gOmFuOWMlueCree0oOS4reavkiA+IGlzc2Fua2F0YW5zb2NodXVkb2t1XCA7CivlhazmraPlj5blvJXlp5Tlk6HkvJogPiBrb3VzZWl0b3JpaGlraWlpbmthaVwgOwor56iO5byV5YmN5b2T5pyf5Yip55uKID4gemVpYmlraW1hZXRvdWtpcmlla2lcIDsKK+mAo+mCpuWPluW8leWnlOWToeS8miA+IHJlbnBvdXRvcmloaWtpaWlua2FpXCA7CivmtYHooYzmgKfogLPkuIvohbrngo4gPiByeXV1a291c2VpamlrYXNlbicnZW5cIDsKK+e3j+eQhuW6nOe3j+WLmemVt+WumCA+IHNvdXJpZnVzb3VtdWNob3VrYW5cIDsKK+eSsOWig+S/neitt+S4u+e+qeiAhSA+IGthbmt5b3Vob2dvc2h1Z2lzaGFcIDsKK+aXpeacrOmZuOS4iuiHquihm+maiiA+IG5paG9ucmlrdWpvdWppZWl0YWlcIDsKK+mHkeWcsOmHkeacrOS9jeWItuW6piA+IGtpbmppZ2FuZWhvbicnaXNlaWRvXCA7Civph43opoHnhKHlvaLmlofljJbosqEgPiBqdXV5b3VtdWtlaWJ1bmthemFpXCA7CivntYzmuIjnpL7kvJrnkIbkuovkvJogPiBrZWl6YWlzaGFrYWlyaWppa2FpXCA7CivkuLvoqp7liqnli5XoqZ7lgJLnva4gPiBzaHVnb2pvZG91c2hpdG91Y2hpXCA7CivlkIjlkIzmioDooZPlp5Tlk6HkvJogPiBnb3Vkb3VnaWp1dHN1aWlua2FpXCA7Civoh6rli5XmlrnlkJHmjqLnn6XmqZ8gPiBqaWRvdWhvdWtvdXRhbmNoaWtpXCA7CivluLDpgoTkuI3og73pmZDnlYzngrkgPiBraWthbmZ1bm91Z2Vua2FpdGVuXCA7Civlm73lrrblhazlronlp5Tlk6HplbcgPiBrb2trYWtvdWFuJydpaW5jaG91XCA7Civlm73kvJrlr77nrZblp5Tlk6HkvJogPiBrb2trYWl0YWlzYWt1aW5rYWlcIDsKK+esrOS6jOasoeS4lueVjOWkp+aIpiA+IGRhaW5pamlzZWthaXRhaXNlblwgOwor5Lqc57Gz5Yip5Yqg5ZCI6KGG5Zu9ID4gYW1lcmlrYWdhc3NodXVrb2t1XCA7Civml6XmnKzoiKrnqbroh6rooZvpmoogPiBuaWhvbmtvdWt1dWppZWl0YWlcIDsKK+espuWPt+WMluaWh+Wtl+mbhuWQiCA+IGZ1Z291a2Ftb2ppc2h1dWdvdVwgOwor5pel5pys5rW35LiK6Ieq6KGb6ZqKID4gbmlob25rYWlqb3VqaWVpdGFpXCA7CivkuIvkvY3nr4TnlofljJbntKDmgKcgPiBrYWloYW5jaHV1a2Fzb3NlaVwgOwor6YG45oyZ566h55CG5aeU5ZOh5LyaID4gc2Vua3lva2FucmlpaW5rYWlcIDsKK+S4i+S9jeevhOeWh+WMluWOn+eQhiA+IGthaWhhbmNodXVrYWdlbnJpXCA7CivogLPpvLvlkr3llonlsILploDljLsgPiBqaWJpaW5rb3VzZW5tb24nJ2lcIDsKK+itsOmZoumBi+WWtuWnlOWToeS8miA+IGdpaW4nJ3VuJydlaWlpbmthaVwgOwor77yS77yQ77yQ77yQ5bm05ZWP6aGMID4gbmlzZW4nJ25lbm1vbmRhaVwgOwor5a6X5pWZ55qE54us56uL5oCnID4gc2h1dWt5b3V0ZWtpZG9rdXJpdHN1c2VpXCA7Civnm7TmjqXnhafmupblsITmkoMgPiBjaG9rdXNldHN1c2hvdWp1bnNoYWdla2lcIDsKK+eJueauiuWPluaJsemDteS+vyA+IHRva3VzaHV0b3JpYXRzdWthaXl1dWJpblwgOwor5Lm+5rm/55CD5rm/5bqm6KiIID4ga2Fuc2hpdHN1a3l1dXNoaXRzdWRva2VpXCA7CivlnKflr4bpmY3kvI/lv5zlipsgPiBhdHN1bWl0c3Vrb3VmdWt1b3VyeW9rdVwgOwor5YWs6KqN5Y245aOy5qWt6ICFID4ga291bmluJydvcm9zaGl1cmlneW91c2hhXCA7CivmoLjliIboo4LnlJ/miJDniakgPiBrYWt1YnVucmV0c3VzZWlzZWlidXRzdVwgOwor6IG35qWt5Yil6Zu76Kmx5bizID4gc2hva3VneW91YmV0c3VkZW53YWNob3VcIDsKK+WFpeWtpuWFsemAmuippumokyA+IG55dXVnYWt1a3lvdXRzdXVzaGlrZW5cIDsKK+WupOWGheeuoeW8pualveWboyA+IHNoaXRzdW5haWthbmdlbmdha3VkYW5cIDsKK+adseS6rOagquW8j+W4guWgtCA+IHRvdWt5b3VrYWJ1c2hpa2lzaGlqb3VcIDsKK+eiuueOh+WvhuW6pumWouaVsCA+IGtha3VyaXRzdW1pdHN1ZG9rYW5zdXVcIDsKK+WOn+WtkOWKm+eZuumbu+aJgCA+IGdlbnNoaXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+WLp+WWhOaHsuaCquWwj+iqrCA+IGthbnplbmNob3Vha3VzaG91c2V0c3VcIDsKK+adreWRqOmdouaRqeaTpuWKmyA+IGt1aXNodXVtZW5tYXNhdHN1cnlva3VcIDsKK+mWk+aOpeeFp+a6luWwhOaSgyA+IGthbnNldHN1c2hvdWp1bnNoYWdla2lcIDsKK+aWsOimj+agquW8j+WFrOmWiyA+IHNoaW5raWthYnVzaGlraWtvdWthaVwgOwor5a2m57+S5oyH5bCO6KaB6aCYID4gZ2FrdXNodXVzaGlkb3V5b3VyeW91XCA7Civml6nnmbrmgKfnl7TlkYbnl4cgPiBzb3VoYXRzdXNlaWNoaWhvdXNob3VcIDsKK+S/oeeUqOWNlOWQjOe1hOWQiCA+IHNoaW4nJ3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+W8pualveWbm+mHjeWlj+absiA+IGdlbmdha3VzaGlqdXVzb3VreW9rdVwgOwor5ryU57m555qE6Kqs5piO5rOVID4gZW4nJ2VraXRla2lzZXRzdW1laWhvdVwgOwor5rex5Zyo5oCn55yf6I+M55eHID4gc2hpbnphaXNlaXNoaW5raW5zaG91XCA7CivntbHnjofmnZ/nuJvnkIboq5YgPiB0b3Vzb3RzdXNva3ViYWt1cmlyb25cIDsKK+acrOaFi+aAp+mrmOihgOWcpyA+IGhvbnRhaXNlaWtvdWtldHN1YXRzdVwgOwor6Zm45LiK56uv5bGA6KOF572uID4gcmlrdWpvdXRhbmt5b2t1c291Y2hpXCA7Civml6XnsbPosr/mmJPmkanmk6YgPiBuaWNoaWJlaWJvdWVraW1hc2F0c3VcIDsKK+mAmuWVhueUo+alreWkp+iHoyA+IHRzdXVzaG91c2FuZ3lvdWRhaWppblwgOwor6YCa5ZWG6Iiq5rW35p2h57SEID4gdHN1dXNob3Vrb3VrYWlqb3V5YWt1XCA7Civou5/liKTlrprorZjliKXlmaggPiBuYW5oYW50ZWlzaGlraWJldHN1a2lcIDsKK+epuuaDs+enkeWtpuWwj+iqrCA+IGt1dXNvdWthZ2FrdXNob3VzZXRzdVwgOwor5paw5YWl56S+5ZOh5pWZ6IKyID4gc2hpbicnbnl1dXNoYWlua3lvdWlrdVwgOwor5o6o5aWo5paH54yu55uu6YyyID4gc3Vpc2hvdWJ1bmtlbm1va3Vyb2t1XCA7CivlvrPlt53kuInku6PlrrblhYkgPiB0b2t1Z2F3YXNhbmRhaWllbWl0c3VcIDsKK+eUn+a0u+WNlOWQjOe1hOWQiCA+IHNlaWthdHN1a3lvdWRvdWt1bWlhaVwgOwor5paZ6YeR5Yil57SN6YO15L6/ID4gcnlvdWtpbmJldHN1bm91eXV1YmluXCA7CivkuK3ot53pm6LmoLjmiKblipsgPiBjaHV1a3lvcmlrYWt1c2Vucnlva3VcIDsKK+i+sualreWNlOWQjOe1hOWQiCA+IG5vdWd5b3VreW91ZG91a3VtaWFpXCA7CivlpKfpmbjmqKrmlq3piYTpgZMgPiB0YWlyaWt1b3VkYW50ZXRzdWRvdVwgOwor6auY5YiG5a2Q5ZC45Y+O5L2TID4ga291YnVuc2hpa3l1dXNodXV0YWlcIDsKK+aXpeexs+ani+mAoOWNlOitsCA+IG5pY2hpYmVpa291em91a3lvdWdpXCA7CivmqZ/morDnv7voqLPljZTkvJogPiBraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+S4reWkruihjOaUv+WumOW6gSA+IGNodXVvdWd5b3VzZWlrYW5jaG91XCA7CivljJflpKfopb/mtIvmnaHntIQgPiBraXRhdGFpc2VpeW91am91eWFrdVwgOwor6Zu75rCX6YCa5L+h5aSn5a2mID4gZGVua2l0c3V1c2hpbmRhaWdha3VcIDsKK+iKs+mmmeaXj+WMluWQiOeJqSA+IGhvdWtvdXpva3VrYWdvdWJ1dHN1XCA7CivlhoXplqPlrpjmiL/plbflrpggPiBuYWlrYWt1a2FuYm91Y2hvdWthblwgOwor5bym5qW95LqU6YeN5aWP5puyID4gZ2VuZ2FrdWdvanV1c291a3lva3VcIDsKK+Wuh+WumemWi+eZuuioiOeUuyA+IHVjaHV1a2FpaGF0c3VrZWlrYWt1XCA7CivnsbPpgKPpgqboiKrnqbrlsYAgPiBiZWlyZW5wb3VrdXVrb3VreW9rdVwgOwor5aSW5Zu95Lq655m76Yyy5rOVID4gZ2Fpa29rdWppbnRvdXJva3Vob3VcIDsKK+WFseeUo+WFmuaUv+ayu+WxgCA+IGt5b3VzYW50b3VzZWlqaWt5b2t1XCA7CivmnZ/nuJvntpnmib/ljp/nkIYgPiBzb2t1YmFrdWtlaXNob3VnZW5yaVwgOwor5LiJ6Lu45Zyn57iu6Kmm6aiTID4gc2FuamlrdWFzc2h1a3VzaGlrZW5cIDsKK+epuui7jemAo+e1oeWwhuagoSA+IGt1dWd1bnJlbnJha3VzaG91a291XCA7Civljbjlo7LniankvqHmjIfmlbAgPiBvcm9zaGl1cmlidWtrYXNoaXN1dVwgOwor5YaZ55yf5Yik5a6a5rG65YudID4gc2hhc2hpbmhhbnRlaWtlc3Nob3VcIDsKK+WJjeeri+iFuuiCpeWkp+eXhyA+IHplbnJpdHN1c2VuaGlkYWlzaG91XCA7CivoqqzmmI7nmoTlpqXlvZPmgKcgPiBzZXRzdW1laXRla2lkYXRvdXNlaVwgOwor5YWx6YCa5LiA5qyh6Kmm6aiTID4ga3lvdXRzdXVpY2hpamlzaGlrZW5cIDsKK+esrOS4ieeorumDteS+v+eJqSA+IGRhaXNhbnNodXl1dWJpbmJ1dHN1XCA7Civlj4vlpb3pgJrllYboiKrmtbcgPiB5dXVrb3V0c3V1c2hvdWtvdWthaVwgOwor54Sh5ouF5L+d6LK45LuY6YeRID4gbXV0YW5wb2thc2hpdHN1a2VraW5cIDsKK+W/heimgeWNgeWIhuadoeS7tiA+IGhpdHN1eW91anV1YnVuam91a2VuXCA7Civnsr7npZ7nmoTmjIflsI7ogIUgPiBzZWlzaGludGVraXNoaWRvdXNoYVwgOwor5Y6f5a2Q54mp55CG5a2m6ICFID4gZ2Vuc2hpYnV0c3VyaWdha3VzaGFcIDsKK+eyvuWvhuapn+aisOW3pealrSA+IHNlaW1pdHN1a2lrYWlrb3VneW91XCA7Civlho3lhaXlm73oqLHlj6/mm7ggPiBzYWlueXV1a29rdWt5b3VrYXNob1wgOwor5a6a5b2i5aSW6YO15L6/54mpID4gdGVpa2VpZ2FpeXV1YmluYnV0c3VcIDsKK+i2heS4puWIl+ioiOeul+apnyA+IGNob3VoZWlyZXRzdWtlaXNhbmtpXCA7CivkuK3mnqLnpZ7ntYzns7vntbEgPiBjaHV1c3V1c2hpbmtlaWtlaXRvdVwgOwor5Lyd6YCB5Yi25b6h5ouh5by1ID4gZGVuc291c2VpZ3lva2FrdWNob3VcIDsKK+aXpeS4reWPi+WlveWNlOS8miA+IG5pdGNodXV5dXVrb3VreW91a2FpXCA7Civlm73msJHph5Hono3lhazluqsgPiBrb2t1bWlua2luJyd5dXVrb3Vrb1wgOwor5Y+j6L665Y2Y57SU55ax55a5ID4ga291aGVudGFuanVuaG91c2hpblwgOwor6ZuG5Zuj5a6J5YWo5L+d6ZqcID4gc2h1dWRhbicnYW56ZW5ob3Nob3VcIDsKK+WQjeelnumrmOmAn+mBk+i3ryA+IG1laXNoaW5rb3Vzb2t1ZG91cm9cIDsKK+aUvuWwhOaAp+mZjeS4i+eJqSA+IGhvdXNoYXNlaWtvdWthYnV0c3VcIDsKK+WKo+aAp+mBuuS8neW9ouizqiA+IHJlc3NlaWlkZW5rZWlzaGl0c3VcIDsKK+WIneacn+mBuOaKnumgheebriA+IHNob2tpc2VudGFrdWtvdW1va3VcIDsKK+WFqOWbvea0pea0pea1pua1piA+IHplbmtva3V0c3V0c3V1cmF1cmFcIDsKK+S/oeS7u+e1seayu+WItuW6piA+IHNoaW4nJ25pbnRvdWNoaXNlaWRvXCA7CivkuLvopoHpg6jntYLnq6/lnosgPiBzaHV5b3VidXNodXV0YW5nYXRhXCA7CivlkIjmiJDljJblrablt6Xmpa0gPiBnb3VzZWlrYWdha3Vrb3VneW91XCA7Civlm73msJHkvZPogrLlpKfkvJogPiBrb2t1bWludGFpaWt1dGFpa2FpXCA7Civlm73pmpvpm7vkv6Hpm7voqbEgPiBrb2t1c2FpZGVuc2hpbmRlbndhXCA7Civpm7vlrZDos4fph5HmjK/mm78gPiBkZW5zaGlzaGlraW5mdXJpa2FlXCA7CivlvKbmpb3lm5vph43lpY/lm6MgPiBnZW5nYWt1c2hpanV1c291ZGFuXCA7CivoiKrnqbrkuqTpgJrnrqHliLYgPiBrb3VrdXVrb3V0c3V1a2Fuc2VpXCA7CivosqHmlL/lnYfooaHoqIjnlLsgPiB6YWlzZWlraW5rb3VrZWlrYWt1XCA7Civml6XmnKzopo/moLzljZTkvJogPiBuaXBwb25raWtha3VreW91a2FpXCA7Civli5XnianmhJvorbfljZTkvJogPiBkb3VidXRzdWFpZ29reW91a2FpXCA7CivnsbPoiKrnqbrlroflrpnlsYAgPiBiZWlrb3VrdXV1Y2h1dWt5b2t1XCA7Civlhajlm73mtKXjgIXmtabjgIUgPiB6ZW5rb2t1dHN1dHN1dXJhdXJhXCA7Civml6XmnKzlrabooZPkvJrorbAgPiBuaWhvbmdha3VqdXRzdWthaWdpXCA7CivkurrplpPnkrDlooPlrqPoqIAgPiBuaW5nZW5rYW5reW91c2VuZ2VuXCA7CivlrrblroXmjZzntKLku6TnirYgPiBrYXRha3Vzb3VzYWt1cmVpam91XCA7CivlronlnJ/moYPlsbHmmYLku6MgPiBhenVjaGltb21veWFtYWppZGFpXCA7CivnlJ/nkIbnmoTpo5/loanmsLQgPiBzZWlyaXRla2lzaG9rdWVuc3VpXCA7CivnkrDlpKrlubPmtIvoq7jlm70gPiBrYW50YWloZWl5b3VzaG9rb2t1XCA7CivngavlipvmlK/mj7ToqIjnlLsgPiBrYXJ5b2t1c2hpZW5rZWlrYWt1XCA7CivokZfkvZzmqKnmiYDmnInogIUgPiBjaG9zYWt1a2Vuc2hveXV1c2hhXCA7CivmlbDlrabnmoTluLDntI3ms5UgPiBzdXVnYWt1dGVraWtpbm91aG91XCA7Civml6XmnKzlm73nibnoqLHluoEgPiBuaWhvbmtva3V0b2treW9jaG91XCA7Civpo5/ns6fnrqHnkIbliLbluqYgPiBzaG9rdXJ5b3VrYW5yaXNlaWRvXCA7CivnlJ/nianljJblrablhbXlmaggPiBzZWlidXRzdWthZ2FrdWhlaWtpXCA7CivlpbPmqKnmi6HlvLXoq5bogIUgPiBqb2tlbmtha3VjaG91cm9uc2hhXCA7CivntbHlkIjluZXlg5rkvJrorbAgPiB0b3Vnb3ViYWt1cnlvdWthaWdpXCA7CivlsITmkoPnpoHmraLlnLDln58gPiBzaGFnZWtpa2luc2hpY2hpaWtpXCA7Civnibnlkb3lhajmqKnlhazkvb8gPiB0b2t1bWVpemVua2Vua291c2hpXCA7CivmlrDogZ7lgKvnkIbntrHpoJggPiBzaGluYnVucmlucmlrb3VyeW91XCA7CivoqJjov7DnmoTlpqXlvZPmgKcgPiBraWp1dHN1dGVraWRhdG91c2VpXCA7CivkuIflm73pg7Xkvr/pgKPlkIggPiBiYW5rb2t1eXV1YmlucmVuZ291XCA7CivkvY/lroXph5Hono3lhazluqsgPiBqdXV0YWt1a2luJyd5dXVrb3Vrb1wgOwor5Y2Y5L2N5L2T56mN6YeN6YePID4gdGFuJydpdGFpc2VraWp1dXJ5b3VcIDsKK+e1seS4gOWcsOaWuemBuOaMmSA+IHRvdWl0c3VjaGlob3VzZW5reW9cIDsKK+WFrOmWi+W4guWgtOaUv+etliA+IGtvdWthaXNoaWpvdXNlaXNha3VcIDsKK+WcsOeQg+ims+a4rOihm+aYnyA+IGNoaWt5dXVrYW5zb2t1ZWlzZWlcIDsKK+mHjemHj+aLs+mXmOmBuOaJiyA+IGp1dXJ5b3VrZW50b3VzZW5zaHVcIDsKK+S6uuW3peawl+iDuOeZguazlSA+IGppbmtvdWtpa3lvdXJ5b3Vob3VcIDsKK+WcsOaWueWFrOWFseWbo+S9kyA+IGNoaWhvdWtvdWt5b3VkYW50YWlcIDsKK+aJi+agueeuoeeXh+WAmee+pCA+IHNodWtvbmthbnNob3Vrb3VndW5cIDsKK+mrmOWIhuWtkOWMluWQiOeJqSA+IGtvdWJ1bnNoaWthZ291YnV0c3VcIDsKK+mZuOS4iuS9nOaIpuacrOmDqCA+IHJpa3Vqb3VzYWt1c2VuaG9uYnVcIDsKK+aUvuWwhOaAp+W7g+ajhOeJqSA+IGhvdXNoYXNlaWhhaWtpYnV0c3VcIDsKK+mAhui7ouWIhuW4g+S/guaVsCA+IGd5YWt1dGVuYnVucHVrZWlzdXVcIDsKK+icmOibm+iGnOS4i+WHuuihgCA+IGt1bW9tYWt1a2FzaHVra2V0c3VcIDsKK+WFseWQjOaVkea4iOWfuumHkSA+IGt5b3Vkb3VreXV1c2Fpa2lraW5cIDsKK+S/nemZuumHkeWPl+WPluS6uiA+IGhva2Vua2luJyd1a2V0b3JpbmluXCA7Civpmbjou43lo6vlrpjlrabmoKEgPiByaWt1Z3Vuc2hpa2FuZ2Fra291XCA7CivmvIHmpa3lsILnrqHmsLTln58gPiBneW9neW91c2Vua2Fuc3VpaWtpXCA7CivoirjooZPoh7PkuIrkuLvnvqkgPiBnZWlqdXRzdXNoaWpvdXNodWdpXCA7Civnibnlkb3lhajmqKnlpKfkvb8gPiB0b2t1bWVpemVua2VudGFpc2hpXCA7Civov5HmjqXoiKrnqbrmlK/mj7QgPiBraW5zZXRzdWtvdWt1dXNoaWVuXCA7CivmnInmqZ/msLTpioDkuK3mr5IgPiB5dXVraXN1aWdpbmNodXVkb2t1XCA7CivnkrDlpKrlubPmtIvmp4vmg7MgPiBrYW50YWloZWl5b3Vrb3Vzb3VcIDsKK+WFrOeahOS4jeazleWmqOWusyA+IGtvdXRla2lmdWhvdWJvdWdhaVwgOwor5oim6ZeY5pSv5o+06KiI55S7ID4gc2VudG91c2hpZW5rZWlrYWt1XCA7Civlm57nt5rliLblvqHopo/liYcgPiBrYWlzZW5zZWlneW9raXNva3VcIDsKK+a4r+a5vumBi+mAgeS6i+alrSA+IGtvdXdhbicndW5zb3VqaWd5b3VcIDsKK+mWgOaIuOmWi+aUvuaUv+etliA+IG1vbmtva2FpaG91c2Vpc2FrdVwgOwor5p2x5ZCN6auY6YCf6YGT6LevID4gdG91bWVpa291c29rdWRvdXJvXCA7CivlhoXplqPnt4/nkIblpKfoh6MgPiBuYWlrYWt1c291cmlkYWlqaW5cIDsKK+aXpeacrOaUvumAgeWNlOS8miA+IG5paG9uaG91c291a3lvdWthaVwgOwor6Iiq56m65a6H5a6Z5bel5qWtID4ga291a3V1dWNodXVrb3VneW91XCA7Civlronlhajkv53pmpzmnaHntIQgPiBhbnplbmhvc2hvdWpvdXlha3VcIDsKK+S4u+WDjeWcn+Wcp+S/guaVsCA+IHNodWRvdWRvYXRzdWtlaXN1dVwgOwor5Y+N5bCE55qE5Y2K6aCG5bqPID4gaGFuc2hhdGVraWhhbmp1bmpvXCA7Civlm73pmpvpgJrosqjln7rph5EgPiBrb2t1c2FpdHN1dWtha2lraW5cIDsKK+efreacn+mbhuS4reism+W6pyA+IHRhbmtpc2h1dWNodXVrb3V6YVwgOwor5pel5pys6L6y5p6X6KaP5qC8ID4gbmlob24nJ25vdXJpbmtpa2FrdVwgOwor6Iiq56m65a6H5a6Z55Sj5qWtID4ga291a3V1dWNodXVzYW5neW91XCA7Civlk4Hos6rkv53mjIHmnJ/pmZAgPiBoaW5zaGl0c3Vob2ppa2lnZW5cIDsKK+aXpeacrOW3pealreimj+agvCA+IG5paG9ua291Z3lvdWtpa2FrdVwgOwor5Lit6Led6Zui5qC45YW15ZmoID4gY2h1dWt5b3Jpa2FrdWhlaWtpXCA7CivphbjljJbpgoTlhYPlj43lv5wgPiBzYW5rYWthbmdlbmhhbicnbm91XCA7Civlhazli5nln7fooYzlpqjlrrMgPiBrb3VtdXNoaWtrb3Vib3VnYWlcIDsKK+mrmOetieWwgumWgOWtpuagoSA+IGtvdXRvdXNlbm1vbmdha2tvdVwgOwor5q2p5YW15oim6ZeY6LuK5LihID4gaG9oZWlzZW50b3VzaGFyeW91XCA7CivlhbHlkIzoqJjogIXkvJroposgPiBreW91ZG91a2lzaGFrYWlrZW5cIDsKK+WkqumZveeGsea4qeawtOWZqCA+IHRhaXlvdW5ldHN1b25zdWlraVwgOwor6Z2Z5q2i5Zyf5Zyn5L+C5pWwID4gc2Vpc2hpZG9hdHN1a2Vpc3V1XCA7Civkurrlj6Pli5XmhYvntbHoqIggPiBqaW5rb3Vkb3V0YWl0b3VrZWlcIDsKK+WbvemAo+S6i+WLmee3j+mVtyA+IGtva3VyZW5qaW11c291Y2hvdVwgOwor5LiN5YuV55Sj5Y+W5b6X56iOID4gZnVkb3VzYW5zaHV0b2t1emVpXCA7CivlubTmrKHmnInntabkvJHmmocgPiBuZW5qaXl1dWt5dXVreXV1a2FcIDsKK+WNgeS6jOaMh+iFuOa9sOeYjSA+IGp1dW5pc2hpY2hvdWthaXlvdVwgOwor5oim5LqJ54qv572q5rOV5bu3ID4gc2Vuc291aGFuemFpaG91dGVpXCA7CivlubTlip/luo/liJfliLbluqYgPiBuZW5rb3Vqb3JldHN1c2VpZG9cIDsKK+i+suael+awtOeUo+Wkp+iHoyA+IG5vdXJpbnN1aXNhbmRhaWppblwgOwor5Li76KaB6YOo5YWI5bCO5Z6LID4gc2h1eW91YnVzZW5kb3VnYXRhXCA7Civlm73msJHlgaXlurfkv53pmbogPiBrb2t1bWlua2Vua291aG9rZW5cIDsKK+S4jeWumuioiOmHj+epuumWkyA+IGZ1dGVpa2VpcnlvdWt1dWthblwgOwor5Y+N5bid5Zu95Li7576p6ICFID4gaGFudGVpa29rdXNodWdpc2hhXCA7Civpm7vojbfntZDlkIjntKDlrZAgPiBkZW5rYWtldHN1Z291c29zaGlcIDsKK+aciemZkOeKtuaFi+aWh+azlSA+IHl1dWdlbmpvdXRhaWJ1bnBvdVwgOwor5L+u5q2j6LOH5pys5Li7576pID4gc2h1dXNlaXNoaWhvbnNodWdpXCA7CivkuIDljbXmgKflj4znlJ/lhZAgPiBpY2hpcmFuc2Vpc291c2VpamlcIDsKK+WcsOS4rea1t+aAp+awl+WAmSA+IGNoaWNodXVrYWlzZWlraWtvdVwgOwor5oqV6LOH5pyJ5L6h6Ki85Yi4ID4gdG91c2hpeXV1a2FzaG91a2VuXCA7CivliY3mlrnlho3oo5zntabngrkgPiB6ZW5wb3VzYWlob2t5dXV0ZW5cIDsKK+eri+aGsuWQm+S4u+aUv+S9kyA+IHJpa2tlbmt1bnNodXNlaXRhaVwgOwor5pS+6YCB56aB5q2i55So6KqeID4gaG91c291a2luc2hpeW91Z29cIDsKK+WNgeS4gOmdouims+S4lumfsyA+IGp1dWljaGltZW5rYW56ZW9uXCA7CivlvaLnirboqJjmhrblkIjph5EgPiBrZWlqb3VraW9rdWdvdWtpblwgOwor6KGM5YuV55m66LW35pmC5Yi7ID4ga291ZG91aGFra2lqaWtva3VcIDsKK+WNgemDqOmWgOWIhumhnuazlSA+IGp1dWJ1bW9uYnVucnVpaG91XCA7CivkuJbnlYzkuIDlkajml4XooYwgPiBzZWthaWlzc2h1dXJ5b2tvdVwgOwor5LiW55WM5Lq65qip5a6j6KiAID4gc2VrYWlqaW5rZW5zZW5nZW5cIDsKK+WFrOeahOWMu+eZguapn+mWoiA+IGtvdXRla2lpcnlvdWtpa2FuXCA7Civlj5flg43lnJ/lnKfkv4LmlbAgPiBqdWRvdWRvYXRzdWtlaXN1dVwgOwor5LiN56K65a6a5oCn5Y6f55CGID4gZnVrYWt1dGVpc2VpZ2VucmlcIDsKK+S6jOetiei+uuS4ieinkuW9oiA+IG5pdG91aGVuc2Fua2Fra2VpXCA7CivmlL/ku6TmjIflrprpg73luIIgPiBzZWlyZWlzaGl0ZWl0b3NoaVwgOwor54Sh5ouF5L+d5YCf5YWl6YeRID4gbXV0YW5wb2thcmlpcmVraW5cIDsKK+WNmOS9jeWKtOWDjee1hOWQiCA+IHRhbicnaXJvdWRvdWt1bWlhaVwgOwor5Lit5aSu5Yem55CG6KOF572uID4gY2h1dW91c2hvcmlzb3VjaGlcIDsKK+asp+W3numAmuiyqOWNmOS9jSA+IG91c2h1dXRzdXVrYXRhbicnaVwgOwor6Ieq55Sx6LK/5piT5biv5Z+fID4gaml5dXVib3Vla2l0YWlpa2lcIDsKK+aBi+aEm+iHs+S4iuS4u+e+qSA+IHJlbicnYWlzaGlqb3VzaHVnaVwgOwor6Ieq5YuV6LuK5L+d6Zm65paZID4gamlkb3VzaGFob2tlbnJ5b3VcIDsKK+aIpuWgtOiIquepuumYu+atoiA+IHNlbmpvdWtvdWt1dXNvc2hpXCA7CivntbHlkIjlj4LorIDmnKzpg6ggPiB0b3Vnb3VzYW5ib3Vob25idVwgOwor5pyA6ZW35LiN5YCS6Led6ZuiID4gc2FpY2hvdWZ1dG91a3lvcmlcIDsKK+WNsOixoeS4u+e+qemfs+alvSA+IGluc2hvdXNodWdpb25nYWt1XCA7Civov5Hku6PkupTnqK7nq7bmioAgPiBraW5kYWlnb3NodWt5b3VnaVwgOwor5b6M5pa55Zyw5Z+f6K2m5YKZID4ga291aG91Y2hpaWtpa2VpYmlcIDsKK+iHquWLleaTjee4puijhee9riA+IGppZG91c291anV1c291Y2hpXCA7Civpg73luILlr77mipfph47nkIMgPiB0b3NoaXRhaWtvdXlha3l1dVwgOwor6YeR5Ymb5aSc5Y+J5aaZ546LID4ga29uZ291eWFzaGFteW91b3VcIDsKK+mrmOmAn+a8lOeul+apn+aniyA+IGtvdXNva3Vlbnphbmtpa291XCA7Civpo5vooYznpoHmraLnqbrln58gPiBoaWtvdWtpbnNoaWt1dWlraVwgOwor55Kw5aKD5L+d6K236KuW6ICFID4ga2Fua3lvdWhvZ29yb25zaGFcIDsKK+mAsemWk+Wkqeawl+S6iOWgsSA+IHNodXVrYW50ZW5raXlvaG91XCA7CivmlL7lsITnt5rmhJ/lj5fmgKcgPiBob3VzaGFzZW5rYW5qdXNlaVwgOwor56S+5Lya5rCR5Li75Li7576pID4gc2hha2FpbWluc2h1c2h1Z2lcIDsKK+mDqOWIhuaDheWgseani+mAoCA+IGJ1YnVuam91aG91a291em91XCA7CivkuIDmjJnmiYvkuIDmipXotrMgPiBpa2t5b3NodWl0dG91c29rdVwgOwor5pyJ5b2i5Zu65a6a6LOH55SjID4geXV1a2Vpa290ZWlzaGlzYW5cIDsKK+mjm+ihjOiomOmMsuijhee9riA+IGhpa291a2lyb2t1c291Y2hpXCA7Civooqvmi4Xkv53lgrXmqKnpoY0gPiBoaXRhbnBvc2Fpa2VuZ2FrdVwgOwor5LqM5Lqk5pu/5Yi25Yq05YONID4gbmlrb3V0YWlzZWlyb3Vkb3VcIDsKK+S/neWuiOezu+eEoeaJgOWxniA+IGhvc2h1a2VpbXVzaG96b2t1XCA7Civlj43ou6LliIbluIPkv4LmlbAgPiBoYW50ZW5idW5wdWtlaXN1dVwgOwor56m65oy66ZmN5LiL5Zyw5Z+fID4ga3V1dGVpa291a2FjaGlpa2lcIDsKK+eBq+WKm+aUr+aPtOmDqOmaiiA+IGthcnlva3VzaGllbmJ1dGFpXCA7CivmrYzoiJ7kvI7ljYHlhavnlaogPiBrYWJ1a2lqdXVoYWNoaWJhblwgOwor5aSn6YeP56C05aOK5YW15ZmoID4gdGFpcnlvdWhha2FpaGVpa2lcIDsKK+WPjeWwhOS/guaVsOe3muWbsyA+IGhhbnNoYWtlaXN1dXNlbnp1XCA7CivntKDnspLlrZDliqDpgJ/lmaggPiBzb3J5dXVzaGlrYXNva3VraVwgOwor6Ieq55Sx6LK/5piT5Zyw5Z+fID4gaml5dXVib3Vla2ljaGlpa2lcIDsKK+WFrOmWi+W4guWgtOaTjeS9nCA+IGtvdWthaXNoaWpvdXNvdXNhXCA7Civkurrouqvkv53orbfku6TnirYgPiBqaW5zaGluaG9nb3JlaWpvdVwgOwor5q+N5a2Q5YGl5bq35omL5bizID4gYm9zaGlrZW5rb3V0ZWNob3VcIDsKK+WOmueUn+W5tOmHkeS/nemZuiA+IGtvdXNlaW5lbmtpbmhva2VuXCA7CivmgKfooYzngrrmhJ/mn5Pnl4cgPiBzZWlrb3Vpa2Fuc2Vuc2hvdVwgOwor55Sf5ZG95L+d6Zm65Lya56S+ID4gc2VpbWVpaG9rZW5nYWlzaGFcIDsKK+engeacieiyoeeUo+WItuW6piA+IHNoaXl1dXphaXNhbnNlaWRvXCA7CivkuIDlm73kuIDlhZrkuLvnvqkgPiBpa2tva3VpdHRvdXNodWdpXCA7Civml6XmnKzpgZPot6/lhazlm6MgPiBuaWhvbmRvdXJva291ZGFuXCA7Civlrp/ot7XnkIbmgKfmibnliKQgPiBqaXNzZW5yaXNlaWhpaGFuXCA7CivlpJrph43lkI3liY3nqbrplpMgPiB0YWp1dW5hbWFla3V1a2FuXCA7CivlubPlkozntq3mjIHmtLvli5UgPiBoZWl3YWlqaWthdHN1ZG91XCA7CivkuozljbXmgKflj4znlJ/lhZAgPiBuaXJhbnNlaXNvdXNlaWppXCA7CivkuLvovp7ntKDmgKfopo/ntIQgPiBzaHVqaXNvc2Vpa2l5YWt1XCA7CivlpbPmgKfop6PmlL7pgYvli5UgPiBqb3NlaWthaWhvdXVuZG91XCA7Civngq3phbjlkIzljJbkvZznlKggPiB0YW5zYW5kb3VrYXNheW91XCA7CivkuozlpKfmlL/lhZrkuLvnvqkgPiBuaWRhaXNlaXRvdXNodWdpXCA7CivkuI3ntJTnlbDmgKfkuqTpgYogPiBmdWp1bicnaXNlaWtvdXl1dVwgOwor6aqo55qu562L5Y+z6KGb6ZaAID4gaG9uZWthd2FzdWppZW1vblwgOwor5rWF6ZaT5bGx6I2Y5LqL5Lu2ID4gYXNhbWFzYW5zb3VqaWtlblwgOwor55Kw5aKD5L+d6K235Li7576pID4ga2Fua3lvdWhvZ29zaHVnaVwgOwor5LiW55WM6LK/5piT5qmf6ZaiID4gc2VrYWlib3Vla2lraWthblwgOwor54Sh5b2i5Zu65a6a6LOH55SjID4gbXVrZWlrb3RlaXNoaXNhblwgOwor6Z+z5aOw5aSa6YeN5pS+6YCBID4gb25zZWl0YWp1dWhvdXNvdVwgOwor6ISz5oCn5bCP5YWQ6bq755e6ID4gbm91c2Vpc2hvdW5pbWFoaVwgOwor5aSn5p2x5Lqc5YWx5qCE5ZyPID4gZGFpdG91YWt5b3VlaWtlblwgOwor5bCP5aOy54mp5L6h5oyH5pWwID4ga291cmlidWtrYXNoaXN1dVwgOwor6Ieq55Sx5Li7576p57WM5riIID4gaml5dXVzaHVnaWtlaXphaVwgOwor5aSc6ZaT6aCQ6YeR44CF5bqrID4geWFrYW4nJ3lva2lua2lua29cIDsKK+mAo+mCpua6luWCmeWItuW6piA+IHJlbnBvdWp1bmJpc2VpZG9cIDsKK+i2hemBjuWLpOWLmeaJi+W9kyA+IGNob3VrYWtpbm11dGVhdGVcIDsKK+S6iOWCmeWjq+WumOWtpuagoSA+IHlvYmlzaGlrYW5nYWtrb3VcIDsKK+eUu+WDj+WHpueQhuijhee9riA+IGdhem91c2hvcmlzb3VjaGlcIDsKK+WFreWNgeWbm+WIhumfs+espiA+IHJva3VqdXVzaGlidW9ucHVcIDsKK+aUvuWwhOaAp+WQjOS9jeS9kyA+IGhvdXNoYXNlaWRvdWl0YWlcIDsKK+WknOmWk+mgkOmHkemHkeW6qyA+IHlha2FuJyd5b2tpbmtpbmtvXCA7CivkupznhrHluK/pq5jmsJflnKcgPiBhbmV0dGFpa291a2lhdHN1XCA7Civno4HmsJflhbHps7TnlLvlg48gPiBqaWtpa3lvdW1laWdhem91XCA7Civps6XnjaPkv53orbfljLrln58gPiBjaG91anV1aG9nb2t1aWtpXCA7Civlm73pmpvmj7TliqnmqZ/plqIgPiBrb2t1c2FpZW5qb2tpa2FuXCA7CivnhKHmlL/lupzkuLvnvqnogIUgPiBtdXNlaWZ1c2h1Z2lzaGFcIDsKK+S4lueVjOS/neWBpeapn+mWoiA+IHNla2FpaG9rZW5raWthblwgOwor5LqM5Y2B5Zub5pmC6ZaT5Yi2ID4gbmlqdXV5b2ppa2Fuc2VpXCA7CivnnIvorbflqabppIrmiJDmiYAgPiBrYW5nb2Z1eW91c2Vpam9cIDsKK+S4jeW9k+WKtOWDjeihjOeCuiA+IGZ1dG91cm91ZG91a291aVwgOwor6Ium5oOF5Yem55CG5qmf6ZaiID4ga3Vqb3VzaG9yaWtpa2FuXCA7Civoo5zliqnoqJjmhrboo4Xnva4gPiBob2pva2lva3Vzb3VjaGlcIDsKK+aWh+Wtl+WkmumHjeaUvumAgSA+IG1vaml0YWp1dWhvdXNvdVwgOwor5Yy75bir5Zu95a626Kmm6aiTID4gaXNoaWtva2thc2hpa2VuXCA7CivogqLkvZPkuI3oh6rnlLHlhZAgPiBzaGl0YWlmdWppeXV1amlcIDsKK+S7ruWQjea8ouWtl+WkieaPmyA+IGthbmFrYW5qaWhlbmthblwgOwor5Zu95a625YWs5YuZ5ZOh5rOVID4ga29ra2Frb3VtdWluaG91XCA7CivmhI/lv5fmsbrlrprmqZ/plqIgPiBpc2hpa2V0dGVpa2lrYW5cIDsKK+S4u+i+nue0oOaAp+WOn+eQhiA+IHNodWppc29zZWlnZW5yaVwgOwor5byB6K235aOr5LqL5YuZ5omAID4gYmVuZ29zaGlqaW11c2hvXCA7Civoh6rnlLHkuLvnvqnlm73lrrYgPiBqaXl1dXNodWdpa29ra2FcIDsKK+eUn+WRvee2reaMgeijhee9riA+IHNlaW1laWlqaXNvdWNoaVwgOwor5paH5a2X56ym5Y+35YyW5rOVID4gbW9qaWZ1Z291a2Fob3VcIDsKK+WNl+eEoemYv+W8pemZgOS7jyA+IG5hbXVhbWlkYWJ1dHN1XCA7Civoqp7lvZnmqZ/og73mlofms5UgPiBnb2lraW5vdWJ1bnBvdVwgOwor5YC25qKo5Ly9576F57SL57SLID4ga3VyaWthcmFtb25tb25cIDsKK+S4ieWNgeS6jOWIhumfs+espiA+IHNhbmp1dW5pYnVvbnB1XCA7CivmiJHliKnmiJHliKnkuqHogIUgPiBnYXJpZ2FyaW1vdWphXCA7Civlrojnp5jnvqnli5npgZXlj40gPiBzaHVoaWdpbXVpaGFuXCA7CivmmK/mmK/pnZ7pnZ7kuLvnvqkgPiB6ZXplaGloaXNodWdpXCA7Civng4/oirvmspnmkanlppnnjosgPiB1c3VzYW1hbXlvdW91XCA7Civku6Pooajlj5bnt6DlvbkgPiBkYWloeW91dG9yaXNoaW1hcml5YWt1XCA7Civlj5bmibHoqqzmmI7mm7ggPiB0b3JpYXRzdWthaXNldHN1bWVpc2hvXCA7Civlm73nq4vljZrnianppKggPiBrb2t1cml0c3VoYWt1YnV0c3VrYW5cIDsKK+mbhuS4reayu+eZguWupCA+IHNodXVjaHV1Y2hpcnlvdXNoaXRzdVwgOwor55u06L2E5qSN5rCR5ZywID4gY2hva2thdHN1c2hva3VtaW5jaGlcIDsKK+acqOmAoOW7uuevieeJqSA+IG1va3V6b3VrZW5jaGlrdWJ1dHN1XCA7CivmpI3nianmgKfom4vnmb0gPiBzaG9rdWJ1dHN1c2VpdGFucGFrdVwgOwor5L+h55So5Y+W5byV5YWIID4gc2hpbicneW91dG9yaWhpa2lzYWtpXCA7CivluLjli5nlj5bnt6DlvbkgPiBqb3VtdXRvcmlzaGltYXJpeWFrdVwgOwor5LiD5pif5aSp6YGT6JmrID4gbmFuYWhvc2hpdGVudG91bXVzaGlcIDsKK+awkeaXj+Wkp+iZkOauuiA+IG1pbnpva3VkYWlneWFrdXNhdHN1XCA7CivotorlubTnlJ/mpI3niakgPiBldHN1bmVuc2Vpc2hva3VidXRzdVwgOwor5qeL5oiQ57Sg57Wx5b6hID4ga291c2Vpc29rb3V6b3V0b3VneW9cIDsKK+ebtOaOpeebrueahOiqniA+IGNob2t1c2V0c3Vtb2t1dGVraWdvXCA7CivlsILli5nlj5bnt6DlvbkgPiBzZW5tdXRvcmlzaGltYXJpeWFrdVwgOwor5LiA5bm055Sf5qSN54mpID4gaWNoaW5lbnNlaXNob2t1YnV0c3VcIDsKK+m6u+iWrOWPlue3oOePrSA+IG1heWFrdXRvcmlzaGltYXJpaGFuXCA7Civpurvolqzlj5bnt6Dms5UgPiBtYXlha3V0b3Jpc2hpbWFyaWhvdVwgOwor5Lit5b+D55qE5b255YmyID4gY2h1dXNoaW50ZWtpeWFrdXdhcmlcIDsKK+WPjue4ruacn+ihgOWcpyA+IHNodXVzaHVrdWtpa2V0c3VhdHN1XCA7CivljZjlrZDokYnmpI3niakgPiB0YW5zaGl5b3VzaG9rdWJ1dHN1XCA7CivpgKPnq4vmlrnnqIvlvI8gPiByZW5yaXRzdWhvdXRlaXNoaWtpXCA7CivpgJrllYbnlKPmpa3nnIEgPiB0c3V1c2hvdXNhbmd5b3VzaG91XCA7Civljp/lrZDlipvnmbrpm7sgPiBnZW5zaGlyeW9rdWhhdHN1ZGVuXCA7Civnm7TmjqXmsJHkuLvliLYgPiBjaG9rdXNldHN1bWluc2h1c2VpXCA7CivpgLLlh7rliLbpmZDnt5ogPiBzaGluc2h1dHN1c2VpZ2Vuc2VuXCA7CivmoKrlvI/lj5blvJXmiYAgPiBrYWJ1c2hpa2l0b3JpaGlraWpvXCA7Civnm7TmjqXmlZnmjojms5UgPiBjaG9rdXNldHN1a3lvdWp1aG91XCA7Civlj4zlrZDokYnmpI3niakgPiBzb3VzaGl5b3VzaG9rdWJ1dHN1XCA7CivoiqXlt53pvo3kuYvku4sgPiBha3V0YWdhd2FyeXV1bm9zdWtlXCA7CivosrjlgJ/lr77nhafooaggPiB0YWlzaGFrdXRhaXNob3VoeW91XCA7CivlhazlrprlibLlvJXnjocgPiBrb3V0ZWl3YXJpYmlraXJpdHN1XCA7CivlvLfov6vnpZ7ntYznl4cgPiBreW91aGFrdXNoaW5rZWlzaG91XCA7CivllYbmpa3kv6HnlKjnirYgPiBzaG91Z3lvdXNoaW4nJ3lvdWpvdVwgOwor6Ly45Ye65L+h55So54q2ID4geXVzaHV0c3VzaGluJyd5b3Vqb3VcIDsKK+aXp+aWsOe0hOWFqOabuCA+IGt5dXVzaGluJyd5YWt1emVuc2hvXCA7Civlh7rlhaXlm73nrqHnkIYgPiBzaHV0c3VueXV1a29rdWthbnJpXCA7CivpmpzlrrPniannq7botbAgPiBzaG91Z2FpYnV0c3VreW91c291XCA7CivmmLzlhYnoibLpm7vnkIMgPiBjaHV1a291c2hva3VkZW5reXV1XCA7CivlpKnnhLboibLlhpnnnJ8gPiB0ZW4nJ25lbnNob2t1c2hhc2hpblwgOwor5rC05Yqb55m66Zu75omAID4gc3Vpcnlva3VoYXRzdWRlbnNob1wgOwor57Sg5Ye65Yqb5p2h5Lu2ID4gc29zaHV0c3VyeW9rdWpvdWtlblwgOwor5Zu95rCR57eP5pSv5Ye6ID4ga29rdW1pbnNvdXNoaXNodXRzdVwgOwor5qSN54mp5oCn6ISC6IKqID4gc2hva3VidXRzdXNlaXNoaWJvdVwgOwor5pen5paw57SE6IGW5pu4ID4ga3l1dXNoaW4nJ3lha3VzZWlzaG9cIDsKK+mVt+acn+iyuOS7mOmHkSA+IGNob3VraWthc2hpdHN1a2VraW5cIDsKK+eUn+eJqeeJqeeQhuWtpiA+IHNlaWJ1dHN1YnV0c3VyaWdha3VcIDsKK+W5s+WutueJqeiqnuaKhCA+IGhlaWtlbW9ub2dhdGFyaXNob3VcIDsKK+ims+Wvn+eahOeglOeptiA+IGthbnNhdHN1dGVraWtlbmt5dXVcIDsKK+izg+iyuOWAn+Wlkee0hCA+IGNoaW50YWlzaGFrdWtlaXlha3VcIDsKK+W+s+W3neWFrOeItemCuCA+IHRva3VnYXdha291c2hha3V0ZWlcIDsKK+eyvuelnuWIhuijgueXhyA+IHNlaXNoaW5idW5yZXRzdXNob3VcIDsKK+WkqumZveeGseeZuumbuyA+IHRhaXlvdW5ldHN1aGF0c3VkZW5cIDsKK+a1t+WklueVmeWtpueGsSA+IGthaWdhaXJ5dXVnYWt1bmV0c3VcIDsKK+WmiuWooOS4reavkueXhyA+IG5pbnNoaW5jaHV1ZG9rdXNob3VcIDsKK+eLrOeri+aOoeeul+WItiA+IGRva3VyaXRzdXNhaXNhbnNlaVwgOwor5biC5aC05Y2g5pyJ546HID4gc2hpam91c2VuJyd5dXVyaXRzdVwgOwor6KaW6IG06Kaa5pWZ5p2QID4gc2hpY2hvdWtha3VreW91emFpXCA7CivlhoXplqPms5XliLblsYAgPiBuYWlrYWt1aG91c2Vpa3lva3VcIDsKK+S4reWwj+S8gealreW6gSA+IGNodXVzaG91a2lneW91Y2hvdVwgOwor5pu457Ch5L2T5bCP6KqsID4gc2hva2FudGFpc2hvdXNldHN1XCA7CivnpL7kvJrnlJ/nianlraYgPiBzaGFrYWlzZWlidXRzdWdha3VcIDsKK+i7jemaiuihjOmAsuabsiA+IGd1bnRhaWtvdXNoaW5reW9rdVwgOwor6JGs6YCB6KGM6YCy5puyID4gc291c291a291c2hpbmt5b2t1XCA7CivniannkIbnmoTnj77osaEgPiBidXRzdXJpdGVraWdlbnNob3VcIDsKK+W/g+iHk+W8geiGnOeXhyA+IHNoaW56b3ViZW5tYWt1c2hvdVwgOwor6Iad6JOL6IWx5Y+N5bCEID4gc2hpdHN1Z2Fpa2VuaGFuc2hhXCA7Civkv7jntabnlJ/mtLvogIUgPiBob3VreXV1c2Vpa2F0c3VzaGFcIDsKK+eUn+eJqeaDheWgseWtpiA+IHNlaWJ1dHN1am91aG91Z2FrdVwgOwor5aSa5bm055Sf5qSN54mpID4gdGFuZW5zZWlzaG9rdWJ1dHN1XCA7Civph4/lrZDniannkIblraYgPiByeW91c2hpYnV0c3VyaWdha3VcIDsKK+WMl+exs+WQiOihhuWbvSA+IGhva3ViZWlnYXNzaHV1a29rdVwgOwor5p2l5a6i6Iqz5ZCN6YyyID4gcmFpa3lha3Vob3VtZWlyb2t1XCA7CivlnLDmlrnmpJzlr5/luoEgPiBjaGlob3VrZW5zYXRzdWNob3VcIDsKK+WwgumWgOeahOefpeitmCA+IHNlbm1vbnRla2ljaGlzaGlraVwgOwor57WQ5ama6KGM6YCy5puyID4ga2Vra29ua291c2hpbmt5b2t1XCA7CivmoKrlvI/phY3lvZPph5EgPiBrYWJ1c2hpa2loYWl0b3VraW5cIDsKK+eJueWIpemFjeW9k+mHkSA+IHRva3ViZXRzdWhhaXRvdWtpblwgOwor57WM5riI5oiQ6ZW3546HID4ga2VpemFpc2VpY2hvdXJpdHN1XCA7CivnlKPmpa3liKXntYTlkIggPiBzYW5neW91YmV0c3VrdW1pYWlcIDsKK+WEquetieWNkualreeUnyA+IHl1dXRvdXNvdHN1Z3lvdXNlaVwgOwor5YWl5Zu9566h55CG5bGAID4gbnl1dWtva3VrYW5yaWt5b2t1XCA7CivplpPmjqXmkq7lvbHms5UgPiBrYW5zZXRzdXNhdHN1ZWlob3VcIDsKK+Wun+eJqeWkp+aooeWeiyA+IGppdHN1YnV0c3VkYWltb2tlaVwgOwor6LuN5LqL55qE5L6155WlID4gZ3Vuaml0ZWtpc2hpbnJ5YWt1XCA7CivnqY3liIbmlrnnqIvlvI8gPiBzZWtpYnVuaG91dGVpc2hpa2lcIDsKK+epjeeul+mbu+WKm+ioiCA+IHNla2lzYW5kZW5yeW9rdWtlaVwgOwor5LqM5bm055Sf5qSN54mpID4gbmluZW5zZWlzaG9rdWJ1dHN1XCA7CivljYPkuZ3nmb7lubTku6MgPiBzZW5reXV1aHlha3VuZW5kYWlcIDsKK+enkeWtpuWNmueJqemkqCA+IGthZ2FrdWhha3VidXRzdWthblwgOwor5Lit5Zu95YWx55Sj5YWaID4gY2h1dWdva3VreW91c2FudG91XCA7Civpq5jliIblrZDnianos6ogPiBrb3VidW5zaGlidXNzaGl0c3VcIDsKK+eZuumBlOW/g+eQhuWtpiA+IGhhdHRhdHN1c2hpbnJpZ2FrdVwgOwor57K+56We6JaE5byx6ICFID4gc2Vpc2hpbmhha3VqYWt1c2hhXCA7CivnibnliKXooYzmlL/ljLogPiB0b2t1YmV0c3VneW91c2Vpa3VcIDsKK+S4ieiJsuWNsOWIt+azlSA+IHNhbnNob2t1aW5zYXRzdWhvdVwgOwor5o6S5Y216KqY55m65YmkID4gaGFpcmFuJyd5dXVoYXRzdXphaVwgOwor55Sf5rS75b+F6ZyA5ZOBID4gc2Vpa2F0c3VoaXRzdWp1aGluXCA7CivlsJHlubTpkZHliKXmiYAgPiBzaG91bmVua2FuYmV0c3VzaG9cIDsKK+W6p+mqqOelnue1jOeXmyA+IHpha290c3VzaGlua2VpdHN1dVwgOwor5qSN5rCR5Zyw5pS/562WID4gc2hva3VtaW5jaGlzZWlzYWt1XCA7CivoqLzliLjlj5blvJXms5UgPiBzaG91a2VudG9yaWhpa2lob3VcIDsKK+WVhuWTgeWbnui7oueOhyA+IHNob3VoaW5rYWl0ZW5yaXRzdVwgOwor56+A6Laz5YuV54mp6ZaAID4gc2Vzc29rdWRvdWJ1dHN1bW9uXCA7CivoqIjnrpfnlJ/nianlraYgPiBrZWlzYW5zZWlidXRzdWdha3VcIDsKK+WwseiBt+aDheWgseiqjCA+IHNodXVzaG9rdWpvdWhvdXNoaVwgOwor5bu66Kit55qE6Zai5L+CID4ga2Vuc2V0c3V0ZWtpa2Fua2VpXCA7CivlrqLlrqTkuZfli5nlk6EgPiBreWFrdXNoaXRzdWpvdW11aW5cIDsKK+aUr+aMgeWKm+WumuW8jyA+IHNoaWppcnlva3V0ZWlzaGlraVwgOwor5YuV54mp6KGM5YuV5a2mID4gZG91YnV0c3Vrb3Vkb3VnYWt1XCA7Civogbfog73ku6PooajliLYgPiBzaG9rdW5vdWRhaWh5b3VzZWlcIDsKK+acgOmrmOaknOWvn+W6gSA+IHNhaWtvdWtlbnNhdHN1Y2hvdVwgOwor5b+D56We6ICX5byx6ICFID4gc2hpbnNoaW5tb3VqYWt1c2hhXCA7CivnhKHohIrmpI7li5XniakgPiBtdXNla2l0c3VpZG91YnV0c3VcIDsKK+WutuWuheS+teWFpee9qiA+IGthdGFrdXNoaW4nJ255dXV6YWlcIDsKK+WIhuWtkOeUn+eJqeWtpiA+IGJ1bnNoaXNlaWJ1dHN1Z2FrdVwgOwor5aSp5L2T5YaZ55yf6KGTID4gdGVudGFpc2hhc2hpbmp1dHN1XCA7Civnp5jlr4bmvI/mtKnnvaogPiBoaW1pdHN1cm91c2V0c3V6YWlcIDsKK+mWk+aOpeebrueahOiqniA+IGthbnNldHN1bW9rdXRla2lnb1wgOwor57KY5ray5YiG5rOM6IW6ID4gbmVuJydla2lidW5waXRzdXNlblwgOwor556s6ZaT5o6l552A5YmkID4gc2h1bmthbnNldGNoYWt1emFpXCA7Civkurrlj6Plr4bpm4bnjocgPiBqaW5rb3VtaXNzaHV1cml0c3VcIDsKK+WOn+iJsuWGmeecn+eJiCA+IGdlbnNob2t1c2hhc2hpbmJhblwgOwor6YeP5a2Q6Imy5Yqb5a2mID4gcnlvdXNoaWlyb3Jpa2lnYWt1XCA7CivlnKjml6XnsbPpmbjou40gPiB6YWluaWNoaWJlaXJpa3VndW5cIDsKK+mjn+WTgea3u+WKoOeJqSA+IHNob2t1aGludGVua2FidXRzdVwgOwor5YuV54mp5oCn6JuL55m9ID4gZG91YnV0c3VzZWl0YW5wYWt1XCA7Civnibnlrprpg7Xkvr/lsYAgPiB0b2t1dGVpeXV1Ymlua3lva3VcIDsKK+eBq+WKm+eZuumbu+aJgCA+IGthcnlva3VoYXRzdWRlbnNob1wgOwor5aSa6KeS5byP6L6y5qWtID4gdGFrYWt1c2hpa2lub3VneW91XCA7CivmsLjkuJbkuK3nq4vlm70gPiBlaXNlaWNodXVyaXRzdWtva3VcIDsKK+WUr+eJqeW8geiovOazlSA+IHl1aWJ1dHN1YmVuc2hvdWhvdVwgOwor5Y+y55qE5ZSv54mp6KuWID4gc2hpdGVraXl1aWJ1dHN1cm9uXCA7CivlrqPoqpPkvpvov7Dmm7ggPiBzZW5zZWlreW91anV0c3VzaG9cIDsKK+eGseiGqOW8teS/guaVsCA+IG5ldHN1Ym91Y2hvdWtlaXN1dVwgOwor5qSN54mp5oCn57mK57atID4gc2hva3VidXRzdXNlaXNlbicnaVwgOwor6YGO5aSx5YK35a6z572qID4ga2FzaGl0c3VzaG91Z2FpemFpXCA7CivlhbHlkIzlibXoqK3ogIUgPiBreW91ZG91c291c2V0c3VzaGFcIDsKK+S4iue0muWJr+ekvumVtyA+IGpvdWt5dXVmdWt1c2hhY2hvdVwgOwor5oim55Wl55qE5o+Q5pC6ID4gc2Vucnlha3V0ZWtpdGVpa2VpXCA7CivnkrDlooPluoHplbflrpggPiBrYW5reW91Y2hvdWNob3VrYW5cIDsKK+Wcp+WKm+iqv+aVtOWZqCA+IGF0c3VyeW9rdWNob3VzZWlraVwgOwor55Sf6a6u6aOf5paZ5ZOBID4gc2Vpc2Vuc2hva3VyeW91aGluXCA7CivmlL7lsITmgKfnianos6ogPiBob3VzaGFzZWlidXNzaGl0c3VcIDsKK+WcsOeQg+eJqeeQhuWtpiA+IGNoaWt5dXVidXRzdXJpZ2FrdVwgOwor5Y+N5a6X5pWZ5pS56Z2pID4gaGFuc2h1dWt5b3VrYWlrYWt1XCA7CivlraborZjntYzpqJPogIUgPiBnYWt1c2hpa2lrZWlrZW5zaGFcIDsKK+i1pOmdouaBkOaAlueXhyA+IHNla2ltZW5reW91ZnVzaG91XCA7Civpo5/lk4HooZvnlJ/ms5UgPiBzaG9rdWhpbicnZWlzZWlob3VcIDsKK+aVmeiBt+WToee1hOWQiCA+IGt5b3VzaG9rdWlua3VtaWFpXCA7Civmr5vmsqLmnbHkuLvluK0gPiBtb3V0YWt1dG91c2h1c2VraVwgOwor5Yil6YCU56mN56uL6YeRID4gYmV0dG90c3VtaXRhdGVraW5cIDsKK+i/lOS/oeaWmeiRieabuCA+IGhlbnNoaW5yeW91aGFnYWtpXCA7Civoq7jou4rpgJrooYzmraIgPiBzaG9zaGF0c3V1a291ZG9tZVwgOwor5Zu95Zyf5bqB6ZW35a6YID4ga29rdWRvY2hvdWNob3VrYW5cIDsKK+WLp+WWhOaHsuaCquWKhyA+IGthbnplbmNob3Vha3VnZWtpXCA7CivljLvlrabnlJ/nianlraYgPiBpZ2FrdXNlaWJ1dHN1Z2FrdVwgOwor6Z2e5qiZ5rqW5ouh5by1ID4gaGloeW91anVua2FrdWNob3VcIDsKK+WkqumZveWFieeZuumbuyA+IHRhaXlvdWtvdWhhdHN1ZGVuXCA7Civov5Tkv6HnlKjokYnmm7ggPiBoZW5zaGluJyd5b3VoYWdha2lcIDsKK+ecn+ePoOmkiuauluWgtCA+IHNoaW5qdXlvdXNob2t1am91XCA7CivogovplpPnpZ7ntYznl5sgPiByb2trYW5zaGlua2VpdHN1dVwgOwor5rW35rSL54mp55CG5a2mID4ga2FpeW91YnV0c3VyaWdha3VcIDsKK+eyvuelnueahOiLpueXmyA+IHNlaXNoaW50ZWtpa3V0c3V1XCA7CivkuqTmtYHnmbrpm7vmqZ8gPiBrb3VyeXV1aGF0c3VkZW5raVwgOwor54up54yf5o6h6ZuG5rCRID4gc2h1cnlvdXNhaXNodXVtaW5cIDsKK+aIpumXmOato+mdouW5hSA+IHNlbnRvdXNob3VtZW5oYWJhXCA7CivkuI3kv6Hku7vmipXnpaggPiBmdXNoaW4nJ25pbnRvdWh5b3VcIDsKK+mAgemHkeWPl+WPluS6uiA+IHNvdWtpbicndWtldG9yaW5pblwgOwor77yk77yy77yz55CG6KuWID4gZGlcIMyEYVwgzIRydWVzdXJpcm9uXCA7Civpo5/ns6fnrqHnkIbms5UgPiBzaG9rdXJ5b3VrYW5yaWhvdVwgOwor55uy6IW454KO5omL6KGTID4gbW91Y2hvdWVuc2h1anV0c3VcIDsKK+esrOS4gOe0muauuuS6uiA+IGRhaWlra3l1dXNhdHN1amluXCA7CivmiKbnlaXmoLjlhbXlmaggPiBzZW5yeWFrdWtha3VoZWlraVwgOwor5YeN57WQ6Ziy5q2i5YmkID4gdG91a2V0c3Vib3VzaGl6YWlcIDsKK+S4remWk+mFjeW9k+mhjSA+IGNodXVrYW5oYWl0b3VnYWt1XCA7Civpq5jpgJ/lopfmrpbngokgPiBrb3Vzb2t1em91c2hva3Vyb1wgOwor6L+U5L+h5paZ5bCB562SID4gaGVuc2hpbnJ5b3VmdXV0b3VcIDsKK+ihm+aYn+WcsOeQg+WxgCA+IGVpc2VpY2hpa3l1dWt5b2t1XCA7CivlnKjnlZnlpJblm73kurogPiB6YWlyeXV1Z2Fpa29rdWppblwgOwor55Sj5qWt5buD5qOE54mpID4gc2FuZ3lvdWhhaWtpYnV0c3VcIDsKK+WkqeeEtuiomOW/teeJqSA+IHRlbicnbmVua2luZW5idXRzdVwgOwor5Ye655Sf6Ki85piO5pu4ID4gc2h1c3NlaXNob3VtZWlzaG9cIDsKK+S4iue0mueuoeeQhuiBtyA+IGpvdWt5dXVrYW5yaXNob2t1XCA7CivnqI7plqLnlLPlkYrmm7ggPiB6ZWlrYW5zaGlua29rdXNob1wgOwor6L+U5L+h55So5bCB562SID4gaGVuc2hpbicneW91ZnV1dG91XCA7CivnhrHni4LnmoTkv6HogIUgPiBuZWtreW91dGVraXNoaW5qYVwgOwor5LyB5qWt6ZaT5L+h55SoID4ga2lneW91a2Fuc2hpbicneW91XCA7Civplovmi5PogIXnsr7npZ4gPiBrYWl0YWt1c2hhc2Vpc2hpblwgOwor5rex5Zyo5oCn55yf6I+MID4gc2hpbnphaXNlaXNoaW5raW5cIDsKK+adkeiQveWFseWQjOS9kyA+IHNvbnJha3VreW91ZG91dGFpXCA7CivkuIrpmbjnlKjoiJ/oiYcgPiBqb3VyaWt1eW91c2h1dXRlaVwgOwor5Y+k55Sf54mp5a2m6ICFID4ga29zZWlidXRzdWdha3VzaGFcIDsKK+mWi+eZuumAlOS4iuWbvSA+IGthaWhhdHN1dG9qb3Vrb2t1XCA7CivooYDlnKfpmY3kuIvliaQgPiBrZXRzdWF0c3Vrb3VrYXphaVwgOwor54Sh5beu5Yil54iG5pKDID4gbXVzYWJldHN1YmFrdWdla2lcIDsKK+W5s+WSjOeahOino+axuiA+IGhlaXdhdGVraWthaXNldHN1XCA7Civpo5/lk4HliqDlt6Xmpa0gPiBzaG9rdWhpbmtha291Z3lvdVwgOwor6auY57Sa5L2P5a6F5ZywID4ga291a3l1dWp1dXRha3VjaGlcIDsKK+mBjuWkseiHtOatu+e9qiA+IGthc2hpdHN1Y2hpc2hpemFpXCA7Civpq5jpoY3miYDlvpfogIUgPiBrb3VnYWt1c2hvdG9rdXNoYVwgOwor5Y2B5LiA6Z2i6Kaz6Z+zID4ganV1aWNoaW1lbmthbicnbm9uXCA7CivmnIjntYzlm7Dpm6Pnl4cgPiBnZWtrZWlrb24nJ25hbnNob3VcIDsKK+Wbvemam+imi+acrOW4giA+IGtva3VzYWltaWhvbicnaWNoaVwgOwor57eR5Zyw5YyW6KiI55S7ID4gcnlva3VjaGlrYWtlaWtha3VcIDsKK+S4reaeouelnue1jOezuyA+IGNodXVzdXVzaGlua2Vpa2VpXCA7Civlrp/pqJPnmoTnoJTnqbYgPiBqaWtrZW50ZWtpa2Vua3l1dVwgOwor5bCC55So6aeQ6LuK5aC0ID4gc2VuJyd5b3VjaHV1c2hham91XCA7CivnhKHpgY7lpLHosqzku7sgPiBtdWthc2hpdHN1c2VraW5pblwgOwor5LiA5qyh5pa556iL5byPID4gaWNoaWppaG91dGVpc2hpa2lcIDsKK+WwsealreaZgumWk+S4rSA+IHNodXVneW91amlrYW5jaHV1XCA7Civlm73msJHkvJHmmofmnZEgPiBrb2t1bWlua3l1dWthbXVyYVwgOwor5a2Q5a6u5aSW5aaK5aigID4gc2hpa3l1dWdhaW5pbnNoaW5cIDsKK+eEoeaLheS/neiyuOS7mCA+IG11dGFucG9rYXNoaXRzdWtlXCA7CivkuIDnspLlrZDml6LntIQgPiBpY2hpcnl1dXNoaWtpeWFrdVwgOwor5LyB5qWt5Yil57WE5ZCIID4ga2lneW91YmV0c3VrdW1pYWlcIDsKK+S4jeazleS+teWFpeiAhSA+IGZ1aG91c2hpbicnbnl1dXNoYVwgOwor5Y+O56mr5oSf6Kyd56WtID4gc2h1dWtha3VrYW5zaGFzYWlcIDsKK+aMh+WQkeaAp+eIhuiWrCA+IHNoaWtvdXNlaWJha3V5YWt1XCA7Civlv4Plm6DmgKflj43lv5wgPiBzaGluJydpbnNlaWhhbicnbm91XCA7CivkupznhrHluK/mpI3niakgPiBhbmV0dGFpc2hva3VidXRzdVwgOwor5YaF6Zaj57eP6L6e6IG3ID4gbmFpa2FrdXNvdWppc2hva3VcIDsKK+iovOWIuOWPluW8leaJgCA+IHNob3VrZW50b3JpaGlraWpvXCA7CivlsYjmipjmnJvpgaDpj6EgPiBrdXNzZXRzdWJvdWVua3lvdVwgOwor5q2v54mZ55+v5q2j6KGTID4gc2hpZ2FreW91c2VpanV0c3VcIDsKK+WNmOe0sOiDnueUn+eJqSA+IHRhbnNhaWJvdXNlaWJ1dHN1XCA7Civml6XmnKzolqzlsYDmlrkgPiBuaWhvbicneWFra3lva3Vob3VcIDsKK+a3seWxpOW/g+eQhuWtpiA+IHNoaW5zb3VzaGlucmlnYWt1XCA7Civnsr7npZ7oloTlvLHlhZAgPiBzZWlzaGluaGFrdWpha3VqaVwgOwor5YyW5a2m5pa556iL5byPID4ga2FnYWt1aG91dGVpc2hpa2lcIDsKK+aApemZjeS4i+eIhuaSgyA+IGt5dXVrb3VrYWJha3VnZWtpXCA7CivmsLTkuIrnlJ/mtLvogIUgPiBzdWlqb3VzZWlrYXRzdXNoYVwgOwor5Zyo5a2m6Ki85piO5pu4ID4gemFpZ2FrdXNob3VtZWlzaG9cIDsKK+akjeawkeWcsOe1seayuyA+IHNob2t1bWluY2hpdG91Y2hpXCA7CivplqLmlbDmlrnnqIvlvI8gPiBrYW5zdXVob3V0ZWlzaGlraVwgOwor5o6o6YCy56CU56m25omAID4gc3Vpc2hpbmtlbmt5dXVzaG9cIDsKK+aIpuihk+aguOWFteWZqCA+IHNlbmp1dHN1a2FrdWhlaWtpXCA7CivnmbrlsZXnmoTop6PmtoggPiBoYXR0ZW50ZWtpa2Fpc2hvdVwgOwor5Zu956uL5Zuz5pu46aSoID4ga29rdXJpdHN1dG9zaG9rYW5cIDsKK+S4ieihjOW6g+WRiuashCA+IHNhbmd5b3Vrb3Vrb2t1cmFuXCA7Civli6fmpa3ljZropqfkvJogPiBrYW5neW91aGFrdXJhbmthaVwgOwor5YiG5p6Q5b+D55CG5a2mID4gYnVuc2VraXNoaW5yaWdha3VcIDsKK+aVmeiCsuW/g+eQhuWtpiA+IGt5b3Vpa3VzaGlucmlnYWt1XCA7Civmpa3li5nkuIrpgY7lpLEgPiBneW91bXVqb3VrYXNoaXRzdVwgOwor5oiQ57i+6Ki85piO5pu4ID4gc2Vpc2VraXNob3VtZWlzaG9cIDsKK+WFpeWtpuW/l+mhmOiAhSA+IG55dXVnYWt1c2hpZ2Fuc2hhXCA7CivkuK3lpK7mlL7pgIHlsYAgPiBjaHV1b3Vob3Vzb3VreW9rdVwgOwor5YWx5ZCM55u457aa5Lq6ID4ga3lvdWRvdXNvdXpva3VuaW5cIDsKK+eglOeptueZuuihqOS8miA+IGtlbmt5dXVoYXBweW91a2FpXCA7CivlpKnkvZPliIblhYnooZMgPiB0ZW50YWlidW5rb3VqdXRzdVwgOwor55CD6Z2i5LiJ6KeS5rOVID4ga3l1dW1lbnNhbmtha3Vob3VcIDsKK+ioiOmHj+e1jOa4iOWtpiA+IGtlaXJ5b3VrZWl6YWlnYWt1XCA7CivokZfkvZzmqKnkvrXlrrMgPiBjaG9zYWt1a2Vuc2hpbmdhaVwgOwor54m55Yil5byB6K235Lq6ID4gdG9rdWJldHN1YmVuZ29uaW5cIDsKK+WvjOWbveW8t+WFteetliA+IGZ1a29rdWt5b3VoZWlzYWt1XCA7Civkuojmg7Plj47nqavpq5ggPiB5b3NvdXNodXVrYWt1ZGFrYVwgOwor6KGA5Y+L55eF5oKj6ICFID4ga2V0c3V5dXVieW91a2FuamFcIDsKK+ebtOinkuS4ieinkuW9oiA+IGNob2trYWt1c2Fua2Fra2VpXCA7Civpl4fkvqHmoLzljZTlrpogPiB5YW1pa2FrYWt1a3lvdXRlaVwgOwor6LWk5aSW57ea5YaZ55yfID4gc2VraWdhaXNlbnNoYXNoaW5cIDsKK+Wkqeeah+apn+mWouiqrCA+IHRlbicnbm91a2lrYW5zZXRzdVwgOwor5YWs6Ki85Lq65b255aC0ID4ga291c2hvdW5pbicneWFrdWJhXCA7CivotoXnj77lrp/kuLvnvqkgPiBjaG91Z2Vuaml0c3VzaHVnaVwgOwor5LqM5qW155yf56m6566hID4gbmlreW9rdXNoaW5rdXVrYW5cIDsKK+mYquelnuWkp+mch+eBvSA+IGhhbnNoaW5kYWlzaGluc2FpXCA7Civms5XlrprlvpfnpajmlbAgPiBob3V0ZWl0b2t1aHlvdXN1dVwgOwor6Kit56uL6Laj5oSP5pu4ID4gc2V0c3VyaXRzdXNodWlzaG9cIDsKK+WkluWbveS6uueZu+mMsiA+IGdhaWtva3VqaW50b3Vyb2t1XCA7CivouqvkvZPpmpzlrrPogIUgPiBzaGludGFpc2hvdWdhaXNoYVwgOwor5raI6LK76ICF5L+h55SoID4gc2hvdWhpc2hhc2hpbicneW91XCA7CivpiI3op5LkuInop5LlvaIgPiBkb25rYWt1c2Fua2FrdWtlaVwgOwor5rW36Zuj5a+p5Yik5bqBID4ga2FpbmFuc2hpbnBhbmNob3VcIDsKK+eKr+e9queZuueUn+eOhyA+IGhhbnphaWhhc3NlaXJpdHN1XCA7Civlvq7nlJ/nianlrabogIUgPiBiaXNlaWJ1dHN1Z2FrdXNoYVwgOwor5LiD6Imy5ZSQ6L6b5a2QID4gbmFuYWlyb3RvdWdhcmFzaGlcIDsKK+WFrOiBt+mBuOaMmeazlSA+IGtvdXNob2t1c2Vua3lvaG91XCA7CivlrprlvaLpg7Xkvr/niakgPiB0ZWlrZWl5dXViaW5idXRzdVwgOwor5a++5Lit5Zu96Zai5L+CID4gdGFpY2h1dWdva3VrYW5rZWlcIDsKK+enkeWtpuaKgOihk+W6gSA+IGthZ2FrdWdpanV0c3VjaG91XCA7CivlpKfoi7HljZrnianppKggPiBkYWllaWhha3VidXRzdWthblwgOwor5YuV6ISI56Gs5YyW55eHID4gZG91bXlha3Vrb3VrYXNob3VcIDsKK+W4neeOi+elnuaoqeiqrCA+IHRlaW91c2hpbmtlbnNldHN1XCA7CivlroflrpnlpKfniIbnmbogPiB1Y2h1dWRhaWJha3VoYXRzdVwgOwor6aaW55u45YW85aSW55u4ID4gc2h1c2hvdWtlbmdhaXNob3VcIDsKK+eUn+eJqeWcsOeQhuWtpiA+IHNlaWJ1dHN1Y2hpcmlnYWt1XCA7Civljp/lrZDniannkIblraYgPiBnZW5zaGlidXRzdXJpZ2FrdVwgOwor55Wl5Y+W6KqY5ouQ572qID4gcnlha3VzaHV5dXVrYWl6YWlcIDsKK+WkqeS9k+eJqeeQhuWtpiA+IHRlbnRhaWJ1dHN1cmlnYWt1XCA7CivpmY3lnKflpInlnKflmaggPiBrb3VhdHN1aGVuJydhdHN1a2lcIDsKK+adseWNsOW6puS8muekviA+IGhpZ2FzaGlpbmRvZ2Fpc2hhXCA7Civnianos6rkuLvnvqnogIUgPiBidXNzaGl0c3VzaHVnaXNoYVwgOwor5Zu96Zqb55qE6LK/5piTID4ga29rdXNhaXRla2lib3Vla2lcIDsKK+S4reaAp+WtkOeIhuW8viA+IGNodXVzZWlzaGliYWt1ZGFuXCA7Civku6PmlbDmlrnnqIvlvI8gPiBkYWlzdXVob3V0ZWlzaGlraVwgOwor5bmz5Z2H5aSq6Zm95pelID4gaGVpa2ludGFpeW91aml0c3VcIDsKK+S5s+WFkOatu+S6oeeOhyA+IG55dXVqaXNoaWJvdXJpdHN1XCA7CivkuIflm73ljZropqfkvJogPiBiYW5rb2t1aGFrdXJhbmthaVwgOwor6Ziy6KGb5pa96Kit5bqBID4gYm91ZWlzaGlzZXRzdWNob3VcIDsKK+acieaWmemnkOi7iuWgtCA+IHl1dXJ5b3VjaHV1c2hham91XCA7Civoh6jluorlv4PnkIblraYgPiByaW5zaG91c2hpbnJpZ2FrdVwgOwor5YaZ55yf6YCx5YiK6KqMID4gc2hhc2hpbnNodXVrYW5zaGlcIDsKK+W3qOefs+iomOW/teeJqSA+IGt5b3Nla2lraW5lbmJ1dHN1XCA7CivkuozlhYPmlrnnqIvlvI8gPiBuaWdlbmhvdXRlaXNoaWtpXCA7CivpgZPnvqnnmoTosqzku7sgPiBkb3VnaXRla2lzZWtpbmluXCA7CivnjYXlrZDllJDovpvlrZAgPiBzaGlzaGl0b3VnYXJhc2hpXCA7CivmsJfosaHoprPmuKzoiLkgPiBraXNob3VrYW5zb2t1c2VuXCA7CivkurrnjL/lkIznpZboqqwgPiBqaW4nJ2VuZG91c29zZXRzdVwgOwor5Zuj5L2T5Lqk5riJ5qipID4gZGFudGFpa291c2hvdWtlblwgOwor5a++5Lq65oGQ5oCW55eHID4gdGFpamlua3lvdWZ1c2hvdVwgOwor6ISz6ISK6auE6Iac54KOID4gbm91c2VraXp1aW1ha3VlblwgOwor6KaB5rOo5oSP5Lq654mpID4geW91Y2h1dWlqaW5idXRzdVwgOwor5a2m5qCh5pWZ6IKy5rOVID4gZ2Fra291a3lvdWlrdWhvdVwgOwor546L5qip56We5o6I6KqsID4gb3VrZW5zaGluanVzZXRzdVwgOwor55yf6YOo5YiG6ZuG5ZCIID4gc2hpbmJ1YnVuc2h1dWdvdVwgOwor54us5Y2g56aB5q2i5rOVID4gZG9rdXNlbmtpbnNoaWhvdVwgOwor5bGF6ZaT5YW85a+d5a6kID4gaW1ha2Vuc2hpbnNoaXRzdVwgOwor5YWs56ew6LOH5pys6YeRID4ga291c2hvdXNoaWhvbmtpblwgOwor6Zu75YuV55m65YuV5qmfID4gZGVuZG91aGF0c3Vkb3VraVwgOwor5b+c55So54mp55CG5a2mID4gb3V5b3VidXRzdXJpZ2FrdVwgOwor5LiJ5Y2B5YWr5bqm57eaID4gc2FuanV1aGFjaGlkb3NlblwgOwor6KqN55+l5b+D55CG5a2mID4gbmluY2hpc2hpbnJpZ2FrdVwgOwor5bel5qWt5omA5pyJ5qipID4ga291Z3lvdXNob3l1dWtlblwgOwor5aSa5aSJ6YeP6Kej5p6QID4gdGFoZW5yeW91a2Fpc2VraVwgOwor5riF5ra86aOy5paZ5rC0ID4gc2VpcnlvdWlucnlvdXN1aVwgOwor6YeR5Yip55Sf5rS76ICFID4ga2lucmlzZWlrYXRzdXNoYVwgOwor6YG66KiA5Z+36KGM6ICFID4geXVpZ29uc2hpa2tvdXNoYVwgOwor6LK/5piT5aSW5Y+O5pSvID4gYm91ZWtpZ2Fpc2h1dXNoaVwgOwor5p+T6Imy5L2T5Zyw5ZuzID4gc2Vuc2hva3V0YWljaGl6dVwgOwor5Li75bit56CU56m25ZOhID4gc2h1c2VraWtlbmt5dXVpblwgOwor6auY6YCf5bqm5YaZ55yfID4ga291c29rdWRvc2hhc2hpblwgOwor6auY5qyh5pa556iL5byPID4ga291amlob3V0ZWlzaGlraVwgOwor5b6u5YiG5pa556iL5byPID4gYmlidW5ob3V0ZWlzaGlraVwgOwor6YO15L6/56eB5pu4566xID4geXV1Ymluc2hpc2hvYmFrb1wgOwor5pac5qC85oCn57Wx5b6hID4gc2hha2FrdXNlaXRvdWd5b1wgOwor57WM5Y+j6YG/5aaK6JasID4ga2Vpa291aGluaW4nJ3lha3VcIDsKK+S6uuadkOmWi+eZuumDqCA+IGppbnphaWthaWhhdHN1YnVcIDsKK+S4h+Wbveaomea6luaZgiA+IGJhbmtva3VoeW91anVuamlcIDsKK+mYsuihm+W6gemVt+WumCA+IGJvdWVpY2hvdWNob3VrYW5cIDsKK+WQq+awtOWMluWQiOeJqSA+IGdhbnN1aWthZ291YnV0c3VcIDsKK+mWouadseWkp+mch+eBvSA+IGthbnRvdWRhaXNoaW5zYWlcIDsKK+ijheeUsuWbnuWPjui7iiA+IHNvdWtvdWthaXNodXVzaGFcIDsKK+WcsOaWueihjOiyoeaUvyA+IGNoaWhvdWd5b3V6YWlzZWlcIDsKK+aAp+ihqOePvuaDheWgsSA+IHNlaWh5b3VnZW5qb3Vob3VcIDsKK+W4jOacm+eahOims+a4rCA+IGtpYm91dGVraWthbnNva3VcIDsKK+WPjeWwhOa4m+ihsOmHjyA+IGhhbnNoYWdlbnN1aXJ5b3VcIDsKK+WkieaFi+W/g+eQhuWtpiA+IGhlbnRhaXNoaW5yaWdha3VcIDsKK+asp+W3nuWFseWQjOS9kyA+IG91c2h1dWt5b3Vkb3V0YWlcIDsKK+e0q+Wklue3mueZguazlSA+IHNoaWdhaXNlbnJ5b3Vob3VcIDsKK+mdnuatpuijheS4reeriyA+IGhpYnVzb3VjaHV1cml0c3VcIDsKK+S4u+W4reWkluS6pOWumCA+IHNodXNla2lnYWlrb3VrYW5cIDsKK+e0sOiDnuizqumBuuS8nSA+IHNhaWJvdXNoaXRzdWlkZW5cIDsKK+WFseeUo+WFmuWuo+iogCA+IGt5b3VzYW50b3VzZW5nZW5cIDsKK+W3oeWbnuiouueZguaJgCA+IGp1bmthaXNoaW5yeW91am9cIDsKK+a6kOazieaJgOW+l+eojiA+IGdlbnNlbnNob3Rva3V6ZWlcIDsKK+e1hOiBt+WKtOWDjeiAhSA+IHNvc2hva3Vyb3Vkb3VzaGFcIDsKK+WKtOWDjeiAhemajue0miA+IHJvdWRvdXNoYWthaWt5dXVcIDsKK+aLoeWkp+WGjeeUn+eUoyA+IGtha3VkYWlzYWlzZWlzYW5cIDsKK+S4iue0muijgeWIpOaJgCA+IGpvdWt5dXVzYWliYW5zaG9cIDsKK+emgeassuS4u+e+qeiAhSA+IGtpbicneW9rdXNodWdpc2hhXCA7CivnibnmrormvZzoiKroiYcgPiB0b2t1c2h1c2Vua291dGVpXCA7CivmnIDmgbXlm73lvoXpgYcgPiBzYWlrZWlrb2t1dGFpZ3V1XCA7CivlhbHnlKPkuLvnvqnlm70gPiBreW91c2Fuc2h1Z2lrb2t1XCA7Civljp/lkYrlr77ooqvlkYogPiBnZW5rb2t1dGFpaGlrb2t1XCA7Civlj5foqJflj47os4TnvaogPiBqdXRha3VzaHV1d2FpemFpXCA7CivmtYHooYzmgKfmhJ/lhpIgPiByeXV1a291c2Vpa2FuYm91XCA7Civlm73msJHnt4/nlJ/nlKMgPiBrb2t1bWluc291c2Vpc2FuXCA7CivkuK3ot53pm6Lnq7botbAgPiBjaHV1a3lvcmlreW91c291XCA7Civlhajlm73nmoTnr4Tlm7IgPiB6ZW5rb2t1dGVraWhhbicnaVwgOwor6YCj6YKm5YWx5ZKM5Zu9ID4gcmVucG91a3lvdXdha29rdVwgOwor5pmu6YGN55qE5rOV5YmHID4gZnVoZW50ZWtpaG91c29rdVwgOwor5aSn57Wx6aCY6YG45oyZID4gZGFpdG91cnlvdXNlbmt5b1wgOwor5pel54y25ZCM56WW6KuWID4gbmljaGl5dXVkb3Vzb3JvblwgOwor5Lih5pu/5omL5pWw5paZID4gcnlvdWdhZXRlc3V1cnlvdVwgOwor6LOH5pys5Yip55uK546HID4gc2hpaG9ucmlla2lyaXRzdVwgOwor5oim6LuK5o+a6Zm46ImmID4gc2Vuc2hheW91cmlrdWthblwgOwor5aOy5pil6Ziy5q2i5rOVID4gYmFpc2h1bmJvdXNoaWhvdVwgOwor5YWJ5YyW5a2m5Y+N5b+cID4ga291a2FnYWt1aGFuJydub3VcIDsKK+i7jeS6i+W9k+WxgOiAhSA+IGd1bmppdG91a3lva3VzaGFcIDsKK+iCieS9k+WKtOWDjeiAhSA+IG5pa3V0YWlyb3Vkb3VzaGFcIDsKK+iHquS4u+a1gemAmuexsyA+IGppc2h1cnl1dXRzdXVtYWlcIDsKK+esrOS4gOasoeeUo+alrSA+IGRhaWljaGlqaXNhbmd5b3VcIDsKK+Wun+WtmOS4u+e+qeiAhSA+IGppdHN1em9uc2h1Z2lzaGFcIDsKK+ePvuWun+S4u+e+qeiAhSA+IGdlbmppdHN1c2h1Z2lzaGFcIDsKK+WPjeaUv+W6nOWLouWKmyA+IGhhbnNlaWZ1c2Vpcnlva3VcIDsKK+WFjeeWq+S4jeWFqOeXhyA+IG1lbicnZWtpZnV6ZW5zaG91XCA7CivljYHpgLLliIbpoZ7ms5UgPiBqaXNzaGluYnVucnVpaG91XCA7Civlgbblg4/mlZnlvpLnmoQgPiBndXV6b3VreW91dG90ZWtpXCA7CivntIXnmb3mrYzlkIjmiKYgPiBrb3VoYWt1dXRhZ2Fzc2VuXCA7CivntYzmuIjnoJTnqbbmiYAgPiBrZWl6YWlrZW5reXV1c2hvXCA7Civou43kuovpgJrkv6Hlk6EgPiBndW5qaXRzdXVzaGluJydpblwgOwor5Z+65rqW5YaF6LOD6YeRID4ga2lqdW4nJ25haWNoaW5naW5cIDsKK+ecjOW6geaJgOWcqOWcsCA+IGtlbmNob3VzaG96YWljaGlcIDsKK+ecn+Wul+Wkp+iwt+a0viA+IHNoaW5zaHV1b290YW5paGFcIDsKK+WGjeWFpeWbveioseWPryA+IHNhaW55dXVrb2t1a3lva2FcIDsKK+iLseWbveWbveaVmeS8miA+IGVpa29rdWtva2t5b3VrYWlcIDsKK+a4heaVmeW+kumdqeWRvSA+IHNlaWt5b3V0b2tha3VtZWlcIDsKK+WkqumZveelnue1jOWPoiA+IHRhaXlvdXNoaW5rZWlzb3VcIDsKK+e1jOWWtuWtpuS/ruWjqyA+IGtlaWVpZ2FrdXNodXVzaGlcIDsKK+WBpeW6t+iovOaYjuabuCA+IGtlbmtvdXNob3VtZWlzaG9cIDsKK+ekvuS8muW/g+eQhuWtpiA+IHNoYWthaXNoaW5yaWdha3VcIDsKK+WFrOWFseS8gealreS9kyA+IGtvdWt5b3VraWd5b3V0YWlcIDsKK+mDveW4guWGjemWi+eZuiA+IHRvc2hpc2Fpa2FpaGF0c3VcIDsKK+aUvuWwhOe3mueZguazlSA+IGhvdXNoYXNlbnJ5b3Vob3VcIDsKK+WbvemAo+WIhuaLhemHkSA+IGtva3VyZW5idW50YW5raW5cIDsKK+Wumuacn+WIiuihjOeJqSA+IHRlaWtpa2Fua291YnV0c3VcIDsKK+aUu+aSg+mWi+Wni+e3miA+IGtvdWdla2lrYWlzaGlzZW5cIDsKK+W5s+mdouS4ieinkuazlSA+IGhlaW1lbnNhbmtha3Vob3VcIDsKK+azleWumuS8neafk+eXhSA+IGhvdXRlaWRlbnNlbmJ5b3VcIDsKK+S4rei3nembouertuS6iSA+IGNodXVreW9yaWt5b3Vzb3VcIDsKK+S4ieWPieelnue1jOeXmyA+IHNhbnNhc2hpbmtlaXRzdXVcIDsKK+WEquWLneaxuuWumuaIpiA+IHl1dXNob3VrZXR0ZWlzZW5cIDsKK+acgOS9jueUn+a0u+iyuyA+IHNhaXRlaXNlaWthdHN1aGlcIDsKK+W6nOecjOWIpeS6uuWPoyA+IGZ1a2VuYmV0c3VqaW5rb3VcIDsKK+aOqOWumuebuOe2muS6uiA+IHN1aXRlaXNvdXpva3VuaW5cIDsKK+WkmuWbveexjeS8gealrSA+IHRha29rdXNla2lraWd5b3VcIDsKK+aZtOS4gOaZguWwj+mbqCA+IGhhcmVpY2hpamlrb3NhbWVcIDsKK+Wto+evgOWKtOWDjeiAhSA+IGtpc2V0c3Vyb3Vkb3VzaGFcIDsKK+S4reWwj+iruOWbveWutiA+IGNob3VzaG91c2hva29ra2FcIDsKK+S4jeW5s+etieadoee0hCA+IGZ1YnlvdWRvdWpvdXlha3VcIDsKK+acgOS9juizg+mHkeWItiA+IHNhaXRlaWNoaW5naW5zZWlcIDsKK+W4neWbveS4u+e+qeeahCA+IHRlaWtva3VzaHVnaXRla2lcIDsKK+e0jeeojumAmuefpeabuCA+IG5vdXplaXRzdXVjaGlzaG9cIDsKK+mWoueojuWJsuW9k+WItiA+IGthbnplaXdhcmlhdGVzZWlcIDsKK+WxheS9j+iovOaYjuabuCA+IGt5b2p1dXNob3VtZWlzaG9cIDsKK+Wkp+S9v+e0muS8muirhyA+IHRhaXNoaWt5dXVrYWlkYW5cIDsKK+awkeS4u+a0u+WLleWutiA+IG1pbnNodWthdHN1ZG91a2FcIDsKK+WuouWToeeglOeptuWToSA+IGt5YWt1aW5rZW5reXV1aW5cIDsKK+aUr+aMgeWKm+S/guaVsCA+IHNoaWppcnlva3VrZWlzdXVcIDsKK+ebtOS4i+Wei+WcsOmchyA+IGNob2trYWdhdGFqaXNoaW5cIDsKK+acquino+axuuWVj+mhjCA+IG1pa2Fpa2V0c3Vtb25kYWlcIDsKK+W7uuevieWfuua6luazlSA+IGtlbmNoaWt1a2lqdW5ob3VcIDsKK+efpeeahOaJgOacieaoqSA+IGNoaXRla2lzaG95dXVrZW5cIDsKK+iBt+alreWuieWumuaJgCA+IHNob2t1Z3lvdWFudGVpam9cIDsKK+WFseeUo+WFmue0sOiDniA+IGt5b3VzYW50b3VzYWlib3VcIDsKK+S4gOW5tOeUn+iNieacrCA+IGljaGluZW5zZWlzb3Vob25cIDsKK+adoee0hOWKoOebn+WbvSA+IGpvdXlha3VrYW1laWtva3VcIDsKK+eri+ato+S9vOaIkOS8miA+IHJpc3Nob3Vrb3VzZWlrYWlcIDsKK+WFseims+emj+mfs+abuCA+IGt5b3VrYW5mdWt1aW5zaG9cIDsKK+mrmOaJgOaBkOaAlueXhyA+IGtvdXNob2t5b3VmdXNob3VcIDsKK+aWsOiBnuiyqeWjsuW6lyA+IHNoaW5idW5oYW5iYWl0ZW5cIDsKK+i+suael+awtOeUo+ecgSA+IG5vdXJpbnN1aXNhbnNob3VcIDsKK+S6jOiAhemBuOS4gOazlSA+IG5pc2hhc2VuJydpdHN1aG91XCA7CivlooPnlYzlgKTllY/poYwgPiBreW91a2FpY2hpbW9uZGFpXCA7CivnpL7kvJrkurrph47nkIMgPiBzaGFrYWlqaW4nJ3lha3l1dVwgOwor6I+c6aOf5Li7576p6ICFID4gc2Fpc2hva3VzaHVnaXNoYVwgOwor6LuN55Sj6KSH5ZCI5L2TID4gZ3Vuc2FuZnVrdWdvdXRhaVwgOwor57K+56We5Yy75a2m6ICFID4gc2Vpc2hpbicnaWdha3VzaGFcIDsKK+e1jOa4iOS8geeUu+W6gSA+IGtlaXphaWtpa2FrdWNob3VcIDsKK+WFiOerr+aUr+aMgeWKmyA+IHNlbnRhbnNoaWppcnlva3VcIDsKK+S/neWBpeeJqeeQhuWtpiA+IGhva2VuYnV0c3VyaWdha3VcIDsKK+WIhuino+iSuOa6nOazlSA+IGJ1bmthaWpvdXJ5dXVob3VcIDsKK+ioiOmHj+iogOiqnuWtpiA+IGtlaXJ5b3VnZW5nb2dha3VcIDsKK+WcsOWfn+aMr+iIiOWIuCA+IGNoaWlraXNoaW5rb3VrZW5cIDsKK+aApemAsuS4u+e+qeiAhSA+IGt5dXVzaGluc2h1Z2lzaGFcIDsKK+S6pOmAmumBi+i8uOalrSA+IGtvdXRzdXV1bicneXVneW91XCA7CivnhKHliLbpmZDkvpvntaYgPiBtdXNlaWdlbmt5b3VreXV1XCA7CivntabkuI7miYDlvpfogIUgPiBreXV1eW9zaG90b2t1c2hhXCA7CivmiKbpl5jniIbmkoPmqZ8gPiBzZW50b3ViYWt1Z2VraWtpXCA7Civmnpfmpa3oqabpqJPloLQgPiByaW5neW91c2hpa2Vuam91XCA7Civmk7LlvL7nmbrlsITnrZIgPiB0ZWtpZGFuaGFzc2hhdG91XCA7CivnlKPou43opIflkIjkvZMgPiBzYW5ndW5mdWt1Z291dGFpXCA7CivmnIDlpKflhazntITmlbAgPiBzYWlkYWlrb3V5YWt1c3V1XCA7Civlm73lhoXmtojosrvnqI4gPiBrb2t1bmFpc2hvdWhpemVpXCA7CivlsJHlubTlr6nliKTmiYAgPiBzaG91bmVuc2hpbnBhbmpvXCA7CivmtYHooYzmgKfogp3ngo4gPiByeXV1a291c2Vpa2FuJydlblwgOwor5rqW5rqW5rG65Yud5oimID4ganVuanVua2Vzc2hvdXNlblwgOwor5LiN5a6M5YWo54eD54S8ID4gZnVrYW56ZW4nJ25lbnNob3VcIDsKK+WOn+WtkOWKm+aZguS7oyA+IGdlbnNoaXJ5b2t1amlkYWlcIDsKK+i+sualreippumok+WgtCA+IG5vdWd5b3VzaGlrZW5qb3VcIDsKK+mrmOmAn+W6puaSruW9sSA+IGtvdXNva3Vkb3NhdHN1ZWlcIDsKK+Wlveawl+aAp+eUn+eJqSA+IGtvdWtpc2Vpc2VpYnV0c3VcIDsKK+WutuW6reWGheaatOWKmyA+IGthdGVpbmFpYm91cnlva3VcIDsKK+WcqOexjeWwguW+k+iAhSA+IHphaXNla2lzZW5qdXVzaGFcIDsKK+WumOiyu+eVmeWtpueUnyA+IGthbnBpcnl1dWdha3VzZWlcIDsKK+WNl+WMl+acneaZguS7oyA+IG5hbmJva3VjaG91amlkYWlcIDsKK+atu+S6oeiouuaWreabuCA+IHNoaWJvdXNoaW5kYW5zaG9cIDsKK+W8pualveWbm+mHjeWljyA+IGdlbmdha3VzaGlqdXVzb3VcIDsKK+S7suijgeijgeWIpOaJgCA+IGNodXVzYWlzYWliYW5zaG9cIDsKK+eQhuirlueJqeeQhuWtpiA+IHJpcm9uYnV0c3VyaWdha3VcIDsKK+WFqOiIrOWJjeWTqOe3miA+IHplbnBhbnplbnNob3VzZW5cIDsKK+WNgeS6jOaMh+iFuOiZqyA+IGp1dW5pc2hpY2hvdWNodXVcIDsKK+Wcn+acqOW3peWtpuiAhSA+IGRvYm9rdWtvdWdha3VzaGFcIDsKK+aXpeS4remfk+e1seWQiCA+IG5pdGNodXVrYW50b3Vnb3VcIDsKK+aLoeW8teWAjeeyvuW6piA+IGtha3VjaG91YmFpc2VpZG9cIDsKK+WKtOWDjeWPjuWuueaJgCA+IHJvdWRvdXNodXV5b3VzaG9cIDsKK+eEoeedgOmZuOmjm+ihjCA+IG11Y2hha3VyaWt1aGlrb3VcIDsKK+aXpeS7mOWkieabtOe3miA+IGhpZHp1a2VoZW5rb3VzZW5cIDsKK+W9k+S6i+iAheiDveWKmyA+IHRvdWppc2hhbm91cnlva3VcIDsKK+aQjeebiuioiOeul+abuCA+IHNvbicnZWtpa2Vpc2Fuc2hvXCA7CivmgKXooYzlgZzou4rpp4UgPiBreXV1a291dGVpc2hhZWtpXCA7Civlj43mpI3msJHkuLvnvqkgPiBoYW5zaG9rdW1pbnNodWdpXCA7CivmpbXkvY7muKnnp5HlraYgPiBreW9rdXRlaW9ua2FnYWt1XCA7CivlhpnnnJ/mnJvpgaDpj6EgPiBzaGFzaGluYm91ZW5reW91XCA7Civlppnms5Xok67oj6/ntYwgPiBteW91aG91cmVuZ2VreW91XCA7Civlrp/nlKjkuLvnvqnogIUgPiBqaXRzdXlvdXNodWdpc2hhXCA7CivlvozmlrnpgKPntaHnt5ogPiBrb3Vob3VyZW5yYWt1c2VuXCA7Civlrp/pqJPlv4PnkIblraYgPiBqaWtrZW5zaGlucmlnYWt1XCA7CivkuI3ms5XlhaXlm73ogIUgPiBmdWhvdW55dXVrb2t1c2hhXCA7CivlpJrlhYPmlrnnqIvlvI8gPiB0YWdlbmhvdXRlaXNoaWtpXCA7Civlm73lhoXnt4/nlJ/nlKMgPiBrb2t1bmFpc291c2Vpc2FuXCA7CivpiYTpgZPlhazlronlrpggPiB0ZXRzdWRvdWtvdWFua2FuXCA7CivlubPlj7Dlnovosqjou4ogPiBoaXJhZGFpZ2F0YWthc2hhXCA7Civkurrnp7Dku6PlkI3oqZ4gPiBuaW5zaG91ZGFpbWVpc2hpXCA7Civlrp/mpa3kuYvml6XmnKwgPiBqaXRzdWd5b3Vub25paG9uXCA7CivnqY3lsaTkub7pm7vmsaAgPiBzZWtpc291a2FuZGVuY2hpXCA7CivooYzmlL/nrqHnkIbluoEgPiBneW91c2Vpa2FucmljaG91XCA7CivotaTljYHlrZfmnaHntIQgPiBzZWtpanV1amlqb3V5YWt1XCA7CivlhYnlrabpoZXlvq7pj6EgPiBrb3VnYWt1a2VuYmlreW91XCA7CivlvLfliLblj47lrrnmiYAgPiBreW91c2Vpc2h1dXlvdWpvXCA7Civniq/nvarlv4PnkIblraYgPiBoYW56YWlzaGlucmlnYWt1XCA7CivpgKPpgqbmjZzmn7vlsYAgPiByZW5wb3Vzb3VzYWt5b2t1XCA7CivlpKfpmbjnp7vli5XoqqwgPiB0YWlyaWt1aWRvdXNldHN1XCA7CivkvIHmpa3lhoXmlZnogrIgPiBraWd5b3VuYWlreW91aWt1XCA7CivnqpLntKDphbjljJbniakgPiBjaGlzc29zYW5rYWJ1dHN1XCA7CivluJ3njovliIfplovooZMgPiB0ZWlvdXNla2thaWp1dHN1XCA7CivmmKXmqZ/nmbrli5XmnJ8gPiBzaHVua2loYXRzdWRvdWtpXCA7CivlpKnluZXoo73pgKDkurogPiB0ZW5tYWt1c2Vpem91bmluXCA7CivmnIDlhKrnp4DpgbjmiYsgPiBzYWl5dXVzaHV1c2Vuc2h1XCA7Civli53liKnlj4jli53liKkgPiBzaG91cmltYXRhc2hvdXJpXCA7CivlpbPmtYHmloflrabogIUgPiBqb3J5dXVidW5nYWt1c2hhXCA7CivogJDkuYXmtojosrvosqEgPiB0YWlreXV1c2hvdWhpemFpXCA7CivpnZ7lhazlvI/ljZTorbAgPiBoaWtvdXNoaWtpa3lvdWdpXCA7CivnqbrmuK/kvb/nlKjmlpkgPiBrdXVrb3VzaGl5b3VyeW91XCA7CivnhKHph43lipvnirbmhYsgPiBtdWp1dXJ5b2t1am91dGFpXCA7CivlpKnnhafnmoflpKfnpZ4gPiB0ZW5zaG91a291ZGFpamluXCA7Civnsr7npZ7lronlrprliaQgPiBzZWlzaGluJydhbnRlaXphaVwgOwor6YW45oCn6YW45YyW54mpID4gc2Fuc2Vpc2Fua2FidXRzdVwgOwor5YaZ5a6f5Li7576p6ICFID4gc2hhaml0c3VzaHVnaXNoYVwgOwor5Ya35oim5Z6L5oCd6ICDID4gcmVpc2VuZ2F0YXNoaWtvdVwgOwor6Zu75a2Q5bel5qWt5LyaID4gZGVuc2hpa291Z3lvdWthaVwgOwor6Zu75a2Q5bel5a2m6ICFID4gZGVuc2hpa291Z2FrdXNoYVwgOwor5rCR5Li75YWx5ZKM5Zu9ID4gbWluc2h1a3lvdXdha29rdVwgOwor54us56uL6KiY5b+15pelID4gZG9rdXJpdHN1a2luZW5iaVwgOwor5YyW5a2m6Kq/5ZGz5paZID4ga2FnYWt1Y2hvdW1pcnlvdVwgOwor57WC6Lqr6ZuH55So5Yi2ID4gc2h1dXNoaW5rb3lvdXNlaVwgOwor5LiN5a6a5pa556iL5byPID4gZnV0ZWlob3V0ZWlzaGlraVwgOwor5aSn5L+u6YGT6Zmi6ZW3ID4gZGFpc2h1dWRvdWluY2hvdVwgOwor5riv5rm+6YGL6YCB5qWtID4ga291d2FuJyd1bnNvdWd5b3VcIDsKK+WRqOazouaVsOWkieiqvyA+IHNodXVoYXN1dWhlbmNob3VcIDsKK+S5vueHpeWcsOi+sualrSA+IGthbnNvdWNoaW5vdWd5b3VcIDsKK+eSsOWig+mFjeaFruabuCA+IGthbmt5b3VoYWlyeW9zaG9cIDsKK+WbuuS9k+eJqeeQhuWtpiA+IGtvdGFpYnV0c3VyaWdha3VcIDsKK+e1hOe5lOWKtOWDjeiAhSA+IHNvc2hpa2lyb3Vkb3VzaGFcIDsKK+WWtualreWgseWRiuabuCA+IGVpZ3lvdWhvdWtva3VzaG9cIDsKK+W6g+WRiuS7o+eQhuW6lyA+IGtvdWtva3VkYWlyaXRlblwgOwor5oim5pmC5Zu96Zqb5rOVID4gc2Vuamlrb2t1c2FpaG91XCA7CivlpJrpoY3ntI3nqI7ogIUgPiB0YWdha3Vub3V6ZWlzaGFcIDsKK+WkquWFg+W4peWmmeeOiyA+IGRhaWdlbnN1aW15b3VvdVwgOwor5Lit6YOo5aSq5bmz5rSLID4gY2h1dWJ1dGFpaGVpeW91XCA7CivkvIHmpa3lhoXntYTlkIggPiBraWd5b3VuYWlrdW1pYWlcIDsKK+WkquW5s+a0i+aIpuS6iSA+IHRhaWhlaXlvdXNlbnNvdVwgOwor6YCj5biv5L+d6Ki85Lq6ID4gcmVudGFpaG9zaG91bmluXCA7Civou43lm73kuLvnvqnogIUgPiBndW5rb2t1c2h1Z2lzaGFcIDsKK+WPjeW4neWbveS4u+e+qSA+IGhhbnRlaWtva3VzaHVnaVwgOwor5Lya56S+5pu055Sf5rOVID4ga2Fpc2hha291c2VpaG91XCA7Civlm73pgbjlvIHorbfkurogPiBrb2t1c2VuYmVuZ29uaW5cIDsKK+iHqueEtuWcsOeQhuWtpiA+IHNoaXplbmNoaXJpZ2FrdVwgOwor5Zyw5Z+f55qE5YiG5biDID4gY2hpaWtpdGVraWJ1bnB1XCA7Civliarmlq3lronlrprmgKcgPiBzZW5kYW4nJ2FudGVpc2VpXCA7Civpq5jliIblrZDljJblraYgPiBrb3VidW5zaGlrYWdha3VcIDsKK+aDheWgseWFrOmWi+azlSA+IGpvdWhvdWtvdWthaWhvdVwgOwor5Y+N5bCE5pyb6YGg6Y+hID4gaGFuc2hhYm91ZW5reW91XCA7CivnibnliKXlp5Tlk6HkvJogPiB0b2t1YmV0c3VpaW5rYWlcIDsKK+WGhemcgOS4u+WwjuWeiyA+IG5haWp1c2h1ZG91Z2F0YVwgOwor5pm05aSp5Lmx5rCX5rWBID4gc2VpdGVucmFua2lyeXV1XCA7Civln7rmnKznmoTkurrmqKkgPiBraWhvbnRla2lqaW5rZW5cIDsKK+aIpuS6ieeKr+e9quS6uiA+IHNlbnNvdWhhbnphaW5pblwgOwor5Y+N5a++6LK/5piT6aKoID4gaGFudGFpYm91ZWtpZnV1XCA7CivpgZPot6/kuqTpgJrms5UgPiBkb3Vyb2tvdXRzdXVob3VcIDsKK+WFseeUo+WbveWutumDoSA+IGt5b3VzYW5rb2trYWd1blwgOwor5Luu6KOF5beh5rSL6ImmID4ga2Fzb3VqdW4nJ3lvdWthblwgOwor5pWZ6IKy5Z+65pys5rOVID4ga3lvdWlrdWtpaG9uaG91XCA7CivnlJ/nlKPogIXkvqHmoLwgPiBzZWlzYW5zaGFrYWtha3VcIDsKK+acgOWwj+S6jOS5l+azlSA+IHNhaXNob3VuaWpvdWhvdVwgOwor5Li75bm556CU56m25ZOhID4gc2h1a2Fua2Vua3l1dWluXCA7Civlrpjlg5rkuLvnvqnogIUgPiBrYW5yeW91c2h1Z2lzaGFcIDsKK+Wwj+mBuOaMmeWMuuWItiA+IHNob3VzZW5reW9rdXNlaVwgOwor6Ieq6Lui6LuK5pON5qWtID4gaml0ZW5zaGFzb3VneW91XCA7CivkuJbnlYzmlrDoqJjpjLIgPiBzZWthaXNoaW5raXJva3VcIDsKK+WVhuW3peS8muitsOaJgCA+IHNob3Vrb3VrYWlnaXNob1wgOwor5by+5Yq+6KOB5Yik5omAID4gZGFuZ2Fpc2FpYmFuc2hvXCA7Civkv53orbfplqLnqI7njocgPiBob2dva2FuemVpcml0c3VcIDsKK+a6luemgeayu+eUo+iAhSA+IGp1bmtpbmNoaXNhbnNoYVwgOwor6K2w6Zmi5YaF6Zaj5Yi2ID4gZ2lpbicnbmFpa2FrdXNlaVwgOwor55Sf5rS75L+d6K235rOVID4gc2Vpa2F0c3Vob2dvaG91XCA7CivlhbHnlKPkuLvnvqnogIUgPiBreW91c2Fuc2h1Z2lzaGFcIDsKK+ato+WuieaBr+mmmemFuCA+IHNlaWFuc29rdWtvdXNhblwgOwor5YWs5a6z55eF5oKj6ICFID4ga291Z2FpYnlvdWthbmphXCA7CivosqHmlL/mipXono3os4cgPiB6YWlzZWl0b3V5dXVzaGlcIDsKK+a4r+a5vuWKtOWDjeiAhSA+IGtvdXdhbnJvdWRvdXNoYVwgOwor5YaF6Zm45oCn5rCX5YCZID4gbmFpcmlrdXNlaWtpa291XCA7CivkuK3lpK7mqJnmupbmmYIgPiBjaHV1b3VoeW91anVuamlcIDsKK+aKleWFieeFp+aYjuWZqCA+IHRvdWtvdXNob3VtZWlraVwgOwor57eP5ZCM55uf57235qWtID4gc291ZG91bWVpaGlneW91XCA7CivmnIDpq5joo4HliKTmiYAgPiBzYWlrb3VzYWliYW5zaG9cIDsKK+WWtuWbo+WcsOS4i+mJhCA+IGVpZGFuY2hpa2F0ZXRzdVwgOwor6aO95ZKM5YyW5ZCI54mpID4gaG91d2FrYWdvdWJ1dHN1XCA7Civph5HlsZ7mjqLnn6XmqZ8gPiBraW56b2t1dGFuY2hpa2lcIDsKK+a1ruWLleWwj+aVsOeCuSA+IGZ1ZG91c2hvdXN1dXRlblwgOwor6KiA6Kqe5b+D55CG5a2mID4gZ2VuZ29zaGlucmlnYWt1XCA7CivkuIDlp6vkuozlpKrpg44gPiBpY2hpaGltZW5pdGFyb3VcIDsKK+eVjOmdoua0u+aAp+WJpCA+IGthaW1lbmthc3NlaXphaVwgOwor5Lq655Sf5qGI5YaF5qyEID4gamluc2VpYW4nJ25haXJhblwgOwor5LiA5YiG5LqM5Y2B56eSID4gaXBwdW4nJ25panV1YnlvdVwgOwor5Y2X6Zi/5YWx5ZKM5Zu9ID4gbmFuJydha3lvdXdha29rdVwgOwor5Li75oim6ZeY5oim6LuKID4gc2h1c2VudG91c2Vuc2hhXCA7Civmr5TovIPoqIDoqp7lraYgPiBoaWtha3VnZW5nb2dha3VcIDsKK+WGheaUv+S4jeW5sua4iSA+IG5haXNlaWZ1a2Fuc2hvdVwgOwor6auY562J6KOB5Yik5omAID4ga291dG91c2FpYmFuc2hvXCA7CivnkIPpnaLlub7kvZXlraYgPiBreXV1bWVua2lrYWdha3VcIDsKK+mbu+WtkOmhleW+rumPoSA+IGRlbnNoaWtlbmJpa3lvdVwgOwor5Yq05YON55Sf55Sj5oCnID4gcm91ZG91c2Vpc2Fuc2VpXCA7CivlubPooYzlm5vovrrlvaIgPiBoZWlrb3VzaGloZW5rZWlcIDsKK+aEn+WCt+S4u+e+qeiAhSA+IGthbnNob3VzaHVnaXNoYVwgOwor5a2m55Sf6Ieq5rK75LyaID4gZ2FrdXNlaWppY2hpa2FpXCA7CivlubTph5Hlj5fntabogIUgPiBuZW5raW5qdWt5dXVzaGFcIDsKK+mdnuWQjOacn+mAmuS/oSA+IGhpZG91a2l0c3V1c2hpblwgOwor5LiJ5Y2B5bm05oim5LqJID4gc2FuanV1bmVuc2Vuc291XCA7CivplonmiYDmgZDmgJbnl4cgPiBoZWlqb2t5b3VmdXNob3VcIDsKK+WPuOazleeglOS/ruaJgCA+IHNoaWhvdWtlbnNodXVqb1wgOwor5L2O6YeR5Yip5pS/562WID4gdGVpa2lucmlzZWlzYWt1XCA7CivpurvolqzluLjnlKjogIUgPiBtYXlha3Vqb3V5b3VzaGFcIDsKK+mVt+i3nembouWIl+i7iiA+IGNob3VreW9yaXJlc3NoYVwgOwor5oey572w5aeU5ZOh5LyaID4gY2hvdWJhdHN1aWlua2FpXCA7CivmnInmqZ/ljJblkIjniakgPiB5dXVraWthZ291YnV0c3VcIDsKK+alveWkqeS4u+e+qeiAhSA+IHJha3V0ZW5zaHVnaXNoYVwgOwor54Sh5p2h5Lu26ZmN5LyPID4gbXVqb3VrZW5rb3VmdWt1XCA7CivpgYvou6LlhY3oqLHoqLwgPiB1bnRlbm1lbmt5b3Nob3VcIDsKK+agvOmXmOaIpumDqOmaiiA+IGtha3V0b3VzZW5idXRhaVwgOwor5bGV56S65Y2z5aOy5LyaID4gdGVuamlzb2t1YmFpa2FpXCA7Civou43kuovlooPnlYznt5ogPiBndW5qaWt5b3VrYWlzZW5cIDsKK+a2iOiyu+iAheWbo+S9kyA+IHNob3VoaXNoYWRhbnRhaVwgOwor5YWo5L2T5Li7576p5Zu9ID4gemVudGFpc2h1Z2lrb2t1XCA7CivkuI3lj6/kvrXmnaHntIQgPiBmdWthc2hpbmpvdXlha3VcIDsKK+W6p+W4reaMh+WumuWIuCA+IHphc2VraXNoaXRlaWtlblwgOwor5biw5Zu95a2Q5aWz5p6gID4ga2lrb2t1c2hpam93YWt1XCA7CivpgbroqIDoo5zotrPmm7ggPiB5dWlnb25ob3Nva3VzaG9cIDsKK+eCremJseWKtOWDjeiAhSA+IHRhbmtvdXJvdWRvdXNoYVwgOwor6Kej5p6Q5bm+5L2V5a2mID4ga2Fpc2VraWtpa2FnYWt1XCA7CivntYzmuIjmgKflkJHkuIogPiBrZWl6YWlzZWlrb3Vqb3VcIDsKK+WcsOS4i+aguOWun+mokyA+IGNoaWtha2FrdWppa2tlblwgOwor5q+U5L6L5Luj6KGo5Yi2ID4gaGlyZWlkYWloeW91c2VpXCA7Civnq4vmhrLlkJvkuLvmlL8gPiByaWtrZW5rdW5zaHVzZWlcIDsKK+mtmumbt+eZuuWwhOeuoSA+IGd5b3JhaWhhc3NoYWthblwgOwor5pCN55uK5YiG5bKQ54K5ID4gc29uJydla2lidW5raXRlblwgOwor56S+5Lya5L+d6Zm65bqBID4gc2hha2FpaG9rZW5jaG91XCA7CivmranooYzogIXlpKnlm70gPiBob2tvdXNoYXRlbmdva3VcIDsKK+WbveawkeeahuS/nemZuiA+IGtva3VtaW5rYWlob2tlblwgOwor5Y2Y57SU5YaN55Sf55SjID4gdGFuanVuc2Fpc2Vpc2FuXCA7CivooqvpgbjmjJnos4fmoLwgPiBoaXNlbmt5b3NoaWtha3VcIDsKK+Wfuua6luWkluizg+mHkSA+IGtpanVuZ2FpY2hpbmdpblwgOwor54ax5biv5L2O5rCX5ZynID4gbmV0dGFpdGVpa2lhdHN1XCA7Civnj77lnKjlrozkuobmmYIgPiBnZW56YWlrYW5yeW91amlcIDsKK+etiei+uuS4ieinkuW9oiA+IHRvdWhlbnNhbmtha2tlaVwgOwor5pel5bi46Iy26aOv5LqLID4gbmljaGlqb3VzYWhhbmppXCA7CivpgKPpjpbnirbnkIPoj4wgPiByZW5zYWpvdWt5dXVraW5cIDsKK+WOn+eIhueKoOeJsuiAhSA+IGdlbmJha3VnaXNlaXNoYVwgOwor5aSW5Zu95oqV6LOH5a62ID4gZ2Fpa29rdXRvdXNoaWthXCA7Civpm7vms6LlpKnmloflraYgPiBkZW5wYXRlbm1vbmdha3VcIDsKK+ani+mAoOiogOiqnuWtpiA+IGtvdXpvdWdlbmdvZ2FrdVwgOwor5Zyw5Z+f5Ya35pqW5oi/ID4gY2hpaWtpcmVpZGFuYm91XCA7Civkurrlt6XlkbzlkLjms5UgPiBqaW5rb3Vrb2t5dXVob3VcIDsKK+Wun+iovOS4u+e+qeiAhSA+IGppc3Nob3VzaHVnaXNoYVwgOwor5pSv5oyB5Yqb55CG6KuWID4gc2hpamlyeW9rdXJpcm9uXCA7CivlhazplovoqI7oq5bkvJogPiBrb3VrYWl0b3Vyb25rYWlcIDsKK+aWh+mDqOenkeWtpuecgSA+IG1vbmJ1a2FnYWt1c2hvdVwgOwor54m56Kix5piO57Sw5pu4ID4gdG9ra3lvbWVpc2Fpc2hvXCA7CivnqI7liLboqr/mn7vkvJogPiB6ZWlzZWljaG91c2FrYWlcIDsKK+eZuuWxlemAlOS4iuWbvSA+IGhhdHRlbnRvam91a29rdVwgOwor5YWs5YWx5Zuz5pu46aSoID4ga291a3lvdXRvc2hva2FuXCA7Civlm73lhoXopo/moLzljJYgPiBrb2t1bmFpa2lrYWt1a2FcIDsKK+WJteeri+iomOW/teaXpSA+IHNvdXJpdHN1a2luZW5iaVwgOwor6YeR6Yqt55m76Yyy5ZmoID4ga2luc2VudG91cm9rdWtpXCA7CivlirTlg43ntYTlkIjms5UgPiByb3Vkb3VrdW1pYWlob3VcIDsKK+e0oOW9ouadkOeUo+alrSA+IHNva2VpemFpc2FuZ3lvdVwgOwor5Lqk5o+b6LK/5piT5Yi2ID4ga291a2FuYm91ZWtpc2VpXCA7Civnj77lnLDpp5DlnKjlk6EgPiBnZW5jaGljaHV1emFpaW5cIDsKK+acgOWwj+iHquS5l+azlSA+IHNhaXNob3VqaWpvdWhvdVwgOwor5bCP5Z6L5LmX55So6LuKID4ga29nYXRham91eW91c2hhXCA7CivlsZ7mgKflgKTooYzliJcgPiB6b2t1c2VneW91cmV0c3VcIDsKK+a1t+i7jeWFteWtpuagoSA+IGthaWd1bmhlaWdha2tvdVwgOwor6buE6YGT5Y2B5LqM5a6uID4ga291ZG91anV1bmlreXV1XCA7Civlh7rmnaXpq5jku5XkuosgPiBkZWtpZGFrYXNoaWdvdG9cIDsKK+izh+eUo+iyoOWCteihqCA+IHNoaXNhbmZ1c2FpaHlvdVwgOwor54mI5qip5omA5pyJ6ICFID4gaGFua2Vuc2hveXV1c2hhXCA7Civkv6HlvpLkvJ3li5XogIUgPiBzaGludG9kZW5kb3VzaGFcIDsKK+WumOiDveS4u+e+qeiAhSA+IGthbicnbm91c2h1Z2lzaGFcIDsKK+iBlumciumZjeiHqOelrSA+IHNlaXJlaWtvdXJpbnNhaVwgOwor5rWB6KGM5oCn6ISz54KOID4gcnl1dWtvdXNlaW5vdWVuXCA7CivoqJjlv7Xoq5bmlofpm4YgPiBraW5lbnJvbmJ1bnNodXVcIDsKK+iHquWLlemAo+e1kOapnyA+IGppZG91cmVua2V0c3VraVwgOwor5aSn6Zm45oCn5rCX5YCZID4gdGFpcmlrdXNlaWtpa291XCA7CivmoLjlhbXlmajlrp/pqJMgPiBrYWt1aGVpa2lqaWtrZW5cIDsKK+iqh+Wkp+WmhOaDs+eLgiA+IGtvZGFpbW91c291a3lvdVwgOwor6Lqr5YiG6Ki85piO5pu4ID4gbWlidW5zaG91bWVpc2hvXCA7CivmlofljJbkurrpoZ7lraYgPiBidW5rYWppbnJ1aWdha3VcIDsKK+esrOS4ieasoeeUo+alrSA+IGRhaXNhbmppc2FuZ3lvdVwgOwor5paH5YyW5aSn6Z2p5ZG9ID4gYnVua2FkYWlrYWt1bWVpXCA7CivpnZ7lsYDmiYDliIblspAgPiBoaWt5b2t1c2hvYnVua2lcIDsKK+mWouS/guS7o+WQjeipniA+IGthbmtlaWRhaW1laXNoaVwgOwor5aSa5Zu957GN6KiA6KqeID4gdGFrb2t1c2VraWdlbmdvXCA7CivmsLTpioDmsJflnKfoqIggPiBzdWlnaW5raWF0c3VrZWlcIDsKK+WFkOerpeW/g+eQhuWtpiA+IGppZG91c2hpbnJpZ2FrdVwgOwor56m65rSe5YyW54++6LGhID4ga3V1ZG91a2FnZW5zaG91XCA7CivnhKHnkIbmlrnnqIvlvI8gPiBtdXJpaG91dGVpc2hpa2lcIDsKK+S6pOW3ruWvvuensOaApyA+IGtvdXNhdGFpc2hvdXNlaVwgOwor5Zan5Zip5Lih5oiQ5pWXID4ga2Vua2FyeW91c2VpYmFpXCA7CivoppbogbTopprmqZ/lmaggPiBzaGljaG91a2FrdWtpa2lcIDsKK+afk+iJsuS9k+eVsOW4uCA+IHNlbnNob2t1dGFpaWpvdVwgOwor57WQ5ama6YGp6b2i5pyfID4ga2Vra29udGVraXJlaWtpXCA7CivmvLjov5HnmoToh6rnlLEgPiB6ZW5raW50ZWtpaml5dXVcIDsKK+ekvuS8muawkeS4u+WFmiA+IHNoYWthaW1pbnNodXRvdVwgOwor56eB6Kit5b+c5o+05ZujID4gc2hpc2V0c3VvdWVuZGFuXCA7CivntYzmuIjlkIzlj4vkvJogPiBrZWl6YWlkb3V5dXVrYWlcIDsKK+WPjeiovOWPr+iDveaApyA+IGhhbnNob3VrYW5vdXNlaVwgOwor5pCs6YCB5ZGo5rOi5pWwID4gaGFuc291c2h1dWhhc3V1XCA7CivmnIDpq5jmjIflsI7ogIUgPiBzYWlrb3VzaGlkb3VzaGFcIDsKK+iRoeiQhOeKtueQg+iPjCA+IGJ1ZG91am91a3l1dWtpblwgOwor5YWo57+86aOb6KGM5qmfID4gemVuJyd5b2t1aGlrb3VraVwgOwor6YCf5Yq55oCn6IKl5paZID4gc29ra291c2VpaGlyeW91XCA7CivpgYXlirnmgKfogqXmlpkgPiBjaGlrb3VzZWloaXJ5b3VcIDsKK+Wbveeyi+S4u+e+qeiAhSA+IGtva3VzdWlzaHVnaXNoYVwgOwor5pat5by+5oCn5L+C5pWwID4gZGFuZGFuc2Vpa2Vpc3V1XCA7CivkuozmrKHmlrnnqIvlvI8gPiBuaWppaG91dGVpc2hpa2lcIDsKK+W/nOeUqOW/g+eQhuWtpiA+IG91eW91c2hpbnJpZ2FrdVwgOwor57K+56We55Ww5bi46ICFID4gc2Vpc2hpbicnaWpvdXNoYVwgOwor5Ye655Sf5bm05pyI5pelID4gc2h1c3NlaW5lbmdhcHBpXCA7Civli5XoqZ7nirblkI3oqZ4gPiBkb3VzaGlqb3VtZWlzaGlcIDsKK+iHqueUseijgemHj+aoqSA+IGppeXV1c2FpcnlvdWtlblwgOwor5Lit5aSu6ZuG5qip5YyWID4gY2h1dW91c2h1dWtlbmthXCA7CivnhKHliKnmga/oqLzliLggPiBtdXJpc29rdXNob3VrZW5cIDsKK+S7gee+qeekvOaZuuS/oSA+IGppbmdpcmVpY2hpc2hpblwgOwor5pu05bm05pyf6Zqc5a6zID4ga291bmVua2lzaG91Z2FpXCA7Civlm73oqp7lr6norbDkvJogPiBrb2t1Z29zaGluZ2lrYWlcIDsKK+WcsOaWueijgeWIpOaJgCA+IGNoaWhvdXNhaWJhbnNob1wgOwor6Ieq5YuV5pS55pyt5qmfID4gamlkb3VrYWlzYXRzdWtpXCA7CivmnKrlsLHlrablhZDnq6UgPiBtaXNodXVnYWt1amlkb3VcIDsKK+Wun+aZgumWk+WHpueQhiA+IGppdHN1amlrYW5zaG9yaVwgOwor6aCQ6YeR5rqW5YKZ546HID4geW9raW5qdW5iaXJpdHN1XCA7CivlpKnkvZPmnJvpgaDpj6EgPiB0ZW50YWlib3Vlbmt5b3VcIDsKK+ekvuS8muiruOenkeWtpiA+IHNoYWthaXNob2thZ2FrdVwgOwor5rOV5b6L5LqL5YuZ5omAID4gaG91cml0c3VqaW11c2hvXCA7Civlrp/liKnkuLvnvqnogIUgPiBqaXRzdXJpc2h1Z2lzaGFcIDsKK+acqueiuuiqjeaDheWgsSA+IG1pa2FrdW5pbmpvdWhvdVwgOwor6ICB5Lq65oCn55e05ZGGID4gcm91amluc2VpY2hpaG91XCA7CivlnKjlpJbnoJTnqbblk6EgPiB6YWlnYWlrZW5reXV1aW5cIDsKK+Wuouims+S4u+e+qeiAhSA+IGt5YWtrYW5zaHVnaXNoYVwgOwor6YG45omL5qip5aSn5LyaID4gc2Vuc2h1a2VudGFpa2FpXCA7CivkuIvntJroo4HliKTmiYAgPiBrYWt5dXVzYWliYW5zaG9cIDsKK+mAk+mZjeWkieWcp+WZqCA+IHRlaWtvdWhlbmF0c3VraVwgOwor6ZmQ55WM6aGV5b6u6Y+hID4gZ2Vua2Fpa2VuYmlreW91XCA7CivopoHmkoPmiKbpl5jmqZ8gPiB5b3VnZWtpc2VudG91a2lcIDsKK+S4jeWFrOW5s+ertuS6iSA+IGZ1a291aGVpa3lvdXNvdVwgOwor5YWs6KqN5Lya6KiI5aOrID4ga291bmlua2Fpa2Vpc2hpXCA7Civniq/ooYzlo7DmmI7mlocgPiBoYW5rb3VzZWltZWlidW5cIDsKK+a2iOiyu+iAheS+oeagvCA+IHNob3VoaXNoYWtha2FrdVwgOwor6Z+z5qW96KmV6KuW5a62ID4gb25nYWt1aHlvdXJvbmthXCA7Civlhazlronoqr/mn7vluoEgPiBrb3VhbmNob3VzYWNob3VcIDsKK+S5l+mZjei7iuWEquWFiCA+IGpvdWtvdXNoYXl1dXNlblwgOwor5Lq65bel55SY5ZGz5paZID4gamlua291a2FubWlyeW91XCA7CivlnKjpg7fou43kurrkvJogPiB6YWlnb3VndW5qaW5rYWlcIDsKK+iHquiomOa5v+W6puioiCA+IGppa2lzaGl0c3Vkb2tlaVwgOwor5aSn57Wx5LiA55CG6KuWID4gZGFpdG91aXRzdXJpcm9uXCA7CivmpJzlrprmlZnnp5Hmm7ggPiBrZW50ZWlreW91a2FzaG9cIDsKK+WMu+WtpuaKgOihk+WjqyA+IGlnYWt1Z2lqdXRzdXNoaVwgOwor5aSp55qH6KqV55Sf5pelID4gdGVuJydub3V0YW5qb3ViaVwgOwor5aSq5bmz5rSL5Zyw5Z+fID4gdGFpaGVpeW91Y2hpaWtpXCA7Civos4fnlKPlho3oqZXkvqEgPiBzaGlzYW5zYWloeW91a2FcIDsKK+aDhee3kumanOWus+WFkCA+IGpvdWNob3Nob3VnYWlqaVwgOwor5pel5pys5Zu95oay5rOVID4gbmlob25rb2t1a2VucG91XCA7CivkurrmsJHop6PmlL7ou40gPiBqaW5taW5rYWlob3VndW5cIDsKK+e1tuWvvuWQm+S4u+WItiA+IHpldHRhaWt1bnNodXNlaVwgOwor6Iq46KGT5oSb5aW95a62ID4gZ2VpanV0c3VhaWtvdWthXCA7Civnp4HnlJ/lhZDlh7rnlKMgPiBzaGlzZWlqaXNodXNzYW5cIDsKK+S4oemZouWNlOitsOS8miA+IHJ5b3Vpbmt5b3VnaWthaVwgOwor5bCP55Sw5Y6f5o+Q54GvID4gb2Rhd2FyYWRqb3VjaGluXCA7Civosqjnianoh6rli5Xou4ogPiBrYW1vdHN1amlkb3VzaGFcIDsKK+eJh+aJi+mWk+S7leS6iyA+IGthdGF0ZW1hc2hpZ290b1wgOwor56We57WM5Zue6Lev57ayID4gc2hpbmtlaWthaXJvbW91XCA7Civngq3ntKDljJblkIjniakgPiB0YW5zb2thZ291YnV0c3VcIDsKK+awl+euoeaUr+WWmOaBryA+IGtpa2Fuc2hpemVuc29rdVwgOwor5LiN5YuV55Sj5qWt6ICFID4gZnVkb3VzYW5neW91c2hhXCA7CivmtbfmtIvmsJfosaHlj7AgPiBrYWl5b3VraXNob3VkYWlcIDsKK+iHquWLlee/u+ios+apnyA+IGppZG91aG9uJyd5YWt1a2lcIDsKK+e4hOaWh+W8j+Wcn+WZqCA+IGpvdW1vbnNoaWtpZG9raVwgOwor6Ly45YWl6Kqy5b606YeRID4geXVueXV1a2FjaG91a2luXCA7Civph43llYbkuLvnvqnogIUgPiBqdXVzaG91c2h1Z2lzaGFcIDsKK+mBuueUo+ebuOe2mueojiA+IGlzYW5zb3V6b2t1emVpXCA7Civmr5jlu6zpga7pgqPku48gPiBiaXJ1c2hhbmFidXRzdVwgOwor6Zai56iO6Ieq5Li75qipID4ga2FuemVpamlzaHVrZW5cIDsKK+WfuuacrOWRqOazouaVsCA+IGtpaG9uc2h1dWhhc3V1XCA7Civlm5vovKrpp4bli5Xou4ogPiB5b25yaW5rdWRvdXNoYVwgOwor6Z2Z6Zu75rCX6Ziy5q2iID4gc2VpZGVua2lib3VzaGlcIDsKK+eFmeeqgeaOg+mZpOWkqyA+IGVudG90c3Vzb3VqaWZ1XCA7CivkvJHmiKboqJjlv7Xml6UgPiBreXV1c2Vua2luZW5iaVwgOwor5a2m5qCh576k5Yi25bqmID4gZ2Fra291Z3Vuc2VpZG9cIDsKK+aUvuWwhOe3muaKgOW4qyA+IGhvdXNoYXNlbmdpc2hpXCA7Civlrrbluq3oo4HliKTmiYAgPiBrYXRlaXNhaWJhbnNob1wgOwor6ZW36Led6Zui5omT6ICFID4gY2hvdWt5b3JpZGFzaGFcIDsKK+aXpeacrOaomea6luaZgiA+IG5paG9uaHlvdWp1bmppXCA7CivoqpjlsI7pm7vli5XmqZ8gPiB5dXVkb3VkZW5kb3VraVwgOwor5bu65Zu96KiY5b+15pelID4ga2Vua29rdWtpbmVuYmlcIDsKK+S8nee1seS4u+e+qeiAhSA+IGRlbnRvdXNodWdpc2hhXCA7CivnmbvoqJjnlarlj7fmrIQgPiB0b3VraWJhbmdvdXJhblwgOwor5q2p6KGM6ICF5YSq5YWIID4gaG9rb3VzaGF5dXVzZW5cIDsKK+eEoeS6uuWuh+WumeiIuSA+IG11amluJyd1Y2h1dXNlblwgOwor576F6JCE5pel6L6e5YW4ID4gcmFwb25pY2hpaml0ZW5cIDsKK+a4qeaaluWMluePvuixoSA+IG9uZGFua2FnZW5zaG91XCA7Civlqabkurrlj4LmlL/mqKkgPiBmdWppbnNhbnNlaWtlblwgOwor6Ieq55Sx5rCR5Li75YWaID4gaml5dXVtaW5zaHV0b3VcIDsKK+WAi+S9k+eZuueUn+irliA+IGtvdGFpaGFzc2Vpcm9uXCA7CivlpKflqIHlvrPlppnnjosgPiBkYWlpdG9rdW15b3VvdVwgOwor5aSn6Z+T6Iiq56m65qmfID4gdGFpa2Fua291a3V1a2lcIDsKK+S4jeeJueWumuWkmuaVsCA+IGZ1dG9rdXRlaXRhc3V1XCA7CivkuLvmg4XkuLvnvqnogIUgPiBzaHVqb3VzaHVnaXNoYVwgOwor5rOV5a6a5Luj55CG5Lq6ID4gaG91dGVpZGFpcmluaW5cIDsKK+WFrOmWi+Wbs+abuOmkqCA+IGtvdWthaXRvc2hva2FuXCA7CivkuIDmmYLplpPku6XlhoUgPiBpY2hpamlrYW4nJ2luYWlcIDsKK+aVsOeQhuiogOiqnuWtpiA+IHN1dXJpZ2VuZ29nYWt1XCA7CivpgbrnlKPnm7jntprkurogPiBpc2Fuc291em9rdW5pblwgOwor5pa55ZCR5o6i55+l5ZmoID4gaG91a291dGFuY2hpa2lcIDsKK+eGseWPr+WhkeaoueiEgiA+IG5ldHN1a2Fzb2p1c2hpXCA7CivnhKHmqZ/ljJblkIjniakgPiBtdWtpa2Fnb3VidXRzdVwgOwor6YeN6KaB5paH5YyW6LKhID4ganV1eW91YnVua2F6YWlcIDsKK+WxhemWk+WFvOmjn+WggiA+IGltYWtlbnNob2t1ZG91XCA7CivnlbDmlrnlsI7pm7vohpwgPiBpaG91ZG91ZGVubWFrdVwgOwor5oyH56S65Luj5ZCN6KmeID4gc2hpamlkYWltZWlzaGlcIDsKK+WbnuW+qeS4jeWPr+iDvSA+IGthaWZ1a3VmdWthbm91XCA7Civmi53ph5HkuLvnvqnogIUgPiBoYWlraW5zaHVnaXNoYVwgOwor5Lq66YGT5Li7576p6ICFID4gamluZG91c2h1Z2lzaGFcIDsKK+S4reWkruWIhumbouW4ryA+IGNodXVvdWJ1bnJpdGFpXCA7CivmuKnluK/kvY7msJflnKcgPiBvbnRhaXRlaWtpYXRzdVwgOwor6LaF5Zu95a625Li7576pID4gY2hvdWtva2thc2h1Z2lcIDsKK+WIqeWus+mWouS/guiAhSA+IHJpZ2Fpa2Fua2Vpc2hhXCA7CivooYborbDlk6HorbDplbcgPiBzaHV1Z2lpbmdpY2hvdVwgOwor5bCO5rOi566h5a6a5pWwID4gZG91aGFrYW50ZWlzdXVcIDsKK+S4geWtl+W9ouWumuimjyA+IHRlaWppZ2F0YWpvdWdpXCA7CivnsKHmmJPoo4HliKTmiYAgPiBrYW4nJ2lzYWliYW5zaG9cIDsKK+WPjeWLleS4u+e+qeiAhSA+IGhhbmRvdXNodWdpc2hhXCA7Civpn7Pmpb3lm7Pmm7jppKggPiBvbmdha3V0b3Nob2thblwgOwor5LmX55So6Ieq5YuV6LuKID4gam91eW91amlkb3VzaGFcIDsKK+Wcp+WAkueahOWkmuaVsCA+IGF0dG91dGVraXRhc3V1XCA7CivpnZ7mlL/lupzntYTnuZQgPiBoaXNlaWZ1c29zaGlraVwgOwor6Ieq55Sx5Yq05YON6ICFID4gaml5dXVyb3Vkb3VzaGFcIDsKK+WNmuaEm+S4u+e+qeiAhSA+IGhha3VhaXNodWdpc2hhXCA7CivlrprmnJ/kuZfou4rliLggPiB0ZWlraWpvdXNoYWtlblwgOwor6Zu75rCX5rSX5r+v5qmfID4gZGVua2lzZW50YWt1a2lcIDsKK+e1guaIpuiomOW/teaXpSA+IHNodXVzZW5raW5lbmJpXCA7CivnpL7kvJrkuLvnvqnogIUgPiBzaGFrYWlzaHVnaXNoYVwgOwor5bCP5Z6L6Ieq5YuV6LuKID4ga29nYXRhamlkb3VzaGFcIDsKK+awkeS6i+iotOion+azlSA+IG1pbmppc29zaG91aG91XCA7CivnrKzkuozph4/lrZDljJYgPiBkYWluaXJ5b3VzaGlrYVwgOwor5LqM5Y6f5a2Q5YiG5a2QID4gbmlnZW5zaGlidW5zaGlcIDsKK+W4uOS7u+aMh+aPruiAhSA+IGpvdW5pbnNoaWtpc2hhXCA7CivovrLkuovoqabpqJPloLQgPiBub3VqaXNoaWtlbmpvdVwgOwor5oOF5aCx5YyW56S+5LyaID4gam91aG91a2FzaGFrYWlcIDsKK+S4u+ims+S4u+e+qeiAhSA+IHNodWthbnNodWdpc2hhXCA7CivnhKHmlZnkvJrkuLvnvqkgPiBtdWt5b3VrYWlzaHVnaVwgOwor57Gz5L6h5a+p6K2w5LyaID4gYmVpa2FzaGluZ2lrYWlcIDsKK+aZgumWk+WkluWKtOWDjSA+IGppa2FuZ2Fpcm91ZG91XCA7Civnmb7np5Hlhajmm7jmtL4gPiBoeWFra2F6ZW5zaG9oYVwgOwor5LqM55m+5LqM5Y2B5pelID4gbmloeWFrdWhhdHN1a2FcIDsKK+S6jOmHjeS+oeagvOWItiA+IG5panV1a2FrYWt1c2VpXCA7CivliJHkuovoqLToqJ/ms5UgPiBrZWlqaXNvc2hvdWhvdVwgOwor6LKp5aOy5Luj55CG5bqXID4gaGFuYmFpZGFpcml0ZW5cIDsKK+adseS6nOiruOawkeaXjyA+IHRvdWFzaG9taW56b2t1XCA7CivljZjokYnpo5vooYzmqZ8gPiB0YW4nJ3lvdWhpa291a2lcIDsKK+WbveS8muitsOS6i+mMsiA+IGtva2thaWdpamlyb2t1XCA7CivmlL/lupzkv53oqLzlgrUgPiBzZWlmdWhvc2hvdXNhaVwgOwor5L6/5LmX5Li7576p6ICFID4gYmluam91c2h1Z2lzaGFcIDsKK+S6jOWkp+aUv+WFmuWItiA+IG5pZGFpc2VpdG91c2VpXCA7CivnhKHliKnmga/lhazlgrUgPiBtdXJpc29rdWtvdXNhaVwgOwor6Laz57Sg5oCn5Y6f55CGID4gYXNoaXN1am91Z2VucmlcIDsKK+izh+acrOS4u+e+qeiAhSA+IHNoaWhvbnNodWdpc2hhXCA7CivmlofljJblnLDnkIblraYgPiBidW5rYWNoaXJpZ2FrdVwgOwor5YWs6KqN5YCZ6KOc6ICFID4ga291bmlua291aG9zaGFcIDsKK+S4lueVjOmBuOaJi+aoqSA+IHNla2Fpc2Vuc2h1a2VuXCA7CivmlrDnn7PlmajmmYLku6MgPiBzaGluc2Vra2lqaWRhaVwgOwor5Y+X6aiT5Y+C6ICD5pu4ID4ganVrZW5zYW5rb3VzaG9cIDsKK+mdmeatoueUu+aUvumAgSA+IHNlaXNoaWdhaG91c291XCA7CivlsJHlubTmhJ/ljJbpmaIgPiBzaG91bmVua2Fua2FpblwgOwor6ZW36Led6Zui6Ly46YCBID4gY2hvdWt5b3JpeXVzb3VcIDsKK+WGjeW4sOS7o+WQjeipniA+IHNhaWtpZGFpbWVpc2hpXCA7CivmjqfoqLToo4HliKTmiYAgPiBrb3Vzb2hhaWJhbnNob1wgOwor5paH5YyW5Yqf5Yq06ICFID4gYnVua2Frb3Vyb3VzaGFcIDsKK+ecn+epuuaOg+mZpOapnyA+IHNoaW5rdXVzb3VqaWtpXCA7CivkurrlvaLmtYTnkaDnkoMgPiBuaW5neW91am91cnVyaVwgOwor5pS/5rK76KmV6KuW5a62ID4gc2VpamloeW91cm9ua2FcIDsKK+S8neaJv+WPmeS6i+ipqSA+IGRlbnNob3Vqb2ppc2hpXCA7CivmnInoppbnlYzpo5vooYwgPiB5dXVzaGlrYWloaWtvdVwgOwor6ZmN5LiJ5LiW5aaZ546LID4gZ291emFuemVteW91b3VcIDsKK+etiemrmOe3muWcsOWbsyA+IHRvdWtvdXNlbmNoaXp1XCA7Civoo73pgKDlubTmnIjml6UgPiBzZWl6b3VuZW5nYXBwaVwgOwor5Zyw5pa55Lqk5LuY56iOID4gY2hpaG91a291ZnV6ZWlcIDsKK+aXpeacrOiqnuaVmeacrCA+IG5paG9uZ29reW91aG9uXCA7Civkv5jomZzlj47lrrnmiYAgPiBmdXJ5b3NodXV5b3Vqb1wgOwor56m65rCX5Zyn57iu5qmfID4ga3V1a2lhc3NodWt1a2lcIDsKK+WbvemAo+iomOW/teaXpSA+IGtva3VyZW5raW5lbmJpXCA7CivnhKHoqJjlkI3mipXnpaggPiBtdWtpbWVpdG91aHlvdVwgOwor6Ieq54S25Li7576p6ICFID4gc2hpemVuc2h1Z2lzaGFcIDsKK+euoeWMuuawl+ixoeWPsCA+IGthbmt1a2lzaG91ZGFpXCA7Civms5Xlrprmupblgpnph5EgPiBob3V0ZWlqdW5iaWtpblwgOwor5rW35rSL5oCn5rCX5YCZID4ga2FpeW91c2Vpa2lrb3VcIDsKK+WkluiyqOa6luWCmemrmCA+IGdhaWthanVuYmlkYWthXCA7Civml4XooYzku6PnkIblupcgPiByeW9rb3VkYWlyaXRlblwgOwor5LqI6YG46YCa6YGO6ICFID4geW9zZW50c3V1a2FzaGFcIDsKK+Wls+aAp+ino+aUvuirliA+IGpvc2Vpa2FpaG91cm9uXCA7CivpgbrkvJ3lrZDmsrvnmYIgPiBpZGVuc2hpY2hpcnlvdVwgOwor57W25a++5Li7576p6ICFID4gemV0dGFpc2h1Z2lzaGFcIDsKK+WFseWQjOeCiuS6i+WgtCA+IGt5b3Vkb3VzdWlqaWJhXCA7Civnpo/npYnkuovli5nmiYAgPiBmdWt1c2hpamltdXNob1wgOwor5LiJ6KeS57O755Ww5bi4ID4gc2Fua2FrdWtlaWlqb3VcIDsKK+awtOeUo+ippumok+aJgCA+IHN1aXNhbnNoaWtlbmpvXCA7Civou43kuovoo4HliKTmiYAgPiBndW5qaXNhaWJhbnNob1wgOwor6Zqg6YCA6JS154mp6LOHID4gaW50YWl6b3VidXNzaGlcIDsKK+WPguiAg+Wbs+abuOmkqCA+IHNhbmtvdXRvc2hva2FuXCA7CivnhKHnt5rlkajms6LmlbAgPiBtdXNlbnNodXVoYXN1dVwgOwor6YeN6L6y5Li7576p6ICFID4ganV1bm91c2h1Z2lzaGFcIDsKK+S5l+WQiOiHquWLlei7iiA+IG5vcmlhaWppZG91c2hhXCA7CivntLDog57pgbrkvJ3lraYgPiBzYWlib3VpZGVuZ2FrdVwgOwor6LaF6Z+z5rOi5rSX5rWEID4gY2hvdW9ucGFzZW5qb3VcIDsKK+WIkeS6i+iiq+WRiuS6uiA+IGtlaWppaGlrb2t1bmluXCA7CivnvqTkvJ3mkKzmmYLplpMgPiBndW5kZW5wYW5qaWthblwgOwor5YGl5bq35L+d6Zm65rOVID4ga2Vua291aG9rZW5ob3VcIDsKK+W4uOS7u+eQhuS6i+WbvSA+IGpvdW5pbnJpamlrb2t1XCA7CivpnZ7ph5HlsZ7lhYPntKAgPiBoaWtpbnpva3VnZW5zb1wgOwor6Zm45LiK6Ieq6KGb6ZqKID4gcmlrdWpvdWppZWl0YWlcIDsKK+S/nemZuuWLp+iqmOWToSA+IGhva2Vua2FuJyd5dXVpblwgOwor56qS57Sg5Zu65a6a5rOVID4gY2hpc3Nva290ZWlob3VcIDsKK+ebuOWvvuaAp+WOn+eQhiA+IHNvdXRhaXNlaWdlbnJpXCA7Civnvo7ooZPmhJvlpb3lrrYgPiBiaWp1dHN1YWlrb3VrYVwgOwor5Lit55+z5Zmo5pmC5LujID4gY2h1dXNla2tpamlkYWlcIDsKK+S4u+efpeS4u+e+qeiAhSA+IHNodWNoaXNodWdpc2hhXCA7CivompXns7joqabpqJPmiYAgPiBzYW5zaGlzaGlrZW5qb1wgOwor56uL5L2T5bm+5L2V5a2mID4gcml0dGFpa2lrYWdha3VcIDsKK+S4jeWLleeUo+mRkeWumiA+IGZ1ZG91c2Fua2FudGVpXCA7Civplbfot53pm6Lpo5vooYwgPiBjaG91a3lvcmloaWtvdVwgOwor56ys5LqM5qyh5oCn5b60ID4gZGFpbmlqaXNlaWNob3VcIDsKK+WPpeani+mAoOaWh+azlSA+IGt1a291em91YnVucG91XCA7Civlo6vlrpjlgJnoo5znlJ8gPiBzaGlrYW5rb3Vob3NlaVwgOwor5beh5Zue5Zuz5pu46aSoID4ganVua2FpdG9zaG9rYW5cIDsKK+W+tOWFteW/jOmBv+iAhSA+IGNob3VoZWlraWhpc2hhXCA7Civlh7roqLTmnJ/pmZDms5UgPiBzaHVzc29raWdlbmhvdVwgOwor6LuN55So6Ly46YCB5qmfID4gZ3VuJyd5b3V5dXNvdWtpXCA7CivoqIDoqp7lnLDnkIblraYgPiBnZW5nb2NoaXJpZ2FrdVwgOwor5YmN5pa55b6M5YaG5aKzID4gemVucG91a291ZW5mdW5cIDsKK+iZq+anmOeqgei1t+eCjiA+IGNodXV5b3V0b2traWVuXCA7CivmnInlvaLmlofljJbosqEgPiB5dXVrZWlidW5rYXphaVwgOwor5pen55+z5Zmo5pmC5LujID4ga3l1dXNla2tpamlkYWlcIDsKK+iHqueUseawkeaoqeirliA+IGppeXV1bWlua2Vucm9uXCA7CivnoLTnlKPoo4HliKTmiYAgPiBoYXNhbnNhaWJhbnNob1wgOwor5Lq66Lqr5L+d6K235rOVID4gamluc2hpbmhvZ29ob3VcIDsKK+aUvuWwhOaAp+WFg+e0oCA+IGhvdXNoYXNlaWdlbnNvXCA7CivmjZXomZzlj47lrrnmiYAgPiBob3J5b3NodXV5b3Vqb1wgOwor55Sf6KiI6LK75oyH5pWwID4gc2Vpa2VpaGlzaGlzdXVcIDsKK+WbveS8muWbs+abuOmkqCA+IGtva2thaXRvc2hva2FuXCA7Civpq5jnrYnlvIHli5nlrpggPiBrb3V0b3ViZW5tdWthblwgOwor5pmC6ZaT6aCG5bqP56mNID4gamlrYW5qdW5qb3Nla2lcIDsKK+WcsOeQg+a4qeaaluWMliA+IGNoaWt5dXVvbmRhbmthXCA7CivpnZ7luLjli6TorJvluKsgPiBoaWpvdWtpbmtvdXNoaVwgOwor6Ieq5YuV6LuK5a2m5qChID4gamlkb3VzaGFnYWtrb3VcIDsKK+eojumHkemBv+mbo+WcsCA+IHplaWtpbmhpbmFuY2hpXCA7CivkurrpgZPnmoTmj7TliqkgPiBqaW5kb3V0ZWtpZW5qb1wgOwor5raI6LK76ICF6YGL5YuVID4gc2hvdWhpc2hhdW5kb3VcIDsKK+WKtOWDjeWfuua6luazlSA+IHJvdWRvdWtpanVuaG91XCA7CivmvKLlrZfliLbpmZDoq5YgPiBrYW5qaXNlaWdlbnJvblwgOwor5ZGo5rOi5pWw5YGP56e7ID4gc2h1dWhhc3V1aGVuJydpXCA7CivnhKHliLbpmZDosr/mmJMgPiBtdXNlaWdlbmJvdWVraVwgOwor5qyh5YWD5q2j5YmH5YyWID4gamlnZW5zZWlzb2t1a2FcIDsKK+S6uuWQjeeUqOa8ouWtlyA+IGppbm1laXlvdWthbmppXCA7CivlvoHlpLflpKflsIbou40gPiBzZWlpdGFpc2hvdWd1blwgOwor55Sj5qWt5LqI5YKZ6LuNID4gc2FuZ3lvdXlvYmlndW5cIDsKK+WIqeWtkOW5s+ihoeeojiA+IHJpc2hpaGVpa291emVpXCA7CivnhKHku7vmiYDlpKfoh6MgPiBtdW5pbnNob2RhaWppblwgOwor5LqM6YeN55uy5qSc5rOVID4gbmlqdXVtb3VrZW5ob3VcIDsKK+iHquizoOiyrOS/nemZuiA+IGppYmFpc2VraWhva2VuXCA7Civph43ngq3phbjmm7npgZQgPiBqdXV0YW5zYW5zb3VkYVwgOwor6ZW36Led6Zui6Zu76KmxID4gY2hvdWt5b3JpZGVud2FcIDsKK+mBuuS8neWtkOW3peWtpiA+IGlkZW5zaGlrb3VnYWt1XCA7CivkuI3lj6/og73pgbjmip4gPiBmdWthbm91c2VudGFrdVwgOwor5Y+l5qeL6YCg6KaP5YmHID4ga3Vrb3V6b3VraXNva3VcIDsKK+aJi+W9ouS6pOaPm+aJgCA+IHRlZ2F0YWtvdWthbmpvXCA7CivlnLDmlrnoh6rmsrvkvZMgPiBjaGlob3VqaWNoaXRhaVwgOwor5LiN6KaP5YmH5YuV6KmeID4gZnVraXNva3Vkb3VzaGlcIDsKK+WujOWFqOS4u+e+qeiAhSA+IGthbnplbnNodWdpc2hhXCA7Civmp4vmiJDntKDmp4vpgKAgPiBrb3VzZWlzb2tvdXpvdVwgOwor6LyJ6LKo5ZCD5rC057eaID4gc2Fpa2FraXNzdWlzZW5cIDsKK+awtOmKgOa4qeW6puioiCA+IHN1aWdpbicnb25kb2tlaVwgOwor5pWw55CG6KuW55CG5a2mID4gc3V1cmlyb25yaWdha3VcIDsKK+eah+WkquWtkOauv+S4iyA+IGtvdXRhaXNoaWRlbmthXCA7CivmiKbkuonmnKrkuqHkurogPiBzZW5zb3VtaWJvdWppblwgOwor56C055Sj566h6LKh5Lq6ID4gaGFzYW5rYW56YWluaW5cIDsKK+WNlOWumuS4lueVjOaZgiA+IGt5b3V0ZWlzZWthaWppXCA7CivmtbfkuIrkv53lronluoEgPiBrYWlqb3Vob2FuY2hvdVwgOwor54m555Ww5YCk5YiG6KejID4gdG9rdWljaGlidW5rYWlcIDsKK+awkeWWtuWMluS8gealrSA+IG1pbicnZWlrYWtpZ3lvdVwgOwor5aSn6KW/5rSL5qiq5patID4gdGFpc2VpeW91b3VkYW5cIDsKK+S6uuW3pemBv+WmiuazlSA+IGppbmtvdWhpbmluaG91XCA7CivprZrnvqTmjqLnn6XmqZ8gPiBneW9ndW50YW5jaGlraVwgOwor6YGK6Zui5Z+65Y+N5b+cID4geXV1cmlraWhhbicnbm91XCA7CivlsI/nlLDljp/oqZXlrpogPiBvZGF3YXJhaHlvdWpvdVwgOwor6aiS6Z+z6Ziy5q2i5rOVID4gc291b25ib3VzaGlob3VcIDsKK+eWkeWVj+S7o+WQjeipniA+IGdpbW9uZGFpbWVpc2hpXCA7Civnm7jlr77mgKfnkIboq5YgPiBzb3V0YWlzZWlyaXJvblwgOwor6YW45YyW6Ziy5q2i5YmkID4gc2Fua2Fib3VzaGl6YWlcIDsKK+esrOS6jOasoeeUo+alrSA+IGRhaW5pamlzYW5neW91XCA7CivmnInmqZ/loanmurblqpIgPiB5dXVraWVuJyd5b3ViYWlcIDsKK+mbu+WtkOioiOeul+apnyA+IGRlbnNoaWtlaXNhbmtpXCA7CivmiKbpl5jniqDnibLogIUgPiBzZW50b3VnaXNlaXNoYVwgOwor5rCR6ZaT6Iiq56m65qmfID4gbWlua2Fua291a3V1a2lcIDsKK+WPjeaIpuS4u+e+qeiAhSA+IGhhbnNlbnNodWdpc2hhXCA7CivoprPlhYnmoYjlhoXmiYAgPiBrYW5rb3VhbicnbmFpam9cIDsKK+mrmOm9ouWMluekvuS8miA+IGtvdXJlaWthc2hha2FpXCA7CivoqJjlj7foq5bnkIblraYgPiBraWdvdXJvbnJpZ2FrdVwgOwor5oyH5ZCN5omL6YWN5Lq6ID4gc2hpbWVpdGVoYWlqaW5cIDsKK+iHqui7oui7iuaXheihjCA+IGppdGVuc2hhcnlva291XCA7CivlubPlnYflpKrpmb3mmYIgPiBoZWlraW50YWl5b3VqaVwgOwor5aW95rCX5oCn57Sw6I+MID4ga291a2lzZWlzYWlraW5cIDsKK+mbu+azouacm+mBoOmPoSA+IGRlbnBhYm91ZW5reW91XCA7CivlirTlg43pgYvli5XogIUgPiByb3Vkb3V1bmRvdXNoYVwgOwor6ZyH54G96KiY5b+15pelID4gc2hpbnNhaWtpbmVuYmlcIDsKK+aCquW+s+aUv+ayu+WutiA+IGFrdXRva3VzZWlqaWthXCA7Civmg4XloLHkuLvopoHntKAgPiBqb3Vob3VzaHV5b3Vzb1wgOwor5YWs5q2m5ZCI5L2T6KuWID4ga291YnVnYXR0YWlyb25cIDsKK+mbu+WFieaOsuekuuadvyA+IGRlbmtvdWtlaWppYmFuXCA7CivkvqHpm7vlrZDnirbmhYsgPiBrYWRlbnNoaWpvdXRhaVwgOwor5rC055Sj5Yqg5bel5ZOBID4gc3Vpc2Fua2Frb3VoaW5cIDsKK+W5s+mdouW5vuS9leWtpiA+IGhlaW1lbmtpa2FnYWt1XCA7Civoh6rou6Lou4rnva7loLQgPiBqaXRlbnNoYW9raWJhXCA7CivmlZnogrLlp5Tlk6HkvJogPiBreW91aWt1aWlua2FpXCA7CivmsLTkuIrpo5vooYzmqZ8gPiBzdWlqb3VoaWtvdWtpXCA7Civljq3kuJbmgrLoprPogIUgPiBlbnNlaWhpa2Fuc2hhXCA7CivlvozmnJ/ljbDosaHmtL4gPiBrb3VraWluc2hvdWhhXCA7CivlpKfopo/mqKHmiKbkuokgPiBkYWlraWJvc2Vuc291XCA7CivnhKHmi4Xkv53npL7lgrUgPiBtdXRhbnBvc2hhc2FpXCA7CivpgaDlv4PliIbpm6LmqZ8gPiBlbnNoaW5idW5yaWtpXCA7Civpm7vmsJflhrfolLXluqsgPiBkZW5raXJlaXpvdWtvXCA7CivmnIDkvY7muKnluqboqIggPiBzYWl0ZWlvbmRva2VpXCA7CivpoafllY/lvIHorbflo6sgPiBrb21vbmJlbmdvc2hpXCA7CivkuoznoavljJbngq3ntKAgPiBuaXJ5dXVrYXRhbnNvXCA7Civml6nmnJ/orabmiJLmqZ8gPiBzb3VraWtlaWthaWtpXCA7Civmp4vpgKDpgbrkvJ3lrZAgPiBrb3V6b3VpZGVuc2hpXCA7CivpnZLpioXlmajmmYLku6MgPiBzZWlkb3VraWppZGFpXCA7CivkvJroqIjmpJzmn7vpmaIgPiBrYWlrZWlrZW5zYWluXCA7CivpppbkvY3mlLvpmLLmiKYgPiBzaHVpa291Ym91c2VuXCA7CivlhajmlrnkvY3lpJbkuqQgPiB6ZW5ob3VpZ2Fpa291XCA7CivnhKHkurrljJblt6XloLQgPiBtdWppbmtha291am91XCA7CivngavkuovloLTms6Xmo5IgPiBrYWppYmFkb3JvYm91XCA7Civkurrlt6XmoITppIrlhZAgPiBqaW5rb3VlaXlvdWppXCA7CivmrKfnsbPoq7joqIDoqp4gPiBvdWJlaXNob2dlbmdvXCA7Civkurrlt6XlrbXljJbms5UgPiBqaW5rb3VmdWthaG91XCA7Civou43kuovpoafllY/lm6MgPiBndW5qaWtvbW9uZGFuXCA7Civpq5jlsaTlpKnmsJflm7MgPiBrb3Vzb3V0ZW5raXp1XCA7Civku67pnaLoiJ7ouI/kvJogPiBrYW1lbmJ1dG91a2FpXCA7CivkvZzmpa3pg6jkvJrmoYggPiBzYWd5b3VidWthaWFuXCA7CivmmKDnlLvoqZXoq5blrrYgPiBlaWdhaHlvdXJvbmthXCA7CivnrKzkuozmrKHlpKfmiKYgPiBkYWluaWppdGFpc2VuXCA7Civph47mrKHppqzmoLnmgKcgPiB5YWppdW1ha29uam91XCA7Civoi7HkvJroqbHlrabmoKEgPiBlaWthaXdhZ2Fra291XCA7CivliY3mlrnkuI3ms6jmhI8gPiB6ZW5wb3VmdWNodXVpXCA7CivlnLDmlrnlhazli5nlk6EgPiBjaGlob3Vrb3VtdWluXCA7Civoh6rli5Xosqnlo7LmqZ8gPiBqaWRvdWhhbmJhaWtpXCA7Civpm7vno4Hoqr/nkIblmaggPiBkZW5qaWNob3VyaWtpXCA7CivoiKrnqbroh6rooZvpmoogPiBrb3VrdXVqaWVpdGFpXCA7CivmqZ/plqLmipXos4flrrYgPiBraWthbnRvdXNoaWthXCA7Civlm57ot6/pga7mlq3mqZ8gPiBrYWlyb3NoYWRhbmtpXCA7CivogZbot6/liqDnl4XpmaIgPiBzZWlyb2thYnlvdWluXCA7CivliIbpm6LkuLvnvqnogIUgPiBidW5yaXNodWdpc2hhXCA7CivmhrLms5XoqJjlv7Xml6UgPiBrZW5wb3VraW5lbmJpXCA7CivliqDmuJvmirXmipflmaggPiBrYWdlbnRlaWtvdWtpXCA7Civoh6rli5Xosqnlo7LlmaggPiBqaWRvdWhhbmJhaWtpXCA7CivnhKHlhY3oqLHpgYvou6IgPiBtdW1lbmt5b3VudGVuXCA7CivkuI3lj6/oppblhYnnt5ogPiBmdWthc2hpa291c2VuXCA7Civosr/mmJPoh6rnlLHljJYgPiBib3Vla2lqaXl1dWthXCA7CivnqbrmsJfliLbli5XmqZ8gPiBrdXVraXNlaWRvdWtpXCA7CivkupTljYHmrannmb7mrakgPiBnb2p1cHBvaHlhcHBvXCA7Civljp/nkIbkuLvnvqnogIUgPiBnZW5yaXNodWdpc2hhXCA7CivlpJrlhYPmlofljJboq5YgPiB0YWdlbmJ1bmthcm9uXCA7CivorbLmuKHmgKfpoJDph5EgPiBqb3V0b3NlaXlva2luXCA7Civlm73lrrbkuLvnvqnogIUgPiBrb2trYXNodWdpc2hhXCA7Civmsr/lsrjorablgpnpmoogPiBlbmdhbmtlaWJpdGFpXCA7CivlgIvkurrkuLvnvqnogIUgPiBrb2ppbnNodWdpc2hhXCA7CivlpJbkuqTlp5Tlk6HplbcgPiBnYWlrb3VpaW5jaG91XCA7CivnhKHmirXmipfkuLvnvqkgPiBtdXRlaWtvdXNodWdpXCA7CivmlL7lsITog73msZrmn5MgPiBob3VzaGFub3Vvc2VuXCA7Civpm7vmsJfoh6rli5Xou4ogPiBkZW5raWppZG91c2hhXCA7CivlhKrnlJ/kv53orbfms5UgPiB5dXVzZWlob2dvaG91XCA7CivlnLDmlrnkuovli5nmiYAgPiBjaGlob3VqaW11c2hvXCA7CivovLjlhaXoh6rnlLHljJYgPiB5dW55dXVqaXl1dWthXCA7CivnhKHliKnmga/lgrXli5kgPiBtdXJpc29rdXNhaW11XCA7Civnoavpu4TphbjljJbniakgPiBpb3VzYW5rYWJ1dHN1XCA7CivpgZPot6/mjoPpmaTkurogPiBkb3Vyb3NvdWppamluXCA7Civku4HovKrliqDni4LoqIAgPiBuaXdha2FreW91Z2VuXCA7Civoh6roh6rlhazvvJPlhZogPiBqaWppa291c2FudG91XCA7CivmsJfnrqHmlK/ogrrngo4gPiBraWthbnNoaWhhaWVuXCA7CivlpJrph43lgrXli5nogIUgPiB0YWp1dXNhaW11c2hhXCA7Civoq67llY/lp5Tlk6HkvJogPiBzaGltb24nJ2lpbmthaVwgOwor6auY6auY5bqm6aOb6KGMID4ga291a291ZG9oaWtvdVwgOwor5Zu95Lya6K2w5LqL5aCCID4ga29ra2FpZ2lqaWRvdVwgOwor5LqM5Y2B5Zub56+A5rCXID4gbmlqdXVzaGlzZWtraVwgOwor54Sh5b2i5paH5YyW6LKhID4gbXVrZWlidW5rYXphaVwgOwor5biC5aC06Ieq55Sx5YyWID4gc2hpam91aml5dXVrYVwgOwor57WM5Za25aSa6KeS5YyWID4ga2VpZWl0YWtha3VrYVwgOwor5Li75oiR5Li7576p6ICFID4gc2h1Z2FzaHVnaXNoYVwgOwor5pqX5Y+35YyW5omL5rOVID4gYW5nb3VrYXNodWhvdVwgOwor5LiN6KaL6Lui6Iq46ICFID4gbWl6dXRlbmdlaXNoYVwgOwor5Yqf5Yip5Li7576p6ICFID4ga291cmlzaHVnaXNoYVwgOwor6Ieq5YuV6LuK5L+d6Zm6ID4gamlkb3VzaGFob2tlblwgOwor6Ieq5bex6aGV56S65qyyID4gamlrb2tlbmppeW9rdVwgOwor54Sh6YWN5b2T5L+d6Zm6ID4gbXVoYWl0b3Vob2tlblwgOwor5p6c5qi55qC95Z+56ICFID4ga2FqdXNhaWJhaXNoYVwgOwor6KOB5Yik5a6Y5b+M6YG/ID4gc2FpYmFua2Fua2loaVwgOwor6Z2e5q2m6KOF5Zyw5bivID4gaGlidXNvdWNoaXRhaVwgOwor56m65rCX5riF5rWE5qmfID4ga3V1a2lzZWlqb3VraVwgOwor5LiA5LqL5LiN5YaN6K2wID4gaWNoaWppZnVzYWlnaVwgOwor5Ym15bu66KiY5b+15pelID4gc291a2Vua2luZW5iaVwgOwor5pmu6YGN5aal5b2T5oCnID4gZnVoZW5kYXRvdXNlaVwgOwor5Y6f5a2Q56C05aOK5qmfID4gZ2Vuc2hpaGFrYWlraVwgOwor57WQ5ama6KiY5b+15pelID4ga2Vra29ua2luZW5iaVwgOwor5aSn6Zuo5rOo5oSP5aCxID4gb29hbWVjaHV1aWhvdVwgOwor57Gz5p2x6YOo5pmC6ZaTID4gYmVpdG91YnVqaWthblwgOwor5Yqj5oCn6YG65Lyd5a2QID4gcmVzc2VpaWRlbnNoaVwgOwor54Sh5L6h5YCk6LOH55SjID4gbXVrYWNoaXNoaXNhblwgOwor5YGl5bq35L+d6Zm65Yy7ID4ga2Vua291aG9rZW4nJ2lcIDsKK+W4uOS7u+WnlOWToeS8miA+IGpvdW5pbicnaWlua2FpXCA7Civoh6rnlLHkuLvnvqnogIUgPiBqaXl1dXNodWdpc2hhXCA7Civnn63ms6Llj5fkv6HmqZ8gPiB0YW5wYWp1c2hpbmtpXCA7CivnoLTlo4rkuLvnvqnogIUgPiBoYWthaXNodWdpc2hhXCA7CivlvqHpg73lkIjkuLvnvqkgPiBnb3RzdWdvdXNodWdpXCA7CivkuozljYHml6XlpKfmoLkgPiBoYXRzdWthZGFpa29uXCA7CivokL3kuIvlgpjpg6jpmoogPiByYWtrYXNhbmJ1dGFpXCA7Civplbfot53pm6Lkvp3lrZggPiBjaG91a3lvcmlpem9uXCA7CivnrKblj7flpInmj5vlmaggPiBmdWdvdWhlbmthbmtpXCA7CivpgIHph5HlsI/liIfmiYsgPiBzb3VraW5rb2dpdHRlXCA7Civlr77miKbou4rngavlmaggPiB0YWlzZW5zaGFrYWtpXCA7CivlvJfljJbmsLTntKDphbggPiBmdWtrYXN1aXNvc2FuXCA7Civnm7joo5zmgKfljp/nkIYgPiBzb3Vob3NlaWdlbnJpXCA7CivokrjmsJfmqZ/plqLou4ogPiBqb3VraWtpa2Fuc2hhXCA7CivmlofljJbkuovmpa3pg6ggPiBidW5rYWppZ3lvdWJ1XCA7CivnhKHoqJjlkI3npL7lgrUgPiBtdWtpbWVpc2hhc2FpXCA7CivlkIjlkIzmhbDpnIrnpa0gPiBnb3Vkb3VpcmVpc2FpXCA7Civngavngb3loLHnn6XmqZ8gPiBrYXNhaWhvdWNoaWtpXCA7Civpm7vms6LmjqLnn6XmqZ8gPiBkZW5wYXRhbmNoaWtpXCA7Civlj6/lpInmirXmipflmaggPiBrYWhlbnRlaWtvdWtpXCA7Civlhazli5nlk6HoqabpqJMgPiBrb3VtdWluc2hpa2VuXCA7Civlroflrpnpo5vooYzlo6sgPiB1Y2h1dWhpa291c2hpXCA7CivnnIvorbflqablrabpmaIgPiBrYW5nb2Z1Z2FrdWluXCA7CivljYHlrZfou43pqI7lo6sgPiBqdXVqaWd1bmtpc2hpXCA7CivnhKHmqZ/pq5jliIblrZAgPiBtdWtpa291YnVuc2hpXCA7Civngavngb3loLHnn6XlmaggPiBrYXNhaWhvdWNoaWtpXCA7Civpm7vms6LmjqLnn6XlmaggPiBkZW5wYXRhbmNoaWtpXCA7CivmjIfmj67miYDmvJTnv5IgPiBzaGlraWpvZW5zaHV1XCA7CivkuozphbjljJbnqpLntKAgPiBuaXNhbmthY2hpc3NvXCA7Civoh6rli5Xou4rpm7voqbEgPiBqaWRvdXNoYWRlbndhXCA7Civmg4XloLHlj6/oppbljJYgPiBqb3Vob3VrYXNoaWthXCA7CivmkYLmsI/vvJLvvJDluqYgPiBzZXNzaGluaWp1dWRvXCA7CivlsI/lnovotaTlrrbomoogPiBrb2dhdGFha2FpZWthXCA7CivntZDlqZrmiqvpnLLlrrQgPiBrZWtrb25oaXJvdWVuXCA7CivmtbfkuIroh6rooZvpmoogPiBrYWlqb3VqaWVpdGFpXCA7Civljp/moYjlp5Tlk6HkvJogPiBnZW4nJ2FuJydpaW5rYWlcIDsKK+mBuOaJi+aoqeippuWQiCA+IHNlbnNodWtlbmppYWlcIDsKK+aXpeWSjOimi+S4u+e+qSA+IGhpeW9yaW1pc2h1Z2lcIDsKK+S7ruijheiInui4j+S8miA+IGthc291YnV0b3VrYWlcIDsKK+mBruWFieWZqOWcn+WBtiA+IHNoYWtvdWtpZG9ndXVcIDsKK+S4i+awtOWHpueQhuWgtCA+IGdlc3Vpc2hvcmlqb3VcIDsKK+WQiOeQhuS4u+e+qeiAhSA+IGdvdXJpc2h1Z2lzaGFcIDsKK+alveWZqOa8lOWlj+iAhSA+IGdha2tpZW5zb3VzaGFcIDsKK+WPpOWFuOS4u+e+qeiAhSA+IGtvdGVuc2h1Z2lzaGFcIDsKK+WbveWcn+WcsOeQhumZoiA+IGtva3Vkb2NoaXJpaW5cIDsKK+W4guihl+WMluWMuuWfnyA+IHNoaWdhaWtha3Vpa2lcIDsKK+mbu+awl+apn+mWoui7iiA+IGRlbmtpa2lrYW5zaGFcIDsKK+W8peasoemmrOagueaApyA+IHlhaml1bWFrb25qb3VcIDsKK+mWi+agoeiomOW/teaXpSA+IGthaWtvdWtpbmVuYmlcIDsKK+S4jeWPr+efpeirluiAhSA+IGZ1a2FjaGlyb25zaGFcIDsKK+eEoeiomOWQjeWCteaoqSA+IG11a2ltZWlzYWlrZW5cIDsKK+WFqOazouWPl+S/oeapnyA+IHplbnBhanVzaGlua2lcIDsKK+W5s+WSjOS4u+e+qeiAhSA+IGhlaXdhc2h1Z2lzaGFcIDsKK+mdkuWkqeS6leS6iOeulyA+IGFvdGVuam91eW9zYW5cIDsKK+eKtuazgeaEj+WRs+irliA+IGpvdWt5b3VpbWlyb25cIDsKK+a8ouWtl+aWh+WMluWcjyA+IGthbmppYnVua2FrZW5cIDsKK+atr+enkeaKgOW3peWjqyA+IHNoaWthZ2lrb3VzaGlcIDsKK+a1t+S4iui8uOmAgei3ryA+IGthaWpvdXl1c291cm9cIDsKK+iqv+WBnOWnlOWToeS8miA+IGNob3V0ZWlpaW5rYWlcIDsKK+ihjOaWueS4jeaYjuiAhSA+IHl1a3VlZnVtZWlzaGFcIDsKK+WAi+S6uueahOaEj+imiyA+IGtvamludGVraWlrZW5cIDsKK+WMl+Wbvei1pOa1t+iAgSA+IGhva2tva3Vha2FlYmlcIDsKK+S9v+mAlOS4jeaYjumHkSA+IHNoaXRvZnVtZWlraW5cIDsKK+awkeS4u+WMlumBi+WLlSA+IG1pbnNodWthdW5kb3VcIDsKK+Wkqeawl+ebuOirh+aJgCA+IHRlbmtpc291ZGFuam9cIDsKK+WPguWKoOW4jOacm+iAhSA+IHNhbmtha2lib3VzaGFcIDsKK+aHkOeWkeS4u+e+qeiAhSA+IGthaWdpc2h1Z2lzaGFcIDsKK+W4guitsOS8muitsOWToSA+IHNoaWdpa2FpZ2lpblwgOwor5Lit5aSu5aeU5ZOh5LyaID4gY2h1dW91aWlua2FpXCA7Civog4PphbjpgY7lpJrnl4cgPiBpc2Fua2F0YXNob3VcIDsKK+mbu+awl+mZsOaAp+W6piA+IGRlbmtpaW5zZWlkb1wgOwor54Sh6KiY5ZCN6aCQ6YeRID4gbXVraW1laXlva2luXCA7CivliKnlt7HkuLvnvqnogIUgPiByaWtvc2h1Z2lzaGFcIDsKK+WbveWutuWFrOWLmeWToSA+IGtva2tha291bXVpblwgOwor5biM5Zyf6aGe5YWD57SgID4ga2lkb3J1aWdlbnNvXCA7Civpm7vmsJfmjoPpmaTmqZ8gPiBkZW5raXNvdWppa2lcIDsKK+iWlOiWh+WNgeWtl+WboyA+IGJhcmFqdXVqaWRhblwgOwor5a+M5aOr54Gr5bGx5bivID4gZnVqaWthemFudGFpXCA7CivmmJ/luqfmipXlvbHmqZ8gPiBzZWl6YXRvdWVpa2lcIDsKK+asp+W3nuWnlOWToeS8miA+IG91c2h1dWlpbmthaVwgOwor5LiK5L2N5LqS5o+b5oCnID4gam91aWdva2Fuc2VpXCA7CivmlL7lsITnt5rnp5HljLsgPiBob3VzaGFzZW5rYWlcIDsKK+eBq+eCjuaUvuWwhOWZqCA+IGthZW5ob3VzaGFraVwgOwor5ZCI5ZCM5aeU5ZOh5LyaID4gZ291ZG91aWlua2FpXCA7CivpgbrnlKPnrqHnkIbkurogPiBpc2Fua2FucmluaW5cIDsKK+iyv+aYk+S+neWtmOW6piA+IGJvdWVraWl6b25kb1wgOwor5Yq05YON5aeU5ZOh5LyaID4gcm91ZG91aWlua2FpXCA7CivmqKHlnovpo5vooYzmqZ8gPiBtb2tlaWhpa291a2lcIDsKK+S4i+S9jeevhOeWh+WMliA+IGthaWhhbmNodXVrYVwgOwor6Z2e5Za25Yip5Zuj5L2TID4gaGllaXJpZGFudGFpXCA7CivkupznhrHluK/msJflgJkgPiBhbmV0dGFpa2lrb3VcIDsKK+eEoeaUv+W6nOS4u+e+qSA+IG11c2VpZnVzaHVnaVwgOwor56e75YuV5Zuz5pu46aSoID4gaWRvdXRvc2hva2FuXCA7Civlrp/ooYzlp5Tlk6HkvJogPiBqaWtrb3VpaW5rYWlcIDsKK+eVmeWuiOeVqumbu+ipsSA+IHJ1c3ViYW5kZW53YVwgOwor5qSc6KiO5aeU5ZOh5LyaID4ga2VudG91aWlua2FpXCA7CivooYborbDpmaLorbDlk6EgPiBzaHV1Z2lpbmdpaW5cIDsKK+mBuOiAg+WnlOWToeS8miA+IHNlbmtvdWlpbmthaVwgOwor6aGe576p6Kqe6L6e5YW4ID4gcnVpZ2lnb2ppdGVuXCA7Civlj7Pmlrnpq5jpupfmpb0gPiB1aG91a29tYWdha3VcIDsKK+iCpeWOmuaAp+m8u+eCjiA+IGhpa291c2VpYmllblwgOwor5Lqc6YW45YyW56qS57SgID4gYXNhbmthY2hpc3NvXCA7CivlronlrprlkIzkvY3kvZMgPiBhbnRlaWRvdWl0YWlcIDsKK+aWh+Wtl+espuWPt+ezuyA+IG1vamlmdWdvdWtlaVwgOwor5Yy755mC6Ly46YCB5qmfID4gaXJ5b3V5dXNvdWtpXCA7CivpgY7phbjljJbmsLTntKAgPiBrYXNhbmthc3Vpc29cIDsKK+S7o+eQhuWnlOS7u+eKtiA+IGRhaXJpaW5pbmpvdVwgOwor5Lqc5a+S5biv5rCX5YCZID4gYWthbnRhaWtpa291XCA7Civpq5jpn7Ppg6joqJjlj7cgPiBrb3VvbmJ1a2lnb3VcIDsKK+S9jeebuOW5vuS9leWtpiA+IGlzb3VraWthZ2FrdVwgOwor5LyK5Yui5aSn56We5a6uID4gaXNlZGFpamluZ3V1XCA7CivkuozphbjljJbngq3ntKAgPiBuaXNhbmthdGFuc29cIDsKK+S9jumfs+mDqOiomOWPtyA+IHRlaW9uYnVraWdvdVwgOwor5oSb5LuW5Li7576p6ICFID4gYWl0YXNodWdpc2hhXCA7CivkuLvmhI/kuLvnvqnogIUgPiBzaHVpc2h1Z2lzaGFcIDsKK+asoemFuOWMlueCree0oCA+IGppc2Fua2F0YW5zb1wgOwor5rK75a6J57at5oyB5rOVID4gY2hpYW4nJ2lqaWhvdVwgOwor5LqV5oi456uv5Lya6K2wID4gaWRvYmF0YWthaWdpXCA7CivluqbmlbDliIbluIPlm7MgPiBkb3N1dWJ1bnB1enVcIDsKK+iHquWLlei7iuS6i+aVhSA+IGppZG91c2hhamlrb1wgOwor6L6y5Zyw5aeU5ZOh5LyaID4gbm91Y2hpaWlua2FpXCA7CivlgrXli5nkuI3lsaXooYwgPiBzYWltdWZ1cmlrb3VcIDsKK+S4gOmFuOWMlueCree0oCA+IGlzc2Fua2F0YW5zb1wgOwor5LuY5Yqg5L6h5YCk56iOID4gZnVrYWthY2hpemVpXCA7CivluLjnva7lp5Tlk6HkvJogPiBqb3VjaGlpaW5rYWlcIDsKK+WFrOWuieWnlOWToeS8miA+IGtvdWFuJydpaW5rYWlcIDsKK+mdnuWWtuWIqeS6i+alrSA+IGhpZWlyaWppZ3lvdVwgOwor57WM5Za25ZCI55CG5YyWID4ga2VpZWlnb3VyaWthXCA7CivlvIHorbfkvp3poLzkurogPiBiZW5nb2lyYWluaW5cIDsKK+WIqeS7luS4u+e+qeiAhSA+IHJpdGFzaHVnaXNoYVwgOwor5bCK55qH546L5pSY5aS3ID4gc29uJydub3Vqb3VpXCA7CivpnZ7plovnpLrlkIjmhI8gPiBoaWthaWppZ291aVwgOwor6KaL5qeY6KaL55yf5Ly8ID4gbWl5b3VtaW1hbmVcIDsKK+mYv+WRhumZgOe+hee1jCA+IGFob2RhcmFreW91XCA7Civms5Xli5nlp5Tlk6HkvJogPiBob3VtdWlpbmthaVwgOwor6ISK6buE6Z2S6bia5ZOlID4gc2VraXNlaWlua29cIDsKK+Wxi+agueijj+mDqOWxiyA+IHlhbmV1cmFiZXlhXCA7CivpmL/lpJrnpo/poqjpgqogPiBvdGFmdWt1a2F6ZVwgOwor5LiN6ZqP5oSP6YGL5YuVID4gZnV6dWlpdW5kb3VcIDsKK+aXpeacrOiqnuaWh+WtlyA+IG5paG9uZ29tb2ppXCA7CivlubPlkozntq3mjIHou40gPiBoZWl3YWlqaWd1blwgOwor6ICz6by75ZK95ZaJ56eRID4gamliaWlua291a2FcIDsKK+WPguitsOmZouitsOWToSA+IHNhbmdpaW5naWluXCA7CivmsZ/miLjliY3lr7/lj7ggPiBlZG9tYWV6dXNoaVwgOwor6Ieq6KiY5rip5bqm6KiIID4gamlraW9uZG9rZWlcIDsKK+a6luWCmeWnlOWToeS8miA+IGp1bmJpaWlua2FpXCA7CivkuIvkvY3kupLmj5vmgKcgPiBrYWlnb2thbnNlaVwgOwor5Lqc6Ymb6I+v6Luf6IaPID4gYWVua2FuYW5rb3VcIDsKK+S6nOexs+WIqeWKoOadiSA+IGFtZXJpa2FzdWdpXCA7CivmkanoqLbkuI3mgJ3orbAgPiBtYWthZnVzaGlnaVwgOwor55Sj5amm5Lq656eR5Yy7ID4gc2FuZnVqaW5rYWlcIDsKK+mBi+WWtuWnlOWToeS8miA+IHVuJydlaWlpbmthaVwgOwor5ZCM6Z+z55Ww576p6KqeID4gZG91b24nJ2lnaWdvXCA7Civlh7rmnaXkuI3lh7rmnaUgPiBkZWtpZnVkZWtpXCA7CivlvqHpq5jnpZbpoK3lt74gPiBva29zb3p1a2luXCA7CivkuozphbjljJbnoavpu4QgPiBuaXNhbmthaW91XCA7CivljYHph43kuozljYHph40gPiB0b2VoYXRhZVwgOwor6ZW35pel5qSN54mpID4gY2hvdWppdHN1c2hva3VidXRzdVwgOwor5b6L5Luk5qC85byPID4gcml0c3VyeW91a3lha3VzaGlraVwgOwor6aOf6IKJ5qSN54mpID4gc2hva3VuaWt1c2hva3VidXRzdVwgOwor55u05o6l5o6l57aaID4gY2hva3VzZXRzdXNldHN1em9rdVwgOwor6aOf6Jmr5qSN54mpID4gc2hva3VjaHV1c2hva3VidXRzdVwgOwor5LiA5pel5LiA5pelID4gaWNoaW5pY2hpaWNoaW5pY2hpXCA7Civnn63ml6XmpI3niakgPiB0YW5qaXRzdXNob2t1YnV0c3VcIDsKK+aomea6luWHuuWKmyA+IGh5b3VqdW5zaHV0c3VyeW9rdVwgOwor5L+h6LOe5b+F572wID4gc2hpbnNob3VoaXRzdWJhdHN1XCA7CivnibnlvrTmir3lh7ogPiB0b2t1Y2hvdWNodXVzaHV0c3VcIDsKK+edgOeUn+akjeeJqSA+IGNoYWt1c2Vpc2hva3VidXRzdVwgOwor5a6f54mp5Y+W5byVID4gaml0c3VidXRzdXRvcmloaWtpXCA7Civnm7TmjqXmjqXop6YgPiBjaG9rdXNldHN1c2Vzc2hva3VcIDsKK+iyuOS7mOS/oeiolyA+IGthc2hpdHN1a2VzaGludGFrdVwgOwor5Y2z5pel6YCf6YGUID4gc29rdWppdHN1c29rdXRhdHN1XCA7Civnmb7nmbrnmb7kuK0gPiBoeWFwcGF0c3VoeWFrdWNodXVcIDsKK+WPlue3oOW9ueS8miA+IHRvcmlzaGltYXJpeWFrdWthaVwgOwor5Ye65Yqb6KOF572uID4gc2h1dHN1cnlva3Vzb3VjaGlcIDsKK+ikh+mbkemqqOaKmCA+IGZ1a3V6YXRzdWtvc3NldHN1XCA7CivniannmoTmtYHpgJogPiBidXRzdXRla2lyeXV1dHN1dVwgOwor5Y2B5bm05LiA5piUID4ganV1bmVuaGl0b211a2FzaGlcIDsKK+elpeaciOWRveaXpSA+IHNob3V0c3VraW1laW5pY2hpXCA7CivmiKbnlaXnianos6ogPiBzZW5yeWFrdWJ1c3NoaXRzdVwgOwor5bCx6IG35rS75YuVID4gc2h1dXNob2t1a2F0c3Vkb3VcIDsKK+W8seiCieW8t+mjnyA+IGpha3VuaWt1a3lvdXNob2t1XCA7CivkvLjnuK7nqI7njocgPiBzaGluc2h1a3V6ZWlyaXRzdVwgOwor56We5Ye66ay85rKhID4gc2hpbnNodXRzdWtpYm90c3VcIDsKK+WQuOihgOWLleeJqSA+IGt5dXVrZXRzdWRvdWJ1dHN1XCA7CivnhrHlipvlrabnmoQgPiBuZXRzdXJpa2lnYWt1dGVraVwgOwor5qSN54mp5o6h6ZuGID4gc2hva3VidXRzdXNhaXNodXVcIDsKK+WHuuWKm+err+WtkCA+IHNodXRzdXJ5b2t1dGFuc2hpXCA7CivmqJnmupblhaXlipsgPiBoeW91anVuJydueXV1cnlva3VcIDsKK+ims+iRieakjeeJqSA+IGthbicneW91c2hva3VidXRzdVwgOwor5LiD55Sf5aCx5Zu9ID4gc2hpY2hpc2hvdWhvdWtva3VcIDsKK+Wun+eJqeaPj+WGmSA+IGppdHN1YnV0c3VieW91c2hhXCA7CivmrrrnnJ/oj4zolqwgPiBzYXRzdXNoaW5raW4nJ3lha3VcIDsKK+aomeacrOaKveWHuiA+IGh5b3Vob25jaHV1c2h1dHN1XCA7Civnt4/mi6zos6rllY8gPiBzb3VrYXRzdXNoaXRzdW1vblwgOwor5r2u5Yqb55m66Zu7ID4gY2hvdXJ5b2t1aGF0c3VkZW5cIDsKK+ebtOaOpeizvOWFpSA+IGNob2t1c2V0c3Vrb3VueXV1XCA7Civnqq7mpbXnm67nmoQgPiBreXV1a3lva3Vtb2t1dGVraVwgOwor5aSp54Wn5aSn56WeID4gYW1hdGVyYXN1b29taWthbWlcIDsKK+izquWun+WJm+WBpSA+IHNoaXRzdWppdHN1Z291a2VuXCA7CivlsYDlpJbkuK3nq4sgPiBreW9rdWdhaWNodXVyaXRzdVwgOwor6Imy5b2p6Kq/56+AID4gc2hpa2lzYWljaG91c2V0c3VcIDsKK+iWrOeUqOakjeeJqSA+IHlha3V5b3VzaG9rdWJ1dHN1XCA7Civnp4vpnJzng4jml6UgPiBzaHV1c291cmV0c3VqaXRzdVwgOwor55u05o6l6KuL5rGCID4gY2hva3VzZXRzdXNlaWt5dXVcIDsKK+Wul+aVmeWTsuWtpiA+IHNodXVreW91dGV0c3VnYWt1XCA7CivolqzniankuK3mr5IgPiB5YWt1YnV0c3VjaHV1ZG9rdVwgOwor5bCP5b+D57+857+8ID4gc2hvdXNoaW4nJ3lva3V5b2t1XCA7CivnibnliKXluZXlg5ogPiB0b2t1YmV0c3ViYWt1cnlvdVwgOwor5YiG6KOC54mp6LOqID4gYnVucmV0c3VidXNzaGl0c3VcIDsKK+ebtOaOpeeFp+aYjiA+IGNob2t1c2V0c3VzaG91bWVpXCA7CivlmLHoqJfmrrrkurogPiBzaG9rdXRha3VzYXRzdWppblwgOwor5rm/55Sf5qSN54mpID4gc2hpc3NlaXNob2t1YnV0c3VcIDsKK+S4g+WNgeS6uuiosyA+IHNoaWNoaWp1dW5pbicneWFrdVwgOwor55m655mM54mp6LOqID4gaGF0c3VnYW5idXNzaGl0c3VcIDsKK+eZvemVt+mgiOmvqCA+IHNoaXJvbmFnYXN1a3VqaXJhXCA7CivoprPos57mpI3niakgPiBrYW5zaG91c2hva3VidXRzdVwgOwor5b+D56We5Zaq5aSxID4gc2hpbnNoaW5zb3VzaGl0c3VcIDsKK+mAmuS/l+Wwj+iqrCA+IHRzdXV6b2t1c2hvdXNldHN1XCA7Civnmb7miKbnmb7li50gPiBoeWFrdXNlbmh5YWt1c2hvdVwgOwor5o+Q54Gv6KGM5YiXID4gY2hvdWNoaW5neW91cmV0c3VcIDsKK+WksealreWvvuetliA+IHNoaXRzdWd5b3V0YWlzYWt1XCA7CivlsI/lv4Pnv7zjgIUgPiBzaG91c2hpbicneW9rdXlva3VcIDsKK+W3puWBtOmAmuihjCA+IGhpZGFyaWdhd2F0c3V1a291XCA7CivmlZHlh7rkvZzmiKYgPiBreXV1c2h1dHN1c2FrdXNlblwgOwor5a6k5YaF6KOF6aO+ID4gc2hpdHN1bmFpc291c2hva3VcIDsKK+ebtOaOpeertuS6iSA+IGNob2t1c2V0c3VreW91c291XCA7Civml63ml6XmmIflpKkgPiBreW9rdWppdHN1c2hvdXRlblwgOwor6Jia6IuU5qSN54mpID4gc2VudGFpc2hva3VidXRzdVwgOwor56CU56m25a6k5qOfID4ga2Vua3l1dXNoaXRzdXRvdVwgOwor6KW/5YG06Ku45Zu9ID4gbmlzaGlnYXdhc2hva29rdVwgOwor6ISK5qSO5YuV54mpID4gc2VraXRzdWlkb3VidXRzdVwgOwor5qGR5Y6f5qGR5Y6fID4ga3V3YWJhcmFrdXdhYmFyYVwgOwor5Lqr5qW955Sf5rS7ID4ga3lvdXJha3VzZWlrYXRzdVwgOwor5YWl5Yqb6Zu75rWBID4gbnl1dXJ5b2t1ZGVucnl1dVwgOwor5Y2B5bm05LiA5pelID4ganV1bmVuJydpY2hpaml0c3VcIDsKK+miqOS/l+Wwj+iqrCA+IGZ1dXpva3VzaG91c2V0c3VcIDsKK+S9juihgOWcp+eXhyA+IHRlaWtldHN1YXRzdXNob3VcIDsKK+iZmuOAheWun+OAhSA+IGt5b2t5b2ppdHN1aml0c3VcIDsKK+aKgOihk+WNlOWKmyA+IGdpanV0c3VreW91cnlva3VcIDsKK+epuuS4reihneeqgSA+IGt1dWNodXVzaG91dG90c3VcIDsKK+WNg+evh+S4gOW+iyA+IHNlbnBlbicnaWNoaXJpdHN1XCA7CivmlpnnkIbmlZnlrqQgPiByeW91cmlreW91c2hpdHN1XCA7CivmnKzmoLzlsI/oqqwgPiBob25rYWt1c2hvdXNldHN1XCA7Civlm73nq4vliofloLQgPiBrb2t1cml0c3VnZWtpam91XCA7CivojYnpo5/li5XniakgPiBzb3VzaG9rdWRvdWJ1dHN1XCA7Civnm7TmjqXpgbjmjJkgPiBjaG9rdXNldHN1c2Vua3lvXCA7CivnlJ/ogIXlv4Xmu4UgPiBzaG91amFoaXRzdW1ldHN1XCA7CivnhrHluK/mpI3niakgPiBuZXR0YWlzaG9rdWJ1dHN1XCA7Civmnb7kuIvpm7vlt6UgPiBtYXRzdXNoaXRhZGVua291XCA7CivllYbmpa3nrpfooZMgPiBzaG91Z3lvdXNhbmp1dHN1XCA7CivmiKbmiKbmoJfmoJcgPiBzZW5zZW5yaXRzdXJpdHN1XCA7Civmj67nmbrnianos6ogPiBraWhhdHN1YnVzc2hpdHN1XCA7CivnmbrlhYnmpI3niakgPiBoYWtrb3VzaG9rdWJ1dHN1XCA7Civpm7vlipvkvpvntaYgPiBkZW5yeW9rdWt5b3VreXV1XCA7CivmiKbnlaXniIbmkoMgPiBzZW5yeWFrdWJha3VnZWtpXCA7CivlporlqKDkuK3ntbYgPiBuaW5zaGluY2h1dXpldHN1XCA7Civnm7TmjqXkvJroq4cgPiBjaG9rdXNldHN1a2FpZGFuXCA7CivlibLlopfos4Pph5EgPiB3YXJpbWFzaGljaGluZ2luXCA7CivkvZzku5jpnaLnqY0gPiBzYWt1ZHp1a2VtZW5zZWtpXCA7Civml6Xni6zljZTkvJogPiBuaWNoaWRva3VreW91a2FpXCA7Civml6XluLjnlJ/mtLsgPiBuaWNoaWpvdXNlaWthdHN1XCA7CivmrbPlhaXmrbPlh7ogPiBzYWlueXV1c2Fpc2h1dHN1XCA7CivnibnliKXmgKXooYwgPiB0b2t1YmV0c3VreXV1a291XCA7Civou6Llh7roqLzmmI4gPiB0ZW5zaHV0c3VzaG91bWVpXCA7CivmlZHojZLkvZzniakgPiBreXV1a291c2FrdW1vdHN1XCA7CivlnLDnhrHnmbrpm7sgPiBjaGluZXRzdWhhdHN1ZGVuXCA7CivolqzniannmYLms5UgPiB5YWt1YnV0c3VyeW91aG91XCA7Civpo5/ns6fphY3ntaYgPiBzaG9rdXJ5b3VoYWlreXV1XCA7Civnm7Tns7vooYDml48gPiBjaG9ra2Vpa2V0c3V6b2t1XCA7Civos6rllY/nlKjntJkgPiBzaGl0c3Vtb24nJ3lvdXNoaVwgOwor54us6Lqr55Sf5rS7ID4gZG9rdXNoaW5zZWlrYXRzdVwgOwor6K2m5a+f5b2T5bGAID4ga2Vpc2F0c3V0b3VreW9rdVwgOwor55u05o6l5Lyd5p+TID4gY2hva3VzZXRzdWRlbnNlblwgOwor6Z2S56m65pWZ5a6kID4gYW96b3Jha3lvdXNoaXRzdVwgOwor6Z2e5auh5Ye65a2QID4gaGljaGFrdXNodXRzdXNoaVwgOwor55Sf5rS75qeY5byPID4gc2Vpa2F0c3V5b3VzaGlraVwgOwor54mH6YGT5paZ6YeRID4ga2F0YW1pY2hpcnlvdWtpblwgOwor5Y6f5rK55rWB5Ye6ID4gZ2VuJyd5dXJ5dXVzaHV0c3VcIDsKK+eVpeW8j+WRveS7pCA+IHJ5YWt1c2hpa2ltZWlyZWlcIDsKK+iKuOihk+a0u+WLlSA+IGdlaWp1dHN1a2F0c3Vkb3VcIDsKK+attOWPsuWTsuWtpiA+IHJla2lzaGl0ZXRzdWdha3VcIDsKK+S4i+eUuuiogOiRiSA+IHNoaXRhbWFjaGlrb3RvYmFcIDsKK+e3iuaApeedgOmZuCA+IGtpbmt5dXVjaGFrdXJpa3VcIDsKK+WGt+ihgOWLleeJqSA+IHJlaWtldHN1ZG91YnV0c3VcIDsKK+WPluaJseazqOaEjyA+IHRvcmlhdHN1a2FpY2h1dWlcIDsKK+WJsuWil+aWmemHkSA+IHdhcmltYXNoaXJ5b3VraW5cIDsKK+ebtOaIquewoeaYjiA+IGNob2t1c2V0c3VrYW5tZWlcIDsKK+m7hOmBk+WQieaXpSA+IGtvdWRvdWtpY2hpbmljaGlcIDsKK+S4gOinpuWNs+eZuiA+IGlzc2hva3Vzb2t1aGF0c3VcIDsKK+WNs+aXpemWi+elqCA+IHNva3VqaXRzdWthaWh5b3VcIDsKK+Wun+izquizg+mHkSA+IGppc3NoaXRzdWNoaW5naW5cIDsKK+aVmemkiuWwj+iqrCA+IGt5b3V5b3VzaG91c2V0c3VcIDsKK+aKveixoeiKuOihkyA+IGNodXVzaG91Z2VpanV0c3VcIDsKK+ebtOaOpeaUr+mFjSA+IGNob2t1c2V0c3VzaGloYWlcIDsKK+mbhuWbo+WwseiBtyA+IHNodXVkYW5zaHV1c2hva3VcIDsKK+awtOeUn+akjeeJqSA+IHN1aXNlaXNob2t1YnV0c3VcIDsKK+iBt+WLmeizquWVjyA+IHNob2t1bXVzaGl0c3Vtb25cIDsKK+S5vueUn+akjeeJqSA+IGthbnNlaXNob2t1YnV0c3VcIDsKK+Wuv+aziuioreWCmSA+IHNodWt1aGFrdXNldHN1YmlcIDsKK+Wbveeri+Wkp+WtpiA+IGtva3VyaXRzdWRhaWdha3VcIDsKK+S4gOiogOS6jOiogCA+IGhpdG9rb3RvZnV0YWtvdG9cIDsKK+ato+mdouihneeqgSA+IHNob3VtZW5zaG91dG90c3VcIDsKK+S4gOaXpeWNg+eniyA+IGljaGluaWNoaXNlbnNodXVcIDsKK+WVhualreebrueahCA+IHNob3VneW91bW9rdXRla2lcIDsKK+ikh+W8j+Wtpue0miA+IGZ1a3VzaGlraWdha2t5dXVcIDsKK+WNkualreiovOabuCA+IHNvdHN1Z3lvdXNob3VzaG9cIDsKK+eEvOiCieWumumjnyA+IHlha2luaWt1dGVpc2hva3VcIDsKK+ihqOmdouW8teWKmyA+IGh5b3VtZW5jaG91cnlva3VcIDsKK+eJueWIpeeVque1hCA+IHRva3ViZXRzdWJhbmd1bWlcIDsKK+Wtpue/kuiDveWKmyA+IGdha3VzaHV1bm91cnlva3VcIDsKK+S/oeeUqOWPluW8lSA+IHNoaW4nJ3lvdXRvcmloaWtpXCA7Civpq5jooYDlnKfnl4cgPiBrb3VrZXRzdWF0c3VzaG91XCA7CivkuK3lv4PkurrniakgPiBjaHV1c2hpbmppbmJ1dHN1XCA7Civpo5/mlpnlk4HllYYgPiBzaG9rdXJ5b3VoaW5zaG91XCA7CivotoXnj77lrp/nmoQgPiBjaG91Z2Vuaml0c3V0ZWtpXCA7CivljbPouqvmiJDku48gPiBzb2t1c2hpbmpvdWJ1dHN1XCA7Civlm73lpJbohLHlh7ogPiBrb2t1Z2FpZGFzc2h1dHN1XCA7Civnm7TmjqXlm57nrZQgPiBjaG9rdXNldHN1a2FpdG91XCA7CivlhYjnianlj5blvJUgPiBzYWtpbW9ub3RvcmloaWtpXCA7CivmrbTlj7LlsI/oqqwgPiByZWtpc2hpc2hvdXNldHN1XCA7Civnha7msrjmtojmr5IgPiBzaGFmdXRzdXNob3Vkb2t1XCA7CivmtbflpJbpgLLlh7ogPiBrYWlnYWlzaGluc2h1dHN1XCA7CivmsLTlipvnmbrpm7sgPiBzdWlyeW9rdWhhdHN1ZGVuXCA7CivlvaLos6rlsI7lhaUgPiBrZWlzaGl0c3Vkb3VueXV1XCA7Civnm7TmjqXplqLkv4IgPiBjaG9rdXNldHN1a2Fua2VpXCA7Civnm7TmjqXnsKHmmI4gPiBjaG9rdXNldHN1a2FubWVpXCA7CivmjK/mm7/kvJHml6UgPiBmdXJpa2Fla3l1dWppdHN1XCA7CivljYPnt6jkuIDlvosgPiBzZW5wZW4nJ2ljaGlyaXRzdVwgOwor6YO15L6/5bCP5YyFID4geXV1Ymlua29kenV0c3VtaVwgOwor5Y2Y5LiA56We5pWZID4gdGFuJydpdHN1c2hpbmt5b3VcIDsKK+iZmuW8seS9k+izqiA+IGt5b2pha3V0YWlzaGl0c3VcIDsKK+iEiue0ouWLleeJqSA+IHNla2lzYWt1ZG91YnV0c3VcIDsKK+atpuWKm+ihneeqgSA+IGJ1cnlva3VzaG91dG90c3VcIDsKK+eGseaguOWPjeW/nCA+IG5ldHN1a2FrdWhhbicnbm91XCA7CivnqK7lrZDmpI3niakgPiBzaHVzaGlzaG9rdWJ1dHN1XCA7Civnm7TmjqXooYzli5UgPiBjaG9rdXNldHN1a291ZG91XCA7CivmsYLogbfluoPlkYogPiBreXV1c2hva3Vrb3Vrb2t1XCA7Civlrp/oqLzlk7LlraYgPiBqaXNzaG91dGV0c3VnYWt1XCA7CivoirHlq4HoirHlqb8gPiBoYW5heW9tZWhhbmFtdWtvXCA7CivlpKflkI3ooYzliJcgPiBkYWlteW91Z3lvdXJldHN1XCA7Civpq5jlsbHmpI3niakgPiBrb3V6YW5zaG9rdWJ1dHN1XCA7CivnibnliKXmlpnph5EgPiB0b2t1YmV0c3VyeW91a2luXCA7CivkuK3plpPlsI/oqqwgPiBjaHV1a2Fuc2hvdXNldHN1XCA7CivnlJ/nianmv4PnuK4gPiBzZWlidXRzdW5vdXNodWt1XCA7CivlhaXlipvkv6Hlj7cgPiBueXV1cnlva3VzaGluZ291XCA7CivlvavliLvlrqTluqcgPiBjaG91a29rdXNoaXRzdXphXCA7CivnorrnjofmqJnmnKwgPiBrYWt1cml0c3VoeW91aG9uXCA7Civlt57nq4vlpKflraYgPiBzaHV1cml0c3VkYWlnYWt1XCA7CivlpJrogonmpI3niakgPiB0YW5pa3VzaG9rdWJ1dHN1XCA7CivnhrHkvJ3lsI7njocgPiBuZXRzdWRlbmRvdXJpdHN1XCA7CivmpI3niankurrplpMgPiBzaG9rdWJ1dHN1bmluZ2VuXCA7CivomZromZrlrp/lrp8gPiBreW9reW9qaXRzdWppdHN1XCA7CivnianniankuqTmj5sgPiBidXRzdWJ1dHN1a291a2FuXCA7Civlrp/lipvooYzkvb8gPiBqaXRzdXJ5b2t1a291c2hpXCA7CivlnovlvI/oqLzmmI4gPiBrYXRhc2hpa2lzaG91bWVpXCA7CivpgKPli53opIflvI8gPiByZW5zaG91ZnVrdXNoaWtpXCA7Civnm7TmjqXljZTorbAgPiBjaG9rdXNldHN1a3lvdWdpXCA7Civnvarpmpzmtojmu4UgPiB6YWlzaG91c2hvdW1ldHN1XCA7CivmmannlJ/mpI3niakgPiBiYW5zZWlzaG9rdWJ1dHN1XCA7CivmvZzlnKjlpLHmpa0gPiBzZW56YWlzaGl0c3VneW91XCA7Civnm7TmjqXmr5TovIMgPiBjaG9rdXNldHN1aGlrYWt1XCA7CivmoLjmipHmraLlipsgPiBrYWt1eW9rdXNoaXJ5b2t1XCA7CivkuIfnianmtYHou6IgPiBiYW5idXRzdXJ5dXV0ZW5cIDsKK+i7n+W8j+W6reeQgyA+IG5hbnNoaWtpdGVpa3l1dVwgOwor5L+u6YGT55Sf5rS7ID4gc2h1dWRvdXNlaWthdHN1XCA7Civnp5jlr4borablr58gPiBoaW1pdHN1a2Vpc2F0c3VcIDsKK+azleS6uuagquS4uyA+IGhvdWppbmthYnVudXNoaVwgOwor6ZaT5o6l54Wn5piOID4ga2Fuc2V0c3VzaG91bWVpXCA7CivntJvpqqjnoJXouqsgPiBmdW5rb3RzdXNhaXNoaW5cIDsKK+S4oeajsuWLleeJqSA+IHJ5b3VzZWlkb3VidXRzdVwgOwor6ZuG57SE6L6y5qWtID4gc2h1dXlha3Vub3VneW91XCA7Civlu4Pnlr7mnaHku7YgPiBoYWlzaGl0c3Vqb3VrZW5cIDsKK+iDveeOh+izg+mHkSA+IG5vdXJpdHN1Y2hpbmdpblwgOwor5Y2Y5YiA55u05YWlID4gdGFudG91Y2hva3VueXV1XCA7CivkuInmloflsI/oqqwgPiBzYW5tb25zaG91c2V0c3VcIDsKK+eti+iCieazqOWwhCA+IGtpbicnbmlrdWNodXVzaGFcIDsKK+Wbm+mAmuWFq+mBlCA+IHNoaXRzdXVoYXR0YXRzdVwgOwor5Ymy5aKX6YGL6LODID4gd2FyaW1hc2hpdW5jaGluXCA7CivljZfmpbXoprPmuKwgPiBuYW5reW9rdWthbnNva3VcIDsKK+S4gOebrueereeEtiA+IGljaGltb2t1cnlvdXplblwgOwor57Sg5Lq65LiL5a6/ID4gc2hpcm91dG9nZXNodWt1XCA7CivlrabmoKHntabpo58gPiBnYWtrb3VreXV1c2hva3VcIDsKK+mWk+aOpeaSruW9sSA+IGthbnNldHN1c2F0c3VlaVwgOwor55m95bed5aSc6Ii5ID4gc2hpcmFrYXdheW9mdW5lXCA7CivnibnnrYblpKfmm7ggPiB0b2t1aGl0c3V0YWlzaG9cIDsKK+mjn+WTgeW3pealrSA+IHNob2t1aGlua291Z3lvdVwgOwor5qOY55qu5YuV54mpID4ga3lva3VoaWRvdWJ1dHN1XCA7CivmgKrlipvkubHnpZ4gPiBrYWlyeW9rdXJhbnNoaW5cIDsKK+S6uueUn+WTsuWtpiA+IGppbnNlaXRldHN1Z2FrdVwgOwor5paw5ama55Sf5rS7ID4gc2hpbmtvbnNlaWthdHN1XCA7CivlhazplovlhaXmnK0gPiBrb3VrYWlueXV1c2F0c3VcIDsKK+agquW8j+W4guWgtCA+IGthYnVzaGlraXNoaWpvdVwgOwor5a2m5qWt5oiQ57i+ID4gZ2FrdWd5b3VzZWlzZWtpXCA7Civnianos6rlkI3oqZ4gPiBidXNzaGl0c3VtZWlzaGlcIDsKK+efree3qOWwj+iqrCA+IHRhbnBlbnNob3VzZXRzdVwgOwor5ZWG5qWt5pWw5a2mID4gc2hvdWd5b3VzdXVnYWt1XCA7CivohLHlh7rpgJ/luqYgPiBkYXNzaHV0c3Vzb2t1ZG9cIDsKK+eJueWIpee3j+S8miA+IHRva3ViZXRzdXNvdWthaVwgOwor56ys5LiA5qW956ugID4gZGFpaWNoaWdha3VzaG91XCA7CivntKLmnaHpiYTpgZMgPiBzYWt1am91dGV0c3Vkb3VcIDsKK+i7jeiomOeJqeiqniA+IGd1bmtpbW9ub2dhdGFyaVwgOwor5Y6z5q2j5Lit56uLID4gZ2Vuc2VpY2h1dXJpdHN1XCA7CivkuIDml6XkuIDlpJwgPiBpY2hpbmljaGlpY2hpeWFcIDsKK+mZsOmZsOa7hea7hSA+IGluJydpbm1ldHN1bWV0c3VcIDsKK+WwseiBt+a1quS6uiA+IHNodXVzaG9rdXJvdW5pblwgOwor57SU5r2U5pWZ6IKyID4ganVua2V0c3VreW91aWt1XCA7CivlrpfmlZnmlLnpnakgPiBzaHV1a3lvdWthaWtha3VcIDsKK+aUr+mboua7heijgiA+IHNoaXJpbWV0c3VyZXRzdVwgOwor5Zu95rCR5a6/6IiOID4ga29rdW1pbnNodWt1c2hhXCA7Civni6znq4vlrqPoqIAgPiBkb2t1cml0c3VzZW5nZW5cIDsKK+WJr+iFjuearuizqiA+IGZ1a3VqaW5oaXNoaXRzdVwgOwor5Zu95rCR55Sf5rS7ID4ga29rdW1pbnNlaWthdHN1XCA7CivnqY3ovInog73lipsgPiBzZWtpc2Fpbm91cnlva3VcIDsKK+WPjuWuueiDveWKmyA+IHNodXV5b3Vub3VyeW9rdVwgOwor6IWw6auY6Zqc5a2QID4ga29zaGlkYWthc2hvdWppXCA7CivlubTpoIPml6XpoIMgPiB0b3NoaWdvcm9oaWdvcm9cIDsKK+mAmuS/l+aWh+WtpiA+IHRzdXV6b2t1YnVuZ2FrdVwgOwor5YSq5YWI5qCq5Li7ID4geXV1c2Vua2FidW51c2hpXCA7CivlhpnnnJ/muKzph48gPiBzaGFzaGluc29rdXJ5b3VcIDsKK+S8gealreS9k+izqiA+IGtpZ3lvdXRhaXNoaXRzdVwgOwor54yq56qB54yb6YCyID4gY2hvdG90c3Vtb3VzaGluXCA7CivlrabnlJ/libLlvJUgPiBnYWt1c2Vpd2FyaWJpa2lcIDsKK+S+oeagvOWcp+WKmyA+IGtha2FrdWF0c3VyeW9rdVwgOwor6KGo54++5b2i5byPID4gaHlvdWdlbmtlaXNoaWtpXCA7Civlh7rpoZjmm7jpoZ4gPiBzaHV0c3VnYW5zaG9ydWlcIDsKK+Wul+aVmeaVmeiCsiA+IHNodXVreW91a3lvdWlrdVwgOwor5L2Z6KOV57a957a9ID4geW95dXVzaGFrdXNoYWt1XCA7Civnn6XnmoTog73lipsgPiBjaGl0ZWtpbm91cnlva3VcIDsKK+WPjemqqOeyvuelniA+IGhhbmtvdHN1c2Vpc2hpblwgOwor5q2j56K654iG5pKDID4gc2Vpa2FrdWJha3VnZWtpXCA7Civml6Xoi7HpgJroqLMgPiBuaWNoaWVpdHN1dXlha3VcIDsKK+mjn+eJqee5iue2rSA+IHNob2t1bW90c3VzZW4nJ2lcIDsKK+eul+ihk+e0muaVsCA+IHNhbmp1dHN1a3l1dXN1dVwgOwor5YWl5Yqb6KOF572uID4gbnl1dXJ5b2t1c291Y2hpXCA7Civogbfmpa3oqJPnt7QgPiBzaG9rdWd5b3VrdW5yZW5cIDsKK+aOouWBteWwj+iqrCA+IHRhbnRlaXNob3VzZXRzdVwgOwor55Sf5rS75Y+N5b+cID4gc2Vpa2F0c3VoYW4nJ25vdVwgOwor5p2+5LiL6Zu75ZmoID4gbWF0c3VzaGl0YWRlbmtpXCA7Civnn6XorZjpmo7ntJogPiBjaGlzaGlraWthaWt5dXVcIDsKK+agquW8j+S8muekviA+IGthYnVzaGlraWdhaXNoYVwgOwor5LiA5pmC6aCQ5omAID4gaWNoaWppYXp1a2FyaWpvXCA7Civmi6HlpKfop6Pph4ggPiBrYWt1ZGFpa2Fpc2hha3VcIDsKK+WTgeizquS/neiovCA+IGhpbnNoaXRzdWhvc2hvdVwgOwor5L+h5Luw5ZGK55m9ID4gc2hpbmtvdWtva3VoYWt1XCA7CivmoLznianoh7Tnn6UgPiBrYWt1YnV0c3VjaGljaGlcIDsKK+exs+epgOmAmuW4syA+IGJlaWtva3V0c3V1Y2hvdVwgOwor5a6f55So5paw5qGIID4gaml0c3V5b3VzaGluJydhblwgOwor5b+D6Lqr6Zqc5a6zID4gc2hpbnNoaW5zaG91Z2FpXCA7CivpgJ/miKbljbPmsbogPiBzb2t1c2Vuc29ra2V0c3VcIDsKK+WMluWtpuWQuOedgCA+IGthZ2FrdWt5dXVjaGFrdVwgOwor5Zub5pa55bGx6KmxID4geW9tb3lhbWFiYW5hc2hpXCA7CivnmoflrqTlhbjnr4QgPiBrb3VzaGl0c3V0ZW5wYW5cIDsKK+eJueWIpeWbveS8miA+IHRva3ViZXRzdWtva2thaVwgOwor5LiA5Z2q5pys56S+ID4gaGl0b3RzdWJvaG9uc2hhXCA7Civml6nlj6PoqIDokYkgPiBoYXlha3VjaGlrb3RvYmFcIDsKK+a3seWxseW5veiwtyA+IHNoaW56YW4nJ3l1dWtva3VcIDsKK+mAmuWVhueUo+alrSA+IHRzdXVzaG91c2FuZ3lvdVwgOwor5bu656+J6Z2i56mNID4ga2VuY2hpa3VtZW5zZWtpXCA7Civnm6TmoLnpjK/nr4AgPiBiYW5rb25zYWt1c2V0c3VcIDsKK+WGheeahOeUn+a0uyA+IG5haXRla2lzZWlrYXRzdVwgOwor56eY5a+G5ryP5rSpID4gaGltaXRzdXJvdXNldHN1XCA7Civnjonnn7Pmt7fmt4YgPiBneW9rdXNla2lrb25rb3VcIDsKK+mbm+mRkeWIpeiAhSA+IGhpbmFrYW5iZXRzdXNoYVwgOwor57WC6Lqr5bm06YeRID4gc2h1dXNoaW4nJ25lbmtpblwgOwor57KJ6aqo56CV6LqrID4gZnVua290c3VzYWlzaGluXCA7Civkurrnianlr7jmj48gPiBqaW5idXRzdXN1bmJ5b3VcIDsKK+WVhuWTgeebrumMsiA+IHNob3VoaW5tb2t1cm9rdVwgOwor5aSW6aOf55Sj5qWtID4gZ2Fpc2hva3VzYW5neW91XCA7Civos4fmupDnr4DntIQgPiBzaGlnZW5zZXRzdXlha3VcIDsKK+mdmeiEiOazqOWwhCA+IGpvdW15YWt1Y2h1dXNoYVwgOwor5YaS6Zm65bCP6KqsID4gYm91a2Vuc2hvdXNldHN1XCA7CivnhrHnoazljJbniakgPiBuZXRzdWtvdWthYnV0c3VcIDsKK+WbveaciemJhOmBkyA+IGtva3V5dXV0ZXRzdWRvdVwgOwor56K6546H5aSJ5pWwID4ga2FrdXJpdHN1aGVuc3V1XCA7CivplovnmbroqIjnlLsgPiBrYWloYXRzdWtlaWtha3VcIDsKK+acieWus+eJqeizqiA+IHl1dWdhaWJ1c3NoaXRzdVwgOwor5oOF54q26YWM6YePID4gam91am91c2hha3VyeW91XCA7CivkvrXnlaXmiKbkuokgPiBzaGlucnlha3VzZW5zb3VcIDsKK+WGkumgremZs+i/sCA+IGJvdXRvdWNoaW5qdXRzdVwgOwor54S86Lqr6Ieq5q66ID4gc2hvdXNoaW5qaXNhdHN1XCA7CivlpKflronlkInml6UgPiB0YWlhbmtpY2hpbmljaGlcIDsKK+efr+ato+imluWKmyA+IGt5b3VzZWlzaGlyeW9rdVwgOwor56CU56m26ZaL55m6ID4ga2Vua3l1dWthaWhhdHN1XCA7Civoq4flkIjlhaXmnK0gPiBkYW5nb3VueXV1c2F0c3VcIDsKK+mZuOeUn+WLleeJqSA+IHJpa3VzZWlkb3VidXRzdVwgOwor5Y2X5aSq5bmz5rSLID4gbWluYW1pdGFpaGVpeW91XCA7CivlrabnlJ/nlJ/mtLsgPiBnYWt1c2Vpc2Vpa2F0c3VcIDsKK++8ke+8ke+8meeVqiA+IGh5YWt1anV1a3l1dWJhblwgOwor57WQ5ZCI57WE57mUID4ga2V0c3Vnb3Vzb3NoaWtpXCA7Civlvavlv4Ppj6TpqqggPiBjaG91c2hpbnJ1a290c3VcIDsKK+e4geaXpeWVhuS6uiA+IGVuJyduaWNoaXNob3VuaW5cIDsKK+W/g+elnuiAl+W8sSA+IHNoaW5zaGlubW91amFrdVwgOwor55+t5pyf6LK45LuYID4gdGFua2lrYXNoaXRzdWtlXCA7Civnjonnn7Pmt7fkuqQgPiBneW9rdXNla2lrb25rb3VcIDsKK+W3puS4reaLrOW8pyA+IGhpZGFyaWNodXVrYWtrb1wgOwor6buS6Imy5Lq656iuID4ga29rdXNob2t1amluc2h1XCA7CivlhazlvI/nmbrooaggPiBrb3VzaGlraWhhcHB5b3VcIDsKK+i7n+mqqOe1hOe5lCA+IG5hbmtvdHN1c29zaGlraVwgOwor5pif6ZaT54mp6LOqID4gc2Vpa2FuYnVzc2hpdHN1XCA7CivnlJ/mtq/lrabnv5IgPiBzaG91Z2FpZ2FrdXNodXVcIDsKK+efpeitmOihqOePviA+IGNoaXNoaWtpaHlvdWdlblwgOwor5rqQ5rCP54mp6KqeID4gZ2Vuamltb25vZ2F0YXJpXCA7CivkuIPou6LlhavlgJIgPiBzaGljaGl0ZW5iYXR0b3VcIDsKK+eZveiJsuS6uueoriA+IGhha3VzaG9rdWppbnNodVwgOwor5bmz5a6254mp6KqeID4gaGVpa2Vtb25vZ2F0YXJpXCA7CivkvZnoo5Xntr3jgIUgPiB5b3l1dXNoYWt1c2hha3VcIDsKK+aLkue1tuWPjeW/nCA+IGt5b3pldHN1aGFuJydub3VcIDsKK+eJueWIpeW+hemBhyA+IHRva3ViZXRzdXRhaWd1dVwgOwor6Z2S5aSp55m95pelID4gc2VpdGVuaGFrdWppdHN1XCA7CivlpKnnvbDopr/pnaIgPiB0ZW5iYXRzdXRla2ltZW5cIDsKK+ihgOaXj+e1kOWpmiA+IGtldHN1em9rdWtla2tvblwgOwor55m66Imy54++5YOPID4gaGFzc2hva3VnZW5zaG91XCA7CivlhaXmnK3kvqHmoLwgPiBueXV1c2F0c3VrYWtha3VcIDsKK+mAo+eri+WGhemWoyA+IHJlbnJpdHN1bmFpa2FrdVwgOwor6IW55byP5ZG85ZC4ID4gZnVrdXNoaWtpa29reXV1XCA7CivkvY7plovnmbrlm70gPiB0ZWlrYWloYXRzdWtva3VcIDsKK+i7veWmmea0kuiEsSA+IGtlaW15b3VzaGFkYXRzdVwgOwor6Yu857Si6YmE6YGTID4ga291c2FrdXRldHN1ZG91XCA7Civnj77mnInli6LlipsgPiBnZW4nJ3l1dXNlaXJ5b2t1XCA7CivpgYrkvJHmlr3oqK0gPiB5dXVreXV1c2hpc2V0c3VcIDsKK+i3s+i6jeaMr+WLlSA+IGNob3V5YWt1c2hpbmRvdVwgOwor6LaF54S25YaF6ZajID4gY2hvdXplbicnbmFpa2FrdVwgOwor5a6f5qWt5a2m5qChID4gaml0c3VneW91Z2Fra291XCA7Civnp4Hnq4vlpKflraYgPiBzaGlyaXRzdWRhaWdha3VcIDsKK+acgOS9juihgOWcpyA+IHNhaXRlaWtldHN1YXRzdVwgOwor5bCK5bGe5q665Lq6ID4gc29uem9rdXNhdHN1amluXCA7CivkuK3nq4vlnLDluK8gPiBjaHV1cml0c3VjaGl0YWlcIDsKK+S4oealteWcsOaWuSA+IHJ5b3VreW9rdWNoaWhvdVwgOwor6YCj57aa5q665Lq6ID4gcmVuem9rdXNhdHN1amluXCA7CivlnoLnm7TliIbmpa0gPiBzdWljaG9rdWJ1bmd5b3VcIDsKK+a0l+a/r+efs+m5uCA+IHNlbnRha3VzZXRzdWtlblwgOwor6ZeY55eF55Sf5rS7ID4gdG91YnlvdXNlaWthdHN1XCA7CivlkIzmlofpgJrpgZQgPiBkb3VidW50c3V1dGF0c3VcIDsKK+WGhui7oua7keiEsSA+IGVudGVua2F0c3VkYXRzdVwgOwor55Sf54mp5bel5a2mID4gc2VpYnV0c3Vrb3VnYWt1XCA7CivkuIDlvovmuJvlj40gPiBpY2hpcml0c3VnZW50YW5cIDsKK+S6uuWToee4ruWwkSA+IGppbicnaW5zaHVrdXNob3VcIDsKK+eLrOeri+WkieaVsCA+IGRva3VyaXRzdWhlbnN1dVwgOwor5Lq65a6a6LOq5ZWPID4gamludGVpc2hpdHN1bW9uXCA7CivmlrDntITogZbmm7ggPiBzaGluJyd5YWt1c2Vpc2hvXCA7CivnlJ/mrrrkuI7lpaogPiBzZWlzYXRzdXlvZGF0c3VcIDsKK+auv+anmOS7leS6iyA+IHRvbm9zYW1hc2hpZ290b1wgOwor5Y+w5omA55So5ZOBID4gZGFpZG9rb3JveW91aGluXCA7CivosrTph5HlsZ7ljbggPiBraWtpbnpva3Vvcm9zaGlcIDsKK+S4iuaWuei0heWFrSA+IGthbWlnYXRhemVpcm9rdVwgOwor6KGA5peP6Zai5L+CID4ga2V0c3V6b2t1a2Fua2VpXCA7CivlrZDlrq7lvozlsYggPiBzaGlreXV1a291a3V0c3VcIDsKK+WNl+W+geWMl+S8kCA+IG5hbnNlaWhva3ViYXRzdVwgOwor55yf5a6f5LiA6LevID4gc2hpbmppdHN1aWNoaXJvXCA7CivnibnliKXpgYvos4MgPiB0b2t1YmV0c3V1bmNoaW5cIDsKK+mAmuW4uOaIpuWKmyA+IHRzdXVqb3VzZW5yeW9rdVwgOwor5Yip5a6z5b6X5aSxID4gcmlnYWl0b2t1c2hpdHN1XCA7CivmtYXphYzkvY7llLEgPiBzZW5zaGFrdXRlaXNob3VcIDsKK+ijuOWtkOakjeeJqSA+IHJhc2hpc2hva3VidXRzdVwgOwor5YCf55So6Ki85pu4ID4gc2hha3V5b3VzaG91c2hvXCA7CivlhbHmnInntZDlkIggPiBreW91eXV1a2V0c3Vnb3VcIDsKK+WbnuaKmOmgmOWfnyA+IGthaXNldHN1cnlvdWlraVwgOwor6IG35qWt5oSP6K2YID4gc2hva3VneW91aXNoaWtpXCA7CivljZjlvI/lrabntJogPiB0YW5zaGlraWdha2t5dXVcIDsKK+Wtpuihk+mbkeiqjCA+IGdha3VqdXRzdXphc3NoaVwgOwor5Y2S5qWt6Kmm6aiTID4gc290c3VneW91c2hpa2VuXCA7CivlhKrmgKflvaLos6ogPiB5dXVzZWlrZWlzaGl0c3VcIDsKK+aIkOmVt+absue3miA+IHNlaWNob3VreW9rdXNlblwgOwor55m+5YWr5Y2B5bqmID4gaHlha3VoYWNoaWp1dWRvXCA7CivlpKflkozmkqvlrZAgPiB5YW1hdG9uYWRlc2hpa29cIDsKK+WlveiJsuaWh+WtpiA+IGtvdXNob2t1YnVuZ2FrdVwgOwor6ZyK6a2C5raI5ruFID4gcmVpa29uc2hvdW1ldHN1XCA7CivnibnliKXphY3lvZMgPiB0b2t1YmV0c3VoYWl0b3VcIDsKK+miqOWKm+majue0miA+IGZ1dXJ5b2t1a2Fpa3l1dVwgOwor5rWB5L2T5Yqb5a2mID4gcnl1dXRhaXJpa2lnYWt1XCA7CivliqPlvLHmhI/orZggPiByZXRzdWpha3Vpc2hpa2lcIDsKK+S6jOiCoeiGj+iWrCA+IGZ1dGFtYXRha291eWFrdVwgOwor54mp6LOq5Luj6KydID4gYnVzc2hpdHN1dGFpc2hhXCA7CivnrqHovYTlrpjluoEgPiBrYW5rYXRzdWthbmNob3VcIDsKK+S/ruato+eUs+WRiiA+IHNodXVzZWlzaGlua29rdVwgOwor5b+D55CG5bCP6KqsID4gc2hpbnJpc2hvdXNldHN1XCA7CivnnYDpmbjlnLDngrkgPiBjaGFrdXJpa3VjaGl0ZW5cIDsKK+Wun+mok+Wwj+iqrCA+IGppa2tlbnNob3VzZXRzdVwgOwor5Y6f5a2Q54iG55m6ID4gZ2Vuc2hpYmFrdWhhdHN1XCA7CivlhaXlipvmg4XloLEgPiBueXV1cnlva3Vqb3Vob3VcIDsKK+mHj+WtkOWKm+WtpiA+IHJ5b3VzaGlyaWtpZ2FrdVwgOwor5aWq5LiJ5oyv546LID4gZGF0c3VzYW5zaGluJydvdVwgOwor5bm05pyr6Kq/5pW0ID4gbmVubWF0c3VjaG91c2VpXCA7CivlrabooZPoq5bmlocgPiBnYWt1anV0c3Vyb25idW5cIDsKK+eUn+eJqeWtpuiAhSA+IHNlaWJ1dHN1Z2FrdXNoYVwgOwor5YWt55m+5YWt5Y+3ID4gcm9wcHlha3Vyb2t1Z291XCA7CivmgJ3lvIHlk7LlraYgPiBzaGliZW50ZXRzdWdha3VcIDsKK+aKl+eUn+eJqeizqiA+IGtvdXNlaWJ1c3NoaXRzdVwgOwor5rS75YuV5YaZ55yfID4ga2F0c3Vkb3VzaGFzaGluXCA7CivkuKHnlJ/li5XniakgPiByeW91c2VpZG91YnV0c3VcIDsKK+eyvuelnuiWhOW8sSA+IHNlaXNoaW5oYWt1amFrdVwgOwor5by36L+r6Kaz5b+1ID4ga3lvdWhha3VrYW4nJ25lblwgOwor6LuN57iu5Y2U5a6aID4gZ3Vuc2h1a3VreW91dGVpXCA7CivnnYDpmbjlnLDluK8gPiBjaGFrdXJpa3VjaGl0YWlcIDsKK+eCreWhteeIhueZuiA+IHRhbmppbmJha3VoYXRzdVwgOwor55Sf5rS755Kw5aKDID4gc2Vpa2F0c3VrYW5reW91XCA7CivmioDooZPpnanmlrAgPiBnaWp1dHN1a2FrdXNoaW5cIDsKK+eyn+eykue1kOaguCA+IHpva3VyeXV1a2Vra2FrdVwgOwor5Luu5Y+X5Y+W6Ki8ID4ga2FyaXVrZXRvcmlzaG91XCA7CivmlrDogZ7phY3pgZQgPiBzaGluYnVuaGFpdGF0c3VcIDsKK+WNkualreirluaWhyA+IHNvdHN1Z3lvdXJvbmJ1blwgOwor55m76Yyy5ZWG5qiZID4gdG91cm9rdXNob3VoeW91XCA7Civkv6HnlKjpipjmn4QgPiBzaGluJyd5b3VtZWlnYXJhXCA7Civmk43mtYTnkaDnkoMgPiBheWF0c3VyaWpvdXJ1cmlcIDsKK+WFseWQjOeUn+a0uyA+IGt5b3Vkb3VzZWlrYXRzdVwgOwor5Lyd6YGU54m55oCnID4gZGVudGF0c3V0b2t1c2VpXCA7Civkv6Hku7DnlJ/mtLsgPiBzaGlua291c2Vpa2F0c3VcIDsKK+mDt+Wcn+Wwj+iqrCA+IGt5b3Vkb3Nob3VzZXRzdVwgOwor6ZuG5Zuj55Sf5rS7ID4gc2h1dWRhbnNlaWthdHN1XCA7Civpp5Dml6XlpKfkvb8gPiBjaHV1bmljaGl0YWlzaGlcIDsKK+WztuWbveagueaApyA+IHNoaW1hZ3VuaWtvbmpvdVwgOwor5bem5bCP5ous5bynID4gaGlkYXJpc2hvdWtha2tvXCA7CivmsJHml4/lrpfmlZkgPiBtaW56b2t1c2h1dWt5b3VcIDsKK+aXpeS4remfk+i2iiA+IG5pdGNodXVrYW4nJ2V0c3VcIDsKK+m7kuiJsueBq+iWrCA+IGtva3VzaG9rdWtheWFrdVwgOwor5LiH5pyJ56We5pWZID4gYmFuJyd5dXVzaGlua3lvdVwgOwor6aCt6ISz5rWB5Ye6ID4genVub3VyeXV1c2h1dHN1XCA7Civnm7TmjqXoqbHms5UgPiBjaG9rdXNldHN1d2Fob3VcIDsKK+W9ouizqui7ouaPmyA+IGtlaXNoaXRzdXRlbmthblwgOwor5q2j55yf5q2j6YqYID4gc2hvdXNoaW5zaG91bWVpXCA7CivniIblvL7nmbroqIAgPiBiYWt1ZGFuaGF0c3VnZW5cIDsKK+ebtOeri+S4jeWLlSA+IGNob2t1cml0c3VmdWRvdVwgOwor5ZWG5qWt6YGT5b6zID4gc2hvdWd5b3Vkb3V0b2t1XCA7CivnibnoqK3kvJrloLQgPiB0b2t1c2V0c3VrYWlqb3VcIDsKK+aguOeJqeeQhuWtpiA+IGtha3VidXRzdXJpZ2FrdVwgOwor55u056uL54y/5Lq6ID4gY2hva3VyaXRzdWVuamluXCA7CivotoXpgKPntZDlrZAgPiBjaG91cmVua2V0c3VzaGlcIDsKK+eUsuirluS5memngSA+IGtvdXJvbicnb3RzdWJha3VcIDsKK+eJqeeahOizh+a6kCA+IGJ1dHN1dGVraXNoaWdlblwgOwor55u05o6l5pSv5o+0ID4gY2hva3VzZXRzdXNoaWVuXCA7CivmlrDliLbkuK3lraYgPiBzaGluc2VpY2h1dWdha3VcIDsKK+Wcp+WKm+Wbo+S9kyA+IGF0c3VyeW9rdWRhbnRhaVwgOwor5rip6KGA5YuV54mpID4gb25rZXRzdWRvdWJ1dHN1XCA7CivkuK3nq4vlirTpgKMgPiBjaHV1cml0c3Vyb3VyZW5cIDsKK+eglOeptua0u+WLlSA+IGtlbmt5dXVrYXRzdWRvdVwgOwor6Ieq54S25ZOy5a2mID4gc2hpemVudGV0c3VnYWt1XCA7CivmoKrkuLvnt4/kvJogPiBrYWJ1bnVzaGlzb3VrYWlcIDsKK+aAp+agvOWIpOWIpSA+IHNlaWtha3VoYW5iZXRzdVwgOwor6YGO5aSx5YK35a6zID4ga2FzaGl0c3VzaG91Z2FpXCA7CivpgJrkv6Hlt6XlraYgPiB0c3V1c2hpbmtvdWdha3VcIDsKK+WQjOS4gOS6uueJqSA+IGRvdWl0c3VqaW5idXRzdVwgOwor5ZWG5a2m5Y2a5aOrID4gc2hvdWdha3VoYWt1c2hpXCA7Civlv4PpoK3mu4XljbQgPiBzaGludG91bWVra3lha3VcIDsKK+S4g+mhm+WFq+WAkiA+IHNoaWNoaXRlbmJhdHRvdVwgOwor5by36KGM5o6h5rG6ID4ga3lvdWtvdXNhaWtldHN1XCA7CivlsLHku7vmvJToqqwgPiBzaHV1bmluJydlbnpldHN1XCA7CivlkI3oq5bljZPoqqwgPiBtZWlyb250YWt1c2V0c3VcIDsKK+azqOWFpeaVmeiCsiA+IGNodXVueXV1a3lvdWlrdVwgOwor5ZCR57K+56We6JasID4ga291c2Vpc2hpbicneWFrdVwgOwor5YiG5YiX6KGM6YCyID4gYnVucmV0c3Vrb3VzaGluXCA7Civpo5/mlpnlk4HlupcgPiBzaG9rdXJ5b3VoaW50ZW5cIDsKK+a9ruaxkOaRqeaTpiA+IGNob3VzZWtpbWFzYXRzdVwgOwor56+A6Laz5YuV54mpID4gc2Vzc29rdWRvdWJ1dHN1XCA7Civpo5/nianpgKPpjpYgPiBzaG9rdW1vdHN1cmVuc2FcIDsKK+S4reiCieS4reiDjCA+IGNodXVuaWt1Y2h1dXplaVwgOwor6ZuG5Lit5pS75pKDID4gc2h1dWNodXVrb3VnZWtpXCA7CivnorrlrprliKTmsbogPiBrYWt1dGVpaGFua2V0c3VcIDsKK+WwkeWls+Wwj+iqrCA+IHNob3Vqb3Nob3VzZXRzdVwgOwor5Y2a5a2m5Yqb6KGMID4gaGFrdWdha3VyeW9ra291XCA7Civlgo3ns7vooYDml48gPiBib3VrZWlrZXRzdXpva3VcIDsKK+S4remWk+WGhemWoyA+IGNodXVrYW4nJ25haWtha3VcIDsKK+WNmOeLrOS+m+e1piA+IHRhbmRva3VreW91a3l1dVwgOwor5aSx5qWt5L+d6Zm6ID4gc2hpdHN1Z3lvdWhva2VuXCA7CivnibnliKXkvJroqIggPiB0b2t1YmV0c3VrYWlrZWlcIDsKK+aMr+W5heWkieiqvyA+IHNoaW5wdWt1aGVuY2hvdVwgOwor5bqD5ZGK5Y+O5YWlID4ga291a29rdXNodXVueXV1XCA7CivkuK3lm73lpKfpmbggPiBjaHV1Z29rdXRhaXJpa3VcIDsKK+aUvuWHuueJqeizhyA+IGhvdXNodXRzdWJ1c3NoaVwgOwor6YWN6YGU6Ki85piOID4gaGFpdGF0c3VzaG91bWVpXCA7CivmnIDntYLnm67nmoQgPiBzYWlzaHV1bW9rdXRla2lcIDsKK+S4gOiTruaJmOeUnyA+IGljaGlyZW50YWt1c2hvdVwgOwor5LiJ6KeS5ris6YePID4gc2Fua2FrdXNva3VyeW91XCA7Civli5XnianlrabogIUgPiBkb3VidXRzdWdha3VzaGFcIDsKK+WMluWtpueJqeizqiA+IGthZ2FrdWJ1c3NoaXRzdVwgOwor54ax5Y6f5a2Q5qC4ID4gbmV0c3VnZW5zaGlrYWt1XCA7CivlnLDos6roqr/mn7sgPiBjaGlzaGl0c3VjaG91c2FcIDsKK+atr+WIl+efr+atoyA+IHNoaXJldHN1a3lvdXNlaVwgOwor5Zub5Y2B5LiD5aOrID4gc2hpanV1c2hpY2hpc2hpXCA7CivljYHmnIjpnanlkb0gPiBqdXVnYXRzdWtha3VtZWlcIDsKK+aWh+izquW9rOW9rCA+IGJ1bnNoaXRzdWhpbnBpblwgOwor5L+h6KiX5aWR57SEID4gc2hpbnRha3VrZWl5YWt1XCA7Civni6znq4vmiKbkuokgPiBkb2t1cml0c3VzZW5zb3VcIDsKK+eBq+WKm+eZuumbuyA+IGthcnlva3VoYXRzdWRlblwgOwor6YCf6YGU6YO15L6/ID4gc29rdXRhdHN1eXV1YmluXCA7Civlm5vnmb7lm5vnl4UgPiBzaGloeWFrdXNoaWJ5b3VcIDsKK+WFg+W4s+aui+mrmCA+IG1vdG9jaG91emFuZGFrYVwgOwor5oq96LGh576O6KGTID4gY2h1dXNob3ViaWp1dHN1XCA7Civnianos6rmlofmmI4gPiBidXNzaGl0c3VidW5tZWlcIDsKK+i2heeJqeeQhuWtpiA+IGNob3VidXRzdXJpZ2FrdVwgOwor6aOf57On5LiN6LazID4gc2hva3VyeW91YnVzb2t1XCA7CivlhazlhbHmlr3oqK0gPiBrb3VreW91c2hpc2V0c3VcIDsKK+WNl+alteadoee0hCA+IG5hbmt5b2t1am91eWFrdVwgOwor5YW15Yqb5YmK5ribID4gaGVpcnlva3VzYWt1Z2VuXCA7Civlhazogbfov73mlL4gPiBrb3VzaG9rdXRzdWlob3VcIDsKK+Wtpuihk+Wbo+S9kyA+IGdha3VqdXRzdWRhbnRhaVwgOwor5YWx55Sf55Sf54mpID4ga3lvdXNlaXNlaWJ1dHN1XCA7CivooqvlrZDmpI3niakgPiBoaXNoaXNob2t1YnV0c3VcIDsKK+acieeVnOi+sualrSA+IHl1dWNoaWt1bm91Z3lvdVwgOwor5a+E55Sf5qSN54mpID4ga2lzZWlzaG9rdWJ1dHN1XCA7CivmrabkvqDlsI/oqqwgPiBidWt5b3VzaG91c2V0c3VcIDsKK+acqOizque5iue2rSA+IG1va3VzaGl0c3VzZW4nJ2lcIDsKK+ebtOmAmuWIl+i7iiA+IGNob2t1dHN1dXJlc3NoYVwgOwor5LiA5LiA5Lmd55WqID4gaHlha3VqdXVreXV1YmFuXCA7Civou6Lnva7ooYzliJcgPiB0ZW5jaGlneW91cmV0c3VcIDsKK+WHuuWLleWRveS7pCA+IHNodXRzdWRvdW1laXJlaVwgOwor6IiM5YWI5LiJ5a+4ID4gc2hpdGFzYWtpc2FuenVuXCA7CivlpKfooYbpo5/loIIgPiB0YWlzaHV1c2hva3Vkb3VcIDsKK+WGhemWo+mWo+WDmiA+IG5haWtha3VrYWt1cnlvdVwgOwor5Lq65Y+j54iG55m6ID4gamlua291YmFrdWhhdHN1XCA7CivlnKfnuK7lirnnjocgPiBhc3NodWt1a291cml0c3VcIDsKK+Wbveeri+mKgOihjCA+IGtva3VyaXRzdWdpbmtvdVwgOwor5LiA55eF5oGv54G9ID4gaWNoaWJ5b3Vzb2t1c2FpXCA7CivmraPph5Hlj5blvJUgPiBzaG91a2ludG9yaWhpa2lcIDsKK+a1gemAmumdqeWRvSA+IHJ5dXV0c3V1a2FrdW1laVwgOwor6Iq46KGT5L2c5ZOBID4gZ2VpanV0c3VzYWt1aGluXCA7CivmlrDoiIjlrpfmlZkgPiBzaGlua291c2h1dWt5b3VcIDsKK+efpeitmOW3peWtpiA+IGNoaXNoaWtpa291Z2FrdVwgOwor5L2T6LOq5pS55ZaEID4gdGFpc2hpdHN1a2FpemVuXCA7CivniYflgbTpgJrooYwgPiBrYXRhZ2F3YXRzdXVrb3VcIDsKK+WNl+alteWkp+mZuCA+IG5hbmt5b2t1dGFpcmlrdVwgOwor6Im256yR5bCP6KmxID4gZW5zaG91a29iYW5hc2hpXCA7CivllYbmpa3nvo7ooZMgPiBzaG91Z3lvdWJpanV0c3VcIDsKK+elnuiJsuiHquiLpSA+IHNoaW5zaG9rdWppamFrdVwgOwor5rC06Zqb5L2c5oimID4gbWl6dWdpd2FzYWt1c2VuXCA7CivniannmoToqLzmi6AgPiBidXRzdXRla2lzaG91a29cIDsKK+aTjealreefree4riA+IHNvdWd5b3V0YW5zaHVrdVwgOwor5YaF6IKh6IaP6JasID4gdWNoaW1hdGFnb3V5YWt1XCA7CivoibLlvanmhJ/oppogPiBzaGlraXNhaWthbmtha3VcIDsKK+i2heiDveWKm+iAhSA+IGNob3Vub3VyeW9rdXNoYVwgOwor5pyo6aOf5LiK5Lq6ID4gbW9rdWppa2lzaG91bmluXCA7CivpgKPovInlsI/oqqwgPiByZW5zYWlzaG91c2V0c3VcIDsKK+eEpueGseWcsOeNhCA+IHNob3VuZXRzdWppZ29rdVwgOwor6aqo57KX6ayG55eHID4ga290c3Vzb3Nob3VzaG91XCA7CivmtYHpgJroqLzliLggPiByeXV1dHN1dXNob3VrZW5cIDsKK+W3ruW8leWLmOWumiA+IHNhc2hpaGlraWthbmpvdVwgOwor6ZaL6IW55omL6KGTID4ga2FpZnVrdXNodWp1dHN1XCA7CivljbPml6Xlh7rojbcgPiBzb2t1aml0c3VzaHVra2FcIDsKK+agquW8j+mFjeW9kyA+IGthYnVzaGlraWhhaXRvdVwgOwor6JuN5YWJ54mp6LOqID4ga2Vpa291YnVzc2hpdHN1XCA7CivogbTopprnpZ7ntYwgPiBjaG91a2FrdXNoaW5rZWlcIDsKK+aHsuaIkuWFjeiBtyA+IGNob3VrYWltZW5zaG9rdVwgOwor56K65a6a55Sz5ZGKID4ga2FrdXRlaXNoaW5rb2t1XCA7Civogbfmpa3ou43kurogPiBzaG9rdWd5b3VndW5qaW5cIDsKK+eZveays+WknOiIuSA+IHNoaXJha2F3YXlvZnVuZVwgOwor5qCq5byP5YWs6ZaLID4ga2FidXNoaWtpa291a2FpXCA7Civlu4Pku4/mr4Dph4ggPiBoYWlidXRzdWtpc2hha3VcIDsKK+ecvOW6leWHuuihgCA+IGdhbnRlaXNodWtrZXRzdVwgOwor5L+h5Lu75oqV56WoID4gc2hpbicnbmludG91aHlvdVwgOwor6Zai6YCj6LOq5ZWPID4ga2FucmVuc2hpdHN1bW9uXCA7Civlu7rnr4nmpa3ogIUgPiBrZW5jaGlrdWd5b3VzaGFcIDsKK+WTsuWtpuWPsuimgSA+IHRldHN1Z2FrdXNoaXlvdVwgOwor55+l6K2Y55Sj5qWtID4gY2hpc2hpa2lzYW5neW91XCA7CivmtZrmuKvkvZzmpa0gPiBzaHVuc2V0c3VzYWd5b3VcIDsKK+WNuOWjsuW4guWgtCA+IG9yb3NoaXVyaXNoaWpvdVwgOwor6YCa5L+h5pWZ6IKyID4gdHN1dXNoaW5reW91aWt1XCA7CivljJfmlpfkuIPmmJ8gPiBob2t1dG9zaGljaGlzZWlcIDsKK+ato+W8j+eZuuihqCA+IHNlaXNoaWtpaGFwcHlvdVwgOwor5pq05Yqb6Z2p5ZG9ID4gYm91cnlva3VrYWt1bWVpXCA7CivlhbHnlKPkuK3lm70gPiBreW91c2FuY2h1dWdva3VcIDsKK+ajruael+mJhOmBkyA+IHNoaW5yaW50ZXRzdWRvdVwgOwor57WM5riI5Y2U5YqbID4ga2VpemFpa3lvdXJ5b2t1XCA7CivniannmoTmkI3lrrMgPiBidXRzdXRla2lzb25nYWlcIDsKK+epuuS4reeIhuaSgyA+IGt1dWNodXViYWt1Z2VraVwgOwor5bm05Lit5aSx6KiAID4gbmVuanV1c2hpdHN1Z2VuXCA7CivmraPmlrnooYzliJcgPiBzZWlob3VneW91cmV0c3VcIDsKK+iAgeiLpeeUt+WlsyA+IHJvdW55YWt1bmFuJydueW9cIDsKK+S/ruS6huiovOabuCA+IHNodXVyeW91c2hvdXNob1wgOwor5LiL562J5qSN54mpID4ga2F0b3VzaG9rdWJ1dHN1XCA7CivpoZXoirHmpI3niakgPiBrZW5rYXNob2t1YnV0c3VcIDsKK+WcsOWFg+itpuWvnyA+IGppbW90b2tlaXNhdHN1XCA7CivkuK3lm73lnLDmlrkgPiBjaHV1Z29rdWNoaWhvdVwgOwor5LiJ5qCh57WC5LqGID4gc2Fua291c2h1dXJ5b3VcIDsKK+S6uuW3peihgOa2siA+IGppbmtvdWtldHN1ZWtpXCA7CivmnInmgKfnlJ/mrpYgPiB5dXVzZWlzZWlzaG9rdVwgOwor6Yys6YeR6KGT5birID4gcmVua2luanV0c3VzaGlcIDsKK+WvvuaXpeaEn+aDhSA+IHRhaW5pY2hpa2Fuam91XCA7CivnjKXopLvmlofmm7ggPiB3YWlzZXRzdWJ1bnNob1wgOwor5Luu6KOF6KGM5YiXID4ga2Fzb3VneW91cmV0c3VcIDsKK+ato+W8puabsue3miA+IHNlaWdlbmt5b2t1c2VuXCA7CivmsqHlgIvmgKfnmoQgPiBib3RzdWtvc2VpdGVraVwgOwor54us56uL6YGL5YuVID4gZG9rdXJpdHN1dW5kb3VcIDsKK+iEseiEgueyieS5syA+IGRhc3NoaWZ1bicnbnl1dVwgOwor5Y6f5a2Q5Yqb6Ii5ID4gZ2Vuc2hpcnlva3VzZW5cIDsKK+S4ieeQg+S4ieaMryA+IHNhbmt5dXVzYW5zaGluXCA7CivpnaLnmb3ljYrliIYgPiBvbW9zaGlyb2hhbmJ1blwgOwor5ZWG6Ii55aSn5a2mID4gc2hvdXNlbmRhaWdha3VcIDsKK+WkqeWcsOS4h+eJqSA+IHRlbmNoaWJhbmJ1dHN1XCA7CivogJDnhrHlkIjph5EgPiB0YWluZXRzdWdvdWtpblwgOwor5pS/55Wl57WQ5amaID4gc2Vpcnlha3VrZWtrb25cIDsKK+eJuemrmOitpuWvnyA+IHRva2tvdWtlaXNhdHN1XCA7CivllYbmhaPnv5Lms5UgPiBzaG91a2Fuc2h1dWhvdVwgOwor5piG6Jmr5o6h6ZuGID4ga29uY2h1dXNhaXNodXVcIDsKK+S4reWbveaLs+azlSA+IGNodXVnb2t1a2VucG91XCA7Civnvo7ooZPnm6PnnaMgPiBiaWp1dHN1a2FudG9rdVwgOwor5Ymv5aSn57Wx6aCYID4gZnVrdWRhaXRvdXJ5b3VcIDsKK+eEpuaAp+ehq+mFuCA+IHNob3VzZWlyeXV1c2FuXCA7Civlkajml4vmpa3ogIUgPiBzaHV1c2VuZ3lvdXNoYVwgOwor5Y2X5Zue5biw57eaID4gbWluYW1pa2Fpa2lzZW5cIDsKK+iDjueUn+WLleeJqSA+IHRhaXNlaWRvdWJ1dHN1XCA7Civlhajlm73kuK3ntpkgPiB6ZW5rb2t1Y2h1dWtlaVwgOwor54mb5q2p5oim6KGTID4gZ3l1dWhvc2VuanV0c3VcIDsKK+eqgeaSg+maiuWToSA+IHRvdHN1Z2VraXRhaWluXCA7CivntITnmb7kuIflhoYgPiB5YWt1aHlha3VtYW5lblwgOwor5Lq65rW35oim6KGTID4gamlua2Fpc2VuanV0c3VcIDsKK+WkqeaWh+WtpueahCA+IHRlbm1vbmdha3V0ZWtpXCA7CivmgJ3moYjmipXpppYgPiBzaGlhbicnbmFnZWt1YmlcIDsKK+ijj+WPo+WWtualrSA+IHVyYWd1Y2hpZWlneW91XCA7CivkvJ3lpYflsI/oqqwgPiBkZW5raXNob3VzZXRzdVwgOwor5Lit56uL5Li7576pID4gY2h1dXJpdHN1c2h1Z2lcIDsKK+eglOeptuizh+aWmSA+IGtlbmt5dXVzaGlyeW91XCA7Civlj6TnlJ/nianlraYgPiBrb3NlaWJ1dHN1Z2FrdVwgOwor5pu055Sf5pa96KitID4ga291c2Vpc2hpc2V0c3VcIDsKK+eJh+mBk+WIh+espiA+IGthdGFtaWNoaWtpcHB1XCA7CivmjqXntprliqnoqZ4gPiBzZXRzdXpva3Vqb3NoaVwgOwor6Iux5LuP5rW35bOhID4gZWlmdXRzdWthaWt5b3VcIDsKK+eolOWun+S4jeiJryA+IG5lbmppdHN1ZnVyeW91XCA7CivlhazooYbmtbTloLQgPiBrb3VzaHV1eW9rdWpvdVwgOwor56uv5pyr6KOF572uID4gdGFubWF0c3Vzb3VjaGlcIDsKK+mnkOi7iuaWmemHkSA+IGNodXVzaGFyeW91a2luXCA7Civos4fmnKzlj5blvJUgPiBzaGlob250b3JpaGlraVwgOwor5qCq5byP55u45aC0ID4ga2FidXNoaWtpc291YmFcIDsKK+WFjeeWq+WPjeW/nCA+IG1lbicnZWtpaGFuJydub3VcIDsKK+W7uuioreS8muekviA+IGtlbnNldHN1Z2Fpc2hhXCA7CivmnKzmnKvpoZvlgJIgPiBob25tYXRzdXRlbnRvdVwgOwor5Yid5b+X6LKr5b65ID4gc2hvc2hpa2FudGV0c3VcIDsKK+eUo+alremdqeWRvSA+IHNhbmd5b3VrYWt1bWVpXCA7CivlrprlubTpgIDogbcgPiB0ZWluZW50YWlzaG9rdVwgOwor5Zu96Zqb6Kaq5ZaEID4ga29rdXNhaXNoaW56ZW5cIDsKK+aAp+agvOiouuaWrSA+IHNlaWtha3VzaGluZGFuXCA7CivlhajouqvoobDlvLEgPiB6ZW5zaGluc3VpamFrdVwgOwor5ZWP6aGM6Kej5rG6ID4gbW9uZGFpa2Fpa2V0c3VcIDsKK+WTuuS5s+WLleeJqSA+IGhvbnl1dWRvdWJ1dHN1XCA7Civos4fmnKzms6jlhaUgPiBzaGlob25jaHV1bnl1dVwgOwor5L+u5qWt5bm06ZmQID4gc2h1dWd5b3VuZW5nZW5cIDsKK+e3kee2rOikkueroCA+IHJ5b2t1anVob3VzaG91XCA7CivnoJTnqbbpoYznm64gPiBrZW5reXV1ZGFpbW9rdVwgOwor55eF5bqK5pel6KqMID4gYnlvdXNob3VuaXNzaGlcIDsKK+eul+ihk+ioiOeulyA+IHNhbmp1dHN1a2Vpc2FuXCA7CivluLDljJbmpI3niakgPiBraWthc2hva3VidXRzdVwgOwor6YeR6J6N5oGQ5oWMID4ga2luJyd5dXVreW91a291XCA7CivnibnliKXmjqrnva4gPiB0b2t1YmV0c3Vzb2NoaVwgOwor5byb5by15oyv5YuVID4gc2hpY2hvdXNoaW5kb3VcIDsKK+aIpuaIpuWFouWFoiA+IHNlbnNlbmt5b3VreW91XCA7CivoprPlhYnmlr3oqK0gPiBrYW5rb3VzaGlzZXRzdVwgOwor5ZaE55S35ZaE5aWzID4gemVuJyduYW56ZW4nJ255b1wgOwor5L+h55So6LKp5aOyID4gc2hpbicneW91aGFuYmFpXCA7CivmnKvmoqLnpZ7ntYwgPiBtYXNzaG91c2hpbmtlaVwgOwor6aqo6auE56e75qSNID4ga290c3V6dWlpc2hva3VcIDsKK+mBk+W+s+aVmeiCsiA+IGRvdXRva3VreW91aWt1XCA7Civph5Hmrr/njonmpbwgPiBraW5kZW5neW9rdXJvdVwgOwor54K55ru05rOo5bCEID4gdGVudGVraWNodXVzaGFcIDsKK+W3peWtpuS/ruWjqyA+IGtvdWdha3VzaHV1c2hpXCA7CivploDlpJbkuI3lh7ogPiBtb25nYWlmdXNodXRzdVwgOwor6YCa5L+h6KOF572uID4gdHN1dXNoaW5zb3VjaGlcIDsKK+S9nOaIpuioiOeUuyA+IHNha3VzZW5rZWlrYWt1XCA7CivloLTlpJblj5blvJUgPiBqb3VnYWl0b3JpaGlraVwgOwor5L+h6KiX6YqA6KGMID4gc2hpbnRha3VnaW5rb3VcIDsKK+Wig+eVjOiqv+aVtCA+IGt5b3VrYWljaG91c2VpXCA7CivkuLvlipvoiabpmoogPiBzaHVyeW9rdWthbnRhaVwgOwor6IG35aC055Kw5aKDID4gc2hva3ViYWthbmt5b3VcIDsKK+WJsuW8leS+oeagvCA+IHdhcmliaWtpa2FrYWt1XCA7CivmlbTlvaLmiYvooZMgPiBzZWlrZWlzaHVqdXRzdVwgOwor6YW45oCn6aOf5ZOBID4gc2Fuc2Vpc2hva3VoaW5cIDsKK+WOn+WtkOWKm+WtpiA+IGdlbnNoaXJpa2lnYWt1XCA7CivmsLTkuK3nv7zoiLkgPiBzdWljaHV1eW9rdXNlblwgOwor55m66YGU5q616ZqOID4gaGF0dGF0c3VkYW5rYWlcIDsKK+iruOiqrOe0m+e0myA+IHNob3NldHN1ZnVucHVuXCA7CivkubPphbjpo7LmlpkgPiBueXV1c2FuJydpbnJ5b3VcIDsKK+WAi+OAheWIpeWIpSA+IGtva29iZXRzdWJldHN1XCA7Civlj6PkuI3oqr/ms5UgPiBrdWNoaWJ1Y2hvdWhvdVwgOwor6LaF6Ieq54S255qEID4gY2hvdXNoaXplbnRla2lcIDsKK+WbvemYsumVt+WumCA+IGtva3Vib3VjaG91a2FuXCA7CivmraPntbHkv6HmlZkgPiBzZWl0b3VzaGlua3lvdVwgOwor5by35YyW5ZCI5a6/ID4ga3lvdWthZ2Fzc2h1a3VcIDsKK+acnemuruS6uuWPgiA+IGNob3VzZW4nJ25pbmppblwgOwor5p2f57ib5aSJ6aCFID4gc29rdWJha3VoZW5rb3VcIDsKK+elnue1jOe1hOe5lCA+IHNoaW5rZWlzb3NoaWtpXCA7CivotoXotorplqLmlbAgPiBjaG91ZXRzdWthbnN1dVwgOwor5Yq5546H5ZCR5LiKID4ga291cml0c3Vrb3Vqb3VcIDsKK+Wkp+iEs+earuizqiA+IGRhaW5vdWhpc2hpdHN1XCA7CivnlJ/kvZPlipvlraYgPiBzZWl0YWlyaWtpZ2FrdVwgOwor5bGx5LiL5YWs5ZySID4geWFtYXNoaXRha291ZW5cIDsKK+WPo+i/sOippumokyA+IGtvdWp1dHN1c2hpa2VuXCA7CivkuIDml6XniYfmmYIgPiBpY2hpbmljaGloZW5qaVwgOwor56S+5Lya55Sf5rS7ID4gc2hha2Fpc2Vpa2F0c3VcIDsKK+WHuueJiOebrumMsiA+IHNodXBhbm1va3Vyb2t1XCA7CivliKXpgJTmlK/lh7ogPiBiZXR0b3NoaXNodXRzdVwgOwor55Sz5ZGK57SN56iOID4gc2hpbmtva3Vub3V6ZWlcIDsKK+WNs+axuuijgeWIpCA+IHNva2tldHN1c2FpYmFuXCA7Civni6znq4voh6rlsIogPiBkb2t1cml0c3VqaXNvblwgOwor5ama57SE5oyH6LyqID4ga29uJyd5YWt1eXViaXdhXCA7CivooYDmtrLlh53lm7ogPiBrZXRzdWVraWd5b3Vrb1wgOwor5Ye65Yem6YCy6YCAID4gc2h1c3Nob3NoaW50YWlcIDsKK+W8k+efouWFq+W5oSA+IHl1bWl5YWhhY2hpbWFuXCA7Civorablr5/miYvluLMgPiBrZWlzYXRzdXRlY2hvdVwgOwor6IG35qWt5amm5Lq6ID4gc2hva3VneW91ZnVqaW5cIDsKK+iHs+emj+WNg+W5tCA+IHNoaWZ1a3VzZW4nJ25lblwgOwor5aSp5Zyw6ZaL6ZeiID4gdGVuY2hpa2FpYnlha3VcIDsKK+WGt+WHjemjn+WTgSA+IHJlaXRvdXNob2t1aGluXCA7Civoo5zotrPoqqzmmI4gPiBob3Nva3VzZXRzdW1laVwgOwor5L+h55So54q25oWLID4gc2hpbicneW91am91dGFpXCA7Civntbblr77mub/luqYgPiB6ZXR0YWlzaGl0c3Vkb1wgOwor5piO5piO55m955m9ID4gbWVpbWVpaGFrdWhha3VcIDsKK+i7jeWCmee4ruWwjyA+IGd1bmJpc2h1a3VzaG91XCA7CivmmrTlipvlm6Plk6EgPiBib3VyeW9rdWRhbicnaW5cIDsKK+Wkp+WtpuaVmeiCsiA+IGRhaWdha3VreW91aWt1XCA7CivnrKzkuInkurrnp7AgPiBkYWlzYW4nJ25pbnNob3VcIDsKK+awuOS4luS4reeriyA+IGVpc2VpY2h1dXJpdHN1XCA7CivnoJTnqbbpoJjln58gPiBrZW5reXV1cnlvdWlraVwgOwor5pWZ6IKy5YuF6KqeID4ga3lvdWlrdWNob2t1Z29cIDsKK+eyvuelnumanOWusyA+IHNlaXNoaW5zaG91Z2FpXCA7CivlpKnnqbrmtbfmv7YgPiB0ZW5rdXVrYWlrYXRzdVwgOwor6aOf6aSM55mC5rOVID4gc2hva3VqaXJ5b3Vob3VcIDsKK+S9nOiAheS4jeefpSA+IHNha3VzaGFzaGlyYXp1XCA7CivnlJ/mtLvmsLTmupYgPiBzZWlrYXRzdXN1aWp1blwgOwor5Y2155Sf5YuV54mpID4gcmFuc2VpZG91YnV0c3VcIDsKK+eti+iCieWKtOWDjSA+IGtpbicnbmlrdXJvdWRvdVwgOwor5Y2X5pSv6YKj5rW3ID4gbWluYW1pc2hpbmFrYWlcIDsKK+Wtpuihk+eUqOiqniA+IGdha3VqdXRzdXlvdWdvXCA7Civoh6rnhLbpo5/lk4EgPiBzaGl6ZW5zaG9rdWhpblwgOwor5ZWG5qWt57WE5ZCIID4gc2hvdWd5b3VrdW1pYWlcIDsKK+iBt+aoqeS5seeUqCA+IHNob2trZW5yYW4nJ3lvdVwgOwor5Ly06aOf5aSn6IejID4gYmFuc2hva3VkYWlqaW5cIDsKK+WyoeebruWFq+ebriA+IG9rYW1laGFjaGltb2t1XCA7CivmlqzmlrDlpYfmipwgPiB6YW5zaGlua2liYXRzdVwgOwor55u05oOF5b6E6KGMID4gY2hva3Vqb3VrZWlrb3VcIDsKK+engeeri+WtpuagoSA+IHNoaXJpdHN1Z2Fra291XCA7CivkuK3ml6Xovp7lhbggPiBjaHV1bmljaGlqaXRlblwgOwor5YiG6aGe55uu6YyyID4gYnVucnVpbW9rdXJva3VcIDsKK+WGheWIhuazjOiFuiA+IG5haWJ1bnBpdHN1c2VuXCA7CivmtLvot6/plovmi5MgPiBrYXRzdXJva2FpdGFrdVwgOwor5bmz5p2/5ris6YePID4gaGVpYmFuc29rdXJ5b3VcIDsKK+a6kOazieW+tOWPjiA+IGdlbnNlbmNob3VzaHV1XCA7CivpgJrkv6HooZvmmJ8gPiB0c3V1c2hpbicnZWlzZWlcIDsKK+a4heeul+WPluW8lSA+IHNlaXNhbnRvcmloaWtpXCA7CivnibnmrorlrabntJogPiB0b2t1c2h1Z2Fra3l1dVwgOwor5L+h55So6Kq/5p+7ID4gc2hpbicneW91Y2hvdXNhXCA7CivlhYjnianlo7LosrcgPiBzYWtpbW9ub2JhaWJhaVwgOwor5LiD6Zuj5YWr6IumID4gc2hpY2hpbmFuaGFra3VcIDsKK+inkuiGnOenu+akjSA+IGtha3VtYWt1aXNob2t1XCA7CivmlZHmgKXnl4XpmaIgPiBreXV1a3l1dWJ5b3VpblwgOwor5o6l6Kem5oSf5p+TID4gc2Vzc2hva3VrYW5zZW5cIDsKK+eojumHkeeUs+WRiiA+IHplaWtpbnNoaW5rb2t1XCA7Civntajmr6/niIbmkoMgPiBqdXV0YW5iYWt1Z2VraVwgOwor5LiD6Lui5YWr6LW3ID4gc2hpY2hpdGVuaGFra2lcIDsKK+awtOmKgOS4reavkiA+IHN1aWdpbmNodXVkb2t1XCA7CivpnLLlh7rkuI3otrMgPiByb3NodXRzdWJ1c29rdVwgOwor5bmz5LiK5Y675YWlID4gaHlvdWpvdWt5b255dXVcIDsKK+Wbveeri+WFrOWckiA+IGtva3VyaXRzdWtvdWVuXCA7Civlhaznq4vlrabmoKEgPiBrb3VyaXRzdWdha2tvdVwgOwor6YCa5L+h5ZyP5aSWID4gdHN1dXNoaW5rZW5nYWlcIDsKK+e0hOadn+aJi+W9oiA+IHlha3Vzb2t1dGVnYXRhXCA7Civlj6zpm4bku6TnirYgPiBzaG91c2h1dXJlaWpvdVwgOwor5paw5YWl56S+5ZOhID4gc2hpbicnbnl1dXNoYWluXCA7Civml6XljZfmtbflsrggPiBuaWNoaW5hbmthaWdhblwgOwor5rGO5pW05pWw5byPID4gaGFuc2Vpc3V1c2hpa2lcIDsKK+WPpOeJqeWVhuS6uiA+IGtvYnV0c3VzaG91bmluXCA7CivmrablipvlubLmuIkgPiBidXJ5b2t1a2Fuc2hvdVwgOwor5YWs6KGG6YGT5b6zID4ga291c2h1dWRvdXRva3VcIDsKK+aAquWlh+Wwj+iqrCA+IGthaWtpc2hvdXNldHN1XCA7Civnp5jlr4bmipXnpaggPiBoaW1pdHN1dG91aHlvdVwgOwor5Zyn5Yqb5a655ZmoID4gYXRzdXJ5b2t1eW91a2lcIDsKK+WCjeebruWFq+ebriA+IG9rYW1laGFjaGltb2t1XCA7CivmsYLlqZrluoPlkYogPiBreXV1a29ua291a29rdVwgOwor5b+D5Zug5Y+N5b+cID4gc2hpbicnaW5oYW4nJ25vdVwgOwor6bqm6JeB5bi95a2QID4gbXVnaXdhcmFib3VzaGlcIDsKK+e0jeeojueUs+WRiiA+IG5vdXplaXNoaW5rb2t1XCA7Civlj43lr77np7DnmoQgPiBoYW50YWlzaG91dGVraVwgOwor5L2P5Y+L6YqA6KGMID4gc3VtaXRvbW9naW5rb3VcIDsKK+WHuuaJgOmAsumAgCA+IHNodXNzaG9zaGludGFpXCA7CivlsLHmpa3kurrlj6MgPiBzaHV1Z3lvdWppbmtvdVwgOwor5YWo5Yud5YSq5YudID4gemVuc2hvdXl1dXNob3VcIDsKK+W7uuioreWkp+iHoyA+IGtlbnNldHN1ZGFpamluXCA7CivpnZ7oia/lv4PnmoQgPiBoaXJ5b3VzaGludGVraVwgOwor57W25a++5b+F6KaBID4gemV0dGFpaGl0c3V5b3VcIDsKK+ibuOi2s+mFjee3miA+IHRha29hc2hpaGFpc2VuXCA7Civlt6Xmpa3lpKflraYgPiBrb3VneW91ZGFpZ2FrdVwgOwor6YeR5aOx5LiH5YaGID4ga2luJydpY2hpbWFuJydlblwgOwor5peF5a6i5YiX6LuKID4gcnlva3lha3VyZXNzaGFcIDsKK+eri+S8mua8lOiqrCA+IHRhY2hpYWllbnpldHN1XCA7Civlpajlrabos4fph5EgPiBzaG91Z2FrdXNoaWtpblwgOwor54++6YeR5Y+O5YWlID4gZ2Vua2luc2h1dW55dXVcIDsKK+Wtpuihk+S8muitsCA+IGdha3VqdXRzdWthaWdpXCA7Civms5XlvovllY/poYwgPiBob3VyaXRzdW1vbmRhaVwgOwor55u06YCa6Zu76KmxID4gY2hva3V0c3V1ZGVud2FcIDsKK+WPsOaJgOmBk+WFtyA+IGRhaWRva29yb2RvdWd1XCA7Civpm7vmupDkvpvntaYgPiBkZW5nZW5reW91a3l1dVwgOwor5YGc5bm06YCA6IG3ID4gdGVpbmVudGFpc2hva3VcIDsKK+awtOmZuOS4oeeUqCA+IHN1aXJpa3VyeW91eW91XCA7CivpgJrkv6HmiYvmrrUgPiB0c3V1c2hpbnNodWRhblwgOwor5LiL6KuL5Lya56S+ID4gc2hpdGF1a2VnYWlzaGFcIDsKK+esrOS4gOS6uuensCA+IGRhaWljaGluaW5zaG91XCA7CivlrabmrbTnpL7kvJogPiBnYWt1cmVraXNoYWthaVwgOwor5ryU5aWP5puy55uuID4gZW5zb3VreW9rdW1va3VcIDsKK+aAneaDs+itpuWvnyA+IHNoaXNvdWtlaXNhdHN1XCA7Civlhaznm4ros6rlsYsgPiBrb3Vla2lzaGljaGl5YVwgOwor5YGV6ICB5ZCM56m0ID4ga2Fpcm91ZG91a2V0c3VcIDsKK+WBpeW6t+mjn+WTgSA+IGtlbmtvdXNob2t1aGluXCA7Civmir3osaHlkI3oqZ4gPiBjaHV1c2hvdW1laXNoaVwgOwor5bCP5LmX5LuP5pWZID4gc2hvdWpvdWJ1a2t5b3VcIDsKK+WQiOebrueahOaApyA+IGdvdW1va3V0ZWtpc2VpXCA7Civpm7vlipvkvJrnpL4gPiBkZW5yeW9rdWdhaXNoYVwgOwor5rW35rSL6ZaL55m6ID4ga2FpeW91a2FpaGF0c3VcIDsKK+e0sOiDnuWIhuijgiA+IHNhaWJvdWJ1bnJldHN1XCA7CivmgKXooYzmlpnph5EgPiBreXV1a291cnlvdWtpblwgOwor5LiB5LiB55m65q2iID4gY2hvdWNob3VoYXNzaGlcIDsKK+aVmeiBt+iqsueoiyA+IGt5b3VzaG9rdWthdGVpXCA7Civlh7rniYjmpa3ogIUgPiBzaHVwcGFuZ3lvdXNoYVwgOwor5bCx6IG36YGL5YuVID4gc2h1dXNob2t1dW5kb3VcIDsKK+eVpeWlquihjOeCuiA+IHJ5YWt1ZGF0c3Vrb3VpXCA7CivnkIbpnZ7mm7Lnm7QgPiByaWhpa3lva3VjaG9rdVwgOwor5Yil5YaK5LuY6YyyID4gYmVzc2F0c3VmdXJva3VcIDsKK+S4ieaoqeWIhueriyA+IHNhbmtlbmJ1bnJpdHN1XCA7CivlhbHlkIznoJTnqbYgPiBreW91ZG91a2Vua3l1dVwgOwor5paw5YiK57S55LuLID4gc2hpbmthbnNob3VrYWlcIDsKK+ajn+WJsumVt+WxiyA+IG11bmV3YXJpbmFnYXlhXCA7Civkv67lpb3mnaHntIQgPiBzaHV1a291am91eWFrdVwgOwor5Yag54q25YuV6ISIID4ga2Fuam91ZG91bXlha3VcIDsKK+epuuepuua8oOa8oCA+IGt1dWt1dWJha3ViYWt1XCA7CivmgqrmgKfosqfooYAgPiBha3VzZWloaW5rZXRzdVwgOwor5LyR5oim5Y2U5a6aID4ga3l1dXNlbmt5b3V0ZWlcIDsKK+elnue1jOihsOW8sSA+IHNoaW5rZWlzdWlqYWt1XCA7Civlm57mipjmoLzlrZAgPiBrYWlzZXRzdWtvdXNoaVwgOwor5YWI5rG65ZWP6aGMID4gc2Vua2V0c3Vtb25kYWlcIDsKK+WwsealreaXpeaVsCA+IHNodXVneW91bmlzc3V1XCA7Civlrp/pqJPli5XniakgPiBqaWtrZW5kb3VidXRzdVwgOwor5b+g5ZCb5oSb5Zu9ID4gY2h1dWt1bicnYWlrb2t1XCA7CivmsYLkurrluoPlkYogPiBreXV1amlua291a29rdVwgOwor54us56uL54us5q2pID4gZG9rdXJpdHN1ZG9wcG9cIDsKK+iruOiqrOe0m+OAhSA+IHNob3NldHN1ZnVucHVuXCA7CivmnInlrrPpo5/lk4EgPiB5dXVnYWlzaG9rdWhpblwgOwor6bq76Jas5Lit5q+SID4gbWF5YWt1Y2h1dWRva3VcIDsKK+mHkeWxnuW3pealrSA+IGtpbnpva3Vrb3VneW91XCA7Civljbjlo7LniankvqEgPiBvcm9zaGl1cmlidWtrYVwgOwor5YWx5ZCM5Ye66LOHID4ga3lvdWRvdXNodXNzaGlcIDsKK+eLrei7jOmJhOmBkyA+IGt5b3VraXRldHN1ZG91XCA7CivllYbmpa3miYvlvaIgPiBzaG91Z3lvdXRlZ2F0YVwgOwor6YO15L6/6YWN6YGUID4geXV1YmluaGFpdGF0c3VcIDsKK+a4r+a5vuW9k+WxgCA+IGtvdXdhbnRvdWt5b2t1XCA7CivllYbmpa3pioDooYwgPiBzaG91Z3lvdWdpbmtvdVwgOwor55yB55Wl6KiY5Y+3ID4gc2hvdXJ5YWt1a2lnb3VcIDsKK+S4remWk+WgseWRiiA+IGNodXVrYW5ob3Vrb2t1XCA7CivkuK3lv4PmgJ3mg7MgPiBjaHV1c2hpbnNoaXNvdVwgOwor5LqU5pyI5Lq65b2iID4gZ29nYXRzdW5pbmd5b3VcIDsKK+S8neaJv+aWh+WtpiA+IGRlbnNob3VidW5nYWt1XCA7Civou5/kvZPli5XniakgPiBuYW50YWlkb3VidXRzdVwgOwor5by35Yi25Y+O5a65ID4ga3lvdXNlaXNodXV5b3VcIDsKK+S4gOmZveadpeiFuSA+IGljaGl5b3VyYWlmdWt1XCA7CivmvIHmpa3ljZTlrpogPiBneW9neW91a3lvdXRlaVwgOwor5rC055Sf5YuV54mpID4gc3Vpc2VpZG91YnV0c3VcIDsKK+allOW9ouaWh+WtlyA+IGt1c2FiaWdhdGFtb2ppXCA7Civkv6HnlKjntYTlkIggPiBzaGluJyd5b3VrdW1pYWlcIDsKK+eglOeptuWgseWRiiA+IGtlbmt5dXVob3Vrb2t1XCA7CivmsLTlpKnlvbflvb8gPiBzdWl0ZW5ob3VmdXRzdVwgOwor5L2P5a6F55Sj5qWtID4ganV1dGFrdXNhbmd5b3VcIDsKK+azoeayq+S8muekviA+IGhvdW1hdHN1Z2Fpc2hhXCA7Civoq4foq5bpoqjnmbogPiBkYW5yb25mdXVoYXRzdVwgOwor5YWI55m65oqV5omLID4gc2VucGF0c3V0b3VzaHVcIDsKK+aOqOeQhuWwj+iqrCA+IHN1aXJpc2hvdXNldHN1XCA7CivntLPlo6vljZTlrpogPiBzaGluc2hpa3lvdXRlaVwgOwor5aSn5ZCN5bGL5pW3ID4gZGFpbXlvdXlhc2hpa2lcIDsKK+eJueeVsOS9k+izqiA+IHRva3VpdGFpc2hpdHN1XCA7CivkuK3plpPmkL7lj5YgPiBjaHV1a2Fuc2FrdXNodVwgOwor5Y2U6Kq/5L2c5qWtID4ga3lvdWNob3VzYWd5b3VcIDsKK+aMh+Wcp+eZguazlSA+IHNoaWF0c3VyeW91aG91XCA7Civlt6Xmpa3mioDooZMgPiBrb3VneW91Z2lqdXRzdVwgOwor57eP5ZCI6Iq46KGTID4gc291Z291Z2VpanV0c3VcIDsKK+S4reeUo+majue0miA+IGNodXVzYW5rYWlreXV1XCA7CivljZfljYHlrZfmmJ8gPiBtaW5hbWlqdXVqaXNlaVwgOwor5b+D6ZyK5omL6KGTID4gc2hpbnJlaXRlanV0c3VcIDsKK+aIkOmVt+eUo+alrSA+IHNlaWNob3VzYW5neW91XCA7Civlm73pmpvlj47mlK8gPiBrb2t1c2Fpc2h1dXNoaVwgOwor5Y6a55Sf5pa96KitID4ga291c2Vpc2hpc2V0c3VcIDsKK+S4iumZuOS9nOaIpiA+IGpvdXJpa3VzYWt1c2VuXCA7Civli5Xlipvos4fmupAgPiBkb3VyeW9rdXNoaWdlblwgOwor5b+F6KaB5p2h5Lu2ID4gaGl0c3V5b3Vqb3VrZW5cIDsKK+S4rea1geaEj+itmCA+IGNodXVyeXV1aXNoaWtpXCA7Civlh7rmvIHljLrln58gPiBzaHV0c3VneW9rdWlraVwgOwor6LKh5b2i6LKv6JOEID4gemFpa2VpY2hvY2hpa3VcIDsKK+iBt+S6uuawl+izqiA+IHNob2t1bmlua2F0YWdpXCA7CivljZjkvY3ooYzliJcgPiB0YW4nJ2lneW91cmV0c3VcIDsKK+WbvemAo+aGsueroCA+IGtva3VyZW5rZW5zaG91XCA7CivmsLTlhYjmoYjlhoUgPiBtaXp1c2FraWFuJyduYWlcIDsKK+WPjuWuueioreWCmSA+IHNodXV5b3VzZXRzdWJpXCA7Civmt7HmtbfmvIHmpa0gPiBzaGlua2FpZ3lvZ3lvdVwgOwor55u05b6A6YKB6YCyID4gY2hva3VvdW1haXNoaW5cIDsKK+WkqeS9k+WKm+WtpiA+IHRlbnRhaXJpa2lnYWt1XCA7CivnnJ/nqbrpm7vnkIMgPiBzaGlua3V1ZGVua3l1dVwgOwor5LiK5bGk5bu656+JID4gam91c291a2VuY2hpa3VcIDsKK+W9ueiBt+aJi+W9kyA+IHlha3VzaG9rdXRlYXRlXCA7Civpq5jlnKfpm7vmtYEgPiBrb3VhdHN1ZGVucnl1dVwgOwor5Lqk6YCa6YGT5b6zID4ga291dHN1dWRvdXRva3VcIDsKK+awtOa6lua4rOmHjyA+IHN1aWp1bnNva3VyeW91XCA7CivlvIHoqLzms5XnmoQgPiBiZW5zaG91aG91dGVraVwgOwor5p2+6Iy45b6h6aOvID4gbWF0c3V0YWtlZ29oYW5cIDsKK+mWoueojumanOWjgSA+IGthbnplaXNob3VoZWtpXCA7CivntbHmi6zpg6jplbcgPiB0b3VrYXRzdWJ1Y2hvdVwgOwor5pCN5aSx6KOc5aGrID4gc29uc2hpdHN1aG90ZW5cIDsKK+S6i+S6i+eJqeeJqSA+IGppamlidXRzdWJ1dHN1XCA7CivmiKbjgIXmgZDjgIUgPiBzZW5zZW5reW91a3lvdVwgOwor6YCj57aa5YaZ55yfID4gcmVuem9rdXNoYXNoaW5cIDsKK+Wbm+eZvuS9meW3niA+IHNoaWh5YWt1eW9zaHV1XCA7CivkuIDpmb3mnaXlvqkgPiBpY2hpeW91cmFpZnVrdVwgOwor5b+D562L5qKX5aGeID4gc2hpbmtpbmtvdXNva3VcIDsKK+Wul+aVmeijgeWIpCA+IHNodXVreW91c2FpYmFuXCA7CivlhpnnnJ/nn7PniYggPiBzaGFzaGluc2VraWJhblwgOwor6Zqg6Iqx5qSN54mpID4gaW5rYXNob2t1YnV0c3VcIDsKK+W+rueUn+eJqeWtpiA+IGJpc2VpYnV0c3VnYWt1XCA7CivmiKbnlaXnqbrou40gPiBzZW5yeWFrdWt1dWd1blwgOwor5oGt6LOA5paw5bm0ID4ga3lvdWdhc2hpbicnbmVuXCA7Civlm73pmpvljZTlrpogPiBrb2t1c2Fpa3lvdXRlaVwgOwor6Imy5Y2z5piv56m6ID4gc2hpa2lzb2t1emVrdXVcIDsKK+mgreWvkui2s+eGsSA+IHp1a2Fuc29rdW5ldHN1XCA7CivljLrmpJzlr5/luoEgPiBrdWtlbnNhdHN1Y2hvdVwgOwor5qC46Ziy6KGb5YqbID4ga2FrdWJvdWVpcnlva3VcIDsKK+WujOWFqOeHg+eEvCA+IGthbnplbicnbmVuc2hvdVwgOwor6YeN6YeP5oSf6KaaID4ganV1cnlvdWthbmtha3VcIDsKK+mbjOmbhOmRkeWIpSA+IHNoaXl1dWthbmJldHN1XCA7Civljp/nlJ/li5XniakgPiBnZW5zZWlkb3VidXRzdVwgOwor55uu55qE5oSP6K2YID4gbW9rdXRla2lpc2hpa2lcIDsKK+a1t+eUn+WLleeJqSA+IGthaXNlaWRvdWJ1dHN1XCA7CivmlLvmkoPnsr7npZ4gPiBrb3VnZWtpc2Vpc2hpblwgOwor5L2c5oiQ5oqA6KGTID4gc2FrdXNlaWdpanV0c3VcIDsKK+mHkemKreS/oeiolyA+IGtpbnNlbnNoaW50YWt1XCA7CivlkLjlj47lkIjkvbUgPiBreXV1c2h1dWdhcHBlaVwgOwor5o+b6aqo5aWq6IOOID4ga2Fua290c3VkYXR0YWlcIDsKK+ehrOizqumZtuWZqCA+IGtvdXNoaXRzdXRvdWtpXCA7Civlr53lj7Dmlpnph5EgPiBzaGluZGFpcnlvdWtpblwgOwor6LO85YWl5rOo5paHID4ga291bnl1dWNodXVtb25cIDsKK+eEpuWcn+aIpuihkyA+IHNob3Vkb3Nlbmp1dHN1XCA7CivmnInogbfmlYXlrp8gPiB5dXVzb2t1a29qaXRzdVwgOwor54Sh5YSf5L+h6KiXID4gbXVzaG91c2hpbnRha3VcIDsKK+a2iOiyu+eUn+a0uyA+IHNob3VoaXNlaWthdHN1XCA7CivlrqTlhoXpgYrmiK8gPiBzaGl0c3VuYWl5dXVnaVwgOwor5a6X5pWZ5Zuj5L2TID4gc2h1dWt5b3VkYW50YWlcIDsKK+mAsuihjOeKtuazgSA+IHNoaW5rb3Vqb3VreW91XCA7Civpq5jnrYnli5XniakgPiBrb3V0b3Vkb3VidXRzdVwgOwor5LiA6Iaz6aOv5bGLID4gaWNoaXplbm1lc2hpeWFcIDsKK+aZguS7o+Wwj+iqrCA+IGppZGFpc2hvdXNldHN1XCA7Civmm7Lnt5rluqfmqJkgPiBreW9rdXNlbnphaHlvdVwgOwor5b2T6Kmy5Lq654mpID4gdG91Z2FpamluYnV0c3VcIDsKK+imgeaxgumAgeS/oSA+IHlvdWt5dXVzb3VzaGluXCA7Civnmb7kurrkuIDpppYgPiBoeWFrdW5pbicnaXNzaHVcIDsKK+mbhuWbo+aknOiouiA+IHNodXVkYW5rZW5zaGluXCA7Civlronlr6fnp6nluo8gPiBhbicnbmVpY2hpdHN1am9cIDsKK+altealvemzpeiKsSA+IGdva3VyYWt1Y2hvdWthXCA7CivkuK3otorntJvkuokgPiBjaHV1ZXRzdWZ1bnNvdVwgOwor5LiA5ous6LO85YWlID4gaWtrYXRzdWtvdW55dXVcIDsKK+awkeaXj+iHquaxuiA+IG1pbnpva3VqaWtldHN1XCA7CivmraPpnaLmlLvmkoMgPiBzaG91bWVua291Z2VraVwgOwor5pWZ6IKy55Sj5qWtID4ga3lvdWlrdXNhbmd5b3VcIDsKK+epuuiqv+ioreWCmSA+IGt1dWNob3VzZXRzdWJpXCA7CivljZjni6zlhoXplqMgPiB0YW5kb2t1bmFpa2FrdVwgOwor5pWZ6IKy5a6f57+SID4ga3lvdWlrdWppc3NodXVcIDsKK+Wwsealreimj+WJhyA+IHNodXVneW91a2lzb2t1XCA7CivmlZnppIrnlarntYQgPiBreW91eW91YmFuZ3VtaVwgOwor5YeN57WQ6LOH55SjID4gdG91a2V0c3VzaGlzYW5cIDsKK+mbhuWbo+i+suWgtCA+IHNodXVkYW4nJ25vdWpvdVwgOwor5ZGo6L666Ku45Zu9ID4gc2h1dWhlbnNob2tva3VcIDsKK+WbveexjeadoemghSA+IGtva3VzZWtpam91a291XCA7Civnj77nianntabkuI4gPiBnZW5idXRzdWt5dXV5b1wgOwor6LGq6Zuq5Zyw5bivID4gZ291c2V0c3VjaGl0YWlcIDsKK+a1t+WNg+WxseWNgyA+IHVtaXNlbicneWFtYXNlblwgOwor6Z2p5paw5pS/5YWaID4ga2FrdXNoaW5zZWl0b3VcIDsKK+WwkeaVsOawkeaXjyA+IHNob3VzdXVtaW56b2t1XCA7CivlirTlg43ljZTntIQgPiByb3Vkb3VreW91eWFrdVwgOwor6Zu75pKD5L2c5oimID4gZGVuZ2VraXNha3VzZW5cIDsKK+S4g+mhm+WFq+i1tyA+IHNoaWNoaXRlbmhha2tpXCA7CivohIrpq4TnpZ7ntYwgPiBzZWtpenVpc2hpbmtlaVwgOwor576O6KGT5aSn5a2mID4gYmlqdXRzdWRhaWdha3VcIDsKK+mBuOaKnumgheebriA+IHNlbnRha3Vrb3Vtb2t1XCA7CivplpPmjqXpgbjmjJkgPiBrYW5zZXRzdXNlbmt5b1wgOwor6LKd5q676L+95pS+ID4ga2FpZ2FyYXRzdWlob3VcIDsKK+e+pOeZuuWcsOmchyA+IGd1bnBhdHN1amlzaGluXCA7Civnt4ropIzkuIDnlaogPiBraW5rb24nJ2ljaGliYW5cIDsKK+eLrOi6q+iytOaXjyA+IGRva3VzaGlua2l6b2t1XCA7Civnp5Hlrabnn6XorZggPiBrYWdha3VjaGlzaGlraVwgOwor55+z6YOo6YeR5ZCJID4gaXNoaWJla2lua2ljaGlcIDsKK+iKsemzpemiqOaciCA+IGthY2hvdWZ1dWdldHN1XCA7Civmj5Dlh7rmnJ/pmZAgPiB0ZWlzaHV0c3VraWdlblwgOwor5aSp6ZW35Zyw5LmFID4gdGVuY2hvdWNoaWt5dXVcIDsKK+eZvuS4h+mVt+iAhSA+IGh5YWt1bWFuY2hvdWphXCA7Civlr77nl4fnmYLms5UgPiB0YWlzaG91cnlvdWhvdVwgOwor5Lit5p6i56We57WMID4gY2h1dXN1dXNoaW5rZWlcIDsKK+WVhuW3pealreiAhSA+IHNob3Vrb3VneW91c2hhXCA7CivplovnpajpgJ/loLEgPiBrYWloeW91c29rdWhvdVwgOwor5oCn55qE6KGd5YuVID4gc2VpdGVraXNob3Vkb3VcIDsKK+eJueauiuaSruW9sSA+IHRva3VzaHVzYXRzdWVpXCA7CivovLjlh7rmiYvlvaIgPiB5dXNodXRzdXRlZ2F0YVwgOwor5Y+y5paZ6aSo5a2mID4gc2hpcnlvdWthbmdha3VcIDsKK+epuuS4realvOmWoyA+IGt1dWNodXVyb3VrYWt1XCA7CivlsJHlubTmloflraYgPiBzaG91bmVuYnVuZ2FrdVwgOwor6Kq/5pW05pS75pKDID4gY2hvdXNlaWtvdWdla2lcIDsKK+eyvuelnuW5tOm9oiA+IHNlaXNoaW4nJ25lbnJlaVwgOwor5bGF5Lit6Kq/5YGcID4ga3lvY2h1dWNob3V0ZWlcIDsKK+eojuWIpeS+oeagvCA+IHplaWJldHN1a2FrYWt1XCA7Civou43kurrnlJ/mtLsgPiBndW5qaW5zZWlrYXRzdVwgOwor55qH5a6u6K2m5a+fID4ga291Z3V1a2Vpc2F0c3VcIDsKK+eykuOAhei+m+iLpiA+IHJ5dXVyeXV1c2hpbmt1XCA7CivmnbHkuqzlpKflraYgPiB0b3VreW91ZGFpZ2FrdVwgOwor6IiI5ZGz5rSl5rSlID4ga3lvdW1pc2hpbnNoaW5cIDsKK+WNg+WuouS4h+adpSA+IHNlbmt5YWt1YmFucmFpXCA7CivpgbjmipzoqabpqJMgPiBzZW5iYXRzdXNoaWtlblwgOwor6Iiq6Lev5qiZ6K2YID4ga291cm9oeW91c2hpa2lcIDsKK+e3iuaApeeZuumAsiA+IGtpbmt5dXVoYXNzaGluXCA7CivnqbrkuK3lhpnnnJ8gPiBrdXVjaHV1c2hhc2hpblwgOwor5Za25qWt5rS75YuVID4gZWlneW91a2F0c3Vkb3VcIDsKK+aVkeaPtOa0u+WLlSA+IGt5dXVlbmthdHN1ZG91XCA7CivlpKnnhLbnoZ3lrZAgPiB0ZW4nJ25lbnNob3VzaGlcIDsKK+S/oeiol+izh+mHkSA+IHNoaW50YWt1c2hpa2luXCA7CivluILmsJHnlJ/mtLsgPiBzaGltaW5zZWlrYXRzdVwgOwor57W25a++5qip5YqbID4gemV0dGFpa2Vucnlva3VcIDsKK+WRqOeroOeLvOeLvSA+IHNodXVzaG91cm91YmFpXCA7CivmsJHml4/lrabogIUgPiBtaW56b2t1Z2FrdXNoYVwgOwor6Iag552A54q25oWLID4ga291Y2hha3Vqb3V0YWlcIDsKK+mdouaOpeippumokyA+IG1lbnNldHN1c2hpa2VuXCA7CivmlL/nrZbljZTlrpogPiBzZWlzYWt1a3lvdXRlaVwgOwor6LKp5aOy5oim55WlID4gaGFuYmFpc2Vucnlha3VcIDsKK+WFrOioreW4guWgtCA+IGtvdXNldHN1aWNoaWJhXCA7CivkurrnianntYzmuIggPiBqaW5idXRzdWtlaXphaVwgOwor5b+D55qE54q25oWLID4gc2hpbnRla2lqb3V0YWlcIDsKK+S4mOmZteWcsOW4ryA+IGt5dXVyeW91Y2hpdGFpXCA7CivnlJ/mtq/mlZnogrIgPiBzaG91Z2Fpa3lvdWlrdVwgOwor5pen57SE5YWo5pu4ID4ga3l1dXlha3V6ZW5zaG9cIDsKK+Wkp+agueW9ueiAhSA+IGRhaWtvbicneWFrdXNoYVwgOwor5LiH5bm05paw6YCgID4gbWFuJyduZW5zaGluem91XCA7CivluqfpqqjnpZ7ntYwgPiB6YWtvdHN1c2hpbmtlaVwgOwor6ZW36ICB5pWZ5LyaID4gY2hvdXJvdWt5b3VrYWlcIDsKK+iyr+iThOWCteWIuCA+IGNob2NoaWt1c2Fpa2VuXCA7Civmrablipvku4vlhaUgPiBidXJ5b2t1a2Fpbnl1dVwgOwor57K+5a+G56eR5a2mID4gc2VpbWl0c3VrYWdha3VcIDsKK+engemJhOe3j+mAoyA+IHNoaXRldHN1c291cmVuXCA7CivkvJ3pgIHntYLkuoYgPiBkZW5zb3VzaHV1cnlvdVwgOwor6Jar6JK45raI5q+SID4ga3Vuam91c2hvdWRva3VcIDsKK+m6pueoiOW4veWtkCA+IG11Z2l3YXJhYm91c2hpXCA7Civms5Xlvovnm7joq4cgPiBob3VyaXRzdXNvdWRhblwgOwor5Zyw5Z+f6ZaL55m6ID4gY2hpaWtpa2FpaGF0c3VcIDsKK+WbveWGheeUo+alrSA+IGtva3VuYWlzYW5neW91XCA7CivkuIDmiZPpgIbou6IgPiBpY2hpZGFneWFrdXRlblwgOwor5rC055Sf55Sf54mpID4gc3Vpc2Vpc2VpYnV0c3VcIDsKK+aciee3mumAmuS/oSA+IHl1dXNlbnRzdXVzaGluXCA7Civotbfmib/ou6LntZAgPiBraXNob3V0ZW5rZXRzdVwgOwor54mp6LOq5Li7576pID4gYnVzc2hpdHN1c2h1Z2lcIDsKK+S/oeiol+S8muekviA+IHNoaW50YWt1Z2Fpc2hhXCA7CivkuK3plpPllYbkurogPiBjaHV1a2Fuc2hvdW5pblwgOwor6Z2Z6Zu75a656YePID4gc2VpZGVuJyd5b3VyeW91XCA7CivkuK3mtYHnpL7kvJogPiBjaHV1cnl1dXNoYWthaVwgOwor56eB56uL5o6i5YG1ID4gc2hpcml0c3V0YW50ZWlcIDsKK+WbveawkeaKleelqCA+IGtva3VtaW50b3VoeW91XCA7CivmnInnvarliKTmsbogPiB5dXV6YWloYW5rZXRzdVwgOwor5by35YyW6aOf5ZOBID4ga3lvdWthc2hva3VoaW5cIDsKK+S8uOe4ruiHquWcqCA+IHNoaW5zaHVrdWppemFpXCA7Civpmbjou43lpKflraYgPiByaWt1Z3VuZGFpZ2FrdVwgOwor6YCa5L+h6YCf5bqmID4gdHN1dXNoaW5zb2t1ZG9cIDsKK+m7kumHkeWJm+efsyA+IGt1cm9rb25nb3VzZWtpXCA7CivkuK3lm73kurrooZcgPiBjaHV1Z29rdWppbmdhaVwgOwor5a2m6Iq45aSn5a2mID4gZ2FrdWdlaWRhaWdha3VcIDsKK+Wkp+ays+Wwj+iqrCA+IHRhaWdhc2hvdXNldHN1XCA7CivpiYTpgZPkvJrnpL4gPiB0ZXRzdWRvdWdhaXNoYVwgOwor6Z+z5qW95b2i5byPID4gb25nYWt1a2Vpc2hpa2lcIDsKK+aAp+agvOWIhuaekCA+IHNlaWtha3VidW5zZWtpXCA7Civnj77ph5Hmm7jnlZkgPiBnZW5raW5rYWtpdG9tZVwgOwor5LyR5oim5p2h57SEID4ga3l1dXNlbmpvdXlha3VcIDsKK+S6jOi2s+WLleeJqSA+IG5pc29rdWRvdWJ1dHN1XCA7Civlv4PnkIblrabnmoQgPiBzaGlucmlnYWt1dGVraVwgOwor5L6D44CF6Kuk6KukID4ga2Fua2FuZ2FrdWdha3VcIDsKK+ebtOe3mumBi+WLlSA+IGNob2t1c2VuJyd1bmRvdVwgOwor5oKq5b6z5paw6IGeID4gYWt1dG9rdXNoaW5idW5cIDsKK+acquaxuuaLmOeVmSA+IG1pa2V0c3Vrb3VyeXV1XCA7Civlrprph4/liIbmnpAgPiB0ZWlyeW91YnVuc2VraVwgOwor57SZ5bGR5ZCM54S2ID4ga2FtaWt1enVkb3V6ZW5cIDsKK+a4qeWupOagveWfuSA+IG9uc2hpdHN1c2FpYmFpXCA7Civph53lsI/mo5LlpKcgPiBzaGluc2hvdWJvdWRhaVwgOwor5aSq5YiA5LqM6IWwID4gdGFjaGlmdXRha29zaGlcIDsKK+iqjeitmOS4jei2syA+IG5pbnNoaWtpYnVzb2t1XCA7Civlm6PkvZPljZTntIQgPiBkYW50YWlreW91eWFrdVwgOwor5oim44CF5YWi44CFID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+S/oemgvOWbnuW+qSA+IHNoaW5yYWlrYWlmdWt1XCA7Civkv67lrabml4XooYwgPiBzaHV1Z2FrdXJ5b2tvdVwgOwor6Zu75rqQ6ZaL55m6ID4gZGVuZ2Vua2FpaGF0c3VcIDsKK+aooeW8j+aomeacrCA+IG1vc2hpa2loeW91aG9uXCA7Civov73ot6Hoqr/mn7sgPiB0c3Vpc2VraWNob3VzYVwgOwor5Ymy5byV5omL5b2iID4gd2FyaWJpa2l0ZWdhdGFcIDsKK+ebtOa1geWbnui3ryA+IGNob2t1cnl1dWthaXJvXCA7CivoiIjooYzmiJDnuL4gPiBrb3VneW91c2Vpc2VraVwgOwor5YyX5rSL5ryB5qWtID4gaG9rdXlvdWd5b2d5b3VcIDsKK+WbveaWh+WtpuWPsiA+IGtva3VidW5nYWt1c2hpXCA7CivmsLjkuYXohLHmr5sgPiBlaWt5dXVkYXRzdW1vdVwgOwor5o6S5Ye65Z+65rqWID4gaGFpc2h1dHN1a2lqdW5cIDsKK+e1hOiBt+aUuemdqSA+IHNvc2hva3VrYWlrYWt1XCA7CivpgY7lpLHoh7TmrbsgPiBrYXNoaXRzdWNoaXNoaVwgOwor5Lqk6YCa5L+h5Y+3ID4ga291dHN1dXNoaW5nb3VcIDsKK+WLleeJqeWun+mokyA+IGRvdWJ1dHN1amlra2VuXCA7CivmsLTkuIrorablr58gPiBzdWlqb3VrZWlzYXRzdVwgOwor5Yq05L2c5pWZ6IKyID4gcm91c2FrdWt5b3Vpa3VcIDsKK+aguOW7g+ajhOeJqSA+IGtha3VoYWlraWJ1dHN1XCA7Civpjq7prYLmm7LmrYwgPiBjaGlua29ua3lva3VrYVwgOwor6Z2e6YmE6YeR5bGeID4gaGl0ZXRzdWtpbnpva3VcIDsKK+S4ieeZvuS7o+iogCA+IHNhbmJ5YWt1ZGFpZ2VuXCA7CivkuK3lm73kvJ3mnaUgPiBjaHV1Z29rdWRlbnJhaVwgOwor562L54Sh5Yqb55eHID4ga2lubXVyeW9rdXNob3VcIDsKK+a1gemAmuizh+acrCA+IHJ5dXV0c3V1c2hpaG9uXCA7CivnqbrljbPmmK/oibIgPiBrdXVzb2t1emVzaGlraVwgOwor5pWZ6IKy5pS56Z2pID4ga3lvdWlrdWthaWtha3VcIDsKK+WIh+mWi+aJi+ihkyA+IHNla2thaXNodWp1dHN1XCA7CivmlZHorbfmtLvli5UgPiBreXV1Z29rYXRzdWRvdVwgOwor5a6j5Lyd5rS75YuVID4gc2VuZGVua2F0c3Vkb3VcIDsKK+iyoeeUo+ebrumMsiA+IHphaXNhbm1va3Vyb2t1XCA7CivmraPluLjntYLkuoYgPiBzZWlqb3VzaHV1cnlvdVwgOwor5Lqh5ZG955Sf5rS7ID4gYm91bWVpc2Vpa2F0c3VcIDsKK+WEqui2iuikh+WQiCA+IHl1dWV0c3VmdWt1Z291XCA7CivntJTml6XmnKzlvI8gPiBqdW4nJ25paG9uc2hpa2lcIDsKK+aJi+W9ouWJsuW8lSA+IHRlZ2F0YXdhcmliaWtpXCA7Civli5XnianltIfmi50gPiBkb3VidXRzdXN1dWhhaVwgOwor5YWx5ZCM5L2P5a6FID4ga3lvdWRvdWp1dXRha3VcIDsKK+acieiii+WLleeJqSA+IHl1dXRhaWRvdWJ1dHN1XCA7CivooovlsI/ot6/mlocgPiBmdWt1cm9rb3VqaWJ1blwgOwor55m956CC6Z2S5p2+ID4gaGFrdXNoYXNlaXNob3VcIDsKK+iKseWrgeW+oeWvriA+IGhhbmF5b21lZ29yeW91XCA7CivmlrDpmbPku6PorJ0gPiBzaGluY2hpbnRhaXNoYVwgOwor5LiA5YWt6YqA6KGMID4gaWNoaXJva3VnaW5rb3VcIDsKK+WwseiBt+aWoeaXiyA+IHNodXVzaG9rdWFzc2VuXCA7Civpnq3mr5vomavnl4cgPiBiZW5tb3VjaHV1c2hvdVwgOwor57W25L2T57W25ZG9ID4gemV0dGFpemV0c3VtZWlcIDsKK+eyvuelnuWIhuaekCA+IHNlaXNoaW5idW5zZWtpXCA7Civns7vliJfkvJrnpL4gPiBrZWlyZXRzdWdhaXNoYVwgOwor5YiG5a2Q6ZaT5YqbID4gYnVuc2hpa2Fucnlva3VcIDsKK+S8gealreaIpueVpSA+IGtpZ3lvdXNlbnJ5YWt1XCA7Civlm73msJHmiYDlvpcgPiBrb2t1bWluc2hvdG9rdVwgOwor6Ly45Ye65Yi26ZmQID4geXVzaHV0c3VzZWlnZW5cIDsKK+eJueWumumKmOafhCA+IHRva3V0ZWltZWlnYXJhXCA7CivosqHli5nkvZPos6ogPiB6YWltdXRhaXNoaXRzdVwgOwor6K2m5a+f5a2m5qChID4ga2Vpc2F0c3VnYWtrb3VcIDsKK+S4jeazleS+teWFpSA+IGZ1aG91c2hpbicnbnl1dVwgOwor55Sf5rS76Kit6KiIID4gc2Vpa2F0c3VzZWtrZWlcIDsKK+i7veiWhOefreWwjyA+IGtlaWhha3V0YW5zaG91XCA7CivnrpfooZPlubPlnYcgPiBzYW5qdXRzdWhlaWtpblwgOwor5Y2z5bit5paZ55CGID4gc29rdXNla2lyeW91cmlcIDsKK+eJqeeQhueZguazlSA+IGJ1dHN1cmlyeW91aG91XCA7CivpnZLphbjkuK3mr5IgPiBzZWlzYW5jaHV1ZG9rdVwgOwor5a6X5pWZ5rOV5Lq6ID4gc2h1dWt5b3Vob3VqaW5cIDsKK+WGmeecn+akjeWtlyA+IHNoYXNoaW5zaG9rdWppXCA7Civnt4rnuK7osqHmlL8gPiBraW5zaHVrdXphaXNlaVwgOwor5Y2Y5oCn55Sf5q6WID4gdGFuc2Vpc2Vpc2hva3VcIDsKK+mrmOetieeUn+eJqSA+IGtvdXRvdXNlaWJ1dHN1XCA7CivoiIjlkbPmtKXjgIUgPiBreW91bWlzaGluc2hpblwgOwor5L+d6Ki854mb5LmzID4gaG9zaG91Z3l1dW55dXVcIDsKK+WPl+iDjuiqv+evgCA+IGp1dGFpY2hvdXNldHN1XCA7CivpgI/mnpDnmYLms5UgPiB0b3VzZWtpcnlvdWhvdVwgOwor5oSf6Kaa56We57WMID4ga2Fua2FrdXNoaW5rZWlcIDsKK+WwgumWgOefpeitmCA+IHNlbm1vbmNoaXNoaWtpXCA7Civou43mi6Hnq7bkuokgPiBndW5rYWt1a3lvdXNvdVwgOwor55m75aC05Lq654mpID4gdG91am91amluYnV0c3VcIDsKK+mdnuePvuWun+eahCA+IGhpZ2Vuaml0c3V0ZWtpXCA7CivpgIbmgKfnn7PpubggPiBneWFrdXNlaXNla2tlblwgOwor5bm96ZaA54ut56qEID4geXV1bW9ua3lvdXNha3VcIDsKK+mAo+mCpuW9k+WxgCA+IHJlbnBvdXRvdWt5b2t1XCA7Civnm7TlsITml6XlhYkgPiBjaG9rdXNoYW5pa2tvdVwgOwor5YWI5Lu75bCG5qChID4gc2VuJyduaW5zaG91a291XCA7CivorLnljrPlrp/nm7QgPiBraW5nZW5qaXRjaG9rdVwgOwor5bqX6aCt5Y+W5byVID4gdGVudG91dG9yaWhpa2lcIDsKK+eZuuWjsuemgeatoiA+IGhhdHN1YmFpa2luc2hpXCA7Civlk4Hos6rnrqHnkIYgPiBoaW5zaGl0c3VrYW5yaVwgOwor57eo5YWl6Kmm6aiTID4gaGVuJydueXV1c2hpa2VuXCA7CivkvJ3pgZTplqLmlbAgPiBkZW50YXRzdWthbnN1dVwgOwor5bC95b+g5aCx5Zu9ID4gamluY2h1dWhvdWtva3VcIDsKK+WKtOS9v+WNlOiqvyA+IHJvdXNoaWt5b3VjaG91XCA7Civnmb7oibLnnLzpj6EgPiBoeWFrdWlyb21lZ2FuZVwgOwor5Lit5oCn5a2Q5p2fID4gY2h1dXNlaXNoaXNva3VcIDsKK+e3iuaApeWvvuetliA+IGtpbmt5dXV0YWlzYWt1XCA7CivljbDliLfmioDooZMgPiBpbnNhdHN1Z2lqdXRzdVwgOwor5b+D55qE6KGo56S6ID4gc2hpbnRla2loeW91amlcIDsKK+WQjeaJgOaXp+i3oSA+IG1laXNob2t5dXVzZWtpXCA7CivmipXos4fkv6HoqJcgPiB0b3VzaGlzaGludGFrdVwgOwor5paw6Z+T5Zu95YWaID4gc2hpbmthbmtva3V0b3VcIDsKK+Wbvemam+adoee0hCA+IGtva3VzYWlqb3V5YWt1XCA7CivkuIPloILkvL3ol40gPiBzaGljaGlkb3VnYXJhblwgOwor6Kaq5peP6Zai5L+CID4gc2hpbnpva3VrYW5rZWlcIDsKK+WCmOW9oueijeWtkCA+IGthc2FnYXRhZ2Fpc2hpXCA7CivmgqrmvKLlsI/oqqwgPiBha2thbnNob3VzZXRzdVwgOwor5YWs5pW15LiA5Y+3ID4ga291dGVraWljaGlnb3VcIDsKK+awtOizquaxmua/gSA+IHN1aXNoaXRzdW9kYWt1XCA7Civnsr7npZ7nmYLms5UgPiBzZWlzaGlucnlvdWhvdVwgOwor6Iyr54S26Ieq5aSxID4gYm91emVuamlzaGl0c3VcIDsKK+WcsOizquaZguS7oyA+IGNoaXNoaXRzdWppZGFpXCA7Civnq4vlhaXnpoHmraIgPiB0YWNoaWlyaWtpbnNoaVwgOwor5aSn5ZCM5Zuj57WQID4gZGFpZG91ZGFua2V0c3VcIDsKK+iyr+mHkemAmuW4syA+IGNob2tpbnRzdXVjaG91XCA7Civmlo7miJLmspDmtbQgPiBzYWlrYWltb2t1eW9rdVwgOwor5paw5Yi25aSn5a2mID4gc2hpbnNlaWRhaWdha3VcIDsKK+WFseWQjOiyrOS7uyA+IGt5b3Vkb3VzZWtpbmluXCA7CivmlrDogZ7nmbrooaggPiBzaGluYnVuaGFwcHlvdVwgOwor6LuK5YaF5pS55pytID4gc2hhbmFpa2Fpc2F0c3VcIDsKK+aYhuiZq+WtpuiAhSA+IGtvbmNodXVnYWt1c2hhXCA7CivpgIDogbflubTph5EgPiB0YWlzaG9rdW5lbmtpblwgOwor5YiG5Ymy57Wx5rK7ID4gYnVua2F0c3V0b3VjaGlcIDsKK+eiuueOh+mBjueoiyA+IGtha3VyaXRzdWthdGVpXCA7CivnoJTnqbbnmbrooaggPiBrZW5reXV1aGFwcHlvdVwgOwor5pen57SE6IGW5pu4ID4ga3l1dXlha3VzZWlzaG9cIDsKK+iSsumJvuWFteiIjiA+IGthbWFib2tvaGVpc2hhXCA7CivntYzosrvnr4DntIQgPiBrZWloaXNldHN1eWFrdVwgOwor562L6JCO57iu55eHID4ga2luJydpc2h1a3VzaG91XCA7CivlhKrnlJ/miYvooZMgPiB5dXVzZWlzaHVqdXRzdVwgOwor5YWs5YWx5paZ6YeRID4ga291a3lvdXJ5b3VraW5cIDsKK+W8t+WItuS4reaWrSA+IGt5b3VzZWljaHV1ZGFuXCA7CivkuIfmnInlvJXlipsgPiBiYW4nJ3l1dWlucnlva3VcIDsKK+eri+WkquWtkOW8jyA+IHJpdHRhaXNoaXNoaWtpXCA7Civml6XlhoXlkajmnJ8gPiBuaWNoaW5haXNodXVraVwgOwor5oay5rOV6Kej6YeIID4ga2VucG91a2Fpc2hha3VcIDsKK+e+jueahOeUn+a0uyA+IGJpdGVraXNlaWthdHN1XCA7Civlm6PkvZPlibLlvJUgPiBkYW50YWl3YXJpYmlraVwgOwor5Zu96Zqb5Lqk5rWBID4ga29rdXNhaWtvdXJ5dXVcIDsKK+WGoOeKtumdmeiEiCA+IGthbmpvdWpvdW15YWt1XCA7CivpgIbkuInop5LlvaIgPiBneWFrdXNhbmtha2tlaVwgOwor5biC56uL5a2m5qChID4gc2hpcml0c3VnYWtrb3VcIDsKK+ikh+mbkeaAquWlhyA+IGZ1a3V6YXRzdWthaWtpXCA7Civpq5jlsaTlu7rnr4kgPiBrb3Vzb3VnZW5jaGlrdVwgOwor55yf54+g6aSK5q6WID4gc2hpbmp1eW91c2hva3VcIDsKK+eUs+WRiueUqOe0mSA+IHNoaW5rb2t1eW91c2hpXCA7CivlsYDlnLDmiKbkuokgPiBreW9rdWNoaXNlbnNvdVwgOwor6YeN6KaB5Lq654mpID4ganV1eW91amluYnV0c3VcIDsKK+a0u+eJiOWNsOWItyA+IGthcHBhbicnaW5zYXRzdVwgOwor6YCj5pel6YCj5aScID4gcmVuaml0c3VyZW4nJ3lhXCA7CivkuInogIXlr77nq4sgPiBzYW5zaGF0YWlyaXRzdVwgOwor5rGC5aa75bqD5ZGKID4ga3l1dXNhaWtvdWtva3VcIDsKK+eLguiogOiHquauuiA+IGt5b3VnZW5qaXNhdHN1XCA7CivmgKfmn5PoibLkvZMgPiBzZWlzZW5zaG9rdXRhaVwgOwor5Ye454mI5Y2w5Yi3ID4gdG9wcGFuJydpbnNhdHN1XCA7CivliLrouqvljIXkuIEgPiBzYXNoaW1pYm91Y2hvdVwgOwor5pel57Gz6LK/5piTID4gbmljaGliZWlib3Vla2lcIDsKK+i7jeS6i+WNlOWKmyA+IGd1bmppa3lvdXJ5b2t1XCA7CivmpbXpmZDnirbmhYsgPiBreW9rdWdlbmpvdXRhaVwgOwor54mp55CG54++6LGhID4gYnV0c3VyaWdlbnNob3VcIDsKK+S6uui6q+aUu+aSgyA+IGppbnNoaW5rb3VnZWtpXCA7CivoqJjmhrbllqrlpLEgPiBraW9rdXNvdXNoaXRzdVwgOwor56S+5Lya56ep5bqPID4gc2hha2FpY2hpdHN1am9cIDsKK+S+g+S+g+irpOirpCA+IGthbmthbmdha3VnYWt1XCA7CivmuJvkvqHlhJ/ljbQgPiBnZW5rYXNob3VreWFrdVwgOwor56m65Lit5p+75a+fID4ga3V1Y2h1dXNhc2F0c3VcIDsKK+e0oOS6uuiKneWxhSA+IHNoaXJvdXRvc2hpYmFpXCA7CivkuIDlha3li53osqAgPiBpY2hpcm9rdXNob3VidVwgOwor5Lqk6Z+/5qW95ZujID4ga291a3lvdWdha3VkYW5cIDsKK+ihgOa2sumKgOihjCA+IGtldHN1ZWtpZ2lua291XCA7CivllYblk4HlnKjpq5ggPiBzaG91aGluemFpZGFrYVwgOwor54mp55CG5a2m6ICFID4gYnV0c3VyaWdha3VzaGFcIDsKK+W5tOeZvuW5tOS4rSA+IG5lbmJ5YWt1bmVuanV1XCA7Civmnp3okYnmnKvnr4AgPiBzaGl5b3VtYXNzZXRzdVwgOwor6LuN6ZqK55Sf5rS7ID4gZ3VudGFpc2Vpa2F0c3VcIDsKK+avlOi8g+eahOWwjyA+IGhpa2FrdXRla2lzaG91XCA7CivmvZzlnKjog73lipsgPiBzZW56YWlub3VyeW9rdVwgOwor5bel5a2m5Y2a5aOrID4ga291Z2FrdWhha3VzaGlcIDsKK+acieWEn+Wlkee0hCA+IHl1dXNob3VrZWl5YWt1XCA7CivmlrDogZ7luoPlkYogPiBzaGluYnVua291a29rdVwgOwor5LiK57Sa5pu56ZW3ID4gam91a3l1dXNvdWNob3VcIDsKK+S5seiouuS5seeZgiA+IHJhbnNoaW5yYW5yeW91XCA7Civpm4blkIjkvY/lroUgPiBzaHV1Z291anV1dGFrdVwgOwor5b6h6aOf5LqL5YemID4gb3Nob2t1amlkb2tvcm9cIDsKK+mkiuauluecn+ePoCA+IHlvdXNob2t1c2hpbmp1XCA7CivlhoXpg6jlkYrnmbogPiBuYWlidWtva3VoYXRzdVwgOwor5ZCN55uu6LOD6YeRID4gbWVpbW9rdWNoaW5naW5cIDsKK+ebuOWvvua5v+W6piA+IHNvdXRhaXNoaXRzdWRvXCA7CivmnKzmnKvou6LlgJIgPiBob25tYXRzdXRlbnRvdVwgOwor5a2m5qCh55Sf5rS7ID4gZ2Fra291c2Vpa2F0c3VcIDsKK+WFpeWbveafu+iovCA+IG55dXVrb2t1c2FzaG91XCA7Civoh6rlvovnpZ7ntYwgPiBqaXJpdHN1c2hpbmtlaVwgOwor5aeJ5qeY5Lq65b2iID4gYW5lc2FtYW5pbmd5b3VcIDsKK+aIpuaIpuaBkOaBkCA+IHNlbnNlbmt5b3VreW91XCA7CivooZ3mkoPplqLmlbAgPiBzaG91Z2VraWthbnN1dVwgOwor5ben6KiA5Luk6ImyID4ga291Z2VucmVpc2hva3VcIDsKK+Wkiea4qeWLleeJqSA+IGhlbicnb25kb3VidXRzdVwgOwor5Y6f5aeL5YuV54mpID4gZ2Vuc2hpZG91YnV0c3VcIDsKK+epuumWk+iKuOihkyA+IGt1dWthbmdlaWp1dHN1XCA7CivkvoPjgIXoq6TjgIUgPiBrYW5rYW5nYWt1Z2FrdVwgOwor6ZaL5bqX5LyR5qWtID4ga2FpdGVua3l1dWd5b3VcIDsKK+Wor+alveaWveiorSA+IGdvcmFrdXNoaXNldHN1XCA7CivljYrmsLjkuYXnmoQgPiBoYW4nJ2Vpa3l1dXRla2lcIDsKK+mjn+ezp+S6i+aDhSA+IHNob2t1cnlvdWppam91XCA7Civlj6/pgIblj43lv5wgPiBrYWd5YWt1aGFuJydub3VcIDsKK+eJueWIpeS8muWToSA+IHRva3ViZXRzdWthaWluXCA7CivmrbvmtLvllY/poYwgPiBzaGlrYXRzdW1vbmRhaVwgOwor57O757Wx56We5a2mID4ga2VpdG91c2hpbmdha3VcIDsKK+i7n+mqqOmtmumhniA+IG5hbmtvdHN1Z3lvcnVpXCA7CivlkITkurrlkITmp5ggPiBrYWt1amlua2FrdXlvdVwgOwor6YCa5L+h5LqL5qWtID4gdHN1dXNoaW5qaWd5b3VcIDsKK+iyv+aYk+manOWjgSA+IGJvdWVraXNob3VoZWtpXCA7CivljZjkuIDpgJrosqggPiB0YW4nJ2l0c3V0c3V1a2FcIDsKK+WNg+S4oeW9ueiAhSA+IHNlbnJ5b3V5YWt1c2hhXCA7CivliLDnnYDmmYLliLsgPiB0b3VjaGFrdWppa29rdVwgOwor5qaC566X6KaB5rGCID4gZ2Fpc2FuJyd5b3VreXV1XCA7Civlm73msJHlubTph5EgPiBrb2t1bWluJyduZW5raW5cIDsKK+azpeawtOeovOalrSA+IGRvcm9taXp1a2FneW91XCA7CivlnKjml6XnsbPou40gPiB6YWluaWNoaWJlaWd1blwgOwor6LaK5aKD5YWl5a2mID4gZWtreW91bnl1dWdha3VcIDsKK+aVsOeQhuWTsuWtpiA+IHN1dXJpdGV0c3VnYWt1XCA7CivllK/nianlj7LoprMgPiB5dWlidXRzdXNoaWthblwgOwor5ZWG5qWt5a2m5qChID4gc2hvdWd5b3VnYWtrb3VcIDsKK+W3puWkp+aLrOW8pyA+IGhpZGFyaWRhaWtha2tvXCA7CivmsJHml4/nsr7npZ4gPiBtaW56b2t1c2Vpc2hpblwgOwor5a6f5Yqb6KGM54K6ID4gaml0c3VyeW9rdWtvdWlcIDsKK+a1t+e2v+WLleeJqSA+IGthaW1lbmRvdWJ1dHN1XCA7CivnsbPou43lhbXlipsgPiBiZWlndW5oZWlyeW9rdVwgOwor5bCx5a2m5bm06b2iID4gc2h1dWdha3VuZW5yZWlcIDsKK+mJseeJqeizh+a6kCA+IGtvdWJ1dHN1c2hpZ2VuXCA7Civou5/lvI/ph47nkIMgPiBuYW5zaGlraXlha3l1dVwgOwor5L+h6KiX57Wx5rK7ID4gc2hpbnRha3V0b3VjaGlcIDsKK+e1jOa4iOa0u+WLlSA+IGtlaXphaWthdHN1ZG91XCA7CivlhbXlvI/kvZPmk40gPiBoZWlzaGlraXRhaXNvdVwgOwor55Sf5q6W57Sw6IOeID4gc2Vpc2hva3VzYWlib3VcIDsKK+WcsOW9oua4rOmHjyA+IGNoaWtlaXNva3VyeW91XCA7CivllYbmpa3os4fmnKwgPiBzaG91Z3lvdXNoaWhvblwgOwor5pWw5YCk55uu5qiZID4gc3V1Y2hpbW9rdWh5b3VcIDsKK+S4gOW+l+S4gOWksSA+IGl0dG9rdWlzc2hpdHN1XCA7CivpgJrkv6Hosqnlo7IgPiB0c3V1c2hpbmhhbmJhaVwgOwor5by35Yi25Z+36KGMID4ga3lvdXNlaXNoaWtrb3VcIDsKK+W5u+immueXh+eKtiA+IGdlbmtha3VzaG91am91XCA7CivljJfpmbjlnLDmlrkgPiBob2t1cmlrdWNoaWhvdVwgOwor5Ymy5byV55m66KGMID4gd2FyaWJpa2loYWtrb3VcIDsKK+W6g+Wgsea0u+WLlSA+IGtvdWhvdWthdHN1ZG91XCA7CivlsbHpq5jluL3lrZAgPiB5YW1hdGFrYWJvdXNoaVwgOwor5p+T6Imy5bel5aC0ID4gc2Vuc2hva3Vrb3Vqb3VcIDsKK+WFrOW8j+ioquWVjyA+IGtvdXNoaWtpaG91bW9uXCA7Civnt4/lkIjplovnmbogPiBzb3Vnb3VrYWloYXRzdVwgOwor6YCj56uL5pS/5qipID4gcmVucml0c3VzZWlrZW5cIDsKK+W3ruWIpeihqOePviA+IHNhYmV0c3VoeW91Z2VuXCA7CivmqKnlipvpl5jkuokgPiBrZW5yeW9rdXRvdXNvdVwgOwor6KO95ZOB5oim55WlID4gc2VpaGluc2Vucnlha3VcIDsKK+WIhuawtOWxseiEiCA+IGJ1bnN1aXNhbm15YWt1XCA7Civoqpjpm7vmraPmjqUgPiB5dXVkZW5zZWlzZXRzdVwgOwor55+l6Kaa56We57WMID4gY2hpa2FrdXNoaW5rZWlcIDsKK+mAkOadoeWvqeitsCA+IGNoaWt1am91c2hpbmdpXCA7CivljYPls7bliJfls7YgPiBjaGlzaGltYXJldHRvdVwgOwor6Ly45Ye66LaF6YGOID4geXVzaHV0c3VjaG91a2FcIDsKK+WwiueOi+iojuW5lSA+IHNvbicnbm91dG91YmFrdVwgOwor5oOF5aCx6YCa5L+hID4gam91aG91dHN1dXNoaW5cIDsKK+i2hei2iuS6pOS7oyA+IGNob3VldHN1a291dGFpXCA7CivnlJ/mtLvnqbrplpMgPiBzZWlrYXRzdWt1dWthblwgOwor5YmN56uL6IW654KOID4gemVucml0c3VzZW4nJ2VuXCA7CivooYzmlL/mlLnpnakgPiBneW91c2Vpa2Fpa2FrdVwgOwor5b6L5Luk5Zu95a62ID4gcml0c3VyeW91a29ra2FcIDsKK+W/g+mciuePvuixoSA+IHNoaW5yZWlnZW5zaG91XCA7CivnlJ/oqpXnmb7lubQgPiBzZWl0YW5oeWFrdW5lblwgOwor6Ieq5YuV552A5L+hID4gamlkb3VjaGFrdXNoaW5cIDsKK+esrOS4ieWLouWKmyA+IGRhaXNhbnNlaXJ5b2t1XCA7Civmm7jnlZnpg7Xkvr8gPiBrYWtpdG9tZXl1dWJpblwgOwor55+l6K2Y5L2T57O7ID4gY2hpc2hpa2l0YWlrZWlcIDsKK+mbhuWQiOiomOi/sCA+IHNodXVnb3VraWp1dHN1XCA7CivkuInnmb7oq7jkvq8gPiBzYW5ieWFrdXNob2tvdVwgOwor5aSn6KGG5paH5a2mID4gdGFpc2h1dWJ1bmdha3VcIDsKK+S4reetieaVmeiCsiA+IGNodXV0b3VreW91aWt1XCA7CivmlZnogrLooYzmlL8gPiBreW91aWt1Z3lvdXNlaVwgOwor5q2m6KOF5Lit56uLID4gYnVzb3VjaHV1cml0c3VcIDsKK+W5s+WSjOWNlOWKmyA+IGhlaXdha3lvdXJ5b2t1XCA7Civpm7vpiYTkvJrnpL4gPiBkZW50ZXRzdWdhaXNoYVwgOwor5Ye65bit5pel5pWwID4gc2h1c3Nla2luaXNzdXVcIDsKK+ecjOeri+eXhemZoiA+IGtlbnJpdHN1YnlvdWluXCA7CivnspLnspLovpvoi6YgPiByeXV1cnl1dXNoaW5rdVwgOwor5YGP5peB5Yag6ISaID4gaGVuYm91a2Fua3lha3VcIDsKK+iyqeWjsuS/g+mAsiA+IGhhbmJhaXNva3VzaGluXCA7Civkv6HoqJfmipXos4cgPiBzaGludGFrdXRvdXNoaVwgOwor5Lit5bCP5LyB5qWtID4gY2h1dXNob3VraWd5b3VcIDsKK+S4ieihjOW6g+WRiiA+IHNhbmd5b3Vrb3Vrb2t1XCA7CivooYDmtrLlvqrnkrAgPiBrZXRzdWVraWp1bmthblwgOwor6YCj57WQ5rG6566XID4gcmVua2V0c3VrZXNzYW5cIDsKK+mqqOi7n+WMlueXhyA+IGtvdHN1bmFua2FzaG91XCA7CivmlL/msrvlk7LlraYgPiBzZWlqaXRldHN1Z2FrdVwgOwor5ZWG5qWt5pS+6YCBID4gc2hvdWd5b3Vob3Vzb3VcIDsKK+WbvemYsue3j+ecgSA+IGtva3Vib3Vzb3VzaG91XCA7CivnlJ/mtLvmjIflsI4gPiBzZWlrYXRzdXNoaWRvdVwgOwor54KO54ax5Zyw542EID4gZW4nJ25ldHN1amlnb2t1XCA7CivlhavpnaLnjrLnk48gPiBoYWNoaW1lbnJlaXJvdVwgOwor6Z2i5Lya6Kyd57W2ID4gbWVua2Fpc2hhemV0c3VcIDsKK+mBk+i3r+aomeitmCA+IGRvdXJvaHlvdXNoaWtpXCA7Civlm73llrbpgJrkv6EgPiBrb2t1ZWl0c3V1c2hpblwgOwor6YGp5p2Q6YGp5omAID4gdGVraXphaXRla2lzaG9cIDsKK+WKh+eXh+iCneeCjiA+IGdla2lzaG91a2FuJydlblwgOwor54mp5oOF6aiS54S2ID4gYnV0c3Vqb3Vzb3V6ZW5cIDsKK+WFrOawkeeUn+a0uyA+IGtvdW1pbnNlaWthdHN1XCA7CivlhaXlraboqabpqJMgPiBueXV1Z2FrdXNoaWtlblwgOwor57W25a++57W25ZG9ID4gemV0dGFpemV0c3VtZWlcIDsKK+S6i+OAheeJqeOAhSA+IGppamlidXRzdWJ1dHN1XCA7CivlgIvlgIvliKXliKUgPiBrb2tvYmV0c3ViZXRzdVwgOwor5ZCI5ZSx6ZqK6ZW3ID4gZ2Fzc2hvdXRhaWNob3VcIDsKK+S5vueHpeeJm+S5syA+IGthbnNvdWd5dXVueXV1XCA7Civnm7Tns7vlsIrlsZ4gPiBjaG9ra2Vpc29uem9rdVwgOwor5YWl5a2m6aGY5pu4ID4gbnl1dWdha3VnYW5zaG9cIDsKK+WHuueZuuaZgumWkyA+IHNodXBwYXRzdWppa2FuXCA7CivkuLvopoHkurrniakgPiBzaHV5b3VqaW5idXRzdVwgOwor5paH5a2m5L2c5ZOBID4gYnVuZ2FrdXNha3VoaW5cIDsKK+i7veS+v+mJhOmBkyA+IGtlaWJlbnRldHN1ZG91XCA7CivlibLlvJXluILloLQgPiB3YXJpYmlraXNoaWpvdVwgOwor5aSx6Liq5a6j5ZGKID4gc2hpc3NvdXNlbmtva3VcIDsKK+WMluWtpue1kOWQiCA+IGthZ2FrdWtldHN1Z291XCA7Civkv53pmbrmlpnnjocgPiBob2tlbnJ5b3VyaXRzdVwgOwor5L+h6LaK5pys57eaID4gc2hpbmV0c3Vob25zZW5cIDsKK+elnue1jOS4reaeoiA+IHNoaW5rZWljaHV1c3V1XCA7CivnmbrlhYnli5XniakgPiBoYWtrb3Vkb3VidXRzdVwgOwor6KSH5byP54Gr5bGxID4gZnVrdXNoaWtpa2F6YW5cIDsKK+WgheW/jeS4jeaKnCA+IGtlbicnbmluZnViYXRzdVwgOwor6ICQ5LmP55Sf5rS7ID4gdGFpYm91c2Vpa2F0c3VcIDsKK+ekvuS8mumAmuW/tSA+IHNoYWthaXRzdXVuZW5cIDsKK+aOpeWuouaFi+W6piA+IHNla2t5YWt1dGFpZG9cIDsKK+i7veeIhuaSg+apnyA+IGtlaWJha3VnZWtpa2lcIDsKK+e9suWQjeaNuuWNsCA+IHNob21laW5hdHN1aW5cIDsKK+iDuOmDqOeWvuaCoyA+IGt5b3VidXNoaWtrYW5cIDsKK+ixoeeJmeWPluW8lSA+IHpvdWdldG9yaWhpa2lcIDsKK+aXpeabnOWkp+W3pSA+IG5pY2hpeW91ZGFpa3VcIDsKK+ebrueOieWVhuWTgSA+IG1lZGFtYXNob3VoaW5cIDsKK+ijveiWrOS8muekviA+IHNlaXlha3VnYWlzaGFcIDsKK+aKleWFieeFp+aYjiA+IHRvdWtvdXNob3VtZWlcIDsKK+a4heW7iea9lOeZvSA+IHNlaXJlbmtlcHBha3VcIDsKK+aVteWJjemAg+S6oSA+IHRla2l6ZW50b3Vib3VcIDsKK+aXpeWIiuaWsOiBniA+IG5pa2thbnNoaW5idW5cIDsKK+aKseiFuee1tuWAkiA+IGhvdWZ1a3V6ZXR0b3VcIDsKK+aCquiZkOeEoemBkyA+IGFrdWd5YWt1bXVkb3VcIDsKK+WbveWutuaoqeWKmyA+IGtva2tha2Vucnlva3VcIDsKK+WNl+a0i+iruOWztiA+IG5hbicneW91c2hvdG91XCA7Civlm5rkurrlirTlg40gPiBzaHV1amlucm91ZG91XCA7CivliqPnrYnoprPlv7UgPiByZXR0b3VrYW4nJ25lblwgOwor6Zai5L+C5a6Y5bqBID4ga2Fua2Vpa2FuY2hvdVwgOwor6L6y5rCR5paH5a2mID4gbm91bWluYnVuZ2FrdVwgOwor6Ieq54S254++6LGhID4gc2hpemVuZ2Vuc2hvdVwgOwor6IWO6IeT57WQ55+zID4gamluem91a2Vzc2VraVwgOwor5pa95pS/5pa56YedID4gc2hpc2VpaG91c2hpblwgOwor5aSp56u65rWq5Lq6ID4gdGVuamlrdXJvdW5pblwgOwor6ZyK6a2C5LiN5ruFID4gcmVpa29uZnVtZXRzdVwgOwor5YWs5YWx57WE5ZCIID4ga291a3lvdWt1bWlhaVwgOwor5pyJ57ea6Zu75L+hID4geXV1c2VuZGVuc2hpblwgOwor6KGA6KGM6Zqc5a6zID4ga2Vra291c2hvdWdhaVwgOwor5Lq655qE6LOH5rqQID4gamludGVraXNoaWdlblwgOwor5Zyw5pa56KGM5pS/ID4gY2hpaG91Z3lvdXNlaVwgOwor6ZyH5aSp5YuV5ZywID4gc2hpbnRlbmRvdWNoaVwgOwor56ys5LiJ5bid5Zu9ID4gZGFpc2FudGVpa29rdVwgOwor5aSp5paH5a2m6ICFID4gdGVubW9uZ2FrdXNoYVwgOwor5rex5aSc5pS+6YCBID4gc2hpbicneWFob3Vzb3VcIDsKK+mfs+WjsOW9ouW8jyA+IG9uc2Vpa2Vpc2hpa2lcIDsKK+S6pOmAmuWVj+mhjCA+IGtvdXRzdXVtb25kYWlcIDsKK+WFrOWFseaKleizhyA+IGtvdWt5b3V0b3VzaGlcIDsKK+WKg+aZguS7o+eahCA+IGtha3VqaWRhaXRla2lcIDsKK+WQjOaXj+S8muekviA+IGRvdXpva3VnYWlzaGFcIDsKK+W/g+eQhuaPj+WGmSA+IHNoaW5yaWJ5b3VzaGFcIDsKK+aKgOihk+awtOa6liA+IGdpanV0c3VzdWlqdW5cIDsKK+eQhuWtpuWNmuWjqyA+IHJpZ2FrdWhha3VzaGlcIDsKK+WxgOaJgOm6u+mFlCA+IGt5b2t1c2hvbWFzdWlcIDsKK+eUo+WIpeS8muitsCA+IHNhbmJldHN1a2FpZ2lcIDsKK+WwseWtpuWFkOerpSA+IHNodXVnYWt1amlkb3VcIDsKK+epuuS4ree1puayuSA+IGt1dWNodXVreXV1eXVcIDsKK+Wbvemam+imj+agvCA+IGtva3VzYWlraWtha3VcIDsKK+WtpuagoeaWsOiBniA+IGdha2tvdXNoaW5idW5cIDsKK+aDheWgseeUo+alrSA+IGpvdWhvdXNhbmd5b3VcIDsKK+eZu+mMsueVquWPtyA+IHRvdXJva3ViYW5nb3VcIDsKK+Wcn+acqOW3peWtpiA+IGRvYm9rdWtvdWdha3VcIDsKK+eUn+S9k+WPjeW/nCA+IHNlaXRhaWhhbicnbm91XCA7CivosaHlvrTkuLvnvqkgPiBzaG91Y2hvdXNodWdpXCA7Civpn7Pmpb3mlZnogrIgPiBvbmdha3VreW91aWt1XCA7CivoprPmuKzlnLDngrkgPiBrYW5zb2t1Y2hpdGVuXCA7CivmioDooZPlkIzlo6sgPiBnaWp1dHN1ZG91c2hpXCA7Civlv5zmgKXmlLvmkoMgPiBvdWt5dXVrb3VnZWtpXCA7CivlkIzku4HmlZnkvJogPiBkb3VqaW5reW91a2FpXCA7Civlrp/lg43mmYLplpMgPiBqaXRzdWRvdWppa2FuXCA7CivpnZLnqbrpp5Dou4ogPiBhb3pvcmFjaHV1c2hhXCA7Civpm7vlipvovLjpgIEgPiBkZW5yeW9rdXl1c291XCA7Civou43pmormlZnogrIgPiBndW50YWlreW91aWt1XCA7CivpgaDmtIvmvIHmpa0gPiBlbicneW91Z3lvZ3lvdVwgOwor5L+d6Zqc5Y2g6aCYID4gaG9zaG91c2VucnlvdVwgOwor5Lqk5o+b5rOV5YmHID4ga291a2FuaG91c29rdVwgOwor54m95byV55mC5rOVID4ga2VuJydpbnJ5b3Vob3VcIDsKK+mnheS8neertui1sCA+IGVraWRlbmt5b3Vzb3VcIDsKK+WIh+atr+aJvOiFlSA+IHNlc3NoaXlha3V3YW5cIDsKK+Wbo+S9k+S6pOa4iSA+IGRhbnRhaWtvdXNob3VcIDsKK+S6reS4u+mWoueZvSA+IHRlaXNodWthbnBha3VcIDsKK+S4gOauteWLleipniA+IGljaGlkYW5kb3VzaGlcIDsKK+S4gOiIrOW5leWDmiA+IGlwcGFuYmFrdXJ5b3VcIDsKK+WvneWPsOWIl+i7iiA+IHNoaW5kYWlyZXNzaGFcIDsKK+aKleaTsuertuaKgCA+IHRvdXRla2lreW91Z2lcIDsKK+awl+ixoemAmuWgsSA+IGtpc2hvdXRzdXVob3VcIDsKK+mWi+aekOWPsOWcsCA+IGthaXNla2lkYWljaGlcIDsKK+Wun+eUqOS4u+e+qSA+IGppdHN1eW91c2h1Z2lcIDsKK+W3peWgtOWun+e/kiA+IGtvdWpvdWppc3NodXVcIDsKK+S4ree2meiyv+aYkyA+IGNodXVrZWlib3Vla2lcIDsKK+aAp+iDveeJueaApyA+IHNlaW5vdXRva3VzZWlcIDsKK+acgOW+jOmAmueJkiA+IHNhaWdvdHN1dWNob3VcIDsKK+Wbvemam+e1kOWpmiA+IGtva3VzYWlrZWtrb25cIDsKK+mAoOacrOaKgOihkyA+IHpvdWhvbmdpanV0c3VcIDsKK+WmqOWus+W3peS9nCA+IGJvdWdhaWtvdXNha3VcIDsKK+awkeaXj+aEj+itmCA+IG1pbnpva3Vpc2hpa2lcIDsKK+i0heayouS4ieaYpyA+IHplaXRha3V6YW5tYWlcIDsKK+WGmeecn+ijveeJiCA+IHNoYXNoaW5zZWloYW5cIDsKK+WtpuagoeaVmeiCsiA+IGdha2tvdWt5b3Vpa3VcIDsKK+mcp+S4reS/oeWPtyA+IG11Y2h1dXNoaW5nb3VcIDsKK+eyvuelnueKtuaFiyA+IHNlaXNoaW5qb3V0YWlcIDsKK+WVhuenkeWkp+WtpiA+IHNob3VrYWRhaWdha3VcIDsKK+WGmeecn+e1kOWpmiA+IHNoYXNoaW5rZWtrb25cIDsKK+WFseWQjOaIpue3miA+IGt5b3Vkb3VzZW5zZW5cIDsKK+eBq+Wxsea0u+WLlSA+IGthemFua2F0c3Vkb3VcIDsKK+m6pueoiOe0sOW3pSA+IG11Z2l3YXJhemFpa3VcIDsKK+WLpOWKtOaJgOW+lyA+IGtpbnJvdXNob3Rva3VcIDsKK+mmluebuOWumOmCuCA+IHNodXNob3VrYW50ZWlcIDsKK+iqreabuOS4ieaYpyA+IGRva3VzaG96YW5tYWlcIDsKK+S4reetieaVmeWToSA+IGNodXV0b3VreW91aW5cIDsKK+S4gOasoembu+a1gSA+IGljaGlqaWRlbnJ5dXVcIDsKK+WPsOS4remWouS/giA+IHRhaWNodXVrYW5rZWlcIDsKK+enmOWvhue1kOekviA+IGhpbWl0c3VrZXNzaGFcIDsKK+adseaWueaLoeWkpyA+IHRvdWhvdWtha3VkYWlcIDsKK+i/kemao+iruOWbvSA+IGtpbnJpbnNob2tva3VcIDsKK+WKtOWDjemajue0miA+IHJvdWRvdWthaWt5dXVcIDsKK+iynuaTjeims+W/tSA+IHRlaXNvdWthbicnbmVuXCA7CivmsJHplpPkvJ3mib8gPiBtaW5rYW5kZW5zaG91XCA7CivohoDog7HntZDnn7MgPiBib3Vrb3VrZXNzZWtpXCA7Civou6LlsYXpgJrnn6UgPiB0ZW5reW90c3V1Y2hpXCA7CivntJTmraPmlbDlraYgPiBqdW5zZWlzdXVnYWt1XCA7CivnlLfniLXlpKvkurogPiBkYW5zaGFrdWZ1amluXCA7CivloanolLXpo5/lk4EgPiBlbnpvdXNob2t1aGluXCA7CivkuIDoh7Tlm6PntZAgPiBpdGNoaWRhbmtldHN1XCA7Civorablr5/lm73lrrYgPiBrZWlzYXRzdWtva2thXCA7CivntYzmuIjnmb3mm7ggPiBrZWl6YWloYWt1c2hvXCA7CivnqYDlgInlnLDluK8gPiBrb2t1c291Y2hpdGFpXCA7CivnkrDlooPkuovmpa0gPiBrYW5reW91amlneW91XCA7Civnt4/lkIjllYbnpL4gPiBzb3Vnb3VzaG91c2hhXCA7CivlsJHlubTlirTlg40gPiBzaG91bmVucm91ZG91XCA7CivkuIDmjJnkuKHlvpcgPiBpa2t5b3J5b3V0b2t1XCA7CivmuKzlrproo4Xnva4gPiBzb2t1dGVpc291Y2hpXCA7CivliY3ooZvnvo7ooZMgPiB6ZW4nJ2VpYmlqdXRzdVwgOwor55qG5pei5pyI6aOfID4ga2Fpa2lnZXNzaG9rdVwgOwor5YWs5Zuj5L2P5a6FID4ga291ZGFuanV1dGFrdVwgOwor6Kit5YKZ5oqV6LOHID4gc2V0c3ViaXRvdXNoaVwgOwor5pel5bi46Iy26aOvID4gbmljaGlqb3VzYWhhblwgOwor576k6ZuG5b+D55CGID4gZ3Vuc2h1dXNoaW5yaVwgOwor55m+5oim57e056OoID4gaHlha3VzZW5yZW5tYVwgOwor5Y2z6IiI6Kmp5Lq6ID4gc29ra3lvdXNoaWppblwgOwor5ZaE6Zqj5pS/562WID4gemVucmluc2Vpc2FrdVwgOwor5YmN5Y+X5Y+O55uKID4gbWFldWtlc2h1dWVraVwgOwor5Zu95rCR55qG5YW1ID4ga29rdW1pbmthaWhlaVwgOwor6aqo55u45a2m6ICFID4ga29zc291Z2FrdXNoYVwgOwor5oi45Yil6Kiq5ZWPID4ga29iZXRzdWhvdW1vblwgOwor54iG5by+5aOw5piOID4gYmFrdWRhbnNlaW1laVwgOwor6YGT5qW95oGv5a2QID4gZG91cmFrdW11c3Vrb1wgOwor55mS5YK357WE57mUID4geXVzaG91c29zaGlraVwgOwor55S35a2Q5a2m55SfID4gZGFuc2hpZ2FrdXNlaVwgOwor6LKr6YCa6YqD5Ym1ID4ga2FudHN1dWp1dXNvdVwgOwor5paw6YOO5paw5ammID4gc2hpbnJvdXNoaW5wdVwgOwor56m65oy65L2c5oimID4ga3V1dGVpc2FrdXNlblwgOwor6YWN566h5bel5qWtID4gaGFpa2Fua291Z3lvdVwgOwor5a6H5a6Z6YCa5L+hID4gdWNodXV0c3V1c2hpblwgOwor562J5q+U5pWw5YiXID4gdG91aGlzdXVyZXRzdVwgOwor5bqK5LiK5rW45rC0ID4geXVrYXVlc2hpbnN1aVwgOwor6Ieq54S255Kw5aKDID4gc2hpemVua2Fua3lvdVwgOwor5pel5Lit5oim5LqJID4gbml0Y2h1dXNlbnNvdVwgOwor5qiZ6aGM6Z+z5qW9ID4gaHlvdWRhaW9uZ2FrdVwgOwor5Yqj562J6KSH5ZCIID4gcmV0dG91ZnVrdWdvdVwgOwor55y855CD6YqA6KGMID4gZ2Fua3l1dWdpbmtvdVwgOwor5biC5aC05YiG5p6QID4gc2hpam91YnVuc2VraVwgOwor5Lit6ZaT6Kmm6aiTID4gY2h1dWthbnNoaWtlblwgOwor6Ki85Yi45Lya56S+ID4gc2hvdWtlbmdhaXNoYVwgOwor5ryP6Kmx57WQ5ZCIID4gcm91d2FnZXRzdWdvdVwgOwor5Zu96Zqb57Sb5LqJID4ga29rdXNhaWZ1bnNvdVwgOwor6ZuG5Zuj6KGM5YuVID4gc2h1dWRhbmtvdWRvdVwgOwor6LuK5Lih57im6ZqKID4gc2hhcnlvdWp1dXRhaVwgOwor5Lqk5Luj5pON5qWtID4ga291dGFpc291Z3lvdVwgOwor5L2c6ICF5pyq6KmzID4gc2FrdXNoYW1pc2hvdVwgOwor6KW/5pys6aGY5a+6ID4gbmlzaGlob25nYW5qaVwgOwor5rC45Luj5YCf5ZywID4gZWl0YWlzaGFrdWNoaVwgOwor5a2Q5a6u562L6IWrID4gc2hpa3l1dWtpbnNodVwgOwor5YiH5omL6JKQ6ZuGID4ga2l0dGVzaHV1c2h1dVwgOwor5a6Y6LK755WZ5a2mID4ga2FucGlyeXV1Z2FrdVwgOwor57eo6ZuG5Li75bm5ID4gaGVuc2h1dXNodWthblwgOwor55Sf55Sj5oqA6KGTID4gc2Vpc2FuZ2lqdXRzdVwgOwor5rC05bmz5b+c5YqbID4gc3VpaGVpb3VyeW9rdVwgOwor5YWI56uv5oqA6KGTID4gc2VudGFuZ2lqdXRzdVwgOwor56We5a6u55CD5aC0ID4gamluZ3V1a3l1dWpvdVwgOwor6Z+z5qW95aSn5a2mID4gb25nYWt1ZGFpZ2FrdVwgOwor5L6155Wl6KGM54K6ID4gc2hpbnJ5YWt1a291aVwgOwor5YWl5bCE5YWJ57eaID4gbnl1dXNoYWtvdXNlblwgOwor5LiJ6KeS5Ye95pWwID4gc2Fua2FrdWthbnN1dVwgOwor56uL5L2T5YaZ55yfID4gcml0dGFpc2hhc2hpblwgOwor5Zu96Zqb6Zai5L+CID4ga29rdXNhaWthbmtlaVwgOwor5rWE5Zyf55yf5a6XID4gam91ZG9zaGluc2h1dVwgOwor5LiJ5Zu95ZCM55ufID4gc2FuZ29rdWRvdW1laVwgOwor6ama5aSp5YuV5ZywID4ga3lvdXRlbmRvdWNoaVwgOwor56m65Lit5ruR6LWwID4ga3V1Y2h1dWthc3NvdVwgOwor5Zu96Zqb5ZWP6aGMID4ga29rdXNhaW1vbmRhaVwgOwor56S+5aSW55m65L+hID4gc2hhZ2FpaGFzc2hpblwgOwor6Lez5qKB6LeL5omIID4gY2hvdXJ5b3ViYWtrb1wgOwor6ZuG5Lit56Cy54GrID4gc2h1dWNodXVob3VrYVwgOwor5Lq66ZaT5bel5a2mID4gbmluZ2Vua291Z2FrdVwgOwor6Lqr5YWD56K66KqNID4gbWltb3Rva2FrdW5pblwgOwor5beu5Yil5b6F6YGHID4gc2FiZXRzdXRhaWd1dVwgOwor5Y2D6bOl5qC85a2QID4gY2hpZG9yaWdvdXNoaVwgOwor5LuP5YOP5LqM5L2TID4gYnV0c3V6b3VuaXRhaVwgOwor5YWo5pmv5YaZ55yfID4gemVua2Vpc2hhc2hpblwgOwor5YWs5YWx5Zuj5L2TID4ga291a3lvdWRhbnRhaVwgOwor5aCG56mN6Lyq5bu7ID4gdGFpc2VraXJpbicnbmVcIDsKK+S4gOiIrOeUn+a0uyA+IGlwcGFuc2Vpa2F0c3VcIDsKK+aoquays+mbu+apnyA+IHlva29nYXdhZGVua2lcIDsKK+S4ree2meaUvumAgSA+IGNodXVrZWlob3Vzb3VcIDsKK+emgeatouadoee0hCA+IGtpbnNoaWpvdXlha3VcIDsKK+WFqOWbveaUvumAgSA+IHplbmtva3Vob3Vzb3VcIDsKK+WFmuWIqeWFmueVpSA+IHRvdXJpdG91cnlha3VcIDsKK+WkluS6pOS6pOa4iSA+IGdhaWtvdWtvdXNob3VcIDsKK+WtpuWjq+mZouizniA+IGdha3VzaGlpbnNob3VcIDsKK+ihjOWLleioiOeUuyA+IGtvdWRvdWtlaWtha3VcIDsKK+WFseacieiyoeeUoyA+IGt5b3V5dXV6YWlzYW5cIDsKK+mAuOWkseWIqeebiiA+IGlzc2hpdHN1cmlla2lcIDsKK+i+suWcsOaUuemdqSA+IG5vdWNoaWthaWtha3VcIDsKK+S6pOmAmua4i+a7niA+IGtvdXRzdXVqdXV0YWlcIDsKK+elnue1jOe0sOiDniA+IHNoaW5rZWlzYWlib3VcIDsKK+alreeVjOWbo+S9kyA+IGd5b3VrYWlkYW50YWlcIDsKK+WLp+WWhOaHsuaCqiA+IGthbnplbmNob3Vha3VcIDsKK+WFseeUo+mZo+WWtiA+IGt5b3VzYW5qaW4nJ2VpXCA7CivmrKDluK3oo4HliKQgPiBrZXNzZWtpc2FpYmFuXCA7CivljYrpnanoo4XkuIEgPiBoYW5rYXdhc291dGVpXCA7Civnq7bkuonluILloLQgPiBreW91c291c2hpam91XCA7Civnn6XnmoTosqHnlKMgPiBjaGl0ZWtpemFpc2FuXCA7CivljZfljJfllY/poYwgPiBuYW5ib2t1bW9uZGFpXCA7CivnqoHnhLblpInnlbAgPiB0b3RzdXplbmhlbicnaVwgOwor6YGp5b+c6Zqc5a6zID4gdGVraW91c2hvdWdhaVwgOwor5re36LyJ6LKo54mpID4ga29uc2Fpa2Ftb3RzdVwgOwor6ICQ6Zqc5a6z5oCnID4gdGFpc2hvdWdhaXNlaVwgOwor6L+R6Kaq55u45aemID4ga2luc2hpbnNvdWthblwgOwor5aSn6YGT5ZWG5Lq6ID4gZGFpZG91c2hvdW5pblwgOwor5LiN5L+h5Lu75qGIID4gZnVzaGluJyduaW4nJ2FuXCA7Civlrq7lu7fpn7Pmpb0gPiBreXV1dGVpb25nYWt1XCA7Civnt6nooZ3lnLDluK8gPiBrYW5zaG91Y2hpdGFpXCA7CivooYDmuIXms6jlsIQgPiBrZXNzZWljaHV1c2hhXCA7CivliqDns5bnsonkubMgPiBrYXRvdWZ1bicnbnl1dVwgOwor5L+h6LKp5Lya56S+ID4gc2hpbnBhbmdhaXNoYVwgOwor5Y2B5LiA54yu6YeRID4ganV1aWNoaWtlbmtpblwgOwor56aP56WJ5LqL5qWtID4gZnVrdXNoaWppZ3lvdVwgOwor5pqW6KGj6aO96aOfID4gZGFuJydpaG91c2hva3VcIDsKK+a6luaxuuWLneaIpiA+IGp1bmtlc3Nob3VzZW5cIDsKK+mHjueUn+WLleeJqSA+IHlhc2VpZG91YnV0c3VcIDsKK+ekvuS8muePvuixoSA+IHNoYWthaWdlbnNob3VcIDsKK+WMl+asp+iruOWbvSA+IGhva3VvdXNob2tva3VcIDsKK+iHqueEtuS8keS8miA+IHNoaXplbmt5dXVrYWlcIDsKK+iJr+S6jOWNg+efsyA+IHJ5b3VuaXNlbnNla2lcIDsKK+aWh+WtpumdkuW5tCA+IGJ1bmdha3VzZWluZW5cIDsKK+S/rumBk+iqk+mhmCA+IHNodXVkb3VzZWlnYW5cIDsKK+mjn+ezp+aPtOWKqSA+IHNob2t1cnlvdWVuam9cIDsKK+ihhuitsOS4gOaxuiA+IHNodXVnaWlra2V0c3VcIDsKK+mFuOe0oOWQuOWFpSA+IHNhbnNva3l1dW55dXVcIDsKK+eUn+iHreWdiuS4uyA+IG5hbWFndXNhYm91enVcIDsKK+i7jeS6i+aWveiorSA+IGd1bmppc2hpc2V0c3VcIDsKK+mDteS+v+aMr+abvyA+IHl1dWJpbmZ1cmlrYWVcIDsKK+aWuemHneaxuuWumiA+IGhvdXNoaW5rZXR0ZWlcIDsKK+WwsealreaZgumWkyA+IHNodXVneW91amlrYW5cIDsKK+S6uuWPo+aKkeWItiA+IGppbmtvdXlva3VzZWlcIDsKK+i7jeS6uuaBqee1piA+IGd1bmppbicnb25reXV1XCA7Civkurrlt6XmtYHnlKMgPiBqaW5rb3VyeXV1emFuXCA7CivnnJ/liaPli53osqAgPiBzaGlua2Vuc2hvdWJ1XCA7CivpmqDpgIDnlJ/mtLsgPiBpbnRhaXNlaWthdHN1XCA7Civlvbnlk6HloLHphawgPiB5YWt1aW5ob3VzaHV1XCA7CivlibLlvJXmmYLplpMgPiB3YXJpYmlraWppa2FuXCA7Civnmb3okaHokITphZIgPiBzaGlyb2J1ZG91c2h1XCA7CivliLbmnI3liLbluL0gPiBzZWlmdWt1c2VpYm91XCA7Civlj6ToibLokrznhLYgPiBrb3Nob2t1c291emVuXCA7CivnlZnnva7pg7Xkvr8gPiB0b21lb2tpeXV1YmluXCA7CivoqIjnlLvlgJLnlKMgPiBrZWlrYWt1dG91c2FuXCA7Civnmobml6Lml6Xpo58gPiBrYWlraW5pc3Nob2t1XCA7CivpgKPmiKbpgKPli50gPiByZW5zZW5yZW5zaG91XCA7Civkuqvmpb3kuLvnvqkgPiBreW91cmFrdXNodWdpXCA7CivluoPlkYrlqpLkvZMgPiBrb3Vrb2t1YmFpdGFpXCA7Civlm73msJHlr6nmn7sgPiBrb2t1bWluc2hpbnNhXCA7Civmt7flo7DlkIjllLEgPiBrb25zZWlnYXNzaG91XCA7CivnpZ7pgZPkv6HogIUgPiBzaGludG91c2hpbmphXCA7Civlrp/ms4HmlL7pgIEgPiBqaWtreW91aG91c291XCA7CivliIblhYnliIbmnpAgPiBidW5rb3VidW5zZWtpXCA7CivnlKPmpa3ntYTlkIggPiBzYW5neW91a3VtaWFpXCA7Civlj5bmjajpgbjmip4gPiBzaHVzaGFzZW50YWt1XCA7CivlnLDpnIflrabogIUgPiBqaXNoaW5nYWt1c2hhXCA7CivlpKfpmKrlpKflraYgPiBvb3Nha2FkYWlnYWt1XCA7CivnoJTnqbbmlrnms5UgPiBrZW5reXV1aG91aG91XCA7Civmlq3pg4rnq7botbAgPiBkYW5rb3VreW91c291XCA7Civmr5TovIPmloflraYgPiBoaWtha3VidW5nYWt1XCA7Civlo6vovrLlt6XllYYgPiBzaGlub3Vrb3VzaG91XCA7Civkub7lnaTkuIDmk7IgPiBrZW5rb24nJ2l0dGVraVwgOwor5YGc5q2i5L+h5Y+3ID4gdGVpc2hpc2hpbmdvdVwgOwor5bu656+J54++5aC0ID4ga2VuY2hpa3VnZW5iYVwgOwor5Zu96YCj5aSn5L2/ID4ga29rdXJlbnRhaXNoaVwgOwor55yJ55uu56eA6bqXID4gYmltb2t1c2h1dXJlaVwgOwor5oOF57eS6Zqc5a6zID4gam91c2hvc2hvdWdhaVwgOwor6Ky56LOA5paw5bm0ID4ga2luZ2FzaGluJyduZW5cIDsKK+e3tOe/kuWVj+mhjCA+IHJlbnNodXVtb25kYWlcIDsKK+S6uueVnOeEoeWusyA+IGppbmNoaWt1bXVnYWlcIDsKK+S4iua1geekvuS8miA+IGpvdXJ5dXVzaGFrYWlcIDsKK+mZuOa1t+epuui7jSA+IHJpa3VrYWlrdXVndW5cIDsKK+ecn+ebuOiqv+afuyA+IHNoaW5zb3VjaG91c2FcIDsKK+ihqOaVrOioquWVjyA+IGh5b3VrZWlob3Vtb25cIDsKK+aZrumAmuaVmeiCsiA+IGZ1dHN1dWt5b3Vpa3VcIDsKK+WFrOawkeaVmeiCsiA+IGtvdW1pbmt5b3Vpa3VcIDsKK+awtOWus+WvvuetliA+IHN1aWdhaXRhaXNha3VcIDsKK+WwhuadpeWxleacmyA+IHNob3VyYWl0ZW5ib3VcIDsKK+Wwi+WVj+iqv+abuCA+IGppbm1vbmNob3VzaG9cIDsKK+edgOW8vui3nemboiA+IGNoYWt1ZGFua3lvcmlcIDsKK+Wkqeecn+eIm+a8qyA+IHRlbnNoaW5yYW5tYW5cIDsKK+WPjeWwhOelnue1jCA+IGhhbnNoYXNoaW5rZWlcIDsKK+mdkuiJsueUs+WRiiA+IGFvaXJvc2hpbmtva3VcIDsKK+mAoOW9oue+juihkyA+IHpvdWtlaWJpanV0c3VcIDsKK+WPsueahOePvuWcqCA+IHNoaXRla2lnZW56YWlcIDsKK+WGhemDqOeUn+a0uyA+IG5haWJ1c2Vpa2F0c3VcIDsKK+ani+mAoOiomOi/sCA+IGtvdXpvdWtpanV0c3VcIDsKK+WFseWtmOWFseaghCA+IGt5b3V6b25reW91ZWlcIDsKK+W4r+eKtueWseeWuSA+IHRhaWpvdWhvdXNoaW5cIDsKK+ePvuWun+S4u+e+qSA+IGdlbmppdHN1c2h1Z2lcIDsKK+W5tOOAheats+OAhSA+IG5lbicnbmVuc2Fpc2FpXCA7CivnoJTnqbboq5bmlocgPiBrZW5reXV1cm9uYnVuXCA7CivmnIDntYLnt6jmiJAgPiBzYWlzaHV1aGVuc2VpXCA7CivlsILkv67lrabmoKEgPiBzZW5zaHV1Z2Fra291XCA7Civlj7PkuK3mi6zlvKcgPiBtaWdpY2h1dWtha2tvXCA7Civkv67pgZPpmaLplbcgPiBzaHV1ZG91aW5jaG91XCA7CivlrrbnnaPnm7jntpogPiBrYXRva3Vzb3V6b2t1XCA7Civlrr/lkb3oq5bogIUgPiBzaHVrdW1laXJvbmphXCA7CivmuKnluqboqr/nr4AgPiBvbmRvY2hvdXNldHN1XCA7CivoqIDoqp7og73lipsgPiBnZW5nb25vdXJ5b2t1XCA7CivliKnmvaTov73msYIgPiByaWp1bnRzdWlreXV1XCA7CivntbHnjofnkIboq5YgPiB0b3Vzb3RzdXJpcm9uXCA7Civoia/poqjnvo7kv5cgPiByeW91ZnV1Yml6b2t1XCA7Civlm73msJHlrabmoKEgPiBrb2t1bWluZ2Fra291XCA7CivljZjngrrnlJ/mrpYgPiB0YW4nJ2lzZWlzaG9rdVwgOwor5LqM5Y2B5pel6bygID4gaGF0c3VrYW5lenVtaVwgOwor6LK/5piT5Y+O5pSvID4gYm91ZWtpc2h1dXNoaVwgOwor5Lq65bel5b+D6IeTID4gamlua291c2hpbnpvdVwgOwor5aSp5rSl5pel5ZejID4gYW1hdHN1aGl0c3VnaVwgOwor576k6ZuE5Ymy5ougID4gZ3VuJyd5dXVrYWtreW9cIDsKK+WFiOWkqeaiheavkiA+IHNlbnRlbmJhaWRva3VcIDsKK+S6uuW3peW/g+iCuiA+IGppbmtvdXNoaW5iYWlcIDsKK+WRvOWQuOS4reaeoiA+IGtva3l1dWNodXVzdXVcIDsKK+mnkOeVmemDqOmaiiA+IGNodXVyeXV1YnV0YWlcIDsKK+auuueUn+emgeaWrSA+IHNlc3Nob3VraW5kYW5cIDsKK+eEoemKremBiuiIiCA+IG11c2VuJyd5dXVreW91XCA7CivkuLvluK3lhajmqKkgPiBzaHVzZWtpemVua2VuXCA7CivnlLLkuZnkuJnkuIEgPiBrb3VvdHN1aGVpdGVpXCA7Civoo5zmrKDpgbjmjJkgPiBob2tldHN1c2Vua3lvXCA7Civlvq7ph4/liIbmnpAgPiBiaXJ5b3VidW5zZWtpXCA7CivlnLDln5/ku6PooaggPiBjaGlpa2lkYWloeW91XCA7CivnlLvkuIDkuLvnvqkgPiBrYWt1aXRzdXNodWdpXCA7Civkuqzpg73lpKflraYgPiBreW91dG9kYWlnYWt1XCA7CivnlJ/kvZPlt6XlraYgPiBzZWl0YWlrb3VnYWt1XCA7Civms6HmsqvlgJnoo5wgPiBob3VtYXRzdWtvdWhvXCA7Civnm7jntprosqHnlKMgPiBzb3V6b2t1emFpc2FuXCA7Civlr77miKbmiJDnuL4gPiB0YWlzZW5zZWlzZWtpXCA7Civlm73pmpvnqbrmuK8gPiBrb2t1c2Fpa3V1a291XCA7Civlm73pgKPnt4/kvJogPiBrb2t1cmVuc291a2FpXCA7CivlsILploDmlZnogrIgPiBzZW5tb25reW91aWt1XCA7Civllrbmpa3loLHlkYogPiBlaWd5b3Vob3Vrb2t1XCA7CivooYDmtrLmpJzmn7sgPiBrZXRzdWVraWtlbnNhXCA7CivpnanmlrDkuLvnvqkgPiBrYWt1c2hpbnNodWdpXCA7CivpnLLlh7rmmYLplpMgPiByb3NodXRzdWppa2FuXCA7CivmipXnpajnlKjntJkgPiB0b3VoeW91eW91c2hpXCA7CivolqznlKjnn7PpubggPiB5YWt1eW91c2Vra2VuXCA7CivljZjni6zooYzli5UgPiB0YW5kb2t1a291ZG91XCA7CivlpKvlqabnlJ/mtLsgPiBmdXVmdXNlaWthdHN1XCA7CivogonkvZPplqLkv4IgPiBuaWt1dGFpa2Fua2VpXCA7Civou43kuovorablr58gPiBndW5qaWtlaXNhdHN1XCA7CivmlrDlqZrml4XooYwgPiBzaGlua29ucnlva291XCA7Civpmb3mgKflj43lv5wgPiB5b3VzZWloYW4nJ25vdVwgOwor6Lu45beu5b+c5YqbID4gamlrdXNhb3VyeW9rdVwgOwor5Lq66aGe5a2m6ICFID4gamlucnVpZ2FrdXNoYVwgOwor5q2m5aOr5rCX6LOqID4gYnVzaGlraXNoaXRzdVwgOwor56ys5LiA5Lq66ICFID4gZGFpaWNoaW5pbnNoYVwgOwor5a625bqt55Sf5rS7ID4ga2F0ZWlzZWlrYXRzdVwgOwor5Y2x6Zm65Lq654mpID4ga2lrZW5qaW5idXRzdVwgOwor5aSn5a2m5pWZ5o6IID4gZGFpZ2FrdWt5b3VqdVwgOwor5YmN6YCy6YGL5YuVID4gemVuc2hpbicndW5kb3VcIDsKK+a0u+WLleaIkOaenCA+IGthdHN1ZG91c2Vpa2FcIDsKK+e3j+WQiOWPjuaUryA+IHNvdWdvdXNodXVzaGlcIDsKK+WQhOmnheWBnOi7iiA+IGtha3Vla2l0ZWlzaGFcIDsKK+inpuWqkuS9nOeUqCA+IHNob2t1YmFpc2F5b3VcIDsKK+enkeWtpuaKgOihkyA+IGthZ2FrdWdpanV0c3VcIDsKK+WNsOWIt+eUqOe0mSA+IGluc2F0c3V5b3VzaGlcIDsKK+S6uueahOiovOaLoCA+IGppbnRla2lzaG91a29cIDsKK+aKl+itsOa0u+WLlSA+IGtvdWdpa2F0c3Vkb3VcIDsKK+WFiOWPluW+l+eCuSA+IHNlbnNodXRva3V0ZW5cIDsKK+ikh+WQiOS8gealrSA+IGZ1a3Vnb3VraWd5b3VcIDsKK+eEoeW3ruWIpee0miA+IG11c2FiZXRzdWt5dXVcIDsKK+WkmuWbveexjei7jSA+IHRha29rdXNla2lndW5cIDsKK+ertuS6ieS+oeagvCA+IGt5b3Vzb3VrYWtha3VcIDsKK+ekvuS8muS6uuaeoCA+IHNoYWthaWppbndha3VcIDsKK+WVhualreWcsOWMuiA+IHNob3VneW91Y2hpa3VcIDsKK+ihqOWxpOani+mAoCA+IGh5b3Vzb3Vrb3V6b3VcIDsKK+eyvuelnuihm+eUnyA+IHNlaXNoaW4nJ2Vpc2VpXCA7CivoiKrnqbrlhpnnnJ8gPiBrb3VrdXVzaGFzaGluXCA7CivkuIrmmIfmsJfmtYEgPiBqb3VzaG91a2lyeXV1XCA7CivljJflpKfopb/mtIsgPiBraXRhdGFpc2VpeW91XCA7CivooYzmlL/mjIflsI4gPiBneW91c2Vpc2hpZG91XCA7Civlrprnva7mvIHmpa0gPiB0ZWljaGlneW9neW91XCA7CivmnIDpq5jntJrlk4EgPiBzYWlrb3VreXV1aGluXCA7Civlh7rpoK3lkb3ku6QgPiBzaHV0dG91bWVpcmVpXCA7Civlh7rooYDpgY7lpJogPiBzaHVra2V0c3VrYXRhXCA7Civpm7vlrZDlh7rniYggPiBkZW5zaGlzaHVwcGFuXCA7CivoibLntKDntLDog54gPiBzaGlraXNvc2FpYm91XCA7CivoirHlq4HooaPoo7MgPiBoYW5heW9tZWlzaG91XCA7CivlsI/lj6Pnj77ph5EgPiBrb2d1Y2hpZ2Vua2luXCA7CivljZrlrablpJrmiY0gPiBoYWt1Z2FrdXRhc2FpXCA7CivlpJbmp5jlpKflkI0gPiB0b3phbWFkYWlteW91XCA7Civlm73msJHkuLvmqKkgPiBrb2t1bWluc2h1a2VuXCA7Civlhazph5HmqKrpoJggPiBrb3VraW4nJ291cnlvdVwgOwor6L+R6YOK6L6y5qWtID4ga2lua291bm91Z3lvdVwgOwor5YWo5Zu95aSn5LyaID4gemVua29rdXRhaWthaVwgOwor5ZCf6YGK6Kmp5Lq6ID4gZ2luJyd5dXVzaGlqaW5cIDsKK+WGt+awtOaRqeaTpiA+IHJlaXN1aW1hc2F0c3VcIDsKK+absuWtpumYv+S4liA+IGt5b2t1Z2FrdWFzZWlcIDsKK+S+oeagvOertuS6iSA+IGtha2FrdWt5b3Vzb3VcIDsKK+emgeaWreeXh+eKtiA+IGtpbmRhbnNob3Vqb3VcIDsKK+ernOaUmOiZjuaQjyA+IHJ5dXVqb3Vrb2hha3VcIDsKK+ato+WRs+mHjemHjyA+IHNob3VtaWp1dXJ5b3VcIDsKK+WFrOiovOW9ueWgtCA+IGtvdXNob3V5YWt1YmFcIDsKK+a4hea2vOmjsuaWmSA+IHNlaXJ5b3VpbnJ5b3VcIDsKK+avm+euoeePvuixoSA+IG1vdWthbmdlbnNob3VcIDsKK+S9nOaIpuWcsOWfnyA+IHNha3VzZW5jaGlpa2lcIDsKK+WHuuW8teaXheiyuyA+IHNodXRjaG91cnlvaGlcIDsKK+aUvumAgeeVque1hCA+IGhvdXNvdWJhbmd1bWlcIDsKK+awuOS5heejgeefsyA+IGVpa3l1dWppc2hha3VcIDsKK+WjsuaOm+WLmOWumiA+IHVyaWtha2VrYW5qb3VcIDsKK+mWk+Wurua1t+WzoSA+IG1hbWl5YWthaWt5b3VcIDsKK+eNhOS4reaXpeiomCA+IGdva3VjaHV1bmlra2lcIDsKK+ayiOaAnem7meiAgyA+IGNoaW5zaGltb2trb3VcIDsKK+i2heWbveWutueahCA+IGNob3Vrb2trYXRla2lcIDsKK+mYsueBq+W7uueviSA+IGJvdWtha2VuY2hpa3VcIDsKK+mHkeiejeW4guWgtCA+IGtpbicneXV1c2hpam91XCA7Civpm4blm6Plv4PnkIYgPiBzaHV1ZGFuc2hpbnJpXCA7CivlhaXnpL7oqabpqJMgPiBueXV1c2hhc2hpa2VuXCA7Civpgbjmip7lgKTnvqQgPiBzZW50YWt1Y2hpZ3VuXCA7CivnorrnjofoqqTlt64gPiBrYWt1cml0c3Vnb3NhXCA7CivnrKzlm5vpmo7ntJogPiBkYWl5b25rYWlreXV1XCA7CivpgI3pgaXlrabmtL4gPiBzaG91eW91Z2FrdWhhXCA7Civpu5LngrnlkajmnJ8gPiBrb2t1dGVuc2h1dWtpXCA7Civnvo7ooZPlrabmoKEgPiBiaWp1dHN1Z2Fra291XCA7CivljYrmrbvljYrnlJ8gPiBoYW5zaGloYW5zaG91XCA7Civlv6vpgJ/pm7vou4ogPiBrYWlzb2t1ZGVuc2hhXCA7CivljZfljJfmiKbkuokgPiBuYW5ib2t1c2Vuc291XCA7CivlsI/lhZDllpjmga8gPiBzaG91bml6ZW5zb2t1XCA7CivlhoXmlL/lubLmuIkgPiBuYWlzZWlrYW5zaG91XCA7CivlhazlubPmlL/nrZYgPiBrb3VoZWlzZWlzYWt1XCA7Civlt6Xmpa3opo/moLwgPiBrb3VneW91a2lrYWt1XCA7Civlm5vop5Llm5vpnaIgPiBzaGlrYWt1c2hpbWVuXCA7CivlsJHlubTlsJHlpbMgPiBzaG91bmVuc2hvdWpvXCA7Civlho3osqnmpa3ogIUgPiBzYWloYW5neW91c2hhXCA7CivotoXpq5jpgJ/luqYgPiBjaG91a291c29rdWRvXCA7Civoqr/mn7vloLHlkYogPiBjaG91c2Fob3Vrb2t1XCA7Civmtbfpm6Plr6nliKQgPiBrYWluYW5zaGlucGFuXCA7CivnkIblrabkv67lo6sgPiByaWdha3VzaHV1c2hpXCA7CivlpJbnmoTmoLnmi6AgPiBnYWl0ZWtpa29ua3lvXCA7CivnlJ/lkb3lt6XlraYgPiBzZWltZWlrb3VnYWt1XCA7CivlpKnkvZHnpZ7liqkgPiB0ZW4nJ3l1dXNoaW5qb1wgOwor5aSW5Zu95peF6KGMID4gZ2Fpa29rdXJ5b2tvdVwgOwor5YWx5ZCM5rC05qCTID4ga3lvdWRvdXN1aXNlblwgOwor5ouh5aSn5Z2H6KGhID4ga2FrdWRhaWtpbmtvdVwgOwor5Yex5peL5bCG6LuNID4gZ2Fpc2Vuc2hvdWd1blwgOwor6ZuG56mN5Zue6LevID4gc2h1dXNla2lrYWlyb1wgOwor6KO+6YeO55Sj5qWtID4gc3Vzb25vc2FuZ3lvdVwgOwor6Y6u6a2C5biw56WeID4gY2hpbmtvbmtpc2hpblwgOwor5ZCI5qC86ICF5ZCNID4gZ291a2FrdXNoYW1laVwgOwor5pyJ6LOH5qC86ICFID4geXV1c2hpa2FrdXNoYVwgOwor5YyW5a2m5Y+N5b+cID4ga2FnYWt1aGFuJydub3VcIDsKK+mcgOimgeS+m+e1piA+IGp1eW91a3lvdWt5dXVcIDsKK+WPrOWWmuS7pOeKtiA+IHNob3VrYW5yZWlqb3VcIDsKK+ippumok+WLieW8tyA+IHNoaWtlbmJlbmt5b3VcIDsKK+a4qeWupOWKueaenCA+IG9uc2hpdHN1a291a2FcIDsKK+aciemJpOadoeiZqyA+IHl1dWtvdWpvdWNodXVcIDsKK+WGheeahOagueaLoCA+IG5haXRla2lrb25reW9cIDsKK+i/kea1t+a8gealrSA+IGtpbmthaWd5b2d5b3VcIDsKK+axuuaIpuaKleelqCA+IGtlc3NlbnRvdWh5b3VcIDsKK+WFseWQjOekvuS8miA+IGt5b3Vkb3VzaGFrYWlcIDsKK+WUkOiNieaooeanmCA+IGthcmFrdXNhbW95b3VcIDsKK+WMheearuWIh+aWrSA+IGhvdWhpc2V0c3VkYW5cIDsKK+Wumuacn+WPluW8lSA+IHRlaWtpdG9yaWhpa2lcIDsKK+S5vueHpea0l+a/ryA+IGthbnNvdXNlbnRha3VcIDsKK+mbhuWQiOWQjeipniA+IHNodXVnb3VtZWlzaGlcIDsKK+Wwj+Wei+aWsOiBniA+IGtvZ2F0YXNoaW5idW5cIDsKK+WMu+eZguaWveiorSA+IGlyeW91c2hpc2V0c3VcIDsKK+WLleeJqeayueiEgiA+IGRvdWJ1dHN1eXVzaGlcIDsKK+WPjemdouaVmeW4qyA+IGhhbm1lbmt5b3VzaGlcIDsKK+aXpeW4uOS8muipsSA+IG5pY2hpam91a2Fpd2FcIDsKK+i8uOWFpealreiAhSA+IHl1bnl1dWd5b3VzaGFcIDsKK+aomea6luS+oeagvCA+IGh5b3VqdW5rYWtha3VcIDsKK+S4jeWmiuaJi+ihkyA+IGZ1bmluc2h1anV0c3VcIDsKK+WxseeMq+S6ieitsCA+IHlhbWFuZWtvc291Z2lcIDsKK+WHuuS4lumWk+eahCA+IHNodXNzZWtlbnRla2lcIDsKK+W5tOS4reihjOS6iyA+IG5lbmNodXVneW91amlcIDsKK+mOjOWAieaZguS7oyA+IGthbWFrdXJhamlkYWlcIDsKK+eCjueXh+eXheW3oyA+IGVuc2hvdWJ5b3Vzb3VcIDsKK+azqOaEj+S6uueJqSA+IGNodXVpamluYnV0c3VcIDsKK+aXpea0quimquWWhCA+IG5pa2tvdXNoaW56ZW5cIDsKK+i/veWKoOazqOaWhyA+IHRzdWlrYWNodXVtb25cIDsKK+ethuWGmeeVpeWtlyA+IGhpc3NoYXJ5YWt1amlcIDsKK+eMruihgOmBi+WLlSA+IGtlbmtldHN1dW5kb3VcIDsKK+iInuWPsOiKuOihkyA+IGJ1dGFpZ2VpanV0c3VcIDsKK+ippumok+ebo+edoyA+IHNoaWtlbmthbnRva3VcIDsKK+aSpOmgreW+ueWwviA+IHRldHRvdXRldHN1YmlcIDsKK+eWvumiqOi/hembtyA+IHNoaXBwdXVqaW5yYWlcIDsKK+W4guWgtOeSsOWigyA+IHNoaWpvdWthbmt5b3VcIDsKK+WOn+aIkOWyqeefsyA+IGdlbnNlaWdhbnNla2lcIDsKK+WJjeWkp+e1semgmCA+IHplbmRhaXRvdXJ5b3VcIDsKK+W8t+WItumAgemChCA+IGt5b3VzZWlzb3VrYW5cIDsKK+WQjOalree1hOWQiCA+IGRvdWd5b3VrdW1pYWlcIDsKK+mbu+awl+WJg+WIgCA+IGRlbmtpa2FtaXNvcmlcIDsKK+S6i+WLmeWxgOmVtyA+IGppbXVreW9rdWNob3VcIDsKK+e1jOa4iOaUuemdqSA+IGtlaXphaWthaWtha3VcIDsKK+awkeS/l+iKuOiDvSA+IG1pbnpva3VnZWlub3VcIDsKK+WPjuepq+S6iOaDsyA+IHNodXVrYWt1eW9zb3VcIDsKK+Whqei+m+icu+ibiSA+IHNoaW9rYXJhdG9uYm9cIDsKK+e0huS9meabsuaKmCA+IHV5b2t5b2t1c2V0c3VcIDsKK+altei2heefreazoiA+IGdva3VjaG91dGFucGFcIDsKK+S4u+aoqeS+teeKryA+IHNodWtlbnNoaW5wYW5cIDsKK+S4reaAp+a0l+WJpCA+IGNodXVzZWlzZW56YWlcIDsKK+iyqOeJqeWIl+i7iiA+IGthbW90c3VyZXNzaGFcIDsKK+ihgOa4heeZguazlSA+IGtlc3NlaXJ5b3Vob3VcIDsKK+aWsOahiOeJueiosSA+IHNoaW4nJ2FudG9ra3lvXCA7Civmrbvlvoznoaznm7QgPiBzaGlnb2tvdWNob2t1XCA7CivllK/niankuLvnvqkgPiB5dWlidXRzdXNodWdpXCA7Civml6XpnLLmiKbkuokgPiBuaWNoaXJvc2Vuc291XCA7Civmlq3pg4rnq7bkuokgPiBkYW5rb3VreW91c291XCA7CivlkIznm5/mnaHntIQgPiBkb3VtZWlqb3V5YWt1XCA7CivkuIDmlKvljYPph5EgPiBpa2tha2t1c2Vua2luXCA7Civpmo7ntJrpl5jkuokgPiBrYWlreXV1dG91c291XCA7CivnhrHnoazljJbliaQgPiBuZXRzdWtvdWthemFpXCA7CivlsILnlKjlm57nt5ogPiBzZW4nJ3lvdWthaXNlblwgOwor5Lqk5o+b5a2m55SfID4ga291a2FuZ2FrdXNlaVwgOwor5YuV57ea6KiI55S7ID4gZG91c2Vua2Vpa2FrdVwgOwor5rCR5pS/6ZW35a6YID4gbWluc2VpY2hvdWthblwgOwor5Yik5pat5Lit5q2iID4gaGFuZGFuY2h1dXNoaVwgOwor5bGA5omA5YiG5bKQID4ga3lva3VzaG9idW5raVwgOwor6YCa5bi45Zu95LyaID4gdHN1dWpvdWtva2thaVwgOwor5pWw5YCk6Kej5p6QID4gc3V1Y2hpa2Fpc2VraVwgOwor6LuN5YKZ5ouh5by1ID4gZ3VuYmlrYWt1Y2hvdVwgOwor6YGp6ICF55Sf5a2YID4gdGVraXNoYXNlaXpvblwgOwor57K+56We6ZGR5a6aID4gc2Vpc2hpbmthbnRlaVwgOwor6YmE6YGT6Ly46YCBID4gdGV0c3Vkb3V5dXNvdVwgOwor56ys5LiJ6ZqO57SaID4gZGFpc2Fua2Fpa3l1dVwgOwor5Y2D5oWL5LiH5qeYID4gc2VudGFpYmFuJyd5b3VcIDsKK+mbu+WtkOW3peWtpiA+IGRlbnNoaWtvdWdha3VcIDsKK+e1jOa4iOeKtuazgSA+IGtlaXphaWpvdWt5b3VcIDsKK+ekvuS8muaVmeiCsiA+IHNoYWthaWt5b3Vpa3VcIDsKK+i+suiAleawkeaXjyA+IG5vdWtvdW1pbnpva3VcIDsKK+WFqOi6q+WFqOmciiA+IHplbnNoaW56ZW5yZWlcIDsKK+WFrOensOizh+acrCA+IGtvdXNob3VzaGlob25cIDsKK+Wkp+Wtl+eJh+WxsSA+IG9vYXpha2F0YXlhbWFcIDsKK+iWrOW4q+WmguadpSA+IHlha3VzaGlueW9yYWlcIDsKK+eZvuaIpumMrOejqCA+IGh5YWt1c2VucmVubWFcIDsKK+WQjOebn+S8keagoSA+IGRvdW1laWt5dXVrb3VcIDsKK+S4reWkruioiOeUuyA+IGNodXVvdWtlaWtha3VcIDsKK+S4reWkrumbhuaoqSA+IGNodXVvdXNodXVrZW5cIDsKK+S4ieinkuiyv+aYkyA+IHNhbmtha3Vib3Vla2lcIDsKK+WIhuaekOWMluWtpiA+IGJ1bnNla2lrYWdha3VcIDsKK+WwkeWjruWjq+WumCA+IHNob3Vzb3VzaGlrYW5cIDsKK+azleeahOagueaLoCA+IGhvdXRla2lrb25reW9cIDsKK+auuuWus+S6i+S7tiA+IHNhdHN1Z2FpamlrZW5cIDsKK+iHqueEtuWil+WPjiA+IHNoaXplbnpvdXNodXVcIDsKK+iJr+aAp+iFq+eYjSA+IHJ5b3VzZWlzaHV5b3VcIDsKK+mAmuWLpOmbu+i7iiA+IHRzdXVraW5kZW5zaGFcIDsKK+WwkeW5tOeKr+e9qiA+IHNob3VuZW5oYW56YWlcIDsKK+awtOmFuOWMlueJqSA+IHN1aXNhbmthYnV0c3VcIDsKK+imquaImuefpeW3sSA+IHNoaW5zZWtpY2hpa2lcIDsKK+WNmOeLrOaxuueulyA+IHRhbmRva3VrZXNzYW5cIDsKK+Wbvemam+aDheWLoiA+IGtva3VzYWlqb3VzZWlcIDsKK+ihl+mgrea8lOiqrCA+IGdhaXRvdWVuemV0c3VcIDsKK+aso+WWnOmbgOi6jSA+IGtpbmtpamFrdXlha3VcIDsKK+WTgeeoruaUueiJryA+IGhpbnNodWthaXJ5b3VcIDsKK+WFrOensOmmrOWKmyA+IGtvdXNob3ViYXJpa2lcIDsKK+Wbm+WFreaZguS4rSA+IHNoaXJva3VqaWNodXVcIDsKK+S6pOmAmumBruaWrSA+IGtvdXRzdXVzaGFkYW5cIDsKK+Wkp+Wtpue0m+S6iSA+IGRhaWdha3VmdW5zb3VcIDsKK+iyoeaUv+WPjuaUryA+IHphaXNlaXNodXVzaGlcIDsKK+ihhuWPguS4oemZoiA+IHNodXVzYW5yeW91aW5cIDsKK+iAkOeBq+W7uueviSA+IHRhaWtha2VuY2hpa3VcIDsKK+imluWKm+aknOafuyA+IHNoaXJ5b2t1a2Vuc2FcIDsKK+Wwj+WIgOe0sOW3pSA+IGtvZ2F0YW5hemFpa3VcIDsKK+izqueWkeW/nOetlCA+IHNoaXRzdWdpb3V0b3VcIDsKK+aNnOafu+W9k+WxgCA+IHNvdXNhdG91a3lva3VcIDsKK+eFp+iRieeLguiogCA+IHRlcmloYWt5b3VnZW5cIDsKK+WHuuW+gei7jeS6uiA+IHNodXNzZWlndW5qaW5cIDsKK+aUvuWwhOiDvembsiA+IGhvdXNoYW5vdWd1bW9cIDsKK+ekvuS8muaUv+etliA+IHNoYWthaXNlaXNha3VcIDsKK+mbu+altembu+S9jSA+IGRlbmt5b2t1ZGVuJydpXCA7Civkurrlt6XpgI/mnpAgPiBqaW5rb3V0b3VzZWtpXCA7CivopIflkIjlqpLkvZMgPiBmdWt1Z291YmFpdGFpXCA7CivkvY/msJHmipXnpaggPiBqdXVtaW50b3VoeW91XCA7Civlt6Xmpa3lnLDluK8gPiBrb3VneW91Y2hpdGFpXCA7CivlkbzlkLjlm7Dpm6MgPiBrb2t5dXVrb24nJ25hblwgOwor6aSK6K235pa96KitID4geW91Z29zaGlzZXRzdVwgOwor6Ly45Ye66KaP5Yi2ID4geXVzaHV0c3VraXNlaVwgOwor5oim5Yqb57WE5oiQID4gc2Vucnlva3Vzb3NlaVwgOwor5rG66YG45oqV56WoID4ga2Vzc2VudG91aHlvdVwgOwor57Wx5LiA6KaL6KejID4gdG91aXRzdWtlbmthaVwgOwor5YKs55yg55mC5rOVID4gc2FpbWlucnlvdWhvdVwgOwor5bel5qWt6KO95ZOBID4ga291Z3lvdXNlaWhpblwgOwor5b255Lq65qC55oCnID4geWFrdW5pbmtvbmpvdVwgOwor54us5oi/55uj56aBID4gZG9rdWJvdWthbmtpblwgOwor5bCO6YCa5oq15oqXID4gZG91dHN1dXRlaWtvdVwgOwor5Y2U6Kq/5Li7576pID4ga3lvdWNob3VzaHVnaVwgOwor5Lya6KiI5aCx5ZGKID4ga2Fpa2VpaG91a29rdVwgOwor5Y+w5rm+5rW35bOhID4gdGFpd2Fua2Fpa3lvdVwgOwor5pel5riF5oim5LqJID4gbmlzc2hpbnNlbnNvdVwgOwor5a6j6KiA55m66KGoID4gc2VuZ2VuaGFwcHlvdVwgOwor5aSp5L2T5YaZ55yfID4gdGVudGFpc2hhc2hpblwgOwor6YeN6YeP5Zm45pWwID4ganV1cnlvdXRvbnN1dVwgOwor5piO6Y+h5q2i5rC0ID4gbWVpa3lvdXNoaXN1aVwgOwor5bm06ZaT6KiI55S7ID4gbmVua2Fua2Vpa2FrdVwgOwor5Y+j6L+w562G6KiYID4ga291anV0c3VoaWtraVwgOwor5Zu96Zqb6YCa6LKoID4ga29rdXNhaXRzdXVrYVwgOwor5YGl5bq36Ki65patID4ga2Vua291c2hpbmRhblwgOwor5qGD5bGx5pmC5LujID4gbW9tb3lhbWFqaWRhaVwgOwor6IG35aC057WQ5amaID4gc2hva3ViYWtla2tvblwgOwor55Kw5aKD5ZWP6aGMID4ga2Fua3lvdW1vbmRhaVwgOwor6Ki85Lq65Zaa5ZWPID4gc2hvdW5pbmthbm1vblwgOwor5pS75pKD5pa55ZCRID4ga291Z2VraWhvdWtvdVwgOwor56u25LqJ5aOy6LK3ID4ga3lvdXNvdWJhaWJhaVwgOwor6JGX5L2c5qip5rOVID4gY2hvc2FrdWtlbmhvdVwgOwor5Zu96Zqb56S+5LyaID4ga29rdXNhaXNoYWthaVwgOwor5paw5Yi26auY5qChID4gc2hpbnNlaWtvdWtvdVwgOwor5a+E55Sf6Jmr55eHID4ga2lzZWljaHV1c2hvdVwgOwor5Lit5oqY5bi95a2QID4gbmFrYW9yZWJvdXNoaVwgOwor5YWs6ZaL57e057+SID4ga291a2FpcmVuc2h1dVwgOwor57WM5riI5pS/562WID4ga2VpemFpc2Vpc2FrdVwgOwor5ZCI5oiQ5YaZ55yfID4gZ291c2Vpc2hhc2hpblwgOwor5paw6YCy5L2c5a62ID4gc2hpbnNoaW5zYWtrYVwgOwor6YW457Sg5L6b57WmID4gc2Fuc29reW91a3l1dVwgOwor5Lqk6YCa5YWs56S+ID4ga291dHN1dWtvdXNoYVwgOwor5rS75q666Ieq5ZyoID4ga2Fzc2F0c3VqaXphaVwgOwor6Zu76YCB5YaZ55yfID4gZGVuc291c2hhc2hpblwgOwor5YWo55+l5YWo6IO9ID4gemVuY2hpemVuJydub3VcIDsKK+WbveWLouiqv+afuyA+IGtva3VzZWljaG91c2FcIDsKK+a1gemAmuapn+aniyA+IHJ5dXV0c3V1a2lrb3VcIDsKK+WFteWZqOi8uOWHuiA+IGhlaWtpeXVzaHV0c3VcIDsKK+Wkqeeah+W0h+aLnSA+IHRlbicnbm91c3V1aGFpXCA7Civkv53oqLzkurropoEgPiBob3Nob3VuaW4nJ3lvdVwgOwor5rWu6YGK55Sf54mpID4gZnV5dXVzZWlidXRzdVwgOwor57WC6Lqr5L+d6Zm6ID4gc2h1dXNoaW5ob2tlblwgOwor5oe46LOe6KuW5paHID4ga2Vuc2hvdXJvbmJ1blwgOwor5biC5aC05pS56Z2pID4gc2hpam91a2Fpa2FrdVwgOwor6Zu75Yqb6ZyA6KaBID4gZGVucnlva3VqdXlvdVwgOwor6Ieo5bqK5bCL5ZWPID4gcmluc2hvdWppbm1vblwgOwor6Zmw5qW157ea566hID4gaW5reW9rdXNlbmthblwgOwor5peL5YWJ5YiG5p6QID4gc2Vua291YnVuc2VraVwgOwor5YyW55+z54eD5paZID4ga2FzZWtpbmVucnlvdVwgOwor6Zu75L+h54K65pu/ID4gZGVuc2hpbmthd2FzZVwgOwor5oeQ5Lit6Zu754GvID4ga2FpY2h1dWRlbnRvdVwgOwor5omN6Imy5YW85YKZID4gc2Fpc2hva3VrZW5iaVwgOwor5oyH5bCO6KaB6aCYID4gc2hpZG91eW91cnlvdVwgOwor6YO15L6/5bm06YeRID4geXV1YmluJyduZW5raW5cIDsKK+mWoumAo+WVhuWTgSA+IGthbnJlbnNob3VoaW5cIDsKK+mZkOeVjOeKtuazgSA+IGdlbmthaWpvdWt5b3VcIDsKK+ePvuWcqOWujOS6hiA+IGdlbnphaWthbnJ5b3VcIDsKK+WItue0hOS8neaQrCA+IHNlaXlha3VkZW5wYW5cIDsKK+S4uOS4gOmAsemWkyA+IG1hcnVpc3NodXVrYW5cIDsKK+W3pealreWbo+WcsCA+IGtvdWd5b3VkYW5jaGlcIDsKK+altealvea1hOWcnyA+IGdva3VyYWt1am91ZG9cIDsKK+WMluWtpuWIhuaekCA+IGthZ2FrdWJ1bnNla2lcIDsKK+WQjOeCueaxuuWLnSA+IGRvdXRlbmtlc3Nob3VcIDsKK+S9k+WklumbouiEsSA+IHRhaWdhaXJpZGF0c3VcIDsKK+eUn+eJqeWFteWZqCA+IHNlaWJ1dHN1aGVpa2lcIDsKK+WNmOmfs+evgOiqniA+IHRhbicnb25zZXRzdWdvXCA7CivmlLvmkoPpmorlvaIgPiBrb3VnZWtpdGFpa2VpXCA7Civms5XkurrmiYDlvpcgPiBob3VqaW5zaG90b2t1XCA7CivlpKfpgIbkuovku7YgPiB0YWlneWFrdWppa2VuXCA7Civljp/lp4vmlZnkvJogPiBnZW5zaGlreW91a2FpXCA7CivkvqHmoLzljZTlrpogPiBrYWtha3VreW91dGVpXCA7Civlr5PmhI/lsI/oqqwgPiBndXVpc2hvdXNldHN1XCA7CivlsILploDmioDooZMgPiBzZW5tb25naWp1dHN1XCA7Civmi6HlvLXlj6/og70gPiBrYWt1Y2hvdWthbm91XCA7CivmgKXpgLLkuLvnvqkgPiBreXV1c2hpbnNodWdpXCA7CivoqJjlv7XlvI/lhbggPiBraW5lbnNoaWtpdGVuXCA7Civnq7blkIjohLHnt5ogPiBreW91Z291ZGFzc2VuXCA7CivmmpHkuK3kvJHmmocgPiBzaG9jaHV1a3l1dWthXCA7CivnuYHmlofnuJ/npLwgPiBoYW5idW5qb2t1cmVpXCA7Civnm67mqJnnrqHnkIYgPiBtb2t1aHlvdWthbnJpXCA7CivmlrnlkJHoprPlv7UgPiBob3Vrb3VrYW4nJ25lblwgOwor5rW35bqV6Zu75L+hID4ga2FpdGVpZGVuc2hpblwgOwor5qWt55WM5YuV5ZCRID4gZ3lvdWthaWRvdWtvdVwgOwor5b+F6KaB57WM6LK7ID4gaGl0c3V5b3VrZWloaVwgOwor5rC0546J5qih5qeYID4gbWl6dXRhbWFtb3lvdVwgOwor5Ye65b6B5a625pePID4gc2h1c3NlaWthem9rdVwgOwor57WM5bi45Y+O5pSvID4ga2Vpam91c2h1dXNoaVwgOwor5Zyw55CD56eR5a2mID4gY2hpa3l1dWthZ2FrdVwgOwor5oOF5aCx5oqA6KGTID4gam91aG91Z2lqdXRzdVwgOwor56m65Lit5YiG6KejID4ga3V1Y2h1dWJ1bmthaVwgOwor5by35Yi25Yq05YONID4ga3lvdXNlaXJvdWRvdVwgOwor6ZqO57Sa5oSP6K2YID4ga2Fpa3l1dWlzaGlraVwgOwor5Y2a5aOr6KuW5paHID4gaGFrdXNoaXJvbmJ1blwgOwor5Lq65qC85b2i5oiQID4gamlua2FrdWtlaXNlaVwgOwor57W557O457Sh57i+ID4ga2Vuc2hpYm91c2VraVwgOwor6IG35aC06ZeY5LqJID4gc2hva3ViYXRvdXNvdVwgOwor5pWZ6IKy5a2m6YOoID4ga3lvdWlrdWdha3VidVwgOwor5aSJ6YCf6KOF572uID4gaGVuc29rdXNvdWNoaVwgOwor55yf5YaG55yf54+gID4gc2hpbicnZW5zaGluanVcIDsKK+Wbveawkee1jOa4iCA+IGtva3VtaW5rZWl6YWlcIDsKK+WGhemdouaPj+WGmSA+IG5haW1lbmJ5b3VzaGFcIDsKK+WqkuS9k+e1guerryA+IGJhaXRhaXNodXV0YW5cIDsKK+W/g+eQhueZguazlSA+IHNoaW5yaXJ5b3Vob3VcIDsKK+aAp+eahOmWouS/giA+IHNlaXRla2lrYW5rZWlcIDsKK+eEoemKremjsumjnyA+IG11c2VuJydpbnNob2t1XCA7Civnr4Tnlofmlofms5UgPiBoYW5jaHV1YnVucG91XCA7CivplbfmnJ/lgJ/mrL4gPiBjaG91a2lzaGFra2FuXCA7CivlhajkvZPpm4blkIggPiB6ZW50YWlzaHV1Z291XCA7Civlj7PlsI/mi6zlvKcgPiBtaWdpc2hvdWtha2tvXCA7Civku67mg7PmlbXlm70gPiBrYXNvdXRla2lrb2t1XCA7CivmpbXmpb3lvoDnlJ8gPiBnb2t1cmFrdW91am91XCA7CivliJ3nrYnmlZnogrIgPiBzaG90b3VreW91aWt1XCA7CivooYzmlL/lkb3ku6QgPiBneW91c2VpbWVpcmVpXCA7Civlr77lnLDmlLvmkoMgPiB0YWljaGlrb3VnZWtpXCA7Civoh6rnhLbmj4/lhpkgPiBzaGl6ZW5ieW91c2hhXCA7Civph5Hono3os4fmnKwgPiBraW4nJ3l1dXNoaWhvblwgOwor54Sh6IO95Yqb6ICFID4gbXVub3VyeW9rdXNoYVwgOwor5YyW5a2m5bel5qWtID4ga2FnYWt1a291Z3lvdVwgOwor6KGM5pS/5Yy655S7ID4gZ3lvdXNlaWt1a2FrdVwgOwor5a2m57+S6L6e5YW4ID4gZ2FrdXNodXVqaXRlblwgOwor6Zao6Zal5pS/5rK7ID4ga2VpYmF0c3VzZWlqaVwgOwor5LqL5qWt5ouh5YWFID4gamlneW91a2FrdWp1dVwgOwor6L6y5p2R5bel5qWtID4gbm91c29ua291Z3lvdVwgOwor56eL6Zuo5YmN57eaID4gYWtpc2FtZXplbnNlblwgOwor5YWx5ZCM6L6y5aC0ID4ga3lvdWRvdW5vdWpvdVwgOwor5aWz5qip5ouh5by1ID4gam9rZW5rYWt1Y2hvdVwgOwor6Kyb57+S5Lya5aC0ID4ga291c2h1dWthaWpvdVwgOwor5rGa5p+T54mp6LOqID4gb3NlbmJ1c3NoaXRzdVwgOwor54q25rOB5Yik5patID4gam91a3lvdWhhbmRhblwgOwor5b2T6Kmy5a6Y5bqBID4gdG91Z2Fpa2FuY2hvdVwgOwor5Luy5LuL6LK/5piTID4gY2h1dWthaWJvdWVraVwgOwor5Zu95YaF5biC5aC0ID4ga29rdW5haXNoaWpvdVwgOwor5LiA5p6a55yL5p2/ID4gaWNoaW1haWthbmJhblwgOwor54Sh57ea6YCa5L+hID4gbXVzZW50c3V1c2hpblwgOwor57WM5riI5aSn5Zu9ID4ga2VpemFpdGFpa29rdVwgOwor5Y+N56S+5Lya55qEID4gaGFuc2hha2FpdGVraVwgOwor5LiA5Yip5LiA5a6zID4gaWNoaXJpaWNoaWdhaVwgOwor5LqM5b6L6IOM5Y+NID4gbmlyaXRzdWhhaWhhblwgOwor5b6p5YWD5L2c5qWtID4gZnVrdWdlbnNhZ3lvdVwgOwor5Lq66ZaT54iG5by+ID4gbmluZ2VuYmFrdWRhblwgOwor5a2j56+A5Yq05YONID4ga2lzZXRzdXJvdWRvdVwgOwor6Zm46LuN5aSn6IejID4gcmlrdWd1bmRhaWppblwgOwor5pat5oq15oqX6KeSID4gZGFudGVpa291a2FrdVwgOwor6YCa5L+h5qmf6ZaiID4gdHN1dXNoaW5raWthblwgOwor5YaZ55yf5Ye454mIID4gc2hhc2hpbnRvcHBhblwgOwor5YyW5a2m55mC5rOVID4ga2FnYWt1cnlvdWhvdVwgOwor57ax57SA57Kb5q2jID4ga291a2lzaHVrdXNlaVwgOwor56iO5Yi25pS56Z2pID4gemVpc2Vpa2Fpa2FrdVwgOwor6Kq/5YGc6KOB5YikID4gY2hvdXRlaXNhaWJhblwgOwor54Sh572q5Yik5rG6ID4gbXV6YWloYW5rZXRzdVwgOwor6LuN5LqL5oim55WlID4gZ3VuamlzZW5yeWFrdVwgOwor6Ieo5bqK6Kmm6aiTID4gcmluc2hvdXNoaWtlblwgOwor6Ziy5q2i5oyH6YedID4gYm91c2hpc2hpc2hpblwgOwor5rCX6LGh6Kaz5risID4ga2lzaG91a2Fuc29rdVwgOwor6Iie5Y+w55Sf5rS7ID4gYnV0YWlzZWlrYXRzdVwgOwor5aSn5ZCN5peF6KGMID4gZGFpbXlvdXJ5b2tvdVwgOwor5L2c5qWt55mC5rOVID4gc2FneW91cnlvdWhvdVwgOwor5aSW5Zu954K65pu/ID4gZ2Fpa29rdWthd2FzZVwgOwor6YO956uL6auY5qChID4gdG9yaXRzdWtvdWtvdVwgOwor5b2i5byP5Li7576pID4ga2Vpc2hpa2lzaHVnaVwgOwor5YyW5a2m5bel5a2mID4ga2FnYWt1a291Z2FrdVwgOwor6KeS6YGL5YuV6YePID4ga2FrdXVuZG91cnlvdVwgOwor5a6M5YWo54Sh5qygID4ga2FuemVubXVrZXRzdVwgOwor5pS/562W5rG65a6aID4gc2Vpc2FrdWtldHRlaVwgOwor5b6q55Kw5bCP5pWwID4ganVua2Fuc2hvdXN1dVwgOwor5aSn6Z+T5rCR5Zu9ID4gZGFpa2FubWlua29rdVwgOwor6YGp55So5qWt5YuZID4gdGVraXlvdWd5b3VtdVwgOwor5oim5LqJ5paH5a2mID4gc2Vuc291YnVuZ2FrdVwgOwor5Lmd5aSp55u05LiLID4ga3l1dXRlbmNob2trYVwgOwor6Z2i5b6T6IW56IOMID4gbWVuanV1ZnVrdWhhaVwgOwor56K65L+d5aSx5pWXID4ga2FrdWhvc2hpcHBhaVwgOwor5YWx6YCa6KiA6KqeID4ga3lvdXRzdXVnZW5nb1wgOwor5by35Yi25Yem5YiGID4ga3lvdXNlaXNob2J1blwgOwor5pat5bSW57W25aOBID4gZGFuZ2FpemVwcGVraVwgOwor55Sj5qWt56S+5LyaID4gc2FuZ3lvdXNoYWthaVwgOwor5ZCE56iu5a2m5qChID4ga2FrdXNodWdha2tvdVwgOwor5YiG6Kej5YaZ55yfID4gYnVua2Fpc2hhc2hpblwgOwor5Y2w5Yi35aqS5L2TID4gaW5zYXRzdWJhaXRhaVwgOwor56CU56m25omA5aCxID4ga2Vua3l1dXNob2hvdVwgOwor5Lmx5bCE5Lmx5pKDID4gcmFuc2hhcmFuZ2VraVwgOwor5qOS6IW557W25YCSID4gaG91ZnVrdXpldHRvdVwgOwor54m56Kix5L615a6zID4gdG9ra3lvc2hpbmdhaVwgOwor5a6a6aGN6LKv6YeRID4gdGVpZ2FrdWNob2tpblwgOwor5YWs6KGG5Lyd5YuVID4ga291c2h1dWRlbmRvdVwgOwor6YmE6YGT6aas6LuKID4gdGV0c3Vkb3ViYXNoYVwgOwor5YaF5Zu954K65pu/ID4gbmFpa29rdWthd2FzZVwgOwor56iu56iu5qeY5qeYID4gc2h1anVzYW1hemFtYVwgOwor5Zac6Imy5rqA6Z2iID4ga2lzaG9rdW1hbm1lblwgOwor5byB5Yil57Sg5oCnID4gYmVuYmV0c3Vzb3NlaVwgOwor5L2c5oim5ZG95LukID4gc2FrdXNlbm1laXJlaVwgOwor6K2w6ZW36IG35qipID4gZ2ljaG91c2hva2tlblwgOwor5ZWT6JKZ5oCd5r2uID4ga2VpbW91c2hpY2hvdVwgOwor5YWs5ai85YWo5buDID4ga291c2hvdXplbnBhaVwgOwor5a++6Z2i5Lqk6YCaID4gdGFpbWVua291dHN1dVwgOwor5LiA5ZWP5LiA562UID4gaWNoaW1vbicnaXR0b3VcIDsKK+mbu+WtkOWvhuW6piA+IGRlbnNoaW1pdHN1ZG9cIDsKK+i2heS9juS+oeagvCA+IGNob3V0ZWlrYWtha3VcIDsKK+S4gOaLrOWjsuiytyA+IGlra2F0c3ViYWliYWlcIDsKK+WItue0hOadoeS7tiA+IHNlaXlha3Vqb3VrZW5cIDsKK+S8keaIpuS8muirhyA+IGt5dXVzZW5rYWlkYW5cIDsKK+eJiOaoqeS+teWusyA+IGhhbmtlbnNoaW5nYWlcIDsKK+malOmboueXheajnyA+IGtha3VyaWJ5b3V0b3VcIDsKK+eUn+muruaWmeWTgSA+IHNlaXNlbnJ5b3VoaW5cIDsKK+S4iuaYh+WCvuWQkSA+IGpvdXNob3VrZWlrb3VcIDsKK+S4jeazleWFpeWbvSA+IGZ1aG91bnl1dWdva3VcIDsKK+aVmemkiuWtpumDqCA+IGt5b3V5b3VnYWt1YnVcIDsKK+mrmOS/oemgvOaApyA+IGtvdXNoaW5yYWlzZWlcIDsKK+WutuWuheaNnOe0oiA+IGthdGFrdXNvdXNha3VcIDsKK+ioiOeUu+e1jOa4iCA+IGtlaWtha3VrZWl6YWlcIDsKK+S4iei7uOippumokyA+IHNhbmppa3VzaGlrZW5cIDsKK+acgOe1guautemajiA+IHNhaXNodXVkYW5rYWlcIDsKK+WPjuWFpeWNsOe0mSA+IHNodXVueXV1aW5zaGlcIDsKK+WNiueGn+e3tOW3pSA+IGhhbmp1a3VyZW5rb3VcIDsKK+WGmeecn+WIpOWumiA+IHNoYXNoaW5oYW50ZWlcIDsKK+e1jOa4iOims+W/tSA+IGtlaXphaWthbicnbmVuXCA7Civos4Pph5HmsLTmupYgPiBjaGluZ2luc3VpanVuXCA7Civllrbmpa3lj47mlK8gPiBlaWd5b3VzaHV1c2hpXCA7CivkuInnm7jkuqTmtYEgPiBzYW5zb3Vrb3VyeXV1XCA7CivntYzllrbmiKbnlaUgPiBrZWllaXNlbnJ5YWt1XCA7CivmmKXlpI/np4vlhqwgPiBzaHVua2FzaHV1dG91XCA7CivnhKbngrnmt7HluqYgPiBzaG91dGVuc2hpbmRvXCA7CivkuIDmmYLmiYDlvpcgPiBpY2hpamlzaG90b2t1XCA7CivmnYnoirHnsonnl4cgPiBzdWdpa2FmdW5zaG91XCA7CivkurrmsJHmipXnpaggPiBqaW5taW50b3VoeW91XCA7CivlkIjlvpPpgKPooaEgPiBnYXNzaG91cmVua291XCA7Civng4/ph47osYzosYYgPiBrYXJhc3Vub2VuZG91XCA7CivnhKHoirjlpKfpo58gPiBtdWdlaXRhaXNob2t1XCA7Civlm73pmpvpgKPlkIggPiBrb2t1c2FpcmVuZ291XCA7CivnhrHkuqTmj5vlmaggPiBuZXRzdWtvdWthbmtpXCA7CivlroflrpnplovnmbogPiB1Y2h1dWthaWhhdHN1XCA7CivmvKLmlofoqJPoqq0gPiBrYW5idW5rdW5kb2t1XCA7CivnqbrplpPmhJ/oppogPiBrdXVrYW5rYW5rYWt1XCA7CivkuozkurrkuInohJogPiBuaW5pbnNhbmt5YWt1XCA7CivmqKnlipvkuLvnvqkgPiBrZW5yeW9rdXNodWdpXCA7Civli5/pm4bluoPlkYogPiBib3NodXVrb3Vrb2t1XCA7Civlrabnv5LnkIboq5YgPiBnYWt1c2h1dXJpcm9uXCA7Civpp5Dou4rnpoHmraIgPiBjaHV1c2hha2luc2hpXCA7CivlhbHlkIzlrqPoqIAgPiBreW91ZG91c2VuZ2VuXCA7CivlpKnlnLDnpZ7mmI4gPiB0ZW5jaGlzaGlubWVpXCA7CivoqbPntLDmg4XloLEgPiBzaG91c2Fpam91aG91XCA7CivniZvpo7Lppqzpo58gPiBneXV1aW5iYXNob2t1XCA7Civph5Hln47piYTlo4EgPiBraW5qb3V0ZXBwZWtpXCA7Civpm4bkuK3orJvnvqkgPiBzaHV1Y2h1dWtvdWdpXCA7CivlpInlvaLomavpoZ4gPiBoZW5rZWljaHV1cnVpXCA7CivlhaznmoTlubTph5EgPiBrb3V0ZWtpbmVua2luXCA7CivpgLHliIrpm5HoqowgPiBzaHV1a2FuemFzc2hpXCA7CivntKHnuL7lt6XloLQgPiBib3VzZWtpa291am91XCA7CivliJ3nrYnmlbDlraYgPiBzaG90b3VzdXVnYWt1XCA7CivmrovlrZjml6XmlbAgPiB6YW5zb24nJ25pc3N1dVwgOwor5Zu96Zqb5bGV6ZaLID4ga29rdXNhaXRlbmthaVwgOwor5bm05Yqf5bqP5YiXID4gbmVua291am9yZXRzdVwgOwor5ZWG5qWt6YO95biCID4gc2hvdWd5b3V0b3NoaVwgOwor5Lit6YCU6YCA5a2mID4gY2h1dXRvdGFpZ2FrdVwgOwor5YWx5ZCM5Lya6KaLID4ga3lvdWRvdWthaWtlblwgOwor5oay5rOV5a2m6ICFID4ga2VucG91Z2FrdXNoYVwgOwor5oCl6Lui55u05LiLID4ga3l1dXRlbmNob2trYVwgOwor5Y6f5a2Q54iG5by+ID4gZ2Vuc2hpYmFrdWRhblwgOwor55m75bGx6YmE6YGTID4gdG96YW50ZXRzdWRvdVwgOwor54mp55CG5YyW5a2mID4gYnV0c3VyaWthZ2FrdVwgOwor57Wm5rC05Yi26ZmQID4ga3l1dXN1aXNlaWdlblwgOwor5pyd6a6u5oim5LqJID4gY2hvdXNlbnNlbnNvdVwgOwor5auM5rCX55Sf54mpID4ga2Vua2lzZWlidXRzdVwgOwor6YG45oqe54q25oWLID4gc2VudGFrdWpvdXRhaVwgOwor6auY5bOw5YWr5bqnID4ga291aG91aGFjaGl6YVwgOwor5LiN5raI5YyW54mpID4gZnVzaG91a2FidXRzdVwgOwor5rOV55qE5paH5pu4ID4gaG91dGVraWJ1bnNob1wgOwor56eY5a+G6YG45oyZID4gaGltaXRzdXNlbmt5b1wgOwor5Zyw55CD5YyW5a2mID4gY2hpa3l1dWthZ2FrdVwgOwor5paw54ax5biv5Yy6ID4gc2hpbicnbmV0dGFpa3VcIDsKK+e1kOWpmuaMh+i8qiA+IGtla2tvbicneXViaXdhXCA7CivlloTpmqPlj4vlpb0gPiB6ZW5yaW4nJ3l1dWtvdVwgOwor5Y+X5Y+W5omL5b2iID4gdWtldG9yaXRlZ2F0YVwgOwor5rG6566X5aCx5ZGKID4ga2Vzc2FuaG91a29rdVwgOwor5b+D55CG5a2m6ICFID4gc2hpbnJpZ2FrdXNoYVwgOwor6KuW55CG5b2i5byPID4gcm9ucmlrZWlzaGlraVwgOwor5L2O6aCt5bmz6LqrID4gdGVpdG91aGVpc2hpblwgOwor5re35ZCI6L6y5qWtID4ga29uZ291bm91Z3lvdVwgOwor5paH6Iq45L2c5ZOBID4gYnVuZ2Vpc2FrdWhpblwgOwor5pyJ6ZaR6ZqO57SaID4geXV1a2Fua2Fpa3l1dVwgOwor5Y+L5aW95p2h57SEID4geXV1a291am91eWFrdVwgOwor5YmH5aSp5Y6756eBID4gc29rdXRlbmt5b3NoaVwgOwor5YaZ5a6f5Li7576pID4gc2hhaml0c3VzaHVnaVwgOwor5Zu96Zqb5biC5aC0ID4ga29rdXNhaXNoaWpvdVwgOwor5LqM6YeN55Sf5rS7ID4gbmlqdXVzZWlrYXRzdVwgOwor6Ieo5qmf55uu5qiZID4gcmlua2ltb2t1aHlvdVwgOwor5ZWG5qWt55m76KiYID4gc2hvdWd5b3V0b3VraVwgOwor6buE6Imy5Lq656iuID4gb3VzaG9rdWppbnNodVwgOwor5ZGo5rOi5aSJ6Kq/ID4gc2h1dWhhaGVuY2hvdVwgOwor5qyg6Zml5ZWG5ZOBID4ga2Vra2Fuc2hvdWhpblwgOwor5b6T5bGe5aSJ5pWwID4ganV1em9rdWhlbnN1dVwgOwor5pei57SE6KGo54++ID4ga2l5YWt1aHlvdWdlblwgOwor5LiN6Imv5bCR5bm0ID4gZnVyeW91c2hvdW5lblwgOwor5ris6YeP5oqA5birID4gc29rdXJ5b3VnaXNoaVwgOwor5qOu576F5LiH6LGhID4gc2hpbnJhYmFuc2hvdVwgOwor55Sj5qWt5qeL6YCgID4gc2FuZ3lvdWtvdXpvdVwgOwor5qyn5bee6Ku45Zu9ID4gb3VzaHV1c2hva29rdVwgOwor6YCa5Yuk5Zyw542EID4gdHN1dWtpbmppZ29rdVwgOwor5pi86ZaT5Lq65Y+jID4gY2h1dWthbmppbmtvdVwgOwor5oCn5qC85Yik5patID4gc2Vpa2FrdWhhbmRhblwgOwor5L+h6aC86Zai5L+CID4gc2hpbnJhaWthbmtlaVwgOwor5ZCM5pyf6YCa5L+hID4gZG91a2l0c3V1c2hpblwgOwor5LiJ6YeN54Sm54K5ID4gc2FuanV1c2hvdXRlblwgOwor5oqV56Wo57eP5pWwID4gdG91aHlvdXNvdXN1dVwgOwor5aSn5bmF5Yi35pawID4gb29oYWJhc2Fzc2hpblwgOwor5YiH5pat5oKj6ICFID4gc2V0c3VkYW5rYW5qYVwgOwor6KKW5omL5YKN6KazID4gc2h1dXNodWJvdWthblwgOwor5ouN5omL5Zad6YeHID4gaGFrdXNodWthc3NhaVwgOwor5L2c5qWt5Luu6KqsID4gc2FneW91a2FzZXRzdVwgOwor57WM5riI5oiQ6ZW3ID4ga2VpemFpc2VpY2hvdVwgOwor5ZCI5oiQ5a6d55+zID4gZ291c2VpaG91c2VraVwgOwor57WQ57eg57WE57mUID4ga2V0dGVpc29zaGlraVwgOwor5YaG6YyQ5puy57eaID4gZW5zdWlreW9rdXNlblwgOwor6IGW5L2T5oud6aCYID4gc2VpdGFpaGFpcnlvdVwgOwor5bq25rCR6YeR6J6NID4gc2hvbWlua2luJyd5dXVcIDsKK+S9k+epjeaKteaKlyA+IHRhaXNla2l0ZWlrb3VcIDsKK+WNlOWQjOe1hOWQiCA+IGt5b3Vkb3VrdW1pYWlcIDsKK+WFiOS9j+awkeaXjyA+IHNlbmp1dW1pbnpva3VcIDsKK+e1seS4gOaIpue3miA+IHRvdWl0c3VzZW5zZW5cIDsKK+WQjOaZgumAmuiosyA+IGRvdWppdHN1dXlha3VcIDsKK+WRqOefpeW+ueW6lSA+IHNodXVjaGl0ZXR0ZWlcIDsKK+iJsembo+i+m+iLpiA+IGthbicnbmFuc2hpbmt1XCA7CivmlL/lhZrlhoXplqMgPiBzZWl0b3VuYWlrYWt1XCA7Civnj77lnLDloLHlkYogPiBnZW5jaGlob3Vrb2t1XCA7Civmh7jos57llY/poYwgPiBrZW5zaG91bW9uZGFpXCA7Civlgq3oiLnlpZHntIQgPiB5b3VzZW5rZWl5YWt1XCA7Civku4rkuIrlpKnnmocgPiBraW5qb3V0ZW4nJ25vdVwgOwor5LuW6Kaa55eH54q2ID4gdGFrYWt1c2hvdWpvdVwgOwor5qyg6aOf5YWQ56ulID4ga2Vzc2hva3VqaWRvdVwgOwor5aiv5qW955Wq57WEID4gZ29yYWt1YmFuZ3VtaVwgOwor57K+56We5Yy75a2mID4gc2Vpc2hpbicnaWdha3VcIDsKK+WGheWuueiovOaYjiA+IG5haXlvdXNob3VtZWlcIDsKK+WHuua4r+WBnOatoiA+IHNodWtrb3V0ZWlzaGlcIDsKK+Wkq+Wppue0hOadnyA+IGZ1dWZ1eWFrdXNva3VcIDsKK+aXheihjOalreiAhSA+IHJ5b2tvdWd5b3VzaGFcIDsKK+S9v+W+kuS/oee1jCA+IHNoaXRvc2hpbmt5b3VcIDsKK+Wkluizh+WwjuWFpSA+IGdhaXNoaWRvdW55dXVcIDsKK+aIkOS6uuaVmeiCsiA+IHNlaWppbmt5b3Vpa3VcIDsKK+WFrOW8j+S4u+e+qSA+IGtvdXNoaWtpc2h1Z2lcIDsKK+S4gOeNsuWNg+mHkSA+IGlra2Fra3VzZW5raW5cIDsKK+ikh+aVsOalreWLmSA+IGZ1a3VzdXVneW91bXVcIDsKK+emgeassuS4u+e+qSA+IGtpbicneW9rdXNodWdpXCA7CivnqbropbLorabloLEgPiBrdXVzaHV1a2VpaG91XCA7CivnlKPmpa3lho3nlJ8gPiBzYW5neW91c2Fpc2VpXCA7Civos4PosrjkvqHmoLwgPiBjaGludGFpa2FrYWt1XCA7CivmiKbpl5jliY3lk6ggPiBzZW50b3V6ZW5zaG91XCA7CivkuIDoqIDkuIDooYwgPiBpY2hpZ2VuJydpa2tvdVwgOwor5ZC55aWP5qW95ZujID4gc3Vpc291Z2FrdWRhblwgOwor55u057ea6Led6ZuiID4gY2hva3VzZW5reW9yaVwgOwor6L+R6Kaq57WQ5amaID4ga2luc2hpbmtla2tvblwgOwor57Gz6Iux5LuP6JitID4gYmVpZWlidXRzdXJhblwgOwor5YWx5ZCM5L2c5qWtID4ga3lvdWRvdXNhZ3lvdVwgOwor5rib5Y+N5pS/562WID4gZ2VudGFuc2Vpc2FrdVwgOwor5b+D55CG5L2c5oimID4gc2hpbnJpc2FrdXNlblwgOwor5b+D6IeT56e75qSNID4gc2hpbnpvdWlzaG9rdVwgOwor5pyJ6ZmQ6LKs5Lu7ID4geXV1Z2Vuc2VraW5pblwgOwor57WE57mU5YaN57eoID4gc29zaGlraXNhaWhlblwgOwor56aP6Z+z5pWZ5LyaID4gZnVrdWlua3lvdWthaVwgOwor6Zai5L+C5Ymv6KmeID4ga2Fua2VpZnVrdXNoaVwgOwor5Y+y5paZ57eo57qCID4gc2hpcnlvdWhlbnNhblwgOwor54yf5a6Y6YGL5YuVID4gcnlvdWthbicndW5kb3VcIDsKK+iCieS9k+WKtOWDjSA+IG5pa3V0YWlyb3Vkb3VcIDsKK+WPgueFp+aWh+eMriA+IHNhbnNob3VidW5rZW5cIDsKK+mfs+alveebo+edoyA+IG9uZ2FrdWthbnRva3VcIDsKK+W5s+i6q+S9jumgrSA+IGhlaXNoaW50ZWl0b3VcIDsKK+WFseeUo+WIhuWtkCA+IGt5b3VzYW5idW5zaGlcIDsKK+S6iOe0hOWHuueJiCA+IHlveWFrdXNodXBwYW5cIDsKK+eCreawtOWMlueJqSA+IHRhbnN1aWthYnV0c3VcIDsKK+i/keS7o+aWh+WtpiA+IGtpbmRhaWJ1bmdha3VcIDsKK+WcsOaWueWumOW6gSA+IGNoaWhvdWthbmNob3VcIDsKK+Wbm+WIhuS6lOijgiA+IHNoaWJ1bmdvcmV0c3VcIDsKK+e1jOa4iOWbnuW+qSA+IGtlaXphaWthaWZ1a3VcIDsKK+Wun+WtmOS4u+e+qSA+IGppdHN1em9uc2h1Z2lcIDsKK+aBkua4qeWLleeJqSA+IGtvdW9uZG91YnV0c3VcIDsKK+mHjuiPnOS4gOeavyA+IHlhc2FpaGl0b3NhcmFcIDsKK+W9ouW8j+irlueQhiA+IGtlaXNoaWtpcm9ucmlcIDsKK+Wkp+Wtpua1quS6uiA+IGRhaWdha3Vyb3VuaW5cIDsKK+aaq+WumuWNlOWumiA+IHphbnRlaWt5b3V0ZWlcIDsKK+aUvumAgeWkp+WtpiA+IGhvdXNvdWRhaWdha3VcIDsKK+azleW+i+WItuW6piA+IGhvdXJpdHN1c2VpZG9cIDsKK+S/oeeUqOmHkeW6qyA+IHNoaW4nJ3lvdWtpbmtvXCA7CivmnInlkI3nhKHlrp8gPiB5dXVtZWltdWppdHN1XCA7CivntYLouqvkvJrlk6EgPiBzaHV1c2hpbmthaWluXCA7CivkuInop5LplqLmlbAgPiBzYW5rYWt1a2Fuc3V1XCA7CivnrJHmraLljYPkuIcgPiBzaG91c2hpc2VuYmFuXCA7CivmloflrabljZrlo6sgPiBidW5nYWt1aGFrYXNlXCA7Civluq3lhYjnm7jloLQgPiBuaXdhc2FraXNvdWJhXCA7CivmtojosrvogIXlgbQgPiBzaG91aGlzaGFnYXdhXCA7Civnsr7npZ7mp4vpgKAgPiBzZWlzaGlua291em91XCA7CivpiYTpqqjlt6XkuosgPiB0ZWtrb3RzdWtvdWppXCA7Civlm73liKnmsJHnpo8gPiBrb2t1cmltaW5wdWt1XCA7Civou73kvbvmta7oloQgPiBrZWljaG91ZnVoYWt1XCA7CivmspbnqY3lubPph44gPiBjaHV1c2VraWhlaXlhXCA7CivpharovrLoo73lk4EgPiByYWt1bm91c2VpaGluXCA7CivorJ3nvarluoPlkYogPiBzaGF6YWlrb3Vrb2t1XCA7Civlr4zlm73lvLflhbUgPiBmdWtva3VreW91aGVpXCA7CivlpJbpg63lm6PkvZMgPiBnYWlrYWt1ZGFudGFpXCA7CivlhbHlkIzkvIHmpa0gPiBreW91ZG91a2lneW91XCA7Civpmo7ntJrnpL7kvJogPiBrYWlreXV1c2hha2FpXCA7Civlr77lpJbmlL/nrZYgPiB0YWlnYWlzZWlzYWt1XCA7Civnsr7pnIrkv6Hku7AgPiBzZWlyZWlzaGlua291XCA7CivvvKfvvKLnkIboq5YgPiBqaVwgzIRiaVwgzIRyaXJvblwgOwor5pil6aKo6aeY6JWpID4gc2h1bnB1dXRhaXRvdVwgOwor5q275YiR5Z+36KGMID4gc2hpa2Vpc2hpa2tvdVwgOwor5LqM6ICF5oqe5LiAID4gbmlzaGF0YWt1aXRzdVwgOwor6YW45oCn5Y+N5b+cID4gc2Fuc2VpaGFuJydub3VcIDsKK+awtOmBk+aWmemHkSA+IHN1aWRvdXJ5b3VraW5cIDsKK+epuuawl+WKm+WtpiA+IGt1dWtpcmlraWdha3VcIDsKK+WVhuWjsuawl+izqiA+IHNob3ViYWlrYXRhZ2lcIDsKK+iomOmMsuaWh+WtpiA+IGtpcm9rdWJ1bmdha3VcIDsKK+W9vOaWueatpOaWuSA+IGFjaGlyYWtvY2hpcmFcIDsKK+eri+i6q+WHuuS4liA+IHJpc3NoaW5zaHVzc2VcIDsKK+ato+mHkemKgOihjCA+IHNob3VraW5naW5rb3VcIDsKK+WFsea4iOS6i+alrSA+IGt5b3VzYWlqaWd5b3VcIDsKK+WFiOihjOaKgOihkyA+IHNlbmtvdWdpanV0c3VcIDsKK+Wbs+abuOebrumMsiA+IHRvc2hvbW9rdXJva3VcIDsKK+iovOaLoOmaoOa7hSA+IHNob3Vrb2lubWV0c3VcIDsKK+ertuS6iemWouS/giA+IGt5b3Vzb3VrYW5rZWlcIDsKK+S6i+WJjeaknOmWsiA+IGppemVua2VuJydldHN1XCA7CivooYzmlL/lh6bliIYgPiBneW91c2Vpc2hvYnVuXCA7CivlhajpnaLluoPlkYogPiB6ZW5tZW5rb3Vrb2t1XCA7Civlm73li5nplbflrpggPiBrb2t1bXVjaG91a2FuXCA7Civnsr7npZ7nl4XpmaIgPiBzZWlzaGluYnlvdWluXCA7Civlm5vljYHkuZ3ml6UgPiBzaGlqdXVrdW5pY2hpXCA7CivmnZPlrZDlrpropo8gPiBzaGFrdXNoaWpvdWdpXCA7Civlj6/loZHnianos6ogPiBrYXNvYnVzc2hpdHN1XCA7CivljYrovrLljYrmvIEgPiBoYW4nJ25vdWhhbmd5b1wgOwor5pq06aOy5pq06aOfID4gYm91aW5ib3VzaG9rdVwgOwor56CU56m25YiG6YeOID4ga2Vua3l1dWJ1bicneWFcIDsKK+S6uuWPo+WvhuW6piA+IGppbmtvdW1pdHN1ZG9cIDsKK+S6uui6q+WjsuiytyA+IGppbnNoaW5iYWliYWlcIDsKK+auuuS6uuacqumBgiA+IHNhdHN1amlubWlzdWlcIDsKK+i2s+WIqeaZguS7oyA+IGFzaGlrYWdhamlkYWlcIDsKK+W8vuedgOi3nemboiA+IGRhbmNoYWt1a3lvcmlcIDsKK+WLleeJqeaknOafuyA+IGRvdWJ1dHN1a2Vuc2FcIDsKK+iWrOmkjOeZguazlSA+IHlha3VqaXJ5b3Vob3VcIDsKK+S6uumWk+WbveWunSA+IG5pbmdlbmtva3Vob3VcIDsKK+e3iuimgeWcsOW9oiA+IGtpbicneW91Y2hpa2VpXCA7CivluILloLTmiJDplbcgPiBzaGlqb3VzZWljaG91XCA7CivmjIflkI3mipXnpaggPiBzaGltZWl0b3VoeW91XCA7CivlkYnotorlkIzoiJ8gPiBnb2V0c3Vkb3VzaHV1XCA7CivlroXlnLDpgKDmiJAgPiB0YWt1Y2hpem91c2VpXCA7Civnsr7npZ7lirTlg40gPiBzZWlzaGlucm91ZG91XCA7Civlrrbml4/oqIjnlLsgPiBrYXpva3VrZWlrYWt1XCA7Civplovlj6PkuIDnlaogPiBrYWlrb3VpY2hpYmFuXCA7Civnm7Tns7vljZHlsZ4gPiBjaG9ra2VpaGl6b2t1XCA7CivlibLos6bmlrnlvI8gPiBrYXBwdWhvdXNoaWtpXCA7Civli6TlirTlpKfooYYgPiBraW5yb3V0YWlzaHV1XCA7CivmnKrlj47lhaXph5EgPiBtaXNodXVueXV1a2luXCA7Civpoqjkv5fllrbmpa0gPiBmdXV6b2t1ZWlneW91XCA7CivmsJHkv5fpn7Pmpb0gPiBtaW56b2t1b25nYWt1XCA7CivmtbfmsLTmtbTloLQgPiBrYWlzdWl5b2t1am91XCA7CivpgKPlkIjkvZzmiKYgPiByZW5nb3VzYWt1c2VuXCA7CivkuKHok4vmmYLoqIggPiByeW91YnV0YWRva2VpXCA7CivkuLvlrqLou6LlgJIgPiBzaHVrYWt1dGVudG91XCA7CivmkI3nm4rli5jlrpogPiBzb24nJ2VraWthbmpvdVwgOwor5YuV5Yqb6ZmN5LiLID4gZG91cnlva3Vrb3VrYVwgOwor5LiJ6KeS6ZeY5LqJID4gc2Fua2FrdXRvdXNvdVwgOwor6YCA5a2m5Yem5YiGID4gdGFpZ2FrdXNob2J1blwgOwor5a6f6aiT5p2Q5paZID4gamlra2VuemFpcnlvdVwgOwor6YeN6KaB55Sj5qWtID4ganV1eW91c2FuZ3lvdVwgOwor5ray5L2T54eD5paZID4gZWtpdGFpbmVucnlvdVwgOwor5Lyd6YGT6ZuG5LyaID4gZGVuZG91c2h1dWthaVwgOwor5YWr6Z2i5YWt6IeCID4gaGFjaGltZW5yb3BwaVwgOwor5omN5rCX54Wl55m6ID4gc2Fpa2lrYW5wYXRzdVwgOwor5oSf5oOF6KGo54++ID4ga2Fuam91aHlvdWdlblwgOwor5Lq656iu5beu5YilID4gamluc2h1c2FiZXRzdVwgOwor6Iux5Zu955m66Z+zID4gZWlrb2t1aGF0c3VvblwgOwor54Sh6ZmQ5pWw5YiXID4gbXVnZW5zdXVyZXRzdVwgOwor5oKq6YCG54Sh6YGTID4gYWt1Z3lha3VtdWRvdVwgOwor54af5oWu5pat6KGMID4ganVrdXJ5b2RhbmtvdVwgOwor55u05Lqk5bqn5qiZID4gY2hva2tvdXphaHlvdVwgOwor5YyX5aSq5bmz5rSLID4ga2l0YXRhaWhlaXlvdVwgOwor55S35aOw5ZCI5ZSxID4gZGFuc2VpZ2Fzc2hvdVwgOwor6IOD6IW455eF5a2mID4gaWNob3VieW91Z2FrdVwgOwor5LiJ6KeS6Zai5L+CID4gc2Fua2FrdWthbmtlaVwgOwor5rCR5peP6Z+z5qW9ID4gbWluem9rdW9uZ2FrdVwgOwor5Y2Y54us5Lya6KaLID4gdGFuZG9rdWthaWtlblwgOwor6LKh55Sj55u457aaID4gemFpc2Fuc291em9rdVwgOwor5LiK5pm65aSn5a2mID4gam91Y2hpZGFpZ2FrdVwgOwor5YOn5bq155Sf5rS7ID4gc291YW5zZWlrYXRzdVwgOwor5rOV5b6L55So6KqeID4gaG91cml0c3V5b3Vnb1wgOwor6ZuM6ZuE6YG45oqeID4gc2hpeXV1c2VudGFrdVwgOwor55m+6Iqx57ma5LmxID4gaHlha2thcnlvdXJhblwgOwor6Z+z5qW955mC5rOVID4gb25nYWt1cnlvdWhvdVwgOwor5L2P5rCR55m76YyyID4ganV1bWludG91cm9rdVwgOwor5pat5bGk5YaZ55yfID4gZGFuc291c2hhc2hpblwgOwor5Y2g6aCY5Zyw5bivID4gc2VucnlvdWNoaXRhaVwgOwor6Jas5ZOB5Lya56S+ID4geWFrdWhpbmdhaXNoYVwgOwor5Ye65Y+j6Kq/5p+7ID4gZGVndWNoaWNob3VzYVwgOwor6IO95YuV5YWN55arID4gbm91ZG91bWVuJydla2lcIDsKK+WcqOeVmemCpuS6uiA+IHphaXJ5dXVob3VqaW5cIDsKK+m6puiXgee0sOW3pSA+IG11Z2l3YXJhc2Fpa3VcIDsKK+W3peiKuOe+juihkyA+IGtvdWdlaWJpanV0c3VcIDsKK+iIquepuuaUu+aSgyA+IGtvdWt1dWtvdWdla2lcIDsKK+mHjemHj+mBuOaJiyA+IGp1dXJ5b3VzZW5zaHVcIDsKK+i1pOeri+e+veidtiA+IGFrYXRhdGVoYWNob3VcIDsKK+aEm+mzpemAsemWkyA+IGFpY2hvdXNodXVrYW5cIDsKK+W3pealreWMluWtpiA+IGtvdWd5b3VrYWdha3VcIDsKK+aKgOihk+aPkOaQuiA+IGdpanV0c3V0ZWlrZWlcIDsKK+S4reaAp+WtkOaYnyA+IGNodXVzZWlzaGlzZWlcIDsKK+WFrOWFseS6i+alrSA+IGtvdWt5b3VqaWd5b3VcIDsKK+S4iui2iuacrOe3miA+IGpvdWV0c3Vob25zZW5cIDsKK+eEoeWEn+Wlkee0hCA+IG11c2hvdWtlaXlha3VcIDsKK+mWg+WFiembu+eQgyA+IHNlbmtvdWRlbmt5dXVcIDsKK+WbveexjeiogOiqniA+IGtva3VzZWtpZ2VuZ29cIDsKK+Wumua4qeWLleeJqSA+IHRlaW9uZG91YnV0c3VcIDsKK+epuuWJjee1tuW+jCA+IGt1dXplbnpldHN1Z29cIDsKK+atpuWKm+WkluS6pCA+IGJ1cnlva3VnYWlrb3VcIDsKK+aIuOexjeaKhOacrCA+IGtvc2VraXNob3Vob25cIDsKK+acnemuruWNiuWztiA+IGNob3VzZW5oYW50b3VcIDsKK+mdnuW4uOWPrOmbhiA+IGhpam91c2hvdXNodXVcIDsKK+WFqOiIrOWJjeWTqCA+IHplbnBhbnplbnNob3VcIDsKK+Wkp+S5l+S7j+aVmSA+IGRhaWpvdWJ1a2t5b3VcIDsKK+WIhuaekOippumokyA+IGJ1bnNla2lzaGlrZW5cIDsKK+W5vemciuWxi+aVtyA+IHl1dXJlaXlhc2hpa2lcIDsKK+acieeUo+majue0miA+IHl1dXNhbmthaWt5dXVcIDsKK+aoqeWKm+aUv+ayuyA+IGtlbnJ5b2t1c2VpamlcIDsKK+iEhei/q+mbu+ipsSA+IGt5b3VoYWt1ZGVud2FcIDsKK+iIueiNt+iovOWIuCA+IGZ1bmFuaXNob3VrZW5cIDsKK+aJi+aXl+S/oeWPtyA+IHRlYmF0YXNoaW5nb3VcIDsKK+aghOmkiuWkseiqvyA+IGVpeW91c2hpdGNob3VcIDsKK+S9nOazgeaMh+aVsCA+IHNha2t5b3VzaGlzdXVcIDsKK+ebuOS6kumAmuS/oSA+IHNvdWdvdHN1dXNoaW5cIDsKK+ihqOWxpOmbquW0qSA+IGh5b3Vzb3VuYWRhcmVcIDsKK+eBveWus+WvvuetliA+IHNhaWdhaXRhaXNha3VcIDsKK+S6i+Wun+iqv+afuyA+IGppaml0c3VjaG91c2FcIDsKK+aXpee1jOaWsOiBniA+IG5pa2tlaXNoaW5idW5cIDsKK+S4remWk+mBuOaMmSA+IGNodXVrYW5zZW5reW9cIDsKK+W4gumVt+mBuOaMmSA+IHNoaWNob3VzZW5reW9cIDsKK+ayiOmZjea1t+WyuCA+IGNoaW5rb3VrYWlnYW5cIDsKK+ekvuS8muemj+eliSA+IHNoYWthaWZ1a3VzaGlcIDsKK+irluWKn+ihjOizniA+IHJvbmtvdWtvdXNob3VcIDsKK+Wun+i3tei6rOihjCA+IGppc3Nlbmt5dXVrb3VcIDsKK+ato+WJr+S6jOmAmiA+IHNlaWZ1a3VuaXRzdXVcIDsKK+S6pOaEn+elnue1jCA+IGtvdWthbnNoaW5rZWlcIDsKK+a2iOiyu+mdqeWRvSA+IHNob3VoaWtha3VtZWlcIDsKK+WwguS7u+ism+W4qyA+IHNlbicnbmlua291c2hpXCA7CivlpKfph4/nlJ/nlKMgPiB0YWlyeW91c2Vpc2FuXCA7CivmnIDpq5jmqZ/lr4YgPiBzYWlrb3VraW1pdHN1XCA7CivnrqHlvKbmpb3ms5UgPiBrYW5nZW5nYWt1aG91XCA7CivmlrDlk4HlkIzmp5ggPiBzaGlucGluZG91eW91XCA7CivlgpnojZLosq/ok4QgPiBiaWtvdWNob2NoaWt1XCA7CivoloTlv5flvLHooYwgPiBoYWt1c2hpamFra291XCA7Civli6TlirTpmo7ntJogPiBraW5yb3VrYWlreXV1XCA7Civml6XljbDplqLkv4IgPiBuaWNoaWlua2Fua2VpXCA7CivplbfmnJ/oqIjnlLsgPiBjaG91a2lrZWlrYWt1XCA7CivkuI3mmYLnnYDpmbggPiBmdWppY2hha3VyaWt1XCA7CivmjpLms4TlmajlrpggPiBoYWlzZXRzdWtpa2FuXCA7Civoi7Hmlofop6Pph4ggPiBlaWJ1bmthaXNoYWt1XCA7CivlhY3osqzmnaHpoIUgPiBtZW5zZWtpam91a291XCA7CivpiYTpgZPnt5rot68gPiB0ZXRzdWRvdXNlbnJvXCA7CivmlLvmkoPmhYvli6IgPiBrb3VnZWtpdGFpc2VpXCA7CivlrprmnJ/mmIfntaYgPiB0ZWlraXNob3VreXV1XCA7CivoqJjov7Dmlofms5UgPiBraWp1dHN1YnVucG91XCA7Civoh6PnsY3pmY3kuIsgPiBzaGluc2VraWtvdWthXCA7Civngq3phbjpo7LmlpkgPiB0YW5zYW4nJ2lucnlvdVwgOwor5biC5aC05ouh5aSnID4gc2hpam91a2FrdWRhaVwgOwor57K+5a+G5qmf5qKwID4gc2VpbWl0c3VraWthaVwgOwor5qmf5YuV6K2m5a+fID4ga2lkb3VrZWlzYXRzdVwgOwor5bm06ZaT5Y+O55uKID4gbmVua2Fuc2h1dWVraVwgOwor5Luy6KOB6KOB5a6aID4gY2h1dXNhaXNhaXRlaVwgOwor5YG15a+f6KaB5ZOhID4gdGVpc2F0c3V5b3VpblwgOwor5paH6Jed5pil56eLID4gYnVuZ2Vpc2h1bmp1dVwgOwor5Lq65b2i6Iqd5bGFID4gbmluZ3lvdXNoaWJhaVwgOwor5rC05Lit55y86Y+hID4gc3VpY2h1dW1lZ2FuZVwgOwor5YWs5bqP6Imv5L+XID4ga291am9yeW91em9rdVwgOwor5ama5YmN5Lqk5riJID4ga29uemVua291c2hvdVwgOwor5aSq6Zm96buS54K5ID4gdGFpeW91a29rdXRlblwgOwor5LiK5b6h5LiA5Lq6ID4ga2FtaWdvaWNoaW5pblwgOwor5Li76KaB5bel5qWtID4gc2h1eW91a291Z3lvdVwgOwor5LiL562J5YuV54mpID4ga2F0b3Vkb3VidXRzdVwgOwor6Iel6Jaq5ZiX6IOGID4gZ2FzaGluc2hvdXRhblwgOwor6Ki655mC5pSv5o+0ID4gc2hpbnJ5b3VzaGllblwgOwor6Lui5Zyw55mC6aSKID4gdGVuY2hpcnlvdXlvdVwgOwor5LiH6IO96YG45omLID4gYmFuJydub3VzZW5zaHVcIDsKK+aVmeS8mumfs+alvSA+IGt5b3VrYWlvbmdha3VcIDsKK+WNg+i8ieS4gOmBhyA+IHNlbnphaWljaGlndXVcIDsKK+Wjsuiyt+Wlkee0hCA+IGJhaWJhaWtlaXlha3VcIDsKK+S9j+WuheWcsOW4ryA+IGp1dXRha3VjaGl0YWlcIDsKK+a4m+mAn+ijhee9riA+IGdlbnNva3Vzb3VjaGlcIDsKK+S9j+WuheWVj+mhjCA+IGp1dXRha3Vtb25kYWlcIDsKK+WFjeeWq+ihgOa4hSA+IG1lbicnZWtpa2Vzc2VpXCA7CivmoLjlj43lv5zngokgPiBrYWt1aGFuJydub3Vyb1wgOwor5pS+5bCE57ea5a2mID4gaG91c2hhc2VuZ2FrdVwgOwor5rWB6YCa57WM6LevID4gcnl1dXRzdXVrZWlyb1wgOwor5bCL5bi45LiA5qeYID4gamluam91aWNoaXlvdVwgOwor5Zu95pyJ6LKh55SjID4ga29rdXl1dXphaXNhblwgOwor5biC5rCR6ZqO57SaID4gc2hpbWlua2Fpa3l1dVwgOwor6KiA6Kqe55+l6K2YID4gZ2VuZ29jaGlzaGlraVwgOwor5YWs5YWx5pS+6YCBID4ga291a3lvdWhvdXNvdVwgOwor5paR54q257WE57mUID4gaGFuam91c29zaGlraVwgOwor6YeN54iG5pKD5qmfID4ganV1YmFrdWdla2lraVwgOwor5ama5aSW5Lqk5riJID4ga29uZ2Fpa291c2hvdVwgOwor5Luy6KOB6KOB5YikID4gY2h1dXNhaXNhaWJhblwgOwor5L6v54i15aSr5Lq6ID4ga291c2hha3VmdWppblwgOwor5pyJ6Imy6YeO6I+cID4geXV1c2hva3V5YXNhaVwgOwor6ZuG5Zuj6Ki06KifID4gc2h1dWRhbnNvc2hvdVwgOwor5LiA5qyh55Sj5qWtID4gaWNoaWppc2FuZ3lvdVwgOwor57e057+S5LiN6LazID4gcmVuc2h1dWJ1c29rdVwgOwor5ZWG6Ii55a2m5qChID4gc2hvdXNlbmdha2tvdVwgOwor6bqm6JeB6Jy76JuJID4gbXVnaXdhcmF0b25ib1wgOwor5pyJ6ZmQ6ZuG5ZCIID4geXV1Z2Vuc2h1dWdvdVwgOwor6L+95Yqg5paZ6YeRID4gdHN1aWthcnlvdWtpblwgOworzqDkuK3plpPlrZAgPiBwYWljaHV1a2Fuc2hpXCA7CivpgaDpmpTmlZnogrIgPiBlbmtha3VreW91aWt1XCA7CivohLPohIrpq4TmtrIgPiBub3VzZWtpenVpZWtpXCA7CivmnbHopb/ljZfljJcgPiB0b3V6YWluYW5ib2t1XCA7CivoqLHlrrnnt5rph48gPiBreW95b3VzZW5yeW91XCA7CivmraPmnK3lgKTmrrUgPiBzaG91ZnVkYW5lZGFuXCA7Civlt67liKXplqLnqI4gPiBzYWJldHN1a2FuemVpXCA7CivkuK3nrYnlrabmoKEgPiBjaHV1dG91Z2Fra291XCA7CivnrqHlvKbmpb3lm6MgPiBrYW5nZW5nYWt1ZGFuXCA7Civlr4TnlJ/nlJ/niakgPiBraXNlaXNlaWJ1dHN1XCA7CivkuLvmqKnlm57lvqkgPiBzaHVrZW5rYWlmdWt1XCA7CivkuKHpg6jnpZ7pgZMgPiByeW91YnVzaGludG91XCA7CivntYLmpa3mmYLplpMgPiBzaHV1Z3lvdWppa2FuXCA7CivntbnluIPkuIDlt7sgPiBrZW5wdWhpdG9tYWtpXCA7CivpgY7lnKflr4bmr5QgPiBrYWF0c3VtaXRzdWhpXCA7Civoh6rnhLbpgbjmip4gPiBzaGl6ZW5zZW50YWt1XCA7Civlj43lv5zpgJ/luqYgPiBoYW4nJ25vdXNva3Vkb1wgOwor5YG15a+f6KGb5pifID4gdGVpc2F0c3VlaXNlaVwgOwor5q2j5Ymv6K2w6ZW3ID4gc2VpZnVrdWdpY2hvdVwgOwor56We5YmN57WQ5amaID4gc2hpbnplbmtla2tvblwgOwor5rOV55qE5omL5q61ID4gaG91dGVraXNodWRhblwgOwor5L2c5qWt6aCY5Z+fID4gc2FneW91cnlvdWlraVwgOwor5bm06YeR6Ki85pu4ID4gbmVua2luc2hvdXNob1wgOwor5Lqk6YCa5aao5a6zID4ga291dHN1dWJvdWdhaVwgOwor55S65p2R5ZCI5L21ID4gY2hvdXNvbmdhcHBlaVwgOwor5pWZ5Lya5peL5rOVID4ga3lvdWthaXNlbnBvdVwgOwor5bmV6Jep5L2T5Yi2ID4gYmFrdWhhbnRhaXNlaVwgOwor56ys5LiA5Y2w6LGhID4gZGFpaWNoaWluc2hvdVwgOwor55yf56m65YyF6KOFID4gc2hpbmt1dWhvdXNvdVwgOwor55uj5p+76Ki86LehID4ga2Fuc2FzaG91c2VraVwgOwor6KqY5bCO6Zu75rWBID4geXV1ZG91ZGVucnl1dVwgOwor5b6p5pen5L2c5qWtID4gZnVra3l1dXNhZ3lvdVwgOwor5pCN5a6z6LOg5YSfID4gc29uZ2FpYmFpc2hvdVwgOwor5oOz5YOP5aaK5aigID4gc291em91bmluc2hpblwgOwor6Jma5b+D5Z2m5oeQID4ga3lvc2hpbnRhbmthaVwgOwor6ICQ6ZyH5qeL6YCgID4gdGFpc2hpbmtvdXpvdVwgOwor5pyJ6ZmQ57Sa5pWwID4geXV1Z2Vua3l1dXN1dVwgOwor5Zu95Zyf6KiI55S7ID4ga29rdWRva2Vpa2FrdVwgOwor55Sf5a2Y56u25LqJID4gc2Vpem9ua3lvdXNvdVwgOwor5biC5rCR6Z2p5ZG9ID4gc2hpbWlua2FrdW1laVwgOwor5aSn57Wx6aCY6YG4ID4gZGFpdG91cnlvdXNlblwgOwor6KOc57+S5pWZ6IKyID4gaG9zaHV1a3lvdWlrdVwgOwor5Y+45Luk6ZW35a6YID4gc2hpcmVpY2hvdWthblwgOwor6LOD6YeR5L2T57O7ID4gY2hpbmdpbnRhaWtlaVwgOwor5YWo5Lq65pWZ6IKyID4gemVuamlua3lvdWlrdVwgOwor5a6Y5oi/6ZW35a6YID4ga2FuYm91Y2hvdWthblwgOwor5LyB5qWt56eY5a+GID4ga2lneW91aGltaXRzdVwgOwor5q665Lq65LqL5Lu2ID4gc2F0c3VqaW5qaWtlblwgOwor5Ye25oKq54qv572qID4ga3lvdWFrdWhhbnphaVwgOwor5aSp54S26LOH5rqQID4gdGVuJyduZW5zaGlnZW5cIDsKK+eZvuWnk+S4gOaPhiA+IGh5YWt1c2hvdWlra2lcIDsKK+e3j+WQiOWkp+WtpiA+IHNvdWdvdWRhaWdha3VcIDsKK+S7j+mgguWwiuWLnSA+IGJ1Y2hvdXNvbnNob3VcIDsKK+WNg+W3ruS4h+WIpSA+IHNlbnNhYmFuYmV0c3VcIDsKK+e2sueKtue1hOe5lCA+IG1vdWpvdXNvc2hpa2lcIDsKK+esrOS4gOmDqOmVtyA+IGRhaWljaGlidWNob3VcIDsKK+a6lua6luaxuuWLnSA+IGp1bmp1bmtlc3Nob3VcIDsKK+Wkp+WSjOawkeaXjyA+IHlhbWF0b21pbnpva3VcIDsKK+W5tOW5tOats+atsyA+IG5lbicnbmVuc2Fpc2FpXCA7CivlnLDmrrvlpInli5UgPiBjaGlrYWt1aGVuZG91XCA7CivosqHmlL/mlLnpnakgPiB6YWlzZWlrYWlrYWt1XCA7CivlhbHlkIzoqIjnrpcgPiBreW91ZG91a2Vpc2FuXCA7CivlhpnnnJ/pm7vpgIEgPiBzaGFzaGluZGVuc291XCA7CivkuI3oia/oqLrmlq0gPiBmdXJ5b3VzaGluZGFuXCA7CivmsLTnlKPlpKflraYgPiBzdWlzYW5kYWlnYWt1XCA7CivljZjlvI/ngavlsbEgPiB0YW5zaGlraWthemFuXCA7CivkuIDliIbkuIDljpggPiBpY2hpYnVpY2hpcmluXCA7Civlrp/lnLDmpJzoqLwgPiBqaXRjaGlrZW5zaG91XCA7CivljJfmuIXkuovlpIkgPiBob2t1c2hpbmppaGVuXCA7CivkurrpnaLnjaPlv4MgPiBuaW5tZW5qdXVzaGluXCA7CivoqIjnlLvmrrXpmo4gPiBrZWlrYWt1ZGFua2FpXCA7CivnpL7lk6Hpo5/loIIgPiBzaGFpbnNob2t1ZG91XCA7CivmjafohbnntbblgJIgPiBob3VmdWt1emV0dG91XCA7Civpg7Xkvr/mlpnph5EgPiB5dXViaW5yeW91a2luXCA7CivkupTljYHkuInmrKEgPiBnb2p1dXNhbnRzdWdpXCA7CivlhKrli53liqPmlZcgPiB5dXVzaG91cmVwcGFpXCA7Civlv6vpgJ/liJfou4ogPiBrYWlzb2t1cmVzc2hhXCA7Civpm6PmsJHmnaHntIQgPiBuYW5taW5qb3V5YWt1XCA7Civlm73pmpvmlL7pgIEgPiBrb2t1c2FpaG91c291XCA7Civlha3ljYHkvZnlt54gPiByb2t1anV1eW9zaHV1XCA7CivmgKXooYzliJfou4ogPiBreXV1a291cmVzc2hhXCA7Civmo67mnpflnLDluK8gPiBzaGlucmluY2hpdGFpXCA7Civpjpblm73mlL/nrZYgPiBzYWtva3VzZWlzYWt1XCA7CivlhbfosaHnvo7ooZMgPiBndXNob3ViaWp1dHN1XCA7Civmh5Dnn7PmlpnnkIYgPiBrYWlzZWtpcnlvdXJpXCA7CivnsKHmmJPpo5/loIIgPiBrYW4nJ2lzaG9rdWRvdVwgOwor5pqX6buS5aSn6Zm4ID4gYW5rb2t1dGFpcmlrdVwgOwor5Y+N5YuV6Z2p5ZG9ID4gaGFuZG91a2FrdW1laVwgOwor5YWt5qC55riF5rWEID4gcm9ra29uc2hvdWpvdVwgOwor5ZWG5qWt5Li7576pID4gc2hvdWd5b3VzaHVnaVwgOwor5L+h6aC86Ya45oiQID4gc2hpbnJhaWpvdXNlaVwgOwor5YWx5ZCM5aOw5piOID4ga3lvdWRvdXNlaW1laVwgOwor5Ymy5byV5YiH56ymID4gd2FyaWJpa2lraXBwdVwgOwor5Ya35Y205pyf6ZaTID4gcmVpa3lha3VraWthblwgOwor5Lmd5q275LiA55SfID4ga3l1dXNoaWlzc2hvdVwgOwor5Lit6I+v5rCR5Zu9ID4gY2h1dWthbWlua29rdVwgOwor5ouh5aOw6KOF572uID4ga2FrdXNlaXNvdWNoaVwgOwor6YGT6Lev5bu66KitID4gZG91cm9rZW5zZXRzdVwgOwor5Lq66YCg5a6d55+zID4gamluem91aG91c2VraVwgOwor6Ly45Ye65L+d6Zm6ID4geXVzaHV0c3Vob2tlblwgOwor5b+F5L+u56eR55uuID4gaGlzc2h1dWthbW9rdVwgOwor57Wm5LiO5omA5b6XID4ga3l1dXlvc2hvdG9rdVwgOwor5q205Y+y5a2m5rS+ID4gcmVraXNoaWdha3VoYVwgOwor562J5beu5pWw5YiXID4gdG91c2FzdXVyZXRzdVwgOwor5ZCb5a2Q6LG55aSJID4ga3Vuc2hpaHlvdWhlblwgOwor5LiL6KGo5Y+C54WnID4ga2FoeW91c2Fuc2hvdVwgOwor5Yui5Yqb56+E5ZuyID4gc2Vpcnlva3VoYW4nJ2lcIDsKK+mAmuiyqOaUv+etliA+IHRzdXVrYXNlaXNha3VcIDsKK+eLrOWNoOS8gealrSA+IGRva3VzZW5raWd5b3VcIDsKK+eJueaoqemajue0miA+IHRva2tlbmthaWt5dXVcIDsKK+ato+imj+absue3miA+IHNlaWtpa3lva3VzZW5cIDsKK+WCjeiBtOeEoeaWmSA+IGJvdWNob3VtdXJ5b3VcIDsKK+eUo+alreizh+acrCA+IHNhbmd5b3VzaGlob25cIDsKK+eri+efs+mbu+apnyA+IHRhdGVpc2hpZGVua2lcIDsKK+WknOmWk+S4reWtpiA+IHlha2FuY2h1dWdha3VcIDsKK+iyv+aYk+aRqeaTpiA+IGJvdWVraW1hc2F0c3VcIDsKK+W5tOi8quWPsuWtpiA+IG5lbnJpbnNoaWdha3VcIDsKK+apn+aisOe/u+iosyA+IGtpa2FpaG9uJyd5YWt1XCA7CivlvrnpoK3lvrnlsL4gPiB0ZXR0b3V0ZXRzdWJpXCA7Civph5Hnp5HnjonmnaEgPiBraW5rYWd5b2t1am91XCA7CivmsJHplpPnmYLms5UgPiBtaW5rYW5yeW91aG91XCA7Civmg4Xms4HoqLzmi6AgPiBqb3VreW91c2hvdWtvXCA7Civlv4PmgrjkuqLpgLIgPiBzaGlua2lrb3VzaGluXCA7CivlrprmgKfliIbmnpAgPiB0ZWlzZWlidW5zZWtpXCA7Civlm4PlrZDoqIDokYkgPiBoYXlhc2hpa290b2JhXCA7CivnibnoqLHmioDooZMgPiB0b2treW9naWp1dHN1XCA7CivloLHpgZPlhpnnnJ8gPiBob3Vkb3VzaGFzaGluXCA7CivmnIDkvY7os4Pph5EgPiBzYWl0ZWljaGluZ2luXCA7CivnnqzplpPpm7vmlq0gPiBzaHVua2FuZGVuZGFuXCA7CivlubTpoK3mlZnmm7ggPiBuZW50b3VreW91c2hvXCA7CivmnbHmtIvmrrXpgJogPiB0b3V5b3VkYW50c3V1XCA7Civni6zljaDos4fmnKwgPiBkb2t1c2Vuc2hpaG9uXCA7CivmnbHmlrnmlZnkvJogPiB0b3Vob3VreW91a2FpXCA7Civoh6ropprnl4fnirYgPiBqaWtha3VzaG91am91XCA7CivlpKnkvZPoprPmuKwgPiB0ZW50YWlrYW5zb2t1XCA7CivnvqTpm4booYzli5UgPiBndW5zaHV1a291ZG91XCA7CivooYbkurrnkrDoppYgPiBzaHV1amlua2Fuc2hpXCA7Civov7fotbDnpZ7ntYwgPiBtZWlzb3VzaGlua2VpXCA7CivmiKbnlaXlhbXlmaggPiBzZW5yeWFrdWhlaWtpXCA7CivlhYjliLbmlLvmkoMgPiBzZW5zZWlrb3VnZWtpXCA7CivmnInntabkvJHmmocgPiB5dXVreXV1a3l1dWthXCA7Civopovlrabml4XooYwgPiBrZW5nYWt1cnlva291XCA7Civlm73lhoXntYzmuIggPiBrb2t1bmFpa2VpemFpXCA7Civlr77nqbrlsITmkoMgPiB0YWlrdXVzaGFnZWtpXCA7Civmr5TovIPlr77nhacgPiBoaWtha3V0YWlzaG91XCA7CivluILkuK3pioDooYwgPiBzaGljaHV1Z2lua291XCA7CivlrprngrnoprPmuKwgPiB0ZWl0ZW5rYW5zb2t1XCA7Civkv4PmiJDmoL3ln7kgPiBzb2t1c2Vpc2FpYmFpXCA7Civos4Pph5HmoLzlt64gPiBjaGluZ2lua2FrdXNhXCA7CivmlK/phY3pmo7ntJogPiBzaGloYWlrYWlreXV1XCA7Civkuozph43pnLLlh7ogPiBuaWp1dXJvc2h1dHN1XCA7Civli5XohIjnoazljJYgPiBkb3VteWFrdWtvdWthXCA7CivpmqPmjqXpg6jpmoogPiByaW5zZXRzdWJ1dGFpXCA7Civlu7roqK3mqZ/morAgPiBrZW5zZXRzdWtpa2FpXCA7CivkuIrlsaTpmo7ntJogPiBqb3Vzb3VrYWlreXV1XCA7CivkuInmi53kuZ3mi50gPiBzYW5wYWlreXV1aGFpXCA7Civnibnmrorms5XkurogPiB0b2t1c2h1aG91amluXCA7Civlo6vprYLllYbmiY0gPiBzaGlrb25zaG91c2FpXCA7CivomZrlv4Pmi4Xmh5AgPiBreW9zaGludGFua2FpXCA7Civlgrfnl4XmjZXomZwgPiBzaG91YnlvdWhvcnlvXCA7CivnhKHmgKfnlJ/mrpYgPiBtdXNlaXNlaXNob2t1XCA7CivosqHmlL/mlL/nrZYgPiB6YWlzZWlzZWlzYWt1XCA7CivpmbjkuIrnq7bmioAgPiByaWt1am91a3lvdWdpXCA7CivljZropqflvLfoqJggPiBoYWt1cmFua3lvdWtpXCA7CivkurrmqKnkvrXlrrMgPiBqaW5rZW5zaGluZ2FpXCA7Civnt4/poJjmga/lrZAgPiBzb3VyeW91bXVzdWtvXCA7Civoj5zpo5/kuLvnvqkgPiBzYWlzaG9rdXNodWdpXCA7CivotaTlpJbnmbrmlaMgPiBzZWtpZ2FpaGFzc2FuXCA7CivooZvmmJ/pgJrkv6EgPiBlaXNlaXRzdXVzaGluXCA7Civkurrlk6HliYrmuJsgPiBqaW4nJ2luc2FrdWdlblwgOwor546H5YWI6Lqs6KGMID4gc29zc2Vua3l1dWtvdVwgOwor5YWN56iO5omA5b6XID4gbWVuemVpc2hvdG9rdVwgOwor6Ziy57iu5Yqg5belID4gYm91c2h1a3VrYWtvdVwgOwor6KSH5byP57C/6KiYID4gZnVrdXNoaWtpYm9raVwgOwor6LKs5Lu75YiG5ouFID4gc2VraW5pbmJ1bnRhblwgOwor5q2m5Yqb6KGM5L2/ID4gYnVyeW9rdWtvdXNoaVwgOwor55Wq57WE57eo5oiQID4gYmFuZ3VtaWhlbnNlaVwgOwor5LyR5oGv5pmC6ZaTID4ga3l1dXNva3VqaWthblwgOwor5LqM6YeN6Zai56+AID4gbmlqdXVrYW5zZXRzdVwgOwor6Kaz5YWJ55Sj5qWtID4ga2Fua291c2FuZ3lvdVwgOwor5Y2a5byV5peB6Ki8ID4gaGFrdWluYm91c2hvdVwgOwor5YWx6LKp5Lya56S+ID4ga3lvdWhhbmdhaXNoYVwgOwor5o+a6Zm46Imm6ImHID4geW91cmlrdWthbnRlaVwgOwor5Li75a6i6aGb5YCSID4gc2h1a2FrdXRlbnRvdVwgOwor5YWs5a6z5a++562WID4ga291Z2FpdGFpc2FrdVwgOwor6Zm95YuV5L2c5oimID4geW91ZG91c2FrdXNlblwgOwor6KqY5ouQ54qv5Lq6ID4geXV1a2FpaGFuJyduaW5cIDsKK+WGheiHk+eWvuaCoyA+IG5haXpvdXNoaWtrYW5cIDsKK+S/ruWjq+irluaWhyA+IHNodXVzaGlyb25idW5cIDsKK+mrmOetieaVmeiCsiA+IGtvdXRvdWt5b3Vpa3VcIDsKK+a4rOmHj+apn+aisCA+IHNva3VyeW91a2lrYWlcIDsKK+mciuaEn+WVhuazlSA+IHJlaWthbnNob3Vob3VcIDsKK+WRqueJqeW0h+aLnSA+IGp1YnV0c3VzdXVoYWlcIDsKK+aWh+S6uuWiqOWuoiA+IGJ1bmppbmJva2tha3VcIDsKK+aJv+efpeS5i+WKqSA+IHNob3VjaGlub3N1a2VcIDsKK+i2iuW5tOiNieacrCA+IGV0c3VuZW5zb3Vob25cIDsKK+mAmuWLpOWIl+i7iiA+IHRzdXVraW5yZXNzaGFcIDsKK+eyvumAsuaWmeeQhiA+IHNob3VqaW5yeW91cmlcIDsKK+S4u+WKm+mDqOmaiiA+IHNodXJ5b2t1YnV0YWlcIDsKK+mDt+Wcn+aWh+WtpiA+IGt5b3Vkb2J1bmdha3VcIDsKK+acn+acq+ippumokyA+IGtpbWF0c3VzaGlrZW5cIDsKK+mAo+mCpummluebuCA+IHJlbnBvdXNodXNob3VcIDsKK+aDheWgseW3peWtpiA+IGpvdWhvdWtvdWdha3VcIDsKK+S4g+WIhuS4ieWIhiA+IHNoaWNoaWJ1c2FuYnVcIDsKK+WFrOeIteWkq+S6uiA+IGtvdXNoYWt1ZnVqaW5cIDsKK+WPguiAg+izh+aWmSA+IHNhbmtvdXNoaXJ5b3VcIDsKK+eLrOaWreWwguihjCA+IGRva3VkYW5zZW5rb3VcIDsKK+WFpeWtpuiAg+afuyA+IG55dXVnYWt1a291c2FcIDsKK+mBrembo+S/oeWPtyA+IHNvdW5hbnNoaW5nb3VcIDsKK+a1geWLleizh+eUoyA+IHJ5dXVkb3VzaGlzYW5cIDsKK+S4i+Wbm+WNiuacnyA+IHNoaW1vc2hpaGFua2lcIDsKK+mBuOaKnuenkeebriA+IHNlbnRha3VrYW1va3VcIDsKK+aDheWgseaknOe0oiA+IGpvdWhvdWtlbnNha3VcIDsKK+mgguS4iuS8muirhyA+IGNob3Vqb3VrYWlkYW5cIDsKK+WFsea4iOe1hOWQiCA+IGt5b3VzYWlrdW1pYWlcIDsKK+WPguiAg+abuOebriA+IHNhbmtvdXNob21va3VcIDsKK+ayu+WuieitpuWvnyA+IGNoaWFua2Vpc2F0c3VcIDsKK+iIiOalremKgOihjCA+IGtvdWd5b3VnaW5rb3VcIDsKK+ihjOaUv+abuOWjqyA+IGd5b3VzZWlzaG9zaGlcIDsKK+mWoumAo+mgheebriA+IGthbnJlbmtvdW1va3VcIDsKK+mbo+ihjOiLpuihjCA+IG5hbmd5b3VrdWd5b3VcIDsKK+mgkOmHkemAmuW4syA+IHlva2ludHN1dWNob3VcIDsKK+e2suiGnOWJpemboiA+IG1vdW1ha3VoYWt1cmlcIDsKK+i8uOWHuuaknOafuyA+IHl1c2h1dHN1a2Vuc2FcIDsKK+aMh+WumumKmOafhCA+IHNoaXRlaW1laWdhcmFcIDsKK+mFkuaxoOiCieaelyA+IHNodWNoaW5pa3VyaW5cIDsKK+WEquetieiznueKtiA+IHl1dXRvdXNob3Vqb3VcIDsKK+m7hOmHkeWIhuWJsiA+IG91Z29uYnVua2F0c3VcIDsKK+S/rue5leW3peWgtCA+IHNodXV6ZW5rb3Vqb3VcIDsKK+S6jOiAhemBuOS4gCA+IG5pc2hhc2VuJydpdHN1XCA7Civnirbms4HoqLzmi6AgPiBqb3VreW91c2hvdWtvXCA7Civoj4zpoZ7lrabogIUgPiBraW5ydWlnYWt1c2hhXCA7Civku7Loo4HjgIXliKQgPiBjaHV1c2Fpc2FpYmFuXCA7CivlpJblm73pg7Xkvr8gPiBnYWlrb2t1eXV1YmluXCA7CivkuqTpgJrlnLDnjYQgPiBrb3V0c3V1amlnb2t1XCA7Civpm4blm6PntZDlqZogPiBzaHV1ZGFua2Vra29uXCA7CivmhJvnjqnli5XniakgPiBhaWdhbmRvdWJ1dHN1XCA7CivplpPmjqXoqbHms5UgPiBrYW5zZXRzdXdhaG91XCA7CivlrabnlJ/pg6jplbcgPiBnYWt1c2VpYnVjaG91XCA7Civpm7LlvaLlrpropo8gPiBrdW1vZ2F0YWpvdWdpXCA7CivlsYvlpJbluoPlkYogPiBva3VnYWlrb3Vrb2t1XCA7CivkuqHlkb3mloflraYgPiBib3VtZWlidW5nYWt1XCA7CivpgKPntprplqLmlbAgPiByZW56b2t1a2Fuc3V1XCA7CivnrYbot6HpkZHlrpogPiBoaXNzZWtpa2FudGVpXCA7Civlu4PnianliKnnlKggPiBoYWlidXRzdXJpeW91XCA7Civou4rkuKHkvJrnpL4gPiBzaGFyeW91Z2Fpc2hhXCA7CivpurvolqzluLjnv5IgPiBtYXlha3Vqb3VzaHV1XCA7CivkuI3lvpfopoHpoJggPiBmdXRva3V5b3VyeW91XCA7CivlsbHlsrPlnLDluK8gPiBzYW5nYWt1Y2hpdGFpXCA7CivllY/poYzpoJjln58gPiBtb25kYWlyeW91aWtpXCA7CivlgIvliKXosqnlo7IgPiBrb2JldHN1aGFuYmFpXCA7CivlubPooaHmhJ/oppogPiBoZWlrb3VrYW5rYWt1XCA7CivlhoXlm73pg7Xkvr8gPiBuYWlrb2t1eXV1YmluXCA7CivloLHpgZPnlarntYQgPiBob3Vkb3ViYW5ndW1pXCA7CivlhbHlkIzntYTlkIggPiBreW91ZG91a3VtaWFpXCA7CivntJnkuIroqIjnlLsgPiBzaGlqb3VrZWlrYWt1XCA7Civkuozph43lm73nsY0gPiBuaWp1dWtva3VzZWtpXCA7CivooYzmlL/oqLToqJ8gPiBneW91c2Vpc29zaG91XCA7CivntbbnuIHmirXmipcgPiB6ZXRzdWVudGVpa291XCA7CivljL/lkI3mibnoqZUgPiB0b2t1bWVpaGloeW91XCA7CivplbfmnJ/lm73lgrUgPiBjaG91a2lrb2t1c2FpXCA7CivlhYnnt5rnmYLms5UgPiBrb3VzZW5yeW91aG91XCA7CivmtYHli5Xos4fmnKwgPiByeXV1ZG91c2hpaG9uXCA7CivoqLzliLjluILloLQgPiBzaG91a2Vuc2hpam91XCA7Civlu7roqK3lt6XkuosgPiBrZW5zZXRzdWtvdWppXCA7CivlpInmhYvmgKfmrLIgPiBoZW50YWlzZWl5b2t1XCA7CivnqbrkuK3ntLDoj4wgPiBrdXVjaHV1c2Fpa2luXCA7Civku6Pph5HlvJXmj5sgPiBkYWlraW5oaWtpa2FlXCA7CivojLbnlarni4LoqIAgPiBjaGFiYW5reW91Z2VuXCA7CivkuqTpgJropo/liYcgPiBrb3V0c3V1a2lzb2t1XCA7CivkvJrluK3mlpnnkIYgPiBrYWlzZWtpcnlvdXJpXCA7Civnj77niannm7jloLQgPiBnZW5idXRzdXNvdWJhXCA7CivmnZ/nuJvnkIboq5YgPiBzb2t1YmFrdXJpcm9uXCA7CivlhazmraPoqLzmm7ggPiBrb3VzZWlzaG91c2hvXCA7CivlkIznm5/mgKDmpa0gPiBkb3VtZWl0YWlneW91XCA7CivooYzli5Xmlrnph50gPiBrb3Vkb3Vob3VzaGluXCA7CivpganmraPkvqHmoLwgPiB0ZWtpc2Vpa2FrYWt1XCA7CivkurrnqK7mlLnoia8gPiBqaW5zaHVrYWlyeW91XCA7CivljYrmtYHli5XkvZMgPiBoYW5yeXV1ZG91dGFpXCA7Civmma7ku4/miKbkuokgPiBmdWZ1dHN1c2Vuc291XCA7Civkuozph43ntZDlkIggPiBuaWp1dWtldHN1Z291XCA7CivlhY3osqznibnmqKkgPiBtZW5zZWtpdG9ra2VuXCA7Civmh7LmiJLlh6bliIYgPiBjaG91a2Fpc2hvYnVuXCA7CivkuI3lv4PlvpfogIUgPiBmdWtva29yb2Vtb25vXCA7CivosarmlL7no4rokL0gPiBnb3Vob3VyYWlyYWt1XCA7CivoiabnoLLlsITmkoMgPiBrYW5wb3VzaGFnZWtpXCA7CivplqLmlbDop6PmnpAgPiBrYW5zdXVrYWlzZWtpXCA7CivpgJrkv6HorJvluqcgPiB0c3V1c2hpbmtvdXphXCA7CivlpJbosqjnjbLlvpcgPiBnYWlrYWtha3V0b2t1XCA7Civlv4PmgrjmmILpgLIgPiBzaGlua2lrb3VzaGluXCA7Civpm7vmsJfmurbmjqUgPiBkZW5raXlvdXNldHN1XCA7CivlkK7nmbDoiJDnl5QgPiBzZW4nJ3lvdXNoaWppXCA7CivlirTlg43mnaHku7YgPiByb3Vkb3Vqb3VrZW5cIDsKK+WkluWbveiIqui3ryA+IGdhaWtva3Vrb3Vyb1wgOwor5Lyd6YCB6YCf5bqmID4gZGVuc291c29rdWRvXCA7CivkuIDmnKzoqr/lrZAgPiBpcHBvbmRqb3VzaGlcIDsKK+WinOiQveS6i+aVhSA+IHRzdWlyYWt1amlrb1wgOwor57ea6aaZ6Iqx54GrID4gc2Vua291aGFuYWJpXCA7CivmnbHkuqzpg73mlL8gPiB0b3VreW91dG9zZWlcIDsKK+i7jeS6i+eUo+alrSA+IGd1bmppc2FuZ3lvdVwgOwor5Luj55CG54mn5birID4gZGFpcmlib2t1c2hpXCA7CivkuInljYHkuInmiYAgPiBzYW5qdXVzYW5zaG9cIDsKK+S4gOasoee3mui8qiA+IGljaGlqaXNlbnJpblwgOwor5L6h5qC85aSJ5YuVID4ga2FrYWt1aGVuZG91XCA7CivmgqDmgqDoh6rpgakgPiB5dXV5dXVqaXRla2lcIDsKK+Wxsee0q+awtOaYjiA+IHNhbnNoaXN1aW1laVwgOwor56m66Ly46LKo54mpID4ga3V1eXVrYW1vdHN1XCA7CivoprPlhYnos4fmupAgPiBrYW5rb3VzaGlnZW5cIDsKK+imluimmuiogOiqniA+IHNoaWtha3VnZW5nb1wgOwor6bq76Jas5bi455SoID4gbWF5YWt1am91eW91XCA7Civml6XmnJ3ovp7lhbggPiBuaXRjaG91aml0ZW5cIDsKK+W6l+mgreWCteWIuCA+IHRlbnRvdXNhaWtlblwgOwor54mI5qip5omA5pyJID4gaGFua2Vuc2hveXV1XCA7CivkuIDms4rooYzou40gPiBpcHBha3Vrb3VndW5cIDsKK+mdkuepuuW4guWgtCA+IGFvem9yYXNoaWpvdVwgOwor6ZaL56Wo57WQ5p6cID4ga2FpaHlvdWtla2thXCA7CivljZjni6zorJvlkowgPiB0YW5kb2t1a291d2FcIDsKK+i/keS7o+enkeWtpiA+IGtpbmRhaWthZ2FrdVwgOwor54Sh56We6KuW6ICFID4gbXVzaGlucm9uc2hhXCA7CivmnInlvaLosqHnlKMgPiB5dXVrZWl6YWlzYW5cIDsKK+ays+WyuOauteS4mCA+IGthZ2FuZGFua3l1dVwgOwor5aSq6Zm95YWJ57eaID4gdGFpeW91a291c2VuXCA7CivlhITkuIfplbfogIUgPiBva3VtYW5jaG91amFcIDsKK+WMlueyp+efs+m5uCA+IGtlc2hvdXNla2tlblwgOwor6KiA6Kqe55mC5rOVID4gZ2VuZ29yeW91aG91XCA7CivlronlrprmiJDplbcgPiBhbnRlaXNlaWNob3VcIDsKK+elnuaoqeaUv+ayuyA+IHNoaW5rZW5zZWlqaVwgOwor6Iez5LiK5ZG95LukID4gc2hpam91bWVpcmVpXCA7Civpn7Pmpb3nvo7lraYgPiBvbmdha3ViaWdha3VcIDsKK+WKtOWDjeWkp+iHoyA+IHJvdWRvdWRhaWppblwgOwor6ZmN5qC85Lq65LqLID4ga291a2FrdWppbmppXCA7CivnqpLntKDogqXmlpkgPiBjaGlzc29oaXJ5b3VcIDsKK+i7jemDqOeLrOijgSA+IGd1bmJ1ZG9rdXNhaVwgOwor5YWs5YuZ55a+55eFID4ga291bXVzaGlwcGVpXCA7CivoirHngavlpKfkvJogPiBoYW5hYml0YWlrYWlcIDsKK+ihjOmbsua1geawtCA+IGtvdXVucnl1dXN1aVwgOwor5Y+N5a++6KiK5ZWPID4gaGFudGFpamlubW9uXCA7CivmlrnlkJHou6Lmj5sgPiBob3Vrb3V0ZW5rYW5cIDsKK+eEoee3muaKgOihkyA+IG11c2VuZ2lqdXRzdVwgOwor6Imu5LiL6Imu5LiKID4gZ29ua2Fnb25zaG91XCA7CivmnKrmnaXlrozkuoYgPiBtaXJhaWthbnJ5b3VcIDsKK+WJjemAsumDqOmaiiA+IHplbnNoaW5idXRhaVwgOwor5pei57SE5YiG5pWwID4ga2l5YWt1YnVuc3V1XCA7CivlhazllrbkvY/lroUgPiBrb3VlaWp1dXRha3VcIDsKK+ebo+afu+WgseWRiiA+IGthbnNhaG91a29rdVwgOwor5pyI57WM5ZGo5pyfID4gZ2Vra2Vpc2h1dWtpXCA7Civnp5Hlrabpm5HoqowgPiBrYWdha3V6YXNzaGlcIDsKK+mAmuiyqOe1seWQiCA+IHRzdXVrYXRvdWdvdVwgOwor5a++5Zyw6YCf5bqmID4gdGFpY2hpc29rdWRvXCA7Civlrpjlg5rkuLvnvqkgPiBrYW5yeW91c2h1Z2lcIDsKK+W+oeiqv+WtkOiAhSA+IG9jaG91c2hpbW9ub1wgOwor5LqM6Laz5LiJ5paHID4gbmlzb2t1c2FubW9uXCA7CivphbjmgKfogqXmlpkgPiBzYW5zZWloaXJ5b3VcIDsKK+iogOaWh+S4gOiHtCA+IGdlbmJ1bicnaXRjaGlcIDsKK+WFseWQjOeuoeeQhiA+IGt5b3Vkb3VrYW5yaVwgOwor5rW35aSW5peF6KGMID4ga2FpZ2Fpcnlva291XCA7CivkuI3lr6nlsIvllY8gPiBmdXNoaW5qaW5tb25cIDsKK+iyrOS7u+i7ouWrgSA+IHNla2luaW50ZW5rYVwgOwor6ZW35pyf5omL5b2iID4gY2hvdWtpdGVnYXRhXCA7CivntabkuI7msLTmupYgPiBreXV1eW9zdWlqdW5cIDsKK+WwkeaVsOeyvumLrSA+IHNob3VzdXVzZWllaVwgOwor6Lui5o+b56S+5YK1ID4gdGVua2Fuc2hhc2FpXCA7Civmsr/lsrjmvIHmpa0gPiBlbmdhbmd5b2d5b3VcIDsKK+S6pOmam+ekvuS8miA+IGtvdXNhaXNoYWthaVwgOwor5Yi26ZmQ5LqL6aCFID4gc2VpZ2Vuamlrb2t1XCA7CivliJHkuovosqzku7sgPiBrZWlqaXNla2luaW5cIDsKK+a3t+WQiOeBq+iWrCA+IGtvbmdvdWtheWFrdVwgOwor5Y+M5YuZ5aWR57SEID4gc291bXVrZWl5YWt1XCA7Civlj6TlhbjlrabogIUgPiBrb3Rlbmdha3VzaGFcIDsKK+eUn+a0u+aJtuWKqSA+IHNlaWthdHN1ZnVqb1wgOwor55So55uK54mp5qipID4geW91ZWtpYnVra2VuXCA7Civlh7rli6TmmYLplpMgPiBzaHVra2luamlrYW5cIDsKK+ebuOmWouS/guaVsCA+IHNvdWthbmtlaXN1dVwgOwor56S+5Lya5L+d6ZqcID4gc2hha2FpaG9zaG91XCA7CivljZTlkIzli5XkvZwgPiBreW91ZG91ZG91c2FcIDsKK+aDhee3kue6kue2vyA+IGpvdWNob3Rlbm1lblwgOwor56uL5oay5ZCb5Li7ID4gcmlra2Vua3Vuc2h1XCA7Civml4XliLjmn7voqLwgPiByeW9rZW5zYXNob3VcIDsKK+iQveiKseeLvOiXiSA+IHJha2thcm91emVraVwgOwor5YyW5a2m6KO95ZOBID4ga2FnYWt1c2VpaGluXCA7CivpganmgKfmpJzmn7sgPiB0ZWtpc2Vpa2Vuc2FcIDsKK+eUn+WRveenkeWtpiA+IHNlaW1laWthZ2FrdVwgOwor5bel5L2c5qmf5qKwID4ga291c2FrdWtpa2FpXCA7Civlm7Pmm7jppKjlraYgPiB0b3Nob2thbmdha3VcIDsKK+S6uuWPo+WVj+mhjCA+IGppbmtvdW1vbmRhaVwgOwor5b6h55So5a2m6ICFID4gZ295b3VnYWt1c2hhXCA7CivmsJflnKfphY3nva4gPiBraWF0c3VoYWljaGlcIDsKK+aZgumZkOeIhuW8viA+IGppZ2VuYmFrdWRhblwgOwor6Ieq54S25a++5pWwID4gc2hpemVudGFpc3V1XCA7CivlpJzplpPmkq7lvbEgPiB5YWthbnNhdHN1ZWlcIDsKK+elnue1jOe5iue2rSA+IHNoaW5rZWlzZW4nJ2lcIDsKK+a1geWLleiyoOWCtSA+IHJ5dXVkb3VmdXNhaVwgOwor5pyA6auY6KiY6YyyID4gc2Fpa291a2lyb2t1XCA7CivmlrDopo/kuovmpa0gPiBzaGlua2lqaWd5b3VcIDsKK+Wnk+WQjeWIpOaWrSA+IHNlaW1laWhhbmRhblwgOwor5Y+N5a++57Wm5LuYID4gaGFudGFpa3l1dWZ1XCA7CivmlZfmiKbmipXmiYsgPiBoYWlzZW50b3VzaHVcIDsKK+atpua8ouS4iemOriA+IGJ1a2Fuc2FuY2hpblwgOwor5LiA5pyd5LiA5aSVID4gaXRjaG91aXNzZWtpXCA7CivlrrblhoXlt6Xmpa0gPiBrYW5haWtvdWd5b3VcIDsKK+a1heWtpuiPsuaJjSA+IHNlbmdha3VoaXNhaVwgOwor5re35ZCI57WM5riIID4ga29uZ291a2VpemFpXCA7CivluILmsJHlm6PkvZMgPiBzaGltaW5kYW50YWlcIDsKK+S8gealremAo+WQiCA+IGtpZ3lvdXJlbmdvdVwgOwor5pmC5Luj5oSf6KaaID4gamlkYWlrYW5rYWt1XCA7CivlhbHlkIzlm6DlrZAgPiBreW91ZG91aW5zaGlcIDsKK+S4gOaEj+WwguW/gyA+IGljaGlpc2Vuc2hpblwgOwor5qyn57Gz6Ku45Zu9ID4gb3ViZWlzaG9rb2t1XCA7Civpnanlkb3pgYvli5UgPiBrYWt1bWVpdW5kb3VcIDsKK+e0lOeyi+WfuemkiiA+IGp1bnN1aWJhaXlvdVwgOwor5YaN5LiJ5YaN5ZubID4gc2Fpc2Fuc2Fpc2hpXCA7CivlvaLogIzkuIrlraYgPiBrZWlqaWpvdWdha3VcIDsKK+WcsOaWueWbo+S9kyA+IGNoaWhvdWRhbnRhaVwgOwor5YWs5rCR5a2m5qChID4ga291bWluZ2Fra291XCA7CivkvqHmoLzntbHliLYgPiBrYWtha3V0b3VzZWlcIDsKK+aEj+WMoOeZu+mMsiA+IGlzaG91dG91cm9rdVwgOwor5Y+X5YuV5Zar54WZID4ganVkb3VraXRzdWVuXCA7Civoo73nvLblt6XloLQgPiBzZWlrYW5rb3Vqb3VcIDsKK+WbuuW9oueHg+aWmSA+IGtva2VpbmVucnlvdVwgOwor6YO15L6/54K65pu/ID4geXV1Ymlua2F3YXNlXCA7Civlj6PpoK3lvIHoq5YgPiBrb3V0b3ViZW5yb25cIDsKK+eri+S9k+WMluWtpiA+IHJpdHRhaWthZ2FrdVwgOwor5ZOB6KGM5pa55q2jID4gaGlua291aG91c2VpXCA7Civosqnlo7LkvqHmoLwgPiBoYW5iYWlrYWtha3VcIDsKK+aBi+aEm+e1kOWpmiA+IHJlbicnYWlrZWtrb25cIDsKK+WMl+exs+Wcn+S6uiA+IGhva3ViZWlkb2ppblwgOwor6Ieo5rW35a2m5qChID4gcmlua2FpZ2Fra291XCA7CivkuIDoqp7kuIDoqp4gPiBpY2hpZ29pY2hpZ29cIDsKK+WNiuWumOWNiuawkSA+IGhhbmthbmhhbm1pblwgOwor5aSn5Zu95Li7576pID4gdGFpa29rdXNodWdpXCA7CivmtIvmnI3nrqrnrKUgPiB5b3VmdWt1ZGFuc3VcIDsKK+S4gOaWuemAmuihjCA+IGlwcG91dHN1dWtvdVwgOwor5Y+C6ICD5paH54yuID4gc2Fua291YnVua2VuXCA7Civkv6Hku7DnrofmnaEgPiBzaGlua291a2Fqb3VcIDsKK+awkemWk+izh+acrCA+IG1pbmthbnNoaWhvblwgOwor5LiA5rGB5LiA6I+cID4gaWNoaWp1dWlzc2FpXCA7CivljYHnqK7nq7bmioAgPiBqaXNzaHVreW91Z2lcIDsKK+W5s+WSjOWFseWtmCA+IGhlaXdha3lvdXpvblwgOwor5Y2Y57ea6YGL6LuiID4gdGFuc2VuJyd1bnRlblwgOwor5LqL5b6M5om/6Ku+ID4gamlnb3Nob3VkYWt1XCA7CivmmKDlg4/kv6Hlj7cgPiBlaXpvdXNoaW5nb3VcIDsKK+WuieWFqOWvvuetliA+IGFuemVudGFpc2FrdVwgOwor55Sf55Sj57WE5ZCIID4gc2Vpc2Fua3VtaWFpXCA7CivlsYXkvY/msLTmupYgPiBreW9qdXVzdWlqdW5cIDsKK+eul+eUqOaVsOWtlyA+IHNhbicneW91c3V1amlcIDsKK+WnieWmueS8muekviA+IHNoaW1haWdhaXNoYVwgOwor6YG45oyZ5YWs5aCxID4gc2Vua3lva291aG91XCA7Civku4/lg4/kuozluqcgPiBidXRzdXpvdW5pemFcIDsKK+ims+WFieaXheihjCA+IGthbmtvdXJ5b2tvdVwgOwor56CU56m26Kqy6aGMID4ga2Vua3l1dWthZGFpXCA7Civph5Hmi77kuIflhoYgPiBraW5qdXVtYW4nJ2VuXCA7CivlsY7lsL/lh6bnkIYgPiBzaGlueW91c2hvcmlcIDsKK+WVhuS6i+S8muekviA+IHNob3VqaWdhaXNoYVwgOwor6ZuG5ZCI5aC05omAID4gc2h1dWdvdWJhc2hvXCA7CivlvaLlrrnoqZ7lubkgPiBrZWl5b3VzaGlrYW5cIDsKK+adoeS7tuWPjeWwhCA+IGpvdWtlbmhhbnNoYVwgOwor5L+h5b6S5Lyd5YuVID4gc2hpbnRvZGVuZG91XCA7CivmnInmlpnpgZPot68gPiB5dXVyeW91ZG91cm9cIDsKK+alreWLmeWmqOWusyA+IGd5b3VtdWJvdWdhaVwgOwor6Zi/54mH5Lit5q+SID4gYWhlbmNodXVkb2t1XCA7CivntLDog57ono3lkIggPiBzYWlib3V5dXVnb3VcIDsKK+WQjeS6uuawl+izqiA+IG1laWppbmthdGFnaVwgOwor6YO15pS/5aSn6IejID4geXV1c2VpZGFpamluXCA7CivkurrmqKnmk4HorbcgPiBqaW5rZW4nJ3lvdWdvXCA7CivlhYTlvJ/llqflmKkgPiBreW91ZGFpZ2Vua2FcIDsKK+W3oeiIqumAn+W6piA+IGp1bmtvdXNva3Vkb1wgOwor5LiA5aSc5aSn6IejID4gaWNoaXlhZGFpamluXCA7CivnjYXlrZDlpa7ov4UgPiBzaGlzaGlmdW5qaW5cIDsKK+mWqOengOS9nOWutiA+IGtlaXNodXVzYWtrYVwgOwor5bCC6ZaA5a2m5qChID4gc2VubW9uZ2Fra291XCA7CivmlLnpnanpgY7nqIsgPiBrYWlrYWt1a2F0ZWlcIDsKK+e3iuaApeaOque9riA+IGtpbmt5dXVzb2NoaVwgOwor55S756uc5aSp552bID4gZ2FyeW91dGVuc2VpXCA7CivkuIDpgLLkuIDpgIAgPiBpc3NoaW4nJ2l0dGFpXCA7CivlrprluLjnirbmhYsgPiB0ZWlqb3Vqb3V0YWlcIDsKK+aMh+aVsOmWouaVsCA+IHNoaXN1dWthbnN1dVwgOwor6Kmm6aiT56eR55uuID4gc2hpa2Vua2Ftb2t1XCA7Civngb3lrrPmlZHliqkgPiBzYWlnYWlreXV1am9cIDsKK+WGtumHkeWtpuiAhSA+IHlha2luZ2FrdXNoYVwgOwor5Zyw5pa56YqA6KGMID4gY2hpaG91Z2lua291XCA7CivntYzmuIjnmbrlsZUgPiBrZWl6YWloYXR0ZW5cIDsKK+eJueauiuWFteWZqCA+IHRva3VzaHVoZWlraVwgOwor5rW35Lit5YWs5ZySID4ga2FpY2h1dWtvdWVuXCA7Civlm6PkvZPml4XooYwgPiBkYW50YWlyeW9rb3VcIDsKK+S4ieWPieelnue1jCA+IHNhbnNhc2hpbmtlaVwgOwor5qyy5rGC5LiN5rqAID4geW9ra3l1dWZ1bWFuXCA7CivntYLlpJzllrbmpa0gPiBzaHV1eWFlaWd5b3VcIDsKK+WcsOS4i+e1hOe5lCA+IGNoaWthc29zaGlraVwgOwor6ICQ6ZyH5a625bGLID4gdGFpc2hpbmthb2t1XCA7CivmraPkuInop5LlvaIgPiBzZWlzYW5rYWtrZWlcIDsKK+i1sOihjOi7iue3miA+IHNvdWtvdXNoYXNlblwgOwor56m65rCX6Kq/5pW0ID4ga3V1a2ljaG91c2VpXCA7CivpgYvli5XnpZ7ntYwgPiB1bmRvdXNoaW5rZWlcIDsKK+WPl+iDjuWRiuefpSA+IGp1dGFpa29rdWNoaVwgOwor6Kej562U55So57SZID4ga2FpdG91eW91c2hpXCA7CivkuI3miYDlrZjogIUgPiBmdXNob3pvbm1vbm9cIDsKK+WKoOW3peeUo+alrSA+IGtha291c2FuZ3lvdVwgOwor6KaP5qC85Y6f5qGIID4ga2lrYWt1Z2VuJydhblwgOwor5ZKM6a2C5rSL5omNID4gd2Frb24nJ3lvdXNhaVwgOwor5Y+N5oim6YGL5YuVID4gaGFuc2VuJyd1bmRvdVwgOwor6Ku46KGM54Sh5bi4ID4gc2hvZ3lvdW11am91XCA7CivlpZHntITmnJ/plpMgPiBrZWl5YWt1a2lrYW5cIDsKK+S6uuaWh+enkeWtpiA+IGppbmJ1bmthZ2FrdVwgOwor5LiA5Lq65LiA5Lq6ID4gaGl0b3JpYml0b3JpXCA7CivlirHmjK/ntKDlrZAgPiByZWlzaGluc29zaGlcIDsKK+Wuh+WumeW3peWtpiA+IHVjaHV1a291Z2FrdVwgOwor5LqL5YmN5pel5LuYID4gaml6ZW5oaWR6dWtlXCA7Civoh6rlrrbmkp7nnYAgPiBqaWthZG91Y2hha3VcIDsKK+efs+eBsOiCpeaWmSA+IHNla2thaWhpcnlvdVwgOwor5YWs55uK5YSq5YWIID4ga291ZWtpeXV1c2VuXCA7Civml6XosYrmnKznt5ogPiBuaXBwb3Vob25zZW5cIDsKK+efs+ayueWMluWtpiA+IHNla2l5dWthZ2FrdVwgOwor55u45a++6YCf5bqmID4gc291dGFpc29rdWRvXCA7Civpu5LlrZflgJLnlKMgPiBrdXJvaml0b3VzYW5cIDsKK+WGheaGguWkluaCoyA+IG5haXl1dWdhaWthblwgOwor6Zai5pWw56m66ZaTID4ga2Fuc3V1a3V1a2FuXCA7Civku5jlsZ7nl4XpmaIgPiBmdXpva3VieW91aW5cIDsKK+iHqOW6iuWMu+WtpiA+IHJpbnNob3VpZ2FrdVwgOwor57Gz5rW35YW16ZqKID4gYmVpa2FpaGVpdGFpXCA7Civmi7HmiYvlgo3oprMgPiBrb3VzaHVib3VrYW5cIDsKK+mghuazlemXmOS6iSA+IGp1bnBvdXRvdXNvdVwgOwor5oim6ZeY6Zmj5ZywID4gc2VudG91amluY2hpXCA7CivkuIDmjJnkuIDli5UgPiBpa2t5b2ljaGlkb3VcIDsKK+WogeWah+WwhOaSgyA+IGlrYWt1c2hhZ2VraVwgOwor5a6f5Zyw6Kmm6aiTID4gaml0Y2hpc2hpa2VuXCA7CivkuK3plpPmma/msJcgPiBjaHV1a2Fua2Vpa2lcIDsKK+WPuOaVmeaoqeW6pyA+IHNoaWt5b3VrZW56YVwgOwor5aSJ5pu05bGl5q20ID4gaGVua291cmlyZWtpXCA7CivpgKPmiKbpgKPmlZcgPiByZW5zZW5yZW5wYWlcIDsKK+atr+anveiGv+a8jyA+IHNoaXNvdW5vdXJvdVwgOwor57Sg57KS5a2Q6KuWID4gc29yeXV1c2hpcm9uXCA7CivooZvmmJ/kuK3ntpkgPiBlaXNlaWNodXVrZWlcIDsKK+Wcp+W7tuW3peWgtCA+IGF0c3VlbmtvdWpvdVwgOwor5YiG5aip6Iel5bqKID4gYnVuYmVuZ2FzaG91XCA7CivkurrpgKDntbnns7ggPiBqaW56b3VrZW5zaGlcIDsKK+eXlei3oeWZqOWumCA+IGtvbnNla2lraWthblwgOwor6JuN5YWJ5aGX5paZID4ga2Vpa291dG9yeW91XCA7CivlhazliKToqr/mn7sgPiBrb3VoYW5jaG91c2FcIDsKK+mAo+e1oeS8muitsCA+IHJlbnJha3VrYWlnaVwgOwor5YWs5pWZ6KaB55CGID4ga291a3lvdXlvdXJpXCA7CivpqqjokaPlk4HlupcgPiBrb3R0b3VoaW50ZW5cIDsKK+WNgeS6jOaMh+iFuCA+IGp1dW5pc2hpY2hvdVwgOwor6LKh5pS/5ZWP6aGMID4gemFpc2VpbW9uZGFpXCA7CivoqIDoqp7lrabogIUgPiBnZW5nb2dha3VzaGFcIDsKK+mHkeiejeapn+mWoiA+IGtpbicneXV1a2lrYW5cIDsKK+eUsOWckuipqeS6uiA+IGRlbicnZW5zaGlqaW5cIDsKK+etieavlOe0muaVsCA+IHRvdWhpa3l1dXN1dVwgOwor6YGT5YyW5b256ICFID4gZG91a2V5YWt1c2hhXCA7CivmtKXmtKXmtabmtaYgPiB0c3VkenV1cmF1cmFcIDsKK+S5vueHpeWcsOW4ryA+IGthbnNvdWNoaXRhaVwgOwor6Z+z56+A5Li76Z+zID4gb25zZXRzdXNodW9uXCA7CivoiKrmtbfml6XoqowgPiBrb3VrYWluaXNzaGlcIDsKK+WNiuWwgeW7uuaApyA+IGhhbmhvdWtlbnNlaVwgOwor5oGL5oSb6Zai5L+CID4gcmVuJydhaWthbmtlaVwgOwor5oiQ6ZW36YGO56iLID4gc2VpY2hvdWthdGVpXCA7CivpgKPluK/kv53oqLwgPiByZW50YWlob3Nob3VcIDsKK+W/g+iHk+iCpeWkpyA+IHNoaW56b3VoaWRhaVwgOwor5aSp5aOM54Sh56quID4gdGVuam91bXVreXV1XCA7CivlhajouqvpurvphZQgPiB6ZW5zaGlubWFzdWlcIDsKK+Wbnue3muS6pOaPmyA+IGthaXNlbmtvdWthblwgOwor6Ly45YWl5Yi26ZmQID4geXVueXV1c2VpZ2VuXCA7Civmp4vpgKDkuI3ms4EgPiBrb3V6b3VmdWt5b3VcIDsKK+iHquW3seWFseW9uSA+IGppa29reW91eWFrdVwgOwor5qeL5oiQ5YiG5a2QID4ga291c2VpYnVuc2hpXCA7CivluILloLTlsZXplosgPiBzaGlqb3V0ZW5rYWlcIDsKK+W6l+mgreiyqeWjsiA+IHRlbnRvdWhhbmJhaVwgOwor5ZCI5ZSx6ZqK5ZOhID4gZ2Fzc2hvdXRhaWluXCA7CivntYzosrvliYrmuJsgPiBrZWloaXNha3VnZW5cIDsKK+aWh+iKuOW+qeiIiCA+IGJ1bmdlaWZ1a2tvdVwgOwor55Kw5aSq5bmz5rSLID4ga2FudGFpaGVpeW91XCA7CivlkI3nvqnmm7jmj5sgPiBtZWlnaWtha2lrYWVcIDsKK+mHjeWkp+WVj+mhjCA+IGp1dWRhaW1vbmRhaVwgOwor6Z2e56eR5a2m55qEID4gaGlrYWdha3V0ZWtpXCA7CivpmZDlrprmiKbkuokgPiBnZW50ZWlzZW5zb3VcIDsKK+S4jeWcqOiovOaYjiA+IGZ1emFpc2hvdW1laVwgOwor5Yy75a2m5Y2a5aOrID4gaWdha3VoYWt1c2hpXCA7CivmoYjlhoXmm7jlkYggPiBhbicnbmFpc2hvdGVpXCA7CivlsILliLblkJvkuLsgPiBzZW5zZWlrdW5zaHVcIDsKK+WLpOWLmeWun+e4viA+IGtpbm11amlzc2VraVwgOwor5qmf5a+G5LqL6aCFID4ga2ltaXRzdWppa291XCA7Civml6nmnJ/oqLrmlq0gPiBzb3VraXNoaW5kYW5cIDsKK+WBnOatouS+oeagvCA+IHRlaXNoaWtha2FrdVwgOwor6KiY5oa25a656YePID4ga2lva3V5b3VyeW91XCA7Civlh7rnlJ/pgY7libAgPiBzaHVzc2Vpa2Fqb3VcIDsKK+W8lemAgOiIiOihjCA+IGludGFpa291Z3lvdVwgOwor5LiJ5ZGz57ea5by+ID4gc2hhbWlzZW5oaWtpXCA7CivoqabpqJPmrrXpmo4gPiBzaGlrZW5kYW5rYWlcIDsKK+i7jeS6i+S7i+WFpSA+IGd1bmppa2Fpbnl1dVwgOwor5pS/5rK76YGT5b6zID4gc2Vpamlkb3V0b2t1XCA7Civlm73llrbkvIHmpa0gPiBrb2t1ZWlraWd5b3VcIDsKK+W4sOW3o+acrOiDvSA+IGtpc291aG9uJydub3VcIDsKK+S4oeaAp+WFt+aciSA+IHJ5b3VzZWlndXl1dVwgOwor6buE6YeR5LiH6IO9ID4gb3Vnb25iYW4nJ25vdVwgOwor5ouF5b2T6Kqy6ZW3ID4gdGFudG91a2FjaG91XCA7Civmt7fmiJDnq7bmioAgPiBrb25zZWlreW91Z2lcIDsKK+WKtOWDjeaUu+WLoiA+IHJvdWRvdWtvdXNlaVwgOwor6ZaR6Kmx5LyR6aGMID4ga2Fud2FreXV1ZGFpXCA7Civlvbnli5nos6DlhJ8gPiBla2ltdWJhaXNob3VcIDsKK+W5s+WSjOeUo+alrSA+IGhlaXdhc2FuZ3lvdVwgOwor5Y2w6LGh5om56KmVID4gaW5zaG91aGloeW91XCA7CivlgZzmu57liY3nt5ogPiB0ZWl0YWl6ZW5zZW5cIDsKK+awkemWk+aUvumAgSA+IG1pbmthbmhvdXNvdVwgOwor5bGe5Zyw5Li7576pID4gem9rdWNoaXNodWdpXCA7Civlh7rniYjpg6jmlbAgPiBzaHVwcGFuYnVzdXVcIDsKK+iHquWLleS6uuW9oiA+IGppZG91bmluZ3lvdVwgOwor5oSP5b+X6JaE5byxID4gaXNoaWhha3VqYWt1XCA7Civlv4PnkIbmiKbkuokgPiBzaGlucmlzZW5zb3VcIDsKK+iqsueojuaJgOW+lyA+IGthemVpc2hvdG9rdVwgOwor5rWB6KGM5L2c5a62ID4gcnl1dWtvdXNha2thXCA7CivmoLnmsJfku5XkuosgPiBrb25raXNoaWdvdG9cIDsKK+i7veeKr+e9quazlSA+IGtlaWhhbnphaWhvdVwgOwor5o+j5pGp5oa25risID4gc2hpbWFva3Vzb2t1XCA7CivmlLnkv67lt6XkuosgPiBrYWlzaHV1a291amlcIDsKK+WvvuaKl+aEj+itmCA+IHRhaWtvdWlzaGlraVwgOwor6YGT6Lev5Lqk6YCaID4gZG91cm9rb3V0c3V1XCA7Civms5Xlu7fkvq7ovrEgPiBob3V0ZWlidWpva3VcIDsKK+WFieWtpuapn+aisCA+IGtvdWdha3VraWthaVwgOwor6ISx5a2X6KiY5Y+3ID4gZGF0c3VqaWtpZ291XCA7CivlhazmnInmsLTpnaIgPiBrb3V5dXVzdWltZW5cIDsKK+mZsOaAp+WPjeW/nCA+IGluc2VpaGFuJydub3VcIDsKK+Wdh+ihoee1jOa4iCA+IGtpbmtvdWtlaXphaVwgOwor6Jit5qC95Z+55rOVID4gcmFuc2FpYmFpaG91XCA7Civmraboo4Xpm4blm6MgPiBidXNvdXNodXVkYW5cIDsKK+WNsOmRkeiovOaYjiA+IGlua2Fuc2hvdW1laVwgOwor5Z+f5YaF6LK/5piTID4gaWtpbmFpYm91ZWtpXCA7Civkvb/lvpLooYzkvJ0gPiBzaGl0b2d5b3VkZW5cIDsKK+S9s+S6uuiWhOWRvSA+IGthamluaGFrdW1laVwgOwor5pyJ5L2T6LOH55SjID4geXV1dGFpc2hpc2FuXCA7Civlr77ms7DplqLkv4IgPiB0YWl0YWlrYW5rZWlcIDsKK+asp+W3numAo+WQiCA+IG91c2h1dXJlbmdvdVwgOwor5aWz5a2Q5a2m55SfID4gam9zaGlnYWt1c2VpXCA7CivljZjntJTlubPlnYcgPiB0YW5qdW5oZWlraW5cIDsKK+WGjeW6pueiuuiqjSA+IHNhaWRva2FrdW5pblwgOwor6ay86Z2i5Lyd5b+DID4ga2ltZW5kZW5zaGluXCA7Civosr/mmJPpu5LlrZcgPiBib3Vla2lrdXJvamlcIDsKK+e1hOWQiOWToeiovCA+IGt1bWlhaWluc2hvdVwgOwor54af5p+/5Li7576pID4ganVrdXNoaXNodWdpXCA7CivlhrfmiL/oo4Xnva4gPiByZWlib3Vzb3VjaGlcIDsKK+ePvuWcsOeUn+eUoyA+IGdlbmNoaXNlaXNhblwgOwor5paw6IGe6KiY6ICFID4gc2hpbmJ1bmtpc2hhXCA7CivlpKflsbHps7Tli5UgPiB0YWl6YW5tZWlkb3VcIDsKK+azoueKtuaUu+aSgyA+IGhham91a291Z2VraVwgOwor5Y2Y6KiY5oqV56WoID4gdGFua2l0b3VoeW91XCA7CivkuIDmrKHplqLmlbAgPiBpY2hpamlrYW5zdXVcIDsKK+W5vOW9oumAsuWMliA+IHlvdWtlaXNoaW5rYVwgOwor6Z2S54mp5biC5aC0ID4gYW9tb25vaWNoaWJhXCA7CivlrabnlJ/pgYvli5UgPiBnYWt1c2VpdW5kb3VcIDsKK+WgseW+qeaOque9riA+IGhvdWZ1a3Vzb2NoaVwgOwor5Zue5b6p5Y+v6IO9ID4ga2FpZnVrdWthbm91XCA7CivmraPop5LlrprmnKggPiBzZWlrYWt1am91Z2lcIDsKK+attOWPsuWcsOeQhiA+IHJla2lzaGljaGlyaVwgOwor5bm05Lit54Sh5LyRID4gbmVuanV1bXVreXV1XCA7CivnlLvnq5zngrnnnZsgPiBnYXJ5b3V0ZW5zZWlcIDsKK+S7o+aVsOeahOWSjCA+IGRhaXN1dXRla2l3YVwgOwor5bem5Y+z55u456ewID4gc2F5dXVzb3VzaG91XCA7CivluJ3lm73kuLvnvqkgPiB0ZWlrb2t1c2h1Z2lcIDsKK+ilv+a0i+advumcsiA+IHNlaXlvdXNob3Vyb1wgOwor5Zue6Lui5YuY5a6aID4ga2FpdGVua2Fuam91XCA7Civkvp3oqJflsITmkoMgPiBpdGFrdXNoYWdla2lcIDsKK+ato+imj+ihqOePviA+IHNlaWtpaHlvdWdlblwgOwor57eP6aCY5LqL6aSoID4gc291cnlvdWppa2FuXCA7Civnm5fpm6PpmLLmraIgPiB0b3VuYW5ib3VzaGlcIDsKK+a7heengeWlieWFrCA+IG1lc3NoaWhvdWtvdVwgOwor57eP5ZCI56eR5a2mID4gc291Z291a2FnYWt1XCA7Civmi5jmnZ/mmYLplpMgPiBrb3Vzb2t1amlrYW5cIDsKK+Wbm+aWueWFq+aWuSA+IHNoaWhvdWhhcHBvdVwgOwor5Li76KaB6Ku45YWDID4gc2h1eW91c2hvZ2VuXCA7CivljYHliIbmnaHku7YgPiBqdXVidW5qb3VrZW5cIDsKK+aZguS7o+aAnea9riA+IGppZGFpc2hpY2hvdVwgOwor5Luj55CG5oqV56WoID4gZGFpcml0b3VoeW91XCA7Civlj6Tlhbjpn7Pmpb0gPiBrb3Rlbicnb25nYWt1XCA7CivpioDooYzlvLfnm5cgPiBnaW5rb3Vnb3V0b3VcIDsKK+i1t+eIhuijhee9riA+IGtpYmFrdXNvdWNoaVwgOwor6YCu5o2V6Kix6Ku+ID4gdGFpaG9reW9kYWt1XCA7Civmra/niZnnlr7mgqMgPiBzaGlnYXNoaWtrYW5cIDsKK+WFseWQjOellueVjCA+IGt5b3Vkb3Vzb2thaVwgOwor5rK55pat5aSn5pW1ID4geXVkYW50YWl0ZWtpXCA7CivlsILmpa3ovrLlrrYgPiBzZW5neW91bm91a2FcIDsKK+eGseWPr+WhkeaApyA+IG5ldHN1a2Fzb3NlaVwgOwor5biC5pyJ6LKh55SjID4gc2hpeXV1emFpc2FuXCA7Civlm73lrrbos6DlhJ8gPiBrb2trYWJhaXNob3VcIDsKK+mdmeaFi+e3j+ioiCA+IHNlaXRhaXNvdWtlaVwgOwor5bCC6ZaA6ZuR6KqMID4gc2VubW9uemFzc2hpXCA7CivlvL7kuLjliJfou4ogPiBkYW5nYW5yZXNzaGFcIDsKK+Wkp+ato+aZguS7oyA+IHRhaXNob3VqaWRhaVwgOwor6Kit6KiI5aSJ5pu0ID4gc2Vra2VpaGVua291XCA7Civkuobop6PkuovpoIUgPiByeW91a2Fpamlrb3VcIDsKK+Wun+mok+autemajiA+IGppa2tlbmRhbmthaVwgOwor5a6Y5YOa5pS/5rK7ID4ga2FucnlvdXNlaWppXCA7CivkurrnqK7llY/poYwgPiBqaW5zaHVtb25kYWlcIDsKK+a8lOe/kuWVj+mhjCA+IGVuc2h1dW1vbmRhaVwgOwor5Yq05YON57WE5ZCIID4gcm91ZG91a3VtaWFpXCA7Civphofpoqjnvo7kv5cgPiBqdW5wdXViaXpva3VcIDsKK+mAoOWPjeacieeQhiA+IHpvdWhhbicneXV1cmlcIDsKK+a2iOiyu+aAp+WQkSA+IHNob3VoaXNlaWtvdVwgOwor5b6h55So5paw6IGeID4gZ295b3VzaGluYnVuXCA7CivlhazlrprkvqHmoLwgPiBrb3V0ZWlrYWtha3VcIDsKK+WghuepjeS9nOeUqCA+IHRhaXNla2lzYXlvdVwgOwor5pS75a6I5ZCM55ufID4ga291c2h1ZG91bWVpXCA7Civlt6Xnp5HlpKflraYgPiBrb3VrYWRhaWdha3VcIDsKK+ekvuWFrOmAo+WQiCA+IHNoYWtvdXJlbmdvdVwgOwor6LuN5LqL5pWZ57e0ID4gZ3VuamlreW91cmVuXCA7CivlubPlkozmnaHntIQgPiBoZWl3YWpvdXlha3VcIDsKK+eEoeizh+agvOiAhSA+IG11c2hpa2FrdXNoYVwgOwor55u45q666Zai56iOID4gc291c2Fpa2FuemVpXCA7CivljbPmmYLlgZzmiKYgPiBzb2t1aml0ZWlzZW5cIDsKK+a4rOWcsOihm+aYnyA+IHNva3VjaGllaXNlaVwgOwor56m65Lit5rWu6YGKID4ga3V1Y2h1dWZ1eXV1XCA7Civkv6HnlKjoqZDmrLogPiBzaGluJyd5b3VzYWdpXCA7CivmmI7nnLjnmpPmra8gPiBtZWlib3Vrb3VzaGlcIDsKK+S4iuetieWFteabuSA+IGpvdXRvdWhlaXNvdVwgOwor6YeR5Yip5pS/562WID4ga2lucmlzZWlzYWt1XCA7CivojYnmoLnmnKjnmq4gPiBzb3Vrb25tb2t1aGlcIDsKK+WKtOWDjeeBveWusyA+IHJvdWRvdXNhaWdhaVwgOwor5o6o5a6a5bm06b2iID4gc3VpdGVpbmVucmVpXCA7Civml6XmnKzmloflraYgPiBuaWhvbmJ1bmdha3VcIDsKK+Wun+mok+enkeWtpiA+IGppa2tlbmthZ2FrdVwgOwor5Y2x6Zm65L+h5Y+3ID4ga2lrZW5zaGluZ291XCA7Civopb/mrKfoq7jlm70gPiBzZWlvdXNob2tva3VcIDsKK+WknOmWk+WWtualrSA+IHlha2FuJydlaWd5b3VcIDsKK+S9v+W+kuaJv+S8nSA+IHNoaXRvc2hvdWRlblwgOwor5Zu95a625Li75bitID4ga29ra2FzaHVzZWtpXCA7Civpm6ropovnga/nsaAgPiB5dWtpbWlkb3Vyb3VcIDsKK+S4u+W4reWIpOS6iyA+IHNodXNla2loYW5qaVwgOwor5a6Y6KO96JGJ5pu4ID4ga2Fuc2VpaGFnYWtpXCA7CivkvJ3oqJjmloflraYgPiBkZW5raWJ1bmdha3VcIDsKK+WItuWLleaUvuWwhCA+IHNlaWRvdWhvdXNoYVwgOwor5rOV5b6L6KGM54K6ID4gaG91cml0c3Vrb3VpXCA7CivlhbHnlKPlm73lrrYgPiBreW91c2Fua29ra2FcIDsKK+aVmeiCsuapn+mWoiA+IGt5b3Vpa3VraWthblwgOwor6Z2e5bi45L+h5Y+3ID4gaGlqb3VzaGluZ291XCA7Civpm6ropovpmpzlrZAgPiB5dWtpbWlzaG91amlcIDsKK+apn+ani+aUuemdqSA+IGtpa291a2Fpa2FrdVwgOwor5b6h546J5p2T5a2QID4gb3RhbWFqYWt1c2hpXCA7CivmnIDntYLntZDmnpwgPiBzYWlzaHV1a2Vra2FcIDsKK+eJueaBtemWoueojiA+IHRva2tlaWthbnplaVwgOwor5Zyw6ZyH5LqI55+lID4gamlzaGluJyd5b2NoaVwgOwor5YWx5ZCM5Yuf6YeRID4ga3lvdWRvdWJva2luXCA7Civkuovli5nlvZPlsYAgPiBqaW11dG91a3lva3VcIDsKK+S4ieWPt+mbkeiqjCA+IHNhbmdvdXphc3NoaVwgOwor5ryP5rSp6Zu75rWBID4gcm91ZWlkZW5yeXV1XCA7CivlrqPmiKbluIPlkYogPiBzZW5zZW5mdWtva3VcIDsKK+WFseeUo+WcsOWMuiA+IGt5b3VzYW5jaGlrdVwgOwor5Luj55So5pWZ5ZOhID4gZGFpeW91a3lvdWluXCA7CivkuInop5Llrpropo8gPiBzYW5rYWt1am91Z2lcIDsKK+ilv+a0i+WwhuajiyA+IHNlaXlvdXNob3VnaVwgOwor5L+h5Y+354Sh6KaWID4gc2hpbmdvdW11c2hpXCA7CivlnJ/lnLDmlLnpnakgPiB0b2NoaWthaWtha3VcIDsKK+eArOaIuOeJqeW4giA+IHNldG9tb25vaWNoaVwgOwor5a6J5YCN5bed6aSFID4gYWJla2F3YW1vY2hpXCA7CivmnbHmrKfoq7jlm70gPiB0b3VvdXNob2tva3VcIDsKK+i3oeebruebuOe2miA+IGF0b21lc291em9rdVwgOwor5Lq65bel5ZG85ZC4ID4gamlua291a29reXV1XCA7CivoiKrnqbrpg7Xkvr8gPiBrb3VrdXV5dXViaW5cIDsKK+S4puihjOi8uOWFpSA+IGhlaWtvdXl1bnl1dVwgOwor57WM5riI5qC85beuID4ga2VpemFpa2FrdXNhXCA7CivnpL7kvJros4fmnKwgPiBzaGFrYWlzaGlob25cIDsKK+WkluS6pOeJueaoqSA+IGdhaWtvdXRva2tlblwgOwor5qWt5YuZ5o+Q5pC6ID4gZ3lvdW11dGVpa2VpXCA7CivmvZzlnKjmhI/orZggPiBzZW56YWlpc2hpa2lcIDsKK+WItuW+oeijhee9riA+IHNlaWd5b3NvdWNoaVwgOwor5omA5omA5pa55pa5ID4gc2hvc2hvaG91Ym91XCA7Civlm7rkvZPnh4PmlpkgPiBrb3RhaW5lbnJ5b3VcIDsKK+m8u+WFg+aAneahiCA+IGhhbmFtb3RvamlhblwgOwor5Y+z5oqY56aB5q2iID4gdXNldHN1a2luc2hpXCA7CivljYPmgJ3kuIfogIMgPiBzZW5zaGliYW5rb3VcIDsKK+S+nemhmOmAgOiBtyA+IGlnYW50YWlzaG9rdVwgOwor5LiJ6YOo5ZCI5ZSxID4gc2FuYnVnYXNzaG91XCA7CivoqIDoqp7kuK3mnqIgPiBnZW5nb2NodXVzdXVcIDsKK+ePvuS7o+aWh+aYjiA+IGdlbmRhaWJ1bm1laVwgOwor6aSK6K235a2m57SaID4geW91Z29nYWtreXV1XCA7Civlm57ou6LpgYvli5UgPiBrYWl0ZW4nJ3VuZG91XCA7CivpgYvovLjmpa3ogIUgPiB1bicneXVneW91c2hhXCA7Civnn7Pmsrnlhazlm6MgPiBzZWtpeXVrb3VkYW5cIDsKK+WxgOmDqOm6u+mFlCA+IGt5b2t1YnVtYXN1aVwgOwor576p5aSq5aSr56+AID4gZ2lkYXl1dWJ1c2hpXCA7Civph5HlsZ7liqDlt6UgPiBraW56b2t1a2Frb3VcIDsKK+aCquaAp+iFq+eYjSA+IGFrdXNlaXNodXlvdVwgOwor6aas6bm/5q2j55u0ID4gYmFrYXNob3VqaWtpXCA7CivlkIjlvIHkvJrnpL4gPiBnb3ViZW5nYWlzaGFcIDsKK+WFrOebiuS6i+alrSA+IGtvdWVraWppZ3lvdVwgOwor5L+h5Y+36Zu75rOiID4gc2hpbmdvdWRlbnBhXCA7CivmtKXjgIXmtabjgIUgPiB0c3VkenV1cmF1cmFcIDsKK+WGhei8quWQjOW/lyA+IHVjaGl3YWRvdXNoaVwgOwor56S+5Lya5LqL5qWtID4gc2hha2FpamlneW91XCA7Civpm7bntLDkvIHmpa0gPiByZWlzYWlraWd5b3VcIDsKK+WbveWumuWFrOWckiA+IGtva3V0ZWlrb3VlblwgOwor5b+c5Yqb5b6E6LevID4gb3VyeW9rdWtlaXJvXCA7CivmjqfoqLTmo4TljbQgPiBrb3Vzb2tpa3lha3VcIDsKK+mAmuWLpOWumuacnyA+IHRzdXVraW50ZWlraVwgOwor5q205Y+y5Zyw5ZuzID4gcmVraXNoaWNoaXp1XCA7Civpm7vlrZDpg7Xkvr8gPiBkZW5zaGl5dXViaW5cIDsKK+S6uuW3peefpeiDvSA+IGppbmtvdWNoaW5vdVwgOwor56m65Lit5oqV5LiLID4ga3V1Y2h1dXRvdWthXCA7Civmpb3lpKnkuLvnvqkgPiByYWt1dGVuc2h1Z2lcIDsKK+a1t+WkluaKleizhyA+IGthaWdhaXRvdXNoaVwgOwor5pqX6Ki855Wq5Y+3ID4gYW5zaG91YmFuZ291XCA7CivlubTpvaLliLbpmZAgPiBuZW5yZWlzZWlnZW5cIDsKK+S+oeagvOaIpuS6iSA+IGtha2FrdXNlbnNvdVwgOwor6auY6YCf5bqm6Yu8ID4ga291c29rdWRva291XCA7CivngavlipvmlK/mj7QgPiBrYXJ5b2t1c2hpZW5cIDsKK+mrmOmAn+mBk+i3ryA+IGtvdXNva3Vkb3Vyb1wgOwor5L2/55So56aB5q2iID4gc2hpeW91a2luc2hpXCA7CivlhqDlqZrokaznpa0gPiBrYW5rb25zb3VzYWlcIDsKK+awtOW5s+Wwvue/vCA+IHN1aWhlaWJpeW9rdVwgOwor5rG66K2w5qmf6ZaiID4ga2V0c3VnaWtpa2FuXCA7CivpgKPpjpblj43lv5wgPiByZW5zYWhhbicnbm91XCA7CivluILmsJHnpL7kvJogPiBzaGltaW5zaGFrYWlcIDsKK+mDqOWIhumbhuWQiCA+IGJ1YnVuc2h1dWdvdVwgOwor5Zub5o2o5LqU5YWlID4gc2hpc2hhZ29ueXV1XCA7Civlj5foqJfkvJrnpL4gPiBqdXRha3VnYWlzaGFcIDsKK+WVj+mhjOaEj+itmCA+IG1vbmRhaWlzaGlraVwgOwor6YeR6J6N5YWs5bqrID4ga2luJyd5dXVrb3Vrb1wgOwor5Y+L6YGU55Sy5paQID4gdG9tb2RhY2hpZ2FpXCA7CivkuIDoiKzmlZnppIogPiBpcHBhbmt5b3V5b3VcIDsKK+WuieWumuaBkOaFjCA+IGFudGVpa3lvdWtvdVwgOwor5rC057Sg5YyW54mpID4gc3Vpc29rYWJ1dHN1XCA7CivnkrDlooPlpInljJYgPiBrYW5reW91aGVua2FcIDsKK+S9k+agvOaknOafuyA+IHRhaWtha3VrZW5zYVwgOwor5YyW5a2m5ZCI5oiQID4ga2FnYWt1Z291c2VpXCA7CivlubPlubPlh6Hlh6EgPiBoZWloZWlib25ib25cIDsKK+W4guWgtOS+oeagvCA+IHNoaWpvdWtha2FrdVwgOwor5ZaE6Zqj6Zai5L+CID4gemVucmlua2Fua2VpXCA7CivlkIjmiJDmtJfliaQgPiBnb3VzZWlzZW56YWlcIDsKK+ims+W/teS4u+e+qSA+IGthbicnbmVuc2h1Z2lcIDsKK+mAmuWLpOaZgumWkyA+IHRzdXVraW5qaWthblwgOwor57WM5riI5L2T5Yi2ID4ga2VpemFpdGFpc2VpXCA7CivkvY/miYDmsI/lkI0gPiBqdXVzaG9zaGltZWlcIDsKK+eWvumiqOaAkua/pCA+IHNoaXBwdXVkb3RvdVwgOwor5Yy755mC5p2Q5paZID4gaXJ5b3V6YWlyeW91XCA7CivmnInmqZ/ovrLmpa0gPiB5dXVraW5vdWd5b3VcIDsKK+WmqOWus+aUvumAgSA+IGJvdWdhaWhvdXNvdVwgOwor6YeR5bGe5YWD57SgID4ga2luem9rdWdlbnNvXCA7Civmra/lhoXnmYLms5UgPiBzaGlrYXJ5b3Vob3VcIDsKK+aCquaIr+Wwj+WDpyA+IGl0YXp1cmFrb3pvdVwgOwor5YWo5qip5aSn5L2/ID4gemVua2VudGFpc2hpXCA7CivljbHmgKXlrZjkuqEgPiBraWt5dXVzb25ib3VcIDsKK+Wuh+WumeS4ree2mSA+IHVjaHV1Y2h1dWtlaVwgOwor6Z2e5Lq66ZaT55qEID4gaGluaW5nZW50ZWtpXCA7Civlj5fkv6Hoo4Xnva4gPiBqdXNoaW5zb3VjaGlcIDsKK+aVsOWApOioiOeulyA+IHN1dWNoaWtlaXNhblwgOwor54mH6KiA6Zq76KqeID4gaGVuZ2Vuc2VraWdvXCA7Civmh5DkuK3mmYLoqIggPiBrYWljaHV1ZG9rZWlcIDsKK+ertui8qumBuOaJiyA+IGtlaXJpbnNlbnNodVwgOwor5pqX5Y+36Kej6KqtID4gYW5nb3VrYWlkb2t1XCA7Civlj43li5XmgJ3mg7MgPiBoYW5kb3VzaGlzb3VcIDsKK+Wun+iovOS4u+e+qSA+IGppc3Nob3VzaHVnaVwgOwor5qiZ5rqW5YGP5beuID4gaHlvdWp1bmhlbnNhXCA7Civos4fmupDllY/poYwgPiBzaGlnZW5tb25kYWlcIDsKK+mBi+mAgealreiAhSA+IHVuc291Z3lvdXNoYVwgOwor6KGM5YuV5Zyw5bivID4ga291ZG91Y2hpdGFpXCA7CivlubPnrYnkuLvnvqkgPiBieW91ZG91c2h1Z2lcIDsKK+S6pOS7o+aKleaJiyA+IGtvdXRhaXRvdXNodVwgOwor5Zu95a6254us5Y2gID4ga29ra2Fkb2t1c2VuXCA7CivlnJ/lnLDmlLnoia8gPiB0b2NoaWthaXJ5b3VcIDsKK+eSsOWig+Wfuua6liA+IGthbmt5b3VraWp1blwgOwor5aSW5Lqk5paH5pu4ID4gZ2Fpa291YnVuc2hvXCA7Civou73mjJnlpoTli5UgPiBrZWlreW9tb3Vkb3VcIDsKK+mYsuiZq+WKoOW3pSA+IGJvdWNodXVrYWtvdVwgOwor5LiN5Zyo5oqV56WoID4gZnV6YWl0b3VoeW91XCA7Civlq4znhZnpgYvli5UgPiBrZW4nJ2VuJyd1bmRvdVwgOwor5bCB57eY6JGJ5pu4ID4gZnV1a2FuaGFnYWtpXCA7Civms7DnhLboh6roi6UgPiB0YWl6ZW5qaWpha3VcIDsKK+aVl+WMl+S4u+e+qSA+IGhhaWJva3VzaHVnaVwgOwor5L6h5qC85oCn6IO9ID4ga2FrYWt1c2Vpbm91XCA7Civmm7jpoZ7pgIHmpJwgPiBzaG9ydWlzb3VrZW5cIDsKK+S6uuaoqeWVj+mhjCA+IGppbmtlbm1vbmRhaVwgOwor5LiA5q275aCx5Zu9ID4gaXNzaGlob3Vrb2t1XCA7Civnt7TppqzlpKfmoLkgPiBuZXJpbWFkYWlrb25cIDsKK+S4gOezuOS4gOavqyA+IGlzc2hpaWNoaWdvdVwgOwor54m55q6K5LqL5oOFID4gdG9rdXNodWppam91XCA7CivogIHlsJHkuI3lrpogPiByb3VzaG91ZnV0ZWlcIDsKK+ebuOS5l+W5s+WdhyA+IHNvdWpvdWhlaWtpblwgOwor5LiH5bm05YCZ6KOcID4gbWFuJyduZW5rb3Vob1wgOwor5a6J5YWo5pWZ6IKyID4gYW56ZW5reW91aWt1XCA7CivnhKHos4PkuZfou4ogPiBtdWNoaW5qb3VzaGFcIDsKK+eJh+WLmeWlkee0hCA+IGhlbm11a2VpeWFrdVwgOwor5LiA6Iis5aSn6KGGID4gaXBwYW50YWlzaHV1XCA7Civlj6TlhbjmloflraYgPiBrb3RlbmJ1bmdha3VcIDsKK+mrmOagoemHjueQgyA+IGtvdWtvdXlha3l1dVwgOwor5LiN5a+p6KiK5ZWPID4gZnVzaGluamlubW9uXCA7CivkuK3oj6/mlpnnkIYgPiBjaHV1a2FyeW91cmlcIDsKK+WBpeW6t+eKtuaFiyA+IGtlbmtvdWpvdXRhaVwgOwor6bm/5YWQ5bO255yMID4ga2Fnb3NoaW1ha2VuXCA7Civmupblgpnnirbms4EgPiBqdW5iaWpvdWt5b3VcIDsKK+mBuOWkluS9s+S9nCA+IHNlbmdhaWthc2FrdVwgOwor6KiA6Kqe5pWZ6IKyID4gZ2VuZ29reW91aWt1XCA7CivlkIzmloflkIznqK4gPiBkb3VidW5kb3VzaHVcIDsKK+e1puS4juS9k+ezuyA+IGt5dXV5b3RhaWtlaVwgOwor6bq76Jas54qv572qID4gbWF5YWt1aGFuemFpXCA7CivmnJ3ku6Tmmq7mlLkgPiBjaG91cmVpYm9rYWlcIDsKK+S6kuaBteadoee0hCA+IGdva2Vpam91eWFrdVwgOwor5LiA5Zu95LiA56WoID4gaWtrb2t1aXBweW91XCA7CivnoLLoiablpJbkuqQgPiBob3VrYW5nYWlrb3VcIDsKK+a1geihjOiogOiRiSA+IGhheWFyaWtvdG9iYVwgOwor5Lqk6YCa5qmf6ZaiID4ga291dHN1dWtpa2FuXCA7CivmsLTpioDpm7vmsaAgPiBzdWlnaW5kZW5jaGlcIDsKK+i/veWWhOS+m+mkiiA+IHRzdWl6ZW5rdXlvdVwgOwor5LuW5Yqb5pys6aGYID4gdGFyaWtpaG9uZ2FuXCA7CivnrKblj7fop6Poqq0gPiBmdWdvdWthaWRva3VcIDsKK+efpeiDveaMh+aVsCA+IGNoaW5vdXNoaXN1dVwgOwor5b2T5Za25qWt5omAID4gdG91ZWlneW91c2hvXCA7Civogbflk6HkvJrorbAgPiBzaG9rdWlua2FpZ2lcIDsKK+iogOiqnueJueaciSA+IGdlbmdvdG9rdXl1dVwgOwor5pyA5bCP6ZmQ5bqmID4gc2Fpc2hvdWdlbmRvXCA7Civmn5PkupXlkInph44gPiBzb21laXlvc2hpbm9cIDsKK+WujOWFqOeKr+e9qiA+IGthbnplbmhhbnphaVwgOwor5pWZ6IKy5Yi25bqmID4ga3lvdWlrdXNlaWRvXCA7CivmiKblm73mmYLku6MgPiBzZW5nb2t1amlkYWlcIDsKK+WJjemnhueXh+eKtiA+IHplbmt1c2hvdWpvdVwgOwor57Sr57as6KSS6LOeID4gc2hpanVob3VzaG91XCA7CivkuIDoqIDljYrlj6UgPiBpY2hpZ29uaGFua3VcIDsKK+S4jeazleWNoOaciSA+IGZ1aG91c2VuJyd5dXVcIDsKK+WutuW6reeSsOWigyA+IGthdGVpa2Fua3lvdVwgOwor6Iie5Y+w55uj552jID4gYnV0YWlrYW50b2t1XCA7CivlkIjmiJDnmq7pnakgPiBnb3VzZWloaWtha3VcIDsKK+WcqOWuheWLpOWLmSA+IHphaXRha3VraW5tdVwgOwor5LiN5Zyo5Zyw5Li7ID4gZnV6YWlqaW51c2hpXCA7CivkuIDlrr/kuIDpo68gPiBpc3NodWt1aXBwYW5cIDsKK+iAgeS6uueXhemZoiA+IHJvdWppbmJ5b3VpblwgOwor54mH6IK66aOb6KGMID4ga2F0YWhhaWhpa291XCA7Civlr77mvZzmsLToiaYgPiB0YWlzZW5zdWlrYW5cIDsKK+itpuaIkuitpuWgsSA+IGtlaWthaWtlaWhvdVwgOwor57Sv56mN6LWk5a2XID4gcnVpc2VraWFrYWppXCA7Civlrrbml4/mp4vmiJAgPiBrYXpva3Vrb3VzZWlcIDsKK+WGheaflOWkluWJmyA+IG5haWp1dWdhaWdvdVwgOwor5bGe5Lq65Li7576pID4gem9rdWppbnNodWdpXCA7Civnoazou5/kuKHmtL4gPiBrb3VuYW5yeW91aGFcIDsKK+W6p+W4reeVquWPtyA+IHphc2VraWJhbmdvdVwgOwor56m65Lit5rWu5o+aID4ga3V1Y2h1dWZ1eW91XCA7CivkuIHnqJrlpYnlhawgPiBkZXRjaGlib3Vrb3VcIDsKK+S4gOaWueS6pOmAmiA+IGlwcG91a291dHN1dVwgOwor5LiJ5pel5pyI5b2iID4gbWlrYWR6dWtpa2VpXCA7CivmpJzkuovnt4/plbcgPiBrZW5qaXNvdWNob3VcIDsKK+aWsOimj+aKleizhyA+IHNoaW5raXRvdXNoaVwgOwor5Y2Y6Kqe5qSc57SiID4gdGFuZ29rZW5zYWt1XCA7CivpmqDljL/nianos4cgPiBpbnRva3VidXNzaGlcIDsKK+Wls+S6uuemgeWItiA+IG55b25pbmtpbnNlaVwgOwor5aSn5L+u6YGT6ZmiID4gZGFpc2h1dWRvdWluXCA7Civmo67mnpflhazlnJIgPiBzaGlucmlua291ZW5cIDsKK+WPl+mok+izh+agvCA+IGp1a2Vuc2hpa2FrdVwgOwor5aSn5ZKM6KiA6JGJID4geWFtYXRva290b2JhXCA7CivlhIDlvI/kuLvnvqkgPiBnaXNoaWtpc2h1Z2lcIDsKK+mAoOWxsemBi+WLlSA+IHpvdXphbicndW5kb3VcIDsKK+S4gOiIrOaVmeiCsiA+IGlwcGFua3lvdWlrdVwgOwor56uL5L2T6Z+z6Z+/ID4gcml0dGFpb25reW91XCA7Civnibnpm4boqJjkuosgPiB0b2t1c2h1dWtpamlcIDsKK+S7mOW4r+axuuitsCA+IGZ1dGFpa2V0c3VnaVwgOwor6KO957SZ5bel5aC0ID4gc2Vpc2hpa291am91XCA7CivmlZHmj7TmipXmiYsgPiBreXV1ZW50b3VzaHVcIDsKK+iyoeWbo+azleS6uiA+IHphaWRhbmhvdWppblwgOwor5rCR5L+X6Iie6LiKID4gbWluem9rdWJ1eW91XCA7CivmiKbkuonniq/nvaogPiBzZW5zb3VoYW56YWlcIDsKK+mbo+eHg+WKoOW3pSA+IG5hbicnbmVua2Frb3VcIDsKK+WNl+iIueWMl+mmrCA+IG5hbnNlbmhva3ViYVwgOwor5qmf6IO96Zqc5a6zID4ga2lub3VzaG91Z2FpXCA7Civml6XmnKzlm73msJEgPiBuaWhvbmtva3VtaW5cIDsKK+iInui4j+aVmeW4qyA+IGJ1dG91a3lvdXNoaVwgOwor5p6X6ZaT5a2m5qChID4gcmlua2FuZ2Fra291XCA7CivoirHprYHpgZPkuK0gPiBvaXJhbmRvdWNodXVcIDsKK+a7kemZjeertuaKgCA+IGtha2tvdWt5b3VnaVwgOwor5Zyo5aSW5YWs6aSoID4gemFpZ2Fpa291a2FuXCA7CivlnLDmlrnpgbjmjJkgPiBjaGlob3VzZW5reW9cIDsKK+WQiOaIkOWMluWtpiA+IGdvdXNlaWthZ2FrdVwgOwor56eB6KO96JGJ5pu4ID4gc2hpc2VpaGFnYWtpXCA7CivkuI3lrprnqY3liIYgPiBmdXRlaXNla2lidW5cIDsKK+ato+OAheWgguOAhSA+IHNlaXNlaWRvdWRvdVwgOwor5Y2K5L+h5Y2K55aRID4gaGFuc2hpbmhhbmdpXCA7CivovLjlhaXotoXpgY4gPiB5dW55dXVjaG91a2FcIDsKK+Wbm+WFg+mAn+W6piA+IHNoaWdlbnNva3Vkb1wgOwor5LuY5bGe5a2m5qChID4gZnV6b2t1Z2Fra291XCA7Civkurrlt6XnnJ/nj6AgPiBqaW5rb3VzaGluanVcIDsKK+S6uuaoqeWbo+S9kyA+IGppbmtlbmRhbnRhaVwgOwor5pys5paH5om56KmVID4gaG9ubW9uaGloeW91XCA7CivnlLvpvo3ngrnnnZsgPiBnYXJ5b3V0ZW5zZWlcIDsKK+S5vuWcsOi+suazlSA+IGthbmNoaW5vdWhvdVwgOwor5Zan5Zan5ZuC5ZuCID4ga2Vua2VuZ291Z291XCA7CivkurrlrprlsIvllY8gPiBqaW50ZWlqaW5tb25cIDsKK+S7u+acn+a6gOS6hiA+IG5pbmtpbWFucnlvdVwgOwor56u26aas5paw6IGeID4ga2VpYmFzaGluYnVuXCA7Civpm7vmsJflt6XlraYgPiBkZW5raWtvdWdha3VcIDsKK+S+m+e1pumBjuWkmiA+IGt5b3VreXV1a2F0YVwgOwor5Y+j6aCt5a+p55CGID4ga291dG91c2hpbnJpXCA7CivlubPlkozmlZnogrIgPiBoZWl3YWt5b3Vpa3VcIDsKK+e3j+WQiOeXhemZoiA+IHNvdWdvdWJ5b3VpblwgOwor5LiK5bGk5rCX5rWBID4gam91c291a2lyeXV1XCA7CivogIHpvaLlubTph5EgPiByb3VyZWluZW5raW5cIDsKK+a8lOWlj+e3tOe/kiA+IGVuc291cmVuc2h1dVwgOwor5LuV5o6b5Zyw6Zu3ID4gc2hpa2FrZWppcmFpXCA7Civlm57ou6Los4fph5EgPiBrYWl0ZW5zaGlraW5cIDsKK+aal+S4reaooee0oiA+IGFuY2h1dW1vc2FrdVwgOwor5ZSv5oiR54us5bCKID4geXVpZ2Fkb2t1c29uXCA7Civpm4bmlaPkuLvnvqkgPiBzaHV1c2Fuc2h1Z2lcIDsKK+Wcn+eUo+eJqeWxiyA+IG1peWFnZW1vbm95YVwgOwor6Ieq57Wm6Ieq6LazID4gamlreXV1amlzb2t1XCA7CivlkozlubPljZTlrpogPiB3YWhlaWt5b3V0ZWlcIDsKK+WcsOaWueWIhuaoqSA+IGNoaWhvdWJ1bmtlblwgOwor5biC5YaF6Kaz5YWJID4gc2hpbmFpa2Fua291XCA7CivmlL7lsITog73pm6ggPiBob3VzaGFub3VhbWVcIDsKK+irnOWgseapn+mWoiA+IGNob3Vob3VraWthblwgOwor5bCx5a2m576p5YuZID4gc2h1dWdha3VnaW11XCA7CivoiKrnqbrlhKrli6IgPiBrb3VrdXV5dXVzZWlcIDsKK+S6uuaJjeeZu+eUqCA+IGppbnphaXRvdXlvdVwgOwor6KSH5pys5L2N5Yi2ID4gZnVrdWhvbicnaXNlaVwgOwor55Sf5rS75L+d6K23ID4gc2Vpa2F0c3Vob2dvXCA7Civpm4bkuK3osarpm6ggPiBzaHV1Y2h1dWdvdXVcIDsKK+W+tOWFteWFjemZpCA+IGNob3VoZWltZW5qb1wgOwor5YWs5a6z5ZWP6aGMID4ga291Z2FpbW9uZGFpXCA7CivljZjouqvotbTku7sgPiB0YW5zaGluZnVuaW5cIDsKK+W3ruWIpeeUqOiqniA+IHNhYmV0c3V5b3Vnb1wgOwor5Lq65Y+j5YuV5oWLID4gamlua291ZG91dGFpXCA7CivlroflrpnniannkIYgPiB1Y2h1dWJ1dHN1cmlcIDsKK+WFqOmdouaIpuS6iSA+IHplbm1lbnNlbnNvdVwgOwor57WM5riI54q25oWLID4ga2VpemFpam91dGFpXCA7Civlp5ToqJfnoJTnqbYgPiBpdGFrdWtlbmt5dXVcIDsKK+WNg+i+m+S4h+iLpiA+IHNlbnNoaW5iYW5rdVwgOwor5Yy755mC5aCx6YWsID4gaXJ5b3Vob3VzaHV1XCA7CivmsLTmmbbmmYLoqIggPiBzdWlzaG91ZG9rZWlcIDsKK+S4ieaWh+aWh+WjqyA+IHNhbm1vbmJ1bnNoaVwgOwor5Zue6Lui5pyo6aasID4ga2FpdGVubW9rdWJhXCA7CivkuI3miKbmnaHntIQgPiBmdXNlbmpvdXlha3VcIDsKK+S4gOeUn+aHuOWRvSA+IGlzc2hvdWtlbm1laVwgOwor5pel6YCy5pyI5q2pID4gbmlzc2hpbmdlcHBvXCA7Civlj5foqJfosqnlo7IgPiBqdXRha3VoYW5iYWlcIDsKK+aWh+WMluWLsueroCA+IGJ1bmtha3Vuc2hvdVwgOwor5oKg5oKg6ZaR6ZaRID4geXV1eXV1a2Fua2FuXCA7Civku4/oi7Hovp7lhbggPiBmdXRzdWVpaml0ZW5cIDsKK+ihm+eUn+W3peWtpiA+IGVpc2Vpa291Z2FrdVwgOwor5pS/6KaL5pS+6YCBID4gc2Vpa2VuaG91c291XCA7CivmsLTmgKfloZfmlpkgPiBzdWlzZWl0b3J5b3VcIDsKK+WFiOmAsuWFteWZqCA+IHNlbnNoaW5oZWlraVwgOwor6Ieq5bex5Lit5b+DID4gamlrb2NodXVzaGluXCA7CivlkIzlkozmlZnogrIgPiBkb3V3YWt5b3Vpa3VcIDsKK+Wtpum9ouWFkOerpSA+IGdha3VyZWlqaWRvdVwgOwor6IGW5Zyw5beh56S8ID4gc2VpY2hpanVucmVpXCA7CivnpL7lm6Pms5XkurogPiBzaGFkYW5ob3VqaW5cIDsKK+iyqOeJqei8uOmAgSA+IGthbW90c3V5dXNvdVwgOwor5q2j5aSa6KeS5b2iID4gc2VpdGFrYWt1a2VpXCA7Civpm7vmsJflrrnph48gPiBkZW5raXlvdXJ5b3VcIDsKK+a6luemgeayu+eUoyA+IGp1bmtpbmNoaXNhblwgOwor5YyW5a2m5qeL6YCgID4ga2FnYWt1a291em91XCA7CivkuIDlhZrni6zoo4EgPiBpdHRvdWRva3VzYWlcIDsKK+eEoemZkOWwj+aVsCA+IG11Z2Vuc2hvdXN1dVwgOwor5ri+54S25LiA5L2TID4ga29uemVuJydpdHRhaVwgOwor5rW35bqV5Zyw6ZyHID4ga2FpdGVpamlzaGluXCA7CivljZrlo6voqrLnqIsgPiBoYWt1c2hpa2F0ZWlcIDsKK+W5s+Wdh+Wvv+WRvSA+IGhlaWtpbmp1bXlvdVwgOwor5biC5rCR6YGL5YuVID4gc2hpbWluJyd1bmRvdVwgOwor6KiY5b+15Ye654mIID4ga2luZW5zaHVwcGFuXCA7Civoo4Xnva7liLblvqEgPiBzb3VjaGlzZWlneW9cIDsKK+WOn+ijgeWIpOaJgCA+IGdlbnNhaWJhbnNob1wgOwor5Y6a55Sf5aSn6IejID4ga291c2VpZGFpamluXCA7CivmsrnohILlt6Xmpa0gPiB5dXNoaWtvdWd5b3VcIDsKK+e3j+aUr+mFjeS6uiA+IHNvdXNoaWhhaW5pblwgOwor5pel54Wn5pmC6ZaTID4gbmlzc2hvdWppa2FuXCA7CivkuIDoiKzmlZnmm7ggPiBpcHBhbmt5b3VzaG9cIDsKK+S4gOmDqOWni+e1giA+IGljaGlidXNoaWp1dVwgOwor6Zai5pWw5Y6f5Z6LID4ga2Fuc3V1Z2Vua2VpXCA7CivkuInph43lrp3lhqAgPiBzYW5qdXVob3VrYW5cIDsKK+atk+mAgei/juS8miA+IGthbnNvdWdlaWthaVwgOwor57eK5oCl6YG/6ZujID4ga2lua3l1dWhpbmFuXCA7CivliLnpgqPkuLvnvqkgPiBzZXRzdW5hc2h1Z2lcIDsKK+W3pealreWcsOWMuiA+IGtvdWd5b3VjaGlrdVwgOwor5oiR5qW95aSa5biCID4gZ2FyYWt1dGFpY2hpXCA7Civou6Llhpnmjbrmn5MgPiB0ZW5zaGFuYXNzZW5cIDsKK+iHqueEtueBveWusyA+IHNoaXplbnNhaWdhaVwgOwor5aSp5LqV5qOn5pW3ID4gdGVuam91c2FqaWtpXCA7CivlhYjooYzmnaHku7YgPiBzZW5rb3Vqb3VrZW5cIDsKK+aciOS4i+awt+S6uiA+IGdla2thaHlvdWppblwgOwor5Yy76Jas5YiG5qWtID4gaXlha3VidW5neW91XCA7CivouqvlhYPkv53oqLwgPiBtaW1vdG9ob3Nob3VcIDsKK+e0lOato+enkeWtpiA+IGp1bnNlaWthZ2FrdVwgOwor5LqM6YeN6YGT5b6zID4gbmlqdXVkb3V0b2t1XCA7CivmgrLllpzkuqTkuqQgPiBoaWtpa29tb2dvbW9cIDsKK+e3iuaApeWLleitsCA+IGtpbmt5dXVkb3VnaVwgOwor5aSq6Zm96Zu75rGgID4gdGFpeW91ZGVuY2hpXCA7CivooZfpoK3pjLLpn7MgPiBnYWl0b3Vyb2t1b25cIDsKK+Wbvemam+apn+mWoiA+IGtva3VzYWlraWthblwgOwor5YmN5YK+5ae/5YuiID4gemVua2Vpc2hpc2VpXCA7CivluLDlsZ7mhI/orZggPiBraXpva3Vpc2hpa2lcIDsKK+WFrOihhuS+v+aJgCA+IGtvdXNodXViZW5qb1wgOwor5pel5pys5Zu95YaFID4gbmlob25rb2t1bmFpXCA7CivpgbjmsJHmgJ3mg7MgPiBzZW5taW5zaGlzb3VcIDsKK+WSgOWavOmBi+WLlSA+IHNvc2hha3V1bmRvdVwgOwor5YWx5ZCM55aO6ZaLID4ga3lvdWRvdXNva2FpXCA7CivoqJjlv7XlhpnnnJ8gPiBraW5lbnNoYXNoaW5cIDsKK+eBq+eHteW4g+WboyA+IGtvdGF0c3VidXRvblwgOwor5YWo6Z2i56aB5q2iID4gemVubWVua2luc2hpXCA7CivljJflm57luLDnt5ogPiBraXRha2Fpa2lzZW5cIDsKK+mAo+WQiOiJpumaiiA+IHJlbmdvdWthbnRhaVwgOwor5Lq65ZG95pWR5YqpID4gamlubWVpa3l1dWpvXCA7CivmiKbkuonnirbmhYsgPiBzZW5zb3Vqb3V0YWlcIDsKK+Wls+WtkOWkp+WtpiA+IGpvc2hpZGFpZ2FrdVwgOwor5Zu95aOr54Sh5Y+MID4ga29rdXNoaW11c291XCA7CivlubPlnYfkvZnlkb0gPiBoZWlraW4nJ3lvbWVpXCA7CivkuovkvovnoJTnqbYgPiBqaXJlaWtlbmt5dXVcIDsKK+WIhuaVo+aKleizhyA+IGJ1bnNhbnRvdXNoaVwgOwor5YG25YOP56S85oudID4gZ3V1em91cmVpaGFpXCA7Civlirnmnpzopr/pnaIgPiBrb3VrYXRla2ltZW5cIDsKK+e3iuW8tee3qeWSjCA+IGtpbmNob3VrYW53YVwgOwor5LiN6Kix6KSH6KO9ID4gZnVreW9mdWt1c2VpXCA7CivljJfmrKfnpZ7oqbEgPiBob2t1b3VzaGlud2FcIDsKK+S6uuS6i+ihjOaUvyA+IGppbmppZ3lvdXNlaVwgOwor5pit5ZKM5bm06ZaTID4gc2hvdXdhbmVua2FuXCA7Civlm73lrZfllY/poYwgPiBrb2t1amltb25kYWlcIDsKK+WbveWLmeWkp+iHoyA+IGtva3VtdWRhaWppblwgOwor6KiA6Kqe6Zqc5a6zID4gZ2VuZ29zaG91Z2FpXCA7Civlho3osqnkvqHmoLwgPiBzYWloYW5rYWtha3VcIDsKK+W5s+Wdh+agquS+oSA+IGhlaWtpbmthYnVrYVwgOwor5a6J5oGv6aaZ6YW4ID4gYW5zb2t1a291c2FuXCA7CivorZzku6PlpKflkI0gPiBmdWRhaWRhaW15b3VcIDsKK+mBk+i3r+ioiOeUuyA+IGRvdXJva2Vpa2FrdVwgOwor5Y+k6Ieq5YuV6LuKID4gZnVydWppZG91c2hhXCA7Civlrrnlp7/nq6/pupcgPiB5b3VzaGl0YW5yZWlcIDsKK+iri+iyoOalreiAhSA+IHVrZW9pZ3lvdXNoYVwgOwor6YCa5bi45Y+j6KqeID4gdHN1dWpvdWtvdWdvXCA7CivlnKjlpJbpgqbkurogPiB6YWlnYWlob3VqaW5cIDsKK+mWi+aUvue1jOa4iCA+IGthaWhvdWtlaXphaVwgOwor5L2T5pON56u25oqAID4gdGFpc291a3lvdWdpXCA7CivlirTlg43lkIznm58gPiByb3Vkb3Vkb3VtZWlcIDsKK+Wbvemam+mDveW4giA+IGtva3VzYWl0b3NoaVwgOwor5pyJ5Yi66YmE57eaID4geXV1c2hpdGVzc2VuXCA7Civlm6PkvZPooYzli5UgPiBkYW50YWlrb3Vkb3VcIDsKK+W/nOeUqOaVsOWtpiA+IG91eW91c3V1Z2FrdVwgOwor5Lqk6YCa5beh5p+7ID4ga291dHN1dWp1bnNhXCA7CivnhKHmlbXoiabpmoogPiBtdXRla2lrYW50YWlcIDsKK+iIquepuuS8muekviA+IGtvdWt1dWdhaXNoYVwgOwor5aSn5pS/5aWJ6YKEID4gdGFpc2VpaG91a2FuXCA7CivkuI3mkpPkuI3lsYggPiBmdXRvdWZ1a3V0c3VcIDsKK+ebuOmWoumWouS/giA+IHNvdWthbmthbmtlaVwgOwor5ZCM55uf57235qWtID4gZG91bWVpaGlneW91XCA7Civou43lgpnnq7bkuokgPiBndW5iaWt5b3Vzb3VcIDsKK+W9ouWuueWLleipniA+IGtlaXlvdWRvdXNoaVwgOwor6KOc57Wm5bm557eaID4gaG9reXV1a2Fuc2VuXCA7Civngrrmm7/oo4HlrpogPiBrYXdhc2VzYWl0ZWlcIDsKK+ihqOePvuS4u+e+qSA+IGh5b3VnZW5zaHVnaVwgOwor5paH5pWZ5Zyw5Yy6ID4gYnVua3lvdWNoaWt1XCA7Civph5HlsZ7nlrLlirQgPiBraW56b2t1aGlyb3VcIDsKK+W8t+WItueWjumWiyA+IGt5b3VzZWlzb2thaVwgOwor6K2m6KaW57eP55ujID4ga2Vpc2hpc291a2FuXCA7Civku6PooajnpL7lk6EgPiBkYWloeW91c2hhaW5cIDsKK+WAn+Wxi+S9j+WxhSA+IHNoYWt1eWF6dW1haVwgOwor5b605YW15Yi25bqmID4gY2hvdWhlaXNlaWRvXCA7Civnn63mnJ/lpKflraYgPiB0YW5raWRhaWdha3VcIDsKK+eri+S9k+aUvumAgSA+IHJpdHRhaWhvdXNvdVwgOwor5aSp5LqV5qGf5pW3ID4gdGVuam91c2FqaWtpXCA7CivlnKfov6vljIXluK8gPiBhcHBha3Vob3V0YWlcIDsKK+mAmueUqOacn+mWkyA+IHRzdXV5b3VraWthblwgOwor5YuJ5by35pmC6ZaTID4gYmVua3lvdWppa2FuXCA7CivmiLjnsY3orITmnKwgPiBrb3Nla2l0b3Vob25cIDsKK+WutuW6reaVmeiCsiA+IGthdGVpa3lvdWlrdVwgOwor5Zyw6ZyH5o6i6YmxID4gamlzaGludGFua291XCA7Civpgb/pm6Pmoq/lrZAgPiBoaW5hbmJhc2hpZ29cIDsKK+ekvuS8muWlieS7lSA+IHNoYWthaWhvdXNoaVwgOwor5ama5aSW5oCn5LqkID4ga29uZ2Fpc2Vpa291XCA7CivkuI3lj6/mipflipsgPiBmdWtha291cnlva3VcIDsKK+Wft+ihjOapn+mWoiA+IHNoaWtrb3VraWthblwgOwor5Yuk5YuZ6KmV5a6aID4ga2lubXVoeW91dGVpXCA7CivluLjnlKjlr77mlbAgPiBqb3V5b3V0YWlzdXVcIDsKK+Wkp+mBk+iKuOS6uiA+IGRhaWRvdWdlaW5pblwgOwor6buS6aKo55m96ZuoID4ga29rdWZ1dWhha3V1XCA7CivpioDooYzmpa3li5kgPiBnaW5rb3VneW91bXVcIDsKK+ePvuWcsOiqv+afuyA+IGdlbmNoaWNob3VzYVwgOwor6YGg5rSL6Iiq5rW3ID4gZW4nJ3lvdWtvdWthaVwgOwor5aSW5Lqk6Zai5L+CID4gZ2Fpa291a2Fua2VpXCA7Civnp4HlrabliqnmiJAgPiBzaGlnYWt1am9zZWlcIDsKK+eEoeeXm+WIhuWoqSA+IG11dHN1dWJ1bmJlblwgOwor5LiN6Imv5YK15qipID4gZnVyeW91c2Fpa2VuXCA7CivlnLDln5/mmYLliLsgPiBjaGlpa2lqaWtva3VcIDsKK+WHueeJiOWNsOWItyA+IG91aGFuaW5zYXRzdVwgOwor5Z+65bm555Sj5qWtID4ga2lrYW5zYW5neW91XCA7Civot6/kuIrpp5Dou4ogPiByb2pvdWNodXVzaGFcIDsKK+mmluiEs+S8muirhyA+IHNodW5vdWthaWRhblwgOwor54us6KOB5pS/5rK7ID4gZG9rdXNhaXNlaWppXCA7CivlpJbkuqTllY/poYwgPiBnYWlrb3Vtb25kYWlcIDsKK+egtOeUo+eUs+iriyA+IGhhc2Fuc2hpbnNlaVwgOwor6YO35Zyf6Iq46IO9ID4ga3lvdWRvZ2Vpbm91XCA7CivlvozmlrnlnLDln58gPiBrb3Vob3VjaGlpa2lcIDsKK+WkqumZveaUvuWwhCA+IHRhaXlvdWhvdXNoYVwgOwor6KW/5rSL5paH5piOID4gc2VpeW91YnVubWVpXCA7CivmjK/mm7/ovLjpgIEgPiBmdXJpa2FleXVzb3VcIDsKK+S6pOaPm+adoeS7tiA+IGtvdWthbmpvdWtlblwgOwor55m66KGM5biC5aC0ID4gaGFra291c2hpam91XCA7CivkuIDmmKjmmKjlubQgPiBzYWtpb3RvdG9zaGlcIDsKK+ijveiPk+alreiAhSA+IHNlaWthZ3lvdXNoYVwgOwor5oSb5Zu95Zuj5L2TID4gYWlrb2t1ZGFudGFpXCA7CivlpInlvaLopo/liYcgPiBoZW5rZWlraXNva3VcIDsKK+S6uuawl+aKleelqCA+IG5pbmtpdG91aHlvdVwgOwor55S35aWz5bmz562JID4gZGFuam9ieW91ZG91XCA7Civpg7Xkvr/okYnmm7ggPiB5dXViaW5oYWdha2lcIDsKK+a1heWtpumdnuaJjSA+IHNlbmdha3VoaXNhaVwgOwor5biC5aC05pKk6YCAID4gc2hpam91dGV0dGFpXCA7CivlrprmnJ/mpJzoqLogPiB0ZWlraWtlbnNoaW5cIDsKK+Wbo+S9k+ertuaKgCA+IGRhbnRhaWt5b3VnaVwgOwor5rCR6ZaT5Zuj5L2TID4gbWlua2FuZGFudGFpXCA7CivlsIHlu7rmgJ3mg7MgPiBob3VrZW5zaGlzb3VcIDsKK+iIque2mui3nemboiA+IGtvdXpva3VreW9yaVwgOwor5Y+M5bOw6aex6aedID4gc291aG91cmFrdWRhXCA7Civnmb7np5Hlhajmm7ggPiBoeWFra2F6ZW5zaG9cIDsKK+ippuihjOmMr+iqpCA+IHNoaWtvdXNha3Vnb1wgOwor5bel5aC05Zyw5bivID4ga291am91Y2hpdGFpXCA7CivmlL/msrvmlLnpnakgPiBzZWlqaWthaWtha3VcIDsKK+W4guawkeS8mumkqCA+IHNoaW1pbmthaWthblwgOwor5pyJ6ZmQ5Lya56S+ID4geXV1Z2VuZ2Fpc2hhXCA7Civph43llYbkuLvnvqkgPiBqdXVzaG91c2h1Z2lcIDsKK+mnheWJjeW6g+WgtCA+IGVraW1hZWhpcm9iYVwgOwor5pS/5rK76LKs5Lu7ID4gc2VpamlzZWtpbmluXCA7CivlsILmpa3kuLvlqaYgPiBzZW5neW91c2h1ZnVcIDsKK+ePvuWgtOebo+edoyA+IGdlbmJha2FudG9rdVwgOwor5YWs6Lui5ZGo5pyfID4ga291dGVuc2h1dWtpXCA7Civlj6PkuInlkbPnt5ogPiBrdWNoaWphbWlzZW5cIDsKK+S4gOaYqOaYqOWknCA+IGlzc2FrdXNha3V5YVwgOwor6KGA5riF6IKd54KOID4ga2Vzc2Vpa2FuJydlblwgOwor5Lq66Leh5pyq6LiPID4gamluc2VraW1pdG91XCA7CivlvLfliLbkv53pmbogPiBreW91c2VpaG9rZW5cIDsKK+S4gOacm+WNg+mHjCA+IGljaGlib3VzZW5yaVwgOwor5YiR5YuZ5omA6ZW3ID4ga2VpbXVzaG9jaG91XCA7CivloLTlhoXmlL7pgIEgPiBqb3VuYWlob3Vzb3VcIDsKK+acneS4ieaaruWbmyA+IGNob3VzYW5ib3NoaVwgOwor56aP56WJ5Zu95a62ID4gZnVrdXNoaWtva2thXCA7CivplbfliIDkuIDmnp0gPiBjaG91dG91aXNzaGlcIDsKK+aCsuWWnOS6pOOAhSA+IGhpa2lrb21vZ29tb1wgOwor54Sh57ea5bel5a2mID4gbXVzZW5rb3VnYWt1XCA7Civli53liKnmipXmiYsgPiBzaG91cml0b3VzaHVcIDsKK+Wkqeawl+amguazgSA+IHRlbmtpZ2Fpa3lvdVwgOwor54Sh5bi46L+F6YCfID4gbXVqb3VqaW5zb2t1XCA7CivooYzli5Xnp5HlraYgPiBrb3Vkb3VrYWdha3VcIDsKK+S6iOmYsuazqOWwhCA+IHlvYm91Y2h1dXNoYVwgOwor5qW156eY5oOF5aCxID4gZ29rdWhpam91aG91XCA7CivlsIHlu7rnpL7kvJogPiBob3VrZW5zaGFrYWlcIDsKK+WKtOS9v+e0m+S6iSA+IHJvdXNoaWZ1bnNvdVwgOwor6Ieq5a2m6Ieq57+SID4gamlnYWt1amlzaHV1XCA7CivkuI3pgKPntprnt5ogPiBmdXJlbnpva3VzZW5cIDsKK+ayu+WkluazleaoqSA+IGNoaWdhaWhvdWtlblwgOwor57WM5riI5aSW5LqkID4ga2VpemFpZ2Fpa291XCA7CivliIPniankuInmmKcgPiBoYW1vbm96YW5tYWlcIDsKK+WFieWtpue5iue2rSA+IGtvdWdha3VzZW4nJ2lcIDsKK+WFqOS8keatouespiA+IHplbmt5dXVzaGlmdVwgOwor5ZKM5rSL5oqY6KG3ID4gd2F5b3VzZXRjaHV1XCA7CivmuIXnrpfkvJrnpL4gPiBzZWlzYW5nYWlzaGFcIDsKK+W7g+iXqee9ruecjCA+IGhhaWhhbmNoaWtlblwgOwor6Ieo5bqK6Kyb576pID4gcmluc2hvdWtvdWdpXCA7CivntJTml6XmnKzpoqggPiBqdW4nJ25paG9uZnV1XCA7CivmjJnlm73kuIDoh7QgPiBreW9rb2t1aXRjaGlcIDsKK+Wkp+ihhumBi+WLlSA+IHRhaXNodXV1bmRvdVwgOwor5biC5aC06Kq/5p+7ID4gc2hpam91Y2hvdXNhXCA7CivlhazplovlpJbkuqQgPiBrb3VrYWlnYWlrb3VcIDsKK+Wkp+iUteWkp+iHoyA+IG9va3VyYWRhaWppblwgOwor5L+u5q2j5LqI566XID4gc2h1dXNlaXlvc2FuXCA7CivooYzmlL/mqZ/plqIgPiBneW91c2Vpa2lrYW5cIDsKK+aUv+aVmeWIhumboiA+IHNlaWt5b3VidW5yaVwgOwor5pCt5LmX5qGI5YaFID4gdG91am91YW4nJ25haVwgOwor5LqU5Lq65ZuD5a2QID4gZ29uaW5iYXlhc2hpXCA7Civni6zlloTkuLvnvqkgPiBkb2t1emVuc2h1Z2lcIDsKK+iIquepuuabuOewoSA+IGtvdWt1dXNob2thblwgOwor6LOb5ZCm5ZCM56WoID4gc2FucGlkb3VoeW91XCA7CivkurrmloflrabmtL4gPiBqaW5idW5nYWt1aGFcIDsKK+aPtOeUqOeUn+eUoyA+IGVuJyd5b3VzZWlzYW5cIDsKK+S4jeiAleS9nOWcsCA+IGZ1a291c2FrdWNoaVwgOwor5aSn5L2/5YWs6YK4ID4gdGFpc2hpa291dGVpXCA7CivmsbrorbDkuovpoIUgPiBrZXRzdWdpamlrb3VcIDsKK+a4qeazieeZguazlSA+IG9uc2VucnlvdWhvdVwgOwor5LiA6aGw5LiA56yRID4gaXBwaW4nJ2lzc2hvdVwgOwor6Zu75rCX5L+h5Y+3ID4gZGVua2lzaGluZ291XCA7CivlsILnrqHmsLTln58gPiBzZW5rYW5zdWlpa2lcIDsKK+WkqeS9k+W0h+aLnSA+IHRlbnRhaXN1dWhhaVwgOwor55u45LqS5Y+C54WnID4gc291Z29zYW5zaG91XCA7CivlibLng7nmlpnnkIYgPiBrYXBwb3VyeW91cmlcIDsKK+mDiuWklumbu+i7iiA+IGtvdWdhaWRlbnNoYVwgOwor5L+u5q2j5Li7576pID4gc2h1dXNlaXNodWdpXCA7Civoo5zlvLfoqLzmi6AgPiBob2t5b3VzaG91a29cIDsKK+S6uuadkOmKgOihjCA+IGppbnphaWdpbmtvdVwgOwor6L+R5Luj6Z+z5qW9ID4ga2luZGFpb25nYWt1XCA7Civoo4/pnaLlt6XkvZwgPiByaW1lbmtvdXNha3VcIDsKK+azleayu+ekvuS8miA+IGhvdWNoaXNoYWthaVwgOwor5aSn55uk5oyv6IieID4gb29iYW5idXJ1bWFpXCA7CivkuInlspDku6PooaggPiBzYW5naWRhaWh5b3VcIDsKK+aVmeWToee1hOWQiCA+IGt5b3Vpbmt1bWlhaVwgOwor5rW36Zuj5pWR5YqpID4ga2FpbmFua3l1dWpvXCA7CivpjLLpn7PmlL7pgIEgPiByb2t1b25ob3Vzb3VcIDsKK+S4ieiAheWHoemAgCA+IHNhbnNoYWJvbnRhaVwgOwor5pel5pys5rW35rWBID4gbmlob25rYWlyeXV1XCA7Civlj7LkuIrmnIDlpKcgPiBzaGlqb3VzYWlkYWlcIDsKK+iomOaGtumanOWusyA+IGtpb2t1c2hvdWdhaVwgOwor5LiN5Yq05omA5b6XID4gZnVyb3VzaG90b2t1XCA7CivogIHojZjmgJ3mg7MgPiByb3Vzb3VzaGlzb3VcIDsKK+i7jemcgOW3pealrSA+IGd1bmp1a291Z3lvdVwgOwor6Zui5ZCI6ZuG5pWjID4gcmlnb3VzaHV1c2FuXCA7Civoia/lprvos6Lmr40gPiByeW91c2Fpa2VuYm9cIDsKK+i7jeWPuOS7pOWumCA+IGd1bnNoaXJlaWthblwgOwor6LK/5piT5Lya56S+ID4gYm91ZWtpZ2Fpc2hhXCA7Civnh5DphbjogqXmlpkgPiByaW5zYW5oaXJ5b3VcIDsKK+eEoemZkOiyrOS7uyA+IG11Z2Vuc2VraW5pblwgOwor56eR5a2m5oCd5oOzID4ga2FnYWt1c2hpc291XCA7Civlm5vmtbflkIzog54gPiBzaGlrYWlkb3Vob3VcIDsKK+WBpeW6t+WVj+mhjCA+IGtlbmtvdW1vbmRhaVwgOwor5oSf5YK35Li7576pID4ga2Fuc2hvdXNodWdpXCA7CivppqzpoK3oprPpn7MgPiBiYXRvdWthbicnbm9uXCA7CivlpKnpoILot53pm6IgPiB0ZW5jaG91a3lvcmlcIDsKK+iqv+afu+mDqOmVtyA+IGNob3VzYWJ1Y2hvdVwgOwor5Y2D57Sr5LiH57SFID4gc2Vuc2hpYmFua291XCA7CivooYzli5Xlkb3ku6QgPiBrb3Vkb3VtZWlyZWlcIDsKK+eCuuabv+aJi+W9oiA+IGthd2FzZXRlZ2F0YVwgOwor6LWk6YGT5rCX5ZujID4gc2VraWRvdWtpZGFuXCA7CivnqbrkuK3okL3kuIsgPiBrdXVjaHV1cmFra2FcIDsKK+WumuagvOiNt+mHjSA+IHRlaWtha3VrYWp1dVwgOwor54K65pu/6YqA6KGMID4ga2F3YXNlZ2lua291XCA7Civlrpjog73kuLvnvqkgPiBrYW4nJ25vdXNodWdpXCA7Civlrrbluq3mlZnluKsgPiBrYXRlaWt5b3VzaGlcIDsKK+aYvOWknOWFvOihjCA+IGNodXV5YWtlbmtvdVwgOwor5Lya56S+5Za25qWtID4ga2Fpc2hhZWlneW91XCA7CivllZPokpnmgJ3mg7MgPiBrZWltb3VzaGlzb3VcIDsKK+mdnuW+queSsOeahCA+IGhpanVua2FudGVraVwgOwor5paH5rCR57Wx5Yi2ID4gYnVubWludG91c2VpXCA7CivpgY7phbjljJbniakgPiBrYXNhbmthYnV0c3VcIDsKK+S4gOW/teeZuui1tyA+IGljaGluZW5ob2traVwgOwor6IKy5oiQ5qC95Z+5ID4gaWt1c2Vpc2FpYmFpXCA7Civnj77loLTmpJzoqLwgPiBnZW5iYWtlbnNob3VcIDsKK+aZguS7o+iAg+iovCA+IGppZGFpa291c2hvdVwgOwor5oSf5bqm6Imv5aW9ID4ga2FuZG9yeW91a291XCA7CivpgI/mmI7kurrplpMgPiB0b3VtZWluaW5nZW5cIDsKK+W4uOWll+aJi+autSA+IGpvdXRvdXNodWRhblwgOwor5ZKM5bmz5bel5L2cID4gd2FoZWlrb3VzYWt1XCA7CivmmpfkuK3po5vouo0gPiBhbmNodXVoaXlha3VcIDsKK+S6uuawkeijgeWIpCA+IGppbm1pbnNhaWJhblwgOwor5pa96KGM6KaP5YmHID4gc2hpa291a2lzb2t1XCA7CivljYrouqvkuI3pmo8gPiBoYW5zaGluZnV6dWlcIDsKK+aZrumAmuWQjeipniA+IGZ1dHN1dW1laXNoaVwgOwor5a++6LGh56+E5ZuyID4gdGFpc2hvdWhhbicnaVwgOwor5Lq65rCR5oim57eaID4gamlubWluc2Vuc2VuXCA7CivnsKHmmI7lvLflm7ogPiBrYW5tZWlreW91a29cIDsKK+WPr+iDvemBuOaKniA+IGthbm91c2VudGFrdVwgOwor5bGL5YaF56u25oqAID4gb2t1bmFpa3lvdWdpXCA7CivlpJrmg4Xku4/lv4MgPiB0YWpvdWJ1c3NoaW5cIDsKK+WNmOe0lOioiOeulyA+IHRhbmp1bmtlaXNhblwgOwor5YWs6KGG6Zu76KmxID4ga291c2h1dWRlbndhXCA7CivoirHoh6rli5Xou4ogPiBoYW5hamlkb3VzaGFcIDsKK+aUvuiVqeaBr+WtkCA+IGhvdXRvdW11c3Vrb1wgOwor5YaZ55yf5qmf5bqXID4gc2hhc2hpbmtpdGVuXCA7CivkuInnrYnou43mm7kgPiBzYW50b3VndW5zb3VcIDsKK+e3iuaApemAruaNlSA+IGtpbmt5dXV0YWlob1wgOwor6LKe5pON6LmC6LqqID4gdGVpc291anV1cmluXCA7Civlv4PogrrmqZ/og70gPiBzaGlucGFpa2lub3VcIDsKK+mbjOmbhOWQjOagqiA+IHNoaXl1dWRvdXNodVwgOwor6aCG6aKo5rqA5biGID4ganVucHV1bWFucGFuXCA7CivlrabmoKHms5XkurogPiBnYWtrb3Vob3VqaW5cIDsKK+WkieS9jembu+a1gSA+IGhlbicnaWRlbnJ5dXVcIDsKK+WJjeWTqOWLpOWLmSA+IHplbnNob3VraW5tdVwgOwor5rW35rSL56eR5a2mID4ga2FpeW91a2FnYWt1XCA7CivovrLmsJHpgYvli5UgPiBub3VtaW4nJ3VuZG91XCA7Civosqzku7vnr4Tlm7IgPiBzZWtpbmluaGFuJydpXCA7CivnmbrlhYnloZfmlpkgPiBoYWtrb3V0b3J5b3VcIDsKK+aEn+W/nOS9nOeUqCA+IGthbicnbm91c2F5b3VcIDsKK+WtkOaMgeaYhuW4gyA+IGtvbW9jaGlrb25idVwgOwor5biC5Za25L2P5a6FID4gc2hpZWlqdXV0YWt1XCA7Civkuovmpa3pg6jplbcgPiBqaWd5b3VidWNob3VcIDsKK+Wkp+iDhuS4jeaVtSA+IGRhaXRhbmZ1dGVraVwgOwor5aSp5Zyw5Ym16YCgID4gdGVuY2hpc291em91XCA7CivluILloLTntYzmuIggPiBzaGlqb3VrZWl6YWlcIDsKK+S6iOWumuacn+aXpSA+IHlvdGVpa2lqaXRzdVwgOwor5Yy755mC5oqA6KGTID4gaXJ5b3VnaWp1dHN1XCA7Civkvb/lvbnli5XoqZ4gPiBzaGlla2lkb3VzaGlcIDsKK+W+tOWFteaknOafuyA+IGNob3VoZWlrZW5zYVwgOwor6Ieq5a6255m66Zu7ID4gamlrYWhhdHN1ZGVuXCA7CivlkIzoqp7lj43lvqkgPiBkb3Vnb2hhbnB1a3VcIDsKK+W8geirluWkp+S8miA+IGJlbnJvbnRhaWthaVwgOwor5LiA6Iis5oqV56WoID4gaXBwYW50b3VoeW91XCA7CivkuIDkurrmga/lrZAgPiBoaXRvcmltdXN1a29cIDsKK+mAgOW9uei7jeS6uiA+IHRhaWVraWd1bmppblwgOwor5Lq655Sf5pyA5oKqID4gamluc2Vpc2FpYWt1XCA7CivljbDliqDpm7vlnKcgPiBpbmthZGVuJydhdHN1XCA7CivmtrLmgKfpmZDnlYwgPiBla2lzZWlnZW5rYWlcIDsKK+aghOmkiuWtpuiAhSA+IGVpeW91Z2FrdXNoYVwgOwor6YO95biC5Lqk6YCaID4gdG9zaGlrb3V0c3V1XCA7CivkuqTmj5vmlZnmjoggPiBrb3VrYW5reW91anVcIDsKK+WtpueUn+aZguS7oyA+IGdha3VzZWlqaWRhaVwgOwor5oSb56S+57K+56WeID4gYWlzaGFzZWlzaGluXCA7CivogIHljJbnj77osaEgPiByb3VrYWdlbnNob3VcIDsKK+ekvuS8muWVj+mhjCA+IHNoYWthaW1vbmRhaVwgOwor55uy566h6YqD5Ym1ID4gbW91a2FuanV1c291XCA7CivmnbHmtbflnLDmlrkgPiB0b3VrYWljaGlob3VcIDsKK+eZuuihjOS8muekviA+IGhha2tvdWdhaXNoYVwgOwor6L+R5omA5ZCI5aOBID4ga2luam9nYXBwZWtpXCA7Civpn7Plo7DlnKfnuK4gPiBvbnNlaWFzc2h1a3VcIDsKK+awkeaXj+S4u+e+qSA+IG1pbnpva3VzaHVnaVwgOwor5bCC6ZaA56eR55uuID4gc2VubW9ua2Ftb2t1XCA7CivmuJvph4/ntYzllrYgPiBnZW5yeW91a2VpZWlcIDsKK+edoeecoOS4jei2syA+IHN1aW1pbmJ1c29rdVwgOwor5YWE5aa55Zan5ZipID4ga3lvdWRhaWdlbmthXCA7CivpgYvpgIHlpZHntIQgPiB1bnNvdWtlaXlha3VcIDsKK+iInuWPsOS4ree2mSA+IGJ1dGFpY2h1dWtlaVwgOwor5LiL5bGk6ZqO57SaID4ga2Fzb3VrYWlreXV1XCA7CivntYzmuIjpl5jkuokgPiBrZWl6YWl0b3Vzb3VcIDsKK+S4jeiJr+WwkeWlsyA+IGZ1cnlvdXNob3Vqb1wgOwor5b+c5o+05ryU6KqsID4gb3VlbicnZW56ZXRzdVwgOwor6KGM5YuV5Y2K5b6EID4ga291ZG91aGFua2VpXCA7CivlnLDpnIflnLDluK8gPiBqaXNoaW5jaGl0YWlcIDsKK+mAmumBjuiyv+aYkyA+IHRzdXVrYWJvdWVraVwgOwor57Wx6KiI5bm06ZGRID4gdG91a2VpbmVua2FuXCA7CivkurrmiYvkuI3otrMgPiBoaXRvZGVidXNva3VcIDsKK+WNgeS4reWFq+S5nSA+IGppdGNodXVoYWtrdVwgOwor5ruL5by36aOy5paZID4gamlreW91aW5yeW91XCA7Civlm5vop5Llj7fnorwgPiBzaGlrYWt1Z291bWFcIDsKK+WbuuWumuims+W/tSA+IGtvdGVpa2FuJyduZW5cIDsKK+e1jOmok+enkeWtpiA+IGtlaWtlbmthZ2FndVwgOwor6I236Zu757KS5a2QID4ga2FkZW5yeXV1c2hpXCA7Civkurrlt6XnlJ/lkb0gPiBqaW5rb3VzZWltZWlcIDsKK+mbu+awl+aWmemHkSA+IGRlbmtpcnlvdWtpblwgOwor5b6A5b6p6JGJ5pu4ID4gb3VmdWt1aGFnYWtpXCA7CivkurrpgKDnn7PmsrkgPiBqaW56b3VzZWtpeXVcIDsKK+WkqeeruueJoeS4uSA+IHRlbmppa3Vib3RhblwgOwor5b6h6aaz6LWw5qeYID4gZ29jaGlzb3VzYW1hXCA7CivlpKnot6/mrbTnqIsgPiB0ZW5yb3Jla2l0ZWlcIDsKK+WFseWQjOS+v+aJgCA+IGt5b3Vkb3ViZW5qb1wgOwor5pqX5q665pyq6YGCID4gYW5zYXRzdW1pc3VpXCA7CivmnKrmiZXosrvnlKggPiBtaWhhcmFpaGl5b3VcIDsKK+ebuOS6kumFjeWxniA+IHNvdWdvaGFpem9rdVwgOwor56C06aGU5LiA56yRID4gaGFnYW4nJ2lzc2hvdVwgOwor5rK755mC5Yq55p6cID4gY2hpcnlvdWtvdWthXCA7CivnjJ/lrpjliLbluqYgPiByeW91a2Fuc2VpZG9cIDsKK+WPjuWuueaCo+iAhSA+IHNodXV5b3VrYW5qYVwgOwor5q2m6Zm15qGD5rqQID4gYnVyeW91dG91Z2VuXCA7CivkurrmsJHmiYDmnIkgPiBqaW5taW5zaG95dXVcIDsKK+WPjeWwhOS/guaVsCA+IGhhbnNoYWtlaXN1dVwgOwor5bel5qWt5oSP5YygID4ga291Z3lvdWlzaG91XCA7Civnm7jlr77oqZXkvqEgPiBzb3V0YWloeW91a2FcIDsKK+e1jOa4iOWVj+mhjCA+IGtlaXphaW1vbmRhaVwgOwor5LiJ5Y2B5YWt6KiIID4gc2FuanV1cm9ra2VpXCA7Civmrovmpa3miYvlvZMgPiB6YW5neW91dGVhdGVcIDsKK+aKleeQg+WLleS9nCA+IHRvdWt5dXVkb3VzYVwgOwor6Ziy54G96KiT57e0ID4gYm91c2Fpa3VucmVuXCA7CivogJDnlKjlubTmlbAgPiB0YWl5b3VuZW5zdXVcIDsKK+awkeWumuaGsuazlSA+IG1pbnRlaWtlbnBvdVwgOwor56aP5Yip5Y6a55SfID4gZnVrdXJpa291c2VpXCA7CivmtojogJflk4HosrsgPiBzaG91bW91aGluaGlcIDsKK+engeacieiyoeeUoyA+IHNoaXl1dXphaXNhblwgOwor5a2m57Sa6ZaJ6Y6WID4gZ2Fra3l1dWhlaXNhXCA7CivkurrnlJ/oqJjpjLIgPiBqaW5zZWlraXJva3VcIDsKK+Wun+WIqeS4u+e+qSA+IGppdHN1cmlzaHVnaVwgOwor5YWs5L2/6aSo5ZOhID4ga291c2hpa2FuJydpblwgOwor6YCy5YyW6KuW6ICFID4gc2hpbmthcm9uc2hhXCA7CivnqbrkuK3mqZ/li5UgPiBrdXVjaHV1a2lkb3VcIDsKK+aKleelqOe1kOaenCA+IHRvdWh5b3VrZWtrYVwgOwor5YmN5o+Q5p2h5Lu2ID4gemVudGVpam91a2VuXCA7CivlpJbkurrpgbjmiYsgPiBnYWlqaW5zZW5zaHVcIDsKK+W3qOWkp+WIhuWtkCA+IGt5b2RhaWJ1bnNoaVwgOwor6LSL6YCg57SZ5bmjID4gZ2Fuem91c2hpaGVpXCA7CivmpJzlrproqabpqJMgPiBrZW50ZWlzaGlrZW5cIDsKK+iXjee2rOikkueroCA+IHJhbmp1aG91c2hvdVwgOwor5Y+45rOV6Kmm6aiTID4gc2hpaG91c2hpa2VuXCA7Civmn5Tou5/kvZPmk40gPiBqdXVuYW50YWlzb3VcIDsKK+S4jeiJr+WwjuS9kyA+IGZ1cnlvdWRvdXRhaVwgOwor5a++5oim6LuK56CyID4gdGFpc2Vuc2hhaG91XCA7CivmrbvkvZPop6PliZYgPiBzaGl0YWlrYWlib3VcIDsKK+WFvOalrei+suWutiA+IGtlbmd5b3Vub3VrYVwgOwor5YWs6ZaL6Yyy6Z+zID4ga291a2Fpcm9rdW9uXCA7Civmtbfou43lpKfoh6MgPiBrYWlndW5kYWlqaW5cIDsKK+WNl+S6rOiKseeBqyA+IG5hbmtpbmhhbmFiaVwgOwor5omB5qGD6IW654KOID4gaGVudG91c2VuJydlblwgOwor5Lit5aSu6YqA6KGMID4gY2h1dW91Z2lua291XCA7CivlnKfnuK7nqbrmsJcgPiBhc3NodWt1a3V1a2lcIDsKK+axuua4iOaJi+autSA+IGtlc3NhaXNodWRhblwgOwor5Luj55CG5qWt6ICFID4gZGFpcmlneW91c2hhXCA7CivphY3nva7ou6Lmj5sgPiBoYWljaGl0ZW5rYW5cIDsKK+emgeayu+eUo+iAhSA+IGtpbmNoaXNhbnNoYVwgOwor5YWo6Lqr5LiN6ZqPID4gemVuc2hpbmZ1enVpXCA7CivpgYvou6LmioDooZMgPiB1bnRlbmdpanV0c3VcIDsKK+mbu+WtkOmfs+alvSA+IGRlbnNoaW9uZ2FrdVwgOwor5Y2D5LiH54Sh6YePID4gc2VubWFubXVyeW91XCA7Civoh6rmrrrluYfliqkgPiBqaXNhdHN1aG91am9cIDsKK+S7o+aVsOmWouaVsCA+IGRhaXN1dWthbnN1dVwgOwor6Z+z6Z+/6Kit6KiIID4gb25reW91c2Vra2VpXCA7CivkubPmp5jnqoHotbcgPiBueXV1eW91dG9ra2lcIDsKK+S6i+WJjeWJsuW9kyA+IGppemVud2FyaWF0ZVwgOwor5YW15b255YWN54q2ID4gaGVpZWtpbWVuam91XCA7CivlpKnmtq/lraTni6wgPiB0ZW5nYWlrb2Rva3VcIDsKK+S4jeaJv+S4jeaJvyA+IGZ1c2hvdWJ1c2hvdVwgOwor54Sh5omA5bGe54++ID4gbXVzaG96b2t1Z2VuXCA7CivmnKjpgKDlrrblsYsgPiBtb2t1em91a2Fva3VcIDsKK+mkiuiAgeW5tOmHkSA+IHlvdXJvdW5lbmtpblwgOwor5oKg44CF6Ieq6YGpID4geXV1eXV1aml0ZWtpXCA7CivkuovliY3noJTkv64gPiBqaXplbmtlbnNodXVcIDsKK+S9k+ezu+aWh+azlSA+IHRhaWtlaWJ1bnBvdVwgOwor6ZuM6ZuE5ZCM5L2TID4gc2hpeXV1ZG91dGFpXCA7Civmp4vpgKDmsZrogbcgPiBrb3V6b3Vvc2hva3VcIDsKK+WfuuekjuefpeitmCA+IGtpc29jaGlzaGlraVwgOwor5Zyw5Z+f57Sb5LqJID4gY2hpaWtpZnVuc291XCA7CivljZjls7Dpp7Hpp50gPiB0YW5wb3VyYWt1ZGFcIDsKK+S6uuawl+WVhuWjsiA+IG5pbmtpc2hvdWJhaVwgOwor5aeJ5aa55Zan5ZipID4ga3lvdWRhaWdlbmthXCA7CivljYPlp7/kuIfmhYsgPiBzZW5zaGliYW50YWlcIDsKK+WFrOacieiyoeeUoyA+IGtvdXl1dXphaXNhblwgOwor5YWI6KGM5oqV6LOHID4gc2Vua291dG91c2hpXCA7Civoo73pgKDlt6XnqIsgPiBzZWl6b3Vrb3V0ZWlcIDsKK+iHqueUseertuS6iSA+IGppeXV1a3lvdXNvdVwgOwor5bed6a2a5paZ55CGID4ga2F3YXVvcnlvdXJpXCA7Civnj77ku6Pnp5HlraYgPiBnZW5kYWlrYWdha3VcIDsKK+eUo+alreapn+aisCA+IHNhbmd5b3VraWthaVwgOwor5LiN5ZCI5qC86ICFID4gZnVnb3VrYWt1c2hhXCA7CivmmpHkuK3opovoiJ4gPiBzaG9jaHV1bWltYWlcIDsKK+iqmOWwjuWwi+WVjyA+IHl1dWRvdWppbm1vblwgOwor55Gg55KD5ZSQ6I2JID4gcnVyaWthcmFrdXNhXCA7CivlrprlvaLli5XoqZ4gPiB0ZWlrZWlkb3VzaGlcIDsKK+WWp+OAheWbguOAhSA+IGtlbmtlbmdvdWdvdVwgOwor5Lq66ZaT6Zai5L+CID4gbmluZ2Vua2Fua2VpXCA7CivotaTljYHlrZfnpL4gPiBzZWtpanV1amlzaGFcIDsKK+eEoeeUo+majue0miA+IG11c2Fua2Fpa3l1dVwgOwor5YWt5rOV5YWo5pu4ID4gcm9wcG91emVuc2hvXCA7Civpm4bmqKnmjpLpmaQgPiBzaHV1a2VuaGFpam9cIDsKK+Wbvemam+S8muitsCA+IGtva3VzYWlrYWlnaVwgOwor5YWQ56ul5paH5a2mID4gamlkb3VidW5nYWt1XCA7Civou43kuovnp5jlr4YgPiBndW5qaWhpbWl0c3VcIDsKK+S7u+aEj+WHuumgrSA+IG5pbicnaXNodXR0b3VcIDsKK+S7mOmaj+ePvuixoSA+IGZ1enVpZ2Vuc2hvdVwgOwor5ZSH5q2v6LyU6LuKID4gc2hpbnNoaWhvc2hhXCA7Civljp/lm6Doqr/mn7sgPiBnZW4nJ2luY2hvdXNhXCA7Civkurrot6HmnKrliLAgPiBqaW5zZWtpbWl0b3VcIDsKK+aLheW9k+mDqOmVtyA+IHRhbnRvdWJ1Y2hvdVwgOwor5Li75Lu75pWZ5o6IID4gc2h1bmlua3lvdWp1XCA7Civou43lgpnliYrmuJsgPiBndW5iaXNha3VnZW5cIDsKK+WFrOmWi+ijgeWIpCA+IGtvdWthaXNhaWJhblwgOwor5YiG6Kej5L+u55CGID4gYnVua2Fpc2h1dXJpXCA7Civnmb7oirHmlonmlL4gPiBoeWFra2FzZWlob3VcIDsKK+S6uumAoOecn+ePoCA+IGppbnpvdXNoaW5qdVwgOwor56We57WM6YGO5pWPID4gc2hpbmtlaWthYmluXCA7CivpgIHph5Hngrrmm78gPiBzb3VraW5rYXdhc2VcIDsKK+WOs+ato+enkeWtpiA+IGdlbnNlaWthZ2FrdVwgOwor5Y+45rOV5pu45aOrID4gc2hpaG91c2hvc2hpXCA7CivlnKjlpJbos4fnlKMgPiB6YWlnYWlzaGlzYW5cIDsKK+azleW+i+mBleWPjSA+IGhvdXJpdHN1aWhhblwgOwor6YCy6Lev5oyH5bCOID4gc2hpbnJvc2hpZG91XCA7CivkuojlgpnljZTntIQgPiB5b2Jpa3lvdXlha3VcIDsKK+aVmeiCsueOqeWFtyA+IGt5b3Vpa3VnYW5ndVwgOwor5paH5rOV6KaP5YmHID4gYnVucG91a2lzb2t1XCA7CivlrozkuobmmYLliLYgPiBrYW5yeW91amlzZWlcIDsKK+S6i+Wun+iqpOiqjSA+IGppaml0c3Vnb25pblwgOwor6LuN6ZyA55Sj5qWtID4gZ3VuanVzYW5neW91XCA7Civoh6rnhLbnp5HlraYgPiBzaGl6ZW5rYWdha3VcIDsKK+atpuiAheS/ruihjCA+IG11c2hhc2h1Z3lvdVwgOwor55Sf5oiQ5paH5rOVID4gc2Vpc2VpYnVucG91XCA7Civlj7jms5XlpKfoh6MgPiBzaGlob3VkYWlqaW5cIDsKK+S4u+iEs+S8muirhyA+IHNodW5vdWthaWRhblwgOwor5b6h55So5ZWG5Lq6ID4gZ295b3VzaG91bmluXCA7Civkvb/lvpLkv6HmnaEgPiBzaGl0b3NoaW5qb3VcIDsKK+iovOaLoOeJqeS7tiA+IHNob3Vrb2J1a2tlblwgOwor5LqI5YKZ55+l6K2YID4geW9iaWNoaXNoaWtpXCA7CivlkIjlkI3kvJrnpL4gPiBnb3VtZWlnYWlzaGFcIDsKK+WFseWQjOS4gOiHtCA+IGt5b3Vkb3VpdGNoaVwgOwor5q2m5Yqb5pS/5rK7ID4gYnVyeW9rdXNlaWppXCA7Civou4zpgZPkv67mraMgPiBraWRvdXNodXVzZWlcIDsKK+a5vuWyuOaIpuS6iSA+IHdhbmdhbnNlbnNvdVwgOwor5ZCI5qC856WI6aGYID4gZ291a2FrdWtpZ2FuXCA7CivljJblrabogqXmlpkgPiBrYWdha3VoaXJ5b3VcIDsKK+eLrOijgeWbveWutiA+IGRva3VzYWlrb2trYVwgOwor5L2O5Yip6YeR6J6NID4gdGVpcmlraW4nJ3l1dVwgOwor5Zyf6aGe6YeR5bGeID4gZG9ydWlraW56b2t1XCA7CivlhbHlkozmlL/kvZMgPiBreW91d2FzZWl0YWlcIDsKK+azleW7t+mXmOS6iSA+IGhvdXRlaXRvdXNvdVwgOwor5YaN55Sf6KOF572uID4gc2Fpc2Vpc291Y2hpXCA7CivljJfmlrnpoJjlnJ8gPiBob3Bwb3VyeW91ZG9cIDsKK+WFqOW7g+irluiAhSA+IHplbnBhaXJvbnNoYVwgOwor57Sv6YCy6Kqy56iOID4gcnVpc2hpbmthemVpXCA7Civlm73pmLLkvJrorbAgPiBrb2t1Ym91a2FpZ2lcIDsKK+S6jOeZvuWNgeaXpSA+IG5paHlha3V0b29rYVwgOwor5LqL5YmN6YCa5aCxID4gaml6ZW50c3V1aG91XCA7CivnpL7kvJrmhI/orZggPiBzaGFrYWlpc2hpa2lcIDsKK+aPtOWKqeWHjee1kCA+IGVuam90b3VrZXRzdVwgOwor5a6J5YWo56ys5LiAID4gYW56ZW5kYWlpY2hpXCA7CivlgIvkurrmlLvmkoMgPiBrb2ppbmtvdWdla2lcIDsKK+aCquaIr+WdiuS4uyA+IGl0YXp1cmFib3V6dVwgOwor6YGK5YuV5YaG5pyoID4geXV1ZG91ZW5ib2t1XCA7CivlhoblvaLliofloLQgPiBlbmtlaWdla2lqb3VcIDsKK+iKreiVieaituacqCA+IGJhc2hvdWthamlraVwgOwor5oOF5aCx56eR5a2mID4gam91aG91a2FnYWt1XCA7CivlgrflrrPkv53pmbogPiBzaG91Z2FpaG9rZW5cIDsKK+egtOeUo+Wuo+WRiiA+IGhhc2Fuc2Vua29rdVwgOwor55mp55eF5oKj6ICFID4gcmFpYnlvdWthbmphXCA7CivmraPmraPloILloIIgPiBzZWlzZWlkb3Vkb3VcIDsKK+WboOWtkOWIhuaekCA+IGluc2hpYnVuc2VraVwgOwor5b6F5ZCI5pS/5rK7ID4gbWFjaGlhaXNlaWppXCA7CivmnKvms5XmgJ3mg7MgPiBtYXBwb3VzaGlzb3VcIDsKK+iIque2muaZgumWkyA+IGtvdXpva3VqaWthblwgOwor5bCC5aOy54m56KixID4gc2VuYmFpdG9ra3lvXCA7CivlkIznqK7lkIzmlocgPiBkb3VzaHVkb3VidW5cIDsKK+mJhOmBk+S6i+aVhSA+IHRldHN1ZG91amlrb1wgOwor55yf55CG6Zai5pWwID4gc2hpbnJpa2Fuc3V1XCA7CivlrZDlrZDlravlrasgPiBzaGlzaGlzb25zb25cIDsKK+iLseWbveefs+ayuSA+IGVpa29rdXNla2l5dVwgOwor5L+d6K236Kaz5a+fID4gaG9nb2thbnNhdHN1XCA7Civnp5jlr4blhbXlmaggPiBoaW1pdHN1aGVpa2lcIDsKK+mDteS+v+iyr+mHkSA+IHl1dWJpbmNob2tpblwgOwor5LqM6YeN5Lq65qC8ID4gbmlqdXVqaW5rYWt1XCA7Civnmb3ooaPmmI7lpoMgPiBieWFrdWVteW91aGlcIDsKK+eUn+S9k+ino+WJliA+IHNlaXRhaWthaWJvdVwgOwor56uL5aSq5a2Q56S8ID4gcml0dGFpc2hpcmVpXCA7Civlrp/pmpvllY/poYwgPiBqaXNzYWltb25kYWlcIDsKK+WFrOi7oumAn+W6piA+IGtvdXRlbnNva3Vkb1wgOwor5LiA55+z5LqM6bOlID4gaXNzZWtpbmljaG91XCA7CivmlZnogrLoqrLnqIsgPiBreW91aWt1a2F0ZWlcIDsKK+S6uuS7o+WQjeipniA+IGppbmRhaW1laXNoaVwgOwor5YSq55Sf57WQ5amaID4geXV1c2Vpa2Vra29uXCA7Civlj6PpoK3oqabllY8gPiBrb3V0b3VzaGltb25cIDsKK+S6pOmAmuWuieWFqCA+IGtvdXRzdXVhbnplblwgOwor5ZKM5paH6Iux6KizID4gd2FidW4nJ2VpeWFrdVwgOwor5pys5a625pys5YWDID4gaG9ua2Vob25tb3RvXCA7Civnm7Lnm67po5vooYwgPiBtb3Vtb2t1aGlrb3VcIDsKK+a7nuepuuiomOmMsiA+IHRhaWt1dWtpcm9rdVwgOwor56uL5L2T6KOB5patID4gcml0dGFpc2FpZGFuXCA7Civlm73lhoXkuovmg4UgPiBrb2t1bmFpamlqb3VcIDsKK+aOpeinpuS6i+aVhSA+IHNlc3Nob2t1amlrb1wgOwor5Lm+54el6IWQ5py9ID4ga2Fuc291ZnVreXV1XCA7CivlkIjos4fkvJrnpL4gPiBnb3VzaGlnYWlzaGFcIDsKK+W9q+WIu+WFt+W6pyA+IGNob3Vrb2t1Z3V6YVwgOwor5oi45aSW5pKu5b2xID4ga29nYWlzYXRzdWVpXCA7Civlv5zmgKXkv67nkIYgPiBvdWt5dXVzaHV1cmlcIDsKK+m6u+mFlOazqOWwhCA+IG1hc3VpY2h1dXNoYVwgOwor5pyr56uv5L6h5qC8ID4gbWF0dGFua2FrYWt1XCA7Civlgbblg4/ltIfmi50gPiBndXV6b3VzdXVoYWlcIDsKK+aZrumAmuWIl+i7iiA+IGZ1dHN1dXJlc3NoYVwgOwor5ZKM5bmz5Lqk5riJID4gd2FoZWlrb3VzaG91XCA7CivlvqrnkrDoq5bms5UgPiBqdW5rYW5yb25wb3VcIDsKK+mjvemjn+aaluihoyA+IGhvdXNob2t1ZGFuaVwgOwor5qmf5qKw5bel5qWtID4ga2lrYWlrb3VneW91XCA7CivnhKHpmZDpm4blkIggPiBtdWdlbnNodXVnb3VcIDsKK+acieS+oeiovOWIuCA+IHl1dWthc2hvdWtlblwgOwor57eP57Wx6YG45oyZID4gc291dG91c2Vua3lvXCA7CivkurrmsJflvbnogIUgPiBuaW5raXlha3VzaGFcIDsKK+W4guWGhemAmuipsSA+IHNoaW5haXRzdXV3YVwgOwor5LiA562J6Zm45aOrID4gaXR0b3VyaWt1c2hpXCA7CivorJvlkozmnaHntIQgPiBrb3V3YWpvdXlha3VcIDsKK+W3pealremDveW4giA+IGtvdWd5b3V0b3NoaVwgOwor5Y2T5LiK6Zu76KmxID4gdGFrdWpvdWRlbndhXCA7CivlrqLoprPkuLvnvqkgPiBreWFra2Fuc2h1Z2lcIDsKK+WFseWQjOisgOitsCA+IGt5b3Vkb3Vib3VnaVwgOwor6LO86LK357WE5ZCIID4ga291YmFpa3VtaWFpXCA7Civoq4vosqDku5XkuosgPiB1a2VvaXNoaWdvdG9cIDsKK+mbh+eUqOWlkee0hCA+IGtveW91a2VpeWFrdVwgOwor5b2T5oSP5Y2z5aaZID4gdG91aXNva3VteW91XCA7CivlirTlg43luILloLQgPiByb3Vkb3VzaGlqb3VcIDsKK+WPjeWvvuWwi+WVjyA+IGhhbnRhaWppbm1vblwgOwor5aOr5a6Y5a2m5qChID4gc2hpa2FuZ2Fra291XCA7CivlkI3oqonkvJrplbcgPiBtZWl5b2thaWNob3VcIDsKK+W5s+Wdh+e1puS4jiA+IGhlaWtpbmt5dXV5b1wgOwor5bCP5L6/5bCP5YOnID4gc2hvdWJlbmtvem91XCA7CivkurrmqKnouYLouqogPiBqaW5rZW5qdXVyaW5cIDsKK+Wcp+e4rumFuOe0oCA+IGFzc2h1a3VzYW5zb1wgOwor5Lq65qip6LmC6LqZID4gamlua2VuanV1cmluXCA7CivlubTmrKHloLHlkYogPiBuZW5qaWhvdWtva3VcIDsKK+mDteS+v+eVquWPtyA+IHl1dWJpbmJhbmdvdVwgOwor6KiI566X5ZWP6aGMID4ga2Vpc2FubW9uZGFpXCA7Civnt4/lkIjpm5HoqowgPiBzb3Vnb3V6YXNzaGlcIDsKK+Wcn+WcsOWPjueUqCA+IHRvY2hpc2h1dXlvdVwgOwor5bqD5ZGK5Yq55p6cID4ga291a29rdWtvdWthXCA7CivlubzlhZDmlZnogrIgPiB5b3VqaWt5b3Vpa3VcIDsKK+i/keaJgOi/t+aDkSA+IGtpbmpvbWVpd2FrdVwgOwor54Sh6ZmQ57Sa5pWwID4gbXVnZW5reXV1c3V1XCA7CivkuIDliLvljYPph5EgPiBpa2tva3VzZW5raW5cIDsKK+mZquWvqeWItuW6piA+IGJhaXNoaW5zZWlkb1wgOwor57eo6ZuG5qmf6IO9ID4gaGVuc2h1dWtpbm91XCA7CivlhYjlj5bnibnmqKkgPiBzZW5zaHV0b2trZW5cIDsKK+WwgumWgOWIhumHjiA+IHNlbm1vbmJ1bicneWFcIDsKK+aLheWtkOiPjOmhniA+IHRhbnNoaWtpbnJ1aVwgOwor6Zai5L+C5by35YyWID4ga2Fua2Vpa3lvdWthXCA7CivmlLvmkoPpg6jpmoogPiBrb3VnZWtpYnV0YWlcIDsKK+enmOWvhuS8muitsCA+IGhpbWl0c3VrYWlnaVwgOwor5q2m6ICF5L+u5qWtID4gbXVzaGFzaHVneW91XCA7Civmtojpn7Poo4Xnva4gPiBzaG91b25zb3VjaGlcIDsKK+a6gOW3nuS6i+WkiSA+IG1hbnNodXVqaWhlblwgOwor6LOH55Sj6KmV5L6hID4gc2hpc2FuaHlvdWthXCA7Civlh7rniYjoqLHlj68gPiBzaHVwcGFua3lva2FcIDsKK+WbveWGhemcgOimgSA+IGtva3VuYWlqdXlvdVwgOwor5Y2D5LiH6ZW36ICFID4gc2VuYmFuY2hvdWphXCA7CivljJblraboqabpqJMgPiBrYWdha3VzaGlrZW5cIDsKK+e0sOiDnuWfuemkiiA+IHNhaWJvdWJhaXlvdVwgOwor6Z+z6Z+757WE57mUID4gb24nJ2luc29zaGlraVwgOwor5Yem5Yem5pa55pa5ID4gc2hvc2hvaG91Ym91XCA7CivluqfmqJnlpInmj5sgPiB6YWh5b3VoZW5rYW5cIDsKK+apn+aisOW3peWtpiA+IGtpa2Fpa291Z2FrdVwgOwor56ys5LiJ6YOo6ZW3ID4gZGFpc2FuYnVjaG91XCA7CivlpYflsqnmgKrnn7MgPiBraWdhbmthaXNla2lcIDsKK+iAkOmiqOani+mAoCA+IHRhaWZ1dWtvdXpvdVwgOwor55+z6bm45bel5aC0ID4gc2Vra2Vua291am91XCA7CivlnKjpg7fou43kurogPiB6YWlnb3VndW5qaW5cIDsKK+W5vemciuS8muekviA+IHl1dXJlaWdhaXNoYVwgOwor55Kw5aKD56C05aOKID4ga2Fua3lvdWhha2FpXCA7Civlm73pmpvkuLvnvqkgPiBrb2t1c2Fpc2h1Z2lcIDsKK+W+oeevgOaWmeeQhiA+IG9zZWNoaXJ5b3VyaVwgOwor5L+u55CG5bel5aC0ID4gc2h1dXJpa291am91XCA7Civmi5LlkKblj43lv5wgPiBreW9oaWhhbicnbm91XCA7CivkuIDoqIDkuIDlj6UgPiBpY2hpZ29uJydpa2t1XCA7CivljZjni6zpo5vooYwgPiB0YW5kb2t1aGlrb3VcIDsKK+S4u+aoqeWcqOawkSA+IHNodWtlbnphaW1pblwgOwor5Lq65qC85Li7576pID4gamlua2FrdXNodWdpXCA7Civoh6rmrrrmnKrpgYIgPiBqaXNhdHN1bWlzdWlcIDsKK+WHuuWutumBgeS4liA+IHNodWtrZXRvbnNlaVwgOwor57SQ6Z2p6aWC6aOpID4gaGltb2thd2F1ZG9uXCA7CivmhJrmsJHmlL/nrZYgPiBndW1pbnNlaXNha3VcIDsKK+WNmOenkeWkp+WtpiA+IHRhbmthZGFpZ2FrdVwgOwor6YGp5q2j5Yip5r2kID4gdGVraXNlaXJpanVuXCA7Civnmbrpn7PoqJjlj7cgPiBoYXRzdW9ua2lnb3VcIDsKK+i7jeS6i+WNlOWumiA+IGd1bmppa3lvdXRlaVwgOwor6KW/6auY5p2x5L2OID4gc2Vpa291dG91dGVpXCA7CivmkI3ogJfkurrlk6EgPiBzb25tb3VqaW4nJ2luXCA7Civlrp/li6LkvqHmoLwgPiBqaXNzZWlrYWtha3VcIDsKK+aPtOeUqOioreioiCA+IGVuJyd5b3VzZWtrZWlcIDsKK+ePvuWgtOS4ree2mSA+IGdlbmJhY2h1dWtlaVwgOwor5oSf55+l6KOF572uID4ga2FuY2hpc291Y2hpXCA7CivorbDmsbrmqZ/plqIgPiBnaWtldHN1a2lrYW5cIDsKK+WuieW/g+eri+WRvSA+IGFuamlucnlvdW1laVwgOwor5ZCI5ZCM5LqL5qWtID4gZ291ZG91amlneW91XCA7CivlkIzmnJ/kv6Hlj7cgPiBkb3VraXNoaW5nb3VcIDsKK+S7sumWk+aEj+itmCA+IG5ha2FtYWlzaGlraVwgOwor5aqS5LuL5aSJ5pWwID4gYmFpa2FpaGVuc3V1XCA7Civlr5LkuK3msLTms7MgPiBrYW5jaHV1c3VpZWlcIDsKK+iiq+S/nemZuueJqSA+IGhpaG9rZW5idXRzdVwgOwor5pqX5q665LqL5Lu2ID4gYW5zYXRzdWppa2VuXCA7CivmipjoobfkuLvnvqkgPiBzZXRjaHV1c2h1Z2lcIDsKK+WNmOW8j+ewv+iomCA+IHRhbnNoaWtpYm9raVwgOwor5pWZ6aSK6Kqy56iLID4ga3lvdXlvdWthdGVpXCA7CivkuInogIXkvJroq4cgPiBzYW5zaGFrYWlkYW5cIDsKK+mAo+iomOaKleelqCA+IHJlbmtpdG91aHlvdVwgOwor5b+D55CG54q25oWLID4gc2hpbnJpam91dGFpXCA7CivmtbflpJbluILloLQgPiBrYWlnYWlzaGlqb3VcIDsKK+aXouaIkOS6i+WunyA+IGtpc2VpamlqaXRzdVwgOwor5LqL5YuZ57eP5bGAID4gamltdXNvdWt5b2t1XCA7CivliY3pgLLln7rlnLAgPiB6ZW5zaGlua2ljaGlcIDsKK+WQjOW3peeVsOabsiA+IGRvdWtvdWlreW9rdVwgOwor5ZG96aGM6Zai5pWwID4gbWVpZGFpa2Fuc3V1XCA7CivljJfopb/oiKrot68gPiBob2t1c2Vpa291cm9cIDsKK+WQiOWQjOS8muWQiCA+IGdvdWRvdWthaWdvdVwgOwor56uL5Zyw5p2h5Lu2ID4gcml0Y2hpam91a2VuXCA7CivlnLDnkIblrabogIUgPiBjaGlyaWdha3VzaGFcIDsKK+Wkp+aJgOmrmOaJgCA+IHRhaXNob2tvdXNob1wgOwor6YeN6KSH5L+d6Zm6ID4ganV1ZnVrdWhva2VuXCA7CivpgJrluLjlhbXlmaggPiB0c3V1am91aGVpa2lcIDsKK+WkluWbvemDqOmaiiA+IGdhaWtva3VidXRhaVwgOwor5paH5YyW5Lqk5rWBID4gYnVua2Frb3VyeXV1XCA7CivluILlpJbpgJroqbEgPiBzaGlnYWl0c3V1d2FcIDsKK+avm+e0sOihgOeuoSA+IG1vdXNhaWtla2thblwgOwor5YuV5oWL57Wx6KiIID4gZG91dGFpdG91a2VpXCA7CivnpL7lhoXmg4XloLEgPiBzaGFuYWlqb3Vob3VcIDsKK+S4reWFrOaWh+W6qyA+IGNodXVrb3VidW5rb1wgOwor5Zyn6Zu75Yq55p6cID4gYXRzdWRlbmtvdWthXCA7CivprZHprYXprY3prY4gPiBjaGltaW1vdXJ5b3VcIDsKK+W+queSsOezu+e1sSA+IGp1bmthbmtlaXRvdVwgOwor5a++5Lq66Zai5L+CID4gdGFpamlua2Fua2VpXCA7Civmma7pgJrpgbjmjJkgPiBmdXRzdXVzZW5reW9cIDsKK+adoeS7tumXmOS6iSA+IGpvdWtlbnRvdXNvdVwgOwor5Y2D54q25LiH5oWLID4gc2Vuam91YmFudGFpXCA7CivljJbmiJDlt6Xmpa0gPiBrYXNlaWtvdWd5b3VcIDsKK+e1jOa4iOWOn+irliA+IGtlaXphaWdlbnJvblwgOwor5qip6KyA6KGT5pWwID4ga2VuYm91anVzc3V1XCA7CivkuI3mj67nmbrmgKcgPiBmdWtpaGF0c3VzZWlcIDsKK+mrmOetieWtpuagoSA+IGtvdXRvdWdha2tvdVwgOwor6YCj5ZCI546L5Zu9ID4gcmVuZ291b3Vrb2t1XCA7Civpg7Xkvr/mm7jnsKEgPiB5dXViaW5zaG9rYW5cIDsKK+a3seisgOmBoOaFriA+IHNoaW5ib3VlbnJ5b1wgOwor5L2P5rCR6YGL5YuVID4ganV1bWluJyd1bmRvdVwgOwor5rOV5paH5a2m6YOoID4gaG91YnVuZ2FrdWJ1XCA7Civmma7pgJrpg7Xkvr8gPiBmdXRzdXV5dXViaW5cIDsKK+WQm+S4u+aUv+S9kyA+IGt1bnNodXNlaXRhaVwgOwor5o2y5Zyf6YeN5p2lID4ga2VuZG9jaG91cmFpXCA7CivlpbPlo7DlkIjllLEgPiBqb3NlaWdhc3Nob3VcIDsKK+exs+ilv+aIpuS6iSA+IGJlaXNlaXNlbnNvdVwgOwor6auY5bqm5oiQ6ZW3ID4ga291ZG9zZWljaG91XCA7Civkub7luIPmkanmk6YgPiBrYW5wdW1hc2F0c3VcIDsKK+S4reiPr+aAneaDsyA+IGNodXVrYXNoaXNvdVwgOwor6LSI5LiO6Ki85pu4ID4gem91eW9zaG91c2hvXCA7CivlhazooYbooZvnlJ8gPiBrb3VzaHV1ZWlzZWlcIDsKK+ekvuS8muenkeWtpiA+IHNoYWthaWthZ2FrdVwgOwor6L6y6Iq45YyW5a2mID4gbm91Z2Vpa2FnYWt1XCA7CivkuqTpgJrmlbTnkIYgPiBrb3V0c3V1c2VpcmlcIDsKK+eJueauiumDqOmaiiA+IHRva3VzaHVidXRhaVwgOwor5LqL5a6f54Sh5qC5ID4gamlqaXRzdW11a29uXCA7CivlrZTpm4DlppnnjosgPiBrdWpha3VteW91b3VcIDsKK+iyoeeUo+WIhuS4jiA+IHphaXNhbmJ1bicneW9cIDsKK+mCpuWtl+aWsOiBniA+IGhvdWppc2hpbmJ1blwgOwor5qmf5YuV6KiI55S7ID4ga2lkb3VrZWlrYWt1XCA7CivlraTnq4vkuLvnvqkgPiBrb3JpdHN1c2h1Z2lcIDsKK+aYjuayu+WkqeeahyA+IG1laWppdGVuJydub3VcIDsKK+eEpueCuei3nemboiA+IHNob3V0ZW5reW9yaVwgOwor6ZuG5ZCI5pmC6ZaTID4gc2h1dWdvdWppa2FuXCA7CivkvY/lroXlnLDljLogPiBqdXV0YWt1Y2hpa3VcIDsKK+Wkmuinkuiyv+aYkyA+IHRha2FrdWJvdWVraVwgOwor6Z2e5Zar54WZ6ICFID4gaGlraXRzdWVuc2hhXCA7CivmtojljJbkuI3oia8gPiBzaG91a2FmdXJ5b3VcIDsKK+iInuWPsOeFp+aYjiA+IGJ1dGFpc2hvdW1laVwgOwor5LiN55Sf55Sj55qEID4gZnVzZWlzYW50ZWtpXCA7CivpnZ7nlJ/nlKPnmoQgPiBoaXNlaXNhbnRla2lcIDsKK+WLn+mbhuS6uuWToSA+IGJvc2h1dWppbicnaW5cIDsKK+WOn+eov+eUqOe0mSA+IGdlbmtvdXlvdXNoaVwgOwor54Sh5oSP6K2Y55qEID4gbXVpc2hpa2l0ZWtpXCA7Civnt4/lj7jku6TlrpggPiBzb3VzaGlyZWlrYW5cIDsKK+itsua4oeaJgOW+lyA+IGpvdXRvc2hvdG9rdVwgOwor5a2m56ul5L+d6IKyID4gZ2FrdWRvdWhvaWt1XCA7CivmnIDntYLlhbXlmaggPiBzYWlzaHV1aGVpa2lcIDsKK+a7kei1sOi7iui8qiA+IGthc3NvdXNoYXJpblwgOwor5pyI5YiK6ZuR6KqMID4gZ2Vra2FuemFzc2hpXCA7Civlgo3oi6XnhKHkurogPiBib3VqYWt1YnVqaW5cIDsKK+WLpOWKtOWlieS7lSA+IGtpbnJvdWhvdXNoaVwgOwor5oCn6IW65pGY6ZmkID4gc2Vpc2VudGVraWpvXCA7CivmhrLms5XmlLnmraMgPiBrZW5wb3VrYWlzZWlcIDsKK+ihjOi3r+eXheiAhSA+IGtvdXJvYnlvdXNoYVwgOwor5LiA5Lq66Iqd5bGFID4gaGl0b3Jpc2hpYmFpXCA7CivlhbHlkIzpmLLooZsgPiBreW91ZG91Ym91ZWlcIDsKK+mXmOW/l+a6gOa6gCA+IHRvdXNoaW1hbm1hblwgOwor5biC5Yui6Kq/5p+7ID4gc2hpc2VpY2hvdXNhXCA7CivkvJrljq3ou5/pqqggPiBlZW4nJ25hbmtvdHN1XCA7Civou43nlKjlnLDlm7MgPiBndW4nJ3lvdWNoaXp1XCA7CivmnbHlpZTopb/otbAgPiB0b3Vob25zZWlzb3VcIDsKK+S6pOS7o+S9nOalrSA+IGtvdXRhaXNhZ3lvdVwgOwor5pel6KiY5paH5a2mID4gbmlra2lidW5nYWt1XCA7Civml6Xns7vnsbPkurogPiBuaWtrZWliZWlqaW5cIDsKK+iHs+WFrOiHs+W5syA+IHNoaWtvdXNoaWhlaVwgOwor6Zai6YCj5Lya56S+ID4ga2FucmVuZ2Fpc2hhXCA7CivkurrmqKnlrqPoqIAgPiBqaW5rZW5zZW5nZW5cIDsKK+S6uumAoOS6uumWkyA+IGppbnpvdW5pbmdlblwgOwor5YK+5pac5a626LODID4ga2Vpc2hheWFjaGluXCA7Civoh6rmsJHlhZrliYcgPiBqaW1pbnRvdXNva3VcIDsKK+WPjeW+qeiomOWPtyA+IGhhbnB1a3VraWdvdVwgOwor5pel5pys6Iiq56m6ID4gbmlwcG9ua291a3V1XCA7Civoi7HmiY3mlZnogrIgPiBlaXNhaWt5b3Vpa3VcIDsKK+aOkuawtOadoeS7tiA+IGhhaXN1aWpvdWtlblwgOwor6Iux5Zu96Iiq56m6ID4gZWlrb2t1a291a3V1XCA7CivmmpfkuK3mkbjntKIgPiBhbmNodXVtb3Nha3VcIDsKK+WJjeWTqOmojuWFtSA+IHplbnNob3VraWhlaVwgOwor5rC057Sg54iG5by+ID4gc3Vpc29iYWt1ZGFuXCA7CivmvYXmvJHnlKjmsLQgPiBrYW5nYWl5b3VzdWlcIDsKK+S4gOaWieWwhOaSgyA+IGlzc2Vpc2hhZ2VraVwgOwor5Z+66Lu46YCa6LKoID4ga2lqaWt1dHN1dWthXCA7Civlgr7mlpznlJ/nlKMgPiBrZWlzaGFzZWlzYW5cIDsKK+Wig+eVjOeQhuirliA+IGt5b3VrYWlyaXJvblwgOwor5aSp55qH6Zmb5LiLID4gdGVuJydub3VoZWlrYVwgOwor5aSp54S25p6c5rGBID4gdGVuJyduZW5rYWp1dVwgOwor6ZyK6IKJ5LiA6Ie0ID4gcmVpbmlrdWl0Y2hpXCA7CivntYzmuIjlvqnoiIggPiBrZWl6YWlmdWtrb3VcIDsKK+S6uuWPo+e1seioiCA+IGppbmtvdXRvdWtlaVwgOwor5oim5pmC55Sj5qWtID4gc2VuamlzYW5neW91XCA7Civlj6Tpiq3lrabogIUgPiBrb3Nlbmdha3VzaGFcIDsKK+WvvuW8vumBk+W8viA+IHRhaWRhbmRvdWRhblwgOwor6KO96YCg55Wq5Y+3ID4gc2Vpem91YmFuZ291XCA7CivlpJrph43kurrmoLwgPiB0YWp1dWppbmtha3VcIDsKK+S4gOWIgOS4oeaWrSA+IGl0dG91cnlvdWRhblwgOwor5YWx55Sj5Li7576pID4ga3lvdXNhbnNodWdpXCA7CivoqJjlkI3mipXnpaggPiBraW1laXRvdWh5b3VcIDsKK+S8keaGqeaZgumWkyA+IGt5dXVrZWlqaWthblwgOwor5Li45aSq6Laz5aC0ID4gbWFydXRhYXNoaWJhXCA7CivmoYPoibLpgYrmiK8gPiBtb21vaXJveXV1Z2lcIDsKK+atpuWjq+majue0miA+IGJ1c2hpa2Fpa3l1dVwgOwor5Zu96Zqb6Zu76KmxID4ga29rdXNhaWRlbndhXCA7Civkurrlt6XlnLDpnIcgPiBqaW5rb3VqaXNoaW5cIDsKK+a9nOWcqOS4u+aoqSA+IHNlbnphaXNodWtlblwgOwor6YGO5bCP6KmV5L6hID4ga2FzaG91aHlvdWthXCA7Civnr4Tnlofpg6jploAgPiBoYW5jaHV1YnVtb25cIDsKK+S/rumBk+WItuW6piA+IHNodXVkb3VzZWlkb1wgOwor57Wx6Kqe56+E55aHID4gdG91Z29oYW5jaHV1XCA7CivooZvnlJ/oqK3lgpkgPiBlaXNlaXNldHN1YmlcIDsKK+S4gOasoeeUo+WTgSA+IGljaGlqaXNhbnBpblwgOwor5YWs5piO5q2j5aSnID4ga291bWVpc2VpZGFpXCA7CivoirHngavnt5rpppkgPiBoYW5hYmlzZW5rb3VcIDsKK+iItueUqOapn+mWoiA+IGhha3V5b3VraWthblwgOwor5YWs5rCR5qip5rOVID4ga291bWlua2VuaG91XCA7CivmmI/nnaHnirbmhYsgPiBrb25zdWlqb3V0YWlcIDsKK+WvvuWQkei7iue3miA+IHRhaWtvdXNoYXNlblwgOwor6YmE5ouz5Yi26KOBID4gdGVra2Vuc2Vpc2FpXCA7CivmoYLlhqDoqankurogPiBrZWlrYW5zaGlqaW5cIDsKK+S6uuWPo+iqv+afuyA+IGppbmtvdWNob3VzYVwgOwor5Y+45rOV6Kej5YmWID4gc2hpaG91a2FpYm91XCA7Civkurrlj6PpnZnmhYsgPiBqaW5rb3VzZWl0YWlcIDsKK+acieS9k+WLleeUoyA+IHl1dXRhaWRvdXNhblwgOwor5o6h55So6Kmm6aiTID4gc2FpeW91c2hpa2VuXCA7CivmsJfosaHmg4XloLEgPiBraXNob3Vqb3Vob3VcIDsKK+aciee3muaUvumAgSA+IHl1dXNlbmhvdXNvdVwgOwor5ZaA55ew5qSc5p+7ID4ga2FrdXRhbmtlbnNhXCA7Civpg7flnJ/mlpnnkIYgPiBreW91ZG9yeW91cmlcIDsKK+S4ieauteirluazlSA+IHNhbmRhbnJvbnBvdVwgOwor5pmC5Luj57K+56WeID4gamlkYWlzZWlzaGluXCA7CivoqoflpKfluoPlkYogPiBrb2RhaWtvdWtva3VcIDsKK+S4gOaYqOOAheWknCA+IGlzc2FrdXNha3V5YVwgOwor6YO95biC6KiI55S7ID4gdG9zaGlrZWlrYWt1XCA7CivplqLmnbHkuIDlhoYgPiBrYW50b3VpY2hpZW5cIDsKK+iHqueEtueZuueUnyA+IHNoaXplbmhhc3NlaVwgOwor5qy95a6a5oay5rOVID4ga2ludGVpa2VucG91XCA7CivmlbDlgKTliLblvqEgPiBzdXVjaGlzZWlneW9cIDsKK+atpuiAheS6uuW9oiA+IG11c2hhbmluZ3lvdVwgOwor5YiG5ZGo5Zue6LevID4gYnVuc2h1dWthaXJvXCA7Civoh6Xpvo3ngrnnnZsgPiBnYXJ5b3V0ZW5zZWlcIDsKK+W4guawkeWkp+S8miA+IHNoaW1pbnRhaWthaVwgOwor6LWk5a2X5Zu95YK1ID4gYWthamlrb2t1c2FpXCA7Civkvb/nlKjmlrnms5UgPiBzaGl5b3Vob3Vob3VcIDsKK+Wwj+aYpeaXpeWSjCA+IGtvaGFydWJpeW9yaVwgOwor5YWs5byP6Kmm5ZCIID4ga291c2hpa2lqaWFpXCA7CivnhaflsITlh6bnkIYgPiBzaG91c2hhc2hvcmlcIDsKK+WPguWLpOS6pOabvyA+IHNhbmtpbmtvdXRhaVwgOwor576K6aCt54uX6IKJID4geW91dG91a3VuaWt1XCA7CivmlqHml4vmpa3ogIUgPiBhc3Nlbmd5b3VzaGFcIDsKK+S8muekvuamguimgSA+IGthaXNoYWdhaXlvdVwgOwor5rCR5Li75pS/5L2TID4gbWluc2h1c2VpdGFpXCA7CivnspfmlL7ovrLmpa0gPiBzb2hvdW5vdWd5b3VcIDsKK+iyoeWLmeiruOihqCA+IHphaW11c2hvaHlvdVwgOwor6JqK5Y+W57ea6aaZID4ga2F0b3Jpc2Vua291XCA7CivluoPloLHmg4XloLEgPiBrb3Vob3Vqb3Vob3VcIDsKK+e3iuaApeS6i+aFiyA+IGtpbmt5dXVqaXRhaVwgOwor5Z2H6KGh5L6h5qC8ID4ga2lua291a2FrYWt1XCA7CivlraPnr4DlpInnlbAgPiBraXNldHN1aGVuJydpXCA7CivmnInmhJ/lnLDpnIcgPiB5dXVrYW5qaXNoaW5cIDsKK+e3qeWSjOaMr+WLlSA+IGthbndhc2hpbmRvdVwgOwor5bm96ZyK5Lq65Y+jID4geXV1cmVpamlua291XCA7CivntbHoqp7mjIfmqJkgPiB0b3Vnb3NoaWh5b3VcIDsKK+acgOmrmOS+oeagvCA+IHNhaWtvdWtha2FrdVwgOwor6YW45oCn55m95ZyfID4gc2Fuc2VpaGFrdWRvXCA7CivmsJHml4/ooaPoo4UgPiBtaW56b2t1aXNob3VcIDsKK+S/ruWjq+iqsueoiyA+IHNodXVzaGlrYXRlaVwgOwor5YWs55uK5rOV5Lq6ID4ga291ZWtpaG91amluXCA7CivmrbTlj7LkuLvnvqkgPiByZWtpc2hpc2h1Z2lcIDsKK+W8geaFtuagvOWtkCA+IGJlbmtlaWdvdXNoaVwgOwor56ys5LqM5Lq656ewID4gZGFpbmluaW5zaG91XCA7CivkuIvmtYHnpL7kvJogPiBrYXJ5dXVzaGFrYWlcIDsKK+W/q+alveS4u+e+qSA+IGthaXJha3VzaHVnaVwgOwor5LiN57K+5LiN57K+ID4gZnVzaG91YnVzaG91XCA7CivliLbpmZDpgJ/luqYgPiBzZWlnZW5zb2t1ZG9cIDsKK+aWh+atpuS4oemBkyA+IGJ1bmJ1cnlvdWRvdVwgOwor5LiK5piH6ZmQ5bqmID4gam91c2hvdWdlbmRvXCA7CivkvZznlKjnqY3liIYgPiBzYXlvdXNla2lidW5cIDsKK+iFueeti+mBi+WLlSA+IGZ1a2tpbicndW5kb3VcIDsKK+WFrOiqjeiomOmMsiA+IGtvdW5pbmtpcm9rdVwgOwor5LiA57ay5omT5bC9ID4gaWNoaW1vdWRhamluXCA7CivlrabmoKHnlKjlk4EgPiBnYWtrb3V5b3VoaW5cIDsKK+S9j+WuheaJi+W9kyA+IGp1dXRha3V0ZWF0ZVwgOwor6KqN55+l56eR5a2mID4gbmluY2hpa2FnYWt1XCA7CivllYblo7LpgZPlhbcgPiBzaG91YmFpZG91Z3VcIDsKK+WOn+WtkOaIpuS6iSA+IGdlbnNoaXNlbnNvdVwgOwor5LqM6YeN54Sm54K5ID4gbmlqdXVzaG91dGVuXCA7Civlj6PnrZToqabllY8gPiBrb3V0b3VzaGltb25cIDsKK+Wbs+abuOmkqOmVtyA+IHRvc2hva2FuY2hvdVwgOwor5Zyo5bqr6Kq/5pW0ID4gemFpa29jaG91c2VpXCA7Civlr77mlbDplqLmlbAgPiB0YWlzdXVrYW5zdXVcIDsKK+aUv+aVmeS4gOiHtCA+IHNlaWt5b3VpdGNoaVwgOwor5paH6Iq45om56KmVID4gYnVuZ2VpaGloeW91XCA7Civnt5rlvaLku6PmlbAgPiBzZW5rZWlkYWlzdXVcIDsKK+mAo+WQiOaUv+aoqSA+IHJlbmdvdXNlaWtlblwgOwor6aC85q+N5a2Q6KybID4gdGFub21vc2hpa291XCA7CivlnKjpn5PnsbPou40gPiB6YWlrYW5iZWlndW5cIDsKK+S4gOWknOS5numjnyA+IGljaGl5YWtvamlraVwgOwor55Ww5bi457WC5LqGID4gaWpvdXNodXVyeW91XCA7CivoqabpqJPlnLDnjYQgPiBzaGlrZW5qaWdva3VcIDsKK+ekvuWToeaVmeiCsiA+IHNoYWlua3lvdWlrdVwgOwor5LyB5qWt5bm06YeRID4ga2lneW91bmVua2luXCA7CivkuZ7po5/moLnmgKcgPiBrb2ppa2lrb25qb3VcIDsKK+S8gealreWQiOWQjCA+IGtpZ3lvdWdvdWRvdVwgOwor6Ieq5Li75oyH6YedID4gamlzaHVzaGlzaGluXCA7CivmhJ/mhajnhKHph48gPiBrYW5nYWltdXJ5b3VcIDsKK+aVteaAp+WbveWutiA+IHRla2lzZWlrb2trYVwgOwor562J5beu57Sa5pWwID4gdG91c2FreXV1c3V1XCA7CivluKvnr4TlrabmoKEgPiBzaGloYW5nYWtrb3VcIDsKK+e1jOa4iOekvuS8miA+IGtlaXphaXNoYWthaVwgOwor5pS56Imv5Li7576pID4ga2FpcnlvdXNodWdpXCA7CivntYzmuIjliLboo4EgPiBrZWl6YWlzZWlzYWlcIDsKK+S4u+aIpuaKleaJiyA+IHNodXNlbnRvdXNodVwgOwor6YGK5pKD6ZqK5ZOhID4geXV1Z2VraXRhaWluXCA7CivkuIDmmYLluLDkvJEgPiBpY2hpamlraWt5dXVcIDsKK+WPl+ebiuiovOWIuCA+IGp1ZWtpc2hvdWtlblwgOwor5ouZ6YCf5Li7576pID4gc2Vzc29rdXNodWdpXCA7CivmnKrplovmi5PlnLAgPiBtaWthaXRha3VjaGlcIDsKK+WFqOaoqeWFrOS9vyA+IHplbmtlbmtvdXNoaVwgOwor57Wx5Yi257WM5riIID4gdG91c2Vpa2VpemFpXCA7CivnlLDlnJLpoqjmma8gPiBkZW4nJ2VuZnV1a2VpXCA7Civml4XooYzml6XnqIsgPiByeW9rb3VuaXR0ZWlcIDsKK+eEoemHj+Wkp+aVsCA+IG11cnlvdWRhaXN1dVwgOwor5Ymy5byV5q2p5ZCIID4gd2FyaWJpa2lidWFpXCA7Civlj43moLjpgYvli5UgPiBoYW5rYWt1dW5kb3VcIDsKK+mmmea4r+i/lOmChCA+IGhvbmtvbmhlbmthblwgOwor5LyB5qWt5ZCI5L21ID4ga2lneW91Z2FwcGVpXCA7CivpnZ7ooYzlsJHlubQgPiBoaWtvdXNob3VuZW5cIDsKK+mHjuWkluaSruW9sSA+IHlhZ2Fpc2F0c3VlaVwgOwor5Y2D5omL6Kaz6Z+zID4gc2VuanVrYW4nJ25vblwgOwor57K+56We5Li7576pID4gc2Vpc2hpbnNodWdpXCA7CivntYLlp4vkuIDosqsgPiBzaHV1c2hpaWtrYW5cIDsKK+ecjOawkeS8mumkqCA+IGtlbm1pbmthaWthblwgOwor5pWZ5p2h5Li7576pID4ga3lvdWpvdXNodWdpXCA7Civmm7TnlJ/kvJrnpL4gPiBrb3VzZWlnYWlzaGFcIDsKK+e5iue2reW3pealrSA+IHNlbicnaWtvdWd5b3VcIDsKK+S6uumWk+WQjOWjqyA+IG5pbmdlbmRvdXNoaVwgOwor5YuY5ZCI6LK/5piTID4ga2FuZ291Ym91ZWtpXCA7Civnmb7lrrbkuonps7QgPiBoeWFra2Fzb3VtZWlcIDsKK+S4lueVjOaUv+etliA+IHNla2Fpc2Vpc2FrdVwgOwor5a625bGL5Y+w5bizID4ga2Fva3VkYWljaG91XCA7CivmnbHmtbfpgZPnt5ogPiB0b3VrYWlkb3VzZW5cIDsKK+mBjuW9k+ertuS6iSA+IGthdG91a3lvdXNvdVwgOwor5ray5L2T56qS57SgID4gZWtpdGFpY2hpc3NvXCA7CivlubPlkozljZTlrpogPiBoZWl3YWt5b3V0ZWlcIDsKK+eEoee3mumbu+S/oSA+IG11c2VuZGVuc2hpblwgOwor5bCC6ZaA55So6KqeID4gc2VubW9uJyd5b3Vnb1wgOwor5Lq66YCg6IKl5paZID4gamluem91aGlyeW91XCA7CivlpKfnoLLkuInploAgPiB0YWlob3VzYW5tb25cIDsKK+Wun+mok+ijhee9riA+IGppa2tlbnNvdWNoaVwgOwor5Lit5aSu5Yq05YONID4gY2h1dW91cm91ZG91XCA7CivlhoXnt5rnlarlj7cgPiBuYWlzZW5iYW5nb3VcIDsKK+S8neiomOS9nOiAhSA+IGRlbmtpc2FrdXNoYVwgOwor5Lq65rCR5YWs56S+ID4gamlubWlua291c2hhXCA7CivpgKPntaHliIfnrKYgPiByZW5yYWt1a2lwcHVcIDsKK+WFseWQjOWik+WcsCA+IGt5b3Vkb3Vib2NoaVwgOwor5a6f5oWL6Kq/5p+7ID4gaml0dGFpY2hvdXNhXCA7Civnt4/li5nplbflrpggPiBzb3VtdWNob3VrYW5cIDsKK+a3t+S5seeKtuaFiyA+IGtvbnJhbmpvdXRhaVwgOwor5a625peP5oSP6K2YID4ga2F6b2t1aXNoaWtpXCA7CivlpJbmn5TlhoXliZsgPiBnYWlqdXVuYWlnb3VcIDsKK+ioquWVj+iyqeWjsiA+IGhvdW1vbmhhbmJhaVwgOwor5o6S5pal6YGL5YuVID4gaGFpc2VraXVuZG91XCA7Civljp/lrZDlvL7poK0gPiBnZW5zaGlkYW50b3VcIDsKK+WWtualreahiOWGhSA+IGVpZ3lvdWFuJyduYWlcIDsKK+WkqeaWh+iIquazlSA+IHRlbm1vbmtvdWhvdVwgOwor6Z2e5a6f6Zqb55qEID4gaGlqaXNzYWl0ZWtpXCA7Civlj4Lli6TkuqTku6MgPiBzYW5raW5rb3V0YWlcIDsKK+ijj+abuOitsua4oSA+IHVyYWdha2lqb3V0b1wgOwor6Zai5L+C5pu46aGeID4ga2Fua2Vpc2hvcnVpXCA7CivlhY3oqLHnmobkvJ0gPiBtZW5reW9rYWlkZW5cIDsKK+Wbnui7ouertuaKgCA+IGthaXRlbmt5b3VnaVwgOwor57WM5riI5rC05Z+fID4ga2VpemFpc3VpaWtpXCA7CivnhKHmrLLmgazmt6EgPiBtdXlva3V0ZW50YW5cIDsKK+iHquaIkeWun+ePviA+IGppZ2FqaXRzdWdlblwgOwor5Z+36KGM54y25LqIID4gc2hpa2tvdXl1dXlvXCA7Civono3pgJrmiYvlvaIgPiB5dXV6dXV0ZWdhdGFcIDsKK+WOmueUn+W5tOmHkSA+IGtvdXNlaW5lbmtpblwgOwor6Zmi5YaF5oSf5p+TID4gaW4nJ25haWthbnNlblwgOwor5oKq5oCn5rC06IWrID4gYWt1c2Vpc3Vpc2h1XCA7Civlm6PljYHpg47kuIggPiBkYW5qdXVyb3Vqb3VcIDsKK+S7peW/g+S8neW/gyA+IGlzaGluZGVuc2hpblwgOwor5LiA5a2X5Y2D6YeRID4gaWNoaWppc2Vua2luXCA7Civmpa3nuL7mgqrljJYgPiBneW91c2VraWFra2FcIDsKK+S6jOadn+S4ieaWhyA+IG5pc29rdXNhbm1vblwgOwor5YW15Zmo5ouh5pWjID4gaGVpa2lrYWt1c2FuXCA7CivkuqTlj4vplqLkv4IgPiBrb3V5dXVrYW5rZWlcIDsKK+Wbvemam+aUv+ayuyA+IGtva3VzYWlzZWlqaVwgOwor5pu46Z2i5a+p55CGID4gc2hvbWVuc2hpbnJpXCA7CivkurrplpPnpL7kvJogPiBuaW5nZW5zaGFrYWlcIDsKK+i7jeWbveS4u+e+qSA+IGd1bmtva3VzaHVnaVwgOwor5rC05LiK56u25oqAID4gc3Vpam91a3lvdWdpXCA7CivmsrPljp/kuZ7po58gPiBrYXdhcmFrb2ppa2lcIDsKK+S6jOmHjeaSruW9sSA+IG5panV1c2F0c3VlaVwgOwor57W25a++6KmV5L6hID4gemV0dGFpaHlvdWthXCA7CivlnKjnsbPpgqbkurogPiB6YWliZWlob3VqaW5cIDsKK+Wbm+aciOmmrOm5vyA+IHNoaWdhdHN1YmFrYVwgOwor5paw6YCy5rCX6YutID4gc2hpbnNoaW5raWVpXCA7CivmiYDlvpfmjqfpmaQgPiBzaG90b2t1a291am9cIDsKK+mWouS/guS8muekviA+IGthbmtlaWdhaXNoYVwgOwor6Ieq5L+h5rqA5rqAID4gamlzaGlubWFubWFuXCA7Civml6XmnKzlrabogIUgPiBuaWhvbmdha3VzaGFcIDsKK+aYpeaXpeWkp+ekviA+IGthc3VnYXRhaXNoYVwgOwor5paH5piO56S+5LyaID4gYnVubWVpc2hha2FpXCA7CivlkIzkurrpm5HoqowgPiBkb3VqaW56YXNzaGlcIDsKK+WPuOazleijgeWIpCA+IHNoaWhvdXNhaWJhblwgOwor5Lq65L2T5a6f6aiTID4gamludGFpamlra2VuXCA7CivkuqHlkb3mlL/mqKkgPiBib3VtZWlzZWlrZW5cIDsKK+S7sumWk+WQjOWjqyA+IG5ha2FtYWRvdXNoaVwgOwor57WM5Za25bel5a2mID4ga2VpZWlrb3VnYWt1XCA7Civos5vlkKbkuKHoq5YgPiBzYW5waXJ5b3Vyb25cIDsKK+S4jeazlembhuS8miA+IGZ1aG91c2h1dWthaVwgOwor55y86auY5omL5L2OID4gZ2Fua291c2h1dGVpXCA7Civoh6rli5XlsI/pioMgPiBqaWRvdXNob3VqdXVcIDsKK+WcsOWfn+ekvuS8miA+IGNoaWlraXNoYWthaVwgOwor5Lqk5rWB5Lq65LqLID4ga291cnl1dWppbmppXCA7CivnibnmrorlirnmnpwgPiB0b2t1c2h1a291a2FcIDsKK+iHquWutuS4reavkiA+IGppa2FjaHV1ZG9rdVwgOwor55uy6LKr6YqD5Ym1ID4gbW91a2FuanV1c291XCA7CivkurrmsJfnlarntYQgPiBuaW5raWJhbmd1bWlcIDsKK+aVteacrOS4u+e+qSA+IHRla2lob25zaHVnaVwgOwor5Y+j5YaF5oCn5LqkID4ga291bmFpc2Vpa291XCA7CivohLPou5/ljJbnl4cgPiBub3VuYW5rYXNob3VcIDsKK+ePvuWcsOazleS6uiA+IGdlbmNoaWhvdWppblwgOwor6Ieq5YuV6LuK5rOlID4gamlkb3VzaGFkb3JvXCA7CivkuIDmmYLlgZzmraIgPiBpY2hpaml0ZWlzaGlcIDsKK+WtpuWckue0m+S6iSA+IGdha3VlbmZ1bnNvdVwgOwor5pyA6auY5a2m5bqcID4gc2Fpa291Z2FrdWZ1XCA7Civkv53pmbrlpZHntIQgPiBob2tlbmtlaXlha3VcIDsKK+Wls+aAp+W3ruWIpSA+IGpvc2Vpc2FiZXRzdVwgOwor5YWQ56ul56aP56WJID4gamlkb3VmdWt1c2hpXCA7CivoqabpqJPllY/poYwgPiBzaGlrZW5tb25kYWlcIDsKK+a8uOmAsuS4u+e+qSA+IHplbnNoaW5zaHVnaVwgOwor6Z+z5L+h5LiN6YCaID4gb25zaGluZnV0c3V1XCA7Civli4flvoDpgoHpgLIgPiB5dXVvdW1haXNoaW5cIDsKK+mdmeatoueKtuaFiyA+IHNlaXNoaWpvdXRhaVwgOwor5YyX5pSv5LqL5aSJID4gaG9rdXNoaWppaGVuXCA7Civlr7jlgJ/oqZDmrLogPiBzdW5zaGFrdXNhZ2lcIDsKK+aMh+WQjemAmuipsSA+IHNoaW1laXRzdXV3YVwgOwor6Ium5b+D5oOo5oa6ID4ga3VzaGluc2FudGFuXCA7Civnib3lvLfku5jkvJogPiBrZW5reW91ZnVrYWlcIDsKK+WvkuWGt+WJjee3miA+IGthbnJlaXplbnNlblwgOwor6YCf5bqm5Yi26ZmQID4gc29rdWRvc2VpZ2VuXCA7Civlm5vpg6jlkIjllLEgPiBzaGlidWdhc3Nob3VcIDsKK+mbu+mbu+WFrOekviA+IGRlbmRlbmtvdXNoYVwgOwor5YSq5Yud5YCZ6KOcID4geXV1c2hvdWtvdWhvXCA7Civlj4vlpb3plqLkv4IgPiB5dXVrb3VrYW5rZWlcIDsKK+aVkeaPtOeJqeizhyA+IGt5dXVlbmJ1c3NoaVwgOwor56We56S+5LuP6ZajID4gamluamFidWtrYWt1XCA7CivmsLTlubPmgJ3ogIMgPiBzdWloZWlzaGlrb3VcIDsKK+mfs+aEn+aVmeiCsiA+IG9ua2Fua3lvdWlrdVwgOwor5rue57SN5Yem5YiGID4gdGFpbm91c2hvYnVuXCA7CivlhbHlkIzntYzllrYgPiBreW91ZG91a2VpZWlcIDsKK+S6jOWFreaZguS4rSA+IG5pcm9rdWppY2h1dVwgOwor5LiA5pmC6LOc6YeRID4gaWNoaWppc2hpa2luXCA7Civoh6rnhLbltIfmi50gPiBzaGl6ZW5zdXVoYWlcIDsKK+WvqeitsOacquS6hiA+IHNoaW5naW1pcnlvdVwgOwor6aSK5a2Q57iB57WEID4geW91c2hpZW5ndW1pXCA7CivmsI/ml4/liLbluqYgPiBzaGl6b2t1c2VpZG9cIDsKK+i7jemZo+WMu+WtpiA+IGd1bmppbicnaWdha3VcIDsKK+ato+Wbm+mdouS9kyA+IHNlaXNoaW1lbnRhaVwgOwor5a6a5qC86KuL6LKgID4gdGVpa2FrdXVrZW9pXCA7CivlvoXpgYfmlLnlloQgPiB0YWlndXVrYWl6ZW5cIDsKK+e5iue2reWFieWtpiA+IHNlbicnaWtvdWdha3VcIDsKK+m7kuS6uumciuatjCA+IGtva3VqaW5yZWlrYVwgOwor54m55q6K5qmf6IO9ID4gdG9rdXNodWtpbm91XCA7CivntYzot6/nqY3liIYgPiBrZWlyb3Nla2lidW5cIDsKK+WbveWWtui+suWgtCA+IGtva3VlaW5vdWpvdVwgOwor5Zu957KL5Li7576pID4ga29rdXN1aXNodWdpXCA7CivnlLLnirbohbrngo4gPiBrb3Vqb3VzZW4nJ2VuXCA7Civos4fnlKPlkIjoqIggPiBzaGlzYW5nb3VrZWlcIDsKK+mvqOmjsummrOmjnyA+IGdlaWluYmFzaG9rdVwgOwor5b+D6IeT55m65L2cID4gc2hpbnpvdWhvc3NhXCA7CivmlrDkurrmrYzmiYsgPiBzaGluamlua2FzaHVcIDsKK+i8uOWFpeaJi+W9oiA+IHl1bnl1dXRlZ2F0YVwgOwor5Zyn552A56uv5a2QID4gYXRzdWdpdGFuc2hpXCA7CivmnKrmlLnlv4PogIUgPiBtaWthaXNoaW5zaGFcIDsKK+eEoeWKueaKleelqCA+IG11a291dG91aHlvdVwgOwor6Zuj5pS75LiN6JC9ID4gbmFua291ZnVyYWt1XCA7CivkuIDlv4PlkIzkvZMgPiBpc3NoaW5kb3V0YWlcIDsKK+WupeWSjOaUv+etliA+IHl1dXdhc2Vpc2FrdVwgOwor6ZmQ55WM5Yq555SoID4gZ2Vua2Fpa291eW91XCA7CivljYHkuIflhITlnJ8gPiBqdXVtYW4nJ29rdWRvXCA7CivlpInmhYvlv4PnkIYgPiBoZW50YWlzaGlucmlcIDsKK+aLjeWtkOiomOWPtyA+IGh5b3VzaGlraWdvdVwgOwor5YWs5Lya5ZWP562UID4ga291a2FpbW9uZG91XCA7CivogIPlj6TlrabogIUgPiBrb3Vrb2dha3VzaGFcIDsKK+mHjueQg+mBuOaJiyA+IHlha3l1dXNlbnNodVwgOwor5aSi6YGK55eF6ICFID4gbXV5dXVieW91c2hhXCA7CivopoHmiYDopoHmiYAgPiB5b3VzaG95b3VzaG9cIDsKK+S9v+W+kue2meaJvyA+IHNoaXRva2Vpc2hvdVwgOwor5Yqx56OB6Zu75rWBID4gcmVpamlkZW5yeXV1XCA7CivnpL7kvJrliLbluqYgPiBzaGFrYWlzZWlkb1wgOwor5Luj55CG6aCY5LqLID4gZGFpcmlyeW91amlcIDsKK+eCueaVsOWIh+espiA+IHRlbnN1dWtpcHB1XCA7CivljJbmiJDogqXmlpkgPiBrYXNlaWhpcnlvdVwgOwor5pyq5oiQ5bm06ICFID4gbWlzZWluZW5zaGFcIDsKK+S4gOWkqeS4h+S5lyA+IGl0dGVuYmFuam91XCA7CivopqrlrZDplqLkv4IgPiBveWFrb2thbmtlaVwgOwor5oGQ5oCW5pS/5rK7ID4ga3lvdWZ1c2VpamlcIDsKK+iZmuaVsOWNmOS9jSA+IGt5b3N1dXRhbicnaVwgOwor6YG45oyZ5Yi25bqmID4gc2Vua3lvc2VpZG9cIDsKK+Wkp+mhmOaIkOWwsSA+IGRhaWdhbmpvdWp1XCA7CivlhobljZPkvJrorbAgPiBlbnRha3VrYWlnaVwgOwor5aSn5a6u5b6h5omAID4gb29taXlhZ29zaG9cIDsKK+S4iuS4i+mWouS/giA+IGpvdWdla2Fua2VpXCA7CivlhazllrbkvIHmpa0gPiBrb3VlaWtpZ3lvdVwgOwor6YeN5ray5YiG6ZuiID4ganV1ZWtpYnVucmlcIDsKK+Wun+i3teeQhuaApyA+IGppc3NlbnJpc2VpXCA7CivooYzkvY/lnZDoh6UgPiBneW91anV1emFnYVwgOwor6KiA6KGM5LiA6Ie0ID4gZ2Vua291aXRjaGlcIDsKK+W6g+Wkp+eEoei+uiA+IGtvdWRhaW11aGVuXCA7CivlhKrlhYjkuovpoIUgPiB5dXVzZW5qaWtvdVwgOwor5pC65biv6Zu76KmxID4ga2VpdGFpZGVud2FcIDsKK+aZguS7o+mMr+iqpCA+IGppZGFpc2FrdWdvXCA7Civkurrlt6XooZvmmJ8gPiBqaW5rb3VlaXNlaVwgOwor57ea5b2i6aCG5bqPID4gc2Vua2VpanVuam9cIDsKK+WkluS6pOWumOijnCA+IGdhaWtvdWthbmhvXCA7CivkvY/lsYXmiYvlvZMgPiBqdXVreW90ZWF0ZVwgOwor6YGT6Lev5qiZ56S6ID4gZG91cm9oeW91amlcIDsKK+S6iOWCmeWwhuagoSA+IHlvYmlzaG91a291XCA7CivmsJHplpPpo5vooYwgPiBtaW5rYW5oaWtvdVwgOwor5rC45a2Q5L2c5qipID4gZWlrb3Nha3VrZW5cIDsKK+ekvuS8mumBi+WLlSA+IHNoYWthaXVuZG91XCA7Civnp7vooYzoqIjnlLsgPiBpa291a2Vpa2FrdVwgOwor5o6l6L+R57WM6LevID4gc2Vra2lua2Vpcm9cIDsKK+S4lueVjOe1jOa4iCA+IHNla2Fpa2VpemFpXCA7Civmta7kuJbojYnlrZAgPiB1a2l5b3pvdXNoaVwgOwor5a6a5pWw5piv5q2jID4gdGVpc3V1emVzZWlcIDsKK+WuieS/neadoee0hCA+IGFucG9qb3V5YWt1XCA7Civosqnlo7LlgKTmrrUgPiBoYW5iYWluZWRhblwgOwor5Z+65bqV5qeL6YCgID4ga2l0ZWlrb3V6b3VcIDsKK+W/hemgiOadoeS7tiA+IGhpc3N1am91a2VuXCA7CivljLroo4HliKTmiYAgPiBrdXNhaWJhbnNob1wgOwor5LqI6KGM5ryU57+SID4geW9rb3VlbnNodXVcIDsKK+mBuOaMmemBi+WLlSA+IHNlbmt5b3VuZG91XCA7Civlm73pmpvopo/mqKEgPiBrb2t1c2Fpa2lib1wgOwor6YGL6Lui5YWN6KixID4gdW50ZW5tZW5reW9cIDsKK+e3muW9ouirlueQhiA+IHNlbmtlaXJvbnJpXCA7CivlubTos4Dpg7Xkvr8gPiBuZW5nYXl1dWJpblwgOwor5rip6aKo5pqW5oi/ID4gb25wdXVkYW5ib3VcIDsKK+WGhemDqOani+mAoCA+IG5haWJ1a291em91XCA7CivkuI3lrprlnovoqakgPiBmdXRlaWtlaXNoaVwgOwor6buE6YeR5bSH5oudID4gb3Vnb25zdXVoYWlcIDsKK+S4luipseWls+aIvyA+IHNld2FueW91Ym91XCA7CivniqzlhJLlrabmtL4gPiBrZW5qdWdha3VoYVwgOwor5LiA5ZOB5paZ55CGID4gaXBwaW5yeW91cmlcIDsKK+S6nOehq+mFuOWhqSA+IGFyeXV1c2FuJydlblwgOwor5pyJ5aOw5a2Q6Z+zID4geXV1c2Vpc2hpaW5cIDsKK+eahuWFteWItuW6piA+IGthaWhlaXNlaWRvXCA7CivmnKrntYzpqJPogIUgPiBtaWtlaWtlbnNoYVwgOwor5LiK5oSP5LiL6YGUID4gam91aWthdGF0c3VcIDsKK+i7iumWk+i3nemboiA+IHNoYWthbmt5b3JpXCA7CivmsLfmsrPmmYLku6MgPiBoeW91Z2FqaWRhaVwgOwor5oOF5aCx55CG6KuWID4gam91aG91cmlyb25cIDsKK+W+oeWkmuW/meS4rSA+IGdvdGFib3VjaHV1XCA7CivmhJvmn5PmmI7njosgPiBhaXplbm15b3VvdVwgOwor5bmz6Z2i5Lqk5beuID4gaGVpbWVua291c2FcIDsKK+e1jOmok+S4u+e+qSA+IGtlaWtlbnNodWdpXCA7CivlvIHorbflo6vkvJogPiBiZW5nb3NoaWthaVwgOwor57SU5oOF5Y+v5oaQID4ganVuam91a2FyZW5cIDsKK+i8ieiyqOWQg+awtCA+IHNhaWtha2lzc3VpXCA7CivljYrmv4Hpn7PnrKYgPiBoYW5kYWt1b25mdVwgOwor5oSb5p+T5aaZ546LID4gYWl6ZW5teW91b3VcIDsKK+mWqOengOeUu+WutiA+IGtlaXNodXVnYWthXCA7CivkuInljYropo/nrqEgPiBzYW5oYW5raWthblwgOwor5bCB5bu65pmC5LujID4gaG91a2VuamlkYWlcIDsKK+i2iuWGrOizh+mHkSA+IGV0dG91c2hpa2luXCA7CivmiYDluK/pgZPlhbcgPiBzaG90YWlkb3VndVwgOwor5YKy5bK454Sh56S8ID4gZ291Z2FuYnVyZWlcIDsKK+ekvuS8muS/nemZuiA+IHNoYWthaWhva2VuXCA7CivovIPlhKrkvY3oq5YgPiBrYWt1eXV1aXJvblwgOwor5LiW6KuW6Kq/5p+7ID4geW9yb25jaG91c2FcIDsKK+WGrOacn+S8keaahyA+IHRvdWtpa3l1dWthXCA7CivkuIrpg6jmp4vpgKAgPiBqb3VidWtvdXpvdVwgOwor6LGh5b2i5paH5a2XID4gc2hvdWtlaW1vamlcIDsKK+i+suacrOS4u+e+qSA+IG5vdWhvbnNodWdpXCA7CivkuIDliIfooYbnlJ8gPiBpc3NhaXNodWpvdVwgOwor5pen5oWL5L6d54S2ID4ga3l1dXRhaWl6ZW5cIDsKK+aVtOeQhueVquWPtyA+IHNlaXJpYmFuZ291XCA7CivlvZPluqfos4fnlKMgPiB0b3V6YXNoaXNhblwgOwor5q6L5ZOB5pW055CGID4gemFucGluc2VpcmlcIDsKK+Wuh+WumemAn+W6piA+IHVjaHV1c29rdWRvXCA7CivliqDmsLTliIbop6MgPiBrYXN1aWJ1bmthaVwgOwor5a6j5Lyd5L6h5YCkID4gc2VuZGVua2FjaGlcIDsKK+W5tOWto+WlieWFrCA+IG5lbmtpYm91a291XCA7CivosqjluaPntYzmuIggPiBrYWhlaWtlaXphaVwgOwor54Sh5pyf5oey5b25ID4gbXVraWNob3Vla2lcIDsKK+W4guWgtOWMuuWIhiA+IHNoaWpvdWt1YnVuXCA7CivliJ3mnJ/oqK3lrpogPiBzaG9raXNldHRlaVwgOwor5Lq66YCg57mK57atID4gamluem91c2VuJydpXCA7Civmma7pgJrpoJDph5EgPiBmdXRzdXV5b2tpblwgOwor5L2O5Yip6LOH6YeRID4gdGVpcmlzaGlraW5cIDsKK+ecn+ePoOe0sOW3pSA+IHNoaW5qdXphaWt1XCA7CivkuLvnn6XkuLvnvqkgPiBzaHVjaGlzaHVnaVwgOwor5LqM6aCF5L+C5pWwID4gbmlrb3VrZWlzdXVcIDsKK+e0oOaAp+ani+mAoCA+IHNvc2Vpa291em91XCA7CivmhJvlm73kuLvnvqkgPiBhaWtva3VzaHVnaVwgOwor5oim6ZeY5pSv5o+0ID4gc2VudG91c2hpZW5cIDsKK+S6uuWQjei+nuabuCA+IGppbm1laWppc2hvXCA7CivliY3ovKrpp4bli5UgPiB6ZW5yaW5rdWRvdVwgOwor5L6h5qC85pON5L2cID4ga2FrYWt1c291c2FcIDsKK+W9ouiAjOS4i+WtpiA+IGtlaWppa2FnYWt1XCA7CivkuIDmnJ/kuIDkvJogPiBpY2hpZ29pY2hpZVwgOwor5Zyf5pyo5bel5LqLID4gZG9ib2t1a291amlcIDsKK+Wls+WtkOmrmOeUnyA+IGpvc2hpa291c2VpXCA7CivnjovpgZPmpb3lnJ8gPiBvdWRvdXJha3Vkb1wgOwor5oKq5oim6Ium6ZeYID4gYWt1c2Vua3V0b3VcIDsKK+elnue1jOWkluenkSA+IHNoaW5rZWlnZWthXCA7CivkuI3nnKDkuI3kvJEgPiBmdW1pbmZ1a3l1dVwgOwor5ZCN6KqJ5pWZ5o6IID4gbWVpeW9reW91anVcIDsKK+Wbs+abuOmkqOWToSA+IHRvc2hva2FuJydpblwgOwor6auY5q2M5pS+5ZCfID4ga291a2Fob3VnaW5cIDsKK+ani+aIkOWNmOS9jSA+IGtvdXNlaXRhbicnaVwgOwor5aSW5Lq66KiY6ICFID4gZ2Fpamlua2lzaGFcIDsKK+S+i+WkluWHpueQhiA+IHJlaWdhaXNob3JpXCA7CivlpKvlqabojLbnopcgPiBtZW90b2RqYXdhblwgOwor5YWo6Z2i6Kyb5ZKMID4gemVubWVua291d2FcIDsKK+e+qeWLmeaVmeiCsiA+IGdpbXVreW91aWt1XCA7CivmgrLoprPoq5bogIUgPiBoaWthbnJvbnNoYVwgOwor5YCL5Lq65oOF5aCxID4ga29qaW5qb3Vob3VcIDsKK+eUuuauteeVneatqSA+IGNob3V0YW5zZWJ1XCA7Civku6PnkIblpKfkvb8gPiBkYWlyaXRhaXNoaVwgOwor5qeL6YCg5Li7576pID4ga291em91c2h1Z2lcIDsKK+WGhee3mumbu+ipsSA+IG5haXNlbmRlbndhXCA7CivlhaznpLrkvqHmoLwgPiBrb3VqaWtha2FrdVwgOwor5ray5L2T6YW457SgID4gZWtpdGFpc2Fuc29cIDsKK+ayg+W6puS4geW5viA+IHlvdWRvY2hpbmtpXCA7CivliJHkuovoqLToqJ8gPiBrZWlqaXNvc2hvdVwgOwor56i85YON5Lq65Y+jID4ga2Fkb3VqaW5rb3VcIDsKK+i7veapn+mWoumKgyA+IGtlaWtpa2FuanV1XCA7CivmqZ/lr4bkv53orbcgPiBraW1pdHN1aG9nb1wgOwor5LqI5YKZ5Lqk5riJID4geW9iaWtvdXNob3VcIDsKK+mAj+imluWbs+azlSA+IHRvdXNoaXp1aG91XCA7Civnt7Tnv5LoqablkIggPiByZW5zaHV1amlhaVwgOwor5Y+v6KaW5YWJ57eaID4ga2FzaGlrb3VzZW5cIDsKK+ethuiomOippumokyA+IGhpa2tpc2hpa2VuXCA7Civlhazlrprnm7jloLQgPiBrb3V0ZWlzb3ViYVwgOwor5L6h5qC86KaP5Yi2ID4ga2FrYWt1a2lzZWlcIDsKK+WKoOmHjeW5s+WdhyA+IGthanV1aGVpa2luXCA7Civmraboo4XorablrpggPiBidXNvdWtlaWthblwgOwor5rC05a2Q5L6b6aSKID4gbWl6dWdva3V5b3VcIDsKK+WNg+WkieS4h+WMliA+IHNlbnBlbmJhbmthXCA7Civmn7vlrprkvqHmoLwgPiBzYXRlaWtha2FrdVwgOwor5LiL5bGk56S+5LyaID4ga2Fzb3VzaGFrYWlcIDsKK+iHqueEtuS4u+e+qSA+IHNoaXplbnNodWdpXCA7CivoiIjlkbPmnKzkvY0gPiBreW91bWlob24nJ2lcIDsKK+eEoeS9k+izh+eUoyA+IG11dGFpc2hpc2FuXCA7CivntYzmuIjlsIHpjpYgPiBrZWl6YWlmdXVzYVwgOwor56u25LqJ55u45omLID4ga3lvdXNvdWFpdGVcIDsKK+S6lOi8quWkp+S8miA+IGdvcmludGFpa2FpXCA7Civml6XmnKzkuInmma8gPiBuaWhvbnNhbmtlaVwgOwor5rK55oCn5aGX5paZID4geXVzZWl0b3J5b3VcIDsKK+aUueioguWil+ijnCA+IGthaXRlaXpvdWhvXCA7CivkuIDoiKzmpoLlv7UgPiBpcHBhbmdhaW5lblwgOwor5bCP5LiA5pmC6ZaTID4ga29pY2hpamlrYW5cIDsKK+S4ieiEmuakheWtkCA+IHNhbmt5YWt1aXN1XCA7Civnmq7ohprmhJ/oppogPiBoaWZ1a2Fua2FrdVwgOwor5qip5Yip6KGM5L2/ID4ga2Vucmlrb3VzaGlcIDsKK+a8ouWtl+WkieaPmyA+IGthbmppaGVua2FuXCA7CivnhKHkvZPosqHnlKMgPiBtdXRhaXphaXNhblwgOwor5YWo5L2T5Lya6K2wID4gemVudGFpa2FpZ2lcIDsKK+S6jOmHjeaKteW9kyA+IG5panV1dGVpdG91XCA7CivmqZ/morDmlofmmI4gPiBraWthaWJ1bm1laVwgOwor5aSp5rSl5LmZ5aWzID4gYW1hdHN1b3RvbWVcIDsKK+WIqeWus+mWouS/giA+IHJpZ2Fpa2Fua2VpXCA7CivlpJrop5LntYzllrYgPiB0YWtha3VrZWllaVwgOwor5aSr5amm5Yil5aeTID4gZnV1ZnViZXNzZWlcIDsKK+aXpeacrOiqnuiosyA+IG5paG9uZ295YWt1XCA7CivkuqTmj5vmqZ/og70gPiBrb3VrYW5raW5vdVwgOwor55Sj5Y215aC05omAID4gc2FucmFuYmFzaG9cIDsKK+i1sOihjOi3nemboiA+IHNvdWtvdWt5b3JpXCA7CivnhKHlsL3ntYTlkIggPiBtdWppbmt1bWlhaVwgOwor5YaN55Sf5Yip55SoID4gc2Fpc2Vpcml5b3VcIDsKK+iIquepuuavjeiJpiA+IGtvdWt1dWJva2FuXCA7CivkurrlkI3ovp7lhbggPiBqaW5tZWlqaXRlblwgOwor5pio6Z2e5LuK5pivID4gc2FrdWhpa29uemVcIDsKK+aWsOWPpOWFuOa0viA+IHNoaW5rb3RlbmhhXCA7CivntYzllrbos4fmupAgPiBrZWllaXNoaWdlblwgOwor6KKr5a6z5aaE5oOzID4gaGlnYWltb3Vzb3VcIDsKK+e0sOiPjOWFteWZqCA+IHNhaWtpbmhlaWtpXCA7Civpo73lkozmurbmtrIgPiBob3V3YXlvdWVraVwgOwor5LiA6Iis5Lya6KiIID4gaXBwYW5rYWlrZWlcIDsKK+a6luWCmeizh+mHkSA+IGp1bmJpc2hpa2luXCA7CivmlL/lhZrmlL/msrsgPiBzZWl0b3VzZWlqaVwgOwor5q+N5a2Q5bm06YeRID4gYm9zaGluZW5raW5cIDsKK+e+juWuueaVtOW9oiA+IGJpeW91c2Vpa2VpXCA7CivliJ3mnJ/mipXos4cgPiBzaG9raXRvdXNoaVwgOwor5pyA55+t6Led6ZuiID4gc2FpdGFua3lvcmlcIDsKK+WRqOi+uuapn+WZqCA+IHNodXVoZW5raWtpXCA7CivliLbpmZDmmYLplpMgPiBzZWlnZW5qaWthblwgOwor5Yuk5Yq05oSP5qyyID4ga2lucm91aXlva3VcIDsKK+WAieW6q+S8muekviA+IHNvdWtvZ2Fpc2hhXCA7CivmnKrplovnpL7kvJogPiBtaWthaXNoYWthaVwgOwor6YGO5aSn6KmV5L6hID4ga2FkYWloeW91a2FcIDsKK+egtOW7ieaBpee9qiA+IGhhcmVuY2hpemFpXCA7CivmmYLpmZDoo4Xnva4gPiBqaWdlbnNvdWNoaVwgOwor5pmv5rCX5aSJ5YuVID4ga2Vpa2loZW5kb3VcIDsKK+S4gOasoeiomOaGtiA+IGljaGlqaWtpb2t1XCA7CivooZ3li5XooYzngrogPiBzaG91ZG91a291aVwgOwor6Kix5a6556+E5ZuyID4ga3lveW91aGFuJydpXCA7CivnlJ/nlKPnrqHnkIYgPiBzZWlzYW5rYW5yaVwgOwor5Yy755mC5Lyd6YGTID4gaXJ5b3VkZW5kb3VcIDsKK+eqgeiyq+W3peS6iyA+IHRva2thbmtvdWppXCA7CivpgbjogIPln7rmupYgPiBzZW5rb3VraWp1blwgOwor6YO95biC6YqA6KGMID4gdG9zaGlnaW5rb3VcIDsKK+Wuo+S8neaYoOeUuyA+IHNlbmRlbicnZWlnYVwgOwor5oWI5ZaE5LqL5qWtID4gaml6ZW5qaWd5b3VcIDsKK+WKoOmAn+W6puioiCA+IGthc29rdWRva2VpXCA7CivlgrLmhaLkuI3pgZwgPiBnb3VtYW5mdXNvblwgOwor5YiR5YuZ5L2c5qWtID4ga2VpbXVzYWd5b3VcIDsKK+WcsOeQg+imj+aooSA+IGNoaWt5dXVraWJvXCA7CivpgJTkuK3oqIjmmYIgPiB0b2NodXVrZWlqaVwgOwor6auY5bCE54m556eRID4ga291c2hhdG9ra2FcIDsKK+S4iemdouWFreiHgiA+IHNhbm1lbnJvcHBpXCA7Civlvq7liIbmlq3pnaIgPiBiaWJ1bmRhbm1lblwgOwor5YiG5aip5L2c55SoID4gYnVuYmVuc2F5b3VcIDsKK+S/neWBpeS9k+iCsiA+IGhva2VudGFpaWt1XCA7CivmmrTotbDpgYvou6IgPiBib3Vzb3V1bnRlblwgOwor6Kuu5ZWP5qmf6ZaiID4gc2hpbW9ua2lrYW5cIDsKK+eUsOiIjuiKneWxhSA+IGluYWthc2hpYmFpXCA7CivnmYzpgbrkvJ3lrZAgPiBnYW4nJ2lkZW5zaGlcIDsKK+eZvumsvOWknOihjCA+IGh5YWtraXlha291XCA7CivmsLjlsI/kvZzmqKkgPiBlaWtvc2FrdWtlblwgOwor54Sh5q275rqA5aGBID4gbXVzaGltYW5ydWlcIDsKK+S6jOeVquaKteW9kyA+IG5pYmFudGVpdG91XCA7Civnt4/li5npg6jplbcgPiBzb3VtdWJ1Y2hvdVwgOwor6Ieq55Sx6LK/5piTID4gaml5dXVib3Vla2lcIDsKK+W5s+WSjOadoemghSA+IGhlaXdham91a291XCA7CivmsJfliIbou6Lmj5sgPiBraWJ1bnRlbmthblwgOwor5YSS5pWZ5Li7576pID4ganVreW91c2h1Z2lcIDsKK+Wls+atjOiInuS8jiA+IG9uJyduYWthYnVraVwgOwor6aOb6KGM5qmf6ZuyID4gaGlrb3VraWd1bW9cIDsKK+i3r+mdoumbu+i7iiA+IHJvbWVuZGVuc2hhXCA7CivljZjni6zooYzngrogPiB0YW5kb2t1a291aVwgOwor6Kqg5b+D6Kqg5oSPID4gc2Vpc2hpbnNlaWlcIDsKK+aXpeacrOaWmeeQhiA+IG5paG9ucnlvdXJpXCA7CivmlYXkuovmnaXmrbQgPiBrb2ppcmFpcmVraVwgOwor5YaF6Lyq5Zan5ZipID4gdWNoaXdhZ2Vua2FcIDsKK+S6nOehnemFuOWhqSA+IGFzaG91c2FuJydlblwgOwor5LiA6KeS542j5bqnID4gaWtrYWt1anV1emFcIDsKK+WPjeS9k+WItua0viA+IGhhbnRhaXNlaWhhXCA7CivljLrlioPmlbTnkIYgPiBrdWtha3VzZWlyaVwgOwor5pS+5Lu75Li7576pID4gaG91bmluc2h1Z2lcIDsKK+mBuuaXj+e1puS7mCA+IGl6b2t1a3l1dWZ1XCA7CivlpInkvY3liLblvqEgPiBoZW4nJ2lzZWlneW9cIDsKK+aWh+mDqOWkp+iHoyA+IG1vbmJ1ZGFpamluXCA7CivlpbPmqKnoq5bogIUgPiBqb2tlbnJvbnNoYVwgOwor5LiL5aOr5a6Y5YW1ID4ga2FzaGlrYW5oZWlcIDsKK+S4reemheWvuua5liA+IGNodXV6ZW5qaWtvXCA7Civoo73lk4Hljp/kvqEgPiBzZWloaW5nZW5rYVwgOwor5Lq65rCR5Li7576pID4gamlubWluc2h1Z2lcIDsKK+WLieW8t+mDqOWxiyA+IGJlbmt5b3ViZXlhXCA7CivnpZ7lrq7lpJboi5EgPiBqaW5ndXVnYWllblwgOwor5YWo6Iis5pSv5o+0ID4gemVucGFuc2hpZW5cIDsKK+WwkeWjruacieeCuiA+IHNob3Vzb3V5dXVpXCA7CivntYzlj6PmipXkuI4gPiBrZWlrb3V0b3V5b1wgOwor5o+b5rCX6KOF572uID4ga2Fua2lzb3VjaGlcIDsKK+WFseWSjOWItuW6piA+IGt5b3V3YXNlaWRvXCA7CivkuozoqrLli4nlvLcgPiBuaWthYmVua3lvdVwgOwor5LqI6Ziy5o6l56iuID4geW9ib3VzZXNzaHVcIDsKK+eVsOWbveaDhee3kiA+IGlrb2t1am91Y2hvXCA7CivpgYvou6LlgZzmraIgPiB1bnRlbnRlaXNoaVwgOwor5oKq5Y+j6ZuR6KiAID4gYWtrb3V6b3Vnb25cIDsKK+i7jeazleS8muitsCA+IGd1bnBvdWthaWdpXCA7CivlpKnlnLDnhKHnlKggPiB0ZW5jaGltdXlvdVwgOwor55Ww5bi45oCn5qyyID4gaWpvdXNlaXlva3VcIDsKK+S6uuW3peWPl+iDjiA+IGppbmtvdWp1dGFpXCA7Civml6XmnKzmlofms5UgPiBuaWhvbmJ1bnBvdVwgOwor5LiK5LiL5rC06YGTID4gam91Z2VzdWlkb3VcIDsKK+mKgOihjOWPo+W6pyA+IGdpbmtvdWtvdXphXCA7CivlpI/mnJ/lpKflraYgPiBrYWtpZGFpZ2FrdVwgOwor6YCj6YKm6K2w5LyaID4gcmVucG91Z2lrYWlcIDsKK+acq+acn+eXh+eKtiA+IG1ha2tpam91dGFpXCA7CivkupTmrrXli5XoqZ4gPiBnb2RhbmRvdXNoaVwgOwor56uL5rOV5qmf6ZaiID4gcmlwcG91a2lrYW5cIDsKK+WboOW+quWnkeaBryA+IGluanVua29zb2t1XCA7CivlpKflsbHmpJLprZogPiBvb3NhbnNob3V1b1wgOwor6JmO6KaW55yI55yIID4ga29zaGl0YW50YW5cIDsKK+iDjOmdoumjm+ihjCA+IGhhaW1lbmhpa291XCA7CivlvL7kuLjpgZPot68gPiBkYW5nYW5kb3Vyb1wgOwor5YSq5YWI5aSW6LKoID4geXV1c2VuZ2Fpa2FcIDsKK+W9k+eUqOa8ouWtlyA+IHRvdXlvdWthbmppXCA7CivmsJHmnKzkuLvnvqkgPiBtaW5wb25zaHVnaVwgOwor5Lq65bel5Y+X57SbID4gamlua291anVmdW5cIDsKK+S4u+imgeeJqeS+oSA+IHNodXlvdWJ1a2thXCA7Civkurrlt6Xlj5fnsr4gPiBqaW5rb3VqdXNlaVwgOwor55m75bGx6Zu76LuKID4gdG96YW5kZW5zaGFcIDsKK+aaq+WumuaUv+W6nCA+IHphbnRlaXNlaWZ1XCA7CivkuZflkIjppqzou4ogPiBub3JpYWliYXNoYVwgOwor5pyf5oiQ5ZCM55ufID4ga2lzZWlkb3VtZWlcIDsKK+aVo+WFieaYn+mbsiA+IHNhbmtvdXNlaXVuXCA7Civpo6LppJPnmYLms5UgPiBraWdhcnlvdWhvdVwgOwor57O45YGP5pmv5rCXID4gaXRvaGVua2Vpa2lcIDsKK+eJqeS+oeWkieWLlSA+IGJ1a2thaGVuZG91XCA7Civov5Hpg4rpg73luIIgPiBraW5rb3V0b3NoaVwgOwor5YWs6ZaL5pyf6ZaTID4ga291a2Fpa2lrYW5cIDsKK+WJjeW+jOS4jeimmiA+IHplbmdvZnVrYWt1XCA7CivmupblgpnkvZPmk40gPiBqdW5iaXRhaXNvdVwgOwor5q+N57O75a625pePID4gYm9rZWlrYXpva3VcIDsKK+atr+enkeWMu+ihkyA+IHNoaWthaWp1dHN1XCA7Civph5HnrqHmpb3lmaggPiBraW5rYW5nYWtraVwgOwor5YiH56OL55Ci56OoID4gc2Vzc2F0YWt1bWFcIDsKK+S4gOaZguino+mbhyA+IGljaGlqaWthaWtvXCA7CivpgYvou6Los4fph5EgPiB1bnRlbnNoaWtpblwgOwor5aGR5oCn6ZmQ55WMID4gc29zZWlnZW5rYWlcIDsKK+mHkeaoqeaUv+ayuyA+IGtpbmtlbnNlaWppXCA7CivpmLLlvqHpg6jpmoogPiBib3VneW9idXRhaVwgOwor6Z2Z5q2i6KGb5pifID4gc2Vpc2hpZWlzZWlcIDsKK+WGjeW6puWNlOitsCA+IHNhaWRva3lvdWdpXCA7CivkuIDliIflkIjosqEgPiBpc3NhaWdhc3NhaVwgOwor6YG655Sj55u457aaID4gaXNhbnNvdXpva3VcIDsKK+WhkeaAp+WkieW9oiA+IHNvc2VpaGVua2VpXCA7CivkuIDlpKnlm5vmtbcgPiBpdHRlbnNoaWthaVwgOwor6Z+z6Z+/5Yq55p6cID4gb25reW91a291a2FcIDsKK+WNmOacrOS9jeaApyA+IHRhbmhvbicnaXNlaVwgOwor6Zuy5pWj6Zyn5raIID4gdW5zYW5tdXNob3VcIDsKK+WFqOS9k+S4u+e+qSA+IHplbnRhaXNodWdpXCA7CivlgZzmraLmmYLplpMgPiB0ZWlzaGlqaWthblwgOwor5L2O56m66aOb6KGMID4gdGVpa3V1aGlrb3VcIDsKK+aUr+W6pumDqOWxiyA+IHNoaXRha3ViZXlhXCA7CivliqDlt6Xosr/mmJMgPiBrYWtvdWJvdWVraVwgOwor6KGb5pif5pS+6YCBID4gZWlzZWlob3Vzb3VcIDsKK+mbu+awl+WIhuinoyA+IGRlbmtpYnVua2FpXCA7Civpoqjoh7TlnLDljLogPiBmdXVjaGljaGlrdVwgOwor5a+G6ZaJ5a655ZmoID4gbWlwcGVpeW91a2lcIDsKK+mAo+W4r+WCteWLmSA+IHJlbnRhaXNhaW11XCA7Civph5HliZvolqnloJUgPiBrb25nb3VzYXR0YVwgOwor5LiA5Lq65aSp5LiLID4gaGl0b3JpZGVua2FcIDsKK+aZgumWk+WPjei7oiA+IGppa2FuaGFudGVuXCA7Civopb/mrKfmlofmmI4gPiBzZWlvdWJ1bm1laVwgOwor5LiL6YOo57WE57mUID4ga2FidXNvc2hpa2lcIDsKK+ebuOS5l+WKueaenCA+IHNvdWpvdWtvdWthXCA7CivmsLTlubPot53pm6IgPiBzdWloZWlreW9yaVwgOwor6LuN5YKZ5pKk5buDID4gZ3VuYml0ZXBwYWlcIDsKK+WbuuacieWQjeipniA+IGtveXV1bWVpc2hpXCA7CivkurrplpPnlo7lpJYgPiBuaW5nZW5zb2dhaVwgOwor5pyJ5qmf5YyW5a2mID4geXV1a2lrYWdha3VcIDsKK+S7sumWk+WApOautSA+IG5ha2FtYW5lZGFuXCA7CivmuKnmlYXnn6XmlrAgPiBvbmtvY2hpc2hpblwgOwor5pqX6KaW6KOF572uID4gYW5zaGlzb3VjaGlcIDsKK+WbveWutuippumokyA+IGtva2thc2hpa2VuXCA7CivpnZLmnpzluILloLQgPiBzZWlrYWljaGliYVwgOwor5rCR5LqL6KOB5YikID4gbWluamlzYWliYW5cIDsKK+WOn+WtkOWFteWZqCA+IGdlbnNoaWhlaWtpXCA7Civogq/lrprlv5znrZQgPiBrb3V0ZWlvdXRvdVwgOwor5aSJ5pu05LiN6IO9ID4gaGVua291ZnVub3VcIDsKK+e0gOWLouacrOe3miA+IGtpc2VpaG9uc2VuXCA7Civpurvoo4/ojYnlsaUgPiBhc2F1cmF6b3VyaVwgOwor5Y+w5rm+5Z2K5Li7ID4gdGFpd2FuYm91enVcIDsKK+Wto+WIiumbkeiqjCA+IGtpa2FuemFzc2hpXCA7CivljZfpmL/miKbkuokgPiBuYW4nJ2FzZW5zb3VcIDsKK+eEoee3muWRqOazoiA+IG11c2Vuc2h1dWhhXCA7CivplbfmnJ/ph5HliKkgPiBjaG91a2lraW5yaVwgOwor6aOb6KGM5qmf562JID4gaGlrb3VraW5hZG9cIDsKK+WCgOWEoeaUv+W6nCA+IGthaXJhaXNlaWZ1XCA7CivluILlpJbpm7voqbEgPiBzaGlnYWlkZW53YVwgOwor6YCj6YKm5pS/5bqcID4gcmVucG91c2VpZnVcIDsKK+aUvuatjOmrmOWQnyA+IGhvdWtha291Z2luXCA7Civlvq7ph4/lhYPntKAgPiBiaXJ5b3VnZW5zb1wgOwor6Iux5a2X5paw6IGeID4gZWlqaXNoaW5idW5cIDsKK+a6gOi6q+WJteeXjSA+IG1hbnNoaW5zb3VpXCA7CivnrKzkuozntYTlkIggPiBkYWluaWt1bWlhaVwgOwor5amm5Lq66K2m5a6YID4gZnVqaW5rZWlrYW5cIDsKK+esrOS4ieS4lueVjCA+IGRhaXNhbnNla2FpXCA7Civmr5jmspnploDlpKkgPiBiaXNoYW1vbnRlblwgOwor56S+5Lya5Li7576pID4gc2hha2Fpc2h1Z2lcIDsKK+WtpuS9jeirluaWhyA+IGdha3Vpcm9uYnVuXCA7CivnpL7kuqTovp7ku6QgPiBzaGFrb3VqaXJlaVwgOwor5b605YW15b+M6YG/ID4gY2hvdWhlaWtpaGlcIDsKK+apn+S8muWdh+etiSA+IGtpa2Fpa2ludG91XCA7Civmmqvlrprmjqrnva4gPiB6YW50ZWlzb2NoaVwgOwor5pa55ZCR6Z+z55e0ID4gaG91a291b25jaGlcIDsKK+S4lueVjOmKgOihjCA+IHNla2FpZ2lua291XCA7CivlhajmqKnlp5Tku7sgPiB6ZW5rZW4nJ2luaW5cIDsKK+iHqueEtuiogOiqniA+IHNoaXplbmdlbmdvXCA7CivoqoflpKflpoTmg7MgPiBrb2RhaW1vdXNvdVwgOwor5YyW57Kn6YGT5YW3ID4ga2VzaG91ZG91Z3VcIDsKK+S4jeWkieizh+acrCA+IGZ1aGVuc2hpaG9uXCA7Civos57lkbPmnJ/pmZAgPiBzaG91bWlraWdlblwgOwor5b+D6IeT5aSW56eRID4gc2hpbnpvdWdla2FcIDsKK+W5vuS9lee0muaVsCA+IGtpa2FreXV1c3V1XCA7CivkuInpg6jlkIjlpY8gPiBzYW5idWdhc3NvdVwgOwor6JKZ5Y+k5Lq656iuID4gbW91a29qaW5zaHVcIDsKK+mbu+awl+WMluWtpiA+IGRlbmtpa2FnYWt1XCA7CivosYbohZDkuIDkuIEgPiB0b3VmdWl0Y2hvdVwgOwor5raI6LK76YO95biCID4gc2hvdWhpdG9zaGlcIDsKK+S4gOS4gOOAh+eVqiA+IGh5YWt1dG9vYmFuXCA7Civlrrbml4/liLbluqYgPiBrYXpva3VzZWlkb1wgOwor55Sf5a2Y5pyf6ZaTID4gc2Vpem9ua2lrYW5cIDsKK+mHjuiJr+S7leS6iyA+IG5vcmFzaGlnb3RvXCA7Civml6XkvIrovp7lhbggPiBuaWNoaWlqaXRlblwgOwor5LiN5q2j5LmX6LuKID4gZnVzZWlqb3VzaGFcIDsKK+iqv+afu+e1kOaenCA+IGNob3VzYWtla2thXCA7CivkuI3lvZPlu4nlo7IgPiBmdXRvdXJlbmJhaVwgOwor5ruF5aSa55+i6bGIID4gbWV0dGF5YXRhcmFcIDsKK+WJjeS6uuacqui4jyA+IHplbmppbm1pdG91XCA7CivkuI3lvZPliKnlvpcgPiBmdXRvdXJpdG9rdVwgOwor5Zue5pWZ5a+66ZmiID4ga2Fpa3lvdWppaW5cIDsKK+i7jeS6i+iok+e3tCA+IGd1bmppa3VucmVuXCA7Civnt4/lkIjlj6PluqcgPiBzb3Vnb3Vrb3V6YVwgOwor6YOh55yM5Yi25bqmID4gZ3Vua2Vuc2VpZG9cIDsKK+S9v+eUqOWPr+iDvSA+IHNoaXlvdWthbm91XCA7CivlhoXpg6jnlZnkv50gPiBuYWlidXJ5dXVob1wgOwor5YaN6LKp5Yi25bqmID4gc2FpaGFuc2VpZG9cIDsKK+iiq+mBuOaMmeaoqSA+IGhpc2Vua3lva2VuXCA7CivniankvqHntbHliLYgPiBidWtrYXRvdXNlaVwgOwor5Zug5pWw5YiG6KejID4gaW5zdXVidW5rYWlcIDsKK+eUn+eUn+a1gei7oiA+IHNlaXNlaXJ1dGVuXCA7CivnhKHnn6XokpnmmKcgPiBtdWNoaW1vdW1haVwgOwor5aCV6JC95Z2K5Li7ID4gZGFyYWt1Ym91enVcIDsKK+iInuWPsOW6puiDuCA+IGJ1dGFpZG9reW91XCA7Civms7Dopb/lkI3nlLsgPiB0YWlzZWltZWlnYVwgOwor5rOV5rK75Zu95a62ID4gaG91Y2hpa29ra2FcIDsKK+WEquWFiOmghuS9jSA+IHl1dXNlbmp1bicnaVwgOwor5Y2Y5L2N57WE5ZCIID4gdGFuJydpa3VtaWFpXCA7CivnrqHnkIbmg4XloLEgPiBrYW5yaWpvdWhvdVwgOwor5a6M5YWo5Li7576pID4ga2FuemVuc2h1Z2lcIDsKK+S4g+S4jeaAneitsCA+IG5hbmFmdXNoaWdpXCA7CivloLHlvqnooYzngrogPiBob3VmdWt1a291aVwgOwor5a6j5Lyd5paH5Y+lID4gc2VuZGVubW9ua3VcIDsKK+S6jOaIkOaWh+ezuyA+IG5pc2VpYnVua2VpXCA7CivkvZPlhoXmmYLoqIggPiB0YWluYWlkb2tlaVwgOwor5Yy655S75pW055CGID4ga3VrYWt1c2VpcmlcIDsKK+e1guWknOmBi+i7oiA+IHNodXV5YXVudGVuXCA7CivliqDpgJ/pgYvli5UgPiBrYXNva3V1bmRvdVwgOwor5a++5oqX6YOo6ZqKID4gdGFpa291YnV0YWlcIDsKK+e1kOWpmuiyu+eUqCA+IGtla2tvbmhpeW91XCA7Civou43kuovmlL/mqKkgPiBndW5qaXNlaWtlblwgOwor5pyJ5qmf6L6y5rOVID4geXV1a2lub3Vob3VcIDsKK+mYsuihm+mDqOmVtyA+IGJvdWVpYnVjaG91XCA7CivpgYvllrbos4fph5EgPiB1bicnZWlzaGlraW5cIDsKK+aciOimi+iVjum6piA+IHRzdWtpbWlzb2JhXCA7CivkurrnlJ/oiKrot68gPiBqaW5zZWlrb3Vyb1wgOwor55Sf5ZG95L+d6Zm6ID4gc2VpbWVpaG9rZW5cIDsKK+W/nOaApeaJi+W9kyA+IG91a3l1dXRlYXRlXCA7CivmnInlvaLnhKHlvaIgPiB5dXVrZWltdWtlaVwgOwor5Y+X5L+h5Zue6LevID4ganVzaGlua2Fpcm9cIDsKK+WPguiAg+Wbs+abuCA+IHNhbmtvdXRvc2hvXCA7Civoi7Hpm4TltIfmi50gPiBlaXl1dXN1dWhhaVwgOwor5Y+X6aiT55Wq5Y+3ID4ganVrZW5iYW5nb3VcIDsKK+mHjei+suS4u+e+qSA+IGp1dW5vdXNodWdpXCA7Civorbflm73npZ7npL4gPiBnb2tva3VqaW5qYVwgOwor5piO5rK756We5a6uID4gbWVpamlqaW5ndXVcIDsKK+WwkeaVsOaEj+imiyA+IHNob3VzdXVpa2VuXCA7Civmr5Tnv7zpgKPnkIYgPiBoaXlva3VyZW5yaVwgOwor5pyJ5pyf5bm06YeRID4geXV1a2luZW5raW5cIDsKK+S6jOWFg+aUvumAgSA+IG5pZ2VuaG91c291XCA7Civoh6rkv6HpgY7libAgPiBqaXNoaW5rYWpvdVwgOwor5aWJ57SN55u45pKyID4gaG91bm91enVtb3VcIDsKK+S6uui6q+W+oeS+myA+IGhpdG9taWdva3V1XCA7Civkv53orbfmpJzmnZ8gPiBob2dva2Vuc29rdVwgOwor5YiG55yM5Zyw5ZuzID4gYnVua2VuY2hpenVcIDsKK+mYv+irm+i/veW+kyA+IGF5dXRzdWlzaG91XCA7Civpm7vlhYnnn7PngasgPiBkZW5rb3VzZWtrYVwgOwor5rOi54C+5LiH5LiIID4gaGFyYW5iYW5qb3VcIDsKK+ebuOS6kumWouS/giA+IHNvdWdva2Fua2VpXCA7CivlhoXpg6jku5Xmp5ggPiBuYWlidXNoaXlvdVwgOwor55qu5LiL5rOo5bCEID4gaGlrYWNodXVzaGFcIDsKK+S5vueHpemHjuiPnCA+IGthbnNvdXlhc2FpXCA7Civnn63mqZ/plqLpioMgPiB0YW5raWthbmp1dVwgOwor54++5Zyw5pmC6ZaTID4gZ2VuY2hpamlrYW5cIDsKK+S4gOetiei7jeabuSA+IGl0dG91Z3Vuc291XCA7Civlrrbluq3nlKjlk4EgPiBrYXRlaXlvdWhpblwgOwor6Ymx5bGx5oqA5birID4ga291emFuZ2lzaGlcIDsKK+S4gOWtkOebuOS8nSA+IGlzc2hpc291ZGVuXCA7CivmmYLpmZDnq4vms5UgPiBqaWdlbnJpcHBvdVwgOwor5oSb5Yil6Zui6IumID4gYWliZXRzdXJpa3VcIDsKK+WbuuWumuizh+eUoyA+IGtvdGVpc2hpc2FuXCA7Civlkozni6zovp7lhbggPiB3YWRva3VqaXRlblwgOwor55m75qCh5ouS5ZCmID4gdG91a291a3lvaGlcIDsKK+a8lOWlj+aXheihjCA+IGVuc291cnlva291XCA7Civmm7jnlLvpqqjokaMgPiBzaG9nYWtvdHRvdVwgOwor6YGL5YuV6YG45omLID4gdW5kb3VzZW5zaHVcIDsKK+WtpuWckumDveW4giA+IGdha3VlbnRvc2hpXCA7CivmnbHmtIvkuLvnvqkgPiB0b3V5b3VzaHVnaVwgOwor5aSn6aKo5ZGC5pW3ID4gb29idXJvc2hpa2lcIDsKK+acieiTi+iyqOi7iiA+IHl1dWdhaWthc2hhXCA7CivmlL/msrvos4fph5EgPiBzZWlqaXNoaWtpblwgOwor6KiA6KuW5qmf6ZaiID4gZ2Vucm9ua2lrYW5cIDsKK+mkiuitt+WtpuagoSA+IHlvdWdvZ2Fra291XCA7CivotbDooYzmmYLplpMgPiBzb3Vrb3VqaWthblwgOwor6KmV5L6h5Z+65rqWID4gaHlvdWtha2lqdW5cIDsKK+aWsOiBnuiomOS6iyA+IHNoaW5idW5raWppXCA7CivlpKvllLHlqabpmo8gPiBmdXNob3VmdXp1aVwgOwor6Zu75a2Q6L6e5pu4ID4gZGVuc2hpamlzaG9cIDsKK+WQjOaZgumMsumfsyA+IGRvdWppcm9rdW9uXCA7CivnrqHnkIbnpL7kvJogPiBrYW5yaXNoYWthaVwgOwor5LiA6KaW5ZCM5LuBID4gaXNzaGlkb3VqaW5cIDsKK+S4gOimluWQjOS6uiA+IGlzc2hpZG91amluXCA7Civmp4vpgKDlpInljJYgPiBrb3V6b3VoZW5rYVwgOwor5aWz5rWB5L2c5a62ID4gam9yeXV1c2Fra2FcIDsKK++8ke+8ke+8kOeVqiA+IGh5YWt1dG9vYmFuXCA7Civlj7jms5XliLbluqYgPiBzaGlob3VzZWlkb1wgOwor5Yuk5YuZ5Lqk5LujID4ga2lubXVrb3V0YWlcIDsKK+efree3qOaYoOeUuyA+IHRhbnBlbicnZWlnYVwgOwor5Lya5ZOh6KaP57SEID4ga2FpaW5raXlha3VcIDsKK+S6jOeCueWFiOWPliA+IG5pdGVuc2Vuc2h1XCA7Civlj43miKbkuLvnvqkgPiBoYW5zZW5zaHVnaVwgOwor5pq06JmO6aau5rKzID4gYm91a29oeW91Z2FcIDsKK+W3puiFleaKleaJiyA+IHNhd2FudG91c2h1XCA7CivliY3mnJ/oqabpqJMgPiB6ZW5raXNoaWtlblwgOwor6KKr6YG45oyZ5Lq6ID4gaGlzZW5reW9uaW5cIDsKK+iDjOW+jOmWouS/giA+IGhhaWdva2Fua2VpXCA7CivppJPprLzlpKflsIYgPiBnYWtpZGFpc2hvdVwgOwor55Wq5Y+36KiY5Y+3ID4gYmFuZ291a2lnb3VcIDsKK+WIkeS6i+ijnOWEnyA+IGtlaWppaG9zaG91XCA7CivkuIDkvZPlhajkvZMgPiBpdHRhaXplbnRhaVwgOwor5rW36YGL5ZCM55ufID4ga2FpdW5kb3VtZWlcIDsKK+WwguWuiOmYsuihmyA+IHNlbnNodWJvdWVpXCA7CivljZfpmL/pgKPpgqYgPiBuYW4nJ2FyZW5wb3VcIDsKK+eZuuihjOmDqOaVsCA+IGhha2tvdWJ1c3V1XCA7CivliJHkuovoo4HliKQgPiBrZWlqaXNhaWJhblwgOwor5YWs5bmz54Sh56eBID4ga291aGVpbXVzaGlcIDsKK+eJqeS+oeaMh+aVsCA+IGJ1a2thc2hpc3V1XCA7CivliJHkuovooqvlkYogPiBrZWlqaWhpa29rdVwgOwor6KiY6ICF5Lya6KaLID4ga2lzaGFrYWlrZW5cIDsKK+W+k+i7jeiomOiAhSA+IGp1dWd1bmtpc2hhXCA7CivnqbrmsJfmirXmipcgPiBrdXVraXRlaWtvdVwgOwor54++6YeR5q2j5L6hID4gZ2Vua2luc2Vpa2FcIDsKK+Wkp+WQjOWwj+eVsCA+IGRhaWRvdXNob3VpXCA7CivnlJ/lkb3lgKvnkIYgPiBzZWltZWlyaW5yaVwgOwor6aeG5YuV6KOF572uID4ga3Vkb3Vzb3VjaGlcIDsKK+WNg+i7jeS4h+mmrCA+IHNlbmd1bmJhbmJhXCA7CivlpInlubvoh6rlnKggPiBoZW5nZW5qaXphaVwgOwor55u45a++5Li7576pID4gc291dGFpc2h1Z2lcIDsKK+i7jeWMu+WtpuagoSA+IGd1bicnaWdha2tvdVwgOwor6YO95rCR5Lya6aSoID4gdG9taW5rYWlrYW5cIDsKK+W4guWgtOS+oeWApCA+IHNoaWpvdWthY2hpXCA7CivlubPlkozoq5bogIUgPiBoZWl3YXJvbnNoYVwgOwor5bC/57Sg5qi56ISCID4gbnlvdXNvanVzaGlcIDsKK+aOg+mZpOW9k+eVqiA+IHNvdWppdG91YmFuXCA7Civku6PnkIbmiKbkuokgPiBkYWlyaXNlbnNvdVwgOwor5Zyw55uk5rKI5LiLID4gamliYW5jaGlua2FcIDsKK+ani+aIkOS4u+e+qSA+IGtvdXNlaXNodWdpXCA7CivmraPlpJrpnaLkvZMgPiBzZWl0YW1lbnRhaVwgOwor5LiA5YiH5ZCI5YiHID4gaXNzYWlnYXNzYWlcIDsKK+S/neeojuWcsOWfnyA+IGhvemVpY2hpaWtpXCA7Civkurrlk6HmlbTnkIYgPiBqaW4nJ2luc2VpcmlcIDsKK+S6uumWk+S7peWJjSA+IG5pbmdlbicnaXplblwgOwor5bmz6Z2i5Zuz5b2iID4gaGVpbWVuenVrZWlcIDsKK+Wuh+WumeaXheihjCA+IHVjaHV1cnlva291XCA7CivojZjlnJLliLbluqYgPiBzaG91ZW5zZWlkb1wgOwor6Ieq56S+6KO95ZOBID4gamlzaGFzZWloaW5cIDsKK+WIneacn+autemajiA+IHNob2tpZGFua2FpXCA7CivliY3pgJTpgbzpgaAgPiB6ZW50b3J5b3VlblwgOwor6LWk6JGh6JCE6YWSID4gYWthYnVkb3VzaHVcIDsKK+WOn+Wni+aZguS7oyA+IGdlbnNoaWppZGFpXCA7Civlj4LorIDmnKzpg6ggPiBzYW5ib3Vob25idVwgOwor5aWz5a2Q5aSn55SfID4gam9zaGlkYWlzZWlcIDsKK+aOkuWklumBi+WLlSA+IGhhaWdhaXVuZG91XCA7CivmsLTlubPpo5vooYwgPiBzdWloZWloaWtvdVwgOwor5L2O5Zue6Laj5ZGzID4gdGVpa2Fpc2h1bWlcIDsKK+S6kuaBteiyv+aYkyA+IGdva2VpYm91ZWtpXCA7CivkurrplpPku6XkuIogPiBuaW5nZW4nJ2lqb3VcIDsKK+WCsuaFoueEoeekvCA+IGdvdW1hbmJ1cmVpXCA7CivlvpLmiYvnqbrmi7MgPiB0b3NodWt1dWtlblwgOwor5Lqc54Kt5YyW54mpID4gYXRhbmthYnV0c3VcIDsKK+awtOazs+Wkp+S8miA+IHN1aWVpdGFpa2FpXCA7CivnlLflpbPlkIzmqKkgPiBkYW5qb2RvdWtlblwgOwor5bm06YeR5Yi25bqmID4gbmVua2luc2VpZG9cIDsKK+epuui7jeWfuuWcsCA+IGt1dWd1bmtpY2hpXCA7CivlpKflkozmmYLku6MgPiB5YW1hdG9qaWRhaVwgOwor5bid546L5YiH6ZaLID4gdGVpb3VzZWtrYWlcIDsKK+WPjeaUv+W6nOWFmiA+IGhhbnNlaWZ1dG91XCA7CivomY7oppbnnIjjgIUgPiBrb3NoaXRhbnRhblwgOwor5q2v56eR55eF6ZmiID4gc2hpa2FieW91aW5cIDsKK+i8ieiyqOWxr+aVsCA+IHNhaWthdG9uc3V1XCA7Civoq5boqqzlp5Tlk6EgPiByb25zZXRzdWlpblwgOwor5Yud5omL5qyh56ysID4ga2F0dGVzaGlkYWlcIDsKK+epuuaMuumaiuWToSA+IGt1dXRlaXRhaWluXCA7Civoh6rnlLHntYzmuIggPiBqaXl1dWtlaXphaVwgOwor6LKh5pS/56C057a7ID4gemFpc2VpaGF0YW5cIDsKK+aUv+ayu+eMrumHkSA+IHNlaWppa2Vua2luXCA7CivmiYvplpPku5XkuosgPiB0ZW1hc2hpZ290b1wgOwor5LiA5pys5Yud6LKgID4gaXBwb25zaG91YnVcIDsKK+S4remAlOWNiuerryA+IGNodXV0b2hhbnBhXCA7CivpgJrpgY7lhIDnpLwgPiB0c3V1a2FnaXJlaVwgOwor6Iux5a2X6ZuG5ZCIID4gZWlqaXNodXVnb3VcIDsKK+e9suWQjemBi+WLlSA+IHNob21laXVuZG91XCA7CivloZHmgKfmjIfmlbAgPiBzb3NlaXNoaXN1dVwgOwor5ZCI5ZCM5Yq057WEID4gZ291ZG91cm91c29cIDsKK+S4u+euoeapn+mWoiA+IHNodWthbmtpa2FuXCA7CivlpKnmsJfpg73lkIggPiB0ZW5raXRzdWdvdVwgOwor5YW15Zmo5bel5aC0ID4gaGVpa2lrb3Vqb3VcIDsKK+W5s+awkeS4u+e+qSA+IGhlaW1pbnNodWdpXCA7Civlrrbml4/kvJrorbAgPiBrYXpva3VrYWlnaVwgOwor5rib5YK15Z+66YeRID4gZ2Vuc2Fpa2lraW5cIDsKK+elluWFiOW0h+aLnSA+IHNvc2Vuc3V1aGFpXCA7CivkuovlpKfmgJ3mg7MgPiBqaWRhaXNoaXNvdVwgOwor5Zyw5aC055Sj5qWtID4gamliYXNhbmd5b3VcIDsKK+mAo+mCpuWbveWutiA+IHJlbnBvdWtva2thXCA7Civnq4vmhrLkuLvnvqkgPiByaWtrZW5zaHVnaVwgOwor5YWr5pa5576O5Lq6ID4gaGFwcG91YmlqaW5cIDsKK+S4lueVjOaDheWLoiA+IHNla2Fpam91c2VpXCA7CivkuI3lv6vmjIfmlbAgPiBmdWthaXNoaXN1dVwgOwor6YGg5rSL6Iiq6LevID4gZW4nJ3lvdWtvdXJvXCA7Civlm73lrrbntYzmuIggPiBrb2trYWtlaXphaVwgOwor6Ieo5pmC5aKX5YiKID4gcmluaml6b3VrYW5cIDsKK+WFrOatpuWQiOS9kyA+IGtvdWJ1Z2F0dGFpXCA7CivkuojorprmnKznt5ogPiB5b3NhbmhvbnNlblwgOwor5qC55pys5Li7576pID4ga29ucG9uc2h1Z2lcIDsKK+mdnuW4uOitpuaIkiA+IGhpam91a2Vpa2FpXCA7CivkuK3lpK7mlL/lupwgPiBjaHV1b3VzZWlmdVwgOwor5Yi654q256qB6LW3ID4gc2hpam91dG9ra2lcIDsKK+WFrOeahOaJtuWKqSA+IGtvdXRla2lmdWpvXCA7CivlkIjmiJDmqLnohIIgPiBnb3VzZWlqdXNoaVwgOwor5Ymy6LOm6LO86LK3ID4ga2FwcHVrb3ViYWlcIDsKK+acquadpeaMh+WQkSA+IG1pcmFpc2hpa291XCA7Civoh6rnlLHmlL7ku7sgPiBqaXl1dWhvdW5pblwgOwor6Ieq6Lui5ZGo5pyfID4gaml0ZW5zaHV1a2lcIDsKK+iHquW3seS4u+W8tSA+IGppa29zaHVjaG91XCA7CivljYPoqIDkuIfoqp4gPiBzZW5nZW5iYW5nb1wgOwor5b6S5q2p56u26LWwID4gdG9ob2t5b3Vzb3VcIDsKK+imquWWhOippuWQiCA+IHNoaW56ZW5qaWFpXCA7CivnqpLntKDlm7rlrpogPiBjaGlzc29rb3RlaVwgOwor5rW35LiK5L+d6Zm6ID4ga2Fpam91aG9rZW5cIDsKK+mjm+ihjOeUsuadvyA+IGhpa291a291YmFuXCA7CivmjIflsI7kuLvkuosgPiBzaGlkb3VzaHVqaVwgOwor55u45LqS6YqA6KGMID4gc291Z29naW5rb3VcIDsKK+i7jeWPuOS7pOmDqCA+IGd1bnNoaXJlaWJ1XCA7Civoq7jkuovkuIfnq68gPiBzaG9qaWJhbnRhblwgOwor5Yq054G95L+d6Zm6ID4gcm91c2FpaG9rZW5cIDsKK+aZgui8qumHkeWJmyA+IGppcmlua29uZ291XCA7CivmhI/msJfpirfmsoggPiBpa2lzaG91Y2hpblwgOwor6Zai56iO5Zue6YG/ID4ga2FuemVpa2FpaGlcIDsKK+aEj+awl+a2iOayiCA+IGlraXNob3VjaGluXCA7CivliY3kurrmnKrliLAgPiB6ZW5qaW5taXRvdVwgOwor5YWx5ZKM5Li7576pID4ga3lvdXdhc2h1Z2lcIDsKK+S6iOmYsuaIpuS6iSA+IHlvYm91c2Vuc291XCA7CivphbjmgKflnJ/lo4wgPiBzYW5zZWlkb2pvdVwgOwor5Lq66Lqr5L+d6K23ID4gamluc2hpbmhvZ29cIDsKK+W5tOmHkeS/nemZuiA+IG5lbmtpbmhva2VuXCA7CivmjIflkJHoqIDoqp4gPiBzaGlrb3VnZW5nb1wgOwor5beh5p+76YOo6ZW3ID4ganVuc2FidWNob3VcIDsKK+S/neiovOacn+mWkyA+IGhvc2hvdWtpa2FuXCA7CivkuI3ms5Xnm6PnpoEgPiBmdWhvdWthbmtpblwgOwor5b6h6Ium5Yq05qeYID4gZ29rdXJvdXNhbWFcIDsKK+ihjOS9j+W6p+iHpSA+IGd5b3VqdXV6YWdhXCA7Civoh6rmsrvlpKfoh6MgPiBqaWNoaWRhaWppblwgOwor56uL5L2T5Lqk5beuID4gcml0dGFpa291c2FcIDsKK+ernOmgreibh+WwviA+IHJ5dXV0b3VkYWJpXCA7CivlhYXpm7vmnJ/plpMgPiBqdXVkZW5raWthblwgOwor6KiY5oa25aqS5L2TID4ga2lva3ViYWl0YWlcIDsKK+mkiuitt+aVmeirrSA+IHlvdWdva3lvdXl1XCA7CivkurrmnKzkuLvnvqkgPiBqaW5wb25zaHVnaVwgOwor5rW35rSL5oqV5qOEID4ga2FpeW91dG91a2lcIDsKK+WSjOatjOWxseecjCA+IHdha2F5YW1ha2VuXCA7CivlpKrpmb3pm7vms6IgPiB0YWl5b3VkZW5wYVwgOwor55CG56eR5aSn5a2mID4gcmlrYWRhaWdha3VcIDsKK+i/keihm+W4q+WboyA+IGtvbm9lc2hpZGFuXCA7CivkuIDooaPluK/msLQgPiBpY2hpaXRhaXN1aVwgOwor6LOH5pys5Li7576pID4gc2hpaG9uc2h1Z2lcIDsKK+iHqueUsee1kOWpmiA+IGppeXV1a2Vra29uXCA7Civlv4XpoIjnp5Hnm64gPiBoaXNzdWthbW9rdVwgOwor6L+R5Luj5Li7576pID4ga2luZGFpc2h1Z2lcIDsKK+WuiOitt+WkqeS9vyA+IHNodWdvdGVuc2hpXCA7CivkvZzmpa3pg6jkvJogPiBzYWd5b3VidWthaVwgOwor6YO95biC5YaN55SfID4gdG9zaGlzYWlzZWlcIDsKK+W5vOeUn+WZqOWumCA+IHlvdXNlaWtpa2FuXCA7CivlvqHnlKjntYTlkIggPiBnb3lvdWt1bWlhaVwgOwor6LuN5LqL5ryU57+SID4gZ3VuamllbnNodXVcIDsKK+S6uumBk+S4u+e+qSA+IGppbmRvdXNodWdpXCA7CivliY3lj7LmmYLku6MgPiB6ZW5zaGlqaWRhaVwgOwor5rW35LiK5bCB6Y6WID4ga2Fpam91ZnV1c2FcIDsKK+aEj+WRs+a3semVtyA+IGltaXNoaW5jaG91XCA7CivkuqTpgJrpgZXlj40gPiBrb3V0c3V1aWhhblwgOwor5Zub5Y2B5YWr5omLID4geW9uanV1aGF0dGVcIDsKK+aJi+W3u+Wvv+WPuCA+IHRlbWFraXp1c2hpXCA7CivlhazplovorJvluqcgPiBrb3VrYWlrb3V6YVwgOwor54mH6KiA6Zq75Y+lID4gaGVuZ2Vuc2Vra3VcIDsKK+mrmOmWoueojuWMliA+IGtvdWthbnplaWthXCA7CivpgYvpgIHkvJrnpL4gPiB1bnNvdWdhaXNoYVwgOwor5p2x5a6u5b6h5omAID4gdG91Z3V1Z29zaG9cIDsKK+W7tua7nuWIqeaBryA+IGVudGFpcmlzb2t1XCA7Civngavngb3orabloLEgPiBrYXNhaWtlaWhvdVwgOwor57eP5oyH5o+u5a6YID4gc291c2hpa2lrYW5cIDsKK+aUvumAgeaZgumWkyA+IGhvdXNvdWppa2FuXCA7CivmnInlrrPnhKHnm4ogPiB5dXVnYWltdWVraVwgOwor5amm5Lq65ZWP6aGMID4gZnVqaW5tb25kYWlcIDsKK+aZtOiAlembqOiqrSA+IHNlaWtvdXVkb2t1XCA7CivlsIrnmofmlJjlpLcgPiBzb24nJ25vdWpvdWlcIDsKK+S4jeaWh+aGsuazlSA+IGZ1YnVua2VucG91XCA7CivkuIDlr7jms5XluKsgPiBpc3N1bmJvdXNoaVwgOwor5Y+v6IO95YuV6KmeID4ga2Fub3Vkb3VzaGlcIDsKK+WPpOS6i+adpeattCA+IGtvamlyYWlyZWtpXCA7Civlrozlhajpm4fnlKggPiBrYW56ZW5rb3lvdVwgOwor5Ymv6by76IWU54KOID4gZnVrdWJpa3V1ZW5cIDsKK+WkmuWFg+aUvumAgSA+IHRhZ2VuaG91c291XCA7CivmsJfmga/lpYTlpYQgPiBraXNva3VlbicnZW5cIDsKK+mHiOi/puWmguadpSA+IHNoYWthbnlvcmFpXCA7CivkuojntITlkI3nsL8gPiB5b3lha3VtZWlib1wgOwor5LiN6LK35ZCM55ufID4gZnViYWlkb3VtZWlcIDsKK+mdnuiyt+WQjOebnyA+IGhpYmFpZG91bWVpXCA7Civnm7jlr77mlazoqp4gPiBzb3V0YWlrZWlnb1wgOwor57WM5riI54m55Yy6ID4ga2VpemFpdG9ra3VcIDsKK+S7u+aEj+Wbo+S9kyA+IG5pbicnaWRhbnRhaVwgOwor5o6l5pW156e75YuVID4gc2V0dGVraWlkb3VcIDsKK+mwpeWvoeWtpOeLrCA+IGthbmtha29kb2t1XCA7Civnm7jlr77lo7LosrcgPiBhaXRhaWJhaWJhaVwgOwor54Sh5Lq65bel5aC0ID4gbXVqaW5rb3Vqb3VcIDsKK+S4jeaPm+e0meW5oyA+IGZ1a2Fuc2hpaGVpXCA7Civnm7jkuZfkvZznlKggPiBzb3Vqb3VzYXlvdVwgOwor5LqI566X5LiN6LazID4geW9zYW5mdXNva3VcIDsKK+iWrOeQhuS9nOeUqCA+IHlha3VyaXNheW91XCA7Civngrrmm7/nrqHnkIYgPiBrYXdhc2VrYW5yaVwgOwor5LqL5YmN5Y2U6K2wID4gamlzZW5reW91Z2lcIDsKK+WOmumhlOeEoeaBpSA+IGtvdWdhbm11Y2hpXCA7Civlronlhajoo4Xnva4gPiBhbnplbnNvdWNoaVwgOwor56m65rCX5oSf5p+TID4ga3V1a2lrYW5zZW5cIDsKK+awtOmBk+W3peS6iyA+IHN1aWRvdWtvdWppXCA7CivkuIDntJnljYrpiq0gPiBpc3NoaWhhbnNlblwgOwor5Y+N5bCE6YGL5YuVID4gaGFuc2hhdW5kb3VcIDsKK+Whqemhnua6tua2siA+IGVucnVpeW91ZWtpXCA7CivlpJbkurrpg6jpmoogPiBnYWlqaW5idXRhaVwgOwor5oud6YeR5Li7576pID4gaGFpa2luc2h1Z2lcIDsKK+eVsOS9k+WQjOW/gyA+IGl0YWlkb3VzaGluXCA7CivkuZfmlbDlirnmnpwgPiBqb3VzdXVrb3VrYVwgOwor5YWo55ub5pmC5LujID4gemVuc2VpamlkYWlcIDsKK+mdouWQkeS4jeiDjCA+IG1lbmtvdWZ1aGFpXCA7CivnqbrnkIbnqbroq5YgPiBrdXVyaWt1dXJvblwgOwor6Z2e5bi46ZqO5q61ID4gaGlqb3VrYWlkYW5cIDsKK+WCt+eXjei7jeS6uiA+IHNob3VpZ3VuamluXCA7CivmnIjos6bosqnlo7IgPiBnZXBwdWhhbmJhaVwgOwor5LiH5LiW5LiA57O7ID4gYmFuc2VpaWtrZWlcIDsKK+esrOS6jOmDqOmVtyA+IGRhaW5pYnVjaG91XCA7CivooYzlhIDkvZzms5UgPiBneW91Z2lzYWhvdVwgOwor6YeN5Yqg566X56iOID4ganV1a2FzYW56ZWlcIDsKK+S4gOW/g+S4jeS5sSA+IGlzc2hpbmZ1cmFuXCA7Civou43kuovoo4HliKQgPiBndW5qaXNhaWJhblwgOwor54Wn5piO5Zmo5YW3ID4gc2hvdW1laWtpZ3VcIDsKK+WxjemZgOael+eOiyA+IHNoaWRhcmluJydvdVwgOwor6YGO5Y675a6M5LqGID4ga2Frb2thbnJ5b3VcIDsKK+aIpuW+jOasp+W3niA+IHNlbmdvb3VzaHV1XCA7CivpppbohLPkvJrorbAgPiBzaHVub3VrYWlnaVwgOwor5a625bqt5paZ55CGID4ga2F0ZWlyeW91cmlcIDsKK+aXpeacrOmKgOihjCA+IG5paG9uZ2lua291XCA7CivpgaDkuqTov5HmlLsgPiBlbmtvdWtpbmtvdVwgOwor5peL5Zue6YGL5YuVID4gc2Vua2FpdW5kb3VcIDsKK+W4sOWbveWtkOWlsyA+IGtpa29rdXNoaWpvXCA7Civpm4zpm4Tmt5jmsbAgPiBzaGl5dXV0b3V0YVwgOwor6YqA5pys5L2N5Yi2ID4gZ2luaG9uJydpc2VpXCA7Civoh6rmpa3oh6rlvpcgPiBqaWdvdWppdG9rdVwgOwor5Li75qC86KOc6KqeID4gc2h1a2FrdWhvZ29cIDsKK+WCmOW9ouWZqOWumCA+IHNhbmtlaWtpa2FuXCA7Civpm7vljJboo73lk4EgPiBkZW5rYXNlaWhpblwgOwor6LOH55Sj5L6h5YCkID4gc2hpc2Fua2FjaGlcIDsKK+S4reWkruertummrCA+IGNodXVvdWtlaWJhXCA7CivotaTlrZfosqHmlL8gPiBha2FqaXphaXNlaVwgOwor5pS/5rK75Lqh5ZG9ID4gc2Vpamlib3VtZWlcIDsKK+S6lOWNgeW5tOelrSA+IGdvanV1bmVuc2FpXCA7Civpgbrml4/lubTph5EgPiBpem9rdW5lbmtpblwgOwor5Lq65bel5qCE6aSKID4gamlua291ZWl5b3VcIDsKK+aTrOWPpOWFuOeahCA+IGdpa290ZW50ZWtpXCA7Civpm7vmsJfkvJrnpL4gPiBkZW5raWdhaXNoYVwgOwor5rCX6ZqP5rCX5YSYID4ga2l6dWlraW1hbWFcIDsKK+eEoeWPjeWLlemKgyA+IG11aGFuZG91anV1XCA7CivpgaDlv4PliIbpm6IgPiBlbnNoaW5idW5yaVwgOwor5aC05aSW6aas5Yi4ID4gam91Z2FpYmFrZW5cIDsKK+mdkuW5tOaZguS7oyA+IHNlaW5lbmppZGFpXCA7Civoh6rnlLHllY/poYwgPiBqaXl1dW1vbmRhaVwgOwor5ryr55S76ZuR6KqMID4gbWFuZ2F6YXNzaGlcIDsKK+S6nOmJm+S4reavkiA+IGFlbmNodXVkb2t1XCA7CivnpZblhYjkvJ3mnaUgPiBzb3NlbmRlbnJhaVwgOwor5LiA5YWa5pSv6YWNID4gaXR0b3VzaGloYWlcIDsKK+S4u+ims+S4u+e+qSA+IHNodWthbnNodWdpXCA7CivlkbzlkLjlmajns7sgPiBrb2t5dXVraWtlaVwgOwor54K65pu/5oqV5qmfID4ga2F3YXNldG91a2lcIDsKK+S4gOefpeWNiuinoyA+IGl0Y2hpaGFua2FpXCA7CivkuI3lrprlhqDoqZ4gPiBmdXRlaWthbnNoaVwgOwor5Luj6K2w5pS/5L2TID4gZGFpZ2lzZWl0YWlcIDsKK+W5s+WSjOaUu+WLoiA+IGhlaXdha291c2VpXCA7CivkvY7kvqHmoLzljJYgPiB0ZWlrYWtha3VrYVwgOwor6IKY5o6b5qSF5a2QID4gaGlqaWtha2Vpc3VcIDsKK+WFrOWLmeeBveWusyA+IGtvdW11c2FpZ2FpXCA7Civmma/msJflvqrnkrAgPiBrZWlraWp1bmthblwgOwor6Zai5L+C5rOV6KaPID4ga2Fua2VpaG91a2lcIDsKK+izgOipnuS6pOaPmyA+IGdhc2hpa291a2FuXCA7CivogJXlnLDmlbTnkIYgPiBrb3VjaGlzZWlyaVwgOwor6KGo6KOP5LiA5L2TID4gaHlvdXJpaXR0YWlcIDsKK+WltOmat+ino+aUviA+IGRvcmVpa2FpaG91XCA7CivpmL/lpJrnpo/osYYgPiBvdGFmdWt1bWFtZVwgOwor5LyB5qWt5pW05YKZID4ga2lneW91c2VpYmlcIDsKK+i7jeS6i+ihjOWLlSA+IGd1bmppa291ZG91XCA7CivlnLDmlrnoh6rmsrsgPiBjaGlob3VqaWNoaVwgOwor5LiW5L+X5Li7576pID4gc2V6b2t1c2h1Z2lcIDsKK+mrmOeCree0oOmLvCA+IGtvdXRhbnNva291XCA7CivmnInmqZ/ogqXmlpkgPiB5dXVraWhpcnlvdVwgOwor5q+U5L6L6YWN5YiGID4gaGlyZWloYWlidW5cIDsKK+WPjeWvvumBi+WLlSA+IGhhbnRhaXVuZG91XCA7Civmt7vku5jmm7jpoZ4gPiB0ZW5wdXNob3J1aVwgOwor5oGL5oSb6YGK5oivID4gcmVuJydhaXl1dWdpXCA7CivmipXlsITljp/nkIYgPiB0b3VzaGFnZW5yaVwgOwor5aSn6KiA5aOu6KqeID4gdGFpZ2Vuc291Z29cIDsKK+mHkeacrOS9jeWItiA+IGtpbmhvbicnaXNlaVwgOwor6YCg6Kqe5oiQ5YiGID4gem91Z29zZWlidW5cIDsKK+eZvuenkei+nuWFuCA+IGh5YWtrYWppdGVuXCA7CivkuIfku6PkuI3mmJMgPiBiYW5kYWlmdWVraVwgOwor5Y2x6Zm66KeS5bqmID4ga2lrZW5rYWt1ZG9cIDsKK+WMluWtpuWFteWZqCA+IGthZ2FrdWhlaWtpXCA7CivmvKLlrZfliLbpmZAgPiBrYW5qaXNlaWdlblwgOwor5bm05Yqf5Yi25bqmID4gbmVua291c2VpZG9cIDsKK+a1t+W6leeBq+WxsSA+IGthaXRlaWthemFuXCA7CivpmpTpnbTmjrvnl5IgPiBrYWtrYXNvdXlvdVwgOwor6Z2e5oim6KuW6ICFID4gaGlzZW5yb25zaGFcIDsKK+S4h+S4luS4jeaYkyA+IGJhbnNlaWZ1ZWtpXCA7Civlho3nlJ/nuYrntq0gPiBzYWlzZWlzZW4nJ2lcIDsKK+mBi+i7ouezu+e1sSA+IHVudGVua2VpdG91XCA7Civku7vmhI/lkIzooYwgPiBuaW4nJ2lkb3Vrb3VcIDsKK+iHqOaZguWbveS8miA+IHJpbmppa29ra2FpXCA7CivoqabpqJPmnJ/plpMgPiBzaGlrZW5raWthblwgOwor5bm05Yqf5Yqg5L+4ID4gbmVua291a2Fob3VcIDsKK+W/nOaPtOWbo+mVtyA+IG91ZW5kYW5jaG91XCA7Civou43ljLvnt4/nm6MgPiBndW4nJ2lzb3VrYW5cIDsKK+aFiOWWhOWbo+S9kyA+IGppemVuZGFudGFpXCA7Civoh6rnv5LmmYLplpMgPiBqaXNodXVqaWthblwgOwor5Zu95a626KOc5YSfID4ga29ra2Fob3Nob3VcIDsKK+ebm+iAheW/heihsCA+IHNlaWphaGlzc3VpXCA7CivkurrmlofkuLvnvqkgPiBqaW5idW5zaHVnaVwgOwor6Zu76Kmx55Wq5Y+3ID4gZGVud2FiYW5nb3VcIDsKK+eQhuirluS9k+ezuyA+IHJpcm9udGFpa2VpXCA7Civml6XmnKzmtbfmup0gPiBuaWhvbmthaWtvdVwgOwor57WM5bi45Yip55uKID4ga2Vpam91cmlla2lcIDsKK+W8leiyrOi+nuS7uyA+IGluc2VraWppbmluXCA7Civlh6blpbPoiKrmtbcgPiBzaG9qb2tvdWthaVwgOwor5LiA6LuS5LiA6LuSID4gaWtrZW4nJ2lra2VuXCA7CivllY/nrZTnhKHnlKggPiBtb25kb3VtdXlvdVwgOwor6YGL5ZG96KuW6ICFID4gdW5tZWlyb25zaGFcIDsKK+iPnOeoruaihembqCA+IG5hdGFuZWR6dXl1XCA7CivoqrLlpJbmjojmpa0gPiBrYWdhaWp1Z3lvdVwgOwor6Zuj5rCR5biw6YKEID4gbmFubWlua2lrYW5cIDsKK+WBtuWDj+egtOWjiiA+IGd1dXpvdWhha2FpXCA7CivmjIfnpLroo4Xnva4gPiBzaGlqaXNvdWNoaVwgOwor5a6J5YWo5Zyw5bivID4gYW56ZW5jaGl0YWlcIDsKK+iHquW3seikh+ijvSA+IGppa29mdWt1c2VpXCA7Civku5bkurrooYzlhIAgPiB0YW5pbmd5b3VnaVwgOwor5Yik5a6Y6LSU5bGTID4gaG91Z2FuYmlpa2lcIDsKK+Wcp+aQvuepuuawlyA+IGFzc2FrdWt1dWtpXCA7CivlgaXlurfnrqHnkIYgPiBrZW5rb3VrYW5yaVwgOwor6Kmm6aiT6aOb6KGMID4gc2hpa2VuaGlrb3VcIDsKK+eUn+eUo+mBjuWJsCA+IHNlaXNhbmtham91XCA7CivnlJ/nkIbkvJHmmocgPiBzZWlyaWt5dXVrYVwgOwor5Lqk6Zqb5aC06KOPID4ga291c2Fpam91cmlcIDsKK+ixiuiCpeacrOe3miA+IGhvdWhpaG9uc2VuXCA7CivliKTmlq3opo/mupYgPiBoYW5kYW5raWp1blwgOwor5rCX5oGv5aWE44CFID4ga2lzb2t1ZW4nJ2VuXCA7CivliKTmlq3ln7rmupYgPiBoYW5kYW5raWp1blwgOwor5aSp6LOH6Iux6YKBID4gdGVuc2hpZWltYWlcIDsKK+aKteaKl+mBi+WLlSA+IHRlaWtvdXVuZG91XCA7Civpg7Xkvr/liIfmiYsgPiB5dXViaW5raXR0ZVwgOwor55Sw5ZyS6YO95biCID4gZGVuJydlbnRvc2hpXCA7CivooaPmlpnlk4HlupcgPiBpcnlvdWhpbnRlblwgOwor5LqM6YOo5ZCI5ZSxID4gbmlidWdhc3Nob3VcIDsKK+mbu+WtkOmgreiEsyA+IGRlbnNoaXp1bm91XCA7CivlibLos6bosqnlo7IgPiBrYXBwdWhhbmJhaVwgOwor6aqo6JGj6Laj5ZGzID4ga290dG91c2h1bWlcIDsKK+i7jeWCmeWItumZkCA+IGd1bmJpc2VpZ2VuXCA7CivpgYvli5XkuI3otrMgPiB1bmRvdWJ1c29rdVwgOwor5Yi26ZmQ5ryi5a2XID4gc2VpZ2Vua2FuamlcIDsKK+eEoeWPjeWLleegsiA+IG11aGFuZG91aG91XCA7Civljp/lm6DkuI3mmI4gPiBnZW4nJ2luZnVtZWlcIDsKK+i7veiHquWLlei7iiA+IGtlaWppZG91c2hhXCA7Civljp/lrZDmmYLku6MgPiBnZW5zaGlqaWRhaVwgOwor54uQ55aR6YCh5behID4ga29naXNodW5qdW5cIDsKK+eoi+W6puWVj+mhjCA+IHRlaWRvbW9uZGFpXCA7Civopo/lrprmiZPluK0gPiBraXRlaWRhc2VraVwgOwor6aKo57SA57SK5LmxID4gZnV1a2liaW5yYW5cIDsKK+W4guWPguS6i+S8miA+IHNoaXNhbmppa2FpXCA7CivoqJjmhrboo4Xnva4gPiBraW9rdXNvdWNoaVwgOwor6Zu75rCX5Lyd5bCOID4gZGVua2lkZW5kb3VcIDsKK+a1t+Wklua0vuWFtSA+IGthaWdhaWhhaGVpXCA7CivlpKnos6bkurrmqKkgPiB0ZW5wdWppbmtlblwgOwor5oe45Z6C6YGL5YuVID4ga2Vuc3VpdW5kb3VcIDsKK+elnuenmOS4u+e+qSA+IHNoaW5waXNodWdpXCA7CivpgaDmha7kvJrph4ggPiBlbnJ5b2VzaGFrdVwgOwor5pqX5Y+35omL5rOVID4gYW5nb3VzaHVob3VcIDsKK+mBi+i8uOWkp+iHoyA+IHVuJyd5dWRhaWppblwgOwor6Z2e6KuW55CG55qEID4gaGlyb25yaXRla2lcIDsKK+WPs+e/vOWbo+S9kyA+IHV5b2t1ZGFudGFpXCA7Civkv53lgaXooZvnlJ8gPiBob2tlbicnZWlzZWlcIDsKK+ebl+WTgeaVheiytyA+IHRvdWhpbmtvYmFpXCA7CivpnZnmraLou4zpgZMgPiBzZWlzaGlraWRvdVwgOwor5oW25oeJ576p5aG+ID4ga2Vpb3VnaWp1a3VcIDsKK+W/q+WIgOS5sem6uyA+IGthaXRvdXJhbm1hXCA7Civoh7Pov5Hot53pm6IgPiBzaGlraW5reW9yaVwgOwor5pCN5a6z5L+d6Zm6ID4gc29uZ2FpaG9rZW5cIDsKK+ani+aIkOimgee0oCA+IGtvdXNlaXlvdXNvXCA7CivljZTorbDkuovpoIUgPiBreW91Z2lqaWtvdVwgOwor6Iie5Y+w5L+z5YSqID4gYnV0YWloYWl5dXVcIDsKK+WNseapn+S4gOmrqiA+IGtpa2lpcHBhdHN1XCA7CivljLvlrabpm5HoqowgPiBpZ2FrdXphc3NoaVwgOwor54mp5L6h5rC05rqWID4gYnVra2FzdWlqdW5cIDsKK+i1pOWNgeWtl+mZhCA+IHNla2lqdXVqaWZ1XCA7CivmibbppIrlrrbml48gPiBmdXlvdWthem9rdVwgOwor56uL5oay5pS/5rK7ID4gcmlra2Vuc2VpamlcIDsKK+S6uuW3peiHk+WZqCA+IGppbmtvdXpvdWtpXCA7Civnpa3mlL/kuIDoh7QgPiBzYWlzZWlpdGNoaVwgOwor5LiN6KiA5a6f6KGMID4gZnVnZW5qaWtrb3VcIDsKK+S7leS6i+mDqOWxiyA+IHNoaWdvdG9iZXlhXCA7CivmiJDkurrmmKDnlLsgPiBzZWlqaW4nJ2VpZ2FcIDsKK+iHqueUseWWtualrSA+IGppeXV1ZWlneW91XCA7CivmqJnmupboqqTlt64gPiBoeW91anVuZ29zYVwgOwor5Lmz5YWQ6ISa5rCXID4gbnl1dWppa2Fra2VcIDsKK+i7jemcgOW3peWgtCA+IGd1bmp1a291am91XCA7Civnm7jliqDlubPlnYcgPiBzb3VrYWhlaWtpblwgOwor57KX6KO95Lmx6YCgID4gc29zZWlyYW56b3VcIDsKK+W+oeWQjeW+oeeSvSA+IGd5b21laWd5b2ppXCA7CivmlofmsrvkuLvnvqkgPiBidW5jaGlzaHVnaVwgOwor6Ieq54S25reY5rGwID4gc2hpemVudG91dGFcIDsKK+WutuWuheaNnOafuyA+IGthdGFrdXNvdXNhXCA7Civml6LmiJDmpoLlv7UgPiBraXNlaWdhaW5lblwgOwor5pW05YKZ5bel5aC0ID4gc2VpYmlrb3Vqb3VcIDsKK+WvvuepuuegsueBqyA+IHRhaWt1dWhvdWthXCA7Civmu57nqbrmmYLplpMgPiB0YWlrdXVqaWthblwgOwor6LK/5piT6LWk5a2XID4gYm91ZWtpYWthamlcIDsKK+S4gOiogOWxheWjqyA+IGljaGlnZW5rb2ppXCA7CivlsYvkuIrluq3lnJIgPiBva3Vqb3V0ZWllblwgOwor6Z+z5aOw6KGo6KiYID4gb25zZWloeW91a2lcIDsKK+Wvqee+juS4u+e+qSA+IHNoaW5iaXNodWdpXCA7Civlv5znlKjllY/poYwgPiBvdXlvdW1vbmRhaVwgOwor5LqS5oG16Zai56iOID4gZ29rZWlrYW56ZWlcIDsKK+i7n+aAp+S4i+eWsyA+IG5hbnNlaWdla2FuXCA7Civlm73oqp7ovp7lhbggPiBrb2t1Z29qaXRlblwgOwor5YWs6KqN5YCZ6KOcID4ga291bmlua291aG9cIDsKK+eUn+W5tOaciOaXpSA+IHNlaW5lbmdhcHBpXCA7CivlpYfnrZbnuKbmqKogPiBraXNha3VqdXVvdVwgOwor5YWJ5a2m5paH5a2XID4ga291Z2FrdW1vamlcIDsKK+WBnOi7iuaZgumWkyA+IHRlaXNoYWppa2FuXCA7CivlhbHlkozmlL/msrsgPiBreW91d2FzZWlqaVwgOwor5Zu95bqr5YK15qipID4ga29ra29zYWlrZW5cIDsKK+WjsOW4r+aooeWGmSA+IHNlaXRhaW1vc2hhXCA7CivmnIDlpKfpmZDluqYgPiBzYWlkYWlnZW5kb1wgOwor5YWr5YiG6Z+z56ymID4gaGFjaGlidW9ucHVcIDsKK+S7ruaDs+epuumWkyA+IGthc291a3V1a2FuXCA7CivlubPmiJDmmYLku6MgPiBoZWlzZWlqaWRhaVwgOwor5Yip55uK56S+5LyaID4gcmlla2lzaGFrYWlcIDsKK+WutuW6reioquWVjyA+IGthdGVpaG91bW9uXCA7CivoloTliKnlpJrlo7IgPiBoYWt1cml0YWJhaVwgOwor5rCR5Li75Li7576pID4gbWluc2h1c2h1Z2lcIDsKK+Wls+aAp+WQjeipniA+IGpvc2VpbWVpc2hpXCA7CivmhJvmho7kvbXlrZggPiBhaXpvdWhlaXNvblwgOwor5Y+N5bCE5L2c55SoID4gaGFuc2hhc2F5b3VcIDsKK+acieS6i+eri+azlSA+IHl1dWppcmlwcG91XCA7Civnmbrlo7DlmajlrpggPiBoYXNzZWlraWthblwgOwor5ama56S86KGj6KOFID4ga29ucmVpaXNob3VcIDsKK+S4reWkrueqgeegtCA+IGNodXVvdXRvcHBhXCA7CivkuInpoK3mlL/msrsgPiBzYW50b3VzZWlqaVwgOwor5Y2x6Zm65Zyw5bivID4ga2lrZW5jaGl0YWlcIDsKK+WMluWtpuS9nOeUqCA+IGthZ2FrdXNheW91XCA7CivnhKHplpPlnLDnjYQgPiBtdWdlbmppZ29rdVwgOwor5b6A5b6p5YiH56ymID4gb3VmdWt1a2lwcHVcIDsKK+WtmOWcqOeQhueUsSA+IHNvbnphaXJpeXV1XCA7CivpnZ7npL7kuqTnmoQgPiBoaWpha291dGVraVwgOwor5bCB5bu65Yi25bqmID4gaG91a2Vuc2VpZG9cIDsKK+S6uui6q+S6i+aVhSA+IGppbnNoaW5qaWtvXCA7CivlhazplovmjZzmn7sgPiBrb3VrYWlzb3VzYVwgOwor5oiR55Sw5byV5rC0ID4gZ2FkZW4nJ2luc3VpXCA7Civli5XkvZzoqJjpjLIgPiBkb3VzYWtpcm9rdVwgOwor5oiQ5bGk54Gr5bGxID4gc2Vpc291a2F6YW5cIDsKK+WIqeebiumFjeW9kyA+IHJpZWtpaGFpdG91XCA7CivkuIDmiYDmh7jlkb0gPiBpc3Nob2tlbm1laVwgOwor5rqQ5rOJ6Kqy56iOID4gZ2Vuc2Vua2F6ZWlcIDsKK+aUv+ayu+e1kOekviA+IHNlaWppa2Vzc2hhXCA7CivpqI7ppqzmsJHml48gPiBraWJhbWluem9rdVwgOwor6ZqU5LiW6YG65LydID4ga2FrdXNlaWlkZW5cIDsKK+WPpOmBk+WFt+WxiyA+IGZ1cnVkb3VndXlhXCA7CivlkLnlpY/mpb3lmaggPiBzdWlzb3VnYWtraVwgOwor5qmf6YqD5o6D5bCEID4ga2lqdXVzb3VzaGFcIDsKK+atpuWutuWxi+aVtyA+IGJ1a2V5YXNoaWtpXCA7CivnnaHnnKDmmYLplpMgPiBzdWltaW5qaWthblwgOwor54Sh6KiY5ZCN5qCqID4gbXVraW1laWthYnVcIDsKK+S6i+WLmee3j+mVtyA+IGppbXVzb3VjaG91XCA7CivkuLvmsrvlirnog70gPiBzaHVqaWtvdW5vdVwgOwor5aSp5rSl5b6h56WWID4gYW1hdHN1bWlveWFcIDsKK+awl+ixoeihm+aYnyA+IGtpc2hvdWVpc2VpXCA7CivmnInlirnmnJ/pmZAgPiB5dXVrb3VraWdlblwgOwor6L6y5aW06Kej5pS+ID4gbm91ZG9rYWlob3VcIDsKK+W/g+iHk+m6u+eXuiA+IHNoaW56b3VtYWhpXCA7CivphZTnlJ/lpKLmrbsgPiBzdWlzZWltdXNoaVwgOwor5pyJ5Yq55pyf6ZaTID4geXV1a291a2lnZW5cIDsKK+eEoeazleWcsOW4ryA+IG11aG91Y2hpdGFpXCA7CivooZfpoK3li5/ph5EgPiBnYWl0b3Vib2tpblwgOwor6I2S5ZSQ54Sh56i9ID4ga291dG91bXVrZWlcIDsKK+aghOmkiuS4jei2syA+IGVpeW91ZnVzb2t1XCA7CivlkI3oqonluILmsJEgPiBtZWl5b3NoaW1pblwgOwor6LuN5LqL5ZCM55ufID4gZ3Vuamlkb3VtZWlcIDsKK+acieWKueS9nOeUqCA+IHl1dWtvdXNheW91XCA7CivlhYjpgaPpg6jpmoogPiBzZW5rZW5idXRhaVwgOwor5ZiJ6KiA5ZaE6KGMID4ga2FnZW56ZW5rb3VcIDsKK+WQiOWQjOS8muitsCA+IGdvdWRvdWthaWdpXCA7Civotbfmrbvlm57nlJ8gPiBraXNoaWthaXNlaVwgOwor6YCP6KaW55S75rOVID4gdG91c2hpZ2Fob3VcIDsKK+eEoemKreaXheihjCA+IG11c2Vucnlva291XCA7Civkv53lronoqK3lgpkgPiBob2Fuc2V0c3ViaVwgOwor5YaF6YOo6ZeY5LqJID4gbmFpYnV0b3Vzb3VcIDsKK+S4jeato+iejeizhyA+IGZ1c2VpeXV1c2hpXCA7CivmvKLoi7Hovp7lhbggPiBrYW4nJ2Vpaml0ZW5cIDsKK+mgmOWcn+S/neWFqCA+IHJ5b3Vkb2hvemVuXCA7CivnhKHkuovmga/ngb0gPiBidWppc29rdXNhaVwgOwor5oyH5ZCN5omL6YWNID4gc2hpbWVpdGVoYWlcIDsKK+mBiuimp+mjm+ihjCA+IHl1dXJhbmhpa291XCA7Civlj5fpqJPlnLDnjYQgPiBqdWtlbmppZ29rdVwgOwor6K2m5YKZ5by35YyWID4ga2VpYmlreW91a2FcIDsKK+W/g+eQhuS4u+e+qSA+IHNoaW5yaXNodWdpXCA7Civpm6LlqZroqLToqJ8gPiByaWtvbnNvc2hvdVwgOwor6Z+z6KiT57Si5byVID4gb25rdW5zYWt1aW5cIDsKK+WNsemZuuWboOWtkCA+IGtpa2VuJydpbnNoaVwgOwor6LaF6YGO5Yuk5YuZID4gY2hvdWtha2lubXVcIDsKK+mAsuatqeS4u+e+qSA+IHNoaW5wb3NodWdpXCA7Civkv53lhajkvJrnpL4gPiBob3plbmthaXNoYVwgOwor6Ieq5bex57S55LuLID4gamlrb3Nob3VrYWlcIDsKK+S6uumBk+aUr+aPtCA+IGppbmRvdXNoaWVuXCA7CivluIzlsJHkvqHlgKQgPiBraXNob3VrYWNoaVwgOwor5amm5Lq656eR5a2mID4gZnVqaW5rYWdha3VcIDsKK+aUr+aPtOWbo+S9kyA+IHNoaWVuZGFudGFpXCA7CivlroflrpnnqbrplpMgPiB1Y2h1dWt1dWthblwgOwor5YyW57Kn54WJ55OmID4ga2VzaG91cmVuZ2FcIDsKK+aXqeacn+eZuuimiyA+IHNvdWtpaGFra2VuXCA7Civoh6rnhLbmsrvnmZIgPiBzaGl6ZW5jaGl5dVwgOwor5LiN5Y+v55+l55qEID4gZnVrYWNoaXRla2lcIDsKK+iotOion+iyu+eUqCA+IHNvc2hvdWhpeW91XCA7Civngb3lrrPkv53pmbogPiBzYWlnYWlob2tlblwgOwor5aSn5Zmo5pmp5oiQID4gdGFpa2liYW5zZWlcIDsKK+aVsOePoOS4gOmAoyA+IGp1enVpY2hpcmVuXCA7CivmlofmmI7plovljJYgPiBidW5tZWlrYWlrYVwgOwor5Y+N5YuV5Li7576pID4gaGFuZG91c2h1Z2lcIDsKK+aUv+W6nOmrmOWumCA+IHNlaWZ1a291a2FuXCA7Civkuqzpg73lupzoraYgPiBreW91dG9mdWtlaVwgOwor5Yuk546L5pSY5aS3ID4ga2luJydub3Vqb3VpXCA7CivnqbrmjLrpg6jpmoogPiBrdXV0ZWlidXRhaVwgOwor5aSa5aOr5riI5riIID4gdGFzaGlzZWlzZWlcIDsKK+S4jeWZqOeUqOiAhSA+IGJ1a2l5b3Vtb25vXCA7CivlhbXnq5nln7rlnLAgPiBoZWl0YW5raWNoaVwgOwor5pyJ55CG6Zai5pWwID4geXV1cmlrYW5zdXVcIDsKK+S9juW+iui2o+WRsyA+IHRlaWthaXNodW1pXCA7Civkurrlt6XpoK3ohLMgPiBqaW5rb3V6dW5vdVwgOwor5Y2B5YWt6Z+z56ymID4ganV1cm9rdW9ucHVcIDsKK+Wlh+aDs+WkqeWkliA+IGtpc291dGVuZ2FpXCA7CivlhoXlrrnopovmnKwgPiBuYWl5b3VtaWhvblwgOwor5paZ55CG6YGT5YW3ID4gcnlvdXJpZG91Z3VcIDsKK+Wkp+Wcj+iIqui3ryA+IHRhaWtlbmtvdXJvXCA7CivmupblgpnnrqHliLYgPiBqdW5iaWthbnNlaVwgOwor5Li76ISz5Lya6K2wID4gc2h1bm91a2FpZ2lcIDsKK+mZo+mgreaMh+aPriA+IGppbnRvdXNoaWtpXCA7Civoh5Plmajnp7vmpI0gPiB6b3VraWlzaG9rdVwgOwor5Z+65pys5qaC5b+1ID4ga2lob25nYWluZW5cIDsKK+S8muitsOaXpeeoiyA+IGthaWdpbml0dGVpXCA7CivlhazlrprlnLDkvqEgPiBrb3V0ZWljaGlrYVwgOwor5Z+656SO56CU56m2ID4ga2lzb2tlbmt5dXVcIDsKK+eSsOWig+axmuafkyA+IGthbmt5b3Vvc2VuXCA7CivnlpHlv4PmmpfprLwgPiBnaXNoaW4nJ2Fua2lcIDsKK+e3j+eQhuWkp+iHoyA+IHNvdXJpZGFpamluXCA7Civoh6rlt7HmuoDotrMgPiBqaWtvbWFuem9rdVwgOwor57W25a++5Li7576pID4gemV0dGFpc2h1Z2lcIDsKK+ato+WRs+WApOautSA+IHNob3VtaW5lZGFuXCA7CivlgIvkurrmlZnmjoggPiBrb2ppbmt5b3VqdVwgOwor5bCR5aOu5rCX6YutID4gc2hvdXNvdWtpZWlcIDsKK+adseS6nOiruOWbvSA+IHRvdWFzaG9rb2t1XCA7Civlloflj63msLTku5kgPiByYXBwYXp1aXNlblwgOwor5a6f6KGM5Y+v6IO9ID4gamlra291a2Fub3VcIDsKK+S6i+WJjemBi+WLlSA+IGppemVuJyd1bmRvdVwgOwor5aSW5p2l5oKj6ICFID4gZ2FpcmFpa2FuamFcIDsKK+mBv+mbo+iok+e3tCA+IGhpbmFua3VucmVuXCA7Civosqnlo7Lpg6jploAgPiBoYW5iYWlidW1vblwgOwor5Yq05YON6YGL5YuVID4gcm91ZG91dW5kb3VcIDsKK+a6luWCmemKgOihjCA+IGp1bmJpZ2lua291XCA7Civlubnnt5rpgZPot68gPiBrYW5zZW5kb3Vyb1wgOwor5LiN6YCP5piO5oCnID4gZnV0b3VtZWlzZWlcIDsKK+WKoOWcp+awtOeCiSA+IGthYXRzdXN1aXJvXCA7CivlubTmnJ/lpYnlhawgPiBuZW5raWJvdWtvdVwgOwor6KGo6Z+z5paH5a2XID4gaHlvdW9ubW9uamlcIDsKK+aMh+WQjeaJk+iAhSA+IHNoaW1laWRhc2hhXCA7Civnt4/lj7jku6Tpg6ggPiBzb3VzaGlyZWlidVwgOwor5Lyd57Wx5Li7576pID4gZGVudG91c2h1Z2lcIDsKK+S4u+imgemDveW4giA+IHNodXlvdXRvc2hpXCA7CivkvY7muKnmrrroj4wgPiB0ZWlvbnNha2tpblwgOwor5aSr5amm6Zai5L+CID4gZnV1ZnVrYW5rZWlcIDsKK+S9nOalreaZgumWkyA+IHNhZ3lvdWppa2FuXCA7CivpnZ7luLjmiYvmrrUgPiBoaWpvdXNodWRhblwgOwor5bCC5Yi25pS/5rK7ID4gc2Vuc2Vpc2VpamlcIDsKK+aYoOeUu+ebo+edoyA+IGVpZ2FrYW50b2t1XCA7Civmv4Pmt6HnlLvlg48gPiBub3V0YW5nYXpvdVwgOwor54Gv54Gr566h5Yi2ID4gdG91a2FrYW5zZWlcIDsKK+mHjeimgeS6i+mghSA+IGp1dXlvdWppa291XCA7CivpnZ7luLjlkbzpm4YgPiBoaWpvdWtvc2h1dVwgOwor56uL5YCZ6KOc6ICFID4gcmlra291aG9zaGFcIDsKK+a1hOWMluijhee9riA+IGpvdWthc291Y2hpXCA7CivlvqHnlJ/mho7mp5ggPiBvYWluaWt1c2FtYVwgOwor5Lq65ZOh5reY5rGwID4gamluJydpbnRvdXRhXCA7CivkuqTpgJrkuovmlYUgPiBrb3V0c3V1amlrb1wgOwor5Zub6Lyq6aeG5YuVID4geW9ucmlua3Vkb3VcIDsKK+S7o+eQhuWFrOS9vyA+IGRhaXJpa291c2hpXCA7CivlpJbli5nlpKfoh6MgPiBnYWltdWRhaWppblwgOwor6YeO5oim56Cy5YW1ID4geWFzZW5ob3VoZWlcIDsKK+WcsOWQjei+nuWFuCA+IGNoaW1laWppdGVuXCA7CivkuI3li5XnlKPlsYsgPiBmdWRvdXNhbicneWFcIDsKK+S9k+aEn+a4qeW6piA+IHRhaWthbicnb25kb1wgOwor6Kaz5YWJ6YO95biCID4ga2Fua291dG9zaGlcIDsKK+WQjOaAp+aEm+iAhSA+IGRvdXNlaWFpc2hhXCA7Civpg6jpmormkqTpgIAgPiBidXRhaXRldHRhaVwgOwor5Y2U6K2w5Lya5ZOhID4ga3lvdWdpa2FpaW5cIDsKK+WVk+iSmemBi+WLlSA+IGtlaW1vdXVuZG91XCA7CivkuoDnlLLmqKHmp5ggPiBraWtrb3Vtb3lvdVwgOwor6KGb55Sf54q25oWLID4gZWlzZWlqb3V0YWlcIDsKK+mOluWbveS4u+e+qSA+IHNha29rdXNodWdpXCA7CivlmajnlKjosqfkuY8gPiBraXlvdWJpbmJvdVwgOwor55y857K+55ay5Yq0ID4gZ2Fuc2VpaGlyb3VcIDsKK+Wuo+S8neapn+mWoiA+IHNlbmRlbmtpa2FuXCA7CivkvZXmmYLkvZXmmYIgPiBpdHN1bmFuZG9raVwgOwor5rCR5qip5Li7576pID4gbWlua2Vuc2h1Z2lcIDsKK+W5tOasoee3j+S8miA+IG5lbmppc291a2FpXCA7CivmuKnlj6Tnn6XmlrAgPiBvbmtvY2hpc2hpblwgOwor54Sh5YSf5Lqk5LuYID4gbXVzaG91a291ZnVcIDsKK+efreacn+aJi+W9oiA+IHRhbmtpdGVnYXRhXCA7CivlhoXli5nlpKfoh6MgPiBuYWltdWRhaWppblwgOwor5LiA5LiW5LiA5LujID4gaXNzZWljaGlkYWlcIDsKK+S6i+mghee0ouW8lSA+IGppa291c2FrdWluXCA7CivmlL7lsITnt5rnp5EgPiBob3VzaGFzZW5rYVwgOwor55qH5aSq5a2Q5aaDID4ga291dGFpc2hpaGlcIDsKK+WmluaAquWkieWMliA+IHlvdWthaWhlbmdlXCA7CivlpInlvaLpg6jploAgPiBoZW5rZWlidW1vblwgOwor6YeO5oim55eF6ZmiID4geWFzZW5ieW91aW5cIDsKK+aIpueBveWcsOWMuiA+IHNlbnNhaWNoaWt1XCA7Civnibnli5nmqZ/plqIgPiB0b2t1bXVraWthblwgOwor56CC57OW5aSn5qC5ID4gc2F0b3VkYWlrb25cIDsKK+WNiuWKoOW3peWTgSA+IGhhbmtha291aGluXCA7CivkuoznrYnliIbnt5ogPiBuaXRvdWJ1bnNlblwgOwor5o6I5qWt5pmC6ZaTID4ganVneW91amlrYW5cIDsKK+WkqeelnuWcsOelhyA+IHRlbmppbmNoaWdpXCA7Civov73liqDkuojnrpcgPiB0c3Vpa2F5b3NhblwgOwor6Z2e5ZCI55CG55qEID4gaGlnb3VyaXRla2lcIDsKK+WKtOi+suaUv+W6nCA+IHJvdW5vdXNlaWZ1XCA7CivkuIvmhI/kuIrpgZQgPiBrYWlqb3V0YXRzdVwgOwor5LmX6LuK5ouS5ZCmID4gam91c2hha3lvaGlcIDsKK+awtOa0l+S+v+aJgCA+IHN1aXNlbmJlbmpvXCA7Civlj47ntI3lrrblhbcgPiBzaHV1bm91a2FndVwgOwor5pyq6ZaL5aK+5ZywID4gbWlrYWlrb25jaGlcIDsKK+ato+W9k+mYsuihmyA+IHNlaXRvdWJvdWVpXCA7Civlrabnp5HoqabpqJMgPiBnYWtrYXNoaWtlblwgOwor5r2c5rC05q+N6ImmID4gc2Vuc3VpYm9rYW5cIDsKK+S9v+eUqOS+oeWApCA+IHNoaXlvdWthY2hpXCA7CivlrpjlsIrmsJHljZEgPiBrYW5zb25taW5waVwgOwor5pmu6YGN5paH5rOVID4gZnVoZW5idW5wb3VcIDsKK+mBjuWJsOS6uuWPoyA+IGtham91amlua291XCA7Civlh7rlhYjmqZ/plqIgPiBkZXNha2lraWthblwgOwor5a6j5Lyd5Yq55p6cID4gc2VuZGVua291a2FcIDsKK+aZguOAheWIu+OAhSA+IGppamlrb2trb2t1XCA7Civov5HkvLzoqIjnrpcgPiBraW5qaWtlaXNhblwgOwor6K235oay6YGL5YuVID4gZ29rZW4nJ3VuZG91XCA7Civljp/lm6DntZDmnpwgPiBnZW4nJ2lua2Vra2FcIDsKK+WPi+i7jemDqOmaiiA+IHl1dWd1bmJ1dGFpXCA7CivnhKHlsL3kvJrnpL4gPiBtdWppbmdhaXNoYVwgOwor5Y+k5LuK5p2x6KW/ID4ga29rb250b3V6YWlcIDsKK+eci+itt+WppumVtyA+IGthbmdvZnVjaG91XCA7CivmgrLmhqTmhbfmhaggPiBoaWZ1bmtvdWdhaVwgOwor5Y+k5Luj5paH5piOID4ga29kYWlidW5tZWlcIDsKK+eEoeeUo+aUv+WFmiA+IG11c2Fuc2VpdG91XCA7CivpgbjmjJnmupblgpkgPiBzZW5reW9qdW5iaVwgOwor5oSP6K2Y5LiN5piOID4gaXNoaWtpZnVtZWlcIDsKK+e1hOWQiOS4u+e+qSA+IGt1bWlhaXNodWdpXCA7CivlgIvkvZPnmbrnlJ8gPiBrb3RhaWhhc3NlaVwgOwor5Zub5YiG6Z+z56ymID4gc2hpYnVuJydvbnB1XCA7Civkvb/lvpLmm7jnsKEgPiBzaGl0b3Nob2thblwgOwor5YSq5p+U5LiN5patID4geXV1anV1ZnVkYW5cIDsKK+eFjumkheiSsuWboyA+IHNlbmJlaWJ1dG9uXCA7Civkuojlrproqr/lkowgPiB5b3RlaWNob3V3YVwgOwor5YWI56WW5Lyd5p2lID4gc2Vuem9kZW5yYWlcIDsKK+S6i+alremDqOWItiA+IGppZ3lvdWJ1c2VpXCA7Civoh6jmmYLliJfou4ogPiByaW5qaXJlc3NoYVwgOwor5a6a5pyf6Kmm6aiTID4gdGVpa2lzaGlrZW5cIDsKK+e3j+WQiOiqsueojiA+IHNvdWdvdWthemVpXCA7CivpgaDpmpTorJvnvqkgPiBlbmtha3Vrb3VnaVwgOwor5rW35bqV5rK555SwID4ga2FpdGVpeXVkZW5cIDsKK+ecn+S4gOaWh+WtlyA+IG1haWNoaW1vbmppXCA7Civpm7voqbHoqr/mn7sgPiBkZW53YWNob3VzYVwgOwor5oqA6KGT5o+05YqpID4gZ2lqdXRzdWVuam9cIDsKK+WBj+WQkeWbnui3ryA+IGhlbmtvdWthaXJvXCA7CivkuojlrprntI3nqI4gPiB5b3RlaW5vdXplaVwgOwor55qH5ZCO6Zmb5LiLID4ga291Z291aGVpa2FcIDsKK+mAo+mCpuWItuW6piA+IHJlbnBvdXNlaWRvXCA7Civpm7vmsJfpm7vlrZAgPiBkZW5raWRlbnNoaVwgOwor5Luj6KGM5qmf6ZaiID4gZGFpa291a2lrYW5cIDsKK+eWsuWKtOWbsOaGiiA+IGhpcm91a29ucGFpXCA7Civnm5fpm6Pkv53pmbogPiB0b3VuYW5ob2tlblwgOwor57SU55yf54Sh5Z6iID4ganVuc2hpbm11a3VcIDsKK+azleWLmeWkp+iHoyA+IGhvdW11ZGFpamluXCA7CivliJHkuovlh6bliIYgPiBrZWlqaXNob2J1blwgOwor6aeQ6LuK6YGV5Y+NID4gY2h1dXNoYWloYW5cIDsKK+aZguapn+WwmuaXqSA+IGppa2lzaG91c291XCA7CivlubTph5Hln7rph5EgPiBuZW5raW5raWtpblwgOwor6YGp5rOV6KGM54K6ID4gdGVraWhvdWtvdWlcIDsKK+eJqeimi+mBiuWxsSA+IG1vbm9taXl1c2FuXCA7CivlvpfmhI/muoDpnaIgPiB0b2t1aW1hbm1lblwgOwor5pmC5beu5Ye65YukID4gamlzYXNodWtraW5cIDsKK+aUv+ayu+WVj+mhjCA+IHNlaWppbW9uZGFpXCA7Civntbblr77mlazoqp4gPiB6ZXR0YWlrZWlnb1wgOwor6Y2155uk5qW95ZmoID4ga2VuYmFuZ2Fra2lcIDsKK+iotOion+S6i+S7tiA+IHNvc2hvdWppa2VuXCA7CivmhI/lkbPlvbnlibIgPiBpbWl5YWt1d2FyaVwgOwor5L6h5qC85a6J5a6aID4ga2FrYWt1YW50ZWlcIDsKK+S7iuS4iumZm+S4iyA+IGtpbmpvdWhlaWthXCA7Civpm7vmsJfns7vntbEgPiBkZW5raWtlaXRvdVwgOwor5YWM5o+b6YqA6KGMID4gZGFrYW5naW5rb3VcIDsKK+eZvuenkeS6i+WFuCA+IGh5YWtrYWppdGVuXCA7CivlhajkvJrkuIDoh7QgPiB6ZW5rYWlpdGNoaVwgOwor6bq76Jas5oKj6ICFID4gbWF5YWt1a2FuamFcIDsKK+W/g+apn+S4gOi7oiA+IHNoaW5raWl0dGVuXCA7CivnhKHlkI3miKblo6sgPiBtdW1laXNlbnNoaVwgOwor5ZSv5LiA54Sh5LqMID4geXVpaXRzdW11bmlcIDsKK+iyoeaUv+WuieWumiA+IHphaXNlaWFudGVpXCA7CivnnIvorbflrabmoKEgPiBrYW5nb2dha2tvdVwgOwor5YiG6aGe5Z+65rqWID4gYnVucnVpa2lqdW5cIDsKK+aWh+abuOWBvemAoCA+IGJ1bnNob2dpem91XCA7CivlraTou43lpa7pl5ggPiBrb2d1bmZ1bnRvdVwgOwor5pWw5qyh5peF5Yi4ID4gc3V1amlyeW9rZW5cIDsKK+WQiOaIkOe5iue2rSA+IGdvdXNlaXNlbicnaVwgOwor6LK05peP5pS/5rK7ID4ga2l6b2t1c2VpamlcIDsKK+WNmuaEm+S4u+e+qSA+IGhha3VhaXNodWdpXCA7CivkuIDmlonmpJzmjJkgPiBpc3NlaWtlbmt5b1wgOwor5L2O5rip6Ly46YCBID4gdGVpb24nJ3l1c291XCA7CivpoqjlhYnmmI7lqpogPiBmdXVrb3VtZWliaVwgOwor5b6M6YOo5bqn5bitID4ga291YnV6YXNla2lcIDsKK+WAi+S6uuaKleizhyA+IGtvamludG91c2hpXCA7Civkv53pmbrkvJrnpL4gPiBob2tlbmdhaXNoYVwgOwor56Gr5YyW5rC057SgID4gcnl1dWthc3Vpc29cIDsKK+aXpeacrOWIl+WztiA+IG5paG9ucmV0dG91XCA7CivmiKbmmYLlhazlgrUgPiBzZW5qaWtvdXNhaVwgOwor5rW35ZOh57WE5ZCIID4ga2FpaW5rdW1pYWlcIDsKK+S/rui+nueWkeWVjyA+IHNodXVqaWdpbW9uXCA7Civms5XlrprosqjluaMgPiBob3V0ZWlrYWhlaVwgOwor5L2T5YaF5Y+X57K+ID4gdGFpbmFpanVzZWlcIDsKK+alveims+S4u+e+qSA+IHJha2thbnNodWdpXCA7CivlhaXpmaLmgqPogIUgPiBueXV1aW5rYW5qYVwgOwor6Zai6YCj5LqL6aCFID4ga2FucmVuamlrb3VcIDsKK+WOn+S+oeioiOeulyA+IGdlbmtha2Vpc2FuXCA7Civpm7vlrZDlm57ot68gPiBkZW5zaGlrYWlyb1wgOwor6YeN54K55Li7576pID4ganV1dGVuc2h1Z2lcIDsKK+S+oembu+WtkOW4ryA+IGthZGVuc2hpdGFpXCA7CivmnInlirnpnIDopoEgPiB5dXVrb3VqdXlvdVwgOwor5LqL5qWt5bm05bqmID4gamlneW91bmVuZG9cIDsKK+ebuOWPjeWumueQhiA+IHNvdWhhbnRlaXJpXCA7Civlha3liIblhIDluqcgPiByb2t1YnVuZ2l6YVwgOwor5a6J5a6a54q25oWLID4gYW50ZWlqb3V0YWlcIDsKK+awkeS4u+aUv+ayuyA+IG1pbnNodXNlaWppXCA7CivljJblrabnuYrntq0gPiBrYWdha3VzZW4nJ2lcIDsKK+e1tuWvvumfs+aEnyA+IHpldHRhaW9ua2FuXCA7Civoh6rnhLbnoLTlo4ogPiBzaGl6ZW5oYWthaVwgOwor5aCx6YGT5qmf6ZaiID4gaG91ZG91a2lrYW5cIDsKK+aNleiZnOS6pOaPmyA+IGhvcnlva291a2FuXCA7CivkvqHlgKTliKTmlq0gPiBrYWNoaWhhbmRhblwgOwor5omL57e05omL566hID4gdGVyZW50ZWt1ZGFcIDsKK+WZqOaisOS9k+aTjSA+IGtpa2FpdGFpc291XCA7CivppIrogIHkv53pmbogPiB5b3Vyb3Vob2tlblwgOwor5LiN5b2T6KGo56S6ID4gZnV0b3VoeW91amlcIDsKK+WuieWFqOmBi+i7oiA+IGFuemVuJyd1bnRlblwgOwor5Lqk6Zqb56+E5ZuyID4ga291c2FpaGFuJydpXCA7Civlv5znlKjnp5HlraYgPiBvdXlvdWthZ2FrdVwgOwor5LiN5pW05ZCI5Lq6ID4gZnVzZWlnb3VqaW5cIDsKK+WNmOWFg+WItuW6piA+IHRhbmdlbnNlaWRvXCA7CivkuIDmranliY3pgLIgPiBpcHBvemVuc2hpblwgOwor5Zu9546L6Zmb5LiLID4ga29rdW91aGVpa2FcIDsKK+aUvumAgeihm+aYnyA+IGhvdXNvdWVpc2VpXCA7Civlr4LlhYnmtYTlnJ8gPiBqYWtrb3Vqb3Vkb1wgOwor5b6M55Sf5aSn5LqLID4gZ29zaG91ZGFpamlcIDsKK+S4ieawkeS4u+e+qSA+IHNhbm1pbnNodWdpXCA7CivmsJfnrqHliIfplosgPiBraWthbnNla2thaVwgOwor5YKy5bK45LiN6YGcID4gZ291Z2FuZnVzb25cIDsKK+WutueItumVt+WItiA+IGthZnVjaG91c2VpXCA7Civmmpfpu5LmmJ/pm7IgPiBhbmtva3VzZWl1blwgOwor6L+R5Luj5Zu95a62ID4ga2luZGFpa29ra2FcIDsKK+WJjemAlOacieacmyA+IHplbnRveXV1Ym91XCA7Civpn7Pmpb3nkIboq5YgPiBvbmdha3VyaXJvblwgOwor5aeU6KiX6LKp5aOyID4gaXRha3VoYW5iYWlcIDsKK+S4ieWvkuWbm+a4qSA+IHNhbmthbnNoaW9uXCA7CivosqfkuY/miYDluK8gPiBiaW5ib3Vqb3RhaVwgOwor5b6h5Ly96I2J5a2QID4gb3RvZ2l6b3VzaGlcIDsKK+elnuWliOW3neecjCA+IGthbmFnYXdha2VuXCA7CivovL/oq5boqr/mn7sgPiB5b3JvbmNob3VzYVwgOwor6Zu75rCX6KOF572uID4gZGVua2lzb3VjaGlcIDsKK+WcsOaWueitsOS8miA+IGNoaWhvdWdpa2FpXCA7Civoo4XnlLLpg6jpmoogPiBzb3Vrb3VidXRhaVwgOwor5LiN5Y+v5YWl5oCnID4gZnVrYW55dXVzZWlcIDsKK+WNl+S6rOacqOe2vyA+IG5hbmtpbm1vbWVuXCA7CivljbDosaHkuLvnvqkgPiBpbnNob3VzaHVnaVwgOwor5aSa5aOr5riI44CFID4gdGFzaGlzZWlzZWlcIDsKK+S4gOW8teS4gOW8myA+IGl0Y2hvdWlzc2hpXCA7CivljLrplpPliJfou4ogPiBrdWthbnJlc3NoYVwgOwor55u45oCd55u45oSbID4gc291c2hpc291YWlcIDsKK+iIquepuuWfuuWcsCA+IGtvdWt1dWtpY2hpXCA7Civnm6Pmn7voqJjpjLIgPiBrYW5zYWtpcm9rdVwgOwor5oqA6KGT56e76LuiID4gZ2lqdXRzdWl0ZW5cIDsKK+eUo+WFkOWItumZkCA+IHNhbmppc2VpZ2VuXCA7Civpo73lkoznirbmhYsgPiBob3V3YWpvdXRhaVwgOwor55+l6IO95qSc5p+7ID4gY2hpbm91a2Vuc2FcIDsKK+WtpOW9seaChOeEtiA+IGtvZWlzaG91emVuXCA7CivkupTnqK7nq7bmioAgPiBnb3NodWt5b3VnaVwgOwor5Zuj5L2T5L+d6Zm6ID4gZGFudGFpaG9rZW5cIDsKK+WnieWmuemDveW4giA+IHNoaW1haXRvc2hpXCA7CivkuI3pgJrnrofmiYAgPiBmdXRzdXVrYXNob1wgOwor56C06YKq6aGV5q2jID4gaGFqYWtlbnNob3VcIDsKK+aUv+ayu+Wbo+S9kyA+IHNlaWppZGFudGFpXCA7CivkuIDllpzkuIDmhoIgPiBpa2tpaWNoaXl1dVwgOwor5rqW5YKZ5ZG95LukID4ganVuYmltZWlyZWlcIDsKK+WPl+mok+enkeebriA+IGp1a2Vua2Ftb2t1XCA7CivmnKjnrqHmpb3lmaggPiBtb2trYW5nYWtraVwgOwor5Lit6auY6Z+z6YOoID4gY2h1dWtvdW9uYnVcIDsKK+WPi+aEm+e1kOWpmiA+IHl1dWFpa2Vra29uXCA7Civmtbfou43ln7rlnLAgPiBrYWlndW5raWNoaVwgOwor6Zu75a2Q57Sg5a2QID4gZGVuc2hpc29zaGlcIDsKK+aEm+WbvemBi+WLlSA+IGFpa29rdXVuZG91XCA7CivkurrmloflnLDnkIYgPiBqaW5tb25jaGlyaVwgOwor5Yq05YON5LqJ6K2wID4gcm91ZG91c291Z2lcIDsKK+aDheWgseWHpueQhiA+IGpvdWhvdXNob3JpXCA7Civlj6/lpInos4fmnKwgPiBrYWhlbnNoaWhvblwgOwor54K65pu/5beu55uKID4ga2F3YXNlc2Fla2lcIDsKK+iqmOaLkOS6i+S7tiA+IHl1dWthaWppa2VuXCA7CivkuInlpKfpg73luIIgPiBzYW5kYWl0b3NoaVwgOwor5omA6KaB5pmC6ZaTID4gc2hveW91amlrYW5cIDsKK+Wls+aoqemBi+WLlSA+IGpva2VuJyd1bmRvdVwgOwor5YiG5pWj5Yem55CGID4gYnVuc2Fuc2hvcmlcIDsKK+i1sOihjOWPr+iDvSA+IHNvdWtvdWthbm91XCA7CivmtYHoqIDpo5voqp4gPiByeXV1Z2VuaGlnb1wgOwor5LiA5paw57SA5YWDID4gaXNzaGlua2lnZW5cIDsKK+W+kuaJi+S9k+aTjSA+IHRvc2h1dGFpc291XCA7CivlsIHlu7rkuLvnvqkgPiBob3VrZW5zaHVnaVwgOwor5Y+X6aiT5oim5LqJID4ganVrZW5zZW5zb3VcIDsKK+WHuumbsuWkp+ekviA+IGl6dW1vdGFpc2hhXCA7CivmqKnploDli6LlrrYgPiBrZW5tb25zZWlrYVwgOwor54Sh57ea5pON57imID4gbXVzZW5zb3VqdXVcIDsKK+WAn+WutuS6ieitsCA+IHNoYWtrYXNvdWdpXCA7Civlroflrpnnp5HlraYgPiB1Y2h1dWthZ2FrdVwgOwor5Y+k5YW46Iq46IO9ID4ga290ZW5nZWlub3VcIDsKK+ixquiPr+e1oueImyA+IGdvdWtha2VucmFuXCA7CivmvKLoi7HlrZflhbggPiBrYW4nJ2Vpaml0ZW5cIDsKK+WppuS6uumBi+WLlSA+IGZ1amluJyd1bmRvdVwgOwor5LiN5YuV5piO546LID4gZnVkb3VteW91b3VcIDsKK+S9k+WkluWPl+eyviA+IHRhaWdhaWp1c2VpXCA7Civli6Tli5nlubTpmZAgPiBraW5tdW5lbmdlblwgOwor5rqA5aC05LiA6Ie0ID4gbWFuam91aXRjaGlcIDsKK+WJjeS4lueUn+WtmCA+IHplbnNlc2Vpem9uXCA7CivkvJroqIjlubTluqYgPiBrYWlrZWluZW5kb1wgOwor5LiH6JGJ5Luu5ZCNID4gbWFuJyd5b3VnYW5hXCA7Civlgo3ogbTpmo/mhI8gPiBib3VjaG91enVpaVwgOwor57W25a++5aSa5pWwID4gemV0dGFpdGFzdXVcIDsKK+e0heeZveippuWQiCA+IGtvdWhha3VqaWFpXCA7CivkvJroqIjnm6Pmn7sgPiBrYWlrZWlrYW5zYVwgOwor5YWr57SY5LiA5a6HID4gaGFra291aWNoaXVcIDsKK+iInuWPsOijhee9riA+IGJ1dGFpc291Y2hpXCA7Civkuovli5nplbflrpggPiBqaW11Y2hvdWthblwgOwor5LiA6Iis56S+5LyaID4gaXBwYW5zaGFrYWlcIDsKK+aXpeW4neaZguS7oyA+IG5pdHRlaWppZGFpXCA7CivnmbvlnYLou4rnt5ogPiB0b2hhbnNoYXNlblwgOwor5LiW55WM5pyA5aSnID4gc2VrYWlzYWlkYWlcIDsKK+aMh+WwjuWOn+eQhiA+IHNoaWRvdWdlbnJpXCA7CivpgKDmrKHpoZvmspsgPiB6b3VqaXRlbnBhaVwgOwor6Iiq56m6566h55CGID4ga291a3V1a2FucmlcIDsKK+aEn+afk+e1jOi3ryA+IGthbnNlbmtlaXJvXCA7CivkuoznrYnou43mm7kgPiBuaXRvdWd1bnNvdVwgOwor6Ziy54Gr5aGX5paZID4gYm91a2F0b3J5b3VcIDsKK+iHque4hOiHque4myA+IGppam91amliYWt1XCA7CivpgJTkuK3kuIvou4ogPiB0b2NodXVnZXNoYVwgOwor54WO6aSF5biD5ZujID4gc2VuYmVpYnV0b25cIDsKK+eSsOWig+S/neittyA+IGthbmt5b3Vob2dvXCA7CivlmJjnmbropovlmaggPiB1c29oYWtrZW5raVwgOwor6Z2i5Lya5pmC6ZaTID4gbWVua2FpamlrYW5cIDsKK+mHjeapn+mWoumKgyA+IGp1dWtpa2FuanV1XCA7Civms5XmoYjlr6norbAgPiBob3VhbnNoaW5naVwgOwor6Ieq5YuV5Yi25b6hID4gamlkb3VzZWlneW9cIDsKK+WAi+S6uuaMh+WwjiA+IGtvamluc2hpZG91XCA7Civoh6rnhLbnmbrngasgPiBzaGl6ZW5oYWtrYVwgOwor5Li75YuZ5aSn6IejID4gc2h1bXVkYWlqaW5cIDsKK+efreacn+axuuaIpiA+IHRhbmtpa2Vzc2VuXCA7CivoqIDoqp7pgYvnlKggPiBnZW5nb3VuJyd5b3VcIDsKK+eyl+ijvea/q+mAoCA+IHNvc2VpcmFuem91XCA7CivljbHpmbrmgJ3mg7MgPiBraWtlbnNoaXNvdVwgOwor56m65Z+f566h55CGID4ga3V1aWtpa2FucmlcIDsKK+W+oeauv+Wls+S4rSA+IGdvdGVuam9jaHV1XCA7CivpmqPkv53kuovmpa0gPiByaW5wb2ppZ3lvdVwgOwor5ZCI5oSP5b+D5LitID4gZ291aXNoaW5qdXVcIDsKK+S4lueVjOiomOmMsiA+IHNla2Fpa2lyb2t1XCA7Civln7rmnKzmnaHku7YgPiBraWhvbmpvdWtlblwgOwor6L6y5rCR5LiA5o+GID4gbm91bWluJydpa2tpXCA7CivliY3ku6PmnKrogZ4gPiB6ZW5kYWltaW1vblwgOwor6KSH5ZCI5rGa5p+TID4gZnVrdWdvdW9zZW5cIDsKK+e1tuWvvumbtuW6piA+IHpldHRhaXJlaWRvXCA7Civmp4vmiJDlj6/og70gPiBrb3VzZWlrYW5vdVwgOwor5LiA5Lq66Iie5Y+wID4gaGl0b3JpYnV0YWlcIDsKK+earuS4i+e1hOe5lCA+IGhpa2Fzb3NoaWtpXCA7CivlnLDkuIvos4fmupAgPiBjaGlrYXNoaWdlblwgOwor55m95YyW5YCL5L2TID4gaGFrdWtha290YWlcIDsKK+mbu+ipseWbnue3miA+IGRlbndha2Fpc2VuXCA7CivkuI3mraPlkqzlkIggPiBmdXNlaWtvdWdvdVwgOwor576O5a655L2T5pONID4gYml5b3V0YWlzb3VcIDsKK+WNlOitsOmbouWpmiA+IGt5b3VnaXJpa29uXCA7CivmuKnmmpbliY3nt5ogPiBvbmRhbnplbnNlblwgOwor5paw6KaP5L+d566hID4gc2hpbmtpaG9rYW5cIDsKK+S4gOiyq+eVquWPtyA+IGlra2FuYmFuZ291XCA7Civnj77ooYzms5Xopo8gPiBnZW5rb3Vob3VraVwgOwor56WW5Zu95b6p5biwID4gc29rb2t1ZnVra2lcIDsKK+WQq+awtOeCree0oCA+IGdhbnN1aXRhbnNvXCA7CivlirTlg43mmYLplpMgPiByb3Vkb3VqaWthblwgOwor54K65pu/55u45aC0ID4ga2F3YXNlc291YmFcIDsKK+S4lueVjOS4gOWRqCA+IHNla2FpaXNzaHV1XCA7CivljLvnmYLms5XkurogPiBpcnlvdWhvdWppblwgOwor6byT6Iie5r+A5YqxID4ga29idWdla2lyZWlcIDsKK+aZguacn+WwmuaXqSA+IGppa2lzaG91c291XCA7CivnspLluqbliIbluIMgPiByeXV1ZG9idW5wdVwgOwor5oqV5LiL6LOH5pysID4gdG91a2FzaGlob25cIDsKK+eUqOaEj+WRqOWIsCA+IHlvdWlzaHV1dG91XCA7CivlhoXnh4PmqZ/plqIgPiBuYWluZW5raWthblwgOwor6Ziy5rC05Yqg5belID4gYm91c3Vpa2Frb3VcIDsKK+WAi+S6uua2iOiyuyA+IGtvamluc2hvdWhpXCA7Civku67mgKfov5HoppYgPiBrYXNlaWtpbnNoaVwgOwor5bCK546L5pSY5aS3ID4gc29uJydub3Vqb3VpXCA7CivnqbrmsJfkvJ3mn5MgPiBrdXVraWRlbnNlblwgOwor5bm85bm05pmC5LujID4geW91bmVuamlkYWlcIDsKK+ekvuS8muW+qeW4sCA+IHNoYWthaWZ1a2tpXCA7Civpm7vmsJfoo73lk4EgPiBkZW5raXNlaWhpblwgOwor5pmC5pmC5Yi75Yi7ID4gamlqaWtva2tva3VcIDsKK+S4gOiyq+S9nOalrSA+IGlra2Fuc2FneW91XCA7Civmu57lnKjmnJ/plpMgPiB0YWl6YWlraWthblwgOwor54Sh5b2i6LKh55SjID4gbXVrZWl6YWlzYW5cIDsKK+eEoeaWrei7oui8iSA+IG11ZGFudGVuc2FpXCA7CivlnYfooaHkuojnrpcgPiBraW5rb3V5b3NhblwgOwor5LuY5biv5p2h5Lu2ID4gZnV0YWlqb3VrZW5cIDsKK+i7jeS6i+W3peWgtCA+IGd1bmppa291am91XCA7CivmnInlirnmlbDlrZcgPiB5dXVrb3VzdXVqaVwgOwor6IeN5LiL5Li555SwID4gc2Vpa2F0YW5kZW5cIDsKK+ippueUqOacn+mWkyA+IHNoaXlvdWtpa2FuXCA7CivljJblrablpInljJYgPiBrYWdha3VoZW5rYVwgOwor6Ieq5YuV6LuK56iOID4gamlkb3VzaGF6ZWlcIDsKK+iogOiqnumBk+aWrSA+IGdvbmdvZG91ZGFuXCA7Civmi4Xkv53nianmqKkgPiB0YW5wb2J1a2tlblwgOwor5Za25qWt5pmC6ZaTID4gZWlneW91amlrYW5cIDsKK+aEm+Wmu+W8geW9kyA+IGFpc2FpYmVudG91XCA7Civnvo7nmoTlq4zmgqogPiBiaXRla2lrZW4nJ29cIDsKK+S4ieWNg+S4lueVjCA+IHNhbnplbnNla2FpXCA7CivlpJrph43mlL7pgIEgPiB0YWp1dWhvdXNvdVwgOwor5LqM6YeN5aSW5LqkID4gbmlqdXVnYWlrb3VcIDsKK+S6iOWCmeW3peS9nCA+IHlvYmlrb3VzYWt1XCA7CivogrHmjpvmpIXlrZAgPiBoaWppa2FrZWlzdVwgOwor55+t5rOi5pS+6YCBID4gdGFucGFob3Vzb3VcIDsKK+miqOWFiee1tuS9syA+IGZ1dWtvdXpla2thXCA7CivkuLvmg4XkuLvnvqkgPiBzaHVqb3VzaHVnaVwgOwor6KGM5YuV5Li7576pID4ga291ZG91c2h1Z2lcIDsKK+iHquWIhuiHqui6qyA+IGppYnVuamlzaGluXCA7CivlpJzlhYnloZfmlpkgPiB5YWtvdXRvcnlvdVwgOwor5biw54Sh5Luu6KqsID4ga2ltdWthc2V0c3VcIDsKK+W4guWgtOWOn+eQhiA+IHNoaWpvdWdlbnJpXCA7Civkuqzmu4vlnLDmlrkgPiBrZWlqaWNoaWhvdVwgOwor5aSn576p5ZCN5YiGID4gdGFpZ2ltZWlidW5cIDsKK+WRvOWQuOmBi+WLlSA+IGtva3l1dXVuZG91XCA7Civonrrml4vpmo7mrrUgPiByYXNlbmthaWRhblwgOwor6Iux6Kqe5pWZ6IKyID4gZWlnb2t5b3Vpa3VcIDsKK+ixoeeJmea1t+WyuCA+IHpvdWdla2FpZ2FuXCA7Civml6XmnKzohLPngo4gPiBuaWhvbicnbm91ZW5cIDsKK+WSjOmtgua8ouaJjSA+IHdha29ua2Fuc2FpXCA7CivntYzllrblho3lu7ogPiBrZWllaXNhaWtlblwgOwor6ISz5LiL5Z6C5L2TID4gbm91a2FzdWl0YWlcIDsKK+WLn+mHkemBi+WLlSA+IGJva2luJyd1bmRvdVwgOwor5Yi76Ium5YuJ5YqxID4ga29ra3ViZW5yZWlcIDsKK+aXouWpmueUt+aApyA+IGtpa29uZGFuc2VpXCA7CivmsrvmsLTlt6XkuosgPiBjaGlzdWlrb3VqaVwgOwor5pel5pys5Lq66KuWID4gbmlob25qaW5yb25cIDsKK+i7jeS6i+WFrOWCtSA+IGd1bmppa291c2FpXCA7CivljYHkurrljYHoibIgPiBqdXVuaW50b2lyb1wgOwor54Sh6YWN5Lya56S+ID4gbXVoYWlnYWlzaGFcIDsKK+WutuaXj+aJi+W9kyA+IGthem9rdXRlYXRlXCA7CivnvoXph53nm6TluqcgPiByYXNoaW5iYW56YVwgOwor56aP56WJ5qmf5ZmoID4gZnVrdXNoaWtpa2lcIDsKK+aaq+WumuS6iOeulyA+IHphbnRlaXlvc2FuXCA7Civoh6rosrvlh7rniYggPiBqaWhpc2h1cHBhblwgOwor5bi455So5ryi5a2XID4gam91eW91a2FuamlcIDsKK+eOi+S+r+iytOaXjyA+IG91a291a2l6b2t1XCA7CivkurrkvZPmqKHlnosgPiBqaW50YWltb2tlaVwgOwor5pel6KW/6L6e5YW4ID4gbmlzc2Vpaml0ZW5cIDsKK+aEn+aDheenu+WFpSA+IGthbmpvdWlueXV1XCA7CivlnLDmlrnnq7bppqwgPiBjaGlob3VrZWliYVwgOwor57WM5riI5Yq55p6cID4ga2VpemFpa291a2FcIDsKK+awkeS6i+iotOionyA+IG1pbmppc29zaG91XCA7CivljJblraboqJjlj7cgPiBrYWdha3VraWdvdVwgOwor5Y+C5Yqg5oSP6K2YID4gc2Fua2Fpc2hpa2lcIDsKK+aIpuaZguS9k+WItiA+IHNlbmppdGFpc2VpXCA7Civoh6rnlLHluILloLQgPiBqaXl1dXNoaWpvdVwgOwor5Ya35oi/5a6M5YKZID4gcmVpYm91a2FuYmlcIDsKK+iHquW3seWPjOWvviA+IGppa29zb3V0c3VpXCA7Civngavnh7XmjpvluIMgPiBrb3RhdHN1Z2FrZVwgOwor5biM5pyb5L6h5qC8ID4ga2lib3VrYWtha3VcIDsKK+mBuOWvvuacrOmDqCA+IHNlbnRhaWhvbmJ1XCA7CivlhYjpoK3miZPogIUgPiBzZW50b3VkYXNoYVwgOwor5ZCN5YmN56m66ZaTID4gbmFtYWVrdXVrYW5cIDsKK+a1heiNiea1t+iLlCA+IGFzYWt1c2Fub3JpXCA7Civkuovmpa3mnKzpg6ggPiBqaWd5b3Vob25idVwgOwor55CG6KuW6ZeY5LqJID4gcmlyb250b3Vzb3VcIDsKK+S6uuWPo+Wil+WKoCA+IGppbmtvdXpvdWthXCA7CivlpJbkuqTovp7ku6QgPiBnYWlrb3VqaXJlaVwgOwor5rCP5aeT5Yi25bqmID4gc2hpc2Vpc2VpZG9cIDsKK+e4hOaWh+aZguS7oyA+IGpvdW1vbmppZGFpXCA7CivkuJbnlYzlpKfmiKYgPiBzZWthaXRhaXNlblwgOwor5qmf5YuV5ryU57+SID4ga2lkb3VlbnNodXVcIDsKK+iHquitpuWbo+WToSA+IGppa2VpZGFuJydpblwgOwor6Zu75rCX5oq15oqXID4gZGVua2l0ZWlrb3VcIDsKK+mYsumfs+ijhee9riA+IGJvdW9uc291Y2hpXCA7CivosqDlgrXlkIjoqIggPiBmdXNhaWdvdWtlaVwgOwor6YGK6LuN6KiY6ICFID4geXV1Z3Vua2lzaGFcIDsKK+S+oeWApOS9k+ezuyA+IGthY2hpdGFpa2VpXCA7Civkuozph43ntZDlqZogPiBuaWp1dWtla2tvblwgOwor5LiA6ZW35LiA55+tID4gaXRjaG91aXR0YW5cIDsKK+itt+mAgeiIueWboyA+IGdvc291c2VuZGFuXCA7Civniq/ooYznj77loLQgPiBoYW5rb3VnZW5iYVwgOwor5oSP6KaL5bqD5ZGKID4gaWtlbmtvdWtva3VcIDsKK+WWhOWboOWWhOaenCA+IHplbicnaW56ZW5rYVwgOwor54Sh5Lq65Zyw5bivID4gbXVqaW5jaGl0YWlcIDsKK+e1jOWWtui7ouaPmyA+IGtlaWVpdGVua2FuXCA7Civosqnlo7LmqZ/kvJogPiBoYW5iYWlraWthaVwgOwor6YGg6ZqU5pON5L2cID4gZW5rYWt1c291c2FcIDsKK+aFo+eUqOiqnuWPpSA+IGthbicneW91Z29rdVwgOwor5ray5L2T56m65rCXID4gZWtpdGFpa3V1a2lcIDsKK+WHuuWIg+WMheS4gSA+IGRlYmFib3VjaG91XCA7CivlnJ/orprmnKznt5ogPiBkb3NhbmhvbnNlblwgOwor6LKh5pS/5pSv5o+0ID4gemFpc2Vpc2hpZW5cIDsKK+WuruW7t+eUu+WutiA+IGt5dXV0ZWlnYWthXCA7CivmnIDlvozliJfou4ogPiBzYWlnb3Jlc3NoYVwgOwor55CG5bel5a2m6YOoID4gcmlrb3VnYWt1YnVcIDsKK+S/neeuoeS8muekviA+IGhva2FuZ2Fpc2hhXCA7CivphY3lkIjnpoHlv4wgPiBoYWlnb3VraW5raVwgOwor6YGO5Ymw5oqV6LOHID4ga2Fqb3V0b3VzaGlcIDsKK+WutumVt+WItuW6piA+IGthY2hvdXNlaWRvXCA7Civlj6/ogbTot53pm6IgPiBrYWNob3VreW9yaVwgOwor6Kaq6aGe57iB6ICFID4gc2hpbnJ1aWVuamFcIDsKK+Wuh+WumeWMluWtpiA+IHVjaHV1a2FnYWt1XCA7CivnhKHnkIblv4PkuK0gPiBtdXJpc2hpbmp1dVwgOwor5bm06LOA6JGJ5pu4ID4gbmVuZ2FoYWdha2lcIDsKK+mAo+mCpuS6iOeulyA+IHJlbnBvdXlvc2FuXCA7CivlibXkvqHlrabkvJogPiBzb3VrYWdha2thaVwgOwor5Yip5a2Q6KOc57WmID4gcmlzaGlob2t5dXVcIDsKK+agueacrOWOn+eQhiA+IGtvbnBvbmdlbnJpXCA7Civlronlhajkv53pmpwgPiBhbnplbmhvc2hvdVwgOwor5YGl5bq35L+d6Zm6ID4ga2Vua291aG9rZW5cIDsKK+aal+m7kuaZguS7oyA+IGFua29rdWppZGFpXCA7CivkuJbku6PkuqTku6MgPiBzZWRhaWtvdXRhaVwgOwor6Lui6YCB6Zu76KmxID4gdGVuc291ZGVud2FcIDsKK+aYreWSjOaZguS7oyA+IHNob3V3YWppZGFpXCA7Civkvb/nlKjoqLHlj68gPiBzaGl5b3VreW9rYVwgOwor6Z+z5qW95pig55S7ID4gb25nYWt1ZWlnYVwgOwor5a6H5a6Z6YGK5rOzID4gdWNodXV5dXVlaVwgOwor5L+d5YGl5Yi25bqmID4gaG9rZW5zZWlkb1wgOwor5rqW5YKZ6YGL5YuVID4ganVuYml1bmRvdVwgOwor5Luj6K2w5Yi25bqmID4gZGFpZ2lzZWlkb1wgOwor5qih5Z6L5Zyw5ZuzID4gbW9rZWljaGl6dVwgOwor54Sh6Iy26Ium6Iy2ID4gbXVjaGFrdWNoYVwgOwor5Y+k5b6A5LuK5p2lID4ga29vdWtvbnJhaVwgOwor5pGp5Yip5pSv5aSpID4gbWFyaXNoaXRlblwgOwor5Lq654K65reY5rGwID4gamluJydpdG91dGFcIDsKK+eovOWDjeaZgumWkyA+IGthZG91amlrYW5cIDsKK+WMu+eZguWItuW6piA+IGlyeW91c2VpZG9cIDsKK+mdoue9tee9teWAkiA+IG1lbmJhYmF0b3VcIDsKK+mBuOaMmemBleWPjSA+IHNlbmt5b2loYW5cIDsKK+aXpeacrOaZgumWkyA+IG5paG9uamlrYW5cIDsKK+WltOmat+WItuW6piA+IGRvcmVpc2VpZG9cIDsKK+ani+mAoOS/neaMgSA+IGtvdXpvdWhvamlcIDsKK+iHquWLlei7iuWMliA+IGppZG91c2hha2FcIDsKK+aXpeacrOabuOe0gCA+IG5paG9uc2hva2lcIDsKK+S4jeepuuaIkOWwsSA+IGZ1a3V1am91anVcIDsKK+W5s+WSjOmBi+WLlSA+IGhlaXdhdW5kb3VcIDsKK+WFrOWumuatqeWQiCA+IGtvdXRlaWJ1YWlcIDsKK+Wkqeiho+eEoee4qyA+IHRlbicnaW11aG91XCA7CivnkIbot6/mlbTnhLYgPiByaXJvc2VpemVuXCA7CivljZfkuqznubvlrZAgPiBuYW5raW5qdXN1XCA7CivomZrnhKHkuLvnvqkgPiBreW9tdXNodWdpXCA7CivmqKnlqIHkuLvnvqkgPiBrZW4nJ2lzaHVnaVwgOwor5rCX54KO5LiH5LiIID4ga2llbmJhbmpvdVwgOwor5LiJ5LiJ5Lmd5bqmID4gc2Fuc2Fua3Vkb1wgOwor6KiI566X5qmf6ZaTID4ga2Vpc2Fua2ltYVwgOwor56S85YSA5L2c5rOVID4gcmVpZ2lzYWhvdVwgOwor5ruF6Iy26Ium6Iy2ID4gbWVjaGFrdWNoYVwgOwor6ICz5LiL6IW654KOID4gamlrYXNlbicnZW5cIDsKK+efs+ayueWNseapnyA+IHNla2l5dWtpa2lcIDsKK+WIkeS6i+S6i+S7tiA+IGtlaWppamlrZW5cIDsKK+WIqeeUqOS+oeWApCA+IHJpeW91a2FjaGlcIDsKK+Wbnue3muiyoOiNtyA+IGthaXNlbmZ1a2FcIDsKK+mmluWwvuS4gOiyqyA+IHNodWJpaWtrYW5cIDsKK+WMu+eZguS/nemZuiA+IGlyeW91aG9rZW5cIDsKK+atpuijheino+mZpCA+IGJ1c291a2Fpam9cIDsKK+ihqOaEj+aWh+WtlyA+IGh5b3VpbW9uamlcIDsKK+mDveW4guWbveWutiA+IHRvc2hpa29ra2FcIDsKK+eEoeeCuuW+kumjnyA+IG11aXRvc2hva3VcIDsKK+aYoOeUu+mfs+alvSA+IGVpZ2Fvbmdha3VcIDsKK+WJjeW+jOW3puWPsyA+IHplbmdvc2F5dXVcIDsKK+mHjuaIpueJueenkSA+IHlhc2VudG9ra2FcIDsKK+S4jee+iOWllOaUviA+IGZ1a2lob25wb3VcIDsKK+S4gOaJi+iyqeWjsiA+IGl0dGVoYW5iYWlcIDsKK+W9k+W6p+mgkOmHkSA+IHRvdXpheW9raW5cIDsKK+ahnOiKseeIm+a8qyA+IG91a2FyYW5tYW5cIDsKK+iHqueUseiHquWcqCA+IGppeXV1aml6YWlcIDsKK+S5vueHpeeEoeWRsyA+IGthbnNvdW11bWlcIDsKK+S6jOmgheWumueQhiA+IG5pa291dGVpcmlcIDsKK+a0u+aAp+axmuazpSA+IGthc3NlaW9kZWlcIDsKK+S4ieS4ieS6lOS6lCA+IHNhbnNhbmdvZ29cIDsKK+WcqOW6q+euoeeQhiA+IHphaWtva2FucmlcIDsKK+eBq+eBveS/nemZuiA+IGthc2FpaG9rZW5cIDsKK+e9teipiOmbkeiogCA+IGJhcml6b3Vnb25cIDsKK+mBk+i3r+WwgemOliA+IGRvdXJvZnV1c2FcIDsKK+Wwj+WnlOWToeS8miA+IHNob3VpaW5rYWlcIDsKK+S6pOa4ieWnlOWToSA+IGtvdXNob3VpaW5cIDsKK+WQiOWQjOihjOeCuiA+IGdvdWRvdWtvdWlcIDsKK+eCiei+uuirh+ipsSA+IHJvaGVuZGFud2FcIDsKK+mBjuWOu+WIhuipniA+IGtha29idW5zaGlcIDsKK+WWtuWIqeS8muekviA+IGVpcmlnYWlzaGFcIDsKK+S6uuS6i+S4jeecgSA+IGppbmppZnVzZWlcIDsKK+eVsOaAp+mWouS/giA+IGlzZWlrYW5rZWlcIDsKK+S6i+aVheWOn+WboCA+IGppa29nZW4nJ2luXCA7Civlrrblh7rlsJHlpbMgPiBpZWRlc2hvdWpvXCA7Civlj6TlhbjkuLvnvqkgPiBrb3RlbnNodWdpXCA7CivkuI3ms5XmipXmo4QgPiBmdWhvdXRvdWtpXCA7Civkuozph43onrrml4sgPiBuaWp1dXJhc2VuXCA7CivkvY3nm7jpgJ/luqYgPiBpc291c29rdWRvXCA7Civpn7Ppn7vpg6jploAgPiBvbicnaW5idW1vblwgOwor5qmf6IO95Li7576pID4ga2lub3VzaHVnaVwgOwor5qmf5qKw6K2m5YKZID4ga2lrYWlrZWliaVwgOwor5Z+656SO6Kmm6aiTID4ga2lzb3NoaWtlblwgOwor5a625bqt6I+c5ZySID4ga2F0ZWlzYWllblwgOwor6YGT6Lev5bel5LqLID4gZG91cm9rb3VqaVwgOwor5Lqc54i+54S25LiBID4gYXJ1emVuY2hpblwgOwor5Zub6Ium5YWr6IumID4gc2hpa3VoYWtrdVwgOwor5aeU57Sw6Z2i6KuHID4gaXNhaW1lbmRhblwgOwor5a++5qCh6Kmm5ZCIID4gdGFpa291amlhaVwgOwor5Lq65rCX5L2c5a62ID4gbmlua2lzYWtrYVwgOwor5pqW5Yas55Ww5aSJID4gZGFudG91aWhlblwgOwor5aWz5oCn5LiA6IisID4gam9zZWlpcHBhblwgOwor5oCq542j5pig55S7ID4ga2FpanV1ZWlnYVwgOwor5aSa56iu5aSa5qeYID4gdGFzaHV0YXlvdVwgOwor5LqM6YOo5pWZ5o6IID4gbmlidWt5b3VqdVwgOwor6YCf5bqm6YGV5Y+NID4gc29rdWRvaWhhblwgOwor5qiq5pat5q2p6YGTID4gb3VkYW5ob2RvdVwgOwor6IiX6KOF6YGT6LevID4gaG9zb3Vkb3Vyb1wgOwor54Sh57ea5oqA5birID4gbXVzZW5naXNoaVwgOwor6aOb6bOl5pmC5LujID4gYXN1a2FqaWRhaVwgOwor5Zue6Lev5Z+65p2/ID4ga2Fpcm9raWJhblwgOwor5b2i5oiQ5aSW56eRID4ga2Vpc2VpZ2VrYVwgOwor5a6H5a6Z5YW15ZmoID4gdWNodXVoZWlraVwgOwor55Ww5bi45rCX6LGhID4gaWpvdWtpc2hvdVwgOwor54Sh5qmf5YyW5a2mID4gbXVraWthZ2FrdVwgOwor6Ieq55Sx5Li7576pID4gaml5dXVzaHVnaVwgOwor5L2N6KiY6L+96LSIID4gaWtpdHN1aXNvdVwgOwor5a6f5YaZ5pig55S7ID4gamlzc2hhZWlnYVwgOwor6Ieq55Sx5pmC6ZaTID4gaml5dXVqaWthblwgOwor5b6h56S85aWJ5YWsID4gb3JlaWJvdWtvdVwgOwor5ZyS6Iq455So5YW3ID4gZW5nZWl5b3VndVwgOwor56C06Iy255uu6Iy2ID4gaGFjaGFtZWNoYVwgOwor5LiN56mP5paH5pu4ID4gZnVvbmJ1bnNob1wgOwor5ryi5a2X5paH5YyWID4ga2FuamlidW5rYVwgOwor5LqI5YKZ6Kmm6aiTID4geW9iaXNoaWtlblwgOwor5Yq05YuZ566h55CGID4gcm91bXVrYW5yaVwgOwor5bmz5ZKM5Lya6K2wID4gaGVpd2FrYWlnaVwgOwor5Lu75YuZ6YOo6ZqKID4gbmlubXVidXRhaVwgOwor5bCP6ZaT54mp5bGLID4ga29tYW1vbm95YVwgOwor57im5qiq54Sh5bC9ID4ganV1b3VtdWppblwgOwor5Zu95a625Li7576pID4ga29ra2FzaHVnaVwgOwor6YGO5Ymw5oqV5LiOID4ga2Fqb3V0b3V5b1wgOwor6KuW55CG5Zue6LevID4gcm9ucmlrYWlyb1wgOwor6Ieq5aOK5L2c55SoID4gamlrYWlzYXlvdVwgOwor5rqW5YKZ5pyf6ZaTID4ganVuYmlraWthblwgOwor5aSp5LiL54Sh5Y+MID4gdGVua2FtdXNvdVwgOwor5LiA54CJ5Y2D6YeMID4gaXNzaGFzZW5yaVwgOwor5qiq6KGM6ZeK5q2pID4gb3Vrb3VrYXBwb1wgOwor5Ymw5L2Z5L6h5YCkID4gam91eW9rYWNoaVwgOwor5paH5YyW5Zu95a62ID4gYnVua2Frb2trYVwgOwor6Iie5Y+w56i95Y+kID4gYnV0YWlnZWlrb1wgOwor5LyK5Yui5aSn5bufID4gaXNldGFpYnlvdVwgOwor55u45LqS5pSv5o+0ID4gc291Z29zaGllblwgOwor5pmu6YGN5Y6f55CGID4gZnVoZW5nZW5yaVwgOwor5LiN5Y2z5LiN6ZuiID4gZnVzb2t1ZnVyaVwgOwor5oKq5Zug5oKq5p6cID4gYWt1aW4nJ2Fra2FcIDsKK+S4ieOAheS5neW6piA+IHNhbnNhbmt1ZG9cIDsKK+mZhOWSjOmbt+WQjCA+IGZ1d2FyYWlkb3VcIDsKK+WMlueyp+mDqOWxiyA+IGtlc2hvdWJleWFcIDsKK+ejqOijveefs+WZqCA+IG1hc2Vpc2Vra2lcIDsKK+eItuWtkOWutuW6rSA+IGZ1c2hpa2F0ZWlcIDsKK+S9memfu+Wri+WriyA+IHlvaW5qb3Vqb3VcIDsKK+e4hOaWh+Wcn+WZqCA+IGpvdW1vbmRva2lcIDsKK+iyoeWLmeeuoeeQhiA+IHphaW11a2FucmlcIDsKK+epgueKtuiKseW6jyA+IHN1aWpvdWtham9cIDsKK+i+nuabuOmDqOmWgCA+IGppc2hvYnVtb25cIDsKK+apn+WLlemDqOmaiiA+IGtpZG91YnV0YWlcIDsKK+S/neWuieWHpuWIhiA+IGhvYW5zaG9idW5cIDsKK+aEj+aAneihqOekuiA+IGlzaGloeW91amlcIDsKK+WWtuWIqeS6i+alrSA+IGVpcmlqaWd5b3VcIDsKK+earuiGmuenu+akjSA+IGhpZnVpc2hva3VcIDsKK+itsOS6i+WmqOWusyA+IGdpamlib3VnYWlcIDsKK+S7mOWSjOmbt+WQjCA+IGZ1d2FyYWlkb3VcIDsKK+S4gOmojuW9k+WNgyA+IGlra2l0b3VzZW5cIDsKK+mYv+m8u+WPq+WWmiA+IGFiaWt5b3VrYW5cIDsKK+e1tuWvvua4qeW6piA+IHpldHRhaW9uZG9cIDsKK+m7hOmHkeS4lueVjCA+IG91Z29uc2VrYWlcIDsKK+ajkua4qeW6puioiCA+IGJvdW9uZG9rZWlcIDsKK+WPjeWvvuaEj+imiyA+IGhhbnRhaWlrZW5cIDsKK+aso+axgua1hOWcnyA+IGdvbmd1am91ZG9cIDsKK+mHkeiyqOa6luWCmSA+IGtpbmthanVuYmlcIDsKK+irlueQhue0oOWtkCA+IHJvbnJpc29zaGlcIDsKK+mcsuWcsOagveWfuSA+IHJvamlzYWliYWlcIDsKK+WPpOWis+aZguS7oyA+IGtvZnVuamlkYWlcIDsKK+eEoeeFmeeBq+iWrCA+IG11ZW5rYXlha3VcIDsKK+aUv+ayu+apn+aniyA+IHNlaWppa2lrb3VcIDsKK+aEj+W/l+axuuWumiA+IGlzaGlrZXR0ZWlcIDsKK+iyoOiNt+WIhuaVoyA+IGZ1a2FidW5zYW5cIDsKK+S4jeWBj+S4jeWFmiA+IGZ1aGVuZnV0b3VcIDsKK+WQjOW6iueVsOWkoiA+IGRvdXNob3VpbXVcIDsKK+eEoemZkOi7jOmBkyA+IG11Z2Vua2lkb3VcIDsKK+i7jeS6i+mhp+WVjyA+IGd1bmppa29tb25cIDsKK+iAvee+juS4u+e+qSA+IHRhbmJpc2h1Z2lcIDsKK+WWnOWKh+aYoOeUuyA+IGtpZ2VraWVpZ2FcIDsKK+abvOePoOaymeiPryA+IG1hbmp1c2hhZ2VcIDsKK+aooeaTrOippumokyA+IG1vZ2lzaGlrZW5cIDsKK+imj+WJh+mBleWPjSA+IGtpc29rdWloYW5cIDsKK+Wkj+eCieWGrOaJhyA+IGthcm90b3VzZW5cIDsKK+mbqOWkqeaxuuihjCA+IHV0ZW5rZWtrb3VcIDsKK+aEj+imi+S6pOaPmyA+IGlrZW5rb3VrYW5cIDsKK+S4jeS5vuaAp+ayuSA+IGZ1a2Fuc2VpeXVcIDsKK+azjOWwv+WZqOenkSA+IGhpbnlvdWtpa2FcIDsKK+W4t+W5hOS4iuWljyA+IGlha3Vqb3Vzb3VcIDsKK+WFqOaoqeWnlOWToSA+IHplbmtlbicnaWluXCA7CivmvJTnrpfmqZ/mp4sgPiBlbnphbmtpa291XCA7CivnhKHok4vosqjou4ogPiBtdWdhaWthc2hhXCA7CivkuozljYHkuJbntIAgPiBuaWppc3NlaWtpXCA7Civkv53orbflh6bliIYgPiBob2dvc2hvYnVuXCA7Civnmq7ohprnp5HlraYgPiBoaWZ1a2FnYWt1XCA7CivooYbmhJrmlL/msrsgPiBzaHVndXNlaWppXCA7Civkvo3lvpPmrablrpggPiBqaWp1dWJ1a2FuXCA7CivmjqfoqLTmnJ/plpMgPiBrb3Vzb2tpa2FuXCA7CivkuIrkvY3mp4vpgKAgPiBqb3Vpa291em91XCA7CivluLjku7vlp5Tlk6EgPiBqb3VuaW4nJ2lpblwgOwor6Iqd5bGF5bCP5bGLID4gc2hpYmFpZ295YVwgOwor5YWs56ef5YWs6KqyID4ga291c29rb3VrYVwgOwor5piT5oSf5p+T5oCnID4gaWthbnNlbnNlaVwgOwor57SA5LyK5ZyL5bGLID4ga2lub2t1bml5YVwgOwor5aSc6be56JWO6bqmID4geW90YWthc29iYVwgOwor5Yuk5YuZ5pmC6ZaTID4ga2lubXVqaWthblwgOwor5Y6t5LiW5Li7576pID4gZW5zZWlzaHVnaVwgOwor5Y2Y5L2N6KiY5Y+3ID4gdGFuJydpa2lnb3VcIDsKK+aOkuS7luS4u+e+qSA+IGhhaXRhc2h1Z2lcIDsKK+Wuh+Wumemjm+ihjCA+IHVjaHV1aGlrb3VcIDsKK+S7ruWQjeiNiee0mSA+IGthbmF6b3VzaGlcIDsKK+WdkeWGheS6i+aVhSA+IGtvdW5haWppa29cIDsKK+irlueQhua8lOeulyA+IHJvbnJpZW56YW5cIDsKK+mbu+awl+avm+W4gyA+IGRlbmtpbW91ZnVcIDsKK+mbsumsouiKsemhlCA+IHVuYmlua2FnYW5cIDsKK+W+oeWJjeS8muitsCA+IGdvemVua2FpZ2lcIDsKK+S6iOWCmeiqv+afuyA+IHlvYmljaG91c2FcIDsKK+W5s+WSjOS4u+e+qSA+IGhlaXdhc2h1Z2lcIDsKK+eosuiNt+Wvv+WPuCA+IGluYXJpenVzaGlcIDsKK+azqOaEj+S6i+mghSA+IGNodXVpamlrb3VcIDsKK+iDuOmDqOWkluenkSA+IGt5b3VidWdla2FcIDsKK+mdnuWPr+aPm+e+pCA+IGhpa2FrYW5ndW5cIDsKK+mBuuS8neaDheWgsSA+IGlkZW5qb3Vob3VcIDsKK+WvhOeUn+eBq+WxsSA+IGtpc2Vpa2F6YW5cIDsKK+S6jOmDqOaOiOalrSA+IG5pYnVqdWd5b3VcIDsKK+mdnuWWtuWIqeeahCA+IGhpZWlyaXRla2lcIDsKK+ays+W3neW3peS6iyA+IGthc2Vua291amlcIDsKK+ebuOaJi+asoeesrCA+IGFpdGVzaGlkYWlcIDsKK+S+v+WunOS4u+e+qSA+IGJlbmdpc2h1Z2lcIDsKK+earuiGmuWRvOWQuCA+IGhpZnVrb2t5dXVcIDsKK+S6nOaIkOWxpOWcjyA+IGFzZWlzb3VrZW5cIDsKK+epuui7jeWkp+WwiSA+IGt1dWd1bnRhaWlcIDsKK+S4ieOAheS6lOOAhSA+IHNhbnNhbmdvZ29cIDsKK+aiteWSjOi+nuWFuCA+IGJvbndhaml0ZW5cIDsKK+aOp+iotOeQhueUsSA+IGtvdXNvcml5dXVcIDsKK+mDqOmaiuWMuuWIhiA+IGJ1dGFpa3VidW5cIDsKK+aCqumtlOS4u+e+qSA+IGFrdW1hc2h1Z2lcIDsKK+itt+WyuOW3peS6iyA+IGdvZ2Fua291amlcIDsKK+S9memfu+Wri+OAhSA+IHlvaW5qb3Vqb3VcIDsKK+eUsOWkq+mHjuS6uiA+IGRlbnB1eWFqaW5cIDsKK+Wlh+Wlh+aAquaAqiA+IGtpa2lrYWlrYWlcIDsKK+elnuS7o+aWh+WtlyA+IGppbmRhaW1vamlcIDsKK+WPpOWFuOaZguS7oyA+IGtvdGVuamlkYWlcIDsKK+W4guS8muitsOWToSA+IHNoaWthaWdpaW5cIDsKK+WNsemZuuiyoOaLhSA+IGtpa2VuZnV0YW5cIDsKK+WBpeW6t+S4jeWuiSA+IGtlbmtvdWZ1YW5cIDsKK+W/nOaApea4oeaysyA+IG91a3l1dXRva2FcIDsKK+S6jOmHjeWQpuWumiA+IG5panV1aGl0ZWlcIDsKK+aEj+awl+ihneWkqSA+IGlraXNob3V0ZW5cIDsKK+WMu+WtpueUqOiqniA+IGlnYWt1eW91Z29cIDsKK+iInuWPsOWKueaenCA+IGJ1dGFpa291a2FcIDsKK+mbu+S9jeW3ruioiCA+IGRlbicnaXNha2VpXCA7CivluqbmlbDliIbluIMgPiBkb3N1dWJ1bnB1XCA7CivpgYvpgIHkv53pmbogPiB1bnNvdWhva2VuXCA7Civpq5jmiYvlsI/miYsgPiB0YWthdGVrb3RlXCA7CivnhKHlkbPkub7nh6UgPiBtdW1pa2Fuc291XCA7CivkuIvpmaLorbDplbcgPiBrYWluZ2ljaG91XCA7Civou43lgpnnrqHnkIYgPiBndW5iaWthbnJpXCA7CivmqLnohILliqDlt6UgPiBqdXNoaWtha291XCA7CivliKnmsLTlt6XkuosgPiByaXN1aWtvdWppXCA7CivpnZ7luLjkuovmhYsgPiBoaWpvdWppdGFpXCA7Civmraboo4XonILotbcgPiBidXNvdWhvdWtpXCA7CivmnInlo7Dpn7PljJYgPiB5dXVzZWlvbmthXCA7CivkvqHlgKTln7rmupYgPiBrYWNoaWtpanVuXCA7Civoqr/nkIblmajlhbcgPiBjaG91cmlraWd1XCA7CivnoLLnhZnlvL7pm6ggPiBob3VlbmRhbicndVwgOwor6aas6ICz5p2x6aKoID4gYmFqaXRvdWZ1dVwgOwor5bmz6KGM56e75YuVID4gaGVpa291aWRvdVwgOwor6KOc5Yqp5YuV6KmeID4gaG9qb2RvdXNoaVwgOwor5ZCm5a6a5b+c562UID4gaGl0ZWlvdXRvdVwgOwor6Ieq5bex6LOH5pysID4gamlrb3NoaWhvblwgOwor6buE6YeR5pmC5LujID4gb3Vnb25qaWRhaVwgOwor5ZG95Luk5LiA5LiLID4gbWVpcmVpaWtrYVwgOwor57SN5LuY5pyf6ZmQID4gbm91ZnVraWdlblwgOwor5pG45pOs6Kmm6aiTID4gbW9naXNoaWtlblwgOwor5bCP5YWQ6bq755e6ID4gc2hvdW5pbWFoaVwgOwor5a6j5Lyd6KiY5LqLID4gc2VuZGVua2lqaVwgOwor5aSP5a2j5LyR5pqHID4ga2FraWt5dXVrYVwgOwor6Ieo5pmC5pS/5bqcID4gcmluamlzZWlmdVwgOwor5LiJ5pel5LiJ5pmpID4gbWlra2FtaWJhblwgOwor54Sh55CG6Zuj6aGMID4gbXVyaW5hbmRhaVwgOwor5LqI5YKZ6KOF572uID4geW9iaXNvdWNoaVwgOwor5p6c5qi55qC95Z+5ID4ga2FqdXNhaWJhaVwgOwor57KX6KGj57KX6aOfID4gc29pc29zaG9rdVwgOwor5Lq65rCR5aeU5ZOhID4gamlubWluJydpaW5cIDsKK+mjveWSjOiSuOawlyA+IGhvdXdham91a2lcIDsKK+WMueWkq+WMueWppiA+IGhpcHB1aGlwcHVcIDsKK+S6jOWIhumfs+espiA+IG5pYnVuJydvbnB1XCA7CivljYPms6LkuIfms6IgPiBzZW5wYWJhbnBhXCA7CivnlbDluLjnmbrnlJ8gPiBpam91aGFzc2VpXCA7Civmsrvlronpg6jpmoogPiBjaGlhbmJ1dGFpXCA7CivliIPlgrfmspnmsbAgPiBuaW5qb3V6YXRhXCA7CivkuI3mtLvmgKfljJYgPiBmdWthc3NlaWthXCA7Civlt6Xkuovnj77loLQgPiBrb3VqaWdlbmJhXCA7Civoh6rlt7HlrqPkvJ0gPiBqaWtvc2VuZGVuXCA7CivmsJfnrqHmlK/ngo4gPiBraWthbnNoaWVuXCA7CivmiYvliY3li53miYsgPiB0ZW1hZWdhdHRlXCA7Civkv53lrojkuLvnvqkgPiBob3NodXNodWdpXCA7CivmnKjnq6/lvq7lobUgPiBrb3BwYW1pamluXCA7CivmrbvkuqHoqJjkuosgPiBzaGlib3VraWppXCA7CivpgY7libDliKnnm4ogPiBrYWpvdXJpZWtpXCA7CivlpbPlsIrnlLfljZEgPiBqb3NvbmRhbnBpXCA7CivljYHkuozljZjooaMgPiBqdXVuaWhpdG9lXCA7CivliIbpm6LoqrLnqI4gPiBidW5yaWthemVpXCA7Civku7vmhI/mjZzmn7sgPiBuaW4nJ2lzb3VzYVwgOwor5LiK5L2N5qaC5b+1ID4gam91aWdhaW5lblwgOwor6Iie5Y+w6YGT5YW3ID4gYnV0YWlkb3VndVwgOwor5LiK5pig5pmC6ZaTID4gam91ZWlqaWthblwgOwor6KiI5Zmo6aOb6KGMID4ga2Vpa2loaWtvdVwgOwor5oim54G95a2k5YWQID4gc2Vuc2Fpa29qaVwgOwor5Z+65pys5Y6f55CGID4ga2lob25nZW5yaVwgOwor5oOF5oSP5oqV5ZCIID4gam91aXRvdWdvdVwgOwor566h55CG5qmf6IO9ID4ga2FucmlraW5vdVwgOwor6Ieo5pmC6KiY5Y+3ID4gcmluamlraWdvdVwgOwor5YW15b255b+M6YG/ID4gaGVpZWtpa2loaVwgOwor5oim5LqJ5pig55S7ID4gc2Vuc291ZWlnYVwgOwor6LKh5pS/5Y2x5qmfID4gemFpc2Vpa2lraVwgOwor5pyJ6ZmQ6Iqx5bqPID4geXV1Z2Vua2Fqb1wgOwor6LuN5LqL5Z+65ZywID4gZ3VuamlraWNoaVwgOwor5LiN5q2j5LqL5Lu2ID4gZnVzZWlqaWtlblwgOwor5Ye65p2l5qyh56ysID4gZGVraXNoaWRhaVwgOwor5aSJ5L2T5Luu5ZCNID4gaGVudGFpZ2FuYVwgOwor6Iux6ZuE5Li7576pID4gZWl5dXVzaHVnaVwgOwor55e06Kmx5Zan5ZipID4gY2hpd2FnZW5rYVwgOwor54OP5pyJ5YWI55SfID4gdXl1dXNlbnNlaVwgOwor5oay5rOV6YGV5Y+NID4ga2VucG91aWhhblwgOwor5Zue6Lui5qSF5a2QID4ga2FpdGVuJydpc3VcIDsKK+iDveeZu+WNiuWztiA+IG5vdG9oYW50b3VcIDsKK+WKo+aAp+mBuuS8nSA+IHJlc3NlaWlkZW5cIDsKK+iri+iyoOWItuW6piA+IHVrZW9pc2VpZG9cIDsKK+awtOi7iuWwj+WxiyA+IHN1aXNoYWdveWFcIDsKK+ikkOavm+WSjOeoriA+IGFrYWdld2FzaHVcIDsKK+WbuuWumuiyoOWCtSA+IGtvdGVpZnVzYWlcIDsKK+S+nemhmOWFjeWumCA+IGlnYW5tZW5rYW5cIDsKK+aUv+W6nOapn+mWoiA+IHNlaWZ1a2lrYW5cIDsKK+S6i+S7tuiomOiAhSA+IGppa2Vua2lzaGFcIDsKK+W5s+WuieW+jOacnyA+IGhlaWFua291a2lcIDsKK+mbh+eUqOS/nemZuiA+IGtveW91aG9rZW5cIDsKK+S/neitt+iyv+aYkyA+IGhvZ29ib3Vla2lcIDsKK+S4lueVjOWItuimhyA+IHNla2Fpc2VpaGFcIDsKK+eEoeapn+iCpeaWmSA+IG11a2loaXJ5b3VcIDsKK+mrmOmHjuixhuiFkCA+IGtvdXlhZG91ZnVcIDsKK+S7o+itsOaUv+ayuyA+IGRhaWdpc2VpamlcIDsKK+aEj+mmrOW/g+eMvyA+IGliYXNoaW4nJ2VuXCA7CivkuqTpgJrpgbrlhZAgPiBrb3V0c3V1aWppXCA7Civpgbrmo4TosqjniakgPiBpa2lrYW1vdHN1XCA7Civngq3ljJbmsLTntKAgPiB0YW5rYXN1aXNvXCA7Civlm7LnooHkuInntJogPiBpZ29zYW5reXV1XCA7CivnlKPlqabkurrnp5EgPiBzYW5mdWppbmthXCA7CivnkIbmg7PkuLvnvqkgPiByaXNvdXNodWdpXCA7CivljYHlrZfnoLLngasgPiBqdXVqaWhvdWthXCA7Civpg73pgZPlupznnIwgPiB0b2RvdWZ1a2VuXCA7Civpup3pppnosYzosYYgPiBqYWtvdWVuZG91XCA7Civnm7LllJblrabmoKEgPiBtb3VhZ2Fra291XCA7Civkv53lronmnaHkvosgPiBob2Fuam91cmVpXCA7Civnn7PlmajmmYLku6MgPiBzZWtraWppZGFpXCA7CivkvLzpnZ7nkIblsYggPiBlc2VyaWt1dHN1XCA7CivoqJjlv7XliIfmiYsgPiBraW5lbmtpdHRlXCA7CivlgIvkurrlgIvkurogPiBrb2ppbmtvamluXCA7Civlu7bmu57liKnlrZAgPiBlbnRhaXJpc2hpXCA7CivliIbmtL7kuLvnvqkgPiBidW5wYXNodWdpXCA7Civmr4DoqonopJLosrYgPiBraXlvaG91aGVuXCA7CivllK/nvo7kuLvnvqkgPiB5dWliaXNodWdpXCA7Civou43kuovooZvmmJ8gPiBndW5qaWVpc2VpXCA7CivnhKHmiJHlpKLkuK0gPiBtdWdhbXVjaHV1XCA7CivkuojlrprmnJ/pmZAgPiB5b3RlaWtpZ2VuXCA7Civnq4vkvZPmmKDnlLsgPiByaXR0YWllaWdhXCA7CivlpKnmsJfmqKHmp5ggPiB0ZW5raW1veW91XCA7Civngavlj6Pljp/muZYgPiBrYWtvdWdlbmtvXCA7Civooajpn7PlrZfmr40gPiBoeW91b25qaWJvXCA7Civpn7Plo7DoqIDoqp4gPiBvbnNlaWdlbmdvXCA7CivkuIDmmKjmmKjml6UgPiBzYWtpb3RvdG9pXCA7CivohLHms5XooYzngrogPiBkYXBwb3Vrb3VpXCA7CivlgIvkurrkuLvnvqkgPiBrb2ppbnNodWdpXCA7CivkuI3mraPopo/ou40gPiBmdXNlaWtpZ3VuXCA7Civlh4bnnIvorbflqaYgPiBqdW5rYW5nb2Z1XCA7Civmr43lrZDlrrbluq0gPiBib3NoaWthdGVpXCA7CivlkIzlkI3nlbDkurogPiBkb3VtZWlpamluXCA7CivogrLlhZDmmYLplpMgPiBpa3VqaWppa2FuXCA7CivmmYLkvqHnmbrooYwgPiBqaWthaGFra291XCA7CivkvJrorbDkuovpoIUgPiBrYWlnaWppa291XCA7Civku67mg7PoqJjmhrYgPiBrYXNvdWtpb2t1XCA7Civpg6jliIbpurvphZQgPiBidWJ1bm1hc3VpXCA7CivmpJzkuovmjqfoqLQgPiBrZW5qaWtvdXNvXCA7CivntYzllrbnrqHnkIYgPiBrZWllaWthbnJpXCA7Civpo5vooYzmmYLplpMgPiBoaWtvdWppa2FuXCA7Civlm5vlrZfnhp/oqp4gPiB5b2ppanVrdWdvXCA7Civoh6jmqZ/lv5zlpIkgPiByaW5raW91aGVuXCA7CivlrprmnJ/kv53pmbogPiB0ZWlraWhva2VuXCA7CivpgKDoqIDpo5voqp4gPiB6b3VnZW5oaWdvXCA7Civkuovli5nnlKjlk4EgPiBqaW11eW91aGluXCA7CivoqIDoqp7lnLDnkIYgPiBnZW5nb2NoaXJpXCA7Civniq/nvarooYzngrogPiBoYW56YWlrb3VpXCA7CivovLjpgIHmqZ/plqIgPiB5dXNvdWtpa2FuXCA7Civoo5zliqnoiaboiYcgPiBob2pva2FudGVpXCA7CivkupTph4zpnKfkuK0gPiBnb3JpbXVjaHV1XCA7CivkuInml6XlpKnkuIsgPiBtaWtrYXRlbmthXCA7Civln7rmnKzljZjkvY0gPiBraWhvbnRhbicnaVwgOwor54y25LqI5pyf6ZaTID4geXV1eW9raWthblwgOwor6KuL6LKg5bel5LqLID4gdWtlb2lrb3VqaVwgOwor5oSP5oCd5rG65a6aID4gaXNoaWtldHRlaVwgOwor5b6M6YCA5paH5a2XID4ga291dGFpbW9qaVwgOwor55S35bCK5aWz5Y2RID4gZGFuc29uam9oaVwgOwor5aSn5oWI5aSn5oKyID4gZGFpamlkYWloaVwgOwor5aaC5L2V5qeY5birID4gaWthc2FtYXNoaVwgOwor6Ieo55WM5LqL5pWFID4gcmlua2Fpamlrb1wgOwor5Zug5p6c6Zai5L+CID4gaW5nYWthbmtlaVwgOwor55Ww56iu5Lqk6YWNID4gaXNodWtvdWhhaVwgOwor5aSc6ZaT5Yuk5YuZID4geWFrYW5raW5tdVwgOwor5b6h5Zu96Ieq5oWiID4gb2t1bmlqaW1hblwgOwor56We57WM56eR5Yy7ID4gc2hpbmtlaWthaVwgOwor5a6M5YWo6Kmm5ZCIID4ga2FuemVuamlhaVwgOwor5YWs56S65Zyw5L6hID4ga291amljaGlrYVwgOwor5LiA5a2X5LiA5Y+lID4gaWNoaWppaWtrdVwgOwor5Y6f55CG5Li7576pID4gZ2VucmlzaHVnaVwgOwor56ul6Kmx5L2c5a62ID4gZG91d2FzYWtrYVwgOwor5aao5a6z6KGM54K6ID4gYm91Z2Fpa291aVwgOwor6YGL5Za257WM6LK7ID4gdW4nJ2Vpa2VpaGlcIDsKK+S6jOmDqOWQiOWljyA+IG5pYnVnYXNzb3VcIDsKK+WQjeiqieavgOaQjSA+IG1laXlva2lzb25cIDsKK+iomOmMsuaYoOeUuyA+IGtpcm9rdWVpZ2FcIDsKK+mBi+aQrOeuoeeQhiA+IHVucGFua2FucmlcIDsKK+WMu+enkeWkp+WtpiA+IGlrYWRhaWdha3VcIDsKK+WKoOa4m+S5l+mZpCA+IGthZ2Vuam91am9cIDsKK+mYv+eJh+aIpuS6iSA+IGFoZW5zZW5zb3VcIDsKK+WUr+WUr+irvuirviA+IGlpZGFrdWRha3VcIDsKK+ebuOWvvuiqpOW3riA+IHNvdXRhaWdvc2FcIDsKK+mjsumFkumBi+i7oiA+IGluc2h1dW50ZW5cIDsKK+aMh+WQjeippuWQiCA+IHNoaW1laWppYWlcIDsKK+W+kuW8n+WItuW6piA+IHRvdGVpc2VpZG9cIDsKK+e0i+e+veS6jOmHjSA+IG1vbmhhYnV0YWVcIDsKK+iyqOW5o+WItuW6piA+IGthaGVpc2VpZG9cIDsKK+aXpeWSjOS4i+mnhCA+IGhpeW9yaWdldGFcIDsKK+S4lueVjOW5s+WSjCA+IHNla2FpaGVpd2FcIDsKK+eEoeeQhumWouaVsCA+IG11cmlrYW5zdXVcIDsKK+mfs+WQkOacl+aclyA+IG9udG9yb3Vyb3VcIDsKK+aihembqOWJjee3miA+IGJhaXV6ZW5zZW5cIDsKK+mbu+awl+aZguioiCA+IGRlbmtpZG9rZWlcIDsKK+S6jOWNgeWbm+aXpSA+IG5panV1eW9ra2FcIDsKK+aCsuatjOaFt+aFqCA+IGhpa2Frb3VnYWlcIDsKK+S6iOmYsuWMu+WtpiA+IHlvYm91aWdha3VcIDsKK+W9k+acn+WIqeebiiA+IHRvdWtpcmlla2lcIDsKK+earuS4i+iEguiCqiA+IGhpa2FzaGlib3VcIDsKK+mZtuejgeWZqOW6lyA+IHRvdWppa2l0ZW5cIDsKK+WIh+espuWjsuWgtCA+IGtpcHB1dXJpYmFcIDsKK+ijuOS9k+S4u+e+qSA+IHJhdGFpc2h1Z2lcIDsKK+mfs+aomeaWh+WtlyA+IG9ucHlvdW1vamlcIDsKK+S4jeato+imj+aIpiA+IGZ1c2Vpa2lzZW5cIDsKK+e1tuWvvuS9jee9riA+IHpldHRhaWljaGlcIDsKK+ewoeaYk+S/nemZuiA+IGthbicnaWhva2VuXCA7Civlr6HpoK3mlL/msrsgPiBrYXRvdXNlaWppXCA7CivkuIvmsLTlh6bnkIYgPiBnZXN1aXNob3JpXCA7CivoqJjmhrbntKDlrZAgPiBraW9rdXNvc2hpXCA7Civpn7Plo7DoqJjlj7cgPiBvbnNlaWtpZ291XCA7CivlkozlubPkvJrorbAgPiB3YWhlaWthaWdpXCA7CivnoLTlo4rkuLvnvqkgPiBoYWthaXNodWdpXCA7Civlroflrpnln7rlnLAgPiB1Y2h1dWtpY2hpXCA7CivkuI3lj6/nn6Xoq5YgPiBmdWthY2hpcm9uXCA7Civoh6rooZvmiYvmrrUgPiBqaWVpc2h1ZGFuXCA7CivlsI/lo7LlgKTmrrUgPiBrb3VyaW5lZGFuXCA7CivluILloLTopo/mqKEgPiBzaGlqb3VraWJvXCA7CivorbDlk6Hnq4vms5UgPiBnaWlucmlwcG91XCA7CivlrabntJrlp5Tlk6EgPiBnYWtreXV1aWluXCA7CivorbDkvJrkuLvnvqkgPiBnaWthaXNodWdpXCA7Civln7rnpI7np5HlraYgPiBraXNva2FnYWt1XCA7CivmjZzmn7vmnKzpg6ggPiBzb3VzYWhvbmJ1XCA7CivlroflrpnmjqLmn7sgPiB1Y2h1dXRhbnNhXCA7CivkupzpurvnuZTniakgPiBhbWFvcmltb25vXCA7CivpoIbluo/kuI3lkIwgPiBqdW5qb2Z1ZG91XCA7CivntYzmuIjmj7TliqkgPiBrZWl6YWllbmpvXCA7CivntK/nrpfmuKnluqYgPiBydWlzYW5vbmRvXCA7CivmtarmvKvkuLvnvqkgPiByb21hbnNodWdpXCA7Civmraboo4Xpg73luIIgPiBidXNvdXRvc2hpXCA7CivlubPlkozlm73lrrYgPiBoZWl3YWtva2thXCA7CivpgZPot6/lnLDlm7MgPiBkb3Vyb2NoaXp1XCA7CivlvqHmnLHljbDoiLkgPiBnb3NodWluc2VuXCA7CivlpJzpg47oh6rlpKcgPiB5YXJvdWppZGFpXCA7Civpg6jliIblkKblrpogPiBidWJ1bmhpdGVpXCA7CivorJvlkozkvJrorbAgPiBrb3V3YWthaWdpXCA7Civnt6jntYTmqZ/morAgPiBoZW5zb2tpa2FpXCA7CivljLvnmYLlmajmorAgPiBpcnlvdWtpa2FpXCA7CivmraPopo/liIbluIMgPiBzZWlraWJ1bnB1XCA7CivkvJrlk6HlkI3nsL8gPiBrYWlpbm1laWJvXCA7CivlpKnlpInlnLDnlbAgPiB0ZW5wZW5jaGlpXCA7CivmnInlj7Lku6XmnaUgPiB5dXVzaGlpcmFpXCA7Civkv53orbfplqLnqI4gPiBob2dva2FuemVpXCA7CivmnKrluLDpgoTogIUgPiBtaWtpa2Fuc2hhXCA7CivkuInml6XlnYrkuLsgPiBtaWtrYWJvdXp1XCA7Civnorrlm7rkuI3li5UgPiBrYWtrb2Z1ZG91XCA7CivkuI3lgbTkuI3pm6IgPiBmdXNva3VmdXJpXCA7CivmlofmiL/lhbflsYsgPiBidW5ib3VndXlhXCA7CivlurfnhZXlrZflhbggPiBrb3VraWppdGVuXCA7CivmnKrmnaXmsLjliqsgPiBtaXJhaWVpZ291XCA7CivnhKHnkIbnrpfmrrUgPiBtdXJpc2FuZGFuXCA7CivomZ7nvo7kurrojYkgPiBndWJpamluc291XCA7CivosaHniZnntLDlt6UgPiB6b3VnZXphaWt1XCA7Civmu4XojLbmu4XojLYgPiBtZWNoYW1lY2hhXCA7Civpoqjou4rlsI/lsYsgPiBmdXVzaGFnb3lhXCA7CivlrZDkvpvpg6jlsYsgPiBrb2RvbW9iZXlhXCA7CivmsYLmhJvoqofnpLogPiBreXV1YWlrb2ppXCA7CivnjovmlL/lvqnlj6QgPiBvdXNlaWZ1a2tvXCA7CivkuIDkurrpg6jlsYsgPiBoaXRvcmliZXlhXCA7CivkuI3osrfpgYvli5UgPiBmdWJhaXVuZG91XCA7CivlkJ3ll4flkJ3ll4cgPiBrZWNoaWtlY2hpXCA7CivlrprmnJ/poJDph5EgPiB0ZWlraXlva2luXCA7CivkuIDlrprmnJ/plpMgPiBpdHRlaWtpa2FuXCA7CivlnLDkuIvpgYvli5UgPiBjaGlrYXVuZG91XCA7Civmh5DnlpHkuLvnvqkgPiBrYWlnaXNodWdpXCA7Civono3pgJrnhKHnoo0gPiB5dXV6dXVtdWdlXCA7Civkv53lronopoHlk6EgPiBob2FuJyd5b3VpblwgOwor5Li75oiR5Li7576pID4gc2h1Z2FzaHVnaVwgOwor5LiN5L2c54K654qvID4gZnVzYWt1aWhhblwgOwor6IiX6KOF54WJ55OmID4gaG9zb3VyZW5nYVwgOwor5oqV5b2x5Zuz5rOVID4gdG91ZWl6dWhvdVwgOwor57eP54q26Iqx5bqPID4gc291am91a2Fqb1wgOwor5riF5rWE54Sh5Z6iID4gc2Vpam91bXVrdVwgOwor5LiJ6Z2i6KiY5LqLID4gc2FubWVua2lqaVwgOwor5omN5rCX57im5qiqID4gc2Fpa2lqdXVvdVwgOwor5pys5L2N6LKo5bmjID4gaG9uJydpa2FoZWlcIDsKK+mmrOm5v+S4geWvpyA+IGJha2F0ZWluZWlcIDsKK+aXpeiRoei+nuabuCA+IG5pcHBvamlzaG9cIDsKK+S9jeebuOepuumWkyA+IGlzb3VrdXVrYW5cIDsKK+a1t+S6i+ihm+aYnyA+IGthaWppZWlzZWlcIDsKK+epuuawl+apn+aisCA+IGt1dWtpa2lrYWlcIDsKK+WFseWQjOS6leaIuCA+IGt5b3Vkb3VpZG9cIDsKK+WQiOeQhuS4u+e+qSA+IGdvdXJpc2h1Z2lcIDsKK+Wkqea0peW+oeWniSA+IGFtYXRzdW1pa29cIDsKK+WkqeaJi+WPpOiIniA+IHRlbnRla29tYWlcIDsKK+WknOWFieaZguioiCA+IHlha291ZG9rZWlcIDsKK+iHqui7oui7iuWxiyA+IGppdGVuc2hheWFcIDsKK+iHquWutueUqOi7iiA+IGppa2F5b3VzaGFcIDsKK+WNmOS9jeWItuW6piA+IHRhbicnaXNlaWRvXCA7CivmloflrZfmg4XloLEgPiBtb2ppam91aG91XCA7Civopo/liLbop6PpmaQgPiBraXNlaWthaWpvXCA7CivmsJfnhJTkuIfkuIggPiBraWVuYmFuam91XCA7CivkuIvmsLTlt6XkuosgPiBnZXN1aWtvdWppXCA7CivlkIjmhI/mg4XmrbsgPiBnb3Vpam91c2hpXCA7Civmraboo4XlubPlkowgPiBidXNvdWhlaXdhXCA7Civku5jluK/kuovpoIUgPiBmdXRhaWppa291XCA7CivooYzmlrnkuI3mmI4gPiB5dWt1ZWZ1bWVpXCA7CivlpKnmsJfkuojloLEgPiB0ZW5raXlvaG91XCA7CivkuI3lubPkuI3muoAgPiBmdWhlaWZ1bWFuXCA7Civooqvkv53pmbrogIUgPiBoaWhva2Vuc2hhXCA7CivopqrlrZDpm7voqbEgPiBveWFrb2RlbndhXCA7CivlpJrmg4XlpJrmgaggPiB0YWpvdXRha29uXCA7CivntYzllrbnoLTntrsgPiBrZWllaWhhdGFuXCA7Civos5vliqnkvJrlk6EgPiBzYW5qb2thaWluXCA7CivkuIvpg6jmp4vpgKAgPiBrYWJ1a291em91XCA7Civmr47lnJ/mm5zml6UgPiBtYWlkb3lvdWJpXCA7Civkuojnrpfmjqrnva4gPiB5b3NhbnNvY2hpXCA7CivkuI3nqY/liIblrZAgPiBmdW9uYnVuc2hpXCA7CivllpzmgJLlk4Dmpb0gPiBraWRvYWlyYWt1XCA7CivmvKLlkozovp7lhbggPiBrYW53YWppdGVuXCA7Civlj4voqrzlm73lrrYgPiB5dXVnaWtva2thXCA7Civnm7jkupLkv53pmbogPiBzb3Vnb2hva2VuXCA7CivkuovlpKfkuLvnvqkgPiBqaWRhaXNodWdpXCA7CivkupTovKrkvJrorbAgPiBnb3JpbmthaWdpXCA7Civoqp7lvaLlpInljJYgPiBnb2tlaWhlbmthXCA7CivpnZ7miKbpl5jlk6EgPiBoaXNlbnRvdWluXCA7CivnhKHlv7XnhKHmg7MgPiBtdW5lbm11c291XCA7CivmvJTnrpfmiYvpoIYgPiBlbnphbnRlanVuXCA7Civmrabmlq3kuLvnvqkgPiBidWRhbnNodWdpXCA7CivkuJboqbHkurrplpMgPiBzZXdhbmluZ2VuXCA7Civlub7kvZXlubPlnYcgPiBraWthaGVpa2luXCA7Civkurrlt6XpmY3pm6ggPiBqaW5rb3Vrb3V1XCA7Civoh6rllY/oh6rnrZQgPiBqaW1vbmppdG91XCA7CivnmofntIDlubTluqYgPiBrb3VraW5lbmRvXCA7Civlj6PohZTlpJbnp5EgPiBrb3Vrb3VnZWthXCA7CivohLPmgKfpurvnl7ogPiBub3VzZWltYWhpXCA7CivkupTljYHpn7PpoIYgPiBnb2p1dW9uanVuXCA7CivmvJTnrpfnsr7luqYgPiBlbnphbnNlaWRvXCA7CivljYHlrZfmnrbnirYgPiBqdXVqaWtham91XCA7CivkuI3ogIHkuI3mrbsgPiBmdXJvdWZ1c2hpXCA7CivkuJbnlYzkuLvnvqkgPiBzZWthaXNodWdpXCA7CivonrrpiL/ntLDlt6UgPiByYWRlbnphaWt1XCA7CivoqJjovInkuovpoIUgPiBraXNhaWppa291XCA7Civngq3ntKDnuYrntq0gPiB0YW5zb3NlbicnaVwgOwor54Sh57ea6Zu76KmxID4gbXVzZW5kZW53YVwgOwor5rip5oOF5Li7576pID4gb25qb3VzaHVnaVwgOwor5YCL5Lq657WM5Za2ID4ga29qaW5rZWllaVwgOwor5aWU5pS+5LiN576IID4gaG9ucG91ZnVraVwgOwor6YmE5Zmo5pmC5LujID4gdGVra2lqaWRhaVwgOwor54mp5L6h6aiw6LK0ID4gYnVra2F0b3VraVwgOwor5pel5pys6Iie6LiKID4gbmlob25idXlvdVwgOwor6IG+5ZSW5a2m5qChID4gcm91YWdha2tvdVwgOwor54++5Luj6Iux6KqeID4gZ2VuZGFpZWlnb1wgOwor5Y2B5LqM5L2/5b6SID4ganV1bmlzaGl0b1wgOwor5pel5pys5bqt5ZySID4gbmlob250ZWllblwgOwor6YG65Lyd5pqX5Y+3ID4gaWRlbicnYW5nb3VcIDsKK+i7jeS6i+i8uOmAgSA+IGd1bmppeXVzb3VcIDsKK+S8tOaAp+mBuuS8nSA+IGhhbnNlaWlkZW5cIDsKK+e1jOWWtuWPguWKoCA+IGtlaWVpc2Fua2FcIDsKK+S6iOWCmemBuOaMmSA+IHlvYmlzZW5reW9cIDsKK+S6iOWCmeiJpumaiiA+IHlvYmlrYW50YWlcIDsKK+S6iOWCmemBuOaJiyA+IHlvYmlzZW5zaHVcIDsKK+S4jeWAtuaItOWkqSA+IGZ1Z3V0YWl0ZW5cIDsKK+W5s+WSjOmDqOmaiiA+IGhlaXdhYnV0YWlcIDsKK+WUr+OAheirvuOAhSA+IGlpZGFrdWRha3VcIDsKK+ijgeWIpOaymeaxsCA+IHNhaWJhbnphdGFcIDsKK+WWtuWIqeazleS6uiA+IGVpcmlob3VqaW5cIDsKK+itsOS8muaUv+ayuyA+IGdpa2Fpc2VpamlcIDsKK+mbqOWkqemghuW7tiA+IHV0ZW5qdW4nJ2VuXCA7Civku5jluK/osrvnlKggPiBmdXRhaWhpeW91XCA7Civku6PorbDlk6Hlm6MgPiBkYWlnaWluZGFuXCA7Civkuozph43oqrLnqI4gPiBuaWp1dWthemVpXCA7CivmibbppIrmjqfpmaQgPiBmdXlvdWtvdWpvXCA7CivooZvmmJ/pg73luIIgPiBlaXNlaXRvc2hpXCA7Civpm7vmsJflm57ot68gPiBkZW5raWthaXJvXCA7CivlnLDkuIvkuozpmo4gPiBjaGlrYW5pa2FpXCA7CivpoJDph5Hlj6PluqcgPiB5b2tpbmtvdXphXCA7CivoibLmgYvmspnmsbAgPiBpcm9rb2l6YXRhXCA7CivosqjluaPkvqHlgKQgPiBrYWhlaWthY2hpXCA7Civmrovli5nmlbTnkIYgPiB6YW5tdXNlaXJpXCA7Civlhazllrbkv53pmbogPiBrb3VlaWhva2VuXCA7CivorbLmuKHmi4Xkv50gPiBqb3V0b3RhbnBvXCA7CivkuIDlrrblm6PmrJIgPiBpa2thZGFucmFuXCA7Civku6PorbDlk6HkvJogPiBkYWlnaWlua2FpXCA7Civoo5zmraPkuojnrpcgPiBob3NlaXlvc2FuXCA7CivpgY7libDpmLLooZsgPiBrYWpvdWJvdWVpXCA7CivkuojlgpnluqfluK0gPiB5b2JpemFzZWtpXCA7CivooZvnlJ/ln7rmupYgPiBlaXNlaWtpanVuXCA7Civkv53orbflm6PkvZMgPiBob2dvZGFudGFpXCA7CivlhIDoo4Xppqzou4ogPiBnaXNvdWJhc2hhXCA7CivmmYLkuovllY/poYwgPiBqaWppbW9uZGFpXCA7CivlpKvlqabllqflmKkgPiBmdXVmdWdlbmthXCA7Civmlq3lm7rmipforbAgPiBkYW5rb2tvdWdpXCA7CivkupTovKrogZbngasgPiBnb3JpbnNlaWthXCA7Civoh6rliIbli53miYsgPiBqaWJ1bmthdHRlXCA7Civou43pnIDmma/msJcgPiBndW5qdWtlaWtpXCA7Civln7rlupXpg6jploAgPiBraXRlaWJ1bW9uXCA7CivkuLjlpKrlsI/lsYsgPiBtYXJ1dGFnb3lhXCA7Civkuojmg7PliKnnm4ogPiB5b3NvdXJpZWtpXCA7CivkupTpn7Ppn7Ppmo4gPiBnb29uJydvbmthaVwgOwor54Gr5rCX5Y6z56aBID4ga2FraWdlbmtpblwgOwor5Y2B5a2X5p625YOPID4ganV1amlrYXpvdVwgOwor5Yem55CG6YGO56iLID4gc2hvcmlrYXRlaVwgOwor5LiA5a6a5LiN5aSJID4gaXR0ZWlmdWhlblwgOwor5pyI5LiL576O5Lq6ID4gZ2Vra2FiaWppblwgOwor54Cs5oi45YaF5rW3ID4gc2V0b25haWthaVwgOwor6ICB5pS/5rK75a62ID4gcm91c2VpamlrYVwgOwor5Yqf5Yip5Li7576pID4ga291cmlzaHVnaVwgOwor6KaP5Yi257ep5ZKMID4ga2lzZWlrYW53YVwgOwor5aaC5piv5oiR6IGeID4gbnlvemVnYW1vblwgOwor5piO5rK75pmC5LujID4gbWVpamlqaWRhaVwgOwor5ZCM5YyW5L2c55SoID4gZG91a2FzYXlvdVwgOwor5Yil6YCU6aCQ6YeRID4gYmV0dG95b2tpblwgOwor5LiL56iu5qC55oCnID4gZ2VzdWtvbmpvdVwgOwor5o+05Yqp5Lqk6ZqbID4gZW5qb2tvdXNhaVwgOwor5Zu95Lya6K2w5ZOhID4ga29ra2FpZ2lpblwgOwor5Zyf5Zyw5Yip55SoID4gdG9jaGlyaXlvdVwgOwor5qCE5p6v55ub6KGwID4gZWlrb3NlaXN1aVwgOwor55u45LqS5L2c55SoID4gc291Z29zYXlvdVwgOwor6Iie5Y+w6KGj6KOFID4gYnV0YWlpc2hvdVwgOwor5ZCI6K2w5Yi25bqmID4gZ291Z2lzZWlkb1wgOwor6ZuM6ZuE55Ww5qCqID4gc2hpeXV1aXNodVwgOwor5Y+N5bCE6Kqk5beuID4gaGFuc2hhZ29zYVwgOwor5aGp57Sg6YW45aGpID4gZW5zb3NhbicnZW5cIDsKK+e1tuWvvuiqpOW3riA+IHpldHRhaWdvc2FcIDsKK+eJqeaQjeS6i+aVhSA+IGJ1c3Nvbmppa29cIDsKK+WFqOmDqOS/nemZuiA+IHplbmJ1aG9rZW5cIDsKK+aCquW3q+WxseaIryA+IHdhcnVmdXpha2VcIDsKK+aVtOW9ouWkluenkSA+IHNlaWtlaWdla2FcIDsKK+atpuWutuaUv+aoqSA+IGJ1a2VzZWlrZW5cIDsKK+S6jOmgheWIhuW4gyA+IG5pa291YnVucHVcIDsKK+aYoOeUu+S8muekviA+IGVpZ2FnYWlzaGFcIDsKK+mJhOegsueZvuWQiCA+IHRlcHBvdXl1cmlcIDsKK+WQjeiqieS8muWToSA+IG1laXlva2FpaW5cIDsKK+W/nOWLn+eUqOe0mSA+IG91Ym95b3VzaGlcIDsKK+iHqua1hOS9nOeUqCA+IGppam91c2F5b3VcIDsKK+WkluiyqOmgkOmHkSA+IGdhaWtheW9raW5cIDsKK+aBkOaAluaYoOeUuyA+IGt5b3VmdWVpZ2FcIDsKK+iqsueojuaOp+mZpCA+IGthemVpa291am9cIDsKK+ioseWuueiqpOW3riA+IGt5b3lvdWdvc2FcIDsKK+S4jeWumuacn+WIkSA+IGZ1dGVpa2lrZWlcIDsKK+aYjuayu+e2reaWsCA+IG1laWppaXNoaW5cIDsKK+iogOiqnuapn+iDvSA+IGdlbmdva2lub3VcIDsKK+S/neeojuWAieW6qyA+IGhvemVpc291a29cIDsKK+WMu+eZguapn+mWoiA+IGlyeW91a2lrYW5cIDsKK+efs+S6leiBsOS6kiA+IGlzaGlpc291Z29cIDsKK+i7jeS6i+WwgemOliA+IGd1bmppZnV1c2FcIDsKK+S9jemajuWLsuetiSA+IGlrYWlrdW50b3VcIDsKK+iAkOeBq+eFieeTpiA+IHRhaWthcmVuZ2FcIDsKK+WPpOS7iueEoemhniA+IGtva29ubXVydWlcIDsKK+mbu+azoueuoeeQhiA+IGRlbnBha2FucmlcIDsKK+awkeS6i+S6i+S7tiA+IG1pbmppamlrZW5cIDsKK+iHqueEtuS/neittyA+IHNoaXplbmhvZ29cIDsKK+eUu+WDj+WHpueQhiA+IGdhem91c2hvcmlcIDsKK+eorueorumbkeWkmiA+IHNodWp1emF0dGFcIDsKK+aYoOeUu+S/s+WEqiA+IGVpZ2FoYWl5dXVcIDsKK+ebruiMtuebruiMtiA+IG1lY2hhbWVjaGFcIDsKK+ejgeawl+mMsumfsyA+IGppa2lyb2t1b25cIDsKK+S4jeWNlOWSjOmfsyA+IGZ1a3lvdXdhb25cIDsKK+acrOS9jeiomOWPtyA+IGhvbicnaWtpZ291XCA7CivooZvnlJ/nrqHnkIYgPiBlaXNlaWthbnJpXCA7Civnm7jkupLkuLvnvqkgPiBzb3Vnb3NodWdpXCA7Civlv5zli5/os4fph5EgPiBvdWJvc2hpa2luXCA7Civlvqnlj6TkuLvnvqkgPiBmdWtrb3NodWdpXCA7CivmrKHkupznoavphbggPiBqaWFyeXV1c2FuXCA7CivlubPlronmmYLku6MgPiBoZWlhbmppZGFpXCA7Civmg4XloLHmqZ/lmaggPiBqb3Vob3VraWtpXCA7CivkuInkvY3kuIDkvZMgPiBzYW5taWl0dGFpXCA7CivmlL/li5nmrKHlrpggPiBzZWltdWppa2FuXCA7Civpm4zpm4TnlbDkvZMgPiBzaGl5dXVpdGFpXCA7Civmrabmlq3mlL/msrsgPiBidWRhbnNlaWppXCA7CivphbjljJbngq3ntKAgPiBzYW5rYXRhbnNvXCA7CivmsLTlvannlLvlrrYgPiBzdWlzYWlnYWthXCA7Civln7rnpI7ku6PorJ0gPiBraXNvdGFpc2hhXCA7CivkuIDmna/mqZ/lq4wgPiBpcHBhaWtpZ2VuXCA7CivpgZPot6/ovLjpgIEgPiBkb3Vyb3l1c291XCA7CivkupznhrHluK/mnpcgPiBhbmV0dGFpcmluXCA7CivpnZLmga/lkJDmga8gPiBhb2lraXRvaWtpXCA7CivmhYfmh4PnhKHnpLwgPiBpbmdpbmJ1cmVpXCA7Civns57nnJ/pnaLnm64gPiBrdXNvbWFqaW1lXCA7Civoh6rkuLvopo/liLYgPiBqaXNodWtpc2VpXCA7CivlvKXnlJ/mmYLku6MgPiB5YXlvaWppZGFpXCA7Civnm67ojLboi6bojLYgPiBtZWNoYWt1Y2hhXCA7CivkuojlgpnkvJroq4cgPiB5b2Jpa2FpZGFuXCA7CivnrYnkvY3mp4vpgKAgPiB0b3Vpa291em91XCA7Civku5bmtYHoqablkIggPiB0YXJ5dXVqaWFpXCA7Civlronlrprmk43kvZwgPiBhbnRlaXNvdXNhXCA7CivnhKHlhJ/ooYzngrogPiBtdXNob3Vrb3VpXCA7CivlpI/mnJ/kvJHmmocgPiBrYWtpa3l1dWthXCA7CivlpI/mnJ/lrabmoKEgPiBrYWtpZ2Fra291XCA7CivlroflrpnljLvlraYgPiB1Y2h1dWlnYWt1XCA7CivlkI3oqonpmaTpmoogPiBtZWl5b2pvdGFpXCA7CivkupToh5Plha3ohZEgPiBnb3pvdXJvcHB1XCA7Civln7fooYzlp5Tlk6EgPiBzaGlra291aWluXCA7Civlm5vpnaLmpZrmrYwgPiBzaGltZW5zb2thXCA7CivlqIHpoqjloILloIIgPiBpZnV1ZG91ZG91XCA7Civou43kuovkvJrorbAgPiBndW5qaWthaWdpXCA7Civot5vooYzmma/msJcgPiBoYWtvdWtlaWtpXCA7CivppYLpo6nnsonnl4UgPiB1ZG9ua29ieW91XCA7CivlpKnkuIvkuIDlk4EgPiB0ZW5rYWlwcGluXCA7Civln7rlnLDplonpjpYgPiBraWNoaWhlaXNhXCA7CivnrYboqJjnlKjlhbcgPiBoaWtraXlvdWd1XCA7CivokrjmsJfmqZ/plqIgPiBqb3VraWtpa2FuXCA7Civno4HmsJfmirXmipcgPiBqaWtpdGVpa291XCA7CivkuIHlrZflrpropo8gPiB0ZWlqaWpvdWdpXCA7Civlm7rlrprph5HliKkgPiBrb3RlaWtpbnJpXCA7Civotbfli5XmmYLplpMgPiBraWRvdWppa2FuXCA7Civoh6rlt7HmrLrnnp4gPiBqaWtvZ2ltYW5cIDsKK+aFsOWuieaXheihjCA+IGlhbnJ5b2tvdVwgOwor6Zu75rCX5Zmo5YW3ID4gZGVua2lraWd1XCA7CivljbHmqZ/miZPogIUgPiBraWtpZGFzaGFcIDsKK+WhqeWMluawtOe0oCA+IGVua2FzdWlzb1wgOwor5Lq65LqL55Ww5YuVID4gamluamlpZG91XCA7CivkupzpiZvpiYTmnb8gPiBhZW50ZXBwYW5cIDsKK+mBruS6jOeEoeS6jCA+IHNoYW5pbXVuaVwgOwor6YG65Lyd5Zyw5ZuzID4gaWRlbmNoaXp1XCA7CivkuI3ms5XooYzngrogPiBmdWhvdWtvdWlcIDsKK+atu+S9k+mBuuajhCA+IHNoaXRhaWlraVwgOwor5YaF6YeO5a6J5omTID4gbmFpeWFhbmRhXCA7CivlubPnqY/nhKHkuosgPiBoZWlvbmJ1amlcIDsKK+aYjuaYjuW+jOaXpSA+IHNoaWFzYXR0ZVwgOwor5LiA5rCX5ZG15oiQID4gaWtraWthc2VpXCA7CivmrablmajosrjkuI4gPiBidWtpdGFpeW9cIDsKK+S4gOWkq+WkmuWmuyA+IGlwcHV0YXNhaVwgOwor5Y2x5qmf56qB56C0ID4ga2lraXRvcHBhXCA7CivljLvnmYLmqZ/lmaggPiBpcnlvdWtpa2lcIDsKK+WkqeS4i+eEoeavlCA+IHRlbmthbXVoaVwgOwor5o6p6K236YOo6ZqKID4gZW5nb2J1dGFpXCA7Civppqzpub/ph47pg44gPiBiYWtheWFyb3VcIDsKK+WPo+iqnuiLseiqniA+IGtvdWdvZWlnb1wgOwor6YmE54Gr5ZGz5ZmMID4gdGVra2FtaXNvXCA7CivpmL/lvKXpmYDntYwgPiBhbWlkYWt5b3VcIDsKK+mYv+W8pemZgOexpCA+IGFtaWRha3VqaVwgOwor5a2Y5Zyo5oSP576pID4gc29uemFpaWdpXCA7Civlj4jlvpPlhYTlvJ8gPiBtYXRhaXRva29cIDsKK+e+veavm+W4g+WboyA+IHVtb3VmdXRvblwgOwor5Yip5bex5Li7576pID4gcmlrb3NodWdpXCA7CivllrbliKnkuLvnvqkgPiBlaXJpc2h1Z2lcIDsKK+eEoeWjsOaYoOeUuyA+IG11c2VpZWlnYVwgOwor6KOc5Yqp5ryi5a2XID4gaG9qb2thbmppXCA7Civlkozoi7Hovp7mm7ggPiB3YWVpamlzaG9cIDsKK+WQjOS9jeWFg+e0oCA+IGRvdWlnZW5zb1wgOwor5YaN5b6T5YWE5byfID4gZnV0YWl0b2tvXCA7CivkupzpiZvlh7jniYggPiBhZW50b3BwYW5cIDsKK+ejgeawl+a1ruS4iiA+IGppa2lmdWpvdVwgOwor5LiN5rOV56e75rCRID4gZnVob3VpbWluXCA7CivotormqKnooYzngrogPiBla2tlbmtvdWlcIDsKK+S4u+aEj+S4u+e+qSA+IHNodWlzaHVnaVwgOwor6Ieq5bex5qSc5p+7ID4gamlrb2tlbnNhXCA7CivlpJrkuovlpJrpm6MgPiB0YWppdGFuYW5cIDsKK++8oe+8ou+8o+mghiA+IMSTYsSrc2jEq2p1blwgOwor5oSP5rCX5o+a5o+aID4gaWtpeW91eW91XCA7Civlkozoi7Hovp7lhbggPiB3YWVpaml0ZW5cIDsKK+S4jeaEj+ippumokyA+IGZ1aXNoaWtlblwgOwor5qih56+E6Kmm5ZCIID4gbW9oYW5qaWFpXCA7Civkuozph43mr43pn7MgPiBuaWp1dWJvaW5cIDsKK+aghOiAgOaghOiPryA+IGVpeW91ZWlnYVwgOwor5q+N6Kqe6Kmx6ICFID4gYm9nb3dhc2hhXCA7CivmnKjmiLjlvqHlhY0gPiBraWRvZ29tZW5cIDsKK+iHquW3seeWjuWkliA+IGppa29zb2dhaVwgOwor5Z+656SO5o6n6ZmkID4ga2lzb2tvdWpvXCA7CivkuIDlrprmuKnluqYgPiBpdHRlaW9uZG9cIDsKK+aJi+WJjeWRs+WZjCA+IHRlbWFlbWlzb1wgOwor5YWB5paH5YWB5q2mID4gaW5idW5pbmJ1XCA7Civoh6rmmrToh6rmo4QgPiBqaWJvdWppa2lcIDsKK+ebuOaSsumDqOWxiyA+IHN1bW91YmV5YVwgOwor6Ieq5bex5L+d5a2YID4gamlrb2hvem9uXCA7CivlpJrkuovlpJrnq68gPiB0YWppdGF0YW5cIDsKK+aYjuOAheW+jOaXpSA+IHNoaWFzYXR0ZVwgOwor5puW5pin5qih57OKID4gYWltYWltb2tvXCA7Civkuovli5nmrKHlrpggPiBqaW11amlrYW5cIDsKK+awl+Wuh+W6g+WkpyA+IGtpdWtvdWRhaVwgOwor5aSa5pWw5oSP6KaLID4gdGFzdXVpa2VuXCA7Civmra/np5HljLvluKsgPiBzaGlrYWlzaGlcIDsKK+e+juWMlumBi+WLlSA+IGJpa2F1bmRvdVwgOwor6Ieq5bex5Li7576pID4gamlrb3NodWdpXCA7Civlrp/ooYzlp5Tlk6EgPiBqaWtrb3VpaW5cIDsKK+WQiOawl+mBk+WutiA+IGFpa2lkb3VrYVwgOwor6YG65peP5om25YqpID4gaXpva3VmdWpvXCA7CivlqJHnvoXlj4zmqLkgPiBzYXJhc291anVcIDsKK+aEj+awl+aPmuOAhSA+IGlraXlvdXlvdVwgOwor6Ieq5bex6aGV56S6ID4gamlrb2tlbmppXCA7Civoh6rlt7HosqDmi4UgPiBqaWtvZnV0YW5cIDsKK+mcsuWkqemiqOWRgiA+IHJvdGVuYnVyb1wgOwor5oSP5rCX5oqV5ZCIID4gaWtpdG91Z291XCA7CivpgYvlkKblpKnos6YgPiB1bnB1dGVucHVcIDsKK+WvjOaghOmkiuWMliA+IGZ1ZWl5b3VrYVwgOwor5Y2w5bqm5pSv6YKjID4gaW5kb3NoaW5hXCA7CivmrKfljJbkuLvnvqkgPiBvdWthc2h1Z2lcIDsKK+eEoeS6jOeEoeS4iSA+IG11bmltdXphblwgOwor5LiJ5pel5LiJ5aScID4gbWlra2FtaXlvXCA7CivniaHkuLnmtbfogIEgPiBib3RhbicnZWJpXCA7Civpm7vmsJfmqZ/lmaggPiBkZW5raWtpa2lcIDsKK+iHquW3seWrjOaCqiA+IGppa29rZW4nJ29cIDsKK+WfuuacrOWQiOaEjyA+IGtpaG9uZ291aVwgOwor5bCP5YWQ56eR5Yy7ID4gc2hvdW5pa2FpXCA7CivmiJHmrabogIXnvoUgPiBnYW11c2hhcmFcIDsKK+iHquW3seeKoOeJsiA+IGppa29naXNlaVwgOwor55u45LqS5om25YqpID4gc291Z29mdWpvXCA7CivlkIzpn7PnlbDnvqkgPiBkb3VvbicnaWdpXCA7Civoh6rlt7HmnKzkvY0gPiBqaWtvaG9uJydpXCA7CivnlbDluLjpq5jmuKkgPiBpam91a291b25cIDsKK+i7jeS6i+aPtOWKqSA+IGd1bmppZW5qb1wgOwor5byK6KGj56C05bi9ID4gaGVpaWhhYm91XCA7CivkuIPkupTkuInnuIQgPiBzaGltZW5hd2FcIDsKK+aWh+WMlumBuueUoyA+IGJ1bmthaXNhblwgOwor5Y+I5b6T5aeJ5aa5ID4gbWF0YWl0b2tvXCA7Civoh6rlrrblj5fnsr4gPiBqaWthanVzZWlcIDsKK+iHquWutuWPl+eyiSA+IGppa2FqdWZ1blwgOwor5rCR55Sf5aeU5ZOhID4gbWluc2VpaWluXCA7CivmhJvku5bkuLvnvqkgPiBhaXRhc2h1Z2lcIDsKK+S4gOWFmuS4gOa0viA+IGl0dG91aXBwYVwgOwor5oCq5aWH5pig55S7ID4ga2Fpa2llaWdhXCA7Civph4jov6bniZ/lsLwgPiBzaGFrYW11bmlcIDsKK+ekvuS8mue1jOa4iCA+IHNoYWthaWtlaVwgOwor57WQ6LeP6La65bqnID4ga2Vra2FmdXphXCA7Civok5bpurvlrZDmsrkgPiBoaW1hc2hpeXVcIDsKK+Wkqeawl+WFt+WQiCA+IHRlbmtpZ3VhaVwgOwor5LiA5Y+j5ZCM6Z+zID4gaWtrdWRvdW9uXCA7CivkuI3lj6/mgJ3orbAgPiBmdWthc2hpZ2lcIDsKK+WMu+S6i+S8nemBkyA+IGlqaWRlbmRvdVwgOwor6Z+z6YOo6KiY5Y+3ID4gb25idWtpZ291XCA7CivlpYjoia/mmYLku6MgPiBuYXJhamlkYWlcIDsKK+iAs+m8u+WSveWWiSA+IGppYmlpbmtvdVwgOwor56m65rCX5rGa5p+TID4ga3V1a2lvc2VuXCA7Civng4/luL3lrZDosp0gPiBlYm9zaGlnYWlcIDsKK+acieixoeeEoeixoSA+IHV6b3VtdXpvdVwgOwor6LW36Ki054y25LqIID4ga2lzb3l1dXlvXCA7CivkvIrli6LnpZ7lrq4gPiBpc2VqaW5ndXVcIDsKK+WwuOS9jee0oOmkkCA+IHNoaWlzb3NhblwgOwor6YeO5aSp6aKo5ZGCID4gbm90ZW5idXJvXCA7CivnhKHnkIbnhKHkvZMgPiBtdXJpbXV0YWlcIDsKK+aEj+awl+i7kumrmCA+IGlraWtlbmtvdVwgOwor6Kqe5bC+5aSJ5YyWID4gZ29iaWhlbmthXCA7CivkuZ3liIbkuZ3ljpggPiBrdWJ1a3VyaW5cIDsKK+iHquW3seimj+WItiA+IGppa29raXNlaVwgOwor5ZCM5aeU5ZOh5LyaID4gZG91aWlua2FpXCA7CivmspnnvoXlj4zmqLkgPiBzYXJhc291anVcIDsKK+S4gOWmu+WkmuWkqyA+IGlzc2FpdGFmdVwgOwor5LiN5q2j6KGM54K6ID4gZnVzZWlrb3VpXCA7Civnj77nirbntq3mjIEgPiBnZW5qb3VpamlcIDsKK+e+jui+num6l+WPpSA+IGJpamlyZWlrdVwgOwor5LiN6KiA5LiN6KqeID4gZnVnZW5mdWdvXCA7CivkuIvpg6jmqZ/plqIgPiBrYWJ1a2lrYW5cIDsKK+WAi+S6uuiqpOW3riA+IGtvamluZ29zYVwgOwor6Ieq55Sx5oSP5b+XID4gaml5dXVpc2hpXCA7CivkuozmrKHoqJjmhrYgPiBuaWppa2lva3VcIDsKK+WMuuS8muitsOWToSA+IGt1a2FpZ2lpblwgOwor5Y+k5LqL6KiY5LydID4ga29qaWtpZGVuXCA7CivnhKHngrrnhKHnrZYgPiBtdWltdXNha3VcIDsKK+Wwj+eUn+aEj+awlyA+IGtvbmFtYWlraVwgOwor5rGa5p+T6Zmk5Y67ID4gb3Nlbmpva3lvXCA7CivmibbppIrnvqnli5kgPiBmdXlvdWdpbXVcIDsKK+aTrOWPpOS4u+e+qSA+IGdpa29zaHVnaVwgOwor5Lmd5a+45LqU5YiGID4ga3VzdW5nb2J1XCA7CivmhI/msJfou5LmmIIgPiBpa2lrZW5rb3VcIDsKK+Wls+mDjuicmOibmyA+IGpvcm91Z3Vtb1wgOwor5LiN6ZqP5oSP562LID4gZnV6dWlpa2luXCA7Civnp7vooYzmnJ/plpMgPiBpa291a2lrYW5cIDsKK+S7mOWKoOS+oeWApCA+IGZ1a2FrYWNoaVwgOwor5Zyf5aOM5rGa5p+TID4gZG9qb3Vvc2VuXCA7CivkuIrpmaLorbDlk6EgPiBqb3VpbmdpaW5cIDsKK+W+oeWutumokuWLlSA+IG9pZXNvdWRvdVwgOwor5LqM5bqm5LiJ5bqmID4gbmlkb3NhbmRvXCA7Civpq5jnpZbpoK3lt74gPiBrb3NvenVraW5cIDsKK+S6iOWCmemDqOWTgSA+IHlvYmlidWhpblwgOwor6Ieq5bex5om55YikID4gamlrb2hpaGFuXCA7Civoh6rnlLvoh6ros5sgPiBqaWdhamlzYW5cIDsKK+iHqueUu+iHquiumiA+IGppZ2FqaXNhblwgOwor6aaW5L2N5omT6ICFID4gc2h1aWRhc2hhXCA7Civlm6Dmnpzlv5zloLEgPiBpbmdhb3Vob3VcIDsKK+S4i+Wls+S4i+eUtyA+IGdlam9nZW5hblwgOwor5a6J5qW95qSF5a2QID4gYW5yYWt1aXN1XCA7Civlp5Tlk6Hku5joqJcgPiBpaW5mdXRha3VcIDsKK+S6iOWCmemBi+WLlSA+IHlvYml1bmRvdVwgOwor6YG655Sj566h55CGID4gaXNhbmthbnJpXCA7CivkuonorbDooYzngrogPiBzb3VnaWtvdWlcIDsKK+m6u+WphuixhuiFkCA+IG3EgWJvZG91ZnVcIDsKK+aWh+WMluaYoOeUuyA+IGJ1bmthZWlnYVwgOwor5oSP5ZGz5YaF5a65ID4gaW1pbmFpeW91XCA7CivkuojlgpnliKTkuosgPiB5b2JpaGFuamlcIDsKK+atpuWutuaZguS7oyA+IGJ1a2VqaWRhaVwgOwor5Yy755mC6YGO6KqkID4gaXJ5b3VrYWdvXCA7CivmrablrrbmlL/msrsgPiBidWtlc2VpamlcIDsKK+Wls+eOi+mZm+S4iyA+IGpvb3VoZWlrYVwgOwor5aSn5rCX5rGa5p+TID4gdGFpa2lvc2VuXCA7Civln7rnpI7lt6XkuosgPiBraXNva291amlcIDsKK+eEoeeQhuW+gOeUnyA+IG11cmlvdWpvdVwgOwor5L2V5pmC5pmC5YiGID4gaXRzdWppYnVuXCA7Civnm7jkupLkvp3lrZggPiBzb3Vnb2l6b25cIDsKK+iqnuW9meimj+WJhyA+IGdvaWtpc29rdVwgOwor6Ieq5bex5byB6K23ID4gamlrb2JlbmdvXCA7CivkupTljYHpn7Plm7MgPiBnb2p1dW9uenVcIDsKK+WIqeS7luS4u+e+qSA+IHJpdGFzaHVnaVwgOwor5Yqg5oyB56WI56W3ID4ga2FqaWtpdG91XCA7CivoirHljYnlnJLoirggPiBrYWtpZW5nZWlcIDsKK+WSjOijveiLseiqniA+IHdhc2VpZWlnb1wgOwor5Luu5ZCN5omL5pysID4ga2FuYWRlaG9uXCA7Civoi7Hlkozovp7lhbggPiBlaXdhaml0ZW5cIDsKK+S6iOWCmeS8muitsCA+IHlvYmlrYWlnaVwgOwor5LqM6Zmi5Yi25bqmID4gbmlpbnNlaWRvXCA7CivlpI/mnJ/mmYLplpMgPiBrYWtpamlrYW5cIDsKK+S6leaIuOWxi+W9oiA+IGlkb3lha2F0YVwgOwor6Ieq5bex55+b55u+ID4gamlrb211anVuXCA7CivljbHmqZ/nrqHnkIYgPiBraWtpa2FucmlcIDsKK+WfuuekjuS9k+a4qSA+IGtpc290YWlvblwgOwor55uC6Jit55uG5LyaID4gdXJhYm9uJydlXCA7CivljLvnp5Hmra/np5EgPiBpa2FzaGlrYVwgOwor5LqM5bqm5omL6ZaTID4gbmlkb2RlbWFcIDsKK+S6juiYreebhuS8miA+IHVyYWJvbicnZVwgOwor5oG15q+U5a+/6aGUID4gZWJpc3VnYW9cIDsKK+aEmuWbs+aEmuWbsyA+IGd1enVndXp1XCA7CivlkozmsJfol7nol7kgPiB3YWtpYWlhaVwgOwor5LiN55yf6Z2i55uuID4gZnVtYWppbWVcIDsKK+W+l+aJi+WLneaJiyA+IGV0ZWthdHRlXCA7Civlr4Tku5jooYzngrogPiBraWZ1a291aVwgOwor5LmO5Y+k5q2i54K5ID4gb2tvdG90ZW5cIDsKK+WvjOWjq+S6lOa5liA+IGZ1amlnb2tvXCA7CivmmK/mmK/pnZ7pnZ4gPiB6ZXplaGloaVwgOwor5oiR5Yip5oiR5YipID4gZ2FyaWdhcmlcIDsKK+axn+aIuOaZguS7oyA+IGVkb2ppZGFpXCA7Civmra/np5HljLvpmaIgPiBzaGlrYWlpblwgOwor5oSP5rCX6Zi75ZaqID4gaWtpc29zb3VcIDsKK+mBleeKr+ihjOeCuiA+IGloYW5rb3VpXCA7CivmgbXmr5TpoIjorJsgPiBlYmlzdWtvdVwgOwor5LiA5q2p5LiA5q2pID4gaXBwb2lwcG9cIDsKK+WSjOawl+iXueOAhSA+IHdha2lhaWFpXCA7CivnhKHmnJ/lu7bmnJ8gPiBtdWtpZW5raVwgOwor6LWk6bOl6LWk6IW5ID4gYWtha29ra29cIDsKK+WkqeeIvuS5juazoiA+IHRlbml3b2hhXCA7Civkvp3mgJnotJTlsZMgPiBla29oaWlraVwgOwor5LqL5YuZ5qmf5ZmoID4gamltdWtpa2lcIDsKK+iHquW3seaal+ekuiA+IGppa29hbmppXCA7CivkvK/liYzopb/niL4gPiBidXJhamlydVwgOwor5LiL6Zmi6K2w5ZOhID4ga2FpbmdpaW5cIDsKK+mbu+awl+akheWtkCA+IGRlbmtpaXN1XCA7CivlubPlkozntq3mjIEgPiBoZWl3YWlqaVwgOwor5pyJ54K66Lui5aSJID4gdWl0ZW5wZW5cIDsKK+iLseWwj+aWh+WtlyA+IGVpa29tb2ppXCA7CivkvZXlh6blhbblh6YgPiBkb2tvc29rb1wgOwor5byW54i+5LmO5rOiID4gdGVuaXdvaGFcIDsKK+WHuuadpeWFt+WQiCA+IGRla2lndWFpXCA7CivmhI/lkbPpg6jploAgPiBpbWlidW1vblwgOwor5Zyf5bem6KGb6ZaAID4gZG96YWVtb25cIDsKK+aEj+WRs+WOn+eQhiA+IGltaWdlbnJpXCA7Civkvp3kvLDotJTlsZMgPiBla29oaWlraVwgOwor5amm5Lq656eR5Yy7ID4gZnVqaW5rYWlcIDsKK+eDj+W4veWtkOWQjSA+IGVib3NoaW5hXCA7CivpoqjpgqrmsJflkbMgPiBrYXplZ2ltaVwgOwor5bem6aGn5Y+z55yEID4gc2Frb3ViZW5cIDsKK+S7ruWQjeaWh+WtlyA+IGthbmFtb2ppXCA7CivlnLDkuIvotrPooosgPiBqaWthdGFiaVwgOwor5aSn55yf6Z2i55uuID4gb29tYWppbWVcIDsKK+aknOmdnumBleS9vyA+IGtlYmlpc2hpXCA7CivlvqHnhKHmspnmsbAgPiBnb2J1c2F0YVwgOwor5Y+z6aGn5bem55yEID4gdWtvc2FiZW5cIDsKK+mBleazleihjOeCuiA+IGlob3Vrb3VpXCA7CivkvJrmhI/mloflrZcgPiBrYWlpbW9qaVwgOwor5ZCI57iB5aWH57iBID4gYWllbmtpZW5cIDsKK+ebo+afu+WnlOWToSA+IGthbnNhaWluXCA7CivnlbDlj6PlkIzpn7MgPiBpa3Vkb3VvblwgOwor5byV54Gr5rip5bqmID4gaW5rYW9uZG9cIDsKK+mYv+WPpOWxi+iynSA+IGFrb3lhZ2FpXCA7CivnlJ/nnJ/pnaLnm64gPiBraW1hamltZVwgOwor5piv44CF6Z2e44CFID4gemV6ZWhpaGlcIDsKK+eEoeeQhuefoueQhiA+IG11cml5YXJpXCA7CivnpLrlqIHpgYvli5UgPiBqaWl1bmRvdVwgOwor5LiA5aSr5LiA5ammID4gaXBwdWlwcHVcIDsKK+S6lOWIhuS6lOWIhiA+IGdvYnVnb2J1XCA7CivlpKnniL7pgaDms6IgPiB0ZW5pd29oYVwgOwor5b6M6bOl57696ZmiID4gZ290b2JhaW5cIDsKK+acieiAtueEoeiAtiA+IHV5YW11eWFcIDsKK+S6nOexs+WIqeWKoCA+IGFtZXJpa2FcIDsKK+iNj+iDoem6u+ayuSA+IGVnb21heXVcIDsKK+earuiGmuenkeWMuyA+IGhpZnVrYWlcIDsKK+WPs+W+gOW3puW+gCA+IHVvdXNhb3VcIDsKK+S6nOm6u+S7geayuSA+IGFtYW5peXVcIDsKK+manOazpeeDj+iziiA+IGFvcmlpa2FcIDsKK+W+oeaKq+mcsuebriA+IG9oaXJvbWVcIDsKK+i1pOWVhOacqOmzpSA+IGFrYWdlcmFcIDsKK+S/neitt+WnlOWToSA+IGhvZ29paW5cIDsKK+mYv+W8l+WIqeWKoCA+IGFmdXJpa2FcIDsKK+S7iuaXpeaYjuaXpSA+IGt5b3Vhc3VcIDsKK+S6nOaLieavmOS6nCA+IGFyYWJpYVwgOwor5LyK5Yui5rW36ICBID4gaXNlZWJpXCA7CivkupzliYzmr5TkupwgPiBhcmFiaWFcIDsKK+e3keWVhOacqOmzpSA+IGFvZ2VyYVwgOwor5b6h55uu6KaL5b6XID4gb21lbWllXCA7Civlr7/mlZnlrqQgPiBrb3RvYnVraWt5b3VzaGl0c3VcIDsKK+engeWwj+iqrCA+IHdhdGFrdXNoaXNob3VzZXRzdVwgOwor5LiD5LiD5pelID4gc2hpY2hpc2hpY2hpbmljaGlcIDsKK+e0q+mcsuiNiSA+IG11cmFzYWtpdHN1eXVrdXNhXCA7CivkuIPjgIXml6UgPiBzaGljaGlzaGljaGluaWNoaVwgOwor6Lu95Y+j6KmxID4ga2FydWt1Y2hpYmFuYXNoaVwgOwor5qSN54mp6LOqID4gc2hva3VidXRzdXNoaXRzdVwgOwor5a6/55u05a6kID4gc2h1a3VjaG9rdXNoaXRzdVwgOwor5LiA5Y+j6KmxID4gaGl0b2t1Y2hpYmFuYXNoaVwgOwor562N55Sf5rS7ID4gdGFrZW5va29zZWlrYXRzdVwgOwor6K2y5rih5Lq6ID4geXV6dXJpd2F0YXNoaW5pblwgOwor5YaF5bmV6KmxID4gdWNoaW1ha3ViYW5hc2hpXCA7Civpm4bmnK3kv4IgPiBzaHV1c2F0c3VnYWthcmlcIDsKK+mHkeanjOmgrSA+IGthbmFkenVjaGlhdGFtYVwgOwor5Ye65pyt5o6bID4gc2h1c3NhdHN1Z2FrYXJpXCA7CivkuInmjIfptI4gPiBtaXRzdXl1YmlrYW1vbWVcIDsKK+WHuuacreS/giA+IHNodXNzYXRzdWdha2FyaVwgOwor6IWw6LWk54eVID4ga29zaGlha2F0c3ViYW1lXCA7CivoqLrlr5/lrqQgPiBzaGluc2F0c3VzaGl0c3VcIDsKK+itmOWIpeWKmyA+IHNoaWtpYmV0c3VyeW9rdVwgOwor56eB6Ieq6LqrID4gd2F0YWt1c2hpamlzaGluXCA7CivlubPmuIXnm5sgPiB0YWlyYW5va2l5b21vcmlcIDsKK+WFpeWHuuWKmyA+IG55dXVzaHV0c3VyeW9rdVwgOwor57Sb5aSx5bGKID4gZnVuc2hpdHN1dG9kb2tlXCA7CivmsYLogbfkv4IgPiBreXV1c2hva3VnYWthcmlcIDsKK+mHkeWjuuecvCA+IGthbmF0c3Vib21hbmFrb1wgOwor6Zmz5YiX5a6kID4gY2hpbnJldHN1c2hpdHN1XCA7CivnibnliKXlrqQgPiB0b2t1YmV0c3VzaGl0c3VcIDsKK+e0q+awtOaZtiA+IG11cmFzYWtpenVpc2hvdVwgOwor5Y+W57eg5b25ID4gdG9yaXNoaW1hcml5YWt1XCA7CivniYflj6PpsK8gPiBrYXRha3VjaGlpd2FzaGlcIDsKK+S4jeWAkue/gSA+IG9raWFnYXJpa29ib3NoaVwgOwor5LiN6IKW56eBID4gZnVzaG91d2F0YWt1c2hpXCA7CivlpLHmpa3njocgPiBzaGl0c3VneW91cml0c3VcIDsKK+aKveWHuueJqSA+IGNodXVzaHV0c3VidXRzdVwgOwor5aWz5Y+L6YGUID4gb24nJ25hdG9tb2RhY2hpXCA7Civnmb7ml6XlkrMgPiBoeWFrdW5pY2hpemVraVwgOwor6KGM5YiX5byPID4gZ3lvdXJldHN1c2hpa2lcIDsKK+WPluaJseS6uiA+IHRvcmlhdHN1a2FpbmluXCA7Civlh7rlhaXlm70gPiBzaHV0c3VueXV1a29rdVwgOwor5omN5qeM6aCtID4gc2FpZHp1Y2hpYXRhbWFcIDsKK+mAhuiqrOeahCA+IGd5YWt1c2V0c3V0ZWtpXCA7Civlia/po5/niakgPiBmdWt1c2hva3VidXRzdVwgOwor55Oi566q6a+wID4gaHlvdXRhbicnbmFtYXp1XCA7CivmnbHljYrnkIMgPiBoaWdhc2hpaGFua3l1dVwgOwor5YuV54mp6LOqID4gZG91YnV0c3VzaGl0c3VcIDsKK+i2iuS4reikjCA+IGV0Y2h1dWZ1bmRvc2hpXCA7CivljbDljYrnuo8gPiBzaGlydXNoaWJhbnRlblwgOwor5LuV5pa56KmxID4gc2hpa2F0YWJhbmFzaGlcIDsKK+aUueacreS/giA+IGthaXNhdHN1Z2FrYXJpXCA7CivliYPliIDop6YgPiBrYW1pc29yaWthYnVyZVwgOwor5aOy5rih6Ki8ID4gdXJpd2F0YXNoaXNob3VcIDsKK+WRiuWIpeW8jyA+IGtva3ViZXRzdXNoaWtpXCA7CivlpL7pm5HniakgPiBreW91emF0c3VidXRzdVwgOwor57eR55m96ImyID4gcnlva3VoYWt1c2hva3VcIDsKK+iGnemWouevgCA+IHNoaXRzdWthbnNldHN1XCA7CivmjqXntprlj6MgPiBzZXRzdXpva3VndWNoaVwgOwor5Yed552A5YqbID4gZ3lvdWNoYWt1cnlva3VcIDsKK+aHkOWLmOWumiA+IGZ1dG9rb3Jva2Fuam91XCA7Civmj5Dlh7rniakgPiB0ZWlzaHV0c3VidXRzdVwgOwor5Ye65pyt5Y+jID4gc2h1c3NhdHN1Z3VjaGlcIDsKK+WkqeaXpeeTpiA+IHRlbmppdHN1Z2F3YXJhXCA7CivlpKLnianoqp4gPiB5dW1lbW9ub2dhdGFyaVwgOwor5LiA5piU5YmNID4gaGl0b211a2FzaGltYWVcIDsKK+eZvuWNkumVtyA+IGh5YWt1c290c3VjaG91XCA7CivpgIbooYzliJcgPiBneWFrdWd5b3VyZXRzdVwgOwor5pet5pel56ugID4ga3lva3VqaXRzdXNob3VcIDsKK+W5vOWPi+mBlCA+IG9zYW5hdG9tb2RhY2hpXCA7CivlsLvou73lpbMgPiBzaGlyaWdhcnVvbicnbmFcIDsKK+eZvemJouW3uyA+IHNoaXJvaGFjaGltYWtpXCA7CivoloTntKvoibIgPiB1c3VtdXJhc2FraWlyb1wgOwor5Ye65aGB546HID4gc2h1dHN1cnVpcml0c3VcIDsKK+mbu+S/oeafsSA+IGRlbnNoaW5iYXNoaXJhXCA7CivlhoXoqLzoqbEgPiBuYWlzaG91YmFuYXNoaVwgOwor57eR546J55+zID4gcnlva3VneW9rdXNla2lcIDsKK+iGneiTi+mqqCA+IHNoaXRzdWdhaWtvdHN1XCA7Civku67lh7rnjYQgPiBrYXJpc2h1dHN1Z29rdVwgOwor54m55Yil6IG3ID4gdG9rdWJldHN1c2hva3VcIDsKK+WRvei+m+i+myA+IGlub2NoaWdhcmFnYXJhXCA7Civou6LlhaXlsYogPiB0ZW4nJ255dXV0b2Rva2VcIDsKK+WPl+S7mOS/giA+IHVrZXRzdWtlZ2FrYXJpXCA7CivlsLHogbfnjocgPiBzaHV1c2hva3VyaXRzdVwgOwor57Wm5paZ6KKLID4ga3l1dXJ5b3VidWt1cm9cIDsKK+akjeeJqeWtpiA+IHNob2t1YnV0c3VnYWt1XCA7CivlpKflkozprYIgPiB5YW1hdG9kYW1hc2hpaVwgOwor5LiL5Y+w5omAID4gc2hpbW9kYWlkb2tvcm9cIDsKK+WwseiBt+WPoyA+IHNodXVzaG9rdWd1Y2hpXCA7CivnrYvogonos6ogPiBraW4nJ25pa3VzaGl0c3VcIDsKK+WKm+S7leS6iyA+IGNoaWthcmFzaGlnb3RvXCA7Civlq6Hlh7rlrZAgPiBjaGFrdXNodXRzdXNoaVwgOwor54mH6KKW5py6ID4ga2F0YXNvZGVkenVrdWVcIDsKK+WNkualreW8jyA+IHNvdHN1Z3lvdXNoaWtpXCA7CivlhYnpgJrkv6EgPiBoaWthcml0c3V1c2hpblwgOwor5Y+W57eg5rOVID4gdG9yaXNoaW1hcmlob3VcIDsKK+aJi+ihk+WupCA+IHNodWp1dHN1c2hpdHN1XCA7CivoqabnnYDlrqQgPiBzaGljaGFrdXNoaXRzdVwgOwor54iG55m654mpID4gYmFrdWhhdHN1YnV0c3VcIDsKK+eMquatpuiAhSA+IGlub3NoaXNoaW11c2hhXCA7CivlpKfpu5Lmn7EgPiBkYWlrb2t1YmFzaGlyYVwgOwor6Y6W5bi35a2QID4ga3VzYXJpa2F0YWJpcmFcIDsKK+S4jei6vuiAhSA+IGJ1c2hpdHN1a2Vtb25vXCA7CivkuInoibLoj6sgPiBzYW5zaG9rdXN1bWlyZVwgOwor5ZG96L6b44CFID4gaW5vY2hpZ2FyYWdhcmFcIDsKK+WHuuWKm+e3miA+IHNodXRzdXJ5b2t1c2VuXCA7CivniIbnmbrlipsgPiBiYWt1aGF0c3VyeW9rdVwgOwor552A5L+h5bGAID4gY2hha3VzaGlua3lva3VcIDsKK+aOkuWHuueJqSA+IGhhaXNodXRzdWJ1dHN1XCA7CivpibHnianos6ogPiBrb3VidXRzdXNoaXRzdVwgOwor5oyv5Ye65bGAID4gZnVyaWRhc2hpa3lva3VcIDsKK+Wft+WLmeWupCA+IHNoaXRzdW11c2hpdHN1XCA7CivnmbrnhrHph48gPiBoYXRzdW5ldHN1cnlvdVwgOwor5aSn5YWr6LuKID4gZGFpaGFjaGlndXJ1bWFcIDsKK+ebtOaOpeeahCA+IGNob2t1c2V0c3V0ZWtpXCA7CivOuOeQhuirliA+IHNoaVwgzIR0YVwgzIRyaXJvblwgOwor5pS55pyt6YuPID4ga2Fpc2F0c3VoYXNhbWlcIDsKK+S4jeadn+iAhSA+IGZ1dHN1dHN1a2Ftb25vXCA7Civnh5XljYPps6UgPiB0c3ViYW1lY2hpZG9yaVwgOwor5LyR5oap5a6kID4ga3l1dWtlaXNoaXRzdVwgOwor5pel5rKh5YmNID4gbmljaGlib3RzdXplblwgOwor54uQ5qC85a2QID4ga2l0c3VuZWdvdXNoaVwgOwor6Zay6Kan5a6kID4gZXRzdXJhbnNoaXRzdVwgOwor5bu656+J54mpID4ga2VuY2hpa3VidXRzdVwgOwor5a6f6LOq55qEID4gamlzc2hpdHN1dGVraVwgOwor57+M44CF5pelID4geW9rdXlva3VqaXRzdVwgOwor6Kmm6IG05a6kID4gc2hpY2hvdXNoaXRzdVwgOwor5Y+k5by36ICFID4gZnVydXRzdXdhbW9ub1wgOwor54u45ZuD5a2QID4gdGFudWtpYmF5YXNoaVwgOwor5qSN5q+b6KGTID4gc2hva3Vtb3VqdXRzdVwgOwor5pen5q2j5pyIID4ga3l1dXNob3VnYXRzdVwgOwor5Li46by76JyCID4gbWFydWhhbmFiYWNoaVwgOwor6ISa6Imy6ICFID4ga3lha3VzaG9rdXNoYVwgOwor5p2x5rW35bK4ID4gaGlnYXNoaWthaWdhblwgOwor55u056uL6IyOID4gY2hva3VyaXRzdWtlaVwgOwor55m96Zuq5aerID4gc2hpcmF5dWtpaGltZVwgOwor5pat54ax55qEID4gZGFuJyduZXRzdXRla2lcIDsKK+azpee4hOW8jyA+IGRvcm9uYXdhc2hpa2lcIDsKK+ims+mWsuW8jyA+IGthbicnZXRzdXNoaWtpXCA7CivlkLjmub/mgKcgPiBreXV1c2hpdHN1c2VpXCA7CivmtojmpbXnmoQgPiBzaG91a3lva3V0ZWtpXCA7CivmvILmtYHniakgPiBoeW91cnl1dWJ1dHN1XCA7CivkuIvkuozmoYEgPiBzaGltb2Z1dGFrZXRhXCA7CivmhoLprLHos6ogPiB5dXV1dHN1c2hpdHN1XCA7Civkv4TmiJDph5EgPiBuaXdha2FuYXJpa2luXCA7Civlj47nqavniakgPiBzaHV1a2FrdWJ1dHN1XCA7Civosrjku5jph5EgPiBrYXNoaXRzdWtla2luXCA7Civli5XnianpgZQgPiBkb3VidXRzdXRhY2hpXCA7Civpo5/ns6fluoEgPiBzaG9rdXJ5b3VjaG91XCA7Civohbrnl4Xos6ogPiBzZW5ieW91c2hpdHN1XCA7CivmsJHntIToqqwgPiBtaW4nJ3lha3VzZXRzdVwgOwor5ZC45rm/5YmkID4ga3l1dXNoaXRzdXphaVwgOwor5LqM562L6YGTID4gZnV0YXN1amltaWNoaVwgOwor5Y2K6ZW36Z20ID4gaGFuJyduYWdhZ3V0c3VcIDsKK+agoemVt+WupCA+IGtvdWNob3VzaGl0c3VcIDsKK+axuuaWreWKmyA+IGtldHN1ZGFucnlva3VcIDsKK+W3ruWHuuS6uiA+IHNhc2hpZGFzaGluaW5cIDsKK+S4g+abnOihqCA+IHNoaWNoaXlvdWh5b3VcIDsKK+eBsOe3keiJsiA+IGthaXJ5b2t1c2hva3VcIDsKK+acrOizqueahCA+IGhvbnNoaXRzdXRla2lcIDsKK+axguW/g+WKmyA+IGt5dXVzaGlucnlva3VcIDsKK+e1kOWbo+W8jyA+IGtldHN1ZGFuc2hpa2lcIDsKK+aUueacreWPoyA+IGthaXNhdHN1Z3VjaGlcIDsKK+e5geauluWKmyA+IGhhbnNob2t1cnlva3VcIDsKK+Wbg+WtkOipniA+IGhheWFzaGlrb3RvYmFcIDsKK+S6uuW3ruaMhyA+IGhpdG9zYXNoaXl1YmlcIDsKK+S4g+mdoumzpSA+IHNoaWNoaW1lbmNob3VcIDsKK+eZuuiogOWKmyA+IGhhdHN1Z2Vucnlva3VcIDsKK+WHuuS4lumgrSA+IHNodXNzZWdhc2hpcmFcIDsKK+mbhuS4reWKmyA+IHNodXVjaHV1cnlva3VcIDsKK+WxiOi+seeahCA+IGt1dHN1am9rdXRla2lcIDsKK+WVhuWjsuaVtSA+IHNob3ViYWlnYXRha2lcIDsKK+WHuueUn+WxiiA+IHNodXNzZWl0b2Rva2VcIDsKK+iEseeNhOWbmiA+IGRhdHN1Z29rdXNodXVcIDsKK+WPpOatpuWjqyA+IGZ1cnV0c3V3YW1vbm9cIDsKK+Wcn+eUo+ipsSA+IG1peWFnZWJhbmFzaGlcIDsKK+eZveijheadnyA+IHNoaXJvc2hvdXpva3VcIDsKK+iFsOW3vuedgCA+IGtvc2hpZ2luY2hha3VcIDsKK+WNiueGn+WNtSA+IGhhbmp1a3V0YW1hZ29cIDsKK+ayoeW4uOitmCA+IGJvdHN1am91c2hpa2lcIDsKK+mbhuWhteiiiyA+IHNodXVqaW5idWt1cm9cIDsKK+S4ieS4i+WltCA+IHNhbnNoaXRheWFra29cIDsKK+WcsOizquWtpiA+IGNoaXNoaXRzdWdha3VcIDsKK+alveWxi+ipsSA+IGdha3V5YWJhbmFzaGlcIDsKK+W8t+WlqueJqSA+IGdvdWRhdHN1YnV0c3VcIDsKK+mWkeaXpeaciCA+IGthbmppdHN1Z2V0c3VcIDsKK+aMkeeZuueahCA+IGNob3VoYXRzdXRla2lcIDsKK+elneelreaXpSA+IHNodWt1c2Fpaml0c3VcIDsKK+W9q+WIu+ihkyA+IGNob3Vrb2t1anV0c3VcIDsKK+S4reeri+WbvSA+IGNodXVyaXRzdWtva3VcIDsKK+WWq+eFmeWupCA+IGtpdHN1ZW5zaGl0c3VcIDsKK+S4gOS4oeaXpSA+IGljaGlyeW91aml0c3VcIDsKK+api+iEmuiInyA+IGt5b3VreWFrdXNodXVcIDsKK+a8rOeJqeefsyA+IHRzdWtlbW9ub2lzaGlcIDsKK+WkluWHuuS4rSA+IGdhaXNodXRzdWNodXVcIDsKK+mJhOafk+iJsiA+IHRldHN1c2Vuc2hva3VcIDsKK+eLrOeri+W/gyA+IGRva3VyaXRzdXNoaW5cIDsKK+S7iuaciOacqyA+IGtvbmdldHN1bWF0c3VcIDsKK+Wun+eJqeWkpyA+IGppdHN1YnV0c3VkYWlcIDsKK+aLvuW+l+eJqSA+IHNodXV0b2t1YnV0c3VcIDsKK+WAieaVt+aWmSA+IGt1cmFzaGlraXJ5b3VcIDsKK+izh+aWmeWupCA+IHNoaXJ5b3VzaGl0c3VcIDsKK+iyt+eJqeiiiyA+IGthaW1vbm9idWt1cm9cIDsKK+WQuOWPjuWKmyA+IGt5dXVzaHV1cnlva3VcIDsKK+eLrOeri+WbvSA+IGRva3VyaXRzdWtva3VcIDsKK+ihgOWwv+eXhyA+IGtldHN1bnlvdXNob3VcIDsKK+W9q+WIu+eJqSA+IGNob3Vrb2t1YnV0c3VcIDsKK+WgquW/jeiiiyA+IGthbicnbmluYnVrdXJvXCA7CivnpL7plbflrqQgPiBzaGFjaG91c2hpdHN1XCA7CivkuLzli5jlrpogPiBkb25idXJpa2Fuam91XCA7CivnjonlrZDkuLwgPiB0YW1hZ29kb25idXJpXCA7CivnuK7liLfniYggPiBzaHVrdXNhdHN1YmFuXCA7Civku4rml6XnmoQgPiBrb24nJ25pY2hpdGVraVwgOwor5rSe5a+f5YqbID4gZG91c2F0c3VyeW9rdVwgOwor5p2+6aOf6JmrID4gbWF0c3VrdWltdXNoaVwgOwor6IqL6JST5byPID4gaW1vZHp1cnVzaGlraVwgOwor6LOq6YeP5pWwID4gc2hpdHN1cnlvdXN1dVwgOwor5Yil6YWN6YGUID4gYmV0c3VoYWl0YXRzdVwgOwor5LuK5pel5qeYID4ga29uJyduaWNoaXNhbWFcIDsKK+WGoOWkp+S8miA+IGthbm11cml0YWlrYWlcIDsKK+i/veikh+absiA+IHRzdWlmdWt1a3lva3VcIDsKK+e1hOWQiOmgrSA+IGt1bWlhaWdhc2hpcmFcIDsKK+aVo+atqeaXgSA+IHNhbnBva2F0YWdhdGFcIDsKK+S+m+iol+eJqSA+IGt5b3V0YWt1YnV0c3VcIDsKK+WHuumhmOS6uiA+IHNodXRzdWdhbicnbmluXCA7CivnspjnnYDlipsgPiBuZW5jaGFrdXJ5b2t1XCA7Civlrr/ms4rmlpkgPiBzaHVrdWhha3VyeW91XCA7Civmnp3lnoLmoZwgPiBzaGlkYXJlemFrdXJhXCA7Civlj6Tku6PntKsgPiBrb2RhaW11cmFzYWtpXCA7Civmnp3lnoLmn7MgPiBzaGlkYXJleWFuYWdpXCA7Civmt7Hnt5HoibIgPiBmdWthbWlkb3JpaXJvXCA7CivnqY3pm6rph48gPiBzZWtpc2V0c3VyeW91XCA7CivnoJTnqbblrqQgPiBrZW5reXV1c2hpdHN1XCA7Civlt6XkvZzlrqQgPiBrb3VzYWt1c2hpdHN1XCA7CivkvZzliofooZMgPiBzYWt1Z2VraWp1dHN1XCA7Civnn63ml6XmnIggPiB0YW5qaXRzdWdldHN1XCA7Civou4rmjozlrqQgPiBzaGFzaG91c2hpdHN1XCA7CivoqLrlr5/mlpkgPiBzaGluc2F0c3VyeW91XCA7Civkv7jntabooosgPiBob3VreXV1YnVrdXJvXCA7CivmtojlpLHngrkgPiBzaG91c2hpdHN1dGVuXCA7Civoqq3mm7jlrqQgPiBkb2t1c2hvc2hpdHN1XCA7Civlrr/ms4rlhYggPiBzaHVrdWhha3VzYWtpXCA7CivorZjliKXlrZAgPiBzaGlraWJldHN1c2hpXCA7CivljZfljYrnkIMgPiBtaW5hbWloYW5reXV1XCA7Civogbflk6HlrqQgPiBzaG9rdWluc2hpdHN1XCA7Civkv6HnjoTooosgPiBzaGluZ2VuYnVrdXJvXCA7CivmgYvnianoqp4gPiBrb2ltb25vZ2F0YXJpXCA7CivkuIDnspLnqK4gPiBoaXRvdHN1YnVkYW5lXCA7Civnt5Hmn7Hnn7MgPiByeW9rdWNodXVzZWtpXCA7CivmmJTmsJfos6ogPiBtdWthc2hpa2F0YWdpXCA7Civkv4Tli4nlvLcgPiBuaXdha2FiZW5reW91XCA7CivpgLLlrabnjocgPiBzaGluZ2FrdXJpdHN1XCA7Civmrr/mp5jom5kgPiB0b25vc2FtYWdhZXJ1XCA7CivpnZnohIjooYAgPiBqb3VteWFrdWtldHN1XCA7CivkuIDnrYvpgZMgPiBoaXRvc3VqaW1pY2hpXCA7CivlsLHmpa3njocgPiBzaHV1Z3lvdXJpdHN1XCA7CivlhoXnt5LoqbEgPiBuYWlzaG9iYW5hc2hpXCA7CivouoHprLHos6ogPiBzb3V1dHN1c2hpdHN1XCA7CivnhrHlirnnjocgPiBuZXRzdWtvdXJpdHN1XCA7Civnm67nmoTniakgPiBtb2t1dGVraWJ1dHN1XCA7Civlj43nmbrlipsgPiBoYW5wYXRzdXJ5b2t1XCA7CivmpI3nianoqowgPiBzaG9rdWJ1dHN1c2hpXCA7Civorablr5/lipsgPiBrZWlzYXRzdXJ5b2t1XCA7CivosqjnianlrqQgPiBrYW1vdHN1c2hpdHN1XCA7Civmh5DkuK3pj6EgPiBrYWljaHV1a2FnYW1pXCA7Civmt6Hnt5HoibIgPiB0YW5yeW9rdXNob2t1XCA7CivlpKnnq7rpvKAgPiB0ZW5qaWt1bmV6dW1pXCA7CivntbHnjoflipsgPiB0b3VyaXRzdXJ5b2t1XCA7Civlrp/pjLLniakgPiBqaXRzdXJva3Vtb25vXCA7Civlr4blhaXlm70gPiBtaXRzdW55dXVnb2t1XCA7Civnm7TovLjlh7ogPiBjaG9rdXl1c2h1dHN1XCA7Civmg5rmsJfoqbEgPiBub3Jva2ViYW5hc2hpXCA7CivkvJHppIrlrqQgPiBreXV1eW91c2hpdHN1XCA7CivpmbPliJfnqpMgPiBjaGlucmV0c3VtYWRvXCA7Civnmb7liIbnjocgPiBoeWFrdWJ1bnJpdHN1XCA7Civlh7rooYDnl4cgPiBzaHVra2V0c3VzaG91XCA7Civlr4bovLjlh7ogPiBtaXRzdXl1c2h1dHN1XCA7CivliKTliKXlvI8gPiBoYW5iZXRzdXNoaWtpXCA7CivmpI3niannlYwgPiBzaG9rdWJ1dHN1a2FpXCA7CivnhrHlipvlraYgPiBuZXRzdXJpa2lnYWt1XCA7CivmlrDmraPmnIggPiBzaGluc2hvdWdhdHN1XCA7CivkuLvpo5/niakgPiBzaHVzaG9rdWJ1dHN1XCA7CivpmbPliJfmo5ogPiBjaGlucmV0c3VkYW5hXCA7Civpm5Hlj47lhaUgPiB6YXRzdXNodXVueXV1XCA7Civnv4znv4zml6UgPiB5b2t1eW9rdWppdHN1XCA7CivoqbHljYrliIYgPiBoYW5hc2hpaGFuYnVuXCA7CivlipvkuI3otrMgPiBjaGlrYXJhYnVzb2t1XCA7CivlsLHlrabnjocgPiBzaHV1Z2FrdXJpdHN1XCA7CivmsLTkuIrnlLogPiBtaW5ha2FtaW1hY2hpXCA7CivopqrliIflv4MgPiBzaGluc2V0c3VzaGluXCA7CivliLbkvZzlrqQgPiBzZWlzYWt1c2hpdHN1XCA7CivljbPniannmoQgPiBzb2t1YnV0c3V0ZWtpXCA7CivmsbLlj5blj6MgPiBrdW1pdG9yaWd1Y2hpXCA7Civlu7/ml6XpvKAgPiBoYXRzdWthbmV6dW1pXCA7Civnt4/poJjlqJggPiBzb3VyeW91bXVzdW1lXCA7CivkuIPnpo/npZ4gPiBzaGljaGlmdWt1amluXCA7CivnibnliKXluK0gPiB0b2t1YmV0c3VzZWtpXCA7CivlpJrooYDos6ogPiB0YWtldHN1c2hpdHN1XCA7CivmoLjniIbnmbogPiBrYWt1YmFrdWhhdHN1XCA7CivlvpfnpajnjocgPiB0b2t1aHlvdXJpdHN1XCA7CivooajlvbDlvI8gPiBoeW91c2hvdXNoaWtpXCA7CivlhaXlrablvI8gPiBueXV1Z2FrdXNoaWtpXCA7CivngbDnmb3os6ogPiBrYWloYWt1c2hpdHN1XCA7Civpo5/nlKjmsrkgPiBzaG9rdXlvdWFidXJhXCA7Civogbfmpa3nmoQgPiBzaG9rdWd5b3V0ZWtpXCA7Civpo5/nlJ/mtLsgPiBzaG9rdXNlaWthdHN1XCA7CivkuLjkuIDmnIggPiBtYXJ1aGl0b3RzdWtpXCA7Civogbfmpa3nl4UgPiBzaG9rdWd5b3VieW91XCA7CivkuLjkuIDml6UgPiBtYXJ1aWNoaW5pY2hpXCA7Civmr5LnianlraYgPiBkb2t1YnV0c3VnYWt1XCA7CivlsLHogbflhYggPiBzaHV1c2hva3VzYWtpXCA7Civlj6PntITmnZ8gPiBrdWNoaXlha3Vzb2t1XCA7Civlrp/lipvogIUgPiBqaXRzdXJ5b2t1c2hhXCA7Civmuaflh7rph48gPiB5dXVzaHV0c3VyeW91XCA7CivnrZLkupXnrZIgPiB0c3V0c3VpZHp1dHN1XCA7CivkvJrloILlj7ggPiBrYWlkb3VkenVrYXNhXCA7CivplpPmrYfnhrEgPiBrYW5rZXRzdW5ldHN1XCA7Civlk7LlrabnmoQgPiB0ZXRzdWdha3V0ZWtpXCA7Civoqq3llIfooZMgPiBkb2t1c2hpbmp1dHN1XCA7CivplpPmrKDnhrEgPiBrYW5rZXRzdW5ldHN1XCA7Civoo7jpm7vnkIMgPiBoYWRha2FkZW5reXV1XCA7Civom4vnmb3os6ogPiB0YW5wYWt1c2hpdHN1XCA7CivmjpLms4TniakgPiBoYWlzZXRzdWJ1dHN1XCA7Civpo5/ogonnm64gPiBzaG9rdW5pa3Vtb2t1XCA7CivmtLvli5XlipsgPiBrYXRzdWRvdXJ5b2t1XCA7CivkvrXnlaXnmoQgPiBzaGlucnlha3V0ZWtpXCA7Civlh53pm4blipsgPiBneW91c2h1dXJ5b2t1XCA7Civkv4Tni4LoqIAgPiBuaXdha2FreW91Z2VuXCA7CivnjYXlrZDpoK0gPiBzaGlzaGlnYXNoaXJhXCA7CivoprPlr5/lipsgPiBrYW5zYXRzdXJ5b2t1XCA7CivohLHlipvmhJ8gPiBkYXRzdXJ5b2t1a2FuXCA7CivmlK/lh7rpoY0gPiBzaGlzaHV0c3VnYWt1XCA7CivlpKfomZDmrrogPiBkYWlneWFrdXNhdHN1XCA7CivliY3muKHph5EgPiBtYWV3YXRhc2hpa2luXCA7CivkubPnmb3oibIgPiBueXV1aGFrdXNob2t1XCA7CivntYLmpa3lvI8gPiBzaHV1Z3lvdXNoaWtpXCA7CivniIbnmbrnmoQgPiBiYWt1aGF0c3V0ZWtpXCA7CivmuIXlhYPnr4AgPiBraXlvbW90b2J1c2hpXCA7Civpm7fopqrniLYgPiBrYW1pbmFyaW95YWppXCA7CivnpZ7ntYzos6ogPiBzaGlua2Vpc2hpdHN1XCA7CivmjqXnnYDlipsgPiBzZXRjaGFrdXJ5b2t1XCA7CivkupTmnIjluZ8gPiBzYXRzdWtpbm9ib3JpXCA7CivpgIbovLjlh7ogPiBneWFrdXl1c2h1dHN1XCA7CivnmoTkuK3njocgPiB0ZWtpY2h1dXJpdHN1XCA7Civlu7roqK3osrsgPiBrZW5zZXRzdWhpeW91XCA7CivlsYjmipjnjocgPiBrdXNzZXRzdXJpdHN1XCA7CivoiLnplbflrqQgPiBzZW5jaG91c2hpdHN1XCA7CivkuLvmlZnlrqQgPiBzaHVreW91c2hpdHN1XCA7CivlrqTlhoXmpb0gPiBzaGl0c3VuYWlnYWt1XCA7Civkurrmg4XoqbEgPiBuaW5qb3ViYW5hc2hpXCA7Civmv4Pnt5HoibIgPiBub3VyeW9rdXNob2t1XCA7Civlv5zmjqXlrqQgPiBvdXNldHN1c2hpdHN1XCA7CivkvrXnlaXlm70gPiBzaGlucnlha3Vrb2t1XCA7Civkvo3msJfos6ogPiBzYW11cmFpa2F0YWdpXCA7CivnlLPovrzmm7ggPiBtb3VzaGlrb21pc2hvXCA7Civnm7Toqqzms5UgPiBjaG9rdXNldHN1aG91XCA7CivkuIvnlLrpoqggPiBzaGl0YW1hY2hpZnV1XCA7Civpo5/kuK3mr5IgPiBzaG9rdWNodXVkb2t1XCA7CivnlKPlh7rpq5ggPiBzYW5zaHV0c3VkYWthXCA7Civkvpvlh7rnsbMgPiBreW91c2h1dHN1bWFpXCA7CivlopfoqK3njocgPiB6b3VzZXRzdXJpdHN1XCA7CivlnKflipvpjYsgPiBhdHN1cnlva3VuYWJlXCA7Civlm6PmoJfnnLwgPiBkb25ndXJpbWFuYWtvXCA7CivlnKflipvph5wgPiBhdHN1cnlva3VnYW1hXCA7CivmsJflr4blrqQgPiBraW1pdHN1c2hpdHN1XCA7Civlv5zmjqXkv4IgPiBvdXNldHN1Z2FrYXJpXCA7CivlpbPmiL/oqZ4gPiBueW91Ym91a290b2JhXCA7CivliIbliJflvI8gPiBidW5yZXRzdXNoaWtpXCA7Civopqrku7vlvI8gPiBzaGluJyduaW5zaGlraVwgOwor55Sf5rS75YqbID4gc2Vpa2F0c3VyeW9rdVwgOwor6Kqt5b+D6KGTID4gZG9rdXNoaW5qdXRzdVwgOwor6aeF6ZW35a6kID4gZWtpY2hvdXNoaXRzdVwgOwor5a625LuY5aiYID4gaWV0c3VraW11c3VtZVwgOwor55m+5pel6I2JID4gaHlha3VuaWNoaXNvdVwgOwor5Lih5LiJ5pelID4gcnlvdXNhbicnbmljaGlcIDsKK+aXl+ihjOWIlyA+IGhhdGFneW91cmV0c3VcIDsKK+ecieWUvueJqSA+IG1heXV0c3ViYW1vbm9cIDsKK+mAsuihjOS/giA+IHNoaW5rb3VnYWthcmlcIDsKK+WLleakjeeJqSA+IGRvdXNob2t1YnV0c3VcIDsKK+W/heimgeeJqSA+IGhpdHN1eW91YnV0c3VcIDsKK+S4iei7uOWupCA+IHNhbmppa3VzaGl0c3VcIDsKK+W+heWQiOWupCA+IG1hY2hpYWlzaGl0c3VcIDsKK+WNmueJqeWtpiA+IGhha3VidXRzdWdha3VcIDsKK+e1kOe0ruihkyA+IGtlc3NhdHN1anV0c3VcIDsKK+a3t+WFpeeJqSA+IGtvbicnbnl1dWJ1dHN1XCA7Civkurrmg4XlmbogPiBuaW5qb3ViYW5hc2hpXCA7Civlh7rluK3njocgPiBzaHVzc2VraXJpdHN1XCA7Civnm7TmjqXnqI4gPiBjaG9rdXNldHN1emVpXCA7CivlpLHmpa3ogIUgPiBzaGl0c3VneW91c2hhXCA7CivniafnlZzmpa0gPiBib2t1Y2hpa3VneW91XCA7Civmp4vnr4nniakgPiBrb3VjaGlrdWJ1dHN1XCA7CivoqK3nq4vogIUgPiBzZXRzdXJpdHN1c2hhXCA7CivotrPplbfonIIgPiBhc2hpbmFnYWJhY2hpXCA7CivnspjmtrLos6ogPiBuZW4nJ2VraXNoaXRzdVwgOwor55u05o6l5rOVID4gY2hva3VzZXRzdWhvdVwgOwor5bm96ZyK6KmxID4geXV1cmVpYmFuYXNoaVwgOwor5ZCM6LOq55qEID4gZG91c2hpdHN1dGVraVwgOwor5Z+3552A5b+DID4gc2h1dWNoYWt1c2hpblwgOwor5Yqb6Zai5L+CID4gY2hpa2FyYWthbmtlaVwgOwor54mp6LOq55qEID4gYnVzc2hpdHN1dGVraVwgOwor6JK455m654axID4gam91aGF0c3VuZXRzdVwgOwor6Jap5pGp6ZalID4gc2F0c3VtYWJhdHN1XCA7CivoppbogbTnjocgPiBzaGljaG91cml0c3VcIDsKK+eVs+awtOe3tCA+IHRhdGFtaXN1aXJlblwgOwor5bmV5YOa6ZW3ID4gYmFrdXJ5b3VjaG91XCA7Civnj77lrp/nmoQgPiBnZW5qaXRzdXRla2lcIDsKK+eUu+S4gOeahCA+IGtha3VpdHN1dGVraVwgOwor5Y246YWS6LKpID4gb3Jvc2hpc2h1aGFuXCA7Civopqrml6XlrrYgPiBzaGluJyduaWNoaWthXCA7CivlhoXlh7rooYAgPiBuYWlzaHVra2V0c3VcIDsKK+a9pOethuaWmSA+IGp1bnBpdHN1cnlvdVwgOwor55Sw6IiO5L6NID4gaW5ha2F6YW11cmFpXCA7Civph5Hph5jmtYEgPiBrYW5ha3VnaXJ5dXVcIDsKK+WJteS9nOWKmyA+IHNvdXNha3VyeW9rdVwgOwor5Y2z5oim5YqbID4gc29rdXNlbnJ5b2t1XCA7Civmi6zntITnrYsgPiBrYXRzdXlha3VraW5cIDsKK+iqrOW+l+WKmyA+IHNldHRva3VyeW9rdVwgOwor6ZCY5pKe5aCCID4ga2FuZXRzdWtpZG91XCA7Civml6flvaLlvI8gPiBreXV1a2Vpc2hpa2lcIDsKK+m7hOeOieefsyA+IGtvdWd5b2t1c2VraVwgOwor5a6f6aiT5a6kID4gamlra2Vuc2hpdHN1XCA7Civlr4bmvIHogIUgPiBtaXRzdXJ5b3VzaGFcIDsKK+a9ruaxkOihqCA+IGNob3VzZWtpaHlvdVwgOwor55m954ax5oimID4gaGFrdW5ldHN1c2VuXCA7CivlvpPlsZ7nr4AgPiBqdXV6b2t1c2V0c3VcIDsKK+aKvOWIh+W4syA+IG9zaGlraXJpY2hvdVwgOwor6Ymx54mp5a2mID4ga291YnV0c3VnYWt1XCA7Civlt6blv4PlrqQgPiBzYXNoaW5zaGl0c3VcIDsKK+alteW9qeiJsiA+IGdva3VzYWlzaGlraVwgOwor6IKd5b+D6KaBID4ga2Fuamlua2FuYW1lXCA7Civlu7rnr4nmpa0gPiBrZW5jaGlrdWd5b3VcIDsKK+aLkumjn+eXhyA+IGt5b3Nob2t1c2hvdVwgOwor54ax6Zu75a++ID4gbmV0c3VkZW50c3VpXCA7CivpjpbkvJ3li5UgPiBrdXNhcmlkZW5kb3VcIDsKK+aLoeWkp+eOhyA+IGtha3VkYWlyaXRzdVwgOwor54uC5L+h55qEID4ga3lvdXNoaW50ZWtpXCA7Civooajnj77lipsgPiBoeW91Z2Vucnlva3VcIDsKK+S4reeri+mdoiA+IGNodXVyaXRzdW1lblwgOwor6LKd5q676JmrID4ga2FpZ2FyYW11c2hpXCA7CivkuIDnlarmmJ8gPiBpY2hpYmFuYm9zaGlcIDsKK+izg+WAn+S6uiA+IGNoaW5zaGFrdW5pblwgOwor6KOF6aO+55qEID4gc291c2hva3V0ZWtpXCA7CivmvrHnsonos6ogPiBkZW5wdW5zaGl0c3VcIDsKK+WNg+aXpeiNiSA+IHNlbicnbmljaGlzb3VcIDsKK+S4g+S6lOiqvyA+IHNoaWNoaWdvY2hvdVwgOwor5Lit5Zu95pyNID4gY2h1dWdva3VmdWt1XCA7Civpq5jlpKnljp8gPiB0YWthbWFnYWhhcmFcIDsKK+WLmOWumuS/giA+IGthbmpvdWdha2FyaVwgOwor5ouY5p2f5YqbID4ga291c29rdXJ5b2t1XCA7CivmsojmvrHniakgPiBjaGluZGVuYnV0c3VcIDsKK+WZqOizqueahCA+IGtpc2hpdHN1dGVraVwgOwor5Y2D5pel57SFID4gc2VuJyduaWNoaWtvdVwgOwor5bu656+J5a2mID4ga2VuY2hpa3VnYWt1XCA7CivmlZfooYDnl4cgPiBoYWlrZXRzdXNob3VcIDsKK+WNgeS4gOaciCA+IGp1dWljaGlnYXRzdVwgOwor6KKL5oi45qOaID4gZnVrdXJvdG9kYW5hXCA7Civmi53nianmlZkgPiBoYWlidXRzdWt5b3VcIDsKK+W+qeiukOW/gyA+IGZ1a3VzaHV1c2hpblwgOwor5pen5bm05pyrID4ga3l1dW5lbm1hdHN1XCA7CivlpLHogbfogIUgPiBzaGlzc2hva3VzaGFcIDsKK+WGheWJsuW8lSA+IHVjaGl3YXJpYmlraVwgOwor5Ye655Sj546HID4gc2h1c3NhbnJpdHN1XCA7Civlhpnlrp/nmoQgPiBzaGFqaXRzdXRla2lcIDsKK+aOpee2mumnhSA+IHNldHN1em9rdWVraVwgOwor6KO96YmE5qWtID4gc2VpdGV0c3VneW91XCA7Civlh7rnlJ/njocgPiBzaHVzc2Vpcml0c3VcIDsKK+edgOeJqeWnvyA+IGtpbW9ub3N1Z2F0YVwgOwor56mN5qW1562WID4gc2Vra3lva3VzYWt1XCA7CivlsI/mlofnr4AgPiBzaG91YnVuc2V0c3VcIDsKK+e1hOe5lOWKmyA+IHNvc2hpa2lyeW9rdVwgOwor5pat54ax5p2QID4gZGFuJyduZXRzdXphaVwgOwor6JGX5L2c54mpID4gY2hvc2FrdWJ1dHN1XCA7Civnm7Lmu4Xms5UgPiBtZWt1cmFtZXBwb3VcIDsKK+mZhOedgOWKmyA+IGZ1Y2hha3VyeW9rdVwgOwor5ryC5rWB5pyoID4gaHlvdXJ5dXVib2t1XCA7CivntLPlo6vpnbQgPiBzaGluc2hpZ3V0c3VcIDsKK+a1mua4q+iIuSA+IHNodW5zZXRzdXNlblwgOwor5rex5bGx54OPID4gbWl5YW1hZ2FyYXN1XCA7CivnlJ/oh63niakgPiBuYW1hZ3VzYW1vbm9cIDsKK+WvqeWIpOW9uSA+IHNoaW5wYW4nJ3lha3VcIDsKK+epjealteeahCA+IHNla2t5b2t1dGVraVwgOwor55m65aOy5YWDID4gaGF0c3ViYWltb3RvXCA7Civku4/poILpnaIgPiBidXRjaG91ZHp1cmFcIDsKK+WPluW8lemrmCA+IHRvcmloaWtpZGFrYVwgOwor6ZeW5YWl6ICFID4gY2hpbicnbnl1dXNoYVwgOwor5q+s5qCX6aCtID4gaWdhZ3VyaWF0YW1hXCA7Civlu7rnr4nkuK0gPiBrZW5jaGlrdWNodXVcIDsKK+W8seWwj+WbvSA+IGpha3VzaG91a29rdVwgOwor55m65aOy5LitID4gaGF0c3ViYWljaHV1XCA7CivlvqnorpDliocgPiBmdWt1c2h1dWdla2lcIDsKK+S4i+S7leS6iyA+IHNoaXRhc2hpZ290b1wgOwor5raI5qW15oCnID4gc2hvdWt5b2t1c2VpXCA7Civph5HmrKDnl4UgPiBraW5rZXRzdWJ5b3VcIDsKK+iBtOimlueOhyA+IGNob3VzaGlyaXRzdVwgOwor5rex5bGx5qGcID4gbWl5YW1hemFrdXJhXCA7Civos6rllY/ogIUgPiBzaGl0c3Vtb25zaGFcIDsKK+epuue0hOadnyA+IGthcmF5YWt1c29rdVwgOwor5o6l57aa6KmeID4gc2V0c3V6b2t1c2hpXCA7Civmirnpppnpr6ggPiBtYWtrb3VrdWppcmFcIDsKK+iKseebl+S6uiA+IGhhbmFudXN1Yml0b1wgOwor5Lm+54el5a6kID4ga2Fuc291c2hpdHN1XCA7CivlsL/mr5Lnl4cgPiBueW91ZG9rdXNob3VcIDsKK+eZh+eZqueOiSA+IGthbnNoYWt1ZGFtYVwgOwor5LiA5Lq654mpID4gaWNoaWppbmJ1dHN1XCA7CivljZTntITlm70gPiBreW91eWFrdWtva3VcIDsKK+acq+S7o+eJqSA+IG1hdHN1ZGFpbW9ub1wgOwor5YmD5YiA6LKgID4ga2FtaXNvcmltYWtlXCA7CivkuIDotrPlhYggPiBoaXRvYXNoaXNha2lcIDsKK+aenOeJqeexoCA+IGt1ZGFtb25va2Fnb1wgOwor5LiW6ZaT6KmxID4gc2VrZW5iYW5hc2hpXCA7CivooYzmpb3lrqIgPiBrb3VyYWt1a3lha3VcIDsKK+e0i+eZveidtiA+IG1vbnNoaXJvY2hvdVwgOwor5YWl5rmv5a6iID4gbnl1dXRvdWt5YWt1XCA7Civpl4flj5blvJUgPiB5YW1pdG9yaWhpa2lcIDsKK+mAsuawtOW8jyA+IHNoaW5zdWlzaGlraVwgOwor5Luu5omV6YeRID4ga2FyaWJhcmFpa2luXCA7CivntJnlsZHnsaAgPiBrYW1pa3V6dWthZ29cIDsKK+S5vueHpeWNtSA+IGthbnNvdXRhbWFnb1wgOwor57eR5YaF6ZqcID4gcnlva3VuYWlzaG91XCA7CivmpbXmpb3ps6UgPiBnb2t1cmFrdWNob3VcIDsKK+izg+iyuOWAnyA+IGNoaW50YWlzaGFrdVwgOwor5ZGK55m66ICFID4ga29rdWhhdHN1c2hhXCA7Civnmb3ooYDnl4UgPiBoYWtrZXRzdWJ5b3VcIDsKK+ecn+ePoOizqiA+IHNoaW5qdXNoaXRzdVwgOwor54mH5bGx6YeMID4ga2F0YXlhbWF6YXRvXCA7Civni6znq4vnpa0gPiBkb2t1cml0c3VzYWlcIDsKK+S6iOe0hOS/giA+IHlveWFrdWdha2FyaVwgOwor6buE57eR6ImyID4gb3VyeW9rdXNob2t1XCA7CivliY3pgLLlipsgPiB6ZW5zaGlucnlva3VcIDsKK+eiuueOh+irliA+IGtha3VyaXRzdXJvblwgOwor54us56uL54+tID4gZG9rdXJpdHN1aGFuXCA7CivnrYnlnKflvI8gPiB0b3VhdHN1c2hpa2lcIDsKK+e0oOS6uuetiyA+IHNoaXJvdXRvc3VqaVwgOwor576O5Lq65bGAID4gdHN1dHN1bW90YXNlXCA7CivlgJ/lnLDmlpkgPiBzaGFrdWNoaXJ5b3VcIDsKK+m7hOeGseeXhSA+IGtvdW5ldHN1YnlvdVwgOwor5oqV56Wo546HID4gdG91aHlvdXJpdHN1XCA7CivohIXov6vnmoQgPiBreW91aGFrdXRla2lcIDsKK+Wbo+e1kOW/gyA+IGRhbmtldHN1c2hpblwgOwor6LOq5ZWP5pu4ID4gc2hpdHN1bW9uc2hvXCA7CivkuK3nq4vmgKcgPiBjaHV1cml0c3VzZWlcIDsKK+WRiueZuueKtiA+IGtva3VoYXRzdWpvdVwgOwor5Y+N5b6p6KqsID4gaGFucHVrdXNldHN1XCA7CivljbDliLfooZMgPiBpbnNhdHN1anV0c3VcIDsKK+iDveWKm+e1piA+IG5vdXJ5b2t1a3l1dVwgOwor57e057+S5puyID4gcmVuc2h1dWt5b2t1XCA7CivotoXog73lipsgPiBjaG91bm91cnlva3VcIDsKK+aguOWIhuijgiA+IGtha3VidW5yZXRzdVwgOwor54us56uL5qipID4gZG9rdXJpdHN1a2VuXCA7CivlvoXlrrXojYkgPiBtYXRzdXlvaWd1c2FcIDsKK+S4gOS6uuWomCA+IGhpdG9yaW11c3VtZVwgOwor5Zu956iO5bGAID4ga29rdXplaWt5b2t1XCA7CivkuIDpnaLorZggPiBpY2hpbWVuc2hpa2lcIDsKK+WHuumhmOiAhSA+IHNodXRzdWdhbnNoYVwgOwor5Yu/5b+Y6I2JID4gd2FzdXJlbmFndXNhXCA7CivlvLfntr/olqwgPiBreW91bWVuJyd5YWt1XCA7CivmorbmnKjprqogPiBrYWppa2ltYWd1cm9cIDsKK+WkseaYjuiAhSA+IHNoaXRzdW1laXNoYVwgOwor5aWz6YGT5qW9ID4gb24nJ25hZG91cmFrdVwgOwor5oiQ6ZW3546HID4gc2VpY2hvdXJpdHN1XCA7Civnorrlrp/mgKcgPiBrYWt1aml0c3VzZWlcIDsKK+m7kuijheadnyA+IGt1cm9zaG91em9rdVwgOwor54ax5ouh5pWjID4gbmV0c3VrYWt1c2FuXCA7Civlv6Doh6PolLUgPiBjaHV1c2hpbmd1cmFcIDsKK+WLleeJqeWtpiA+IGRvdWJ1dHN1Z2FrdVwgOwor5LiA5p6a5LiLID4gaWNoaW1haXNoaXRhXCA7Civoh7PmnbHkuqwgPiBpdGFydXRvdWt5b3VcIDsKK+eLrOeri+aApyA+IGRva3VyaXRzdXNlaVwgOwor6Zuo5b6M6ZuqID4gYW1lbm9jaGl5dWtpXCA7Civlhavnm67psLsgPiB5YXRzdW1ldW5hZ2lcIDsKK+WkqeeLl+ipsSA+IHRlbmd1YmFuYXNoaVwgOwor5qGI5YaF5L+CID4gYW4nJ25haWdha2FyaVwgOwor5rWB6KGM6ImyID4gcnl1dWtvdXNob2t1XCA7Civpjb7kubPnn7MgPiBzaG91bnl1dXNla2lcIDsKK+aOpee2muaApyA+IHNldHN1em9rdXNlaVwgOwor55yf5a6f5oCnID4gc2hpbmppdHN1c2VpXCA7CivpqqjogonohasgPiBrb3RzdW5pa3VzaHVcIDsKK+eKrOeVnOeUnyA+IGludWNoaWt1c2hvdVwgOwor6aCY5Y+O6Ki8ID4gcnlvdXNodXVzaG91XCA7CivmmLzlhYnoibIgPiBjaHV1a291c2hva3VcIDsKK+WMl+alteeGiiA+IGhva2t5b2t1Z3VtYVwgOwor5Y+45Luk5a6kID4gc2hpcmVpc2hpdHN1XCA7CivljbDliLfniakgPiBpbnNhdHN1YnV0c3VcIDsKK+aKveixoeeahCA+IGNodXVzaG91dGVraVwgOwor55m95ouN5a2QID4gc2hpcmFieW91c2hpXCA7Civmj5Dlh7rogIUgPiB0ZWlzaHV0c3VzaGFcIDsKK+iAkOWcp+WKmyA+IHRhaWF0c3VyeW9rdVwgOwor5Ye46Z2i6Y+hID4gdG90c3VtZW5reW91XCA7Civpq5jooYDlnKcgPiBrb3VrZXRzdWF0c3VcIDsKK+afseaZguioiCA+IGhhc2hpcmFkb2tlaVwgOwor5YKY5q2v6LuKID4ga2FzYWhhZ3VydW1hXCA7Civou43lm73oibIgPiBndW5rb2t1c2hva3VcIDsKK+WFq+mDjua9nyA+IGhhY2hpcm91Z2F0YVwgOwor5a6/5ZG955qEID4gc2h1a3VtZWl0ZWtpXCA7CivkuK3lv4Pop5IgPiBjaHV1c2hpbmtha3VcIDsKK+mVt+mgiOmvqCA+IG5hZ2FzdWt1amlyYVwgOwor5L+u5LqG6Ki8ID4gc2h1dXJ5b3VzaG91XCA7CivmrrXjgIXnlaAgPiBkYW5kYW5iYXRha2VcIDsKK+auteOAheeVkSA+IGRhbmRhbmJhdGFrZVwgOwor5aSa6IKJ6LOqID4gdGFuaWt1c2hpdHN1XCA7CivpgLLlhaXnga8gPiBzaGluJydueXV1dG91XCA7Civpm4bntITnmoQgPiBzaHV1eWFrdXRla2lcIDsKK+WFteWFreeOiSA+IGh5b3Vyb2t1ZGFtYVwgOwor5pGp5pOm54axID4gbWFzYXRzdW5ldHN1XCA7CivmioDooZPlipsgPiBnaWp1dHN1cnlva3VcIDsKK+S7rua6tuaOpSA+IGthcml5b3VzZXRzdVwgOwor6auY5ZOB6LOqID4ga291aGluc2hpdHN1XCA7CivmmZLmnKjntr8gPiBzYXJhc2hpbW9tZW5cIDsKK+S8uOe4ruazlSA+IHNoaW5zaHVrdWhvdVwgOwor5YWt6YCj55m6ID4gcm9rdXJlbnBhdHN1XCA7CivkvbXnmbrnl4cgPiBoZWloYXRzdXNob3VcIDsKK+asoOS5j+eXhyA+IGtldHN1Ym91c2hvdVwgOwor6Zai56+A5oqAID4ga2Fuc2V0c3V3YXphXCA7CivmsojmsqHoiLkgPiBjaGluYm90c3VzZW5cIDsKK+WuueepjeeOhyA+IHlvdXNla2lyaXRzdVwgOwor5Li75Yqb5qCqID4gc2h1cnlva3VrYWJ1XCA7Civkub7mub/oqIggPiBrYW5zaGl0c3VrZWlcIDsKK+S5neaYn+ihkyA+IGt5dXVzZWlqdXRzdVwgOwor5Y+j5YWr5LiBID4ga3VjaGloYXRjaG91XCA7CivmpJzlr5/luoEgPiBrZW5zYXRzdWNob3VcIDsKK+ihqOihqOe0mSA+IG9tb3RlYnlvdXNoaVwgOwor55u05Y+W5byVID4gamlraXRvcmloaWtpXCA7CivlpKflrabljZIgPiBkYWlnYWt1c290c3VcIDsKK+WkseiqnueXhyA+IHNoaXRzdWdvc2hvdVwgOwor6ZmN6Zuq6YePID4ga291c2V0c3VyeW91XCA7CivmvIHluKvnlLogPiByeW91c2hpbWFjaGlcIDsKK+eJqeimi+arkyA+IG1vbm9taXlhZ3VyYVwgOwor5Y+W5qyh5bqXID4gdG9yaXRzdWdpdGVuXCA7CivmnKfmnIjlpJwgPiBvYm9yb2R6dWtpeW9cIDsKK+S6q+alveeahCA+IGt5b3VyYWt1dGVraVwgOwor5rC05Yqb5a2mID4gc3Vpcnlva3VnYWt1XCA7Civlj5blvJXlhYggPiB0b3JpaGlraXNha2lcIDsKK+WFpeWKm+e3miA+IG55dXVyeW9rdXNlblwgOwor5L2O6KGA5ZynID4gdGVpa2V0c3VhdHN1XCA7CivkvLjnuK7mgKcgPiBzaGluc2h1a3VzZWlcIDsKK+W+i+S7pOWItiA+IHJpdHN1cnlvdXNlaVwgOwor5b2i5byP55qEID4ga2Vpc2hpa2l0ZWtpXCA7Civku7Lnq4vkurogPiBuYWthZGFjaGluaW5cIDsKK+aYh+mZjeWPoyA+IHNob3Vrb3VndWNoaVwgOwor6KiY6Yyy5L+CID4ga2lyb2t1Z2FrYXJpXCA7Civlt6XkvZzniakgPiBrb3VzYWt1YnV0c3VcIDsKK+ato+ebtOiAhSA+IHNob3VqaWtpbW9ub1wgOwor5Lit5b+D55qEID4gY2h1dXNoaW50ZWtpXCA7Civoh6rnv5LlrqQgPiBqaXNodXVzaGl0c3VcIDsKK+S7iuaYjuaXpSA+IGtvbm15b3VuaWNoaVwgOwor6ZaT5o6l55qEID4ga2Fuc2V0c3V0ZWtpXCA7Civlh7rniYjniakgPiBzaHVwcGFuYnV0c3VcIDsKK+aguOi7jee4riA+IGtha3VndW5zaHVrdVwgOwor5LiA6KaL6K2YID4gaWNoaWtlbnNoaWtpXCA7CivmlLvmkoPlipsgPiBrb3VnZWtpcnlva3VcIDsKK+aVtOmrquaWmSA+IHNlaWhhdHN1cnlvdVwgOwor5LiD6Z2i5YCSID4gc2hpY2hpbWVuZG91XCA7CivogJDmub/mgKcgPiB0YWlzaGl0c3VzZWlcIDsKK+S7j+aWh+WtpiA+IGZ1dHN1YnVuZ2FrdVwgOwor55WR5rC057e0ID4gaGF0YWtlc3VpcmVuXCA7Civli4XmkrDpm4YgPiBjaG9rdXNlbnNodXVcIDsKK+S4g+mdouS9kyA+IHNoaWNoaW1lbnRhaVwgOwor5Yq5546H55qEID4ga291cml0c3V0ZWtpXCA7CivnhrHph4/oqIggPiBuZXRzdXJ5b3VrZWlcIDsKK+azqOmHiOiAhSA+IGNodXVzaGFrdXNoYVwgOwor54ut5b+D55eHID4ga3lvdXNoaW5zaG91XCA7CivlvKXnjJvlv4MgPiB5YXRha2Vnb2tvcm9cIDsKK+e3j+iKseW8jyA+IHNvdWJhbmFzaGlraVwgOwor5Y2U5ZWG5Zu9ID4ga3lvdXNob3Vrb2t1XCA7CivkuIPntYPnkLQgPiBzaGljaGlnZW5raW5cIDsKK+eIhuijguW8viA+IGJha3VyZXRzdWRhblwgOwor5a6X5pWZ5b+DID4gc2h1dWt5b3VzaGluXCA7CivlhazlhbHniakgPiBrb3VreW91YnV0c3VcIDsKK+aVkeaApeeusSA+IGt5dXVreXV1YmFrb1wgOwor54uC6Kmp5puyID4ga3lvdXNoaWt5b2t1XCA7Civkv4TliIbpmZAgPiBuaXdha2FidW5nZW5cIDsKK+Wul+aVmeWtpiA+IHNodXVreW91Z2FrdVwgOwor5LiA5pel5LitID4gaWNoaW5pY2hpanV1XCA7CivmsYLogbfogIUgPiBreXV1c2hva3VzaGFcIDsKK+eVnOauuuWgtCA+IGNoaWt1c2F0c3ViYVwgOwor5a2m5bm05pyrID4gZ2FrdW5lbm1hdHN1XCA7CivnqYDosaHomasgPiBrb2t1em91bXVzaGlcIDsKK+eEoemfv+WupCA+IG11a3lvdXNoaXRzdVwgOwor562N5Yy76ICFID4gdGFrZW5va29pc2hhXCA7CivmvZvlv4PlipsgPiBzZW5zaGlucnlva3VcIDsKK+iIiOihjOS4uyA+IGtvdWd5b3VudXNoaVwgOwor5L+u6aO+5a2QID4gc2h1dXNob2t1c2hpXCA7Civlj47nm4rnjocgPiBzaHV1ZWtpcml0c3VcIDsKK+elneWEgOiiiyA+IHNodXVnaWJ1a3Vyb1wgOwor5ama5ae75bGKID4ga29uJydpbnRvZG9rZVwgOwor6Zqc5a6z54mpID4gc2hvdWdhaWJ1dHN1XCA7Civpu5Lpirnnl4UgPiBrdXJvc2FiaWJ5b3VcIDsKK+S6uueJqeiplSA+IGppbmJ1dHN1aHlvdVwgOwor6ZuR5omA5b6XID4gemF0c3VzaG90b2t1XCA7CivliaXoo73ooZMgPiBoYWt1c2VpanV0c3VcIDsKK+eLrOWNoOassiA+IGRva3VzZW4nJ3lva3VcIDsKK+e1tuacm+eahCA+IHpldHN1Ym91dGVraVwgOwor5aSp54S26ImyID4gdGVuJyduZW5zaG9rdVwgOwor6ISC6IKq6LOqID4gc2hpYm91c2hpdHN1XCA7CivlrpfmlZnliocgPiBzaHV1a3lvdWdla2lcIDsKK+WHuuWgtOiAhSA+IHNodXRzdWpvdXNoYVwgOwor5Lm+5ryG5YOPID4ga2Fuc2hpdHN1em91XCA7CivlhoXnvbDnmoQgPiBuYWliYXRzdXRla2lcIDsKK+S4g+inkuW9oiA+IHNoaWNoaWtha2tlaVwgOwor5Y2z6IiI5puyID4gc29ra3lvdWt5b2t1XCA7CivmlaPnmbrnmoQgPiBzYW5wYXRzdXRla2lcIDsKK+W6g+WPo+eTtiA+IGhpcm9rdWNoaWJpblwgOwor5Zyn57iu546HID4gYXNzaHVrdXJpdHN1XCA7Civlrr/ms4rkurogPiBzaHVrdWhha3VuaW5cIDsKK+eMqee0heeGsSA+IHNob3Vrb3VuZXRzdVwgOwor5Y2U5Yqb6Yu8ID4ga3lvdXJ5b2t1a291XCA7CivmiYDnlarlnLAgPiB0b2tvcm9iYW5jaGlcIDsKK+azqOmHiOabuCA+IGNodXVzaGFrdXNob1wgOwor54m55b606YePID4gdG9rdWNob3VyeW91XCA7Civmh5Dlt6XlkIggPiBmdXRva29yb2d1YWlcIDsKK+aPj+WGmeWKmyA+IGJ5b3VzaGFyeW9rdVwgOwor55Sf54mp5a2mID4gc2VpYnV0c3VnYWt1XCA7Civmh5DlhbflkIggPiBmdXRva29yb2d1YWlcIDsKK+iqreabuOWKmyA+IGRva3VzaG9yeW9rdVwgOwor55+l6K2Y5qyyID4gY2hpc2hpa2l5b2t1XCA7CivlhajpgJ/lipsgPiB6ZW5zb2t1cnlva3VcIDsKK+ihqOOAhee0mSA+IG9tb3RlYnlvdXNoaVwgOwor5rex57SF6ImyID4gc2hpbmtvdXNob2t1XCA7Civou5/nnYDpmbggPiBuYW5jaGFrdXJpa3VcIDsKK+iJsuaDheeLgiA+IHNoaWtpam91a3lvdVwgOwor6YO15L6/6KKLID4geXV1YmluYnVrdXJvXCA7CivoqLrlr5/lj7AgPiBzaGluc2F0c3VkYWlcIDsKK+azoeayq+eahCA+IGhvdW1hdHN1dGVraVwgOwor5Luu6YeI5pS+ID4ga2FyaXNoYWt1aG91XCA7CivmgKXpgLLnmoQgPiBreXV1c2hpbnRla2lcIDsKK+iouuWvn+WIuCA+IHNoaW5zYXRzdWtlblwgOwor5qW15bCP5YCkID4ga3lva3VzaG91Y2hpXCA7CivkvpvooYDogIUgPiBreW91a2V0c3VzaGFcIDsKK+WPjuWFpeW9uSA+IHNodXVueXV1eWFrdVwgOwor5q615q6155WgID4gZGFuZGFuYmF0YWtlXCA7CivmrrXmrrXnlZEgPiBkYW5kYW5iYXRha2VcIDsKK+evgOeUqOmbhiA+IHNldHN1eW91c2h1dVwgOwor6YWN6YGU5paZID4gaGFpdGF0c3VyeW91XCA7CivmlrDljZLogIUgPiBzaGluc290c3VzaGFcIDsKK+WPjuebo+WKmyA+IHNodXVrYW5yeW9rdVwgOwor55m+6JGJ566xID4gaHlha3V5b3ViYWtvXCA7CivljZTlipvogIUgPiBreW91cnlva3VzaGFcIDsKK+mAn+mBlOS+vyA+IHNva3V0YXRzdWJpblwgOwor6YqA55m96ImyID4gZ2luaGFrdXNob2t1XCA7CivlpL7nq7nmoYMgPiBreW91Y2hpa3V0b3VcIDsKK+eVnOeUn+mBkyA+IGNoaWt1c2hvdWRvdVwgOwor6Zuq6L6x5oimID4gc2V0c3Vqb2t1c2VuXCA7CivmnbHkuqznnYAgPiB0b3VreW91Y2hha3VcIDsKK+mbu+S/oeWxgCA+IGRlbnNoaW5reW9rdVwgOwor6Z2S6Imy55eHID4gc2Vpc2hva3VzaG91XCA7CivluoPlkYrkuLsgPiBrb3Vrb2t1bnVzaGlcIDsKK+adseS6rOeZuiA+IHRvdWt5b3VoYXRzdVwgOwor5YWo6Lqr5rW0ID4gemVuc2hpbicneW9rdVwgOwor5aSJ6LOq6ICFID4gaGVuc2hpdHN1c2hhXCA7CivlpI/mnKjnq4sgPiBuYXRzdWtvZGFjaGlcIDsKK+itpuWvn+W6gSA+IGtlaXNhdHN1Y2hvdVwgOwor5qWt55WM5YidID4gZ3lvdWthaWhhdHN1XCA7CivlpKnplbfnr4AgPiB0ZW5jaG91c2V0c3VcIDsKK+eUo+ikpeeGsSA+IHNhbmpva3VuZXRzdVwgOwor5Y2Y5Yud5byPID4gdGFuc2hvdXNoaWtpXCA7CivpoK3poILpqqggPiB0b3VjaG91a290c3VcIDsKK+WjiuihgOeXhSA+IGthaWtldHN1YnlvdVwgOwor55yL5p2/5aiYID4ga2FuYmFubXVzdW1lXCA7Civnt6jpm4blsYAgPiBoZW5zaHV1a3lva3VcIDsKK+aZtOW+jOmbqCA+IGhhcmVub2NoaWFtZVwgOwor5rWB5YuV6aOfID4gcnl1dWRvdXNob2t1XCA7Civpo5/pgZPmpb0gPiBzaG9rdWRvdXJha3VcIDsKK+avm+e5lOmMpiA+IGtlb3JpbmlzaGlraVwgOwor5rGC5Lq65Y+jID4ga3l1dWppbmd1Y2hpXCA7CivntYLnnYDpp4UgPiBzaHV1Y2hha3Vla2lcIDsKK+m7kuawtOeGsSA+IGtva3VzdWluZXRzdVwgOwor5Luu6YCy57SaID4ga2FyaXNoaW5reXV1XCA7CivphY3pgZTlhYggPiBoYWl0YXRzdXNha2lcIDsKK+WvneeJqeiqniA+IG5lbW9ub2dhdGFyaVwgOwor6Iul5q6/5Y6fID4gd2FrYXRvbm9iYXJhXCA7CivlhrfolLXlrqQgPiByZWl6b3VzaGl0c3VcIDsKK+ayoeS6pOa4iSA+IGJvdHN1a291c2hvdVwgOwor6Z2Z6ISI55ikID4gam91bXlha3VyeXV1XCA7CivpqqjntYTnuZQgPiBrb3RzdXNvc2hpa2lcIDsKK+WNg+WNkumVtyA+IHNlbnNvdHN1Y2hvdVwgOwor55u06L2E5ZywID4gY2hva2thdHN1Y2hpXCA7CivkuIDnrYvnuakgPiBoaXRvc3VqaW5hd2FcIDsKK+S4gOeti+e4hCA+IGhpdG9zdWppbmF3YVwgOwor5bCx6IG36ZujID4gc2h1dXNob2t1bmFuXCA7CivoqqzntYznr4AgPiBzZWtreW91YnVzaGlcIDsKK+W/g+i6q+eXhyA+IHNoaW5zaGluc2hvdVwgOwor6Z2i5Lya5a6kID4gbWVua2Fpc2hpdHN1XCA7Civni6zlibXlipsgPiBkb2t1c291cnlva3VcIDsKK+Wni+alreW8jyA+IHNoaWd5b3VzaGlraVwgOwor5p2l5a6i562LID4gcmFpa3lha3VzdWppXCA7CivpgLLlrablob4gPiBzaGluZ2FrdWp1a3VcIDsKK+ebrueahOagvCA+IG1va3V0ZWtpa2FrdVwgOwor5qCh5q2j5L+CID4ga291c2VpZ2FrYXJpXCA7Civlipvoh6rmhaIgPiBjaGlrYXJhamltYW5cIDsKK+Wxi+aVt+eUuiA+IHlhc2hpa2ltYWNoaVwgOwor5pyN6aO+5ZOBID4gZnVrdXNob2t1aGluXCA7CivohqjlvLXnjocgPiBib3VjaG91cml0c3VcIDsKK+iJr+W/g+eahCA+IHJ5b3VzaGludGVraVwgOwor56m65b+15LuPID4gc29yYW5lbmJ1dHN1XCA7Civnmobnmobmp5ggPiBtaW5hbWluYXNhbWFcIDsKK+iDveeOh+e1piA+IG5vdXJpdHN1a3l1dVwgOwor5aCG56mN54mpID4gdGFpc2VraWJ1dHN1XCA7Civlh7rntI3kv4IgPiBzdWl0b3VnYWthcmlcIDsKK+iThOepjeeuoSA+IGNoaWt1c2VraWthblwgOwor54us6Lqr6ICFID4gZG9rdXNoaW5tb25vXCA7Civnn7Pnq7noibIgPiBzZWtpY2hpa3Vpcm9cIDsKK+ebtOiFuOeZjCA+IGNob2t1Y2hvdWdhblwgOwor56qB55m655qEID4gdG9wcGF0c3V0ZWtpXCA7CivoirjooZPnmoQgPiBnZWlqdXRzdXRla2lcIDsKK+mdnuaZtuizqiA+IGhpc2hvdXNoaXRzdVwgOwor546J6JyA6buNID4gdG91bW9yb2tvc2hpXCA7CivlsI/lv4PogIUgPiBzaG91c2hpbm1vbm9cIDsKK+m7kuawtOW8lSA+IGt1cm9taXp1aGlraVwgOwor5oSf54ax5YmkID4ga2FuJyduZXRzdXphaVwgOwor5aiv5qW95a6kID4gZ29yYWt1c2hpdHN1XCA7Civpjq7nl5volqwgPiBjaGludHN1dXlha3VcIDsKK+iDveeOh+eahCA+IG5vdXJpdHN1dGVraVwgOwor5ZCI5ZSx5puyID4gZ2Fzc2hvdWt5b2t1XCA7CivkuLnpoILptrQgPiB0YW5jaG91ZHp1cnVcIDsKK+mdqeaWsOeahCA+IGtha3VzaGludGVraVwgOwor5a6i5ZWG5aOyID4ga3lha3VzaG91YmFpXCA7CivkuIDmi6zlvI8gPiBpa2thdHN1c2hpa2lcIDsKK+eVnOeUo+alrSA+IGNoaWt1c2FuZ3lvdVwgOwor5Ye66KGA5q27ID4gc2h1a2tldHN1c2hpXCA7Civnmb3pq6rpoK0gPiBzaGlyYWdhYXRhbWFcIDsKK+aWsOW9ouW8jyA+IHNoaW5rZWlzaGlraVwgOwor5YWx5pyJ54mpID4ga3lvdXl1dWJ1dHN1XCA7CivnlLPlkYrnrrEgPiBzaGlua29rdWJha29cIDsKK+abuOeVmeaWmSA+IGtha2l0b21lcnlvdVwgOwor5biM6YeI54axID4ga2lzaGFrdW5ldHN1XCA7CivlsbHlj6PnnIwgPiB5YW1hZ3VjaGlrZW5cIDsKK+Wft+ethuiAhSA+IHNoaXBwaXRzdXNoYVwgOwor5ZWG5Y+W5byVID4gc2hvdXRvcmloaWtpXCA7CivmpI3nianmsrkgPiBzaG9rdWJ1dHN1eXVcIDsKK+WHuuihgOaWkSA+IHNodWtrZXRzdWhhblwgOwor5LyB55S75a6kID4ga2lrYWt1c2hpdHN1XCA7CivkvrXlhaXou40gPiBzaGluJydueXV1Z3VuXCA7CivmvIHnjbLniakgPiBneW9rYWt1YnV0c3VcIDsKK+WKm+WtpueahCA+IHJpa2lnYWt1dGVraVwgOwor55az55mq546JID4ga2Fuc2hha3VkYW1hXCA7CivntITmnZ/kuosgPiB5YWt1c29rdWdvdG9cIDsKK+e1jOW4t+WtkCA+IGt5b3VrYXRhYmlyYVwgOwor54Gr5raI5aO3ID4gaGlrZXNoaXRzdWJvXCA7CivliKnkvJHpvKAgPiByaWt5dXVuZXp1bWlcIDsKK+mghuW/nOWKmyA+IGp1bicnbm91cnlva3VcIDsKK+S4i+WNiui6qyA+IHNoaW1vaGFuc2hpblwgOwor6KGo5rG65qipID4gaHlvdWtldHN1a2VuXCA7Civmip7kuIDnmoQgPiB0YWt1aXRzdXRla2lcIDsKK+a1geWLleeJqSA+IHJ5dXVkb3VidXRzdVwgOwor6Zmz6L+w5pu4ID4gY2hpbmp1dHN1c2hvXCA7Civov73mgrzlvI8gPiB0c3VpdG91c2hpa2lcIDsKK+mjsumjn+eJqSA+IGluc2hva3VidXRzdVwgOwor5pi86aOf5LyaID4gY2h1dXNob2t1a2FpXCA7CivnlZznlKPlraYgPiBjaGlrdXNhbmdha3VcIDsKK+itmOWtl+eOhyA+IHNoaWtpamlyaXRzdVwgOwor6by76auY6auYID4gaGFuYXRha2FkYWthXCA7CivnibnliKXms5UgPiB0b2t1YmV0c3Vob3VcIDsKK+WHuua8geaoqSA+IHNodXRzdWd5b2tlblwgOwor6bO26IG35Lq6ID4gdG9iaXNob2t1bmluXCA7Civpjq7prYLmm7IgPiBjaGlua29ua3lva3VcIDsKK+WHuua8lOaWmSA+IHNodXRzdWVucnlvdVwgOwor6YCa5L+X55qEID4gdHN1dXpva3V0ZWtpXCA7CivkvrXlhaXogIUgPiBzaGluJydueXV1c2hhXCA7Civnqbrlh7rlvLUgPiBrYXJhc2h1dGNob3VcIDsKK+ihgOWcp+ioiCA+IGtldHN1YXRzdWtlaVwgOwor6IOG5rGB6LOqID4gdGFuanV1c2hpdHN1XCA7Civpu4TnoqfnjokgPiBrb3VoZWtpZ3lva3VcIDsKK+malOaciOWIiiA+IGtha3VnZXRzdWthblwgOwor5b6p5Y6f5YqbID4gZnVrdWdlbnJ5b2t1XCA7Civnq6Plt6XlvI8gPiBzaHVua291c2hpa2lcIDsKK+ertuS6ieeOhyA+IGt5b3Vzb3VyaXRzdVwgOwor56mN56uL6YeRID4gdHN1bWl0YXRla2luXCA7CivmpI3nianlnJIgPiBzaG9rdWJ1dHN1ZW5cIDsKK+eLrOi6q+WvriA+IGRva3VzaGlucnlvdVwgOwor5YWl5pyt6ICFID4gbnl1dXNhdHN1c2hhXCA7CivmlrDlhaXnlJ8gPiBzaGluJydueXV1c2VpXCA7CivnpZ7orKHpm4YgPiBzaGluJyd5b3VzaHV1XCA7CivkuKHmpbXnq68gPiByeW91a3lva3V0YW5cIDsKK+W4s+mdoumdoiA+IGNob3VtZW5kenVyYVwgOwor6KaL56mN5pu4ID4gbWl0c3Vtb3Jpc2hvXCA7CivnoJTliYrku6MgPiBrZW5zYWt1c2hpcm9cIDsKK+a0u+WLleeahCA+IGthdHN1ZG91dGVraVwgOwor5YWo6IO95YqbID4gemVuJydub3VyeW9rdVwgOwor6aOf6IKJ6aGeID4gc2hva3VuaWt1cnVpXCA7CivogrrmtLvph48gPiBoYWlrYXRzdXJ5b3VcIDsKK+mWi+elqOeOhyA+IGthaWh5b3VyaXRzdVwgOwor5bi46K2Y55qEID4gam91c2hpa2l0ZWtpXCA7Civlj47lrrnlipsgPiBzaHV1eW91cnlva3VcIDsKK+ixoeW+tOeahCA+IHNob3VjaG91dGVraVwgOwor6Ieq5oWi6KmxID4gamltYW5iYW5hc2hpXCA7Civmi5vlvoXlrqIgPiBzaG91dGFpa3lha3VcIDsKK+S6pOmfv+absiA+IGtvdWt5b3VreW9rdVwgOwor6Zu76Kej6LOqID4gZGVua2Fpc2hpdHN1XCA7CivlubPlupXoiLkgPiBoaXJhc29rb2J1bmVcIDsKK+WwseS7u+W8jyA+IHNodXVuaW5zaGlraVwgOwor5Ya35YeN5a6kID4gcmVpdG91c2hpdHN1XCA7CivphY3ohrPlrqQgPiBoYWl6ZW5zaGl0c3VcIDsKK+W6g+WztuecjCA+IGhpcm9zaGltYWtlblwgOwor5pqm5pS55q2jID4ga295b21pa2Fpc2VpXCA7CivlvrPlt53mlrkgPiB0b2t1Z2F3YWdhdGFcIDsKK+S7ruWFpeWtpiA+IGthcmlueXV1Z2FrdVwgOwor5Y6f5b2i6LOqID4gZ2Vua2Vpc2hpdHN1XCA7Civpu5LoibLohasgPiBrb2t1c2hva3VzaHVcIDsKK+WNkualreeUnyA+IHNvdHN1Z3lvdXNlaVwgOwor5Zue5b6p5YqbID4ga2FpZnVrdXJ5b2t1XCA7CivlhaXkvJrlvI8gPiBueXV1a2Fpc2hpa2lcIDsKK+WQkeW/g+WKmyA+IGtvdXNoaW5yeW9rdVwgOwor546J6Jmr6ImyID4gdGFtYW11c2hpaXJvXCA7CivnibnliKXlj7cgPiB0b2t1YmV0c3Vnb3VcIDsKK+iEseavm+eXhyA+IGRhdHN1bW91c2hvdVwgOwor5aeL55CD5byPID4gc2hpa3l1dXNoaWtpXCA7CivkvZXoibLmkKggPiBuYW5zaG9rdXp1cmlcIDsKK+S/oeiol+alrSA+IHNoaW50YWt1Z3lvdVwgOwor5YO75qC55oCnID4gaGlnYW1pa29uam91XCA7CivlparkuInmjK8gPiBkYXRzdXNhbnNoaW5cIDsKK+mJhOeBq+S4vCA+IHRla2thZG9uYnVyaVwgOwor5aSn56aP6aSFID4gZGFpZnVrdW1vY2hpXCA7CivkvrXnlaXou40gPiBzaGlucnlha3VndW5cIDsKK+WPjeeJqeizqiA+IGhhbmJ1c3NoaXRzdVwgOwor5Yi255CD5YqbID4gc2Vpa3l1dXJ5b2t1XCA7CivpmbjnlKPniakgPiByaWt1c2FuYnV0c3VcIDsKK+i+suS9nOeJqSA+IG5vdXNha3VidXRzdVwgOwor56uc6IiM6JitID4gcnl1dXpldHN1cmFuXCA7Civllrbmpa3nlZEgPiBlaWd5b3ViYXRha2VcIDsKK+iCiemjn+eNoyA+IG5pa3VzaG9rdWp1dVwgOwor5rOV5b6L5a2mID4gaG91cml0c3VnYWt1XCA7CivmlrDnmbrmmI4gPiBzaGluaGF0c3VtZWlcIDsKK+mAl+eVmeWuoiA+IHRvdXJ5dXVreWFrdVwgOwor5b6z5bO255yMID4gdG9rdXNoaW1ha2VuXCA7CivmuIXmsLTlr7ogPiBraXlvbWl6dWRlcmFcIDsKK+eGseWuuemHjyA+IG5ldHN1eW91cnlvdVwgOwor5paH562G5qWtID4gYnVucGl0c3VneW91XCA7CivohLPlh7rooYAgPiBub3VzaHVra2V0c3VcIDsKK+mcsuWHuueXhyA+IHJvc2h1dHN1c2hvdVwgOwor6auY6Laz6J+5ID4gdGFrYWFzaGlnYW5pXCA7Civnp4HlqLznqp8gPiBzaGlzaG91a3V0c3VcIDsKK+m7kuiJsueZjCA+IGtva3VzaG9rdWdhblwgOwor6LKn6KGA55eHID4gaGlua2V0c3VzaG91XCA7Civoqo3orZjnpaggPiBuaW5zaGlraWh5b3VcIDsKK+eWq+eXheelniA+IHlha3VieW91Z2FtaVwgOwor6Zyy5Ye654uCID4gcm9zaHV0c3VreW91XCA7Civlr4bnjJ/ogIUgPiBtaXRzdXJ5b3VzaGFcIDsKK+WFq+S4iOWztiA+IGhhY2hpam91amltYVwgOwor6ZmN56We6KGTID4ga291c2hpbmp1dHN1XCA7Civlk7LlrabogIUgPiB0ZXRzdWdha3VzaGFcIDsKK+WKm+S4gOadryA+IGNoaWthcmFpcHBhaVwgOwor5Ye65ZOB54mpID4gc2h1cHBpbmJ1dHN1XCA7CivngbDnmb3oibIgPiBrYWloYWt1c2hva3VcIDsKK+eLrOWxheWupCA+IGRva2t5b3NoaXRzdVwgOwor5o6l5b6F5L+CID4gc2V0dGFpZ2FrYXJpXCA7CivkuIflubTpm6ogPiBtYW4nJ25lbicneXVraVwgOwor54uC5oOz5puyID4ga3lvdXNvdWt5b2t1XCA7CivkvrXnlaXogIUgPiBzaGlucnlha3VzaGFcIDsKK+eUuuW9ueS6uiA+IG1hY2hpeWFrdW5pblwgOwor6Jqw6JyS55yJID4gZ2VqaWdlamltYXl1XCA7Civlrabnv5Llob4gPiBnYWt1c2h1dWp1a3VcIDsKK+aWsOeZuuWjsiA+IHNoaW5oYXRzdWJhaVwgOwor56u25LqJ5YqbID4ga3lvdXNvdXJ5b2t1XCA7CivlpLHlkI3msI8gPiBzaGl0c3VtZWlzaGlcIDsKK+ihqOW6p+aVtyA+IG9tb3RlemFzaGlraVwgOwor5b6055m65LukID4gY2hvdWhhdHN1cmVpXCA7Civlia/lj47lhaUgPiBmdWt1c2h1dW55dXVcIDsKK+aBkOWWnee9qiA+IGt5b3VrYXRzdXphaVwgOwor5bGI5oqY6Lu4ID4ga3Vzc2V0c3VqaWt1XCA7CivlkIjliIfooosgPiBnYXNzYWlidWt1cm9cIDsKK+a2iOaBr+mAmiA+IHNob3Vzb2t1dHN1dVwgOwor5qCq5Li75qipID4ga2FidW51c2hpa2VuXCA7CivljaDmnInnjocgPiBzZW4nJ3l1dXJpdHN1XCA7CivljZfkuqzooosgPiBuYW5raW5idWt1cm9cIDsKK+mrmOmrmOaMhyA+IHRha2F0YWtheXViaVwgOwor55m96Imy5YWJID4gaGFrdXNob2t1a291XCA7CivpkJjkubPnn7MgPiBzaG91bnl1dXNla2lcIDsKK+aXpeexs+WNlCA+IG5pY2hpYmVpa3lvdVwgOwor5bGI5oqY6KeSID4ga3Vzc2V0c3VrYWt1XCA7CivmrrrkurrnmoQgPiBzYXRzdWppbnRla2lcIDsKK+W3puWbo+aJhyA+IGhpZGFyaXVjaGl3YVwgOwor6Ziy5aG15a6kID4gYm91amluc2hpdHN1XCA7CivlkKvmnInnjocgPiBnYW4nJ3l1dXJpdHN1XCA7CivohIjmkI/mlbAgPiBteWFrdWhha3VzdXVcIDsKK+aOqOmAsuWKmyA+IHN1aXNoaW5yeW9rdVwgOwor6IG+5qGf5pW3ID4gdHN1bmJvc2FqaWtpXCA7CivnuK7nt6znmrogPiBjaGlyaW1lbmppd2FcIDsKK+auuuS6uueLgiA+IHNhdHN1amlua3lvdVwgOwor6Ly45Ye65YWlID4geXVzaHV0c3VueXV1XCA7CivoprPlrqLluK0gPiBrYW5reWFrdXNla2lcIDsKK+WRveWGpeWKoCA+IGlub2NoaW15b3VnYVwgOwor6KGo5YWt546JID4gaHlvdXJva3VkYW1hXCA7Civmo67mnpfmtbQgPiBzaGlucmluJyd5b2t1XCA7CivogJXkvZzniakgPiBrb3VzYWt1YnV0c3VcIDsKK+eIhueZuueuoSA+IGJha3VoYXRzdWthblwgOwor6buS5YWr5LiIID4ga3Vyb2hhY2hpam91XCA7CivljYrouqvmtbQgPiBoYW5zaGluJyd5b2t1XCA7Civmmpfnt5HoibIgPiBhbnJ5b2t1c2hva3VcIDsKK+eti+iCieeXmyA+IGtpbicnbmlrdXRzdXVcIDsKK+iBt+iDvee1piA+IHNob2t1bm91a3l1dVwgOwor5paw55Sf54mpID4gc2hpbnNlaWJ1dHN1XCA7Civlh4zpnIToirEgPiBub3V6ZW5rYXp1cmFcIDsKK+m7kuiJsuWwiSA+IGtva3VzaGlraWpvdVwgOwor5YG255m655qEID4gZ3V1aGF0c3V0ZWtpXCA7CivnibnnlKPniakgPiB0b2t1c2FuYnV0c3VcIDsKK+WMlueyp+WupCA+IGtlc2hvdXNoaXRzdVwgOwor57eP5pSv5Ye6ID4gc291c2hpc2h1dHN1XCA7Civlk7Llrabmm7ggPiB0ZXRzdWdha3VzaG9cIDsKK+WNmueJqemkqCA+IGhha3VidXRzdWthblwgOwor5Luy5LuL54mpID4gY2h1dWthaWJ1dHN1XCA7Civnmb3poK3pt7IgPiBoYWt1dG91d2FzaGlcIDsKK+acgOaWsOW8jyA+IHNhaXNoaW5zaGlraVwgOwor5bGx6LqR6LqFID4geWFtYXRzdXRzdWppXCA7CivnnIHpm7vlipsgPiBzaG91ZGVucnlva3VcIDsKK+S4gOWMueeLvCA+IGlwcGlraW9va2FtaVwgOwor5raI5oGv562LID4gc2hvdXNva3VzdWppXCA7CivkuIflubTnrYYgPiBtYW4nJ25lbmhpdHN1XCA7Civku4flkIzmsI8gPiBrYXRha2lkb3VzaGlcIDsKK+WxgOWcsOeahCA+IGt5b2t1Y2hpdGVraVwgOwor6Z2p5omL6KKLID4ga2F3YXRlYnVrdXJvXCA7CivkuIPliIboopYgPiBzaGljaGlidXNvZGVcIDsKK+W/g+mciuihkyA+IHNoaW5yZWlqdXRzdVwgOwor5p2+56u55qKFID4gc2hvdWNoaWt1YmFpXCA7CivmoLjplovnmbogPiBrYWt1a2FpaGF0c3VcIDsKK+Wbvemam+iJsiA+IGtva3VzYWlzaG9rdVwgOwor5a2Q5L6b5b+DID4ga29kb21vZ29rb3JvXCA7Civli4Xpgbjpm4YgPiBjaG9rdXNlbnNodXVcIDsKK+eyvuelnuWKmyA+IHNlaXNoaW5yeW9rdVwgOwor5YaN56qB5YWlID4gc2FpdG90c3VueXV1XCA7Civnmbrkv6HlsYAgPiBoYXNzaGlua3lva3VcIDsKK+Wkp+WSjOW/gyA+IHlhbWF0b2dva29yb1wgOwor6Kq/5b6L5birID4gY2hvdXJpdHN1c2hpXCA7Civovp7ogbfpoZggPiBqaXNob2t1bmVnYWlcIDsKK+imquWvhuaEnyA+IHNoaW5taXRzdWthblwgOwor56qT6Zqb5pePID4gbWFkb2dpd2F6b2t1XCA7CivlhpnnnJ/ooZMgPiBzaGFzaGluanV0c3VcIDsKK+W+qeWFg+WKmyA+IGZ1a3VnZW5yeW9rdVwgOwor6Ly75bCE54axID4gZnVrdXNoYW5ldHN1XCA7Civkvpvov7DogIUgPiBreW91anV0c3VzaGFcIDsKK+elnue1jOevgCA+IHNoaW5rZWlzZXRzdVwgOwor54iG55m65oCnID4gYmFrdWhhdHN1c2VpXCA7Civlhajml6XliLYgPiB6ZW4nJ25pY2hpc2VpXCA7Civmtojmr5LolqwgPiBzaG91ZG9rdXlha3VcIDsKK+mBk+W+s+W+iyA+IGRvdXRva3VyaXRzdVwgOwor5Zu96Ziy6ImyID4ga29rdWJvdXNob2t1XCA7CivntYLmnKvoq5YgPiBzaHV1bWF0c3Vyb25cIDsKK+Wwhui7jeiBtyA+IHNob3VndW5zaG9rdVwgOwor6I2J5pyI5rWBID4gc291Z2V0c3VyeXV1XCA7CivmmI7otaToibIgPiBtZWlzZWtpc2hva3VcIDsKK+S7mOedgOWKmyA+IGZ1Y2hha3VyeW9rdVwgOwor6Kej5rG6562WID4ga2Fpa2V0c3VzYWt1XCA7Civlj6PllIfoo4IgPiBrb3VzaGlucmV0c3VcIDsKK+S4g+iNieeypSA+IG5hbmFrdXNhZ2F5dVwgOwor5ZWG5qWt5a2mID4gc2hvdWd5b3VnYWt1XCA7Civlu7roqK3nnIEgPiBrZW5zZXRzdXNob3VcIDsKK+WIhuWIpeW/gyA+IGZ1bmJldHN1c2hpblwgOwor5bu66Kit55qEID4ga2Vuc2V0c3V0ZWtpXCA7Civkuoznv7vlvbkgPiByeWFuZmFuJyd5YWt1XCA7Civlj6Pmi43lrZAgPiBrdWNoaWJ5b3VzaGlcIDsKK+iqjeiovOW8jyA+IG5pbnNob3VzaGlraVwgOwor57eP5ous55qEID4gc291a2F0c3V0ZWtpXCA7CivmiZjpiaLlg6cgPiB0YWt1aGF0c3V6b3VcIDsKK+WVhualreWbvSA+IHNob3VneW91a29rdVwgOwor5Luy5Lq65Y+jID4gbmFrb3Vkb2d1Y2hpXCA7CivmoZzliY3nt5ogPiBzYWt1cmF6ZW5zZW5cIDsKK+m+jeiIjOiYrSA+IHJ5dXV6ZXRzdXJhblwgOwor5by35Yi25YqbID4ga3lvdXNlaXJ5b2t1XCA7Civlv4Xoqq3mm7ggPiBoaXRzdWRva3VzaG9cIDsKK+Wcp+WKm+ioiCA+IGF0c3VyeW9rdWtlaVwgOwor6ZqP562G6ZuGID4genVpaGl0c3VzaHV1XCA7CivnjKvnm67nn7MgPiBuZWtvbW9rdXNla2lcIDsKK+WLieW8t+acuiA+IGJlbmt5b3V6dWt1ZVwgOwor55m9546J5qW8ID4gaGFrdWd5b2t1cm91XCA7CivplovpgJrlvI8gPiBrYWl0c3V1c2hpa2lcIDsKK+ilv+WNiueQgyA+IG5pc2hpaGFua3l1dVwgOwor5ZWE5pyo6bOlID4gdGFrdWJva3VjaG91XCA7CivljZjkuIDlvaIgPiB0YW4nJ2ljaGlnYXRhXCA7Civlv4XnhLbnmoQgPiBoaXRzdXplbnRla2lcIDsKK+awtOift+iegiA+IG1penVrYW1ha2lyaVwgOwor5pif5pyI5aScID4gaG9zaGlkenVrdXlvXCA7CivnuJ7nuZTniakgPiBzaGltYW9yaW1vbm9cIDsKK+W7uuiorealrSA+IGtlbnNldHN1Z3lvdVwgOwor6by76auY44CFID4gaGFuYXRha2FkYWthXCA7CivllYbkurrooZcgPiBzaG91bmlubWFjaGlcIDsKK+S4gOW5leeJqSA+IGhpdG9tYWt1bW9ub1wgOwor55m+5Lq65YqbID4gaHlha3VuaW5yaWtpXCA7Civkvpvov7Dmm7ggPiBreW91anV0c3VzaG9cIDsKK+Wun+alreeVjCA+IGppdHN1Z3lvdWthaVwgOwor6KGM5bmz6Y2LID4geXVraWhpcmFuYWJlXCA7CivokL3miJDlvI8gPiByYWt1c2Vpc2hpa2lcIDsKK+afs+W3nemNiyA+IHlhbmFnYXdhbmFiZVwgOwor6Iiq57aa5YqbID4ga291em9rdXJ5b2t1XCA7Civnm7TmjqXosrsgPiBjaG9rdXNldHN1aGlcIDsKK+WxseaiqOecjCA+IHlhbWFuYXNoaWtlblwgOwor5qOX5qSw5a2QID4gbmF0c3VtZXlhc2hpXCA7CivliLrmv4DniakgPiBzaGlnZWtpYnV0c3VcIDsKK+a8q+mBiuWuoiA+IG1hbicneXV1a3lha3VcIDsKK+mjn+eJqeayuSA+IHNob2t1YnV0c3V5dVwgOwor55Om54WO6aSFID4ga2F3YXJhc2VuYmVpXCA7CivopqrlrZDkuLwgPiBveWFrb2RvbmJ1cmlcIDsKK+iRl+i/sOalrSA+IGNob2p1dHN1Z3lvdVwgOwor6JK855m96ImyID4gc291aGFrdXNob2t1XCA7CivkuIPovrrlvaIgPiBzaGljaGloZW5rZWlcIDsKK+W5tOacq+i/hCA+IG5lbm1hdHN1bWFkZVwgOwor5aOy5pil5a6/ID4gYmFpc2h1bicneWFkb1wgOwor6LOq54K557O7ID4gc2hpdHN1dGVua2VpXCA7CivlvqHkvL3oqbEgPiBvdG9naWJhbmFzaGlcIDsKK+aTjealreeOhyA+IHNvdWd5b3VyaXRzdVwgOwor5p6V5bGP6aKoID4gbWFrdXJhYnlvdWJ1XCA7CivooYDmtrLlraYgPiBrZXRzdWVraWdha3VcIDsKK+Wfuuedo+aVmSA+IGtpcmlzdXRva3lvdVwgOwor6byg6Iqx54GrID4gbmV6dW1paGFuYWJpXCA7CivmjZXnianluLMgPiB0b3JpbW9ub2Nob3VcIDsKK+aNleeJqeW4liA+IHRvcmltb25vY2hvdVwgOwor6LKv6JS15a6kID4gY2hvem91c2hpdHN1XCA7CivlvJTllY/lrqIgPiBjaG91bW9ua3lha3VcIDsKK+mBuuWkseeJqSA+IGlzaGl0c3VidXRzdVwgOwor5YuV6ISI6KGAID4gZG91bXlha2tldHN1XCA7CivlhaXloLTlvI8gPiBueXV1am91c2hpa2lcIDsKK+e0sOiDnuizqiA+IHNhaWJvdXNoaXRzdVwgOwor6KGA5ray5Z6LID4ga2V0c3Vla2lnYXRhXCA7CivmqJnorZjnga8gPiBoeW91c2hpa2l0b3VcIDsKK+WMheaLrOeahCA+IGhvdWthdHN1dGVraVwgOwor5YqH5Lit5YqHID4gZ2VraWNodXVnZWtpXCA7Civlrp/nlKjnmoQgPiBqaXRzdXlvdXRla2lcIDsKK+S+jeWFq+mojiA+IHNhbXVyYWloYWtraVwgOwor5Lit6ZaT6ImyID4gY2h1dWthbnNob2t1XCA7CivplovohbnooZMgPiBrYWlmdWt1anV0c3VcIDsKK+ebtOaSg+W8viA+IGNob2t1Z2VraWRhblwgOwor5Ymv55Sj54mpID4gZnVrdXNhbmJ1dHN1XCA7Civlkb3kuK3njocgPiBtZWljaHV1cml0c3VcIDsKK+ihgOWPi+eXhSA+IGtldHN1eXV1YnlvdVwgOwor57K+55m9546HID4gc2VpaGFrdXJpdHN1XCA7CivlnYfos6rmgKcgPiBraW5zaGl0c3VzZWlcIDsKK+aIuOexjeS/giA+IGtvc2VraWdha2FyaVwgOwor5o6l5a6i5qWtID4gc2Vra3lha3VneW91XCA7Civok4Tohr/nl4cgPiBjaGlrdW5vdXNob3VcIDsKK+iKseW9ouagqiA+IGhhbmFnYXRha2FidVwgOwor5oyv5Ye65Lq6ID4gZnVyaWRhc2hpbmluXCA7CivoqLvph4jogIUgPiBjaHV1c2hha3VzaGFcIDsKK+emgeassueahCA+IGtpbicneW9rdXRla2lcIDsKK+S4gOWIhuWIpSA+IGhpdG9mdW5iZXRzdVwgOwor5Y2K54us56uLID4gaGFuZG9rdXJpdHN1XCA7Civln7fli5nkuK0gPiBzaGl0c3VtdWNodXVcIDsKK+imquaXpea0viA+IHNoaW4nJ25pY2hpaGFcIDsKK+emj+WztuecjCA+IGZ1a3VzaGltYWtlblwgOwor6Kq/6Imy5p2/ID4gY2hvdXNob2t1YmFuXCA7Civliarlrprpi48gPiBzZW50ZWliYXNhbWlcIDsKK+e3kem7hOiJsiA+IHJ5b2t1b3VzaG9rdVwgOwor5LiL5bGL5pW3ID4gc2hpbW95YXNoaWtpXCA7Civou4rnlKjlk4EgPiBrdXJ1bWF5b3VoaW5cIDsKK+iAkOS5heWKmyA+IHRhaWt5dXVyeW9rdVwgOwor5a+d5Y+w6JmrID4gc2hpbmRhaW11c2hpXCA7Civll5zomZDnmoQgPiBzaGlneWFrdXRla2lcIDsKK+S4ree2meWxgCA+IGNodXVrZWlreW9rdVwgOwor6ZW35bqD6IiMID4gY2hvdWtvdXpldHN1XCA7Civml6XmsqHlvowgPiBuaWNoaWJvdHN1Z29cIDsKK+WLleiEiOeYpCA+IGRvdW15YWt1cnl1dVwgOwor5LiA6Lyq5oy/ID4gaWNoaXJpbnphc2hpXCA7Civokrjnmbrnmr8gPiBqb3VoYXRzdXphcmFcIDsKK+izg+WAn+aoqSA+IGNoaW5zaGFrdWtlblwgOwor5Y245ZWP5bGLID4gb3Jvc2hpZG9uJyd5YVwgOwor6Ziy5rm/5YmkID4gYm91c2hpdHN1emFpXCA7Civlj47nqavpq5ggPiBzaHV1a2FrdWRha2FcIDsKK+WGjeWHuueZuiA+IHNhaXNodXBwYXRzdVwgOwor5Y2U5aWP5puyID4ga3lvdXNvdWt5b2t1XCA7CivlkajmpbXmmJ8gPiBzaHV1a3lva3VzZWlcIDsKK+mbtuihjOWIlyA+IHJlaWd5b3VyZXRzdVwgOwor5Ye655m654K5ID4gc2h1cHBhdHN1dGVuXCA7CivlkIjmoLznjocgPiBnb3VrYWt1cml0c3VcIDsKK+ihjOmAsuabsiA+IGtvdXNoaW5reW9rdVwgOwor55m954ax54GvID4gaGFrdW5ldHN1dG91XCA7Civpo5/mlpnlk4EgPiBzaG9rdXJ5b3VoaW5cIDsKK+aTjei7iuS/giA+IHNvdXNoYWdha2FyaVwgOwor5Yi65oif54mpID4gc2hpZ2VraWJ1dHN1XCA7Civmub/pm7vmsaAgPiBzaGl0c3VkZW5jaGlcIDsKK+ims+aOjOihkyA+IGthbnNob3VqdXRzdVwgOwor55yf6aqo6aCCID4gc2hpbmtvdGNob3VcIDsKK+W/heimgeWTgSA+IGhpdHN1eW91aGluXCA7CivnlLvkuJbnmoQgPiBrYWt1c2VpdGVraVwgOwor54ao5paX6KKLID4gbm9zaGlidWt1cm9cIDsKK+a4rOWcsOWtpiA+IHNva3VjaGlnYWt1XCA7Civpm4HmnKjpkaIgPiBnYW5naXlhc3VyaVwgOwor5YaN5Ymy5byVID4gc2Fpd2FyaWJpa2lcIDsKK+WlieeMruW8jyA+IGhvdWtlbnNoaWtpXCA7CivliJ3oqpXnlJ8gPiBoYXRzdXRhbmpvdVwgOwor5LiJ5pys6LazID4gc2FuYm9uJydhc2hpXCA7CivliKTmlq3lipsgPiBoYW5kYW5yeW9rdVwgOwor5Y2U6Kq/5oCnID4ga3lvdWNob3VzZWlcIDsKK+WkqemBk+S5viA+IHRlbnRvdWJvc2hpXCA7Civnmb3ml6XlpKIgPiBoYWt1aml0c3VtdVwgOwor5YiG5p6Q6KGoID4gYnVuc2VraWh5b3VcIDsKK+aJv+irvuabuCA+IHNob3VkYWt1c2hvXCA7CivlsJHpo5/lrrYgPiBzaG91c2hva3VrYVwgOwor5Luu5Z+36KGMID4ga2FyaXNoaWtrb3VcIDsKK+aPoeWKm+ioiCA+IGFrdXJ5b2t1a2VpXCA7CivkuI3otrPli50gPiBmdXNva3VnYWNoaVwgOwor5b6M6YCy5Zu9ID4ga291c2hpbmtva3VcIDsKK+a0l+ecvOiWrCA+IHNlbmdhbicneWFrdVwgOwor5b6p57+S5paHID4gZnVrdXNodXVidW5cIDsKK+atouihgOW4ryA+IHNoaWtldHN1dGFpXCA7CivkuIvlrr/mlpkgPiBnZXNodWt1cnlvdVwgOwor6YeN6YeP57SaID4ganV1cnlvdWt5dXVcIDsKK+WJjemAsui7uCA+IHplbnNoaW5qaWt1XCA7CivpiYTnn7Plv4MgPiB0ZXNzZWtpc2hpblwgOwor55SY6Iy26JSTID4gYW1hY2hhZHp1cnVcIDsKK+e9suWQjeW8jyA+IHNob21laXNoaWtpXCA7Civkurrlv4PlnLAgPiBoaXRvZ29rb2NoaVwgOwor5Zua5Lq65pyNID4gc2h1dWppbmZ1a3VcIDsKK+W+i+WEgOiAhSA+IHJpY2hpZ2ltb25vXCA7Civpm4HmnKjou4ogPiBnYW5naWd1cnVtYVwgOwor5oaC5qyd55eHID4geXV1dXRzdXNob3VcIDsKK+Wun+mok+W8jyA+IGppa2tlbnNoaWtpXCA7Civni4Lkv6HogIUgPiBreW91c2hpbnNoYVwgOwor5rCR5peP55qEID4gbWluem9rdXRla2lcIDsKK+eZuuiogOiAhSA+IGhhdHN1Z2Vuc2hhXCA7CivljZjnuKbliJcgPiB0YW5qdXVyZXRzdVwgOwor5LiJ5Lq657WEID4gc2FuJyduaW5ndW1pXCA7Civpu5LmlpHnl4UgPiBrb2t1aGFuYnlvdVwgOwor5oKq5oKq5oivID4gd2FydWl0YXp1cmFcIDsKK+Wun+eUqOWTgSA+IGppdHN1eW91aGluXCA7CivlpKfohb/pqqggPiBkYWl0YWlrb3RzdVwgOwor5rC06Jyc5qGDID4gc3VpbWl0c3V0b3VcIDsKK+a8gua1geiIuSA+IGh5b3VyeXV1c2VuXCA7CivpoLjli5XohIggPiBrZWlkb3VteWFrdVwgOwor55Sf5YW15rOVID4gbmFtYWJ5b3Vob3VcIDsKK+eDj+e+veiJsiA+IGthcmFzdWJhaXJvXCA7CivlvJ/lvJ/lrZAgPiBvdG91dG9kZXNoaVwgOwor5YqH5paH5a2mID4gZ2VraWJ1bmdha3VcIDsKK+WKoOiWrOmjryA+IGtheWFrdW1lc2hpXCA7CivljJfljYrnkIMgPiBraXRhaGFua3l1dVwgOwor6ZuG5Lit57eaID4gc2h1dWNodXVzZW5cIDsKK+W+l+alreWjqyA+IHRva3VneW91c2hpXCA7CivliY3pgLLop5IgPiB6ZW5zaGlua2FrdVwgOwor6aSK5q6W5rGgID4geW91c2hva3VjaGlcIDsKK+WXnOiZkOaApyA+IHNoaWd5YWt1c2VpXCA7CivkuInkurrnp7AgPiBzYW4nJ25pbnNob3VcIDsKK+S4ree0muWTgSA+IGNodXVreXV1aGluXCA7CivmvILmtYHogIUgPiBoeW91cnl1dXNoYVwgOwor6KqY5oOR54mpID4geXV1d2FrdW1vbm9cIDsKK+mgreiTi+mqqCA+IHRvdWdhaWtvdHN1XCA7CivnmbrmmI7lk4EgPiBoYXRzdW1laWhpblwgOwor5aSx5qC86ICFID4gc2hpa2tha3VzaGFcIDsKK+aIkOe4vuihqCA+IHNlaXNla2loeW91XCA7Civms6jmloflhYggPiBjaHV1bW9uc2FraVwgOwor5pei5rG65ZuaID4ga2lrZXRzdXNodXVcIDsKK+aRguWLleirliA+IHNldHN1ZG91cm9uXCA7CivkvI/mtYHmsLQgPiBmdWt1cnl1dXN1aVwgOwor54us6KOB55qEID4gZG9rdXNhaXRla2lcIDsKK+mrmOiqv+WtkCA+IHRha2FjaG91c2hpXCA7Civnq4vohJrlnLAgPiByaWtreWFrdWNoaVwgOwor5YaN5qeL56+JID4gc2Fpa291Y2hpa3VcIDsKK+ark+Wkqum8kyA+IHlhZ3VyYWRhaWtvXCA7CivmraLooYDliaQgPiBzaGlrZXRzdXphaVwgOwor5Lih5pa55YWxID4gcnlvdWhvdXRvbW9cIDsKK+advuiRieadliA+IG1hdHN1YmFkenVlXCA7CivmspbnqY3ntbEgPiBjaHV1c2VraXRvdVwgOwor5LuV5LqL566xID4gc2hpZ290b2Jha29cIDsKK+awt+mGi+mFuCA+IGh5b3VzYWt1c2FuXCA7Civmm7jnsY3llYYgPiBzaG9zZWtpc2hvdVwgOwor5Luu57a05pysID4ga2FyaXRvamlob25cIDsKK+eZuumbu+aJgCA+IGhhdHN1ZGVuc2hvXCA7Civlrpjog73nmoQgPiBrYW4nJ25vdXRla2lcIDsKK+acq+aioueahCA+IG1hc3Nob3V0ZWtpXCA7CivkuK3plpPlm70gPiBjaHV1a2Fua29rdVwgOwor5oCd57Si55qEID4gc2hpc2FrdXRla2lcIDsKK+WHuui6q+agoSA+IHNodXNzaGlua291XCA7CivngbDpnZLoibIgPiBoYWlzZWlzaG9rdVwgOwor6Iiq5rW36KGTID4ga291a2FpanV0c3VcIDsKK+Wwj+adseS6rCA+IHNob3V0b3VreW91XCA7CivljYPkurrlipsgPiBzZW4nJ25pbnJpa2lcIDsKK+S6uuW3peiKnSA+IGppbmtvdXNoaWJhXCA7Civou73ph4/ntJogPiBrZWlyeW91a3l1dVwgOwor5ouY5p2f5ZynID4ga291c29rdWF0c3VcIDsKK+aIpumXmOWKmyA+IHNlbnRvdXJ5b2t1XCA7CivnkIPpnaLpj6EgPiBreXV1bWVua3lvdVwgOwor5Lq65b2i5YqHID4gbmluZ3lvdWdla2lcIDsKK+eEoemqqOiAhSA+IGJ1a290c3Vtb25vXCA7CivnlLrlpYnooYwgPiBtYWNoaWJ1Z3lvdVwgOwor56m66Ki85paHID4ga2FyYXNob3Vtb25cIDsKK+awt+mFoumFuCA+IGh5b3VzYWt1c2FuXCA7CivmlL7niannt5ogPiBob3VidXRzdXNlblwgOwor6Kq/5a2Q6ICFID4gY2hvdXNoaW1vbm9cIDsKK+ePvuWun+aEnyA+IGdlbmppdHN1a2FuXCA7CivnqY3liIblraYgPiBzZWtpYnVuZ2FrdVwgOwor54++5a6f5oCnID4gZ2Vuaml0c3VzZWlcIDsKK+mrmOmbu+WcpyA+IGtvdWRlbicnYXRzdVwgOwor5a2m5ZWP55qEID4gZ2FrdW1vbnRla2lcIDsKK+WtpueptueahCA+IGdha2t5dXV0ZWtpXCA7Civlj47nqavnpa0gPiBzaHV1a2FrdXNhaVwgOwor54mp55CG5a2mID4gYnV0c3VyaWdha3VcIDsKK+WeguebtOe3miA+IHN1aWNob2t1c2VuXCA7CivmrbTlj7LlraYgPiByZWtpc2hpZ2FrdVwgOwor5r2k5ruR5YmkID4ganVua2F0c3V6YWlcIDsKK+e1hOe5lOWtpiA+IHNvc2hpa2lnYWt1XCA7Civnmbrpm7vlrZAgPiBoYXRzdWRlbnNoaVwgOwor5LiJ5bCK5LuPID4gc2Fuem9uYnV0c3VcIDsKK+W8leWPluS6uiA+IGhpa2l0b3JpbmluXCA7CivmvILms4rogIUgPiBoeW91aGFrdXNoYVwgOwor55yf55Sw6JmrID4gc2FuYWRhbXVzaGlcIDsKK+mXh+WVhuS6uiA+IHlhbWlzaG91bmluXCA7CivlhaXmvIHmlpkgPiBueXV1Z3lvcnlvdVwgOwor5LiD5a6d54S8ID4gc2hpcHBvdXlha2lcIDsKK+mLvOmJhOadvyA+IGtvdXRldHN1YmFuXCA7CivlhKroia/moKogPiB5dXVyeW91a2FidVwgOwor5pys5qC855qEID4gaG9ua2FrdXRla2lcIDsKK+W+qeiukOaIpiA+IGZ1a3VzaHV1c2VuXCA7CivmmrTlipvlm6MgPiBib3VyeW9rdWRhblwgOwor5Yid6Ki65paZID4gc2hvc2hpbnJ5b3VcIDsKK+WPo+mBlOiAhSA+IGt1Y2hpZGFzc2hhXCA7CivogJDnhrHmgKcgPiB0YWluZXRzdXNlaVwgOwor5aKX6KGA5YmkID4gem91a2V0c3V6YWlcIDsKK+WMl+WMl+adsSA+IGhva3Vob2t1dG91XCA7CivnmbroqIDmqKkgPiBoYXRzdWdlbmtlblwgOwor5oCl5oiQ6ZW3ID4ga3l1dXNlaWNob3VcIDsKK+WHuuizh+mhjSA+IHNodXNzaGlnYWt1XCA7CivlhoXliIbms4wgPiBuYWlidW5waXRzdVwgOwor5Zub5pes56+AID4gc2hpanVuc2V0c3VcIDsKK+S5neWumOmzpSA+IGt5dXVrYW5jaG91XCA7CivogIHkurrlipsgPiByb3VqaW5yeW9rdVwgOwor5bu656+J5aOrID4ga2VuY2hpa3VzaGlcIDsKK+WkqualteaLsyA+IHRhaWt5b2t1a2VuXCA7CivnlJ/nlarntYQgPiBuYW1hYmFuZ3VtaVwgOwor6aSK5q6W5aC0ID4geW91c2hva3Vqb3VcIDsKK+iZmuiEseaEnyA+IGt5b2RhdHN1a2FuXCA7CivosaHniZnos6ogPiB6b3VnZXNoaXRzdVwgOwor6ZqG6by76KGTID4gcnl1dWJpanV0c3VcIDsKK+ihqOmdouepjSA+IGh5b3VtZW5zZWtpXCA7Civliqrlipvos54gPiBkb3J5b2t1c2hvdVwgOwor5Y2B5Lq65LimID4ganV1bmluJyduYW1pXCA7CivolqzpkbXpoK0gPiB5YWthbicnYXRhbWFcIDsKK+WVhuWjsuetiyA+IHNob3ViYWlzdWppXCA7CivmuK/mub7lsYAgPiBrb3V3YW5reW9rdVwgOwor5rC05ZWG5aOyID4gbWl6dXNob3ViYWlcIDsKK+mJhOmBk+S+vyA+IHRldHN1ZG91YmluXCA7CivmsJHml4/lraYgPiBtaW56b2t1Z2FrdVwgOwor5q205Y+y5YqHID4gcmVraXNoaWdla2lcIDsKK+a6neW9oumLvCA+IG1pem9nYXRha291XCA7CivmmI7mmbDlpKIgPiBtZWlzZWtpeXVtZVwgOwor6YCg6KGA5YmkID4gem91a2V0c3V6YWlcIDsKK+aWree2mueahCA+IGRhbnpva3V0ZWtpXCA7CivlvI/pg6jnnIEgPiBzaGlraWJ1c2hvdVwgOwor5qW16YGT6ICFID4gZ29rdWRvdW1vbm9cIDsKK+mWi+agoeW8jyA+IGthaWtvdXNoaWtpXCA7CivmsJHntIToq5YgPiBtaW4nJ3lha3Vyb25cIDsKK+mYsuW+oeeOhyA+IGJvdWd5b3JpdHN1XCA7CivooajpnaLnmoQgPiBoeW91bWVudGVraVwgOwor6KiI5pmC5L+CID4ga2VpamlnYWthcmlcIDsKK+W+jOeZuuWTgSA+IGtvdWhhdHN1aGluXCA7CivolqnmkannhLwgPiBzYXRzdW1heWFraVwgOwor5Ye66Lqr5ZywID4gc2h1c3NoaW5jaGlcIDsKK+itt+i6q+ihkyA+IGdvc2hpbmp1dHN1XCA7CivkuI7lpKroqbEgPiB5b3RhYmFuYXNoaVwgOwor5YaN5YWl5a2mID4gc2Fpbnl1dWdha3VcIDsKK+WNlOe0hOabuCA+IGt5b3V5YWt1c2hvXCA7Civoqr/lrZDniakgPiBjaG91c2hpbW9ub1wgOwor5LiJ576954OPID4gc2FuYmFnYXJhc3VcIDsKK+ioquWVj+WuoiA+IGhvdW1vbmt5YWt1XCA7CivmsrvpqJPolqwgPiBjaGlrZW4nJ3lha3VcIDsKK+aAp+WWhOiqrCA+IHNlaXplbnNldHN1XCA7Civku5Xkuovmn4QgPiBzaGlnb3RvZ2FyYVwgOwor5aSn5qC56LazID4gZGFpa29uJydhc2hpXCA7CivlhYnngKzpvo0gPiBtaXRzdXNlcnl1dVwgOwor54u86JeJ6ICFID4gcm91emVraW1vbm9cIDsKK+W/g+aLjeaVsCA+IHNoaW5wYWt1c3V1XCA7Civli5XnianoqowgPiBkb3VidXRzdXNoaVwgOwor6L+U5Y205YCkID4gaGVua3lha3VjaGlcIDsKK+eEoemnhOipsSA+IG11ZGFiYW5hc2hpXCA7CivliIblrZDlvI8gPiBidW5zaGlzaGlraVwgOwor6ZmN6LuK5Y+jID4ga291c2hhZ3VjaGlcIDsKK+aknOWHuuWZqCA+IGtlbnNodXRzdWtpXCA7CivokL3okYnmnb4gPiByYWt1eW91c2hvdVwgOwor5qW15YmN57eaID4ga3lva3V6ZW5zZW5cIDsKK+i2hei2iueCuSA+IGNob3VldHN1dGVuXCA7Civpu5LnjKnjgIUgPiBrdXJvc2hvdWpvdVwgOwor5Zu95oW256+AID4ga29ra2Vpc2V0c3VcIDsKK+WkqeeUo+eJqSA+IHRlbnNhbmJ1dHN1XCA7CivntLPlo6vpjLIgPiBzaGluc2hpcm9rdVwgOwor5YaN5YWl5Zu9ID4gc2Fpbnl1dWtva3VcIDsKK+ewoea9lOaApyA+IGthbmtldHN1c2VpXCA7CivliIfmlq3pnaIgPiBzZXRzdWRhbm1lblwgOwor5byV6L6857eaID4gaGlraWtvbWlzZW5cIDsKK+eyl+W/veiAhSA+IHNva290c3Vtb25vXCA7CivplovkvJrlvI8gPiBrYWlrYWlzaGlraVwgOwor5oSf5YK355qEID4ga2Fuc2hvdXRla2lcIDsKK+W4guacieeJqSA+IHNoaXl1dWJ1dHN1XCA7CivogZbogbfogIUgPiBzZWlzaG9rdXNoYVwgOwor5Lit6KGj5ZqiID4gbmFrYWdha3VzaGlcIDsKK+eLrOeri+iqniA+IGRva3VyaXRzdWdvXCA7CivogrLlhZDlrqQgPiBpa3VqaXNoaXRzdVwgOwor57mB5q6W5ZywID4gaGFuc2hva3VjaGlcIDsKK+S4gOS6uuensCA+IGljaGluaW5zaG91XCA7CivplbfltI7nnIwgPiBuYWdhc2FraWtlblwgOwor6Zu75Yqb6KiIID4gZGVucnlva3VrZWlcIDsKK+ijveawt+eavyA+IHNlaWh5b3V6YXJhXCA7CivkuLvnqI7lsYAgPiBzaHV6ZWlreW9rdVwgOwor5o6l57aa6KqeID4gc2V0c3V6b2t1Z29cIDsKK+eJuembhuWPtyA+IHRva3VzaHV1Z291XCA7Civpu5LopJDoibIgPiBrb2trYXNzaG9rdVwgOwor5Lit5Zu95Lq6ID4gY2h1dWdva3VqaW5cIDsKK+W+k+WxnuWbvSA+IGp1dXpva3Vrb2t1XCA7Civlj6Pov5TnrZQgPiBrdWNoaWhlbnRvdVwgOwor5rib6KGw546HID4gZ2Vuc3Vpcml0c3VcIDsKK+Wwjumbu+eOhyA+IGRvdWRlbnJpdHN1XCA7CivkuIDkuobnsKEgPiBpY2hpcnlvdWthblwgOwor5YaN6Ly45Ye6ID4gc2FpeXVzaHV0c3VcIDsKK+mdkumKheiJsiA+IHNlaWRvdXNob2t1XCA7CivpmorllYblrr8gPiB0YWlzaG91eWFkb1wgOwor5byP5qyh56ysID4gc2hpa2lzaGlkYWlcIDsKK+eUn+eUo+eJqSA+IHNlaXNhbmJ1dHN1XCA7Civlubvopprnl4cgPiBnZW5rYWt1c2hvdVwgOwor5oqV5omL5YqbID4gdG91c2h1cnlva3VcIDsKK+mWieS8muW8jyA+IGhlaWthaXNoaWtpXCA7CivmspbnqY3lsaQgPiBjaHV1c2VraXNvdVwgOwor5YKs55yg6KGTID4gc2FpbWluanV0c3VcIDsKK+idmeidoOWCmCA+IGtvdW1vcmlnYXNhXCA7CivlkJHml6XmgKcgPiBrb3VuaWNoaXNlaVwgOwor5ZC45Y+W57SZID4gc3VpdG9yaWdhbWlcIDsKK+aGgumsseeXhyA+IHl1dXV0c3VzaG91XCA7Civpq5jlnKfnmoQgPiBrb3VhdHN1dGVraVwgOwor5pyJ5Yqb6ICFID4geXV1cnlva3VzaGFcIDsKK+WIpeWVj+mhjCA+IGJldHN1bW9uZGFpXCA7Civku6PmlbDlvI8gPiBkYWlzdXVzaGlraVwgOwor5YWl5riv5paZID4gbnl1dWtvdXJ5b3VcIDsKK+eEoeWuv+iAhSA+IG11c2h1a3Vtb25vXCA7Civljp/lrZDlipsgPiBnZW5zaGlyeW9rdVwgOwor5oiQ5paH5b6LID4gc2VpYnVucml0c3VcIDsKK+eUt+S4gOWMuSA+IG90b2tvaXBwaWtpXCA7CivloZ7moJPnl4cgPiBzb2t1c2Vuc2hvdVwgOwor5ZWG5aOy5p+EID4gc2hvdWJhaWdhcmFcIDsKK+iFuei2s+mhniA+IGZ1a3Vzb2t1cnVpXCA7CivmnbHljbDluqYgPiBoaWdhc2hpaW5kb1wgOwor6LOH5pys5YqbID4gc2hpaG9ucnlva3VcIDsKK+elh+WckuelrSA+IGdpb25tYXRzdXJpXCA7CivkuIrkuqzkuK0gPiBqb3VreW91Y2h1dVwgOwor5YKs55yg6JasID4gc2FpbWluJyd5YWt1XCA7Civnj77osaHlraYgPiBnZW5zaG91Z2FrdVwgOwor56eL5rSl5bO2ID4gYWtpdHN1c2hpbWFcIDsKK+e+iuWwj+WxiyA+IGhpdHN1amlnb3lhXCA7Civoo4Xpo77lk4EgPiBzb3VzaG9rdWhpblwgOwor5Y2D5pel5omLID4gc2VuJyduaWNoaXRlXCA7CivmpI3msJHlnLAgPiBzaG9rdW1pbmNoaVwgOwor5aSW5YiG5rOMID4gZ2FpYnVucGl0c3VcIDsKK+mao+i/keaJgCA+IHRvbmFyaWtpbmpvXCA7Civlr77poILop5IgPiB0YWljaG91a2FrdVwgOwor6IKp55Sy6aqoID4ga2Vua291a290c3VcIDsKK+iFsOW8geW9kyA+IGtvc2hpYmVudG91XCA7Civlj6Plt6fogIUgPiBrdWNoaWdvdXNoYVwgOwor5LiN5LiW5Ye6ID4gZnVzZWlzaHV0c3VcIDsKK+WFiOaXpeS7mCA+IHNha2loaWR6dWtlXCA7CivpgI/oppblipsgPiB0b3VzaGlyeW9rdVwgOwor5Ym16Kit6ICFID4gc291c2V0c3VzaGFcIDsKK+mHkemtmumJoiA+IGtpbmd5b2JhY2hpXCA7CivooZLlrabnmoQgPiBnZW5nYWt1dGVraVwgOwor6YeR55+z5a2mID4ga2luc2VraWdha3VcIDsKK+mHjuiPnOeVkSA+IHlhc2FpYmF0YWtlXCA7Civnm7TmhJ/nmoQgPiBjaG9ra2FudGVraVwgOwor5YuV54mp55u4ID4gZG91YnV0c3Vzb3VcIDsKK+izg+S7leS6iyA+IGNoaW5zaGlnb3RvXCA7CivnibnoqLHkuLsgPiB0b2treW9udXNoaVwgOwor5aWJ57SN54mpID4gaG91bm91YnV0c3VcIDsKK+S/nemHiOS4rSA+IGhvc2hha3VjaHV1XCA7CivpnZLol43oibIgPiBzZWlyYW5zaG9rdVwgOwor6ISF6L+r6ICFID4ga3lvdWhha3VzaGFcIDsKK+WLleeJqeeVjCA+IGRvdWJ1dHN1a2FpXCA7CivpgJrooYzkuIogPiB0c3V1a291ZG9tZVwgOwor5by35aWq6ICFID4gZ291ZGF0c3VzaGFcIDsKK+iEhei/q+e9qiA+IGt5b3VoYWt1emFpXCA7Civlm6PntZDmqKkgPiBkYW5rZXRzdWtlblwgOwor57SE5Y2K5bm0ID4geWFrdWhhbicnbmVuXCA7CivmipXnpajnrrEgPiB0b3VoeW91YmFrb1wgOwor57Sg5Lq66Iq4ID4gc2hpcm91dG9nZWlcIDsKK+epjealteaApyA+IHNla2t5b2t1c2VpXCA7CivmpbXluqfmqJkgPiBreW9rdXphaHlvdVwgOwor5a+d5q2j5pyIID4gbmVzaG91Z2F0c3VcIDsKK+a1mua4q+apnyA+IHNodW5zZXRzdWtpXCA7Civnv7zpnaLnqY0gPiB5b2t1bWVuc2VraVwgOwor57eP55uu6YyyID4gc291bW9rdXJva3VcIDsKK+aguOWPjeW/nCA+IGtha3VoYW4nJ25vdVwgOwor5Yi26YW46JasID4gc2Vpc2FuJyd5YWt1XCA7CivotoXkurrnmoQgPiBjaG91amludGVraVwgOwor56ys5LiA5rWBID4gZGFpaWNoaXJ5dXVcIDsKK+i2s+aLjeWtkCA+IGFzaGlieW91c2hpXCA7CivlvLHmnZDmlpkgPiB5b3dhemFpcnlvdVwgOwor5o6l6Kem57eaID4gc2Vzc2hva3VzZW5cIDsKK+W9ueWKm+WjqyA+IHlha3VyaWtpc2hpXCA7CivntbHovYTogIUgPiB0b3VrYXRzdXNoYVwgOwor5LuV5LqL5LitID4gc2hpZ290b2NodXVcIDsKK+Wcn+eZvuWnkyA+IGRvYnlha3VzaG91XCA7Civmloflrabos54gPiBidW5nYWt1c2hvdVwgOwor5oub6KuL5Zu9ID4gc2hvdXNlaWtva3VcIDsKK+e3j+WPjuWFpSA+IHNvdXNodXVueXV1XCA7CivmuKzph4/oiLkgPiBzb2t1cnlvdXNlblwgOwor5YCf5Zyw5qipID4gc2hha3VjaGlrZW5cIDsKK+ayluepjeS4liA+IGNodXVzZWtpc2VpXCA7Civlj6Pov7Dmm7ggPiBrb3VqdXRzdXNob1wgOwor5q6J6IG36ICFID4ganVuc2hva3VzaGFcIDsKK+eXheiZq+WusyA+IGJ5b3VjaHV1Z2FpXCA7CivmioDooZPnmoQgPiBnaWp1dHN1dGVraVwgOwor5bCP6Kqs5a62ID4gc2hvdXNldHN1a2FcIDsKK+eJuee0hOW6lyA+IHRva3V5YWt1dGVuXCA7CivkuqTpgJrph48gPiBrb3V0c3V1cnlvdVwgOwor6YGT5qGI5YaFID4gbWljaGlhbicnbmFpXCA7CivpgZPmma7oq4sgPiBtaWNoaWJ1c2hpblwgOwor5aW96Imy6ICFID4ga291c2hva3VzaGFcIDsKK+a2iOiHreWJpCA+IHNob3VzaHV1emFpXCA7Civni6zlloTnmoQgPiBkb2t1emVudGVraVwgOwor6Kej5YOP5YqbID4ga2Fpem91cnlva3VcIDsKK+a1uOmAj+WcpyA+IHNoaW50b3VhdHN1XCA7CivnhrHooYDmvKIgPiBuZWtrZXRzdWthblwgOwor5bKp55+z5a2mID4gZ2Fuc2VraWdha3VcIDsKK+icnOafkeeVkSA+IG1pa2FuYmF0YWtlXCA7Civng4/lpKnni5cgPiBrYXJhc3V0ZW5ndVwgOwor57Sz5aOr55qEID4gc2hpbnNoaXRla2lcIDsKK+eqkuaBr+atuyA+IGNoaXNzb2t1c2hpXCA7CivkuInlpKfnr4AgPiBzYW5kYWlzZXRzdVwgOwor5rS75pat5bGkID4ga2F0c3VkYW5zb3VcIDsKK+ebrum8u+eriyA+IG1laGFuYWRhY2hpXCA7CivlkajmnJ/lvosgPiBzaHV1a2lyaXRzdVwgOwor6YCA57SF6ImyID4gdGFpa291c2hva3VcIDsKK+aSruWDj+euoSA+IHNhdHN1em91a2FuXCA7CivohbnlhavliIYgPiBoYXJhaGFjaGlidVwgOwor6YCy5YWl6LevID4gc2hpbicnbnl1dXJvXCA7Civog4zml6XmgKcgPiBoYWlqaXRzdXNlaVwgOwor6ZaT5aWP5puyID4ga2Fuc291a3lva3VcIDsKK+aMh+WNl+W9uSA+IHNoaW5hbicneWFrdVwgOwor6ISF6L+r54q2ID4ga3lvdWhha3Vqb3VcIDsKK+WKn+WQjeW/gyA+IGtvdW15b3VzaGluXCA7Civlm57mlZnlm70gPiBrYWlreW91a29rdVwgOwor6aqo6Iac54KOID4ga290c3VtYWt1ZW5cIDsKK+ayouW6tea8rCA+IHRha3VhbmR6dWtlXCA7CivmoLnliIfomasgPiBuZWtpcmltdXNoaVwgOwor6YCB5paZ5YWxID4gc291cnlvdXRvbW9cIDsKK+W8teacrOS6uiA+IGNob3Vob24nJ25pblwgOwor5LmX6LuK5Y+jID4gam91c2hhZ3VjaGlcIDsKK+S4gOaXpei3ryA+IGljaGluaWNoaWppXCA7CivlnLDos6rlm7MgPiBjaGlzaGl0c3V6dVwgOwor56uL5piO5oimID4gcml0c3VtZWlzZW5cIDsKK+aKveixoeirliA+IGNodXVzaG91cm9uXCA7Civku5XoqLPooaggPiBzaGl3YWtlaHlvdVwgOwor5Zu956iO5bqBID4ga29rdXplaWNob3VcIDsKK+aAp+aCquiqrCA+IHNlaWFrdXNldHN1XCA7Civmh5Dpg7fnl4UgPiBrYWlreW91YnlvdVwgOwor5p+R5qmY6aGeID4ga2Fua2l0c3VydWlcIDsKK+S4gOmfs+evgCA+IGljaGlvbnNldHN1XCA7Civogqnog5vpqqggPiBrZW5rb3Vrb3RzdVwgOwor6ISx54Kt6YW4ID4gZGF0c3V0YW5zYW5cIDsKK+aWsOaKgOihkyA+IHNoaW5naWp1dHN1XCA7CivpgIbmjqLnn6UgPiBneWFrdXRhbmNoaVwgOwor5ou+5b6X6ICFID4gc2h1dXRva3VzaGFcIDsKK+WuneeJqeauvyA+IGhvdW1vdHN1ZGVuXCA7CivllqvnhZnluK0gPiBraXRzdWVuc2VraVwgOwor5Ya36KGA5ryiID4gcmVpa2V0c3VrYW5cIDsKK+S4u+WKm+iJpiA+IHNodXJ5b2t1a2FuXCA7Civou4rlpKflt6UgPiBrdXJ1bWFkYWlrdVwgOwor6YGO6aOf55eHID4ga2FzaG9rdXNob3VcIDsKK+Wuv+WRveirliA+IHNodWt1bWVpcm9uXCA7CivlhaXph5HnpaggPiBueXV1a2luaHlvdVwgOwor6Iqx5bGL5pW3ID4gaGFuYXlhc2hpa2lcIDsKK+WFseeZvemrqiA+IHRvbW9zaGlyYWdhXCA7Civlj6Pluqfkv4IgPiBrb3V6YWtha2FyaVwgOwor55Sf5a2Y546HID4gc2Vpem9ucml0c3VcIDsKK+eGiuacrOecjCA+IGt1bWFtb3Rva2VuXCA7Civnm7Tpiq3lvaIgPiBjaG9rdXNlbmtlaVwgOwor5YuV54mp5oCnID4gZG91YnV0c3VzZWlcIDsKK+WOn+eIhueXhyA+IGdlbmJha3VzaG91XCA7Civpm7vli5XlvI8gPiBkZW5kb3VzaGlraVwgOwor55Sf55Sj5YqbID4gc2Vpc2Fucnlva3VcIDsKK+WJr+eJp+W4qyA+IGZ1a3Vib2t1c2hpXCA7CivogZbppJDlvI8gPiBzZWlzYW5zaGlraVwgOwor6YCG6Zai5pWwID4gZ3lha3VrYW5zdXVcIDsKK+S4g+S6lOS4iSA+IHNoaWNoaWdvc2FuXCA7Civpp5DnlZnou40gPiBjaHV1cnl1dWd1blwgOwor5ZSv54mp6KuWID4geXVpYnV0c3Vyb25cIDsKK+aXheWVhuS6uiA+IHRhYmlzaG91bmluXCA7CivmioDooZPmlpkgPiBnaWp1dHN1cnlvdVwgOwor57e057+S5bizID4gcmVuc2h1dWNob3VcIDsKK+mAoOefs+mrmCA+IHpvdWtva3VkYWthXCA7Civou43pmorlvI8gPiBndW50YWlzaGlraVwgOwor57+76Kiz6ICFID4gaG9uJyd5YWt1c2hhXCA7CivmvaTnm67psK8gPiB1cnVtZWl3YXNoaVwgOwor6Iy26KSQ6ImyID4gY2hha2Fzc2hva3VcIDsKK+eiuuWun+W6piA+IGtha3VqaXRzdWRvXCA7Civnt4/lipvmiKYgPiBzb3VyeW9rdXNlblwgOwor5aW96Imy5ryiID4ga291c2hva3VrYW5cIDsKK+WIneaKleeovyA+IGhhdHN1dG91a291XCA7CivkuIfkuIfkuIAgPiBtYW5tYW4nJ2ljaGlcIDsKK+e0s+Wjq+acjSA+IHNoaW5zaGlmdWt1XCA7CivkuIDku5XkuosgPiBoaXRvc2hpZ290b1wgOwor5ZeF56We57WMID4ga3l1dXNoaW5rZWlcIDsKK+e2mee2mueahCA+IGtlaXpva3V0ZWtpXCA7CivmloflrabnmoQgPiBidW5nYWt1dGVraVwgOwor5YWt6YeN5ZSxID4gcm9rdWp1dXNob3VcIDsKK+eOhOS6uuetiyA+IGt1cm91dG9zdWppXCA7Civlm4PlrZDmlrkgPiBoYXlhc2hpa2F0YVwgOwor5aSn5Lq654mpID4gZGFpamluYnV0c3VcIDsKK+WQjOezu+iJsiA+IGRvdWtlaXNob2t1XCA7CivntIXnmb3nsokgPiBiZW5pb3NoaXJvaVwgOwor5a6j6KqT5byPID4gc2Vuc2Vpc2hpa2lcIDsKK+S4reWSjOeGsSA+IGNodXV3YW5ldHN1XCA7CivmtojogJfnmoQgPiBzaG91a291dGVraVwgOwor5pS75pKD55qEID4ga291Z2VraXRla2lcIDsKK+Wfi+iUteeJqSA+IG1haXpvdWJ1dHN1XCA7Civlia/oqq3mnKwgPiBmdWt1ZG9rdWhvblwgOwor6bqd6aaZ6bygID4gamFrb3VuZXp1bWlcIDsKK+acqOizg+WuvyA+IGtpY2hpbicneWFkb1wgOwor5Zub6KeS5p+xID4gc2hpa2FrdWNodXVcIDsKK+S4reepuuWjgSA+IGNodXVrdXVrYWJlXCA7CivogIPoqLzlraYgPiBrb3VzaG91Z2FrdVwgOwor5a6f6Ki855qEID4gamlzc2hvdXRla2lcIDsKK+aVkea4iOetliA+IGt5dXVzYWlzYWt1XCA7Civou43lm73oqr8gPiBndW5rb2t1Y2hvdVwgOwor55m96J2L55eFID4gaGFrdXJvdWJ5b3VcIDsKK+eLgueKrOeXhSA+IGt5b3VrZW5ieW91XCA7CivmsJHooYbnmoQgPiBtaW5zaHV1dGVraVwgOwor5LiA5Lih5bm0ID4gaWNoaXJ5b3VuZW5cIDsKK+Wkp+S7j+auvyA+IGRhaWJ1dHN1ZGVuXCA7CivliLnpgqPnmoQgPiBzZXRzdW5hdGVraVwgOwor5YuF5Lu75a6YID4gY2hva3VuaW5rYW5cIDsKK+WPjOWNgeevgCA+IHNvdWp1dXNldHN1XCA7Civlpb3oibLmnKwgPiBrb3VzaG9rdWJvblwgOwor56qS5YyW54mpID4gY2hpa2thYnV0c3VcIDsKK+S4ieinkue/vCA+IHNhbmtha3V5b2t1XCA7CivmiJDplbfmoKogPiBzZWljaG91a2FidVwgOwor55+z5p2Q5ZWGID4gc2VraXphaXNob3VcIDsKK+S+m+iol+mHkSA+IGt5b3V0YWt1a2luXCA7CivnjKvpoY3lpKcgPiBieW91Z2FrdWRhaVwgOwor5Zyw5pa56ImyID4gY2hpaG91c2hva3VcIDsKK+eUn+S4ree2mSA+IG5hbWFjaHV1a2VpXCA7CivlkLjlj47liaQgPiBreXV1c2h1dXphaVwgOwor5bu66JS9546HID4ga2VucGVpcml0c3VcIDsKK+Wuouims+eahCA+IGt5YWtrYW50ZWtpXCA7CivlvovnvqnogIUgPiByaWNoaWdpbW9ub1wgOwor5LiL57Sa6IG3ID4ga2FreXV1c2hva3VcIDsKK+S/rumjvuiqniA+IHNodXVzaG9rdWdvXCA7CivlpKfpo5/mvKIgPiB0YWlzaG9rdWthblwgOwor5Ya356yR55qEID4gcmVpc2hvdXRla2lcIDsKK+aUr+e1pumhjSA+IHNoaWt5dXVnYWt1XCA7CivkuI3lnYfos6ogPiBmdWtpbnNoaXRzdVwgOwor5Luj6KGo55qEID4gZGFpaHlvdXRla2lcIDsKK+WFpemBk+mbsiA+IG55dXVkb3VndW1vXCA7CivlhbHpgJrngrkgPiBreW91dHN1dXRlblwgOwor5YWs5b6z5b+DID4ga291dG9rdXNoaW5cIDsKK+W9ouW8j+irliA+IGtlaXNoaWtpcm9uXCA7Civph5HnkrDpo58gPiBraW5rYW5zaG9rdVwgOwor5Ye65pyt5omAID4gc2h1c3NhdHN1am9cIDsKK+WMl+altea1tyA+IGhva2t5b2t1a2FpXCA7CivooYzlrpjluoEgPiBneW91a2FuY2hvdVwgOwor5L+d6Lqr6KGTID4gaG9zaGluanV0c3VcIDsKK+mRkeitmOecvCA+IGthbnNoaWtpZ2FuXCA7CivljJfmpbXmtIsgPiBob2treW9rdXlvdVwgOwor5b2r5Yi755WMID4gY2hvdWtva3VrYWlcIDsKK+mmrOm5v+ipsSA+IGJha2FiYW5hc2hpXCA7CivnianntI3nqI4gPiBidXRzdW5vdXplaVwgOwor5LiL5aWz5LitID4gc2hpbW9qb2NodXVcIDsKK+WcsOS4i+WupCA+IGNoaWthc2hpdHN1XCA7CivosrjmnKzlsYsgPiBrYXNoaWhvbicneWFcIDsKK+mNvuS5s+a0niA+IHNob3VueXV1ZG91XCA7Civogbflk6HpjLIgPiBzaG9rdWlucm9rdVwgOwor5qKv5a2Q6YWSID4gaGFzaGlnb3pha2VcIDsKK+a7nuWcqOWuoiA+IHRhaXphaWt5YWt1XCA7Civok4Tpm7vmsaAgPiBjaGlrdWRlbmNoaVwgOwor6Kmm5o6Y6ICFID4gc2hpa3V0c3VzaGFcIDsKK+Wkp+WtpuWvriA+IGRhaWdha3VyeW91XCA7Civlp6vlsI/mnb4gPiBoaW1la29tYXRzdVwgOwor55yf5a6f5ZGzID4gc2hpbmppdHN1bWlcIDsKK+aXheW9ueiAhSA+IHRhYml5YWt1c2hhXCA7Civlm73msJHnmoQgPiBrb2t1bWludGVraVwgOwor5oim5rKh6ICFID4gc2VuYm90c3VzaGFcIDsKK+a1geihjOeXhSA+IHJ5dXVrb3VieW91XCA7CivlvavliLvniYggPiBjaG91a29rdWJhblwgOwor5ZGo5peL5qWtID4gc2h1dXNlbmd5b3VcIDsKK+Wbo+aJh+iZqyA+IHVjaGl3YW11c2hpXCA7Civlj6PlsI/oqIAgPiBrdWNoaWtvZ290b1wgOwor5Lu75ZG95byPID4gbmlubWVpc2hpa2lcIDsKK+mbu+WKm+WCtSA+IGRlbnJ5b2t1c2FpXCA7Civlipvli5XnmoQgPiByaWtpZG91dGVraVwgOwor5aSP5bi95a2QID4gbmF0c3Vib3VzaGlcIDsKK+edoeecoOiWrCA+IHN1aW1pbicneWFrdVwgOwor5Y2455u45aC0ID4gb3Jvc2hpc291YmFcIDsKK+WNsOWIt+alrSA+IGluc2F0c3VneW91XCA7CivkvJ3lsI7njocgPiBkZW5kb3VyaXRzdVwgOwor6Ju45YWl6YGTID4gdGFrb255dXVkb3VcIDsKK+irh+ipseWupCA+IGRhbndhc2hpdHN1XCA7CivlronmnIjntaYgPiB5YXN1Z2Vra3l1dVwgOwor5YyX5qW15pifID4gaG9ra3lva3VzZWlcIDsKK+W+oemciuS7oyA+IG1pdGFtYXNoaXJvXCA7CivmuKzph4/lo6sgPiBzb2t1cnlvdXNoaVwgOwor5Ye66aGY5pmCID4gc2h1dHN1Z2FuamlcIDsKK+S4ieinkueQtCA+IHNhbmtha3Vnb3RvXCA7CivpiYTmnaHntrIgPiB0ZXRzdWpvdW1vdVwgOwor57+76Kiz5qipID4gaG9uJyd5YWt1a2VuXCA7CivnjonmnZPlrZAgPiB0YW1hamFrdXNoaVwgOwor5bel5qWt5Zu9ID4ga291Z3lvdWtva3VcIDsKK+WRqOaXi+aWmSA+IHNodXVzZW5yeW91XCA7Civov73mkoPmiKYgPiB0c3VpZ2VraXNlblwgOwor5YK355eF5YW1ID4gc2hvdWJ5b3VoZWlcIDsKK+W9vOWyuOahnCA+IGhpZ2FuemFrdXJhXCA7CivkuIDmmYLmiZUgPiBpY2hpamliYXJhaVwgOwor5YaF5a6554mpID4gbmFpeW91YnV0c3VcIDsKK+eEoeS4gOeJqSA+IG11aWNoaW1vdHN1XCA7CivlirTlg43lipsgPiByb3Vkb3VyeW9rdVwgOwor6Iul56u55LqtID4gd2FrYXRha2V0ZWlcIDsKK+e/u+ios+abuCA+IGhvbicneWFrdXNob1wgOwor5Yiw552A6aeFID4gdG91Y2hha3Vla2lcIDsKK+WwkeWbveawkSA+IHNob3Vrb2t1bWluXCA7CivnlJ/lrabllY8gPiBuYW1hZ2FrdW1vblwgOwor5LuK5pyI5YiGID4ga29uZ2V0c3VidW5cIDsKK+WIhuaVsOW8jyA+IGJ1bnN1dXNoaWtpXCA7Civmjojos57lvI8gPiBqdXNob3VzaGlraVwgOwor5o6M5Lit5pysID4gc2hvdWNodXVib25cIDsKK+ecgeWKm+WMliA+IHNob3VyeW9rdWthXCA7Civku6PooajmoLwgPiBkYWloeW91a2FrdVwgOwor5pi86IiI6KGMID4gaGlydWtvdWd5b3VcIDsKK+m7meekuumMsiA+IG1va3VzaGlyb2t1XCA7CivmpJzlr5/lrpggPiBrZW5zYXRzdWthblwgOwor5L6b6KiX6ICFID4ga3lvdXRha3VzaGFcIDsKK+a1t+eUo+eJqSA+IGthaXNhbmJ1dHN1XCA7CivopKrntIXoibIgPiB0YWlrb3VzaG9rdVwgOwor6L+U5L+h55SoID4gaGVuc2hpbicneW91XCA7CivpgYHotbDmm7IgPiB0b25zb3VreW9rdVwgOwor6L675by355uXID4gdHN1amlnb3V0b3VcIDsKK+WFrOW8j+aIpiA+IGtvdXNoaWtpc2VuXCA7Civph5HnkrDonZUgPiBraW5rYW5zaG9rdVwgOwor6Z205LiA6LazID4ga3V0c3Vpc3Nva3VcIDsKK+a1quiKseevgCA+IG5hbml3YWJ1c2hpXCA7CivlkITlpKflraYgPiBrYWt1ZGFpZ2FrdVwgOwor57eP6YCA5Y20ID4gc291dGFpa3lha3VcIDsKK+WbveawkeacjSA+IGtva3VtaW5mdWt1XCA7Civlrp/lnKjoq5YgPiBqaXRzdXphaXJvblwgOwor5pWR5oCl6LuKID4ga3l1dWt5dXVzaGFcIDsKK+mWk+aOpeeojiA+IGthbnNldHN1emVpXCA7CivkubHplovnmbogPiByYW5rYWloYXRzdVwgOwor5omA5biv5Li7ID4gc2hvdGFpbnVzaGlcIDsKK+mYsuWvkumdtCA+IGJvdWthbmd1dHN1XCA7CivkuInop5Lmn7EgPiBzYW5rYWt1Y2h1dVwgOwor5LuV6Kiz5bizID4gc2hpd2FrZWNob3VcIDsKK+eymOedgOaApyA+IG5lbmNoYWt1c2VpXCA7Civlr4bpgKDphZIgPiBtaXRzdXpvdXNodVwgOwor5LiA5aSc5rysID4gaWNoaXlhZHp1a2VcIDsKK+aWnOinkuafsSA+IHNoYWtha3VjaHV1XCA7Civlr77nhafnmoQgPiB0YWlzaG91dGVraVwgOwor5b255Lq66aKoID4geWFrdW5pbmthemVcIDsKK+iIueiItualrSA+IHNlbnBha3VneW91XCA7CivmsLTpgZPlsYAgPiBzdWlkb3VreW9rdVwgOwor5aeL55m66aeFID4gc2hpaGF0c3Vla2lcIDsKK+WMl+alteWcjyA+IGhva2t5b2t1a2VuXCA7Civml6XnlKjlk4EgPiBuaWNoaXlvdWhpblwgOwor5Y+N6YCG6ICFID4gaGFuZ3lha3VzaGFcIDsKK+eZu+mMsua4iCA+IHRvdXJva3V6dW1pXCA7CivlsILlo7LlsYAgPiBzZW5iYWlreW9rdVwgOwor5qip5Yqb6ICFID4ga2Vucnlva3VzaGFcIDsKK+aBkuS5heeahCA+IGtvdWt5dXV0ZWtpXCA7Civlj43pgIbnvaogPiBoYW5neWFrdXphaVwgOwor54m5562J5bitID4gdG9rdXRvdXNla2lcIDsKK+WGheacjeiWrCA+IG5haWZ1a3V5YWt1XCA7Civoh4bnl4XpoqggPiBva3VieW91a2F6ZVwgOwor5L6b57Wm6ICFID4ga3lvdWt5dXVzaGFcIDsKK+W9q+WIu+W4qyA+IGNob3Vrb2t1c2hpXCA7CivmsYLkurrpm6MgPiBreXV1amluJyduYW5cIDsKK+mgmuWLleiEiCA+IGtlaWRvdW15YWt1XCA7CivoqabmjpjmqKkgPiBzaGlrdXRzdWtlblwgOwor5Zyo5Lqs5LitID4gemFpa3lvdWNodXVcIDsKK+aWueeoi+W8jyA+IGhvdXRlaXNoaWtpXCA7CivpnZnlipvlraYgPiBzZWlyaWtpZ2FrdVwgOwor5LiA6Kan6KGoID4gaWNoaXJhbmh5b3VcIDsKK+WMl+acnemuriA+IGtpdGFjaG91c2VuXCA7Civnmb7ljYPps6UgPiBtb21vY2hpZG9yaVwgOwor6YqD5Ymj6KGTID4ganV1a2VuanV0c3VcIDsKK+e0jemqqOWggiA+IG5vdWtvdHN1ZG91XCA7CivogLPlsI/pqqggPiBqaXNob3Vrb3RzdVwgOwor5aSn6Z2Z6ISIID4gZGFpam91bXlha3VcIDsKK+e1jOa4iOWKmyA+IGtlaXphaXJ5b2t1XCA7CivlrabljZTkvJogPiBnYWt1a3lvdWthaVwgOwor5Lit5b+D54K5ID4gY2h1dXNoaW50ZW5cIDsKK+WMl+alteWFiSA+IGhva2t5b2t1a291XCA7Civpo5/lk4HlupcgPiBzaG9rdWhpbnRlblwgOwor6aCY5Y+O5pu4ID4gcnlvdXNodXVzaG9cIDsKK+mAmuefpeihqCA+IHRzdXVjaGloeW91XCA7CivpgKPnmbrpioMgPiByZW5wYXRzdWp1dVwgOwor5pS75pKD5YG0ID4ga291Z2VraWdhd2FcIDsKK+Wkp+S4reWwjyA+IGRhaWNodXVzaG91XCA7CivlubPlnYflvosgPiBoZWlraW5yaXRzdVwgOwor6LWk5qOf6JuHID4geWFtYWthZ2FzaGlcIDsKK+ims+W/teeahCA+IGthbicnbmVudGVraVwgOwor5bCC6ZaA6IG3ID4gc2VubW9uc2hva3VcIDsKK+WFsemAsuS8miA+IGt5b3VzaGlua2FpXCA7Civkv6HnlKjnirYgPiBzaGluJyd5b3Vqb3VcIDsKK+e5lOeJqealrSA+IG9yaW1vbm9neW91XCA7CivotoXnibnmgKUgPiBjaG91dG9ra3l1dVwgOwor6L+U5L+h5paZID4gaGVuc2hpbnJ5b3VcIDsKK+WjgeaWsOiBniA+IGthYmVzaGluYnVuXCA7Civono3op6PnhrEgPiB5dXVrYWluZXRzdVwgOwor56+A5Y2a5aOrID4gZnVzaGloYWthc2VcIDsKK+imi+eJqeS6uiA+IGtlbmJ1dHN1bmluXCA7CivnmbvpjLLmlpkgPiB0b3Vyb2t1cnlvdVwgOwor5ZGo5peL5Lq6ID4gc2h1dXNlbicnbmluXCA7Civpq5jpupfoip0gPiBrb3VyYWlzaGliYVwgOwor5LiN6Kaq5YiHID4gZnVzaGluc2V0c3VcIDsKK+imquWRiue9qiA+IHNoaW5rb2t1emFpXCA7CivolKbntIXokYkgPiB0c3V0YW1vbWlqaVwgOwor5LqU55uu6a6oID4gZ29tb2t1enVzaGlcIDsKK+e3qOmbhumVtyA+IGhlbnNodXVjaG91XCA7Civlh7rniYjmpa0gPiBzaHVwcGFuZ3lvdVwgOwor6Kq/5pWZ5birID4gY2hvdWt5b3VzaGlcIDsKK+mAsumnkOi7jSA+IHNoaW5jaHV1Z3VuXCA7CivliKXli5XpmoogPiBiZXRzdWRvdXRhaVwgOwor6YCG5Zm05bCEID4gZ3lha3VmdW5zaGFcIDsKK+S6jOWPo+ebriA+IGZ1dGFrdWNoaW1lXCA7CivpgIblkb3poYwgPiBneWFrdW1laWRhaVwgOwor57KY552A5YmkID4gbmVuY2hha3V6YWlcIDsKK+eUn+eJqeeVjCA+IHNlaWJ1dHN1a2FpXCA7CivkupTnm67po68gPiBnb21va3VtZXNoaVwgOwor5o6h5o6Y5qipID4gc2Fpa3V0c3VrZW5cIDsKK+WFqOW5heeahCA+IHplbnB1a3V0ZWtpXCA7CivlvavliLvliIAgPiBjaG91a29rdXRvdVwgOwor56CU56m25b+DID4ga2Vua3l1dXNoaW5cIDsKK+eLrOWNoOeahCA+IGRva3VzZW50ZWtpXCA7CivphbjkuK3mr5IgPiBzYW5jaHV1ZG9rdVwgOwor6LaF5paw5pifID4gY2hvdXNoaW5zZWlcIDsKK+mgguaItOeJqSA+IGNob3VkYWltb25vXCA7Civlrr/ms4rmiYAgPiBzaHVrdWhha3Vqb1wgOwor5aOy5Y2055uKID4gYmFpa3lha3Vla2lcIDsKK+ani+mAoOW8jyA+IGtvdXpvdXNoaWtpXCA7Civku6PooajkvZwgPiBkYWloeW91c2FrdVwgOwor6YGO5aSx54qvID4ga2FzaGl0c3VoYW5cIDsKK+e0meS4gOaemiA+IGthbWlpY2hpbWFpXCA7Civlho3oqo3orZggPiBzYWluaW5zaGlraVwgOwor6aKo54mp6KmpID4gZnV1YnV0c3VzaGlcIDsKK+Wun+mWouaVsCA+IGppdHN1a2Fuc3V1XCA7CivlpKflpb3niakgPiBkYWlrb3VidXRzdVwgOwor5Lmz5r+B5rayID4gbnl1dWRha3Vla2lcIDsKK+awtOWGt+W8jyA+IHN1aXJlaXNoaWtpXCA7Civlv4PphY3mgKcgPiBzaGlucGFpc2hvdVwgOwor5b6M5aeL5pyrID4gYXRvc2hpbWF0c3VcIDsKK+WFqOWLouWKmyA+IHplbnNlaXJ5b2t1XCA7Civpm6Llv4PnjocgPiByaXNoaW5yaXRzdVwgOwor5L6b57Wm5rqQID4ga3lvdWt5dXVnZW5cIDsKK+Wkp+aWh+evgCA+IGRhaWJ1bnNldHN1XCA7CivkuIDlpJzlprsgPiBoaXRveW9kenVtYVwgOwor57WQ5ZCI5a2QID4ga2V0c3Vnb3VzaGlcIDsKK+atu+S6oeeOhyA+IHNoaWJvdXJpdHN1XCA7CivmmYLlsYDmn4QgPiBqaWt5b2t1Z2FyYVwgOwor6YWN5b2T546HID4gaGFpdG91cml0c3VcIDsKK+aVtOmqqOW4qyA+IHNlaWtvdHN1c2hpXCA7CivplqLnqI7njocgPiBrYW56ZWlyaXRzdVwgOwor5Lit5q+S5q27ID4gY2h1dWRva3VzaGlcIDsKK+acgOWJjeWIlyA+IHNhaXplbnJldHN1XCA7CivlvqHmiYDou4ogPiBnb3Nob2d1cnVtYVwgOwor5YaF5puy55CDID4gbmFpa3lva2t5dXVcIDsKK+ino+aVo+iqrCA+IGthaXNhbnNldHN1XCA7Civlu7rpgKDniakgPiBrZW56b3VidXRzdVwgOwor54yu6KGA6LuKID4ga2Vua2V0c3VzaGFcIDsKK+Wwj+WTgembhiA+IHNob3VoaW5zaHV1XCA7CivpnIrlronlrqQgPiByZWlhbnNoaXRzdVwgOwor6Zui552A6Zm4ID4gcmljaGFrdXJpa3VcIDsKK+mrmOmHjuiBliA+IGtvdXlhaGlqaXJpXCA7CivmlbTpq6rliaQgPiBzZWloYXRzdXphaVwgOwor5Yem5LiW6KGTID4gc2hvc2VpanV0c3VcIDsKK+WFq+W5oeWuriA+IGhhY2hpbWFuZ3V1XCA7CivmrYzllLHlipsgPiBrYXNob3VyeW9rdVwgOwor5Zue5oqY5pCNID4ga2Fpc2V0c3Vzb25cIDsKK+mqqOS7leS6iyA+IGhvbmVzaGlnb3RvXCA7Civoh4bnl4XogIUgPiBva3VieW91bW9ub1wgOwor5pyd6aOv5YmNID4gYXNhbWVzaGltYWVcIDsKK+WIiuihjOeJqSA+IGthbmtvdWJ1dHN1XCA7CivnnLzpj6HmqYsgPiBtZWdhbmViYXNoaVwgOwor6LO85YWl5YWIID4ga291bnl1dXNha2lcIDsKK+W8mOS7geagvCA+IGtvdW5pbmt5YWt1XCA7Civml6flpKfpmbggPiBreXV1dGFpcmlrdVwgOwor6Ki65a+f5pelID4gc2hpbnNhdHN1YmlcIDsKK+adseWuruiBtyA+IHRvdWd1dXNob2t1XCA7Civorablr5/nvbIgPiBrZWlzYXRzdXNob1wgOwor5YaX6KuH5Y+jID4gam91ZGFuZ3VjaGlcIDsKK+e5lOeJqeWVhiA+IG9yaW1vbm9zaG91XCA7CivlhavovrrlvaIgPiBoYWNoaWhlbmtlaVwgOwor6Yed5LuV5LqLID4gaGFyaXNoaWdvdG9cIDsKK+WlveS6uueJqSA+IGtvdWppbmJ1dHN1XCA7CivlvoHmnI3mrLIgPiBzZWlmdWt1eW9rdVwgOwor6Kej6Kqs6ICFID4ga2Fpc2V0c3VzaGFcIDsKK+W6g+WRiualrSA+IGtvdWtva3VneW91XCA7CivlibXnq4vogIUgPiBzb3VyaXRzdXNoYVwgOwor6Kej54ax6JasID4gZ2VuZXRzdXlha3VcIDsKK+aXpeabnOeJiCA+IG5pY2hpeW91YmFuXCA7CivmlrDlv6vpgJ8gPiBzaGlua2Fpc29rdVwgOwor5Lit5bm06ICFID4gY2h1dW5lbm1vbm9cIDsKK+aItOWGoOW8jyA+IHRhaWthbnNoaWtpXCA7Civou73mpa3luKsgPiBrYXJ1d2F6YXNoaVwgOwor5Lit5b+D5ZywID4gY2h1dXNoaW5jaGlcIDsKK+WVhuaFo+e/kiA+IHNob3VrYW5zaHV1XCA7CivnlJ/nianmiKYgPiBzZWlidXRzdXNlblwgOwor5pWR5oCl5rOVID4ga3l1dWt5dXVob3VcIDsKK+mjn+WJjemFkiA+IHNob2t1emVuc2h1XCA7Civmt7HlpJzml48gPiBzaGluJyd5YXpva3VcIDsKK+i/q+aSg+egsiA+IGhha3VnZWtpaG91XCA7CivpgLLou43kuK0gPiBzaGluZ3VuY2h1dVwgOwor5aqS6YWM5Lq6ID4gYmFpc2hha3VuaW5cIDsKK+S4oeaAp+eahCA+IHJ5b3VzZWl0ZWtpXCA7CivmvZzli6LlipsgPiBzZW5zZWlyeW9rdVwgOwor5q2m6aqo6ICFID4gYnVrb3RzdW1vbm9cIDsKK+S/neWBpeWupCA+IGhva2Vuc2hpdHN1XCA7CivluoPlkYrmlpkgPiBrb3Vrb2t1cnlvdVwgOwor6YCf5Yqb5bqmID4gc29rdXJ5b2t1ZG9cIDsKK+ebhuaPkOeBryA+IGJvbmRqb3VjaGluXCA7CivogbTnpZ7ntYwgPiBjaG91c2hpbmtlaVwgOwor6LaF5aSn5Zu9ID4gY2hvdXRhaWtva3VcIDsKK+WHuueJiOWFgyA+IHNodXBwYW5tb3RvXCA7Civppqzpub/lipsgPiBiYWthZGppa2FyYVwgOwor6Zm45Y2K55CDID4gcmlrdWhhbmt5dXVcIDsKK+e1seeOh+iAhSA+IHRvdXNvdHN1c2hhXCA7CivlhazlhbHlv4MgPiBrb3VreW91c2hpblwgOwor5Lit5YWx6LuNID4gY2h1dWt5b3VndW5cIDsKK+a8gueZveWJpCA+IGh5b3VoYWt1emFpXCA7Civlj47lhaXmupAgPiBzaHV1bnl1dWdlblwgOwor5q6/5qeY6aKoID4gdG9ub3NhbWFmdXVcIDsKK+W/g+mFjeS6iyA+IHNoaW5wYWlnb3RvXCA7CivlpKrpmb3nhrEgPiB0YWl5b3VuZXRzdVwgOwor5Yik5rG65paHID4gaGFua2V0c3VidW5cIDsKK+S/oeS7sOeahCA+IHNoaW5rb3V0ZWtpXCA7Civohp3mi43lrZAgPiBoaXphYnlvdXNoaVwgOwor6Leh5aeL5pyrID4gYXRvc2hpbWF0c3VcIDsKK+ebsuebrueahCA+IG1vdW1va3V0ZWtpXCA7CivnpZ7pgJrlipsgPiBqaW50c3V1cmlraVwgOwor5oGQ5aa755eFID4ga3lvdXNhaWJ5b3VcIDsKK+W/oOWun+W6piA+IGNodXVqaXRzdWRvXCA7Civkv6Hku7vnirYgPiBzaGluJyduaW5qb3VcIDsKK+aWsOWPguiAhSA+IHNoaW56YW5tb25vXCA7CivnnJ/niq/kurogPiBzaGluaGFuJyduaW5cIDsKK+itpuWvn+eKrCA+IGtlaXNhdHN1a2VuXCA7Civlj6LmmYLpm6ggPiBtdXJhc2hpZ3VyZVwgOwor5rW36aOf5rSeID4ga2Fpc2hva3Vkb3VcIDsKK+WPguWIl+iAhSA+IHNhbnJldHN1c2hhXCA7CivnlJ/nianlnI8gPiBzZWlidXRzdWtlblwgOwor5L6b57Wm5ZywID4ga3lvdWt5dXVjaGlcIDsKK+W5sua4iee4niA+IGthbnNob3VqaW1hXCA7Civni6zlibXnmoQgPiBkb2t1c291dGVraVwgOwor5p+T6Imy5L2TID4gc2Vuc2hva3V0YWlcIDsKK+W6p+mgremvqCA+IHphdG91a3VqaXJhXCA7Civnm67nmoToq5YgPiBtb2t1dGVraXJvblwgOwor55yB55Wl5pmCID4gc2hvdXJ5YWt1amlcIDsKK+efs+eCreauuyA+IHNla2l0YW5nYXJhXCA7CivliIboo4LmgKcgPiBidW5yZXRzdXNlaVwgOwor55+t57iu5b2iID4gdGFuc2h1a3VrZWlcIDsKK+acieiBt+iAhSA+IHl1dXNob2t1c2hhXCA7CivopqrlkozlipsgPiBzaGlud2FyeW9rdVwgOwor5YWI44CF5pyIID4gc2Vuc2VuZ2V0c3VcIDsKK+acieS9k+eJqSA+IHl1dXRhaWJ1dHN1XCA7Civnn63ntaHnmoQgPiB0YW5yYWt1dGVraVwgOwor6a2F5Yqb55qEID4gbWlyeW9rdXRla2lcIDsKK+WMluWtpuW8jyA+IGthZ2FrdXNoaWtpXCA7CivlpKrpmb3ml6UgPiB0YWl5b3VqaXRzdVwgOwor6YeO55CD54axID4geWFreXV1bmV0c3VcIDsKK+itpuWvn+aoqSA+IGtlaXNhdHN1a2VuXCA7CivnhrHmsJfnkIMgPiBuZXRzdWtpa3l1dVwgOwor56m65oOz5YqbID4ga3V1c291cnlva3VcIDsKK+mdmeWyoeecjCA+IHNoaXp1b2tha2VuXCA7Civlj43pgIbkurogPiBoYW5neWFrdW5pblwgOwor5p+T6auq5YmkID4gc2VucGF0c3V6YWlcIDsKK+WFqOi6q+eXhSA+IHplbnNoaW5ieW91XCA7CivohbnoqbHooZMgPiBmdWt1d2FqdXRzdVwgOwor5rWB6YeP6KiIID4gcnl1dXJ5b3VrZWlcIDsKK+e3mue5lOmdoiA+IHNlbnNoaWtpbWVuXCA7CivlrozntZDnt6ggPiBrYW5rZXRzdWhlblwgOwor5a2m55Sf6Ki8ID4gZ2FrdXNlaXNob3VcIDsKK+mAoOW5o+WxgCA+IHpvdWhlaWt5b2t1XCA7CivoqqzmmI7mm7ggPiBzZXRzdW1laXNob1wgOwor6Ieq57Wm546HID4gamlreXV1cml0c3VcIDsKK+aJk+eJqeW4qyA+IHVjaGltb25vc2hpXCA7Civmg6jmrrrogIUgPiB6YW5zYXRzdXNoYVwgOwor56Ov5be+552AID4gaXNvZ2luY2hha3VcIDsKK+iovOS6uuW4rSA+IHNob3VuaW5zZWtpXCA7Civoi6Xnmb3pq6ogPiB3YWthc2hpcmFnYVwgOwor5pWw5a2m55qEID4gc3V1Z2FrdXRla2lcIDsKK+ebtOWGhuafsSA+IGNob2t1ZW5jaHV1XCA7CivoqqzmmI7mlocgPiBzZXRzdW1laWJ1blwgOwor5rC055Sj54mpID4gc3Vpc2FuYnV0c3VcIDsKK+aVmeWJh+acrCA+IGt5b3Vzb2t1Ym9uXCA7CivkuZnlpbPlv4MgPiBvdG9tZWdva29yb1wgOwor5oim5Yud5Zu9ID4gc2Vuc2hvdWtva3VcIDsKK+WNl+WMl+acnSA+IG5hbmJva3VjaG91XCA7Civlubvmg7Pmm7IgPiBnZW5zb3VreW9rdVwgOwor5peF6IiI6KGMID4gdGFiaWtvdWd5b3VcIDsKK+ixhumbu+eQgyA+IG1hbWVkZW5reXV1XCA7Civop6Poqqzmm7ggPiBrYWlzZXRzdXNob1wgOwor57+85omL55uuID4geW9rdXNodW1va3VcIDsKK+Wpmue0hOiAhSA+IGtvbicneWFrdXNoYVwgOwor6YOh5b255omAID4gZ3VuJyd5YWt1c2hvXCA7Civnn6XorZjlsaQgPiBjaGlzaGlraXNvdVwgOwor5pKe5pyo6a6rID4gc2h1bW9rdXphbWVcIDsKK+ehvOmFuOacqyA+IGhvdXNhbm1hdHN1XCA7CivlppbooZPogIUgPiB5b3VqdXRzdXNoYVwgOwor5L2Z55m96aCBID4geW9oYWt1cGVlamlcIDsKK+e1seS4gOeahCA+IHRvdWl0c3V0ZWtpXCA7CivouqvpmpzogIUgPiBzaGluc2hvdXNoYVwgOwor6aOf5Y2T5aGpID4gc2hva3V0YWt1ZW5cIDsKK+WFq+Wtl+mrrSA+IGhhY2hpamloaWdlXCA7CivlvqnmtLvnpa0gPiBmdWtrYXRzdXNhaVwgOwor5Li755Sj54mpID4gc2h1c2FuYnV0c3VcIDsKK+e+juihk+eahCA+IGJpanV0c3V0ZWtpXCA7Civnj43nj77osaEgPiBjaGluZ2Vuc2hvdVwgOwor5LiJ56ic6Y+hID4gc2FucnlvdWt5b3VcIDsKK+Wkp+mZuOajmiA+IHRhaXJpa3VkYW5hXCA7Civmrr/mp5joirggPiB0b25vc2FtYWdlaVwgOwor5rW36aOf5bSWID4ga2Fpc2hva3VnYWlcIDsKK+WFg+emhOiiliA+IGdlbnJva3Vzb2RlXCA7CivmlofmlZnml48gPiBidW5reW91em9rdVwgOwor5rm/5bqm6KiIID4gc2hpdHN1ZG9rZWlcIDsKK+WPrOmbhuiAhSA+IHNob3VzaHV1c2hhXCA7CivlhavmpbXmi7MgPiBoYWtreW9rdWtlblwgOwor5L+h5Luw5b+DID4gc2hpbmtvdXNoaW5cIDsKK+S6uuS4gOWAjSA+IGhpdG9pY2hpYmFpXCA7CivlkIjooYblm70gPiBnYXNzaHV1a29rdVwgOwor5qmf6Zai5a6kID4ga2lrYW5zaGl0c3VcIDsKK+WGt+WNtOa2siA+IHJlaWt5YWt1ZWtpXCA7CivmvIHnjbLpq5ggPiBneW9rYWt1ZGFrYVwgOwor5YWs55So54mpID4ga291eW91YnV0c3VcIDsKK+WNmOeZuumKgyA+IHRhbnBhdHN1anV1XCA7CivlhrfljbTmsLQgPiByZWlreWFrdXN1aVwgOwor54yu56uL6KGoID4ga29uZGF0ZWh5b3VcIDsKK+iLpeiNieiJsiA+IHdha2FrdXNhaXJvXCA7CivkuInlm73kuIAgPiBzYW5nb2t1aWNoaVwgOwor552j5L+D54q2ID4gdG9rdXNva3Vqb3VcIDsKK+S7ruWPl+WPliA+IGthcml1a2V0b3JpXCA7CivooovlsI/ot68gPiBmdWt1cm9rb3VqaVwgOwor6K2m5a+f5a6YID4ga2Vpc2F0c3VrYW5cIDsKK+iHqueEtuW+iyA+IHNoaXplbnJpdHN1XCA7Civogbfli5nntaYgPiBzaG9rdW11a3l1dVwgOwor55mC6aSK5LitID4gcnlvdXlvdWNodXVcIDsKK+WQiOaIkOeJqSA+IGdvdXNlaWJ1dHN1XCA7CivkuInooYzljYogPiBtaWt1ZGFyaWhhblwgOwor6KGM5pS/5a2mID4gZ3lvdXNlaWdha3VcIDsKK+Wun+ihjOWKmyA+IGppa2tvdXJ5b2t1XCA7CivplbfngavpiaIgPiBuYWdhaGliYWNoaVwgOwor5rW36aOf5Y+wID4ga2Fpc2hva3VkYWlcIDsKK+mDteS+v+eJqSA+IHl1dWJpbmJ1dHN1XCA7CivnqbrmsJfmnpUgPiBrdXVraW1ha3VyYVwgOwor5aWo5a2m6YeRID4gc2hvdWdha3VraW5cIDsKK+WFrOeUn+a0uyA+IGtvdXNlaWthdHN1XCA7Civpga7olL3niakgPiBzaGFoZWlidXRzdVwgOwor57W557mU54mpID4ga2ludW9yaW1vbm9cIDsKK+iKuOihk+irliA+IGdlaWp1dHN1cm9uXCA7CivolqzlirnniakgPiB5YWtrb3VidXRzdVwgOwor5bqt5LuV5LqLID4gbml3YXNoaWdvdG9cIDsKK+aCquizquWMliA+IGFrdXNoaXRzdWthXCA7Civnn6XorZjkurogPiBjaGlzaGlraWppblwgOwor55m95YaF6ZqcID4gaGFrdW5haXNob3VcIDsKK+alveWkqeeahCA+IHJha3V0ZW50ZWtpXCA7CivliKXli5jlrpogPiBiZXRzdWthbmpvdVwgOwor6YeR5p2T5a2QID4ga2FuYWpha3VzaGlcIDsKK+mVt+Wkp+aBryA+IGNob3V0YWlzb2t1XCA7CivogbTlj5bmlpkgPiBjaG91c2h1cnlvdVwgOwor6aC46Z2Z6ISIID4ga2Vpam91bXlha3VcIDsKK+a8geeNsumHjyA+IGd5b2tha3VyeW91XCA7Civoqp7lrablipsgPiBnb2dha3VyeW9rdVwgOwor5rqW5YKZ5a6kID4ganVuYmlzaGl0c3VcIDsKK+S4reW5tOWilyA+IGNodXVkb3NoaW1hXCA7Civog4znrYvlipsgPiBoYWlraW5yeW9rdVwgOwor5omA5pyJ54mpID4gc2hveXV1YnV0c3VcIDsKK+eUo+Wcn+elniA+IHVidXN1bmFnYW1pXCA7CivmmpfotaToibIgPiBhbnNla2lzaG9rdVwgOwor5LuV56uL54mpID4gc2hpdGF0ZW1vbm9cIDsKK+S4g+WbnuW/jCA+IHNoaWNoaWthaWtpXCA7Civmurbop6PnhrEgPiB5b3VrYWluZXRzdVwgOwor57Gz5Y2B57KSID4ga29tZWp1dXJ5dXVcIDsKK+eJueazqOWTgSA+IHRva3VjaHV1aGluXCA7CivliKXlg43pmoogPiBiZXRzdWRvdXRhaVwgOwor5Y+k5paw6IGeID4gZnVydXNoaW5idW5cIDsKK+mFjemBlOS6uiA+IGhhaXRhdHN1bmluXCA7CivkuqzkurrlvaIgPiBreW91bmluZ3lvdVwgOwor5a6M57WQ5paHID4ga2Fua2V0c3VidW5cIDsKK+WPjeWvvuiJsiA+IGhhbnRhaXNob2t1XCA7CivllYblk4HlraYgPiBzaG91aGluZ2FrdVwgOwor5YWl5bCE6KeSID4gbnl1dXNoYWtha3VcIDsKK+a2iOmYsuW6gSA+IHNob3Vib3VjaG91XCA7CivlpYfpupfmiYAgPiBraXJlaWRva29yb1wgOwor5bGx5ZC56ImyID4geWFtYWJ1a2lpcm9cIDsKK+aJk+aSg+eOhyA+IGRhZ2VraXJpdHN1XCA7Civoq4vmsYLpoY0gPiBzZWlreXV1Z2FrdVwgOwor55m+5bm056WtID4gaHlha3VuZW5zYWlcIDsKK+aKkeeVmeiAhSA+IHlva3VyeXV1c2hhXCA7Civpo5/pgKPmmJ8gPiBzaG9rdXJlbnNlaVwgOwor6JC95pyt5YCkID4gcmFrdXNhdHN1bmVcIDsKK+iHqueEtuWKmyA+IHNoaXplbnJ5b2t1XCA7Civnp5jmm7jlrqQgPiBoaXNob3NoaXRzdVwgOwor5Y2D56eL5qW9ID4gc2Vuc2h1dXJha3VcIDsKK+aOoueptuW/gyA+IHRhbmt5dXVzaGluXCA7Civlia/npL7plbcgPiBmdWt1c2hhY2hvdVwgOwor5pyI5L6L5LyaID4gZ2V0c3VyZWlrYWlcIDsKK+aVsOaXpemWkyA+IHN1dWppdHN1a2FuXCA7Civlkb3lkI3lvI8gPiBtZWltZWlzaGlraVwgOwor5oyH5bCO5YqbID4gc2hpZG91cnlva3VcIDsKK+aEn+immueahCA+IGthbmtha3V0ZWtpXCA7Civlho3plovnmbogPiBzYWlrYWloYXRzdVwgOwor5YWl5a2m6ZujID4gbnl1dWdha3VuYW5cIDsKK+WIhuaKmOWtpiA+IGJ1bnNla2lnYWt1XCA7Civoi6XovKnogIUgPiBqYWt1aGFpbW9ub1wgOwor5bmF5aSJ6Kq/ID4gaGFiYWhlbmNob3VcIDsKK+Wwj+aDkeaYnyA+IHNob3V3YWt1c2VpXCA7Civkurrnianlg48gPiBqaW5idXRzdXpvdVwgOwor6LqB6ayx55eFID4gc291dXRzdWJ5b3VcIDsKK+ebtOi8uOWFpSA+IGNob2t1eXVueXV1XCA7Civkv4PpgLLliaQgPiBzb2t1c2hpbnphaVwgOwor6by75Ye66KGAID4gYmlzaHVra2V0c3VcIDsKK+aApemAsuWFmiA+IGt5dXVzaGludG91XCA7Civph5HlqZrlvI8gPiBraW5rb25zaGlraVwgOwor5rqA6Imm6aO+ID4gbWFua2Fuc2hva3VcIDsKK+WCjei/t+aDkSA+IGhhdGFtZWl3YWt1XCA7CivmmLzpo5/mmYIgPiBjaHV1c2hva3VqaVwgOwor6Iq46KGT56WtID4gZ2VpanV0c3VzYWlcIDsKK+WtpueUn+acjSA+IGdha3VzZWlmdWt1XCA7CivlsLHmpa3lnLAgPiBzaHV1Z3lvdWNoaVwgOwor6KGo56S654mpID4gaHlvdWppYnV0c3VcIDsKK+i7ouWFpeeUnyA+IHRlbicnbnl1dXNlaVwgOwor5YWl5a2m6YeRID4gbnl1dWdha3VraW5cIDsKK+mdqeaWsOezuyA+IGtha3VzaGlua2VpXCA7Civpmb3mpbXnt5ogPiB5b3VreW9rdXNlblwgOwor5Ye65ryU6ICFID4gc2h1dHN1ZW5zaGFcIDsKK+S8muitsOWupCA+IGthaWdpc2hpdHN1XCA7CivpmbjpgYvlsYAgPiByaWt1dW5reW9rdVwgOwor6L+95b606YeRID4gdHN1aWNob3VraW5cIDsKK+auuuiPjOWKmyA+IHNha2tpbnJ5b2t1XCA7CivmipXlrr/ogIUgPiB0b3VzaHVrdXNoYVwgOwor5paw5bqB6IiOID4gc2hpbmNob3VzaGFcIDsKK+WGt+WNtOWJpCA+IHJlaWt5YWt1emFpXCA7CivpgYropqflrqIgPiB5dXVyYW5reWFrdVwgOwor6buE6YeR6JmrID4ga29nYW5lbXVzaGlcIDsKK+m7kuatu+eXhSA+IGtva3VzaGlieW91XCA7Civpg7Xkvr/lsYAgPiB5dXViaW5reW9rdVwgOwor5Y+N5bCE546HID4gaGFuc2hhcml0c3VcIDsKK+aVmeeah+W6gSA+IGt5b3Vrb3VjaG91XCA7Civoi6Xps6XkuLwgPiB3YWthZG9yaWRvblwgOwor576O6KGT5ZWGID4gYmlqdXRzdXNob3VcIDsKK+a7tOWumumHjyA+IHRla2l0ZWlyeW91XCA7CivnpZ7lrabogIUgPiBzaGluZ2FrdXNoYVwgOwor5a+G6Ly45YWlID4gbWl0c3V5dW55dXVcIDsKK+i4j+WIh+eVqiA+IGZ1bWlraXJpYmFuXCA7CivliY3lpY/mm7IgPiB6ZW5zb3VreW9rdVwgOwor6KO45LiA6LKrID4gaGFkYWthaWtrYW5cIDsKK+Wlj+mztOabsiA+IHNvdW1laWt5b2t1XCA7Civnp4HnlJ/mtLsgPiBzaGlzZWlrYXRzdVwgOwor55Sy6YmE6ImmID4ga291dGV0c3VrYW5cIDsKK+W/g+iHk+eXhSA+IHNoaW56b3VieW91XCA7CivpjKzph5HooZMgPiByZW5raW5qdXRzdVwgOwor6buS5YaF6ZqcID4ga29rdW5haXNob3VcIDsKK+acieitmOiAhSA+IHl1dXNoaWtpc2hhXCA7CivlsbHmtKXms6IgPiB5YW1hdHN1bmFtaVwgOwor6KKW54+N5pysID4gc2h1dWNoaW5ib25cIDsKK+WFiOedgOmghiA+IHNlbmNoYWt1anVuXCA7Civlrp/lkI3oqZ4gPiBqaXRzdW1laXNoaVwgOwor6Ziy6aOf5YmkID4gYm91c2hva3V6YWlcIDsKK+WvvuensOi7uCA+IHRhaXNob3VqaWt1XCA7Civov5Hml6XngrkgPiBraW5qaXRzdXRlblwgOwor6JeN5pm255+zID4gcmFuc2hvdXNla2lcIDsKK+Wls+WtkOS+myA+IG9uJyduYWtvZG9tb1wgOwor5rKh6aOf5a2QID4gbW9zc2hva3VzaGlcIDsKK+S/rue5leS4rSA+IHNodXV6ZW5jaHV1XCA7CivogLPlrabllY8gPiBtaW1pZ2FrdW1vblwgOwor6ZW357KS57GzID4gY2hvdXJ5dXVtYWlcIDsKK+elnuS/oeW/gyA+IGthbWlzaGluamluXCA7CivlpajlrabnlJ8gPiBzaG91Z2FrdXNlaVwgOwor6Kaz5YW15byPID4ga2FucGVpc2hpa2lcIDsKK+iLpeW5tOWeiyA+IGpha3VuZW5nYXRhXCA7CivpvKDmtbfosZogPiBuZXp1bWlpcnVrYVwgOwor6ZuG56mN5aC0ID4gc2h1dXNla2lqb3VcIDsKK+aMh+S6uuW9oiA+IHl1YmluaW5neW91XCA7Civmm7LoirjluKsgPiBreW9rdWdlaXNoaVwgOwor6bqm57KS6IWrID4gYmFrdXJ5dXVzaHVcIDsKK+ebrueahOWcsCA+IG1va3V0ZWtpY2hpXCA7CivlrabnlJ/lr64gPiBnYWt1c2VpcnlvdVwgOwor5ZCI5oiQ5YqbID4gZ291c2Vpcnlva3VcIDsKK+aPkOS+m+WBtCA+IHRlaWt5b3VnYXdhXCA7CivkuZfpmY3lrqIgPiBqb3Vrb3VreWFrdVwgOwor5YaF6Kaq546LID4gbmFpc2hpbicnbm91XCA7Civns57li4nlvLcgPiBrdXNvYmVua3lvdVwgOwor55+i57aZ5pepID4geWF0c3VnaWJheWFcIDsKK+WkieabsueCuSA+IGhlbmt5b2t1dGVuXCA7Civplbflm5vop5IgPiBuYWdhc2hpa2FrdVwgOwor6Kaq5YiH5rCXID4gc2hpbnNldHN1Z2lcIDsKK+WJr+elnue1jCA+IGZ1a3VzaGlua2VpXCA7CivokYnnt5HkvZMgPiB5b3VyeW9rdXRhaVwgOwor6I+K5Lq65b2iID4ga2lrdW5pbmd5b3VcIDsKK+eOqeW8hOeJqSA+IGdhbnJvdWJ1dHN1XCA7Civlj6PoqIDokYkgPiBrdWNoaWtvdG9iYVwgOwor6ZuG5ZCI55qEID4gc2h1dWdvdXRla2lcIDsKK+WJsuW9k+mhjSA+IHdhcmlhdGVnYWt1XCA7CivluLjnv5LnmoQgPiBqb3VzaHV1dGVraVwgOwor5oSf5Zyn57SZID4ga2FuJydhdHN1c2hpXCA7CivntIXnjL/lrZAgPiBiZW5pbWFzaGlrb1wgOwor5by+5oCn546HID4gZGFuc2Vpcml0c3VcIDsKK+a3oee0heiJsiA+IHRhbmtvdXNob2t1XCA7Civmn7PooYzmnY4gPiB5YW5hZ2lnb3VyaVwgOwor5rWB5YuV55qEID4gcnl1dWRvdXRla2lcIDsKK+eSsOWig+W6gSA+IGthbmt5b3VjaG91XCA7CivmmIbomavlraYgPiBrb25jaHV1Z2FrdVwgOwor5bi45pel6aCDID4gdHN1bmVoaWdvcm9cIDsKK+avlOe/vOWhmiA+IGhpeW9rdWR6dWthXCA7Civmt7fmiJDniakgPiBrb25zZWlidXRzdVwgOwor5rq26Kej5YqbID4geW91a2Fpcnlva3VcIDsKK+aVmeiCsumVtyA+IGt5b3Vpa3VjaG91XCA7CivnhLzljbTngokgPiBzaG91a3lha3Vyb1wgOwor55m95qqA5rK5ID4gYnlha3VkYW4nJ3l1XCA7Civnib3lvJXlipsgPiBrZW4nJ2lucnlva3VcIDsKK+ims+WFieWxgCA+IGthbmtvdWt5b2t1XCA7CivlhaXlrabogIUgPiBueXV1Z2FrdXNoYVwgOwor5Zu95a2m6ICFID4ga29rdWdha3VzaGFcIDsKK+a0u+WLleiqjCA+IGthdHN1ZG91c2hpXCA7Civlh7rlnJ/lk4EgPiBzaHV0c3Vkb2hpblwgOwor57SZ6KGo57SZID4ga2FtaWJ5b3VzaGlcIDsKK+ims+WFieWuoiA+IGthbmtvdWt5YWt1XCA7CivlhbHlrabliLYgPiBreW91Z2FrdXNlaVwgOwor576e5oGl5b+DID4gc2h1dWNoaXNoaW5cIDsKK+iZq+ecvOmPoSA+IG11c2hpbWVnYW5lXCA7CivoqIDokYnos6ogPiBrb3RvYmFqaWNoaVwgOwor5a2m6ICF6IaaID4gZ2FrdXNoYWhhZGFcIDsKK+mAmuS/oee2siA+IHRzdXVzaGlubW91XCA7Civmma7lj4rnjocgPiBmdWt5dXVyaXRzdVwgOwor5Y2D6bOl6LazID4gY2hpZG9yaWFzaGlcIDsKK+i7oui9jeaJiyA+IHRlbnRldHN1c2h1XCA7Civos7zosrflipsgPiBrb3ViYWlyeW9rdVwgOwor5a2m6ICF6IKMID4gZ2FrdXNoYWhhZGFcIDsKK+WFpeiznuiAhSA+IG55dXVzaG91c2hhXCA7Civpmbjou43nnIEgPiByaWt1Z3Vuc2hvdVwgOwor5Luu5Ye65omAID4ga2FyaXNodXNzaG9cIDsKK+WPpOeJqeWVhiA+IGtvYnV0c3VzaG91XCA7CivosaHlvrToqakgPiBzaG91Y2hvdXNoaVwgOwor5LiL5Y2U6K2wID4gc2hpdGFreW91Z2lcIDsKK+WPrOmbhuS7pCA+IHNob3VzaHV1cmVpXCA7CivnhafkvJrlhYggPiBzaG91a2Fpc2FraVwgOwor5aCG56mN5a2mID4gdGFpc2VraWdha3VcIDsKK+iqreino+WKmyA+IGRva2thaXJ5b2t1XCA7CivohbjntZDmoLggPiBjaG91a2Vra2FrdVwgOwor5bm05oGw5aW9ID4gdG9zaGlrYWtrb3VcIDsKK+mAmueUo+ecgSA+IHRzdXVzYW5zaG91XCA7CivpgJrnlKPnm7ggPiB0c3V1c2Fuc2hvdVwgOwor552j5a2m5a6YID4gdG9rdWdha3VrYW5cIDsKK+aHkOS4reeJqSA+IGthaWNodXVtb25vXCA7CivpgJrkv6HnpL4gPiB0c3V1c2hpbnNoYVwgOwor5Y2D55+z6Ii5ID4gc2VuZ29rdWJ1bmVcIDsKK+mHkeeJm+WuriA+IGtpbmd5dXVreXV1XCA7CivmjqXlkIjlrZAgPiBzZXRzdWdvdXNoaVwgOwor55qH5a6k6LK7ID4ga291c2hpdHN1aGlcIDsKK+i/veW+tOeojiA+IHRzdWljaG91emVpXCA7CivlsYDlpJbogIUgPiBreW9rdWdhaXNoYVwgOwor57+M57+M5bm0ID4geW9rdXlva3VuZW5cIDsKK+eJueWIpeapnyA+IHRva3ViZXRzdWtpXCA7Civmt6HopJDoibIgPiB0YW5rYXNzaG9rdVwgOwor5YGP5Z+355eFID4gaGVuc2h1dWJ5b3VcIDsKK+Wtpue/kuiAhSA+IGdha3VzaHV1c2hhXCA7CivpmLLpn7PlrqQgPiBib3VvbnNoaXRzdVwgOwor6IKJ5L2T55qEID4gbmlrdXRhaXRla2lcIDsKK+aWmemHkeihqCA+IHJ5b3VraW5oeW91XCA7CivlhoXpmbjlm70gPiBuYWlyaWt1a29rdVwgOwor5YyF5a655YqbID4gaG91eW91cnlva3VcIDsKK+WHuua8geacnyA+IHNodXRzdWd5b2tpXCA7CivkuLvkurrlvbkgPiBzaHVqaW4nJ3lha3VcIDsKK+aIkOWKn+eOhyA+IHNlaWtvdXJpdHN1XCA7CivlhazmnInniakgPiBrb3V5dXVidXRzdVwgOwor6Kaz6Imm5byPID4ga2Fua2Fuc2hpa2lcIDsKK+aciOWknOiMuCA+IHRzdWtpeW90YWtlXCA7CivlhaXlrabnlJ8gPiBueXV1Z2FrdXNlaVwgOwor5piO5b6M5pelID4gbXlvdWdvbmljaGlcIDsKK+a0u+WLleiAhSA+IGthdHN1ZG91c2hhXCA7CivkuInljp/oibIgPiBzYW5nZW5zaG9rdVwgOwor5YGP5Z+354uCID4gaGVuc2h1dWt5b3VcIDsKK+iSi+S7i+efsyA+IHNob3VrYWlzZWtpXCA7CivnlLPlkYrmm7ggPiBzaGlua29rdXNob1wgOwor57eo56yg6Iy4ID4gYW1pZ2FzYXRha2VcIDsKK+Wwj+WNiuaXpSA+IGtvaGFuJyduaWNoaVwgOwor6KGo5b2w54q2ID4gaHlvdXNob3Vqb3VcIDsKK+WGheiovOS6iyA+IG5haXNob3Vnb3RvXCA7CivoqLrmlq3lraYgPiBzaGluZGFuZ2FrdVwgOwor5Y2X5qW154K5ID4gbmFua3lva3V0ZW5cIDsKK+absuWwhOegsiA+IGt5b2t1c2hhaG91XCA7Civlr77np7DnmoQgPiB0YWlzaG91dGVraVwgOwor55Sy6YmE5p2/ID4ga291dGV0c3ViYW5cIDsKK+WFiOeZuumaiiA+IHNlbnBhdHN1dGFpXCA7CivmgKfnlJ/mtLsgPiBzZWlzZWlrYXRzdVwgOwor5qSc6Zay5a6YID4ga2VuJydldHN1a2FuXCA7CivmtYHpgJrnqI4gPiByeXV1dHN1dXplaVwgOwor5rSX5r+v57OKID4gc2VudGFrdW5vcmlcIDsKK+WNiuebtOe3miA+IGhhbmNob2t1c2VuXCA7CivmtJfmv6/nsaAgPiBzZW50YWt1a2Fnb1wgOwor5o6l5ZCI5YmkID4gc2V0c3Vnb3V6YWlcIDsKK+i+sueUo+eJqSA+IG5vdXNhbmJ1dHN1XCA7CivmjqXlj5flm70gPiBzZXRzdWp1a29rdVwgOwor5Y2X5qW15rW3ID4gbmFua3lva3VrYWlcIDsKK+e1kOiGnOeCjiA+IGtldHN1bWFrdWVuXCA7CivopqrnnabkvJogPiBzaGluYm9rdWthaVwgOwor56Gr5YyW54mpID4gcnl1dWthYnV0c3VcIDsKK+aDs+WDj+WKmyA+IHNvdXpvdXJ5b2t1XCA7CivoirjooZPlk4EgPiBnZWlqdXRzdWhpblwgOwor5Y2X5qW15rSLID4gbmFua3lva3V5b3VcIDsKK+WGjea4rOmHjyA+IHNhaXNva3VyeW91XCA7CivpnLLlh7roqIggPiByb3NodXRzdWtlaVwgOwor55WZ5a2m55SfID4gcnl1dWdha3VzZWlcIDsKK+awtOS7leS6iyA+IG1penVzaGlnb3RvXCA7Civlrabnv5LnlKggPiBnYWt1c2h1dXlvdVwgOwor5rOo5bCE6YedID4gY2h1dXNoYWJhcmlcIDsKK+ims+Wvn+iAhSA+IGthbnNhdHN1c2hhXCA7CivpgJrkv6HmrIQgPiB0c3V1c2hpbnJhblwgOwor5LqU5pyI6ZeHID4gc2F0c3VraXlhbWlcIDsKK+eZuuedgOWgtCA+IGhhdGNoYWt1am91XCA7CivovLjlh7rnqI4gPiB5dXNodXRzdXplaVwgOwor5bCx6IG35pmCID4gc2h1dXNob2t1amlcIDsKK+edgOecvOeCuSA+IGNoYWt1Z2FudGVuXCA7CivnqbrlhrflvI8gPiBrdXVyZWlzaGlraVwgOwor5rq25o6l5belID4geW91c2V0c3Vrb3VcIDsKK+S4uOacqOapiyA+IG1hcnVraWJhc2hpXCA7CivlsbHlvaLnnIwgPiB5YW1hZ2F0YWtlblwgOwor5Lqk6ZyK6KGTID4ga291cmVpanV0c3VcIDsKK+WJtemAoOiqrCA+IHNvdXpvdXNldHN1XCA7Civmi5vlvoXluK0gPiBzaG91dGFpc2VraVwgOwor6Zuq5LiK6LuKID4gc2V0c3Vqb3VzaGFcIDsKK+S6pOmfv+alvSA+IGtvdWt5b3VnYWt1XCA7CivovrLmpa3lm70gPiBub3VneW91a29rdVwgOwor5Y2T6LaK6aKoID4gdGFrdWV0c3VmdXVcIDsKK+mOrueXm+aApyA+IGNoaW50c3V1c2VpXCA7Civoqo3orZjoq5YgPiBuaW5zaGlraXJvblwgOwor5bCx5a+d5YmNID4gc2h1dXNoaW56ZW5cIDsKK+WPjOabsue3miA+IHNvdWt5b2t1c2VuXCA7CivlpI/mmYLliLsgPiBuYXRzdWppa29rdVwgOwor5aSP5aSn5qC5ID4gbmF0c3VkYWlrb25cIDsKK+adkeWFq+WIhiA+IG11cmFoYWNoaWJ1XCA7CivlgpjkvJDmnpcgPiBzYW5iYXRzdXJpblwgOwor5bi46Kit6aSoID4gam91c2V0c3VrYW5cIDsKK+WNl+alteaYnyA+IG5hbmt5b2t1c2VpXCA7CivnpZ7lrablo6sgPiBzaGluZ2FrdXNoaVwgOwor5LiK5ZGK5a+pID4gam91a29rdXNoaW5cIDsKK+WFiOWFpeimsyA+IHNlbicnbnl1dWthblwgOwor5YWI5YWl6KaLID4gc2VuJydueXV1a2VuXCA7CivmtJfmv6/niakgPiBzZW50YWt1bW9ub1wgOwor5LiH6JGJ6ZuGID4gbWFuJyd5b3VzaHV1XCA7CivmuoDlt57lm70gPiBtYW5zaHV1a29rdVwgOwor6KGo5b+g5aGUID4gaHlvdWNodXV0b3VcIDsKK+S4iemHjeauuiA+IHNhbmp1dXNhdHN1XCA7CivliIbms4zmtrIgPiBidW5waXRzdWVraVwgOwor6Zqj5o6l55yMID4gcmluc2V0c3VrZW5cIDsKK+WYmOWFq+eZviA+IHVzb2hhcHB5YWt1XCA7CivoiJ7ouI/lrqQgPiBidXRvdXNoaXRzdVwgOwor5b2T5bGA6ICFID4gdG91a3lva3VzaGFcIDsKK+e3qeihneWbvSA+IGthbnNob3Vrb2t1XCA7Civol4HkurrlvaIgPiB3YXJhbmluZ3lvdVwgOwor5b2x6Z+/5YqbID4gZWlreW91cnlva3VcIDsKK+aWh+evgOaVsCA+IGJ1bnNldHN1c3V1XCA7Civmgqrmjqjph48gPiB3YXJ1enVpcnlvdVwgOwor5ZCr5pyJ6YePID4gZ2FuJyd5dXVyeW91XCA7Civoqpjpm7vnjocgPiB5dXVkZW5yaXRzdVwgOwor6Kaz5a+f55y8ID4ga2Fuc2F0c3VnYW5cIDsKK+aKm+eJqee3miA+IGhvdWJ1dHN1c2VuXCA7Civoo4/liIfogIUgPiB1cmFnaXJpbW9ub1wgOwor6Ziy6Zuq5p6XID4gYm91c2V0c3VyaW5cIDsKK+WkqeelnumrrSA+IHRlbnNoaW5oaWdlXCA7CivmrrrlrrPogIUgPiBzYXRzdWdhaXNoYVwgOwor5pWZ6IKy55yBID4ga3lvdWlrdXNob3VcIDsKK+mbouS5s+mjnyA+IHJpbnl1dXNob2t1XCA7CivmlZnogrLnmoQgPiBreW91aWt1dGVraVwgOwor54m55Yil5Yy6ID4gdG9rdWJldHN1a3VcIDsKK+iyoeaUv+WKmyA+IHphaXNlaXJ5b2t1XCA7CivlvLfnoaznrZYgPiBreW91a291c2FrdVwgOwor5paw5bm05Y+3ID4gc2hpbicnbmVuZ291XCA7Civno6/pprTmnb4gPiBzb25hcmVtYXRzdVwgOwor5YWl6aSo5paZID4gbnl1dWthbnJ5b3VcIDsKK+eJqeebuOmjryA+IG1vc3NvdW1lc2hpXCA7Civoo73pnanmpa0gPiBzZWlrYWt1Z3lvdVwgOwor5Lit5a2m55SfID4gY2h1dWdha3VzZWlcIDsKK+i8uOWHuua4ryA+IHl1c2h1dHN1a291XCA7CivljZfmpbXluK8gPiBuYW5reW9rdXRhaVwgOwor5rq25o6l5YmkID4geW91c2V0c3V6YWlcIDsKK+aApeeXheS6uiA+IGt5dXVieW91bmluXCA7Civlr4Tlrr/mlpkgPiBraXNodWt1cnlvdVwgOwor6auY5bO255SwID4gdGFrYXNoaW1hZGFcIDsKK+Wwj+ato+aciCA+IGtvc2hvdWdhdHN1XCA7Civli5XlipvoqIggPiBkb3VyeW9rdWtlaVwgOwor5qW15aSn5YCkID4ga3lva3VkYWljaGlcIDsKK+WHuumHkemhjSA+IHNodWtraW5nYWt1XCA7CivnlLPlkYrliLYgPiBzaGlua29rdXNlaVwgOwor5a2Q5L6b6YGUID4ga29kb21vdGFjaGlcIDsKK+WqkuS7i+eJqSA+IGJhaWthaWJ1dHN1XCA7Civpu4TpgZPoibIgPiBrb3Vkb3VzaG9rdVwgOwor5LiJ6JGJ6JmrID4gc2FuJyd5b3VjaHV1XCA7Civlhajos6rljJYgPiB6ZW5zaGl0c3VrYVwgOwor55Sf5rS76ZujID4gc2Vpa2F0c3VuYW5cIDsKK+e0sOWLleiEiCA+IHNhaWRvdW15YWt1XCA7Civnp4HmnInniakgPiBzaGl5dXVidXRzdVwgOwor6KSH6ZuR5YyWID4gZnVrdXphdHN1a2FcIDsKK+WLouWKm+WcjyA+IHNlaXJ5b2t1a2VuXCA7CivopIfopIfnt5ogPiBmdWt1ZnVrdXNlblwgOwor5paw5bm05LyaID4gc2hpbicnbmVua2FpXCA7CivkuI3norrlrp8gPiBmdWtha3VqaXRzdVwgOwor6Y6u55eb5YmkID4gY2hpbnRzdXV6YWlcIDsKK+aAquS6uueJqSA+IGthaWppbmJ1dHN1XCA7CivpgJrlrabnlJ8gPiB0c3V1Z2FrdXNlaVwgOwor54iG5b+D5ZywID4gYmFrdXNoaW5jaGlcIDsKK+Wni+acq+abuCA+IHNoaW1hdHN1c2hvXCA7Civnq7bkuonlv4MgPiBreW91c291c2hpblwgOwor5Ym96Lu96ICFID4gaHlvdWtpbm1vbm9cIDsKK+iFuOmWieWhniA+IGNob3VoZWlzb2t1XCA7Civou43lvZPlsYAgPiBndW50b3VreW9rdVwgOwor55m95a2Q6bOpID4gc2hpcmFrb2JhdG9cIDsKK+eUuuW9ueWgtCA+IG1hY2hpeWFrdWJhXCA7CivkuI3lv6Dlrp8gPiBmdWNodXVqaXRzdVwgOwor5Y2a5a2m6ICFID4gaGFrdWdha3VzaGFcIDsKK+aIpueVpeS4iiA+IHNlbnJ5YWt1am91XCA7CivljZfmpbXlnI8gPiBuYW5reW9rdWtlblwgOwor5Lih6ISa6KaPID4gcnlvdWt5YWt1a2lcIDsKK+WFseios+iAhSA+IGt5b3V5YWt1c2hhXCA7Civlv43ogJDlipsgPiBuaW50YWlyeW9rdVwgOwor6ZuG6YeR5Lq6ID4gc2h1dWtpbicnbmluXCA7CivljYHlhavph5EgPiBqdXVoYWNoaWtpblwgOwor5YCf55So6ICFID4gc2hha3V5b3VzaGFcIDsKK+aMgeS5heWKmyA+IGppa3l1dXJ5b2t1XCA7CivlsYDlnLDpoqggPiBreW9rdWNoaWZ1dVwgOwor55m655mM5oCnID4gaGF0c3VnYW5zZWlcIDsKK+aPmumZuOaWmSA+IHlvdXJpa3VyeW91XCA7Civlr4bosr/mmJMgPiBtaXRzdWJvdWVraVwgOwor6YCa5L+h5ZOhID4gdHN1dXNoaW4nJ2luXCA7CivlhqDli5XohIggPiBrYW5kb3VteWFrdVwgOwor5aSJ5aWP5puyID4gaGVuc291a3lva3VcIDsKK+ihqOW9sOWPsCA+IGh5b3VzaG91ZGFpXCA7CivokazpgIHmm7IgPiBzb3Vzb3VreW9rdVwgOwor5Y2D5YiG546HID4gc2VuYnVucml0c3VcIDsKK+S4uOS4gOW5tCA+IG1hcnVpY2hpbmVuXCA7CivogIHlu4PniakgPiByb3VoYWlidXRzdVwgOwor5Y2X5qW15YWJID4gbmFua3lva3Vrb3VcIDsKK+earueul+eUqCA+IGthd2F6YW4nJ3lvdVwgOwor6L+95YiG56+AID4gb2l3YWtlYnVzaGlcIDsKK+W+s+W3neWLoiA+IHRva3VnYXdhemVpXCA7CivlibXpgKDniakgPiBzb3V6b3VidXRzdVwgOwor5Yid6Iiq5rW3ID4gaGF0c3Vrb3VrYWlcIDsKK+izvOiqreaWmSA+IGtvdWRva3VyeW91XCA7CivlvpfnpajmlbAgPiB0b2t1aHlvdXN1dVwgOwor6Zuq5pmv6ImyID4geXVraWdlc2hpa2lcIDsKK+eyvuelnueahCA+IHNlaXNoaW50ZWtpXCA7CivlvrPlt53lhawgPiB0b2t1Z2F3YWtvdVwgOwor5rS75YuV5a62ID4ga2F0c3Vkb3VzaGFcIDsKK+iHqueri+W/gyA+IGppcml0c3VzaGluXCA7CivmvLjpgLLnmoQgPiB6ZW5zaGludGVraVwgOwor5pWZ5Lya5pqmID4ga3lvdWthaXJla2lcIDsKK+auuuS6uuiAhSA+IHNhdHN1amluc2hhXCA7Civnsr7npZ7nl4UgPiBzZWlzaGluYnlvdVwgOwor5q665Lq6572qID4gc2F0c3VqaW56YWlcIDsKK+aIkOW5tOW8jyA+IHNlaW5lbnNoaWtpXCA7CivohLHnn7PmsrkgPiBkYXRzdXNla2l5dVwgOwor5YWI6YCy5Zu9ID4gc2Vuc2hpbmtva3VcIDsKK+Wcn+Wbo+WtkCA+IHRzdWNoaWRhbmdvXCA7Civmt7flkIjniakgPiBrb25nb3VidXRzdVwgOwor6LuN5qW96ZW3ID4gZ3VuZ2FrdWNob3VcIDsKK+azleW+i+S4iiA+IGhvdXJpdHN1am91XCA7CivnlZzniqznqI4gPiBjaGlrdWtlbnplaVwgOwor5qKB5bGx5rOKID4gcnlvdXphbnBha3VcIDsKK+W9q+WhkeihkyA+IGNob3Vzb2p1dHN1XCA7Civku6PnlKjpo58gPiBkYWl5b3VzaG9rdVwgOwor5Lim5pyo6YGTID4gbmFtaWtpbWljaGlcIDsKK+W4s+acrOS6uiA+IGNob3Vob24nJ25pblwgOwor5a6d55+z566xID4gaG91c2VraWJha29cIDsKK+WNkualreW+jCA+IHNvdHN1Z3lvdWdvXCA7Civlj6Pop5LlipsgPiBrdWNoaWR6dW1vdVwgOwor5LqL5qWt5Li7ID4gamlneW91bnVzaGlcIDsKK+iHquiZkOeahCA+IGppZ3lha3V0ZWtpXCA7CivkuIvnm7joq4cgPiBzaGl0YXNvdWRhblwgOwor56a/6aCt55eFID4gdG9rdXRvdWJ5b3VcIDsKK+W8vuedgOeCuSA+IGRhbmNoYWt1dGVuXCA7CivkupTmnIjnl4UgPiBnb2dhdHN1YnlvdVwgOwor5by+5Yqb5oCnID4gZGFucnlva3VzZWlcIDsKK+aguOeIhuW8viA+IGtha3ViYWt1ZGFuXCA7CivkuKbmnKjot68gPiBuYW1pa2ltaWNoaVwgOwor5ZWG5qWt6KGXID4gc2hvdWd5b3VnYWlcIDsKK+mgreaWh+WtlyA+IGthc2hpcmFtb2ppXCA7CivnuK7nt6zntJkgPiBjaGlyaW1lbnNoaVwgOwor5oiq5pat6Z2iID4gc2V0c3VkYW5tZW5cIDsKK+WNl+S6rOiZqyA+IG5hbmtpbm11c2hpXCA7Civoo4Hmsbrmm7ggPiBzYWlrZXRzdXNob1wgOwor5qC454eD5paZID4ga2FrdW5lbnJ5b3VcIDsKK+mAkOWtl+iosyA+IGNoaWt1aml5YWt1XCA7CivkuIDlvrnogIUgPiBpdHRldHN1bW9ub1wgOwor5b6h5Y2U5YqbID4gZ29reW91cnlva3VcIDsKK+S/guWxnuS4rSA+IGtlaXpva3VjaHV1XCA7Civnl4XkuK3lkJ8gPiBieW91Y2h1dWdpblwgOwor5qW16ZmQ5YCkID4ga3lva3VnZW5jaGlcIDsKK+aVmeiCsuWtpiA+IGt5b3Vpa3VnYWt1XCA7Civpm7voqbHlrqQgPiBkZW53YXNoaXRzdVwgOwor6YGg5b+D5YqbID4gZW5zaGlucnlva3VcIDsKK+WuruW0juecjCA+IG1peWF6YWtpa2VuXCA7CivllYblt6Xmpa0gPiBzaG91a291Z3lvdVwgOwor6KGd5YuV55qEID4gc2hvdWRvdXRla2lcIDsKK+iDhuefs+eXhyA+IHRhbnNla2lzaG91XCA7CivovLjlh7rlk4EgPiB5dXNodXRzdWhpblwgOwor5LiJ55yg6JqVID4gc2FubWlua2Fpa29cIDsKK+mWk+asoOaziSA+IGthbmtldHN1c2VuXCA7CivlpKnpvo3lt50gPiB0ZW5yeXV1a2F3YVwgOwor5pWZ57+S55SfID4ga3lvdXNodXVzZWlcIDsKK+mao+aOpeWcsCA+IHJpbnNldHN1Y2hpXCA7CivnmbrnlJ/njocgPiBoYXNzZWlyaXRzdVwgOwor6JGh6JCE55WRID4gYnVkb3ViYXRha2VcIDsKK+Wig+eVjOaomSA+IGt5b3VrYWloeW91XCA7Civnqbrou43lipsgPiBrdXVndW5yeW9rdVwgOwor5Lqk5aOw5puyID4ga291c2Vpa3lva3VcIDsKK+ePvuWGhemWoyA+IGdlbicnbmFpa2FrdVwgOwor5Y2g5pif6KGTID4gc2Vuc2VpanV0c3VcIDsKK+mmmei+m+aWmSA+IGtvdXNoaW5yeW91XCA7CivnlLrpgZPloLQgPiBtYWNoaWRvdWpvdVwgOwor5YuV5Yqb5rqQID4gZG91cnlva3VnZW5cIDsKK+aBkuetieW8jyA+IGtvdXRvdXNoaWtpXCA7CivoqI7kvJDou40gPiB0b3ViYXRzdWd1blwgOwor6KGo55yL5p2/ID4gb21vdGVrYW5iYW5cIDsKK+a/g+mdkuiJsiA+IG5vdXNlaXNob2t1XCA7Civmrrrkurrniq8gPiBzYXRzdWppbmhhblwgOwor5q6L5b+16LOeID4gemFuJyduZW5zaG91XCA7CivohLPlhYXooYAgPiBub3VqdXVrZXRzdVwgOwor6aOf5Lq656iuID4gc2hva3VqaW5zaHVcIDsKK+i1pOikkOiJsiA+IHNla2thc3Nob2t1XCA7CivoiIjkv6HpjLIgPiBrb3VzaGlucm9rdVwgOwor6Zu754ax5ZmoID4gZGVuJyduZXRzdWtpXCA7CivkvZzmm7LogIUgPiBzYWtreW9rdXNoYVwgOwor5ZWG5qiZ5qipID4gc2hvdWh5b3VrZW5cIDsKK+W4uOitmOS6uiA+IGpvdXNoaWtpamluXCA7CivoprPlrqLlsaQgPiBrYW5reWFrdXNvdVwgOwor5LiA6YeN5qGcID4gaGl0b2V6YWt1cmFcIDsKK+WFiOWFiOaciCA+IHNlbnNlbmdldHN1XCA7CivlnLDli5XoqqwgPiBjaGlkb3VzZXRzdVwgOwor55m95Lqc6LOqID4gaGFrdWFzaGl0c3VcIDsKK+iGoOedgOWJpCA+IGtvdWNoYWt1emFpXCA7CivkuIDmrrXokL0gPiBpY2hpZGFucmFrdVwgOwor6LuN55So6bOpID4gZ3VuJyd5b3ViYXRvXCA7Civkv5fmloflraYgPiB6b2t1YnVuZ2FrdVwgOwor6Zu75Zyn6KiIID4gZGVuJydhdHN1a2VpXCA7CivolqzlsYDmlrkgPiB5YWtreW9rdWhvdVwgOwor5rOV5Yi25bGAID4gaG91c2Vpa3lva3VcIDsKK+iWrOWtpuiAhSA+IHlha3VnYWt1c2hhXCA7Civkv4LkuonniakgPiBrZWlzb3VidXRzdVwgOwor6ZCY5Lmz5rSeID4gc2hvdW55dXVkb3VcIDsKK+iEseavm+WJpCA+IGRhdHN1bW91emFpXCA7CivnrqHovYTmqKkgPiBrYW5rYXRzdWtlblwgOwor5YCf55So5pu4ID4gc2hha3V5b3VzaG9cIDsKK+WlieWFrOWPoyA+IGhvdWtvdWd1Y2hpXCA7CivmlL7pgIHlsYAgPiBob3Vzb3VreW9rdVwgOwor6buE55m96ImyID4ga29oYWt1c2hva3VcIDsKK+e+vee5lOiitCA+IGhhb3JpaGFrYW1hXCA7CivpmaTluZXlvI8gPiBqb21ha3VzaGlraVwgOwor5by35Yi255qEID4ga3lvdXNlaXRla2lcIDsKK+W8t+W/g+WJpCA+IGt5b3VzaGluemFpXCA7CivnlJ/mtLvnkrAgPiBzZWlrYXRzdWthblwgOwor5pil5LiA55WqID4gaGFydWljaGliYW5cIDsKK+WNgeWFq+eVqiA+IGp1dWhhY2hpYmFuXCA7CivntYLouqvlrpggPiBzaHV1c2hpbmthblwgOwor5pyI6ZW355+zID4gZ2V0Y2hvdXNla2lcIDsKK+aVmeiBt+WToSA+IGt5b3VzaG9rdWluXCA7CivpgIHliKXkvJogPiBzb3ViZXRzdWthaVwgOwor5Ye65ZOB5Zu9ID4gc2h1cHBpbmtva3VcIDsKK+WNl+S6rOeUuiA+IG5hbmtpbm1hY2hpXCA7CivpgZPlvrPnmoQgPiBkb3V0b2t1dGVraVwgOwor5ZWG5qWt55WMID4gc2hvdWd5b3VrYWlcIDsKK+WPjue0jemhjSA+IHNodXVub3VnYWt1XCA7CivpvI7nq4vmiKYgPiB0ZWlyaXRzdXNlblwgOwor5Y6f5YmH55qEID4gZ2Vuc29rdXRla2lcIDsKK+WCjeiBtOaWmSA+IGJvdWNob3VyeW91XCA7CivljYPlhobmnK0gPiBzZW4nJ2Vuc2F0c3VcIDsKK+WumuWPjuWFpSA+IHRlaXNodXVueXV1XCA7Civlha3lpKflt54gPiByb2t1ZGFpc2h1dVwgOwor5Ymy5byV5Yi4ID4gd2FyaWJpa2lrZW5cIDsKK+S9j+eUn+a0uyA+IGp1dXNlaWthdHN1XCA7CivliY3nq4vohbogPiB6ZW5yaXRzdXNlblwgOwor5YaZ55yf6ZuGID4gc2hhc2hpbnNodXVcIDsKK+eZvuS4h+mBjSA+IGh5YWt1bWFuYmVuXCA7CivonYnmmYLpm6ggPiBzZW1pc2hpZ3VyZVwgOwor5Ymy5byV5YK1ID4gd2FyaWJpa2lzYWlcIDsKK+aOpeedgOWJpCA+IHNldGNoYWt1emFpXCA7CivmiYvooZPlj7AgPiBzaHVqdXRzdWRhaVwgOwor6Ziy54Gr5omJID4gYm91a2F0b2JpcmFcIDsKK+S5seWFpeiAhSA+IHJhbicnbnl1dXNoYVwgOwor6KiI55S755qEID4ga2Vpa2FrdXRla2lcIDsKK+iqv+WNsOW8jyA+IGNob3VpbnNoaWtpXCA7CivpgIbou6LlsaQgPiBneWFrdXRlbnNvdVwgOwor6buE6Imy6JmrID4ga29nYW5lbXVzaGlcIDsKK+eUn+a0u+azlSA+IHNlaWthdHN1aG91XCA7CivnspjlnJ/os6ogPiBuZW5kb3NoaXRzdVwgOwor6YCG6Ly45YWlID4gZ3lha3V5dW55dXVcIDsKK+aWsOiIiOWbvSA+IHNoaW5rb3Vrb2t1XCA7CivlibXpgKDlipsgPiBzb3V6b3VyeW9rdVwgOwor5ZCI55uu55qEID4gZ291bW9rdXRla2lcIDsKK+aWsOS6uuizniA+IHNoaW5qaW5zaG91XCA7CivpoJrpnZnohIggPiBrZWlqb3VteWFrdVwgOwor6Zu75aCx5bGAID4gZGVucG91a3lva3VcIDsKK+S4ieW5leeJqSA+IHNhbm1ha3Vtb25vXCA7Civnmb3mnKjok64gPiBoYWt1bW9rdXJlblwgOwor5ZWG5qWt5rivID4gc2hvdWd5b3Vrb3VcIDsKK+iWrOe9kOmgrSA+IHlha2FuJydhdGFtYVwgOwor5LiA6YeM5aGaID4gaWNoaXJpZHp1a2FcIDsKK+e1gui6q+WIkSA+IHNodXVzaGlua2VpXCA7Civli5XlipvlraYgPiBkb3VyaWtpZ2FrdVwgOwor56+A5paZ55CGID4gc2VjaGlyeW91cmlcIDsKK+WHuuWTgeS6uiA+IHNodXBwaW4nJ25pblwgOwor5YKN6IG05bitID4gYm91Y2hvdXNla2lcIDsKK+S4jemBqeWIhyA+IGZ1dGVraXNldHN1XCA7CivlrabpmpvnmoQgPiBnYWt1c2FpdGVraVwgOwor56uc6aqo5bqnID4gcnl1dWtvdHN1emFcIDsKK+S7ruadoee0hCA+IGthcmlqb3V5YWt1XCA7Civpmo7ntJrnq6AgPiBrYWlreXV1c2hvdVwgOwor5oq15oqX5YqbID4gdGVpa291cnlva3VcIDsKK+ajruael+WtpiA+IHNoaW5yaW5nYWt1XCA7Civnmb7kuIfoqIAgPiBoeWFrdW1hbmdlblwgOwor5YyW57Kn5LiLID4ga2VzaG91c2hpdGFcIDsKK+i1pOaPkOeBryA+IGFrYWNob3VjaGluXCA7CivlibXpgKDkuLsgPiBzb3V6b3VudXNoaVwgOwor5YCZ5a2d6LOiID4gaG91c2hhdXNoZW5cIDsKK+iWrOe8tumgrSA+IHlha2FuJydhdGFtYVwgOwor5Yas5bCG6LuNID4gZnV5dXNob3VndW5cIDsKK+eLrOe/kuabuCA+IGRva3VzaHV1c2hvXCA7CivlhazoqLzmlpkgPiBrb3VzaG91cnlvdVwgOwor57a/57mU54mpID4gbWVuJydvcmltb25vXCA7CivlhYjlhaXkuLsgPiBzZW4nJ255dXVzaHVcIDsKK+acgOe1gueahCA+IHNhaXNodXV0ZWtpXCA7CivmnKzlu7rnr4kgPiBob25rZW5jaGlrdVwgOwor54uX5bC+6I2JID4gZW5va29yb2d1c2FcIDsKK+ihjOWVhuS6uiA+IGd5b3VzaG91bmluXCA7CivliIfliIbms5UgPiBzZXRzdWJ1bmhvdVwgOwor5bCP55m+5aeTID4ga29ieWFrdXNob3VcIDsKK+W/g+S4iOWkqyA+IGtva29yb2pvdWJ1XCA7Civps6XpoZ7lraYgPiBjaG91cnVpZ2FrdVwgOwor5byx5bm06ICFID4gamFrdW5lbm1vbm9cIDsKK+S4remaiumVtyA+IGNodXV0YWljaG91XCA7Civnm7joq4flvbkgPiBzb3VkYW4nJ3lha3VcIDsKK+mjn+S6i+aZgiA+IHNob2t1amlkb2tpXCA7CivlhavpnaLkvZMgPiBoYWNoaW1lbnRhaVwgOwor5Y6f5Yik5rG6ID4gZ2VuaGFua2V0c3VcIDsKK+alteWcsOWcjyA+IGt5b2t1Y2hpa2VuXCA7Civnm6Plr5/lrpggPiBrYW5zYXRzdWthblwgOwor55m9546J57KJID4gc2hpcmF0YW1ha29cIDsKK+WVhualreaWhyA+IHNob3VneW91YnVuXCA7CivlpKnli5XoqqwgPiB0ZW5kb3VzZXRzdVwgOwor6L676Kqs5rOVID4gdHN1amlzZXBwb3VcIDsKK+eFieS4ueihkyA+IHJlbnRhbmp1dHN1XCA7Civopb/mtbflsrggPiBuaXNoaWthaWdhblwgOwor5oCl5LiK5piHID4ga3l1dWpvdXNob3VcIDsKK+Wuneefs+WVhiA+IGhvdXNla2lzaG91XCA7Civmj5vnrpfnjocgPiBrYW5zYW5yaXRzdVwgOwor5bu66Kit6ICFID4ga2Vuc2V0c3VzaGFcIDsKK+WMl+OAheilvyA+IGhva3Vob2t1c2VpXCA7CivpioDlqZrlvI8gPiBnaW5rb25zaGlraVwgOwor5Lih6ISa5ZmoID4gcnlvdWt5YWt1a2lcIDsKK+WOn+WLleWKmyA+IGdlbmRvdXJ5b2t1XCA7Civkv4Tmma/msJcgPiBuaXdha2FnZWlraVwgOwor5oKq5oiv6ICFID4gaXRhenVyYW1vbm9cIDsKK+Wkp+emj+W4syA+IGRhaWZ1a3VjaG91XCA7CivmmYLnr4Dmn4QgPiBqaXNldHN1Z2FyYVwgOwor5ZC46KGA6ay8ID4ga3l1dWtldHN1a2lcIDsKK+ezluWwv+eXhSA+IHRvdW55b3VieW91XCA7Civou6Lku7vlhYggPiB0ZW4nJ25pbnNha2lcIDsKK+aUr+mFjeWKmyA+IHNoaWhhaXJ5b2t1XCA7CivljZjpn7Pnr4AgPiB0YW4nJ29uc2V0c3VcIDsKK+aWsOiBnueoriA+IHNoaW5idW5kYW5lXCA7CivlvJ/jgIXlrZAgPiBvdG91dG9kZXNoaVwgOwor5L2O5LiY6Zm1ID4gdGVpa3l1dXJ5b3VcIDsKK+Wbvemam+eahCA+IGtva3VzYWl0ZWtpXCA7Civpg7flnJ/oibIgPiBreW91ZG9zaG9rdVwgOwor56uc55Sw5aerID4gdGF0c3V0YWhpbWVcIDsKK+Wwj+WtpumkqCA+IHNob3VnYWt1a2FuXCA7Civkvb/nr4Dlm6MgPiBzaGlzZXRzdWRhblwgOwor5raI5oGv5paHID4gc2hvdXNva3VidW5cIDsKK+e3i+iho+iNiSA+IGhpZ29yb21vc291XCA7CivkuLvoqIjlsYAgPiBzaHVrZWlreW9rdVwgOwor6YGT5b6z5b+DID4gZG91dG9rdXNoaW5cIDsKK+acquaxuuWbmiA+IG1pa2V0c3VzaHV1XCA7CivmhJvllLHmm7IgPiBhaXNob3VreW9rdVwgOwor5bGx5qOf6JuHID4geWFtYWthZ2FzaGlcIDsKK+WBteWvn+maiiA+IHRlaXNhdHN1dGFpXCA7Civnmbrkv6HlgbQgPiBoYXNzaGluZ2F3YVwgOwor6YGg5bGx6YeMID4gdG9veWFtYXphdG9cIDsKK+elnue1jOeXmyA+IHNoaW5rZWl0c3V1XCA7CivnpZ7ntYznl4cgPiBzaGlua2Vpc2hvdVwgOwor56We57WM55eFID4gc2hpbmtlaWJ5b3VcIDsKK+WumuedgOa2siA+IHRlaWNoYWt1ZWtpXCA7CivlvIHoqLzlraYgPiBiZW5zaG91Z2FrdVwgOwor55m65L+h5Lq6ID4gaGFzc2hpbicnbmluXCA7Civnt5HlnLDluK8gPiByeW9rdWNoaXRhaVwgOwor55Sf5rS75ZyPID4gc2Vpa2F0c3VrZW5cIDsKK+eGseS8neWwjiA+IG5ldHN1ZGVuZG91XCA7CivpgZPlvrPlraYgPiBkb3V0b2t1Z2FrdVwgOwor6YGp5qC86ICFID4gdGVraWtha3VzaGFcIDsKK+Wbs+abuOWupCA+IHRvc2hvc2hpdHN1XCA7CivoprPpn7Pmp5ggPiBrYW4nJ25vbnNhbWFcIDsKK+e1kOWpmuW8jyA+IGtla2tvbnNoaWtpXCA7Civopb/mtIvlvI8gPiBzZWl5b3VzaGlraVwgOwor55S35Yal5YipID4gb3Rva29teW91cmlcIDsKK+S4iuiFlemqqCA+IGpvdXdhbmtvdHN1XCA7CivnlJ/lkb3lipsgPiBzZWltZWlyeW9rdVwgOwor56Gs6aqo5ryiID4ga291a290c3VrYW5cIDsKK+WVhualreWcsCA+IHNob3VneW91Y2hpXCA7CivkuIflubTluoogPiBtYW4nJ25lbmRva29cIDsKK+ism+mHiOW4qyA+IGtvdXNoYWt1c2hpXCA7Civmt6Hpu4ToibIgPiB0YW5rb3VzaG9rdVwgOwor5LiJ5bmF5a++ID4gc2FucHVrdXRzdWlcIDsKK+ibi+eZveWwvyA+IHRhbnBha3VueW91XCA7CivliLrmv4Doh60gPiBzaGlnZWtpc2h1dVwgOwor6I2J6Z6L6JmrID4gd2FyYWppbXVzaGlcIDsKK+mHkeiejealrSA+IGtpbicneXV1Z3lvdVwgOwor6I+c56iu5rK5ID4gbmF0YW5lYWJ1cmFcIDsKK+mbm+S6uuW9oiA+IGhpbmFuaW5neW91XCA7CivnhKHnnYDpmbggPiBtdWNoYWt1cmlrdVwgOwor5LiK5YiG5YilID4gam91ZnVuYmV0c3VcIDsKK+Wkp+WLleiEiCA+IGRhaWRvdW15YWt1XCA7CivnpZ7nhKHmnIggPiBrYW4nJ25hZHp1a2lcIDsKK+W5vOmmtOafkyA+IG9zYW5hbmFqaW1pXCA7CivlhoblkajnjocgPiBlbnNodXVyaXRzdVwgOwor5ZWG5qWt5Y+yID4gc2hvdWd5b3VzaGlcIDsKK+WxseWys+eXhSA+IHNhbmdha3VieW91XCA7Civopqrku7vlrpggPiBzaGluJyduaW5rYW5cIDsKK+i/vei3oeiAhSA+IHRzdWlzZWtpc2hhXCA7CivnmbrkvJrlvI8gPiBoYWtrYWlzaGlraVwgOwor5aSp6YGT6JmrID4gdGVudG91bXVzaGlcIDsKK+W6iumdouepjSA+IHl1a2FtZW5zZWtpXCA7Civni7jopqrniLYgPiB0YW51a2lveWFqaVwgOwor5pyo55+z5ryiID4gYm9rdXNla2lrYW5cIDsKK+WbvemYsuecgSA+IGtva3Vib3VzaG91XCA7Civlm73mloflraYgPiBrb2t1YnVuZ2FrdVwgOwor5rCR5L+X5a2mID4gbWluem9rdWdha3VcIDsKK+eUn+auluiFuiA+IHNlaXNob2t1c2VuXCA7Civoh6rmrrrnmoQgPiBqaXNhdHN1dGVraVwgOwor6YCg54mp5Li7ID4gem91YnV0c3VzaHVcIDsKK+eUqOWFteihkyA+IHlvdWhlaWp1dHN1XCA7CivpgIDogbfph5EgPiB0YWlzaG9rdWtpblwgOwor5b2O5pyI54q2ID4gd2FuZ2V0c3Vqb3VcIDsKK+eUn+ayoeW5tCA+IHNlaWJvdHN1bmVuXCA7CivljZjkuIDmgKcgPiB0YW4nJ2l0c3VzZWlcIDsKK+aMgee2muWKmyA+IGppem9rdXJ5b2t1XCA7CivmlrDogZ7mpa0gPiBzaGluYnVuZ3lvdVwgOwor56We57WM5qC4ID4gc2hpbmtlaWtha3VcIDsKK+aeoui7uOWbvSA+IHN1dWppa3Vrb2t1XCA7CivkuInoibLniYggPiBzYW5zaG9rdWJhblwgOwor55u06Kaz55qEID4gY2hva2thbnRla2lcIDsKK+S4remWk+mnhSA+IGNodXVrYW4nJ2VraVwgOwor6IO96KOF5p2fID4gbm91c2hvdXpva3VcIDsKK+e1kOaZtuWtpiA+IGtlc3Nob3VnYWt1XCA7Civop6Pmsbrms5UgPiBrYWlrZXRzdWhvdVwgOwor6K2m5oiS6ImyID4ga2Vpa2Fpc2hva3VcIDsKK+S4gOavm+S9nCA+IGljaGltb3VzYWt1XCA7CivmuKnnhrHmgKcgPiBvbicnbmV0c3VzZWlcIDsKK+WGheWPjeiEmiA+IG5haWhhbmt5YWt1XCA7Civlu7bnuITmvIEgPiBoYWVuYXdhcnlvdVwgOwor55u05pa55L2TID4gY2hva3Vob3V0YWlcIDsKK+WutuaXj+mBlCA+IGthem9rdXRhY2hpXCA7CivliLrmv4DnmoQgPiBzaGlnZWtpdGVraVwgOwor5Lqk5o+b5bGAID4ga291a2Fua3lva3VcIDsKK+S4g+W5tOW/jCA+IHNoaWNoaW5lbmtpXCA7CivmgqrmiK/mm7ggPiBpdGF6dXJhZ2FraVwgOwor5Y2D5Lq66YedID4gc2VuJyduaW5iYXJpXCA7Civmtojmr5LmtrIgPiBzaG91ZG9rdWVraVwgOwor5rK556Cl55+zID4gYWJ1cmF0b2lzaGlcIDsKK+eLkOmlgumjqSA+IGtpdHN1bmV1ZG9uXCA7CivlkIjlt57lm70gPiBnYXNzaHV1a29rdVwgOwor5r+D6KSQ6ImyID4gbm91a2Fzc2hva3VcIDsKK+adkOacqOWVhiA+IHphaW1va3VzaG91XCA7Civljp/oibLniYggPiBnZW5zaG9rdWJhblwgOwor5Y2Y6aCF5byPID4gdGFua291c2hpa2lcIDsKK+Wcn+awl+iJsiA+IHRzdWNoaWtlaXJvXCA7Civku5jlsZ7nr4AgPiBmdXpva3VzZXRzdVwgOwor5LiA55Wq6baPID4gaWNoaWJhbmRvcmlcIDsKK+e0i+eroOWtpiA+IG1vbnNob3VnYWt1XCA7CivnnJ/lj6rkuK0gPiBtYXR0YWRhbmFrYVwgOwor5Ye65bit6ICFID4gc2h1c3Nla2lzaGFcIDsKK+mWgOWJjeeUuiA+IG1vbnplbm1hY2hpXCA7CivmlZnoqJPnmoQgPiBreW91a3VudGVraVwgOwor6LKv6YeR5bGAID4gY2hva2lua3lva3VcIDsKK+WumOWDmuiHrSA+IGthbnJ5b3VzaHV1XCA7CivouYTpiYTlt6UgPiB0ZWl0ZXRzdWtvdVwgOwor56We57WM5a2mID4gc2hpbmtlaWdha3VcIDsKK+ihqOeOhOmWoiA+IG9tb3RlZ2Vua2FuXCA7Civlh7rlvLXlupcgPiBzaHV0Y2hvdXRlblwgOwor5peF6KGM6Z6EID4gcnlva291a2FiYW5cIDsKK+WMl+OAheadsSA+IGhva3Vob2t1dG91XCA7CivmuJvloanpo58gPiBnZW4nJ2Vuc2hva3VcIDsKK+Wbo+S9k+WuoiA+IGRhbnRhaWt5YWt1XCA7Civlv4PpnIrlraYgPiBzaGlucmVpZ2FrdVwgOwor5aSn5q2j55C0ID4gdGFpc2hvdWdvdG9cIDsKK+asoOWLpOeOhyA+IGtla2tpbnJpdHN1XCA7CivlrprnnYDliaQgPiB0ZWljaGFrdXphaVwgOwor5YWl5aC05paZID4gbnl1dWpvdXJ5b3VcIDsKK+mAkOiqnuiosyA+IGNoaWt1Z295YWt1XCA7CivmgJ3ogIPlipsgPiBzaGlrb3VyeW9rdVwgOwor5Lmz55So54mbID4gbnl1dXlvdWd5dXVcIDsKK+ato+immuWdiiA+IHNob3VnYWt1Ym91XCA7Civnt5Hol7vpoZ4gPiByeW9rdXNvdXJ1aVwgOwor55uu5pKD6ICFID4gbW9rdWdla2lzaGFcIDsKK+m7kuabnOefsyA+IGtva3V5b3VzZWtpXCA7CivmuoDkuIDlubQgPiBtYW4nJ2ljaGluZW5cIDsKK+ayoeaIkeeahCA+IGJvdHN1Z2F0ZWtpXCA7CivlkKvlobXnjocgPiBnYW5qaW5yaXRzdVwgOwor6YCA6IG36ICFID4gdGFpc2hva3VzaGFcIDsKK+iUteWxi+aVtyA+IGt1cmF5YXNoaWtpXCA7Civlho3lu7rnr4kgPiBzYWlrZW5jaGlrdVwgOwor54yu6Lqr55qEID4ga2Vuc2hpbnRla2lcIDsKK+WmqOWus+eJqSA+IGJvdWdhaWJ1dHN1XCA7CivngrnnnLzolqwgPiB0ZW5nYW4nJ3lha3VcIDsKK+WFg+mmluebuCA+IG1vdG9zaHVzaG91XCA7CivmgZDmsLTnl4UgPiBreW91c3VpYnlvdVwgOwor5a+G5aOy5ZOBID4gbWl0c3ViYWloaW5cIDsKK+efs+W3neecjCA+IGlzaGlrYXdha2VuXCA7Civlia/kvJrplbcgPiBmdWt1a2FpY2hvdVwgOwor55m65piO6ICFID4gaGF0c3VtZWlzaGFcIDsKK+WJteS9nOeahCA+IHNvdXNha3V0ZWtpXCA7CivlpKfpgIbnvaogPiB0YWlneWFrdXphaVwgOwor5LiA5YWD55qEID4gaWNoaWdlbnRla2lcIDsKK+eZvumdouebuCA+IGh5YWt1bWVuc291XCA7CivkuI3kvrXnlaUgPiBmdXNoaW5yeWFrdVwgOwor5bCP5a2m55SfID4gc2hvdWdha3VzZWlcIDsKK+S7mOWxnueJqSA+IGZ1em9rdWJ1dHN1XCA7Civli4nlvLfkuK0gPiBiZW5reW91Y2h1dVwgOwor5YaZ55yf5bizID4gc2hhc2hpbmNob3VcIDsKK+S4gOebruaVoyA+IGljaGltb2t1c2FuXCA7CivpoqjlipvoqIggPiBmdXVyeW9rdWtlaVwgOwor5rS755So5b2iID4ga2F0c3V5b3VrZWlcIDsKK+iHquWLleaJiSA+IGppZG91dG9iaXJhXCA7CivkvJrnpL7nq4sgPiBrYWlzaGFyaXRzdVwgOwor6KaL55uu5b2iID4gbWltZWthdGFjaGlcIDsKK+mRkeWIpeaJgCA+IGthbmJldHN1c2hvXCA7Civku67lpZHntIQgPiBrYXJpa2VpeWFrdVwgOwor5qC45ouh5pWjID4ga2FrdWtha3VzYW5cIDsKK+WRqOi+uuWbvSA+IHNodXVoZW5rb2t1XCA7Civlv4XnhLbmgKcgPiBoaXRzdXplbnNlaVwgOwor6buS54yp54ypID4ga3Vyb3Nob3Vqb3VcIDsKK+S4oeabv+WVhiA+IHJ5b3VnYWVzaG91XCA7CivohLHoibLliaQgPiBkYXNzaG9rdXphaVwgOwor5Y+z5b+D5a6kID4gdXNoaW5zaGl0c3VcIDsKK+S4reWkruWPoyA+IGNodXVvdWd1Y2hpXCA7CivnnJ/oj4znl4cgPiBzaGlua2luc2hvdVwgOwor5Zyn5Yqb5rOiID4gYXRzdXJ5b2t1aGFcIDsKK+WFqOWbveeahCA+IHplbmtva3V0ZWtpXCA7CivnuITmoq/lrZAgPiBuYXdhYmFzaGlnb1wgOwor5oiR54mp6aGUID4gd2FnYW1vbm9nYW9cIDsKK+mjn+Wggui7iiA+IHNob2t1ZG91c2hhXCA7CivlloTnn6XorZggPiB6ZW5jaGlzaGlraVwgOwor5LiA5YaG5pytID4gaWNoaWVuc2F0c3VcIDsKK+imluiBtOimmiA+IHNoaWNob3VrYWt1XCA7CivogJDnhrHpi7wgPiB0YWluZXRzdWtvdVwgOwor6Z2p5ZG955qEID4ga2FrdW1laXRla2lcIDsKK+Wwj+S8keatoiA+IHNob3VreXV1c2hpXCA7Civlpb3lj5bntYQgPiBrb3V0b3Jpa3VtaVwgOwor5Y2a5aWV5a6/ID4gYmFrdWNoaXlhZG9cIDsKK+iEs+iyp+ihgCA+IG5vdWhpbmtldHN1XCA7CivmgqrjgIXmiK8gPiB3YXJ1aXRhenVyYVwgOwor5rSX56S85byPID4gc2VucmVpc2hpa2lcIDsKK+eUsumqqOaWhyA+IGtvdWtvdHN1YnVuXCA7Civml6XpioDliLggPiBuaWNoaWdpbmtlblwgOwor6LKn5rCR56qfID4gaGlubWlua3V0c3VcIDsKK+WlieeMrueJqSA+IGhvdWtlbmJ1dHN1XCA7Civlrp/mpa3lrrYgPiBqaXRzdWd5b3VrYVwgOwor6IO4566X55SoID4gbXVuZXphbicneW91XCA7CivlhqzmnKjnq4sgPiBmdXl1a29kYWNoaVwgOwor57WQ57Su57O4ID4ga2Vzc2F0c3VzaGlcIDsKK+mAhuWuo+S8nSA+IGd5YWt1c2VuZGVuXCA7Civprq7ntIXoibIgPiBzZW5rb3VzaG9rdVwgOwor5YWl5Zu956iOID4gbnl1dWtva3V6ZWlcIDsKK+aLoeWkp+mPoSA+IGtha3VkYWlreW91XCA7CivpgZPmpb3ogIUgPiBkb3VyYWt1bW9ub1wgOwor5aWz5oi/5b25ID4gbnlvdWJvdXlha3VcIDsKK+adoee0hOWbvSA+IGpvdXlha3Vrb2t1XCA7Civku6Pmm7/niakgPiBkYWl0YWlidXRzdVwgOwor5re35Yed5ZyfID4ga29ua3VyaXpldG9cIDsKK+a2iOavkuWJpCA+IHNob3Vkb2t1emFpXCA7CivkuIfog73olqwgPiBtYW4nJ25vdXlha3VcIDsKK+S/oeaGkeaApyA+IHNoaW5weW91c2VpXCA7CivliJfkvJ3kvZMgPiByZXRzdWRlbnRhaVwgOwor5Y+j5Y+v56yRID4ga3VjaGlva2FzaGlcIDsKK+Wun+eUn+a0uyA+IGppc3NlaWthdHN1XCA7Civnmb7lp5PlrrYgPiBoeWFrdXNob3V5YVwgOwor5LiA5bGA6YOoID4gaWNoaWt5b2t1YnVcIDsKK+mWk+S4gOmrqiA+IGthbicnaXBwYXRzdVwgOwor5bm05qC85aW9ID4gdG9zaGlrYWtrb3VcIDsKK+mOp+S4gOWFtyA+IHlvcm9paWNoaWd1XCA7CivnlLrkurrniakgPiBjaG91bmlubW9ub1wgOwor6YCa6Kiz5a6YID4gdHN1dXlha3VrYW5cIDsKK+W/heimgeaCqiA+IGhpdHN1eW91YWt1XCA7CivpiYTpgZPntrIgPiB0ZXRzdWRvdW1vdVwgOwor5Y6f55Sj54mpID4gZ2Vuc2FuYnV0c3VcIDsKK+WZqOalveabsiA+IGtpZ2FrdWt5b2t1XCA7Civlv4XopoHmgKcgPiBoaXRzdXlvdXNlaVwgOwor5Y2K6Z2i6K2YID4gaGFubWVuc2hpa2lcIDsKK+WkouW/g+WcsCA+IHl1bWVnb2tvY2hpXCA7Civku4rpgLHkuK0gPiBrb25zaHV1Y2h1dVwgOwor6Kmx5LiL5omLID4gaGFuYXNoaWJldGFcIDsKK+mYsuidleWJpCA+IGJvdXNob2t1emFpXCA7CivlsI/kuZfnmoQgPiBzaG91am91dGVraVwgOwor56uL6ISa54K5ID4gcmlra3lha3V0ZW5cIDsKK+S4jeS/oeWunyA+IGZ1c2hpbmppdHN1XCA7CivkuonlparmiKYgPiBzb3VkYXRzdXNlblwgOwor5ZWG5a2m5aOrID4gc2hvdWdha3VzaGlcIDsKK+S4iuWxi+aVtyA+IGthbWl5YXNoaWtpXCA7Civoi6XlpKflsIYgPiB3YWthZGFpc2hvdVwgOwor5pON6Ii15a6kID4gc291ZGFzaGl0c3VcIDsKK+aIkOS6uuW8jyA+IHNlaWppbnNoaWtpXCA7CivmlrDpnaLnm64gPiBzaGlubWVubW9rdVwgOwor5rOo5paH5pyNID4gY2h1dW1vbmZ1a3VcIDsKK+S4iuajn+W8jyA+IGpvdXRvdXNoaWtpXCA7CivotaTpioXoibIgPiBzaGFrdWRvdWlyb1wgOwor5ZCR5a2m5b+DID4ga291Z2FrdXNoaW5cIDsKK+a4h+acm+iAhSA+IGthdHN1Ym91c2hhXCA7Civmsb3nvLblrqQgPiBraWthbnNoaXRzdVwgOwor5Z+36YGU5ZCPID4gc2hpdHRhdHN1cmlcIDsKK+S5l+W/g+WcsCA+IG5vcmlnb2tvY2hpXCA7CivlvJTnpa3mlpkgPiBjaG91c2FpcnlvdVwgOwor5Yi65oif55qEID4gc2hpZ2VraXRla2lcIDsKK+S4i+aknOWIhiA+IHNoaXRha2VuYnVuXCA7CivplovlgqzlvI8gPiBrYWlzYWlzaGlraVwgOwor55Sw6IiO5aiYID4gaW5ha2FtdXN1bWVcIDsKK+euseeBq+mJoiA+IGhha29oaWJhY2hpXCA7Civlia/pppbnm7ggPiBmdWt1c2h1c2hvdVwgOwor5pW15oS+5b+DID4gdGVraWdhaXNoaW5cIDsKK+mHiOepuua1tyA+IHNoYWt1a3V1a2FpXCA7CivljJfljJfopb8gPiBob2t1aG9rdXNlaVwgOwor57WE57mU56WoID4gc29zaGlraWh5b3VcIDsKK+WHuui6q+iAhSA+IHNodXNzaGluc2hhXCA7Civku5Xkuovph48gPiBzaGlnb3RvcnlvdVwgOwor5Y2K5pyI5b2iID4gaGFuZ2V0c3VrZWlcIDsKK+WIhuWtkOiqrCA+IGJ1bnNoaXNldHN1XCA7CivljYrmnIjlvIEgPiBoYW5nZXRzdWJlblwgOwor5q2j562U546HID4gc2VpdG91cml0c3VcIDsKK+Wto+evgOeahCA+IGtpc2V0c3V0ZWtpXCA7Civljp/lrZDoqqwgPiBnZW5zaGlzZXRzdVwgOwor56We5ZiX56WtID4ga2FuJyduYW1lc2FpXCA7CivmoafoiJ7lj7AgPiBoaW5va2lidXRhaVwgOwor5a++5bGA6ICFID4gdGFpa3lva3VzaGFcIDsKK+iyneauu+mqqCA+IGthaWdhcmFib25lXCA7CivljYPkuKHnrrEgPiBzZW5yeW91YmFrb1wgOwor57SU5Y+O5YWlID4ganVuc2h1dW55dXVcIDsKK+eJqeeQhueahCA+IGJ1dHN1cml0ZWtpXCA7CivmnpfnlKPniakgPiByaW5zYW5idXRzdVwgOwor56qB54S25q27ID4gdG90c3V6ZW5zaGlcIDsKK+iovOWPluazlSA+IHNob3V0b3JpaG91XCA7CivmrbTlj7LnmoQgPiByZWtpc2hpdGVraVwgOwor57WE57mU55qEID4gc29zaGlraXRla2lcIDsKK+i0iOWRiOW8jyA+IHpvdXRlaXNoaWtpXCA7CivnqY3ovInph48gPiBzZWtpc2FpcnlvdVwgOwor6Ieq55m655qEID4gamloYXRzdXRla2lcIDsKK+Wcn+efs+a1gSA+IGRvc2VraXJ5dXVcIDsKK+W4gueUuuadkSA+IHNoaWNob3Vzb25cIDsKK+mjn+WhqeawtCA+IHNob2t1ZW5zdWlcIDsKK+a9pOa7keayuSA+IGp1bmthdHN1eXVcIDsKK+a1geaYn+e+pCA+IHJ5dXVzZWlndW5cIDsKK+Wlkee0hOmHkSA+IGtlaXlha3VraW5cIDsKK+axuuitsOaWhyA+IGtldHN1Z2lidW5cIDsKK+iSuOeVmemFkiA+IGpvdXJ5dXVzaHVcIDsKK+mHneiRieaouSA+IHNoaW4nJ3lvdWp1XCA7CivnjJvli4nlvLcgPiBtb3ViZW5reW91XCA7Civmt7HliLvljJYgPiBzaGlua29rdWthXCA7CivmiYDlvpfpoZQgPiB0b2tvcm9lZ2FvXCA7CivlvqHlrqLmp5ggPiBva3lha3VzYW1hXCA7CivolLXmm7jnpaggPiB6b3VzaG9oeW91XCA7Civkurrlt6Xpm6ogPiBqaW5rb3V5dWtpXCA7CivlkIzohbnku5QgPiBkb3VmdWt1c2hpXCA7CivlsITlgJblv4MgPiBzaGFrb3VzaGluXCA7CivljZrlo6vlj7cgPiBoYWt1c2hpZ291XCA7CivlhaXmvIHogIUgPiBueXV1Z3lvc2hhXCA7CivliKXpmaTmqKkgPiBiZXRzdWpva2VuXCA7CivmiKbpl5jmnI0gPiBzZW50b3VmdWt1XCA7CivppIrpto/mpa0gPiB5b3VrZWlneW91XCA7CivorbDmsbrmqKkgPiBnaWtldHN1a2VuXCA7CivlhaXlnJLmlpkgPiBueXV1ZW5yeW91XCA7CivlhKrlhYjnmoQgPiB5dXVzZW50ZWtpXCA7CivlkIzkuIDoppYgPiBkb3VpdHN1c2hpXCA7Civpm6PooYzpgZMgPiBuYW5neW91ZG91XCA7CivpgbrlpLHlk4EgPiBpc2hpdHN1aGluXCA7Civpo5/mlofljJYgPiBzaG9rdWJ1bmthXCA7CivmsJHkuLvlm70gPiBtaW5zaHVrb2t1XCA7Civlho3luLDnhrEgPiBzYWlraW5ldHN1XCA7Civngq3ljJbniakgPiB0YW5rYWJ1dHN1XCA7Civmlq3niYfnmoQgPiBkYW5wZW50ZWtpXCA7CivmurrmrbvkvZMgPiBkZWtpc2hpdGFpXCA7CivmtbfmtIvlraYgPiBrYWl5b3VnYWt1XCA7Civmra/npZ7ntYwgPiBzaGlzaGlua2VpXCA7Civlj43mipfnmoQgPiBoYW5rb3V0ZWtpXCA7Civplovlgqzlm70gPiBrYWlzYWlrb2t1XCA7CivlvqHkuKHopqogPiBnb3J5b3VzaGluXCA7Civkv67mraPmtrIgPiBzaHV1c2VpZWtpXCA7CivljprnlJ/nnIEgPiBrb3VzZWlzaG91XCA7Civpq5jntJrou4ogPiBrb3VreXV1c2hhXCA7Civou5/mloflraYgPiBuYW5idW5nYWt1XCA7CivoqabkvZzlk4EgPiBzaGlzYWt1aGluXCA7CivoprPopqfmlpkgPiBrYW5yYW5yeW91XCA7CivkuI3kv6Hku7sgPiBmdXNoaW4nJ25pblwgOwor5LiJ6ISa5p62ID4gc2Fua3lha3VrYVwgOwor5aSJ5oWL55qEID4gaGVudGFpdGVraVwgOwor5Lme6auY6KmVID4ga291a291aHlvdVwgOwor5q+b5rCI6IuUID4gbW91c2VuZ29rZVwgOwor5LiJ5bC65bivID4gc2FuamFrdW9iaVwgOwor5b+c5oCl562WID4gb3VreXV1c2FrdVwgOwor5Lq66YGT55qEID4gamluZG91dGVraVwgOwor5rW36YW45ry/ID4gdW1paG9venVraVwgOwor5om/6KqN54q2ID4gc2hvdW5pbmpvdVwgOwor6ZqP562G5a62ID4genVpaGl0c3VrYVwgOwor5qC46J6N5ZCIID4ga2FrdXl1dWdvdVwgOwor5oq96YG45Yi4ID4gY2h1dXNlbmtlblwgOwor5YWN6Kix6Ki8ID4gbWVua3lvc2hvdVwgOwor576O5a656KGTID4gYml5b3VqdXRzdVwgOwor6KOP6LK45bGLID4gdXJhZ2FzaGl5YVwgOwor6Ziy5q+S6Z2iID4gYm91ZG9rdW1lblwgOwor5byB5oW26J+5ID4gYmVua2VpZ2FuaVwgOwor5LqM57ea5byPID4gbmlzZW5zaGlraVwgOwor5b+F6KaB5LqLID4gaGl0c3V5b3VqaVwgOwor55m65piO5a62ID4gaGF0c3VtZWlrYVwgOwor54us6KOB6ICFID4gZG9rdXNhaXNoYVwgOwor55y65pyb5qipID4gY2hvdWJvdWtlblwgOwor5YaF6YCa6ICFID4gbmFpdHN1dXNoYVwgOwor5Lit6ZW35pyfID4gY2h1dWNob3VraVwgOwor54++6LGh6KuWID4gZ2Vuc2hvdXJvblwgOwor6a2U6KGT5birID4gbWFqdXRzdXNoaVwgOwor5Zu95Zyf5bqBID4ga29rdWRvY2hvdVwgOwor56mN5YiG5rOVID4gc2VraWJ1bmhvdVwgOwor5L+h5Y+354GvID4gc2hpbmdvdXRvdVwgOwor5Y2K6Zmw6Zm9ID4gaGFuJydpbicneW91XCA7CivlubPpnaLpj6EgPiBoZWltZW5reW91XCA7CivlroXphY3kvr8gPiB0YWt1aGFpYmluXCA7CivokI7nuK7nl4cgPiBpc2h1a3VzaG91XCA7CivlpKnnm67lsbEgPiB0ZW5tb2t1emFuXCA7CivlgY/lubPotrMgPiBoZW5wZWlzb2t1XCA7Civms5Xlrablo6sgPiBob3VnYWt1c2hpXCA7CivnmbrnhZnnrZIgPiBoYXRzdWVudG91XCA7CivlgbTpoK3okYkgPiBzb2t1dG91eW91XCA7CivlpKnnmofmna8gPiB0ZW4nJ25vdWhhaVwgOwor57Sw6IOe5qC4ID4gc2FpYm91a2FrdVwgOwor54us5pOF5aC0ID4gZG9rdXNlbmpvdVwgOwor6KO96Yu85qWtID4gc2Vpa291Z3lvdVwgOwor5YWJ54ax6LK7ID4ga291bmV0c3VoaVwgOwor5oSb6YO35b+DID4gYWlreW91c2hpblwgOwor55Sf55Sj6auYID4gc2Vpc2FuZGFrYVwgOwor5rW35rC05rW0ID4ga2Fpc3VpeW9rdVwgOwor5Luu57mD5bivID4ga2FyaWhvdXRhaVwgOwor5Y+K56ys6ICFID4ga3l1dWRhaXNoYVwgOwor57Gz6Zm46LuNID4gYmVpcmlrdWd1blwgOwor5rOo5paH5ZOBID4gY2h1dW1vbmhpblwgOwor5oGS5bi455qEID4ga291am91dGVraVwgOwor5Lq65b2i5birID4gbmluZ3lvdXNoaVwgOwor5qa05pWj5by+ID4gcnl1dXNhbmRhblwgOwor55m66Zu75qmfID4gaGF0c3VkZW5raVwgOwor5pen5biC6KGXID4ga3l1dXNoaWdhaVwgOwor6Kaz6Kan5bitID4ga2FucmFuc2VraVwgOwor5a6f55So5YyWID4gaml0c3V5b3VrYVwgOwor6ICD54++5a2mID4ga291Z2VuZ2FrdVwgOwor6ZaL5YKs5LitID4ga2Fpc2FpY2h1dVwgOwor55Sj5qWt55WMID4gc2FuZ3lvdWthaVwgOwor5bq25rCR5YqHID4gc2hvbWluZ2VraVwgOwor5LiN5LuV5pyrID4gZnVzaGltYXRzdVwgOwor5ZGG5rCX6ICFID4gdXRzdWtlbW9ub1wgOwor6Kej5YmW5a2mID4ga2FpYm91Z2FrdVwgOwor5Luu5Z+L6JGsID4ga2FyaW1haXNvdVwgOwor6Yej6YGT5YW3ID4gdHN1cmlkb3VndVwgOwor55Sf55Sj6aGNID4gc2Vpc2FuZ2FrdVwgOwor5oKy5YqH55qEID4gaGlnZWtpdGVraVwgOwor5YyX5rC35rSLID4gaG9wcHlvdXlvdVwgOwor5Y2B5LqM5pyIID4ganV1bmlnYXRzdVwgOwor5ZCM5a2m5bm0ID4gZG91Z2FrdW5lblwgOwor54++5Luj55qEID4gZ2VuZGFpdGVraVwgOwor5aSi5Yik5patID4geXVtZWhhbmRhblwgOwor5bKz5Y+L5LyaID4gZ2FrdXl1dWthaVwgOwor5YuY5a6a5bC7ID4ga2Fuam91amlyaVwgOwor5ZCI5a6/5omAID4gZ2Fzc2h1a3Vqb1wgOwor6KCx5oOR55qEID4ga293YWt1dGVraVwgOwor56m66ZaT6Lu4ID4ga3V1a2FuamlrdVwgOwor5Lit6ZaT5bGkID4gY2h1dWthbnNvdVwgOwor54m557Sa6YWSID4gdG9ra3l1dXNodVwgOwor572y5ZCN5Zu9ID4gc2hvbWVpa29rdVwgOwor5ryU5YqH55qEID4gZW5nZWtpdGVraVwgOwor5Lqk5oim5Zu9ID4ga291c2Vua29rdVwgOwor5aSW5b2i55qEID4gZ2Fpa2VpdGVraVwgOwor5Lit6ZaT5a2QID4gY2h1dWthbnNoaVwgOwor5pW05rWB5a2QID4gc2Vpcnl1dXNoaVwgOwor5YSq5YWI5qCqID4geXV1c2Vua2FidVwgOwor55+t5YW15oClID4gdGFucGVpa3l1dVwgOwor5byB5oW257ieID4gYmVua2VpamltYVwgOwor54mh5Li56ZuqID4gYm90YW4nJ3l1a2lcIDsKK+aWnOagvOaApyA+IHNoYWtha3VzZWlcIDsKK+mrmOinkuegsiA+IGtvdWtha3Vob3VcIDsKK+attOW5tOm9oiA+IHJla2luZW5yZWlcIDsKK+eEoeWIhuWIpSA+IG11ZnVuYmV0c3VcIDsKK+WIuuaIn+aApyA+IHNoaWdla2lzZWlcIDsKK+mAmuihjOeojiA+IHRzdXVrb3V6ZWlcIDsKK+i2heiHqueEtiA+IGNob3VzaGl6ZW5cIDsKK+WJiuawt+apnyA+IHNha3VoeW91a2lcIDsKK+Wlkee0hOiAhSA+IGtlaXlha3VzaGFcIDsKK+WknOebl+iZqyA+IHlvdG91bXVzaGlcIDsKK+WuieWFqOeOhyA+IGFuemVucml0c3VcIDsKK+WOn+WtkOeXhyA+IGdlbnNoaXNob3VcIDsKK+WOn+WtkOeXhSA+IGdlbnNoaWJ5b3VcIDsKK+Wto+evgOaEnyA+IGtpc2V0c3VrYW5cIDsKK+aXp+WLmOWumiA+IGt5dXVrYW5qb3VcIDsKK+S7ruiqv+WNsCA+IGthcmljaG91aW5cIDsKK+S5l+i7iuizgyA+IGpvdXNoYWNoaW5cIDsKK+mYsuiZq+WJpCA+IGJvdWNodXV6YWlcIDsKK+aguOaIpuS6iSA+IGtha3VzZW5zb3VcIDsKK+eZuuWjsuaXpSA+IGhhdHN1YmFpYmlcIDsKK+Wumui2s+aVsCA+IHRlaXNva3VzdXVcIDsKK+mHjOelnualvSA+IHNhdG9rYWd1cmFcIDsKK+iWqeaRqeiKiyA+IHNhdHN1bWFpbW9cIDsKK+WnpumAmue9qiA+IGthbnRzdXV6YWlcIDsKK+Wxseael+WtpiA+IHNhbnJpbmdha3VcIDsKK+WJr+itsOmVtyA+IGZ1a3VnaWNob3VcIDsKK+iIquepuueXhSA+IGtvdWt1dWJ5b3VcIDsKK+a8oui2iumfsyA+IGthbicnZXRzdW9uXCA7Civlh7rlhaXlj6MgPiBkZWlyaWd1Y2hpXCA7Civku67ntI3nqI4gPiBrYXJpbm91emVpXCA7Civnt4/lkIjnmoQgPiBzb3Vnb3V0ZWtpXCA7Civku7Loo4HogIUgPiBjaHV1c2Fpc2hhXCA7Civlh7rlsZXogIUgPiBzaHV0dGVuc2hhXCA7CivmtLvlrZfkvZMgPiBrYXRzdWppdGFpXCA7CivogpjpiYTnoLIgPiBoaWppZGVwcG91XCA7Civlr77ouaDlnLAgPiB0YWlzZWtpY2hpXCA7Civlu7vmvJXmpa0gPiBrYWlzb3VneW91XCA7CivkvY7pmpznoo0gPiB0ZWlzaG91Z2FpXCA7CivmrovkvZnpoY0gPiB6YW4nJ3lvZ2FrdVwgOwor5rK755mC5rOVID4gY2hpcnlvdWhvdVwgOwor5qmf5qKw5rK5ID4ga2lrYWlhYnVyYVwgOwor6Ieq55m65oCnID4gamloYXRzdXNlaVwgOwor5L+h5Y+35omLID4gc2hpbmdvdXNodVwgOwor5qCD5pyo55yMID4gdG9jaGlnaWtlblwgOwor6Kq/5p+756WoID4gY2hvdXNhaHlvdVwgOwor57eo5bm05Y+yID4gaGVuJyduZW5zaGlcIDsKK+Wcn+edgOawkSA+IGRvY2hha3VtaW5cIDsKK+mAsuWRiOacrCA+IHNoaW50ZWlib25cIDsKK+eRnuWuneeroCA+IHp1aWhvdXNob3VcIDsKK+iQvemBuOiAhSA+IHJha3VzZW5zaGFcIDsKK+WGheWLmOWumiA+IHVjaGlrYW5qb3VcIDsKK+Wliee0jemhjSA+IGhvdW5vdWdha3VcIDsKK+e0sOiDnuWtpiA+IHNhaWJvdWdha3VcIDsKK+aenOWun+W6lyA+IGthaml0c3V0ZW5cIDsKK+Wun+aZgumWkyA+IGppdHN1amlrYW5cIDsKK+WFpea8geaoqSA+IG55dXVneW9rZW5cIDsKK+iRl+S9nOiAhSA+IGNob3Nha3VzaGFcIDsKK+iEseiEguS5syA+IGRhc3NoaW55dXVcIDsKK+elreelgOaWmSA+IHNhaXNoaXJ5b3VcIDsKK+WGheW8geaFtiA+IHVjaGliZW5rZWlcIDsKK+WQkeS4iuW/gyA+IGtvdWpvdXNoaW5cIDsKK+eJp+e+iuiAhSA+IGJva3V5b3VzaGFcIDsKK+WPguims+S6uiA+IHNhbmthbicnbmluXCA7CivlnYfkuIDljJYgPiBraW4nJ2l0c3VrYVwgOwor5YWx5ZCM6ICFID4ga3lvdWRvdXNoYVwgOwor5piO5pyd5L2TID4gbWluY2hvdXRhaVwgOwor5aGp6IOh5qSSID4gc2hpb2tvc2hvdVwgOwor6ICQ6ZyH5oCnID4gdGFpc2hpbnNlaVwgOwor5paw6KW/6JitID4gbnnFq2rEq3JhbmRvXCA7CivkuIDmnprosp0gPiBpY2hpbWFpZ2FpXCA7CivkubHmmrTogIUgPiByYW5ib3Vtb25vXCA7CivlkITkuIDpg6ggPiBrYWt1aWNoaWJ1XCA7CivpmbDml6XlkJEgPiBrYWdlaGluYXRhXCA7CivntKvlrrjmrr8gPiBzaGlzaGluZGVuXCA7Civlub3pnIrmoKogPiB5dXVyZWlrYWJ1XCA7CivmiYDlvpfogIUgPiBzaG90b2t1c2hhXCA7Civou43kuovlipsgPiBndW5qaXJ5b2t1XCA7Civli53osqDkuosgPiBzaG91YnVnb3RvXCA7CivntabmsLTou4ogPiBreXV1c3Vpc2hhXCA7CivntLDog57lo4EgPiBzYWlib3VoZWtpXCA7Civlj6/pgIbmgKcgPiBrYWd5YWt1c2VpXCA7Civmh7jos57ph5EgPiBrZW5zaG91a2luXCA7CivmmqblubTpvaIgPiByZWtpbmVucmVpXCA7CivlkKvll73olqwgPiBnYW5zb3V5YWt1XCA7CivopovlrabogIUgPiBrZW5nYWt1c2hhXCA7CivlhKrlhYjluK0gPiB5dXVzZW5zZWtpXCA7CivlsJHmlbDogIUgPiBzaG91c3V1c2hhXCA7CivlhbHlkIznt5ogPiBreW91ZG91c2VuXCA7Civlj4rnrKzngrkgPiBreXV1ZGFpdGVuXCA7CivliIbpoZ7ooaggPiBidW5ydWloeW91XCA7Civov5HnnLzpj6EgPiBraW5nYW5reW91XCA7CivplqLmlbDml48gPiBrYW5zdXV6b2t1XCA7CivnlLrmnZHliLYgPiBjaG91c29uc2VpXCA7CivmpbXmgqrkurogPiBnb2t1YWt1bmluXCA7CivlvJXlj5fkurogPiBoaWtpdWtlbmluXCA7Civnt6jlubTkvZMgPiBoZW4nJ25lbnRhaVwgOwor5Luj6aGY5Lq6ID4gZGFpZ2FuJyduaW5cIDsKK+acieWKm+mmrCA+IHl1dXJ5b2t1YmFcIDsKK+mZpOmbqui7iiA+IGpvc2V0c3VzaGFcIDsKK+Wkp+WvqemZoiA+IGRhaXNoaW4nJ2luXCA7CivnqI7plqLplbcgPiB6ZWlrYW5jaG91XCA7CivkuK3plpPkvZMgPiBjaHV1a2FudGFpXCA7Civmu4vppIrniakgPiBqaXlvdWJ1dHN1XCA7CivkuZ3lt6XlpKcgPiBreXV1a291ZGFpXCA7CivliqDmub/lmaggPiBrYXNoaXRzdWtpXCA7CivmlrDoqILniYggPiBzaGludGVpYmFuXCA7CivljYHkurrlipsgPiBqdXVuaW5yaWtpXCA7CivkuIvlrr/kurogPiBnZXNodWt1bmluXCA7CivlpKfmpa3niakgPiBvb3dhemFtb25vXCA7CivlgbTpnaLoprMgPiBzb2t1bWVua2FuXCA7Civnj77osaHnlYwgPiBnZW5zaG91a2FpXCA7Civov73oqabpqJMgPiB0c3Vpc2hpa2VuXCA7CivlhYjlpKnnmoQgPiBzZW50ZW50ZWtpXCA7Civlu7rnr4nlrrYgPiBrZW5jaGlrdWthXCA7CivmsLTph4/oqIggPiBzdWlyeW91a2VpXCA7CivopqrooZvpmoogPiBzaGluJydlaXRhaVwgOwor5YWI5aSp55eFID4gc2VudGVuYnlvdVwgOwor57mB5q6W5pyfID4gaGFuc2hva3VraVwgOwor6Ii55bm96ZyKID4gZnVuYXl1dXJlaVwgOwor5rCR5peP5oCnID4gbWluem9rdXNlaVwgOwor5b6h5LqG5om/ID4gZ29yeW91c2hvdVwgOwor5rC06JuH5bqnID4gbWl6dWhlYml6YVwgOwor5oud5aSW55qEID4gaGFpZ2FpdGVraVwgOwor5Yi65oif5YmkID4gc2hpZ2VraXphaVwgOwor5omA5b6X56iOID4gc2hvdG9rdXplaVwgOwor5qOJ5a6f5rK5ID4gbWVuaml0c3V5dVwgOwor5Yuk57aa6ICFID4ga2luem9rdXNoYVwgOwor5aSp55qH5Yi2ID4gdGVuJydub3VzZWlcIDsKK+WWq+eFmei7iiA+IGtpdHN1ZW5zaGFcIDsKK+Wun+e/kueUnyA+IGppc3NodXVzZWlcIDsKK+S9k+ezu+eahCA+IHRhaWtlaXRla2lcIDsKK+mBiuiIiOeojiA+IHl1dWt5b3V6ZWlcIDsKK+S/rumBk+WjqyA+IHNodXVkb3VzaGlcIDsKK+aWsOaVmeW+kiA+IHNoaW5reW91dG9cIDsKK+WNmuimp+S8miA+IGhha3VyYW5rYWlcIDsKK+WJjeeZu+mMsiA+IHplbnRvdXJva3VcIDsKK+adsea0i+WtpiA+IHRvdXlvdWdha3VcIDsKK+Wkp+Wwhui7jSA+IGRhaXNob3VndW5cIDsKK+S/oeWPt+WhlCA+IHNoaW5nb3V0b3VcIDsKK+WOn+WtkOaguCA+IGdlbnNoaWtha3VcIDsKK+Wkp+WFrOWbvSA+IHRhaWtvdWtva3VcIDsKK+S8keaBr+aJgCA+IGt5dXVzb2t1am9cIDsKK+mrmOmanOWusyA+IGtvdXNob3VnYWlcIDsKK+axgumBk+iAhSA+IGt5dXVkb3VzaGFcIDsKK+WkqeWuiOmWoyA+IHRlbnNodWtha3VcIDsKK+S5vueJqeWxiyA+IGthbmJ1dHN1eWFcIDsKK+awtOmJhOegsiA+IG1penVkZXBwb3VcIDsKK+WNg+S4ieWxiyA+IHNlbm1pdHN1eWFcIDsKK+WFpea4r+eojiA+IG55dXVrb3V6ZWlcIDsKK+mKgOihjOalrSA+IGdpbmtvdWd5b3VcIDsKK+S8keaziuaJgCA+IGt5dXVoYWt1am9cIDsKK+S6uuW3peeahCA+IGppbmtvdXRla2lcIDsKK+iBtOimluiAhSA+IGNob3VzaGlzaGFcIDsKK+S4oeWbveiqniA+IHJ5b3Vrb2t1Z29cIDsKK+mrmOeArOiInyA+IHRha2FzZWJ1bmVcIDsKK+e1hOe5lOWQjSA+IHNvc2hpa2ltZWlcIDsKK+WQjOacn+W8jyA+IGRvdWtpc2hpa2lcIDsKK+Wkp+iFuOiPjCA+IGRhaWNob3VraW5cIDsKK+WNiueLguS5sSA+IGhhbmt5b3VyYW5cIDsKK+i0heayouWTgSA+IHplaXRha3VoaW5cIDsKK+S4gOacrOmBkyA+IGlwcG9ubWljaGlcIDsKK+WIqea9pOeOhyA+IHJpanVucml0c3VcIDsKK+i/q+Wus+iAhSA+IGhha3VnYWlzaGFcIDsKK+Wkp+alteauvyA+IGRhaWdva3VkZW5cIDsKK+mHjemHj+aEnyA+IGp1dXJ5b3VrYW5cIDsKK+e+juWtpueahCA+IGJpZ2FrdXRla2lcIDsKK+WGmeeUn+W4syA+IHNoYXNlaWNob3VcIDsKK+W7g+ajhOeJqSA+IGhhaWtpYnV0c3VcIDsKK+mbu+ejgeefsyA+IGRlbmppc2hha3VcIDsKK+WGmeeUn+W4liA+IHNoYXNlaWNob3VcIDsKK+mAoOWWtueJqSA+IHpvdWVpYnV0c3VcIDsKK+aKgOihk+mdoiA+IGdpanV0c3VtZW5cIDsKK+S7lee9ruiAhSA+IHNoaW9raW1vbm9cIDsKK+aZguWIu+ihqCA+IGppa29rdWh5b3VcIDsKK+avkuenkeWtpiA+IGRva3VrYWdha3VcIDsKK+ebtOihjOS+vyA+IGNob2trb3ViaW5cIDsKK+aJi+WGheiBtyA+IHRlbmFpc2hva3VcIDsKK+aXheihjOWFiCA+IHJ5b2tvdXNha2lcIDsKK+aguOW8vumgrSA+IGtha3VkYW50b3VcIDsKK+epuumbhuWQiCA+IGt1dXNodXVnb3VcIDsKK+eJueioseaWmSA+IHRva2t5b3J5b3VcIDsKK+S4u+aDheeahCA+IHNodWpvdXRla2lcIDsKK+abtOiho+WupCA+IGtvdWlzaGl0c3VcIDsKK+S8muW4reiGsyA+IGthaXNla2l6ZW5cIDsKK+WNg+S4gOWknCA+IHNlbicnaWNoaXlhXCA7CivnnJ/nlLDntJAgPiBzYW5hZGFoaW1vXCA7CivpgZPlrabogIUgPiBkb3VnYWt1c2hhXCA7Civmj67nmbrmgKcgPiBraWhhdHN1c2VpXCA7Civlh7ros4fph5EgPiBzaHVzc2hpa2luXCA7CivniafnvorniqwgPiBib2t1eW91a2VuXCA7CivokrjnlZnmsLQgPiBqb3VyeXV1c3VpXCA7CivnrYnlnKfnt5ogPiB0b3VhdHN1c2VuXCA7Civmr5LlkbPlvbkgPiBkb2t1bWl5YWt1XCA7CivlhKroia/lupcgPiB5dXVyeW91dGVuXCA7CivlhoXoirjogIUgPiB1Y2hpZ2Vpc2hhXCA7CivmgqrpgZTogIUgPiB3YXJ1ZGFzc2hhXCA7CivkuInpnaLpj6EgPiBzYW5tZW5reW91XCA7Civni7jolY7puqYgPiB0YW51a2lzb2JhXCA7Civoo4/mm7jkurogPiB1cmFnYWtpbmluXCA7CivnibnlpKflj7cgPiB0b2t1ZGFpZ291XCA7CivntYTnuZTkvZMgPiBzb3NoaWtpdGFpXCA7Civnj77lrp/ljJYgPiBnZW5qaXRzdWthXCA7CivlpJrnm67nmoQgPiB0YW1va3V0ZWtpXCA7CivlsIbmnaXmgKcgPiBzaG91cmFpc2VpXCA7CivkuIDkurrohbkgPiBoaXRvcmliYXJhXCA7CivnlLvkuIDljJYgPiBrYWt1aXRzdWthXCA7Civph43ph5HlsZ4gPiBqdXVraW56b2t1XCA7Civnq4vkvJrkurogPiB0YWNoaWFpbmluXCA7CivmrbTlj7LkuIogPiByZWtpc2hpam91XCA7Civoo73piYTmiYAgPiBzZWl0ZXRzdWpvXCA7CivkuIDkurrogIUgPiBoaXRvcmltb25vXCA7Civpga7mlq3lo4EgPiBzaGFkYW5wZWtpXCA7Civnibnlo7LloLQgPiB0b2t1YmFpam91XCA7CivlkYrnn6Xmnb8gPiBrb2t1Y2hpYmFuXCA7CivmspbnqY3mnJ8gPiBjaHV1c2VraWtpXCA7Civku67oqJjlhaUgPiBrYXJpa2lueXV1XCA7Civkv67pgZPkvJogPiBzaHV1ZG91a2FpXCA7CivmoZ/moq/lrZAgPiBzYW5iYXNoaWdvXCA7Civnlarlj7fmnK0gPiBiYW5nb3VmdWRhXCA7CivlsJHmlbDngrkgPiBzaG91c3V1dGVuXCA7CivlsbHnjKvluqcgPiB5YW1hbmVrb3phXCA7Civlr53lj7DliLggPiBzaGluZGFpa2VuXCA7CivmsLTpioDmn7EgPiBzdWlnaW5jaHV1XCA7CivotaTmtbfkuoAgPiBha2F1bWlnYW1lXCA7Civpqqjnm7jlraYgPiBrb3Nzb3VnYWt1XCA7CivlpKfoh7zmra8gPiBkYWlreXV1c2hpXCA7CivmsJHml4/lj7IgPiBtaW56b2t1c2hpXCA7CivkupTnqJzpg60gPiBnb3J5b3VrYWt1XCA7CivmiYHlubPotrMgPiBoZW5wZWlzb2t1XCA7CivlpZHntITmm7ggPiBrZWl5YWt1c2hvXCA7CivlvbHms5XluKsgPiBrYWdlYm91c2hpXCA7Civph5HliZvnn7MgPiBrb25nb3VzZWtpXCA7CivnibnoqLHluoEgPiB0b2treW9jaG91XCA7Civnibnlo7Llk4EgPiB0b2t1YmFpaGluXCA7CivkuIvoq4vosqAgPiBzaGl0YXVrZW9pXCA7Civlj47nqavmnJ8gPiBzaHV1a2FrdWtpXCA7CivpmbjmiKbpmoogPiByaWt1c2VudGFpXCA7CivntabmsLTnrqEgPiBreXV1c3Vpa2FuXCA7CivnpZ7np5jnmoQgPiBzaGlucGl0ZWtpXCA7Civph43ph4/lmbggPiBqdXVyeW91dG9uXCA7Civlj47nqavmmYIgPiBzaHV1a2FrdWppXCA7Civpq5jlnKfnuK4gPiBrb3Vhc3NodWt1XCA7CivokZfkvZzmqKkgPiBjaG9zYWt1a2VuXCA7Civku6Pln7fooYwgPiBkYWlzaGlra291XCA7CivpmZDlrprnmoQgPiBnZW50ZWl0ZWtpXCA7Civpq5jlnKfnt5ogPiBrb3VhdHN1c2VuXCA7Civku67mjqHnlKggPiBrYXJpc2FpeW91XCA7CivmlLnpnanogIUgPiBrYWlrYWt1c2hhXCA7CivlnLDkuIvpiYQgPiBjaGlrYXRldHN1XCA7CivlsIrnjovlhZogPiBzb24nJ25vdXRvdVwgOwor5Zar54WZ6ICFID4ga2l0c3VlbnNoYVwgOwor5Zyf5L+16ZqbID4gZG9oeW91Z2l3YVwgOwor5aSn5bGx54yrID4gb295YW1hbmVrb1wgOwor6Iiq56m65a2mID4ga291a3V1Z2FrdVwgOwor5Y6f5p2Q5paZID4gZ2VuemFpcnlvdVwgOwor5Ye655Sj5pWwID4gc2h1c3NhbnN1dVwgOwor5qyE5Y+C54WnID4gcmFuc2Fuc2hvdVwgOwor5Ye655Sf5pWwID4gc2h1c3NlaXN1dVwgOwor5a6I5YKZ546HID4gc2h1YmlyaXRzdVwgOwor5paH6Iq45a2mID4gYnVuZ2VpZ2FrdVwgOwor57SF5Yag6bOlID4ga291a2FuY2hvdVwgOwor5Yid5aC05omAID4gaGF0c3ViYXNob1wgOwor5Lmz54q25rayID4gbnl1dWpvdWVraVwgOwor5Y2Y5Z2Q5byPID4gdGFuemFzaGlraVwgOwor5Zyo55WZ5rCRID4gemFpcnl1dW1pblwgOwor576O6aGU6KGTID4gYmlnYW5qdXRzdVwgOwor54Wu5rK45ZmoID4gc2hhZnV0c3VraVwgOwor5YSq6Imv5ZOBID4geXV1cnlvdWhpblwgOwor5oim6KGT5a62ID4gc2VuanV0c3VrYVwgOwor5LuV5LqL5birID4gc2hpZ290b3NoaVwgOwor54Sh55Sf54mpID4gbXVzZWlidXRzdVwgOwor6ZuR5paH5a62ID4gemF0c3VidW5rYVwgOwor5ZCM6Kq/6ICFID4gZG91Y2hvdXNoYVwgOwor5LqI57SE5bitID4geW95YWt1c2VraVwgOwor6YeR55+z5paHID4ga2luc2VraWJ1blwgOwor57e057+S6Ii5ID4gcmVuc2h1dXNlblwgOwor5ris5rex5qmfID4gc29rdXNoaW5raVwgOwor55m66KaL5paZID4gaGFra2VucnlvdVwgOwor6KGS5a2m6ICFID4gZ2VuZ2FrdXNoYVwgOwor5bCP5pWw54K5ID4gc2hvdXN1dXRlblwgOwor5byV5Ye654mpID4gaGlraWRlbW9ub1wgOwor6ZaL5p625byPID4ga2Fpa2FzaGlraVwgOwor5YyF5ZCr55qEID4gaG91Z2FudGVraVwgOwor5ZCI5aWP6Kq/ID4gZ2Fzc291Y2hvdVwgOwor5YWx5ZKM5Zu9ID4ga3lvdXdha29rdVwgOwor5a+p5Yik5ZOhID4gc2hpbnBhbicnaW5cIDsKK+a4heacneS9kyA+IHNlaWNob3V0YWlcIDsKK+ihqOaXpeacrCA+IG9tb3Rlbmlob25cIDsKK+ePvuS7o+WKhyA+IGdlbmRhaWdla2lcIDsKK+WNs+WKueiWrCA+IHNva2tvdXlha3VcIDsKK+aXpemBi+WLlSA+IG5pY2hpdW5kb3VcIDsKK+iBt+majuWItiA+IHNob2trYWlzZWlcIDsKK+WJjei7iui7uCA+IHplbnNoYWppa3VcIDsKK+S4iuaYh+e3miA+IGpvdXNob3VzZW5cIDsKK+apn+WvhuaApyA+IGtpbWl0c3VzZWlcIDsKK+aYjue0sOihqCA+IG1laXNhaWh5b3VcIDsKK+S/rui+nuWtpiA+IHNodXVqaWdha3VcIDsKK+WQjeiqieiBtyA+IG1laXlvc2hva3VcIDsKK+Wbm+WkqeeOiyA+IHNoaXRlbicnbm91XCA7Civkurrnm7jlraYgPiBuaW5zb3VnYWt1XCA7Civmjojmpa3mlpkgPiBqdWd5b3VyeW91XCA7CivpiZvkuK3mr5IgPiBlbmNodXVkb2t1XCA7CivmsrvnmYLku6MgPiBjaGlyeW91ZGFpXCA7CivluK/pu4ToibIgPiB0YWlvdXNob2t1XCA7Civotbflt6XlvI8gPiBraWtvdXNoaWtpXCA7Civlj5blvpfogIUgPiBzaHV0b2t1c2hhXCA7CivmgqrlubPnrYkgPiBha3VieW91ZG91XCA7CivmnLHlrZDlraYgPiBzaHVzaGlnYWt1XCA7Civou73ph5HlsZ4gPiBrZWlraW56b2t1XCA7CivlgaXohJrlrrYgPiBrZW5reWFrdWthXCA7CivlhYjopprogIUgPiBzZW5rYWt1c2hhXCA7CivkuI3mlbTohIggPiBmdXNlaW15YWt1XCA7Civku7LplpPlhoUgPiBuYWthbWF1Y2hpXCA7CivlsIbmnaXlg48gPiBzaG91cmFpem91XCA7CivkvY7mlZnkvJogPiB0ZWlreW91a2FpXCA7CivmgKfooZ3li5UgPiBzZWlzaG91ZG91XCA7CivntJnoip3lsYUgPiBrYW1pc2hpYmFpXCA7CivkvZzmiJDogIUgPiBzYWt1c2Vpc2hhXCA7Civlm57mmKXliaQgPiBrYWlzaHVuemFpXCA7Civmtojosrvph48gPiBzaG91aGlyeW91XCA7CivkuKboo73lk4EgPiBuYW1pc2VpaGluXCA7CivlsILmnInmqKkgPiBzZW4nJ3l1dWtlblwgOwor5LmX6aas6Z20ID4gam91YmFndXRzdVwgOwor5Ye66LOH6ICFID4gc2h1c3NoaXNoYVwgOwor5YyW55+z5a2mID4ga2FzZWtpZ2FrdVwgOwor6IG06Ki65ZmoID4gY2hvdXNoaW5raVwgOwor54yp54yp6KCFID4gc2hvdWpvdWJhZVwgOwor5Lmx5pWw6KGoID4gcmFuc3V1aHlvdVwgOwor5Z+L56uL5ZywID4gdW1ldGF0ZWNoaVwgOwor5YWx5ZCM5oCnID4ga3lvdWRvdXNlaVwgOwor54af57e06ICFID4ganVrdXJlbnNoYVwgOwor5p2x5YyX5p2xID4gdG91aG9rdXRvdVwgOwor55Sf5L2T6IacID4gc2VpdGFpbWFrdVwgOwor5rCR6KGG6aeFID4gbWluc2h1dWVraVwgOwor5a6H5a6Z6aOfID4gdWNodXVzaG9rdVwgOwor5pel5YWJ5rW0ID4gbmlra291eW9rdVwgOwor5Luj5pWw5a2mID4gZGFpc3V1Z2FrdVwgOwor6IO95b256ICFID4gbm91eWFrdXNoYVwgOwor5rKW56mN5ZyfID4gY2h1dXNla2lkb1wgOwor5byV5Yqb5ZyPID4gaW5yeW9rdWtlblwgOwor5Lit5oqY5bi9ID4gbmFrYW9yZWJvdVwgOwor6Z2e5rS75YuVID4gaGlrYXRzdWRvdVwgOwor5LiN5aeL5pyrID4gZnVzaGltYXRzdVwgOwor5pyJ5Yqf56ugID4geXV1a291c2hvdVwgOwor5oqV56Wo6ICFID4gdG91aHlvdXNoYVwgOwor5pS75pKD6ZqKID4ga291Z2VraXRhaVwgOwor5aCx5ZGK6ICFID4gaG91a29rdXNoYVwgOwor55m66KGo6ICFID4gaGFwcHlvdXNoYVwgOwor5oOj566h6aCYID4gc291a2FucnlvdVwgOwor6YG45oqe6IKiID4gc2VudGFrdXNoaVwgOwor5oqA6KGT6ICFID4gZ2lqdXRzdXNoYVwgOwor6YCy5q2p55qEID4gc2hpbnBvdGVraVwgOwor5Z+L6JS16YePID4gbWFpem91cnlvdVwgOwor5LuV5LqL5Y+wID4gc2hpZ290b2RhaVwgOwor5oCn5oiQ54afID4gc2Vpc2VpanVrdVwgOwor5rC45bm06ZaTID4gbmFnYW5lbmthblwgOwor6IOM5pWZ6ICFID4gaGFpa3lvdXNoYVwgOwor5omL5bel5qWtID4gc2h1a291Z3lvdVwgOwor55Sz6KuL6ICFID4gc2hpbnNlaXNoYVwgOwor5ryU5Ye65a62ID4gZW5zaHV0c3VrYVwgOwor5LiA5a6J5b+DID4gaGl0b2Fuc2hpblwgOwor6KGM5qW95ZywID4ga291cmFrdWNoaVwgOwor6aOf566h5rOVID4gc2hva2thbmhvdVwgOwor6Kaz5ris6Ii5ID4ga2Fuc29rdXNlblwgOwor56u25ZCI6ICFID4ga3lvdWdvdXNoYVwgOwor5YGl6ISz5YmkID4ga2VuJydub3V6YWlcIDsKK+mHkeWJm+adliA+IGtvbmdvdWR6dWVcIDsKK+isneiCieelrSA+IHNoYW5pa3VzYWlcIDsKK+ikh+WGmee0mSA+IGZ1a3VzaGFzaGlcIDsKK+mAseWIiuiqjCA+IHNodXVrYW5zaGlcIDsKK+WPjueojuaJgCA+IHNodXV6ZWlzaG9cIDsKK+mAmuihjOS6uiA+IHRzdXVrb3VuaW5cIDsKK+mRkeWumuaWmSA+IGthbnRlaXJ5b3VcIDsKK+WQjOS4gOS6uiA+IGRvdWl0c3VuaW5cIDsKK+mrmOa9rue3miA+IGtvdWNob3VzZW5cIDsKK+a1uOmAj+aApyA+IHNoaW50b3VzZWlcIDsKK+ihgOiJsue0oCA+IGtlc3NoaWtpc29cIDsKK+iEs+mch+ebqiA+IG5vdXNoaW50b3VcIDsKK+izg+iyuOS6uiA+IGNoaW50YWluaW5cIDsKK+WHuueUn+WcsCA+IHNodXNzZWljaGlcIDsKK+e3tOe/kueUnyA+IHJlbnNodXVzZWlcIDsKK+W6p+W4reihqCA+IHphc2VraWh5b3VcIDsKK+ims+a4rOiAhSA+IGthbnNva3VzaGFcIDsKK+WcsOeNhOiAsyA+IGppZ29rdW1pbWlcIDsKK+mrmOe0muWTgSA+IGtvdWt5dXVoaW5cIDsKK+mBoOaXpeeCuSA+IGVuaml0c3V0ZW5cIDsKK+a8ouWtpuiAhSA+IGthbmdha3VzaGFcIDsKK+eJp+WgtOmzpSA+IG1ha2liYXRvcmlcIDsKK+atu+WIkeWbmiA+IHNoaWtlaXNodXVcIDsKK+awt+egguezliA+IGtvb3JpemF0b3VcIDsKK+WFseiRl+iAhSA+IGt5b3VjaG9zaGFcIDsKK+mqqOmrhOeCjiA+IGtvdHN1enVpZW5cIDsKK+aUvueJp+WcsCA+IGhvdWJva3VjaGlcIDsKK+eZveihgOeQgyA+IGhha2tla2t5dXVcIDsKK+a6tuWyqea1gSA+IHlvdWdhbnJ5dXVcIDsKK+atu+WCt+iAhSA+IHNoaXNob3VzaGFcIDsKK+W8j+mDqOWumCA+IHNoaWtpYnVrYW5cIDsKK+iEhuW8seaApyA+IHplaWpha3VzZWlcIDsKK+e1puawtOagkyA+IGt5dXVzdWlzZW5cIDsKK+ims+a4rOe2siA+IGthbnNva3Vtb3VcIDsKK+aApeihjOWIuCA+IGt5dXVrb3VrZW5cIDsKK+W+oemereaSuyA+IGdvYmVudGF0c3VcIDsKK+e3keWNgeWtlyA+IHJ5b2t1anV1amlcIDsKK+a1gee3muW9oiA+IHJ5dXVzZW5rZWlcIDsKK+WOn+Wni+eahCA+IGdlbnNoaXRla2lcIDsKK+eJp+e+iuWcsCA+IGJva3V5b3VjaGlcIDsKK+WfvOeOieecjCA+IHNhaXRhbWFrZW5cIDsKK+aUu+aSg+i7jSA+IGtvdWdla2lndW5cIDsKK+aVteiJpumaiiA+IHRla2lrYW50YWlcIDsKK+mjn+WZqOajmiA+IHNob2traWRhbmFcIDsKK+S8nemAgeWFiCA+IGRlbnNvdXNha2lcIDsKK+eosuiNt+muqCA+IGluYXJpenVzaGlcIDsKK+W+qeiqv+WZqCA+IGZ1a3VjaG91a2lcIDsKK+Wkp+eXheS6uiA+IGRhaWJ5b3VuaW5cIDsKK+WFseWKtOiAhSA+IGt5b3Vyb3VzaGFcIDsKK+eXheWOn+iPjCA+IGJ5b3VnZW5raW5cIDsKK+acnemuruS6uiA+IGNob3VzZW5qaW5cIDsKK+WEqui2iuaoqSA+IHl1dWV0c3VrZW5cIDsKK+S4gOS6uuaXhSA+IGhpdG9yaXRhYmlcIDsKK+aWh+WtpuirliA+IGJ1bmdha3Vyb25cIDsKK+iCieaEn+eahCA+IG5pa2thbnRla2lcIDsKK+aApeihjOS+vyA+IGt5dXVrb3ViaW5cIDsKK+eUsuS5meS4mSA+IGtvdW90c3VoZWlcIDsKK+S4reazoumVtyA+IGNodXVoYWNob3VcIDsKK+eEoeiBt+iAhSA+IG11c2hva3VzaGFcIDsKK+WPjueojuWumCA+IHNodXV6ZWlrYW5cIDsKK+WtpumDqOmVtyA+IGdha3VidWNob3VcIDsKK+i2heagvOWtkCA+IGNob3Vrb3VzaGlcIDsKK+mXiuiRieaouSA+IGthdHN1eW91anVcIDsKK+WFsemztOiAhSA+IGt5b3VtZWlzaGFcIDsKK+eEoeS9k+eJqSA+IG11dGFpYnV0c3VcIDsKK+a1ruawl+WlsyA+IHV3YWtpb24nJ25hXCA7Civnmbvnq5zploAgPiB0b3VyeXV1bW9uXCA7CivkuIDnvqnnmoQgPiBpY2hpZ2l0ZWtpXCA7CivnrKzkuIDmnaEgPiBkYWlpY2hpam91XCA7CivlhoXnlKjolqwgPiBuYWl5b3V5YWt1XCA7CivluqfmqJnou7ggPiB6YWh5b3VqaWt1XCA7CivnrZbmupDlnLAgPiBzYWt1Z2VuY2hpXCA7CivlhKrnlJ/lraYgPiB5dXVzZWlnYWt1XCA7CivliIbpmorplbcgPiBidW50YWljaG91XCA7CivliY3lgJ/ph5EgPiB6ZW5zaGFra2luXCA7Civku7Loo4HkurogPiBjaHV1c2FpbmluXCA7CivotaTpgZPnpa0gPiBzZWtpZG91c2FpXCA7CivmnbHljJflpKcgPiB0b3Vob2t1ZGFpXCA7Civlrp/oqLzoq5YgPiBqaXNzaG91cm9uXCA7CivkuI3nh4PniakgPiBmdW5lbmJ1dHN1XCA7CivlhajlvLfpoqggPiB6ZW5reW91ZnV1XCA7CivlsI/lpKnlnLAgPiBzaG91dGVuY2hpXCA7CivphaLphbjloakgPiBzYWt1c2FuJydlblwgOwor6LaF6Z+z6YCfID4gY2hvdW9uc29rdVwgOwor5a+G5ZGK6ICFID4gbWlra29rdXNoYVwgOwor5YiG6aGe5a2mID4gYnVucnVpZ2FrdVwgOwor5b2r6YeR5birID4gY2hvdWtpbnNoaVwgOwor5YWx6YCa6KqeID4ga3lvdXRzdXVnb1wgOwor56We56eY5a2mID4gc2hpbmhpZ2FrdVwgOwor5LiA5pys5qmLID4gaXBwb25iYXNoaVwgOwor56ys5LqU5YiXID4gZGFpZ29yZXRzdVwgOwor57Sz5aOr55SoID4gc2hpbnNoaXlvdVwgOwor5LiA5p6a5bKpID4gaWNoaW1haWl3YVwgOwor5rWB57ea5Z6LID4gcnl1dXNlbmtlaVwgOwor5LiA5pys5qeNID4gaXBwb24nJ3lhcmlcIDsKK+WbsOeqruiAhSA+IGtvbmt5dXVzaGFcIDsKK+WGrOaUr+W6piA+IGZ1eXVqaXRha3VcIDsKK+WFseWQjOS9kyA+IGt5b3Vkb3V0YWlcIDsKK+WwkeaVsOWFmiA+IHNob3VzdXV0b3VcIDsKK+WFqOawkeihhiA+IHplbm1pbnNodXVcIDsKK+ebuOWPjeeahCA+IHNvdWhhbnRla2lcIDsKK+a1rumBiueJqSA+IGZ1eXV1YnV0c3VcIDsKK+WKtOWDjeecgSA+IHJvdWRvdXNob3VcIDsKK+Wtq+aBr+WtkCA+IG1hZ29tdXN1a29cIDsKK+WKtOWDjeebuCA+IHJvdWRvdXNob3VcIDsKK+S+m+mkiuWhmiA+IGt1eW91ZHp1a2FcIDsKK+mnhumAkOiJpiA+IGt1Y2hpa3VrYW5cIDsKK+e0oOS6uuebriA+IHNoaXJvdXRvbWVcIDsKK+mAseWIiue0mSA+IHNodXVrYW5zaGlcIDsKK+eyvuiCieW6lyA+IHNlaW5pa3V0ZW5cIDsKK+WPjOauu+mhniA+IHNvdWtha3VydWlcIDsKK+WlqOWKsemHkSA+IHNob3VyZWlraW5cIDsKK+S4jeeyvumrrSA+IGJ1c2hvdWhpZ2VcIDsKK+iDveWLleeahCA+IG5vdWRvdXRla2lcIDsKK+e0hOWNiuWIhiA+IHlha3VoYW5idW5cIDsKK+e2sua8gealrSA+IGFtaWd5b2d5b3VcIDsKK+aOiOalreS4rSA+IGp1Z3lvdWNodXVcIDsKK+Wyqeefs+WcjyA+IGdhbnNla2lrZW5cIDsKK+W9ueebruafhCA+IHlha3VtZWdhcmFcIDsKK+S4gOacrOadviA+IGlwcG9ubWF0c3VcIDsKK+WhqeeFjumkhSA+IHNoaW9zZW5iZWlcIDsKK+S4jeWmguW4sCA+IGhvdG90b2dpc3VcIDsKK+WNl+OAheilvyA+IG5hbicnbmFuc2VpXCA7CivlnKjlrabnlJ8gPiB6YWlnYWt1c2VpXCA7CivliYPliIDnoKUgPiBrYW1pc29yaWRvXCA7CivlpJrnmbrmgKcgPiB0YWhhdHN1c2VpXCA7CivlhKrotormhJ8gPiB5dXVldHN1a2FuXCA7CivnibnntJrlk4EgPiB0b2treXV1aGluXCA7CivkuInop5LpjJAgPiBzYW5rYWt1c3VpXCA7Civlv4XmsrvolqwgPiBoaXRjaGl5YWt1XCA7CivljZjmjK/li5UgPiB0YW5zaGluZG91XCA7CivkuLvlvLXogIUgPiBzaHVjaG91c2hhXCA7CivmjpLku5blvosgPiBoYWl0YXJpdHN1XCA7CivlhKrotormgKcgPiB5dXVldHN1c2VpXCA7CivlvaLmhYvlraYgPiBrZWl0YWlnYWt1XCA7Civlt6Xmpa3nlYwgPiBrb3VneW91a2FpXCA7Civlt6Xmpa3nlKggPiBrb3VneW91eW91XCA7CivnqY3kubHpm7IgPiBzZWtpcmFuJyd1blwgOwor5oud6Kaz5paZID4gaGFpa2FucnlvdVwgOwor6aCY5rW357eaID4gcnlvdWthaXNlblwgOwor6KeS5YiG5pWjID4ga2FrdWJ1bnNhblwgOwor5LiN6KaL6K2YID4gZnVrZW5zaGlraVwgOwor5aSn5a2m55SfID4gZGFpZ2FrdXNlaVwgOwor5pyA5YyX56uvID4gc2FpaG9rdXRhblwgOwor6KGo6Z2i5LiKID4gaHlvdW1lbmpvdVwgOwor5r+D56Gr6YW4ID4gbm91cnl1dXNhblwgOwor5rC05YyW54mpID4gc3Vpa2FidXRzdVwgOwor6LaF5Lyd5bCOID4gY2hvdWRlbmRvdVwgOwor5paH5a2m6ICFID4gYnVuZ2FrdXNoYVwgOwor57KX55uu6ZuqID4gemFyYW1leXVraVwgOwor5Y+y5a2m6ICFID4gc2hpZ2FrdXNoYVwgOwor5Zu95rCR6LuNID4ga29rdW1pbmd1blwgOwor5ZKA5Zq8562LID4gc29zaGFrdWtpblwgOwor5L2P5omA6YyyID4ganV1c2hvcm9rdVwgOwor6aeQ5YGc6LuKID4gY2h1dXRlaXNoYVwgOwor5qSN5qi556WtID4gc2hva3VqdXNhaVwgOwor6KeS6YCf5bqmID4ga2FrdXNva3Vkb1wgOwor5aSn6LWk5paRID4gZGFpc2VraWhhblwgOwor5Zyw5Lit5rW3ID4gY2hpY2h1dWthaVwgOwor5ZWG5aOy5Lq6ID4gc2hvdWJhaW5pblwgOwor5Y+X5Y+W5Lq6ID4gdWtldG9yaW5pblwgOwor6KaL5pys5biCID4gbWlob24nJ2ljaGlcIDsKK+aKleelqOaoqSA+IHRvdWh5b3VrZW5cIDsKK+aOoueFp+eBryA+IHRhbnNob3V0b3VcIDsKK+WFqOWLnei7jSA+IHplbnNob3VndW5cIDsKK+e1puawtOWhlCA+IGt5dXVzdWl0b3VcIDsKK+a9ruW5sueLqSA+IHNoaW9oaWdhcmlcIDsKK+eJoee+iuW6pyA+IG9oaXRzdWppemFcIDsKK+WPjueojuS6uiA+IHNodXV6ZWluaW5cIDsKK+mBuOaKnuaoqSA+IHNlbnRha3VrZW5cIDsKK+aOoeeCueihqCA+IHNhaXRlbmh5b3VcIDsKK+W3peW3peWbmyA+IGt1bmt1bnNoaWlcIDsKK+iomOmMsueahCA+IGtpcm9rdXRla2lcIDsKK+ixhuadv+mKgCA+IG1hbWVpdGFnaW5cIDsKK+e1tuWvvumHjyA+IHpldHRhaXJ5b3VcIDsKK+adseWMl+S6uiA+IHRvdWhva3VqaW5cIDsKK+a1t+i7jeecgSA+IGthaWd1bnNob3VcIDsKK+mHkeWJm+WKmyA+IGtvbmdvdXJpa2lcIDsKK+ecn+aal+mXhyA+IG1ha3VyYXlhbWlcIDsKK+aknOeWq+WumCA+IGtlbicnZWtpa2FuXCA7Civlr77osaHlpJYgPiB0YWlzaG91Z2FpXCA7CivmlrDmvZ/nnIwgPiBuaWlnYXRha2VuXCA7Civpl4flho3osqkgPiB5YW1pc2FpaGFuXCA7Civli5XnianmhJsgPiBkb3VidXRzdWFpXCA7Civkvb/nlKjph48gPiBzaGl5b3VyeW91XCA7Civol4HljYrntJkgPiB3YXJhYmFuc2hpXCA7CivmlrDplovlnLAgPiBzaGlua2FpY2hpXCA7CivpnZ7luLjorZggPiBoaWpvdXNoaWtpXCA7CivkuIDpnaLoprMgPiBpY2hpbWVua2FuXCA7CivnrqHntYPmpb0gPiBrYW5nZW5nYWt1XCA7CivmnIDmgbXlm70gPiBzYWlrZWlrb2t1XCA7CivmhaLmgKfnmoQgPiBtYW5zZWl0ZWtpXCA7CivmjqjoqIjlraYgPiBzdWlrZWlnYWt1XCA7Civlia/poJjkuosgPiBmdWt1cnlvdWppXCA7CivljbDliLfogIUgPiBpbnNhdHN1c2hhXCA7CivogJDngavlipsgPiB0YWlrYXJ5b2t1XCA7Civlj4vnpoXmn5MgPiB5dXV6ZW56b21lXCA7CivloLHlkYrmm7ggPiBob3Vrb2t1c2hvXCA7CivpqqjmoLznrYsgPiBrb2trYWt1a2luXCA7Civol7vloanojYkgPiBtb3NoaW9ndXNhXCA7Civpm4blpKfmiJAgPiBzaHV1dGFpc2VpXCA7CivmhaLmgKfnl4UgPiBtYW5zZWlieW91XCA7CivlrqPoqIDnmoQgPiBzZW5nZW50ZWtpXCA7Civlha3ph43lpY8gPiByb2t1anV1c291XCA7Civpn7Ppn7/lraYgPiBvbmt5b3VnYWt1XCA7Civlt6Xmpa3muK8gPiBrb3VneW91a291XCA7Civnt4/ovp7ogbcgPiBzb3VqaXNob2t1XCA7Civou43lm6PplbcgPiBndW5kYW5jaG91XCA7CivlubTplbfogIUgPiBuZW5jaG91c2hhXCA7Civnt4/li5nlsYAgPiBzb3VtdWt5b2t1XCA7CivpnaLnm7jnrYYgPiBtZW5zb3VmdWRlXCA7CivmlaPmranpgZMgPiBzYW5wb21pY2hpXCA7CivnpLrlnKfoqIggPiBzaGlhdHN1a2VpXCA7CivkuJbntIDmnKsgPiBzZWlraW1hdHN1XCA7CivnrKzkuInlm70gPiBkYWlzYW5nb2t1XCA7CivmipXnpajmlbAgPiB0b3VoeW91c3V1XCA7CivkvZXnrofmnIggPiBuYW5rYWdldHN1XCA7CivnlLPoq4vmm7ggPiBzaGluc2Vpc2hvXCA7Civohbnohpzngo4gPiBmdWt1bWFrdWVuXCA7CivmuKnms4nnlLogPiBvbnNlbm1hY2hpXCA7CivkuLvli5XnmoQgPiBzaHVkb3V0ZWtpXCA7CivkuI3mloflvosgPiBmdWJ1bnJpdHN1XCA7CivlvIHlvZPnrrEgPiBiZW50b3ViYWtvXCA7CivlpKnkvZPlraYgPiB0ZW50YWlnYWt1XCA7CivljbDliLfntJkgPiBpbnNhdHN1c2hpXCA7CivkvY7miJDplbcgPiB0ZWlzZWljaG91XCA7Civkv6/ku7Dop5IgPiBmdWd5b3VrYWt1XCA7CivmlL7nhrHlmaggPiBob3VuZXRzdWtpXCA7CivntJToia/lk4EgPiBqdW5yeW91aGluXCA7CivlgpnlvozooaggPiBiaW5nb29tb3RlXCA7CivmmpfmrrrogIUgPiBhbnNhdHN1c2hhXCA7CivlubPmlZnlk6EgPiBoaXJha3lvdWluXCA7CivkuI3opprogIUgPiBmdWtha3Vtb25vXCA7CivmiJDplbfngrkgPiBzZWljaG91dGVuXCA7CivmnbHmqKrnt5ogPiB0b3V5b2tvc2VuXCA7CivmlZHmuIjogIUgPiBreXV1c2Fpc2hhXCA7Civnn6Xog73nmoQgPiBjaGlub3V0ZWtpXCA7CivlubvopprliaQgPiBnZW5rYWt1emFpXCA7CivmnpznianlsYsgPiBrdWRhbW9ub3lhXCA7CivkurrmoLzogIUgPiBqaW5rYWt1c2hhXCA7Civph5HlsZ7plpMgPiBraW56b2t1a2FuXCA7CivoirHmn7Pnl4UgPiBrYXJ5dXVieW91XCA7CivogIHlpKflm70gPiByb3V0YWlrb2t1XCA7Civku6PoqIDkurogPiBkYWlnZW4nJ25pblwgOwor5b+D5b6X6aGUID4ga29rb3JvZWdhb1wgOwor5Luj6KGo6ICFID4gZGFpaHlvdXNoYVwgOwor5Li755+l55qEID4gc2h1Y2hpdGVraVwgOwor5paH5a2m55WMID4gYnVuZ2FrdWthaVwgOwor5YiH5pat5qmfID4gc2V0c3VkYW5raVwgOwor5LiA5pmC55qEID4gaWNoaWppdGVraVwgOwor5Lqk6YCa57ayID4ga291dHN1dW1vdVwgOwor5Zyw55CD5Lq6ID4gY2hpa3l1dWppblwgOwor5Zyw55CD5LiKID4gY2hpa3l1dWpvdVwgOwor6YCG5o+Q5qGIID4gZ3lha3V0ZWlhblwgOwor5a++5pWw6KGoID4gdGFpc3V1aHlvdVwgOwor5pWX5oim5Zu9ID4gaGFpc2Vua29rdVwgOwor5Y2w5Yi356S+ID4gaW5zYXRzdXNoYVwgOwor5paw6KO95ZOBID4gc2hpbnNlaWhpblwgOwor5qW16Led6ZuiID4ga3lva3VreW9yaVwgOwor54af57e05belID4ganVrdXJlbmtvdVwgOwor6Imy57Sg5L2TID4gc2hpa2lzb3RhaVwgOwor5Li456Cl55+zID4gbWFydXRvaXNoaVwgOwor5ZCM5peP5LyaID4gZG91em9rdWthaVwgOwor57WM5riI55qEID4ga2VpemFpdGVraVwgOwor54mb5Lmz5bGLID4gZ3l1dW55dXV5YVwgOwor57e057+S5aC0ID4gcmVuc2h1dWpvdVwgOwor54m56KO95ZOBID4gdG9rdXNlaWhpblwgOwor5LiN6Kqg5a6fID4gZnVzZWlqaXRzdVwgOwor5b6T5p2l5Z6LID4ganV1cmFpZ2F0YVwgOwor5a++6LGh5L2TID4gdGFpc2hvdXRhaVwgOwor57KJ55+z6bm4ID4ga29uYXNla2tlblwgOwor5aSc5bC/55eHID4geWFueW91c2hvdVwgOwor6LaF5paH6Z2iID4gY2hvdWJ1bm1lblwgOwor5YuV54mp5ZySID4gZG91YnV0c3VlblwgOwor57eP55uj552jID4gc291a2FudG9rdVwgOwor5a6f6Zqb55qEID4gamlzc2FpdGVraVwgOwor6aC85L+h57SZID4gcmFpc2hpbnNoaVwgOwor5a6j5pWZ5birID4gc2Vua3lvdXNoaVwgOwor6LKs5Lu76ICFID4gc2VraW5pbnNoYVwgOwor6Zai56+A54KOID4ga2Fuc2V0c3VlblwgOwor5YWx6bO05p2/ID4ga3lvdW1laWJhblwgOwor5a6X5Li75Zu9ID4gc291c2h1a29rdVwgOwor5pen6LuN5Lq6ID4ga3l1dWd1bmppblwgOwor5Y2K5r+B54K5ID4gaGFuZGFrdXRlblwgOwor5Y2K6ZW35b2iID4gaGFuY2hvdWtlaVwgOwor5Lit5rC06YGTID4gY2h1dXN1aWRvdVwgOwor6YG45omL5p2RID4gc2Vuc2h1bXVyYVwgOwor5Y2w5Yi355SoID4gaW5zYXRzdXlvdVwgOwor6ZyK5p+p6LuKID4gcmVpa3l1dXNoYVwgOwor5rW35bK456uvID4ga2FpZ2FuYmF0YVwgOwor5aSW55So6JasID4gZ2FpeW91eWFrdVwgOwor57Sr5paR55eFID4gc2hpaGFuYnlvdVwgOwor6Ju46YWN5b2TID4gdGFrb2hhaXRvdVwgOwor6auY5omA55eFID4ga291c2hvYnlvdVwgOwor5aSn5bCP5L6/ID4gZGFpc2hvdWJlblwgOwor57Gz5Zu95rCRID4gYmVpa29rdW1pblwgOwor5ZC45rC05oCnID4ga3l1dXN1aXNlaVwgOwor5b+15LqU5pelID4gbmVuZ29uaWNoaVwgOwor5Ye65p2l5b+DID4gZGVraWdva29yb1wgOwor5Lit5b+D6YOoID4gY2h1dXNoaW5idVwgOwor55Sf5L2T5a2mID4gc2VpdGFpZ2FrdVwgOwor6IKv5a6a55qEID4ga291dGVpdGVraVwgOwor6YG45oqe5a2QID4gc2VudGFrdXNoaVwgOwor5YuV54mp5YyWID4gZG91YnV0c3VrYVwgOwor5rC05bmz57+8ID4gc3VpaGVpeW9rdVwgOwor6LK/5piT5qWtID4gYm91ZWtpZ3lvdVwgOwor6IWw5biD5ZujID4ga29zaGlidXRvblwgOwor54iG5pKD5qmfID4gYmFrdWdla2lraVwgOwor6KiA6KGM6YyyID4gZ2Vua291cm9rdVwgOwor5Zuj5Zyw5pePID4gZGFuY2hpem9rdVwgOwor5Lmx6Kq/5a2QID4gcmFuY2hvdXNoaVwgOwor5YKZ6JOE57GzID4gYmljaGlrdW1haVwgOwor5aSn5LmX55qEID4gZGFpam91dGVraVwgOwor54Sh6IO95YqbID4gbXVub3VyeW9rdVwgOwor6YWq6L6y5aC0ID4gcmFrdW5vdWpvdVwgOwor6LKo5a6i6Ii5ID4ga2FreWFrdXNlblwgOwor5oSf5p+T55eHID4ga2Fuc2Vuc2hvdVwgOwor55yf55CG5pWZID4gc2hpbnJpa3lvdVwgOwor5oWI5ZaE6Y2LID4gaml6ZW4nJ25hYmVcIDsKK+aKgOihk+WjqyA+IGdpanV0c3VzaGlcIDsKK+WTqOaIkuiJhyA+IHNob3VrYWl0ZWlcIDsKK+mFkuefs+mFuCA+IHNodXNla2lzYW5cIDsKK+aVt+W4g+WboyA+IHNoaWtpYnV0b25cIDsKK+WPjeWJh+mHkSA+IGhhbnNva3VraW5cIDsKK+acieapn+eJqSA+IHl1dWtpYnV0c3VcIDsKK+aKveixoeeUuyA+IGNodXVzaG91Z2FcIDsKK+enn+WAn+aoqSA+IHNvc2hha3VrZW5cIDsKK+WGheeUs+abuCA+IG5haXNoaW5zaG9cIDsKK+WQjOe0mueUnyA+IGRvdWt5dXVzZWlcIDsKK+WQkeexs+eahCA+IGtvdWJlaXRla2lcIDsKK+imquihm+WFtSA+IHNoaW4nJ2VpaGVpXCA7Civku4/mlofnp5EgPiBmdXRzdWJ1bmthXCA7Civlj5blvJXmiYAgPiB0b3JpaGlraWpvXCA7Civpm7vou4ros4MgPiBkZW5zaGFjaGluXCA7Civpm4bmlaPlnLAgPiBzaHV1c2FuY2hpXCA7Civntrrmg7Pmm7IgPiBraXNvdWt5b2t1XCA7CivkuIroqr/lrZAgPiB1d2FjaG91c2hpXCA7CivlhoXoh5PlvJMgPiBuYWl6b3VreXV1XCA7CivljYrplovlm70gPiBoYW5rYWlrb2t1XCA7Civoo73pgKDmpa0gPiBzZWl6b3VneW91XCA7Civov73mkoPmqZ8gPiB0c3VpZ2VraWtpXCA7CivkuInop5LnrYsgPiBzYW5rYWt1a2luXCA7CivnrYnmt7Hnt5ogPiB0b3VzaGluc2VuXCA7Civpp4bli5XlipsgPiBrdWRvdXJ5b2t1XCA7Civph43lt6Xmpa0gPiBqdXVrb3VneW91XCA7CivpurvnuZTniakgPiBhc2Fvcmltb25vXCA7Civml6XlsITnl4UgPiBuaXNzaGFieW91XCA7CivnhrHooYDlhZAgPiBuZWtrZXRzdWppXCA7Civph5HlsZ7oo70gPiBraW56b2t1c2VpXCA7CivmnKzlpZHntIQgPiBob25rZWl5YWt1XCA7Civpu4TopJDoibIgPiBvdWthc3Nob2t1XCA7Civos7zlhaXogIUgPiBrb3VueXV1c2hhXCA7CivkuI3nsr7ogIUgPiBidXNob3Vtb25vXCA7CivkuLvlv5zlipsgPiBzaHVvdXJ5b2t1XCA7Civln7znjonli6IgPiBzYWl0YW1hemVpXCA7Civph43lgrfogIUgPiBqdXVzaG91c2hhXCA7CivlgrflrrPnvaogPiBzaG91Z2FpemFpXCA7CivkvZzmiKbkuIogPiBzYWt1c2Vuam91XCA7CivmvZzmsLTnl4UgPiBzZW5zdWlieW91XCA7CivkuK3mgKfntJkgPiBjaHV1c2Vpc2hpXCA7CivoqLrnmYLmiYAgPiBzaGlucnlvdWpvXCA7Civml6XmnKzpo58gPiBuaWhvbnNob2t1XCA7CivnqLzlg43njocgPiBrYWRvdXJpdHN1XCA7CivpgKPlkIjlm70gPiByZW5nb3Vrb2t1XCA7CivlhazmsJHlraYgPiBrb3VtaW5nYWt1XCA7CivnoJTnqbbogIUgPiBrZW5reXV1c2hhXCA7CivpnZnmsLTlnKcgPiBzZWlzdWlhdHN1XCA7CivnmbvpjLLogIUgPiB0b3Vyb2t1c2hhXCA7CivoiIjooYznlYwgPiBrb3VneW91a2FpXCA7Civmupbmsbrli50gPiBqdW5rZXNzaG91XCA7CivlpKnnjovmmJ8gPiB0ZW4nJ25vdXNlaVwgOwor5qKv5a2Q6LuKID4gaGFzaGlnb3NoYVwgOwor5LiJ6Kaq562JID4gc2Fuc2hpbnRvdVwgOwor5LiN57SU54mpID4gZnVqdW5idXRzdVwgOwor5LiK5aWz5LitID4ga2FtaWpvY2h1dVwgOwor6bOl5Y+W55yMID4gdG90dG9yaWtlblwgOwor6YeN55eH6ICFID4ganV1c2hvdXNoYVwgOwor6LKn5LmP6ayuID4gYmluYm91a3VqaVwgOwor5ZSv5LiA5bqmID4gdGFkYWljaGlkb1wgOwor5aW96Imy5a62ID4ga291c2hva3VrYVwgOwor5q+b55qu5ZWGID4ga2VnYXdhc2hvdVwgOwor5q+U6LyD57SaID4gaGlrYWt1a3l1dVwgOwor54++5Zyo6auYID4gZ2VuemFpZGFrYVwgOwor6Zm45rW356m6ID4gcmlrdWthaWt1dVwgOwor5Y+M55y86Y+hID4gc291Z2Fua3lvdVwgOwor6aeQ6Lyq5aC0ID4gY2h1dXJpbmpvdVwgOwor55m96YmE6YmxID4gaGFrdXRla2tvdVwgOwor5aSn5a6u5Lq6ID4gb29taXlhYml0b1wgOwor6Zuq5ZCI5oimID4geXVraWdhc3NlblwgOwor54mH5qCX57KJID4ga2F0YWt1cmlrb1wgOwor55m66KGo5LyaID4gaGFwcHlvdWthaVwgOwor5ZCQ54CJ54mpID4gdG9zaGFidXRzdVwgOwor6KOP6KGo57SZID4gdXJhYnlvdXNoaVwgOwor5YiH5pat5ZuzID4gc2V0c3VkYW56dVwgOwor5oCd5oOR6LK3ID4gb21vd2FrdWdhaVwgOwor6Kaz5b+16KuWID4ga2FuJyduZW5yb25cIDsKK+eOiemfs+ebpCA+IGd5b2t1b25iYW5cIDsKK+WPjeWLleeahCA+IGhhbmRvdXRla2lcIDsKK+aVkeWRveiJhyA+IGt5dXVtZWl0ZWlcIDsKK+e1tuWvvueahCA+IHpldHRhaXRla2lcIDsKK+a4rOmHj+WbsyA+IHNva3VyeW91enVcIDsKK+S4ieWkp+WbvSA+IHNhbmRhaWtva3VcIDsKK+WcsOaWueeXhSA+IGNoaWhvdWJ5b3VcIDsKK+WHuueJiOiAhSA+IHNodXBwYW5zaGFcIDsKK+S+m+e1pui3ryA+IGt5b3VreXV1cm9cIDsKK+ernOa2jummmSA+IHJ5dXV6ZW5rb3VcIDsKK+WwhOeIhuWgtCA+IHNoYWJha3Vqb3VcIDsKK+a4rOmHj+WZqCA+IHNva3VyeW91a2lcIDsKK+Wcn+S/l+WtpiA+IGRvem9rdWdha3VcIDsKK+e+juWls+ahnCA+IGJpam96YWt1cmFcIDsKK+WNl+OAheadsSA+IG5hbicnbmFudG91XCA7CivkurrmoLzmqKkgPiBqaW5rYWt1a2VuXCA7CivliIbop6PnmoQgPiBidW5rYWl0ZWtpXCA7Civku5bopprnmoQgPiB0YWtha3V0ZWtpXCA7CivlpKnkuLvmlZkgPiB0ZW5zaHVreW91XCA7Civpm6rljJbnsqcgPiB5dWtpZ2VzaG91XCA7CivlvaLlvI/nvo4gPiBrZWlzaGlraWJpXCA7Civpm7vpgJrlpKcgPiBkZW50c3V1ZGFpXCA7CivnoJTnqbbnpL4gPiBrZW5reXV1c2hhXCA7CivkuInop5LngrkgPiBzYW5rYWt1dGVuXCA7CivkvJ3mm7jps6kgPiBkZW5zaG9iYXRvXCA7Civku5bopprnl4cgPiB0YWtha3VzaG91XCA7CivmtojogJfmiKYgPiBzaG91bW91c2VuXCA7Civku5XoqLPmm7ggPiBzaGl3YWtlc2hvXCA7CivpgYrkvJHlnLAgPiB5dXVreXV1Y2hpXCA7Civlj43lv5zmgKcgPiBoYW4nJ25vdXNlaVwgOwor5pq06LWw5pePID4gYm91c291em9rdVwgOwor57SA5YWD56+AID4ga2lnZW5zZXRzdVwgOwor5rip5rOJ5a6/ID4gb25zZW4nJ3lhZG9cIDsKK+WUkOi+m+WtkCA+IHRvdWdhcmFzaGlcIDsKK+aXpeS4remfkyA+IG5pdGNodXVrYW5cIDsKK+eQhuino+WKmyA+IHJpa2Fpcnlva3VcIDsKK+WFrOWFseiyoSA+IGtvdWt5b3V6YWlcIDsKK+aknOWumuaWmSA+IGtlbnRlaXJ5b3VcIDsKK+W4gumVt+mBuCA+IHNoaWNob3VzZW5cIDsKK+WuieaZruiriyA+IHlhc3VidXNoaW5cIDsKK+awtOmBk+aWmSA+IHN1aWRvdXJ5b3VcIDsKK+S4oeaIkOaVlyA+IHJ5b3VzZWliYWlcIDsKK+WIneevgOWPpSA+IGhhdHN1emVra3VcIDsKK+avlOi8g+eahCA+IGhpa2FrdXRla2lcIDsKK+WbvemAo+i7jSA+IGtva3VyZW5ndW5cIDsKK+S4iue0mueUnyA+IGpvdWt5dXVzZWlcIDsKK+eEoemgk+edgCA+IG11dG9uY2hha3VcIDsKK+WtpuWPi+S8miA+IGdha3V5dXVrYWlcIDsKK+WGjeadpeaciCA+IHNhcmFpZ2V0c3VcIDsKK+W+jOaXpeirhyA+IGdvaml0c3VkYW5cIDsKK+WCmeiNkumjnyA+IGJpa291c2hva3VcIDsKK+S4jeihjOi3oSA+IGZ1Z3lvdXNla2lcIDsKK+aWnOmZveaXjyA+IHNoYXlvdXpva3VcIDsKK+mdkuWMlueJqSA+IHNlaWthYnV0c3VcIDsKK+WkqeeOi+WxsSA+IHRlbicnbm91emFuXCA7CivljoTku4vogIUgPiB5YWtrYWltb25vXCA7Civli4fnjJvlv4MgPiB5dXVtb3VzaGluXCA7CivmrablipvmiKYgPiBidXJ5b2t1c2VuXCA7CivkuInop5Lms5UgPiBzYW5rYWt1aG91XCA7CivlrpfmlZnnlLsgPiBzaHV1a3lvdWdhXCA7CivnoJTnqbbnlJ8gPiBrZW5reXV1c2VpXCA7Civlh7rlpZTogIUgPiBzaHVwcG9uc2hhXCA7Civlj47nm4rph5EgPiBzaHV1ZWtpa2luXCA7CivmsLfoj5PlrZAgPiBrb29yaWdhc2hpXCA7Civou73lt6Xmpa0gPiBrZWlrb3VneW91XCA7CivoqJjmhrblipsgPiBraW9rdXJ5b2t1XCA7CivljbPoiIjoqakgPiBzb2treW91c2hpXCA7Civlj6TnlJ/niakgPiBrb3NlaWJ1dHN1XCA7CivnhrHmhJvogIUgPiBuZXRzdWFpc2hhXCA7CivlpKnpoILngrkgPiB0ZW5jaG91dGVuXCA7CivnhKHos4flipsgPiBtdXNoaXJ5b2t1XCA7CivoiIjooYzmqKkgPiBrb3VneW91a2VuXCA7Civmnb7moLnmsrkgPiBzaG91a29uJyd5dVwgOwor55m+5riI5qW9ID4ga3VkYXJhZ2FrdVwgOwor5Zyo5Lu75LitID4gemFpbmluY2h1dVwgOwor5rue5Zyo5LitID4gdGFpemFpY2h1dVwgOwor5Ye654mI56S+ID4gc2h1cHBhbnNoYVwgOwor6KO96Iy25qWtID4gc2VpY2hhZ3lvdVwgOwor6LK/5piT5ZWGID4gYm91ZWtpc2hvdVwgOwor5Zu95YuZ55yBID4ga29rdW11c2hvdVwgOwor5Lit5Y2X57GzID4gY2h1dW5hbmJlaVwgOwor5qGQ5LiA6JGJID4ga2lyaWhpdG9oYVwgOwor5Yid56+A5L6bID4gaGF0c3V6ZWtrdVwgOwor5YWl6YG46ICFID4gbnl1dXNlbnNoYVwgOwor57im56S+5LyaID4gdGF0ZXNoYWthaVwgOwor5pON57im5bitID4gc291anV1c2VraVwgOwor5ZGo5peL5bGLID4gc2h1dXNlbicneWFcIDsKK+aWh+WtpuWjqyA+IGJ1bmdha3VzaGlcIDsKK+W3peWtpuiAhSA+IGtvdWdha3VzaGFcIDsKK+WPpOS8neiqrCA+IGtvZGVuc2V0c3VcIDsKK+WNsOWIt+W3pSA+IGluc2F0c3Vrb3VcIDsKK+a9nOawtOacjSA+IHNlbnN1aWZ1a3VcIDsKK+Wkp+S4u+aVmSA+IGRhaXNodWt5b3VcIDsKK+S4iuWgtOagqiA+IGpvdWpvdWthYnVcIDsKK+mhnuWei+eahCA+IHJ1aWtlaXRla2lcIDsKK+WQueWHuueJqSA+IGZ1a2lkZW1vbm9cIDsKK+aKl+ecn+iPjCA+IGtvdXNoaW5raW5cIDsKK+mbo+azoua9nyA+IG5hbml3YWdhdGFcIDsKK+enn+WAn+WcsCA+IHNvc2hha3VjaGlcIDsKK+WKoOi+suegsiA+IGthbicnbm9uaG91XCA7CivpgKDnn7PnqI4gPiB6b3Vrb2t1emVpXCA7Civpp5Dou4rloLQgPiBjaHV1c2hham91XCA7CivoqabnrpfooaggPiBzaGlzYW5oeW91XCA7CivntYzmuIjlraYgPiBrZWl6YWlnYWt1XCA7CivmgKXli77phY0gPiBreXV1a291YmFpXCA7CivlhIDlvI/nlKggPiBnaXNoaWtpeW91XCA7CivooYDmoJPnl4cgPiBrZXNzZW5zaG91XCA7CivkvIrpgZTlp78gPiBkYXRlc3VnYXRhXCA7Civnl4Xljp/kvZMgPiBieW91Z2VudGFpXCA7CivlhavliIbnm64gPiBoYWNoaWJ1bm1lXCA7Civop6PmnpDmgKcgPiBrYWlzZWtpc2VpXCA7CivlrqLoprPmgKcgPiBreWFra2Fuc2VpXCA7CivotoXlqpLkvZMgPiBjaG91YmFpdGFpXCA7CivmsLToiq3olYkgPiBtaXp1YmFzaG91XCA7CivplbfmnJ/nmoQgPiBjaG91a2l0ZWtpXCA7CivnnLzpj6Hom4cgPiBtZWdhbmVoZWJpXCA7Civlh7rniYjnlYwgPiBzaHVwcGFua2FpXCA7CivlvIHlhJ/ph5EgPiBiZW5zaG91a2luXCA7CivmjpLlpJbnmoQgPiBoYWlnYWl0ZWtpXCA7CivmnKrnhp/ogIUgPiBtaWp1a3Vtb25vXCA7CivliIbmlaPlnosgPiBidW5zYW5nYXRhXCA7Civnn63nt6jpm4YgPiB0YW5wZW5zaHV1XCA7Civmt6Hot6/ls7YgPiBhd2FqaXNoaW1hXCA7CivlopfmrpbngokgPiB6b3VzaG9rdXJvXCA7CivkuIvopovmnb8gPiBzaGl0YW1paXRhXCA7CivliIbmlZnloLQgPiBidW5reW91am91XCA7Civlj7LmlpnppKggPiBzaGlyeW91a2FuXCA7CivooYDlsI/mnb8gPiBrZXNzaG91YmFuXCA7Civph5HoibLloIIgPiBrb25qaWtpZG91XCA7CivmvKLmlrnolqwgPiBrYW5wb3V5YWt1XCA7Civnv7voqLPlrrYgPiBob24nJ3lha3VrYVwgOwor5bmz562J6KazID4gYnlvdWRvdWthblwgOwor5qSc5p+75a6YID4ga2Vuc2hvdWthblwgOwor5paH5a2m5Y+yID4gYnVuZ2FrdXNoaVwgOwor5aSJ5YiG5a2mID4gaGVuYnVuZ2FrdVwgOwor5YmN5qC954mpID4gc2VuemFpbW9ub1wgOwor5by35aOu5YmkID4ga3lvdXNvdXphaVwgOwor5rW355Sj5qWtID4ga2Fpc2FuZ3lvdVwgOwor54yu57SN6ICFID4ga2VuJydub3VzaGFcIDsKK+WFremAo+aYnyA+IHJva3VyZW5zZWlcIDsKK+WLhemhmOWvuiA+IGNob2t1Z2FuamlcIDsKK+S8neafk+eXhSA+IGRlbnNlbmJ5b3VcIDsKK+S4reiPr+mNiyA+IGNodXVrYW5hYmVcIDsKK+WkqeS4iuW3nSA+IHRlbmpvdWdhd2FcIDsKK+a0i+iKpeWtkCA+IHlvdWdhcmFzaGlcIDsKK+eahuWLpOizniA+IGthaWtpbnNob3VcIDsKK+mHkeWxnueJhyA+IGtpbnpva3VoZW5cIDsKK+Wlh+ihk+W4qyA+IGtpanV0c3VzaGlcIDsKK+Wil+WKoOeOhyA+IHpvdWthcml0c3VcIDsKK+aomea6luWeiyA+IGh5b3VqdW5rZWlcIDsKK+mHkei1pOiJsiA+IGtpbicnYWthaXJvXCA7Civosqzku7vmhJ8gPiBzZWtpbmlua2FuXCA7Civmt4vlt7Tnr4AgPiByaW5wYXNldHN1XCA7Civkvpvnianlj7AgPiBrdW1vdHN1ZGFpXCA7CivnsbPlm73kurogPiBiZWlrb2t1amluXCA7CivnrYnmuKnlvI8gPiB0b3VvbnNoaWtpXCA7CivliY3ku7vogIUgPiB6ZW4nJ25pbnNoYVwgOwor6KO96YCg5YWDID4gc2Vpem91bW90b1wgOwor5oOF5aCx6YePID4gam91aG91cnlvdVwgOwor5raI6ICX5ZOBID4gc2hvdW1vdWhpblwgOwor5Lih5omL5YipID4gcnlvdXRla2lraVwgOwor6JOE6Zu75ZmoID4gY2hpa3VkZW5raVwgOwor5a++6KeS57eaID4gdGFpa2FrdXNlblwgOwor5LiA5pmp5LitID4gaGl0b2Jhbmp1dVwgOwor5pqX5Ymj5q66ID4gYW5rZW5zYXRzdVwgOwor6aCt6Laz6aGeID4gdG91c29rdXJ1aVwgOwor5Zyo5p2x5LqsID4gemFpdG91a3lvdVwgOwor5qOE6KiA6JGJID4gc3V0ZWtvdG9iYVwgOwor5YWN56iO6KGoID4gbWVuemVpaHlvdVwgOwor5Zu95rCR5oCnID4ga29rdW1pbnNlaVwgOwor5b2r5Yi75a62ID4gY2hvdWtva3VrYVwgOwor6Kqt5pu455WMID4gZG9rdXNob2thaVwgOwor5L2/55So5paZID4gc2hpeW91cnlvdVwgOwor5bGF55WZ5rCRID4ga3lvcnl1dW1pblwgOwor5peL5YWJ6KeSID4gc2Vua291a2FrdVwgOwor5bCP6ZaT5L2/ID4ga29tYWR6dWthaVwgOwor6KeS6Iac54KOID4ga2FrdW1ha3VlblwgOwor6bCt6ISa6aGeID4ga2lreWFrdXJ1aVwgOwor6ZGR6K2Y5a62ID4ga2Fuc2hpa2lrYVwgOwor6IiI6KGM5birID4ga291Z3lvdXNoaVwgOwor5ay25aSp5LiLID4ga2FrYWFkZW5rYVwgOwor5Zu65b2i54mpID4ga29rZWlidXRzdVwgOwor57Sh57i+57O4ID4gYm91c2VraWl0b1wgOwor5ZCd5ZeH5a62ID4gcmluc2hva3VrYVwgOwor54K65pu/5bC7ID4ga2F3YXNlamlyaVwgOwor6Kqt6ICF5qyEID4gZG9rdXNoYXJhblwgOwor5Y6E5LuL54mpID4geWFra2FpbW9ub1wgOwor5Ye65LiW5L2cID4gc2h1c3Nlc2FrdVwgOwor5YuV5pGp5pOmID4gZG91bWFzYXRzdVwgOwor6YOo5YiG6aOfID4gYnVidW5zaG9rdVwgOwor5Ye654mI5rOVID4gc2h1cHBhbmhvdVwgOwor6Kqy6aGM5puyID4ga2FkYWlreW9rdVwgOwor5q666Jmr5YmkID4gc2F0Y2h1dXphaVwgOwor6JaE6Zuq6I2JID4gdXN1eXVraXNvdVwgOwor5Lq65L2T5a2mID4gamludGFpZ2FrdVwgOwor5bmz5Z+O5LqsID4gaGVpam91a3lvdVwgOwor5LiJ6KeS5bi9ID4gc2Fua2FrdWJvdVwgOwor6KGd5pKD5rOiID4gc2hvdWdla2loYVwgOwor5LiJ6KeS5be+ID4gc2Fua2FrdWtpblwgOwor6YO16YCB5paZID4geXV1c291cnlvdVwgOwor55+z54Kt6YW4ID4gc2VraXRhbnNhblwgOwor5b6B5pyN6ICFID4gc2VpZnVrdXNoYVwgOwor5by36KGM6LuNID4ga3lvdWtvdWd1blwgOwor5Luj6KGo5ZujID4gZGFpaHlvdWRhblwgOwor6ISa5pys5a62ID4ga3lha3Vob25rYVwgOwor6I+T5a2Q6YmiID4ga2FzaGliYWNoaVwgOwor55u05YaG6YyQID4gY2hva3VlbnN1aVwgOwor5Ye654mI5qipID4gc2h1cHBhbmtlblwgOwor5YaN5pyN5b25ID4gc2FpZnVrdWVraVwgOwor55Sf5pS+6YCBID4gbmFtYWhvdXNvdVwgOwor6KiI566X5bC6ID4ga2Vpc2FuamFrdVwgOwor6YCa5Yuk6ICFID4gdHN1dWtpbnNoYVwgOwor5LiA5aGB57eaID4gaWNoaXJ1aXNlblwgOwor5ray6YeP6KiIID4gZWtpcnlvdWtlaVwgOwor5YiH5pSv5Li5ID4ga2lyaXNoaXRhblwgOwor6ZeH5biC5aC0ID4geWFtaXNoaWpvdVwgOwor6Zqc5a6z6ICFID4gc2hvdWdhaXNoYVwgOwor6LK05peP55qEID4ga2l6b2t1dGVraVwgOwor5Y2w5Yi35Lq6ID4gaW5zYXRzdW5pblwgOwor5rW36LOK6Ii5ID4ga2Fpem9rdXNlblwgOwor5Y2X5Y2X6KW/ID4gbmFuJyduYW5zZWlcIDsKK+iEs+aMr+ebqiA+IG5vdXNoaW50b3VcIDsKK+aKveixoeWMliA+IGNodXVzaG91a2FcIDsKK+ism+e/kuS8miA+IGtvdXNodXVrYWlcIDsKK+aEm+eOqeeJqSA+IGFpZ2FuYnV0c3VcIDsKK+m6u+mbgOWxiyA+IG1hemVqYW4nJ3lhXCA7CivkvJ3mn5Pmr5IgPiBkZW5zZW5kb2t1XCA7Civku5blm73ogIUgPiB0YWtva3Vtb25vXCA7Civph43lsaTnmoQgPiBqdXVzb3V0ZWtpXCA7CivkupTph43loZQgPiBnb2p1dW5vdG91XCA7CivkuIvntJrlr6kgPiBrYWt5dXVzaGluXCA7CivkvY7miYDlvpcgPiB0ZWlzaG90b2t1XCA7CivlsILploDnq6AgPiBzZW5tb25zaG91XCA7Civpi7PpgKDmiYAgPiBjaHV1em91c2hvXCA7Civnn63mmYLml6UgPiB0YW5qaWppdHN1XCA7CivkvJHmpa3ml6UgPiBreXV1Z3lvdWJpXCA7CivlhYjnq6/nmoQgPiBzZW50YW50ZWtpXCA7CivllqflmKnohbAgPiBrZW5rYWdvc2hpXCA7CivojYnlj4zntJkgPiBrdXNhem91c2hpXCA7Civnqbrmg7PnmoQgPiBrdXVzb3V0ZWtpXCA7Civpm6rpgZTno6ggPiB5dWtpZGFydW1hXCA7CivlhoXkuqTmuIkgPiBuYWlrb3VzaG91XCA7CivluoPlkYrnpL4gPiBrb3Vrb2t1c2hhXCA7Civosqjnianpp4UgPiBrYW1vdHN1ZWtpXCA7CivosqfkuY/nsaQgPiBiaW5ib3VndWppXCA7Civlr77oqbHlvI8gPiB0YWl3YXNoaWtpXCA7CivlhbHnlKPou40gPiBreW91c2FuZ3VuXCA7CivkuI3mib/oq74gPiBmdXNob3VkYWt1XCA7CivmsYLkurroqowgPiBreXV1amluc2hpXCA7Civpnq3mr5vomasgPiBiZW5tb3VjaHV1XCA7CivnsKHljZjmnI0gPiBrYW50YW5mdWt1XCA7CivkuK3mgKflrZAgPiBjaHV1c2Vpc2hpXCA7Civpu5LnqYLnl4UgPiBrdXJvaG9ieW91XCA7CivliIbmi4XpoY0gPiBidW50YW5nYWt1XCA7CivlpKrpmb3omasgPiB0YWl5b3VjaHV1XCA7CivmmqvlrprnmoQgPiB6YW50ZWl0ZWtpXCA7Civku6PooajkvosgPiBkYWloeW91cmVpXCA7CivlkIzlm73msJEgPiBkb3Vrb2t1bWluXCA7CivoqJjlv7XniakgPiBraW5lbmJ1dHN1XCA7Civml6fkvZPliLYgPiBreXV1dGFpc2VpXCA7CivljZfmtIvmnZAgPiBuYW4nJ3lvdXphaVwgOwor6Z2e5bi45Y+jID4gaGlqb3VndWNoaVwgOwor5LiK6KGo57SZID4gdXdhYnlvdXNoaVwgOwor6Z2i55m95ZGzID4gb21vc2hpcm9taVwgOwor5L+d5a2Y6aOfID4gaG96b25zaG9rdVwgOwor5Y2K5oSP6K2YID4gaGFuJydpc2hpa2lcIDsKK+acrOiqv+WtkCA+IGhvbmNob3VzaGlcIDsKK+e5lOWls+aYnyA+IHNob2t1am9zZWlcIDsKK+WwgumWgOeahCA+IHNlbm1vbnRla2lcIDsKK+WgseWEn+mHkSA+IGhvdXNob3VraW5cIDsKK+aTsuW8vuetkiA+IHRla2lkYW50b3VcIDsKK+iyp+S5j+elniA+IGJpbmJvdWdhbWlcIDsKK+Wbnua8lealrSA+IGthaXNvdWd5b3VcIDsKK+Wkp+e1semgmCA+IGRhaXRvdXJ5b3VcIDsKK+mHj+WtkOirliA+IHJ5b3VzaGlyb25cIDsKK+S4reWKm+eyiSA+IGNodXVyaWtpa29cIDsKK+ecvOmPoeeMvyA+IG1lZ2FuZXphcnVcIDsKK+alreeVjOe0mSA+IGd5b3VrYWlzaGlcIDsKK+mdnuWFrOW8jyA+IGhpa291c2hpa2lcIDsKK+awtOWFteacjSA+IHN1aWhlaWZ1a3VcIDsKK+iyr+acqOWgtCA+IGNob2Jva3Vqb3VcIDsKK+air+WtkOautSA+IGhhc2hpZ29kYW5cIDsKK+W9k+ats+mnkiA+IHRvdXNhaWdvbWFcIDsKK+Wul+aVmeWutiA+IHNodXVreW91a2FcIDsKK+eglOeptuWumCA+IGtlbmt5dXVrYW5cIDsKK+auieaVmeiAhSA+IGp1bmt5b3VzaGFcIDsKK+auiembo+iAhSA+IGp1bicnbmFuc2hhXCA7Civlo4HoqLToqJ8gPiBrYWJlem9zaG91XCA7CivnjonmlbTnkIYgPiBneW9rdXNlaXJpXCA7CivojKjln47nnIwgPiBpYmFyYWtpa2VuXCA7CivlsYjmm7Lpg6ggPiBrdWtreW9rdWJ1XCA7CivopJLlpajph5EgPiBob3VzaG91a2luXCA7CivmtojpmLLpmoogPiBzaG91Ym91dGFpXCA7CivmnKfmmIbluIMgPiBvYm9yb2tvbmJ1XCA7CivnnIvnl4XkurogPiBrYW5ieW91bmluXCA7CivoirHpm7vou4ogPiBoYW5hZGVuc2hhXCA7CivlnLDmloflraYgPiBjaGltb25nYWt1XCA7Civlj6Pkvpvmm7ggPiBrb3VreW91c2hvXCA7Civph5HlsZ7mgKcgPiBraW56b2t1c2VpXCA7CivojYnph47nkIMgPiBrdXNheWFreXV1XCA7CivmpJzkuovlsYAgPiBrZW5qaWt5b2t1XCA7Civlha3ovrrlvaIgPiByb2t1aGVua2VpXCA7Civoqq3ogIXlsaQgPiBkb2t1c2hhc291XCA7Civlgqzkv4PnirYgPiBzYWlzb2t1am91XCA7Civlgr7mlpzop5IgPiBrZWlzaGFrYWt1XCA7Civlj47nm6PnirYgPiBzaHV1a2Fuam91XCA7CivlnLDpnIflraYgPiBqaXNoaW5nYWt1XCA7CivlnKjkuJbkuK0gPiB6YWlzZWljaHV1XCA7CivlpaXluqfmlbcgPiBva3V6YXNoaWtpXCA7Civnvo7ooZPppKggPiBiaWp1dHN1a2FuXCA7CivoqLHlrrnph48gPiBreW95b3VyeW91XCA7CivlsITmkoPloLQgPiBzaGFnZWtpam91XCA7CivlvozlpKnnmoQgPiBrb3V0ZW50ZWtpXCA7Civpp5Dlsa/lnLAgPiBjaHV1dG9uY2hpXCA7CivohLPmuqLooYAgPiBub3Vpa2tldHN1XCA7CivlrZjlkb3kuK0gPiB6b25tZWljaHV1XCA7Civns7vliJfljJYgPiBrZWlyZXRzdWthXCA7Civlh7rniYjlsYsgPiBzaHVwcGFuJyd5YVwgOwor5a+p576O55qEID4gc2hpbmJpdGVraVwgOwor5oGS5LmF5oCnID4ga291a3l1dXNlaVwgOwor54mH6LK/5piTID4ga2F0YWJvdWVraVwgOwor5paH54yu5a2mID4gYnVua2VuZ2FrdVwgOwor5pmC5Luj6ImyID4gamlkYWlzaG9rdVwgOwor5aSn5aSn55qEID4gZGFpZGFpdGVraVwgOwor5LqM6YeN5qmLID4gbmlqdXViYXNoaVwgOwor5Zyw6KqM5a2mID4gY2hpc2hpZ2FrdVwgOwor5YyW5a2m55qEID4ga2FnYWt1dGVraVwgOwor6IKJ5by+5oimID4gbmlrdWRhbnNlblwgOwor5LiA57WD55C0ID4gaWNoaWdlbmtpblwgOwor6YGK54mn5rCRID4geXV1Ym9rdW1pblwgOwor5qC45a6f6aiTID4ga2FrdWppa2tlblwgOwor6LKo54mp6LuKID4ga2Ftb3RzdXNoYVwgOwor5rGC5Lq66ICFID4ga3l1dWppbnNoYVwgOwor5Zyw6ZyH5Zu9ID4gamlzaGlua29rdVwgOwor5bGF55WZ5ZywID4ga3lvcnl1dWNoaVwgOwor6Zqc5a2Q57SZID4gc2hvdWppZ2FtaVwgOwor5r2c5Ye955eFID4gc2Vua2FuYnlvdVwgOwor5byV546H6ICFID4gaW5zb3RzdXNoYVwgOwor5rW36LOK54mIID4ga2Fpem9rdWJhblwgOwor5L+h5Luw6ICFID4gc2hpbmtvdXNoYVwgOwor5raI6Ziy6LuKID4gc2hvdWJvdXNoYVwgOwor5LiJ562J6LOeID4gc2FudG91c2hvdVwgOwor54Sh6K2m5a+fID4gbXVrZWlzYXRzdVwgOwor5b2p6Imy55S7ID4gc2Fpc2hva3VnYVwgOwor5Yun5ZGK6ICFID4ga2Fua29rdXNoYVwgOwor5bqD5ZGK5qyEID4ga291a29rdXJhblwgOwor6LOe6YeR546LID4gc2hvdWtpbicnb3VcIDsKK+mAmuefpeeKtiA+IHRzdXVjaGlqb3VcIDsKK+W3peS9nOWTgSA+IGtvdXNha3VoaW5cIDsKK+WcsOaUv+WtpiA+IGNoaXNlaWdha3VcIDsKK+WkqumZveelniA+IHRhaXlvdXNoaW5cIDsKK+e2meaJv+iAhSA+IGtlaXNob3VzaGFcIDsKK+S5s+ijveWTgSA+IG55dXVzZWloaW5cIDsKK+mBiuaSg+maiiA+IHl1dWdla2l0YWlcIDsKK+WNkeaAr+iAhSA+IGhpa3lvdW1vbm9cIDsKK+WGjeaVmeiCsiA+IHNhaWt5b3Vpa3VcIDsKK+WbveWGhee3miA+IGtva3VuYWlzZW5cIDsKK+WZm+eFmeiNiSA+IGthbWl0YWJha29cIDsKK+aFiOWWhOW4giA+IGppemVuJydpY2hpXCA7Civlm57mg7PpjLIgPiBrYWlzb3Vyb2t1XCA7CivlpJbkuqTnmoQgPiBnYWlrb3V0ZWtpXCA7Civkv67nkIbkuK0gPiBzaHV1cmljaHV1XCA7CivkuInnrYnopqogPiBzYW50b3VzaGluXCA7CivlnLDooajpnaIgPiBjaGloeW91bWVuXCA7CivlubLmuInoqIggPiBrYW5zaG91a2VpXCA7CivnoJTnqbbkvJogPiBrZW5reXV1a2FpXCA7Civogpblg4/mqKkgPiBzaG91em91a2VuXCA7CivlvbnkuI3otrMgPiB5YWt1YnVzb2t1XCA7Civms6jmhI/lipsgPiBjaHV1aXJ5b2t1XCA7CivohbnkuIrmrbsgPiBmdWt1am91c2hpXCA7Civnt6jpm4bogIUgPiBoZW5zaHV1c2hhXCA7CivluoPlkYrmnb8gPiBrb3Vrb2t1YmFuXCA7CivmuInnpr3poZ4gPiBzaG91a2lucnVpXCA7CivlgJLpjK/ogIUgPiB0b3VzYWt1c2hhXCA7CivmsLTnlrHnmKEgPiBtaXp1Ym91c291XCA7CivlubPnrYnmqKkgPiBieW91ZG91a2VuXCA7CivlpKfpnIfngb0gPiBkYWlzaGluc2FpXCA7Civph43nl4fkvosgPiBqdXVzaG91cmVpXCA7CivlnLDln5/nmoQgPiBjaGlpa2l0ZWtpXCA7CivlhbHnlKPns7sgPiBreW91c2Fua2VpXCA7CivplovplonmqYsgPiBrYWloZWlreW91XCA7CivotoXpm7vlsI4gPiBjaG91ZGVuZG91XCA7CivpmbPmg4Xmm7ggPiBjaGluam91c2hvXCA7CivmipXmqZ/nhrEgPiB0b3VraW5ldHN1XCA7Civlhpfoq4fkuosgPiBqb3VkYW5rb3RvXCA7CivmnIDpq5jntJogPiBzYWlrb3VreXV1XCA7CivmgJ3mg5HluKsgPiBvbW93YWt1c2hpXCA7Civopb/ml6XmnKwgPiBuaXNoaW5paG9uXCA7Civov5Hku6PnmoQgPiBraW5kYWl0ZWtpXCA7CivotoXlpKflnosgPiBjaG91b29nYXRhXCA7CivnoJXmsLfoiLkgPiBzYWloeW91c2VuXCA7CivmvIHmpa3ms5UgPiBneW9neW91aG91XCA7CivmnKrop6PmsbogPiBtaWthaWtldHN1XCA7Civlt6jkurrlm70gPiBreW9qaW5rb2t1XCA7CivmnIDlsI/pmZAgPiBzYWlzaG91Z2VuXCA7CivlhazlhbHmgKcgPiBrb3VreW91c2VpXCA7CivnhKHnsr7pq60gPiBidXNob3VoaWdlXCA7Civlt6Xlrablo6sgPiBrb3VnYWt1c2hpXCA7CivphZLpgKDmpa0gPiBzaHV6b3VneW91XCA7CivoibLpiZvnrYYgPiBpcm9lbnBpdHN1XCA7CivngavmiZPnn7MgPiBoaXVjaGlpc2hpXCA7CivphrjpgKDmpa0gPiBqb3V6b3VneW91XCA7CivljZjnnLzpj6EgPiB0YW5nYW5reW91XCA7CivmvIHmpa3mqKkgPiBneW9neW91a2VuXCA7Civnn7Pnga/nsaAgPiBpc2hpZG91cm91XCA7CivljZfmsLfmtIsgPiBuYW5weW91eW91XCA7CivpsYjloLTon7kgPiB0YXJhYmFnYW5pXCA7CivlsqHlsbHnnIwgPiBva2F5YW1ha2VuXCA7CivntKHnuL7lt6UgPiBib3VzZWtpa291XCA7CivotbfniIbolqwgPiBraWJha3V5YWt1XCA7Civnorroqo3mm7ggPiBrYWt1bmluc2hvXCA7CivoqpXnlJ/nn7MgPiB0YW5qb3VzZWtpXCA7CivpmLLoh63liaQgPiBib3VzaHV1emFpXCA7CivpjKvoo73lk4EgPiBzdXp1c2VpaGluXCA7CivosqjnianoiLkgPiBrYW1vdHN1c2VuXCA7CivkuIDloYHmiYsgPiBpY2hpcnVpc2h1XCA7CivohJrnt5rnvo4gPiBreWFrdXNlbmJpXCA7CivmnInkvqHniakgPiB5dXVrYWJ1dHN1XCA7CivmpI3nlJ/lm7MgPiBzaG9rdXNlaXp1XCA7Civnmbrmg4XmnJ8gPiBoYXRzdWpvdWtpXCA7Civnmb3msLTnpL4gPiBoYWt1c3Vpc2hhXCA7CivmjqHnrpfmoKogPiBzYWlzYW5rYWJ1XCA7CivplbfkuIHloLQgPiBuYWdhY2hvdWJhXCA7CivmnInlrZTomasgPiB5dXVrb3VjaHV1XCA7CivlpKnnhLbnl5ggPiB0ZW4nJ25lbnRvdVwgOwor5Zub5ouN5a2QID4geW9uYnlvdXNoaVwgOwor5YaX6ZW357O7ID4gam91Y2hvdWtlaVwgOwor5pel5pys5byPID4gbmlob25zaGlraVwgOwor5rqA5bm06b2iID4gbWFuJyduZW5yZWlcIDsKK+a2iOmYsuiJhyA+IHNob3Vib3V0ZWlcIDsKK+Wwj+a2suiDniA+IHNob3Vla2lob3VcIDsKK+mmluWUseiAhSA+IHNodXNob3VzaGFcIDsKK+aXpeacrOW5syA+IG5paG9uZGFpcmFcIDsKK+mJhOmdoueariA+IHRldHN1bWVucGlcIDsKK+S4u+aoqeWbvSA+IHNodWtlbmtva3VcIDsKK+iyt+aOm+mHkSA+IGthaWtha2VraW5cIDsKK+efs+eBsOefsyA+IHNla2thaXNla2lcIDsKK+exs+WVj+WxiyA+IGtvbWVkb24nJ3lhXCA7CivmgJ3mg7PliocgPiBzaGlzb3VnZWtpXCA7CivkuIflm73msJEgPiBiYW5rb2t1bWluXCA7Civli6flkYrnirYgPiBrYW5rb2t1am91XCA7CivmlZfljJfmhJ8gPiBoYWlib2t1a2FuXCA7Civlr4bovLjoiLkgPiBtaXRzdXl1c2VuXCA7Civlj6/lpInnv7wgPiBrYWhlbicneW9rdVwgOwor5YGP6aCt55ebID4gaGVudG91dHN1dVwgOwor5bm06b2i57WmID4gbmVucmVpa3l1dVwgOwor6YCP56OB546HID4gdG91amlyaXRzdVwgOwor5Y6E5LuL5LqLID4geWFra2FpZ290b1wgOwor5LyP5bCE5r+gID4gZnVrdXNoYWdvdVwgOwor5oe45aOF5Z6CID4ga2VuJyd5b3VzdWlcIDsKK+eVjOejgealtSA+IGthaWppa3lva3VcIDsKK+W/nOeUqOWKmyA+IG91eW91cnlva3VcIDsKK+aXpeabnOaXpSA+IG5pY2hpeW91YmlcIDsKK+a2iOmYsue9siA+IHNob3Vib3VzaG9cIDsKK+iyp+S5j+aApyA+IGJpbmJvdXNob3VcIDsKK+aguOW0qeWjiiA+IGtha3Vob3VrYWlcIDsKK+iqreabuOS8miA+IGRva3VzaG9rYWlcIDsKK+S4jea9lOaEnyA+IGZ1a2V0c3VrYW5cIDsKK+aVsOWtpuiAhSA+IHN1dWdha3VzaGFcIDsKK+iBtOWPluiAhSA+IGNob3VzaHVzaGFcIDsKK+iqreabuOS6uiA+IGRva3VzaG9qaW5cIDsKK+WJjeS7u+WcsCA+IHplbicnbmluY2hpXCA7CivmvIHoibLlrrYgPiBneW9zaG9rdWthXCA7Civoo73kvZzogIUgPiBzZWlzYWt1c2hhXCA7CivmsqHlgIvmgKcgPiBib3RzdWtvc2VpXCA7CivlhajlupfkuK0gPiB6ZW50ZW5jaHV1XCA7Civlrpjntablk4EgPiBrYW5reXV1aGluXCA7Civnmb3ph5Hml48gPiBoYWtraW56b2t1XCA7CivlpKnmloflraYgPiB0ZW5tb25nYWt1XCA7CivlhbXlrabogIUgPiBoZWlnYWt1c2hhXCA7CivlkIjllLHpmoogPiBnYXNzaG91dGFpXCA7CivkuI3miJDnq4sgPiBmdXNlaXJpdHN1XCA7CivnjK7ntI3lk4EgPiBrZW4nJ25vdWhpblwgOwor57Sw57KS5YiGID4gc2Fpcnl1dWJ1blwgOwor54yb57e057+SID4gbW91cmVuc2h1dVwgOwor5L6L5aSW55qEID4gcmVpZ2FpdGVraVwgOwor5Yq5546H5YyWID4ga291cml0c3VrYVwgOwor6Zmk6Jmr6I+KID4gam9jaHV1Z2lrdVwgOwor57SF55Sf5aecID4gYmVuaXNob3VnYVwgOwor5bmy5ouT5ZywID4ga2FudGFrdWNoaVwgOwor5YeN5YK36ICFID4gdG91c2hvdXNoYVwgOwor5Y2X5Y2X5p2xID4gbmFuJyduYW50b3VcIDsKK+WQjOWbveS6uiA+IGRvdWtva3VqaW5cIDsKK+ebrueahOiqniA+IG1va3V0ZWtpZ29cIDsKK+S4ieWbveW/lyA+IHNhbmdva3VzaGlcIDsKK+S6uueJqeeUuyA+IGppbmJ1dHN1Z2FcIDsKK+WQuOWFpeWZqCA+IGt5dXVueXV1a2lcIDsKK+mYsuWvkuacjSA+IGJvdWthbmZ1a3VcIDsKK+S/rumZoumVtyA+IHNodXVpbmNob3VcIDsKK+WbveWGheazlSA+IGtva3VuYWlob3VcIDsKK+aOoueptuiAhSA+IHRhbmt5dXVzaGFcIDsKK+WIneW/g+iAhSA+IHNob3NoaW5zaGFcIDsKK+acqumWi+eZuiA+IG1pa2FpaGF0c3VcIDsKK+W6g+WRiuWhlCA+IGtvdWtva3V0b3VcIDsKK+mWi+aLk+iAhSA+IGthaXRha3VzaGFcIDsKK+S6uumhnuWtpiA+IGppbnJ1aWdha3VcIDsKK+efpeaXpea0viA+IGNoaW5pY2hpaGFcIDsKK+acgOmrmOa9riA+IHNhaWtvdWNob3VcIDsKK+WkqeeEtua4ryA+IHRlbicnbmVua291XCA7Civlj43pgIblhZAgPiBoYW5neWFrdWppXCA7CivkuIDlm73ogIUgPiBpa2tva3Vtb25vXCA7Civlpb3mnZDmlpkgPiBrb3V6YWlyeW91XCA7CivlpKrpmb3mmqYgPiB0YWl5b3VyZWtpXCA7CivluLjnlKjnmZYgPiBqb3V5b3VoZWtpXCA7Civml6nmlZnogrIgPiBzb3VreW91aWt1XCA7CivmoLzlrZDnuJ4gPiBrb3VzaGlqaW1hXCA7Civlj43ou43nmoQgPiBoYW5ndW50ZWtpXCA7CivolqzljIXntJkgPiB5YWt1aG91c2hpXCA7CivlhbXmm7nplbcgPiBoZWlzb3VjaG91XCA7CivmvKLmloflraYgPiBrYW5idW5nYWt1XCA7CivmgKXlhYjpi5IgPiBreXV1c2VucG91XCA7Civlj6PlpYfpupcgPiBrdWNoaWdpcmVpXCA7CivooYzmlL/ms5UgPiBneW91c2VpaG91XCA7CivoirHoqIDokYkgPiBoYW5ha290b2JhXCA7CivpgIHph5HpoY0gPiBzb3VraW5nYWt1XCA7CivmsYLlqZrogIUgPiBreXV1a29uc2hhXCA7Civlho3oqr/mlbQgPiBzYWljaG91c2VpXCA7Civpoqjopovpto8gPiBrYXphbWlkb3JpXCA7Civln7fmlL/lrpggPiBzaGlzc2Vpa2FuXCA7Civog73mpb3loIIgPiBub3VnYWt1ZG91XCA7Civlpb3kuIvniakgPiBrb3VrYWJ1dHN1XCA7Civlj4znmbrmqZ8gPiBzb3VoYXRzdWtpXCA7CivlhazlhbHlgrUgPiBrb3VreW91c2FpXCA7CivmmKjlubTmnaUgPiBzYWt1bmVucmFpXCA7Civmj5DkvpvogIUgPiB0ZWlreW91c2hhXCA7CivphrjpgKDlraYgPiBqb3V6b3VnYWt1XCA7CivlvpfngrnlnI8gPiB0b2t1dGVua2VuXCA7Civlr6nnvo7lraYgPiBzaGluYmlnYWt1XCA7CivlpbPkvr/miYAgPiBvbicnbmFiZW5qb1wgOwor5ZGJ5pyN54mpID4gZ29mdWt1bW9ub1wgOwor55eH5YCZ576kID4gc2hvdWtvdWd1blwgOwor5qC85a2Q56qTID4ga291c2hpbWFkb1wgOwor5paH5piO5Zu9ID4gYnVubWVpa29rdVwgOwor6KGM5pS/5qipID4gZ3lvdXNlaWtlblwgOwor6YeR5pyo54qAID4ga2lubW9rdXNlaVwgOwor56eR5a2m55qEID4ga2FnYWt1dGVraVwgOwor5omL5pyt5Z6LID4gdGVmdWRhZ2F0YVwgOwor5YWo6Iis55qEID4gemVucGFudGVraVwgOwor54m55q6K6Yu8ID4gdG9rdXNodWtvdVwgOwor5Zyn57iu5oCnID4gYXNzaHVrdXNlaVwgOwor5a6Y5oi/6ZW3ID4ga2FuYm91Y2hvdVwgOwor55m956CC57OWID4gc2hpcm96YXRvdVwgOwor5pil5YiG54K5ID4gc2h1bmJ1bnRlblwgOwor5pen5Li75Lq6ID4ga3l1dXNodWppblwgOwor6JGJ57eR57SgID4geW91cnlva3Vzb1wgOwor5YaF6Z2i55qEID4gbmFpbWVudGVraVwgOwor6IK657WQ5qC4ID4gaGFpa2Vra2FrdVwgOwor5Zue5Y+O6YeRID4ga2Fpc2h1dWtpblwgOwor57a/5bi95a2QID4gd2F0YWJvdXNoaVwgOwor5oCl6YCy5rS+ID4ga3l1dXNoaW5oYVwgOwor6Iq46KGT6ZmiID4gZ2VpanV0c3VpblwgOwor5qa05by+56CyID4gcnl1dWRhbnBvdVwgOwor5YaS6Zm65b+DID4gYm91a2Vuc2hpblwgOwor5Y+v54eD54mpID4ga2FuZW5idXRzdVwgOwor5pel5pys5LiAID4gbmlob24nJ2ljaGlcIDsKK+S/rue3tOiAhSA+IHNodXVyZW5zaGFcIDsKK+WPjeWwhOmPoSA+IGhhbnNoYWt5b3VcIDsKK+S6jOebtOinkiA+IG5pY2hva2tha3VcIDsKK+Wei+WkieaPmyA+IGthdGFoZW5rYW5cIDsKK+WOu+WLoueJmyA+IGt5b3NlaXVzaGlcIDsKK+eKr+e9quWtpiA+IGhhbnphaWdha3VcIDsKK+WOn+exjeWcsCA+IGdlbnNla2ljaGlcIDsKK+aAp+mBk+W+syA+IHNlaWRvdXRva3VcIDsKK+W5s+a7keWMliA+IGhlaWthdHN1a2FcIDsKK+mDteS+v+eusSA+IHl1dWJpbmJha29cIDsKK+WPl+S/oeaWmSA+IGp1c2hpbnJ5b3VcIDsKK+WGjee1hOe5lCA+IHNhaXNvc2hpa2lcIDsKK+e+juihk+eVjCA+IGJpanV0c3VrYWlcIDsKK+S4jeetieW8jyA+IGZ1ZG91c2hpa2lcIDsKK+e0hOWumuabuCA+IHlha3Vqb3VzaG9cIDsKK+S4ieeuh+aXpSA+IHNhbmdhbmljaGlcIDsKK+eZuuelpeWcsCA+IGhhc3Nob3VjaGlcIDsKK+WLneaJi+WPoyA+IGthdHRlZ3VjaGlcIDsKK+Wklemjn+W+jCA+IHl1dXNob2t1Z29cIDsKK+aQrOWFpeaXpSA+IGhhbicnbnl1dWJpXCA7CivosarllYblsaQgPiBnb3VzaG91c291XCA7CivlpbTosYbohZAgPiB5YWtrb2RvdWZ1XCA7CivmhJ/opproq5YgPiBrYW5rYWt1cm9uXCA7Civlm73nlKPou4ogPiBrb2t1c2Fuc2hhXCA7CivkuI3mtYHpgJogPiBmdXJ5dXV0c3V1XCA7CivmqYvpoK3loKEgPiBreW91dG91aG91XCA7CivlpI/mmYLplpMgPiBuYXRzdWppa2FuXCA7Civnn7Pngq3lsaQgPiBzZWtpdGFuc291XCA7CivntbnkuIDljLkgPiBraW51aXBwaWtpXCA7Civlu7rnmb3mm7ggPiBrZW5wYWt1c2hvXCA7CivmtojpmLLms5UgPiBzaG91Ym91aG91XCA7CivkuK3ov5HmnbEgPiBjaHV1a2ludG91XCA7CivoqLzkurrlj7AgPiBzaG91bmluZGFpXCA7CivmsLTnlKPmpa0gPiBzdWlzYW5neW91XCA7CivlpYfmg7Pmm7IgPiBraXNvdWt5b2t1XCA7Civmr5TkvovlvI8gPiBoaXJlaXNoaWtpXCA7CivnlLfmiYDluK8gPiBvdG9rb2pvdGFpXCA7Civkv67mlbTniYggPiBzaHV1c2VpaGFuXCA7CivlhrfmsLTmtbQgPiByZWlzdWl5b2t1XCA7CivlpI/nvr3nuZQgPiBuYXRzdWJhb3JpXCA7CivopJLoqIDokYkgPiBob21la290b2JhXCA7Civkuovli5nmnLogPiBqaW11ZHp1a3VlXCA7CivkuLvlgqzlm70gPiBzaHVzYWlrb2t1XCA7CivlpKflpJbliIggPiBvb3NvdG9nYXJpXCA7CivmuIXnrpfkurogPiBzZWlzYW4nJ25pblwgOwor5L2P5rCR56WoID4ganV1bWluaHlvdVwgOwor54Sh57ea5bGAID4gbXVzZW5reW9rdVwgOwor5oKq5p2Q5paZID4gYWt1emFpcnlvdVwgOwor5pel54Wn6KiIID4gbmlzc2hvdWtlaVwgOwor5pSv5oyB546HID4gc2hpamlyaXRzdVwgOwor5LqM6YCj55m6ID4gbmlyZW5wYXRzdVwgOwor5YW36LGh55qEID4gZ3VzaG91dGVraVwgOwor5Ymv5oq15b2TID4gZnVrdXRlaXRvdVwgOwor6IO46Iac54KOID4ga3lvdW1ha3VlblwgOwor6Zmk5rm/5ZmoID4gam9zaGl0c3VraVwgOwor5LmX5o+b6aeFID4gbm9yaWthZWVraVwgOwor5Y+k5pys5bGLID4gZnVydWhvbicneWFcIDsKK+W3qOWkp+eXhyA+IGt5b2RhaXNob3VcIDsKK+efpeaXpeWutiA+IGNoaW5pY2hpa2FcIDsKK+eZveecvOimliA+IGhha3VnYW5zaGlcIDsKK+eFp+WwhOazlSA+IHNob3VzaGFob3VcIDsKK+i1pOS/oeWPtyA+IGFrYXNoaW5nb3VcIDsKK+mVt+aWueW9oiA+IGNob3Vob3VrZWlcIDsKK+S4h+WbveWPsiA+IGJhbmtva3VzaGlcIDsKK+mAoOWFteW7oCA+IHpvdWhlaXNob3VcIDsKK+adseS6rOa5viA+IHRvdWt5b3V3YW5cIDsKK+eLrOWJteaApyA+IGRva3Vzb3VzZWlcIDsKK+aUvua1queZliA+IGhvdXJvdWhla2lcIDsKK+ihjOaUv+WumCA+IGd5b3VzZWlrYW5cIDsKK+ayoei2o+WRsyA+IGJvdHN1c2h1bWlcIDsKK+mZtumFlOWigyA+IHRvdXN1aWt5b3VcIDsKK+WPjeWwhOinkiA+IGhhbnNoYWtha3VcIDsKK+WFrOeUn+a2ryA+IGtvdXNob3VnYWlcIDsKK+eJueWKueiWrCA+IHRva2tvdXlha3VcIDsKK+WkmumgheW8jyA+IHRha291c2hpa2lcIDsKK+ihqOaDheetiyA+IGh5b3Vqb3VraW5cIDsKK+WIqeebiueOhyA+IHJpZWtpcml0c3VcIDsKK+S4ieaLjeWtkCA+IHNhbmJ5b3VzaGlcIDsKK+mHj+iyqeW6lyA+IHJ5b3VoYW50ZW5cIDsKK+e3qOmbhuWtkCA+IGhlbnNodXVzaGlcIDsKK+WGl+mVt+aApyA+IGpvdWNob3VzZWlcIDsKK+m8u+ecvOmPoSA+IGhhbmFtZWdhbmVcIDsKK+WGheimlumPoSA+IG5haXNoaWt5b3VcIDsKK+i1pOe/oee/oCA+IGFrYXNob3ViaW5cIDsKK+eGseapn+mWoiA+IG5ldHN1a2lrYW5cIDsKK+aRguitt+iFuiA+IHNldHN1Z29zZW5cIDsKK+WvvuaKl+etliA+IHRhaWtvdXNha3VcIDsKK+i/keS7o+WKhyA+IGtpbmRhaWdla2lcIDsKK+W+ueW6leeahCA+IHRldHRlaXRla2lcIDsKK+attOS7o+WPsiA+IHJla2lkYWlzaGlcIDsKK+aXqeimi+ihqCA+IGhheWFtaWh5b3VcIDsKK+aKleWwhOinkiA+IHRvdXNoYWtha3VcIDsKK+ebo+edo+iAhSA+IGthbnRva3VzaGFcIDsKK+WFseeUo+WcjyA+IGt5b3VzYW5rZW5cIDsKK+Wun+ihjOS4rSA+IGppa2tvdWNodXVcIDsKK+eMm+aUu+aSgyA+IG1vdWtvdWdla2lcIDsKK+mbu+WtkOauuyA+IGRlbnNoaWtha3VcIDsKK+adkeW9ueWgtCA+IG11cmF5YWt1YmFcIDsKK+mZuOi7n+miqCA+IHJpa3VuYW5wdXVcIDsKK+aUv+ayu+iJsiA+IHNlaWppc2hva3VcIDsKK+avjeWtkOiNiSA+IGhhaGFrb2d1c2FcIDsKK+eJueW+heeUnyA+IHRva3V0YWlzZWlcIDsKK+S4reebpOaIpiA+IGNodXViYW5zZW5cIDsKK+iInui4j+mdtCA+IGJ1dG91Z3V0c3VcIDsKK+Wkp+mZquWvqSA+IGRhaWJhaXNoaW5cIDsKK+eEoee4geS7jyA+IG11ZW5ib3Rva2VcIDsKK+iqjeWumuiovCA+IG5pbnRlaXNob3VcIDsKK+e+juihk+abuCA+IGJpanV0c3VzaG9cIDsKK+ioiOmHj+azlSA+IGtlaXJ5b3Vob3VcIDsKK+WOn+aMr+WLlSA+IGdlbnNoaW5kb3VcIDsKK+WtpuiKuOS8miA+IGdha3VnZWlrYWlcIDsKK+iEguiCquW/gyA+IHNoaWJvdXNoaW5cIDsKK+eLuOmlgumjqSA+IHRhbnVraXVkb25cIDsKK+awtOeUo+W6gSA+IHN1aXNhbmNob3VcIDsKK+WQiOaGsueahCA+IGdvdWtlbnRla2lcIDsKK+S4u+S9k+eahCA+IHNodXRhaXRla2lcIDsKK+eqg+ebl+eLgiA+IHNldHRvdWt5b3VcIDsKK+Wls+S4gOiIrCA+IG9uJyduYWlwcGFuXCA7Civmsbrli53nt5ogPiBrZXNzaG91c2VuXCA7Civlj6PkuIrmiYsgPiBrdWNoaWpvdXp1XCA7Civlt6XloLTplbcgPiBrb3Vqb3VjaG91XCA7Civml5fkuozmtYEgPiBoYXRhbmlyeXV1XCA7CivljbPkvY3lvI8gPiBzb2t1aXNoaWtpXCA7Civmh5Dmn5TnrZYgPiBrYWlqdXVzYWt1XCA7Civlubvmg7PliocgPiBnZW5zb3VnZWtpXCA7Civkuovli5nlrqQgPiBqaW11c2hpdHN1XCA7CivotoXopo/liYcgPiBjaG91a2lzb2t1XCA7CivmoLjlrrbml48gPiBrYWt1a2F6b2t1XCA7CivlpJXmnIjlpJwgPiB5dXVkenVrZXlvXCA7CivlpKfooYbou4ogPiBkYWlzaHV1c2hhXCA7CivnhKHnsY3ogIUgPiBtdXNla2ltb25vXCA7Civml6Xni6zkvIogPiBuaWNoaWRva3VpXCA7Civmgqrnv5LmhaMgPiBha3VzaHV1a2FuXCA7CivnoavphbjpioUgPiByeXV1c2FuZG91XCA7CivmsLTnlKPlraYgPiBzdWlzYW5nYWt1XCA7Civlubjnpo/mhJ8gPiBrb3VmdWt1a2FuXCA7Civos6DlhJ/ph5EgPiBiYWlzaG91a2luXCA7CivlhbHnlKPlhZogPiBreW91c2FudG91XCA7CivoiLnmnb/loYAgPiBmdW5haXRhYmVpXCA7CivlhajlrabpgKMgPiB6ZW5nYWt1cmVuXCA7Civnm7TotbDot68gPiBjaG9rdXNvdXJvXCA7CivmsLfosYbohZAgPiBrb29yaWRvdWZ1XCA7CivlhaXlsYXogIUgPiBueXV1a3lvc2hhXCA7Civml6XpmbDogIUgPiBoaWthZ2Vtb25vXCA7CivntbbnuIHnt5ogPiB6ZXRzdWVuc2VuXCA7Civlk4HoqZXkvJogPiBoaW5weW91a2FpXCA7CivmsLTnk7bluqcgPiBtaXp1Z2FtZXphXCA7CivlkITlm6PkvZMgPiBrYWt1ZGFudGFpXCA7CivmnaXmnaXpgLEgPiByYWlyYWlzaHV1XCA7Civlm5vljYHpm4AgPiBzaGlqdXVrYXJhXCA7CivpgJrnlKjploAgPiB0c3V1eW91bW9uXCA7CivniKrmpYrmnp0gPiB0c3VtYXlvdWppXCA7CivmlaPpq6rlsYsgPiBzYW5wYXRzdXlhXCA7CivmoKHmraPliLcgPiBrb3VzZWl6dXJpXCA7Civpu5LnnLzpj6EgPiBrdXJvbWVnYW5lXCA7CivpgKDoiLnmpa0gPiB6b3VzZW5neW91XCA7CivoprPliofkvJogPiBrYW5nZWtpa2FpXCA7CivlhazlrrPnl4UgPiBrb3VnYWlieW91XCA7Civlj5fkv6HlgbQgPiBqdXNoaW5nYXdhXCA7CivkvIHmpa3lv4MgPiBraWd5b3VzaGluXCA7Civkv67nuZXlt6UgPiBzaHV1emVua291XCA7CivljZjouqvpioMgPiB0YW5zaGluanV1XCA7Civnmb7lubTnm64gPiBoeWFrdW5lbm1lXCA7CivmsqHnkIbmg7MgPiBib3RzdXJpc291XCA7CivpnZnohIjngo4gPiBqb3VteWFrdWVuXCA7Civlhajog73ogIUgPiB6ZW4nJ25vdXNoYVwgOwor5ZGJ5pyN5ZWGID4gZ29mdWt1c2hvdVwgOwor55yB6LOH5rqQID4gc2hvdXNoaWdlblwgOwor6ZuG5ZCI6KuWID4gc2h1dWdvdXJvblwgOwor56aB54WZ5bitID4ga2luJydlbnNla2lcIDsKK+mVt+aWueS9kyA+IGNob3Vob3V0YWlcIDsKK+WPl+S/oeS6uiA+IGp1c2hpbicnbmluXCA7Civml5fkuozml5IgPiBoYXRhbmlyeXV1XCA7CivmgKXlgZzou4ogPiBreXV1dGVpc2hhXCA7Civns57luqbog7ggPiBrdXNvZG9reW91XCA7CivmtojpmLLlo6sgPiBzaG91Ym91c2hpXCA7CivmnInnkIblvI8gPiB5dXVyaXNoaWtpXCA7CivntYLliJfou4ogPiBzaHV1cmVzc2hhXCA7CivmiYDmnInmoLwgPiBzaG95dXVrYWt1XCA7Civnn6Xopprnn6UgPiBjaGlrYWt1Y2hpXCA7CivpgYrmkoPmiYsgPiB5dXVnZWtpc2h1XCA7Civop6PnhrHliaQgPiBnZW5ldHN1emFpXCA7CivlupflsYvniakgPiB0ZW4nJ3lhbW9ub1wgOwor6YGK5pKD5oimID4geXV1Z2VraXNlblwgOwor5bGx5rC06ZajID4gc2Fuc3Vpa2FrdVwgOwor6Kqs5pWZ5birID4gc2Vra3lvdXNoaVwgOwor5bO25bid5Zu9ID4gdG91dGVpa29rdVwgOwor5Y2R5Yqj5ryiID4gaGlyZXRzdWthblwgOwor5YWo55Sf5ravID4gemVuc2hvdWdhaVwgOwor5YWo5Lya6KGGID4gemVua2Fpc2h1dVwgOwor5Y+O5a656ICFID4gc2h1dXlvdXNoYVwgOwor6Kej6ZuG5ZCIID4ga2Fpc2h1dWdvdVwgOwor55u45a++55qEID4gc291dGFpdGVraVwgOwor55+z54Gw5LmzID4gc2Vra2Fpbnl1dVwgOwor5YWx5pyJ6ICFID4ga3lvdXl1dXNoYVwgOwor5oyH5a6a5bitID4gc2hpdGVpc2VraVwgOwor5ZWG5ZOB5ZCNID4gc2hvdWhpbm1laVwgOwor5qC55pys55qEID4ga29ucG9udGVraVwgOwor576O6KGT5bGVID4gYmlqdXRzdXRlblwgOwor57ie5qih5qeYID4gc2hpbWFtb3lvdVwgOwor5raI6Ziy5ZujID4gc2hvdWJvdWRhblwgOwor5Lm+6JGh6JCEID4gaG9zaGlidWRvdVwgOwor57695qC56LuKID4gaGFuZWd1cnVtYVwgOwor55m65YuV5qmfID4gaGF0c3Vkb3VraVwgOwor6ZeY54mb5aOrID4gdG91Z3l1dXNoaVwgOwor5ZCM5oOF56WoID4gZG91am91aHlvdVwgOwor5YWl5Lya6YeRID4gbnl1dWthaWtpblwgOwor54ax56Gs5YyWID4gbmV0c3Vrb3VrYVwgOwor6ZeY54mb5aC0ID4gdG91Z3l1dWpvdVwgOwor5Y+N5a++56WoID4gaGFudGFpaHlvdVwgOwor5Ya35Y205ZmoID4gcmVpa3lha3VraVwgOwor5YCf5YWl6YeRID4ga2FyaWlyZWtpblwgOwor5ZWG5ZOB5Yi4ID4gc2hvdWhpbmtlblwgOwor5q2T5qW96KGXID4ga2FucmFrdWdhaVwgOwor56CU5YmK55ukID4ga2Vuc2FrdWJhblwgOwor5pys57GN5ZywID4gaG9uc2VraWNoaVwgOwor5rCX5qyd55eHID4ga2l1dHN1c2hvdVwgOwor5oGL5aWz5oi/ID4ga29pbnlvdWJvdVwgOwor6ISz56We57WMID4gbm91c2hpbmtlaVwgOwor6Iag5Y6f55eFID4ga291Z2VuYnlvdVwgOwor54m95Yi255CDID4ga2Vuc2Vpa3l1dVwgOwor5paw6YCg6Ii5ID4gc2hpbnpvdXNlblwgOwor5oSf6Kaa54K5ID4ga2Fua2FrdXRlblwgOwor5YG95ZCb5a2QID4gbmlzZWt1bnNoaVwgOwor5rG65Yud54K5ID4ga2Vzc2hvdXRlblwgOwor5aSa5pWw5rG6ID4gdGFzdXVrZXRzdVwgOwor5oSP6K2Y55qEID4gaXNoaWtpdGVraVwgOwor5Y+N5bCE55qEID4gaGFuc2hhdGVraVwgOwor5LiN5rS755m6ID4gZnVrYXBwYXRzdVwgOwor5Y+X6aCY6Ki8ID4ganVyeW91c2hvdVwgOwor57SU5paH5a2mID4ganVuYnVuZ2FrdVwgOwor54m55oCl5Yi4ID4gdG9ra3l1dWtlblwgOwor6buE6YeR6KGTID4gb3Vnb25qdXRzdVwgOwor5Luu5YuY5a6aID4ga2FyaWthbmpvdVwgOwor6ZyK6ZW36aGeID4gcmVpY2hvdXJ1aVwgOwor5YWo6Lqr5YOPID4gemVuc2hpbnpvdVwgOwor5a+G6Ly45ZOBID4gbWl0c3V5dWhpblwgOwor5pei6Kit57eaID4ga2lzZXRzdXNlblwgOwor5LqM6YCj5byPID4gbmlyZW5zaGlraVwgOwor5rib6YCf5p2QID4gZ2Vuc29rdXphaVwgOwor5YWJ56OB5rCXID4gaGlrYXJpamlraVwgOwor6Ki85piO5pu4ID4gc2hvdW1laXNob1wgOwor6ZaL5ouT5ZywID4ga2FpdGFrdWNoaVwgOwor6KiY6L+w5a2QID4ga2lqdXRzdXNoaVwgOwor5Luu5YWN6KixID4ga2FyaW1lbmt5b1wgOwor5Y2w6LGh55qEID4gaW5zaG91dGVraVwgOwor5pen5pWZ5b6SID4ga3l1dWt5b3V0b1wgOwor6LKo54mp5L6/ID4ga2Ftb3RzdWJpblwgOwor5pyJ5pyb5qCqID4geXV1Ym91a2FidVwgOwor5oWj5L6L55qEID4ga2FucmVpdGVraVwgOwor6Kaz55u45a2mID4ga2Fuc291Z2FrdVwgOwor6IKJ55So56iuID4gbmlrdXlvdXNodVwgOwor5Z+65Zyw5bGAID4ga2ljaGlreW9rdVwgOwor6KaW56We57WMID4gc2hpc2hpbmtlaVwgOwor6YGp5b+c55eHID4gdGVraW91c2hvdVwgOwor5Lit6auY55SfID4gY2h1dWtvdXNlaVwgOwor5LiL5rqW5YKZID4gc2hpdGFqdW5iaVwgOwor5L+h6aC85oSfID4gc2hpbnJhaWthblwgOwor55m66YW15LmzID4gaGFra291bnl1dVwgOwor5peF6Iq45Lq6ID4gdGFiaWdlaW5pblwgOwor5Lq66Zuq5bSpID4gaGl0b25hZGFyZVwgOwor5Li75L+h5Y+3ID4gc2h1c2hpbmdvdVwgOwor5L+h5aWJ6ICFID4gc2hpbnBvdXNoYVwgOwor5bC66LKr5rOVID4gc2hha2thbmhvdVwgOwor576O6KGT5ZOBID4gYmlqdXRzdWhpblwgOwor6YCa5L+h6LK7ID4gdHN1dXNoaW5oaVwgOwor5L+h6aC85oCnID4gc2hpbnJhaXNlaVwgOwor5oSf6Kaa5q+bID4ga2Fua2FrdW1vdVwgOwor6aCG5b+c5oCnID4ganVuJydub3VzZWlcIDsKK+W4uOe/kuiAhSA+IGpvdXNodXVzaGFcIDsKK+e+juihk+WPsiA+IGJpanV0c3VzaGlcIDsKK+aqgOmCo+WvuiA+IGRhbicnbmFkZXJhXCA7CivljYPmrbPpo7QgPiBjaGl0b3NlYW1lXCA7Civoo73mnZDmpa0gPiBzZWl6YWlneW91XCA7CivmlrDmqZ/ou7ggPiBzaGlua2lqaWt1XCA7CivogonppYXpoK0gPiBuaWt1bWFuanV1XCA7CivmsLTos4fmupAgPiBtaXp1c2hpZ2VuXCA7Civnmb3ps6XluqcgPiBoYWt1Y2hvdXphXCA7Civnmb7liIbmr5QgPiBoeWFrdWJ1bmhpXCA7Civoqabph5Hnn7MgPiBzaGlraW5zZWtpXCA7CivlhKrnrYnos54gPiB5dXV0b3VzaG91XCA7CivlpKfooYbntJkgPiB0YWlzaHV1c2hpXCA7CivoirHopovmmYIgPiBoYW5hbWlkb2tpXCA7CivloZfmk6bliaQgPiB0b3NhdHN1emFpXCA7CivmnKjoo73lk4EgPiBtb2t1c2VpaGluXCA7CivlhoXop5LnkIMgPiBuYWlrYWtreXV1XCA7CivppZLoiIzlrrYgPiBqb3V6ZXRzdWthXCA7CivnhrHlh6bnkIYgPiBuZXRzdXNob3JpXCA7CivmlrDlubnnt5ogPiBzaGlua2Fuc2VuXCA7Civli5XlkJHooaggPiBkb3Vrb3VoeW91XCA7CivkuqTpn7/oqakgPiBrb3VreW91c2hpXCA7CivmjKjmi7bnirYgPiBhaXNhdHN1am91XCA7CivpmaXmsqHmuZYgPiBrYW5ib3RzdWtvXCA7CivkuI3mtLvmuowgPiBmdWthcHBhdHN1XCA7Civkv6HlpKnnv4EgPiBzaGludGVuJydvdVwgOwor6LW36Zu75YqbID4ga2lkZW5yeW9rdVwgOwor6Y6u6a2C56WtID4gY2hpbmtvbnNhaVwgOwor6Ii25p2l5ZOBID4gaGFrdXJhaWhpblwgOwor5omL5aGp55q/ID4gdGVzaGlvemFyYVwgOwor6buS5bqV57+zID4ga3Vyb3Nva29oaVwgOwor5a2m55Sf5bi9ID4gZ2FrdXNlaWJvdVwgOwor5rC05qC95Z+5ID4gbWl6dXNhaWJhaVwgOwor5Za26YCg54mpID4gZWl6b3VidXRzdVwgOwor5pel54Wn5qipID4gbmlzc2hvdWtlblwgOwor5YWJ6YeP5a2QID4ga291cnlvdXNoaVwgOwor5LiH5oSa56+AID4gYmFuZ3VzZXRzdVwgOwor6IO954uC6KiAID4gbm91a3lvdWdlblwgOwor5pSv5oyB5YqbID4gc2hpamlyeW9rdVwgOwor57Wx6KiI6KGoID4gdG91a2VpaHlvdVwgOwor5YWI5Y+y5a2mID4gc2Vuc2hpZ2FrdVwgOwor56Gr6YW457SZID4gcnl1dXNhbnNoaVwgOwor5oCn5beu5YilID4gc2Vpc2FiZXRzdVwgOwor5pys5Zu95Lq6ID4gaG9uZ29rdWppblwgOwor5beo6KaW55qEID4ga3lvc2hpdGVraVwgOwor6Lui6L2N5qmfID4gdGVudGV0c3VraVwgOwor6KGo5b+g56KRID4gaHlvdWNodXVoaVwgOwor5Y+O6LOE572qID4gc2h1dXdhaXphaVwgOwor6Jas5Ymk5birID4geWFrdXphaXNoaVwgOwor5b6M6KaL5Lq6ID4ga291a2VuJyduaW5cIDsKK+mAo+eUqOW9oiA+IHJlbicneW91a2VpXCA7CivkvZnnmb3ms6ggPiB5b2hha3VjaHV1XCA7CivkvJ3ntbHnmoQgPiBkZW50b3V0ZWtpXCA7CivopqrmqKnogIUgPiBzaGlua2Vuc2hhXCA7CivlhoblpKnkupUgPiBtYXJ1dGVuam91XCA7CivlsJHlubTpmaIgPiBzaG91bmVuJydpblwgOwor5q206Z2S54KtID4gcmVraXNlaXRhblwgOwor6KCP5bel6Ii5ID4ga2FuaWtvdXNlblwgOwor55uu5YWr5YiGID4gbWVoYWNoaWJ1blwgOwor5Zub5Y2B6IKpID4gc2hpanV1a2F0YVwgOwor5qW96Kaz55qEID4gcmFra2FudGVraVwgOwor5b+D5YGc5q2iID4gc2hpbnRlaXNoaVwgOwor6YCf5bCE56CyID4gc29rdXNoYWhvdVwgOwor5aSa6KeS55qEID4gdGFrYWt1dGVraVwgOwor5paw5bu65p2QID4gc2hpbmtlbnphaVwgOwor5rG65Yud5oimID4ga2Vzc2hvdXNlblwgOwor5LiN5b+F6KaBID4gZnVoaXRzdXlvdVwgOwor5omB6Z2S55+zID4gaGVuc2Vpc2VraVwgOwor5Y+M55CD6I+MID4gc291a3l1dWtpblwgOwor5rC0576K576uID4gbWl6dXlvdWthblwgOwor5oqc5pys55qEID4gYmFwcG9udGVraVwgOwor5Y2Y55m65qmfID4gdGFucGF0c3VraVwgOwor6Lui6YCB5YWIID4gdGVuc291c2FraVwgOwor5YWl5Lya6ICFID4gbnl1dWthaXNoYVwgOwor5Li45pyo6Ii5ID4gbWFydWtpYnVuZVwgOwor5Li45pyo6IifID4gbWFydWtpYnVuZVwgOwor5biM6YeI5rayID4ga2lzaGFrdWVraVwgOwor5pyI5puc5pelID4gZ2V0c3V5b3ViaVwgOwor5pyA6LOD5rOVID4gc2FpY2hpbmhvdVwgOwor6Z2p5paw5rS+ID4ga2FrdXNoaW5oYVwgOwor5o6i5rGC6ICFID4gdGFua3l1dXNoYVwgOwor5oim55eF5q27ID4gc2VuYnlvdXNoaVwgOwor55S35oCn55qEID4gZGFuc2VpdGVraVwgOwor5Lmz6YW46I+MID4gbnl1dXNhbmtpblwgOwor5YmN54Wn54GvID4gemVuc2hvdXRvdVwgOwor6IW45o276LuiID4gY2hvdW5lbnRlblwgOwor6Kaq5YiG5qCqID4gb3lhYnVua2FidVwgOwor5a2m55So5ZOBID4gZ2FrdXlvdWhpblwgOwor54m55q6K5oCnID4gdG9rdXNodXNlaVwgOwor5Y2Y6Imy55S7ID4gdGFuc2hva3VnYVwgOwor5LuV56uL5Yi4ID4gc2hpdGF0ZWtlblwgOwor6Zmw5byB5oW2ID4ga2FnZWJlbmtlaVwgOwor5re36KGA5YWQID4ga29ua2V0c3VqaVwgOwor6LKp5aOy5YWDID4gaGFuYmFpbW90b1wgOwor5bi457+S54qvID4gam91c2h1dWhhblwgOwor5riF5ra85YmkID4gc2VpcnlvdXphaVwgOwor5pyA5bCP5YCkID4gc2Fpc2hvdWNoaVwgOwor5rC05peP6aSoID4gc3Vpem9rdWthblwgOwor5YWx54qv6ICFID4ga3lvdWhhbnNoYVwgOwor5a+/5Y+46aOvID4gc3VzaGltZXNoaVwgOwor5oCl6Lui5o+bID4ga3l1dXRlbmthblwgOwor5oub5b6F54q2ID4gc2hvdXRhaWpvdVwgOwor5omT5pKy5YK3ID4gZGFib2t1c2hvdVwgOwor54m55b6F5Yi4ID4gdG9rdXRhaWtlblwgOwor5q+S5Lq65Y+CID4gZG9rdW5pbmppblwgOwor5aSp56u66JG1ID4gdGVuamlrdWFvaVwgOwor5aWz5LiW5bivID4gb24nJ25ham90YWlcIDsKK+S6uumWk+eahCA+IG5pbmdlbnRla2lcIDsKK+iouuaWreabuCA+IHNoaW5kYW5zaG9cIDsKK+iYmuiLlOWtpiA+IHNlbnRhaWdha3VcIDsKK+WOn+eov+aWmSA+IGdlbmtvdXJ5b3VcIDsKK+ebo+edo+WumCA+IGthbnRva3VrYW5cIDsKK+WVhuWLmeecgSA+IHNob3VtdXNob3VcIDsKK+Wuo+WRiuabuCA+IHNlbmtva3VzaG9cIDsKK+WknOWknOS4rSA+IHlvcnV5b25ha2FcIDsKK+mAmuS/oeewvyA+IHRzdXVzaGluYm9cIDsKK+WghuepjeWyqSA+IHRhaXNla2lnYW5cIDsKK+aKkeeVmeaJgCA+IHlva3VyeXV1am9cIDsKK+aSnuacqOadliA+IHNodW1va3V6dWVcIDsKK+m7hOmHkeeOhyA+IG91Z29ucml0c3VcIDsKK+WghuepjeWxpCA+IHRhaXNla2lzb3VcIDsKK+WQiOWUseWboyA+IGdhc3Nob3VkYW5cIDsKK+WlveaVteaJiyA+IGtvdXRla2lzaHVcIDsKK+aWh+eroOmhjCA+IGJ1bnNob3VkYWlcIDsKK+mHkeeJqeWxiyA+IGthbmFtb25veWFcIDsKK+Wbo+iPiuelrSA+IGRhbmdpa3VzYWlcIDsKK+e3qeihnea2siA+IGthbnNob3Vla2lcIDsKK+WvhOWuv+iIjiA+IGtpc2h1a3VzaGFcIDsKK+a9nOacm+mPoSA+IHNlbmJvdWt5b3VcIDsKK+aWsOW3pue/vCA+IHNoaW5zYXlva3VcIDsKK+mBoeWPiueahCA+IHNva3l1dXRla2lcIDsKK+WQjOaDheW/gyA+IGRvdWpvdXNoaW5cIDsKK+S4i+eoveWPpCA+IHNoaXRhZ2Vpa29cIDsKK+ertuS6ieiAhSA+IGt5b3Vzb3VzaGFcIDsKK+WVhuW6l+ihlyA+IHNob3V0ZW5nYWlcIDsKK+eOieaJi+eusSA+IHRhbWF0ZWJha29cIDsKK+S4iuWNiui6qyA+IGpvdWhhbnNoaW5cIDsKK+a4rOWumuazlSA+IHNva3V0ZWlob3VcIDsKK+mZjeWcp+WJpCA+IGtvdWF0c3V6YWlcIDsKK+aApeWCvuaWnCA+IGt5dXVrZWlzaGFcIDsKK+S4oeajsumhniA+IHJ5b3VzZWlydWlcIDsKK+acgOS4iue0miA+IHNhaWpvdWt5dXVcIDsKK+WBg+aciOWIgCA+IGVuZ2V0c3V0b3VcIDsKK+eci+itt+WNkiA+IGthbmdvc290c3VcIDsKK+e9q+e3muihqCA+IGtlaXNlbmh5b3VcIDsKK+mHneWcn+ernCA+IGhhcmltb2d1cmFcIDsKK+eBr+WPsOWuiCA+IHRvdWRhaW1vcmlcIDsKK+S7ruWFjeeKtiA+IGthcmltZW5qb3VcIDsKK+W8vuiWrOW6qyA+IGRhbicneWFrdWtvXCA7CivlkIjms5XnmoQgPiBnb3Vob3V0ZWtpXCA7CivmjKvmipjmhJ8gPiB6YXNldHN1a2FuXCA7CivlubLokaHokIQgPiBob3NoaWJ1ZG91XCA7CivotaTmlrDogZ4gPiBha2FzaGluYnVuXCA7CivohqDnnYDoqp4gPiBrb3VjaGFrdWdvXCA7CivntYLmraLlvaIgPiBzaHV1c2hpa2VpXCA7Civlh7rmuK/oiLkgPiBzaHVra291c2VuXCA7CivovLjlhaXpoY0gPiB5dW55dXVnYWt1XCA7CivnlLLmrrvpoZ4gPiBrb3VrYWt1cnVpXCA7Civpmpzlo4HnlLsgPiBzaG91aGVraWdhXCA7CivmurbmjqXmqZ8gPiB5b3VzZXRzdWtpXCA7CivkuZfntYTlk6EgPiBub3Jpa3VtaWluXCA7CivohY7oh5Pnl4UgPiBqaW56b3VieW91XCA7Civlj6/mkKzlvI8gPiBrYWhhbnNoaWtpXCA7CivlgaXnrYblrrYgPiBrZW5waXRzdWthXCA7CivmraPkuK3nt5ogPiBzZWljaHV1c2VuXCA7CivljYPlubTplpMgPiBzZW4nJ25lbmthblwgOwor5qOS56OB55+zID4gYm91amlzaGFrdVwgOwor6Kaz6LOe6a2aID4ga2Fuc2hvdWd5b1wgOwor56We5a2m5qChID4gc2hpbmdha2tvdVwgOwor5L2c5qWt5pyNID4gc2FneW91ZnVrdVwgOwor55m6552A5omAID4gaGF0Y2hha3Vqb1wgOwor6Kaq6L+R5oSfID4gc2hpbmtpbmthblwgOwor5Lmx5rOl5rWBID4gcmFuZGVpcnl1dVwgOwor5b2T55u05ZOhID4gdG91Y2hva3VpblwgOwor57Wx6KiI55qEID4gdG91a2VpdGVraVwgOwor6Iq46KGT5a62ID4gZ2VpanV0c3VrYVwgOwor546E6Zai5YWIID4gZ2Vua2Fuc2FraVwgOwor5rex5rW36a2aID4gc2hpbmthaWd5b1wgOwor5ZCM5b+X55qEID4gZG91c2hpdGVraVwgOwor5L6h5Y2D6YeRID4gYXRhaXNlbmtpblwgOwor5Lmd5Zue5oimID4ga3l1dWthaXNlblwgOwor5Y2K5rC45LmFID4gaGFuJydlaWt5dXVcIDsKK+mbkeW9ueWppiA+IHphdHN1ZWtpZnVcIDsKK+WGt+WHjealrSA+IHJlaXRvdWd5b3VcIDsKK+S4oeeUn+mhniA+IHJ5b3VzZWlydWlcIDsKK+WEkuaVmeeahCA+IGp1a3lvdXRla2lcIDsKK+aPmumZuOiJpiA+IHlvdXJpa3VrYW5cIDsKK+mHjeisueaFjiA+IGp1dWtpbnNoaW5cIDsKK+WHjeixhuiFkCA+IHNoaW1pZG91ZnVcIDsKK+awuOiwt+WckiA+IG5hZ2F0YW5pZW5cIDsKK+S6jOanveW8jyA+IG5pc291c2hpa2lcIDsKK+ebuOS5l+epjSA+IHNvdWpvdXNla2lcIDsKK+iPjOmhnuWtpiA+IGtpbnJ1aWdha3VcIDsKK+mbkeW9ueWkqyA+IHphdHN1ZWtpZnVcIDsKK+aWsOWIiuabuCA+IHNoaW5rYW5zaG9cIDsKK+mdkuWwkeW5tCA+IHNlaXNob3VuZW5cIDsKK+aOqOmAsuiAhSA+IHN1aXNoaW5zaGFcIDsKK+WIl+W4reiAhSA+IHJlc3Nla2lzaGFcIDsKK+WbveeUo+WTgSA+IGtva3VzYW5oaW5cIDsKK+aHkOaXp+irhyA+IGthaWt5dXVkYW5cIDsKK+aer+iNieeGsSA+IGtvc291bmV0c3VcIDsKK+S4reeUsuadvyA+IGNodXVrYW5wYW5cIDsKK+e2v+Wun+ayuSA+IG1lbmppdHN1eXVcIDsKK+Wfi+S8j+atryA+IG1haWZ1a3VzaGlcIDsKK+WGhee3kuS6iyA+IG5haXNob2dvdG9cIDsKK+S4gOetieWNkiA+IGl0dG91c290c3VcIDsKK+elnuS7o+adiSA+IGppbmRhaXN1Z2lcIDsKK+WApOW1qeagqiA+IG5lZ2FzYWthYnVcIDsKK+aUv+ayu+WKmyA+IHNlaWppcnlva3VcIDsKK+etlOeUs+abuCA+IHRvdXNoaW5zaG9cIDsKK+S5seW/g+iAhSA+IHJhbnNoaW5zaGFcIDsKK+S6uumWk+alrSA+IG5pbmdlbndhemFcIDsKK+WFseisgOiAhSA+IGt5b3Vib3VzaGFcIDsKK+adpeizk+W4rSA+IHJhaWhpbnNla2lcIDsKK+iInui4j+absiA+IGJ1dG91a3lva3VcIDsKK+S/ruihjOiAhSA+IHNodWd5b3VzaGFcIDsKK+WztuagueecjCA+IHNoaW1hbmVrZW5cIDsKK+W8t+ehrOirliA+IGt5b3Vrb3Vyb25cIDsKK+azleayu+WbvSA+IGhvdWNoaWtva3VcIDsKK+S4jeW+l+etliA+IGZ1dG9rdXNha3VcIDsKK+WcqOexs+S4rSA+IHphaWJlaWNodXVcIDsKK+WMv+WQjeaApyA+IHRva3VtZWlzZWlcIDsKK+eZu+WxsemdtCA+IHRvemFuZ3V0c3VcIDsKK+W6p+aVt+eJoiA+IHphc2hpa2lyb3VcIDsKK+elnuagvOWMliA+IHNoaW5rYWt1a2FcIDsKK+i1pOWklue3miA+IHNla2lnYWlzZW5cIDsKK+iWrOeUqOmFkiA+IHlha3V5b3VzaHVcIDsKK+e1kOaguOiPjCA+IGtla2tha3VraW5cIDsKK+iNieWxpeiZqyA+IHpvdXJpbXVzaGlcIDsKK+Wkp+ihhuaApyA+IHRhaXNodXVzZWlcIDsKK+WvhOWuv+eUnyA+IGtpc2h1a3VzZWlcIDsKK+aYh+axnuawtCA+IHNob3Vrb3VzdWlcIDsKK+atpuiAheaFhCA+IG11c2hhYnVydWlcIDsKK+aWh+eroOirliA+IGJ1bnNob3Vyb25cIDsKK+eJuemBuOWTgSA+IHRva3VzZW5oaW5cIDsKK+i/keimquiAhSA+IGtpbnNoaW5zaGFcIDsKK+ikh+aVsOW9oiA+IGZ1a3VzdXVrZWlcIDsKK+W5vemCg+WigyA+IHl1dXN1aWt5b3VcIDsKK+WGjeaKleelqCA+IHNhaXRvdWh5b3VcIDsKK+S4jea0u+WLlSA+IGZ1a2F0c3Vkb3VcIDsKK+WFqOWvruWItiA+IHplbnJ5b3VzZWlcIDsKK+i/veaCvOS8miA+IHRzdWl0b3VrYWlcIDsKK+eZveWFteaIpiA+IGhha3VoZWlzZW5cIDsKK+iri+axguaoqSA+IHNlaWt5dXVrZW5cIDsKK+W/oOmciuWhlCA+IGNodXVyZWl0b3VcIDsKK+mamemWk+miqCA+IHN1a2ltYWthemVcIDsKK+WFseacieWcsCA+IGt5b3V5dXVjaGlcIDsKK+eJh+eCuuabvyA+IGthdGFnYXdhc2VcIDsKK+e3qeihneW8gSA+IGthbnNob3ViZW5cIDsKK+Wuv+agueiNiSA+IHNodWtrb25zb3VcIDsKK+Wkp+eri+iAhSA+IG9vZGF0ZW1vbm9cIDsKK+azsOWxseacqCA+IHRhaXNhbmJva3VcIDsKK+aKveexpOWIuCA+IGNodXVzZW5rZW5cIDsKK+ezuOeKtuiZqyA+IHNoaWpvdWNodXVcIDsKK+e1tue4geS9kyA+IHpldHN1ZW50YWlcIDsKK+mdkuaenOeJqSA+IHNlaWthYnV0c3VcIDsKK+mHjOiogOiRiSA+IHNhdG9rb3RvYmFcIDsKK+izvOiqreiAhSA+IGtvdWRva3VzaGFcIDsKK+Wjsuiyt+mrmCA+IGJhaWJhaWRha2FcIDsKK+aMuumAsumaiiA+IHRlaXNoaW50YWlcIDsKK+iEseawtOeXhyA+IGRhc3N1aXNob3VcIDsKK+WLp+mAsuW4syA+IGthbmppbmNob3VcIDsKK+aLoeW8teWMliA+IGtha3VjaG91a2FcIDsKK+auuuS6uumsvCA+IHNhdHN1amlua2lcIDsKK+a1geWLleaApyA+IHJ5dXVkb3VzZWlcIDsKK+Wbm+mHjeWUsSA+IHNoaWp1dXNob3VcIDsKK+aVmeiCsuiAhSA+IGt5b3Vpa3VzaGFcIDsKK+WPjeWvvuWBtCA+IGhhbnRhaWdhd2FcIDsKK+eQtOS4gOW8tSA+IGtvdG9pdGNob3VcIDsKK+WGheWcqOeahCA+IG5haXphaXRla2lcIDsKK+S4ieautei3syA+IHNhbmRhbnRvYmlcIDsKK+mjm+i6jeeahCA+IGhpeWFrdXRla2lcIDsKK+aJi+mVt+eMvyA+IHRlbmFnYXphcnVcIDsKK+iAgeecvOmPoSA+IHJvdWdhbmt5b3VcIDsKK+S7ruWHpuWIhiA+IGthcmlzaG9idW5cIDsKK+WFqOS6uuagvCA+IHplbmppbmtha3VcIDsKK+WIhuazjOeJqSA+IGJ1bnBpYnV0c3VcIDsKK+iri+axguabuCA+IHNlaWt5dXVzaG9cIDsKK+S4jeaxuuaWrSA+IGZ1a2V0c3VkYW5cIDsKK+WFiOWFiOmAsSA+IHNlbnNlbnNodXVcIDsKK+iHtOWRveeahCA+IGNoaW1laXRla2lcIDsKK+S5s+efs+iLsSA+IG55dXVzZWtpZWlcIDsKK+iyoeaUv+WtpiA+IHphaXNlaWdha3VcIDsKK+euoeW8pualvSA+IGthbmdlbmdha3VcIDsKK+mjsumjn+W6lyA+IGluc2hva3V0ZW5cIDsKK+e0meijveWTgSA+IGthbWlzZWloaW5cIDsKK+m7hOmHkeW+iyA+IG91Z29ucml0c3VcIDsKK+azleW+i+ahiCA+IGhvdXJpdHN1YW5cIDsKK+WNiuebsueXhyA+IGhhbm1vdXNob3VcIDsKK+ehnemFuOmKgCA+IHNob3VzYW5naW5cIDsKK+mYsue3j+ecgSA+IGJvdXNvdXNob3VcIDsKK+mAhuavlOS+iyA+IGd5YWt1aGlyZWlcIDsKK+aKleabuOeusSA+IHRvdXNob2Jha29cIDsKK+WfjuS4i+eUuiA+IGpvdWthbWFjaGlcIDsKK+eJueWIpeWnlCA+IHRva3ViZXRzdWlcIDsKK+adkeiKneWxhSA+IG11cmFzaGliYWlcIDsKK+e2meaBr+WtkCA+IG1hbWFtdXN1a29cIDsKK+eZuuS/oemfsyA+IGhhc3NoaW4nJ29uXCA7Civlm5vmrbvnkIMgPiBzaGlzaGlreXV1XCA7CivnjK7ph5HnrrEgPiBrZW5raW5iYWtvXCA7CivmiKbnlaXlrrYgPiBzZW5yeWFrdWthXCA7CivlhazogbTkvJogPiBrb3VjaG91a2FpXCA7CivmsJfprLHnl4cgPiBraXV0c3VzaG91XCA7CivopIfmlbDlm54gPiBmdWt1c3V1a2FpXCA7CivkvJroqIjlraYgPiBrYWlrZWlnYWt1XCA7CivnsKHnlaXljJYgPiBrYW5yeWFrdWthXCA7Civntabpm7vnt5ogPiBreXV1ZGVuc2VuXCA7CivlkInnpaXlpKkgPiBraXNzaG91dGVuXCA7CivlvqHlvbHnn7MgPiBtaWthZ2Vpc2hpXCA7CivlhoXlm73nlKMgPiBuYWlrb2t1c2FuXCA7Civpm6rmnIjoirEgPiBzZXRzdWdla2thXCA7Civnp4Hmm7jnrrEgPiBzaGlzaG9iYWtvXCA7Civnm7TmmKDppKggPiBjaG9rdWVpa2FuXCA7Civnl4XnkIblraYgPiBieW91cmlnYWt1XCA7CivlvqnliLvniYggPiBmdWtrb2t1YmFuXCA7CivpgIDlu4PnmoQgPiB0YWloYWl0ZWtpXCA7CivkurrplpPlraYgPiBuaW5nZW5nYWt1XCA7CivkuIvnnYDpoZ4gPiBzaGl0YWdpcnVpXCA7CivllJDlpInmnKggPiB0b3VoZW5ib2t1XCA7Civnt5rmkq7lvbEgPiBzZW5zYXRzdWVpXCA7CivmlrDnlJ/pnaIgPiBzaGluc2VpbWVuXCA7CivmlbDml6XlvowgPiBzdXVqaXRzdWdvXCA7CivotoXlkIjph5EgPiBjaG91Z291a2luXCA7CivlpJrlm73nsY0gPiB0YWtva3VzZWtpXCA7CivnqY3nrpfms5UgPiBzZWtpc2FuaG91XCA7CivlpJbngrrms5UgPiBnYWl0YW1laG91XCA7Civlh7rlk4HogIUgPiBzaHVwcGluc2hhXCA7CivopprphpLliaQgPiBrYWt1c2VpemFpXCA7Civpq5jlsbHonbYgPiBrb3V6YW5jaG91XCA7Civov5HnuIHlsZ4gPiBraW4nJ2Vuem9rdVwgOwor5LiK6YGU6YOoID4ga2FuZGFjaGltZVwgOwor5Y+v6Y2b6YmEID4ga2F0YW50ZXRzdVwgOwor5b+D55CG55qEID4gc2hpbnJpdGVraVwgOwor5LmX5o+b5Yi4ID4gbm9yaWthZWtlblwgOwor5pWZ6IKy55WMID4ga3lvdWlrdWthaVwgOwor6Zmw5qW157eaID4gaW5reW9rdXNlblwgOwor5Y2K6ImH6LqrID4gaGFudGVpc2hpblwgOwor6Kaq5YWE5byfID4gb3lha3lvdWRhaVwgOwor5peF6aSo5qWtID4gcnlva2FuZ3lvdVwgOwor5a2m5pyf5pyrID4gZ2Fra2ltYXRzdVwgOwor5Yiw5p2l54mpID4gdG91cmFpbW9ub1wgOwor5rKW5Luy5LuVID4gb2tpbmFrYXNoaVwgOwor5aSW5Zu96KO9ID4gZ2Fpa29rdXNlaVwgOwor57WC55uk5oimID4gc2h1dWJhbnNlblwgOwor6YCG5YWJ57eaID4gZ3lha2tvdXNlblwgOwor6LGh5b605rS+ID4gc2hvdWNob3VoYVwgOwor5Yun6YCy5YWDID4ga2FuamlubW90b1wgOwor6a2a6aGe5a2mID4gZ3lvcnVpZ2FrdVwgOwor57ie55Gq55GZID4gc2hpbWFtZW5vdVwgOwor55yf56m6566hID4gc2hpbmt1dWthblwgOwor6IiO5Yip5YilID4gc2hhcmliZXRzdVwgOwor5Lqs6Ziq56WeID4ga2VpaGFuc2hpblwgOwor5oWj57+S5rOVID4ga2Fuc2h1dWhvdVwgOwor6aCt6ZmA6KKLID4genVkYWJ1a3Vyb1wgOwor6Zmw5qW1566hID4gaW5reW9rdWthblwgOwor5re35ZKM54mpID4ga29ud2FidXRzdVwgOwor5YiA6Y2b5Ya2ID4ga2F0YW5ha2FqaVwgOwor5r2c5LyP5oCnID4gc2VucHVrdXNlaVwgOwor5oub5b6F5Yi4ID4gc2hvdXRhaWtlblwgOwor5Y+X6Zuj56+AID4ganVuYW5zZXRzdVwgOwor5ris5a6a5YCkID4gc29rdXRlaWNoaVwgOwor5YyW57Kn57SZID4ga2VzaG91Z2FtaVwgOwor5aSn5oay56ugID4gZGFpa2Vuc2hvdVwgOwor5Y2Y6Imy5YWJID4gdGFuc2hva2tvdVwgOwor55Sy5q6757axID4ga291a2FrdWtvdVwgOwor6ZuG5ZCI5L2TID4gc2h1dWdvdXRhaVwgOwor56uL5b6A55SfID4gdGFjaGlvdWpvdVwgOwor5a2Q5a6u6aC4ID4gc2hpa3l1dWtlaVwgOwor57WM6aiT55qEID4ga2Vpa2VudGVraVwgOwor5YyW57Kn566xID4ga2VzaG91YmFrb1wgOwor5LqM55Wq5pifID4gbmliYW5ib3NoaVwgOwor5rOV5b6L5a62ID4gaG91cml0c3VrYVwgOwor5rSX5r+v5p2/ID4gc2VudGFrdWl0YVwgOwor5ruR5rKi5YmkID4ga2F0dGFrdXphaVwgOwor5a++56ew5oCnID4gdGFpc2hvdXNlaVwgOwor5bCR5bm05rOVID4gc2hvdW5lbmhvdVwgOwor5b6z5bed5a62ID4gdG9rdWdhd2FrZVwgOwor5rWB5YuV5L2TID4gcnl1dWRvdXRhaVwgOwor57WC5YiK5Y+3ID4gc2h1dWthbmdvdVwgOwor55uj5L+u6ICFID4ga2Fuc2h1dXNoYVwgOwor5YWx57eo6ICFID4ga3lvdWhlbnNoYVwgOwor57Wx6KiI5a2mID4gdG91a2VpZ2FrdVwgOwor6Lyq6YOt57eaID4gcmlua2FrdXNlblwgOwor6LuN6Imm6bOlID4gZ3Vua2FuZG9yaVwgOwor5ZWG6Ii56ZqKID4gc2hvdXNlbnRhaVwgOwor6LaF5rqA5ZOhID4gY2hvdW1hbicnaW5cIDsKK+eJh+aJi+mNiyA+IGthdGF0ZW5hYmVcIDsKK+iCoemWouevgCA+IGtva2Fuc2V0c3VcIDsKK+iqv+WRs+aWmSA+IGNob3VtaXJ5b3VcIDsKK+WPiOWwj+S9nCA+IG1hdGFrb3Nha3VcIDsKK+S4jeato+ebtCA+IGZ1c2hvdWppa2lcIDsKK+a0quepjeWxpCA+IGtvdXNla2lzb3VcIDsKK+aknOWcp+WZqCA+IGtlbicnYXRzdWtpXCA7Civmn5PnianlsYsgPiBzb21lbW9ub3lhXCA7CivphY3ohrPkurogPiBoYWl6ZW4nJ25pblwgOwor5aKD55WM57eaID4ga3lvdWthaXNlblwgOwor6Z2Z54mp55S7ID4gc2VpYnV0c3VnYVwgOwor5pWZ6IKy5rOVID4ga3lvdWlrdWhvdVwgOwor5Y+O6ZuG6a2UID4gc2h1dXNodXVtYVwgOwor6Zui6IG36ICFID4gcmlzaG9rdXNoYVwgOwor5aCx5aWo6YeRID4gaG91c2hvdWtpblwgOwor6IKh6ZaT56+AID4ga29rYW5zZXRzdVwgOwor54mn5bir6aSoID4gYm9rdXNoaWthblwgOwor5Y2g6aCY6LuNID4gc2VucnlvdWd1blwgOwor5Lit55Sf5LujID4gY2h1dXNlaWRhaVwgOwor5LiL5Y2K5pyfID4gc2hpbW9oYW5raVwgOwor5pWZ5Lya5rOVID4ga3lvdWthaWhvdVwgOwor5Y6f5rC054iGID4gZ2Vuc3VpYmFrdVwgOwor5Yi657mN57O4ID4gc2hpc2h1dWl0b1wgOwor5pCt5LmX5qmLID4gdG91am91a3lvdVwgOwor55+z6bm4566xID4gc2Vra2VuYmFrb1wgOwor5Zue6Lui6Lu4ID4ga2FpdGVuamlrdVwgOwor5Yi75LiA5Yi7ID4ga29rdWlra29rdVwgOwor5Ym16YCg55qEID4gc291em91dGVraVwgOwor55e05ZGG55eHID4gY2hpaG91c2hvdVwgOwor5o6S5rC06YePID4gaGFpc3VpcnlvdVwgOwor5ZCE5oOF5aCxID4ga2FrdWpvdWhvdVwgOwor5qC45paH5rOVID4ga2FrdWJ1bnBvdVwgOwor5aSn44CF55qEID4gZGFpZGFpdGVraVwgOwor5aOy5LiK6auYID4gdXJpYWdlZGFrYVwgOwor5rex5oiQ5bKpID4gc2hpbnNlaWdhblwgOwor6IO45LiJ5a+4ID4gbXVuZXNhbnp1blwgOwor5b6X5oSP5a6iID4gdG9rdWlreWFrdVwgOwor5b605YW15Yi2ID4gY2hvdWhlaXNlaVwgOwor5oCn5pys6IO9ID4gc2VpaG9uJydub3VcIDsKK+S8keiouuaXpSA+IGt5dXVzaGluYmlcIDsKK+Wft+mHkemLvCA+IHNoaWtrb25nb3VcIDsKK+ernOearuW3uyA+IHJ5dXVoaW1ha2lcIDsKK+WbnuW4sOeGsSA+IGthaWtpbmV0c3VcIDsKK+elneizgOS8miA+IHNodWt1Z2FrYWlcIDsKK+eUn+a0u+iyuyA+IHNlaWthdHN1aGlcIDsKK+azleWLmeWxgCA+IGhvdW11a3lva3VcIDsKK+S4reWtpuagoSA+IGNodXVnYWtrb3VcIDsKK+aciOimi+iNiSA+IHRzdWtpbWlzb3VcIDsKK+mAmuS/l+WMliA+IHRzdXV6b2t1a2FcIDsKK+ebtOS6pOaApyA+IGNob2trb3VzZWlcIDsKK+eosueGseeXhSA+IGltb2NoaWJ5b3VcIDsKK+mrmOi4j+eahCA+IGtvdXRvdXRla2lcIDsKK+e1puaWmeaXpSA+IGt5dXVyeW91YmlcIDsKK+S4h+W5tOmdkiA+IG1hbicnbmVuc2VpXCA7CivlsI/liY3mj5AgPiBzaG91emVudGVpXCA7Civlha3kuInliLYgPiByb2t1c2Fuc2VpXCA7CivpgKDmnpflraYgPiB6b3VyaW5nYWt1XCA7Civlhajosqzku7sgPiB6ZW5zZWtpbmluXCA7CivnhafmmI7lvL4gPiBzaG91bWVpZGFuXCA7CivmhJvlm73lv4MgPiBhaWtva3VzaGluXCA7Civnn7Ppubjnmr8gPiBzZWtrZW56YXJhXCA7CivkuojlrproqqwgPiB5b3RlaXNldHN1XCA7CivohLPnoazloZ4gPiBub3Vrb3Vzb2t1XCA7Civnt4/lpKflsIYgPiBzb3VkYWlzaG91XCA7Civlp4vmnKvlsYsgPiBzaGltYXRzdXlhXCA7Civlm73mnInmnpcgPiBrb2t1eXV1cmluXCA7Civolqzlrabpg6ggPiB5YWt1Z2FrdWJ1XCA7CivmibnliKTlipsgPiBoaWhhbnJ5b2t1XCA7CivnrYnouqvlpKcgPiB0b3VzaGluZGFpXCA7Civnt4/mlLvmkoMgPiBzb3Vrb3VnZWtpXCA7Civpq5jlsbHnl4UgPiBrb3V6YW5ieW91XCA7CivkupTmnIjnpa0gPiBnb2dhdHN1c2FpXCA7Civou43mpb3pmoogPiBndW5nYWt1dGFpXCA7CivkuInph43llLEgPiBzYW5qdXVzaG91XCA7CivljZfkuqzosYYgPiBuYW5raW5tYW1lXCA7Civmm7LppqzluKsgPiBreW9rdWJhc2hpXCA7Civlia/lj7jku6QgPiBmdWt1c2hpcmVpXCA7CivmmLzml6XkuK0gPiBoaXJ1aGluYWthXCA7CivluLjorZjlrrYgPiBqb3VzaGlraWthXCA7CivoqIDokYnlsLsgPiBrb3RvYmFqaXJpXCA7CivogrrmtbjmvaQgPiBoYWlzaGluanVuXCA7CivogJXkvZzogIUgPiBrb3VzYWt1c2hhXCA7CivlkIzlv4PlhoYgPiBkb3VzaGluJydlblwgOwor6Ie05q276YePID4gY2hpc2hpcnlvdVwgOwor5byB6Ki86KuWID4gYmVuc2hvdXJvblwgOwor5paw55m75aC0ID4gc2hpbnRvdWpvdVwgOwor5by35Yqb57KJID4ga3lvdXJpa2lrb1wgOwor5LqI5YKZ5a6kID4geW9iaXNoaXRzdVwgOwor5bqX6aCt5qCqID4gdGVudG91a2FidVwgOwor55m65bCE6JasID4gaGFzc2hheWFrdVwgOwor5YyW57Kn5rC0ID4ga2VzaG91bWl6dVwgOwor5Y2B6YCy5rOVID4gamlzc2hpbmhvdVwgOwor5paH562G5a62ID4gYnVucGl0c3VrYVwgOwor5b6T6YeP56iOID4ganV1cnlvdXplaVwgOwor55Om5bGL5qC5ID4ga2F3YXJheWFuZVwgOwor6Zai5L+C6Kq/ID4ga2Fua2VpY2hvdVwgOwor5ZSv5b+D6KuWID4geXVpc2hpbnJvblwgOwor5Yqx5oyv566hID4gcmVpc2hpbmthblwgOwor5YWo5pel56m6ID4gemVuJyduaWtrdXVcIDsKK+S6jOaemuiFsCA+IG5pbWFpZ29zaGlcIDsKK+a1geWIkeWcsCA+IHJ5dXVrZWljaGlcIDsKK+a0quepjeS4liA+IGtvdXNla2lzZWlcIDsKK+mch+eBveWcsCA+IHNoaW5zYWljaGlcIDsKK+ecvOi7n+iGjyA+IGdhbicnbmFua291XCA7CivmsLTmmbbkvZMgPiBzdWlzaG91dGFpXCA7Civngrnmu4XlmaggPiB0ZW5tZXRzdWtpXCA7CivlhYTlvJ/liIYgPiBreW91ZGFpYnVuXCA7Civph5HploDmqYsgPiBraW5tb25reW91XCA7Civmma/li53lnLAgPiBrZWlzaG91Y2hpXCA7CivlhoXmjqXlhoYgPiBuYWlzZXRzdWVuXCA7CivnlJ/mtLvoi6YgPiBzZWlrYXRzdWt1XCA7CivmnbHnhaflrq4gPiB0b3VzaG91Z3V1XCA7Civlj5fpm6Pmm7IgPiBqdW5hbmt5b2t1XCA7Civlr77mtYHlnI8gPiB0YWlyeXV1a2VuXCA7CivljbHpmbrniakgPiBraWtlbmJ1dHN1XCA7CivnoJTkv67nlJ8gPiBrZW5zaHV1c2VpXCA7Civov5HopqrlqZogPiBraW5zaGlua29uXCA7CivkuqToqq3mlocgPiBrb3Vkb2t1YnVuXCA7CivohLPljZLkuK0gPiBub3Vzb3RjaHV1XCA7CivnhLzmrbvkvZMgPiBzaG91c2hpdGFpXCA7CivkuIDnpZ7mlZkgPiBpc3NoaW5reW91XCA7CivmtL7lh7rmiYAgPiBoYXNodXRzdWpvXCA7CivmjK/li5XoqIggPiBzaGluZG91a2VpXCA7CivlsYjmipjoqp4gPiBrdXNzZXRzdWdvXCA7Civmm7Lppqzlm6MgPiBreW9rdWJhZGFuXCA7Civms6jlsITmtrIgPiBjaHV1c2hhZWtpXCA7Civnpo/npoTlr78gPiBmdWt1cm9rdWp1XCA7CivntJnlkLnpm6ogPiBrYW1pZnVidWtpXCA7Civku7Lku4vogIUgPiBjaHV1a2Fpc2hhXCA7Civpm4bphY3kurogPiBzaHV1aGFpbmluXCA7CivlrprnpI7lvI8gPiB0ZWlzb3NoaWtpXCA7Civoo4HliKTplbcgPiBzYWliYW5jaG91XCA7Civpm7voqbHlsYAgPiBkZW53YWt5b2t1XCA7Civkv7jnpb/nsbMgPiBob3Vyb2t1bWFpXCA7CivoirHlkLnpm6ogPiBoYW5hZnVidWtpXCA7CivlhbXns6fnsbMgPiBoeW91cm91bWFpXCA7Civop5LntLDlt6UgPiB0c3Vub3phaWt1XCA7CivovLjpgIHlipsgPiB5dXNvdXJ5b2t1XCA7Civmnpfph47luoEgPiByaW4nJ3lhY2hvdVwgOwor5pSv6YWN55qEID4gc2hpaGFpdGVraVwgOwor5aSq6byT5qmLID4gdGFpa29iYXNoaVwgOwor566U5Yqb57KJID4gaGFrdXJpa2lrb1wgOwor542F5a2Q6by7ID4gc2hpc2hpYmFuYVwgOwor6YCj6ZqK6ZW3ID4gcmVudGFpY2hvdVwgOwor56uv5pyr5qmfID4gdGFubWF0c3VraVwgOwor5ZC55aWP5qW9ID4gc3Vpc291Z2FrdVwgOwor54ax5bCE55eFID4gbmVzc2hhYnlvdVwgOwor5b6z55So55O2ID4gdG9rdXlvdWJpblwgOwor5aSp5rSl56WeID4gYW1hdHN1a2FtaVwgOwor6ZmN5rC06YePID4ga291c3VpcnlvdVwgOwor5Ye66YeR6ICFID4gc2h1a2tpbnNoYVwgOwor5YW45Z6L55qEID4gdGVua2VpdGVraVwgOwor5Lit5p6i5oCnID4gY2h1dXN1dXNlaVwgOwor6L+35b2p5pyNID4gbWVpc2FpZnVrdVwgOwor5L2P5a6F6ZujID4ganV1dGFrdW5hblwgOwor5YyW57Kn5paZID4ga2VzaG91cnlvdVwgOwor5b+D55CG5a2mID4gc2hpbnJpZ2FrdVwgOwor6Iqz5ZCN6YyyID4gaG91bWVpcm9rdVwgOwor5YuV5Yqb54KJID4gZG91cnlva3Vyb1wgOwor5bCP5YWQ55eFID4gc2hvdW5pYnlvdVwgOwor5bCR5bm05ZujID4gc2hvdW5lbmRhblwgOwor5YWo6Z2i55qEID4gemVubWVudGVraVwgOwor5bCP5biC5rCRID4gc2hvdXNoaW1pblwgOwor5Ymv5qyh55qEID4gZnVrdWppdGVraVwgOwor5qSO6ZaT5p2/ID4gdHN1aWthbmJhblwgOwor6Kqy56iO546HID4ga2F6ZWlyaXRzdVwgOwor6YO15pS/55yBID4geXV1c2Vpc2hvdVwgOwor5aSP5aC05omAID4gbmF0c3ViYXNob1wgOwor5Y6a5YyW57KnID4gYXRzdWdlc2hvdVwgOwor5LqM5Lq657WEID4gZnV0YXJpZ3VtaVwgOwor6Ie05ZG95YK3ID4gY2hpbWVpc2hvdVwgOwor5Ymv6YO95b+DID4gZnVrdXRvc2hpblwgOwor55m65qGI6ICFID4gaGF0c3VhbnNoYVwgOwor5by35Yqb54qvID4gZ291cmlraWhhblwgOwor5rSX5r+v5LujID4gc2VudGFrdWRhaVwgOwor6YGK5rOz6KGTID4geXV1ZWlqdXRzdVwgOwor6KO96Zm25qWtID4gc2VpdG91Z3lvdVwgOwor55CD5bqn5qiZID4ga3l1dXphaHlvdVwgOwor5Y2g5pyJ5qipID4gc2VuJyd5dXVrZW5cIDsKK+ayiOS4geiKsSA+IGNoaW5jaG91Z2VcIDsKK+iRoeiQhOeJmSA+IHBvcnV0b2dhcnVcIDsKK+aVmeS8muWggiA+IGt5b3VrYWlkb3VcIDsKK+aUr+W6l+mVtyA+IHNoaXRlbmNob3VcIDsKK+W+oeW5tOeOiSA+IG90b3NoaWRhbWFcIDsKK+ilv+a0i+iRsSA+IHNlaXlvdW5lZ2lcIDsKK+eTnOWun+mhlCA+IHVyaXphbmVnYW9cIDsKK+ecn+epuuW4ryA+IHNoaW5rdXV0YWlcIDsKK+i/vemAgeaknCA+IHRzdWlzb3VrZW5cIDsKK+acquaxuueboyA+IG1pa2V0c3VrYW5cIDsKK+aZrumAmuagqiA+IGZ1dHN1dWthYnVcIDsKK+WVhuW6l+S4uyA+IHNob3V0ZW5zaHVcIDsKK+aOoeefs+WgtCA+IHNhaXNla2lqb3VcIDsKK+eJouWQjeS4uyA+IHJvdW5hbnVzaGlcIDsKK+e0r+mAsueojiA+IHJ1aXNoaW56ZWlcIDsKK+Wkp+ertuS6iSA+IGRhaWt5b3Vzb3VcIDsKK+ajruael+azlSA+IHNoaW5yaW5ob3VcIDsKK+WQjOmDt+S6uiA+IGRvdWt5b3VqaW5cIDsKK+a0vuWHuuWppiA+IGhhc2h1dHN1ZnVcIDsKK+WGheWbveWCtSA+IG5haWtva3VzYWlcIDsKK+aUr+W6pumHkSA+IHNoaXRha3VraW5cIDsKK+WGjea1uOekvCA+IHNhaXNoaW5yZWlcIDsKK+WbveacieWcsCA+IGtva3V5dXVjaGlcIDsKK+imquWxleabuCA+IHNoaW50ZW5zaG9cIDsKK+W7ieaBpeW/gyA+IHJlbmNoaXNoaW5cIDsKK+eahuaXoumjnyA+IGthaWtpc2hva3VcIDsKK+i7ouWxheWFiCA+IHRlbmt5b3Nha2lcIDsKK+mAo+e1oemnhSA+IHJlbnJha3Vla2lcIDsKK+mbu+ipseWPoyA+IGRlbndhZ3VjaGlcIDsKK+eyvuWLpOizniA+IHNlaWtpbnNob3VcIDsKK+WBpeW/mOeXhyA+IGtlbmJvdXNob3VcIDsKK+aVmeS8muWPsiA+IGt5b3VrYWlzaGlcIDsKK+WwkeW5tOS8miA+IHNob3VuZW5rYWlcIDsKK+i0i+aJi+e0mSA+IG5pc2V0ZWdhbWlcIDsKK+WHuuW+gei7jSA+IHNodXNzZWlndW5cIDsKK+ioiOeUu+iAhSA+IGtlaWtha3VzaGFcIDsKK+aVo+aWh+eahCA+IHNhbmJ1bnRla2lcIDsKK+aMuui6q+maiiA+IHRlaXNoaW50YWlcIDsKK+WPi+WlveeahCA+IHl1dWtvdXRla2lcIDsKK+WPrOWWmueKtiA+IHNob3VrYW5qb3VcIDsKK+iqjeiovOiAhSA+IG5pbnNob3VzaGFcIDsKK+W5tOeUo+mhjSA+IG5lbnNhbmdha3VcIDsKK+aPm+eul+ihqCA+IGthbnphbmh5b3VcIDsKK+aylue4hOecjCA+IG9raW5hd2FrZW5cIDsKK+aVkeS4lui7jSA+IGt5dXVzZWlndW5cIDsKK+a6gOi2s+aEnyA+IG1hbnpva3VrYW5cIDsKK+WlieWFrOWFiCA+IGhvdWtvdXNha2lcIDsKK+mbu+WgseaWmSA+IGRlbnBvdXJ5b3VcIDsKK+iNkuS6i+W4qyA+IGFyYWdvdG9zaGlcIDsKK+ahg+a6kOmDtyA+IHRvdWdlbmt5b3VcIDsKK+iTruaciOWwvCA+IHJlbmdldHN1bmlcIDsKK+e+veaWkeiaiiA+IGhhbWFkYXJha2FcIDsKK+engeabuOWHvSA+IHNoaXNob2Jha29cIDsKK+actOW/teS7gSA+IGJva3VuZW5qaW5cIDsKK+WtkOWurueZjCA+IHNoaWt5dXVnYW5cIDsKK+ejgeWKm+ioiCA+IGppcnlva3VrZWlcIDsKK+agueeykuiPjCA+IGtvbnJ5dXVraW5cIDsKK+e4puaXi+ebpCA+IHRhdGVzZW5iYW5cIDsKK+W4guW9ueaJgCA+IHNoaXlha3VzaG9cIDsKK+aknOa1geioiCA+IGtlbnJ5dXVrZWlcIDsKK+WNs+WjsuS8miA+IHNva3ViYWlrYWlcIDsKK+W7tuS6uuWToSA+IG5vYmVqaW4nJ2luXCA7Civoqr/lkIjliaQgPiBjaG91Z291emFpXCA7CivopoHnorroqo0gPiB5b3VrYWt1bmluXCA7CivluLjnt5HmqLkgPiBqb3VyeW9rdWp1XCA7CivpgbjnkIPnnLwgPiBzZW5reXV1Z2FuXCA7Civnn7PlkIjmiKYgPiBpc2hpZ2Fzc2VuXCA7CivlsIHlu7rnmoQgPiBob3VrZW50ZWtpXCA7Civpp5DlnKjmiYAgPiBjaHV1emFpc2hvXCA7CivkuJbluK/kuLsgPiBzZXRhaW51c2hpXCA7CivlubPluLjlv4MgPiBoZWlqb3VzaGluXCA7CivosYblj7DpoqggPiBtYW1ldGFpZnV1XCA7CivpibHlsbHmpa0gPiBrb3V6YW5neW91XCA7Civmp4vmlofmnKggPiBrb3VidW5tb2t1XCA7Civlj4LorIDplbcgPiBzYW5ib3VjaG91XCA7CivlhpnnnJ/ppKggPiBzaGFzaGlua2FuXCA7CivmiKbmmYLoibIgPiBzZW5qaXNob2t1XCA7CivkvY/lroXooZcgPiBqdXV0YWt1Z2FpXCA7CivpoJPnj43mvKIgPiB0b25jaGlua2FuXCA7CivlvLHphbjmgKcgPiBqYWt1c2Fuc2VpXCA7CivkuK3ku5XliIcgPiBuYWthamlraXJpXCA7CivliJ3oiJ7lj7AgPiBoYXRzdWJ1dGFpXCA7CivlhpnnnJ/poZQgPiBzaGFzaGluZ2FvXCA7CivljZfkuqznjokgPiBuYW5raW5kYW1hXCA7CivoiLnnsY3muK8gPiBzZW5zZWtpa291XCA7Civnh5DngbDnn7MgPiByaW5rYWlzZWtpXCA7CivkuIDlubTplpMgPiBpY2hpbmVua2FuXCA7CivpnZ7mjqXop6YgPiBoaXNlc3Nob2t1XCA7CivmjIHntprnmoQgPiBqaXpva3V0ZWtpXCA7Civllrbmpa3kuK0gPiBlaWd5b3VjaHV1XCA7CivotoXpgY7poY0gPiBjaG91a2FnYWt1XCA7CivpoJDosrjnjocgPiB5b3RhaXJpdHN1XCA7Civku6PnlKjogokgPiBkYWl5b3VuaWt1XCA7CivmmYLns7vliJcgPiBqaWtlaXJldHN1XCA7CivlrZDkvpvmnI0gPiBrb2RvbW9mdWt1XCA7CivoraboppbluoEgPiBrZWlzaGljaG91XCA7CivlhY3nlqvmgKcgPiBtZW4nJ2VraXNlaVwgOwor57O757Wx55qEID4ga2VpdG91dGVraVwgOwor6LuN55So6YeRID4gZ3VuJyd5b3VraW5cIDsKK+iNkuS7leS6iyA+IGFyYXNoaWdvdG9cIDsKK+eZu+WxseWuoiA+IHRvemFua3lha3VcIDsKK+S9juizg+mHkSA+IHRlaWNoaW5naW5cIDsKK+S+teWus+iAhSA+IHNoaW5nYWlzaGFcIDsKK+WjsuS4iuelqCA+IHVyaWFnZXB5b3VcIDsKK+aUvumAgeWKhyA+IGhvdXNvdWdla2lcIDsKK+aXpeeoi+ihqCA+IG5pdHRlaWh5b3VcIDsKK+WJr+iRrOWTgSA+IGZ1a3Vzb3VoaW5cIDsKK+aMv+WFpeaWhyA+IHNvdW55dXVidW5cIDsKK+WIneWtpuiAhSA+IHNob2dha3VzaGFcIDsKK+aVmee/kuaJgCA+IGt5b3VzaHV1am9cIDsKK+WFpeWgtOmWgCA+IG55dXVqb3Vtb25cIDsKK+WumOW6geihlyA+IGthbmNob3VnYWlcIDsKK+imj+WJh+eahCA+IGtpc29rdXRla2lcIDsKK+Wwj+WGiuWtkCA+IHNob3VzYXNzaGlcIDsKK+i8u+WwhOe3miA+IGZ1a3VzaGFzZW5cIDsKK+WNgemAsuWItiA+IGppc3NoaW5zZWlcIDsKK+ikh+ijveWTgSA+IGZ1a3VzZWloaW5cIDsKK+ifueW3peiIuSA+IGthbmlrb3VzZW5cIDsKK+ajruael+W4ryA+IHNoaW5yaW50YWlcIDsKK+e1kOaZtuezuyA+IGtlc3Nob3VrZWlcIDsKK+eEoeenqeW6jyA+IG11Y2hpdHN1am9cIDsKK+S4u+ims+eahCA+IHNodWthbnRla2lcIDsKK+egtOWjiuWKmyA+IGhha2Fpcnlva3VcIDsKK+S4ieavm+S9nCA+IHNhbm1vdXNha3VcIDsKK+ahp+earuiRuiA+IGhpd2FkYWJ1a2lcIDsKK+WKm+e5lOapnyA+IHJpa2lzaG9ra2lcIDsKK+WFremdouS9kyA+IHJva3VtZW50YWlcIDsKK+eZveS6uueoriA+IGhha3VqaW5zaHVcIDsKK+axjuelnuirliA+IGhhbnNoaW5yb25cIDsKK+S7ruWumuasviA+IGthcml0ZWlrYW5cIDsKK+e0jeeojumhjSA+IG5vdXplaWdha3VcIDsKK+iruOWkluWbvSA+IHNob2dhaWtva3VcIDsKK+WkluaOpeWGhiA+IGdhaXNldHN1ZW5cIDsKK+ijvee0mealrSA+IHNlaXNoaWd5b3VcIDsKK+mJm+ebtOe3miA+IGVuY2hva3VzZW5cIDsKK+W/g+mbu+ioiCA+IHNoaW5kZW5rZWlcIDsKK+emj+WIqeihqCA+IGZ1a3VyaWh5b3VcIDsKK+W+rueUn+eJqSA+IGJpc2VpYnV0c3VcIDsKK+Wuneefs+W6lyA+IGhvdXNla2l0ZW5cIDsKK+WJtealreiAhSA+IHNvdWd5b3VzaGFcIDsKK+mdqeijveWTgSA+IGthd2FzZWloaW5cIDsKK+W5s+W5tOS9nCA+IGhlaW5lbnNha3VcIDsKK+eUn+aFi+WtpiA+IHNlaXRhaWdha3VcIDsKK+eMv+iKneWxhSA+IHNhcnVzaGliYWlcIDsKK+WgtOWkluagqiA+IGpvdWdhaWthYnVcIDsKK+W8geiovOazlSA+IGJlbnNob3Vob3VcIDsKK+WNlOWumuabuCA+IGt5b3V0ZWlzaG9cIDsKK+S6lOaXrOevgCA+IGdvanVuc2V0c3VcIDsKK+WIneS7u+e1piA+IHNob25pbmt5dXVcIDsKK+mZuOabueetiSA+IHJpa3Vzb3V0b3VcIDsKK+WlveaIkOe4viA+IGtvdXNlaXNla2lcIDsKK+mAmuacieaApyA+IHRzdXV5dXVzZWlcIDsKK+iBtOWwjueKrCA+IGNob3Vkb3VrZW5cIDsKK+ejgeWKm+e3miA+IGppcnlva3VzZW5cIDsKK+mbouWpmueOhyA+IHJpa29ucml0c3VcIDsKK+ehnemFuOWhqSA+IHNob3VzYW4nJ2VuXCA7Civlho3norroqo0gPiBzYWlrYWt1bmluXCA7CivnmbrmoYjmqKkgPiBoYXRzdWFua2VuXCA7Civnmobml6LonZUgPiBrYWlraXNob2t1XCA7Civpharoo73lk4EgPiByYWt1c2VpaGluXCA7CivlnJ/mgKfpqqggPiBkb3Nob3Vib25lXCA7Civpgb/lporolqwgPiBoaW5pbicneWFrdVwgOwor55m655Sf5a2mID4gaGFzc2VpZ2FrdVwgOwor5Lq656iu55qEID4gamluc2h1dGVraVwgOwor56OB55+z55ukID4gamlzaGFrdWJhblwgOwor5aSn6JS157WMID4gZGFpem91a3lvdVwgOwor5rKz5Y6f6ba4ID4ga2F3YXJhaGl3YVwgOwor55WZ572u5aC0ID4gcnl1dWNoaWpvdVwgOwor6YCa6aKo5a2UID4gdHN1dWZ1dWtvdVwgOwor6KaB5rGC6ICFID4geW91a3l1dXNoYVwgOwor6KO957O45qWtID4gc2Vpc2hpZ3lvdVwgOwor55+l5oG16KKLID4gY2hpZWJ1a3Vyb1wgOwor57SZ6YmE56CyID4ga2FtaWRlcHBvdVwgOwor5Yid6aOb6KGMID4gaGF0c3VoaWtvdVwgOwor55m75bGx5Y+jID4gdG96YW5ndWNoaVwgOwor6LKv5rC06YePID4gY2hvc3VpcnlvdVwgOwor56S+5Lya6Y2LID4gc2hha2FpbmFiZVwgOwor5q6K5Yuy6LOeID4gc2h1a3Vuc2hvdVwgOwor6YGL5YuV6Z20ID4gdW5kb3VndXRzdVwgOwor5Lqk6Zqb5Zu9ID4ga291c2Fpa29rdVwgOwor5YWr5paH5a2XID4gaGFjaGltb25qaVwgOwor6ZaL55m66YOoID4ga2FpaGF0c3VidVwgOwor6Kq/5Y2w5Zu9ID4gY2hvdWlua29rdVwgOwor55u457aa56iOID4gc291em9rdXplaVwgOwor6J2L5Lq65b2iID4gcm91bmluZ3lvdVwgOwor5Lq65ZCN6YyyID4gamlubWVpcm9rdVwgOwor6JC956ys55SfID4gcmFrdWRhaXNlaVwgOwor5Yed54Gw5bKpID4gZ3lvdWthaWdhblwgOwor5Yip5LuY5YK1ID4gcml0c3VraXNhaVwgOwor5L2T6IWU5aOBID4gdGFpa291aGVraVwgOwor5oyH5o6M57SLID4gc2hpc2hvdW1vblwgOwor5aWH6Leh55qEID4ga2lzZWtpdGVraVwgOwor6JuL55m95rqQID4gdGFucGFrdWdlblwgOwor5pat5pyr6a2UID4gZGFubWF0c3VtYVwgOwor6Kmz5Lyd56S+ID4gc2hvdWRlbnNoYVwgOwor6JGs5YSA5byPID4gc291Z2lzaGlraVwgOwor5pCN5a6z6aGNID4gc29uZ2FpZ2FrdVwgOwor6YmE6Yu85qWtID4gdGVra291Z3lvdVwgOwor5LiA5bym55C0ID4gaWNoaWdlbmtpblwgOwor5pqX57Sr6ImyID4gYW5zaGlzaG9rdVwgOwor5YWI5Lu76aCGID4gc2VuJyduaW5qdW5cIDsKK+WlveaIpueahCA+IGtvdXNlbnRla2lcIDsKK+mYsumVt+WumCA+IGJvdWNob3VrYW5cIDsKK+awtOWcp+ioiCA+IHN1aWF0c3VrZWlcIDsKK+WkluWbveWLoiA+IGdhaWtva3V6ZWlcIDsKK+mfk+WbveS6uiA+IGthbmtva3VqaW5cIDsKK+aVoumXmOizniA+IGthbnRvdXNob3VcIDsKK+avkuimi+W9uSA+IGRva3VtaXlha3VcIDsKK+apn+WGhemjnyA+IGtpbmFpc2hva3VcIDsKK+ijj+eVque1hCA+IHVyYWJhbmd1bWlcIDsKK+WbvemYsuirliA+IGtva3Vib3Vyb25cIDsKK+WumOaxguWTgSA+IGthbmt5dXVoaW5cIDsKK+Wbvemam+e3miA+IGtva3VzYWlzZW5cIDsKK+iyuOmHkeW6qyA+IGthc2hpa2lua29cIDsKK+mAn+iomOihkyA+IHNva2tpanV0c3VcIDsKK+WbveiogOiRiSA+IGt1bmlrb3RvYmFcIDsKK+WMkOihjOeWuSA+IGZ1a2tvdXNoaW5cIDsKK+eUuuW3peWgtCA+IG1hY2hpa291YmFcIDsKK+iHs+aApeS+vyA+IHNoaWt5dXViaW5cIDsKK+WuneWGoOeroCA+IGhvdWthbnNob3VcIDsKK+ijveezlualrSA+IHNlaXRvdWd5b3VcIDsKK+iLpeaXpumCoyA+IHdha2FkYW4nJ25hXCA7CivmjJHmiKbogIUgPiBjaG91c2Vuc2hhXCA7CivpiYTpibHnn7MgPiB0ZWtrb3VzZWtpXCA7CivmqKrpmpTohpwgPiBvdWtha3VtYWt1XCA7CivlkIzmpa3ogIUgPiBkb3VneW91c2hhXCA7CivmtLvnlKjoqp4gPiBrYXRzdXlvdWdvXCA7Civmt7HlkbzlkLggPiBzaGlua29reXV1XCA7CivkuInnlarpto8gPiBzYW5iYW5kb3JpXCA7CivliKTku7vlrpggPiBoYW4nJ25pbmthblwgOwor5Ye65Yuk6ICFID4gc2h1a2tpbnNoYVwgOwor5aSW5Zu95YK1ID4gZ2Fpa29rdXNhaVwgOwor6YCj57Wh6Ii5ID4gcmVucmFrdXNlblwgOwor6JC956ys54K5ID4gcmFrdWRhaXRlblwgOwor6YCy6KGM55u4ID4gc2hpbmtvdXNvdVwgOwor5LiJ55Wq6bOlID4gc2FuYmFuZG9yaVwgOwor5rG65a6a55qEID4ga2V0dGVpdGVraVwgOwor6IKJ5paZ55CGID4gbmlrdXJ5b3VyaVwgOwor5paH5rOV55qEID4gYnVucG91dGVraVwgOwor5Zu95paH5rOVID4ga29rdWJ1bnBvdVwgOwor6LaF5byp57SaID4gY2hvdWRva3l1dVwgOwor5aSn6JS155yBID4gb29rdXJhc2hvdVwgOwor5oSf5oOF55qEID4ga2Fuam91dGVraVwgOwor5LmX5ZCI6Ii5ID4gbm9yaWFpYnVuZVwgOwor5b6z55So5ZOBID4gdG9rdXlvdWhpblwgOwor54eD5paZ5qOSID4gbmVucnlvdWJvdVwgOwor5LqM5pel6YWUID4gZnV0c3VrYXlvaVwgOwor56We57WM57O7ID4gc2hpbmtlaWtlaVwgOwor5Luu6K2w6ZW3ID4ga2FyaWdpY2hvdVwgOwor54us5pat6KuWID4gZG9rdWRhbnJvblwgOwor5aSW5Zu95Lq6ID4gZ2Fpa29rdWppblwgOwor54+N57Oe5ryiID4gY2hpbnB1bmthblwgOwor5oyv5YuV5p2/ID4gc2hpbmRvdWJhblwgOwor5Li75pWZ5YagID4gc2h1a3lvdWthblwgOwor5q2j5pWZ5birID4gc2Vpa3lvdXNoaVwgOwor57Sw6I+M5a2mID4gc2Fpa2luZ2FrdVwgOwor6ICV5L2c5ZywID4ga291c2FrdWNoaVwgOwor5pS56YCy5YWaID4ga2Fpc2hpbnRvdVwgOwor5LiJ5YiG5pCXID4gc2FuYnV0c3VraVwgOwor5LyR6ZaR5ZywID4ga3l1dWthbmNoaVwgOwor6LuN55So6ImmID4gZ3VuJyd5b3VrYW5cIDsKK+aWsOiBnue0mSA+IHNoaW5idW5zaGlcIDsKK+i8u+WwhOeCuSA+IGZ1a3VzaGF0ZW5cIDsKK+S4luS/l+eahCA+IHNlem9rdXRla2lcIDsKK+mHjeWcp+aEnyA+IGp1dWF0c3VrYW5cIDsKK+ixhumJhOegsiA+IG1hbWVkZXBwb3VcIDsKK+WEquengOWTgSA+IHl1dXNodXVoaW5cIDsKK+mHkeiejeeVjCA+IGtpbicneXV1a2FpXCA7Civlgo3ogbTliLggPiBib3VjaG91a2VuXCA7Civosq/ph5HnrrEgPiBjaG9raW5iYWtvXCA7Civlm73looPnt5ogPiBrb2treW91c2VuXCA7CivompXns7jmpa0gPiBzYW5zaGlneW91XCA7CivkuIDlubTojYkgPiBpY2hpbmVuc291XCA7Civpq5jlr4bluqYgPiBrb3VtaXRzdWRvXCA7CivlhY3nlqvkvZMgPiBtZW4nJ2VraXRhaVwgOwor56OB5rCX5bWQID4gamlraWFyYXNoaVwgOwor5oyv5YuV5pWwID4gc2hpbmRvdXN1dVwgOwor5aSn56S85pyNID4gdGFpcmVpZnVrdVwgOwor5pS56Imv56iuID4ga2FpcnlvdXNodVwgOwor5YyX5Zu95Lq6ID4gaG9ra29rdWppblwgOwor6YCj57Wh57eaID4gcmVucmFrdXNlblwgOwor54mi5b255Lq6ID4gcm91eWFrdW5pblwgOwor5YaF56Wd6KiAID4gbmFpc2h1dWdlblwgOwor5Y2K6Lqr5YOPID4gaGFuc2hpbnpvdVwgOwor5aSn6buS5aSpID4gZGFpa29rdXRlblwgOwor5LiN5YiG5YmyID4gZnVidW5rYXRzdVwgOwor6KW/5YyX6KW/ID4gc2VpaG9rdXNlaVwgOwor5Lit5LiW5Y+yID4gY2h1dXNlaXNoaVwgOwor5oCS6auq5aSpID4gZG9oYXRzdXRlblwgOwor5Y+N6Z2p5ZG9ID4gaGFua2FrdW1laVwgOwor5paw6IGe56S+ID4gc2hpbmJ1bnNoYVwgOwor5LiA5qmf6Lu4ID4gaWNoaWtpamlrdVwgOwor6ZuG6a2a54GvID4gc2h1dWd5b3RvdVwgOwor6Zuq6KaL6YWSID4geXVraW1pemFrZVwgOwor5Z2K5Li76aCtID4gYm91enVhdGFtYVwgOwor5YWI6aiT55qEID4gc2Vua2VudGVraVwgOwor6ZeH57Wm5LiOID4geWFtaWt5dXV5b1wgOwor5YKN6IG05Lq6ID4gYm91Y2hvdW5pblwgOwor5LqL5a6f5LiKID4gamlqaXRzdWpvdVwgOwor576p5L6g5b+DID4gZ2lreW91c2hpblwgOwor55So5rC05aCAID4geW91c3VpYm9yaVwgOwor5Luu5pmu6KuLID4ga2FyaWJ1c2hpblwgOwor5Y2g6aCY5ZywID4gc2VucnlvdWNoaVwgOwor5a+d6KOF5ZOBID4gc2hpbnNvdWhpblwgOwor55S65YaF5LyaID4gY2hvdW5haWthaVwgOwor5ZCM55uf5Zu9ID4gZG91bWVpa29rdVwgOwor55m66IKy5pyfID4gaGF0c3Vpa3VraVwgOwor6KqT57SE5pu4ID4gc2VpeWFrdXNob1wgOwor55m65bGV5LitID4gaGF0dGVuY2h1dVwgOwor6Iy255Wq55qEID4gY2hhYmFudGVraVwgOwor54m555Sj5ZOBID4gdG9rdXNhbmhpblwgOwor6KO957KJ5qWtID4gc2VpZnVuZ3lvdVwgOwor5raI5Y675rOVID4gc2hvdWt5b2hvdVwgOwor6IKb6ZaA5a2mID4ga291bW9uZ2FrdVwgOwor5aSn5Y+45pWZID4gZGFpc2hpa3lvdVwgOwor5aaE5oOz55eHID4gbW91c291c2hvdVwgOwor5b6h55So6YGUID4gZ295b3VkYXRzdVwgOwor5bGV56S654mpID4gdGVuamlidXRzdVwgOwor6Ieq5q666ICFID4gamlzYXRzdXNoYVwgOwor5bCE5bm45b+DID4gc2hha291c2hpblwgOwor5L2c5puy5a62ID4gc2Fra3lva3VrYVwgOwor5YWs5pWZ5LyaID4ga291a3lvdWthaVwgOwor6KiI55S75oCnID4ga2Vpa2FrdXNlaVwgOwor5YiH6L+r5oSfID4gc2VwcGFrdWthblwgOwor5Li45aSp5LqVID4gbWFydXRlbmpvdVwgOwor5p6i5a+G6ZmiID4gc3V1bWl0c3VpblwgOwor5Zub5YWt5YikID4gc2hpcm9rdWJhblwgOwor6L+95L2T6aiTID4gdHN1aXRhaWtlblwgOwor5YWl5aC06ICFID4gbnl1dWpvdXNoYVwgOwor5Y2K55eF5Lq6ID4gaGFuYnlvdW5pblwgOwor5o2c57Si6ZqKID4gc291c2FrdXRhaVwgOwor5Y+L5aW95Zu9ID4geXV1a291a29rdVwgOwor5q6/5LiK5Lq6ID4gdGVuam91Yml0b1wgOwor5oiq5pat5qmfID4gc2V0c3VkYW5raVwgOwor54Sh5rC054mpID4gbXVzdWlidXRzdVwgOwor5YGl5bq355qEID4ga2Vua291dGVraVwgOwor5paw5L2T5pONID4gc2hpbnRhaXNvdVwgOwor56m65Lit57eaID4ga3V1Y2h1dXNlblwgOwor55Sw6IiO6YGTID4gaW5ha2FtaWNoaVwgOwor5rOi5LmD6IqxID4gbmFtaW5vaGFuYVwgOwor5YG25YOP5pWZID4gZ3V1em91a3lvdVwgOwor56We6Kmx5a2mID4gc2hpbndhZ2FrdVwgOwor55u457aa5qipID4gc291em9rdWtlblwgOwor5oCn5pWZ6IKyID4gc2Vpa3lvdWlrdVwgOwor5YmN5ZOo57eaID4gemVuc2hvdXNlblwgOwor54us5aWP6ICFID4gZG9rdXNvdXNoYVwgOwor6LWk6KGA55CDID4gc2Vra2Vra3l1dVwgOwor5aSp5Y+w5a6XID4gdGVuZGFpc2h1dVwgOwor6LuN5qW95omLID4gZ3VuZ2FrdXNodVwgOwor6LuN6Imm5be7ID4gZ3Vua2FubWFraVwgOwor5pqX6KSQ6ImyID4gYW5rYXNzaG9rdVwgOwor6YCG5L2c55SoID4gZ3lha3VzYXlvdVwgOwor5oyR5oim54q2ID4gY2hvdXNlbmpvdVwgOwor5qSc6YeP57eaID4ga2VucnlvdXNlblwgOwor57ay5p2T5a2QID4gYW1pamFrdXNoaVwgOwor5YaN5rOo5paHID4gc2FpY2h1dW1vblwgOwor5YaF5Y+N6LazID4gbmFpaGFuc29rdVwgOwor56S+55So5pePID4gc2hheW91em9rdVwgOwor5bm05bCR6ICFID4gbmVuc2hvdXNoYVwgOwor5paw55Sf5LujID4gc2hpbnNlaWRhaVwgOwor5L+d566h54mpID4gaG9rYW5idXRzdVwgOwor5YSq5Yud6ICFID4geXV1c2hvdXNoYVwgOwor5pS56Imv54K5ID4ga2FpcnlvdXRlblwgOwor57Wm5o6S5rC0ID4ga3l1dWhhaXN1aVwgOwor5aSp55y86Y+hID4gdGVuZ2Fua3lvdVwgOwor5LiJ6YCj5YudID4gc2FucmVuc2hvdVwgOwor5LiN55m65by+ID4gZnVoYXRzdWRhblwgOwor5Y2K5a6Y55qEID4gaGFua2FudGVraVwgOwor5oyv5YuV5a2QID4gc2hpbmRvdXNoaVwgOwor5rS755m65YyWID4ga2FwcGF0c3VrYVwgOwor5Y+O6ZuG5a62ID4gc2h1dXNodXVrYVwgOwor6YW45YyW6YmEID4gc2Fua2F0ZXRzdVwgOwor5paw5Lq6546LID4gc2hpbmppbicnb3VcIDsKK+W7tuaXpeaVsCA+IG5vYmVuaXNzdXVcIDsKK+WlieeMrumgjCA+IGhvdWtlbnNob3VcIDsKK+iyuOW6l+iIlyA+IGthc2hpdGVucG9cIDsKK+S6jOS6uuWFsSA+IGZ1dGFyaXRvbW9cIDsKK+WPjuaWguWJpCA+IHNodXVyZW56YWlcIDsKK+Wbvemam+azlSA+IGtva3VzYWlob3VcIDsKK+mrmOWtpuW5tCA+IGtvdWdha3VuZW5cIDsKK+aguOeBveWusyA+IGtha3VzYWlnYWlcIDsKK+S8veiNieWtkCA+IHRvZ2l6b3VzaGlcIDsKK+eFveaDheeahCA+IHNlbmpvdXRla2lcIDsKK+iqjeiovOWumCA+IG5pbnNob3VrYW5cIDsKK+mkiuialealrSA+IHlvdXNhbmd5b3VcIDsKK+eBq+WxseiEiCA+IGthemFubXlha3VcIDsKK+iPnOeoruauuyA+IG5hdGFuZWdhcmFcIDsKK+mBv+aakeWuoiA+IGhpc2hva3lha3VcIDsKK+axjuW/g+irliA+IGhhbnNoaW5yb25cIDsKK+abuOipleashCA+IHNob2h5b3VyYW5cIDsKK+WFpeWgtOeojiA+IG55dXVqb3V6ZWlcIDsKK+ippuS9nOi7iiA+IHNoaXNha3VzaGFcIDsKK+eNhOS4reiomCA+IGdva3VjaHV1a2lcIDsKK+S5s+WFhOW8nyA+IGNoaWt5b3VkYWlcIDsKK+S6jOS4g+aXpSA+IGZ1dGFuYW5va2FcIDsKK+ato+aVmeS8miA+IHNlaWt5b3VrYWlcIDsKK+WFiOeUn+aWuSA+IHNlbnNlaWdhdGFcIDsKK+iNiembsumbgCA+IGt1c2FoaWJhcmlcIDsKK+S+jeW+k+iBtyA+IGppanV1c2hva3VcIDsKK+WcsOW9ouWtpiA+IGNoaWtlaWdha3VcIDsKK+S4gOebtOe3miA+IGl0Y2hva3VzZW5cIDsKK+WkqeecvOmAmiA+IHRlbmdhbnRzdXVcIDsKK+S7suiyt+S6uiA+IG5ha2FnYWluaW5cIDsKK+iWrOeQhuWtpiA+IHlha3VyaWdha3VcIDsKK+WbveaWh+WwgiA+IGtva3VidW5zZW5cIDsKK+S4gOW5tOeUnyA+IGljaGluZW5zZWlcIDsKK+WumuW8j+WMliA+IHRlaXNoaWtpa2FcIDsKK+WVhualreWMliA+IHNob3VneW91a2FcIDsKK+S4gOi8qui7iiA+IGljaGlyaW5zaGFcIDsKK+a7sueCremLvCA+IHNoaW50YW5rb3VcIDsKK+i7jeeUqOeKrCA+IGd1bicneW91a2VuXCA7Civlha3op5LloIIgPiByb2trYWt1ZG91XCA7CivluormmpbmiL8gPiB5dWthZGFuYm91XCA7CivnrYbkuI3nsr4gPiBmdWRlYnVzaG91XCA7CivlhazoqLzkurogPiBrb3VzaG91bmluXCA7CivoloTlipvnsokgPiBoYWt1cmlraWtvXCA7CivniafojYnlnLAgPiBib2t1c291Y2hpXCA7CivlsZ7mgKflgKQgPiB6b2t1c2VpY2hpXCA7Civop6Pmr5LolqwgPiBnZWRva3V5YWt1XCA7CivmuoDmnJ/ml6UgPiBtYW5raWppdHN1XCA7CivlkI3kvZzpgbggPiBtZWlzYWt1c2VuXCA7CivllYbnlKjmlocgPiBzaG91eW91YnVuXCA7Civlm73oqp7lraYgPiBrb2t1Z29nYWt1XCA7Civlj6/lj4rnmoQgPiBrYWt5dXV0ZWtpXCA7CivlhpnnnJ/nj60gPiBzaGFzaGluaGFuXCA7CivkuIDlhYPoq5YgPiBpY2hpZ2Vucm9uXCA7Civoqr/liaTluKsgPiBjaG91emFpc2hpXCA7CivljZjkuInlvaIgPiB0YW5zYW5nYXRhXCA7CivnlLLlhpHluKsgPiBrYXRjaHV1c2hpXCA7CivlhYjku7vogIUgPiBzZW4nJ25pbnNoYVwgOwor5puy57ea576OID4ga3lva3VzZW5iaVwgOwor5YWs57SE5pWwID4ga291eWFrdXN1dVwgOwor54ax54uC6ICFID4gbmVra3lvdXNoYVwgOwor5rC057SL5a2mID4gc3VpbW9uZ2FrdVwgOwor5Lq656iu5a2mID4gamluc2h1Z2FrdVwgOwor5q6L5b+N5oCnID4gemFuJyduaW5zZWlcIDsKK+ebuOmWoueahCA+IHNvdWthbnRla2lcIDsKK+WGmeecn+eJiCA+IHNoYXNoaW5iYW5cIDsKK+eUn+aBr+WcsCA+IHNlaXNva3VjaGlcIDsKK+efpeaAp+eahCA+IGNoaXNlaXRla2lcIDsKK+acqueZuumBlCA+IG1paGF0dGF0c3VcIDsKK+mWi+W5leaIpiA+IGthaW1ha3VzZW5cIDsKK+W+jOmFjeagqiA+IGtvdWhhaWthYnVcIDsKK+WBnOaziuWcsCA+IHRlaWhha3VjaGlcIDsKK+e9ueaCo+eOhyA+IHJpa2Fucml0c3VcIDsKK+mAsuihjOW9oiA+IHNoaW5rb3VrZWlcIDsKK+mBk+W+s+S4iiA+IGRvdXRva3Vqb3VcIDsKK+ekvuS8mueahCA+IHNoYWthaXRla2lcIDsKK+mch+a6kOWcsCA+IHNoaW5nZW5jaGlcIDsKK+aYn+mbsuiqrCA+IHNlaXVuc2V0c3VcIDsKK+ays+WOn+iAhSA+IGthd2FyYW1vbm9cIDsKK+a6uuatu+iAhSA+IGRla2lzaGlzaGFcIDsKK+a1t+WVhuazlSA+IGthaXNob3Vob3VcIDsKK+eQhumrquW6lyA+IHJpaGF0c3V0ZW5cIDsKK+mdqeWRvei7jSA+IGtha3VtZWlndW5cIDsKK+abuOiqjOWtpiA+IHNob3NoaWdha3VcIDsKK+eQhumrquW4qyA+IHJpaGF0c3VzaGlcIDsKK+S4luS/l+W/gyA+IHNlem9rdXNoaW5cIDsKK+mBqeS7u+iAhSA+IHRla2luaW5zaGFcIDsKK+WkieWcp+aJgCA+IGhlbicnYXRzdWpvXCA7CivmvKLmsJHml48gPiBrYW5taW56b2t1XCA7CivpgannlKjmgKcgPiB0ZWtpeW91c2VpXCA7Civnm7Toq4fliKQgPiBqaWthZGFucGFuXCA7Civog4zkv6HogIUgPiBoYWlzaGluc2hhXCA7CivnrYbogJXmlpkgPiBoaWtrb3VyeW91XCA7CivkvJ3ms5XogowgPiBkZW5ib3VoYWRhXCA7CivnuYrmr5vomasgPiBzZW5tb3VjaHV1XCA7Civnq7blo7LkurogPiBreW91YmFpbmluXCA7CivkvZzoqZ7ogIUgPiBzYWt1c2hpc2hhXCA7CivlronmrbvooZMgPiBhbnNoaWp1dHN1XCA7CivmqZ/li5XlipsgPiBraWRvdXJ5b2t1XCA7CivmnIDntYLlm54gPiBzYWlzaHV1a2FpXCA7CivkuLvopoHlm70gPiBzaHV5b3Vrb2t1XCA7Civlj43pmb3lrZAgPiBoYW4nJ3lvdXNoaVwgOwor5YaF5ZCR55qEID4gbmFpa291dGVraVwgOwor6Ziy5r2u5aCkID4gYm91Y2hvdXRlaVwgOwor5ray5pm255ukID4gZWtpc2hvdWJhblwgOwor56We57WM5oimID4gc2hpbmtlaXNlblwgOwor6buE5YWr5LiIID4ga2loYWNoaWpvdVwgOwor6KGo5LqM6ZqOID4gb21vdGVuaWthaVwgOwor6Kmm6aiT55qEID4gc2hpa2VudGVraVwgOwor5bGg5q665aC0ID4gdG9zYXRzdWpvdVwgOwor5peF5pSv5bqmID4gdGFiaWppdGFrdVwgOwor5pu457Ch6ZuGID4gc2hva2Fuc2h1dVwgOwor5aW95oim5Zu9ID4ga291c2Vua29rdVwgOwor5Za25p6X5bGAID4gZWlyaW5reW9rdVwgOwor54Sh6YeN5YqbID4gbXVqdXVyeW9rdVwgOwor6YG65aSx6ICFID4gaXNoaXRzdXNoYVwgOwor55Sf5b6X5qipID4gc2VpdG9rdWtlblwgOwor57Gz6aiS5YuVID4ga29tZXNvdWRvdVwgOwor5paw5L2T5Yi2ID4gc2hpbnRhaXNlaVwgOwor6KGA5riF5a2mID4ga2Vzc2VpZ2FrdVwgOwor6YOo6ZW36ZayID4gYnVjaG91ZXRzdVwgOwor5aSc5oOz5puyID4geWFzb3VreW9rdVwgOwor5qaC5b+155qEID4gZ2FpbmVudGVraVwgOwor56m65Lit5qipID4ga3V1Y2h1dWtlblwgOwor5ZGo6YGK5Yi4ID4gc2h1dXl1dWtlblwgOwor5Ym15L2c6ICFID4gc291c2FrdXNoYVwgOwor5ZCr57OW6YePID4gZ2FudG91cnlvdVwgOwor5YC557SE5a62ID4ga2VuJyd5YWt1a2FcIDsKK+WHuuW8teaJgCA+IHNodXRjaG91am9cIDsKK+euoeeQhuiBtyA+IGthbnJpc2hva3VcIDsKK+aBkOaAlueXhyA+IGt5b3VmdXNob3VcIDsKK+aUv+eVpeWutiA+IHNlaXJ5YWt1a2FcIDsKK+WFrOihhue2siA+IGtvdXNodXVtb3VcIDsKK+WFpeWgtOaoqSA+IG55dXVqb3VrZW5cIDsKK+edo+aIpumaiiA+IHRva3VzZW50YWlcIDsKK+WNg+e+vem2tCA+IHNlbmJhZHp1cnVcIDsKK+S9j+WuheWcsCA+IGp1dXRha3VjaGlcIDsKK+WGheaDkeaYnyA+IG5haXdha3VzZWlcIDsKK+ecn+ato+ebtCA+IG1hc2hvdWppa2lcIDsKK+Wto+evgOmiqCA+IGtpc2V0c3VmdXVcIDsKK+S9juWtpuW5tCA+IHRlaWdha3VuZW5cIDsKK+WtpuexjeewvyA+IGdha3VzZWtpYm9cIDsKK+eri+S9k+mPoSA+IHJpdHRhaWt5b3VcIDsKK+S6jOmgheW8jyA+IG5pa291c2hpa2lcIDsKK+eZvuaXpee0hSA+IHNhcnVzdWJlcmlcIDsKK+i7jeeVpeWutiA+IGd1bnJ5YWt1a2FcIDsKK+awkeitmumbhiA+IG1pbmRhbnNodXVcIDsKK+aFsOWVj+iiiyA+IGltb25idWt1cm9cIDsKK+a2iOefs+eBsCA+IHNob3VzZWtrYWlcIDsKK+WNmOS4gOWMliA+IHRhbicnaXRzdWthXCA7CivlsILnlKjou4ogPiBzZW4nJ3lvdXNoYVwgOwor5LuV6Iie54mpID4gc2hpbWFpbW9ub1wgOwor5aSn55m96bOlID4gb29oYWt1Y2hvdVwgOwor57ep5b6Q5puyID4ga2Fuam9reW9rdVwgOwor5YiA5Ymj5ZWGID4gdG91a2Vuc2hvdVwgOwor5Ly96Iqd5bGFID4gdG9naXNoaWJhaVwgOwor5aSc44CF5LitID4geW9ydXlvbmFrYVwgOwor5rCX6LGh5bqBID4ga2lzaG91Y2hvdVwgOwor54Cd6Z2S54KtID4gcmVraXNlaXRhblwgOwor5LiA5YaG546JID4gaWNoaWVuZGFtYVwgOwor542F5a2Q5a6uID4gc2hpc2hpa3l1dVwgOwor5beh5rSL6ImmID4ganVuJyd5b3VrYW5cIDsKK+W/hemcgOWTgSA+IGhpdHN1anVoaW5cIDsKK+S4jeS/oeeUqCA+IGZ1c2hpbicneW91XCA7CivmuKzlnLDnt5ogPiBzb2t1Y2hpc2VuXCA7Civpq5jmnKjlsaQgPiBrb3Vib2t1c291XCA7CivmoYPmupDlooMgPiB0b3VnZW5reW91XCA7CivooajlsaTmgKcgPiBoeW91c291c2VpXCA7Civlh7rluK3nsL8gPiBzaHVzc2VraWJvXCA7CivopqrnjovlpoMgPiBzaGluJydub3VoaVwgOwor6YWN57Wm57O7ID4gaGFpa3l1dWtlaVwgOwor5aSJ5Zyn5ZmoID4gaGVuJydhdHN1a2lcIDsKK+Wun+S9k+mPoSA+IGppdHRhaWt5b3VcIDsKK+WEquWLneadryA+IHl1dXNob3VoYWlcIDsKK+mBqeS4jemBqSA+IHRla2lmdXRla2lcIDsKK+ekvuS6pOeahCA+IHNoYWtvdXRla2lcIDsKK+mFjee1puexsyA+IGhhaWt5dXVtYWlcIDsKK+abuOiomOWxgCA+IHNob2tpa3lva3VcIDsKK+i0iOWPjuizhCA+IHpvdXNodXV3YWlcIDsKK+WHuOWHuee0mSA+IHRvdHN1b3VzaGlcIDsKK+ijgeWIpOS6uiA+IHNhaWJhbicnbmluXCA7Civku4rpgZPlv4MgPiBpbWFkb3VzaGluXCA7CivntLnku4vogIUgPiBzaG91a2Fpc2hhXCA7CivnqbrkuK3miKYgPiBrdXVjaHV1c2VuXCA7CivmsJfosaHlraYgPiBraXNob3VnYWt1XCA7Civnm7jntprkurogPiBzb3V6b2t1bmluXCA7CivooqvlkYrluK0gPiBoaWtva3VzZWtpXCA7CivkubPohILogqogPiBueXV1c2hpYm91XCA7CivovrLniaflnLAgPiBub3Vib2t1Y2hpXCA7CivmgqrmiK/lrZAgPiBpdGF6dXJha2tvXCA7CivlsITnmoTloLQgPiBzaGF0ZWtpam91XCA7CivliY3lk6jmiKYgPiB6ZW5zaG91c2VuXCA7Civms5XlrabogIUgPiBob3VnYWt1c2hhXCA7Civlhajlm73ntJkgPiB6ZW5rb2t1c2hpXCA7CivmlZHpm6PoiLkgPiBreXV1bmFuc2VuXCA7Civph5Hono3lgrUgPiBraW4nJ3l1dXNhaVwgOwor5LiK6LyJ5ZynID4gam91c2FpYXRzdVwgOwor5Y+j5Zan5ZipID4ga3VjaGlnZW5rYVwgOwor5oiQ5Lq655eFID4gc2VpamluYnlvdVwgOwor6Iqx5rC05pyoID4gaGFuYW1penVraVwgOwor6YCg5ZyS6KGTID4gem91ZW5qdXRzdVwgOwor5Lmz6IW654KOID4gbnl1dXNlbicnZW5cIDsKK+a1t+a1geeTtiA+IGthaXJ5dXViaW5cIDsKK+WIhuWFieWtpiA+IGJ1bmtvdWdha3VcIDsKK+awkeS4u+eahCA+IG1pbnNodXRla2lcIDsKK+eyvueZveezliA+IHNlaWhha3V0b3VcIDsKK+eEoeapn+izqiA+IG11a2lzaGl0c3VcIDsKK+mAmuipseaWmSA+IHRzdXV3YXJ5b3VcIDsKK+aUueiJr+WTgSA+IGthaXJ5b3VoaW5cIDsKK+eyvueZveexsyA+IHNlaWhha3VtYWlcIDsKK+W/q+WJiumLvCA+IGthaXNha3Vrb3VcIDsKK+aXpeWQkeawtCA+IGhpbmF0YW1penVcIDsKK+aJh+aDheeahCA+IHNlbmpvdXRla2lcIDsKK+mZquWvqeWToSA+IGJhaXNoaW4nJ2luXCA7CivluKvlm6PplbcgPiBzaGlkYW5jaG91XCA7CivntYTogbfkvZMgPiBzb3Nob2t1dGFpXCA7Civmnpzlrp/phZIgPiBrYWppdHN1c2h1XCA7Civlqb/ppIrlrZAgPiBtdWtveW91c2hpXCA7CivlhpnnnJ/luKsgPiBzaGFzaGluc2hpXCA7CivkuIvmpJzmn7sgPiBzaGl0YWtlbnNhXCA7CivpoqjpgqrolqwgPiBrYXplZ3VzdXJpXCA7CivlhKrli53miKYgPiB5dXVzaG91c2VuXCA7CivpgKPntprkvZMgPiByZW56b2t1dGFpXCA7CivlpKnliJHnl4UgPiB0ZW5rZWlieW91XCA7CivljYrnv4Xnm64gPiBoYW5zaGltb2t1XCA7CivojLbnlarliocgPiBjaGFiYW5nZWtpXCA7CivlhpnnnJ/lsYsgPiBzaGFzaGluJyd5YVwgOwor6Imv5bCO5L2TID4gcnlvdWRvdXRhaVwgOwor5pWR5LiW5Li7ID4ga3l1dXNlaXNodVwgOwor5rKT5omL6bOlID4gaG90b3RvZ2lzdVwgOwor5pyq552A5omLID4gbWljaGFrdXNodVwgOwor5L2c6Kmp5rOVID4gc2FrdXNoaWhvdVwgOwor55yf6a2a6bC5ID4gbWFuYWdhdHN1b1wgOwor5Ye65by15ZOhID4gc2h1dGNob3VpblwgOwor5Lq65Yqb6LuKID4gamlucmlraXNoYVwgOwor5Zu96Zqb5Lq6ID4ga29rdXNhaWppblwgOwor5ris6ZW35qmfID4gc29rdWNob3VraVwgOwor5bCP5Li76KazID4gc2hvdXNodWthblwgOwor5a6f6Le155qEID4gamlzc2VudGVraVwgOwor6YCj57WQ5ZmoID4gcmVua2V0c3VraVwgOwor6ICQ5LmF5oCnID4gdGFpa3l1dXNlaVwgOwor5p2J5Lim5pyoID4gc3VnaW5hbWlraVwgOwor57WC5LqG5b6MID4gc2h1dXJ5b3Vnb1wgOwor5aSp6YGT5qeYID4gdGVudG91c2FtYVwgOwor5pKu5b2x6ZqKID4gc2F0c3VlaXRhaVwgOwor6Iqx6I+W6JKyID4gaGFuYXNob3VidVwgOwor5qSc55y86Y+hID4ga2VuZ2Fua3lvdVwgOwor6YW45YyW54mpID4gc2Fua2FidXRzdVwgOwor5bCP5L2c5paZID4ga29zYWt1cnlvdVwgOwor5bq25rCR55qEID4gc2hvbWludGVraVwgOwor6Lyq6Iie5puyID4gcmluYnVreW9rdVwgOwor5YeN57WQ5ZmoID4gdG91a2V0c3VraVwgOwor5aSP6Jyc5p+RID4gbmF0c3VtaWthblwgOwor562J5pa555qEID4gdG91aG91dGVraVwgOwor5bKp5riF5rC0ID4gaXdhc2hpbWl6dVwgOwor56uL5qGI6ICFID4gcml0c3VhbnNoYVwgOwor6JGX6L+w5a62ID4gY2hvanV0c3VrYVwgOwor6ISz5qKF5q+SID4gbm91YmFpZG9rdVwgOwor6LuN55So5ZOBID4gZ3VuJyd5b3VoaW5cIDsKK+WDleS7sumWkyA+IGJva3VuYWthbWFcIDsKK+mbo+imluiBtCA+IG5hbnNoaWNob3VcIDsKK+W+s+e+qeW/gyA+IHRva3VnaXNoaW5cIDsKK+WIuua/gOaApyA+IHNoaWdla2lzZWlcIDsKK+mAo+e1oeWFiCA+IHJlbnJha3VzZW5cIDsKK+i/kea1t+eJqSA+IGtpbmthaW1vbm9cIDsKK+adsea0i+mAmiA+IHRvdXlvdXRzdXVcIDsKK+mJhOegsueOiSA+IHRlcHBvdWRhbWFcIDsKK+S+oeagvOihqCA+IGtha2FrdWh5b3VcIDsKK+iqv+WBnOiAhSA+IGNob3V0ZWlzaGFcIDsKK+attOWPsuimsyA+IHJla2lzaGlrYW5cIDsKK+W7uuevieiyuyA+IGtlbmNoaWt1aGlcIDsKK+S6uuaDheWKhyA+IG5pbmpvdWdla2lcIDsKK+WkmuelnuaVmSA+IHRhc2hpbmt5b3VcIDsKK+WJjeWTqOWcsCA+IHplbnNob3VjaGlcIDsKK+S4gOW6puS4iCA+IGljaGlkb2Rha2VcIDsKK+mAo+e1oeS8miA+IHJlbnJha3VrYWlcIDsKK+S4gOiIrOiBtyA+IGlwcGFuc2hva3VcIDsKK+ekvuS8muWtpiA+IHNoYWthaWdha3VcIDsKK+WBteWvn+apnyA+IHRlaXNhdHN1a2lcIDsKK+WvneWPsOi7iiA+IHNoaW5kYWlzaGFcIDsKK+W5tOS7o+eJqSA+IG5lbmRhaW1vbm9cIDsKK+S4oeabv+S6uiA+IHJ5b3VnYWVuaW5cIDsKK+WQiOagvOiAhSA+IGdvdWtha3VzaGFcIDsKK+WwgueUqOe3miA+IHNlbicneW91c2VuXCA7CivluK/ln5/luYUgPiB0YWlpa2loYWJhXCA7CivliJ3kuIDlv7UgPiBzaG9pY2hpbmVuXCA7CivntLnku4vnirYgPiBzaG91a2Fpam91XCA7Civmtojmr5LlmaggPiBzaG91ZG9rdWtpXCA7Civml6bpgqPooYYgPiBkYW4nJ25hc2h1dVwgOwor5aCF5L+h56S8ID4ga2Vuc2hpbnJlaVwgOwor5a6Y5YWs5bqBID4ga2Fua291Y2hvdVwgOwor6IG06IGe5YOnID4gY2hvdW1vbnNvdVwgOwor5aSq5bmz5qW9ID4gdGFpaGVpcmFrdVwgOwor5Lih5aSp56ekID4gcnlvdXRlbmJpblwgOwor5a2U6ZuA55+zID4ga3VqYWt1c2VraVwgOwor5Ym15L2c5qipID4gc291c2FrdWtlblwgOwor6Imy5LqL5birID4gaXJvZ290b3NoaVwgOwor6ZmN6a2U6KGTID4ga291bWFqdXRzdVwgOwor5bCR6LOH5pysID4gc2hvdXNoaWhvblwgOwor6LOH55Sj5qCqID4gc2hpc2Fua2FidVwgOwor5oGQ5oCW5b+DID4ga3lvdWZ1c2hpblwgOwor5a6f6aiT55qEID4gamlra2VudGVraVwgOwor5L2/5b6S6YGUID4gc2hpdG90YWNoaVwgOwor5a6J6YWS5aC0ID4geWFzdXNha2FiYVwgOwor6IG06IGe5LyaID4gY2hvdW1vbmthaVwgOwor6IKy5YWQ6aOfID4gaWt1amlzaG9rdVwgOwor55S35L6/5omAID4gb3Rva29iZW5qb1wgOwor6aaW5a6f5qScID4ga3ViaWppa2tlblwgOwor57Sw6IOe6IacID4gc2FpYm91bWFrdVwgOwor5ZCN5Lq66IKMID4gbWVpamluaGFkYVwgOwor5bCP5a2m5qChID4gc2hvdWdha2tvdVwgOwor5pen6Jep5Li7ID4ga3l1dWhhbnNodVwgOwor5rCR5pyJ5p6XID4gbWluJyd5dXVyaW5cIDsKK+i1pOmJhOmJsSA+IHNla2l0ZWtrb3VcIDsKK+acrOiNieWtpiA+IGhvbnpvdWdha3VcIDsKK+S/ruato+iAhSA+IHNodXVzZWlzaGFcIDsKK+miqOmAn+ioiCA+IGZ1dXNva3VrZWlcIDsKK+a9nOWcqOeahCA+IHNlbnphaXRla2lcIDsKK+WkieaLjeWtkCA+IGhlbmJ5b3VzaGlcIDsKK+aXp+aAneaDsyA+IGt5dXVzaGlzb3VcIDsKK+mbkeacqOaelyA+IHpvdWJva3VyaW5cIDsKK+WFpeWgtOWIuCA+IG55dXVqb3VrZW5cIDsKK+aIpumXmOeahCA+IHNlbnRvdXRla2lcIDsKK+e1gumbu+i7iiA+IHNodXVkZW5zaGFcIDsKK+iDjOe+jumvqCA+IHNlbWlrdWppcmFcIDsKK+eptOadk+WtkCA+IGFuYWpha3VzaGlcIDsKK+S4gOW5tOS4rSA+IGljaGluZW5qdXVcIDsKK+mJhOegsuawtCA+IHRlcHBvdW1penVcIDsKK+WFqOWbveawkSA+IHplbmtva3VtaW5cIDsKK+S6uuWPo+WtpiA+IGppbmtvdWdha3VcIDsKK+ebtOa7kemZjSA+IGNob2trYWtrb3VcIDsKK+S4iueUs+abuCA+IGpvdXNoaW5zaG9cIDsKK+mHneWNg+acrCA+IGhhcmlzZW5ib25cIDsKK+S4iealreWcsCA+IHNhbmd5b3VjaGlcIDsKK+S4puWkp+aKtSA+IG5hbWl0YWl0ZWlcIDsKK+eZvembsuefsyA+IGhha3V1bnNla2lcIDsKK+asoOW4reiAhSA+IGtlc3Nla2lzaGFcIDsKK+W8leW9k+mHkSA+IGhpa2lhdGVraW5cIDsKK+ijhemjvumfsyA+IHNvdXNob2t1b25cIDsKK+imluiBtOiAhSA+IHNoaWNob3VzaGFcIDsKK+S5s+iHreWFkCA+IG55dXVzaHV1amlcIDsKK+aJi+ayouacrCA+IHNodXRha3Vib25cIDsKK+itpuaIkuW/gyA+IGtlaWthaXNoaW5cIDsKK+S4reWbveiqniA+IGNodXVnb2t1Z29cIDsKK+WFpeaJi+mboyA+IG55dXVzaHVuYW5cIDsKK+mbu+a1geioiCA+IGRlbnJ5dXVrZWlcIDsKK+WxseailOWtkCA+IGt1Y2hpbmFzaGlcIDsKK+WQm+S4u+WbvSA+IGt1bnNodWtva3VcIDsKK+mfs+alveWtpiA+IG9uZ2FrdWdha3VcIDsKK+mMr+Wtl+eXhyA+IHNha3VqaXNob3VcIDsKK+Wkp+ebpOefsyA+IGRhaWJhbmpha3VcIDsKK+WIhuWtkOmHjyA+IGJ1bnNoaXJ5b3VcIDsKK+S4gOeVquiMtiA+IGljaGliYW5jaGFcIDsKK+mBheWIu+iAhSA+IGNoaWtva3VzaGFcIDsKK+WGjeeZuui2syA+IHNhaWhvc3Nva3VcIDsKK+Wvvui5oOeahCA+IHRhaXNob3Rla2lcIDsKK+anjeihk+WutiA+IHNvdWp1dHN1a2FcIDsKK+atjOisoeabsiA+IGtheW91a3lva3VcIDsKK+a0u+S6uueUuyA+IGthdHN1amluZ2FcIDsKK+S6jOiogOebriA+IGZ1dGFrb3RvbWVcIDsKK+WOn+WtkOmHjyA+IGdlbnNoaXJ5b3VcIDsKK+Wkp+W5heeJqSA+IG9vaGFiYW1vbm9cIDsKK+eLrOWlj+S8miA+IGRva3Vzb3VrYWlcIDsKK+iEseiHreWJpCA+IGRhc3NodXV6YWlcIDsKK+W/q+mAn+iIuSA+IGthaXNva3VzZW5cIDsKK+eUn+auluWZqCA+IHNlaXNob2t1a2lcIDsKK+i7iuS4reirhyA+IHNoYWNodXVkYW5cIDsKK+mOrumdmeWJpCA+IGNoaW5zZWl6YWlcIDsKK+WQiOS9teeXhyA+IGdhcHBlaXNob3VcIDsKK+aHh+imquS8miA+IGtvbnNoaW5rYWlcIDsKK+eJveeJm+aYnyA+IGtlbmd5dXVzZWlcIDsKK+WIuua/gOWJpCA+IHNoaWdla2l6YWlcIDsKK+iMtuafhOadkyA+IGNoYWJpc2hha3VcIDsKK+acieelnuirliA+IHl1dXNoaW5yb25cIDsKK+WRveS4reaVsCA+IG1laWNodXVzdXVcIDsKK+aWueino+efsyA+IGhvdWthaXNla2lcIDsKK+WjsuaOm+mHkSA+IHVyaWtha2VraW5cIDsKK+i2heW3qOaYnyA+IGNob3VreW9zZWlcIDsKK+eri+S9k+eahCA+IHJpdHRhaXRla2lcIDsKK+eZveaYvOWkoiA+IGhha3VjaHV1bXVcIDsKK+aWsOiomOmMsiA+IHNoaW5raXJva3VcIDsKK+azqOino+iAhSA+IGNodXVrYWlzaGFcIDsKK+S/nemHiOmHkSA+IGhvc2hha3VraW5cIDsKK+WPjeeykuWtkCA+IGhhbnJ5dXVzaGlcIDsKK+S4i+i2s+aWmSA+IGdlc29rdXJ5b3VcIDsKK+azqOaWh+abuCA+IGNodXVtb25zaG9cIDsKK+WMluWQiOeJqSA+IGthZ291YnV0c3VcIDsKK+Wxi+W9ouiIuSA+IHlha2F0YWJ1bmVcIDsKK+mBi+WLleWKmyA+IHVuZG91cnlva3VcIDsKK+mKmOmKmOeavyA+IG1laW1laXphcmFcIDsKK+m7kuabnOWyqSA+IGtva3V5b3VnYW5cIDsKK+WOn+S9nOiAhSA+IGdlbnNha3VzaGFcIDsKK+WFteermeWtpiA+IGhlaXRhbmdha3VcIDsKK+e0sOWvhueUuyA+IHNhaW1pdHN1Z2FcIDsKK+S4gOeVque3miA+IGljaGliYW5zZW5cIDsKK+WNiuS6uuWJjSA+IGhhbicnbmlubWFlXCA7CivohLPmopfloZ4gPiBub3Vrb3Vzb2t1XCA7CivliofloLTooZcgPiBnZWtpam91Z2FpXCA7CivmnaXjgIXpgLEgPiByYWlyYWlzaHV1XCA7CivmsbrorbDmqKkgPiBrZXRzdWdpa2VuXCA7CivlioPkuIDljJYgPiBrYWt1aXRzdWthXCA7CivkuIDmp73lvI8gPiBpc3NvdXNoaWtpXCA7CivlroXmgKXkvr8gPiB0YWtreXV1YmluXCA7CivogIHkurrnl4UgPiByb3VqaW5ieW91XCA7CivlkIjmoLzngrkgPiBnb3VrYWt1dGVuXCA7Civoqabkvpvlk4EgPiBzaGlreW91aGluXCA7CivkuK3loIXmiYsgPiBjaHV1a2Vuc2h1XCA7CivokZvppYXpoK0gPiBrdXp1bWFuanV1XCA7CivmjqXlrqLlqaYgPiBzZWtreWFrdWZ1XCA7CivmtLvlrZfmnKwgPiBrYXRzdWppaG9uXCA7CivpnI3lhazps6UgPiBob3RvdG9naXN1XCA7CivllY/poYzliocgPiBtb25kYWlnZWtpXCA7CivogbTorJvnlJ8gPiBjaG91a291c2VpXCA7Civos73piq3nrrEgPiBzYWlzZW5iYWtvXCA7Civmj5DllLHogIUgPiB0ZWlzaG91c2hhXCA7CivlmbTpo6/niakgPiBmdW5wYW5tb25vXCA7CivliIbmpbXljJYgPiBidW5reW9rdWthXCA7CivnrqHnkIblsYAgPiBrYW5yaWt5b2t1XCA7Civop5LpjJDlj7AgPiBrYWt1c3VpZGFpXCA7Civnpo/lsqHnnIwgPiBmdWt1b2tha2VuXCA7Civni6zlo4floLQgPiBkb2t1ZGFuam91XCA7Civku7LplpPopJIgPiBuYWthbWFib21lXCA7Civpmo/mg7PpjLIgPiB6dWlzb3Vyb2t1XCA7Civmkq7lvbHogIUgPiBzYXRzdWVpc2hhXCA7CivlpoLoj6nolqkgPiBueW9ib3NhdHN1XCA7Civlkb3kuK3lvL4gPiBtZWljaHV1ZGFuXCA7CivnnJ/liIbmlbAgPiBzaGluYnVuc3V1XCA7Civpm4fnlKjkuLsgPiBrb3lvdW51c2hpXCA7CivpiYTnoLLlvL4gPiB0ZXBwb3VkYW1hXCA7Civlsa/nlLDlhbUgPiB0b25kZW5oZWlcIDsKK+aVtemDqOmaiiA+IHRla2lidXRhaVwgOwor5oq15b2T5qipID4gdGVpdG91a2VuXCA7CivmnZHlpKvlrZAgPiBzb25wdXVzaGlcIDsKK+aPmuawtOi7iiA+IHlvdXN1aXNoYVwgOwor5pWR5o+06LuNID4ga3l1dWVuZ3VuXCA7CivogrLmr5vliaQgPiBpa3Vtb3V6YWlcIDsKK+m7kumgreW3viA+IGt1cm96dWtpblwgOwor6Kej5q+S5YmkID4gZ2Vkb2t1emFpXCA7Civpq5jlp7/li6IgPiBrb3VzaGlzZWlcIDsKK+Wxi+WPsOW6lyA+IHlhdGFpbWlzZVwgOwor6LW356OB5YqbID4ga2lqaXJ5b2t1XCA7Civljp/nlJ/mnpcgPiBnZW5zZWlyaW5cIDsKK+attOWPsueUuyA+IHJla2lzaGlnYVwgOwor5YmN5Y2K55SfID4gemVuaGFuc2VpXCA7CivlrZjlnKjoq5YgPiBzb256YWlyb25cIDsKK+W4jOacm+eahCA+IGtpYm91dGVraVwgOwor5Lq65bel6Zu3ID4gamlua291cmFpXCA7CivlsILnlKjmqZ8gPiBzZW4nJ3lvdWtpXCA7Civluqbph4/ooaEgPiBkb3J5b3Vrb3VcIDsKK+WFmuWkp+S8miA+IHRvdXRhaWthaVwgOwor5ZCM5LmX6ICFID4gZG91am91c2hhXCA7CivlirTli5XogIUgPiByb3Vkb3VzaGFcIDsKK+WNmOaVsOWeiyA+IHRhbnN1dWtlaVwgOwor5b6T5YWE5byfID4ganV1a2VpdGVpXCA7Civpvafmra/poZ4gPiBnZXNzaGlydWlcIDsKK+WGoOacqOmWgCA+IGthYnVraW1vblwgOwor5LuY5bGe5ZOBID4gZnV6b2t1aGluXCA7CivoqKrllY/ogIUgPiBob3Vtb25zaGFcIDsKK+eZuumgreS6uiA+IGhvdHRvdW5pblwgOwor5paH6YG45belID4gYnVuc2Vua291XCA7CivlkIzlsYXkurogPiBkb3VreW9uaW5cIDsKK+WPguipo+S6uiA+IHNhbmtlaW5pblwgOwor5b255ZOh5LyaID4geWFrdWlua2FpXCA7CivlraTnq4voqp4gPiBrb3JpdHN1Z29cIDsKK+eUn+iPk+WtkCA+IG5hbWFnYXNoaVwgOwor5YuY5a6a5pu4ID4ga2Fuam91c2hvXCA7CivplovlgqzlnLAgPiBrYWlzYWljaGlcIDsKK+iQveW+jOiAhSA+IHJha3Vnb3NoYVwgOwor55S35a2Q5qChID4gZGFuc2hpa291XCA7CivkuIDoi6blirQgPiBoaXRva3Vyb3VcIDsKK+WCrOa2meW8viA+IHNhaXJ1aWRhblwgOwor57Wx5rK75qipID4gdG91Y2hpa2VuXCA7CivnpoHou6LovIkgPiBraW50ZW5zYWlcIDsKK+a4r+a5vueojiA+IGtvdXdhbnplaVwgOwor5LiN5a+b5a65ID4gZnVrYW4nJ3lvdVwgOwor5LiN5L+h5LuwID4gZnVzaGlua291XCA7CivlpKrlhazmnJsgPiB0YWlrb3Vib3VcIDsKK+S4uOaLrOW8pyA+IG1hcnVnYWtrb1wgOwor5aSW5ZCR5oCnID4gZ2Fpa291c2VpXCA7CivkuI3otrPliY0gPiB0YXJhenVtYWVcIDsKK+S6jOWbvemWkyA+IG5pa29rdWthblwgOwor5Lya6JGs6ICFID4ga2Fpc291c2hhXCA7Civnpo/lr7/ojYkgPiBmdWt1anVzb3VcIDsKK+azleabueeVjCA+IGhvdXNvdWthaVwgOwor6YGL6Ly455yBID4gdW4nJ3l1c2hvdVwgOwor6YGL6Ly455u4ID4gdW4nJ3l1c2hvdVwgOwor5LmX6LuK6aeFID4gam91c2hhZWtpXCA7CivmnJ3prq7oqp4gPiBjaG91c2VuZ29cIDsKK+mdqeWRveWutiA+IGtha3VtZWlrYVwgOwor5qmf5a+G6LK7ID4ga2ltaXRzdWhpXCA7CivkurrpgKDnsbMgPiBqaW56b3VtYWlcIDsKK+a0i+WTgeW6lyA+IHlvdWhpbnRlblwgOwor5YCL5Lq655qEID4ga29qaW50ZWtpXCA7CivkuIDlhYPljJYgPiBpY2hpZ2Vua2FcIDsKK+S8nemBk+iIuSA+IGRlbmRvdXNlblwgOwor5Zyn6L+r5oSfID4gYXBwYWt1a2FuXCA7CivkuojpmLLnrZYgPiB5b2JvdXNha3VcIDsKK+iLpemaoOWxhSA+IHdha2Fpbmt5b1wgOwor5a6a5L2P6ICFID4gdGVpanV1c2hhXCA7CivmsLTmurbmgKcgPiBzdWl5b3VzZWlcIDsKK+mBuuiogOabuCA+IHl1aWdvbnNob1wgOwor5Luj54eD6LuKID4gZGFpbmVuc2hhXCA7CivlpInmiJDlsqkgPiBoZW5zZWlnYW5cIDsKK+S4gOWumumHjyA+IGl0dGVpcnlvdVwgOwor6Ium54Gw55+zID4ga3VrYWlzZWtpXCA7Civlt6blv4PmiL8gPiBzYXNoaW5ib3VcIDsKK+i8queVquWItiA+IHJpbmJhbnNlaVwgOwor6KuL6aGY6ICFID4gc2VpZ2Fuc2hhXCA7CivlnKfov6vmgKcgPiBhcHBha3VzZWlcIDsKK+e+heeUn+mWgCA+IHJhc2hvdW1vblwgOwor5YCL5Lq655SoID4ga29qaW4nJ3lvdVwgOwor5Lqr5Y+X6ICFID4ga3lvdWp1c2hhXCA7CivlvqHotrPlirQgPiBnb3Nva3Vyb3VcIDsKK+eIrOiZq+mhniA+IGhhY2h1dXJ1aVwgOwor6L+35L+h5a62ID4gbWVpc2hpbmthXCA7Civmm7jnsKHmlocgPiBzaG9rYW5idW5cIDsKK+ioseWPr+iovCA+IGt5b2thc2hvdVwgOwor5rCR5Li75YWaID4gbWluc2h1dG91XCA7CivlpKrliIDlhYggPiB0YWNoaXNha2lcIDsKK+S8nemBk+iAhSA+IGRlbmRvdXNoYVwgOwor55uj6KaW6Ii5ID4ga2Fuc2hpc2VuXCA7CivnuITmmpbnsL4gPiBuYXdhbm9yZW5cIDsKK+e2v+ijveWTgSA+IG1lbnNlaWhpblwgOwor5Ye66LWw6aasID4gc2h1c3NvdWJhXCA7Civkuozpmo7lu7ogPiBuaWthaWRhdGVcIDsKK+S/ruato+ahiCA+IHNodXVzZWlhblwgOwor5a6j5Lyd5oimID4gc2VuZGVuc2VuXCA7Civoq4vosqDmpa0gPiB1a2VvaWd5b3VcIDsKK+mhnuS6uueMvyA+IHJ1aWppbicnZW5cIDsKK+WQiOeQhueahCA+IGdvdXJpdGVraVwgOwor5Yud6LKg5birID4gc2hvdWJ1c2hpXCA7Civns7jomq/ompMgPiBpdG9taW1penVcIDsKK+W7tumVt+aIpiA+IGVuY2hvdXNlblwgOwor5Zyf5bu65qWtID4gZG9rZW5neW91XCA7CivotIjlkYjlk4EgPiB6b3V0ZWloaW5cIDsKK+mHkemJseWcsCA+IGtpbmtvdWNoaVwgOwor5pi85b6h6aOvID4gaGlydWdvaGFuXCA7Civokpnlj6TopZ4gPiBtb3Vrb2hpZGFcIDsKK+WNiuaciOWIiiA+IGhhbmdla2thblwgOwor55yM5rCR56iOID4ga2VubWluemVpXCA7CivmiYfli5XogIUgPiBzZW5kb3VzaGFcIDsKK+mbhuS8muaJgCA+IHNodXVrYWlqb1wgOwor5pyo5bel5aC0ID4gbW9ra291am91XCA7CivmtJLokL3ogIUgPiBzaGFyZW1vbm9cIDsKK+aIpumXmOW4vSA+IHNlbnRvdWJvdVwgOwor5aSV5YyW57KnID4geXV1Z2VzaG91XCA7Civlj6/li5XloLAgPiBrYWRvdXpla2lcIDsKK+Wkp+W5tOWilyA+IG9vdG9zaGltYVwgOwor5rOV55CG5a2mID4gaG91cmlnYWt1XCA7Civpu4TpoLfom4cgPiBhb2RhaXNob3VcIDsKK+mAj+aYjuS9kyA+IHRvdW1laXRhaVwgOwor5pWF6Zqc6LuKID4ga29zaG91c2hhXCA7Civnm6PoppbogIUgPiBrYW5zaGlzaGFcIDsKK+W8geaFtuiNiSA+IGJlbmtlaXNvdVwgOwor5a2Y5Zyo6ICFID4gc29uemFpc2hhXCA7Civlhajlm73ljLogPiB6ZW5rb2t1a3VcIDsKK+Wkqeeah+aXlyA+IHRlbicnbm91a2lcIDsKK+WumOWDmuWMliA+IGthbnJ5b3VrYVwgOwor5pei5b6X5qipID4ga2l0b2t1a2VuXCA7CivlhYnnt5rpioMgPiBrb3VzZW5qdXVcIDsKK+S7rumdouWKhyA+IGthbWVuZ2VraVwgOwor5qmf5qKw55qEID4ga2lrYWl0ZWtpXCA7CivnhqjmlpfntJkgPiBub3NoaWdhbWlcIDsKK+WGmeakjeapnyA+IHNoYXNob2traVwgOwor5pys5L2T6KuWID4gaG9udGFpcm9uXCA7Civnmbrlo7Dms5UgPiBoYXNzZWlob3VcIDsKK+e1pua5r+WZqCA+IGt5dXV0b3VraVwgOwor6YGK6IiI6LK7ID4geXV1a3lvdWhpXCA7CivlubPlronkuqwgPiBoZWlhbmt5b3VcIDsKK+eUn+asoOS8uCA+IG5hbWFha3ViaVwgOwor6YCB5LuY5YWIID4gc291ZnVzYWtpXCA7CivlpJbph47luK0gPiBnYWl5YXNla2lcIDsKK+eri+S9k+aIpiA+IHJpdHRhaXNlblwgOwor55uj6KaW57ayID4ga2Fuc2hpbW91XCA7CivmnIjmsLTph5EgPiBnZXNzdWlraW5cIDsKK+ato+aKleaJiyA+IHNlaXRvdXNodVwgOwor6YGg6LWk5aSWID4gZW5zZWtpZ2FpXCA7CivmjIfnpLrolqwgPiBzaGlqaXlha3VcIDsKK+S/oeWPt+apnyA+IHNoaW5nb3VraVwgOwor5LqV5oi46LuKID4gaWRvZ3VydW1hXCA7CivmnInlkI3nqI4gPiB5dXVtZWl6ZWlcIDsKK+eri+S9k+aEnyA+IHJpdHRhaWthblwgOwor5YSq5YWI5qipID4geXV1c2Vua2VuXCA7Civlrp/pqJPloLQgPiBqaWtrZW5qb3VcIDsKK+eJoeS4uemkhSA+IGJvdGFtb2NoaVwgOwor57WM5Zuj6YCjID4ga2VpZGFucmVuXCA7Civmlq3poK3lj7AgPiBkYW50b3VkYWlcIDsKK+S6iOe0hOiAhSA+IHlveWFrdXNoYVwgOwor57WC5aSc54GvID4gc2h1dXlhdG91XCA7Civmmpfpu5LpnaIgPiBhbmtva3VtZW5cIDsKK+Wuo+S8neWxiyA+IHNlbmRlbicneWFcIDsKK+S7o+abv+WTgSA+IGRhaXRhaWhpblwgOwor54Kt6YW45aGpID4gdGFuc2FuJydlblwgOwor5LiL5a6/5bGLID4gZ2VzaHVrdXlhXCA7Civoo5zntabnt5ogPiBob2t5dXVzZW5cIDsKK+WQjeS6uuaIpiA+IG1laWppbnNlblwgOwor5LiA6Iis5bitID4gaXBwYW5zZWtpXCA7Civpga3pm6PogIUgPiBzb3VuYW5zaGFcIDsKK+WOn+WtkOegsiA+IGdlbnNoaWhvdVwgOwor5YCS572u5rOVID4gdG91Y2hpaG91XCA7CivnhafmupblmaggPiBzaG91anVua2lcIDsKK+WOn+S9j+awkSA+IGdlbmp1dW1pblwgOwor6IGW5YWs5LyaID4gc2Vpa291a2FpXCA7Civljp/nlKPlnLAgPiBnZW5zYW5jaGlcIDsKK+mdqeWRveWFkCA+IGtha3VtZWlqaVwgOwor5YSq6ae/6aasID4geXV1c2h1bmJhXCA7CivkuLvmg4Xoq5YgPiBzaHVqb3Vyb25cIDsKK+mqqOiRo+WTgSA+IGtvdHRvdWhpblwgOwor566h6LKh5Lq6ID4ga2FuemFpbmluXCA7CivmvJTliofnlYwgPiBlbmdla2lrYWlcIDsKK+mKgOmWo+WvuiA+IGdpbmtha3VqaVwgOwor6aKo6bOl5bqnID4gZnV1Y2hvdXphXCA7CivmjJ/nnrzlmaggPiBreW91a2Vua2lcIDsKK+aVmeaOiOazlSA+IGt5b3VqdWhvdVwgOwor6Zu75rCX6YecID4gZGVua2lnYW1hXCA7Civpm7vmsJfph48gPiBkZW5raXJ5b3VcIDsKK+eCueWFiea6kCA+IHRlbmtvdWdlblwgOwor5pel5YiK57SZID4gbmlra2Fuc2hpXCA7CivplpPni4LoqIAgPiBhaWt5b3VnZW5cIDsKK+iAgeS6uuaApyA+IHJvdWppbnNlaVwgOwor6KiI5pWw566hID4ga2Vpc3V1a2FuXCA7Civph5HliKnpnpggPiBraW5yaXNob3VcIDsKK+S7ruaUv+W6nCA+IGthcmlzZWlmdVwgOwor54++5Luj54mIID4gZ2VuZGFpYmFuXCA7CivkvY7lp7/li6IgPiB0ZWlzaGlzZWlcIDsKK+aApemZjeS4iyA+IGt5dXVrb3VrYVwgOwor5L+h5Y+35peXID4gc2hpbmdvdWtpXCA7Civnq6XoqbHliocgPiBkb3V3YWdla2lcIDsKK+Wun+mok+WPsCA+IGppa2tlbmRhaVwgOwor5rC05oiQ5bKpID4gc3Vpc2VpZ2FuXCA7CivlvqHlr67kurogPiBnb3J5b3VuaW5cIDsKK+iHqui6q+eVqiA+IGppc2hpbmJhblwgOwor56CC5pmC6KiIID4gc3VuYWRva2VpXCA7CivooYDpgZTno6ggPiBjaGlkYXJ1bWFcIDsKK+mkium2j+WgtCA+IHlvdWtlaWpvdVwgOwor6ISx6LWw5YW1ID4gZGFzc291aGVpXCA7CivojZjlnJLliLYgPiBzaG91ZW5zZWlcIDsKK+WJjeWNiuaIpiA+IHplbnBhbnNlblwgOwor6KiT6KmB5a2mID4ga3Vua29nYWt1XCA7Civou4rkupXmiLggPiBrdXJ1bWFpZG9cIDsKK+WkluWLmeecgSA+IGdhaW11c2hvdVwgOwor5paw5pmC5LujID4gc2hpbmppZGFpXCA7CivmuInlpJbpg6ggPiBzaG91Z2FpYnVcIDsKK+aEn+WFiee0mSA+IGthbmtvdXNoaVwgOwor5pKu5b2x5qmfID4gc2F0c3VlaWtpXCA7CivkuIDnlJ/mtq8gPiBpc3Nob3VnYWlcIDsKK+awtOa6kOWcsCA+IHN1aWdlbmNoaVwgOwor5pW05rWB5ZmoID4gc2Vpcnl1dWtpXCA7CivpioDooYznlYwgPiBnaW5rb3VrYWlcIDsKK+ePvuS9j+aJgCA+IGdlbmp1dXNob1wgOwor5YmN5Y+j5LiKID4gbWFla291am91XCA7CivlnLDlr77nqbogPiBjaGl0YWlrdXVcIDsKK+esrOS4gOmbhiA+IGRhaWlzc2h1dVwgOwor5aSp55qH5a62ID4gdGVuJydub3VrZVwgOwor57Wm5rK56Ii5ID4ga3l1dXl1c2VuXCA7Civku6Pmm7jkurogPiBkYWlzaG9uaW5cIDsKK+WJteWni+iAhSA+IHNvdXNoaXNoYVwgOwor5L6h5qC85bivID4ga2FrYWt1dGFpXCA7CivloLTmiYDmn4QgPiBiYXNob2dhcmFcIDsKK+S/oeWPt+aJgCA+IHNoaW5nb3Vqb1wgOwor5oKq5b6q55KwID4gYWt1anVua2FuXCA7Civlrp/pqJPlgKQgPiBqaWtrZW5jaGlcIDsKK+S4jemiqOa1gSA+IGJ1ZnV1cnl1dVwgOwor5a6j5Lyd5ZOhID4gc2VuZGVuJydpblwgOwor6Zmk6Zu76YedID4gam9kZW5iYXJpXCA7CivooZvnlJ/lraYgPiBlaXNlaWdha3VcIDsKK+eZuuimi+iAhSA+IGhha2tlbnNoYVwgOwor5rOV546L5bqBID4gaG91b3VjaG91XCA7CivkuIDnlarmiYsgPiBpY2hpYmFudGVcIDsKK+mZkOeVjOeCuSA+IGdlbmthaXRlblwgOwor5p2/55uu57SZID4gaXRhbWVnYW1pXCA7CivmhIHlmIbloLQgPiBzaHV1dGFuYmFcIDsKK+iKseebuOaSsiA+IGhhbmF6dW1vdVwgOwor5q2v56eR5a2mID4gc2hpa2FnYWt1XCA7Civku5XkuovnnYAgPiBzaGlnb3RvZ2lcIDsKK+WFieaWh+ekviA+IGtvdWJ1bnNoYVwgOwor6auY54el5ZywID4ga291c291Y2hpXCA7CivovrLlnLDms5UgPiBub3VjaGlob3VcIDsKK+iRm+aguea5ryA+IGtha2tvbnRvdVwgOwor5YWJ6Zu7566hID4ga291ZGVua2FuXCA7CivouqvliIbmn4QgPiBtaWJ1bmdhcmFcIDsKK+ims+imp+WIuCA+IGthbnJhbmtlblwgOwor56aB5Yi25ZOBID4ga2luc2VpaGluXCA7CivlvZPnsaTogIUgPiB0b3VzZW5zaGFcIDsKK+mAsuWMluirliA+IHNoaW5rYXJvblwgOwor5YaN5qSc6KiOID4gc2Fpa2VudG91XCA7CivljYrlpI/nlJ8gPiBoYW5nZXNob3VcIDsKK+W+oemjr+aZgiA+IGdvaGFuZG9raVwgOwor5oSb5byf5a2QID4gbWFuYWRlc2hpXCA7CivmiYvlvJXmm7ggPiB0ZWJpa2lzaG9cIDsKK+aPrueZuuayuSA+IGtpaGF0c3V5dVwgOwor57+w5p6X6ZmiID4ga2FucmluJydpblwgOwor5pW05ZCI5oCnID4gc2VpZ291c2VpXCA7CivmlpnnkIbnlaogPiByeW91cmliYW5cIDsKK+WNgeS6jOWuriA+IGp1dW5pa3l1dVwgOwor55Sf55Sj6LKhID4gc2Vpc2FuemFpXCA7CivkuIDku6PoqJggPiBpY2hpZGFpa2lcIDsKK+WFg+Wni+elrSA+IGdlbnNoaXNhaVwgOwor5Lqh5ZG96ICFID4gYm91bWVpc2hhXCA7CivmnInnqI7lk4EgPiB5dXV6ZWloaW5cIDsKK+Wkp+S9v+mkqCA+IHRhaXNoaWthblwgOwor6ZmQ5a6a6KmeID4gZ2VudGVpc2hpXCA7CivnhKHpp4Tpo68gPiBtdWRhbWVzaGlcIDsKK+e3j+axuueulyA+IHNvdWtlc3NhblwgOwor5q205Y+y5a62ID4gcmVraXNoaWthXCA7CivmtbfmsLTluL0gPiBrYWlzdWlib3VcIDsKK+aOp+mZpOmhjSA+IGtvdWpvZ2FrdVwgOwor5a625pS/5a2mID4ga2FzZWlnYWt1XCA7CivlhoXlvJ/lrZAgPiB1Y2hpZGVzaGlcIDsKK+WkmuW/meS4rSA+IHRhYm91Y2h1dVwgOwor5Y6f5a+45aSnID4gZ2Vuc3VuZGFpXCA7CivmqZ/og73nmoQgPiBraW5vdXRla2lcIDsKK+Wls+aAp+eahCA+IGpvc2VpdGVraVwgOwor5ruR57+U5qmfID4ga2Fzc2hvdWtpXCA7CivlubTlp4vnirYgPiBuZW5zaGlqb3VcIDsKK+WtkOeFqeaCqSA+IGtvYm9uJydub3VcIDsKK+aMh+WNl+i7iiA+IHNoaW5hbnNoYVwgOwor5YaZ55Sf5paHID4gc2hhc2VpYnVuXCA7CivlhoXpgYrmmJ8gPiBuYWl5dXVzZWlcIDsKK+iLpuihjOiAhSA+IGt1Z3lvdXNoYVwgOwor572q5oKq5oSfID4gemFpYWt1a2FuXCA7CivnhKHnl4fnirYgPiBtdXNob3Vqb3VcIDsKK+inkuegguezliA+IGtha3V6YXRvdVwgOwor55Sf6L+U5LqLID4gbmFtYWhlbmppXCA7CivljZjntJTmgKcgPiB0YW5qdW5zZWlcIDsKK+Wkp+WDp+atoyA+IGRhaXNvdWpvdVwgOwor5LiA6Lqr5LiKID4gaXNzaGluam91XCA7Civkv67pgZPlsLwgPiBzaHV1ZG91bmlcIDsKK+i7jeaUvumAgSA+IGd1bmhvdXNvdVwgOwor55m76KiY5paZID4gdG91a2lyeW91XCA7Civoi7Hlm73kurogPiBlaWtva3VqaW5cIDsKK+WBveiovOiAhSA+IGdpc2hvdXNoYVwgOwor6YGT6Lev5qmLID4gZG91cm9reW91XCA7Civmkq7lvbHmiYAgPiBzYXRzdWVpam9cIDsKK+W9ouaFi+irliA+IGtlaXRhaXJvblwgOwor5YG96Ki8572qID4gZ2lzaG91emFpXCA7CivpppborIDogIUgPiBzaHVib3VzaGFcIDsKK+ikh+WPt+WMliA+IGZ1a3Vnb3VrYVwgOwor56ys5LiA6LyvID4gZGFpaXNzaHV1XCA7Civlp4vnpZbps6UgPiBzaGlzb2Nob3VcIDsKK+eJueioseazlSA+IHRva2t5b2hvdVwgOwor6aSK5q+b5YmkID4geW91bW91emFpXCA7Civmta7msJfogIUgPiB1d2FraW1vbm9cIDsKK+aal+m7kuihlyA+IGFua29rdWdhaVwgOwor5aSn5YWD5bilID4gZGFpZ2Vuc3VpXCA7CivlhY3oqLHnirYgPiBtZW5reW9qb3VcIDsKK+WknOWFieiZqyA+IHlha291Y2h1dVwgOwor5aWH5aSp54OIID4ga2l0ZXJldHN1XCA7CivljJnliqDmuJsgPiBzYWppa2FnZW5cIDsKK+aKleaJi+advyA+IHRvdXNodWJhblwgOwor5b6T5qWt5ZOhID4ganV1Z3lvdWluXCA7CivmibnoqZXnnLwgPiBoaWh5b3VnYW5cIDsKK+S/rumBk+WlsyA+IHNodXVkb3Vqb1wgOwor5Zyn55eb54K5ID4gYXR0c3V1dGVuXCA7CivmtbflhbXpmoogPiBrYWloZWl0YWlcIDsKK+iAg+iqsuihqCA+IGtvdWthaHlvdVwgOwor6bqm6Iq957OWID4gYmFrdWdhdG91XCA7CivmlofoirjmrIQgPiBidW5nZWlyYW5cIDsKK+WknOebsueXhyA+IHlhbW91c2hvdVwgOwor5oqV56i/6ICFID4gdG91a291c2hhXCA7CivnhKHlt67liKUgPiBtdXNhYmV0c3VcIDsKK+epuuaMuumaiiA+IGt1dXRlaXRhaVwgOwor5b6u6Kq/5pW0ID4gYmljaG91c2VpXCA7Civlj6Plv6Dlrp8gPiBrdWNoaW1hbWVcIDsKK+iKseaooeanmCA+IGhhbmFtb3lvdVwgOwor5pyJ5ZCN5qChID4geXV1bWVpa291XCA7CivnibnoqLHmqKkgPiB0b2treW9rZW5cIDsKK+ani+aIkOWtkCA+IGtvdXNlaXNoaVwgOwor6KuL6aGY5pu4ID4gc2VpZ2Fuc2hvXCA7Civmi6Hlo7DmqZ8gPiBrYWt1c2Vpa2lcIDsKK+iojuirluS8miA+IHRvdXJvbmthaVwgOwor5ouY572u5omAID4ga291Y2hpc2hvXCA7CivkuqTmuInlk6EgPiBrb3VzaG91aW5cIDsKK+WKtOW9ueWgtCA+IHJvdWVraWpvdVwgOwor6ZW35bC+6baPID4gbmFnYW9kb3JpXCA7CivmsLTpioDnga8gPiBzdWlnaW50b3VcIDsKK+S4u+aIkOWIhiA+IHNodXNlaWJ1blwgOwor5L+u6L6e5rOVID4gc2h1dWppaG91XCA7CivljZPoqbHkvJogPiB0YWt1d2FrYWlcIDsKK+aJi+W3peiKuCA+IHNodWtvdWdlaVwgOwor5paZ55CG5rOVID4gcnlvdXJpaG91XCA7Civmib/oqo3lm7MgPiBzaG91bmluenVcIDsKK+acrOWztuS6uiA+IGhvbnRvdWppblwgOwor5oGS5bi45oCnID4ga291am91c2VpXCA7CivplbflsL7ps6UgPiBuYWdhb2RvcmlcIDsKK+e1hOe5lOWMliA+IHNvc2hpa2lrYVwgOwor5b6h5paw6YCgID4gZ29zaGluem91XCA7Civkub7pm7vmsaAgPiBrYW5kZW5jaGlcIDsKK+iHquS9nOi+siA+IGppc2FrdW5vdVwgOwor5Yi256m65qipID4gc2Vpa3V1a2VuXCA7CivoirHmpLDoj5wgPiBoYW5heWFzYWlcIDsKK+ertuaKgOWgtCA+IGt5b3VnaWpvdVwgOwor5pen5Yi25bqmID4ga3l1dXNlaWRvXCA7CivlhbHlkozmlL8gPiBreW91d2FzZWlcIDsKK+WwiueOi+WutiA+IHNvbicnbm91a2FcIDsKK+mBhemAsuWFkCA+IGNoaXNoaW5qaVwgOwor5qCE6aSK5a2mID4gZWl5b3VnYWt1XCA7CivkuI3ku4vlhaUgPiBmdWthaW55dXVcIDsKK+aKleaJi+aIpiA+IHRvdXNodXNlblwgOwor54qs5by15a2QID4gaW51aGFyaWtvXCA7CivpgIHpm7vnt5ogPiBzb3VkZW5zZW5cIDsKK+WNtem7hOWaoiA+IHJhbicnb3Vub3VcIDsKK+awl+Wcp+ioiCA+IGtpYXRzdWtlaVwgOwor6aeG6Jmr5YmkID4ga3VjaHV1emFpXCA7Civniqzov73niakgPiBpbnVvdW1vbm9cIDsKK+S4ieaWkem2iSA+IG1pZnV1enVyYVwgOwor5ouN5a2Q5pyoID4gaHlvdXNoaWdpXCA7CivlpJrmr5vkvZwgPiB0YW1vdXNha3VcIDsKK+aJi+iNt+eJqSA+IHRlbmltb3RzdVwgOwor5Yeg5biz6Z2iID4ga2ljaG91bWVuXCA7CivmqKHnr4TnmoQgPiBtb2hhbnRla2lcIDsKK+ethuiomOW4syA+IGhpa2tpY2hvdVwgOwor6ZW36Led6ZuiID4gY2hvdWt5b3JpXCA7Civnvo7lsJHlubQgPiBiaXNob3VuZW5cIDsKK+S5vueHpeadkCA+IGthbnNvdXphaVwgOwor55Sf55Sj6ICFID4gc2Vpc2Fuc2hhXCA7CivkuI3mnI3lvpMgPiBmdWZ1a3VqdXVcIDsKK+acrOagvOa0viA+IGhvbmtha3VoYVwgOwor5Y6f5a2Q5oimID4gZ2Vuc2hpc2VuXCA7CivkuI3lpInph48gPiBmdWhlbnJ5b3VcIDsKK+mhlOmmtOafkyA+IGthb25hamltaVwgOwor6JC96JGJ5qi5ID4gcmFrdXlvdWp1XCA7CivkuInpoK3nrYsgPiBzYW50b3VraW5cIDsKK+S7o+iogOiAhSA+IGRhaWdlbnNoYVwgOwor5o+u55m65bqmID4ga2loYXRzdWRvXCA7CivlpKfoh6rnhLYgPiBkYWlzaGl6ZW5cIDsKK+S4jeaZguedgCA+IGZ1amljaGFrdVwgOwor57Wx5Yi257eaID4gdG91c2Vpc2VuXCA7CivlhYnpm7vmsaAgPiBrb3VkZW5jaGlcIDsKK+iKseS+m+mkiiA+IGhhbmFrdXlvdVwgOwor6Zuj5ZWP6aGMID4gbmFubW9uZGFpXCA7Civntpnpm7vpjbUgPiBrZWlkZW5rZW5cIDsKK+apn+aisOWtpiA+IGtpa2FpZ2FrdVwgOwor5amm5Lq655eFID4gZnVqaW5ieW91XCA7CivlkIzlpb3ogIUgPiBkb3Vrb3VzaGFcIDsKK+WBveWmiuWooCA+IGdpbmluc2hpblwgOwor54Gr57iE6YqDID4gaGluYXdhanV1XCA7CivliY3li5jlrpogPiBtYWVrYW5qb3VcIDsKK+aXoueZuuihqCA+IGtpaGFwcHlvdVwgOwor55Sy54q26IW6ID4ga291am91c2VuXCA7CivnqL3lj6TkuosgPiBrZWlrb2dvdG9cIDsKK+aIkOaWh+azlSA+IHNlaWJ1bmhvdVwgOwor6KaP5qC85ZOBID4ga2lrYWt1aGluXCA7Civku5Xkuovml6UgPiBzaGlnb3RvYmlcIDsKK+WIhuS4jueojiA+IGJ1bicneW96ZWlcIDsKK+eZveeEoeWeoiA+IHNoaXJvbXVrdVwgOwor5LqM562J6LOeID4gbml0b3VzaG91XCA7CivlrprkvJHml6UgPiB0ZWlreXV1YmlcIDsKK+eZveeBr+ayuSA+IGhha3V0b3V5dVwgOwor6YGL6Lui5bitID4gdW50ZW5zZWtpXCA7CivlhazmsJHppKggPiBrb3VtaW5rYW5cIDsKK+evpOi+suWutiA+IHRva3Vub3VrYVwgOwor6IyJ6I6J6IqxID4gbWF0c3VyaWthXCA7Civkurrlt6XmuK8gPiBqaW5rb3Vrb3VcIDsKK+mrmOmZteWcnyA+IGtvdXJ5b3Vkb1wgOwor5oSf5YWJ5p2/ID4ga2Fua291YmFuXCA7CivkuInkuZfmoLkgPiBzYW5qb3Vrb25cIDsKK+eUt+miqOWRgiA+IG90b2tvYnVyb1wgOwor5aWz6YOO6IqxID4gb21pbmFlc2hpXCA7Civmu57ntI3ogIUgPiB0YWlub3VzaGFcIDsKK+S8nemBk+W4qyA+IGRlbmRvdXNoaVwgOwor5b+c5Y+s5YW1ID4gb3VzaG91aGVpXCA7CivopIfljYHlrZcgPiBmdWt1anV1amlcIDsKK+WGjeani+aIkCA+IHNhaWtvdXNlaVwgOwor5pyJ5q616ICFID4geXV1ZGFuc2hhXCA7CivljZjooaPniakgPiBoaXRvZW1vbm9cIDsKK+imj+agvOWIpCA+IGtpa2FrdWJhblwgOwor56ys5LiJ6ICFID4gZGFpc2Fuc2hhXCA7CivkvZPmk43loLQgPiB0YWlzb3Vqb3VcIDsKK+S4u+a1gea0viA+IHNodXJ5dXVoYVwgOwor5bqD5aCx5a6YID4ga291aG91a2FuXCA7Civkurrlt6XmsaAgPiBqaW5rb3Vpa2VcIDsKK+WPo+iTi+WegiA+IGtvdWdhaXN1aVwgOwor6YeR5Ymb56CCID4ga29uZ291c2hhXCA7CivljYHkuInlpJwgPiBqdXVzYW4nJ3lhXCA7CivlpKflrabpmaIgPiBkYWlnYWt1aW5cIDsKK+S5l+eUqOi7iiA+IGpvdXlvdXNoYVwgOwor5LiN5piO56K6ID4gZnVtZWlrYWt1XCA7CivonIPmsJfmpbwgPiBzaGlua2lyb3VcIDsKK+ikh+iRieapnyA+IGZ1a3V5b3VraVwgOwor5LqM562J6KaqID4gbml0b3VzaGluXCA7CivojYnnq7bppqwgPiBrdXNha2VpYmFcIDsKK+maoOWFg+ixhiA+IGluZ2VubWFtZVwgOwor57Sv5LmX5qC5ID4gcnVpam91a29uXCA7CivmnbHmtIvkurogPiB0b3V5b3VqaW5cIDsKK+ertuaKgOS8miA+IGt5b3VnaWthaVwgOwor5Yun6KqY5ZOhID4ga2FuJyd5dXVpblwgOwor6ICB5amG5b+DID4gcm91YmFzaGluXCA7CivlgrXmqKnogIUgPiBzYWlrZW5zaGFcIDsKK+esrOS4gOe+qSA+IGRhaWljaGlnaVwgOwor5Zyn5YCS55qEID4gYXR0b3V0ZWtpXCA7CivkuI3mmI7nnq0gPiBmdW1laXJ5b3VcIDsKK+aUvumbu+euoSA+IGhvdWRlbmthblwgOwor5YmN6Lqr6aCDID4gbWFlbWlnb3JvXCA7CivlsJHmlbDmtL4gPiBzaG91c3V1aGFcIDsKK+eJueaNnOmDqCA+IHRva3Vzb3VidVwgOwor6Kq/6aas5birID4gY2hvdWJhc2hpXCA7CivnkIboq5bnmoQgPiByaXJvbnRla2lcIDsKK+mjsuawtOmHjyA+IGluc3VpcnlvdVwgOwor6Kq/55CG5rOVID4gY2hvdXJpaG91XCA7CivntK/niq/ogIUgPiBydWloYW5zaGFcIDsKK+WlvemDveWQiCA+IGtvdXRzdWdvdVwgOwor5a6J5YWo5Z+fID4gYW56ZW4nJ2lraVwgOwor6Jma5qCE5b+DID4ga3lvZWlzaGluXCA7CivlrprmnJ/nmoQgPiB0ZWlraXRla2lcIDsKK+iqjeWPr+iovCA+IG5pbmthc2hvdVwgOwor5L+h5b+D5a62ID4gc2hpbmppbmthXCA7CivlvLflp6bnvaogPiBnb3VrYW56YWlcIDsKK+aVmeaOiOS8miA+IGt5b3VqdWthaVwgOwor6YCj5ZCI6LuNID4gcmVuZ291Z3VuXCA7Civph43lkIjkvZMgPiBqdXVnb3V0YWlcIDsKK+WKoOiZkOaEmyA+IGthZ3lha3VhaVwgOwor5rKz5bed5pW3ID4ga2FzZW5qaWtpXCA7Civou43pmorokawgPiBndW50YWlzb3VcIDsKK+aVsOW5tOmWkyA+IHN1dW5lbmthblwgOwor6Lu95rCX55CDID4ga2Vpa2lreXV1XCA7CivpnZLmta7ojYkgPiBhb3VraWt1c2FcIDsKK+WuiealveatuyA+IGFucmFrdXNoaVwgOwor6YeR5bmz57OWID4ga29ucGVpdG91XCA7CivlrprkvY/lnLAgPiB0ZWlqdXVjaGlcIDsKK+mHkei8qumamyA+IGtvbnJpbnphaVwgOwor5paZ55CG5bqXID4gcnlvdXJpdGVuXCA7Civosr/mmJPpoqggPiBib3Vla2lmdXVcIDsKK+S6uuW3peaelyA+IGppbmtvdXJpblwgOwor5rW36YGL5qWtID4ga2FpdW5neW91XCA7CivooaPpo5/kvY8gPiBpc2hva3VqdXVcIDsKK+WvneWFt+mhniA+IHNoaW5ndXJ1aVwgOwor5p2x5Y2X5p2xID4gdG91bmFudG91XCA7CivnlLLmnb/lk6EgPiBrb3VoYW4nJ2luXCA7Civnj77ku6Plj7IgPiBnZW5kYWlzaGlcIDsKK+agueiPnOmhniA+IGtvbnNhaXJ1aVwgOwor5a6a5L6L5LyaID4gdGVpcmVpa2FpXCA7Civmsbrpl5jnirYgPiBrZXR0b3Vqb3VcIDsKK+ialeWNtee0mSA+IHNhbnJhbnNoaVwgOwor5aSW6JKZ5Y+kID4gc290b21vdWtvXCA7Civou4rkuKHljJYgPiBzaGFyeW91a2FcIDsKK+aEn+WFieaApyA+IGthbmtvdXNlaVwgOwor56ys5LiA56ugID4gZGFpaXNzaG91XCA7Civoh6jnlYzngrkgPiByaW5rYWl0ZW5cIDsKK+WVhuWjsuawlyA+IHNob3ViYWlnaVwgOwor5Zu95oay5rOVID4ga29ra2VucG91XCA7CivkuKHpmZvkuIsgPiByeW91aGVpa2FcIDsKK+mZkOWumueJiCA+IGdlbnRlaWJhblwgOwor5YmN6LuK6LyqID4gemVuc2hhcmluXCA7Civpm4TniZvns54gPiBvdXNoaWt1c29cIDsKK+S4jeWmiueXhyA+IGZ1bmluc2hvdVwgOwor5aSJ5rWB5ZmoID4gaGVucnl1dWtpXCA7Civph53kvpvppIogPiBoYXJpa3V5b3VcIDsKK+W+ruimlueahCA+IGJpc2hpdGVraVwgOwor55uj6KaW5aGUID4ga2Fuc2hpdG91XCA7CivljaDmi6DlnLAgPiBzZW5reW9jaGlcIDsKK+aMh+WQkeaApyA+IHNoaWtvdXNlaVwgOwor5LiA5Lq655SoID4gaGl0b3JpeW91XCA7Civoqr/ppqzloLQgPiBjaG91YmFqb3VcIDsKK+WGjei8uOWFpSA+IHNhaXl1bnl1dVwgOwor57a/5rSl6KaLID4gd2F0YXRzdW1pXCA7CivlhKroia/lhZAgPiB5dXVyeW91amlcIDsKK+a1ruWLleelqCA+IGZ1ZG91aHlvdVwgOwor5YWI5aSp5oCnID4gc2VudGVuc2VpXCA7CivlvaLmiJDlsaQgPiBrZWlzZWlzb3VcIDsKK+W4q+evhOS7oyA+IHNoaWhhbmRhaVwgOwor5LyR5q2i56ymID4ga3l1dXNoaWZ1XCA7CivkuI3pnaLnm64gPiBmdW1lbm1va3VcIDsKK+Wwj+ezoOmbqCA+IGtvbnVrYWFtZVwgOwor5pys5LqI566XID4gaG9uJyd5b3NhblwgOwor5oyH5Y2X55WqID4gc2hpbmFuYmFuXCA7Civmi6Hlo7DlmaggPiBrYWt1c2Vpa2lcIDsKK+iHqueUsealrSA+IGppeXV1Z3lvdVwgOwor56aB6Ly45ZOBID4ga2luJyd5dWhpblwgOwor5Y+45Lya6ICFID4gc2hpa2Fpc2hhXCA7CivmipXnqL/mrIQgPiB0b3Vrb3VyYW5cIDsKK+aMv+ipseeahCA+IHNvdXdhdGVraVwgOwor6YGT5Lit6KiYID4gZG91Y2h1dWtpXCA7CivljYrloanmsLQgPiBoYW4nJ2Vuc3VpXCA7CivmjpLku5bnmoQgPiBoYWl0YXRla2lcIDsKK+Wkp+iFuOeCjiA+IGRhaWNob3VlblwgOwor5bC85rOV5birID4gYW1haG91c2hpXCA7Civlrprnva7ntrIgPiB0ZWljaGlhbWlcIDsKK+iKuOiDveeVjCA+IGdlaW5vdWthaVwgOwor5Y2K5r+B6Z+zID4gaGFuZGFrdW9uXCA7CivphY3nrqHlt6UgPiBoYWlrYW5rb3VcIDsKK+ePvuS7o+S6uiA+IGdlbmRhaWppblwgOwor6L6y5ryB5rCRID4gbm91Z3lvbWluXCA7CivlpbPmgKflraYgPiBqb3NlaWdha3VcIDsKK+S5vueHpeWcsCA+IGthbnNvdWNoaVwgOwor5YiG6aGe5rOVID4gYnVucnVpaG91XCA7Civnn7Poho/lg48gPiBzZWtrb3V6b3VcIDsKK+W9seatpuiAhSA+IGthZ2VtdXNoYVwgOwor5rS754mI5pysID4ga2FwcGFuYm9uXCA7Civku5XkuovloLQgPiBzaGlnb3RvYmFcIDsKK+WppuS6uuacjSA+IGZ1amluZnVrdVwgOwor5a+d5b+D5ZywID4gbmVnb2tvY2hpXCA7CivntbXlt7vniakgPiBlbWFraW1vbm9cIDsKK+S4jeaWmeewoSA+IGZ1cnlvdWtlblwgOwor5YyW55+z5bGkID4ga2FzZWtpc291XCA7CivmmanppJDkvJogPiBiYW5zYW5rYWlcIDsKK+S7leaUvumhjCA+IHNoaWhvdWRhaVwgOwor5YWx5ZKM5Yi2ID4ga3lvdXdhc2VpXCA7CivmoYjlhoXnirYgPiBhbicnbmFpam91XCA7CivlpJrlhYPnmoQgPiB0YWdlbnRla2lcIDsKK+WItua1t+aoqSA+IHNlaWthaWtlblwgOwor5Lqk6YWN56iuID4ga291aGFpc2h1XCA7CivlnKjkvY/ogIUgPiB6YWlqdXVzaGFcIDsKK+aIkOeGn+acnyA+IHNlaWp1a3VraVwgOwor5YWx5ZKM5YWaID4ga3lvdXdhdG91XCA7CivlubPmlrnmoLkgPiBoZWlob3Vrb25cIDsKK+irnOWgseWToSA+IGNob3Vob3VpblwgOwor6IiI5aWu5YmkID4ga291ZnVuemFpXCA7CivlhYjopovogIUgPiBzZW5rZW5zaGFcIDsKK+iIquepuuWIuCA+IGtvdWt1dWtlblwgOwor5YWJ6Zu75a2QID4ga291ZGVuc2hpXCA7Civlo7Llm73lpbQgPiBiYWlrb2t1ZG9cIDsKK+e5geWIhuaVsCA+IGhhbmJ1bnN1dVwgOwor5oCn6KGM5YuVID4gc2Vpa291ZG91XCA7CivpioDooYzliLggPiBnaW5rb3VrZW5cIDsKK+S4h+S4h+atsyA+IGJhbmJhbnphaVwgOwor5YGc6Ii55aC0ID4gdGVpc2Vuam91XCA7CivlmIbpoZjmm7ggPiB0YW5nYW5zaG9cIDsKK+WGjeeUn+eUoyA+IHNhaXNlaXNhblwgOwor5Zyw5a++5ZywID4gY2hpdGFpY2hpXCA7CivmlofkvZPoq5YgPiBidW50YWlyb25cIDsKK+iqv+afu+WboyA+IGNob3VzYWRhblwgOwor5Y2Y6KGM5pysID4gdGFua291Ym9uXCA7CivlsI/lpJzmm7IgPiBzYXlva3lva3VcIDsKK+WHuuS4lumWkyA+IHNodXNzZWtlblwgOwor5Y2Y6KGM5pu4ID4gdGFua291c2hvXCA7CivkuIDmmYLplpMgPiBpY2hpamlrYW5cIDsKK+a4qeaziemDtyA+IG9uc2Vua3lvdVwgOwor5pyJ5ZCN5Lq6ID4geXV1bWVpamluXCA7CivlvoznlLLmnb8gPiBrb3VrYW5wYW5cIDsKK+W8seS9k+WMliA+IGpha3V0YWlrYVwgOwor57WM5riI6Z2iID4ga2VpemFpbWVuXCA7Civkv67pqJPpgZMgPiBzaHVnZW5kb3VcIDsKK+W+gOeUn+mamyA+IG91am91Z2l3YVwgOwor5q6L5a2Y6ICFID4gemFuem9uc2hhXCA7CivoiKrnqbrkvr8gPiBrb3VrdXViaW5cIDsKK+aguOatpuijhSA+IGtha3VidXNvdVwgOwor5Z+L6JS16YeRID4gbWFpem91a2luXCA7CivlraTnq4vljJYgPiBrb3JpdHN1a2FcIDsKK+iBluWutuaXjyA+IHNlaWthem9rdVwgOwor5Lm+54el5YmkID4ga2Fuc291emFpXCA7Civms6Xngq3lnLAgPiBkZWl0YW5jaGlcIDsKK+Wklui8quiIuSA+IGdhaXJpbnNlblwgOwor6KSH5Yip5rOVID4gZnVrdXJpaG91XCA7CivokrjnlZnlmaggPiBqb3VyeXV1a2lcIDsKK+mRkeWumuabuCA+IGthbnRlaXNob1wgOwor6KO95rC35qmfID4gc2VpaHlvdWtpXCA7Civlt7vlr7/lj7ggPiBtYWtpenVzaGlcIDsKK+a2iOiyu+iyoSA+IHNob3VoaXphaVwgOwor6JGX5L2c5a62ID4gY2hvc2FrdWthXCA7CivluILosqnlk4EgPiBzaGloYW5oaW5cIDsKK+W3u+mgreiogCA+IGthbnRvdWdlblwgOwor6Kq/55CG5birID4gY2hvdXJpc2hpXCA7CivnnJ/moZHnk5wgPiBtYWt1d2F1cmlcIDsKK+maj+W+k+iAhSA+IHp1aWp1dXNoYVwgOwor5LiA5a+45YWIID4gaXNzdW5zYWtpXCA7Civmloflrabpg6ggPiBidW5nYWt1YnVcIDsKK+S6iOe0hOWItiA+IHlveWFrdXNlaVwgOwor57ea6YCf5bqmID4gc2Vuc29rdWRvXCA7CivlubPpnaLlvaIgPiBoZWltZW5rZWlcIDsKK+ikh+avlOS+iyA+IGZ1a3VoaXJlaVwgOwor5pWj5rC06LuKID4gc2Fuc3Vpc2hhXCA7CivkuIDmmYLph5EgPiBpY2hpamlraW5cIDsKK+WJjeW5tOW6piA+IHplbicnbmVuZG9cIDsKK+eZuuihjOiAhSA+IGhha2tvdXNoYVwgOwor5YGc55WZ5omAID4gdGVpcnl1dWpvXCA7Civlrq7ln47nnIwgPiBtaXlhZ2lrZW5cIDsKK+WJjeWJjeWbniA+IHplbnplbmthaVwgOwor54eX5b6z5YipID4ga2FuZG9rdXJpXCA7CivmrbvliJHloLQgPiBzaGlrZWlqb3VcIDsKK+W3u+WtkOacrCA+IGthbnNoaWhvblwgOwor55S66K2w5LyaID4gY2hvdWdpa2FpXCA7CivkurrnlJ/oprMgPiBqaW5zZWlrYW5cIDsKK+ecn+ePoOiynSA+IHNoaW5qdWdhaVwgOwor5Lqs6YO95biCID4ga3lvdXRvc2hpXCA7Civpm6jlj7DpoqggPiBhbWV0YWlmdXVcIDsKK+iHqueUseW9oiA+IGppeXV1Z2F0YVwgOwor5YWN6Kix5Yi2ID4gbWVua3lvc2VpXCA7Civpm5HloLHmrIQgPiB6YXBwb3VyYW5cIDsKK+aEm+WFmuW/gyA+IGFpdG91c2hpblwgOwor6Ziy5q2i5rOVID4gYm91c2hpaG91XCA7CivpgbjmjJnms5UgPiBzZW5reW9ob3VcIDsKK+WkqeS6leijjyA+IHRlbmpvdXVyYVwgOwor5Y2K6Zmw5b2xID4gaGFuJydpbicnZWlcIDsKK+acgOmHjeeCuSA+IHNhaWp1dXRlblwgOwor5LiA5a++5LiAID4gaXR0YWlpY2hpXCA7CivpgbjmjJnmsJEgPiBzZW5reW9taW5cIDsKK+aVmeWUhuiAhSA+IGt5b3VzYXNoYVwgOwor5paZ55CG5Lq6ID4gcnlvdXJpbmluXCA7Civoh6rnlLHluK0gPiBqaXl1dXNla2lcIDsKK+aciOWIiuiqjCA+IGdla2thbnNoaVwgOwor5LiN54af57e0ID4gZnVqdWt1cmVuXCA7Civlj6TlhbjnmoQgPiBrb3RlbnRla2lcIDsKK+Wkieatu+iAhSA+IGhlbnNoaXNoYVwgOwor5pys5qC85YyWID4gaG9ua2FrdWthXCA7Civku5XkuIrlt6UgPiBzaGlhZ2Vrb3VcIDsKK+eJoeS4ueadjyA+IGJvdGFua3lvdVwgOwor5bmz5pa55b2iID4gaGVpaG91a2VpXCA7CivlirTlg43ogIUgPiByb3Vkb3VzaGFcIDsKK+WkieWMlueQgyA+IGhlbmtha3l1dVwgOwor6YGg6ZqU6KaWID4gZW5rYWt1c2hpXCA7Civpm5HoqJjluLMgPiB6YWtraWNob3VcIDsKK+WcqOagoeeUnyA+IHphaWtvdXNlaVwgOwor5pGp5pOm6Z+zID4gbWFzYXRzdW9uXCA7Civom43ng4/os4ogPiBob3RhcnVpa2FcIDsKK+WGjeeUn+azlSA+IHNhaXNlaWhvdVwgOwor5aSa55m65qmfID4gdGFoYXRzdWtpXCA7CivmtLvniYjlsYsgPiBrYXBwYW4nJ3lhXCA7Civph5HliZvmiYsgPiBrb25nb3VzaHVcIDsKK+iiq+Wus+mhjSA+IGhpZ2FpZ2FrdVwgOwor6YG45oyZ5qipID4gc2Vua3lva2VuXCA7Civln7rmnKzntaYgPiBraWhvbmt5dXVcIDsKK+mdnumHkeWxniA+IGhpa2luem9rdVwgOwor54yp54yp57eLID4gc2hvdWpvdWhpXCA7Civlm57mlZnlvpIgPiBrYWlreW91dG9cIDsKK+aMh+ekuuWFiCA+IHNoaWppc2FraVwgOwor5YKZ5b+Y6YyyID4gYmlib3Vyb2t1XCA7CivnoILns5bpu40gPiBzYXRvdWtpYmlcIDsKK+ahiOWGheabuCA+IGFuJyduYWlzaG9cIDsKK+WKn+WKtOmHkSA+IGtvdXJvdWtpblwgOwor6KKr5beu5YilID4gaGlzYWJldHN1XCA7Civnl5jnl5XpnaIgPiBhYmF0YXp1cmFcIDsKK+acseaWh+mHkSA+IHNodWJ1bmtpblwgOwor5LiN6Ky55oWOID4gZnVraW5zaGluXCA7Civogp3noazlpIkgPiBrYW5rb3VoZW5cIDsKK+acq+acn+eahCA+IG1ha2tpdGVraVwgOwor56S85aWJ5YWsID4gcmVpYm91a291XCA7CivljZTmioDogIUgPiBreW91Z2lzaGFcIDsKK+Wkmui2s+mhniA+IHRhc29rdXJ1aVwgOwor56We56eY5oCnID4gc2hpbnBpc2VpXCA7CivmsrjpqLDngrkgPiBmdXR0b3V0ZW5cIDsKK+mkiumtmuaxoCA+IHlvdWd5b2NoaVwgOwor6a2U5rOV55qEID4gbWFob3V0ZWtpXCA7Civoo73msLfmiYAgPiBzZWloeW91am9cIDsKK+mWouilv+W8gSA+IGthbnNhaWJlblwgOwor5YWr5Y2D6I2JID4geWFjaGlndXNhXCA7CivpgZPkuqTms5UgPiBkb3Vrb3Vob3VcIDsKK+mHjuiPnOaxgSA+IHlhc2FpamlydVwgOwor5pah5peL5paZID4gYXNzZW5yeW91XCA7CivoiKrmtbflo6sgPiBrb3VrYWlzaGlcIDsKK+a1ruWLleagqiA+IGZ1ZG91a2FidVwgOwor5re35Lqk5p6XID4ga29ua291cmluXCA7CivmqKHnr4Tlm5ogPiBtb2hhbnNodXVcIDsKK+ism+e+qemMsiA+IGtvdWdpcm9rdVwgOwor55Sf5a2Y6ICFID4gc2Vpem9uc2hhXCA7CivkuI3orKzmgKcgPiBmdWJ5dXVzZWlcIDsKK+Wwjumbu+aApyA+IGRvdWRlbnNlaVwgOwor5pS56Z2p5qGIID4ga2Fpa2FrdWFuXCA7Civms5XmlLnmraMgPiBob3VrYWlzZWlcIDsKK+eUn+eUo+aApyA+IHNlaXNhbnNlaVwgOwor5LiK5Lit5LiLID4gam91Y2h1dWdlXCA7CivntabmsLTmiYAgPiBreXV1c3Vpam9cIDsKK+eMnOeWkeW/gyA+IHNhaWdpc2hpblwgOwor5LiN6Kq/5rOVID4gYnVjaG91aG91XCA7Civlj5fli5XnmoQgPiBqdWRvdXRla2lcIDsKK+iHqueUseWeiyA+IGppeXV1Z2F0YVwgOwor6Kq/55CG5Y+wID4gY2hvdXJpZGFpXCA7CivnqbrplpHlnLAgPiBrdXVrYW5jaGlcIDsKK+WKtOWDjeelrSA+IHJvdWRvdXNhaVwgOwor5YaN5p2l6YCxID4gc2FyYWlzaHV1XCA7Civku6Pooajpg6ggPiBkYWloeW91YnVcIDsKK+WDheWwkeW3riA+IGtpbnNob3VzYVwgOwor5ZGo5pyf5oCnID4gc2h1dWtpc2VpXCA7Civpo5vooYzmnI0gPiBoaWtvdWZ1a3VcIDsKK+S4jeeJueWumiA+IGZ1dG9rdXRlaVwgOwor6KGo6Z2i5YyWID4gaHlvdW1lbmthXCA7CivluILmnInlnLAgPiBzaGl5dXVjaGlcIDsKK+aomea6luiqniA+IGh5b3VqdW5nb1wgOwor5rC05bmz6Z2iID4gc3VpaGVpbWVuXCA7CivkuqTpgJrot68gPiBrb3V0c3V1cm9cIDsKK+a2iOiyu+iAhSA+IHNob3VoaXNoYVwgOwor5Y+k6YGT5YW3ID4gZnVydWRvdWd1XCA7Civln7rmnKznmoQgPiBraWhvbnRla2lcIDsKK+iNieWbo+WtkCA+IGt1c2FkYW5nb1wgOwor55yf54+g6ImyID4gc2hpbmp1aXJvXCA7CivntbHluKXmqKkgPiB0b3VzdWlrZW5cIDsKK+e3tOe/kuapnyA+IHJlbnNodXVraVwgOwor5piH6ZmN6Ii1ID4gc2hvdWtvdWRhXCA7CivlhbXluqvnnIwgPiBoeW91Z29rZW5cIDsKK+WFrOa1t+S4iiA+IGtvdWthaWpvdVwgOwor5r+A5oim5Yy6ID4gZ2VraXNlbmt1XCA7CivlhIDnpLznmoQgPiBnaXJlaXRla2lcIDsKK+acieW5s+ezliA+IGFydWhlaXRvdVwgOwor5Lqk6YCa6LK7ID4ga291dHN1dWhpXCA7Civph5HprZrojYkgPiBraW5neW9zb3VcIDsKK+edgOeBq+eCuSA+IGNoYWtrYXRlblwgOwor6YG45oyZ5oimID4gc2Vua3lvc2VuXCA7CivlrpfkuLvmqKkgPiBzb3VzaHVrZW5cIDsKK+awtOmFuOaguSA+IHN1aXNhbmtvblwgOwor6LWk5Y2B5a2XID4gc2VraWp1dWppXCA7Civok4Tpn7PmqZ8gPiBjaGlrdW9ua2lcIDsKK+iHquWwiuW/gyA+IGppc29uc2hpblwgOwor6KGo6KiY5rOVID4gaHlvdWtpaG91XCA7CivpnLLlpKnllYYgPiByb3RlbnNob3VcIDsKK+S8keW7t+aXpSA+IGt5dXV0ZWliaVwgOwor6aOy6YWS55mWID4gaW5zaHVoZWtpXCA7CivkuIDmlonpq5ggPiBpc3NlaWRha2FcIDsKK+WHpuWIkeWPsCA+IHNob2tlaWRhaVwgOwor5Ya35oi/6LuKID4gcmVpYm91c2hhXCA7CivmpJznlqvmiYAgPiBrZW4nJ2VraWpvXCA7CivnhafluqboqIggPiBzaG91ZG9rZWlcIDsKK+WPjueojuWQjyA+IHNodXV6ZWlyaVwgOwor5ZaJ6Ieq5oWiID4gbm9kb2ppbWFuXCA7Civph5HnnIvmnb8gPiBraW5rYW5iYW5cIDsKK+aVo+W8vumKgyA+IHNhbmRhbmp1dVwgOwor5Z+56aSK5rayID4gYmFpeW91ZWtpXCA7CivlpKnni5fpoqggPiB0ZW5ndWthemVcIDsKK+S4gOacrOadiSA+IGlwcG9uc3VnaVwgOwor5ris5b6u6KiIID4gc29rdWJpa2VpXCA7Civpoqjoh7TmnpcgPiBmdXVjaGlyaW5cIDsKK+WcsOeQhuWtpiA+IGNoaXJpZ2FrdVwgOwor576O6aOf5a62ID4gYmlzaG9rdWthXCA7CivlsL/pgZPngo4gPiBueW91ZG91ZW5cIDsKK+ies+ieguaLsyA+IHRvdXJvdWtlblwgOwor6Kq/55CG5Lq6ID4gY2hvdXJpbmluXCA7CivllqvnhZnmiYAgPiBraXRzdWVuam9cIDsKK+aZguWIhuaZgiA+IGppYnVuZG9raVwgOwor5YWr6YeN5qGcID4geWFlemFrdXJhXCA7CivljZfom67oiLkgPiBuYW5iYW5zZW5cIDsKK+ixjOixhuixhiA+IGVuZG91bWFtZVwgOwor5Zue5pWw5Yi4ID4ga2Fpc3V1a2VuXCA7Civoo73pgKDogIUgPiBzZWl6b3VzaGFcIDsKK+mHjeW9ueS8miA+IGp1dXlha2thaVwgOwor5YyX5qyn5Lq6ID4gaG9rdW91amluXCA7CivkuIDkurrlrZAgPiBoaXRvcmlra29cIDsKK+atu+eUn+imsyA+IHNoaXNlaWthblwgOwor54Kt55a955eFID4gdGFuc29ieW91XCA7Civnmb3lnLDlm7MgPiBoYWt1Y2hpenVcIDsKK+m8iOeUsuiJsiA+IGJla2tvdWlyb1wgOwor5LmX6LuK5Yi4ID4gam91c2hha2VuXCA7CivmuKznqIvlmaggPiBzb2t1dGVpa2lcIDsKK+ahiOWGheWsoiA+IGFuJyduYWlqb3VcIDsKK+WGhuiInuabsiA+IGVuYnVreW9rdVwgOwor5raI6LK756iOID4gc2hvdWhpemVpXCA7Civlo4HkuIDph40gPiBrYWJlaGl0b2VcIDsKK+Wbm+mdouS9kyA+IHNoaW1lbnRhaVwgOwor5Zyo5p2l57eaID4gemFpcmFpc2VuXCA7CivlpKfnkIbnn7MgPiBkYWlyaXNla2lcIDsKK+eUn+eUo+WcsCA+IHNlaXNhbmNoaVwgOwor54mH55Sw6IiOID4ga2F0YWluYWthXCA7CivopIflhpnmqZ8gPiBmdWt1c2hha2lcIDsKK+miqOS/l+eUuyA+IGZ1dXpva3VnYVwgOwor5YG06Z2i5ZuzID4gc29rdW1lbnp1XCA7CivoqIDoqp7lraYgPiBnZW5nb2dha3VcIDsKK+W3oeiIquiIuSA+IGp1bmtvdXNlblwgOwor5Y6f5aeL5p6XID4gZ2Vuc2hpcmluXCA7Civoh7PkuIrmqKkgPiBzaGlqb3VrZW5cIDsKK+Wwj+WjsuWVhiA+IGtvdXJpc2hvdVwgOwor57Wx5Yi25ZOBID4gdG91c2VpaGluXCA7CivnrKzkuIDlr6kgPiBkYWlpc3NoaW5cIDsKK+e0heavm+S6uiA+IGtvdW1vdWppblwgOwor6KyE5YaZ54mIID4gdG91c2hhYmFuXCA7CivmjqfoqLTlr6kgPiBrb3Vzb3NoaW5cIDsKK+S4reWPpOi7iiA+IGNodXVrb3NoYVwgOwor5paw57SA5YWDID4gc2hpbmtpZ2VuXCA7Civnt7Tnv5LmiYAgPiByZW5zaHV1am9cIDsKK+eri+aWueaguSA+IHJpcHBvdWtvblwgOwor55+t6Z+z6ZqOID4gdGFuJydvbmthaVwgOwor5a6j6KqT5pu4ID4gc2Vuc2Vpc2hvXCA7Civkuozmi43lrZAgPiBuaWJ5b3VzaGlcIDsKK+WKtOi+suWFmiA+IHJvdW5vdXRvdVwgOwor5b285bK46IqxID4gaGlnYW5iYW5hXCA7Civlv6DprYLnopEgPiBjaHV1a29uaGlcIDsKK+acieWKueaApyA+IHl1dWtvdXNlaVwgOwor5LiJ5pel5pyIID4gbWlrYWR6dWtpXCA7CivnmbrmjK/mqZ8gPiBoYXNzaGlua2lcIDsKK+e3j+WLmeW6gSA+IHNvdW11Y2hvdVwgOwor5rWB6KGM6KqeID4gcnl1dWtvdWdvXCA7CivlhoXprq7kurogPiBuYWlzZW5qaW5cIDsKK+eUn+eQhueahCA+IHNlaXJpdGVraVwgOwor5ZCN6KqJ5oW+ID4gbWVpeW95b2t1XCA7CivliqrlipvlrrYgPiBkb3J5b2t1a2FcIDsKK+WcqOadpeeoriA+IHphaXJhaXNodVwgOwor5Yqg56Gr5rOVID4ga2FyeXV1aG91XCA7CivlpKflrrbml48gPiBkYWlrYXpva3VcIDsKK+aZr+aVmeW+kiA+IGtlaWt5b3V0b1wgOwor6auY56mN6ZuyID4ga291c2VraXVuXCA7CivkuZfoiLnliLggPiBqb3VzZW5rZW5cIDsKK+WGjeWvqeafuyA+IHNhaXNoaW5zYVwgOwor55So6Kqe6ZuGID4geW91Z29zaHV1XCA7CivosqDlgrfogIUgPiBmdXNob3VzaGFcIDsKK+WKtOWDjeazlSA+IHJvdWRvdWhvdVwgOwor5rGO55So5qmfID4gaGFuJyd5b3VraVwgOwor5ZCN6KqJ5b+DID4gbWVpeW9zaGluXCA7CivpkZHlrprkurogPiBrYW50ZWluaW5cIDsKK+aKleelqOaXpSA+IHRvdWh5b3ViaVwgOwor5YWI6KGM6KmeID4gc2Vua291c2hpXCA7Civni6zmvJTkvJogPiBkb2t1ZW5rYWlcIDsKK+mfs+mfu+WtpiA+IG9uJydpbmdha3VcIDsKK+WKn+WKtOiAhSA+IGtvdXJvdXNoYVwgOwor6ISz57Sw6IOeID4gbm91c2FpYm91XCA7Civnvo7mlofoqr8gPiBiaWJ1bmNob3VcIDsKK+aYjue0sOabuCA+IG1laXNhaXNob1wgOwor55S35paH5a2XID4gb3Rva29tb2ppXCA7Civnt4/li5jlrpogPiBzb3VrYW5qb3VcIDsKK+Wbnuimp+advyA+IGthaXJhbmJhblwgOwor5Lu75ZG954q2ID4gbmlubWVpam91XCA7CivkuIrntI3ph5EgPiBqb3Vub3VraW5cIDsKK+aLt+WVj+WPsCA+IGdvdW1vbmRhaVwgOwor5LiK5aWP5paHID4gam91c291YnVuXCA7Civoh6rosqzngrkgPiBqaXNla2l0ZW5cIDsKK+WKqeebo+edoyA+IGpva2FudG9rdVwgOwor5Yem55Sf6KiTID4gc2hvc2Vpa3VuXCA7CivmnKzoqabpqJMgPiBob25zaGlrZW5cIDsKK+WkluS/oemDqCA+IGdhaXNoaW5idVwgOwor5LiA5Lq65YmNID4gaGl0b3JpbWFlXCA7CivlirTlg43mqKkgPiByb3Vkb3VrZW5cIDsKK+WcsOeQg+WEgCA+IGNoaWt5dXVnaVwgOwor5Zyw5LiK5qipID4gY2hpam91a2VuXCA7Civph5HlsY/poqggPiBraW5ieW91YnVcIDsKK+Wwjumbu+S9kyA+IGRvdWRlbnRhaVwgOwor5YWx55uK6LK7ID4ga3lvdWVraWhpXCA7CivkuI3oqo3mib8gPiBmdW5pbnNob3VcIDsKK+mmrOm5v+mdoiA+IGJha2FkenVyYVwgOwor5Zyf55So5rOiID4gZG95b3VuYW1pXCA7Civnt4/pgbjmjJkgPiBzb3VzZW5reW9cIDsKK+WItuW+oeebpCA+IHNlaWd5b2JhblwgOwor5b+D5oSP5rCXID4ga29rb3JvaWtpXCA7Civph43lirTlg40gPiBqdXVyb3Vkb3VcIDsKK+aJi+amtOW8viA+IHRlcnl1dWRhblwgOwor5LiA5p6a5LiKID4gaWNoaW1haXVlXCA7CivlpKnkupXnga8gPiB0ZW5qb3V0b3VcIDsKK+mkiumtmuWgtCA+IHlvdWd5b2pvdVwgOwor5oqV56Wo5omAID4gdG91aHlvdWpvXCA7CivluqfmqJnns7sgPiB6YWh5b3VrZWlcIDsKK+WGhuWAn+asviA+IGVuc2hha2thblwgOwor57W25a++6KuWID4gemV0dGFpcm9uXCA7CivmjZXomavntrIgPiBob2NodXVhbWlcIDsKK+WHuuadpeaYnyA+IGRla2lib3NoaVwgOwor6Iqx5p+z55WMID4ga2FyeXV1a2FpXCA7CivlhazmsJHmqKkgPiBrb3VtaW5rZW5cIDsKK+WmguS9leiosSA+IGlrYWJha2FyaVwgOwor5riF5pWZ5b6SID4gc2Vpa3lvdXRvXCA7CivntKvlpJbnt5ogPiBzaGlnYWlzZW5cIDsKK+WQjOWlveS8miA+IGRvdWtvdWthaVwgOwor5rSX6LuK5aC0ID4gc2Vuc2hham91XCA7CivlsZXmnJvou4ogPiB0ZW5ib3VzaGFcIDsKK+aal+WPt+W4syA+IGFuZ291Y2hvdVwgOwor5bmM6aas6LuKID4gaG9yb2Jhc2hhXCA7CivlpKfkvIHmpa0gPiBkYWlraWd5b3VcIDsKK+WjsueskeWppiA+IGJhaXNob3VmdVwgOwor5o6h54K56ICFID4gc2FpdGVuc2hhXCA7CivplpPpmpnmr5QgPiBrYW5nZWtpaGlcIDsKK+WjruihjOS8miA+IHNvdWtvdWthaVwgOwor5YaN55Sf5ZOBID4gc2Fpc2VpaGluXCA7CivlhaznpL7lgrUgPiBrb3VzaGFzYWlcIDsKK+acquadpeWtpiA+IG1pcmFpZ2FrdVwgOwor5pyr5aeL57WCID4gc3Vlc2hpanV1XCA7CivmvZzmsLToiaYgPiBzZW5zdWlrYW5cIDsKK+awtOmBk+euoSA+IHN1aWRvdWthblwgOwor5aSp55CG5pWZID4gdGVucmlreW91XCA7Civkuojmg7Ppq5ggPiB5b3NvdWRha2FcIDsKK+aJi+afhOmhlCA+IHRlZ2FyYWdhb1wgOwor5omL6Iq45ZOBID4gc2h1Z2VpaGluXCA7CivlubPooaHpjJggPiBoZWlrb3VzdWlcIDsKK+aKl+avkue0oCA+IGtvdWRva3Vzb1wgOwor5aSn6LGG57KVID4gZGFpenVrYXN1XCA7CivnoJTnqbbosrsgPiBrZW5reXV1aGlcIDsKK+efpeiDveeKryA+IGNoaW5vdWhhblwgOwor6YG45omL5qipID4gc2Vuc2h1a2VuXCA7Civpup3pppnpub8gPiBqYWtvdWppa2FcIDsKK+a1t+WyuOe3miA+IGthaWdhbnNlblwgOwor6LK/5piT5rivID4gYm91ZWtpa291XCA7CivmmqblubTluqYgPiByZWtpbmVuZG9cIDsKK+WkqeWuruWbsyA+IHRlbmt5dXV6dVwgOwor5pyJ5qip6ICFID4geXV1a2Vuc2hhXCA7CivkvZPoo4HkuIogPiB0ZWlzYWlqb3VcIDsKK+S8iumBlOeUtyA+IGRhdGVvdG9rb1wgOwor5LyR5YiK5pelID4ga3l1dWthbmJpXCA7Civlj6TlhbjlraYgPiBrb3Rlbmdha3VcIDsKK+aUueiogueJiCA+IGthaXRlaWJhblwgOwor55Sf5a2Y5qipID4gc2Vpem9ua2VuXCA7CivoqbLllY/poYwgPiBnYWltb25kYWlcIDsKK+aal+WPt+WtpiA+IGFuZ291Z2FrdVwgOwor5Luj6KGM6ICFID4gZGFpa291c2hhXCA7CivlhavljYPmrbMgPiB5YWNoaXRvc2VcIDsKK+WPo+ecn+S8vCA+IGt1Y2hpbWFuZVwgOwor5Ye654mI6YOoID4gc2h1cHBhbmJ1XCA7CivoprPmuKzmiYAgPiBrYW5zb2t1am9cIDsKK+e1jOa4iOeVjCA+IGtlaXphaWthaVwgOwor5LiN54ax5b+DID4gZnVuZXNzaGluXCA7Civlhazms5XkurogPiBrb3Vob3VqaW5cIDsKK+S8keecoOacnyA+IGt5dXVtaW5raVwgOwor5Ymv57eP55CGID4gZnVrdXNvdXJpXCA7CivkvLTlpY/ogIUgPiBiYW5zb3VzaGFcIDsKK+Wvvuirh+iAhSA+IHRhaWRhbnNoYVwgOwor6LK/5piT5rOVID4gYm91ZWtpaG91XCA7CivlnJLpgYrkvJogPiBlbicneXV1a2FpXCA7Civos5vmiJDogIUgPiBzYW5zZWlzaGFcIDsKK+iKuOiDveS6uiA+IGdlaW5vdWppblwgOwor5YiG6K2y5ZywID4gYnVuam91Y2hpXCA7CivlsYjlhYnmgKcgPiBrdWtrb3VzZWlcIDsKK+ecn+ePoOa5viA+IHNoaW5qdXdhblwgOwor5Lqk6YCa56aNID4ga291dHN1dWthXCA7Civmi53ngavmlZkgPiBoYWlrYWt5b3VcIDsKK+euh+adoeabuCA+IGtham91Z2FraVwgOwor6YG45oyZ5Lq6ID4gc2Vua3lvbmluXCA7CivpharovrLlrrYgPiByYWt1bm91a2FcIDsKK+W3peiKuOWTgSA+IGtvdWdlaWhpblwgOwor5pyq5p2l5Z6LID4gbWlyYWlnYXRhXCA7CivlvIHpsJPpoZ4gPiBiZW5zYWlydWlcIDsKK+eEoeizh+agvCA+IG11c2hpa2FrdVwgOwor5Lu75ZG95qipID4gbmlubWVpa2VuXCA7CivomavlnoLngo4gPiBjaHV1c3VpZW5cIDsKK+egtOiQveaIuCA+IGdvcm90c3VraVwgOwor6JOE6Z+z5ZmoID4gY2hpa3VvbmtpXCA7Civnt6nkuIvolqwgPiBrYW5nZXlha3VcIDsKK+acieapn+eahCA+IHl1dWtpdGVraVwgOwor5q2j5Y+N5a++ID4gc2VpaGFudGFpXCA7CivpnZLmtbfljp8gPiBhb3VuYWJhcmFcIDsKK+WHuemdoumPoSA+IG91bWVua3lvdVwgOwor5aCx6YGT6ZmjID4gaG91ZG91amluXCA7CivliqPli6LmhJ8gPiByZXNzZWlrYW5cIDsKK+W+oeaWmeWcsCA+IGdvcnlvdWNoaVwgOwor6KiI566X6ICFID4ga2Vpc2Fuc2hhXCA7CivnhKHpp4Tlj6MgPiBtdWRhZ3VjaGlcIDsKK+adjuaJv+aZqSA+IHJpc2hvdWJhblwgOwor56aP6Z+z5pu4ID4gZnVrdWluc2hvXCA7CivlhavljabmjowgPiBoYWtrZXNob3VcIDsKK+iHquS4u+eahCA+IGppc2h1dGVraVwgOwor6YCy5q2p5YWaID4gc2hpbnBvdG91XCA7Civnm7jlj43mgKcgPiBzb3VoYW5zZWlcIDsKK+iDveWLleaFiyA+IG5vdWRvdXRhaVwgOwor5Y+45Luk5a6YID4gc2hpcmVpa2FuXCA7CivlnLDpnIfoqIggPiBqaXNoaW5rZWlcIDsKK+e0meS4gOmHjSA+IGthbWloaXRvZVwgOwor5rC05Yqg5ribID4gbWl6dWthZ2VuXCA7Civlh7rniYjosrsgPiBzaHVwcGFuaGlcIDsKK+aenOWgseiAhSA+IGthaG91bW9ub1wgOwor5oiQ6ZW35pyfID4gc2VpY2hvdWtpXCA7CivmtYTlnJ/mlZkgPiBqb3Vkb2t5b3VcIDsKK+WkqeS6leadvyA+IHRlbmpvdWl0YVwgOwor6ZuG5aG15qmfID4gc2h1dWppbmtpXCA7Civlh4zms6LmgKcgPiByeW91aGFzZWlcIDsKK+W/q+eUt+WtkCA+IGthaWRhbnNoaVwgOwor5aSp54uX6Iy4ID4gdGVuZ3V0YWtlXCA7Civni5nmkoPlhbUgPiBzb2dla2loZWlcIDsKK+Wklui8quWxsSA+IGdhaXJpbnphblwgOwor5piH6ZmN5qmfID4gc2hvdWtvdWtpXCA7CivmlL7ngavni4IgPiBob3VrYWt5b3VcIDsKK+miqOmmrOeJmyA+IGZ1dWJhZ3l1dVwgOwor6Zm25Zmo5ZWGID4gdG91a2lzaG91XCA7CivkuInloYHnt5ogPiBzYW5ydWlzZW5cIDsKK+mBk+e+qeW/gyA+IGRvdWdpc2hpblwgOwor6LaF5pmC56m6ID4gY2hvdWppa3V1XCA7Civlvq7nspLlrZAgPiBiaXJ5dXVzaGlcIDsKK+awtOW5s+e3miA+IHN1aWhlaXNlblwgOwor5YaN5bCL5ZWPID4gc2FpamlubW9uXCA7CivmuIXmjoPou4ogPiBzZWlzb3VzaGFcIDsKK+acgOWJjee3miA+IHNhaXplbnNlblwgOwor57W25a++6ICFID4gemV0dGFpc2hhXCA7CivmraPnorrluqYgPiBzZWlrYWt1ZG9cIDsKK+awt+WJiuapnyA+IGh5b3VzYWtraVwgOwor5YiG6Kej6IO9ID4gYnVua2Fpbm91XCA7Civlm5vop5LlvaIgPiBzaGlrYWtrZWlcIDsKK+Wuo+iogOabuCA+IHNlbmdlbnNob1wgOwor5Y+45Luk5aGUID4gc2hpcmVpdG91XCA7Civnq4vlpKrlrZAgPiByaXR0YWlzaGlcIDsKK+aciei5hOmhniA+IHl1dXRlaXJ1aVwgOwor5L2/55So6ICFID4gc2hpeW91c2hhXCA7CivlpKnkuIrnlYwgPiB0ZW5qb3VrYWlcIDsKK+mdkua1t+S6gCA+IGFvdW1pZ2FtZVwgOwor5p2l6YGK6ICFID4gcmFpeXV1c2hhXCA7Civlt6jkurrou40gPiBreW9qaW5ndW5cIDsKK+WtpumDqOeUnyA+IGdha3VidXNlaVwgOwor5bel5a2m6YOoID4ga291Z2FrdWJ1XCA7CivmlZnnp5Hmm7ggPiBreW91a2FzaG9cIDsKK+e1jOa4iOazlSA+IGtlaXphaWhvdVwgOwor56C05YK36aKoID4gaGFzaG91ZnV1XCA7CivmjIHlj4LkurogPiBqaXNhbicnbmluXCA7Civnt4/nnaPlupwgPiBzb3V0b2t1ZnVcIDsKK+aXpeacrOmrqiA+IG5paG9uZ2FtaVwgOwor5Yi25b6h5qOSID4gc2VpZ3lvYm91XCA7CivmpJzmoYjmm7ggPiBrZW4nJ2Fuc2hvXCA7CivmranpgZPmqYsgPiBob2RvdWt5b3VcIDsKK+WcsOaWuee0mSA+IGNoaWhvdXNoaVwgOwor5pel5YKt5Y+WID4gaGl5b3V0b3JpXCA7CivlnLDnjYTlpIkgPiBqaWdva3VoZW5cIDsKK+WQiOWlj+WboyA+IGdhc3NvdWRhblwgOwor55m65oyv5ZmoID4gaGFzc2hpbmtpXCA7CivlpKnkupXmiYcgPiB0ZW5qb3VzZW5cIDsKK+WFqOWPjeWwhCA+IHplbmhhbnNoYVwgOwor5aSJ6YCf5qmfID4gaGVuc29rdWtpXCA7CivnhKHnkIblvI8gPiBtdXJpc2hpa2lcIDsKK+i7veWKtOWDjSA+IGtlaXJvdWRvdVwgOwor5q2j5Y+N5ZCIID4gc2VpaGFuZ291XCA7CivntYzmuIjmrIQgPiBrZWl6YWlyYW5cIDsKK+eUn+Wtl+W8lSA+IGlraWppYmlraVwgOwor5oqV56Wo5Yy6ID4gdG91aHlvdWt1XCA7CivmnKjmm5zml6UgPiBtb2t1eW91YmlcIDsKK+WHuuacqOW5tCA+IGRla2lkb3NoaVwgOwor56KT5rC35bOgID4gdXN1aXRvdWdlXCA7CivliqDlhaXph5EgPiBrYW55dXVraW5cIDsKK+awkemWk+S6uiA+IG1pbmthbmppblwgOwor5YWs5Yuf5qCqID4ga291Ym9rYWJ1XCA7CivkuZfppqzmnI0gPiBqb3ViYWZ1a3VcIDsKK+aXpeacrOmgmCA+IG5paG9ucnlvdVwgOwor6JGX5pu45ZCNID4gY2hvc2hvbWVpXCA7CivntYzllrblraYgPiBrZWllaWdha3VcIDsKK+eZvemJm+mJsSA+IGhha3VlbmtvdVwgOwor57KX55uu57OWID4gemFyYW1ldG91XCA7CivlhoXnjoTplqIgPiBuYWlnZW5rYW5cIDsKK+WcsOaWueeojiA+IGNoaWhvdXplaVwgOwor5beh5p+76ZW3ID4ganVuc2FjaG91XCA7CivljbDliLfmqZ8gPiBpbnNhdHN1a2lcIDsKK+WHjeatu+iAhSA+IHRvdXNoaXNoYVwgOwor55m96YqF6LKoID4gaGFrdWRvdWthXCA7CivlpKnnkIPlm7MgPiB0ZW5reXV1enVcIDsKK+WFq+WNg+W5tCA+IHlhY2hpdG9zZVwgOwor5Y6f5aeL5Lq6ID4gZ2Vuc2hpamluXCA7CivliqDlt6Xos4MgPiBrYWtvdWNoaW5cIDsKK+eruei8qum6qSA+IGNoaWt1d2FmdVwgOwor5LiA5pa555qEID4gaXBwb3V0ZWtpXCA7Civlh7rku5XkuosgPiBkZXNoaWdvdG9cIDsKK+ato+W/teWgtCA+IHNob3VuZW5iYVwgOwor5p+U6YGT5aC0ID4ganV1ZG91am91XCA7CivohIrpq4Tngo4gPiBzZWtpenVpZW5cIDsKK+S6jOmHjemHnCA+IG5panV1Z2FtYVwgOwor56uL5pa55L2TID4gcmlwcG91dGFpXCA7CivpgaDpmpTmgKcgPiBlbmtha3VzZWlcIDsKK+i7veatjOWKhyA+IGtlaWthZ2VraVwgOwor5Yi25YuV54GvID4gc2VpZG91dG91XCA7CivlgqznnKDliaQgPiBzYWltaW56YWlcIDsKK+S7iuS4gOW6piA+IGltYWljaGlkb1wgOwor5pS76Ziy5oimID4ga291Ym91c2VuXCA7CivmtYTlnJ/lrpcgPiBqb3Vkb3NodXVcIDsKK+aTjee4puahvyA+IHNvdWp1dWthblwgOwor5paH5piO6aSoID4gYnVubWVpa2FuXCA7CivlsI7plqLmlbAgPiBkb3VrYW5zdXVcIDsKK+a7nuWcqOWcsCA+IHRhaXphaWNoaVwgOwor5LiK57SN57GzID4gam91bm91bWFpXCA7CivlroflrpnmnI0gPiB1Y2h1dWZ1a3VcIDsKK+WIqeWPo+iAhSA+IHJpa291bW9ub1wgOwor5pa55rOV6KuWID4gaG91aG91cm9uXCA7Civok4vnhLbmgKcgPiBnYWl6ZW5zZWlcIDsKK+WNiuijveWTgSA+IGhhbnNlaWhpblwgOwor5LiA5aC06Z2iID4gaWNoaWJhbWVuXCA7Civnn7PniYjnlLsgPiBzZWtpYmFuZ2FcIDsKK+eZu+mMsuewvyA+IHRvdXJva3Vib1wgOwor5LiA5pio5pmpID4gaXNzYWt1YmFuXCA7CivlpJrmpbXljJYgPiB0YWt5b2t1a2FcIDsKK+Wkp+S4gOeVqiA+IG9vaWNoaWJhblwgOwor6KGb5pif5Zu9ID4gZWlzZWlrb2t1XCA7CivkuIvntJrnlJ8gPiBrYWt5dXVzZWlcIDsKK+aomea6luaZgiA+IGh5b3VqdW5qaVwgOwor6auY6b2i6ICFID4ga291cmVpc2hhXCA7CivkuIDkuIHliY0gPiBpdGNob3VtYWVcIDsKK+aoquaBi+aFlSA+IHlva29yZW5ib1wgOwor6LKh55Sj56iOID4gemFpc2FuemVpXCA7Civkuozph43ouqsgPiBuaWp1dXNoaW5cIDsKK+eUn+eQhuWtpiA+IHNlaXJpZ2FrdVwgOwor54ax5Zmo5YW3ID4gbmV0c3VraWd1XCA7Civlr5LlhrfntJcgPiBrYW5yZWlzaGFcIDsKK+awtOmBk+agkyA+IHN1aWRvdXNlblwgOwor5o6i57Si5pyoID4gdGFuc2FrdWdpXCA7CivnoJTnqbbnp5EgPiBrZW5reXV1a2FcIDsKK+Wun+aWveS+iyA+IGppc3NoaXJlaVwgOwor6ZW36Z+z6ZqOID4gY2hvdW9ua2FpXCA7CivkuI3oqZXliKQgPiBmdWh5b3ViYW5cIDsKK+mBuOaJi+WboyA+IHNlbnNodWRhblwgOwor5Yqf5Yip55qEID4ga291cml0ZWtpXCA7CivlpKnnkIPlhIAgPiB0ZW5reXV1Z2lcIDsKK+ecn+ePoOWxpCA+IHNoaW5qdXNvdVwgOwor5bmz5Z2H54K5ID4gaGVpa2ludGVuXCA7CivpgKPlkIjkvJogPiByZW5nb3VrYWlcIDsKK+W3pealreWMliA+IGtvdWd5b3VrYVwgOwor6LWk6YGT5YSAID4gc2VraWRvdWdpXCA7CivmloflrabluqcgPiBidW5nYWt1emFcIDsKK+WKtOWDjeWFmiA+IHJvdWRvdXRvdVwgOwor57WM5riI5oimID4ga2VpemFpc2VuXCA7CivnsbPnqbrou40gPiBiZWlrdXVndW5cIDsKK+aVt+Wxhee9riA+IHNoaWtpaWNoaVwgOwor6YWN5b2T6YeRID4gaGFpdG91a2luXCA7Civpo5vomornl4cgPiBoaWJ1bnNob3VcIDsKK+i1pOeXouiPjCA+IHNla2lyaWtpblwgOwor5LqU5Y2B6IKpID4gZ29qdXVrYXRhXCA7Civpq5jnrYnlrpggPiBrb3V0b3VrYW5cIDsKK+WcsOaWueeJiCA+IGNoaWhvdWJhblwgOwor54mH6ISz5rK5ID4gaGVuJydub3V5dVwgOwor5aWJ6KGM5omAID4gYnVneW91c2hvXCA7Civogq/lrprmlocgPiBrb3V0ZWlidW5cIDsKK+iKs+mmmeWJpCA+IGhvdWtvdXphaVwgOwor54Gr54G95rWBID4ga2FzYWlyeXV1XCA7CivljbDliLfmiYAgPiBpbnNhdHN1am9cIDsKK+Wkp+iBluWggiA+IGRhaXNlaWRvdVwgOwor57WM5riI5oCnID4ga2VpemFpc2VpXCA7Civom4fntIvnn7MgPiBqYW1vbnNla2lcIDsKK+a1geihjOatjCA+IHJ5dXVrb3VrYVwgOwor5LiJ6KeS5rSyID4gc2Fua2FrdXN1XCA7CivkuInmlofliKQgPiBzYW5tb25iYW5cIDsKK+S4ieinkuazoiA+IHNhbmtha3VoYVwgOwor5a6f6Zqb5oCnID4gamlzc2Fpc2VpXCA7Civnq7nnn6LmnaUgPiB0YWtleWFyYWlcIDsKK+W5s+ihjOe3miA+IGhlaWtvdXNlblwgOwor6JGx5Z2K5Li7ID4gbmVnaWJvdXp1XCA7CivlravlvJ/lrZAgPiBtYWdvZGVzaGlcIDsKK+WuueepjeavlCA+IHlvdXNla2loaVwgOwor5Yi26YW45YmkID4gc2Vpc2FuemFpXCA7CivljaDlj5bmqKkgPiBzZW5zaHVrZW5cIDsKK+S4u+ecvOeCuSA+IHNodWdhbnRlblwgOwor6YGg6ZqU5ZywID4gZW5rYWt1Y2hpXCA7CivkuInop5Lmr5QgPiBzYW5rYWt1aGlcIDsKK+mVt+aZgumWkyA+IGNob3VqaWthblwgOwor5Y2K56uv6ICFID4gaGFucGFtb25vXCA7Civni6znpoHms5UgPiBkb2traW5ob3VcIDsKK+W6g+WRiuiyuyA+IGtvdWtva3VoaVwgOwor5pyA5YSq6YGHID4gc2FpeXV1Z3V1XCA7Civlj7DpoqjnnLwgPiB0YWlmdXVnYW5cIDsKK+acquaVmeiCsiA+IG1pa3lvdWlrdVwgOwor6KOB5pat5birID4gc2FpZGFuc2hpXCA7CivlhajljZjlsIQgPiB6ZW50YW5zaGFcIDsKK+WKueaenOeahCA+IGtvdWthdGVraVwgOwor56m65omL5b2iID4ga3V1dGVnYXRhXCA7CivljbDliLvluKsgPiBpbmtva3VzaGlcIDsKK+mdkuW5tOi8qSA+IHNlaW5lbmhhaVwgOwor5Ymy54O55bqXID4ga2FwcG91dGVuXCA7Civosr/mmJPlk4EgPiBib3Vla2loaW5cIDsKK+WJiuWyqeapnyA+IHNha3VnYW5raVwgOwor5a6M5LqG5b6MID4ga2FucnlvdWdvXCA7CivlpKfkuIrmrrUgPiBkYWlqb3VkYW5cIDsKK+WckuiKuOWtpiA+IGVuZ2VpZ2FrdVwgOwor5oyH55u45pKyID4geXViaXp1bW91XCA7CivogqnnlLLluK8gPiBrZW5rb3V0YWlcIDsKK+ato+W9k+aApyA+IHNlaXRvdXNlaVwgOwor56CC57OW5rC0ID4gc2F0b3VtaXp1XCA7CivmlrnpjJDlvaIgPiBob3VzdWlrZWlcIDsKK+ebuOW9k+aVsCA+IHNvdXRvdXN1dVwgOwor6Ya46YCg6YWSID4gam91em91c2h1XCA7Civlt6bkuK3plpMgPiBzYWNodXVrYW5cIDsKK+S8neS7pOiAhSA+IGRlbnJlaXNoYVwgOwor5pyo57a/6YedID4gbW9tZW5iYXJpXCA7CivmnKjniYjnlLsgPiBtb2t1aGFuZ2FcIDsKK+aknOafu+W9uSA+IGtlbnNheWFrdVwgOwor5b+Y5bm05LyaID4gYm91bmVua2FpXCA7CivlroflrpnlraYgPiB1Y2h1dWdha3VcIDsKK+ecn+eQhuWApCA+IHNoaW5yaWNoaVwgOwor6YWN5rC0566hID4gaGFpc3Vpa2FuXCA7CivlpKrpmb3poqggPiB0YWl5b3VmdXVcIDsKK+S9v+eUqOazlSA+IHNoaXlvdWhvdVwgOwor5Y2w5Yi35bGLID4gaW5zYXRzdXlhXCA7Civpn7Plo7DlraYgPiBvbnNlaWdha3VcIDsKK+S8iumBlOWlsyA+IGRhdGVvbicnbmFcIDsKK+WJr+ipnuWPpSA+IGZ1a3VzaGlrdVwgOwor5a6f5pWw5L2TID4gamlzc3V1dGFpXCA7Civoo4/plbflsYsgPiB1cmFuYWdheWFcIDsKK+adseW3peWkpyA+IHRvdWtvdWRhaVwgOwor6Iqx5pmC6KiIID4gaGFuYWRva2VpXCA7Civoo73pgKDlk4EgPiBzZWl6b3VoaW5cIDsKK+ioiOeul+abuCA+IGtlaXNhbnNob1wgOwor5Yi25YuV5omLID4gc2VpZG91c2h1XCA7CivkuI3opo/lvosgPiBmdWtpcml0c3VcIDsKK+WPo+iFlOeZjCA+IGtvdWtvdWdhblwgOwor5Zue562U6ICFID4ga2FpdG91c2hhXCA7CivljZjlvpPpmaMgPiB0YW5qdXVqaW5cIDsKK+WPjeiLsembhCA+IGhhbicnZWl5dXVcIDsKK+S4u+aoqeiAhSA+IHNodWtlbnNoYVwgOwor5aSn5pys5bGxID4gZGFpaG9uemFuXCA7CivkuK3lkozliaQgPiBjaHV1d2F6YWlcIDsKK+aFiOWWhOeusSA+IGppemVuYmFrb1wgOwor5pyA5bem57+8ID4gc2Fpc2F5b2t1XCA7CivkuInop5Lml5cgPiBzYW5rYWt1a2lcIDsKK+WKoOWFpeiAhSA+IGthbnl1dXNoYVwgOwor6KO+5qih5qeYID4gc3Vzb21veW91XCA7CivkuIDpmrvnnLwgPiBpc3Nla2lnYW5cIDsKK+S9v+eUqOaoqSA+IHNoaXlvdWtlblwgOwor6L+R5L2T6KmpID4ga2ludGFpc2hpXCA7CivlpKnni7zmmJ8gPiB0ZW5yb3VzZWlcIDsKK+WGjeeKr+iAhSA+IHNhaWhhbnNoYVwgOwor5ZOo5oiS5qmfID4gc2hvdWthaWtpXCA7CivpgJrpgY7pp4UgPiB0c3V1a2Fla2lcIDsKK+Wkp+S6uuWFsSA+IG90b25hZG9tb1wgOwor54K65pS+6aGMID4gc2hpaG91ZGFpXCA7Civoi6blv4Poq4cgPiBrdXNoaW5kYW5cIDsKK+aTjee4puWjqyA+IHNvdWp1dXNoaVwgOwor55yf54+g5YWJID4gc2hpbmp1a291XCA7CivpgJ/luqboqIggPiBzb2t1ZG9rZWlcIDsKK+eEoeiyrOS7uyA+IG11c2VraW5pblwgOwor5pKt5L2G57eaID4gYmFudGFuc2VuXCA7CivogZboqpXnpa0gPiBzZWl0YW5zYWlcIDsKK+eEoeS4gOaWhyA+IG11aWNoaW1vblwgOwor5bi45YiG5pWwID4gam91YnVuc3V1XCA7Civlho3ogIPmha4gPiBzYWlrb3VyeW9cIDsKK+WEgOWFuOmVtyA+IGdpdGVuY2hvdVwgOwor5bel5a2m56eRID4ga291Z2FrdWthXCA7CivkuqTmrZPkvJogPiBrb3VrYW5rYWlcIDsKK+WkqeixoeWEgCA+IHRlbnNob3VnaVwgOwor5byV55So5paHID4gaW4nJ3lvdWJ1blwgOwor6I2S5rOV5birID4gYXJhaG91c2hpXCA7CivnmYLppIrosrsgPiByeW91eW91aGlcIDsKK+apn+mWoumVtyA+IGtpa2FuY2hvdVwgOwor5ZCR5Zyw5oCnID4ga291Y2hpc2VpXCA7Civlh7Hml4vploAgPiBnYWlzZW5tb25cIDsKK+ioreWCmeiyuyA+IHNldHN1YmloaVwgOwor6KOB57ir5birID4gc2FpaG91c2hpXCA7CivosqHnlKPmqKkgPiB6YWlzYW5rZW5cIDsKK+WQjOihjOiAhSA+IGRvdWtvdXNoYVwgOwor5oqV55+z5qmfID4gdG91c2VraWtpXCA7CivmhJvmoKHlv4MgPiBhaWtvdXNoaW5cIDsKK+S8j+mtlOauvyA+IGZ1a3VtYWRlblwgOwor6Iy25Zmo57WEID4gY2hha2lndW1pXCA7CivkuInloYHmiYsgPiBzYW5ydWlzaHVcIDsKK+iZmueEoeeahCA+IGt5b211dGVraVwgOwor5Lyd5bCO5oCnID4gZGVuZG91c2VpXCA7CivmloflrZfliJcgPiBtb2ppcmV0c3VcIDsKK+WPjeiKu+mhniA+IGhhbnN1dXJ1aVwgOwor5a6a5Z6L6KmpID4gdGVpa2Vpc2hpXCA7CivmsLToj5PlrZAgPiBtaXp1Z2FzaGlcIDsKK+S9v+eUqOaWuSA+IHNoaXlvdWhvdVwgOwor6buN5Zuj5a2QID4ga2liaWRhbmdvXCA7Civou5/lj6Pok4sgPiBuYW5rb3VnYWlcIDsKK+mXh+ebuOWgtCA+IHlhbWlzb3ViYVwgOwor5a6H5a6Z5Y2aID4gdWNodXVoYWt1XCA7CivmnIDliY3miKYgPiBzYWl6ZW5zZW5cIDsKK+iKpeWtkOiPnCA+IGthcmFzaGluYVwgOwor54+N6YGT5YW3ID4gY2hpbmRvdWd1XCA7Civpu4TooajntJkgPiBraWJ5b3VzaGlcIDsKK+W+k+WnieWmuSA+IGp1dXNoaW1haVwgOwor5a2Q56aP6ICFID4ga29idWt1c2hhXCA7CivmgJ3mg7PnlYwgPiBzaGlzb3VrYWlcIDsKK+awkeihhuWMliA+IG1pbnNodXVrYVwgOwor6YiN6buE6ImyID4gbmlidWtpaXJvXCA7CivkuInop5LlvaIgPiBzYW5rYWtrZWlcIDsKK+Wkp+acrOWWtiA+IGRhaWhvbicnZWlcIDsKK+eMm+eJueiokyA+IG1vdXRva2t1blwgOwor5LqI5ZGK57eoID4geW9rb2t1aGVuXCA7Civlhrfmub/luIMgPiByZWlzaGlwcHVcIDsKK+aomea6luWMliA+IGh5b3VqdW5rYVwgOwor5Y2X6Juu5Lq6ID4gbmFuYmFuamluXCA7CivnlLDlnJLoqakgPiBkZW4nJ2Vuc2hpXCA7CivkuInop5LluqcgPiBzYW5rYWt1emFcIDsKK+WGjeippumokyA+IHNhaXNoaWtlblwgOwor5a+S5biv5p6XID4ga2FudGFpcmluXCA7Civlgr7mlpzpnaIgPiBrZWlzaGFtZW5cIDsKK+atu+S6oeiAhSA+IHNoaWJvdXNoYVwgOwor5LiJ6KeS5biGID4gc2Fua2FrdWhvXCA7CivljYrnq6/niakgPiBoYW5wYW1vbm9cIDsKK+WpmuWnu+azlSA+IGtvbicnaW5ob3VcIDsKK+S4ieinkuW3niA+IHNhbmtha3VzdVwgOwor5LqM6YeN56qTID4gbmlqdXVtYWRvXCA7Civoh6rnhLbpoZ4gPiBzaGl6ZW5ydWlcIDsKK+WwguWjsuWTgSA+IHNlbmJhaWhpblwgOwor5LiN57Wx5LiAID4gZnV0b3VpdHN1XCA7CivlpJzkvJrmnI0gPiB5YWthaWZ1a3VcIDsKK+S6iOWRiuevhyA+IHlva29rdWhlblwgOwor5YWa5rS+5b+DID4gdG91aGFzaGluXCA7CivmgJ3mg7Pniq8gPiBzaGlzb3VoYW5cIDsKK+W8geW9k+S7oyA+IGJlbnRvdWRhaVwgOwor6IKd6IeT55mMID4ga2Fuem91Z2FuXCA7CivntYzmuIjkurogPiBrZWl6YWlqaW5cIDsKK+S7j+aVmeW+kiA+IGJ1a2t5b3V0b1wgOwor57Gz5rW36LuNID4gYmVpa2FpZ3VuXCA7CivlkKvmsrnlsaQgPiBnYW4nJ3l1c291XCA7Civmg4XloLHoqowgPiBqb3Vob3VzaGlcIDsKK+WHseaXi+i7jSA+IGdhaXNlbmd1blwgOwor6JC95LyN6ICFID4gcmFrdWdvc2hhXCA7Civono3op6PngrkgPiB5dXVrYWl0ZW5cIDsKK+a3i+W3tOeQgyA+IHJpbnBha3l1dVwgOwor5auM54WZ5qipID4ga2VuJydlbmtlblwgOwor5aSr5amm5LuyID4gZnV1ZnVuYWthXCA7CivmhJ/mn5Pljp8gPiBrYW5zZW5nZW5cIDsKK+i/juizk+mkqCA+IGdlaWhpbmthblwgOwor6KmV6K2w5LyaID4gaHlvdWdpa2FpXCA7Civlpb3nlLflrZAgPiBrb3VkYW5zaGlcIDsKK+aXqeaYpeizpiA+IHNvdXNodW5mdVwgOwor5ZaJ6aCt55mMID4ga291dG91Z2FuXCA7Civlr53mpa3luKsgPiBuZXdhemFzaGlcIDsKK+S6uuagvOWMliA+IGppbmtha3VrYVwgOwor57a66bqX5LqLID4ga2lyZWlnb3RvXCA7CivoqJjlkI3moKogPiBraW1laWthYnVcIDsKK+aQuuW4r+WTgSA+IGtlaXRhaWhpblwgOwor6aeQ5bGv5omAID4gY2h1dXRvbmpvXCA7CivnoJTnqbbmiYAgPiBrZW5reXV1am9cIDsKK+acgOWFiOerryA+IHNhaXNlbnRhblwgOwor5bGF5L2P6ICFID4ga3lvanV1c2hhXCA7CivoqoflvLXms5UgPiBrb2Nob3Vob3VcIDsKK+imluimmuWMliA+IHNoaWtha3VrYVwgOwor5Lit6I+v6KGXID4gY2h1dWthZ2FpXCA7CivpgKPliKTnirYgPiByZW5iYW5qb3VcIDsKK+m6nemmmeeMqyA+IGpha291bmVrb1wgOwor5aSJ5YWJ5pifID4gaGVua291c2VpXCA7Civlr6nmn7vlrpggPiBzaGluc2FrYW5cIDsKK+WkmueUqOS4rSA+IHRheW91Y2h1dVwgOwor5pep5p2x5oimID4gc291dG91c2VuXCA7Civpu5nnp5jmqKkgPiBtb2t1aGlrZW5cIDsKK+WGkumZuuirhyA+IGJvdWtlbmRhblwgOwor5bi45YKZ6JasID4gam91Yml5YWt1XCA7CivlporlqabmnI0gPiBuaW5wdWZ1a3VcIDsKK+S9k+mHjeioiCA+IHRhaWp1dWtlaVwgOwor6K2m5a6Y6ZqKID4ga2Vpa2FudGFpXCA7CivorJvoq4fnpL4gPiBrb3VkYW5zaGFcIDsKK+i/keS7o+ipqSA+IGtpbmRhaXNoaVwgOwor54WZ6I2J6YqtID4gdGFiYWtvc2VuXCA7CivplpPmipXoqZ4gPiBrYW50b3VzaGlcIDsKK+etlOW8geiAhSA+IHRvdWJlbnNoYVwgOwor5bmz6KGM5qOSID4gaGVpa291Ym91XCA7Civon7vlnLDnjYQgPiBhcmlqaWdva3VcIDsKK+aJgeahg+iFuiA+IGhlbnRvdXNlblwgOwor5YWs5Yik5bu3ID4ga291aGFudGVpXCA7CivmlbDlhITlubQgPiBzdXVva3VuZW5cIDsKK+ebhueBr+exoCA+IGJvbmRvdXJvdVwgOwor57WC5oim5b6MID4gc2h1dXNlbmdvXCA7Civnt6jpm4bpg6ggPiBoZW5zaHV1YnVcIDsKK+WRqOWbsumVtyA+IHNodXVpY2hvdVwgOwor5YWs6YG45Yi2ID4ga291c2Vuc2VpXCA7Civkv67nkIblt6UgPiBzaHV1cmlrb3VcIDsKK+acgOmBqeWMliA+IHNhaXRla2lrYVwgOwor5YyW5a2m6ICFID4ga2FnYWt1c2hhXCA7CivotIjos4TnvaogPiB6b3V3YWl6YWlcIDsKK+S4jeaJv+iqjSA+IGZ1c2hvdW5pblwgOwor5LqU6YeN5ZSxID4gZ29qdXVzaG91XCA7CivlubTpvaLpoIYgPiBuZW5yZWlqdW5cIDsKK+izreWNmuWgtCA+IHRvYmFrdWpvdVwgOwor55yL5a6I6ICFID4ga2Fuc2h1c2hhXCA7CivlvLHpm7vlmaggPiBqYWt1ZGVua2lcIDsKK+aXpeacrOeahCA+IG5paG9udGVraVwgOwor6ZaL5aK+5ZywID4ga2Fpa29uY2hpXCA7CivnpoHnjJ/mnJ8gPiBraW5yeW91a2lcIDsKK+WJjemhjemDqCA+IHplbmdha3VidVwgOwor6KmV6KuW5a62ID4gaHlvdXJvbmthXCA7CivkuIDmlonlrokgPiBpc3NlaXlhc3VcIDsKK+S4gOimquetiSA+IGlzc2hpbnRvdVwgOwor5YaN5pS+6YCBID4gc2FpaG91c291XCA7CivoiIjooYzljJYgPiBrb3VneW91a2FcIDsKK+WMluWtpue3miA+IGthZ2FrdXNlblwgOwor5oim5q276ICFID4gc2Vuc2hpc2hhXCA7CivkuIDmloflrZcgPiBpY2hpbW9uamlcIDsKK+aWh+Wjq+mAoyA+IGJ1bnNoaXJlblwgOwor5pyo57a/57O4ID4gbW9tZW4nJ2l0b1wgOwor54Sm6Zu75rCXID4gc2hvdWRlbmtpXCA7CivmjojkuI7lvI8gPiBqdXlvc2hpa2lcIDsKK+ebruWIhumHjyA+IG1lYnVucnlvdVwgOwor5aSp5LiL5LiAID4gdGVua2FpY2hpXCA7CivkuK3lj6Tlk4EgPiBjaHV1a29oaW5cIDsKK+W4guWgtOaApyA+IHNoaWpvdXNlaVwgOwor5Lit5oCn5aGpID4gY2h1dXNlaWVuXCA7Civmlofoqp7oqr8gPiBidW5nb2Nob3VcIDsKK+aVo+WFtee3miA+IHNhbnBlaXNlblwgOwor5rWB6KGM5YWQID4gcnl1dWtvdWppXCA7Civlj4jlvpPlvJ8gPiBtYXRhaXRva29cIDsKK+iFueaZguioiCA+IGhhcmFkb2tlaVwgOwor5biD6KKL6IW5ID4gaG90ZWliYXJhXCA7CivnhKHmlZnogrIgPiBtdWt5b3Vpa3VcIDsKK+eglOeptuWutiA+IGtlbmt5dXVrYVwgOwor5pWZ5Yy65rCRID4ga3lvdWt1bWluXCA7CivlnLDpnIfluK8gPiBqaXNoaW50YWlcIDsKK+mVt+acn+aIpiA+IGNob3VraXNlblwgOwor6YCa55+l57C/ID4gdHN1dWNoaWJvXCA7CivliqDlt6Xmpa0gPiBrYWtvdWd5b3VcIDsKK+S4jeihjOeKtiA+IGZ1Z3lvdWpvdVwgOwor6IOh6bq75rK5ID4gZ29tYWFidXJhXCA7Civml6XmnKznjL8gPiBuaWhvbnphcnVcIDsKK+aXp+S4lueVjCA+IGt5dXVzZWthaVwgOwor5rC05bmz5YuVID4gc3VpaGVpZG91XCA7Civnn63lpKfnlJ8gPiB0YW5kYWlzZWlcIDsKK+iCluWDj+eUuyA+IHNob3V6b3VnYVwgOwor5LiA6KeS542jID4gaWtrYWt1anV1XCA7Civlj6/lpInplbcgPiBrYWhlbmNob3VcIDsKK+S4gOimgee0oCA+IGljaGl5b3Vzb1wgOwor5YWQ56ul5YqHID4gamlkb3VnZWtpXCA7Civln4vokazlnLAgPiBtYWlzb3VjaGlcIDsKK+S4iuijveacrCA+IGpvdXNlaWJvblwgOwor5Lih5oCn6IqxID4gcnlvdXNlaWthXCA7Civlrp/ooYzogIUgPiBqaWtrb3VzaGFcIDsKK+WCvuaWnOioiCA+IGtlaXNoYWtlaVwgOwor54qv572q6ICFID4gaGFuemFpc2hhXCA7CivntbbkuqTnirYgPiB6ZWtrb3Vqb3VcIDsKK+WkluadpeiAhSA+IGdhaXJhaXNoYVwgOwor5Lyd5bCO5L2TID4gZGVuZG91dGFpXCA7Civmlpzmu5HpmY0gPiBzaGFrYWtrb3VcIDsKK+W4uOW5s+WAiSA+IGpvdWhlaXNvdVwgOwor5Li75YKs6ICFID4gc2h1c2Fpc2hhXCA7Civmn5Tou5/mgKcgPiBqdXVuYW5zZWlcIDsKK+WIhuaLhemHkSA+IGJ1bnRhbmtpblwgOwor5Ya36JS16LuKID4gcmVpem91c2hhXCA7CivmnIDpq5joo4EgPiBzYWlrb3VzYWlcIDsKK+WKoOWFpeaoqSA+IGthbnl1dWtlblwgOwor5YmN5L2P5omAID4gemVuanV1c2hvXCA7CivlsZXmnJvloZQgPiB0ZW5ib3V0b3VcIDsKK+mBjuaVj+eXhyA+IGthYmluc2hvdVwgOwor5Lq66aCt56iOID4gbmludG91emVpXCA7CivoiJ7lj7DliocgPiBidXRhaWdla2lcIDsKK+W5s+Wdh+WApCA+IGhlaWtpbmNoaVwgOwor5qC85a2Q6Z2iID4ga291c2hpbWVuXCA7CivmsLTojLblsYsgPiBtaXp1Y2hheWFcIDsKK+aDheWgsee2siA+IGpvdWhvdW1vdVwgOwor5be05pem5p2PID4gaGF0YW5reW91XCA7Civlr6nnvo7nnLwgPiBzaGluYmlnYW5cIDsKK+WHpuS4luiokyA+IHNob3NlaWt1blwgOwor6Ieq54S26KazID4gc2hpemVua2FuXCA7CivohILogqrphbggPiBzaGlib3VzYW5cIDsKK+mWgOWklua8oiA+IG1vbmdhaWthblwgOwor5oqX6I+M5oCnID4ga291a2luc2VpXCA7CivkvJ3mn5PmgKcgPiBkZW5zZW5zZWlcIDsKK+acque1hOe5lCA+IG1pc29zaGlraVwgOwor5rC05qeY5rayID4gc3VpeW91ZWtpXCA7CivmlZHliqnpmoogPiBreXV1am90YWlcIDsKK+S/neWtmOmHjyA+IGhvem9ucnlvdVwgOwor5qC45YW15ZmoID4ga2FrdWhlaWtpXCA7CivkuI3muoDotrMgPiBmdW1hbnpva3VcIDsKK+mVt+irh+itsCA+IG5hZ2FkYW5naVwgOwor5YaS6Zm66ICFID4gYm91a2Vuc2hhXCA7Civnvr3okrLlm6MgPiBoYW5lYnV0b25cIDsKK+WcsOaWueWCtSA+IGNoaWhvdXNhaVwgOwor5pys5aC054mpID4gaG9uYmFtb25vXCA7Civoqp7lrabogIUgPiBnb2dha3VzaGFcIDsKK+WGjeippuihjCA+IHNhaXNoaWtvdVwgOwor5bGF5LiI6auYID4gaXRha2VkYWthXCA7CivlpKrpmb3ns7sgPiB0YWl5b3VrZWlcIDsKK+eglOeptuWToSA+IGtlbmt5dXVpblwgOwor5byl57ir562WID4gYmlob3VzYWt1XCA7CivnhKHloLHphawgPiBtdWhvdXNodXVcIDsKK+iYhua6neapiyA+IHJva291a3lvdVwgOwor57W25a++5YCkID4gemV0dGFpY2hpXCA7CivlpKnpoILlhIAgPiB0ZW5jaG91Z2lcIDsKK+a1t+iziueOiyA+IGthaXpva3VvdVwgOwor6LKh55WM5Lq6ID4gemFpa2FpamluXCA7CivpoqjmnaXlnYogPiBmdXVyYWlib3VcIDsKK+WvkuWGt+WcsCA+IGthbnJlaWNoaVwgOwor5YmN572u6KmeID4gemVuY2hpc2hpXCA7CivliqDliKTkurogPiBrYWhhbicnbmluXCA7Civli5Xmu5Hou4ogPiBkb3VrYXNzaGFcIDsKK+e1kOawt+acnyA+IGtlcHB5b3VraVwgOwor5bGV5pyb5Y+wID4gdGVuYm91ZGFpXCA7CivnpLzmi53loIIgPiByZWloYWlkb3VcIDsKK+mrmOaAp+iDvSA+IGtvdXNlaW5vdVwgOwor5Lm+5rW36IuUID4gaG9zaGlub3JpXCA7Civkvb/nlKjkvosgPiBzaGl5b3VyZWlcIDsKK+acieeUsOeEvCA+IGFyaXRheWFraVwgOwor6auY5ZGo5rOiID4ga291c2h1dWhhXCA7CivlsL/mpJzmn7sgPiBueW91a2Vuc2FcIDsKK+eSsOeKtue3miA+IGthbmpvdXNlblwgOwor55m65oOz5rOVID4gaGFzc291aG91XCA7CivlhY3nqI7ngrkgPiBtZW56ZWl0ZW5cIDsKK+WApOauteihqCA+IG5lZGFuaHlvdVwgOwor55u05byf5a2QID4gamlraWRlc2hpXCA7CivpgKPpgqbliLYgPiByZW5wb3VzZWlcIDsKK+S9v+eUqOS6uiA+IHNoaXlvdW5pblwgOwor5qSN5pyo6YmiID4gdWVraWJhY2hpXCA7CivnhaflsITph44gPiBzaG91c2hheWFcIDsKK+aFiOWWhOW/gyA+IGppemVuc2hpblwgOwor5pyo54WJ55OmID4gbW9rdXJlbmdhXCA7CivmnKjntr/niakgPiBtb21lbm1vbm9cIDsKK+WFreWIhuWEgCA+IHJva3VidW5naVwgOwor6KaW5Zyw5bmzID4gc2hpY2hpaGVpXCA7Civlt6XkvZzlk6EgPiBrb3VzYWt1aW5cIDsKK+Wbnua8leW6lyA+IGthaXNvdXRlblwgOwor55+z54Kt57SAID4gc2VraXRhbmtpXCA7CivmipXmqZ/nmoQgPiB0b3VraXRla2lcIDsKK+eMn+eKrOW6pyA+IHJ5b3VrZW56YVwgOwor55qu6LKh5biDID4ga2F3YXphaWZ1XCA7CivohLPooYDmoJMgPiBub3VrZXNzZW5cIDsKK+ato+WJh+WMliA+IHNlaXNva3VrYVwgOwor5aSn5aWl5qeYID4gb29va3VzYW1hXCA7CivmrKDpmaXou4ogPiBrZWtrYW5zaGFcIDsKK+S4gOWkp+S6iyA+IGljaGlkYWlqaVwgOwor6YCj5YiG5pWwID4gcmVuYnVuc3V1XCA7Civkv67nkIbku6MgPiBzaHV1cmlkYWlcIDsKK+iVgem6u+eWuSA+IGppbm1hc2hpblwgOwor5YW355Sz5pu4ID4gZ3VzaGluc2hvXCA7Civoqq3mm7jlrrYgPiBkb2t1c2hva2FcIDsKK+e+juihk+mDqCA+IGJpanV0c3VidVwgOwor5oSf6Kyd56WtID4ga2Fuc2hhc2FpXCA7CivosrTmlrnmlrkgPiBhbmF0YWdhdGFcIDsKK+adseS6rOmDvSA+IHRvdWt5b3V0b1wgOwor5pen5a2X5L2TID4ga3l1dWppdGFpXCA7CivnhKHoqr/ms5UgPiBidWNob3Vob3VcIDsKK+ijveS9nOiyuyA+IHNlaXNha3VoaVwgOwor5LqM6YCx6ZaTID4gbmlzaHV1a2FuXCA7Civpg6jokL3msJEgPiBidXJha3VtaW5cIDsKK+WKoOebn+WbvSA+IGthbWVpa29rdVwgOwor5LiA5aSc5LitID4gaGl0b3lhanV1XCA7Civmp4vpgKDkvZMgPiBrb3V6b3V0YWlcIDsKK+S4reWMu+WtpiA+IGNodXVpZ2FrdVwgOwor5Y+X5L+h6ICFID4ganVzaGluc2hhXCA7CivkvJrorbDpjLIgPiBrYWlnaXJva3VcIDsKK+emgeeFmei7iiA+IGtpbicnZW5zaGFcIDsKK+mbu+WtkOmKgyA+IGRlbnNoaWp1dVwgOwor5YW35L2T562WID4gZ3V0YWlzYWt1XCA7Civou4rmjozljLogPiBzaGFzaG91a3VcIDsKK+S7luWbveawkSA+IHRha29rdW1pblwgOwor5YSS5a2m6ICFID4ganVnYWt1c2hhXCA7CivlkI3mjqLlgbUgPiBtZWl0YW50ZWlcIDsKK+WbvemAo+aXlyA+IGtva3VyZW5raVwgOwor5Y+I5b6T5YWEID4gbWF0YWl0b2tvXCA7Civpr6Png4/os4ogPiBzdXJ1bWVpa2FcIDsKK+WFqOW4guawkSA+IHplbnNoaW1pblwgOwor5aCx6YGT5a6YID4gaG91ZG91a2FuXCA7Civml6XmnKzmmbQgPiBuaWhvbmJhcmVcIDsKK+W4g+Wbo+eariA+IGZ1dG9uZ2F3YVwgOwor5L+u57mV6LK7ID4gc2h1dXplbmhpXCA7CivlsILploDmm7ggPiBzZW5tb25zaG9cIDsKK+WFrOeUqOi7iiA+IGtvdXlvdXNoYVwgOwor6ICQ5oCn6I+MID4gdGFpc2Vpa2luXCA7CivlkIznqK7poZ4gPiBkb3VzaHVydWlcIDsKK+mfs+Wfn+WkliA+IG9uJydpa2lnYWlcIDsKK+imquWSjOaApyA+IHNoaW53YXNlaVwgOwor5YmN6aCt6JGJID4gemVudG91eW91XCA7Civnj6DmmpbnsL4gPiB0YW1hbm9yZW5cIDsKK+S5neaYn+WutiA+IGt5dXVzZWlrYVwgOwor6YCa5rCX5a2UID4gdHN1dWtpa291XCA7CivpmqPkurrmhJsgPiByaW5qaW4nJ2FpXCA7CivkuI3mib/nn6UgPiBmdXNob3VjaGlcIDsKK+atu+S6oeaVsCA+IHNoaWJvdXN1dVwgOwor5bGF5L2P5qipID4ga3lvanV1a2VuXCA7CivpiaTmi6zlvKcgPiBrYWdpa2Fra29cIDsKK+WApuaAoOaEnyA+IGtlbnRhaWthblwgOwor5Ya36JS16Ii5ID4gcmVpem91c2VuXCA7CivlkIjmiJDphZIgPiBnb3VzZWlzaHVcIDsKK+WRs+WZjOaxgSA+IG1pc29zaGlydVwgOwor5oyH5bCO6ICFID4gc2hpZG91c2hhXCA7CivljYrlj6/pgJogPiBoYW5rYXRzdXVcIDsKK+eEoeitpuWRiiA+IG11a2Vpa29rdVwgOwor5aSn6KW/6YO3ID4gZGFpc2FpZ291XCA7CivnnaHnnKDliaQgPiBzdWltaW56YWlcIDsKK+aXi+ebpOW3pSA+IHNlbmJhbmtvdVwgOwor5biv5YiG5pWwID4gdGFpYnVuc3V1XCA7CivlvozntpnogIUgPiBrb3VrZWlzaGFcIDsKK+mVt+irh+e+qSA+IG5hZ2FkYW5naVwgOwor5aSp5pel5aGpID4gdGVucGlzaGlvXCA7CivlqIHlnKfnmoQgPiBpYXRzdXRla2lcIDsKK+S6jOmHjeW6lSA+IG5panV1em9rb1wgOwor5Y+I5byf5a2QID4gbWF0YWRlc2hpXCA7CivmlZHlkb3lhbcgPiBreXV1bWVpZ3VcIDsKK+emgeeMn+WMuiA+IGtpbnJ5b3VrdVwgOwor5byp57Sa6ImmID4gZG9reXV1a2FuXCA7CivmgZLkuYXljJYgPiBrb3VreXV1a2FcIDsKK+WFt+S9k+eahCA+IGd1dGFpdGVraVwgOwor6IW55LiA5p2vID4gaGFyYWlwcGFpXCA7CivmoLznkIboq5YgPiBrYWt1cmlyb25cIDsKK+aEn+isneeKtiA+IGthbnNoYWpvdVwgOwor54++6KGM54qvID4gZ2Vua291aGFuXCA7Civml6Xku5jljbAgPiBoaWR6dWtlaW5cIDsKK+WkqumZveeBryA+IHRhaXlvdXRvdVwgOwor5bi455So6ICFID4gam91eW91c2hhXCA7Civmg4XloLHmupAgPiBqb3Vob3VnZW5cIDsKK+WFrOS9v+mkqCA+IGtvdXNoaWthblwgOwor5biG56uL6LKdID4gaG90YXRlZ2FpXCA7Civoi6XmrabogIUgPiB3YWthbXVzaGFcIDsKK+a4heeul+abuCA+IHNlaXNhbnNob1wgOwor5pys6KGX6YGTID4gaG9ua2FpZG91XCA7Civpg7Xkvr/ou4ogPiB5dXViaW5zaGFcIDsKK+S4gOeCueapnyA+IGljaGl0ZW5raVwgOwor5aSP6aKo6YKqID4gbmF0c3VrYXplXCA7CivkuK3pgZPmtL4gPiBjaHV1ZG91aGFcIDsKK+aatOmiqOWfnyA+IGJvdWZ1dWlraVwgOwor55m656aB5pysID4gaGFra2luYm9uXCA7CivlnKfpm7vmsJcgPiBhdHN1ZGVua2lcIDsKK+W3qOS6uuWFmiA+IGt5b2ppbnRvdVwgOwor5pmC5Luj54mpID4gamlkYWltb25vXCA7CivlsY/poqjlsqkgPiBieW91YnVpd2FcIDsKK+W/q+iomOmMsiA+IGthaWtpcm9rdVwgOwor5pq06aKo5ZyPID4gYm91ZnV1a2VuXCA7CivorJvoq4fluKsgPiBrb3VkYW5zaGlcIDsKK+S4jeaIkOe4viA+IGZ1c2Vpc2VraVwgOwor5aSa6Z+z56+AID4gdGFvbnNldHN1XCA7CivpgKPluK/mhJ8gPiByZW50YWlrYW5cIDsKK+mDqOWIhueahCA+IGJ1YnVudGVraVwgOwor5bCC6ZaA5bqXID4gc2VubW9udGVuXCA7CivmhaPnlKjpn7MgPiBrYW4nJ3lvdW9uXCA7CivlpJzku5XkuosgPiB5b3NoaWdvdG9cIDsKK+a8lOe/kuaelyA+IGVuc2h1dXJpblwgOwor5p+Q6auY5qChID4gYm91a291a291XCA7Civntr/oj5PlrZAgPiB3YXRhZ2FzaGlcIDsKK+i3qOe3muapiyA+IGtvc2Vua3lvdVwgOwor54WZ6I2J55uGID4gdGFiYWtvYm9uXCA7Civlj5fpqJPnpaggPiBqdWtlbmh5b3VcIDsKK+WGheaWnOimliA+IG5haXNoYXNoaVwgOwor6Zu75L+h5qmfID4gZGVuc2hpbmtpXCA7CivlnKfnuK7mqZ8gPiBhc3NodWt1a2lcIDsKK+Wun+ihjOaoqSA+IGppa2tvdWtlblwgOwor56eR5a2m6ICFID4ga2FnYWt1c2hhXCA7Civnj77ooYzms5UgPiBnZW5rb3Vob3VcIDsKK+iHqueEtueVjCA+IHNoaXplbmthaVwgOwor5oe45Z6C57eaID4ga2Vuc3Vpc2VuXCA7CivkuIrmiYvogIUgPiBqb3V6dW1vbm9cIDsKK+aXpeacrOWtpiA+IG5paG9uZ2FrdVwgOwor5o6S6Zqc5ZmoID4gaGFpc2hvdWtpXCA7CivnnJ/lpI/ml6UgPiBtYW5hdHN1YmlcIDsKK+aEn+eEoemHjyA+IGthbm11cnlvdVwgOwor57Wm5LuY6YeRID4ga3l1dWZ1a2luXCA7Civku6PlkI3oqZ4gPiBkYWltZWlzaGlcIDsKK+aVkeWKqeiIuSA+IGt5dXVqb3NlblwgOwor54m95byV6LuKID4ga2VuJydpbnNoYVwgOwor5bGF5L2P5oCnID4ga3lvanV1c2VpXCA7Civmipflh53lm7ogPiBrb3VneW91a29cIDsKK+eci+itt+mVtyA+IGthbmdvY2hvdVwgOwor5L2O5oCn6IO9ID4gdGVpc2Vpbm91XCA7CivnhKHoqIjnlLsgPiBtdWtlaWtha3VcIDsKK+WkmumdouinkiA+IHRhbWVua2FrdVwgOwor5L2O5ZGo5rOiID4gdGVpc2h1dWhhXCA7CivnkIbmg7Ppg7cgPiByaXNvdWt5b3VcIDsKK+iiq+eIhuiAhSA+IGhpYmFrdXNoYVwgOwor57K+6KO957OWID4gc2Vpc2VpdG91XCA7CivljJblrabmiKYgPiBrYWdha3VzZW5cIDsKK+acieeUqOaApyA+IHl1dXlvdXNlaVwgOwor5aiv5qW96KGXID4gZ29yYWt1Z2FpXCA7CivlvozlpKnmgKcgPiBrb3V0ZW5zZWlcIDsKK+agoeWPi+S8miA+IGtvdXl1dWthaVwgOwor5Y2Y5Yip6KGoID4gdGFucmloeW91XCA7CivnmYLppIrmiYAgPiByeW91eW91am9cIDsKK+S/neWuiOeahCA+IGhvc2h1dGVraVwgOwor55qH5rCR5YWaID4ga291bWludG91XCA7Civkuozph43llLEgPiBuaWp1dXNob3VcIDsKK+WFjeeojuW6lyA+IG1lbnplaXRlblwgOwor5Y216IOO55SfID4gcmFudGFpc2VpXCA7Civnt5rpppnku6MgPiBzZW5rb3VkYWlcIDsKK+WvvuinkuWMliA+IHRhaWtha3VrYVwgOwor5pyA6auY54K5ID4gc2Fpa291dGVuXCA7CivmnIDkvY7pmZAgPiBzYWl0ZWlnZW5cIDsKK+atjOWQiOaIpiA+IHV0YWdhc3NlblwgOwor5bmz5ZKM6LOeID4gaGVpd2FzaG91XCA7CivmlbDkv4LmlbAgPiBzdXVrZWlzdXVcIDsKK+acqOeCreeUuyA+IG1va3V0YW5nYVwgOwor5YaN6ZmN6IeoID4gc2Fpa291cmluXCA7Civlho3oqr/mn7sgPiBzYWljaG91c2FcIDsKK+mrmOmHjuanmSA+IGtvdXlhbWFraVwgOwor5a6a5ruR6LuKID4gdGVpa2Fzc2hhXCA7CivkvLzmiJHonIIgPiBqaWdhYmFjaGlcIDsKK+aXi+WFieaApyA+IHNlbmtvdXNlaVwgOwor5ZCN5oqV5omLID4gbWVpdG91c2h1XCA7CivmjqHnrpfmgKcgPiBzYWlzYW5zZWlcIDsKK+S8gealreiAhSA+IGtpZ3lvdXNoYVwgOwor6YqA56CC5a2QID4gZ2luc3VuYWdvXCA7Civlm73liIblr7ogPiBrb2t1YnVuamlcIDsKK+mkiuixmuWgtCA+IHlvdXRvbmpvdVwgOwor6Z2e5a++56ewID4gaGl0YWlzaG91XCA7CivkuI3pirnpi7wgPiBmdXNodXVrb3VcIDsKK+S4gOmZouWItiA+IGljaGlpbnNlaVwgOwor5omL5LuV5LqLID4gdGVzaGlnb3RvXCA7Civog4blmqLngo4gPiB0YW4nJ25vdWVuXCA7CivlvLfmiZPogIUgPiBreW91ZGFzaGFcIDsKK+imj+evhOeahCA+IGtpaGFudGVraVwgOwor576F57SX57SZID4gcmFzaGFnYW1pXCA7CivohLHooaPloLQgPiBkYXRzdWlqb3VcIDsKK+aVkeWKqee2siA+IGt5dXVqb21vdVwgOwor5b2T6YG46ICFID4gdG91c2Vuc2hhXCA7CivlpKrpmbDmmqYgPiB0YWlpbnJla2lcIDsKK+aPmue+veidtiA+IGFnZWhhY2hvdVwgOwor5aOr5ZCb5a2QID4gc2hpa3Vuc2hpXCA7CivohbDnvr3nm64gPiBrb3NoaWJhbWVcIDsKK+eJh+S4gOaWuSA+IGthdGFpcHBvdVwgOwor6Zi/54mH56qfID4gYWhlbmt1dHN1XCA7CivlkL7mnKjpppkgPiB3YXJlbW9rb3VcIDsKK+Wkp+Wei+i7iiA+IG9vZ2F0YXNoYVwgOwor5aSP5a2j54axID4ga2FraW5ldHN1XCA7CivlhoXpmbjpnKcgPiBuYWlyaWt1bXVcIDsKK+akjeWtl+apnyA+IHNob2t1amlraVwgOwor6YGK6Kan6Ii5ID4geXV1cmFuc2VuXCA7CivkubPmiL/ngo4gPiBueXV1Ym91ZW5cIDsKK+iEs+aMq+WCtyA+IG5vdXphc2hvdVwgOwor5a2m55Sf6KqyID4gZ2FrdXNlaWthXCA7Civol4HluIPlm6MgPiB3YXJhYnV0b25cIDsKK+aKleapn+W/gyA+IHRvdWtpc2hpblwgOwor6YO15L6/6Ii5ID4geXV1Ymluc2VuXCA7CivpnZLlubTlm6MgPiBzZWluZW5kYW5cIDsKK+WLp+WRiuahiCA+IGthbmtva3VhblwgOwor5aSp5paH5Y+wID4gdGVubW9uZGFpXCA7Civoh6rnhLbms5UgPiBzaGl6ZW5ob3VcIDsKK+efs+eBsOa0niA+IHNla2thaWRvdVwgOwor5aKX5YiK5Y+3ID4gem91a2FuZ291XCA7CivlhoXlpKfoh6MgPiBuYWlkYWlqaW5cIDsKK+ePvuWcqOWcsCA+IGdlbnphaWNoaVwgOwor5oim6LuK6ZqKID4gc2Vuc2hhdGFpXCA7Civkuozph43kuLggPiBuaWp1dW1hcnVcIDsKK+mFkumAoOWgtCA+IHNodXpvdWpvdVwgOwor5oSb6Kqt6ICFID4gYWlkb2t1c2hhXCA7Civnn7PngbDmsLQgPiBzZWtrYWlzdWlcIDsKK+Wkp+WcsOmchyA+IGRhaWppc2hpblwgOwor5LiN5ouh5aSnID4gZnVrYWt1ZGFpXCA7CivkuLvlsI7ogIUgPiBzaHVkb3VzaGFcIDsKK+mrmOiSlOe1tSA+IHRha2FtYWtpZVwgOwor6Ieq54S25q27ID4gc2hpemVuc2hpXCA7CivlsYXkvY/lnLAgPiBreW9qdXVjaGlcIDsKK+axuuatu+maiiA+IGtlc3NoaXRhaVwgOwor5Li76ISz6ICFID4gc2h1bm91c2hhXCA7CivoiJ7mpb3pnaIgPiBidWdha3VtZW5cIDsKK+mtmuS7i+mhniA+IGd5b2thaXJ1aVwgOwor5pyA6auY5qScID4gc2Fpa291a2VuXCA7CivnhrHmsZrmn5MgPiBuZXRzdW9zZW5cIDsKK+aBkuaYn+W5tCA+IGtvdXNlaW5lblwgOwor6Ieq5Zyo6YmkID4gaml6YWlrYWdpXCA7Civnq7botbDppqwgPiBreW91c291YmFcIDsKK+W+oeaJi+a0lyA+IG1pdGFyYXNoaVwgOwor5aKX5bmF5ZmoID4gem91ZnVrdWtpXCA7Civml6XmnKzlgbQgPiBuaWhvbmdhd2FcIDsKK+S6uumhnuWPsiA+IGppbnJ1aXNoaVwgOwor6Ium5Yq05qeYID4ga3Vyb3VzYW1hXCA7CivnpoDoq4vmm7ggPiByaW5zZWlzaG9cIDsKK+S/s+irp+W4qyA+IGhhaWthaXNoaVwgOwor5oWj55So6KqeID4ga2FuJyd5b3Vnb1wgOwor5aWz5a2m55SfID4gam9nYWt1c2VpXCA7Civpm7vlrZDnrqEgPiBkZW5zaGlrYW5cIDsKK+aiteWkqeeOiyA+IGJvbnRlbicnb3VcIDsKK+WQiOaIkOe0mSA+IGdvdXNlaXNoaVwgOwor6buE6YqF6YmxID4ga291ZG91a291XCA7Civlj7jmlZnljLogPiBzaGlreW91a3VcIDsKK+ino+aVo+aoqSA+IGthaXNhbmtlblwgOwor6YGp6b2i5pyfID4gdGVraXJlaWtpXCA7CivlqIHlmofnmoQgPiBpa2FrdXRla2lcIDsKK+mKg+mAo+WwhCA+IGp1dXJlbnNoYVwgOwor5YWN56iO5ZOBID4gbWVuemVpaGluXCA7Civpq5jmsLTmupYgPiBrb3VzdWlqdW5cIDsKK+WkqumZveW5tCA+IHRhaXlvdW5lblwgOwor55+z57Sw5belID4gaXNoaXphaWt1XCA7Civlr53lsI/kvr8gPiBuZXNob3ViZW5cIDsKK+WGt+iUteazlSA+IHJlaXpvdWhvdVwgOwor6YWN5YiG5rOVID4gaGFpYnVuaG91XCA7CivogL3nvo7nmoQgPiB0YW5iaXRla2lcIDsKK+a9nOiIquiJhyA+IHNlbmtvdXRlaVwgOwor5ZCM56qT55SfID4gZG91c291c2VpXCA7CivmlL7mtarogIUgPiBob3Vyb3VzaGFcIDsKK+eoruamguW/tSA+IHNodWdhaW5lblwgOwor5pep5piO5oimID4gc291bWVpc2VuXCA7Civlvq7nqY3liIYgPiBiaXNla2lidW5cIDsKK+mzpeeesOWbsyA+IGNob3VrYW56dVwgOwor5aWz546L6JyCID4gam9vdWJhY2hpXCA7CivlpJbkuqTlrpggPiBnYWlrb3VrYW5cIDsKK+atr+iCieeCjiA+IHNoaW5pa3VlblwgOwor6Ieq54S25p6XID4gc2hpemVucmluXCA7CivmvJTnv5LloLQgPiBlbnNodXVqb3VcIDsKK+Wwj+m6puiJsiA+IGtvbXVnaWlyb1wgOwor6a2a6LKd6aGeID4gZ3lva2FpcnVpXCA7Civlvqnlj6Toqr8gPiBmdWtrb2Nob3VcIDsKK+WPjeecgeS8miA+IGhhbnNlaWthaVwgOwor54ax5biv6a2aID4gbmV0dGFpZ3lvXCA7CivljZjokYnmqZ8gPiB0YW4nJ3lvdWtpXCA7CivmiYDmnInogIUgPiBzaG95dXVzaGFcIDsKK+iyqeWjsuiAhSA+IGhhbmJhaXNoYVwgOwor5Li75Lq66aGUID4gc2h1amluZ2FvXCA7Civmu5HnqL3ogIUgPiBvZG9rZW1vbm9cIDsKK+awtOmjoumliSA+IG1penVraWtpblwgOwor5rW35LiK5rOVID4ga2Fpam91aG91XCA7CivnhrHlj6/loZEgPiBuZXRzdWthc29cIDsKK+WMluWtpuWTgSA+IGthZ2FrdWhpblwgOwor5a2Q5rKi5bGxID4ga29kYWt1c2FuXCA7CivkvZnmsLTlkJAgPiB5b3N1aWhha2lcIDsKK+aYqOW5tOW6piA+IHNha3VuZW5kb1wgOwor6Ieq54S25pWwID4gc2hpemVuc3V1XCA7Civlho3oqILniYggPiBzYWl0ZWliYW5cIDsKK+mdkuW5tOS8miA+IHNlaW5lbmthaVwgOwor54++5Zyw5Lq6ID4gZ2VuY2hpamluXCA7CivluILooZfmiKYgPiBzaGlnYWlzZW5cIDsKK+aHkOeWkeW/gyA+IGthaWdpc2hpblwgOwor5pyd5pel5b2xID4gYXNhaGlrYWdlXCA7CivoqpjlsI7lvL4gPiB5dXVkb3VkYW5cIDsKK+iyqeWjsue2siA+IGhhbmJhaW1vdVwgOwor5YWr55m+5LiHID4geWFveW9yb3p1XCA7CivosqfkuY/kurogPiBiaW5ib3VuaW5cIDsKK+W3peS6i+S4rSA+IGtvdWppY2h1dVwgOwor56qD55uX572qID4gc2V0dG91emFpXCA7Civljp/oo4HliKQgPiBnZW5zYWliYW5cIDsKK+eCueeBq+iWrCA+IHRlbmtheWFrdVwgOwor5rW35LiK5qipID4ga2Fpam91a2VuXCA7CivljJblrabliaQgPiBrYWdha3V6YWlcIDsKK+eyvuijveazlSA+IHNlaXNlaWhvdVwgOwor5pa555y857SZID4gaG91Z2Fuc2hpXCA7Civlj5fos57ogIUgPiBqdXNob3VzaGFcIDsKK+aOqOiWpuiAhSA+IHN1aXNlbnNoYVwgOwor6Zuq5qih5qeYID4geXVraW1veW91XCA7CivkuIDntJrlk4EgPiBpa2t5dXVoaW5cIDsKK+agvOWtkOeCuSA+IGtvdXNoaXRlblwgOwor6LO86LK36ICFID4ga291YmFpc2hhXCA7CivkuIDnrYnos54gPiBpdHRvdXNob3VcIDsKK+S7luWbveS6uiA+IHRha29rdWppblwgOwor56m65rCX5rW0ID4ga3V1a2l5b2t1XCA7CivlpJbkuqTlm6MgPiBnYWlrb3VkYW5cIDsKK+Wft+ihjOmDqCA+IHNoaWtrb3VidVwgOwor55CG56We6KuWID4gcmlzaGlucm9uXCA7Civlj5fpqJPmlpkgPiBqdWtlbnJ5b3VcIDsKK+WLneaJi+WFgyA+IGthdHRlbW90b1wgOwor55u45a++6KuWID4gc291dGFpcm9uXCA7CivliIrooYzkvJogPiBrYW5rb3VrYWlcIDsKK+WNkemHkeWxniA+IGhpa2luem9rdVwgOwor5L+d6IKy5paZID4gaG9pa3VyeW91XCA7Civnt4/os4fnlKMgPiBzb3VzaGlzYW5cIDsKK+S9j+awkeeojiA+IGp1dW1pbnplaVwgOwor5Zyn57iu5ZmoID4gYXNzaHVrdWtpXCA7Civkv7jntabml6UgPiBob3VreXV1YmlcIDsKK+ihjOaUv+W6nCA+IGd5b3VzZWlmdVwgOwor5Yem5aWz6IacID4gc2hvam9tYWt1XCA7Civpmo/kvLTogIUgPiB6dWloYW5zaGFcIDsKK+i7iua1t+iAgSA+IGt1cnVtYWViaVwgOwor5oKq5a6j5LydID4gYWt1c2VuZGVuXCA7CivlpJrpnaLnmoQgPiB0YW1lbnRla2lcIDsKK+WvvuaIpui7iiA+IHRhaXNlbnNoYVwgOwor6Ium5Yq05oCnID4ga3Vyb3VzaG91XCA7CivmgZDlprvlrrYgPiBreW91c2Fpa2FcIDsKK+S4u+WusOiAhSA+IHNodXNhaXNoYVwgOwor5Y2K6bm55rC0ID4gaGFua2Fuc3VpXCA7Civlr4boiKrogIUgPiBtaWtrb3VzaGFcIDsKK+S4gOetieimqiA+IGl0dG91c2hpblwgOwor5rOo6YCj57iEID4gc2hpbWVuYXdhXCA7Civoo5zlvLfnrYsgPiBob2t5b3VraW5cIDsKK+eci+adv+WxiyA+IGthbmJhbicneWFcIDsKK+ekvuWToeWvriA+IHNoYWlucnlvdVwgOwor5ZG85ZC45rOVID4ga29reXV1aG91XCA7CivkvZPph4/lmaggPiB0YWlyeW91a2lcIDsKK+WMluWtpuS4iiA+IGthZ2FrdWpvdVwgOwor5Ly96JeN6bOlID4gZ2FyYW5jaG91XCA7Civlv4Poh5Ppg6ggPiBzaGluem91YnVcIDsKK+acgOmrmOWzsCA+IHNhaWtvdWhvdVwgOwor56u26Lyq5aC0ID4ga2Vpcmluam91XCA7Civph43lqZrogIUgPiBqdXVrb25zaGFcIDsKK+imgeaSg+apnyA+IHlvdWdla2lraVwgOwor5rCX5YyW54axID4ga2lrYW5ldHN1XCA7Civml6XmlZnntYQgPiBuaWtreW91c29cIDsKK+S4ieetieaYnyA+IHNhbnRvdXNlaVwgOwor5ZG95ZCN5rOVID4gbWVpbWVpaG91XCA7Civlj4LliqDlm70gPiBzYW5rYWtva3VcIDsKK+acqumWi+aLkyA+IG1pa2FpdGFrdVwgOwor5YaN57eo5oiQID4gc2FpaGVuc2VpXCA7CivpgI/msLTmgKcgPiB0b3VzdWlzZWlcIDsKK+WPjeWvvuirliA+IGhhbnRhaXJvblwgOwor5a2m6Iq45ZOhID4gZ2FrdWdlaWluXCA7Civlhrflh43prZogPiByZWl0b3VneW9cIDsKK+aVl+aui+WFtSA+IGhhaXphbmhlaVwgOwor5pu455Sf6KuWID4gc2hvc2Vpcm9uXCA7Civlv5fmnJvogIUgPiBzaGlib3VzaGFcIDsKK+iyoeaUv+mboyA+IHphaXNlaW5hblwgOwor5Yi255mM5YmkID4gc2VpZ2FuemFpXCA7Civnmbrms6HliaQgPiBoYXBwb3V6YWlcIDsKK+S8neWlh+eahCA+IGRlbmtpdGVraVwgOwor57WG5Ym16IaPID4gYmFuc291a291XCA7Civkv53lrZjmlpkgPiBob3pvbnJ5b3VcIDsKK+efs+eBsOWyqSA+IHNla2thaWdhblwgOwor5YW15a2m5qChID4gaGVpZ2Fra291XCA7Civlr4zlsbHnnIwgPiB0b3lhbWFrZW5cIDsKK+i/keS7o+WPsiA+IGtpbmRhaXNoaVwgOwor6Kmy5b2T6ICFID4gZ2FpdG91c2hhXCA7CivngrnmlbDliLYgPiB0ZW5zdXVzZWlcIDsKK+mrmOefpeecjCA+IGtvdWNoaWtlblwgOwor5Y+j5LiK5pu4ID4ga291am91c2hvXCA7Civop6PmlL7mhJ8gPiBrYWlob3VrYW5cIDsKK+W5s+WSjOeahCA+IGhlaXdhdGVraVwgOwor6Ieq6ZaJ55eHID4gamloZWlzaG91XCA7Civpo7LnlKjmsLQgPiBpbicneW91c3VpXCA7CivlpKrpmb3lhYkgPiB0YWl5b3Vrb3VcIDsKK+api+mgreS/nSA+IGt5b3V0b3Vob1wgOwor5Y+k5pu45biCID4ga29zaG9pY2hpXCA7CivlpKnnhLbloakgPiB0ZW4nJ25lbmVuXCA7CivlhazlrrPnvaogPiBrb3VnYWl6YWlcIDsKK+a3q+WjsuWuvyA+IGluYmFpeWFkb1wgOwor6LW36KuL5paHID4ga2lzaG91bW9uXCA7CivnooHnm6TnuJ4gPiBnb2JhbmppbWFcIDsKK+S/l+S4lumWkyA+IHpva3VzZWtlblwgOwor55SY57SN6LGGID4gYW1hbmF0dG91XCA7Civkub7pharntKAgPiBrYW5yYWt1c29cIDsKK+WGtumHkeWtpiA+IHlha2luZ2FrdVwgOwor5YaX6ZW35bqmID4gam91Y2hvdWRvXCA7Civnp4Hlrrbpm4YgPiBzaGlrYXNodXVcIDsKK+W4guihl+WcsCA+IHNoaWdhaWNoaVwgOwor5Y+v6Kqt5oCnID4ga2Fkb2t1c2VpXCA7CivmmI7npLrnmoQgPiBtZWlqaXRla2lcIDsKK+Wkp+Wbnui7oiA+IGRhaWthaXRlblwgOwor5ZGJ5pyN5bqXID4gZ29mdWt1dGVuXCA7CivkuK3oj6/kuLwgPiBjaHV1a2Fkb25cIDsKK+Wkp+ilv+a0iyA+IHRhaXNlaXlvdVwgOwor55CG5oOz55qEID4gcmlzb3V0ZWtpXCA7CivlprvluK/ogIUgPiBzYWl0YWlzaGFcIDsKK+WFq+WuneiPnCA+IGhhcHBvdXNhaVwgOwor5Y+M6LmE5424ID4gc291dGVpanV1XCA7Civlm73lhajlnJ8gPiBrb2t1emVuZG9cIDsKK+S6jOmAsuazlSA+IG5pc2hpbmhvdVwgOwor57695biD5ZujID4gaGFuZWJ1dG9uXCA7Civoh6rnhLblopcgPiBzaGl6ZW56b3VcIDsKK+aZguS7o+WKhyA+IGppZGFpZ2VraVwgOwor5re35oiQ6YWSID4ga29uc2Vpc2h1XCA7CivlhazlgI3mlbAgPiBrb3ViYWlzdXVcIDsKK+WHpuaWueeuiyA+IHNob2hvdXNlblwgOwor55mM57Sw6IOeID4gZ2Fuc2FpYm91XCA7CivntK/muJvnqI4gPiBydWlnZW56ZWlcIDsKK+aJgOS9nOS6iyA+IHNob3NhZ290b1wgOwor54Sh6ZmQ5bCPID4gbXVnZW5zaG91XCA7CivnqoPnm5fniq8gPiBzZXR0b3VoYW5cIDsKK+S7leaJi+agqiA+IHNoaXRla2FidVwgOwor5Y+j5LiL5omLID4ga3VjaGliZXRhXCA7Civph5Hmm5zml6UgPiBraW4nJ3lvdWJpXCA7CivkvY7msLTmupYgPiB0ZWlzdWlqdW5cIDsKK+ijveS9nOaJgCA+IHNlaXNha3Vqb1wgOwor5Lyd5aOw566hID4gZGVuc2Vpa2FuXCA7CivpmbDmrabogIUgPiBrYWdlbXVzaGFcIDsKK+mHj+WtkOWMliA+IHJ5b3VzaGlrYVwgOwor5aW95LiA5a++ID4ga291aXR0c3VpXCA7Civkuovli5nlsYAgPiBqaW11a3lva3VcIDsKK+WJr+m8u+iFlCA+IGZ1a3ViaWt1dVwgOwor5rWq6LK755mWID4gcm91aGloZWtpXCA7CivntabosrvnlJ8gPiBreXV1aGlzZWlcIDsKK+ecjOS6uuS8miA+IGtlbmppbmthaVwgOwor5Li75Lu76ICFID4gc2h1bmluc2hhXCA7CivlhaznlKjmlocgPiBrb3V5b3VidW5cIDsKK+ihjOaUv+WMuiA+IGd5b3VzZWlrdVwgOwor5o6o6Jam54q2ID4gc3Vpc2Vuam91XCA7CivkuK3ot53pm6IgPiBjaHV1a3lvcmlcIDsKK+WFseeUo+WMliA+IGt5b3VzYW5rYVwgOwor5Lya5pyf5LitID4ga2Fpa2ljaHV1XCA7Civph47nkIPloLQgPiB5YWt5dXVqb3VcIDsKK+mWkeWPpOmzpSA+IGthbmtvZG9yaVwgOwor55Sj6KSl5pyfID4gc2Fuam9rdWtpXCA7CivkuLvlsI7mqKkgPiBzaHVkb3VrZW5cIDsKK+WLn+mHkeeusSA+IGJva2luYmFrb1wgOwor56Gs5Y+j6JOLID4ga291a291Z2FpXCA7Civlj7LoqJjmioQgPiBzaGlraXNob3VcIDsKK+W5tOm9ouWxpCA+IG5lbnJlaXNvdVwgOwor6aCt6aCC6YOoID4gdG91Y2hvdWJ1XCA7Civml6nloLTnsbMgPiBoYXlhYmFtYWlcIDsKK+WPo+iqnuiosyA+IGtvdWdveWFrdVwgOwor5rK55Zyn6KiIID4geXVhdHN1a2VpXCA7Civkuozmr5vkvZwgPiBuaW1vdXNha3VcIDsKK+aknOezluioiCA+IGtlbnRvdWtlaVwgOwor6KqY5bCO5L2TID4geXV1ZG91dGFpXCA7CivnnJ/lm5vop5IgPiBtYXNoaWtha3VcIDsKK+eUs+WRveiomCA+IHNoaW5tZWlraVwgOwor6ISC6IKq5bGkID4gc2hpYm91c291XCA7Civnianlk4HnqI4gPiBidXBwaW56ZWlcIDsKK+mzs+e/hemQmCA+IGhvdXNoaXRvdVwgOwor5bGk56mN6ZuyID4gc291c2VraXVuXCA7Civnp5LmmYLoqIggPiBieW91ZG9rZWlcIDsKK+ePiueRmuekgSA+IHNhbmdvc2hvdVwgOwor6YCj5L2T6KmeID4gcmVudGFpc2hpXCA7CivlsYHnkIblsYggPiBoZXJpa3V0c3VcIDsKK+WQjOaDheiAhSA+IGRvdWpvdXNoYVwgOwor5b+X6aGY6ICFID4gc2hpZ2Fuc2hhXCA7CivmtarkurrnlJ8gPiByb3VuaW5zZWlcIDsKK+S4jeWPr+mAhiA+IGZ1a2FneWFrdVwgOwor5aSn6Ziq5biCID4gb29zYWthc2hpXCA7CivmhJvoqq3mm7ggPiBhaWRva3VzaG9cIDsKK+WPr+WhkeeJqSA+IGthc29idXRzdVwgOwor5paw6YCg6KqeID4gc2hpbnpvdWdvXCA7Civlj43lr77ogIUgPiBoYW50YWlzaGFcIDsKK+m7kuegguezliA+IGt1cm96YXRvdVwgOwor546E57Gz6Iy2ID4gZ2VubWFpY2hhXCA7CivmvJTnubnms5UgPiBlbicnZWtpaG91XCA7Civoh6jloLTmhJ8gPiByaW5qb3VrYW5cIDsKK+WBj+ilv+miqCA+IGhlbnNlaWZ1dVwgOwor6aaZ5ZGz5paZID4ga291bWlyeW91XCA7CivmraPnlLLmnb8gPiBzZWlrYW5wYW5cIDsKK+WvqeitsOS8miA+IHNoaW5naWthaVwgOwor6Z2S5qOu55yMID4gYW9tb3Jpa2VuXCA7CivkuI3mhJ/nl4cgPiBmdWthbnNob3VcIDsKK+emgeihm+maiiA+IGtpbicnZWl0YWlcIDsKK+aUvuawtOi7iiA+IGhvdXN1aXNoYVwgOwor6ICQ5rC05oCnID4gdGFpc3Vpc2VpXCA7CivnjoTplqLnlaogPiBnZW5rYW5iYW5cIDsKK+WJjeWknOelrSA+IHplbicneWFzYWlcIDsKK+aciOahguWGoCA+IGdla2tlaWthblwgOwor5LqM5YiA5rWBID4gbml0b3VyeXV1XCA7CivmiYDmnInmqKkgPiBzaG95dXVrZW5cIDsKK+WGt+WHjei7iiA+IHJlaXRvdXNoYVwgOwor5p2l5Lya6ICFID4gcmFpa2Fpc2hhXCA7CivkuIrnrYnlk4EgPiBqb3V0b3VoaW5cIDsKK+iNkueZguayuyA+IGFyYXJ5b3VqaVwgOwor5qW96Kaz6KuWID4gcmFra2Fucm9uXCA7CivlgLboiI7lrpcgPiBrdXNoYXNodXVcIDsKK+eEoeiogOWKhyA+IG11Z29uZ2VraVwgOwor5YWl6IuR5Yi4ID4gbnl1dWVua2VuXCA7CivohbHpnpjngo4gPiBrZW5zaG91ZW5cIDsKK+mrmOW5tOiAhSA+IGtvdW5lbnNoYVwgOwor5o6i5rW354GvID4gdGFua2FpdG91XCA7CivnhKHopo/lvosgPiBtdWtpcml0c3VcIDsKK+W9ouWuueipniA+IGtlaXlvdXNoaVwgOwor5bKp6Zuy6ZuAID4gaXdhaGliYXJpXCA7CivlvpLnq7botbAgPiB0b2t5b3Vzb3VcIDsKK+S4jeaIpuWLnSA+IGZ1c2Vuc2hvdVwgOwor6Ieq54S25Lq6ID4gc2hpemVuamluXCA7Civlrrbluq3nmoQgPiBrYXRlaXRla2lcIDsKK+mrmOawl+WcpyA+IGtvdWtpYXRzdVwgOwor5ruR56i95pysID4ga29ra2VpYm9uXCA7CivlpbPlrZDlr64gPiBqb3NoaXJ5b3VcIDsKK+aUv+ayu+eahCA+IHNlaWppdGVraVwgOwor5LiK562J5YW1ID4gam91dG91aGVpXCA7Civljp/nqL/ntJkgPiBnZW5rb3VzaGlcIDsKK+iJsuecvOmPoSA+IGlyb21lZ2FuZVwgOwor5qW96K2c5Y+wID4gZ2FrdWZ1ZGFpXCA7CivlhrfmsLTloYogPiByZWlzdWlrYWlcIDsKK+S/neitt+iJsiA+IGhvZ29zaG9rdVwgOwor6Imy5Y+O5beuID4gaXJvc2h1dXNhXCA7Civnvo7ooZPlrrYgPiBiaWp1dHN1a2FcIDsKK+WGjeipleS+oSA+IHNhaWh5b3VrYVwgOwor56u25LqJ6aasID4ga3lvdXNvdWJhXCA7CivmupblgpnkuK0gPiBqdW5iaWNodXVcIDsKK+WFieWQiOaIkCA+IGtvdWdvdXNlaVwgOwor5oKq5p2h5Lu2ID4gYWt1am91a2VuXCA7CivkuInmgqrotqMgPiBzYW5ha3VzaHVcIDsKK+S4u+eUo+WcsCA+IHNodXNhbmNoaVwgOwor6LK05pa544CFID4gYW5hdGFnYXRhXCA7Civlt7vnqY3pm7IgPiBrZW5zZWtpdW5cIDsKK+W4jOehq+mFuCA+IGtpcnl1dXNhblwgOwor6ISx56mA5qmfID4gZGFra29rdWtpXCA7CivpvI7oq4fkvJogPiB0ZWlkYW5rYWlcIDsKK+ikh+acrOS9jSA+IGZ1a3Vob24nJ2lcIDsKK+S/l+i2o+WRsyA+IHpva3VzaHVtaVwgOwor57WC5q2i56ymID4gc2h1dXNoaWZ1XCA7Civnsr7oo73lk4EgPiBzZWlzZWloaW5cIDsKK+aGsuWFtemaiiA+IGtlbnBlaXRhaVwgOwor6YWN5YG26ICFID4gaGFpZ3V1c2hhXCA7CivlhYXlvZPph5EgPiBqdXV0b3VraW5cIDsKK+a2iOeBq+agkyA+IHNob3VrYXNlblwgOwor5a+E55WZ6ICFID4ga2lyeXV1c2hhXCA7CivngbDnpZ7mpb0gPiBoYWlrYWd1cmFcIDsKK+S4jemHj+imiyA+IGZ1cnlvdWtlblwgOwor6YeR5LiA5bCBID4ga2luJydpcHB1dVwgOwor5bqK6YGL5YuVID4geXVrYXVuZG91XCA7Civlr4TnlJ/omasgPiBraXNlaWNodXVcIDsKK+S4ieetieWIhiA+IHNhbnRvdWJ1blwgOwor5Zar5rC057eaID4ga2lzc3Vpc2VuXCA7CivmgqrnjonljJYgPiBha3VkYW1ha2FcIDsKK+i2heewoeaYkyA+IGNob3VrYW4nJ2lcIDsKK+aIr+S9nOiAhSA+IGdlc2FrdXNoYVwgOwor6Z2S55Oi566qID4gYW9ieW91dGFuXCA7CivmgqPogIXmp5ggPiBrYW5qYXNhbWFcIDsKK+S6lOWvuOmHmCA+IGdvc3Vua3VnaVwgOwor5Luu55m76KiYID4ga2FyaXRvdWtpXCA7CivlkIjlkIzou40gPiBnb3Vkb3VndW5cIDsKK+mdnuePvualrSA+IGhpZ2VuZ3lvdVwgOwor5Yuk5Yq06ICFID4ga2lucm91c2hhXCA7Civlm7rlrprplbcgPiBrb3RlaWNob3VcIDsKK+auuuiPjOWJpCA+IHNha2tpbnphaVwgOwor5rSL5pyN5bGLID4geW91ZnVrdXlhXCA7CivotbfniIbliaQgPiBraWJha3V6YWlcIDsKK+ihqOekuueBryA+IGh5b3VqaXRvdVwgOwor5L6/5Yip5bizID4gYmVucmljaG91XCA7Civlj5bmnZDnj60gPiBzaHV6YWloYW5cIDsKK+iEguiCquS9kyA+IHNoaWJvdXRhaVwgOwor6YO15L6/5bGLID4geXV1YmluJyd5YVwgOwor5Lit6L6e5YW4ID4gY2h1dWppdGVuXCA7CivmtJfpnaLlj7AgPiBzZW5tZW5kYWlcIDsKK+WGheijj+mbmyA+IGRhaXJpYmluYVwgOwor5YWo5LqM6YeNID4gemVuJyduaWp1dVwgOwor5rq26Kej5oCnID4geW91a2Fpc2VpXCA7CivmlbTmlbDoq5YgPiBzZWlzdXVyb25cIDsKK+awkeekvuWFmiA+IG1pbnNoYXRvdVwgOwor5LyB55S75pu4ID4ga2lrYWt1c2hvXCA7CivnlJ/lnLDnjYQgPiBpa2lqaWdva3VcIDsKK+e0lOexs+mFkiA+IGp1bm1haXNodVwgOwor5Zue6YGK6a2aID4ga2FpeXV1Z3lvXCA7CivnhKHplqLlv4MgPiBtdWthbnNoaW5cIDsKK+WPi+S6uumWkyA+IHl1dWppbmthblwgOwor5pyJ5paQ6ZajID4geXV1aGlrYWt1XCA7Civosqnlo7LlupcgPiBoYW5iYWl0ZW5cIDsKK+W/l+acm+agoSA+IHNoaWJvdWtvdVwgOwor5aWJ6L+O6ZaAID4gaG91Z2VpbW9uXCA7CivpnaLkvJrkurogPiBtZW5rYWluaW5cIDsKK+S4gOeuh+aciCA+IGlra2FnZXRzdVwgOwor6YCB5rC0566hID4gc291c3Vpa2FuXCA7Civlhrflh43oiLkgPiByZWl0b3VzZW5cIDsKK+W5tOmFjeiAhSA+IG5lbnBhaXNoYVwgOwor5omL5pWw5paZID4gdGVzdXVyeW91XCA7Civpm6LprYLnl4UgPiByaWtvbmJ5b3VcIDsKK+awtOS4reiKsSA+IHN1aWNodXVrYVwgOwor5YuV5ZCN6KmeID4gZG91bWVpc2hpXCA7Civpu4Tph5HoibIgPiBrb2dhbmVpcm9cIDsKK+S6jOWFg+eahCA+IG5pZ2VudGVraVwgOwor57ie5qCX6bygID4gc2hpbWFyaXN1XCA7CivlqK/mpb3loLQgPiBnb3Jha3Vqb3VcIDsKK+mBiuimp+WcsCA+IHl1dXJhbmNoaVwgOwor5pys5Zug5Z2KID4gaG9uJydpbmJvdVwgOwor5YWx5qCE5ZyPID4ga3lvdWVpa2VuXCA7Civnm7jlr77mrbsgPiBhaXRhaWppbmlcIDsKK+WbveiHquaFoiA+IGt1bmlqaW1hblwgOwor6YeN5aSn6KaWID4ganV1ZGFpc2hpXCA7CivkvIHmpa3lhoUgPiBraWd5b3VuYWlcIDsKK+WQjOeqk+S8miA+IGRvdXNvdWthaVwgOwor5rOV6JOu6I2JID4gaG91cmVuc291XCA7CivmtbflpJbniYggPiBrYWlnYWliYW5cIDsKK+aJh+eKtuWcsCA+IHNlbmpvdWNoaVwgOwor5omT5pKD5oimID4gZGFnZWtpc2VuXCA7CivpgI/lhpnntJkgPiB0b3VzaGFzaGlcIDsKK+S6uuaWh+WPsiA+IGppbmJ1bnNoaVwgOwor5oyH5a6a5Yi4ID4gc2hpdGVpa2VuXCA7CivpppnmsLTnk7YgPiBrb3VzdWliaW5cIDsKK+eGseW4r+eXhSA+IG5ldGFpYnlvdVwgOwor5Lyd6KiY54mpID4gZGVua2ltb25vXCA7CivoqIjph4/lmaggPiBrZWlyeW91a2lcIDsKK+ijnOWEn+mHkSA+IGhvc2hvdWtpblwgOwor6Lu954qv572qID4ga2VpaGFuemFpXCA7CivpnLDlvL7pioMgPiBzYW5kYW5qdXVcIDsKK+WQiOaGsuaApyA+IGdvdWtlbnNlaVwgOwor5Zyw6Y6u56WtID4gamljaGluc2FpXCA7CivkuLvkvZPmgKcgPiBzaHV0YWlzZWlcIDsKK+e0oOeykuWtkCA+IHNvcnl1dXNoaVwgOwor5aWH6bqX5LqLID4ga2lyZWlnb3RvXCA7Civonb/lnLDnjYQgPiBoYWVqaWdva3VcIDsKK+Wkp+eBveWusyA+IGRhaXNhaWdhaVwgOwor5qW95aSp5a62ID4gcmFrdXRlbmthXCA7CivnkIbmgKfnmoQgPiByaXNlaXRla2lcIDsKK+m8k+esm+maiiA+IGtvdGVraXRhaVwgOwor5a+S5pqW6KiIID4ga2FuZGFua2VpXCA7CivoirHnsonnl4cgPiBrYWZ1bnNob3VcIDsKK+S6uueCuueahCA+IGppbicnaXRla2lcIDsKK+WPl+mgmOiAhSA+IGp1cnlvdXNoYVwgOwor5LyB55S75oCnID4ga2lrYWt1c2VpXCA7CivlhoXpnIDlnosgPiBuYWlqdWdhdGFcIDsKK+WOn+aIkOWyqSA+IGdlbnNlaWdhblwgOwor6KGo56S65p2/ID4gaHlvdWppYmFuXCA7CivmsLjkuYXmra8gPiBlaWt5dXVzaGlcIDsKK+WNg+ekvuacrSA+IHNlbmphZnVkYVwgOwor6I+p5o+Q5b+DID4gYm9kYWlzaGluXCA7CivooajnpLrmm7ggPiBoeW91amlzaG9cIDsKK+eyvueul+abuCA+IHNlaXNhbnNob1wgOwor5pS+5rC0566hID4gaG91c3Vpa2FuXCA7Civlj4zlrZDokYkgPiBzb3VzaGl5b3VcIDsKK+aAp+i7ouaPmyA+IHNlaXRlbmthblwgOwor6Ly46YCB6YePID4geXVzb3VyeW91XCA7CivmiYDmnInlnLAgPiBzaG95dXVjaGlcIDsKK+m8k+aJi+mVtyA+IGtvc2h1Y2hvdVwgOwor57eP5pys5bqXID4gc291aG9udGVuXCA7CivlhYPmsJfogIUgPiBnZW5raW1vbm9cIDsKK+S7o+W8geiAhSA+IGRhaWJlbnNoYVwgOwor55S65Yy76ICFID4gbWFjaGlpc2hhXCA7Civoo73mnZDmiYAgPiBzZWl6YWlzaG9cIDsKK+WPjeS5sei7jSA+IGhhbnJhbmd1blwgOwor57eP5Lq65Y+jID4gc291amlua291XCA7Civlupfku5XoiJ4gPiBtaXNlamltYWlcIDsKK+S4reS/neiAhSA+IGNodXVob3NoYVwgOwor56uL5rOV6ICFID4gcmlwcG91c2hhXCA7CivojYnnm7jmkrIgPiBrdXNhenVtb3VcIDsKK+S6iOWCmemMqCA+IHlvYmlpa2FyaVwgOwor5q2T6YCB5LyaID4ga2Fuc291a2FpXCA7Civlj4znv4XpoZ4gPiBzb3VzaGlydWlcIDsKK+e0mee0sOW3pSA+IGthbWl6YWlrdVwgOwor5bGx5rC06I2YID4gc2Fuc3Vpc291XCA7CivooajmspnmsbAgPiBvbW90ZXphdGFcIDsKK+WUkOeNheWtkCA+IGthcmFqaXNoaVwgOwor5bmz5ZKM5Zu9ID4gaGVpd2Frb2t1XCA7CivkvY7msJflnKcgPiB0ZWlraWF0c3VcIDsKK+S9nOalreeUqCA+IHNhZ3lvdXlvdVwgOwor5rC05a6z5ZywID4gc3VpZ2FpY2hpXCA7Civnt4/mnKzlsbEgPiBzb3Vob256YW5cIDsKK+a8lOiqrOWutiA+IGVuemV0c3VrYVwgOwor55uy6IW454KOID4gbW91Y2hvdWVuXCA7CivnqIDnoavphbggPiBraXJ5dXVzYW5cIDsKK+mBo+WUkOS9vyA+IGtlbnRvdXNoaVwgOwor5L2c5qWt54+tID4gc2FneW91aGFuXCA7CivmtLvmgKfngq0gPiBrYXNzZWl0YW5cIDsKK+acgOWwj+WMliA+IHNhaXNob3VrYVwgOwor5LmX6ZmN5aC0ID4gam91a291am91XCA7Civkv5fkuJbnlYwgPiB6b2t1c2VrYWlcIDsKK+avm+e5lOeJqSA+IGtlb3JpbW9ub1wgOwor5b+X6aGY5pu4ID4gc2hpZ2Fuc2hvXCA7CivkuI3mrbvps6UgPiBmdXNoaWNob3VcIDsKK+aCsuims+eahCA+IGhpa2FudGVraVwgOwor5oiQ5Yqf6ICFID4gc2Vpa291c2hhXCA7CivnnIvorbflraYgPiBrYW5nb2dha3VcIDsKK+S4iuWQkee3miA+IGpvdWtvdXNlblwgOwor5raI54KO5YmkID4gc2hvdWVuemFpXCA7CivlhazkvJHml6UgPiBrb3VreXV1YmlcIDsKK+e3j+e9t+alrSA+IHNvdWhpZ3lvdVwgOwor5YaN5oqV6LOHID4gc2FpdG91c2hpXCA7CivmrYzliofloLQgPiBrYWdla2lqb3VcIDsKK+a1hOawtOWgtCA+IGpvdXN1aWpvdVwgOwor5rC06ICV5rOVID4gc3Vpa291aG91XCA7CivlpKfmvJTnv5IgPiBkYWllbnNodXVcIDsKK+Wun+a4rOWbsyA+IGppc3Nva3V6dVwgOwor6Iao5by15bqmID4gYm91Y2hvdWRvXCA7CivmmKDlhpnluZUgPiBlaXNoYW1ha3VcIDsKK+S4iuawtOmBkyA+IGpvdXN1aWRvdVwgOwor5YWo5L2P5rCRID4gemVuanV1bWluXCA7CivmtYTmsLTlnLAgPiBqb3VzdWljaGlcIDsKK+eUt+aAp+eUqCA+IGRhbnNlaXlvdVwgOwor5aW95aWH5b+DID4ga291a2lzaGluXCA7CivogonkvZPnvo4gPiBuaWt1dGFpYmlcIDsKK+WbveWutueahCA+IGtva2thdGVraVwgOwor54qg54my55qEID4gZ2lzZWl0ZWtpXCA7CivpgKPlrZDnqpMgPiByZW5qaW1hZG9cIDsKK+ebuOWvvuaApyA+IHNvdXRhaXNlaVwgOwor6Zai5b+D5LqLID4ga2Fuc2hpbmppXCA7CivokrLlm6Pnmq4gPiBmdXRvbmdhd2FcIDsKK+WMl+aWl+aYnyA+IGhva3V0b3NlaVwgOwor5pys5oug5ZywID4gaG9ua3lvY2hpXCA7CivoiJ7ouI/nl4UgPiBidXRvdWJ5b3VcIDsKK+WGheWkluS6uiA+IG5haWdhaWppblwgOwor5LiL56iu5aWzID4gZ2VzdW9uJyduYVwgOwor6LWk6Zu76LuKID4gYWthZGVuc2hhXCA7Civnspjmnb/lsqkgPiBuZW5iYW5nYW5cIDsKK+S6i+alreiAhSA+IGppZ3lvdXNoYVwgOwor5q2T6L+O5LyaID4ga2FuZ2Vpa2FpXCA7CivoqJflhZDmiYAgPiB0YWt1amlzaG9cIDsKK+S/neiovOmHkSA+IGhvc2hvdWtpblwgOwor54yp44CF57eLID4gc2hvdWpvdWhpXCA7CivmsLTmmYLoqIggPiBtaXp1ZG9rZWlcIDsKK+ebsuWwjueKrCA+IG1vdWRvdWtlblwgOwor6LKp5aOy5Lq6ID4gaGFuYmFpbmluXCA7Civkurrlm73oqJggPiBqaW5rb2t1a2lcIDsKK+aZruWPiueJiCA+IGZ1a3l1dWJhblwgOwor5Y2K6YOo5pePID4gaGFuYnV6b2t1XCA7Civpo5vpgZPlhbcgPiB0b2JpZG91Z3VcIDsKK+S6uumWk+eVjCA+IG5pbmdlbmthaVwgOwor5Lmz5q+N6LuKID4gdWJhZ3VydW1hXCA7Civmg6jmrbvkvZMgPiB6YW5zaGl0YWlcIDsKK+mBi+aQrOS6uiA+IHVucGFuJyduaW5cIDsKK+aKl+eUn+WJpCA+IGtvdXNlaXphaVwgOwor5LiW6L+36KiAID4geW9tYWlnb3RvXCA7CivkvJ3oqIDmnb8gPiBkZW5nb25iYW5cIDsKK+iHqueri+iqniA+IGppcml0c3Vnb1wgOwor54ax5biv5p6XID4gbmV0dGFpcmluXCA7CivmsLjkuYXmgKcgPiBlaWt5dXVzZWlcIDsKK+ijveacrOWxiyA+IHNlaWhvbicneWFcIDsKK+axvei7iuizgyA+IGtpc2hhY2hpblwgOwor56aB6KOP5qeYID4ga2lucmlzYW1hXCA7CivmhaPnlKjlj6UgPiBrYW4nJ3lvdWt1XCA7CivoprPlhYnlnLAgPiBrYW5rb3VjaGlcIDsKK+S8muimi+iAhSA+IGthaWtlbnNoYVwgOwor5p2x5aSp57SFID4gdG91dGVua291XCA7CivoprPlhYnlm6MgPiBrYW5rb3VkYW5cIDsKK+aKgOW3p+eahCA+IGdpa291dGVraVwgOwor5qW96Zqg5bGFID4gcmFrdWlua3lvXCA7Civpq5jpgJ/luqYgPiBrb3Vzb2t1ZG9cIDsKK+engeeUn+WtkCA+IHNoaXNlaXNoaVwgOwor5pel6KiY5bizID4gbmlra2ljaG91XCA7CivmlL/msrvlraYgPiBzZWlqaWdha3VcIDsKK+awtOeQhuWtpiA+IHN1aXJpZ2FrdVwgOwor5q+N5a2Q5a+uID4gYm9zaGlyeW91XCA7CivnnYDlv4PlnLAgPiBraWdva29jaGlcIDsKK+aIkuWOs+S7pCA+IGthaWdlbnJlaVwgOwor5oqV5LiO6YePID4gdG91eW9yeW91XCA7Civlk7rkubPpoZ4gPiBob255dXVydWlcIDsKK+Wkp+idmeidoCA+IG9va291bW9yaVwgOwor54Sh5oqV56WoID4gbXV0b3VoeW91XCA7CivmjIfkuoblm7MgPiBzaGlyeW91enVcIDsKK+mBqeW/nOaApyA+IHRla2lvdXNlaVwgOwor5Zue6YCB6LuKID4ga2Fpc291c2hhXCA7CivmvKvmiY3luKsgPiBtYW56YWlzaGlcIDsKK+iKseeBq+W4qyA+IGhhbmFiaXNoaVwgOwor5LqL5qWt56iOID4gamlneW91emVpXCA7Civlj47lrrnmiYAgPiBzaHV1eW91am9cIDsKK+WbveeSveabuCA+IGtva3VqaXNob1wgOwor5oSf6Kaa5ZmoID4ga2Fua2FrdWtpXCA7CivmlZnogrLosrsgPiBreW91aWt1aGlcIDsKK+WbuuWumue1piA+IGtvdGVpa3l1dVwgOwor5bGV6Kan5LyaID4gdGVucmFua2FpXCA7CivkuqTku6PliLYgPiBrb3V0YWlzZWlcIDsKK+W3oeimluiJhyA+IGp1bnNoaXRlaVwgOwor5beh6KaW6Ii5ID4ganVuc2hpc2VuXCA7CivmsY7plqLmlbAgPiBoYW5rYW5zdXVcIDsKK+WFqOS6uueUnyA+IHplbmppbnNlaVwgOwor5pat5by35bqmID4gZGFua3lvdWRvXCA7Civlh6blpbPkvZwgPiBzaG9qb3Nha3VcIDsKK+WAi+aAp+eahCA+IGtvc2VpdGVraVwgOwor5YWo6Z+z6ZqOID4gemVuJydvbmthaVwgOwor5Y+N5Lmx6ICFID4gaGFucmFuc2hhXCA7Civou73pn7Pmpb0gPiBrZWlvbmdha3VcIDsKK+mRv+WyqeapnyA+IHNha3VnYW5raVwgOwor5Zue5b6p5pyfID4ga2FpZnVrdWtpXCA7CivkuI3lkIjmoLwgPiBmdWdvdWtha3VcIDsKK+WRqOazouioiCA+IHNodXVoYWtlaVwgOwor5LiN5Y+v5qygID4gZnVrYWtldHN1XCA7CivnoazljJbnl4cgPiBrb3VrYXNob3VcIDsKK+mAhuWKueaenCA+IGd5YWtrb3VrYVwgOwor5LiA562J5Zu9ID4gaXR0b3Vrb2t1XCA7CivlhajlsIHlnLAgPiB6ZW5ob3VjaGlcIDsKK+WIhumFjemHkSA+IGJ1bnBhaWtpblwgOwor5Zue6YGK6Ii5ID4ga2FpeXV1c2VuXCA7CivlhazkvJrloIIgPiBrb3VrYWlkb3VcIDsKK+eEoeihqOaDhSA+IG11aHlvdWpvdVwgOwor5rC06aSD5a2QID4gc3VpZ3lvdXphXCA7CivpoqjlnJ/nl4UgPiBmdXVkb2J5b3VcIDsKK+mAg+mBv+eahCA+IHRvdWhpdGVraVwgOwor5Y+k5paH5a2mID4ga29idW5nYWt1XCA7CivlhKrnrYnnlJ8gPiB5dXV0b3VzZWlcIDsKK+WbuuWumuelqCA+IGtvdGVpaHlvdVwgOwor5a++5ZCR6LuKID4gdGFpa291c2hhXCA7Civkuovmpa3nlYwgPiBqaWd5b3VrYWlcIDsKK+aJueWIpOeahCA+IGhpaGFudGVraVwgOwor5aSp5Zyw5Lq6ID4gdGVuY2hpamluXCA7CivooYDntbHmm7ggPiBrZXR0b3VzaG9cIDsKK+S4reS6jOmajiA+IGNodXVuaWthaVwgOwor5bGx6JGh6JCEID4geWFtYWJ1ZG91XCA7Civpu4TpgZPpnaIgPiBrb3Vkb3VtZW5cIDsKK+WPl+mbo+mAsSA+IGp1bmFuc2h1dVwgOwor5bCK5Y6z5q27ID4gc29uZ2Vuc2hpXCA7CivogIPlj6TlraYgPiBrb3Vrb2dha3VcIDsKK+S/nemZuuiovCA+IGhva2Vuc2hvdVwgOwor6auY5YiG5a2QID4ga291YnVuc2hpXCA7CivlhqXliqDph5EgPiBteW91Z2FraW5cIDsKK+WGheWcsOexsyA+IG5haWNoaW1haVwgOwor5p6v6JGJ5YmkID4ga2FyZWhhemFpXCA7Civmi5vlvoXml6UgPiBzaG91dGFpYmlcIDsKK+iqk+mhmOaoqSA+IHNlaWdhbmtlblwgOwor5oSb5Zu96ICFID4gYWlrb2t1c2hhXCA7CivoqLTpoZjkurogPiBzb2dhbicnbmluXCA7CivpoJjkuovppKggPiByeW91amlrYW5cIDsKK+S4u+eKr+iAhSA+IHNodWhhbnNoYVwgOwor6Ziy6K235aOBID4gYm91Z29oZWtpXCA7Civos4fph5HmupAgPiBzaGlraW5nZW5cIDsKK+m8oOWSrOeXhyA+IHNva291c2hvdVwgOwor5LiJ6YeN55uXID4gc2FuanV1dG91XCA7CivpgKPkvZPlvaIgPiByZW50YWlrZWlcIDsKK+ePvuautemajiA+IGdlbmRhbmthaVwgOwor5oiQ5bm06ICFID4gc2VpbmVuc2hhXCA7Civph5Hop6PnpoEgPiBraW5rYWlraW5cIDsKK+e+veWtkOeqgSA+IGhhbmV0c3VraVwgOwor5rSX5r+v57KJID4gc2VudGFrdWtvXCA7CivlhYnljJblraYgPiBrb3VrYWdha3VcIDsKK+i+suWtpumDqCA+IG5vdWdha3VidVwgOwor5Li75Lu75Yi2ID4gc2h1bmluc2VpXCA7CivoiJ7ouI/mnI0gPiBidXRvdWZ1a3VcIDsKK+e1jOmok+irliA+IGtlaWtlbnJvblwgOwor57WM6aiT6KuHID4ga2Vpa2VuZGFuXCA7Civmk6bpgY7lgrcgPiBzYWtrYXNob3VcIDsKK+WGjeijveWTgSA+IHNhaXNlaWhpblwgOwor5Zub6YeN5aWPID4gc2hpanV1c291XCA7Civnm7jlr77lgKQgPiBzb3V0YWljaGlcIDsKK+avjeWtkOWFsSA+IGJvc2hpdG9tb1wgOwor6YmE54Gr5be7ID4gdGVra2FtYWtpXCA7Civoi7HkvZzmlocgPiBlaXNha3VidW5cIDsKK+aIpui7iuWFtSA+IHNlbnNoYWhlaVwgOwor5YaN5oqV56i/ID4gc2FpdG91a291XCA7CivmlZnppIrpg6ggPiBreW91eW91YnVcIDsKK+eri+azleaoqSA+IHJpcHBvdWtlblwgOwor5aal5Y2U54K5ID4gZGFreW91dGVuXCA7Civpm7Lku5nlsrMgPiB1bnplbmRha2VcIDsKK+WPl+mgmOabuCA+IGp1cnlvdXNob1wgOwor5LiN5rS75YyWID4gZnVrYXRzdWthXCA7Civmlofnq6Doqp4gPiBidW5zaG91Z29cIDsKK+mdkuS/oeWPtyA+IGFvc2hpbmdvdVwgOwor5pmC6KiI55q/ID4gdG9rZWl6YXJhXCA7Civlub3lhqXnlYwgPiB5dXVtZWlrYWlcIDsKK+Wft+ihjOWQjyA+IHNoaWtrb3VyaVwgOwor562J6auY57eaID4gdG91a291c2VuXCA7CivntZ7pppblj7AgPiBrb3VzaHVkYWlcIDsKK+egtOaTpumfsyA+IGhhc2F0c3VvblwgOwor6YCB5Y+X5L+hID4gc291anVzaGluXCA7CivkuIDnpZ7oq5YgPiBpc3NoaW5yb25cIDsKK+edgOmBk+alvSA+IGtpZG91cmFrdVwgOwor5piO5b6M5bm0ID4gbXlvdWdvbmVuXCA7Civms5Xli5nnnIEgPiBob3VtdXNob3VcIDsKK+mFtee0oOWtpiA+IGtvdXNvZ2FrdVwgOwor5re35ZCI6YWSID4ga29uZ291c2h1XCA7Civlm7Plg4/lraYgPiB6dXpvdWdha3VcIDsKK+WlieWKoOW4syA+IGhvdWdhY2hvdVwgOwor5oSf5ZiG6KmeID4ga2FudGFuc2hpXCA7CivliY3lo7LliLggPiBtYWV1cmlrZW5cIDsKK+W/l+mhmOWFtSA+IHNoaWdhbmhlaVwgOwor5Y+N5bCE5YWJID4gaGFuc2hha291XCA7Civnmq7ntLDlt6UgPiBrYXdhemFpa3VcIDsKK+W+qeawtOWZqCA+IGZ1a3VzdWlraVwgOwor6Zai6YCj5oCnID4ga2FucmVuc2VpXCA7CivntbHoqp7lraYgPiB0b3Vnb2dha3VcIDsKK+aZtOecvOiAhSA+IHNlaWdhbnNoYVwgOwor6Kyb5ryU5paZID4ga291ZW5yeW91XCA7CivmlazogIHkvJogPiBrZWlyb3VrYWlcIDsKK+aZgumWk+i7uCA+IGppa2FuamlrdVwgOwor5Y+N5a++5YWaID4gaGFudGFpdG91XCA7CivmkK3kuZfogIUgPiB0b3Vqb3VzaGFcIDsKK+ekvuawkeWFmiA+IHNoYW1pbnRvdVwgOwor57We6aaW5YiRID4ga291c2h1a2VpXCA7CivlibXlu7rogIUgPiBzb3VrZW5zaGFcIDsKK+acgOWkp+mZkCA+IHNhaWRhaWdlblwgOwor5qWT5a2Q6aaZID4gZnV1c2hpa291XCA7Civmt7fmiJDlsqkgPiBrb25zZWlnYW5cIDsKK+e0meeymOWcnyA+IGthbWluZW5kb1wgOwor5p2h5Lu25paHID4gam91a2VuYnVuXCA7CivmhI/orZjkvZMgPiBpc2hpa2l0YWlcIDsKK+engeS8gealrSA+IHNoaWtpZ3lvdVwgOwor56m65qih5qeYID4gc29yYW1veW91XCA7CivlhazmnInmnpcgPiBrb3V5dXVyaW5cIDsKK+WxseawtOalvCA+IHNhbnN1aXJvdVwgOwor5a+E55WZ5ZywID4ga2lyeXV1Y2hpXCA7Civmlq3liZvmgKcgPiBkYW5nb3VzZWlcIDsKK+epuuWFg+awlyA+IGthcmFnZW5raVwgOwor5omT566X55qEID4gZGFzYW50ZWtpXCA7CivpgIDolLXlk4EgPiB0YWl6b3VoaW5cIDsKK+W9semfv+WcjyA+IGVpa3lvdWtlblwgOwor55yf5ZaE576OID4gc2hpbnplbmJpXCA7Civku7Lkv53ogIUgPiBjaHV1aG9zaGFcIDsKK+aJi+ihk+ihoyA+IHNodWp1dHN1aVwgOwor5Lq66ZaT5oSbID4gbmluZ2VuJydhaVwgOwor55CG55+l55qEID4gcmljaGl0ZWtpXCA7CivnkKXnj4DoibIgPiBrb2hha3Vpcm9cIDsKK+W+oeiUreanmCA+IG9rYWdlc2FtYVwgOwor5q+b57Sw566hID4gbW91c2Fpa2FuXCA7Civnmb3og6HpursgPiBzaGlyb2dvbWFcIDsKK+S4u+S6uuWFrCA+IHNodWppbmtvdVwgOwor5Lq66ZaT5oCnID4gbmluZ2Vuc2VpXCA7CivljZjlrZTpoZ4gPiB0YW5rb3VydWlcIDsKK+WQjOWKtOiAhSA+IGRvdXJvdXNoYVwgOwor5Y2z5pmC5oCnID4gc29rdWppc2VpXCA7CivkubPlkZHlhZAgPiBjaGlub21pZ29cIDsKK+S4jeW+s+a8oiA+IGZ1dG9rdWthblwgOwor6YGt6YGH5oimID4gc291Z3V1c2VuXCA7Civlj4jlrrbmnaUgPiBtYXRhZ2VyYWlcIDsKK+ato+abuOazlSA+IHNlaXNob2hvdVwgOwor54us6Ieq5oCnID4gZG9rdWppc2VpXCA7CivlvIHosqHlpKkgPiBiZW56YWl0ZW5cIDsKK+WLpOWLmeWFiCA+IGtpbm11c2FraVwgOwor5oyB5LmF5oimID4gamlreXV1c2VuXCA7Civph43opoHoppYgPiBqdXV5b3VzaGlcIDsKK+epuuaihembqCA+IGthcmF0c3V5dVwgOwor5re35oiQ5ZujID4ga29uc2VpZGFuXCA7Civngavlj6Plo4EgPiBrYWtvdWhla2lcIDsKK+aZgumWk+ihqCA+IGppa2FuaHlvdVwgOwor56CC5Yip6YGTID4gamFyaW1pY2hpXCA7CivkvJroqIjlrpggPiBrYWlrZWlrYW5cIDsKK+izpOalreWppiA+IHNlbmd5b3VmdVwgOwor57WM6aiT6ICFID4ga2Vpa2Vuc2hhXCA7Civpn5Plm73oqp4gPiBoYW5rb2t1Z29cIDsKK+aVmeadkOiyuyA+IGt5b3V6YWloaVwgOwor5Yud5Yip6ICFID4gc2hvdXJpc2hhXCA7CivmvZzkvI/mnJ8gPiBzZW5wdWt1a2lcIDsKK+Wkp+Wbo+WGhiA+IGRhaWRhbicnZW5cIDsKK+WNiOWJjeanmCA+IGdvemVuc2FtYVwgOwor5rW35r2u6Z+zID4ga2FpY2hvdW9uXCA7CivmraPniq/ogIUgPiBzZWloYW5zaGFcIDsKK+WPr+Wcp+aApyA+IGthYXRzdXNlaVwgOwor6Ii55aSn5belID4gZnVuYWRhaWt1XCA7CivlnJ/lnLDmn4QgPiB0b2NoaWdhcmFcIDsKK+eZu+iIt+ekvCA+IHRvdWdlbnJlaVwgOwor5pS/5bqc562LID4gc2VpZnVzdWppXCA7CivmtLvmgKfliaQgPiBrYXNzZWl6YWlcIDsKK+WPjeS9k+WItiA+IGhhbnRhaXNlaVwgOwor6Je76I+M6aGeID4gc291a2lucnVpXCA7Civmu5Hnn7PnsokgPiBrYXNzZWtpa29cIDsKK+e3qeihneWZqCA+IGthbnNob3VraVwgOwor6bOp57696ImyID4gaGF0b2JhaXJvXCA7CivpoZXlvq7pj6EgPiBrZW5iaWt5b3VcIDsKK+a4rOWumuWZqCA+IHNva3V0ZWlraVwgOwor5ZCN5bqX6KGXID4gbWVpdGVuZ2FpXCA7CivliKnkvJHoibIgPiByaWt5dXVpcm9cIDsKK+WbveS6i+eKryA+IGtva3VqaWhhblwgOwor5re35oiQ5ZOBID4ga29uc2VpaGluXCA7CivliIbphY3ogIUgPiBidW5wYWlzaGFcIDsKK+WNiumAj+aYjiA+IGhhbnRvdW1laVwgOwor5YiG5rC057eaID4gYnVuc3Vpc2VuXCA7CivpgYrmiK/nmoQgPiB5dXVnaXRla2lcIDsKK+i/keimluecvCA+IGtpbnNoaWdhblwgOwor5Li76KyA6ICFID4gc2h1Ym91c2hhXCA7CivkvJroqIjlo6sgPiBrYWlrZWlzaGlcIDsKK+WIneW5tOWFtSA+IHNob25lbmhlaVwgOwor5ZCM5bm06LypID4gZG91bmVucGFpXCA7Civnj43nhKHpoZ4gPiBjaGlubXVydWlcIDsKK+euneWPo+S7pCA+IGthbmtvdXJlaVwgOwor5ZCI5rOV5oCnID4gZ291aG91c2VpXCA7Civnt4/poJjkuosgPiBzb3VyeW91amlcIDsKK+W3nuaUv+W6nCA+IHNodXVzZWlmdVwgOwor5ZWG5YuZ5a6YID4gc2hvdW11a2FuXCA7Civlv5zmjqXplpMgPiBvdXNldHN1bWFcIDsKK+WPguS8muiAhSA+IHNhbmthaXNoYVwgOwor5LqU5Lq657WEID4gZ29uaW5ndW1pXCA7Civpu4TmsLTmmbYgPiBraXp1aXNob3VcIDsKK+WGheijj+anmCA+IGRhaXJpc2FtYVwgOwor5aSn6KGG5YyWID4gdGFpc2h1dWthXCA7Civph43lpKfmgKcgPiBqdXVkYWlzZWlcIDsKK+WkluWbveiqniA+IGdhaWtva3Vnb1wgOwor5Yui5Yqb5a62ID4gc2Vpcnlva2thXCA7Civlo7Dmpb3lrrYgPiBzZWlnYWt1a2FcIDsKK+ijvemdtOalrSA+IHNlaWthZ3lvdVwgOwor566x6aas6LuKID4gaGFrb2Jhc2hhXCA7Civlrq7lhoXnnIEgPiBrdW5haXNob3VcIDsKK+S6i+alreaJgCA+IGppZ3lvdXNob1wgOwor56m/5bGx55SyID4gc2VuemFua291XCA7Civoh6jmuK/nt5ogPiByaW5rb3VzZW5cIDsKK+WUr+WQjeirliA+IHl1aW1laXJvblwgOwor5pS56YCg6LuKID4ga2Fpem91c2hhXCA7Civpu4Tph5Hlm70gPiBvdWdvbmtva3VcIDsKK+iKi+e+iue+uSA+IGltb3lvdWthblwgOwor5pu055Sf5ZOBID4ga291c2VpaGluXCA7Civoiovnvornvq4gPiBpbW95b3VrYW5cIDsKK+W6g+Wwj+i3ryA+IGhpcm9rb3VqaVwgOwor56m66L+U5LqLID4gc29yYWhlbmppXCA7CivohZDmpI3lnJ8gPiBmdXNob2t1ZG9cIDsKK+asoeWWhOetliA+IGppemVuc2FrdVwgOwor6YGg55y86Y+hID4gdG9vbWVnYW5lXCA7CivlibXpgKDogIUgPiBzb3V6b3VzaGFcIDsKK+S8kembu+aXpSA+IGt5dXVkZW5iaVwgOwor5p2/6ZaA5bqXID4gaGFubW9udGVuXCA7CivlsI7lhaXpg6ggPiBkb3VueXV1YnVcIDsKK+emheWVj+etlCA+IHplbm1vbmRvdVwgOwor6KSH5pWw5YCLID4gZnVrdXN1dWtvXCA7Civnm7LlrabmoKEgPiBtb3VnYWtrb3VcIDsKK+ipnuiPr+mbhiA+IHNoaWthc2h1dVwgOwor56CU5L+u6KqyID4ga2Vuc2h1dWthXCA7CivlvL7mgKfkvZMgPiBkYW5zZWl0YWlcIDsKK+eMruWRiOacrCA+IGtlbnRlaWJvblwgOwor5bC+6ZW36baPID4gb25hZ2Fkb3JpXCA7CivmlL7pgIHntrIgPiBob3Vzb3Vtb3VcIDsKK+m6u+mFlOiWrCA+IG1hc3VpeWFrdVwgOwor5Y2D5bm057SAID4gc2VuJyduZW5raVwgOwor5YOn5bi95byBID4gc291Ym91YmVuXCA7CivlpKrpvJPohbkgPiB0YWlrb2JhcmFcIDsKK+WJjeijheegsiA+IHplbnNvdWhvdVwgOwor5YiG6YGj6ZqKID4gYnVua2VudGFpXCA7CivlkLnlpY/ogIUgPiBzdWlzb3VzaGFcIDsKK+WlveinkuWutiA+IGtvdWtha3VrYVwgOwor5oKq5aSp5YCZID4gYWt1dGVua291XCA7CivmjqjpgLLmqZ8gPiBzdWlzaGlua2lcIDsKK+mJpOWNgeWtlyA+IGthZ2lqdXVqaVwgOwor5Lmx5rCX5rWBID4gcmFua2lyeXV1XCA7Civlhrflh43liaQgPiByZWl0b3V6YWlcIDsKK+WIneWvvumdoiA+IHNob3RhaW1lblwgOwor5pyq5Y+O6LyJID4gbWlzaHV1c2FpXCA7Civll5zlpb3lk4EgPiBzaGlrb3VoaW5cIDsKK+eBq+eglea1gSA+IGthc2Fpcnl1dVwgOwor5oKq5aSp5L2/ID4gYWt1dGVuc2hpXCA7CivlvLfljJbnsbMgPiBreW91a2FtYWlcIDsKK+awtOmbt+iJhyA+IHN1aXJhaXRlaVwgOwor6Kaz5qWT5LyaID4ga2FucHV1a2FpXCA7CivkvZPpqJPoq4cgPiB0YWlrZW5kYW5cIDsKK+eEoeaEn+immiA+IG11a2Fua2FrdVwgOwor576k6YCf5bqmID4gZ3Vuc29rdWRvXCA7Civpm7vnt4/noJQgPiBkZW5zb3VrZW5cIDsKK+S4jeeiuuWumiA+IGZ1a2FrdXRlaVwgOwor55m955m+5ZCIID4gc2hpcmF5dXJpXCA7CivoiJ7ouIrliocgPiBidXlvdWdla2lcIDsKK+eBq+WPo+S4mCA+IGtha291a3l1dVwgOwor5LiN5q2j56K6ID4gZnVzZWlrYWt1XCA7Civpmb3lrZDnt5ogPiB5b3VzaGlzZW5cIDsKK+aZgumWk+e1piA+IGppa2Fua3l1dVwgOwor5YiG5rC055WMID4gYnVuc3Vpa2FpXCA7CivkubHlj43lsIQgPiByYW5oYW5zaGFcIDsKK+ino+etlOashCA+IGthaXRvdXJhblwgOwor6a2a6Zu36ImHID4gZ3lvcmFpdGVpXCA7CivlhazmnInlnLAgPiBrb3V5dXVjaGlcIDsKK+asuueenueahCA+IGdpbWFudGVraVwgOwor5piO556t5bqmID4gbWVpcnlvdWRvXCA7CivkvJroqIjkv4IgPiBrYWlrZWlrZWlcIDsKK+i8uOWFpeeojiA+IHl1bnl1dXplaVwgOwor5LiN5b+D5b6XID4gZnVrb2tvcm9lXCA7Civkuozmpa3lnLAgPiBuaWd5b3VjaGlcIDsKK+WNmOWtkOirliA+IHRhbnNoaXJvblwgOwor6Ki85oug6YeRID4gc2hvdWtva2luXCA7CivnlJ/mvJTlpY8gPiBuYW1hZW5zb3VcIDsKK+W+ruWIhuWtpiA+IGJpYnVuZ2FrdVwgOwor5bCC5b6T6ICFID4gc2VuanV1c2hhXCA7Civku5nlj7Dkvq8gPiBzZW5kYWlrb3VcIDsKK+WFhOW8n+aEmyA+IGt5b3VkYWlhaVwgOwor5LiH6I+v6Y+hID4gbWFuZ2VreW91XCA7CivnpoHmvIHmnJ8gPiBraW5yeW91a2lcIDsKK+S6uumWk+WDjyA+IG5pbmdlbnpvdVwgOwor5Zue5biw55qEID4ga2Fpa2l0ZWtpXCA7CivluILmsJHnqI4gPiBzaGltaW56ZWlcIDsKK+WvjOWjq+mhjSA+IGZ1amliaXRhaVwgOwor5YWJ6YCf5bqmID4ga291c29rdWRvXCA7CivplovnpajmiYAgPiBrYWloeW91am9cIDsKK+S9k+iCsumkqCA+IHRhaWlrdWthblwgOwor5aSJ6Kq/5rOiID4gaGVuY2hvdWhhXCA7CivlkIznm5/ou40gPiBkb3VtZWlndW5cIDsKK+WRiuiotOS6uiA+IGtva3Vzb25pblwgOwor5a2m5aOr6ZmiID4gZ2FrdXNoaWluXCA7CivlgKvnkIbnmoQgPiByaW5yaXRla2lcIDsKK+eCuem8u+iWrCA+IHRlbmJpeWFrdVwgOwor5oqV5pu45qyEID4gdG91c2hvcmFuXCA7CivoqLToqJ/ms5UgPiBzb3Nob3Vob3VcIDsKK+Wbm+WNiuWIhiA+IHNoaWhhbmJ1blwgOwor5ZC46Z+z5p2QID4ga3l1dW9uemFpXCA7CivliJ3kvZPpqJMgPiBzaG90YWlrZW5cIDsKK+i8uOWFpeebpCA+IHl1bnl1dWJhblwgOwor5LiN55+l54GrID4gc2hpcmFudWhpXCA7CivljbXntLDog54gPiByYW5zYWlib3VcIDsKK+S6jOalteWMliA+IG5pa3lva3VrYVwgOwor5Y2X5Lqs6YygID4gbmFua2luam91XCA7Civps6nmmYLoqIggPiBoYXRvZG9rZWlcIDsKK+WTuuS5s+eTtiA+IGhvbnl1dWJpblwgOwor6KW/5rSL6aKoID4gc2VpeW91ZnV1XCA7Civml6Loo73mnI0gPiBraXNlaWZ1a3VcIDsKK+mHjuWkluWKhyA+IHlhZ2FpZ2VraVwgOwor5pmu6YGN55qEID4gZnVoZW50ZWtpXCA7Civkuovmpa3lm6MgPiBqaWd5b3VkYW5cIDsKK+Wwj+W9ueS6uiA+IGtveWFrdW5pblwgOwor6bOl5aqS6IqxID4gY2hvdWJhaWthXCA7Civoh6rmsrvpoJggPiBqaWNoaXJ5b3VcIDsKK+egtOWjiueahCA+IGhha2FpdGVraVwgOwor56qu5o6q5aSnID4ga3l1dXNvZGFpXCA7CivpgZTno6joiLkgPiBkYXJ1bWFzZW5cIDsKK+WGheWcqOaApyA+IG5haXphaXNlaVwgOwor5bCP6I2354mpID4ga29uaW1vdHN1XCA7Civml6Xns7vkurogPiBuaWtrZWlqaW5cIDsKK+eyvuelnuenkSA+IHNlaXNoaW5rYVwgOwor5LiA5ZCI55uuID4gaWNoaWdvdW1lXCA7CivkvY/lsYXot6EgPiBqdXVreW9hdG9cIDsKK+WGjeaKl+W8gSA+IHNhaWtvdWJlblwgOwor6L6y5L2c5qWtID4gbm91c2FneW91XCA7CivonqLlhYnnh4ggPiBrZWlrb3V0b3VcIDsKK+S7mOW5tOihqCA+IGZ1bmVucHlvdVwgOwor5q2j6Kqk6KGoID4gc2VpZ29oeW91XCA7Civlm5vovKrou4ogPiB5b25yaW5zaGFcIDsKK+mHkeexs+ezliA+IGtvbnBlaXRvdVwgOwor5LiJ6YeN5aWPID4gc2FuanV1c291XCA7Civkv53oqLzmm7ggPiBob3Nob3VzaG9cIDsKK+WQpuWumueahCA+IGhpdGVpdGVraVwgOwor5LiN6YCj57aaID4gZnVyZW56b2t1XCA7Civmrabmlq3nmoQgPiBidWRhbnRla2lcIDsKK+WHuuepguacnyA+IHNodXNzdWlraVwgOwor5LiK5Y2K5pyfID4ga2FtaWhhbmtpXCA7CivljZjlrZDokYkgPiB0YW5zaGl5b3VcIDsKK+W+ruWIhuWVhiA+IGJpYnVuc2hvdVwgOwor576p5YWE5byfID4gZ2lreW91ZGFpXCA7CivopIfntKDmlbAgPiBmdWt1c29zdXVcIDsKK+i7ouagoeeUnyA+IHRlbmtvdXNlaVwgOwor5pi85aSc5bivID4gY2h1dXlhb2JpXCA7Civkuovku7booaggPiBqaWtlbmh5b3VcIDsKK+ieouWFieeBryA+IGtlaWtvdXRvdVwgOwor5by356Gs5rS+ID4ga3lvdWtvdWhhXCA7CivmjpLmsJfph48gPiBoYWlraXJ5b3VcIDsKK+Wls+aWh+WtlyA+IG9uJyduYW1vamlcIDsKK+eEoeaJgOWxniA+IG11c2hvem9rdVwgOwor5ZGo5rOi5pWwID4gc2h1dWhhc3V1XCA7CivnjJvnpr3poZ4gPiBtb3VraW5ydWlcIDsKK+eUn+aFi+ezuyA+IHNlaXRhaWtlaVwgOwor5pWj5paH6KmpID4gc2FuYnVuc2hpXCA7CivmoL3ln7nnqK4gPiBzYWliYWlzaHVcIDsKK+WOn+iRl+iAhSA+IGdlbmNob3NoYVwgOwor6Zu76Kmx5paZID4gZGVud2FyeW91XCA7CivmioDog73os54gPiBnaW5vdXNob3VcIDsKK+aWmemHkeaJgCA+IHJ5b3VraW5qb1wgOwor5pSv6YWN6ICFID4gc2hpaGFpc2hhXCA7CivmtJfmv6/lsYsgPiBzZW50YWt1eWFcIDsKK+WBtOi/keiAhSA+IHNva2tpbnNoYVwgOwor5a6f56S+5LyaID4gamlzc2hha2FpXCA7CivlvqHpgKPntaEgPiBnb3JlbnJha3VcIDsKK+mmmeW3neecjCA+IGthZ2F3YWtlblwgOwor54K55ru05ZmoID4gdGVudGVraWtpXCA7CivkuojlrprooaggPiB5b3RlaWh5b3VcIDsKK+W8geitt+aWmSA+IGJlbmdvcnlvdVwgOwor5Li76KaB6aeFID4gc2h1eW91ZWtpXCA7Civlr77lv5znrZYgPiB0YWlvdXNha3VcIDsKK+i8uOWFpea4ryA+IHl1bnl1dWtvdVwgOwor5ZCM5b+X5LyaID4gZG91c2hpa2FpXCA7Civov47mkoPmqZ8gPiBnZWlnZWtpa2lcIDsKK+S6uuWcsOWQjSA+IGppbmNoaW1laVwgOwor5L+d6Zm65paZID4gaG9rZW5yeW91XCA7CivlpKflkozoiosgPiB5YW1hdG9pbW9cIDsKK+mrmOWEquWFiCA+IGtvdXl1dXNlblwgOwor5pS+6YCB5rOVID4gaG91c291aG91XCA7CivnpLrlipvlm7MgPiBqaXJ5b2t1enVcIDsKK+mbquWls+mDjiA+IHl1a2lqb3JvdVwgOwor6Zu257Sw6L6yID4gcmVpc2Fpbm91XCA7CivnnJ/muIXmsLQgPiBtYXNoaW1penVcIDsKK+WKqeWkquWIgCA+IHN1a2VkYWNoaVwgOwor5YWL5bex5b+DID4ga29ra2lzaGluXCA7CivoqK3oqIjogIUgPiBzZWtrZWlzaGFcIDsKK+eEoeelnuirliA+IG11c2hpbnJvblwgOwor5pyJ6KKL6aGeID4geXV1dGFpcnVpXCA7CivkuIDmrrrpgqMgPiBpc3NldHN1bmFcIDsKK+W/g+eQhuaIpiA+IHNoaW5yaXNlblwgOwor5b6h5q205q20ID4gb3Jla2lyZWtpXCA7CivkuI3lubPnrYkgPiBmdWJ5b3Vkb3VcIDsKK+WIqeWwv+WJpCA+IHJpbnlvdXphaVwgOwor57W556mN6ZuyID4ga2Vuc2VraXVuXCA7CivniafmrYznmoQgPiBib2trYXRla2lcIDsKK+a8uOi/kee3miA+IHplbmtpbnNlblwgOwor5a2Q5a6J6LKdID4ga295YXN1a2FpXCA7Civml4Xml6XoqJggPiB0YWJpbmlra2lcIDsKK+WjsuS4iumHkSA+IHVyaWFnZWtpblwgOwor5Y+X57Wm6ICFID4ganVreXV1c2hhXCA7CivmmI7lubTluqYgPiBteW91bmVuZG9cIDsKK+S6jOaemuiIjCA+IG5pbWFpaml0YVwgOwor5LiJ6YeN5YagID4gc2FuanV1a2FuXCA7Civoqpjpm7vlrZAgPiB5dXVkZW5zaGlcIDsKK+mWouS/guipniA+IGthbmtlaXNoaVwgOwor57Sh6YyY5b2iID4gYm91c3Vpa2VpXCA7CivlpYnluaPkvb8gPiBob3VoZWlzaGlcIDsKK+mdqee0sOW3pSA+IGthd2F6YWlrdVwgOwor5biC5rCR5rOVID4gc2hpbWluaG91XCA7CivmnIDmlaznpLwgPiBzYWlrZWlyZWlcIDsKK+iLpuWtpueUnyA+IGt1Z2FrdXNlaVwgOwor5b6X5oSP5YWIID4gdG9rdWlzYWtpXCA7Civpm6jku5XluqYgPiBhbWFqaXRha3VcIDsKK+WRqOazouW4ryA+IHNodXVoYXRhaVwgOwor566h5Yi25a6YID4ga2Fuc2Vpa2FuXCA7Civnh4PmlpnosrsgPiBuZW5yeW91aGlcIDsKK+W5tOi8qeiAhSA+IG5lbnBhaXNoYVwgOwor6YeP6KiY5Y+3ID4gcnlvdWtpZ291XCA7CivnmbrlhYnkvZMgPiBoYWtrb3V0YWlcIDsKK+WNiuWGhuW9oiA+IGhhbicnZW5rZWlcIDsKK+WGhuiZq+mhniA+IGVuY2h1dXJ1aVwgOwor5oe45oOz5paHID4ga2Vzb3VidW1pXCA7CivmpJzmva7lmaggPiBrZW5jaG91a2lcIDsKK+WnieWmuee3qCA+IHNoaW1haWhlblwgOwor6KGA57OW5YCkID4ga2V0dG91Y2hpXCA7CivnhKHph43ph48gPiBtdWp1dXJ5b3VcIDsKK+mbu+ipseW4syA+IGRlbndhY2hvdVwgOwor5Y2I5YmN5LitID4gZ296ZW5jaHV1XCA7Civllrbmpa3miYAgPiBlaWd5b3VzaG9cIDsKK+exs+W4guWgtCA+IGJlaWljaGliYVwgOwor5LiN5YuV5b+DID4gZnVkb3VzaGluXCA7CivmjqjpgLLlmaggPiBzdWlzaGlua2lcIDsKK+Wwj+WIpOW9oiA+IGtvYmFuZ2F0YVwgOwor5Zue6YCB5bqXID4ga2Fpc291dGVuXCA7CivnhafmmI7lmaggPiBzaG91bWVpa2lcIDsKK+W+ueeUsuW8viA+IHRla2tvdWRhblwgOwor5a6u5YaF5bqBID4ga3VuYWljaG91XCA7CivluILmsJHmqKkgPiBzaGltaW5rZW5cIDsKK+WNg+W5tOacnyA+IHNlbicnbmVua2lcIDsKK+WNiuiIt+egsiA+IGhhbmdlbmhvdVwgOwor5qip5aiB562LID4ga2VuJydpc3VqaVwgOwor5aSJ6Zu75omAID4gaGVuZGVuc2hvXCA7Civpm7vop6PmtrIgPiBkZW5rYWlla2lcIDsKK+mbsuS4iuS6uiA+IHVuam91Yml0b1wgOwor5LiA5ZGo5bm0ID4gaXNzaHV1bmVuXCA7CivnrqHliLbloZQgPiBrYW5zZWl0b3VcIDsKK+iPr+WOs+e1jCA+IGtlZ29ua3lvdVwgOwor5a++5oOF5aCxID4gdGFpam91aG91XCA7CivmoLzlpInljJYgPiBrYWt1aGVua2FcIDsKK+aVmeiCsuWutiA+IGt5b3Vpa3VrYVwgOwor5a6J5oGv6aaZID4gYW5zb2t1a291XCA7Civnn7PpubjmsLQgPiBzZWtrZW5zdWlcIDsKK+S4jeWLieW8tyA+IGZ1YmVua3lvdVwgOwor5aGp5YyW54mpID4gZW5rYWJ1dHN1XCA7CivkuKHnlKjmqZ8gPiByeW91eW91a2lcIDsKK+W9k+S4lumiqCA+IHRvdXNlaWZ1dVwgOwor5qC85aSp5LqVID4gZ291dGVuam91XCA7CivkuK3ogJXmqZ8gPiBjaHV1a291a2lcIDsKK+S4jemBqeagvCA+IGZ1dGVra2FrdVwgOwor6YGg5b+D5YiGID4gZW5zaGluYnVuXCA7Civmma7pgJrms5UgPiBmdXRzdXVob3VcIDsKK+Wqkuafk+WJpCA+IGJhaXNlbnphaVwgOwor56C06KOC6Z+zID4gaGFyZXRzdW9uXCA7CivkuLvoprPoq5YgPiBzaHVrYW5yb25cIDsKK+S6jOeVquS9nCA+IG5pYmFuc2FrdVwgOwor55Sf5ZG957eaID4gc2VpbWVpc2VuXCA7Civnqbrlr77nqbogPiBrdXV0YWlrdXVcIDsKK+eMm+WQuembqiA+IG1vdWZ1YnVraVwgOwor6auY5bCE56CyID4ga291c2hhaG91XCA7CivkuIDmranpioAgPiBpY2hpYnVnaW5cIDsKK+emgea8geWMuiA+IGtpbnJ5b3VrdVwgOwor5aWI6Imv5rysID4gbmFyYWR6dWtlXCA7CivlvaLosaHljJYgPiBrZWlzaG91a2FcIDsKK+WGheWcsOS6uiA+IG5haWNoaWppblwgOwor55+z5Y2X6IqxID4gc2hha3VuYWdlXCA7CivlgoDlhKHluKsgPiBrYWlyYWlzaGlcIDsKK+S4gOatqemHkSA+IGljaGlidWtpblwgOwor55ep5oiR5oWiID4geWFzZWdhbWFuXCA7Civmgqrlm6DnuIEgPiBha3VpbicnbmVuXCA7CivkuI3nnKDnl4cgPiBmdW1pbnNob3VcIDsKK+mbu+ino+anvSA+IGRlbmthaXNvdVwgOwor5rOV6I+v5a6XID4gaG9ra2VzaHV1XCA7CivkuIDnnqzplpMgPiBpc3NodW5rYW5cIDsKK+ato+S4ieS9jSA+IHNob3VzYW5taVwgOwor5by+6YGT5by+ID4gZGFuZG91ZGFuXCA7Civmt7flkIjmnpcgPiBrb25nb3VyaW5cIDsKK+awtOWiqOeUuyA+IHN1aWJva3VnYVwgOwor5Lqk5piT5LyaID4ga291ZWtpa2FpXCA7Civpq5jmpYrlrZAgPiB0YWtheW91amlcIDsKK+aoqeWogeeahCA+IGtlbicnaXRla2lcIDsKK+ekvueUqOi7iiA+IHNoYXlvdXNoYVwgOwor5YiG5rC05ba6ID4gYnVuc3VpcmVpXCA7CivlrZDkvpvnlKggPiBrb2RvbW95b3VcIDsKK+imquWtneihjCA+IG95YWtvdWtvdVwgOwor55m65bCE562SID4gaGFzc2hhdG91XCA7Civmi77kuIflhoYgPiBqdXVtYW4nJ2VuXCA7Civli6TnmoflrrYgPiBraW4nJ25vdWthXCA7CivkubPljJbliaQgPiBueXV1a2F6YWlcIDsKK+i/keWcsOeCuSA+IGtpbmNoaXRlblwgOwor54Sh56u25LqJID4gbXVreW91c291XCA7CivkuqTpmpvms5UgPiBrb3VzYWlob3VcIDsKK+engeacieWcsCA+IHNoaXl1dWNoaVwgOwor5Y+C5LiO6ICFID4gc2FuJyd5b3NoYVwgOwor6aOy5paZ5rC0ID4gaW5yeW91c3VpXCA7Civnp4vml6XlkowgPiBha2liaXlvcmlcIDsKK+WMuuW9ueaJgCA+IGt1eWFrdXNob1wgOwor56uL5b+X5LydID4gcmlzc2hpZGVuXCA7CivlpKnnp6Tmo5IgPiB0ZW5iaW5ib3VcIDsKK+Wkieiqv+WZqCA+IGhlbmNob3VraVwgOwor5bCP5Yik5Z6LID4ga29iYW5nYXRhXCA7CivplqLkv4LogIUgPiBrYW5rZWlzaGFcIDsKK+Wkp+aIkOWKnyA+IGRhaXNlaWtvdVwgOwor5LqM5Lq656ewID4gbmluaW5zaG91XCA7Civlgbblg4/oppYgPiBndXV6b3VzaGlcIDsKK+WBtui5hOmhniA+IGd1dXRlaXJ1aVwgOwor5p2l6Kiq6ICFID4gcmFpaG91c2hhXCA7CivpqJLkubHnvaogPiBzb3VyYW56YWlcIDsKK+WujOaIkOWTgSA+IGthbnNlaWhpblwgOwor5Ym16YCg5oCnID4gc291em91c2VpXCA7CivmjpLmsLTnrqEgPiBoYWlzdWlrYW5cIDsKK+WPiOiri+iyoCA+IG1hdGF1a2VvaVwgOwor6YeR6Zaj5a+6ID4ga2lua2FrdWppXCA7Civoqpjpm7vkvZMgPiB5dXVkZW50YWlcIDsKK+WNl+S6rOexsyA+IG5hbmtpbm1haVwgOwor54Sh56We57WMID4gbXVzaGlua2VpXCA7CivpioDkuqTmj5sgPiBnaW5rb3VrYW5cIDsKK+S4jeW5sua4iSA+IGZ1a2Fuc2hvdVwgOwor6KO95aGp5qWtID4gc2VpZW5neW91XCA7CivmlZnkvJrlk6EgPiBreW91a2FpaW5cIDsKK+aQreS5l+WIuCA+IHRvdWpvdWtlblwgOwor6YGO56Gr6YW4ID4ga2FyeXV1c2FuXCA7CivpgYvlkb3nmoQgPiB1bm1laXRla2lcIDsKK+ims+ahnOS8miA+IGthbicnb3VrYWlcIDsKK+eEoeekvOiAhSA+IGJ1cmVpbW9ub1wgOwor5qeL5paH5rOVID4ga291YnVucG91XCA7CivmjqXov5HmiKYgPiBzZWtraW5zZW5cIDsKK+eEoeazleiAhSA+IG11aG91bW9ub1wgOwor5LiN6YGp5b2TID4gZnV0ZWtpdG91XCA7CivnhKHmsLTpjYsgPiBtdXN1aW5hYmVcIDsKK+aciOe1puaXpSA+IGdla2t5dXViaVwgOwor5pal5YCZ6ZqKID4gc2Vra291dGFpXCA7CivlibXmpa3osrsgPiBzb3VneW91aGlcIDsKK+mHjeimgeaApyA+IGp1dXlvdXNlaVwgOwor57eP5aOy5LiKID4gc291dXJpYWdlXCA7CivljYHlhobnjokgPiBqdXVlbmRhbWFcIDsKK+WAq+eQhuWtpiA+IHJpbnJpZ2FrdVwgOwor5LiA6YCx6ZaTID4gaXNzaHV1a2FuXCA7CivnpL7lhoXloLEgPiBzaGFuYWlob3VcIDsKK+S9j+WuheiyuyA+IGp1dXRha3VoaVwgOwor5bGI5Zyw5oCnID4ga3V0Y2hpc2VpXCA7Civlm73mnInljJYgPiBrb2t1eXV1a2FcIDsKK+mAmumiqOapnyA+IHRzdXVmdXVraVwgOwor5a625bGL5pW3ID4gaWV5YXNoaWtpXCA7CivlsbHmpJLprZogPiBzYW5zaG91dW9cIDsKK+WFrOaWh+abuCA+IGtvdWJ1bnNob1wgOwor5rG65a6a6KuWID4ga2V0dGVpcm9uXCA7Civkv53oqLzkurogPiBob3Nob3VuaW5cIDsKK+ayv+a1t+W3niA+IGVua2Fpc2h1dVwgOwor5LiN6YGT5b6zID4gZnVkb3V0b2t1XCA7Civkvr/kuZfogIUgPiBiaW5qb3VzaGFcIDsKK+S4gOWNh+eTtiA+IGlzc2hvdWJpblwgOwor56m66IW55pmCID4ga3V1ZnVrdWppXCA7CivliY3ooZvmiKYgPiB6ZW4nJ2Vpc2VuXCA7CivmhJ/mg4Xoq5YgPiBrYW5qb3Vyb25cIDsKK+aUr+mFjeaoqSA+IHNoaWhhaWtlblwgOwor5Zuj5a2Q6by7ID4gZGFuZ29iYW5hXCA7Civlhajoq5bngrkgPiB6ZW5yb250ZW5cIDsKK+mBk+WMluiAhSA+IGRvdWtlbW9ub1wgOwor6KW/5rSL57SZID4gc2VpeW91c2hpXCA7Civmm7joqJjplbcgPiBzaG9raWNob3VcIDsKK+W/jOiogOiRiSA+IGltaWtvdG9iYVwgOwor6Zuj5LqL5qWtID4gbmFuamlneW91XCA7Civku5jluK/nmoQgPiBmdXRhaXRla2lcIDsKK+mrmOmjm+i7iiA+IHRha2FiaXNoYVwgOwor6Zu76Kmx5LitID4gZGVud2FjaHV1XCA7Civpu4TpgZPluK8gPiBrb3Vkb3V0YWlcIDsKK+mrmOagoeeUnyA+IGtvdWtvdXNlaVwgOwor6IK65rC06IWrID4gaGFpc3Vpc2h1XCA7CivllYbnlKjoqp4gPiBzaG91eW91Z29cIDsKK+eVpeiomOazlSA+IHJ5YWtraWhvdVwgOwor6JGh6JCE5qOaID4gYnVkb3VkYW5hXCA7CivlpYnlhazkurogPiBob3Vrb3VuaW5cIDsKK+S7j+azleWDpyA+IGJ1cHBvdXNvdVwgOwor5L2T6IKy56WtID4gdGFpaWt1c2FpXCA7Civmma7pgJrlvL4gPiBmdXRzdXVkYW5cIDsKK+aIpuS4rea0viA+IHNlbmNodXVoYVwgOwor6auY5bGx5bivID4ga291emFudGFpXCA7CivmgKfniq/nvaogPiBzZWloYW56YWlcIDsKK+awkeiKuOWTgSA+IG1pbmdlaWhpblwgOwor6Kaq5Lya56S+ID4gb3lhZ2Fpc2hhXCA7Civlj4Los4DluLMgPiBzYW5nYWNob3VcIDsKK+S4iei8qui7iiA+IHNhbnJpbnNoYVwgOwor55Sj56eR5a2mID4gc2Fua2FnYWt1XCA7Civou4rlhoXnga8gPiBzaGFuYWl0b3VcIDsKK+WMu+WLmeWupCA+IGltdXNoaXRzdVwgOwor5rC457aa5oCnID4gZWl6b2t1c2VpXCA7CivmjqLmpJzpmoogPiB0YW5rZW50YWlcIDsKK+Wun+WLmeWutiA+IGppdHN1bXVrYVwgOwor5b+F6aCI5qC8ID4gaGlzc3VrYWt1XCA7CivlpKflkozmrYwgPiB5YW1hdG91dGFcIDsKK+S4uOWkquadkCA+IG1hcnV0YXphaVwgOwor56CU5L+u5omAID4ga2Vuc2h1dWpvXCA7CivkuIDliLnpgqMgPiBpc3NldHN1bmFcIDsKK+WFrOaYjuWFmiA+IGtvdW1laXRvdVwgOwor57W156m66KiAID4gZXNvcmFnb3RvXCA7CivnvoXph53nm6QgPiByYXNoaW5iYW5cIDsKK+WZqOmHj+S6uiA+IGtpcnlvdWppblwgOwor5Zu96Zqb6KqeID4ga29rdXNhaWdvXCA7Civlm5vovrrlvaIgPiBzaGloZW5rZWlcIDsKK+eZuuS9nOeahCA+IGhvc3NhdGVraVwgOwor6IG+5a2m5qChID4gcm91Z2Fra291XCA7CivmjoPmtbfoiYcgPiBzb3VrYWl0ZWlcIDsKK+WPguiAg+abuCA+IHNhbmtvdXNob1wgOwor5YyW57Kn5ZOBID4ga2VzaG91aGluXCA7CivlnLDlubPpnaIgPiBjaGloZWltZW5cIDsKK+S9juiDveiAhSA+IHRlaW5vdXNoYVwgOwor5YWI6aiT6KuWID4gc2Vua2Vucm9uXCA7Civpm4boi7HnpL4gPiBzaHV1ZWlzaGFcIDsKK+eUqOawtOaxoCA+IHlvdXN1aWNoaVwgOwor5Y+X6Zuj5YqHID4ganVuYW5nZWtpXCA7CivlgInluqvmpa0gPiBzb3Vrb2d5b3VcIDsKK+WNg+WFreacrCA+IHNlbnJvcHBvblwgOwor6Ly45YWl5ZOBID4geXVueXV1aGluXCA7CivljJbnsqflj7AgPiBrZXNob3VkYWlcIDsKK+WhqeWKoOa4myA+IHNoaW9rYWdlblwgOwor6JuN5YWJ54eIID4ga2Vpa291dG91XCA7CivlqJjlrZDou40gPiBqb3VzaGlndW5cIDsKK+iHquayu+ecgSA+IGppY2hpc2hvdVwgOwor5bC+6ZW354y/ID4gb25hZ2F6YXJ1XCA7CivorabpmLLlm6MgPiBrZWlib3VkYW5cIDsKK+ato+ino+iAhSA+IHNlaWthaXNoYVwgOwor6ZmQ5bqm6aGNID4gZ2VuZG9nYWt1XCA7Civlho3mtJfnpLwgPiBzYWlzZW5yZWlcIDsKK+WnieWmueagoSA+IHNoaW1haWtvdVwgOwor5qC86ZeY5oqAID4ga2FrdXRvdWdpXCA7CivpnZLmmKXmnJ8gPiBzZWlzaHVua2lcIDsKK+mAn+iomOmMsiA+IHNva2tpcm9rdVwgOwor5YSq5Yud6aasID4geXV1c2hvdWJhXCA7CivmsJflgJnlraYgPiBraWtvdWdha3VcIDsKK+eXhemZouiIuSA+IGJ5b3VpbnNlblwgOwor5Zu95paH56eRID4ga29rdWJ1bmthXCA7Civmi4XlvZPogIUgPiB0YW50b3VzaGFcIDsKK+adpeWgtOiAhSA+IHJhaWpvdXNoYVwgOwor6JuN5YWJ54GvID4ga2Vpa291dG91XCA7CivmjpLmsLTmup0gPiBoYWlzdWlrb3VcIDsKK+Wzu+S4i+WJpCA+IHNodW5nZXphaVwgOwor5aSW5ZWG6YOoID4gZ2Fpc2hvdWJ1XCA7CivmraPmlrnlvaIgPiBzZWlob3VrZWlcIDsKK+aciOe1jOW4ryA+IGdla2tlaXRhaVwgOwor6KeS6KGM54GvID4ga2FrdWFuZG9uXCA7CivoqrLlvrTph5EgPiBrYWNob3VraW5cIDsKK+S6pOaPm+iIuSA+IGtvdWthbnNlblwgOwor5L+d566h6Ki8ID4gaG9rYW5zaG91XCA7Civmt7vliqDniakgPiB0ZW5rYW1vbm9cIDsKK+S4gOWIhumKgCA+IGljaGlidWdpblwgOwor5p2l6Kaz6ICFID4gcmFpa2Fuc2hhXCA7CivntrrnvoXmmJ8gPiBraXJhYm9zaGlcIDsKK+WxseWys+mDqCA+IHNhbmdha3VidVwgOwor55m65bGV5oCnID4gaGF0dGVuc2VpXCA7CivkuIDliIbph5EgPiBpY2hpYnVraW5cIDsKK+WNlOWumuahiCA+IGt5b3V0ZWlhblwgOwor5rOo5bCE5ZmoID4gY2h1dXNoYWtpXCA7Civlj7jms5XmqKkgPiBzaGlob3VrZW5cIDsKK+ato+aUu+azlSA+IHNlaWtvdWhvdVwgOwor5omL5ouN5a2QID4gdGVieW91c2hpXCA7CivnpL7kvJrpnaIgPiBzaGFrYWltZW5cIDsKK+ixoeearueXhSA+IHpvdWhpYnlvdVwgOwor56aB5Y+N6KiAID4ga2luaGFuZ2VuXCA7CivnhKHlj4znqpMgPiBtdXNvdW1hZG9cIDsKK+aZgumWk+WJsiA+IGppa2Fud2FyaVwgOwor55So5b+D5qOSID4geW91amluYm91XCA7Civlho3mhJ/mn5MgPiBzYWlrYW5zZW5cIDsKK+avm+ijveWTgSA+IG1vdXNlaWhpblwgOwor5YyW57Kn5LujID4ga2VzaG91ZGFpXCA7CivmoLzntI3luqsgPiBrYWt1bm91a29cIDsKK+e3j+e0ouW8lSA+IHNvdXNha3VpblwgOwor5LqI5a+p5bu3ID4geW9zaGludGVpXCA7CivojLblsYvphZIgPiBjaGF5YXpha2VcIDsKK+Wbm+WIhuWGhiA+IHNoaWJ1bicnZW5cIDsKK+S9l+S9j+WxhSA+IHdhYml6dW1haVwgOwor54mH5omL5qG2ID4ga2F0YXRlb2tlXCA7CivlibXliIrlj7cgPiBzb3VrYW5nb3VcIDsKK+Wbm+WIhuWFrSA+IHNoaWJ1cm9rdVwgOwor6Ziy5r2c57ayID4gYm91c2VubW91XCA7CivlkI3liLrliKQgPiBtZWlzaGliYW5cIDsKK+ays+erpeW3uyA+IGthcHBhbWFraVwgOwor5ZCR5YWJ5oCnID4ga291a291c2VpXCA7Civli7LkuIDnrYkgPiBrdW4nJ2l0dG91XCA7Civlj43nianlsYsgPiB0YW5tb25veWFcIDsKK+S6kuitsueahCA+IGdvam91dGVraVwgOwor5LiW55WM55qEID4gc2VrYWl0ZWtpXCA7CivlvqHov7fmg5EgPiBnb21laXdha3VcIDsKK+S4iemDqOS9nCA+IHNhbmJ1c2FrdVwgOwor5q2j6Z2i5ZuzID4gc2hvdW1lbnp1XCA7CivooajlhbfluKsgPiBoeW91Z3VzaGlcIDsKK+S4jemBqeS7uyA+IGZ1dGVraW5pblwgOwor57WM5LyB5bqBID4ga2Vpa2ljaG91XCA7CivpgYvli5XpoJggPiB1bmRvdXJ5b3VcIDsKK+WFiOiIrOadpSA+IHNlbnBhbnJhaVwgOwor5a6a5Yag6KmeID4gdGVpa2Fuc2hpXCA7Civpu4TpgZPlhYkgPiBrb3Vkb3Vrb3VcIDsKK+aOpeWwvui+niA+IHNldHN1YmlqaVwgOwor5rC054Sh5pyIID4gbWluYWR6dWtpXCA7Civpp5DlnKjlk6EgPiBjaHV1emFpaW5cIDsKK+i8uOWwv+euoSA+IHl1bnlvdWthblwgOwor5Zu96Ziy6LK7ID4ga29rdWJvdWhpXCA7Civkvo3lvpPplbcgPiBqaWp1dWNob3VcIDsKK+auuumiqOaZryA+IHNhcHB1dWtlaVwgOwor5Lit5pSv6YKjID4gbmFrYXNoaW5hXCA7CivoqqTmjL/lhaUgPiBnb3NvdW55dXVcIDsKK+ato+aVmeaOiCA+IHNlaWt5b3VqdVwgOwor5LyR54Gr5bGxID4ga3l1dWthemFuXCA7CivlrZDlrojmrYwgPiBrb21vcml1dGFcIDsKK+axuuWumueovyA+IGtldHRlaWtvdVwgOwor6Ziy54Gr5aOBID4gYm91a2FoZWtpXCA7Civlj7Dmub7kurogPiB0YWl3YW5qaW5cIDsKK+aXpeeroOaXlyA+IG5pc3Nob3VraVwgOwor6YOo6ZqK6ZW3ID4gYnV0YWljaG91XCA7CivlvqHnnJ/lvbEgPiBnb3NoaW4nJ2VpXCA7Civlh53lm7rngrkgPiBneW91a290ZW5cIDsKK+aUr+W6l+e2siA+IHNoaXRlbm1vdVwgOwor5pWw6KGo56S6ID4gc3V1aHlvdWppXCA7CivpoqjlkJHoqIggPiBmdXVrb3VrZWlcIDsKK+ibjeWFieadvyA+IGtlaWtvdWJhblwgOwor5paw6IGe6IiXID4gc2hpbmJ1bmhvXCA7Civopb/ljZfopb8gPiBzZWluYW5zZWlcIDsKK+mBv+mbt+mHnSA+IGhpcmFpc2hpblwgOwor542F5a2Q6IieID4gc2hpc2hpbWFpXCA7Civku7vmnJ/kuK0gPiBuaW5raWNodXVcIDsKK+aWuemdoumaiiA+IGhvdW1lbnRhaVwgOwor6aKo6Yi06I2JID4gZnV1cmluc291XCA7CivoirHph47oj5wgPiBoYW5heWFzYWlcIDsKK+absueLrOalvSA+IGt5b2t1Z29tYVwgOwor55yf5ZCR5rOVID4gbWFra291aG91XCA7CivllYboiLnml5cgPiBzaG91c2Vua2lcIDsKK+eglOS/ruWToSA+IGtlbnNodXVpblwgOwor6KmV5Yik6KiYID4gaHlvdWJhbmtpXCA7Civmma7pgJrkvr8gPiBmdXRzdXViaW5cIDsKK+WJr+efpeS6iyA+IGZ1a3VjaGlqaVwgOwor5q+N6ZuG5ZujID4gYm9zaHV1ZGFuXCA7CivkuInlhqDnjosgPiBzYW5rYW4nJ291XCA7CivmgYvmhJvoprMgPiByZW4nJ2Fpa2FuXCA7CivkvbXooYznt5ogPiBoZWlrb3VzZW5cIDsKK+WcsOW9ueaoqSA+IGNoaWVraWtlblwgOwor5pmu6YCa5Lq6ID4gZnV0c3V1amluXCA7CivlhYjlsI7ogIUgPiBzZW5kb3VzaGFcIDsKK+WGjeWNlOitsCA+IHNhaWt5b3VraVwgOwor5oqV6ZmN6ICFID4gdG91a291c2hhXCA7Civku6Pota3oibIgPiB0YWlzaGFpcm9cIDsKK+aOpeWwvuiqniA+IHNldHN1Ymlnb1wgOwor5YqH5L2c5a62ID4gZ2VraXNha2thXCA7Civph43miKbou4ogPiBqdXVzZW5zaGFcIDsKK+mfs+alvemaiiA+IG9uZ2FrdXRhaVwgOwor5YaN56aB5q2iID4gc2Fpa2luc2hpXCA7Civnh7vokrjliaQgPiBrdW5qb3V6YWlcIDsKK+a0i+ijgeW4qyA+IHlvdXNhaXNoaVwgOwor55yf5q2j6Z2iID4gbWFzaG91bWVuXCA7CivmnIjntYzliY0gPiBnZWtrZWltYWVcIDsKK+mBi+WLlemHjyA+IHVuZG91cnlvdVwgOwor5L2O5bGx5bivID4gdGVpemFudGFpXCA7CivlirHmjK/lmaggPiByZWlzaGlua2lcIDsKK+iLsembhOeahCA+IGVpeXV1dGVraVwgOwor6KiY6ICF5bitID4ga2lzaGFzZWtpXCA7CivlgaXlurfogIUgPiBrZW5rb3VzaGFcIDsKK+iCpea6gOeXhyA+IGhpbWFuc2hvdVwgOwor5pyA5aSn5YCkID4gc2FpZGFpY2hpXCA7CivoqIjnlLvmoYggPiBrZWlrYWt1YW5cIDsKK+iPr+WOs+WulyA+IGtlZ29uc2h1dVwgOwor5Li76KaB54K5ID4gc2h1eW91dGVuXCA7Civku67kvY/lsYUgPiBrYXJpenVtYWlcIDsKK+S8muWToeiovCA+IGthaWluc2hvdVwgOwor57K+6JaE5YWQID4gc2VpaGFrdWppXCA7CivmjL/lhaXlm7MgPiBzb3VueXV1enVcIDsKK+S4geW5tOiAhSA+IHRlaW5lbnNoYVwgOwor55uj5p+75b25ID4ga2Fuc2F5YWt1XCA7CivoloTljJbnsqcgPiB1c3VnZXNob3VcIDsKK+WHuuWLpOewvyA+IHNodWtraW5ib1wgOwor5Lit5aSu57eaID4gY2h1dW91c2VuXCA7CivlsaXmrbTmm7ggPiByaXJla2lzaG9cIDsKK+mkiuWXo+WtkCA+IHlvdXNoaXNoaVwgOwor5aSn5rW35Y6fID4gb291bmFiYXJhXCA7CivkvY7kvqHmoLwgPiB0ZWlrYWtha3VcIDsKK+S6pOmam+S4iiA+IGtvdXNhaWpvdVwgOwor5Y+C6ICD5ZOBID4gc2Fua291aGluXCA7CivnpZ7ntYznp5EgPiBzaGlua2Vpa2FcIDsKK+Wwj+S9nOi+siA+IGtvc2FrdW5vdVwgOwor56eB5paH5pu4ID4gc2hpYnVuc2hvXCA7CivmsbrlrprniYggPiBrZXR0ZWliYW5cIDsKK+W/g+S4jeWFqCA+IHNoaW5mdXplblwgOwor5Lmz5bm85YWQID4gbnl1dXlvdWppXCA7Civopo/liYfmm7ggPiBraXNva3VzaG9cIDsKK+WKoOmZpOW8jyA+IGtham9zaGlraVwgOwor5Y+45rOV5a6YID4gc2hpaG91a2FuXCA7Civnqbrlr77lnLAgPiBrdXV0YWljaGlcIDsKK+ato+imluecvCA+IHNlaXNoaWdhblwgOwor5pep5oW25oimID4gc291a2Vpc2VuXCA7CivmjpjliYrmqZ8gPiBrdXNzYWt1a2lcIDsKK+acqueiuuWumiA+IG1pa2FrdXRlaVwgOwor6auY5p625qmLID4ga291a2FreW91XCA7CivlgIvliKXljJYgPiBrb2JldHN1a2FcIDsKK+aMv+WFpeWPpSA+IHNvdW55dXVrdVwgOwor5pS/5qip5YWaID4gc2Vpa2VudG91XCA7CivlsITliKnlv4MgPiBzaGFyaXNoaW5cIDsKK+ebo+Wvn+WMuyA+IGthbnNhdHN1aVwgOwor6YGT5YyW5pa5ID4gZG91a2VnYXRhXCA7CivljYrkuozph40gPiBoYW4nJ25panV1XCA7CivnpoHmsrvnlKMgPiBraW5jaGlzYW5cIDsKK+WNmOiqnumbhiA+IHRhbmdvc2h1dVwgOwor55So5rC05ZywID4geW91c3VpaWtlXCA7Civou4rpq5jnn60gPiBzaGFrb3V0YW5cIDsKK+a2iOWMluiFuiA+IHNob3VrYXNlblwgOwor6L+R5rW36a2aID4ga2lua2FpZ3lvXCA7CivmjpLmsLTlrZQgPiBoYWlzdWlrb3VcIDsKK+acqOmHkeWcnyA+IG1va3VraW5kb1wgOwor5oyB57aa5oCnID4gaml6b2t1c2VpXCA7CivlkI3lt6XlpKcgPiBtZWlrb3VkYWlcIDsKK+aUr+mFjeS6uiA+IHNoaWhhaW5pblwgOwor5bm55LqL6ZW3ID4ga2FuamljaG91XCA7CivplbfmsLTot68gPiBjaG91c3Vpcm9cIDsKK+W5s+WFmuWToSA+IGhpcmF0b3VpblwgOwor5b6q55Kw57eaID4ganVua2Fuc2VuXCA7CivkuIvliYvkuIogPiBnZWtva3Vqb3VcIDsKK+S4iuWxpOmiqCA+IGpvdXNvdWZ1dVwgOwor5Zyn5bu26Yu8ID4gYXRzdWVua291XCA7Civoj6DolpDojYkgPiBob3VyZW5zb3VcIDsKK+a6luaVmeWToSA+IGp1bmt5b3VpblwgOwor5Ye555y86Y+hID4gb3VnYW5reW91XCA7CivniankvqHpq5ggPiBidWtrYWRha2FcIDsKK+iqmOaLkOe9qiA+IHl1dWthaXphaVwgOwor5b6q55Kw57O7ID4ganVua2Fua2VpXCA7CivmtL7nlJ/nmoQgPiBoYXNlaXRla2lcIDsKK+e0oOWPjeW/nCA+IHNvaGFuJydub3VcIDsKK+WcqOmDt+iAhSA+IHphaWdvdXNoYVwgOwor5YyX5rW36YGTID4gaG9ra2FpZG91XCA7Civmnpfmqo7nl4UgPiByaW5nb2J5b3VcIDsKK+iWrOS6i+azlSA+IHlha3VqaWhvdVwgOwor55+t5q+b56iuID4gdGFubW91c2h1XCA7CivmpoLlv7Xoq5YgPiBnYWluZW5yb25cIDsKK+mBk+W+s+WutiA+IGRvdXRva3VrYVwgOwor5Y+C5LiO5a6YID4gc2FuJyd5b2thblwgOwor5pyA57WC5qGIID4gc2Fpc2h1dWFuXCA7CivkuJbnlYzmlrAgPiBzZWthaXNoaW5cIDsKK+WPguiAg+S6uiA+IHNhbmtvdW5pblwgOwor5bGL5Y+w6aqoID4geWF0YWlib25lXCA7CivlpKfmrZPov44gPiBkYWlrYW5nZWlcIDsKK+S4iuWxpOmajiA+IGpvdXNvdWthaVwgOwor5LiA5YiH57WMID4gaXNzYWlreW91XCA7Civlho3phY3nva4gPiBzYWloYWljaGlcIDsKK+iCjOilpuiioiA+IGhhZGFqdWJhblwgOwor5YWt6KeS5b2iID4gcm9ra2Fra2VpXCA7CivmlrDnlJ/lhZAgPiBzaGluc2VpamlcIDsKK+WFiOS9j+iAhSA+IHNlbmp1dXNoYVwgOwor6Yac5qWt5ammID4gc2h1Z3lvdWZ1XCA7Civoo4HliKTmqKkgPiBzYWliYW5rZW5cIDsKK+Wkp+elnuWuriA+IGRhaWppbmd1dVwgOwor5q2j5pWZ5ZOhID4gc2Vpa3lvdWluXCA7CivmgqrmiK/nnYAgPiBpdGF6dXJhZ2lcIDsKK+aYvOihjOeBryA+IGhpcnVhbmRvblwgOwor5Zyw5bmz57eaID4gY2hpaGVpc2VuXCA7CivphY3pm7vnt5ogPiBoYWlkZW5zZW5cIDsKK+eZvemgree/gSA+IGhha3V0b3VvdVwgOwor55m65bCE5Y+wID4gaGFzc2hhZGFpXCA7CivkuLvpmaPlnLAgPiBzaHVqaW5jaGlcIDsKK+aEn+aDs+aWhyA+IGthbnNvdWJ1blwgOwor5raI5YyW57O7ID4gc2hvdWtha2VpXCA7CivkuLvoprPmgKcgPiBzaHVrYW5zZWlcIDsKK+Wkp+azleW7tyA+IGRhaWhvdXRlaVwgOwor5pyA57WC5pelID4gc2Fpc2h1dWJpXCA7CivmsbrlrprmqKkgPiBrZXR0ZWlrZW5cIDsKK+WFjuWwj+WxiyA+IHVzYWdpZ295YVwgOwor5aSa56We6KuWID4gdGFzaGlucm9uXCA7CivlvozljYrnlJ8gPiBrb3VoYW5zZWlcIDsKK+Wil+iogueJiCA+IHpvdXRlaWJhblwgOwor5omA5Zyo5ZywID4gc2hvemFpY2hpXCA7Civngb3lrrPlnLAgPiBzYWlnYWljaGlcIDsKK+a2iOWMlueuoSA+IHNob3VrYWthblwgOwor5bm05Luj6aCGID4gbmVuZGFpanVuXCA7CivnpZ7ntYzngo4gPiBzaGlua2VpZW5cIDsKK+WlieS7leiAhSA+IGhvdXNoaXNoYVwgOwor5YaN5Y+X5rW4ID4gc2FpanVzaGluXCA7Civmk43mpa3osrsgPiBzb3VneW91aGlcIDsKK+S6jOS6uuWJjSA+IGZ1dGFyaW1hZVwgOwor5a+M5aOr5aO6ID4gZnVqaXRzdWJvXCA7Civnmb7osqjlupcgPiBoeWFra2F0ZW5cIDsKK+aoquaWreW5lSA+IG91ZGFubWFrdVwgOwor5LqM5Lq65YiGID4gZnV0YXJpYnVuXCA7CivntI3nqI7ogIUgPiBub3V6ZWlzaGFcIDsKK+mFuOaAp+e0mSA+IHNhbnNlaXNoaVwgOwor5bem5Y+z6Lu4ID4gc2F5dXVqaWt1XCA7CivlpKnmsLTmobYgPiB0ZW5zdWlva2VcIDsKK+WFrOmWi+eKtiA+IGtvdWthaWpvdVwgOwor6LK06YeR5bGeID4ga2lraW56b2t1XCA7Civms6LnvoXonJwgPiBoYXJhbWl0c3VcIDsKK+eLqeeMn+acnyA+IHNodXJ5b3VraVwgOwor5paH5rOV5pu4ID4gYnVucG91c2hvXCA7CivljaDpoJjkuIsgPiBzZW5yeW91a2FcIDsKK+eHg+eEvOeCiSA+IG5lbnNob3Vyb1wgOwor5Y+k562G5a62ID4ga29oaXRzdWthXCA7CivpmLLooZvluoEgPiBib3VlaWNob3VcIDsKK+Wkp+elreWPuCA+IGRhaXNhaXNoaVwgOwor6Zub572M57KfID4gaGluYWdlc2hpXCA7CivlhajlpKnlgJkgPiB6ZW50ZW5rb3VcIDsKK+i2heefreazoiA+IGNob3V0YW5wYVwgOwor5pS+5bCE6IO9ID4gaG91c2hhbm91XCA7CivliY3np5HogIUgPiB6ZW5rYW1vbm9cIDsKK+mVt+mHjuecjCA+IG5hZ2Fub2tlblwgOwor6Z2S5aSn5bCGID4gYW9kYWlzaG91XCA7Civnn6XmgbXnhrEgPiBjaGllbmV0c3VcIDsKK+WMheijhee0mSA+IGhvdXNvdXNoaVwgOwor5Lya5ZOh56ugID4ga2FpaW5zaG91XCA7CivnsbPnlKPlnLAgPiBiZWlzYW5jaGlcIDsKK+WFq+inkuW9oiA+IGhha2tha2tlaVwgOwor5LqU5aSn5rSyID4gZ29kYWlzaHV1XCA7CivmlrDlrabmnJ8gPiBzaGluZ2Fra2lcIDsKK+mFjembu+ebpCA+IGhhaWRlbmJhblwgOwor6Iux5paH5a2mID4gZWlidW5nYWt1XCA7CivlrZDlrojllIQgPiBrb21vcml1dGFcIDsKK+W+oeWFhOW8nyA+IGdva3lvdWRhaVwgOwor6KOB5Yik5omAID4gc2FpYmFuc2hvXCA7Civlj4LpmaLpgbggPiBzYW4nJ2luc2VuXCA7Civou43kurrpoqggPiBndW5qaW5mdXVcIDsKK+eEoeW+l+eCuSA+IG11dG9rdXRlblwgOwor6KuW55CG55qEID4gcm9ucml0ZWtpXCA7CivlioPmnJ/nmoQgPiBrYWtraXRla2lcIDsKK+S4ieecgeWggiA+IHNhbnNlaWRvdVwgOwor6Jma5byx5YWQID4ga3lvamFrdWppXCA7CivlvZPkuovlm70gPiB0b3VqaWtva3VcIDsKK+irluS6ieiAhSA+IHJvbnNvdXNoYVwgOwor5pS+5bCE57eaID4gaG91c2hhc2VuXCA7CivltIfmi53ogIUgPiBzdXVoYWlzaGFcIDsKK+WBpeW6t+azlSA+IGtlbmtvdWhvdVwgOwor5oCq5paH5pu4ID4ga2FpYnVuc2hvXCA7CivpgK7mjZXmrbQgPiB0YWlob3Jla2lcIDsKK+ethumgreiAhSA+IGhpdHRvdXNoYVwgOwor5Lm+55Sf5aecID4ga2Fuc2hvdWdhXCA7CivnlJ/mrovogIUgPiBzZWl6YW5zaGFcIDsKK+a3oeawtOmtmiA+IHRhbnN1aWd5b1wgOwor6LSI562U5ZOBID4gem91dG91aGluXCA7CivkuqTmj5vmiYsgPiBrb3VrYW5zaHVcIDsKK+ibjeWFieS9kyA+IGtlaWtvdXRhaVwgOwor5rC354K55LiLID4gaHlvdXRlbmthXCA7Civoqpjmi5Dniq8gPiB5dXVrYWloYW5cIDsKK+eFjueOieWtkCA+IGlyaXRhbWFnb1wgOwor6IiI5L+h5omAID4ga291c2hpbmpvXCA7CivnlJjlkbPmlpkgPiBrYW5taXJ5b3VcIDsKK+ippumok+e0mSA+IHNoaWtlbnNoaVwgOwor54aP6JK45YmkID4ga3Vuam91emFpXCA7CivogonopabooqIgPiBuaWt1anViYW5cIDsKK+ebo+WuiOS6uiA+IGthbnNodW5pblwgOwor5aKX5aSn5Y+3ID4gem91ZGFpZ291XCA7Civmu5HotbDovKogPiBrYXNzb3VyaW5cIDsKK+WGjeWJtemAoCA+IHNhaXNvdXpvdVwgOwor6KW/5rSL5Y+yID4gc2VpeW91c2hpXCA7CivmiLjnsY3ms5UgPiBrb3Nla2lob3VcIDsKK+iNkueJqeWxiyA+IGFyYW1vbm95YVwgOwor5Lit6KW/6YOoID4gY2h1dXNlaWJ1XCA7Civoh6rli5XnmoQgPiBqaWRvdXRla2lcIDsKK+WAn+WutuS6uiA+IHNoYWtrYW5pblwgOwor5rOV5a2m6YOoID4gaG91Z2FrdWJ1XCA7Civou43os4fph5EgPiBndW5zaGlraW5cIDsKK+aWh+azleaApyA+IGJ1bnBvdXNlaVwgOwor6L6y5aSr55eHID4gbm91ZnVzaG91XCA7CivmnZDmlpnosrsgPiB6YWlyeW91aGlcIDsKK+WCrOa2memKgyA+IHNhaXJ1aWp1dVwgOwor5aSJ5o+b5a2QID4gaGVua2Fuc2hpXCA7CivmnZDmnKjlsYsgPiB6YWltb2t1eWFcIDsKK+iyp+eqruWMliA+IGhpbmt5dXVrYVwgOwor5pep5ZCI54K5ID4gaGF5YWdhdGVuXCA7CivogqXmuoDmgKcgPiBoaW1hbnNob3VcIDsKK+i7iummrOizgyA+IHNoYWJhY2hpblwgOwor56uc6aiO5YW1ID4gcnl1dWtpaGVpXCA7CivlnJ/lj7Dnn7MgPiBkb2RhaWlzaGlcIDsKK+W4sOe0jeeahCA+IGtpbm91dGVraVwgOwor6Kmm6aiT566hID4gc2hpa2Vua2FuXCA7CivnlLflrZDpq5ggPiBkYW5zaGlrb3VcIDsKK+Wkp+WPjeWvviA+IGRhaWhhbnRhaVwgOwor6Z2e5Zu95rCRID4gaGlrb2t1bWluXCA7CivlsI/osYbpsZIgPiBhenVraW1hc3VcIDsKK+iOouixjOixhiA+IHNheWFlbmRvdVwgOwor5Lih5pu/5qmfID4gcnlvdWdhZWtpXCA7Civntr/ngavolqwgPiBtZW5rYXlha3VcIDsKK+S6uuawkei7jSA+IGppbm1pbmd1blwgOwor5qyg5Yuk6ICFID4ga2Vra2luc2hhXCA7CivlsI/kvZznsbMgPiBrb3Nha3VtYWlcIDsKK+azpeadv+WyqSA+IGRlaWJhbmdhblwgOwor5pOs6Z2p57SZID4gZ2lrYWt1c2hpXCA7CivosrTph43lk4EgPiBraWNob3VoaW5cIDsKK+eBq+WxseekqyA+IGthemFucmVraVwgOwor6aGU5YaZ55yfID4ga2FvamFzaGluXCA7CivlhbHmvJTogIUgPiBreW91ZW5zaGFcIDsKK+aVkeitt+ePrSA+IGt5dXVnb2hhblwgOwor5YaN5b6q55KwID4gc2FpanVua2FuXCA7CivojbvmsZ/nr4AgPiBvZ2llYnVzaGlcIDsKK+mbhuWFieWZqCA+IHNodXVrb3VraVwgOwor5LiA6YOo5YiGID4gaWNoaWJ1YnVuXCA7Civoo4XnlLLou4ogPiBzb3Vrb3VzaGFcIDsKK+aWsOS4lue0gCA+IHNoaW5zZWlraVwgOwor6KOB5Yik5a6YID4gc2FpYmFua2FuXCA7Civlh7rli6Tml6UgPiBzaHVra2luYmlcIDsKK+mAgeS/oeapnyA+IHNvdXNoaW5raVwgOwor6ZuR5bGF5ZywID4gemFra3lvY2hpXCA7Civoi7HmlbDlm70gPiBlaXN1dWtva3VcIDsKK+S/neeuoeaWmSA+IGhva2FucnlvdVwgOwor5Y2K6LK055+zID4gaGFua2lzZWtpXCA7Civou43nlKjmqZ8gPiBndW4nJ3lvdWtpXCA7CivomY7okL3nrJsgPiBtb2dhcmlidWVcIDsKK+eUn+mChOiAhSA+IHNlaWthbnNoYVwgOwor5oeH6KuH5LyaID4ga29uZGFua2FpXCA7CivmnKrlhazooaggPiBtaWtvdWh5b3VcIDsKK+ilv+a0i+S6uiA+IHNlaXlvdWppblwgOwor55Sw6IiO6ICFID4gaW5ha2Ftb25vXCA7CivmtojljJbmtrIgPiBzaG91a2Fla2lcIDsKK+WBpeW6t+aWuSA+IGtlbmtvdWhvdVwgOwor56m05bGF5Lq6ID4ga2Vra3lvamluXCA7Civlpqjmpa3lk6EgPiBib3VneW91aW5cIDsKK+miqOWRguaVtyA+IGZ1cm9zaGlraVwgOwor5L2V5puc5pelID4gbmFuJyd5b3ViaVwgOwor6K2m5oiS57eaID4ga2Vpa2Fpc2VuXCA7CivkuqTmj5vlrKIgPiBrb3VrYW5qb3VcIDsKK+Wkp+mBk+iKuCA+IGRhaWRvdWdlaVwgOwor5YGc5q2i57eaID4gdGVpc2hpc2VuXCA7Civli4nlvLflrrYgPiBiZW5reW91a2FcIDsKK+a1qua8q+eahCA+IHJvbWFudGVraVwgOwor5Yun5LiW57iSID4ga2FuemV5b3JpXCA7Civnq7nntLDlt6UgPiB0YWtlemFpa3VcIDsKK+eUo+WNteWPoyA+IHNhbnJhbmtvdVwgOwor5oSf5YuV6KmeID4ga2FuZG91c2hpXCA7CivmsLTlnKfmqZ8gPiBzdWlhdHN1a2lcIDsKK+mfs+alveelrSA+IG9uZ2FrdXNhaVwgOwor5Lq65oOF5pysID4gbmluam91Ym9uXCA7CivnmofpnIrmrr8gPiBrb3VyZWlkZW5cIDsKK+S9v+WRveiAhSA+IHNoaW1laXNoYVwgOwor5Luj55So5ZOBID4gZGFpeW91aGluXCA7CivokYnoj5zpoZ4gPiB5b3VzYWlydWlcIDsKK+WGmeecn+apnyA+IHNoYXNoaW5raVwgOwor55S35LyK6YGUID4gb3Rva29kYXRlXCA7CivlhbXnq5nnt5ogPiBoZWl0YW5zZW5cIDsKK+W4r+mbu+S9kyA+IHRhaWRlbnRhaVwgOwor5paH5YyW55qEID4gYnVua2F0ZWtpXCA7CivmnKrnmbrooaggPiBtaWhhcHB5b3VcIDsKK+WFiOS9j+awkSA+IHNlbmp1dW1pblwgOwor6YCU5LiK5Zu9ID4gdG9qb3Vrb2t1XCA7CivljYrpn7Ppmo4gPiBoYW4nJ29ua2FpXCA7Civnmb3mnKjlsYsgPiBzaGlyb2tpeWFcIDsKK+S7leanmOabuCA+IHNoaXlvdXNob1wgOwor5rCR5LqL55qEID4gbWluaml0ZWtpXCA7CivmiJDlsaTlnI8gPiBzZWlzb3VrZW5cIDsKK+iSuOawl+WcpyA+IGpvdWtpYXRzdVwgOwor5Lih5pu/5omAID4gcnlvdWdhZWpvXCA7CivlvozljYrmiKYgPiBrb3VoYW5zZW5cIDsKK+W5veWvguWRsyA+IHl1dWpha3VtaVwgOwor5bid546L5a2mID4gdGVpb3VnYWt1XCA7Civosq/msLTmsaAgPiBjaG9zdWljaGlcIDsKK+aWsOS4lueVjCA+IHNoaW5zZWthaVwgOwor5ZG95Luk5rOVID4gbWVpcmVpaG91XCA7Civnj77lg4/mtrIgPiBnZW56b3Vla2lcIDsKK+ims+imp+i7iiA+IGthbnJhbnNoYVwgOwor5Lya56S+6JGsID4ga2Fpc2hhc291XCA7CivnpoHphZLms5UgPiBraW5zaHVob3VcIDsKK+iEs+iGnOeCjiA+IG5vdW1ha3VlblwgOwor5LqU5aSn5beeID4gZ29kYWlzaHV1XCA7Civmlofpg6jnnIEgPiBtb25idXNob3VcIDsKK+i7jeS6i+mAmiA+IGd1bmppdHN1dVwgOwor6ISz6IWr55iNID4gbm91c2h1eW91XCA7CivkuJbnlYzkuIAgPiBzZWthaWljaGlcIDsKK+WGjeWIhumFjSA+IHNhaWJ1bnBhaVwgOwor5o6b5biD5ZujID4ga2FrZWJ1dG9uXCA7CivlpJbmtIvoiLkgPiBnYWl5b3VzZW5cIDsKK+e1hOiBt+WbsyA+IHNvc2hva3V6dVwgOwor5Lqk5o+b5ZOBID4ga291a2FuaGluXCA7Civngavpo5/ps6UgPiBoaWt1aWRvcmlcIDsKK+iyr+awtOanvSA+IGNob3N1aXNvdVwgOwor5rW35rC06a2aID4ga2Fpc3VpZ3lvXCA7Civnsr7pgLLml6UgPiBzaG91amluYmlcIDsKK+S4ieiJsuaXlyA+IHNhbnNob2traVwgOwor6YCD5Lqh6ICFID4gdG91Ym91c2hhXCA7CivpgZPlhbfnrrEgPiBkb3VndWJha29cIDsKK+WHuuW7t+aXpSA+IHNodXR0ZWliaVwgOwor55S75a2m57SZID4gZ2FnYWt1c2hpXCA7Civosq/olLXmiYAgPiBjaG96b3VzaG9cIDsKK+adsea1t+mBkyA+IHRvdWthaWRvdVwgOwor5Lqk5o+b5Y+wID4ga291a2FuZGFpXCA7CivmiKbmmYLkuK0gPiBzZW5qaWNodXVcIDsKK+a3t+WIhuaVsCA+IGtvbmJ1bnN1dVwgOwor55Sf55+z54GwID4gc2Vpc2Vra2FpXCA7CivkuI3mpJzmnZ8gPiBmdWtlbnNva3VcIDsKK+Wwj+advuiPnCA+IGtvbWF0c3VuYVwgOwor6Iif5aSn5belID4gZnVuYWRhaWt1XCA7CivotIjlkYjogIUgPiB6b3V0ZWlzaGFcIDsKK+mhnuamguW/tSA+IHJ1aWdhaW5lblwgOwor5Lu75aSp5aCCID4gbmludGVuZG91XCA7CivljZfmlrnnlKMgPiBuYW5wb3VzYW5cIDsKK+e1kOe0jemHkSA+IHl1aW5vdWtpblwgOwor5aSq5YiA562LID4gdGFjaGlzdWppXCA7Civnhp/lrZfoqJMgPiBqdWt1amlrdW5cIDsKK+WjsOaYjuabuCA+IHNlaW1laXNob1wgOwor5ZWP6aGM54K5ID4gbW9uZGFpdGVuXCA7CivliIblt6XloLQgPiBidW5rb3Vqb3VcIDsKK+WumuW5tOWItiA+IHRlaW5lbnNlaVwgOwor5Zyw5YWD57SZID4gamltb3Rvc2hpXCA7CivpoJDoqJfph5EgPiB5b3Rha3VraW5cIDsKK+mYsuepuuegsiA+IGJvdWt1dWhvdVwgOwor6Z2Z5Zyn5q+UID4gc2VpYXRzdWhpXCA7Civlm57poafpjLIgPiBrYWlrb3Jva3VcIDsKK+S4oeabv+WxiyA+IHJ5b3VnYWV5YVwgOwor5Lq65rCX6ICFID4gbmlua2ltb25vXCA7CivkuI3oia/lk4EgPiBmdXJ5b3VoaW5cIDsKK+Wwj+S+v+aJgCA+IHNob3ViZW5qb1wgOwor5b6q55Kw5oCnID4ganVua2Fuc2VpXCA7CivllYbnlKjljJYgPiBzaG91eW91a2FcIDsKK+S6pOaPm+WGhiA+IGtvdWthbicnZW5cIDsKK+ippumok+azlSA+IHNoaWtlbmhvdVwgOwor5a2m5ZyS56WtID4gZ2FrdWVuc2FpXCA7CivmhJ/mrY7oqZ4gPiBrYW50YW5zaGlcIDsKK+esrOWFreaEnyA+IGRhaXJva2thblwgOwor6LKn5rCR6KGXID4gaGlubWluZ2FpXCA7Civlkb3ku6Tmm7ggPiBtZWlyZWlzaG9cIDsKK+WNiuWwjuS9kyA+IGhhbmRvdXRhaVwgOwor5YW15Zmo5bugID4gaGVpa2lzaG91XCA7Civoo4HliKTkuIogPiBzYWliYW5qb3VcIDsKK+WjsuaYpeWppiA+IGJhaXNodW5wdVwgOwor5LiL5YWL5LiKID4gZ2Vrb2t1am91XCA7CivphY3pm7vmiYAgPiBoYWlkZW5zaG9cIDsKK+ekvuS6pOeVjCA+IHNoYWtvdWthaVwgOwor5YSq5Yud5peXID4geXV1c2hvdWtpXCA7CivmiYvlk4HluKsgPiB0ZWppbmFzaGlcIDsKK+mrhOiGnOeCjiA+IHp1aW1ha3VlblwgOwor6Zuo5pSv5bqmID4gYW1haml0YWt1XCA7Civkv67pgZPpmaIgPiBzaHV1ZG91aW5cIDsKK+a1t+ibh+W6pyA+IHVtaWhlYml6YVwgOwor5ZG95Luk5paHID4gbWVpcmVpYnVuXCA7CivmnbHmtIvpoqggPiB0b3V5b3VmdXVcIDsKK+W8n+aBr+WtkCA+IG90b211c3Vrb1wgOwor5LqU5aSn5Zu9ID4gZ29kYWlrb2t1XCA7CivmjqXpqqjljLsgPiBzZWtrb3RzdWlcIDsKK+acm+mBoOmPoSA+IGJvdWVua3lvdVwgOwor5qKF6Zuo56m6ID4gdHN1eXV6b3JhXCA7Civlt6Xlk6Hlr64gPiBrb3VpbnJ5b3VcIDsKK+eEoemBiueXhSA+IG11eXV1YnlvdVwgOwor5Zu96Zqb5YyWID4ga29rdXNhaWthXCA7CivpqZrnlbDnmoQgPiBreW91aXRla2lcIDsKK+mWouadseW8gSA+IGthbnRvdWJlblwgOwor6KSH5ZCI6KqeID4gZnVrdWdvdWdvXCA7CivlvJjmuIjkvJogPiBrb3VzYWlrYWlcIDsKK+iHs+i/keW8viA+IHNoaWtpbmRhblwgOwor5pys5bm05bqmID4gaG9uJyduZW5kb1wgOwor5pWR6K235omAID4ga3l1dWdvc2hvXCA7CivlkZHmsJfogIUgPiBub25raW1vbm9cIDsKK+Wwj+S9nOaoqSA+IGtvc2FrdWtlblwgOwor5Luj55CG5q+NID4gZGFpcmloYWhhXCA7CivliIbnlYznt5ogPiBidW5rYWlzZW5cIDsKK+err+Wig+acnyA+IGhhemFrYWlraVwgOwor5YmN44CF5ZueID4gemVuemVua2FpXCA7Civoqp7mupDlraYgPiBnb2dlbmdha3VcIDsKK+W/g+mbu+WbsyA+IHNoaW5kZW56dVwgOwor5YGl5bq35ZywID4ga2Vua291Y2hpXCA7CivmsI/lrZDmnK0gPiB1amlrb2Z1ZGFcIDsKK+iruOWVj+mhjCA+IHNob21vbmRhaVwgOwor5Y+j5ZSH5pyfID4ga291c2hpbmtpXCA7CivlsIbmo4vnm6QgPiBzaG91Z2liYW5cIDsKK+eNheWtkOWUkCA+IHNoaXNoaXRvdVwgOwor5bmz5L+h5b6SID4gaGVpc2hpbnRvXCA7CivlpKfmsJflnKcgPiB0YWlraWF0c3VcIDsKK+Wwhui7jeWutiA+IHNob3VndW5rZVwgOwor5Y2D5Luj57SZID4gY2hpeW9nYW1pXCA7CivkuLvmiKboq5YgPiBzaHVzZW5yb25cIDsKK+WKo+etieeUnyA+IHJldHRvdXNlaVwgOwor5paw5a2X5L2TID4gc2hpbmppdGFpXCA7CivntI3lk4Hmm7ggPiBub3VoaW5zaG9cIDsKK+eah+WkquWtkCA+IGtvdXRhaXNoaVwgOwor6aiS5pO+572qID4gc291am91emFpXCA7CivljYrlrpjloLEgPiBoYW5rYW5wb3VcIDsKK+WQjOS8tOiAhSA+IGRvdWhhbnNoYVwgOwor5rW36byg5p2/ID4gbmFtYWtvYmFuXCA7Civlh4blo6vlrpggPiBqdW5zaGlrYW5cIDsKK+Wun+mok+iAhSA+IGppa2tlbnNoYVwgOwor5Luj55CG5qWtID4gZGFpcmlneW91XCA7CivkuIDmrKHlhYMgPiBpY2hpamlnZW5cIDsKK+eUqOebiuaoqSA+IHlvdWVraWtlblwgOwor5LiK6IWV562LID4gam91d2Fua2luXCA7Civlj4LmlL/mqKkgPiBzYW5zZWlrZW5cIDsKK+W3oeekvOiAhSA+IGp1bnJlaXNoYVwgOwor5a6f6aiT576kID4gamlra2VuZ3VuXCA7Civnqbrmma/msJcgPiBrYXJhZ2Vpa2lcIDsKK+WGmeecn+WutiA+IHNoYXNoaW5rYVwgOwor6LuK5qSF5a2QID4ga3VydW1haXN1XCA7Civmj67mr6vmlpkgPiBraWdvdXJ5b3VcIDsKK+itpuWRiumfsyA+IGtlaWtva3VvblwgOwor5pWZ5o6I6ZmjID4ga3lvdWp1amluXCA7CivliJ3kuIPml6UgPiBzaG9uYW5va2FcIDsKK+WuieW/g+aEnyA+IGFuc2hpbmthblwgOwor5aSn5YWl6YGTID4gb29ueXV1ZG91XCA7CivnpL7kvJrmgqogPiBzaGFrYWlha3VcIDsKK+S4u+ijveWTgSA+IHNodXNlaWhpblwgOwor54Sh5rCX5YqbID4gbXVraXJ5b2t1XCA7CivnpL7kvJrmgKcgPiBzaGFrYWlzZWlcIDsKK+iEseiEgue2vyA+IGRhc3NoaW1lblwgOwor5rCX6LGh5Y+wID4ga2lzaG91ZGFpXCA7Civlkb3ku6TlvaIgPiBtZWlyZWlrZWlcIDsKK+irlueQhuWtpiA+IHJvbnJpZ2FrdVwgOwor5a6f5L2T6KuWID4gaml0dGFpcm9uXCA7CivlsI/kvJrmtL4gPiBzaG91a2FpaGFcIDsKK+WQjOWApOaApyA+IGRvdWNoaXNlaVwgOwor6YW45oCn5bKpID4gc2Fuc2VpZ2FuXCA7CivkuIvotrPnlaogPiBnZXNva3ViYW5cIDsKK+aWpeWAmeWFtSA+IHNla2tvdWhlaVwgOwor5aW95b2x6Z+/ID4ga291ZWlreW91XCA7Civpgq/phLLluKsgPiBrYW50YW5zaGlcIDsKK+eUn+WMluWtpiA+IHNlaWthZ2FrdVwgOwor6Kmm5LmX6LuKID4gc2hpam91c2hhXCA7CivoprPopqfogIUgPiBrYW5yYW5zaGFcIDsKK+WlieizgOW4syA+IGhvdWdhY2hvdVwgOwor5Zyn5Yi255qEID4gYXNzZWl0ZWtpXCA7Civngq3phbjntJkgPiB0YW5zYW5zaGlcIDsKK+WGjeW+k+W8nyA+IHNhaWp1dXRlaVwgOwor5L2Z6KiI6ICFID4geW9rZWltb25vXCA7CivkuI3lr53nlaogPiBmdXNoaW5iYW5cIDsKK+eQhuWxiOWxiyA+IHJpa3V0c3V5YVwgOwor5L+d566h5Lq6ID4gaG9rYW4nJ25pblwgOwor5YSq6Imv6aasID4geXV1cnlvdWJhXCA7CivpgYvovLjph48gPiB1bicneXVyeW91XCA7CivlpKrlubPmtIsgPiB0YWloZWl5b3VcIDsKK+iyr+iUteWTgSA+IGNob3pvdWhpblwgOwor5Y2Y57OW6aGeID4gdGFudG91cnVpXCA7CivogZrmpb3nrKwgPiBqdXJha3VkYWlcIDsKK+eUn+WNiuWPryA+IG5hbWFoYW5rYVwgOwor5Y2U6K2w5omAID4ga3lvdWdpc2hvXCA7Civku4rlubTluqYgPiBrb24nJ25lbmRvXCA7Civlh4bmlZnlk6EgPiBqdW5reW91aW5cIDsKK+ekvuS8muWxpCA+IHNoYWthaXNvdVwgOwor5YGl5bq35L2TID4ga2Vua291dGFpXCA7CivmgJ3mmKXmnJ8gPiBzaGlzaHVua2lcIDsKK+aUvuWwhOaApyA+IGhvdXNoYXNlaVwgOwor6Jmr5aqS6IqxID4gY2h1dWJhaWthXCA7CivlhpnnnJ/lmaggPiBzaGFzaGlua2lcIDsKK+WGheWQkeaApyA+IG5haWtvdXNlaVwgOwor5pS55a6X6ICFID4ga2Fpc291c2hhXCA7CivlhKrlvoXliLggPiB5dXV0YWlrZW5cIDsKK+Wbm+S6uue1hCA+IHlvbmluZ3VtaVwgOwor6YCA5ayw55qEID4gdGFpZWl0ZWtpXCA7CivlloTlvoznrZYgPiB6ZW5nb3Nha3VcIDsKK+WKqeaJi+W4rSA+IGpvc2h1c2VraVwgOwor54Gr5pyo6YeRID4ga2Ftb2t1a2luXCA7CivmsI/lrZDluLMgPiB1amlrb2Nob3VcIDsKK+eah+WkquWQjiA+IGtvdXRhaWdvdVwgOwor54m55pS76ZqKID4gdG9ra291dGFpXCA7CivpgbroqIDogIUgPiB5dWlnb25zaGFcIDsKK+mDt+Wcn+WPsiA+IGt5b3Vkb3NoaVwgOwor5LuY5bGe5qChID4gZnV6b2t1a291XCA7CivntbHmsrvogIUgPiB0b3VjaGlzaGFcIDsKK+WQjeS6uuiKuCA+IG1laWppbmdlaVwgOwor5YeE5paH5Y+lID4gc3Vnb21vbmt1XCA7CivmiKbngb3ogIUgPiBzZW5zYWlzaGFcIDsKK+ippuS9nOapnyA+IHNoaXNha3VraVwgOwor6buE5p6v6Iy2ID4ga2lnYXJhY2hhXCA7Civog4PohbjolqwgPiBpY2hvdXlha3VcIDsKK+mZvembu+WtkCA+IHlvdWRlbnNoaVwgOwor5paH5q6K5qeYID4gbW9uanVzYW1hXCA7Civku5jlsZ7mm7ggPiBmdXpva3VzaG9cIDsKK+iojuirluiAhSA+IHRvdXJvbnNoYVwgOwor5aSa5rGX55eHID4gdGFrYW5zaG91XCA7CivmipXmiYvpmaMgPiB0b3VzaHVqaW5cIDsKK+S4ree2meaJgCA+IGNodXVrZWlqb1wgOwor5qC55oug5ZywID4ga29ua3lvY2hpXCA7Civms5XkurrnqI4gPiBob3VqaW56ZWlcIDsKK+WcsOWFg+awkSA+IGppbW90b21pblwgOwor5bm05pyf6ICFID4gbmVua2ltb25vXCA7Civpn7Pmpb3mgKcgPiBvbmdha3VzZWlcIDsKK+iiq+WRiuS6uiA+IGhpa29rdW5pblwgOwor5paH5YyW5bqBID4gYnVua2FjaG91XCA7CivlgY/lkJHmnb8gPiBoZW5rb3ViYW5cIDsKK+iDjOS7u+e9qiA+IGhhaW5pbnphaVwgOwor5YKN6Kaz6ICFID4gYm91a2Fuc2hhXCA7CivmmJ/nirbkvZMgPiBzZWlqb3V0YWlcIDsKK+a2iOWMluWJpCA+IHNob3VrYXphaVwgOwor5qyn5bee54mIID4gb3VzaHV1YmFuXCA7CivlsI/osYbnsqUgPiBhenVraWdheXVcIDsKK+ezu+Wbs+WtpiA+IGtlaXp1Z2FrdVwgOwor6Kmm6aiT5a6YID4gc2hpa2Vua2FuXCA7Civnn7PmpaDoirEgPiBzaGFrdW5hZ2VcIDsKK+abuOewoeeuiyA+IHNob2thbnNlblwgOwor5YaN6YWN5YiGID4gc2FpaGFpYnVuXCA7CivljZTorbDlrpggPiBreW91Z2lrYW5cIDsKK+WQjOmhnumghSA+IGRvdXJ1aWtvdVwgOwor6Ieq6Lui6Lu4ID4gaml0ZW5qaWt1XCA7CivkuIrnlLLmnb8gPiBqb3VrYW5wYW5cIDsKK+WFqOWcsOaWuSA+IHplbmNoaWhvdVwgOwor5Lya56S+5rOVID4ga2Fpc2hhaG91XCA7CivlpYnku5Xlk4EgPiBob3VzaGloaW5cIDsKK+aIquaLs+mBkyA+IHNla2tlbmRvdVwgOwor5LuV6Iie5bGLID4gc2hpbW90YXlhXCA7CivmipjoobfmoYggPiBzZXRjaHV1YW5cIDsKK+iIquepuumaiiA+IGtvdWt1dXRhaVwgOwor6J2m6J+H5Y+jID4gZ2FtYWd1Y2hpXCA7CivnpoHmraLms5UgPiBraW5zaGlob3VcIDsKK+mBk+WFt+aWuSA+IGRvdWd1a2F0YVwgOwor5pem6YKj6Iq4ID4gZGFuJyduYWdlaVwgOwor5om26aSK5paZID4gZnV5b3VyeW91XCA7CivkuI3kv6Hlv4MgPiBmdXNoaW5qaW5cIDsKK+W5s+WuieacnSA+IGhlaWFuY2hvdVwgOwor5YaF6YeO5bitID4gbmFpeWFzZWtpXCA7Civlm6DmnpzlvosgPiBpbmdhcml0c3VcIDsKK+i7vea8lOWKhyA+IGtlaWVuZ2VraVwgOwor5p2/6YeR5belID4gYmFua2lua291XCA7CivlrprkvqHooaggPiB0ZWlrYWh5b3VcIDsKK+evpOW/l+WutiA+IHRva3VzaGlrYVwgOwor6Kmm6aiT5aC0ID4gc2hpa2Vuam91XCA7Civml4XooYzogIUgPiByeW9rb3VzaGFcIDsKK+atr+m9pueCjiA+IHNoaWdpbicnZW5cIDsKK+ibuOWdiuS4uyA+IHRha29ib3V6dVwgOwor5Y+C5pS/5a6YID4gc2Fuc2Vpa2FuXCA7Civou43kuovnmoQgPiBndW5qaXRla2lcIDsKK+WPpOmKreWtpiA+IGtvc2VuZ2FrdVwgOwor6LuN5a6Y5oayID4gZ3Vua2Fua2VuXCA7CivplqLmlbDoq5YgPiBrYW5zdXVyb25cIDsKK+ayu+eZguiyuyA+IGNoaXJ5b3VoaVwgOwor5p2/6YeR5bGLID4gYmFua2luJyd5YVwgOwor5pON6LuK5aC0ID4gc291c2hham91XCA7CivmipXono3os4cgPiB0b3V5dXVzaGlcIDsKK+mdqeWRveatjCA+IGtha3VtZWlrYVwgOwor56S+5Lqk5oCnID4gc2hha291c2VpXCA7Civmk6zniIblvL4gPiBnaWJha3VkYW5cIDsKK+erueicu+ibiSA+IHRha2V0b25ib1wgOwor6LaF5YWa5rS+ID4gY2hvdXRvdWhhXCA7CivllY/poYzlpJYgPiBtb25kYWlnYWlcIDsKK+S4gOiIrOeahCA+IGlwcGFudGVraVwgOwor6LOH5pys6YeRID4gc2hpaG9ua2luXCA7CivnlLflrZDnlKggPiBkYW5zaGl5b3VcIDsKK+WvvueUn+iRiSA+IHRhaXNlaXlvdVwgOwor56S+5Lya5YWaID4gc2hha2FpdG91XCA7Civljq3kuJbnmoQgPiBlbnNlaXRla2lcIDsKK+iok+e3tOeUnyA+IGt1bnJlbnNlaVwgOwor6LSI5ZGI5pysID4gem91dGVpYm9uXCA7CivlpKLpgYrnl4UgPiBtdXl1dWJ5b3VcIDsKK+WutuaXj+azlSA+IGthem9rdWhvdVwgOwor5Lq65rCX5qCqID4gbmlua2lrYWJ1XCA7Civoqq3lvozmhJ8gPiBkb2t1Z29rYW5cIDsKK+WNmOe0sOiDniA+IHRhbnNhaWJvdVwgOwor6bO056a96aGeID4gbWVpa2lucnVpXCA7CivlhoXpg6jnmoQgPiBuYWlidXRla2lcIDsKK+e3tOWFteWgtCA+IHJlbnBlaWpvdVwgOwor5aSn5YmN5o+QID4gZGFpemVudGVpXCA7Civlho3lvpPlhYQgPiBzYWlqdXVrZWlcIDsKK+WPr+WLleapiyA+IGthZG91a3lvdVwgOwor55S75pyf55qEID4ga2Fra2l0ZWtpXCA7Civpn7Pmpb3loIIgPiBvbmdha3Vkb3VcIDsKK+iNkumaoOWFgyA+IHNheWFpbmdlblwgOwor5rSX56S85ZCNID4gc2VucmVpbWVpXCA7Civnj77mpa3lk6EgPiBnZW5neW91aW5cIDsKK+S4gOW3peWkqyA+IGhpdG9rdWZ1dVwgOwor6Iad5bCP5YOnID4gaGl6YWtvem91XCA7CivkvZzoqZ7lrrYgPiBzYWt1c2hpa2FcIDsKK+S9nOeCuueahCA+IHNha3VpdGVraVwgOwor5bCP5a6H5a6ZID4gc2hvdXVjaHV1XCA7CivpoqjmsLTlrrMgPiBmdXVzdWlnYWlcIDsKK+WNmOaVsOW9oiA+IHRhbnN1dWtlaVwgOwor5rC05rq25rayID4gc3VpeW91ZWtpXCA7CivlpKfou4rovKogPiBkYWlzaGFyaW5cIDsKK+aUueWumueJiCA+IGthaXRlaWhhblwgOwor56S+5Lya5Lq6ID4gc2hha2FpamluXCA7CivmgqrlvbHpn78gPiBha3VlaWt5b3VcIDsKK+ilv+mDqOWKhyA+IHNlaWJ1Z2VraVwgOwor6ZuR6LKo5ZWGID4gemFra2FzaG91XCA7CivliqPnrYnmhJ8gPiByZXR0b3VrYW5cIDsKK+mAj+aYjuaApyA+IHRvdW1laXNlaVwgOwor6Iul5aSr5ammID4gd2FrYWZ1dWZ1XCA7Civnj77ku6PoqakgPiBnZW5kYWlzaGlcIDsKK+mZsOmZvemBkyA+IG9ubXlvdWRvdVwgOwor5LyR5oap5omAID4ga3l1dWtlaWpvXCA7CivphY3ntabmiYAgPiBoYWlreXV1am9cIDsKK+ijhei6q+WFtyA+IHNvdXNoaW5ndVwgOwor54Sh5qyg5bitID4gbXVrZXNzZWtpXCA7Civoh6rliLblv4MgPiBqaXNlaXNoaW5cIDsKK+WJr+S9nOeUqCA+IGZ1a3VzYXlvdVwgOwor5YaN6YG45oyZID4gc2Fpc2Vua3lvXCA7CivpmqDljL/ogIUgPiBpbnRva3VzaGFcIDsKK+WQjOS6uueoriA+IGRvdWppbnNodVwgOwor6YGL6YCB5qWtID4gdW5zb3VneW91XCA7CivlhoXli5nnnIEgPiBuYWltdXNob3VcIDsKK+eCremFuOawtCA+IHRhbnNhbnN1aVwgOwor5Yuk546L5a62ID4ga2luJydub3VrYVwgOwor6KGb55Sf55qEID4gZWlzZWl0ZWtpXCA7Civnq7bmioDogIUgPiBreW91Z2lzaGFcIDsKK+WGjeeZuuihjCA+IHNhaWhha2tvdVwgOwor6YG66KiA54q2ID4geXVpZ29uam91XCA7CivngrnnnLzmsLQgPiB0ZW5nYW5zdWlcIDsKK+i7veWQiOmHkSA+IGtlaWdvdWtpblwgOwor5LiA55m65bGLID4gaXBwYXRzdXlhXCA7Civlhajoo73lk4EgPiB6ZW5zZWloaW5cIDsKK+W/nOWPrOiAhSA+IG91c2hvdXNoYVwgOwor5Y+k5Y2w57SZID4gZnVydWluc2hpXCA7Civos4fmnKzosqEgPiBzaGlob256YWlcIDsKK+Wbnumhp+eahCA+IGthaWtvdGVraVwgOwor5LqM6Kaq562JID4gbmlzaGludG91XCA7CivkuqTmiKbmqKkgPiBrb3VzZW5rZW5cIDsKK+W6g+WgseiqjCA+IGtvdWhvdXNoaVwgOwor5L6L5bm056WtID4gcmVpbmVuc2FpXCA7CivkuojpmLLolqwgPiB5b2JvdXlha3VcIDsKK+WSjOWjsOWtpiA+IHdhc2VpZ2FrdVwgOwor6Z+z5qW95Y+yID4gb25nYWt1c2hpXCA7CivokI7nuK7ohY4gPiBpc2h1a3VqaW5cIDsKK+ebl+iBtOWZqCA+IHRvdWNob3VraVwgOwor5LqI57SE6YeRID4geW95YWt1a2luXCA7CivmmKXloLTmiYAgPiBoYXJ1YmFzaG9cIDsKK+enn+W6uOiqvyA+IHNveW91Y2hvdVwgOwor5Y6f5a2Q6KuWID4gZ2Vuc2hpcm9uXCA7CivnhKHmqZ/niakgPiBtdWtpYnV0c3VcIDsKK+axuuitsOahiCA+IGtldHN1Z2lhblwgOwor5Ym15L2c5a62ID4gc291c2FrdWthXCA7CivniJvnhp/mnJ8gPiByYW5qdWt1a2lcIDsKK+S4remWk+a0viA+IGNodXVrYW5oYVwgOwor6YeM56iL5qiZID4gcml0ZWloeW91XCA7Civos4fmnKzoq5YgPiBzaGlob25yb25cIDsKK+S7iuanmOatjCA+IGltYXlvdXV0YVwgOwor5Lya5rSl5aGXID4gYWlkenVudXJpXCA7CivkuLjlnYrkuLsgPiBtYXJ1Ym91enVcIDsKK+enu+akjeaApyA+IGlzaG9rdXNlaVwgOwor5YmN5b6M562WID4gemVuZ29zYWt1XCA7CivliKXlpKnlnLAgPiBiZXR0ZW5jaGlcIDsKK+WNlOitsOS8miA+IGt5b3VnaWthaVwgOwor6Ziy56m65aOVID4gYm91a3V1Z291XCA7CivpgYvpgIHmlpkgPiB1bnNvdXJ5b3VcIDsKK+W5vemciuiIuSA+IHl1dXJlaXNlblwgOwor5Lyv5YKZ57eaID4gaGFrdWJpc2VuXCA7Civog4Pohbjnl4UgPiBpY2hvdWJ5b3VcIDsKK+WRiuekuuadvyA+IGtva3VqaWJhblwgOwor5bCP5L2c5Lq6ID4ga29zYWt1bmluXCA7Civpm6LplpPnrZYgPiByaWthbnNha3VcIDsKK+awkeaVsOiomCA+IG1pbnN1dWtpXCA7CivpiYTnoLLluqcgPiB0ZXBwb3V6YVwgOwor5paH5YyW5Lq6ID4gYnVua2FqaW5cIDsKK+acqOW3peaJgCA+IG1va2tvdWpvXCA7CivkuIDoiKzms5UgPiBpcHBhbmhvdVwgOwor5Yq05YuZ6ICFID4gcm91bXVzaGFcIDsKK+aWh+W6q+acrCA+IGJ1bmtvYm9uXCA7Civku6PnkIbkurogPiBkYWlyaW5pblwgOwor5rW35rC0552AID4ga2Fpc3VpZ2lcIDsKK+iHquW3sea1gSA+IGppa29yeXV1XCA7CivkuIHlr6foqp4gPiB0ZWluZWlnb1wgOwor6Z+z5qW95LyaID4gb25nYWtrYWlcIDsKK+WQjOiDnuaEmyA+IGRvdWhvdWFpXCA7Civmr5vllJDkurogPiBrZXRvdWppblwgOwor5rCR5LqL5LiKID4gbWluamlqb3VcIDsKK+a3oeW9qeeUuyA+IHRhbnNhaWdhXCA7CivmnJ/lvoXlgKQgPiBraXRhaWNoaVwgOwor5YWo6KO45L2TID4gemVucmF0YWlcIDsKK+eri+S9k+a0viA+IHJpdHRhaWhhXCA7CivorbfpgIHoiLkgPiBnb3NvdXNlblwgOwor6YeO6Juu5Lq6ID4geWFiYW5qaW5cIDsKK+Wls+aAp+i7jSA+IGpvc2VpZ3VuXCA7CivlkIzotqPlkbMgPiBkb3VzaHVtaVwgOwor5Y+v5YuV5oCnID4ga2Fkb3VzZWlcIDsKK+S4jemkiueUnyA+IGZ1eW91am91XCA7Civpo73lkozngrkgPiBob3V3YXRlblwgOwor5pei5b6A55eHID4ga2lvdXNob3VcIDsKK+S4gOiHtOeCuSA+IGl0Y2hpdGVuXCA7CivnrYboqJjogIUgPiBoaWtraXNoYVwgOwor6YCB6aKo5qmfID4gc291ZnV1a2lcIDsKK+Wnq+W+oeWtkCA+IGhpbWVtaWtvXCA7CivmiYvphY3mm7ggPiB0ZWhhaXNob1wgOwor6ISz54+K55GaID4gbm91c2FuZ29cIDsKK+S4iuWxpOWcnyA+IGpvdXNvdWRvXCA7CivkuojntIToqp4gPiB5b3lha3Vnb1wgOwor5rK55qe96Ii5ID4geXVzb3VzZW5cIDsKK+S4gOWvuOimiyA+IGNob3R0b21pXCA7CivkuojpmLLnt5ogPiB5b2JvdXNlblwgOwor5YuY5a6a5pelID4ga2Fuam91YmlcIDsKK+WGheW4kemHkSA+IG5haWRva2luXCA7CivkvJ3pgIHot68gPiBkZW5zb3Vyb1wgOwor6YqA57Sw5belID4gZ2luemFpa3VcIDsKK+S6uuebuOimiyA+IG5pbnNvdW1pXCA7CivpoqjliLrnlLsgPiBmdXVzaGlnYVwgOwor5Y2I6aSQ5LyaID4gZ29zYW5rYWlcIDsKK+eEoeasoOWLpCA+IG11a2Vra2luXCA7Civmr5Tph43oqIggPiBoaWp1dWtlaVwgOwor6YGL6YCB5bqXID4gdW5zb3V0ZW5cIDsKK+aTjeS9nOebpCA+IHNvdXNhYmFuXCA7CivlnKjluqvlk4EgPiB6YWlrb2hpblwgOwor5rCR5Li75YyWID4gbWluc2h1a2FcIDsKK+W7tua7numHkSA+IGVudGFpa2luXCA7CivllJDnoLTpoqggPiBrYXJhaGFmdVwgOwor6Ieq5YWs5rCRID4gamlrb3VtaW5cIDsKK+izouWkq+S6uiA+IGtlbnB1amluXCA7CivpgYvou6LogIUgPiB1bnRlbnNoYVwgOwor5LiN5qC85aW9ID4gYnVrYWtrb3VcIDsKK+WCrOa3q+WJpCA+IHNhaWluemFpXCA7CivmoITppIrnn60gPiBlaXlvdXRhblwgOwor5Yy75a2m55WMID4gaWdha3VrYWlcIDsKK+eEoeW4uOaEnyA+IG11am91a2FuXCA7Civog4zmoLzlpb0gPiBzZWtha2tvdVwgOwor5bGx5p+75a2QID4gc2FuemFzaGlcIDsKK+WMu+WtpueUnyA+IGlnYWt1c2VpXCA7Civplovmpa3ljLsgPiBrYWlneW91aVwgOwor5L6/6KGj6ZqKID4gYmVuJydpdGFpXCA7CivlubnkuovkvJogPiBrYW5qaWthaVwgOwor5aSa5Y6f5a2QID4gdGFnZW5zaGlcIDsKK+WNgeWtl+W9oiA+IGp1dWppa2VpXCA7CivlpJbph47miYsgPiBnYWl5YXNodVwgOwor5YGl6IOD6YygID4ga2VuJydpam91XCA7CivplqLopb/ppqwgPiBrYW5zYWliYVwgOwor5oyH56S66KmeID4gc2hpamlzaGlcIDsKK+aYjuaXpeiRiSA+IGFzaGl0YWJhXCA7Civnn63ot53pm6IgPiB0YW5reW9yaVwgOwor5LiA6LuS5bGLID4gaWtrZW4nJ3lhXCA7Civoirjlgpnnt5ogPiBnZWliaXNlblwgOwor6Zmj5aSq6byTID4gamluZGFpa29cIDsKK+ecn+WGrOaXpSA+IG1hZnV5dWJpXCA7Civlm5vlraPloLEgPiBzaGlraWhvdVwgOwor5LiA6LuS5a62ID4gaWtrZW4nJ3lhXCA7CivnuYHoj6/ooZcgPiBoYW5rYWdhaVwgOwor6KiT57e05omAID4ga3VucmVuam9cIDsKK+a1t+awtOa4qSA+IGthaXN1aW9uXCA7CivnrYvpm7vlm7MgPiBraW5kZW56dVwgOwor5rOM5bC/5bm+ID4gaGlueW91a2lcIDsKK+S4jeWuieW/gyA+IGZ1YW5zaGluXCA7CivoqKrllY/nnYAgPiBob3Vtb25naVwgOwor5Lya56S+5ZOhID4ga2Fpc2hhaW5cIDsKK+azleeOi+aoqSA+IGhvdW91a2VuXCA7CivkuI3lsI7kvZMgPiBmdWRvdXRhaVwgOwor5Y2Y6Kmm5ZCIID4gdGFuc2hpYWlcIDsKK+WGmeeUn+eUuyA+IHNoYXNlaWdhXCA7CivnrqHnkIbkurogPiBrYW5yaW5pblwgOwor5LiA5a626KiAID4gaWtrYWdvdG9cIDsKK+WQjOacn+eUnyA+IGRvdWtpc2VpXCA7CivkuIHlrpropo8gPiB0ZWlqb3VnaVwgOwor5a6I5YKZ6ZqKID4gc2h1Yml0YWlcIDsKK+S9teWQiOe9qiA+IGhlaWdvemFpXCA7CivmsJfnhKHnsr4gPiBraWJ1c2hvdVwgOwor5LiJ5p6a55uuID4gc2FubWFpbWVcIDsKK+aJi+mFjeW4qyA+IHRlaGFpc2hpXCA7CivnhKHoh6roppogPiBtdWppa2FrdVwgOwor54Gr5LqL5rOlID4ga2FqaWRvcm9cIDsKK+S6uuW3peiqniA+IGppbmtvdWdvXCA7Civml6LlvoDmrbQgPiBraW91cmVraVwgOwor5LiA6Iis5oCnID4gaXBwYW5zZWlcIDsKK+W5tOaciOaXpSA+IG5lbmdhcHBpXCA7CivlpInmiJDlmaggPiBoZW5zZWlraVwgOwor5pyq5L+h6ICFID4gbWlzaGluamFcIDsKK+S4jeahiOWGhSA+IGZ1YW4nJ25haVwgOwor6Ieq5qOE6YWSID4geWFrZXpha2VcIDsKK+WhkeW8vuaApyA+IHNvZGFuc2VpXCA7CivmrablmajlgIkgPiBidWtpZ3VyYVwgOwor6IG06Z+z5ZmoID4gY2hvdW9ua2lcIDsKK+W5s+S7ruWQjSA+IGhpcmFnYW5hXCA7CivmhJ/nn6XlmaggPiBrYW5jaGlraVwgOwor5YmN5Y2K5pyfID4gemVucGFua2lcIDsKK+epuuirluWutiA+IGt1dXJvbmthXCA7CivovrLplpHmnJ8gPiBub3VrYW5raVwgOwor5LiN6LOb5oiQID4gZnVzYW5zZWlcIDsKK+mkium2j+WutiA+IHlvdWtlaWthXCA7CivljYHkuozmlK8gPiBqdXVuaXNoaVwgOwor5qeL5oiQ5q+UID4ga291c2VpaGlcIDsKK+WQkeaXpeiRtSA+IGhpbWF3YXJpXCA7CivmqZ/mpa3lrrYgPiBraWd5b3VrYVwgOwor5rC05ru45LydID4gc3Vpa29kZW5cIDsKK+W+oeWsouanmCA+IG9qb3VzYW1hXCA7Civoh6jluorljLsgPiByaW5zaG91aVwgOwor5qCE6aSK5rqQID4gZWl5b3VnZW5cIDsKK+WkmuW5tOiNiSA+IHRhbmVuc291XCA7CivojbfljoTku4sgPiBuaXlha2thaVwgOwor5Yqx56OB5pCNID4gcmVpamlzb25cIDsKK+WuieWFqOeToyA+IGFuemVuYmVuXCA7Civph43phbjntKAgPiBqdXVzYW5zb1wgOwor5LqM5aGB5omLID4gbmlydWlzaHVcIDsKK+acqOW3peWFtyA+IG1va2tvdWd1XCA7CivngrnnnLzlmaggPiB0ZW5nYW5raVwgOwor6I6r5aSn5bCPID4gbWVyaXlhc3VcIDsKK+ijvemLvOaJgCA+IHNlaWtvdWpvXCA7CivpmqDolL3lrZAgPiBpbnBlaXNoaVwgOwor5YuY5a6a5aC0ID4ga2Fuam91YmFcIDsKK+e+veWbo+aJhyA+IGhhdWNoaXdhXCA7CivnoLTmiJLlg6cgPiBoYWthaXNvdVwgOwor54Cs5oi454mpID4gc2V0b21vbm9cIDsKK+Wkp+iLseaWrSA+IGRhaWVpZGFuXCA7Civms4zlsL/lmaggPiBoaW55b3VraVwgOwor5YWI6K2w5qipID4gc2VuZ2lrZW5cIDsKK+WPjeaKl+acnyA+IGhhbmtvdWtpXCA7CivmnKzkvJrorbAgPiBob25rYWlnaVwgOwor6Iux57Gz5Lq6ID4gZWliZWlqaW5cIDsKK+S9jumghuS9jSA+IHRlaWp1bicnaVwgOwor5LiN6ICB5rOJID4gZnVyb3VzZW5cIDsKK+WQjeWum+S6uiA+IG5hYXRlbmluXCA7Civoh6rnlLHoqakgPiBqaXl1dXNoaVwgOwor5oSP5b+X55qEID4gaXNoaXRla2lcIDsKK+aIpumXmOWToSA+IHNlbnRvdWluXCA7Civljp/nlLvlg48gPiBnZW5nYXpvdVwgOwor5aSn6IW/6YOoID4gZGFpdGFpYnVcIDsKK+a7i+izgOecjCA+IHNoaWdha2VuXCA7Civph43msLTntKAgPiBqdXVzdWlzb1wgOwor5Lq66YCg5rmWID4gamluem91a29cIDsKK+iri+iyoOW4qyA+IHVrZW9pc2hpXCA7CivmsLTmupblmaggPiBzdWlqdW5raVwgOwor5ryr55S75pysID4gbWFuZ2Fob25cIDsKK+S6kuaPm+aApyA+IGdva2Fuc2VpXCA7CivnqK7nqK7nm7ggPiBzaHVqdXNvdVwgOwor5LqI6Ziy5rOVID4geW9ib3Vob3VcIDsKK+WuieWFqOeBryA+IGFuemVudG91XCA7CivpgYvpgIHkurogPiB1bnNvdW5pblwgOwor5LiK6aaW5bC+ID4gam91c2h1YmlcIDsKK+S7j+iIjuWIqSA+IGJ1c3NoYXJpXCA7CivoiIflpKrogIUgPiB5b3RhbW9ub1wgOwor5rqA5aSp5LiLID4gbWFudGVua2FcIDsKK+S+oeagvOW3riA+IGtha2FrdXNhXCA7CivnhKHoirHmnpwgPiBpY2hpamlrdVwgOwor5LiN5Lq65oOFID4gZnVuaW5qb3VcIDsKK+Wcn+W7uuWxiyA+IGRva2VuJyd5YVwgOwor6YGu5pat5qmfID4gc2hhZGFua2lcIDsKK+S5seadreatryA+IHJhbmd1aWJhXCA7CivonYvntLDlt6UgPiByb3V6YWlrdVwgOwor57Oc54ib5oCnID4gYmlyYW5zZWlcIDsKK+iytOWFrOWtkCA+IGtpa291c2hpXCA7Civlu4nkvqHniYggPiByZW5rYWJhblwgOwor5Y6f5a2Q54KJID4gZ2Vuc2hpcm9cIDsKK+i7ouaPm+eCiSA+IHRlbmthbnJvXCA7Civpu47mmI7mnJ8gPiByZWltZWlraVwgOwor6I+W6JKy5rmvID4gc2hvdWJ1eXVcIDsKK+eEoemnhOmqqCA+IG11ZGFib25lXCA7CivpoZ7kvLzlk4EgPiBydWlqaWhpblwgOwor6aOb6KGM6ZqKID4gaGlrb3V0YWlcIDsKK+mHkemzs+iKsSA+IGtpbnBvdWdlXCA7Civpu5Lpm7Lmr40gPiBrdXJvdW5tb1wgOwor55u45omL5pa5ID4gYWl0ZWdhdGFcIDsKK+S4jeWujOWFqCA+IGZ1a2FuemVuXCA7CivnpZblm73mhJsgPiBzb2tva3VhaVwgOwor5Yuf6ZuG6LK7ID4gYm9zaHV1aGlcIDsKK+eUn+eUo+iyuyA+IHNlaXNhbmhpXCA7CivntbHlkIjljJYgPiB0b3Vnb3VrYVwgOwor5peF6KGM5a62ID4gcnlva291a2FcIDsKK+ekvuWkluenmCA+IHNoYWdhaWhpXCA7CivlvpPkvqHnqI4gPiBqdXVrYXplaVwgOwor5L2/5b6S5pu4ID4gc2hpdG9zaG9cIDsKK+WvneWMlueypyA+IG5lZ2VzaG91XCA7CivlibXkuJbmnJ8gPiBzb3VzZWlraVwgOwor6YeR55uu6a+bID4ga2lubWVkYWlcIDsKK+S4iuS4i+e3miA+IGpvdWdlc2VuXCA7CivnkIbkuovlm70gPiByaWppa29rdVwgOwor5rC05rqW5YSAID4gc3VpanVuZ2lcIDsKK+WGjeS/nemZuiA+IHNhaWhva2VuXCA7CivkuIvppqzlhYggPiBnZWJhc2FraVwgOwor5rOJ6LKo57SZID4gc2Vua2FzaGlcIDsKK+W+oeS7pOWsoiA+IGdvcmVpam91XCA7Civpm7vmsJfooZcgPiBkZW5raWdhaVwgOwor6LuN5pS/6YOoID4gZ3Vuc2VpYnVcIDsKK+W+oemhjOebriA+IG9kYWltb2t1XCA7CivnhKHkv53oqLwgPiBtdWhvc2hvdVwgOwor5Y+v5YiG5oCnID4ga2FidW5zZWlcIDsKK+S6nOmJm+mJhCA+IGFlbnRldHN1XCA7Civli5XlronlrpogPiBkb3VhbnRlaVwgOwor5YiR5LqL5LiKID4ga2Vpamlqb3VcIDsKK+Wls+aAp+eUqCA+IGpvc2VpeW91XCA7Civkub7nh6XngokgPiBrYW5zb3Vyb1wgOwor6IKy5YWQ5rOVID4gaWt1amlob3VcIDsKK+aEm+mzpeWutiA+IGFpY2hvdWthXCA7CivmnKzoiJ7lj7AgPiBob25idXRhaVwgOwor5YCL5Lq65oCnID4ga29qaW5zZWlcIDsKK+S+neWtmOeXhyA+IGl6b25zaG91XCA7CivmgqrmgKfluqYgPiBha3VzZWlkb1wgOwor576O55S35a2QID4gYmluYW5zaGlcIDsKK+mbu+azouazlSA+IGRlbnBhaG91XCA7Civou43kuovkuIogPiBndW5qaWpvdVwgOwor54OP54qA6KeSID4gdXNhaWtha3VcIDsKK+WBj+W+ruWIhiA+IGhlbmJpYnVuXCA7CivntKDlr5LosqcgPiBzdWthbnBpblwgOwor6LGa5bCP5bGLID4gYnV0YWdveWFcIDsKK+W7tua7nueojiA+IGVudGFpemVpXCA7CivlhqXnjovmmJ8gPiBtZWlvdXNlaVwgOwor5YaG55uk54q2ID4gZW5iYW5qb3VcIDsKK+iUteabuOWutiA+IHpvdXNob2thXCA7CivpjLLpn7PmqZ8gPiByb2t1b25raVwgOwor6YGO6Iis5p2lID4ga2FoYW5yYWlcIDsKK+mRmuWtlOapnyA+IHNhbmtvdWtpXCA7CivkuIDoiKzkurogPiBpcHBhbmppblwgOwor55u45omL5b25ID4gYWl0ZXlha3VcIDsKK+atqeWQiOe1piA+IGJ1YWlreXV1XCA7CivkupXmiLjntrEgPiBpZG9kenVuYVwgOwor5pei55+l5pWwID4ga2ljaGlzdXVcIDsKK+W3peWLmeW6lyA+IGtvdW11dGVuXCA7CivkuIDmnLHpioAgPiBpc3NodWdpblwgOwor6Iiq56m65qmfID4ga291a3V1a2lcIDsKK+m7kue5u+WtkCA+IGt1cm9qdXN1XCA7CivnmbvoqJjmiYAgPiB0b3VraXNob1wgOwor6YGp5pmC5omTID4gdGVraWppZGFcIDsKK+WQiOeQhuaApyA+IGdvdXJpc2VpXCA7CivpmbDpm7vlrZAgPiBpbmRlbnNoaVwgOwor5Yqp5YuV6KmeID4gam9kb3VzaGlcIDsKK+aFsOiXieaWmSA+IGlzaGFyeW91XCA7CivooZvnlJ/lhbUgPiBlaXNlaWhlaVwgOwor5L2O54mp5L6hID4gdGVpYnVra2FcIDsKK+WAi+S6uuWxlSA+IGtvamludGVuXCA7Civlrp/kvZPljJYgPiBqaXR0YWlrYVwgOwor6YKq6a2U6ICFID4gamFtYW1vbm9cIDsKK+exs+itsOS8miA+IGJlaWdpa2FpXCA7CivnhKHlsL3olLUgPiBtdWppbnpvdVwgOwor6Lui5o+b5pyfID4gdGVua2Fua2lcIDsKK+S7o+itsOWjqyA+IGRhaWdpc2hpXCA7CivpvLvmv4Hpn7MgPiBiaWRha3VvblwgOwor6auY6Zu75L2NID4ga291ZGVuJydpXCA7CivmjIHlj4Lph5EgPiBqaXNhbmtpblwgOwor5ZSv55CG6KuWID4geXVpcmlyb25cIDsKK+WQjeacm+WutiA+IG1laWJvdWthXCA7CivlpJrlhYPoq5YgPiB0YWdlbnJvblwgOwor6Ieq5qOE57OeID4geWFrZWt1c29cIDsKK+ato+espuWPtyA+IHNlaWZ1Z291XCA7CivnhKHnlKPogIUgPiBtdXNhbnNoYVwgOwor6IKy5YWQ5pu4ID4gaWt1amlzaG9cIDsKK+Wumuacn+iIuSA+IHRlaWtpc2VuXCA7CivmiYvlvIHlvZMgPiB0ZWJlbnRvdVwgOwor5Lm+54el5qmfID4ga2Fuc291a2lcIDsKK+S4ieaXpemWkyA+IG1pa2tha2FuXCA7CivljYHkuozliIYgPiBqdXVuaWJ1blwgOwor56i95Y+k5Y+wID4ga2Vpa29kYWlcIDsKK+WFiOmgreS8jSA+IHNlbnRvdWdvXCA7Civlh7rmnaXpq5ggPiBkZWtpZGFrYVwgOwor5LiJ5LiW55u4ID4gc2FuemVzb3VcIDsKK+mBi+aguemIjSA+IHVua29uZG9uXCA7CivooZvnlJ/kuIogPiBlaXNlaWpvdVwgOwor5Yy75a2m5aOrID4gaWdha3VzaGlcIDsKK+iri+iyoOS6uiA+IHVrZW9pbmluXCA7Civmlq3pnaLlm7MgPiBkYW5tZW56dVwgOwor6Jma5Luu54y/ID4ga29rZXphcnVcIDsKK+acquS9v+eUqCA+IG1pc2hpeW91XCA7Civpm7vms6LmmJ8gPiBkZW5wYXNlaVwgOwor6Z+z6Z+76KuWID4gb24nJ2lucm9uXCA7CivmqZ/morDlt6UgPiBraWthaWtvdVwgOwor5YaN5bCB6Y6WID4gc2FpZnV1c2FcIDsKK+mYsuazouWgpCA+IGJvdWhhdGVpXCA7CivpgYvou6LmiYsgPiB1bnRlbnNodVwgOwor5LqJ6KaH5oimID4gc291aGFzZW5cIDsKK+m7kuaWh+WtlyA+IGt1cm9tb2ppXCA7CivnhKHpp4TotrMgPiBtdWRhYXNoaVwgOwor552A54mp5ZywID4ga2ltb25vamlcIDsKK+Wkluawl+WcjyA+IGdhaWtpa2VuXCA7CivplovkvJrml6UgPiBrYWlrYWliaVwgOwor55Sx5p2l5pu4ID4geXVyYWlzaG9cIDsKK+m1neWPo+eYoSA+IGdha291c291XCA7Civkub7nh6XmnpwgPiBrYW5zb3VrYVwgOwor5a6J5YWo5oCnID4gYW56ZW5zZWlcIDsKK+S5vueHpeacnyA+IGthbnNvdWtpXCA7CivmoITppIrlo6sgPiBlaXlvdXNoaVwgOwor5Y+w5biD5be+ID4gZGFpYnVraW5cIDsKK+ani+aIkOWToSA+IGtvdXNlaWluXCA7CivmqKHnr4TnlJ8gPiBtb2hhbnNlaVwgOwor5a6J5YWo5byBID4gYW56ZW5iZW5cIDsKK+mnhuWLlei8qiA+IGt1ZG91cmluXCA7CivmnbHmtIvlj7IgPiB0b3lvZnVtaVwgOwor5Y2Y57K+5bqmID4gdGFuc2VpZG9cIDsKK+eBq+acqOWcnyA+IGthbW9rdWRvXCA7Civku6PorbDliLYgPiBkYWlnaXNlaVwgOwor5pyq5a6a56i/ID4gbWl0ZWlrb3VcIDsKK+S4luipseeJqSA+IHNld2Ftb25vXCA7CivoprPmiKboqJggPiBrYW5zZW5raVwgOwor5aSp55Oc57KJID4gdGVua2FmdW5cIDsKK+W9ouaIkOacnyA+IGtlaXNlaWtpXCA7CivmlL7mmKDmqKkgPiBob3VlaWtlblwgOwor55uj6KaW5omAID4ga2Fuc2hpam9cIDsKK+W+oeacrOWwiiA+IGdvaG9uem9uXCA7CivljZjntJTljJYgPiB0YW5qdW5rYVwgOwor5YCL5Lq65ZCNID4ga29qaW5tZWlcIDsKK+aknOecvOWMuyA+IGtlbmdhbicnaVwgOwor5Yy75a2m5Y+yID4gaWdha3VzaGlcIDsKK+acqui4j+WzsCA+IG1pdG91aG91XCA7Civmlq3mlq3lm7ogPiBkYW5kYW5rb1wgOwor5pqW5oi/5ZmoID4gZGFuYm91a2lcIDsKK+aWoeaXi+iAhSA+IGFzc2Vuc2hhXCA7Civku4/nlJ/kvJogPiBidXNzaG91ZVwgOwor6KaP5qC85YyWID4ga2lrYWt1a2FcIDsKK+WPuOS7pOmDqCA+IHNoaXJlaWJ1XCA7CivmhI/ljKDmqKkgPiBpc2hvdWtlblwgOwor5bCK5pWs6KqeID4gc29ua2VpZ29cIDsKK+W9ouaFi+e0oCA+IGtlaXRhaXNvXCA7Civnvo7lsJHlpbMgPiBiaXNob3Vqb1wgOwor5YaG6YGL5YuVID4gZW4nJ3VuZG91XCA7CivosaHniZnoibIgPiB6b3VnZWlyb1wgOwor6YGu5pat5ZmoID4gc2hhZGFua2lcIDsKK+ioseWPr+abuCA+IGt5b2thc2hvXCA7CivllYborbDlk6EgPiBzaG91Z2lpblwgOwor5b6h5LiA5pawID4gZ29pc3NoaW5cIDsKK+aEieW/q+eKryA+IHl1a2FpaGFuXCA7CivmjIfnpLrmnb8gPiBzaGlqaWJhblwgOwor6YmE5bel5omAID4gdGVra291am9cIDsKK+e1jOWWtumboyA+IGtlaWVpbmFuXCA7CivpmbDpmb3luKsgPiBvbicneW91amlcIDsKK+aPm+awl+aJhyA+IGthbmtpc2VuXCA7CivpnZ7lkIjms5UgPiBoaWdvdWhvdVwgOwor6aOb6KGM6ImHID4gaGlrb3V0ZWlcIDsKK+mjm+ihjOiIuSA+IGhpa291c2VuXCA7CivntYzllrbpmaMgPiBrZWllaWppblwgOwor5b6h5p2l5YWJID4gZ29yYWlrb3VcIDsKK+S4jeaWreiNiSA+IGZ1ZGFuc291XCA7CivmoITppIrliaQgPiBlaXlvdXphaVwgOwor6YCj6Y6W5bqXID4gcmVuc2F0ZW5cIDsKK+WFteazleWutiA+IGhlaWhvdWthXCA7CivpoLvluqbmlbAgPiBoaW5kb3N1dVwgOwor6LOH5pys5a62ID4gc2hpaG9ua2FcIDsKK+acgOWPs+e/vCA+IHNhaXV5b2t1XCA7CivmoITppIrliIYgPiBlaXlvdWJ1blwgOwor5Y+v5Yem5YiGID4ga2FzaG9idW5cIDsKK+iSmeWPpOaWkSA+IG1vdWtvaGFuXCA7Civlr5LnqL3lj6QgPiBrYW5nZWlrb1wgOwor56ys5LiJ57SAID4gZGFpc2Fua2lcIDsKK+eggumiqOWRgiA+IHN1bmFidXJvXCA7CivpgYvou6Llo6sgPiB1bnRlbnNoaVwgOwor56ys5LiA57eaID4gZGFpaXNzZW5cIDsKK+mCqumtlOeJqSA+IGphbWFtb25vXCA7CivpioDooYzlrrYgPiBnaW5rb3VrYVwgOwor5LiJ5LuZ5Y+JID4gc2Fuc2Vuc2FcIDsKK+WGjeW3peS6iyA+IHNhaWtvdWppXCA7Civoo4/ml6XmnKwgPiB1cmFuaWhvblwgOwor6KKr5YKt6ICFID4gaGl5b3VzaGFcIDsKK+i7veawtOeCiSA+IGtlaXN1aXJvXCA7Civoh6rnlLHmuK8gPiBqaXl1dWtvdVwgOwor5b6h5pu55a2QID4gb256b3VzaGlcIDsKK+mYsuawtOaJiSA+IGJvdXN1aWhpXCA7CivlsYXlv4PlnLAgPiBpZ29rb2NoaVwgOwor5Zyw5LiL6YGTID4gY2hpa2Fkb3VcIDsKK+eEoemnhOiKsSA+IG11ZGFiYW5hXCA7CivkuI7lpKrogIUgPiB5b3RhbW9ub1wgOwor54Sh5a6a6KaLID4gbXV0ZWlrZW5cIDsKK+e+juWuueW4qyA+IGJpeW91c2hpXCA7CivnmbrngavngrkgPiBoYWtrYXRlblwgOwor54++5Luj5YyWID4gZ2VuZGFpa2FcIDsKK+emj+S6leecjCA+IGZ1a3Vpa2VuXCA7CivkuI3mlazomZQgPiBmdWtlaWtlblwgOwor5LiB5a2Q5rK5ID4gY2hvdWppeXVcIDsKK+S5vueHpeWtoyA+IGthbnNvdWtpXCA7Civmlq3mlq3kuY4gPiBkYW5kYW5rb1wgOwor6LKh5YuZ5a6YID4gemFpbXVrYW5cIDsKK+aWmeeQhuWxiyA+IHJ5b3VyaXlhXCA7CivlgZzou4rloLQgPiB0ZWlzaGFiYVwgOwor5oSf5YWJ5bqmID4ga2Fua291ZG9cIDsKK+eEoeiDveiAhSA+IG11bm91c2hhXCA7CivkuqTlj4nngrkgPiBrb3VzYXRlblwgOwor5rC35rKz5pyfID4gaHlvdWdha2lcIDsKK+S9jumbu+S9jSA+IHRlaWRlbicnaVwgOwor5Ye65LiW6a2aID4gc2h1c3NldW9cIDsKK+mBi+i7ouWPsCA+IHVudGVuZGFpXCA7Civph47lv4PlrrYgPiB5YXNoaW5rYVwgOwor6Ieq55Sx5qipID4gaml5dXVrZW5cIDsKK+mYsuawtOW4gyA+IGJvdXN1aWZ1XCA7Civlho3oh6jmtL4gPiBzYWlyaW5oYVwgOwor5ZCN5aC06Z2iID4gbWVpYmFtZW5cIDsKK+ethuiomOS9kyA+IGhpa2tpdGFpXCA7CivlvKbmpb3lmaggPiBnZW5nYWtraVwgOwor5rue5Zyo6LK7ID4gdGFpemFpaGlcIDsKK+imj+WumuWApCA+IGtpdGVpY2hpXCA7CivkuIDkvZPmhJ8gPiBpdHRhaWthblwgOwor6LWk56CC57OWID4gYWthemF0b3VcIDsKK+eJm+Wwj+WxiyA+IHVzaGlnb3lhXCA7Civlu4nkvqHlk4EgPiByZW5rYWhpblwgOwor5rCR6ZyA5ZOBID4gbWluanVoaW5cIDsKK+ecn+S6uumWkyA+IG1hbmluZ2VuXCA7Civph5Hnm57oirEgPiBraW5zZW5rYVwgOwor5Y+W5rKZ5rGwID4gdG9yaXphdGFcIDsKK+mKgOihjOWToSA+IGdpbmtvdWluXCA7CivlsaTkvY3lraYgPiBzb3VpZ2FrdVwgOwor6YCP6KaW5ZuzID4gdG91c2hpenVcIDsKK+WQjee+qeS6uiA+IG1laWdpbmluXCA7CivntabmsrnmiYAgPiBreXV1eXVqb1wgOwor6Ieq6LWw56CyID4gamlzb3Vob3VcIDsKK+WvhOeov+iAhSA+IGtpa291c2hhXCA7CivmipLmg4XoqakgPiBqb2pvdXNoaVwgOwor5YaG5YiD5YiAID4gZW5qaW50b3VcIDsKK+S5vueHpeWZqCA+IGthbnNvdWtpXCA7CivkuInkuIPml6UgPiBtaW5hbm9rYVwgOwor5a+65bCP5bGLID4gdGVyYWtveWFcIDsKK+W+oeabueWPuCA+IG9uem91c2hpXCA7CivnlLDpm7Lpm4AgPiB0YWhpYmFyaVwgOwor5rip5rm/5biDID4gb25zaGlwcHVcIDsKK+W+oemdouebuCA+IGdvbWVuc291XCA7CivkuIrmma/msJcgPiBqb3VrZWlraVwgOwor6IKy6Iux5LyaID4gaWt1ZWlrYWlcIDsKK+S5l+mmrOmaiiA+IGpvdWJhdGFpXCA7CivlnLDkuIvooZcgPiBjaGlrYWdhaVwgOwor6Z2S5oe45bejID4gYW9rYWtlc3VcIDsKK+S4jeaVrOe9qiA+IGZ1a2VpemFpXCA7Civljp/lrZDkvqEgPiBnZW5zaGlrYVwgOwor57eP5q2m57eaID4gc291YnVzZW5cIDsKK+S4jee4uee3uyA+IGJ1a2lyeW91XCA7Civop6Plg4/luqYgPiBrYWl6b3Vkb1wgOwor5o6n6Ki054q2ID4ga291c29qb3VcIDsKK+WGjeaknOafuyA+IHNhaWtlbnNhXCA7CivopIfluqfmqZ8gPiBmdWt1emFraVwgOwor5om56KmV5a62ID4gaGloeW91a2FcIDsKK+W+oeS4reWFgyA+IG9jaHV1Z2VuXCA7CivkurrnnJ/kvLwgPiBoaXRvbWFuZVwgOwor55qE5Zyw5L2NID4gdGVraWNoaWlcIDsKK+aPm+awl+WPoyA+IGthbmtpa291XCA7Civoqr/mn7vlk6EgPiBjaG91c2FpblwgOwor5LiW6Kmx5b25ID4gc2V3YXlha3VcIDsKK+aCquefpeaBtSA+IHdhcnVkamllXCA7Civnn63mnJ/plpMgPiB0YW5raWthblwgOwor5b6h5Li75Lq6ID4gZ29zaHVqaW5cIDsKK+WQjOaZguaApyA+IGRvdWppc2VpXCA7Civpu4TlpInnsbMgPiBvdWhlbm1haVwgOwor5L2Z5omA6ICFID4geW9zb21vbm9cIDsKK+a7i+mkiuWIhiA+IGppeW91YnVuXCA7Civmo5rniaHkuLkgPiB0YW5hYm90YVwgOwor6YqY6YWS5bGLID4gbWVpc2h1eWFcIDsKK+WhqemhnuaziSA+IGVucnVpc2VuXCA7Civkv53oj4zogIUgPiBob2tpbnNoYVwgOwor6Ziy56CC5p6XID4gYm91c2FyaW5cIDsKK+mWieS4lueVjCA+IGhlaXNla2FpXCA7CivlnLDkuIvojI4gPiBjaGlrYWtlaVwgOwor5aSa6L665b2iID4gdGFoZW5rZWlcIDsKK+S4jeaYjuaclyA+IGZ1bWVpcm91XCA7Civms6XngavlsbEgPiBkZWlrYXphblwgOwor5Lqs6YO95bqcID4ga3lvdXRvZnVcIDsKK+S7pOWkq+S6uiA+IHJlaWZ1amluXCA7CivnvbflhY3mqKkgPiBoaW1lbmtlblwgOwor5LiB5a2X5b2iID4gdGVpamlrZWlcIDsKK+WAmeijnOiAhSA+IGtvdWhvc2hhXCA7CivntbXnlLvppKggPiBrYWlnYWthblwgOwor5Zu95Za25YyWID4ga29rdWVpa2FcIDsKK+eJqeaVheiAhSA+IGJ1a2tvc2hhXCA7CivliY3nm7jmkrIgPiBtYWV6dW1vdVwgOwor56CU57Gz5qmfID4ga2VubWFpa2lcIDsKK+aal+m7kuacnyA+IGFua29rdWtpXCA7Civnj77mmYLngrkgPiBnZW5qaXRlblwgOwor6Zqj5L+d6aSoID4gcmlucG9rYW5cIDsKK+eEvOWkt+W8viA+IHNob3VpZGFuXCA7CivkuIHlrZfluK8gPiB0ZWlqaXRhaVwgOwor5Yqg6YWN57GzID4ga2FoYWltYWlcIDsKK+mrmOeyvuW6piA+IGtvdXNlaWRvXCA7CivpmbDplqLmlbAgPiBpbmthbnN1dVwgOwor5rC05rOz5bi9ID4gc3VpZWlib3VcIDsKK+iyuOiyu+eUnyA+IHRhaWhpc2VpXCA7CivlopfnqI7moYggPiB6b3V6ZWlhblwgOwor6aST6ay85YWxID4gZ2FraWRvbW9cIDsKK+ioseWPr+WItiA+IGt5b2thc2VpXCA7CivlpbPmgKflg48gPiBqb3NlaXpvdVwgOwor54Gr5pif5bm0ID4ga2FzZWluZW5cIDsKK+S6nOehq+mFuCA+IGFyeXV1c2FuXCA7Civlho3ou43lgpkgPiBzYWlndW5iaVwgOwor5p2/5bGL6LKdID4gaXRheWFnYWlcIDsKK+aWoeaXi+ahiCA+IGFzc2VuJydhblwgOwor6Iqx5bSX5bKpID4ga2Frb3VnYW5cIDsKK+acquWujOaIkCA+IG1pa2Fuc2VpXCA7CivnhKHnlKjlv4MgPiBidXlvdWppblwgOwor5oiQ5paH5YyWID4gc2VpYnVua2FcIDsKK+eyl+aCquWTgSA+IHNvYWt1aGluXCA7CivmjqfoqLTmqKkgPiBrb3Vzb2tlblwgOwor6Kq/55CG5aC0ID4gY2hvdXJpYmFcIDsKK+WcsOS4i+e3miA+IGNoaWthc2VuXCA7CivkupznoZ3phbggPiBhc2hvdXNhblwgOwor5a6a5pyf5oimID4gdGVpa2lzZW5cIDsKK+S9k+ezu+WMliA+IHRhaWtlaWthXCA7CivntYzllrbogIUgPiBrZWllaXNoYVwgOwor6KKr5YaZ5L2TID4gaGlzaGF0YWlcIDsKK+WIhuWoqeacnyA+IGJ1bmJlbmtpXCA7Civlvozku5XoiJ4gPiBhdG9qaW1haVwgOwor6KOP6Z2i5Y+yID4gcmltZW5zaGlcIDsKK+imi+S4lueJqSA+IG1pc2Vtb25vXCA7CivooqvnlKjogIUgPiBoaXlvdXNoYVwgOwor6Kqe5b2Z5YqbID4gZ29pcnlva3VcIDsKK+mtlOazleeTtiA+IG1haG91YmluXCA7CivliIblqKnmmYIgPiBidW5iZW5qaVwgOwor5LiK5LiL5YuVID4gam91Z2Vkb3VcIDsKK+W5s+mdouWbsyA+IGhlaW1lbnp1XCA7CivogJDngavmgKcgPiB0YWlrYXNlaVwgOwor5YaN5a6a576pID4gc2FpdGVpZ2lcIDsKK+mbu+awl+W3pSA+IGRlbmtpa291XCA7Civlj43lj6TnsaAgPiBob2d1a2Fnb1wgOwor5b6h6ZmN6KqVID4gZ29rb3V0YW5cIDsKK+aYjuaWh+WMliA+IG1laWJ1bmthXCA7CivohbnlhbflkIggPiBoYXJhZ3VhaVwgOwor6YG45oyZ5pelID4gc2Vua3lvYmlcIDsKK+i8uOeyvueuoSA+IHl1c2Vpa2FuXCA7CivlsI/lo7LlupcgPiBrb3VyaXRlblwgOwor5a6H5a6Z6KuWID4gdWNodXVyb25cIDsKK+mRkeWumuWutiA+IGthbnRlaWthXCA7Civlm7rmurbkvZMgPiBrb3lvdXRhaVwgOwor5qGI5YaF5omAID4gYW4nJ25haWpvXCA7Civoh6rkv6HlrrYgPiBqaXNoaW5rYVwgOwor5Lqc6Ymb5pyrID4gYWVubWF0c3VcIDsKK+Wwjumbu+W6piA+IGRvdWRlbmRvXCA7CivnnIznn6XkuosgPiBrZW5jaGlqaVwgOwor5a6H5a6Z6KazID4gdWNodXVrYW5cIDsKK+mbu+WLleapnyA+IGRlbmRvdWtpXCA7CivkuIDkuIHnm64gPiBpdGNob3VtZVwgOwor5LyK6YGU6KGGID4gZGF0ZXNodXVcIDsKK+iFi+eqqeiFuiA+IGVraWthc2VuXCA7CivkuI3mlofms5UgPiBmdWJ1bnBvdVwgOwor5LiA6LKr5oCnID4gaWtrYW5zZWlcIDsKK+WPo+WGheeCjiA+IGtvdW5haWVuXCA7CivpgY7kuI3otrMgPiBrYWZ1c29rdVwgOwor5oSb55So6ICFID4gYWl5b3VzaGFcIDsKK+WFrOawkeenkSA+IGtvdW1pbmthXCA7Civlh7rmoLzlrZAgPiBkZWdvdXNoaVwgOwor5LuK5LiW57SAID4ga29uc2Vpa2lcIDsKK+acquWpmuiAhSA+IG1pa29uc2hhXCA7CivlgJnoo5znlJ8gPiBrb3Vob3NlaVwgOwor5p2x5Y2X5LqcID4gdG91bmFuJydhXCA7CivkvpvppIrloZQgPiBrdXlvdXRvdVwgOwor5YGl6IOD5YmkID4ga2VuJydpemFpXCA7Civkv67pqJPogIUgPiBzaHVnZW5qYVwgOwor5p+U6YGT552AID4ganV1ZG91Z2lcIDsKK+W+ruezu+aVsCA+IGJpa2Vpc3V1XCA7Civku5Xnva7loLQgPiBzaGlva2liYVwgOwor5bmz5pa55ZKMID4gaGVpaG91d2FcIDsKK+S8tOWlj+mDqCA+IGJhbnNvdWJ1XCA7Civlj6TlhpnmnKwgPiBrb3NoYWhvblwgOwor5Ye65p2l54mpID4gZGVraW1vbm9cIDsKK+Wcn+mlhemgrSA+IGRvbWFuanV1XCA7CivkuJboqbHkurogPiBzZXdhYml0b1wgOwor576O6aGU5rC0ID4gYmlnYW5zdWlcIDsKK+iHqueUseWIkSA+IGppeXV1a2VpXCA7CivloanpoqjlkYIgPiBzaGlvYnVyb1wgOwor5YWF6Zu75ZmoID4ganV1ZGVua2lcIDsKK+iiq+mok+iAhSA+IGhpa2Vuc2hhXCA7CivlsI/nhorluqcgPiBrb2d1bWF6YVwgOwor5omL5L+h6KqeID4gdGVzaGluZ29cIDsKK+i1pOavm+W4gyA+IGFrYWdldHRvXCA7CivmsLTlvannlLsgPiBzdWlzYWlnYVwgOwor5LiA5Lq65a+dID4gaGl0b3JpbmVcIDsKK+mdkuWRs+azpSA+IGFvbWlkb3JvXCA7Civoh6rnlLHlhZogPiBqaXl1dXRvdVwgOwor6IqZ6JOJ5bOwID4gZnV5b3Vob3VcIDsKK+iQveiKseeUnyA+IHJha2thc2VpXCA7CivlsbHplpPpg6ggPiBzYW5rYW5idVwgOwor5ZCM5pmC5LujID4gZG91amlkYWlcIDsKK+eEoeWul+a0viA+IG11c2h1dWhhXCA7Civou43mlL/lupwgPiBndW5zZWlmdVwgOwor5amm5Lq65LyaID4gZnVqaW5rYWlcIDsKK+WvuuWtkOWxiyA+IHRlcmFrb3lhXCA7Civljp/nuYrntq0gPiBnZW5zZW4nJ2lcIDsKK+e2membu+awlyA+IGtlaWRlbmtpXCA7Civlj7PkuK3plpMgPiB1Y2h1dWthblwgOwor5LiN5paH5piOID4gZnVidW5tZWlcIDsKK+W5s+Wcn+mWkyA+IGhpcmFkb21hXCA7CivmrKHnlLflnYogPiBqaW5hbmJvdVwgOwor6IaA6IOx54KOID4gYm91a291ZW5cIDsKK+acieWKueaJkyA+IHl1dWtvdWRhXCA7Civpm6jph4/oqIggPiB1cnlvdWtlaVwgOwor5a6H5a6Z6Ii5ID4gdWNodXVzZW5cIDsKK+a4m+ihsOWZqCA+IGdlbnN1aWtpXCA7CivnubDns7jmqZ8gPiBzb3VzaGlraVwgOwor5aSa6Iq45oCnID4gdGFnZWlzZWlcIDsKK+i1pOWIh+espiA+IGFrYWdpcHB1XCA7CivngavmmJ/kurogPiBrYXNlaWppblwgOwor5pel6Iiq5qmfID4gbmlra291a2lcIDsKK+S7iuS4lueVjCA+IGtvbnNla2FpXCA7Civou43pnIDlk4EgPiBndW5qdWhpblwgOwor5rC06JK45rCXID4gc3Vpam91a2lcIDsKK+WNmOa8ouWtlyA+IHRhbmthbmppXCA7CivljYHmloflrZcgPiBqdXVtb25qaVwgOwor5a6I5YKZ5YW1ID4gc2h1YmloZWlcIDsKK+aal+WPt+aWhyA+IGFuZ291YnVuXCA7Civpq5jnrYnnp5EgPiBrb3V0b3VrYVwgOwor5re75LmX5ZOhID4gdGVuam91aW5cIDsKK+ahiOWGheWbsyA+IGFuJyduYWl6dVwgOwor5ZCI6KiA6JGJID4gYWlrb3RvYmFcIDsKK+Wumuacn+WIuCA+IHRlaWtpa2VuXCA7CivkuojnrpfmoYggPiB5b3NhbicnYW5cIDsKK+WkmuanmOaApyA+IHRheW91c2VpXCA7CivlkI3mloflrrYgPiBtZWlidW5rYVwgOwor6Ieq6LOg5rOVID4gamliYWlob3VcIDsKK+WHuuS4jeeyviA+IGRlYnVzaG91XCA7CivlronlsbHlsqkgPiBhbnphbmdhblwgOwor6ICB5aSn5a62ID4gcm91dGFpa2FcIDsKK+awj+e0oOaApyA+IHVqaXN1am91XCA7CivkuIrlpKnmsJcgPiBqb3V0ZW5raVwgOwor56ys5LiA5aOwID4gZGFpaXNzZWlcIDsKK+WwjueBq+e3miA+IGRvdWthc2VuXCA7Civkvp3poLzlv4MgPiBpcmFpc2hpblwgOwor5a6H5a6Z57eaID4gdWNodXVzZW5cIDsKK+iyoOWCteiAhSA+IGZ1c2Fpc2hhXCA7CivlvozpoK3pg6ggPiBrb3V0b3VidVwgOwor55qu6Iaa55eFID4gaGlmdWJ5b3VcIDsKK+iAgeWkq+WppiA+IHJvdWZ1dWZ1XCA7CivlnLDkuIvmsLQgPiBjaGlrYXN1aVwgOwor6Zu75rCX5LujID4gZGVua2lkYWlcIDsKK+Wumue+qeWfnyA+IHRlaWdpaWtpXCA7CivmlL7ngavnvaogPiBob3VrYXphaVwgOwor6Zuo5ZCI5769ID4gYW1hZ2FwcGFcIDsKK+WPl+WIkeiAhSA+IGp1a2Vpc2hhXCA7CivpnZ7lhazplosgPiBoaWtvdWthaVwgOwor5pmu6KuL5aC0ID4gZnVzaGluYmFcIDsKK+WkmuWztua1tyA+IHRhdG91a2FpXCA7CivlirTlg43mrYwgPiByb3Vkb3VrYVwgOwor5a+E5riv5ZywID4ga2lrb3VjaGlcIDsKK+Wumuacn+S+vyA+IHRlaWtpYmluXCA7CivmnKrmnaXlvaIgPiBtaXJhaWtlaVwgOwor6aOb6KGM5aOrID4gaGlrb3VzaGlcIDsKK+WmiueUo+WppiA+IG5pbnNhbnB1XCA7Civnn63mmYLplpMgPiB0YW5qaWthblwgOwor5YGP5beu5YCkID4gaGVuc2FjaGlcIDsKK+S4i+mZjee3miA+IGtha291c2VuXCA7CivmtIvoj5PlrZAgPiB5b3VnYXNoaVwgOwor5pat6KOB5qmfID4gZGFuc2Fpa2lcIDsKK+mjm+ihjOWgtCA+IGhpa291am91XCA7Civlt6XlhbflhaUgPiBrb3VndWlyZVwgOwor5L2T5rip6KiIID4gdGFpb25rZWlcIDsKK+eZuuihjOaXpSA+IGhha2tvdWJpXCA7Civmi7fllY/lhbcgPiBnb3Vtb25ndVwgOwor6Zmk5aSW5L6LID4gam9nYWlyZWlcIDsKK+Wvv+iAgeS6uiA+IGp1cm91amluXCA7Civlhazlj5blp5QgPiBrb3V0b3JpaVwgOwor6Zmi5aSW5ZujID4gaW5nYWlkYW5cIDsKK+S4jeWkieaApyA+IGZ1aGVuc2VpXCA7CivlpJrnlKPns7sgPiB0YXNhbmtlaVwgOwor5bCP6KaP5qihID4gc2hvdWtpYm9cIDsKK+WQiOitsOWItiA+IGdvdWdpc2VpXCA7Civntq3nrqHmnZ8gPiBpa2Fuc29rdVwgOwor6auY5rip6KiIID4ga291b25rZWlcIDsKK+WIneetieenkSA+IHNob3RvdWthXCA7CivoqJjmhrbms5UgPiBraW9rdWhvdVwgOwor5LuK5pyd5pa5ID4ga2VzYWdhdGFcIDsKK+mBuOaMmeWMuiA+IHNlbmt5b2t1XCA7CivnoLTnoJXmgKcgPiBoYXNhaXNlaVwgOwor6bm/6YeO6IuRID4gcm9rdXlhb25cIDsKK+iInuWPsOijjyA+IGJ1dGFpdXJhXCA7CivntYzllrbmqKkgPiBrZWllaWtlblwgOwor5LiN54eD5oCnID4gZnVuZW5zZWlcIDsKK+elnuelh+WumCA+IGppbmdpa2FuXCA7CivmsI/ntKDlp5MgPiB1amlzdWpvdVwgOwor6KKr5a6z6ICFID4gaGlnYWlzaGFcIDsKK+awtOmFuOWfuiA+IHN1aXNhbmtpXCA7CivlpKnkvZPlm7MgPiB0ZW50YWl6dVwgOwor6L+R6Led6ZuiID4ga2lua3lvcmlcIDsKK+a6luekvuWToSA+IGp1bnNoYWluXCA7Civkurrku7bosrsgPiBqaW5rZW5oaVwgOwor5bi45b6X5oSPID4gam91dG9rdWlcIDsKK+earuiEguiFuiA+IGhpc2hpc2VuXCA7CivnhKHlrprlvaIgPiBtdXRlaWtlaVwgOwor5Y+v55So5oCnID4ga2F5b3VzZWlcIDsKK+S6uueUn+a0viA+IGppbnNlaWhhXCA7CivnmbrooYzmiYAgPiBoYWtrb3Vqb1wgOwor5pGp5aSp5qW8ID4gbWF0ZW5yb3VcIDsKK+Wwj+mWk+eJqSA+IGtvbWFtb25vXCA7CivlvqHlpKflsaQgPiBnb3RhaXNvdVwgOwor6K2m5YKZ6ZqKID4ga2VpYml0YWlcIDsKK+WJsueDueedgCA+IGthcHBvdWdpXCA7CivljZTlkozpn7MgPiBreW91d2FvblwgOwor5Y+X5YuV5oWLID4ganVkb3V0YWlcIDsKK+e3j+WLleWToSA+IHNvdWRvdWluXCA7CivoirHmnpfns5YgPiBrYXJpbnRvdVwgOwor5q2j56S+5ZOhID4gc2Vpc2hhaW5cIDsKK+etiea4qee3miA+IHRvdW9uc2VuXCA7CivlvqHpnIrlsYsgPiBtaXRhbWF5YVwgOwor5LiA5aSV6KmxID4gaXNzZWtpd2FcIDsKK+Wwj+eCuuabvyA+IGtvZ2F3YXNlXCA7CivnrKzkuIDkvY0gPiBkYWlpY2hpaVwgOwor56iO6Zai5ZCPID4gemVpa2FucmlcIDsKK+mkiuiCsuiyuyA+IHlvdWlrdWhpXCA7CivmtYHpj5HppqwgPiB5YWJ1c2FtZVwgOwor5o6n6Ki05Lq6ID4ga291c29uaW5cIDsKK+iMtuipseS8miA+IGNoYXdha2FpXCA7Civllqvnt4rkuosgPiBraWtraW5qaVwgOwor5ZC46YeR5YmbID4ga29rb25nb3VcIDsKK+iAgee3tOWutiA+IHJvdXJlbmthXCA7CivkuI3oqr/lkowgPiBmdWNob3V3YVwgOwor5rCX566h5pSvID4ga2lrYW5zaGlcIDsKK+awtOmFuOWMliA+IHN1aXNhbmthXCA7CivlpKfkurrmsJcgPiBkYWluaW5raVwgOwor6Z2S6YqF5ZmoID4gc2VpZG91a2lcIDsKK+mjm+ihjOS+vyA+IGhpa291YmluXCA7Civlj6/og73ms5UgPiBrYW5vdWhvdVwgOwor55yf54+g5q+NID4gc2hpbmp1Ym9cIDsKK+WwguaUu+enkSA+IHNlbmtvdWthXCA7CivljJbohr/oj4wgPiBrYW5vdWtpblwgOwor6Z2e5bi457eaID4gaGlqb3VzZW5cIDsKK+eyvuS4gOadryA+IHNlaWlwcGFpXCA7CivpgYfkuI3pgYcgPiBndXVmdWd1dVwgOwor5pyq6ICV5ZywID4gbWlrb3VjaGlcIDsKK+mWgOS4i+eUnyA+IG1vbmthc2VpXCA7CivkuIDpoqjlkYIgPiBoaXRvZnVyb1wgOwor5Z+56aSK5Z+6ID4gYmFpeW91a2lcIDsKK+i7jemaiuWMliA+IGd1bnRhaWthXCA7CivmvJToirjkvJogPiBlbmdlaWthaVwgOwor5paH5Lq655S7ID4gYnVuamluZ2FcIDsKK+ePvuaZguS7oyA+IGdlbmppZGFpXCA7CivluoPnr4Tlm7IgPiBrb3VoYW4nJ2lcIDsKK+WGhuWxi+aguSA+IG1hcnV5YW5lXCA7Civln7nppIrlnJ8gPiBiYWl5b3Vkb1wgOwor5a+S5rCX5ZujID4ga2Fua2lkYW5cIDsKK+eyl+WIqeebiiA+IGFyYXJpZWtpXCA7CivkuojnrpflpJYgPiB5b3NhbmdhaVwgOwor6Z2e5rCR5Li7ID4gaGltaW5zaHVcIDsKK+WPl+ebiuiAhSA+IGp1ZWtpc2hhXCA7Civlronlrprmnb8gPiBhbnRlaWJhblwgOwor6KiY5b+16aSoID4ga2luZW5rYW5cIDsKK+Wkp+Wuh+WumSA+IGRhaXVjaHV1XCA7CivkupzmgKXmgKcgPiBha3l1dXNlaVwgOwor6KiI566X57C/ID4ga2Vpc2FuYm9cIDsKK+mdmeatoueUuyA+IHNlaXNoaWdhXCA7CivkuI3mlbTlkIggPiBmdXNlaWdvdVwgOwor5LqM6YeN6aGOID4gbmlqdXVhZ29cIDsKK+WItuW+oeapnyA+IHNlaWd5b2tpXCA7CivkuoznrYnliIYgPiBuaXRvdWJ1blwgOwor5bmz54KJ5rOVID4gaGVpcm9ob3VcIDsKK+S6lOeonOWgoSA+IGdvcnlvdWhvXCA7CivmnKrmnaXlg48gPiBtaXJhaXpvdVwgOwor6Laz5rip5ZmoID4gc29rdW9ua2lcIDsKK+S6jOetieWFtSA+IG5pdG91aGVpXCA7CivosrTml4/pmaIgPiBraXpva3VpblwgOwor57aZ6Zu75ZmoID4ga2VpZGVua2lcIDsKK+iomOWPt+irliA+IGtpZ291cm9uXCA7CivlkI3oqZ7lj6UgPiBtZWlzaGlrdVwgOwor5Lyd6aas6Ii5ID4gdGVubWFzZW5cIDsKK+mKgOays+ezuyA+IGdpbmdha2VpXCA7CivlpKflrq7lj7ggPiBkYWlndXVqaVwgOwor5rWB6KGM55uuID4gaGF5YXJpbWVcIDsKK+mBoOimluecvCA+IGVuc2hpZ2FuXCA7CivljbXlt6Pngo4gPiByYW5zb3VlblwgOwor5pyq5Lqh5Lq6ID4gbWlib3VqaW5cIDsKK+S4jee1jOa4iCA+IGZ1a2VpemFpXCA7CivlvJXnlKjnrKYgPiBpbicneW91ZnVcIDsKK+aflOmBk+WutiA+IGp1dWRvdWthXCA7CivkuI3lnYfooaEgPiBmdWtpbmtvdVwgOwor5a++6Kmx6ICFID4gdGFpd2FzaGFcIDsKK+ion+WLmemDqCA+IHNob3VtdWJ1XCA7CivlvqHpnIrliY0gPiBnb3JlaXplblwgOwor5YWM5o+b5Yi4ID4gZGFrYW5rZW5cIDsKK+S4jeaRgueUnyA+IGZ1c2Vzc2VpXCA7Civml6XmnKzpoqggPiBuaWhvbmZ1dVwgOwor5YCZ6KOc5ZywID4ga291aG9jaGlcIDsKK+eggumYsuaelyA+IHNhYm91cmluXCA7CivkuIvlo6vlrpggPiBrYXNoaWthblwgOwor5biC6K2w5LyaID4gc2hpZ2lrYWlcIDsKK+S4gOaZguacnyA+IGljaGlqaWtpXCA7Civoh6rosqDlv4MgPiBqaWZ1c2hpblwgOwor55u45ZCI5YKYID4gYWlhaWdhc2FcIDsKK+ismeitsuiqniA+IGtlbmpvdWdvXCA7CivmibbmjIHnsbMgPiBmdWNoaW1haVwgOwor5YaN6LW35YuVID4gc2Fpa2lkb3VcIDsKK+eNo+WMu+WtpiA+IGp1dWlnYWt1XCA7CivpnZ7luLjnlKggPiBoaWpvdXlvdVwgOwor56C05buJ5oGlID4gaGFyZW5jaGlcIDsKK+WHuuaUvumhjCA+IGRlaG91ZGFpXCA7CivlronlrprmhJ8gPiBhbnRlaWthblwgOwor6aSK6ICB6ZmiID4geW91cm91aW5cIDsKK+mHjuiJr+eMqyA+IG5vcmFuZWtvXCA7CivmnKrkuIHlubQgPiBtaXRlaW5lblwgOwor5a6J5a6a5oCnID4gYW50ZWlzZWlcIDsKK+axuueul+acnyA+IGtlc3NhbmtpXCA7Civoh6rkuZfmoLkgPiBqaWpvdWtvblwgOwor5YWo6I236YeNID4gemVua2FqdXVcIDsKK+WlpeW+oeauvyA+IG9rdWdvdGVuXCA7Civoo73pgKDmiYAgPiBzZWl6b3Vqb1wgOwor5b+r55S35YWQID4ga2FpZGFuamlcIDsKK+aXuuaWh+ekviA+IG91YnVuc2hhXCA7CivotoXpn7Pms6IgPiBjaG91b25wYVwgOwor5a6I6K236ZyKID4gc2h1Z29yZWlcIDsKK+acqOabvuW3nSA+IGtpc29nYXdhXCA7CivlvLHpn7PlmaggPiBqYWt1b25raVwgOwor5rG6566X5pelID4ga2Vzc2FuYmlcIDsKK+iHquS4u+aoqSA+IGppc2h1a2VuXCA7Civog73lvIHlrrYgPiBub3ViZW5rYVwgOwor5Y+v6IO95oCnID4ga2Fub3VzZWlcIDsKK+Wkp+aXpumCoyA+IG9vZGFuJyduYVwgOwor5Y2w5bqm5pWZID4gaW5kb2t5b3VcIDsKK+eEoeS6uuWztiA+IG11amludG91XCA7CivnnJ/kvLzkuosgPiBtYW5lZ290b1wgOwor6KyE5YaZ5ZmoID4gdG91c2hha2lcIDsKK+W4sOmChOiAhSA+IGtpa2Fuc2hhXCA7CivliqnnlKPpmaIgPiBqb3NhbicnaW5cIDsKK+Wls+W6l+WToSA+IGpvdGVuJydpblwgOwor6Ju46YOo5bGLID4gdGFrb2JleWFcIDsKK+S6iOeul+S4iiA+IHlvc2Fuam91XCA7CivlrprmmYLliLYgPiB0ZWlqaXNlaVwgOwor5q2j5bym5rOiID4gc2VpZ2VuaGFcIDsKK+S9meaJgOS6iyA+IHlvc29nb3RvXCA7Civppqzpub/ogIUgPiBiYWthbW9ub1wgOwor5YSA56S85YW1ID4gZ2lyZWloZWlcIDsKK+aXpeacrOmFkiA+IG5paG9uc2h1XCA7Civml6nnlKPlhZAgPiBzb3V6YW5qaVwgOwor5o6h57a/5ZmoID4gc2FpbWVua2lcIDsKK+iLsemAo+mCpiA+IGVpcmVucG91XCA7Civml6nnlJ/lhZAgPiBzb3VzZWlqaVwgOwor5Yqg55uf6ICFID4ga2FtZWlzaGFcIDsKK+mZjembqOmHjyA+IGtvdXVyeW91XCA7CivorablgpnoiYcgPiBrZWliaXRlaVwgOwor5Ye65p2l5LqLID4gZGVraWdvdG9cIDsKK+S+oembu+WtkCA+IGthZGVuc2hpXCA7Civlj6TnlJ/nlYwgPiBrb3NlaWthaVwgOwor5Yi25YuV5qmfID4gc2VpZG91a2lcIDsKK+mHkemtmuWxiyA+IGtpbmd5b3lhXCA7CivmnKjlpKnok7wgPiBtYXRhdGFiaVwgOwor5Y2K6KO45L2TID4gaGFucmF0YWlcIDsKK+aXpeacrOi7jSA+IG5paG9uZ3VuXCA7Civml6XmnKzou4ogPiBuaWhvbnNoYVwgOwor5L+u576F6YGTID4gc2h1cmFkb3VcIDsKK+WVhuihjOeCuiA+IHNob3Vrb3VpXCA7CivmnaHph4zliLYgPiBqb3VyaXNlaVwgOwor5oqV5b2x5rOVID4gdG91ZWlob3VcIDsKK+acieWwvumhniA+IHl1dWJpcnVpXCA7CivmrKfnvoXlt7QgPiB5b3Vyb3BwYVwgOwor5LiW6ZaT5L2TID4gc2VrZW50ZWlcIDsKK+S8iumBlOW3uyA+IGRhdGVtYWtpXCA7CivmsLTliKnmqKkgPiBzdWlyaWtlblwgOwor5Y+y5a2m5a62ID4gc2hpZ2Fra2FcIDsKK+e0jeS7mOmHkSA+IG5vdWZ1a2luXCA7CivolY7puqbmrrsgPiBzb2JhZ2FyYVwgOwor5pa55ZCR6Ii1ID4gaG91a291ZGFcIDsKK+Wkj+iHs+e3miA+IGdlc2hpc2VuXCA7CivkuI3lnYfnrYkgPiBmdWtpbnRvdVwgOwor5a6H5a6Z5bi9ID4gdWNodXVib3VcIDsKK+eEoemgvOa8oiA+IGJ1cmFpa2FuXCA7Civmv4PluqboqIggPiBub3Vkb2tlaVwgOwor5LiA5pio5bm0ID4gb3RvdG9zaGlcIDsKK+acque1jOmokyA+IG1pa2Vpa2VuXCA7CivmnJ3lr53lnYogPiBhc2FuZWJvdVwgOwor6YGO5aSn6KaWID4ga2FkYWlzaGlcIDsKK+e/oee/oOiJsiA+IGhpc3VpaXJvXCA7CivlnJ/moLnmgKcgPiBkb2tvbmpvdVwgOwor57eP5qih5qeYID4gc291bW95b3VcIDsKK+ioiOeul+apnyA+IGtlaXNhbmtpXCA7CivlvIHlvZPlsYsgPiBiZW50b3V5YVwgOwor5Luj5omT6ICFID4gZGFpZGFzaGFcIDsKK+miqOWqkuiKsSA+IGZ1dWJhaWthXCA7CivnhKHoqabpqJMgPiBtdXNoaWtlblwgOwor6Ya46YCg6YWiID4gam91em91c3VcIDsKK+WPjeWLlea0viA+IGhhbmRvdWhhXCA7CivntYzmuIjlrrYgPiBrZWl6YWlrYVwgOwor5reL5be06IW6ID4gcmlucGFzZW5cIDsKK+iHquS4u+aApyA+IGppc2h1c2VpXCA7CivotorlpKnmpb0gPiBldGVucmFrdVwgOwor5qip5Yip6YeRID4ga2VucmlraW5cIDsKK+aFouaAp+WMliA+IG1hbnNlaWthXCA7CivmjojkubPmnJ8gPiBqdW55dXVraVwgOwor5bCC6ZaA6KqeID4gc2VubW9uZ29cIDsKK+WJjeiInuWPsCA+IG1hZWJ1dGFpXCA7Civpgbjnp5HnlJ8gPiBzZW5rYXNlaVwgOwor5a2j5YiK6KqMID4ga2lrYW5zaGlcIDsKK+Wun+mam+WutiA+IGppc3NhaWthXCA7CivkuIDmmLzlpJwgPiBpdGNodXV5YVwgOwor6KGG6K2w6ZmiID4gc2h1dWdpaW5cIDsKK+aXpeacrOijvSA+IG5paG9uc2VpXCA7CivljbDliKTluKsgPiBpbmJhbnNoaVwgOwor5bCP54Gr5ZmoID4gc2hvdWtha2lcIDsKK+eEoemiqOW4ryA+IG11ZnV1dGFpXCA7CivliLblvqHlmaggPiBzZWlneW9raVwgOwor6LWw5p+757eaID4gc291c2FzZW5cIDsKK+epuuaJi+WutiA+IGthcmF0ZWthXCA7CivkuI3lmajph48gPiBidWtpcnlvdVwgOwor5aSp5LqV5YCkID4gdGVuam91bmVcIDsKK+ioiOeul+acqCA+IGtlaXNhbmdpXCA7CivmjqHngq3miYAgPiBzYWl0YW5qb1wgOwor5byB5YuZ5a6YID4gYmVubXVrYW5cIDsKK+WPl+ebiuaoqSA+IGp1ZWtpa2VuXCA7CivliqDlt6XntJkgPiBrYWtvdXNoaVwgOwor5pWZ5YuZ6KqyID4ga3lvdW11a2FcIDsKK+mAo+WLleapnyA+IHJlbmRvdWtpXCA7CivkuqTlt67ngrkgPiBrb3VzYXRlblwgOwor6K2w5LqL6YyyID4gZ2lqaXJva3VcIDsKK+WGjeadpeW5tCA+IHNhcmFpbmVuXCA7CivkuIDmmKjlpJwgPiBpc3Nha3V5YVwgOwor5a6H5a6Z5aG1ID4gdWNodXVqaW5cIDsKK+awtOmBk+WxiyA+IHN1aWRvdXlhXCA7Civph43ou4zmnaEgPiBqdXVraWpvdVwgOwor6YGV57SE6YeRID4gaXlha3VraW5cIDsKK+m4mum1oeeXhSA+IG91bXVieW91XCA7CivljZjmgKfoirEgPiB0YW5zZWlrYVwgOwor5rOo5oSP54K5ID4gY2h1dWl0ZW5cIDsKK+W4uOWCmemHkSA+IGpvdWJpa2luXCA7Civou6Lnp7vmgKcgPiB0ZW4nJ2lzZWlcIDsKK+a0u+eBq+WxsSA+IGtha2themFuXCA7CivliqDlt6XnqI4gPiBrYWtvdXplaVwgOwor576O57Kn6ZmiID4gYmlzaG91aW5cIDsKK+iMtueuquespSA+IGNoYWRhbnN1XCA7CivlmbTngavlsbEgPiBmdW5rYXphblwgOwor5Zyw5pa55pmCID4gY2hpaG91amlcIDsKK+aCqumkk+msvCA+IHdhcnVnYWtpXCA7CivljZrmhJvlrrYgPiBoYWt1YWlrYVwgOwor5oOF5aCx6YOoID4gam91aG91YnVcIDsKK+aXpeacrOiMtiA+IG5paG9uY2hhXCA7CivlhYnooYzlt64gPiBrb3Vrb3VzYVwgOwor5aSW6ICz6YGTID4gZ2Fpamlkb3VcIDsKK+WcsOmch+azoiA+IGppc2hpbmhhXCA7CivkuInloYHmiZMgPiBzYW5ydWlkYVwgOwor5Yu+5byV54q2ID4ga291aW5qb3VcIDsKK+WcsOmbt+a6kCA+IGppcmFpZ2VuXCA7Civpm7vmqZ/lrZAgPiBkZW5raXNoaVwgOwor5bi45YKZ6LuNID4gam91YmlndW5cIDsKK+Wwj+Wei+WMliA+IGtvZ2F0YWthXCA7CivliLfmr5vlhYggPiBoYWtlc2FraVwgOwor6Z2S5YaF6ZqcID4gYW9zb2tvaGlcIDsKK+ipleitsOWToSA+IGh5b3VnaWluXCA7CivlhazliIbmr40gPiBrb3VidW5ib1wgOwor5Y+v6IG05bqmID4ga2FjaG91ZG9cIDsKK+eEoeadoeS7tiA+IG11am91a2VuXCA7Civnn6Lpo5vnmb0gPiB5YWdhc3VyaVwgOwor5omL6IWV5a62ID4gc2h1d2Fua2FcIDsKK+aknOS6i+atoyA+IGtlbmppc2VpXCA7Civlgb3lloTogIUgPiBnaXplbnNoYVwgOwor5Lyd5bCO5bqmID4gZGVuZG91ZG9cIDsKK+WFrOWLn+WCtSA+IGtvdWJvc2FpXCA7CivmqZ/plqLpioMgPiBraWthbmp1dVwgOwor5q2m5YuH5LydID4gYnV5dXVkZW5cIDsKK+WItuW+oeS4iyA+IHNlaWd5b2thXCA7Civok67oj6/ojYkgPiByZW5nZXNvdVwgOwor5aCx55+l5qmfID4gaG91Y2hpa2lcIDsKK+Wkj+iHs+eCuSA+IGdlc2hpdGVuXCA7CivmraboirjogIUgPiBidWdlaXNoYVwgOwor6LWw6aas54GvID4gc291bWF0b3VcIDsKK+atr+i7jOadoSA+IHNoaWtpam91XCA7Civkuozph43nqI4gPiBuaWp1dXplaVwgOwor5q2j5q+U5L6LID4gc2VpaGlyZWlcIDsKK+mgkOmHkeiAhSA+IHlva2luc2hhXCA7CivliqDpgJ/luqYgPiBrYXNva3Vkb1wgOwor5q2j5b2T5YyWID4gc2VpdG91a2FcIDsKK+aJi+S4jei2syA+IHRlYnVzb2t1XCA7CivlgbTngavlsbEgPiBzb2trYXphblwgOwor6YGO5LiN5Y+KID4ga2FmdWt5dXVcIDsKK+auuum8oOWJpCA+IHNhc3NvemFpXCA7CivoqJjlv7Xnpa0gPiBraW5lbnNhaVwgOwor5LiN5omL6ZqbID4gZnV0ZWdpd2FcIDsKK+S4jeetiei+uiA+IGZ1dG91aGVuXCA7CivooqvlrrPlnLAgPiBoaWdhaWNoaVwgOwor5qmf6Zai6LuKID4ga2lrYW5zaGFcIDsKK+aXpeacrOe0mSA+IG5paG9uc2hpXCA7CivlroflrpnkurogPiB1Y2h1dWppblwgOwor5r2c5rC05aSrID4gc2Vuc3VpZnVcIDsKK+W+oemZgOS7jyA+IG9kYWJ1dHN1XCA7CivlpJzlrabmoKEgPiB5YWdha2tvdVwgOwor5YaN5LiK5pigID4gc2Fpam91ZWlcIDsKK+WkluadpeiqniA+IGdhaXJhaWdvXCA7Civpm6PnoLToiLkgPiBuYW5wYXNlblwgOwor6aeS5LiL6aeEID4ga29tYWdldGFcIDsKK+azqOaEj+abuCA+IGNodXVpc2hvXCA7CivkupTph43lpY8gPiBnb2p1dXNvdVwgOwor5ryr6KuH5a62ID4gbWFuZGFua2FcIDsKK+WAjeeyvuW6piA+IGJhaXNlaWRvXCA7CivntI3ku5jogIUgPiBub3VmdXNoYVwgOwor5Zm054Gr5Y+jID4gZnVua2Frb3VcIDsKK+S7i+itt+S6uiA+IGthaWdvbmluXCA7CivpgZPorbDkvJogPiBkb3VnaWthaVwgOwor5pyJ5qmf5L2TID4geXV1a2l0YWlcIDsKK+atu+eUo+WFkCA+IHNoaXphbmppXCA7CivkuI3opo/liYcgPiBmdWtpc29rdVwgOwor5r2c5rC05ZmoID4gc2Vuc3Vpa2lcIDsKK+aVtOWCmeW3pSA+IHNlaWJpa291XCA7CivojZLmrabogIUgPiBhcmFtdXNoYVwgOwor6YGg5Zyw54K5ID4gZW5jaGl0ZW5cIDsKK+WkluWtl+e0mSA+IGdhaWppc2hpXCA7Civku4rmmYLliIYgPiBpbWFqaWJ1blwgOwor5Y+N5YuV5a62ID4gaGFuZG91a2FcIDsKK+apn+mWouiqjCA+IGtpa2Fuc2hpXCA7CivlpKfmmabml6UgPiBvb21pc29rYVwgOwor5LiN57K+5benID4gZnVzZWlrb3VcIDsKK+Wkp+S4iOWkqyA+IGRhaWpvdWJ1XCA7Civkv53lhajkvJogPiBob3plbmthaVwgOwor5ZCM57Sg5L2TID4gZG91c290YWlcIDsKK+WGjeS6pOS7mCA+IHNhaWtvdWZ1XCA7CivlpKnml6Xms5UgPiB0ZW5waWhvdVwgOwor5a6I6K2356WeID4gc2h1Z29qaW5cIDsKK+e1hOWQiOiyuyA+IGt1bWlhaWhpXCA7CivojZLolarlnLAgPiBrb3VidWNoaVwgOwor5oSb5aqb55yMID4gZWhpbWVrZW5cIDsKK+ioiOeul+WZqCA+IGtlaXNhbmtpXCA7CivmnKrpnZLlubQgPiBtaXNlaW5lblwgOwor5Lq65LqL5qyEID4gamluamlyYW5cIDsKK+mVt+mfs+espiA+IGNob3VvbnB1XCA7CivkuI3lnYfmlokgPiBmdWtpbnNlaVwgOwor5rqW5YKZ6YeRID4ganVuYmlraW5cIDsKK+a3i+W3tOa2siA+IHJpbnBhZWtpXCA7Civkuovli5nplbcgPiBqaW11Y2hvdVwgOwor5L+u55CG5bGLID4gc2h1dXJpeWFcIDsKK+aHkOeWkeirliA+IGthaWdpcm9uXCA7CivllonpoK3ngo4gPiBrb3V0b3VlblwgOwor55aO5aSW5oSfID4gc29nYWlrYW5cIDsKK+WKoOmAn+WZqCA+IGthc29rdWtpXCA7CivliqDlt6Xmra8gPiBrYWtvdXNoaVwgOwor5bqt5LiL6aeEID4gbml3YWdldGFcIDsKK+mdnuW4uOWLpCA+IGhpam91a2luXCA7Civph47nkIPpg6ggPiB5YWt5dXVidVwgOwor5YmN6aeG5oimID4gemVua3VzZW5cIDsKK+aMh+WwjumDqCA+IHNoaWRvdWJ1XCA7CivosqHnlKPlrrYgPiB6YWlzYW5rYVwgOwor5bGF5YKs5L+DID4gaXphaXNva3VcIDsKK+W9k+ats+mmrCA+IHRvdXNhaWJhXCA7Civku4HnjovlipsgPiBuaW91cmlraVwgOwor5aSa6IKJ5p6cID4gdGFuaWt1a2FcIDsKK+acgOebm+acnyA+IHNhaXNlaWtpXCA7Civlj43mr5TkvosgPiBoYW5waXJlaVwgOwor5aWz5a2Q6auYID4gam9zaGlrb3VcIDsKK+mWi+Wbnui3ryA+IGthaWthaXJvXCA7Civlr6nmn7vlk6EgPiBzaGluc2FpblwgOwor6bqd6aaZ5rC0ID4gamFrb3VzdWlcIDsKK+aXpeacrOeKrCA+IG5paG9ua2VuXCA7Civkuovli5nph48gPiBqaW11cnlvdVwgOwor5byV55So5Y+lID4gaW4nJ3lvdWt1XCA7Civnp5HlrabpmaIgPiBrYWdha3VpblwgOwor5YmN6aCt6YOoID4gemVudG91YnVcIDsKK+WNgeWbm+aXpSA+IGp1dXlva2thXCA7CivpgKPmrYzluKsgPiByZW5nYXNoaVwgOwor5pSv5o+06ICFID4gc2hpZW5zaGFcIDsKK+aituacqOW6pyA+IGthamlraXphXCA7CivlnLDmlrnljLogPiBjaGlob3VrdVwgOwor5bGx54Gr5LqLID4geWFtYWthamlcIDsKK+aJjeacqua6gCA+IHNhaW1pbWFuXCA7CivkurrpoZ7njL8gPiBqaW5ydWllblwgOwor6K2w5a6a5pu4ID4gZ2l0ZWlzaG9cIDsKK+iMtuWdiuS4uyA+IGNoYWJvdXp1XCA7CivliqDnm5/lupcgPiBrYW1laXRlblwgOwor57ep5LiL5YmkID4ga2FuZ2V6YWlcIDsKK+iQjOm7hOiJsiA+IG1vZWdpaXJvXCA7CivnqbrmsJfpioMgPiBrdXVraWp1dVwgOwor6bm55rC05rmWID4ga2Fuc3Vpa29cIDsKK+a1t+iAgeiFsCA+IGViaWdvc2hpXCA7CivnlJ/oqIjosrsgPiBzZWlrZWloaVwgOwor5Y+C5Yqg6ICFID4gc2Fua2FzaGFcIDsKK+aXpeacrOa1tyA+IG5paG9ua2FpXCA7CivooqvkuZfmlbAgPiBoaWpvdXN1dVwgOwor5omL6aKo55C0ID4gdGVmdXVraW5cIDsKK+azqOaEj+WgsSA+IGNodXVpaG91XCA7Civpoqjmma/nlLsgPiBmdXVrZWlnYVwgOwor6Zu75a2Q6Z+zID4gZGVuc2hpb25cIDsKK+i7ouWMluezliA+IHRlbmthdG91XCA7CivplonntYzmnJ8gPiBoZWlrZWlraVwgOwor5Ye654Sh57K+ID4gZGVidXNob3VcIDsKK+S6kuWKqeeahCA+IGdvam90ZWtpXCA7Civkub7miYDluK8gPiBrYW5qb3RhaVwgOwor5aSn6Z+z5aOwID4gZGFpb25qb3VcIDsKK+egtOeUo+iAhSA+IGhhc2Fuc2hhXCA7Civplonlm57ot68gPiBoZWlrYWlyb1wgOwor5qmf6Zai57SZID4ga2lrYW5zaGlcIDsKK+iDoem6u+aTgiA+IGdvbWFzdXJpXCA7CivmqZ/pm7fljp8gPiBraXJhaWdlblwgOwor5aSa5a2U5oCnID4gdGFrb3VzZWlcIDsKK+WQiOaIkOmfsyA+IGdvdXNlaW9uXCA7CivnoLTprZTlvJMgPiBoYW1heXVtaVwgOwor6YCg5b2x5YmkID4gem91ZWl6YWlcIDsKK+WApuaAoOacnyA+IGtlbnRhaWtpXCA7CivmnKrntI3ogIUgPiBtaW5vdXNoYVwgOwor5LqM6YeN5pifID4gbmlqdXVzZWlcIDsKK+e5geS9k+WtlyA+IGhhbnRhaWppXCA7Civmtojpn7PlmaggPiBzaG91b25raVwgOwor5aSa5Lq65pWwID4gdGFuaW56dXVcIDsKK+i1tOS7u+WcsCA+IGZ1bmluY2hpXCA7Civlj6TnlJ/ku6MgPiBrb3NlaWRhaVwgOwor6Iqd5bGF5rCXID4gc2hpYmFpZ2VcIDsKK+aoquW6p+aomSA+IG91emFoeW91XCA7Civoh6rorablm6MgPiBqaWtlaWRhblwgOwor5pqr5a6a5qGIID4gemFudGVpYW5cIDsKK+mtmuW4guWgtCA+IHVvaWNoaWJhXCA7Civpp4Xppqzou4ogPiBla2liYXNoYVwgOwor5a++6Kmx5L2TID4gdGFpd2F0YWlcIDsKK+a4heaOg+WkqyA+IHNlaXNvdWZ1XCA7Civpq5jmhJ/luqYgPiBrb3VrYW5kb1wgOwor57SA5YWD5YmNID4ga2lnZW56ZW5cIDsKK+ejqOeglOe0mSA+IG1ha2Vuc2hpXCA7CivngavonKXonLQgPiBoaXRva2FnZVwgOwor5pei5ama6ICFID4ga2lrb25zaGFcIDsKK+aQrOmAgeazoiA+IGhhbnNvdWhhXCA7Civnlo7plovogIUgPiBzb2thaXNoYVwgOwor5oCd5oOz5a62ID4gc2hpc291a2FcIDsKK+WyqeeUsOW4ryA+IGl3YXRhb2JpXCA7CivplovplonmqZ8gPiBrYWloZWlraVwgOwor5bqP56C05oClID4gam9oYWt5dXVcIDsKK+i2s+W/oOWunyA+IGFzaGltYW1lXCA7CivljYrmuJvmnJ8gPiBoYW5nZW5raVwgOwor6Ieq54S2576OID4gc2hpemVuYmlcIDsKK+WJjeS4lue0gCA+IHplbnNlaWtpXCA7CivnoJTno6jntJkgPiBrZW5tYXNoaVwgOwor6Z2S5YaZ55yfID4gYW9qYXNoaW5cIDsKK+eliOelt+abuCA+IGtpdG91c2hvXCA7CivluLDpgoTlhbUgPiBraWthbmhlaVwgOwor6ZaJ57WM5b6MID4gaGVpa2VpZ29cIDsKK+WkmuaWuemdoiA+IHRhaG91bWVuXCA7Civnh5XlsL7mnI0gPiBlbmJpZnVrdVwgOwor56aA6K2w5pu4ID4gcmluZ2lzaG9cIDsKK+eItuWFhOS8miA+IGZ1a2Vpa2FpXCA7Civpq5jpupfmpb0gPiBrb21hZ2FrdVwgOwor5YWo55ub5pyfID4gemVuc2Vpa2lcIDsKK+S6iOaDs+WkliA+IHlvc291Z2FpXCA7CivmiYHmoYPmsrkgPiBoZW50b3V5dVwgOwor6Z2S5bm05pyfID4gc2VpbmVua2lcIDsKK+Wdh+etieWMliA+IGtpbnRvdWthXCA7Civlj5fpqJPogIUgPiBqdWtlbnNoYVwgOwor5pmC5Luj55u4ID4gamlkYWlzb3VcIDsKK+Wil+WKoOWIhiA+IHpvdWthYnVuXCA7CivkuozpgKPpioMgPiBuaXJlbmp1dVwgOwor5LiA5Zue6LuiID4gaWtrYWl0ZW5cIDsKK+S4u+iEs+mDqCA+IHNodW5vdWJ1XCA7CivntI3ku5jmm7ggPiBub3VmdXNob1wgOwor5Y2Y5byB6IqxID4gdGFuYmVua2FcIDsKK+a1gea1quiAhSA+IHJ1cm91c2hhXCA7CivojZLliKnnm4ogPiBhcmFyaWVraVwgOwor6I+T5a2Q55uGID4ga2FzaGlib25cIDsKK+WFrOeUqOiqniA+IGtvdXlvdWdvXCA7CivlpKrpmb3ngokgPiB0YWl5b3Vyb1wgOwor5Y+X6Lqr5b2iID4gdWtlbWlrZWlcIDsKK+awkeWWtuWMliA+IG1pbicnZWlrYVwgOwor5Lq65pyb5a62ID4gamluYm91a2FcIDsKK+e3j+S6jOmajiA+IHNvdW5pa2FpXCA7Civop6Ppm4fogIUgPiBrYWlrb3NoYVwgOwor5ryi5pmC5LujID4ga2FuamlkYWlcIDsKK+WGheWklumHjiA+IG5haWdhaXlhXCA7CivniYfku67lkI0gPiBrYXRha2FuYVwgOwor6ISx6KGj5omAID4gZGF0c3Vpam9cIDsKK+S4jemMhumLvCA+IGZ1c2Vpa291XCA7CivotIjkuI7ogIUgPiB6b3V5b3NoYVwgOwor5L+d5a6I57O7ID4gaG9zaHVrZWlcIDsKK+a1t+mmrOWbniA+IGthaWJha2FpXCA7Civoh6rloJXokL0gPiBqaWRhcmFrdVwgOwor5pys5aGB5omTID4gaG9ucnVpZGFcIDsKK+aEm+mkkOS8miA+IGFpc2Fua2FpXCA7Civlr77mipfppqwgPiB0YWlrb3ViYVwgOwor5Luu5ZCN5paHID4ga2FuYWJ1bWlcIDsKK+iDoem6u+WhqSA+IGdvbWFzaGlvXCA7CivliqDlt6Xlk4EgPiBrYWtvdWhpblwgOwor5qip5Yip5pu4ID4ga2VucmlzaG9cIDsKK+W7g+imgee0oCA+IGhhaXlvdXNvXCA7Civnqbrmg7PlrrYgPiBrdXVzb3VrYVwgOwor5pei5a6a5YCkID4ga2l0ZWljaGlcIDsKK+iyqeWjsumDqCA+IGhhbmJhaWJ1XCA7CivnnLzpj6HlsYsgPiBtZWdhbmV5YVwgOwor5YmN5LiW55WMID4gemVuc2VrYWlcIDsKK+acrOWgtOaJgCA+IGhvbmJhc2hvXCA7CivomZrnhKHlhZogPiBreW9tdXRvdVwgOwor5Lq66aGe5oSbID4gamlucnVpYWlcIDsKK+S6jOmHjeWljyA+IG5panV1c291XCA7CivmhJvlpb3ogIUgPiBhaWtvdXNoYVwgOwor5ZCI5oiQ6KqeID4gZ291c2VpZ29cIDsKK+efs+eBq+efoiA+IGlzaGliaXlhXCA7Civlh7rntI3nsL8gPiBzdWl0b3Vib1wgOwor6LuN566h5Yy6ID4gZ3Vua2Fua3VcIDsKK+eni+eUsOecjCA+IGFraXRha2VuXCA7CivlhJLlrabnlYwgPiBqdWdha2thaVwgOwor5LiL5omL57OeID4gaGV0YWt1c29cIDsKK+acquWivuWcsCA+IG1pa29uY2hpXCA7CivlpKflpJrmlbAgPiBkYWl0YXN1dVwgOwor5a2Q5Y2I57eaID4gc2hpZ29zZW5cIDsKK+ato+W4uOWMliA+IHNlaWpvdWthXCA7CivnmbrphbXntKAgPiBoYWtrb3Vzb1wgOwor6Led6Zui6KiIID4ga3lvcmlrZWlcIDsKK+iIueWwj+WxiyA+IGZ1bmFnb3lhXCA7CivphrjpgKDmiYAgPiBqb3V6b3Vqb1wgOwor5aSn57SN6KiAID4gZGFpbmFnb25cIDsKK+WkqeaWh+WutiA+IHRlbm1vbmthXCA7CivmqKHpgKDogIUgPiBtb3pvdXNoYVwgOwor5a+d5LiN6LazID4gbmVidXNva3VcIDsKK+WwgumWgOWutiA+IHNlbm1vbmthXCA7CivmnKrnhLblvaIgPiBtaXplbmtlaVwgOwor5Ymq6KOB5qmfID4gc2Vuc2Fpa2lcIDsKK+izvOiyt+mDqCA+IGtvdWJhaWJ1XCA7CivmhYjlloTkvJogPiBqaXplbmthaVwgOwor5oKq6Laj5ZGzID4gYWt1c2h1bWlcIDsKK+i0iOS4jueojiA+IHpvdXlvemVpXCA7Civkv53lrZjns7sgPiBob3pvbmtlaVwgOwor5rCX5YuV6LuKID4ga2lkb3VzaGFcIDsKK+awuOS9j+iAhSA+IGVpanV1c2hhXCA7CivmnKrnhp/lhZAgPiBtaWp1a3VqaVwgOwor6KiY5b+15ZOBID4ga2luZW5oaW5cIDsKK+egtOeTnOeXhSA+IGhha2FieW91XCA7CivnoLTnlKPms5UgPiBoYXNhbmhvdVwgOwor5YGc6Zu75pelID4gdGVpZGVuYmlcIDsKK+WPl+mok+eUnyA+IGp1a2Vuc2VpXCA7CivpmbjokrjmsJcgPiBva2Fqb3VraVwgOwor5a6f6KGM5pmCID4gamlra291amlcIDsKK+aooemAoOe0mSA+IG1vem91c2hpXCA7Civkuozljp/lrZAgPiBuaWdlbnNoaVwgOwor5LuW5omA6ICFID4geW9zb21vbm9cIDsKK+eni+eUsOeKrCA+IGFraXRha2VuXCA7CivkuIflm73ml5cgPiBiYW5rb2traVwgOwor5LqL5YuZ55qEID4gamltdXRla2lcIDsKK+aOqOenu+eahCA+IHN1aWl0ZWtpXCA7CivnqbrmsJfnqbQgPiBrdXVraWFuYVwgOwor5Y+X5a656ICFID4ganV5b3VzaGFcIDsKK+ezoOWRs+WZjCA+IG51a2FtaXNvXCA7CivmlrnlvaLms6IgPiBob3VrZWloYVwgOwor5oim5YmN5rS+ID4gc2VuemVuaGFcIDsKK+WHpueQhuWgtCA+IHNob3Jpam91XCA7CivkuozlvKbnkLQgPiBuaWdlbmtpblwgOwor6YWS6YCg5a62ID4gc2h1em91a2FcIDsKK+aOsuekuuadvyA+IGtlaWppYmFuXCA7CivlhoXpoqjlkYIgPiB1Y2hpYnVyb1wgOwor5Lit5Yq05aeUID4gY2h1dXJvdWlcIDsKK+aEm+eMq+WutiA+IGFpYnlvdWthXCA7CivkuInlm57lv4wgPiBzYW5rYWlraVwgOwor57eP5LuV6IieID4gc291amltYWlcIDsKK+mGuOmAoOWutiA+IGpvdXpvdWthXCA7CivkuqTku5jph5EgPiBrb3VmdWtpblwgOwor5omH6aKo5qmfID4gc2VucHV1a2lcIDsKK+WFqOWAmeijnCA+IHplbmtvdWhvXCA7CivnkIbmg7Poq5YgPiByaXNvdXJvblwgOwor5pel5pys5Y+yID4gbmlob25zaGlcIDsKK+a8ouaVsOWtlyA+IGthbnN1dWppXCA7CivovJ3nhYzluJ0gPiBraWtvdXRlaVwgOwor5pSv5oyB6ICFID4gc2hpamlzaGFcIDsKK+Wkp+aWh+WtlyA+IGRhaW1vbmppXCA7CivlrZDljYjnkrAgPiBzaGlnb2thblwgOwor6Im256aP5a62ID4gZW5wdWt1a2FcIDsKK+mWi+mWieWZqCA+IGthaWhlaWtpXCA7CivlsILploDljLsgPiBzZW5tb24nJ2lcIDsKK+abtOW5tOacnyA+IGtvdW5lbmtpXCA7CivlsILploDljJYgPiBzZW5tb25rYVwgOwor5pel5pys5YiAID4gbmlob250b3VcIDsKK+S4jeihjOWEgCA+IGZ1Z3lvdWdpXCA7CivluLDlt6PmgKcgPiBraXNvdXNlaVwgOwor5LiL5omL54mpID4gZ2V0ZW1vbm9cIDsKK+aPkOahiOiAhSA+IHRlaWFuc2hhXCA7Civlj5fkv6HmqZ8gPiBqdXNoaW5raVwgOwor5o+a5a2Q5rGfID4geW91c3Vrb3VcIDsKK+e1jOW4uOiyuyA+IGtlaWpvdWhpXCA7CivmtbfnjovmmJ8gPiBrYWlvdXNlaVwgOwor5bm856ia5ZySID4geW91Y2hpZW5cIDsKK+S8geeUu+iqsiA+IGtpa2FrdWthXCA7CivmnIjmoYLmqLkgPiBnZWtrZWlqdVwgOwor5pyq6KiY5YWlID4gbWlraW55dXVcIDsKK+eglOejqOadkCA+IGtlbm1hemFpXCA7CivkuozlubTojYkgPiBuaW5lbnNvdVwgOwor576p5YuH6LuNID4gZ2l5dXVndW5cIDsKK+aWh+iqnuaWhyA+IGJ1bmdvYnVuXCA7CivoqpXnlJ/ml6UgPiB0YW5qb3ViaVwgOwor6YeR5pmC6KiIID4ga2luZG9rZWlcIDsKK+epuua0nuWMliA+IGt1dWRvdWthXCA7Civns57lkbPlmYwgPiBrdXNvbWlzb1wgOwor5pel5pys5Lq6ID4gbmlob25qaW5cIDsKK+aAp+mBiuaIryA+IHNlaXl1dWdpXCA7CivmrKHngrnogIUgPiBqaXRlbnNoYVwgOwor6Ziy6IWQ5YmkID4gYm91ZnV6YWlcIDsKK+aXpeacrOS4rSA+IG5paG9uanV1XCA7CivohZXnm7jmkrIgPiB1ZGV6dW1vdVwgOwor5LiN56+A5Yi2ID4gZnVzZXNzZWlcIDsKK+WcsOWfn+W3riA+IGNoaWlraXNhXCA7Civkv53orbfps6UgPiBob2dvY2hvdVwgOwor5bCP5omL5YWIID4ga290ZXNha2lcIDsKK+eEoemZjeawtCA+IG11a291c3VpXCA7CivpvLvlkbzlkLggPiBiaWtva3l1dVwgOwor6YeN6aiO5YW1ID4ganV1a2loZWlcIDsKK+WPpOS7o+WPsiA+IGtvZGFpc2hpXCA7Civog73oiJ7lj7AgPiBub3VidXRhaVwgOwor56u26aas6aasID4ga2VpYmF1bWFcIDsKK+WFjeenn+WcsCA+IG1lbnNvY2hpXCA7CivkuozmrKHnmoQgPiBuaWppdGVraVwgOwor5ryU5aWP6ICFID4gZW5zb3VzaGFcIDsKK+WFt+S9k+aApyA+IGd1dGFpc2VpXCA7CivkuIDnrYnou4ogPiBpdHRvdXNoYVwgOwor5LiN5ZOB6KGMID4gZnVoaW5rb3VcIDsKK+eJueenkeWFtSA+IHRva2thaGVpXCA7CivohILogqrmsrkgPiBzaGlib3V5dVwgOwor5bem5aSn6IejID4gc2FkYWlqaW5cIDsKK+mHkeWtl+WhlCA+IGtpbmppdG91XCA7Civpq5jph47lsbEgPiBrb3V5YXNhblwgOwor5aSn54aK5bqnID4gb29ndW1hemFcIDsKK+WGkumZuuWutiA+IGJvdWtlbmthXCA7Civloanmv4PluqYgPiBlbicnbm91ZG9cIDsKK+aXpeS5g+S4uCA+IGhpbm9tYXJ1XCA7CivkvZXlh6bov4QgPiBkb2tvbWFkZVwgOwor6L+R5Ly85YCkID4ga2luamljaGlcIDsKK+mAj+ejgeaApyA+IHRvdWppc2VpXCA7Civkv53orbfpoJggPiBob2dvcnlvdVwgOwor54m55rS+5ZOhID4gdG9rdWhhaW5cIDsKK+WUvua2suiFuiA+IGRhZWtpc2VuXCA7Civluq3mnKjmiLggPiBuaXdha2lkb1wgOwor5b6M5o+06ICFID4ga291ZW5zaGFcIDsKK+m7hOmJhOmJsSA+IG91dGVra291XCA7Civlj6Tku6PkurogPiBrb2RhaWppblwgOwor5LqL5YuZ5pyNID4gamltdWZ1a3VcIDsKK+Wwj+m6pueyiSA+IGtvbXVnaWtvXCA7CivkuI3murbmgKcgPiBmdXlvdXNlaVwgOwor6aGn5ZWP5ZujID4ga29tb25kYW5cIDsKK+S/neacieiAhSA+IGhveXV1c2hhXCA7Civpgb/nl4XpmaIgPiBoaWJ5b3VpblwgOwor5YmN5pmv5rCXID4gbWFlZ2Vpa2lcIDsKK+apn+mWouWjqyA+IGtpa2Fuc2hpXCA7CivlpJbkuqTlk6EgPiBnYWlrb3VpblwgOwor6YqF55u45aC0ID4gZG91c291YmFcIDsKK+WCvuaWnOW6piA+IGtlaXNoYWRvXCA7Civpq5jluqboqIggPiBrb3Vkb2tlaVwgOwor6L+R5pyq5p2lID4ga2lubWlyYWlcIDsKK+aNlemvqOiIuSA+IGhvZ2Vpc2VuXCA7CivliqDlrrPogIUgPiBrYWdhaXNoYVwgOwor5pWw54+g546JID4ganV6dWRhbWFcIDsKK+aJi+e+veWFiCA+IHRlYmFzYWtpXCA7Civoo5zliqnnv7wgPiBob2pveW9rdVwgOwor5oWI5oKy5b+DID4gamloaXNoaW5cIDsKK+WkluiyqOWCtSA+IGdhaWthc2FpXCA7Civmg4XloLHljJYgPiBqb3Vob3VrYVwgOwor57eP5LqI566XID4gc291eW9zYW5cIDsKK+ecn+WknOS4rSA+IG1heW9uYWthXCA7CivkuIvmhI/orZggPiBrYWlzaGlraVwgOwor5Luj56i95Y+kID4gZGFpZ2Vpa29cIDsKK+awuOS9j+aoqSA+IGVpanV1a2VuXCA7Civkv53mnInnsbMgPiBob3l1dW1haVwgOwor6Ieq5Zu96KqeID4gamlrb2t1Z29cIDsKK+WPjeWvvuiqniA+IGhhbnRhaWdvXCA7CivlpInnlbDkvZMgPiBoZW4nJ2l0YWlcIDsKK+WIqeW3seeahCA+IHJpa290ZWtpXCA7Civlu7rlhbflsYsgPiB0YXRlZ3V5YVwgOwor6Ziy5a+S5YW3ID4gYm91a2FuZ3VcIDsKK+Wls+WtpuagoSA+IGpvZ2Fra291XCA7Civkv53lrojmgKcgPiBob3NodXNlaVwgOwor5aW95pmv5rCXID4ga291a2Vpa2lcIDsKK+S6pOS7mOiAhSA+IGtvdWZ1c2hhXCA7Civlj6/lpInmlbAgPiBrYWhlbnN1dVwgOwor6Iqx5paH5a2XID4gaGFuYW1vamlcIDsKK+mdouS8muaXpSA+IG1lbmthaWJpXCA7CivnhZnojYnlsYsgPiB0YWJha295YVwgOwor6Zuo5qih5qeYID4gYW1lbW95b3VcIDsKK+aPuuexg+acnyA+IHlvdXJhbmtpXCA7CivnqoHnoLTlj6MgPiB0b3BwYWtvdVwgOwor6L+R5Luj5YyWID4ga2luZGFpa2FcIDsKK+eCueeBq+ezuyA+IHRlbmtha2VpXCA7CivkuozlubTnlJ8gPiBuaW5lbnNlaVwgOwor5pif5rCX5L2TID4gc2Vpa2l0YWlcIDsKK+S4jeetieWPtyA+IGZ1ZG91Z291XCA7CivkupTovrrlvaIgPiBnb2hlbmtlaVwgOwor5LqM6Lyq6LuKID4gbmlyaW5zaGFcIDsKK+eUqOeuquespSA+IHlvdWRhbnN1XCA7CivlhrfolLXluqsgPiByZWl6b3Vrb1wgOwor5LiN5omA5a2YID4gZnVzaG96b25cIDsKK+aKleWFieWZqCA+IHRvdWtvdWtpXCA7CivlpbPlrZDmoKEgPiBqb3NoaWtvdVwgOwor5rWc6IyE5a2QID4gaGFtYW5hc3VcIDsKK+WPpOabuOWxlSA+IGtvc2hvdGVuXCA7CivkuozljYHku6MgPiBuaWp1dWRhaVwgOwor5biC6KGX5ZuzID4gc2hpZ2FpenVcIDsKK+aoueaeneeKtiA+IGp1c2hpam91XCA7Civluo/nm6TmiKYgPiBqb2JhbnNlblwgOwor54Gr5oiQ5bKpID4ga2FzZWlnYW5cIDsKK+e1hOWQiOWToSA+IGt1bWlhaWluXCA7CivkupzohLHoh7wgPiBhZGFra3l1dVwgOwor6ayx6YeR6ImyID4gdWtvbicnaXJvXCA7CivprLzmrabogIUgPiBvbmltdXNoYVwgOwor5pac5oqV5b2xID4gc2hhdG91ZWlcIDsKK+a7keepuuapnyA+IGtha2t1dWtpXCA7Civou73pqI7lhbUgPiBrZWlraWhlaVwgOwor5LqM5YWD6KuWID4gbmlnZW5yb25cIDsKK+aJi+aWmeeQhiA+IHRlcnlvdXJpXCA7CivljZjliKnms5UgPiB0YW5yaWhvdVwgOwor5b6h56We6Ly/ID4gb21pa29zaGlcIDsKK+WFiOmLreWMliA+IHNlbicnZWlrYVwgOwor5pKS5biD5YmkID4gc2FwcHV6YWlcIDsKK+WRieacjeWxiyA+IGdvZnVrdXlhXCA7Civlj5fkv6HlmaggPiBqdXNoaW5raVwgOwor5rq26Kej54KJID4geW91a2Fpcm9cIDsKK+WPr+WkieaApyA+IGthaGVuc2VpXCA7CivlubTpvaLlt64gPiBuZW5yZWlzYVwgOwor5YiA5Zyt5a62ID4gdG91a2Vpa2FcIDsKK+mzs+S7meiKsSA+IGhvdXNlbmthXCA7CivlsI7ms6LnrqEgPiBkb3VoYWthblwgOwor5Y2Y5q+U5L6LID4gdGFucGlyZWlcIDsKK+aNlemvqOegsiA+IGhvZ2VpaG91XCA7Civnm7TotrPooosgPiBqaWthdGFiaVwgOwor5oKq5aSq6YOOID4gYWt1dGFyb3VcIDsKK+acieeQhuaVsCA+IHl1dXJpc3V1XCA7Civpg6jliIblk4EgPiBidWJ1bmhpblwgOwor5Y+v54eD5oCnID4ga2FuZW5zZWlcIDsKK+S4jeWWhOaEnyA+IGZ1emVua2FuXCA7CivmtJfpnaLmiYAgPiBzZW5tZW5qb1wgOwor6YCB5rK5566hID4gc291eXVrYW5cIDsKK+agvOWtkOaIuCA+IGtvdXNoaWRvXCA7CivlhbfkvZPkvosgPiBndXRhaXJlaVwgOwor5pSv5oyB5p2tID4gc2hpamlrb3VcIDsKK+eEoemZkOWkpyA+IG11Z2VuZGFpXCA7Civnsr7nsbPmiYAgPiBzZWltYWlqb1wgOwor57Wx6Kqe6KuWID4gdG91Z29yb25cIDsKK+acqumWi+WiviA+IG1pa2Fpa29uXCA7CivkvZzmpa3osrsgPiBzYWd5b3VoaVwgOwor5aSn6Ziq5bqcID4gb29zYWthZnVcIDsKK+eMiue+jua4kyA+IGdlaWJpa2VpXCA7CivmiZPmkoPnjosgPiBkYWdla2lvdVwgOwor5bqD6JGJ5qi5ID4ga291eW91anVcIDsKK+iNieWJteacnyA+IHNvdXNvdWtpXCA7Civkvo3ooZvplbcgPiBqaWVpY2hvdVwgOwor5LqM6YCy5pyoID4gbmlzaGluZ2lcIDsKK+mhleWcqOWMliA+IGtlbnphaWthXCA7Civlho3oqablkIggPiBzYWlzaGlhaVwgOwor5Lyd6Z+z5ZmoID4gZGVuJydvbmtpXCA7Civnvqnli5nnmoQgPiBnaW11dGVraVwgOwor6Ly45Y21566hID4geXVyYW5rYW5cIDsKK+S9juWIqemHkSA+IHRlaXJpa2luXCA7CivmiKbliKnlk4EgPiBzZW5yaWhpblwgOwor5paH6Kqe5L2TID4gYnVuZ290YWlcIDsKK+S5vuaAp+ayuSA+IGthbnNlaXl1XCA7Civmk4LnsonmnKggPiBzdXJpa29naVwgOwor5oyH5bCO5ZOhID4gc2hpZG91aW5cIDsKK+acqumWi+WcsCA+IG1pa2FpY2hpXCA7Civnp5jmm7jlrpggPiBoaXNob2thblwgOwor5q2m5a6254mpID4gYnVrZW1vbm9cIDsKK+aVtOeQhuWIuCA+IHNlaXJpa2VuXCA7CivogrLpm5vlmaggPiBpa3VzdXVraVwgOwor5Zyn5pC+5qmfID4gYXNzYWt1a2lcIDsKK+S6jOWIhuazlSA+IG5pYnVuaG91XCA7Civmt7fmiJDoqp4gPiBrb25zZWlnb1wgOwor54+I55Cy6IuRID4ga291aGlpZW5cIDsKK+S6jOmDqOS9nCA+IG5pYnVzYWt1XCA7Civnt4/kvJrlsYsgPiBzb3VrYWl5YVwgOwor5LuV5omL5oimID4gc2hpdGVzZW5cIDsKK+WlveWlveeIuiA+IGtvdWtvdXlhXCA7CivnqI7li5nnvbIgPiB6ZWltdXNob1wgOwor6LKp5aOy5qmfID4gaGFuYmFpa2lcIDsKK+epuuawl+WtlCA+IGt1dWtpa291XCA7CivnlrLlirTmhJ8gPiBoaXJvdWthblwgOwor5pS+5rC06LevID4gaG91c3Vpcm9cIDsKK+S8muitsOaJgCA+IGthaWdpc2hvXCA7CivlvaLlrrnoqp4gPiBrZWl5b3Vnb1wgOwor5LiA5Zue5oimID4gaWtrYWlzZW5cIDsKK+eWkeWVj+ipniA+IGdpbW9uc2hpXCA7Civoi6blirTkurogPiBrdXJvdW5pblwgOwor6IGW54Gr5Y+wID4gc2Vpa2FkYWlcIDsKK+awtOS9jeaomSA+IHN1aWloeW91XCA7CivmgrLoprPoq5YgPiBoaWthbnJvblwgOwor5aaE6Kqe5oiSID4gbW91Z29rYWlcIDsKK+awuOWwj+S9nCA+IGVpa29zYWt1XCA7Civngq3ntKDpi7wgPiB0YW5zb2tvdVwgOwor57mK57at5p2fID4gc2VuaXNva3VcIDsKK+ino+aUvuWMuiA+IGthaWhvdWt1XCA7Civkv53lrojlhZogPiBob3NodXRvdVwgOwor57SF5LiA54K5ID4ga291aXR0ZW5cIDsKK+S8gealreWutiA+IGtpZ3lvdWthXCA7Civlrrbluq3nlKggPiBrYXRlaXlvdVwgOwor6Jma56m66JS1ID4ga29rdXV6b3VcIDsKK+S8muioiOiqsiA+IGthaWtlaWthXCA7Civli6Tli5nogIUgPiBraW5tdXNoYVwgOwor6Led6Zui5oSfID4ga3lvcmlrYW5cIDsKK+S4jeaIkOWKnyA+IGZ1c2Vpa291XCA7CivnpYjlubTnpa0gPiBraW5lbnNhaVwgOwor55yL6K235rOVID4ga2FuZ29ob3VcIDsKK+WCrOS6i+WgtCA+IHNhaWppam91XCA7CivprLzlhbXpmoogPiBraWhlaXRhaVwgOwor5aWz5a2Q5aSnID4gam9zaGlkYWlcIDsKK+WUr+aIkeirliA+IHl1aWdhcm9uXCA7CivmnKroo73lk4EgPiBtaXNlaWhpblwgOwor54Sh57Wx5Yi2ID4gbXV0b3VzZWlcIDsKK+mAoOiIueaJgCA+IHpvdXNlbmpvXCA7CivouqvmlK/luqYgPiBtaWppdGFrdVwgOwor6YeR5pys5L2NID4ga2luaG9uJydpXCA7CivlpJrpnaLmgKcgPiB0YW1lbnNlaVwgOwor5aSn5Z6L5qmfID4gb29nYXRha2lcIDsKK+acqumWi+S6uiA+IG1pa2FpamluXCA7Civol4HlsYvmoLkgPiB3YXJheWFuZVwgOwor5pyI5LiW55WMID4gZ2Vzc2VrYWlcIDsKK+W+l+aEj+mhlCA+IHRva3VpZ2FvXCA7CivmiYvplpPpmpkgPiB0ZW1haGltYVwgOwor56m65rCX5Y+jID4ga3V1a2lrb3VcIDsKK+aUv+ayu+eKryA+IHNlaWppaGFuXCA7CivmtJfpnaLlmaggPiBzZW5tZW5raVwgOwor5Lq65paH5a2XID4gaGl0b21vamlcIDsKK+aooemAoOWTgSA+IG1vem91aGluXCA7CivlkbzlkLjlmaggPiBrb2t5dXVraVwgOwor5Zyf5Zyw6ZGRID4gdG9jaGlrYW5cIDsKK+awl+mAgeeuoSA+IGtpc291a2FuXCA7CivkvY7ph5HliKkgPiB0ZWlraW5yaVwgOwor5bi95a2Q5bGLID4gYm91c2hpeWFcIDsKK+W+oeaIkOWKnyA+IGdvc2Vpa291XCA7Civnj4rnkZrmtbcgPiBzYW5nb2thaVwgOwor5puz5YWJ5by+ID4gZWlrb3VkYW5cIDsKK+WNg+mHjOecvCA+IHNlbnJpZ2FuXCA7CivokL3kuIvlgpggPiByYWtrYXNhblwgOwor5rih6Iiq6ICFID4gdG9rb3VzaGFcIDsKK+S4i+aJi+S6uiA+IGdlc2h1bmluXCA7Civlh6blpbPmnpcgPiBzaG9qb3JpblwgOwor5LqL5qWt6YOoID4gamlneW91YnVcIDsKK+WvjOWxseaIvyA+IGZ1emFuYm91XCA7CivmjqXlvoXosrsgPiBzZXR0YWloaVwgOwor57mK57at5oCnID4gc2VuJydpc2VpXCA7CivmiYvoqbHms5UgPiBzaHV3YWhvdVwgOwor5L+d6aSK5ZywID4gaG95b3VjaGlcIDsKK+WIqeW3seW/gyA+IHJpa29zaGluXCA7CivngrnngavmoJMgPiB0ZW5rYXNlblwgOwor6Y6U6Ymx54KJID4geW91a291cm9cIDsKK+WPr+aPm+e+pCA+IGtha2FuZ3VuXCA7CivkvJrorbDloLQgPiBrYWlnaWpvdVwgOwor5Lq66Z2e5Lq6ID4gbmlucGluaW5cIDsKK+iKseeyieeuoSA+IGthZnVua2FuXCA7CivpgY7mv4DmtL4gPiBrYWdla2loYVwgOwor5rq26Kej5bqmID4geW91a2FpZG9cIDsKK+WPpeiqreeCuSA+IGt1dG91dGVuXCA7CivmjZzmn7vpmaMgPiBzb3VzYWppblwgOwor5LyB5qWt5YyWID4ga2lneW91a2FcIDsKK+WWtuWIqeeahCA+IGVpcml0ZWtpXCA7Civooqvngb3ogIUgPiBoaXNhaXNoYVwgOwor5LiN5b6T6aCGID4gZnVqdXVqdW5cIDsKK+WPjeWwhOeCiSA+IGhhbnNoYXJvXCA7CivkvZ3lg4Lnl4UgPiBrdXJ1YnlvdVwgOwor6YO95Lya5Lq6ID4gdG9rYWlqaW5cIDsKK+WRquemgemBkyA+IGp1a29uZG91XCA7Civlj6TniYjmnKwgPiBrb2hhbmJvblwgOwor5ris5YCZ5omAID4gc29ra291am9cIDsKK+a0vumBo+maiiA+IGhha2VudGFpXCA7CivmrZPov47lrrQgPiBrYW5nZWllblwgOwor5oiQ5Yqf6KOhID4gc2Vpa291cmlcIDsKK+WutuW6reashCA+IGthdGVpcmFuXCA7CivlpJrlpInmlbAgPiB0YWhlbnN1dVwgOwor55S35oCn576OID4gZGFuc2VpYmlcIDsKK+mrmOapn+iDvSA+IGtvdWtpbm91XCA7CivkurrplpPoi6YgPiBuaW5nZW5rdVwgOwor5LiJ5ZGz57eaID4gc2hhbWlzZW5cIDsKK+Wvv+WWnOeEvCA+IHN1a2l5YWtpXCA7CivlkIznqIvluqYgPiBkb3V0ZWlkb1wgOwor5aW95aGp6I+MID4ga291ZW5raW5cIDsKK+mAgeawl+euoSA+IHNvdWtpa2FuXCA7CivniqDnibLogIUgPiBnaXNlaXNoYVwgOwor6Iqx57SL5p2/ID4ga2Ftb25iYW5cIDsKK+mbu+WtkOWMliA+IGRlbnNoaWthXCA7CivlsL3mnKrmnaUgPiBqaW5taXJhaVwgOwor5Y+l6Kqt5rOVID4ga3V0b3Vob3VcIDsKK+WlveWkqeawlyA+IGtvdXRlbmtpXCA7CivmtYTljJbmp70gPiBqb3VrYXNvdVwgOwor5pyJ5aOw6Z+zID4geXV1c2Vpb25cIDsKK+WPjeS9nOeUqCA+IGhhbnNheW91XCA7Civlhajoh6rli5UgPiB6ZW5qaWRvdVwgOwor5Y+N5a++5rS+ID4gaGFudGFpaGFcIDsKK+WHpuWls+aApyA+IHNob2pvc2VpXCA7CivmiYvplpPos4MgPiB0ZW1hY2hpblwgOwor5LiA5Zue5YiGID4gaWtrYWlidW5cIDsKK+e9ueeBveiAhSA+IHJpc2Fpc2hhXCA7Civosq/ngq3miYAgPiBjaG90YW5qb1wgOwor5pyJ5Lq65YyWID4geXV1amlua2FcIDsKK+WNsOixoea0viA+IGluc2hvdWhhXCA7CivorJvmvJTogIUgPiBrb3VlbnNoYVwgOwor5qeN6aiO5YW1ID4gc291a2loZWlcIDsKK+mAg+mBv+ihjCA+IHRvdWhpa291XCA7CivlhoXngavoiYcgPiBuYWlrYXRlaVwgOwor5Zyn5pC+5ZmoID4gYXNzYWt1a2lcIDsKK+WIqeaoqeWxiyA+IHJpa2VuJyd5YVwgOwor5YWJ5bqm6KiIID4ga291ZG9rZWlcIDsKK+mWsuWFteWPsCA+IGVwcGVpZGFpXCA7Civmt7fnqK7oqp4gPiBrb25zaHVnb1wgOwor6YCP6YGO5oCnID4gdG91a2FzZWlcIDsKK+S8muimi+iomCA+IGthaWtlbmtpXCA7Civnm7jkvLzngrkgPiBzb3VqaXRlblwgOwor6J665a2Q6YeYID4gbmVqaWt1Z2lcIDsKK+WHpuWls+WzsCA+IHNob2pvaG91XCA7CivnnIvorbfluKsgPiBrYW5nb3NoaVwgOwor5pyJ6aCC54K5ID4gdWNob3V0ZW5cIDsKK+S4gOetieaYnyA+IGl0dG91c2VpXCA7CivkuIvmsLTpgZMgPiBnZXN1aWRvdVwgOwor6Z2e5Lq65oOFID4gaGluaW5qb3VcIDsKK+S4u+e+qeiAhSA+IHNodWdpc2hhXCA7CivmtL7pgaPou40gPiBoYWtlbmd1blwgOwor5YaN5o+Q5qGIID4gc2FpdGVpYW5cIDsKK+e+juaEj+itmCA+IGJpaXNoaWtpXCA7Civnt4/mnKzlrrYgPiBzb3Vob25rZVwgOwor5bqm5aSW6KaWID4gZG9nYWlzaGlcIDsKK+mBoOW+gemaiiA+IGVuc2VpdGFpXCA7CivnkIbmg7PlnosgPiByaXNvdWtlaVwgOwor5Luu5YiG5pWwID4ga2FidW5zdXVcIDsKK+WKqeaVsOipniA+IGpvc3V1c2hpXCA7Civnsr7nrpfmiYAgPiBzZWlzYW5qb1wgOwor5raI54Gr5ZmoID4gc2hvdWtha2lcIDsKK+WkmumdouS9kyA+IHRhbWVudGFpXCA7CivlvaLpqrjljJYgPiBrZWlnYWlrYVwgOwor5qyn57Gz5Lq6ID4gb3ViZWlqaW5cIDsKK+e1jOW4q+WxiyA+IGt5b3VqaXlhXCA7CivoqqTlpInmj5sgPiBnb2hlbmthblwgOwor6YKE5LuY6YeRID4ga2FucHVraW5cIDsKK+aZqeW+oemjryA+IGJhbmdvaGFuXCA7CivohZXoh6rmhaIgPiB1ZGVqaW1hblwgOwor5rWE5rC05ZmoID4gam91c3Vpa2lcIDsKK+WKqeaVmeirrSA+IGpva3lvdXl1XCA7CivnnIvorbflo6sgPiBrYW5nb3NoaVwgOwor5rC45a2Q5L2cID4gZWlrb3Nha3VcIDsKK+WHpuWls+WcsCA+IHNob2pvY2hpXCA7CivliKnnlKjogIUgPiByaXlvdXNoYVwgOwor54Sh57K+5Y21ID4gbXVzZWlyYW5cIDsKK+eEoemWouS/giA+IG11a2Fua2VpXCA7CivmraPlrZfms5UgPiBzZWlqaWhvdVwgOwor6LuN5Yy755ujID4gZ3VuJydpa2FuXCA7CivorabkuJblrrYgPiBrZWlzZWlrYVwgOwor5p2l5a2m5pyfID4gcmFpZ2Fra2lcIDsKK+aYoOeUu+iplSA+IGVpZ2FoeW91XCA7CivmibnliKTogIUgPiBoaWhhbnNoYVwgOwor5bmz5Y+Z5paHID4gaGVpam9idW5cIDsKK+S4iemHjeiLpiA+IHNhbmp1dWt1XCA7CivmqKHlgKPogIUgPiBtb2hvdXNoYVwgOwor5LqI6YG45LyaID4geW9zZW5rYWlcIDsKK+a8lOWlj+S8miA+IGVuc291a2FpXCA7CivkuI3mtLvmgKcgPiBmdWthc3NlaVwgOwor6ZaL5Y+j6YOoID4ga2Fpa291YnVcIDsKK+WPjOiDtOapnyA+IHNvdWRvdWtpXCA7CivpoIjlvKXlsbEgPiBzaHVtaXNlblwgOwor5YG96YCg572qID4gZ2l6b3V6YWlcIDsKK+engOeUu+WutiA+IHNodXVnYWthXCA7CivkuqTku6Plk6EgPiBrb3V0YWlpblwgOwor6LWk6Zu76KmxID4gYWthZGVud2FcIDsKK+acieacn+WIkSA+IHl1dWtpa2VpXCA7Civlj6PoqbHms5UgPiBrb3V3YWhvdVwgOwor5oi45Li75qipID4ga29zaHVrZW5cIDsKK+WFrOWuieWumCA+IGtvdWFua2FuXCA7Civmra/niZnnirYgPiBzaGlnYWpvdVwgOwor5Lyd5aOw5ZmoID4gZGVuc2Vpa2lcIDsKK+S/nemZuumHkSA+IGhva2Vua2luXCA7CivmjIfmlbDpg6ggPiBzaGlzdXVidVwgOwor6LGq6I+v6Ii5ID4gZ291a2FzZW5cIDsKK+S4uOaal+iomCA+IG1hcnVhbmtpXCA7Civln7rmupbngrkgPiBraWp1bnRlblwgOwor5b6M5o+05LyaID4ga291ZW5rYWlcIDsKK+ecjOitsOS8miA+IGtlbmdpa2FpXCA7CivooYzlnKjmiYAgPiBhbnphaXNob1wgOwor5Y+j6Kqe5paHID4ga291Z29idW5cIDsKK+WvneeFmeiNiSA+IG5ldGFiYWtvXCA7Civmlq3noLTlo4ogPiBkYW5oYWthaVwgOwor56OB6YmE6YmxID4gaml0ZWtrb3VcIDsKK+WGhueCuuabvyA+IGVuZ2F3YXNlXCA7CivnnIvorbflhbUgPiBrYW5nb2hlaVwgOwor5Za25qWt6YOoID4gZWlneW91YnVcIDsKK+S4jea2iOWMliA+IGZ1c2hvdWthXCA7CivkuI3lvrPnvqkgPiBmdXRva3VnaVwgOwor5Zyw5ZC56ZuqID4gamlmdWJ1a2lcIDsKK+mgiOW8peWjhyA+IHNodW1pZGFuXCA7CivkvZDluZXmtL4gPiBzYWJha3VoYVwgOwor6aCT55e05rCXID4gdG9uY2hpa2lcIDsKK+WkmuaVsOWFmiA+IHRhc3V1dG91XCA7CivovLjpgIHoiLkgPiB5dXNvdXNlblwgOwor5o6h5rK55qipID4gc2FpeXVrZW5cIDsKK+adpeS4lue0gCA+IHJhaXNlaWtpXCA7CivlsbHmsLTnlLsgPiBzYW5zdWlnYVwgOwor5o6D6Zmk5Lq6ID4gc291amluaW5cIDsKK+S4gOetieWcsCA+IGl0dG91Y2hpXCA7CivnqI7li5nlrpggPiB6ZWltdWthblwgOwor55yL6K235Lq6ID4ga2FuZ29uaW5cIDsKK+WNiuWIh+espiA+IGhhbmtpcHB1XCA7CivlnKfngJjlmaggPiBhdHN1cm9raVwgOwor5Z+65rqW5rOVID4ga2lqdW5ob3VcIDsKK+WPl+ism+iAhSA+IGp1a291c2hhXCA7CivmuKzot53lhIAgPiBzb2treW9naVwgOwor5Ya35YeN5qmfID4gcmVpdG91a2lcIDsKK+etiei3nemboiA+IHRvdWt5b3JpXCA7CivkuI3lkI3mlbAgPiBmdW1laXN1dVwgOwor6Kmm6YGL6LuiID4gc2hpdW50ZW5cIDsKK+e+qeWLh+WFtSA+IGdpeXV1aGVpXCA7CivopqrnlLvpnaIgPiBveWFnYW1lblwgOwor5ouS5ZCm5qipID4ga3lvaGlrZW5cIDsKK+S6jOeVque3miA+IG5pYmFuc2VuXCA7Civllrbmpa3osrsgPiBlaWd5b3VoaVwgOwor55u45Ly85b2iID4gc291amlrZWlcIDsKK+WPjOeUn+WFkCA+IHNvdXNlaWppXCA7Civnvbnngb3msJEgPiByaXNhaW1pblwgOwor5a+E55Sf5pyoID4geWFkb3JpZ2lcIDsKK+eBq+iWrOW6qyA+IGtheWFrdWtvXCA7CivotaTpoK3lt74gPiBha2F6dWtpblwgOwor6Jyl6Jy05bqnID4gdG9rYWdlemFcIDsKK+itpuWgsemfsyA+IGtlaWhvdW9uXCA7CivlpKfonKXonLQgPiBvb3Rva2FnZVwgOwor5pu055Sf5pyfID4ga291c2Vpa2lcIDsKK+eWkeWVj+aWhyA+IGdpbW9uYnVuXCA7Civojbfngrrmm78gPiBuaWdhd2FzZVwgOwor5Zyn5r++5ZmoID4gYXRzdXJva2lcIDsKK+iFjuiHk+eCjiA+IGppbnpvdWVuXCA7Civnt5rntq3mnZ8gPiBzZW5pc29rdVwgOwor5a+E6LSI6ICFID4ga2l6b3VzaGFcIDsKK+WutuW6reWGhSA+IGthdGVpbmFpXCA7CivokL3oqp7lrrYgPiByYWt1Z29rYVwgOwor54Sh56+A5pONID4gbXVzZXNzb3VcIDsKK+WuueeWkeiAhSA+IHlvdWdpc2hhXCA7CivlsZXplovlm7MgPiB0ZW5rYWl6dVwgOwor56eB55Sf5YWQID4gc2hpc2VpamlcIDsKK+Wkp+aJi+etiyA+IG9vdGVzdWppXCA7CivlhazlrprkvqEgPiBrb3V0ZWlrYVwgOwor5rCX5YiG5bGLID4ga2lidW4nJ3lhXCA7CivkuIDnrYnlhbUgPiBpdHRvdWhlaVwgOwor5LiL5rC0566hID4gZ2VzdWlrYW5cIDsKK+aVtOaVsOavlCA+IHNlaXN1dWhpXCA7CivnpL7li5nmiYAgPiBzaGFtdXNob1wgOwor6auY5bGk6ZuyID4ga291c291dW5cIDsKK+W4uOWll+iqniA+IGpvdXRvdWdvXCA7CivoiLnlpJbmqZ8gPiBzZW5nYWlraVwgOwor5Y+M5pqX6LuKID4gc291YW5zaGFcIDsKK+aXheWuouapnyA+IHJ5b2tha2tpXCA7CivpgYvllrbogIUgPiB1bicnZWlzaGFcIDsKK+aBo+aEj+eahCA+IHNoaWl0ZWtpXCA7CivnoLTlpKnojZIgPiBoYXRlbmtvdVwgOwor54ax5biv5aScID4gbmV0dGFpeWFcIDsKK+mBlOaIkOW6piA+IHRhc3NlaWRvXCA7CivlpJrop5LlvaIgPiB0YWtha2tlaVwgOwor5YWl5Lya5qipID4gaXJpYWlrZW5cIDsKK+WNg+iRieecjCA+IGNoaWJha2VuXCA7CivkupTmnIjpm6ggPiBzYW1pZGFyZVwgOwor5pyJ6aCC5aSpID4gdWNob3V0ZW5cIDsKK+a6luS8muWToSA+IGp1bmthaWluXCA7CivmsLTmm5zml6UgPiBzdWl5b3ViaVwgOwor5riH5rC05pyfID4ga2Fzc3Vpa2lcIDsKK+ertummrOWgtCA+IGtlaWJham91XCA7Civps6nlsI/lsYsgPiBoYXRvZ295YVwgOwor5LiN5q2j6KaWID4gZnVzZWlzaGlcIDsKK+Wbm+WNiuacnyA+IHNoaWhhbmtpXCA7CivnhpTpibHngokgPiB5b3Vrb3Vyb1wgOwor5L2c55So54K5ID4gc2F5b3V0ZW5cIDsKK+mBiuWckuWcsCA+IHl1dWVuY2hpXCA7Civou4zpgZPoiLkgPiBraWRvdXNlblwgOwor5byB55CG5aOrID4gYmVucmlzaGlcIDsKK+m6u+mFlOmKgyA+IG1hc3VpanV1XCA7CivmnKjonrrlrZAgPiBtb2t1bmVqaVwgOwor5q2p5pWw6KiIID4gaG9zdXVrZWlcIDsKK+S4u+mhjOatjCA+IHNodWRhaWthXCA7CivmraPkvJrlk6EgPiBzZWlrYWlpblwgOwor5b6u5YiG5rOVID4gYmlidW5ob3VcIDsKK+WLleWToeS7pCA+IGRvdWlucmVpXCA7CivpnZLnk6blj7AgPiBzZWlnYWRhaVwgOwor5rih6Ii55aC0ID4gdG9zZW5qb3VcIDsKK+aEj+itmOS4iyA+IGlzaGlraWthXCA7Civkv53orbflm70gPiBob2dva29rdVwgOwor5ZCM5oCn5oSbID4gZG91c2VpYWlcIDsKK+ayueWcp+WZqCA+IHl1YXRzdWtpXCA7Civnh5XpnZLmi7MgPiBlbnNlaWtlblwgOwor5bm85bm05pyfID4geW91bmVua2lcIDsKK+ixquiPr+eJiCA+IGdvdWthYmFuXCA7CivljLvljp/nl4UgPiBpZ2VuYnlvdVwgOwor6Zu76Kmx57eaID4gZGVud2FzZW5cIDsKK+WGt+WHjeW6qyA+IHJlaXRvdWtvXCA7CivpgoTku5jnqI4gPiBrYW5wdXplaVwgOwor5byB6K236ICFID4gYmVuZ29zaGFcIDsKK+mbu+ipsee2siA+IGRlbndhbW91XCA7CivnmbvlsbHpgZMgPiB0b3phbmRvdVwgOwor6YeN6Zu75qmfID4ganV1ZGVua2lcIDsKK+S4jeaBsOWlvSA+IGJ1a2Fra291XCA7CivpmL/miL/ps6UgPiBhaG91ZG9yaVwgOwor5LqI5YKZ55qEID4geW9iaXRla2lcIDsKK+aJtuWKqeaWmSA+IGZ1am9yeW91XCA7CivnjL/nn6XmgbUgPiBzYXJ1ZGppZVwgOwor5Zyw6JS16aGUID4gaml6b3VnYW9cIDsKK+S9nOalreWgtCA+IHNhZ3lvdWJhXCA7Civnqbrnm7jloLQgPiBrdXVzb3ViYVwgOwor5re35ZCI6KqeID4ga29uZ291Z29cIDsKK+WmpeWNlOahiCA+IGRha3lvdWFuXCA7CivmhbDorJ3mlpkgPiBpc2hhcnlvdVwgOwor54Sh5oq15oqXID4gbXV0ZWlrb3VcIDsKK+iRieevgOeCuSA+IGhhc2V0dGVuXCA7Civku5bli5XoqZ4gPiB0YWRvdXNoaVwgOwor5pyq5oiQ5bm0ID4gbWlzZWluZW5cIDsKK+aLmOW8leeKtiA+IGtvdWluam91XCA7CivmmKDnlLvni4IgPiBlaWdha3lvdVwgOwor5rOV6I+v57WMID4gaG9rZWt5b3VcIDsKK+mFouaWmeeQhiA+IHN1cnlvdXJpXCA7CivmlL/lupznsbMgPiBzZWlmdW1haVwgOwor5aW957WQ5p6cID4ga291a2Vra2FcIDsKK+a0u+aAp+WMliA+IGthc3NlaWthXCA7CivliqnoqIDogIUgPiBqb2dvbnNoYVwgOwor6KOP5Y2D5a62ID4gdXJhc2Vua2VcIDsKK+iIjuWIqeWhlCA+IHNoYXJpdG91XCA7CivkuI3npZ3lhIAgPiBidXNodXVnaVwgOwor6YGO5rih55qEID4ga2F0b3Rla2lcIDsKK+mZtuiKuOWutiA+IHRvdWdlaWthXCA7CivkvZzmpa3lk6EgPiBzYWd5b3VpblwgOwor5YWo5LiW55WMID4gemVuc2VrYWlcIDsKK+WkmuaRqeW3nSA+IHRhbWFnYXdhXCA7Civlvq7oi6bnrJEgPiBiaWt1c2hvdVwgOwor5qy6556e6ICFID4gZ2ltYW5zaGFcIDsKK+eri+azleW6nCA+IHJpcHBvdWZ1XCA7Civooqvngb3lnLAgPiBoaXNhaWNoaVwgOwor54yb5omT6ICFID4gbW91ZGFzaGFcIDsKK+S4jeelpeS6iyA+IGZ1c2hvdWppXCA7CivntZDmnpzoq5YgPiBrZWtrYXJvblwgOwor5LiL5rC05rqdID4gZ2VzdWlrb3VcIDsKK+awtOmiqOWRgiA+IG1penVidXJvXCA7CivmlrnkvY3op5IgPiBob3Vpa2FrdVwgOwor6Ziy5aG1552AID4gYm91amluZ2lcIDsKK+aXouimluaDsyA+IGtpc2hpa2FuXCA7Civlj6Poqp7kvZMgPiBrb3Vnb3RhaVwgOwor5bm56YOo5LyaID4ga2FuYnVrYWlcIDsKK+S6pOmam+iyuyA+IGtvdXNhaWhpXCA7CivmiYvplpPmmocgPiB0ZW1haGltYVwgOwor5q2m5aOr6YGTID4gYnVzaGlkb3VcIDsKK+mtlOaWuemZoyA+IG1haG91amluXCA7CivokaHokITphZIgPiBidWRvdXNodVwgOwor5Ya35YeN5ZmoID4gcmVpdG91a2lcIDsKK+WPjOWtkOW6pyA+IGZ1dGFnb3phXCA7CivohLHmsLTmqZ8gPiBkYXNzdWlraVwgOwor54Gr5Y+j5Y6fID4ga2Frb3VnZW5cIDsKK+S9juasoeWFgyA+IHRlaWppZ2VuXCA7CivljrPlhqzmnJ8gPiBnZW50b3VraVwgOwor5Li46Kuz6KiYID4gbWFydWFua2lcIDsKK+S4jemAgOi7oiA+IGZ1dGFpdGVuXCA7CivmiYvlnJ/nlKMgPiB0ZW1peWFnZVwgOwor5Y2x6Zm66KaWID4ga2lrZW5zaGlcIDsKK+iInui4iuWboyA+IGJ1dG91ZGFuXCA7CivkuI3msbrlrpogPiBmdWtldHRlaVwgOwor5Zue5biw57eaID4ga2Fpa2lzZW5cIDsKK+WMuuawkeeojiA+IGt1bWluemVpXCA7CivkvZXnlarnm64gPiBuYW5iYW5tZVwgOwor6ISx5rCX5rC0ID4gZGFra2lzdWlcIDsKK+WIkeWLmeaJgCA+IGtlaW11c2hvXCA7CivlgaXllZblrrYgPiBrZW50YW5rYVwgOwor56C05aOK6ICFID4gaGFrYWlzaGFcIDsKK+iHquaEj+itmCA+IGppaXNoaWtpXCA7CivkuIPljYHot68gPiBuYW5hc29qaVwgOwor6Kaz6Ieq5ZyoID4ga2Fuaml6YWlcIDsKK+mBoOW/g+apnyA+IGVuc2hpbmtpXCA7CivmnLHljbDoiLkgPiBzaHVpbnNlblwgOwor5rSX5r+v5qmfID4gc2VudGFra2lcIDsKK+S4jeWLleeUoyA+IGZ1ZG91c2FuXCA7CivlmbTmsJflrZQgPiBmdW5raWtvdVwgOwor6J2m5aS35p2+ID4gZXpvbWF0c3VcIDsKK+msvOWIkeS6iyA+IG9uaWtlaWppXCA7CivmhJ/lmIbnrKYgPiBrYW50YW5mdVwgOwor5rOV5Yy75a2mID4gaG91aWdha3VcIDsKK+mzpeWwj+WxiyA+IHRvcmlnb3lhXCA7Civoh6rllrbmpa0gPiBqaWVpZ3lvdVwgOwor57K+6Yys5omAID4gc2VpcmVuam9cIDsKK+m7hOiPluiSsiA+IGtpc2hvdWJ1XCA7CivkupzlpKfpmbggPiBhdGFpcmlrdVwgOwor5YKZ6ICD5qyEID4gYmlrb3VyYW5cIDsKK+acquaIkOWTgSA+IG1pc2VpaGluXCA7CivniYfmiYvplpMgPiBrYXRhdGVtYVwgOwor5Lq66ZaT5ZGzID4gbmluZ2VubWlcIDsKK+eEoeaEj+itmCA+IG11aXNoaWtpXCA7CivmipXos4flrrYgPiB0b3VzaGlrYVwgOwor5LiL5rC05p2/ID4gZ2VzdWlpdGFcIDsKK+mmrOi5hOW9oiA+IGJhdGVpa2VpXCA7Civlhajpn7PnrKYgPiB6ZW4nJ29ucHVcIDsKK+mrmOi8neW6piA+IGtvdWtpZG91XCA7CivkuI3lj6/kvrUgPiBmdWthc2hpblwgOwor6buE5Y+j5YWQID4ga291a291amlcIDsKK+WIhuenkeS8miA+IGJ1bmtha2FpXCA7CivonJjom5vohpwgPiBrdW1vbWFrdVwgOwor5LqL5qWt5a62ID4gamlneW91a2FcIDsKK+WFpeS8muWcsCA+IGlyaWFpY2hpXCA7Civlm7Pmm7jppKggPiB0b3Nob2thblwgOwor6KO954mI5omAID4gc2VpaGFuam9cIDsKK+adseWkp+WvuiA+IHRvdWRhaWppXCA7CivkuK3kvY3mlbAgPiBjaHV1aXN1dVwgOwor5Y+C6LOA6ICFID4gc2FuZ2FzaGFcIDsKK+aJueWHhuabuCA+IGhpanVuc2hvXCA7CivoiJ7ouI/kvJogPiBidXRvdWthaVwgOwor55CG5YyW5a2mID4gcmlrYWdha3VcIDsKK+eZu+WxseiAhSA+IHRvemFuc2hhXCA7CivliqnmlZnmjoggPiBqb2t5b3VqdVwgOwor5YiR5YuZ5a6YID4ga2VpbXVrYW5cIDsKK+aUv+WLmeWumCA+IHNlaW11a2FuXCA7CivmraPnvqnmhJ8gPiBzZWlnaWthblwgOwor5Yy76Jas5ZOBID4gaXlha3VoaW5cIDsKK+WMlueyp+edgCA+IGtlc2hvdWdpXCA7CivngavpgZTno6ggPiBoaWRhcnVtYVwgOwor5LiN5b655bqVID4gZnV0ZXR0ZWlcIDsKK+eVmeWuiOWuhSA+IHJ1c3V0YWt1XCA7Civlh6HoqablkIggPiBib25zaGlhaVwgOwor5LiH5q2p6KiIID4gbWFucG9rZWlcIDsKK+S6jOaemuiynSA+IG5pbWFpZ2FpXCA7CivnlKjmsLTot68gPiB5b3VzdWlyb1wgOwor5pmC6KiI5bqXID4gdG9rZWl0ZW5cIDsKK+WbuuWumuWtkCA+IGtvdGVpc2hpXCA7CivmnInnhZnngq0gPiB5dXVlbnRhblwgOwor6Kyb5ryU5LyaID4ga291ZW5rYWlcIDsKK+ijj+msvOmWgCA+IHVyYWtpbW9uXCA7CivlvqHmr43mp5ggPiBva2Fhc2FtYVwgOwor6YGT56WW56WeID4gZG91c29qaW5cIDsKK+WQiOazleWMliA+IGdvdWhvdWthXCA7Civpppbpg73lnI8gPiBzaHV0b2tlblwgOwor5LiJ5q+b54yrID4gbWlrZW5la29cIDsKK+aOouefpeapnyA+IHRhbmNoaWtpXCA7CivmrbvngavlsbEgPiBzaGlrYXphblwgOwor6Imy5qih5qeYID4gaXJvbW95b3VcIDsKK+ezuOmbu+ipsSA+IGl0b2RlbndhXCA7Civph43lpKfljJYgPiBqdXVkYWlrYVwgOwor5LiJ5q6155uuID4gc2FuZGFubWVcIDsKK+elreWjh+W6pyA+IHNhaWRhbnphXCA7CivlhYTlvJ/lrZAgPiBhbmlkZXNoaVwgOwor6YGL5ZG96KuWID4gdW5tZWlyb25cIDsKK+aZrumAmuenkSA+IGZ1dHN1dWthXCA7CivkuIrlj6Tlj7IgPiBqb3Vrb3NoaVwgOwor6aCQ6LKv6YeRID4geW9jaG9raW5cIDsKK+WmpeW9k+aApyA+IGRhdG91c2VpXCA7CivokaHokIToibIgPiBidWRvdWlyb1wgOwor5o6S5rC06LevID4gaGFpc3Vpcm9cIDsKK+aoquaWremdoiA+IG91ZGFubWVuXCA7CivmlbTntYzmqZ8gPiBzZWlrZWlraVwgOwor5LqL5qWt5YyWID4gamlneW91a2FcIDsKK+ewoeS9k+WtlyA+IGthbnRhaWppXCA7Civlj6/murbniYcgPiBrYXlvdWhlblwgOwor5YSA5LuX5YW1ID4gZ2lqb3VoZWlcIDsKK+mZuOWxi+aguSA+IHJva3V5YW5lXCA7Civluqfoq4fkvJogPiB6YWRhbmthaVwgOwor5biG5YmN6Ii5ID4gaG9tYWVzZW5cIDsKK+aMh+ipseazlSA+IHNoaXdhaG91XCA7Civlgb3pgKDlk4EgPiBnaXpvdWhpblwgOwor5LiW5biv5pWwID4gc2V0YWlzdXVcIDsKK+S4gOWRqOacnyA+IGlzc2h1dWtpXCA7CivkuK3ogLPngo4gPiBjaHV1amllblwgOwor5a+M5aOr6YCaID4gZnVqaXRzdXVcIDsKK+WutuWxi+eojiA+IGthb2t1emVpXCA7CivmqZ/li5XpmoogPiBraWRvdXRhaVwgOwor6Ziy54Gr57eaID4gYm91a2FzZW5cIDsKK+aVmeitt+mZoiA+IGt5b3Vnb2luXCA7CivonrrlrZDlsbEgPiBuZWppeWFtYVwgOwor5Lmz5YWQ6ZmiID4gbnl1dWppaW5cIDsKK+iFleaZguioiCA+IHVkZWRva2VpXCA7CivmnLHljbDnirYgPiBzaHVpbmpvdVwgOwor55yf5oSP576pID4gc2hpbicnaWdpXCA7CivpgYrmioDloLQgPiB5dXVnaWpvdVwgOwor5Yun5bel5aC0ID4ga2Fua291YmFcIDsKK+S4ieWGoOmmrCA+IHNhbmthbmJhXCA7CivlpKnmiY3lhZAgPiB0ZW5zYWlqaVwgOwor6YCG6IyC5pyoID4gc2FrYW1vZ2lcIDsKK+ijnOWFheWFtSA+IGhvanV1aGVpXCA7Civlu7rorbDogIUgPiBrZW5naXNoYVwgOwor5bi45aSc54GvID4gam91eWF0b3VcIDsKK+iNieWxi+aguSA+IGt1c2F5YW5lXCA7CivmqKnlqIHogIUgPiBrZW4nJ2lzaGFcIDsKK+egleWyqeapnyA+IHNhaWdhbmtpXCA7CivokaHokITns5YgPiBidWRvdXRvdVwgOwor55m95Lqc6aSoID4gaGFrdWFrYW5cIDsKK+a3t+WSjOaApyA+IGtvbndhc2VpXCA7CivljJbnsqfmrr8gPiBrZXdhaWRlblwgOwor5Y2D5YiG5q+UID4gc2VuYnVuaGlcIDsKK+aZguioiOWPsCA+IHRva2VpZGFpXCA7CivlkIzmr43lp4kgPiBkb3Vib3NoaVwgOwor5LiK5b6X5oSPID4gam91dG9rdWlcIDsKK+m7hOawtOS7mSA+IGtpc3Vpc2VuXCA7CivlvLHlkbPlmYwgPiB5b3dhbWlzb1wgOwor55WZ5a6I5LitID4gcnVzdWNodXVcIDsKK+WkieWjsOacnyA+IGhlbnNlaWtpXCA7CivlsI/lhZDnp5EgPiBzaG91bmlrYVwgOwor5LiJ5Y2B5oi4ID4gc2Fuamlra29cIDsKK+mbu+mbouWxpCA+IGRlbnJpc291XCA7Civpq5jouI/mtL4gPiBrb3V0b3VoYVwgOwor55CG5bel57O7ID4gcmlrb3VrZWlcIDsKK+eEoeekvOismyA+IGJ1cmVpa291XCA7CivkuIDlkajlv4wgPiBpc3NodXVraVwgOwor5LiN5Y2B5YiGID4gZnVqdXVidW5cIDsKK+WTuuS5s+acnyA+IGhvbnl1dWtpXCA7Civnn7PmsrnnjosgPiBzZWtpeXVvdVwgOwor5Y+v6Y6U54mHID4ga2F5b3VoZW5cIDsKK+W+oeWIqeebiiA+IGdvcml5YWt1XCA7CivmipXmm7jlrrYgPiB0b3VzaG9rYVwgOwor6YG655WZ5ZOBID4gaXJ5dXVoaW5cIDsKK+mBuuS8neeXhSA+IGlkZW5ieW91XCA7Civmj5rngq3mqZ8gPiB5b3V0YW5raVwgOwor6Z2e5aSJ5o+bID4gaGloZW5rYW5cIDsKK+aUueato+ahiCA+IGthaXNlaWFuXCA7Civpq5jpq5jluqYgPiBrb3Vrb3Vkb1wgOwor57WM55Sj5ammID4ga2Vpc2FucHVcIDsKK+i1pOijuOijuCA+IHNla2lyYXJhXCA7Civmt7flkIjmqZ8gPiBrb25nb3VraVwgOwor5a+E6LSI5ZOBID4ga2l6b3VoaW5cIDsKK+WknOihjOaApyA+IHlha291c2VpXCA7Civpkb3lrZTmqZ8gPiBzYW5rb3VraVwgOwor5YmN6KGb5rS+ID4gemVuJydlaWhhXCA7CivmnKrmsbrnrpcgPiBtaWtlc3NhblwgOwor5Li76KaB6YOoID4gc2h1eW91YnVcIDsKK+mBv+WvkuWcsCA+IGhpa2FuY2hpXCA7CivmsLTlnqLpm6IgPiBtaXp1Z29yaVwgOwor5aeU6KiX55SfID4gaXRha3VzZWlcIDsKK+itpuWgseapnyA+IGtlaWhvdWtpXCA7CivmuKnnvajms5UgPiBvbicnYW5wb3VcIDsKK+WvvuW/nOeJiCA+IHRhaW91YmFuXCA7CivlloflmJvmlZkgPiByYW1ha3lvdVwgOwor6YG655WZ5YiGID4gaXJ5dXVidW5cIDsKK+aYhuW4g+iMtiA+IGtvbmJ1Y2hhXCA7CivkuZfnrpflmaggPiBqb3V6YW5raVwgOwor6JGs5YSA56S+ID4gc291Z2lzaGFcIDsKK+WIpOaknOS6iyA+IGhhbmtlbmppXCA7CivnibnnlbDngrkgPiB0b2t1aXRlblwgOwor5L+d6Zm65bGLID4gaG9rZW4nJ3lhXCA7CivkuI3pg73lkIggPiBmdXRzdWdvdVwgOwor5omA5oyB6YeRID4gc2hvamlraW5cIDsKK+iZjuays+ixmiA+IHRvcmFmdWd1XCA7CivmioDog73ogIUgPiBnaW5vdXNoYVwgOwor5oqX6K2w5paHID4ga291Z2lidW5cIDsKK+aXouijveWTgSA+IGtpc2VpaGluXCA7Civln7rnpI7nmoQgPiBraXNvdGVraVwgOwor6LKd57Sw5belID4ga2FpemFpa3VcIDsKK+m7kueZvuWQiCA+IGt1cm95dXJpXCA7CivojLboj5PlrZAgPiBjaGFnYXNoaVwgOwor5ZCm5a6a5paHID4gaGl0ZWlidW5cIDsKK+W8geitt+WjqyA+IGJlbmdvc2hpXCA7CivmiYvoo4/liaMgPiBzaHVyaWtlblwgOwor6YqA5pmC6KiIID4gZ2luZG9rZWlcIDsKK+S4iemAo+espiA+IHNhbnJlbnB1XCA7CivlsI/liIflrZAgPiBrb2tpcmlrb1wgOwor5b2i6ICM5LiKID4ga2Vpamlqb3VcIDsKK+aQreS5l+WToSA+IHRvdWpvdWluXCA7CivkuJbnlYzoprMgPiBzZWthaWthblwgOwor5o6i55+l5ZmoID4gdGFuY2hpa2lcIDsKK+WAieW6q+eVqiA+IHNvdWtvYmFuXCA7Civmlofnp5Hns7sgPiBidW5rYWtlaVwgOwor6IO95paH5a62ID4gbm91YnVua2FcIDsKK+W8geitt+WboyA+IGJlbmdvZGFuXCA7CivpioDkuJbnlYwgPiBnaW5zZWthaVwgOwor5pmu6YGN5oCnID4gZnVoZW5zZWlcIDsKK+WPr+a6tuaApyA+IGtheW91c2VpXCA7CivljIjniZnliKkgPiBoYW5nYXJpaVwgOwor54y/55yf5Ly8ID4gc2FydW1hbmVcIDsKK+eMquWPo+aJjSA+IGNob2tvemFpXCA7Civpi7PnianluKsgPiBpbW9ub3NoaVwgOwor54Sh6YmE56CyID4gbXV0ZXBwb3VcIDsKK+WQjOWIhuavjSA+IGRvdWJ1bmJvXCA7CivmnKrmtojljJYgPiBtaXNob3VrYVwgOwor5bqD5p2x6KqeID4ga2FudG9uZ29cIDsKK+S4gOengeS6uiA+IGlzc2hpamluXCA7CivmvKLolLXoqp4gPiBrYW56b3Vnb1wgOwor5LqM5Lq655uuID4gZnV0YXJpbWVcIDsKK+WvjOWjq+e1uSA+IGZ1amlnaW51XCA7CivogpvploDnp5EgPiBrb3Vtb25rYVwgOwor6Z2Z6Zu75rCXID4gc2VpZGVua2lcIDsKK+WOn+WLleapnyA+IGdlbmRvdWtpXCA7Civkub7oiLnmuKAgPiBrYW5kb2trdVwgOwor6byT5ZC56ICFID4ga29zdWlzaGFcIDsKK+Wkp+WSjOeFriA+IHlhbWF0b25pXCA7CivojLbpgZPlhbcgPiBjaGFkb3VndVwgOwor5o6S5rCX566hID4gaGFpa2lrYW5cIDsKK+W9k+S6i+iAhSA+IHRvdWppc2hhXCA7CivlopPoqozpipggPiBib3NoaW1laVwgOwor55+t5rC06LevID4gdGFuc3Vpcm9cIDsKK+WWq+iMtuW6lyA+IGtpc3NhdGVuXCA7CivmmYLplpPluK8gPiBqaWthbnRhaVwgOwor54Sh5rC06YW4ID4gbXVzdWlzYW5cIDsKK+egtOmYsuazlSA+IGhhYm91aG91XCA7CivlkIjmrZPmnKggPiBuZW11bm9raVwgOwor6IGW5q2M6ZqKID4gc2Vpa2F0YWlcIDsKK+WNsOe0meeojiA+IGluc2hpemVpXCA7CivmjIfmj67ogIUgPiBzaGlraXNoYVwgOwor5paH5oi/5YW3ID4gYnVuYm91Z3VcIDsKK+S/neeuoemHkSA+IGhva2Fua2luXCA7CivmnIDlpJrmlbAgPiBzYWl0YXN1dVwgOwor5LiN6YCP5piOID4gZnV0b3VtZWlcIDsKK+agveWfueaJgCA+IHNhaWJhaWpvXCA7Civmnpfmqo7phZIgPiByaW5nb3NodVwgOwor5q+N57Sw6IOeID4gYm9zYWlib3VcIDsKK+WlveaJk+iAhSA+IGtvdWRhc2hhXCA7CivlhobnrZLlvaIgPiBlbnRvdWtlaVwgOwor5pGC6Zai5a62ID4gc2Vra2Fua2VcIDsKK+ato+imj+i7jSA+IHNlaWtpZ3VuXCA7CivluLjlpZflj6UgPiBqb3V0b3VrdVwgOwor5pyq5rG65riIID4gbWlrZXNzYWlcIDsKK+e1g+alveWZqCA+IGdlbmdha2tpXCA7CivntI3miLjoibIgPiBuYW5kb2lyb1wgOwor6Z2e57ea5b2iID4gaGlzZW5rZWlcIDsKK+miqOWRgumHnCA+IGZ1cm9nYW1hXCA7CivlvIHorbfkurogPiBiZW5nb25pblwgOwor6Y6u5a6I5bqcID4gY2hpbmp1ZnVcIDsKK+S4gOW8tee+hSA+IGl0Y2hvdXJhXCA7CivlrZDkvJrnpL4gPiBrb2dhaXNoYVwgOwor5LiN5YeN5rivID4gZnV0b3Vrb3VcIDsKK+WNteWhlOWgtCA+IHJhbnRvdWJhXCA7CivkuK3lpK7pg6ggPiBjaHV1b3VidVwgOwor5LiN5YeN5rayID4gZnV0b3Vla2lcIDsKK+WkqeenpOW6pyA+IHRlbmJpbnphXCA7CivljbHpmbrmgKcgPiBraWtlbnNlaVwgOwor5LiN5YeN5rW3ID4gZnV0b3VrYWlcIDsKK+eZu+WxseW4vSA+IHRvemFuYm91XCA7CivnhY7osYbohZAgPiBpcmlkb3VmdVwgOwor5Yi45aOy5qmfID4ga2VuYmFpa2lcIDsKK+aZgumWk+WkliA+IGppa2FuZ2FpXCA7CivmsJflgJnluK8gPiBraWtvdXRhaVwgOwor5qW95Zmo5bqXID4gZ2Fra2l0ZW5cIDsKK+S4jeWIhuaYjiA+IGZ1YnVubWVpXCA7CivmraPpm7vmsJcgPiBzZWlkZW5raVwgOwor5pys6YeR5bqrID4gaG9ua2lua29cIDsKK+WPr+mOlOaApyA+IGtheW91c2VpXCA7Civpm4TlvIHlrrYgPiB5dXViZW5rYVwgOwor5LuY5biv54qvID4gZnV0YWloYW5cIDsKK+ilv+a0i+eigSA+IHNlaXlvdWdvXCA7CivmiKbkuonlvowgPiBzZW5zb3Vnb1wgOwor5pWP6IWV5a62ID4gYmlud2Fua2FcIDsKK+S4reS7peS4iiA+IGNodXVpam91XCA7Civpq5jkuIvpp4QgPiB0YWthZ2V0YVwgOwor6Z2e5aOy5ZOBID4gaGliYWloaW5cIDsKK+S9leS7o+ebriA+IG5hbmRhaW1lXCA7Civpq5jmnrbnt5ogPiBrb3VrYXNlblwgOwor5rC06Z2i5LiLID4gc3VpbWVua2FcIDsKK+eyvuayueaJgCA+IHNlaXl1c2hvXCA7CivmnbHopb/lsYsgPiB0b3V6YWl5YVwgOwor6YqF54mI55S7ID4gZG91aGFuZ2FcIDsKK+eCiumjr+WZqCA+IHN1aWhhbmtpXCA7CivlhYPluKXlupwgPiBnZW5zdWlmdVwgOwor6bOl5LmL5bejID4gdG9yaW5vc3VcIDsKK+WMu+eZgui7iiA+IGlyeW91c2hhXCA7CivnibnnlbDmgKcgPiB0b2t1aXNlaVwgOwor5Yas6Iez57eaID4gdG91amlzZW5cIDsKK+epv+WtlOapnyA+IHNlbmtvdWtpXCA7CivnhKHok4vou4ogPiBtdWdhaXNoYVwgOwor5oq15oqX5ZmoID4gdGVpa291a2lcIDsKK+iSuOawl+iIuSA+IGpvdWtpc2VuXCA7CivpnZ7oqLHlrrkgPiBoaWt5b3lvdVwgOwor6YGg6L+R5rOVID4gZW5raW5ob3VcIDsKK+S7ruWumuazlSA+IGthdGVpaG91XCA7Civmt7flkIjlmaggPiBrb25nb3VraVwgOwor6KW/5rSL55S7ID4gc2VpeW91Z2FcIDsKK+mBlOejqOW/jCA+IGRhcnVtYWtpXCA7CivnlbPmiJDoqp4gPiBqb3VzZWlnb1wgOwor5oCq5LqL5Lu2ID4ga2FpamlrZW5cIDsKK+aJgOaMgeiAhSA+IHNob2ppc2hhXCA7Civmk6zkurrms5UgPiBnaWppbmhvdVwgOwor5rqW5aSn5omLID4ganVuJydvb3RlXCA7Civlm57ou6LmqZ8gPiBrYWl0ZW5raVwgOwor5Y+v5ZOA55u4ID4ga2F3YWlzb3VcIDsKK+S6pOmam+WutiA+IGtvdXNhaWthXCA7Civpm6LkubPmnJ8gPiByaW55dXVraVwgOwor56OB5oCn5bGkID4gamlzZWlzb3VcIDsKK+i2iuWGrOmaiiA+IGV0dG91dGFpXCA7CivorZzpnaLlj7AgPiBmdW1lbmRhaVwgOwor5Luu5bCP5bGLID4ga2FyaWdveWFcIDsKK+ebruirluimiyA+IG1va3Vyb21pXCA7Civku5noirHntJkgPiBzZW5rYXNoaVwgOwor5ryU566X5a2QID4gZW56YW5zaGlcIDsKK+aciemZkOWAiyA+IHl1dWdlbmtvXCA7CivmiLjpmpzlrZAgPiB0b3Nob3VqaVwgOwor5Y+v6Y2b5oCnID4ga2F0YW5zZWlcIDsKK+Wkqum8k+WIpCA+IHRhaWtvYmFuXCA7CivmtbflnYrkuLsgPiB1bWlib3V6dVwgOwor6buN6a2a5a2QID4ga2liaW5hZ29cIDsKK+WWtuael+e9siA+IGVpcmluc2hvXCA7Civmma7ovrrmgKcgPiBmdWhlbnNlaVwgOwor5Zu65pyJ5YCkID4ga295dXVjaGlcIDsKK+mBuuS8neWtpiA+IGlkZW5nYWt1XCA7CivogrLnqK7miYAgPiBpa3VzaHVqb1wgOwor6YeR6Y2N6YeRID4ga2lubWVra2lcIDsKK+m8u+miqOmCqiA+IGhhbmFrYXplXCA7Civlj4LkuovlrpggPiBzYW5qaWthblwgOwor55u46KuH5omAID4gc291ZGFuam9cIDsKK+eEoeeojuWTgSA+IG11emVpaGluXCA7Civlv5znrZTog70gPiBvdXRvdW5vdVwgOwor5qSc5ZWP5omAID4ga2VubW9uam9cIDsKK+WyoeWgtOaJgCA+IG9rYWJhc2hvXCA7CivlnLDolLXlsIogPiBqaXpvdXNvblwgOwor56m65LiW6L6eID4ga2FyYXNlamlcIDsKK+ihqOWFt+WxiyA+IGh5b3VndXlhXCA7CivlvJTmhbDph5EgPiBjaG91aWtpblwgOwor5Yid55Sj5ammID4gc2hvc2FucHVcIDsKK+aal+iomOeJqSA+IGFua2ltb25vXCA7CivpurvphZTliaQgPiBtYXN1aXphaVwgOwor6Jeq5Yy76ICFID4geWFidWlzaGFcIDsKK+S9leaZgumggyA+IGl0c3Vnb3JvXCA7CivkuoznvqnnmoQgPiBuaWdpdGVraVwgOwor6ZuB55qu57SZID4gZ2FucGlzaGlcIDsKK+aXpeWSjOimiyA+IGhpeW9yaW1pXCA7CivnpL7kvJrpg6ggPiBzaGFrYWlidVwgOwor5Yil5LiW55WMID4gYmVzc2VrYWlcIDsKK+eEoeWQjeawjyA+IG11bWVpc2hpXCA7Civpm4flgq3ogIUgPiBrb3lvdXNoYVwgOwor57Wi57ee5a2QID4gYXlhZG9uc3VcIDsKK+a4pueKtuaWhyA+IGtham91bW9uXCA7Civoh6rli5Xou4ogPiBqaWRvdXNoYVwgOwor6Zmk6I2J5YmkID4gam9zb3V6YWlcIDsKK+S4jeWFrOatoyA+IGZ1a291c2VpXCA7Civpl5jmioDloLQgPiB0b3VnaWpvdVwgOwor5Li76KiY5oa2ID4gc2h1a2lva3VcIDsKK+m8u+S4i+mVtyA+IGJpa2FjaG91XCA7CivmnIDlpKfljJYgPiBzYWlkYWlrYVwgOwor6Ziy54KO5YmkID4gYm91ZW56YWlcIDsKK+a6tumJseeCiSA+IHlvdWtvdXJvXCA7CivkvZXmmYLplpMgPiBuYW5qaWthblwgOwor57O757Wx5qi5ID4ga2VpdG91anVcIDsKK+W+oeiHqui6qyA+IGdvamlzaGluXCA7CivkuIroj5PlrZAgPiBqb3VnYXNoaVwgOwor6KKr5rib5pWwID4gaGlnZW5zdXVcIDsKK+aYn+adoeaXlyA+IHNlaWpvdWtpXCA7Civnlo7msLTmgKcgPiBzb3N1aXNlaVwgOwor6Ieq5rK75qipID4gamljaGlrZW5cIDsKK+mAruaNleiAhSA+IHRhaWhvc2hhXCA7CivkuozpoK3nrYsgPiBuaXRvdWtpblwgOwor57Sg5rWq5Lq6ID4gc3Vyb3VuaW5cIDsKK+eni+WgtOaJgCA+IGFraWJhc2hvXCA7CivoiLnngavkuosgPiBmdW5ha2FqaVwgOwor6IKy56iu5a62ID4gaWt1c2h1a2FcIDsKK+ato+iqsuWkliA+IHNlaWthZ2FpXCA7CivnhYnnk6bloYAgPiByZW5nYWJlaVwgOwor6Iux5paH5rOVID4gZWlidW5wb3VcIDsKK+acquaxuuWumiA+IG1pa2V0dGVpXCA7CivpppbohLPpg6ggPiBzaHVub3VidVwgOwor5YGl5bq3576OID4ga2Vua291YmlcIDsKK+S4oeitsOmZoiA+IHJ5b3VnaWluXCA7CivmhJvllLHmrYwgPiBhaXNob3VrYVwgOwor5LqM5pys5qOSID4gbmlob25ib3VcIDsKK+mdkueJqeWxiyA+IGFvbW9ub3lhXCA7Civku67lrprlvaIgPiBrYXRlaWtlaVwgOwor6Ieq5YuV6KmeID4gamlkb3VzaGlcIDsKK+S+v+WunOS4iiA+IGJlbmdpam91XCA7CivnlLDoiI7poqggPiBpbmFrYWZ1dVwgOwor5pyd5b6h6aOvID4gYXNhZ29oYW5cIDsKK+aMh+aPruaoqSA+IHNoaWtpa2VuXCA7CivoqK3oqIjlm7MgPiBzZWtrZWl6dVwgOwor6YOo5aSW6ICFID4gYnVnYWlzaGFcIDsKK+iRrOWEgOWgtCA+IHNvdWdpam91XCA7Civno4HmgKfkvZMgPiBqaXNlaXRhaVwgOwor6YqA5pys5L2NID4gZ2luaG9uJydpXCA7CivmlL/lhZrlk6EgPiBzZWl0b3VpblwgOwor5a++5b+c5YCkID4gdGFpb3VjaGlcIDsKK+i7jeiJpuaXlyA+IGd1bmthbmtpXCA7CivkuozkuZfmoLkgPiBuaWpvdWtvblwgOwor5oyH5o+u5qOSID4gc2hpa2lib3VcIDsKK+avjeWbveiqniA+IGJva29rdWdvXCA7CivnlLvnlKjntJkgPiBnYXlvdXNoaVwgOwor5qSc5rip5ZmoID4ga2VuJydvbmtpXCA7Civpp4bmvZzoiYcgPiBrdXNlbnRlaVwgOwor5aCV6IOO572qID4gZGF0YWl6YWlcIDsKK+ejgeawl+WtpiA+IGppa2lnYWt1XCA7Civmh5DngonngbAgPiBrYWlyb2JhaVwgOwor6KaB5rOo5oSPID4geW91Y2h1dWlcIDsKK+WIneeUn+WFkCA+IHNob3NlaWppXCA7CivkuI3prq7mmI4gPiBmdXNlbm1laVwgOwor5aSp6bWe57WoID4gYmlyb3Vkb3VcIDsKK+ijveezluaJgCA+IHNlaXRvdWpvXCA7CivlhYjpp4bogIUgPiBzZW5rdXNoYVwgOwor5Yqp5oiQ6YeRID4gam9zZWlraW5cIDsKK+a4oeadpeS6uiA+IHRvcmFpamluXCA7CivpgJ/oqJjogIUgPiBzb2traXNoYVwgOwor6Imm6LyJ5qmfID4ga2Fuc2Fpa2lcIDsKK+eEoeWQjeaMhyA+IG11bWVpc2hpXCA7Civoo73nsonmqZ8gPiBzZWlmdW5raVwgOwor5Lmx5bGk6ZuyID4gcmFuc291dW5cIDsKK+WPguS6i+S8miA+IHNhbmppa2FpXCA7CivmjpLmsJflvIEgPiBoYWlraWJlblwgOwor5q2j57Wx5rS+ID4gc2VpdG91aGFcIDsKK+ijnOS9kOW9uSA+IGhvc2F5YWt1XCA7CivmnKrphY3lvZMgPiBtaWhhaXRvdVwgOwor5piv6Z2e5YWxID4gemVoaXRvbW9cIDsKK+acquWIiuihjCA+IG1pa2Fua291XCA7CivmnqLmqZ/ljb8gPiBzdXVraWtlaVwgOwor5pyq6YGC572qID4gbWlzdWl6YWlcIDsKK+aWh+WMluiyoSA+IGJ1bmthemFpXCA7Civmraboo4XoiLkgPiBidXNvdXNlblwgOwor6KiY6ICF5ZujID4ga2lzaGFkYW5cIDsKK+W+oeeUqOmCuCA+IGdveW91dGVpXCA7CivlvqHlhYjmo5IgPiBvc2FraWJvdVwgOwor5a6a5q+U5L6LID4gdGVpaGlyZWlcIDsKK+WvjOWjq+W3nSA+IGZ1amlrYXdhXCA7CivnlKPljbXmnJ8gPiBzYW5yYW5raVwgOwor5YiG55u45qmfID4gYnVuc291a2lcIDsKK+S4iuWxpOmbsiA+IGpvdXNvdXVuXCA7CivkuInmrKHlhYMgPiBzYW5qaWdlblwgOwor576k6aas55yMID4gZ3VubWFrZW5cIDsKK+WFteermemDqCA+IGhlaXRhbmJ1XCA7CivkuI3lhazlubMgPiBmdWtvdWhlaVwgOwor5YmN6by757eSID4gbWFlaGFuYW9cIDsKK+S4jeWHjeWJpCA+IGZ1dG91emFpXCA7CivniannnJ/kvLwgPiBtb25vbWFuZVwgOwor6YGK5q2p6YGTID4geXV1aG9kb3VcIDsKK+WPr+WTgOaDsyA+IGthd2Fpc291XCA7CivnqJ/orbDmm7ggPiByaW5naXNob1wgOwor54Sh5Yi26ZmQID4gbXVzZWlnZW5cIDsKK+S9k+iCsuWutiA+IHRhaWlrdWthXCA7CivliIblspDpp4UgPiBidW5raWVraVwgOwor5Yy755mC55SoID4gaXJ5b3V5b3VcIDsKK+mAruaNleeKtiA+IHRhaWhvam91XCA7CivpgY7ljrvluLMgPiBrYWtvY2hvdVwgOwor5qmf5YuV5oCnID4ga2lkb3VzZWlcIDsKK+eGsemiqOeCiSA+IG5lcHB1dXJvXCA7CivmranooYzogIUgPiBob2tvdXNoYVwgOwor5YaG6YyQ5b2iID4gZW5zdWlrZWlcIDsKK+WuiOmKreWltCA+IHNodXNlbmRvXCA7CivpgZPljJbluKsgPiBkb3VrZXNoaVwgOwor5LiL6IW56YOoID4ga2FmdWt1YnVcIDsKK+WPjeaUv+W6nCA+IGhhbnNlaWZ1XCA7Civlm57ou6LlhIAgPiBrYWl0ZW5naVwgOwor5LiK6I2J5bGlID4gdXdhem91cmlcIDsKK+exs+S4iumZoiA+IGJlaWpvdWluXCA7CivkuIDluLPnvoUgPiBpdGNob3VyYVwgOwor5pyd56i95Y+kID4gYXNhZ2Vpa29cIDsKK+ijveeyieaJgCA+IHNlaWZ1bmpvXCA7CivooqvmsrvogIUgPiBoaWNoaXNoYVwgOwor5a6u55Sw5a62ID4gbWl5YXRha2VcIDsKK+i/keihm+WFtSA+IGtvbm9laGVpXCA7CivlsqnmiYvnnIwgPiBpd2F0ZWtlblwgOwor6YCj6ZqK5peXID4gcmVudGFpa2lcIDsKK+euoealveWZqCA+IGthbmdha2tpXCA7CivorJ3mgankvJogPiBzaGFvbmthaVwgOwor6aSK6JyC5a62ID4geW91aG91a2FcIDsKK+S6lOe3mue0mSA+IGdvc2Vuc2hpXCA7CivlubPnlJ/nnYAgPiBoZWl6ZWlnaVwgOwor5qmf5biG6Ii5ID4ga2loYW5zZW5cIDsKK+mdnuaOkuawtCA+IGhpaGFpc3VpXCA7CivnnYDnlarlj7cgPiBraWJhbmdvdVwgOwor5LiN5YCr572qID4gZnVyaW56YWlcIDsKK+mjtOe0sOW3pSA+IGFtZXphaWt1XCA7Civlgb3kvLznl4cgPiBnaWppc2hvdVwgOwor5aSn5bqD6ZaTID4gb29oaXJvbWFcIDsKK+mBv+mbo+iAhSA+IGhpbmFuc2hhXCA7CivlrprluLjms6IgPiB0ZWlqb3VoYVwgOwor5oyH5o+u5a6YID4gc2hpa2lrYW5cIDsKK+S7mOWxnuiqniA+IGZ1em9rdWdvXCA7CivlubTkvJrosrsgPiBuZW5rYWloaVwgOwor5pWF6LK36ICFID4ga29iYWlzaGFcIDsKK+S6lOWkp+a0iyA+IGdvZGFpeW91XCA7Civnj6rol7vlnJ8gPiBrZWlzb3Vkb1wgOwor5Lq65ZCN57C/ID4gamlubWVpYm9cIDsKK+aOkuawl+WPoyA+IGhhaWtpa291XCA7Civpgb/lporms5UgPiBoaW5pbmhvdVwgOwor6JCM5pyo6ImyID4gbW9lZ2lpcm9cIDsKK+eJueS+oeWTgSA+IHRva2thaGluXCA7Civmj5rmipfmr5QgPiB5b3Vrb3VoaVwgOwor6ZuH55So6ICFID4ga295b3VzaGFcIDsKK+i+nuabuOmhniA+IGppc2hvcnVpXCA7CivlpKflvoDnlJ8gPiBkYWlvdWpvdVwgOwor6L+96LW36Ki0ID4gdHN1aWtpc29cIDsKK+mBjuWNiuaVsCA+IGthaGFuc3V1XCA7Civlronmga/ml6UgPiBhbnNva3ViaVwgOwor5YaN5rWu5LiKID4gc2FpZnVqb3VcIDsKK+Wbs+abuOWIuCA+IHRvc2hva2VuXCA7CivnmbrotbfkurogPiBob2traW5pblwgOwor6YGT5YW36KuWID4gZG91Z3Vyb25cIDsKK+WIhuebuOW/nCA+IGJ1bnNvdW91XCA7Civnq4vlgJnoo5wgPiByaWtrb3Vob1wgOwor6YG/5pqR5ZywID4gaGlzaG9jaGlcIDsKK+aOpemqqOacqCA+IG5pd2F0b2tvXCA7CivnpL7kvJrnp5EgPiBzaGFrYWlrYVwgOwor5LiK5qmf5auMID4gam91a2lnZW5cIDsKK+S6pOaPm+aJgCA+IGtvdWthbmpvXCA7CivllpzmrYzliocgPiBraWthZ2VraVwgOwor5re75Yqg5YmkID4gdGVua2F6YWlcIDsKK+acquW+qeWToSA+IG1pZnVrdWluXCA7CivorJnpgZzoqp4gPiBrZW5zb25nb1wgOwor5pyq5Yem572uID4gbWlzaG9jaGlcIDsKK+WcsOW9ouWbsyA+IGNoaWtlaXp1XCA7CivmnKrnn6XmlbAgPiBtaWNoaXN1dVwgOwor5YWr5r2u6LevID4geWFzaGlvamlcIDsKK+S7o+eQhuiAhSA+IGRhaXJpc2hhXCA7Civou43ku6Tpg6ggPiBndW5yZWlidVwgOwor5qiq5paH5a2XID4geW9rb21vamlcIDsKK+WkquWPpOS7oyA+IHRhaWtvZGFpXCA7Civlub7kvZXlraYgPiBraWthZ2FrdVwgOwor6KW/5rSL5YyWID4gc2VpeW91a2FcIDsKK+WIkeS9meiAhSA+IGtlaXlvc2hhXCA7CivmuKHkuJbkurogPiB0b3NlaW5pblwgOwor576F6Yed5YSAID4gcmFzaGluZ2lcIDsKK+WtkOmfs+e+pCA+IHNoaWluZ3VuXCA7CivmmpfoqLzljJYgPiBhbnNob3VrYVwgOwor5ruR6LWw6LevID4ga2Fzc291cm9cIDsKK+ijveWbs+advyA+IHNlaXp1YmFuXCA7CivnmofntbHorZwgPiBrb3V0b3VmdVwgOwor55CG5a2m6YOoID4gcmlnYWt1YnVcIDsKK+iLseiqnuWhviA+IGVpZ29qdWt1XCA7CivmgrLllpzliocgPiBoaWtpZ2VraVwgOwor5L+d566h5p6XID4gaG9rYW5yaW5cIDsKK+WGjeatpuijhSA+IHNhaWJ1c291XCA7CivotaTonLvom4kgPiBha2F0b25ib1wgOwor5LqI6aWM5LyaID4geW9zZW5rYWlcIDsKK+eEoei+uumamyA+IG11aGVuemFpXCA7CivkuI3oh6rnhLYgPiBmdXNoaXplblwgOwor6IWO5LiN5YWoID4gamluZnV6ZW5cIDsKK+WutOS8muWgtCA+IGVua2Fpam91XCA7CivntYzkuJblrrYgPiBrZWlzZWlrYVwgOwor5LiN5L+h6ICFID4gZnVzaGluamFcIDsKK+WNmOacrOS9jSA+IHRhbmhvbicnaVwgOwor5YaG6YyQ5Y+wID4gZW5zdWlkYWlcIDsKK+WboOaenOiAhSA+IGluZ2Ftb25vXCA7CivkuI3kv6HnvqkgPiBmdXNoaW5naVwgOwor6LuN5LqL6Z2iID4gZ3VuamltZW5cIDsKK+aBkuays+aymSA+IGdvdWdhc2hhXCA7CivlibXmoYjogIUgPiBzb3VhbnNoYVwgOwor6Ieq5rK75L2TID4gamljaGl0YWlcIDsKK+edgOWwuuWcsCA+IGtpamFrdWppXCA7CivlvozljYrmnJ8gPiBrb3VoYW5raVwgOwor6Ieq5rK75LyaID4gamljaGlrYWlcIDsKK+S+oeWApOimsyA+IGthY2hpa2FuXCA7Civopb/pgYroqJggPiBzZWl5dXVraVwgOwor5bm05Luj6KiYID4gbmVuZGFpa2lcIDsKK+aEn+aDheWutiA+IGthbmpvdWthXCA7CivmlofljJbnpa0gPiBidW5rYXNhaVwgOwor5aSJ5o+b5ZmoID4gaGVua2Fua2lcIDsKK+S4lueVjOWPsiA+IHNla2Fpc2hpXCA7Civlj5fnsr7ljbUgPiBqdXNlaXJhblwgOwor57eP5oyH5o+uID4gc291c2hpa2lcIDsKK+W5tOeUsuaWkCA+IHRvc2hpZ2FpXCA7CivkuI3lhYXliIYgPiBmdWp1dWJ1blwgOwor5rOl5LuV5ZCIID4gZG9yb2ppYWlcIDsKK+a4heWtkOmfsyA+IHNlaXNoaWluXCA7CivkuozmnJ/kvZwgPiBuaWtpc2FrdVwgOwor5qiq57SL562LID4gb3Vtb25raW5cIDsKK+mBi+WLleeVjCA+IHVuZG91a2FpXCA7CivmnKrnmbroposgPiBtaWhha2tlblwgOwor5YG25YOP5YyWID4gZ3V1em91a2FcIDsKK+ijnOiBtOWZqCA+IGhvY2hvdWtpXCA7Civoi7Hoqp7liocgPiBlaWdvZ2VraVwgOwor6Zu7566X5qmfID4gZGVuc2Fua2lcIDsKK+WGjeWQn+WRsyA+IHNhaWdpbm1pXCA7CivlhobpjJDkvZMgPiBlbnN1aXRhaVwgOwor5LqI6aSe5LyaID4geW9zZW5rYWlcIDsKK+mdkuWkqeS6lSA+IGFvdGVuam91XCA7CivpnZ7miKboq5YgPiBoaXNlbnJvblwgOwor5pyq55m66KGMID4gbWloYWtrb3VcIDsKK+ebuOWgtOW4qyA+IHNvdWJhc2hpXCA7Civlj6TmiKbloLQgPiBrb3NlbmpvdVwgOwor5LiJ55Wz57SAID4gc2Fuam91a2lcIDsKK+WlveaEj+eahCA+IGtvdWl0ZWtpXCA7CivlvqHpprPotbAgPiBnb2NoaXNvdVwgOwor5om26aSK6ICFID4gZnV5b3VzaGFcIDsKK+WNgeWtl+i7jSA+IGp1dWppZ3VuXCA7CivmjInmiYvnpLwgPiBhbnNodXJlaVwgOwor5ZCM5L2N6KeSID4gZG91aWtha3VcIDsKK+i8qui7ouapnyA+IHJpbnRlbmtpXCA7Civljq3kurrogIUgPiBlbmppbnNoYVwgOwor54Sh6YWN5b2TID4gbXVoYWl0b3VcIDsKK+WvjOijleeojiA+IGZ1eXV1emVpXCA7CivpgY7lirTmrbsgPiBrYXJvdXNoaVwgOwor57SF6KGb5YW1ID4ga291ZWloZWlcIDsKK+euoeeQhuiAhSA+IGthbnJpc2hhXCA7CivlpJzllYbkurogPiB5b2FraW5kb1wgOwor6IiM5LiL6IW6ID4gemVra2FzZW5cIDsKK+aJgOaMgeWTgSA+IHNob2ppaGluXCA7CivntIDooYzmlocgPiBraWtvdWJ1blwgOwor54Gr5bGx54GwID4ga2F6YW5iYWlcIDsKK+mojuWjq+mBkyA+IGtpc2hpZG91XCA7CivlibDkvZnph5EgPiBqb3V5b2tpblwgOwor6LGK5rC05pyfID4gaG91c3Vpa2lcIDsKK+S9juiDveWFkCA+IHRlaW5vdWppXCA7CivluLDntI3ms5UgPiBraW5vdWhvdVwgOwor542F5a2Q5bqnID4gc2hpc2hpemFcIDsKK+S6pOaPm+WZqCA+IGtvdWthbmtpXCA7CivkuJbnlYzkurogPiBzZWthaWppblwgOwor6KGb55Sf6ZqKID4gZWlzZWl0YWlcIDsKK+eQhuS6i+mVtyA+IHJpamljaG91XCA7CivlubPlsYvmoLkgPiBoaXJheWFuZVwgOwor5YWD6ICB6ZmiID4gZ2Vucm91aW5cIDsKK+ajhOaoqeiAhSA+IGtpa2Vuc2hhXCA7CivkuJbnlYzkuK0gPiBzZWthaWp1dVwgOwor5rKz5Y+j5rivID4ga2Frb3Vrb3VcIDsKK+S4jeS9k+ijgSA+IGZ1dGVpc2FpXCA7Civmr5LonJjom5sgPiBkb2t1Z3Vtb1wgOwor5Y2Y6Kqe56+HID4gdGFuZ29oZW5cIDsKK+eUn+W+kuaVsCA+IHNlaXRvc3V1XCA7Civnvornmq7ntJkgPiB5b3VoaXNoaVwgOwor5q+N57O75Yi2ID4gYm9rZWlzZWlcIDsKK+WxleekuuWgtCA+IHRlbmppam91XCA7Civlvozpgbrnl4cgPiBrb3Vpc2hvdVwgOwor5LiN5a6a6KmeID4gZnV0ZWlzaGlcIDsKK+WKoOaLheiAhSA+IGthdGFuc2hhXCA7Civpmb3pm7vmsJcgPiB5b3VkZW5raVwgOwor5a6j5Lyd6LK7ID4gc2VuZGVuaGlcIDsKK+WKh+aYoOeUuyA+IGdla2llaWdhXCA7CivnhKHluLjoprMgPiBtdWpvdWthblwgOwor6YGK6JWp5YWQID4geXV1dG91amlcIDsKK+mHkea6gOWutiA+IGtpbm1hbmthXCA7CivpjKDliY3lsYsgPiBqb3VtYWV5YVwgOwor55+l5ZCN5bqmID4gY2hpbWVpZG9cIDsKK+WHuumxiOebriA+IGRldGFyYW1lXCA7Civmh4foqbHkvJogPiBrb253YWthaVwgOwor6YG/6Zuj5rCRID4gaGluYW5taW5cIDsKK+WNgeWtl+ihlyA+IGp1dWppZ2FpXCA7CivkuLvmvJTogIUgPiBzaHVlbnNoYVwgOwor5LiW5L+X5YyWID4gc2V6b2t1a2FcIDsKK+eyl+ijveWTgSA+IHNvc2VpaGluXCA7Civlj7Plv4PmiL8gPiB1c2hpbmJvdVwgOwor5Zyn5Yi26ICFID4gYXNzZWlzaGFcIDsKK+WxleekuuWTgSA+IHRlbmppaGluXCA7Civmm7joqJjlrpggPiBzaG9raWthblwgOwor6YO35Zyf5oSbID4ga3lvdWRvYWlcIDsKK+iyr+iUteW6qyA+IGNob3pvdWtvXCA7CivkuIvppqzoqZUgPiBnZWJhaHlvdVwgOwor5LiN6IO96ICFID4gZnVub3VzaGFcIDsKK+S4jeiJr+WMliA+IGZ1cnlvdWthXCA7CivoloTojbfns5YgPiBoYWtrYXRvdVwgOwor6JaE6I2357K+ID4gaGFra2FzZWlcIDsKK+avlOWWqeeahCA+IGhpeXV0ZWtpXCA7CivkuonorbDmqKkgPiBzb3VnaWtlblwgOwor6YeN56aB6YyuID4ganV1a2lua29cIDsKK+mBi+WLleashCA+IHVuZG91cmFuXCA7Civmma7lgY/mgKcgPiBmdWhlbnNlaVwgOwor6L6y57mB5pyfID4gbm91aGFua2lcIDsKK+aEn+WPl+aApyA+IGthbmp1c2VpXCA7CivlhbXlmajlt6UgPiBoZWlraWtvdVwgOwor5YCq6Zuy5p6XID4gZ2VpdW5yaW5cIDsKK+mBi+mAgeiIuSA+IHVuc291c2VuXCA7CivpgYrlhrbpg44gPiB5dXV5YXJvdVwgOwor55S75LuZ57SZID4gZ2FzZW5zaGlcIDsKK+WkmuautemajiA+IHRhZGFua2FpXCA7CivoqabpqJPmqZ8gPiBzaGlrZW5raVwgOwor5LiA6Iis6KuWID4gaXBwYW5yb25cIDsKK+WKoOeul+eojiA+IGthc2FuemVpXCA7CivliIblspDnt5ogPiBidW5raXNlblwgOwor5ZaH5Y+t5omLID4gcmFwcGFzaHVcIDsKK+WFjee9quespiA+IG1lbnphaWZ1XCA7Civniqzpu4TmpYogPiBpbnV0c3VnZVwgOwor5Y6t5LiW6KazID4gZW5zZWlrYW5cIDsKK+WNiuS4lue0gCA+IGhhbnNlaWtpXCA7CivphbXmr43oj4wgPiBrb3Vib2tpblwgOwor5Ya3572o5rOVID4gcmVpYW5wb3VcIDsKK+aEm+iUteeJiCA+IGFpem91YmFuXCA7CivlvqHlgYnmlrkgPiBvZXJhZ2F0YVwgOwor6KiY5pWw5rOVID4ga2lzdXVob3VcIDsKK+epuuS4i+aJiyA+IGthcmFoZXRhXCA7CivkuI3lgaXlurcgPiBmdWtlbmtvdVwgOwor5o6i5qSc5a62ID4gdGFua2Vua2FcIDsKK+Wkp+awl+WcjyA+IHRhaWtpa2VuXCA7CivnjYXlrZDlkLwgPiBzaGlzaGlrdVwgOwor5Luj55CG5qipID4gZGFpcmlrZW5cIDsKK+eJqeS7tuiyuyA+IGJ1a2tlbmhpXCA7CivmraPopo/lhbUgPiBzZWlraWhlaVwgOwor5YaN6YWN5biDID4gc2FpaGFpZnVcIDsKK+Wbm+eVs+WNiiA+IHlvam91aGFuXCA7CivlsZXnpLrkvJogPiB0ZW5qaWthaVwgOwor5aSn6YO95biCID4gZGFpdG9zaGlcIDsKK+WFiOWtpuacnyA+IHNlbmdha2tpXCA7CivmgqrmtJLokL0gPiB3YXJ1amFyZVwgOwor6Ieq5rCR5YWaID4gamltaW50b3VcIDsKK+WMu+eZguWTgSA+IGlyeW91aGluXCA7CivlhoXmspnmsbAgPiB1Y2hpemF0YVwgOwor5YiG5YWJ5ZmoID4gYnVua291a2lcIDsKK+imquS4jeWtnSA+IG95YWZ1a291XCA7CivnuIHotbfniakgPiBlbmdpbW9ub1wgOwor5rWB5pif6ZuoID4gcnl1dXNlaXVcIDsKK+W5tOiyouexsyA+IG5lbmd1bWFpXCA7CivmtJfmtYTlmaggPiBzZW5qb3VraVwgOwor5rK56YCB6Ii5ID4geXVzb3VzZW5cIDsKK+W+queSsOWZqCA+IGp1bmthbmtpXCA7CivlgaXlurflhZAgPiBrZW5rb3VqaVwgOwor56iO55CG5aOrID4gemVpcmlzaGlcIDsKK+S6uuaDheWRsyA+IG5pbmpvdW1pXCA7Civlq4znlpHogIUgPiBrZW5naXNoYVwgOwor562J6Kqe57eaID4gdG91Z29zZW5cIDsKK+WNgeWtl+e3miA+IGp1dWppc2VuXCA7CivkuI3kvb/nlKggPiBmdXNoaXlvdVwgOwor5LiA55Sf6Z2iID4gaXNzZWltZW5cIDsKK+aXheihjOiomCA+IHJ5b2tvdWtpXCA7CivlgIvkvZPnvqQgPiBrb3RhaWd1blwgOwor5Y+j6JOL6Z+zID4ga291Z2Fpb25cIDsKK+Wcp+W7tuapnyA+IGF0c3VlbmtpXCA7Civlkozlo7Dms5UgPiB3YXNlaWhvdVwgOwor6auY6aC75bqmID4ga291aGluZG9cIDsKK+Wwj+ixhuiJsiA+IGF6dWtpaXJvXCA7CivljrPnvo7muJMgPiBnZW5iaWtlaVwgOwor54Gr5bGx5by+ID4ga2F6YW5kYW5cIDsKK+WNiuirp+mfsyA+IGhhbmthaW9uXCA7CivmtojljJblmaggPiBzaG91a2FraVwgOwor5rGC5rOV6ICFID4gZ3Vob3VzaGFcIDsKK+eBq+WxseW4ryA+IGthemFudGFpXCA7CivkuIvpp4TnrrEgPiBnZXRhYmFrb1wgOwor6Iqd5rW36ICBID4gc2hpYmFlYmlcIDsKK+Wkp+WIhuecjCA+IG9vaXRha2VuXCA7CivlsbHnvorpq60gPiB5YWdpaGlnZVwgOwor54Cs5oi46ZqbID4gc2V0b2dpd2FcIDsKK+eBq+WxseWztiA+IGthemFudG91XCA7CivkuI3lr6nngasgPiBmdXNoaW5iaVwgOwor5aWJ5LuV5aWzID4gaG91c2hpbWVcIDsKK+eBq+WxseWyqSA+IGthemFuZ2FuXCA7CivnjonnoILliKkgPiB0YW1hamFyaVwgOwor5LiA5YiG5Y2KID4gaXBwdW5oYW5cIDsKK+iKsemzpeeUuyA+IGthY2hvdWdhXCA7CivnhKHoj4zms5UgPiBtdWtpbmhvdVwgOwor54Sh5YWN6KixID4gbXVtZW5reW9cIDsKK+W+hemBv+e3miA+IHRhaWhpc2VuXCA7CivnrYnmmYLmgKcgPiB0b3VqaXNlaVwgOwor5bm06LOA54q2ID4gbmVuZ2Fqb3VcIDsKK+WPpOWPguiAhSA+IGtvc2Fuc2hhXCA7CivmhJ/mrY7nrKYgPiBrYW50YW5mdVwgOwor5YiG5bKQ54K5ID4gYnVua2l0ZW5cIDsKK+S+jeW+k+WumCA+IGppanV1a2FuXCA7CivlhoXph47miYsgPiBuYWl5YXNodVwgOwor5rK56YCB566hID4geXVzb3VrYW5cIDsKK+S4jeeUqOW/gyA+IGJ1eW91amluXCA7Civoqpjom77nga8gPiB5dXVnYXRvdVwgOwor6KiI55CG5aOrID4ga2VpcmlzaGlcIDsKK+mbkeiyqOW6lyA+IHpha2thdGVuXCA7Civluqflj7PpipggPiB6YXl1dW1laVwgOwor5a2Q6Z+z5oCnID4gc2hpaW5zZWlcIDsKK+acn+W+heaEnyA+IGtpdGFpa2FuXCA7CivpgYvli5XlrrYgPiB1bmRvdXNoYVwgOwor5oSa6YCj6ZqKID4gZ3VyZW50YWlcIDsKK+WOn+WtkOmbsiA+IGdlbnNoaXVuXCA7Civku6PnkIblupcgPiBkYWlyaXRlblwgOwor6Ku45Zmo5qKwID4gc2hva2lrYWlcIDsKK+aTjeiIteaJiyA+IHNvdWRhc2h1XCA7Civlh7rmra/kuoAgPiBkZWJha2FtZVwgOwor5LiN5YGl5YWoID4gZnVrZW56ZW5cIDsKK+ebuOijnOaApyA+IHNvdWhvc2VpXCA7Civoh6rou6Lou4ogPiBqaXRlbnNoYVwgOwor5Yid5pyf5YCkID4gc2hva2ljaGlcIDsKK+aOpemgrei+niA+IHNldHRvdWppXCA7CivnlJ/lvpLkvJogPiBzZWl0b2thaVwgOwor6LWk6KO444CFID4gc2VraXJhcmFcIDsKK+mgkOiogOiAhSA+IHlvZ2Vuc2hhXCA7Civplovlgqzml6UgPiBrYWlzYWliaVwgOwor6IO06ZaT5aOwID4gZG91bWFnb2VcIDsKK+iDjOeVquWPtyA+IHNlYmFuZ291XCA7Civmta7mtarogIUgPiBmdXJvdXNoYVwgOwor5Lya5ZOh5Yi4ID4ga2FpaW5rZW5cIDsKK+S8muWToeWItiA+IGthaWluc2VpXCA7Civoi7HnsbPms5UgPiBlaWJlaWhvdVwgOwor5ZCI55CG6KuWID4gZ291cmlyb25cIDsKK+Wkp+mDqOWIhiA+IGRhaWJ1YnVuXCA7CivkupTop5LlvaIgPiBnb2tha2tlaVwgOwor56S+5Lya5YyWID4gc2hha2Fpa2FcIDsKK+S4reimj+aooSA+IGNodXVraWJvXCA7CivlpKfpg73kvJogPiBkYWl0b2thaVwgOwor6K236YCB6LuKID4gZ29zb3VzaGFcIDsKK+mHjeaJi+S7oyA+IG9tb3RlZGFpXCA7CivluoPloLHpg6ggPiBrb3Vob3VidVwgOwor5Ym15LiW6KiYID4gc291c2Vpa2lcIDsKK+S4ieadr+mFoiA+IHNhbmJhaXp1XCA7Civnr4Dngq3lmaggPiBzZXR0YW5raVwgOwor5biM5pyb6ICFID4ga2lib3VzaGFcIDsKK+WkluenkeWtpiA+IGdla2FnYWt1XCA7CivliJHkuovniq8gPiBrZWlqaWhhblwgOwor6YWN57ea5ZuzID4gaGFpc2VuenVcIDsKK+apn+aisOirliA+IGtpa2Fpcm9uXCA7Civlt53np4vmspkgPiBrYXdhYWlzYVwgOwor5paH5YyW5ZyPID4gYnVua2FrZW5cIDsKK+aOpemgreiqniA+IHNldHRvdWdvXCA7CivkuovmlYXmrbQgPiBqaWtvcmVraVwgOwor5bGx5bCP5bGLID4geWFtYWdveWFcIDsKK+ezuOicu+ibiSA+IGl0b3RvbmJvXCA7Civnp7vou6LlhYggPiBpdGVuc2FraVwgOwor5aSn5Yuy5L2NID4gZGFpa3VuJydpXCA7CivlpKfnm67njokgPiBvb21lZGFtYVwgOwor5a6Y5YWs5ZCPID4ga2Fua291cmlcIDsKK+WNlOitsOWToSA+IGt5b3VnaWluXCA7Civou43kuovniq8gPiBndW5qaWhhblwgOwor6ZqP6KGM5ZOhID4genVpa291aW5cIDsKK+S4gOi+uuWAkiA+IGlwcGVudG91XCA7Civnj77ku6Poqp4gPiBnZW5kYWlnb1wgOwor6IG06Z+z5qmfID4gY2hvdW9ua2lcIDsKK+S4jeWwjuaApyA+IGZ1ZG91c2VpXCA7CivnkIblrrnluKsgPiByaXlvdXNoaVwgOwor5Lmx6auY5LiLID4gcmFua291Z2VcIDsKK+WPmeaDheipqSA+IGpvam91c2hpXCA7CivnpL7kuqTlrrYgPiBzaGFrb3VrYVwgOwor5paH5YyW5Y+yID4gYnVua2FzaGlcIDsKK+S4jeeUqOWTgSA+IGZ1eW91aGluXCA7CivpgI/mmI7luqYgPiB0b3VtZWlkb1wgOwor5LiN5a6a5rOVID4gZnV0ZWlob3VcIDsKK+a4qeaOkuawtCA+IG9uaGFpc3VpXCA7CivlpKnoirHnsokgPiB0ZW5rYWZ1blwgOwor6Iiq56m66LevID4ga291a3V1cm9cIDsKK+izh+eUo+WutiA+IHNoaXNhbmthXCA7CivpoZ7kvLzngrkgPiBydWlqaXRlblwgOwor5reh5rC05rmWID4gdGFuc3Vpa29cIDsKK+S6iOiogOiAhSA+IHlvZ2Vuc2hhXCA7CivluoPloLHoqrIgPiBrb3Vob3VrYVwgOwor5bCP5Lq65pWwID4ga29uaW56dXVcIDsKK+aEm+efpeecjCA+IGFpY2hpa2VuXCA7CivkurrpgKDol40gPiBqaW56b3VhaVwgOwor5Yy75a2m6ICFID4gaWdha3VzaGFcIDsKK+aCquaEn+aDhSA+IGFra2Fuam91XCA7Civku67ntI3ph5EgPiBrYW5vdWtpblwgOwor5pyq5Yem5YiGID4gbWlzaG9idW5cIDsKK+W3rumFjeS6uiA+IHNhaGFpbmluXCA7CivkvY7poLvluqYgPiB0ZWloaW5kb1wgOwor5L2c54K654qvID4gc2FrdWloYW5cIDsKK+atr+enkeeUqCA+IHNoaWtheW91XCA7Civlho3lh6bnkIYgPiBzYWlzaG9yaVwgOwor6YGL5YuV5LyaID4gdW5kb3VrYWlcIDsKK+iKseiMo+iTmSA+IGhhbmFnb3phXCA7CivnjoTmrablsqkgPiBnZW5idWdhblwgOwor5ray54q25YyWID4gZWtpam91a2FcIDsKK+eEoeWIqeaBryA+IG11cmlzb2t1XCA7CivpmaPnvr3nuZQgPiBqaW5iYW9yaVwgOwor5oim6ZeY5qmfID4gc2VudG91a2lcIDsKK+acieaEj+eahCA+IHl1dWl0ZWtpXCA7CivllY/poYzlhZAgPiBtb25kYWlqaVwgOwor5YK15YuZ6ICFID4gc2FpbXVzaGFcIDsKK+S4gOmojuiojiA+IGlra2l1Y2hpXCA7Civoo5zntabot68gPiBob2t5dXVyb1wgOwor5LiL5bGk5ZyfID4ga2Fzb3Vkb1wgOwor6LW35YuV5qmfID4ga2lkb3VraVwgOwor5Y2B5a2X5p62ID4ganV1amlrYVwgOwor5Lq65bel6ZuoID4gamlua291dVwgOwor6aST6ay86YGTID4gZ2FraWRvdVwgOwor5LiN5a6a5pyfID4gZnV0ZWlraVwgOwor5qih5pOs5bqXID4gbW9naXRlblwgOwor5Y+k5q2m6YGTID4ga29idWRvdVwgOwor5qCE6aSK57SgID4gZWl5b3Vzb1wgOwor6Lqr5Yud5omLID4gbWlnYXR0ZVwgOwor54Sh5Yip5a2QID4gbXVyaXNoaVwgOwor55Gg55KD6ImyID4gcnVyaWlyb1wgOwor6IOD6IW454KOID4gaWNob3VlblwgOwor6LW35YuV5pmCID4ga2lkb3VqaVwgOwor5q666Zmj5birID4gdGF0ZXNoaVwgOwor6aGe576p6KqeID4gcnVpZ2lnb1wgOwor5a626KiI57C/ID4ga2FrZWlib1wgOwor55m76KiY57C/ID4gdG91a2lib1wgOwor6YeN5q+N6Z+zID4ganV1Ym9pblwgOwor6YGF55+l5oG1ID4gb3NvZGppZVwgOwor5aSn6YGO5Y67ID4gZGFpa2Frb1wgOwor5Yqg566X5ZmoID4ga2FzYW5raVwgOwor5aSn55u45pKyID4gb296dW1vdVwgOwor5qmf6IO96KqeID4ga2lub3Vnb1wgOwor5pyJ5rCX6Z+zID4geXV1a2lvblwgOwor5LiN5p2h55CGID4gZnVqb3VyaVwgOwor5aSn6YGT5YW3ID4gb29kb3VndVwgOwor5a6a5L2N572uID4gdGVpaWNoaVwgOwor6YGL6YCB5bGLID4gdW5zb3V5YVwgOwor6YCg5Za26LK7ID4gem91ZWloaVwgOwor6JKZ5Y+k6KqeID4gbW91a29nb1wgOwor5qmf5qKw56eRID4ga2lrYWlrYVwgOwor5qyh5bm05bqmID4gamluZW5kb1wgOwor5aSa6YeN5YyWID4gdGFqdXVrYVwgOwor5Y2D5Luj5aWzID4gY2hpeW9qb1wgOwor5Y+k56S+5a+6ID4ga29zaGFqaVwgOwor5LiA5bGk55uuID4gaXNzb3VtZVwgOwor5aiR5amG5rCXID4gc2hhYmFrZVwgOwor5Yqx56OB5qmfID4gcmVpamlraVwgOwor5LiN6aaW5bC+ID4gZnVzaHViaVwgOwor5oKq5oSf5YyWID4gYWtrYW5rYVwgOwor5b6F6YG/5omAID4gdGFpaGlqb1wgOwor5Zub6IKh5ZCNID4gc2hpa29uYVwgOwor5LiN5Lq65rCXID4gZnVuaW5raVwgOwor6KW/5qyn5YyWID4gc2Vpb3VrYVwgOwor5LqM6ZqO5bGLID4gbmlrYWl5YVwgOwor5qOS5pqX6KiYID4gYm91YW5raVwgOwor5LiN5LiA6Ie0ID4gZnVpdGNoaVwgOwor6KGA5Y+N5ZCQID4gY2hpaGVkb1wgOwor5puz54Gr5by+ID4gZWlrYWRhblwgOwor5LqM6ZqO5a62ID4gbmlrYWl5YVwgOwor57Ch57Sg5YyWID4ga2Fuc29rYVwgOwor5YCL5L2T5beuID4ga290YWlzYVwgOwor5ZCM6Z+z6KqeID4gZG91b25nb1wgOwor5LmX5YuZ5ZOhID4gam91bXVpblwgOwor6KOP5pyo5oi4ID4gdXJha2lkb1wgOwor6YeR5q+Y576FID4ga29ucGlyYVwgOwor54Sh6YCg5L2cID4gbXV6b3VzYVwgOwor5Y2B5LqM5pmCID4ganV1bmlqaVwgOwor5oSP5oOz5aSWID4gaXNvdWdhaVwgOwor5LiN5a6J5a6aID4gZnVhbnRlaVwgOwor6Zmw6Zu75rCXID4gaW5kZW5raVwgOwor6JaE6aas6bm/ID4gdXN1YmFrYVwgOwor5LiB5a2X6LevID4gdGVpamlyb1wgOwor5o+Q56S66YOoID4gdGVpamlidVwgOwor5oWw5ZWP5ZOBID4gaW1vbmhpblwgOwor6Kaq5paH5a2XID4gb3lhbW9qaVwgOwor55CG6LKh5a62ID4gcml6YWlrYVwgOwor56i95Y+k5pelID4ga2Vpa29iaVwgOwor5LqM5aGB5omTID4gbmlydWlkYVwgOwor5omL55u46KaLID4gdGVzb3VtaVwgOwor5aSc55uX6Ju+ID4geW90b3VnYVwgOwor5aWz5oCn576OID4gam9zZWliaVwgOwor6aKo6YKq5aOwID4ga2F6ZWdvZVwgOwor5Y6t5LiW5a62ID4gZW5zZWlrYVwgOwor54ao5paX55uuID4gbm9zaGltZVwgOwor6Zmw6KyA5a62ID4gaW5ib3VrYVwgOwor6ZqP5oSP562LID4genVpaWtpblwgOwor5omL5Yqg5ribID4gdGVrYWdlblwgOwor6K6a576O5q2MID4gc2FuYmlrYVwgOwor5ZCM5L2N5L2TID4gZG91aXRhaVwgOwor6aGe6Z+z6KqeID4gcnVpb25nb1wgOwor5Y+J5omL57ayID4gc2FkZWFtaVwgOwor5bCP57as6baPID4ga29qdWtlaVwgOwor5pm06Zuo6KiIID4gc2VpdWtlaVwgOwor5paH5bqr5YyWID4gYnVua29rYVwgOwor6YeO5qyh6aasID4geWFqaXVtYVwgOwor6KGX6Lev5qi5ID4gZ2Fpcm9qdVwgOwor5o6n6Ki06ZmiID4ga291c29pblwgOwor5LuZ5Lq65o6MID4gc2Fib3RlblwgOwor576p5o+06YeRID4gZ2llbmtpblwgOwor5L+v556w5ZuzID4gZnVrYW56dVwgOwor5b6h5paw6aaZID4gb3NoaW5rb1wgOwor5b6h5a625Lq6ID4gZ29rZW5pblwgOwor5aSn5a+66ZmiID4gZGFpamlpblwgOwor54OP5769546JID4gdWJhdGFtYVwgOwor5oCn6KGM54K6ID4gc2Vpa291aVwgOwor5LiA6Iis5YyWID4gaXBwYW5rYVwgOwor5Y2B5LqU5aScID4ganV1Z295YVwgOwor5LqM6Zmi5Yi2ID4gbmlpbnNlaVwgOwor5a625pS/5ammID4ga2FzZWlmdVwgOwor56ys5LqM576pID4gZGFpbmlnaVwgOwor55yf6a2a5p2/ID4gbWFuYWl0YVwgOwor5YaG6LuM6YGTID4gZW5raWRvdVwgOwor6YeO6JGh6JCEID4gbm9idWRvdVwgOwor5b+c5Yuf6ICFID4gb3Vib3NoYVwgOwor6bq75a6f5rK5ID4gYXNhbWl5dVwgOwor6Iy26aOv5LqLID4gc2FoYW5qaVwgOwor5YWr6YeN6ZuyID4geWFlZ3VtYVwgOwor5pyq6LiP5p+7ID4gbWl0b3VzYVwgOwor57W16JGJ5pu4ID4gZWhhZ2FraVwgOwor56i95Y+k5aC0ID4ga2Vpa29iYVwgOwor5a6J5YWo5pyfID4gYW56ZW5raVwgOwor5Y+N5oSP6KqeID4gaGFuJydpZ29cIDsKK+WAi+S6uuW3riA+IGtvamluc2FcIDsKK+e3j+WLmemDqCA+IHNvdW11YnVcIDsKK+itpumDqOijnCA+IGtlaWJ1aG9cIDsKK+S4juWkqumDjiA+IHlvdGFyb3VcIDsKK+S9jeeJjOWggiA+IGloYWlkb3VcIDsKK+e+qeWkquWkqyA+IGdpZGF5dXVcIDsKK+S4iemeremFkiA+IHNoYW5wZW5cIDsKK+Wmg+auv+S4iyA+IGhpZGVua2FcIDsKK+a8q+eUu+WutiA+IG1hbmdha2FcIDsKK+S4jeacrOaEjyA+IGZ1aG9uJydpXCA7CivmranlkIjnrpcgPiBidWFpemFuXCA7Civoqp7lvZnnmoQgPiBnb2l0ZWtpXCA7CivnrKzkuIDoqrIgPiBkYWlpa2thXCA7CivkupXmiLjnq68gPiBpZG9iYXRhXCA7CivnkIbkuovkvJogPiByaWppa2FpXCA7Civngavmm5zml6UgPiBrYXlvdWJpXCA7CivlvqHkuI3mtYQgPiBnb2Z1am91XCA7CivmnKrlrprnvqkgPiBtaXRlaWdpXCA7Civlr77kvY3ms5UgPiB0YWlpaG91XCA7Civmta7mtarlhZAgPiBmdXJvdWppXCA7Civlqabkurrnp5EgPiBmdWppbmthXCA7Civku5bkuJbnlYwgPiB0YXNla2FpXCA7CivmhbDlirTph5EgPiBpcm91a2luXCA7CivnkIbkuI3lsL0gPiByaWZ1amluXCA7CivljZjlnZDmqZ8gPiB0YW56YWtpXCA7CivkuI3po73lkowgPiBmdWhvdXdhXCA7Civku6PorbDlk6EgPiBkYWlnaWluXCA7CivpnZ7lkIjnkIYgPiBoaWdvdXJpXCA7Civnt4/li5noqrIgPiBzb3VtdWthXCA7CivmpLDlrZDmsrkgPiB5YXNoaXl1XCA7CivmsLTms7PnnYAgPiBzdWllaWdpXCA7CivntbXojYnntJkgPiBlem91c2hpXCA7CivlsI/niqzluqcgPiBrb2ludXphXCA7CivotaTlkbPlmYwgPiBha2FtaXNvXCA7Civlr77nvqnoqp4gPiB0YWlnaWdvXCA7CivmsZrmn5Poj4wgPiBvc2Vua2luXCA7CivkuInml6Xot68gPiBtaWtrYWppXCA7CivlsYXphZLlsYsgPiBpemFrYXlhXCA7Civoh6rlrrboo70gPiBqaWthc2VpXCA7CivloZfluIPliaQgPiB0b2Z1emFpXCA7Civlj6Tlhbjoqp4gPiBrb3RlbmdvXCA7CivnvqnmjZDph5EgPiBnaWVua2luXCA7CivkuI3mma/msJcgPiBmdWtlaWtpXCA7CivlkIjnkIbljJYgPiBnb3VyaWthXCA7Civmi4nkuIHoqp4gPiByYXRlbmdvXCA7Civpm7vno4Hms6IgPiBkZW5qaWhhXCA7Civpm7vno4HmsJcgPiBkZW5qaWtpXCA7CivlronlhajlmaggPiBhbnplbmtpXCA7CivmqZ/morDljJYgPiBraWthaWthXCA7CivmoITppIrkvqEgPiBlaXlvdWthXCA7CivnrKzkuozmrKEgPiBkYWluaWppXCA7CivkupXmiLjmsLQgPiBpZG9taXp1XCA7CivkuIDlgIvkurogPiBpa2tvamluXCA7CivkuqHnpZbniLYgPiBib3Vzb2Z1XCA7CivlvqHmnLHljbAgPiBnb3NodWluXCA7CivnlbDmgKfkvZMgPiBpc2VpdGFpXCA7CivpnZ7lkIzmnJ8gPiBoaWRvdWtpXCA7CivljYHpnLLnm6QgPiBzb3JvYmFuXCA7CivnrYboqJjlhbcgPiBoaWtraWd1XCA7CivnqY/lgaXmtL4gPiBvbmtlbmhhXCA7CivogrLlhZDlnJIgPiBpa3VqaWVuXCA7Civpm7vmsJfngokgPiBkZW5raXJvXCA7Civkvp3lrZjmgKcgPiBpem9uc2VpXCA7Civmr5Tlj6HlsbEgPiBoaWVpemFuXCA7Civkvp3poLzogIUgPiBpcmFpc2hhXCA7Civoo73msrnmiYAgPiBzZWl5dWpvXCA7Civln7rmnKzoqp4gPiBraWhvbmdvXCA7CivlvqHkuInlrrYgPiBnb3NhbmtlXCA7CivkupTnr4Dlj6UgPiBnb3Nla2t1XCA7CivoqqTli5XkvZwgPiBnb2RvdXNhXCA7CivlvbHljbDmnKwgPiBlaWluaG9uXCA7CivntYzllrbosrsgPiBrZWllaWhpXCA7Civlhobnm7jloLQgPiBlbnNvdWJhXCA7CivooqvnlpHogIUgPiBoaWdpc2hhXCA7CivmlL7ngavprZQgPiBob3VrYW1hXCA7CivkuI3mlq3nnYAgPiBmdWRhbmdpXCA7CivogZbot6/liqAgPiBzZWlyb2thXCA7CivkuIvnt5rpg6ggPiBrYXNlbmJ1XCA7CivlpJrmrKHlhYMgPiB0YWppZ2VuXCA7CivkvLzpnZ7ogIUgPiBlc2Vtb25vXCA7CivohLPlpJbnp5EgPiBub3VnZWthXCA7CivlvqHkuIvllY8gPiBnb2thbW9uXCA7CivohoPogq3oh40gPiBvdHRvc2VpXCA7CivlpbPmgKflmaggPiBqb3NlaWtpXCA7CivlrbXljbXlmaggPiBmdXJhbmtpXCA7CivnhKHnkIbop6MgPiBtdXJpa2FpXCA7CivniLbmgKfmhJsgPiBmdXNlaWFpXCA7CivpnZ7mraboo4UgPiBoaWJ1c291XCA7CivlkIzniLbmr40gPiBkb3VmdWJvXCA7CivlpbPmgKfljJYgPiBqb3NlaWthXCA7CivnhKHmnJ/pmZAgPiBtdWtpZ2VuXCA7Civoh6rlrrbnlKggPiBqaWtheW91XCA7Civlrrbns7vlm7MgPiBrYWtlaXp1XCA7CivkuIDkuJbntIAgPiBpc3NlaWtpXCA7Civoh6rnlLHluqYgPiBqaXl1dWRvXCA7CivmsZrmn5PmupAgPiBvc2VuZ2VuXCA7Civkvp3poLznirYgPiBpcmFpam91XCA7CivnrKzkuIDmrakgPiBkYWlpcHBvXCA7Civlvq7lobXlrZAgPiBtaWppbmtvXCA7CivotJTlsZPnm64gPiBoaWlraW1lXCA7Civpm7vno4HloLQgPiBkZW5qaWJhXCA7CivkuIDkvZPljJYgPiBpdHRhaWthXCA7CivlvqHml6Xmp5ggPiBvaGlzYW1hXCA7Civpn7Pnvr3lsYsgPiBvdG93YXlhXCA7CivljLvpmaLplbcgPiBpaW5jaG91XCA7CivljbDmrKfoqp4gPiBpbicnb3Vnb1wgOwor5Ye65p2l56eLID4gZGVraWFraVwgOwor6aOb6KGM5qmfID4gaGlrb3VraVwgOwor54Sh5L2c54K6ID4gbXVzYWt1aVwgOwor6YO95biC6YOoID4gdG9zaGlidVwgOwor5bqn6JKy5ZujID4gemFidXRvblwgOwor5pS+6Kqy5b6MID4gaG91a2Fnb1wgOwor5LiA5pys5rCXID4gaXBwb25naVwgOwor6Zu75rCX5bGLID4gZGVua2l5YVwgOwor5pyq5p2l5rS+ID4gbWlyYWloYVwgOwor5qCE6KqJ56S8ID4gZWl5b3JlaVwgOwor57OW6KGj6YygID4gdG91aWpvdVwgOwor55CG6KuW5a62ID4gcmlyb25rYVwgOwor5omT5qW95ZmoID4gZGFnYWtraVwgOwor54Sh5L2c5rOVID4gYnVzYWhvdVwgOwor5LuB546L6ZaAID4gbmlvdW1vblwgOwor5Y+k5YW45rS+ID4ga290ZW5oYVwgOwor57Sg5bCB5a62ID4gc29ob3VrYVwgOwor5q2p5ZCI5Yi2ID4gYnVhaXNlaVwgOwor6a2a5rKz5bK4ID4gdW9nYXNoaVwgOwor6Ieq55Sx5YyWID4gaml5dXVrYVwgOwor5o6I55Sj5omAID4ganVzYW5qb1wgOwor6aeG5YuV5qmfID4ga3Vkb3VraVwgOwor5LqM566H5omAID4gbmlrYXNob1wgOwor6YGV54qv6ICFID4gaWhhbnNoYVwgOwor6Ieq55S75YOPID4gamlnYXpvdVwgOwor5b2i5oSP5ouzID4ga2VpaWtlblwgOwor5q+N5oCn5oSbID4gYm9zZWlhaVwgOwor5LqV5oi45YG0ID4gaWRvZ2F3YVwgOwor56C056CV5qmfID4gaGFzYWlraVwgOwor6YGV6K2m572qID4gaWtlaXphaVwgOwor5biM5Zyf6aGeID4ga2lkb3J1aVwgOwor5Lqc6Ymb5byVID4gYWVuYmlraVwgOwor5aSq5a6w5bqcID4gZGF6YWlmdVwgOwor5LyK6YGU6ICFID4gZGF0ZXNoYVwgOwor6YCB6Kmx5ZmoID4gc291d2FraVwgOwor5Ly05aSp6YCjID4gYmF0ZXJlblwgOwor5Lqc6bq75biDID4gYW1hbnVub1wgOwor5aWz6YOO5bGLID4gam9yb3V5YVwgOwor5Zm06Zyn5ZmoID4gZnVubXVraVwgOwor6Iux5Y2Y6KqeID4gZWl0YW5nb1wgOwor6I236aas6LuKID4gbmliYXNoYVwgOwor5pOs5oWL6KqeID4gZ2l0YWlnb1wgOwor55Ww6YKm5Lq6ID4gaWhvdWppblwgOwor5oCq5oiR5Lq6ID4ga2VnYW5pblwgOwor5Yq55p6c6Z+zID4ga291a2FvblwgOwor5aKT56KR6YqYID4gYm9oaW1laVwgOwor6aOb6KGM5a62ID4gaGlrb3VrYVwgOwor54Gr54ao5paXID4gaGlub3NoaVwgOwor5YSq5L2N5oCnID4geXV1aXNlaVwgOwor54Sh6Laj5ZGzID4gbXVzaHVtaVwgOwor6YGO54++5pyqID4ga2FnZW5taVwgOwor6ZW35qSF5a2QID4gbmFnYWlzdVwgOwor6IG+5ZSW6ICFID4gcm91YXNoYVwgOwor5paH5a2X55ukID4gbW9qaWJhblwgOwor5LqU5Y2B6Z+zID4gZ29qdXVvblwgOwor5aSp5amm576FID4gdGVucHVyYVwgOwor5a+d6YGT5YW3ID4gbmVkb3VndVwgOwor55Ww5YiG5a2QID4gaWJ1bnNoaVwgOwor6Ieq6LKp5qmfID4gamloYW5raVwgOwor5YWr6YeN5Z6jID4geWFlZ2FraVwgOwor54Sh5L6h5YCkID4gbXVrYWNoaVwgOwor5Lq65LqL6ZmiID4gamluamlpblwgOwor5LiN5aSc5Z+OID4gZnV5YWpvdVwgOwor576O5LiI5aSrID4gYmlqb3VmdVwgOwor5piT5pCN5ZOBID4gaXNvbmhpblwgOwor5bC85YOn6ZmiID4gbmlzb3VpblwgOwor54Sh55CG5pWwID4gbXVyaXN1dVwgOwor54Sh6Z+76KmpID4gbXVpbnNoaVwgOwor5aSa5qeY5YyWID4gdGF5b3VrYVwgOwor55Sy5paQ5oCnID4ga2Fpc2hvdVwgOwor5bGL5qC56KOPID4geWFuZXVyYVwgOwor5pq06aKo6ZuoID4gYm91ZnV1dVwgOwor55Sf55CG5pelID4gc2VpcmliaVwgOwor5YiG6ZmQ6ICFID4gYnVnZW5qYVwgOwor5Lq65LqL6YOoID4gamluamlidVwgOwor6bia6bWh6LKdID4gb3VtdWdhaVwgOwor5LiA5LiB5a2XID4gaXR0ZWlqaVwgOwor5YiG6Zui5rS+ID4gYnVucmloYVwgOwor5bCP57Sw5belID4ga296YWlrdVwgOwor5pqX5Y+35YyWID4gYW5nb3VrYVwgOwor5Y2w5bqm5rSLID4gaW5kb3lvdVwgOwor5aGp57Sg6YW4ID4gZW5zb3NhblwgOwor5L6d6aC85Lq6ID4gaXJhaW5pblwgOwor54i25q+N5LyaID4gZnVib2thaVwgOwor6aOy6YWS5a62ID4gaW5zaHVrYVwgOwor5LiN6KqN5Y+vID4gZnVuaW5rYVwgOwor5oWw5Yq05LyaID4gaXJvdWthaVwgOwor6LGG6IWQ5bGLID4gdG91ZnV5YVwgOwor5YiG6Zui5qmfID4gYnVucmlraVwgOwor54Gr54KO55O2ID4ga2FlbmJpblwgOwor5b6h5aSa5YiGID4gZ290YWJ1blwgOwor6Ieo5pmC6LK7ID4gcmluamloaVwgOwor5aSn5aSq6byTID4gb29kYWlrb1wgOwor5aaC5L2V56iLID4gaWthaG9kb1wgOwor54mh54mb5bqnID4gb3VzaGl6YVwgOwor5Yqg5bel6LK7ID4ga2Frb3VoaVwgOwor5Lq65LqL6KqyID4gamluamlrYVwgOwor6YeO6Imv54qsID4gbm9yYWludVwgOwor6K6D576O5q2MID4gc2FuYmlrYVwgOwor5pel5pys6ZaTID4gbmlob25tYVwgOwor5aSn6LGG5rK5ID4gZGFpenV5dVwgOwor5YWQ56ul55S7ID4gamlkb3VnYVwgOwor5ryU6Iie5aC0ID4gZW5idWpvdVwgOwor5Ly86Z2e5LqLID4gZXNlZ290b1wgOwor5LiN57WQ5p6cID4gZnVrZWtrYVwgOwor5Zyw5LiL5YyWID4gY2hpa2FrYVwgOwor5YWr55m+6ZW3ID4geWFvY2hvdVwgOwor6YGO6aO95ZKMID4ga2Fob3V3YVwgOwor5pep5bCR5aWzID4gc2FvdG9tZVwgOwor5aaC5L2V54mpID4gaWthbW9ub1wgOwor54mI55S75a62ID4gaGFuZ2FrYVwgOwor5oSb6aOy6ICFID4gYWlpbnNoYVwgOwor5a6J5a6a5ZmoID4gYW50ZWlraVwgOwor6aeE6I+T5a2QID4gZGFnYXNoaVwgOwor5ZSQ6IOh6bq7ID4gdG91Z29tYVwgOwor5YGc6Z+z56ymID4gdGVpb25wdVwgOwor5ZyS6Iq45a62ID4gZW5nZWlrYVwgOwor5oqV5b2x5qmfID4gdG91ZWlraVwgOwor6Iux5ZCJ5YipID4gaWdpcmlzdVwgOwor5bqn5biD5ZujID4gemFidXRvblwgOwor54Sh5aOw6Z+zID4gbXVzZWlvblwgOwor5ZSQ6IyE5a2QID4gdG91bmFzdVwgOwor5pel5pys6KqeID4gbmlob25nb1wgOwor5b6T5LiJ5L2NID4ganVzYW5taVwgOwor5amm5aWz5a2QID4gZnVqb3NoaVwgOwor5bel5LqL6LK7ID4ga291amloaVwgOwor5rip5bqm6KiIID4gb25kb2tlaVwgOwor5a6J5a6a5YyWID4gYW50ZWlrYVwgOwor5rOV6J666LKdID4gaG9yYWdhaVwgOwor6Z2e5bi45pmCID4gaGlqb3VqaVwgOwor5YWr5Y2D5LujID4geWFjaGl5b1wgOwor5LiN57Sw5belID4gYnVzYWlrdVwgOwor5L2Z5rC06LevID4geW9zdWlyb1wgOwor55u46YGV54K5ID4gc291aXRlblwgOwor5pu86I28576FID4gbWFuZGFyYVwgOwor5Zyw6Zu354GrID4gamlyYWlrYVwgOwor5YWs5YuZ5ZOhID4ga291bXVpblwgOwor5qGI5bGx5a2QID4ga2FrYXNoaVwgOwor5Y+k5Luj6KqeID4ga29kYWlnb1wgOwor55Sf5LiA5pysID4ga2lpcHBvblwgOwor6Lqr6LSU5bGTID4gbWliaWlraVwgOwor5pyq5pW055CGID4gbWlzZWlyaVwgOwor5LqI56eR55SfID4geW9rYXNlaVwgOwor5pyq57WM6YGOID4gbWlrZWlrYVwgOwor5rW35p2+6LKdID4gbWlydWdhaVwgOwor5YW15YWQ5bivID4gaGVrb29iaVwgOwor6Lqr5aWH6bqXID4gbWlnaXJlaVwgOwor5qSc5p+75ZOhID4ga2Vuc2FpblwgOwor5Y2x5qmf5oSfID4ga2lraWthblwgOwor6LWk6IyE5a2QID4gYWthbmFzdVwgOwor56uv5q2m6ICFID4gaGFtdXNoYVwgOwor5Y2w5bqm5Lq6ID4gaW5kb2ppblwgOwor5YaF5a6J5omTID4gbmFpYW5kYVwgOwor5bGL5qC55p2/ID4geWFuZWl0YVwgOwor54Sh5pyf5YiRID4gbXVraWtlaVwgOwor6KiY5b+156KRID4ga2luZW5oaVwgOwor6YO95biC5YyWID4gdG9zaGlrYVwgOwor5bqc55+l5LqLID4gZnVjaGlqaVwgOwor5YaF6ICz54KOID4gbmFpamllblwgOwor5YyX5Lqs6KqeID4gcGVraW5nb1wgOwor54qs5bCP5bGLID4gaW51Z295YVwgOwor5b285bK45LyaID4gaGlnYW4nJ2VcIDsKK+ebuOW8n+WtkCA+IGFpZGVzaGlcIDsKK+mzs+WHsOW6pyA+IGhvdW91emFcIDsKK+WSvemgreeCjiA+IGludG91ZW5cIDsKK+aKleW9seWbsyA+IHRvdWVpenVcIDsKK+S4jeihm+eUnyA+IGZ1ZWlzZWlcIDsKK+aVtOeQhumDqCA+IHNlaXJpYnVcIDsKK+WFpeavjeWxiyA+IGlyaW1veWFcIDsKK+Wkmui2o+WRsyA+IHRhc2h1bWlcIDsKK+mfs+iomOWPtyA+IG9ua2lnb3VcIDsKK+Wwj+WdiuS4uyA+IGtvYm91enVcIDsKK+aXpeacrOeUuyA+IG5paG9uZ2FcIDsKK+e0gOWFg+W+jCA+IGtpZ2VuZ29cIDsKK+S9k+a4qeWZqCA+IHRhaW9ua2lcIDsKK+W+rua4qea5ryA+IGJpb250b3VcIDsKK+iytOWppuS6uiA+IGtpZnVqaW5cIDsKK+WPs+Wkp+iHoyA+IHVkYWlqaW5cIDsKK+W4sOWMluS6uiA+IGtpa2FqaW5cIDsKK+aIpuW+jOa0viA+IHNlbmdvaGFcIDsKK+WPl+WDj+apnyA+IGp1em91a2lcIDsKK+iomOW/teaouSA+IGtpbmVuanVcIDsKK+eyieW+ruWhtSA+IGtvbWlqaW5cIDsKK+eCuuaUv+iAhSA+IGlzZWlzaGFcIDsKK+Wkp+eKrOW6pyA+IG9vaW51emFcIDsKK+aXpeaZguioiCA+IGhpZG9rZWlcIDsKK+aZguS6i+irliA+IGppamlyb25cIDsKK+S/nemkiumZoiA+IGhveW91aW5cIDsKK+iHqueEtuiWryA+IGppbmVuam9cIDsKK+S/neWBpeaJgCA+IGhva2Vuam9cIDsKK+mbouW8geiKsSA+IHJpYmVua2FcIDsKK+asoeS4luS7oyA+IGppc2VkYWlcIDsKK+S4jeWZqOeUqCA+IGJ1a2l5b3VcIDsKK+aJi+Wlh+m6lyA+IHRlZ2lyZWlcIDsKK+WhqeWfuuaApyA+IGVua2lzZWlcIDsKK+iomOW/teaXpSA+IGtpbmVuYmlcIDsKK+mrmOellueItiA+IGtvdXNvZnVcIDsKK+S7iuaXpeS4rSA+IGt5b3VqdXVcIDsKK+i6q+e2uum6lyA+IG1pZ2lyZWlcIDsKK+iQjum7hOeXhSA+IGlvdWJ5b3VcIDsKK+aTrOWPpOaWhyA+IGdpa29idW5cIDsKK+WcsOiho+mhniA+IGNoaWlydWlcIDsKK+Wphue+hemWgCA+IGJhcmFtb25cIDsKK+enmOabuOiqsiA+IGhpc2hva2FcIDsKK+WNsOeUu+e0mSA+IGluZ2FzaGlcIDsKK+S6iOaDs+WxiyA+IHlvc291eWFcIDsKK+aFiOWWhOWutiA+IGppemVua2FcIDsKK+aXqeS5meWlsyA+IHNhb3RvbWVcIDsKK+Wcn+abnOaXpSA+IGRveW91YmlcIDsKK+mZjembqOaelyA+IGtvdXVyaW5cIDsKK+acnemiqOWRgiA+IGFzYWJ1cm9cIDsKK+WGjeS4i+S7mCA+IHNhaWthZnVcIDsKK+a0i+eUu+WutiA+IHlvdWdha2FcIDsKK+Wumuimj+W6pyA+IGpvdWdpemFcIDsKK+mcgOeUqOWutiA+IGp1eW91a2FcIDsKK+S/neWBpeWppiA+IGhva2VuZnVcIDsKK+mrmOelluavjSA+IGtvdXNvYm9cIDsKK+WkluiAs+eCjiA+IGdhaWppZW5cIDsKK+S4jeijgeWPryA+IGZ1c2Fpa2FcIDsKK+itpuWCmeWToSA+IGtlaWJpaW5cIDsKK+iqpOS9nOWLlSA+IGdvc2Fkb3VcIDsKK+S7ruWQjeacrCA+IGthbmFob25cIDsKK+WKqeeUo+aJgCA+IGpvc2Fuam9cIDsKK+Wkp+aZguS7oyA+IG9vamlkYWlcIDsKK+aeuOarnumFuCA+IGt1ZW5zYW5cIDsKK+iZmueEoeWDpyA+IGtvbXVzb3VcIDsKK+WssOiomOWPtyA+IGVpa2lnb3VcIDsKK+S/neWBpeWMuyA+IGhva2VuJydpXCA7CivkuozljYHmrbMgPiBoYXRhY2hpXCA7CivpoK3lrZfoqp4gPiB0b3VqaWdvXCA7CivmnKjlpKrliIAgPiBraWRhY2hpXCA7Civok67oj6/luqcgPiByZW5nZXphXCA7CivmhJvmm7jlrrYgPiBhaXNob2thXCA7CivppqzliIDosp0gPiBtYXRlZ2FpXCA7CivotqPmhI/mm7ggPiBzaHVpc2hvXCA7CivpgYvmkKzosrsgPiB1bnBhbmhpXCA7CivmlJjlpLfoq5YgPiBqb3Vpcm9uXCA7Civmh5DnlpHmtL4gPiBrYWlnaWhhXCA7CivnhKHnhZnngq0gPiBtdWVudGFuXCA7CivlronpnZnmmYIgPiBhbnNlaWppXCA7CivlpbPnlJ/lvpIgPiBqb3NlaXRvXCA7CivomY7nh5Xmi7MgPiBrb2Vua2VuXCA7CivmraPluLjkvY0gPiBzZWlqb3VpXCA7Civoo5zliqnph5EgPiBob2pva2luXCA7CivpmL/lqYbmk6YgPiBhYmF6dXJlXCA7CivkuozljYHml6UgPiBoYXRzdWthXCA7CivnkLXnkLbooYwgPiBiaXdha291XCA7Civnp5jmm7jnp5EgPiBoaXNob2thXCA7CivliqnnlKPlqaYgPiBqb3NhbnB1XCA7Civkv67nvoXloLQgPiBzaHVyYWJhXCA7CivmiYvkuIDmna8gPiB0ZWlwcGFpXCA7CivnhKHnt5rmqZ8gPiBtdXNlbmtpXCA7CivkuIfnga/kvJogPiBtYW5kb3VlXCA7CivmiYvntrrpupcgPiB0ZWdpcmVpXCA7CivmsLTkvY3oqIggPiBzdWlpa2VpXCA7CivmvKLmlrnljLsgPiBrYW5wb3VpXCA7Civnvr3nm67mnb8gPiBoYW1laXRhXCA7CivlhbfkvZPmoYggPiBndXRhaWFuXCA7Civml6XmnKzljJYgPiBuaWhvbmthXCA7CivnoJTno6jmqZ8gPiBrZW5tYWtpXCA7CivlpKfpm5HmioogPiBvb3phcHBhXCA7Civlj6TkupXmiLggPiBmdXJ1aWRvXCA7Civog4PmvbDnmI0gPiBpa2FpeW91XCA7CivlpJrnvqnmgKcgPiB0YWdpc2VpXCA7CivnlJjpnLLnha4gPiBrYW5yb25pXCA7CivkuZnlpbPluqcgPiBvdG9tZXphXCA7Civkv53lrojmtL4gPiBob3NodWhhXCA7Civlj5nkuovoqakgPiBqb2ppc2hpXCA7CivlpKfmjoPpmaQgPiBvb3NvdWppXCA7Civng4/pvo3ojLYgPiDFq3JvbmNoYVwgOwor5aWz546L6J+7ID4gam9vdWFyaVwgOwor5Y2K5q+N6Z+zID4gaGFuYm9pblwgOwor54Sh5pS/5bqcID4gbXVzZWlmdVwgOwor576p5ZKM5ZujID4gZ2l3YWRhblwgOwor5aW95LqL5a62ID4ga291enVrYVwgOwor6KGM54K66ICFID4ga291aXNoYVwgOwor5qmf6Zai5bqrID4ga2lrYW5rb1wgOwor5qmf6Zai5bqnID4ga2lrYW56YVwgOwor5ZCM5oSP6KaLID4gZG91aWtlblwgOwor6K2w5LqL5aCCID4gZ2lqaWRvdVwgOwor5aSp57O455OcID4gaGVjaGltYVwgOwor5L+d5a6J5p6XID4gaG9hbnJpblwgOwor6IWQ6JGJ5ZyfID4gZnV5b3Vkb1wgOwor5rW36LGa5bqnID4gaXJ1a2F6YVwgOwor6Ieq6KGb6ZqKID4gamllaXRhaVwgOwor57mK57at57SgID4gc2VuJydpc29cIDsKK+enu+ihjOaApyA+IGlrb3VzZWlcIDsKK+a5r+a5r+WphiA+IHl1dGFucG9cIDsKK+S6pOWwvuacnyA+IGtvdWJpa2lcIDsKK+mZtuejgeWZqCA+IHRvdWppa2lcIDsKK+mHjemmrOWgtCA+IG9tb2JhYmFcIDsKK+ats+aZguiomCA+IHNhaWppa2lcIDsKK+mYv+WkmuemjyA+IG90YWZ1a3VcIDsKK+W+oeevgOS7iyA+IG9zZWtrYWlcIDsKK+iPk+WtkOWxiyA+IGthc2hpeWFcIDsKK+eVquWwj+WxiyA+IGJhbmdveWFcIDsKK+aEm+eKrOWutiA+IGFpa2Vua2FcIDsKK+iAvee+jua0viA+IHRhbmJpaGFcIDsKK+S/neiCsuaJgCA+IGhvaWt1am9cIDsKK+mBiumbouWfuiA+IHl1dXJpa2lcIDsKK+S6kuWKqeS8miA+IGdvam9rYWlcIDsKK+ijnOWKqee3miA+IGhvam9zZW5cIDsKK+S6i+WLmeaJgCA+IGppbXVzaG9cIDsKK+S/neitt+mHkSA+IGhvZ29raW5cIDsKK+iPk+WtkOWZqCA+IGthc2hpa2lcIDsKK+aEm+Wmu+WutiA+IGFpc2Fpa2FcIDsKK+mkiueItuavjSA+IHlvdWZ1Ym9cIDsKK+i1t+mbu+apnyA+IGtpZGVua2lcIDsKK+S6jOatu+W+jCA+IG5pc2hpZ29cIDsKK+iRieeJoeS4uSA+IGhhYm90YW5cIDsKK+W3sueEtuW9oiA+IGl6ZW5rZWlcIDsKK+WNmOW6p+apnyA+IHRhbnpha2lcIDsKK+Wkp+imj+aooSA+IGRhaWtpYm9cIDsKK+WFt+S9k+WMliA+IGd1dGFpa2FcIDsKK+S/neWuieWumCA+IGhvYW5rYW5cIDsKK+mHjueNo+a0viA+IHlhanV1aGFcIDsKK+mbu+S9jeW3riA+IGRlbicnaXNhXCA7CivpnZ7lr77lv5wgPiBoaXRhaW91XCA7Civok5bpurvlrZAgPiBoaW1hc2hpXCA7Civoo7jkvZPnlLsgPiByYXRhaWdhXCA7Civkuovli5nlrpggPiBqaW11a2FuXCA7CivotbfoqLTnirYgPiBraXNvam91XCA7Civph47mmq7nlKggPiB5YWJveW91XCA7CivnhKHnga/ngasgPiBtdXRvdWthXCA7CivnhKHoqJjlkI0gPiBtdWtpbWVpXCA7Civpg73orbDpgbggPiB0b2dpc2VuXCA7Civkv53ogrLlnJIgPiBob2lrdWVuXCA7Civkv53ogrLlmaggPiBob2lrdWtpXCA7CivmhJvlpb3lrrYgPiBhaWtvdWthXCA7Civlp5Tku7vnirYgPiBpbmluam91XCA7CivnlKjlmajnlLsgPiB5b3VraWdhXCA7Civkv53ppIrmiYAgPiBob3lvdWpvXCA7Civlrrbluq3np5EgPiBrYXRlaWthXCA7CivkuI3lkI3oqokgPiBmdW1laXlvXCA7CivkupTovKrml5cgPiBnb3JpbmtpXCA7CivkvZzmpa3ooaMgPiBzYWd5b3VpXCA7CivmnKjmiLjpiq0gPiBraWRvc2VuXCA7CivogLPkuIvohbogPiBqaWthc2VuXCA7Civlrrbluq3nnYAgPiBrYXRlaWdpXCA7CivlpJbpmbDpg6ggPiBnYWlpbmJ1XCA7Civlkozoj5PlrZAgPiB3YWdhc2hpXCA7Civoh6rlnKjnlLsgPiBqaXphaWdhXCA7CivogJXpgYvmqZ8gPiBrb3V1bmtpXCA7CivkuIDlm57lv4wgPiBpa2thaWtpXCA7CivkuI3lj6/op6MgPiBmdWtha2FpXCA7CivkuI3lj6/oppYgPiBmdWthc2hpXCA7Civnt4/nkIblupwgPiBzb3VyaWZ1XCA7CivkuozliIbmnKggPiBuaWJ1bmdpXCA7CivluoPovp7oi5EgPiBrb3VqaWVuXCA7CivlpJrmlbDmtL4gPiB0YXN1dWhhXCA7Civkv53orbfogIUgPiBob2dvc2hhXCA7CivlpJzplpPpg6ggPiB5YWthbmJ1XCA7CivnlZnlrojpm7sgPiBydXN1ZGVuXCA7CivmjoPpmaTmqZ8gPiBzb3VqaWtpXCA7Civkuovli5nkvJogPiBqaW11a2FpXCA7CivkuovliY3lvowgPiBqaXplbmdvXCA7Civoj6nmj5DmqLkgPiBib2RhaWp1XCA7Civosp3ni6zmpb0gPiBiYWlnb21hXCA7CivnhKHpmLLlgpkgPiBtdWJvdWJpXCA7CivkuI3mgJ3orbAgPiBmdXNoaWdpXCA7CivkuI3nqY/lvZMgPiBmdW9udG91XCA7Civlj6/loZHmnZAgPiBrYXNvemFpXCA7CivmorPntr/mqZ8gPiBzb21lbmtpXCA7CivnhKHmiYvpoIYgPiBtdXRlanVuXCA7CivlsL7nirboirEgPiBiaWpvdWthXCA7Civkvr/liKnlsYsgPiBiZW5yaXlhXCA7Civkuojnn6XlpKIgPiB5b2NoaW11XCA7CivlvqHnpZ7nsaQgPiBvbWlrdWppXCA7CivmmKDlhpnmqZ8gPiBlaXNoYWtpXCA7Civkv53orbfnqI4gPiBob2dvemVpXCA7Civlj5nkuovmlocgPiBqb2ppYnVuXCA7Civoi7HkvJroqbEgPiBlaWthaXdhXCA7CivkuI3lj6/og70gPiBmdWthbm91XCA7CivmmKDnlLvppKggPiBlaWdha2FuXCA7Civpoqjpm7LlhZAgPiBmdXV1bmppXCA7CivmpZXlhoblvaIgPiBkYWVua2VpXCA7CivmvJTlpY/lrrYgPiBlbnNvdWthXCA7Civlj6/loZHmgKcgPiBrYXNvc2VpXCA7CivooqvpmaTmlbAgPiBoaWpvc3V1XCA7CivkuozmrKHlhYMgPiBuaWppZ2VuXCA7CivmiYvmlofluqsgPiB0ZWJ1bmtvXCA7CivkuIDnrofmiYAgPiBpa2thc2hvXCA7CivkuojlgpnpmoogPiB5b2JpdGFpXCA7CivnlpHllY/nrKYgPiBnaW1vbmZ1XCA7Civlm7rlrprosrsgPiBrb3RlaWhpXCA7CivmmI7msrvluqcgPiBtZWlqaXphXCA7CivnkIbmg7PlrrYgPiByaXNvdWthXCA7CivlnJ/lo4floLQgPiBkb3RhbmJhXCA7CivkuozmrKHkvJogPiBuaWppa2FpXCA7Civnvqnli5nmhJ8gPiBnaW11a2FuXCA7CivkuInlj4not68gPiBzYW5zYXJvXCA7Civms6LluIPojLYgPiBoYWJ1Y2hhXCA7CivkuI3mhJvmg7MgPiBidWFpc291XCA7CivkuIDnroflubQgPiBpa2thbmVuXCA7Civkuojlgpnph5EgPiB5b2Jpa2luXCA7CivkuI3lj6/nn6UgPiBmdWthY2hpXCA7Civoj6nmj5Dlr7ogPiBib2RhaWppXCA7Civnoavpu4TlsbEgPiBpb3V5YW1hXCA7CivntKDlm6DmlbAgPiBzb2luc3V1XCA7Civku4/omK3opb8gPiBmdXJhbnN1XCA7CivkuI3lkIjnkIYgPiBmdWdvdXJpXCA7CivmjoPpmaTlqaYgPiBzb3VqaWZ1XCA7Civph47mmq7lpKkgPiB5YWJvdGVuXCA7CivlrrblhbfnrYkgPiBrYWd1dG91XCA7CivolpTolofoibIgPiBiYXJhaXJvXCA7CivkuI3mhInlv6sgPiBmdXl1a2FpXCA7CivovrLmqZ/lhbcgPiBub3VraWd1XCA7CivovLjpgIHosrsgPiB5dXNvdWhpXCA7CivnnIvorbflqaYgPiBrYW5nb2Z1XCA7CivlvqHnpZ7ngasgPiBnb2ppbmthXCA7Civkuojlgpnou40gPiB5b2JpZ3VuXCA7Civlj6Tmlofmm7ggPiBrb21vbmpvXCA7Civoh6rooZvmqKkgPiBqaWVpa2VuXCA7CivmjoPpmaTlmaggPiBzb3VqaWtpXCA7CivnkIbmg7PljJYgPiByaXNvdWthXCA7CivlkIjmsKPpgZMgPiBhaWtpZG91XCA7CivngrnngavlmaggPiB0ZW5rYWtpXCA7Civnvr3kuozph40gPiBoYWJ1dGFlXCA7Civopo/mupbljJYgPiBraWp1bmthXCA7Civpq5jluqblt64gPiBrb3Vkb3NhXCA7CivlkIjmsJfpgZMgPiBhaWtpZG91XCA7CivnhKHlmajnlKggPiBidWtpeW91XCA7Civlr4Tku5jph5EgPiBraWZ1a2luXCA7Civngavlj6PmuZYgPiBrYWtvdWtvXCA7CivmlL/msrvlsYsgPiBzZWlqaXlhXCA7CivlgIvjgIXkurogPiBrb2tvamluXCA7Civlj6/loZHliaQgPiBrYXNvemFpXCA7CivmlL/msrvlrrYgPiBzZWlqaWthXCA7CivpgYvllrbosrsgPiB1bicnZWloaVwgOwor6J2m5aS36I+KID4gZXpvZ2lrdVwgOwor5L+d6K235p6XID4gaG9nb3JpblwgOwor5pyo5oi455WqID4ga2lkb2JhblwgOwor5rWF55+l5oG1ID4gYXNhZGppZVwgOwor6Z2S6LGM6LGGID4gYW9lbmRvdVwgOwor5aWz5LiI5aSrID4gam9qb3VidVwgOwor5YaG6KiY5Y+3ID4gZW5raWdvdVwgOwor5Lqc5a+S5bivID4gYWthbnRhaVwgOwor5rGf5oi45bedID4gZWRvZ2F3YVwgOwor5q+U6Zu76I23ID4gaGlkZW5rYVwgOwor5bm85YWQ6KqeID4geW91amlnb1wgOwor5pqX5pqX6KOhID4gYW4nJ2FucmlcIDsKK+S4jea1hOWgtCA+IGZ1am91YmFcIDsKK+aal+aal+ijjyA+IGFuJydhbnJpXCA7Civmua/msrvloLQgPiB0b3VqaWJhXCA7CivohLPlkbPlmYwgPiBub3VtaXNvXCA7CivlrZDnlLvpnaIgPiBrb2dhbWVuXCA7Civlj6/oppbljJYgPiBrYXNoaWthXCA7CivkuI3ms6jmhI8gPiBmdWNodXVpXCA7CivorbfooZvoiaYgPiBnb2Vpa2FuXCA7CivmrKHmiZPogIUgPiBqaWRhc2hhXCA7CivmiqvpnLLlrrQgPiBoaXJvdWVuXCA7Civoh6rooZvlrpggPiBqaWVpa2FuXCA7CivnlZnlrojnlaogPiBydXN1YmFuXCA7Civkupzpn7PpgJ8gPiBhb25zb2t1XCA7CivlvqHms6jmhI8gPiBnb2NodXVpXCA7CivljLvnp5HlraYgPiBpa2FnYWt1XCA7CivnlbDmlrnmgKcgPiBpaG91c2VpXCA7CivnhKHpkZHmn7sgPiBtdWthbnNhXCA7Civkuoznlarnm64gPiBuaWJhbm1lXCA7CivnoazljJbmsrkgPiBrb3VrYXl1XCA7CivmmKDnlLvnpa0gPiBlaWdhc2FpXCA7CivmmKDnlLvnpL4gPiBlaWdhc2hhXCA7CivkuI3mraPopo8gPiBmdXNlaWtpXCA7CivojYrmo5jnt5ogPiBiYXJhc2VuXCA7CivmhbDpnIrnpa0gPiBpcmVpc2FpXCA7CivlrabmoKHljLsgPiBnYWtrb3VpXCA7Civph5HmloflrZcgPiBraW5tb2ppXCA7CivlvqHms5XluqYgPiBnb2hhdHRvXCA7CivmsJfkv53ppIogPiBraWhveW91XCA7CivpiYTngavloLQgPiB0ZWtrYWJhXCA7Civli6Tli5nlk6EgPiBraW5tdWluXCA7CivnlbDmmJ/kurogPiBpc2VpamluXCA7CivmmKDnlLvnlYwgPiBlaWdha2FpXCA7CivkupTnlb/lhoUgPiBnb2tpbmFpXCA7CivlvqHnoLTnrpcgPiBnb2hhc2FuXCA7Civmma7mrrXnnYAgPiBmdWRhbmdpXCA7CivlkKblrproqp4gPiBoaXRlaWdvXCA7CivpgZXmhrLmgKcgPiBpa2Vuc2VpXCA7CivloanljJbpioAgPiBlbmthZ2luXCA7Civkv53orbflj7ggPiBob2dvc2hpXCA7CivlvpfmhI/msJcgPiB0b2t1aWdlXCA7CivmiYvntLDlt6UgPiB0ZXphaWt1XCA7CivoiI7liKnloakgPiBzaGFyaWVuXCA7Civopqrppqzpub8gPiBveWFiYWthXCA7CivoiJ7ouIrlrrYgPiBidXRvdWthXCA7CivlpYflvaLlhZAgPiBraWtlaWppXCA7CivljYjlvozkuK0gPiBnb2dvanV1XCA7Civoqa3lvIHlrrYgPiBraWJlbmthXCA7Civog4PmtJfmtYQgPiBpc2Vuam91XCA7CivkuI3lkIzljJYgPiBmdWRvdWthXCA7CivnlbDmlZnlvpIgPiBpa3lvdXRvXCA7Civmua/liqDmuJsgPiB5dWthZ2VuXCA7CivpnZ7oqrLnqI4gPiBoaWthemVpXCA7Civlkozmpb3lmaggPiB3YWdha2tpXCA7CivpgZXms5XogIUgPiBpaG91c2hhXCA7CivovLjpgIHmqZ8gPiB5dXNvdWtpXCA7CivkuI7ph47lhZogPiB5b3lhdG91XCA7CivlvJXngavngrkgPiBpbmthdGVuXCA7Civnvr3lrZDmnb8gPiBoYWdvaXRhXCA7Civpn7PmspnmsbAgPiBvdG9zYXRhXCA7Civnpr7mnKznp5EgPiBrYWhvbmthXCA7CivkuI3lj6/liIYgPiBmdWthYnVuXCA7CivpvKDlvoTpg6ggPiBzb2tlaWJ1XCA7Civkub7oj5PlrZAgPiBoaWdhc2hpXCA7CivnhKHmioDlt6cgPiBtdWdpa291XCA7Civpg73orbDkvJogPiB0b2dpa2FpXCA7CivkuojlgpnmoKEgPiB5b2Jpa291XCA7CivoprPkuJbpn7MgPiBrYW56ZW9uXCA7CivljYrpgY7ljrsgPiBoYW5rYWtvXCA7CivkuI3lj4LliqAgPiBmdXNhbmthXCA7CivpgZXlj43ogIUgPiBpaGFuc2hhXCA7CivmgaPmhI/mgKcgPiBzaGlpc2VpXCA7Civku5jliqDnqI4gPiBmdWthemVpXCA7CivmmYLoqIjluqcgPiB0b2tlaXphXCA7Civpg6jlsYvku6MgPiBoZXlhZGFpXCA7Civmr43pn7PmgKcgPiBib2luc2VpXCA7CivkuI3lvpfmhI8gPiBmdXRva3VpXCA7Civpm7voqbHmqZ8gPiBkZW53YWtpXCA7CivnhKHmi4Xkv50gPiBtdXRhbnBvXCA7Civmjqrovp7ms5UgPiBzb2ppaG91XCA7CivlhavkuZ3liIYgPiBoYWtrdWJ1XCA7CivmoLnlpKrmnb8gPiBuZWRhaXRhXCA7CivngavliqDmuJsgPiBoaWthZ2VuXCA7Civkupznh5DphbggPiBhcmluc2FuXCA7CivmmYLoqIjlsYsgPiB0b2tlaXlhXCA7CivpnZLkuozmiY0gPiBhb25pc2FpXCA7Civph47mlL7lm7MgPiBub2hvdXp1XCA7CivlubzlhZDmnJ8gPiB5b3VqaWtpXCA7CivmjInmkanoho8gPiBhbm1ha291XCA7CivmsJfoi6blirQgPiBraWd1cm91XCA7CivmlL/lupzmoYggPiBzZWlmdWFuXCA7CivkuoznjovploAgPiBuaW91bW9uXCA7CivkuojlgpnlvbkgPiB5b2JpZWtpXCA7CivkuI3pgZPnkIYgPiBmdWRvdXJpXCA7Civph5HnhKHlnqIgPiBraW5tdWt1XCA7Civlgb3pgKDljbAgPiBnaXpvdWluXCA7CivnhKHmibnliKQgPiBtdWhpaGFuXCA7Civlm7Pmm7josrsgPiB0b3Nob2hpXCA7CivlubjpgYvlhZAgPiBrb3V1bmppXCA7CivloanmsLTmuZYgPiBlbnN1aWtvXCA7CivmtYHluIPmnKwgPiBydWZ1Ym9uXCA7CivlsbHojLboirEgPiBzYXphbmthXCA7Civnp7vmsJHms5UgPiBpbWluaG91XCA7CivprLznmb7lkIggPiBvbml5dXJpXCA7CivlpYjoia/nnIwgPiBuYXJha2VuXCA7CivkuI3li53miYsgPiBmdWthdHRlXCA7CivlpKnpuqnnvoUgPiB0ZW5wdXJhXCA7CivkuI3liKnnm4ogPiBmdXJpZWtpXCA7CivluILlkI/lk6EgPiBzaGlyaWluXCA7CivmhI/opovmm7ggPiBpa2Vuc2hvXCA7CivmhbDpnIrloZQgPiBpcmVpdG91XCA7CivmiJHliKnli4kgPiBnYXJpYmVuXCA7Civmk6zlrp3nj6AgPiBnaWJvc2hpXCA7CivlpKflkozntbUgPiB5YW1hdG9lXCA7CivlsI/liIfmiYsgPiBrb2dpdHRlXCA7Civou6Lot6/lmaggPiB0ZW5yb2tpXCA7CivliKTkuovoo5wgPiBoYW5qaWhvXCA7CivlsaDomIfmlaMgPiB0b3Nvc2FuXCA7CivlvqHluoPnm64gPiBvaGlyb21lXCA7Civlj4LorbDpmaIgPiBzYW5naWluXCA7Civkuojlgpnlk4EgPiB5b2JpaGluXCA7CivnkIblt6Xnp5EgPiByaWtvdWthXCA7CivngavokazloLQgPiBrYXNvdWJhXCA7Civlr5LlnqLpm6IgPiBrYW5nb3JpXCA7CivpmLLooZvosrsgPiBib3VlaWhpXCA7CivppqzlsI/lsYsgPiB1bWFnb3lhXCA7CivkuojlgpnlhbUgPiB5b2JpaGVpXCA7CivlsI/pgZPlhbcgPiBrb2RvdWd1XCA7CivluIzlhYPntKAgPiBraWdlbnNvXCA7CivkuJbnlYzoqp4gPiBzZWthaWdvXCA7CivorbfooZvlhbUgPiBnb2VpaGVpXCA7CivlvaLogIzkuIsgPiBrZWlqaWthXCA7CivpnZLpm7voqbEgPiBhb2RlbndhXCA7Civkuozmnprnm64gPiBuaW1haW1lXCA7CivkuInlt67ot68gPiBzYW5zYXJvXCA7Civku5blupznnIwgPiB0YWZ1a2VuXCA7Civkv53nt5rljLogPiBob3Nlbmt1XCA7Civlh7rnqL3lj6QgPiBkZWdlaWtvXCA7CivkuI3lhbfogIUgPiBmdWd1c2hhXCA7CivmvJTnrpfmqZ8gPiBlbnphbmtpXCA7CivlubLoj5PlrZAgPiBoaWdhc2hpXCA7CivpgbrkvJ3ms5UgPiBpZGVuaG91XCA7CivljLvljJblraYgPiBpa2FnYWt1XCA7Civpgbrlrrbml48gPiBpa2F6b2t1XCA7CivlsI/liKnlj6MgPiBrb3Jpa291XCA7CivlpKnmsJfpgYsgPiB0ZW5raXVuXCA7CivlupzorbDkvJogPiBmdWdpa2FpXCA7Civkv53pmbrljLsgPiBob2tlbicnaVwgOwor5q2i6Z+z5ZmoID4gc2hpb25raVwgOwor5ZCI5rCX5LyaID4gYWlraWthaVwgOwor6YaN6YaQ5ZGzID4gZGFpZ29taVwgOwor5oSP5Zuz55qEID4gaXRvdGVraVwgOwor5Zyw56OB5rCXID4gY2hpamlraVwgOwor55Sf5oSP5rCXID4gbmFtYWlraVwgOwor5Zub5qyh5YWDID4geW9qaWdlblwgOwor5b6h55uu546JID4gb21lZGFtYVwgOwor5YWs5paH5omAID4ga3Vtb25qb1wgOwor5b6h5bqn5omAID4gZ296YXNob1wgOwor5aSn6Yu45bGRID4gb2dha3V6dVwgOwor55SY5rW36IuUID4gYW1hbm9yaVwgOwor5bu66K2w5qGIID4ga2VuZ2lhblwgOwor56KB5Lya5omAID4gZ29rYWlqb1wgOwor6Ziy54Gr5oi4ID4gYm91a2Fkb1wgOwor55m75bGx5a62ID4gdG96YW5rYVwgOwor54KK5LqL5aC0ID4gc3VpamliYVwgOwor54Sh5oSb5oOzID4gYnVhaXNvdVwgOwor6Iux5paH56eRID4gZWlidW5rYVwgOwor6YW45oCn6ZuoID4gc2Fuc2VpdVwgOwor5bCK55qH546LID4gc29uJydub3VcIDsKK+a0vueUn+iqniA+IGhhc2VpZ29cIDsKK+mBuuS8neaApyA+IGlkZW5zZWlcIDsKK+WMu+eZguiyuyA+IGlyeW91aGlcIDsKK+Wkp+ellueItiA+IGRhaXNvZnVcIDsKK+i7jeiNvOWIqSA+IGd1bmRhcmlcIDsKK+eZveS6nOe0gCA+IGhha3Vha2lcIDsKK+mojummrOaIpiA+IGtpYmFzZW5cIDsKK+ebruS4gOadryA+IG1laXBwYWlcIDsKK+iomOS6i+aWhyA+IGtpamlidW5cIDsKK+WSjOWkqum8kyA+IHdhZGFpa29cIDsKK+S6iOWumuahiCA+IHlvdGVpYW5cIDsKK+espuWPt+WZqCA+IGZ1Z291a2lcIDsKK+abuOiomOijnCA+IHNob2tpaG9cIDsKK+W/nOaPtOWboyA+IG91ZW5kYW5cIDsKK+mBuuS8neWtkCA+IGlkZW5zaGlcIDsKK+mZpOiNieWZqCA+IGpvc291a2lcIDsKK+S6iOWumuaXpSA+IHlvdGVpYmlcIDsKK+S/neaMgeiAhSA+IGhvamlzaGFcIDsKK+abvOmZgOe+hSA+IG1hbmRhcmFcIDsKK+WNmOS9jeWFgyA+IHRhbmlnZW5cIDsKK+aEj+WcsOaCqiA+IGlqaXdhcnVcIDsKK+ebiuiNkueUtyA+IG1hc3VyYW9cIDsKK+S4iuWHuuadpSA+IGpvdWRla2lcIDsKK+espuWPt+WMliA+IGZ1Z291a2FcIDsKK+S4jeebuOW/nCA+IGZ1c291b3VcIDsKK+iLseiqnueJiCA+IGVpZ29iYW5cIDsKK+mHjeeBq+WZqCA+IGp1dWtha2lcIDsKK+aRqeWIqeaUryA+IG1hcmlzaGlcIDsKK+eVsOerr+imliA+IGl0YW5zaGlcIDsKK+iRrOWEgOWxiyA+IHNvdWdpeWFcIDsKK+mgheS9jee9riA+IGtvdWljaGlcIDsKK+WMu+W4q+azlSA+IGlzaGlob3VcIDsKK+iRoeiQhOWckiA+IGJ1ZG91ZW5cIDsKK+S6lOaWl+exsyA+IGdvdG9iZWlcIDsKK+WPr+aEm+awlyA+IGthd2FpZ2VcIDsKK+S6lOe3muitnCA+IGdvc2VuZnVcIDsKK+W+oeW6nOWGhSA+IGdvZnVuYWlcIDsKK+WtkOmmrOW6pyA+IGtvdW1hemFcIDsKK+Wwj+iKpeWtkCA+IGtva2VzaGlcIDsKK+aBkua4qeWZqCA+IGtvdW9ua2lcIDsKK+efpeaBteiAhSA+IGNoaWVzaGFcIDsKK+mBuui0iOWIhiA+IGl6b3VidW5cIDsKK+WkquWIgOmtmiA+IHRhY2hpdW9cIDsKK+WKqea8lOiAhSA+IGpvZW5zaGFcIDsKK+S7o+eQhumDqCA+IGRhaXJpYnVcIDsKK+enu+WLleS9kyA+IGlkb3V0YWlcIDsKK+mBi+WLleiyuyA+IHVuZG91aGlcIDsKK+Wkqem1nee1qCA+IGJpcm91ZG9cIDsKK+S4gOmFuOWMliA+IGlzc2Fua2FcIDsKK+mBoOi3nemboiA+IGVua3lvcmlcIDsKK+S9kOizgOecjCA+IHNhZ2FrZW5cIDsKK+mrmOmfs+mDqCA+IGtvdW9uYnVcIDsKK+eVsOerr+iAhSA+IGl0YW5zaGFcIDsKK+W8peasoemmrCA+IHlhaml1bWFcIDsKK+iAleiAmOapnyA+IGtvdXVua2lcIDsKK+aEn+WMlumZoiA+IGthbmthaW5cIDsKK+S4jeapn+WrjCA+IGZ1a2lnZW5cIDsKK+mDqOWkluenmCA+IGJ1Z2FpaGlcIDsKK+S6nOeGseW4ryA+IGFuZXR0YWlcIDsKK+WvjOWjq+WxsSA+IGZ1amlzYW5cIDsKK+aMh+aPruaJgCA+IHNoaWtpam9cIDsKK+eUn+mGpOayuSA+IGtpam91eXVcIDsKK+a1hOeRoOeSgyA+IGpvdXJ1cmlcIDsKK+ijnOS9kOWumCA+IGhvc2FrYW5cIDsKK+mBjuWOu+W9oiA+IGtha29rZWlcIDsKK+iNieS7ruWQjSA+IHNvdWdhbmFcIDsKK+W+oeapn+WrjCA+IGdva2lnZW5cIDsKK+S4jeWxpeihjCA+IGZ1cmlrb3VcIDsKK+aTrOS6uuWMliA+IGdpamlua2FcIDsKK+WIhuW6puWZqCA+IGJ1bmRva2lcIDsKK+WHuuebrumHkSA+IGRlbWVraW5cIDsKK+WknOaxvei7iiA+IHlvZ2lzaGFcIDsKK+W3pua0vuezuyA+IHNhaGFrZWlcIDsKK+ipkOasuue9qiA+IHNhZ2l6YWlcIDsKK+mlgumjqeWxiyA+IHVkb24nJ3lhXCA7CivlpKLmg7PlrrYgPiBtdXNvdWthXCA7CivoqJjorZzms5UgPiBraWZ1aG91XCA7CivkuIDmrbvlvowgPiBpc3NoaWdvXCA7CivpnZ7ooZvnlJ8gPiBoaWVpc2VpXCA7CivoqqTmipXkuIsgPiBnb3RvdWthXCA7CivkuI3oh6rnlLEgPiBmdWppeXV1XCA7Civoi7HmlbDlrZcgPiBlaXN1dWppXCA7Civnn6Xmg4XmhI8gPiBjaGlqb3VpXCA7CivpoqjlkYLmobYgPiBmdXJvb2tlXCA7Civoi7Hoqp7lnI8gPiBlaWdva2VuXCA7CivkvY7pn7Ppg6ggPiB0ZWlvbmJ1XCA7CivkuozmnJ/liLYgPiBuaWtpc2VpXCA7Civmk6zlo7Doqp4gPiBnaXNlaWdvXCA7CivnlKjli5nlk6EgPiB5b3VtdWluXCA7CivlvqHoi6blirQgPiBnb2t1cm91XCA7CivmnKrnmbvoqJggPiBtaXRvdWtpXCA7CivnsKHmmJPljJYgPiBrYW4nJ2lrYVwgOwor5LiA6YGO5oCnID4gaWtrYXNlaVwgOwor6YGL6YCB6LK7ID4gdW5zb3VoaVwgOwor5Yy75bir5LyaID4gaXNoaWthaVwgOwor6Ieq5Y+Z5LydID4gamlqb2RlblwgOwor5aSp5rCX5bGLID4gdGVua2l5YVwgOwor6Zuj5piT5bqmID4gbmFuJydpZG9cIDsKK+S7ruaVsOmDqCA+IGthc3V1YnVcIDsKK+WNgeWtl+i3ryA+IGp1dWppcm9cIDsKK+m8oOi5iumDqCA+IHNva2VpYnVcIDsKK+iyoOespuWPtyA+IGZ1ZnVnb3VcIDsKK+Wkp+W+oeaJgCA+IG9vZ29zaG9cIDsKK+WIhuW4g+WbsyA+IGJ1bnB1enVcIDsKK+ijveWbs+WutiA+IHNlaXp1a2FcIDsKK+aIpuaZguS4iyA+IHNlbmppa2FcIDsKK+Wkqeawl+WbsyA+IHRlbmtpenVcIDsKK+izm+e+juatjCA+IHNhbmJpa2FcIDsKK+i7jeS6i+iyuyA+IGd1bmppaGlcIDsKK+eCjuWkqeS4iyA+IGVudGVua2FcIDsKK+iCpea6gOWFkCA+IGhpbWFuamlcIDsKK+a1qua8q+a0viA+IHJvbWFuaGFcIDsKK+i1t+mHjeapnyA+IGtpanV1a2lcIDsKK+Wcp+egleapnyA+IGFzc2Fpa2lcIDsKK+Wbnui3r+WbsyA+IGthaXJvenVcIDsKK+WFteWZqOW6qyA+IGhlaWtpa29cIDsKK+WykOmYnOecjCA+IGdpZnVrZW5cIDsKK+W6tuWLmeiqsiA+IHNob211a2FcIDsKK+mboue4geeKtiA+IHJpZW5qb3VcIDsKK+ato+imj+WMliA+IHNlaWtpa2FcIDsKK+S7iuWHuuadpSA+IGltYWRla2lcIDsKK+aknOazouWZqCA+IGtlbnBha2lcIDsKK+e1teWPjOe0mSA+IGV6b3VzaGlcIDsKK+S4i+S7mOmHkSA+IGthZnVraW5cIDsKK+mBv+mbo+aJgCA+IGhpbmFuam9cIDsKK+eJh+aEj+WcsCA+IGthdGFpamlcIDsKK+WMu+WtpumDqCA+IGlnYWt1YnVcIDsKK+S6iOWgsemfsyA+IHlvaG91b25cIDsKK+miqOWRguS7oyA+IGZ1cm9kYWlcIDsKK+W+jOefpeaBtSA+IGF0b2RqaWVcIDsKK+W3ruapn+mWoiA+IHNha2lrYW5cIDsKK+WnlOWToemVtyA+IGlpbmNob3VcIDsKK+ipkOasuuW4qyA+IHNhZ2lzaGlcIDsKK+WkluellueItiA+IGdhaXNvZnVcIDsKK+irlueQhuWSjCA+IHJvbnJpd2FcIDsKK+mHjuWWtuWcsCA+IHlhZWljaGlcIDsKK+mbsOWbsuawlyA+IGZ1bicnaWtpXCA7Civlm6Dnvo7nt5ogPiBpbmJpc2VuXCA7CivmsJfkuIjlpKsgPiBraWpvdWJ1XCA7CivliJ3mnJ/ljJYgPiBzaG9raWthXCA7CivmranooYzlmaggPiBob2tvdWtpXCA7Civmua/osYbohZAgPiB5dWRvdWZ1XCA7Civoo4/og4zmiLggPiB1cmFzZWRvXCA7CivliqDnrpfmqZ8gPiBrYXNhbmtpXCA7CivmlL7nlJ/kvJogPiBob3Vqb3VlXCA7CivogrLlhZDpmaIgPiBpa3VqaWluXCA7CivkuI3kvZzngrogPiBmdXNha3VpXCA7Civmraboo4XlhbcgPiBidXNvdWd1XCA7CivkuIvpp4TnlaogPiBnZXRhYmFuXCA7Civoh6rli5XljJYgPiBqaWRvdWthXCA7CivnhKHpgaDmha4gPiBidWVucnlvXCA7CivpgYvli5XloLQgPiB1bmRvdWJhXCA7CivlrrboqIjosrsgPiBrYWtlaWhpXCA7Civpn7Pmpb3lrrYgPiBvbmdha2thXCA7CivlpJbnpZbmr40gPiBnYWlzb2JvXCA7CivlirTli5noqrIgPiByb3VtdWthXCA7CivnhKHou4zpgZMgPiBtdWtpZG91XCA7CivkuI3kvZzms5UgPiBidXNhaG91XCA7CivljYHlrZfngasgPiBqdXVqaWthXCA7Civog4Pnl5nmlKMgPiBpa2VpcmVuXCA7CivpgYvli5Xlk6EgPiB1bmRvdWluXCA7CivmqZ/morDoqp4gPiBraWthaWdvXCA7Civnvo7lrrnpmaIgPiBiaXlvdWluXCA7CivkuIDou6LmqZ8gPiBpdHRlbmtpXCA7CivmnZPmloflrZcgPiBzaGFtb2ppXCA7CivmjqLmn7vmqZ8gPiB0YW5zYWtpXCA7CivnlLDoiI7lrrYgPiBpbmFrYXlhXCA7CivpgYvou6LosrsgPiB1bnRlbmhpXCA7CivmqZnnmq7msrkgPiB0b3VoaXl1XCA7CivpgY7lubTluqYgPiBrYW5lbmRvXCA7CivpgYvli5XlhbcgPiB1bmRvdWd1XCA7CivlvqHlrZjnn6UgPiBnb3pvbmppXCA7CivlrrbmlL/np5EgPiBrYXNlaWthXCA7CivlsI/lpYfpupcgPiBrb2dpcmVpXCA7Civnp7vkvY/ogIUgPiBpanV1c2hhXCA7CivpgZPlhbflsYsgPiBkb3VndXlhXCA7CivlkIznvqnoqp4gPiBkb3VnaWdvXCA7CivmqKHmk6zmiKYgPiBtb2dpc2VuXCA7CivokrLlhazoi7EgPiB0YW5wb3BvXCA7CivnqL3lj6TnnYAgPiBrZWlrb2dpXCA7CivkuIvkuJboqbEgPiBnZXNld2FcIDsKK+i/pualvOe+hSA+IGthcnVyYVwgOwor5omL5b+g5a6fID4gdGVtYW1lXCA7Civpp4TmtJLokL0gPiBkYWphcmVcIDsKK+S4i+mnhOWxiyA+IGdldGF5YVwgOwor6aeE5rOV6J66ID4gZGFib3JhXCA7CivpgY7kv53orbcgPiBrYWhvZ29cIDsKK+mdnuWWtuWIqSA+IGhpZWlyaVwgOwor57WM57ev5YSAID4ga2VpaWdpXCA7CivlkZHlhbXooZsgPiBub25iZWVcIDsKK+S4jee+qeeQhiA+IGZ1Z2lyaVwgOwor5pyJ5oSP5beuID4geXV1aXNhXCA7Civpq5jnt6/luqYgPiBrb3VpZG9cIDsKK+S4jeiynuWvnSA+IGZ1dGVuZVwgOwor5q2v5Yy76ICFID4gaGFpc2hhXCA7CivkvLzpoZTntbUgPiBuaWdhb2VcIDsKK+atr+enkeWMuyA+IHNoaWthaVwgOwor54Gr5LqL5aC0ID4ga2FqaWJhXCA7Civosarpm6jnpo0gPiBnb3V1a2FcIDsKK+S6nOm6u+ijvSA+IGFtYXNlaVwgOwor5Ly86aGU55S7ID4gbmlnYW9lXCA7Civpp4TphZLokL0gPiBkYWphcmVcIDsKK+Wxsee+iuW6pyA+IHlhZ2l6YVwgOwor5Y2S5aGU5amGID4gc290b2JhXCA7CivkupzpurvoibIgPiBhbWFpcm9cIDsKK+mdkua1t+iLlCA+IGFvbm9yaVwgOwor5Ly86Z2e6KaqID4gZXNlb3lhXCA7Civkupzpurvns7ggPiBhbWFpdG9cIDsKK+WFreWNgei3ryA+IG11c29qaVwgOwor5Lqc5rip5bivID4gYW9udGFpXCA7CivkvZnmiYDoposgPiB5b3NvbWlcIDsKK+WnlOWToeS8miA+IGlpbmthaVwgOwor5L6d5a2Y5bqmID4gaXpvbmRvXCA7CivpmL/lg6fnpYcgPiBhc291Z2lcIDsKK+WFq+WNgei3ryA+IHlhc29qaVwgOwor5LyK5Yui6J2mID4gaXNlZWJpXCA7CivkvIrli6Lom68gPiBpc2VlYmlcIDsKK+abvuellueItiA+IGhpamlqaVwgOwor6KaL5qCE5Z2KID4gbWllYm91XCA7CivkupzpiZvniYggPiBhZW5iYW5cIDsKK+W+oeeMquWPoyA+IG9jaG9rb1wgOwor6a6O5Lim5aWzID4gYWluYW1lXCA7CivlubPmmJPljJYgPiBoZWlpa2FcIDsKK+WuieS/neeQhiA+IGFucG9yaVwgOwor5pu+56WW5q+NID4gaGliYWJhXCA7CivnsZDmpIXlrZAgPiB0b3Vpc3VcIDsKK+Wwj+aWh+WtlyA+IGtvbW9qaVwgOwor5L2Z5omA55uuID4geW9zb21lXCA7CivkuIvpmaLorbAgPiBrYWluZ2lcIDsKK+WtteWMluWZqCA+IGZ1a2FraVwgOwor5Lqc6Ymb5p2/ID4gYWVuYmFuXCA7CivmiYvnnJ/kvLwgPiB0ZW1hbmVcIDsKK+S4jeWmguaEjyA+IGZ1bnlvaVwgOwor5rmv5paH5a2XID4geXVtb2ppXCA7CivnlbDmqZ/nqK4gPiBpa2lzaHVcIDsKK+S6nOegkumFuCA+IGFoaXNhblwgOwor6Zi/5L+u576FID4gYXNodXJhXCA7CivlvqHpm5Hnha4gPiBvem91bmlcIDsKK+earuiGmuenkSA+IGhpZnVrYVwgOwor5byf5bCP54i2ID4gb3Rvb2ppXCA7CivkuLvmsrvljLsgPiBzaHVqaWlcIDsKK+S4jeiqoOaEjyA+IGZ1c2VpaVwgOwor5b6h6Kmg5q2MID4gZ29laWthXCA7Civog4PkuIvlnoIgPiBpa2FzdWlcIDsKK+WIt+avm+ebriA+IGhha2VtZVwgOwor55Sy54OP6LOKID4ga291aWthXCA7CivkvIrpgZTnnYAgPiBkYXRlZ2lcIDsKK+W+oeimi+iIniA+IG9taW1haVwgOwor6IOM5paH5a2XID4gc2Vtb2ppXCA7CivlhKrmm4foj68gPiB1ZG9uZ2VcIDsKK+W+oeilgeikkyA+IG9tdXRzdVwgOwor6KW/54+t54mZID4gc3VwZWluXCA7CivkuI3opovnm64gPiBtaWppbWVcIDsKK+iVjum6pueyiSA+IHNvYmFrb1wgOwor5qKt5a2Q6a2aID4ga2FtYXN1XCA7CivkuI3pmo/mhI8gPiBmdXp1aWlcIDsKK+e0q+mZveiKsSA+IGFqaXNhaVwgOwor6YeO6Imv552AID4gbm9yYWdpXCA7Civkuo7omK3nm4YgPiB1cmFib25cIDsKK+iLpuWRs+e0oCA+IGt1bWlzb1wgOwor54Sh5LqL5pWFID4gbXVqaWtvXCA7CivkuIDmmKjml6UgPiBvdG90b2lcIDsKK+WHuuadpeWApCA+IGRla2luZVwgOwor5LyK5Yui5Li5ID4gaXNldGFuXCA7Civpo7LlhbXooZsgPiBub25iZWVcIDsKK+atpOWHpuetiSA+IGtva29yYVwgOwor6Zyy6KW/5LqcID4gcm9zaGlhXCA7Civnm67ljLvogIUgPiBtZWlzaGFcIDsKK+WmguS9leanmCA+IGlrYXlvdVwgOwor56C06a2U55+iID4gaGFtYXlhXCA7Civnm7jpg6jlsYsgPiBhaWJleWFcIDsKK+WtpOWFkOmZoiA+IGtvamlpblwgOwor5LuK5pel5pelID4ga3lvdWJpXCA7CivojbzmnrPlsLwgPiBkYWtpbmlcIDsKK+a1t+iAgemMoCA+IGViaWpvdVwgOwor6JWO6bqm5bGLID4gc29iYXlhXCA7Civpm4zmjbvlrZAgPiBtZW5lamlcIDsKK+WPpOS6i+iomCA+IGtvamlraVwgOwor55yf6Z2i55uuID4gbWFqaW1lXCA7CivpgqPnlLHku5YgPiBuYXl1dGFcIDsKK+WAtualvemDqCA+IGt1cmFidVwgOwor5bGL5qC55bGLID4geWFuZXlhXCA7CivmtbfogIHojLYgPiBlYmljaGFcIDsKK+mYv+Wqvea4ryA+IGFtYWtvdVwgOwor56OB5pa55L2NID4gamlob3VpXCA7CivpjZvlhrblsYsgPiBrYWppeWFcIDsKK+WhqeWfuuW6piA+IGVua2lkb1wgOwor55+i57695qC5ID4geWFiYW5lXCA7Civnmb7lkIjmoLkgPiB5dXJpbmVcIDsKK+mYv+e+hea8oiA+IGFyYWthblwgOwor6YeO6Lev5a2QID4gbm9qaWtvXCA7Civpm4zonrrlrZAgPiBtZW5lamlcIDsKK+Wcn+S4i+W6pyA+IGRvZ2V6YVwgOwor5oWw5a6J6ICFID4gaWFuc2hhXCA7CivntbXml6XoqJggPiBlbmlra2lcIDsKK+mZgOe+heWwvCA+IGRhcmFuaVwgOwor576F5pa55L2NID4gcmFob3VpXCA7CivnlbDkvZPlrZcgPiBpdGFpamlcIDsKK+WQjOaEj+iqniA+IGRvdWlnb1wgOwor6Z+L6aeE5aSpID4gaWRhdGVuXCA7CivngrrmlL/lrrYgPiBpc2Vpa2FcIDsKK+S6jOW6puebriA+IG5pZG9tZVwgOwor5pWw5a+E5bGLID4gc3VraXlhXCA7CivlkIzmhI/nvqkgPiBkb3VpZ2lcIDsKK+Wkp+iiiOijnyA+IG9vZ2VzYVwgOwor5LqL5YuZ5bGLID4gamltdXlhXCA7Civmta7kuJbntbUgPiB1a2l5b2VcIDsKK+eQteeQtua5liA+IGJpd2Frb1wgOwor5LqL5YuZ5a62ID4gamltdWthXCA7CivliqDnlZnlpJogPiBrYXJ1dGFcIDsKK+S4jeWPr+mBvyA+IGZ1a2FoaVwgOwor5LqL5YuZ5ZmoID4gamltdWtpXCA7CivlvqHmtJLokL0gPiBvc2hhcmVcIDsKK+S6i+WLmeWToSA+IGppbXVpblwgOwor5qSN5pyo5bGLID4gdWVraXlhXCA7CivkuI3lj6/oqqQgPiBmdWthZ29cIDsKK+W+oemHiOi/piA+IG9zaGFrYVwgOwor5Y2w5a2X5qmfID4gaW5qaWtpXCA7Civnoavpu4Tms4kgPiBpb3VzZW5cIDsKK+WNkumDveWphiA+IHNvdG9iYVwgOwor5YGJ5LiI5aSrID4gaWpvdWZ1XCA7CivluIPmtbfoi5QgPiBmdW5vcmlcIDsKK+ecvOWMu+iAhSA+IG1laXNoYVwgOwor55y856eR5Yy7ID4gZ2Fua2FpXCA7CivmhbDlronkvJogPiBpYW5rYWlcIDsKK+aKq+mcsuebriA+IGhpcm9tZVwgOwor5LqI5YKZ6aasID4geW9iaWJhXCA7CivmsJfljJblmaggPiBraWtha2lcIDsKK+atpuiAhee1tSA+IG11c2hhZVwgOwor6aKo5Zyf6KiYID4gZnVkb2tpXCA7CivlvqHmsrPnq6UgPiBva2FwcGFcIDsKK+aEm+eFmeWutiA+IGFpZW5rYVwgOwor6YOo5bGL552AID4gaGV5YWdpXCA7CivkuojlgpnosrsgPiB5b2JpaGlcIDsKK+eAmOmBjuWZqCA+IHJva2FraVwgOwor6KOc5Yqp5ZOhID4gaG9qb2luXCA7Civmr5TkuJjlsLwgPiBiaWt1bmlcIDsKK+azouatouWgtCA+IGhhdG9iYVwgOwor5piT5YuV5bqmID4gaWRvdWRvXCA7CivntbXlm7PpnaIgPiBlenVtZW5cIDsKK+ijuOWppueUuyA+IHJhZnVnYVwgOwor5q2p5LiA5q2pID4gaG9pcHBvXCA7CivkuInljYHot68gPiBtaXNvamlcIDsKK+S4jeaymeaxsCA+IGJ1c2F0YVwgOwor5LiN5q276LqrID4gZnVqaW1pXCA7CivlkYrlpKnlrZAgPiBoaWJhcmlcIDsKK+WKoOWliOmZgCA+IGthbmFkYVwgOwor5Lul6YGg5qipID4gaWVua2VuXCA7Civmlr3ppJPprLwgPiBzZWdha2lcIDsKK+S4iemHjeecjCA+IG1pZWtlblwgOwor5b6h5rKZ5rGwID4gZ29zYXRhXCA7Civmr5vnubvlrZAgPiBrZWp1c3VcIDsKK+S4jeWQjOaEjyA+IGZ1ZG91aVwgOwor5LqI5YKZ56eRID4geW9iaWthXCA7CivmsZ/miLjliY0gPiBlZG9tYWVcIDsKK+ebguiYreebhiA+IHVyYWJvblwgOwor5L+d6K235Yy6ID4gaG9nb2t1XCA7CivmtYXojIXnlJ8gPiBhc2FqaXVcIDsKK+WutuWFt+WxiyA+IGthZ3V5YVwgOwor5bCP5rCX5ZGzID4ga29raW1pXCA7CivlpKnompXns7ggPiB0ZWd1c3VcIDsKK+eVsOaWh+WMliA+IGlidW5rYVwgOwor5aSc6KaL5LiWID4geW9taXNlXCA7CivkvY3nm7jlt64gPiBpc291c2FcIDsKK+aVsOWlh+WxiyA+IHN1a2l5YVwgOwor6JaU6JaH5ZySID4gYmFyYWVuXCA7CivpgY7muKHmnJ8gPiBrYXRva2lcIDsKK+WxheWgtOaJgCA+IGliYXNob1wgOwor6YGV5ZKM5oSfID4gaXdha2FuXCA7CivnlJ/olY7puqYgPiBraXNvYmFcIDsKK+WvnemWk+edgCA+IG5lbWFraVwgOwor5LiJ5Y2B5pelID4gbWlzb2thXCA7CivkuI3msJflkbMgPiBidWtpbWlcIDsKK+acgOS4i+S9jSA+IHNhaWthaVwgOwor5b6h5q2z5pquID4gb3NlaWJvXCA7Civkuojlgpnlk6EgPiB5b2JpaW5cIDsKK+aYoOeUu+WMliA+IGVpZ2FrYVwgOwor5qyn5Y2w6KqeID4gb3VpbmdvXCA7Civlm7PmoYjlrrYgPiB6dWFua2FcIDsKK+W/nOaPtOatjCA+IG91ZW5rYVwgOwor6Z+L6ZmA5aSpID4gaWRhdGVuXCA7CivmrYzoiJ7kvI4gPiBrYWJ1a2lcIDsKK+mYv+iYremZgCA+IG9yYW5kYVwgOwor5q2M55WZ5aSaID4ga2FydXRhXCA7CivnhKHmhYjmgrIgPiBtdWppaGlcIDsKK+WPl+ipseWZqCA+IGp1d2FraVwgOwor57+76LuK6a2aID4gbWFuYm91XCA7CivkuI3lh7rmnaUgPiBmdWRla2lcIDsKK+mbkemtmuWvnSA+IHpha29uZVwgOwor5LyK5aSq5YipID4gaXRhcmlpXCA7CivppYLpo6nnsokgPiB1ZG9ua29cIDsKK+eUmOa1t+iAgSA+IGFtYWViaVwgOwor5bCP6aas6bm/ID4ga29iYWthXCA7CivlvqHoj5PlrZAgPiBva2FzaGlcIDsKK+eUo+enkeWMuyA+IHNhbmthaVwgOwor5LiJ55+l5ZyfID4gdGF0YWtpXCA7Civos5PkvY3oqp4gPiBoaW5pZ29cIDsKK+aRqeiOq+aesyA+IG1hbWFraVwgOwor5bCP55m+5ZCIID4gc2F5dXJpXCA7CivnhKHmspnmsbAgPiBidXNhdGFcIDsKK+eDj+W4veWtkCA+IGVib3NoaVwgOwor56WW54i25q+NID4gc29mdWJvXCA7CivljYHlha3lpJwgPiBpemF5b2lcIDsKK+i/guWbnui3ryA+IHVrYWlyb1wgOwor6KWk6KS45a62ID4gYm9yb3lhXCA7CivpnZLntKvomIcgPiBhb2ppc29cIDsKK+a/vumBjuWZqCA+IHJva2FraVwgOwor5LiN5YW35ZCIID4gZnVndWFpXCA7Civnn6XmgbXmra8gPiBjaGllYmFcIDsKK+S4jei1t+iotCA+IGZ1a2lzb1wgOwor54Sh5Yy75p2RID4gbXVpc29uXCA7CivmnpzmqLnlnJIgPiBrYWp1ZW5cIDsKK+W+oei7ouWphiA+IG90ZW5iYVwgOwor6aKo5ZGC5bGLID4gZnVyb3lhXCA7CivmhI/lkbPoq5YgPiBpbWlyb25cIDsKK+eEoemCquawlyA+IG11amFraVwgOwor6aKo5ZGC5aC0ID4gZnVyb2JhXCA7CivpmL/omIflsbEgPiBhc29zYW5cIDsKK+mujumtmuWlsyA+IGFpbmFtZVwgOwor5b6h5a626Iq4ID4gb2llZ2VpXCA7CivnhKHmsJflkbMgPiBidWtpbWlcIDsKK+WGheenkeWMuyA+IG5haWthaVwgOwor5aSn6YOo5bGLID4gb29iZXlhXCA7CivloJXog47ljLsgPiBkYXRhaWlcIDsKK+S4jeeUqOaEjyA+IGZ1eW91aVwgOwor5LmF5oWI55uuID4ga3VqaW1lXCA7CivlpKflvqHku6MgPiBvb21peW9cIDsKK+acieaEj+e+qSA+IHl1dWlnaVwgOwor6YeO6JaU6JaHID4gbm9iYXJhXCA7CivmooXpm6jmnJ8gPiBiYWl1a2lcIDsKK+iAs+m8u+enkSA+IGppYmlrYVwgOwor55S75p625bqnID4gZ2FrYXphXCA7CivkuI3lronmsJcgPiBmdWFuZ2VcIDsKK+Wkp+WHuuadpSA+IG9vZGVraVwgOwor6aKo6YKq5rCXID4ga2F6ZWtlXCA7CivmrablmajluqsgPiBidWtpa29cIDsKK+S8iuWRguazoiA+IGlyb2hhXCA7CivkupzpiZvoj68gPiBhZW5rYVwgOwor57at5oyB6LK7ID4gaWppaGlcIDsKK+S+neS8sOWcsCA+IGVrb2ppXCA7CivmhI/msJflnLAgPiBpa3VqaVwgOwor56eL5YiA6a2aID4gc2FubWFcIDsKK+WFq+mHjeatryA+IHlhZWJhXCA7CivlpKfkvK/niLYgPiBvb29qaVwgOwor5aSn5Lyv5q+NID4gb29vYmFcIDsKK+e0q+mbsuiLsSA+IGdlbmdlXCA7CivmnKrmm77mnIkgPiBtaXpvdVwgOwor5Lyv54i26LK0ID4gb2ppa2lcIDsKK+S6nOm6u+S7gSA+IGFtYW5pXCA7CivkupTljYHot68gPiBpc29qaVwgOwor5pyo5LmD5LyKID4gbWlpcmFcIDsKK+S6jOWNgemHjSA+IGhhdGFlXCA7CivkvZzli5nooaMgPiBzYW11ZVwgOwor5bGF55WZ5a6IID4gaXJ1c3VcIDsKK+WvneakheWtkCA+IG5laXN1XCA7CivluqfmpIXlrZAgPiB6YWlzdVwgOwor6Zuq6Iqx6I+cID4gb2thcmFcIDsKK+WFq+eZvuWxiyA+IHlhb3lhXCA7Civnoavpu4Toj68gPiBpb3VrYVwgOwor5bCP5oSP5rCXID4ga29pa2lcIDsKK+W+oeelnumFkiA+IG9taWtpXCA7CivkvIrkvZDmnKggPiBpc2FraVwgOwor5oWw5a6J5ammID4gaWFuZnVcIDsKK+Wkp+imi+W+lyA+IG9vbWllXCA7CivlsITmiYvluqcgPiBpdGV6YVwgOwor5LiN5oSP5rCXID4gYnVpa2lcIDsKK+iNj+iDoem6uyA+IGVnb21hXCA7CivntbXmloflrZcgPiBlbW9qaVwgOwor5LqU5YCN5a2QID4gZnVzaGlcIDsKK+aBteavlOWvvyA+IGViaXN1XCA7CivnlZnlrojlsYUgPiBydXN1aVwgOwor5LiN5b6X5omLID4gZnVldGVcIDsKK+eEoeaEj+e+qSA+IG11aWdpXCA7Civkvp3mgJnlnLAgPiBla29qaVwgOwor6aaZ5YW35birID4geWFzaGlcIDsKK+Wkp+WPlOeItiA+IG9vb2ppXCA7CivnhKHmhI/lkbMgPiBtdWltaVwgOwor5aSn5Y+U5q+NID4gb29vYmFcIDsKK+aEj+WbuuWcsCA+IGlrb2ppXCA7CivlvqHovp7lhIAgPiBvamlnaVwgOwor6Zi/5byl6ZmAID4gYW1pZGFcIDsKK+WxheWQiOmBkyA+IGlhZG91XCA7CivmnKrpgJrlpbMgPiBvYm9rb1wgOwor5Zuy54KJ6KOPID4gaXJvcmlcIDsKK+W+oeS4lui+niA+IG9zZWppXCA7CivlpJbnp5HljLsgPiBnZWthaVwgOwor55+z5paR6a2aID4gdWd1aVwgOwor5aaC6Zuo6ZyyID4gam9yb1wgOwor55m+6IiM6bOlID4gbW96dVwgOwor5rWu5aG15a2QID4gdW5rYVwgOwor5Lqc57Sw5LqcID4gYWppYVwgOwor5Ly86ICM6Z2eID4gZXNlXCA7CivmmJToqbEgPiBtdWthc2hpYmFuYXNoaVwgOwor5Lql5bm0ID4gaW5vc2hpc2hpZG9zaGlcIDsKK+ipseipsSA+IGhhbmFzaGliYW5hc2hpXCA7CivkuIvllIcgPiBzaGl0YWt1Y2hpYmlydVwgOwor5piU5piUID4gbXVrYXNoaW11a2FzaGlcIDsKK+aYlOOAhSA+IG11a2FzaGltdWthc2hpXCA7CivoqbHjgIUgPiBoYW5hc2hpYmFuYXNoaVwgOwor56eB56uLID4gd2F0YWt1c2hpcml0c3VcIDsKK+aHkOWIgCA+IGZ1dG9rb3JvZ2F0YW5hXCA7Civlv53mtpkgPiBrYXRhamlrZW5hbWlkYVwgOwor5Y2X5p2xID4gbWluYW1paGlnYXNoaVwgOwor5Y+k5YW1ID4gZnVydXRzdXdhbW9ub1wgOwor5YaF6LidID4gdWNoaWt1cnVidXNoaVwgOwor6IiM6byTID4gc2hpdGF0c3VkenVtaVwgOwor5YGl6ICFID4gc2hpdGF0YWthbW9ub1wgOwor5qGc56WtID4gc2FrdXJhbWF0c3VyaVwgOwor5Lmz56qEID4gY2hpY2hpc2hpYm9yaVwgOwor6LOi5omAID4ga2FzaGlrb2Rva29yb1wgOwor6Z2i6a2CID4gdHN1cmFkYW1hc2hpaVwgOwor5LuP5L2cID4gaG90b2tlZHp1a3VydVwgOwor5p2x5Y2XID4gaGlnYXNoaW1pbmFtaVwgOwor5aSp54mbID4ga2FtaWtpcmltdXNoaVwgOwor5aSi5bm7ID4geXVtZW1hYm9yb3NoaVwgOwor5oGZ6JmrID4gdHN1dHN1Z2FtdXNoaVwgOwor56eB5YWxID4gd2F0YWt1c2hpZG9tb1wgOwor56eB5LqLID4gd2F0YWt1c2hpZ290b1wgOwor6YO95b+YID4gbWl5YWtvd2FzdXJlXCA7CivpgZPmqJkgPiBtaWNoaXNoaXJ1YmVcIDsKK+i+u+ekviA+IHRzdWppeWFzaGlyb1wgOwor6Iul57SrID4gd2FrYW11cmFzYWtpXCA7CivnlbPpsK8gPiB0YXRhbWlpd2FzaGlcIDsKK+ebsuaapiA+IG1la3VyYWdveW9taVwgOwor6IW56byTID4gaGFyYXRzdWR6dW1pXCA7CivlhoXmh5AgPiB1Y2hpYnV0b2tvcm9cIDsKK+mwu+S4vCA+IHVuYWdpZG9uYnVyaVwgOwor6Lq+5pa5ID4gc2hpdHN1a2VrYXRhXCA7Civlg7vlv4MgPiBoaWdhbWlnb2tvcm9cIDsKK+akv+ayuSA+IHRzdWJha2lhYnVyYVwgOwor5p+P6aSFID4ga2FzaGl3YW1vY2hpXCA7Civmn4TpoK0gPiB0c3VrYWdhc2hpcmFcIDsKK+S/hOebsiA+IG5pd2FrYW1la3VyYVwgOwor5p6V6KmeID4gbWFrdXJha290b2JhXCA7CivlgJnmiYAgPiBzb3Vyb3V0b2tvcm9cIDsKK+ahgueUtyA+IGthdHN1cmFvdG9rb1wgOwor5bGx5oeQID4geWFtYWZ1dG9rb3JvXCA7CivkuLzpo68gPiBkb25idXJpbWVzaGlcIDsKK+S4vOmJoiA+IGRvbmJ1cmliYWNoaVwgOwor5YCS5LqLID4gc2FrYXNhbWFnb3RvXCA7CivmmoHpl4cgPiBha2F0c3VraXlhbWlcIDsKK+advuavrCA+IG1hdHN1cG9ra3VyaVwgOwor6aCt6JmxID4gYXRhbWFzaGlyYW1pXCA7Civmnb7mnpcgPiBtYXRzdWJheWFzaGlcIDsKK+adn+afsSA+IHRzdWthYmFzaGlyYVwgOwor5LuP5b+DID4gaG90b2tlZ29rb3JvXCA7CivmnKrlubQgPiBoaXRzdWppZG9zaGlcIDsKK+iwt+aHkCA+IHRhbmlidXRva29yb1wgOwor6ZuB6aqoID4ga2FyaWdhbmVib25lXCA7CivmnbHlj6MgPiBoaWdhc2hpZ3VjaGlcIDsKK+adr+S6iyA+IHNha2F6dWtpZ290b1wgOwor54us5p6VID4gaGl0b3JpbWFrdXJhXCA7CivkuIDloYogPiBoaXRva2F0YW1hcmlcIDsKK+WomOW/gyA+IG11c3VtZWdva29yb1wgOwor5aSP56WtID4gbmF0c3VtYXRzdXJpXCA7CivmmJTlvI8gPiBtdWthc2hpc2hpa2lcIDsKK+WmueWomCA+IGltb3V0b211c3VtZVwgOwor6Zyc5p+xID4gc2hpbW9iYXNoaXJhXCA7CivmmJ/ljbAgPiBob3NoaWppcnVzaGlcIDsKK+iii+m8oCA+IGZ1a3Vyb25lenVtaVwgOwor57aa5p+EID4gdHN1ZHp1a2lnYXJhXCA7CivlnJ/om40gPiB0c3VjaGlib3RhcnVcIDsKK+Wcn+eFmSA+IHRzdWNoaWtlbXVyaVwgOwor5oeQ6YqtID4gZnV0b2tvcm96ZW5pXCA7Civpi7jprqsgPiBub2tvZ2lyaXphbWVcIDsKK+Wcn+WfgyA+IHRzdWNoaWJva29yaVwgOwor6JuN6KKLID4gaG90YXJ1YnVrdXJvXCA7Civmh5DntJkgPiBmdXRva29yb2dhbWlcIDsKK+engemBlCA+IHdhdGFzaGl0YWNoaVwgOwor5omA5omAID4gdG9rb3JvZG9rb3JvXCA7Civph5Hpi7ggPiBrYW5lbm9rb2dpcmlcIDsKK+aIr+S6iyA+IHRhd2FtdXJlZ290b1wgOwor5ZOB5b2iID4gc2hpbmFrYXRhY2hpXCA7Civli6Lou4ogPiBoYXp1bWlndXJ1bWFcIDsKK+WTgOWTiSA+IGthbmFzaGlpa2FuYVwgOwor5omA44CFID4gdG9rb3JvZG9rb3JvXCA7CivmsLTnm4MgPiBtaXp1c2FrYXp1a2lcIDsKK+WMhee0mSA+IHRzdXRzdW1pZ2FtaVwgOwor5rC05p2vID4gbWl6dXNha2F6dWtpXCA7CivluK/pi7ggPiBvYmlub2tvZ2lyaVwgOwor5Y+s5L2/ID4gbWVzaGl0c3VrYWlcIDsKK+WKm+efsyA+IGNoaWthcmFpc2hpXCA7Civnmb3pvKAgPiBzaGlyb25lenVtaVwgOwor5Yqb55ikID4gY2hpa2FyYWtvYnVcIDsKK+WKm+awtCA+IGNoaWthcmFtaXp1XCA7CivljZflj6MgPiBtaW5hbWlndWNoaVwgOwor5Yqb5qWtID4gY2hpa2FyYXdhemFcIDsKK+mAhuedqyA+IHNha2FtYXRzdWdlXCA7CivpsLnnr4AgPiBrYXRzdW9idXNoaVwgOwor5YWc6JmrID4ga2FidXRvbXVzaGlcIDsKK+W9ouS9kyA+IG5hcmlrYXRhY2hpXCA7Civluormn7EgPiB0b2tvYmFzaGlyYVwgOwor5Ye65rKhID4gc2h1dHN1Ym90c3VcIDsKK+W3puerryA+IGhpZGFyaWhhc2hpXCA7Civlt7Tnk6YgPiB0b21vZWdhd2FyYVwgOwor5YiH5pelID4gc2hpbWVraXJpYmlcIDsKK+W5vOW/gyA+IG9zYW5hZ29rb3JvXCA7CivoirHnrbUgPiBoYW5hbXVzaGlyb1wgOwor55S36bClID4gb3Rva295YW1vbWVcIDsKK+iKseelrSA+IGhhbmFtYXRzdXJpXCA7CivliJ3lp78gPiBoYXRzdXN1Z2F0YVwgOwor6auY6KmxID4gdGFrYWJhbmFzaGlcIDsKK+iGnemgrSA+IGhpemFnYXNoaXJhXCA7Civlt7vmn7EgPiBtYWtpYmFzaGlyYVwgOwor5bqV5YqbID4gc29rb2RqaWthcmFcIDsKK+eVs+ihqCA+IHRhdGFtaW9tb3RlXCA7Civlh7rlipsgPiBzaHV0c3VyeW9rdVwgOwor5qGc6aSFID4gc2FrdXJhbW9jaGlcIDsKK+ahnOmjryA+IHNha3VyYW1lc2hpXCA7Civnm7Tlh7ogPiBjaG9rdXNodXRzdVwgOwor55Wz6IG3ID4gdGF0YW1pc2hva3VcIDsKK+iNieWGoCA+IGt1c2FrYW5tdXJpXCA7Civnk6LomasgPiB0ZW50b3VtdXNoaVwgOwor5bem5LiLID4gaGlkYXJpc2hpdGFcIDsKK+eZvuWHuiA+IGh5YWt1c2h1dHN1XCA7Civoi6Xkvo0gPiB3YWthemFtdXJhaVwgOwor5YCZ55SxID4gc291cm91eW9zaGlcIDsKK+S8veipsSA+IHRvZ2liYW5hc2hpXCA7Civmnb7po74gPiBtYXRzdWthemFyaVwgOwor5p2x6aKoID4gaGlnYXNoaWthemVcIDsKK+i1pOe0qyA+IGFrYW11cmFzYWtpXCA7Civmn7PohbAgPiB5YW5hZ2lnb3NoaVwgOwor55S35b+DID4gb3Rva29nb2tvcm9cIDsKK+S6uuiZsSA+IGhpdG9zaGlyYW1pXCA7CivnjaPpgZMgPiBrZW1vbm9taWNoaVwgOwor5LiA6ZurID4gaGl0b3NoaXp1a3VcIDsKK+e+iumbsiA+IGhpdHN1amlndW1vXCA7CivnjL/ovaEgPiBzYXJ1Z3V0c3V3YVwgOwor6ISI5omAID4gbXlha3Vkb2tvcm9cIDsKK+S9huabuCA+IHRhZGFzaGlnYWtpXCA7CivohbDliIAgPiBrb3NoaWdhdGFuYVwgOwor6LKi54mpID4gbWl0c3VnaW1vbm9cIDsKK+WuouWupCA+IGt5YWt1c2hpdHN1XCA7Civkurrmn7EgPiBoaXRvYmFzaGlyYVwgOwor5peX6aCtID4gaGF0YWdhc2hpcmFcIDsKK+WtkOW5tCA+IG5lenVtaWRvc2hpXCA7Civml4vpoqggPiB0c3VtdWppa2F6ZVwgOwor6LOq5a6fID4gc2hpdHN1aml0c3VcIDsKK+S4vOeJqSA+IGRvbmJ1cmltb25vXCA7CivmnZbmn7EgPiB0c3VlaGFzaGlyYVwgOwor5LiL5568ID4gc2hpdGFtYWJ1dGFcIDsKK+adieaelyA+IHN1Z2liYXlhc2hpXCA7CivmmZLogIUgPiBzYXJhc2hpbW9ub1wgOwor5LiA5ru0ID4gaGl0b3NoaXp1a3VcIDsKK+S4reafsSA+IG5ha2FiYXNoaXJhXCA7Civni7jniLogPiB0YW51a2lqaWppaVwgOwor5auh5a6kID4gY2hha3VzaGl0c3VcIDsKK+eLkOeMvyA+IGtpdHN1bmV6YXJ1XCA7CivmnbHljJcgPiBoaWdhc2hpa2l0YVwgOwor5LiD5pyIID4gc2hpY2hpZ2F0c3VcIDsKK+S4gOaYlCA+IGhpdG9tdWthc2hpXCA7CivmnbHlgbQgPiBoaWdhc2hpZ2F3YVwgOwor5LiA5pKuID4gaGl0b3RzdW1hbWlcIDsKK+mjvuS7mCA+IGthemFyaXRzdWtlXCA7Civlq6Hlh7ogPiBjaGFrdXNodXRzdVwgOwor5LiL5b+DID4gc2hpdGFnb2tvcm9cIDsKK+Wkj+ihoyA+IG5hdHN1Z29yb21vXCA7CivkuI3ll5wgPiBidXRhc2hpbmFtaVwgOwor6ZuA6JyCID4gc3V6dW1lYmFjaGlcIDsKK+e1hOmgrSA+IGt1bWlnYXNoaXJhXCA7Civnt5HomasgPiBtaWRvcmltdXNoaVwgOwor6Zuq56SrID4geXVraXRzdWJ1dGVcIDsKK+aXl+aomSA+IGhhdGFqaXJ1c2hpXCA7CivlpKLnj74gPiB5dW1ldXRzdXRzdVwgOwor6Zub56WtID4gaGluYW1hdHN1cmlcIDsKK+Wls+aXsSA+IG9uJyduYWhpZGVyaVwgOwor5aWz5b+DID4gb24nJ25hZ29rb3JvXCA7Civmj6HprqggPiBuaWdpcml6dXNoaVwgOwor6Z2Z5b+DID4gc2hpenVnb2tvcm9cIDsKK+mao+eUuiA+IHRvbmFyaW1hY2hpXCA7CivlpKfmmaYgPiBvb3RzdWdvbW9yaVwgOwor5o+h6aOvID4gbmlnaXJpbWVzaGlcIDsKK+e0q+iJsiA+IG11cmFzYWtpaXJvXCA7Civml5fljbAgPiBoYXRhamlydXNoaVwgOwor6Zuq5bqHID4geXVraWJpc2FzaGlcIDsKK+mVt+ipsSA+IG5hZ2FiYW5hc2hpXCA7CivntJnnpKsgPiBrYW1pdHN1YnV0ZVwgOwor6KO46JmrID4gaGFkYWthbXVzaGlcIDsKK+ipseS4rSA+IGhhbmFzaGljaHV1XCA7CivlobXln4MgPiBjaGlyaWhva29yaVwgOwor6Y+h6aSFID4ga2FnYW1pbW9jaGlcIDsKK+eDj+WPoyA+IGthcmFzdWd1Y2hpXCA7Civnq6/ph5EgPiBoYXNoaXRhZ2FuZVwgOwor5o6n5a6kID4gaGlrYWVzaGl0c3VcIDsKK+exs+WNsCA+IGtvbWVqaXJ1c2hpXCA7CivllJDpjKYgPiBrYXJhbmlzaGlraVwgOwor6J2454mbID4gZGVuZGVubXVzaGlcIDsKK+m7kum2qyA+IGt1cm90c3VndW1pXCA7CivpjKbom4cgPiBuaXNoaWtpaGViaVwgOwor5Zu95L6NID4ga3VuaXphbXVyYWlcIDsKK+a4r+eUuiA+IG1pbmF0b21hY2hpXCA7CivomavolqwgPiBtdXNoaWd1c3VyaVwgOwor5ZSQ57SFID4ga2FyYWt1cmVuYWlcIDsKK+ejr+m1ryA+IGlzb2hpeW9kb3JpXCA7Civlkb3ntrEgPiBpbm9jaGlkenVuYVwgOwor6YeR6L2hID4ga2FuYWd1dHN1d2FcIDsKK+WPo+i7iiA+IGt1Y2hpZ3VydW1hXCA7Civlj5boqr8gPiB0b3Jpc2hpcmFiZVwgOwor6by75p+xID4gaGFuYWJhc2hpcmFcIDsKK+eqr+WNsCA+IGthbWFqaXJ1c2hpXCA7CivolKbomL8gPiB0c3V0YWthenVyYVwgOwor5Y+W57egID4gdG9yaXNoaW1hcmlcIDsKK+iUpuiUkyA+IHRzdXRha2F6dXJhXCA7CivmsLfooosgPiBrb29yaWJ1a3Vyb1wgOwor5Y2X6KW/ID4gbWluYW1pbmlzaGlcIDsKK+WMhemHkSA+IHRzdXRzdW1pa2luXCA7Civlj6Tni5AgPiBmdXJ1Z2l0c3VuZVwgOwor5Yqb6Z2pID4gY2hpa2FyYWdhd2FcIDsKK+engeWEgCA+IHdhdGFrdXNoaWdpXCA7CivlipvotrMgPiBjaGlrYXJhYXNoaVwgOwor56eB5L6bID4gd2F0YXNoaWRvbW9cIDsKK+WKm+iyoCA+IGNoaWthcmFtYWtlXCA7CivmsLTmvoQgPiBtaXp1c3VtYXNoaVwgOwor5Y+W5omxID4gdG9yaWF0c3VrYWlcIDsKK+mJhOWFnCA+IHRldHN1a2FidXRvXCA7CivmsLfmnpUgPiBrb29yaW1ha3VyYVwgOwor5rC05p+xID4gbWl6dWJhc2hpcmFcIDsKK+WIh+mAmiA+IGtpcmlkb29zaGlcIDsKK+mvsOmrrSA+IG5hbWF6dWhpZ2VcIDsKK+WPo+WPoyA+IGt1Y2hpZ3VjaGlcIDsKK+WIneipoyA+IGhhdHN1bW91ZGVcIDsKK+efs+eVsyA+IGlzaGlkYXRhbWlcIDsKK+mAhuiqrCA+IGd5YWt1c2V0c3VcIDsKK+iMuOmbsiA+IGtpbm9rb2d1bW9cIDsKK+i/kemBkyA+IGNoaWthbWljaGlcIDsKK+i/kei/kSA+IGNoaWthZGppa2FcIDsKK+awtOW/gyA+IG1penVnb2tvcm9cIDsKK+eggueFmSA+IHN1bmFrZW11cmlcIDsKK+W3nemtmiA+IGthd2F6YWthbmFcIDsKK+WNr+W5tCA+IHVzYWdpZG9zaGlcIDsKK+i/kei3ryA+IGNoaWthbWljaGlcIDsKK+i+u+i+uyA+IHRzdWppdHN1amlcIDsKK+WMl+aelSA+IGtpdGFtYWt1cmFcIDsKK+eiuuWftyA+IGtha3VzaGl0c3VcIDsKK+awt+WupCA+IGh5b3VzaGl0c3VcIDsKK+axuuWIpSA+IGtldHN1YmV0c3VcIDsKK+W+jOaKgCA+IHVzaGlyb3dhemFcIDsKK+WNjeW3tCA+IG1hbmppZG9tb2VcIDsKK+W/g+WupCA+IHNoaW5zaGl0c3VcIDsKK+edgOiJsiA+IGNoYWt1c2hva3VcIDsKK+WGhumPoSA+IG1hcnVrYWdhbWlcIDsKK+mBo+ebtCA+IHlhcmluYW9zaGlcIDsKK+edgOiEsSA+IGNoYWt1ZGF0c3VcIDsKK+W9l+aYnyA+IGhvdWtpYm9zaGlcIDsKK+WGhumJiyA+IG1hcnVnYW4nJ25hXCA7CivlvozlvowgPiBub2NoaW5vY2hpXCA7CivljbjllYYgPiBvcm9zaGlzaG91XCA7CivovrvopIQgPiB0c3VqaXRzdW1hXCA7CivoirHpsLkgPiBoYW5hZ2F0c3VvXCA7CivptrTlmLQgPiB0c3VydWhhc2hpXCA7CivlhYjpmqMgPiBzYWtpZG9uYXJpXCA7Civlt6botrMgPiBoaWRhcmlhc2hpXCA7CivlvpflpLEgPiB0b2t1c2hpdHN1XCA7CivlkoTjgIUgPiB0b3RzdXRvdHN1XCA7CivphZLlh6YgPiBzYWtlZG9rb3JvXCA7CivmrbPmnIggPiB0b3NoaXRzdWtpXCA7CivmqKrou4ogPiB5b2tvZ3VydW1hXCA7CivljZPlh7ogPiB0YWt1c2h1dHN1XCA7CivlvI/ml6UgPiBzaGlraWppdHN1XCA7CivlhaXos6ogPiBueXV1c2hpY2hpXCA7CivnnYDnnYAgPiBjaGFrdWNoYWt1XCA7CivljZflgbQgPiBtaW5hbWlnYXdhXCA7Civnmq7ooaMgPiBrYXdhZ29yb21vXCA7CivljLrljLogPiBtYWNoaW1hY2hpXCA7CivnnYDnmbogPiBjaGFrdWhhdHN1XCA7CivoirHpi48gPiBoYW5hYmFzYW1pXCA7Civluq3mvIYgPiBuaXdhdXJ1c2hpXCA7CivnoILltZAgPiBzdW5hYXJhc2hpXCA7CivlubTnlLcgPiB0b3NoaW90b2tvXCA7CivmrKHmrKEgPiB0c3VnaXRzdWdpXCA7CivliIDnlrUgPiBrYXRhbmFraXp1XCA7CivpgZXmo5ogPiBjaGlnYWlkYW5hXCA7Civnm7TnrYYgPiBjaG9rdWhpdHN1XCA7CivlvJDlv4MgPiBmdXRhZ29rb3JvXCA7Civnm7Tnq4sgPiBjaG9rdXJpdHN1XCA7CivlhZzon7kgPiBrYWJ1dG9nYW5pXCA7Civnm7LnqpMgPiBtZWt1cmFtYWRvXCA7Civlh7rnjYQgPiBzaHV0c3Vnb2t1XCA7Civlh7rnjJ8gPiBzaHV0c3VyeW91XCA7CivnoILln4MgPiBzdW5hYm9rb3JpXCA7Civlt6bogLMgPiBoaWRhcmltaW1pXCA7CivlipvluK8gPiBjaGlrYXJhb2JpXCA7CivnoILlmqIgPiBzdW5hYnVrdXJvXCA7CivlhYnomJogPiBoaWthcmlnb2tlXCA7CivoirHoqZ4gPiBoYW5ha290b2JhXCA7CivliJ3msLcgPiBoYXRzdWdvb3JpXCA7Civoi6boib4gPiBuaWdheW9tb2dpXCA7Civlh7rmvIEgPiBzaHV0c3VyeW91XCA7Civnmr/np6QgPiBzYXJhYmFrYXJpXCA7CivmrrrkvJAgPiBzYXRzdWJhdHN1XCA7CivmsrjjgIUgPiBmdXRzdWZ1dHN1XCA7CivlhY7ohKMgPiBtaXRzdWt1Y2hpXCA7CivluqfmioAgPiBzdXdhcml3YXphXCA7Civlj6PjgIUgPiBrdWNoaWd1Y2hpXCA7Civoia/os6ogPiByeW91c2hpdHN1XCA7Civmp43oob4gPiB5YXJpYnVzdW1hXCA7CivpgJDml6UgPiBjaGlrdWppdHN1XCA7Civoi6Xnt5EgPiB3YWthbWlkb3JpXCA7Civou4ros4MgPiBrdXJ1bWFjaGluXCA7CivpgIbmjqUgPiBneWFrdXNldHN1XCA7CivnlZHpvKAgPiBoYXRhbmV6dW1pXCA7CivnnYDmiZUgPiBjaGFrdWJhcmFpXCA7Civlh7rmkoMgPiBzaHV0c3VnZWtpXCA7Civls6DpgZMgPiB0b3VnZW1pY2hpXCA7CivlubTlvLcgPiB0b3NoaWR6dXlvXCA7CivoibboibYgPiB0c3V5YXRzdXlhXCA7CivnlLDptZEgPiBob3RvdG9naXN1XCA7CivlsbHpr6ggPiB5YW1ha3VqaXJhXCA7CivojYnmnpUgPiBrdXNhbWFrdXJhXCA7CivnnYDlrp8gPiBjaGFrdWppdHN1XCA7CivlgrfolqwgPiBraXp1Z3VzdXJpXCA7CivojLbmn7EgPiBjaGFiYXNoaXJhXCA7CivluJrmmJ8gPiBob3VraWJvc2hpXCA7Civnm7TmjqUgPiBjaG9rdXNldHN1XCA7CivlupXlnJ8gPiBzb2tvdHN1Y2hpXCA7CivnlbPph50gPiB0YXRhbWloYXJpXCA7CivnmbrnhrEgPiBoYXRzdW5ldHN1XCA7CivliIflrp8gPiBzZXRzdWppdHN1XCA7CivlsbHpoqogPiB5YW1hb3Jvc2hpXCA7CivlhYnniakgPiBoaWthcmltb25vXCA7CivliZTlh7ogPiB0ZWtpc2h1dHN1XCA7CivnlJ/prZogPiBuYW1hemFrYW5hXCA7Civnm7TmiKogPiBjaG9rdXNldHN1XCA7CivlgY/ovrogPiBrYXRhaG9yb3JpXCA7CivoirHnlZEgPiBoYW5hYmF0YWtlXCA7CivlgJnplpMgPiBzb3Vyb3VhaWRhXCA7CivpgLLlh7ogPiBzaGluc2h1dHN1XCA7CivlupfljbggPiB0YW5hb3Jvc2hpXCA7CivnlaXov7AgPiByeWFrdWp1dHN1XCA7CivluLjluLggPiB0c3VuZWR6dW5lXCA7CivnlrXolqwgPiBraXp1Z3VzdXJpXCA7CivliKXlj6MgPiBiZXRzdWt1Y2hpXCA7CivlhavmqYsgPiB5YXRzdWhhc2hpXCA7CivovrDlubQgPiB0YXRzdWRvc2hpXCA7CivliKXliKUgPiBiZXRzdWJldHN1XCA7CivlsLvppKAgPiBzaGlyaW1vY2hpXCA7Civlh7rlm70gPiBzaHV0c3Vnb2t1XCA7CivlsLvppIUgPiBzaGlyaW1vY2hpXCA7CivljLrjgIUgPiBtYWNoaW1hY2hpXCA7Civnmb3mqLogPiBzaGlyYWthbmJhXCA7CivlhavmnIggPiBoYWNoaWdhdHN1XCA7CivouI/ou4ogPiBmdW1pZ3VydW1hXCA7CivlvozjgIUgPiBub2NoaW5vY2hpXCA7CivnlaXoqqwgPiByeWFrdXNldHN1XCA7CivnlLPovrwgPiBtb3VzaGlrb21pXCA7CivliIfliIcgPiBzZXRzdXNldHN1XCA7Civnm7Llo4EgPiBtZWt1cmFrYWJlXCA7Civpr6jluZUgPiBrdWppcmFtYWt1XCA7Civnmb3mmJ8gPiBzaGlyb2Jvc2hpXCA7Civnmb7ml6UgPiBoeWFrdW5pY2hpXCA7Civohpzos6ogPiBtYWt1c2hpdHN1XCA7Civlh7rlhaUgPiBzaHV0c3VueXV1XCA7CivlubTkuIsgPiB0b3NoaXNoaXRhXCA7Civkv4LplbcgPiBrYWthcmljaG91XCA7CivlgJnoqr8gPiBzb3Vyb3VjaG91XCA7Civpr6jlsLogPiBrdWppcmFqYWt1XCA7Civnm5vlnJ8gPiBtb3JpdHN1Y2hpXCA7CivoirHmmqYgPiBoYW5hZ295b21pXCA7Civnm7TliJcgPiBjaG9rdXJldHN1XCA7CivnlLLon7kgPiBrYWJ1dG9nYW5pXCA7Civlhr3lhr0gPiByZXRzdXJldHN1XCA7CivlhaXlrqQgPiBueXV1c2hpdHN1XCA7CivlsbHojZIgPiB5YW1hYXJhc2hpXCA7CivlgpHniakgPiBrZXRzdWJ1dHN1XCA7CivnlaXnrYYgPiByeWFrdWhpdHN1XCA7Civlt6bliKkgPiBoaWRhcmlraWtpXCA7CivkvLjppIUgPiBub3NoaW1vY2hpXCA7CivlhoXlhpEgPiB1Y2hpa2FidXRvXCA7CivlhoXlhZwgPiB1Y2hpa2FidXRvXCA7Civlt6blgbQgPiBoaWRhcmlnYXdhXCA7CivlhaXlj6MgPiBoYWlyaWd1Y2hpXCA7CivlrqTplbcgPiBzaGl0c3VjaG91XCA7CivlhKrlp78gPiB5YXNhc3VnYXRhXCA7CivlhY7lj6MgPiBtaXRzdWt1Y2hpXCA7CivnlLPnq4sgPiBtb3VzaGl0YXRlXCA7CivmoLjos6ogPiBrYWt1c2hpdHN1XCA7CivmpI3niakgPiBzaG9rdWJ1dHN1XCA7Civlsqnnh5UgPiBpd2F0c3ViYW1lXCA7CivmrKHjgIUgPiB0c3VnaXRzdWdpXCA7CivlhLLlj6MgPiBtb3VrZWd1Y2hpXCA7Civmo5/nk6YgPiBtdW5hZ2F3YXJhXCA7Civpq5jmnpUgPiB0YWthbWFrdXJhXCA7CivohLnohJsgPiBmdWt1cmFoYWdpXCA7Civpq5jmm4cgPiB0YWthZ3Vtb3JpXCA7CivmoZzoirEgPiBzYWt1cmFiYW5hXCA7CivmoZHoi7ogPiBrdXdhaWNoaWdvXCA7CivohJroibIgPiBreWFrdXNob2t1XCA7CivmoZzogokgPiBzYWt1cmFuaWt1XCA7Civogqnou4ogPiBrYXRhZ3VydW1hXCA7CivliKXjgIUgPiBiZXRzdWJldHN1XCA7Civos6rph48gPiBzaGl0c3VyeW91XCA7CivnlZzmrrogPiBjaGlrdXNhdHN1XCA7CivmnZzptZEgPiBob3RvdG9naXN1XCA7CivohIjohIggPiBteWFrdW15YWt1XCA7CivnnYDjgIUgPiBjaGFrdWNoYWt1XCA7CivmpZTlvaIgPiBrdXNhYmlnYXRhXCA7CivmoZzntJkgPiBzYWt1cmFnYW1pXCA7CivliIfjgIUgPiBzZXRzdXNldHN1XCA7Civnl4XlrqQgPiBieW91c2hpdHN1XCA7Civoiovkvo0gPiBpbW96YW11cmFpXCA7Civogonos6ogPiBuaWt1c2hpdHN1XCA7Civov5HjgIUgPiBjaGlrYWRqaWthXCA7Civlrp3oiLkgPiB0YWthcmFidW5lXCA7CivlsbHmoZwgPiB5YW1hemFrdXJhXCA7CivlgbTlrqQgPiBzb2t1c2hpdHN1XCA7Civohp3mnpUgPiBoaXphbWFrdXJhXCA7CivkubPpppYgPiBjaGljaGlrdWJpXCA7CivluLjjgIUgPiB0c3VuZWR6dW5lXCA7CivlrZDopo8gPiBob3RvdG9naXN1XCA7CivmpbXlipsgPiBreW9rdXJ5b2t1XCA7CivovrvjgIUgPiB0c3VqaXRzdWppXCA7CivmoZHnlZEgPiBrdXdhYmF0YWtlXCA7CivnlaXlvI8gPiByeWFrdXNoaWtpXCA7Civlhr3jgIUgPiByZXRzdXJldHN1XCA7CivmnpXoqLEgPiBtYWt1cmFtb3RvXCA7Civlrp3nsaQgPiB0YWthcmFrdWppXCA7Civlrp3nrrEgPiB0YWthcmFiYWtvXCA7Civos6rojYkgPiBzaGljaGlndXNhXCA7Civpqqjlo7cgPiBrb3RzdXRzdWJvXCA7Civlrr/nm7QgPiBzaHVrdWNob2t1XCA7Civlgpnku5ggPiBzb25hZXRzdWtlXCA7CivnlaXlpaogPiByeWFrdWRhdHN1XCA7CivlsbHltZAgPiB5YW1hYXJhc2hpXCA7Civmnb7omasgPiBtYXRzdW11c2hpXCA7CivkubPos6ogPiBueXV1c2hpdHN1XCA7CivkuKHpmqMgPiByeW91ZG9uYXJpXCA7CivlsaHlsaEgPiBzaGliYXNoaWJhXCA7CivnvqTpm4AgPiBtdXJhc3V6dW1lXCA7CivmnKjos6ogPiBtb2t1c2hpdHN1XCA7Civlrp/niakgPiBqaXRzdWJ1dHN1XCA7Civos6rnqK4gPiBzaGljaGlndXNhXCA7CivkuIvpnLIgPiBzaGl0YXRzdXl1XCA7CivnlZzlipsgPiBjaGlrdXJ5b2t1XCA7Civlr5LmpL8gPiBrYW50c3ViYWtpXCA7Civos6rnmoQgPiBzaGl0c3V0ZWtpXCA7Civmo5rljbggPiB0YW5hb3Jvc2hpXCA7CivmopTlrZAgPiBrdWNoaW5hc2hpXCA7CivpqYDlnLAgPiBtYXNzaGlndXJhXCA7CivlsbHliIAgPiB5YW1hZ2F0YW5hXCA7CivkuIvpgZMgPiBzaGl0YW1pY2hpXCA7CivkuI3our4gPiBidXNoaXRzdWtlXCA7CivnlJ/ljbUgPiBuYW1hdGFtYWdvXCA7CivpoqjolqwgPiBrYXplZ3VzdXJpXCA7Civmm7LoqqwgPiBreW9rdXNldHN1XCA7CivkuLjoo7ggPiBtYXJ1aGFkYWthXCA7Civpo6/nspIgPiBtZXNoaXRzdWJ1XCA7CivnjKvou4ogPiBuZWtvZ3VydW1hXCA7CivkuInotoogPiBtaXRzdWtvc2hpXCA7CivlrqLmnIggPiBreWFrdWdldHN1XCA7CivmmYLps6UgPiBob3RvdG9naXN1XCA7CivpoZTosowgPiBrYW9rYXRhY2hpXCA7CivlrqTmlpkgPiBzaGl0c3VyeW91XCA7CivlsLrlhasgPiBzaGFrdWhhY2hpXCA7CivoibbjgIUgPiB0c3V5YXRzdXlhXCA7CivmnbHnlLcgPiBhenVtYW90b2tvXCA7Civlr53lrqQgPiBzaGluc2hpdHN1XCA7Civos6rmqLggPiBzaGl0c3Vib2t1XCA7CivogpjmnpUgPiBoaWppbWFrdXJhXCA7Civku4/mu4UgPiBidXRzdW1ldHN1XCA7CivlsI/ljIUgPiBrb2R6dXRzdW1pXCA7Civlr4blr4YgPiBtaXRzdW1pdHN1XCA7CivlsLHkuK0gPiBuYWthbmR6dWt1XCA7CivkuIrok4YgPiB1d2FtdXNoaXJvXCA7Civos6rmnLQgPiBzaGl0c3Vib2t1XCA7CivohLHlipsgPiBkYXRzdXJ5b2t1XCA7Civos6rmnK0gPiBzaGljaGlmdWRhXCA7CivkuInoj7EgPiBtaXRzdWJpc2hpXCA7Civku67mnpUgPiBrYXJpbWFrdXJhXCA7Civkvpvlh7ogPiBreW91c2h1dHN1XCA7Civlrq7lrqQgPiBreXV1c2hpdHN1XCA7CivmmKXpnJ4gPiBoYXJ1Z2FzdW1pXCA7Civpo5/niakgPiBzaG9rdW1vdHN1XCA7CivmmJTpoqggPiBtdWthc2hpZnV1XCA7Civlrp3ls7YgPiB0YWthcmFqaW1hXCA7Civku4/mp5ggPiBob3Rva2VzYW1hXCA7CivohJrlipsgPiBreWFrdXJ5b2t1XCA7CivkuIvogbcgPiBzaGl0YXNob2t1XCA7Civmm7Lnr4AgPiBreW9rdXNldHN1XCA7Civmm7LnrYYgPiBreW9rdWhpdHN1XCA7CivkuIDnuo8gPiBoaXRvbWF0b21lXCA7Civpo6/mq4MgPiBtZXNoaWJpdHN1XCA7Civosp3mn7EgPiBrYWliYXNoaXJhXCA7CivkuIrnrbUgPiB1d2FtdXNoaXJvXCA7Civmm7Lnm7QgPiBreW9rdWNob2t1XCA7CivkuLjnk6YgPiBtYXJ1Z2F3YXJhXCA7CivkuIPnq4ggPiBuYW5ha2FtYWRvXCA7CivkuIDnqbQgPiBoaXRvdHN1YW5hXCA7CivlravlqJggPiBtYWdvbXVzdW1lXCA7Civku4/mgKcgPiBob3Rva2VzaG91XCA7CivpnZnpnZkgPiBzaGl6dXNoaXp1XCA7Civlrp/lipsgPiBqaXRzdXJ5b2t1XCA7Civmm7LnjocgPiBreW9rdXJpdHN1XCA7CivlpKfpvJMgPiBvb3RzdWR6dW1pXCA7Civni5DoibIgPiBraXRzdW5laXJvXCA7Civnibnos6ogPiB0b2t1c2hpdHN1XCA7CivkuIDnnaEgPiBoaXRvbmVtdXJpXCA7CivkuIvnlLogPiBzaGl0YW1hY2hpXCA7Civkurrlv4MgPiBoaXRvZ29rb3JvXCA7CivkuIPnlJ8gPiBzaGljaGlzaG91XCA7Civnh5XpuqYgPiBrYXJhc3VtdWdpXCA7CivkuIDnlaogPiBoaXRvdHN1Z2FpXCA7Civnianoqp4gPiBtb25vZ2F0YXJpXCA7CivlpbPpgZQgPiBvbicnbmF0YWNoaVwgOwor5pyn5pyIID4gb2Jvcm9kenVraVwgOwor54mH6LebID4ga2F0YWNoaW5iYVwgOwor5pyr5pelID4gbWF0c3VqaXRzdVwgOwor5pyb5pyIID4gbW9jaGlkenVraVwgOwor5LqM5b+DID4gZnV0YWdva29yb1wgOwor6Z2p6LOqID4ga2FrdXNoaXRzdVwgOwor5aSn6Zq8ID4gb29oYXlhYnVzYVwgOwor5pyI5pyIID4gdHN1a2lkenVraVwgOwor5LiA5rihID4gaGl0b3dhdGFyaVwgOwor5bGh44CFID4gc2hpYmFzaGliYVwgOwor5p2c5a6HID4gaG90b3RvZ2lzdVwgOwor5aa+6IW5ID4gbWVrYWtlYmFyYVwgOwor6Zuy6ZyeID4ga3Vtb2thc3VtaVwgOwor6Z2p6KKLID4ga2F3YWJ1a3Vyb1wgOwor5p6Q5Ye6ID4gc2VraXNodXRzdVwgOwor5p6V5YWDID4gbWFrdXJhbW90b1wgOwor5LiN5p2fID4gZnV0c3V0c3VrYVwgOwor54yr5p+zID4gbmVrb3lhbmFnaVwgOwor5puy5oqYID4ga3lva3VzZXRzdVwgOwor6LK45LuYID4ga2FzaGl0c3VrZVwgOwor54u45rGBID4gdGFudWtpamlydVwgOwor5LiN5oqxID4ga2FrYXdhcmF6dVwgOwor5LiA5omAID4gaGl0b3Rva29yb1wgOwor5puy5bC6ID4ga3lva3VzaGFrdVwgOwor6Zuq6LOqID4geXVraXNoaXRzdVwgOwor6aGU5b2iID4ga2Fva2F0YWNoaVwgOwor54qH54qHID4gaGlzaGloaXNoaVwgOwor6Zub6LGGID4gaGl5b2tvbWFtZVwgOwor57ay6aCtID4gYW1pZ2FzaGlyYVwgOwor5aGp6a2aID4gc2hpb3pha2FuYVwgOwor5Lit5Z+3ID4gY2h1dXNoaXRzdVwgOwor5aSP6JmrID4gbmF0c3VtdXNoaVwgOwor57a+6YymID4gYXlhbmlzaGlraVwgOwor5pyI5YilID4gdHN1a2liZXRzdVwgOwor5aWq55WlID4gZGF0c3VyeWFrdVwgOwor57mB57mBID4gc2hpZ2VzaGlnZVwgOwor54OP6bqmID4ga2FyYXN1bXVnaVwgOwor5LiA5ZGoID4gaGl0b21lZ3VyaVwgOwor54OP6bOpID4ga2FyYXN1YmF0b1wgOwor6Kil6KilID4gdG90c3V0b3RzdVwgOwor5peF54OPID4gdGFiaWdhcmFzdVwgOwor5LiD5YWJID4gbmFuYWhpa2FyaVwgOwor5aiY5am/ID4gbXVzdW1lbXVrb1wgOwor5pel5rKhID4gbmljaGlib3RzdVwgOwor57Sw6ZuqID4gc2FzYW1leXVraVwgOwor6aCt5YiGID4ga2FzaGlyYWJ1blwgOwor5paR54mbID4gbWFkYXJhdXNoaVwgOwor57eR6ImyID4gcnlva3VzaG9rdVwgOwor5pel5pyIID4gbmljaGlnZXRzdVwgOwor5pet5pelID4ga3lva3VqaXRzdVwgOwor6KeS6LOqID4ga2FrdXNoaXRzdVwgOwor6Zqj57WEID4gdG9uYXJpZ3VtaVwgOwor54OP6YeRID4ga2FyYXN1Z2FuZVwgOwor6Zq856eRID4gaGF5YWJ1c2FrYVwgOwor54mp5b+DID4gbW9ub2dva29yb1wgOwor5peF5p6VID4gdGFiaW1ha3VyYVwgOwor57SF6ZuAID4gYmVuaXN1enVtZVwgOwor54i25pa5ID4gY2hpY2hpa2F0YVwgOwor5aG16IqlID4gY2hpcmlha3V0YVwgOwor6Zuo54eVID4gYW1hdHN1YmFtZVwgOwor5aa55am/ID4gaW1vdXRvbXVrb1wgOwor6Zuq54WZID4geXVraWtlbXVyaVwgOwor5aWq5o6gID4gZGF0c3VyeWFrdVwgOwor6KeS6JuZID4gdHN1bm9nYWVydVwgOwor5aSx5qWtID4gc2hpdHN1Z3lvdVwgOwor6Kit56uLID4gc2V0c3VyaXRzdVwgOwor6ZuR54mpID4gemF0c3VidXRzdVwgOwor54ax54OIID4gbmV0c3VyZXRzdVwgOwor6ZqP56WeID4ga2FuJyduYWdhcmFcIDsKK+ijuOm6piA+IGhhZGFrYW11Z2lcIDsKK+mcnOaciCA+IHNoaW1vdHN1a2lcIDsKK+WkouaelSA+IHl1bWVtYWt1cmFcIDsKK+aXheW/gyA+IHRhYmlnb2tvcm9cIDsKK+eKrOS+jSA+IGludXphbXVyYWlcIDsKK+itmOWIpSA+IHNoaWtpYmV0c3VcIDsKK+WmvuWHuiA+IHNob3VzaHV0c3VcIDsKK+e3keeOiSA+IHJ5b2t1Z3lva3VcIDsKK+eDj+ibhyA+IGthcmFzdWhlYmlcIDsKK+eJueWHuiA+IHRva3VzaHV0c3VcIDsKK+e0meiiiyA+IGthbWlidWt1cm9cIDsKK+mbquafsyA+IHl1a2l5YW5hZ2lcIDsKK+aYpeS8kSA+IGhhcnV5YXN1bWlcIDsKK+aciOOAhSA+IHRzdWtpZHp1a2lcIDsKK+inpueZuiA+IHNob2t1aGF0c3VcIDsKK+e2meeItiA+IG1hbWFjaGljaGlcIDsKK+eDj+e0mSA+IGthcmFzdWdhbWlcIDsKK+aXpeS7jyA+IG5pY2hpZnV0c3VcIDsKK+aOm+mVtyA+IGtha2FyaWNob3VcIDsKK+mdtOS4iyA+IGt1dHN1c2hpdGFcIDsKK+e4ruWwuiA+IHNodWt1c2hha3VcIDsKK+Wls+S4uyA+IG9uJyduYWFydWppXCA7CivmlbXlpLEgPiB0ZWtpc2hpdHN1XCA7CivmlZnlrqQgPiBreW91c2hpdHN1XCA7Civntbbmu4UgPiB6ZXRzdW1ldHN1XCA7CivopoHnn7MgPiBrYW5hbWVpc2hpXCA7Civoo4/oqbEgPiB1cmFiYW5hc2hpXCA7CivnsonolqwgPiBrb25hZ3VzdXJpXCA7CivnuK7liLcgPiBzaHVrdXNhdHN1XCA7CivlnJ/osZogPiB0c3VjaGlidXRhXCA7Civng4jng4ggPiByZXRzdXJldHN1XCA7CivmlZHlh7ogPiBreXV1c2h1dHN1XCA7Civlo4HlnJ8gPiBrYWJldHN1Y2hpXCA7CivntZDmnKsgPiBrZXRzdW1hdHN1XCA7Civopqrmn7EgPiBveWFiYXNoaXJhXCA7CivnspvnspsgPiBzaHVrdXNodWt1XCA7Civlm73oqJsgPiBrdW5pbmFtYXJpXCA7Civntr/ln4MgPiB3YXRhYm9rb3JpXCA7Civopqrml6UgPiBzaGluJyduaWNoaVwgOwor54G854axID4gc2hha3VuZXRzdVwgOwor6ZuH5Li7ID4geWF0b2ludXNoaVwgOwor57aZ5aiYID4gbWFtYW11c3VtZVwgOwor54S85aSxID4gc2hvdXNoaXRzdVwgOwor6Kiz5Ye6ID4geWFrdXNodXRzdVwgOwor54OI5pelID4gcmV0c3VqaXRzdVwgOwor57eg5LuYID4gc2hpbWV0c3VrZVwgOwor6Kij5YilID4ga2V0c3ViZXRzdVwgOwor562S6bOlID4gdHN1dHN1ZG9yaVwgOwor6KKL6ICzID4gZnVrdXJvbWltaVwgOwor57WQ5a6fID4ga2V0c3VqaXRzdVwgOwor57aa5Ye6ID4gem9rdXNodXRzdVwgOwor5r+D57SrID4ga29tdXJhc2FraVwgOwor5rqd6bygID4gZG9idW5lenVtaVwgOwor57Kb5q66ID4gc2h1a3VzYXRzdVwgOwor6KGA6ISIID4ga2V0c3VteWFrdVwgOwor6Y6M6bysID4ga2FtYWl0YWNoaVwgOwor6KKL54mpID4gZnVrdXJvbW9ub1wgOwor6KW/5Y+jID4gbmlzaGlndWNoaVwgOwor5pGY5Ye6ID4gdGVraXNodXRzdVwgOwor56+A56+AID4gZnVzaGlidXNoaVwgOwor562S6KKWID4gdHN1dHN1c29kZVwgOwor57O45Y2wID4gaXRvamlydXNoaVwgOwor54K65Lq6ID4gaGl0b3RvbmFyaVwgOwor54Kt5L+1ID4gc3VtaWRhd2FyYVwgOwor6JyA6a2CID4gaG90b3RvZ2lzdVwgOwor57Gz5omAID4ga29tZWRva29yb1wgOwor56uv6L+RID4gaGFzaGlkamlrYVwgOwor6Y6W6Y6MID4ga3VzYXJpZ2FtYVwgOwor5ruF6KOCID4gbWV0c3VyZXRzdVwgOwor5r2u54WZID4gc2hpb2tlbXVyaVwgOwor562G6IiMID4gaGl0c3V6ZXRzdVwgOwor6Yym6a+JID4gbmlzaGlraWdvaVwgOwor5ruR6ISxID4ga2F0c3VkYXRzdVwgOwor5o6g5aWqID4gcnlha3VkYXRzdVwgOwor562G562SID4gZnVkZWR6dXRzdVwgOwor5o+P5Ye6ID4gYnlvdXNodXRzdVwgOwor5Zyf5aOBID4gdHN1Y2hpa2FiZVwgOwor5omL57aaID4gdGV0c3VkenVraVwgOwor6J6i55+zID4gaG90YXJ1aXNoaVwgOwor6Jyc6JyCID4gbWl0c3ViYWNoaVwgOwor566x5p+zID4gaGFrb3lhbmFnaVwgOwor566x5p6VID4gaGFrb21ha3VyYVwgOwor57Gz5L+1ID4ga29tZWRhd2FyYVwgOwor6JyC6JycID4gaGFjaGltaXRzdVwgOwor56u5562SID4gdGFrZWR6dXRzdVwgOwor56uv56uvID4gaGFzaGliYXNoaVwgOwor566S5pifID4gaG91a2lib3NoaVwgOwor6J2255WqID4gY2hvdXRzdWdhaVwgOwor5oug5omAID4geW9yaWRva29yb1wgOwor6buS6bygID4ga3Vyb25lenVtaVwgOwor6KGo5Y+jID4gb21vdGVndWNoaVwgOwor56uI56WeID4ga2FtYWRvZ2FtaVwgOwor6buS6a6qID4ga3Vyb21hZ3Vyb1wgOwor57CH5Ye6ID4gem9rdXNodXRzdVwgOwor6KGo5Ye6ID4gaHlvdXNodXRzdVwgOwor5ZSQ6KGjID4ga2FyYWtvcm9tb1wgOwor562G5peBID4gZnVkZXp1a3VyaVwgOwor6b2j6JC9ID4ga29tYW90b3NoaVwgOwor6Yyo57axID4gaWthcmlkenVuYVwgOwor562S5b2iID4gdHN1dHN1Z2F0YVwgOwor5rex57eRID4gZnVrYW1pZG9yaVwgOwor6by76JasID4gaGFuYWd1c3VyaVwgOwor5omA5p+EID4gdG9rb3JvZ2FyYVwgOwor5oyB5Li7ID4gbW9jaGludXNoaVwgOwor5ouZ5YqjID4gc2V0c3VyZXRzdVwgOwor6JuN55+zID4gaG90YXJ1aXNoaVwgOwor5ryC5aSxID4gaHlvdXNoaXRzdVwgOwor6Yed6bygID4gaGFyaW5lenVtaVwgOwor5rWB6LOqID4gcnl1dXNoaWNoaVwgOwor5oq95Ye6ID4gY2h1dXNodXRzdVwgOwor6Jyc5pyIID4gbWl0c3VnZXRzdVwgOwor56m65raZID4gc29yYW5hbWlkYVwgOwor5riL5riLID4gc2hpYnVzaGlidVwgOwor5ruy5Ye6ID4gc2hpbnNodXRzdVwgOwor56aP6KKLID4gZnVrdWJ1a3Vyb1wgOwor562S5YWIID4gdHN1dHN1c2FraVwgOwor562G5YqbID4gaGl0c3VyeW9rdVwgOwor5oqE5Ye6ID4gc2hvdXNodXRzdVwgOwor5oiR5b+DID4gd2FnYWtva29yb1wgOwor6buS6Iu6ID4ga3Vyb2ljaGlnb1wgOwor56ep56aEID4gY2hpdHN1cm9rdVwgOwor5Y+I6ZqjID4gbWF0YWRvbmFyaVwgOwor6YeR6YuPID4ga2FuYWJhc2FtaVwgOwor5oeQ5omLID4gZnV0b2tvcm9kZVwgOwor6buS57eRID4ga3Vyb21pZG9yaVwgOwor5oWE54OIID4gcml0c3VyZXRzdVwgOwor6Yu45q2vID4gbm9rb2dpcmliYVwgOwor5rqM5YmMID4gaGF0c3VyYXRzdVwgOwor5oOf56WeID4ga2FuJyduYWdhcmFcIDsKK+a1t+eHlSA+IHVtaXRzdWJhbWVcIDsKK+mHkeiiiyA+IGthbmFidWt1cm9cIDsKK+ayueiZqyA+IGFidXJhbXVzaGlcIDsKK+mKgOeLkCA+IGdpbmdpdHN1bmVcIDsKK+WNl+miqCA+IG1pbmFtaWthemVcIDsKK+iZkOauuiA+IGd5YWt1c2F0c3VcIDsKK+awtOmPoSA+IG1penVrYWdhbWlcIDsKK+a0u+eJqSA+IGthdHN1YnV0c3VcIDsKK+WNtemFkiA+IHRhbWFnb3pha2VcIDsKK+evgOOAhSA+IGZ1c2hpYnVzaGlcIDsKK+mDvemzpSA+IG1peWFrb2RvcmlcIDsKK+axuuijgiA+IGtldHN1cmV0c3VcIDsKK+iWrOeusSA+IGt1c3VyaWJha29cIDsKK+m6pueVkSA+IG11Z2liYXRha2VcIDsKK+m7kua8hiA+IGtva3VzaGl0c3VcIDsKK+WWieS7jyA+IG5vZG9ib3Rva2VcIDsKK+mHkeiBviA+IGthbmF0c3VuYm9cIDsKK+WQuOa5vyA+IGt5dXVzaGl0c3VcIDsKK+awtOiWrCA+IG1penVndXN1cmlcIDsKK+azieeGsSA+IGl6dW1pbmV0c3VcIDsKK+a1tOWupCA+IHlva3VzaGl0c3VcIDsKK+aEm+WomCA+IG1hbmFtdXN1bWVcIDsKK+WPpOeLuCA+IGZ1cnVkYW51a2lcIDsKK+ays+eDjyA+IGthd2FnYXJhc3VcIDsKK+engeWumyA+IHdhdGFzaGlhdGVcIDsKK+W/hee9sCA+IGhpdHN1YmF0c3VcIDsKK+elneaXpSA+IHNodWt1aml0c3VcIDsKK+WQiuapiyA+IHRzdXJpYmFzaGlcIDsKK+W9ouiosSA+IGthdGFiYWthcmlcIDsKK+ayuOayuCA+IGZ1dHN1ZnV0c3VcIDsKK+azouaelSA+IG5hbWltYWt1cmFcIDsKK+eih+e2sSA+IGlrYXJpZHp1bmFcIDsKK+awtOenpCA+IG1penViYWthcmlcIDsKK+a1geWksSA+IHJ5dXVzaGl0c3VcIDsKK+a1uOWHuiA+IHNoaW5zaHV0c3VcIDsKK+mJi+WxkSA+IGthbicnbmFrdXp1XCA7Civoj7HppIUgPiBoaXNoaW1vY2hpXCA7CivlkInml6UgPiBraWNoaW5pY2hpXCA7CivolqzmjIcgPiBrdXN1cml5dWJpXCA7CivlkITmlrkgPiBvbm9vbm9nYXRhXCA7Civph5Hmp4wgPiBrYW5hZHp1Y2hpXCA7CivnoILooosgPiBzdW5hYnVrdXJvXCA7CivlkoTlkoQgPiB0b3RzdXRvdHN1XCA7CivliY3poK0gPiBtYWVnYXNoaXJhXCA7CivmtYHlh7ogPiByeXV1c2h1dHN1XCA7CivmtLvlipsgPiBrYXRzdXJ5b2t1XCA7CivljbXnhLwgPiB0YW1hZ295YWtpXCA7CivmsLTnhZkgPiBtaXp1a2VtdXJpXCA7CivpgZPpgZMgPiBtaWNoaW1pY2hpXCA7CivlvLfohbAgPiB0c3V5b2dvc2hpXCA7CivmtLvku48gPiBrYXRzdWJ1dHN1XCA7CivliJ3pnJwgPiBoYXRzdXNoaW1vXCA7Civlj7Plt6YgPiBtaWdpaGlkYXJpXCA7CivlkITlrqQgPiBrYWt1c2hpdHN1XCA7CivnnYDpm6ogPiBjaGFrdXNldHN1XCA7Civlv4Xmu4UgPiBoaXRzdW1ldHN1XCA7Civph4zlv4MgPiBzYXRvZ29rb3JvXCA7CivokbXnpa0gPiBhb2ltYXRzdXJpXCA7Civmsrnlo7cgPiBhYnVyYXRzdWJvXCA7CivmuIvjgIUgPiBzaGlidXNoaWJ1XCA7CivliLvotrMgPiBraXphbWlhc2hpXCA7CivmsLTmnpUgPiBtaXp1bWFrdXJhXCA7Civli4XnrYYgPiBjaG9rdWhpdHN1XCA7CivpsK/pm7IgPiBpd2FzaGlndW1vXCA7Civlv4Pmn4QgPiBrb2tvcm9nYXJhXCA7CivnnaboqIAgPiBtdXRzdWdvdG9cIDsKK+WPjuWlqiA+IHNodXVkYXRzdVwgOwor5oGQ5ZadID4ga3lvdWthdHN1XCA7Civnm67poK0gPiBtZWdhc2hpcmFcIDsKK+iNiemkoCA+IGt1c2Ftb2NoaVwgOwor5YqH6IG3ID4gZ2VraXNob2t1XCA7Civolqzku6MgPiBrdXN1cmlkYWlcIDsKK+W8t+ebtCA+IGt5b3VjaG9rdVwgOwor5ZCE5YaKID4ga2FrdXNhdHN1XCA7CivpgJroqqwgPiB0c3V1c2V0c3VcIDsKK+ays+WPoyA+IGthd2FndWNoaVwgOwor6YCG6LOKID4gZ3lha3V6b2t1XCA7CivpgZPojYkgPiBtaWNoaWt1c2FcIDsKK+atu+elniA+IHNoaW5pZ2FtaVwgOwor6YGp6IG3ID4gdGVraXNob2t1XCA7CivmrKDokL0gPiBrZXRzdXJha3VcIDsKK+W3u+muqCA+IG1ha2l6dXNoaVwgOwor5Yud546HID4gc2hvdXJpdHN1XCA7Civlh7rou40gPiBzaHV0c3VndW5cIDsKK+WNiuaXpSA+IGhhbicnbmljaGlcIDsKK+WOhOW5tCA+IHlha3Vkb3NoaVwgOwor5Yml6ISxID4gaGFrdWRhdHN1XCA7CivlvpLmoZwgPiBhZGF6YWt1cmFcIDsKK+WNg+aXpSA+IHNlbicnbmljaGlcIDsKK+WIpeihjCA+IGJldHN1Z3lvdVwgOwor6JC9552AID4gcmFrdWNoYWt1XCA7CivpgIbopbIgPiBneWFrdXNodXVcIDsKK+avkuauuiA+IGRva3VzYXRzdVwgOwor56K65a6fID4ga2FrdWppdHN1XCA7Civph43lh7ogPiBqdXVzaHV0c3VcIDsKK+WPo+WFiCA+IGt1Y2hpc2FraVwgOwor5Y+j5YWDID4ga3VjaGltb3RvXCA7CivlvI/nm64gPiBzaGlraW1va3VcIDsKK+WNk+aKnCA+IHRha3ViYXRzdVwgOwor5rKh5YWlID4gYm90c3VueXV1XCA7Civlj7PkuIsgPiBtaWdpc2hpdGFcIDsKK+W8t+eDiCA+IGt5b3VyZXRzdVwgOwor6YC46ISxID4gaXRzdWRhdHN1XCA7Civnmb3pu5IgPiBzaGlyb2t1cm9cIDsKK+ebtOmBlCA+IGppa2l0YXRzdVwgOwor5oGL5LuHID4ga29pZ2F0YWtpXCA7Civnm7TpgLIgPiBjaG9rdXNoaW5cIDsKK+ebtOmAmiA+IGNob2t1dHN1dVwgOwor5Ym956qDID4gaHlvdXNldHN1XCA7CivlibLnrrggPiB3YXJpYmFzaGlcIDsKK+WFjem7nCA+IG1lbmNodXRzdVwgOwor6YeR5LuPID4ga2FuYWJ1dHN1XCA7Civnmb3pt7ogPiBzaGlyYXNhZ2lcIDsKK+mGteWHuiA+IGt5b3NodXRzdVwgOwor55u06L2EID4gY2hva2thdHN1XCA7CivljaDluKsgPiB1cmFuYWlzaGlcIDsKK+earumdtCA+IGthd2FndXRzdVwgOwor5oCl5YiHID4ga3l1dXNldHN1XCA7CivphYnlubQgPiB0b3JpZG9zaGlcIDsKK+ecn+ijuCA+IG1hcHBhZGFrYVwgOwor5Ye66KGAID4gc2h1a2tldHN1XCA7Civnmb3psZogPiBzaGlyb2dpc3VcIDsKK+mBk+etiyA+IG1pY2hpc3VqaVwgOwor6YGT56uvID4gbWljaGliYXRhXCA7Civljbjlo7IgPiBvcm9zaGl1cmlcIDsKK+W/mOWksSA+IGJvdXNoaXRzdVwgOwor6JSt5Y+jID4ga2FnZWd1Y2hpXCA7CivljbXlpKcgPiB0YW1hZ29kYWlcIDsKK+WIneiKsSA+IGhhdHN1aGFuYVwgOwor6YGT56iLID4gbWljaGlub3JpXCA7Civnmb3pq6ogPiBoYWt1aGF0c3VcIDsKK+ejlOWIkSA+IGhhcml0c3VrZVwgOwor5b2m5pifID4gaGlrb2Jvc2hpXCA7CivovpvovqMgPiBzaGlucmF0c3VcIDsKK+ato+eJqSA+IHNob3VidXRzdVwgOwor5ZOB44CFID4gc2hpbmFqaW5hXCA7Civlh7rol40gPiBzaHV0c3VyYW5cIDsKK+W5tOiLpSA+IHRvc2hpd2FrYVwgOwor6YCG6IejID4gZ3lha3VzaGluXCA7CivlubPoip0gPiBoaXJhc2hpYmFcIDsKK+aoqumdoiA+IHlva290c3VyYVwgOwor55u06KqtID4gY2hva3Vkb2t1XCA7Civlh53ooYAgPiBneW91a2V0c3VcIDsKK+mAg+iFsCA+IG5pZ2Vnb3NoaVwgOwor5b+D5aSqID4gdG9rb3JvdGVuXCA7Civlv4PlpKkgPiB0b2tvcm90ZW5cIDsKK+ebtOiosyA+IGNob2t1eWFrdVwgOwor5Yid6ICzID4gaGF0c3VtaW1pXCA7Civnmb3pm6ogPiBoYWt1c2V0c3VcIDsKK+WHuuiJsiA+IHNodXNzaG9rdVwgOwor5buD55a+ID4gaGFpc2hpdHN1XCA7Civliofng4ggPiBnZWtpcmV0c3VcIDsKK+mAn+ethiA+IHNva3VoaXRzdVwgOwor5rC05Y+jID4gbWl6dWd1Y2hpXCA7CivmrrrmiK4gPiBzYXRzdXJpa3VcIDsKK+W+jOWupCA+IGtvdXNoaXRzdVwgOwor6JOE5aa+ID4gY2hpa3VzaG91XCA7Civlh7rnvqQgPiBzaHV0c3VndW5cIDsKK+mAsueZuiA+IHNoaW5wYXRzdVwgOwor6Iy26KKLID4gY2hhYnVrdXJvXCA7CivliJ3nqbogPiBoYXRzdXpvcmFcIDsKK+aoqumBkyA+IHlva29taWNoaVwgOwor6JC95pytID4gcmFrdXNhdHN1XCA7CivliK7nm64gPiBrYXRzdW1va3VcIDsKK+eZvemFkiA+IHNoaXJvemFrZVwgOwor5YuY5omAID4ga2FuZG9rb3JvXCA7Civov73nqoEgPiB0c3VpdG90c3VcIDsKK+W8j+acjSA+IHNoaWtpZnVrdVwgOwor5Y2U5YqbID4ga3lvdXJ5b2t1XCA7Civnn7PmjIEgPiBpc2hpbW9jaGlcIDsKK+iQveaXpSA+IHJha3VqaXRzdVwgOwor6YC454mpID4gaWNoaW1vdHN1XCA7Civnm7TohbggPiBjaG9rdWNob3VcIDsKK+attOaXpSA+IHJla2lqaXRzdVwgOwor6YCy54mpID4gc2hpbm1vdHN1XCA7Civlh7rnq4sgPiBzaHV0dGF0c3VcIDsKK+ecn+ethiA+IHNoaW5waXRzdVwgOwor5q2j5pyIID4gc2hvdWdhdHN1XCA7Civlh53nuK4gPiBneW91c2h1a3VcIDsKK+edgOebriA+IGNoYWt1bW9rdVwgOwor5YWt6K2YID4gcm9rdXNoaWtpXCA7Civlh53ntZAgPiBneW91a2V0c3VcIDsKK+ecvOeWviA+IGdhbnNoaXRzdVwgOwor5q2M5p6VID4gdXRhbWFrdXJhXCA7CivvvLjnt5ogPiBla2t1c3VzZW5cIDsKK+efpeaCiSA+IGNoaXNoaXRzdVwgOwor5Yil54mpID4gYmV0c3Vtb25vXCA7Civnm7TntZAgPiBjaG9ra2V0c3VcIDsKK+WHneeriyA+IGd5b3VyaXRzdVwgOwor5bi456+AID4gdG9rb2J1c2hpXCA7CivmqJnorZggPiBoeW91c2hpa2lcIDsKK+W+jOWHuiA+IGtvdXNodXRzdVwgOwor5Yid54mpID4gaGF0c3Vtb25vXCA7CivoirHpgZMgPiBoYW5hbWljaGlcIDsKK+WHuueZuiA+IHNodXBwYXRzdVwgOwor5YyX5Y+jID4ga2l0YWd1Y2hpXCA7CivlubTnjokgPiB0b3NoaWRhbWFcIDsKK+apmeiJsiA+IGRhaWRhaWlyb1wgOwor55+p5beuID4ga2FuZXphc2hpXCA7CivljYPkuIcgPiBjaGl5b3JvenVcIDsKK+W8k+W8piA+IHl1bWlkenVydVwgOwor55uy56m0ID4gbWVrdXJhYW5hXCA7CivojYnnrpIgPiBrdXNhYm91a2lcIDsKK+WHuuePviA+IHNodXRzdWdlblwgOwor5Yed552AID4gZ3lvdWNoYWt1XCA7CivliqPlvLEgPiByZXRzdWpha3VcIDsKK+ecn+eOhyA+IHNoaW5zb3RzdVwgOwor6Ium6JmrID4gbmlnYW11c2hpXCA7CivmqYvohJogPiBreW91a3lha3VcIDsKK+W3puiFlSA+IGhpZGFyaXVkZVwgOwor6auY6by+ID4gdGFrYWliaWtpXCA7CivnnJ/niakgPiBzaGluYnV0c3VcIDsKK+W8lOWuoiA+IGNob3VreWFrdVwgOwor55m+6JasID4gaHlha3V5YWt1XCA7CivojLbnrZIgPiBjaGFkenV0c3VcIDsKK+W8n+WomCA+IG90b211c3VtZVwgOwor55yB55WlID4gc2hvdXJ5YWt1XCA7CivpgIbmtYEgPiBneWFrdXJ5dXVcIDsKK+atjOW/gyA+IHV0YWdva29yb1wgOwor6YCx5pyrID4gc2h1dW1hdHN1XCA7CivnnYDmsLcgPiBjaGFrdWh5b3VcIDsKK+eZveiPiiA+IHNoaXJhZ2lrdVwgOwor5bm05rOiID4gdG9zaGluYW1pXCA7CivmraPlrqQgPiBzZWlzaGl0c3VcIDsKK+iPiuaciCA+IGtpa3VkenVraVwgOwor5Yil5qWtID4gYmV0c3VneW91XCA7CivlubTmr44gPiB0b3NoaWdvdG9cIDsKK+mAseaXpSA+IHNodXVqaXRzdVwgOwor6Iqx6KGXID4gaGFuYW1hY2hpXCA7Civlt53nuIEgPiBrYXdhYnVjaGlcIDsKK+W9ouS7oyA+IGthdGFzaGlyb1wgOwor55m96ImyID4gaGFrdXNob2t1XCA7CivliKXmo58gPiBiZXRzdW11bmVcIDsKK+WGiueriyA+IHNha3VyaXRzdVwgOwor5bO26aKoID4gc2hpbWFrYXplXCA7CivlvLHljZIgPiBqYWt1c290c3VcIDsKK+WDlemBlCA+IGJva3V0YWNoaVwgOwor6aut6Z2iID4gaGlnZWR6dXJhXCA7CivlvLXlipsgPiBjaG91cnlva3VcIDsKK+i7n+izqiA+IG5hbnNoaXRzdVwgOwor6I+x5b2iID4gaGlzaGlnYXRhXCA7CivpgLLmjZcgPiBzaGluY2hva3VcIDsKK+WDu+iqrCA+IGhla2lzZXRzdVwgOwor6Iy255WRID4gY2hhYmF0YWtlXCA7CivmqKrntrEgPiB5b2tvZHp1bmFcIDsKK+WFjuiAsyA+IHVzYWdpbWltaVwgOwor5Ye65qygID4gc2h1a2tldHN1XCA7Civls7bpmbAgPiBzaGltYWthZ2VcIDsKK+efouWNsCA+IHlhamlydXNoaVwgOwor552A5pyNID4gY2hha3VmdWt1XCA7Civlu7rlnaogPiB0YXRldHN1Ym9cIDsKK+WJr+WwuiA+IGZ1a3VzaGFrdVwgOwor5Yid5pilID4gaGF0c3VoYXJ1XCA7CivlhbHnq4sgPiBreW91cml0c3VcIDsKK+iKseiPsSA+IGhhbmFiaXNoaVwgOwor5bu25Z2qID4gbm9iZXRzdWJvXCA7CivmpbXph48gPiBreW9rdXJ5b3VcIDsKK+iJr+itmCA+IHJ5b3VzaGlraVwgOwor5byf5YiGID4gb3RvdXRvYnVuXCA7CivoibLoqr8gPiBzaGlraWNob3VcIDsKK+mztuWPoyA+IHRvYmlndWNoaVwgOwor5YWr56aPID4gaGFjaGlmdWt1XCA7CivoibLoppogPiBzaGlraWtha3VcIDsKK+efs+S7jyA+IHNla2lidXRzdVwgOwor5q2z5Ye6ID4gc2Fpc2h1dHN1XCA7Civnm7TmtYEgPiBjaG9rdXJ5dXVcIDsKK+iKjeiWrCA+IHNoYWt1eWFrdVwgOwor5Ye65pytID4gc2h1c3NhdHN1XCA7CivlibLlopcgPiB3YXJpbWFzaGlcIDsKK+iKneiNiSA+IHNoaWJha3VzYVwgOwor55yf5p2xID4gbWFoaWdhc2hpXCA7CivmqLjnm7QgPiBib2t1Y2hva3VcIDsKK+WJpeWlqiA+IGhha3VkYXRzdVwgOwor5bmV5pyrID4gYmFrdW1hdHN1XCA7CivmpI7pqqggPiB0c3Vpa290c3VcIDsKK+ato+WHuiA+IHNlaXNodXRzdVwgOwor5Ye25pelID4ga3lvdWppdHN1XCA7CivpgYrlpLEgPiB5dXVzaGl0c3VcIDsKK+i7iuidpiA+IGt1cnVtYWViaVwgOwor5Yid5b25ID4gaGF0c3V5YWt1XCA7Civpgbjlh7ogPiBzZW5zaHV0c3VcIDsKK+mAhuW/gyA+IGd5YWt1c2hpblwgOwor6L+r5oyBID4gc2VyaW1vY2hpXCA7CivnnYDluoogPiBjaGFrdXNob3VcIDsKK+W5tOW8sSA+IHRvc2hpeW93YVwgOwor5bGx6baJID4geWFtYXV6dXJhXCA7CivvvLfmna8gPiBkYWJ1cnVoYWlcIDsKK+edgOW4rSA+IGNoYWt1c2VraVwgOwor6L675pytID4gdHN1amlmdWRhXCA7CivpganliIcgPiB0ZWtpc2V0c3VcIDsKK+eZuueXhSA+IGhhdHN1YnlvdVwgOwor55eF6K2YID4gYnlvdXNoaWtpXCA7CivlibXlh7ogPiBzb3VzaHV0c3VcIDsKK+WIpeWupCA+IGJlc3NoaXRzdVwgOwor5bm05bWpID4gdG9zaGlrYXNhXCA7CivliJ3lrasgPiBoYXRzdW1hZ29cIDsKK+WHuuW+oSA+IHNodXRzdWd5b1wgOwor5bm95a6kID4geXV1c2hpdHN1XCA7Civnmb3njokgPiBzaGlyYXRhbWFcIDsKK+ebtOaSgyA+IGNob2t1Z2VraVwgOwor5bm05a+EID4gdG9zaGl5b3JpXCA7Civmpo7ojLggPiBlbm9raXRha2VcIDsKK+iIueiZqyA+IGZ1bmFtdXNoaVwgOwor55m954axID4gaGFrdW5ldHN1XCA7CivmpbXoloQgPiBreW9rdWhha3VcIDsKK+eZveeGiiA+IHNoaXJva3VtYVwgOwor5biG5p+xID4gaG9iYXNoaXJhXCA7CivlibLku5ggPiB3YXJpdHN1a2VcIDsKK+WIneWkoiA+IGhhdHN1eXVtZVwgOwor5YiG5a6kID4gYnVuc2hpdHN1XCA7Civlurblh7ogPiBzaG9zaHV0c3VcIDsKK+WFpea7hSA+IG55dXVtZXRzdVwgOwor5Ymy5LiLID4gd2FyaXNoaXRhXCA7CivluILmnb4gPiBpY2hpbWF0c3VcIDsKK+WEqueUtyA+IHlhc2FvdG9rb1wgOwor6Iqx55S6ID4gaGFuYW1hY2hpXCA7CivovaLmrrogPiByZWtpc2F0c3VcIDsKK+eZiOeWviA+IGhhaXNoaXRzdVwgOwor55yf5a6fID4gc2hpbmppdHN1XCA7Civnmb3mu50gPiBzaGlyYXRha2lcIDsKK+mAn+WPoyA+IGhheWFrdWNoaVwgOwor6YCy5YWlID4gc2hpbicnbnl1dVwgOwor5YSy54mpID4gbW91a2Vtb25vXCA7CivohbDpq5ggPiBrb3NoaWRha2FcIDsKK+api+ahgSA+IGhhc2hpZ2V0YVwgOwor6aqo6LOqID4ga29zc2hpdHN1XCA7CivohbDpqqggPiBrb3NoaWJvbmVcIDsKK+S/rumjviA+IHNodXVzaG9rdVwgOwor55m95rWqID4gc2hpcmFuYW1pXCA7Civnmb3mtZwgPiBzaGlyYWhhbWFcIDsKK+iJtueoriA+IHRzdXlhZGFuZVwgOwor6YCf5YqbID4gc29rdXJ5b2t1XCA7CivovrvlupcgPiB0c3VqaW1pc2VcIDsKK+eZveazoiA+IHNoaXJhbmFtaVwgOwor6Iy25omAID4gY2hhZG9rb3JvXCA7CivluoPlj6MgPiBoaXJva3VjaGlcIDsKK+WwuumqqCA+IHNoYWtrb3RzdVwgOwor5Ye65aGBID4gc2h1dHN1cnVpXCA7Civnm67luocgPiBtYWJpc2FzaGlcIDsKK+eZveawtCA+IHNoaXJvbWl6dVwgOwor6Imy56WeID4gc2hpa2lzaGluXCA7CivlhaXmpI0gPiBueXV1c2hva3VcIDsKK+ebtOWxniA+IGNob2t1em9rdVwgOwor5Yid5Ye6ID4gc2hvc2h1dHN1XCA7Civlh6HlpLEgPiBib25zaGl0c3VcIDsKK+WFreaciCA+IHJva3VnYXRzdVwgOwor5YWl5pytID4gbnl1dXNhdHN1XCA7CivpgIHlh7ogPiBzb3VzaHV0c3VcIDsKK+WxsemBkyA+IHlhbWFtaWNoaVwgOwor6YCA5Ye6ID4gdGFpc2h1dHN1XCA7Civmpb3nr4AgPiBnYWt1c2V0c3VcIDsKK+W4uOWkjyA+IHRva29uYXRzdVwgOwor55Sz6YGUID4gc2hpbnRhdHN1XCA7Civoi6Xmnb4gPiB3YWthbWF0c3VcIDsKK+WxgOmVtyA+IGt5b2t1Y2hvdVwgOwor6ay855OmID4gb25pZ2F3YXJhXCA7CivluJ3lrqQgPiB0ZWlzaGl0c3VcIDsKK+W6iuS4iyA+IHl1a2FzaGl0YVwgOwor552A5L+hID4gY2hha3VzaGluXCA7Civnmb3mnK0gPiBzaGlyb2Z1ZGFcIDsKK+WIh+WFpSA+IHNldHN1bnl1dVwgOwor5qiZ5pytID4gaHlvdXNhdHN1XCA7Civlh7rli5UgPiBzaHV0c3Vkb3VcIDsKK+i/q+WKmyA+IGhha3VyeW9rdVwgOwor5bGR6YmEID4ga3V6dXRldHN1XCA7Civpq6rntrEgPiBrYW1pZHp1bmFcIDsKK+mAkOS4gCA+IGNoaWt1aWNoaVwgOwor5L616aOfID4gc2hpbnNob2t1XCA7CivoirHmsLcgPiBoYW5hZ29vcmlcIDsKK+S/hOmbqCA+IG5pd2FrYWFtZVwgOwor6Iag6LOqID4ga291c2hpdHN1XCA7CivojLblrqQgPiBjaGFzaGl0c3VcIDsKK+eZveaXpSA+IGhha3VqaXRzdVwgOwor5L6g6aqoID4ga3lvdWtvdHN1XCA7CivlsJHpo58gPiBzaG91c2hva3VcIDsKK+W3s+W5tCA+IGhlYmlkb3NoaVwgOwor6Im254mpID4gdHN1eWFtb25vXCA7CivlsI/po58gPiBzaG91c2hva3VcIDsKK+WGt+WltCA+IGhpeWF5YWtrb1wgOwor5bCP6aCtID4ga29nYXNoaXJhXCA7CivlsYjovrEgPiBrdXRzdWpva3VcIDsKK+mqqOiGnCA+IGtvdHN1bWFrdVwgOwor55S66KeSID4gbWFjaGlrYWRvXCA7CivovrvlkJsgPiB0c3VqaWdpbWlcIDsKK+ecgeWKmyA+IHNob3VyeW9rdVwgOwor6a+J5bmfID4ga29pbm9ib3JpXCA7CivotaTpsK8gPiBha2Fpd2FzaGlcIDsKK+mqqOiCiSA+IGtvdHN1bmlrdVwgOwor5YaF5a6kID4gbmFpc2hpdHN1XCA7Civlt53lsrggPiBrYXdhZ2lzaGlcIDsKK+W5leS4iyA+IG1ha3VzaGl0YVwgOwor55uu5Y2wID4gbWVqaXJ1c2hpXCA7CivlsLvou70gPiBzaGlyaWdhcnVcIDsKK+eUt+ihhiA+IG90b2tvc2h1dVwgOwor6bCQ5Y+jID4gd2FuaWd1Y2hpXCA7Civkv6HotoogPiBzaGluJydldHN1XCA7Civkv4rpgLggPiBzaHVuJydpdHN1XCA7CivlsZ7oqJcgPiBzaG9rdXRha3VcIDsKK+ebsuWIpCA+IG1la3VyYWJhblwgOwor6IO46aqoID4ga3lvdWtvdHN1XCA7Civlr53po58gPiBzaGluc2hva3VcIDsKK+iJsuayoiA+IHNoaWtpdGFrdVwgOwor5YWt5bC6ID4gcm9rdXNoYWt1XCA7Civovpvlj6MgPiBrYXJha3VjaGlcIDsKK+iJsuassiA+IHNoaWtpeW9rdVwgOwor5qW154axID4gZ29rdW5ldHN1XCA7Civot7PomasgPiB0b2JpbXVzaGlcIDsKK+eXm+eDiCA+IHRzdXVyZXRzdVwgOwor6Iej56+AID4gc2hpbnNldHN1XCA7CivpqqjnrrEgPiBrb3RzdWJha29cIDsKK+eah+WupCA+IGtvdXNoaXRzdVwgOwor5L+X6KqsID4gem9rdXNldHN1XCA7CivlhLLlvbkgPiBtb3VrZXlha3VcIDsKK+S+m+i/sCA+IGt5b3VqdXRzdVwgOwor5bO754OIID4gc2h1bnJldHN1XCA7CivnlLfohbkgPiBvdG9rb2JhcmFcIDsKK+altea1gSA+IGt5b2t1cnl1dVwgOwor55Wl56ugID4gcnlha3VzaG91XCA7Civlho3lh7ogPiBzYWlzaHV0c3VcIDsKK+W3neWPoyA+IGthd2FndWNoaVwgOwor6Imv5pelID4gcnlvdWppdHN1XCA7CivnlaXnp7AgPiByeWFrdXNob3VcIDsKK+W3puWJjSA+IGhpZGFyaW1hZVwgOwor5a++6LOqID4gdGFpc2hpdHN1XCA7CivlsI/oqqwgPiBzaG91c2V0c3VcIDsKK+W3puWFmiA+IGhpZGFyaXRvdVwgOwor6ISH6YGTID4gd2FraW1pY2hpXCA7Civmo7nnp6QgPiBzYW9iYWthcmlcIDsKK+ahnOiynSA+IHNha3VyYWdhaVwgOwor55eF5rKhID4gYnlvdWJvdHN1XCA7CivlhbHlipsgPiBreW91cnlva3VcIDsKK+iIueapiyA+IGZ1bmFiYXNoaVwgOwor6auq5rK5ID4ga2FtaWFidXJhXCA7Civnl4Xmrb8gPiBieW91Ym90c3VcIDsKK+S+teidlSA+IHNoaW5zaG9rdVwgOwor55eF5qygID4gYnlvdWtldHN1XCA7CivlhavliIcgPiB5YXRzdWdpcmlcIDsKK+WFpeWKmyA+IG55dXVyeW9rdVwgOwor55S6562LID4gbWFjaGlzdWppXCA7CivoibLmhb4gPiBzaGlraXlva3VcIDsKK+iEgui2syA+IGFidXJhYXNoaVwgOwor55S656uLID4gY2hvdXJpdHN1XCA7CivohJroqLsgPiBreWFrdWNodXVcIDsKK+alteaciCA+IGdva3VnZXRzdVwgOwor6ISC6LOqID4gc2hpc2hpdHN1XCA7CivoiJ/mqYsgPiBmdW5haGFzaGlcIDsKK+S+m+ihgCA+IGt5b3VrZXRzdVwgOwor5bed5LiLID4ga2F3YXNoaW1vXCA7Civlrp/pjLIgPiBqaXRzdXJva3VcIDsKK+eVnOeUnyA+IGNoaWt1c2hvdVwgOwor6Imy5byxID4gc2hpa2lqYWt1XCA7Civnmbrlh7ogPiBoYXNzaHV0c3VcIDsKK+iFsOe4hCA+IGtvc2hpbmF3YVwgOwor55Sf56+AID4gbmFtYWJ1c2hpXCA7CivlsLHogbcgPiBzaHV1c2hva3VcIDsKK+i2s+iFsCA+IGFzaGlrb3NoaVwgOwor5YWl5LuPID4gbnl1dWJ1dHN1XCA7CivlhaXkuqQgPiBpcmltYWppcmlcIDsKK+iFsOe0kCA+IGtvc2hpaGltb1wgOwor5L+u56+JID4gc2h1dWNoaWt1XCA7Civogonpo58gPiBuaWt1c2hva3VcIDsKK+S/oee0hCA+IHNoaW4nJ3lha3VcIDsKK+iEseiQvSA+IGRhdHN1cmFrdVwgOwor5L2T6LOqID4gdGFpc2hpdHN1XCA7CivovKnlh7ogPiBoYWlzaHV0c3VcIDsKK+S/ruelkyA+IHNodXVmdXRzdVwgOwor5a2m6ZalID4gZ2FrdWJhdHN1XCA7CivkvY3osqAgPiBrdXJhaW1ha2VcIDsKK+iLl+S7oyA+IG5hd2FzaGlyb1wgOwor5bGx55S3ID4geWFtYW90b2tvXCA7CivmoZzojYkgPiBzYWt1cmFzb3VcIDsKK+Wuoui2syA+IGt5YWt1YXNoaVwgOwor5bGe55uuID4gc2hva3Vtb2t1XCA7Civkv5fnrYYgPiB6b2t1aGl0c3VcIDsKK+Wwj+iBtyA+IHNob3VzaG9rdVwgOwor5YSf5Y20ID4gc2hvdWt5YWt1XCA7Civmpb3lvosgPiBnYWt1cml0c3VcIDsKK+ahnOiJsiA+IHNha3VyYWlyb1wgOwor5bCP576KID4ga29oaXRzdWppXCA7Civlrp/os6ogPiBqaXNzaGl0c3VcIDsKK+iCmOmJhCA+IGhpaml0ZXRzdVwgOwor6LOD6aSFID4gY2hpbm1vY2hpXCA7Civlrp3osp0gPiB0YWthcmFnYWlcIDsKK+i7veWPoyA+IGthcnVrdWNoaVwgOwor6LaF6ISxID4gY2hvdWRhdHN1XCA7CivnlLfniakgPiBvdG9rb21vbm9cIDsKK+iBt+mVtyA+IHNob2t1Y2hvdVwgOwor5LuP6aGUID4gaG90b2tlZ2FvXCA7Civku4/poJggPiBmdXRzdXJ5b3VcIDsKK+eVpeattCA+IHJ5YWt1cmVraVwgOwor6aqo5p+EID4ga290c3VnYXJhXCA7CivotaToibIgPiBzZWtpc2hva3VcIDsKK+Wwj+evgCA+IHNob3VzZXRzdVwgOwor5bC755mWID4gc2hpcmlrdXNlXCA7CivohqDmvIYgPiBrb3VzaGl0c3VcIDsKK+WztuW9sSA+IHNoaW1ha2FnZVwgOwor5qW15bCPID4ga3lva3VzaG91XCA7Civkv7XniakgPiBoeW91bW90c3VcIDsKK+eUn+eIqiA+IG5hbWFkenVtZVwgOwor5p2+6aKoID4gbWF0c3VrYXplXCA7CivotoXntbYgPiBjaG91emV0c3VcIDsKK+iIueWupCA+IHNlbnNoaXRzdVwgOwor6IW654axID4gc2VuJyduZXRzdVwgOwor5p2f6auqID4gc29rdWhhdHN1XCA7Civou6Llh7ogPiB0ZW5zaHV0c3VcIDsKK+iEqeeruSA+IHNodXVjaGlrdVwgOwor5bO25bO2ID4gc2hpbWFqaW1hXCA7CivnlaXmnI0gPiByeWFrdWZ1a3VcIDsKK+WztuWxsSA+IHNoaW1heWFtYVwgOwor6ayx5YuDID4gdXRzdWJvdHN1XCA7CivmnbHpm7IgPiBzaGlub25vbWVcIDsKK+eUn+a7hSA+IHNob3VtZXRzdVwgOwor5L+X54mpID4gem9rdWJ1dHN1XCA7CivohLHnoasgPiBkYXRzdXJ5dXVcIDsKK+iEiOe1oSA+IG15YWt1cmFrdVwgOwor5a2m6K2YID4gZ2FrdXNoaWtpXCA7CivkvrXnlaUgPiBzaGlucnlha3VcIDsKK+WtpuiqrCA+IGdha3VzZXRzdVwgOwor6IG36LKsID4gc2hva3VzZWtpXCA7CivoibbkuosgPiB0c3V5YWdvdG9cIDsKK+eOiem0qyA+IHRhbWFzaGlnaVwgOwor55Om54mIID4ga2F3YXJhYmFuXCA7Civlgrflj6MgPiBraXp1Z3VjaGlcIDsKK+Wvhue0hCA+IG1pdHN1eWFrdVwgOwor5a2m6KGTID4gZ2FrdWp1dHN1XCA7Civou5LkuIsgPiBub2tpc2hpdGFcIDsKK+i7iuS7oyA+IGt1cnVtYWRhaVwgOwor5YCf5paZID4gc2hha3VyeW91XCA7Civos4fos6ogPiBzaGlzaGl0c3VcIDsKK+S6uumBlCA+IGhpdG90YWNoaVwgOwor5YCZ5paHID4gc291cm91YnVuXCA7Civlr7rnlLcgPiB0ZXJhb3Rva29cIDsKK+alteWMlyA+IGt5b2t1aG9rdVwgOwor6ISx542EID4gZGF0c3Vnb2t1XCA7CivnlLrmlrkgPiBtYWNoaWthdGFcIDsKK+eXm+WIhyA+IHRzdXVzZXRzdVwgOwor6auY5Z2PID4gdGFrYXRzdWtpXCA7Civosrjos4MgPiBrYXNoaWNoaW5cIDsKK+WAieaVtyA+IGt1cmFzaGlraVwgOwor5Lme6aOfID4ga290c3VqaWtpXCA7CivkvLjnuK4gPiBzaGluc2h1a3VcIDsKK+S6uuizqiA+IGhpdG9qaWNoaVwgOwor5pyd6aOfID4gY2hvdXNob2t1XCA7CivnlrXlj6MgPiBraXp1Z3VjaGlcIDsKK+Wzu+WIpSA+IHNodW5iZXRzdVwgOwor5bGK5pu4ID4gdG9kb2tlc2hvXCA7CivlrqLnrYsgPiBreWFrdXN1amlcIDsKK+acjemjviA+IGZ1a3VzaG9rdVwgOwor5YKR5Ye6ID4ga2Vzc2h1dHN1XCA7CivkvJHogbcgPiBreXV1c2hva3VcIDsKK+eUsuaJgCA+IGthbmRva29yb1wgOwor5LqM6YGTID4gZnV0YW1pY2hpXCA7CivoiLnkuLsgPiBmdW5hbnVzaGlcIDsKK+mjn+mAmiA+IHNob2t1dHN1dVwgOwor5a6i56iuID4ga3lha3VkYW5lXCA7Civos4romZAgPiB6b2t1Z3lha3VcIDsKK+S5s+mJoiA+IG55dXViYWNoaVwgOwor5pyI6aGNID4gZ2V0c3VnYWt1XCA7CivmnIjpoIMgPiB0c3VraWdvcm9cIDsKK+S9nOeUtyA+IHNha3VvdG9rb1wgOwor55S35b25ID4gb3Rva295YWt1XCA7CivkuIrptrIgPiBqb3ViaXRha2lcIDsKK+iFleaelSA+IHVkZW1ha3VyYVwgOwor6LWk54axID4gc2VraW5ldHN1XCA7CivoiIzlhYggPiBzaGl0YXNha2lcIDsKK+iFueaMgSA+IGhhcmFtb2NoaVwgOwor54+N6KqsID4gY2hpbnNldHN1XCA7Civku5jokL0gPiB0c3VrZW9jaGlcIDsKK+iFsOaOmyA+IGtvc2hpa2FrZVwgOwor5LmF6ZeKID4ga3l1dWthdHN1XCA7Civlr4bnjJ8gPiBtaXRzdXJ5b3VcIDsKK+eUs+W5tCA+IHNhcnVkb3NoaVwgOwor5p2Q6LOqID4gemFpc2hpdHN1XCA7Civmnb7onYkgPiBtYXRzdXplbWlcIDsKK+S6rOihqCA+IGt5b3VvbW90ZVwgOwor6ISa5rOoID4ga3lha3VjaHV1XCA7CivmooXmmqYgPiB1bWVnb3lvbWlcIDsKK+S9nOeJqSA+IHNha3Vtb3RzdVwgOwor6LOe572wID4gc2hvdWJhdHN1XCA7CivlrZDnvoogPiBrb2hpdHN1amlcIDsKK+WupOeUuiA+IG11cm9tYWNoaVwgOwor5bCP5puyID4gc2hvdWt5b2t1XCA7CivmpJzlh7ogPiBrZW5zaHV0c3VcIDsKK+S/iuaKnCA+IHNodW5iYXRzdVwgOwor5a+G5ryBID4gbWl0c3VyeW91XCA7CivogonnrYYgPiBuaWt1aGl0c3VcIDsKK+iFsOW8sSA+IGtvc2hpeW93YVwgOwor6IOG546JID4ga2ltb3R0YW1hXCA7Civmnb7ojLggPiBtYXRzdXRha2VcIDsKK+ahnOahgyA+IHNha3VyYW5ib1wgOwor5a+C5ruFID4gamFrdW1ldHN1XCA7CivmnKzos6ogPiBob25zaGl0c3VcIDsKK+S7lOe+iiA+IGtvaGl0c3VqaVwgOwor55Sj5a6kID4gc2Fuc2hpdHN1XCA7CivohbDluIMgPiBrb3NoaW51bm9cIDsKK+iFsOW3uyA+IGtvc2hpbWFraVwgOwor5L2D54WuID4gdHN1a3VkYW5pXCA7CivkvrXmjqAgPiBzaGlucnlha3VcIDsKK+ahgeapiyA+IGtldGFiYXNoaVwgOwor5py06KilID4gYm9rdXRvdHN1XCA7Civpo5/omasgPiBzaG9rdWNodXVcIDsKK+advuiEgiA+IG1hdHN1eWFuaVwgOwor5LiD6ZujID4gc2hpY2hpbmFuXCA7CivkvY7mub8gPiB0ZWlzaGl0c3VcIDsKK+eUt+WdgiA+IG90b2tvemFrYVwgOwor5a6/5rOKID4gc2h1a3VoYWt1XCA7CivkvK/niLUgPiBoYWt1c2hha3VcIDsKK+aik+W8kyA+IGF6dXNheXVtaVwgOwor6aSF6IKMID4gbW9jaGloYWRhXCA7CivlsYXlrqQgPiBreW9zaGl0c3VcIDsKK+acqOiopSA+IGJva3V0b3RzdVwgOwor6aGN6ZqbID4gaGl0YWlnaXdhXCA7CivnlZnliKUgPiByeXV1YmV0c3VcIDsKK+S/oeWunyA+IHNoaW5qaXRzdVwgOwor6LSI54mpID4gb2t1cmltb25vXCA7Civpp5Dml6UgPiBjaHV1bmljaGlcIDsKK+afv+a4iyA+IGtha2lzaGlidVwgOwor5LiL6YeRID4gc2hpdGFnYW5lXCA7CivkuK3otoogPiBjaHV1Z29zaGlcIDsKK+WqkuizqiA+IGJhaXNoaXRzdVwgOwor5Lm+6I2JID4gaG9zaGlndXNhXCA7CivnkLTniKogPiBrb3RvZHp1bWVcIDsKK+iFsOWeoyA+IGtvc2hpZ2FraVwgOwor5L+C5a6YID4ga2FrYXJpa2FuXCA7CivohIjmkI8gPiBteWFrdWhha3VcIDsKK+eOieiZqyA+IHRhbWFtdXNoaVwgOwor55Sf5ZS+ID4gbmFtYXRzdWJhXCA7Civpo5/ogokgPiBzaG9rdW5pa3VcIDsKK+advuesoCA+IG1hdHN1a2FzYVwgOwor6ISI5ouNID4gbXlha3VoYWt1XCA7CivkuIPpgZMgPiBzaGljaGlkb3VcIDsKK+eUs+WFpSA+IG1vdXNoaWlyZVwgOwor5a6i5qeYID4ga3lha3VzYW1hXCA7CivkubPoibIgPiBueXV1c2hva3VcIDsKK+absuiqvyA+IGt5b2t1Y2hvdVwgOwor5YCf5Li7ID4ga2FyaW51c2hpXCA7Civkub7ogokgPiBob3NoaW5pa3VcIDsKK+Wuv+aWmSA+IHNodWt1cnlvdVwgOwor5a6f5qWtID4gaml0c3VneW91XCA7Civlrr/mlbUgPiBzaHVrdXRla2lcIDsKK+S4g+i8qiA+IHNoaWNoaXJpblwgOwor55Sj5Ye6ID4gc2Fuc2h1dHN1XCA7CivkvZXml6UgPiBuYW4nJ25pY2hpXCA7Civos6rngrkgPiBzaGl0c3V0ZW5cIDsKK+iEs+WupCA+IG5vdXNoaXRzdVwgOwor5bGx5LyPID4geWFtYWJ1c2hpXCA7Civlrp/moKogPiBqaXRzdWthYnVcIDsKK+S+teWlqiA+IHNoaW5kYXRzdVwgOwor55S65LitID4gbWFjaGluYWthXCA7CivnlLrkuKYgPiBtYWNoaW5hbWlcIDsKK+S4iuizqiA+IGpvdXNoaXRzdVwgOwor5LiL6LK8ID4gc2hpdGFiYXJpXCA7Civpo5/ntIUgPiBzaG9rdWJlbmlcIDsKK+S+oOWuoiA+IGt5b3VreWFrdVwgOwor5pu06KGjID4ga29yb21vZ2FlXCA7Civpo5/ns6cgPiBzaG9rdXJ5b3VcIDsKK+S4reihqCA+IG5ha2FvbW90ZVwgOwor5bCP5aeRID4ga29qdXV0b21lXCA7CivmoIPmnKggPiB0b2NoaW5va2lcIDsKK+iEguaApyA+IGFidXJhc2hvdVwgOwor5YCJ5Li7ID4ga3VyYW51c2hpXCA7CivkuIPos6IgPiBzaGljaGlrZW5cIDsKK+Wwu+WPliA+IHNoaXJpdG9yaVwgOwor5qC85byPID4ga2FrdXNoaWtpXCA7CivmmLzps7YgPiBoaXJ1dG9uYmlcIDsKK+S6ruebtCA+IHJ5b3VjaG9rdVwgOwor5pqi6YGUID4gY2hvdXRhdHN1XCA7CivohbDlhYMgPiBrb3NoaW1vdG9cIDsKK+iEh+W3riA+IHdha2l6YXNoaVwgOwor5p2J5664ID4gc3VnaWJhc2hpXCA7Civku5jnhLwgPiB0c3VrZXlha2lcIDsKK+WtpuauliA+IGdha3VzaG9rdVwgOwor5qCq5byPID4ga2FidXNoaWtpXCA7Civmn4/mp5kgPiBieWFrdXNoaW5cIDsKK+eLrOmFjCA+IGRva3VzaGFrdVwgOwor5a+F5bm0ID4gdG9yYWRvc2hpXCA7Civos6rmqKkgPiBzaGljaGlrZW5cIDsKK+Wwj+WShCA+IGtvYmFuYXNoaVwgOwor5Li46IWwID4gbWFydWdvc2hpXCA7CivmmLzpo68gPiBoaXJ1bWVzaGlcIDsKK+S8kOacqCA+IGJhdHN1Ym9rdVwgOwor5L+K5YKRID4gc2h1bmtldHN1XCA7CivogbfmrbQgPiBzaG9rdXJla2lcIDsKK+S5i+e5niA+IHNoaW4nJ255dXVcIDsKK+aetuapiyA+IGtha2VoYXNoaVwgOwor5p+P5pyoID4ga2FzaGl3YWdpXCA7Civku67mqYsgPiBrYXJpYmFzaGlcIDsKK+ixhueykiA+IG1hbWV0c3VidVwgOwor5LyR5pelID4ga3l1dWppdHN1XCA7CivkuK3ohbAgPiBjaHV1Z29zaGlcIDsKK+S4iuiWrCA+IHV3YWd1c3VyaVwgOwor5a+G5a6kID4gbWlzc2hpdHN1XCA7Civnjonnq6AgPiBneW9rdXNob3VcIDsKK+S+teWFpSA+IHNoaW4nJ255dXVcIDsKK+Wuv+WwhiA+IHNodWt1c2hvdVwgOwor5bCG5Y2SID4gc2hvdXNvdHN1XCA7CivkuKHoiIwgPiByeW91emV0c3VcIDsKK+iBt+alrSA+IHNob2t1Z3lvdVwgOwor5bCO5Ye6ID4gZG91c2h1dHN1XCA7Civlrr/lraYgPiBzaHVrdWdha3VcIDsKK+Wwj+WGiiA+IHNob3VzYXRzdVwgOwor5Lih6ISaID4gcnlvdWt5YWt1XCA7CivohLHlh7ogPiBkYXNzaHV0c3VcIDsKK+WuouW4rSA+IGt5YWt1c2VraVwgOwor5LiL6I2JID4gc2hpdGFrdXNhXCA7CivlsITlh7ogPiBzaGFzaHV0c3VcIDsKK+aapuihkyA+IHJla2lqdXRzdVwgOwor5py055u0ID4gYm9rdWNob2t1XCA7CivotaTlnJ8gPiBha2F0c3VjaGlcIDsKK+iEheWWnSA+IGt5b3VrYXRzdVwgOwor5Lit57W2ID4gY2h1dXpldHN1XCA7CivkuIvohbkgPiBzaGl0YWJhcmFcIDsKK+iEseS/lyA+IGRhdHN1em9rdVwgOwor5p+P5omLID4ga2FzaGl3YWRlXCA7Civkub7niakgPiBob3NoaW1vbm9cIDsKK+Wun+WtpiA+IGppdHN1Z2FrdVwgOwor5qGf5L+1ID4gc2FuZGF3YXJhXCA7CivnjJ/oibIgPiByeW91c2hva3VcIDsKK+S4gOiEiCA+IGljaGlteWFrdVwgOwor6LWk5Y+jID4gc2VraWd1Y2hpXCA7CivkuK3nq4sgPiBjaHV1cml0c3VcIDsKK+iBt+aOjCA+IHNob2t1c2hvdVwgOwor5a6k5aSWID4gc2hpdHN1Z2FpXCA7Civlr5LljbUgPiBrYW50YW1hZ29cIDsKK+WztuOAhSA+IHNoaW1hamltYVwgOwor6LOq5oSfID4gc2hpdHN1a2FuXCA7CivmoLzliKUgPiBrYWt1YmV0c3VcIDsKK+aguOWKmyA+IGtha3VyeW9rdVwgOwor5Lih56uvID4gcnlvdWhhc2hpXCA7CivkuKHnq4sgPiByeW91cml0c3VcIDsKK+iAkOa5vyA+IHRhaXNoaXRzdVwgOwor5LiL57SQID4gc2hpdGFoaW1vXCA7Civku4rml6UgPiBrb24nJ25pY2hpXCA7Civml6npo68gPiBoYXlhbWVzaGlcIDsKK+iyuOaWuSA+IGthc2hpa2F0YVwgOwor5Lm+5rm/ID4ga2Fuc2hpdHN1XCA7CivpoY3nuIEgPiBnYWt1YnVjaGlcIDsKK+S4gOeykiA+IGhpdG90c3VidVwgOwor5auh5rWBID4gY2hha3VyeXV1XCA7Civmm7Lnm64gPiBreW9rdW1va3VcIDsKK+mjn+assiA+IHNob2t1eW9rdVwgOwor5p+05Z6jID4gc2hpYmFnYWtpXCA7Civkuq7mnIggPiByeW91Z2V0c3VcIDsKK+S4i+epvyA+IHNoaXRhYmFraVwgOwor5LiA56+AID4gaGl0b2Z1c2hpXCA7CivpnanpnbQgPiBrYXdhZ3V0c3VcIDsKK+S4reeVpSA+IGNodXVyeWFrdVwgOwor54q26KKLID4gam91YnVrdXJvXCA7Civnianph48gPiBidXRzdXJ5b3VcIDsKK+acq+a1gSA+IG1hdHN1cnl1dVwgOwor5qCq5Li7ID4ga2FidW51c2hpXCA7CivkuIvnn7MgPiBzaGl0YWlzaGlcIDsKK+mjr+aZgiA+IG1lc2hpZG9raVwgOwor5L2c5LuYID4gc2FrdWR6dWtlXCA7CivkuIrnnrwgPiB1d2FtYWJ1dGFcIDsKK+S8r+WPlCA+IGhha3VzaHVrdVwgOwor54iq6Z2pID4gdHN1bWFrYXdhXCA7CivlrqTlhoUgPiBzaGl0c3VuYWlcIDsKK+Wuv+S4uyA+IHlhZG9udXNoaVwgOwor5LmF5r+2ID4ga3l1dWthdHN1XCA7CivkuozmnIggPiBmdXRhdHN1a2lcIDsKK+aXpemMsiA+IG5pY2hpcm9rdVwgOwor5LiA556lID4gaWNoaWJldHN1XCA7Civku6TlrqQgPiByZWlzaGl0c3VcIDsKK+S9k+S4rSA+IGthcmFkYWp1dVwgOwor5Luy5aW9ID4gbmFrYXlvc2hpXCA7Civpo5/mlpkgPiBzaG9rdXJ5b3VcIDsKK+iqv+mrqiA+IGNob3VoYXRzdVwgOwor54mp6LOqID4gYnVzc2hpdHN1XCA7Civml6npgZMgPiBoYXlhbWljaGlcIDsKK+aWsOmbqiA+IHNoaW5zZXRzdVwgOwor54mH6YGTID4ga2F0YW1pY2hpXCA7CivnibnoqK0gPiB0b2t1c2V0c3VcIDsKK+S7j+WtpiA+IGJ1dHN1Z2FrdVwgOwor6Zyy6ZycID4gdHN1eXVqaW1vXCA7CivmnK3mnZ8gPiBzYXRzdXRhYmFcIDsKK+Wkj+mzpSA+IG5hdHN1ZG9yaVwgOwor6LOq5ZWPID4gc2hpdHN1bW9uXCA7Civni6znq4sgPiBkb2t1cml0c3VcIDsKK+aciOasoSA+IHRzdWtpbmFtaVwgOwor6Kys6KqsID4gYnl1dXNldHN1XCA7CivlrabljZIgPiBnYWt1c290c3VcIDsKK+absua1gSA+IGt5b2t1cnl1dVwgOwor6aOf5oW+ID4gc2hva3V5b2t1XCA7CivkuIDniakgPiBpY2hpbW90c3VcIDsKK+WltOi8qSA+IHlhdHN1YmFyYVwgOwor5a2m5YqbID4gZ2FrdXJ5b2t1XCA7Civkuq7lr58gPiByeW91c2F0c3VcIDsKK+S4reasoSA+IG5ha2F0c3VnaVwgOwor6LOq5Yi4ID4gc2hpY2hpa2VuXCA7CivlraTlhZAgPiBtaW5hc2hpZ29cIDsKK+aXp+itmCA+IGt5dXVzaGlraVwgOwor5Lq65aa7ID4gaGl0b2R6dW1hXCA7CivmlrDph4ggPiBzaGluc2hha3VcIDsKK+aXpeirviA+IG5pY2hpZGFrdVwgOwor5pen6KqsID4ga3l1dXNldHN1XCA7CivogqHkuIsgPiBtYXRhc2hpdGFcIDsKK+ePjeWuoiA+IGNoaW5reWFrdVwgOwor5aSW6Z2iID4gc290b2R6dXJhXCA7CivmmKXoibIgPiBzaHVuc2hva3VcIDsKK+e/jOaciCA+IHlva3VnZXRzdVwgOwor6IG05YqbID4gY2hvdXJ5b2t1XCA7CivkuqzlpbMgPiBreW91b24nJ25hXCA7CivkuLLmn78gPiBrdXNoaWdha2lcIDsKK+S5neaKmCA+IGt5dXVzZXRzdVwgOwor57+M5pelID4geW9rdWppdHN1XCA7Civmlp/phYwgPiBzaGluc2hha3VcIDsKK+S4oealtSA+IHJ5b3VreW9rdVwgOwor5LuP5ZCNID4gYnV0c3VteW91XCA7CivnibnoibIgPiB0b2t1c2hva3VcIDsKK+S6oeWksSA+IGJvdXNoaXRzdVwgOwor6aOf5a6iID4gc2hva2t5YWt1XCA7CivniLbopqogPiBjaGljaGlveWFcIDsKK+S7ruS9jyA+IGthcml6dW1haVwgOwor5LqG5a+fID4gcnlvdXNhdHN1XCA7Civpm6rpnbQgPiB5dWtpZ3V0c3VcIDsKK+ePvuWHuiA+IGdlbnNodXRzdVwgOwor5LuP5YqbID4gYnV0c3VyaWtpXCA7Civoqr/pgZQgPiBjaG91dGF0c3VcIDsKK+S4i+anmCA+IHNoaW1vemFtYVwgOwor57mw6LaKID4ga3VyaWtvc2hpXCA7CivnianohbAgPiBtb25vZ29zaGlcIDsKK+S4ieakjyA+IG1pdHN1bWF0YVwgOwor5Lih5pelID4gcnlvdWppdHN1XCA7Civmnb7ljp8gPiBtYXRzdWJhcmFcIDsKK+izg+WAnyA+IGNoaW5zaGFrdVwgOwor54af6aOfID4ganVrdXNob2t1XCA7CivmlrDoqqwgPiBzaGluc2V0c3VcIDsKK+S7mOS6uiA+IHRzdWtlYml0b1wgOwor5paw6KizID4gc2hpbicneWFrdVwgOwor5paw6KitID4gc2hpbnNldHN1XCA7CivnjonlsIYgPiBneW9rdXNob3VcIDsKK+aciOW9sSA+IHRzdWtpa2FnZVwgOwor5pyI5b2iID4gdHN1a2lnYXRhXCA7CivkuIPmm5wgPiBzaGljaGl5b3VcIDsKK+S4gOaciCA+IGhpdG90c3VraVwgOwor5aSp6LOqID4gdGVuc2hpdHN1XCA7CivkuIvmlbcgPiBzaGl0YWppa2lcIDsKK+S4g+aYnyA+IHNoaWNoaXNlaVwgOwor5pif56m6ID4gaG9zaGl6b3JhXCA7CivnibnnrYYgPiB0b2t1aGl0c3VcIDsKK+S4gOaXpSA+IHRzdWl0YWNoaVwgOwor5Lq65LydID4gaGl0b2R6dXRlXCA7Civni5DngasgPiBraXRzdW5lYmlcIDsKK+eIhuijgiA+IGJha3VyZXRzdVwgOwor54m556uLID4gdG9rdXJpdHN1XCA7Civkurrku5ggPiBoaXRvZHp1a2lcIDsKK+mdkuiQjSA+IGFvdWtpa3VzYVwgOwor5aSx6KiAID4gc2hpdHN1Z2VuXCA7Civpm6rpgZMgPiB5dWtpbWljaGlcIDsKK+mbkemMsiA+IHphdHN1cm9rdVwgOwor5aWz6IW5ID4gb24nJ25hYmFyYVwgOwor6aOf5Y2TID4gc2hva3V0YWt1XCA7CivnhrHph48gPiBuZXRzdXJ5b3VcIDsKK+mbqui+sSA+IHNldHN1am9rdVwgOwor5paw6JasID4gc2hpbicneWFrdVwgOwor6aCt5qCqID4gYXRhbWFrYWJ1XCA7CivlpLHooYAgPiBzaGlra2V0c3VcIDsKK+aapuaciCA+IHJla2lnZXRzdVwgOwor5aSJ6LOqID4gaGVuc2hpdHN1XCA7Civpo5/lh7ogPiBoYW1pZGFzaGlcIDsKK+WknOipsSA+IHlvYmFuYXNoaVwgOwor5LiA5oq5ID4gaWNoaW1hdHN1XCA7CivlpKnooosgPiB0ZW5idWt1cm9cIDsKK+mdtOe0kCA+IGt1dHN1aGltb1wgOwor5pqm5pelID4gcmVraWppdHN1XCA7CivoqbPov7AgPiBzaG91anV0c3VcIDsKK+mjn+WCtyA+IHNob2t1c2hvdVwgOwor54m555m6ID4gdG9rdWhhdHN1XCA7CivpnbTnr6YgPiBrdXRzdWJlcmFcIDsKK+S4i+W9uSA+IHNoaXRheWFrdVwgOwor5Lih5bK4ID4gcnlvdWdpc2hpXCA7Civmm7LlraYgPiBreW9rdWdha3VcIDsKK+eGn+mBlCA+IGp1a3V0YXRzdVwgOwor6Z20566GID4ga3V0c3ViZXJhXCA7CivkuJHlubQgPiB1c2hpZG9zaGlcIDsKK+mcsuiNiSA+IHRzdXl1a3VzYVwgOwor6KmV6YeIID4gaHlvdXNoYWt1XCA7CivkuIDlvosgPiBpY2hpcml0c3VcIDsKK+eJqeeZgiA+IGJ1dHN1cnlvdVwgOwor6aKo5Y+jID4ga2F6YWd1Y2hpXCA7CivlpI/onYkgPiBuYXRzdXplbWlcIDsKK+mcnuiNiSA+IGthc3VtaXNvdVwgOwor54mn55WcID4gYm9rdWNoaWt1XCA7Civoqr/oibIgPiBjaG91c2hva3VcIDsKK+eEvOmkhSA+IHlha2ltb2NoaVwgOwor5pyr5YOaID4gYmF0c3VyeW91XCA7CivoqLvph4ggPiBjaHV1c2hha3VcIDsKK+ips+iqrCA+IHNob3VzZXRzdVwgOwor5paw57eRID4gc2hpbnJ5b2t1XCA7CivlpLHohJogPiBzaGlra3lha3VcIDsKK+WkseiBtyA+IHNoaXNzaG9rdVwgOwor5paw57SEID4gc2hpbicneWFrdVwgOwor5aSP6I+KID4gbmF0c3VnaWt1XCA7CivnuJ7om4cgPiBzaGltYWhlYmlcIDsKK+S4reWTsiA+IGNodXV0ZXRzdVwgOwor6Kiz6L+wID4geWFrdWp1dHN1XCA7CivmlrDnr4kgPiBzaGluY2hpa3VcIDsKK+Wkj+iNiSA+IG5hdHN1Z3VzYVwgOwor546J5LiyID4gdGFtYWd1c2hpXCA7CivkuK3lj6MgPiBuYWthZ3VjaGlcIDsKK+Wls+eZliA+IG9uJyduYWd1c2VcIDsKK+WnpeahnCA+IHViYXpha3VyYVwgOwor5Lit5Y2SID4gY2h1dXNvdHN1XCA7CivkuIvlnYIgPiBzaGltb3Nha2FcIDsKK+miqOS4iyA+IGthemFzaGltb1wgOwor6Zye57ayID4ga2FzdW1pYW1pXCA7CivkuKHlj6MgPiByeW91Z3VjaGlcIDsKK+eIqueariA+IHRzdW1ha2F3YVwgOwor54iG56u5ID4gYmFrdWNoaWt1XCA7Civml6Xni6wgPiBuaWNoaWRva3VcIDsKK+aXp+eJqSA+IGt5dXVidXRzdVwgOwor542j5YGPID4ga2Vtb25vaGVuXCA7CivpnLLnqIsgPiB0c3V5dWhvZG9cIDsKK+iqv+evgCA+IGNob3VzZXRzdVwgOwor6aCt5a2XID4ga2FzaGlyYWppXCA7CivnjYTljZIgPiBnb2t1c290c3VcIDsKK+e1pumjnyA+IGt5dXVzaG9rdVwgOwor5LiU5Y+IID4ga2F0c3VtYXRhXCA7CivmnIjkuKYgPiB0c3VraW5hbWlcIDsKK+eJqea1gSA+IGJ1dHN1cnl1dVwgOwor5Lih5Ye4ID4gcnlvdXRvdHN1XCA7CivpmbPov7AgPiBjaGluanV0c3VcIDsKK+aWsOedgCA+IHNoaW5jaGFrdVwgOwor5aWz54mpID4gb24nJ25hbW9ub1wgOwor5LiN5Y2wID4gZnVqaXJ1c2hpXCA7Civmm7jku5ggPiBrYWtpdHN1a2VcIDsKK+ipsOiNiSA+IHRzdW1la3VzYVwgOwor5Lit5L2NID4gY2h1dWd1cmFpXCA7CivnhoronIIgPiBrdW1hYmFjaGlcIDsKK+aVmeiBtyA+IGt5b3VzaG9rdVwgOwor5aSx56S8ID4gc2hpdHN1cmVpXCA7CivkuIPljpggPiBzaGljaGlyaW5cIDsKK+eJqeassiA+IGJ1dHN1eW9rdVwgOwor5LiA5Y+jID4gaGl0b2t1Y2hpXCA7Civmk4LpiaIgPiBzdXJpYmFjaGlcIDsKK+eIhueZuiA+IGJha3VoYXRzdVwgOwor5pio5pelID4gc2FrdWppdHN1XCA7CivnuK7ntIQgPiBzaHVrdXlha3VcIDsKK+WkseedgCA+IHNoaXRjaGFrdVwgOwor5LiA5YilID4gaWNoaWJldHN1XCA7CivkuIDliJcgPiBpY2hpcmV0c3VcIDsKK+S4i+WBtCA+IHNoaXRhZ2F3YVwgOwor6ZuA6ImyID4gc3V6dW1laXJvXCA7CivkuIDlhLIgPiBoaXRvbW91a2VcIDsKK+aXj+a7hSA+IHpva3VtZXRzdVwgOwor5LiL5L2cID4gc2hpdGFzYWt1XCA7Civoqr/nlaUgPiBjaG91cnlha3VcIDsKK+aYlOaXpSA+IHNla2lqaXRzdVwgOwor5pat54axID4gZGFuJyduZXRzdVwgOwor5piO5pelID4gbXlvdW5pY2hpXCA7CivkuIvkuIsgPiBzaGltb2ppbW9cIDsKK+aVt+efsyA+IHNoaWtpaXNoaVwgOwor54m55pKuID4gdG9rdXNhdHN1XCA7CivopqrplrIgPiBzaGluJydldHN1XCA7CivpoZjkuosgPiBuZWdhaWdvdG9cIDsKK+mgu+WHuiA+IGhpbnNodXRzdVwgOwor57ay6KKLID4gYW1pYnVrdXJvXCA7CivmlpnnjocgPiByeW91cml0c3VcIDsKK+inkumAkCA+IGtha3VjaGlrdVwgOwor5LiD5LiJID4gc2hpY2hpc2FuXCA7CivntLDpnaIgPiBob3Nvb21vdGVcIDsKK+mbhue1kCA+IHNodXVrZXRzdVwgOwor6KW/6aKoID4gbmlzaGlrYXplXCA7CivlpI/nl6kgPiBuYXRzdXlhc2VcIDsKK+eJqeaMhyA+IG1vbm9zYXNoaVwgOwor5pif5b2xID4gaG9zaGlrYWdlXCA7Civni6zlipsgPiBkb2t1cnlva3VcIDsKK+inpuiouiA+IHNob2t1c2hpblwgOwor5aO655q/ID4gdHN1Ym96YXJhXCA7CivnvarkurogPiB0c3VtaWJpdG9cIDsKK+eJqeaFviA+IGJ1dHN1eW9rdVwgOwor5pW354mpID4gc2hpa2ltb25vXCA7Civpm6rnlLcgPiB5dWtpb3Rva29cIDsKK+Wkj+eJqSA+IG5hdHN1bW9ub1wgOwor57Wx6KiIID4gYmFyYXRzdWtpXCA7CivlpbPmlrkgPiBvbicnbmFnYXRhXCA7CivmlrDmqYsgPiBzaGluYmFzaGlcIDsKK+eGseeXhSA+IG5ldHN1YnlvdVwgOwor6Zu754axID4gZGVuJyduZXRzdVwgOwor5pif5bGRID4gaG9zaGlrdXp1XCA7CivpmpTntbYgPiBrYWt1emV0c3VcIDsKK+eLrOS7jyA+IGRva3VmdXRzdVwgOwor5aa75a6kID4gc2Fpc2hpdHN1XCA7CivnianlubIgPiBtb25vaG9zaGlcIDsKK+e0sOmBkyA+IGhvc29taWNoaVwgOwor57On6aOfID4gcnlvdXNob2t1XCA7Civnianlt64gPiBtb25vc2FzaGlcIDsKK+eGseeQgyA+IG5ldHN1a3l1dVwgOwor57ie54mpID4gc2hpbWFtb25vXCA7CivmlrDmnpUgPiBuaWltYWt1cmFcIDsKK+e1puihgCA+IGt5dXVrZXRzdVwgOwor5paw5pytID4gc2hpbnNhdHN1XCA7CivmlrDmnIggPiBzaGluZ2V0c3VcIDsKK+aWsOabsiA+IHNoaW5reW9rdVwgOwor5pen5byPID4ga3l1dXNoaWtpXCA7CivoqbDniakgPiB0c3VtZW1vbm9cIDsKK+eDj+iynSA+IGthcmFzdWdhaVwgOwor6Z205bqVID4ga3V0c3V6b2tvXCA7Civml6flubQgPiBmdXJ1dG9zaGlcIDsKK+aYn+WeiyA+IGhvc2hpZ2F0YVwgOwor6ZW36auqID4gY2hvdWhhdHN1XCA7CivlpbPlvaIgPiBvbicnbmFnYXRhXCA7CivlpLHmnJsgPiBzaGl0c3Vib3VcIDsKK+eEvOe1kCA+IHNob3VrZXRzdVwgOwor5aG157SZID4gY2hpcmlnYW1pXCA7CivlpLHmmI4gPiBzaGl0c3VtZWlcIDsKK+e0meizqiA+IHNoaXNoaXRzdVwgOwor6Zuq5rKTID4geXVraWd1dHN1XCA7CivmlofmnIggPiBmdW1pZHp1a2lcIDsKK+eCreizqiA+IHRhbnNoaXRzdVwgOwor6KqF5q66ID4gY2h1dXNhdHN1XCA7CivlpKfmmJQgPiBvb211a2FzaGlcIDsKK+mVt+mdtCA+IG5hZ2FndXRzdVwgOwor57O46LuKID4gaXRvZ3VydW1hXCA7CivlpJzmmZIgPiB5b3phcmFzaGlcIDsKK+Wkj+acjSA+IG5hdHN1ZnVrdVwgOwor6Z205aKoID4ga3V0c3V6dW1pXCA7Civoo7jppqwgPiBoYWRha2F1bWFcIDsKK+WmueWIhiA+IGltb3V0b2J1blwgOwor5pel5aKoID4gbmljaGlib2t1XCA7CivmlrDlvI8gPiBzaGluc2hpa2lcIDsKK+Wkj+aZgiA+IG5hdHN1ZG9raVwgOwor54K46KOCID4gc2FrdXJldHN1XCA7CivnibnliKUgPiB0b2t1YmV0c3VcIDsKK+ikh+mbkSA+IGZ1a3V6YXRzdVwgOwor6Z205Z6LID4ga3V0c3VnYXRhXCA7CivnspLpo58gPiByeXV1c2hva3VcIDsKK+e1kOiGnCA+IGtldHN1bWFrdVwgOwor57ie5p+EID4gc2hpbWFnYXJhXCA7CivlpLHmgYsgPiBzaGl0c3VyZW5cIDsKK+WkseW/tSA+IHNoaXRzdW5lblwgOwor6Zuo5puHID4gYW1hZ3Vtb3JpXCA7CivoqZXmsbogPiBoeW91a2V0c3VcIDsKK+iqv+W+iyA+IGNob3VyaXRzdVwgOwor5aWz5Z2CID4gb24nJ25hemFrYVwgOwor57aa55m6ID4gem9rdWhhdHN1XCA7Civpm5HmoKogPiB6YXRzdWthYnVcIDsKK+irkuWvnyA+IHJ5b3VzYXRzdVwgOwor54mb5Yi6ID4gZ3l1dXNhc2hpXCA7Civln7fokZcgPiBzaHV1Y2hha3VcIDsKK+aXqeWPoyA+IGhheWFrdWNoaVwgOwor57OW6LOqID4gdG91c2hpdHN1XCA7CivniYflj6MgPiBrYXRha3VjaGlcIDsKK+e0sOiFsCA+IGhvc29nb3NoaVwgOwor6ZuG5pytID4gc2h1dXNhdHN1XCA7Civml6Xlh7ogPiBuaXNzaHV0c3VcIDsKK+e1gue1kCA+IHNodXVrZXRzdVwgOwor5Z2q6YePID4gdHN1Ym9yeW91XCA7CivlpbTlh6cgPiB5YWtrb2Rha29cIDsKK+imquethiA+IHNoaW5waXRzdVwgOwor57a/5rK5ID4gd2F0YWFidXJhXCA7CivnhLbnhLYgPiBzaGlrYWppa2FcIDsKK+eEpueGsSA+IHNob3VuZXRzdVwgOwor5aSP5bGxID4gbmF0c3V5YW1hXCA7CivniKrliIcgPiB0c3VtZWtpcmlcIDsKK+aUv+aJgCA+IG1hbmRva29yb1wgOwor5pWZ5byPID4ga3lvdXNoaWtpXCA7CivniKrlhYggPiB0c3VtYXNha2lcIDsKK+Whqea8rCA+IHNoaW9kenVrZVwgOwor57iu5bCPID4gc2h1a3VzaG91XCA7CivkuIvjgIUgPiBzaGltb2ppbW9cIDsKK+WllOWHuiA+IGhvbnNodXRzdVwgOwor6ZqU5pyIID4ga2FrdWdldHN1XCA7CivmkoPnmbogPiBnZWtpaGF0c3VcIDsKK+Wft+ethiA+IHNoaXBwaXRzdVwgOwor6ZqU5pelID4ga2FrdWppdHN1XCA7CivmlrDlhaUgPiBzaGluJydueXV1XCA7CivmlqXlipsgPiBzZWtpcnlva3VcIDsKK+e1gueZuiA+IHNodXVoYXRzdVwgOwor5aSx5ZG9ID4gc2hpdHN1bWVpXCA7CivlnYLpgZMgPiBzYWthbWljaGlcIDsKK+WkseWQjSA+IHNoaXRzdW1laVwgOwor5pKy5ruFID4gYm9rdW1ldHN1XCA7CivoqbPlr58gPiBzaG91c2F0c3VcIDsKK+mbquWlsyA+IHl1a2lvbicnbmFcIDsKK+ips+WvhiA+IHNob3VtaXRzdVwgOwor6ZuR5a2mID4gemF0c3VnYWt1XCA7CivpmLLmub8gPiBib3VzaGl0c3VcIDsKK+Wdh+izqiA+IGtpbnNoaXRzdVwgOwor5Z+3552AID4gc2h1dWNoYWt1XCA7Civng4/nk5wgPiBrYXJhc3V1cmlcIDsKK+aSsuauuiA+IGJva3VzYXRzdVwgOwor5pGY55m6ID4gdGVraWhhdHN1XCA7CivlpI/lkJEgPiBuYXRzdW11a2lcIDsKK+aNqOmJoiA+IHN1dGViYWNoaVwgOwor5Zyw6LOqID4gY2hpc2hpdHN1XCA7CivloIXniakgPiBrYXRhYnV0c3VcIDsKK+WbvemJhCA+IGtva3V0ZXRzdVwgOwor6KeS5qi9ID4gdHN1bm9kYXJ1XCA7CivmkoPmu4UgPiBnZWtpbWV0c3VcIDsKK+ezp+enoyA+IHJ5b3VtYXRzdVwgOwor6Zqj5a6kID4gcmluc2hpdHN1XCA7CivoqLrlr58gPiBzaGluc2F0c3VcIDsKK+WkluS7mCA+IHNvdG9kenVrZVwgOwor5aSP5L2cID4gbmF0c3VzYWt1XCA7CivnhaflsLogPiBzaG91c2hha3VcIDsKK+mbquWFjiA+IHl1a2l1c2FnaVwgOwor57WC5rG6ID4gc2h1dWtldHN1XCA7CivopbLniLUgPiBzaHV1c2hha3VcIDsKK+imhua7hSA+IGZ1a3VtZXRzdVwgOwor5aKo5aO3ID4gc3VtaXRzdWJvXCA7CivoqoXkvJAgPiBjaHV1YmF0c3VcIDsKK+aUvuWHuiA+IGhvdXNodXRzdVwgOwor57WC5qW1ID4gc2h1dWt5b2t1XCA7Civoo7jnt5ogPiBoYWRha2FzZW5cIDsKK+imhuayoSA+IGZ1a3Vib3RzdVwgOwor54Wp5Z6LID4gdXJ1c2FnYXRhXCA7CivoqZTli4UgPiBzaG91Y2hva3VcIDsKK+aUr+WHuiA+IHNoaXNodXRzdVwgOwor57ai5a+GID4gY2h1dW1pdHN1XCA7CivntYTmm7IgPiBrdW1pa3lva3VcIDsKK+e1guacqyA+IHNodXVtYXRzdVwgOwor57WC5puyID4gc2h1dWt5b2t1XCA7CivntpnlrqQgPiBrZWlzaGl0c3VcIDsKK+WbveihqCA+IGt1bmlvbW90ZVwgOwor57WC5pelID4gc2h1dWppdHN1XCA7Civnt6DliIcgPiBzaGltZWtpcmlcIDsKK+Wcn+iJsiA+IHRzdWNoaWlyb1wgOwor5o6l57aaID4gc2V0c3V6b2t1XCA7CivnsbPnspIgPiBrb21ldHN1YnVcIDsKK+ezn+a8rCA+IGthc3VkenVrZVwgOwor57Kb55m9ID4gc2h1a3VoYWt1XCA7CivooZfop5IgPiBtYWNoaWthZG9cIDsKK+aSq+WtkCA+IG5hZGVzaGlrb1wgOwor57Og5rK5ID4gbnVrYWFidXJhXCA7CivplbfniakgPiBjaG91YnV0c3VcIDsKK+mZsOWPoyA+IGthZ2VndWNoaVwgOwor6Kaq5b+DID4gb3lhZ29rb3JvXCA7CivooYboqqwgPiBzaHV1c2V0c3VcIDsKK+e1tuWmmSA+IHpldHN1bXlvdVwgOwor57O45qGcID4gaXRvemFrdXJhXCA7CivpmbPliJcgPiBjaGlucmV0c3VcIDsKK+ezuOafsyA+IGl0b3lhbmFnaVwgOwor5Z+35ouXID4gc2hpdHN1eW91XCA7CivnhLzljbQgPiBzaG91a3lha3VcIDsKK+a/gOiBtyA+IGdla2lzaG9rdVwgOwor6Kaq5a+GID4gc2hpbm1pdHN1XCA7CivntYLlsYAgPiBzaHV1a3lva3VcIDsKK+etkumfsyA+IHRzdXRzdW90b1wgOwor57SL5omAID4gbW9uZG9rb3JvXCA7CivooovntrIgPiBmdWt1cm9hbWlcIDsKK+iogOS8nSA+IGtvdG9kenV0ZVwgOwor54Gr5p+xID4gaGliYXNoaXJhXCA7CivplqXml48gPiBiYXRzdXpva3VcIDsKK+iktuabsiA+IHNodXVreW9rdVwgOwor6KeS5Y+JID4gdHN1bm9tYXRhXCA7CivmipzpjKggPiBiYXRzdWJ5b3VcIDsKK+WbveeriyA+IGtva3VyaXRzdVwgOwor5r+A56qBID4gZ2VraXRvdHN1XCA7CivploDmnb4gPiBrYWRvbWF0c3VcIDsKK+aKnOmBkyA+IG51a2VtaWNoaVwgOwor6ZW35pyIID4gbmFnYXRzdWtpXCA7CivooYDogokgPiBrZXRzdW5pa3VcIDsKK+e0m+WksSA+IGZ1bnNoaXRzdVwgOwor5oyv57KbID4gc2hpbnNodWt1XCA7CivlnJ/niaIgPiB0c3VjaGlyb3VcIDsKK+a/gOeZuiA+IGdla2loYXRzdVwgOwor57Gz5rK5ID4ga29tZWFidXJhXCA7CivnrYvpgZMgPiBzdWppbWljaGlcIDsKK+evs+evpSA+IGhpY2hpcmlraVwgOwor6KGd56qBID4gc2hvdXRvdHN1XCA7CivopqrliIcgPiBzaGluc2V0c3VcIDsKK+exs+argyA+IGtvbWViaXRzdVwgOwor56uc6aqoID4gcnl1dWtvdHN1XCA7CivntZDkuoYgPiBrZXRzdXJ5b3VcIDsKK+aJmOmJoiA+IHRha3VoYXRzdVwgOwor6ZaP5bm0ID4gdXJ1dWRvc2hpXCA7CivnrYnos6ogPiB0b3VzaGl0c3VcIDsKK+WYseiolyA+IHNob2t1dGFrdVwgOwor56+A57SEID4gc2V0c3V5YWt1XCA7Civmv4Dng4ggPiBnZWtpcmV0c3VcIDsKK+ifh+ibmSA+IGhpa2lnYWVydVwgOwor6JyA6buNID4gbW9yb2tvc2hpXCA7CivooYDnnLwgPiBjaGltYW5ha29cIDsKK+euuOeusSA+IGhhc2hpYmFrb1wgOwor6KSH5byPID4gZnVrdXNoaWtpXCA7Civopb/lgbQgPiBuaXNoaWdhd2FcIDsKK+aQjeWksSA+IHNvbnNoaXRzdVwgOwor6ZeW5YWlID4gY2hpbicnbnl1dVwgOwor6JyC6bOlID4gaGFjaGlkb3JpXCA7CivngrrkvZMgPiB0ZWl0YXJha3VcIDsKK+aMkeeZuiA+IGNob3VoYXRzdVwgOwor5rq26LOqID4geW91c2hpdHN1XCA7CivngbDlnJ8gPiBoYWl0c3VjaGlcIDsKK+ijj+aJiSA+IHVyYXRvYmlyYVwgOwor5pCs5Ye6ID4gaGFuc2h1dHN1XCA7CivnspvlraYgPiBzaHVrdWdha3VcIDsKK+mWvuWApCA+IHNoaWtpaWNoaVwgOwor6KOP5oOFID4gdXJhbmFzYWtlXCA7Civon4fogqEgPiBrYWVydW1hdGFcIDsKK+ihgOeFmSA+IGNoaWtlbXVyaVwgOwor6KGo5rG6ID4gaHlvdWtldHN1XCA7Civmu5HokL0gPiBrYXRzdXJha3VcIDsKK+aMgeeJqSA+IG1vY2hpbW9ub1wgOwor6ZaA5Y+jID4ga2Fkb2d1Y2hpXCA7CivmvZznhrEgPiBzZW4nJ25ldHN1XCA7CivmjJ/mrrogPiBreW91c2F0c3VcIDsKK+ihqOacrSA+IGh5b3VzYXRzdVwgOwor6KGo5pu4ID4gb21vdGVnYWtpXCA7Civns4rku6MgPiBub3Jpc2hpcm9cIDsKK+eptOmamSA+IGtldHN1Z2VraVwgOwor6Yyv6ZuRID4gc2FrdXphdHN1XCA7CivlnKflr4YgPiBhdHN1bWl0c3VcIDsKK+WcqOWupCA+IHphaXNoaXRzdVwgOwor5rys54mpID4gdHN1a2Vtb25vXCA7CivonJzosYYgPiBtaXRzdW1hbWVcIDsKK+a8guedgCA+IGh5b3VjaGFrdVwgOwor5o+Q5Ye6ID4gdGVpc2h1dHN1XCA7Civmt7HpnbQgPiBmdWthZ3V0c3VcIDsKK+evgOassiA+IHNldHN1eW9rdVwgOwor6KKL5bivID4gZnVrdXJvb2JpXCA7CivlmLHnm64gPiBzaG9rdW1va3VcIDsKK+epgOmjnyA+IGtva3VzaG9rdVwgOwor56mN6ZuqID4gc2VraXNldHN1XCA7Civnr4DmppEgPiBmdXNoaWt1cmVcIDsKK+ihgOaXjyA+IGtldHN1em9rdVwgOwor562W55WlID4gc2FrdXJ5YWt1XCA7CivpjbzooZMgPiBzaGluanV0c3VcIDsKK+aMkeaSpSA+IGNob3VoYXRzdVwgOwor5ouT5q6WID4gdGFrdXNob2t1XCA7Civom5not7MgPiBrYWVydXRvYmlcIDsKK+aOkuWHuiA+IGhhaXNodXRzdVwgOwor5Zyn5YqbID4gYXRzdXJ5b2t1XCA7Civnq7nnrpIgPiB0YWtlYm91a2lcIDsKK+m8u+mdoiA+IGhhbmFkenVyYVwgOwor56u/56ekID4gc2FvYmFrYXJpXCA7Civoopblj6MgPiBzb2RlZ3VjaGlcIDsKK+aNu+WHuiA+IG5lbnNodXRzdVwgOwor6Yuz6YmEID4gY2h1dXRldHN1XCA7Civnq6Dnr4AgPiBzaG91c2V0c3VcIDsKK+WVk+ifhCA+IGtlaWNoaXRzdVwgOwor5raZ6ZuoID4gbmFtaWRhYW1lXCA7Civnr6Tlrp8gPiB0b2t1aml0c3VcIDsKK+mOluezuCA+IGt1c2FyaWl0b1wgOwor56a/6beyID4gaGFnZXdhc2hpXCA7CivooYDlsL8gPiBrZXRzdW55b3VcIDsKK+aHsue9sCA+IGNob3ViYXRzdVwgOwor5Zu95YqbID4ga29rdXJ5b2t1XCA7Civlm73liKUgPiBrdW5pYmV0c3VcIDsKK+aKveaWlyA+IGhpa2lkYXNoaVwgOwor5rW46aOfID4gc2hpbnNob2t1XCA7Civnr4nlsbEgPiB0c3VraXlhbWFcIDsKK+iiluS7mCA+IHNvZGV0c3VrZVwgOwor5om85q66ID4geWFrdXNhdHN1XCA7CivooYDloZcgPiBjaGltaWRvcm9cIDsKK+m6uem7tCA+IGtvdWppa2FiaVwgOwor5raZ6YeRID4gbmFtaWRha2luXCA7CivooYDlnKcgPiBrZXRzdWF0c3VcIDsKK+a9ruWigyA+IHNoaW96YWthaVwgOwor56if6LOqID4gaGluc2hpdHN1XCA7Civmub/nlLAgPiBzaGl0c3VkZW5cIDsKK+m7kumrqiA+IGtva3VoYXRzdVwgOwor5omT5raIID4gdWNoaWtlc2hpXCA7CivooajlgbQgPiBvbW90ZWdhd2FcIDsKK+ibmeiCoSA+IGthZXJ1bWF0YVwgOwor6ZCY5pKeID4ga2FuZXRzdWtpXCA7CivooYzliJcgPiBneW91cmV0c3VcIDsKK+eskeauuiA+IHNob3VzYXRzdVwgOwor5omN5qeMID4gc2FpZHp1Y2hpXCA7Civmub/mvaQgPiBzaGl0c3VqdW5cIDsKK+ihl+S4piA+IG1hY2hpbmFtaVwgOwor6by76KGdID4gaGFuYXRzdWtpXCA7CivmuIvntJkgPiBzaGlidWdhbWlcIDsKK+WTgeizqiA+IGhpbnNoaXRzdVwgOwor6byg6KybID4gbmV6dW1pa291XCA7Civpj6Hmnb8gPiBrYWdhbWlpdGFcIDsKK+epuueptCA+IGthcmFrZXRzdVwgOwor6bqm6aOvID4gbXVnaW1lc2hpXCA7Civpi7zoibIgPiBoYWdhbmVpcm9cIDsKK+aJleaagSA+IGZ1dHN1Z3lvdVwgOwor6Jmr6J67ID4gbXVzaGlrZXJhXCA7Civnq6XmrYwgPiB3YXJhYmV1dGFcIDsKK+aJk+aTsiA+IGNob3VjaGFrdVwgOwor5rS76YePID4ga2F0c3VyeW91XCA7Civmi6Dlh7ogPiBreW9zaHV0c3VcIDsKK+WZtOWHuiA+IGZ1bnNodXRzdVwgOwor5riL55quID4gc2hpYnVrYXdhXCA7Civol4HpnbQgPiB3YXJhZ3V0c3VcIDsKK+eul+WHuiA+IHNhbnNodXRzdVwgOwor6Y6W5qiLID4ga3VzYXJpdG9pXCA7CivmtLvou7ggPiBrYXRzdWppa3VcIDsKK+a5v+advyA+IHNoaXRzdWJhblwgOwor5rWu6KKLID4gdWtpYnVrdXJvXCA7CivmtbjonZUgPiBzaGluc2hva3VcIDsKK+WVhueVpSA+IHNob3VyeWFrdVwgOwor5rS76LqNID4ga2F0c3V5YWt1XCA7CivpibHos6ogPiBrb3VzaGl0c3VcIDsKK+iZq+iFuSA+IG11c2hpYmFyYVwgOwor6byg6ImyID4gbmV6dW1paXJvXCA7Civms6XpnbQgPiBkb3JvZ3V0c3VcIDsKK+a2nOiBtyA+IHRva3VzaG9rdVwgOwor562G5aKoID4gaGl0c3Vib2t1XCA7Civph53psLsgPiBoYXJpdW5hZ2lcIDsKK+m8u+e2sSA+IGhhbmFkenVuYVwgOwor562G5aGaID4gZnVkZWR6dWthXCA7Civmu53lo7ogPiB0YWtpdHN1Ym9cIDsKK+a7neWjtyA+IHRha2l0c3Vib1wgOwor5ZGK6YGUID4ga29rdXRhdHN1XCA7CivmvI/lh7ogPiByb3VzaHV0c3VcIDsKK+ethuWcpyA+IGhpdHN1YXRzdVwgOwor56qu5qW1ID4ga3l1dWt5b2t1XCA7Civph5Hpr7EgPiBraW5zaGFjaGlcIDsKK+emgOizqiA+IGhpbnNoaXRzdVwgOwor5Y+j6autID4ga3VjaGloaWdlXCA7CivomavnsaAgPiBtdXNoaWthZ29cIDsKK+a1geihgCA+IHJ5dXVrZXRzdVwgOwor5oaR54mpID4gdHN1a2ltb25vXCA7CivnqY3njocgPiBzZWtpcml0c3VcIDsKK+m8u+eqgSA+IGhhbmF0c3VraVwgOwor6Yec6aOvID4ga2FtYW1lc2hpXCA7Civmt7HniKogPiBmdWthZHp1bWVcIDsKK+erueW4myA+IGNoaWt1aGFrdVwgOwor56eL6ImyID4gc2h1dXNob2t1XCA7Civms6Hpiq0gPiBhYnVrdXplbmlcIDsKK+azqOmHiCA+IGNodXVzaGFrdVwgOwor5oSB6ImyID4gc2h1dXNob2t1XCA7Civmgqros6ogPiBha3VzaGl0c3VcIDsKK+a3i+eWviA+IHJpbnNoaXRzdVwgOwor6bqX6LOqID4gcmVpc2hpdHN1XCA7CivpurvooosgPiBhc2FidWt1cm9cIDsKK+a7neWPoyA+IHRha2lndWNoaVwgOwor6byg566XID4gbmV6dW1pemFuXCA7Civmub/lvI8gPiBzaGlzc2hpa2lcIDsKK+epgOeJqSA+IGtva3Vtb3RzdVwgOwor5rOl6YGTID4gZG9yb21pY2hpXCA7Civlj6TpnbQgPiBmdXJ1Z3V0c3VcIDsKK+ayiOmssSA+IGNoaW4nJ3V0c3VcIDsKK+WQm+mBlCA+IGtpbWl0YWNoaVwgOwor6bey6by7ID4gd2FzaGliYW5hXCA7CivmipjkvI8gPiBzaGFrdWJ1a3VcIDsKK+m8oOeptCA+IG5lenVtaWFuYVwgOwor5ruR5Y+wID4gc3ViZXJpZGFpXCA7Civnq5zlt7sgPiB0YXRzdW1ha2lcIDsKK+mHo+mQmCA+IHRzdXJpZ2FuZVwgOwor6buS6ImyID4ga29rdXNob2t1XCA7CivnqbbmpbUgPiBreXV1a3lva3VcIDsKK+a6gOWupCA+IG1hbnNoaXRzdVwgOwor6bem6bevID4gbWlzb3NhemFpXCA7Civnq6/lpbMgPiBoYXNoaXRhbWVcIDsKK+mHo+mHnSA+IHRzdXJpYmFyaVwgOwor6YeR6Y6WID4ga2luZ3VzYXJpXCA7Civol6TolJMgPiBmdWppZHp1cnVcIDsKK+mJm+iJsiA+IG5hbWFyaWlyb1wgOwor5riL5p+/ID4gc2hpYnVnYWtpXCA7CivlkLjooYAgPiBreXV1a2V0c3VcIDsKK+WPpOmJhCA+IGZ1cnV0ZXRzdVwgOwor5rW356WeID4gd2F0YXRzdW1pXCA7CivpiLTomasgPiBzdXp1bXVzaGlcIDsKK+WQjOizqiA+IGRvdXNoaXRzdVwgOwor5Y+j6YeRID4ga3VjaGlnYW5lXCA7CivnqoHmkoMgPiB0b3RzdWdla2lcIDsKK+m3k+m0oyA+IHlhbWF1enVyYVwgOwor6buS57iBID4ga3Vyb2J1Y2hpXCA7Civpjq7lnKcgPiBjaGluJydhdHN1XCA7CivllqrlpLEgPiBzb3VzaGl0c3VcIDsKK+eoruayuSA+IHRhbmVhYnVyYVwgOwor5ZSQ5quDID4ga2FyYWJpdHN1XCA7Civlj6Pou70gPiBrdWNoaWdhcnVcIDsKK+eqruWxiCA+IGt5dXVrdXRzdVwgOwor6buS56u5ID4ga3Vyb2NoaWt1XCA7Civlj4vpgZQgPiB0b21vZGFjaGlcIDsKK+WTgeeJqSA+IHNoaW5hbW9ub1wgOwor56u55YWJID4gdGFrZW1pdHN1XCA7Civol4Hoi54gPiB3YXJhZHp1dG9cIDsKK+a5v+WOnyA+IHNoaXRzdWdlblwgOwor56We6ImyID4gc2hpbnNob2t1XCA7CivllJDmnb4gPiBrYXJhbWF0c3VcIDsKK+elnuiBtyA+IHNoaW5zaG9rdVwgOwor5Y+j6KixID4ga3VjaGltb3RvXCA7Civomormn7EgPiBrYWJhc2hpcmFcIDsKK+erueS4siA+IHRha2VndXNoaVwgOwor5raI5ruFID4gc2hvdW1ldHN1XCA7Civph53ooZMgPiBzaGluanV0c3VcIDsKK+m7kueZvSA+IGtva3VieWFrdVwgOwor56We572wID4gc2hpbmJhdHN1XCA7CivmsrnonYkgPiBhYnVyYXplbWlcIDsKK+aAp+izqiA+IHNlaXNoaXRzdVwgOwor5Y+W6KqsID4gdG9yaXNldHN1XCA7CivmsLfpm6ogPiBoeW91c2V0c3VcIDsKK+ibuOWjvCA+IHRha290c3Vib1wgOwor6Ju45aO3ID4gdGFrb3RzdWJvXCA7Civmuaflh7ogPiB5b3VzaHV0c3VcIDsKK+epuuWupCA+IGt1dXNoaXRzdVwgOwor6YyY5b2iID4gdHN1bXVnYXRhXCA7CivmhqnlrqQgPiBrZWlzaGl0c3VcIDsKK+aApeiorSA+IGt5dXVzZXRzdVwgOwor6YeR6JSTID4ga2FuZWR6dXJ1XCA7CivmtojmpbUgPiBzaG91a3lva3VcIDsKK+mHo+iIuSA+IHRzdXJpYnVuZVwgOwor5rC36YeIID4gaHlvdXNoYWt1XCA7CivpiaLniakgPiBoYWNoaW1vbm9cIDsKK+a1mua4qyA+IHNodW5zZXRzdVwgOwor5reR5b6zID4gc2h1a3V0b2t1XCA7CivnpZ3npo8gPiBzaHVrdWZ1a3VcIDsKK+ayoeiQvSA+IGJvdHN1cmFrdVwgOwor56qT5Y+jID4gbWFkb2d1Y2hpXCA7CivlkYrnmbogPiBrb2t1aGF0c3VcIDsKK+WTgeafhCA+IHNoaW5hZ2FyYVwgOwor5oKq55a+ID4gYWt1c2hpdHN1XCA7CivlkLjnnYAgPiBreXV1Y2hha3VcIDsKK+mFjOmHjyA+IHNoYWt1cnlvdVwgOwor5Y+j6ISHID4ga3VjaGl3YWtpXCA7CivnorroqqwgPiBrYWt1c2V0c3VcIDsKK+iWhOe3kSA+IHVzdW1pZG9yaVwgOwor5ZOB5pWwID4gc2hpbmFrYXp1XCA7Civpub/nmq4gPiBzaGlrYWdhd2FcIDsKK+ibmeWPiCA+IGthZXJ1bWF0YVwgOwor6buZ5q66ID4gbW9rdXNhdHN1XCA7CivmgZDnuK4gPiBreW91c2h1a3VcIDsKK+ialeWupCA+IHNhbnNoaXRzdVwgOwor56qB5Ye6ID4gdG9zc2h1dHN1XCA7Civpg73poqggPiBtaXlha29mdXVcIDsKK+ayueeznyA+IGFidXJha2FzdVwgOwor5rC06LOqID4gc3Vpc2hpdHN1XCA7CivnqoHlhaUgPiB0b3RzdW55dXVcIDsKK+ayueeylSA+IGFidXJha2FzdVwgOwor56ig5a+GID4gY2hvdW1pdHN1XCA7Civpu5LmqKsgPiBrdXJvZ2FzaGlcIDsKK+a0u+attCA+IGthdHN1cmVraVwgOwor5Y+j57SFID4ga3VjaGliZW5pXCA7Civnp4vml6UgPiBzaHV1aml0c3VcIDsKK+WPs+erryA+IG1pZ2loYXNoaVwgOwor6Jas55O2ID4ga3VzdXJpYmluXCA7Civlk7LlraYgPiB0ZXRzdWdha3VcIDsKK+mJhOa4iyA+IGthbmFzaGlidVwgOwor5Y+O57iuID4gc2h1dXNodWt1XCA7Civlv4zoqZ4gPiBpbWlrb3RvYmFcIDsKK+WPsOenpCA+IGRhaWJha2FyaVwgOwor5rW35omHID4gaG90YXRlZ2FpXCA7Civlv4Xoqq0gPiBoaXRzdWRva3VcIDsKK+WNmuitmCA+IGhha3VzaGlraVwgOwor6buS5p2+ID4ga3Vyb21hdHN1XCA7CivjgIbliIcgPiBzaGltZWtpcmlcIDsKK+WNk+itmCA+IHRha3VzaGlraVwgOwor6Jas54mpID4geWFrdWJ1dHN1XCA7Civmt7HliIcgPiBzaGluc2V0c3VcIDsKK+ehrOizqiA+IGtvdXNoaXRzdVwgOwor5rC36J2VID4gaHlvdXNob2t1XCA7CivljZPoqqwgPiB0YWt1c2V0c3VcIDsKK+m7kuaYnyA+IGt1cm9ib3NoaVwgOwor56eA5oqcID4gc2h1dWJhdHN1XCA7Civlv4PooYAgPiBzaGlua2V0c3VcIDsKK+awtOiZqyA+IG1penVtdXNoaVwgOwor6JST6I2JID4gdHN1cnVrdXNhXCA7CivlvLfpo68gPiBrb3dhbWVzaGlcIDsKK+elqOaxuiA+IGh5b3VrZXRzdVwgOwor6JGb6aSFID4ga3V6dW1vY2hpXCA7CivptonosYYgPiB1enVyYW1hbWVcIDsKK+mHkeebpSA+IGthbmFkYXJhaVwgOwor55+v6aO+ID4ga3lvdXNob2t1XCA7Civlj6PnmZYgPiBrdWNoaWd1c2VcIDsKK+efs+mgrSA+IGlzaGlhdGFtYVwgOwor6bOl6buQID4gdG9yaW1vY2hpXCA7Civmtpnlo7AgPiBuYW1pZGFnb2VcIDsKK+iQvemrqiA+IHJha3VoYXRzdVwgOwor5YuF6aGNID4gY2hva3VnYWt1XCA7CivljbXoibIgPiB0YW1hZ29pcm9cIDsKK+eosuWFiSA+IGluYWJpa2FyaVwgOwor5Y+O552AID4gc2h1dWNoYWt1XCA7CivmtojlpLEgPiBzb3VzaGl0c3VcIDsKK+auv+mBlCA+IHRvbm90YWNoaVwgOwor5rGC6IG3ID4ga3l1dXNob2t1XCA7CivokL3po74gPiByYWt1c2hva3VcIDsKK+ayiOedgCA+IGNoaW5jaGFrdVwgOwor6Jas5q66ID4geWFrdXNhdHN1XCA7CivnpaXmnIggPiBzaG91dHN1a2lcIDsKK+engeWupCA+IHNoaXNoaXRzdVwgOwor5b2i6LOqID4ga2Vpc2hpdHN1XCA7Civlj47njocgPiBzaHV1cml0c3VcIDsKK+elnuabsiA+IHNoaW5reW9rdVwgOwor56K656uLID4ga2FrdXJpdHN1XCA7CivljaDogIUgPiB1cmFuYWlzaGFcIDsKK+WTgeWTgSA+IHNoaW5hamluYVwgOwor5rC357WQID4gaHlvdWtldHN1XCA7Civlv6Dnr4AgPiBjaHV1c2V0c3VcIDsKK+mJouW3uyA+IGhhY2hpbWFraVwgOwor5ZKE5a62ID4gaGFuYXNoaWthXCA7CivpirfljbQgPiBzaG91a3lha3VcIDsKK+a2iOWNtCA+IHNob3VreWFrdVwgOwor55+N6ZGgID4ga2FrdXNoYWt1XCA7CivlvqnogbcgPiBmdWt1c2hva3VcIDsKK+avkuiZqyA+IGRva3VtdXNoaVwgOwor5Y2T57W2ID4gdGFrdXpldHN1XCA7Civlj5bmtoggPiB0b3Jpa2VzaGlcIDsKK+WRqOWvhiA+IHNodXVtaXRzdVwgOwor5Ymv6aOfID4gZnVrdXNob2t1XCA7Civokp/okrsgPiBrb24nJ255YWt1XCA7CivlkITmnIggPiBrYWt1dHN1a2lcIDsKK+auteiiiyA+IGRhbmJ1a3Vyb1wgOwor5rW45YWlID4gc2hpbicnbnl1dVwgOwor5Y+O5rKhID4gc2h1dWJvdHN1XCA7CivpiYTlsZEgPiB0ZXRzdWt1enVcIDsKK+WNk+ethiA+IHRha3VoaXRzdVwgOwor56K6546HID4ga2FrdXJpdHN1XCA7Civlj5bmrKEgPiB0b3JpdHN1Z2lcIDsKK+WNk+eriyA+IHRha3VyaXRzdVwgOwor56We5byPID4gc2hpbnNoaWtpXCA7CivmraPpgZMgPiBtYXNhbWljaGlcIDsKK+ayiOayoSA+IGNoaW5ib3RzdVwgOwor5q+S6IiMID4gZG9rdXpldHN1XCA7Civno6jmsYEgPiB0b2dpc2hpcnVcIDsKK+W9ueiBtyA+IHlha3VzaG9rdVwgOwor5rSL5a6kID4geW91c2hpdHN1XCA7CivnoqfnjokgPiBoZWtpZ3lva3VcIDsKK+atr+izqiA+IHNoaXNoaXRzdVwgOwor6YW354axID4ga29rdW5ldHN1XCA7CivolLXmtZogPiBrdXJhemFyYWVcIDsKK+aBi+aVtSA+IGtvaWdhdGFraVwgOwor5Y+j5pepID4ga3VjaGliYXlhXCA7CivmsYHniakgPiBzaGlydW1vbm9cIDsKK+mFt+eDiCA+IGtva3VyZXRzdVwgOwor6JOE56mNID4gY2hpa3VzZWtpXCA7CivlvLHomasgPiB5b3dhbXVzaGlcIDsKK+W+tOeZuiA+IGNob3VoYXRzdVwgOwor5b+g54OIID4gY2h1dXJldHN1XCA7Civmg5zliKUgPiBzZWtpYmV0c3VcIDsKK+a0u+WKhyA+IGthdHN1Z2VraVwgOwor5Y+w5omAID4gZGFpZG9rb3JvXCA7CivlvoznqIsgPiBub2NoaWhvZG9cIDsKK+WPjeaXpSA+IGhhbicnbmljaGlcIDsKK+W8k+ihkyA+IGt5dXVqdXRzdVwgOwor6YGg6L+RID4gb2NoaWtvY2hpXCA7CivlipvoqqwgPiByaWtpc2V0c3VcIDsKK+m0rOiJsiA+IHVndWlzdWlyb1wgOwor5Y2a54mpID4gaGFrdWJ1dHN1XCA7CivljZjniakgPiBoaXRvZW1vbm9cIDsKK+avkuethiA+IGRva3VoaXRzdVwgOwor5ZGR5Y+jID4gbm9taWd1Y2hpXCA7Civlkb3kuZ4gPiBpbm9jaGlnb2lcIDsKK+WQjOWupCA+IGRvdXNoaXRzdVwgOwor5oGL5b+DID4ga29pZ29rb3JvXCA7Civmgqrlj6MgPiB3YXJ1Z3VjaGlcIDsKK+WInembqiA+IGhhdHN1eXVraVwgOwor5byx6IWwID4geW93YWdvc2hpXCA7CivpgIbpnpggPiBneWFrdXpheWFcIDsKK+W5tOmggyA+IHRvc2hpZ29yb1wgOwor552A6Zm4ID4gY2hha3VyaWt1XCA7CivlkYrliKUgPiBrb2t1YmV0c3VcIDsKK+awtOayuSA+IG1penVhYnVyYVwgOwor5rC35rC0ID4ga29vcmltaXp1XCA7CivlkYjlh7ogPiB0ZWlzaHV0c3VcIDsKK+WJjei8vyA+IHNha2lnb3NoaVwgOwor5Y+35a6kID4gZ291c2hpdHN1XCA7CivmsrPlsrggPiBrYXdhZ2lzaGlcIDsKK+W8t+e4riA+IGt5b3VzaHVrdVwgOwor5Ye66aGYID4gc2h1dHN1Z2FuXCA7Civlh7rpoYwgPiBzaHV0c3VkYWlcIDsKK+aBkOWvnyA+IGt5b3VzYXRzdVwgOwor6bGX6ZuyID4gdXJva29ndW1vXCA7CivptIPoiIwgPiBnZWtpemV0c3VcIDsKK+elnuWLhSA+IHNoaW5jaG9rdVwgOwor56Wd5YudID4gc2h1a3VzaG91XCA7CivpgJrph4ggPiB0c3V1c2hha3VcIDsKK+eggueykiA+IHN1bmF0c3VidVwgOwor6YCf6YGUID4gc29rdXRhdHN1XCA7Civlh7rpmaMgPiBzaHV0c3VqaW5cIDsKK+mAmumBlCA+IHRzdXV0YXRzdVwgOwor5Yid6YecID4gaGF0c3VnYW1hXCA7Civlh7rploAgPiBzaHV0c3Vtb25cIDsKK+mHo+WggCA+IHRzdXJpYm9yaVwgOwor6L+R6aCDID4gY2hpa2Fnb3JvXCA7Civps7bogbcgPiB0b2Jpc2hva3VcIDsKK+efs+ethiA+IHNla2loaXRzdVwgOwor55+z56u5ID4gc2VraWNoaWt1XCA7CivlvJXntrEgPiBoaWtpZHp1bmFcIDsKK+elnuS7jyA+IHNoaW5idXRzdVwgOwor55+t562SID4gdGFuZHp1dHN1XCA7Civmr5LniakgPiBkb2t1YnV0c3VcIDsKK+WNs+aXpSA+IHNva3VqaXRzdVwgOwor6YCD6YGTID4gbmlnZW1pY2hpXCA7CivnpZ7kuLsgPiBrYW4nJ251c2hpXCA7CivlkIjljbAgPiBhaWppcnVzaGlcIDsKK+WNkualrSA+IHNvdHN1Z3lvdVwgOwor5Yud552AID4gc2hvdWNoYWt1XCA7CivlkJDlh7ogPiB0b3NodXRzdVwgOwor6YeR5Z6LID4ga2FuYWdhdGFcIDsKK+efs+elniA+IHNoYWt1amluXCA7CivlkI3liLkgPiBtZWlzYXRzdVwgOwor5by+552AID4gZGFuY2hha3VcIDsKK+iQveexjSA+IHJha3VzZWtpXCA7Civnn6LnrZIgPiB5YWR6dXRzdVwgOwor5b+D5pyNID4gc2hpbnB1a3VcIDsKK+mAhui7oiA+IGd5YWt1dGVuXCA7CivlkIjlipsgPiBnb3VyeW9rdVwgOwor6JaZ5YiAID4gbmFnaW5hdGFcIDsKK+WQjOWIlyA+IGRvdXJldHN1XCA7Civnm7TpnaIgPiBjaG9rdW1lblwgOwor5b6p5qWtID4gZnVrdWd5b3VcIDsKK+iWhOWPoyA+IHVzdWt1Y2hpXCA7CivojYnpo58gPiBzb3VzaG9rdVwgOwor5bi46ZeHID4gdG9rb3lhbWlcIDsKK+WQiOWGiiA+IGdvdXNhdHN1XCA7CivliaXokL0gPiBoYWt1cmFrdVwgOwor6Iy26auqID4gY2hhcGF0c3VcIDsKK+mAn+iqrSA+IHNva3Vkb2t1XCA7CivljrPlr4YgPiBnZW5taXRzdVwgOwor5Ye66YO3ID4gc2h1a2t5b3VcIDsKK+WOmuW6lSA+IGF0c3V6b2tvXCA7CivlvJXnqpMgPiBoaWtpbWFkb1wgOwor5YiG6L2EID4gYnVua2F0c3VcIDsKK+mAmuiqrSA+IHRzdXVkb2t1XCA7CivpgZzoibIgPiBzb25zaG9rdVwgOwor6L+96LehID4gdHN1aXNla2lcIDsKK+WLsueItSA+IGt1bnNoYWt1XCA7CivpgJroqLMgPiB0c3V1eWFrdVwgOwor5Y+q5Y+qID4gdGFkYXRhZGFcIDsKK+WPi+WeoyA+IHRvbW9nYWtpXCA7CivljYrmnIggPiBoYW50c3VraVwgOwor55yf6L+5ID4gc2hpbnNla2lcIDsKK+WQieS+iyA+IGtpdHN1cmVpXCA7Civov5HpiYQgPiBraW50ZXRzdVwgOwor6Iy26aOvID4gY2hhbWVzaGlcIDsKK+WIpeiogCA+IGJldHN1Z2VuXCA7CivmrpbnlKMgPiBzaG9rdXNhblwgOwor6YeR5Y+jID4ga2luZ3VjaGlcIDsKK+mAoOihgCA+IHpvdWtldHN1XCA7Civps6XnsaAgPiB0b3Jpa2Fnb1wgOwor5YuD55m6ID4gYm9wcGF0c3VcIDsKK+W7uueviSA+IGtlbmNoaWt1XCA7Civlh7rouqsgPiBzaHVzc2hpblwgOwor5Y2B5pyIID4ganV1Z2F0c3VcIDsKK+WPo+WNoCA+IGt1Y2hpdXJhXCA7CivmraPnq4sgPiBzZWlyaXRzdVwgOwor6a+o6aqoID4gZ2Vpa290c3VcIDsKK+axguW/gyA+IGt5dXVzaGluXCA7Civnm7jpjpogPiBhaWR6dWNoaVwgOwor55y86K2YID4gZ2Fuc2hpa2lcIDsKK+W/g+aLjSA+IHNoaW5wYWt1XCA7CivlvbzmraQgPiBrYXJla29yZVwgOwor5q2v56OoID4gaGFtaWdha2lcIDsKK+iQveefsyA+IHJha3VzZWtpXCA7CivluJ3pl5UgPiB0ZWlrZXRzdVwgOwor5YaF6bCQID4gdWNoaXdhbmlcIDsKK+ecn+i5nyA+IHNoaW5zZWtpXCA7Civlj6TlibUgPiBmdXJ1a2l6dVwgOwor6bSo54yfID4ga2Ftb3J5b3VcIDsKK+ayoeWNtCA+IGJva2t5YWt1XCA7Civph5HlipsgPiBraW5yeW9rdVwgOwor5Y+z5YG0ID4gbWlnaWdhd2FcIDsKK+WHuui2hSA+IHNodXRjaG91XCA7Civlj6PliY0gPiBrdWNoaW1hZVwgOwor5Yi76JaEID4ga29rdWhha3VcIDsKK+ecn+i3oSA+IHNoaW5zZWtpXCA7CivmsLTmgKcgPiBtaXp1c2hvdVwgOwor5bqD6KKWID4gaGlyb3NvZGVcIDsKK+mHjeWKmyA+IGp1dXJ5b2t1XCA7Civnm7jpiYQgPiBzb3V0ZXRzdVwgOwor6I236LuKID4gbmlndXJ1bWFcIDsKK+WLleeJqSA+IGRvdWJ1dHN1XCA7Civnn6XnlaUgPiBjaGlyeWFrdVwgOwor55uu6YyyID4gbW9rdXJva3VcIDsKK+WIh+irliA+IHNldHN1cm9uXCA7Civlh7bos4ogPiBreW91em9rdVwgOwor552A6KOFID4gY2hha3Vzb3VcIDsKK+mBheiEiCA+IGNoaW15YWt1XCA7CivmsLTlvJUgPiBtaXp1aGlraVwgOwor5qmI6aqoID4gdG91a290c3VcIDsKK+ausua7hSA+IHNlbm1ldHN1XCA7Civlj6TlgrcgPiBmdXJ1a2l6dVwgOwor5Yag6ZuqID4ga2Fuc2V0c3VcIDsKK+WMl+altSA+IGhva2t5b2t1XCA7CivlubvooZMgPiBnZW5qdXRzdVwgOwor5rC35bqKID4gaHlvdXNob3VcIDsKK+WKg+etliA+IGtha3VzYWt1XCA7CivljbPluK0gPiBzb2t1c2VraVwgOwor5Y+I5Y+IID4gbWF0YW1hdGFcIDsKK+awtOW6lSA+IG1pbmFzb2tvXCA7Civnm7TphY0gPiBjaG9rdWhhaVwgOwor5YiH6KiAID4gc2V0c3VnZW5cIDsKK+aApeWRiiA+IGt5dXVrb2t1XCA7Civph4jlhbggPiBzaGFrdXRlblwgOwor5q+r5pyrID4gZ291bWF0c3VcIDsKK+WNiuaKmCA+IGhhbnNldHN1XCA7CivlubPoopYgPiBoaXJhc29kZVwgOwor6a+b6aOvID4gdGFpbWVzaGlcIDsKK+WIh+imgSA+IHNldHN1eW91XCA7Civlt7vpm7IgPiBtYWtpZ3Vtb1wgOwor5q6L54mpID4gemFuYnV0c3VcIDsKK+aFi+OAhSA+IHdhemF3YXphXCA7CivliqvnlaUgPiBnb3VyeWFrdVwgOwor5Y+N5YilID4gdGFuYmV0c3VcIDsKK+ato+ebtCA+IHNob3VqaWtpXCA7CivlirnnjocgPiBrb3VyaXRzdVwgOwor5Y+q5LqLID4gdGFkYWdvdG9cIDsKK+eiqeWtpiA+IHNla2lnYWt1XCA7CivmsLTltakgPiBtaXp1a2FzYVwgOwor55u06YCBID4gY2hva3Vzb3VcIDsKK+WIhuijgiA+IGJ1bnJldHN1XCA7Civlvbnmn4QgPiB5YWt1Z2FyYVwgOwor5YeM6L6xID4gcnlvdWpva3VcIDsKK+W+i+aWhyA+IHJpdHN1YnVuXCA7CivnqIvjgIUgPiBob2RvaG9kb1wgOwor5Y+O5YWlID4gc2h1dW55dXVcIDsKK+iLpem2jyA+IHdha2Fkb3JpXCA7Civmsojli4cgPiBjaGluJyd5dXVcIDsKK+WPjOWFrSA+IHN1Z29yb2t1XCA7Civlu4PntbYgPiBoYWl6ZXRzdVwgOwor6YGT57O4ID4gbWljaGlpdG9cIDsKK+WJteeriyA+IHNvdXJpdHN1XCA7CivljZTlv4MgPiBreW91c2hpblwgOwor5YyX5pydID4gaG9rdWNob3VcIDsKK+WLh+eDiCA+IHl1dXJldHN1XCA7CivmgKfliKUgPiBzZWliZXRzdVwgOwor5YuD54S2ID4gYm90c3V6ZW5cIDsKK+WNmOW8jyA+IHRhbnNoaWtpXCA7Civlj4LliJcgPiBzYW5yZXRzdVwgOwor5rCX5b+DID4ga2lnb2tvcm9cIDsKK+W3nemiqCA+IGthd2FrYXplXCA7CivliIDooZMgPiB0b3VqdXRzdVwgOwor5Yyh5pWRID4ga3lvdWt5dXVcIDsKK+atu+eJqSA+IHNoaWJ1dHN1XCA7CivliLPoiJ8gPiBrdXJpYnVuZVwgOwor5b285pivID4ga2FyZWtvcmVcIDsKK+WIhuidlSA+IGJ1bnNob2t1XCA7Civnmb3ps6UgPiBoYWt1Y2hvdVwgOwor5YW16aOfID4gaGVpc2hva3VcIDsKK+auv+anmCA+IHRvbm9zYW1hXCA7Civlj4LlhaUgPiBzYW4nJ255dXVcIDsKK+WPl+S7mCA+IHVrZXRzdWtlXCA7CivljZjluK8gPiBoaXRvZW9iaVwgOwor55+v5r+AID4ga3lvdWdla2lcIDsKK+aAquWCkSA+IGthaWtldHN1XCA7CivliLrogqEgPiBzYXN1bWF0YVwgOwor5rGy5Y+WID4ga3VtaXRvcmlcIDsKK+eggua1nCA+IHN1bmFoYW1hXCA7CivpgZTnrYYgPiB0YXBwaXRzdVwgOwor5Ymy56S8ID4ga2F0c3VyZWlcIDsKK+avjuaciCA+IG1haXRzdWtpXCA7CivljYflvaIgPiBtYXN1Z2F0YVwgOwor5bed6ZynID4ga2F3YWdpcmlcIDsKK+WKh+eahCA+IGdla2l0ZWtpXCA7CivliIbomJYgPiBidW5rZXRzdVwgOwor5Y+U5LiWID4gc2h1a3VzZWlcIDsKK+WFgOm3uSA+IGhhZ2V0YWthXCA7Civli5jmsbogPiBrYW5rZXRzdVwgOwor5Y2z5aaZID4gc29rdW15b3VcIDsKK+WJo+eqgSA+IGtlbnRzdWt1XCA7Civlv4XlrpogPiBoaXRzdWpvdVwgOwor5oCl5L+hID4ga3l1dXNoaW5cIDsKK+WJjee0hCA+IHplbicneWFrdVwgOwor5YqH55ebID4gZ2VraXRzdXVcIDsKK+WNiOW5tCA+IHVtYWRvc2hpXCA7CivlubPokL0gPiBoaXJhb2NoaVwgOwor56Gs5byPID4ga291c2hpa2lcIDsKK+W4uOitmCA+IGpvdXNoaWtpXCA7Civlv4PlraYgPiBzaGluZ2FrdVwgOwor5q+O5pelID4gbWFpbmljaGlcIDsKK+eZvemqqCA+IGhha2tvdHN1XCA7CivljYfluK0gPiBtYXN1c2VraVwgOwor5qiq6aKoID4geW9rb2themVcIDsKK+aApeS8uCA+IGt5dXVzaGluXCA7CivpsJDotrMgPiB3YW5pYXNoaVwgOwor6YGF562GID4gY2hpaGl0c3VcIDsKK+avjeaWuSA+IGhhaGFrYXRhXCA7CivmsLflo4EgPiBoeW91aGVraVwgOwor556e552AID4gbWFuY2hha3VcIDsKK+i+m+i+myA+IGthcmFnYXJhXCA7Civnm7jorZggPiBzb3VzaGlraVwgOwor6I+c5664ID4gc2FpYmFzaGlcIDsKK+mAsee1piA+IHNodXVreXV1XCA7CivlhavpnaIgPiBoYWNoaW1lblwgOwor5Y2a5a2mID4gaGFrdWdha3VcIDsKK+auluawkSA+IHNob2t1bWluXCA7CivpgLLntJogPiBzaGlua3l1dVwgOwor5YmN56+AID4gemVuc2V0c3VcIDsKK+W+l+W/gyA+IHRva3VzaGluXCA7CivnnYDoiLkgPiBjaGFrdXNlblwgOwor5byV5r2uID4gaGlraXNoaW9cIDsKK+W4uOiorSA+IGpvdXNldHN1XCA7CivlvpflvpcgPiB0b2t1dG9rdVwgOwor6JC95r2uID4gcmFrdWNob3VcIDsKK+W8seavkiA+IGpha3Vkb2t1XCA7CivljqXlhrcgPiBrZXRzdXJlaVwgOwor6JS15YWDID4ga3VyYW1vdG9cIDsKK+W7uueJqSA+IHRhdGVtb25vXCA7Civmrbvmu4UgPiBzaGltZXRzdVwgOwor5YuH5rG6ID4geXV1a2V0c3VcIDsKK+WFiOmrmCA+IHNha2lkYWthXCA7Civnmbrpp4UgPiBoYXRzdWVraVwgOwor6YCA6ImyID4gdGFpc2hva3VcIDsKK+awl+WupCA+IGtpc2hpdHN1XCA7CivlhobpjJAgPiBtYXJ1Z2lyaVwgOwor5Yud5qW9ID4gc2hvdXJha3VcIDsKK+WFjummrCA+IHVzYWdpdW1hXCA7CivmrKDnpLwgPiBrZXRzdXJlaVwgOwor5b2T5pyIID4gdG91Z2V0c3VcIDsKK+WNg+WztiA+IGNoaXNoaW1hXCA7CivmqKrpm7IgPiB5b2tvZ3Vtb1wgOwor5b6Q5b6QID4gc29yb3Nvcm9cIDsKK+WFg+mrmCA+IG1vdG9kYWthXCA7CivluKvoqqwgPiBzaGlzZXRzdVwgOwor5YyF5pGCID4gaG91c2V0c3VcIDsKK+auv+aWuSA+IHRvbm9nYXRhXCA7CivmsJHlrr8gPiBtaW5zaHVrdVwgOwor6YCj57WQID4gcmVua2V0c3VcIDsKK+ebtOiogCA+IGNob2t1Z2VuXCA7CivlvY7mnIggPiB3YW5nZXRzdVwgOwor5beh6YyrID4ganVuc2hha3VcIDsKK+W9juabsiA+IHdhbmt5b2t1XCA7Civnm7Top5IgPiBjaG9ra2FrdVwgOwor5buJ55u0ID4gcmVuY2hva3VcIDsKK+ebtOimmiA+IGNob2trYWt1XCA7Civnm7ToppYgPiBjaG9rdXNoaVwgOwor5q275rS7ID4gc2hpa2F0c3VcIDsKK+W/g+WigyA+IHNoaW5reW91XCA7CivlubPohIggPiBoZWlteWFrdVwgOwor5b2T5pelID4gdG91aml0c3VcIDsKK+W+qeWtpiA+IGZ1a3VnYWt1XCA7CivlhaXplqMgPiBueXV1a2FrdVwgOwor5qiq6ZW3ID4geW9rb25hZ2FcIDsKK+atu+ayoSA+IHNoaWJvdHN1XCA7CivljIXmi6wgPiBob3VrYXRzdVwgOwor6YCA6IG3ID4gdGFpc2hva3VcIDsKK+W/oOWRiiA+IGNodXVrb2t1XCA7Civlt7vou7ggPiBtYWtpamlrdVwgOwor55m+6Zu3ID4gaHlha3VyYWlcIDsKK+eZvumboyA+IGh5YWt1bmFuXCA7Civlh7roir0gPiBzaHV0c3VnYVwgOwor6I+F56ygID4gc3VnZWdhc2FcIDsKK+WJm+ebtCA+IGdvdWNob2t1XCA7CivliqDmub8gPiBrYXNoaXRzdVwgOwor55m66Zu7ID4gaGF0c3VkZW5cIDsKK+WIhuiEiCA+IGJ1bm15YWt1XCA7Civnm6PoqLMgPiBrYW4nJ3lha3VcIDsKK+W8j+azlSA+IHNoaWtpaG91XCA7CivpgYXnnYAgPiBjaGljaGFrdVwgOwor5YWa6ZalID4gdG91YmF0c3VcIDsKK+WIpee0jSA+IGJldHN1bm91XCA7CivliJHnvbAgPiBrZWliYXRzdVwgOwor5YaF6YGUID4gbmFpdGF0c3VcIDsKK+atu+atvyA+IHNoaWJvdHN1XCA7Civlv4PlmqIgPiBzaGluJydub3VcIDsKK+W9ueW+lyA+IHlha3V0b2t1XCA7CivpgKPnq4sgPiByZW5yaXRzdVwgOwor6YO35oSBID4ga3lvdXNodXVcIDsKK+W9t+W9vyA+IGhvdWZ1dHN1XCA7Civluq3nn7MgPiBuaXdhaXNoaVwgOwor5YiH6ICFID4ga2lyZW1vbm9cIDsKK+mBheeZuiA+IGNoaWhhdHN1XCA7CivlhYPpnpggPiBtb3Rvc2F5YVwgOwor5b+Y5Y20ID4gYm91a3lha3VcIDsKK+attOattCA+IHJla2lyZWtpXCA7Civnorrkv6EgPiBrYWt1c2hpblwgOwor55+z5p+xID4gc2VraWNodXVcIDsKK+asoOeVqiA+IGtldHN1YmFuXCA7CivlvbDlvrMgPiBzaG91dG9rdVwgOwor6bGI6IW5ID4gdGFyYWZ1a3VcIDsKK+WJsueJqSA+IHdhcmVtb25vXCA7CivluZXoh6MgPiBiYWt1c2hpblwgOwor5YWl6YuPID4gbnl1dWt5b3VcIDsKK+i7vem0qCA+IGthcnVnYW1vXCA7CivlvK/mm7IgPiB3YW5reW9rdVwgOwor5b+15LuPID4gbmVuYnV0c3VcIDsKK+iPiuefsyA+IGtpa3Vpc2hpXCA7CivlhrfooYAgPiByZWlrZXRzdVwgOwor5bmz57W5ID4gaGlyYWdpbnVcIDsKK+mFkuWRkSA+IHNha2Vub21pXCA7CivokYnmoZwgPiBoYXpha3VyYVwgOwor552A57GzID4gY2hha3ViZWlcIDsKK+W8t+aVtSA+IGt5b3V0ZWtpXCA7CivmsYLlhJ8gPiBreXV1c2hvdVwgOwor6YCa56ewID4gdHN1dXNob3VcIDsKK+W/oOWDlSA+IGNodXVib2t1XCA7CivmsLTlipsgPiBzdWlyeW9rdVwgOwor5q6L5pyIID4gemFuZ2V0c3VcIDsKK+WLheabuCA+IGNob2t1c2hvXCA7CivlhbHpgJogPiBreW91dHN1dVwgOwor5YmN55WlID4gemVucnlha3VcIDsKK+auiuabtCA+IGtvdG9zYXJhXCA7CivlvKbmnIggPiBnZW5nZXRzdVwgOwor55uu6JasID4gbWVndXN1cmlcIDsKK+WNlOWVhiA+IGt5b3VzaG91XCA7Civnmb7pjKwgPiBoeWFrdXJlblwgOwor5YWs6YGUID4ga291dGF0c3VcIDsKK+W8seaVtSA+IGpha3V0ZWtpXCA7CivpgIbnrpcgPiBneWFrdXNhblwgOwor6buZ44CFID4gbW9rdW1va3VcIDsKK+WFq+mBlCA+IGhhdHRhdHN1XCA7CivlhavpgZMgPiBoYWNoaWRvdVwgOwor5YyX5bGxID4ga2l0YXlhbWFcIDsKK+WJv+a7hSA+IHNvdW1ldHN1XCA7Civlu4PniakgPiBoYWlidXRzdVwgOwor5YWs6L+wID4ga291anV0c3VcIDsKK+W/oOS/oSA+IGNodXVzaGluXCA7Civnmq7os6ogPiBoaXNoaXRzdVwgOwor55+z5paHID4gaXNoaWJ1bWlcIDsKK+W9ouW8jyA+IGtlaXNoaWtpXCA7Civlh4vokL0gPiBjaG91cmFrdVwgOwor5YuF5peoID4gY2hva3VzaGlcIDsKK+WNuOWApCA+IG9yb3NoaW5lXCA7Civnn63ml6UgPiB0YW5qaXRzdVwgOwor5rC05YWIID4gbWl6dXNha2lcIDsKK+W3t+iqrCA+IGtvdXNldHN1XCA7CivlhbHou5sgPiBreW91eWFrdVwgOwor6buS44CFID4ga3Vyb2d1cm9cIDsKK+WJpeeEvCA+IHN1a2l5YWtpXCA7CivpgKLnnYAgPiBob3VjaGFrdVwgOwor5buD54axID4gaGFpbmV0c3VcIDsKK+W9ueWuhSA+IHlha3V0YWt1XCA7CivliLDnnYAgPiB0b3VjaGFrdVwgOwor6Iy56Ju4ID4geXVkZWRha29cIDsKK+W8t+aMryA+IGt5b3VzaGluXCA7Civlho3oqqwgPiBzYWlzZXRzdVwgOwor6YCj55m6ID4gcmVucGF0c3VcIDsKK+W+qeWUsSA+IGZ1a3VzaG91XCA7Civnn6Xml6UgPiBjaGluaWNoaVwgOwor5b605Y+OID4gY2hvdXNodXVcIDsKK+WLheaSsCA+IGNob2t1c2VuXCA7CivliIbnr4AgPiBidW5zZXRzdVwgOwor6YWN5YiXID4gaGFpcmV0c3VcIDsKK+WHpue9sCA+IHNob2JhdHN1XCA7Civlho3oqK0gPiBzYWlzZXRzdVwgOwor5q205pydID4gcmVraWNob3VcIDsKK+WKh+avkiA+IGdla2lkb2t1XCA7Civov73nqbYgPiB0c3Vpa3l1dVwgOwor5q2z5pyrID4gc2FpbWF0c3VcIDsKK+aoqui7uCA+IHlva29qaWt1XCA7CivliIbnrYYgPiBidW5waXRzdVwgOwor6Lyv6YyyID4gc2h1dXJva3VcIDsKK+WNiuWPoyA+IGhhbmt1Y2hpXCA7CivljYHlk7IgPiBqdXR0ZXRzdVwgOwor55m+6YG4ID4gaHlha3VzZW5cIDsKK+W7iea9lCA+IHJlbmtldHN1XCA7CivlhYjph5EgPiBzYWtpZ2FuZVwgOwor6Lu96aOfID4ga2Vpc2hva3VcIDsKK+WIhueriyA+IGJ1bnJpdHN1XCA7CivlhoXoqLMgPiB1Y2hpd2FrZVwgOwor6L+956aPID4gdHN1aWZ1a3VcIDsKK+eZuumBlCA+IGhhdHRhdHN1XCA7CivmrLLmt7EgPiB5b2t1YnVrYVwgOwor5q2q5puyID4gd2Fpa3lva3VcIDsKK+WFpei2hSA+IG55dXVjaG91XCA7CivlibLms6ggPiB3YXJpY2h1dVwgOwor5rCR5YqbID4gbWlucnlva3VcIDsKK+WMl+WjgSA+IGhva3VoZWtpXCA7Civlu4Pmu4UgPiBoYWltZXRzdVwgOwor5rC05LiKID4gbWluYWthbWlcIDsKK+WIneebhiA+IGhhdHN1Ym9uXCA7CivmraPmnK0gPiBzaG91ZnVkYVwgOwor6JGs5byPID4gc291c2hpa2lcIDsKK+WFpeizniA+IG55dXVzaG91XCA7CivlhYjpgZQgPiBzZW5kYXRzdVwgOwor5q2i5pyoID4gdG9tYXJpZ2lcIDsKK+edgOecvCA+IGNoYWt1Z2FuXCA7CivljYrliIcgPiBoYW5zZXRzdVwgOwor5Yid55m6ID4gc2hvaGF0c3VcIDsKK+i7n+mqqCA+IG5hbmtvdHN1XCA7CivlvZPlsYAgPiB0b3VreW9rdVwgOwor5q665a6zID4gc2F0c3VnYWlcIDsKK+iQveaOjCA+IHJha3VzaG91XCA7CivlhbHoqLMgPiBreW91eWFrdVwgOwor5by35byxID4ga3lvdWpha3VcIDsKK+W/g+S4rSA+IHNoaW5jaHV1XCA7CivlubPnmr8gPiBoaXJhemFyYVwgOwor5Yid55SjID4gaGF0c3V6YW5cIDsKK+W4uOe3kSA+IGpvdXJ5b2t1XCA7CivljZfku48gPiBuYW5mdXRzdVwgOwor5Yqr5o6gID4gZ291cnlha3VcIDsKK+WNgeWFqyA+IGp1dWhhY2hpXCA7CivlhazoqK0gPiBrb3VzZXRzdVwgOwor6YGp5qWtID4gdGVraWd5b3VcIDsKK+mssemssSA+IHV0c3V1dHN1XCA7Civov73nmb0gPiB0c3VpaGFrdVwgOwor5b6T5Y2SID4ganV1c290c3VcIDsKK+W+oeWGoCA+IG9rYW5tdXJpXCA7CivlvovlkYIgPiByaXRzdXJ5b1wgOwor6L6j6IWVID4gcmF0c3V3YW5cIDsKK+edgOeUqCA+IGNoYWt1eW91XCA7CivpgIbnlKggPiBneWFrdXlvdVwgOwor6YCG55SjID4gZ3lha3V6YW5cIDsKK+WFreimqiA+IHJva3VzaGluXCA7Civlvozlj6MgPiBhdG9rdWNoaVwgOwor5YWo6KizID4gemVuJyd5YWt1XCA7CivljZjkuIAgPiB0YW4nJ2l0c3VcIDsKK+W4r+e3kSA+IHRhaXJ5b2t1XCA7Civnn7PlvJMgPiBpc2hpeXVtaVwgOwor6YG45puyID4gc2Vua3lva3VcIDsKK+mAmueJkiA+IHRzdXVjaG91XCA7Civnm7Tnt5ogPiBjaG9rdXNlblwgOwor55yM56uLID4ga2Vucml0c3VcIDsKK+WIpeeKtiA+IGJldHN1am91XCA7Civlh43ntZAgPiB0b3VrZXRzdVwgOwor5bed6J2JID4ga2F3YXNlbWlcIDsKK+mDt+WbvSA+IGt5b3Vrb2t1XCA7Civlia/mpa0gPiBmdWt1Z3lvdVwgOwor6L+955SzID4gdHN1aXNoaW5cIDsKK+egguWxsSA+IHN1bmF5YW1hXCA7Civlvovli5UgPiByaXRzdWRvdVwgOwor5q2j5o6lID4gc2Vpc2V0c3VcIDsKK+i/q+ecnyA+IGhha3VzaGluXCA7CivnnIHnrYYgPiBzZWloaXRzdVwgOwor5byf5b6hID4gb3RvdXRvZ29cIDsKK+WFh+iziiA+IGt5b3V6b2t1XCA7Civlh4TntbYgPiBzZWl6ZXRzdVwgOwor5b6M5YiXID4ga291cmV0c3VcIDsKK+W8t+WwhiA+IGt5b3VzaG91XCA7CivlubTnjocgPiBuZW5yaXRzdVwgOwor5YaX6IiMID4gam91emV0c3VcIDsKK+aomeiouyA+IGh5b3VjaHV1XCA7CivnnJ/nmb0gPiBtYXNzaGlyb1wgOwor5YW46JasID4gdGVuJyd5YWt1XCA7CivlvLHlsJEgPiBqYWt1c2hvdVwgOwor5byx5bCPID4gamFrdXNob3VcIDsKK+ebtOetlCA+IGNob2t1dG91XCA7Civnn7PlsbEgPiBpc2hpeWFtYVwgOwor6Iyc6ImyID4gYWthbmVpcm9cIDsKK+eZuuiogCA+IGhhdHN1Z2VuXCA7CivlvJPlvaIgPiB5dW1pbmFyaVwgOwor5Ymv5pyoID4gZnVrdWJva3VcIDsKK+ecn+eXhyA+IHNoaW5zaG91XCA7CivliqPmg4UgPiByZXRzdWpvdVwgOwor5Yal572wID4gbWVpYmF0c3VcIDsKK+elnuOAhSA+IGthbWlnYW1pXCA7CivliqPmgqogPiByZXRzdWFrdVwgOwor6a6u6KGAID4gc2Vua2V0c3VcIDsKK+W9ueWJsiA+IHlha3V3YXJpXCA7Civnn7PlrqQgPiBpc2hpbXVyb1wgOwor6Iul6KGGID4gd2FrYXNodXVcIDsKK+avjeWQmyA+IGhhaGFnaW1pXCA7CivlubPnhrEgPiBoZWluZXRzdVwgOwor55u056iOID4gY2hva3V6ZWlcIDsKK+i/keedgCA+IGtpbmNoYWt1XCA7CivpgZPmnb8gPiBtaWNoaWl0YVwgOwor5YuF5a6jID4gY2hva3VzZW5cIDsKK+efqeWwuiA+IGthbmVqYWt1XCA7CivliIfniakgPiBraXJlbW9ub1wgOwor6YG45oqcID4gc2VuYmF0c3VcIDsKK+eZveifuyA+IHNoaXJvYXJpXCA7CivlvLflpaogPiBnb3VkYXRzdVwgOwor5Yi65q66ID4gc2hpc2F0c3VcIDsKK+WHoeeZviA+IGJvbnB5YWt1XCA7Civlvovku6QgPiByaXRzdXJlaVwgOwor5YaF6IW/ID4gdWNoaW1vbW9cIDsKK+i7jemWpSA+IGd1bmJhdHN1XCA7CivluaPniakgPiBoZWltb3RzdVwgOwor6YC45qW9ID4gaXRzdXJha3VcIDsKK+mAn+axuiA+IHNva2tldHN1XCA7CivljJflgbQgPiBob2t1c29rdVwgOwor5b2r5Yi7ID4gY2hvdWtva3VcIDsKK+mAhua9riA+IHNha2FzaGlvXCA7CivnoLLliJcgPiBob3VyZXRzdVwgOwor5q2j5byPID4gc2Vpc2hpa2lcIDsKK+WGoOe1tiA+IGthbnpldHN1XCA7Civmrr/ljp8gPiB0b25vYmFyYVwgOwor5Ye454q2ID4gdG90c3Vqb3VcIDsKK+WGheiCoSA+IHVjaGltb21vXCA7CivpgZTmlocgPiB0YXRzdWJ1blwgOwor5b6B5LyQID4gc2VpYmF0c3VcIDsKK+W5u+a7hSA+IGdlbm1ldHN1XCA7CivlvL7lnKcgPiBkYW4nJ2F0c3VcIDsKK+i7vei7vSA+IGthcnVnYXJ1XCA7CivlhYXooYAgPiBqdXVrZXRzdVwgOwor5YaF6IG3ID4gbmFpc2hva3VcIDsKK+i7n+mJhCA+IG5hbnRldHN1XCA7CivlubLmva4gPiBoaWtpc2hpb1wgOwor55+z5aKoID4gc2VraWJva3VcIDsKK+WIpOaxuiA+IGhhbmtldHN1XCA7Civnn63lpJwgPiBtaWppa2F5b1wgOwor5by35ZynID4ga3lvdWF0c3VcIDsKK+W5s+a7kSA+IGhlaWthdHN1XCA7CivlvLflm70gPiBreW91a29rdVwgOwor6ayi6ZW3ID4gYmluJyduYWdhXCA7CivlhobnvZAgPiBtYXJ1Z2FtYVwgOwor55u055u0ID4gamlraWppa2lcIDsKK+W3u+e0mSA+IG1ha2lnYW1pXCA7CivlhbzogbcgPiBrZW5zaG9rdVwgOwor5qyg5paHID4ga2V0c3VidW5cIDsKK+WGrOepuiA+IGZ1eXV6b3JhXCA7CivpgYXml6UgPiBjaGlqaXRzdVwgOwor5Yil5q6/ID4gYmV0c3VkZW5cIDsKK+WIpeautSA+IGJldHN1ZGFuXCA7CivpgIbmtaogPiBzYWthbmFtaVwgOwor55m96JOuID4gYnlha3VyZW5cIDsKK+efs+WeoyA+IGlzaGlnYWtpXCA7Civpg7fkv5cgPiBreW91em9rdVwgOwor6Lu46LazID4gamlrdWFzaGlcIDsKK+mAhuazoiA+IHNha2FuYW1pXCA7Civnm67nmoQgPiBtb2t1dGVraVwgOwor6JCp5bGeID4gaGFnaXpva3VcIDsKK+mAn+alrSA+IGhheWF3YXphXCA7CivmrrXliKUgPiB0YW5iZXRzdVwgOwor5biC56uLID4gc2hpcml0c3VcIDsKK+iLpeiNiSA+IHdha2FrdXNhXCA7CivnnYDmsLQgPiBjaGFrdXN1aVwgOwor6Lui6L2NID4gdGVudGV0c3VcIDsKK+mwkOeariA+IHdhbmlnYXdhXCA7CivmraLlrr8gPiBzaGlzaHVrdVwgOwor6Iq46KGTID4gZ2VpanV0c3VcIDsKK+ato+WulyA+IG1hc2FtdW5lXCA7CivmqKrohbkgPiB5b2tvYmFyYVwgOwor5YaX562GID4gam91aGl0c3VcIDsKK+WFrOiBtyA+IGtvdXNob2t1XCA7CivlkITjgIUgPiBzb3Jlem9yZVwgOwor5YiD5rihID4gaGF3YXRhcmlcIDsKK+mzqeWwviA+IG1pem9vY2hpXCA7Civpq6Ppq7QgPiBob3VmdXRzdVwgOwor5Ye65ryUID4gc2h1dHN1ZW5cIDsKK+mBqeW9uSA+IHRla2l5YWt1XCA7CivouqvplbcgPiBzaGluY2hvdVwgOwor5Yqb5a2mID4gcmlraWdha3VcIDsKK+iJsumBkyA+IHNoaWtpZG91XCA7Civnmb7oirggPiBoeWFrdWdlaVwgOwor5Yui5YqbID4gc2Vpcnlva3VcIDsKK+iIuemciiA+IGZ1bmFkYW1hXCA7Civov73msYIgPiB0c3Vpa3l1dVwgOwor56CC5Y6fID4gc3VuYWhhcmFcIDsKK+W9juWFpSA+IHdhbicnbnl1dVwgOwor5Yi25pytID4gc2Vpc2F0c3VcIDsKK+alvemVtyA+IGdha3VjaG91XCA7Civnm7TnkIMgPiBjaG9ra3l1dVwgOwor5YiG5rOMID4gYnVucGl0c3VcIDsKK+altemZkCA+IGt5b2t1Z2VuXCA7CivprqvohpogPiBzYW1laGFkYVwgOwor55m66ImyID4gaGFzc2hva3VcIDsKK+iRrOWIlyA+IHNvdXJldHN1XCA7Civli4XllY8gPiBjaG9rdW1vblwgOwor5by+5YqbID4gZGFucnlva3VcIDsKK+W8j+WgtCA+IHNoaWtpam91XCA7Civpq5jpq5ggPiB0YWthZGFrYVwgOwor5Ymy5byVID4gd2FyaWJpa2lcIDsKK+assuW/gyA+IHlva3VzaGluXCA7CivpgbjlsYAgPiBzZW5reW9rdVwgOwor5YmU5oqJID4gdGVra2V0c3VcIDsKK+assuW+lyA+IHlva3V0b2t1XCA7Civprq7ogokgPiBzZW4nJ25pa3VcIDsKK+mAhuanmCA+IHNha2FzYW1hXCA7CivpgLLmkoMgPiBzaGluZ2VraVwgOwor5YuV5YqbID4gZG91cnlva3VcIDsKK+WLheWRvSA+IGNob2t1bWVpXCA7Civlh5vng4ggPiByaW5yZXRzdVwgOwor5q2m5aOrID4gbW9ub25vZnVcIDsKK+muq+iCjCA+IHNhbWVoYWRhXCA7CivmrrrkurogPiBzYXRzdWppblwgOwor5YOt6LaKID4gc2VuJydldHN1XCA7CivpgKPml6UgPiByZW5qaXRzdVwgOwor5q2j5aSiID4gbWFzYXl1bWVcIDsKK+WIt+aVsCA+IHNhdHN1c3V1XCA7Civou4vovaIgPiBhdHN1cmVraVwgOwor5Yil5p2hID4gYmV0c3Vqb3VcIDsKK+WEsuiThCA+IGNob2NoaWt1XCA7CivlhobnqpMgPiBtYXJ1bWFkb1wgOwor6Iul6ICFID4gd2FrYW1vbm9cIDsKK+i7iui9hCA+IHNoYWthdHN1XCA7CivmgZDjgIUgPiBrb3dhZ293YVwgOwor6YCa5pqBID4gdHN1dWd5b3VcIDsKK+WJjeaJlSA+IG1hZWJhcmFpXCA7Civnmb7ogZ4gPiBoeWFrdWJ1blwgOwor55m66IKyID4gaGF0c3Vpa3VcIDsKK+WPquOAhSA+IHRhZGF0YWRhXCA7CivpgJDmnaEgPiBjaGlrdWpvdVwgOwor55uK55uKID4gbWFzdW1hc3VcIDsKK+aoque4niA+IHlva29qaW1hXCA7CivpgZTlvIEgPiB0YXRzdWJlblwgOwor5bej56qfID4gc291a3V0c3VcIDsKK+W3neetiyA+IGthd2FzdWppXCA7Civlg6PotoogPiBzZW4nJ2V0c3VcIDsKK+W3vuedgCA+IGtpbmNoYWt1XCA7CivlhY3ogbcgPiBtZW5zaG9rdVwgOwor5YuH5YqbID4geXV1cnlva3VcIDsKK+W3neerryA+IGthd2FiYXRhXCA7Civli4HljZIgPiBrZWlzb3RzdVwgOwor5YaF56WdID4gdWNoaWl3YWlcIDsKK+iNieeJqSA+IGt1c2Ftb25vXCA7CivlsrPpupMgPiBnYWt1cm9rdVwgOwor5YiG5qW1ID4gYnVua3lva3VcIDsKK+anjeihkyA+IHNvdWp1dHN1XCA7CivpgKPmjqUgPiByZW5zZXRzdVwgOwor5YWl57GNID4gbnl1dXNla2lcIDsKK+WJr+WwhiA+IGZ1a3VzaG91XCA7Civlia/lr6kgPiBmdWt1c2hpblwgOwor55+l5YqbID4gY2hpcnlva3VcIDsKK+WJsuWuiSA+IHdhcml5YXN1XCA7Civlh6bmsbogPiBzaG9rZXRzdVwgOwor5bm05pyrID4gbmVubWF0c3VcIDsKK+W5vuaXpSA+IGlrdW5pY2hpXCA7CivlubTmnIggPiBuZW5nZXRzdVwgOwor5YiH5qCqID4ga2lyaWthYnVcIDsKK+WKueWKmyA+IGtvdXJ5b2t1XCA7CivpqrjpqqggPiBnYWlrb3RzdVwgOwor5YWs56uLID4ga291cml0c3VcIDsKK+W8j+WPsCA+IHNoaWtpZGFpXCA7CivpqqjpsZcgPiBrb3RzdXJpblwgOwor5YaN55m6ID4gc2FpaGF0c3VcIDsKK+atu+WKmyA+IHNoaXJ5b2t1XCA7CivlirTlipsgPiByb3VyeW9rdVwgOwor5qiq562LID4geW9rb3N1amlcIDsKK+W3jOeqnyA+IGdhbmt1dHN1XCA7CivlhqzniakgPiBmdXl1bW9ub1wgOwor6YCG5pWwID4gZ3lha3VzdXVcIDsKK+WFjue2siA+IHVzYWdpYW1pXCA7Civnmb3ns7ggPiBzaGlyYWl0b1wgOwor5q275YilID4gc2hpYmV0c3VcIDsKK+WIh+acrSA+IGtpcmlmdWRhXCA7CivliIfmnJsgPiBzZXRzdWJvdVwgOwor5bmz5pelID4gaGVpaml0c3VcIDsKK+W3puebriA+IGhpZGFyaW1lXCA7Civou73olJEgPiBrZWliZXRzdVwgOwor5Ymj5a6iID4ga2Vua3lha3VcIDsKK+WGheeZuiA+IG5haWhhdHN1XCA7Civli4Xkvb8gPiBjaG9rdXNoaVwgOwor6IqL6JmrID4gaW1vbXVzaGlcIDsKK+WPiOOAhSA+IG1hdGFtYXRhXCA7CivmpIvps6UgPiBtdWt1ZG9yaVwgOwor5bmz5pS/ID4gaGlyYW1hc2FcIDsKK+mqqOmrhCA+IGtvdHN1enVpXCA7Civnm67muKwgPiBtb2t1c29rdVwgOwor5YWD57egID4gbW90b2ppbWVcIDsKK+efs+S6gCA+IGlzaGlnYW1lXCA7CivlhYjntLAgPiBzYWtpYm9zb1wgOwor5YuF5Lu7ID4gY2hva3VuaW5cIDsKK+efm+WFiCA+IGhva29zYWtpXCA7CivluqbluqYgPiB0YWJpdGFiaVwgOwor5YuF5LukID4gY2hva3VyZWlcIDsKK+WFiOe0hCA+IHNlbicneWFrdVwgOwor6JCp5Y6fID4gaGFnaXdhcmFcIDsKK+WFpeelniA+IG55dXVzaGluXCA7Civmra/liJcgPiBzaGlyZXRzdVwgOwor5YiH5patID4gc2V0c3VkYW5cIDsKK+W7g+WroSA+IGhhaWNoYWt1XCA7CivmrarlipsgPiB3YWlyeW9rdVwgOwor5byP5YW4ID4gc2hpa2l0ZW5cIDsKK+i/veaSgyA+IHRzdWlnZWtpXCA7CivoiovolJMgPiBpbW9kenVydVwgOwor5qiZ56ugID4gaHlvdXNob3VcIDsKK+W3u+eJqSA+IG1ha2ltb25vXCA7Civnm7jmrrogPiBzb3VzYXRzdVwgOwor5YaX54mpID4gam91YnV0c3VcIDsKK+WJjeWxiCA+IHplbmt1dHN1XCA7CivliLPlvaIgPiBrdXJpa2F0YVwgOwor5q2j5YmyID4gc2Vpa2F0c3VcIDsKK+i6jemAsiA+IHlha3VzaGluXCA7CivlvIHliKUgPiBiZW5iZXRzdVwgOwor552A5omLID4gY2hha3VzaHVcIDsKK+ato+WIhyA+IHNlaXNldHN1XCA7CivojLbmvKwgPiBjaGFkenVrZVwgOwor5oCW44CFID4ga293YWdvd2FcIDsKK+eVmemzpSA+IHJ5dXVjaG91XCA7CivpgY7lpLEgPiBrYXNoaXRzdVwgOwor6Ii56LazID4gZnVuYWFzaGlcIDsKK+WFteeVpSA+IGhlaXJ5YWt1XCA7Civnmb3npaggPiBoYWt1aHlvdVwgOwor5YGP6aOfID4gaGVuc2hva3VcIDsKK+W3peeOhyA+IGtvdXJpdHN1XCA7CivmrYzlkIggPiB1dGFhd2FzZVwgOwor6LqR6LqFID4gdHN1dHN1amlcIDsKK+atjOWPoyA+IHV0YWd1Y2hpXCA7CivpsLnmnKggPiBrYXRzdW9naVwgOwor6L+r5pKDID4gaGFrdWdla2lcIDsKK+ebuOanjCA+IGFpZHp1Y2hpXCA7CivmsbLjgIUgPiBreXV1a3l1dVwgOwor5Yid5oGLID4gaGF0c3Vrb2lcIDsKK+WFiOeoiyA+IHNha2lob2RvXCA7CivnnYDmg7MgPiBjaGFrdXNvdVwgOwor6Ii56LODID4gZnVuYWNoaW5cIDsKK+iMtua4iyA+IGNoYXNoaWJ1XCA7CivpgI/lvrkgPiB0b3V0ZXRzdVwgOwor55eF6LqrID4gYnlvdXNoaW5cIDsKK+mAsuWtpiA+IHNoaW5nYWt1XCA7CivmpoLoqqwgPiBnYWlzZXRzdVwgOwor6JC95LiBID4gcmFrdWNob3VcIDsKK+mAmuW4syA+IHRzdXVjaG91XCA7CivluorlupcgPiB0b2tvbWlzZVwgOwor6Imv6JasID4gcnlvdXlha3VcIDsKK+asoOWgtCA+IGtldHN1am91XCA7CivliIfmiLsgPiBzZXRzdXJhaVwgOwor5qiZ55+zID4gaHlvdXNla2lcIDsKK+WBvemHkSA+IG5pc2VnYW5lXCA7Civnm67mqJkgPiBtb2t1aHlvdVwgOwor5qW96Kq/ID4gZ2FrdWNob3VcIDsKK+WKm+WAhiA+IHJpa2lyeW91XCA7CivpgbjliKUgPiBzZW5iZXRzdVwgOwor5Yi65a6iID4gc2hpa3lha3VcIDsKK+W4neasoCA+IHRlaWtldHN1XCA7Civlh7rmjZAgPiBzaHV0c3VlblwgOwor552A5b+DID4ga2lnb2tvcm9cIDsKK+mAkOW5tCA+IGNoaWt1bmVuXCA7Civprqvnmq4gPiBzYW1lZ2F3YVwgOwor5bqD5bqDID4gaGlyb2Jpcm9cIDsKK+aoqueUuiA+IHlva29jaG91XCA7Civov5Hml6UgPiBraW5qaXRzdVwgOwor5bqD5bmFID4gaGlyb2hhYmFcIDsKK+WKm+S9nCA+IHJpa2lzYWt1XCA7Civps6nkv6EgPiBreXV1c2hpblwgOwor5qSc6ZayID4ga2VuJydldHN1XCA7CivnnqzliLsgPiBzaHVua29rdVwgOwor55m6552AID4gaGF0Y2hha3VcIDsKK+alteirliA+IGt5b2t1cm9uXCA7CivnnYDlvL4gPiBjaGFrdWRhblwgOwor5YW454mpID4gdGVuYnV0c3VcIDsKK+eZveeamSA+IGhha3VzZWtpXCA7Civnmb3nmb0gPiBoYWt1aGFrdVwgOwor5YiH5oOFID4gc2V0c3Vqb3VcIDsKK+WIkeW+iyA+IGtlaXJpdHN1XCA7CivmqJnnmoQgPiBoeW91dGVraVwgOwor5Ye65omAID4gZGVkb2tvcm9cIDsKK+i/veW+tCA+IHRzdWljaG91XCA7CivnnYDlupUgPiBjaGFrdXRlaVwgOwor5YWa55WlID4gdG91cnlha3VcIDsKK+alteiogCA+IGt5b2t1Z2VuXCA7CivluorlsbEgPiB0b2tveWFtYVwgOwor55eb6KaaID4gdHN1dWtha3VcIDsKK+W5tOW8jyA+IG5lbnNoaWtpXCA7CivnmbrnmYwgPiBoYXRzdWdhblwgOwor552A5bi9ID4gY2hha3Vib3VcIDsKK+WGhea/oCA+IHVjaGlib3JpXCA7CivlhYjnnYAgPiBzZW5jaGFrdVwgOwor552A5bivID4gY2hha3V0YWlcIDsKK+W4uOaYpSA+IHRva29oYXJ1XCA7Civov73lvJQgPiB0c3VpY2hvdVwgOwor6I235o2MID4gbmlzYWJha2lcIDsKK+W5s+W6rSA+IGhpcmFuaXdhXCA7CivlsbHps6kgPiB5YW1hYmF0b1wgOwor6YCy5aKDID4gc2hpbmt5b3VcIDsKK+WxsemzpSA+IHlhbWFkb3JpXCA7CivpgJrlraYgPiB0c3V1Z2FrdVwgOwor55Wc6aGeID4gY2hpa3VydWlcIDsKK+W5s+W6lSA+IGhpcmF6b2tvXCA7CivlhaXnjYQgPiBueXV1Z29rdVwgOwor5YWs54i1ID4ga291c2hha3VcIDsKK+iJsuiJtiA+IGlyb3RzdXlhXCA7CivlubPluZUgPiBoaXJhbWFrdVwgOwor5YWI55m6ID4gc2VucGF0c3VcIDsKK+WJtOWIhyA+IGdhaXNldHN1XCA7Civnmb3nk5wgPiBzaGlyb3VyaVwgOwor6L+R5o6lID4ga2luc2V0c3VcIDsKK+i5sui4niA+IHRzdWt1YmFpXCA7Civou6LogbcgPiB0ZW5zaG9rdVwgOwor6YCP5a+fID4gdG91c2F0c3VcIDsKK+WKh+S9nCA+IGdla2lzYWt1XCA7CivnnYDlsrggPiBjaGFrdWdhblwgOwor6Lu457SiID4gamlrdXNha3VcIDsKK+W4reaWmSA+IHNla2lyeW91XCA7CivmrKDlj7cgPiBrZXRzdWdvdVwgOwor55m654++ID4gaGF0c3VnZW5cIDsKK+eZvueNoyA+IGh5YWt1anV1XCA7Civlg5roiLkgPiB0b21vYnVuZVwgOwor55yf5b+DID4gbWFnb2tvcm9cIDsKK+WKh+S4rSA+IGdla2ljaHV1XCA7CivouYTpiYQgPiB0ZWl0ZXRzdVwgOwor5Ye65by1ID4gc2h1dGNob3VcIDsKK+WDp+iBtyA+IHNvdXNob2t1XCA7CivpgIDlsYggPiB0YWlrdXRzdVwgOwor5YmN5ZOyID4gemVudGV0c3VcIDsKK+WHuuW7rCA+IHNodXRzdXJvXCA7CivpgankvZwgPiB0ZWtpc2FrdVwgOwor5YaF5rOVID4gdWNoaW5vcmlcIDsKK+WHuuW6piA+IHNodXRzdWRvXCA7CivlioPkuIAgPiBrYWt1aXRzdVwgOwor6Lu4566xID4gamlrdWJha29cIDsKK+WzoeiwtyA+IGt5b3Vrb2t1XCA7Civlh7rluK0gPiBzaHVzc2VraVwgOwor5Yil5aOyID4gYmV0c3ViYWlcIDsKK+W4neaXpSA+IHRlaWppdHN1XCA7Civmp4vnr4kgPiBrb3VjaGlrdVwgOwor55uu5pKDID4gbW9rdWdla2lcIDsKK+i7jeiBtyA+IGd1bnNob2t1XCA7CivliIblsYAgPiBidW5reW9rdVwgOwor5Yas5pyNID4gZnV5dWZ1a3VcIDsKK+iMtuadkyA+IGNoYXNoYWt1XCA7Civprq7ng4ggPiBzZW5yZXRzdVwgOwor6auY6KqsID4ga291c2V0c3VcIDsKK+WGmeakjSA+IHNoYXNob2t1XCA7CivliKXloIIgPiBiZXRzdWRvdVwgOwor5YiG5a6/ID4gYnVuc2h1a3VcIDsKK+WFqOa7hSA+IHplbm1ldHN1XCA7CivlsbHpoqggPiB5YW1ha2F6ZVwgOwor6I2J5pG6ID4ga3VzYXp1cmlcIDsKK+WFiOeJqSA+IHNha2ltb25vXCA7Civnmb7ngrkgPiBoeWFrdXRlblwgOwor6YCG5aSiID4gc2FrYXl1bWVcIDsKK+WFieeGsSA+IGtvdW5ldHN1XCA7CivliY3liJcgPiB6ZW5yZXRzdVwgOwor6YCG5aKDID4gZ3lha2t5b3VcIDsKK+eZh+eZqiA+IGthbnNoYWt1XCA7Civou43nuK4gPiBndW5zaHVrdVwgOwor6a6t5ryBID4gc2FrZXJ5b3VcIDsKK+mBlOS6uiA+IHRhdHN1amluXCA7CivoibLntJkgPiBzaGlraXNoaVwgOwor55m95r+BID4gaGFrdWRha3VcIDsKK+WEgeengCA+IHNodW5zaHV1XCA7CivluYXluoMgPiBoYWJhaGlyb1wgOwor5bmz5aOwID4gaHlvdXNob3VcIDsKK+WxsemcpyA+IHlhbWFnaXJpXCA7CivpgLjlh7ogPiBpc3NodXRzdVwgOwor55uX5pKuID4gdG91c2F0c3VcIDsKK+WFpea1tCA+IG55dXV5b2t1XCA7CivmrKDkvr8gPiBrZXRzdWJpblwgOwor6Lu955+zID4ga2FydWlzaGlcIDsKK+WIh+WmuyA+IGtpcml6dW1hXCA7Civlt7vmnKsgPiBrYW5tYXRzdVwgOwor6YCa5ZWGID4gdHN1dXNob3VcIDsKK+i3nemqqCA+IGt5b2tvdHN1XCA7CivlhaXmtKUgPiBueXV1c2hpblwgOwor55Sf6aaWID4gbmFtYWt1YmlcIDsKK+WFpea0myA+IG55dXVyYWt1XCA7Civnm7Tmg4UgPiBjaG9rdWpvdVwgOwor5Ye25a6FID4ga3lvdXRha3VcIDsKK+WxsemamyA+IHlhbWFnaXdhXCA7Civluq3lhYggPiBuaXdhc2FraVwgOwor5bGx6ZmwID4geWFtYWthZ2VcIDsKK+WJg+WIgCA+IGthbWlzb3JpXCA7CivmqKrms6IgPiB5b2tvbmFtaVwgOwor552A5ZywID4gY2hha3VjaGlcIDsKK+ebl+aOmCA+IHRvdWt1dHN1XCA7CivnnIHluoEgPiBzaG91Y2hvdVwgOwor55WZ6YeRID4gdG9tZWdhbmVcIDsKK+api+aigSA+IGt5b3VyeW91XCA7CivnlLrplbcgPiBjaG91Y2hvdVwgOwor5bGe6aCYID4gem9rdXJ5b3VcIDsKK+mAmuWRiiA+IHRzdXVrb2t1XCA7CivliY3lgJ8gPiB6ZW5zaGFrdVwgOwor5qyg5LmPID4ga2V0c3Vib3VcIDsKK+alteiHtCA+IGt5b2t1Y2hpXCA7CivliKXlkb0gPiBiZXRzdW1laVwgOwor6Imv562WID4gcnlvdXNha3VcIDsKK+eUmOmjnyA+IGFtYXNob2t1XCA7CivlhoXmnqAgPiB1Y2hpd2FrdVwgOwor5Yil5ZCNID4gYmV0c3VtZWlcIDsKK+api+adrSA+IGhhc2hpZ3VpXCA7CivliKXlj7cgPiBiZXRzdWdvdVwgOwor5qmL5p2ZID4gaGFzaGlndWlcIDsKK+WAn+mKrSA+IHNoYWt1c2VuXCA7CivnnInlsLsgPiBtYXl1amlyaVwgOwor55yf5aaCID4gc2hpbicnbnlvXCA7Civoi6XmsLQgPiB3YWthbWl6dVwgOwor6YCa5YqbID4gdHN1dXJpa2lcIDsKK+W6l+WFiCA+IG1pc2VzYWtpXCA7CivnlZTpgZMgPiBhemVtaWNoaVwgOwor6Iul5q6/ID4gd2FrYXRvbm9cIDsKK+mAmuWJhyA+IHRzdXVzb2t1XCA7CivliJ3lj6MgPiBzaG9rdWNoaVwgOwor5qi95p+/ID4gdGFydWdha2lcIDsKK+iHreimmiA+IHNodXVrYWt1XCA7CivpgLHkvJEgPiBzaHV1a3l1dVwgOwor55yB5a+fID4gc2Vpc2F0c3VcIDsKK+aoquanmCA+IHlva296YW1hXCA7CivmqKrmp40gPiB5b2tveWFyaVwgOwor5Ya35b65ID4gcmVpdGV0c3VcIDsKK+edo+S/gyA+IHRva3Vzb2t1XCA7CivliKTliKUgPiBoYW5iZXRzdVwgOwor6Iqz54OIID4gaG91cmV0c3VcIDsKK+W4uOWuoiA+IGpvdWt5YWt1XCA7CivluLPlsLsgPiBjaG91amlyaVwgOwor5Ye65ZyfID4gc2h1dHN1ZG9cIDsKK+iLl+awtCA+IG5hd2FtaXp1XCA7CivlhYjmsbogPiBzZW5rZXRzdVwgOwor6Lu9546HID4ga2Vpc290c3VcIDsKK+WxsemJviA+IHlhbWFib2tvXCA7Civpq4TomasgPiB6dWltdXNoaVwgOwor55qG5qeYID4gbWluYXNhbWFcIDsKK+WIpeWGjCA+IGJlc3NhdHN1XCA7CivliKXlhoogPiBiZXNzYXRzdVwgOwor5bi35a2QID4ga2F0YWJpcmFcIDsKK+iNieW4giA+IGt1c2FpY2hpXCA7Civnmb3mqoAgPiBieWFrdWRhblwgOwor6Iul5qeYID4gd2FrYXNhbWFcIDsKK+ebtOWwhCA+IGNob2t1c2hhXCA7CivlsbHph4wgPiB5YW1hemF0b1wgOwor6YCA5Y20ID4gdGFpa3lha3VcIDsKK+i/veWPiiA+IHRzdWlreXV1XCA7Civmp43njokgPiB5YXJpZGFtYVwgOwor55Sy6YmEID4ga291dGV0c3VcIDsKK+WxgOmdoiA+IGt5b2t1bWVuXCA7CivpgJrkv6EgPiB0c3V1c2hpblwgOwor5qW157eaID4ga3lva3VzZW5cIDsKK+mAmuS/lyA+IHRzdXV6b2t1XCA7CivoiLnnuIEgPiBmdW5hYmVyaVwgOwor55qT5pyIID4ga291Z2V0c3VcIDsKK+iJsuebuCA+IHNoaWtpc291XCA7CivoibLnm7IgPiBzaGlraW1vdVwgOwor55yJ5aKoID4gbWF5dXp1bWlcIDsKK+WGheaOpSA+IG5haXNldHN1XCA7Civlt7TmiKYgPiB0b21vZXNlblwgOwor5YWo5puyID4gemVua3lva3VcIDsKK+W+kOOAhSA+IHNvcm9zb3JvXCA7Civou7jniakgPiBqaWt1bW9ub1wgOwor5qWt57i+ID4gZ3lvdXNla2lcIDsKK+WFpeacqCA+IG55dXVib2t1XCA7CivnmbvmpbUgPiB0b3VreW9rdVwgOwor5qW157SwID4gZ29rdWJvc29cIDsKK+WFpeacnSA+IG55dXVjaG91XCA7CivpgIHliKUgPiBzb3ViZXRzdVwgOwor6Laz6aaWID4gYXNoaWt1YmlcIDsKK+WFvOaRgiA+IGtlbnNldHN1XCA7CivliKXkvr8gPiBiZXRzdWJpblwgOwor5bm05YilID4gbmVuYmV0c3VcIDsKK+WxgOmZkCA+IGt5b2t1Z2VuXCA7CivnlJ/pjLIgPiBuYW1hcm9rdVwgOwor5ben5ouZID4ga291c2V0c3VcIDsKK+eZveaihSA+IHNoaXJhdW1lXCA7Civoh4boqqwgPiBva3VzZXRzdVwgOwor5YWI5qeYID4gc2FraXNhbWFcIDsKK+WFqOaXpSA+IHplbmppdHN1XCA7CivluIPlvJUgPiBudW5vYmlraVwgOwor55uj5a+fID4ga2Fuc2F0c3VcIDsKK+WIhuWKmyA+IGJ1bnJ5b2t1XCA7Civlgo3ogLMgPiBrYXRhbWltaVwgOwor55Wl6KiAID4gcnlha3VnZW5cIDsKK+WIpeS6uiA+IGJldHN1bmluXCA7CivliIblibIgPiBidW5rYXRzdVwgOwor5bCP6a2aID4ga296YWthbmFcIDsKK+W3puaJiyA+IGhpZGFyaXRlXCA7CivoibLnlLogPiBpcm9tYWNoaVwgOwor6Imy55S3ID4gaXJvb3Rva29cIDsKK+alveeroCA+IGdha3VzaG91XCA7CivliIbliKUgPiBidW5iZXRzdVwgOwor5YiG5YiXID4gYnVucmV0c3VcIDsKK+msseeXhSA+IHV0c3VieW91XCA7CivpgIbkv64gPiBneWFrdXNodVwgOwor55u05aOyID4gY2hva3ViYWlcIDsKK+WAn+iyuCA+IHNoYWt1dGFpXCA7CivlgJ/osqEgPiBzaGFrdXphaVwgOwor5Yas5bGxID4gZnV5dXlhbWFcIDsKK+WIhuWGiiA+IGJ1bnNhdHN1XCA7Civou43nlaUgPiBndW5yeWFrdVwgOwor55So6YGUID4geW91dGF0c3VcIDsKK+iNkuWktyA+IGFyYWViaXN1XCA7CivmpbXnq68gPiBreW9rdXRhblwgOwor55yf5Y2XID4gbWFtaW5hbWlcIDsKK+eVpeijhSA+IHJ5YWt1c291XCA7CivliJfkvJ0gPiByZXRzdWRlblwgOwor5YWx5oyvID4ga3lvdXNoaW5cIDsKK+iIueerryA+IGZ1bmFiYXRhXCA7Civpr6jluqcgPiBrdWppcmF6YVwgOwor552A5Lu7ID4gY2hha3VuaW5cIDsKK+i+u+WggiA+IHRzdWppZG91XCA7Civkv7rpgZQgPiBvcmV0YWNoaVwgOwor55yf5YuHID4gc2hpbicneXV1XCA7CivlgpjntJkgPiBrYXNhZ2FtaVwgOwor55m95pi8ID4gaGFrdWNodXVcIDsKK+eXvOeWviA+IGtvc2hpdHN1XCA7Civlh7rlh6YgPiBkZWRva29yb1wgOwor5YG96ICFID4gbmlzZW1vbm9cIDsKK+WFi+acjSA+IGtva3VmdWt1XCA7CivnlLvos6ogPiBnYXNoaXRzdVwgOwor6Lez6LqNID4gY2hvdXlha3VcIDsKK+i/veS8uCA+IHRzdWlzaGluXCA7CivnmbrmmI4gPiBoYXRzdW1laVwgOwor6YCG5LiKID4gZ3lha3Vqb3VcIDsKK+WFiOaciCA+IHNlbmdldHN1XCA7CivlubPku4QgPiBoeW91c29rdVwgOwor5YaG5b2iID4gbWFydWdhdGFcIDsKK+WwkemhjSA+IHNob3VnYWt1XCA7Civov5TljbQgPiBoZW5reWFrdVwgOwor5bCP6aGNID4gc2hvdWdha3VcIDsKK+WHtuWFhiA+IGt5b3VjaG91XCA7CivpqYDpgLIgPiBiYWt1c2hpblwgOwor5qWT57OWID4ga2FlZGV0b3VcIDsKK+W5leWGhSA+IG1ha3V1Y2hpXCA7Civlt7vlsLogPiBtYWtpamFrdVwgOwor5YWI5pelID4gc2Vuaml0c3VcIDsKK+WAn+impyA+IHNoYWt1cmFuXCA7Civpp5Lps6UgPiBrb21hZG9yaVwgOwor5YGl6ISaID4ga2Vua3lha3VcIDsKK+W5leWDmiA+IGJha3VyeW91XCA7Civlhpnlrp8gPiBzaGFqaXRzdVwgOwor5YWD5pelID4gZ2Fuaml0c3VcIDsKK+eZveaPjyA+IGhha3VieW91XCA7CivlsLvph40gPiBzaGlyaW9tb1wgOwor6ISb6aqoID4ga2Vpa290c3VcIDsKK+WFg+aWuSA+IG1vdG9rYXRhXCA7Civnmbrmj5ogPiBoYXRzdXlvdVwgOwor6Iy25aO6ID4gY2hhdHN1Ym9cIDsKK+S/rui6qyA+IHNodXVzaGluXCA7CivnmbrmjpggPiBoYWtrdXRzdVwgOwor5bed5bqVID4ga2F3YXpva29cIDsKK+W3neW6iiA+IGthd2Fkb2tvXCA7Civlh7bkvZwgPiBreW91c2FrdVwgOwor5qaC55WlID4gZ2Fpcnlha3VcIDsKK+W3neW5hSA+IGthd2FoYWJhXCA7Civlh7rkuqwgPiBzaHVra3lvdVwgOwor5YK355eFID4gc2hvdWJ5b3VcIDsKK+akjuiMuCA+IHNoaWl0YWtlXCA7Civlt57lt54gPiBzaHV1c2h1dVwgOwor5YGc6IG3ID4gdGVpc2hva3VcIDsKK+S+kemjnyA+IHl1dXNob2t1XCA7CivlhoXlsYAgPiBuYWlreW9rdVwgOwor55S36KaqID4gb3Rva29veWFcIDsKK+WHm+WGvSA+IHJpbnJldHN1XCA7CivoirHmn4QgPiBoYW5hZ2FyYVwgOwor5YWs5byPID4ga291c2hpa2lcIDsKK+WxseilniA+IHlhbWFoaWRhXCA7CivovrvljaAgPiB0c3VqaXVyYVwgOwor5qeY5qeYID4gc2FtYXphbWFcIDsKK+ecn+S4rSA+IG1hbicnbmFrYVwgOwor5YaF5a+GID4gbmFpbWl0c3VcIDsKK+iKseadnyA+IGhhbmF0YWJhXCA7CivlhoXlrp8gPiBuYWlqaXRzdVwgOwor5YWx5biDID4gdG9tb251bm9cIDsKK+WxseijviA+IHlhbWFzdXNvXCA7Civpq5jnqbogPiB0YWthem9yYVwgOwor6Iqx5pytID4gaGFuYWZ1ZGFcIDsKK+eZvuaFiyA+IGh5YWt1dGFpXCA7Civnl5Tnlr4gPiBqaXNoaXRzdVwgOwor5YWr5bmhID4gaGFjaGltYW5cIDsKK+W3oeWvnyA+IGp1bnNhdHN1XCA7Civou73mpa0gPiBrYXJ1d2F6YVwgOwor5bed5bC7ID4ga2F3YWppcmlcIDsKK+ebtOWJjSA+IGNob2t1emVuXCA7Civmo5LooZMgPiBib3VqdXRzdVwgOwor6I2J5Y+iID4ga3VzYW11cmFcIDsKK+iKseaZgiA+IGhhbmFkb2tpXCA7CivlhaXluZUgPiBueXV1bWFrdVwgOwor55u05YiAID4gY2hva3V0b3VcIDsKK+eZuuaDhSA+IGhhdHN1am91XCA7Civkv7PorJQgPiBoYWlneWFrdVwgOwor5bKp6ISIID4gZ2FubXlha3VcIDsKK+W4s+WFgyA+IGNob3Vtb3RvXCA7Civnl4XnmoQgPiBieW91dGVraVwgOwor5qiq5bmFID4geW9rb2hhYmFcIDsKK+eXheeZliA+IGJ5b3VoZWtpXCA7Civog7jpq5ggPiBtdW5hZGFrYVwgOwor5L+D6YCyID4gc29rdXNoaW5cIDsKK+aomeW+tCA+IGh5b3VjaG91XCA7Civnl4Xnl4cgPiBieW91c2hvdVwgOwor5Ya35Y20ID4gcmVpa3lha3VcIDsKK+iGj+ihgCA+IGtvdWtldHN1XCA7CivlgrfniakgPiBraXp1bW9ub1wgOwor55m+5byKID4gaHlha3VoZWlcIDsKK+WHneS5syA+IGd5b3VueXV1XCA7CivnlZzoiI4gPiBjaGlrdXNoYVwgOwor5YWx5a2mID4ga3lvdWdha3VcIDsKK+WGheWjlSA+IHVjaGlib3JpXCA7CivlsJHph48gPiBzaG91cnlvdVwgOwor5YWo5bGAID4gemVua3lva3VcIDsKK+WFi+W+qSA+IGtva3VmdWt1XCA7Civnmb7lubQgPiBoeWFrdW5lblwgOwor6Laz6Lu9ID4gYXNoaWdhcnVcIDsKK+Wwj+mHjyA+IHNob3VyeW91XCA7CivlgaXnrYYgPiBrZW5waXRzdVwgOwor5a+S6aSFID4ga2FubW9jaGlcIDsKK+WvrumVtyA+IHJ5b3VjaG91XCA7CivlhYjlvbkgPiBzZW4nJ3lha3VcIDsKK+S/iui2syA+IHNodW5zb2t1XCA7CivlhoXloIAgPiB1Y2hpYm9yaVwgOwor5YWl5a+CID4gbnl1dWpha3VcIDsKK+iHo+exjSA+IHNoaW5zZWtpXCA7Civkv6Hoqo0gPiBzaGluJyduaW5cIDsKK+WGhuWeiyA+IG1hcnVnYXRhXCA7Civovpvli50gPiBzaGluc2hvdVwgOwor5YWl5a2mID4gbnl1dWdha3VcIDsKK+alreeJqSA+IHdhemFtb25vXCA7CivotaTpnbQgPiBha2FndXRzdVwgOwor6Laz6LehID4gc29rdXNla2lcIDsKK+S/oeiovCA+IHNoaW5zaG91XCA7Civlt57looMgPiBzaHV1a3lvdVwgOwor5L+h6KiXID4gc2hpbnRha3VcIDsKK+Wuv+mnhSA+IHNodWt1ZWtpXCA7CivmpbXngrkgPiBreW9rdXRlblwgOwor5L+X6Kq/ID4gem9rdWNob3VcIDsKK+iIjOeZjCA+IHpldHN1Z2FuXCA7Civnm7TkuK0gPiB0YWRhbmFrYVwgOwor6Iqx5oi/ID4gaGFuYWZ1c2FcIDsKK+ebtOS4iiA+IGNob2t1am91XCA7Civnlqvnl4UgPiB5YWt1YnlvdVwgOwor6Iul5a6uID4gd2FrYW1peWFcIDsKK+WFg+W4syA+IG1vdG9jaG91XCA7Civlr5vpl4ogPiBrYW5rYXRzdVwgOwor5a+46YmEID4gc3VudGV0c3VcIDsKK+eZvuWusyA+IGh5YWt1Z2FpXCA7CivlgbbnmbogPiBndXVoYXRzdVwgOwor5bCP6LqrID4gc2hvdXNoaW5cIDsKK+Wuv+mhmCA+IHNodWt1Z2FuXCA7CivnlJ/olqwgPiBzaG91eWFrdVwgOwor5a6/6aGMID4gc2h1a3VkYWlcIDsKK+eTtuipsCA+IGJpbmR6dW1lXCA7CivlgY/nqp8gPiBoZW5rdXRzdVwgOwor5YWI5bGxID4gc2FraXlhbWFcIDsKK+eUt+iJsiA+IG5hbnNob2t1XCA7CivohLHovKogPiBkYXRzdXJpblwgOwor6Lm055CDID4gc2h1dWt5dXVcIDsKK+WAuee0hCA+IGtlbicneWFrdVwgOwor6I2J5LiIID4ga3VzYXRha2VcIDsKK+WFpeWhviA+IG55dXVqdWt1XCA7Civpq5jnjocgPiBrb3VyaXRzdVwgOwor6ae/6LazID4gc2h1bnNva3VcIDsKK+WEquW9oiA+IHlhc2FnYXRhXCA7CivlhYjlrqIgPiBzZW5reWFrdVwgOwor55a154mpID4ga2l6dW1vbm9cIDsKK+S/l+ihhiA+IHpva3VzaHV1XCA7CivlsbHohpogPiB5YW1haGFkYVwgOwor5qaV5qi5ID4gZ2FqdW1hcnVcIDsKK+WFiOWuiSA+IHNha2l5YXN1XCA7CivppqzpnaIgPiB1bWFkenVyYVwgOwor55uX5LyQID4gdG91YmF0c3VcIDsKK+eZvuWnkyA+IGh5YWt1c2VpXCA7Civlsqnnqp8gPiBnYW5rdXRzdVwgOwor5q2044CFID4gcmVraXJla2lcIDsKK+WFheWunyA+IGp1dWppdHN1XCA7CivoirHlvaIgPiBoYW5hZ2F0YVwgOwor55uX5Lq6ID4gbnVzdWJpdG9cIDsKK+eZveWmmSA+IHNoaXJvdGFlXCA7CivlsbHohIggPiB5YW1hbmFtaVwgOwor6Iqx5byBID4gaGFuYWJpcmFcIDsKK+WxseiCjCA+IHlhbWFoYWRhXCA7CivlhaXlm70gPiBueXV1a29rdVwgOwor5qW15rSLID4ga3lva3V5b3VcIDsKK+eZveWjgSA+IGhha3VoZWtpXCA7Civpq5jnhrEgPiBrb3VuZXRzdVwgOwor55m95aKoID4gaGFrdWJva3VcIDsKK+eZuuWjsiA+IGhhdHN1YmFpXCA7CivlhoXlipsgPiBuYWlyeW9rdVwgOwor6LWk6YqFID4gc2hha3Vkb3VcIDsKK+WBveeJqSA+IG5pc2Vtb25vXCA7Civnmq7liaUgPiBrYXdhaGFnaVwgOwor5beo5Yi5ID4ga3lvc2F0c3VcIDsKK+mqqOebpCA+IGtvdHN1YmFuXCA7Civpr4nlj6MgPiBrb2lndWNoaVwgOwor55Sf6ImyID4gc2Vpc2hva3VcIDsKK+WFiOWkqiA+IHNha2lidXRvXCA7CivotoXotoogPiBjaG91ZXRzdVwgOwor5a6a6aOfID4gdGVpc2hva3VcIDsKK+WFteWNkiA+IGhlaXNvdHN1XCA7Civmp5jlvI8gPiB5b3VzaGlraVwgOwor5Ly06aOfID4gYmFuc2hva3VcIDsKK+WFteWKmyA+IGhlaXJ5b2t1XCA7Civmpb3mpb0gPiByYWt1cmFrdVwgOwor6auY5r2uID4gdGFrYXNoaW9cIDsKK+WGheWBtCA+IHVjaGlnYXdhXCA7CivohIXov6sgPiBreW91aGFrdVwgOwor6auY5r2UID4ga291a2V0c3VcIDsKK+iFueiGnCA+IGZ1a3VtYWt1XCA7CivlhoXlgIkgPiB1Y2hpZ3VyYVwgOwor6Iqx5a6IID4gaGFuYW1vcmlcIDsKK+iDuOmDrSA+IGt5b3VrYWt1XCA7CivlhbblhbYgPiBzb3Jlem9yZVwgOwor55eF5q+SID4gYnlvdWRva3VcIDsKK+altealvSA+IGdva3VyYWt1XCA7CivmpbXmpbUgPiBnb2t1Z29rdVwgOwor55eF5q20ID4gYnlvdXJla2lcIDsKK+iKseWrgSA+IGhhbmF5b21lXCA7CivlhajlipsgPiB6ZW5yeW9rdVwgOwor5YWx5YWxID4gdG9tb2RvbW9cIDsKK+iKseWpvyA+IGhhbmFtdWtvXCA7CivotIvpppYgPiBuaXNla3ViaVwgOwor5L6b6KiXID4ga3lvdXRha3VcIDsKK+iLpeWQmyA+IHdha2FnaW1pXCA7CivlsYDoiI4gPiBreW9rdXNoYVwgOwor5bee5L+XID4gc2h1dXpva3VcIDsKK+S/oeiFuSA+IHNoaW5wdWt1XCA7CivmpI3nlJ8gPiBzaG9rdXNlaVwgOwor5qip5YqbID4ga2Vucnlva3VcIDsKK+WEquWlsyA+IHlhc2FvbicnYVwgOwor55S7562WID4ga2FrdXNha3VcIDsKK+afk+mrqiA+IHNlbnBhdHN1XCA7Civlrr/phZQgPiBzaHVrdXN1aVwgOwor6LWr6LWrID4ga2FrdWtha3VcIDsKK+S8uOmVtyA+IHNoaW5jaG91XCA7Civlr4bpgKAgPiBtaXRzdXpvdVwgOwor5qW95puyID4gZ2Fra3lva3VcIDsKK+mrmOazoiA+IHRha2FuYW1pXCA7CivkvJrpo58gPiBrYWlzaG9rdVwgOwor5YCS56uLID4gdG91cml0c3VcIDsKK+S/l+iHrSA+IHpva3VzaHV1XCA7CivoibLmhJ8gPiBzaGlraWthblwgOwor5bem5LiKID4gaGlkYXJpdWVcIDsKK+WFiOWTsiA+IHNlbnRldHN1XCA7CivmpbXmnbEgPiBreW9rdXRvdVwgOwor6Imy5oOFID4gc2hpa2lqb3VcIDsKK+mtmuWxiyA+IHNha2FuYXlhXCA7Civot7PnrrEgPiB0b2JpYmFrb1wgOwor6Luf5byPID4gbmFuc2hpa2lcIDsKK+mrmOauvyA+IHRha2Fkb25vXCA7CivlgY/niYcgPiBrYXRhaGFyYVwgOwor5bed5LiKID4ga2F3YWthbWlcIDsKK+WxseeoiyA+IHlhbWFob2RvXCA7Civnmbrli5UgPiBoYXRzdWRvdVwgOwor5YWI5Y+jID4gc2Vua3VjaGlcIDsKK+iCi+mqqCA+IHJva2tvdHN1XCA7CivnlZznlKMgPiBjaGlrdXNhblwgOwor6Imy5b2pID4gc2hpa2lzYWlcIDsKK+iJr+W/gyA+IHJ5b3VzaGluXCA7CivnlJ/nsbMgPiBuYW1hZ29tZVwgOwor55So562GID4geW91aGl0c3VcIDsKK+WFpeS/oSA+IG55dXVzaGluXCA7Civoh5PniakgPiB6b3Vtb3RzdVwgOwor5L+X57+SID4gem9rdXNodXVcIDsKK+mBmeOAhSA+IGhhcnViYXJ1XCA7CivpqqjngbAgPiBrb3RzdWJhaVwgOwor6Ii55peFID4gZnVuYXRhYmlcIDsKK+iIueaWuSA+IGZ1bmFrYXRhXCA7CivoirHlnJIgPiBoYW5hem9ub1wgOwor5YWl5Ly4ID4gbnl1dXNoaW5cIDsKK+WFieWKmyA+IGtvdXJ5b2t1XCA7Civou43lvosgPiBndW5yaXRzdVwgOwor6LuN5b25ID4gZ3VuJyd5YWt1XCA7Civnmb7lhIQgPiBoeWFrdW9rdVwgOwor5bGR57GgID4ga3V6dWthZ29cIDsKK+eXm+aSgyA+IHRzdXVnZWtpXCA7CivlhajkubMgPiB6ZW4nJ255dXVcIDsKK+agvOiqvyA+IGtha3VjaG91XCA7CivlhaXkuqwgPiBueXV1a3lvdVwgOwor6Ly45Ye6ID4geXVzaHV0c3VcIDsKK+amguaLrCA+IGdhaWthdHN1XCA7CivohqDnnYAgPiBrb3VjaGFrdVwgOwor5L+h57WMID4gc2hpbmt5b3VcIDsKK+S9teiorSA+IGhlaXNldHN1XCA7Civnmb7lgI0gPiBoeWFrdWJhaVwgOwor6LuK5bqnID4ga3VydW1hemFcIDsKK+WFiOWFpSA+IHNlbicnbnl1dVwgOwor5qiq5LiBID4geW9rb2Nob3VcIDsKK+WAn+eUqCA+IHNoYWt1eW91XCA7Civlrr/os4MgPiB5YWRvY2hpblwgOwor55Wc54qsID4gY2hpa3VrZW5cIDsKK+WCjeadliA+IHNvYmFkenVlXCA7CivlhYPlhYMgPiBtb3RvbW90b1wgOwor5a+d6KKLID4gbmVidWt1cm9cIDsKK+iKneWcsCA+IHNoaWJhY2hpXCA7CivnmoTkuK0gPiB0ZWtpY2h1dVwgOwor5bCx57ibID4gc2h1dWJha3VcIDsKK+WvhuisgCA+IG1pdHN1Ym91XCA7Civlr4boq4cgPiBtaXRzdWRhblwgOwor55m65LukID4gaGF0c3VyZWlcIDsKK+iJr+WwhiA+IHJ5b3VzaG91XCA7CivlrqLou4ogPiBreWFrdXNoYVwgOwor6ISx6ImyID4gZGFzc2hva3VcIDsKK+eZvuS4liA+IGh5YWt1c2VpXCA7Civpq5jmnK0gPiBrb3VzYXRzdVwgOwor55m+5LiHID4gaHlha3VtYW5cIDsKK+Wwj+iFuCA+IHNob3VjaG91XCA7Civku5npqqggPiBzZW5rb3RzdVwgOwor5a6J6YWSID4geWFzdXpha2VcIDsKK+WDu+WigyA+IGhla2lreW91XCA7CivlrabplbcgPiBnYWt1Y2hvdVwgOwor6LuK5bGLID4ga3VydW1heWFcIDsKK+WEquWKoyA+IHl1dXJldHN1XCA7Civouqvlv4MgPiBzaGluc2hpblwgOwor55eb5oOcID4gdHN1dXNla2lcIDsKK+WBveacrSA+IG5pc2VmdWRhXCA7CivotIvph5EgPiBuaXNlZ2FuZVwgOwor5YCf54mpID4ga2FyaW1vbm9cIDsKK+W6puOAhSA+IHRhYml0YWJpXCA7CivotaTom5kgPiBha2FnYWVydVwgOwor5YK35b+DID4gc2hvdXNoaW5cIDsKK+S7mOmmrCA+IHRzdWtldW1hXCA7CivotaTomasgPiBha2FtdXNoaVwgOwor5L2X6KiAID4gd2FiaWdvdG9cIDsKK+eUn+eariA+IG5hbWFrYXdhXCA7CivlgbTmnZYgPiBzb2JhZHp1ZVwgOwor5qW15oCnID4ga3lva3VzZWlcIDsKK+eXm+W/gyA+IHRzdXVzaGluXCA7CivoibLlpbMgPiBpcm9vbicnbmFcIDsKK+i8quS8kCA+IHJpbmJhdHN1XCA7CivlgI3njocgPiBiYWlyaXRzdVwgOwor5L+X56ewID4gem9rdXNob3VcIDsKK+WxseeMvyA+IHlhbWF6YXJ1XCA7CivlsbHnjKsgPiB5YW1hbmVrb1wgOwor5Lyd6YGUID4gZGVudGF0c3VcIDsKK+akjeawkSA+IHNob2t1bWluXCA7Civlr7Xoh6MgPiBjaG91c2hpblwgOwor5qSN5q+bID4gc2hva3Vtb3VcIDsKK+iCiemNiyA+IG5pa3VuYWJlXCA7CivnlLfniLUgPiBkYW5zaGFrdVwgOwor5Lq66a2CID4gaGl0b2RhbWFcIDsKK+iFueeXmyA+IGZ1a3V0c3V1XCA7CivoiLnlupUgPiBmdW5hem9rb1wgOwor6Ii55bqKID4gZnVuYWRva29cIDsKK+mnhuiQvSA+IGtha2VvY2hpXCA7CivmpbXluIwgPiBnb2t1bWFyZVwgOwor5L+K56eAID4gc2h1bnNodXVcIDsKK+S6uumqqCA+IGppbmtvdHN1XCA7CivlsI/ntZAgPiBrb211c3ViaVwgOwor5a6f6KqsID4gamlzc2V0c3VcIDsKK+WxpeeJqSA+IGhha2ltb25vXCA7Civnl4XlvrQgPiBieW91Y2hvdVwgOwor5a6a6KqsID4gdGVpc2V0c3VcIDsKK+iHqOaciCA+IHJpbmdldHN1XCA7Civnl4XlvLEgPiBieW91amFrdVwgOwor5bqD44CFID4gaGlyb2Jpcm9cIDsKK+mqqOadkCA+IGtvdHN1emFpXCA7CivnlKPniakgPiBzYW5idXRzdVwgOwor5a6Y6KitID4ga2Fuc2V0c3VcIDsKK+aknOacrSA+IGtlbnNhdHN1XCA7Civoh6PmnI0gPiBzaGlucHVrdVwgOwor6LKq6aOfID4gZG9uc2hva3VcIDsKK+eXheW6iiA+IGJ5b3VzaG91XCA7Civkv6HnlKggPiBzaGluJyd5b3VcIDsKK+iEh+iFuSA+IHdha2liYXJhXCA7CivnlJ/niakgPiBuYW1hbW9ub1wgOwor5L6b57WmID4ga3lvdWt5dXVcIDsKK+WxgOeVqiA+IGt5b2t1YmFuXCA7CivlsI/nrZYgPiBzaG91c2FrdVwgOwor5qeN5YWIID4geWFyaXNha2lcIDsKK+eXsOWjuiA+IHRhbnRzdWJvXCA7Civpq6rluoogPiBrYW1pZG9rb1wgOwor5a+S6ImyID4ga2Fuc2hva3VcIDsKK+akjeagvSA+IHNob2t1c2FpXCA7CivkvJHotrMgPiBreXV1c29rdVwgOwor6Ii55a6/ID4gZnVuYXlhZG9cIDsKK+S7j+mWgCA+IGJ1dHN1bW9uXCA7CivoiLnlrqIgPiBzZW5reWFrdVwgOwor5YKN5b25ID4gd2FraXlha3VcIDsKK+iCiei/qyA+IG5pa3VoYWt1XCA7CivmoLjohpwgPiBrYWt1bWFrdVwgOwor5Lqh6aq4ID4gbmFraWdhcmFcIDsKK+iHmOaciCA+IHJvdWdldHN1XCA7CivmpI3mnpcgPiBzaG9rdXJpblwgOwor5a6M6KizID4ga2FuJyd5YWt1XCA7Civog7johpwgPiBreW91bWFrdVwgOwor6aO96aOfID4gaG91c2hva3VcIDsKK+S/rueGnyA+IHNodXVqdWt1XCA7CivlroXoqLogPiB0YWt1c2hpblwgOwor5bCP56aEID4gc2hvdXJva3VcIDsKK+S8neiqrCA+IGRlbnNldHN1XCA7CivotrPnmZYgPiBhc2hpa3VzZVwgOwor6ISx56iOID4gZGF0c3V6ZWlcIDsKK+S6rOmfvyA+IGt5b3VreW91XCA7Civou6LlhaUgPiB0ZW4nJ255dXVcIDsKK+WvvueriyA+IHRhaXJpdHN1XCA7CivohavniakgPiBzaHVtb3RzdVwgOwor5qW15aSnID4ga3lva3VkYWlcIDsKK+eVpeabuCA+IHJ5YWt1c2hvXCA7Civlrr/oiI4gPiBzaHVrdXNoYVwgOwor6LuN5Y2SID4gZ3Vuc290c3VcIDsKK+WzsOWzsCA+IG1pbmVtaW5lXCA7CivlrrnoibIgPiB5b3VzaG9rdVwgOwor5LuL6YyvID4ga2Fpc2hha3VcIDsKK+ajruajriA+IHNoaW5zaGluXCA7CivltYzlhaUgPiBrYW4nJ255dXVcIDsKK+i7kuWIpSA+IGtlbmJldHN1XCA7CivlgbTlvbkgPiBzb2JheWFrdVwgOwor6Lui5YCfID4gdGVuc2hha3VcIDsKK+iEiue0oiA+IHNla2lzYWt1XCA7CivkvJHoqLogPiBreXV1c2hpblwgOwor6LKh6ZalID4gemFpYmF0c3VcIDsKK+eSsOevgCA+IGthbnNldHN1XCA7CivmnKjpvKAgPiBraW5lenVtaVwgOwor6aqo5oqYID4ga29zc2V0c3VcIDsKK+iEmueriyA+IGt5YXRhdHN1XCA7Civlg7vkuosgPiBoaWdhZ290b1wgOwor55Wl5paHID4gcnlha3VidW5cIDsKK+i7kuWFiCA+IG5va2lzYWtpXCA7CivmoLnntbYgPiBrb256ZXRzdVwgOwor5qW15ZywID4ga3lva3VjaGlcIDsKK+aenemBkyA+IGVkYW1pY2hpXCA7Civlrr/ogIEgPiBzaHVrdXJvdVwgOwor5L2/56+AID4gc2hpc2V0c3VcIDsKK+iyuOmHkSA+IGthc2hpa2luXCA7Civpq5jlr58gPiBrb3VzYXRzdVwgOwor5YCS5qeYID4gc2FrYXNhbWFcIDsKK+eUn+a0uyA+IHNlaWthdHN1XCA7Civpq5jlr4YgPiBrb3VtaXRzdVwgOwor5LuP6YGTID4gYnV0c3Vkb3VcIDsKK+S9leiAhSA+IG5hbmltb25vXCA7Civoia/kv5cgPiByeW91em9rdVwgOwor5L2P6IG3ID4ganV1c2hva3VcIDsKK+aflOihkyA+IGp1dWp1dHN1XCA7CivnlJ/msLQgPiBuYW1hbWl6dVwgOwor6IO457OeID4gbXVuZWt1c29cIDsKK+WuouiIuSA+IGt5YWt1c2VuXCA7CivogJDpo58gPiB0YWlzaG9rdVwgOwor6ICB6aqoID4gcm91a290c3VcIDsKK+aelei+uiA+IG1ha3VyYWJlXCA7CivlsKTniakgPiB5dXVidXRzdVwgOwor5a6i6IiOID4ga3lha3VzaGFcIDsKK+S5semrqiA+IHJhbnBhdHN1XCA7CivkvZPnvbAgPiB0YWliYXRzdVwgOwor55eb5ZOtID4gdHN1dWtva3VcIDsKK+eUn+auliA+IHNlaXNob2t1XCA7Civkurrph4wgPiBoaXRvemF0b1wgOwor5a6i6IazID4ga3lha3V6ZW5cIDsKK+iCieimqiA+IG5pa3VzaGluXCA7Civlr4znsaQgPiB0b21pa3VqaVwgOwor5YG15a+fID4gdGVpc2F0c3VcIDsKK+iDveethiA+IG5vdWhpdHN1XCA7Civkub7poqggPiBrYXJha2F6ZVwgOwor6auq5Z6LID4ga2FtaWdhdGFcIDsKK+iJr+S5hSA+IHJ5b3VreXV1XCA7CivmnZHpm6ggPiBtdXJhc2FtZVwgOwor6LuS5LimID4gbm9raW5hbWlcIDsKK+i7kuS4iCA+IG5va2l0YWtlXCA7Civlr5Lnq7kgPiBrYW5jaGlrdVwgOwor5pyI6b2iID4gZ2V0c3VyZWlcIDsKK+alveWMoCA+IGdha3VzaG91XCA7Civmpb3li50gPiByYWt1c2hvdVwgOwor6Lez5qKBID4gY2hvdXJ5b3VcIDsKK+WvkuepuiA+IHNhbXV6b3JhXCA7Civku7Dop5IgPiBneW91a2FrdVwgOwor5qW95YqHID4gZ2FrdWdla2lcIDsKK+mjhOmjhCA+IGh5b3VoeW91XCA7CivmnKjpqqggPiBtb2trb3RzdVwgOwor5L6v54i1ID4ga291c2hha3VcIDsKK+eOiemrhCA+IGd5b2t1enVpXCA7CivogbToqLogPiBjaG91c2hpblwgOwor5L+X5rWBID4gem9rdXJ5dXVcIDsKK+WumuiBtyA+IHRlaXNob2t1XCA7CivlrpjogbcgPiBrYW5zaG9rdVwgOwor5YGl5a6fID4ga2Vuaml0c3VcIDsKK+ixqumbqiA+IGdvdXNldHN1XCA7CivogbToppogPiBjaG91a2FrdVwgOwor54+N6YeNID4gY2hpbmNob3VcIDsKK+ebtOOAhSA+IGppa2lqaWtpXCA7Civoh6rlrqQgPiBqaXNoaXRzdVwgOwor5YG05aOBID4gc29rdWhla2lcIDsKK+aknOWwvyA+IGtlbicnbnlvdVwgOwor5Lmx6ZuRID4gcmFuemF0c3VcIDsKK+WxnuacmyA+IHNob2t1Ym91XCA7CivogbTooYYgPiBjaG91c2h1dVwgOwor5Lit6buSID4gbmFrYWd1cm9cIDsKK+aknOWvnyA+IGtlbnNhdHN1XCA7CivkurrotrMgPiBoaXRvYXNoaVwgOwor5a++54mpID4gdGFpYnV0c3VcIDsKK+iCieiWhCA+IG5pa3VoYWt1XCA7CivnjonpoZQgPiBneW9rdWdhblwgOwor6aKv6aKvID4gc2Fzc2F0c3VcIDsKK+WBj+WxiCA+IGhlbmt1dHN1XCA7Civku4/oqqwgPiBidXNzZXRzdVwgOwor5bO25Y+wID4gc2hpbWFkYWlcIDsKK+S7h+iujiA+IGt5dXVzaHV1XCA7CivkvbXnmbogPiBoZWloYXRzdVwgOwor6aeQ55WZID4gY2h1dXJ5dXVcIDsKK+eVpeW4vSA+IHJ5YWt1Ym91XCA7CivmnJ3po68gPiBhc2FtZXNoaVwgOwor5L2V56iLID4gbmFuaWhvZG9cIDsKK+miqOmjnyA+IGZ1dXNob2t1XCA7CivnlbPlsYsgPiB0YXRhbWl5YVwgOwor5YG05ZynID4gc29rdWF0c3VcIDsKK+i0lue9qiA+IHNob2t1emFpXCA7CivogqnogpggPiBrYXRhaGlqaVwgOwor5p+T6ImyID4gc2Vuc2hva3VcIDsKK+i6q+S4rSA+IHNoaW5jaHV1XCA7CivmnZHph4wgPiBtdXJhemF0b1wgOwor5LuZ6KGTID4gc2VuanV0c3VcIDsKK+iHquWksSA+IGppc2hpdHN1XCA7Civkv5fmpb0gPiB6b2t1Z2FrdVwgOwor6aaW562LID4ga3ViaXN1amlcIDsKK+S9h+eriyA+IGNob3JpdHN1XCA7CivotIvogIUgPiBuaXNlbW9ub1wgOwor5a+G552AID4gbWl0Y2hha3VcIDsKK+iFsOadvyA+IGtvc2hpaXRhXCA7CivogqHogokgPiBtb21vbmlrdVwgOwor6ISx5ryPID4gZGF0c3Vyb3VcIDsKK+iDuOeXmyA+IGt5b3V0c3V1XCA7CivkuLjpq7cgPiBtYXJ1bWFnZVwgOwor5bGI5puyID4ga3Vra3lva3VcIDsKK+iIueS6uiA+IGZ1bmFiaXRvXCA7CivpqqjlpKogPiBob25lYnV0b1wgOwor6auY5Y2SID4ga291c290c3VcIDsKK+WwsealrSA+IHNodXVneW91XCA7Civpo5/pgZMgPiBzaG9rdWRvdVwgOwor6LC36aKoID4gdGFuaWthemVcIDsKK+S/oeacjSA+IHNoaW5wdWt1XCA7Civku67okbogPiBrYXJpYnVraVwgOwor6aKo6ZuqID4gZnV1c2V0c3VcIDsKK+WujOe1kCA+IGthbmtldHN1XCA7Civmn5TogowgPiB5YXdhaGFkYVwgOwor6aeQ54usID4gY2h1dWRva3VcIDsKK+eOiemWgCA+IGd5b2t1bW9uXCA7CivppZLoiIwgPiBqb3V6ZXRzdVwgOwor5pyI6aOfID4gZ2Vzc2hva3VcIDsKK+agl+efsyA+IGt1cmlpc2hpXCA7CivlsI/ms6IgPiBzYXphbmFtaVwgOwor55uK44CFID4gbWFzdW1hc3VcIDsKK+WumueriyA+IHRlaXJpdHN1XCA7CivkuLjpppYgPiBtYXJ1a3ViaVwgOwor5Lit6auYID4gbmFrYWRha2FcIDsKK+WumOeriyA+IGthbnJpdHN1XCA7Civog73njocgPiBub3VyaXRzdVwgOwor6Laz5qWtID4gYXNoaXdhemFcIDsKK+acqOmQuCA+IGJva3V0YWt1XCA7CivkuLvpo58gPiBzaHVzaG9rdVwgOwor6ama5oSVID4ga3lvdWdha3VcIDsKK+S/l+absiA+IHpva2t5b2t1XCA7Civku5nolqwgPiBzZW4nJ3lha3VcIDsKK+S9nOeXhSA+IHNha3VieW91XCA7CivkvZXnmb4gPiBuYW5ieWFrdVwgOwor5LuB6KGTID4gamluanV0c3VcIDsKK+S/oeaVmSA+IHNoaW5reW91XCA7CivmoZzmua8gPiBzYWt1cmF5dVwgOwor5qSc5ZynID4ga2VuJydhdHN1XCA7CivkuIDpvaMgPiBoaXRva29tYVwgOwor6Laz5qKwID4gYXNoaWthc2VcIDsKK+aciOmdoiA+IGdldHN1bWVuXCA7CivkubPphaogPiBueXV1cmFrdVwgOwor5bC95pelID4gamluaml0c3VcIDsKK+WwkeassiA+IHNob3V5b2t1XCA7CivnlLvlvJUgPiBrYWt1YmlraVwgOwor55WZ5a2mID4gcnl1dWdha3VcIDsKK+Wtpue/kiA+IGdha3VzaHV1XCA7Civot4vmlocgPiBiYXRzdWJ1blwgOwor5bGx5b2mID4geWFtYWJpa29cIDsKK+WxseW9oiA+IHlhbWFnYXRhXCA7Civnl4XkuK0gPiBieW91Y2h1dVwgOwor5bCP5qyyID4gc2hvdXlva3VcIDsKK+WBtuWKmyA+IGd1dXJ5b2t1XCA7Civmn5PnuZQgPiBzZW5zaG9rdVwgOwor5Lu76IG3ID4gbmluc2hva3VcIDsKK+iEseavmyA+IGRhdHN1bW91XCA7CivlsILmsbogPiBzZW5rZXRzdVwgOwor5qKf5pW1ID4ga3lvdXRla2lcIDsKK+acqOmLjyA+IGtpYmFzYW1pXCA7CivoiJ/kurogPiBmdW5hYml0b1wgOwor6LKn6KGAID4gaGlua2V0c3VcIDsKK+i2s+aetyA+IGFzaGlrYXNlXCA7CivogLPoqLEgPiBtaW1pbW90b1wgOwor5YKR5Lq6ID4ga2V0c3VqaW5cIDsKK+WvvuaxuiA+IHRhaWtldHN1XCA7CivlsITmrrogPiBzaGFzYXRzdVwgOwor5Luk6ImyID4gcmVpc2hva3VcIDsKK+WwgeauuiA+IGZ1dXNhdHN1XCA7CivlsI/mp4wgPiBrb2R6dWNoaVwgOwor5a2m57i+ID4gZ2FrdXNla2lcIDsKK+WxseW3nSA+IHlhbWFnYXdhXCA7Civpq5jkvY4gPiB0YWthaGlrdVwgOwor5Lit6aCDID4gbmFrYWdvcm9cIDsKK+iBt+iDvSA+IHNob2t1bm91XCA7CivlsYjmipggPiBrdXNzZXRzdVwgOwor5a6f55u0ID4gaml0Y2hva3VcIDsKK+iFsOaKmCA+IGtvc2hpb3JlXCA7Civlrp/nm4ogPiBqaXRzdWVraVwgOwor5a6a552AID4gdGVpY2hha3VcIDsKK+aigeacqCA+IHJ5b3Vib2t1XCA7CivlgbblgbYgPiB0YW1hdGFtYVwgOwor5puy6Z2iID4ga3lva3VtZW5cIDsKK+i2s+aXqSA+IGFzaGliYXlhXCA7CivkuK3pnIcgPiBjaHV1c2hpblwgOwor6IiM5LujID4gemV0c3VkYWlcIDsKK+afseefsyA+IGNodXVzZWtpXCA7CivlsbHlsbEgPiB5YW1heWFtYVwgOwor5Lit6ZqUID4gY2h1dWtha3VcIDsKK+WxgOaJgCA+IGt5b2t1c2hvXCA7Civosq/ok4QgPiBjaG9jaGlrdVwgOwor5L2O546HID4gdGVpcml0c3VcIDsKK+W3nuOAhSA+IHNodXVzaHV1XCA7Civmn5PnrYYgPiBzZW5waXRzdVwgOwor5L+h5oaRID4gc2hpbnB5b3VcIDsKK+ahn+apiyA+IHNhbmJhc2hpXCA7CivnlLvlrqQgPiBnYXNoaXRzdVwgOwor6IKJ57SwID4gbmlrdWJvc29cIDsKK+WuoueUqCA+IGt5YWt1eW91XCA7CivkuK3pmZAgPiBuYWthZ2lyaVwgOwor5L2V54mpID4gbmFuaW1vbm9cIDsKK+WxseWvuiA+IHlhbWFkZXJhXCA7CivnjJ/ps6UgPiByeW91Y2hvdVwgOwor5a2m57GNID4gZ2FrdXNla2lcIDsKK+S4h+mqqCA+IGJhbmtvdHN1XCA7Civkv67lvqkgPiBzaHV1ZnVrdVwgOwor5LuP6ImmID4gZnV0c3VrYW5cIDsKK+iFueW/gyA+IGZ1a3VzaGluXCA7Civlrp/nlKggPiBqaXRzdXlvdVwgOwor5L+u5b6XID4gc2h1dXRva3VcIDsKK+iDhueVpSA+IHRhbnJ5YWt1XCA7CivlhbbjgIUgPiBzb3Jlem9yZVwgOwor5Li46ZG/ID4gbWFydW5vbWlcIDsKK+WxseWuiCA+IHlhbWFtb3JpXCA7CivotrPmkbogPiBhc2hpenVyaVwgOwor6aOf6KiAID4gc2hva3VnZW5cIDsKK+WAi+WupCA+IGtvc2hpdHN1XCA7CivkuozoqIAgPiBmdXRha290b1wgOwor5L2T54axID4gdGFpbmV0c3VcIDsKK+WFseOAhSA+IHRvbW9kb21vXCA7Civku67ntrQgPiBrYXJpdG9qaVwgOwor5LyR56WlID4ga3l1dXNob3VcIDsKK+WxiOW+kyA+IGt1dHN1anV1XCA7Civlrp/nj74gPiBqaXRzdWdlblwgOwor54++6IG3ID4gZ2Vuc2hva3VcIDsKK+ixgemBlCA+IGthdHRhdHN1XCA7Civkv6Hlv7UgPiBzaGluJyduZW5cIDsKK+mhjumqqCA+IGdha2tvdHN1XCA7CivkuInpo58gPiBzYW5zaG9rdVwgOwor5LqG6KaaID4gcnlvdWtha3VcIDsKK+S4gOmnkiA+IGhpdG9rb21hXCA7CivnvqTpm7IgPiBtdXJha3Vtb1wgOwor5pyI6YeRID4gZ2V0c3VraW5cIDsKK+i1pOayiCA+IHNla2ljaGluXCA7CivkuIvpoY4gPiBzaGl0YWFnb1wgOwor5bGx5aerID4geWFtYWhpbWVcIDsKK+iEguaxlyA+IGFidXJhYXNlXCA7CivohbDlvIEgPiBrb3NoaWJlblwgOwor5a6d546JID4gaG91Z3lva3VcIDsKK+WwkeaVtSA+IHNob3V0ZWtpXCA7CivkvrXmkoMgPiBzaGluZ2VraVwgOwor6amN5bCGID4gZ3lvdXNob3VcIDsKK+S4mOmZtSA+IGt5dXVyeW91XCA7CivnlaXlkI0gPiByeWFrdW1laVwgOwor5bCP5pW1ID4gc2hvdXRla2lcIDsKK+eVpeWPtyA+IHJ5YWt1Z291XCA7CivotrPmioAgPiBhc2hpd2F6YVwgOwor55Wl5Y+yID4gcnlha3VzaGlcIDsKK+WumueOhyA+IHRlaXJpdHN1XCA7CivnlarljZIgPiBiYW5zb3RzdVwgOwor55Wl5Y+WID4gcnlha3VzaHVcIDsKK+Wun+eKtiA+IGppdHN1am91XCA7CivlgJ/lnLAgPiBzaGFrdWNoaVwgOwor5L215q66ID4gaGVpc2F0c3VcIDsKK+iBluiBtyA+IHNlaXNob2t1XCA7CivohbDluK8gPiBrb3NoaW9iaVwgOwor5LiK6Z20ID4gdXdhZ3V0c3VcIDsKK+iGnOWjgSA+IG1ha3VoZWtpXCA7CivohLHmlocgPiBkYXRzdWJ1blwgOwor5a2Y56uLID4gc29ucml0c3VcIDsKK+WuneeJqSA+IGhvdW1vdHN1XCA7Civkv5flvaIgPiB6b2t1Z3lvdVwgOwor5Lq66IaaID4gaGl0b2hhZGFcIDsKK+miqOi2syA+IGthemFhc2hpXCA7Civkub7oo4IgPiBrYW5yZXRzdVwgOwor5qGO5qKPID4gc2hpa2tva3VcIDsKK+S4gOmggyA+IGhpdG9rb3JvXCA7Civnv4zpgLEgPiB5b2t1c2h1dVwgOwor5a++5pelID4gdGFpbmljaGlcIDsKK+aeoOe1hCA+IHdha3VndW1pXCA7CivkurrohJogPiBoaXRvYXNoaVwgOwor57+76KizID4gaG9uJyd5YWt1XCA7CivkurrohIggPiBqaW5teWFrdVwgOwor5bGx5Z+OID4geWFtYWppcm9cIDsKK+mguOmqqCA+IGtlaWtvdHN1XCA7CivkvpvmlpkgPiBreW91cnlvdVwgOwor6ISa5pysID4ga3lha3Vob25cIDsKK+adseiKnSA+IHRvdXNoaWJhXCA7CivotaTmqKsgPiBha2FnYXNoaVwgOwor6ICQ6J2VID4gdGFpc2hva3VcIDsKK+iEiuakjiA+IHNla2l0c3VpXCA7Civmn7TniqwgPiBzaGliYWludVwgOwor5L+u5a2mID4gc2h1dWdha3VcIDsKK+S/iuW+syA+IHNodW50b2t1XCA7CivmnIjovKogPiBnZXRzdXJpblwgOwor5Luy56eLID4gY2h1dXNodXVcIDsKK+S4u+i/sCA+IHNodWp1dHN1XCA7CivkurrogowgPiBoaXRvaGFkYVwgOwor5Lq66IKJID4gamluJyduaWt1XCA7CivlqpLphYwgPiBiYWlzaGFrdVwgOwor5L6L5pyIID4gcmVpZ2V0c3VcIDsKK+eUn+WomCA+IGtpbXVzdW1lXCA7Civku6PnrYYgPiBkYWloaXRzdVwgOwor6ISK5qKBID4gc2VraXJ5b3VcIDsKK+WvhuauuiA+IG1pc3NhdHN1XCA7CivmmrTpo58gPiBib3VzaG9rdVwgOwor5bGx5Zu9ID4geWFtYWd1bmlcIDsKK+iBt+eoriA+IHNob2t1c2h1XCA7CivkuIDpmpsgPiBoaXRva2l3YVwgOwor5Lm+6J2VID4ga2Fuc2hva3VcIDsKK+S4gOmahSA+IGhpdG9zdW1pXCA7CivlsLHluoogPiBzaHV1c2hvdVwgOwor5LiI6ZW3ID4gdGFrZW5hZ2FcIDsKK+mgremrqiA+IHRvdWhhdHN1XCA7CivnjKXpm5EgPiB3YWl6YXRzdVwgOwor6IGv56uLID4gcmVucml0c3VcIDsKK+iEiuafsSA+IHNla2ljaHV1XCA7CivpoK3pqqggPiB0b3Vrb3RzdVwgOwor6Laz5b2iID4gYXNoaWdhdGFcIDsKK+WuieeJqSA+IHlhc3Vtb25vXCA7Civlr5LmpbUgPiBrYW5reW9rdVwgOwor6Laz5byxID4gYXNoaXlvd2FcIDsKK+WAmeWTiSA+IHNvdXJvdXlhXCA7Civkvovml6UgPiByZWlqaXRzdVwgOwor5Lit6YCfID4gY2h1dXNva3VcIDsKK+eUn+WjgSA+IG5hbWFrYWJlXCA7Civmm7Tov60gPiBrb3V0ZXRzdVwgOwor5qKf5bCGID4ga3lvdXNob3VcIDsKK+WFg+OAhSA+IG1vdG9tb3RvXCA7CivogonnmoQgPiBuaWt1dGVraVwgOwor6IO45qSOID4ga3lvdXRzdWlcIDsKK+miqOiqrCA+IGZ1dXNldHN1XCA7CivmoYLmnIggPiBrZWlnZXRzdVwgOwor5a6k5ripID4gc2hpdHN1b25cIDsKK+S7meeqnyA+IHNlbmt1dHN1XCA7Civlr6fml6UgPiBuZWlqaXRzdVwgOwor6LSL54mpID4gbmlzZW1vbm9cIDsKK+eVquS7mCA+IGJhbmR6dWtlXCA7CivotaTmnb4gPiBha2FtYXRzdVwgOwor55Wl5L2TID4gcnlha3V0YWlcIDsKK+aiheW5siA+IHVtZWJvc2hpXCA7Civkv5flraYgPiB6b2t1Z2FrdVwgOwor6IW55aOBID4gZnVrdWhla2lcIDsKK+S4rei7uCA+IGNodXVqaWt1XCA7CivnlaXkvJ0gPiByeWFrdWRlblwgOwor6IW45aOBID4gY2hvdWhla2lcIDsKK+ixoeiZqyA+IHpvdW11c2hpXCA7Civmnpfnq4sgPiByaW5yaXRzdVwgOwor5ayM576eID4ga3lvdXNodXVcIDsKK+izqueWkSA+IHNoaXRzdWdpXCA7CivlsbHlkLkgPiB5YW1hYnVraVwgOwor6LiP5YiHID4gZnVtaWtpcmlcIDsKK+WwseWvnSA+IHNodXVzaGluXCA7CivmnY/ojLggPiBhbnp1dGFrZVwgOwor55Sf5Zu9ID4gc2hvdWtva3VcIDsKK+S/oeWlsyA+IHNoaW4nJ255b1wgOwor5p2f6ISpID4gc29rdXNodXVcIDsKK+Wwj+W/gyA+IHNob3VzaGluXCA7Civlrr/mpa0gPiBzaHVrdWdvdVwgOwor55Sz5ZGKID4gc2hpbmtva3VcIDsKK+WvkuaciCA+IGthbmdldHN1XCA7CivmnInorZggPiB5dXVzaGlraVwgOwor5L2a5qW9ID4gaXRzdXJha3VcIDsKK+WwseWtpiA+IHNodXVnYWt1XCA7CivppIXntrIgPiBtb2NoaWFtaVwgOwor5L2V5qeYID4gbmFuaXNhbWFcIDsKK+e/geiynSA+IG9raW5hZ2FpXCA7Civlr4zmnK0gPiB0b21pZnVkYVwgOwor5bGA5aSWID4ga3lva3VnYWlcIDsKK+mjn+iGsyA+IHNob2t1emVuXCA7CivmnYnoi5QgPiBzdWdpZ29rZVwgOwor5a+G5p6XID4gbWl0c3VyaW5cIDsKK+WAieWNkiA+IHNvdXNvdHN1XCA7CivnlLLljZIgPiBrb3Vzb3RzdVwgOwor5a6i5q6/ID4ga3lha3VkZW5cIDsKK+S4pui2syA+IG5hbWlhc2hpXCA7CivkuqTnuZQgPiBrb3VzaG9rdVwgOwor55WR5L2cID4gaGF0YXNha3VcIDsKK+eTpuWxiyA+IGthd2FyYXlhXCA7CivlrqLmrbsgPiBreWFrdXNoaVwgOwor55S35YmNID4gb3Rva29tYWVcIDsKK+WxgOWgsSA+IGt5b2t1aG91XCA7CivpobDouZkgPiBoaW5zaHVrdVwgOwor5a6u5qeYID4gbWl5YXNhbWFcIDsKK+S9nOafhCA+IHNha3VnYXJhXCA7CivnjK7phYwgPiBrZW5zaGFrdVwgOwor6aOf6IKyID4gc2hva3Vpa3VcIDsKK+miqOidlSA+IGZ1dXNob2t1XCA7CivkuKHotrMgPiByeW91c29rdVwgOwor5LqM6IKhID4gZnV0YW1hdGFcIDsKK+eTpuWutiA+IGthd2FyYXlhXCA7CivkuIrpgZQgPiBqb3V0YXRzdVwgOwor6Iad5YWDID4gaGl6YW1vdG9cIDsKK+acm+icgCA+IGJvdXNob2t1XCA7Civlrr/mnJsgPiBzaHVrdWJvdVwgOwor6ISx5bi9ID4gZGF0c3Vib3VcIDsKK+eUs+WHuiA+IG1vdXNoaWRlXCA7Civmn4TniakgPiBnYXJhbW9ub1wgOwor5LiK6L+wID4gam91anV0c3VcIDsKK+S9nOabsiA+IHNha2t5b2t1XCA7CivogLPns54gPiBtaW1pa3Vzb1wgOwor6ICB6IulID4gcm91bnlha3VcIDsKK+iCieeJmyA+IG5pa3VneXV1XCA7CivlsbHlhYMgPiB5YW1hbW90b1wgOwor5bGA5ZywID4ga3lva3VjaGlcIDsKK+iynuevgCA+IHRlaXNldHN1XCA7CivmnZ/nuJsgPiBzb2t1YmFrdVwgOwor5pyr6JGJID4gbWF0c3V5b3VcIDsKK+S9leaciCA+IG5hbmdhdHN1XCA7CivlsLrlnLAgPiBzaGFrdWNoaVwgOwor6LGa6I2JID4gYnV0YWt1c2FcIDsKK+absuirliA+IGt5b2t1cm9uXCA7CivlsbHlgbQgPiB5YW1hZ2F3YVwgOwor5bCR5bCRID4gc2hvdXNob3VcIDsKK+WwkeWwhiA+IHNob3VzaG91XCA7Civmmpfpl4cgPiBrdXJheWFtaVwgOwor5LyR5ryBID4ga3l1dXJ5b3VcIDsKK+eOieiRsSA+IHRhbWFuZWdpXCA7CivkubPoh60gPiBueXV1c2h1dVwgOwor55SY5Y+jID4gYW1ha3VjaGlcIDsKK+acqOiPnyA+IG1pbWl6dWt1XCA7CivlrIznrJEgPiBreW91c2hvdVwgOwor55Sj5YilID4gc2FuYmV0c3VcIDsKK+aciOidlSA+IGdlc3Nob2t1XCA7CivlsI/lraYgPiBzaG91Z2FrdVwgOwor5qeY44CFID4gc2FtYXphbWFcIDsKK+S+v+WjuiA+IGJlbnRzdWJvXCA7CivkuIDovJsgPiBpY2hpcnlvdVwgOwor6LOc54mpID4gdGFtYW1vbm9cIDsKK+eUn+WIpSA+IHNlaWJldHN1XCA7CivpppbmnrcgPiBrdWJpa2FzZVwgOwor5a2Q54i1ID4gc2hpc2hha3VcIDsKK+S+i+W8jyA+IHJlaXNoaWtpXCA7Civnj77nlJ8gPiBnZW4nJ25hbWFcIDsKK+acqOiLuiA+IGtpaWNoaWdvXCA7Civniqzpt7IgPiBpbnV3YXNoaVwgOwor5pys6ImyID4gaG9uc2hva3VcIDsKK+S5seiEiCA+IHJhbm15YWt1XCA7CivlrprmpI0gPiB0ZWlzaG9rdVwgOwor6Lu944CFID4ga2FydWdhcnVcIDsKK+WvhuaOpSA+IG1pc3NldHN1XCA7CivkuIDouo0gPiBpY2hpeWFrdVwgOwor5bGx5Lq6ID4geWFtYWJpdG9cIDsKK+iEh+aBryA+IGt5b3Vzb2t1XCA7Civnvr3ooaMgPiBoYWdvcm9tb1wgOwor5pyN6JasID4gZnVrdXlha3VcIDsKK+WxnuWDmiA+IHpva3VyeW91XCA7CivotrPlnosgPiBhc2hpZ2F0YVwgOwor55S75LiAID4ga2FrdWl0c3VcIDsKK+aiteWIuSA+IGJvbnNldHN1XCA7CivkvI/mtYEgPiBmdWt1cnl1dVwgOwor5a++5bGAID4gdGFpa3lva3VcIDsKK+eMq+i2syA+IG5la29hc2hpXCA7CivlsI/lqJggPiBrb211c3VtZVwgOwor5Luj54mpID4gZGFpYnV0c3VcIDsKK+Wnq+mxkiA+IGhpbWVtYXN1XCA7CivmnKzohbAgPiBob25nb3NoaVwgOwor5LiA6LazID4gaGl0b2FzaGlcIDsKK+iFueWIhyA+IGhhcmFraXJpXCA7CivkuKHopqogPiByeW91c2hpblwgOwor5pmp6aOvID4gYmFubWVzaGlcIDsKK+e/vOe/vCA+IHlva3V5b2t1XCA7CivnlJ/lgrcgPiBuYW1ha2l6dVwgOwor6LGa6IKJID4gYnV0YW5pa3VcIDsKK+iEh+W9uSA+IHdha2l5YWt1XCA7CivpoK3ph5EgPiBhdGFtYWtpblwgOwor576O6LOqID4gYmlzaGl0c3VcIDsKK+WxiuWHuiA+IHRvZG9rZWRlXCA7CivotaTlv4MgPiBzZWtpc2hpblwgOwor5pys6IG3ID4gaG9uc2hva3VcIDsKK+eKtumqqCA+IGpvdWtvdHN1XCA7Civnv6DoibIgPiBzdWlzaG9rdVwgOwor5Lih6KKWID4gcnlvdXNvZGVcIDsKK+aguOW/gyA+IGtha3VzaGluXCA7CivkuLjolqwgPiBnYW4nJ3lha3VcIDsKK+S8uOaaoiA+IHNoaW5jaG91XCA7CivmnJ3oh6MgPiBjaG91c2hpblwgOwor5a6/5omAID4gc2h1a3VzaG9cIDsKK+aenOeJqSA+IGt1ZGFtb25vXCA7Civnj77niakgPiBnZW5idXRzdVwgOwor5LiL6KuLID4gc2hpdGF1a2VcIDsKK+acqOiAsyA+IGtpa3VyYWdlXCA7CivlsL3lipsgPiBqaW5yeW9rdVwgOwor5Lq655WcID4gamluY2hpa3VcIDsKK+S7rua8hiA+IGthc2hpdHN1XCA7CivmnZHnq4sgPiBzb25yaXRzdVwgOwor6aKo6ISaID4ga2F6YWFzaGlcIDsKK+S/guWToSA+IGtha2FyaWluXCA7CivkuIDoq74gPiBpY2hpZGFrdVwgOwor5bCP5Zu9ID4gc2hvdWtva3VcIDsKK+WtpuattCA+IGdha3VyZWtpXCA7Civlrr/mgqogPiBzaHVrdWFrdVwgOwor6IO45bqnID4gbXVuYWd1cmFcIDsKK+S4gOiqrSA+IGljaGlkb2t1XCA7CivlrpfmlZkgPiBzaHV1a3lvdVwgOwor5a+l5a+lID4gcnlvdXJ5b3VcIDsKK+acieiJsiA+IHl1dXNob2t1XCA7Civni63ph48gPiBreW91cnlvdVwgOwor5p2l552AID4gcmFpY2hha3VcIDsKK+S8kealrSA+IGt5dXVneW91XCA7CivmnIjoibIgPiBnZXNzaG9rdVwgOwor5L+u5LqGID4gc2h1dXJ5b3VcIDsKK+iDuOW5hSA+IG11bmVoYWJhXCA7CivkuIDoqIAgPiBoaXRva290b1wgOwor5a6/5b+XID4gc2h1a3VzaGlcIDsKK+iAs+eWviA+IGppc2hpdHN1XCA7CivohZXlipsgPiB3YW5yeW9rdVwgOwor6IW55LitID4gZnVrdWNodXVcIDsKK+S4gOinkiA+IGhpdG9rYWRvXCA7CivogonmrLIgPiBuaWt1eW9rdVwgOwor54+g546JID4gc2h1Z3lva3VcIDsKK+S7gOeJqSA+IGp1dW1vdHN1XCA7CivkuLvoibIgPiBzaHVzaG9rdVwgOwor6LSL5pytID4gbmlzZWZ1ZGFcIDsKK+iCqeabuCA+IGthdGFnYWtpXCA7Civkv6HkvI8gPiBzaGlucHVrdVwgOwor5L+h5Lu7ID4gc2hpbicnbmluXCA7Civlrr/lvIogPiBzaHVrdWhlaVwgOwor6ayx44CFID4gdXRzdXV0c3VcIDsKK+S5seethiA+IHJhbnBpdHN1XCA7CivkurrniakgPiBqaW5idXRzdVwgOwor5L+X5L+hID4gem9rdXNoaW5cIDsKK+eMruihgCA+IGtlbmtldHN1XCA7CivmoLzlrokgPiBrYWt1eWFzdVwgOwor5Lih6JOLID4gcnlvdWJ1dGFcIDsKK+WtpualrSA+IGdha3VneW91XCA7CivkurrniLUgPiBqaW5zaGFrdVwgOwor54yl6KS7ID4gd2Fpc2V0c3VcIDsKK+ixmueusSA+IGJ1dGFiYWtvXCA7Civku67mrr8gPiBrYXJpZG9ub1wgOwor6aOb55+zID4gdG9iaWlzaGlcIDsKK+S5seeriyA+IHJhbnJpdHN1XCA7Civlrr/luLMgPiB5YWRvY2hvdVwgOwor5a+S5a+SID4gc2FtdXphbXVcIDsKK+acseethiA+IHNodWhpdHN1XCA7CivkuLvohIggPiBzaHVteWFrdVwgOwor5LuY5re7ID4gdHN1a2lzb2lcIDsKK+acrOevgCA+IGhvbmJ1c2hpXCA7Civmm7LoirggPiBreW9rdWdlaVwgOwor5pyr56+AID4gbWFzc2V0c3VcIDsKK+i2s+WFgyA+IGFzaGltb3RvXCA7CivosqHniakgPiB6YWlidXRzdVwgOwor5bCP5ZCNID4gc2hvdW15b3VcIDsKK+S5l+e1hCA+IG5vcmlrdW1pXCA7Civlr53lp78gPiBuZXN1Z2F0YVwgOwor5puz6Ii5ID4gaGlraWJ1bmVcIDsKK+e/jOe/jCA+IHlva3V5b2t1XCA7CivmnKvnrYYgPiBtYXBwaXRzdVwgOwor5pi86aCDID4gaGlydWdvcm9cIDsKK+iCoeaXhSA+IG1hdGF0YWJpXCA7Civni6zouqsgPiBkb2t1c2hpblwgOwor55C05puyID4ga2lua3lva3VcIDsKK+S6rOeJqSA+IGt5b3Vtb25vXCA7Civmn5DmnIggPiBib3VnZXRzdVwgOwor6LGG57KVID4gbWFtZWthc3VcIDsKK+Wun+aDhSA+IGppdHN1am91XCA7CivkuK3ohbkgPiBjaHV1ZnVrdVwgOwor6aCG6YCGID4ganVuZ3lha3VcIDsKK+adieeariA+IHN1Z2lrYXdhXCA7CivlsIblj4ggPiBoYXRhbWF0YVwgOwor6ISx5Y20ID4gZGFra3lha3VcIDsKK+WvguWvpSA+IHNla2lyeW91XCA7Civlr4Llr54gPiBzZWtpYmFrdVwgOwor6aOf55SoID4gc2hva3V5b3VcIDsKK+afkOaXpSA+IGJvdWppdHN1XCA7CivmmanphYwgPiBiYW5zaGFrdVwgOwor5Lit6IKJID4gY2h1dW5pa3VcIDsKK+iynueDiCA+IHRlaXJldHN1XCA7Civpo7LniakgPiBub21pbW9ub1wgOwor5Lih6IaaID4gcnlvdWhhZGFcIDsKK+S7suaguCA+IGNodXVrYWt1XCA7CivkuZ3nqYAgPiBreXV1a29rdVwgOwor5a6f5by+ID4gaml0c3VkYW5cIDsKK+S4i+iQoCA+IHNoaXRhbW9lXCA7Civmm7LogIUgPiBrdXNlbW9ub1wgOwor5a6a5b6LID4gdGVpcml0c3VcIDsKK+ahg+WckiA+IG1vbW96b25vXCA7Civpppblt7sgPiBrdWJpbWFraVwgOwor5LuP5rCXID4gaG90b2tlZ2lcIDsKK+aYpemiqCA+IGhhcnVrYXplXCA7CivkuKbogokgPiBuYW1pbmlrdVwgOwor5a6i5bm0ID4ga3lha3VuZW5cIDsKK+i2iuWNlyA+IGJldG9uYW11XCA7CivkuKHohIcgPiByeW91d2FraVwgOwor5Ly45by1ID4gc2hpbmNob3VcIDsKK+miqOeqkyA+IGthemFtYWRvXCA7CivpoqjnqbQgPiBmdXVrZXRzdVwgOwor5LuP5q6/ID4gYnV0c3VkZW5cIDsKK+iDuOWjgSA+IGt5b3VoZWtpXCA7CivlrprlvI8gPiB0ZWlzaGlraVwgOwor5pif6aOfID4gc2Vpc2hva3VcIDsKK+S4oeiCmCA+IHJ5b3VoaWppXCA7CivkuKHogowgPiByeW91aGFkYVwgOwor6LKe5r2UID4gdGVpa2V0c3VcIDsKK+WroeeUtyA+IGNoYWt1bmFuXCA7CivkubPnmb0gPiBueXV1aGFrdVwgOwor5L2O5a+GID4gdGVpbWl0c3VcIDsKK+S4oeiAsyA+IHJ5b3VtaW1pXCA7CivkubHnmbogPiByYW5wYXRzdVwgOwor6ISF5ZqHID4ga3lvdWtha3VcIDsKK+aatOiZkCA+IGJvdWd5YWt1XCA7CivogpjmjpsgPiBoaWppa2FrZVwgOwor5Lih57+8ID4gcnlvdXlva3VcIDsKK+WvhuWjsiA+IG1pdHN1YmFpXCA7CivmnKjnn7MgPiBib2t1c2VraVwgOwor546J56CVID4gZ3lva3VzYWlcIDsKK+S4g+iNiSA+IG5hbmFrdXNhXCA7Civlrq7lroggPiBtaXlhbW9yaVwgOwor5pug6IG3ID4ga291c2hva3VcIDsKK+eOieefsyA+IHRhbWFpc2hpXCA7CivkuInoibIgPiBzYW5zaG9rdVwgOwor5Luy5pilID4gY2h1dXNodW5cIDsKK+ahkeWOnyA+IGt1d2FiYXJhXCA7CivorZjplr4gPiBzaGlraWlraVwgOwor5Lq65rOiID4gaGl0b25hbWlcIDsKK+aYpembqCA+IGhhcnVzYW1lXCA7Civnv7Pnm64gPiBrYXN1bWltZVwgOwor54y/6IKhID4gc2FydW1hdGFcIDsKK+absue3miA+IGt5b2t1c2VuXCA7CivkvJHmiJogPiBreXV1c2VraVwgOwor5a6i5bGkID4ga3lha3Vzb3VcIDsKK+aYpemZvSA+IHNodW4nJ3lvdVwgOwor6LKe5reRID4gdGVpc2h1a3VcIDsKK+WuiOW9uSA+IG1vcml5YWt1XCA7CivkuLvnr4AgPiBzaHVzZXRzdVwgOwor5LiA6IqxID4gaGl0b2hhbmFcIDsKK+mhlOiJsiA+IGdhbnNob2t1XCA7CivkuK3ntLAgPiBjaHV1Ym9zb1wgOwor5Lit57SaID4gY2h1dWt5dXVcIDsKK+i2heWFiyA+IGNob3Vrb2t1XCA7CivkuLvnrYYgPiBzaHVoaXRzdVwgOwor546H55u0ID4gc290Y2hva3VcIDsKK+eMq+iIjCA+IG5la29qaXRhXCA7CivkuInohJogPiBzYW5reWFrdVwgOwor5pm66K2YID4gY2hpc2hpa2lcIDsKK+S4i+iCpSA+IHNoaW1vZ29lXCA7Civlrp/lrrMgPiBqaXRzdWdhaVwgOwor6aSK5q6WID4geW91c2hva3VcIDsKK+Wwj+S4gCA+IHNob3VpY2hpXCA7CivosqrmrLIgPiBkb24nJ3lva3VcIDsKK+S6uuassiA+IGppbicneW9rdVwgOwor6ICQ54axID4gdGFpbmV0c3VcIDsKK+Wun+WtmCA+IGppdHN1em9uXCA7CivpoJjoopYgPiByeW91c2h1dVwgOwor5LyR5oGvID4ga3l1dXNva3VcIDsKK+aXsemtgyA+IGthbmJhdHN1XCA7Civnibnpm4YgPiB0b2t1c2h1dVwgOwor5pyr55S3ID4gYmF0c3VuYW5cIDsKK+Wuv+WdiiA+IHNodWt1Ym91XCA7Civpn7Pos6ogPiBvbnNoaXRzdVwgOwor5Li456qTID4gbWFydW1hZG9cIDsKK+eMq+iEmiA+IG5la29hc2hpXCA7Civlr7jlgJ8gPiBzdW5zaGFrdVwgOwor6LaF5L+XID4gY2hvdXpva3VcIDsKK+absueuoSA+IGt5b2t1a2FuXCA7CivkvJHlv4MgPiBreXV1c2hpblwgOwor6ISI5YuVID4gbXlha3Vkb3VcIDsKK+mhleiBtyA+IGtlbnNob2t1XCA7CivogqnluYUgPiBrYXRhaGFiYVwgOwor5qGI5Ye6ID4gYW5zaHV0c3VcIDsKK+iCoeW8lSA+IG1vbW9oaWtpXCA7CivkuLjnpr8gPiBtYXJ1aGFnZVwgOwor5L6b5Lq6ID4gdG9tb2JpdG9cIDsKK+S6uuanmCA+IGhpdG9zYW1hXCA7CivkubPniZsgPiBueXV1Z3l1dVwgOwor5bCC5LiAID4gc2VuJydpdHN1XCA7CivmnpXmnKggPiBtYWt1cmFnaVwgOwor6IKh5bqnID4gbWF0YWd1cmFcIDsKK+eJuemVtyA+IHRva3VjaG91XCA7CivpoILop5IgPiBjaG91a2FrdVwgOwor54u46Je7ID4gdGFudWtpbW9cIDsKK+e8tuipsCA+IGthbmR6dW1lXCA7CivkuIDnv7wgPiBpY2hpeW9rdVwgOwor5a6f5aa5ID4gaml0c3VtYWlcIDsKK+S4reepuiA+IG5ha2F6b3JhXCA7Civmn5TlvLEgPiBueXV1amFrdVwgOwor6aOy5rC0ID4gbm9taW1penVcIDsKK+S4reeoiyA+IG5ha2Fob2RvXCA7Civku4rmnIggPiBrb25nZXRzdVwgOwor6LK45pysID4ga2FzaGlob25cIDsKK+S4pueriyA+IGhlaXJpdHN1XCA7Civlronlrr8gPiB5YXN1eWFkb1wgOwor6IO95YqbID4gbm91cnlva3VcIDsKK+S4reeniyA+IGNodXVzaHV1XCA7CivnianpmbAgPiBtb25va2FnZVwgOwor5a6J5a6JID4geWFzdXlhc3VcIDsKK+WtpuW+syA+IGdha3V0b2t1XCA7Civnv5LnmZYgPiBzaHV1aGVraVwgOwor5Li455+zID4gbWFydWlzaGlcIDsKK+S4h+e3kSA+IGJhbnJ5b2t1XCA7Civlrr/lkb0gPiBzaHVrdW1laVwgOwor5LuP5paHID4gZnV0c3VidW5cIDsKK+eJm+mdqSA+IGd5dXVrYXdhXCA7CivogZbml6UgPiBzZWlqaXRzdVwgOwor5Lq65p+EID4gaGl0b2dhcmFcIDsKK+mrmOOAhSA+IHRha2FkYWthXCA7Civkuqvmpb0gPiBreW91cmFrdVwgOwor5p2+5p+PID4gc2hvdWhha3VcIDsKK+e+pOeruSA+IG11cmF0YWtlXCA7CivorabouZUgPiBrZWloaXRzdVwgOwor5Lmz5r+BID4gbnl1dWRha3VcIDsKK+e/oOeOiSA+IHN1aWd5b2t1XCA7Civml6Xpo58gPiBuaXNzaG9rdVwgOwor5LuH5pW1ID4ga3l1dXRla2lcIDsKK+mduumeqCA+IG1ha2thdHN1XCA7Civlp7/oposgPiBzdWdhdGFtaVwgOwor5a6f5ZyoID4gaml0c3V6YWlcIDsKK+aciOeVqiA+IHRzdWtpYmFuXCA7CivnkrDkuIMgPiBrYW4nJ25hbmFcIDsKK+iDuOWFiCA+IG11bmFzYWtpXCA7Civog7jlhYMgPiBtdW5hbW90b1wgOwor5LiA57WEID4gaGl0b2t1bWlcIDsKK+eMq+ezniA+IG5la29iYWJhXCA7Civml6fpoJggPiBreXV1cnlvdVwgOwor6Z206Z+zID4ga3V0c3VvdG9cIDsKK+S5l+eJqSA+IG5vcmltb25vXCA7CivpoqjniakgPiBmdXVidXRzdVwgOwor5L2c5YqHID4gc2FrdWdla2lcIDsKK+aaluiJsiA+IGRhbnNob2t1XCA7CivkvZXljZIgPiBuYW5pdG96b1wgOwor546H54S2ID4gc290c3V6ZW5cIDsKK+S8keWtpiA+IGt5dXVnYWt1XCA7CivkuInnrYYgPiBzYW5waXRzdVwgOwor5L2P5Y+LID4gc3VtaXRvbW9cIDsKK+advuaYjiA+IHRhaW1hdHN1XCA7CivlgbbjgIUgPiB0YW1hdGFtYVwgOwor5Luu5b25ID4ga2FyaXlha3VcIDsKK+S4reeavyA+IGNodXV6YXJhXCA7Civog7jlgIkgPiBtdW5hZ3VyYVwgOwor5Lq65pWwID4gaGl0b2thenVcIDsKK+Wpmue0hCA+IGtvbicneWFrdVwgOwor5LiL56m0ID4gc2hpdGFhbmFcIDsKK+S9k+WKmyA+IHRhaXJ5b2t1XCA7Civlrr/lha0gPiB5YWRvcm9rdVwgOwor6ICz5py2ID4gbWltaXRhYnVcIDsKK+abuOeVmSA+IGtha2l0b21lXCA7CivkuIDnrYsgPiBoaXRvc3VqaVwgOwor5a2m5a+uID4gZ2FrdXJ5b3VcIDsKK+S4gOethiA+IGhpdG9mdWRlXCA7CivniYfpmoUgPiBrYXRhc3VtaVwgOwor6LGB54S2ID4ga2F0c3V6ZW5cIDsKK+S9juWKoyA+IHRlaXJldHN1XCA7CivniYfpmbAgPiBrYXRha2FnZVwgOwor5Lql5pyIID4gZ2FpZ2V0c3VcIDsKK+eJuemAsiA+IHRva3VzaGluXCA7Civos6rlsYsgPiBzaGljaGl5YVwgOwor54yq56qBID4gY2hvdG90c3VcIDsKK+S6rOaWuSA+IGt5b3VnYXRhXCA7CivniZvpjYsgPiBneXV1bmFiZVwgOwor5a6f5ZCNID4gaml0c3VtZWlcIDsKK+adpeaciCA+IHJhaWdldHN1XCA7Civog7jkuK0gPiBreW91Y2h1dVwgOwor5LiA56iuID4gaGl0b2t1c2FcIDsKK+e/kueGnyA+IHNodXVqdWt1XCA7CivmmI7pgZQgPiBtZWl0YXRzdVwgOwor5p6h5b2iID4gbWFzdWdhdGFcIDsKK+Wuv+S+vyA+IHNodWt1YmVuXCA7Civlr4bku6QgPiBtaXRzdXJlaVwgOwor54m56LyvID4gdG9rdXNodXVcIDsKK+S4gOenkiA+IGljaGlieW91XCA7CivkuLvniakgPiBzaHVidXRzdVwgOwor576k55m6ID4gZ3VucGF0c3VcIDsKK+absueQgyA+IGt5b2treXV1XCA7Civml6npkJggPiBoYXlhZ2FuZVwgOwor6LOi5a+fID4ga2Vuc2F0c3VcIDsKK+S6jOahgSA+IGZ1dGFrZXRhXCA7CivmnaXml6UgPiByYWluaWNoaVwgOwor5piH6YCyID4gc2hvdXNoaW5cIDsKK+eIqumfsyA+IHRzdW1hb3RvXCA7Civmlq3pq6ogPiBkYW5wYXRzdVwgOwor5puy546JID4gbWFnYXRhbWFcIDsKK+WuouWIhiA+IGt5YWt1YnVuXCA7CivkuJjnlrkgPiBreXV1c2hpblwgOwor5L2V5L2VID4gbmFuaW5hbmlcIDsKK+iDhuWKmyA+IHRhbnJ5b2t1XCA7Civkuovmn4QgPiBrb3RvZ2FyYVwgOwor5Luu5a6uID4ga2FyaW1peWFcIDsKK+abuOeJqSA+IHNob21vdHN1XCA7CivniZvphaogPiBneXV1cmFrdVwgOwor54us57+SID4gZG9rdXNodXVcIDsKK+S7ruWuhSA+IGthcml0YWt1XCA7CivlrZDlrp0gPiBrb2Rha2FyYVwgOwor6Z+u6JGxID4gbmlyYW5lZ2lcIDsKK+S9l+S6uiA+IHdhYmliaXRvXCA7Civku4/lvI8gPiBidXNzaGlraVwgOwor6aC4562LID4ga3ViaXN1amlcIDsKK+iyquaFviA+IGRvbicneW9rdVwgOwor6Kyb6YeIID4ga291c2hha3VcIDsKK+S4ieebtCA+IHNhbmNob2t1XCA7CivkvZXkuosgPiBuYW5pZ290b1wgOwor6IKJ5aSqID4gbmlrdWJ1dG9cIDsKK+S4ieeZviA+IHNhbmJ5YWt1XCA7Civml4/plbcgPiB6b2t1Y2hvdVwgOwor54m56LOeID4gdG9rdXNob3VcIDsKK+WuouWDpyA+IGt5YWt1c291XCA7CivkuqTmjqUgPiBrb3VzZXRzdVwgOwor6aGU552AID4gZ2FuY2hha3VcIDsKK+S5s+alrSA+IG55dXVneW91XCA7Civml6XpioAgPiBuaWNoaWdpblwgOwor5p6V5bitID4gY2hpbnNla2lcIDsKK+izk+WuoiA+IGhpbmt5YWt1XCA7Civlrp/lg48gPiBqaXRzdXpvdVwgOwor5a6f5YONID4gaml0c3Vkb3VcIDsKK+WuruS6uiA+IG1peWFiaXRvXCA7Civml6fph4wgPiBmdXJ1c2F0b1wgOwor5LiA55q/ID4gaGl0b3NhcmFcIDsKK+S4gOeariA+IGhpdG9rYXdhXCA7CivkuozmlrkgPiBmdXRha2F0YVwgOwor5LiK55WlID4gam91cnlha3VcIDsKK+iziuWwhiA+IHpva3VzaG91XCA7CivosqvlvrkgPiBrYW50ZXRzdVwgOwor5p6i5a+GID4gc3V1bWl0c3VcIDsKK+S4gOeZliA+IGhpdG9rdXNlXCA7CivnkIPlr6kgPiBreXV1c2hpblwgOwor5a6u5LitID4ga3l1dWNodXVcIDsKK+ixhuauuyA+IG1hbWVnYXJhXCA7Civnj77lsLogPiBnZW5zaGFrdVwgOwor5Lq65b2xID4gaGl0b2thZ2VcIDsKK+WuouS9kyA+IGt5YWt1dGFpXCA7Civlrp/kvosgPiBqaXRzdXJlaVwgOwor5pyo5qeMID4ga2lkenVjaGlcIDsKK+S7pOWnqiA+IHJlaXRldHN1XCA7Civnj77lrp8gPiBnZW5qaXRzdVwgOwor6IKH5Zu9ID4gY2hvdWtva3VcIDsKK+WuouS6uiA+IGt5YWt1amluXCA7CivpnLnpnYIgPiBoZWtpcmVraVwgOwor6K2y6JGJID4geXV6dXJpaGFcIDsKK+iwt+awtCA+IHRhbmltaXp1XCA7Civosarml6UgPiBnb3VuaWNoaVwgOwor5pyN5q+SID4gZnVrdWRva3VcIDsKK+iBt+WfnyA+IHNob2t1aWtpXCA7CivmmrTnmbogPiBib3VoYXRzdVwgOwor5Lqs5b2iID4ga3lvdWdhdGFcIDsKK+mjn+aMhyA+IHNob2t1c2hpXCA7CivnibTop6YgPiB0ZWlzaG9rdVwgOwor5pel6LyqID4gbmljaGlyaW5cIDsKK+iCqeWFiCA+IGthdGFzYWtpXCA7CivlpJbpsJAgPiBzb3Rvd2FuaVwgOwor6aC755m6ID4gaGlucGF0c3VcIDsKK+S8r+S7siA+IGhha3VjaHV1XCA7CivmnKzmnKwgPiBtb3RvbW90b1wgOwor5pys5pyrID4gaG9ubWF0c3VcIDsKK+S4h+eJqSA+IGJhbm1vdHN1XCA7Civni63nqoQgPiBreW91c2FrdVwgOwor546J5p2vID4gZ3lva3VoYWlcIDsKK+eMrueJqSA+IGtlbm1vdHN1XCA7CivkurrlsbEgPiBoaXRveWFtYVwgOwor5pep6LazID4gaGF5YWFzaGlcIDsKK+S6huaJvyA+IHJ5b3VzaG91XCA7CivkuK3mtYEgPiBjaHV1cnl1dVwgOwor6Zyn6ZuoID4ga2lyaXNhbWVcIDsKK+Wkp+mjnyA+IHRhaXNob2t1XCA7Civmlofpo74gPiBidW5zaG9rdVwgOwor6LOi5ZOyID4ga2VudGV0c3VcIDsKK+eJh+i2syA+IGthdGFhc2hpXCA7CivkuIDniYcgPiBoaXRvaGlyYVwgOwor5pys5pelID4gaG9uaml0c3VcIDsKK+S5vuaLrSA+IGthcmFidWtpXCA7Civpo5/mhJ8gPiBzaG9rdWthblwgOwor5pW06auqID4gc2VpaGF0c3VcIDsKK+S7j+WjhyA+IGJ1dHN1ZGFuXCA7CivlrablibIgPiBnYWt1d2FyaVwgOwor5pW06aqoID4gc2Vpa290c3VcIDsKK+i0i+S9nCA+IG5pc2VzYWt1XCA7CivlrabliYcgPiBnYWt1c29rdVwgOwor5puy5rC0ID4ga3lva3VzdWlcIDsKK+miqOaciCA+IGZ1dWdldHN1XCA7CivpnJzpm6ogPiBzb3VzZXRzdVwgOwor5Lmx5o6YID4gcmFua3V0c3VcIDsKK+S4reavkiA+IGNodXVkb2t1XCA7CivkuZ3ml6UgPiBrb2tvbm9rYVwgOwor5pel6LGqID4gbmljaGlnb3VcIDsKK+S7j+WggiA+IGJ1dHN1ZG91XCA7CivkuZ3ml48gPiBreXV1em9rdVwgOwor6Z+/56ybID4ga3lvdXRla2lcIDsKK+iqremfvyA+IHlvbWlreW91XCA7CivorJvoqqwgPiBrb3VzZXRzdVwgOwor54mb6KeSID4gZ3l1dWtha3VcIDsKK+Wkp+mbqiA+IHRhaXNldHN1XCA7CivlpJbpo58gPiBnYWlzaG9rdVwgOwor6ICz5bGOID4gbWltaWt1c29cIDsKK+WklemjryA+IHl1dW1lc2hpXCA7CivogbflkI0gPiBzaG9rdW1laVwgOwor5pmp56+AID4gYmFuc2V0c3VcIDsKK+S6jOW9uSA+IGZ1dGF5YWt1XCA7CivlpJXpo58gPiB5dXVzaG9rdVwgOwor5LqM5b2iID4gZnV0YW5hcmlcIDsKK+aYpeiPiiA+IHNodW5naWt1XCA7Civlrablg5UgPiBnYWt1Ym9rdVwgOwor6LGG5paZID4gbWFtZXJ5b3VcIDsKK+eOieaRpyA+IGd5b2t1c2FpXCA7CivmnJ3mlbUgPiBjaG91dGVraVwgOwor5pWj6auqID4gc2FucGF0c3VcIDsKK+isjuisjiA+IG5hem9uYXpvXCA7CivlsbHjgIUgPiB5YW1heWFtYVwgOwor5aaE6KqsID4gbW91c2V0c3VcIDsKK+mgk+edgCA+IHRvbmNoYWt1XCA7Civku4/lmbggPiBmdXRzdXRvblwgOwor5aaW6KGTID4geW91anV0c3VcIDsKK+mbm+mzpSA+IGhpbmFkb3JpXCA7Civpm7vpo74gPiBkZW5zaG9rdVwgOwor5a2m5L+uID4gZ2FrdXNodXVcIDsKK+aXp+iosyA+IGt5dXV5YWt1XCA7CivmnIjmnKsgPiB0c3VraXp1ZVwgOwor54us55m9ID4gZG9rdWhha3VcIDsKK+eMm+eDiCA+IG1vdXJldHN1XCA7CivniKrot6EgPiB0c3VtZWF0b1wgOwor5Luu5YidID4ga2FyaXNvbWVcIDsKK+adpeWuoiA+IHJhaWt5YWt1XCA7CivmnIjmm5wgPiBnZXRzdXlvdVwgOwor57+M5pydID4geW9rdWNob3VcIDsKK+e5gembkSA+IGhhbnphdHN1XCA7CivogbfliLYgPiBzaG9rdXNlaVwgOwor5paw6YCyID4gc2hpbnNoaW5cIDsKK+iBt+WIhiA+IHNob2t1YnVuXCA7Civkub7lvI8gPiBrYW5zaGlraVwgOwor6Z2i6K2YID4gbWVuc2hpa2lcIDsKK+S6uuWeoyA+IGhpdG9nYWtpXCA7CivlpLHpjK8gPiBzaGlzc2FrdVwgOwor5LmF5pa5ID4gaGlzYWthdGFcIDsKK+aciOaYjiA+IGdldHN1bWVpXCA7Civlo7Dpq5ggPiBrb3dhZGFrYVwgOwor6KuW6L+wID4gcm9uanV0c3VcIDsKK+e/jOaYpSA+IHlva3VzaHVuXCA7Civoq77oq74gPiBkYWt1ZGFrdVwgOwor6K2Y6ICFID4gc2hpa2lzaGFcIDsKK+S7leWPoyA+IHNoaWt1Y2hpXCA7CivkuK3moLggPiBjaHV1a2FrdVwgOwor6LGh5b60ID4gc2hvdWNob3VcIDsKK+ePjeWmmSA+IGNoaW5teW91XCA7Civosp3loZogPiBrYWlkenVrYVwgOwor6IGW5ZOyID4gc2VpdGV0c3VcIDsKK+mdouipsCA+IG1lbmtpdHN1XCA7CivnuJ7ppqwgPiBzaGltYXVtYVwgOwor6aOf5bC9ID4gc2hva3VqaW5cIDsKK+izreS6iyA+IGtha2Vnb3RvXCA7CivkuIDmtYEgPiBpY2hpcnl1dVwgOwor5Lit5p+EID4gY2h1dWdhcmFcIDsKK+abuOacrSA+IHNob3NhdHN1XCA7CivlppnolqwgPiBteW91eWFrdVwgOwor5Li75pelID4gc2h1aml0c3VcIDsKK+iruOiruCA+IG1vcm9tb3JvXCA7CivpnZnorJAgPiBzZWloaXRzdVwgOwor6Ku46KqsID4gc2hvc2V0c3VcIDsKK+izh+WKmyA+IHNoaXJ5b2t1XCA7CivlpbPopqogPiBvbicnbmFveWFcIDsKK+abtOabtCA+IHNhcmFzYXJhXCA7CivmnZPlrZAgPiBzaGFrdXNoaVwgOwor5puy5puyID4ga3VtYWd1bWFcIDsKK+aZuueVpSA+IGNoaXJ5YWt1XCA7CivmmI7oibIgPiBtZWlzaG9rdVwgOwor5pel6J2VID4gbmlzc2hva3VcIDsKK+S7luWHuiA+IHRhc2h1dHN1XCA7Civpm6jpnbQgPiBhbWFndXRzdVwgOwor5pys5byPID4gaG9uc2hpa2lcIDsKK+S7j+WJjSA+IGJ1dHN1emVuXCA7Civoqr/pgLIgPiBjaG91c2hpblwgOwor6Zuq6ZuyID4geXVraWd1bW9cIDsKK+mbqOmcsCA+IGFtZWFyYXJlXCA7Civku4/liLkgPiBidXNzZXRzdVwgOwor5pyo5b2rID4gbW9rdWNob3VcIDsKK+aakeeGsSA+IHNob25ldHN1XCA7CivnianoibIgPiBidXNzaG9rdVwgOwor6IG35Lq6ID4gc2hva3VuaW5cIDsKK+irp+islCA+IGthaWd5YWt1XCA7Civni6znibkgPiBkb2t1dG9rdVwgOwor5aSx6YCfID4gc2hpc3Nva3VcIDsKK+aYpee5rSA+IGhhcnVtYXl1XCA7CivppJ7liKUgPiBzZW5iZXRzdVwgOwor54ax6aGYID4gbmV0c3VnYW5cIDsKK+acq+W5tCA+IG1hdHN1bmVuXCA7Civlq6HlrasgPiBjaGFrdXNvblwgOwor54mp6IetID4gbW9ub2d1c2FcIDsKK+iBluWIpSA+IHNlaWJldHN1XCA7Civlq6HlrZAgPiBjaGFrdXNoaVwgOwor6Kuk6KukID4gZ2FrdWdha3VcIDsKK+eLoeeMviA+IGtvdWthdHN1XCA7CivogIPlr58gPiBrb3VzYXRzdVwgOwor6ZuR6aOfID4gemFzc2hva3VcIDsKK+S4u+aMgSA+IHNodW1vY2hpXCA7CivlrLDlhZAgPiBtaWRvcmlnb1wgOwor57im6ZW3ID4gdGF0ZW5hZ2FcIDsKK+aWveiorSA+IHNoaXNldHN1XCA7Civni4LnmoQgPiBreW91dGVraVwgOwor5LqJ5aWqID4gc291ZGF0c3VcIDsKK+mej+iGnCA+IGt5b3VtYWt1XCA7Civku4/lg48gPiBidXRzdXpvdVwgOwor6ICB5a6fID4gcm91aml0c3VcIDsKK+Wkp+mAhiA+IGRhaWd5YWt1XCA7Civml6Xok64gPiBuaWNoaXJlblwgOwor54ax6Zu3ID4gbmV0c3VyYWlcIDsKK+ippumjnyA+IHNoaXNob2t1XCA7Civmlbfph5EgPiBzaGlraWtpblwgOwor5Lq65YqbID4gamlucnlva3VcIDsKK+S5neW3niA+IGt5dXVzaHV1XCA7CivmlrDoqr8gPiBzaGluY2hvdVwgOwor6aOf5aCCID4gc2hva3Vkb3VcIDsKK+WroeWmuyA+IGNoYWt1c2FpXCA7CivkuIDmo58gPiBoaXRvbXVuZVwgOwor5aSx6LehID4gc2hpc3Nla2lcIDsKK+S6uuWIuiA+IGppbnNhc2hpXCA7Civpm7vpiYQgPiBkZW50ZXRzdVwgOwor5Lq65YilID4gbmluYmV0c3VcIDsKK+irluiqrCA+IHJvbnNldHN1XCA7CivmnKzlsYAgPiBob25reW9rdVwgOwor5Lit5oyHID4gbmFrYXl1YmlcIDsKK+iyuOWAnyA+IHRhaXNoYWt1XCA7CivnjbLlvpcgPiBrYWt1dG9rdVwgOwor6KuW6KmwID4gcm9ua2l0c3VcIDsKK+S4gOahgSA+IGhpdG9rZXRhXCA7Civmlr3ooZMgPiBzaGlqdXRzdVwgOwor6aGb5pyrID4gdGVubWF0c3VcIDsKK+iyq+WFpSA+IGthbicnbnl1dVwgOwor6LKh5YqbID4gemFpcnlva3VcIDsKK+iqnumDqCA+IGthdGFyaWJlXCA7Civnv5LlvpcgPiBzaHV1dG9rdVwgOwor5LiJ5puyID4gc2Fua3lva3VcIDsKK+aZr+eJqSA+IGtlaWJ1dHN1XCA7CivmlrnooZMgPiBob3VqdXRzdVwgOwor54m557SEID4gdG9rdXlha3VcIDsKK+S4gOaemiA+IGhpdG9oaXJhXCA7CivnubDoqIAgPiBrdXJpZ290b1wgOwor54mb6IKJID4gZ3l1dW5pa3VcIDsKK+adieWeoyA+IHN1Z2lnYWtpXCA7CivnjovlrqQgPiBvdXNoaXRzdVwgOwor5LiA5p2fID4gaGl0b3RhYmFcIDsKK+S6rOWKhyA+IGt5b3VnZWtpXCA7CivniaHnvoogPiBvaGl0c3VqaVwgOwor6LC35bqVID4gdGFuaXpva29cIDsKK+S4gOacqCA+IGljaGlib2t1XCA7CivkurrlgpEgPiBqaW5rZXRzdVwgOwor6Z+c55WlID4gdG91cnlha3VcIDsKK+aXp+iHoyA+IGt5dXVzaGluXCA7CivmmKjnp4sgPiBzYWt1c2h1dVwgOwor5aW96ImyID4ga291c2hva3VcIDsKK+iwt+W3nSA+IHRhbmlnYXdhXCA7Civku4Tku4QgPiBob25vYm9ub1wgOwor6LK35Li7ID4ga2FpbnVzaGlcIDsKK+S4gOaZgiA+IGhpdG90b2tpXCA7CivmmIfntaYgPiBzaG91a3l1dVwgOwor54mH6IadID4ga2F0YWhpemFcIDsKK+S5l+WuoiA+IGpvdWt5YWt1XCA7CivkuLjlvaIgPiBtYXJ1Z2F0YVwgOwor6aOy5YqpID4gbm9taXN1a2VcIDsKK+absuaCqiA+IGt5b2t1YWt1XCA7CivmmIfntJogPiBzaG91a3l1dVwgOwor5LiA5peXID4gaGl0b2hhdGFcIDsKK+S4gOaXjyA+IGljaGl6b2t1XCA7Civpo5/lk4EgPiBzaG9rdWhpblwgOwor54mp57SNID4gYnV0c3Vub3VcIDsKK+WkseiqvyA+IHNoaXRjaG91XCA7Civnha7prZogPiBuaXpha2FuYVwgOwor5aSx6KqeID4gc2hpdHN1Z29cIDsKK+iAs+WFgyA+IG1pbWltb3RvXCA7Civml6nogLMgPiBoYXlhbWltaVwgOwor5Li45bqVID4gbWFydXpva29cIDsKK+mdouiJsiA+IG1lbnNob2t1XCA7CivkurrkurogPiBoaXRvYml0b1wgOwor5pWj6YC4ID4gc2FuJydpdHN1XCA7CivkuK3lv4MgPiBjaHV1c2hpblwgOwor54mH6IKMID4ga2F0YWhhZGFcIDsKK+ips+mMsiA+IHNob3Vyb2t1XCA7Civlq6Hll6MgPiBjaGFrdXNoaVwgOwor5pu45byPID4gc2hvc2hpa2lcIDsKK+S6uuS6iyA+IGhpdG9nb3RvXCA7Civnt4/pq6ogPiBzb3VoYXRzdVwgOwor5pyN5bGeID4gZnVrdXpva3VcIDsKK+eJueeoriA+IHRva3VkYW5lXCA7CivkuK3lvaIgPiBjaHV1Z2F0YVwgOwor54mH6ICzID4ga2F0YW1pbWlcIDsKK+aXp+e/kiA+IGt5dXVzaHV1XCA7CivkurrkuK0gPiBoaXRvbmFrYVwgOwor5Lq65LimID4gaGl0b25hbWlcIDsKK+eJueensCA+IHRva3VzaG91XCA7CivkuIDmkoMgPiBpY2hpZ2VraVwgOwor5Lit5bqtID4gbmFrYW5pd2FcIDsKK+WwkeOAhSA+IHNob3VzaG91XCA7Civlp4vnmbogPiBzaGloYXRzdVwgOwor6Kyd57W2ID4gc2hhemV0c3VcIDsKK+S5vuWSsyA+IGthcmF6ZWtpXCA7CivkuK3luZUgPiBuYWthbWFrdVwgOwor5Lit5bmFID4gY2h1dWhhYmFcIDsKK+iruOiGnSA+IG1vcm9oaXphXCA7Civoq7johpogPiBtb3JvaGFkYVwgOwor5Lit5bitID4gbmFrYXNla2lcIDsKK+acneWklSA+IGNob3VzZWtpXCA7CivniafnrJsgPiBib2t1dGVraVwgOwor5Lih5b6XID4gcnlvdXRva3VcIDsKK+e4pui7uCA+IHRhdGVqaWt1XCA7CivpnZLoibIgPiBzZWlzaG9rdVwgOwor6aOf5YmNID4gc2hva3V6ZW5cIDsKK+WnpueJqSA+IGthbmJ1dHN1XCA7Civpo5/liLsgPiBzaG9ra29rdVwgOwor546J5Z6jID4gdGFtYWdha2lcIDsKK+mbhumMsiA+IHNodXVyb2t1XCA7Civpm7LotrMgPiBrdW1vYXNoaVwgOwor57eR6aKoID4gcnlva3VmdXVcIDsKK+eJqeeoriA+IG1vbm9kYW5lXCA7CivkuKbluYUgPiBuYW1paGFiYVwgOwor5aaZ562WID4gbXlvdXNha3VcIDsKK+mdmeiEiCA+IGpvdW15YWt1XCA7CivniannqI4gPiBidXRzdXplaVwgOwor5Li75a6iID4gc2h1a3lha3VcIDsKK+mjvOS4uyA+IGthaW51c2hpXCA7Civoq7jogowgPiBtb3JvaGFkYVwgOwor5Lim5be+ID4gbmFtaWhhYmFcIDsKK+S6pOS6pCA+IGtvbW9nb21vXCA7CivniIbolqwgPiBiYWt1eWFrdVwgOwor5Lit5bO2ID4gbmFrYWppbWFcIDsKK+aVhemDtyA+IGZ1cnVzYXRvXCA7CivkuovlhbEgPiBrb3RvZG9tb1wgOwor5LiN5oKJID4gZnVzaGl0c3VcIDsKK+aXp+e0hCA+IGt5dXV5YWt1XCA7CivniafnpZ4gPiBib2t1c2hpblwgOwor57eR6Z2SID4gcm9rdXNob3VcIDsKK+aWueiInyA+IGhha29idW5lXCA7Civpo6/kuosgPiBtYW1hZ290b1wgOwor5Lit5bCPID4gY2h1dXNob3VcIDsKK+absuWwhCA+IGt5b2t1c2hhXCA7Civpm4Hph5EgPiBrYXJpZ2FuZVwgOwor5pel57GzID4gbmljaGliZWlcIDsKK+eEvOmzpSA+IHlha2l0b3JpXCA7CivorLnnm7QgPiBraW5jaG9rdVwgOwor5Lit5a2mID4gY2h1dWdha3VcIDsKK+e3tOmJhCA+IHJlbnRldHN1XCA7Civoqr/olqwgPiBjaG91eWFrdVwgOwor5aSJ6KqsID4gaGVuc2V0c3VcIDsKK+aVteilsiA+IHRla2lzaHV1XCA7CivmlL7pgJAgPiBob3VjaGlrdVwgOwor5LiJ5b25ID4gc2FuJyd5YWt1XCA7Civnhanpm5EgPiBoYW56YXRzdVwgOwor6KqN6K2YID4gbmluc2hpa2lcIDsKK+aXp+eroCA+IGt5dXVzaG91XCA7Civnt5HploAgPiByeW9rdW1vblwgOwor5p2R5Lq6ID4gbXVyYWJpdG9cIDsKK+S4i+W4ryA+IHNoaXRhb2JpXCA7CivkuIDlvbkgPiBoaXRveWFrdVwgOwor6LGq5YKRID4gZ291a2V0c3VcIDsKK+S6i+S6iyA+IGtvdG9nb3RvXCA7Civntr/pm7IgPiB3YXRhZ3Vtb1wgOwor5Lmx5YWlID4gcmFuJydueXV1XCA7Civntr/pm6ogPiB3YXRheXVraVwgOwor5LqI5LqIID4ga2FuZWdhbmVcIDsKK+aXp+ensCA+IGt5dXVzaG91XCA7CivkuJblsYAgPiBzZWlreW9rdVwgOwor57e06YGUID4gcmVudGF0c3VcIDsKK+aah+aahyA+IGhpbWFoaW1hXCA7CivkuIDlu4kgPiBoaXRva2Fkb1wgOwor6ZqG6ZqGID4gcnl1dXJ5dXVcIDsKK+S4gOW6piA+IGhpdG90YWJpXCA7CivpmoXpmoUgPiBzdW1penVtaVwgOwor5LiA5bm0ID4gaGl0b3Rvc2VcIDsKK+mdmeeymyA+IHNlaXNodWt1XCA7Civloanprq0gPiBzaGlvemFrZVwgOwor5peP57GNID4gem9rdXNla2lcIDsKK+Wkp+iSnCA+IG5pbicnbmlrdVwgOwor5LiA5bmVID4gaGl0b21ha3VcIDsKK+S4uOWeiyA+IG1hcnVnYXRhXCA7CivlpYnogbcgPiBob3VzaG9rdVwgOwor6LWr44CFID4ga2FrdWtha3VcIDsKK+S4gOW3uyA+IGhpdG9tYWtpXCA7Civpm6PoqbAgPiBuYW5raXRzdVwgOwor6ZuA6LqNID4gamFrdXlha3VcIDsKK+S4reWhlyA+IG5ha2FudXJpXCA7Civpmarpo58gPiBiYWlzaG9rdVwgOwor6aCM5pilID4gc2hvdXNodW5cIDsKK+S4h+WxiyA+IHlvcm96dXlhXCA7CivkuK3lnqMgPiBuYWthZ2FraVwgOwor5Lit5Z6LID4gY2h1dWdhdGFcIDsKK+miqOWKmyA+IGZ1dXJ5b2t1XCA7CivkuIrlrqIgPiBqb3VreWFrdVwgOwor5Lmx5LyQID4gcmFuYmF0c3VcIDsKK+aZuuaXpSA+IGNoaW5pY2hpXCA7CivnjKvlsZ4gPiBuZWtvem9rdVwgOwor5a+S44CFID4gc2FtdXphbXVcIDsKK+S4gOWxsSA+IGhpdG95YW1hXCA7CivkuK3lm70gPiBjaHV1Z29rdVwgOwor5aSp6ImyID4gdGVuc2hva3VcIDsKK+mgg+aXpSA+IGtlaWppdHN1XCA7CivoqbPoqLsgPiBzaG91Y2h1dVwgOwor6ZuR6KuHID4gemF0c3VkYW5cIDsKK+aXj+ensCA+IHpva3VzaG91XCA7Civml6Xnm7QgPiBuaXRjaG9rdVwgOwor57eR6YWSID4gcnlva3VzaHVcIDsKK+S4gOWupCA+IGlzc2hpdHN1XCA7CivlpKrohb8gPiBmdXRvbW9tb1wgOwor6aCY5om/ID4gcnlvdXNob3VcIDsKK+aWree1tiA+IGRhbnpldHN1XCA7CivkuIDlrZAgPiBoaXRvcmlnb1wgOwor5aer5qeYID4gaGltZXNhbWFcIDsKK+mbu+iThCA+IGRlbmNoaWt1XCA7CivmnKvku6MgPiBtYXRzdWRhaVwgOwor5aOc6KmwID4gYmluZHp1bWVcIDsKK+iogOmciiA+IGtvdG9kYW1hXCA7CivkuKHlm70gPiByeW91Z29rdVwgOwor5Li75Y+WID4gc2h1dWRvcmlcIDsKK+mbqOibmSA+IGFtYWdhZXJ1XCA7Civnhp/oqq0gPiBqdWt1ZG9rdVwgOwor546J5L2TID4gZ3lva3V0YWlcIDsKK+eJp+eJmyA+IGJva3VneXV1XCA7Civlob7plbcgPiBqdWt1Y2hvdVwgOwor5aSq6IKhID4gZnV0b21vbW9cIDsKK+acieWKmyA+IHl1dXJ5b2t1XCA7CivnhrHooYAgPiBuZWtrZXRzdVwgOwor5pWj6JasID4gc2FuJyd5YWt1XCA7Civnjonku6MgPiBneW9rdWRhaVwgOwor5aSp6IG3ID4gdGVuc2hva3VcIDsKK+aWh+iEiCA+IGJ1bm15YWt1XCA7Civpm4boqLsgPiBzaHV1Y2h1dVwgOwor6ZqU6YCxID4ga2FrdXNodXVcIDsKK+aXpeeUqCA+IG5pY2hpeW91XCA7Civmm7jlj5YgPiBrYWtpdG9yaVwgOwor5Li75YqbID4gc2h1cnlva3VcIDsKK+aciOWGhSA+IGdldHN1bmFpXCA7CivkuIPlpJwgPiBzaGljaGl5YVwgOwor5Lme5LiQID4ga290c3VnYWlcIDsKK+S4g+WklSA+IHRhbmFiYXRhXCA7CivorKHniakgPiB1dGFpbW9ub1wgOwor6aC75bC/ID4gaGluJydueW91XCA7CivlpKnnvbAgPiB0ZW5iYXRzdVwgOwor6Z2i55m9ID4gb21vc2hpcm9cIDsKK+absuWQjSA+IGt5b2t1bWVpXCA7Civnt4/ovYQgPiBzb3VrYXRzdVwgOwor5Lit5Y+kID4gY2h1dWJ1cnVcIDsKK+S9leOAhSA+IG5hbmluYW5pXCA7CivkuIDlpLEgPiBpc3NoaXRzdVwgOwor54u85bqnID4gb29rYW1pemFcIDsKK+iovOi3oSA+IHNob3VzZWtpXCA7Civlpa7nmbogPiBmdW5wYXRzdVwgOwor5paw56mAID4gc2hpbmtva3VcIDsKK+ipleiouyA+IGh5b3VjaHV1XCA7CivlpInoibIgPiBoZW5zaG9rdVwgOwor5piO5ruFID4gbWVpbWV0c3VcIDsKK+mZuOmHoyA+IG9rYWR6dXJpXCA7CivorIDnlaUgPiBib3VyeWFrdVwgOwor5LiA5aGpID4gaGl0b3NoaW9cIDsKK+miqOS4iiA+IGthemFrYW1pXCA7CivlpJbogqEgPiBzb3RvbWF0YVwgOwor57+S5L+XID4gc2h1dXpva3VcIDsKK+mZjembqiA+IGtvdXNldHN1XCA7Civni6zlvpcgPiBkb2t1dG9rdVwgOwor57W26aOfID4gemVzc2hva3VcIDsKK+abuOWInSA+IGtha2l6b21lXCA7CivoqJPph4ggPiBrdW5zaGFrdVwgOwor6Kqm57+SID4gc2hvdXNodXVcIDsKK+eIhueskSA+IGJha3VzaG91XCA7Civnv5LkvZwgPiBzaHV1c2FrdVwgOwor5pu45YaKID4gc2hvc2F0c3VcIDsKK+eJueazqCA+IHRva3VjaHV1XCA7CivmnIjkvosgPiBnZXRzdXJlaVwgOwor5pqm5a2mID4gcmVraWdha3VcIDsKK+S4uOWCtyA+IHRhbWFraXp1XCA7CivlpYnnpZ0gPiBob3VzaHVrdVwgOwor6aCM5b6zID4gc2hvdXRva3VcIDsKK+mYsumjnyA+IGJvdXNob2t1XCA7CivniKrnl5UgPiB0c3VtZWF0b1wgOwor5Lit5YWxID4gY2h1dWt5b3VcIDsKK+S4puWIlyA+IGhlaXJldHN1XCA7CivkuYXkuYUgPiBoaXNhYmlzYVwgOwor57eR6LGGID4gcnlva3V0b3VcIDsKK+WlveeJqSA+IGtvdWJ1dHN1XCA7Civpm7LohJogPiBrdW1vYXNoaVwgOwor6Z2S55WzID4gYW9kYXRhbWlcIDsKK+mbm+iPiiA+IGhpbmFnaWt1XCA7CivlpLHnrZYgPiBzaGlzc2FrdVwgOwor5pmC5pmCID4gdG9raWRva2lcIDsKK+S4reWCtyA+IGNodXVzaG91XCA7CivlpLHnrJEgPiBzaGlzc2hvdVwgOwor5pWX6ImyID4gaGFpc2hva3VcIDsKK+mbquiGmiA+IHl1a2loYWRhXCA7Civpm6PoibIgPiBuYW5zaG9rdVwgOwor5pqX5a6kID4gYW5zaGl0c3VcIDsKK+mZtei+sSA+IHJ5b3Vqb2t1XCA7CivkuIvlkbMgPiBzaGl0YWFqaVwgOwor57WQ6auqID4ga2VwcGF0c3VcIDsKK+eEvOmFjiA+IHNob3VjaHV1XCA7CivmmLzmmYIgPiBoaXJ1ZG9raVwgOwor5aOw6ImyID4gc2Vpc2hva3VcIDsKK+S4uOS6iyA+IG1hcnVnb3RvXCA7Civmlofnr4AgPiBidW5zZXRzdVwgOwor5paH566xID4gZnVtaWJha29cIDsKK+Wkp+etkiA+IG9vZHp1dHN1XCA7CivkuLjkuLggPiBtYXJ1bWFydVwgOwor6Ziy6ZuqID4gYm91c2V0c3VcIDsKK+mbquiCjCA+IHl1a2loYWRhXCA7CivoqLPoqq0gPiB5YWt1ZG9rdVwgOwor5LiD5ZGzID4gc2hpY2hpbWlcIDsKK+aWueeVpSA+IGhvdXJ5YWt1XCA7CivkuLjkuIAgPiBtYXJ1aWNoaVwgOwor54ut5bCPID4ga3lvdXNob3VcIDsKK+S4reS9jiA+IG5ha2FiaWt1XCA7Civnt4/oqqwgPiBzb3VzZXRzdVwgOwor5aeL5pyrID4gc2hpbWF0c3VcIDsKK+aWh+ethiA+IGJ1bnBpdHN1XCA7CivlpKfnq6UgPiBvb3dhcmF3YVwgOwor6Z2S546JID4gc2VpZ3lva3VcIDsKK+S4oeWBtCA+IHJ5b3Vzb2t1XCA7CivlpLHnpZ4gPiBzaGlzc2hpblwgOwor6ZuG6JC9ID4gc2h1dXJha3VcIDsKK+mdmeeJqSA+IHNlaWJ1dHN1XCA7CivkuIfljZIgPiBiYW5zb3RzdVwgOwor5Lit5LqsID4gY2h1dWt5b3VcIDsKK+S4gOWQkSA+IGhpdGFzdXJhXCA7Civni6zlraYgPiBkb2t1Z2FrdVwgOwor5pio5pydID4gc2FrdWNob3VcIDsKK+S4gOWPoiA+IGhpdG9tdXJhXCA7Civmm7LkuosgPiBrdXNlZ290b1wgOwor6ZuR6ImyID4gemFzc2hva3VcIDsKK+S4reS4rSA+IG5ha2FuYWthXCA7CivlronjgIUgPiB5YXN1eWFzdVwgOwor5pWZ57+SID4ga3lvdXNodXVcIDsKK+mZnumAsiA+IHNob3VzaGluXCA7CivpoZ7liKUgPiBydWliZXRzdVwgOwor57iu57esID4gY2hpcmltZW5cIDsKK+aYqOaagSA+IHNha3VneW91XCA7CivntZDpoZggPiBrZWNoaWdhblwgOwor5pio5pilID4gc2FrdXNodW5cIDsKK+S4h+WIpSA+IGJhbmJldHN1XCA7CivnhLzouqsgPiBzaG91c2hpblwgOwor6aCB5bKpID4ga2V0c3VnYW5cIDsKK+S4puS4piA+IG5hbWluYW1pXCA7CivnuKbnuJ4gPiB0YXRlamltYVwgOwor6KaX6a2UID4gbm96b2tpbWFcIDsKK+Wil+iorSA+IHpvdXNldHN1XCA7CivkuIDlibIgPiBpY2hpd2FyaVwgOwor5aSV56uLID4geXV1ZGFjaGlcIDsKK+Whqei+myA+IHNoaW9rYXJhXCA7Civop6Pph4ggPiBrYWlzaGFrdVwgOwor5pen5rWBID4ga3l1dXJ5dXVcIDsKK+S4oeS4oSA+IHJ5b3VyeW91XCA7CivorabmipwgPiBrZWliYXRzdVwgOwor5aSJ56+AID4gaGVuc2V0c3VcIDsKK+e1uemHnSA+IGtpbnViYXJpXCA7CivnjYTkuK0gPiBnb2t1Y2h1dVwgOwor5LiA5YWlID4gaGl0b3NoaW9cIDsKK+S4gOWFiCA+IGhpdG9tYXp1XCA7CivmmIfmoLwgPiBzaG91a2FrdVwgOwor57mt546JID4gbWF5dWRhbWFcIDsKK+aYjuaciCA+IG1laWdldHN1XCA7Civpnq3mkrsgPiBiZW50YXRzdVwgOwor6Zuo57KSID4gYW1ldHN1YnVcIDsKK+Wil+ihgCA+IHpvdWtldHN1XCA7CivmmrTlipsgPiBib3VyeW9rdVwgOwor6Kaz6ZayID4ga2FuJydldHN1XCA7CivmmJPmmJMgPiB5YXN1eWFzdVwgOwor57eR6Je7ID4gcnlva3Vzb3VcIDsKK+Wjrue1tiA+IHNvdXpldHN1XCA7CivmlZnnsY0gPiBreW91c2VraVwgOwor6aCY5Zu9ID4gcnlvdWdva3VcIDsKK+aYjuaYpSA+IG15b3VzaHVuXCA7CivkuIfku6MgPiB5b3JvenV5b1wgOwor5pSv6ISIID4gc2hpbXlha3VcIDsKK+eLrOWbvSA+IGRva3Vrb2t1XCA7CivmkrDov7AgPiBzZW5qdXRzdVwgOwor5LiJ5LiLID4gc2Fuc2hpdGFcIDsKK+Wkp+eVpSA+IHRhaXJ5YWt1XCA7CivlpbPmsJcgPiBvbicnbmFra2VcIDsKK+WhqeixhiA+IHNoaW9tYW1lXCA7CivkuIfkuJYgPiB5b3JvenV5b1wgOwor5LiH5LiAID4gbWFuJydpY2hpXCA7Civpm6rnqbogPiB5dWtpem9yYVwgOwor6KyA5q66ID4gYm91c2F0c3VcIDsKK+e1hOmVtyA+IGt1bWljaG91XCA7CivoqIDoqqwgPiBnZW5zZXRzdVwgOwor5pep5qWtID4gaGF5YXdhemFcIDsKK+inkumAmiA+IGtha3V0c3V1XCA7CivkuIDkuKEgPiBpY2hpcnlvdVwgOwor5LiA5LiAID4gaXRzdWl0c3VcIDsKK+e1sei9hCA+IHRvdWthdHN1XCA7CivorKHmm7IgPiB5b3VreW9rdVwgOwor57SF6bGSID4gYmVuaW1hc3VcIDsKK+eLrOWUsSA+IGRva3VzaG91XCA7CivmlrDmva4gPiBzaGluY2hvdVwgOwor57eR6Iy2ID4gcnlva3VjaGFcIDsKK+aYvOW4rSA+IGhpcnVzZWtpXCA7CivntIXprq0gPiBiZW5pemFrZVwgOwor57SN6aqoID4gbm91a290c3VcIDsKK+aXp+agqiA+IGt5dXVrYWJ1XCA7Civlp6vlrq4gPiBoaW1lbWl5YVwgOwor5aKc6JC9ID4gdHN1aXJha3VcIDsKK+aVsOeZviA+IHN1dWh5YWt1XCA7Civpm4bntIQgPiBzaHV1eWFrdVwgOwor6KqY55m6ID4geXV1aGF0c3VcIDsKK+mgmOWPjiA+IHJ5b3VzaHV1XCA7CivniYfmoJcgPiBrYXRha3VyaVwgOwor5pes5pyIID4ganVuZ2V0c3VcIDsKK+WkqeeItSA+IHRlbnNoYWt1XCA7CivnhY7olqwgPiBzZW4nJ3lha3VcIDsKK+mbu+eVpSA+IGRlbnJ5YWt1XCA7CivmlofniakgPiBidW5idXRzdVwgOwor5pS556+JID4ga2FpY2hpa3VcIDsKK+ippuetiyA+IHRhbWVzdWppXCA7CivoqabnrYYgPiBzaGloaXRzdVwgOwor5pen5pqmID4ga3l1dXJla2lcIDsKK+aXpeabnCA+IG5pY2hpeW91XCA7CivpmpTohpwgPiBrYWt1bWFrdVwgOwor5pes5pelID4ganVuaml0c3VcIDsKK+aVo+eZuiA+IHNhbnBhdHN1XCA7Civpm5HnqI4gPiB6YXRzdXplaVwgOwor6Kqt54mpID4geW9taW1vbm9cIDsKK+mbquebsiA+IHNldHN1bW91XCA7Civorablr58gPiBrZWlzYXRzdVwgOwor6Kej6KqsID4ga2Fpc2V0c3VcIDsKK+e3qee3qSA+IHl1cnV5dXJ1XCA7Civml6nml6kgPiBoYXlhYmF5YVwgOwor6KeS6LKdID4gdHN1bm9nYWlcIDsKK+aRgumjnyA+IHNlc3Nob2t1XCA7Civopb/pmaMgPiBuaXNoaWppblwgOwor6Kem6KeSID4gc2hva2tha3VcIDsKK+Wjgee0mSA+IGthYmVnYW1pXCA7Civop6boppogPiBzaG9ra2FrdVwgOwor5pen5pW1ID4ga3l1dXRla2lcIDsKK+eJueW+tCA+IHRva3VjaG91XCA7CivntJDpnakgPiBoaW1va2F3YVwgOwor5pen5pWZID4ga3l1dWt5b3VcIDsKK+mbhuepjSA+IHNodXVzZWtpXCA7Civln4vpqqggPiBtYWlrb3RzdVwgOwor5peX5pysID4gaGF0YW1vdG9cIDsKK+WklueJqSA+IGdhaWJ1dHN1XCA7Civop53op6YgPiB0ZWlzaG9rdVwgOwor57Sa6ZW3ID4ga3l1dWNob3VcIDsKK+aWrOauuiA+IHphbnNhdHN1XCA7Civnianmg4UgPiBidXRzdWpvdVwgOwor57eg57WQID4gdGVpa2V0c3VcIDsKK+mdqeaWsCA+IGtha3VzaGluXCA7Civpm4bnpaggPiBzaHV1aHlvdVwgOwor5pm65YqbID4gY2hpcnlva3VcIDsKK+mbqOeUtyA+IGFtZW90b2tvXCA7CivniIbmsoggPiBiYWt1Y2hpblwgOwor5aSc54OPID4geW9nYXJhc3VcIDsKK+Wnq+WeoyA+IGhpbWVnYWtpXCA7CivnhornrLkgPiBrdW1hemFzYVwgOwor54ax55m6ID4gbmVwcGF0c3VcIDsKK+mghuWIlyA+IGp1bnJldHN1XCA7CivloqjnuakgPiBzdW1pbmF3YVwgOwor6KyZ5oqRID4ga2VuJyd5b2t1XCA7Civmkq7opoEgPiBzYXRzdXlvdVwgOwor54us5L+uID4gZG9rdXNodXVcIDsKK+WkieeJqSA+IGhlbmJ1dHN1XCA7CivloqjnuIQgPiBzdW1pbmF3YVwgOwor5pil5a61ID4gc2h1bnNob3VcIDsKK+eJqeW9sSA+IG1vbm9rYWdlXCA7Civpl4fpm7IgPiB5YW1pa3Vtb1wgOwor57aa6JC9ID4gem9rdXJha3VcIDsKK+mbqueOiSA+IHl1a2lkYW1hXCA7CivmkZjpjLIgPiB0ZWtpcm9rdVwgOwor5LuE44CFID4gaG9ub2Jvbm9cIDsKK+aXqeaKgCA+IGhheWF3YXphXCA7CivntYLouqsgPiBzaHV1c2hpblwgOwor57eK57iuID4ga2luc2h1a3VcIDsKK+ippuedgCA+IHNoaWNoYWt1XCA7CivlpJbmv6AgPiBzb3RvYm9yaVwgOwor5aa+5a6FID4gc2hvdXRha3VcIDsKK+aYn+WuvyA+IHNlaXNodWt1XCA7Civop5LoopYgPiBrYWt1c29kZVwgOwor6ZeH6ZeHID4geWFtaXlhbWlcIDsKK+Wkmua5vyA+IHRhc2hpdHN1XCA7CivkurrjgIUgPiBoaXRvYml0b1wgOwor6Z2i5o6lID4gbWVuc2V0c3VcIDsKK+mbkeeUqCA+IHphdHN1eW91XCA7CivmlrDmoKogPiBzaGlua2FidVwgOwor5pG66LazID4gc3VyaWFzaGlcIDsKK+aXgeaXgSA+IGthdGFnYXRhXCA7CivmlrDmn4QgPiBzaGluZ2FyYVwgOwor5pS/55WlID4gc2Vpcnlha3VcIDsKK+imi+mAmiA+IG1pdG9vc2hpXCA7Civpm6PniakgPiBuYW5idXRzdVwgOwor6KaL6L+UID4gbWlrYWVzaGlcIDsKK+Wil+e1kCA+IHpvdWtldHN1XCA7CivmmI7lr58gPiBtZWlzYXRzdVwgOwor5aer5ZCbID4gaGltZWdpbWlcIDsKK+aUu+eVpSA+IGtvdXJ5YWt1XCA7CivntZDoq5YgPiBrZXRzdXJvblwgOwor5aWP5puyID4gc291a3lva3VcIDsKK+mcveaciCA+IHNlaWdldHN1XCA7CivpmLLonZUgPiBib3VzaG9rdVwgOwor5paw5pqmID4gc2hpbnJla2lcIDsKK+eEvOiCiSA+IHlha2luaWt1XCA7Civnhr7ng4ggPiBzaGlyZXRzdVwgOwor57WQ6KiAID4ga2V0c3VnZW5cIDsKK+iovOelqCA+IHNob3VoeW91XCA7Civpmo/nrYYgPiB6dWloaXRzdVwgOwor5aSW5rOVID4gc290b25vcmlcIDsKK+aWsOaYpSA+IHNoaW5zaHVuXCA7CivmlrDml6cgPiBzaGlua3l1dVwgOwor6Zm457aaID4gcmlrdXpva3VcIDsKK+eGseeGsSA+IGF0c3VhdHN1XCA7Civlopfnr4kgPiB6b3VjaGlrdVwgOwor5Lqk44CFID4ga29tb2dvbW9cIDsKK+mWk+mjnyA+IGthbnNob2t1XCA7CivnuK7muJsgPiBzaHVrdWdlblwgOwor5paw5pWZID4gc2hpbmt5b3VcIDsKK+WjrueDiCA+IHNvdXJldHN1XCA7CivnuYHmrpYgPiBoYW5zaG9rdVwgOwor5aSp5qW1ID4gdGVua3lva3VcIDsKK+eLguS/oSA+IGt5b3VzaGluXCA7Civml6fluZUgPiBreXV1YmFrdVwgOwor57W56I6iID4ga2ludXNheWFcIDsKK+WkseagvCA+IHNoaWtrYWt1XCA7CivplqjplqUgPiBrZWliYXRzdVwgOwor5pel5bi4ID4gbmljaGlqb3VcIDsKK+mbkeeEtiA+IHphdHN1emVuXCA7CivmlZfmu4UgPiBoYWltZXRzdVwgOwor5pS+54axID4gaG91bmV0c3VcIDsKK+iqmOauuiA+IHl1dXNhdHN1XCA7Civpl4rpgZQgPiBrYXR0YXRzdVwgOwor6ZmN6IG3ID4ga291c2hva3VcIDsKK+e0oOizqiA+IHNvc2hpdHN1XCA7CivlnoLpq6ogPiB0YXJlZ2FtaVwgOwor6ZuB54iqID4gZ2FuZHp1bWVcIDsKK+e4puazoiA+IHRhdGVuYW1pXCA7CivntLDoqqwgPiBzYWlzZXRzdVwgOwor6Ki655mCID4gc2hpbnJ5b3VcIDsKK+e2mue2miA+IHpva3V6b2t1XCA7CivniIbmkoMgPiBiYWt1Z2VraVwgOwor6KaL6K2YID4ga2Vuc2hpa2lcIDsKK+iqsOafkCA+IGRhcmVzb3JlXCA7CivnhLzns54gPiB5YWtla3Vzb1wgOwor5peL5b6LID4gc2Vucml0c3VcIDsKK+iruOW8jyA+IHNob3NoaWtpXCA7CivnhrHmupAgPiBuZXRzdWdlblwgOwor6Kej6IG3ID4ga2Fpc2hva3VcIDsKK+S6i+OAhSA+IGtvdG9nb3RvXCA7CivlpJzmoZwgPiB5b3pha3VyYVwgOwor5paH5pyrID4gYnVubWF0c3VcIDsKK+aXp+WuhSA+IGt5dXV0YWt1XCA7Civoqr/mlZkgPiBjaG91a3lvdVwgOwor5LqI44CFID4ga2FuZWdhbmVcIDsKK+aZguWBtiA+IHRva2l0YW1hXCA7CivlpoLlrp8gPiBueW9qaXRzdVwgOwor5paO5pelID4gc2Fpaml0c3VcIDsKK+inkuiGnCA+IGtha3VtYWt1XCA7CivnhrHmtpkgPiBuZXRzdXJ1aVwgOwor6KuS5om/ID4gcnlvdXNob3VcIDsKK+mbu+altSA+IGRlbmt5b2t1XCA7CivlobXnrrEgPiBnb21pYmFrb1wgOwor5pWP5rS7ID4gYmlua2F0c3VcIDsKK+mWi+mXoiA+IGthaWJ5YWt1XCA7CivnhaXnmbogPiBrYW5wYXRzdVwgOwor5aSn5pelID4gZGFpbmljaGlcIDsKK+mfk+S6uiA+IGthcmFiaXRvXCA7CivlpJbmnqAgPiBzb3Rvd2FrdVwgOwor5pW35p2/ID4gc2hpa2lpdGFcIDsKK+iqrOaYjiA+IHNldHN1bWVpXCA7CivnuKbmqKogPiB0YXRleW9rb1wgOwor6KaB6KijID4geW91a2V0c3VcIDsKK+Wil+eZuiA+IHpvdWhhdHN1XCA7CivmmI7lk7IgPiBtZWl0ZXRzdVwgOwor5aSc5pi8ID4geW9ydWhpcnVcIDsKK+eCueiosyA+IHRlbicneWFrdVwgOwor5aSV5pyIID4geXV1ZHp1a2lcIDsKK+aWueW8jyA+IGhvdXNoaWtpXCA7CivploDplqUgPiBtb25iYXRzdVwgOwor6aOE44CFID4gaHlvdWh5b3VcIDsKK+aYpeWFiCA+IGhhcnVzYWtpXCA7Civlp4vlgKQgPiBoYWppbWVuZVwgOwor5paw5b2iID4gc2hpbmdhdGFcIDsKK+e/vOOAhSA+IHlva3V5b2t1XCA7Civpmbjnm7ggPiByaWt1c2hvdVwgOwor57W557a/ID4ga2ludXdhdGFcIDsKK+eJhuWjgSA+IHNob3VoZWtpXCA7Civlo4rmu4UgPiBrYWltZXRzdVwgOwor6Zqb54mpID4ga2l3YW1vbm9cIDsKK+WkreaKmCA+IHlvdXNldHN1XCA7CivlpajlraYgPiBzaG91Z2FrdVwgOwor6ZuG5rOoID4gc2h1dWNodXVcIDsKK+aVteaWuSA+IHRla2lnYXRhXCA7CivplbfplbcgPiBuYWdhbmFnYVwgOwor5paw5bm0ID4gc2hpbicnbmVuXCA7CivniIblv4MgPiBiYWt1c2hpblwgOwor57SE6Ku+ID4geWFrdWRha3VcIDsKK+aVsOaXpSA+IHN1dWppdHN1XCA7CivmnKzjgIUgPiBtb3RvbW90b1wgOwor6Ziy57iuID4gYm91c2h1a3VcIDsKK+aTgeeriyA+IHlvdXJpdHN1XCA7CivmlbDmlbAgPiBrYXp1a2F6dVwgOwor5aSn5omAID4gb29kb2tvcm9cIDsKK+aXp+WbvSA+IGt5dXVrb2t1XCA7CivlnLDpvKAgPiBqaW5lenVtaVwgOwor57SU6KGAID4ganVua2V0c3VcIDsKK+eyiemjviA+IGZ1bnNob2t1XCA7CivnuKbmm7ggPiB0YXRlZ2FraVwgOwor5pOm55a1ID4gc3VyaWtpenVcIDsKK+eyiemjnyA+IGZ1bnNob2t1XCA7CivloZrnqbQgPiB0c3VrYWFuYVwgOwor5aSW5o6lID4gZ2Fpc2V0c3VcIDsKK+ipleazqCA+IGh5b3VjaHV1XCA7CivnhafnhLwgPiB0ZXJpeWFraVwgOwor5aSx5b+DID4gc2hpc3NoaW5cIDsKK+e1tuethiA+IHplcHBpdHN1XCA7Civpm6Pmm7IgPiBuYW5reW9rdVwgOwor6KiI55WlID4ga2Vpcnlha3VcIDsKK+WkmeaIkCA+IHNodWt1c2VpXCA7CivopovokL0gPiBtaW90b3NoaVwgOwor54K56JasID4gdGVuJyd5YWt1XCA7CivngrjolqwgPiBzYWt1eWFrdVwgOwor5paw5a6FID4gc2hpbnRha3VcIDsKK+Wfi+iorSA+IG1haXNldHN1XCA7CivmjqXpqqggPiBzZWtrb3RzdVwgOwor6Zm954mpID4geW91YnV0c3VcIDsKK+irluWuoiA+IHJvbmt5YWt1XCA7Civop5LnrJsgPiB0c3Vub2J1ZVwgOwor54ax5pybID4gbmV0c3Vib3VcIDsKK+mVt+mHnSA+IGNob3VzaGluXCA7CivplrLoqq0gPiBldHN1ZG9rdVwgOwor6Kqw5b28ID4gdGFyZWthcmVcIDsKK+exs+mjnyA+IGJlaXNob2t1XCA7CivntKLojqsgPiBzYWt1YmFrdVwgOwor57WQ57iEID4ga2V0c3Vqb3VcIDsKK+S5heOAhSA+IGhpc2FiaXNhXCA7Civpm5Hmm7IgPiB6YWtreW9rdVwgOwor5aSq5be7ID4gZnV0b21ha2lcIDsKK+aWsOWmuyA+IG5paWR6dW1hXCA7CivntZDntK4gPiBrZXNzYXRzdVwgOwor5aSZ5b+XID4gc2h1a3VzaGlcIDsKK+e/jOOAhSA+IHlva3V5b2t1XCA7Civml6fliocgPiBreXV1Z2VraVwgOwor5pGY6IqvID4gdGVraXNoaW5cIDsKK+mWouiqrCA+IGthbnNldHN1XCA7CivniankuosgPiBtb25vZ290b1wgOwor6Kiz5rOoID4geWFrdWNodXVcIDsKK+aUueacrSA+IGthaXNhdHN1XCA7Civnha7msrggPiBzaGFmdXRzdVwgOwor5aSn5bWQID4gb29hcmFzaGlcIDsKK+ijvemJhCA+IHNlaXRldHN1XCA7Civoo4Xpo74gPiBzb3VzaG9rdVwgOwor6ZuR5paHID4gemF0c3VidW5cIDsKK+S4uOOAhSA+IG1hcnVtYXJ1XCA7CivntJnoirEgPiBrYW1pYmFuYVwgOwor54S854mpID4geWFraW1vbm9cIDsKK+aVteW9uSA+IHRla2l5YWt1XCA7CivntZDnr4AgPiBrZXNzZXRzdVwgOwor6ZW36Lu4ID4gY2hvdWppa3VcIDsKK+WkluW6rSA+IHNvdG9uaXdhXCA7CivntYTntJAgPiBrdW1paGltb1wgOwor57KS6YqAID4gdHN1YnVnaW5cIDsKK+mch+W5hSA+IHNoaW5wdWt1XCA7CivmlbTlvI8gPiBzZWlzaGlraVwgOwor6ZaL6LGBID4ga2Fpa2F0c3VcIDsKK+mVt+i6qyA+IGNob3VzaGluXCA7CivnuIHml6UgPiBlbicnbmljaGlcIDsKK+Wkp+WxgCA+IHRhaWt5b2t1XCA7CivmlrDlnosgPiBzaGluZ2F0YVwgOwor5aSc5bWQID4geW9hcmFzaGlcIDsKK+aVsOW8jyA+IHN1dXNoaWtpXCA7Civmm7TjgIUgPiBzYXJhc2FyYVwgOwor54mb5LmzID4gZ3l1dW55dXVcIDsKK+S4reOAhSA+IG5ha2FuYWthXCA7Civmm7LjgIUgPiBrdW1hZ3VtYVwgOwor6ZW36LazID4gY2hvdXNva3VcIDsKK+WhqeeJqSA+IHNoaW9tb25vXCA7CivopoHogbcgPiB5b3VzaG9rdVwgOwor54mH5YG0ID4ga2F0YWdhd2FcIDsKK+iktuilniA+IHNodXVoZWtpXCA7Civpm4DmlpEgPiBzb2Jha2FzdVwgOwor5pen5L+XID4ga3l1dXpva3VcIDsKK+mbsuW9oiA+IGt1bW9nYXRhXCA7CivntYznqbQgPiBrZWlrZXRzdVwgOwor5Lim44CFID4gbmFtaW5hbWlcIDsKK+aSnuedgCA+IGRvdWNoYWt1XCA7Civml6fkvZwgPiBreXV1c2FrdVwgOwor57SF6IqxID4gYmVuaWJhbmFcIDsKK+mZsOa5vyA+IGluc2hpdHN1XCA7Civnt6jmm7IgPiBoZW5reW9rdVwgOwor57WE56uLID4ga3VtaXRhdGVcIDsKK+mWi+iorSA+IGthaXNldHN1XCA7CivkuKHjgIUgPiByeW91cnlvdVwgOwor57Sw57SwID4gaG9zb2Jvc29cIDsKK+ippuaOmCA+IHNoaWt1dHN1XCA7CivloannhLwgPiBzaGlveWFraVwgOwor5aSW5bGAID4gZ2Fpa3lva3VcIDsKK+Wil+auliA+IHpvdXNob2t1XCA7Civml6fkurogPiBmdXJ1Yml0b1wgOwor6Kiz5qWtID4geWFrdWd5b3VcIDsKK+aOkumbqiA+IGhhaXNldHN1XCA7Civnspvou40gPiBzaHVrdWd1blwgOwor54ax5oSfID4gbmV0c3VrYW5cIDsKK+WkseWinCA+IHNoaXR0c3VpXCA7Civlm73ps6UgPiBrb2t1Y2hvdVwgOwor6Ku45YWxID4gbW9yb3RvbW9cIDsKK+Wkq+WkqyA+IHNvcmV6b3JlXCA7CivntKHnuZQgPiBib3VzaG9rdVwgOwor5aSW5a6iID4gZ2Fpa3lha3VcIDsKK+eGseaDhSA+IG5ldHN1am91XCA7CivlpJblrasgPiBzb3RvbWFnb1wgOwor57OW6JycID4gdG91bWl0c3VcIDsKK+iqoOWunyA+IHNlaWppdHN1XCA7Civpm6PlvbkgPiBuYW4nJ3lha3VcIDsKK+aVkeaApSA+IGt5dXVreXV1XCA7CivloZfniakgPiBudXJpbW9ub1wgOwor54mI5LiLID4gaGFuc2hpdGFcIDsKK+mZpOa5vyA+IGpvc2hpdHN1XCA7CivnhpTmjqUgPiB5b3VzZXRzdVwgOwor57Wx546HID4gdG91c290c3VcIDsKK+mVt+iqvyA+IGNob3VjaG91XCA7Civml4XlhYggPiB0YWJpc2FraVwgOwor54K557a0ID4gdGVudGV0c3VcIDsKK+e0sOethiA+IHNhaWhpdHN1XCA7Civpm6rltrogPiBzZXRzdXJlaVwgOwor57W554mpID4ga2ludW1vbm9cIDsKK+ios+afhCA+IHdha2VnYXJhXCA7CivopZ/ohbAgPiBlcmlrb3NoaVwgOwor57WQ552AID4ga2V0Y2hha3VcIDsKK+e3keaelyA+IHJ5b2t1cmluXCA7CivntZDnm58gPiBrZXRzdW1laVwgOwor54ax5byBID4gbmV0c3ViZW5cIDsKK+mbkeW/tSA+IHphdHN1bmVuXCA7CivoqI7mrbsgPiB1Y2hpamluaVwgOwor5pSv5omVID4gc2hpaGFyYWlcIDsKK+imquedpiA+IHNoaW5ib2t1XCA7CivloIDnq68gPiBob3JpYmF0YVwgOwor6Zml5rKhID4ga2FuYm90c3VcIDsKK+aWsOWKhyA+IHNoaW5nZWtpXCA7Civop5LniZsgPiBrYWt1Z3l1dVwgOwor6ZuR5b25ID4gemF0c3Vla2lcIDsKK+mbquWxsSA+IHl1a2l5YW1hXCA7Civoq7jkurogPiBtb3JvYml0b1wgOwor6Zmj5rKhID4gamluYm90c3VcIDsKK+mZvealtSA+IHlvdWt5b2t1XCA7CivniLbkuIogPiBjaGljaGl1ZVwgOwor6Zuq5a6zID4gc2V0c3VnYWlcIDsKK+mVt+iiliA+IG5hZ2Fzb2RlXCA7CivkuIDjgIUgPiBpdHN1aXRzdVwgOwor6Ziy54axID4gYm91bmV0c3VcIDsKK+mbo+WxgCA+IG5hbmt5b2t1XCA7CivnuITlvLUgPiBuYXdhYmFyaVwgOwor5aSW5aCAID4gc290b2JvcmlcIDsKK+e1jOeVpSA+IGtlaXJ5YWt1XCA7Civoo4/pgZMgPiB1cmFtaWNoaVwgOwor6Zqj5o6lID4gcmluc2V0c3VcIDsKK+e2meavjSA+IG1hbWFoYWhhXCA7CivlpKfllp0gPiBkYWlrYXRzdVwgOwor57SZ562GID4gc2hpaGl0c3VcIDsKK+aVmeWtpiA+IGt5b3VnYWt1XCA7CivpnLLlh7ogPiByb3NodXRzdVwgOwor6Kiq5pelID4gaG91bmljaGlcIDsKK+WhqeawtCA+IHNoaW9taXp1XCA7CivmlbflnLAgPiBzaGlraWNoaVwgOwor6ZqG5piMID4gcnl1dXNob3VcIDsKK+aWsOS/riA+IHNoaW5zaHV1XCA7CivlpKflkIkgPiBkYWlraWNoaVwgOwor5paw5L2cID4gc2hpbnNha3VcIDsKK+mWouiEhyA+IHNla2l3YWtlXCA7Civnh63lj7AgPiBzaG9rdWRhaVwgOwor54Kt56qvID4gc3VtaWdhbWFcIDsKK+mbu+WcpyA+IGRlbicnYXRzdVwgOwor6Zuo5aWzID4gYW1lb24nJ25hXCA7CivniIblgrcgPiBiYWt1c2hvdVwgOwor5paw5Lu7ID4gc2hpbicnbmluXCA7Civmv4DpnIcgPiBnZWtpc2hpblwgOwor6ZaT6ImyID4ga2Fuc2hva3VcIDsKK+WkieWcpyA+IGhlbicnYXRzdVwgOwor6Kaq546LID4gc2hpbicnbm91XCA7CivlpKfljZIgPiBkYWlzb3RzdVwgOwor57eP5ousID4gc291a2F0c3VcIDsKK+ino+axuiA+IGthaWtldHN1XCA7CivmlL/lsYAgPiBzZWlreW9rdVwgOwor5aOB5b25ID4ga2FiZXlha3VcIDsKK+aOm+i7uCA+IGtha2VqaWt1XCA7CivnuITlsLsgPiBuYXdhamlyaVwgOwor6KOy6KWgID4gdWNoaWtha2VcIDsKK+WfuuedoyA+IGtpcmlzdXRvXCA7CivopKroibIgPiB0YWlzaG9rdVwgOwor5aSn5YilID4gdGFpYmV0c3VcIDsKK+Wkp+WIhyA+IHRhaXNldHN1XCA7CivmlonliJcgPiBzZWlyZXRzdVwgOwor6Zuq5Zu9ID4geXVraWd1bmlcIDsKK+Wkp+WGiiA+IHRhaXNhdHN1XCA7Civnt7vlr4YgPiBjaGltaXRzdVwgOwor6ZaR6IG3ID4ga2Fuc2hva3VcIDsKK+WkieWTsiA+IGhlbnRldHN1XCA7Civns7jnq7kgPiBzaGljaGlrdVwgOwor6ZaL6ISaID4ga2Fpa3lha3VcIDsKK+aUr+WxgCA+IHNoaWt5b2t1XCA7CivlpLHkv50gPiBzaGl0c3Vob1wgOwor57WC54aEID4gc2h1dXNva3VcIDsKK+WkluWKmyA+IGdhaXJ5b2t1XCA7Civoqr/kvI8gPiBjaG91YnVrdVwgOwor6Zub5Z6LID4gaGluYWdhdGFcIDsKK+imgeeVpSA+IHlvdXJ5YWt1XCA7CivmlZHlm70gPiBreXV1a29rdVwgOwor6ZaA6ISIID4gbW9ubXlha3VcIDsKK+ikkOiJsiA+IGthc3Nob2t1XCA7CivmlbTliJcgPiBzZWlyZXRzdVwgOwor6Zu75YqbID4gZGVucnlva3VcIDsKK+aOpeinpiA+IHNlc3Nob2t1XCA7CivmlbDliJcgPiBzdXVyZXRzdVwgOwor5aSn5LuPID4gZGFpYnV0c3VcIDsKK+mWouevgCA+IGthbnNldHN1XCA7CivmlL7ln5IgPiBob3VyYXRzdVwgOwor57We5q66ID4ga291c2F0c3VcIDsKK+WkluWBtCA+IHNvdG9nYXdhXCA7CivooajploAgPiBvbW90ZW1vblwgOwor5pWw5YaKID4gc3V1c2F0c3VcIDsKK+mbsuWKqSA+IGt1bW9zdWtlXCA7Civpm6rljp8gPiBzZXRzdWdlblwgOwor6ZuR5ZqiID4gemF0c3Vub3VcIDsKK+a/gemFkiA+IGRvYnVyb2t1XCA7CivlnJ/os6ogPiBkb3NoaXRzdVwgOwor5pW15YG0ID4gdGVraWdhd2FcIDsKK+iopeW8gSA+IHRvdHN1YmVuXCA7Civoo4/ooaggPiB1cmFvbW90ZVwgOwor6Kqt5LqGID4gZG9rdXJ5b3VcIDsKK+eBsOevqSA+IGhhaWZ1cnVpXCA7CivnsqXohbkgPiBrYXl1YmFyYVwgOwor54CJ6KGAID4gc2hha2V0c3VcIDsKK+WgheeCrSA+IGthdGF6dW1pXCA7Civntr/lvJMgPiB3YXRheXVtaVwgOwor57iu5YaZID4gc2h1a3VzaGFcIDsKK+aVmeWNkyA+IGt5b3V0YWt1XCA7CivlnoLogLMgPiB0YXJlbWltaVwgOwor6Kmw5ZWPID4ga2l0c3Vtb25cIDsKK+WjsuWNtCA+IGJhaWt5YWt1XCA7CivmjqHooYAgPiBzYWlrZXRzdVwgOwor57im5YiXID4ganV1cmV0c3VcIDsKK+ihjOmdqSA+IGd5b3VrYWt1XCA7CivntbbmnJsgPiB6ZXRzdWJvdVwgOwor5pKD5rKIID4gZ2VraWNoaW5cIDsKK+inkuafsSA+IGtha3VjaHV1XCA7Civlm73ovrEgPiBrb2t1am9rdVwgOwor5pWZ5YmHID4ga3lvdXNva3VcIDsKK+WiqOWuoiA+IGJva2t5YWt1XCA7Civlo6vljZIgPiBzaGlzb3RzdVwgOwor5Zyw6KKLID4gamlidWt1cm9cIDsKK+aVteS4rSA+IHRla2ljaHV1XCA7Civlo7Llh7ogPiB1cmlkYXNoaVwgOwor57eK5a+GID4ga2lubWl0c3VcIDsKK+aPuuevrSA+IHl1cmlrYWdvXCA7Civpm6rlg48gPiBzZXRzdXpvdVwgOwor57SF546JID4ga291Z3lva3VcIDsKK+exs+iUtSA+IGtvbWVndXJhXCA7Civmva7poqggPiBzaGlva2F6ZVwgOwor5Z6L57SZID4ga2F0YWdhbWlcIDsKK+ioquWuoiA+IGhvdWt5YWt1XCA7CivoqLHlq4EgPiBpaW5henVrZVwgOwor5o2P6YCgID4gbmV0c3V6b3VcIDsKK+aVo+S9miA+IHNhbicnaXRzdVwgOwor6Kix5amaID4gaWluYXp1a2VcIDsKK+e0oua8oCA+IHNha3ViYWt1XCA7Civplo/np5IgPiB1cnV1YnlvdVwgOwor5r2k6aO+ID4ganVuc2hva3VcIDsKK+aLs+mqqCA+IGdlbmtvdHN1XCA7Civntr/lr4YgPiBtZW5taXRzdVwgOwor5r+A6LaKID4gZ2VraWV0c3VcIDsKK+e2v+WunyA+IG1lbmppdHN1XCA7CivntLDms6IgPiBzYXphbmFtaVwgOwor6Zqc5aOBID4gc2hvdWhla2lcIDsKK+WbveiziiA+IGtva3V6b2t1XCA7Civngrnmu4UgPiB0ZW5tZXRzdVwgOwor6Kem5omLID4gc2hva3VzaHVcIDsKK+evgOmjnyA+IHNlc3Nob2t1XCA7Civmv4Dos54gPiBnZWtpc2hvdVwgOwor6KO957mUID4gc2Vpc2hva3VcIDsKK+e1puaWmSA+IGt5dXVyeW91XCA7CivntJTmvZQgPiBqdW5rZXRzdVwgOwor6ZqU5aOBID4ga2FrdWhla2lcIDsKK+aUvuWIlyA+IGhvdXJldHN1XCA7CivpmbjlsIYgPiByaWt1c2hvdVwgOwor57WC5qWtID4gc2h1dWd5b3VcIDsKK+mbquS4iiA+IHNldHN1am91XCA7Civnsp/nspIgPiB6b2t1cnl1dVwgOwor6Kaz5pyIID4ga2FuZ2V0c3VcIDsKK+e1seaLrCA+IHRvdWthdHN1XCA7Civmi77pm4YgPiBzaHV1c2h1dVwgOwor57eR5ZywID4gcnlva3VjaGlcIDsKK+eEpuW/gyA+IHNob3VzaGluXCA7Civnr4Dpm7sgPiBzZXRzdWRlblwgOwor57KY57KYID4gbmViYW5lYmFcIDsKK+eCjueGsSA+IGVuJyduZXRzdVwgOwor5Zu96KixID4ga3VuaW1vdG9cIDsKK+mWi+eZuiA+IGthaWhhdHN1XCA7CivnspLnspIgPiByeXV1cnl1dVwgOwor5pmC44CFID4gdG9raWRva2lcIDsKK+ino+W8jyA+IGthaXNoaWtpXCA7Civopqrml48gPiBzaGluem9rdVwgOwor6ZW355+zID4gY2hvdXNla2lcIDsKK+eyieeyiSA+IGtvbmFnb25hXCA7CivmkI3njocgPiBzb25yaXRzdVwgOwor6KGo6LGhID4gaHlvdXNob3VcIDsKK+mbh+S6uiA+IHlhdG9pbmluXCA7CivoqK3llY8gPiBzZXRzdW1vblwgOwor6Kaa5pu4ID4gb2JvZWdha2lcIDsKK+a8hum7kiA+IHNoaWtrb2t1XCA7Civnt6jlhaUgPiBoZW4nJ255dXVcIDsKK+aLkumjnyA+IGt5b3Nob2t1XCA7Civpm4bkuK0gPiBzaHV1Y2h1dVwgOwor57Sv5pyIID4gcnVpZ2V0c3VcIDsKK+WeguebtCA+IHN1aWNob2t1XCA7CivntIXmrrsgPiBiZW5pZ2FyYVwgOwor5oub6ZuGID4gc2hvdXNodXVcIDsKK+aSpeW8piA+IGhhdHN1Z2VuXCA7CivooYzot6EgPiBneW91c2VraVwgOwor6KeS5bqXID4ga2Fkb21pc2VcIDsKK+e3tOS5syA+IHJlbicnbnl1dVwgOwor57Gz57OgID4ga29tZW51a2FcIDsKK+e3j+WKmyA+IHNvdXJ5b2t1XCA7CivntK/ml6UgPiBydWlqaXRzdVwgOwor5Zyo6IG3ID4gemFpc2hva3VcIDsKK+e3j+WIpSA+IHNvdWJldHN1XCA7Civln4vmsqEgPiBtYWlib3RzdVwgOwor6Kaq5oiaID4gc2hpbnNla2lcIDsKK+eymOedgCA+IG5lbmNoYWt1XCA7Civns57mupwgPiBrdXNvZGFtZVwgOwor57eK5YiHID4ga2luc2V0c3VcIDsKK+eviemAoCA+IGNoaWt1em91XCA7Civop6blqpIgPiBzaG9rdWJhaVwgOwor6ZqK5YiXID4gdGFpcmV0c3VcIDsKK+e0ouaVtSA+IHNha3V0ZWtpXCA7CivlopfliLcgPiB6b3VzYXRzdVwgOwor5piT44CFID4geWFzdXlhc3VcIDsKK+e3keS+vyA+IHJ5b2t1YmVuXCA7Civmva7otrMgPiBzaGlvYXNoaVwgOwor6Zay5q20ID4gZXRzdXJla2lcIDsKK+e0jeacrSA+IG5vdXNhdHN1XCA7CivntYLmga8gPiBzaHV1c29rdVwgOwor5oyv6KKWID4gZnVyaXNvZGVcIDsKK+ezn+axgSA+IGthc3VqaXJ1XCA7CivntITmnZ8gPiB5YWt1c29rdVwgOwor6KGG6KmVID4gc2h1dWh5b3VcIDsKK+aKkemssSA+IHlva3V1dHN1XCA7CivmjIfosqsgPiB5dWJpbnVraVwgOwor57W25aSnID4gemV0c3VkYWlcIDsKK+a/gOiHrSA+IGdla2lzaHV1XCA7CivopovmiYAgPiBtaWRva29yb1wgOwor5o+b54mpID4ga2FuYnV0c3VcIDsKK+eyl+eOhyA+IGFyYXJpdHN1XCA7CivntYLluZUgPiBzaHV1bWFrdVwgOwor6KWy5pKDID4gc2h1dWdla2lcIDsKK+e1kOWxgCA+IGtla2t5b2t1XCA7CivnrYvpqqggPiBzdWppYm9uZVwgOwor5pOm5YK3ID4gc3VyaWtpenVcIDsKK+ims+WvnyA+IGthbnNhdHN1XCA7CivoprPlrqIgPiBrYW5reWFrdVwgOwor5r+r56uLID4gcmFucml0c3VcIDsKK+aOpeedgCA+IHNldGNoYWt1XCA7CivpmaPliJcgPiBqaW5yZXRzdVwgOwor6ZaT5q2HID4ga2Fua2V0c3VcIDsKK+Wcn+ethiA+IHRzdWt1c2hpXCA7CivoobDoibIgPiBzdWlzaG9rdVwgOwor57Kb54S2ID4gc2h1a3V6ZW5cIDsKK+mWk+asoCA+IGthbmtldHN1XCA7CivntLDlvJUgPiBob3NvYmlraVwgOwor6Kaq5bGAID4gb3lha3lva3VcIDsKK+euoei9hCA+IGthbmthdHN1XCA7CivpmaXlhaUgPiBrYW4nJ255dXVcIDsKK+ihqOiKuCA+IG9tb3RlZ2VpXCA7Civml6njgIUgPiBoYXlhYmF5YVwgOwor6KOF552AID4gc291Y2hha3VcIDsKK+e1guWvqSA+IHNodXVzaGluXCA7Civmv4PnuK4gPiBub3VzaHVrdVwgOwor6KiO5LyQID4gdG91YmF0c3VcIDsKK+isjuOAhSA+IG5hem9uYXpvXCA7CivntYLlrrUgPiBzaHV1c2hvdVwgOwor5Z+35b+DID4gc2h1dXNoaW5cIDsKK+aPkOeBryA+IGNob3VjaGluXCA7CivmkZjlv4MgPiB0ZWtpc2hpblwgOwor6KOP55S6ID4gdXJhbWFjaGlcIDsKK+eFieS5syA+IHJlbicnbnl1dVwgOwor5Zyf56WeID4gdWNoaWdhbWlcIDsKK+WggOW3nSA+IGhvcmlrYXdhXCA7Civntbblkb0gPiB6ZXRzdW1laVwgOwor6ZmL5YqjID4gcm91cmV0c3VcIDsKK+imgeW8jyA+IHlvdXNoaWtpXCA7CivnrYbpoIYgPiBoaXRzdWp1blwgOwor6KK0552AID4gaGFrYW1hZ2lcIDsKK+imluWvnyA+IHNoaXNhdHN1XCA7CivnsKHntIQgPiBrYW4nJ3lha3VcIDsKK+WbveexjSA+IGtva3VzZWtpXCA7CivmjL3ogokgPiBoaWtpbmlrdVwgOwor57aa5Ly4ID4gem9rdXNoaW5cIDsKK+eym+a4hSA+IHNodWt1c2VpXCA7CivntLDlr4YgPiBzYWltaXRzdVwgOwor6ZaT5p+EID4gYWlkYWdhcmFcIDsKK+aSg+WinCA+IGdla2l0c3VpXCA7CivloIXlrp8gPiBrZW5qaXRzdVwgOwor6Ku444CFID4gbW9yb21vcm9cIDsKK+WbveetliA+IGtva3VzYWt1XCA7Civmv6vnmbogPiByYW5wYXRzdVwgOwor562G6ZmjID4gaGl0c3VqaW5cIDsKK+e1kOWboyA+IGtldHN1ZGFuXCA7CivonqLpm6ogPiBrZWlzZXRzdVwgOwor6ZaP5pyIID4ganVuZ2V0c3VcIDsKK+imhuWvqSA+IGZ1a3VzaGluXCA7CivplovmnK0gPiBrYWlzYXRzdVwgOwor57Si5a+eID4gc2FrdWJha3VcIDsKK+idtumuqyA+IGNob3V6YW1lXCA7CivmkKbmiYsgPiBrYXJhbWV0ZVwgOwor5Zuj57WQID4gZGFua2V0c3VcIDsKK+aXgeOAhSA+IGthdGFnYXRhXCA7CivntJnlsZEgPiBrYW1pa3V6dVwgOwor57KV5rGBID4ga2FzdWppcnVcIDsKK+ihgOiJsiA+IGtlc3Nob2t1XCA7CivnspvmraMgPiBzaHVrdXNlaVwgOwor6ZaA5pytID4gbW9uc2F0c3VcIDsKK+irpOOAhSA+IGdha3VnYWt1XCA7CivntbblgKsgPiB6ZXRzdXJpblwgOwor5Z6L5p6gID4ga2F0YXdha3VcIDsKK+aKveixoSA+IGNodXVzaG91XCA7CivmioTpjLIgPiBzaG91cm9rdVwgOwor6ZGR6K2YID4ga2Fuc2hpa2lcIDsKK+mXh+W4giA+IHlhbWlpY2hpXCA7Civono3pm6ogPiB5dXVzZXRzdVwgOwor57CS56uLID4gc2Fucml0c3VcIDsKK+e1kOWQiCA+IGtldHN1Z291XCA7CivlnLDnhrEgPiBjaGluZXRzdVwgOwor6ZaT5o6lID4ga2Fuc2V0c3VcIDsKK+eti+mHkSA+IHN1amlnYW5lXCA7CivopqrlkYogPiBzaGlua29rdVwgOwor566X6KGTID4gc2FuanV0c3VcIDsKK+a9pOiJsiA+IGp1bnNob2t1XCA7Civooajnq6AgPiBoeW91c2hvdVwgOwor6Kaq5Y+LID4gc2hpbicneXV1XCA7CivmvKLoqLMgPiBrYW4nJ3lha3VcIDsKK+mVt+aXhSA+IG5hZ2F0YWJpXCA7CivpmLLkurogPiBzYWtpbW9yaVwgOwor57Sz5ZWGID4gc2hpbnNob3VcIDsKK+ifu+icgiA+IGFyaWJhY2hpXCA7Civmv4Dnl5sgPiBnZWtpdHN1dVwgOwor6Kaz5YWlID4ga2FuJydueXV1XCA7CivooZ3nq4sgPiB0c3VpdGF0ZVwgOwor5oq16KemID4gdGVpc2hva3VcIDsKK+ewoeeVpSA+IGthbnJ5YWt1XCA7CivmjqHmsbogPiBzYWlrZXRzdVwgOwor5o2o54yrID4gc3V0ZW5la29cIDsKK+euseiIuSA+IGhha29idW5lXCA7CivnrrHoiJ8gPiBoYWtvYnVuZVwgOwor6J+A6LC3ID4ga29tZWthbWlcIDsKK+ifr+iZqyA+IGd5b3VjaHV1XCA7CivlpKvjgIUgPiBzb3Jlem9yZVwgOwor6KOB5rG6ID4gc2Fpa2V0c3VcIDsKK+imluWKmyA+IHNoaXJ5b2t1XCA7CivnsonmnKsgPiBmdW5tYXRzdVwgOwor5o6D5ruFID4gc291bWV0c3VcIDsKK+WfkuWkliA+IHJhY2hpZ2FpXCA7CivmjpLms4QgPiBoYWlzZXRzdVwgOwor6KW/5ZOyID4gc2VpdGV0c3VcIDsKK+WdquaVsCA+IHRzdWJvc3V1XCA7Civns57lsL8gPiBmdW4nJ255b3VcIDsKK+ihqOeZvSA+IGh5b3VoYWt1XCA7Civlm5vnmb4gPiB5b25oeWFrdVwgOwor57Sw5YilID4gc2FpYmV0c3VcIDsKK+aJi+mPoSA+IHRla2FnYW1pXCA7Civopqrku7sgPiBzaGluJyduaW5cIDsKK+igj+iCoSA+IGdhbmltYXRhXCA7CivloIDlibIgPiBob3Jpd2FyaVwgOwor6Zai5a6IID4gc2VraW1vcmlcIDsKK+ihgOeojiA+IGtldHN1emVpXCA7Civln7fli5kgPiBzaGl0c3VtdVwgOwor5o2V54mpID4gdG9yaW1vbm9cIDsKK+aIkOmmmSA+IG5hcmlreW91XCA7CivntYLkuoYgPiBzaHV1cnlvdVwgOwor57Gz5p2+ID4gYmVpbWF0c3VcIDsKK+evgOezuCA+IGZ1c2hpaXRvXCA7CivlnovlvI8gPiBrZWlzaGlraVwgOwor56+A57GzID4gc2V0c3VtYWlcIDsKK+aVsOOAhSA+IGthenVrYXp1XCA7Civmib/oq74gPiBzaG91ZGFrdVwgOwor562G6KuHID4gaGl0c3VkYW5cIDsKK+aKhOiosyA+IHNob3V5YWt1XCA7CivplovlsYAgPiBrYWlreW9rdVwgOwor56qu6bOlID4ga3l1dWNob3VcIDsKK+ifueiCoSA+IGdhbmltYXRhXCA7CivpjozpppYgPiBrYW1ha3ViaVwgOwor56uL6aOfID4gcmlzc2hva3VcIDsKK+ihhuebriA+IHNodXVtb2t1XCA7CivnrYbop6YgPiBoaXNzaG9rdVwgOwor57Ch5r2UID4ga2Fua2V0c3VcIDsKK+WeguW5lSA+IHRhcmVtYWt1XCA7Civnq4vpoZggPiByaXRzdWdhblwgOwor5pGC5YuVID4gc2V0c3Vkb3VcIDsKK+eyvuWvhiA+IHNlaW1pdHN1XCA7Civnr4DnqbQgPiBmdXNoaWFuYVwgOwor5o6l5patID4gc2V0c3VkYW5cIDsKK+ihgOebnyA+IGtldHN1bWVpXCA7Civnr4DnqI4gPiBzZXRzdXplaVwgOwor57O45Y+jID4gaXRvZ3VjaGlcIDsKK+aJi+i7iiA+IHRlZ3VydW1hXCA7CivplbflsLsgPiBuYWdhamlyaVwgOwor5r+B5rWBID4gZGFrdXJ5dXVcIDsKK+e0oOS6uiA+IHNoaXJvdXRvXCA7Civmv4DmtYEgPiBnZWtpcnl1dVwgOwor5Z+35LqLID4gc2hpdHN1amlcIDsKK+aJgOi9hCA+IHNob2thdHN1XCA7Civmi5LntbYgPiBreW96ZXRzdVwgOwor5o6S5pelID4gaGFpbmljaGlcIDsKK+ezu+WIlyA+IGtlaXJldHN1XCA7CivnhrHjgIUgPiBhdHN1YXRzdVwgOwor6KGw5ruFID4gc3VpbWV0c3VcIDsKK+aOoeaOmCA+IHNhaWt1dHN1XCA7Civln5LlhoUgPiByYWNoaW5haVwgOwor5Zyo5pelID4gemFpbmljaGlcIDsKK+a8geiJsiA+IGd5b3Nob2t1XCA7Civmi5nnrYYgPiBzZXBwaXRzdVwgOwor57SU5LiAID4ganVuJydpdHN1XCA7CivmkKzlhaUgPiBoYW4nJ255dXVcIDsKK+mWouWPliA+IHNla2l0b3JpXCA7CivmkL7kubMgPiBzYWt1bnl1dVwgOwor6Juu6aqoID4gYmFua290c3VcIDsKK+a8q+ethiA+IG1hbnBpdHN1XCA7Civnr4DnlKggPiBzZXRzdXlvdVwgOwor5oqc576kID4gYmF0c3VndW5cIDsKK+aJgOiqrCA+IHNob3NldHN1XCA7Civlm73mn4QgPiBrdW5pZ2FyYVwgOwor5rq26KGAID4geW91a2V0c3VcIDsKK+mWkeWNtCA+IGthbmt5YWt1XCA7CivmiYvooosgPiB0ZWJ1a3Vyb1wgOwor6Zaj5YOaID4ga2FrdXJ5b3VcIDsKK+aJi+ihkyA+IHNodWp1dHN1XCA7Civnt6njgIUgPiB5dXJ1eXVydVwgOwor57Gk5byVID4ga3VqaWJpa2lcIDsKK+ewoeacrSA+IGthbnNhdHN1XCA7CivonbbonbYgPiBjaG91Y2hvdVwgOwor562L6IKJID4ga2luJyduaWt1XCA7CivnqpPpmpsgPiBtYWRvZ2l3YVwgOwor6ZaT5YWrID4ga2FucGFjaGlcIDsKK+a4m+mjnyA+IGdlbnNob2t1XCA7CivnrLnoiJ8gPiBzYXNhYnVuZVwgOwor5o6l5bK4ID4gc2V0c3VnYW5cIDsKK+aIr+iogCA+IHRhd2Fnb3RvXCA7Civnsr7lipsgPiBzZWlyeW9rdVwgOwor6KGA5rayID4ga2V0c3Vla2lcIDsKK+epuumiqCA+IGthcmFrYXplXCA7CivooI/njokgPiBrYW5pdGFtYVwgOwor6KGA5raZID4ga2V0c3VydWlcIDsKK+a9sOa7hSA+IGthaW1ldHN1XCA7CivmiLjooosgPiB0b2J1a3Vyb1wgOwor5o6o5a+fID4gc3Vpc2F0c3VcIDsKK+aOpeWuoiA+IHNla2t5YWt1XCA7Civll4XoppogPiBreXV1a2FrdVwgOwor5oqY56+AID4gb3JpZnVzaGlcIDsKK+a9pOa7kSA+IGp1bmthdHN1XCA7CivplpPkvJAgPiBrYW5iYXRzdVwgOwor6Y6M6LazID4ga2FtYWFzaGlcIDsKK+a9rua1gSA+IGNob3VyeXV1XCA7Civlm5vmnIggPiBzaGlnYXRzdVwgOwor6ZW35YiAID4gbmFnaW5hdGFcIDsKK+WYsueskSA+IGNob3VzaG91XCA7Civnqq7ov70gPiBreXV1dHN1aVwgOwor56qu6L+rID4ga3l1dWhha3VcIDsKK+aIpuihkyA+IHNlbmp1dHN1XCA7Civmj6HlipsgPiBha3VyeW9rdVwgOwor6KSH5YudID4gZnVrdXNob3VcIDsKK+ifueeOiSA+IGthbml0YW1hXCA7Civmva7msZAgPiBjaG91c2VraVwgOwor57Ch5oqcID4ga2FuYmF0c3VcIDsKK+a9ruawtCA+IHNoaW9taXp1XCA7Civnr4DmuJsgPiBzZXRzdWdlblwgOwor6Y2b6YmEID4gdGFudGV0c3VcIDsKK+mahuOAhSA+IHJ5dXVyeXV1XCA7CivpmoXjgIUgPiBzdW1penVtaVwgOwor5o+a5YqbID4geW91cnlva3VcIDsKK+erueiWriA+IHRha2V5YWJ1XCA7CivmiY3oibIgPiBzYWlzaG9rdVwgOwor6JuN6ZuqID4ga2Vpc2V0c3VcIDsKK+eri+irliA+IHJpdHN1cm9uXCA7CivnsbPlnaogPiBiZWl0c3Vib1wgOwor562G566xID4gZnVkZWJha29cIDsKK+a4rOmHjyA+IHNva3VyeW91XCA7CivnrYnnrYkgPiBuYWRvbmFkb1wgOwor56uL6KiAID4gcml0c3VnZW5cIDsKK+eym+WFmiA+IHNodWt1dG91XCA7Civoo7jlh7ogPiByYXNodXRzdVwgOwor6Y2L6YecID4gbmFiZWthbWFcIDsKK+ihneaSgyA+IHNob3VnZWtpXCA7CivmvILnmb0gPiBoeW91aGFrdVwgOwor5re36ZuRID4ga29uemF0c3VcIDsKK+mVt+S5hSA+IGNob3VreXV1XCA7Civlm57mipggPiBrYWlzZXRzdVwgOwor5Zyw5aKDID4gZGppemFrYWlcIDsKK+aMv+aKnCA+IHNvdWJhdHN1XCA7CivonabohbAgPiBlYmlnb3NoaVwgOwor6KGj5omLID4ga29yb21vZGVcIDsKK+iht+W/gyA+IGNodXVzaGluXCA7Civom7jotrMgPiB0YWtvYXNoaVwgOwor57aa44CFID4gem9rdXpva3VcIDsKK+a3semVtyA+IHNoaW5jaG91XCA7CivllYbph48gPiBzaG91cnlvdVwgOwor5oyf5pKDID4ga3lvdWdla2lcIDsKK+aOpeWQiCA+IHNldHN1Z291XCA7Civoo4/lj6MgPiB1cmFndWNoaVwgOwor6JqV6aOfID4gc2Fuc2hva3VcIDsKK+aKkeeVmSA+IHlva3VyeXV1XCA7CivpjKzpiYQgPiByZW50ZXRzdVwgOwor5r2u5pmCID4gc2hpb2Rva2lcIDsKK+a/g+WvhiA+IG5vdW1pdHN1XCA7CivooajlvrQgPiBoeW91Y2hvdVwgOwor6KGo5b2wID4gaHlvdXNob3VcIDsKK+WbveWtpiA+IGtva3VnYWt1XCA7CivmvKDmvKAgPiBiYWt1YmFrdVwgOwor5o6o5YqbID4gc3Vpcnlva3VcIDsKK+aPieS6iyA+IG1vbWVnb3RvXCA7Civnq7bnv5QgPiBreW91c2hvdVwgOwor6by76autID4gaGFuYWhpZ2VcIDsKK+eri+iRtSA+IHRhY2hpYW9pXCA7CivnsonkubMgPiBmdW4nJ255dXVcIDsKK+ihneW/gyA+IHNob3VzaGluXCA7CivpvLvpq5ggPiBoYW5hdGFrYVwgOwor5ZaA6KGAID4ga2Fra2V0c3VcIDsKK+aJjeethiA+IHNhaWhpdHN1XCA7CivmipXniakgPiBuYWdlbW9ub1wgOwor5Zyw5Y21ID4gaml0YW1hZ29cIDsKK+exs+WAiSA+IGtvbWVndXJhXCA7CivoopblnqMgPiBzb2RlZ2FraVwgOwor5rex6YWSID4gZnVrYXpha2VcIDsKK+WcsOWKmyA+IGNoaXJ5b2t1XCA7CivnqbrosYYgPiBzb3JhbWFtZVwgOwor5oyv5bmFID4gc2hpbnB1a3VcIDsKK+m8u+miqCA+IGhhbmFrYXplXCA7CivmjpLliJcgPiBoYWlyZXRzdVwgOwor57Gz5LuPID4gYmVpZnV0c3VcIDsKK+aNleWksSA+IGhvc2hpdHN1XCA7Civnq6rnuJ4gPiB0YXRlamltYVwgOwor5oqE54mpID4gc2hvdW1vbm9cIDsKK+erueewoSA+IGNoaWt1a2FuXCA7CivmvILmvIIgPiBoeW91aHlvdVwgOwor5oq55q66ID4gbWFzc2F0c3VcIDsKK+ijj+S7mCA+IHVyYWR6dWtlXCA7CivllJDpi6QgPiBrYXJhc3VraVwgOwor5oa26KqsID4gb2t1c2V0c3VcIDsKK+Wcp+WHuiA+IGFzc2h1dHN1XCA7Civnq4vohJogPiByaWtreWFrdVwgOwor56u5566GID4gdGFrZWJlcmFcIDsKK+WbveWbvSA+IGt1bmlndW5pXCA7CivnsJLlpaogPiBzYW5kYXRzdVwgOwor5Z2H5LiAID4ga2luJydpdHN1XCA7CivmvI/ms4QgPiByb3VzZXRzdVwgOwor6by76Z2pID4gaGFuYWdhd2FcIDsKK+epuuiqrCA+IGt1dXNldHN1XCA7CivlnKflhaUgPiBhdHN1bnl1dVwgOwor5oyZ5byPID4ga3lvc2hpa2lcIDsKK+a/q+WFpSA+IHJhbicnbnl1dVwgOwor6Yu86YmEID4ga291dGV0c3VcIDsKK+epuuiogCA+IHNvcmFnb3RvXCA7CivllJDph5EgPiBrYXJha2FuZVwgOwor6JmO6ayaID4gdG9yYWhpZ2VcIDsKK+a6tueZuiA+IHlvdWhhdHN1XCA7Civmu7Tmu7QgPiB0ZWtpdGVraVwgOwor5ryC5rWBID4gaHlvdXJ5dXVcIDsKK+iZjumrrSA+IHRvcmFoaWdlXCA7Civpj5Hnn6IgPiBrYWJ1cmF5YVwgOwor5ryC5rOKID4gaHlvdWhha3VcIDsKK+iZmumjviA+IGt5b3Nob2t1XCA7Civmi5nmlocgPiBzZXRzdWJ1blwgOwor566P5puyID4gc291a3lva3VcIDsKK+ieoueBqyA+IGhvdGFydWJpXCA7CivpkZHmnK0gPiBrYW5zYXRzdVwgOwor5omN55WlID4gc2Fpcnlha3VcIDsKK+mKgOm8oCA+IGdpbicnbmV6dVwgOwor5r+r5LyQID4gcmFuYmF0c3VcIDsKK+aLvuW+lyA+IHNodXV0b2t1XCA7Civlm73ljp8gPiBrdW5pYmFyYVwgOwor6Jue6J2TID4gbmFtZWt1amlcIDsKK+aOjOS4rSA+IHNob3VjaHV1XCA7Civnpr/pt7kgPiBoYWdldGFrYVwgOwor56m66J2JID4gdXRzdXNlbWlcIDsKK+evieW6rSA+IGNoaWt1dGVpXCA7Civnr6TlraYgPiB0b2t1Z2FrdVwgOwor6J6N54axID4geXV1bmV0c3VcIDsKK+m7mem7mSA+IG1va3Vtb2t1XCA7CivpjYvok4sgPiBuYWJlYnV0YVwgOwor5oiQ56uLID4gc2Vpcml0c3VcIDsKK+ethua0lyA+IGZ1ZGVhcmFpXCA7Civlm7DljbQgPiBrb25reWFrdVwgOwor5oe457W2ID4ga2VuemV0c3VcIDsKK+m7kum7tCA+IGt1cm9rYWJpXCA7Civmtbfpo58gPiBrYWlzaG9rdVwgOwor6buS6buSID4ga3Vyb2d1cm9cIDsKK+aFjumHjSA+IHNoaW5jaG91XCA7Civpu5LpuqYgPiBrdXJvbXVnaVwgOwor5oiQ56iLID4gbmFydWhvZG9cIDsKK+WbveWFgyA+IGt1bmltb3RvXCA7CivmiY3niakgPiBzYWlidXRzdVwgOwor6buS6be6ID4ga3Vyb3NhZ2lcIDsKK+mJpOm8uyA+IGthZ2liYW5hXCA7Civmt7fooYAgPiBrb25rZXRzdVwgOwor566x5bqtID4gaGFrb25pd2FcIDsKK+aLmeaCqiA+IHNldHN1YWt1XCA7CivmtojplbcgPiBzaG91Y2hvdVwgOwor57Sw44CFID4gaG9zb2Jvc29cIDsKK+m7kum0qCA+IGt1cm9nYW1vXCA7Civmi6HlvLUgPiBrYWt1Y2hvdVwgOwor6YqA6auqID4gZ2lucGF0c3VcIDsKK+ibhuiZqyA+IHVqaW11c2hpXCA7CivonZXnlJogPiBzaG9rdWppblwgOwor6JqV6LGGID4gc29yYW1hbWVcIDsKK+igjeW6pyA+IHNhc29yaXphXCA7CivoopbkuIggPiBzb2RldGFrZVwgOwor5oim55WlID4gc2Vucnlha3VcIDsKK+WbnuWLhSA+IGthaWNob2t1XCA7Civlm73kurogPiBrdW5pYml0b1wgOwor5rm/55a5ID4gc2hpc3NoaW5cIDsKK+WYseacmyA+IHNob2t1Ym91XCA7CivmtZzpoqggPiBoYW1ha2F6ZVwgOwor56uq55C0ID4gdGF0ZWdvdG9cIDsKK+a4i+iMtiA+IHNoaWJ1Y2hhXCA7CivooYzllYYgPiBneW91c2hvdVwgOwor56qu562WID4ga3l1dXNha3VcIDsKK+iasOickiA+IGdlamlnZWppXCA7Civmipfml6UgPiBrb3VuaWNoaVwgOwor5riL6ImyID4gc2hpYnVpcm9cIDsKK+a0u+mtmiA+IGthdHN1Z3lvXCA7Civnr4nloKQgPiBjaGlrdXRlaVwgOwor56m66ICzID4gc29yYW1pbWlcIDsKK+mKremHkSA+IHplbmlrYW5lXCA7Civmi53lr58gPiBoYWlzYXRzdVwgOwor5om/5pyNID4gc2hvdWZ1a3VcIDsKK+aIqueEtiA+IHNldHN1emVuXCA7Civpvo3oiJ8gPiByeXV1c2h1dVwgOwor5re36ImyID4ga29uc2hva3VcIDsKK+a6oua1gSA+IGl0c3VyeXV1XCA7Civmu57ml6UgPiB0YWluaWNoaVwgOwor5oqV5oqAID4gbmFnZXdhemFcIDsKK+aIm+eEtiA+IGthdHN1emVuXCA7CivmiJHniakgPiB3YWdhbW9ub1wgOwor6by76KixID4gaGFuYW1vdG9cIDsKK+enkumHnSA+IGJ5b3VzaGluXCA7CivmjK/kvZwgPiBzaGluc2FrdVwgOwor5rqd5rOlID4gZG9idWRvcm9cIDsKK+mKkemJhCA+IHNlbnRldHN1XCA7CivnpoTpq5ggPiByb2t1ZGFrYVwgOwor5rqd5rC0ID4gZG9idW1penVcIDsKK+aGguiJsiA+IHl1dXNob2t1XCA7CivnqbrnsaQgPiBrYXJha3VqaVwgOwor6YmE6aqoID4gdGVra290c3VcIDsKK+a5r+eFmSA+IHl1a2VtdXJpXCA7CivmtJfpq6ogPiBzZW5wYXRzdVwgOwor5reh6ImyID4gdGFuc2hva3VcIDsKK+engemJhCA+IHNoaXRldHN1XCA7Civnp5LpgJ8gPiBieW91c29rdVwgOwor56+k5L+hID4gdG9rdXNoaW5cIDsKK+epuueusSA+IGthcmFiYWtvXCA7CivnqoHnq4sgPiB0b3R0YXRzdVwgOwor5ZSQ6I2JID4ga2FyYWt1c2FcIDsKK+ifu+WhmiA+IGFyaWR6dWthXCA7Civmva7lhYggPiBzaGlvc2FraVwgOwor6Jma6KqsID4ga3lvc2V0c3VcIDsKK+ihgOS+vyA+IGtldHN1YmVuXCA7CivooYzkuK0gPiBneW91Y2h1dVwgOwor5rSL6auqID4geW91aGF0c3VcIDsKK+aIpuayoSA+IHNlbmJvdHN1XCA7CivmjIflhYggPiB5dWJpc2FraVwgOwor6Yym57W1ID4gbmlzaGlraWVcIDsKK+WVhuetliA+IHNob3VzYWt1XCA7CivmiYvmnpUgPiB0ZW1ha3VyYVwgOwor56eA6YC4ID4gc2h1dWl0c3VcIDsKK+evgOWIhiA+IHNldHN1YnVuXCA7CivmiKbmrb8gPiBzZW5ib3RzdVwgOwor56u55qeNID4gdGFrZXlhcmlcIDsKK+iejeaOpSA+IHl1dXNldHN1XCA7Civpu5LpiYQgPiBrdXJvZ2FuZVwgOwor5r2c5YWlID4gc2VuJydueXV1XCA7Civpu5Lph5EgPiBrdXJvZ2FuZVwgOwor5rSL6aOfID4geW91c2hva3VcIDsKK+etieW8jyA+IHRvdXNoaWtpXCA7Civol6nplqUgPiBoYW5iYXRzdVwgOwor5rWB6YePID4gcnl1dXJ5b3VcIDsKK+aEn+inpiA+IGthbnNob2t1XCA7CivpjbzngbggPiBzaGlua3l1dVwgOwor56qB55m6ID4gdG9wcGF0c3VcIDsKK+mJpOmHnSA+IGthZ2liYXJpXCA7CivmipXlrr8gPiB0b3VzaHVrdVwgOwor56u55p6XID4gY2hpa3VyaW5cIDsKK+a6tuaOpSA+IHlvdXNldHN1XCA7CivllZPnmbogPiBrZWloYXRzdVwgOwor56u55p2QID4gY2hpa3V6YWlcIDsKK+epuueZuiA+IGt1dWhhdHN1XCA7CivmiZXmi60gPiBmdXNzaG9rdVwgOwor56We6aKoID4ga2FtaWthemVcIDsKK+eqg+eUqCA+IHNldHN1eW91XCA7CivmtYHpgJ8gPiByeXV1c29rdVwgOwor5rWB6YCaID4gcnl1dXRzdXVcIDsKK+a7neW3nSA+IHRha2lnYXdhXCA7CivnqYDnspIgPiBrb2t1cnl1dVwgOwor562R5a2QID4ga29raXJpa29cIDsKK+err+acqyA+IHRhbm1hdHN1XCA7CivllJDntJkgPiBrYXJha2FtaVwgOwor6Jam6aqoID4gc2Vua290c3VcIDsKK+mVt+OAhSA+IG5hZ2FuYWdhXCA7Civom7jnhLwgPiB0YWtveWFraVwgOwor56Wd6Zu7ID4gc2h1a3VkZW5cIDsKK+aBkOm+jSA+IGt5b3VyeXV1XCA7Civnp4HoqqwgPiBzaGlzZXRzdVwgOwor5ZOB6JaEID4gc2hpbmF1c3VcIDsKK+aLneWAnyA+IGhhaXNoYWt1XCA7CivmiKrmlq0gPiBzZXRzdWRhblwgOwor5rW36J2VID4ga2Fpc2hva3VcIDsKK+eul+WFpSA+IHNhbicnbnl1dVwgOwor56iu57SZID4gdGFuZWdhbWlcIDsKK+a4qeeGsSA+IG9uJyduZXRzdVwgOwor6YmE6YmiID4gdGVwcGFjaGlcIDsKK+engeiorSA+IHNoaXNldHN1XCA7CivmuoDmnIggPiBtYW5nZXRzdVwgOwor6Y2L54mpID4gbmFiZW1vbm9cIDsKK+a5vuabsiA+IHdhbmt5b2t1XCA7Civms6LpoqggPiBuYW1pa2F6ZVwgOwor6ZGR5YilID4ga2FuYmV0c3VcIDsKK+m7kuixuSA+IGt1cm9oeW91XCA7CivmiL/miL8gPiBmdXNhZnVzYVwgOwor6buS6LGGID4ga3Vyb21hbWVcIDsKK+WUkOeqgSA+IHRvdXRvdHN1XCA7Civpu5noq74gPiBtb2t1ZGFrdVwgOwor6YeO6bygID4gbm9uZXp1bWlcIDsKK+WWrOacqCA+IGt5b3Vib2t1XCA7Civpu5noqq0gPiBtb2t1ZG9rdVwgOwor5oGl6aqoID4gY2hpa290c3VcIDsKK+aJi+W/gyA+IHRlZ29rb3JvXCA7CivnqoHnhLYgPiB0b3RzdXplblwgOwor5oq85YiHID4gb3NoaWtpcmlcIDsKK+aKkeWcpyA+IHlva3VhdHN1XCA7CivmhbbnpZ0gPiBrZWlzaHVrdVwgOwor562G5aSqID4gZnVkZWJ1dG9cIDsKK+mJhOmBkyA+IHRldHN1ZG91XCA7CivnspjjgIUgPiBuZWJhbmViYVwgOwor56We6Y+hID4gc2hpbmt5b3VcIDsKK+a4ieeMnyA+IHNob3VyeW91XCA7CivomZrohLEgPiBreW9kYXRzdVwgOwor5rKz6bGSID4ga2F3YW1hc3VcIDsKK+mKreiLlCA+IHplbmlnb2tlXCA7Civnq4vmnK0gPiB0YXRlZnVkYVwgOwor5Zmb5YK3ID4ga2FtaWtpenVcIDsKK+mHjum2siA+IG5vYml0YWtpXCA7CivmvJTlh7ogPiBlbnNodXRzdVwgOwor5ris5rexID4gc29rdXNoaW5cIDsKK+m8u+e0mSA+IGhhbmFnYW1pXCA7CivmuKnmuKkgPiBudWt1bnVrdVwgOwor6by757OeID4gaGFuYWt1c29cIDsKK+eyieOAhSA+IGtvbmFnb25hXCA7CivmgqrpgIYgPiBha3VneWFrdVwgOwor5oKq6L6jID4gYWt1cmF0c3VcIDsKK+aIpuaFhCA+IHNlbnJpdHN1XCA7Civpu5LooaggPiBrb2t1aHlvdVwgOwor5ra856eLID4gcnlvdXNodXVcIDsKK+m8u+etiyA+IGhhbmFzdWppXCA7Civpuqnos6ogPiBmdXNoaXRzdVwgOwor5rKI6buZID4gY2hpbm1va3VcIDsKK+ibjeeBqyA+IGhvdGFydWJpXCA7Civph5Hpq6ogPiBraW5wYXRzdVwgOwor6YmI6LGGID4gbmF0YW1hbWVcIDsKK+ejr+m3uCA+IGlzb3NoaWdpXCA7Civmup3lt50gPiBkb2J1Z2F3YVwgOwor6Y6U5o6lID4geW91c2V0c3VcIDsKK+mNteadnyA+IGthZ2l0YWJhXCA7CivnpZ7pgJ8gPiBzaGluc29rdVwgOwor6buS6JuHID4ga3Vyb2hlYmlcIDsKK+a6gOaCpiA+IG1hbicnZXRzdVwgOwor5oiR5oiRID4gd2FyZXdhcmVcIDsKK+a4hea9lCA+IHNlaWtldHN1XCA7CivnrYblkI0gPiBoaXRzdW1laVwgOwor56iL56iLID4gaG9kb2hvZG9cIDsKK+idjuW6pyA+IHNhc29yaXphXCA7CivnqK7nlZwgPiBzaHVjaGlrdVwgOwor562L5YqbID4ga2lucnlva3VcIDsKK+mKheiJsiA+IGRvdXNob2t1XCA7Civlj43pqqggPiBoYW5rb3RzdVwgOwor5rqW5bC6ID4ganVuc2hha3VcIDsKK+WPrOmbhiA+IHNob3VzaHV1XCA7Civms6jpgLIgPiBjaHV1c2hpblwgOwor5ZWG5rOBID4gc2hvdWt5b3VcIDsKK+mLvOeOiSA+IGtvdWd5b2t1XCA7Civmub/luqYgPiBzaGl0c3Vkb1wgOwor6J+E5LyPID4gY2hpcHB1a3VcIDsKK+a1heiRsSA+IGFzYXRzdWtpXCA7CivmiJLlvosgPiBrYWlyaXRzdVwgOwor56u65a2mID4gamlrdWdha3VcIDsKK+WQueiyqyA+IGZ1a2ludWtpXCA7CivnrLnljp8gPiBzYXNhaGFyYVwgOwor56qT5p6gID4gbWFkb3dha3VcIDsKK+WUkOeJqSA+IHRvdW1vdHN1XCA7Civlj6Lpm7IgPiBtdXJha3Vtb1wgOwor5Y+i6ZuoID4gbXVyYXNhbWVcIDsKK+a2nOelniA+IHRva3VzaGluXCA7Civnq6/lsYAgPiB0YW5reW9rdVwgOwor5oqe5LiAID4gdGFrdWl0c3VcIDsKK+aIpuWxgCA+IHNlbmt5b2t1XCA7CivnrYblhYggPiBmdWRlc2FraVwgOwor6Yqt566xID4gemVuaWJha29cIDsKK+mMqOaziiA+IGJ5b3VoYWt1XCA7CivpiYTooYAgPiB0ZWtrZXRzdVwgOwor5re35rW0ID4ga29uJyd5b2t1XCA7Civmt7Hmt7EgPiBmdWthYnVrYVwgOwor6Jeq6JuHID4geWFidWhlYmlcIDsKK+eorueJqSA+IHRhbmVtb25vXCA7CivnqK7niZsgPiB0YW5ldXNoaVwgOwor6JuH5q+SID4gaGViaWRva3VcIDsKK+aIjOW5tCA+IGludWRvc2hpXCA7CivpvLvnlr4gPiBiaXNoaXRzdVwgOwor5ruR5YmkID4ga2F0c3V6YWlcIDsKK+m7kuiIuSA+IGt1cm9mdW5lXCA7CivllYbmqJkgPiBzaG91aHlvdVwgOwor6byO56uLID4gdGVpcml0c3VcIDsKK+mKgOe/vCA+IGdpbicneW9rdVwgOwor5rOl6LazID4gZG9yb2FzaGlcIDsKK+mOjOW9oiA+IGthbWFnYXRhXCA7Civmu4XljbQgPiBtZWtreWFrdVwgOwor6Yej6YqtID4gdHN1cmlzZW5cIDsKK+WVhualrSA+IHNob3VneW91XCA7CivpibHohIggPiBrb3VteWFrdVwgOwor5Y+O6ZuGID4gc2h1dXNodXVcIDsKK+iaiueHuyA+IGthaWJ1c2hpXCA7CivlkITpgLEgPiBrYWt1c2h1dVwgOwor56We6KiXID4gc2hpbnRha3VcIDsKK+aJv+S8jyA+IHNob3VmdWt1XCA7CivlkIPpgIYgPiBzaGFra3VyaVwgOwor6bq56I+MID4ga291amlraW5cIDsKK+m7hOiJsiA+IGtvdXNob2t1XCA7Civlkb3ohIggPiBtZWlteWFrdVwgOwor6buS6IKJID4ga3Vyb25pa3VcIDsKK+m6puiXgSA+IG11Z2l3YXJhXCA7Civnq7nlnqMgPiB0YWtlZ2FraVwgOwor6Y2b5o6lID4gdGFuc2V0c3VcIDsKK+mHnemHkSA+IGhhcmlnYW5lXCA7CivpioDnuIEgPiBnaW5idWNoaVwgOwor6YeR6YyGID4ga2FuYXNhYmlcIDsKK+eojueOhyA+IHplaXJpdHN1XCA7Civnq4vlsbEgPiB0YXRleWFtYVwgOwor6bqm6JKUID4gbXVnaW1ha2lcIDsKK+mHkemJhCA+IGtpbnRldHN1XCA7Civlj6Tph5EgPiBmdXJ1Z2FuZVwgOwor5Y+k6YeMID4gZnVydXNhdG9cIDsKK+WVhOacqCA+IHRha3Vib2t1XCA7Civlj6Pph40gPiBrdWNoaW9tb1wgOwor5riH5pybID4ga2F0c3Vib3VcIDsKK+aJjeWKmyA+IHNhaXJ5b2t1XCA7Civlj6TphZIgPiBmdXJ1emFrZVwgOwor5riF5pydID4gc2hpbmNob3VcIDsKK+m8u+eGiiA+IGhhbmFndW1hXCA7CivnrJHliocgPiBzaG91Z2VraVwgOwor6Yyr5p2WID4gc2hha3Vqb3VcIDsKK+epuuaSriA+IGt1dXNhdHN1XCA7Civpu5nntIQgPiBtb2t1eWFrdVwgOwor56S+6KqsID4gc2hhc2V0c3VcIDsKK+a1hee3kSA+IHNlbnJ5b2t1XCA7Civlj47pjLIgPiBzaHV1cm9rdVwgOwor5omL5YiAID4gdGVnYXRhbmFcIDsKK+epjealtSA+IHNla2t5b2t1XCA7CivmiZPlgrcgPiB1Y2hpa2l6dVwgOwor6YmE6ImyID4gdGV0c3Vpcm9cIDsKK+WbveOAhSA+IGt1bmlndW5pXCA7Civnpo/ogLMgPiBmdWt1bWltaVwgOwor5ruF5LqhID4gbWV0c3Vib3VcIDsKK+aFhOeEtiA+IHJpdHN1emVuXCA7Civlj6Pov7AgPiBrb3VqdXRzdVwgOwor5ZCM6KqsID4gZG91c2V0c3VcIDsKK+eqkuaBryA+IGNoaXNzb2t1XCA7Civlj7PotrMgPiBtaWdpYXNoaVwgOwor5rKW6YejID4gb2tpZHp1cmlcIDsKK+erueWPoiA+IHRha2FtdXJhXCA7Civpu5LnsbMgPiBrdXJvZ29tZVwgOwor5Y+O6YePID4gc2h1dXJ5b3VcIDsKK+mJhOiFlSA+IHRldHN1d2FuXCA7Civlj5vpgIYgPiBoYW5neWFrdVwgOwor6bue56m0ID4gdGVua2V0c3VcIDsKK+awtOmzpSA+IG1penVkb3JpXCA7CivmuoDllqsgPiBtYW5raXRzdVwgOwor5ZGI6ImyID4gdGVpc2hva3VcIDsKK+aIkeWbvSA+IHdhZ2FrdW5pXCA7Civolq7om4cgPiB5YWJ1aGViaVwgOwor5Y+x6LKsID4gc2hpc3Nla2lcIDsKK+aCquiIjCA+IGFrdXpldHN1XCA7CivomY7njKsgPiB0b3JhbmVrb1wgOwor5rSS6ISxID4gc2hhZGF0c3VcIDsKK+m6u+e2sSA+IGFzYWR6dW5hXCA7Civpu5Dnq78gPiBtb2NoaXphb1wgOwor5ZCr6JOEID4gZ2FuY2hpa3VcIDsKK+WPjemAhiA+IGhhbmd5YWt1XCA7Civlj4LphYwgPiBzYW5zaGFrdVwgOwor5oim5YqbID4gc2Vucnlva3VcIDsKK+WPjui8ryA+IHNodXVzaHV1XCA7CivlkITooYwgPiBrYWt1Z3lvdVwgOwor5oim5YiXID4gc2VucmV0c3VcIDsKK+mNi+W6lSA+IG5hYmV6b2tvXCA7CivmgKXpgLIgPiBreXV1c2hpblwgOwor5oKq6ICFID4gd2FydW1vbm9cIDsKK+aApemAnyA+IGt5dXVzb2t1XCA7CivmgKXov70gPiBreXV1dHN1aVwgOwor5oCl6L+rID4ga3l1dWhha3VcIDsKK+m8u+awtCA+IGhhbmFtaXp1XCA7Civmgr3ntbYgPiBzZWl6ZXRzdVwgOwor56qu5aKDID4ga3l1dWt5b3VcIDsKK+aCtue1tiA+IG1vbnpldHN1XCA7Civlkajnq6AgPiBzaHV1c2hvdVwgOwor5b+r6ZeKID4ga2Fpa2F0c3VcIDsKK+awtOmjnyA+IHN1aXNob2t1XCA7Civnq7bkvZwgPiBreW91c2FrdVwgOwor56uL5ZG9ID4gcml0c3VtZWlcIDsKK+WOs+mBlCA+IGdlbnRhdHN1XCA7CivljrPpgLkgPiBnZW50YXRzdVwgOwor5rm+5YWlID4gd2FuJydueXV1XCA7CivmuKnlrqQgPiBvbnNoaXRzdVwgOwor6YeN6KqsID4ganV1c2V0c3VcIDsKK+mNi+WwuyA+IG5hYmVqaXJpXCA7Civmt7HmhoIgPiBzaGluJyd5dXVcIDsKK+awt+mchyA+IGh5b3VzaGluXCA7CivpiYTnrYYgPiB0ZXBwaXRzdVwgOwor5rS755y8ID4ga2F0c3VnYW5cIDsKK+WPo+ijjyA+IGt1Y2hpdXJhXCA7CivmtJ7nqp8gPiBkb3VrdXRzdVwgOwor5oiR5YSYID4gd2FnYW1hbWFcIDsKK+awtOmamyA+IG1penVnaXdhXCA7Civph43opIcgPiBjaG91ZnVrdVwgOwor56eB54mpID4gc2hpYnV0c3VcIDsKK+a0u+eZuiA+IGthcHBhdHN1XCA7CivpuqbnqIggPiBtdWdpd2FyYVwgOwor56qS5aGeID4gY2hpc3Nva3VcIDsKK+a2iOayiCA+IHNob3VjaGluXCA7CivlkIzoibIgPiBkb3VzaG9rdVwgOwor5oKq562GID4gYWt1aGl0c3VcIDsKK+ehrOmqqCA+IGtvdWtvdHN1XCA7CivmiJHkvq0gPiB3YWdhbWFtYVwgOwor5rKi6KCPID4gc2F3YWdhbmlcIDsKK+ayouifuSA+IHNhd2FnYW5pXCA7Civmhqvlr58gPiBiaW5zYXRzdVwgOwor6bqX562GID4gcmVpaGl0c3VcIDsKK+iXgee0mSA+IHdhcmFnYW1pXCA7Civnq4vlg48gPiByaXRzdXpvdVwgOwor5rS755SoID4ga2F0c3V5b3VcIDsKK+a2iOavkiA+IHNob3Vkb2t1XCA7CivllYblraYgPiBzaG91Z2FrdVwgOwor5oiR5Lq6ID4gd2FyZWhpdG9cIDsKK+mNi+WiqCA+IG5hYmV6dW1pXCA7CivmiJDku48gPiBqb3VidXRzdVwgOwor6buS54yrID4ga3Vyb25la29cIDsKK+aIkeS6iyA+IHdhZ2Frb3RvXCA7CivlkIzog54gPiBoYXJha2FyYVwgOwor6Ymx54mpID4ga291YnV0c3VcIDsKK+aApeilsiA+IGt5dXVzaHV1XCA7CivlkIzogbcgPiBkb3VzaG9rdVwgOwor56m65aSiID4gc29yYXl1bWVcIDsKK+azpee4hCA+IGRvcm9uYXdhXCA7CivlvrTpm4YgPiBjaG91c2h1dVwgOwor6YWL6ZW3ID4gc2h1dWNob3VcIDsKK+WNiumdtCA+IGhhbmd1dHN1XCA7CivmgrbnnYAgPiBtb25jaGFrdVwgOwor6buE546JID4ga291Z3lva3VcIDsKK+m7kueGiiA+IGt1cm9ndW1hXCA7CivokrLprZogPiBrYW1hdG90b1wgOwor5oOo54OIID4gc2FucmV0c3VcIDsKK+WWieWFgyA+IG5vZG9tb3RvXCA7CivnqbrloIAgPiBrYXJhYm9yaVwgOwor6JaE6IacID4gaGFrdW1ha3VcIDsKK+eqr+WFgyA+IGthbWFtb3RvXCA7CivmuJvlnKcgPiBnZW4nJ2F0c3VcIDsKK+engea3kSA+IHNoaXNodWt1XCA7CivnqJrmi5kgPiBjaGlzZXRzdVwgOwor56WQ562GID4geXV1aGl0c3VcIDsKK+WPpOiNiSA+IGZ1cnVrdXNhXCA7Civlj6PojZIgPiBrdWNoaWFyYVwgOwor56We56WeID4ga2FtaWdhbWlcIDsKK+elneeltyA+IHNodWt1dG91XCA7CivnpZ7npZAgPiBzaGluJyd5dXVcIDsKK+elneelrSA+IHNodWt1c2FpXCA7CivlkYrnmb0gPiBrb2t1aGFrdVwgOwor6buE54axID4ga291bmV0c3VcIDsKK+WNiumVtyA+IGhhbicnbmFnYVwgOwor6YmE55O2ID4gdGV0c3ViaW5cIDsKK+awtOmDqCA+IG1penVub2J1XCA7CivmgqrnmZYgPiB3YXJ1Z3VzZVwgOwor6buS5r2uID4ga3Vyb3NoaW9cIDsKK+iThOmbuyA+IGNoaWt1ZGVuXCA7Civmr43ps6UgPiBoYWhhZG9yaVwgOwor5Y+j6IiMID4ga291emV0c3VcIDsKK+elneegsiA+IHNodWt1aG91XCA7Civmr5vpq6ogPiBtb3VoYXRzdVwgOwor56S856+AID4gcmVpc2V0c3VcIDsKK+WPiuiQvSA+IGt5dXVyYWt1XCA7CivpioPmrrogPiBqdXVzYXRzdVwgOwor5riF5Zu9ID4gc2hpbmtva3VcIDsKK+aDheeGsSA+IGpvdW5ldHN1XCA7CivnqbrlkrMgPiBrYXJhemVraVwgOwor6Juu5YqbID4gYmFucnlva3VcIDsKK+aFi+aFiyA+IHdhemF3YXphXCA7Civph5HohIggPiBraW5teWFrdVwgOwor5Y+q6ICFID4gdGFkYW1vbm9cIDsKK+aHh+WIhyA+IGtvbnNldHN1XCA7CivnpoHniakgPiBraW5tb3RzdVwgOwor6JmQ5pS/ID4gZ3lha3VzZWlcIDsKK+WQjeethiA+IG1laWhpdHN1XCA7CivnorroqLwgPiBrYWt1c2hvdVwgOwor56S+56i3ID4gc2hhc2hva3VcIDsKK+WQjOethiA+IGRvdWhpdHN1XCA7CivmgKXokL0gPiBreXV1cmFrdVwgOwor5rS75rqMID4ga2FwcGF0c3VcIDsKK+mFjemBlCA+IGhhaXRhdHN1XCA7Civpi7jlsZEgPiBub2tva3V6dVwgOwor6YeN6IG3ID4ganV1c2hva3VcIDsKK+a1gea1gSA+IHJ5dXVyeXV1XCA7Civmt4Dlt50gPiB5b2RvZ2F3YVwgOwor5oOR5rq6ID4gd2FrdWRla2lcIDsKK+a1heaykyA+IGFzYWd1dHN1XCA7CivlkIznqbQgPiBkb3VrZXRzdVwgOwor5oOo5q66ID4gemFuc2F0c3VcIDsKK+mFt+iplSA+IGtva3VoeW91XCA7Civph6Pns7ggPiB0c3VyaWl0b1wgOwor5rSX54aKID4gYXJhaWd1bWFcIDsKK+W/g+i6qyA+IHNoaW5zaGluXCA7Civph43nvbAgPiBqdXViYXRzdVwgOwor5rWB5rC3ID4gcnl1dWh5b3VcIDsKK+azqOebriA+IGNodXVtb2t1XCA7Civlj4zohJogPiBzb3VreWFrdVwgOwor5rGX6KGAID4ga2Fua2V0c3VcIDsKK+a1quabsiA+IHJvdWt5b2t1XCA7Civph5HnuIEgPiBraW5idWNoaVwgOwor5Y2K6YGTID4gaGFubWljaGlcIDsKK+WMl+mZuCA+IGhva3VyaWt1XCA7Civljp/olqwgPiBnZW4nJ3lha3VcIDsKK+WNs+irviA+IHNva3VkYWt1XCA7CivmtLvmrrogPiBrYXNzYXRzdVwgOwor5ZSv5ZSvID4gdGFkYXRhZGFcIDsKK+WRqOa1gSA+IHNodXVyeXV1XCA7CivnqLLlprsgPiBpbmFkenVtYVwgOwor5Y+z562GID4geXV1aGl0c3VcIDsKK+WUkOWiqCA+IGthcmFzdW1pXCA7Civlj7LnrYYgPiBzaGloaXRzdVwgOwor6Yej56u/ID4gdHN1cml6YW9cIDsKK+mHneeusSA+IGhhcmliYWtvXCA7Civnp4Hmm7IgPiBzaGlreW9rdVwgOwor5b+D6LGhID4gc2hpbnNob3VcIDsKK+WUseWQjSA+IHNob3VteW91XCA7Civlj6rnrqEgPiBoaXRhc3VyYVwgOwor5ZCM552AID4gZG91Y2hha3VcIDsKK+a0pea0pSA+IHNoaW5zaGluXCA7CivljZPotoogPiB0YWt1ZXRzdVwgOwor5oGQ56ucID4ga3lvdXJ5dXVcIDsKK+m8u+WxjiA+IGhhbmFrdXNvXCA7CivmuIXlhr0gPiBzZWlyZXRzdVwgOwor6JKQ6ZuGID4gc2h1dXNodXVcIDsKK+WPlue1hCA+IHRvcmlrdW1pXCA7CivokrLpib4gPiBrYW1hYm9rb1wgOwor5rW35oqcID4ga2FpYmF0c3VcIDsKK+mHkeeusSA+IGthbmViYWtvXCA7CivomZrlvI8gPiBreW9zaGlraVwgOwor5raI5oGvID4gc2hvdXNva3VcIDsKK+awl+izqiA+IGtpc2hpdHN1XCA7CivmrrvpoIIgPiBrYWt1Y2hvdVwgOwor5Y+j56ybID4ga3VjaGlidWVcIDsKK+WQhOecgSA+IGtha3VzaG91XCA7Civljp/ojLggPiBoYXJhdGFrZVwgOwor6bSb6bSmID4gb3NoaWRvcmlcIDsKK+iWrOeOiSA+IGt1c3VkYW1hXCA7CivomZDlvoUgPiBneWFrdXRhaVwgOwor6buS5p6gID4ga3Vyb3dha3VcIDsKK+mFt+iWhCA+IGtva3VoYWt1XCA7Civlv4PoqLwgPiBzaGluc2hvdVwgOwor6YeR56m0ID4ga2lua2V0c3VcIDsKK+WOn+iJsiA+IGdlbnNob2t1XCA7Civpu5LmnI0gPiBrdXJvZnVrdVwgOwor5Yud6aasID4ga2FjaGl1bWFcIDsKK+a3seWIuyA+IHNoaW5rb2t1XCA7CivnoLTpkJggPiB3YXJlZ2FuZVwgOwor5b+F6KaBID4gaGl0c3V5b3VcIDsKK+a3t+WFpSA+IGtvbicnbnl1dVwgOwor5b+N6KGTID4gbmluanV0c3VcIDsKK+WOs+e9sCA+IGdlbmJhdHN1XCA7CivmtYHmnKggPiByeXV1Ym9rdVwgOwor6YiN54mpID4gZG9uYnV0c3VcIDsKK+WPuOebtCA+IHNoaWNob2t1XCA7CivljZToqr8gPiBreW91Y2hvdVwgOwor5b6M6L+wID4ga291anV0c3VcIDsKK+emgeassiA+IGtpbicneW9rdVwgOwor5riH5LuwID4ga2F0c3Vnb3VcIDsKK+enqeW6jyA+IGNoaXRzdWpvXCA7CivljZLoq5YgPiBzb3RzdXJvblwgOwor5rC06J2VID4gc3Vpc2hva3VcIDsKK+a1geaaoiA+IHJ5dXVjaG91XCA7CivmsLTonJwgPiBzdWltaXRzdVwgOwor55+z6auYID4ga29rdWRha2FcIDsKK+a8guOAhSA+IGh5b3VoeW91XCA7CivlvrToqLwgPiBjaG91c2hvdVwgOwor5ZG95pelID4gbWVpbmljaGlcIDsKK+W+qeiukCA+IGZ1a3VzaHV1XCA7Civlvqnoro4gPiBmdWt1c2h1dVwgOwor5ZCM546HID4gZG91cml0c3VcIDsKK+aDnOaYpSA+IHNla2lzaHVuXCA7CivnpLzniakgPiByZWltb3RzdVwgOwor55+t6auqID4gdGFucGF0c3VcIDsKK+iZmuWunyA+IGt5b2ppdHN1XCA7CivmspbnqY0gPiBjaHV1c2VraVwgOwor6JOE6LKhID4gY2hpa3V6YWlcIDsKK+WPjuepqyA+IHNodXVrYWt1XCA7CivmgYvnnYAgPiByZW5jaGFrdVwgOwor5b6p6Kq/ID4gZnVrdWNob3VcIDsKK+aCqeauuiA+IG5vdXNhdHN1XCA7CivlvqnoqqYgPiBmdWt1c2hvdVwgOwor5rK755WlID4gY2hpcnlha3VcIDsKK+WQjeeJqSA+IG1laWJ1dHN1XCA7CivljJfpgLIgPiBob2t1c2hpblwgOwor6buE5piPID4gdGFzb2dhcmVcIDsKK+WPsueVpSA+IHNoaXJ5YWt1XCA7Civms6Xmv5ggPiBudWthcnVtaVwgOwor6Jek5qOaID4gZnVqaWRhbmFcIDsKK+WMl+i+sCA+IGhva3VzaGluXCA7CivljrPnspsgPiBnZW5zaHVrdVwgOwor6YmE5qOSID4gdGV0c3Vib3VcIDsKK+m8k+WupCA+IGtvc2hpdHN1XCA7Civps6npuqYgPiBoYXRvbXVnaVwgOwor5rKI56mNID4gY2hpbnNla2lcIDsKK+mJhOaigyA+IGthbmF0ZWtvXCA7CivlvLfpnIcgPiBreW91c2hpblwgOwor6JC96a2EID4gcmFrdWhha3VcIDsKK+mHj+eahCA+IHJ5b3V0ZWtpXCA7Civlv6Doia8gPiBjaHV1cnlvdVwgOwor6Jep5pytID4gaGFuc2F0c3VcIDsKK+WPpOeWtSA+IGZ1cnVraXp1XCA7Civli4XpoZggPiBjaG9rdWdhblwgOwor6YWS6JS1ID4gc2FrYWd1cmFcIDsKK+WLhemhjCA+IGNob2t1ZGFpXCA7Civlv6Doh6MgPiBjaHV1c2hpblwgOwor5byx6ZyHID4gamFrdXNoaW5cIDsKK+etieOAhSA+IG5hZG9uYWRvXCA7CivnpoHmnK0gPiBraW5zYXRzdVwgOwor56iu5YilID4gc2h1YmV0c3VcIDsKK+m7kuaIvyA+IGt1cm9idXNhXCA7Civmgqbmpb0gPiBldHN1cmFrdVwgOwor5rC06I2JID4gbWl6dWt1c2FcIDsKK+aEm+WtkCA+IGl0b3NoaWdvXCA7CivpiYTmnZAgPiB0ZXRzdXphaVwgOwor5bym6Z+zID4gdHN1cnVvdG9cIDsKK+WUkOWCmCA+IGthcmFrYXNhXCA7CivpuqbmnZ8gPiBtdWdpdGFiYVwgOwor5rC06IyOID4gbWl6dWd1a2lcIDsKK+aGguS6iyA+IHVyZWlnb3RvXCA7Civnn63pnbQgPiB0YW5ndXRzdVwgOwor5rC06IuUID4gbWl6dWdva2VcIDsKK+a0i+aiqCA+IHlvdW5hc2hpXCA7Civmrovpm6ogPiB6YW5zZXRzdVwgOwor5Y6a57SZID4gYXRzdWdhbWlcIDsKK+a1tOWuoiA+IHlva2t5YWt1XCA7CivnpZ7mqYsgPiBzaGlua3lvdVwgOwor5rC06Ii5ID4gbWl6dWJ1bmVcIDsKK+azpeayvCA+IGRvcm9udW1hXCA7Civlj43nmbogPiBoYW5wYXRzdVwgOwor56We5qeYID4ga2FtaXNhbWFcIDsKK+WPjOeZuiA+IHNvdWhhdHN1XCA7Civno6jnn7MgPiB0b2dpaXNoaVwgOwor5byB6auqID4gYmVucGF0c3VcIDsKK+azpeawtCA+IGRvcm9taXp1XCA7Civms6HmsqsgPiBob3VtYXRzdVwgOwor56We5qWtID4ga2FtaXdhemFcIDsKK+awtOiFuSA+IG1penViYXJhXCA7Civlj4LnnYAgPiBzYW5jaGFrdVwgOwor6Jas5q+SID4geWFrdWRva3VcIDsKK+eiuue0hCA+IGtha3V5YWt1XCA7CivphZLoibIgPiBzaHVzaG9rdVwgOwor5rC06ISIID4gc3VpbXlha3VcIDsKK+elnuajmiA+IGthbWlkYW5hXCA7Civlj6TniakgPiBmdXJ1bW9ub1wgOwor5b+r57W2ID4ga2FpemV0c3VcIDsKK+mFjeiJsiA+IGhhaXNob2t1XCA7Civph5HniakgPiBrYW5hbW9ub1wgOwor56We5qC8ID4gc2hpbmtha3VcIDsKK+emv+WxsSA+IGhhZ2V5YW1hXCA7CivljYHolqwgPiBkb2t1ZGFtaVwgOwor5rKI55ebID4gY2hpbnRzdXVcIDsKK+aApeeXhSA+IGt5dXVieW91XCA7Civph53ngbggPiBzaGlua3l1dVwgOwor55+z6Y+DID4gc2VraXpva3VcIDsKK+elreaXpSA+IHNhaWppdHN1XCA7CivljZjoibIgPiB0YW5zaG9rdVwgOwor5b+D6IW5ID4gc2hpbnB1a3VcIDsKK+axuuedgCA+IGtldGNoYWt1XCA7CivnqI7liKUgPiB6ZWliZXRzdVwgOwor6buS5bmVID4ga3Vyb21ha3VcIDsKK+elneadryA+IHNodWt1aGFpXCA7CivnpZ7mnKggPiBzaGluYm9rdVwgOwor5oKq5pOmID4gd2FydXp1cmVcIDsKK+m8u+WFiCA+IGhhbmFzYWtpXCA7CivpvLvlhYMgPiBoYW5hbW90b1wgOwor56We5pyIID4ga291ZHp1a2lcIDsKK+WPjueNsiA+IHNodXVrYWt1XCA7CivmsJHojYkgPiB0YW1pZ3VzYVwgOwor5rS75byBID4ga2F0c3ViZW5cIDsKK+ehneiWrCA+IHNob3V5YWt1XCA7CivlkozlrqQgPiB3YXNoaXRzdVwgOwor6YeI54S2ID4gc2hha3V6ZW5cIDsKK+ensOWQjSA+IHNob3VteW91XCA7CivnpoHmhb4gPiBraW4nJ3lva3VcIDsKK+WTsuS6uiA+IHRldHN1amluXCA7Civnpo/lvrMgPiBmdWt1dG9rdVwgOwor6buS5bGxID4ga3Vyb3lhbWFcIDsKK+WLv+irliA+IG1vY2hpcm9uXCA7CivlvLfov6sgPiBreW91aGFrdVwgOwor5byU6ZCYID4gY2hvdXNob3VcIDsKK+aAqueJqSA+IGthaWJ1dHN1XCA7Civnpo/lvJUgPiBmdWt1YmlraVwgOwor5rK85rKiID4gc2hvdXRha3VcIDsKK+idtuOAhSA+IGNob3VjaG91XCA7CivoloTmsLcgPiBoYWt1aHlvdVwgOwor5Y2S6ICFID4gc290c3VzaGFcIDsKK+ayueaxlyA+IGFidXJhYXNlXCA7Civljp/nmbogPiBnZW5wYXRzdVwgOwor5Ymy6auYID4gd2FyaWRha2FcIDsKK+iRl+i/sCA+IGNob2p1dHN1XCA7CivnoLLooZMgPiBob3VqdXRzdVwgOwor5Y6a55quID4gYXRzdWthd2FcIDsKK+WLhemBuCA+IGNob2t1c2VuXCA7CivmsYLnqY0gPiBreXV1c2VraVwgOwor5q+b6JmxID4ga2VqaXJhbWlcIDsKK+mFkueznyA+IHNha2VrYXN1XCA7CivphZLnspUgPiBzYWtla2FzdVwgOwor5YqH6ZyHID4gZ2VraXNoaW5cIDsKK+W8lemHkSA+IGhpa2lnYW5lXCA7Civlj6TmsrMgPiBmdXJ1a2F3YVwgOwor5b6p57+SID4gZnVrdXNodXVcIDsKK+avkuibhyA+IGRva3VoZWJpXCA7CivpiYTluoogPiBrYW5hdG9rb1wgOwor5ZCN5pyIID4gbWVpZ2V0c3VcIDsKK+WQjeabsiA+IG1laWt5b2t1XCA7CivpiYTluL0gPiB0ZXRzdWJvdVwgOwor5ZCM5pyIID4gZG91Z2V0c3VcIDsKK+aApea/gCA+IGt5dXVnZWtpXCA7CivljaDnrpcgPiB1cmF5YXNhblwgOwor5Y2U57SEID4ga3lvdXlha3VcIDsKK+avkuiWrCA+IGRva3V5YWt1XCA7CivmsbrnhLYgPiBrZXRzdXplblwgOwor5q6W6LKhID4gc2hva3V6YWlcIDsKK+mHjeauuiA+IGp1dXNhdHN1XCA7Civmg4Xlrp8gPiBqb3VqaXRzdVwgOwor56eL5Y+jID4gYWtpZ3VjaGlcIDsKK+mHkeasoCA+IGtpbmtldHN1XCA7CivljZjnr4AgPiB0YW5zZXRzdVwgOwor5rSL5byPID4geW91c2hpa2lcIDsKK+WPluaxuiA+IHRvcmlraW1lXCA7CivlkIzml6UgPiBkb3VqaXRzdVwgOwor56Wt5byPID4gc2Fpc2hpa2lcIDsKK+iZkOS9vyA+IGd5YWt1c2hpXCA7CivmspDmtbQgPiBtb2t1eW9rdVwgOwor5b6S6ICFID4gdGFkYW1vbm9cIDsKK+mJhOWxsSA+IHRldHN1emFuXCA7Civljp/niakgPiBnZW5idXRzdVwgOwor5Yqb6YePID4gcmlraXJ5b3VcIDsKK+a0nuWvnyA+IGRvdXNhdHN1XCA7CivlvLfoqr8gPiBreW91Y2hvdVwgOwor6YGT6aCGID4gbWljaGlqdW5cIDsKK+elnuW+syA+IHNoaW50b2t1XCA7Civlv4PnpZ4gPiBzaGluc2hpblwgOwor6YGK6aOfID4geXV1c2hva3VcIDsKK+W+qeexjSA+IGZ1a3VzZWtpXCA7CivmrKDpo58gPiBrZXNzaG9rdVwgOwor5oCl5rWBID4ga3l1dXJ5dXVcIDsKK+avkuiMuCA+IGRva3V0YWtlXCA7Civlu7bph5EgPiBub2JlZ2FuZVwgOwor56KM56KMID4gcm9rdXJva3VcIDsKK+mKreS6gCA+IHplbmlnYW1lXCA7Civmra/ou4ogPiBoYWd1cnVtYVwgOwor5by36KWyID4ga3lvdXNodXVcIDsKK+W8lei2iiA+IGhpa2tvc2hpXCA7CivliYPpq6ogPiB0ZWloYXRzdVwgOwor5b+954S2ID4ga290c3V6ZW5cIDsKK+mHkeaigyA+IGthbmF0ZWtvXCA7Civlj6TmoKogPiBmdXJ1a2FidVwgOwor5YuF6KuaID4gY2hva3Vqb3VcIDsKK+iPnOmjnyA+IHNhaXNob2t1XCA7CivmgoTmgoQgPiBzdWdvc3Vnb1wgOwor56Gs562GID4ga291aGl0c3VcIDsKK+elnuW3niA+IHNoaW5zaHV1XCA7CivlvanoibIgPiBzYWlzaG9rdVwgOwor5b+F552AID4gaGl0Y2hha3VcIDsKK+efpeitmCA+IGNoaXNoaWtpXCA7CivmiJHjgIUgPiB3YXJld2FyZVwgOwor6YCy6aeQID4gc2hpbmNodXVcIDsKK+aEgeWCtyA+IHNodXVzaG91XCA7Civlj6TmnI0gPiBmdXJ1ZnVrdVwgOwor5rC055O2ID4gbWl6dWdhbWVcIDsKK+W/g+eahCA+IHNoaW50ZWtpXCA7Civpu5nliocgPiBtb2t1Z2VraVwgOwor5ZC+5a2QID4gd2FnaW1va29cIDsKK+awl+efrSA+IGtpbWlqaWthXCA7CivolYPmrpYgPiBoYW5zaG9rdVwgOwor5b6X562WID4gdG9rdXNha3VcIDsKK+WLheijgSA+IGNob2t1c2FpXCA7CivlvpPnr4AgPiBqdXVzZXRzdVwgOwor6YGp6YePID4gdGVraXJ5b3VcIDsKK+W/g+eXmyA+IHNoaW50c3V1XCA7CivliofpgJogPiBnZWtpdHN1dVwgOwor6YeR5pifID4ga2luYm9zaGlcIDsKK+axsuaxsiA+IGt5dXVreXV1XCA7CivlvL7olqwgPiBkYW4nJ3lha3VcIDsKK+WNmOeZuiA+IHRhbnBhdHN1XCA7Civlv4XnlKggPiBoaXRzdXlvdVwgOwor5Y2S55u0ID4gc290Y2hva3VcIDsKK+awtOeOiSA+IG1penV0YW1hXCA7CivnpZ7lraYgPiBzaGluZ2FrdVwgOwor56aB5ZynID4ga2luJydhdHN1XCA7Civnp4DkvZwgPiBzaHV1c2FrdVwgOwor5b6z55uuID4gdG9rdW1va3VcIDsKK+mHjOaWuSA+IHNhdG9rYXRhXCA7Civms5XlvosgPiBob3VyaXRzdVwgOwor56S85byPID4gcmVpc2hpa2lcIDsKK+WPjuadnyA+IHNodXVzb2t1XCA7Civph4jmmI4gPiBzaGFrdW1laVwgOwor5rS75YuVID4ga2F0c3Vkb3VcIDsKK+m7kuWGhiA+IGt1cm9tYXJ1XCA7Civms5XlvI8gPiBob3VzaGlraVwgOwor5rC054mpID4gbWl6dW1vbm9cIDsKK+W+l+elqCA+IHRva3VoeW91XCA7CivpgaXpgaUgPiBoYXJ1YmFydVwgOwor5rS+5Ye6ID4gaGFzaHV0c3VcIDsKK+mHiOaUviA+IHNoYWt1aG91XCA7CivmtYHlhaUgPiByeXV1bnl1dVwgOwor5q6L6JmQID4gemFuZ3lha3VcIDsKK+iWrOWxiyA+IGt1c3VyaXlhXCA7CivolqzlsYAgPiB5YWtreW9rdVwgOwor56Gs55u0ID4ga291Y2hva3VcIDsKK+WQiOW8jyA+IGdvdXNoaWtpXCA7CivnpZ7lppkgPiBzaGlubXlvdVwgOwor6YGg6YGTID4gdG9vbWljaGlcIDsKK+W9k+iBtyA+IHRvdXNob2t1XCA7CivlupXpnakgPiBzb2tvZ2F3YVwgOwor6Yac5qWtID4gc2h1dWd5b3VcIDsKK+iWrOWtpiA+IHlha3VnYWt1XCA7CivnoZ3nn7MgPiBzaG91c2VraVwgOwor6YGZ6YGZID4gaGFydWJhcnVcIDsKK+emj+WKqSA+IGZ1a3VzdWtlXCA7Civmr5vnrYYgPiBtb3VoaXRzdVwgOwor5b+r5rS7ID4ga2Fpa2F0c3VcIDsKK+WOu+aciCA+IGt5b2dldHN1XCA7CivmraPoppogPiBzaG91Z2FrdVwgOwor552A6aeFID4gY2hha3Vla2lcIDsKK+WPjeaSpSA+IGhhbnBhdHN1XCA7Civlu7roqK0gPiBrZW5zZXRzdVwgOwor5oGQ5oKmID4ga3lvdWV0c3VcIDsKK+iUreanmCA+IGthZ2VzYW1hXCA7CivnpZ7ln58gPiBzaGluJydpa2lcIDsKK+WNg+eUnyA+IHNlbicnbmFyaVwgOwor6JaE5byxID4gaGFrdWpha3VcIDsKK+aBjeaDmiA+IGtvdWtvdHN1XCA7Civlv4XnhLYgPiBoaXRzdXplblwgOwor5oGQ5oGQID4ga293YWdvd2FcIDsKK+WQjOWxgCA+IGRvdWt5b2t1XCA7Civpu5LkuLggPiBrdXJvbWFydVwgOwor6JK4552AID4gam91Y2hha3VcIDsKK+WNiueOiSA+IGhhbmd5b2t1XCA7CivpgIbpoqggPiBneWFrdWZ1dVwgOwor5YiG6aqoID4gYnVua290c3VcIDsKK+elnuWbvSA+IHNoaW5rb2t1XCA7CivlubzpoZQgPiBvc2FuYWdhb1wgOwor5by36IacID4ga3lvdW1ha3VcIDsKK+WQjOWuvyA+IGRvdXNodWt1XCA7CivlkI3lrp8gPiBtZWlqaXRzdVwgOwor5q2i6KGAID4gc2hpa2V0c3VcIDsKK+mAkOmbuyA+IGNoaWt1ZGVuXCA7Civlj47mi74gPiBzaHV1c2h1dVwgOwor5YuV6ISIID4gZG91bXlha3VcIDsKK+edgOmghiA+IGNoYWt1anVuXCA7CivokrjnmbogPiBqb3VoYXRzdVwgOwor6YCG6aCGID4gZ3lha3VqdW5cIDsKK+WQiOWuvyA+IGdhc3NodWt1XCA7CivliofoqZUgPiBnZWtpaHlvdVwgOwor6YW45qygID4gc2Fua2V0c3VcIDsKK+mJhOWJpCA+IHRldHN1emFpXCA7CivnoaznjokgPiBrb3VneW9rdVwgOwor5rG65patID4ga2V0c3VkYW5cIDsKK+W+jOeZuiA+IGtvdWhhdHN1XCA7Civlia/os54gPiBmdWt1c2hvdVwgOwor6YmE5YiGID4gdGV0c3VidW5cIDsKK+ays+W6lSA+IGthd2F6b2tvXCA7CivljZLnhLYgPiBzb3RzdXplblwgOwor552A6Zu7ID4gY2hha3VkZW5cIDsKK+W6g+mXiiA+IGtvdWthdHN1XCA7Civlj4vmiJAgPiB0b21vbmFyaVwgOwor5rC05rSfID4gbWl6dWJhbmFcIDsKK+WNs+axuiA+IHNva2tldHN1XCA7CivlvoznlaUgPiBrb3VyeWFrdVwgOwor5YmN6L+wID4gemVuanV0c3VcIDsKK+WJsuitsiA+IGthdHN1am91XCA7Civljp/mm7IgPiBnZW5reW9rdVwgOwor5YiH6aGYID4gc2V0c3VnYW5cIDsKK+WHuumnlSA+IHNodXRzdWdhXCA7CivlvoznlKMgPiBub2NoaXphblwgOwor6JC96I6rID4gcmFrdWJha3VcIDsKK+mBqeiplSA+IHRla2loeW91XCA7Civlv5nmrrogPiBib3VzYXRzdVwgOwor6JOL54mpID4gZnV0YW1vbm9cIDsKK+a4qeOAhSA+IG51a3VudWt1XCA7Civlh7rppqwgPiBzaHV0c3ViYVwgOwor6YGp6KizID4gdGVraXlha3VcIDsKK+awtOayoSA+IHN1aWJvdHN1XCA7CivlvqHniakgPiBneW9idXRzdVwgOwor5b2T56+AID4gdG91c2V0c3VcIDsKK+WQuOWPoyA+IHN1aWt1Y2hpXCA7Civmgovll4cgPiByaW5zaG9rdVwgOwor5ZC45Y+OID4ga3l1dXNodXVcIDsKK+WPpOW3nSA+IGZ1cnVrYXdhXCA7CivlibXoqK0gPiBzb3VzZXRzdVwgOwor6Yed5bGxID4gaGFyaXlhbWFcIDsKK+auieiBtyA+IGp1bnNob2t1XCA7Civlj5blvJUgPiB0b3JpaGlraVwgOwor5rKh5bm0ID4gYm90c3VuZW5cIDsKK+WPsuWunyA+IHNoaWppdHN1XCA7CivokYnohIggPiB5b3VteWFrdVwgOwor5Y+w5a+GID4gdGFpbWl0c3VcIDsKK+mBlOitmCA+IHRhc3NoaWtpXCA7Civlj47lvpcgPiBzaHV1dG9rdVwgOwor6bqm5L2cID4gbXVnaXNha3VcIDsKK+aAp+aCqiA+IHNob3V3YXJ1XCA7CivljZHmub8gPiBoaXNoaXRzdVwgOwor5ZCd5ZeHID4gcmluc2hva3VcIDsKK+W+k+eJqSA+IGp1dWJ1dHN1XCA7CivlvbnnlZwgPiBla2ljaGlrdVwgOwor6YmE5Lq6ID4gdGV0c3VqaW5cIDsKK+atu+iEiCA+IHNoaW15YWt1XCA7Civlh6HpqqggPiBib25rb3RzdVwgOwor6YeR5bGRID4ga2FuYWt1enVcIDsKK+W/heauuiA+IGhpc3NhdHN1XCA7Civlj6Tlr7ogPiBmdXJ1ZGVyYVwgOwor5rSb5LitID4gcmFrdWNodXVcIDsKK+WHuOmdoiA+IHRvdHN1bWVuXCA7CivlkLjlhaUgPiBreXV1bnl1dVwgOwor5Yiw6YGUID4gdG91dGF0c3VcIDsKK+WPo+WunyA+IGtvdWppdHN1XCA7CivliofolqwgPiBnZWtpeWFrdVwgOwor55+t57iuID4gdGFuc2h1a3VcIDsKK+WGt+m6piA+IGhpeWFtdWdpXCA7CivnpZ3lhbggPiBzaHVrdXRlblwgOwor5Ye66ZmzID4gc2h1dGNoaW5cIDsKK+ato+iJsiA+IHNlaXNob2t1XCA7CivokZvnsaAgPiB0c3VkenVyYVwgOwor5b6z5rKiID4gdG9rdXRha3VcIDsKK+mHiOWwiiA+IHNoYWt1c29uXCA7CivlubPpjYsgPiBoaXJhbmFiZVwgOwor6YWS5qi9ID4gc2FrYWRhcnVcIDsKK+W8geiIjCA+IGJlbnpldHN1XCA7Civov73pjLIgPiB0c3Vpcm9rdVwgOwor5oGL5aa7ID4ga29pZHp1bWFcIDsKK+aAluaAliA+IGtvd2Fnb3dhXCA7CivlvqnmtLsgPiBmdWtrYXRzdVwgOwor5rC35p+xID4gaHlvdWNodXVcIDsKK+aBq+WWnSA+IGRvdWthdHN1XCA7CivpganolqwgPiB0ZWtpeWFrdVwgOwor5Ymj6KGTID4ga2VuanV0c3VcIDsKK+WOs+W+iyA+IGdlbnJpdHN1XCA7CivliqvnvbAgPiBnb3ViYXRzdVwgOwor5b2r55CiID4gY2hvdXRha3VcIDsKK+WMlueJqSA+IGJha2Vtb25vXCA7CivolqrlibIgPiBtYWtpd2FyaVwgOwor5b2T55u0ID4gdG91Y2hva3VcIDsKK+WJjeiqrCA+IHplbnNldHN1XCA7Civlia/ombkgPiBmdWt1bmlqaVwgOwor5YyX54iGID4gaG9rdWJha3VcIDsKK+efoue1oyA+IHlhZ2FzdXJpXCA7CivojqvpgIYgPiBiYWt1Z2VraVwgOwor5bi46aOfID4gam91c2hva3VcIDsKK+mwkOmuqyA+IHdhbml6YW1lXCA7Civms6jlhaUgPiBjaHV1bnl1dVwgOwor5oCl5bO7ID4ga3l1dXNodW5cIDsKK+mzqeiDuCA+IGhhdG9tdW5lXCA7Civli4XnrZQgPiBjaG9rdXRvdVwgOwor5rC35pm2ID4gaHlvdXNob3VcIDsKK+W6l+izgyA+IHRhbmFjaGluXCA7Civovq7pq6ogPiBiZW5wYXRzdVwgOwor5Y2X5qW1ID4gbmFua3lva3VcIDsKK+W/g+aguSA+IGtva29yb25lXCA7Civlhqzps6UgPiBmdXl1ZG9yaVwgOwor56C054mpID4gd2FyZW1vbm9cIDsKK+WUr+OAhSA+IHRhZGF0YWRhXCA7CivljZTmpa0gPiBreW91Z3lvdVwgOwor5Yed6ZuGID4gZ3lvdXNodXVcIDsKK+WQhOWQhCA+IHNvcmV6b3JlXCA7CivpgIHpgZQgPiBzb3V0YXRzdVwgOwor5b2r54mpID4gaG9yaW1vbm9cIDsKK+W6leixhiA+IHNva29tYW1lXCA7Civps6XogowgPiB0b3JpaGFkYVwgOwor5Yu+546JID4gbWFnYXRhbWFcIDsKK+mzpeiCiSA+IHRvcmluaWt1XCA7Civliofoh60gPiBnZWtpc2h1dVwgOwor5q+N54mpID4gaGFoYW1vbm9cIDsKK+aBkOWahyA+IGt5b3VrYWt1XCA7Civmt7HjgIUgPiBmdWthYnVrYVwgOwor55yf6Y2uID4gc2hpbmNodXVcIDsKK+aAoOWxiCA+IHRhaWt1dHN1XCA7CivnpL7lhbEgPiBzaGFreW91XCA7Civlv4PmnZAgPiBzaGluemFpXCA7Civov5HplpMgPiBjaGlrYW1hXCA7CivljrvlsLEgPiBreW9zaHV1XCA7CivliY3ooaggPiB6ZW5weW91XCA7CivlkJvlgbQgPiBrdW5zb2t1XCA7Civov73pgIEgPiB0c3Vpc291XCA7CivljaDmnIkgPiBzZW4nJ3l1dVwgOwor5b+M5pelID4ga2luaWNoaVwgOwor5Y2g5pu4ID4gdXJhYnVtaVwgOwor5biz6Z2iID4gY2hvdW1lblwgOwor55u06Z+zID4gY2hva3VvblwgOwor5Yqf57i+ID4ga291c2VraVwgOwor5rCR5qWtID4gbWluZ3lvdVwgOwor6JaE5ZG9ID4gaGFrdW1laVwgOwor5bit6aCGID4gc2VraWp1blwgOwor55uK6bOlID4gZWtpY2hvdVwgOwor5rKW5aSpID4gY2h1dXRlblwgOwor5b+c5o6lID4gb3VzZXRzdVwgOwor556g6IulID4gZG91amFrdVwgOwor5b6M5rWBID4ga291cnl1dVwgOwor5Y+s5ZaaID4gc2hvdWthblwgOwor5byV566XID4gaGlraXphblwgOwor5Y2c5pu4ID4gdXJhYnVtaVwgOwor5biv6Z2pID4gb2Jpa2F3YVwgOwor5Ye66YeRID4gc2h1a2tpblwgOwor5Y+r5ZaaID4ga3lvdWthblwgOwor5ZCJ5Ye2ID4ga2lra3lvdVwgOwor6YeN5ZynID4ganV1YXRzdVwgOwor6L+w6YOoID4ganV0c3VidVwgOwor6bey5bqnID4gd2FzaGl6YVwgOwor5byT566tID4ga3l1dXNlblwgOwor5YiG6YCyID4gYnVuc2hpblwgOwor6I+p6JapID4gYm9zYXRzdVwgOwor5YiG6YCfID4gZnVuc29rdVwgOwor5rC05pKDID4gc3VpZ2VraVwgOwor5rKi5ZywID4gc2F3YWNoaVwgOwor5YiH6L+rID4gc2VwcGFrdVwgOwor5Y2X5pydID4gbmFuY2hvdVwgOwor5b+15b+1ID4gbmVuJyduZW5cIDsKK++8rumfvyA+IGVudWt5b3VcIDsKK+ato+e2miA+IHNlaXpva3VcIDsKK+iQveesrCA+IHJha3VkYWlcIDsKK+mHo+WQiCA+IHRzdXJpYWlcIDsKK+ato+e1uSA+IHNob3VrZW5cIDsKK+WOs+WuuSA+IGdlbicneW91XCA7CivpgLLooYwgPiBzaGlua291XCA7CivlkInlhYYgPiBraXRjaG91XCA7Civli5XnmoQgPiBkb3V0ZWtpXCA7CivlkIzlg5ogPiBkb3VyeW91XCA7CivmraPntYwgPiBzZWlreW91XCA7CivljJfmuoAgPiBob2t1bWFuXCA7CivljYrmoLwgPiBoYW5rYWt1XCA7CivpgJrorIAgPiB0c3V1Ym91XCA7Civlj6zlkb0gPiBzaG91bWVpXCA7CivpgJroq5YgPiB0c3V1cm9uXCA7Civluo/oqqwgPiBqb3NldHN1XCA7Civms6XkuK0gPiBkZWljaHV1XCA7CivlupXop5IgPiB0ZWlrYWt1XCA7CivlibLoiIggPiB3YXJpa291XCA7CivlvrPmnJsgPiB0b2t1Ym91XCA7CivmgKXlpIkgPiBreXV1aGVuXCA7Civlj6PllIcgPiBrb3VzaGluXCA7Civps6XntrIgPiB0b3JpYW1pXCA7Civmga3lgLkgPiBreW91a2VuXCA7Civlj6vlj7cgPiBreW91Z291XCA7CivliIbouqsgPiBidW5zaGluXCA7CivliLrooZ0gPiBzaGlzaG91XCA7Civlub3osLcgPiB5dXVrb2t1XCA7CivphJnmrYwgPiBoaW5hdXRhXCA7CivmrrXniakgPiBkYW5tb25vXCA7CivlkIzkv6EgPiBkb3VzaGluXCA7Civnn7Pnm6QgPiBzZWtpYmFuXCA7CivmrbvnpaggPiBzaGloeW91XCA7CivlibLohbkgPiBrYXBwdWt1XCA7Civlu5DoiI4gPiBreXV1c2hhXCA7CivpgJroqIggPiB0c3V1a2VpXCA7CivlkIzkvrYgPiBkb3VyeW91XCA7Civlj7DljJcgPiB0YWlob2t1XCA7Civli6TnjosgPiBraW4nJ25vdVwgOwor5buP6IiOID4ga3l1dXNoYVwgOwor5b+r5b6pID4ga2FpZnVrdVwgOwor5rCR5pyJID4gbWluJyd5dXVcIDsKK+attOeoiyA+IHJla2l0ZWlcIDsKK+egtOa7hSA+IGhhbWV0c3VcIDsKK+aApeWilyA+IGt5dXV6b3VcIDsKK+mAmuinoyA+IHRzdXVrYWlcIDsKK+WIpOiqrSA+IGhhbmRva3VcIDsKK+mHjeWUsSA+IGp1dXNob3VcIDsKK+WQjeS9nCA+IG1laXNha3VcIDsKK+mAmuimsyA+IHRzdXVrYW5cIDsKK+W8lOelrSA+IGNob3VzYWlcIDsKK+WQhOWBnCA+IGtha3V0ZWlcIDsKK+aBqeWAnyA+IG9uc2hha3VcIDsKK+WPsuWKhyA+IHNoaWdla2lcIDsKK+WMl+a0iyA+IGhva3V5b3VcIDsKK+mAmuimpyA+IHRzdXVyYW5cIDsKK+mBqeiAhSA+IHRla2lzaGFcIDsKK+WJr+iFjiA+IGZ1a3VqaW5cIDsKK+ekvuS4rSA+IHNoYWNodXVcIDsKK+i/vei0iCA+IHRzdWl6b3VcIDsKK+aApeWgsSA+IGt5dXVob3VcIDsKK+W4q+mVtyA+IHNoaWNob3VcIDsKK+WIgOi6qyA+IHRvdXNoaW5cIDsKK+WKoOethiA+IGthaGl0c3VcIDsKK+WOu+WjsCA+IGt5b3Nob3VcIDsKK+WQjeS7oyA+IG15b3VkYWlcIDsKK+WMoeatoyA+IGt5b3VzZWlcIDsKK+WQiOS9nCA+IGdhc3Nha3VcIDsKK+W+k+alrSA+IGp1dWd5b3VcIDsKK+WNiuaZgiA+IGhhbnRva2lcIDsKK+iQveejkCA+IHJha3ViYW5cIDsKK+WOn+WvqSA+IGdlbnNoaW5cIDsKK+avkua2siA+IGRva3Vla2lcIDsKK+W9vOawjyA+IGthcmVzaGlcIDsKK+W4nemZtSA+IHRlaXJ5b3VcIDsKK+W+s+aUvyA+IHRva3VzZWlcIDsKK+awkeaXjyA+IG1pbnpva3VcIDsKK+mBoOiAsyA+IHRvb21pbWlcIDsKK+WQjeS4uyA+IG5hbnVzaGlcIDsKK+aApeWdgiA+IGt5dXVoYW5cIDsKK+WIneiouiA+IHNob3NoaW5cIDsKK+W6g+inkiA+IGtvdWtha3VcIDsKK+WQieS6iyA+IGtpdHN1amlcIDsKK+awj+aXjyA+IHNoaXpva3VcIDsKK+W8lOegsiA+IGNob3Vob3VcIDsKK+W7uuetliA+IGtlbnNha3VcIDsKK+WJjeiRiSA+IHplbicneW91XCA7CivpgJrooYwgPiB0c3V1a291XCA7CivlkIzkuIAgPiBkb3VpdHN1XCA7Civlub7oqLEgPiBpa3ViYWt1XCA7Civph43ljpogPiBjaG91a291XCA7CivojbfpgIEgPiBuaW9rdXJpXCA7Civlvqnml6cgPiBmdWtreXV1XCA7CivmsqHlj44gPiBib3NzaHV1XCA7Civlu7vnq6AgPiBrYWlzaG91XCA7CivljZrmjZwgPiBoYWt1c291XCA7Civnn6XnmoQgPiBjaGl0ZWtpXCA7CivlkITkurogPiBrYWt1amluXCA7CivmrovnlZkgPiB6YW5yeXV1XCA7CivluZXou40gPiBiYWt1Z3VuXCA7Civlu7rnq4sgPiBrb25yeXV1XCA7CivmsoPlnLAgPiB5b2t1Y2hpXCA7CivpgYroiIggPiB5dXVreW91XCA7CivlvqnmlocgPiBmdWt1YnVuXCA7CivlkIjkuIAgPiBnb3VpdHN1XCA7CivliKXooaggPiBiZXBweW91XCA7Civlia/nvbIgPiBmdWt1c2hvXCA7Civlj5flj5YgPiB1a2V0b3JpXCA7Civlv4PmiL8gPiBzaGluYm91XCA7Civlj6TliLkgPiBrb3NhdHN1XCA7CivlirTnm7ggPiByb3VzaG91XCA7Civpg63muIUgPiBrYWt1c2VpXCA7Civlh7rotbAgPiBzaHVzc291XCA7CivlubvoppogPiBnZW5rYWt1XCA7CivliZvohbkgPiBnb3VmdWt1XCA7Civmra/nn7MgPiBzaGlzZWtpXCA7CivmgaXkuJggPiBjaGlreXV1XCA7CivokL3nm6QgPiByYWt1YmFuXCA7CivlhajpuqYgPiB6ZW5iYWt1XCA7CivljZrmiZMgPiBiYWt1Y2hpXCA7Civov73oqo0gPiB0c3VpbmluXCA7Civph4/liJEgPiByeW91a2VpXCA7CivnorrlrpogPiBrYWt1dGVpXCA7Civph43liLsgPiBqdXVrb2t1XCA7CivnorrlroggPiBrYWt1c2h1XCA7Civov73oqaYgPiB0c3Vpc2hpXCA7Civlh7ros4cgPiBzaHVzc2hpXCA7CivnnJ/otIsgPiBzaGluZ2FuXCA7CivmsJfmjIEgPiBraW1vY2hpXCA7CivlubPop5IgPiBoZWlrYWt1XCA7CivmraPnorogPiBzZWlrYWt1XCA7Civov73oqI4gPiB0c3VpdG91XCA7Civmr6zmoJcgPiBpZ2FndXJpXCA7Civmrbvnl4UgPiBzaGlieW91XCA7CivlhbHps7QgPiBreW91bWVpXCA7Civlj43lj44gPiB0YW5zaHV1XCA7Civlv5bluqYgPiBzb250YWt1XCA7CivluK/ph5EgPiBvYmlnYW5lXCA7CivojZjph40gPiBzb3VjaG91XCA7Civlv4Pmg4UgPiBzaGluam91XCA7CivljLnmlbUgPiBoaXR0ZWtpXCA7Civpg6jmtLsgPiBidWthdHN1XCA7Civph47lhY4gPiBub3VzYWdpXCA7CivmsLjlubQgPiBuYWdhbmVuXCA7CivpgIbooYwgPiBneWFra291XCA7Civov4XpgJ8gPiBqaW5zb2t1XCA7Civlvozmm7ggPiBhdG9nYWtpXCA7CivliY3ohoogPiB6ZW5wYWt1XCA7Civph5HlgbQgPiBraW5nYXdhXCA7Civlv4PmgKcgPiBzaGluc2VpXCA7Civnn7PniYggPiBzZWtpYmFuXCA7Civov7Doqp4gPiBqdXRzdWdvXCA7CivnoqflsbEgPiBoZWtpemFuXCA7CivmsojlkJ8gPiBjaGluZ2luXCA7Civph43lgrcgPiBqdXVzaG91XCA7CivliY3ohLMgPiB6ZW4nJ25vdVwgOwor5bm06KGoID4gbmVucHlvdVwgOwor5YmN6ISaID4gbWFlYXNoaVwgOwor5q2O56ewID4gdGFuc2hvdVwgOwor5Ye66KybID4gc2h1a2tvdVwgOwor5Yi66I2JID4gaXJha3VzYVwgOwor5Y2D5oyvID4gc2VuYnVyaVwgOwor6YCy6IiqID4gc2hpbmtvdVwgOwor5b+D5b6XID4ga29rb3JvZVwgOwor5oGS5LmFID4ga291a3l1dVwgOwor5Y+q5LuKID4gdGFkYWltYVwgOwor5Y+N5YmHID4gaGFuc29rdVwgOwor5Y+j5L6bID4ga291a3lvdVwgOwor5by354GrID4gdHN1eW9iaVwgOwor5oGL5LuyID4ga29pbmFrYVwgOwor5YmN6IKiID4gbWFlYXNoaVwgOwor5q2755CDID4gc2hpa3l1dVwgOwor5Yqp55WqID4gc3VrZWJhblwgOwor5b6M5pelID4gZ29uaWNoaVwgOwor6YWN5b25ID4gaGFpeWFrdVwgOwor5oGL5Lq6ID4ga29pYml0b1wgOwor5biC6ZW3ID4gc2hpY2hvdVwgOwor5oCq5YqbID4ga2FpcmlraVwgOwor5b6B5pyNID4gc2VpZnVrdVwgOwor5q+N5qeYID4ga2Fhc2FtYVwgOwor55yf6KumID4gc2hpbnRlaVwgOwor5byx54K5ID4gamFrdXRlblwgOwor6YCj6I2YID4gcmVuY2hhblwgOwor5YaG6aGUID4gbWFydWdhb1wgOwor55uy6YCyID4gbW91c2hpblwgOwor5b+g5a2dID4gY2h1dWtvdVwgOwor6bOl556wID4gY2hvdWthblwgOwor5bm86JmrID4geW91Y2h1dVwgOwor6JC955CDID4gcmFra3l1dVwgOwor5beo6aGNID4ga3lvZ2FrdVwgOwor5Ymy566XID4gd2FyaXphblwgOwor5Y+N5YWxID4gaGFua3lvdVwgOwor5q6L54WnID4gemFuc2hvdVwgOwor5YyX5p2xID4gaG9rdXRvdVwgOwor5b+D5bqVID4gc2hpbnRlaVwgOwor6YC46IGeID4gaXRzdWJ1blwgOwor6YWS5bitID4gc2h1c2VraVwgOwor55+z54KtID4gc2VraXRhblwgOwor5rC35bGxID4gaHlvdXphblwgOwor5byV546HID4gaW5zb3RzdVwgOwor5bu2552AID4gZW5jaGFrdVwgOwor5rC35bGLID4ga29vcml5YVwgOwor5Y2x5bGAID4ga2lreW9rdVwgOwor5Ye46KeSID4gdG9ra2FrdVwgOwor55uu6YCBID4gbW9rdXNvdVwgOwor5b6z5oCnID4gdG9rdXNlaVwgOwor55u06Ly4ID4gY2hva3V5dVwgOwor56CV5rC3ID4gc2FpaHlvdVwgOwor55yf6KiAID4gc2hpbmdvblwgOwor5bu655m9ID4ga2VucGFrdVwgOwor5q2m55WlID4gYnVyeWFrdVwgOwor5oCn5YiGID4gc2hvdWJ1blwgOwor5YaX6ZW3ID4gam91Y2hvdVwgOwor56K65aCxID4ga2FrdWhvdVwgOwor5bqn6IG3ID4gemFzaG9rdVwgOwor5Y+j5LitID4ga291Y2h1dVwgOwor55ye6KiAID4gc2hpbmdvblwgOwor5Ya36YW3ID4gcmVpa29rdVwgOwor5q605q66ID4gb3VzYXRzdVwgOwor5YWl6a2CID4gbnl1dWtvblwgOwor5b+X5a2mID4gc2hpZ2FrdVwgOwor5b6A5pelID4gb3VqaXRzdVwgOwor5rGC5amaID4ga3l1dWtvblwgOwor5Y+N5YG0ID4gaGFuc29rdVwgOwor5bu255m6ID4gZW5wYXRzdVwgOwor55yf6KW/ID4gbWFuaXNoaVwgOwor5byT54q2ID4ga3l1dWpvdVwgOwor6Yac5ZCNID4gc2h1dW1laVwgOwor5rCR5b+DID4gbWluc2hpblwgOwor5qip6auYID4ga2VuZGFrYVwgOwor5rCR5b6zID4gbWludG9rdVwgOwor5Y+N5L+XID4gaGFuem9rdVwgOwor5rG65YudID4ga2Vzc2hvdVwgOwor5YaF6Zm4ID4gbmFpcmlrdVwgOwor55u06LevID4gY2hva3Vyb1wgOwor6YGp56K6ID4gdGVra2FrdVwgOwor6Iy26YecID4gY2hhZ2FtYVwgOwor6YCa6IiqID4gdHN1dWtvdVwgOwor6L6b6YW4ID4gc2hpbnNhblwgOwor5biM6YeIID4ga2lzaGFrdVwgOwor5Ye26KGMID4ga3lvdWtvdVwgOwor5q+O5pydID4gbWFpY2hvdVwgOwor55m96a+oID4gaGFrdWdlaVwgOwor5Y2K5byTID4gaGFua3l1dVwgOwor5Yid6I23ID4gaGF0c3VuaVwgOwor5YyX5pSvID4gaG9rdXNoaVwgOwor5YaF6ZayID4gbmFpZXRzdVwgOwor5YaF6ZajID4gbmFpa2FrdVwgOwor6YWN5bGeID4gaGFpem9rdVwgOwor6JS15Yy/ID4gem91dG9rdVwgOwor5bir6LWwID4gc2hpd2FzdVwgOwor5rKI5YCrID4gY2hpbnJpblwgOwor5b2w5piOID4gc2hvdW1laVwgOwor6YWS5a6iID4gc2h1a2FrdVwgOwor5q+U5pelID4gaGluaWNoaVwgOwor5Y6f5ZGKID4gZ2Vua29rdVwgOwor55m96a2aID4gc2hpcmF1b1wgOwor5Y2K5bm0ID4gaGFuJyduZW5cIDsKK+WJjee0jSA+IHplbicnbm91XCA7CivpgYvnrYYgPiB1bnBpdHN1XCA7Civpt7nljKAgPiB0YWtham91XCA7CivmrbTnhLYgPiByZWtpemVuXCA7CivlhazpoJggPiBrb3VyeW91XCA7Civov5HopqogPiBraW5zaGluXCA7CivmgKXkvb8gPiBreXV1c2hpXCA7Civlib3nm5cgPiBoeW91dG91XCA7Civlubzoi6UgPiB5b3VqYWt1XCA7CivlhajpoY0gPiB6ZW5nYWt1XCA7CivmqJnpq5ggPiBoeW91a291XCA7CivljbPlo7IgPiBzb2t1YmFpXCA7CivljYPluqYgPiBjaGl0YWJpXCA7CivlvLfmsJcgPiB0c3V5b2tpXCA7CivluoHoiI4gPiBjaG91c2hhXCA7CivliofnlYwgPiBnZWtpa2FpXCA7CivljYPlubQgPiBjaGl0b3NlXCA7CivliofnlJogPiBnZWtpamluXCA7CivmqKrpoZQgPiB5b2tvZ2FvXCA7Civli6fmpa0gPiBrYW5neW91XCA7Civlh53oppYgPiBneW91c2hpXCA7CivliLrnuY0gPiBzaGlzaHV1XCA7CivnnqDnm64gPiBkb3Vtb2t1XCA7Civlho3pjLIgPiBzYWlyb2t1XCA7CivnnJ/omasgPiBtYW11c2hpXCA7Civps6XnjaMgPiBjaG91anV1XCA7CivlvrnlrrUgPiB0ZXNzaG91XCA7CivljZHlsYggPiBoaWt1dHN1XCA7CivliqDnhrEgPiBrYW5ldHN1XCA7Civlho3pi7MgPiBzYWljaHV1XCA7CivmsLfloYogPiBoeW91a2FpXCA7CivljZLlr78gPiBzb3RzdWp1XCA7CivlvLfmrLIgPiBnb3V5b2t1XCA7CivljZTlrpogPiBreW91dGVpXCA7CivlhbXplbcgPiBoZWljaG91XCA7CivphYzlqaYgPiBzaGFrdWZ1XCA7CivnoLLmkoMgPiBob3VnZWtpXCA7CivmsJflr4YgPiBraW1pdHN1XCA7CivpgbjnkIMgPiBzZW5reXV1XCA7Civljp/liYcgPiBnZW5zb2t1XCA7CivlhbHpl5ggPiBreW91dG91XCA7Civnm7Toq6sgPiBjaG9ra2FuXCA7CivnmbrppqwgPiBoYXRzdWJhXCA7CivliLrntaEgPiBzaGlyYWt1XCA7Civlhajpm4YgPiB6ZW5zaHV1XCA7CivljZPlrZAgPiB0ZWlidXJ1XCA7Civnm7Toq4wgPiBjaG9ra2FuXCA7Civnm7Toq4cgPiBqaWtpZGFuXCA7CivlhaXpm7sgPiBueXV1ZGVuXCA7CivliY3nq6AgPiB6ZW5zaG91XCA7Civnn7PmrrUgPiBpc2hpZGFuXCA7Civmrabng4ggPiBidXJldHN1XCA7Civnm7ToqbEgPiBjaG9rdXdhXCA7Civno4HlipsgPiBqaXJ5b2t1XCA7CivmsLTlnqIgPiBtaXp1YWthXCA7CivlubPoh7wgPiBoaXJhdXN1XCA7CivlvbnmiYAgPiB5YWt1c2hvXCA7CivpgannlKggPiB0ZWtpeW91XCA7CivpgKPntpogPiByZW56b2t1XCA7CivlvLfmqKkgPiBreW91a2VuXCA7CivljbXlmqIgPiByYW4nJ25vdVwgOwor5rCP5a+6ID4gdWppZGVyYVwgOwor5YWl6ZqKID4gbnl1dXRhaVwgOwor5b+D5aSWID4gc2hpbmdhaVwgOwor5Y2K5a61ID4gaGFuc2hvdVwgOwor6YCj57WhID4gcmVucmFrdVwgOwor5Yi257SEID4gc2VpeWFrdVwgOwor556R55uuID4gbWVpbW9rdVwgOwor5Yqb54K5ID4gcmlraXRlblwgOwor5rC05ZynID4gc3VpYXRzdVwgOwor5bm76IG0ID4gZ2VuY2hvdVwgOwor55+v5q2jID4ga3lvdXNlaVwgOwor5qiZ6aGMID4gaHlvdWRhaVwgOwor5rC35ZqiID4gaHlvdW5vdVwgOwor5b+15YqbID4gbmVucmlraVwgOwor55u06KazID4gY2hva2thblwgOwor5Y2a5aWVID4gYmFrdWNoaVwgOwor55u06KanID4gamlraXJhblwgOwor5Y2D5bCLID4gY2hpaGlyb1wgOwor5YWo6ZW3ID4gemVuY2hvdVwgOwor5Y2a5aSnID4gaGFrdWRhaVwgOwor6JC95raZID4gcmFrdXJ1aVwgOwor5YaF6YeRID4gdWNoaWtpblwgOwor55m76aCCID4gdG91Y2hvdVwgOwor55uX6LOKID4gdG91em9rdVwgOwor5Y2a5aOrID4gaGFrdXNoaVwgOwor55qH6Zm1ID4ga291cnlvdVwgOwor55m66Z+zID4gaGF0c3VvblwgOwor5YWl6ZaAID4gbnl1dW1vblwgOwor5q+S5omLID4gZG9rdXNodVwgOwor55+z5qmLID4gc2Vra3lvdVwgOwor55yf6I+MID4gc2hpbmtpblwgOwor55m96Z2iID4gaGFrdW1lblwgOwor5b655aScID4gdGV0c3V5YVwgOwor55+z5qeoID4gc2Vra2FrdVwgOwor5b+r5YudID4ga2Fpc2hvdVwgOwor5YiH6IW5ID4gc2VwcHVrdVwgOwor5b+g5ZCbID4gY2h1dWt1blwgOwor6JS15Lq6ID4ga3Vyb3Vkb1wgOwor5Ye26I2SID4ga3lvdWtvdVwgOwor5bm06ICBID4gdG9zaGlvaVwgOwor6IuU6aGeID4ga29rZXJ1aVwgOwor55m66ZyyID4gaGF0c3Vyb1wgOwor5YWH6aGeID4ga3lvdXJ1aVwgOwor6YCU57W2ID4gdG96ZXRzdVwgOwor55u06KGMID4gY2hva2tvdVwgOwor5Yqb5ryVID4gcmlraXNvdVwgOwor5Y2g5ZywID4gc2hpbWVqaVwgOwor5b+D5ZywID4ga29rb2NoaVwgOwor5YWI6aCDID4gc2Vua29yb1wgOwor5q275q+SID4gc2hpZG9rdVwgOwor5bqc56uLID4gZnVyaXRzdVwgOwor5bir6KGoID4gc2hpaHlvdVwgOwor5Y6f5L2cID4gZ2Vuc2FrdVwgOwor5Y2w5ZOyID4gaW50ZXRzdVwgOwor5Ya36KmVID4gcmVpaHlvdVwgOwor5b+D5ZugID4gc2hpbicnaW5cIDsKK+WHuuiIqiA+IHNodWtrb3VcIDsKK+mAn+eulyA+IHNva3VzYW5cIDsKK+WOhOWJjSA+IHlha3VtYWVcIDsKK+aui+alrSA+IHphbmd5b3VcIDsKK+iNkuihjCA+IGFyYWd5b3VcIDsKK+WGhemAmiA+IG5haXRzdXVcIDsKK+WLneaZryA+IHNob3VrZWlcIDsKK+eereeEtiA+IHJ5b3V6ZW5cIDsKK+W+k+WxniA+IGp1dXpva3VcIDsKK+W8pualvSA+IGdlbmdha3VcIDsKK+WKg+eEtiA+IGtha3V6ZW5cIDsKK+WNs+WQnyA+IHNva3VnaW5cIDsKK+WNg+WnqyA+IHNlbmhpbWVcIDsKK+W/oOWLpCA+IGNodXVraW5cIDsKK+W/oOWLhyA+IGNodXV5dXVcIDsKK+WGt+immiA+IHJlaWtha3VcIDsKK+mAmueulyA+IHRzdXVzYW5cIDsKK+mAhue4gSA+IGd5YWt1ZW5cIDsKK+WInee0miA+IHNob2t5dXVcIDsKK+avkuaApyA+IGRva3VzZWlcIDsKK+W3oemBiiA+IGp1bicneXV1XCA7CivlvpPlrrkgPiBzaG91eW91XCA7CivljZflm70gPiBuYW5nb2t1XCA7CivlvLfmmrQgPiBreW91Ym91XCA7CivluZXoiI4gPiBiYWt1c2hhXCA7CivmsLfljp8gPiBoeW91Z2VuXCA7CivlubPnuZQgPiBoaXJhb3JpXCA7Civlv5zlipsgPiBvdXJ5b2t1XCA7Civli53mlZcgPiBzaG91aGFpXCA7CivmsYLliJEgPiBreXV1a2VpXCA7Civlt7vosp0gPiBtYWtpZ2FpXCA7CivlvI/mrKEgPiBzaGlraWppXCA7Civnn7Pmnb8gPiBzZWtpYmFuXCA7CivlhpnosaEgPiBzaGFzaG91XCA7Civmrovmn7EgPiB6YW5jaHV1XCA7Civnn7PmnZAgPiBzZWtpemFpXCA7Civlvozlrq4gPiBrb3VreXV1XCA7Civpgqbmpb0gPiBob3VnYWt1XCA7CivliaPnjokgPiBrZW5kYW1hXCA7CivljJfltrogPiBob2t1cmVpXCA7CivlubTntaYgPiBuZW5reXV1XCA7Civlhajph48gPiB6ZW5yeW91XCA7CivlvozlraYgPiBrb3VnYWt1XCA7CivpgoTmtYEgPiBrYW5yeXV1XCA7CivljbPliLsgPiBzb2trb2t1XCA7Civlh7bogZ4gPiBreW91YnVuXCA7CivmsJHlm70gPiBtaW5rb2t1XCA7CivlhaXph5EgPiBueXV1a2luXCA7CivliZvnkIMgPiBnb3VreXV1XCA7CivljYrlm70gPiBoYW5nb2t1XCA7CivmsLjliKUgPiBlaWJldHN1XCA7Civphbfkvb8gPiBrb2t1c2hpXCA7Civlv6vkvZwgPiBrYWlzYWt1XCA7CivljbDliLcgPiBpbnNhdHN1XCA7Civov73ntI0gPiB0c3Vpbm91XCA7CivmsLfliIMgPiBoeW91amluXCA7Civlha3pgZMgPiByb2t1ZG91XCA7CivljJflsrggPiBob2t1Z2FuXCA7CivliY3nlJ8gPiB6ZW5zaG91XCA7CivpgIHnsY0gPiBzb3VzZWtpXCA7CivliKXnp7AgPiBiZXNzaG91XCA7Civluq3nlaogPiBuaXdhYmFuXCA7CivovrLolqwgPiBub3V5YWt1XCA7Civov5Hoh6MgPiBraW5zaGluXCA7CivpgYrnjJ8gPiB5dXVyeW91XCA7CivnmbvpjLIgPiB0b3Vyb2t1XCA7CivljaDljZwgPiBzZW5ib2t1XCA7CivokYnmnIggPiBoYWR6dWtpXCA7Civlt6jos4ogPiBreW96b2t1XCA7Civoj6/nh60gPiBrYXNob2t1XCA7CivlvZPmg5EgPiB0b3V3YWt1XCA7Civlvavlt6UgPiBjaG91a291XCA7CivliIbntI0gPiBidW4nJ25vdVwgOwor5Yid56mCID4gaGF0c3Vob1wgOwor5b+F5YudID4gaGlzc2hvdVwgOwor55m96YqRID4gaGFrdXNlblwgOwor5YWo6YCfID4gemVuc29rdVwgOwor5YWl6YG4ID4gbnl1dXNlblwgOwor5YWo6YCaID4gemVudHN1dVwgOwor55m96YqFID4gaGFrdWRvdVwgOwor55m96YqAID4gaGFrdWdpblwgOwor5YWl6YGTID4gbnl1dWRvdVwgOwor6YKq5puyID4gamFreW9rdVwgOwor5Y2c5Y2gID4gYm9rdXNlblwgOwor5bel6LODID4ga291Y2hpblwgOwor5rC35YOPID4gaHlvdXpvdVwgOwor6YGK54mnID4geXV1Ym9rdVwgOwor6YCx55WqID4gc2h1dWJhblwgOwor5b+D5Yq0ID4gc2hpbnJvdVwgOwor5Yid56eLID4gc2hvc2h1dVwgOwor5bm+56iLID4gaWt1aG9kb1wgOwor5q6L5pW1ID4gemFudGVraVwgOwor6YCa56CUID4gdHN1dWtlblwgOwor5Y2U5ZCMID4ga3lvdWRvdVwgOwor5bmz562JID4gYnlvdWRvdVwgOwor6YGO54axID4ga2FuZXRzdVwgOwor5Y2z5YCkID4gc29rdWNoaVwgOwor6YCa55+lID4gdHN1dWNoaVwgOwor55mC6aSKID4gcnlvdXlvdVwgOwor5bm056uvID4gdG9zaGloYVwgOwor5bqt55CDID4gdGVpa3l1dVwgOwor5q6J5pWZID4ganVua3lvdVwgOwor5q2M5rKiID4gdXRhemF3YVwgOwor5YuB5pW1ID4ga2VpdGVraVwgOwor5YaN6Kq/ID4gc2FpY2hvdVwgOwor5Yed6ISCID4gZ3lvdXNoaVwgOwor5YaN6KqtID4gc2FpZG9rdVwgOwor5rGC5Lq6ID4ga3l1dWppblwgOwor5Yqf5qWtID4ga291Z3lvdVwgOwor6Imy6buSID4gaXJvZ3Vyb1wgOwor5Y2X5YyXID4gbmFuYm9rdVwgOwor5Y2a5Yq0ID4gYmFrdXJvdVwgOwor56C05bGAID4gaGFreW9rdVwgOwor5Y2Y5YudID4gdGFuc2hvdVwgOwor5q2j5qWtID4gc2VpZ3lvdVwgOwor5biv6IqvID4gb2Jpc2hpblwgOwor5Y2K5ZGoID4gaGFuc2h1dVwgOwor6YGh5rqQID4gc2FrdWdlblwgOwor5YWo6LqrID4gemVuc2hpblwgOwor5q+S5a6zID4gZG9rdWdhaVwgOwor5YaF6KyBID4gbmFpZXRzdVwgOwor5YaF6Ku+ID4gbmFpZGFrdVwgOwor5bm456aPID4ga291ZnVrdVwgOwor5Yuk5oGqID4ga2lua2FrdVwgOwor5Ye657K+ID4gc2h1c3NlaVwgOwor5b6p5ZG9ID4gZnVrdW1laVwgOwor6Iul6YCgID4gd2FrYXpvdVwgOwor5bqa55SzID4ga291c2hpblwgOwor55u06IiqID4gY2hva2tvdVwgOwor5bqX55WqID4gbWlzZWJhblwgOwor6a2N6a2OID4gbW91cnlvdVwgOwor5YWJ6YePID4ga291cnlvdVwgOwor5buT5riFID4ga2FrdXNlaVwgOwor6YGp5rOVID4gdGVraWhvdVwgOwor5YSq6ZW3ID4geXV1Y2hvdVwgOwor5b+Z5LitID4gYm91Y2h1dVwgOwor5Y2R5YqjID4gaGlyZXRzdVwgOwor5Yip55m6ID4gcmloYXRzdVwgOwor5b6p5Y+3ID4gZnVrdWdvdVwgOwor5b+D5YOPID4gc2hpbnpvdVwgOwor6YCj55SoID4gcmVuJyd5b3VcIDsKK+awl+WKmyA+IGtpcnlva3VcIDsKK+awt+S6uiA+IGh5b3VqaW5cIDsKK+auteW5syA+IGRhbmJpcmFcIDsKK+WFseiyqSA+IGt5b3VoYW5cIDsKK+WGheiovCA+IG5haXNob3VcIDsKK+WGheiouiA+IG5haXNoaW5cIDsKK+WJiueJhyA+IHNha3VoZW5cIDsKK+ato+agvCA+IHNlaWtha3VcIDsKK+W8t+aFviA+IGdvdXlva3VcIDsKK+W+qeWOnyA+IGZ1a3VnZW5cIDsKK+eZuumAsiA+IGhhc3NoaW5cIDsKK+W8lOaWhyA+IGNob3VidW5cIDsKK+WMl+WkqSA+IGhva3V0ZW5cIDsKK+WMl+WkpyA+IGhva3VkYWlcIDsKK+WFg+mHkSA+IG1vdG9raW5cIDsKK+WGheinkiA+IG5haWtha3VcIDsKK+iLpei8qSA+IGpha3VoYWlcIDsKK+ebiuiZqyA+IGVraWNodXVcIDsKK+W+s+WIqSA+IHRva2t1cmlcIDsKK+WLgeaNtyA+IGtlaXNob3VcIDsKK+W/heS/riA+IGhpc3NodXVcIDsKK+ebsuiFuCA+IG1vdWNob3VcIDsKK+W+s+WIhiA+IHRva3VidW5cIDsKK+iSuOWZqCA+IG11c2hpa2lcIDsKK+W+ruWKmyA+IGJpcnlva3VcIDsKK+WMv+WQjSA+IHRva3VtZWlcIDsKK+W6teeCuSA+IGlvcml0ZW5cIDsKK+W7tuajkiA+IG5vYmVib3VcIDsKK+W4uOe/kiA+IGpvdXNodXVcIDsKK+WItueQgyA+IHNlaWt5dXVcIDsKK+WIhuenkiA+IGZ1bmJ5b3VcIDsKK+atk+alvSA+IGthbnJha3VcIDsKK+awtOS4rSA+IHN1aWNodXVcIDsKK+mDqOWxgCA+IGJ1a3lva3VcIDsKK+WHjeiCiSA+IHRvdW5pa3VcIDsKK+mAmueUqCA+IHRzdXV5b3VcIDsKK+iNieiJsiA+IGt1c2Fpcm9cIDsKK+WMl+WigyA+IGhva2t5b3VcIDsKK+mtgumthCA+IGtvbnBha3VcIDsKK+W+tOWFtSA+IGNob3VoZWlcIDsKK+mFjeS/oSA+IGhhaXNoaW5cIDsKK+mAl+eVmSA+IHRvdXJ5dXVcIDsKK+mBqeatoyA+IHRla2lzZWlcIDsKK+ato+acnSA+IHNlaWNob3VcIDsKK+ato+aclCA+IHNlaXNha3VcIDsKK+WFqOixuSA+IHplbnB5b3VcIDsKK+WHhOiFlSA+IHN1Z291ZGVcIDsKK+ato+acjSA+IHNlaWZ1a3VcIDsKK+WNlOWDjSA+IGt5b3Vkb3VcIDsKK+WFiemAnyA+IGtvdXNva3VcIDsKK+WLmOW/jSA+IGthbicnbmluXCA7CivlhYjpgLIgPiBzZW5zaGluXCA7CivlhYjpgLEgPiBzZW5zaHV1XCA7CivlhaXosqIgPiBueXV1a291XCA7CivphZLku6MgPiBzYWthZGFpXCA7Civnmb3ouqsgPiBzaGlyb21pXCA7Civlt6vooZMgPiBmdWp1dHN1XCA7CivpgJ/nkIMgPiBzb2treXV1XCA7Civov5TntI0gPiBoZW4nJ25vdVwgOwor5b6p5Yi7ID4gZnVra29rdVwgOwor5YWx6KyAID4ga3lvdWJvdVwgOwor6Lu96ZyHID4ga2Vpc2hpblwgOwor6I2S6IKdID4gYXJhZ2ltb1wgOwor5Ye656mCID4gc2h1c3N1aVwgOwor5byV5o+bID4gaGlraWthZVwgOwor6Ly76LyzID4gZnVrdXNvdVwgOwor5qyy5rGCID4geW9ra3l1dVwgOwor5bu25p2/ID4gbm9iZWl0YVwgOwor55yf56m6ID4gc2hpbmt1dVwgOwor55y855uuID4gZ2FubW9rdVwgOwor5byV5o6lID4gaW5zZXRzdVwgOwor6Imy6a2UID4gc2hpa2ltYVwgOwor5b+F5LitID4gaGl0Y2h1dVwgOwor6Lyq6YOtID4gcmlua2FrdVwgOwor5Y2Y5L2cID4gdGFuc2FrdVwgOwor55yB57eaID4gc2hvdXNlblwgOwor5b605YCZID4gY2hvdWtvdVwgOwor5by+5bmVID4gZGFubWFrdVwgOwor5bm055uKID4gbmVuJydla2lcIDsKK+W+qeWFmiA+IGZ1a3V0b3VcIDsKK+WFiei7uCA+IGtvdWppa3VcIDsKK+W7v+aXpSA+IGhhdHN1a2FcIDsKK+W8seW/lyA+IGpha3VzaGlcIDsKK+WMl+WbvSA+IGhva2tva3VcIDsKK+W8t+W8kyA+IGdvdWt5dXVcIDsKK+W+qeWFgyA+IGZ1a3VnZW5cIDsKK+W8t+W8gSA+IGt5b3ViZW5cIDsKK+mChOaapiA+IGthbnJla2lcIDsKK+WKseaMryA+IHJlaXNoaW5cIDsKK+i+nuiJsiA+IGppc2hva3VcIDsKK+WHuuekviA+IHNodXNzaGFcIDsKK+iNieiCpSA+IGt1c2Fnb2VcIDsKK+WIqeeOhyA+IHJpcml0c3VcIDsKK+eZuui2syA+IGhvc3Nva3VcIDsKK+WFrOiplSA+IGtvdWh5b3VcIDsKK+ato+aVmSA+IHNlaWt5b3VcIDsKK+WFrOiovCA+IGtvdXNob3VcIDsKK+WNgeWFrSA+IGp1dXJva3VcIDsKK+WIpeePjSA+IGJldGNoaW5cIDsKK+WNlOS8miA+IGt5b3VrYWlcIDsKK+WFiOi5tCA+IHNlbnNodXVcIDsKK+WMuuWIpSA+IGt1YmV0c3VcIDsKK+WNg+WEhCA+IHNlbicnb2t1XCA7CivmsJfkvY0gPiBraWd1cmFpXCA7CivlvLHlvJ8gPiBqYWt1dGVpXCA7CivlhbHopZ8gPiB0b21vZXJpXCA7CivnnLznl4UgPiBnYW5ieW91XCA7Civlha3op5IgPiByb2trYWt1XCA7CivljZLkvI0gPiBzb3RzdWdvXCA7CivmsJHkv5cgPiBtaW56b2t1XCA7Civmrq/lrq4gPiBoaW5reXV1XCA7CivnoJTlraYgPiBrZW5nYWt1XCA7Civmrovlv7UgPiB6YW4nJ25lblwgOwor6I2356mNID4gbmlkenVtaVwgOwor5Y2X5LitID4gbmFuY2h1dVwgOwor5Ya36IKJID4gcmVpbmlrdVwgOwor6JC95omLID4gcmFrdXNodVwgOwor55u457aaID4gc291em9rdVwgOwor5q6L5b+NID4gemFuJyduaW5cIDsKK+awl+S7mCA+IGtpZHp1a2VcIDsKK+WFpeippiA+IG55dXVzaGlcIDsKK+aui+W/gyA+IHphbnNoaW5cIDsKK+WJtealrSA+IHNvdWd5b3VcIDsKK+WHoeetliA+IGJvbnNha3VcIDsKK+WLieW8tyA+IGJlbmt5b3VcIDsKK+WFseijjyA+IHRvbW91cmFcIDsKK+W+jOWOhCA+IGF0b3lha3VcIDsKK+iQveaIkCA+IHJha3VzZWlcIDsKK+WFqOinkiA+IHplbmtha3VcIDsKK+W8seW5tCA+IGpha3VuZW5cIDsKK+WLp+WtpiA+IGthbmdha3VcIDsKK+WNiuS9nCA+IGhhbnNha3VcIDsKK+W+l+WIhiA+IHRva3VidW5cIDsKK+i8iemMsiA+IHNhaXJva3VcIDsKK+W6tua1gSA+IHNob3J5dXVcIDsKK+attOaIpiA+IHJla2lzZW5cIDsKK+W3neidpiA+IGthd2FlYmlcIDsKK+atjOabsiA+IGtha3lva3VcIDsKK+W+heWQiCA+IG1hY2hpYWlcIDsKK+W4sOe1kCA+IGtpa2V0c3VcIDsKK+efs+W6rSA+IHNla2l0ZWlcIDsKK+WNkuS4rSA+IHNvdGNodXVcIDsKK+WNk+S4iiA+IHRha3Vqb3VcIDsKK+WJiua4myA+IHNha3VnZW5cIDsKK+WFhei2syA+IGp1dXNva3VcIDsKK+WNiuS8kSA+IGhhbmt5dXVcIDsKK+iMtuiFuSA+IGNoYWJhcmFcIDsKK+WFjeiyrCA+IG1lbnNla2lcIDsKK+WMueWElCA+IGhpdGNodXVcIDsKK+mBqeagvCA+IHRla2tha3VcIDsKK+iNkue4hCA+IGFyYW5hd2FcIDsKK+WDu+mahSA+IGhla2lndXVcIDsKK+WKh+aakSA+IGdla2lzaG9cIDsKK+ebtOe1jCA+IGNob2trZWlcIDsKK+ebrue4gSA+IG1hYnVjaGlcIDsKK+WDu+mZrCA+IGhla2lzdXVcIDsKK+mBjeattCA+IGhlbnJla2lcIDsKK+W4r+e0mSA+IG9iaWdhbWlcIDsKK+W6g+eLrSA+IGtvdWt5b3VcIDsKK+WIuua/gCA+IHNoaWdla2lcIDsKK+W5sueToiA+IGthbnB5b3VcIDsKK+mEmeWKoyA+IGhpcmV0c3VcIDsKK+i+nuiBtyA+IGppc2hva3VcIDsKK+WEn+mHkSA+IHNob3VraW5cIDsKK+awj+S6uiA+IHVqaWhpdG9cIDsKK+ebtOezuyA+IGNob2trZWlcIDsKK+ebl+iBtCA+IHRvdWNob3VcIDsKK+WFrOihqCA+IGtvdWh5b3VcIDsKK+efpeW+syA+IGNoaXRva3VcIDsKK+mBiuattCA+IHl1dXJla2lcIDsKK+WFrOihhiA+IGtvdXNodXVcIDsKK+WFiOiyoCA+IHNlbm1ha2VcIDsKK+efpeW+lyA+IGNoaXRva3VcIDsKK+ecvOeQgyA+IGdhbmt5dXVcIDsKK+W4veeroCA+IGJvdXNob3VcIDsKK+i/keensCA+IGtpbnNob3VcIDsKK+W+qeS7hyA+IGZ1a2t5dXVcIDsKK+eZuuitsCA+IGhhdHN1Z2lcIDsKK+WHuueboyA+IHNodWtrYW5cIDsKK+mAgeeQgyA+IHNvdWt5dXVcIDsKK+iJr+miqCA+IHJ5b3VmdXVcIDsKK+WIhueVmSA+IGJ1bnJ5dXVcIDsKK+WLmOWvqSA+IGthbnNoaW5cIDsKK+mBqeadkCA+IHRla2l6YWlcIDsKK+mCgOaSgyA+IHlvdWdla2lcIDsKK+mAo+a/gSA+IHJlbmRha3VcIDsKK+atv+W+jCA+IGJvdHN1Z29cIDsKK+ecn+ebuCA+IHNoaW5zb3VcIDsKK+ecn+ebtCA+IG1hc3N1Z3VcIDsKK+W9ueWQjSA+IHlha3VtZWlcIDsKK+W+k+WDlSA+IGp1dWJva3VcIDsKK+mBk+alvSA+IGRvdXJha3VcIDsKK+eerOaWrSA+IHNodW5kYW5cIDsKK+eZuuiqniA+IGhhdHN1Z29cIDsKK+WLp+WlqCA+IGthbnNob3VcIDsKK+WKm+aKlSA+IHJpa2l0b3VcIDsKK+WIkeeNhCA+IGtlaWdva3VcIDsKK+eZvuioiCA+IGh5YWtrZWlcIDsKK+WEn+mChCA+IHNob3VrYW5cIDsKK+WNg+S4oSA+IHNlbnJ5b3VcIDsKK+W+jOWFiCA+IGF0b3Nha2lcIDsKK+WNgeS5nSA+IGp1dWt5dXVcIDsKK+eZuuipsSA+IGhhdHN1d2FcIDsKK+i8g+mHjyA+IGtvdXJ5b3VcIDsKK+WMl+WNiiA+IGhva3VoYW5cIDsKK+W7g+alrSA+IGhhaWd5b3VcIDsKK+eZuuiouyA+IGhhdGNodXVcIDsKK+WNgeS4oSA+IGp1dXJ5b3VcIDsKK+WKm+aIpiA+IHJpa2lzZW5cIDsKK+WNgeS4gyA+IGp1dW5hbmFcIDsKK+WNgeS4gCA+IGp1dWljaGlcIDsKK+W8leW9kyA+IGhpa2lhdGVcIDsKK+mAuOawkSA+IGl0c3VtaW5cIDsKK+W+i+WEgCA+IHJpY2hpZ2lcIDsKK+WJjeattCA+IHplbnJla2lcIDsKK+WJr+acrCA+IGZ1a3Vob25cIDsKK+iJsemboyA+IGthbicnbmFuXCA7CivlvI/lvq4gPiBzaGlraWJpXCA7CivpgYrmpb0gPiB5dXVyYWt1XCA7Civou73ph48gPiBrZWlyeW91XCA7Civou73ph40gPiBrZWljaG91XCA7Civnm67nrpcgPiBtb2t1c2FuXCA7Civlia/mm7ggPiBmdWt1c2hvXCA7Civlh7rnlKMgPiBzaHVzc2FuXCA7Civlh7rnlJ8gPiBzaHVzc2VpXCA7CivnmbroppogPiBoYWtrYWt1XCA7CivpgLLmsLQgPiBzaGluc3VpXCA7CivmrLLmnJsgPiB5b2t1Ym91XCA7Civli4flsIYgPiB5dXVzaG91XCA7Civnm5/ntIQgPiBtZWl5YWt1XCA7Civnm7jnp7AgPiBzb3VzaG91XCA7Civlvbzlh6YgPiBrYXNoaWtvXCA7Civnn67lsI8gPiB3YWlzaG91XCA7Civnnavmr5sgPiBtYXRzdWdlXCA7CivpgrjlroUgPiB0ZWl0YWt1XCA7Civnn63lsI8gPiB0YW5zaG91XCA7Civnm67nq68gPiBtZWhhc2hpXCA7Civli4nlraYgPiBiZW5nYWt1XCA7Civpr6jogokgPiBnZWluaWt1XCA7CivojInojokgPiBtYXRzdXJpXCA7CivlhKrotoogPiB5dXVldHN1XCA7Civnmb7ooYwgPiBoeWFra291XCA7Civov5HnnLwgPiBjaGlrYW1lXCA7Civoj4zmr5IgPiBraW5kb2t1XCA7CivmrbTlubQgPiByZWtpbmVuXCA7CivlvJPluKsgPiB5dW1pc2hpXCA7CivlhYnoppogPiBrb3VrYWt1XCA7CivlhYjoppogPiBzZW5rYWt1XCA7CivlvozkvZwgPiBhdG9zYWt1XCA7Civlt6joiLYgPiBreW9oYWt1XCA7CivlupXmtYEgPiB0ZWlyeXV1XCA7Civov5Hnm64gPiBjaGlrYW1lXCA7CivnmbrooaggPiBoYXBweW91XCA7Civpgbjmip4gPiBzZW50YWt1XCA7CivmrKDmoLwgPiBrZWtrYWt1XCA7CivlhbHokZcgPiBreW91Y2hvXCA7CivluoPmvKAgPiBrb3ViYWt1XCA7CivojYnnrJsgPiBrdXNhYnVlXCA7Civli53loLEgPiBzaG91aG91XCA7CivliJ3mva4gPiBzaG9jaG91XCA7CivliqnlubMgPiBzdWtlYmVpXCA7CivlvLflpKcgPiBreW91ZGFpXCA7CivovKroqq0gPiByaW5kb2t1XCA7Civnn6XlsIYgPiBjaGlzaG91XCA7CivlhoXohpwgPiBuYWltYWt1XCA7CivlvLflo64gPiBreW91c291XCA7Civlvbnlg6cgPiB5YWt1c291XCA7CivliofmiKYgPiBnZWtpc2VuXCA7Civmr5LliIMgPiBkb2t1amluXCA7Civnmb3onYsgPiBoYWt1cm91XCA7CivluIbntrEgPiBob2R6dW5hXCA7Civou43plbcgPiBndW5jaG91XCA7CivlipvlvbkgPiByaWtpZWtpXCA7CivlhrfnrJEgPiByZWlzaG91XCA7CivojLbnsqUgPiBjaGFnYXl1XCA7Civlu7vlv4MgPiBrYWlzaGluXCA7CivnnIvnl4UgPiBrYW5ieW91XCA7Civnm67npLwgPiBtb2t1cmVpXCA7CivovLjooYAgPiB5dWtldHN1XCA7Civli53lnLAgPiBzaG91Y2hpXCA7CivliJ3mua8gPiBoYXRzdXl1XCA7CivlhYfooYwgPiBreW91a291XCA7Civlh7bnjJsgPiBreW91bW91XCA7CivoiabplbcgPiBrYW5jaG91XCA7Civlh43nn7MgPiB0b3VzZWtpXCA7CivliLbmrLIgPiBzZWl5b2t1XCA7CivlvaLli50gPiBrZWlzaG91XCA7Civlh7rniYggPiBzaHVwcGFuXCA7CivlvJ/lq4EgPiBvdG95b21lXCA7Civlh7bnirYgPiBreW91am91XCA7CivmqLroibIgPiBrYWJhaXJvXCA7CivpgIDmva4gPiB0YWljaG91XCA7CivnoILlnLAgPiBzdW5hY2hpXCA7CivpgZPmlZkgPiBkb3VreW91XCA7CivpgY7ml6UgPiBrYWppdHN1XCA7Civpg7flhZogPiBreW91dG91XCA7Civou6Lph50gPiB0ZW5zaGluXCA7CivojLbnrrEgPiBjaGFiYWtvXCA7CivluLDnnYAgPiBraWNoYWt1XCA7CivpganmiYAgPiB0ZWtpc2hvXCA7Civlg7vpgpEgPiBoZWtpeXV1XCA7CivmrY7mga8gPiB0YW5zb2t1XCA7Civoi5vomZAgPiBrYWd5YWt1XCA7CivlhpnntYwgPiBzaGFreW91XCA7CivmrZPlv4MgPiBrYW5zaGluXCA7Civlvavlg48gPiBjaG91em91XCA7Civnn7PloZQgPiBzZWtpdG91XCA7Civov5TnkIMgPiBoZW5reXV1XCA7Civnn7PloYAgPiBpc2hpYmVpXCA7CivlvJ/lp6sgPiBvdG9oaW1lXCA7CivliKnmrpYgPiByaXNob2t1XCA7CivlvbnkurogPiB5YWt1bmluXCA7CivluK/nmq4gPiBvYmlrYXdhXCA7CivovrHnn6UgPiBqb2t1Y2hpXCA7Civli6flkYogPiBrYW5rb2t1XCA7Civnm7Lnm64gPiBtb3Vtb2t1XCA7Civnl5vpoqggPiB0c3V1ZnV1XCA7CivpgLjmnZAgPiBpdHN1emFpXCA7Civlh7rngq0gPiBzaHV0dGFuXCA7CivlvLHlm70gPiBqYWtrb2t1XCA7CivlubnmtYEgPiBrYW5yeXV1XCA7Civmra/lraYgPiBzaGlnYWt1XCA7CivlubLmuIkgPiBrYW5zaG91XCA7CivojbfniakgPiBuaW1vdHN1XCA7CivljJfkuIogPiBob2t1am91XCA7Civlia/miYsgPiBmdWt1c2h1XCA7Civlib3mgo0gPiBoeW91a2FuXCA7CivoibLph4wgPiBpcm96YXRvXCA7Civou6LpgLIgPiB0ZW5zaGluXCA7Civnm6Tnn7MgPiBiYW5qYWt1XCA7CivovrLnm7ggPiBub3VzaG91XCA7CivpgYrmkoMgPiB5dXVnZWtpXCA7CivlhaXoiLkgPiBueXV1c2VuXCA7CivliIbmupwgPiBidW5yeXV1XCA7CivlhaXoiI4gPiBueXV1c2hhXCA7CivpgJDmrKEgPiBjaGlrdWppXCA7CivovrrnloYgPiBoZW5reW91XCA7CivliY3mlrkgPiBtYWVrYXRhXCA7Civnmb3oj5wgPiBoYWt1c2FpXCA7CivlibLmhJsgPiBrYXRzdWFpXCA7CivpganmgKcgPiB0ZWtpc2VpXCA7Civnm6PnnaMgPiBrYW50b2t1XCA7CivouoHprLEgPiBzb3V1dHN1XCA7CivnoJTliYogPiBrZW5zYWt1XCA7Civmpb3pmoogPiBnYWt1dGFpXCA7CivmraPlrqIgPiBzZWlrYWt1XCA7Civmronlm70gPiBqdW5rb2t1XCA7Civlhajog70gPiB6ZW4nJ25vdVwgOwor6YCG5q+UID4gZ3lha3VoaVwgOwor5Yal56aPID4gbWVpZnVrdVwgOwor552m5pyIID4gbXV0c3VraVwgOwor6YC45paHID4gaXRzdWJ1blwgOwor5Yi75pysID4ga29rdWhvblwgOwor5q2j5a2QID4gc2hvdXNoaVwgOwor5bm95qydID4geXV1dXRzdVwgOwor5q665YK3ID4gc2Fzc2hvdVwgOwor5YaF57SEID4gbmFpeWFrdVwgOwor5by35ZGzID4gdHN1eW9taVwgOwor5Ymj5oifID4ga2VuZ2VraVwgOwor6L+U54WnID4gaGVuc2hvdVwgOwor6ImH6ZW3ID4gdGVpY2hvdVwgOwor6YGp5b2TID4gdGVraXRvdVwgOwor6Lui6LqrID4gdGVuc2hpblwgOwor5YiG5rWBID4gYnVucnl1dVwgOwor5qip6IO9ID4ga2VuJydub3VcIDsKK+WHtua8oiA+IGt5b3VrYW5cIDsKK+ato+WroSA+IHNlaXRla2lcIDsKK+assuaDhSA+IHlva3Vqb3VcIDsKK+W6p+aVtyA+IHphc2hpa2lcIDsKK+alvOmWoyA+IHJvdWtha3VcIDsKK+WIhuazqCA+IGJ1bmNodXVcIDsKK+WMheS4gSA+IGhvdWNob3VcIDsKK+WItuacjSA+IHNlaWZ1a3VcIDsKK+eZuuiKvSA+IGhhdHN1Z2FcIDsKK+mAsuaVsCA+IHNoaW5zdXVcIDsKK+WHuua4ryA+IHNodWtrb3VcIDsKK+eZvuiIrCA+IGh5YXBwYW5cIDsKK+WHuua4oCA+IHNodWtreW9cIDsKK+mAsuaUuyA+IHNoaW5rb3VcIDsKK+iQveWfjiA+IHJha3Vqb3VcIDsKK+WJsuW9kyA+IHdhcmlhdGVcIDsKK+assuW/tSA+IHlva3VuZW5cIDsKK+aon+iEsyA+IHNob3Vub3VcIDsKK+i/keeBqyA+IGNoaWthYmlcIDsKK+WIpeagvCA+IGJla2tha3VcIDsKK+eWvumiqCA+IHNoaXBwdXVcIDsKK+iQveWcsCA+IHJha3VjaGlcIDsKK+WFsee3qCA+IGt5b3VoZW5cIDsKK+atpOWltCA+IGtveWF0c3VcIDsKK+W8t+WLoiA+IGt5b3VzZWlcIDsKK+ebl+eZliA+IHRvdWhla2lcIDsKK+iIuemVtyA+IHNlbmNob3VcIDsKK+eglOS/riA+IGtlbnNodXVcIDsKK+WIt+aWsCA+IHNhc3NoaW5cIDsKK+auv+S4rSA+IGRlbmNodXVcIDsKK+W8t+WKmyA+IGdvdXJpa2lcIDsKK+W6j+absiA+IGpva3lva3VcIDsKK+W6iuadvyA+IHl1a2FpdGFcIDsKK+mAmuaciSA+IHRzdXV5dXVcIDsKK+WJm+aEjiA+IGdvdWZ1a3VcIDsKK+WFteezpyA+IGh5b3Vyb3VcIDsKK+mBt+WuoiA+IHNlbmtha3VcIDsKK+W8t+WJmyA+IGt5b3Vnb3VcIDsKK+ebhuefsyA+IGJvbnNla2lcIDsKK+aso+aCpiA+IGtpbmV0c3VcIDsKK+W8t+WItiA+IGt5b3VzZWlcIDsKK+WFteeyriA+IGh5b3Vyb3VcIDsKK+mBk+W/gyA+IGRvdXNoaW5cIDsKK+WFuOexjSA+IHRlbnNla2lcIDsKK+mBk+W+syA+IGRvdXRva3VcIDsKK+eXhemboyA+IGJ5b3VuYW5cIDsKK+WKm+WjqyA+IHJpa2lzaGlcIDsKK+i7iui8myA+IHNoYXJ5b3VcIDsKK+i7iui8jCA+IHNoYXJ5b3VcIDsKK+WFteexjSA+IGhlaXNla2lcIDsKK+WKg+WumiA+IGtha3V0ZWlcIDsKK+mAn+aWrSA+IHNva3VkYW5cIDsKK+i7iui7uCA+IHNoYWppa3VcIDsKK+WGheepjSA+IG5haXNla2lcIDsKK+mAj+aekCA+IHRvdXNla2lcIDsKK+WGoOecgSA+IGthbnNob3VcIDsKK+WJo+W9oiA+IGtlbmdhdGFcIDsKK+iNkueJqSA+IGFyYW1vbm9cIDsKK+ebsueIhiA+IG1vdWJha3VcIDsKK+WDu+irliA+IGhla2lyb25cIDsKK+W8t+WFtSA+IGt5b3VoZWlcIDsKK+WFrOe0hCA+IGtvdXlha3VcIDsKK+auteS4mCA+IGRhbmt5dXVcIDsKK+i+sueJpyA+IG5vdWJva3VcIDsKK+WFpee2vyA+IGlyZXdhdGFcIDsKK+aoque3miA+IHlva29zZW5cIDsKK+eZvee+vSA+IHNoaXJhaGFcIDsKK+Wzu+mZuiA+IHNodW5rZW5cIDsKK+W3q+elnSA+IGZ1c2h1a3VcIDsKK+i7uOijhSA+IGppa3Vzb3VcIDsKK+ebo+eNhCA+IGthbmdva3VcIDsKK+WIpeaZgiA+IGJldHN1amlcIDsKK+W8lOWVjyA+IGNob3Vtb25cIDsKK+WLheWLmCA+IGNob2trYW5cIDsKK+WFqOe0miA+IHplbmt5dXVcIDsKK+WGheemjyA+IG5haWZ1a3VcIDsKK+WGmeecnyA+IHNoYXNoaW5cIDsKK+WFqOe0jSA+IHplbicnbm91XCA7Civlh53mu54gPiBneW91dGFpXCA7CivpgZPluoogPiBkb3VzaG91XCA7Civmrorli50gPiBzaHVzaG91XCA7Civou43otrMgPiBndW5zb2t1XCA7Civpq5jpoY0gPiBrb3VnYWt1XCA7Civlg7voqIAgPiBoZWtpZ2VuXCA7CivliaPluZUgPiBrZW5tYWt1XCA7Civlh7bmrbMgPiBreW91c2FpXCA7CivliZvlvLcgPiBnb3VreW91XCA7CivliIbmpa0gPiBidW5neW91XCA7CivnnJ/mraMgPiBzaGluc2VpXCA7Civou6Loqr8gPiB0ZW5jaG91XCA7CivmrYzlp6sgPiB1dGFoaW1lXCA7CivpgaDlsbEgPiB0b295YW1hXCA7CivmqKrns7ggPiB5b2tvaXRvXCA7CivmrKHlvI8gPiBqaXNoaWtpXCA7CivlvLflgaUgPiBreW91a2VuXCA7CivpgYrlvIsgPiB5dXV5b2t1XCA7CivpgbrlpLEgPiBpc2hpdHN1XCA7CivpgbjlpaggPiBzZW5zaG91XCA7Civlg7voposgPiBoZWtpa2VuXCA7CivoirHokbUgPiBoYW5hYW9pXCA7CivokL3lkb0gPiByYWt1bWVpXCA7CivpgYrlu5MgPiB5dXVrYWt1XCA7Civou5/oqr8gPiBuYW5jaG91XCA7CivmqLnnq4sgPiBqdXJpdHN1XCA7CivprZTooZMgPiBtYWp1dHN1XCA7Civlh6HmtYEgPiBib25yeXV1XCA7CivluILnlLogPiBzaGljaG91XCA7CivoiIzpn7MgPiB6ZXRzdW9uXCA7CivliJ3ml6UgPiBoYXRzdWhpXCA7CivlvJXlj5cgPiBoaWtpdWtlXCA7CivlioflpIkgPiBnZWtpaGVuXCA7Civlu7rlm70gPiBrZW5rb2t1XCA7Civnn63lhoogPiB0YW56YWt1XCA7Civnn7Plg48gPiBzZWtpem91XCA7CivnnaPmiKYgPiB0b2t1c2VuXCA7CivliLrmiJ8gPiBzaGlnZWtpXCA7CivnnLrmnJsgPiBjaG91Ym91XCA7Civlioflo4cgPiBnZWtpZGFuXCA7Civov5Hms4EgPiBraW5reW91XCA7CivmrKDluK0gPiBrZXNzZWtpXCA7Civlt6jnn7MgPiBreW9zZWtpXCA7CivliY3lvrQgPiB6ZW5jaG91XCA7CivmrbTlj7IgPiByZWtpc2hpXCA7Civnmb3nt5ogPiBoYWt1c2VuXCA7CivlubPmnI0gPiBoZWlmdWt1XCA7Civou6LopoYgPiB0ZW5wdWt1XCA7CivmqZ/nlaUgPiBraXJ5YWt1XCA7CivliofloLQgPiBnZWtpam91XCA7Civouqvov5EgPiBtaWRqaWthXCA7CivlhKroia8gPiB5dXVyeW91XCA7CivpgIbml4UgPiBnZWtpcnlvXCA7CivouqvovrogPiBzaGlucGVuXCA7CivliIbmnpAgPiBidW5zZWtpXCA7CivlvLHkvZMgPiBqYWt1dGFpXCA7Civlh7rmo7ogPiBzaHVra2FuXCA7Civnmb3ntJkgPiBoYWt1c2hpXCA7CivlhZrnsY0gPiB0b3VzZWtpXCA7CivmqKrnrJsgPiB5b2tvYnVlXCA7CivnmbrntaYgPiBoYWtreXV1XCA7Civou73oloQgPiBrZWloYWt1XCA7CivlvJXlipsgPiBpbnJ5b2t1XCA7CivlhoXnm7ggPiBuYWlzaG91XCA7Civlhaznp7AgPiBrb3VzaG91XCA7Civlhobnm4YgPiBtYXJ1Ym9uXCA7CivokZfkvZwgPiBjaG9zYWt1XCA7Civnl6nouqsgPiBzb3VzaGluXCA7CivoirHoibIgPiBoYW5haXJvXCA7CivpgJ/miJAgPiBzb2t1c2VpXCA7Civpq5jplqMgPiBrb3VrYWt1XCA7Civlt6bnm7QgPiBzYWNob2t1XCA7CivliY3lubQgPiB6ZW4nJ25lblwgOwor6YCB5paZID4gc291cnlvdVwgOwor6bGX5pyoID4gcmluYm9rdVwgOwor55m957KJID4gb3NoaXJvaVwgOwor5YaF55qEID4gbmFpdGVraVwgOwor6Ium56+AID4ga3VzZXRzdVwgOwor55m957GzID4gaGFrdW1haVwgOwor55+t5L+hID4gdGFuc2hpblwgOwor6I+v5a6fID4ga2FqaXRzdVwgOwor5qiq56m0ID4geW9rb2FuYVwgOwor6IiI6ZqGID4ga291cnl1dVwgOwor5qW16YGTID4gZ29rdWRvdVwgOwor6Imv6KiIID4gcnlvdWtlaVwgOwor55y35pePID4ga2Vuem9rdVwgOwor6YGT5a2mID4gZG91Z2FrdVwgOwor5YG06Z2iID4gc29rdW1lblwgOwor5Ye65qChID4gc2h1a2tvdVwgOwor5bmj5p2fID4gaGVpc29rdVwgOwor5Yqp5YuiID4gc3VrZXplaVwgOwor5Yqf5ZCNID4ga291bXlvdVwgOwor6ImH6LqrID4gdGVpc2hpblwgOwor6YGO5a+GID4ga2FtaXRzdVwgOwor5YqH5ZujID4gZ2VraWRhblwgOwor5Yqq5YqbID4gZG9yeW9rdVwgOwor5bqt5birID4gbml3YXNoaVwgOwor55+z5LqtID4gc2VraXRlaVwgOwor6aqo6aq8ID4ga29ra2FrdVwgOwor5Yqp5YqbID4gam9yeW9rdVwgOwor5buf5aCCID4gYnlvdWRvdVwgOwor6L+95pS+ID4gdHN1aWhvdVwgOwor5bOh6ZaTID4ga3lvdWthblwgOwor6I2S5ra8ID4ga291cnlvdVwgOwor5q275YK3ID4gc2hpc2hvdVwgOwor6YGK5a6iID4geXV1a2FrdVwgOwor5YWl56S+ID4gbnl1dXNoYVwgOwor5qmL55WUID4ga3lvdWhhblwgOwor6YGK5a2mID4geXV1Z2FrdVwgOwor5q2z5YWlID4gc2Fpbnl1dVwgOwor5YaF55SzID4gbmFpc2hpblwgOwor6bOp5ZCIID4ga3l1dWdvdVwgOwor5qyg5a2XID4ga2V0c3VqaVwgOwor5q2j5YyXID4gc2VpaG9rdVwgOwor5YK36LehID4ga2l6dWF0b1wgOwor5q2m5YqbID4gYnVyeW9rdVwgOwor6YGp5ZywID4gdGVraWNoaVwgOwor5Yqf5YqbID4ga291cmlraVwgOwor6I2S5rOiID4gYXJhbmFtaVwgOwor6L+R5qWtID4ga2luZ3lvdVwgOwor55yf5pu4ID4gc2hpbnNob1wgOwor6Ii26LyJID4gaGFrdXNhaVwgOwor5bq15a6kID4gYW5qaXRzdVwgOwor5Ye25pq0ID4ga3lvdWJvdVwgOwor5YWx55uKID4ga3lvdWVraVwgOwor5q2j5YmvID4gc2VpZnVrdVwgOwor6YCa5oCnID4gdHN1dXNlaVwgOwor5q2j5YmHID4gc2Vpc29rdVwgOwor5YmN5a+pID4gemVuc2hpblwgOwor6ayx6KGAID4gdWtrZXRzdVwgOwor5YW855SoID4ga2VuJyd5b3VcIDsKK+WKtOS9nCA+IHJvdXNha3VcIDsKK+mAmuW/tSA+IHRzdXVuZW5cIDsKK+WHi+auiyA+IGNob3V6YW5cIDsKK+WGt+a2vCA+IHJlaXJ5b3VcIDsKK+i7veiInyA+IGtlaXNodXVcIDsKK+iQveS9kyA+IHJha3V0YWlcIDsKK+eahOeiuiA+IHRla2tha3VcIDsKK+mAo+W5tCA+IHJlbicnbmVuXCA7CivliIfmj5sgPiBraXJpa2FlXCA7Civnl5Xot6EgPiBrb25zZWtpXCA7CivlubLmi5MgPiBrYW50YWt1XCA7CivmrbvkurogPiBzaGliaXRvXCA7CivlhaznmoQgPiBrb3V0ZWtpXCA7Civlu7rliY0gPiB0YXRlbWFlXCA7CivliIfmjpsgPiBraWtrYWtlXCA7CivpgLLlsZUgPiBzaGludGVuXCA7CivmrKDlpoIgPiBrZXRzdWpvXCA7CivpqqjpoIIgPiBrb3RjaG91XCA7CivmqKrnnYAgPiBvdWNoYWt1XCA7CivliIbmjowgPiBidW5zaG91XCA7CivlvIHlhJ8gPiBiZW5zaG91XCA7CivliJHmiK4gPiBrZWlyaWt1XCA7CivpgJrlvIogPiB0c3V1aGVpXCA7CivnmbrnpaUgPiBoYXNzaG91XCA7CivpgJrlvIEgPiB0c3V1YmVuXCA7CivmrbTkvJ0gPiByZWtpZGVuXCA7Civlub3mhIEgPiB5dXVzaHV1XCA7CivokL3kurogPiBvY2h1dWRvXCA7CivlhaXnm6MgPiBueXV1a2FuXCA7CivmrbvkuK0gPiBzaGljaHV1XCA7CivmrbTku7sgPiByZWtpbmluXCA7CivliKXlvowgPiBiZXRzdWdvXCA7CivmrbTku6MgPiByZWtpZGFpXCA7CivmrbTku5UgPiByZWtpc2hpXCA7CivlhbHnlKggPiBreW91eW91XCA7CivmpbXosqcgPiBnb2t1aGluXCA7CivlhbHnlKMgPiBreW91c2FuXCA7CivlhbHnlJ8gPiBreW91c2VpXCA7CivmqKnnm4ogPiBrZW4nJ2VraVwgOwor5bm75oORID4gZ2Vud2FrdVwgOwor6Lui6JC9ID4gdGVucmFrdVwgOwor5bmV5pS/ID4gYmFrdXNlaVwgOwor55yM5pyJID4ga2VuJyd5dXVcIDsKK+i/veaHkCA+IHRzdWlrYWlcIDsKK+mtmuiFuSA+IGd5b2Z1a3VcIDsKK+mAmuW4uCA+IHRzdXVqb3VcIDsKK+i/veaGtiA+IHRzdWlva3VcIDsKK+ebm+azgSA+IHNlaWt5b3VcIDsKK+WIneW/gyA+IHNob3NoaW5cIDsKK+i6iui6hyA+IGNodXVjaG9cIDsKK+W3neeNuiA+IGthd2F1c29cIDsKK+msvOiTriA+IG9uaWJhc3VcIDsKK+ecn+aRryA+IHNoaW5zaGlcIDsKK+eahuebriA+IGthaW1va3VcIDsKK+eZveeggiA+IGhha3VzaGFcIDsKK+mAmuW3uyA+IHRzdXVrYW5cIDsKK+attOS4liA+IHJla2lzaGlcIDsKK+amguiplSA+IGdhaWh5b3VcIDsKK+W8i+S6uiA+IHlva3VqaW5cIDsKK+iIqui3oSA+IGtvdXNla2lcIDsKK+WHneacmyA+IGd5b3Vib3VcIDsKK+WCvuinkiA+IGtlaWtha3VcIDsKK+WFuOeNhCA+IHRlbmdva3VcIDsKK+mvm+eEvCA+IHRhaXlha2lcIDsKK+mBqeWQiCA+IHRla2lnb3VcIDsKK+WKh+WJpCA+IGdla2l6YWlcIDsKK+WIpeW4rSA+IGJlc3Nla2lcIDsKK+WFg+emhCA+IGdlbnJva3VcIDsKK+i/veaDsyA+IHRzdWlzb3VcIDsKK+WCvuimhiA+IGtlaWZ1a3VcIDsKK+mtmuiCiSA+IGd5b25pa3VcIDsKK+i/veaCvCA+IHRzdWl0b3VcIDsKK+WFpeeUqCA+IG55dXV5b3VcIDsKK+eZveecvCA+IGhha3VnYW5cIDsKK+mrmOmAsiA+IGtvdXNoaW5cIDsKK+iNkualrSA+IGFyYXdhemFcIDsKK+eXm+irliA+IHRzdXVyb25cIDsKK+WIuuWtkCA+IHNhc2hpa29cIDsKK+ato+S9kyA+IHNob3V0YWlcIDsKK+mAhuW+kiA+IGd5YWt1dG9cIDsKK+mrmOmAnyA+IGtvdXNva3VcIDsKK+Wxsem6kyA+IHNhbnJva3VcIDsKK+W5vOW8sSA+IHlvdWpha3VcIDsKK+i/juaYpSA+IGdlaXNodW5cIDsKK+eZveebriA+IHNoaXJvbWVcIDsKK+WIl+W8tyA+IHJla2t5b3VcIDsKK+i+sualrSA+IG5vdWd5b3VcIDsKK+WIh+aEmyA+IHNldHN1YWlcIDsKK+WAmemzpSA+IGtvdWNob3VcIDsKK+mChOS/lyA+IGdlbnpva3VcIDsKK+mAn+WwhCA+IHNva3VzaGFcIDsKK+i/t+aDkSA+IG1laXdha3VcIDsKK+W6g+W3niA+IGtvdXNodXVcIDsKK+mAvOWhniA+IGhpc3Nva3VcIDsKK+W5s+W+qSA+IGhlaWZ1a3VcIDsKK+eZveeZrCA+IGhha3VzZW5cIDsKK+eXm+iogCA+IHRzdXVnZW5cIDsKK+WIneW3syA+IGhhdHN1bWlcIDsKK+eWvui1sCA+IHNoaXNzb3VcIDsKK+WIl+W6pyA+IHJldHN1emFcIDsKK+edgOW6pyA+IGNoYWt1emFcIDsKK+WFseeKryA+IGt5b3VoYW5cIDsKK+iMtuauuyA+IGNoYWdhcmFcIDsKK+i/veW+kyA+IHRzdWlqdXVcIDsKK+ato+S4rSA+IHNlaWNodXVcIDsKK+i6rOihjCA+IGt5dXVrb3VcIDsKK+eZveeXtCA+IGhha3VjaGlcIDsKK+WHtuaJiyA+IGt5b3VzaHVcIDsKK+W4guazgSA+IHNoaWt5b3VcIDsKK+WIl+W4rSA+IHJlc3Nla2lcIDsKK+W4nealrSA+IHRlaWd5b3VcIDsKK+WJjeWegiA+IG1hZWRhcmVcIDsKK+ecqeaDkSA+IGdlbndha3VcIDsKK+W/teOAhSA+IG5lbicnbmVuXCA7CivnnYDlt6UgPiBjaGFra291XCA7CivlibLli5ggPiB3YXJpa2FuXCA7CivpgIDluoEgPiB0YWljaG91XCA7CivnmbrnlrkgPiBob3NzaGluXCA7CivlubTlubQgPiBuZW4nJ25lblwgOwor6bOl5Lq6ID4gY2hvdWppblwgOwor6L+O5pKDID4gZ2VpZ2VraVwgOwor6YCy5aGBID4gc2hpbnJ1aVwgOwor5Ymj5ZGRID4ga2VuJydub25cIDsKK+WGkua2nCA+IGJvdXRva3VcIDsKK+aknOmPoSA+IGtlbmt5b3VcIDsKK+WFiOeahyA+IHNlbicnbm91XCA7CivpgIDluK0gPiB0YWlzZWtpXCA7CivliKXlrrQgPiBiZXRzdWVuXCA7CivpgLHloLEgPiBzaHV1aG91XCA7CivlibLliY0gPiB3YXJpbWFlXCA7Civlhobmu5EgPiBlbmtvdHN1XCA7CivliKXlroUgPiBiZXR0YWt1XCA7CivlhY3nlqsgPiBtZW4nJ2VraVwgOwor55ub5qWtID4gc2VpZ3lvdVwgOwor5bKh6Zm1ID4ga291cnlvdVwgOwor5Ymy5YikID4gd2FyaWhhblwgOwor6Lu457eaID4gamlrdXNlblwgOwor6auY6LazID4ga291c29rdVwgOwor5YSq56eAID4geXV1c2h1dVwgOwor5YG06L66ID4gc29rdWhlblwgOwor5qyg5ZOhID4ga2V0c3VpblwgOwor5qOS6bGIID4gYm91ZGFyYVwgOwor5YWl54mpID4gaXJlbW9ub1wgOwor5YWl54miID4gbnl1dXJvdVwgOwor55yf5oOFID4gc2hpbmpvdVwgOwor6YG45Lu7ID4gc2VuJyduaW5cIDsKK+WHtuaCqiA+IGt5b3Vha3VcIDsKK+WIneWvqSA+IHNob3NoaW5cIDsKK+eVqumVtyA+IGJhbmNob3VcIDsKK+W5vOWwkSA+IHlvdXNob3VcIDsKK+iNieacqCA+IHNvdW1va3VcIDsKK+WGjeazqCA+IHNhaWNodXVcIDsKK+ebruaYnyA+IG1lYm9zaGlcIDsKK+ecn+aApyA+IHNoaW5zZWlcIDsKK+W5veWvgiA+IHl1dWpha3VcIDsKK+WJteWCtyA+IHNvdXNob3VcIDsKK+WBtOi7iiA+IHNva3VzaGFcIDsKK+WFqOeEvCA+IHplbnNob3VcIDsKK+WIneWtkCA+IGhhdHN1Z29cIDsKK+WDmuiJpiA+IHJ5b3VrYW5cIDsKK+WHuuW+gSA+IHNodXNzZWlcIDsKK+W5veWuoiA+IHl1dWtha3VcIDsKK+WIhuW3uyA+IGJ1bm1ha2lcIDsKK+mAmuWlvSA+IHRzdXVrb3VcIDsKK+iIiOi2oyA+IGt5b3VzaHVcIDsKK+WJo+WKhyA+IGtlbmdla2lcIDsKK+eZqeeXhSA+IHJhaWJ5b3VcIDsKK+mAmuWljyA+IHRzdXVzb3VcIDsKK+eWo+i2syA+IGlib2FzaGlcIDsKK+iJr+iDvSA+IHJ5b3Vub3VcIDsKK+i8ieepjSA+IHNhaXNla2lcIDsKK+iMtuajmiA+IGNoYWRhbmFcIDsKK+W5vOWtkCA+IG9zYW5hZ29cIDsKK+mBqeS+iyA+IHRla2lyZWlcIDsKK+aknOmHnSA+IGtlbnNoaW5cIDsKK+WHuuW7tyA+IHNodXR0ZWlcIDsKK+WJjeWTqCA+IHplbnNob3VcIDsKK+W0qeiQvSA+IGhvdXJha3VcIDsKK+ecn+W9sSA+IHNoaW4nJ2VpXCA7CivlubTlsJEgPiBuZW5zaG91XCA7CivluaPluJsgPiBoZWloYWt1XCA7Civlh7blvL4gPiBreW91ZGFuXCA7CivpgJ/loLEgPiBzb2t1aG91XCA7CivnlLLpq5ggPiBrb3VkYWthXCA7Civnmb3nirYgPiBoYWt1am91XCA7Civpganku7sgPiB0ZWtpbmluXCA7CivliLblnKcgPiBzZWlhdHN1XCA7CivliZvlipsgPiBnb3VyaWtpXCA7Civnlr7oppYgPiBzaGlzc2hpXCA7Civoi6bnhrEgPiBrdW5ldHN1XCA7Civnmbrni4IgPiBoYWtreW91XCA7CivlibXkvZwgPiBzb3VzYWt1XCA7CivmqoTmlocgPiBnZWtpYnVuXCA7CivlhoXmsaAgPiB1Y2hpaWtlXCA7Civnm67mkqUgPiBtZWJhY2hpXCA7CivlgY/ph50gPiBoZW5zaGluXCA7CivpgIDlraYgPiB0YWlnYWt1XCA7CivlgY/ph40gPiBoZW5jaG91XCA7CivlubTlrZAgPiB0b3NoaWdvXCA7CivpgJrloLEgPiB0c3V1aG91XCA7Civlgo3oqLwgPiBib3VzaG91XCA7Civlgo3oqLsgPiBib3VjaHV1XCA7Civlh7rluIYgPiBzaHVwcGFuXCA7CivliaPlhYggPiBrZW5zYWtpXCA7CivlhYjnjosgPiBzZW4nJ25vdVwgOwor5Ye25bm0ID4ga3lvdW5lblwgOwor55yf5bmzID4gbWFwcGlyYVwgOwor55mS552AID4geXVjaGFrdVwgOwor5Ymv5L2/ID4gZnVrdXNoaVwgOwor6auY6Kq/ID4ga291Y2hvdVwgOwor6I6r5aSnID4gYmFrdWRhaVwgOwor5YmN5Y6EID4gbWFleWFrdVwgOwor6a2a56ucID4gZ3lvcnl1dVwgOwor5YWx5riIID4ga3lvdXNhaVwgOwor5YWH54ybID4ga3lvdW1vdVwgOwor6L+35a6uID4gbWVpa3l1dVwgOwor6YGF5Yi7ID4gY2hpa29rdVwgOwor55u45om/ID4gc291c2hvdVwgOwor6auY6KmVID4ga291aHlvdVwgOwor5bmU5bmVID4gbWFubWFrdVwgOwor5qOu6ZaRID4gc2hpbmthblwgOwor6YCy5ZGIID4gc2hpbnRlaVwgOwor6L6f5piTID4gaGVraWVraVwgOwor5YWH54q2ID4ga3lvdWpvdVwgOwor5YWl5ryBID4gbnl1dWd5b1wgOwor55u05oqrID4gY2hva3VoaVwgOwor55m654WZID4gaGF0c3VlblwgOwor6Iif6KGMID4gc2h1dWtvdVwgOwor5bK46L66ID4ga2lzaGliZVwgOwor6auY6KeSID4ga291a2FrdVwgOwor6YGT5L+XID4gZG91em9rdVwgOwor6YCy5Y+WID4gc2hpbnNodVwgOwor6Iao6ZqGID4gYm91cnl1dVwgOwor5YCN6aGNID4gYmFpZ2FrdVwgOwor55uu5oyHID4gbW9rdXNoaVwgOwor6a2U56qfID4gbWFrdXRzdVwgOwor5Yed5b+1ID4gZ3lvdW5lblwgOwor5beh5q20ID4ganVucmVraVwgOwor5bGx6aCCID4gc2FuY2hvdVwgOwor6Lui57GNID4gdGVuc2VraVwgOwor5YWl5rmvID4gbnl1dXRvdVwgOwor5bm95aKDID4geXV1a3lvdVwgOwor5Ye65bGVID4gc2h1dHRlblwgOwor6I2S5oqAID4gYXJhd2F6YVwgOwor5YWl5rivID4gbnl1dWtvdVwgOwor5YWl5rigID4gbnl1dWt5b1wgOwor6Iub54OIID4ga2FyZXRzdVwgOwor5YWJ54WnID4ga291c2hvdVwgOwor6L+r5a6zID4gaGFrdWdhaVwgOwor5YWr5rSyID4geWFzaGltYVwgOwor6L2f5rKIID4gZ291Y2hpblwgOwor55yM5bqBID4ga2VuY2hvdVwgOwor5Yeh5bq4ID4gYm9uJyd5b3VcIDsKK+eZh+eZliA+IGthbnBla2lcIDsKK+iJsue0oCA+IHNoaWtpc29cIDsKK+i/keW5tCA+IGtpbicnbmVuXCA7Civnm7TmhJ8gPiBjaG9ra2FuXCA7Civnm4bmmq4gPiBib25rdXJlXCA7CivouYnot4wgPiBzYXRldHN1XCA7CivlubTlopcgPiB0b3NoaW1hXCA7CivpgYrkvqAgPiB5dXVreW91XCA7CivliY3lhYYgPiB6ZW5jaG91XCA7CivnmYfnl4cgPiBrYW5zaG91XCA7CivovaLmrbsgPiByZWtpc2hpXCA7CivpgZPkuLsgPiBkb3VzaHV1XCA7Civlh4vmgrQgPiBjaG91c3VpXCA7Civlg6fnsY0gPiBzb3VzZWtpXCA7CivpgZPkuK0gPiBkb3VjaHV1XCA7CivlsbHpmb0gPiBzYW4nJ3lvdVwgOwor5bel5qWtID4ga291Z3lvdVwgOwor5bGx6Zm1ID4gc2FucnlvdVwgOwor5qyg5Ly4ID4ga2Vuc2hpblwgOwor6YGK5LyRID4geXV1a3l1dVwgOwor55eY6IuXID4gdG91YnlvdVwgOwor5bm95ZuaID4geXV1c2h1dVwgOwor6YCx5YiKID4gc2h1dWthblwgOwor5bqW5Y6oID4gaG91Y2h1dVwgOwor5YCS6ZajID4gdG91a2FrdVwgOwor5YiX5Zu9ID4gcmVra29rdVwgOwor552j5YqxID4gdG9rdXJlaVwgOwor5beh5qWtID4ganVuZ3lvdVwgOwor5qiZ5rqWID4gaHlvdWp1blwgOwor6I+K5YikID4ga2lrdWJhblwgOwor55Sj6aGNID4gc2FuZ2FrdVwgOwor6YCx5YaFID4gc2h1dW5haVwgOwor5YK+6IG0ID4ga2VpY2hvdVwgOwor6bC75bGLID4gdW5hZ2l5YVwgOwor5biv5b+DID4gb2Jpc2hpblwgOwor5YWl5rC0ID4gbnl1dXN1aVwgOwor5Yi25YudID4gc2Vpc2hvdVwgOwor5Yi75Yi7ID4ga29ra29rdVwgOwor5YKZ6JOEID4gYmljaGlrdVwgOwor6IiI6KGMID4ga291Z3lvdVwgOwor6YCa5ZCNID4gdG9vcmluYVwgOwor6LuN57GNID4gZ3Vuc2VraVwgOwor6Ii56Ii2ID4gc2VucGFrdVwgOwor6YCj5YudID4gcmVuc2hvdVwgOwor6YCa5Y+yID4gdHN1dXNoaVwgOwor55u05b6MID4gY2hva3Vnb1wgOwor55u05b6EID4gY2hva2tlaVwgOwor55u05b6AID4gY2hva3VvdVwgOwor5L+u6aSKID4gc2h1dXlvdVwgOwor5YWH5ryiID4ga3lvdWthblwgOwor55eF6I+MID4gYnlvdWtpblwgOwor5YOt56ewID4gc2Vuc2hvdVwgOwor5Ye65aWUID4gc2h1cHBvblwgOwor6L6b5oqxID4gc2hpbmJvdVwgOwor5qW96IGWID4gZ2FrdXNlaVwgOwor5YGl6Ki6ID4ga2Vuc2hpblwgOwor6Lu955eHID4ga2Vpc2hvdVwgOwor6Ii56IW5ID4gc2VucHVrdVwgOwor55m95rSyID4gc2hpcmFzdVwgOwor5Yeh5bCPID4gYm9uc2hvdVwgOwor5YmN5Lu7ID4gemVuJyduaW5cIDsKK+W3qOacqCA+IGt5b2Jva3VcIDsKK+iIrOiLpSA+IGhhbicnbnlhXCA7CivlgrfogIUgPiBzaG91c2hhXCA7Civlhobmm7IgPiBlbmt5b2t1XCA7CivlsL7pqqggPiBiaWtvdHN1XCA7CivlhoXmnI0gPiBuYWlmdWt1XCA7CivluoPlkYogPiBrb3Vrb2t1XCA7Civoip3nlJ8gPiBzaGliYWZ1XCA7CivpgJrli6QgPiB0c3V1a2luXCA7Civoh6roqqwgPiBqaXNldHN1XCA7CivlhYXmuqIgPiBqdXVpdHN1XCA7CivnnIvlrqIgPiBrYW5rYWt1XCA7CivojLbmiZggPiBjaGF0YWt1XCA7CivnnJ/lpI8gPiBtYW5hdHN1XCA7Civlh7blpIkgPiBreW91aGVuXCA7CivovrrluYUgPiBoZW5wdWt1XCA7CivlupflhoUgPiB0ZW4nJ25haVwgOwor5Yi65YK3ID4gc2hpc2hvdVwgOwor5bed5p+zID4gc2Vucnl1dVwgOwor55m65rOoID4gaGF0Y2h1dVwgOwor5qWt6IW5ID4gZ291aGFyYVwgOwor6Imv56iuID4gcnlvdXNodVwgOwor5YWx5qOyID4ga3lvdXNlaVwgOwor5YCf6YeRID4gc2hha2tpblwgOwor5YmK5LqVID4gc2FrdXNlaVwgOwor55Ww6LOqID4gaXNoaXRzdVwgOwor5bqP5YiXID4gam9yZXRzdVwgOwor6YCf5YaZID4gc29rdXNoYVwgOwor5YCS6YyvID4gdG91c2FrdVwgOwor5bid5b6zID4gdGVpdG9rdVwgOwor6YCa5YiGID4gdHN1dWJ1blwgOwor6L+95ZaEID4gdHN1aXplblwgOwor5YW85pyJID4ga2VuJyd5dXVcIDsKK+WHtuWgsSA+IGt5b3Vob3VcIDsKK+aknOiqjSA+IGtlbicnbmluXCA7CivojZLlt7sgPiBhcmFtYWtpXCA7Civnl4XoiI4gPiBieW91c2hhXCA7CivoiJ7ojLggPiBtYWl0YWtlXCA7Civmop/pppYgPiBreW91c2h1XCA7CivpgLHku6QgPiBzaHV1cmVpXCA7Civlh4blt54gPiBqdW5zaHV1XCA7CivlhbHmoJMgPiB0b21vc2VuXCA7CivmpJzoqLwgPiBrZW5zaG91XCA7CivmpJzoqLogPiBrZW5zaGluXCA7CivluLjlrr8gPiBqb3V5YWRvXCA7Civkv6HpoLwgPiBzaGlucmFpXCA7CivlhYnmsqIgPiBrb3V0YWt1XCA7CivluJ3lu58gPiB0ZWlieW91XCA7Civlh7nlnLAgPiBrdWJvY2hpXCA7Civlh7jlnYogPiBkZWtvYm91XCA7CivohbHpnpggPiBrZW5zaG91XCA7Civou43npaggPiBndW5weW91XCA7Civnm5vlvrMgPiBzZWl0b2t1XCA7CivnlJ/plbcgPiBzZWljaG91XCA7Civmpa3ogIUgPiBneW91c2hhXCA7Civou43npZ4gPiBndW5zaGluXCA7CivlhaXmo7ogPiBueXV1a2FuXCA7CivouYjopbIgPiB0b3VzaHV1XCA7CivpgLLkuIogPiBzaGluam91XCA7CivoiJ/oiYcgPiBzaHV1dGVpXCA7Civlub3li50gPiB5dXVzaG91XCA7Civlt6jmk5ggPiBreW9oYWt1XCA7CivoiJ/oiKogPiBzaHV1a291XCA7CivmqKrmo5IgPiB5b2tvYm91XCA7CivliLbkvZwgPiBzZWlzYWt1XCA7CivlubTlj44gPiBuZW5zaHV1XCA7Civlh4vlsL0gPiBjaG91amluXCA7Civnm5flv4MgPiB0b3VzaGluXCA7CivlhaXmooUgPiBueXV1YmFpXCA7CivohZPpqqggPiBoaWtvdHN1XCA7CivlhbHmnIkgPiBreW91eXV1XCA7CivpsKTlrZAgPiBidXJpa2tvXCA7Civnm7jlrqIgPiBhaWt5YWt1XCA7CivnnJ/lm6AgPiBzaGluJydpblwgOwor6L+95Y+3ID4gdHN1aWdvdVwgOwor6YCj5L2cID4gcmVuc2FrdVwgOwor5YWO5qygID4gdG9rZXRzdVwgOwor5YWG5rCRID4gY2hvdW1pblwgOwor5Yil5YSAID4gYmV0c3VnaVwgOwor5YWl5qChID4gbnl1dWtvdVwgOwor6Imv55+lID4gcnlvdWNoaVwgOwor6YCj5LyRID4gcmVua3l1dVwgOwor5YiH5ZGzID4ga2lyZWFqaVwgOwor6YCg5L2cID4gem91c2FrdVwgOwor5YWt5pu4ID4gcm9rdXNob1wgOwor552A5YmjID4gY2hha2tlblwgOwor5YiG5ZGoID4gYnVuc2h1dVwgOwor5YWt5pucID4gcm9rdXlvdVwgOwor5YWr5pyUID4gaGFzc2FrdVwgOwor5Yiq5L+uID4gc2Fuc2h1dVwgOwor5YeG5bCGID4ganVuc2hvdVwgOwor55yM5aKDID4ga2Vua3lvdVwgOwor6IWV6aaWID4gdWRla3ViaVwgOwor55y85YqbID4gZ2FucmlraVwgOwor6I2S5a+lID4ga291cnlvdVwgOwor6YCa5L6LID4gdHN1dXJlaVwgOwor5bKs6KeSID4ga291a2FrdVwgOwor5qiZ5qacID4gaHlvdWJvdVwgOwor5YWl5p2lID4gbnl1dXJhaVwgOwor55Wl6K2cID4gcnlha3VmdVwgOwor6L2i5patID4gcmVraWRhblwgOwor6Lui55SoID4gdGVuJyd5b3VcIDsKK+eakOaciCA+IHNhdHN1a2lcIDsKK+mAo+S4rSA+IHJlbmNodXVcIDsKK+WFg+atjCA+IG1vdG91dGFcIDsKK+iJsueZvSA+IGlyb2ppcm9cIDsKK+WyqeinkiA+IGl3YWthZG9cIDsKK+mAk+S/oSA+IHRlaXNoaW5cIDsKK+W6luS4gSA+IGhvdWNob3VcIDsKK+iMtuW6lyA+IGNoYW1pc2VcIDsKK+WHneWhiiA+IGd5b3VrYWlcIDsKK+mAhuWFiSA+IGd5YWtrb3VcIDsKK+ain+mbhCA+IGt5b3V5dXVcIDsKK+WHuuWTgSA+IHNodXBwaW5cIDsKK+aitemQmCA+IGJvbnNob3VcIDsKK+iIuee0miA+IHNlbmt5dXVcIDsKK+i+suWtpiA+IG5vdWdha3VcIDsKK+mAmuS6uiA+IHRzdXVqaW5cIDsKK+eVpeiqniA+IHJ5YWt1Z29cIDsKK+WDreeUqCA+IHNlbicneW91XCA7CivpgJrkuqQgPiB0c3V1a291XCA7CivouIrouo0gPiB5b3V5YWt1XCA7CivojLbluK0gPiBjaGFzZWtpXCA7Civov73liIogPiB0c3Vpa2FuXCA7CivnlKjph48gPiB5b3VyeW91XCA7Civoh6romZAgPiBqaWd5YWt1XCA7CivprLznlZwgPiBraWNoaWt1XCA7CivohZDpo58gPiBmdXNob2t1XCA7CivlubTlhoUgPiBuZW4nJ25haVwgOwor5YWs5pW1ID4ga291dGVraVwgOwor5YKN6IG0ID4gYm91Y2hvdVwgOwor5bem5oqYID4gc2FzZXRzdVwgOwor5YWs5pWZID4ga291a3lvdVwgOwor55m95qGDID4gaGFrdXRvdVwgOwor6Iul5p6dID4gd2FrYWVkYVwgOwor5Ye65ZCRID4gc2h1a2tvdVwgOwor6L+R5Zu9ID4ga2luZ29rdVwgOwor6Ii557GNID4gc2Vuc2VraVwgOwor5YWD5qiZID4gZ2VucHlvdVwgOwor5Ye65Y+jID4gZGVndWNoaVwgOwor5YiH5YmKID4gc2Vzc2FrdVwgOwor55Wl6KejID4gcnlha2thaVwgOwor5YiA5YygID4gdG91c2hvdVwgOwor55m65qGIID4gaGF0c3VhblwgOwor55Sj6YePID4gc2FucnlvdVwgOwor6Luf55CDID4gbmFua3l1dVwgOwor5Yil5LqLID4gYmV0c3VqaVwgOwor5L+u6YysID4gc2h1dXJlblwgOwor55u05aWPID4gamlraXNvdVwgOwor5biC5bqBID4gc2hpY2hvdVwgOwor6Iiq57aaID4ga291em9rdVwgOwor6Imv55SwID4gcnlvdWRlblwgOwor6Laz6Z+zID4gYXNoaW90b1wgOwor5YWI5qOSID4gc2FraWJvdVwgOwor5YiI5YWlID4ga2FyaWlyZVwgOwor55m95pyoID4gc2hpcmFraVwgOwor5qiZ5pysID4gaHlvdWhvblwgOwor55qH5pePID4ga291em9rdVwgOwor5Ye65YukID4gc2h1a2tpblwgOwor55m95pu4ID4gaGFrdXNob1wgOwor6L665aKDID4gaGVua3lvdVwgOwor6YCB5L+hID4gc291c2hpblwgOwor6LuN55SoID4gZ3VuJyd5b3VcIDsKK+WIneS5syA+IHNob255dXVcIDsKK+W5s+S/oSA+IGhlaXNoaW5cIDsKK+eZvuaZryA+IGh5YWtrZWlcIDsKK+iNkuWjgSA+IGFyYWthYmVcIDsKK+WFq+aOmyA+IGhha2tha2VcIDsKK+i8qualrSA+IHJpbmd5b3VcIDsKK+iMtuWvriA+IGNoYXJ5b3VcIDsKK+W5s+S9nCA+IGhlaXNha3VcIDsKK+ebsuWftyA+IG1vdXNodXVcIDsKK+eUmOmFkiA+IGFtYXpha2VcIDsKK+WFieadnyA+IGtvdXNva3VcIDsKK+WFg+agkyA+IG1vdG9zZW5cIDsKK+WFq+aMuiA+IGhhdGNob3VcIDsKK+ecn+WJoyA+IHNoaW5rZW5cIDsKK+WHueWHuCA+IG91dG90c3VcIDsKK+i+m+WtkCA+IGthcmFzaGlcIDsKK+WHuOWHuSA+IHRvdHN1b3VcIDsKK+eZvuaWuSA+IGh5YXBwb3VcIDsKK+W5s+S8jyA+IGhlaWZ1a3VcIDsKK+WGheW/gyA+IG5haXNoaW5cIDsKK+WBtOiDjCA+IHNva3VoYWlcIDsKK+eZguazlSA+IHJ5b3Vob3VcIDsKK+WFpeaOmyA+IGlyZWtha3VcIDsKK+i/t+S/oSA+IG1laXNoaW5cIDsKK+WHtuWIgyA+IGt5b3VqaW5cIDsKK+WHuuWFuCA+IHNodXR0ZW5cIDsKK+WHuuWFtSA+IHNodXBwZWlcIDsKK+eZveaWkSA+IGhha3VoYW5cIDsKK+WIgOWCtyA+IHRvdXNob3VcIDsKK+mAgOS6rCA+IHRhaWt5b3VcIDsKK+eZveaWhyA+IGhha3VidW5cIDsKK+WHuOWGhiA+IHRvdHN1ZW5cIDsKK+WxseiziiA+IHNhbnpva3VcIDsKK+ecvOS4rSA+IGdhbmNodXVcIDsKK+WBtOiBniA+IHNva3VidW5cIDsKK+alreeoriA+IGd5b3VzaHVcIDsKK+WFh+aatCA+IGt5b3Vib3VcIDsKK+WFq+aJiyA+IHlhdHN1ZGVcIDsKK+iJsueJqSA+IGlyb21vbm9cIDsKK+WFg+acnSA+IGdlbmNob3VcIDsKK+eXs+eXhSA+IHJpbmJ5b3VcIDsKK+WFg+acjSA+IGdlbnB1a3VcIDsKK+S/rumBkyA+IHNodXVkb3VcIDsKK+WHtuWFmiA+IGt5b3V0b3VcIDsKK+WFi+aYjiA+IGtva3VtZWlcIDsKK+W5tOS4iiA+IHRvc2hpdWVcIDsKK+S/oemHkSA+IHNoaW5raW5cIDsKK+WFieaYjiA+IGtvdW15b3VcIDsKK+WFseaEnyA+IGt5b3VrYW5cIDsKK+W3peW7oCA+IGtvdXNob3VcIDsKK+mrmOe1piA+IGtvdWt5dXVcIDsKK+S/nemHiCA+IGhvc2hha3VcIDsKK+WFpeaJiyA+IG55dXVzaHVcIDsKK+WFpeaJgCA+IG55dXVzaG9cIDsKK+i/sOS9nCA+IGp1c3Nha3VcIDsKK+WGheW5lSA+IG5haW1ha3VcIDsKK+apn+WvhiA+IGtpbWl0c3VcIDsKK+i4j+ilsiA+IHRvdXNodXVcIDsKK+mrmOe0miA+IGtvdWt5dXVcIDsKK+ebtOWWtiA+IGNob2t1ZWlcIDsKK+ebtOWWqSA+IGNob2t1eXVcIDsKK+Wwj+mdoiA+IHNob3VtZW5cIDsKK+Wwv+mFuCA+IG55b3VzYW5cIDsKK+i+m+WktyA+IGtvYnVzaGlcIDsKK+WFreaDhSA+IHJva3Vqb3VcIDsKK+mrmOeysSA+IGtvdXJ5YW5cIDsKK+Wwj+mboyA+IHNob3VuYW5cIDsKK+WxgOmDqCA+IGt5b2t1YnVcIDsKK+W4neWbvSA+IHRlaWtva3VcIDsKK+WHuuS8miA+IHNodWtrYWlcIDsKK+Wwj+maiiA+IHNob3V0YWlcIDsKK+msseeEtiA+IHV0c3V6ZW5cIDsKK+WFseW9uSA+IGt5b3Vla2lcIDsKK+WHuuS7lSA+IHNodXNzaGlcIDsKK+WCt+eXlSA+IHNob3Vrb25cIDsKK+WGjeWvqSA+IHNhaXNoaW5cIDsKK+ecjOWGhSA+IGtlbicnbmFpXCA7CivnlLPoq4sgPiBzaGluc2VpXCA7CivnmbrmjK8gPiBoYXNzaGluXCA7CivlsL/pgZMgPiBueW91ZG91XCA7CivlgbTnt5ogPiBzb2t1c2VuXCA7CivlhazlvrMgPiBrb3V0b2t1XCA7CivlsJHplqIgPiBzaG91a2FuXCA7CivluLjli50gPiBqb3VzaG91XCA7CivlsJHplpEgPiBzaG91a2FuXCA7CivlhqXlooMgPiBtZWlreW91XCA7CivnnJ/kurogPiBzaGluamluXCA7Civnmb3miYcgPiBoYWt1c2VuXCA7CivlsI/plpEgPiBzaG91a2FuXCA7CivlhrflmLIgPiByZWljaG91XCA7Civlhajlv4MgPiB6ZW5zaGluXCA7Civnl5vnl5IgPiB0c3V1eW91XCA7CivpprTpub8gPiB0b25ha2FpXCA7Civnm7Tlj4IgPiBqaWtpc2FuXCA7CivlhaXlv7UgPiBueXV1bmVuXCA7CivohIrpq4QgPiBzZWtpenVpXCA7CivnnJ/kuIsgPiBtYXNoaXRhXCA7CivlhoblrokgPiBlbicneWFzdVwgOwor5bCK6ZW3ID4gc29uY2hvdVwgOwor5YWs5bqBID4ga291Y2hvdVwgOwor6L+U5L+hID4gaGVuc2hpblwgOwor5YG9562GID4gZ2loaXRzdVwgOwor55u45YmLID4gc291a29rdVwgOwor5bir5YygID4gc2hpc2hvdVwgOwor6Iad6KGMID4gc2hpa2tvdVwgOwor6Lui5rOoID4gdGVuY2h1dVwgOwor5YWl5bu3ID4gbnl1dXRlaVwgOwor5L+X6LypID4gem9rdWhhaVwgOwor6ISa6Z+7ID4ga3lha3VpblwgOwor5bel5a2mID4ga291Z2FrdVwgOwor5Yeh5L+XID4gYm9uem9rdVwgOwor5a+S6a6SID4ga2FuYnVuYVwgOwor5qWt55eFID4gZ291YnlvdVwgOwor6L6y5Y2aID4gbm91aGFrdVwgOwor6L6y5Y2UID4gbm91a3lvdVwgOwor5YWH5omLID4ga3lvdXNodVwgOwor5YWo5bmFID4gemVucHVrdVwgOwor5YWr5beeID4geWFzaGltYVwgOwor5YWo5bitID4gemVuc2VraVwgOwor6auY56aEID4ga291cm9rdVwgOwor6L+R5L2cID4ga2luc2FrdVwgOwor6I235Li7ID4gbmludXNoaVwgOwor6Imv5rivID4gcnlvdWtvdVwgOwor5a+46ZqZID4gc3VuZ2VraVwgOwor5Yeh5L2cID4gYm9uc2FrdVwgOwor5qWt55WMID4gZ3lvdWthaVwgOwor55u45YWLID4gc291a29rdVwgOwor55uu5YmNID4gbW9rdXplblwgOwor5bKp6IKMID4gaXdhaGFkYVwgOwor5Yeh5Lq6ID4gYm9uJyduaW5cIDsKK+S/oeiyqSA+IHNoaW5wYW5cIDsKK+S/l+i2oyA+IHpva3VzaHVcIDsKK+S/ruirliA+IHNodXVyb25cIDsKK+W3p+WmmSA+IGtvdW15b3VcIDsKK+WFteWtpiA+IGhlaWdha3VcIDsKK+eUsOieuiA+IHRhbmlzaGlcIDsKK+eZuuW/gyA+IGhvc3NoaW5cIDsKK+WHjeWCtyA+IHRvdXNob3VcIDsKK+eUo+ikpSA+IHNhbmpva3VcIDsKK+Wwj+mKgyA+IHNob3VqdXVcIDsKK+iJr+azlSA+IHJ5b3Vob3VcIDsKK+WFh+aCqiA+IGt5b3Vha3VcIDsKK+S+v+mAmiA+IGJlbnRzdXVcIDsKK+Wwj+mJoiA+IGtvYmFjaGlcIDsKK+iLpeW5tCA+IGpha3VuZW5cIDsKK+WFh+aCjSA+IGt5b3VrYW5cIDsKK+i1pOmjryA+IHNla2loYW5cIDsKK+W4neWKhyA+IHRlaWdla2lcIDsKK+WFseWtmCA+IGt5b3V6b25cIDsKK+ecgeS7pCA+IHNob3VyZWlcIDsKK+iHqueymyA+IGppc2h1a3VcIDsKK+eZvuW6piA+IGh5YWt1ZG9cIDsKK+WGheWjgSA+IG5haWhla2lcIDsKK+S/ruiogiA+IHNodXV0ZWlcIDsKK+WFjeW9uSA+IG1lbicnZWtpXCA7Civnlr7nl4UgPiBzaGlwcGVpXCA7CivlhYPmgqogPiBnZW4nJ2FrdVwgOwor55a855ebID4gdG91dHN1dVwgOwor5a6z6bOlID4gZ2FpY2hvdVwgOwor5YKN55m9ID4gYm91aGFrdVwgOwor5qSc57SiID4ga2Vuc2FrdVwgOwor6Imv5rCRID4gcnlvdW1pblwgOwor5YWo5a+uID4gemVucnlvdVwgOwor5YWl5bGFID4gbnl1dWt5b1wgOwor55Sy6JmrID4ga291Y2h1dVwgOwor6LqB55eFID4gc291YnlvdVwgOwor55m75bqBID4gdG91Y2hvdVwgOwor5YWo5a65ID4gemVuJyd5b3VcIDsKK+WFpeWwhCA+IG55dXVzaGFcIDsKK+eUsOiZqyA+IHRhbXVzaGlcIDsKK+ebsuS/oSA+IG1vdXNoaW5cIDsKK+eZveW4hiA+IHNoaXJhaG9cIDsKK+mrmOebtCA+IGtvdWppa2lcIDsKK+iGv+iDuCA+IG5vdWt5b3VcIDsKK+WwiumHjSA+IHNvbmNob3VcIDsKK+eUn+ihgCA+IG5hbWFjaGlcIDsKK+WFpeWvhyA+IG55dXVrb3VcIDsKK+WFqOWtpiA+IHplbmdha3VcIDsKK+WFh+W8viA+IGt5b3VkYW5cIDsKK+WFpeWumiA+IG55dXVqb3VcIDsKK+i7oualrSA+IHRlbmd5b3VcIDsKK+WxiOiolyA+IGt1dHRha3VcIDsKK+ebtOS8nSA+IGppa2lkZW5cIDsKK+iMtuWMmSA+IGNoYXNhamlcIDsKK+iHquethiA+IGppaGl0c3VcIDsKK+iLl+W6iiA+IG5hZWRva29cIDsKK+i1pOmdoiA+IHNla2ltZW5cIDsKK+i+m+WKtCA+IHNoaW5yb3VcIDsKK+WFhOW8nyA+IGt5b3VkYWlcIDsKK+S/iuizoiA+IHNodW5rZW5cIDsKK+WFrOWovCA+IGtvdXNob3VcIDsKK+WGheWcpyA+IG5haWF0c3VcIDsKK+eXm+eCuSA+IHRzdXV0ZW5cIDsKK+ebtOS6pCA+IGNob2trb3VcIDsKK+WFiOW5tCA+IHNlbicnbmVuXCA7CivnlrHnlrkgPiBob3VzaGluXCA7Civkv5forKEgPiB6b2t1eW91XCA7Civprq7lsJEgPiBzZW5zaG91XCA7CivlsI/pgZMgPiBrb21pY2hpXCA7Civoh6rnq4sgPiBqaXJpdHN1XCA7Civkv67ooYwgPiBzaHVneW91XCA7CivlhoXlm70gPiBuYWlrb2t1XCA7Civkv5foq7ogPiB6b2t1Z2VuXCA7Civoho/olqwgPiBrb3V5YWt1XCA7Civoh7Pnpo8gPiBzaGlmdWt1XCA7Civlr7rpiq0gPiB0ZXJhc2VuXCA7CivovrLkvZwgPiBub3VzYWt1XCA7Civkv5foq6YgPiB6b2t1dGFpXCA7CivlsI/pgJUgPiBzaG91a2VpXCA7Civkv4rosaogPiBzaHVuZ291XCA7Civkv5foq5YgPiB6b2t1cm9uXCA7Civnl4fnirYgPiBzaG91am91XCA7Civkv5foq4cgPiB6b2t1ZGFuXCA7CivlsI7pgJogPiBkb3V0c3V1XCA7CivprZrml48gPiBneW96b2t1XCA7CivlhaXlqb8gPiBpcmltdWtvXCA7Civoh7znoLIgPiBreXV1aG91XCA7Civlg7vmnZEgPiBoZWtpc29uXCA7CivprqjlsYsgPiBzdXNoaXlhXCA7CivlgaXnpaUgPiBrZW5zaG91XCA7Civlr4Tpo58gPiBraXNob2t1XCA7Civnmb3lsbEgPiBoYWt1c2FuXCA7Civnl4XnirYgPiBieW91am91XCA7CivlhYPlubQgPiBnYW4nJ25lblwgOwor5bCP6L6yID4gc2hvdW5vdVwgOwor5bit5LiKID4gc2VraWpvdVwgOwor6I2S5LqLID4gYXJhZ290b1wgOwor55uj5L+uID4ga2Fuc2h1dVwgOwor5YG455uXID4gY2h1dXRvdVwgOwor5YO75pu4ID4gaGVraXNob1wgOwor55WZ572uID4gcnl1dWNoaVwgOwor6L6b5YWaID4ga2FyYXRvdVwgOwor5qC86ZeYID4ga2FrdXRvdVwgOwor55Wq57WEID4gYmFuZ3VtaVwgOwor5L+X6KiAID4gem9rdWdlblwgOwor6a2C5p+xID4ga29uY2h1dVwgOwor6Lyq5buTID4gcmlua2FrdVwgOwor55m+5a6YID4gaHlha2thblwgOwor5L2c6aKoID4gc2FrdWZ1dVwgOwor6aas6aOfID4gYmFzaG9rdVwgOwor6Imm5qmLID4ga2Fua3lvdVwgOwor5qiZ5a6aID4gaHlvdXRlaVwgOwor6Iao6IS5ID4gYm91Y2hvdVwgOwor5YCW6IejID4ga291c2hpblwgOwor5qiq5aWqID4gb3VkYXRzdVwgOwor55m95a2QID4gc2hpcm9rb1wgOwor5beo5ZWGID4ga3lvc2hvdVwgOwor5YaN5ZGKID4gc2Fpa29rdVwgOwor6aeF6ZW3ID4gZWtpY2hvdVwgOwor6LuN5qW9ID4gZ3VuZ2FrdVwgOwor5bGx6IqLID4geWFtYWltb1wgOwor5bid5LqsID4gdGVpa3lvdVwgOwor6Ly75bCEID4gZnVrdXNoYVwgOwor5YWl5aOwID4gbmlzc2hvdVwgOwor6Lu95o23ID4ga2Vpc2hvdVwgOwor5a+G6ZuyID4gbWl0c3V1blwgOwor5YK+5rOoID4ga2VpY2h1dVwgOwor5YWl5aKoID4gaXJlenVtaVwgOwor5a+G6ZuGID4gbWlzc2h1dVwgOwor6IO46ZaTID4ga3lvdWthblwgOwor6Imy5p+EID4gaXJvZ2FyYVwgOwor6IOM6auYID4gc2VpdGFrYVwgOwor5bCG6LuNID4gc2hvdWd1blwgOwor5qaC5rOBID4gZ2Fpa3lvdVwgOwor5YWo5Z+fID4gemVuJydpa2lcIDsKK+iKs+W/gyA+IGhvdXNoaW5cIDsKK+WFpeWgtCA+IG55dXVqb3VcIDsKK+ebl+S9nCA+IHRvdXNha3VcIDsKK+WFieWtpiA+IGtvdWdha3VcIDsKK+WxseiFuSA+IHNhbnB1a3VcIDsKK+WFiOWtpiA+IHNlbmdha3VcIDsKK+iEmumDqCA+IGt5YWt1YnVcIDsKK+WFrOWbvSA+IGtvdWtva3VcIDsKK+WFpeWfjiA+IG55dXVqb3VcIDsKK+iDtOmVtyA+IGRvdW5hZ2FcIDsKK+api+WPsCA+IGt5b3VkYWlcIDsKK+WDp+acjSA+IHNvdWZ1a3VcIDsKK+mmmOmmliA+IGtha3VzaHVcIDsKK+WGjeWLnSA+IHNhaXNob3VcIDsKK+iFueiUtSA+IGZ1a3V6b3VcIDsKK+iJr+adkCA+IHJ5b3V6YWlcIDsKK+eZh+aApyA+IGthbnNob3VcIDsKK+S9jumhjSA+IHRlaWdha3VcIDsKK+mtmuaLkyA+IGd5b3Rha3VcIDsKK+i8lOW8vCA+IGhvaGl0c3VcIDsKK+WFqOWbvSA+IHplbmdva3VcIDsKK+WFpeWdkSA+IG55dXVrb3VcIDsKK+i+m+S6pSA+IHNoaW5nYWlcIDsKK+iJr+abuCA+IHJ5b3VzaG9cIDsKK+WusOmgmCA+IHNhaXJ5b3VcIDsKK+eZveWkqiA+IHNoaXJhdGFcIDsKK+eZveWknCA+IGJ5YWt1eWFcIDsKK+i5tOeIqiA+IGtlZHp1bWVcIDsKK+W3qOWMoCA+IGt5b3Nob3VcIDsKK+i1pOmMhiA+IGFrYXNhYmlcIDsKK+WFpeWboyA+IG55dXVkYW5cIDsKK+W3peWNmiA+IGtvdWhha3VcIDsKK+WFhOWrgSA+IGFuaXlvbWVcIDsKK+W3ruWIpSA+IHNhYmV0c3VcIDsKK+WGquS5lyA+IGJla2lqb3VcIDsKK+i7jeacjSA+IGd1bnB1a3VcIDsKK+W3peWMoCA+IGtvdXNob3VcIDsKK+eUsuiDhCA+IGthdGNodXVcIDsKK+iHqueZuiA+IGppaGF0c3VcIDsKK+eVouernyA+IGhpa2t5b3VcIDsKK+agoemWsiA+IGtvdWV0c3VcIDsKK+eWjueVpSA+IHNvcnlha3VcIDsKK+WyqeekgSA+IGdhbnNob3VcIDsKK+agoemVtyA+IGtvdWNob3VcIDsKK+WCt+atjiA+IHNob3V0YW5cIDsKK+iJsuaWhyA+IGlyb2J1bWlcIDsKK+eah+WbvSA+IGtvdWtva3VcIDsKK+mmlumgmCA+IHNodXJ5b3VcIDsKK+i1pOmHkSA+IGFrYWdhbmVcIDsKK+mpleiChiA+IGt5b3VzaGlcIDsKK+Wtpum9oiA+IGdha3VyZWlcIDsKK+WFseWQjCA+IGt5b3Vkb3VcIDsKK+WutemXhyA+IHlvaXlhbWlcIDsKK+Wwj+irliA+IHNob3Vyb25cIDsKK+WFh+WkiSA+IGt5b3VoZW5cIDsKK+S9k+mVtyA+IHRhaWNob3VcIDsKK+WBnOeVmSA+IHRlaXJ5dXVcIDsKK+W4guS4rSA+IHNoaWNodXVcIDsKK+WyqeefsyA+IGdhbnNla2lcIDsKK+iFueiKuCA+IGhhcmFnZWlcIDsKK+WFrOWRiiA+IGtvdWtva3VcIDsKK+eZveWcsCA+IHNoaXJvamlcIDsKK+aguOmFuCA+IGtha3VzYW5cIDsKK+WFreWQiCA+IHJpa3Vnb3VcIDsKK+iIueatjCA+IGZ1bmF1dGFcIDsKK+WvvuixoSA+IHRhaXNob3VcIDsKK+mosOiQvSA+IHRvdXJha3VcIDsKK+aknOeWqyA+IGtlbicnZWtpXCA7CivohZDonZUgPiBmdXNob2t1XCA7CivlrprpoY0gPiB0ZWlnYWt1XCA7CivlgY/nmZYgPiBoZW5wZWtpXCA7CivlsI/oqIggPiBzaG91a2VpXCA7CivlhoXlgrcgPiBuYWlzaG91XCA7CivlhbjliYcgPiB0ZW5zb2t1XCA7CivlhYXloZ4gPiBqdXVzb2t1XCA7Civmo5LnuJ4gPiBib3VqaW1hXCA7Civlha3ljYEgPiByb2t1anV1XCA7CivotaTpgZMgPiBzZWtpZG91XCA7CivkvbXpgLIgPiBoZWlzaGluXCA7CivnlJ/ogokgPiBzZWluaWt1XCA7CivmpI3nmq4gPiBzaG9rdWhpXCA7Civlrp/pnIAgPiBqaXRzdWp1XCA7CivlhY3lm5ogPiBtZW5zaHV1XCA7Civpp4bpgJAgPiBrdWNoaWt1XCA7Civpp5Dou4ogPiBjaHV1c2hhXCA7CivmoKrph5EgPiBrYWJ1a2luXCA7Civoh6rnjokgPiBqaWd5b2t1XCA7Civlrr/piq0gPiB5YWRvc2VuXCA7CivpppbplbcgPiBzaHVjaG91XCA7Civohbnog4wgPiBmdWt1aGFpXCA7Civlhajli50gPiB6ZW5zaG91XCA7Civmn7HpoK0gPiBjaHV1dG91XCA7Civnl5vmo5IgPiB0c3V1Ym91XCA7Civnl4XmrbsgPiBieW91c2hpXCA7Civlgo3mtYEgPiBib3VyeXV1XCA7CivlsITop5IgPiBzaGFrYWt1XCA7CivlrqLplpMgPiBreWFrdW1hXCA7Civlt6XkvZwgPiBrb3VzYWt1XCA7CivlhIDlvI8gPiBnaXNoaWtpXCA7Civou4rmjowgPiBzaGFzaG91XCA7CivnlLDntLMgPiBkZW5zaGluXCA7Civlgo3ms6ggPiBib3VjaHV1XCA7Civlr77oqLMgPiB0YWl5YWt1XCA7Civlhbzkv64gPiBrZW5zaHV1XCA7CivotaTou40gPiBzZWtpZ3VuXCA7CivohILouqsgPiBhYnVyYW1pXCA7Civls6Hmub4gPiBreW91d2FuXCA7Civou43mi6EgPiBndW5rYWt1XCA7Civnmb7lkbMgPiBoeWFrdW1pXCA7Civlr77op5IgPiB0YWlrYWt1XCA7Civmn7HpnaIgPiBjaHV1bWVuXCA7Civlt6jkubMgPiBreW9ueXV1XCA7CivlhazlhbEgPiBrb3VreW91XCA7CivlhbHlg40gPiBreW91ZG91XCA7CivnlLvnrYYgPiBnYWhpdHN1XCA7CivkvpvopqcgPiBreW91cmFuXCA7Civlr7joqZUgPiBzdW5weW91XCA7CivlhbHlgqwgPiBreW91c2FpXCA7CivlhoXkuK0gPiB1Y2hpanV1XCA7Civlrrnph48gPiB5b3VyeW91XCA7CivohavohLkgPiBzaHVjaG91XCA7Civlr4bpgJogPiBtaXR0c3V1XCA7CivoiJ/mrYwgPiBmdW5hdXRhXCA7CivlgLbnmbogPiBndWhhdHN1XCA7Civlhbzku7sgPiBrZW4nJ25pblwgOwor5YWs5YOVID4ga291Ym9rdVwgOwor5YWl5YamID4gbnl1dWtvdVwgOwor5L2T6YePID4gdGFpcnlvdVwgOwor5YWs5YK3ID4ga291c2hvdVwgOwor5a6X6ZaAID4gc2h1dW1vblwgOwor6IeG55eFID4gb2t1YnlvdVwgOwor5YWo5YSqID4gemVuJyd5dXVcIDsKK+i7veWwkSA+IGtlaXNob3VcIDsKK+WFpeWFmiA+IG55dXV0b3VcIDsKK+S+keintCA+IHl1dXNob3VcIDsKK+WBj+eLrSA+IGhlbmt5b3VcIDsKK+eVpeeUuyA+IHJ5YWt1Z2FcIDsKK+S/uOe1piA+IGhvdWt5dXVcIDsKK+Wuv+mBiyA+IHNodWt1dW5cIDsKK+iIueadvyA+IGZ1bmFpdGFcIDsKK+S/iuiLsSA+IHNodW4nJ2VpXCA7CivoirPloqggPiBob3Vib2t1XCA7CivlgY/ni4IgPiBoZW5reW91XCA7Civnmb7ljIEgPiBoeWFrdW1lXCA7CivnlJ/ntbkgPiBzdXp1c2hpXCA7Civou5/lvLEgPiBuYW5qYWt1XCA7CivkvJHppKggPiBreXV1a2FuXCA7Civlr4bovLggPiBtaXRzdXl1XCA7CivlhZrliYcgPiB0b3Vzb2t1XCA7Civkv67nuZUgPiBzaHV1emVuXCA7CivlsLHoiKogPiBzaHV1a291XCA7CivkvJHppIogPiBreXV1eW91XCA7CivkvovoqLwgPiByZWlzaG91XCA7CivmprTlvL4gPiByeXV1ZGFuXCA7CivlsbHnqY0gPiBzYW5zZWtpXCA7CivoiLbmnaUgPiBoYWt1cmFpXCA7CivlsbHnqJwgPiBzYW5yeW91XCA7CivotaTosqcgPiBzZWtpaGluXCA7Civkv67nt7QgPiBzaHV1cmVuXCA7Civoi7HlgpEgPiBlaWtldHN1XCA7CivmpbXmmpEgPiBnb2t1c2hvXCA7Civnl4Xmo58gPiBieW91dG91XCA7CivogozpqqggPiBraWtvdHN1XCA7Civoia/mgKcgPiByeW91c2VpXCA7CivotrPoirggPiBhc2hpZ2VpXCA7Civohbjnt5ogPiBjaG91c2VuXCA7Civlg6flvaIgPiBzb3VneW91XCA7CivovKrllLEgPiByaW5zaG91XCA7CivlgYnniakgPiBlcmFtb25vXCA7Civnmb3liIMgPiBoYWt1amluXCA7CivlhazkvJEgPiBrb3VreXV1XCA7Civkvq7olJEgPiBidWJldHN1XCA7Civoi6XlhZogPiB3YWthdG91XCA7Civnl4XmoLkgPiBieW91a29uXCA7CivkvJrpm4YgPiBrYWlzaHV1XCA7CivlsZHns7ggPiBrdXp1aXRvXCA7Civmop/nvaogPiBreW91emFpXCA7Civoi6Xlg6cgPiB3YWthem91XCA7Civnmb3lhbUgPiBoYWt1aGVpXCA7CivlhYjli50gPiBzZW5zaG91XCA7CivkvY7pgJ8gPiB0ZWlzb2t1XCA7CivlhaXkvJogPiBueXV1a2FpXCA7CivlsZHnsbMgPiBrdXp1bWFpXCA7Civou73lppkgPiBrZWlteW91XCA7Civoh6rmu4UgPiBqaW1ldHN1XCA7CivkvJHpm7sgPiBreXV1ZGVuXCA7Civls7bmoLkgPiBzaGltYW5lXCA7CivlrabpoqggPiBnYWt1ZnV1XCA7Civlg7XlsY0gPiBreW9uc2hpXCA7CivlhavkuIEgPiBoYXRjaG91XCA7CivlhYjliLsgPiBzZW5rb2t1XCA7CivogonppYUgPiBuaWt1bWFuXCA7CivkvbXoqq0gPiBoZWlkb2t1XCA7Civppqzot7MgPiB1bWF0b2JpXCA7Civou6LlsZ4gPiB0ZW56b2t1XCA7CivotaToqqAgPiBzZWtpc2VpXCA7Civoia/luKsgPiByeW91c2hpXCA7CivkvJrplbcgPiBrYWljaG91XCA7CivlhYfliIMgPiBreW91amluXCA7Civlrprph48gPiB0ZWlyeW91XCA7Civoia/lt6UgPiByeW91a291XCA7CivmoLzoqIAgPiBrYWt1Z2VuXCA7Civpp4Hoq5YgPiBiYWt1cm9uXCA7CivlhYPlh7YgPiBnZW5reW91XCA7CivogonpoZ4gPiBuaWt1cnVpXCA7Civoh7zmra8gPiBreXV1c2hpXCA7CivnlrzmnKggPiBoaWlyYWdpXCA7Civou6LlroUgPiB0ZW50YWt1XCA7CivmoITpgZQgPiBlaXRhdHN1XCA7Civou6LlraYgPiB0ZW5nYWt1XCA7Civnmbrkv6EgPiBoYXNzaGluXCA7CivkvJHplpEgPiBreXV1a2FuXCA7CivoiJ7mm7IgPiBidWt5b2t1XCA7Civoh6rmtLsgPiBqaWthdHN1XCA7Civkv7jnpoQgPiBob3Vyb2t1XCA7Civkv7jnpb8gPiBob3Vyb2t1XCA7Civoi6XkurogPiB3YWtvdWRvXCA7Civmpb3miY0gPiBnYWt1c2FpXCA7Civlr4borbAgPiBtaXRzdWdpXCA7CivoiIjmpa0gPiBrb3VneW91XCA7CivlhYPlhYcgPiBnZW5reW91XCA7Civpppnou4ogPiBreW91c2hhXCA7Civkv5fntK8gPiB6b2t1cnVpXCA7CivlrabpmpsgPiBnYWt1c2FpXCA7CivlgZzms4ogPiB0ZWloYWt1XCA7CivmpYrmn7MgPiB5b3VyeXV1XCA7Civnmb3kurogPiBoYWt1amluXCA7Civkv6HnrqEgPiBzaGlua2FuXCA7CivlsI/oiIUgPiBrb2p1dXRvXCA7Civoh6rmsbogPiBqaWtldHN1XCA7Civnmb7kuosgPiBoeWFrdWppXCA7CivlsqnmvL8gPiBnYW5zaG91XCA7CivnkIbpq6ogPiByaWhhdHN1XCA7Civlr4boqp4gPiBtaXRzdWdvXCA7CivlhYblgJkgPiBjaG91a291XCA7Civog7jopZ8gPiBreW91a2luXCA7Civpq5jmnKggPiBrb3Vib2t1XCA7CivlsL/nrqEgPiBueW91a2FuXCA7CivprLHlsYggPiB1a2t1dHN1XCA7Civou43lsZ4gPiBndW56b2t1XCA7Civnl5vmhqQgPiB0c3V1ZnVuXCA7CivlsbHnlaogPiB5YW1hYmFuXCA7Civmpb3mg7MgPiBnYWt1c291XCA7Civoh6rmrrogPiBqaXNhdHN1XCA7CivlsI/ohLMgPiBzaG91bm91XCA7CivlhKrli50gPiB5dXVzaG91XCA7CivohLHoh7wgPiBkYWtreXV1XCA7CivpppbotrMgPiBzaHVzb2t1XCA7CivohLHoh60gPiBkYXNzaHV1XCA7Civou43lsIYgPiBndW5zaG91XCA7CivlgrfmgrQgPiBzaG91c3VpXCA7CivlgY/mtYEgPiBoZW5yeXV1XCA7CivohLPohpwgPiBub3VtYWt1XCA7Civlr5LooYwgPiBrYW5neW91XCA7CivlhYjku7sgPiBzZW4nJ25pblwgOwor5bCP6IOeID4gc2hvdWhvdVwgOwor55eb5oSfID4gdHN1dWthblwgOwor54++6auYID4gZ2VuZGFrYVwgOwor5bCP6IOGID4gc2hvdXRhblwgOwor6Iej5rCRID4gc2hpbm1pblwgOwor6LuN5a65ID4gZ3VuJyd5b3VcIDsKK+msvOWphiA+IG9uaWJhYmFcIDsKK+S9nOipqSA+IHNha3VzaGlcIDsKK+S9nOipniA+IHNha3VzaGlcIDsKK+iEseiFuCA+IGRhdGNob3VcIDsKK+WuhemFjSA+IHRha3VoYWlcIDsKK+i7jeWtpiA+IGd1bmdha3VcIDsKK+agoeiouyA+IGtvdWNodXVcIDsKK+S8kemMmCA+IGt5dXVzdWlcIDsKK+eUsOeVkSA+IGRlbnBhdGFcIDsKK+WCt+W/sCA+IHNob3VzdWlcIDsKK+WwkeiAhSA+IHNob3VzaGFcIDsKK+eXm+aBqCA+IHRzdXVrb25cIDsKK+iHs+altSA+IHNoaWdva3VcIDsKK+alteaCqiA+IGdva3Vha3VcIDsKK+WuiemAuCA+IGFuJydpdHN1XCA7CivkvZPoqr8gPiB0YWljaG91XCA7Civlg7vlnLAgPiBoZWtpY2hpXCA7Civlg7vlnKggPiBoZWtpemFpXCA7Civlrprot6EgPiBqb3VzZWtpXCA7Civpq5jmlZkgPiBrb3VreW91XCA7Civmpa3mhYsgPiBneW91dGFpXCA7CivovKrkvZwgPiByaW5zYWt1XCA7Civnl5vlv6sgPiB0c3V1a2FpXCA7Civlsqnms6IgPiBpd2FuYW1pXCA7Civls7vmi5IgPiBzaHVua3lvXCA7CivkvY7oqr8gPiB0ZWljaG91XCA7Civoia/lprsgPiByeW91c2FpXCA7CivliLvjgIUgPiBrb2trb2t1XCA7Civoh4bmuKwgPiBva3Vzb2t1XCA7CivkvZzoo70gPiBzYWt1c2VpXCA7CivnlKPnl5sgPiBzYW50c3V1XCA7Civogbfpmo4gPiBzaG9ra2FpXCA7Civoia/lpb0gPiByeW91a291XCA7CivnlZ3mup0gPiB1bmVtaXpvXCA7CivmpbXlvq4gPiBreW9rdWJpXCA7Civmnpzpo58gPiBrYXNob2t1XCA7CivmoZHoi5cgPiBzb3VieW91XCA7CivohpznirYgPiBtYWt1am91XCA7CivnlJjnmq4gPiBhbWFrYXdhXCA7CivotaTolaogPiBha2FrYWJ1XCA7CivlsbHniqwgPiB5YW1haW51XCA7Civkv4rnq6UgPiBzaHVuZG91XCA7Civmpb3luKsgPiBnYWt1c2hpXCA7CivmoZHoibIgPiBrdXdhaXJvXCA7CivohZXnq6AgPiB3YW5zaG91XCA7CivppqzooZMgPiBiYWp1dHN1XCA7Civnl4XmhYsgPiBieW91dGFpXCA7CivohZXnq4sgPiB1ZGV0YXRlXCA7Civmn6nou4ogPiBreXV1c2hhXCA7CivohbnnmZIgPiBoYXJhaXNlXCA7CivoiJ7miYcgPiBtYWlvdWdpXCA7Civlg4XlsJEgPiBraW5zaG91XCA7Civlr67oiI4gPiByeW91c2hhXCA7CivmpbXluqYgPiBreW9rdWRvXCA7CivlgZXmpb0gPiBrYWlyYWt1XCA7CivnkIPpnaIgPiBreXV1bWVuXCA7CivlsI/nt6ggPiBzaG91aGVuXCA7CivoirPkv6EgPiBob3VzaGluXCA7Civnl4XmgqMgPiBieW91a2FuXCA7CivnlLvnhLYgPiBrYWt1emVuXCA7CivnkIPpm7sgPiBreXV1ZGVuXCA7CivlrqLoqp4gPiBreWFrdWdvXCA7CivmnpXpoK0gPiBjaGludG91XCA7CivoiLnluYUgPiBzZW5wdWt1XCA7CivmpbXlt6YgPiBreW9rdXNhXCA7Civnk6LnrqogPiBoeW91dGFuXCA7CivoirjkuosgPiBnZWlnb3RvXCA7CivmpI3mqLkgPiBzaG9rdWp1XCA7Civlrp/oqbEgPiBqaXRzdXdhXCA7Civnlr7mgqMgPiBzaGlra2FuXCA7CivpqqjmoLwgPiBrb2trYWt1XCA7CivmoYPoibIgPiBtb21vaXJvXCA7CivmpJzmoKEgPiBrZW5neW91XCA7Civlrp/oqLwgPiBqaXNzaG91XCA7Civku4rpoIMgPiBpbWFnb3JvXCA7CivohbDnl5sgPiB5b3V0c3V1XCA7CivlsI/nspIgPiBrb3RzdWJ1XCA7Civmpa3luKsgPiB3YXphc2hpXCA7CivoirHku6MgPiBoYW5hZGFpXCA7CivlrqLoprMgPiBreWFra2FuXCA7Civkv5fnnLwgPiB6b2t1Z2FuXCA7Civkvb/oh6MgPiBzaGlzaGluXCA7Civlr5Loj4ogPiBrYW5naWt1XCA7CivkvJHovIkgPiBreXV1c2FpXCA7CivlsLvnm64gPiBzaGlyaW1lXCA7CivlrproqZUgPiB0ZWloeW91XCA7CivkvJHou6IgPiBreXV1dGVuXCA7Civnl4XlvIogPiBieW91aGVpXCA7CivlgrflrrMgPiBzaG91Z2FpXCA7CivlrproqLMgPiB0ZWl5YWt1XCA7Civou43lm70gPiBndW5rb2t1XCA7CivprZTlipsgPiBtYXJ5b2t1XCA7CivmpJzmnZ8gPiBrZW5zb2t1XCA7CivlsYXnlZkgPiBreW9yeXV1XCA7Civou73lgrcgPiBrZWlzaG91XCA7CivppKjplbcgPiBrYW5jaG91XCA7Civlsqnmo5ogPiBpd2FkYW5hXCA7Civku4/pmYAgPiBidXRzdWRhXCA7CivlrrPomasgPiBnYWljaHV1XCA7CivlsLHnnKAgPiBzaHV1bWluXCA7CivohIfog70gPiB3YWtpbm91XCA7CivlhITlhYYgPiBva3VjaG91XCA7Civnl4Xlt6MgPiBieW91c291XCA7CivotaTohpogPiBha2FoYWRhXCA7Civos57ph5EgPiBzaG91a2luXCA7CivlsI/nq6UgPiBrb3dhcHBhXCA7Civku4/plqMgPiBidWtrYWt1XCA7Civkv5DnmbogPiByaWhhdHN1XCA7Civku4/plpMgPiBidXRzdW1hXCA7CivotaTohbkgPiBha2FoYXJhXCA7Civou73kv6EgPiBrZWlzaGluXCA7CivohY7nn7MgPiBqaW5zZWtpXCA7Civls7bluoEgPiB0b3VjaG91XCA7Civoia/lk4EgPiByeW91aGluXCA7Civkv5fnlKggPiB6b2t1eW91XCA7Civog4PooosgPiBpYnVrdXJvXCA7Civou73kvbsgPiBrZWljaG91XCA7Civls7vltrogPiBzaHVucmVpXCA7Civls7vltq4gPiBzaHVua2VuXCA7CivlubTjgIUgPiBuZW4nJ25lblwgOwor5YSS5LuPID4ganVidXRzdVwgOwor6a2F5YqbID4gbWlyeW9rdVwgOwor6auY5b6zID4ga291dG9rdVwgOwor6LK46ZaTID4ga2FzaGltYVwgOwor6IO46IeGID4ga3lvdW9rdVwgOwor6a2a5L+hID4gZ3lvc2hpblwgOwor6IWV55m9ID4gd2FucGFrdVwgOwor6LWk6IKMID4gYWthaGFkYVwgOwor6IO46IW6ID4ga3lvdXNlblwgOwor5Lqs6aKoID4ga3lvdWZ1dVwgOwor6IO46IWUID4ga3lvdWtvdVwgOwor5qW95aSpID4gcmFrdXRlblwgOwor6Imv5Y+LID4gcnlvdXl1dVwgOwor6ISx56mAID4gZGFra29rdVwgOwor54+t6ZW3ID4gaGFuY2hvdVwgOwor5Lyd6KqmID4gZGVuc2hvdVwgOwor5bCK56ewID4gc29uc2hvdVwgOwor5YGD5pyIID4gZW5nZXRzdVwgOwor5L+u54WJID4gc2h1dXJlblwgOwor5a++562WID4gdGFpc2FrdVwgOwor5bCP56S+ID4gc2hvdXNoYVwgOwor5qW95aOrID4gZ2FrdXNoaVwgOwor5YCf5qy+ID4gc2hha2thblwgOwor5qW95aOHID4gZ2FrdWRhblwgOwor5L6/55uKID4gYmVuJydla2lcIDsKK+S8muiqrSA+IGthaWRva3VcIDsKK+ajuuahtiA+IGthbicnb2tlXCA7CivotbfntZAgPiBraWtldHN1XCA7CivoiKrlrpkgPiBrb3VjaHV1XCA7CivkvY7okL0gPiB0ZWlyYWt1XCA7Civnl4XlrrMgPiBieW91Z2FpXCA7CivlgYnmlrkgPiBlcmFnYXRhXCA7Civmop/njJsgPiBreW91bW91XCA7CivnlYzmqJkgPiBrYWloeW91XCA7Civos4Ppiq0gPiBjaGluc2VuXCA7CivkvZ7oh6MgPiBuZWlzaGluXCA7CivkvZnoibIgPiB5b3Nob2t1XCA7Civpo7Lpo58gPiBpbnNob2t1XCA7Civlg5rlj4sgPiByeW91eXV1XCA7CivkvJHorJsgPiBreXV1a291XCA7Civos4PpioAgPiBjaGluZ2luXCA7Civlrabos4cgPiBnYWt1c2hpXCA7CivnlLrmsJEgPiBjaG91bWluXCA7Civlgr7lm70gPiBrZWlrb2t1XCA7CivkuqTpn78gPiBrb3VreW91XCA7Civoia/liaQgPiByeW91emFpXCA7Civkv4LnlZkgPiBrZWlyeXV1XCA7CivnlLfmsJcgPiBvdG9rb2dpXCA7CivlsI/nn6UgPiBzaG91Y2hpXCA7Civlr77np7AgPiB0YWlzaG91XCA7Civos4Pph5EgPiBjaGluZ2luXCA7CivmpZPlsZ4gPiBmdXV6b2t1XCA7Civog4PolqwgPiBpZ3VzdXJpXCA7Civku5npg7cgPiBzZW5reW91XCA7CivmoJfoibIgPiBrdXJpaXJvXCA7Civos7zoqq0gPiBrb3Vkb2t1XCA7Civou4rlipsgPiBzaGFyaWtpXCA7Civmpb3lm6MgPiBnYWt1ZGFuXCA7Civoh6XmiYAgPiBmdXNoaWRvXCA7CivkvZPoh60gPiB0YWlzaHV1XCA7CivppqzohJogPiBiYWt5YWt1XCA7Civkvo3nq4sgPiBqaXJpdHN1XCA7Civlr7jnp5IgPiBzdW5ieW91XCA7CivnlLLmrrsgPiBrb3VrYWt1XCA7CivotbfnrYYgPiBraWhpdHN1XCA7Civpp5DnsbMgPiBjaHV1YmVpXCA7Civkub7prZogPiBob3NoaXVvXCA7Civoh7PmgKUgPiBzaGlreXV1XCA7Civogp3opoEgPiBrYW4nJ3lvdVwgOwor55Sf5ravID4gc2hvdWdhaVwgOwor5Lya6KGGID4ga2Fpc2h1dVwgOwor5qOu5p6XID4gc2hpbnJpblwgOwor6LWk57WEID4gYWthZ3VtaVwgOwor6Lui5Lu7ID4gdGVuJyduaW5cIDsKK+agvOe0jSA+IGtha3Vub3VcIDsKK+mrmOWwmiA+IGtvdXNob3VcIDsKK+Wwj+eZqiA+IGtvc2hha3VcIDsKK+i1pOe0mSA+IGFrYWdhbWlcIDsKK+mpmuatjiA+IGt5b3V0YW5cIDsKK+i1t+eriyA+IGtpcml0c3VcIDsKK+WCt+WYhiA+IHNob3V0YW5cIDsKK+S9nOiAhSA+IHNha3VzaGFcIDsKK+mjn+mkjCA+IHNob2t1amlcIDsKK+iFuOa6gCA+IGNob3VtYW5cIDsKK+S7suiytyA+IG5ha2FnYWlcIDsKK+eXheWkiSA+IGJ5b3VoZW5cIDsKK+WDpeWAliA+IGd5b3Vrb3VcIDsKK+izoOiyrCA+IGJhaXNla2lcIDsKK+WDp+S/lyA+IHNvdXpva3VcIDsKK+iznuizmyA+IHNob3VzYW5cIDsKK+WwiueahyA+IHNvbicnbm91XCA7CivnjoTpuqYgPiBnZW5iYWt1XCA7CivohIjnrqEgPiBteWFra2FuXCA7CivmnqLou7ggPiBzdXVqaWt1XCA7CivoiJ7lp6sgPiBtYWloaW1lXCA7Civnl5vlmIYgPiB0c3V1dGFuXCA7CivlsKjniqwgPiBtdWt1aW51XCA7Civmo5/mooEgPiB0b3VyeW91XCA7CivlrrbogbcgPiBrYXNob2t1XCA7CivmoLnnspIgPiBrb25yeXV1XCA7CivlsaDmrrogPiB0b3NhdHN1XCA7Civos4rou40gPiB6b2t1Z3VuXCA7CivohbjmtrIgPiBjaG91ZWtpXCA7CivoiI7lroUgPiBzaGF0YWt1XCA7Civlrrjnv7AgPiBzaGlua2FuXCA7Civouqvlkb0gPiBzaGlubWVpXCA7CivnlqvlraYgPiBla2lnYWt1XCA7CivlsI/nlLogPiBrb21hY2hpXCA7CivlsI/nlLcgPiBrb290b2tvXCA7CivohbDmua8gPiBrb3NoaXl1XCA7CivlsITnmoQgPiBzaGF0ZWtpXCA7CivlsI/nlKggPiBzaG91eW91XCA7CivohLPnl4cgPiBub3VzaG91XCA7CivohLPnl4UgPiBub3VieW91XCA7CivlsI/nlJ8gPiBzaG91c2VpXCA7Civoh6rlvosgPiBqaXJpdHN1XCA7CivlsbHmpJIgPiBzYW5zaG91XCA7CivkvbPnr4AgPiBrYXNldHN1XCA7Civkv67ms5UgPiBzaHV1aG91XCA7Civku4rpgLEgPiBrb25zaHV1XCA7CivogZbpgLEgPiBzZWlzaHV1XCA7CivkvY7nv7wgPiB0ZWl5b2t1XCA7CivoibLkuosgPiBpcm9nb3RvXCA7Civmn7/oibIgPiBrYWtpaXJvXCA7CivnkrDnpIEgPiBrYW5zaG91XCA7CivnlLDmpb0gPiBkZW5nYWt1XCA7Civku4rov4QgPiBpbWFtYWRlXCA7Civkub7po68gPiBob3NoaWlpXCA7Civoia/kurogPiByeW91amluXCA7Civlrr/nuIEgPiBzaHVrdWVuXCA7Civoh6PlvpMgPiBzaGluanV1XCA7CivlgbTlsIQgPiBzb2t1c2hhXCA7CivohbnmsLQgPiBmdWt1c3VpXCA7Civoh6jluoogPiByaW5zaG91XCA7Civot4vmuIkgPiBiYXNzaG91XCA7CivkvrXniq8gPiBzaGlucGFuXCA7Civlr77nl4cgPiB0YWlzaG91XCA7CivkubPpppkgPiBueXV1a291XCA7Civku67oqqwgPiBrYXNldHN1XCA7CivlsILnlKggPiBzZW4nJ3lvdVwgOwor55S65p2RID4gY2hvdXNvblwgOwor5YCS5pyoID4gdG91Ym9rdVwgOwor5YGP5b+DID4gaGVuc2hpblwgOwor6Ieo5bitID4gcmluc2VraVwgOwor6LOe6KmeID4gc2hvdXNoaVwgOwor5p626KitID4ga2FzZXRzdVwgOwor5L+u5q2jID4gc2h1dXNlaVwgOwor5pyo6a2aID4gbW9rdWd5b1wgOwor6IG06KybID4gY2hvdWtvdVwgOwor5YKs5ZGKID4gc2Fpa29rdVwgOwor6auY5aOwID4gdGFrYWdvZVwgOwor5L2156ewID4gaGVpc2hvdVwgOwor5Lqk6YyvID4ga291c2FrdVwgOwor5qaC5YmHID4gZ2Fpc29rdVwgOwor5Luu6KitID4ga2FzZXRzdVwgOwor6ICQ6ZyHID4gdGFpc2hpblwgOwor5qCE6IG3ID4gZWlzaG9rdVwgOwor5LuP6LehID4gYnVzc2VraVwgOwor5L6b55SoID4ga3lvdXlvdVwgOwor6LKr6YCaID4ga2FudHN1dVwgOwor6IGW6LmfID4gc2Vpc2VraVwgOwor5bO25Zu9ID4gdG91Z29rdVwgOwor5bCK546LID4gc29uJydub3VcIDsKK+eUo+alrSA+IHNhbmd5b3VcIDsKK+iFsOawlyA+IGtvc2hpa2VcIDsKK+i7iuS4rSA+IHNoYWNodXVcIDsKK+S7sOimliA+IGd5b3VzaGlcIDsKK+WCt+WJtSA+IHNob3Vzb3VcIDsKK+i7iuS4oSA+IHNoYXJ5b3VcIDsKK+mjn+mWkyA+IHNob2trYW5cIDsKK+S7ruimqiA+IGthcmlveWFcIDsKK+iCsuiLlyA+IGlrdWJ5b3VcIDsKK+WumOiDvSA+IGthbicnbm91XCA7Civos4PosrggPiBjaGludGFpXCA7CivlsqHmg5ogPiBva2Fib3JlXCA7CivogZbot6EgPiBzZWlzZWtpXCA7Civmnp3osYYgPiBlZGFtYW1lXCA7CivmnZHplbcgPiBzb25jaG91XCA7CivogbToqLEgPiBjaG91a3lvXCA7CivmnJ3prq4gPiBjaG91c2VuXCA7CivnlJ/mpa0gPiBuYXJpd2FpXCA7Civku6Poqq0gPiBkYWlkb2t1XCA7Civnj77osaEgPiBnZW5zaG91XCA7CivkubPpoK0gPiBueXV1dG91XCA7CivlsI/niYcgPiBzaG91aGVuXCA7Civlrp/nv5IgPiBqaXNzaHV1XCA7Civku7Loo4EgPiBjaHV1c2FpXCA7CivlsI/niKogPiBrb2R6dW1lXCA7Civnlo7lr4YgPiBzb21pdHN1XCA7CivogbTop6MgPiBjaG91a2FpXCA7CivosqfovrIgPiBoaW4nJ25vdVwgOwor5Luj6Ki6ID4gZGFpc2hpblwgOwor6IG06KaWID4gY2hvdXNoaVwgOwor6IW65qeYID4gc2VuJyd5b3VcIDsKK+WxnuagvCA+IHpva2tha3VcIDsKK+WCt+WFtSA+IHNob3VoZWlcIDsKK+alveWFuCA+IGdha3V0ZW5cIDsKK+eUu+aVsCA+IGtha3VzdXVcIDsKK+S9jue0miA+IHRlaWt5dXVcIDsKK+iGuuaHsiA+IHlvdWNob3VcIDsKK+WAjeaXpyA+IGJhaWt5dXVcIDsKK+mrmOWcpyA+IGtvdWF0c3VcIDsKK+iCneiRiSA+IGthbicneW91XCA7CivnlLrmlL8gPiBjaG91c2VpXCA7Civkv67mpa0gPiBzaHVneW91XCA7CivmpbXliJEgPiBreW9ra2VpXCA7CivlsqnluoogPiBnYW5zaG91XCA7Civlr67nlJ8gPiByeW91c2VpXCA7Civnl4XlkI0gPiBieW91bWVpXCA7CivmnbHpgLIgPiB0b3VzaGluXCA7CivmoKHnq6AgPiBrb3VzaG91XCA7Civmorbmo5IgPiBrYWppYm91XCA7CivmpbXlhqAgPiBreW9ra2FuXCA7CivmpbXlhoUgPiBnb2t1bmFpXCA7Civnl4Xlj4sgPiBieW91eXV1XCA7CivpqrDlrZAgPiBzYWlrb3JvXCA7CivlsqHlvJUgPiBva2FoaWtpXCA7CivlgrTlg4IgPiBzZW11c2hpXCA7CivlgZzlraYgPiB0ZWlnYWt1XCA7CivmnLHpnpggPiBzaHV6YXlhXCA7Civlrp/nuL4gPiBqaXNzZWtpXCA7Civnl4Xljp8gPiBieW91Z2VuXCA7CivmpbXlhYkgPiBreW9ra291XCA7CivkuqjpgJogPiBrb3V0c3V1XCA7CivmnKzpoJggPiBob25yeW91XCA7Civkurrot6EgPiBoaXRvYXRvXCA7Civku5joqK0gPiBmdXNldHN1XCA7CivpppbntJogPiBzaHVreXV1XCA7CivkvpvniakgPiBrdW1vdHN1XCA7Civls7vljrMgPiBzaHVuZ2VuXCA7CivosaHpmZAgPiBzaG91Z2VuXCA7CivouqvkvZMgPiBzaGludGFpXCA7Civoh7PlppkgPiBzaGlteW91XCA7CivnlJjmoJcgPiBhbWFndXJpXCA7Civku5XoqLMgPiBzaGl3YWtlXCA7CivoiIjlm70gPiBrb3Vrb2t1XCA7CivkuqTpgJogPiBrb3V0c3V1XCA7Civouo3li5UgPiB5YWt1ZG91XCA7Civku6PooaggPiBkYWloeW91XCA7CivkuqLpgLIgPiBrb3VzaGluXCA7Civnl4Xli6IgPiBieW91c2VpXCA7Civmo7Lmga8gPiBzZWlzb2t1XCA7Civog4zntIQgPiBoYWl5YWt1XCA7CivlrrnnqY0gPiB5b3VzZWtpXCA7Civku4/oqp4gPiBidXRzdWdvXCA7CivohbDmpI4gPiB5b3V0c3VpXCA7Civouqvku6MgPiBzaGluZGFpXCA7Civnjonpn7MgPiBneW9rdW9uXCA7Civlr5Pnm64gPiBndXVtb2t1XCA7CivmnaXpgLEgPiByYWlzaHV1XCA7CivoiLnlgbQgPiBzZW5zb2t1XCA7CivmnKzpnIcgPiBob25zaGluXCA7CivkvZPnqY0gPiB0YWlzZWtpXCA7CivmnKjpnbQgPiBraWd1dHN1XCA7CivpppnnrrEgPiBrb3ViYWtvXCA7CivkvJHoiKogPiBreXV1a291XCA7CivmnJ3poqggPiBhc2FrYXplXCA7Civlr77nhacgPiB0YWlzaG91XCA7CivoiLflgbQgPiBnZW5zb2t1XCA7CivmoLnnmKQgPiBrb25yeXV1XCA7CivlsqnlsbEgPiBpd2F5YW1hXCA7Civmpb3kurogPiBnYWt1amluXCA7CivosYbpoZ4gPiBtYW1lcnVpXCA7CivlrpjntaYgPiBrYW5reXV1XCA7CivnjonpnLIgPiBneW9rdXJvXCA7CivouqvkuIogPiBzaGluam91XCA7CivoiLnkvr8gPiBmdW5hYmluXCA7Civlgqzkv4MgPiBzYWlzb2t1XCA7CivnlJ/mlrAgPiBzZWlzaGluXCA7CivohLPmvL8gPiBub3VzaG91XCA7CivohLnmuoAgPiBjaG91bWFuXCA7CivotoXnhLYgPiBjaG91emVuXCA7CivkvJ3nv5IgPiBkZW5zaHV1XCA7CivnlZnlubQgPiByeXV1bmVuXCA7CivotIXogokgPiB6ZWluaWt1XCA7Civpq5jlj7AgPiB0YWthZGFpXCA7CivlsqnlrqQgPiBpd2FtdXJvXCA7Civkv7XmlbAgPiBoeW91c3V1XCA7CivmnJTpoqggPiBzYWt1ZnV1XCA7CivlraboirggPiBnYWt1Z2VpXCA7Civpppbnq6AgPiBzaHVzaG91XCA7CivnlLfmiYsgPiBvdG9rb2RlXCA7CivmooXmr5IgPiBiYWlkb2t1XCA7CivmpI3lrZcgPiBzaG9rdWppXCA7CivmnJ3pnYQgPiBhc2Ftb3lhXCA7CivlsYjmnI0gPiBrdXBwdWt1XCA7CivmnJ3pnKcgPiBhc2FnaXJpXCA7Civkv6HmnaEgPiBzaGluam91XCA7Civnv7DplbcgPiBrYW5jaG91XCA7CivogozoibIgPiBoYWRhaXJvXCA7CivlraboiI4gPiBnYWt1c2hhXCA7Civkv6HmnJsgPiBzaGluYm91XCA7Civkv67mlbQgPiBzaHV1c2VpXCA7Civkv6Hmm7ggPiBzaGluc2hvXCA7CivmpbXkuIogPiBnb2t1am91XCA7Civnl4flgJkgPiBzaG91a291XCA7CivkvJHogJUgPiBreXV1a291XCA7CivoiLnkuK0gPiBzZW5jaHV1XCA7CivkvLjnrYsgPiBzaGlua2luXCA7CivogonoibIgPiBuaWt1aXJvXCA7Civkv67mlLkgPiBzaHV1a2FpXCA7Civlsrjlo4EgPiBnYW5wZWtpXCA7CivlrozntI0gPiBrYW4nJ25vdVwgOwor5Lq66Ki8ID4gbmluc2hvdVwgOwor5Lm+6YWqID4ga2FucmFrdVwgOwor55eH5L6LID4gc2hvdXJlaVwgOwor55Wl5a2XID4gcnlha3VqaVwgOwor6Iao5by1ID4gYm91Y2hvdVwgOwor5bGL5pW3ID4geWFzaGlraVwgOwor5L+u5pKwID4gc2h1dXNlblwgOwor5LyP572qID4gZnVrdXphaVwgOwor5a+G55S7ID4gbWl0c3VnYVwgOwor55eF5L2TID4gYnlvdXRhaVwgOwor6ICD6YePID4ga291cnlvdVwgOwor6aSh6JycID4gYW5taXRzdVwgOwor5a6Y56qvID4ga2FuJyd5b3VcIDsKK+S7lOiZqyA+IHNoaWNodXVcIDsKK+iAveiqrSA+IHRhbmRva3VcIDsKK+Wwj+awtCA+IHNob3VzdWlcIDsKK+iCieiFqyA+IG5pa3VzaHVcIDsKK+S/l+abuCA+IHpva3VzaG9cIDsKK+iAgemGnCA+IHJvdXNodXVcIDsKK+mpleaFoiA+IGt5b3VtYW5cIDsKK+WAlOW8tyA+IGt1a2t5b3VcIDsKK+eXheS6uiA+IGJ5b3VuaW5cIDsKK+WBj+WftyA+IGhlbnNodXVcIDsKK+S/juadvyA+IG1hbmFpdGFcIDsKK+S5s+mFuCA+IG55dXVzYW5cIDsKK+WtpuiAhSA+IGdha3VzaGFcIDsKK+WusOebuCA+IHNhaXNob3VcIDsKK+S4u+mgmCA+IHNodXJ5b3VcIDsKK+WyqeWjgSA+IGdhbnBla2lcIDsKK+S9r+eLgiA+IHlvdWt5b3VcIDsKK+S4uOmhlCA+IG1hcnVnYW9cIDsKK+abs+mmrCA+IGhpa2l1bWFcIDsKK+Wvvua1gSA+IHRhaXJ5dXVcIDsKK+mhlOm7kiA+IGdhbmd1cm9cIDsKK+S8j+e4qyA+IGZ1c2VudWlcIDsKK+absummrCA+IGt5b2t1YmFcIDsKK+i1pOeHkCA+IHNla2lyaW5cIDsKK+WCkeS9nCA+IGtlc3Nha3VcIDsKK+eRnuelpSA+IHp1aXNob3VcIDsKK+mpleaBoyA+IGt5b3VzaGlcIDsKK+S8j+e3miA+IGZ1a3VzZW5cIDsKK+WCgOWEoSA+IGt1Z3V0c3VcIDsKK+ePjeirhyA+IGNoaW5kYW5cIDsKK+S/l+aWhyA+IHpva3VidW5cIDsKK+S6pOiqrSA+IGtvdWRva3VcIDsKK+WAkuW5lSA+IHRvdWJha3VcIDsKK+WutueVnCA+IGthY2hpa3VcIDsKK+S4remjryA+IGNodXVoYW5cIDsKK+eQg+iPjCA+IGt5dXVraW5cIDsKK+mmluebuCA+IHNodXNob3VcIDsKK+S4remiqCA+IGNodXVidXVcIDsKK+miqOmOriA+IGZ1dWNoaW5cIDsKK+WAn+WxiyA+IHNoYWt1eWFcIDsKK+WztuS4rSA+IHRvdWNodXVcIDsKK+WuneefsyA+IGhvdXNla2lcIDsKK+iDhuefsyA+IHRhbnNla2lcIDsKK+WxseW4qyA+IHlhbWFzaGlcIDsKK+mjn+iyuyA+IHNob2t1aGlcIDsKK+S6pOinkiA+IGtvdWtha3VcIDsKK+acqOmHkSA+IG1va3VraW5cIDsKK+WumuefsyA+IGpvdXNla2lcIDsKK+WxnuaApyA+IHpva3VzZWlcIDsKK+iEs+apiyA+IG5vdWt5b3VcIDsKK+S4remghSA+IGNodXVrb3VcIDsKK+adpeiouiA+IHJhaXNoaW5cIDsKK+eQg+iMjiA+IGt5dXVrZWlcIDsKK+WxseW2vSA+IHNhbmdha3VcIDsKK+iCqeeroCA+IGtlbnNob3VcIDsKK+eUn+aBryA+IHNlaXNva3VcIDsKK+S+v+acjSA+IGJlbnB1a3VcIDsKK+S6oeimqiA+IGJvdXNoaW5cIDsKK+WBpeWLnSA+IGtlbnNob3VcIDsKK+S7leiNiSA+IHNoaWd1c2FcIDsKK+S5nemHjSA+IGtva29ub2VcIDsKK+S/iuaVjyA+IHNodW5iaW5cIDsKK+adpeilsiA+IHJhaXNodXVcIDsKK+S4u+mVtyA+IHNodWNob3VcIDsKK+i4iuWtlyA+IG9kb3JpamlcIDsKK+WxseWzoSA+IHlhbWFrYWlcIDsKK+i1pOa9riA+IGFrYXNoaW9cIDsKK+acgOmVtyA+IHNhaWNob3VcIDsKK+Wtpue0miA+IGdha2t5dXVcIDsKK+iBtOiBniA+IGNob3Vtb25cIDsKK+WxseWysyA+IHNhbmdha3VcIDsKK+eUn+W+lyA+IHNlaXRva3VcIDsKK+eVpeWbsyA+IHJ5YWt1enVcIDsKK+S4oemgrSA+IHJ5b3V0b3VcIDsKK+WwmuabtCA+IG5hb3NhcmFcIDsKK+Wxj+aBryA+IGhlaXNva3VcIDsKK+S4remaiiA+IGNodXV0YWlcIDsKK+acqOmAoCA+IG1va3V6b3VcIDsKK+S8neelqCA+IGRlbnB5b3VcIDsKK+acnemFkiA+IGFzYXpha2VcIDsKK+WuueeJqSA+IGlyZW1vbm9cIDsKK+eUu+WumiA+IGtha3V0ZWlcIDsKK+WvgueEtiA+IHNla2l6ZW5cIDsKK+eUmOW/gyA+IGthbnNoaW5cIDsKK+WwgualrSA+IHNlbmd5b3VcIDsKK+i3oeW9oiA+IGF0b2thdGFcIDsKK+WBtuS9nCA+IGd1dXNha3VcIDsKK+abuemVtyA+IHNvdWNob3VcIDsKK+Wwj+afhCA+IGtvZHp1a2FcIDsKK+Wtnee1jCA+IGtvdWt5b3VcIDsKK+iBtOe9qiA+IGNob3V6YWlcIDsKK+S9meeGsSA+IHlvbmV0c3VcIDsKK+WxseWuuSA+IHNhbicneW91XCA7CivkuKHpnaIgPiByeW91bWVuXCA7Civkv6HmhJsgPiBzaGluJydhaVwgOwor5L+X5omNID4gem9rdXNhaVwgOwor5a2Y57aaID4gc29uem9rdVwgOwor5pyb6YO3ID4gYm91a3lvdVwgOwor54yb6bOlID4gbW91Y2hvdVwgOwor5a6d55SfID4gaG91c2hvdVwgOwor576O6auqID4gYmloYXRzdVwgOwor5bCa5pepID4gc2hvdXNvdVwgOwor5Lit6ZaTID4gY2h1dWthblwgOwor5LiA6auqID4gaXBwYXRzdVwgOwor5Luy57aZID4gY2h1dWtlaVwgOwor5bCG5qChID4gc2hvdWtvdVwgOwor5a6J552AID4gYW5jaGFrdVwgOwor5Lih6ZuEID4gcnlvdXl1dVwgOwor5a2j56+AID4ga2lzZXRzdVwgOwor5LqJ6KifID4gc291c2hvdVwgOwor5LqM6KaqID4gZnV0YW95YVwgOwor6LGa6LazID4gdG9uc29rdVwgOwor5a6Y55SoID4ga2FuJyd5b3VcIDsKK+S9meeDiCA+IHlvcmV0c3VcIDsKK+advuiRiSA+IG1hdHN1YmFcIDsKK+WuieebtCA+IGFuY2hva3VcIDsKK+miqOmAnyA+IGZ1dXNva3VcIDsKK+mhjumrrSA+IGFnb2hpZ2VcIDsKK+e/vOizmyA+IHlva3VzYW5cIDsKK+WxnuWztiA+IHpva3V0b3VcIDsKK+iCuueXhSA+IGhhaWJ5b3VcIDsKK+Wwj+aZuiA+IHNob3VjaGlcIDsKK+Wun+eQhiA+IGppdHN1cmlcIDsKK+Wwj+aZryA+IHNob3VrZWlcIDsKK+WtpuerpSA+IGdha3Vkb3VcIDsKK+aji+WuoiA+IGtpa3lha3VcIDsKK+acq+i3ryA+IG1hdHN1cm9cIDsKK+S+teaUuyA+IHNoaW5rb3VcIDsKK+WwhuadpSA+IHNob3VyYWlcIDsKK+S6huinoyA+IHJ5b3VrYWlcIDsKK+eVkeWcsCA+IGhhdGFjaGlcIDsKK+S/oeW/gyA+IHNoaW5qaW5cIDsKK+WvvuagvCA+IHRhaWtha3VcIDsKK+WxiOW8tyA+IGt1a2t5b3VcIDsKK+WtpueqkyA+IGdha3Vzb3VcIDsKK+ain+aCqiA+IGt5b3Vha3VcIDsKK+eUt+WovCA+IGRhbnNob3VcIDsKK+WtpOeriyA+IGtvcml0c3VcIDsKK+iFueW4ryA+IGZ1a3V0YWlcIDsKK+WtpueptiA+IGdha2t5dXVcIDsKK+S/l+aDhSA+IHpva3Vqb3VcIDsKK+S6huimiyA+IHJ5b3VrZW5cIDsKK+S4uOmLvCA+IG1hcnVrb3VcIDsKK+S/iuaJjSA+IHNodW5zYWlcIDsKK+S/l+aCqiA+IHpva3Vha3VcIDsKK+iBt+e1hCA+IHNob2t1c29cIDsKK+Wvkua1gSA+IGthbnJ5dXVcIDsKK+e+pOmbhiA+IGd1bnNodXVcIDsKK+e+pOmbhCA+IGd1bicneXV1XCA7CivlsbHlp6UgPiB5YW1hdWJhXCA7CivkuIrpoY4gPiBqb3VnYWt1XCA7Civlr53mrr8gPiBzaGluZGVuXCA7CivlsJHmlbAgPiBzaG91c3V1XCA7CivnlLflpr4gPiBkYW5zaG91XCA7CivlsI/mlo4gPiBzaG91c2FpXCA7CivohILmsJcgPiBhYnVyYWtlXCA7CivlsILmnIkgPiBzZW4nJ3l1dVwgOwor5bC95b+gID4gamluY2h1dVwgOwor5bCP5pWwID4gc2hvdXN1dVwgOwor5p2h6JmrID4gam91Y2h1dVwgOwor55Wl5Y+ZID4gcnlha3Vqb1wgOwor576O6aOfID4gYmlzaG9rdVwgOwor5bGx5aWlID4geWFtYW9rdVwgOwor54+N6JS1ID4gY2hpbnpvdVwgOwor5bCK5pePID4gc29uem9rdVwgOwor5L+X5b+1ID4gem9rdW5lblwgOwor5qC85q61ID4ga2FrdWRhblwgOwor5LiA6aOfID4gaXNzaG9rdVwgOwor5bCG5pifID4gc2hvdXNlaVwgOwor6IGv57WhID4gcmVucmFrdVwgOwor5a2m56WtID4gZ2FrdXNhaVwgOwor542E6ZaAID4gZ29rdW1vblwgOwor5L+D5oiQID4gc29rdXNlaVwgOwor6ICD6Ki8ID4ga291c2hvdVwgOwor5a6M55KnID4ga2FucGVraVwgOwor55Sf5a6zID4gc2hvdWdhaVwgOwor5Lmx6Kq/ID4gcmFuY2hvdVwgOwor5Lq66IejID4gamluc2hpblwgOwor5LiA6aGeID4gaWNoaXJ1aVwgOwor5Lmx6KqtID4gcmFuZG9rdVwgOwor5LqA6KOCID4ga2lyZXRzdVwgOwor6IO45rC0ID4ga3lvdXN1aVwgOwor5p6g57eaID4gd2FrdXNlblwgOwor5LyR55ygID4ga3l1dW1pblwgOwor6Ieo5LyRID4gcmlua3l1dVwgOwor5LuE6IGeID4gc29rdWJ1blwgOwor5L2O5r2uID4gdGVpY2hvdVwgOwor5LyP55uuID4gZnVzaGltZVwgOwor5LiH6ZujID4gYmFuJyduYW5cIDsKK+mpleWloiA+IGt5b3VzaGFcIDsKK+WxjuWwvyA+IHNoaW55b3VcIDsKK+S4iumZuCA+IGpvdXJpa3VcIDsKK+WwuuW6piA+IHNoYWt1ZG9cIDsKK+izpOensCA+IHNlbnNob3VcIDsKK+S4h+manCA+IGJhbnNob3VcIDsKK+acgOmBqSA+IHNhaXRla2lcIDsKK+WwseW9uSA+IHNodXVla2lcIDsKK+S4gOmdoiA+IGljaGltZW5cIDsKK+WvvuaVtSA+IHRhaXRla2lcIDsKK+acneiyoiA+IGNob3Vrb3VcIDsKK+S7j+e4gSA+IGJ1dHN1ZW5cIDsKK+S7lee1hCA+IHNoaWt1bWlcIDsKK+ahkOadkCA+IGtpcml6YWlcIDsKK+WwhOaSgyA+IHNoYWdla2lcIDsKK+agoeazqCA+IGtvdWNodXVcIDsKK+S4gOmbqCA+IGhpdG9hbWVcIDsKK+afseeKtiA+IGNodXVqb3VcIDsKK+S9nOazgSA+IHNha2t5b3VcIDsKK+S4gOmboyA+IGljaGluYW5cIDsKK+WxseWcsCA+IHlhbWFjaGlcIDsKK+S/iuW9piA+IHNodW5nZW5cIDsKK+iDtOassiA+IGRvdXlva3VcIDsKK+mhjemdoiA+IGdha3VtZW5cIDsKK+S4iumVtyA+IGpvdWNob3VcIDsKK+ePjeiKuCA+IGNoaW5nZWlcIDsKK+ajruWOsyA+IHNoaW5nZW5cIDsKK+eUt+WbmiA+IGRhbnNodXVcIDsKK+air+WtkCA+IGhhc2hpZ29cIDsKK+aelee1tSA+IG1ha3VyYWVcIDsKK+eVquWCmCA+IGJhbmdhc2FcIDsKK+S4gOmZoyA+IGljaGlqaW5cIDsKK+S7j+e1jCA+IGJ1a2t5b3VcIDsKK+mgrOmrrSA+IGhvb2hpZ2VcIDsKK+acquiorSA+IG1pc2V0c3VcIDsKK+eVpeWEgCA+IHJ5YWt1Z2lcIDsKK+mnv+aJjSA+IHNodW5zYWlcIDsKK+iDvealvSA+IG5vdWdha3VcIDsKK+Wwj+aJjSA+IHNob3VzYWlcIDsKK+S4u+i7uCA+IHNodWppa3VcIDsKK+mgrOmqqCA+IGhvb2JvbmVcIDsKK+S5seihjCA+IHJhbmd5b3VcIDsKK+WrieimliA+IHNoaXNzaGlcIDsKK+Wwj+aIkCA+IHNob3VzZWlcIDsKK+iCieecvCA+IG5pa3VnYW5cIDsKK+S4remBkyA+IGNodXVkb3VcIDsKK+WwkeaGqSA+IHNob3VrZWlcIDsKK+Wuoua8lCA+IGt5YWt1ZW5cIDsKK+WujOeGnyA+IGthbmp1a3VcIDsKK+S4gOmWgCA+IGljaGltb25cIDsKK+aal+mssSA+IGFuJyd1dHN1XCA7CivlsI/mhqkgPiBzaG91a2VpXCA7CivkuK3pgIAgPiBjaHV1dGFpXCA7CivmpI3ku5ggPiB1ZXRzdWtlXCA7CivnkIbnqp8gPiByaWt1dHN1XCA7Civlrp/mvJQgPiBqaXRzdWVuXCA7Civkv67lpb0gPiBzaHV1a291XCA7CivlsLzlr7ogPiBhbWFkZXJhXCA7CivkuK3ovrIgPiBjaHV1bm91XCA7CivmnZHokL0gPiBzb25yYWt1XCA7CivmnKvoo5QgPiBtYXRzdWVpXCA7CivlsLrlr7ggPiBzZWtpc3VuXCA7CivpqZrlmIYgPiBreW91dGFuXCA7CivmoqLlrZAgPiBzaG91c2hpXCA7Civlr7jmj48gPiBzdW5ieW91XCA7CivmnKjoo70gPiBtb2t1c2VpXCA7CivkvZfmrYwgPiB3YWJpdXRhXCA7CivkuKbpgLIgPiBoZWlzaGluXCA7Civkv67lo6sgPiBzaHV1c2hpXCA7CivpoqjoqZUgPiBmdXVoeW91XCA7CivnlarkurogPiBiYW4nJ25pblwgOwor5a6z5q+SID4gZ2FpZG9rdVwgOwor5a2m55SfID4gZ2FrdXNlaVwgOwor5pyX6KqtID4gcm91ZG9rdVwgOwor5pyX6KqmID4gcm91c2hvdVwgOwor5a6f5risID4gamlzc29rdVwgOwor55Sf5Z6jID4gaWtlZ2FraVwgOwor5bGe5Zu9ID4gem9ra29rdVwgOwor5LqU6ImyID4gZ29zaG9rdVwgOwor6LWk5pytID4gYWthZnVkYVwgOwor5p2/57egID4gaXRhamltZVwgOwor54+N6IGeID4gY2hpbmJ1blwgOwor55S65ZCNID4gY2hvdW1laVwgOwor5pyd6KaLID4gY2hvdWtlblwgOwor5pqu6ZuqID4gYm9zZXRzdVwgOwor5LuV56iuID4gc2hpZ3VzYVwgOwor5L2z5pyIID4ga2FnZXRzdVwgOwor6IKJ55WMID4gbmlrdWthaVwgOwor5a6u5q6/ID4ga3l1dWRlblwgOwor5p2l6IG0ID4gcmFpY2hvdVwgOwor6aCt6aCYID4gdG91cnlvdVwgOwor5Lu755SoID4gbmluJyd5b3VcIDsKK+iDuOadvyA+IG11bmFpdGFcIDsKK+S/oeWliSA+IHNoaW5wb3VcIDsKK+aik+WuriA+IHNoaWt5dXVcIDsKK+adv+e0mSA+IGl0YWdhbWlcIDsKK+mgremggiA+IHRvdWNob3VcIDsKK+S6jOiJsiA+IG5pc2hva3VcIDsKK+mnkOaUryA+IGNodXVzaGlcIDsKK+Wwj+W+hCA+IHNob3VrZWlcIDsKK+absui3ryA+IGt5b2t1cm9cIDsKK+WwkeW8nyA+IHNob3V0ZWlcIDsKK+S4oei8qiA+IHJ5b3VyaW5cIDsKK+acqOidiyA+IG1va3Vyb3VcIDsKK+S4gOmMoCA+IGljaGlqb3VcIDsKK+Wun+azgSA+IGppa2t5b3VcIDsKK+i1pOaXlyA+IGFrYWhhdGFcIDsKK+Wwj+W8nyA+IHNob3V0ZWlcIDsKK+S/l+WnkyA+IHpva3VzZWlcIDsKK+S/guWxniA+IGtlaXpva3VcIDsKK+S9s+aXpSA+IGthaml0c3VcIDsKK+S4oei7jSA+IHJ5b3VndW5cIDsKK+iDjuavkiA+IHRhaWRva3VcIDsKK+eVmeS7uyA+IHJ5dXVuaW5cIDsKK+acveiRiSA+IGt1Y2hpYmFcIDsKK+advuexnyA+IHNob3VyYWlcIDsKK+Wwj+W6tyA+IHNob3Vrb3VcIDsKK+WxseWLmCA+IHlhbWFrYW5cIDsKK+WwkeW5tCA+IHNob3VuZW5cIDsKK+S7iueoiyA+IGltYWhvZG9cIDsKK+mnkuaQjSA+IGtvbWFzb25cIDsKK+e9qumanCA+IHphaXNob3VcIDsKK+Wwj+W6lyA+IHNob3V0ZW5cIDsKK+Wuv+aguSA+IHNodWtrb25cIDsKK+aciOiplSA+IGdlcHB5b3VcIDsKK+e9sumVtyA+IHNob2Nob3VcIDsKK+S7iueniyA+IGtvbnNodXVcIDsKK+eUuuWItiA+IGNob3VzZWlcIDsKK+S4i+mDqCA+IHNoaW1vYmVcIDsKK+WwguW/tSA+IHNlbicnbmVuXCA7CivmnZ/nvqQgPiBzb2t1Z3VuXCA7Civlrp/mr40gPiBqaXRzdWJvXCA7CivlsILlv4MgPiBzZW5zaGluXCA7CivnjK7phawgPiBrZW5zaHV1XCA7CivkuIHph40gPiB0ZWljaG91XCA7CivkuI3pgZQgPiBmdXRhdHN1XCA7CivkuLvoqr8gPiBzaHVjaG91XCA7CivkuIvpgZQgPiBrYXRhdHN1XCA7Civpo5vohJogPiBoaWt5YWt1XCA7CivnlLrlhoUgPiBjaG91bmFpXCA7CivmnIjoposgPiB0c3VraW1pXCA7Civkv5flobUgPiB6b2t1amluXCA7CivlgIvliKUgPiBrb2JldHN1XCA7CivlsZ7lkI0gPiB6b2t1bWVpXCA7CivlgKHkva8gPiBzaG91eW91XCA7Civku5jnnYAgPiBmdWNoYWt1XCA7CivkuIrpgLIgPiBqb3VzaGluXCA7CivmnI3oo4UgPiBmdWt1c291XCA7CivkvZPmoLwgPiB0YWlrYWt1XCA7CivnjJ/pioMgPiByeW91anV1XCA7CivkuqTntaEgPiBrb3VyYWt1XCA7Civmo4TljbQgPiBraWt5YWt1XCA7CivkvZXmn5AgPiBuYW5pYm91XCA7CivmoKHmnI0gPiBrb3VmdWt1XCA7Civku5XnnYAgPiBzaGlraXNlXCA7CivmnKjolKYgPiBraWR6dXRhXCA7Civosqfnqq4gPiBoaW5reXV1XCA7CivogonniYcgPiBuaWt1aGVuXCA7CivlsIbluKUgPiBzaG91c3VpXCA7CivnlLflhKogPiBkYW4nJ3l1dVwgOwor5pyo6JOuID4gbW9rdXJlblwgOwor5puy6K2cID4ga3lva3VmdVwgOwor5qKX5aGeID4ga291c29rdVwgOwor55Sy5YaRID4ga2F0Y2h1dVwgOwor5L615a6zID4gc2hpbmdhaVwgOwor6IKl5rqcID4ga29lZGFtZVwgOwor6LOe546pID4gc2hvdWdhblwgOwor5YCf5Lq6ID4ga2FyaW5pblwgOwor5Lq656ewID4gbmluc2hvdVwgOwor5L+K5aOrID4gc2h1bnNoaVwgOwor5pyJ6KGGID4geXV1c2h1dVwgOwor5pu46KmVID4gc2hvaHlvdVwgOwor5a+G5pWZID4gbWlra3lvdVwgOwor6LGq6IW5ID4gZ291ZnVrdVwgOwor5LiA6YGTID4gaWNoaWRvdVwgOwor5LiA6YGHID4gaWNoaWd1dVwgOwor5pu46Ki8ID4gc2hvc2hvdVwgOwor6LKr56aEID4ga2Fucm9rdVwgOwor6LaK5bm0ID4gZXRzdW5lblwgOwor5LiA6YCjID4gaWNoaXJlblwgOwor55Sf5Y2UID4gc2Vpa3lvdVwgOwor5LiJ6Lu4ID4gc2FuamlrdVwgOwor6ICB6IejID4gcm91c2hpblwgOwor5p2h57SEID4gam91eWFrdVwgOwor5L+u5Y+yID4gc2h1dXNoaVwgOwor6LGG6JS1ID4gbWFtZXpvdVwgOwor5L2Z5pelID4geW9qaXRzdVwgOwor55CD55WMID4ga3l1dWthaVwgOwor5L2c5paHID4gc2FrdWJ1blwgOwor5bCP5a+SID4gc2hvdWthblwgOwor6LOe54q2ID4gc2hvdWpvdVwgOwor5p2c57W2ID4gdG96ZXRzdVwgOwor5L2O5pyoID4gdGVpYm9rdVwgOwor5bCK5bGeID4gc29uem9rdVwgOwor6aas5pa5ID4gdW1ha2F0YVwgOwor5Lmx6IejID4gcmFuc2hpblwgOwor5L2V5pmCID4gbmFuZG9raVwgOwor6LWk5omLID4gc2VraXNodVwgOwor5bCP5a6YID4gc2hvdWthblwgOwor5Lmz6IW6ID4gbnl1dXNlblwgOwor5bCR5a2QID4gc2hvdXNoaVwgOwor54yu6LqrID4ga2Vuc2hpblwgOwor5YCS5LyPID4gdG91ZnVrdVwgOwor6LOe54mMID4gc2hvdWhhaVwgOwor5puy6KejID4ga3lva2thaVwgOwor54+N562UID4gY2hpbnRvdVwgOwor5LiA6LyqID4gaWNoaXJpblwgOwor5a+15bm4ID4gY2hvdWtvdVwgOwor55S65LyaID4gY2hvdWthaVwgOwor5a6a5qWtID4gdGVpZ3lvdVwgOwor6amV5YKyID4ga3lvdWdvdVwgOwor6ama5YCSID4ga3lvdXRvdVwgOwor5bCK5a65ID4gc29uJyd5b3VcIDsKK+ePvueUqCA+IGdlbicneW91XCA7CivkuIrotrMgPiBqb3Vzb2t1XCA7Civlrpjmpa0gPiBrYW5neW91XCA7CivkuKHoq5YgPiByeW91cm9uXCA7CivkuIDou40gPiBpY2hpZ3VuXCA7CivnlLrkurogPiBjaG91bmluXCA7CivkuIrotoogPiBqb3VldHN1XCA7CivlsIrlroUgPiBzb250YWt1XCA7CivpoIXpoJggPiBrb3VyeW91XCA7CivpppnmnKggPiBrb3Vib2t1XCA7CivlsYDlk6EgPiBreW9rdWluXCA7CivlsILlsZ4gPiBzZW56b2t1XCA7CivkvZXmlYUgPiBuYW5peXVlXCA7CivkuqLnq5wgPiBrb3VyeW91XCA7CivnjJvpgLIgPiBtb3VzaGluXCA7Civku4vnl4UgPiBrYWlieW91XCA7CivlsIblrpggPiBzaG91a2FuXCA7Civku4/nlLsgPiBidXRzdWdhXCA7CivohLHlrZcgPiBkYXRzdWppXCA7CivnjJvov70gPiBtb3V0c3VpXCA7CivotIXmsqIgPiB6ZWl0YWt1XCA7Civkv6Hlj7cgPiBzaGluZ291XCA7CivnlLDkvZwgPiBkZW5zYWt1XCA7CivkvK/mpb0gPiBiYWt1cm91XCA7CivlrprmoLwgPiB0ZWlrYWt1XCA7CivlsbHkuK0gPiBzYW5jaHV1XCA7Civog7jmh5AgPiBreW91a2FpXCA7CivmnKzohbkgPiBob25wdWt1XCA7Civlr77lr6kgPiB0YWlzaGluXCA7CivkupTnr4AgPiBnb3NldHN1XCA7CivkuLvombkgPiBzaHVuaWppXCA7CivkuKboo70gPiBuYW1pc2VpXCA7CivnlJrlha0gPiBqaW5yb2t1XCA7Civni4LpqJIgPiBreW91c291XCA7CivotaTmgaUgPiBha2FoYWppXCA7CivmnLHogokgPiBzaHVuaWt1XCA7CivkvZnmjqUgPiB5b3NldHN1XCA7CivnlLLkuZkgPiBrb3VvdHN1XCA7CivkupXnrZIgPiBpZHp1dHN1XCA7CivmnKzog70gPiBob24nJ25vdVwgOwor5LiH6LGhID4gYmFuc2hvdVwgOwor55Gj5pyrID4gc2FtYXRzdVwgOwor6aaZ5paZID4ga291cnlvdVwgOwor5L+X5ZCNID4gem9rdW1laVwgOwor55CD54q2ID4ga3l1dWpvdVwgOwor6IO05oW+ID4gZG91eW9rdVwgOwor5Lq655qHID4gbmluJydub3VcIDsKK+S6uueahCA+IGppbnRla2lcIDsKK+S8j+awtCA+IGZ1a3VzdWlcIDsKK+WwkeWjriA+IHNob3Vzb3VcIDsKK+iEhuW8sSA+IHplaWpha3VcIDsKK+mlkea4hyA+IGtpa2F0c3VcIDsKK+Wwj+WkiSA+IHNob3VoZW5cIDsKK+S4u+iWrCA+IHNodXlha3VcIDsKK+izvOaxgiA+IGtvdWt5dXVcIDsKK+WumOaciSA+IGthbicneXV1XCA7CivkvJHmraIgPiBreXV1c2hpXCA7CivkuobnsKEgPiByeW91a2VuXCA7Civku5bniakgPiB0YWJ1dHN1XCA7Civnvr3omasgPiBoYW11c2hpXCA7CivnlKPkvJEgPiBzYW5reXV1XCA7Civog47mlZkgPiB0YWlreW91XCA7CivkvZzmiKYgPiBzYWt1c2VuXCA7CivkvK/mnpcgPiBiZXJ1cmluXCA7CivkvZzmiJAgPiBzYWt1c2VpXCA7Civlr5Llv4MgPiBrYW5zaGluXCA7Civni4LpoqggPiBreW91ZnV1XCA7CivlrqPmlZkgPiBzZW5reW91XCA7Civog4zmlZkgPiBoYWlreW91XCA7CivosYrog7ggPiBob3VreW91XCA7Civmn7PmnaEgPiByeXV1am91XCA7CivlsIblo6sgPiBzaG91c2hpXCA7CivnlJ/kubMgPiBzZWlueXV1XCA7Civlrpfml6ggPiBzaHV1c2hpXCA7Civkvq/lm70gPiBrb3Vrb2t1XCA7CivnvqTooYYgPiBndW5zaHV1XCA7Civlrpfml48gPiBzb3V6b2t1XCA7CivogonmsaAgPiBuaWt1Y2hpXCA7CivmopPljKAgPiBzaGlzaG91XCA7CivkuInop5IgPiBzYW5rYWt1XCA7CivkuIvoposgPiBzaGl0YW1pXCA7CivkvI/mqIsgPiBmdXNlZG9pXCA7CivogonmsYEgPiBuaWt1anV1XCA7CivkubPns5YgPiBueXV1dG91XCA7CivnjoTnv4EgPiBnZW4nJ25vdVwgOwor5LiA6KqsID4gaXNzZXRzdVwgOwor6aeQ5bGvID4gY2h1dXRvblwgOwor5bCx5Yq0ID4gc2h1dXJvdVwgOwor6IO45bqVID4ga3lvdXRlaVwgOwor5a6j5o+aID4gc2VuJyd5b3VcIDsKK+iyt+eJqSA+IGthaW1vbm9cIDsKK+mhm+imhiA+IHRlbnB1a3VcIDsKK+S/ruS6pCA+IHNodXVrb3VcIDsKK+WxheWAmSA+IGlzb3Vyb3VcIDsKK+acjeiGuiA+IGZ1a3V5b3VcIDsKK+Wuv+aAqCA+IHNodWt1ZW5cIDsKK+iAjOeriyA+IGppcml0c3VcIDsKK+aer+a4hyA+IGtva2F0c3VcIDsKK+miqOe/kiA+IGZ1dXNodXVcIDsKK+S5l+e+gyA+IGpvdWJla2lcIDsKK+WxiOS8uCA+IGt1c3NoaW5cIDsKK+S/l+WDpyA+IHpva3Vzb3VcIDsKK+mhleimgSA+IGtlbicneW91XCA7CivogofmrbMgPiBjaG91c2FpXCA7CivlsYjkvI8gPiBrdXBwdWt1XCA7CivmnKzntaYgPiBob25reXV1XCA7CivkuK3okYkgPiBjaHV1eW91XCA7Civnvarot6EgPiB6YWlzZWtpXCA7Civpo5vnpKsgPiB0c3VidXRlXCA7CivmnaHnm64gPiBqb3Vtb2t1XCA7CivkuIDopqcgPiBpY2hpcmFuXCA7Civlr4bluqYgPiBtaXRzdWRvXCA7CivkuIrooaggPiBqb3VoeW91XCA7CivkuIvooYAgPiBnZWtldHN1XCA7CivmnIDoia8gPiBzYWlyeW91XCA7CivotrPlirQgPiBzb2t1cm91XCA7Civlrojml6cgPiBzaHVreXV1XCA7CivlsI/lloQgPiBzaG91emVuXCA7Civku67msbogPiBrYWtldHN1XCA7Civlr5vlrrkgPiBrYW4nJ3lvdVwgOwor5LyR5qChID4ga3l1dWtvdVwgOwor5L+h5LuwID4gc2hpbmtvdVwgOwor5qCW5oGvID4gc2Vpc29rdVwgOwor5LqV55uuID4gc2VpbW9rdVwgOwor5bCa5Y+IID4gbmFvbWF0YVwgOwor5pqX6LqNID4gYW4nJ3lha3VcIDsKK+iAg+eptiA+IGtvdWt5dXVcIDsKK+aZqemQmCA+IGJhbnNob3VcIDsKK+iyqOeJqSA+IGthbW90c3VcIDsKK+Wun+aKgCA+IGppdHN1Z2lcIDsKK+acrOexpCA+IGhvbmt1amlcIDsKK+iEseWWtiA+IGRhdHN1ZWlcIDsKK+S9k+W+lyA+IHRhaXRva3VcIDsKK+acrOexjSA+IGhvbnNla2lcIDsKK+acqOeyviA+IG1va3VzZWlcIDsKK+Wwj+WTgSA+IHNob3VoaW5cIDsKK+acieiBtyA+IHl1dXNva3VcIDsKK+S9s+WuoiA+IGtha3lha3VcIDsKK+e+juihkyA+IGJpanV0c3VcIDsKK+e9quiyrCA+IHphaXNla2lcIDsKK+i1pOWtkCA+IHNla2lzaGlcIDsKK+Wus+W/gyA+IGdhaXNoaW5cIDsKK+S/l+S9kyA+IHpva3V0YWlcIDsKK+aYvOmkkCA+IGNodXVzYW5cIDsKK+S6jOedgCA+IG5pY2hha3VcIDsKK+S/l+S8nSA+IHpva3VkZW5cIDsKK+S6huefpSA+IHJ5b3VjaGlcIDsKK+aguOWtkCA+IGtha3VzaGlcIDsKK+acrOeusSA+IGhvbmJha29cIDsKK+acjee9qiA+IGZ1a3V6YWlcIDsKK+S6jOebtCA+IG5pY2hva3VcIDsKK+mmrOW4giA+IHVtYWljaGlcIDsKK+eSsOWigyA+IGthbmt5b3VcIDsKK+Wwj+WPsiA+IHNob3VzaGlcIDsKK+S/l+S6uiA+IHpva3VqaW5cIDsKK+S9leW5tCA+IG5hbicnbmVuXCA7CivnjJvopbIgPiBtb3VzaHV1XCA7CivlsI/lj6MgPiBrb2d1Y2hpXCA7Civmnb7nhaQgPiBzaG91YmFpXCA7CivmnKznrYsgPiBob25zdWppXCA7CivmnbHni6wgPiB0b3Vkb2t1XCA7CivnjaPogokgPiBqdXVuaWt1XCA7CivkuK3oiIggPiBjaHV1a291XCA7Civkuoznmb4gPiBuaWh5YWt1XCA7Civmm7LoiJ4gPiBrdXNlbWFpXCA7Civnj43njaMgPiBjaGluanV1XCA7CivmnKznq6AgPiBob25zaG91XCA7CivkuLvnv7wgPiBzaHV5b2t1XCA7Civkv5fkuJYgPiB6b2t1c2VpXCA7CivnvqTokL0gPiBndW5yYWt1XCA7Civpo7TnjokgPiBhbWVkYW1hXCA7CivogITnoowgPiBtb3Vyb2t1XCA7Civlrq7lu7cgPiBreXV1dGVpXCA7CivlsLHku7sgPiBzaHV1bmluXCA7CivlppnpvaIgPiBteW91cmVpXCA7CivmmYLpm6ggPiBzaGlndXJlXCA7Civlrq7luq0gPiBreXV1dGVpXCA7CivkuK3ohLMgPiBjaHV1bm91XCA7CivmnKjnq4sgPiBrb2RhY2hpXCA7Civnjovnq4sgPiBvdXJpdHN1XCA7CivlsI/li4cgPiBzaG91eXV1XCA7CivogbfmqKkgPiBzaG9ra2VuXCA7CivkvrXlhqYgPiBzaGlua291XCA7Civnj77ms4EgPiBnZW5reW91XCA7Civlr4Tlrr8gPiBraXNodWt1XCA7Civog4zlvrMgPiBoYWl0b2t1XCA7Civnv5Lnt7QgPiBzaHV1cmVuXCA7CivmoLzlpJYgPiBrYWt1Z2FpXCA7CivkuIrolJ8gPiBqb3V6b2t1XCA7CivkuK3og4wgPiBjaHV1emVpXCA7CivotaTlpJYgPiBzZWtpZ2FpXCA7CivkuKHoiLcgPiByeW91Z2VuXCA7CivlraPmnKsgPiBraW1hdHN1XCA7Civmn5PmlpkgPiBzZW5yeW91XCA7Civmnb7mv6QgPiBzaG91dG91XCA7Civmn4TmnZMgPiBoaXNoYWt1XCA7Civni6zotbAgPiBkb2t1c291XCA7Civku67mpI0gPiBrYXNob2t1XCA7CivnjonnqL8gPiBneW9ra291XCA7CivlsI/liIAgPiBzaG91dG91XCA7Civkvr/kvqsgPiBiZW4nJ25laVwgOwor6aCt6Ki7ID4gdG91Y2h1dVwgOwor5LuW5q66ID4gdGFzYXRzdVwgOwor5LiL6JGJID4gc2hpdGFiYVwgOwor6Laz5LujID4gYXNoaWRhaVwgOwor5pyJ57WmID4geXV1a3l1dVwgOwor5L6/5L2eID4gYmVuJyduZWlcIDsKK+S4reiAgSA+IGNodXVyb3VcIDsKK+aciOe1piA+IGdla2t5dXVcIDsKK+mnkOWcqCA+IGNodXV6YWlcIDsKK+mmluW4rSA+IHNodXNla2lcIDsKK+aciee1giA+IHl1dXNodXVcIDsKK+S4oeiFlSA+IHJ5b3V1ZGVcIDsKK+eNhOiIjiA+IGdva3VzaGFcIDsKK+mgreinkiA+IHRvdWtha3VcIDsKK+mhm+iQvSA+IHRlbnJha3VcIDsKK+Wwj+WFmiA+IHNob3V0b3VcIDsKK+S+oOWLhyA+IGt5b3V5dXVcIDsKK+WwjuWFpSA+IGRvdW55dXVcIDsKK+S8neaJvyA+IGRlbnNob3VcIDsKK+iDuOWjsCA+IGt5b3VzZWlcIDsKK+S5meeoriA+IG90c3VzaHVcIDsKK+S5l+epjSA+IGpvdXNla2lcIDsKK+eJnem2jyA+IG1lbmRvcmlcIDsKK+e+pOiHoyA+IGd1bnNoaW5cIDsKK+Wtn+aYpSA+IG1vdXNodW5cIDsKK+S+m+WLoiA+IHRvbW96ZWlcIDsKK+S5vueVmSA+IGthbnJ5dXVcIDsKK+WvqeWVjyA+IHNoaW5tb25cIDsKK+izjualrSA+IHNlbmd5b3VcIDsKK+iznuadryA+IHNob3VoYWlcIDsKK+S7i+auuyA+IGthaWtha3VcIDsKK+S4gOiRiSA+IGljaGl5b3VcIDsKK+acgOe1giA+IHNhaXNodXVcIDsKK+S5s+eZjCA+IG55dXVnYW5cIDsKK+WwhuWFtSA+IHNob3VoZWlcIDsKK+eJnemzpSA+IG1lbmRvcmlcIDsKK+S7sOacmyA+IGd5b3Vib3VcIDsKK+Wul+W7nyA+IHNvdWJ5b3VcIDsKK+S5vueToiA+IGthbnB5b3VcIDsKK+iAvea6uiA+IHRhbmRla2lcIDsKK+S9j+WuhSA+IGp1dXRha3VcIDsKK+S4oeiAhSA+IHJ5b3VzaGFcIDsKK+i2heWLpCA+IGNob3VraW5cIDsKK+iyq+a1gSA+IGthbnJ5dXVcIDsKK+WumOW6gSA+IGthbmNob3VcIDsKK+iAgeeXhSA+IHJvdWJ5b3VcIDsKK+WumuW4rSA+IGpvdXNla2lcIDsKK+izk+agvCA+IGhpbmtha3VcIDsKK+acneekvCA+IGNob3VyZWlcIDsKK+Wwj+S+vyA+IHNob25iZW5cIDsKK+WvuOWKhyA+IHN1bmdla2lcIDsKK+WwgeWFpSA+IGZ1dW55dXVcIDsKK+itpumQmCA+IGtlaXNob3VcIDsKK+aYpembtyA+IHNodW5yYWlcIDsKK+WvkuWbvSA+IGthbmtva3VcIDsKK+S+r+S8ryA+IGtvdWhha3VcIDsKK+S4ree3qCA+IGNodXVoZW5cIDsKK+acquedgCA+IG1pY2hha3VcIDsKK+acrOecgSA+IGhvbnNob3VcIDsKK+abuOe1jCA+IHNob2t5b3VcIDsKK+WvuOWIuyA+IHN1bmtva3VcIDsKK+S6i+eJqSA+IGppYnV0c3VcIDsKK+S7lealrSA+IHNoaXdhemFcIDsKK+mmluWwhiA+IHNodXNob3VcIDsKK+S8keaIpiA+IGt5dXVzZW5cIDsKK+ePvualrSA+IGdlbmd5b3VcIDsKK+abs+e2siA+IGhpa2lhbWlcIDsKK+WwiuS/oSA+IHNvbnNoaW5cIDsKK+S4ree2mSA+IGNodXVrZWlcIDsKK+i2heWHoSA+IGNob3Vib25cIDsKK+S7suaWrSA+IGNodXVkYW5cIDsKK+Wwj+S8nSA+IHNob3VkZW5cIDsKK+mepumfhiA+IGJ1cmFua29cIDsKK+ixqueQgyA+IGdvdWt5dXVcIDsKK+S5seeUqCA+IHJhbicneW91XCA7CivpoJjop6MgPiByeW91a2FpXCA7CivkuIPoibIgPiBuYW5haXJvXCA7CivkuIrohoogPiBqb3VoYWt1XCA7CivkvZXlpbQgPiBkb3lhdHN1XCA7Civmnpfmpa0gPiByaW5neW91XCA7CivkuIDoirggPiBpY2hpZ2VpXCA7CivkvJHmhqkgPiBreXV1a2VpXCA7CivmnbHmuIUgPiB0b3VzaGluXCA7Civniqzph5ggPiBpbnVrdWdpXCA7CivnkIPmoLkgPiBreXV1a29uXCA7CivmnKrnmbogPiBtaWhhdHN1XCA7CivlsI/kurogPiBzaG91bmluXCA7CivkvZflo7AgPiB3YWJpZ29lXCA7CivkuIDoibIgPiBoaXRvaXJvXCA7CivkuLvnrYsgPiBzaHVzdWppXCA7CivkuIvohJogPiBrYWt5YWt1XCA7CivkuK3ns7ggPiBjaHV1aXRvXCA7CivnvqTnvoogPiBndW4nJ3lvdVwgOwor6LOH5qC8ID4gc2hpa2FrdVwgOwor5pu457GNID4gc2hvc2VraVwgOwor5a6/5aC0ID4gc2h1a3ViYVwgOwor5pil6ZeYID4gc2h1bnRvdVwgOwor5bCC5L+uID4gc2Vuc2h1dVwgOwor5bCP5LmXID4gc2hvdWpvdVwgOwor5Ly45bGVID4gc2hpbnRlblwgOwor5L6L5Yi7ID4gcmVpa29rdVwgOwor5pq06JC9ID4gYm91cmFrdVwgOwor54uC6LqBID4ga3lvdXNvdVwgOwor6LKo5q6WID4ga2FzaG9rdVwgOwor5Lqs5rSbID4ga2VpcmFrdVwgOwor5Lya5b+DID4ga2Fpc2hpblwgOwor5Lit57GzID4gY2h1dWJlaVwgOwor5Lqk5riJID4ga291c2hvdVwgOwor6aCM6KmeID4gc2hvdXNoaVwgOwor5LiH6IO9ID4gbWFuJydub3VcIDsKK+S4ieiCsiA+IHNhbicnaWt1XCA7CivkuInogqEgPiBzYW5tYXRhXCA7CivkuIDohrMgPiBpY2hpemVuXCA7CivlrabmiY0gPiBnYWt1c2FpXCA7Civnibnpm7sgPiB0b2t1ZGVuXCA7CivpoIboqr8gPiBqdW5jaG91XCA7Civnvr3nrpIgPiBoYWJvdWtpXCA7CivohJrlhYkgPiBreWFra291XCA7Civlrprlrr8gPiBqb3V5YWRvXCA7Civlr6nliKQgPiBzaGlucGFuXCA7Civni6zoo4EgPiBkb2t1c2FpXCA7CivnvorohpwgPiB5b3VtYWt1XCA7CivmnKvnlJ8gPiBzdWVuYXJpXCA7Civmn7vlr58gPiBzYXNhdHN1XCA7CivosarniakgPiBlcmFtb25vXCA7CivkuK3nr4cgPiBjaHV1aGVuXCA7CivlsILku7sgPiBzZW4nJ25pblwgOwor576K6IW4ID4geW91Y2hvdVwgOwor5LiK57+8ID4gam91eW9rdVwgOwor5LyR5oCgID4ga3l1dXRhaVwgOwor5Lmx542yID4gcmFua2FrdVwgOwor5Lqk5rWBID4ga291cnl1dVwgOwor5aem6YCaID4ga2FudHN1dVwgOwor576p57W2ID4gZ2l6ZXRzdVwgOwor5piH6aCGID4gc2hvdWp1blwgOwor6LKd5q+SID4ga2FpZG9rdVwgOwor5a6Y5a2mID4ga2FuZ2FrdVwgOwor54++5pyJID4gZ2VuJyd5dXVcIDsKK+iyneauvCA+IGthaWdhcmFcIDsKK+iyneauuyA+IGthaWdhcmFcIDsKK+iznuaPmiA+IHNob3V5b3VcIDsKK+S4reetiSA+IGNodXV0b3VcIDsKK+eJqemfsyA+IG1vbm9vdG9cIDsKK+S5s+eKtiA+IG55dXVqb3VcIDsKK+S4u+elniA+IHNodXNoaW5cIDsKK+ael+acqCA+IHJpbmJva3VcIDsKK+eOieeSvSA+IGd5b2t1amlcIDsKK+S8muW4rSA+IGthaXNla2lcIDsKK+eLvOiXiSA+IHJvdXpla2lcIDsKK+e+iuiCiSA+IHlvdW5pa3VcIDsKK+e/vOeKtiA+IHlva3Vqb3VcIDsKK+mgkOihgCA+IHlva2V0c3VcIDsKK+miqOeWuSA+IGZ1dXNoaW5cIDsKK+S8keW7tyA+IGt5dXV0ZWlcIDsKK+eOieeRmyA+IGd5b2t1ZWlcIDsKK+WuruWfjiA+IGt5dXVqb3VcIDsKK+i2heS6uiA+IGNob3VqaW5cIDsKK+Wuv+WWtiA+IHNodWt1ZWlcIDsKK+aeneaXjyA+IHNoaXpva3VcIDsKK+S7luaXpSA+IHRhaml0c3VcIDsKK+iAgeeGnyA+IHJvdWp1a3VcIDsKK+iug+izniA+IHNhbnNob3VcIDsKK+izh+aWmSA+IHNoaXJ5b3VcIDsKK+mnkOWFtSA+IGNodXVoZWlcIDsKK+S4gOe+pCA+IGljaGlndW5cIDsKK+S9juWcpyA+IHRlaWF0c3VcIDsKK+advualkyA+IHNob3VmdXVcIDsKK+S7iuacnSA+IGtvbmNob3VcIDsKK+S4ueeipyA+IHRhbnBla2lcIDsKK+aaruiJsiA+IGJvc2hva3VcIDsKK+S7leaWuSA+IHNoaWthdGFcIDsKK+mjoua4hyA+IGtpa2F0c3VcIDsKK+S7iuabtCA+IGltYXNhcmFcIDsKK+WvhuWRiiA+IG1pa2tva3VcIDsKK+aYh+mZjSA+IHNob3Vrb3VcIDsKK+eKr+i3oSA+IGhhbnNla2lcIDsKK+iytOacrSA+IGtpc2F0c3VcIDsKK+mjhOeEtiA+IGh5b3V6ZW5cIDsKK+S7iuaagSA+IGtvbmd5b3VcIDsKK+aXqemmrCA+IGhheWF1bWFcIDsKK+S9nOWTgSA+IHNha3VoaW5cIDsKK+iyoOaltSA+IGZ1a3lva3VcIDsKK+S6uuagvCA+IGppbmtha3VcIDsKK+acrOeJqSA+IGhvbm1vbm9cIDsKK+S7iuaZgiA+IGltYWRva2lcIDsKK+adpeattCA+IHJhaXJla2lcIDsKK+mfs+iosyA+IG9uJyd5YWt1XCA7Civku4rmmKUgPiBrb25zaHVuXCA7Civku4rmmJQgPiBrb25zZWtpXCA7CivogZrmloIgPiBzaHV1cmVuXCA7Civku4/mlZkgPiBidWtreW91XCA7Civosq/mnKggPiBjaG9ib2t1XCA7CivmnKjnioAgPiBtb2t1c2VpXCA7CivosrfmmKUgPiBiYWlzaHVuXCA7Civlr4zlipsgPiBmdXJ5b2t1XCA7CivkuIrntJogPiBqb3VreXV1XCA7CivkuIrntJkgPiB1d2FnYW1pXCA7CivogZrmlaMgPiBzaHV1c2FuXCA7CivkuIrntJAgPiB1d2FoaW1vXCA7CivkuInntJogPiBzYW5reXV1XCA7Civku4rmlrkgPiBpbWFnYXRhXCA7CivkuKHnqK4gPiByeW91c2h1XCA7CivmnKjniYggPiBtb2t1aGFuXCA7CivmnKjniYcgPiBtb2t1aGVuXCA7CivlrZ3lv4MgPiBrb3VzaGluXCA7Civni4LoqakgPiBreW91c2hpXCA7Civog4zlnKcgPiBoYWlhdHN1XCA7Civkub7mupwgPiBrYW5yeXV1XCA7CivogonlvL4gPiBuaWt1ZGFuXCA7CivnjYTnqpMgPiBnb2t1c291XCA7CivlrablubQgPiBnYWt1bmVuXCA7CivogZbmlZkgPiBzZWlreW91XCA7CivlrqLlnJ8gPiBreWFrdWRvXCA7CivorbTosqwgPiBrZW5zZWtpXCA7CivmnI3nlKggPiBmdWt1eW91XCA7CivkvY7llLEgPiB0ZWlzaG91XCA7Civml6fpoqggPiBreXV1ZnV1XCA7CivnjK7ntI0gPiBrZW4nJ25vdVwgOwor5a2Y5b+1ID4gem9uJyduZW5cIDsKK+eOh+eIviA+IHNvdHN1amlcIDsKK+WtpuW4vSA+IGdha3Vib3VcIDsKK+aYjumPoSA+IG1laWt5b3VcIDsKK+acrOeEtiA+IGhvbicnbmVuXCA7Civni4LoqIAgPiBreW91Z2VuXCA7Civku5XmjpsgPiBzaGlrYWtlXCA7CivmoKrliLggPiBrYWJ1a2VuXCA7Civpo5vmsqsgPiBoaW1hdHN1XCA7Civpoqjni4IgPiBmdXVreW91XCA7CivlrZDmga8gPiBzaGlzb2t1XCA7CivppqzljLkgPiBiYWhpdHN1XCA7Civmm7jnm64gPiBzaG9tb2t1XCA7CivkuIrnrrEgPiB1d2FiYWtvXCA7Civog7jlg48gPiBreW91em91XCA7CivkvI/lsIQgPiBmdWt1c2hhXCA7Civog7TlhYMgPiBkb3Vtb3RvXCA7CivlrprlnKcgPiB0ZWlhdHN1XCA7CivmmpfoibIgPiBhbnNob2t1XCA7Civlrozlo4EgPiBrYW5iZWtpXCA7Civog4blmqIgPiB0YW4nJ25vdVwgOwor6LGK54afID4gaG91anVrdVwgOwor5LiK562WID4gam91c2FrdVwgOwor6aGO57SQID4gYWdvaGltb1wgOwor5pyo54KtID4gbW9rdXRhblwgOwor5L2Z5YqbID4geW9yeW9rdVwgOwor5L2T5Y2UID4gdGFpa3lvdVwgOwor6aaW5ZSxID4gc2h1c2hvdVwgOwor5Lit55ukID4gY2h1dWJhblwgOwor5qCh5YmHID4ga291c29rdVwgOwor6ICz5qCTID4gbWltaXNlblwgOwor5L2Z5YmyID4geW9rYXRzdVwgOwor5LiH562WID4gYmFuc2FrdVwgOwor5Luk5oGvID4gcmVpc29rdVwgOwor54mH6Z2iID4ga2F0YW1lblwgOwor5a+G5YSAID4gbWl0c3VnaVwgOwor54m56YWNID4gdG9rdWhhaVwgOwor5Lmz5riFID4gbnl1dXNlaVwgOwor5pel6ZyyID4gbmljaGlyb1wgOwor54yu562WID4ga2Vuc2FrdVwgOwor5L2Z5YiHID4geW9zZXRzdVwgOwor5Lqr5pyJID4ga3lvdXl1dVwgOwor6IG05b6TID4gY2hvdWp1dVwgOwor5Lmz5rayID4gbnl1dWVraVwgOwor5qC45LuBID4ga2FrdWppblwgOwor5a6i5ZOhID4ga3lha3VpblwgOwor5pif6L6wID4gc2Vpc2hpblwgOwor54yu56uLID4ga29uZGF0ZVwgOwor5Lih55y8ID4gcnlvdWdhblwgOwor5L2V5YemID4gZG9rb2lyYVwgOwor6LGG54KtID4gbWFtZXRhblwgOwor5a6f5ZOhID4gaml0c3VpblwgOwor54m56YG4ID4gdG9rdXNlblwgOwor5a6j5ZGKID4gc2Vua29rdVwgOwor5L2d5YOCID4gc2VtdXNoaVwgOwor54+N5pysID4gY2hpbnBvblwgOwor5Luj5b25ID4gZGFpeWFrdVwgOwor5Lmx5rWBID4gcmFucnl1dVwgOwor5LiA56uvID4gaXBwYXNoaVwgOwor5LiJ56eLID4gc2Fuc2h1dVwgOwor5a655YWxID4geW91a3lvdVwgOwor5qCh5YOVID4ga291Ym9rdVwgOwor54+N5pu4ID4gY2hpbnNob1wgOwor5L2V5YWxID4gbmFudG9tb1wgOwor5a+S5LitID4ga2FuY2h1dVwgOwor5Lie55u4ID4gam91c2hvdVwgOwor5Lit55O2ID4gY2h1dWJpblwgOwor5LiH56aPID4gbWFucHVrdVwgOwor5p2l5pydID4gcmFpY2hvdVwgOwor6IG35belID4gc2hva2tvdVwgOwor5a6F5ZywID4gdGFrdWNoaVwgOwor5Lmz5rGBID4gbnl1dWp1dVwgOwor5a6u5YiRID4ga3l1dWtlaVwgOwor6aO85paZID4gc2hpcnlvdVwgOwor5LyP5aWPID4gZnVrdXNvdVwgOwor5a6f5Y+OID4gamlzc2h1dVwgOwor5qCh5YCJID4gYXpla3VyYVwgOwor57+V54S2ID4ga3l1dXplblwgOwor5paw6a6uID4gc2hpbnNlblwgOwor6LGK5ryBID4gaG91cnlvdVwgOwor6K2r6KiAID4gdXdhZ290b1wgOwor5pyd5r2uID4gYXNhc2hpb1wgOwor6aKo5r2uID4gZnV1Y2hvdVwgOwor55CD5b2iID4ga3l1dWtlaVwgOwor6IO05LitID4gZG91bmFrYVwgOwor6aCa6IKJID4ga2VpbmlrdVwgOwor5a6f5Y2wID4gaml0c3VpblwgOwor5L2c5L6LID4gc2FrdXJlaVwgOwor5pys5rWBID4gaG9ucnl1dVwgOwor5a+G5LqLID4gbWl0c3VqaVwgOwor5Luw5bGxID4gZ3lvdXNhblwgOwor5LuP5oGpID4gYnV0c3VvblwgOwor5LuW5b6LID4gdGFyaXRzdVwgOwor5p2l5pilID4gcmFpaGFydVwgOwor5Lmz5q2vID4gbnl1dXNoaVwgOwor5LyR5aC0ID4ga3l1dWpvdVwgOwor54++5b25ID4gZ2VuJydla2lcIDsKK+S4gOekvCA+IGljaGlyZWlcIDsKK+mghuiJryA+IGp1bnJ5b3VcIDsKK+S7leW9oiA+IHNoaWthdGFcIDsKK+S4iuefsyA+IHV3YWlzaGlcIDsKK+S4oeeUqCA+IHJ5b3V5b3VcIDsKK+S4oeeUnyA+IHJ5b3VzZWlcIDsKK+Wun+WLmSA+IGppdHN1bXVcIDsKK+S6lOaciCA+IHNhdHN1a2lcIDsKK+WtkOWxgCA+IGtva3lva3VcIDsKK+S4jeedgCA+IGZ1Y2hha3VcIDsKK+S4i+edgCA+IHNoaXRhZ2lcIDsKK+acquaxuiA+IG1pa2V0c3VcIDsKK+Wkp+m7kiA+IGRhaWtva3VcIDsKK+agoeS6hiA+IGtvdXJ5b3VcIDsKK+aYgumAsiA+IGtvdXNoaW5cIDsKK+S7leW6piA+IHNoaXRha3VcIDsKK+WtpuWkliA+IGdha3VnYWlcIDsKK+Wun+WIqSA+IGppdHN1cmlcIDsKK+Wul+WMoCA+IHNvdXNob3VcIDsKK+mgrOe0hSA+IGhvb2JlbmlcIDsKK+WtkOWuriA+IHNoaWt5dXVcIDsKK+mdoumVtyA+IG9tb25hZ2FcIDsKK+itmOiqniA+IHNoaWtpZ29cIDsKK+S9juS/lyA+IHRlaXpva3VcIDsKK+WtpuWjqyA+IGdha3VzaGlcIDsKK+S4i+ebriA+IHNoaXRhbWVcIDsKK+Wlh+mqqCA+IGtpa290c3VcIDsKK+adj+aelyA+IGt5b3VyaW5cIDsKK+WtkeWtkSA+IGJvdWZ1cmlcIDsKK+iBluW+syA+IHNlaXRva3VcIDsKK+aal+e3kSA+IGFucnlva3VcIDsKK+mmrOS4uyA+IGJhbnVzaGlcIDsKK+eJuei1piA+IHRva3VzaGFcIDsKK+S4jeeZuiA+IGZ1aGF0c3VcIDsKK+S5neaziSA+IGt5dXVzZW5cIDsKK+S9leS6uiA+IG5hbnBpdG9cIDsKK+S8j+WcqCA+IGZ1a3V6YWlcIDsKK+iBt+WuiSA+IHNob2t1YW5cIDsKK+WumuWJhyA+IHRlaXNva3VcIDsKK+aWsOmmmSA+IHNoaW5rb3VcIDsKK+aZr+iJsiA+IGtlc2hpa2lcIDsKK+WumuWIuyA+IHRlaWtva3VcIDsKK+adkeaciSA+IHNvbicneXV1XCA7CivmnZDmnKggPiB6YWltb2t1XCA7CivmnKfmsJcgPiBvYm9yb2dlXCA7CivkuIfnm64gPiBiYW5tb2t1XCA7CivosrflvpcgPiBrYWlkb2t1XCA7CivpnLLpqqggPiByb2tvdHN1XCA7Civku4/luqcgPiBidXRzdXphXCA7Civpo5vmnK0gPiBoaXNhdHN1XCA7CivkvJ3llLEgPiBkZW5zaG91XCA7CivlpKfpt7ogPiBkYWlzYWdpXCA7CivkuIrnmb0gPiBqb3VoYWt1XCA7Civoq5bpp4EgPiByb25iYWt1XCA7CivpoqjmtYEgPiBmdXVyeXV1XCA7CivlrabloLEgPiBnYWt1aG91XCA7Civogonlo7AgPiBuaWt1c2VpXCA7Civku6PlsIYgPiBkYWlzaG91XCA7CivosYrmsoMgPiBob3V5b2t1XCA7CivmlrDppKggPiBzaGlua2FuXCA7CivkvJrllYYgPiBrYWlzaG91XCA7CivogZblu58gPiBzZWlieW91XCA7CivlrrbkuLsgPiB5YW51c2hpXCA7CivkuIDnnYAgPiBpdGNoYWt1XCA7CivkuIDnnLwgPiBpY2hpZ2FuXCA7CivkuIDnnLggPiBpY2hpYm91XCA7CivorZjoposgPiBzaGlra2VuXCA7Civmn5Dlm70gPiBib3Vrb2t1XCA7CivmnYnmnZAgPiBzdWdpemFpXCA7Civku4Hlv4MgPiBqaW5zaGluXCA7CivkuIDnnKAgPiBpY2hpbWluXCA7Civku4HlvrMgPiBqaW50b2t1XCA7CivlrpvlhYggPiBhdGVzYWtpXCA7CivnkIblsYggPiByaWt1dHN1XCA7CivmlrDpoqggPiBzaGlucHV1XCA7CivkuIDnm7QgPiBpdGNob2t1XCA7Civku4rlubQgPiBrb24nJ25lblwgOwor6IOa5LmzID4gaGFpbnl1dVwgOwor5LqM5pelID4gZnV0c3VrYVwgOwor5pat6aOfID4gZGFuamlraVwgOwor5a6M5YudID4ga2Fuc2hvdVwgOwor5Lmz5qOSID4gbnl1dWJvdVwgOwor5Lmd5q27ID4ga3l1dXNoaVwgOwor5LiL55WlID4gZ2VyeWFrdVwgOwor55Ge5YWGID4genVpY2hvdVwgOwor5paw6aGUID4gc2hpbmdhb1wgOwor5LiH55eFID4gbWFuYnlvdVwgOwor6IOM5L+hID4gaGFpc2hpblwgOwor6K6S6IejID4gemFuc2hpblwgOwor5Li75r2uID4gc2h1Y2hvdVwgOwor6Z+76ISaID4gaW5reWFrdVwgOwor5LiA55m6ID4gaXBwYXRzdVwgOwor5LiK55SzID4gam91c2hpblwgOwor57+85qOfID4geW9rdXRvdVwgOwor5LiJ55S3ID4gc2FuJyduYW5cIDsKK+adkOaWmSA+IHphaXJ5b3VcIDsKK+WumOWDmiA+IGthbnJ5b3VcIDsKK+aWh+mzpSA+IGJ1bmNob3VcIDsKK+S6uuW+syA+IG5pbnRva3VcIDsKK+S7sOWkqSA+IGd5b3V0ZW5cIDsKK+iziuWusyA+IHpva3VnYWlcIDsKK+S4reeCuSA+IGNodXV0ZW5cIDsKK+mhjOebriA+IGRhaW1va3VcIDsKK+S6uuW9oiA+IG5pbmd5b3VcIDsKK+eJm+i7iiA+IGd5dXVzaGFcIDsKK+iziuWtkCA+IHpva3VzaGlcIDsKK+acrOalrSA+IGhvbmd5b3VcIDsKK+iAgeadviA+IHJvdXNob3VcIDsKK+aXp+mCpiA+IGt5dXVob3VcIDsKK+aenOWunyA+IGthaml0c3VcIDsKK+S4gOeVsyA+IGljaGlqb3VcIDsKK+iyp+W8sSA+IGhpbmpha3VcIDsKK+eIhumiqCA+IGJha3VmdXVcIDsKK+iAgeacvSA+IHJvdWt5dXVcIDsKK+aXqemAnyA+IHNhc3Nva3VcIDsKK+aXp+mBkyA+IGt5dXVkb3VcIDsKK+iAgeacqCA+IHJvdWJva3VcIDsKK+eJueiqjSA+IHRva3VuaW5cIDsKK+S4gOeUtyA+IGljaGluYW5cIDsKK+acrOajmiA+IGhvbmRhbmFcIDsKK+Wmmei2oyA+IG15b3VzaHVcIDsKK+mciumzpSA+IHJlaWNob3VcIDsKK+eJqeixoSA+IGJ1c3Nob3VcIDsKK+S7j+WvuiA+IGJ1dHN1amlcIDsKK+acq+aioiA+IG1hc3Nob3VcIDsKK+irlumboyA+IHJvbicnbmFuXCA7CivkuIrnjokgPiBqb3VkYW1hXCA7CivlrprkvJEgPiB0ZWlreXV1XCA7Civoq5bpm4YgPiByb25zaHV1XCA7CivmnpflraYgPiByaW5nYWt1XCA7CivlrabllY8gPiBnYWt1bW9uXCA7Civosarml48gPiBnb3V6b2t1XCA7CivogbfloLQgPiBzaG9rdWJhXCA7CivmnKzmoLwgPiBob25rYWt1XCA7Civlpb3pgakgPiBrb3V0ZWtpXCA7CivkvJrliYcgPiBrYWlzb2t1XCA7CivkuLvmtYEgPiBzaHVyeXV1XCA7Civml6Lov7AgPiBraWp1dHN1XCA7Civnvqnng4ggPiBnaXJldHN1XCA7CivnianorbAgPiBidXRzdWdpXCA7CivosrjlrrYgPiBrYXNoaXlhXCA7CivmnInmr5IgPiB5dXVkb2t1XCA7CivmlrDplosgPiBzaGlua2FpXCA7CivkuIvniakgPiBrYWJ1dHN1XCA7Civku5nlpbMgPiBzZW4nJ255b1wgOwor54iG6Zu3ID4gYmFrdXJhaVwgOwor5LyP5YuiID4gZnVzZXplaVwgOwor54m56KO9ID4gdG9rdXNlaVwgOwor5LiK54mpID4gam91bW9ub1wgOwor54uC6ICFID4ga3lvdXNoYVwgOwor5p6g5aSWID4gd2FrdWdhaVwgOwor5pys5pydID4gaG9uY2hvdVwgOwor54m56KOFID4gdG9rdXNvdVwgOwor6aCY56m6ID4gcnlvdWt1dVwgOwor5a2m5ZCNID4gZ2FrdW1laVwgOwor5pen6LmfID4gZnVydWF0b1wgOwor5pyr5pyfID4gbWF0c3Vnb1wgOwor5pyo5p2vID4gbW9rdWhhaVwgOwor6Kys6KuWID4gYnl1dXJvblwgOwor5pyo5p2QID4gbW9rdXphaVwgOwor5Lqr5bm0ID4ga3lvdW5lblwgOwor5a2m5Y+LID4gZ2FrdXl1dVwgOwor54yp54ypID4gc2hvdWpvdVwgOwor5LyR5YiKID4ga3l1dWthblwgOwor5pyo5pysID4gbW9rdWhvblwgOwor5LiL54axID4gZ2VuZXRzdVwgOwor54mp6Ki8ID4gYnVzc2hvdVwgOwor5a6J5L2aID4gYW4nJ2l0c3VcIDsKK+adpeW+qSA+IHJhaWZ1a3VcIDsKK+aXp+i3oSA+IGZ1cnVhdG9cIDsKK+mbt+mzpSA+IHJhaWNob3VcIDsKK+S7meWigyA+IHNlbmt5b3VcIDsKK+S4ueavkiA+IHRhbmRva3VcIDsKK+aXp+i2viA+IGt5dXVzaGlcIDsKK+acqOabnCA+IG1va3V5b3VcIDsKK+absua1piA+IGt5b2t1aG9cIDsKK+mhnueEvCA+IHJ1aXNob3VcIDsKK+miqOagvCA+IGZ1dWtha3VcIDsKK+eQg+WgtCA+IGt5dXVqb3VcIDsKK+advuWxiyA+IG1hdHN1eWFcIDsKK+WujOS6hiA+IGthbnJ5b3VcIDsKK+mgreebriA+IHRvdW1va3VcIDsKK+S5neaciCA+IGt1Z2F0c3VcIDsKK+S8j+WFtSA+IGZ1a3VoZWlcIDsKK+eJueiejSA+IHRva3V5dXVcIDsKK+S5seaSgyA+IHJhbmdla2lcIDsKK+eNo+assiA+IGp1dXlva3VcIDsKK+WkqemgmCA+IHRlbnJ5b3VcIDsKK+iyqOWuoiA+IGtha3lha3VcIDsKK+ixhuadvyA+IG1hbWVpdGFcIDsKK+WkqemggiA+IHRlbmNob3VcIDsKK+acqOaYnyA+IG1va3VzZWlcIDsKK+acn+acqyA+IGtpbWF0c3VcIDsKK+izvOWFpSA+IGtvdW55dXVcIDsKK+mkheWxiyA+IG1vY2hpeWFcIDsKK+WroeaKqyA+IGNoYWt1aGlcIDsKK+acneadpSA+IGNob3VyYWlcIDsKK+isrOimiyA+IGJ5dXVrZW5cIDsKK+mch+mnrSA+IHNoaW5nYWlcIDsKK+S4i+eBqyA+IHNoaXRhYmlcIDsKK+ixhuacrCA+IG1hbWVob25cIDsKK+iznuWTgSA+IHNob3VoaW5cIDsKK+WtpuWItiA+IGdha3VzZWlcIDsKK+WmmeioiCA+IG15b3VrZWlcIDsKK+S7iuWklSA+IGtvbicneXV1XCA7CivnjJ/niqwgPiByeW91a2VuXCA7CivkuZ3mmJ8gPiBreXV1c2VpXCA7Civlp7/ntbUgPiBzdWdhdGFlXCA7CivlpLHpmaUgPiBzaGlra2FuXCA7Civogbflk6EgPiBzaG9rdWluXCA7Civmlrnph50gPiBob3VzaGluXCA7CivlpJzpo58gPiB5YXNob2t1XCA7CivnkIPlm6MgPiBreXV1ZGFuXCA7CivmlrDpi60gPiBzaGluJydlaVwgOwor5Lit5q61ID4gY2h1dWRhblwgOwor5Lih5rSLID4gcnlvdXlvdVwgOwor5aSa6aOfID4gdGFzaG9rdVwgOwor6IKW5YOPID4gc2hvdXpvdVwgOwor5p2x5bGLID4gYXp1bWF5YVwgOwor6Kyb6KqtID4ga291ZG9rdVwgOwor5aSp6ZuyID4gYW1hZ3Vtb1wgOwor5LiN5r2UID4gZnVrZXRzdVwgOwor5a2m5YaFID4gZ2FrdW5haVwgOwor5Lit5q2jID4gY2h1dXNlaVwgOwor5Lit5q2iID4gY2h1dXNoaVwgOwor5paH6Z2pID4gYnVua2FrdVwgOwor5p2f5bivID4gc29rdXRhaVwgOwor5pyf5pelID4ga2lqaXRzdVwgOwor6Kyb6KmVID4ga291aHlvdVwgOwor6aOf5b6MID4gc2hva3Vnb1wgOwor5LiN5ruFID4gZnVtZXRzdVwgOwor54yb54iGID4gbW91YmFrdVwgOwor5a2m5YOnID4gZ2FrdXNvdVwgOwor5pyd5pa5ID4gYXNhZ2F0YVwgOwor5aSV6aKoID4geXV1a2F6ZVwgOwor6Z+z56+AID4gb25zZXRzdVwgOwor5aSn6Zm4ID4gdGFpcmlrdVwgOwor5Lmz5oi/ID4gbnl1dWJvdVwgOwor5LyR5LyaID4ga3l1dWthaVwgOwor5paH6ZuGID4gYnVuc2h1dVwgOwor5Lih5rCPID4gcnlvdXNoaVwgOwor5LuP5Zu9ID4gZnVra29rdVwgOwor6IG05Y+WID4gY2hvdXNodVwgOwor6IG35Y2wID4gc2hva3VpblwgOwor54us55y8ID4gZG9rdWdhblwgOwor5pyd5pS/ID4gY2hvdXNlaVwgOwor5LiL5rmvID4gc2hpbW95dVwgOwor6aKo5pWZID4gZnV1a3lvdVwgOwor5paw6YWSID4gc2hpbnNodVwgOwor5aSc6ZyyID4geW90c3V5dVwgOwor6Z2i6LKsID4gbWVuc2VraVwgOwor5Lq65aOwID4gaGl0b2dvZVwgOwor54+N5a6dID4gY2hpbnBvdVwgOwor57qS6LazID4gdGVuc29rdVwgOwor5Li75qC8ID4gc2h1a2FrdVwgOwor5p2R5bqEID4gc29uc2hvdVwgOwor5aaE6KmVID4gbW91aHlvdVwgOwor6IG35YuZID4gc2hva3VtdVwgOwor6aOv5bGLID4gbWVzaGl5YVwgOwor5piG6JmrID4ga29uY2h1dVwgOwor5p2/5aOBID4gaXRha2FiZVwgOwor5paw6YOOID4gc2hpbnJvdVwgOwor5Lq65aKDID4gamlua3lvdVwgOwor57qP6LazID4gdGVuc29rdVwgOwor5Luy5YasID4gY2h1dXRvdVwgOwor5Lm+5b6zID4ga2VudG9rdVwgOwor5pu45qOaID4gc2hvZGFuYVwgOwor5aW96Kq/ID4ga291Y2hvdVwgOwor5aSV6Z2EID4geXV1bW95YVwgOwor5paw6YG4ID4gc2hpbnNlblwgOwor5p2l5a6FID4gcmFpdGFrdVwgOwor572u54mpID4gb2tpbW9ub1wgOwor542E5q27ID4gZ29rdXNoaVwgOwor5pyr5oqAID4gbWF0c3VnaVwgOwor5pyt5omAID4gZnVkYXNob1wgOwor5aSV6ZynID4geXV1Z2lyaVwgOwor6aCS55m9ID4gaGFucGFrdVwgOwor5pen6KazID4ga3l1dWthblwgOwor5LiK5rW3ID4gc2hhbmhhaVwgOwor5pak6YePID4ga2lucnlvdVwgOwor5paw6YGTID4gc2hpbmRvdVwgOwor5Luy5YWEID4gY2h1dWtlaVwgOwor5pei6KitID4ga2lzZXRzdVwgOwor6LOK5ZCNID4gem9rdW1laVwgOwor5pmp56eLID4gYmFuc2h1dVwgOwor5aW96KmVID4ga291aHlvdVwgOwor5LiK5rWBID4gam91cnl1dVwgOwor5ayM5ae/ID4ga3lvdXNoaVwgOwor5paw6YCgID4gc2hpbnpvdVwgOwor5LmX5o+bID4gbm9yaWthZVwgOwor5LiJ5rWBID4gc2Fucnl1dVwgOwor5LiK5rSbID4gam91cmFrdVwgOwor6ZuM6baPID4gbWVuZG9yaVwgOwor5pyr5oiQID4gdXJhbmFyaVwgOwor54mH6KaqID4ga2F0YW95YVwgOwor6LOg5YSfID4gYmFpc2hvdVwgOwor5LiJ5rSLID4gc2FuJyd5b3VcIDsKK+e/jOaZqSA+IHlva3ViYW5cIDsKK+S5neaLnSA+IGt5dXVoYWlcIDsKK+S7ruWFjSA+IGthcmltZW5cIDsKK+S4uOadkCA+IG1hcnV6YWlcIDsKK+S7u+S+oCA+IG5pbmt5b3VcIDsKK+S6rOWkpyA+IGt5b3VkYWlcIDsKK+aXp+ijvSA+IGt5dXVzZWlcIDsKK+S4uOacrCA+IG1hcnVib25cIDsKK+iCieS9kyA+IG5pa3V0YWlcIDsKK+aciOaXpSA+IHRzdWtpaGlcIDsKK+S4oeanmCA+IHJ5b3V5b3VcIDsKK+mciumVtyA+IHJlaWNob3VcIDsKK+acieaWmSA+IHl1dXJ5b3VcIDsKK+mbjOmzpSA+IG1lbmRvcmlcIDsKK+aVtemZoyA+IHRla2lqaW5cIDsKK+mgheebriA+IGtvdW1va3VcIDsKK+WkiemdqSA+IGhlbmtha3VcIDsKK+S5seW/gyA+IHJhbnNoaW5cIDsKK+S4gOa1qiA+IGljaGlyb3VcIDsKK+aUvumzpSA+IGhvdWNob3VcIDsKK+WsjOWjsCA+IGt5b3VzZWlcIDsKK+aWmemHkSA+IHJ5b3VraW5cIDsKK+iAgeW8sSA+IHJvdWpha3VcIDsKK+WklemXhyA+IHl1dXlhbWlcIDsKK+aVsOmauyA+IHN1dXNla2lcIDsKK+acveW7gyA+IGt5dXVoYWlcIDsKK+ixoeW9oiA+IHNob3VrZWlcIDsKK+aWsOi7iiA+IHNoaW5zaGFcIDsKK+S4reaeoiA+IGNodXVzdXVcIDsKK+S6i+WxgCA+IGppa3lva3VcIDsKK+aWh+mOriA+IGJ1bmNoaW5cIDsKK+S4oeajsiA+IHJ5b3VzZWlcIDsKK+S7ruWAnyA+IGthc2hha3VcIDsKK+S4readsSA+IGNodXV0b3VcIDsKK+S7o+WFpSA+IGRhaW55dXVcIDsKK+S4gOazoSA+IGhpdG9hd2FcIDsKK+aVmemkiiA+IGt5b3V5b3VcIDsKK+mbqOmiqCA+IGFtZWthemVcIDsKK+S4i+atryA+IHNoaXRhYmFcIDsKK+ixquW3niA+IGdvdXNodXVcIDsKK+acgOaWsCA+IHNhaXNoaW5cIDsKK+S7o+WEnyA+IGRhaXNob3VcIDsKK+mdqeijhSA+IGthd2Fzb3VcIDsKK+S7j+WNsCA+IGZ1dHN1aW5cIDsKK+S4u+aVmSA+IHNodWt5b3VcIDsKK+S4gOaxuiA+IGlra2V0c3VcIDsKK+S6i+WunyA+IGppaml0c3VcIDsKK+S4reabtCA+IGNodXVrb3VcIDsKK+S6iOWvnyA+IHlvc2F0c3VcIDsKK+S4gOaxlyA+IGhpdG9hc2VcIDsKK+iruOiosyA+IHNob3dha2VcIDsKK+acneaGsiA+IGNob3VrZW5cIDsKK+WnpuetliA+IGthbnNha3VcIDsKK+S7suS7lSA+IG5ha2FzaGlcIDsKK+acrOW/gyA+IGhvbnNoaW5cIDsKK+S7suS7iyA+IGNodXVrYWlcIDsKK+S7suS6uiA+IG5ha291ZG9cIDsKK+S6rOWcsCA+IGt5b3VjaGlcIDsKK+acrOW+qSA+IGhvbnB1a3VcIDsKK+iyt+WPjiA+IGJhaXNodXVcIDsKK+aVmemgrSA+IGt5b3V0b3VcIDsKK+S4gOavqyA+IGljaGlnb3VcIDsKK+aeoOWGhSA+IHdha3VuYWlcIDsKK+S4reaZryA+IGNodXVrZWlcIDsKK+S4gOavmyA+IGljaGltb3VcIDsKK+iAs+WeoiA+IG1pbWlha2FcIDsKK+eJp+iNiSA+IGJva3Vzb3VcIDsKK+aZguevgCA+IGppc2V0c3VcIDsKK+mhleatoyA+IGtlbnNob3VcIDsKK+adseWbvSA+IHRvdWdva3VcIDsKK+Wkp+mHjyA+IHRhaXJ5b3VcIDsKK+aVmemerSA+IGt5b3ViZW5cIDsKK+mkqOWGhSA+IGthbicnbmFpXCA7CivkuK3ml6wgPiBjaHV1anVuXCA7Civni6nnjJ8gPiBzaHVyeW91XCA7Civmm7TmlrAgPiBrb3VzaGluXCA7CivnuKbpmpQgPiBqdXVrYWt1XCA7CivkuK3mlq0gPiBjaHV1ZGFuXCA7Civpm5Hpp4EgPiB6YXBwYWt1XCA7CivpoJPni4IgPiB0b25reW91XCA7Civpm6jpm7IgPiBhbWFndW1vXCA7CivlpLHpgI8gPiBzaGl0dG91XCA7CivkuKHmm78gPiByeW91Z2FlXCA7Civpm6rpmqAgPiBzZXRjaGluXCA7Civml6fol6kgPiBreXV1aGFuXCA7CivkuK3mlbAgPiBjaHV1c3V1XCA7CivmnKvluqcgPiBtYXRzdXphXCA7Civpo7TlnYogPiBhbWVuYm91XCA7Civku6PkvZwgPiBkYWlzYWt1XCA7CivmnKzluoEgPiBob25jaG91XCA7CivkuLjmkI0gPiBtYXJ1em9uXCA7CivmnpflhoUgPiByaW4nJ25haVwgOwor5pys5bm0ID4gaG9uJyduZW5cIDsKK+irp+iqvyA+IGthaWNob3VcIDsKK+acq+W6gyA+IHN1ZWhpcm9cIDsKK+S4reaUryA+IGNodXVzaGlcIDsKK+aXgeiouyA+IGJvdWNodXVcIDsKK+S7o+S8kSA+IGRhaWt5dXVcIDsKK+eJp+iIjiA+IGJva3VzaGFcIDsKK+S7j+WFtyA+IGJ1dHN1Z3VcIDsKK+S6oeWbvSA+IGJvdWtva3VcIDsKK+itpuesmyA+IGtlaXRla2lcIDsKK+acq+W4rSA+IG1hc3Nla2lcIDsKK+isueiBtCA+IGtpbmNob3VcIDsKK+iruOihjCA+IHNob2d5b3VcIDsKK+eOieW6pyA+IGd5b2t1emFcIDsKK+iAgeWwkSA+IHJvdXNob3VcIDsKK+acrOW3niA+IGhvbnNodXVcIDsKK+aXp+iUtSA+IGt5dXV6b3VcIDsKK+S5heaHkCA+IGt5dXVrYWlcIDsKK+iAgeWwhiA+IHJvdXNob3VcIDsKK+eMm+avkiA+IG1vdWRva3VcIDsKK+e3mOm7mSA+IGthbm1va3VcIDsKK+S7i+WFpSA+IGthaW55dXVcIDsKK+aYqOe0mSA+IHNha3VzaGlcIDsKK+S4gOanmCA+IGljaGl5b3VcIDsKK+e/kuaFoyA+IHNodXVrYW5cIDsKK+abneabuCA+IGJha3VzaG9cIDsKK+S4oeaWuSA+IHJ5b3Vob3VcIDsKK+ixueWkiSA+IGh5b3VoZW5cIDsKK+aVkemboyA+IGt5dXVuYW5cIDsKK+eQg+S9kyA+IGt5dXV0YWlcIDsKK+S4oeaWrSA+IHJ5b3VkYW5cIDsKK+WlpeihjCA+IG9rdXl1a2lcIDsKK+acneW7tyA+IGNob3V0ZWlcIDsKK+aWh+mAmiA+IGJ1bnRzdXVcIDsKK+mjn+WhqSA+IHNob2t1ZW5cIDsKK+eGsembsiA+IG5ldHN1dW5cIDsKK+mbu+mLsyA+IGRlbmNodXVcIDsKK+aVmemWgCA+IGt5b3Vtb25cIDsKK+mbkemfsyA+IHphdHN1b25cIDsKK+aWueinkiA+IGhvdWdha3VcIDsKK+eLm+eKrCA+IGtvbWFpbnVcIDsKK+ePjeWVjyA+IGNoaW5tb25cIDsKK+Wksei4qiA+IHNoaXNzb3VcIDsKK+eJm+iIjiA+IGd5dXVzaGFcIDsKK+S7meS6uiA+IHNlbicnbmluXCA7Civpm4HpppYgPiBnYW5rdWJpXCA7Civmmqbms5UgPiByZWtpaG91XCA7CivlpKnou7ggPiB0ZW5qaWt1XCA7Civoqp7ph4ggPiBnb3NoYWt1XCA7CivkurrliY0gPiBoaXRvbWFlXCA7Civnj77ku7sgPiBnZW4nJ25pblwgOwor5aSc6YGTID4geW9taWNoaVwgOwor6KuW6Kq/ID4gcm9uY2hvdVwgOwor5LmZ5behID4gb3RzdWp1blwgOwor5aSP6YeOID4gbmF0c3Vub1wgOwor57+S5oCnID4gc2h1dXNlaVwgOwor5aSW6YOtID4gZ2Fpa2FrdVwgOwor54+N5ZOBID4gY2hpbnBpblwgOwor5pyd5biCID4gYXNhaWNoaVwgOwor5aWJ6KqtID4gaG91ZG9rdVwgOwor5ayM5ZCNID4ga3lvdW1laVwgOwor5pi856S8ID4gY2h1dXJlaVwgOwor54mn6ICFID4gYm9rdXNoYVwgOwor542j5oW+ID4ganV1eW9rdVwgOwor5pyr5bC+ID4gbWF0c3ViaVwgOwor5LiL5pyfID4gc2hpbW9raVwgOwor5aSn6LqrID4gdGFpc2hpblwgOwor6aCt5rOoID4gdG91Y2h1dVwgOwor5pWw6YePID4gc3V1cnlvdVwgOwor54eX6YWSID4ga2FuemFrZVwgOwor5LuV5LqLID4gc2hpZ290b1wgOwor5paw6KiCID4gc2hpbnRlaVwgOwor6KuW6KmVID4gcm9ucHlvdVwgOwor5LiK5pyNID4gdXdhZnVrdVwgOwor5pyo5bGlID4gcG9ra3VyaVwgOwor5pyr5a+6ID4gbWF0c3VqaVwgOwor6KuW6Ki8ID4gcm9uc2hvdVwgOwor54mp572uID4gbW9ub29raVwgOwor5pyN5b6TID4gZnVrdWp1dVwgOwor5LiJ5pyIID4gbWl0c3VraVwgOwor5pyN5b25ID4gZnVrdWVraVwgOwor5Lih5pCNID4gcnlvdXpvblwgOwor54mb6ISCID4gZ3l1dXNoaVwgOwor54mn576KID4gYm9rdXlvdVwgOwor5paH6LqrID4gYnVuc2hpblwgOwor5aOr6ZW3ID4gc2hpY2hvdVwgOwor5aSJ6YePID4gaGVucnlvdVwgOwor5LiH5pyJID4gYmFuJyd5dXVcIDsKK+acrOWuhSA+IGhvbnRha3VcIDsKK+absuaKgCA+IGt5b2t1Z2lcIDsKK+mdkuibmSA+IGFvZ2FlcnVcIDsKK+acieW+syA+IHl1dXRva3VcIDsKK+eJuee0miA+IHRva2t5dXVcIDsKK+eMruacqCA+IGtlbmJva3VcIDsKK+mjm+WcsCA+IHRvYmljaGlcIDsKK+eMq+advyA+IG5la29pdGFcIDsKK+aXpeiLsSA+IG5pY2hpZWlcIDsKK+S7j+S6iyA+IGJ1dHN1amlcIDsKK+iri+isgSA+IHNlaWV0c3VcIDsKK+aYk+e1jCA+IGVraWt5b3VcIDsKK+ipqembhiA+IHNoaXNodXVcIDsKK+iyneWJsiA+IGthaXdhcmlcIDsKK+S4jeaXpSA+IGZ1aml0c3VcIDsKK+aalua1gSA+IGRhbnJ5dXVcIDsKK+S4gOadoSA+IGljaGlqb3VcIDsKK+mdkuiZqyA+IGFvbXVzaGlcIDsKK+irkuinoyA+IHJ5b3VrYWlcIDsKK+aUuemdqSA+IGthaWtha3VcIDsKK+S4iuaYhyA+IGpvdXNob3VcIDsKK+S4ieaYpSA+IHNhbnNodW5cIDsKK+acveWjiiA+IGt5dXVrYWlcIDsKK+S4gOacrSA+IGlzc2F0c3VcIDsKK+iAkOWcpyA+IHRhaWF0c3VcIDsKK+S4gOacmyA+IGljaGlib3VcIDsKK+aWsOijhSA+IHNoaW5zb3VcIDsKK+e4q+mHnSA+IG51aWJhcmlcIDsKK+S7geS+oCA+IGppbmt5b3VcIDsKK+mggueCuSA+IGNob3V0ZW5cIDsKK+S4gOabsiA+IGlra3lva3VcIDsKK+S4ueW/tSA+IHRhbicnbmVuXCA7Civpn7PniakgPiBpbm1vdHN1XCA7Civml6XoiJ4gPiBuaWNoaWJ1XCA7Civml6foh5ggPiBreXV1cm91XCA7CivnjaPlv4MgPiBqdXVzaGluXCA7Civoq4voqJcgPiBzZWl0YWt1XCA7CivkuLnlv4MgPiB0YW5zaGluXCA7CivogIHlooMgPiByb3VreW91XCA7CivkuLvlvbkgPiBzaHV5YWt1XCA7CivlpKfos54gPiB0YWlzaG91XCA7Civku4rkuIAgPiBpbWFpY2hpXCA7CivkuIfmlpsgPiBiYW5rb2t1XCA7CivkuInmlZkgPiBzYW5reW91XCA7CivkuIDmmakgPiBoaXRvYmFuXCA7CivpoJjmtbcgPiByeW91a2FpXCA7CivkuLvlvLUgPiBzaHVjaG91XCA7CivlpKnosaEgPiB0ZW5zaG91XCA7Civmmannhp8gPiBiYW5qdWt1XCA7CivlpqXntZAgPiBkYWtldHN1XCA7CivmmKXnp4sgPiBoYXJ1YWtpXCA7Civosqnkv4MgPiBoYW5zb2t1XCA7CivniZvnvLYgPiBneXV1a2FuXCA7CivmnIDlvLcgPiBzYWlreW91XCA7CivlpInpgJ8gPiBoZW5zb2t1XCA7CivlpInpgJogPiBoZW50c3V1XCA7Civni4LniqwgPiBreW91a2VuXCA7Civnv4zlubQgPiB5b2t1bmVuXCA7CivmmannhacgPiBiYW5zaG91XCA7CivorJvnv5IgPiBrb3VzaHV1XCA7CivmlofosqwgPiBidW5zZWtpXCA7CivmmpfmrrogPiBhbnNhdHN1XCA7CivmlbXou40gPiB0ZWtpZ3VuXCA7CivnibnnrYkgPiB0b2t1dG91XCA7CivniYfohZUgPiBrYXRhdWRlXCA7CivlpYfooZMgPiBraWp1dHN1XCA7CivkuIDml6wgPiBpY2hpanVuXCA7CivkuZ7lqb8gPiBrb2ltdWtvXCA7CivpoLjmpI4gPiBrZWl0c3VpXCA7Civosqzku7sgPiBzZWtpbmluXCA7CivpoZTmlpkgPiBnYW5yeW91XCA7CivoqpXovrAgPiB0YW5zaGluXCA7Civmlpzop5IgPiBzaGFrYWt1XCA7CivmnKvlpbMgPiBtYXRzdWpvXCA7CivpoZXmlZkgPiBrZW5reW91XCA7CivkuK3mgKcgPiBjaHV1c2VpXCA7CivmnLHloqggPiBzaHVib2t1XCA7CivkuIHmlbAgPiBjaG91c3V1XCA7CivkuIDmlocgPiBpY2hpbW9uXCA7Civml5foibIgPiBoYXRhaXJvXCA7CivmmpfmrJ0gPiBhbicndXRzdVwgOwor5aWz6ImyID4gam9zaG9rdVwgOwor5pen6IGeID4ga3l1dWJ1blwgOwor54mH6IK6ID4ga2F0YWhhaVwgOwor5Li75bitID4gc2h1c2VraVwgOwor5pSv6ZqcID4gc2hpc2hvdVwgOwor5pyx5aGXID4gc2h1bnVyaVwgOwor5LuA5LiAID4ganV1aWNoaVwgOwor6aCY5rC0ID4gcnlvdXN1aVwgOwor6Z2i6Ii1ID4gb21va2FqaVwgOwor6aCY5rCRID4gcnlvdW1pblwgOwor5Li45bivID4gbWFydW9iaVwgOwor57eP6auYID4gc291ZGFrYVwgOwor6KyA6IejID4gYm91c2hpblwgOwor5aOw6YePID4gc2VpcnlvdVwgOwor5pyn5aScID4gb2Jvcm95b1wgOwor5aSJ6LqrID4gaGVuc2hpblwgOwor5aOB6Z2iID4gaGVraW1lblwgOwor57+w5aKoID4ga2FuYm9rdVwgOwor5LmZ5aerID4gb3RvaGltZVwgOwor546E5aaZID4gZ2VubXlvdVwgOwor57645byxID4gcnVpamFrdVwgOwor5aSp6KqFID4gdGVuY2h1dVwgOwor5Lmd5aSpID4ga3l1dXRlblwgOwor5Lmd5aSnID4ga3l1dWRhaVwgOwor5LiJ5oyvID4gc2Fuc2hpblwgOwor5LqM5Y2BID4gaGF0YWNoaVwgOwor5LiN5oqcID4gZnViYXRzdVwgOwor5Lit5bq4ID4gY2h1dXlvdVwgOwor6aGV5o+aID4ga2VuJyd5b3VcIDsKK+Wkp+ipsCA+IG9vZHp1bWVcIDsKK+S4oeaApyA+IHJ5b3VzZWlcIDsKK+iqv+ijvSA+IGNob3VzZWlcIDsKK+ixquWVhiA+IGdvdXNob3VcIDsKK+aWh+iqvyA+IGJ1bmNob3VcIDsKK+Wkp+iplCA+IHRhaXNob3VcIDsKK+absuW6piA+IGt5b2t1ZG9cIDsKK+S4reW5tCA+IGNodXVuZW5cIDsKK+e3qOmbhiA+IGhlbnNodXVcIDsKK+S4gOaPoSA+IGljaGlha3VcIDsKK+absuW6hyA+IGt5b2t1aGlcIDsKK+WpieabsiA+IGVua3lva3VcIDsKK+iqrOirrSA+IHNldHN1eXVcIDsKK+eLgueAviA+IGt5b3VyYW5cIDsKK+S6pOS/oSA+IGtvdXNoaW5cIDsKK+S4reW4vSA+IGNodXVib3VcIDsKK+aYpeecoCA+IHNodW5taW5cIDsKK+mgrOahgSA+IGhvb2dldGFcIDsKK+S4reW3uyA+IGNodXVrYW5cIDsKK+eJp+erpSA+IGJva3Vkb3VcIDsKK+adseS6rCA+IHRvdWt5b3VcIDsKK+acrOWbvSA+IGhvbmdva3VcIDsKK+iqrOipsSA+IHNldHN1d2FcIDsKK+mjn+WIuCA+IHNob2trZW5cIDsKK+S4u+WwhiA+IHNodXNob3VcIDsKK+adpeS/oSA+IHJhaXNoaW5cIDsKK+acgOWwkSA+IHNhaXNob3VcIDsKK+acgOWwjyA+IHNhaXNob3VcIDsKK+S4u+WvqSA+IHNodXNoaW5cIDsKK+S6jOWIlyA+IG5pcmV0c3VcIDsKK+S4gOaLrCA+IGlra2F0c3VcIDsKK+mdnuiBtyA+IGhpc2hva3VcIDsKK+aUuemLsyA+IGthaWNodXVcIDsKK+eMm+aSgyA+IG1vdWdla2lcIDsKK+aVj+mAnyA+IGJpbnNva3VcIDsKK+mgrOadliA+IGhvb2R6dWVcIDsKK+aWsOiRlyA+IHNoaW5jaG9cIDsKK+ePjeS7gCA+IGNoaW5qdXVcIDsKK+e+nuaBpSA+IHNodXVjaGlcIDsKK+S5neWcsCA+IGt5dXVjaGlcIDsKK+aYjueiuiA+IG1laWtha3VcIDsKK+e3j+mhjSA+IHNvdWdha3VcIDsKK+S6jOWFqyA+IG5paGFjaGlcIDsKK+irq+iHoyA+IGthbnNoaW5cIDsKK+mdmeiBtCA+IHNlaWNob3VcIDsKK+aZr+azgSA+IGtlaWt5b3VcIDsKK+e3j+mgmCA+IHNvdXJ5b3VcIDsKK+aXpee1piA+IG5pa2t5dXVcIDsKK+Wkp+ihhiA+IHRhaXNodXVcIDsKK+acseWUhyA+IHNodXNoaW5cIDsKK+mbhumHkSA+IHNodXVraW5cIDsKK+mbqOi2syA+IGFtZWFzaGlcIDsKK+aVtOiqvyA+IHNlaWNob3VcIDsKK+aVt+iorSA+IGZ1c2V0c3VcIDsKK+aapuaVsCA+IHJla2lzdXVcIDsKK+aWsOiMtiA+IHNoaW5jaGFcIDsKK+miqOWcpyA+IGZ1dWF0c3VcIDsKK+e3j+mdqSA+IHNvdWdhd2FcIDsKK+S4reWwiiA+IGNodXV6b25cIDsKK+WkluinkiA+IGdhaWtha3VcIDsKK+S4reWwhiA+IGNodXVqb3VcIDsKK+aYjueerSA+IG1laXJ5b3VcIDsKK+e4t+iqrCA+IHJ1c2V0c3VcIDsKK+mbhumFjSA+IHNodXVoYWlcIDsKK+aciOWkriA+IGdldHN1b3VcIDsKK+S4reWuriA+IGNodXVndXVcIDsKK+e2v+mjtCA+IHdhdGFhbWVcIDsKK+aciOWknCA+IHRzdWtpeW9cIDsKK+eJiOexjSA+IGhhbnNla2lcIDsKK+WkieiqvyA+IGhlbmNob3VcIDsKK+S4ieW+syA+IHNhbnRva3VcIDsKK+mZsOmssSA+IGluJyd1dHN1XCA7Civnt5HpmbAgPiByeW9rdWluXCA7CivmlbXoppYgPiB0ZWtpc2hpXCA7CivorJvnqbYgPiBrb3VreXV1XCA7CivmlL7pgLggPiBob3VpdHN1XCA7CivkuIrlvbkgPiB1d2F5YWt1XCA7CivlopfpoY0gPiB6b3VnYWt1XCA7CivkuIDmga8gPiBoaXRvaWtpXCA7CivmlrDoiIggPiBzaGlua291XCA7CivkubPliaQgPiBueXV1emFpXCA7CivmmI7nmb0gPiBtZWloYWt1XCA7CivmlLnpgLIgPiBrYWlzaGluXCA7CivkuIvluqcgPiBzaGltb3phXCA7CivorJnnp7AgPiBrZW5zaG91XCA7CivpoJjmnIkgPiByeW91eXV1XCA7CivkuIDlv7UgPiBpY2hpbmVuXCA7CivkuIflvJUgPiBtYW5iaWtpXCA7CivogJXkvZwgPiBrb3VzYWt1XCA7CivnibnnlKMgPiB0b2t1c2FuXCA7CivpoZXlvbAgPiBrZW5zaG91XCA7CivmnKjlj6MgPiBraWd1Y2hpXCA7CivkuIDlvrkgPiBpdHRldHN1XCA7CivpoZTlvbkgPiBrYW95YWt1XCA7Civnv7vliLsgPiBob25rb2t1XCA7Civpo5/kuosgPiBzaG9rdWppXCA7Civnt4/plbcgPiBzb3VjaG91XCA7CivkuInlubQgPiBzYW4nJ25lblwgOwor5pel56uLID4gaGl0YWNoaVwgOwor5pWR6LKnID4ga3l1dWhpblwgOwor5pat6IW4ID4gZGFuY2hvdVwgOwor5LiK5bitID4gam91c2VraVwgOwor6KqN6Ki8ID4gbmluc2hvdVwgOwor5p2P5LuBID4ga3lvdW5pblwgOwor5LiH5bm0ID4gbWFuJyduZW5cIDsKK+eJqeeahCA+IGJ1dHRla2lcIDsKK+aXp+eovyA+IGt5dXVrb3VcIDsKK+mZuOmiqCA+IHJpa3VmdXVcIDsKK+S4gOW8jyA+IGlzc2hpa2lcIDsKK+acl+WUsSA+IHJvdXNob3VcIDsKK+eLguatuyA+IGt5b3VzaGlcIDsKK+iAgeWDlSA+IHJvdWJva3VcIDsKK+e+pOWwjyA+IGd1bnNob3VcIDsKK+eKtuazgSA+IGpvdWt5b3VcIDsKK+aWsOiBniA+IHNoaW5idW5cIDsKK+S4reWkrSA+IGNodXV5b3VcIDsKK+acrOWJhyA+IGhvbnNva3VcIDsKK+S4reWkqSA+IGNodXV0ZW5cIDsKK+e2semgmCA+IGtvdXJ5b3VcIDsKK+S4reWkliA+IGNodXVnYWlcIDsKK+aVmeiqqCA+IGt5b3VrYWlcIDsKK+WltOetiSA+IHlhdHN1cmFcIDsKK+eLrOaWrSA+IGRva3VkYW5cIDsKK+ipsOiyrCA+IGtpc3Nla2lcIDsKK+iAkOS5hSA+IHRhaWt5dXVcIDsKK+maiumVtyA+IHRhaWNob3VcIDsKK+mbo+iqrSA+IG5hbmRva3VcIDsKK+mhp+WuoiA+IGtva3lha3VcIDsKK+eLrOaWhyA+IGRva3VidW5cIDsKK+S4gOW4liA+IGljaGlqb3VcIDsKK+aXl+ervyA+IGhhdGF6YW9cIDsKK+mciuiWrCA+IHJlaXlha3VcIDsKK+S4gOW3oSA+IGljaGlqdW5cIDsKK+eEvOmmmSA+IHNob3Vrb3VcIDsKK+aVmeiokyA+IGt5b3VrdW5cIDsKK+S4jeWxiCA+IGZ1a3V0c3VcIDsKK+acqOWIgCA+IGJva3V0b3VcIDsKK+e2mumosCA+IHpva3V0b3VcIDsKK+aWsOe+hSA+IHNoaXJhZ2lcIDsKK+WjsOiqvyA+IHNlaWNob3VcIDsKK+Wil+mVtyA+IHpvdWNob3VcIDsKK+aageaYnyA+IGd5b3VzZWlcIDsKK+mZuumboyA+IGtlbicnbmFuXCA7CivkuIrlsaUgPiB1d2FiYWtpXCA7CivmnKzlhYMgPiBob25tb3RvXCA7CivkuK3loIUgPiBjaHV1a2VuXCA7CivkuK3loIIgPiBjaHV1ZG91XCA7CivlpI/ompUgPiBuYXRzdWdvXCA7CivkuInlsLogPiBzYW5qYWt1XCA7CivlpKnojYkgPiB0ZW5ndXNhXCA7CivmnIjllYYgPiBnZXNzaG91XCA7Civnt5rph48gPiBzZW5yeW91XCA7CivkuI3lrp8gPiBmdWppdHN1XCA7CivpnaLnqY0gPiBtZW5zZWtpXCA7CivkuIvlrr8gPiBnZXNodWt1XCA7CivorbDmsbogPiBnaWtldHN1XCA7CivkubHkvZwgPiByYW5zYWt1XCA7CivkuIvlrrYgPiBzaGl0YXlhXCA7CivkuIrlrr8gPiBqb3V5YWRvXCA7CivosYrlh7YgPiBob3VreW91XCA7CivnjJ/luKsgPiByeW91c2hpXCA7Civml6fnn6UgPiBreXV1Y2hpXCA7CivniZvnl5ggPiBneXV1dG91XCA7CivoqbPoq5YgPiBzaG91cm9uXCA7CivniannkIYgPiBidXRzdXJpXCA7Civmm7TlnLAgPiBzYXJhY2hpXCA7CivniZvnlqsgPiBneXV1ZWtpXCA7CivmnKjlg48gPiBtb2t1em91XCA7CivmnJ3liIogPiBjaG91a2FuXCA7CivmnJ3lh6ogPiBhc2FuYWdpXCA7CivkuLvllLEgPiBzaHVzaG91XCA7Civnt6jovK8gPiBoZW5zaHV1XCA7CivkuIDlsYAgPiBpa2t5b2t1XCA7CivkuIDlsLogPiBpc3NoYWt1XCA7Civni6zmjqIgPiBkb2t1dGFuXCA7Civnt5Hph44gPiByeW9rdXlhXCA7CivkuIPlrp0gPiBzaGlwcG91XCA7CivoqbPoqIAgPiBzaG91Z2VuXCA7Civnt4/ph48gPiBzb3VyeW91XCA7Civml6fnm6QgPiBreXV1YmFuXCA7CivoqbPop6MgPiBzaG91a2FpXCA7CivlpZHntIQgPiBrZWl5YWt1XCA7Civpm6PooYwgPiBuYW5neW91XCA7CivmnIjlj44gPiBnZXNzaHV1XCA7Civpm5HoqbEgPiB6YXRzdXdhXCA7Civml6fnm4YgPiBreXV1Ym9uXCA7CivkuIDlrr8gPiBpc3NodWt1XCA7CivkubHkuIEgPiByYW5jaG91XCA7CivnhKHpqqggPiBidWtvdHN1XCA7Civlo7LooYwgPiB1cmV5dWtpXCA7CivpoIHmlbAgPiBwxJNqaXN1dVwgOwor5pat57aaID4gZGFuem9rdVwgOwor6Z+z5puyID4gb25neW9rdVwgOwor5LiA5a2YID4gaWNoaXpvblwgOwor5aSV6I+FID4geXV1c3VnZVwgOwor5pa9562WID4gc2hpc2FrdVwgOwor5pel55m9ID4gbmlwcGFrdVwgOwor5aSn6IW4ID4gZGFpY2hvdVwgOwor54mi542EID4gcm91Z29rdVwgOwor54qs5qmHID4gaW51em9yaVwgOwor5LiO5aWqID4geW9kYXRzdVwgOwor5pys5Lq6ID4gaG9uJyduaW5cIDsKK+mZpOmbqiA+IGpvc2V0c3VcIDsKK+eGn+irhyA+IGp1a3VkYW5cIDsKK+WkseiAgyA+IHNoaWtrb3VcIDsKK+eJoeeMqyA+IG9zdW5la29cIDsKK+aZqeaYpSA+IGJhbnNodW5cIDsKK+WknOiJsiA+IHlhc2hva3VcIDsKK+eLrOaIvyA+IGRva3Vib3VcIDsKK+aZr+aVmSA+IGtlaWt5b3VcIDsKK+S4reWVkyA+IGNodXVrZWlcIDsKK+aWsOexsyA+IHNoaW5tYWlcIDsKK+aWueetliA+IGhvdXNha3VcIDsKK+eKrOanmSA+IGludW1ha2lcIDsKK+acqOS7jyA+IGtpYnV0c3VcIDsKK+aXqeeVqiA+IGhheWFiYW5cIDsKK+WkmuiJsiA+IHRhc2hva3VcIDsKK+aapuW5tCA+IHJla2luZW5cIDsKK+acrOS4uCA+IGhvbm1hcnVcIDsKK+aZqeaWuSA+IGJhbmdhdGFcIDsKK+WkqeiBtCA+IHRlbmNob3VcIDsKK+e5ree0rCA+IGtlbmNodXVcIDsKK+eMn+WumCA+IHJ5b3VrYW5cIDsKK+mdkuelqCA+IHNlaWh5b3VcIDsKK+ixiuS9nCA+IGhvdXNha3VcIDsKK+eMm+WwhiA+IG1vdXNob3VcIDsKK+miqOS/lyA+IGZ1dXpva3VcIDsKK+eLguaatCA+IGt5b3Vib3VcIDsKK+S4iuWjsCA+IGpvdXNob3VcIDsKK+S4iOWkqyA+IG1hc3VyYW9cIDsKK+aciOWIqSA+IGdldHN1cmlcIDsKK+aUueiosyA+IGthaXlha3VcIDsKK+Wil+mHjyA+IHpvdXJ5b3VcIDsKK+mbtuiQvSA+IHJlaXJha3VcIDsKK+S4uOWNgSA+IG1hcnVqdXVcIDsKK+mbhuioiCA+IHNodXVrZWlcIDsKK+ipseihkyA+IHdhanV0c3VcIDsKK+eJneeKrCA+IG1lc3VpbnVcIDsKK+eGn+impyA+IGp1a3VyYW5cIDsKK+eGn+imliA+IGp1a3VzaGlcIDsKK+mdouebriA+IG1lbm1va3VcIDsKK+eFjumNiyA+IGlyaW5hYmVcIDsKK+eOhOS6uiA+IGt1cm91dG9cIDsKK+aWreeusSA+IGRhbmJha29cIDsKK+acneS8miA+IGNob3VrYWlcIDsKK+Whq+mamSA+IHRlbmdla2lcIDsKK+S4iuWhlyA+IHV3YW51cmlcIDsKK+S4gOWmgiA+IGljaGlueW9cIDsKK+S4jeWfkiA+IGZ1cmFjaGlcIDsKK+e3iui/qyA+IGtpbnBha3VcIDsKK+S4h+WigyA+IGJhbmt5b3VcIDsKK+irluetliA+IHJvbnNha3VcIDsKK+ios+i8iSA+IHlha3VzYWlcIDsKK+acieWEnyA+IHl1dXNob3VcIDsKK+aYjua+hCA+IG1laWNob3VcIDsKK+S4gOWkpyA+IGljaGlkYWlcIDsKK+ipleirliA+IGh5b3Vyb25cIDsKK+iqv+e3tCA+IGNob3VyZW5cIDsKK+S4reWOnyA+IGNodXVnZW5cIDsKK+iqpOiEsSA+IGdvZGF0c3VcIDsKK+eLguaWhyA+IGt5b3VidW5cIDsKK+iqreiAhSA+IGRva3VzaGFcIDsKK+WjsuiWrCA+IGJhaXlha3VcIDsKK+ixhuS5syA+IHRvdW55dXVcIDsKK+S4gOWjsCA+IGhpdG9rb2VcIDsKK+mciuiCiSA+IHJlaW5pa3VcIDsKK+S4reWNiiA+IGNodXVoYW5cIDsKK+aWmee0mSA+IHJ5b3VzaGlcIDsKK+aVtOiFuCA+IHNlaWNob3VcIDsKK+S4i+WcsCA+IHNoaXRhamlcIDsKK+aWsOeoriA+IHNoaW5zaHVcIDsKK+Wil+mAsiA+IHpvdXNoaW5cIDsKK+mdoueWlCA+IG1lbmNob3VcIDsKK+mgguaItCA+IGNob3VkYWlcIDsKK+irlueptiA+IHJvbmt5dXVcIDsKK+aWsOeojiA+IHNoaW56ZWlcIDsKK+mZjembuSA+IGtvdWh5b3VcIDsKK+mdmeeahCA+IHNlaXRla2lcIDsKK+ipleiogCA+IGh5b3VnZW5cIDsKK+S4i+WbsyA+IHNoaXRhenVcIDsKK+S4gOWhgSA+IGljaGlydWlcIDsKK+aUueihjCA+IGthaWd5b3VcIDsKK+S4gOWgtCA+IGljaGlqb3VcIDsKK+S4uOWFrCA+IG1hcnVrb3VcIDsKK+iqnuiEiCA+IGdvbXlha3VcIDsKK+WlveeQgyA+IGtvdWt5dXVcIDsKK+S4ieWbvSA+IHNhbmdva3VcIDsKK+S4oeWQjSA+IHJ5b3VtZWlcIDsKK+maj+i6qyA+IHp1aXNoaW5cIDsKK+S4gOWggiA+IGljaGlkb3VcIDsKK+S4h+WbvSA+IGJhbmtva3VcIDsKK+eEoembkSA+IG11emF0c3VcIDsKK+S4reWJjSA+IGNodXV6ZW5cIDsKK+imqum4niA+IHNoaW5yYW5cIDsKK+aWmeewoSA+IHJ5b3VrZW5cIDsKK+mbu+iEsyA+IGRlbicnbm91XCA7CivkuK3liKQgPiBjaHV1YmFuXCA7CivkuK3liIYgPiBjaHV1YnVuXCA7CivntbbpoIIgPiB6ZXRjaG91XCA7CivpoJHlvLcgPiBnYW5reW91XCA7Civml6fniYggPiBreXV1YmFuXCA7CivnuYvnuJsgPiBrZWliYWt1XCA7Civml4/nlJ8gPiB6b2t1c2VpXCA7Civoq4fnrJEgPiBkYW5zaG91XCA7CivlpKrns7ggPiBmdXRvaXRvXCA7Civlp4vmpa0gPiBzaGlneW91XCA7CivkuIDlm6MgPiBpY2hpZGFuXCA7CivoqJjov7AgPiBraWp1dHN1XCA7Civml6nnhp8gPiBzb3VqdWt1XCA7CivoqofoibIgPiBrb3Nob2t1XCA7CivoqJfpgIEgPiB0YWt1c291XCA7CivoqIjph48gPiBrZWlyeW91XCA7CivntbHpoJggPiB0b3VyeW91XCA7Civpm4zomIIgPiBtZXNoaWJlXCA7CivkuK3lhYMgPiBjaHV1Z2VuXCA7CivpoIblv5wgPiBqdW4nJ25vdVwgOwor6Zm46YCBID4gcmlrdXNvdVwgOwor5pyI5LqLID4gZ2V0c3VqaVwgOwor6Kaq6bOlID4gb3lhZG9yaVwgOwor57Wm6aSKID4ga3l1dXlvdVwgOwor54m55q61ID4gdG9rdWRhblwgOwor5Lih5YmNID4gcnlvdW1hZVwgOwor5aSn57KSID4gb290c3VidVwgOwor5LiJ5ZSxID4gc2Fuc2hvdVwgOwor5LiK5ZSHID4gam91c2hpblwgOwor6KiT6L+qID4ga3VudGVraVwgOwor54m55q6KID4gdG9rdXNodVwgOwor6Kqs57WMID4gc2Vra3lvdVwgOwor5aKD6YGHID4ga3lvdWd1dVwgOwor5pel54WnID4gbmlzc2hvdVwgOwor5pWR6I2SID4ga3l1dWtvdVwgOwor6Kmm6JasID4gc2hpeWFrdVwgOwor6KmQ6KGTID4gc2FqdXRzdVwgOwor5Lih5YiGID4gcnlvdWJ1blwgOwor6ZuM6JWKID4gbWVzaGliZVwgOwor5Lih5YiAID4gcnlvdXRvdVwgOwor5pKl6Z+zID4gaGF0c3VvblwgOwor5pu45L+hID4gc2hvc2hpblwgOwor5pmC5pelID4gamlqaXRzdVwgOwor5LiA5ZadID4gaWtrYXRzdVwgOwor5LiN5ZCJID4gZnVraXRzdVwgOwor57ep6KGdID4ga2Fuc2hvdVwgOwor5LiK5ZGKID4gam91a29rdVwgOwor5Lih5YWoID4gcnlvdXplblwgOwor6Zm46LuNID4gcmlrdWd1blwgOwor5Lih5YWaID4gcnlvdXRvdVwgOwor5LiA5ZWPID4gaWNoaW1vblwgOwor6Ki86KiAID4gc2hvdWdlblwgOwor5piH5rGeID4gc2hvdWtvdVwgOwor6Zuo6ISaID4gYW1lYXNoaVwgOwor5paw55ukID4gc2hpbmJhblwgOwor6Ki76KejID4gY2h1dWthaVwgOwor6Z+75b6LID4gaW5yaXRzdVwgOwor5pq05ZynID4gYm91YXRzdVwgOwor5aSp56u6ID4gdGVuamlrdVwgOwor6Kix6Ku+ID4ga3lvZGFrdVwgOwor54iG56CVID4gYmFrdXNhaVwgOwor5Lih5YOPID4gcnlvdXpvdVwgOwor54uC5oWLID4ga3lvdXRhaVwgOwor5aSn56yRID4gdGFpc2hvdVwgOwor5am/5YWlID4gbXVrb2lyaVwgOwor6Kiz6KmpID4geWFrdXNoaVwgOwor5piH5q6/ID4gc2hvdWRlblwgOwor6Zui6ISxID4gcmlkYXRzdVwgOwor6Kiz6KmeID4geWFrdXNoaVwgOwor5piH5q61ID4gc2hvdWRhblwgOwor54mn5rCRID4gYm9rdW1pblwgOwor5aSp56qTID4gdGVubWFkb1wgOwor5LiA5ZG9ID4gaWNoaW1laVwgOwor5pWZ6IKyID4ga3lvdWlrdVwgOwor5LiA5ZGzID4gaGl0b2FqaVwgOwor5aSx56aBID4gc2hpa2tpblwgOwor57eP6KmVID4gc291aHlvdVwgOwor5aaZ5rOVID4gbXlvdWhvdVwgOwor57Wm6Zu7ID4ga3l1dWRlblwgOwor5Lit5LuVID4gbmFrYXNoaVwgOwor6Kaq6aqoID4gb3lhYm9uZVwgOwor5paH56ugID4gYnVuc2hvdVwgOwor5pu45LitID4gc2hvY2h1dVwgOwor5LiH5Y2aID4gYmFucGFrdVwgOwor5LiA5ZCNID4gaWNoaW1laVwgOwor5LiA5ZCMID4gaWNoaWRvdVwgOwor6Z+z5b6LID4gb25yaXRzdVwgOwor5LiL5YqjID4gZ2VyZXRzdVwgOwor6Zuj6IG0ID4gbmFuY2hvdVwgOwor5LiA5Y+3ID4gaWNoaWdvdVwgOwor5LiA5Y+wID4gaWNoaWRhaVwgOwor6Zui6IG3ID4gcmlzaG9rdVwgOwor5LiJ5YqpID4gc2Fuc3VrZVwgOwor5Lih5L6/ID4gcnlvdWJlblwgOwor5pil5pysID4gc2h1bnBvblwgOwor5LiD5Y2BID4gbmFuYWp1dVwgOwor5Lit5LiWID4gY2h1dXNlaVwgOwor6Ka/6Z2iID4gdGVraW1lblwgOwor5aSp56aPID4gdGVucHVrdVwgOwor5paw55SwID4gc2hpbmRlblwgOwor5LiH5YqbID4gbWFucmlraVwgOwor5paw55SfID4gc2hpbnNlaVwgOwor5LiK5Yi7ID4gam91a29rdVwgOwor5LiB5Y2KID4gY2hvdWhhblwgOwor5aSn56aPID4gZGFpZnVrdVwgOwor6aGY5YqbID4gZ2FucmlraVwgOwor5aSp56WQID4gdGVuJyd5dXVcIDsKK+aYqOaZqSA+IHNha3ViYW5cIDsKK+aZqeW5tCA+IGJhbicnbmVuXCA7CivnhafopqcgPiBzaG91cmFuXCA7CivmmKXmmpYgPiBzaHVuZGFuXCA7Civnt4ropoEgPiBraW4nJ3lvdVwgOwor5LiA5Yu6ID4gaXNzaGFrdVwgOwor6KqT57SEID4gc2VpeWFrdVwgOwor5pm65bCGID4gY2hpc2hvdVwgOwor5aao5qWtID4gYm91Z3lvdVwgOwor6Kmp6IiIID4gc2hpa3lvdVwgOwor5Lih5Lq6ID4gcnlvdW5pblwgOwor6Kaz6Z+zID4ga2FuJydub25cIDsKK+aZguaKmCA+IHRva2lvcmlcIDsKK+eJveadnyA+IGtlbnNva3VcIDsKK+aSsOmMsiA+IHNlbnJva3VcIDsKK+aUueiJryA+IGthaXJ5b3VcIDsKK+aWveeJqSA+IHNlbW90c3VcIDsKK+Wlrua/gCA+IGZ1bmdla2lcIDsKK+S4oeS4iSA+IHJ5b3VzYW5cIDsKK+mbu+eulyA+IGRlbnNvcm9cIDsKK+imqumhniA+IHNoaW5ydWlcIDsKK+eLrOWljyA+IGRva3Vzb3VcIDsKK+e1kOmcsiA+IGtldHN1cm9cIDsKK+aXp+azlSA+IGt5dXVob3VcIDsKK+aVmee3tCA+IGt5b3VyZW5cIDsKK+eJueaciSA+IHRva3V5dXVcIDsKK+S4iuWBtCA+IHV3YWdhd2FcIDsKK+aZtuWtkCA+IHNob3VzaGlcIDsKK+e4puezuCA+IHRhdGVpdG9cIDsKK+S4gOWGiiA+IGlzc2F0c3VcIDsKK+WnpuaCqiA+IGthbicnYWt1XCA7Civop5LpjJAgPiBrYWt1c3VpXCA7CivntZDpm4YgPiBrZXNzaHV1XCA7CivkuIvlgKQgPiBzaGl0YW5lXCA7CivlpbPmua8gPiBvbicnbmF5dVwgOwor5LiA5YWDID4gaWNoaWdlblwgOwor576F5YiXID4gcmFyZXRzdVwgOwor5pqW5Zu9ID4gZGFua29rdVwgOwor54i95ra8ID4gc291cnlvdVwgOwor5aSp55yfID4gdGVuc2hpblwgOwor6Zmz6KydID4gY2hpbnNoYVwgOwor5paR55m9ID4gaGFucGFrdVwgOwor5LiA5YSEID4gaWNoaW9rdVwgOwor6KiT6KqtID4ga3VuZG9rdVwgOwor5LiY5LiKID4ga3l1dWpvdVwgOwor54ib54afID4gcmFuanVrdVwgOwor5aW95rOBID4ga291a3lvdVwgOwor5pei5rG6ID4ga2lrZXRzdVwgOwor6Kmm6IG0ID4gc2hpY2hvdVwgOwor5piO5pydID4gbWluY2hvdVwgOwor6KiX6KiAID4gdGFrdWdlblwgOwor6aCY5Z+fID4gcnlvdWlraVwgOwor5pqB5aSpID4gZ3lvdXRlblwgOwor6KiA6LKsID4gZ2Vuc2VraVwgOwor5paw54mIID4gc2hpbnBhblwgOwor6Kaq6Zu7ID4gc2hpbmRlblwgOwor5aSq55m9ID4gdGFpaGFrdVwgOwor54m55peoID4gdG9rdXNoaVwgOwor5LiK5L2cID4gam91c2FrdVwgOwor5aSp55qHID4gdGVuJydub3VcIDsKK+S4iuS8uCA+IGpvdXNoaW5cIDsKK+aVsOenkiA+IHN1dWJ5b3VcIDsKK+aVo+etliA+IHNhbnNha3VcIDsKK+aWh+ebuCA+IGJ1bnNob3VcIDsKK+Wjsue0hCA+IGJhaXlha3VcIDsKK+S4ieS8uCA+IHNhbnNoaW5cIDsKK+aXp+atkyA+IGt5dXVrYW5cIDsKK+Wkp+eZvSA+IHRhaWhha3VcIDsKK+S4h+S9nCA+IG1hbnNha3VcIDsKK+aYjuaZsCA+IG1laXNla2lcIDsKK+aZqeWtpiA+IGJhbmdha3VcIDsKK+mgmOWcsCA+IHJ5b3VjaGlcIDsKK+eEpui6gSA+IHNob3Vzb3VcIDsKK+aYjuaZqSA+IG15b3ViYW5cIDsKK+S4gOWAjSA+IGljaGliYWlcIDsKK+aVrOensCA+IGtlaXNob3VcIDsKK+e1gumbuyA+IHNodXVkZW5cIDsKK+S4iuS6uiA+IHNob3VuaW5cIDsKK+aXpeaspyA+IG5pY2hpb3VcIDsKK+S4iuS6rCA+IGpvdWt5b3VcIDsKK+aYjuaYnyA+IG15b3Vqb3VcIDsKK+S4ieS6uiA+IHNhbicnbmluXCA7CivnuKbnrJsgPiB0YXRlYnVlXCA7Civpm4bnvqQgPiBzaHV1Z3VuXCA7CivkuIfkurogPiBtYW4nJ25pblwgOwor5pWZ56+EID4ga3lvdWhhblwgOwor5LiA5L6LID4gaWNoaXJlaVwgOwor5aSn55eFID4gdGFpYnlvdVwgOwor5pWs56WeID4ga2Vpc2hpblwgOwor54m55pKwID4gdG9rdXNlblwgOwor6Kq/55C0ID4gY2hvdWtpblwgOwor6aCt5Y+WID4gdG91ZG9yaVwgOwor6aCG5aKDID4ganVua3lvdVwgOwor6Zuo56ygID4gYW1hZ2FzYVwgOwor57Wm6YeRID4ga3l1dWtpblwgOwor6Kmz57SwID4gc2hvdXNhaVwgOwor57im56m0ID4gdGF0ZWFuYVwgOwor5LiA5Lu7ID4gaWNoaW5pblwgOwor5aSn55S3ID4gb29vdG9rb1wgOwor5LiA5LujID4gaWNoaWRhaVwgOwor572w5YmHID4gYmFzc29rdVwgOwor6ZyH55uqID4gc2hpbnRvdVwgOwor6ZyK55qEID4gcmVpdGVraVwgOwor6Z2Z5rOoID4gam91Y2h1dVwgOwor5aSW55u4ID4gZ2Fpc2hvdVwgOwor5aSa55m6ID4gdGFoYXRzdVwgOwor6Zuo56m6ID4gYW1hem9yYVwgOwor54S26Ku+ID4gemVuZGFrdVwgOwor6Kmu57SiID4gc2Vuc2FrdVwgOwor57mL55WZID4ga2Vpcnl1dVwgOwor5pWj56WoID4gc2FucHlvdVwgOwor57e057+SID4gcmVuc2h1dVwgOwor6KmV6ICFID4gaHlvdXNoYVwgOwor54af57e0ID4ganVrdXJlblwgOwor5LiA5Li4ID4gaWNoaWdhblwgOwor5aSW55qEID4gZ2FpdGVraVwgOwor54us5ZaEID4gZG9rdXplblwgOwor5aSP552AID4gbmF0c3VnaVwgOwor6Kmp57WMID4gc2hpa3lvdVwgOwor54m55o2cID4gdG9rdXNvdVwgOwor5aSp55CDID4gdGVua3l1dVwgOwor5pen5qOyID4ga3l1dXNlaVwgOwor5aa75oi4ID4gdHN1bWFkb1wgOwor5pWZ56iLID4ga3lvdXRlaVwgOwor5paR54yrID4gaGFubXlvdVwgOwor5pmL5bGxID4gc2hpbnphblwgOwor54yf5Lq6ID4gcnlvdWppblwgOwor5peL5q+bID4gdHN1bXVqaVwgOwor5aCx6YWsID4gaG91c2h1dVwgOwor54OI6ZyHID4gcmVzc2hpblwgOwor5pil5oOFID4gc2h1bmpvdVwgOwor57es576KID4gbWVuJyd5b3VcIDsKK+aXp+agliA+IGt5dXVzZWlcIDsKK+e4n+ekvCA+IGpva3VyZWlcIDsKK+Wkp+eNhCA+IHRhaWdva3VcIDsKK+Wkp+eMnyA+IHRhaXJ5b3VcIDsKK+eLguWllCA+IGt5b3Vob25cIDsKK+WiqOiJsiA+IHN1bWlpcm9cIDsKK+e3j+iKsSA+IHNvdWJhbmFcIDsKK+aVpuedpiA+IHRvbmJva3VcIDsKK+imgemgmCA+IHlvdXJ5b3VcIDsKK+eLrOWQnyA+IGRva3VnaW5cIDsKK+imhumdoiA+IGZ1a3VtZW5cIDsKK+e5lOeJqSA+IG9yaW1vbm9cIDsKK+aVrOeZvSA+IGtlaWhha3VcIDsKK+WllOa1gSA+IGhvbnJ5dXVcIDsKK+aXp+adpSA+IGt5dXVyYWlcIDsKK+aXqeacnSA+IHNvdWNob3VcIDsKK+aXp+adkSA+IGt5dXVzb25cIDsKK+aZguWxgCA+IGppa3lva3VcIDsKK+aUr+e1piA+IHNoaWt5dXVcIDsKK+aUv+etliA+IHNlaXNha3VcIDsKK+eLrOWNoCA+IGRva3VzZW5cIDsKK+WkieeXhyA+IGhlbnNob3VcIDsKK+aXpeacnSA+IG5pdGNob3VcIDsKK+aUr+e0oiA+IHNoaXNha3VcIDsKK+WmguaciCA+IG5pZ2F0c3VcIDsKK+aXqeaagSA+IHNvdWd5b3VcIDsKK+WkseeCuSA+IHNoaXR0ZW5cIDsKK+mbkeepgCA+IHpha2tva3VcIDsKK+iln+mrqiA+IGVyaWdhbWlcIDsKK+imqumHjCA+IG95YXphdG9cIDsKK+eFp+iHqCA+IHNob3VyaW5cIDsKK+aXqeaYpSA+IHNvdXNodW5cIDsKK+aYqOW5tCA+IHNha3VuZW5cIDsKK+isueaFjiA+IGtpbnNoaW5cIDsKK+ino+iqrSA+IGthaWRva3VcIDsKK+WkqeeEtiA+IHRlbicnbmVuXCA7CivmlrDms5UgPiBzaGlucG91XCA7CivlpaXmp5ggPiBva3VzYW1hXCA7Civni6zlibUgPiBkb2t1c291XCA7Civml6XmmYIgPiBuaWNoaWppXCA7Civnt5HogqUgPiByeW9rdWhpXCA7CivpoJjliIYgPiByeW91YnVuXCA7Civnt6/ns7ggPiB5b2tvaXRvXCA7Civpm6rnmb0gPiBzZXBwYWt1XCA7CivnibnmgKcgPiB0b2t1c2VpXCA7CivnibnmgKUgPiB0b2treXV1XCA7CivmlLvnqbYgPiBrb3VreXV1XCA7CivpoJjlhoUgPiByeW91bmFpXCA7CivpmYToqK0gPiBmdXNldHN1XCA7Civpm7vnkIMgPiBkZW5reXV1XCA7Civnib3lvLcgPiBrZW5reW91XCA7CivniYfmlrkgPiBrYXRhaG91XCA7CivmlZnnmocgPiBreW91a291XCA7CivoqZ7nq6AgPiBzaGlzaG91XCA7CivoqLPogIUgPiB5YWt1c2hhXCA7CivnibnlvoUgPiB0b2t1dGFpXCA7CivopZ/pppYgPiBlcmlrdWJpXCA7CivlparmoLwgPiBkYWtrYWt1XCA7CivmlbXnirYgPiB0ZWtpam91XCA7CivmkoPpgIAgPiBnZWtpdGFpXCA7Civpm6PnmZYgPiBuYW5rdXNlXCA7CivmlLnnp7AgPiBrYWlzaG91XCA7CivlppnmiYsgPiBteW91c2h1XCA7CivmmKXltZAgPiBzaHVucmFuXCA7CivopbLpm7cgPiBzaHV1cmFpXCA7CivlppnmiYAgPiBteW91c2hvXCA7Civopqrov5EgPiBzaGlua2luXCA7CivmmI7lvrQgPiBtZWljaG91XCA7CivmmI7lvrMgPiBtZWl0b2t1XCA7Civpm6Pnl4cgPiBuYW5zaG91XCA7Civpm6Pnl4UgPiBuYW5ieW91XCA7CivnhKHooYAgPiBtdWtldHN1XCA7CivopprphpIgPiBrYWt1c2VpXCA7Civnt6DntIQgPiB0ZWl5YWt1XCA7CivorZjlrZcgPiBzaGlraWppXCA7CivpmLLoq5wgPiBib3VjaG91XCA7CivmmoHlhYkgPiBneW91a291XCA7CivmlZnnlJ8gPiBreW91c2VpXCA7CivmmJTlubQgPiBzZWtpbmVuXCA7Civoq4vmsYIgPiBzZWlreXV1XCA7CivlpKfmvIEgPiB0YWlyeW91XCA7CivngpLpo68gPiBjaGFhaGFuXCA7CivpoIPliLsgPiBrZWlrb2t1XCA7CivpmaXokL0gPiBrYW5yYWt1XCA7CivoqpjniIYgPiB5dXViYWt1XCA7CivpnZLmnb4gPiBzZWlzaG91XCA7CivlpJbngrogPiBnYWl0YW1lXCA7CivoqLzntJkgPiBzaG91c2hpXCA7CivpnIfngb0gPiBzaGluc2FpXCA7Civmma/li50gPiBrZWlzaG91XCA7CivmmKXlr5IgPiBzaHVua2FuXCA7CivntbHoppogPiB0b3VrYWt1XCA7CivniIbmrbsgPiBiYWt1c2hpXCA7CivntrLohpwgPiBtb3VtYWt1XCA7Civnhp/nn6UgPiBqdWt1Y2hpXCA7CivmmI7lubQgPiBteW91bmVuXCA7CivlpKnmuKwgPiB0ZW5zb2t1XCA7CivlpKnmuJsgPiB0ZW5iaWtpXCA7CivlpY/mpb0gPiBzb3VnYWt1XCA7CivpoJjkvJogPiByeW91a2FpXCA7Civoqr/ms5UgPiBjaG91aG91XCA7CivmmIzlubMgPiBzaG91aGVpXCA7Civlp4nlqb8gPiBhbmVtdWtvXCA7CivntYLou4ogPiBzaHV1c2hhXCA7CivmmpHkuK0gPiBzaG9jaHV1XCA7Civntr/nvoogPiBtZW4nJ3lvdVwgOwor57K+6bqmID4gc2VpYmFrdVwgOwor54af552hID4ganVrdXN1aVwgOwor57ir54mpID4gbnVpbW9ub1wgOwor5pav5qWtID4gc2hpZ3lvdVwgOwor5pm25YWJID4gc2hvdWtvdVwgOwor57eK57ibID4ga2luYmFrdVwgOwor6Kaz6LOeID4ga2Fuc2hvdVwgOwor6Z+T5Zu9ID4ga2Fua29rdVwgOwor6Zuj55CDID4gbmFua3l1dVwgOwor54af55ygID4ganVrdW1pblwgOwor5aKo57O4ID4gc3VtaWl0b1wgOwor6Zmw6IazID4ga2FnZXplblwgOwor6Kmp55qEID4gc2hpdGVraVwgOwor6aCY5Li7ID4gcnlvdXNodVwgOwor5pif5a2mID4gc2VpZ2FrdVwgOwor5aSp5rSlID4gdGVuc2hpblwgOwor6Z2S5pilID4gc2Vpc2h1blwgOwor5pqH5Lq6ID4gaGltYWppblwgOwor6Kaz6LGhID4ga2Fuc2hvdVwgOwor6Z+z5YqbID4gb25yeW9rdVwgOwor54K66YqAID4gdGFtZWdpblwgOwor6KiT6IKyID4ga3VuJydpa3VcIDsKK+WlpeaWuSA+IG9rdWdhdGFcIDsKK+eLqeS6uiA+IGthcnl1ZG9cIDsKK+e0r+mAsiA+IHJ1aXNoaW5cIDsKK+WkqeazoyA+IHRlbmt5dXVcIDsKK+WlruaSgyA+IGZ1bmdla2lcIDsKK+eEvOiKiyA+IHlha2lpbW9cIDsKK+aXp+aHkCA+IGt5dXVrYWlcIDsKK+mZquiHoyA+IGJhaXNoaW5cIDsKK+eJp+W4qyA+IGJva3VzaGlcIDsKK+aWsOahiCA+IHNoaW4nJ2FuXCA7CivpnIfmupAgPiBzaGluZ2VuXCA7Civml6fmhaMgPiBreXV1a2FuXCA7Civpmo7ntJogPiBrYWlreXV1XCA7Civml6fmhYsgPiBreXV1dGFpXCA7CivnibnlrpogPiB0b2t1dGVpXCA7CivmmKjlpJUgPiBzYWt1eXV1XCA7CivpmrvnnLwgPiBzZWtpZ2FuXCA7Civnh4PnhLwgPiBuZW5zaG91XCA7CivmlrDmnaUgPiBzaGlucmFpXCA7CivmmJPlraYgPiBla2lnYWt1XCA7CivlopfntaYgPiB6b3VreXV1XCA7Civml6fmgqogPiBreXV1YWt1XCA7CivmlbDmu7QgPiBzdXV0ZWtpXCA7Civntr7ntbkgPiBheWFnaW51XCA7CivntKLpgZMgPiBzYWt1ZG91XCA7Civlprvlpr4gPiBzYWlzaG91XCA7Civml6fmgaggPiBreXV1a29uXCA7Civml6nmgKUgPiBzb3VreXV1XCA7CivntZDoqp4gPiBrZXRzdWdvXCA7CivmlrDmm7ggPiBzaGluc2hvXCA7CivntJTph48gPiBqdW5yeW91XCA7CivlpbPmiYsgPiBvbicnbmFkZVwgOwor54ax54uCID4gbmVra3lvdVwgOwor5aWz5oi/ID4gbnlvdWJvdVwgOwor5aSW5rW3ID4gc290b3VtaVwgOwor5aSn5q2jID4gdGFpc2hvdVwgOwor5aSx5qipID4gc2hpa2tlblwgOwor5aSn5qyyID4gdGFpeW9rdVwgOwor57WQ6KiXID4ga2V0dGFrdVwgOwor5aSW5rOoID4gZ2FpY2h1dVwgOwor6Ziy6JmrID4gYm91Y2h1dVwgOwor5aSW5rOKID4gZ2FpaGFrdVwgOwor5paw5pifID4gc2hpbnNlaVwgOwor6KaG6LyqID4gZnVrdXJpblwgOwor5pW05rWBID4gc2Vpcnl1dVwgOwor6aCC5LiKID4gY2hvdWpvdVwgOwor54ax54eXID4gYXRzdWthblwgOwor5pel5b2TID4gaGlhdGFyaVwgOwor57Og6ZuoID4gbnVrYWFtZVwgOwor57eP56ewID4gc291c2hvdVwgOwor5pen5byKID4ga3l1dWhlaVwgOwor54Gr6aOfID4ga2FzaG9rdVwgOwor54m55aSnID4gdG9rdWRhaVwgOwor6Kaq6KixID4gb3lhbW90b1wgOwor5pil5Z2KID4gaGFydWJvdVwgOwor6Kmr54q2ID4gd2FiaWpvdVwgOwor6Zu75rWBID4gZGVucnl1dVwgOwor6K2m5ZGKID4ga2Vpa29rdVwgOwor54m55aOyID4gdG9rdWJhaVwgOwor5paw5pS/ID4gc2hpbnNlaVwgOwor5pas5pawID4gemFuc2hpblwgOwor54qv5YmHID4gaGFuc29rdVwgOwor6Zqc56KNID4gc2hvdWdhaVwgOwor54Sh6ImyID4gbXVzaG9rdVwgOwor5aSW5q67ID4gZ2Fpa2FrdVwgOwor6ZuM54qsID4gbWVzdWludVwgOwor5aSp5qWtID4gdGVuZ3lvdVwgOwor6KuW5pW1ID4gcm9udGVraVwgOwor6ZuA55CDID4gamFua3l1dVwgOwor5paH5qeYID4gbW9uJyd5b3VcIDsKK+Wkp+alrSA+IHRhaWd5b3VcIDsKK+aXp+W4qyA+IGt5dXVzaGlcIDsKK+aXheaJgCA+IHRhYmlzaG9cIDsKK+ezuOmLuCA+IGl0b25va29cIDsKK+aWsOaSsCA+IHNoaW5zZW5cIDsKK+ims+ihhiA+IGthbnNodXVcIDsKK+aUvueJpyA+IGhvdWJva3VcIDsKK+eJueWgsSA+IHRva3Vob3VcIDsKK+aWh+alvSA+IGJ1bnJha3VcIDsKK+eEoeiFsCA+IG11Z29zaGlcIDsKK+imquijgSA+IHNoaW5zYWlcIDsKK+mdouW9sSA+IG9tb2thZ2VcIDsKK+eFmeeqgSA+IGVudG90c3VcIDsKK+Wik+eptCA+IGJva2V0c3VcIDsKK+eLguS6uiA+IGt5b3VqaW5cIDsKK+iqv+abuCA+IGNob3VzaG9cIDsKK+aYh+WkqSA+IHNob3V0ZW5cIDsKK+imquihmyA+IHNoaW4nJ2VpXCA7Civni4LkubEgPiBreW91cmFuXCA7CivpnanluK8gPiBrYXdhb2JpXCA7CivlpKnmn7EgPiB0ZW5jaHV1XCA7Civml4XmhIEgPiByeW9zaHV1XCA7Civop6PohLEgPiBnZWRhdHN1XCA7CivmmLzliY0gPiBoaXJ1bWFlXCA7Civntprnt6ggPiB6b2t1aGVuXCA7CivnhrHmvJQgPiBuZXRzdWVuXCA7Civpm6rmtJ4gPiBib25ib3JpXCA7CivnhKHogbcgPiBtdXNob2t1XCA7Civnt4/nnaMgPiBzb3V0b2t1XCA7CivplpPpmpkgPiBrYW5nZWtpXCA7CivoppboqLogPiBzaGlzaGluXCA7CivplpPpmpQgPiBrYW5rYWt1XCA7CivpnbTlsYsgPiBrdXRzdXlhXCA7CivloIXoqr8gPiBrZW5jaG91XCA7Civmlo7mnI0gPiBzYWlmdWt1XCA7Civml6flsYUgPiBreXV1a3lvXCA7Civnt6nnkIMgPiBrYW5reXV1XCA7CivntpnntpogPiBrZWl6b2t1XCA7CivlpKnmnJ0gPiB0ZW5jaG91XCA7Civoppbop5IgPiBzaGlrYWt1XCA7Civml6flsIEgPiBreXV1aG91XCA7CivoqqTmpI0gPiBnb3Nob2t1XCA7CivpmYvnv5IgPiByb3VzaHV1XCA7CivlpKfmnKggPiB0YWlib2t1XCA7Civln47pg60gPiBqb3VrYWt1XCA7CivmlZHmuIggPiBreXV1c2FpXCA7CivoppboppogPiBzaGlrYWt1XCA7Civnt4/nmq4gPiBzb3VnYXdhXCA7CivpmbjnqLIgPiByaWt1dG91XCA7CivmlZnms5UgPiBreW91aG91XCA7Civoqr/mlbQgPiBjaG91c2VpXCA7Civml6flrpggPiBreXV1a2FuXCA7CivlpLHmlawgPiBzaGlra2VpXCA7CivplovpmbMgPiBrYWljaGluXCA7CivlpLHmlZcgPiBzaGlwcGFpXCA7Civlpb3lsJogPiBrb3VzaG91XCA7CivlpYfmipwgPiBraWJhdHN1XCA7CivlpLHmlL8gPiBzaGlzc2VpXCA7CivoqI7nqbYgPiB0b3VreXV1XCA7CivpnIrmn6kgPiByZWlreXV1XCA7Civoqq3mnKwgPiBkb2t1aG9uXCA7CivpmLLoh60gPiBib3VzaHV1XCA7Civoqq3mm7ggPiBkb2t1c2hvXCA7Civniq/kurogPiBoYW4nJ25pblwgOwor5aWl5bqtID4gb2t1bml3YVwgOwor6Kqs5pyNID4gc2VwcHVrdVwgOwor5aaK5aigID4gbmluc2hpblwgOwor5aWl5bqVID4gb2t1em9rb1wgOwor54mn5ZywID4gYm9rdWNoaVwgOwor5pWm5qi4ID4gdG9uYm9rdVwgOwor5aW95a2mID4ga291Z2FrdVwgOwor57eo54mpID4gYW1pbW9ub1wgOwor57aa56+HID4gem9rdWhlblwgOwor5aSp5pW1ID4gdGVudGVraVwgOwor57WM6JS1ID4ga3lvdXpvdVwgOwor6ZyK5pyoID4gcmVpYm9rdVwgOwor5aSc5puyID4geWFreW9rdVwgOwor57eP55S7ID4gc291a2FrdVwgOwor5aSn5pW1ID4gdGFpdGVraVwgOwor54m55ZG9ID4gdG9rdW1laVwgOwor6Zmj56ygID4gamluZ2FzYVwgOwor6ZqG55ubID4gcnl1dXNlaVwgOwor6KmV54K5ID4gaHlvdXRlblwgOwor5paw5oKjID4gc2hpbmthblwgOwor5pWR5rCRID4ga3l1dW1pblwgOwor6KaB6KizID4geW91eWFrdVwgOwor5pen5aeTID4ga3l1dXNlaVwgOwor6ZmN57WmID4ga291a3l1dVwgOwor5pen5aa7ID4ga3l1dXNhaVwgOwor5paH5pWZID4gYnVua3lvdVwgOwor6Z2i5a65ID4gbWVuJyd5b3VcIDsKK+WkieaigyA+IGhlbnRla29cIDsKK+exs+m6piA+IGJlaWJha3VcIDsKK+e0sOieuiA+IGtpc2hhZ29cIDsKK+eGseawlyA+IG5ldHN1a2VcIDsKK+aYqOWGrCA+IHNha3V0b3VcIDsKK+aYpeWIhiA+IHNodW5idW5cIDsKK+ims+iPiiA+IGthbmdpa3VcIDsKK+aXp+WlvSA+IGt5dXVrb3VcIDsKK+mbu+afsSA+IGRlbmNodXVcIDsKK+mWi+mRvyA+IGthaXNha3VcIDsKK+mVt+mbqCA+IG5hZ2FhbWVcIDsKK+WkieagvCA+IGhlbmtha3VcIDsKK+aXp+WllyA+IGt5dXV0b3VcIDsKK+iqnuacqyA+IGdvbWF0c3VcIDsKK+ezp+mBkyA+IHJ5b3Vkb3VcIDsKK+iln+i2syA+IGVyaWFzaGlcIDsKK+isueWRiiA+IGtpbmtva3VcIDsKK+iqrOaVmSA+IHNla2t5b3VcIDsKK+aRmOimgSA+IHRla2l5b3VcIDsKK+itieWIuCA+IHNob3VrZW5cIDsKK+aVmeaoqSA+IGt5b3VrZW5cIDsKK+aXpuWklSA+IHRhbnNla2lcIDsKK+aWreW/tSA+IGRhbicnbmVuXCA7Civml6XlpJwgPiBuaWNoaXlhXCA7Civln47ot6EgPiBqb3VzZWtpXCA7Civml6XlpJUgPiBuaXNzZWtpXCA7CivmmKXlhYkgPiBzaHVua291XCA7CivmlL7mtYEgPiBob3VyeXV1XCA7CivpnIfml6YgPiBzaGludGFuXCA7CivlpaXlsbEgPiBva3V5YW1hXCA7Civml6flop8gPiBreXV1a3lvXCA7CivpnZnlr4IgPiBzZWlqYWt1XCA7Civop6PntIQgPiBrYWl5YWt1XCA7CivlpLHmipUgPiBzaGl0dG91XCA7CivntrHnm64gPiBrb3Vtb2t1XCA7CivngavpiaIgPiBoaWJhY2hpXCA7CivntbbnuIEgPiB6ZXRzdWVuXCA7CivlpJXmlrkgPiB5dXVnYXRhXCA7Civln7fooYwgPiBzaGlra291XCA7Civnspfpo58gPiBzb3Nob2t1XCA7CivmlazmnI0gPiBrZWlmdWt1XCA7CivlpJbmlbUgPiBnYWl0ZWtpXCA7CivmlYXmrrogPiBrb3NhdHN1XCA7CivopoHooZ0gPiB5b3VzaG91XCA7CivlpoTln7cgPiBtb3VzaHV1XCA7CivlooPnm64gPiBzYWthaW1lXCA7CivlpI/ml6UgPiBrYWppdHN1XCA7CivpnIfmkrwgPiBzaGlua2FuXCA7CivmlabmnLQgPiB0b25ib2t1XCA7Civlo7Dmpb0gPiBzZWlnYWt1XCA7Civml6flnosgPiBreXV1a2VpXCA7Civml4XlrqIgPiByeW9rYWt1XCA7CivpnaLlppYgPiBtZW4nJ3lvdVwgOwor5pit5LujID4gc2hvdWRhaVwgOwor54Sh562GID4gbXVoaXRzdVwgOwor54m55YaZID4gdG9rdXNoYVwgOwor5aSx5oWLID4gc2hpdHRhaVwgOwor5pen5Z2AID4ga3l1dXNoaVwgOwor57WQ6IW4ID4ga2V0Y2hvdVwgOwor5pen5ZywID4ga3l1dWNoaVwgOwor54m55YW4ID4gdG9rdXRlblwgOwor5aCq6IO9ID4gdGFuJydub3VcIDsKK+ijvemdqSA+IHNlaWtha3VcIDsKK+WkseaEjyA+IHNoaXRzdWlcIDsKK+eIhuW8viA+IGJha3VkYW5cIDsKK+eJueWFjSA+IHRva3VtZW5cIDsKK+aUr+a1gSA+IHNoaXJ5dXVcIDsKK+aPmumZuCA+IHlvdXJpa3VcIDsKK+imquiIuSA+IG95YWJ1bmVcIDsKK+mZuOeUoyA+IHJpa3VzYW5cIDsKK+mZuOeUnyA+IHJpa3VzZWlcIDsKK+mdouWjgSA+IG1lbnBla2lcIDsKK+aOoumzpSA+IHRhbmNob3VcIDsKK+imquiHqCA+IHNoaW5yaW5cIDsKK+e0hOiogCA+IHlha3VnZW5cIDsKK+Wig+eVjCA+IGt5b3VrYWlcIDsKK+aVmeadoSA+IGt5b3Vqb3VcIDsKK+eyl+mbkSA+IHNvemF0c3VcIDsKK+aVmeadkCA+IGt5b3V6YWlcIDsKK+aVmeacrCA+IGt5b3Vob25cIDsKK+mbu+aSgyA+IGRlbmdla2lcIDsKK+aVmeabuCA+IGt5b3VzaG9cIDsKK+mZjeelniA+IGtvdXNoaW5cIDsKK+mWk+i/kSA+IG1hZGppa2FcIDsKK+aWsOWxhSA+IHNoaW5reW9cIDsKK+e0uuiJsiA+IGtvbicnaXJvXCA7Civntpnnm64gPiB0c3VnaW1lXCA7Civpm7fmkoMgPiByYWlnZWtpXCA7Civlob7nlJ8gPiBqdWt1c2VpXCA7Civoqr/lvKYgPiBjaG91Z2VuXCA7CivlpLHlvZMgPiBzaGl0dG91XCA7Civnh4PmlpkgPiBuZW5yeW91XCA7CivoqIjnlLsgPiBrZWlrYWt1XCA7CivnibnkvosgPiB0b2t1cmVpXCA7CivpmqDmu4UgPiBpbm1ldHN1XCA7Civnibnkvb8gPiB0b2t1c2hpXCA7CivlpKfmga8gPiB0YWlzb2t1XCA7Civpm4bmqKkgPiBzaHV1a2VuXCA7CivplovpgJogPiBrYWl0c3V1XCA7CivpmaPnl5sgPiBqaW50c3V1XCA7CivlpJbmiJogPiBnYWlzZWtpXCA7CivlpKnlv4MgPiB0ZW5zaGluXCA7CivntYTogbcgPiBzb3Nob2t1XCA7CivntrLnjJ8gPiBhbWlyeW91XCA7Civmlq/lraYgPiBzaGlnYWt1XCA7CivmlbXmiYsgPiB0ZWtpc2h1XCA7Civlo7LmmKUgPiBiYWlzaHVuXCA7CivlpKflvrMgPiBkYWl0b2t1XCA7Civpm6Lml6UgPiByaW5pY2hpXCA7Civnsr7pgLIgPiBzaG91amluXCA7CivlpKflvbkgPiB0YWl5YWt1XCA7Civnsr7pgJogPiBzZWl0c3V1XCA7CivnhYnnjYQgPiByZW5nb2t1XCA7CivopqrnvbIgPiBzaGluc2hvXCA7Civoq7jlm70gPiBzaG9rb2t1XCA7Civml6flkI0gPiBreXV1bWVpXCA7CivniZvliIAgPiBneXV1dG91XCA7Civpm6PmlbUgPiBuYW50ZWtpXCA7Civml6flj7cgPiBreXV1Z291XCA7CivngJ3pnZIgPiByZWtpc2VpXCA7CivlpKflvJMgPiBkYWlreXV1XCA7Civml6flj4sgPiBreXV1eXV1XCA7CivntZDnuIEgPiBrZWNoaWVuXCA7Civoop7pvo0gPiBrb25yeW91XCA7CivmlrDlqZogPiBzaGlua29uXCA7CivmloflvLEgPiBidW5qYWt1XCA7Civml6Xlj44gPiBuaXNzaHV1XCA7Civpm5HmnKggPiB6b3Vib2t1XCA7CivoqqzlvpcgPiBzZXR0b2t1XCA7CivpnZblm70gPiBzZWlrb2t1XCA7CivmmI7kuq4gPiBtZWlyeW91XCA7CivlpKnluZUgPiB0ZW5tYWt1XCA7Civlo6vml48gPiBzaGl6b2t1XCA7Civnhp/mn78gPiBqdWt1c2hpXCA7CivplrLopqcgPiBldHN1cmFuXCA7Civpnanlkb0gPiBrYWt1bWVpXCA7CivnuZTluIMgPiBzaG9rdWZ1XCA7Civml6XljbAgPiBuaWNoaWluXCA7CivnuYrlvLEgPiBzZW5qYWt1XCA7CivntLDohZUgPiBob3NvdWRlXCA7CivnuZTlt6UgPiBzaG9ra291XCA7CivnhafmupYgPiBzaG91anVuXCA7Civpm7bmiKYgPiB6ZXJvc2VuXCA7CivmlbXmg4UgPiB0ZWtpam91XCA7CivmmIfku7sgPiBzaG91bmluXCA7CivopprogIUgPiBrYWt1c2hhXCA7CivoppbogbQgPiBzaGljaG91XCA7CivntYTnuZQgPiBzb3NoaWtpXCA7CivplbfpgJ0gPiBjaG91c2VpXCA7CivpmYTnnYAgPiBmdWNoYWt1XCA7CivorKzkvJ0gPiBieXV1ZGVuXCA7CivlpJblv4MgPiBnYWlzaGluXCA7CivmlbXmgKcgPiB0ZWtpc2VpXCA7CivoqqDlv6AgPiBzZWljaHV1XCA7Civoqpjmg5EgPiB5dXV3YWt1XCA7CivniafkurogPiBib2t1amluXCA7Civml6fliLYgPiBreXV1c2VpXCA7CivntYzns7ggPiB0YXRlaXRvXCA7CivplbfovrogPiBjaG91aGVuXCA7CivoqqDlv4MgPiBzZWlzaGluXCA7CivpnIrlu58gPiByZWlieW91XCA7Civoqa7mlrkgPiBzZW5rYXRhXCA7Civml6fliIogPiBreXV1a2FuXCA7Civml63lhYkgPiBreW9ra291XCA7CivlpLHlr74gPiBzaGl0dGFpXCA7CivniYfliY0gPiBrYXRhbWFlXCA7Civoq5zloLEgPiBjaG91aG91XCA7CivloqjmsaAgPiBib2t1Y2hpXCA7CivlnoLov7kgPiBzdWlqYWt1XCA7CivmlbTlvqkgPiBzZWlmdWt1XCA7Civml6flhqwgPiBreXV1dG91XCA7CivmlK/mn7EgPiBzaGljaHV1XCA7CivloqjmsYEgPiBib2t1anV1XCA7CivmlLnmmqYgPiBrYWlyZWtpXCA7CivmlrDloLEgPiBzaGlucG91XCA7CivlpJblu5MgPiBnYWlrYWt1XCA7CivpmKrnpZ4gPiBoYW5zaGluXCA7Civoqr/lrZAgPiBjaG91c2hpXCA7Civml6flhbggPiBreXV1dGVuXCA7CivmlbXlvL4gPiB0ZWtpZGFuXCA7CivploDot6EgPiBtb256ZWtpXCA7Civnspfph5EgPiBhcmFnYW5lXCA7CivmlL/mlbUgPiBzZWl0ZWtpXCA7CivopqrnsbMgPiBzaGluYmVpXCA7CivmlY/mjbcgPiBiaW5zaG91XCA7CivniYjlhYMgPiBoYW5tb3RvXCA7CivmlL/mlZkgPiBzZWlreW91XCA7CivoqabmlpkgPiBzaGlyeW91XCA7CivopYHopJMgPiBtdXRzdWtpXCA7CivntJToia8gPiBqdW5yeW91XCA7CivlpInlv4MgPiBoZW5zaGluXCA7CivmlZnmiJIgPiBreW91a2FpXCA7CivlpKflsI8gPiBkYWlzaG91XCA7CivlpKflsIYgPiBkYWlzaG91XCA7Civml6flgrUgPiBreXV1c2FpXCA7CivplpPoq5wgPiBrYW5jaG91XCA7Civopovnv5IgPiBtaW5hcmFpXCA7CivmlLnmlrAgPiBrYWlzaGluXCA7CivmlrDlnLAgPiBzaGluY2hpXCA7CivnuYvlsZ4gPiBrZWl6b2t1XCA7CivmlL7mk7IgPiBob3V0ZWtpXCA7CivmlbfluIMgPiBzaGlraWZ1XCA7Civpm4bmlaMgPiBzaHV1c2FuXCA7CivmjqHpm4YgPiBzYWlzaHV1XCA7CivniZvkuLwgPiBneXV1ZG9uXCA7Civop5Lnm4YgPiBrYWt1Ym9uXCA7CivniL3lh4kgPiBzb3VyeW91XCA7CivoqZTmm7ggPiBzaG91c2hvXCA7CivlpKflraYgPiBkYWlnYWt1XCA7CivopqrnrYkgPiBzaGludG91XCA7Civlo4Hmnb8gPiBrYWJlaXRhXCA7CivlpoTkv6EgPiBtb3VzaGluXCA7CivmloflraYgPiBidW5nYWt1XCA7CivmlLvmkoMgPiBrb3VnZWtpXCA7Civnt5HmqLkgPiByeW9rdWp1XCA7CivniKrljbAgPiB0c3VtZWluXCA7Civml6fkvosgPiBreXV1cmVpXCA7CivmlK/ml48gPiBzaGl6b2t1XCA7Civns57onb8gPiBrdXNvYmFlXCA7CivlopzmrbsgPiB0c3Vpc2hpXCA7CivlpajlirEgPiBzaG91cmVpXCA7CivnuZTlp6sgPiBvcmloaW1lXCA7Civoqr/lo7AgPiBjaG91c2VpXCA7CivopJLos54gPiBob3VzaG91XCA7CivntIXoibIgPiBiZW5paXJvXCA7CivpmbjmtbcgPiByaWt1a2FpXCA7CivntYLnq68gPiBzaHV1dGFuXCA7Civml6XkvK8gPiBuaXBwYWt1XCA7Civml4vliYogPiBzZW5zYWt1XCA7Civop5LnlaogPiBrYWRvYmFuXCA7Civnsr7oqq0gPiBzZWlkb2t1XCA7CivnuZTlpbMgPiBzaG9rdWpvXCA7Civml6fkuqQgPiBreXV1a291XCA7Civml6Xku5ggPiBoaWR6dWtlXCA7CivnhrHmhJsgPiBuZXRzdWFpXCA7CivlooPmtq8gPiBreW91Z2FpXCA7CivpnJzlpJwgPiBzaGltb3lvXCA7CivnhKbnh6UgPiBzaG91c291XCA7CivlpbPlgpEgPiBqb2tldHN1XCA7CivlpKnlpbMgPiB0ZW4nJ255b1wgOwor6KeS55O2ID4ga2FrdWJpblwgOwor57Sh57i+ID4gYm91c2VraVwgOwor6Kmp5oqEID4gc2hpc2hvdVwgOwor5pen5Li7ID4ga3l1dXNodVwgOwor5aSn5aWzID4gb29vbicnbmFcIDsKK+aVteWvviA+IHRla2l0YWlcIDsKK+ioiOa4rCA+IGtlaXNva3VcIDsKK+aWsOWTgSA+IHNoaW5waW5cIDsKK+WlieWUsSA+IGhvdXNob3VcIDsKK+imquelrSA+IHNoaW5zYWlcIDsKK+aWmeWcsCA+IHJ5b3VjaGlcIDsKK+eEoeeGsSA+IG11bmV0c3VcIDsKK+e1kOefsyA+IGtlc3Nla2lcIDsKK+mVt+ismyA+IGNob3Vrb3VcIDsKK+e3j+ahkCA+IHNvdWdpcmlcIDsKK+eEpueCuSA+IHNob3V0ZW5cIDsKK+eGn+aIkCA+IGp1a3VzZWlcIDsKK+iovOabuCA+IHNob3VzaG9cIDsKK+irluWRiiA+IHJvbmtva3VcIDsKK+eGseW/gyA+IG5lc3NoaW5cIDsKK+ino+eGsSA+IGdlbmV0c3VcIDsKK+WlieWRiiA+IGhvdWtva3VcIDsKK+WkseWcsCA+IHNoaXRjaGlcIDsKK+aWsOWPgiA+IHNoaW56YW5cIDsKK+mbhuaIkCA+IHNodXVzZWlcIDsKK+aVsOWtpiA+IHN1dWdha3VcIDsKK+aVmeW4qyA+IGt5b3VzaGlcIDsKK+aSg+eglSA+IGdla2lzYWlcIDsKK+iqreWjsiA+IHlvbWl1cmlcIDsKK+aOmOmRvyA+IGt1c3Nha3VcIDsKK+mbueWusyA+IGh5b3VnYWlcIDsKK+e3j+afhCA+IHNvdWdhcmFcIDsKK+mciuWmmSA+IHJlaW15b3VcIDsKK+WkieWuuSA+IGhlbicneW91XCA7Civml4Xlg6cgPiB0YWJpc291XCA7Civoo7jotrMgPiBoYWRhc2hpXCA7Civoq5blj4ogPiByb25reXV1XCA7CivmjqHpjLIgPiBzYWlyb2t1XCA7Civnhp/mha4gPiBqdWt1cnlvXCA7CivopoHntIQgPiB5b3V5YWt1XCA7Civngo7oibIgPiBlbnNob2t1XCA7CivnhrHlu7YgPiBuZXRzdWVuXCA7CivoqLPmnKwgPiB5YWt1aG9uXCA7CivoqLzmmI4gPiBzaG91bWVpXCA7Civloqjmm7ggPiBib2t1c2hvXCA7CivntJvns74gPiBmdW5reXV1XCA7CivoqLPmm7ggPiB5YWt1c2hvXCA7Civmjqjph48gPiBzdWlyeW91XCA7Civmkp7nkIMgPiBkb3VreXV1XCA7CivlpJnlpJwgPiBzaHVrdXlhXCA7CivnhrHluqYgPiBuZXRzdWRvXCA7CivpnIflpK4gPiBzaGluJydvdVwgOwor5aCG56mNID4gdGFpc2VraVwgOwor57Sv56mNID4gcnVpc2VraVwgOwor6Zq75omLID4gc2VraXNodVwgOwor5aSp5Zu9ID4gdGVuZ29rdVwgOwor6KOP6YeYID4gdXJha3VnaVwgOwor6KOP6YeRID4gdXJhZ2FuZVwgOwor5pSq5ouMID4ga2FrdWhhblwgOwor54SZ54OZID4gaG91cm9rdVwgOwor6Zm45qmLID4gcmlra3lvdVwgOwor6KqN5a65ID4gbmluJyd5b3VcIDsKK+iovOaWhyA+IHNob3Vtb25cIDsKK+iouuaWrSA+IHNoaW5kYW5cIDsKK+Wkp+WbvSA+IHRhaWtva3VcIDsKK+mZsOasnSA+IGluJyd1dHN1XCA7CivoqLvmlocgPiBjaHV1bW9uXCA7CivntLrnoqcgPiBrb25wZWtpXCA7CivmlrDliLYgPiBzaGluc2VpXCA7CivmlLnmgpsgPiBrYWlzaHVuXCA7Civoqanlv4MgPiBzaGlzaGluXCA7CivntbbnhKEgPiB6ZXRzdW11XCA7CivlpJblo4EgPiBnYWloZWtpXCA7Civnhp/mgJ0gPiBqdWt1c2hpXCA7CivmlrDliIogPiBzaGlua2FuXCA7CivmlrDliIAgPiBzaGludG91XCA7CivpnITlo4wgPiBzaG91am91XCA7CivmlL7lv4MgPiBob3VzaGluXCA7CivnjKnjgIUgPiBzaG91am91XCA7CivloZ7mupAgPiBzb2t1Z2VuXCA7CivlpKflmLQgPiBvb2hhc2hpXCA7CivntYLnm6QgPiBzaHV1YmFuXCA7CivntI3ntYwgPiBub3VreW91XCA7CivmlZnlsI4gPiBreW91ZG91XCA7CivmlrDlhbUgPiBzaGlucGVpXCA7CivnhLzmrbsgPiBzaG91c2hpXCA7CivoqLPmlocgPiB5YWt1YnVuXCA7CivmlrDlhZogPiBzaGludG91XCA7CivmlLnlv4MgPiBrYWlzaGluXCA7CivnhafmmJ8gPiBzaG91c2VpXCA7Civmjpvph5EgPiBrYWtla2luXCA7CivmlZflsIYgPiBoYWlzaG91XCA7CivmjqjpgLIgPiBzdWlzaGluXCA7CivnhafmmI4gPiBzaG91bWVpXCA7Civpm4Tlv4MgPiB5dXVzaGluXCA7Civpmbjmo7IgPiByaWt1c2VpXCA7CivopIfoppYgPiBmdWt1c2hpXCA7Civnsr7omasgPiBzZWljaHV1XCA7CivmlbXloYEgPiB0ZWtpcnVpXCA7CivntrLmo5ogPiBhbWlkYW5hXCA7Civpmbjmo5ogPiByaWt1aG91XCA7CivmlZnlrpggPiBreW91a2FuXCA7Civlm73poqggPiBrb2t1ZnV1XCA7Civpmobmm78gPiByeXV1dGFpXCA7Civnt5rmj48gPiBzZW5ieW91XCA7CivopovnpZ4gPiBrZW5zaGluXCA7Civoo4Hph48gPiBzYWlyeW91XCA7Civoqr/lkIggPiBjaG91Z291XCA7CivmlL/luoEgPiBzZWljaG91XCA7Civoqr/lj7cgPiBjaG91Z291XCA7CivpmbDmpbUgPiBpbmt5b2t1XCA7CivlpI/loLQgPiBuYXRzdWJhXCA7CivntIXntYQgPiBha2FndW1pXCA7Civop5Lnga8gPiBrYWt1dG91XCA7CivopIfoo70gPiBmdWt1c2VpXCA7CivlpJblnKcgPiBnYWlhdHN1XCA7CivmlonllLEgPiBzZWlzaG91XCA7Civnhp/lubQgPiBqdWt1bmVuXCA7CivntZDnkIMgPiBrZWtreXV1XCA7CivloIbnn7MgPiB0YWlzZWtpXCA7CivlpJblm70gPiBnYWlrb2t1XCA7CivmjqXovp4gPiBzZXRzdWppXCA7Civnsr7oloQgPiBzZWloYWt1XCA7CivmlbXlnLAgPiB0ZWtpY2hpXCA7CivmjZXpo58gPiBob3Nob2t1XCA7CivmlbXlm70gPiB0ZWtrb2t1XCA7CivntYLnlJ8gPiBzaHV1c2VpXCA7Civop6PmtoggPiBrYWlzaG91XCA7CivlpInln58gPiBoZW4nJ2lraVwgOwor6Zm95pqmID4geW91cmVraVwgOwor5aSn5ZCNID4gZGFpbXlvdVwgOwor5aSx5Yq5ID4gc2hpa2tvdVwgOwor5paw5L2TID4gc2hpbnRhaVwgOwor5Zu96Zu7ID4ga29rdWRlblwgOwor5aSn5Y+jID4gb29ndWNoaVwgOwor5o6Y6YCyID4ga3Vzc2hpblwgOwor6Kq/5YmkID4gY2hvdXphaVwgOwor6Zm45pu5ID4gcmlrdXNvdVwgOwor5Zu96ZujID4ga29rdW5hblwgOwor57ep5oClID4ga2Fua3l1dVwgOwor5pSv5bqmID4gc2hpdGFrdVwgOwor6Zm95pilID4geW91c2h1blwgOwor5Zu96ZqbID4ga29rdXNhaVwgOwor5aSn5Y6EID4gdGFpeWFrdVwgOwor57SL56ugID4gbW9uc2hvdVwgOwor5pSv5bqBID4gc2hpY2hvdVwgOwor5Zyw6YGTID4gamltaWNoaVwgOwor6Kaq546JID4gb3lhZGFtYVwgOwor5paw5Lq6ID4gc2hpbmppblwgOwor5pWF5a6fID4ga29qaXRzdVwgOwor5aSW5ZWGID4gZ2Fpc2hvdVwgOwor5Zu96ZiyID4ga29rdWJvdVwgOwor5pS+5bC/ID4gaG91bnlvdVwgOwor6Kej5rC3ID4ga2FpaHlvdVwgOwor5paH5Y2aID4gYnVuaGFrdVwgOwor5pOv5palID4gaGluc2VraVwgOwor5aSn5YudID4gdGFpc2hvdVwgOwor5pWZ5aOHID4ga3lvdWRhblwgOwor57iu5ZuzID4gc2h1a3V6dVwgOwor6ZaT6IacID4ga2FubWFrdVwgOwor5aSn5YqbID4gZGFpcmlraVwgOwor5pON5qWtID4gc291Z3lvdVwgOwor5aSp5YmHID4gdGVuc29rdVwgOwor5o6o6LOeID4gc3Vpc2hvdVwgOwor54Sh5qygID4gbXVrZXRzdVwgOwor6Kmp5a2mID4gc2hpZ2FrdVwgOwor5r+A6ZeYID4gZ2VraXRvdVwgOwor6Kaz54WnID4ga2Fuc2hvdVwgOwor5aSW5ZGoID4gZ2Fpc2h1dVwgOwor6ZaT6ISzID4ga2FuJydub3VcIDsKK+aVmeWgtCA+IGt5b3Vqb3VcIDsKK+WbsOmboyA+IGtvbicnbmFuXCA7CivnuKblnZEgPiB0YXRla291XCA7CivntabmupAgPiBreXV1Z2VuXCA7CivpnLLku48gPiByb2Z1dHN1XCA7CivoqqHlkYogPiBrYWlrb2t1XCA7Civntabmua8gPiBreXV1dG91XCA7CivlnLDou7ggPiBjaGlqaWt1XCA7CivngrrnnYAgPiBzaGlraXNlXCA7CivlpKflh7YgPiBkYWlreW91XCA7CivopoHnm64gPiB5b3Vtb2t1XCA7CivmlLvlraYgPiBrb3VnYWt1XCA7CivntYTniYggPiBrdW1paGFuXCA7Civoqr/lgZwgPiBjaG91dGVpXCA7CivmlLnlrpcgPiBrYWlzaHV1XCA7CivnuZTlhYMgPiBvcmltb3RvXCA7CivopZ/nq6AgPiBlcmlzaG91XCA7CivplovohbkgPiBrYWlmdWt1XCA7Civpm5vlo4cgPiBoaW5hZGFuXCA7CivlpKflhbUgPiBkYWloeW91XCA7Civnh63lhYkgPiBzaG9ra291XCA7CivooajpoYwgPiBoeW91ZGFpXCA7CivpnIfli5UgPiBzaGluZG91XCA7CivmlZnlm6MgPiBreW91ZGFuXCA7CivntJTnnJ8gPiBqdW5zaGluXCA7CivpmrflsZ4gPiByZWl6b2t1XCA7CivmlpzkuqQgPiBoYXN1a2FpXCA7CivnuYHliocgPiBoYW5nZWtpXCA7CivnhanmgqkgPiBib24nJ25vdVwgOwor6KO96JasID4gc2VpeWFrdVwgOwor5aOy5Zu9ID4gYmFpa29rdVwgOwor5aSx5L2TID4gc2hpdHRhaVwgOwor57SU55uKID4ganVuJydla2lcIDsKK+aWmeS6rSA+IHJ5b3V0ZWlcIDsKK+imqueCmSA+IHNoaW5zaGFcIDsKK+ikh+iRiSA+IGZ1a3V5b3VcIDsKK+ips+WgsSA+IHNob3Vob3VcIDsKK+e3nuW4syA+IGRvbmNob3VcIDsKK+aVteWLoiA+IHRla2l6ZWlcIDsKK+ihqOmdoiA+IGh5b3VtZW5cIDsKK+mVt+iKiyA+IG5hZ2FpbW9cIDsKK+mao+W4rSA+IHJpbnNla2lcIDsKK+e0lOeZvSA+IGp1bnBha3VcIDsKK+ipleWumiA+IGh5b3V0ZWlcIDsKK+mYsuavkiA+IGJvdWRva3VcIDsKK+aVsOWMuSA+IHN1dWhpa2lcIDsKK+WkleWIuyA+IHl1dWtva3VcIDsKK+mbu+WNkyA+IGRlbnRha3VcIDsKK+e1gueCuSA+IHNodXV0ZW5cIDsKK+e3iuaApSA+IGtpbmt5dXVcIDsKK+mZjeagvCA+IGtvdWtha3VcIDsKK+e1puawtCA+IGt5dXVzdWlcIDsKK+eyvuiCiSA+IHNlaW5pa3VcIDsKK+aVteWJjSA+IHRla2l6ZW5cIDsKK+WkleWHqiA+IHl1dW5hZ2lcIDsKK+WhnuagkyA+IHNva3VzZW5cIDsKK+e5muS5sSA+IHJ5b3VyYW5cIDsKK+WkqeS9kSA+IHRlbicneXV1XCA7CivoqanlooMgPiBzaGlreW91XCA7CivnuITloqggPiBqb3Vib2t1XCA7CivlpKfkvZwgPiB0YWlzYWt1XCA7Civopqrmva4gPiBveWFzaGlvXCA7Civlm6PplbcgPiBkYW5jaG91XCA7Civpl5jnl4UgPiB0b3VieW91XCA7Civoo5zooYAgPiBob2tldHN1XCA7CivoprPmuKwgPiBrYW5zb2t1XCA7Civnha7lubIgPiBuaWJvc2hpXCA7Civlm5vpmL8gPiBhenVtYXlhXCA7CivntrHmiYsgPiB0c3VuYWRlXCA7CivpmbjmiKYgPiByaWt1c2VuXCA7CivlpKnkurogPiB0ZW4nJ25pblwgOwor54GM6IW4ID4ga2FuY2hvdVwgOwor57eK5by1ID4ga2luY2hvdVwgOwor6ZuG5aG1ID4gc2h1dWppblwgOwor6ZqU5bm0ID4ga2FrdW5lblwgOwor6ZmN5pyNID4ga291ZnVrdVwgOwor5aSW5YK3ID4gZ2Fpc2hvdVwgOwor5aSJ5YmHID4gaGVuc29rdVwgOwor6ZuG5aGKID4gc2h1dWthaVwgOwor54Sh5pytID4gbXVzYXRzdVwgOwor57SF55m9ID4ga291aGFrdVwgOwor6Kej5p6QID4ga2Fpc2VraVwgOwor54Sh5pyIID4gbXVnZXRzdVwgOwor5aKX5b60ID4gem91Y2hvdVwgOwor6KWy55SoID4gc2h1dXlvdVwgOwor6Kqs5LyPID4gc2VwcHVrdVwgOwor54ax5ZSxID4gbmVzc2hvdVwgOwor5paJ5LiAID4gc2VpaXRzdVwgOwor5aSW5L+hID4gZ2Fpc2hpblwgOwor5paH5LitID4gYnVuY2h1dVwgOwor5aKX5by3ID4gem91a3lvdVwgOwor6Zm65oKqID4ga2VuJydha3VcIDsKK+mVt+iAgyA+IGNob3Vrb3VcIDsKK+mVt+iAgSA+IGNob3Vyb3VcIDsKK+ihjOmgrSA+IGd5b3V0b3VcIDsKK+e3muWvqSA+IHNlbnNoaW5cIDsKK+ilv+eLrCA+IHNlaWRva3VcIDsKK+aVkeWRvSA+IGt5dXVtZWlcIDsKK+maoOWvhiA+IG9ubWl0c3VcIDsKK+mWqOengCA+IGtlaXNodXVcIDsKK+mcjeS5sSA+IGtha3VyYW5cIDsKK+WbvemBkyA+IGtva3Vkb3VcIDsKK+e1kOawtyA+IGtlcHB5b3VcIDsKK+mbhuWboyA+IHNodXVkYW5cIDsKK+WbvemAoyA+IGtva3VyZW5cIDsKK+mZs+aDhSA+IGNoaW5qb3VcIDsKK+eBq+euuCA+IGhpYmFzaGlcIDsKK+WjsuWNnCA+IGJhaWJva3VcIDsKK+aVl+WMlyA+IGhhaWJva3VcIDsKK+manOWusyA+IHNob3VnYWlcIDsKK+Wil+W5hSA+IHpvdWZ1a3VcIDsKK+aTsuW8viA+IHRla2lkYW5cIDsKK+a9rumokiA+IHNoaW9zYWlcIDsKK+e0oueEtiA+IHNha3V6ZW5cIDsKK+eEvOaIkCA+IHNob3VzZWlcIDsKK+mbu+S/oSA+IGRlbnNoaW5cIDsKK+e2muaKlSA+IHpva3V0b3VcIDsKK+a/q+iqrSA+IHJhbmRva3VcIDsKK+e2meaJvyA+IGtlaXNob3VcIDsKK+e2vuW4gyA+IGF5YW51bm9cIDsKK+eymOiGnCA+IG5lbm1ha3VcIDsKK+aRgueQhiA+IHNldHN1cmlcIDsKK+mbquWGpCA+IHNldHN1ZW5cIDsKK+aUv+WVhiA+IHNlaXNob3VcIDsKK+WiqOWuiCA+IGJva3VzaHVcIDsKK+eyieiMtiA+IGtvbmFjaGFcIDsKK+inkuadkCA+IGtha3V6YWlcIDsKK+e1jOattCA+IGtlaXJla2lcIDsKK+mbouWIpSA+IHJpYmV0c3VcIDsKK+mXmOeJmyA+IHRvdWd5dXVcIDsKK+eFp+WwhCA+IHNob3VzaGFcIDsKK+aRqea7hSA+IG1hbWV0c3VcIDsKK+Wbvei7jSA+IGtva3VndW5cIDsKK+Whl+aTpiA+IHRvc2F0c3VcIDsKK+a/q+intCA+IHJhbnNob3VcIDsKK+mVt+e3qCA+IGNob3VoZW5cIDsKK+aVmeWFuCA+IGt5b3V0ZW5cIDsKK+WcsOihqCA+IGNoaWh5b3VcIDsKK+ipsuWNmiA+IGdhaWhha3VcIDsKK+aOqOiWrCA+IHN1aXlha3VcIDsKK+mZs+W8gSA+IGNoaW5iZW5cIDsKK+ezuOeTnCA+IGhlY2hpbWFcIDsKK+eCrOeHtSA+IGtvdGF0c3VcIDsKK+ihjOmWkyA+IGd5b3VrYW5cIDsKK+mbqOWCmCA+IGFtYWdhc2FcIDsKK+mWi+eriyA+IGthaXJ5dXVcIDsKK+e1guatoiA+IHNodXVzaGlcIDsKK+aSnuacqCA+IHNodW1va3VcIDsKK+mbkeWLmSA+IHphdHN1bXVcIDsKK+e0sOa1gSA+IHNhaXJ5dXVcIDsKK+iojuW5lSA+IHRvdWJha3VcIDsKK+mbhuWQiCA+IHNodXVnb3VcIDsKK+aNqOixoSA+IHNoYXNob3VcIDsKK+eCrueDmSA+IGhvdXJva3VcIDsKK+WcsOicgiA+IGppYmFjaGlcIDsKK+mZuuWzuyA+IGtlbnNodW5cIDsKK+imquaoqSA+IHNoaW5rZW5cIDsKK+ihl+mMsiA+IGdhaXJva3VcIDsKK+ikh+e3miA+IGZ1a3VzZW5cIDsKK+mbkeWJhyA+IHphc3Nva3VcIDsKK+ijheiWrCA+IHNvdXlha3VcIDsKK+WbveizkyA+IGtva3VoaW5cIDsKK+eCuea7tCA+IHRlbnRla2lcIDsKK+mZuOWyuCA+IHJpa3VnYW5cIDsKK+Whl+aKuSA+IHRvbWF0c3VcIDsKK+ipqeWKhyA+IHNoaWdla2lcIDsKK+mWi+elqCA+IGthaWh5b3VcIDsKK+aSueaLjCA+IGtha3VoYW5cIDsKK+mZveWwhCA+IGhpemFzaGlcIDsKK+eGseWCtyA+IG5lc3Nob3VcIDsKK+mWoueZvSA+IGthbnBha3VcIDsKK+ijnOiJsiA+IGhvc2hva3VcIDsKK+eEpuaFriA+IHNob3VyeW9cIDsKK+mZquW4rSA+IGJhaXNla2lcIDsKK+e1kOaguCA+IGtla2tha3VcIDsKK+aMr+mItCA+IHNoaW5yZWlcIDsKK+aVmeS8miA+IGt5b3VrYWlcIDsKK+mbkeWFtSA+IHpvdWh5b3VcIDsKK+mao+WbvSA+IHJpbmdva3VcIDsKK+e1g+alvSA+IGdlbmdha3VcIDsKK+mbgOWNkyA+IGphbnRha3VcIDsKK+mZuOWwgSA+IHJpa3VmdXVcIDsKK+mbquS4rSA+IHNldGNodXVcIDsKK+WiqOWgpCA+IGJva3V0ZWlcIDsKK+iol+WuoyA+IHRha3VzZW5cIDsKK+eyvuelniA+IHNlaXNoaW5cIDsKK+aQjeebiiA+IHNvbicnZWtpXCA7CivpmaPluZUgPiBqaW5tYWt1XCA7CivngbDnmr8gPiBoYWl6YXJhXCA7CivnspfnuIQgPiBhcmFuYXdhXCA7CivmjIzpl5ggPiBrYWt1dG91XCA7CivmjLrpgLIgPiB0ZWlzaGluXCA7Civns7jniKogPiBoZWNoaW1hXCA7CivopJLnq6AgPiBob3VzaG91XCA7CivntZDmnZ8gPiBrZXNzb2t1XCA7CivngbDnmb0gPiBrYWloYWt1XCA7CivmlZnkuLsgPiBreW91c2h1XCA7Civop6bmhJ8gPiBzaG9ra2FuXCA7Civmi5vprYIgPiBzaG91a29uXCA7CivopqrmoKogPiBveWFrYWJ1XCA7Civnsr7norogPiBzZWlrYWt1XCA7Civlm73oq5YgPiBrb2t1cm9uXCA7Civnt5HlnJ8gPiByeW9rdWRvXCA7Civpm4blhYkgPiBzaHV1a291XCA7CivntZDmmbYgPiBrZXNzaG91XCA7Civoo5zogbcgPiBob3Nob2t1XCA7Civmv4Doq5YgPiBnZWtpcm9uXCA7CivoqbPkvJ0gPiBzaG91ZGVuXCA7CivntIXmva4gPiBrb3VjaG91XCA7CivmlZHkuJYgPiBreXV1c2VpXCA7CivopoHmsYIgPiB5b3VreXV1XCA7Civpmarlr6kgPiBiYWlzaGluXCA7CivmjLrouqsgPiB0ZWlzaGluXCA7CivnhrHkuK0gPiBuZXRjaHV1XCA7Civopqrmm7ggPiBzaGluc2hvXCA7Civoo4/ohbkgPiB1cmFoYXJhXCA7CivoqZXliKQgPiBoeW91YmFuXCA7CivntI3mtrwgPiBub3VyeW91XCA7Civlm7PoqqwgPiB6dXNldHN1XCA7CivoqankvZwgPiBzaGlzYWt1XCA7CivplpPnlLcgPiBtYW90b2tvXCA7CivmkbrmnKwgPiBzaG91aG9uXCA7Civpm5HkuosgPiB6YXRzdWppXCA7CivmlLnkv64gPiBrYWlzaHV1XCA7Civpm4zkvI8gPiBzaGlmdWt1XCA7CivntYzmlocgPiBreW91bW9uXCA7Civntbbmga8gPiB6ZXNzb2t1XCA7CivpmaPlrrkgPiBqaW4nJ3lvdVwgOwor6Kmm5L2cID4gc2hpc2FrdVwgOwor6Zm45aSnID4gcmlrdWRhaVwgOwor6KSl55ihID4gam9rdXNvdVwgOwor57KX562LID4gYXJhc3VqaVwgOwor57K+55m9ID4gc2VpaGFrdVwgOwor6KGM6YCyID4ga291c2hpblwgOwor6ZW355+tID4gY2hvdXRhblwgOwor5o6j6IKYID4gc2VpY2h1dVwgOwor6Kaq5pa5ID4gb3lha2F0YVwgOwor5pS55L2cID4ga2Fpc2FrdVwgOwor6Kit5Za2ID4gc2V0c3VlaVwgOwor6ZuG5LyaID4gc2h1dWthaVwgOwor5Z+35qipID4gc2hpa2tlblwgOwor57W15b+DID4gZWdva29yb1wgOwor5oud6aCYID4gaGFpcnlvdVwgOwor57W25b6MID4gemV0c3Vnb1wgOwor6Kaq5pS/ID4gc2hpbnNlaVwgOwor566h6aCYID4ga2FucnlvdVwgOwor57KY56igID4gbmVuY2h1dVwgOwor5pKu5b2xID4gc2F0c3VlaVwgOwor5aGp5a6zID4gc2hpb2dhaVwgOwor6KOc57a0ID4gaG90ZXRzdVwgOwor56+k6L6yID4gdG9rdW5vdVwgOwor5o+u55m6ID4ga2loYXRzdVwgOwor6Kiz5ZCNID4geWFrdW1laVwgOwor54OP5pyoID4ga29rdXRhblwgOwor6ZqK5ZWGID4gdGFpc2hvdVwgOwor5aCG5pyxID4gdHN1aXNodVwgOwor6Zm45ZywID4gcmlrdWNoaVwgOwor5aKD5Z+fID4ga3lvdWlraVwgOwor5oyH6YedID4gc2hpc2hpblwgOwor5Zue6KqtID4ga2FpZG9rdVwgOwor54Wn5ZCIID4gc2hvdWdvdVwgOwor6Ki85Yi4ID4gc2hvdWtlblwgOwor6KmV5LydID4gaHlvdWRlblwgOwor54G454K5ID4ga3l1dXRlblwgOwor5Z6L55WqID4ga2F0YWJhblwgOwor54S85aOyID4gc2h1dW1haVwgOwor5Zue6Ki6ID4ga2Fpc2hpblwgOwor6KSH55y8ID4gZnVrdWdhblwgOwor6KmU5LukID4gc2hvdXJlaVwgOwor5aKD5ZywID4ga3lvdWNoaVwgOwor57eo5L+uID4gaGVuc2h1dVwgOwor57Wx5bmVID4gdG91YmFrdVwgOwor54Gr54e1ID4ga290YXRzdVwgOwor5pKt5beeID4gYmFuc2h1dVwgOwor54Sh5a6/ID4gbXVzaHVrdVwgOwor6KeS5bi9ID4ga2FrdWJvdVwgOwor54Gr54axID4ga2FuZXRzdVwgOwor6ZW355S3ID4gY2hvdW5hblwgOwor6Kaq5oyHID4gb3lheXViaVwgOwor6KeS5bivID4ga2FrdW9iaVwgOwor54Sh5a6fID4gbXVqaXRzdVwgOwor6ZW355SfID4gY2hvdXNlaVwgOwor57Si5p2hID4gc2FrdWpvdVwgOwor6KGo6KejID4gaHlvdWthaVwgOwor57eP5YmHID4gc291c29rdVwgOwor5Zub6KeSID4gc2hpa2FrdVwgOwor57SL5qeYID4gbW9uJyd5b3VcIDsKK+Wil+WPjiA+IHpvdXNodXVcIDsKK+ihjOizniA+IGtvdXNob3VcIDsKK+euoemVtyA+IGthbmNob3VcIDsKK+e2vuWPliA+IGF5YXRvcmlcIDsKK+e2muWgsSA+IHpva3Vob3VcIDsKK+aOoue0oiA+IHRhbnNha3VcIDsKK+ihgOi3ryA+IGtldHN1cm9cIDsKK+WgseW+syA+IGhvdXRva3VcIDsKK+aRqeaTpiA+IG1hc2F0c3VcIDsKK+WgseW+qSA+IGhvdWZ1a3VcIDsKK+aPkOedoyA+IHRlaXRva3VcIDsKK+imi+aWmSA+IGtlbnJ5b3VcIDsKK+ihqOijhSA+IGh5b3Vzb3VcIDsKK+e1guaIpiA+IHNodXVzZW5cIDsKK+WbveiRrCA+IGtva3Vzb3VcIDsKK+ilv+aapiA+IHNlaXJla2lcIDsKK+exoOe1oSA+IHJvdXJha3VcIDsKK+eyl+eariA+IGFyYWthd2FcIDsKK+eCreafsSA+IHRhbmNodXVcIDsKK+WgquW/jSA+IGthbicnbmluXCA7CivopqrmhJsgPiBzaGluJydhaVwgOwor6KGT6KqeID4ganV0c3Vnb1wgOwor6Kaz5b+1ID4ga2FuJyduZW5cIDsKK+e0lOactCA+IGp1bmJva3VcIDsKK+iok+WRiiA+IGt1bmtva3VcIDsKK+ilv+aXpSA+IG5pc2hpYmlcIDsKK+ilsuadpSA+IHNodXVyYWlcIDsKK+exs+epgCA+IGJlaWtva3VcIDsKK+evgOi/qyA+IHNlcHBha3VcIDsKK+Wft+aUvyA+IHNoaXNzZWlcIDsKK+aTgeWjgSA+IHlvdWhla2lcIDsKK+ioreWCmSA+IHNldHN1YmlcIDsKK+ihgOixhiA+IGNoaW1hbWVcIDsKK+iovOS6uiA+IHNob3VuaW5cIDsKK+Wcp+e4riA+IGFzc2h1a3VcIDsKK+aOjOe3qCA+IHNob3VoZW5cIDsKK+e3kuS9nCA+IHNob3Nha3VcIDsKK+WhgeWvqSA+IHJ1aXNoaW5cIDsKK+Wis+S4mCA+IGZ1bmt5dXVcIDsKK+eyl+eVpSA+IHNvcnlha3VcIDsKK+e0muaVsCA+IGt5dXVzdXVcIDsKK+e0i+acjSA+IG1vbnB1a3VcIDsKK+ijleemjyA+IHl1dWZ1a3VcIDsKK+aOm+eulyA+IGtha2V6YW5cIDsKK+ihhuirliA+IHNodXVyb25cIDsKK+WbnuiZqyA+IGthaWNodXVcIDsKK+aOqOensCA+IHN1aXNob3VcIDsKK+e1teWnvyA+IGVzdWdhdGFcIDsKK+imgeaSgyA+IHlvdWdla2lcIDsKK+WcsOexjSA+IGNoaXNla2lcIDsKK+aOoueptiA+IHRhbmt5dXVcIDsKK+aOjOe0iyA+IHNob3Vtb25cIDsKK+eykueVjCA+IHJ5dXVrYWlcIDsKK+aNp+iFuSA+IGhvdWZ1a3VcIDsKK+aQjea1gSA+IHNvbnJ5dXVcIDsKK+a8humjnyA+IHNoaWtrdWlcIDsKK+eFp+S8miA+IHNob3VrYWlcIDsKK+aMmeiovCA+IGt5b3Nob3VcIDsKK+eCueaPjyA+IHRlbmJ5b3VcIDsKK+WcqOexjSA+IHphaXNla2lcIDsKK+aLk+mKgCA+IHRha3VnaW5cIDsKK+e1tuWjgSA+IHplcHBla2lcIDsKK+malOS4liA+IGtha3VzZWlcIDsKK+mZuOWFtSA+IHJpa3VoZWlcIDsKK+e2seWFtyA+IHRzdW5hZ3VcIDsKK+eyl+eOiSA+IGFyYXRhbWFcIDsKK+e2suWFgyA+IGFtaW1vdG9cIDsKK+iogOWPiiA+IGdlbmt5dXVcIDsKK+ezuOaeoCA+IGl0b3dha3VcIDsKK+mZpOWNtCA+IGpva3lha3VcIDsKK+a8q+mMsiA+IG1hbnJva3VcIDsKK+maj+S4gCA+IHp1aWljaGlcIDsKK+ezuOadiSA+IGl0b3N1Z2lcIDsKK+eBsOauuyA+IGhhaWdhcmFcIDsKK+ioquS4rSA+IGhvdWNodXVcIDsKK+aRguaUvyA+IHNlc3Nob3VcIDsKK+WhqeWRsyA+IHNoaW9hamlcIDsKK+WcsOepjSA+IGNoaXNla2lcIDsKK+e1kOWwviA+IGtldHN1YmlcIDsKK+e0hOaVsCA+IHlha3VzdXVcIDsKK+mYsuWjgSA+IGJvdWhla2lcIDsKK+ezvuaYjiA+IGt5dXVtZWlcIDsKK+WhgeWjgSA+IHJ1aWhla2lcIDsKK+e1kOWvqSA+IGtlc3NoaW5cIDsKK+e0sOW/gyA+IHNhaXNoaW5cIDsKK+aOoeefsyA+IHNhaXNla2lcIDsKK+WgheW/jSA+IGtlbicnbmluXCA7CivnspLnirYgPiByeXV1am91XCA7Civmi5npgJ8gPiBzZXNzb2t1XCA7Civmva7op6MgPiBjaG91a2FpXCA7Civmkq7lnJ8gPiBzYXRzdWRvXCA7CivmvLjpgLIgPiB6ZW5zaGluXCA7CivopqrlsZUgPiBzaGludGVuXCA7Civopo/lvosgPiBraXJpdHN1XCA7CivmjIHoqqwgPiBqaXNldHN1XCA7CivoppbluoogPiBzaGlzaG91XCA7Civop5LlnLAgPiBrYWRvY2hpXCA7CivntYzlraYgPiBrZWlnYWt1XCA7Civnsovni4IgPiBzdWlreW91XCA7Civoo4/nmb0gPiB1cmFqaXJvXCA7CivlobXlhaUgPiBnb21paXJlXCA7CivloLHlpaggPiBob3VzaG91XCA7CivntLDluK8gPiBob3Nvb2JpXCA7CivopqrlrZAgPiBzaGluc2hpXCA7CivnhKHlj6MgPiBtdWt1Y2hpXCA7Civln7flv7UgPiBzaHV1bmVuXCA7CivpmbjkuIogPiByaWt1am91XCA7CivmvKvpgYogPiBtYW4nJ3l1dVwgOwor57W25ZSxID4gemVzc2hvdVwgOwor5Zue6IW4ID4ga2FpY2hvdVwgOwor6ZW35rGfID4gY2hvdWtvdVwgOwor5Zyw55uuID4gY2hpbW9rdVwgOwor5ouN6LuKID4gaGFrdXNoYVwgOwor54Sh5YqbID4gbXVyeW9rdVwgOwor5oq96YG4ID4gY2h1dXNlblwgOwor5o2c57SiID4gc291c2FrdVwgOwor6ZaL5qWtID4ga2FpZ3lvdVwgOwor57W25Y+rID4gemVra3lvdVwgOwor5Zu957KLID4ga29rdXN1aVwgOwor5o6b55WZID4ga2Vpcnl1dVwgOwor6Kaq5aW9ID4gc2hpbmtvdVwgOwor6ZaJ5qWtID4gaGVpZ3lvdVwgOwor5aCx5Zu9ID4gaG91a29rdVwgOwor57Gz54usID4gYmVpZG9rdVwgOwor5oyv6IieID4gZnVydW1haVwgOwor56606KiAID4gc2hpbmdlblwgOwor57WC5aeLID4gc2h1dXNoaVwgOwor6ZW35q2OID4gY2hvdXRhblwgOwor6ZW35q2MID4gbmFnYXV0YVwgOwor5oyv6IiIID4gc2hpbmtvdVwgOwor6KaW5a2mID4gc2hpZ2FrdVwgOwor6Zme5Lu7ID4gc2hvdW5pblwgOwor57SZ5bmFID4gc2hpZnVrdVwgOwor57SZ5bizID4gc2hpY2hvdVwgOwor57WM5aCCID4ga3lvdWRvdVwgOwor6Zmj5LitID4gamluY2h1dVwgOwor57SN5b6XID4gbmF0dG9rdVwgOwor57W25YudID4gemVzc2hvdVwgOwor57KY5rayID4gbmVuJydla2lcIDsKK+Wcn+edgCA+IGRvY2hha3VcIDsKK+WbveetiSA+IGtva3V0b3VcIDsKK+WgguWuiCA+IGRvdW1vcmlcIDsKK+aLneisgSA+IGhhaWV0c3VcIDsKK+aSpOWPjiA+IHRlc3NodXVcIDsKK+exoOeQgyA+IHJvdWt5dXVcIDsKK+eBr+aYjiA+IHRvdW15b3VcIDsKK+aLneiqrSA+IGhhaWRva3VcIDsKK+iftuiynSA+IG1hdGVnYWlcIDsKK+etiemWkSA+IG5hb3phcmlcIDsKK+aLm+iriyA+IHNob3VzZWlcIDsKK+mPpOmqqCA+IHJ1a290c3VcIDsKK+imi+WtpiA+IGtlbmdha3VcIDsKK+aKlemMqCA+IHRvdWJ5b3VcIDsKK+e1jOWbvSA+IGtlaWtva3VcIDsKK+WcqOeVmSA+IHphaXJ5dXVcIDsKK+aQjeaWmSA+IHNvbnJ5b3VcIDsKK+e0kOW4ryA+IGNodXV0YWlcIDsKK+mPoemrmCA+IGt5b3Vrb3VcIDsKK+WcreeSpyA+IGtlaWhla2lcIDsKK+aPj+azlSA+IGJ5b3Vob3VcIDsKK+ijveawtyA+IHNlaWh5b3VcIDsKK+WcsOeQgyA+IGNoaWt5dXVcIDsKK+mRkeizniA+IGthbnNob3VcIDsKK+WbveeojiA+IGtva3V6ZWlcIDsKK+a/q+eUqCA+IHJhbicneW91XCA7CivntIDlvosgPiBraXJpdHN1XCA7CivploDmn7EgPiBtb25jaHV1XCA7CivpmY3kvI8gPiBrb3VmdWt1XCA7CivloLHlkYogPiBob3Vrb2t1XCA7CivntLPlo6sgPiBzaGluc2hpXCA7Civns77lvL4gPiBreXV1ZGFuXCA7CivooZLogIAgPiBnZW4nJ3lvdVwgOwor5Zuw56quID4ga29ua3l1dVwgOwor6KGo57SZID4gaHlvdXNoaVwgOwor54OI5aWzID4gcmV0c3Vqb1wgOwor6Ziy5YWxID4gYm91a3lvdVwgOwor5pKw5L+uID4gc2Vuc2h1dVwgOwor6ZeY5bCGID4gdG91c2hvdVwgOwor6Kaq5ZaEID4gc2hpbnplblwgOwor5r+r542yID4gcmFua2FrdVwgOwor5ryr6KqtID4gbWFuZG9rdVwgOwor6Zai5omAID4gc2VraXNob1wgOwor54Cf5rSSID4gc2hvdXNoYVwgOwor5Z+O5buTID4gam91a2FrdVwgOwor57O45bqVID4gaXRvem9rb1wgOwor5ryr6KmVID4gbWFucHlvdVwgOwor54GM5pyoID4ga2FuYm9rdVwgOwor6KaL5aKDID4gbWlzYWthaVwgOwor57WM5Y+yID4ga3lvdXNoaVwgOwor5oqY6L68ID4gb3Jpa29taVwgOwor5Zue56ugID4ga2Fpc2hvdVwgOwor5o6I54i1ID4ganVzaGFrdVwgOwor562J6YePID4gdG91cnlvdVwgOwor6Y+h6Z2iID4ga3lvdW1lblwgOwor57WM5Y2UID4ga2Vpa3lvdVwgOwor5Zu6552AID4ga29jaGFrdVwgOwor5o6o5risID4gc3Vpc29rdVwgOwor5Zu955uKID4ga29rdWVraVwgOwor5ruy6YCPID4gc2hpbnRvdVwgOwor6Kaz5YqHID4ga2FuZ2VraVwgOwor57SE5a6aID4geWFrdWpvdVwgOwor5aCx5YSfID4gaG91c2hvdVwgOwor6KSH5pysID4gZnVrdWhvblwgOwor6ZW35paHID4gY2hvdWJ1blwgOwor5pKp5LmxID4gcnlvdXJhblwgOwor5o6i5risID4gdGFuc29rdVwgOwor5oqV6LqrID4gdG91c2hpblwgOwor57Wx5LiAID4gdG91aXRzdVwgOwor6ZaL5ouTID4ga2FpdGFrdVwgOwor6Zai5b+DID4ga2Fuc2hpblwgOwor6KOc5q66ID4gaG9zYXRzdVwgOwor57O45bGRID4gaXRva3V6dVwgOwor5pKD5YmjID4gZ2VraWtlblwgOwor5omB6aGNID4gaGVuZ2FrdVwgOwor5ryU6KqsID4gZW56ZXRzdVwgOwor5Z6C5pWZID4gc3Vpa3lvdVwgOwor6KSH5pifID4gZnVrdXNlaVwgOwor562J6YCfID4gdG91c29rdVwgOwor5omA6aCYID4gc2hvcnlvdVwgOwor56u56aasID4gY2hpa3ViYVwgOwor6KOc5qygID4gaG9rZXRzdVwgOwor5Zu955SjID4ga29rdXNhblwgOwor6KGA57iBID4ga2V0c3VlblwgOwor6KSH5pa5ID4gZnVrdWhvdVwgOwor57KX5pyrID4gc29tYXRzdVwgOwor6KGT562WID4ganVzc2FrdVwgOwor6KSH5paHID4gZnVrdWJ1blwgOwor5r+A55SaID4gZ2VraWppblwgOwor6Y6u6a2CID4gY2hpbmdvblwgOwor6KSH5pWwID4gZnVrdXN1dVwgOwor54Gv5b+DID4gdG91c2hpblwgOwor5pCN5b6XID4gc29udG9rdVwgOwor5aCV5YqbID4gZGFyeW9rdVwgOwor57WC5YiKID4gc2h1dWthblwgOwor5o6i5rGCID4gdGFua3l1dVwgOwor6Kaq5YWDID4gb3lhbW90b1wgOwor5oiQ6bOlID4gc2VpY2hvdVwgOwor6Y+h6ZGRID4ga3lvdWthblwgOwor6KGA57OKID4gY2hpbm9yaVwgOwor562J6LqrID4gdG91c2hpblwgOwor5ry46JC9ID4gemVucmFrdVwgOwor57KX5pa5ID4gYXJha2F0YVwgOwor57O45aerID4gaXRvaGltZVwgOwor56+A576pID4gc2V0c3VnaVwgOwor562G6LmfID4gaGlzc2VraVwgOwor6ZW35omAID4gY2hvdXNob1wgOwor562G6LehID4gaGlzc2VraVwgOwor5r2u57SFID4gY2hvdWtvdVwgOwor5omA6ZW3ID4gc2hvY2hvdVwgOwor57WC5YCkID4gb3dhcmluZVwgOwor57Sw5YmHID4gc2Fpc29rdVwgOwor6KGA562LID4gY2hpc3VqaVwgOwor5r2F6IW4ID4ga2FuY2hvdVwgOwor5Z+O5aOBID4gam91aGVraVwgOwor5Zyw5q67ID4gY2hpa2FrdVwgOwor5pGY5Y+WID4gdGVraXNodVwgOwor5oub6Ie0ID4gc2hvdWNoaVwgOwor562W6KyAID4gc2FrdWJvdVwgOwor6Kaq5LqkID4gc2hpbmtvdVwgOwor57K+5by3ID4gc2Vpa3lvdVwgOwor5oqY6KeSID4gc2Vra2FrdVwgOwor6J6N6YCaID4geXV1ZHp1dVwgOwor6ZaL5bmVID4ga2FpbWFrdVwgOwor5Zar6amaID4gYmlra3VyaVwgOwor6ZaL5bizID4ga2FpY2hvdVwgOwor57CH55SfID4gem9rdXNlaVwgOwor5Z2R5pyoID4ga291Ym9rdVwgOwor57Sa5Y+LID4ga3l1dXl1dVwgOwor6ZaJ5bmVID4gaGVpbWFrdVwgOwor6Y6W6aqoID4gc2Frb3RzdVwgOwor5rqA6aGNID4gbWFuZ2FrdVwgOwor6KGX552AID4gbWFjaGlnaVwgOwor5oyv55uqID4gc2hpbnRvdVwgOwor6KW/5YyXID4gc2VpaG9rdVwgOwor6KaG5Yi7ID4gZnVra29rdVwgOwor5Zyn5q66ID4gYXNzYXRzdVwgOwor6Y6u6Z2ZID4gY2hpbnNlaVwgOwor6J+L6J+AID4ga29vcm9naVwgOwor5r+g5rSyID4gZ291c2h1dVwgOwor5oud6IG0ID4gaGFpY2hvdVwgOwor5omN6YePID4gc2FpcnlvdVwgOwor5r+B54K5ID4gZGFrdXRlblwgOwor57WC5LiWID4gc2h1dXNlaVwgOwor6KCP57y2ID4ga2FuaWthblwgOwor56uc6aGUID4gcnlvdWdhblwgOwor6ZW35b6EID4gY2hvdWtlaVwgOwor6ZW35b6BID4gY2hvdXNlaVwgOwor5Z+35YiAID4gc2hpdHRvdVwgOwor5oqY6KG3ID4gc2V0Y2h1dVwgOwor6KWy5ZCNID4gc2h1dW1laVwgOwor5oub6IGYID4gc2hvdWhlaVwgOwor5oqY6KGdID4gc2Vzc2hvdVwgOwor57S55LuLID4gc2hvdWthaVwgOwor57SF5ZSHID4ga291c2hpblwgOwor6KGo54++ID4gaHlvdWdlblwgOwor5Zub55CDID4gc2hpa3l1dVwgOwor5Z6C5b+DID4gc3Vpc2hpblwgOwor5o6o5pyNID4gc3VpZnVrdVwgOwor6KGG55+lID4gc2h1dWNoaVwgOwor6ZaR5a+CID4ga2FuamFrdVwgOwor57O+5ZWPID4ga3l1dW1vblwgOwor6KOP5pu4ID4gdXJhZ2FraVwgOwor562G6KqFID4gaGl0Y2h1dVwgOwor5om/6KqNID4gc2hvdW5pblwgOwor6ZW35bm8ID4gY2hvdXlvdVwgOwor6ZW35bm0ID4gbmFnYW5lblwgOwor6Zaj5aSWID4ga2FrdWdhaVwgOwor6KaB5YSfID4geW91c2hvdVwgOwor562J6KeSID4gdG91a2FrdVwgOwor5ZiG6LOeID4gdGFuc2hvdVwgOwor562J6KaqID4gdG91c2hpblwgOwor5pC+5Y+WID4gc2FrdXNodVwgOwor5aCF5Lq6ID4ga2F0YWppblwgOwor6KOF5p2fID4gc291em9rdVwgOwor5Zyf5qmLID4gZG9iYXNoaVwgOwor5Zyw5qC4ID4gY2hpa2FrdVwgOwor5omL6L+RID4gdGVkamlrYVwgOwor6KOP5pa5ID4gdXJha2F0YVwgOwor57O+5ZCIID4ga3l1dWdvdVwgOwor6J+557y2ID4ga2FuaWthblwgOwor5r+A5ribID4gZ2VraWdlblwgOwor57KX5b+9ID4gc29rb3RzdVwgOwor57SN5YWlID4gbm91bnl1dVwgOwor5oqA6KGTID4gZ2lqdXRzdVwgOwor5oqV6JasID4gdG91eWFrdVwgOwor5r+A5rWqID4gZ2VraXJvdVwgOwor57SE5YiGID4geWFrdWJ1blwgOwor5Zu95rOVID4ga29rdWhvdVwgOwor5omL6LmfID4gc2h1c2VraVwgOwor5oiQ6ZW3ID4gc2VpY2hvdVwgOwor57KS5b6EID4gcnl1dWtlaVwgOwor6ZW35a6YID4gY2hvdWthblwgOwor5omL6LehID4gc2h1c2VraVwgOwor6ZW35a2QID4gY2hvdXNoaVwgOwor5Zu95rCRID4ga29rdW1pblwgOwor57K+5aaZID4gc2VpbXlvdVwgOwor5r+B5rC0ID4gZGFrdXN1aVwgOwor6Juf6b6NID4ga291cnlvdVwgOwor5o6S5palID4gaGFpc2VraVwgOwor6ZaJ5aGeID4gaGVpc29rdVwgOwor6KGM54q2ID4gZ3lvdWpvdVwgOwor6J226LKdID4gY2hvdWdhaVwgOwor6KWf5YWDID4gZXJpbW90b1wgOwor6KGA55CDID4ga2Vra3l1dVwgOwor5ouZ562WID4gc2Vzc2FrdVwgOwor5oe46ZqUID4ga2Vua2FrdVwgOwor6KOP5oqAID4gdXJhd2F6YVwgOwor5Zyo5pa5ID4gemFpa2F0YVwgOwor56u56LyqID4gY2hpa3V3YVwgOwor5o6S5pKDID4gaGFpZ2VraVwgOwor56+A55uuID4gZnVzaGltZVwgOwor5o6h5oqeID4gc2FpdGFrdVwgOwor5o2V5q66ID4gaG9zYXRzdVwgOwor6ZaL5Zu9ID4ga2Fpa29rdVwgOwor6J6f6JmrID4gbWVpY2h1dVwgOwor54G95Y6EID4gc2FpeWFrdVwgOwor5Zyf5pelID4gZG9uaWNoaVwgOwor6KSS5aWoID4gaG91c2hvdVwgOwor6ZW35aSnID4gY2hvdWRhaVwgOwor5oiQ6YqAID4gbmFyaWdpblwgOwor56+E55aHID4gaGFuY2h1dVwgOwor5Zue5rWBID4ga2Fpcnl1dVwgOwor57KX5a+GID4gc29taXRzdVwgOwor5o6M5o+hID4gc2hvdWFrdVwgOwor5oiQ6YeRID4gbmFyaWtpblwgOwor5r2U55m9ID4ga2VwcGFrdVwgOwor5r2U55mWID4ga2VwcGVraVwgOwor5ryi57GNID4ga2Fuc2VraVwgOwor5Zyn5o6lID4gYXNzZXRzdVwgOwor5oq957GkID4gY2h1dXNlblwgOwor56u26LWwID4ga3lvdXNvdVwgOwor57KS5a2QID4gcnl1dXNoaVwgOwor5omN6KaaID4gc2Fpa2FrdVwgOwor54Gr5Y+jID4gaGlndWNoaVwgOwor5omA6KyCID4gaXdheXVydVwgOwor56yR6KanID4gc2hvdXJhblwgOwor6ZaT5Y+jID4gbWFndWNoaVwgOwor5pCP5YuVID4gaGFrdWRvdVwgOwor5oim6LehID4gc2Vuc2VraVwgOwor6Zaj5YaFID4ga2FrdW5haVwgOwor5rqA6LqrID4gbWFuc2hpblwgOwor5Zu95pysID4ga29rdWhvblwgOwor6KOP5bqtID4gdXJhbml3YVwgOwor6KOP5bqXID4gdXJhZGFuYVwgOwor5Zu95pyJID4ga29rdXl1dVwgOwor5Zu95pu4ID4ga29rdXNob1wgOwor54Gr5YqbID4ga2FyeW9rdVwgOwor6ZW35ZiGID4gY2hvdXRhblwgOwor56uc6LuKID4gcnl1dXNoYVwgOwor5oiR6LypID4gd2FnYWhhaVwgOwor5rqA6LazID4gbWFuem9rdVwgOwor6KGA5r2uID4gY2hpc2hpb1wgOwor5ryG57W1ID4gdXJ1c2hpZVwgOwor57KX5aOBID4gYXJha2FiZVwgOwor6KGA5ry/ID4ga2Vzc2hvdVwgOwor6b236b2qID4gYWt1c2VrdVwgOwor5r+A5pqRID4gZ2VraXNob1wgOwor5ZWG6a2CID4gc2hvdWtvblwgOwor5Zyw5b+DID4gY2hpc2hpblwgOwor56m66aasID4ga2FyYXVtYVwgOwor6ZW35ZSEID4gbmFnYXV0YVwgOwor5pCN5YK3ID4gc29uc2hvdVwgOwor566X55ukID4gc29yb2JhblwgOwor5Zu95paHID4ga29rdWJ1blwgOwor6ZaL5YmKID4ga2Fpc2FrdVwgOwor5omA6KGMID4gc2hvZ3lvdVwgOwor5Zu95pWZID4ga29ra3lvdVwgOwor6ZW35ZG9ID4gY2hvdW1laVwgOwor5Zu95pS/ID4ga29rdXNlaVwgOwor5rqi6KGAID4gaWtrZXRzdVwgOwor57Gz5a+pID4gYmVpc2hpblwgOwor5Z2p5aCdID4gcnV0c3Vib1wgOwor56+A54WZID4gc2V0c3VlblwgOwor5Zuj5qCXID4gZG9uZ3VyaVwgOwor5rib6aGNID4gZ2VuZ2FrdVwgOwor5Zuz5pifID4genVib3NoaVwgOwor6KOP5bGxID4gdXJheWFtYVwgOwor5oqY57SZID4gb3JpZ2FtaVwgOwor5ouY55WZID4ga291cnl1dVwgOwor6KGM5rC0ID4gZ3lvdXp1aVwgOwor57KJ5aOBID4gZnVucGVraVwgOwor56uL6LqrID4gcmlzc2hpblwgOwor5o6l5bC+ID4gc2V0c3ViaVwgOwor56u56KO9ID4gdGFrZXNlaVwgOwor5ZWG6aSoID4gc2hvdWthblwgOwor566X55SoID4gc2FuJyd5b3VcIDsKK+ihgOayiCA+IGtldGNoaW5cIDsKK+mWk+S9nCA+IGthbnNha3VcIDsKK+aJi+iUkyA+IHRlZHp1cnVcIDsKK+ikh+WQiCA+IGZ1a3Vnb3VcIDsKK+mVt+WJoyA+IGNob3VrZW5cIDsKK+eBq+S7mCA+IGhpdHN1a2VcIDsKK+WUkOm7jSA+IHRvdWtpYmlcIDsKK+WcsOWzoSA+IGNoaWt5b3VcIDsKK+eviea4ryA+IGNoaWtrb3VcIDsKK+aPkOWUsSA+IHRlaXNob3VcIDsKK+epuumamSA+IGt1dWdla2lcIDsKK+aKnOeptCA+IG51a2VhbmFcIDsKK+mWkeS6uiA+IGhpbWFqaW5cIDsKK+epuumZuCA+IGt1dXJpa3VcIDsKK+idmeidoCA+IGhlbnB1a3VcIDsKK+aKhOe0mSA+IHNob3VzaGlcIDsKK+WbnuaYpSA+IGthaXNodW5cIDsKK+mWk+S4rSA+IGFpZGFqdXVcIDsKK+aJv+e2mSA+IHNob3VrZWlcIDsKK+etiee0miA+IHRvdWt5dXVcIDsKK+aOkuWwvyA+IGhhaW55b3VcIDsKK+aNt+W+hCA+IHNob3VrZWlcIDsKK+WbveaJiyA+IGtva3VzaHVcIDsKK+aOqOWlqCA+IHN1aXNob3VcIDsKK+ihjOalvSA+IGtvdXJha3VcIDsKK+mVt+WFhCA+IGNob3VrZWlcIDsKK+ihqOaYjiA+IGh5b3VtZWlcIDsKK+a/gOaIpiA+IGdla2lzZW5cIDsKK+WbnuaVmSA+IGthaWt5b3VcIDsKK+WcsOWtpiA+IGNoaWdha3VcIDsKK+a8geekgSA+IGd5b3Nob3VcIDsKK+ihqOaVrCA+IGh5b3VrZWlcIDsKK+aGgumssSA+IHl1dXV0c3VcIDsKK+aHuOizniA+IGtlbnNob3VcIDsKK+a/gOaGpCA+IGdla2lmdW5cIDsKK+epv+mRvyA+IHNlbnNha3VcIDsKK+a9pOayoiA+IGp1bnRha3VcIDsKK+aMr+abvyA+IGZ1cmlrYWVcIDsKK+evpuajkiA+IGJlcmFib3VcIDsKK+ikh+WGmSA+IGZ1a3VzaGFcIDsKK+aKleelqCA+IHRvdWh5b3VcIDsKK+WbveaDhSA+IGtva3Vqb3VcIDsKK+WcqOWuhSA+IHphaXRha3VcIDsKK+WcqOWtpiA+IHphaWdha3VcIDsKK+aHkOmDtyA+IGthaWt5b3VcIDsKK+a/gOaDhSA+IGdla2lqb3VcIDsKK+eyvuS4gCA+IHNlaWl0c3VcIDsKK+WZqOeJqSA+IGtpYnV0c3VcIDsKK+exs+WbvSA+IGJlaWtva3VcIDsKK+eri+iovCA+IHJpc3Nob3VcIDsKK+aOm+WjsCA+IGtha2Vnb2VcIDsKK+ihjOacqyA+IHl1a3VzdWVcIDsKK+ihjOabuCA+IGd5b3VzaG9cIDsKK+a4vui6qyA+IGtvbnNoaW5cIDsKK+aJgeiInyA+IGhlbnNodXVcIDsKK+aKleefsyA+IHRvdXNla2lcIDsKK+aMh+aomSA+IHNoaWh5b3VcIDsKK+WbsOaDkSA+IGtvbndha3VcIDsKK+aMn+abuCA+IGt5b3VzaG9cIDsKK+aPj+WGmSA+IGJ5b3VzaGFcIDsKK+ihhuacmyA+IHNodXVib3VcIDsKK+mVt+S4iiA+IGNob3Vqb3VcIDsKK+iht+aDhSA+IGNodXVqb3VcIDsKK+a4m+mHjyA+IGdlbnJ5b3VcIDsKK+a+hOaYjiA+IGNob3VtZWlcIDsKK+ihhuaZuiA+IHNodXVjaGlcIDsKK+WYieevgCA+IGthc2V0c3VcIDsKK+ihjOaVsCA+IGd5b3VzdXVcIDsKK+Wbs+W8jyA+IHp1c2hpa2lcIDsKK+ihjOaUvyA+IGd5b3VzZWlcIDsKK+aIkOiZqyA+IHNlaWNodXVcIDsKK+a8v+a2siA+IHNob3Vla2lcIDsKK+WcsOWdqiA+IGppdHN1Ym9cIDsKK+epgOmhniA+IGtva3VydWlcIDsKK+a8oOeEtiA+IGJha3V6ZW5cIDsKK+ertuiJhyA+IGt5b3V0ZWlcIDsKK+ijveS9nCA+IHNlaXNha3VcIDsKK+eqgemAsiA+IHRvc3NoaW5cIDsKK+aPkOS+myA+IHRlaWt5b3VcIDsKK+a3semWkSA+IHNoaW5rYW5cIDsKK+exs+WPjiA+IGJlaXNodXVcIDsKK+epv+mAmiA+IHNlbnRzdXVcIDsKK+a4m+mAnyA+IGdlbnNva3VcIDsKK+ihqOaDhSA+IGh5b3Vqb3VcIDsKK+espuevgCA+IGZ1c2V0c3VcIDsKK+WZtOa1gSA+IGZ1bnJ5dXVcIDsKK+aJv+efpSA+IHNob3VjaGlcIDsKK+eorummrCA+IHRhbmV1bWFcIDsKK+a3oembqiA+IGF3YXl1a2lcIDsKK+WVk+i/qiA+IGtlaXRla2lcIDsKK+aOpeWPlyA+IHNldHN1anVcIDsKK+aMqOaLtiA+IGFpc2F0c3VcIDsKK+aMq+aKmCA+IHphc2V0c3VcIDsKK+aOpeWPjiA+IHNlc3NodXVcIDsKK+aJi+e2sSA+IHRhZHp1bmFcIDsKK+ihsOW8sSA+IHN1aWpha3VcIDsKK+WbnuW/gyA+IGthaXNoaW5cIDsKK+WbveWvviA+IGtva3V0YWlcIDsKK+a8geeNsiA+IGd5b2tha3VcIDsKK+WbnuW+qSA+IGthaWZ1a3VcIDsKK+etlOeUsyA+IHRvdXNoaW5cIDsKK+aJiee1tSA+IHRvYmlyYWVcIDsKK+WbveWunSA+IGtva3Vob3VcIDsKK+a8geeMnyA+IGd5b3J5b3VcIDsKK+WbveWumiA+IGtva3V0ZWlcIDsKK+WbveWuiCA+IGtva3VzaHVcIDsKK+eskee0jSA+IHNob3Vub3VcIDsKK+aKleeQgyA+IHRvdWt5dXVcIDsKK+WbmuW9uSA+IHNodXVla2lcIDsKK+WUh+mfsyA+IHNoaW4nJ29uXCA7CivmjbfloLEgPiBzaG91aG91XCA7CivmjqLli50gPiB0YW5zaG91XCA7CivmipXnjYQgPiB0b3Vnb2t1XCA7CivooYzmiJAgPiBpa2luYXJpXCA7Civmu5Hnn7MgPiBrYXNzZWtpXCA7CivmuIXpgakgPiBzZWl0ZWtpXCA7CivmuoDohbkgPiBtYW5wdWt1XCA7CivpvLvpqqggPiBiaWtvdHN1XCA7CivlnLDlj6MgPiBqaWd1Y2hpXCA7CivmiYvnrpIgPiB0ZWJvdWtpXCA7CivmvILnhLYgPiBoeW91emVuXCA7CivllJDploAgPiBrYXJhbW9uXCA7CivmtrzpoqggPiByeW91ZnV1XCA7Civmu57nlZkgPiB0YWlyeXV1XCA7CivmjIfmkZggPiBzaGl0ZWtpXCA7CivmtrXppIogPiBrYW4nJ3lvdVwgOwor5oq55raIID4gbWFzc2hvdVwgOwor56uc6ISzID4gcnl1dW5vdVwgOwor5Zu95aSnID4ga29rdWRhaVwgOwor57Gz5L+XID4gYmVpem9rdVwgOwor5Zu95aSWID4ga29rdWdhaVwgOwor5o6Y5YmKID4ga3Vzc2FrdVwgOwor6KGT5b6MID4ganV0c3Vnb1wgOwor5Zu95aOrID4ga29rdXNoaVwgOwor6KOP5YG0ID4gdXJhZ2F3YVwgOwor5r+B5aOwID4gZGFtaWdvZVwgOwor57Gz5L2cID4gYmVpc2FrdVwgOwor5r+A5aSJID4gZ2VraWhlblwgOwor5ZSx6YGTID4gc2hvdWRvdVwgOwor5ZWP6LKsID4gbW9uc2VraVwgOwor5oyR5oimID4gY2hvdXNlblwgOwor5Zu95aKDID4ga29ra3lvdVwgOwor6KGo5bGkID4gaHlvdXNvdVwgOwor56m66LC3ID4ga3V1a29rdVwgOwor5oim57i+ID4gc2Vuc2VraVwgOwor5r+A5aKXID4gZ2VraXpvdVwgOwor5oeH6KaqID4ga29uc2hpblwgOwor56uv57axID4gaGFkenVuYVwgOwor5rex6YGgID4gc2hpbicnZW5cIDsKK+a4k+iwtyA+IGtlaWtva3VcIDsKK+evpOW/lyA+IHRva3VzaGlcIDsKK+ijj+S9nCA+IHVyYXNha3VcIDsKK+WWnOiJsiA+IGtpc2hva3VcIDsKK+ijguWCtyA+IHJlc3Nob3VcIDsKK+ibruilnyA+IGJhbmthcmFcIDsKK+exs+S4rSA+IGJlaWNodXVcIDsKK+eri+iFuSA+IHJpcHB1a3VcIDsKK+eojumhjSA+IHplaWdha3VcIDsKK+aLm+adpSA+IHNob3VyYWlcIDsKK+erv+eruSA+IHNhb2Rha2VcIDsKK+a8q+alvSA+IG1hbmdha3VcIDsKK+a3q+mAuCA+IGluJydpdHN1XCA7Civmi5jmnZ8gPiBrb3Vzb2t1XCA7Civnqbroqr8gPiBrdXVjaG91XCA7CivnqoHop5IgPiB0b2trYWt1XCA7CivomavpoZ4gPiBjaHV1cnVpXCA7CivmjbrljbAgPiBuYXRzdWluXCA7CivooYblurYgPiBzaHV1c2hvXCA7Civnq7nnq78gPiB0YWtlemFvXCA7CivllY/oqLogPiBtb25zaGluXCA7Civmi5PmnKwgPiB0YWt1aG9uXCA7CivmvILmtaogPiBoeW91cm91XCA7Civmi6HmlaMgPiBrYWt1c2FuXCA7Civom7nomasgPiB5b3VjaHV1XCA7Civpi7Ppi7wgPiBjaHV1a291XCA7CivnqY3ovIkgPiBzZWtpc2FpXCA7Civmtbfps6UgPiBrYWljaG91XCA7Civlm73llqogPiBrb2t1c291XCA7CivllYboq4cgPiBzaG91ZGFuXCA7CivnqbropbIgPiBrdXVzaHV1XCA7CivmiJDnuL4gPiBzZWlzZWtpXCA7Civnrobmo5IgPiBiZXJhYm91XCA7CivlnKjkv5cgPiB6YWl6b2t1XCA7Civmi7HmiYsgPiBreW91c2h1XCA7CivlloToia8gPiB6ZW5yeW91XCA7CivooZLlraYgPiBnZW5nYWt1XCA7Civpi7Pph5EgPiBjaHV1a2luXCA7CivnqbrooYwgPiBrdXVneW91XCA7CivlnLDkuLsgPiBqaW51c2hpXCA7CivlnLDkuK0gPiBjaGljaHV1XCA7CivmiJDntIQgPiBzZWl5YWt1XCA7Civlm4PlrZAgPiBoYXlhc2hpXCA7Civnp4DpupcgPiBzaHV1cmVpXCA7Civmv6vkvZwgPiByYW5zYWt1XCA7CivooZflqLwgPiBnYWlzaG91XCA7Civlm73lkI0gPiBrb2t1bWVpXCA7Civlm73lj7ggPiBrb2t1c2hpXCA7Civlm73lj7cgPiBrb2t1Z291XCA7Civlm73lj7IgPiBrb2t1c2hpXCA7CivpjK/op5IgPiBzYWtrYWt1XCA7CivlnKjkuqwgPiB6YWlreW91XCA7CivooZ3lpKkgPiBzaG91dGVuXCA7CivnrofmnIggPiBrYWdldHN1XCA7CivlnI/lhoUgPiBrZW4nJ25haVwgOwor6Yyv6KaaID4gc2Fra2FrdVwgOwor5ouN5pWwID4gaGFrdXN1dVwgOwor5ryi5pydID4ga2FuY2hvdVwgOwor566h5o6MID4ga2Fuc2hvdVwgOwor5Zyo5LitID4gemFpY2h1dVwgOwor5r2c5b+DID4gc2Vuc2hpblwgOwor5Zue5Zu9ID4ga2Fpa29rdVwgOwor5r2b5b+DID4gc2Vuc2hpblwgOwor6KGo5ZyoID4gaHlvdXphaVwgOwor5ru05rC0ID4gdGVraXN1aVwgOwor5omT546HID4gZGFyaXRzdVwgOwor6Yuz6YCgID4gY2h1dXpvdVwgOwor5Zu95YuiID4ga29rdXNlaVwgOwor5Zub5Zu9ID4gc2hpa29rdVwgOwor5Zu95Yq0ID4ga29rdXJvdVwgOwor5rex6KydID4gc2hpbnNoYVwgOwor5oud5om/ID4gaGFpc2hvdVwgOwor5rex6KyAID4gc2hpbmJvdVwgOwor5Zqu5bCOID4ga3lvdWRvdVwgOwor5r+A5YuVID4gZ2VraWRvdVwgOwor56uL57GzID4gcnl1dWJlaVwgOwor562L5rOoID4ga2luY2h1dVwgOwor5r+A5YqxID4gZ2VraXJlaVwgOwor5oqR5q2iID4geW9rdXNoaVwgOwor5ryi5pePID4ga2Fuem9rdVwgOwor5rqA56WoID4gbWFucHlvdVwgOwor56+A5bqmID4gc2V0c3Vkb1wgOwor56a96bOlID4ga2luY2hvdVwgOwor5oi055m9ID4gdGFpaGFrdVwgOwor5ouZ5oqAID4gc2V0c3VnaVwgOwor5ryB5qWtID4gZ3lvZ3lvdVwgOwor5ryU5puyID4gZW5reW9rdVwgOwor5ray6YePID4gZWtpcnlvdVwgOwor6JuH6KCNID4gZGFrYXRzdVwgOwor5Zu95YaFID4ga29rdW5haVwgOwor6byO6Z2pID4gdGVpa2FrdVwgOwor6JuU6JmrID4ga2FpY2h1dVwgOwor5Zu95YW4ID4ga29rdXRlblwgOwor6J2L55+zID4gcm91c2VraVwgOwor56uc56WeID4gcnl1dWppblwgOwor5raI6ZiyID4gc2hvdWJvdVwgOwor5rWB6bqXID4gcnl1dXJlaVwgOwor56uv55qEID4gdGFudGVraVwgOwor5rip6ImyID4gb25zaG9rdVwgOwor6JuH6J2OID4gZGFrYXRzdVwgOwor5Zu95YK1ID4ga29rdXNhaVwgOwor5rqW55SoID4ganVuJyd5b3VcIDsKK+eptOiUtSA+IGFuYWd1cmFcIDsKK+aLjeaJiyA+IGhha3VzaHVcIDsKK+a2iOmWkSA+IHNob3VrYW5cIDsKK+aJi+eHrSA+IHRlc2hva3VcIDsKK+WWquelniA+IHNvdXNoaW5cIDsKK+Wbm+WRqCA+IHNoaXNodXVcIDsKK+WbnuWPjiA+IGthaXNodXVcIDsKK+euseW4qyA+IGhha29zaGlcIDsKK+ihqOWPtyA+IGh5b3Vnb3VcIDsKK+m7hOm6uyA+IHRzdW5hc29cIDsKK+iZq+mFuCA+IG11c2hpenVcIDsKK+a6gOebriA+IG1hbm1va3VcIDsKK+aLneW+qSA+IGhhaWZ1a3VcIDsKK+mQmOalvCA+IHNob3Vyb3VcIDsKK+eri+eniyA+IHJpc3NodXVcIDsKK+eni+miqCA+IHNodXVmdXVcIDsKK+aKvOaNuiA+IG91bmF0c3VcIDsKK+WbveS9vyA+IGtva3VzaGlcIDsKK+aLm+W+hSA+IHNob3V0YWlcIDsKK+a1pumiqCA+IHVyYWthemVcIDsKK+epuuiMtiA+IGthcmFjaGFcIDsKK+WbveS9kyA+IGtva3V0YWlcIDsKK+ernOecvCA+IHJ5dXVnYW5cIDsKK+a1t+mZuCA+IGthaXJpa3VcIDsKK+eogOmHiCA+IGtpc2hha3VcIDsKK+eojui+vCA+IHplaWtvbWlcIDsKK+m7kumvmyA+IGt1cm9kYWlcIDsKK+epuuiJsiA+IHNvcmFpcm9cIDsKK+aMmeWbvSA+IGt5b2tva3VcIDsKK+WbveS4uyA+IGtva3VzaHVcIDsKK+ihsOWFhiA+IHN1aWNob3VcIDsKK+WbveS4rSA+IGt1bmlqdXVcIDsKK+eni+mcnCA+IHNodXVzb3VcIDsKK+WWieesmyA+IG5vZG9idWVcIDsKK+eni+mcliA+IHNodXVyaW5cIDsKK+ibrue/kiA+IGJhbnNodXVcIDsKK+m7hOmzpSA+IGtvdWNob3VcIDsKK+ihjOWVkyA+IGd5b3VrZWlcIDsKK+eni+mbqCA+IGFraXNhbWVcIDsKK+epuuiFuSA+IGt1dWZ1a3VcIDsKK+a7i+auliA+IGppc2hva3VcIDsKK+ihneWLlSA+IHNob3Vkb3VcIDsKK+aMv+WFpSA+IHNvdW55dXVcIDsKK+WSjOmjnyA+IHdhc2hva3VcIDsKK+aKnOaToiA+IGJhdHRla2lcIDsKK+a6r+a6kCA+IHNha3VnZW5cIDsKK+aKm+aTsiA+IGhvdXRla2lcIDsKK+WVhuiIuSA+IHNob3VzZW5cIDsKK+mNteeptCA+IGthZ2lhbmFcIDsKK+aMr+WLlSA+IHNoaW5kb3VcIDsKK+ifu+W3uyA+IGFyaW1ha2lcIDsKK+aJtuakjSA+IGZ1c2hva3VcIDsKK+aKhOacrCA+IHNob3Vob25cIDsKK+aMh+WcpyA+IHNoaWF0c3VcIDsKK+aKleaTsiA+IHRvdXRla2lcIDsKK+aMh+WbsyA+IHNhc2hpenVcIDsKK+a6uuawtCA+IGRla2lzdWlcIDsKK+evieWcsCA+IHRzdWtpamlcIDsKK+m7kumiqCA+IGtva3VmdXVcIDsKK+idi+eHrSA+IHJvdXNva3VcIDsKK+a6uuatuyA+IGRla2lzaGlcIDsKK+aLmeWuhSA+IHNldHRha3VcIDsKK+aJi+ayoiA+IHNodXRha3VcIDsKK+aDo+mgmCA+IHNvdXJ5b3VcIDsKK+emgemzpSA+IGtpbmNob3VcIDsKK+aKkeaPmiA+IHlva3V5b3VcIDsKK+WbmuS6uiA+IHNodXVqaW5cIDsKK+a4heiBtCA+IHNlaWNob3VcIDsKK+esiuazlSA+IHphcnVob3VcIDsKK+aHh+evpCA+IGtvbnRva3VcIDsKK+ertua8lSA+IGt5b3Vzb3VcIDsKK+a3s+iJryA+IGp1bnJ5b3VcIDsKK+a4m+e1piA+IGdlbmt5dXVcIDsKK+mPluauuiA+IG91c2F0c3VcIDsKK+WUkOiWryA+IGthcmFpbW9cIDsKK+eojuiqvyA+IHplaWNob3VcIDsKK+eskeatoiA+IHNob3VzaGlcIDsKK+iYremLsyA+IHJhbmNodXVcIDsKK+aLoeWkpyA+IGtha3VkYWlcIDsKK+mKhemQuCA+IGRvdXRha3VcIDsKK+aLjeWtkCA+IGh5b3VzaGlcIDsKK+mKhemPoSA+IGRvdWt5b3VcIDsKK+a1uOmAjyA+IHNoaW50b3VcIDsKK+etluaIpiA+IHNha3VzZW5cIDsKK+aIkOeGnyA+IHNlaWp1a3VcIDsKK+a6nOaxoCA+IHRhbWVpa2VcIDsKK+a1pumHjCA+IHVyYXphdG9cIDsKK+a5r+eGqCA+IHl1bm9zaGlcIDsKK+WWq+eFmSA+IGtpdHN1ZW5cIDsKK+WYieaXpSA+IGthaml0c3VcIDsKK+a6gOa9riA+IG1hbmNob3VcIDsKK+ensOizmyA+IHNob3VzYW5cIDsKK+Wah+WahyA+IGtha2tha3VcIDsKK+WVhue1jCA+IHNob3VrZWlcIDsKK+aLk+WkpyA+IHRha3VkYWlcIDsKK+a6kOa1gSA+IGdlbnJ5dXVcIDsKK+epjuiEsSA+IGVpZGF0c3VcIDsKK+eqgeerryA+IHRvcHBhbmFcIDsKK+ihjOS9kyA+IGd5b3V0YWlcIDsKK+a8ouWtpiA+IGthbmdha3VcIDsKK+m7hOmbgCA+IGtvdWpha3VcIDsKK+WWgOeXsCA+IGtha3V0YW5cIDsKK+m8u+ihgCA+IGhhbmFkamlcIDsKK+mMr+e2nCA+IHNha3Vzb3VcIDsKK+a3seiAlSA+IHNoaW5rb3VcIDsKK+ihk+S4rSA+IGp1dGNodXVcIDsKK+a0vumWpSA+IGhhYmF0c3VcIDsKK+WWhOeUqCA+IHplbicneW91XCA7Civom5/nq5wgPiBrb3VyeW91XCA7CivmvIblt6UgPiBzaGlra291XCA7CivmhrLnq6AgPiBrZW5zaG91XCA7Civpurvpm4AgPiBtYXplamFuXCA7CivmiKbms4EgPiBzZW5reW91XCA7CivmvIHluKsgPiByeW91c2hpXCA7Civnr4bliLsgPiB0ZW5rb2t1XCA7CivooYbkurogPiBzaHV1amluXCA7CivmiYDmpa0gPiBzaG9neW91XCA7Civnqbbnq58gPiBrdWtreW91XCA7CivlmLLlvIQgPiBjaG91cm91XCA7CivmiK/mrYwgPiB6YXJldXRhXCA7CivooKLli5UgPiBzaHVuZG91XCA7CivllJDoh7wgPiBrYXJhdXN1XCA7CivmuoDmtLIgPiBtYW5zaHV1XCA7Civmub7mtYEgPiB3YW5yeXV1XCA7CivlloTnjokgPiB6ZW5kYW1hXCA7Civnp4HpgJogPiBzaGl0c3V1XCA7CivnqK7oi5cgPiBzaHVieW91XCA7Civmtbfos4ogPiBrYWl6b2t1XCA7CivnqK7oiosgPiB0YW5laW1vXCA7Civmua7mu4UgPiBpbm1ldHN1XCA7CivmiKbmrbQgPiBzZW5yZWtpXCA7CivmjIflgKQgPiBzYXNoaW5lXCA7CivmtbfosbkgPiBrYWloeW91XCA7CivmtbfosaEgPiBzZWl1Y2hpXCA7Civnqq7nirYgPiBreXV1am91XCA7Civmirzlo7IgPiBvc2hpdXJpXCA7Civlk4HoqZUgPiBoaW5weW91XCA7Civmg6jphbcgPiB6YW5rb2t1XCA7Civmgqrpo58gPiBha3VqaWtpXCA7Civom67nmoQgPiBiYW50ZWtpXCA7Civmt7HntIUgPiBzaGlua291XCA7CivnpZ7pq4QgPiBzaGluenVpXCA7CivomIfpiYQgPiBzb3RldHN1XCA7CivnrYnlvLUgPiB0b3VjaG91XCA7Civon4TlsYUgPiBjaGlra3lvXCA7CivmhJroqqwgPiBndXNldHN1XCA7Civmh7jmv4EgPiBrZW5kYWt1XCA7CivllYbnpL4gPiBzaG91c2hhXCA7CivpioPouqsgPiBqdXVzaGluXCA7Civmup3mnb8gPiBkb2J1aXRhXCA7CivmuIXnp4sgPiBzZWlzaHV1XCA7CivmhJ/oppogPiBrYW5rYWt1XCA7CivmuIXnpo8gPiBzZWlmdWt1XCA7CivmuJvnm4ogPiBnZW4nJ2VraVwgOwor5riF56WlID4gc2Vpc2hvdVwgOwor5Zqi5LitID4gbm91Y2h1dVwgOwor56We6aWMID4gc2hpbnNlblwgOwor6b6N56WeID4gcnl1dWppblwgOwor56eY6KijID4gaGlrZXRzdVwgOwor56m655m9ID4ga3V1aGFrdVwgOwor5r2c5LyPID4gc2VucHVrdVwgOwor5ZiG5oGvID4gdGFuc29rdVwgOwor6Jm56ImyID4gbmlqaWlyb1wgOwor562W5a6aID4gc2FrdXRlaVwgOwor5rWB6YCjID4gcnl1dXJlblwgOwor5rWu6KqsID4gZnVzZXRzdVwgOwor56mN566XID4gc2VraXNhblwgOwor5oKq6Zi7ID4gdHN1d2FyaVwgOwor5oa255eFID4gb2t1YnlvdVwgOwor5oWj57+SID4ga2Fuc2h1dVwgOwor5rex56qTID4gc2hpbnNvdVwgOwor5oiv5puyID4gZ2lreW9rdVwgOwor5omL5o6MID4gc2h1c2hvdVwgOwor5oKj6ZujID4ga2FuJyduYW5cIDsKK+aLoeWFhSA+IGtha3VqdXVcIDsKK+elnumfuyA+IHNoaW4nJ2luXCA7CivnqYDnsokgPiBrb2t1ZnVuXCA7Civlk6joiI4gPiBzaG91c2hhXCA7CivnrqHlhoUgPiBrYW4nJ25haVwgOwor6ZG/5LqVID4gc2FrdXNlaVwgOwor5ZSQ57O4ID4ga2FyYWl0b1wgOwor6YmE6Y6aID4gdGV0dHN1aVwgOwor56m655O2ID4ga2FyYWJpblwgOwor5rqA5qCqID4gbWFua2FidVwgOwor6Yu857SiID4ga291c2FrdVwgOwor5ouN5YuVID4gaGFrdWRvdVwgOwor5omL5oqEID4gc2h1c2hvdVwgOwor56eY6KGTID4gaGlqdXRzdVwgOwor5ruR5bitID4ga2Fzc2VraVwgOwor56We6ZyKID4gc2hpbnJlaVwgOwor5oiQ5qWtID4gc2VpZ3lvdVwgOwor6JuL55m9ID4gdGFucGFrdVwgOwor5ZGo6YGKID4gc2h1dXl1dVwgOwor5oKg6ZW3ID4geXV1Y2hvdVwgOwor5ZWG55SoID4gc2hvdXlvdVwgOwor5ruF5bqmID4gbWV0c3Vkb1wgOwor5rqA5pu0ID4gbWFuemFyYVwgOwor562W5aOrID4gc2FrdXNoaVwgOwor5ZGo6L66ID4gc2h1dWhlblwgOwor5oiQ5qGCID4gbmFyaWtlaVwgOwor5rW36JuHID4gdW1paGViaVwgOwor5rS76LevID4ga2F0c3Vyb1wgOwor6buS6LKCID4ga3Vyb3RlblwgOwor6ZCY5aOwID4gc2hvdXNlaVwgOwor5ouZ5L2cID4gc2Vzc2FrdVwgOwor6Yqt6JG1ID4gemVuaWFvaVwgOwor5ryG5ZawID4gc2hpa2t1aVwgOwor5rOi6Z+zID4gbmFtaW90b1wgOwor56ic57eaID4gcnlvdXNlblwgOwor56qu5rCRID4ga3l1dW1pblwgOwor5omN5b6zID4gc2FpdG9rdVwgOwor56uL5qGIID4gcml0c3VhblwgOwor6buZ6KqNID4gbW9rdW5pblwgOwor5oW256aPID4ga2VpZnVrdVwgOwor5ZG16LKsID4ga2FzaGFrdVwgOwor56m654iGID4ga3V1YmFrdVwgOwor5ZCD6amaID4gYmlra3VyaVwgOwor6J2/5bizID4gaGFpY2hvdVwgOwor56qu5q27ID4ga3l1dXNoaVwgOwor5ZCE6aeFID4ga2FrdWVraVwgOwor5ZWG54q2ID4gc2hvdWpvdVwgOwor56eL6JqVID4gc2h1dXNhblwgOwor5oq85YWlID4gb3NoaWlyZVwgOwor5re355SoID4ga29uJyd5b3VcIDsKK+a4pua9riA+IHV6dXNoaW9cIDsKK+m7meimliA+IG1va3VzaGlcIDsKK+iYreiZqyA+IHJhbmNodXVcIDsKK+mHo+mtmiA+IGNob3VneW9cIDsKK+aIkeaWuSA+IHdhZ2Fob3VcIDsKK+WQjOmhjSA+IGRvdWdha3VcIDsKK+eptOeGiiA+IGFuYWd1bWFcIDsKK+a1geiqrCA+IHJ1c2V0c3VcIDsKK+aJgOW+lyA+IHNob3Rva3VcIDsKK+a6nOaBryA+IHRhbWVpa2lcIDsKK+a3seeUmiA+IHNoaW5qaW5cIDsKK+aBremghiA+IGt5b3VqdW5cIDsKK+a8j+WIuyA+IHJvdWtva3VcIDsKK+iWqemVtyA+IHNhdGNob3VcIDsKK+a1geiogCA+IHJ5dXVnZW5cIDsKK+aLheS7uyA+IHRhbicnbmluXCA7CivmhJ/oiIggPiBrYW5reW91XCA7Civmt6Hnmb0gPiB0YW5wYWt1XCA7Civnq4vmmKUgPiByaXNzaHVuXCA7Civnqq/mpa0gPiB5b3VneW91XCA7CivmipzljrsgPiBiYWtreW91XCA7CivmipflkYogPiBrb3Vrb2t1XCA7CivmuKnmtbQgPiBvbicneW9rdVwgOwor56aB6LazID4ga2luc29rdVwgOwor5rqW5oClID4ganVua3l1dVwgOwor5ZCD6Z+zID4ga2l0c3VvblwgOwor6YmE6LevID4gdGV0c3Vyb1wgOwor56S+6ZW3ID4gc2hhY2hvdVwgOwor56m65rygID4ga3V1YmFrdVwgOwor5ZCE6Z2iID4ga2FrdW1lblwgOwor6buS6KGAID4ga3Vyb2NoaVwgOwor5raI6ICXID4gc2hvdW1vdVwgOwor56uj5oiQID4gc2h1bnNlaVwgOwor5rSX6LazID4gc2Vuc29rdVwgOwor6buS6J+7ID4ga3Vyb2FyaVwgOwor5oa25risID4gb2t1c29rdVwgOwor5rWB6KGMID4gcnl1dWtvdVwgOwor56qS5q27ID4gY2hpc3NoaVwgOwor6YeR6auYID4ga2luZGFrYVwgOwor56265L2TID4ga3lvdXRhaVwgOwor5ZCE6ZqOID4ga2FrdWthaVwgOwor5ZCr6YePID4gZ2FucnlvdVwgOwor56eL6I2JID4gYWtpa3VzYVwgOwor5omN5a2mID4gc2FpZ2FrdVwgOwor56We6YGTID4gc2hpbnRvdVwgOwor5ZC+6LypID4gd2FnYWhhaVwgOwor5oak5r+AID4gZnVuZ2VraVwgOwor5oOF6Kq/ID4gam91Y2hvdVwgOwor5oSJ6ImyID4geXVzaG9rdVwgOwor56iu55uuID4gc2h1bW9rdVwgOwor5riF5r+BID4gc2VpZGFrdVwgOwor562W5YuVID4gc2FrdWRvdVwgOwor5ZGo6KanID4gc2h1dXJhblwgOwor5riF5r6EID4gc2VpY2hvdVwgOwor5omA5bGeID4gc2hvem9rdVwgOwor562W5YqxID4gc2FrdXJlaVwgOwor5oim5b25ID4gc2VuJydla2lcIDsKK+iWhOmbsiA+IHVzdWd1bW9cIDsKK+iWhOmbqiA+IHVzdXl1a2lcIDsKK+elnei+niA+IHNodWt1amlcIDsKK+aKkeWItiA+IHlva3VzZWlcIDsKK+aBi+miqCA+IGtvaWthemVcIDsKK+WVhua4ryA+IHNob3Vrb3VcIDsKK+elnui8vyA+IG1pa29zaGlcIDsKK+iVgem6uyA+IGlyYWt1c2FcIDsKK+a4k+a1gSA+IGtlaXJ5dXVcIDsKK+a5v+aApyA+IHNoaXNzZWlcIDsKK+erpeW/gyA+IGRvdXNoaW5cIDsKK+aIkuaFjiA+IGthaXNoaW5cIDsKK+aKleWFpSA+IHRvdW55dXVcIDsKK+m5v+i/vSA+IHNoaWthb2lcIDsKK+ellui/sCA+IHNvanV0c3VcIDsKK+a3i+eXhSA+IHJpbmJ5b3VcIDsKK+aIiuaIjCA+IGJvanV0c3VcIDsKK+iWrOmFkiA+IHlha3VzaHVcIDsKK+WRquihkyA+IGp1anV0c3VcIDsKK+WPpOmhlCA+IGZ1cnVnYW9cIDsKK+a1heiWhCA+IHNlbnBha3VcIDsKK+aJi+WmuyA+IHRlZHp1bWFcIDsKK+a3t+a/gSA+IGtvbmRha3VcIDsKK+mHkemhjSA+IGtpbmdha3VcIDsKK+mJpOiZqyA+IGtvdWNodXVcIDsKK+a1o+iFuCA+IGthbmNob3VcIDsKK+a4hea2vCA+IHNlaXJ5b3VcIDsKK+aDqOiQvSA+IHNhbnJha3VcIDsKK+WVhuazlSA+IHNob3Vob3VcIDsKK+aFo+eUqCA+IGthbicneW91XCA7CivpioXoh60gPiBkb3VzaHV1XCA7CivnrJHlo7AgPiBzaG91c2VpXCA7CivomIrok4QgPiB1bmNoaWt1XCA7CivpioDoibIgPiBnaW4nJ2lyb1wgOwor6bqm6KeSID4gYmFra2FrdVwgOwor5oiS5b+DID4ga2Fpc2hpblwgOwor5oqV5L+hID4gdG91c2hpblwgOwor5riF5rWBID4gc2Vpcnl1dVwgOwor56eB6IW5ID4gc2hpZnVrdVwgOwor5rqA5bmFID4gbWFucHVrdVwgOwor5Y+w6ZajID4gZGFpa2FrdVwgOwor5rqA5bitID4gbWFuc2VraVwgOwor5om/5YmNID4gc2hvdXplblwgOwor5Zas5b+XID4ga3lvdXNoaVwgOwor5rex5r2tID4gc2hpbnRhblwgOwor5Y+N6aeBID4gaGFucGFrdVwgOwor56uj5belID4gc2h1bmtvdVwgOwor5rqA5beeID4gbWFuc2h1dVwgOwor5Zaq5b+DID4gc291c2hpblwgOwor5ZCM6YePID4gZG91cnlvdVwgOwor56Wd6LOAID4gc2h1a3VnYVwgOwor5oKq6KmVID4gYWt1aHlvdVwgOwor5ZOE56yRID4ga291c2hvdVwgOwor5oKq6KizID4gYWt1eWFrdVwgOwor5oCl6aiwID4ga3l1dXRvdVwgOwor6JWq6ZuRID4gYnV6YXRzdVwgOwor6buS6Iy2ID4ga3Vyb2NoYVwgOwor56iO55uuID4gemVpbW9rdVwgOwor5oqY5LitID4gc2V0Y2h1dVwgOwor56eY57WQID4gaGlrZXRzdVwgOwor5ZCM6YO3ID4gZG91a3lvdVwgOwor5oey5oiSID4gY2hvdWthaVwgOwor56S66YGUID4gaml0YXRzdVwgOwor6YeN6Zm9ID4gY2hvdXlvdVwgOwor5rex5re1ID4gc2hpbicnZW5cIDsKK+aHkOaXpyA+IGthaWt5dXVcIDsKK+etkOS9kyA+IGt5b3V0YWlcIDsKK+iZjueptCA+IGtva2V0c3VcIDsKK+WWmOaBryA+IHplbnNva3VcIDsKK+WPjemfvyA+IGhhbmt5b3VcIDsKK+mOruWumiA+IGNoaW50ZWlcIDsKK+a3sea1tyA+IHNoaW5rYWlcIDsKK+WVhuaoqSA+IHNob3VrZW5cIDsKK+etkuS6lSA+IHRzdXRzdWlcIDsKK+a3sea1hSA+IHNoaW5zZW5cIDsKK+WTsueQhiA+IHRldHN1cmlcIDsKK+mIjei2syA+IGRvbnNva3VcIDsKK+epuuahtiA+IGthcmFva2VcIDsKK+iWhOmIjSA+IHVzdW5vcm9cIDsKK+aHsuaCqiA+IGNob3Vha3VcIDsKK+epuuagqiA+IGt1dWthYnVcIDsKK+ibruaXjyA+IGJhbnpva3VcIDsKK+iViemiqCA+IHNob3VmdXVcIDsKK+esm+WQuSA+IGZ1ZWZ1a2lcIDsKK+azlei6qyA+IGhvc3NoaW5cIDsKK+ernOWuriA+IHJ5dXVndXVcIDsKK+elneiogCA+IHNodXVnZW5cIDsKK+mPoeWPsCA+IGt5b3VkYWlcIDsKK+aBpei+sSA+IGNoaWpva3VcIDsKK+ayiOmdmSA+IGNoaW5zZWlcIDsKK+aHsuW9uSA+IGNob3Vla2lcIDsKK+WWhOaCqiA+IHplbicnYWt1XCA7Civmu57kuqwgPiB0YWlreW91XCA7Civph43pjq4gPiBqdXVjaGluXCA7CivlkI3ot6EgPiBtZWlzZWtpXCA7CivmgKXpm6MgPiBreXV1bmFuXCA7CivoloTpgYcgPiBoYWt1Z3V1XCA7Civlj4Lpm4YgPiBzYW5zaHV1XCA7Civmt6Hms4ogPiB0YW5wYWt1XCA7CivmiYvlj6MgPiB0ZWd1Y2hpXCA7CivmsojpmY0gPiBjaGlua291XCA7CivmtbjnpLwgPiBzaGlucmVpXCA7CivlkajoiKogPiBzaHV1a291XCA7CivlloTlv4MgPiB6ZW5zaGluXCA7CivlloTlvrMgPiB6ZW50b2t1XCA7CivmiZPlipsgPiBkYXJ5b2t1XCA7Civmt6vmrLIgPiBpbicneW9rdVwgOwor6YqA57SZID4gZ2luZ2FtaVwgOwor6Yi06JitID4gc3V6dXJhblwgOwor5oim5Z+fID4gc2VuJydpa2lcIDsKK+WQn+iqpiA+IGdpbnNob3VcIDsKK+eptuaYjiA+IGt5dXVtZWlcIDsKK+WTgeebriA+IGhpbm1va3VcIDsKK+mGnOmhniA+IHNodXVydWlcIDsKK+m9suatryA+IG11c2hpYmFcIDsKK+WPrOmChCA+IHNob3VrYW5cIDsKK+azqOinoyA+IGNodXVrYWlcIDsKK+WPr+mAhiA+IGthZ3lha3VcIDsKK+aGguasnSA+IHl1dXV0c3VcIDsKK+mKheeulCA+IGRvdWhha3VcIDsKK+azqOimliA+IGNodXVzaGlcIDsKK+mHjemHjyA+IGp1dXJ5b3VcIDsKK+aIpuWbvSA+IHNlbmdva3VcIDsKK+aJgOWPjiA+IHNob3NodXVcIDsKK+aEm+edgCA+IGFpY2hha3VcIDsKK+mIjeinkiA+IGRvbmtha3VcIDsKK+m6puiMtiA+IG11Z2ljaGFcIDsKK+m7kue3miA+IGtva3VzZW5cIDsKK+aEmuebtCA+IGd1Y2hva3VcIDsKK+mKgOeulCA+IGdpbnBha3VcIDsKK+mPoeWDjyA+IGt5b3V6b3VcIDsKK+iXpOiJsiA+IGZ1amlpcm9cIDsKK+WPsui5nyA+IHNoaXNla2lcIDsKK+aIuOWPoyA+IHRvZ3VjaGlcIDsKK+epuuaPmiA+IGthcmFhZ2VcIDsKK+mKgOesmyA+IGdpbnRla2lcIDsKK+a5v+WcsCA+IHNoaXRjaGlcIDsKK+a1t+ebuCA+IGthaXNob3VcIDsKK+esrOS4gCA+IGRhaWljaGlcIDsKK+a4heaWsCA+IHNlaXNoaW5cIDsKK+aBreismSA+IGt5b3VrZW5cIDsKK+mHjumBkyA+IG5vbWljaGlcIDsKK+WUkOatjCA+IGthcmF1dGFcIDsKK+WQjOiqvyA+IGRvdWNob3VcIDsKK+WPsui3oSA+IHNoaXNla2lcIDsKK+m3uemavCA+IHlvdXNodW5cIDsKK+ertuWQiCA+IGt5b3Vnb3VcIDsKK+WQjeiosyA+IG1laXlha3VcIDsKK+WPjumHkSA+IHNodXVraW5cIDsKK+WQiOiqvyA+IGdvdWNob3VcIDsKK+WPo+i8qiA+IGt1Y2hpd2FcIDsKK+a3s+actCA+IGp1bmJva3VcIDsKK+m7hOe3kSA+IG91cnlva3VcIDsKK+W/oOmtgiA+IGNodXVrb25cIDsKK+WQhOirliA+IGtha3Vyb25cIDsKK+a2uOa4hyA+IGtva2F0c3VcIDsKK+WQiOiplSA+IGdhcHB5b3VcIDsKK+WPmei/sCA+IGpvanV0c3VcIDsKK+a3seabtCA+IHNoaW5rb3VcIDsKK+a0l+iEsyA+IHNlbicnbm91XCA7CivmiLjliKUgPiBrb2JldHN1XCA7CivnpZ7okawgPiBzaGluc291XCA7Civnq4vloLQgPiB0YWNoaWJhXCA7CivllJDmp5ggPiBrYXJheW91XCA7CivpurvnuIQgPiBhc2FuYXdhXCA7CivptrrptJIgPiBzZWtpcmVpXCA7Civmgqroh60gPiBha3VzaHV1XCA7CivnqY3mnKggPiB0c3VtaWtpXCA7Civlj6Tot6EgPiBmdXJ1YXRvXCA7CivmupbliYcgPiBqdW5zb2t1XCA7CivmiKblj4sgPiBzZW4nJ3l1dVwgOwor5rW055SoID4geW9rdXlvdVwgOwor5ZCQ6KGAID4gdG9rZXRzdVwgOwor6YiO6JmrID4ga291Y2h1dVwgOwor6JaE6KydID4gaGFrdXNoYVwgOwor6Y6u5Y+wID4gY2hpbmRhaVwgOwor5rKI6YWUID4gY2hpbnN1aVwgOwor5ZWG5omNID4gc2hvdXNhaVwgOwor6buZ56W3ID4gbW9rdXRvdVwgOwor6YeR6LWkID4ga2luJydha2FcIDsKK+aJgOS/oSA+IHNob3NoaW5cIDsKK+WVhuaIpiA+IHNob3VzZW5cIDsKK+eri+WbvSA+IHJpa2tva3VcIDsKK+m7meekvCA+IG1va3VyZWlcIDsKK+m7meekuiA+IG1va3VzaGlcIDsKK+ialealrSA+IHNhbmd5b3VcIDsKK+aIpuWLnSA+IHNlbnNob3VcIDsKK+WPm+i3oSA+IGhhbnNla2lcIDsKK+aAnemHjyA+IHNoaXJ5b3VcIDsKK+aJi+S4rSA+IHNodWNodXVcIDsKK+a2iOeHiCA+IHNob3V0b3VcIDsKK+elnuiLkSA+IHNoaW4nJ2VuXCA7CivmiYvkuIsgPiB0ZXNoaXRhXCA7Civlj47ovIkgPiBzaHV1c2FpXCA7CivmgKXpgb0gPiBreXV1a3lvXCA7Civnp4HnmoQgPiBzaGl0ZWtpXCA7CivmuoDljZMgPiBtYW50YWt1XCA7CivmgKXpgKAgPiBreXV1em91XCA7CivmgKXpgJ0gPiBreXV1c2VpXCA7CivmuKblt7sgPiB1enVtYWtpXCA7CivmtbfnjKsgPiB1bWluZWtvXCA7CivmhJrniakgPiBndWJ1dHN1XCA7Civph43osqwgPiBqdXVzZWtpXCA7CivpvLvmsZcgPiBoYW5hYXNlXCA7Civlj43ouqsgPiBoYW5zaGluXCA7CivmgKXpgIEgPiBreXV1c291XCA7CivmiJLlkYogPiBrYWlrb2t1XCA7CivlloTlpbMgPiB6ZW4nJ255b1wgOwor56We6IiIID4gbWlrb3NoaVwgOwor5oKq57+SID4gYWt1c2h1dVwgOwor5Y+s6KuLID4gc2hvdXNlaVwgOwor6Ymb562GID4gZW5waXRzdVwgOwor5Y+b6LOKID4gaGFuem9rdVwgOwor5oiS5ZCNID4ga2FpbXlvdVwgOwor5Y6z6YW3ID4gZ2Vua29rdVwgOwor56uj5YqfID4gc2h1bmtvdVwgOwor5ZSQ5pydID4gdG91Y2hvdVwgOwor5raI54GvID4gc2hvdXRvdVwgOwor5b+D6a2CID4gc2hpbmtvblwgOwor5Y6E6ZujID4geWFrdW5hblwgOwor5oi/5LitID4gYm91Y2h1dVwgOwor5Y+N6LezID4gaGFuY2hvdVwgOwor5rW354mbID4ga2FpZ3l1dVwgOwor6Ymx55+zID4ga291c2VraVwgOwor6Jas6I6iID4geWFra3lvdVwgOwor6by75q2MID4gaGFuYXV0YVwgOwor5oaR5ougID4gaHlvdWt5b1wgOwor6YmE57SiID4gdGVzc2FrdVwgOwor5b+D6auEID4gc2hpbnp1aVwgOwor5oCl6LuiID4ga3l1dXRlblwgOwor5Y+N6LaKID4gaGFuZXRzdVwgOwor5ZC56IG0ID4gZnVpY2hvdVwgOwor5rmv5Y+jID4geXVndWNoaVwgOwor5oim5YK3ID4gc2Vuc2hvdVwgOwor5Y+k6KqsID4ga29zZXRzdVwgOwor5rC06aO0ID4gbWl6dWFtZVwgOwor5ZCN6JasID4gbWVpeWFrdVwgOwor56i/5paZID4ga291cnlvdVwgOwor5Y2z6aGMID4gc29rdWRhaVwgOwor5b+g6ZyKID4gY2h1dXJlaVwgOwor5Y+j6KqsID4ga3V6ZXRzdVwgOwor5Y+j6KqmID4ga291c2hvdVwgOwor6Jas6I2JID4geWFrdXNvdVwgOwor56iu5p2/ID4gdGFuZWl0YVwgOwor6Jmr5rCXID4gbXVzaGlrZVwgOwor56m65bitID4ga3V1c2VraVwgOwor5ris5a6aID4gc29rdXRlaVwgOwor5rWB56CCID4gcnl1dXNoYVwgOwor5rm+5YaFID4gd2FuJyduYWlcIDsKK+aEleeEtiA+IGdha3V6ZW5cIDsKK+eoruacrCA+IHRhbmVob25cIDsKK+elnuiBliA+IHNoaW5zZWlcIDsKK+WPjuizhCA+IHNodXV3YWlcIDsKK+WPjeiziiA+IGhhbnpva3VcIDsKK+aEn+a/gCA+IGthbmdla2lcIDsKK+m2tOmmliA+IGtha3VzaHVcIDsKK+iZq+atryA+IG11c2hpYmFcIDsKK+WQhOiXqSA+IGtha3VoYW5cIDsKK+a0quepjSA+IGtvdXNla2lcIDsKK+ertuS6iSA+IGt5b3Vzb3VcIDsKK+WPo+inkiA+IGtvdWtha3VcIDsKK+eqruWcsCA+IGt5dXVjaGlcIDsKK+WVhuW6lyA+IHNob3V0ZW5cIDsKK+awt+mdoiA+IGh5b3VtZW5cIDsKK+mHjeiosyA+IGp1dXlha3VcIDsKK+mIjeiJsiA+IG5pYmlpcm9cIDsKK+WNg+mzpSA+IGNoaWRvcmlcIDsKK+WPmeiqrCA+IGpvc2V0c3VcIDsKK+W/l+mbhiA+IHNoaXNodXVcIDsKK+eqquWcsCA+IGt1Ym9jaGlcIDsKK+aGlOaCtCA+IHNob3VzdWlcIDsKK+a3seaFriA+IHNoaW5yeW9cIDsKK+emj+eliSA+IGZ1a3VzaGlcIDsKK+emjuelpSA+IHRlaXNob3VcIDsKK+awl+mqqCA+IGtpa290c3VcIDsKK+eoruaXjyA+IHNodXpva3VcIDsKK+mHjOimqiA+IHNhdG9veWFcIDsKK+WVhuW3pSA+IHNob3Vrb3VcIDsKK+a4m+WwkSA+IGdlbnNob3VcIDsKK+m7kueXoyA+IGt1cm9hemFcIDsKK+mGi+mFuCA+IHNha3VzYW5cIDsKK+m6puesmyA+IG11Z2lidWVcIDsKK+WQm+iHoyA+IGt1bnNoaW5cIDsKK+a0nueptCA+IGhvcmFhbmFcIDsKK+aHuOWQiiA+IGtlbmNob3VcIDsKK+mKg+eMnyA+IGp1dXJ5b3VcIDsKK+W/g+mhmCA+IHNoaW5nYW5cIDsKK+a3q+aFviA+IGluJyd5b2t1XCA7CivmtbjmvaQgPiBzaGluanVuXCA7CivmuoDkvZwgPiBtYW5zYWt1XCA7Civlj6TooYAgPiBmdXJ1Y2hpXCA7CivmhoLmiJogPiB5dXVzZWtpXCA7CivlkKvnvp4gPiBnYW5zaHV1XCA7CivnqbrlsIYgPiBrdXVzaG91XCA7Civlv4PpoK0gPiBzaGludG91XCA7CivllJDmj5ogPiBrYXJhYWdlXCA7CivmiKbkuK0gPiBzZW5jaHV1XCA7CivmsLTpmbggPiBzdWlyaWt1XCA7CivljaDpoJggPiBzZW5yeW91XCA7CivmtbjmvKwgPiBzaGluc2hpXCA7Civlv4Ppn7MgPiBzaGluJydvblwgOwor5ZGo55+lID4gc2h1dWNoaVwgOwor5ZWT5a2mID4ga2VpZ2FrdVwgOwor6Jar6IKyID4ga3VuJydpa3VcIDsKK+aEgeeEtiA+IHNodXV6ZW5cIDsKK+m7hOeZvSA+IGtvdWhha3VcIDsKK+WPjeiovCA+IGhhbnNob3VcIDsKK+a1geeUqCA+IHJ5dXV5b3VcIDsKK+a6gOS6hiA+IG1hbnJ5b3VcIDsKK+a1geeUoyA+IHJ5dXV6YW5cIDsKK+epjeaCqiA+IHNla2lha3VcIDsKK+mJm+ebtCA+IGVuY2hva3VcIDsKK+aCquetliA+IGFrdXNha3VcIDsKK+m6pueniyA+IG11Z2lha2lcIDsKK+mHkeiejSA+IGtpbicneXV1XCA7Civlv4XpnIAgPiBoaXRzdWp1XCA7CivmhoLmhIEgPiB5dXVzaHV1XCA7CivnpZ7ntYwgPiBzaGlua2VpXCA7Civlv4PpnIogPiBzaGlucmVpXCA7CivmhJ/ms6MgPiBrYW5reXV1XCA7Civlj47opqcgPiBzaHV1cmFuXCA7CivlkIzoiJ8gPiBkb3VzaHV1XCA7Civmg4fnnaYgPiB0b25ib2t1XCA7Civmtbfmt7EgPiBrYWlzaGluXCA7Civom67looMgPiBiYW5reW91XCA7Civlj43opoYgPiBoYW5wdWt1XCA7Civnpo/nm7ggPiBmdWt1c291XCA7CivnqoHlpoIgPiB0b3RzdWpvXCA7CivmtrLmmbYgPiBla2lzaG91XCA7CivlkIzohbkgPiBkb3VmdWt1XCA7CivmtbfmtYEgPiBrYWlyeXV1XCA7CivlkIToiKwgPiBrYWt1aGFuXCA7CivmuKzlnLAgPiBzb2t1Y2hpXCA7CivmhoLlv4MgPiB5dXVzaGluXCA7CivnqY3lvIogPiBzZWtpaGVpXCA7CivomZrmpa0gPiBreW9neW91XCA7Civmsrnoj5wgPiBhYnVyYW5hXCA7CivljYrpoY0gPiBoYW5nYWt1XCA7CivmsbrorbAgPiBrZXRzdWdpXCA7CivpiYTnn7MgPiB0ZXNzZWtpXCA7Civlv6vpgakgPiBrYWl0ZWtpXCA7CivnqY3lubQgPiBzZWtpbmVuXCA7CivmtbjmsLQgPiBzaGluc3VpXCA7CivphbfpgYcgPiBrb2t1Z3V1XCA7Civnp5jmsbogPiBoaWtldHN1XCA7Civlv6vpgJ8gPiBrYWlzb2t1XCA7Civpu5nnhLYgPiBtb2t1bmVuXCA7CivpharphbggPiByYWt1c2FuXCA7CivnpZ7nq6UgPiBzaGluZG91XCA7Civph4nolqwgPiB5dXV5YWt1XCA7CivllLHlsI4gPiBzaG91ZG91XCA7CivlkYrnn6UgPiBrb2t1Y2hpXCA7CivmgKXooYwgPiBreXV1a291XCA7CivllYblpKcgPiBzaG91ZGFpXCA7Civmt7HlsaQgPiBzaGluc291XCA7CivllYblo7IgPiBzaG91YmFpXCA7CivmgYvojYkgPiBrb2lndXNhXCA7CivmhbblvJQgPiBrZWljaG91XCA7CivphaLphbggPiBzYWt1c2FuXCA7CivmsYLpgZMgPiBreXV1ZG91XCA7Civmtabms6IgPiB1cmFuYW1pXCA7CivolqznsaAgPiB5YWt1cm91XCA7CivmuInlpJYgPiBzaG91Z2FpXCA7Civpu5LngrkgPiBrb2t1dGVuXCA7Civpu5Lngq0gPiBrb2t1dGFuXCA7CivmsLTph48gPiBzdWlyeW91XCA7CivnqbrlnKcgPiBrdXVhdHN1XCA7Civnp4vmsLQgPiBzaHV1c3VpXCA7Civlj7PohZUgPiBtaWdpdWRlXCA7Civlj6PojLYgPiBrdWNoaWphXCA7Civlk4HmoLwgPiBoaW5rYWt1XCA7CivlvpLpo58gPiB0b3Nob2t1XCA7CivpharovrIgPiByYWt1bm91XCA7CivoloTogokgPiB1c3VuaWt1XCA7Civlj6zoh7QgPiBzaG91Y2hpXCA7CivljJfprq4gPiBob2t1c2VuXCA7Civpu7Tmr5IgPiBiYWlkb2t1XCA7Civpu4Tnhp8gPiBrb3VqdWt1XCA7CivlkarniakgPiBqdWJ1dHN1XCA7Civlv6votrMgPiBrYWlzb2t1XCA7Civlj47olLUgPiBzaHV1em91XCA7Civlj6ToibIgPiBrb3Nob2t1XCA7CivmtbTmp70gPiB5b2t1c291XCA7CivmtrzmhJ8gPiByeW91a2FuXCA7Civph5HoibIgPiBrb25qaWtpXCA7CivphZLph48gPiBzaHVyeW91XCA7CivmhaLlv4MgPiBtYW5zaGluXCA7CivlkIzntJogPiBkb3VreXV1XCA7Civljp/oqLsgPiBnZW5jaHV1XCA7CivmhIHmrY4gPiBzaHV1dGFuXCA7Civlj6Poh60gPiBrb3VzaHV1XCA7CivlmofjgIUgPiBrYWtrYWt1XCA7Civmgqrnl4cgPiBha3VzaG91XCA7Civmgqrnl4UgPiBha3VieW91XCA7CivljJbpqqggPiBrYWtvdHN1XCA7Civph4zoiosgPiBzYXRvaW1vXCA7CivphpzooYwgPiBzaHV1a291XCA7Civlk6jmiJIgPiBzaG91a2FpXCA7Civlj43okL0gPiBoYW5yYWt1XCA7CivljYrpkJggPiBoYW5zaG91XCA7CivolqznqK4gPiB5YWt1c2h1XCA7Civlj6PohbkgPiBrb3VmdWt1XCA7Civlv4PphZQgPiBzaGluc3VpXCA7Civlv4PphY0gPiBzaGlucGFpXCA7CivnpoHnjYQgPiBraW5nb2t1XCA7CivmsLfovKogPiBoeW91cmluXCA7CivmhJ/mnI0gPiBrYW5wdWt1XCA7Civmr5LprZogPiBkb2t1Z3lvXCA7CivnpoHnjJ8gPiBraW5yeW91XCA7Civph43oh6MgPiBqdXVzaGluXCA7CivlloTkurogPiB6ZW4nJ25pblwgOwor5ZC455ukID4ga3l1dWJhblwgOwor6Juu5YuHID4gYmFuJyd5dXVcIDsKK+a3seWlpSA+IHNoaW4nJ291XCA7CivlkITntJkgPiBrYWt1c2hpXCA7Civnp4HmrLIgPiBzaGl5b2t1XCA7Civpub/noKYgPiByb2t1c2FpXCA7CivnpYnnpo8gPiBzaGlmdWt1XCA7Civlj5voh6MgPiBoYW5zaGluXCA7CivnpL7nq6AgPiBzaGFzaG91XCA7Civnqq7kuY8gPiBreXV1Ym91XCA7Civmtbjmn5MgPiBzaGluc2VuXCA7Civpi7Plt6UgPiBjaHV1a291XCA7Civmt7HlpJwgPiBzaGluJyd5YVwgOwor56K66KqNID4ga2FrdW5pblwgOwor5rib5Y+OID4gZ2Vuc2h1dVwgOwor6Jas56S8ID4geWFrdXJlaVwgOwor6Yyo5ZywID4gYnlvdWNoaVwgOwor6JaE57iBID4gdXN1YmVyaVwgOwor5rK757i+ID4gY2hpc2VraVwgOwor5raI5pWjID4gc2hvdXNhblwgOwor56Wo55SwID4gaHlvdWRlblwgOwor56K66KiAID4ga2FrdWdlblwgOwor6JaE57W5ID4gdXN1Z2ludVwgOwor5b+r6Ku+ID4ga2FpZGFrdVwgOwor5YyX6aKoID4gaG9rdWZ1dVwgOwor6JaE57WmID4gaGFra3l1dVwgOwor6YeN6IG0ID4ganV1Y2hvdVwgOwor5ZWG5ZOBID4gc2hvdWhpblwgOwor5b+r6Kq/ID4ga2FpY2hvdVwgOwor6YqY5p+EID4gbWVpZ2FyYVwgOwor5oKq546JID4gYWt1ZGFtYVwgOwor56eY5puyID4gaGlreW9rdVwgOwor6JaE57SZID4gdXN1Z2FtaVwgOwor6JaE57SFID4gdXN1YmVuaVwgOwor56ew5o+aID4gc2hvdXlvdVwgOwor6JOa6YW4ID4gc2h1dXNhblwgOwor5riL5ZGzID4gc2hpYnVtaVwgOwor5Y2X6YCyID4gbmFuc2hpblwgOwor6buZ5q2iID4gbW9rdXNoaVwgOwor6YqY5pyoID4gbWVpYm9rdVwgOwor6Ymx5q+SID4ga291ZG9rdVwgOwor5ZCN56ewID4gbWVpc2hvdVwgOwor5ZWG5Y+3ID4gc2hvdWdvdVwgOwor5oCo6ImyID4gZW5zaG9rdVwgOwor5rWB5rGXID4gcnl1dWthblwgOwor5YyX6Z2iID4gaG9rdW1lblwgOwor5oKJ55qGID4gc2hpa2thaVwgOwor5rWB5rC0ID4gcnl1dXN1aVwgOwor56qB5YWIID4gdG9zc2FraVwgOwor5rS75rOBID4ga2Fra3lvdVwgOwor6YeI576pID4gc2hha3VnaVwgOwor5b6p6YWNID4gZnVrdWhhaVwgOwor5b+g6KqgID4gY2h1dXNlaVwgOwor5Y6f6JmrID4gZ2VuY2h1dVwgOwor5ZCE56iuID4ga2FrdXNodVwgOwor5Y+y57GNID4gc2hpc2VraVwgOwor5ZCJ56WlID4ga2lzc2hvdVwgOwor56Gr6YW4ID4gcnl1dXNhblwgOwor5oeQ5LitID4ga2FpY2h1dVwgOwor5Y2Y6LqrID4gdGFuc2hpblwgOwor5byx6b2iID4gamFrdXJlaVwgOwor6YSt6YeNID4gdGVpY2hvdVwgOwor5b+g6KiAID4gY2h1dWdlblwgOwor5rOh55ubID4gYXdhbW9yaVwgOwor5YyX6ZmQID4gaG9rdWdlblwgOwor5Y2H6YG3ID4gc2hvdXNlblwgOwor56eL5pm0ID4gYWtpYmFyZVwgOwor56m05Ye5ID4gYW5hYm9rb1wgOwor6YeR57ayID4ga2FuYWFtaVwgOwor5Y+356ybID4gZ291dGVraVwgOwor6JuH5Y+jID4gamFndWNoaVwgOwor6buS5qqAID4ga29rdXRhblwgOwor5reR5aWzID4gc2h1a3Vqb1wgOwor5oaC5Zu9ID4geXV1a29rdVwgOwor5rSX5r+vID4gc2VudGFrdVwgOwor5ZCE56S+ID4ga2FrdXNoYVwgOwor5Y+M57+8ID4gc291eW9rdVwgOwor5Y2K6L6yID4gaGFuJydub3VcIDsKK+emgea8gSA+IGtpbnJ5b3VcIDsKK+WPo+e0hCA+IGtvdXlha3VcIDsKK+a4heWLnSA+IHNlaXNob3VcIDsKK+mIjeeXmyA+IGRvbnRzdXVcIDsKK+engeacjSA+IHNoaWZ1a3VcIDsKK+WPo+ezpyA+IGtvdXJ5b3VcIDsKK+mHkee0jSA+IGtpbicnbm91XCA7CivljJfploAgPiBraXRhbW9uXCA7CivlkLjniakgPiBzdWltb25vXCA7CivljproloQgPiBrb3VoYWt1XCA7CivpibHmpa0gPiBrb3VneW91XCA7CivljYHpgLIgPiBqaXNzaGluXCA7CivolqznlKggPiB5YWt1eW91XCA7CivmsLjoqKMgPiBlaWtldHN1XCA7CivnqY3lloQgPiBzZWtpemVuXCA7CivpioDmnY8gPiBnaW4nJ25hblwgOwor5rih5LuPID4gdG9mdXRzdVwgOwor56Gd6YW4ID4gc2hvdXNhblwgOwor56OK6JC9ID4gcmFpcmFrdVwgOwor6Jma5b+DID4ga3lvc2hpblwgOwor5rib5L2cID4gZ2Vuc2FrdVwgOwor5Y2K6LqrID4gaGFuc2hpblwgOwor5oOF5rOBID4gam91a3lvdVwgOwor5rSX5ruMID4gc2VuZGVraVwgOwor5rC36KejID4gaHlvdWthaVwgOwor5ZCN55uuID4gbWVpbW9rdVwgOwor5Y+l56+AID4ga3VzZXRzdVwgOwor5ZCM55yBID4gZG91c2hvdVwgOwor5rSl5rOiID4gdHN1bmFtaVwgOwor5Y+O57mtID4gc2h1dWtlblwgOwor5rOV55qEID4gaG91dGVraVwgOwor5rOJ55+zID4gc2Vuc2VraVwgOwor5rKW57iEID4gb2tpbmF3YVwgOwor5rCR6LiKID4gbWluJyd5b3VcIDsKK+iZmuW8sSA+IGt5b2pha3VcIDsKK+WNlOizmyA+IGt5b3VzYW5cIDsKK+WNs+ijvSA+IHNva3VzZWlcIDsKK+mHkeeulCA+IGtpbnBha3VcIDsKK+WPpOethiA+IGtvaGl0c3VcIDsKK+W+jOmHnCA+IGF0b2dhbWFcIDsKK+a3seWOmiA+IHNoaW5rb3VcIDsKK+W+oei8vyA+IG1pa29zaGlcIDsKK+mHjeevpCA+IGp1dXRva3VcIDsKK+a3u+WJiiA+IHRlbnNha3VcIDsKK+mHkeetliA+IGtpbnNha3VcIDsKK+mJseafsSA+IGtvdWNodXVcIDsKK+mHkeetiyA+IGtpbnN1amlcIDsKK+W+l+mBkyA+IHRva3Vkb3VcIDsKK+ekpuefsyA+IGtvdXNla2lcIDsKK+mDt+mWoiA+IGt5b3VrYW5cIDsKK+mHjeeusSA+IGp1dWJha29cIDsKK+WQhOecjCA+IGtha3VrZW5cIDsKK+WOqeiIjiA+IGt5dXVzaGFcIDsKK+WPr+elnSA+IGthc2hpa3VcIDsKK+WQjOeXhSA+IGRvdWJ5b3VcIDsKK+aDheassiA+IGpvdXlva3VcIDsKK+WPjue0jSA+IHNodXVub3VcIDsKK+epuuS4rSA+IGt1dWNodXVcIDsKK+m7kuadvyA+IGtva3ViYW5cIDsKK+elnueBryA+IHNoaW50b3VcIDsKK+iXgeeBsCA+IHdhcmFiYWlcIDsKK+WQjOeUuiA+IGRvdWNob3VcIDsKK+iZq+WusyA+IGNodXVnYWlcIDsKK+aEn+W/nCA+IGthbicnbm91XCA7CivllYbkvJogPiBzaG91a2FpXCA7CivmhJ/lv4MgPiBrYW5zaGluXCA7CivljZjoqr8gPiB0YW5jaG91XCA7CivpioPmkoMgPiBqdXVnZWtpXCA7Civpu4TmoqIgPiBrb3VzaG91XCA7CivmhJ/lvpcgPiBrYW50b2t1XCA7Civmg4fmqLggPiB0b25ib2t1XCA7Civnn7Ppr5sgPiBpc2hpZGFpXCA7CivphpzogZ4gPiBzaHV1YnVuXCA7CivllYbkurogPiBzaG91bmluXCA7CivlvozpgLggPiBrb3VpdHN1XCA7CivlvozpgLIgPiBrb3VzaGluXCA7Civph43nqY0gPiBqdXVzZWtpXCA7Civlj7Dnn7MgPiBkYWlpc2hpXCA7CivljZPoq5YgPiB0YWt1cm9uXCA7Civmrr/plqMgPiBkZW5rYWt1XCA7CivoloTnmq4gPiB1c3VrYXdhXCA7Civljproh7wgPiBhdHN1dXN1XCA7CivljZropqcgPiBoYWt1cmFuXCA7CivljZjop5IgPiB0YW5rYWt1XCA7CivomY7lt7sgPiB0b3Jha2FuXCA7CivlvZPpmZAgPiB0b3VnaXJpXCA7CivnqY3liIYgPiBzZWtpYnVuXCA7CivmgoTnhLYgPiBzaG91emVuXCA7CivmsJHorKEgPiBtaW4nJ3lvdVwgOwor6Yyv5LmxID4gc2FrdXJhblwgOwor6buS5paRID4ga29rdWhhblwgOwor5rWB5pifID4gcnl1dXNlaVwgOwor5rK755mCID4gY2hpcnlvdVwgOwor5Y+y55qEID4gc2hpdGVraVwgOwor5re35L+hID4ga29uc2hpblwgOwor6YOh6ZW3ID4gZ3VuY2hvdVwgOwor5Y2Y6KSHID4gdGFucHVrdVwgOwor5q6L6auYID4gemFuZGFrYVwgOwor5oCd57SiID4gc2hpc2FrdVwgOwor5Y+K56ysID4ga3l1dWRhaVwgOwor56eA5omNID4gc2h1dXNhaVwgOwor6YmE5qmLID4gdGVra3lvdVwgOwor5by36aKoID4ga3lvdWZ1dVwgOwor6Jaq54KtID4gc2hpbnRhblwgOwor5re35L2cID4ga29uc2FrdVwgOwor6YeR55+zID4ga2luc2VraVwgOwor6YmE5qeMID4gdGV0dHN1aVwgOwor5Y+O56iOID4gc2h1dXplaVwgOwor5oOc5pWXID4gc2VraWhhaVwgOwor56iy5Y+iID4gaW5hbXVyYVwgOwor56eB5oW+ID4gc2hpeW9rdVwgOwor56Gs6Kq/ID4ga291Y2hvdVwgOwor5Y2K6KeSID4gaGFua2FrdVwgOwor5b2r6YeRID4gY2hvdWtpblwgOwor5q+S6YWSID4gZG9rdXNodVwgOwor5rWu5b2rID4gdWtpYm9yaVwgOwor56eL5oCdID4gc2h1dXNoaVwgOwor5b6M6LazID4gYXRvYXNoaVwgOwor5YyX6L66ID4gaG9rdWhlblwgOwor5ZSv5LuKID4gdGFkYWltYVwgOwor6Yej55O2ID4gdHN1cnViZVwgOwor5oWf5ZOtID4gZG91a29rdVwgOwor5oOR5pifID4gd2FrdXNlaVwgOwor5Y2K6KWfID4gaGFuJydlcmlcIDsKK+aDh+actCA+IHRvbmJva3VcIDsKK+atu+mthCA+IHNoaWhha3VcIDsKK+W8t+mdrSA+IGt5b3VqaW5cIDsKK+WQuOawtCA+IGt5dXVzdWlcIDsKK+eiuuiBniA+IGtha3VidW5cIDsKK+aBi+eXhSA+IGtvaXlhbWlcIDsKK+mHkeeahCA+IGtpbnRla2lcIDsKK+a3seS6pCA+IHNoaW5rb3VcIDsKK+WRqOaYkyA+IHNodXVla2lcIDsKK+efr+miqCA+IGt5b3VmdXVcIDsKK+aFtuWFhiA+IGtlaWNob3VcIDsKK+WNiuiiliA+IGhhbnNvZGVcIDsKK+WQuOauuyA+IHN1aWdhcmFcIDsKK+mDt+mCkSA+IGt5b3V5dXVcIDsKK+iZq+WegiA+IGNodXVzdWlcIDsKK+WRqOaXiyA+IHNodXVzZW5cIDsKK+ato+m1oCA+IHNlaWtva3VcIDsKK+awkeihhiA+IG1pbnNodXVcIDsKK+a1t+WzoSA+IGthaWt5b3VcIDsKK+mJhOaftSA+IHRlc3Nha3VcIDsKK+mJhOafsSA+IHRldGNodXVcIDsKK+avjumAsSA+IG1haXNodXVcIDsKK+engeW/gyA+IHNoaXNoaW5cIDsKK+elnuauvyA+IHNoaW5kZW5cIDsKK+aui+mhjSA+IHphbmdha3VcIDsKK+aBr+eBvSA+IHNva3VzYWlcIDsKK+W8sembuyA+IGpha3VkZW5cIDsKK+iUteexsyA+IGt1cmFtYWlcIDsKK+a1t+WxsSA+IHVtaXlhbWFcIDsKK+aui+mfvyA+IHphbmt5b3VcIDsKK+a0i+alvSA+IHlvdWdha3VcIDsKK+epgOWAiSA+IGtva3Vzb3VcIDsKK+mHjeeXhyA+IGp1dXNob3VcIDsKK+mHjeeXhSA+IGp1dWJ5b3VcIDsKK+iWrOa2siA+IHlha3Vla2lcIDsKK+a1t+WwhiA+IGthaXNob3VcIDsKK+iWhOeJqSA+IHVzdW1vbm9cIDsKK+WOn+e0miA+IGdlbmt5dXVcIDsKK+mHjeeVsyA+IGNob3Vqb3VcIDsKK+iWhOeJhyA+IGhha3VoZW5cIDsKK+m7meaDsyA+IG1va3Vzb3VcIDsKK+mHj+eUoyA+IHJ5b3VzYW5cIDsKK+azpea1tyA+IGRvcm91bWlcIDsKK+m8u+WUhCA+IGhhbmF1dGFcIDsKK+WQpuaxuiA+IGhpa2V0c3VcIDsKK+W+oeiiiyA+IG9mdWt1cm9cIDsKK+aAquefsyA+IGthaXNla2lcIDsKK+awtOiKuCA+IG1penVnZWlcIDsKK+mHjeeUqCA+IGNob3V5b3VcIDsKK+iQvemmliA+IHJha3VzaHVcIDsKK+WNs+iIiCA+IHNva2t5b3VcIDsKK+enmOWvhiA+IGhpbWl0c3VcIDsKK+WSq+WwuiA+IHNoaXNla2lcIDsKK+W9k+mHjyA+IHRvdXJ5b3VcIDsKK+WPjueboyA+IHNodXVrYW5cIDsKK+WNteiGnCA+IHJhbm1ha3VcIDsKK+WPjeebriA+IGhhbm1va3VcIDsKK+awtOiJsiA+IG1penVpcm9cIDsKK+egsui6qyA+IGhvdXNoaW5cIDsKK+WPjuebiiA+IHNodXVla2lcIDsKK+elnuaoqSA+IHNoaW5rZW5cIDsKK+WOn+exjSA+IGdlbnNla2lcIDsKK+aCsuabsiA+IGhpa3lva3VcIDsKK+iVg+elniA+IGJhbnNoaW5cIDsKK+mHneeKtiA+IGhhcmlqb3VcIDsKK+auiemboyA+IGp1bicnbmFuXCA7Civlvovoqp4gPiByaXRzdWdvXCA7CivpioPluoogPiBqdXVzaG91XCA7Civpu5nmgJ0gPiBtb2t1c2hpXCA7Civms6jmsLQgPiBjaHV1c3VpXCA7Civlj6znirYgPiBzaG91am91XCA7Civpu5nlv7UgPiBtb2t1bmVuXCA7CivmgYvnjKsgPiBrb2luZWtvXCA7CivpganpvaIgPiB0ZWtpcmVpXCA7CivmrabpqqggPiBidWtvdHN1XCA7CivlkozlvI8gPiB3YXNoaWtpXCA7CivomZzlm5ogPiByeW9zaHV1XCA7CivmtYHmhJ8gPiByeXV1a2FuXCA7CivpiprlrZAgPiBjaG91c2hpXCA7CivnpoHmlZkgPiBraW5reW91XCA7CivljZjokYkgPiB0YW4nJ3lvdVwgOwor6buZ5b6TID4gbW9rdWp1dVwgOwor6YeR546JID4ga2ludGFtYVwgOwor6YqA5bmVID4gZ2lubWFrdVwgOwor6Jaq5rC0ID4gc2hpbnN1aVwgOwor55+i6Z2iID4geWFvbW90ZVwgOwor56iO5Y+OID4gemVpc2h1dVwgOwor56iy5L2cID4gaW5hc2FrdVwgOwor5rSL5pyNID4geW91ZnVrdVwgOwor56Wt5pyNID4gc2FpZnVrdVwgOwor5oCn55qEID4gc2VpdGVraVwgOwor5Y+O55SoID4gc2h1dXlvdVwgOwor5Y2w6IKJID4gaW4nJ25pa3VcIDsKK+aAp+eZliA+IHNlaWhla2lcIDsKK+mFkuiIiCA+IHNodWt5b3VcIDsKK+W8gemngSA+IGJlbnBha3VcIDsKK+iYreWtpiA+IHJhbmdha3VcIDsKK+WQjea1gSA+IG1laXJ5dXVcIDsKK+aBteayoiA+IGtlaXRha3VcIDsKK+W9oui3oSA+IGtlaXNla2lcIDsKK+WQjOa1gSA+IGRvdXJ5dXVcIDsKK+mHjeeKryA+IGNob3VoYW5cIDsKK+eggumJhCA+IHNhdGV0c3VcIDsKK+aAp+eXhSA+IHNlaWJ5b3VcIDsKK+WRiuaWhyA+IGtva3VidW5cIDsKK+W/g+iHkyA+IHNoaW56b3VcIDsKK+W8lOmbuyA+IGNob3VkZW5cIDsKK+iQvembtyA+IHJha3VyYWlcIDsKK+WPjOeSpyA+IHNvdWhla2lcIDsKK+aCquaWuSA+IGFrdWdhdGFcIDsKK+mJseW6iiA+IGtvdXNob3VcIDsKK+WQiOa1gSA+IGdvdXJ5dXVcIDsKK+iQvembgSA+IHJha3VnYW5cIDsKK+a1geW8viA+IHJ5dXVkYW5cIDsKK+ekvuattCA+IHNoYXJla2lcIDsKK+engeWuhSA+IHNoaXRha3VcIDsKK+iQvemZvSA+IHJha3V5b3VcIDsKK+mHjeeIhiA+IGp1dWJha3VcIDsKK+eiuuetlCA+IGtha3V0b3VcIDsKK+mzqemmliA+IGt5dXVzaHVcIDsKK+engeWtpiA+IHNoaWdha3VcIDsKK+WPgueUuyA+IHNhbmtha3VcIDsKK+WLp+i+siA+IGthbicnbm91XCA7Civljp/npaggPiBnZW5weW91XCA7CivmraPpoqggPiBzaG91ZnV1XCA7CivmgKXnlKggPiBreXV1eW91XCA7Civpu5LluK8gPiBrdXJvb2JpXCA7Civli5Xph48gPiBkb3VyeW91XCA7Civlk6jlhbUgPiBzaG91aGVpXCA7CivpioDlsIYgPiBnaW5zaG91XCA7Civlj5nniLUgPiBqb3NoYWt1XCA7Civlv4Pog4YgPiBzaGludGFuXCA7Civmg4Xmhb4gPiBqb3V5b2t1XCA7CivljJfopb8gPiBob2t1c2VpXCA7CivmtbTloLQgPiB5b2t1am91XCA7CivlvaLosaEgPiBrZWlzaG91XCA7CivmsJfoibIgPiBraXNob2t1XCA7Civlv4Pogp0gPiBzaGlua2FuXCA7Civlv6DntJQgPiBjaHV1anVuXCA7Civno5Dnn7MgPiBiYW5qYWt1XCA7CivnpajmlbAgPiBoeW91c3V1XCA7Civlj6PngasgPiBrdWNoaWJpXCA7Civlj5TniLYgPiBzaHVrdWZ1XCA7Civlj43ni6wgPiBoYW5kb2t1XCA7Civnp4HlqLwgPiBzaGlzaG91XCA7Civms6Xmo5IgPiBkb3JvYm91XCA7Civnp4vlo7AgPiBzaHV1c2VpXCA7CivnpZ7mmI4gPiBzaGlubWVpXCA7CivmsYHnsokgPiBzaGlydWtvXCA7CivlvLHphbggPiBqYWt1c2FuXCA7Civmtbflm70gPiBrYWlrb2t1XCA7CivolLXnm7ggPiB6b3VzaG91XCA7CivljYPojYkgPiBjaGlndXNhXCA7Civli5jpgLIgPiBrYW5zaGluXCA7CivljZrogZ4gPiBoYWt1YnVuXCA7CivlkKvmnIkgPiBnYW4nJ3l1dVwgOwor5Y+N54mpID4gdGFubW9ub1wgOwor5Y6f55+zID4gZ2Vuc2VraVwgOwor5Y2c6ICFID4gYm9rdXNoYVwgOwor6bOl6aGeID4gY2hvdXJ1aVwgOwor56ew5Y+3ID4gc2hvdWdvdVwgOwor5byB6ZujID4gYmVuJyduYW5cIDsKK+WNs+e0jSA+IHNva3Vub3VcIDsKK+ekvualrSA+IHNoYWd5b3VcIDsKK+awl+iEiCA+IGtpbXlha3VcIDsKK+WPt+azoyA+IGdvdWt5dXVcIDsKK+ekvOalvSA+IHJlaWdha3VcIDsKK+elnuaUvyA+IHNoaW5zZWlcIDsKK+efremHnSA+IHRhbnNoaW5cIDsKK+avjeimqiA+IGhhaGFveWFcIDsKK+mFt+eojiA+IGtva3V6ZWlcIDsKK+enu+WHuiA+IGlzaHV0c3VcIDsKK+W+s+iCsiA+IHRva3Vpa3VcIDsKK+ejgeefsyA+IGppc2hha3VcIDsKK+aui+mFtyA+IHphbmtva3VcIDsKK+azlealvSA+IGhvdXJha3VcIDsKK+WPjeeFpyA+IGhhbnNob3VcIDsKK+a2iOWOuyA+IHNob3VreW9cIDsKK+mGnOeUtyA+IGJ1b3Rva29cIDsKK+egtOijgiA+IGhhcmV0c3VcIDsKK+awtOeyviA+IHN1aXNob3VcIDsKK+WRqOW5tCA+IHNodXVuZW5cIDsKK+iUkeensCA+IGJlc3Nob3VcIDsKK+a2iOWNsCA+IGtlc2hpaW5cIDsKK+WQjOalrSA+IGRvdWd5b3VcIDsKK+engeWhviA+IHNoaWp1a3VcIDsKK+WLp+izniA+IGthbnNob3VcIDsKK+aCquaIryA+IGl0YXp1cmFcIDsKK+WLlei7uCA+IGRvdWppa3VcIDsKK+a1heWtpiA+IHNlbmdha3VcIDsKK+eip+epuiA+IGhla2lrdXVcIDsKK+WKiOmgrSA+IGhla2l0b3VcIDsKK+WOmuebuCA+IGtvdXNob3VcIDsKK+WKm+mXmCA+IHJpa2l0b3VcIDsKK+efs+mAoCA+IHNla2l6b3VcIDsKK+ayueawlyA+IGFidXJha2VcIDsKK+iYreWbvSA+IHJhbmtva3VcIDsKK+W/g+e3kiA+IHNoaW5jaG9cIDsKK+WPr+axuiA+IGtha2V0c3VcIDsKK+WLh+mAsiA+IHl1dXNoaW5cIDsKK+WNs+etlCA+IHNva3V0b3VcIDsKK+W8sei8qSA+IGpha3VoYWlcIDsKK+mJhOW/gyA+IHRlc3NoaW5cIDsKK+avm+iZqyA+IGtlbXVzaGlcIDsKK+W8lOmKgyA+IGNob3VqdXVcIDsKK+WPgueFpyA+IHNhbnNob3VcIDsKK+aBi+aysyA+IGtvaWthd2FcIDsKK+mFjee1piA+IGhhaWt5dXVcIDsKK+WQjOagvCA+IGRvdWtha3VcIDsKK+azqOaWhyA+IGNodXVtb25cIDsKK+WPseatoyA+IHNoaXNzZWlcIDsKK+iWrOaWuSA+IHlha3Vob3VcIDsKK+a0u+WtlyA+IGthdHN1amlcIDsKK+WOn+eUsSA+IGdlbicneXV1XCA7Civlk4DliKUgPiBhaWJldHN1XCA7CivlvpLoirEgPiBhZGFiYW5hXCA7CivpgLHpvaEgPiBzaHV1cmVpXCA7CivnpLzmnI0gPiByZWlmdWt1XCA7Civpgbjpm4YgPiBzZW5zaHV1XCA7CivmgYvmsLQgPiBrb2ltaXp1XCA7Civlk4DliIcgPiBhaXNldHN1XCA7CivlkIjmoLwgPiBnb3VrYWt1XCA7CivmhIHlmIYgPiBzaHV1dGFuXCA7CivnpKbmpa0gPiBrb3VneW91XCA7Civmtbfljp8gPiB1bmFiYXJhXCA7CivpurvlsZEgPiBhc2FrdXp1XCA7Civlj6TmsaAgPiBmdXJ1aWtlXCA7Civpto/ogokgPiBrZWluaWt1XCA7Civms5XmnI0gPiBob3VmdWt1XCA7Civli5josqwgPiBrYW5zZWtpXCA7CivmhJrliqMgPiBndXJldHN1XCA7CivmtojlhYkgPiBzaG91a291XCA7CivljZjntJogPiB0YW5reXV1XCA7CivlkI3mnKggPiBtZWlib2t1XCA7Civnn63ou7ggPiB0YW5qaWt1XCA7Civli4fouo0gPiB5dXV5YWt1XCA7CivphpznirYgPiBzaHV1am91XCA7CivlkITmoKEgPiBrYWt1a291XCA7Civlj6LmsLcgPiBzb3VoeW91XCA7CivmgYvmrbsgPiBrb2lqaW5pXCA7Civli6foqpggPiBrYW4nJ3l1dVwgOwor5oKq5b6zID4gYWt1dG9rdVwgOwor5rCX57W2ID4ga2l6ZXRzdVwgOwor6buS5aOHID4ga29rdXRhblwgOwor5b+D566XID4gc2hpbnphblwgOwor5rKI5r6xID4gY2hpbmRlblwgOwor5by36LGqID4ga3lvdWdvdVwgOwor5oKq5b25ID4gYWt1eWFrdVwgOwor5YqI6ZaLID4gaGVraWthaVwgOwor5oKq5b2iID4gYWt1Z2F0YVwgOwor5b+D562LID4gc2hpbmtpblwgOwor5Y+k5q2MID4gZnVydXV0YVwgOwor6JC96YG4ID4gcmFrdXNlblwgOwor5rKI5r2cID4gY2hpbnNlblwgOwor56We5oWuID4gc2hpbnJ5b1wgOwor5Ymv6aGMID4gZnVrdWRhaVwgOwor5byP6YOoID4gc2hpa2lidVwgOwor5byT6YGTID4ga3l1dWRvdVwgOwor5q2j6YqYID4gc2hvdW1laVwgOwor5Y2c562uID4gYm9rdXplaVwgOwor5ZGC5b6LID4gcm9yZXRzdVwgOwor6JGJ6LqrID4geW91c2hpblwgOwor5b6Q6ISIID4gam9teWFrdVwgOwor5oSf5YK3ID4ga2Fuc2hvdVwgOwor56Kn55y8ID4gaGVraWdhblwgOwor5b6M6IW5ID4gYXRvYmFyYVwgOwor5rSL5byTID4geW91a3l1dVwgOwor556s6ZaTID4gc2h1bmthblwgOwor55+t6LazID4gdGFuc29rdVwgOwor56S65pWZID4gc2hpa3lvdVwgOwor5Y2/55u4ID4ga2Vpc2hvdVwgOwor5q206YGKID4gcmVraXl1dVwgOwor5rKI5rueID4gY2hpbnRhaVwgOwor5ZCM5pePID4gZG91em9rdVwgOwor5Ymz6Z2SID4gaXJlenVtaVwgOwor5b2s6JSaID4gaGludXRzdVwgOwor56aF5a+6ID4gemVuZGVyYVwgOwor5b6M6ISaID4gYXRvYXNoaVwgOwor5oCd5r2uID4gc2hpY2hvdVwgOwor5rWu5YqbID4gZnVyeW9rdVwgOwor56Oo5ruFID4gbWFtZXRzdVwgOwor5q276Lu4ID4gc2hpamlrdVwgOwor5q2j6YeRID4gc2hvdWtpblwgOwor5rWB5Z+fID4gcnl1dWlraVwgOwor56aF5a6XID4gemVuc2h1dVwgOwor6ba056eRID4gdHN1cnVrYVwgOwor6Jep5a2mID4gaGFuZ2FrdVwgOwor5oGt5pWsID4ga3lvdWtlaVwgOwor5rGO55SoID4gaGFuJyd5b3VcIDsKK+aApea4myA+IGt5dXVnZW5cIDsKK+elnuaApyA+IHNoaW5zZWlcIDsKK+aClOaCmyA+IGthaXNodW5cIDsKK+emheWtpiA+IHplbmdha3VcIDsKK+WPlOavjSA+IHNodWt1Ym9cIDsKK+W8j+i+niA+IHNoaWtpamlcIDsKK+engOWQnyA+IHNodXVnaW5cIDsKK+mBjumjnyA+IGthc2hva3VcIDsKK+WOn+eIhiA+IGdlbmJha3VcIDsKK+mzpemKgyA+IGNob3VqdXVcIDsKK+WJjemrqiA+IG1hZWdhbWlcIDsKK+WSgOWavCA+IHNvc2hha3VcIDsKK+enn+WAnyA+IHNvc2hha3VcIDsKK+auuuiZqyA+IHNhdGNodXVcIDsKK+WLpOihjCA+IGdvbmd5b3VcIDsKK+aCluW+syA+IGhhaXRva3VcIDsKK+avkuiNiSA+IGRva3Vzb3VcIDsKK+WNteeZvSA+IHJhbnBha3VcIDsKK+eni+WIhiA+IHNodXVidW5cIDsKK+WPgua0myA+IHNhbnJha3VcIDsKK+WSrOWCtyA+IGtvdXNob3VcIDsKK+W+i+e+qSA+IHJpY2hpZ2lcIDsKK+eni+WGtyA+IHNodXVyZWlcIDsKK+W8t+imgSA+IGt5b3V5b3VcIDsKK+mHkeajkiA+IGthbmFib3VcIDsKK+iWhOaYjiA+IGhha3VtZWlcIDsKK+W6p+mqqCA+IHpha290c3VcIDsKK+WJo+mboyA+IGtlbicnbmFuXCA7CivlvrTnqI4gPiBjaG91emVpXCA7CivlvqnnrZQgPiBmdWt1dG91XCA7Civli4Xoq60gPiBjaG9rdXl1XCA7CivlirTos4MgPiByb3VjaGluXCA7CivlvLHoppYgPiBqYWt1c2hpXCA7CivlkIjmjowgPiBnYXNzaG91XCA7Civli4Xoqp4gPiBjaG9rdWdvXCA7Civnn63oqr8gPiB0YW5jaG91XCA7Civlj7jmlZkgPiBzaGlreW91XCA7Civmsojmrr8gPiBjaGluZGVuXCA7Civptaznv7wgPiBob3V5b2t1XCA7Civli4XoqLEgPiBjaG9ra3lvXCA7Civnn63oqZUgPiB0YW5weW91XCA7Civnp5jku48gPiBoaWJ1dHN1XCA7CivmgKXmrbsgPiBreXV1c2hpXCA7CivlvLfooYwgPiBreW91a291XCA7CivmgKfmrLIgPiBzZWl5b2t1XCA7CivmtbfkuoAgPiB1bWlnYW1lXCA7Civmr5LohbogPiBkb2t1c2VuXCA7Civlj7LmlpkgPiBzaGlyeW91XCA7CivmsLfnlLAgPiBoeW91ZGVuXCA7Civlv4PnnLwgPiBzaGluZ2FuXCA7CivpgoHpgLIgPiBtYWlzaGluXCA7Civlj6TmnKwgPiBmdXJ1Ym9uXCA7CivnorrnhLYgPiBrYWt1emVuXCA7CivmtIvlraYgPiB5b3VnYWt1XCA7CivlvbnogIUgPiB5YWt1c2hhXCA7Civmg7DlipsgPiBkYXJ5b2t1XCA7Civlj43mp5ggPiBrYWlzYW1hXCA7CivmsJHnpo8gPiBtaW5wdWt1XCA7CivliY3poY0gPiB6ZW5nYWt1XCA7CivmtbfkuK0gPiBrYWljaHV1XCA7CivlvozntpogPiBrb3V6b2t1XCA7Civlj6Tmm7IgPiBrb2t5b2t1XCA7CivpgYXpnJwgPiBvc29qaW1vXCA7Civlkajlm54gPiBzaHV1a2FpXCA7CivmtJvlpJYgPiByYWt1Z2FpXCA7CivljYrnpZ4gPiBoYW5zaGluXCA7CivlvZPokL0gPiB0b3VyYWt1XCA7CivphZLnmZYgPiBzaHVoZWtpXCA7CivpgqroqqwgPiBqYXNldHN1XCA7CivmrKDpmaQgPiBrZXRzdWpvXCA7CivmsI/npZ4gPiB1amlnYW1pXCA7Civph5Hmm5wgPiBraW4nJ3lvdVwgOwor5q616JC9ID4gZGFucmFrdVwgOwor5bqn6aOfID4gemFzaG9rdVwgOwor5ZG75ZCfID4gc2hpbmdpblwgOwor6YmE5aOBID4gdGVwcGVraVwgOwor56eL5L2cID4gYWtpc2FrdVwgOwor5Y2D56eLID4gc2Vuc2h1dVwgOwor5Yy656uLID4ga3VyaXRzdVwgOwor5b+g54qsID4gY2h1dWtlblwgOwor5ZCE5omAID4ga2FrdXNob1wgOwor5YqH6YGTID4gZ2VraWRvdVwgOwor5oOo5YqHID4gc2FuZ2VraVwgOwor5oGL5paHID4ga29pYnVtaVwgOwor6YqD5YK3ID4ganV1c2hvdVwgOwor5rOV5oKmID4gaG91ZXRzdVwgOwor55+l6KaaID4gY2hpa2FrdVwgOwor6YKm6KizID4gaG91eWFrdVwgOwor5rC055CDID4gc3Vpa3l1dVwgOwor56eB5L+hID4gc2hpc2hpblwgOwor5Yqb6LWwID4gcmlraXNvdVwgOwor5rWm5Lq6ID4gdXJhYml0b1wgOwor5Y+N5qC4ID4gaGFua2FrdVwgOwor5bm96bOlID4geXV1Y2hvdVwgOwor6Jas5birID4geWFrdXNoaVwgOwor56We5a6dID4gc2hpbnBvdVwgOwor56We5a6YID4gc2hpbmthblwgOwor56Wd5a60ID4gc2h1a3VlblwgOwor6YqA5YG0ID4gZ2luZ2F3YVwgOwor5Y+W5pu/ID4gdG9yaWthZVwgOwor5byU6KmeID4gY2hvdXNoaVwgOwor5Y2g55SoID4gc2VuJyd5b3VcIDsKK+WJjemZsyA+IHplbmNoaW5cIDsKK+efs+idiyA+IHNla2lyb3VcIDsKK+atu+inkiA+IHNoaWtha3VcIDsKK+iTrOeUnyA+IHlvbW9naXVcIDsKK+a1geWLlSA+IHJ5dXVkb3VcIDsKK+WOhOeBvSA+IHlha3VzYWlcIDsKK+WPq+aPmyA+IGt5b3VrYW5cIDsKK+aAoOalrSA+IHRhaWd5b3VcIDsKK+attOioqiA+IHJla2lob3VcIDsKK+WQjOW/gyA+IGRvdXNoaW5cIDsKK+WOn+azqCA+IGdlbmNodXVcIDsKK+mAhumxlyA+IGdla2lyaW5cIDsKK+efpeihjCA+IGNoaWd5b3VcIDsKK+aAp+agvCA+IHNlaWtha3VcIDsKK+WQjOW9uSA+IGRvdXlha3VcIDsKK+mFuOa8vyA+IGhvb3p1a2lcIDsKK+WQieW+tCA+IGtpdGNob3VcIDsKK+attOimpyA+IHJla2lyYW5cIDsKK+awtOeJoiA+IG1penVyb3VcIDsKK+awtOeJmyA+IHN1aWd5dXVcIDsKK+WQiOW+kyA+IGdhc3Nob3VcIDsKK+WNiueZvSA+IGhhbnBha3VcIDsKK+mzpeiynSA+IHRvcmlnYWlcIDsKK+axoOayvCA+IGNoaXNob3VcIDsKK+mFjeeQgyA+IGhhaWt5dXVcIDsKK+W5vemssSA+IHl1dXV0c3VcIDsKK+awtOeIhiA+IHN1aWJha3VcIDsKK+WMl+exsyA+IGhva3ViZWlcIDsKK+WNk+eUqCA+IHRha3V5b3VcIDsKK+iVg+akkiA+IGJhbnNob3VcIDsKK+WJvei7vSA+IGh5b3VraW5cIDsKK+azqOWwhCA+IGNodXVzaGFcIDsKK+W+tOeUqCA+IGNob3V5b3VcIDsKK+mFlOeLgiA+IHN1aWt5b3VcIDsKK+WSjuS6uiA+IHRvZ2FuaW5cIDsKK+iRieicgiA+IGhhYmFjaGlcIDsKK+W/g+eMvyA+IHNoaW4nJ2VuXCA7CivlvrPnlKggPiB0b2t1eW91XCA7CivmgbDluYUgPiBrYXBwdWt1XCA7Civov7fps6UgPiBtZWljaG91XCA7CivpgJrpoqggPiB0c3V1ZnV1XCA7CivljYHnm64gPiBqdXVtb2t1XCA7CivoloTmg4UgPiBoYWt1am91XCA7CivmraPoqr8gPiBzZWljaG91XCA7CivlkIzluK0gPiBkb3VzZWtpXCA7Civlj4LmnJ0gPiBzYW5jaG91XCA7CivnnJ/pu5IgPiBtYWtrdXJvXCA7CivliqPop5IgPiByZWtrYWt1XCA7CivolqzlrrMgPiB5YWt1Z2FpXCA7CivmgaLlvqkgPiBrYWlmdWt1XCA7CivpgLHplpMgPiBzaHV1a2FuXCA7CivnpoTlkb0gPiByb2t1bWVpXCA7Civlj6Tmi5kgPiBrb3NldHN1XCA7CivliLvpmZAgPiBrb2t1Z2VuXCA7Civlj47mloIgPiBzaHV1cmVuXCA7CivnpZ7lpIkgPiBzaGlucGVuXCA7CivmsLfngrkgPiBoeW91dGVuXCA7CivlvIHoqLwgPiBiZW5zaG91XCA7CivmsLfngq0gPiBoeW91dGFuXCA7CivmrY7os54gPiB0YW5zaG91XCA7CivlkLjlobUgPiBreXV1amluXCA7CivlkJvlr7UgPiBrdW5jaG91XCA7CivlubLprZogPiBob3NoaXVvXCA7Civlj47mlK8gPiBzaHV1c2hpXCA7Civlj47mlKwgPiBzaHV1cmFuXCA7CivlkITlupcgPiBrYWt1dGVuXCA7CivljZPnkIMgPiB0YWtreXV1XCA7CivmgZDmhYwgPiBreW91a291XCA7Civlj6Pmib8gPiBrb3VzaG91XCA7CivljrPmoLwgPiBnZW5rYWt1XCA7CivoloTlv5cgPiBoYWt1c2hpXCA7CivnpoDlkYogPiByaW5rb2t1XCA7CivlkajliLAgPiBzaHV1dG91XCA7CivmsZfmsLQgPiBhc2VtaXp1XCA7CivljJfnq68gPiBob2t1dGFuXCA7CivljZjni6wgPiB0YW5kb2t1XCA7CivlkITluIIgPiBrYWt1c2hpXCA7Civlj43mkoMgPiBoYW5nZWtpXCA7CivmtYHkvZMgPiByeXV1dGFpXCA7Civpu5LkurogPiBrb2t1amluXCA7CivlvbznqIsgPiBhcmVob2RvXCA7CivnpL7lroUgPiBzaGF0YWt1XCA7CivmtYHkvJogPiByeXV1a2FpXCA7CivljYrnkIMgPiBoYW5reXV1XCA7CivpgYrpg60gPiB5dXVrYWt1XCA7CivpgZPovrogPiBtaWNoaWJlXCA7CivlupfplbcgPiB0ZW5jaG91XCA7CivmgZLlv4MgPiBrb3VzaGluXCA7CivmrabooZMgPiBidWp1dHN1XCA7Civmrovoj4ogPiB6YW5naWt1XCA7CivlkI3lsIYgPiBtZWlzaG91XCA7CivmsqHmiJEgPiBib3RzdWdhXCA7CivlkIzlsI8gPiBkb3VzaG91XCA7CivmtYHkuqEgPiByeXV1Ym91XCA7CivliJ3pn7MgPiBoYXRzdW5lXCA7Civpg73nq4sgPiB0b3JpdHN1XCA7CivlkI7lrq4gPiBrb3VreXV1XCA7CivliKXpm6IgPiBiZXRzdXJpXCA7CivlvpPnmoQgPiBqdXV0ZWtpXCA7Civlkb3kuK0gPiBtZWljaHV1XCA7CivnoLTnq7kgPiBoYWNoaWt1XCA7Civokrznmb0gPiBzb3VoYWt1XCA7CivmsLTmu7QgPiBzdWl0ZWtpXCA7Civph4/mhJ8gPiByeW91a2FuXCA7Civms5XlraYgPiBob3VnYWt1XCA7Civliofoq5YgPiBnZWtpcm9uXCA7CivljZLniL4gPiBzb3RzdWppXCA7Civliofoq4cgPiBnZWtpZGFuXCA7CivmgJ3mlpkgPiBzaGlyeW91XCA7CivnoaznkIMgPiBrb3VreXV1XCA7CivlipvooYwgPiByeW9ra291XCA7CivlkIzlrpcgPiBkb3VzaHV1XCA7CivolYPml48gPiBiYW56b2t1XCA7CivnpoHliYcgPiBraW5zb2t1XCA7CivpgbjoqZUgPiBzZW5weW91XCA7CivnpKvlsqkgPiByZWtpZ2FuXCA7CivlkITlsaQgPiBrYWt1c291XCA7CivliKXpmaIgPiBiZXRzdWluXCA7CivlkIzlraYgPiBkb3VnYWt1XCA7Civno4HmpbUgPiBqaWt5b2t1XCA7CivpgJrplqIgPiB0c3V1a2FuXCA7Civli53ogIUgPiBzaG91c2hhXCA7CivliofoqakgPiBnZWtpc2hpXCA7CivlubLpo68gPiBob3NoaWlpXCA7CivpiYTliYcgPiB0ZXNzb2t1XCA7CivpgYXpgJ8gPiBjaGlzb2t1XCA7CivnoqfmsLQgPiBoZWtpc3VpXCA7Civnn7Poh7wgPiBpc2hpdXN1XCA7CivlubTpoY0gPiBuZW5nYWt1XCA7CivlvLfogqkgPiBreW91a2VuXCA7Civlj7DluLMgPiBkYWljaG91XCA7CivmsLTmt7EgPiBzdWlzaGluXCA7CivmsLfmtbcgPiBoeW91a2FpXCA7Civms7Dlm70gPiB0YWlrb2t1XCA7CivliKXplpMgPiBiZXRzdW1hXCA7CivmsYHmsJcgPiBzaGlydWtlXCA7CivmtJvlhoUgPiByYWt1bmFpXCA7Civmr47np5IgPiBtYWlieW91XCA7Civlvq7nhrEgPiBiaW5ldHN1XCA7CivmsLTmtbQgPiBzdWl5b2t1XCA7Civmg5HkubEgPiB3YWt1cmFuXCA7CivokL3okYkgPiByYWt1eW91XCA7CivliqDomZAgPiBrYWd5YWt1XCA7CivlvLfogIUgPiBreW91c2hhXCA7Civlj6TlvI8gPiBrb3NoaWtpXCA7CivokrjnlZkgPiBqb3VyeXV1XCA7Civph43lv4MgPiBqdXVzaGluXCA7CivljYrnhp8gPiBoYW5qdWt1XCA7CivmsLTmtYEgPiBzdWlyeXV1XCA7CivnnJ/pq4QgPiBzaGluenVpXCA7CivliY3pgLIgPiB6ZW5zaGluXCA7CivliY3pgLEgPiB6ZW5zaHV1XCA7Civljp/mnKggPiBnZW5ib2t1XCA7Civph43lvbkgPiBqdXV5YWt1XCA7Civlj5vlv4MgPiBoYW5zaGluXCA7Civli6TntpogPiBraW56b2t1XCA7CivpgLzov6sgPiBoaXBwYWt1XCA7CivljYrnhLwgPiBoYW5zaG91XCA7CivnpZ7lk4EgPiBzaGlucGluXCA7Civljprmnb8gPiBhdHN1aXRhXCA7CivmsqHlvowgPiBib3RzdWdvXCA7Civms6XlnYogPiBkb3JvYm91XCA7CivlvLHogIUgPiBqYWt1c2hhXCA7CivljbXmrrsgPiByYW5rYWt1XCA7Civph5HlubMgPiBraW5waXJhXCA7CivljbHmsJcgPiBhYnVuYWdlXCA7CivmgKXmiYAgPiBreXV1c2hvXCA7Civmrrvnq78gPiBrYXJhc2FvXCA7CivphofmnLQgPiBqdW5ib2t1XCA7Civlj5blvpcgPiBzaHV0b2t1XCA7CivljbPmrbsgPiBzb2t1c2hpXCA7CivptIfoibIgPiB0b2tpaXJvXCA7Civlj7DlsLsgPiBkYWlqaXJpXCA7CivlkJvlm70gPiBrdW5rb2t1XCA7CivmgKfmhb4gPiBzZWl5b2t1XCA7Civov73pmo8gPiB0c3VpenVpXCA7Civli7Lnq6AgPiBrdW5zaG91XCA7CivpgLLpgIAgPiBzaGludGFpXCA7CivpgKPph48gPiByZW5yeW91XCA7CivliY3ouqsgPiB6ZW5zaGluXCA7Civljp/mlpkgPiBnZW5yeW91XCA7Civmrbvoh60gPiBzaGlzaHV1XCA7CivpgpHokL0gPiB5dXVyYWt1XCA7Civlia/oqZ4gPiBmdWt1c2hpXCA7CivlkIjlo4EgPiBnYXBwZWtpXCA7CivliY3ouaQgPiB6ZW5zaG91XCA7Civlj7LlraYgPiBzaGlnYWt1XCA7Civlj43lv5wgPiBoYW4nJ25vdVwgOwor5Ye66aGNID4gZGViaXRhaVwgOwor5Yi56YKjID4gc2V0c3VuYVwgOwor5bm06ZW3ID4gbmVuY2hvdVwgOwor5Y+N5b6pID4gaGFucHVrdVwgOwor5Ye66aCtID4gc2h1dHRvdVwgOwor5YiH6ZmkID4gc2V0c3Vqb1wgOwor6JGt57CAID4geW9zaGl6dVwgOwor5Ye26aGeID4ga3lvdXJ1aVwgOwor56KH5rOKID4gdGVpaGFrdVwgOwor5oCl5oKjID4ga3l1dWthblwgOwor5YmN6LazID4gbWFlYXNoaVwgOwor5ZCf5ZSxID4gZ2luc2hvdVwgOwor5rSL5YKYID4geW91Z2FzYVwgOwor56CU56m2ID4ga2Vua3l1dVwgOwor6YCy6LuNID4gc2hpbmd1blwgOwor5oCn5oClID4gc2Vpa3l1dVwgOwor56aB5LitID4ga2luY2h1dVwgOwor56We5YmjID4gc2hpbmtlblwgOwor6YWS5q+SID4gc2h1ZG9rdVwgOwor56We5YmNID4gc2hpbnplblwgOwor6YeR5bGeID4ga2luem9rdVwgOwor5oCl5oCnID4ga3l1dXNlaVwgOwor6JGm57C+ID4geW9zaGl6dVwgOwor6Jas5ZOBID4geWFrdWhpblwgOwor5rKI5oCdID4gY2hpbnNoaVwgOwor5Y2X5rSLID4gbmFuJyd5b3VcIDsKK+WQjOWbvSA+IGRvdWtva3VcIDsKK+atu+iCiSA+IHNoaW5pa3VcIDsKK+aAp+W+tCA+IHNlaWNob3VcIDsKK+W5s+mRvyA+IGhlaXNha3VcIDsKK+iRpuewgCA+IHlvc2hpenVcIDsKK+WLneeulyA+IHNob3VzYW5cIDsKK+mHkeWwhiA+IGtpbnNob3VcIDsKK+aAneaDkSA+IG9tb3dha3VcIDsKK+mztuiJsiA+IHRvYmlpcm9cIDsKK+efs+e2vyA+IHNla2ltZW5cIDsKK+iQveiDhiA+IHJha3V0YW5cIDsKK+mzpeiRrCA+IGNob3Vzb3VcIDsKK+WNsealtSA+IGtpa3lva3VcIDsKK+ayouWxsSA+IHRha3VzYW5cIDsKK+W+l+eCuSA+IHRva3V0ZW5cIDsKK+WPieW6qyA+IGF6ZWt1cmFcIDsKK+mFt+aakSA+IGtva3VzaG9cIDsKK+WPjOW5hSA+IHNvdWZ1a3VcIDsKK+W9k+eiuiA+IHRvdWtha3VcIDsKK+WIuui6qyA+IHNhc2hpbWlcIDsKK+W6g+mHjyA+IGtvdXJ5b3VcIDsKK+WQhOWcsCA+IGtha3VjaGlcIDsKK+iWhOWiqCA+IHVzdXp1bWlcIDsKK+aziuWcsCA+IGhha3VjaGlcIDsKK+WOqOaIvyA+IGNodXVib3VcIDsKK+WPm+WwhiA+IGhhbnNob3VcIDsKK+WQhOWbvSA+IGtha2tva3VcIDsKK+iRpuesmyA+IGFzaGlidWVcIDsKK+mHjeWunSA+IGNob3Vob3VcIDsKK+mHj+WtkCA+IHJ5b3VzaGlcIDsKK+W5lembuyA+IG1ha3VkZW5cIDsKK+WJpeijvSA+IGhha3VzZWlcIDsKK+mGnOaFiyA+IHNodXV0YWlcIDsKK+WKn+iHoyA+IGtvdXNoaW5cIDsKK+efree1oSA+IHRhbnJha3VcIDsKK+iWrOWMhSA+IHlha3Vob3VcIDsKK+awkeaziiA+IG1pbnBha3VcIDsKK+ekvuWRiiA+IHNoYWtva3VcIDsKK+W8geiGnCA+IGJlbm1ha3VcIDsKK+mAsuiyoiA+IHNoaW5rb3VcIDsKK+W4uOmnkCA+IGpvdWNodXVcIDsKK+mGnOaCqiA+IHNodXVha3VcIDsKK+axuuW/gyA+IGtlc3NoaW5cIDsKK+egleefsyA+IHNhaXNla2lcIDsKK+ato+iFuSA+IHNlaWZ1a3VcIDsKK+mzqeiIjiA+IGt5dXVzaGFcIDsKK+iWrOWJpCA+IHlha3V6YWlcIDsKK+avlOeOhyA+IGhpcml0c3VcIDsKK+WQiOWUsSA+IGdhc3Nob3VcIDsKK+WLvueVmSA+IGtvdXJ5dXVcIDsKK+WIpei+niA+IGJldHN1amlcIDsKK+W8iue/kiA+IGhlaXNodXVcIDsKK+W9ueeJmyA+IGVraWd5dXVcIDsKK+mAjemBpSA+IHNob3V5b3VcIDsKK+ayvOWcsCA+IG51bWFjaGlcIDsKK+mAjemBmSA+IHNob3V5b3VcIDsKK+iOq+mAoyA+IGJha3VyZW5cIDsKK+azleWQjSA+IGhvdW15b3VcIDsKK+W7t+iHoyA+IHRlaXNoaW5cIDsKK+efs+etjSA+IHNla2lqdW5cIDsKK+elnuS9kyA+IHNoaW50YWlcIDsKK+WPjuWuuSA+IHNodXV5b3VcIDsKK+aCoOS5hSA+IHl1dWt5dXVcIDsKK+ayu+WbvSA+IGNoaWtva3VcIDsKK+WInemAnyA+IHNob3Nva3VcIDsKK+WQjeWPtyA+IG15b3Vnb3VcIDsKK+W/g+ajkiA+IHNoaW5ib3VcIDsKK+elnuS7mSA+IHNoaW5zZW5cIDsKK+mAsuismyA+IHNoaW5rb3VcIDsKK+azleWNmiA+IGhvdWhha3VcIDsKK+elnuS6uiA+IHNoaW5qaW5cIDsKK+mAhumBiyA+IGd5YWt1dW5cIDsKK+eciembqiA+IGJpc2V0c3VcIDsKK+mBuOiJryA+IHNlbnJ5b3VcIDsKK+WHuOmPoSA+IHRva2t5b3VcIDsKK+iSuOa6nCA+IGpvdXJ5dXVcIDsKK+WQiOWPoyA+IGFpa3VjaGlcIDsKK+ekvuWJhyA+IHNoYXNva3VcIDsKK+asneihgCA+IHVra2V0c3VcIDsKK+awtOaZtiA+IHN1aXNob3VcIDsKK+iNkumnkiA+IGFyYWdvbWFcIDsKK+WQjeWMoCA+IG1laXNob3VcIDsKK+awuOaXpSA+IGVpaml0c3VcIDsKK+auuueUnyA+IHNlc3Nob3VcIDsKK+WNs+aWrSA+IHNva3VkYW5cIDsKK+WIhumHnSA+IGZ1bnNoaW5cIDsKK+WNg+atsyA+IGNoaXRvc2VcIDsKK+WIhumHjyA+IGJ1bnJ5b3VcIDsKK+WQjeWLnSA+IG1laXNob3VcIDsKK+WIpei3ryA+IGJldHN1cm9cIDsKK+azleWKmyA+IGhvdXJpa2lcIDsKK+avlOeGsSA+IGhpbmV0c3VcIDsKK+WLpOeahyA+IGtpbicnbm91XCA7CivlvLfnoawgPiBreW91a291XCA7Civms5XliYcgPiBob3Vzb2t1XCA7CivpgLLoqIAgPiBzaGluZ2VuXCA7Civlu4PomZogPiBoYWlreW9cIDsKK+W/v+aAkiA+IGZ1bicnbnVcIDsKK+mAgei/jiA+IHNvdWdlaVwgOwor6L+F6Zu3ID4gamlucmFpXCA7Civlv5fmk40gPiBzaGlzb3VcIDsKK+mAmuiyqCA+IHRzdXVrYVwgOwor5ZCN5Yi6ID4gbWVpc2hpXCA7CivlkIzliY0gPiBkb3V6ZW5cIDsKK+ekvOWFuCA+IHJlaXRlblwgOwor5YmN6KGbID4gemVuJydlaVwgOwor55+i562IID4geWFoYXp1XCA7Civph5HlnZEgPiBraW5rb3VcIDsKK+WOn+W9oiA+IGdlbmtlaVwgOwor5b6p5qipID4gZnVra2VuXCA7CivliY3ooYwgPiB6ZW5rb3VcIDsKK+WQjeWIhiA+IG1laWJ1blwgOwor5b2i54q2ID4ga2Vpam91XCA7CivliJfou4ogPiByZXNzaGFcIDsKK+WQjeWIgCA+IG1laXRvdVwgOwor5buD6JepID4gaGFpaGFuXCA7CivphY3mnKwgPiBoYWlob25cIDsKK+WOmuW/lyA+IGtvdXNoaVwgOwor6JaE5ZGzID4gaGFrdW1pXCA7CivnpL7lg6cgPiBzaGFzb3VcIDsKK+WQiOWJpCA+IGdvdXphaVwgOwor5ZCM5YemID4gZG91c2hvXCA7Civms5XlhbggPiBob3V0ZW5cIDsKK+ekvuWCtSA+IHNoYXNhaVwgOwor5bm06LyqID4gbmVucmluXCA7CivlubTovKkgPiBuZW5wYWlcIDsKK+ejgeW/gyA+IGppc2hpblwgOwor5YiG6YGjID4gYnVua2VuXCA7Civlj4vlpb0gPiB5dXVrb3VcIDsKK+WLpOeVqiA+IGtpbmJhblwgOwor55+z56KRID4gc2VraWhpXCA7CivlkIjliIcgPiBnYXNzYWlcIDsKK+mAgOi7oiA+IHRhaXRlblwgOwor5q2j57eoID4gc2VpaGVuXCA7Civlj43lpIkgPiBoYW5wZW5cIDsKK+WPseWSpCA+IHNoaXR0YVwgOwor5ZCM5YWaID4gZG91dG91XCA7Civlub3otqMgPiB5dXVzaHVcIDsKK+WKoOe1piA+IGtha3l1dVwgOwor5ZCN5YSqID4gbWVpeXV1XCA7CivljrPlsIEgPiBnZW5wdXVcIDsKK+W4r+mbuyA+IHRhaWRlblwgOwor5b6L5rOVID4gcmlwcG91XCA7Civlh4zpm7IgPiByeW91dW5cIDsKK+W/q+aEnyA+IGthaWthblwgOwor6YG46ICDID4gc2Vua291XCA7Civnn6LnqK4gPiB5YWRhbmVcIDsKK+axjuaEmyA+IGhhbicnYWlcIDsKK+W8t+eblyA+IGdvdXRvdVwgOwor5Y6z5a+SID4gZ2Vua2FuXCA7Civph4/lmaggPiByeW91a2lcIDsKK+WQjeWDpyA+IG1laXNvdVwgOwor5q2j57WxID4gc2VpdG91XCA7CivpgYrolakgPiB5dXV0b3VcIDsKK+axuuWumiA+IGtldHRlaVwgOwor6JK45rCRID4gam91bWluXCA7CivlvL7nl5UgPiBkYW5rb25cIDsKK+mHjeWZuCA+IGp1dXRvblwgOwor6L+C6ZeKID4gdWthdHN1XCA7CivpgKDoqaMgPiB6b3VrZWlcIDsKK+a3oeOAhSA+IHRhbnRhblwgOwor5Y6z5a6IID4gZ2Vuc2h1XCA7Civlj7DlkI0gPiB0YWltZWlcIDsKK+WOs+WtmCA+IGdlbnNvblwgOwor5q2j57O7ID4gc2Vpa2VpXCA7CivpgqrnpZ4gPiBqYXNoaW5cIDsKK+i+uumZrCA+IGhlbnN1dVwgOwor6YCg6KiAID4gem91Z2VuXCA7CivpgIPotbAgPiB0b3Vzb3VcIDsKK+mAmuiqniA+IHRzdXVnb1wgOwor5YiG6LyJID4gYnVuc2FpXCA7CivphbjmgKcgPiBzYW5zZWlcIDsKK+ebuOmWoiA+IHNvdWthblwgOwor5b6M5q61ID4ga291ZGFuXCA7CivnpL7kvJogPiBzaGFrYWlcIDsKK+mAmuipsSA+IHRzdXV3YVwgOwor5b6p5qChID4gZnVra291XCA7CivlkIzlgKQgPiBkb3VjaGlcIDsKK+WIh+i6qyA+IGtpcmltaVwgOwor5ZCb5Li7ID4ga3Vuc2h1XCA7CivojYnpnosgPiB3YXJhamlcIDsKK+azleS+iyA+IGhvdXJlaVwgOwor5rKz5Y6fID4ga2F3YXJhXCA7CivliLboo4EgPiBzZWlzYWlcIDsKK+WNl+aWuSA+IG5hbnBvdVwgOwor5YyX5rW3ID4gaG9ra2FpXCA7Civlv6DmhJsgPiBjaHV1YWlcIDsKK+mHkeWToSA+IGtpbicnaW5cIDsKK+WNmOaWhyA+IHRhbmJ1blwgOwor56K65bqmID4ga2FrdWRvXCA7CivmsJHmnJsgPiBtaW5ib3VcIDsKK+iWhOWIqSA+IGhha3VyaVwgOwor56S+5LqkID4gc2hha291XCA7Civlvq7mnI0gPiBiaWZ1a3VcIDsKK+axguaEmyA+IGt5dXVhaVwgOwor5Y2Y5pWwID4gdGFuc3V1XCA7Civlv4XmkLogPiBoaWtrZWlcIDsKK+mHkeWTgSA+IGtpbnBpblwgOwor5Yqj562JID4gcmV0dG91XCA7Civnm6TpnaIgPiBiYW5tZW5cIDsKK+WMoOawlyA+IHNob3VraVwgOwor5YuV55SjID4gZG91c2FuXCA7Civlu7bntI0gPiBlbicnbm91XCA7CivnoJXniYcgPiBzYWloZW5cIDsKK+ecn+mAhiA+IG1hc2FrYVwgOwor5ZCM5L2TID4gZG91dGFpXCA7CivmsrPljJcgPiBrYWhva3VcIDsKK+ekvuS4uyA+IHNoYXNodVwgOwor5Y2X5pSvID4gbmFuc2hpXCA7Civlj6PlkLsgPiBrb3VmdW5cIDsKK+W8vueQtCA+IGRhbmtpblwgOwor5bir6ZaAID4gc2hpbW9uXCA7CivmsJfml6kgPiBraWJheWFcIDsKK+azleS7pCA+IGhvdXJlaVwgOwor5oCl5aC0ID4ga3l1dWJhXCA7CivlkIzkvLQgPiBkb3VoYW5cIDsKK+mAo+ihoSA+IHJlbmtvdVwgOwor5Y+j5ZCfID4ga291Z2luXCA7CivpgKPooYwgPiByZW5rb3VcIDsKK+azleS6uiA+IGhvdWppblwgOwor5Ya36Z2ZID4gcmVpc2VpXCA7Civov5Tph5EgPiBoZW5raW5cIDsKK+WPguWggiA+IHNhbmRvdVwgOwor5b+r5byBID4ga2FpYmVuXCA7Civlv6DmgZUgPiBjaHV1am9cIDsKK+WPrOWLnyA+IHNob3Vib1wgOwor5ZCI5L21ID4gZ291aGVpXCA7CivlkJDkubMgPiB0b255dXVcIDsKK+i/t+i1sCA+IG1laXNvdVwgOwor5q2j562UID4gc2VpdG91XCA7CivlkI3kurogPiBtZWlqaW5cIDsKK+WQiOS9kyA+IGdhdHRhaVwgOwor6JaE5YWJID4gaGFra291XCA7CivolJPlu7YgPiBtYW4nJ2VuXCA7CivlvZPnhLYgPiB0b3V6ZW5cIDsKK+WPjeWZrCA+IGhhbnplaVwgOwor5Y6f5a+4ID4gZ2Vuc3VuXCA7CivlkIzku4EgPiBkb3VqaW5cIDsKK+WQjOS6uiA+IGRvdW5pblwgOwor5YW46bqXID4gdGVucmVpXCA7CivlkJHkuIogPiBrb3Vqb3VcIDsKK+W3o+m2jyA+IHN1ZG9yaVwgOwor5Y2B5pysID4ganVwcG9uXCA7Civlu4PoiaYgPiBoYWlrYW5cIDsKK+axn+WxsSA+IGtvdXphblwgOwor5bqn6JasID4gemF5YWt1XCA7CivokI7nuK4gPiBpc2h1a3VcIDsKK+mHjeWQiCA+IGp1dWdvdVwgOwor5bqD6KiAID4ga291Z2VuXCA7Civlu4PoiLkgPiBoYWlzZW5cIDsKK+W7kOiCpSA+IGt5dXVoaVwgOwor5ZCM5LmXID4gZG91am91XCA7Civlv5zmgKUgPiBvdWt5dXVcIDsKK+mHkeWNsCA+IGtpbicnaW5cIDsKK+mBiuiKuCA+IHl1dWdlaVwgOwor5q6L55eVID4gemFua29uXCA7CivliY3okZcgPiB6ZW5jaG9cIDsKK+iPluiSsiA+IHNob3VidVwgOwor6YeO5Y6fID4gbm9oYXJhXCA7Civmsbrlo4ogPiBrZWtrYWlcIDsKK+WOn+WtkCA+IGdlbnNoaVwgOwor5q+b5rCIID4gbW91c2VuXCA7CivljaDmi6AgPiBzZW5reW9cIDsKK+WQjOS4iiA+IGRvdWpvdVwgOwor5Yil6KO9ID4gYmVzc2VpXCA7CivlvIrnpL4gPiBoZWlzaGFcIDsKK+avlOazgSA+IGhpa3lvdVwgOwor6YCP6KaWID4gdG91c2hpXCA7CivljYrmlbAgPiBoYW5zdXVcIDsKK+mGnOWlsyA+IHNodXVqb1wgOwor5Yq555uuID4ga2lraW1lXCA7CivmsJHmlL8gPiBtaW5zZWlcIDsKK+mztOemvSA+IG1laWtpblwgOwor5rCR5pS+ID4gbWlucG91XCA7Civov5Hpg7cgPiBraW5nb3VcIDsKK+mFkuaJiyA+IHNha2F0ZVwgOwor6L+U6YKEID4gaGVua2FuXCA7CivlvJPnn6IgPiB5dW1peWFcIDsKK+WJjeiPnCA+IHplbnNhaVwgOwor5Y+N5ZWPID4gaGFubW9uXCA7Civlh6bpgYcgPiBzaG9ndXVcIDsKK+W/g+aKgCA+IHNoaW5naVwgOwor6L+R6YOKID4ga2lua291XCA7CivoloTlgJYgPiBoYWtrb3VcIDsKK+WIneimiyA+IHNob2tlblwgOwor5qyg6IiqID4ga2Vra291XCA7Civnm5fpm7sgPiB0b3VkZW5cIDsKK+W3qOmvqCA+IGt5b2dlaVwgOwor5rKD5ZyfID4geW9rdWRvXCA7Civlt7vpppYgPiBrYW5zaHVcIDsKK+WHuui2syA+IGRlYXNoaVwgOwor5q6L55SfID4gemFuc2VpXCA7CivljJfmrKcgPiBob2t1b3VcIDsKK+ebl+mboyA+IHRvdW5hblwgOwor5Yqg56aEID4ga2Fyb2t1XCA7Civlj7fkv7ggPiBnb3Vob3VcIDsKK+atu+ebuCA+IHNoaXNvdVwgOwor5Y2x5oClID4ga2lreXV1XCA7CivliZvoh4YgPiBnb3Vva3VcIDsKK+W8vueJhyA+IGRhbnBlblwgOwor55yM6YGTID4ga2VuZG91XCA7CivljbPlv5wgPiBzb2t1b3VcIDsKK+atpuelniA+IGJ1c2hpblwgOwor6L+U6YCBID4gaGVuc291XCA7CivlvqnmlLkgPiBmdWtrYWlcIDsKK+mHkeWJmyA+IGtvbmdvdVwgOwor5bmj6LKiID4gaGVpa291XCA7CivphY3miYAgPiBoYWlzaG9cIDsKK+WNteW9oiA+IHJhbmtlaVwgOwor6YeR5Yi4ID4ga2lua2VuXCA7CivphZTmhYsgPiBzdWl0YWlcIDsKK+W5u+imliA+IGdlbnNoaVwgOwor5beo6a2BID4ga3lva2FpXCA7CivolYPlnLAgPiBiYW5jaGlcIDsKK+WNgeaVsCA+IGp1dXN1dVwgOwor5rG95ZynID4ga2lhdHN1XCA7Civlh6HpgIAgPiBib250YWlcIDsKK+mBlOiAhSA+IHRhc3NoYVwgOwor5b6T5p2lID4ganV1cmFpXCA7CivpgbjnrqEgPiBzZW5rYW5cIDsKK+WIhuitsiA+IGJ1bmpvdVwgOwor5Y+45LyaID4gc2hpa2FpXCA7CivlvqHmlpkgPiBnb3J5b3VcIDsKK+WGhumrmCA+IGVuZGFrYVwgOwor6L+R6L66ID4ga2lucGVuXCA7Civljp/lp4sgPiBnZW5zaGlcIDsKK+WPo+WGhSA+IGtvdW5haVwgOwor5Ye66LK7ID4gc2h1cHBpXCA7Civph5HlhqAgPiBraW5rYW5cIDsKK+WNsOW9oiA+IGluZ3lvdVwgOwor5Y+45LukID4gc2hpcmVpXCA7Civph43liJEgPiBqdXVrZWlcIDsKK+i/veiotCA+IHRzdWlzb1wgOwor5Y+35LukID4gZ291cmVpXCA7CivliqDnoasgPiBrYXJ5dXVcIDsKK+WJm+iDhiA+IGdvdXRhblwgOwor6YeR5YW3ID4ga2FuYWd1XCA7Civlj47lj5cgPiBzaHV1anVcIDsKK+mFjeaFriA+IGhhaXJ5b1wgOwor6L+36KuWID4gbWVpcm9uXCA7Civmr47mr44gPiBtYWltYWlcIDsKK+i/veiomCA+IHRzdWlraVwgOwor552h6JOuID4gc3VpcmVuXCA7Civlv4PmhI8gPiBzaGluJydpXCA7CivlibLnt5ogPiBrYXNzZW5cIDsKK+WIh+irjCA+IHNla2thblwgOwor5b+Y5bm0ID4gYm91bmVuXCA7CivljbPluqcgPiBzb2t1emFcIDsKK+W3u+mgrSA+IGthbnRvdVwgOwor5Yq555SoID4ga291eW91XCA7Civliqvnm5cgPiBnb3V0b3VcIDsKK+iSsuafsyA+IGhvcnl1dVwgOwor5oGS5L6LID4ga291cmVpXCA7Civlj7LkvJ0gPiBzaGlkZW5cIDsKK+W/jeW+kyA+IG5pbmp1dVwgOwor6YW35a+SID4ga29ra2FuXCA7CivluILpm7sgPiBzaGlkZW5cIDsKK+WLh+eMmyA+IHl1dW1vdVwgOwor5q+s5p6cID4ga3l1dWthXCA7CivojbfotrMgPiBuaWFzaGlcIDsKK+W4uOmBkyA+IGpvdWRvdVwgOwor5YiG6KmeID4gYnVuc2hpXCA7CivmsrvkubEgPiBjaGlyYW5cIDsKK+WNteW3oyA+IHJhbnNvdVwgOwor5q2755SjID4gc2hpemFuXCA7CivmrbvnlJ8gPiBzaGlzZWlcIDsKK+WNmuaEmyA+IGhha3VhaVwgOwor5bi46YCjID4gam91cmVuXCA7CivlhpLpoK0gPiBib3V0b3VcIDsKK+aAp+WQkSA+IHNlaWtvdVwgOwor5biw6YO3ID4ga2lreW91XCA7CivmsLTlubMgPiBzdWloZWlcIDsKK+ayu+S4liA+IGNoaXNlaVwgOwor5byV55SoID4gaW4nJ3lvdVwgOwor6a6u6bqXID4gc2VucmVpXCA7Civnm67ph5ggPiBtZWt1Z2lcIDsKK+WPjeWLlSA+IGhhbmRvdVwgOwor5YmN6IWVID4gbWFldWRlXCA7Civlj7LkuZcgPiBzaGlqb3VcIDsKK+WIhuinoyA+IGJ1bmthaVwgOwor5Y+C5ZCRID4gc2Fua291XCA7Civlj7PkuIogPiBtaWdpdWVcIDsKK+mBo+exsyA+IGtlbmJlaVwgOwor5Y+k5L+XID4ga296b2t1XCA7Civlvozmma8gPiBrb3VrZWlcIDsKK+WPsuS4iiA+IHNoaWpvdVwgOwor5Y6W5aSnID4gYm91ZGFpXCA7CivpgIDooYwgPiB0YWlrb3VcIDsKK+WPr+S5nyA+IGthbmFyaVwgOwor5bmz6KGhID4gaGVpa291XCA7CivluqfoiIggPiB6YWt5b3VcIDsKK+ato+ecvCA+IHNlaWdhblwgOwor5bmz6KGMID4gaGVpa291XCA7CivlvoXmnJsgPiB0YWlib3VcIDsKK+ejgeWjgSA+IGppaGVraVwgOwor5beu6aGNID4gc2FnYWt1XCA7CivmrovniYcgPiB6YW5wZW5cIDsKK+WPpeS9nCA+IGt1c2FrdVwgOwor5b6M5piGID4ga291a29uXCA7CivmraPnm64gPiBtYXNhbWVcIDsKK+efoueOiSA+IHlhZGFtYVwgOwor5Y2B5oyHID4ganVzc2hpXCA7CivljZjmgKcgPiB0YW5zZWlcIDsKK+WOn+WeiyA+IGdlbmtlaVwgOwor5q+b5qC5ID4gbW91a29uXCA7CivluILploAgPiBzaGltb25cIDsKK+iSuOaVoyA+IGpvdXNhblwgOwor5b6M5pa5ID4ga291aG91XCA7CivphY3lvZMgPiBoYWl0b3VcIDsKK+WKoOeZgiA+IGthcnlvdVwgOwor5b6L5peLID4gcmlzc2VuXCA7Civlj6PkvJ0gPiBrb3VkZW5cIDsKK+mFkuW6lyA+IHNodXRlblwgOwor5bir6YGTID4gc2hpZG91XCA7CivlupXojbcgPiBzb2tvbmlcIDsKK+WIiuihjCA+IGthbmtvdVwgOwor5Ye66Ki0ID4gc2h1c3NvXCA7CivljZrlvpIgPiBiYWt1dG9cIDsKK+W7g+e3miA+IGhhaXNlblwgOwor56CC5rygID4gc2FiYWt1XCA7CivmgKXli58gPiBreXV1Ym9cIDsKK+W8seeBqyA+IHlvd2FiaVwgOwor5YmN6ICFID4gemVuc2hhXCA7CivmgKXli5kgPiBreXV1bXVcIDsKK+W3qOmgrSA+IGt5b3RvdVwgOwor6JGJ54mpID4gaGFtb25vXCA7CivliIboooIgPiBidW5iZWlcIDsKK+WGhumggiA+IGVuY2hvdVwgOwor5rCX5oGvID4ga2lzb2t1XCA7CivlvozmlLsgPiBrb3Vrb3VcIDsKK+mzqeebriA+IGhhdG9tZVwgOwor6YeN5L2TID4ganV1dGFpXCA7CivljrPlkb0gPiBnZW5tZWlcIDsKK+WGkumZuiA+IGJvdWtlblwgOwor5Y6f5ZugID4gZ2VuJydpblwgOwor5YaF6aCFID4gbmFpa291XCA7CivliY3nv4UgPiB6ZW5zaGlcIDsKK+W6puiDuCA+IGRva3lvdVwgOwor55yL6LKrID4ga2Fua2FuXCA7CivljZHmgK8gPiBoaWt5b3VcIDsKK+WNmuW8lSA+IGhha3VpblwgOwor5qmf6ZW3ID4ga2ljaG91XCA7CivlibLnrKYgPiB3YXJpZnVcIDsKK+awl+aApyA+IGtpc2hvdVwgOwor5Y2B5oiSID4gamlra2FpXCA7Civlj4vlhZogPiB5dXV0b3VcIDsKK+WPl+S/oSA+IGp1c2hpblwgOwor55uu6YCUID4gbW9rdXRvXCA7CivovrLpgZMgPiBub3Vkb3VcIDsKK+efs+eBsCA+IHNla2thaVwgOwor5rCR5oOFID4gbWluam91XCA7CivljprlnLAgPiBhdHN1amlcIDsKK+mHjeS7uyA+IGp1dW5pblwgOwor6L+O6LOTID4gZ2VpaGluXCA7CivljrPlkJsgPiBnZW5rdW5cIDsKK+WJjee9riA+IHplbmNoaVwgOwor6YeN5LujID4ganV1ZGFpXCA7CivliJfol6kgPiByZXBwYW5cIDsKK+mzpeebriA+IHRvcmltZVwgOwor5Y2Y5byBID4gdGFuYmVuXCA7CivmrrXmrrUgPiBkYW5kYW5cIDsKK+awtOWxiyA+IG1penV5YVwgOwor5b6A5piUID4gb3VzZWtpXCA7Civph5HkuLsgPiBraW5zaHVcIDsKK+egtOagvCA+IGhha2FrdVwgOwor5Y2D5oWuID4gc2VucnlvXCA7Civljrvli6IgPiBreW9zZWlcIDsKK+WPo+S4iiA+IGtvdWpvdVwgOwor5b2T5q2zID4gdG91c2FpXCA7Civnmq7pnakgPiBoaWtha3VcIDsKK+WGhemdoiA+IG5haW1lblwgOwor5be36ZaTID4ga291a2FuXCA7CivlhrfphZIgPiByZWlzaHVcIDsKK+WNteWtkCA+IHJhbnNoaVwgOwor5oCq5YWJID4ga2Fpa291XCA7CivlhbzpoYwgPiBrZW5kYWlcIDsKK+aqgOmCoyA+IGRhbicnbmFcIDsKK+mHjuS4rSA+IG5vbmFrYVwgOwor6YCg6Ii5ID4gem91c2VuXCA7Civlj4LlhoUgPiBzYW5kYWlcIDsKK+awtOWusyA+IHN1aWdhaVwgOwor5b655bqVID4gdGV0dGVpXCA7CivmsJflvLEgPiBraXlvd2FcIDsKK+WPm+S5sSA+IGhhbnJhblwgOwor5b6h5oW2ID4gZ3lva2VpXCA7CivnnIzoraYgPiBrZW5rZWlcIDsKK+W4nemBkyA+IHRlaWRvdVwgOwor5Yil6I2YID4gYmVzc291XCA7CivnooHluK0gPiBnb3Nla2lcIDsKK+WIneiRiSA+IHNob3lvdVwgOwor5b285pa5ID4ga2FuYXRhXCA7Civnm5/pgqYgPiBtZWlob3VcIDsKK+W/q+WgsSA+IGthaWhvdVwgOwor5Y6t5Y6tID4gaXlhaXlhXCA7CivmsLTlrZAgPiBtaXp1Z29cIDsKK+WGjemWiyA+IHNhaWthaVwgOwor6YGg56ewID4gZW5zaG91XCA7CivljJfmlrkgPiBob3Bwb3VcIDsKK+WGhemZoyA+IG5haWppblwgOwor5Y2K5b6EID4gaGFua2VpXCA7CivokZvmua8gPiBrdXp1eXVcIDsKK+murumtmiA+IHNlbmd5b1wgOwor5Ya36YGHID4gcmVpZ3V1XCA7CivljYrlvbEgPiBoYW4nJ2VpXCA7Civlj43kvosgPiBoYW5yZWlcIDsKK+W3o+mbmyA+IHN1aGluYVwgOwor5b6u5byxID4gYmlqYWt1XCA7Civpg7fmnZEgPiBnb3Vzb25cIDsKK+ehrOaApyA+IGtvdXNlaVwgOwor6YWS5bGLID4gc2FrYXlhXCA7CivlhazppKggPiBrb3VrYW5cIDsKK+WJjee3qCA+IHplbnBlblwgOwor6YCA6JS1ID4gdGFpem91XCA7Civlh53orbAgPiBneW91Z2lcIDsKK+WJjee3miA+IHplbnNlblwgOwor5q2v54q2ID4gc2hpam91XCA7Civlt53pnaIgPiBrYXdhbW9cIDsKK+WOn+WTgSA+IGdlbnBpblwgOwor5byV54WnID4gaW5zaG91XCA7CivljaDlsYUgPiBzZW5reW9cIDsKK+WFqOmkqCA+IHplbmthblwgOwor5Y6z5YiRID4gZ2Vua2VpXCA7Civov5HoqaAgPiBraW4nJ2VpXCA7CivokpnmmKcgPiBtb3VtYWlcIDsKK+aui+a7kyA+IHphbnNoaVwgOwor5rKZ5LiYID4gc2FreXV1XCA7CivmrbvngrkgPiBzaGl0ZW5cIDsKK+ebuOiyjCA+IHNvdWJvdVwgOwor6YCB6JGsID4gc291c291XCA7Civnmb3prZQgPiBoYWt1bWFcIDsKK+WNnOWxhSA+IGJva2t5b1wgOwor56KN5a2QID4gZ2Fpc2hpXCA7Civmr47mmakgPiBtYWliYW5cIDsKK+WOs+WGrCA+IGdlbnRvdVwgOwor5q2754GwID4gc2hpa2FpXCA7Civlj4vkurogPiB5dXVqaW5cIDsKK+ebiumHkSA+IGVraWtpblwgOwor5Yq054G9ID4gcm91c2FpXCA7Civlj43kubEgPiBoYW5yYW5cIDsKK+WNl+WyuCA+IG5hbmdhblwgOwor552A6I23ID4gY2hha2thXCA7Civlj4vkuqQgPiB5dXVrb3VcIDsKK+iRpuavmyA+IGFzaGlnZVwgOwor5qyh56ysID4gc2hpZGFpXCA7CivljprlkbMgPiBhdHN1bWlcIDsKK+WFtemboyA+IGhlaW5hblwgOwor5Y2z5aScID4gc29rdXlhXCA7CivlvaLmnKggPiBrYXRhZ2lcIDsKK+W4q+izhyA+IHNoaXNoaVwgOwor5Y2X5bGxID4gbmFuemFuXCA7Civlv5flo6sgPiBzaGlzaGlcIDsKK+eci+imliA+IGthbnNoaVwgOwor6L+R6KaWID4ga2luc2hpXCA7Civlt4zpoK0gPiBnYW50b3VcIDsKK+iMtumBkyA+IGNoYWRvdVwgOwor5qyh56ugID4gamlzaG91XCA7CivlhbfpmbMgPiBndWNoaW5cIDsKK+aAquS6uiA+IGthaWppblwgOwor55m76auYID4gdG91a291XCA7Civnm6TouJ4gPiBiYW5reW9cIDsKK+WFtemaiiA+IGhlaXRhaVwgOwor6YCj572yID4gcmVuc2hvXCA7CivmraPniq8gPiBzZWloYW5cIDsKK+WNmOWwhCA+IHRhbnNoYVwgOwor5Y+C5LyaID4gc2Fua2FpXCA7CivliofnlLsgPiBnZWtpZ2FcIDsKK+WFqOmfsyA+IHplbicnb25cIDsKK+WNteWhlCA+IHJhbnRvdVwgOwor5YWa6aaWID4gdG91c2h1XCA7CivpgY7np7AgPiBrYXNob3VcIDsKK+aAp+S6pCA+IHNlaWtvdVwgOwor5Y2B5bmyID4gamlra2FuXCA7Civoi7HpoJggPiBlaXJ5b3VcIDsKK+WNkeWxrCA+IGhpem9rdVwgOwor5beo6ZCYID4gb29nYW5lXCA7CivmqKrpoJggPiBvdXJ5b3VcIDsKK+WNkeWxniA+IGhpem9rdVwgOwor55+z5rK5ID4gc2VraXl1XCA7Civlu7vnirYgPiBrYWlqb3VcIDsKK+WJjeevhyA+IHplbnBlblwgOwor6YGU56OoID4gZGFydW1hXCA7Civljp/li5UgPiBnZW5kb3VcIDsKK+WNl+WuiyA+IG5hbnNvdVwgOwor5YWs6Zu7ID4ga291ZGVuXCA7CivlvLHmsJcgPiB5b3dha2lcIDsKK+WFqOmdoiA+IHplbm1lblwgOwor5b6h5bm4ID4gbWl5dWtpXCA7CivlvpjlvoogPiBoYWlrYWlcIDsKK+mDteaUvyA+IHl1dXNlaVwgOwor5Y2K5bO2ID4gaGFudG91XCA7CivljZHlsI8gPiBoaXNob3VcIDsKK+eZvemmrCA+IGhha3ViYVwgOwor55u46KuHID4gc291ZGFuXCA7CivmrJ3nqY0gPiB1c3Nla2lcIDsKK+W+geaIpiA+IHNlaXNlblwgOwor5Ymy55uuID4gd2FyZW1lXCA7Civoj4zns7ggPiBraW5zaGlcIDsKK+WFqOmciiA+IHplbnJlaVwgOwor5b6M5oKjID4ga291a2FuXCA7CivluILpgZMgPiBzaGlkb3VcIDsKK+mAo+e5iyA+IHJlbmtlaVwgOwor5b2T5p2/ID4gYXRlaXRhXCA7Civlj4LkuI4gPiBzYW4nJ3lvXCA7CivlvozmgpQgPiBrb3VrYWlcIDsKK+WPguS4iiA+IHNhbmpvdVwgOwor5rKI5LiLID4gY2hpbmthXCA7CivnnJ/olq8gPiBzaGluam9cIDsKK+WHveiTiyA+IGthbmdhaVwgOwor5Y6f5YidID4gZ2Vuc2hvXCA7CivliY3nq68gPiB6ZW50YW5cIDsKK+W/q+WTiSA+IGthaXNhaVwgOwor5rCX5a2mID4ga2lnYWt1XCA7CivmsLTln58gPiBzdWlpa2lcIDsKK+W+ruWwkSA+IGJpc2hvdVwgOwor5b6u5bCPID4gYmlzaG91XCA7CivlhajpmoogPiB6ZW50YWlcIDsKK+mAgeiHtCA+IHNvdWNoaVwgOwor6YCj57a/ID4gcmVubWVuXCA7CivlibXnl5UgPiBzb3Vrb25cIDsKK+assuebriA+IHlva3VtZVwgOwor5b6X5bqmID4gdG9rdWRvXCA7CivlvpPlvJ8gPiBqdXV0ZWlcIDsKK+mDqOaXjyA+IGJ1em9rdVwgOwor6JWD5Lq6ID4gYmFuamluXCA7Civoj5znqK4gPiBuYXRhbmVcIDsKK+ebtOiotCA+IGppa2lzb1wgOwor5Y6f5YW4ID4gZ2VudGVuXCA7CivlhazplosgPiBrb3VrYWlcIDsKK+mxl+iMjiA+IHJpbmtlaVwgOwor5YWl6ZmiID4gbnl1dWluXCA7Civnn63mr5sgPiB0YW5tb3VcIDsKK+W5u+iCoiA+IGdlbnNoaVwgOwor6I2S6KqVID4ga291dGFuXCA7CivliJ3ogIEgPiBzaG9yb3VcIDsKK+mFt+WQjyA+IGtva3VyaVwgOwor6YCj57SvID4gcmVucnVpXCA7CivmrbvmtbcgPiBzaGlrYWlcIDsKK+iVg+S4uyA+IGJhbnNodVwgOwor5bir6KiTID4gc2hpa3VuXCA7CivmqKnpmZAgPiBrZW5nZW5cIDsKK+WLmOaknCA+IGthbmtlblwgOwor6YG654mpID4gaWJ1dHN1XCA7Civlh4boqLEgPiBqdW5reW9cIDsKK+mFkuWgtCA+IHNha2FiYVwgOwor5YWo6ZaLID4gemVua2FpXCA7CivmronmrbsgPiBqdW5zaGlcIDsKK+WOn+WDjyA+IGdlbnpvdVwgOwor5bu254S8ID4gZW5zaG91XCA7Civnm67oqLEgPiBtZW1vdG9cIDsKK+awtOWaoiA+IHN1aW5vdVwgOwor5b2T5pa5ID4gdG91aG91XCA7Civlh7rojbcgPiBzaHVra2FcIDsKK+ecn+iPsCA+IG1ha29tb1wgOwor5YWD6aaWID4gZ2Vuc2h1XCA7CivljZflpKkgPiBuYW50ZW5cIDsKK+ebruinkiA+IG1la2Fkb1wgOwor5YaN6YG4ID4gc2Fpc2VuXCA7Civlu4Pnm6QgPiBoYWliYW5cIDsKK+ehq+WuiSA+IHJ5dXVhblwgOwor5qmf6Lu4ID4ga2lqaWt1XCA7Civli6LmnJsgPiBzZWlib3VcIDsKK+aoqemWgCA+IGtlbm1vblwgOwor6YqY44CFID4gbWVpbWVpXCA7Civli5jmoYggPiBrYW4nJ2FuXCA7CivlvozlubQgPiBrb3VuZW5cIDsKK+WMu+WxgCA+IGlreW9rdVwgOwor5YaN6YGKID4gc2FpeXV1XCA7CivnoLLmiYsgPiBob3VzaHVcIDsKK+eZvemcsiA+IGhha3Vyb1wgOwor6Iqx6bOlID4ga2FjaG91XCA7Civov73ogqUgPiB0c3VpaGlcIDsKK+WLmOagoSA+IGthbmtvdVwgOwor5b+15YaZID4gbmVuc2hhXCA7Civnn6Xmra8gPiBjaGlzaGlcIDsKK+W4hui1sCA+IGhhbnNvdVwgOwor5b6A5b6pID4gb3VmdWt1XCA7Civnn7PmprQgPiB6YWt1cm9cIDsKK+eZvembsiA+IGhha3V1blwgOwor5YaN6YCBID4gc2Fpc291XCA7CivlhYnpoK0gPiBrb3V0b3VcIDsKK+W+i+W4qyA+IHJpc3NoaVwgOwor5oSI44CFID4gaXlvaXlvXCA7CivlhbXpi5IgPiBoZWlob3VcIDsKK+WHuuiKsSA+IGRlYmFuYVwgOwor5q2p5risID4gaG9zb2t1XCA7CivlhYjpoK0gPiBzZW50b3VcIDsKK+W6g+e4gSA+IGhpcm9lblwgOwor5rWq44CFID4gcm91cm91XCA7CivlipvmvJQgPiByaWtpZW5cIDsKK+mCquassiA+IGpheW9rdVwgOwor5b+D5ZyfID4gc2hpbmRvXCA7Civlvq7lppkgPiBiaW15b3VcIDsKK+W+hOW6rSA+IGtlaXRlaVwgOwor5Yil57SZID4gYmVzc2hpXCA7Civlv5zlj6wgPiBvdXNob3VcIDsKK+WHuuiIuSA+IGRlZnVuZVwgOwor6YW35YiRID4ga29ra2VpXCA7Civlv6vliIAgPiBrYWl0b3VcIDsKK+efs+ajuiA+IHNla2thblwgOwor5YWI6Z6tID4gc2VuYmVuXCA7Civlt6fpgYUgPiBrb3VjaGlcIDsKK+W6p+ekgSA+IHphc2hvdVwgOwor6YG454KtID4gc2VudGFuXCA7CivlvIHmuIggPiBiZW5zYWlcIDsKK+WNiuWkqSA+IGhhbnRlblwgOwor5b+X5ZCRID4gc2hpa291XCA7Civnm6PoppYgPiBrYW5zaGlcIDsKK+WHuuiHjSA+IGRlYmVzb1wgOwor5b235b6oID4gaG91a291XCA7CivljYrlpJwgPiBoYW4nJ3lhXCA7CivliLbnqbogPiBzZWlrdXVcIDsKK+WOn+S6uiA+IGdlbmppblwgOwor5YaN6LuiID4gc2FpdGVuXCA7CivlvaLmiJAgPiBrZWlzZWlcIDsKK+W4guiyqSA+IHNoaWhhblwgOwor5bee6YO9ID4gc2h1dXRvXCA7CivlhYnpm7sgPiBrb3VkZW5cIDsKK+ehneWuiSA+IHNob3VhblwgOwor5Yid57WMID4gc2hva2VpXCA7CivljYrlo4ogPiBoYW5rYWlcIDsKK+W8lOatjCA+IGNob3VrYVwgOwor6L+R6JGXID4ga2luY2hvXCA7CivokL3mrL4gPiByYWtrYW5cIDsKK+WIh+e+vSA+IGtpcmloYVwgOwor56Gd5a2QID4gZ2FyYXN1XCA7Civlubnnt5ogPiBrYW5zZW5cIDsKK+mDveW/gyA+IHRvc2hpblwgOwor56K65L+dID4ga2FrdWhvXCA7CivmrbPmrbMgPiBzYWlzYWlcIDsKK+WFhembuyA+IGp1dWRlblwgOwor5rGg5LqtID4gY2hpdGVpXCA7CivlhoXovKogPiB1Y2hpd2FcIDsKK+mBi+eUqCA+IHVuJyd5b3VcIDsKK+ebm+imsyA+IHNlaWthblwgOwor5Y2D5aScID4gc2VuJyd5YVwgOwor5bqP56ugID4gam9zaG91XCA7CivliLbnpqYgPiBzZWlneW9cIDsKK+WIhue9siA+IGJ1bnNob1wgOwor5b2i5oWLID4ga2VpdGFpXCA7CivnoazlpIkgPiBrb3VoZW5cIDsKK+WFiOmZoyA+IHNlbmppblwgOwor5rCX5ZynID4ga2lhdHN1XCA7Civlhazph5EgPiBrb3VraW5cIDsKK+mzpea4oSA+IGNob3R0b1wgOwor6YGF55WqID4gb3NvYmFuXCA7Civlipvms7MgPiByaWtpZWlcIDsKK+ato+ayuSA+IHNob3V5dVwgOwor5Y2w5YyjID4gaW5iYWtvXCA7CivljbPlirkgPiBzb2trb3VcIDsKK+iNt+iIuSA+IG5pYnVuZVwgOwor5bqD56+EID4ga291aGFuXCA7Civnn7PmnKggPiBpc2hpa2lcIDsKK+axn+S4iiA+IGtvdWpvdVwgOwor5Y2z5YqfID4gc29ra291XCA7CivnoqnlhJIgPiBzZWtpanVcIDsKK+iRl+abuCA+IGNob3Nob1wgOwor5bed6L66ID4ga2F3YWJlXCA7Civps6nmtL4gPiBoYXRvaGFcIDsKK+avjeW+oSA+IGhhaGFnb1wgOwor6YSt5aOwID4gdGVpc2VpXCA7CivnoLLlvL4gPiBob3VkYW5cIDsKK+W9k+aJgCA+IHRvdXNob1wgOwor55ub6KOFID4gc2Vpc291XCA7CivoirPpppkgPiBob3Vrb3VcIDsKK+W/q+S+vyA+IGthaWJlblwgOwor5rC05YuiID4gc3Vpc2VpXCA7Civpg73luoEgPiB0b2Nob3VcIDsKK+WFremDqCA+IHJva3VidVwgOwor5q2i5rC0ID4gc2hpc3VpXCA7Civprq7pi60gPiBzZW4nJ2VpXCA7CivphZLlkI0gPiBzaHVtZWlcIDsKK+ebm+ihsCA+IHNlaXN1aVwgOwor5rCR5ZujID4gbWluZGFuXCA7CivoirjpoqggPiBnZWlmdXVcIDsKK+W8puadkCA+IGdlbnphaVwgOwor5Yid562JID4gc2hvdG91XCA7CivlhazpgrggPiBrb3V0ZWlcIDsKK+WNsOWIuyA+IGlua29rdVwgOwor5Ymy54O5ID4ga2FwcG91XCA7Civok67lj7AgPiByZW5kYWlcIDsKK+ato+auvyA+IHNlaWRlblwgOwor5Yag6KmeID4ga2Fuc2hpXCA7Civlho3osqkgPiBzYWloYW5cIDsKK+WIh+e3miA+IHNlc3NlblwgOwor5Ymj54q2ID4ga2Vuam91XCA7CivljbXlhoYgPiByYW4nJ2VuXCA7CivphbfkvLwgPiBrb2t1amlcIDsKK+WIpeeoriA+IGJlc3NodVwgOwor552l552oID4gaGVpZ2VpXCA7CivokYnmn4QgPiB5b3VoZWlcIDsKK+iRl+aYjiA+IGNob21laVwgOwor5b6T5aeJID4ganV1c2hpXCA7CivmrrrmhI8gPiBzYXRzdWlcIDsKK+i+nuihqCA+IGppaHlvdVwgOwor5YWs6YG4ID4ga291c2VuXCA7CivlvpPlprkgPiBqdXVtYWlcIDsKK+WIqeemjyA+IHJpZnVrdVwgOwor5Y2g5Y+WID4gc2Vuc2h1XCA7Civmra/mp70gPiBzaGlzb3VcIDsKK+ecn+e+qSA+IHNoaW5naVwgOwor5q+O5bm0ID4gbWFpbmVuXCA7CivmrovmmpEgPiB6YW5zaG9cIDsKK+WFrOmBkyA+IGtvdWRvdVwgOwor5q2j5q2jID4gc2Vpc2VpXCA7CivlubPnsbMgPiBoZWliZWlcIDsKK+mFjeWQiCA+IGhhaWdvdVwgOwor5rC05YiGID4gc3VpYnVuXCA7CivnnJ/nvo4gPiBzaGluYmlcIDsKK+W5hOiIjiA+IGFrdXNoYVwgOwor6a2a6bGXID4gZ3lvcmluXCA7Civnn6Lmn4QgPiB5YWdhcmFcIDsKK+WFpemDqCA+IG55dXVidVwgOwor55+z5panID4gc2VraWZ1XCA7Civlhpfoq4cgPiBqb3VkYW5cIDsKK+awtOWGtyA+IHN1aXJlaVwgOwor5YW16LuKID4gaGVpc2hhXCA7Civnn67mmJ8gPiB3YWlzZWlcIDsKK+iSvOWkqSA+IHNvdXRlblwgOwor5YWo6YGTID4gemVuZG91XCA7Civlubznq6UgPiB5b3Vkb3VcIDsKK+i9n+i9nyA+IGdvdWdvdVwgOwor552h55ygID4gc3VpbWluXCA7Civlt6jos4cgPiBreW9zaGlcIDsKK+iRieabuCA+IGhhZ2FraVwgOwor5YWs6L66ID4ga291aGVuXCA7CivljIXluK8gPiBob3V0YWlcIDsKK+WOhOS7iyA+IHlha2thaVwgOwor5rCR5Za2ID4gbWluJydlaVwgOwor5YuH5patID4geXV1ZGFuXCA7Civli5Xmj7ogPiBkb3V5b3VcIDsKK+auv+W+oSA+IHRvbm9nb1wgOwor5rC05YW1ID4gc3VpaGVpXCA7CivljYHlm54gPiBqdWtrYWlcIDsKK+WNgeWbmyA+IGp1dXlvblwgOwor5beo6LKhID4ga3lvemFpXCA7CivljZTlkowgPiBreW91d2FcIDsKK+W5veeqkyA+IHl1dXNvdVwgOwor5bed6LevID4ga2F3YWppXCA7Civlt7foq4cgPiBrb3VkYW5cIDsKK+ebruiTiyA+IG1hYnV0YVwgOwor5YuH5pWiID4geXV1a2FuXCA7Civlt6josaEgPiBreW96b3VcIDsKK+aoqemBkyA+IGtlbmRvdVwgOwor5YaX6KiAID4gam91Z2VuXCA7Civnn63mlocgPiB0YW5idW5cIDsKK+asoOeJhyA+IGtha2VyYVwgOwor6YCj55ufID4gcmVubWVpXCA7CivlubznqJogPiB5b3VjaGlcIDsKK+W+jOWkqSA+IGtvdXRlblwgOwor5YW36LazID4gZ3Vzb2t1XCA7CivpsZfnsokgPiByaW5wdW5cIDsKK+WMluWtpiA+IGthZ2FrdVwgOwor6YG15rOVID4ganVucG91XCA7Civnmb3ph5EgPiBoYWtraW5cIDsKK+WFrOi7oiA+IGtvdXRlblwgOwor6YGp5ripID4gdGVraW9uXCA7CivljZfljYogPiBuYW5oYW5cIDsKK+mAuOeQgyA+IGlra3l1dVwgOwor6YWN5YmkID4gaGFpemFpXCA7CivnmofpgZMgPiBrb3Vkb3VcIDsKK+atr+aguSA+IHNoaWtvblwgOwor5Y2S5Y67ID4gc29ra3lvXCA7Civlho3oqpUgPiBzYWl0YW5cIDsKK+WFiOmLrSA+IHNlbicnZWlcIDsKK+mBuOawkSA+IHNlbm1pblwgOwor5biC6KGXID4gc2hpZ2FpXCA7Civltanpq5ggPiBzdXVrb3VcIDsKK+WFiOmLkiA+IHNlbnBvdVwgOwor55yf57a/ID4gbWF3YXRhXCA7CivmrKPnhLYgPiBraW56ZW5cIDsKK+W+jOWhtSA+IGtvdWppblwgOwor5YWo6LuNID4gemVuZ3VuXCA7CivpgIHnqL8gPiBzb3Vrb3VcIDsKK+WGt+iUtSA+IHJlaXpvdVwgOwor6YWN5YiGID4gaGFpYnVuXCA7Civlvqnlk6EgPiBmdWt1aW5cIDsKK+WHuue0jSA+IHN1aXRvdVwgOwor5Yem572uID4gc2hvY2hpXCA7Civlvpjlm54gPiBoYWlrYWlcIDsKK+i/t+etlCA+IG1laXRvdVwgOwor55m66YW1ID4gaGFra291XCA7Civlho3oqKogPiBzYWlob3VcIDsKK+W+jOWgsSA+IGtvdWhvdVwgOwor6I2J6JGJID4ga3VzYWJhXCA7CivlvanlsaQgPiBzYWlzb3VcIDsKK+W5tOeojiA+IG5lbnplaVwgOwor5YaN6KiCID4gc2FpdGVpXCA7Civoi5vphbcgPiBrYWtva3VcIDsKK+W8t+aJkyA+IGt5b3VkYVwgOwor6YKq5pWZID4gamFreW91XCA7Civnn6LmlocgPiB5YWJ1bWlcIDsKK+WGheirhyA+IG5haWRhblwgOwor5rCP5ZCNID4gc2hpbWVpXCA7CivlhbfosaEgPiBndXNob3VcIDsKK+ecn+e0hSA+IHNoaW5rdVwgOwor5Y2T5Yq5ID4gdGFra291XCA7CivoiabpvaIgPiBrYW5yZWlcIDsKK+WLpOaAoCA+IGtpbnRhaVwgOwor5Y2z5LuKID4gc29ra29uXCA7CivpgKPnlaogPiByZW5iYW5cIDsKK+W+tOWLnyA+IGNob3Vib1wgOwor6YKm5paHID4gaG91YnVuXCA7CivlvZPlupcgPiB0b3V0ZW5cIDsKK+asoOeCuSA+IGtldHRlblwgOwor5byK5p2RID4gaGVpc29uXCA7CivlvZPlubQgPiB0b3VuZW5cIDsKK+W5tOelrSA+IG5lbnNhaVwgOwor5b285aWzID4ga2Fub2pvXCA7CivmrbvmlpEgPiBzaGloYW5cIDsKK+iNt+e4hCA+IG5pbmF3YVwgOwor5q275paHID4gc2hpYnVuXCA7CivojY/oi5IgPiBqaW56ZW5cIDsKK+ats+aZqSA+IHNhaWJhblwgOwor5YyF5a65ID4gaG91eW91XCA7CivovrLoirggPiBub3VnZWlcIDsKK+W5tOekvCA+IG5lbnJlaVwgOwor5byU5peXID4gY2hvdWtpXCA7CivpgIDnpL4gPiB0YWlzaGFcIDsKK+WNiuWNiiA+IGhhbmhhblwgOwor5Yil55uDID4gYmVwcGFpXCA7CivpgY7mv4AgPiBrYWdla2lcIDsKK+WGheiokyA+IG5haWt1blwgOwor55qH6LuNID4ga291Z3VuXCA7CivlhoXoqIwgPiBuYWlrb3VcIDsKK+awtOS7mSA+IHN1aXNlblwgOwor6I2J6I2JID4gc291c291XCA7CivljbTkuIsgPiBreWFra2FcIDsKK+WLleaFiyA+IGRvdXRhaVwgOwor5YaN6KO9ID4gc2Fpc2VpXCA7CivmrbPmmJ8gPiBzYWlzZWlcIDsKK+W8t+aFoiA+IGdvdW1hblwgOwor5ben6KiAID4ga291Z2VuXCA7CivluIzoloQgPiBraWhha3VcIDsKK+WNmOWFgyA+IHRhbmdlblwgOwor6YGg5rWFID4gdG9vYXNhXCA7CivovYbovaQgPiByb2t1cm9cIDsKK+avkuWppiA+IGRva3VmdVwgOwor5q2z5pemID4gc2FpdGFuXCA7CivljZflhYkgPiBuYW5rb3VcIDsKK+WNgeWPsCA+IGp1dWRhaVwgOwor6YWN5YG2ID4gaGFpZ3V1XCA7CivlhoXoprMgPiBuYWlrYW5cIDsKK+eZuumAgSA+IGhhc3NvdVwgOwor5b6h5ZGKID4gb3RzdWdlXCA7CivlhoXopqcgPiBuYWlyYW5cIDsKK+mBoOa0iyA+IGVuJyd5b3VcIDsKK+W8vuaApyA+IGRhbnNlaVwgOwor5YaF6KaLID4gbmFpa2VuXCA7CivlvaLlrrkgPiBrZWl5b3VcIDsKK+mDqOWxniA+IGJ1em9rdVwgOwor5q2j5p2xID4gc2VpdG91XCA7CivlvLfmg4UgPiBnb3Vqb3VcIDsKK+WNg+WNgyA+IGNoaWRqaVwgOwor6L+R57iBID4ga2luJydlblwgOwor55yf566HID4gc2hpbmtvXCA7CivprZrpoZ4gPiBneW9ydWlcIDsKK+WLh+aIpiA+IHl1dXNlblwgOwor6baP5Y+jID4ga2Vpa291XCA7CivluLjnva4gPiBqb3VjaGlcIDsKK+WNkuWFiCA+IHNvc3NlblwgOwor5Ye656uvID4gZGViYW5hXCA7CivpgaDmsoggPiBlbmNoaW5cIDsKK+ato+acrCA+IHNlaWhvblwgOwor5q2j5pyoID4gbWFzYWtpXCA7CivlhajosowgPiB6ZW5ib3VcIDsKK+mDqOWwhiA+IGJ1c2hvdVwgOwor5YWI6YGjID4gc2Vua2VuXCA7CivnoavljJYgPiByeXV1a2FcIDsKK+mBoeaxgiA+IHNva3l1dVwgOwor55y85568ID4gZ2Fua2VuXCA7CivljYrliIYgPiBoYW5wdW5cIDsKK+WIhuekviA+IGJ1bnNoYVwgOwor5q2j5pu4ID4gc2Vpc2hvXCA7CivlhaXosrsgPiBueXV1aGlcIDsKK+efreaJgCA+IHRhbnNob1wgOwor5Y2I5Yi7ID4gZ29rb2t1XCA7CivnmbvovIkgPiB0b3VzYWlcIDsKK+W8iuaWuSA+IGhlaWhvdVwgOwor5Y2g5L2PID4gc2VuanV1XCA7Civlt6HopqcgPiBqdW5yYW5cIDsKK+awl+WEmCA+IGtpbWFtYVwgOwor5b+M5LitID4ga2ljaHV1XCA7CivlhoXoo4UgPiBuYWlzb3VcIDsKK+WLp+W3pSA+IGthbmtvdVwgOwor5b255aC0ID4geWFrdWJhXCA7CivprZTpoqggPiBtYWthemVcIDsKK+WHuueqkyA+IGRlbWFkb1wgOwor5b6M5ZejID4ga291c2hpXCA7Civnm67ohIIgPiBtZXlhbmlcIDsKK+W3oeimliA+IGp1bnNoaVwgOwor5Yqp5pWZID4gam9reW91XCA7CivphZLku5kgPiBzaHVzZW5cIDsKK+m2j+WNtSA+IGtlaXJhblwgOwor55yf56u5ID4gbWFkYWtlXCA7CivnnIvntYwgPiBrYW5raW5cIDsKK+W7uuadkCA+IGtlbnphaVwgOwor55m66LuKID4gaGFzc2hhXCA7CivmsJHlhbUgPiBtaW5wZWlcIDsKK+W+qeWIiiA+IGZ1a2thblwgOwor5Y2K5YaGID4gaGFuJydlblwgOwor5YuY5b2TID4ga2FuZG91XCA7CivlvIrmlL8gPiBoZWlzZWlcIDsKK+WMiOWltCA+IGt5b3Vkb1wgOwor6YWS5LmxID4gc2h1cmFuXCA7Civnm7LogIUgPiBtb3VzaGFcIDsKK+W7g+a2siA+IGhhaWVraVwgOwor55+H5pinID4gbW91bWFpXCA7Civlt6booaggPiBzYWh5b3VcIDsKK+mBhea7niA+IGNoaXRhaVwgOwor5YiA56S8ID4gdG91cmVpXCA7CivlvIHmmI4gPiBiZW5tZWlcIDsKK+W/g+S6iyA+IHNoaW5qaVwgOwor5YuY5byBID4ga2FuYmVuXCA7CivmrLLmsJcgPiB5b2t1a2VcIDsKK+efreaFriA+IHRhbnJ5b1wgOwor5Y2D5YiGID4gc2VuYnVuXCA7CivliqPmlZcgPiByZXBwYWlcIDsKK+avjuWklSA+IG1haXl1dVwgOwor56Cy5aOwID4gaG91c2VpXCA7CivlhYnovKogPiBrb3VyaW5cIDsKK+WNkuWAkiA+IHNvdHRvdVwgOwor5Y2Y5L2TID4gdGFudGFpXCA7Civnmb7otrMgPiBtdWthZGVcIDsKK+asp+a0siA+IG91c2h1dVwgOwor5YuF5oSPID4gY2hva3VpXCA7Civlhazoq5YgPiBrb3Vyb25cIDsKK+WNgeWIhiA+IGp1cHB1blwgOwor6a2a6Zu3ID4gZ3lvcmFpXCA7CivlhYjovKkgPiBzZW5wYWlcIDsKK+W5s+ebriA+IGhpcmFtZVwgOwor6YO35aOrID4gZ291c2hpXCA7CivmraTmlrkgPiBrb25hdGFcIDsKK+WJo+azlSA+IGtlbnBvdVwgOwor5b6u5YK3ID4gYmlzaG91XCA7CivojLbojLYgPiBjaGFjaGFcIDsKK+ato+aWuSA+IHNlaWhvdVwgOwor5q2m5pWZID4gYnVreW91XCA7Civliarmr5sgPiBzZW5tb3VcIDsKK+i+m+iLpiA+IHNoaW5rdVwgOwor6YWN5LmXID4gaGFpam91XCA7CivluILokawgPiBzaGlzb3VcIDsKK+efnOaMgSA+IGt5b3VqaVwgOwor6L6y6ICVID4gbm91a291XCA7CivljZHkv5cgPiBoaXpva3VcIDsKK+WNg+WGhiA+IHNlbicnZW5cIDsKK+WIneeUnyA+IHNob3NlaVwgOwor5YWs6KqNID4ga291bmluXCA7Civlt6HooYwgPiBqdW5rb3VcIDsKK+WMuuWKgyA+IGt1a2FrdVwgOwor5q2j5paHID4gc2VpYnVuXCA7CivlhazoqaYgPiBrb3VzaGlcIDsKK+awl+S+rSA+IGtpbWFtYVwgOwor5q2M5qC8ID4ga2FrYWt1XCA7Civlub3nlYwgPiB5dXVrYWlcIDsKK+ato+aVsCA+IHNlaXN1dVwgOwor5b6M5ZGzID4gYXRvYWppXCA7CivnoLLloZQgPiBob3V0b3VcIDsKK+ehneWMliA+IHNob3VrYVwgOwor5YW86KGMID4ga2Vua291XCA7CivlvLfluqYgPiBreW91ZG9cIDsKK+W9q+WhkSA+IGNob3Vzb1wgOwor5Y2B5YWoID4ganV1emVuXCA7CivlhazoqLEgPiBrb3VreW9cIDsKK+eZuui1sCA+IGhhc3NvdVwgOwor5Y2X5LqsID4gbmFua2luXCA7Civnn6Xmha4gPiBjaGlyeW9cIDsKK+atu+aJgCA+IHNoaXNob1wgOwor5bm855SfID4geW91c2VpXCA7CivpgZPmsJEgPiBkb3VtaW5cIDsKK+WNiuWApCA+IGhhbicnbmVcIDsKK+WFrOiogCA+IGtvdWdlblwgOwor5oK244CFID4gbW9ubW9uXCA7Civov5TnrZQgPiBoZW50b3VcIDsKK+iMtuiJsiA+IGNoYWlyb1wgOwor5qip6KyAID4ga2VuYm91XCA7Civpto/lhqAgPiB0b3Nha2FcIDsKK+eZvuiyqCA+IGh5YWtrYVwgOwor5bu75paHID4ga2FpYnVuXCA7Civli4Hmgo0gPiBrZWlrYW5cIDsKK+WFg+i7jSA+IGdlbmd1blwgOwor5Y2B5YSEID4ganV1b2t1XCA7CivlvJXmiYsgPiBoaWtpdGVcIDsKK+W9ouWjsCA+IGtlaXNlaVwgOwor6a2U6ZqcID4gbWFzaG91XCA7CivliIfnm64gPiBraXJlbWVcIDsKK+W8leaIuCA+IGhpa2lkb1wgOwor6Luf6aKoID4gbmFucHV1XCA7CivlubjnlJogPiBrb3VqaW5cIDsKK+W+heWRvSA+IHRhaW1laVwgOwor55y855WMID4gZ2Fua2FpXCA7CivojLboh7wgPiBjaGF1c3VcIDsKK+mBuOabuCA+IHNlbnNob1wgOwor6Iux6KizID4gZWl5YWt1XCA7Civou6Lpn7MgPiB0ZW4nJ29uXCA7CivmrovlvbEgPiB6YW4nJ2VpXCA7CivlvozljYogPiBrb3VoYW5cIDsKK+iKs+mGhyA+IGhvdWp1blwgOwor5bm055SjID4gbmVuc2FuXCA7CivlubTnlJ8gPiBuZW5zZWlcIDsKK+WNg+WAjSA+IHNlbmJhaVwgOwor5buD5q6LID4gaGFpemFuXCA7Civoia/ppqwgPiByeW91YmFcIDsKK+W+k+WJjSA+IGp1dXplblwgOwor5bmz55SfID4gaGVpemVpXCA7Civpg7flnJ8gPiBreW91ZG9cIDsKK+mBiuawkSA+IHl1dW1pblwgOwor6JGb5biDID4ga3V6dWZ1XCA7Civlu4PmraIgPiBoYWlzaGlcIDsKK+i8qui7oiA+IHJpbnRlblwgOwor5biG6Ii5ID4gaG9idW5lXCA7CivljYHlgI0gPiBqdXViYWlcIDsKK+efpeaApyA+IGNoaXNlaVwgOwor5Ymb5q+bID4gZ291bW91XCA7Civmr47lm54gPiBtYWlrYWlcIDsKK+avjeWbvSA+IGJva29rdVwgOwor5rCR5Lq6ID4gbWluamluXCA7CivnnJ/noIIgPiBtYXNhZ29cIDsKK+WKqeaJiyA+IHN1a2V0ZVwgOwor5q2i5o+aID4gc2hpeW91XCA7Civlub3njoQgPiB5dXVnZW5cIDsKK+iKuOmBkyA+IGdlaWRvdVwgOwor5YWI6LOiID4gc2Vua2VuXCA7CivliqDmjK8gPiBrYXNoaW5cIDsKK+ebm+iAhSA+IGpvdXNoYVwgOwor5b255ZOhID4geWFrdWluXCA7Civlvq7kubMgPiBiaW55dXVcIDsKK+ecjOeojiA+IGtlbnplaVwgOwor5biz57C/ID4gY2hvdWJvXCA7Civpgqrlv4MgPiBqYXNoaW5cIDsKK+WEqumBhyA+IHl1dWd1dVwgOwor55+z5belID4gc2Vra291XCA7CivlhoXolLUgPiBuYWl6b3VcIDsKK+iIuem9oiA+IHNlbnJlaVwgOwor5rCR5Li7ID4gbWluc2h1XCA7CivliJ3niq8gPiBzaG9oYW5cIDsKK+W+jOWIuyA+IGdva29rdVwgOwor5q6/5aCCID4gZGVuZG91XCA7CivlvqnkuqQgPiBmdWtrb3VcIDsKK+W6tuawkSA+IHNob21pblwgOwor556s5pmCID4gc2h1bmppXCA7CivlhKrpgIAgPiB5dXV0YWlcIDsKK+WHueebriA+IGt1Ym9tZVwgOwor5b6T5YWEID4ganV1a2VpXCA7CivliqPmiY0gPiByZXNzYWlcIDsKK+WNg+S7rSA+IHNlbmppblwgOwor5YiG55WMID4gYnVua2FpXCA7CivljYPku54gPiBzZW5qaW5cIDsKK+i8qui3nSA+IHJpbmt5b1wgOwor6Imm6aaWID4ga2Fuc2h1XCA7Civov5TnpLwgPiBoZW5yZWlcIDsKK+WIgOeXlSA+IHRvdWtvblwgOwor5Yid54mIID4gc2hvaGFuXCA7Civps7TmiLggPiBuYXJ1dG9cIDsKK+WNgeS7oyA+IGp1dWRhaVwgOwor5YuY5a6aID4ga2Fuam91XCA7CivlhoXokpkgPiBuYWltb3VcIDsKK+ebruezniA+IG1la3Vzb1wgOwor5bqn5rW0ID4gemF5b2t1XCA7CivmqJnoqp4gPiBoeW91Z29cIDsKK+eZveipsSA+IGhha3V3YVwgOwor5Yik54S2ID4gaGFuemVuXCA7CivnoILlrZAgPiBzdW5hZ29cIDsKK+W8geaJjSA+IGJlbnNhaVwgOwor5oKg44CFID4geXV1eXV1XCA7CivmqKnooaEgPiBrZW5rb3VcIDsKK+WKtOW9uSA+IHJvdWVraVwgOwor6IyX6I23ID4gbXlvdWdhXCA7Civnm67nsaAgPiBtZWthZ29cIDsKK+edgOeJqSA+IGtpbW9ub1wgOwor6LuK6aKoID4gc2hhZnV1XCA7CivmqJnoqJggPiBoeW91a2lcIDsKK+msmumrryA+IHNodXplblwgOwor5YmN5q61ID4gemVuZGFuXCA7Civpga7mlq0gPiBzaGFkYW5cIDsKK+iMjuiRiSA+IGtlaXlvdVwgOwor6YGp5pmCID4gdGVraWppXCA7CivluKvnr4QgPiBzaGloYW5cIDsKK+iNiee0mSA+IHNvdXNoaVwgOwor6JC95b6MID4gcmFrdWdvXCA7Civnm7LnrqEgPiBtb3VrYW5cIDsKK+WNgeS4iSA+IGp1dXNhblwgOwor5Y2B5LiHID4ganV1bWFuXCA7Civmr5LlkbMgPiBkb2t1bWlcIDsKK+iRieW3uyA+IGhhbWFraVwgOwor5biC6IKGID4gc2hpc2hpXCA7CivlvLXlrZAgPiBoYXJpa29cIDsKK+efs+WxiyA+IGlzaGl5YVwgOwor5b6h5Li7ID4gb251c2hpXCA7Civpg73lkIggPiB0c3Vnb3VcIDsKK+W5u+eHiCA+IGdlbnRvdVwgOwor5b6h5LitID4gb25jaHV1XCA7CivoirHovKogPiBoYW5hd2FcIDsKK+W8geaFtiA+IGJlbmtlaVwgOwor5YWN6KixID4gbWVua3lvXCA7CivlubLniq8gPiBrYW5wYW5cIDsKK+WJquaenSA+IHNlbnNoaVwgOwor6Iqx6Lu4ID4ga2FqaWt1XCA7Civlub3nhLYgPiB5dXV6ZW5cIDsKK+WHueeUsCA+IGt1Ym90YVwgOwor6Ium6KG3ID4ga3VjaHV1XCA7CivnmbroposgPiBoYWtrZW5cIDsKK+WFjuinkiA+IHRva2FrdVwgOwor5b2T5ZywID4gdG91Y2hpXCA7CivlubLniakgPiBoaW1vbm9cIDsKK+W5s+eJiCA+IGhlaWhhblwgOwor6Ium6KGMID4ga3VneW91XCA7Civpr6johIIgPiBnZWlzaGlcIDsKK+WGjeiIiCA+IHNhaWtvdVwgOwor6JC95bqmID4gb2NoaWRvXCA7CivnoLLlj7AgPiBob3VkYWlcIDsKK+WGjeiHqCA+IHNhaXJpblwgOwor56Cy5Y+jID4gaG91a291XCA7CivnnJ/nlLAgPiBzYW5hZGFcIDsKK+WKqeW9uSA+IGpveWFrdVwgOwor5q+O5Y+3ID4gbWFpZ291XCA7CivliqPmgKcgPiByZXNzZWlcIDsKK+ebruesiiA+IG1lemFydVwgOwor5q2v5b2iID4gaGFnYXRhXCA7CivlvL7lpY8gPiBkYW5zb3VcIDsKK+WMheWQqyA+IGhvdWdhblwgOwor5buD5qChID4gaGFpa291XCA7Civlvozkvr8gPiBrb3ViaW5cIDsKK+mBuOaMmSA+IHNlbmt5b1wgOwor5YyN5YyQID4gaG9mdWt1XCA7Civpg4rlpJYgPiBrb3VnYWlcIDsKK+W8t+WnpiA+IGdvdWthblwgOwor55m96KGjID4gYnlha3VlXCA7CivliZbmpJwgPiBib3VrZW5cIDsKK+W3qOiJpiA+IGt5b2thblwgOwor6YCy5q2pID4gc2hpbnBvXCA7Civlh6HnnLwgPiBib25nYW5cIDsKK+WDp+mWgCA+IHNvdW1vblwgOwor6L+U55uDID4gaGVucGFpXCA7Civlt6XoirggPiBrb3VnZWlcIDsKK+i7jemaiiA+IGd1bnRhaVwgOwor6L+R55yMID4ga2lua2VuXCA7CivokL3lt64gPiByYWt1c2FcIDsKK+W5u+eBryA+IGdlbnRvdVwgOwor5beo6Ii5ID4ga3lvc2VuXCA7CivpsZfnirYgPiByaW5qb3VcIDsKK+WGheiIqiA+IG5haWtvdVwgOwor5YWI6KaLID4gc2Vua2VuXCA7Civou43pmaMgPiBndW5qaW5cIDsKK+i8quismyA+IHJpbmtvdVwgOwor5q6L5a2YID4gemFuem9uXCA7CivnnYDngasgPiBjaGFra2FcIDsKK+W5s+eEtiA+IGhlaXplblwgOwor5YiH54mHID4gc2VwcGVuXCA7CivnmbrooYwgPiBoYWtrb3VcIDsKK+WMl+WFiSA+IGhva2tvdVwgOwor5q2m5b6zID4gYnV0b2t1XCA7CivnnInnm64gPiBiaW1va3VcIDsKK+eciOeciCA+IHRhbnRhblwgOwor55y854K5ID4gZ2FudGVuXCA7Civli5XlpKkgPiBkb3V0ZW5cIDsKK+WKn+W+syA+IGt1ZG9rdVwgOwor5b6M5Lu7ID4ga291bmluXCA7Civlu4PmnZAgPiBoYWl6YWlcIDsKK+WGheiHkyA+IG5haXpvdVwgOwor5b6M5Lu2ID4ga291a2VuXCA7CivoiabpmoogPiBrYW50YWlcIDsKK+iLl+ijlCA+IGJ5b3VlaVwgOwor5Yqg5b25ID4ga2F5YWt1XCA7CivpgbjmiYsgPiBzZW5zaHVcIDsKK+W+jOS7oyA+IGtvdWRhaVwgOwor6bGX54mHID4gcmlucGVuXCA7CivlvIrlupcgPiBoZWl0ZW5cIDsKK+ecn+eQhiA+IHNoaW5yaVwgOwor5YiD54mpID4gaGFtb25vXCA7CivlhJXovKkgPiBzYWloYWlcIDsKK+earuiGnCA+IGhpbWFrdVwgOwor5b6M5Lq6ID4ga291amluXCA7CivlvbnlhIAgPiB5YWt1Z2lcIDsKK+ecn+ePoCA+IHNoaW5qdVwgOwor5ZCm44CFID4gaXlhaXlhXCA7Civliarmlq0gPiBzZW5kYW5cIDsKK+WFrOiRrCA+IGtvdXNvdVwgOwor56CC5aC0ID4gc3VuYWJhXCA7CivlvIHlvZMgPiBiZW50b3VcIDsKK+WGheiFlCA+IG5haWtvdVwgOwor6YCT5ribID4gdGVpZ2VuXCA7Civlt6HoiKogPiBqdW5rb3VcIDsKK+W+gOS/oSA+IG91c2hpblwgOwor6LuN6ZaAID4gZ3VubW9uXCA7CivluqfmqJkgPiB6YWh5b3VcIDsKK+ato+W9kyA+IHNlaXRvdVwgOwor6I2S56WeID4ga291amluXCA7CivprZrpgZMgPiBneW9kb3VcIDsKK+atu+WxjSA+IHNoaXNoaVwgOwor6ImH6aaWID4gdGVpc2h1XCA7CivpgqrlrpcgPiBqYXNodXVcIDsKK+ato+W8piA+IHNlaWdlblwgOwor6I2J56i/ID4gc291a291XCA7Civli4flp78gPiB5dXVzaGlcIDsKK+WGjeiAgyA+IHNhaWtvdVwgOwor5YiG54WZID4gYnVuJydlblwgOwor5qyg5pysID4ga2VwcG9uXCA7CivlvozkuJYgPiBrb3VzZWlcIDsKK+WFiOihjCA+IHNlbmtvdVwgOwor6Luf6Yu8ID4gbmFua291XCA7Civmr47liIYgPiBtYWlmdW5cIDsKK+WItuatoiA+IHNlaXNoaVwgOwor6YO15Yi4ID4geXV1a2VuXCA7CivojZLno68gPiBhcmFpc29cIDsKK+i7vei8qSA+IGtlaWhhaVwgOwor6I+v5pePID4ga2F6b2t1XCA7CivlvaLli6IgPiBrZWlzZWlcIDsKK+ani+mAoCA+IGtvdXpvdVwgOwor6JGX5aSnID4gY2hvZGFpXCA7Civlh7rniakgPiBkZW1vbm9cIDsKK+iMheiIjiA+IGJvdXNoYVwgOwor5bqn5qWtID4gemFneW91XCA7Civli53lm6AgPiBzaG91aW5cIDsKK+eZveiZuSA+IGhha2tvdVwgOwor55qu6IKJID4gaGluaWt1XCA7CivliY3moL0gPiBzZW56YWlcIDsKK+mrmOm9oiA+IGtvdXJlaVwgOwor56Cy5YW1ID4gaG91aGVpXCA7CivlhoXogZ4gPiBuYWlidW5cIDsKK+WIhueCuSA+IGJ1bnRlblwgOwor5q275a6IID4gc2hpc2h1XCA7CivlupXmraIgPiB0ZWlzaGlcIDsKK+WFteiIuSA+IGhlaXNlblwgOwor5Yil5rOVID4gYmVwcG91XCA7Civlh7jniYggPiB0b3BwYW5cIDsKK+WFq+iNkiA+IGhha2tvdVwgOwor6YCa5rCXID4gdHN1dWtpXCA7CivliqDlt54gPiBrYXNodXVcIDsKK+ato+W4vSA+IHNlaWJvdVwgOwor5YW16IiOID4gaGVpc2hhXCA7CivmraPluLggPiBzZWlqb3VcIDsKK+W7u+W7iiA+IGthaXJvdVwgOwor6YCf5q2pID4gc29rdWhvXCA7CivlubLmvZ8gPiBoaWdhdGFcIDsKK+i7vei6gSA+IGtlaXNvdVwgOwor6YGl5oudID4geW91aGFpXCA7CivpgYrmmJ8gPiB5dXVzZWlcIDsKK+iKuOirhyA+IGdlaWRhblwgOwor6YGO5paZID4ga2FyeW91XCA7Civli4flo64gPiB5dXVzb3VcIDsKK+WLh+WjqyA+IHl1dXNoaVwgOwor55uj56aBID4ga2Fua2luXCA7Civlt6fogIUgPiBrb3VzaGFcIDsKK+WEquirmiA+IHl1dWpvdVwgOwor6bOp5bqnID4gaGF0b3phXCA7Civnn63lpKcgPiB0YW5kYWlcIDsKK+W3pue/vCA+IHNheW9rdVwgOwor6Iy2562FID4gY2hhc2VuXCA7CivliY3mnb8gPiBtYWVpdGFcIDsKK+WDu+mBoCA+IGhla2llblwgOwor6auY6bqXID4ga291cmFpXCA7CivouqvpoIMgPiBtaWdvcm9cIDsKK+efs+WhiiA+IHNla2thaVwgOwor5YmN5p2hID4gemVuam91XCA7CivlhaXojbcgPiBueXV1a2FcIDsKK+W0h+mrmCA+IHN1dWtvdVwgOwor5Ymy5ougID4ga2Fra3lvXCA7CivlvLflm7ogPiBreW91a29cIDsKK+atk+W+hSA+IGthbnRhaVwgOwor5bmz5rqWID4gaGVpanVuXCA7CivoiLnpppYgPiBzZW5zaHVcIDsKK+W8n+WmuSA+IHRlaW1haVwgOwor55eb6aOyID4gdHN1dWluXCA7Civlir7lpY8gPiBnYWlzb3VcIDsKK+W5sua6gCA+IGthbm1hblwgOwor5YmN5pu4ID4gemVuc2hvXCA7Civlu7blubQgPiBlbicnbmVuXCA7Civnl4XprZQgPiBieW91bWFcIDsKK+W6g+axjiA+IGtvdWhhblwgOwor5Yip5qyyID4gcml5b2t1XCA7Civpg63lhawgPiBrYWtrb3VcIDsKK+WFrOiIjiA+IGtvdXNoYVwgOwor5bqt5pyoID4gbml3YWtpXCA7Civmpb3pn7MgPiBnYWt1b25cIDsKK+aui+WhgSA+IHphbnJ1aVwgOwor5YWl6IuRID4gbnl1dWVuXCA7Civoi6XokYkgPiB3YWthYmFcIDsKK+WHhueciyA+IGp1bmthblwgOwor5YaN57eoID4gc2FpaGVuXCA7Civlh43nmKEgPiB0b3Vzb3VcIDsKK+W4uOeUqCA+IGpvdXlvdVwgOwor5Yuy5YqfID4ga3Vua291XCA7CivlvIrlrrMgPiBoZWlnYWlcIDsKK+atpOWyuCA+IHNoaWdhblwgOwor5YWo6Ii5ID4gemVuc2VuXCA7CivlubPmt6EgPiBoZWl0YW5cIDsKK+WFqOiIrCA+IHplbnBhblwgOwor5YmN5pmvID4gemVua2VpXCA7CivpgaDmiJogPiBlbnNla2lcIDsKK+auuuWIsCA+IHNhdHRvdVwgOwor5Ye654GrID4gc2h1a2thXCA7Civnm67nm5sgPiBtZW1vcmlcIDsKK+iLpeiPnCA+IHdha2FuYVwgOwor5biG56uLID4gaG90YXRlXCA7Civpg6HliLYgPiBndW5zZWlcIDsKK+mDteS+vyA+IHl1dWJpblwgOwor6Lui6YCBID4gdGVuc291XCA7Civpgbflu7YgPiBzZW4nJ2VuXCA7CivmrablsIYgPiBidXNob3VcIDsKK+ebrueZvSA+IG1lamlyb1wgOwor5bq25pS/ID4gc2hvc2VpXCA7Civnm6rnm6ogPiB0b3V0b3VcIDsKK+WIneautSA+IHNob2RhblwgOwor5b2T5YidID4gdG91c2hvXCA7CivoiLnpoK0gPiBzZW5kb3VcIDsKK+W9k+WIhiA+IHRvdWJ1blwgOwor6YCx5pyfID4gc2h1dWtpXCA7Civpg47lkJsgPiByb3VrdW5cIDsKK+W8mOWkpyA+IGtvdWRhaVwgOwor6L+R54q2ID4ga2luam91XCA7Civlt6jnt6ggPiBreW9oZW5cIDsKK+aui+WcqCA+IHphbnpvblwgOwor6Iqx6KaLID4gaGFuYW1pXCA7Civmr4DlgrcgPiBraXNob3VcIDsKK+WGhee3miA+IG5haXNlblwgOwor5ben57e7ID4ga291Y2hpXCA7CivmrKDmkI0gPiBrZXNzb25cIDsKK+WGhee3kiA+IG5haXNob1wgOwor6YG35bm4ID4gc2Vua291XCA7CivliJHms5UgPiBrZWlob3VcIDsKK+mztOWtkCA+IG5hcnVrb1wgOwor5YmN5paHID4gemVuYnVuXCA7CivoiLfpoK0gPiBnZW50b3VcIDsKK+atpuWtpiA+IGJ1Z2FrdVwgOwor6YGj5oK2ID4ga2VubW9uXCA7Civlh7rmva4gPiBkZXNoaW9cIDsKK+W4reeUuyA+IHNla2lnYVwgOwor6YCG5q+bID4gc2FrYWdlXCA7Civpganlv5wgPiB0ZWtpb3VcIDsKK+mtmuiynSA+IGd5b2JhaVwgOwor6Iul6Iq9ID4gd2FrYW1lXCA7Civou6LovIkgPiB0ZW5zYWlcIDsKK+WGt+ecvCA+IHJlaWdhblwgOwor5Yuk5YuJID4ga2luYmVuXCA7CivlirHlo7AgPiByZWlzZWlcIDsKK+arm+avlCA+IHNoaXBwaVwgOwor6YCB5rC0ID4gc291c3VpXCA7Civli6TlirQgPiBraW5yb3VcIDsKK+W4gueojiA+IHNoaXplaVwgOwor56Cy5Li4ID4gaG91Z2FuXCA7Civmr43kubMgPiBib255dXVcIDsKK+i7oui7oiA+IHRlbnRlblwgOwor6YGU5oiQID4gdGFzc2VpXCA7CivlhoXntJsgPiBuYWlmdW5cIDsKK+WLv+S9kyA+IG1vdHRhaVwgOwor5YuY5ZCIID4ga2FuZ291XCA7CivojLbnopcgPiBjaGF3YW5cIDsKK+i7jemFjSA+IGd1bmJhaVwgOwor5bmz5rC0ID4gaGVpc3VpXCA7CivlvJjloLEgPiBrb3Vob3VcIDsKK+mzpeWxiyA+IHRvcml5YVwgOwor5qy+5b6FID4ga2FudGFpXCA7CivlubPmsJEgPiBoZWltaW5cIDsKK+W5s+awjyA+IGhlaXNoaVwgOwor55m+6IqxID4gaHlha2thXCA7CivpgKPmnp0gPiByZW5zaGlcIDsKK+avjeS4iiA+IGhhaGF1ZVwgOwor5YuV5ZCRID4gZG91a291XCA7Civnlr7pp4YgPiBzaGlra3VcIDsKK+WHvea4oCA+IGthbmt5b1wgOwor6L6y55SjID4gbm91c2FuXCA7CivliJHmrbsgPiBrZWlzaGlcIDsKK+alvOmWgCA+IHJvdW1vblwgOwor5YWs572yID4ga291c2hvXCA7CivnnpHmg7MgPiBtZWlzb3VcIDsKK+W5tOatryA+IG5lbnNoaVwgOwor6YCg5p6XID4gem91cmluXCA7CivoiLnpmoogPiBzZW50YWlcIDsKK+mBoOW/gyA+IGVuc2hpblwgOwor6Iub6IubID4gaXJhaXJhXCA7CivlvLHlkbMgPiB5b3dhbWlcIDsKK+mBqeW6piA+IHRla2lkb1wgOwor5YmK5pGpID4gc2FrdW1hXCA7CivovKrolLUgPiByaW56b3VcIDsKK+W8vuWKviA+IGRhbmdhaVwgOwor6YGU5oSPID4gdGF0c3VpXCA7CivlupXmnKwgPiB0ZWlob25cIDsKK+WIsOadpSA+IHRvdXJhaVwgOwor55m66ImmID4gaGFra2FuXCA7CivliI7mrbsgPiBmdW5zaGlcIDsKK+i7jemBkyA+IGd1bmRvdVwgOwor5Ym15bu6ID4gc291a2VuXCA7CivliY3mj5AgPiB6ZW50ZWlcIDsKK+atu+WcsCA+IHNoaWNoaVwgOwor5Yas552AID4gZnV5dWdpXCA7CivpgKDmnKwgPiB6b3Vob25cIDsKK+eci+eCuSA+IGthbnRlblwgOwor5qyj5oeQID4ga2lua2FpXCA7CivoloTjgIUgPiB1c3V1c3VcIDsKK+WJjeaOsiA+IHplbmtlaVwgOwor5Yas55ygID4gdG91bWluXCA7CivnmbroiKogPiBoYWtrb3VcIDsKK+WLneWIqSA+IHNob3VyaVwgOwor5beo56+HID4ga3lvaGVuXCA7Civnmbvoh6ggPiB0b3VyaW5cIDsKK+i7iumBkyA+IHNoYWRvdVwgOwor5by35YyWID4ga3lvdWthXCA7CivmraPlprsgPiBzZWlzYWlcIDsKK+i+m+ebriA+IGthcmFtZVwgOwor5YuV5YuiID4gZG91c2VpXCA7Civnl7TpiI0gPiBjaGlkb25cIDsKK+iRl+WQjSA+IGNob21laVwgOwor5q6L5ZOBID4gemFucGluXCA7CivlurjmiY0gPiB5b3VzYWlcIDsKK+WLleWKtCA+IGRvdXJvdVwgOwor6LuS6LyKID4ga2VuY2hpXCA7CivlhYnoipIgPiBrb3Vib3VcIDsKK+W4r+eKtiA+IG9iaWpvdVwgOwor6Ium6IKJID4ga3VuaWt1XCA7Civps7Plo7AgPiBob3VzZWlcIDsKK+mAo+aYnyA+IHJlbnNlaVwgOwor55qH6ICDID4ga291a291XCA7Civnm67njokgPiBtZWRhbWFcIDsKK+mrmOmosCA+IGtvdXRvdVwgOwor6Iy255uGID4gY2hhYm9uXCA7Civpg47lhZogPiByb3Vkb3VcIDsKK+W4g+efsyA+IGZ1c2VraVwgOwor6Iel6b6NID4gZ2FyeW91XCA7CivlvIHlpKkgPiBiZW50ZW5cIDsKK+WIh+atryA+IHNlc3NoaVwgOwor6Lu96KaWID4ga2Vpc2hpXCA7Civnn63lkb0gPiB0YW5tZWlcIDsKK+W3o+eusSA+IHN1YmFrb1wgOwor5q6/5LiKID4gdGVuam91XCA7CivoiLfploAgPiBnZW5tb25cIDsKK+mBuOWumiA+IHNlbnRlaVwgOwor5YuH5ZCNID4geXV1bWVpXCA7CivmraPlpKcgPiBzZWlkYWlcIDsKK+mrkemrjyA+IGRva3Vyb1wgOwor5Yip5pytID4gcmlmdWRhXCA7Civpgbflrq4gPiBzZW5ndXVcIDsKK+i7ouiyuCA+IHRlbnRhaVwgOwor5bm95qOyID4geXV1c2VpXCA7Civmra/lnqIgPiBzaGlrb3VcIDsKK+W8geWjqyA+IGJlbnNoaVwgOwor6YGT5b+1ID4gZG91bmVuXCA7CivnnrPlrZQgPiBkb3Vrb3VcIDsKK+ees+WtkCA+IGRvdXNoaVwgOwor5q2v5Z6LID4gaGFnYXRhXCA7CivlvZPku6MgPiB0b3VkYWlcIDsKK+W6iuacuiA+IHNob3VnaVwgOwor5Yil5p2vID4gYmVwcGFpXCA7CivlhYjoiKwgPiBzZW5wYW5cIDsKK+W9k+S7iiA+IHRvdWtvblwgOwor5Yuk5YC5ID4ga2lua2VuXCA7CivliZvmg4UgPiBnb3Vqb3VcIDsKK+W9k+S6uiA+IHRvdW5pblwgOwor6YG15a6IID4ganVuc2h1XCA7Civou4rovKogPiBzaGFyaW5cIDsKK+WIneagoSA+IHNob2tvdVwgOwor6LuN6LuKID4gZ3Vuc2hhXCA7CivmrYzlraYgPiBrYWdha3VcIDsKK+mAo+aVlyA+IHJlbnBhaVwgOwor5YWo57eoID4gemVucGVuXCA7CivlupXmlbAgPiB0ZWlzdXVcIDsKK+WHuuawtCA+IGRlbWl6dVwgOwor5YWo57eaID4gemVuc2VuXCA7Civou73oo4UgPiBrZWlzb3VcIDsKK+i6q+mKrSA+IG1pemVuaVwgOwor6Imm6LyJID4ga2Fuc2FpXCA7Civlgo3poYwgPiBib3VkYWlcIDsKK+mBleW8jyA+IGlzaGlraVwgOwor5bqD5p2xID4ga2FudG9uXCA7CivluIPnm64gPiBudW5vbWVcIDsKK+WFuOevhCA+IHRlbnBhblwgOwor5b2T5Li7ID4gdG91c2h1XCA7Civnl4XpmaIgPiBieW91aW5cIDsKK+mAgeaknCA+IHNvdWtlblwgOwor5bOw6aCtID4gaG91dG91XCA7Civnn6Xlkb0gPiBjaGltZWlcIDsKK+W5veagliA+IHl1dXNlaVwgOwor55uX55SoID4gdG91eW91XCA7CivliZvmgKcgPiBnb3VzZWlcIDsKK+aso+W/qyA+IGtpbmthaVwgOwor5b2T5LiWID4gdG91c2VpXCA7CivlhavntJggPiBoYWtrb3VcIDsKK+WLieWKsSA+IGJlbnJlaVwgOwor6YCf5pS7ID4gc29ra291XCA7Civlh7rmrrsgPiBkZWdhcmFcIDsKK+WFjuiCiSA+IHRvbmlrdVwgOwor55yg5rCXID4gbmVtdWtlXCA7CivojLbnlaogPiBjaGFiYW5cIDsKK+ecn+awtCA+IG1hbWl6dVwgOwor5bem56iLID4gc2Fob2RvXCA7CivliIbmqKkgPiBidW5rZW5cIDsKK+mrmOmiqCA+IGtvdWZ1dVwgOwor55+l5ZCNID4gY2hpbWVpXCA7Civlt6XnqIsgPiBrb3V0ZWlcIDsKK+W5veaelyA+IHl1dXJpblwgOwor6L+U5riIID4gaGVuc2FpXCA7CivlhajntJkgPiB6ZW5zaGlcIDsKK+WGrOeTnCA+IHRvdWdhblwgOwor5q6K5YuyID4gc2h1a3VuXCA7CivlhYnog4wgPiBrb3VoYWlcIDsKK+i7jOi3oSA+IGtpc2VraVwgOwor5byx5YagID4gamFra2FuXCA7CivlvL7lgIkgPiBkYW5zb3VcIDsKK+efpeWPiyA+IGNoaXl1dVwgOwor5Yqg5ZynID4ga2FhdHN1XCA7CivojLbnk7YgPiBjaGFiaW5cIDsKK+mAo+aQuiA+IHJlbmtlaVwgOwor5Yid5pu0ID4gc2hva291XCA7CivliKnmlbUgPiByaXRla2lcIDsKK+WIpOaYjiA+IGhhbm1laVwgOwor5q275ZG9ID4gc2hpbWVpXCA7CivpganlrpwgPiB0ZWtpZ2lcIDsKK+auiuWKnyA+IHNodWtvdVwgOwor5byl5YuSID4gbWlyb2t1XCA7CivlhqXnlYwgPiBtZWlrYWlcIDsKK+iKreiViSA+IGJhc2hvdVwgOwor6YGL5byTID4gdW5reXV1XCA7CivliaPluK8gPiBrZW50YWlcIDsKK+mAgOagoSA+IHRhaWtvdVwgOwor6auY6Z+zID4gdGFrYW5lXCA7Civoia/osqggPiByeW91a2FcIDsKK+WFteerryA+IGhlaXRhblwgOwor55+t5YmjID4gdGFua2VuXCA7CivlhYjogZYgPiBzZW5zZWlcIDsKK+WFqOexsyA+IHplbmJlaVwgOwor55uy54K5ID4gbW91dGVuXCA7CivliKTmlq0gPiBoYW5kYW5cIDsKK+WFteermSA+IGhlaXRhblwgOwor5q2T5aOwID4ga2Fuc2VpXCA7CivmrL3lrpogPiBraW50ZWlcIDsKK+mAj+aYjiA+IHRvdW1laVwgOwor6YeN44CFID4ganV1anV1XCA7Civou5/oq5YgPiBuYW5yb25cIDsKK+mCuOWGhSA+IHRlaW5haVwgOwor55qH57WxID4ga291dG91XCA7Civov5HmtbcgPiBraW5rYWlcIDsKK+WFjee9qiA+IG1lbnphaVwgOwor5buD5bidID4gaGFpdGVpXCA7CivlhYjogIMgPiBzZW5rb3VcIDsKK+efreWIgCA+IHRhbnRvdVwgOwor5YuY5L6LID4ga2FucmVpXCA7CivlhaznrpcgPiBrb3VzYW5cIDsKK+iIjOmgrSA+IHpldHRvdVwgOwor6YG45aSWID4gc2VuZ2FpXCA7CivmrbvljrsgPiBzaGlreW9cIDsKK+i7jeizhyA+IGd1bnNoaVwgOwor5qyn5beeID4gb3VzaHV1XCA7CivlvJXlkIggPiBoaWtpYWlcIDsKK+W5veaZryA+IHl1dWtlaVwgOwor6YGK5bqVID4geXV1dGVpXCA7Civnn6Xli4cgPiBjaGl5dXVcIDsKK+efqeWJhyA+IGt1c29rdVwgOwor5beh56S8ID4ganVucmVpXCA7CivpgbXlpYkgPiBqdW5wb3VcIDsKK+W5tOadpSA+IG5lbnJhaVwgOwor5Yid5pesID4gc2hvanVuXCA7CivlubPmnb8gPiBoZWliYW5cIDsKK+WEgOihqCA+IGdpaHlvdVwgOwor5q2O5aOwID4gdGFuc2VpXCA7Civlhajnr4cgPiB6ZW5wZW5cIDsKK+WFteeoriA+IGhlaXNodVwgOwor5beo56CyID4ga3lvaG91XCA7CivnmobntI0gPiBrYWlub3VcIDsKK+iHs+mrmCA+IHNoaWtvdVwgOwor5bm95piOID4geXV1bWVpXCA7CivmrovlhZogPiB6YW50b3VcIDsKK+asoeW4rSA+IGppc2VraVwgOwor5q2M5aOwID4gdXRhZ29lXCA7CivmqKHntKIgPiBtb3Nha3VcIDsKK+aui+WFiSA+IHphbmtvdVwgOwor5YuV5L2TID4gZG91dGFpXCA7CivlhYPogIEgPiBnZW5yb3VcIDsKK+murue0hSA+IHNlbmtvdVwgOwor5Ymv5a6YID4gZnVra2FuXCA7CivoirPojYkgPiBob3Vzb3VcIDsKK+ecn+aoqiA+IG1heW9rb1wgOwor5YWr56uvID4gaGF0dGFuXCA7Civlt6fnn6UgPiBrb3VjaGlcIDsKK+WIhuagoSA+IGJ1bmtvdVwgOwor6YCj5oqVID4gcmVudG91XCA7CivlhbjnpLwgPiB0ZW5yZWlcIDsKK+ebl+eKryA+IHRvdWhhblwgOwor5by+5Li4ID4gZGFuZ2FuXCA7CivmrYzlooMgPiBrYWt5b3VcIDsKK+WGmeeUnyA+IHNoYXNlaVwgOwor5q6L5YOPID4gemFuem91XCA7CivlirTli5UgPiByb3Vkb3VcIDsKK+atqeWTqCA+IGhvc2hvdVwgOwor55yM5rCRID4ga2VubWluXCA7Civli4flgaUgPiB5dXVrZW5cIDsKK+WGl+eUqCA+IGpvdXlvdVwgOwor5Ymq5a6aID4gc2VudGVpXCA7CivliaPlsbEgPiBrZW56YW5cIDsKK+WKtOWKnyA+IHJvdWtvdVwgOwor6YCj5oimID4gcmVuc2VuXCA7CivlhrfnhLYgPiByZWl6ZW5cIDsKK+egguS4mCA+IHNha3l1dVwgOwor5YuV5LmxID4gZG91cmFuXCA7CivliLbmhrIgPiBzZWlrZW5cIDsKK+W8k+WLoiA+IHl1bnplaVwgOwor5YaF55yBID4gbmFpc2VpXCA7Civlu4PlsbEgPiBoYWl6YW5cIDsKK+WJjeW6rSA+IHplbnRlaVwgOwor5bmz5piOID4gaGVpbWVpXCA7CivmrbvliJEgPiBzaGlrZWlcIDsKK+WJteWniyA+IHNvdXNoaVwgOwor55yJ5q+bID4gbWF5dWdlXCA7CivpgKDmiJAgPiB6b3VzZWlcIDsKK+W3qOeblyA+IGt5b3RvdVwgOwor5buD5bGLID4gaGFpb2t1XCA7CivliIfmm78gPiBzZXR0YWlcIDsKK+WFrOengSA+IGtvdXNoaVwgOwor5q275YemID4gc2hpc2hvXCA7CivpgIPmlaMgPiB0b3VzYW5cIDsKK+i6q+i7vSA+IG1pZ2FydVwgOwor5YWJ57eaID4ga291c2VuXCA7Civlu6PloLEgPiBrb3Vob3VcIDsKK+efouWFiCA+IHlhc2FraVwgOwor5bmz5pa5ID4gaGVpaG91XCA7Civou43oq4cgPiBndW5kYW5cIDsKK+iPr+WuoiA+IGtha2FrdVwgOwor6YGO5bCRID4ga2FzaG91XCA7CivpgY7lsI8gPiBrYXNob3VcIDsKK+W5tOaVsCA+IG5lbnN1dVwgOwor5q2j5ZGzID4gc2hvdW1pXCA7CivpgIDmlaMgPiB0YWlzYW5cIDsKK+WFrOekviA+IGtvdXNoYVwgOwor6Iq46IO9ID4gZ2Vpbm91XCA7CivpgKPmg7MgPiByZW5zb3VcIDsKK+WGjeeUnyA+IHNhaXNlaVwgOwor5q6L5L2ZID4gemFuJyd5b1wgOwor6YGO5a6iID4ga2FrYWt1XCA7CivpgaPlpJYgPiBrZW5nYWlcIDsKK+WGoOeKtiA+IGthbmpvdVwgOwor5qyh5bCGID4gamlzaG91XCA7CivlvIHlj6MgPiBiZW5rb3VcIDsKK+W5suaUryA+IGthbnNoaVwgOwor55qT56SsID4ga291YmFuXCA7CivmraPlj7cgPiBzZWlnb3VcIDsKK+ato+WPsiA+IHNlaXNoaVwgOwor6Ium56yRID4ga3VzaG91XCA7CivlhajnpL4gPiB6ZW5zaGFcIDsKK+WIhuaYjiA+IGJ1bm1laVwgOwor5byT5YW3ID4ga3l1dWd1XCA7CivpgLLluqYgPiBzaGluZG9cIDsKK+eZjOiFqyA+IGdhbnNodVwgOwor5Yqj5YuiID4gcmVzc2VpXCA7CivlirTlg40gPiByb3Vkb3VcIDsKK+efruS6uiA+IHdhaWppblwgOwor5bu75ZCRID4ga2Fpa291XCA7CivojZLmtbcgPiBhcmF1bWlcIDsKK+mztOWLlSA+IG1laWRvdVwgOwor5YaF55WMID4gbmFpa2FpXCA7CivluqfluK0gPiB6YXNla2lcIDsKK+ato+WNlyA+IHNlaW5hblwgOwor6Iq46ICFID4gZ2Vpc2hhXCA7CivpgYrlrZAgPiB5dXVzaGlcIDsKK+ato+WNiCA+IHNob3Vnb1wgOwor5YaF55SoID4gbmFpeW91XCA7CivliKXmh4cgPiBiZWtrb25cIDsKK+WItuW+oSA+IHNlaWd5b1wgOwor5YiG5pWwID4gYnVuc3V1XCA7CivliIbmlaMgPiBidW5zYW5cIDsKK+WEquiAhSA+IHl1dXNoYVwgOwor55m756ysID4gdG91ZGFpXCA7Civmra/lhqAgPiBzaGlrYW5cIDsKK+WGjeePviA+IHNhaWdlblwgOwor5bq35a+nID4ga291bmVpXCA7Civlhaznn6UgPiBrb3VjaGlcIDsKK+WKn+WKtCA+IGtvdXJvdVwgOwor5qyE5bmyID4gcmFua2FuXCA7CivliJfmjJkgPiByZWtreW9cIDsKK+WJjeWxsSA+IHplbnphblwgOwor5byl5LmFID4gYmlreXV1XCA7Civnmbrnq68gPiBob3R0YW5cIDsKK+WIneaIpiA+IHNob3NlblwgOwor6LuN6KOFID4gZ3Vuc291XCA7CivliKXmhI8gPiBiZXRzdWlcIDsKK+WHuuaZgiA+IGRlZG9raVwgOwor6YCj5by+ID4gcmVuZGFuXCA7Civlhajnn6UgPiB6ZW5jaGlcIDsKK+efpeS6uiA+IGNoaWppblwgOwor6Iyr54S2ID4gYm91emVuXCA7CivovJTnv7wgPiBob3lva3VcIDsKK+i+suazlSA+IG5vdWhvdVwgOwor5q2M5ZSxID4ga2FzaG91XCA7CivliKnmga8gPiByaXNva3VcIDsKK+W6nOW6gSA+IGZ1Y2hvdVwgOwor55yf5pqXID4gbWFrdXJhXCA7CivlurblrZAgPiBzaG9zaGlcIDsKK+iPr+WloiA+IGt5YXNoYVwgOwor6Iez6ZujID4gc2hpbmFuXCA7Civlh43mrbsgPiB0b3VzaGlcIDsKK+WKtOS9vyA+IHJvdXNoaVwgOwor5buJ5aOyID4gcmVuYmFpXCA7CivpgKDlvaIgPiB6b3VrZWlcIDsKK+atu+S9kyA+IHNoaXRhaVwgOwor6YCi5byVID4gYWliaWtpXCA7CivlgZzpoJMgPiB0ZWl0b25cIDsKK+eZvuenkSA+IGh5YWtrYVwgOwor6YG65ZGKID4geXVpZ291XCA7Civlh73mlbAgPiBrYW5zdXVcIDsKK+WGt+a3oSA+IHJlaXRhblwgOwor6YCG5omLID4gc2FrYXRlXCA7CivnnJ/mmLwgPiBtYWhpcnVcIDsKK+WHuuaWuSA+IGRla2F0YVwgOwor6YGT5aOrID4gZG91c2hpXCA7CivliY3lrpggPiB6ZW5rYW5cIDsKK+WJo+WjqyA+IGtlbnNoaVwgOwor5YWs55uKID4ga291ZWtpXCA7CivoiLnot68gPiBmdW5hamlcIDsKK+mCpuS6uiA+IGhvdWppblwgOwor55aO6ZqUID4gc29rYWt1XCA7CivliLbluL0gPiBzZWlib3VcIDsKK+WKoOWFpSA+IGthbnl1dVwgOwor5YaN54qvID4gc2FpaGFuXCA7CivlhYjnq68gPiBzZW50YW5cIDsKK+i+suawkSA+IG5vdW1pblwgOwor6YGg5Zu9ID4gb25nb2t1XCA7CivlhbfnlLMgPiBndXNoaW5cIDsKK+iNt+acrSA+IG5pZnVkYVwgOwor5bit5qyhID4gc2VraWppXCA7CivliKnlvpcgPiByaXRva3VcIDsKK+WFqOebsiA+IHplbm1vdVwgOwor5q275LqhID4gc2hpYm91XCA7Civlt6jnjaMgPiBreW9qdXVcIDsKK+WyuOmgrSA+IGdhbnRvdVwgOwor6JC95LyNID4gcmFrdWdvXCA7CivmraPlhbUgPiBzZWloZWlcIDsKK+WFqOebmyA+IHplbnNlaVwgOwor6LmI6Z60ID4gdGF0YXJhXCA7CivpgKPluK8gPiByZW50YWlcIDsKK+mAn+W6piA+IHNva3Vkb1wgOwor5Yiw5bqVID4gdG91dGVpXCA7CivlhY3nqI4gPiBtZW56ZWlcIDsKK+WGjeeJiCA+IHNhaWhhblwgOwor5Ymv5ZugID4gZnVrdWluXCA7CivnmbrnpoEgPiBoYWtraW5cIDsKK+iIjOmLkiA+IHplcHBvdVwgOwor6YCg5bmjID4gem91aGVpXCA7CivpgZPloLQgPiBkb3Vqb3VcIDsKK+aomeekuiA+IGh5b3VqaVwgOwor5buD5aKfID4gaGFpa3lvXCA7CivlubPmiYsgPiBoaXJhdGVcIDsKK+i/lOadryA+IGhlbnBhaVwgOwor5YGc6Zu7ID4gdGVpZGVuXCA7CivlgaXpl5ggPiBrZW50b3VcIDsKK+iIn+mBiyA+IHNodXV1blwgOwor5qiq55uuID4geW9rb21lXCA7CivlubPmiJAgPiBoZWlzZWlcIDsKK+WHseaXiyA+IGdhaXNlblwgOwor5Y6t44CFID4gaXlhaXlhXCA7Civnm67mrKEgPiBtb2t1amlcIDsKK+WGt+aziSA+IHJlaXNlblwgOwor5YWo55mSID4gemVuJyd5dVwgOwor55m956OBID4gaGFrdWppXCA7Civov5TmnKwgPiBoZW5wb25cIDsKK+WIpeW9oiA+IGJla2tlaVwgOwor5bm75oOzID4gZ2Vuc291XCA7CivnnIvmnb8gPiBrYW5iYW5cIDsKK+WGjeeHgyA+IHNhaW5lblwgOwor552A5oSPID4gY2hha3VpXCA7CivlhoXnirYgPiBuYWlqb3VcIDsKK+WIpeW9kyA+IGJldHRvdVwgOwor6L+R5p2xID4ga2ludG91XCA7Civlu7rlhbcgPiB0YXRlZ3VcIDsKK+i/keadpSA+IGtpbnJhaVwgOwor6L+U5pu4ID4gaGVuc2hvXCA7Civluo/luZUgPiBqb21ha3VcIDsKK+WBtOmOliA+IHNva3VzYVwgOwor5qaC6KuWID4gZ2Fpcm9uXCA7Civnl4Xouq8gPiBieW91a3VcIDsKK+alveitnCA+IGdha3VmdVwgOwor5Ya35rGXID4gcmVpa2FuXCA7CivliIbmi4UgPiBidW50YW5cIDsKK+i+o+ayuSA+IHJhemV5dVwgOwor6auY6YWNID4ga291aGFpXCA7Civlu7flhoUgPiB0ZWluYWlcIDsKK+WKh+WMliA+IGdla2lrYVwgOwor5Ya35rC0ID4gcmVpc3VpXCA7CivliJ3lv5cgPiBzaG9zaGlcIDsKK+WFrOeUsCA+IGtvdWRlblwgOwor6YKE5YWDID4ga2FuZ2VuXCA7CivpgJXluq0gPiBrZWl0ZWlcIDsKK+WIqeW5hSA+IHJpaGFiYVwgOwor5YWs55SoID4ga291eW91XCA7Civlh6Hmm7ggPiBib25zaG9cIDsKK+mAo+WzsCA+IHJlbnBvdVwgOwor5YqH5YuZID4gZ2VraW11XCA7Civlt6Hni6kgPiBqdW5zaHVcIDsKK+WIh+aJiyA+IGtpcmV0ZVwgOwor5bm75oCqID4gZ2Vua2FpXCA7Civov73mhZUgPiB0c3VpYm9cIDsKK+atpuS+oCA+IGJ1a3lvdVwgOwor55m656CyID4gaGFwcG91XCA7Civlu4PlnZEgPiBoYWlrb3VcIDsKK+i6q+iosSA+IG1pbW90b1wgOwor6YGp5ZCmID4gdGVraWhpXCA7Civlh7rmjpsgPiBkZWdha2VcIDsKK+WGhueGnyA+IGVuanVrdVwgOwor5YWo55SyID4gemVua291XCA7Civov5Hmma8gPiBraW5rZWlcIDsKK+atjOWKhyA+IGthZ2VraVwgOwor6YCj5bGxID4gcmVuemFuXCA7Civpq5jpgoEgPiBrb3VtYWlcIDsKK+WJjeWljyA+IHplbnNvdVwgOwor5bqX5bGLID4gbWlzZXlhXCA7Civlh6bmlrkgPiBzaG9ob3VcIDsKK+iIqui1sCA+IGtvdXNvdVwgOwor5Yem5patID4gc2hvZGFuXCA7CivpgY3lnKggPiBoZW56YWlcIDsKK+ato+S9vyA+IHNlaXNoaVwgOwor5Yi75a2XID4ga29rdWppXCA7CivliKXlt7sgPiBiZWtrYW5cIDsKK+WGl+a8qyA+IGpvdW1hblwgOwor5qaC6KazID4gZ2Fpa2FuXCA7CivliY3lpJwgPiB6ZW4nJ3lhXCA7Civlu7rlgKQgPiB0YXRlbmVcIDsKK+W5u+W9sSA+IGdlbicnZWlcIDsKK+mAo+WwhCA+IHJlbnNoYVwgOwor5YmN5aOyID4gbWFldXJpXCA7CivmpoLopoEgPiBnYWl5b3VcIDsKK+WCjei8qSA+IGhvdWJhaVwgOwor55m955yJID4gaGFrdWJpXCA7Civls6Hpg6ggPiBreW91YnVcIDsKK+WItuWumiA+IHNlaXRlaVwgOwor5q2j5LydID4gc2VpZGVuXCA7Civou73nvaogPiBrZWl6YWlcIDsKK+eVqumgrSA+IGJhbnRvdVwgOwor5Yid5bm0ID4gc2hvbmVuXCA7Civov7Dmh5AgPiBqdWtrYWlcIDsKK+i+m+awlyA+IHNoaW5raVwgOwor5qW96KazID4gcmFra2FuXCA7CivlibLlkIggPiB3YXJpYWlcIDsKK+alvOimsyA+IHJvdWthblwgOwor6Ium55ebID4ga3V0c3V1XCA7CivluIzmsYIgPiBraWt5dXVcIDsKK+W5vuW5tCA+IGlrdW5lblwgOwor5Yas5q+bID4gZnV5dWdlXCA7CivlhYjnn6UgPiBzZW5jaGlcIDsKK+W6l+WtkCA+IHRhbmFrb1wgOwor6a2a576kID4gZ3lvZ3VuXCA7CivpgaHlj4ogPiBzb2t5dXVcIDsKK+mAgOW9uSA+IHRhaWVraVwgOwor5bm85bm0ID4geW91bmVuXCA7Civov4Lmm7IgPiB1a3lva3VcIDsKK+WEquetiSA+IHl1dXRvdVwgOwor6LuN6JGsID4gZ3Vuc291XCA7CivlibLljbAgPiB3YXJpaW5cIDsKK+iPr+WVhiA+IGthc2hvdVwgOwor5Yip5bC/ID4gcmlueW91XCA7CivlhbXnh7kgPiBoZWlzZW5cIDsKK+W7tuS8uCA+IGVuc2hpblwgOwor5bqK5bGLID4gdG9rb3lhXCA7CivpgIDlu7cgPiB0YWl0ZWlcIDsKK+aoqeePviA+IGdvbmdlblwgOwor5YG06YOoID4gc29rdWJ1XCA7CivluLDmnJ0gPiBraWNob3VcIDsKK+W4sOacjSA+IGtpZnVrdVwgOwor55y85bqVID4gZ2FudGVpXCA7CivpgIDlu4MgPiB0YWloYWlcIDsKK+WIpeWxhSA+IGJla2t5b1wgOwor55WZ6aOyID4gcnl1dWluXCA7CivliKrlrpogPiBzYW50ZWlcIDsKK+mBruWFiSA+IHNoYWtvdVwgOwor5YmN5Z2KID4gemVuYm91XCA7Civou5/oho8gPiBuYW5rb3VcIDsKK+ashOWkliA+IHJhbmdhaVwgOwor5Yag5rC0ID4ga2Fuc3VpXCA7CivliKXlsIEgPiBiZXBwdXVcIDsKK+ecvOW4ryA+IGdhbnRhaVwgOwor5bmz5bm0ID4gaGVpbmVuXCA7CivlubPlubMgPiBoZWloZWlcIDsKK+iHhumdoiA+IG9rdW1lblwgOwor5buD5ZOBID4gaGFpaGluXCA7Civov7flvakgPiBtZWlzYWlcIDsKK+W4guawkSA+IHNoaW1pblwgOwor5bqE5bGLID4gc2hvdXlhXCA7CivoibLoibIgPiBpcm9pcm9cIDsKK+mrmOi4jyA+IGtvdXRvdVwgOwor5Yag5q+bID4ga2FubW91XCA7Civlt6jmvKIgPiBreW9rYW5cIDsKK+W4uOaVsCA+IGpvdXN1dVwgOwor5Ym15YiKID4gc291a2FuXCA7CivlhYjnmbsgPiBzZW50b3VcIDsKK+WJjeWbniA+IHplbmthaVwgOwor6L6y5p6XID4gbm91cmluXCA7CivlubPluLggPiBoZWlqb3VcIDsKK+iLlOeZrCA+IHRhaXNlblwgOwor55my55mHID4gdGVua2FuXCA7CivojYnmoLkgPiBzb3Vrb25cIDsKK+eZu+eUqCA+IHRvdXlvdVwgOwor6auY6LedID4ga291a3lvXCA7CivliKTlrpogPiBoYW50ZWlcIDsKK+WIpOWumCA+IGhhbmdhblwgOwor5bed54CsID4ga2F3YXNlXCA7Civlu7fkuIEgPiB0ZWl0ZWlcIDsKK+eZuueUnyA+IGhhc3NlaVwgOwor6L6y5p2RID4gbm91c29uXCA7CivlgbTov5EgPiBzb2traW5cIDsKK+ebpOaguSA+IGJhbmtvblwgOwor6I6a5bitID4gZW5zZWtpXCA7CivnnJ/mhI8gPiBzaGluJydpXCA7CivprYLog4YgPiBrb250YW5cIDsKK+WIl+WztiA+IHJldHRvdVwgOwor6L2f54S2ID4gZ291emVuXCA7Civlu4PlkIggPiBoYWlnb3VcIDsKK+WIpeWsqiA+IGJlcHBpblwgOwor5qyg5ZOBID4ga2VwcGluXCA7CivprZrntrIgPiBneW9tb3VcIDsKK+mAo+WljyA+IHJlbnNvdVwgOwor5YaF5rmvID4gdWNoaXl1XCA7CivnlJ/puqkgPiBuYW1hZnVcIDsKK+W5veWxhSA+IHl1dWt5b1wgOwor6YCj5aScID4gcmVuJyd5YVwgOwor5beh5ryUID4ganVuJydlblwgOwor5YiG5bqXID4gYnVudGVuXCA7CivmrYzkvJogPiB1dGFrYWlcIDsKK+WGhea4ryA+IG5haWtvdVwgOwor5YWs54S2ID4ga291emVuXCA7Civlt7vmr5sgPiBtYWtpZ2VcIDsKK+i7jeiJpiA+IGd1bmthblwgOwor6YCj5aOwID4gcmVuam91XCA7Civoh6rph40gPiBqaWNob3VcIDsKK+WGhea4iCA+IG5haXNhaVwgOwor5YWI55WqID4gc2VuYmFuXCA7CivpgYrlkJ8gPiB5dXVnaW5cIDsKK+mBiuWQmyA+IHl1dWt1blwgOwor6LuN6Ii5ID4gZ3Vuc2VuXCA7Civoj6/ljJcgPiBrYWhva3VcIDsKK+iNieacrCA+IHNvdWhvblwgOwor55uy5patID4gbW91ZGFuXCA7CivnnYDlsLogPiBraWpha3VcIDsKK+iJqOiJnyA+IG1vdWRvdVwgOwor6L+U5oi7ID4gaGVucmVpXCA7CivlhYjnlJ8gPiBzZW5zZWlcIDsKK+WJquWIgCA+IHNlbnRvdVwgOwor5YG96LazID4gZ2lzb2t1XCA7CivojYnmm7ggPiBzb3VzaG9cIDsKK+WFqOeEtiA+IHplbnplblwgOwor5YiX5a+nID4gcmVlbmluXCA7CivprZrnsr4gPiBneW9zZWlcIDsKK+iJpuiJhyA+IGthbnRlaVwgOwor6Imm6Ii5ID4ga2Fuc2VuXCA7CivlhoXmtbcgPiBuYWlrYWlcIDsKK+ebruaWuSA+IG1la2F0YVwgOwor5Yeh5omNID4gYm9uc2FpXCA7Civlh6HmiYsgPiBib25zaHVcIDsKK+WFieeSsCA+IGtvdWthblwgOwor5YWF55SoID4ganV1eW91XCA7CivovJ3nn7MgPiBraXNla2lcIDsKK+mtmueyiSA+IGd5b2Z1blwgOwor5Yeh5oimID4gYm9uc2VuXCA7CivlurjlkJsgPiB5b3VrdW5cIDsKK+WApOmggyA+IG5lZ29yb1wgOwor5Ye25b6SID4ga3lvdXRvXCA7Civnlo7pgJogPiBzb3RzdXVcIDsKK+iHs+i/kSA+IHNoaWtpblwgOwor5bmi5bmhID4gZG91YmFuXCA7CivlubPlsYsgPiBoaXJheWFcIDsKK+mBheWPgiA+IGNoaXNhblwgOwor6YCG5a2QID4gc2FrYWdvXCA7Civnmb3ni5AgPiBieWFra29cIDsKK+WApOmemCA+IG5lemF5YVwgOwor5Ye65bqrID4gc2h1a2tvXCA7Civov73lsL4gPiB0c3VpYmlcIDsKK+WIgOW3pSA+IHRvdWtvdVwgOwor5Ye65bqcID4gc2h1cHB1XCA7CivliJ3lqZogPiBzaG9rb25cIDsKK+WHuuW6lyA+IGRlbWlzZVwgOwor5YaF5rK7ID4gbmFpY2hpXCA7CivovrLmlL8gPiBub3VzZWlcIDsKK+WJm+WLhyA+IGdvdXl1dVwgOwor5qyg5YukID4ga2Vra2luXCA7CivlhbHmvJQgPiBreW91ZW5cIDsKK+iHqumBqSA+IGppdGVraVwgOwor5Yeh5oWuID4gYm9ucnlvXCA7Civlu4PliIogPiBoYWlrYW5cIDsKK+mAgOWumCA+IHRhaWthblwgOwor55y85a2UID4gZ2Fua291XCA7CivnlYzpnaIgPiBrYWltZW5cIDsKK+W3peazlSA+IGtvdWhvdVwgOwor6YGv5LiWID4gdG9uc2VpXCA7CivlubPlrpogPiBoZWl0ZWlcIDsKK+iPr+WGkSA+IGthY2h1dVwgOwor6Lyq55WqID4gcmluYmFuXCA7CivlubLlrrMgPiBrYW5nYWlcIDsKK+WHuuW4qyA+IHN1aXNoaVwgOwor6YCg5Z6LID4gem91a2VpXCA7CivoiKrooYwgPiBrb3Vrb3VcIDsKK+WJjeWQjSA+IHplbm1laVwgOwor5Ye95ba6ID4ga2FucmVpXCA7CivpgZPlhYMgPiBkb3VnZW5cIDsKK+eZjOeglCA+IGdhbmtlblwgOwor5YmN5Y+3ID4gemVuZ291XCA7CivliKTlo6sgPiBoYW5zaGlcIDsKK+WJjeWPsiA+IHplbnNoaVwgOwor6Lyq55SfID4gcmluc2VpXCA7CivlhoXmsJcgPiB1Y2hpa2lcIDsKK+WCjeiokyA+IGJvdWt1blwgOwor55y45a2QID4gYm91c2hpXCA7CivpgYXlirkgPiBjaGlrb3VcIDsKK+ebm+aakSA+IHNlaXNob1wgOwor6L+R5oOFID4ga2luam91XCA7Civlu4PlhbUgPiBoYWloZWlcIDsKK+WFjeeKtiA+IG1lbmpvdVwgOwor5YWo5r2wID4gemVua2FpXCA7CivluoPlpKcgPiBrb3VkYWlcIDsKK+mrmOirliA+IGtvdXJvblwgOwor5biG5qGBID4gaG9nZXRhXCA7Civpq5joq4cgPiBrb3VkYW5cIDsKK+apn+alrSA+IGtpZ3lvdVwgOwor6YCT5aKXID4gdGVpem91XCA7CivluZXlupwgPiBiYWt1ZnVcIDsKK+W4reaNsiA+IHNla2tlblwgOwor6I235b25ID4gbml5YWt1XCA7Civlubvlp78gPiBnZW5zaGlcIDsKK+WGheauvyA+IG5haWRlblwgOwor5bqD5aOuID4ga291c291XCA7Civlgo3oprMgPiBib3VrYW5cIDsKK+iPr+WDkSA+IGtha3lvdVwgOwor5bid5pS/ID4gdGVpc2VpXCA7CivnlYzpmoggPiBrYWl3YWlcIDsKK+WIhuWwgSA+IGJ1bnBvdVwgOwor5Yil5aCxID4gYmVwcG91XCA7CivlhazmupYgPiBrb3VqdW5cIDsKK+WCjeimliA+IHdha2ltaVwgOwor5YmN5Y2KID4gemVucGFuXCA7Civnmb3nhZkgPiBoYWt1ZW5cIDsKK+W5veWlkSA+IHl1dWtlaVwgOwor55Sf6a6uID4gc2Vpc2VuXCA7Civoi5TnirYgPiB0YWlqb3VcIDsKK+mtlOesmyA+IG1hdGVraVwgOwor5Ym15LiWID4gc291c2VpXCA7Civnm4bmoL0gPiBib25zYWlcIDsKK+mrmOiogCA+IGtvdWdlblwgOwor6Lez6aasID4gY2hvdWJhXCA7CivluLjmhYsgPiBqb3V0YWlcIDsKK+W6g+WgtCA+IGhpcm9iYVwgOwor5bqD5aCxID4ga291aG91XCA7CivlsbHpoZsgPiBzYW50ZW5cIDsKK+WIhuWtkCA+IGJ1bnNoaVwgOwor6Ieq6LqrID4gamlzaGluXCA7CivlhbXms5UgPiBoZWlob3VcIDsKK+WBnOi7iiA+IHRlaXNoYVwgOwor5bm05aeLID4gbmVuc2hpXCA7Civpq5jopqcgPiBrb3VyYW5cIDsKK+eUmOmvmyA+IGFtYWRhaVwgOwor6L+R5b2xID4ga2luJydlaVwgOwor5bqD5Z+fID4ga291aWtpXCA7CivmqKrmuqIgPiBvdWl0c3VcIDsKK+WGrOaXpSA+IGZ1eXViaVwgOwor6auY6KaLID4gdGFrYW1pXCA7Civlg6fntrEgPiBzb3Vnb3VcIDsKK+WJjeWJjSA+IG1hZW1hZVwgOwor5bqn5Y2TID4gemF0YWt1XCA7CivlhazmtbcgPiBrb3VrYWlcIDsKK+WGoOacqCA+IGthYnVraVwgOwor6Imv57iBID4gcnlvdWVuXCA7CivliZvlgaUgPiBnb3VrZW5cIDsKK+WBveiovCA+IGdpc2hvdVwgOwor6YGO5L+hID4ga2FzaGluXCA7CivluILmnIkgPiBzaGl5dXVcIDsKK+W6reWJjSA+IHRlaXplblwgOwor5YSq55SfID4geXV1c2VpXCA7CivmpJzou4ogPiBrZW5zaGFcIDsKK+W6l+WToSA+IHRlbicnaW5cIDsKK+mAsuWMliA+IHNoaW5rYVwgOwor5qi55rC3ID4ganVoeW91XCA7CivluoTlnJIgPiBzaG91ZW5cIDsKK+iHqui2syA+IGppc29rdVwgOwor6aqo6LqrID4gaG9uZW1pXCA7Civlha3ms5UgPiByb3Bwb3VcIDsKK+WHuuWutiA+IHNodWtrZVwgOwor5bmy5aSpID4ga2FudGVuXCA7Civlh6HlurYgPiBib25zaG9cIDsKK+mrmOijgSA+IGtvdXNhaVwgOwor55S76ZuGID4gZ2FzaHV1XCA7Civlhazms5UgPiBrb3Vob3VcIDsKK+WIhuWoqSA+IGJ1bmJlblwgOwor6Lyq54q2ID4gcmluam91XCA7CivoibLns7ggPiBpcm9pdG9cIDsKK+eUu+manCA+IGdhc2hvdVwgOwor5bmz5aOMID4gaGVpam91XCA7CivlsbHpnIogPiBzYW5yZWlcIDsKK+WGmeacrCA+IHNoYWhvblwgOwor5YWl5rW3ID4gaXJpdW1pXCA7CivouYLouqogPiBqdXVyaW5cIDsKK+i5gui6mSA+IGp1dXJpblwgOwor5bmV5bGLID4gbWFrdXlhXCA7CivprLznsY0gPiBraXNla2lcIDsKK+WIu+WNsCA+IGtva3VpblwgOwor5YWJ54K5ID4ga291dGVuXCA7Civlh6HluLggPiBib25qb3VcIDsKK+i/t+WmhCA+IG1laW1vdVwgOwor55eb6IumID4gdHN1dWt1XCA7Civnm4bmma8gPiBib25rZWlcIDsKK+iIueiNtyA+IGZ1bmFuaVwgOwor6YCj5ZCfID4gcmVuZ2luXCA7CivliJ3lm54gPiBzaG9rYWlcIDsKK+W7g+S6uiA+IGhhaWppblwgOwor5Ymb5L2TID4gZ291dGFpXCA7Civou4rnt5ogPiBzaGFzZW5cIDsKK+WHoOW4syA+IGtpY2hvdVwgOwor5YWo5rK7ID4gemVuY2hpXCA7CivpgKPlkI0gPiByZW5tZWlcIDsKK+mAo+WQiCA+IHJlbmdvdVwgOwor55qG5riIID4ga2Fpc2FpXCA7Civnm7Lmg7MgPiBtb3Vzb3VcIDsKK+WIkeWgtCA+IGtlaWpvdVwgOwor5bm05aCxID4gbmVucG91XCA7CivpgIDloLQgPiB0YWlqb3VcIDsKK+WGheaknCA+IG5haWtlblwgOwor5YaN5qChID4gc2Fpa291XCA7Civnm7jmgKcgPiBhaXNob3VcIDsKK+iLpea5ryA+IHdha2F5dVwgOwor6YGL5LyRID4gdW5reXV1XCA7Civnm7jmgJ0gPiBzb3VzaGlcIDsKK+WFrOawkSA+IGtvdW1pblwgOwor5biC5pelID4gaWNoaWJpXCA7CivoirHnkrAgPiBoYW5hd2FcIDsKK+anmOebuCA+IHlvdXNvdVwgOwor6I+v5LitID4ga2FjaHV1XCA7CivlgbjoppYgPiB0b3VzaGlcIDsKK+WJjeWCviA+IHplbmtlaVwgOwor6bGI5a2QID4gdGFyYWtvXCA7CivlsY3pqrggPiBzaGlnYWlcIDsKK+iHquiyrCA+IGppc2VraVwgOwor5YiG5aSWID4gYnVuZ2FpXCA7Civnm6PmiL8gPiBrYW5ib3VcIDsKK+W4g+aVmSA+IGZ1a3lvdVwgOwor6YCg5Y+NID4gem91aGFuXCA7CivliIblo7IgPiBidW5iYWlcIDsKK+WHhOaDqCA+IHNlaXNhblwgOwor55ub5oyZID4gc2Vpa3lvXCA7CivlubLln44gPiBrYW5qb3VcIDsKK+i7veebriA+IGthcnVtZVwgOwor5biw5b+DID4ga2lzaGluXCA7CivojJjmnp0gPiByZWlzaGlcIDsKK+ebuOW9uSA+IGFpeWFrdVwgOwor5biC5pS/ID4gc2hpc2VpXCA7CivluqflhYMgPiB6YW1vdG9cIDsKK+WGjeadpSA+IHNhaXJhaVwgOwor5YWs5q2jID4ga291c2VpXCA7Civlhbzmpa0gPiBrZW5nb3VcIDsKK+ebvuW6pyA+IHRhdGV6YVwgOwor5Ya35oi/ID4gcmVpYm91XCA7CivliLbli5UgPiBzZWlkb3VcIDsKK+iJtueskSA+IGVuc2hvdVwgOwor55u45b2TID4gc291dG91XCA7Civlt6HmpJwgPiBqdW5rZW5cIDsKK+W5s+WdpiA+IGhlaXRhblwgOwor5YW15qipID4gaGVpa2VuXCA7CivlhrfmiKYgPiByZWlzZW5cIDsKK+eZvua4iCA+IGt1ZGFyYVwgOwor5YWo5q61ID4gemVuZGFuXCA7Civoh7Poq5YgPiBzaGlyb25cIDsKK+iIueiJmSA+IHNlbnNvdVwgOwor6YCd5Y67ID4gc2Vpa3lvXCA7CivlsbHplpMgPiB5YW1hYWlcIDsKK+WIuuWIuiA+IGlyYWlyYVwgOwor55qT5q2vID4ga291c2hpXCA7CivliKXlk4EgPiBiZXBwaW5cIDsKK+W5s+WdhyA+IGhlaWtpblwgOwor5bGx6ZaAID4gc2FubW9uXCA7Civlgq3oiLkgPiB5b3VzZW5cIDsKK+WGhuafsSA+IGVuY2h1dVwgOwor55Sf6aGeID4gc2VpcnVpXCA7CivlubPlnLAgPiBoZWljaGlcIDsKK+mAo+WLlSA+IHJlbmRvdVwgOwor5YmN5L6/ID4gemVuYmluXCA7Civoh7PoqqAgPiBzaGlzZWlcIDsKK+W6uOS6uiA+IHlvdWppblwgOwor5bm05ZueID4gbmVua2FpXCA7CivpgIDlm6MgPiB0YWlkYW5cIDsKK+ebsuW+kyA+IG1vdWp1dVwgOwor5YmN5L6LID4gemVucmVpXCA7CivlhpfmlocgPiBqb3VidW5cIDsKK+api+aetiA+IGt5b3VrYVwgOwor5YWo5qynID4gemVuJydvdVwgOwor6Luf56aBID4gbmFua2luXCA7CivpgJ/lirkgPiBzb2trb3VcIDsKK+edvuS4uCA+IGtvdWdhblwgOwor6Iez6KiAID4gc2hpZ2VuXCA7Civlt6jmnZAgPiBreW96YWlcIDsKK+WFiea6kCA+IGtvdWdlblwgOwor6YCj5YikID4gcmVucGFuXCA7Civou5Lnq68gPiBub2tpYmFcIDsKK+W4q+W8nyA+IHNoaXRlaVwgOwor5YmN5Lu2ID4gemVua2VuXCA7CivlhazmqKkgPiBrb3VrZW5cIDsKK+Wxj+miqCA+IGJ5b3VidVwgOwor55u45bitID4gYWlzZWtpXCA7CivliY3ku6MgPiB6ZW5kYWlcIDsKK+eUn+mdoiA+IHNlaW1lblwgOwor6Ium5rGBID4gbmlnYXJpXCA7CivliY3kurogPiB6ZW5qaW5cIDsKK+WIh+WcsCA+IGtpcmVqaVwgOwor5Y2K44CFID4gaGFuaGFuXCA7CivpgYHkuJYgPiB0b25zZWlcIDsKK+iHs+imgSA+IHNoaXlvdVwgOwor5Ye25aSiID4ga3lvdW11XCA7CivliIblnLAgPiBidW5jaGlcIDsKK+eci+WuiCA+IGthbnNodVwgOwor6Im256aPID4gZW5wdWt1XCA7CivlhYXmuoAgPiBqdXVtYW5cIDsKK+iLpeawlyA+IHdha2FnZVwgOwor55eF6IumID4gYnlvdWt1XCA7CivlhajmqKkgPiB6ZW5rZW5cIDsKK+iNkuW7gyA+IGtvdWhhaVwgOwor55m65rOhID4gaGFwcG91XCA7CivnlKPpmaIgPiBzYW4nJ2luXCA7CivliIblm6MgPiBidW5kYW5cIDsKK+iHquiouyA+IGppY2h1dVwgOwor5bqD5Y6fID4ga291Z2VuXCA7CivliJ3lj7cgPiBzaG9nb3VcIDsKK+W4reW3uyA+IHNla2tlblwgOwor5YaN5pWXID4gc2FpaGFpXCA7CivliY3kuJYgPiB6ZW5zZWlcIDsKK+mAoOWFtSA+IHpvdWhlaVwgOwor6YC45LqLID4gaXRzdWppXCA7Civlg7vnm64gPiBoaWdhbWVcIDsKK+WCreiBmCA+IHlvdWhlaVwgOwor6ayx56mNID4gdXNzZWtpXCA7Civlt6jmmJ8gPiBreW9zZWlcIDsKK+WIgOWcrSA+IHRvdWtlaVwgOwor5YaK5pWwID4gc2Fzc3V1XCA7CivlubzlkJsgPiB5b3VrdW5cIDsKK+eZuuaxlyA+IGhha2thblwgOwor55S76YuyID4gZ2FieW91XCA7Civlh7rln44gPiBkZWppcm9cIDsKK+W5vOWQjSA+IHlvdW1laVwgOwor6LuK56qTID4gc2hhc291XCA7CivlsI/pvLsgPiBrb2JhbmFcIDsKK+WGheaXqCA+IG5haXNoaVwgOwor55eb5721ID4gdHN1dWJhXCA7Civoh6roppogPiBqaWtha3VcIDsKK+eWvuiLpiA+IHNoaWtrdVwgOwor5YaF5pa5ID4gbmFpaG91XCA7Civlgb3olqwgPiBnaXlha3VcIDsKK+eXheiHpSA+IGJ5b3VnYVwgOwor5bi95a2QID4gYm91c2hpXCA7CivlhbHmoIQgPiBreW91ZWlcIDsKK+i7iueoriA+IHNoYXNodVwgOwor5YCk6YGHID4gY2hpZ3V1XCA7CivlubblkZEgPiBoZWlkb25cIDsKK+W6iuWHoCA+IHNob3VnaVwgOwor5bm+5Y2DID4gaWt1c2VuXCA7Civpq5jokZcgPiBrb3VjaG9cIDsKK+i+suW3pSA+IG5vdWtvdVwgOwor5bCP6bqmID4ga29tdWdpXCA7CivmpJzoqI4gPiBrZW50b3VcIDsKK+WIhuWWtiA+IGJ1bicnZWlcIDsKK+ajkumLvCA+IGJvdWtvdVwgOwor6YCB5ZGIID4gc291dGVpXCA7CivluqfkuK0gPiB6YWNodXVcIDsKK+WGheaUvyA+IG5haXNlaVwgOwor5YaF5pS7ID4gbmFpa291XCA7CivlubblkIggPiBoZWlnb3VcIDsKK+WFrOagvSA+IGtvdXNhaVwgOwor5L+u6ZmiID4gc2h1dWluXCA7CivlupXlgKQgPiBzb2tvbmVcIDsKK+W4sOWxniA+IGtpem9rdVwgOwor5bel5pWwID4ga291c3V1XCA7CivlhbXmm7kgPiBoZWlzb3VcIDsKK+WFteabuCA+IGhlaXNob1wgOwor5YiR5ZCNID4ga2VpbWVpXCA7Civou43npLwgPiBndW5yZWlcIDsKK+aoueacqCA+IGp1bW9rdVwgOwor6auY6I+cID4gdGFrYW5hXCA7Civnm7jlr74gPiBzb3V0YWlcIDsKK+mAo+S/giA+IHJlbmtlaVwgOwor5bm05Y+3ID4gbmVuZ291XCA7CivmpJzoppYgPiBrZW5zaGlcIDsKK+WGpeaDsyA+IG1laXNvdVwgOwor6Iqx54GrID4gaGFuYWJpXCA7CivlsZXplosgPiB0ZW5rYWlcIDsKK+ebuOWuvyA+IGFpeWFkb1wgOwor6Iie6IieID4gbWFpbWFpXCA7CivpgIDljrsgPiB0YWlreW9cIDsKK+WFqOagoSA+IHplbmtvdVwgOwor5biv5bCBID4gb2JpZnV1XCA7Civlh43lr5IgPiB0b3VrYW5cIDsKK+W5s+WOnyA+IGhlaWdlblwgOwor55yM5aSWID4ga2VuZ2FpXCA7Civlh43lrrMgPiB0b3VnYWlcIDsKK+WxsemHjiA+IHNhbicneWFcIDsKK+mAj+WGmSA+IHRvdXNoYVwgOwor5Yi25LukID4gc2VpcmVpXCA7Civlha3mnKwgPiByb3Bwb25cIDsKK+iLpualvSA+IGt1cmFrdVwgOwor5biw5a6FID4ga2l0YWt1XCA7Civnm7LlsIQgPiBtb3VzaGFcIDsKK+eWveiFqyA+IHNvc2hvdVwgOwor5qiq5qC5ID4geW9rb25lXCA7Civlub7liIYgPiBpa3VidW5cIDsKK+eVsOiqrCA+IGlzZXRzdVwgOwor6a2U55CDID4gbWFreXV1XCA7Civlh7blmaggPiBreW91a2lcIDsKK+WIneWGrCA+IHNob3RvdVwgOwor5L+d6Z2pID4gaG9rYWt1XCA7Civlho3mjJkgPiBzYWlreW9cIDsKK+ebruWxjiA+IG1la3Vzb1wgOwor5L+K6aasID4gc2h1bm1lXCA7CivnlLLpiJEgPiBrb3ViYW5cIDsKK+WFq+acrCA+IGhhcHBvblwgOwor5YWs5pyJID4ga291eXV1XCA7CivlgY/oposgPiBoZW5rZW5cIDsKK+W6nOS4rSA+IGZ1Y2h1dVwgOwor55uu5bC7ID4gbWVqaXJpXCA7CivlhbbmlrkgPiBzb25hdGFcIDsKK+ebm+W5tCA+IHNlaW5lblwgOwor5bCP6bSoID4ga29nYW1vXCA7Civlho3mi50gPiBzYWloYWlcIDsKK+mAgOWLoiA+IHRhaXNlaVwgOwor6L+U5aCxID4gaGVucG91XCA7CivpgKPkupggPiByZW5rb3VcIDsKK+W5veWGpSA+IHl1dW1laVwgOwor6LyJ54KtID4gc2FpdGFuXCA7CivlhoXmjqIgPiBuYWl0YW5cIDsKK+aoqeafhCA+IGtlbnBlaVwgOwor5bCP6bOlID4ga290b3JpXCA7CivlubTlip8gPiBuZW5rb3VcIDsKK+eUsOmHjiA+IGRlbicneWFcIDsKK+WFteaVsCA+IGhlaXN1dVwgOwor55uq5bC9ID4gdG91amluXCA7CivnnLzliY0gPiBnYW56ZW5cIDsKK+WFqOabuCA+IHplbnNob1wgOwor6Imm56CyID4ga2FucG91XCA7CivlupfkuLsgPiB0ZW5zaHVcIDsKK+i7oueUnyA+IHRlbnNlaVwgOwor6Laz6aeEID4gYXNoaWRhXCA7Civlhavmma8gPiBoYWtrZWlcIDsKK+eZu+alvCA+IHRvdXJvdVwgOwor5L+d6ZqcID4gaG9zaG91XCA7Civnm67lrokgPiBtZXlhc3VcIDsKK+WGheaMvyA+IG5haXNvdVwgOwor5qaC566XID4gZ2Fpc2FuXCA7CivliIbljpggPiBidW5yaW5cIDsKK+i/veWKoCA+IHRzdWlrYVwgOwor5qiq5pyoID4geW9rb2dpXCA7CivlhKrmuKUgPiB5dXVha3VcIDsKK+WGjeaIpiA+IHNhaXNlblwgOwor5biG5b2xID4gaG9rYWdlXCA7CivlubTliJ0gPiBuZW5zaG9cIDsKK+iFsOmWkyA+IHlvdWthblwgOwor6I2J5bGLID4gc291b2t1XCA7CivlhazmmI4gPiBrb3VtZWlcIDsKK+W5tOWIiiA+IG5lbmthblwgOwor5bm05YiGID4gbmVuYnVuXCA7CivlhajmmbogPiB6ZW5jaGlcIDsKK+mAhuWFkCA+IHNha2Fnb1wgOwor5YWo5pmvID4gemVua2VpXCA7CivluZXllrYgPiBiYWt1ZWlcIDsKK+Wwj+mwrSA+IGtvaGFkYVwgOwor5Yil5L2/ID4gYmVzc2hpXCA7CivlubPliIYgPiBoZWlidW5cIDsKK+ebuOWnpiA+IHNvdWthblwgOwor5YWt5pa5ID4gcm9wcG91XCA7CivliKTkvosgPiBoYW5yZWlcIDsKK+W5s+WHoSA+IGhlaWJvblwgOwor55iL55myID4gZnV1dGVuXCA7Civlubvlg48gPiBnZW56b3VcIDsKK+WFq+aWuSA+IGhhcHBvdVwgOwor6L+95YiGID4gb2l3YWtlXCA7CivpsKXlpKsgPiB5YW1vbWVcIDsKK+eUqOmHkSA+IHlvdWtpblwgOwor6a2U54mpID4gbWFtb25vXCA7CivlhazmlocgPiBrb3VidW5cIDsKK+ecvOWFiSA+IGdhbmtvdVwgOwor6Iy25be+ID4gY2hha2luXCA7Civnm7jlpb0gPiBzb3Vnb3VcIDsKK+WIkeWFuCA+IGtlaXRlblwgOwor6L+R5ZyoID4ga2luemFpXCA7CivliKXku7YgPiBiZWtrZW5cIDsKK+mAk+S8nSA+IHRlaWRlblwgOwor5bGx6L66ID4geWFtYWJlXCA7CivlhoXmiYAgPiBuYWlzaG9cIDsKK+eVpeiomCA+IHJ5YWtraVwgOwor5ben5omLID4ga291c2h1XCA7CivlhoXmiKYgPiBuYWlzZW5cIDsKK+ecn+WRsyA+IHNoaW5taVwgOwor6Lqr56m6ID4gbWlzb3JhXCA7Civov5Hlm6AgPiBraW4nJ2luXCA7CivojYnlrZAgPiBzb3VzaGlcIDsKK+iKi+eJiCA+IGltb2JhblwgOwor5YWo5paHID4gemVuYnVuXCA7Civlt6Hmi50gPiBqdW5wYWlcIDsKK+eUo+mHkSA+IHNhbmtpblwgOwor55m75qChID4gdG91a291XCA7CivlhajmlbAgPiB6ZW5zdXVcIDsKK+ebo+WuiCA+IGthbnNodVwgOwor5bel5omLID4ga291c2h1XCA7Civlt6XmiL8gPiBrb3Vib3VcIDsKK+WFqOaVlyA+IHplbnBhaVwgOwor55yf5ZCmID4gc2hpbnBpXCA7Civoi6XmnKggPiB3YWthZ2lcIDsKK+WIl+WAmSA+IHJla2tvdVwgOwor6L+95YS6ID4gdHN1aW5hXCA7CivlhrflrrMgPiByZWlnYWlcIDsKK+W6iuS4iiA+IHl1a2F1ZVwgOwor5YG96IacID4gZ2ltYWt1XCA7CivluIbluIMgPiBob251bm9cIDsKK+WHneWbuiA+IGd5b3Vrb1wgOwor6YCU5LitID4gdG9jaHV1XCA7CivlhoXmhoIgPiBuYWl5dXVcIDsKK+S/l+mWkyA+IHpva2thblwgOwor5L+D6Z+zID4gc29rdW9uXCA7CivlsI/pqqggPiBrb2JvbmVcIDsKK+W5veS9kyA+IHl1dXRhaVwgOwor5YW45ougID4gdGVua3lvXCA7Civnmbvmnb8gPiB0b3ViYW5cIDsKK+WIneS7oyA+IHNob2RhaVwgOwor5YiA5YmjID4gdG91a2VuXCA7CivluLPloLQgPiBjaG91YmFcIDsKK+W5leWQjyA+IGJha3VyaVwgOwor6a2a54GvID4gZ3lvdG91XCA7CivohprouqsgPiBoYWRhbWlcIDsKK+eZluavmyA+IGt1c2VnZVwgOwor5bm45L6/ID4ga291YmluXCA7Civlg63njosgPiBzZW4nJ291XCA7CivluaPliLYgPiBoZWlzZWlcIDsKK+WGjeaAnSA+IHNhaXNoaVwgOwor55yM5Za2ID4ga2VuJydlaVwgOwor6a6u5piOID4gc2VubWVpXCA7CivojZLlpKkgPiBrb3V0ZW5cIDsKK+eUn+mFkiA+IGtpemFrZVwgOwor5YiG5YWaID4gYnVudG91XCA7CivlubTkv7ggPiBuZW5wb3VcIDsKK+WIhuWFiSA+IGJ1bmtvdVwgOwor5YiA5YiDID4gdG91amluXCA7Civlub7kurogPiBpa3VuaW5cIDsKK+iEs+mrhCA+IG5vdXp1aVwgOwor6aml6LazID4ga2lzb2t1XCA7CivlhoXmg4UgPiBuYWlqb3VcIDsKK+ecn+WMlyA+IG1ha2l0YVwgOwor5beo5oKqID4ga3lvYWt1XCA7CivlhoXmgqMgPiBuYWlrYW5cIDsKK+iNiuWmuyA+IGtlaXNhaVwgOwor5YWo5pCNID4gemVuc29uXCA7CivliIPlhYggPiBoYXNha2lcIDsKK+Wxsei3ryA+IHlhbWFqaVwgOwor5YaN5b6BID4gc2Fpc2VpXCA7Civpp7/ppqwgPiBzaHVubWVcIDsKK+eUo+mBkyA+IHNhbmRvdVwgOwor5biv5Z+fID4gdGFpaWtpXCA7CivluIzlsJEgPiBraXNob3VcIDsKK+iIueeqkyA+IHNlbnNvdVwgOwor6L+U5ZOBID4gaGVucGluXCA7CivlsI/pppYgPiBrb2t1YmlcIDsKK+W5tOS9mSA+IG5lbicneW9cIDsKK+eUmOmFuCA+IGthbnNhblwgOwor55Sf6YKEID4gc2Vpa2FuXCA7CivoiLfnqpMgPiBnZW5zb3VcIDsKK+mokumciiA+IHNvdXJlaVwgOwor5bmF5ZOhID4gZnVrdWluXCA7CivlhYnmnaUgPiBrb3VyYWlcIDsKK+iHs+iKuCA+IHNoaWdlaVwgOwor5bm05LyaID4gbmVua2FpXCA7CivpgIDkvJogPiB0YWlrYWlcIDsKK+Wvoem7mSA+IGthbW9rdVwgOwor5YiD5YK3ID4gbmluam91XCA7Civlho3lu7ogPiBzYWlrb25cIDsKK+alteenmCA+IGdva3VoaVwgOwor6YCD5LqhID4gdG91Ym91XCA7CivpgIDku7sgPiB0YWluaW5cIDsKK+WGhuW/gyA+IGVuc2hpblwgOwor5bm05LukID4gbmVucmVpXCA7CivlubTku6MgPiBuZW5kYWlcIDsKK+WCjee3miA+IGJvdXNlblwgOwor5qiZ5peXID4gaHlvdWtpXCA7CivnnIHllrYgPiBzaG91ZWlcIDsKK+W4sOWbvSA+IGtpa29rdVwgOwor552A5LiIID4ga2l0YWtlXCA7CivovrLloLQgPiBub3Vqb3VcIDsKK+i7vea4myA+IGtlaWdlblwgOwor6aqo6JGjID4ga290dG91XCA7CivojZLln44gPiBrb3Vqb3VcIDsKK+i3tei4jyA+IHNlbnRvdVwgOwor6I2Y5ZySID4gc2hvdWVuXCA7CivnmYLmsrsgPiByeW91amlcIDsKK+i+uuWcsCA+IGhlbmNoaVwgOwor6aed6bOlID4gZGFjaG91XCA7CivlhoXlvoQgPiBuYWlrZWlcIDsKK+iFuemDqCA+IGZ1a3VidVwgOwor5Ye65YWIID4gZGVzYWtpXCA7CivlhYPmnaUgPiBnYW5yYWlcIDsKK+ecn+WGrCA+IG1hZnV5dVwgOwor6Lyq5qC9ID4gcmluc2FpXCA7Civlt6jlvL4gPiBreW9kYW5cIDsKK+WFg+acrCA+IGdlbnBvblwgOwor5YWJ5pmvID4ga291a2VpXCA7Civlh7blhbcgPiBreW91Z3VcIDsKK+iHquiLpSA+IGppamFrdVwgOwor5bm05LitID4gbmVuanV1XCA7CivnnIvlj5YgPiBrYW5zaHVcIDsKK+eZuuaVoyA+IGhhc3NhblwgOwor5bir5ZujID4gc2hpZGFuXCA7Civpp7Hpp50gPiByYWt1ZGFcIDsKK+WGheW7tyA+IG5haXRlaVwgOwor5YKN57O7ID4gYm91a2VpXCA7CivliIbkvZMgPiBidW50YWlcIDsKK+i/juWQiCA+IGdlaWdvdVwgOwor5q+O44CFID4gbWFpbWFpXCA7Civkv67pgKAgPiBzaHV6b3VcIDsKK+eZu+aUgCA+IHRvdWhhblwgOwor6I2J5aCCID4gc291ZG91XCA7CivlubLkuI4gPiBrYW4nJ3lvXCA7CivliIbkvJogPiBidW5rYWlcIDsKK+mrgOiCiSA+IGhpbmlrdVwgOwor5qmf5bGLID4gaGF0YXlhXCA7CivlhoXluq0gPiBuYWl0ZWlcIDsKK+i+suWcsCA+IG5vdWNoaVwgOwor5YWs5oakID4ga291ZnVuXCA7Civnm5vlpKcgPiBzZWlkYWlcIDsKK+iIquepuiA+IGtvdWt1dVwgOwor5biC5a2QID4gaWNoaWtvXCA7CivlsIrpoZQgPiBzb25nYW5cIDsKK+i7jeeKrCA+IGdlbmtlblwgOwor5YWI5pa5ID4gc2VucG91XCA7Civkv67ovp4gPiBzaHV1amlcIDsKK+eUn+i6qyA+IG5hbWFtaVwgOwor5qiq5omLID4geW9rb3RlXCA7CivlgZzoiLkgPiB0ZWlzZW5cIDsKK+ecjOWLoiA+IGtlbnNlaVwgOwor5YWt5oSfID4gcm9ra2FuXCA7CivnnJ/lgb0gPiBzaGluZ2lcIDsKK+iIqueoiyA+IGtvdXRlaVwgOwor5YiG5LmXID4gYnVuam91XCA7CivojYnlnLAgPiBzb3VjaGlcIDsKK+WFg+aXpiA+IGdhbnRhblwgOwor5YWI5pS7ID4gc2Vua291XCA7Civlh6bliJEgPiBzaG9rZWlcIDsKK+eUu+iqvyA+IGdhY2hvdVwgOwor5YaX5a6YID4gam91a2FuXCA7Civlh6bliIYgPiBzaG9idW5cIDsKK+i7veawtCA+IGtlaXN1aVwgOwor6Ieq6IW5ID4gamliYXJhXCA7CivnnJ/lgIsgPiBzaGlua29cIDsKK+S+oemhjSA+IGthZ2FrdVwgOwor5YiG5LiOID4gYnVuJyd5b1wgOwor6LyD5q2jID4ga291c2VpXCA7Civlh6blh6YgPiBzaG9zaG9cIDsKK+iKkua0iyA+IGJvdXlvdVwgOwor5bCP6ZuqID4ga295dWtpXCA7CivlsI/pm6ggPiBrb3NhbWVcIDsKK+W3oeW5uCA+IGp1bmtvdVwgOwor5bCO6Zu7ID4gZG91ZGVuXCA7CivlhbXlvbkgPiBoZWlla2lcIDsKK+Wwj+mbgCA+IGtvZ2FyYVwgOwor55yf5L6hID4gc2hpbmthXCA7Civov5HliIogPiBraW5rYW5cIDsKK+WHveS6uiA+IGthbmppblwgOwor55uX5aGBID4gdG91cnVpXCA7CivlhbzluK8gPiBrZW50YWlcIDsKK+iLpuaJiyA+IG5pZ2F0ZVwgOwor5a++6aGUID4gdGFpZ2FuXCA7Civoi6XmiYsgPiB3YWthdGVcIDsKK+W3qOWzsCA+IGt5b2hvdVwgOwor5Yas5aC0ID4gZnV5dWJhXCA7CivlgqznnKAgPiBzYWltaW5cIDsKK+WEquaflCA+IHl1dWp1dVwgOwor6Iq45p6XID4gZ2VpcmluXCA7Civou5Lnga8gPiBrZW50b3VcIDsKK+ebuOWPjSA+IHNvdWhhblwgOwor5beo5bKpID4ga3lvZ2FuXCA7CivluK/lkIwgPiB0YWlkb3VcIDsKK+W4uOWLpCA+IGpvdWtpblwgOwor6I2Y5Y+4ID4gc2hvdWppXCA7CivlhazlvbkgPiBrb3Vla2lcIDsKK+WFqOW/qyA+IHplbmthaVwgOwor5YaF5bGkID4gbmFpc291XCA7Civpq5jnrYkgPiBrb3V0b3VcIDsKK+WHjeWOnyA+IHRvdWdlblwgOwor5qW955WMID4gZ2Fra2FpXCA7CivoirHmn7MgPiBrYXJ5dXVcIDsKK+iKseafsSA+IGthY2h1dVwgOwor6I2Y5Y6zID4gc291Z29uXCA7Civlh7rkuJYgPiBzaHVzc2VcIDsKK+WHtuS6iyA+IGt5b3VqaVwgOwor5biC5aSWID4gc2hpZ2FpXCA7Civnl5jnmKEgPiB0b3Vzb3VcIDsKK+WHhOWRsyA+IHN1Z29taVwgOwor6Ieq57+SID4gamlzaHV1XCA7Civlh6Hlg6cgPiBib25zb3VcIDsKK+WvvumdoiA+IHRhaW1lblwgOwor55Wq6Iy2ID4gYmFuY2hhXCA7CivlhorlrZAgPiBzb3VzaGlcIDsKK+eVsOiJsiA+IGlzaG9rdVwgOwor5bir5Y+LID4gc2hpeXV1XCA7Civnl5jnl5UgPiB0b3Vrb25cIDsKK+WGhuWvgiA+IGVuamFrdVwgOwor5YWo5b2iID4gemVua2VpXCA7CivmrrXjgIUgPiBkYW5kYW5cIDsKK+W3nuW0jiA+IHN1c2FraVwgOwor6L+R5YKNID4ga2luYm91XCA7CivlhaXlvqEgPiBueXV1Z29cIDsKK+WGheWuuSA+IG5haXlvdVwgOwor5YaF5a6uID4gbmFpZ3V1XCA7Civlhazluq0gPiBrb3V0ZWlcIDsKK+WGheWumiA+IG5haXRlaVwgOwor5biC5aG1ID4gc2hpamluXCA7Civot7XoqIAgPiBzZW5nZW5cIDsKK+iKs+abuCA+IGhvdXNob1wgOwor55So6KuHID4geW91ZGFuXCA7CivoirHmnKggPiBrYWJva3VcIDsKK+iNkuWOnyA+IGtvdWdlblwgOwor5YWs5bmzID4ga291aGVpXCA7CivlhoXlrasgPiBuYWlzb25cIDsKK+W4guWgtCA+IHNoaWpvdVwgOwor55S36KOFID4gZGFuc291XCA7Civkv53ouqsgPiBob3NoaW5cIDsKK+eZuuaGpCA+IGhhcHB1blwgOwor5YaN5amaID4gc2Fpa29uXCA7CivoiIznq68gPiB6ZXR0YW5cIDsKK+WFqOW7gyA+IHplbnBhaVwgOwor5YWI5oqVID4gc2VudG91XCA7CivlgZXogIEgPiBrYWlyb3VcIDsKK+WFqOW6lyA+IHplbnRlblwgOwor55uy5YuVID4gbW91ZG91XCA7Civlr77pmaMgPiB0YWlqaW5cIDsKK+S+i+mhjCA+IHJlaWRhaVwgOwor5biv5YmjID4gdGFpa2VuXCA7CivluJ3lkb0gPiB0ZWltZWlcIDsKK+i7n+azpSA+IG5hbmRlaVwgOwor6IyF5bGLID4gYm91b2t1XCA7CivlhaXluqsgPiBueXV1a29cIDsKK+eUqOiogCA+IHlvdWdlblwgOwor55m65oSPID4gaGF0c3VpXCA7CivlhaXlupwgPiBueXV1ZnVcIDsKK+iKuOaWhyA+IGdlaWJ1blwgOwor5Yeh5L6LID4gaGFucmVpXCA7CivlsILploAgPiBzZW5tb25cIDsKK+eZuuaDsyA+IGhhc3NvdVwgOwor5biv5YiAID4gdGFpdG91XCA7Civov5HkvZMgPiBraW50YWlcIDsKK+iLpuW/gyA+IGt1c2hpblwgOwor5qqA5ZCbID4gZGFua3VuXCA7CivlhbzlrpggPiBrZW5rYW5cIDsKK+WFqOW4giA+IHplbnNoaVwgOwor5bCW6YutID4gc2VuJydlaVwgOwor5YWo5be7ID4gemVua2FuXCA7CivlsL/ot68gPiBueW91cm9cIDsKK+ecjOS8miA+IGtlbmthaVwgOwor55uk5Y+wID4gYmFuZGFpXCA7CivluIPlnLAgPiBudW5vamlcIDsKK+iHs+e0lCA+IHNoaWp1blwgOwor6I2J5Y6fID4gc291Z2VuXCA7Civoh6rnuJsgPiBqaWJha3VcIDsKK+aihemFkiA+IHVtZXNodVwgOwor5YWD5omLID4gbW90b2RlXCA7CivnnIzku6QgPiBrZW5yZWlcIDsKK+WvnemmliA+IG5la3ViaVwgOwor55Sf6KqVID4gc2VpdGFuXCA7Civkv7Poq6cgPiBoYWlrYWlcIDsKK+i7n+awtCA+IG5hbnN1aVwgOwor6L+R5LujID4ga2luZGFpXCA7CivnnIzkurogPiBrZW5qaW5cIDsKK+ebhuWcsCA+IGJvbmNoaVwgOwor5YaN5aSJID4gc2FpaGVuXCA7Civlgb3np7AgPiBnaXNob3VcIDsKK+i7jea4ryA+IGd1bmtvdVwgOwor5YWa5byKID4gdG91aGVpXCA7Civlh6bkuJYgPiBzaG9zZWlcIDsKK+WGt+WOsyA+IHJlaWdlblwgOwor6Iet57SgID4gc2h1dXNvXCA7CivlhoXlprsgPiBuYWlzYWlcIDsKK+iMhOWtkCA+IG5hc3ViaVwgOwor55uf5Y+LID4gbWVpeXV1XCA7Civnm5flk4EgPiB0b3VoaW5cIDsKK+eUn+ioiCA+IHNlaWtlaVwgOwor6IiX55+zID4gaG9zZWtpXCA7Civoh6rntaYgPiBqaWt5dXVcIDsKK+i/lOS4iiA+IGhlbmpvdVwgOwor6a2a5qKvID4gZ3lvdGVpXCA7Civnm5vlkI0gPiBzZWltZWlcIDsKK+WFqOWztiA+IHplbnRvdVwgOwor6LWt6aGUID4gc2hhZ2FuXCA7CivlhbHlr50gPiB0b21vbmVcIDsKK+Wwj+mKrSA+IGtvemVuaVwgOwor55qH5bidID4ga291dGVpXCA7CivlhoXlpY8gPiBuYWlzb3VcIDsKK+i/keS4liA+IGtpbnNlaVwgOwor6Ieo57WCID4gcmluanV1XCA7CivluLjkvosgPiBqb3VyZWlcIDsKK+iNieWJtSA+IHNvdXNvdVwgOwor5YWo5bK4ID4gemVuZ2FuXCA7Civlt6jlpKcgPiBreW9kYWlcIDsKK+i+m+WRsyA+IGthcmFtaVwgOwor5YaF5aSWID4gbmFpZ2FpXCA7Civoi6XlubIgPiBqYWtrYW5cIDsKK+WxjeirjCA+IHNoaWthblwgOwor55uu5YWIID4gbWVzYWtpXCA7CivluKvlg6cgPiBzaGlzb3VcIDsKK+W4uOS9kyA+IGpvdXRhaVwgOwor55uu5YWDID4gbWVtb3RvXCA7CivluLjkvY8gPiBqb3VqdXVcIDsKK+WFqOWxsSA+IHplbnphblwgOwor6L6y5YW1ID4gbm91aGVpXCA7Civlgo3nm64gPiBoYXRhbWVcIDsKK+WxleimsyA+IHRlbmthblwgOwor5bGV6KanID4gdGVucmFuXCA7CivnlJjoqIAgPiBrYW5nZW5cIDsKK+W4uOS8miA+IGpvdWthaVwgOwor5bel5aSnID4ga291ZGFpXCA7CivlhazlrrMgPiBrb3VnYWlcIDsKK+W4peWFiCA+IHNvc3NlblwgOwor5bi45Lu7ID4gam91bmluXCA7Civkv6/op5IgPiBmdWtha3VcIDsKK+iLpeW4gyA+IHdha2FtZVwgOwor5bid5Yi2ID4gdGVpc2VpXCA7Civnl7TmvKIgPiBjaGlrYW5cIDsKK+WFrOWumiA+IGtvdXRlaVwgOwor6LuN5rOVID4gZ3VucG91XCA7CivlsI/ph5EgPiBrb2dhbmVcIDsKK+eZu+W6uCA+IHRvdXlvdVwgOwor5YWo5bCEID4gemVuc2hhXCA7CivojYrlhqAgPiBrZWlrYW5cIDsKK+WGt+WJmyA+IHJlaWdvdVwgOwor5bi45Lq6ID4gam91amluXCA7CivprZrmnb8gPiBneW9iYW5cIDsKK+W0qea9sCA+IGhvdWthaVwgOwor5YWs5a2QID4ga291c2hpXCA7Civlg6fmraMgPiBzb3Vqb3VcIDsKK+ahkemWgCA+IHNvdW1vblwgOwor5YaF5aCxID4gbmFpaG91XCA7CivlhYHmga0gPiBpbmt5b3VcIDsKK+WFieW9qSA+IGtvdXNhaVwgOwor6Lu45pyoID4gamlrdWdpXCA7CivlhYflvpIgPiBreW91dG9cIDsKK+ebuOS8nSA+IHNvdWRlblwgOwor6Laz6Lm0ID4gYXNoaWdlXCA7CivluJ3lhqAgPiB0ZWlrYW5cIDsKK+S9temfsyA+IHBpbicnaW5cIDsKK+mrmOebriA+IHRha2FtZVwgOwor5YaG5Z+fID4gZW4nJ2lraVwgOwor5a+S6aKoID4ga2FucHV1XCA7Civpp4XpoK0gPiBla2l0b3VcIDsKK+WCvueAiSA+IGtlaXNoYVwgOwor5Ya35YeNID4gcmVpdG91XCA7Civou43msJEgPiBndW5taW5cIDsKK+mqqOeyiSA+IGtvcHB1blwgOwor55eF55CGID4gYnlvdXJpXCA7CivluLDkvJEgPiBraWt5dXVcIDsKK+W4sOS8jyA+IGtpZnVrdVwgOwor5bi45LiWID4gdG9rb3lvXCA7CivlgrLnhLYgPiBnb3V6ZW5cIDsKK+iGteiHkyA+IHN1aXpvdVwgOwor5YW25aW0ID4gc29pdHN1XCA7CivlhYXlvZMgPiBqdXV0b3VcIDsKK+S/ruijnCA+IHNodXVob1wgOwor5biD5ZGKID4gZnVrb2t1XCA7CivnmoflsYUgPiBrb3VreW9cIDsKK+iIjueboyA+IHNoYWthblwgOwor55ax55ihID4gaG91c291XCA7CivmqKnlrpggPiBrZW5rYW5cIDsKK+WEkuaVmSA+IGp1a3lvdVwgOwor5biw5LqsID4ga2lreW91XCA7Civkv5forbAgPiB6b2t1Z2lcIDsKK+WGt+WFiSA+IHJlaWtvdVwgOwor55u45LmXID4gc291am91XCA7Civlr53pmpsgPiBuZWdpd2FcIDsKK+W4q+S8nSA+IHNoaWRlblwgOwor5YaF5ZywID4gbmFpY2hpXCA7CivlhYnlubQgPiBrb3VuZW5cIDsKK+eahOWxiyA+IHRla2l5YVwgOwor55uK5Y+LID4gZWtpeXV1XCA7CivlhoXlnKggPiBuYWl6YWlcIDsKK+WFteWkiSA+IGhlaWhlblwgOwor5bGx6JG1ID4gd2FzYWJpXCA7CivlsI/pgY4gPiBzaG91a2FcIDsKK+WFteWjqyA+IGhlaXNoaVwgOwor5YG155+lID4gdGVpY2hpXCA7CivnlqvnmZggPiBla2lyZWlcIDsKK+ebsuS6uiA+IG1vdWppblwgOwor55qH5a6uID4ga291Z3V1XCA7Civog73pnaIgPiBub3VtZW5cIDsKK+ebm+WFuCA+IHNlaXRlblwgOwor5L+d6Ki8ID4gaG9zaG91XCA7CivmpJznrpcgPiBrZW56YW5cIDsKK+eah+WulyA+IGtvdXNvdVwgOwor5YWI5birID4gc2Vuc2hpXCA7CivlhYjluJ0gPiBzZW50ZWlcIDsKK+aguembqiA+IG5leXVraVwgOwor6IyF5aC0ID4ga2F5YWJhXCA7CivluLDkuIAgPiBraWl0c3VcIDsKK+eah+WtqyA+IGtvdXNvblwgOwor5L6u6L6xID4gYnVqb2t1XCA7Civnlarnt5ogPiBiYW5zZW5cIDsKK+i+suS8miA+IG5vdWthaVwgOwor5L+X6KqeID4gem9rdWdvXCA7Civnm67ku4ogPiBtb2trb25cIDsKK+WGpeWKoCA+IG15b3VnYVwgOwor6Iel56ucID4gZ2FyeW91XCA7Civnm7TkuIsgPiBjaG9ra2FcIDsKK+WwuOirjCA+IHNoaWthblwgOwor5bGx6I+cID4gc2Fuc2FpXCA7Civou6LmoKEgPiB0ZW5rb3VcIDsKK+i8quW9oiA+IHJpbmtlaVwgOwor5L+X6KmxID4gem9rdXdhXCA7CivnlqXnmawgPiBrYWlzZW5cIDsKK+iIueeBryA+IHNlbnRvdVwgOwor6Ieq56ewID4gamlzaG91XCA7Civoi6blraYgPiBrdWdha3VcIDsKK+WFg+W4pSA+IGdlbnN1aVwgOwor6I2J5L2TID4gc291dGFpXCA7Civnmb3lr78gPiBoYWt1anVcIDsKK+WGpeWIqSA+IG15b3VyaVwgOwor5biC5YuiID4gc2hpc2VpXCA7CivkvZPpqJMgPiB0YWlrZW5cIDsKK+eZuuWxlSA+IGhhdHRlblwgOwor5beh5ZueID4ganVua2FpXCA7Civmp4vmlocgPiBrb3VidW5cIDsKK+iIt+eBryA+IGdlbnRvdVwgOwor6Lyq5bu7ID4gcmluJyduZVwgOwor5YW45Z6LID4gdGVua2VpXCA7CivlsbHojZggPiBzYW5zb3VcIDsKK+WFrOWjsiA+IGtvdWJhaVwgOwor6aao6aaZID4ga2Vpa291XCA7CivohLHpgIAgPiBkYXR0YWlcIDsKK+S/l+inoyA+IHpva2thaVwgOwor6IOM6bCtID4gc2ViaXJlXCA7CivnmbrlsIQgPiBoYXNzaGFcIDsKK+WDmuapnyA+IHJ5b3VraVwgOwor5YWo5aSpID4gemVudGVuXCA7CivmoKHpoqggPiBrb3VmdXVcIDsKK+i1pOmWgCA+IGFrYW1vblwgOwor5Yal5YalID4gbWVpbWVpXCA7CivlsY3onYsgPiBzaGlyb3VcIDsKK+eVnee5lCA+IHVuZW9yaVwgOwor5L+X6KaLID4gem9ra2VuXCA7CivlgInojbcgPiBrdXJhbmlcIDsKK+iKs+aDhSA+IGhvdWpvdVwgOwor5biC5Yi2ID4gc2hpc2VpXCA7CivpppbprYEgPiBzaHVrYWlcIDsKK+WFpeWkqyA+IG55dXVmdVwgOwor5YWo5aOKID4gemVua2FpXCA7CivnlJ/olpEgPiBzaG91Z2FcIDsKK+WFrOWgsSA+IGtvdWhvdVwgOwor5YSq5oCnID4geXV1c2VpXCA7CivlhbXlm6MgPiBoZWlkYW5cIDsKK+WvvumBhyA+IHRhaWd1dVwgOwor55Sf6JWDID4gc2VpYmFuXCA7CivkvpvpgLIgPiBndXNoaW5cIDsKK+WFjeWumCA+IG1lbmthblwgOwor5qGf6YGTID4gc2FuZG91XCA7CivlhYjlsI4gPiBzZW5kb3VcIDsKK+W4guWGhSA+IHNoaW5haVwgOwor5bCP6LevID4gc2hvdWppXCA7Civou73mjJkgPiBrZWlreW9cIDsKK+iJr+ahiCA+IHJ5b3VhblwgOwor5a656aGUID4geW91Z2FuXCA7CivlhbzllrYgPiBrZW4nJ2VpXCA7CivlhoblkbMgPiBtYXJ1bWlcIDsKK+ebm+S8miA+IHNlaWthaVwgOwor5YaG5ZGoID4gZW5zaHV1XCA7CivoirjlvZMgPiBnZWl0b3VcIDsKK+WEquW+hSA+IHl1dXRhaVwgOwor55SY6JavID4ga2Fuc2hvXCA7CivlhoXlkb0gPiBuYWltZWlcIDsKK+i7iuaknCA+IHNoYWtlblwgOwor6Iqz5b+XID4gaG91c2hpXCA7CivlsI/otrMgPiBrb2FzaGlcIDsKK+eah+WkqSA+IGtvdXRlblwgOwor5a++6L66ID4gdGFpaGVuXCA7CivotoXpgY4gPiBjaG91a2FcIDsKK+ebm+S7oyA+IHNlaWRhaVwgOwor6IuX5a2XID4gbXlvdWppXCA7Civog4zpqqggPiBzZWJvbmVcIDsKK+WGheWQqyA+IG5haWdhblwgOwor6aas6Z2pID4gYmFrYWt1XCA7Civnm5/kuLsgPiBtZWlzaHVcIDsKK+WGheWQkSA+IG5haWtvdVwgOwor5YWJ5a2QID4ga291c2hpXCA7CivpppnpppkgPiBrb3Vrb3VcIDsKK+WGheWQiCA+IG5haWdvdVwgOwor6Ii55rigID4gc2Vua3lvXCA7CivnlJjolJcgPiBrYW5zaG9cIDsKK+W3qOWPoyA+IGt5b2tvdVwgOwor5YWs5ZujID4ga291ZGFuXCA7Civlho3li6QgPiBzYWlraW5cIDsKK+W4guWCtSA+IHNoaXNhaVwgOwor5bKp56m0ID4gaXdhYW5hXCA7CivlhYPlr4cgPiBnZW5rb3VcIDsKK+S9memchyA+IHlvc2hpblwgOwor5YWo5ZywID4gemVuY2hpXCA7CivnlY/nuK4gPiBpc2h1a3VcIDsKK+WGleWGoCA+IGJlbmthblwgOwor6Iy25LyaID4gY2hha2FpXCA7CivnkbbpoZQgPiB5b3VnYW5cIDsKK+S9jumgrSA+IHRlaXRvdVwgOwor5YaG5Y2TID4gZW50YWt1XCA7Civlr4bplokgPiBtaXBwZWlcIDsKK+WxseiDjCA+IHlhbWFzZVwgOwor5qeY5oWLID4geW91dGFpXCA7CivojLbku6MgPiBjaGFkYWlcIDsKK+S9k+mdoiA+IHRhaW1lblwgOwor5YKs5raZID4gc2FpcnVpXCA7Civog4zpprMgPiBoYWljaGlcIDsKK+WFseWWtiA+IGt5b3VlaVwgOwor6ISx6LWwID4gZGFzc291XCA7Civnmb7lpJwgPiBtb21veW9cIDsKK+iLpuWigyA+IGt1a3lvdVwgOwor5YaZ5YOPID4gc2hhem91XCA7Civlrp/pqJMgPiBqaWtrZW5cIDsKK+WFpeWckiA+IG55dXVlblwgOwor6Iy25Lq6ID4gY2hhamluXCA7Civoi6bloakgPiBuaWdhcmlcIDsKK+eZuuWlriA+IGhhcHB1blwgOwor6Iux5Zu9ID4gZWlrb2t1XCA7CivlhoXljIUgPiBuYWlob3VcIDsKK+WGjeWIiiA+IHNhaWthblwgOwor55So6Ii5ID4geW91c2VuXCA7Civpq5jnh6UgPiBrb3Vzb3VcIDsKK+WGheWLpCA+IG5haWtpblwgOwor6Iqx5bqKID4ga2FzaG91XCA7CivogrrprZogPiBoYWlneW9cIDsKK+iHqueZvSA+IGppaGFrdVwgOwor5a626ZuGID4ga2FzaHV1XCA7Civou43mm7kgPiBndW5zb3VcIDsKK+i7jeabuCA+IGd1bnNob1wgOwor5YKN54K5ID4gYm91dGVuXCA7Civkvr/opqcgPiBiZW5yYW5cIDsKK+eZuuWjsCA+IGhhc3NlaVwgOwor55m75aOHID4gdG91ZGFuXCA7Civmp4vmiJAgPiBrb3VzZWlcIDsKK+aknOecvCA+IGtlbmdhblwgOwor5YaN5YaNID4gc2Fpc2FpXCA7CivlgJLnva4gPiB0b3VjaGlcIDsKK+agoemWgCA+IGtvdW1vblwgOwor6aaW6aGMID4gc2h1ZGFpXCA7CivlhoXliZsgPiBuYWlnb3VcIDsKK+i7kuaYgiA+IGtlbmtvdVwgOwor5YWI5aa7ID4gc2Vuc2FpXCA7Civlt53ljp8gPiBrYXdhcmFcIDsKK+W4guS8miA+IHNoaWthaVwgOwor6aqo55u4ID4ga29zc291XCA7Civou6Lmj5sgPiB0ZW5rYW5cIDsKK+WFseWSjCA+IGt5b3V3YVwgOwor55SY6I2JID4ga2Fuem91XCA7CivlhoXliIYgPiBuYWlidW5cIDsKK+eUmOiMtiA+IGFtYWNoYVwgOwor55m75aC0ID4gdG91am91XCA7Civlr53phZIgPiBuZXpha2VcIDsKK+WFhOWniSA+IGtlaXNoaVwgOwor5q2j44CFID4gc2Vpc2VpXCA7CivluILkurogPiBzaGlqaW5cIDsKK+WFhOWmuSA+IGtlaW1haVwgOwor5YWl5Za2ID4gbnl1dWVpXCA7Civlhbzli6QgPiBrZW5raW5cIDsKK+WFg+WniyA+IGdlbnNoaVwgOwor6IaP6IKTID4ga291a291XCA7Civpq5jngrkgPiBrb3V0ZW5cIDsKK+i7kuaVsCA+IGtlbnN1dVwgOwor5YWI5aSpID4gc2VudGVuXCA7CivlhYjlpJwgPiBzZW4nJ3lhXCA7CivluILkupUgPiBzaGlzZWlcIDsKK+WGhuWGhSA+IGVuJyduYWlcIDsKK+WGheWGhSA+IG5haW5haVwgOwor6LuN5peFID4gZ3VucnlvXCA7CivlhoXlhbggPiBuYWl0ZW5cIDsKK+i7veW/qyA+IGtlaWthaVwgOwor6Iiq5rW3ID4ga291a2FpXCA7Civmp4vmg7MgPiBrb3Vzb3VcIDsKK+WutumVtyA+IGthY2hvdVwgOwor5YWo5ZOhID4gemVuJydpblwgOwor6Ieo55WMID4gcmlua2FpXCA7Civpq5jngKwgPiB0YWthc2VcIDsKK+WFqOWTgSA+IHplbnBpblwgOwor5qSc55ewID4ga2VudGFuXCA7CivlhaXllJAgPiBuaXR0b3VcIDsKK+W4guS4iiA+IHNoaWpvdVwgOwor5bCP6KmxID4gc2hvdXdhXCA7Civnmofll6MgPiBrb3VzaGlcIDsKK+W3peWFtSA+IGtvdWhlaVwgOwor6IOM6Z2pID4gc2VnYXdhXCA7Civlt6jlhIQgPiBreW9va3VcIDsKK+iDjOmdoiA+IGhhaW1lblwgOwor6LuN5pS/ID4gZ3Vuc2VpXCA7CivlgrXmqKkgPiBzYWlrZW5cIDsKK+WFiOWhlCA+IHNlbnRvdVwgOwor5YWs5Y+4ID4ga291c2hpXCA7CivovKrlp6YgPiByaW5rYW5cIDsKK+iIquazlSA+IGtvdWhvdVwgOwor5beo5YOPID4ga3lvem91XCA7CivnlpHnjYQgPiBnaWdva3VcIDsKK+Wwj+iogCA+IGtvZ290b1wgOwor5YaF5YK1ID4gbmFpc2FpXCA7CivmpJznlaogPiBrZW5iYW5cIDsKK+WFheWhqyA+IGp1dXRlblwgOwor5bGk576kID4gc291Z3VuXCA7CivoirHlsYsgPiBoYW5heWFcIDsKK+i7n+aKlSA+IG5hbnRvdVwgOwor5YaF5YG1ID4gbmFpdGVpXCA7Civlhajlj7IgPiB6ZW5zaGlcIDsKK+i7ouaIpiA+IHRlbnNlblwgOwor5YG254S2ID4gZ3V1emVuXCA7CivnlJ/ogrIgPiBzZWlpa3VcIDsKK+iGgOiDsSA+IGJvdWtvdVwgOwor6Lui5oiQID4gdGVuc2VpXCA7CivlhbXliLYgPiBoZWlzZWlcIDsKK+WyqeebpCA+IGdhbmJhblwgOwor6a2U5oCnID4gbWFzaG91XCA7CivlhbHliqkgPiBreW91am9cIDsKK+i8g+W3riA+IGtha3VzYVwgOwor5qOS57eaID4gYm91c2VuXCA7CivlhavljYEgPiB5YXNvamlcIDsKK+WFteWIgyA+IGhlaWppblwgOwor5YaN5LyaID4gc2Fpa2FpXCA7CivoirHlrqIgPiBrYWtha3VcIDsKK+iKseWunyA+IGhhbmFtaVwgOwor6IuX5ZyDID4gYnlvdWhvXCA7Civlho3ku7sgPiBzYWluaW5cIDsKK+S9memMsiA+IHlvcm9rdVwgOwor55eF5rCXID4gYnlvdWtpXCA7Civog7jpg6ggPiBreW91YnVcIDsKK+mnhemAkyA+IGVraXRlaVwgOwor5YWI5ZyoID4gc2VuemFpXCA7Civlrp/pmpsgPiBqaXNzYWlcIDsKK+eUn+iAhSA+IHNob3VqYVwgOwor55Sx57eSID4geXVpc2hvXCA7Civkv7PogZYgPiBoYWlzZWlcIDsKK+WxseezuyA+IHNhbmtlaVwgOwor55S357O7ID4gZGFua2VpXCA7CivkvbPovrAgPiBrYXNoaW5cIDsKK+WvvuirliA+IHRhaXJvblwgOwor5qip5Y6fID4ga2VuZ2VuXCA7Civlr67osrsgPiByeW91aGlcIDsKK+WvvuirhyA+IHRhaWRhblwgOwor6Lqr5p+EID4gbWlnYXJhXCA7CivlgKvnpL4gPiByaW5zaGFcIDsKK+W3qOS9kyA+IGt5b3RhaVwgOwor5YaF5L2PID4gbmFpanV1XCA7CivnmoflkI4gPiBrb3Vnb3VcIDsKK+Wwj+iiliA+IGtvc29kZVwgOwor5a++6KqeID4gdHN1aWdvXCA7Civog73ovq8gPiBub3ViZW5cIDsKK+iLpuWRsyA+IG5pZ2FtaVwgOwor5YOn5oi/ID4gc291Ym91XCA7CivlhazliKQgPiBrb3VoYW5cIDsKK+mtheaDkSA+IG1pd2FrdVwgOwor5YWs5YiKID4ga291a2FuXCA7Civlho3kuIkgPiBzYWlzYW5cIDsKK+WFh+WZqCA+IGt5b3VraVwgOwor5bO25rCRID4gdG91bWluXCA7CivmqKnli6IgPiBrZW5zZWlcIDsKK+W3qOS6uiA+IGt5b2ppblwgOwor5YaF5LqJID4gbmFpc291XCA7CivlsIboo5wgPiBzaG91aG9cIDsKK+WGheS5sSA+IG5haXJhblwgOwor5YWO5ZSHID4gdG9zaGluXCA7CivlhbzkvbUgPiBrZW5wZWlcIDsKK+W3peS6uiA+IGtvdWppblwgOwor6Iq45aSnID4gZ2VpZGFpXCA7CivlhazlhZogPiBrb3V0b3VcIDsKK+iHqueIhiA+IGppYmFrdVwgOwor6Ii35qKvID4gZ2VudGVpXCA7CivohLHooaMgPiBkYXRzdWlcIDsKK+WGhuS4mCA+IGVua3l1dVwgOwor5Lya6aSoID4ga2Fpa2FuXCA7Civoip3lsYUgPiBzaGliYWlcIDsKK+i7n+aApyA+IG5hbnNlaVwgOwor55qG5YukID4ga2Fpa2luXCA7Civlt6jkuIcgPiBreW9tYW5cIDsKK+i7jeaJhyA+IGd1bnNlblwgOwor5p+76ZayID4gc2FldHN1XCA7Civlr7joqIAgPiBzdW5nZW5cIDsKK+WvhumAgSA+IG1pc3NvdVwgOwor6Lyq5ZueID4gcmluJyduZVwgOwor55So57SZID4geW91c2hpXCA7Civlr4TpgLIgPiBraXNoaW5cIDsKK+eXlOaguCA+IGppa2FrdVwgOwor5YWo5YWNID4gemVubWVuXCA7CivnmbrlkJEgPiBoYWtrb3VcIDsKK+S9k+mHjSA+IHRhaWp1dVwgOwor5YWs5YK1ID4ga291c2FpXCA7CivlhZrli6IgPiB0b3VzZWlcIDsKK+ajhOe0hCA+IGtpeWFrdVwgOwor5L6N6KqtID4gamlkb2t1XCA7CivpqqjniYwgPiBrYXJ1dGFcIDsKK+WBtOa6nSA+IHNva2tvdVwgOwor5a+p6K2wID4gc2hpbmdpXCA7CivpqqjniYcgPiBrb3BwZW5cIDsKK+WCvuaWnCA+IGtlaXNoYVwgOwor5YSS5a2mID4ganVnYWt1XCA7Civoh6rnhLYgPiBzaGl6ZW5cIDsKK+WwguihjCA+IHNlbmtvdVwgOwor6LWk6LWkID4gYWthYWthXCA7CivoibLmgqogPiBpcm9ha3VcIDsKK+iLpuWKmyA+IGt1dXJpaVwgOwor6Lqr5pa5ID4gbWlrYXRhXCA7Civmpbfmm7ggPiBrYWlzaG9cIDsKK+WunemRkSA+IGhvdWthblwgOwor5Lya6aCtID4ga2FpdG91XCA7Civkv6HogIUgPiBzaGluamFcIDsKK+i1t+iriyA+IGtpc2hvdVwgOwor6Ia/55iNID4gbm91eW91XCA7CivmpoLmlbAgPiBnYWlzdXVcIDsKK+iKuOWfnyA+IGdlaWlraVwgOwor5bCP6JmOID4ga29kb3JhXCA7CivoibLmgYsgPiBpcm9rb2lcIDsKK+iCuumWgCA+IGhhaW1vblwgOwor5YW15LuXID4gaGVpam91XCA7Civlrrbpg7cgPiBrYWt5b3VcIDsKK+eVoueUnyA+IGhpc3NlaVwgOwor5L+h576pID4gc2hpbmdpXCA7CivlsrPniLYgPiBnYWt1ZnVcIDsKK+mrmOautSA+IGtvdWRhblwgOwor55Sf57SZID4ga2lnYW1pXCA7Civohr/nlrEgPiBub3Vob3VcIDsKK+S+i+iogCA+IHJlaWdlblwgOwor55qH5YW4ID4ga291dGVuXCA7CivlhYjlkJsgPiBzZW5rdW5cIDsKK+S9s+izniA+IGthc2hvdVwgOwor5YWs5L6vID4ga291a291XCA7CivotaTosp0gPiBha2FnYWlcIDsKK+S+i+inoyA+IHJlaWthaVwgOwor55qG5YW1ID4ga2FpaGVpXCA7Civou43mg4UgPiBndW5qb3VcIDsKK+mrmOatryA+IHRha2FiYVwgOwor5YW15LmxID4gaGVpcmFuXCA7CivkvZXpgY0gPiBuYW5iZW5cIDsKK+WFrOS9vyA+IGtvdXNoaVwgOwor5YWI5Y+WID4gc2Vuc2h1XCA7Civnmbrli4EgPiBoYWtrZWlcIDsKK+mnhOizgyA+IGRhY2hpblwgOwor55m65Yq5ID4gaGFra291XCA7CivlsL7nv7wgPiBiaXlva3VcIDsKK+mrhOa2siA+IHp1aWVraVwgOwor5bCB6J2LID4gZnV1cm91XCA7CivlhZrlhoUgPiB0b3VuYWlcIDsKK+eUqOeuiyA+IHlvdXNlblwgOwor5YWs5L2PID4ga291anV1XCA7Civlhajkvr8gPiB6ZW5iaW5cIDsKK+eUn+eyiyA+IGtpc3N1aVwgOwor55Sy56iuID4ga291c2h1XCA7Civkv5fogLMgPiB6b2t1amlcIDsKK+mrmOashCA+IGtvdXJhblwgOwor5qG/6I+MID4ga2Fua2luXCA7CivlhazkvJogPiBrb3VrYWlcIDsKK+iInualvSA+IGJ1Z2FrdVwgOwor5a606YGKID4gZW4nJ3l1dVwgOwor5YWD5Y+3ID4gZ2VuZ291XCA7Civpqqjngq0gPiBrb3R0YW5cIDsKK+eZuuWIuCA+IGhha2tlblwgOwor5YG05rOzID4gc29iYWVpXCA7Civoi7Hkv4ogPiBlaXNodW5cIDsKK+eVsOeJqSA+IGlidXRzdVwgOwor5YWo5L2TID4gemVudGFpXCA7CivnkrDoppYgPiBrYW5zaGlcIDsKK+iEseiXqSA+IGRhcHBhblwgOwor55m65YiKID4gaGFra2FuXCA7CivlhazkurogPiBrb3VqaW5cIDsKK+WEgOWuuCA+IGdpc2hpblwgOwor5L+C6Ii5ID4ga2Vpc2VuXCA7Civmn5TpoIYgPiBqdXVqdW5cIDsKK+WFqOS8miA+IHplbmthaVwgOwor55Wq54qsID4gYmFua2VuXCA7CivppqzouqsgPiBiYXNoaW5cIDsKK+eZveWFiSA+IGhha2tvdVwgOwor55eZ5pSjID4ga2VpcmVuXCA7CivkvY7ov7cgPiB0ZWltZWlcIDsKK+iKr+WcsCA+IHNoaW5qaVwgOwor5L6/6Ii5ID4gYmluc2VuXCA7CivlhajkurogPiB6ZW5qaW5cIDsKK+iFjuiHkyA+IGppbnpvdVwgOwor6aaz6LWwID4gY2hpc291XCA7CivnmbrlhYkgPiBoYWtrb3VcIDsKK+WFg+WLsiA+IGdlbmt1blwgOwor6IWL6IetID4gd2FraWdhXCA7CivlgZzmu54gPiB0ZWl0YWlcIDsKK+WFiOWItiA+IHNlbnNlaVwgOwor6aaZ6YGTID4ga291ZG91XCA7Civoi7HkuqwgPiBlaWt5b3VcIDsKK+eXtOaFiyA+IGNoaXRhaVwgOwor5bGx56CmID4gc2Fuc2FpXCA7Civlr53oqIAgPiBuZWdvdG9cIDsKK+S9s+iqvyA+IGthY2hvdVwgOwor6auY5qW8ID4ga291cm91XCA7Civou6LlsYUgPiB0ZW5reW9cIDsKK+WBieeDiCA+IGlyZXRzdVwgOwor5YWJ5YagID4ga291a2FuXCA7Civpra/lm70gPiByb2tva3VcIDsKK+iEh+imiyA+IHdha2ltaVwgOwor5YWF5YiGID4ganV1YnVuXCA7CivmqKHkvZwgPiBtb3Nha3VcIDsKK+eahuS8nSA+IGthaWRlblwgOwor55e05oOFID4gY2hpam91XCA7CivlrZ3ppIogPiBrb3V5b3VcIDsKK+iHqOa4ryA+IHJpbmtvdVwgOwor5bSH5pWsID4gc3V1a2VpXCA7Civou6Llr50gPiBnb3JvbmVcIDsKK+iFkOiCiSA+IGZ1bmlrdVwgOwor5a6Y6YeRID4ga2Fua2luXCA7CivovLjlhaUgPiB5dW55dXVcIDsKK+WFiOWFtSA+IHNlbnBlaVwgOwor6LuN5bi9ID4gZ3VuYm91XCA7CivlhYflhbcgPiBreW91Z3VcIDsKK+S/l+e4gSA+IHpva3VlblwgOwor6LuN5birID4gZ3Vuc2hpXCA7CivohbnnrYsgPiBmdWtraW5cIDsKK+iHqua2nCA+IGppdG9rdVwgOwor6Iaa552AID4gaGFkYWdpXCA7CivotbDooYwgPiBzb3Vrb3VcIDsKK+Wuuei1piA+IHlvdXNoYVwgOwor5bC/57SgID4gbnlvdXNvXCA7CivmoITpgLIgPiBlaXNoaW5cIDsKK+ani+WkliA+IGtvdWdhaVwgOwor5qWT5p6XID4gZnV1cmluXCA7CivlhZrkurogPiB0b3VqaW5cIDsKK+iHqOa1tyA+IHJpbmthaVwgOwor5L2Z6LOKID4geW96b2t1XCA7CivmpJzmuKkgPiBrZW4nJ29uXCA7Civlr5PoqIAgPiBndXVnZW5cIDsKK+WFmuS6iSA+IHRvdXNvdVwgOwor6YGF44CFID4gY2hpY2hpXCA7CivpppbovKogPiBrdWJpd2FcIDsKK+iKuOWQjSA+IGdlaW1laVwgOwor5YGl5rCXID4ga2VuYWdlXCA7Civpq5jmoKEgPiBrb3Vrb3VcIDsKK+WtnemghiA+IGtvdWp1blwgOwor6IKb6ZaAID4ga291bW9uXCA7Civoh6rms6ggPiBqaWNodXVcIDsKK+aghOi+sSA+IGVpam9rdVwgOwor5a6Y6YK4ID4ga2FudGVpXCA7CivotaToo7ggPiBzZWtpcmFcIDsKK+iHtOatuyA+IGNoaXNoaVwgOwor5bCP6Ii5ID4ga29idW5lXCA7CivkvI3plbcgPiBnb2Nob3VcIDsKK+iJtuWuuSA+IGVuJyd5b3VcIDsKK+WxiOetiyA+IGt1a2tpblwgOwor5a656LKMID4geW91Ym91XCA7CivlsI/oiJ8gPiBrb2J1bmVcIDsKK+eZuuS8miA+IGhha2thaVwgOwor6Ieq5rKIID4gamljaGluXCA7CivlrpjpgbggPiBrYW5zZW5cIDsKK+eXm+aJkyA+IHRzdXVkYVwgOwor6Iet5rCXID4gc2h1dWtpXCA7Civlrrbos4MgPiB5YWNoaW5cIDsKK+eZu+S7mSA+IHRvdXNlblwgOwor6Iqz5ZCNID4gaG91bWVpXCA7CivlrabpmaIgPiBnYWt1aW5cIDsKK+mtlOWigyA+IG1ha3lvdVwgOwor6IiM5qC5ID4gemVra29uXCA7CivlgInnmocgPiBzb3Vrb3VcIDsKK+W0qeW+oSA+IGhvdWd5b1wgOwor5L2T6LKMID4gdGFpYm91XCA7CivppYXpoK0gPiBtYW5qdXVcIDsKK+S9nOitnCA+IHNha3VmdVwgOwor5L216KGMID4gaGVpa291XCA7CivlhYjkvr8gPiBzZW5iaW5cIDsKK+Wwj+iGnSA+IGtvaGl6YVwgOwor5YmN44CFID4gbWFlbWFlXCA7Civlsqzmub4gPiBrb3V3YW5cIDsKK+WAkueUoyA+IHRvdXNhblwgOwor5bCP6IW5ID4ga29iYXJhXCA7CivlhYjkvosgPiBzZW5yZWlcIDsKK+WFg+WApCA+IG1vdG9uZVwgOwor5L2O6LOHID4gdGVpc2hpXCA7Civpqqjms5UgPiBrb3Bwb3VcIDsKK+eUn+ehrCA+IHNlaWtvdVwgOwor6Imv5a62ID4gcnlvdWtlXCA7CivlhYnkvZMgPiBrb3V0YWlcIDsKK+WumOi+uiA+IGthbnBlblwgOwor6Iuf5LiUID4ga291c2hvXCA7CivlsaTnm7ggPiBzb3Vzb3VcIDsKK+Wun+i7iiA+IGppc3NoYVwgOwor5YWI5L2PID4gc2VuanV1XCA7Civlr4boqIggPiBtaWtrZWlcIDsKK+WEquWLoiA+IHl1dXNlaVwgOwor5YKy5oWiID4gZ291bWFuXCA7Civku4vpsZcgPiBrYWlyaW5cIDsKK+iDuOijjyA+IGt5b3VyaVwgOwor5bCP6ISHID4ga293YWtpXCA7Civlr4ToqJcgPiBraXRha3VcIDsKK+W0h+aLnSA+IHN1dWhhaVwgOwor5qaC5b+1ID4gZ2FpbmVuXCA7CivnlKjnm4ogPiB5b3Vla2lcIDsKK+Wxr+eUsCA+IHRvbmRlblwgOwor6Ia+54KZID4ga2Fpc2hhXCA7CivnmbjkuJEgPiBraWNodXVcIDsKK+WFiOS7oyA+IHNlbmRhaVwgOwor6aeY6JWpID4gdGFpdG91XCA7CivlgZzmraIgPiB0ZWlzaGlcIDsKK+Wwj+iCoSA+IGtvbWF0YVwgOwor5YWI5Lq6ID4gc2VuamluXCA7Civou6LlpIkgPiB0ZW5wZW5cIDsKK+i7ouWjsiA+IHRlbmJhaVwgOwor5YG05qC5ID4gc29ra29uXCA7CivlrozpgYIgPiBrYW5zdWlcIDsKK+Wun+i3tSA+IGppc3NlblwgOwor5a6Y6LuNID4ga2FuZ3VuXCA7Civog4zotbAgPiBoYWlzb3VcIDsKK+i6q+W9oiA+IG1pbmFyaVwgOwor5qCh6KiTID4ga291a3VuXCA7CivlsI/ogLMgPiBrb21pbWlcIDsKK+iBtOmfsyA+IGNob3VvblwgOwor5qCh6KiCID4ga291dGVpXCA7CivoiIjmm78gPiBrb3V0YWlcIDsKK+WuueiqjSA+IHlvdW5pblwgOwor6ISx6ISCID4gZGFzc2hpXCA7CivlhYjkuLsgPiBzZW5zaHVcIDsKK+S8mumHiCA+IGVzaGFrdVwgOwor5a2U6ZuAID4ga3VqYWt1XCA7CivmpJzmrbsgPiBrZW5zaGlcIDsKK+Wwj+iAhSA+IGtvbW9ub1wgOwor5Luj6aGYID4gZGFpZ2FuXCA7CivppIrpto8gPiB5b3VrZWlcIDsKK+S/gue0ryA+IGtlaXJ1aVwgOwor6IKd6YqYID4ga2FubWVpXCA7CivkvZPoqo0gPiB0YWluaW5cIDsKK+S9meinkiA+IHlva2FrdVwgOwor6ISx6IKbID4gZGFra291XCA7Civlr53ol4EgPiBuZXdhcmFcIDsKK+WEquWFiCA+IHl1dXNlblwgOwor6LO96YqtID4gc2Fpc2VuXCA7CivlgbbmnIkgPiBndXV5dXVcIDsKK+WvhuihjCA+IG1pa2tvdVwgOwor5YWD5LiJID4gZ2FuemFuXCA7CivohqDnirYgPiBrb3Vqb3VcIDsKK+S9k+iogCA+IHRhaWdlblwgOwor5YGl5qOSID4ga2VuYm91XCA7CivliLrjgIUgPiBpcmFpcmFcIDsKK+i6q+W5hSA+IG1paGFiYVwgOwor5Luy6ZaTID4gbmFrYW1hXCA7CivkvJ3pgZMgPiBkZW5kb3VcIDsKK+S8tOi1sCA+IGJhbnNvdVwgOwor6Lqr5be+ID4gbWloYWJhXCA7CivlrZTploAgPiBrb3Vtb25cIDsKK+i7ouWcsCA+IHRlbmNoaVwgOwor6Imv5aScID4gcnlvdXlhXCA7CivkvZPopoEgPiB0YWl5b3VcIDsKK+S8nemAgSA+IGRlbnNvdVwgOwor6LSL6YCgID4gZ2Fuem91XCA7Civpro7kuKYgPiBhaW5hbWVcIDsKK+iIueW9sSA+IHNlbicnZWlcIDsKK+iIiOaVlyA+IGtvdWhhaVwgOwor6Lui5ZueID4gdGVua2FpXCA7Civoh6jmpJwgPiByaW5rZW5cIDsKK+WvvuiBryA+IHRhaXJlblwgOwor55mI5YW1ID4gaGFpaGVpXCA7CivpppborIAgPiBzaHVib3VcIDsKK+WDleWpoiA+IGJva3VoaVwgOwor5qOS54q2ID4gYm91am91XCA7Civpq5jmj5ogPiBrb3V5b3VcIDsKK+S7lumgmCA+IHRhcnlvdVwgOwor6IGv6ZqKID4gcmVudGFpXCA7Civlr7jog7QgPiB6dW5kb3VcIDsKK+WDp+WggiA+IHNvdWRvdVwgOwor5L6N6IejID4gamlzaGluXCA7CivpqJPnrpcgPiBrZW56YW5cIDsKK+eUn+eUoyA+IHNlaXNhblwgOwor55Sf55SfID4gc2Vpc2VpXCA7CivkurrprZogPiBuaW5neW9cIDsKK+S9k+ijgSA+IHRlaXNhaVwgOwor6LuN5aOrID4gZ3Vuc2hpXCA7Civkvr/nrqEgPiBiZW5rYW5cIDsKK+WBtuaVsCA+IGd1dXN1dVwgOwor5L6/566LID4gYmluc2VuXCA7CivppIrprZogPiB5b3VneW9cIDsKK+Wwjue3miA+IGRvdXNlblwgOwor6IGW6aSQID4gc2Vpc2FuXCA7CivlrozotbAgPiBrYW5zb3VcIDsKK+S8iemFjSA+IGtvdWhhaVwgOwor6aas6J2/ID4gdW1hYmFlXCA7CivoirHkv6EgPiBrYXNoaW5cIDsKK+Wuo+iqkyA+IHNlbnNlaVwgOwor5Luk6ZaoID4gcmVpa2VpXCA7Civlg6flnYogPiBzb3Vib3VcIDsKK+Wvvue9riA+IHRhaWNoaVwgOwor6aeQ6IuxID4gY2h1dWVpXCA7CivogqnouqsgPiBrYXRhbWlcIDsKK+S7iumiqCA+IGltYWZ1dVwgOwor6YCZ44CFID4gaG91aG91XCA7CivoirjkurogPiBnZWluaW5cIDsKK+aflOmBkyA+IGp1dWRvdVwgOwor5bGk54q2ID4gc291am91XCA7CivohLHnt5ogPiBkYXNzZW5cIDsKK+agueiPnCA+IGtvbnNhaVwgOwor5a6j6KiAID4gc2VuZ2VuXCA7Civog6HonbYgPiBrb2Nob3VcIDsKK+Wwj+ezoCA+IGtvbnVrYVwgOwor5qSc5qGIID4ga2VuJydhblwgOwor5p6d6ZqKID4gc2hpdGFpXCA7Civlrproq5YgPiB0ZWlyb25cIDsKK+alveWxiyA+IGdha3V5YVwgOwor6auY5omAID4ga291c2hvXCA7Civnl4XlvowgPiBieW91Z29cIDsKK+iGv+axgSA+IG5vdWp1dVwgOwor5YKy5bK4ID4gZ291Z2FuXCA7CivlsI/nsbMgPiBrb2dvbWVcIDsKK+WtpumDqCA+IGdha3VidVwgOwor6Ieo5pu4ID4gcmluc2hvXCA7Civmn7voqq0gPiBzYWRva3VcIDsKK+iFq+eYjSA+IHNodXlvdVwgOwor5qW95a+dID4gcmFrdW5lXCA7CivlsIHnt5ggPiBmdXVrYW5cIDsKK+agueiMjiA+IGtvbmtlaVwgOwor6Iao5rqAID4gYm91bWFuXCA7Civkv67nkIYgPiBzaHV1cmlcIDsKK+iEseezniA+IGRhcHB1blwgOwor5L+h55aRID4gc2hpbmdpXCA7Civlrp/oposgPiBqaWtrZW5cIDsKK+i7jeWboyA+IGd1bmRhblwgOwor6IeY5qKFID4gcm91YmFpXCA7CivlrproqIAgPiB0ZWlnZW5cIDsKK+afu+iovCA+IHNhc2hvdVwgOwor5YCS5r2wID4gdG91a2FpXCA7CivoiIzmiKYgPiB6ZXNzZW5cIDsKK+WwluerryA+IHNlbnRhblwgOwor5a6Y6KixID4ga2Fua3lvXCA7Civpq5jmhaIgPiBrb3VtYW5cIDsKK+aflOi7nyA+IGp1dW5hblwgOwor5bCP566xID4ga29iYWtvXCA7CivogZbpnIogPiBzZWlyZWlcIDsKK+eZiOS6uiA+IGhhaWppblwgOwor6Lui5ZCRID4gdGVua291XCA7Civlr4bokawgPiBtaXNzb3VcIDsKK+WwveeYgSA+IGppbnN1aVwgOwor5L2z6ImvID4ga2FyeW91XCA7CivlsIrnsKEgPiBzb25rYW5cIDsKK+WwjueuoSA+IGRvdWtlblwgOwor5bCE57K+ID4gc2hhc2VpXCA7CivlrproposgPiB0ZWlrZW5cIDsKK+S/neeVmSA+IGhvcnl1dVwgOwor5qeL5YaFID4ga291bmFpXCA7Civnk6bnpKsgPiBnYXJla2lcIDsKK+Wun+ijhSA+IGppc3NvdVwgOwor5qW15a+SID4gZ29ra2FuXCA7Civpp4XoiI4gPiBla2lzaGFcIDsKK+adpemuriA+IHJhaXNlblwgOwor5Lq66aGeID4gamlucnVpXCA7CivmnpfplpMgPiByaW5rYW5cIDsKK+Wul+imjyA+IHNodXVraVwgOwor5a+p576OID4gc2hpbmJpXCA7CivltKnlo4ogPiBob3VrYWlcIDsKK+S6oemtgiA+IGJvdWtvblwgOwor6LSI6LOEID4gem91d2FpXCA7Civkvb/ogZggPiBzaGloZWlcIDsKK+S6uumgrSA+IGppbnRvdVwgOwor6LWw6ICFID4gc291c2hhXCA7CivlrZ3pgZMgPiBrb3Vkb3VcIDsKK+Wun+ihjCA+IGppa2tvdVwgOwor6LuN5Za2ID4gZ3VuJydlaVwgOwor5YOt5Y+WID4gc2Vuc2h1XCA7Civmp5jkvZMgPiB5b3V0YWlcIDsKK+iznOmHkSA+IHNoaWtpblwgOwor5qCh6JGsID4ga291c291XCA7Civou73kvr8gPiBrZWliZW5cIDsKK+S9v+iAhSA+IHNoaXNoYVwgOwor5a6Y6KO9ID4ga2Fuc2VpXCA7CivlgbbmiJAgPiBndXVzZWlcIDsKK+S/l+eVjCA+IHpva2thaVwgOwor6Lui5YukID4gdGVua2luXCA7CivkuqTpqakgPiBrb3VrYW5cIDsKK+S/l+eUuyA+IHpva3VnYVwgOwor5p2+6Z+7ID4gc2hvdWluXCA7Civlr77nsbMgPiB0YWliZWlcIDsKK+Wui+ipniA+IHNvdXNoaVwgOwor5bmz44CFID4gaGVpaGVpXCA7Civot53niKogPiBreW9zb3VcIDsKK+WDp+WPtyA+IHNvdWdvdVwgOwor6ISC6IKqID4gc2hpYm91XCA7CivkurrpnaIgPiBqaW5tZW5cIDsKK+WwgueuoSA+IHNlbmthblwgOwor6IKM6LqrID4gaGFkYW1pXCA7Civoia/lkKYgPiByeW91aGlcIDsKK+mjvOmkiiA+IHNoaXlvdVwgOwor5bO25ba8ID4gdG91c2hvXCA7CivogIHpvaIgPiByb3VyZWlcIDsKK+iJr+WQjyA+IHJ5b3VyaVwgOwor5p2+6ZyyID4gc2hvdXJvXCA7CivlsIHnrZIgPiBmdXV0b3VcIDsKK+mjm+mzpSA+IGhpY2hvdVwgOwor6ISa57WGID4ga3lhaGFuXCA7CivlgbbmhJ8gPiBndXVrYW5cIDsKK+iynemhniA+IGthaXJ1aVwgOwor5LuY6YyyID4gZnVyb2t1XCA7CivlgY/ml4EgPiBoZW5ib3VcIDsKK+S7o+mHkSA+IGRhaWtpblwgOwor6auY5byfID4ga291dGVpXCA7Civos7zosrcgPiBrb3ViYWlcIDsKK+iEseeovyA+IGRha2tvdVwgOwor5YGP5pacID4gaGVuc2hhXCA7CivlsbHmtbcgPiBzYW5rYWlcIDsKK+WvhuiIqiA+IG1pa2tvdVwgOwor5a+S6IKlID4ga2FuZ29lXCA7Civlr77nrYkgPiB0YWl0b3VcIDsKK+i7ouWGmSA+IHRlbnNoYVwgOwor5Lya6KuHID4ga2FpZGFuXCA7CivoiI7lvJ8gPiBzaGF0ZWlcIDsKK+WCvuWfjiA+IGtlaXNlaVwgOwor5YGl5oqVID4ga2VudG91XCA7CivpprToh7QgPiBqdW5jaGlcIDsKK+mtmuS7iyA+IGd5b2thaVwgOwor5YKY5bGLID4ga2FzYXlhXCA7Civpq5jlubQgPiBrb3VuZW5cIDsKK+S9tee9riA+IGhlaWNoaVwgOwor5bCE56iLID4gc2hhdGVpXCA7CivkvJ3oqIAgPiBkZW5nb25cIDsKK+i7iuWPsCA+IHNoYWRhaVwgOwor55Wz5pWwID4gam91c3V1XCA7Civlr77nqbogPiB0YWlrdXVcIDsKK+S8muioiCA+IGthaWtlaVwgOwor5L2c6IiIID4gc2Fra291XCA7Civoga/pgqYgPiByZW5wb3VcIDsKK+iFuOeCjiA+IGNob3VlblwgOwor5Lq66ZaTID4gbmluZ2VuXCA7CivlrabosrsgPiBnYWt1aGlcIDsKK+adsemdoiA+IHRvdW1lblwgOwor6auY5belID4ga291a291XCA7CivmoKHoiI4gPiBrb3VzaGFcIDsKK+Wwj+egtCA+IHNob3VoYVwgOwor6LOH6YeRID4gc2hpa2luXCA7Civpq5jltrogPiB0YWthbmVcIDsKK+mjm+mtmiA+IHRvYml1b1wgOwor5bGx5rC0ID4gc2Fuc3VpXCA7CivkvZnoiIggPiB5b2t5b3VcIDsKK+WxseawlyA+IHlhbWFrZVwgOwor5bCP55+zID4ga29pc2hpXCA7CivoiIjlu4MgPiBrb3VoYWlcIDsKK+i7jeWLoiA+IGd1bnplaVwgOwor5L2Z6IetID4geW9zaHV1XCA7CivkvJroposgPiBrYWlrZW5cIDsKK+WAkuatuyA+IHRvdXNoaVwgOwor5bCB56aFID4gaG91emVuXCA7CivotIXoqIAgPiB6ZWlnZW5cIDsKK+ePvumHkSA+IGdlbmtpblwgOwor5bGF54S2ID4ga3lvemVuXCA7CivlhITkuIcgPiBva3VtYW5cIDsKK+aknOaMmSA+IGtlbmt5b1wgOwor6LuN5YqfID4gZ3Vua291XCA7Civou6LlgJIgPiB0ZW50b3VcIDsKK+eUuuatqSA+IGNob3VidVwgOwor5YOn5YW1ID4gc291aGVpXCA7CivnlpHmg5EgPiBnaXdha3VcIDsKK+WztuWuiCA+IHRvdXNodVwgOwor5Luj6L+UID4gZGFpaGVuXCA7CivlgZzmiKYgPiB0ZWlzZW5cIDsKK+alveWcnyA+IHJha3Vkb1wgOwor6Ieo5oimID4gcmluc2VuXCA7Civlrp3olLUgPiBob3V6b3VcIDsKK+alveWckiA+IHJha3VlblwgOwor6Iez5oOFID4gc2hpam91XCA7Civpq5jls7AgPiBrb3Vob3VcIDsKK+ael+mHjiA+IHJpbicneWFcIDsKK+i7jeWItiA+IGd1bnNlaVwgOwor5Lqs6ZiqID4ga2VpaGFuXCA7CivotaTnt5ogPiBha2FzZW5cIDsKK+WutuiHoyA+IGthc2hpblwgOwor5Lqk6ZyKID4ga291cmVpXCA7Civku5bpg7cgPiB0YWt5b3VcIDsKK+i7jeWIgCA+IGd1bnRvdVwgOwor6aaZ6I2JID4ga291c291XCA7Civnl7TlkYYgPiBjaGlob3VcIDsKK+adoemghSA+IGpvdWtvdVwgOwor6Luf5L6/ID4gbmFuYmVuXCA7CivlsI/nm64gPiBrb21va3VcIDsKK+afkOiqjCA+IGJvdXNoaVwgOwor5qCE6JC9ID4gZWlyYWt1XCA7Civou4rliLggPiBzaGFrZW5cIDsKK+i7ouS9jyA+IHRlbmp1dVwgOwor55So5rOVID4geW91aG91XCA7CivoiZnlj6MgPiBzb3Vrb3VcIDsKK+iHhuaWrSA+IG9rdWRhblwgOwor6auY5bGxID4ga291emFuXCA7Civouo3lpoIgPiB5YWt1am9cIDsKK+mrmOWxpCA+IGtvdXNvdVwgOwor5bCP55q/ID4ga296YXJhXCA7CivlsI/nmrogPiBrb2ppd2FcIDsKK+S6oemciiA+IGJvdXJlaVwgOwor5Lqk6ZqbID4ga291c2FpXCA7CivoiLnlnosgPiBzZW5rZWlcIDsKK+i1pOe1jCA+IHNla2tlaVwgOwor5L2e6ICFID4gbmVpc2hhXCA7Civmpa3loLEgPiBnb3Vob3VcIDsKK+mmrOiCiSA+IGJhbmlrdVwgOwor5L2T6IWUID4gdGFpa291XCA7CivlgZXmiJAgPiBrYWlzZWlcIDsKK+eWkeW/gyA+IGdpc2hpblwgOwor6LuN5YW1ID4gZ3VucGVpXCA7CivmnaXpm7sgPiByYWlkZW5cIDsKK+adsemWgCA+IHRvdW1vblwgOwor6auY5bCCID4ga291c2VuXCA7CivlgaXlv5ggPiBrZW5ib3VcIDsKK+eUqOawtCA+IHlvdXN1aVwgOwor6LuK5YaFID4gc2hhbmFpXCA7Civppq3ogIUgPiBneW9zaGFcIDsKK+mtheS6hiA+IG1pcnlvdVwgOwor5LqM6aOfID4gbmlqaWtpXCA7CivoiLnlm6MgPiBzZW5kYW5cIDsKK+iEgueyiSA+IHNoaWZ1blwgOwor54++6YCBID4gZ2Vuc291XCA7Civpq5jlrpggPiBrb3VrYW5cIDsKK+iHs+W9kyA+IHNoaXRvdVwgOwor546E6buEID4gZ2Vua291XCA7CivkvZPogrIgPiB0YWlpa3VcIDsKK+i7jeWDpyA+IGd1bnNvdVwgOwor5bGl5q20ID4gcmlyZWtpXCA7Civlg6fkvrYgPiBzb3VyeW9cIDsKK+ael+mBkyA+IHJpbmRvdVwgOwor6LK06YeNID4ga2ljaG91XCA7CivkvZnnv5IgPiB5b3NodXVcIDsKK+ixium6lyA+IGhvdXJlaVwgOwor5YCk5pytID4gbmVmdWRhXCA7CivkvY7og70gPiB0ZWlub3VcIDsKK+adpemYqiA+IHJhaWhhblwgOwor5YOn5L2TID4gc291dGFpXCA7Civkvovnpa0gPiByZWlzYWlcIDsKK+iytOmFrCA+IGtpc2h1dVwgOwor6IOa6IOOID4gaGFpdGFpXCA7Civlg6fkvL0gPiBzb3VneWFcIDsKK+ahp+eariA+IGhpd2FkYVwgOwor5YK+5ZCRID4ga2Vpa291XCA7CivlrZDosZogPiBrb2J1dGFcIDsKK+iyr+mHkSA+IGNob2tpblwgOwor5qW95ZOhID4gZ2FrdWluXCA7CivlgaXlurcgPiBrZW5rb3VcIDsKK+iHquW+lyA+IGppdG9rdVwgOwor5YOt5Li7ID4gc2Vuc2h1XCA7Civku6PotbAgPiBkYWlzb3VcIDsKK+S7o+i1rSA+IHRhaXNoYVwgOwor6IK66JGJID4gaGFpeW91XCA7Civlg63kuIogPiBzZW5qb3VcIDsKK+iHqOW+oSA+IHJpbmd5b1wgOwor6LKn6YmxID4gaGlua291XCA7CivlgY/mhJsgPiBoZW4nJ2FpXCA7Civlgb3lraYgPiBnaWdha3VcIDsKK+WCkeWjqyA+IGtlc3NoaVwgOwor6aaW6ISzID4gc2h1bm91XCA7Civou43kvb8gPiBndW5zaGlcIDsKK+eUn+auiyA+IHNlaXphblwgOwor55Sf5q27ID4gc2Vpc2hpXCA7Civmnb/ph5EgPiBiYW5raW5cIDsKK+ajn+acqCA+IG11bmFnaVwgOwor55Wq5omAID4gYmFuc2hvXCA7Civot6/mqJkgPiByb2h5b3VcIDsKK+eciOOAhSA+IHRhbnRhblwgOwor55S35qC5ID4gZGFua29uXCA7CivkvY7nva4gPiB0ZWljaGlcIDsKK+mmluiCryA+IHNodWtvdVwgOwor6LuK5L2TID4gc2hhdGFpXCA7CivoiLnlk6EgPiBzZW4nJ2luXCA7Civnl4Xlm6AgPiBieW91aW5cIDsKK+Wtl+iosyA+IGppeWFrdVwgOwor6LuN5LukID4gZ3VucmVpXCA7CivlgY/mgKcgPiBoZW5zZWlcIDsKK+ajjeajkiA+IGtvbmJvdVwgOwor5bGk5qW8ID4gc291cm91XCA7CivlgZzlubQgPiB0ZWluZW5cIDsKK+WCmOWcsCA+IGthc2FqaVwgOwor6Ieo5bm4ID4gcmlua291XCA7Civou43kurogPiBndW5qaW5cIDsKK+iHquW4rSA+IGppc2VraVwgOwor5LqI6ZyHID4geW9zaGluXCA7CivlrpjoiI4gPiBrYW5zaGFcIDsKK+mokueEtiA+IHNvdXplblwgOwor6auY5aSnID4ga291ZGFpXCA7Civoh6XluoogPiBnYXNob3VcIDsKK+WxseaelyA+IHNhbnJpblwgOwor5qW15Y+zID4ga3lva3V1XCA7CivmnKjprYIgPiBrb2RhbWFcIDsKK+mrmOWjqyA+IGtvdXNoaVwgOwor6IWO54KOID4gamluJydlblwgOwor5bGx5p2RID4gc2Fuc29uXCA7CivkurrpgbggPiBqaW5zZW5cIDsKK+Wwj+eMqyA+IGtvbmVrb1wgOwor5Luu6KiXID4ga2F0YWt1XCA7Civlr77nlJ8gPiB0YWlzZWlcIDsKK+ajkuadrSA+IGJvdWd1aVwgOwor6Ii55Y+wID4gc2VuZGFpXCA7CivkurrpgZMgPiBqaW5kb3VcIDsKK+mqqOW5uSA+IGtva2thblwgOwor5qOS5p2ZID4gYm91Z3VpXCA7Civppqzns6cgPiBiYXJ5b3VcIDsKK+izh+iyoSA+IHNoaXphaVwgOwor6aas57OeID4gbWFndXNvXCA7CivkurrpgKAgPiBqaW56b3VcIDsKK+WDheWDhSA+IGtpbmtpblwgOwor5qW15Y2wID4gZ29rdWluXCA7Civku6PorJ0gPiB0YWlzaGFcIDsKK+S7o+ismyA+IGRhaWtvdVwgOwor5Lya6JGsID4ga2Fpc291XCA7CivlrZ3ooYwgPiBrb3Vrb3VcIDsKK+eUsuadvyA+IGtvdWhhblwgOwor6LuK5LiKID4gc2hham91XCA7Civoh7PlsIogPiBzaGlzb25cIDsKK+iIheWnkSA+IGt5dXVrb1wgOwor5LqJ6ZeYID4gc291dG91XCA7CivoiIjlpa4gPiBrb3VmdW5cIDsKK+iJpuS4iiA+IGthbmpvdVwgOwor6IK66IeTID4gaGFpem91XCA7CivouqvlhoUgPiBtaXVjaGlcIDsKK+Wwj+eJqSA+IGtvbW9ub1wgOwor6auY5aCCID4ga291ZG91XCA7CivlsI/niZsgPiBrb3VzaGlcIDsKK+i6q+WFsSA+IG1pZG9tb1wgOwor55G257eYID4geW91a2FuXCA7CivlgrXliLggPiBzYWlrZW5cIDsKK+iHs+WunSA+IHNoaWhvdVwgOwor5L2T57O7ID4gdGFpa2VpXCA7CivlgY/lubMgPiBoZW5wZWlcIDsKK+i6q+WFgyA+IG1pbW90b1wgOwor5a+f55+lID4gc2F0Y2hpXCA7CivnlJ/mpJwgPiBzZWlrZW5cIDsKK+S6rOmDvSA+IGt5b3V0b1wgOwor5pyr6aaZID4gbWFra291XCA7Civoh7PlrZ0gPiBzaGlrb3VcIDsKK+acqOmmrCA+IG1va3ViYVwgOwor5YG05aWzID4gc29iYW1lXCA7CivmnKzppKggPiBob25rYW5cIDsKK+S7o+iogCA+IGRhaWdlblwgOwor5p2x6YOKID4gdG91a291XCA7Civogrrog54gPiBoYWlob3VcIDsKK+mrmOWcsCA+IGtvdWNoaVwgOwor5p2x6YKmID4gdG91aG91XCA7CivogZbos6IgPiBzZWlrZW5cIDsKK+S6uui7iiA+IGppbnNoYVwgOwor55e05Lq6ID4gY2hpamluXCA7CivmnLHpoZQgPiBzaHVnYW5cIDsKK+S6uui6qyA+IGhpdG9taVwgOwor55So5p2QID4geW91emFpXCA7CivkuqTphY0gPiBrb3VoYWlcIDsKK+adsemBtyA+IHRvdXNlblwgOwor6IK66IKdID4gaGFpa2FuXCA7CivotrPmua8gPiBhc2hpeXVcIDsKK+Wumue9riA+IHRlaWNoaVwgOwor5YK+5YCSID4ga2VpdG91XCA7Civmpa3li5kgPiBneW91bXVcIDsKK+WAjeaVsCA+IGJhaXN1dVwgOwor5qGR55SwID4gc291ZGVuXCA7CivogIHpm4QgPiByb3V5dXVcIDsKK+iIueWHuiA+IGZ1bmFkZVwgOwor6Ieq5a6FID4gaml0YWt1XCA7CivohIfnm64gPiB3YWtpbWVcIDsKK+aknOWxjSA+IGtlbnNoaVwgOwor5pys6aGYID4gaG9uZ2FuXCA7CivmnKzpoYwgPiBob25kYWlcIDsKK+S5sembsiA+IHJhbicndW5cIDsKK+eWvuWRvCA+IHNoaWtrb1wgOwor5YKt5YW1ID4geW91aGVpXCA7CivoiLnlhbcgPiBmdW5hZ3VcIDsKK+WutuetiyA+IGllc3VqaVwgOwor6LGK6aWSID4gaG91am91XCA7CivmnKzpn7MgPiBob24nJ25lXCA7Civku5joqJcgPiBmdXRha3VcIDsKK+S8muiImCA+IGthaWthblwgOwor5pyr6aCFID4gbWFra291XCA7CivnlJ/mnaUgPiBzZWlyYWlcIDsKK+S6pOmBiiA+IGtvdXl1dVwgOwor5YCm5oaKID4ga2VucGFpXCA7CivmnqLopoEgPiBzdXV5b3VcIDsKK+misemiqCA+IHRhaWZ1dVwgOwor5a6f57eaID4gamlzc2VuXCA7Civlr53nmZYgPiBuZWd1c2VcIDsKK+iHjeW4ryA+IHNlaXRhaVwgOwor5qSc5a6aID4ga2VudGVpXCA7CivmnaXpgrggPiByYWl0ZWlcIDsKK+iFueahiCA+IGZ1a3VhblwgOwor55Sf5pyoID4gbmFtYWtpXCA7CivojYnjgIUgPiBzb3Vzb3VcIDsKK+S9meeoiyA+IHlvaG9kb1wgOwor5Luj6KGMID4gZGFpa291XCA7Civls7blj7ggPiB0b3VzaGlcIDsKK+WCsuWAqCA+IGdvdWt5b1wgOwor6aqo5a2QID4ga29zc2hpXCA7Civoh7PlpKcgPiBzaGlkYWlcIDsKK+S9v+eUqCA+IHNoaXlvdVwgOwor5Lmx6ZeYID4gcmFudG91XCA7CivmnaXpgYogPiByYWl5dXVcIDsKK+adsei7jSA+IHRvdWd1blwgOwor5bGV5pybID4gdGVuYm91XCA7CivogLPovKogPiBtaW1pd2FcIDsKK+S9meemhCA+IHlvcm9rdVwgOwor5bCP5r2uID4ga29zaGlvXCA7Civlr6nnkIYgPiBzaGlucmlcIDsKK+aituacqCA+IGthamlraVwgOwor6LKn6LOkID4gaGluc2VuXCA7Civosqfos44gPiBoaW5zZW5cIDsKK+adpei/jiA+IHJhaWdvdVwgOwor5pyJ6auqID4gdWhhdHN1XCA7CivotaTnl6IgPiBzZWtpcmlcIDsKK+S+v+azlSA+IGJlbnBvdVwgOwor6Ii55YCJID4gc2Vuc291XCA7CivkvY7nqbogPiB0ZWlrdXVcIDsKK+acqOmciiA+IGtvZGFtYVwgOwor5Lyd6IGeID4gZGVuYnVuXCA7CivmnKzpmoogPiBob250YWlcIDsKK+WyqeWxpCA+IGdhbnNvdVwgOwor6IKd6IeTID4ga2Fuem91XCA7CivmnJ3poZQgPiBhc2FnYW9cIDsKK+i6q+S4iCA+IG1pdGFrZVwgOwor5YCm5oCgID4ga2VudGFpXCA7CivmnKzpmaMgPiBob25qaW5cIDsKK+acrOmZoiA+IGhvbicnaW5cIDsKK+WwqOavmyA+IG11a3VnZVwgOwor5a6a57SLID4gam91bW9uXCA7CivppIrosZogPiB5b3V0b25cIDsKK+S7mOihqCA+IGZ1aHlvdVwgOwor5a6256aEID4ga2Fyb2t1XCA7CivmnLHploAgPiBzaHVtb25cIDsKK+iCneiFjiA+IGthbmppblwgOwor5L2155SoID4gaGVpeW91XCA7Civpq5jlkJ8gPiBrb3VnaW5cIDsKK+acqOmZsCA+IGtva2FnZVwgOwor6Ii55L2TID4gc2VudGFpXCA7Civpq5jlkI0gPiBrb3VtZWlcIDsKK+WAkuaHuCA+IHRvdWtlblwgOwor5YK15Li7ID4gc2Fpc2h1XCA7Civnj77ooYwgPiBnZW5rb3VcIDsKK+eSsOeKtiA+IGthbmpvdVwgOwor5p2l6LuKID4gcmFpc2hhXCA7Civog4znrYsgPiBoYWlraW5cIDsKK+WxseaJiyA+IHlhbWF0ZVwgOwor6IWL5q+bID4gd2FraWdlXCA7Civkv7PmlocgPiBoYWlidW5cIDsKK+S+v+auvyA+IGJlbmRlblwgOwor5pyA6auYID4gc2Fpa291XCA7CivmopfmpoIgPiBrb3VnYWlcIDsKK+iCneiDhiA+IGthbnRhblwgOwor6auY5Y6fID4ga291Z2VuXCA7CivmnJ3pnLIgPiBjaG91cm9cIDsKK+Wxr+aJgCA+IHRvbnNob1wgOwor5YKt5Lq6ID4geW91bmluXCA7Civos4DooaggPiBnYWh5b3VcIDsKK+acnemcniA+IGNob3VrYVwgOwor5a6d566XID4gaG91c2FuXCA7CivojLbjgIUgPiBjaGFjaGFcIDsKK+miqOmcnCA+IGZ1dXNvdVwgOwor6LW354iGID4ga2liYWt1XCA7CivoiIjlkbMgPiBreW91bWlcIDsKK+iAkOmFuCA+IHRhaXNhblwgOwor5YGl5ZyoID4ga2VuemFpXCA7Civogonoir0gPiBuaWt1Z2FcIDsKK+iHqOWgtCA+IHJpbmpvdVwgOwor5bO25YaFID4gdG91bmFpXCA7CivnlKjmjaggPiB5b3VzaGFcIDsKK+WtpOiInyA+IGtvc2h1dVwgOwor5LqM6YCyID4gbmlzaGluXCA7CivmnZHpgZMgPiBzb25kb3VcIDsKK+WBj+WlvSA+IGhlbmtvdVwgOwor5LqM6YCaID4gbml0c3V1XCA7CivlhqXjgIUgPiBtZWltZWlcIDsKK+WtkOiRiSA+IHNoaXlvdVwgOwor6IKv57auID4ga291a2VpXCA7CivkvannlKggPiBoYWl5b3VcIDsKK+S5l+mZjSA+IGpvdWtvdVwgOwor5LqL6L+5ID4gamlzZWtpXCA7CivlrpjnrYkgPiBrYW50b3VcIDsKK+WApOW5hSA+IG5laGFiYVwgOwor546E6ZaiID4gZ2Vua2FuXCA7CivpoqjpmLIgPiBmdXVib3VcIDsKK+WwmuatpiA+IHNob3VidVwgOwor5p6v6JGJID4ga2FyZWhhXCA7CivlrrbnnaMgPiBrYXRva3VcIDsKK+WBtuWQnyA+IGd1dWtpblwgOwor5Lyd57eaID4gZGVuc2VuXCA7CivlgKTlt74gPiBuZWhhYmFcIDsKK+iHquWbvSA+IGppa29rdVwgOwor6Ieo5ZyoID4gcmluemFpXCA7CivkvZnnmb0gPiB5b2hha3VcIDsKK+Wuv+eXviA+IHNodWt1YVwgOwor5a+G55SfID4gbWlzc2VpXCA7Civlr4TnlZkgPiBraXJ5dXVcIDsKK+adpeizkyA+IHJhaWhpblwgOwor6Iez5ZaEID4gc2hpemVuXCA7CivkvJ3ntbEgPiBkZW50b3VcIDsKK+eUu+W/gyA+IGdhc2hpblwgOwor5bCO5rC0ID4gZG91c3VpXCA7CivmnaXosqIgPiByYWlrb3VcIDsKK+eUt+aApyA+IGRhbnNlaVwgOwor5bGF5pW3ID4gaXNoaWtpXCA7CivohLHms5UgPiBkYXBwb3VcIDsKK+WApOW1qSA+IG5lZ2FzYVwgOwor5qSc5ZywID4ga2VuY2hpXCA7CivosarpgrggPiBnb3V0ZWlcIDsKK+WBpeWVliA+IGtlbnRhblwgOwor5L2Z55eFID4geW9ieW91XCA7Civoh6rlmLIgPiBqaWNob3VcIDsKK+iyoOiolyA+IGZ1dGFrdVwgOwor6ICB6YWSID4gcm91c2h1XCA7CivkuLvpoYwgPiBzaHVkYWlcIDsKK+S9juebriA+IGhpa3VtZVwgOwor5L2c55S7ID4gc2FrdWdhXCA7CivnjaPpoZ4gPiBqdXVydWlcIDsKK+ixqumCgSA+IGdvdW1haVwgOwor5bCE5rOVID4gc2hhaG91XCA7CivkuqTorbIgPiBrb3Vqb3VcIDsKK+S6i+i5nyA+IGppc2VraVwgOwor5bGx5b6EID4gc2Fua2VpXCA7CivnkrDmv6AgPiBrYW5nb3VcIDsKK+mnhOeJqSA+IGRhbW9ub1wgOwor6ISx5rC0ID4gZGFzc3VpXCA7CivosarpgYogPiBnb3V5dXVcIDsKK+mjm+i6jSA+IGhpeWFrdVwgOwor6auY5YOnID4ga291c291XCA7Civoh7Tlkb0gPiBjaGltZWlcIDsKK+S5semFlCA+IHJhbnN1aVwgOwor5Lmx6YWSID4gcmFuc2h1XCA7CivoiI7lhYQgPiBzaGFrZWlcIDsKK+S7sOiHpSA+IGd5b3VnYVwgOwor55Wq5aSWID4gYmFuZ2FpXCA7CivlsqnloakgPiBnYW4nJ2VuXCA7CivnlJ/miJAgPiBzZWlzZWlcIDsKK+WBj+WcqCA+IGhlbnphaVwgOwor5LqL6LehID4gamlzZWtpXCA7CivkvZXnlaogPiBuYW5iYW5cIDsKK+abuOmiqCA+IHNob2Z1dVwgOwor6ISz5q27ID4gbm91c2hpXCA7CivkuozotrMgPiBuaXNva3VcIDsKK+Wul+elliA+IHNodXVzb1wgOwor57696aKoID4gaGFrYXplXCA7CivosarovrIgPiBnb3Vub3VcIDsKK+WztuS6uiA+IHRvdWppblwgOwor5L6g5rCXID4ga3lvdWtpXCA7CivnlLvluYUgPiBnYWZ1a3VcIDsKK+aciemZkCA+IHl1dWdlblwgOwor5pu46aGeID4gc2hvcnVpXCA7Civpppnnm5IgPiBrb3Vnb3VcIDsKK+eUu+W4syA+IGdhY2hvdVwgOwor55Sf5oaOID4gYWluaWt1XCA7Civpq5jlgKQgPiB0YWthbmVcIDsKK+S4remjmyA+IGNodXVoaVwgOwor5p6d6JGJID4gc2hpeW91XCA7CivosLfplpMgPiB0YW5pbWFcIDsKK+S6pOipoiA+IGtvdWp1blwgOwor5Li56Z2SID4gdGFuc2VpXCA7CivmnbHopb8gPiB0b3V6YWlcIDsKK+iHreWRsyA+IHNodXVtaVwgOwor55C057eaID4ga2luc2VuXCA7Civog6Hnk5wgPiBreXV1cmlcIDsKK+WGjeOAhSA+IHNhaXNhaVwgOwor6aOb6LaKID4gaGlldHN1XCA7CivnlJ/mhYsgPiBzZWl0YWlcIDsKK+WztuS4uyA+IHRvdXNodVwgOwor5p2l6KuHID4gcmFpZGFuXCA7CivlgInlu6kgPiBzb3VyaW5cIDsKK+iFkOacvSA+IGZ1a3l1dVwgOwor5a6J56mPID4gYW4nJ25vblwgOwor5YCk5a6JID4gbmV5YXN1XCA7Civku6PoiaYgPiBkYWlrYW5cIDsKK+WvuOazlSA+IHN1bnBvdVwgOwor6IOO55ukID4gdGFpYmFuXCA7CivogIHovrIgPiByb3Vub3VcIDsKK+S5semAoCA+IHJhbnpvdVwgOwor5YKN5Lq6ID4gYm91amluXCA7CivlsYjmjIcgPiBrdXNzaGlcIDsKK+iCsueoriA+IGlrdXNodVwgOwor5qSc5ZWPID4ga2VubW9uXCA7CivmooXmnpcgPiBiYWlyaW5cIDsKK+acqOmHmCA+IGtpa3VnaVwgOwor5pyJ6ZaRID4geXV1a2FuXCA7CivnlKjlv4MgPiB5b3VqaW5cIDsKK+eUt+W3pSA+IGRhbmtvdVwgOwor6LG86LKFID4gaGlreXV1XCA7CivmnIjplpMgPiBnZWtrYW5cIDsKK+WxseW3kyA+IHNhbnRlblwgOwor5LuP6JGsID4gYnVzc291XCA7CivlgJ/lrrYgPiBzaGFra2FcIDsKK+abuOmdoiA+IHNob21lblwgOwor5bGx5ba6ID4gc2FucmVpXCA7CivmnaXoqKogPiByYWlob3VcIDsKK+S4remfsyA+IGNodXVvblwgOwor55So5b25ID4geW91ZWtpXCA7Civnj6rol7sgPiBrZWlzb3VcIDsKK+i0iOetlCA+IHpvdXRvdVwgOwor6ICB6LypID4gcm91aGFpXCA7Civogb7ogIUgPiByb3VzaGFcIDsKK+ahkea1tyA+IHNvdWthaVwgOwor5bCP5qWvID4ga29kYXRlXCA7Civmn7HnpI4gPiBjaHV1c29cIDsKK+mkiuicgiA+IHlvdWhvdVwgOwor5a6f55u4ID4gamlzc291XCA7CivkuovosaEgPiBqaXNob3VcIDsKK+WvkueCuSA+IGthbnRlblwgOwor6IGa6JC9ID4ganVyYWt1XCA7CivmpJzlk4EgPiBrZW5waW5cIDsKK+WGheOAhSA+IG5haW5haVwgOwor5YG25YOPID4gZ3V1em91XCA7CivlrZjnva4gPiBzb25jaGlcIDsKK+acrOmCuCA+IGhvbnRlaVwgOwor5L2T54++ID4gdGFpZ2VuXCA7CivnlarlnLAgPiBiYW5jaGlcIDsKK+adseihjCA+IHRvdWtvdVwgOwor5pys6YKmID4gaG9ucG91XCA7CivnlLLlt6EgPiBrb3VqdW5cIDsKK+adpeimsyA+IHJhaWthblwgOwor6aSK6JqVID4geW91c2FuXCA7CivmnKzpgbggPiBob25zZW5cIDsKK+mgvem9oiA+IHRhaXJlaVwgOwor55Kw5rW3ID4ga2Fua2FpXCA7CivmnKjpg6ggPiBtb2t1YnVcIDsKK+ahg+a6kCA+IHRvdWdlblwgOwor5pys6YGTID4gaG9uZG91XCA7CivlsYXmiYAgPiBreW9zaG9cIDsKK+miqOmItCA+IGZ1dXJpblwgOwor6Lev5bqKID4gcm9zaG91XCA7Civlgb3kvZwgPiBnaXNha3VcIDsKK+S5sei7jSA+IHJhbmd1blwgOwor6LOe576OID4gc2hvdWJpXCA7CivlsZXmgKcgPiB0ZW5zZWlcIDsKK+iyr+iUtSA+IGNob3pvdVwgOwor5bCC5qiqID4gc2VuJydvdVwgOwor5bCC5qipID4gc2Vua2VuXCA7CivlgKHlqaYgPiBzaG91ZnVcIDsKK+acnemHjiA+IGNob3V5YVwgOwor6IOa54+gID4gaGFpc2h1XCA7CivmnKrpgLIgPiBtaXNoaW5cIDsKK+S8keespiA+IGt5dXVmdVwgOwor55Sf5b2pID4gc2Vpc2FpXCA7Civpoqjph4cgPiBmdXVzYWlcIDsKK+iDjueUnyA+IHRhaXNlaVwgOwor55Sj5buDID4gc2FucGFpXCA7Civku6TogZ4gPiByZWlidW5cIDsKK+S/s+W+iiA+IGhhaWthaVwgOwor6Ieq5YqbID4gamlyaWtpXCA7Civkv4LmlbAgPiBrZWlzdXVcIDsKK+S4remZsCA+IGNodXVpblwgOwor5qSc5Y2wID4ga2VuJydpblwgOwor55S65a62ID4gY2hvdWthXCA7CivlsJHmnpcgPiBzaG9yaW5cIDsKK+WBpeWFqCA+IGtlbnplblwgOwor5YGP5ZCRID4gaGVua291XCA7Civlr67mr40gPiByeW91Ym9cIDsKK+iIiOS6oSA+IGtvdWJvdVwgOwor55S75a2mID4gZ2FnYWt1XCA7CivlsIbmo4sgPiBzaG91Z2lcIDsKK+S6kuinkiA+IGdva2FrdVwgOwor6LOq57SgID4gc2hpc3NvXCA7CivmoLnmupAgPiBrb25nZW5cIDsKK+afs+eciSA+IHJ5dXViaVwgOwor5LqJ6KuWID4gc291cm9uXCA7CivotbDms5UgPiBzb3Vob3VcIDsKK+S4iumosCA+IGpvdXRvdVwgOwor5bGx5a62ID4geWFtYWdhXCA7CivkvJrnpL4gPiBrYWlzaGFcIDsKK+Wun+eUnyA+IG1pc2hvdVwgOwor5pyr6LypID4gbWFwcGFpXCA7CivlsZ7lt64gPiB6b2t1c2FcIDsKK+S4jemmtCA+IGZ1bmFyZVwgOwor55Sf5bm0ID4gc2VpbmVuXCA7CivpqJLmk74gPiBzb3Vqb3VcIDsKK+akv+S6iyA+IGNoaW5qaVwgOwor5a+u5q2MID4gcnlvdWthXCA7Civpppbnj60gPiBzaHVoYW5cIDsKK+WumueVqiA+IHRlaWJhblwgOwor5YG25Lq6ID4gZ3V1amluXCA7CivnlLflrZAgPiBkYW5zaGlcIDsKK+S7o+e9siA+IGRhaXNob1wgOwor5Luj572uID4gZGFpY2hpXCA7CivogrrnmYwgPiBoYWlnYW5cIDsKK+S+oeagvCA+IGtha2FrdVwgOwor6Ieo5YaZID4gcmluc2hhXCA7CivlrpjnlYwgPiBrYW5rYWlcIDsKK+mljOexsyA+IHNlbm1haVwgOwor6Laj5peoID4gc2h1c2hpXCA7Civku4roiKwgPiBrb25wYW5cIDsKK+WwiuadpSA+IHNvbnJhaVwgOwor5qKv5b2iID4gdGVpa2VpXCA7CivovZ/jgIUgPiBnb3Vnb3VcIDsKK+iGqOWkpyA+IGJvdWRhaVwgOwor5LqM6KaLID4gZnV0YW1pXCA7Civoh6rlhJggPiBqaW1hbWFcIDsKK+aenOiCiSA+IGthbmlrdVwgOwor5qSc5YiGID4ga2VuYnVuXCA7CivkuKHpmaIgPiByeW91aW5cIDsKK+eUsuWtkCA+IGthc3NoaVwgOwor5LiA6amaID4gaWtreW91XCA7CivlsJHmmYIgPiBzaG91amlcIDsKK+S6lOihjCA+IGdvZ3lvdVwgOwor576k6Z2SID4gZ3Vuam91XCA7Civoh7Pkvr8gPiBzaGliZW5cIDsKK+WwiuabuCA+IHNvbnNob1wgOwor5LqI6KaaID4geW9rYWt1XCA7CivlsI/mmLwgPiBrb2hpcnVcIDsKK+S9leeCuSA+IG5hbnRlblwgOwor5pud6ZyyID4gYmFrdXJvXCA7CivlsI/mmKUgPiBrb2hhcnVcIDsKK+S9meeAnSA+IHlvcmVraVwgOwor5a6d54+gID4gaG91c2h1XCA7Civlr77moKEgPiB0YWlrb3VcIDsKK+WtkOe0sCA+IHNoaXNhaVwgOwor54yu6aWMID4ga2Vuc2VuXCA7Civkv6HlvpIgPiBzaGludG9cIDsKK+eVquWPtyA+IGJhbmdvdVwgOwor55Wq5Y+wID4gYmFuZGFpXCA7CivkuIDpp4QgPiBpY2hpZGFcIDsKK+iEh+avmyA+IHdha2lnZVwgOwor6aGe6aGMID4gcnVpZGFpXCA7Civmm5zpnIogPiB5b3VyZWlcIDsKK+agueayuyA+IGtvbmNoaVwgOwor5a+65qC8ID4gamlrYWt1XCA7CivlgYnlipsgPiBpcnlva3VcIDsKK+WvoeassiA+IGtheW9rdVwgOwor5pyJ6YWNID4geXV1aGFpXCA7Civoh7Tku5UgPiBjaGlzaGlcIDsKK+S5l+i7iiA+IGpvdXNoYVwgOwor6Ieq5L+uID4gamlzaHV1XCA7Civoh6rkv6EgPiBqaXNoaW5cIDsKK+S7lee9riA+IHNoaW9raVwgOwor6aKo6LuKID4gZnV1c2hhXCA7Civmmpfpu5kgPiBhbm1va3VcIDsKK+WxseWlsyA+IHlhbWFtZVwgOwor5Lqs6JGJID4ga2VpeW91XCA7Civmmpfpu5IgPiBhbmtva3VcIDsKK+WwgeabuCA+IGZ1dXNob1wgOwor5LuP6ICFID4gYnVzc2hhXCA7Civmo4TlrZAgPiBzdXRlZ29cIDsKK+WAueWQnSA+IGtlbnJpblwgOwor6IO45rOzID4ga3lvdWVpXCA7CivlsZ7lrpggPiB6b2trYW5cIDsKK+WAkuWjiiA+IHRvdWthaVwgOwor6Ieq5L6bID4gamlreW91XCA7CivkuInpn5MgPiBzYW5rYW5cIDsKK+S6iOihqCA+IHlvaHlvdVwgOwor5LiH6aCDID4gYmFua2VpXCA7CivkuIDpo5sgPiBpY2hpaGlcIDsKK+i1t+alrSA+IGtpZ3lvdVwgOwor5YGP5YWJID4gaGVua291XCA7CivmoZTmopcgPiBraWt5b3VcIDsKK+agueavmyA+IGtvbm1vdVwgOwor5L2Z5ru0ID4geW90ZWtpXCA7CivlgI3lpKcgPiBiYWlkYWlcIDsKK+iHquS9nCA+IGppc2FrdVwgOwor6IKy55SfID4gaWt1c2VpXCA7CivnlLvlooMgPiBnYWt5b3VcIDsKK+acqOiziiA+IHRva3VzYVwgOwor5bCK5pWsID4gc29ua2VpXCA7CivnlLflo7AgPiBkYW5zZWlcIDsKK+S4iumdoiA+IGpvdW1lblwgOwor5bGF5bi4ID4ga3lvam91XCA7Civku6PntI0gPiBkYWlub3VcIDsKK+WvkuawlyA+IHNhbXVrZVwgOwor6Iez5LiKID4gc2hpam91XCA7CivkuInpnaIgPiBzYW5tZW5cIDsKK+WwiuaUmCA+IHNvbmpvdVwgOwor5YGc5LyaID4gdGVpa2FpXCA7CivlgI3lopcgPiBiYWl6b3VcIDsKK+aknOS+vyA+IGtlbmJlblwgOwor55Sf5a2YID4gc2Vpem9uXCA7CivlsZHlsYsgPiBrdXp1eWFcIDsKK+mhmOmdoiA+IGdhbm1lblwgOwor5bGx5aGeID4gc2Fuc2FpXCA7CivpoqjotqMgPiBmdXVzaHVcIDsKK+eUsuWjsCA+IGthbmdvZVwgOwor5pq06aiwID4gYm91dG91XCA7CivlsbHloYogPiBzYW5rYWlcIDsKK+WwguaWrSA+IHNlbmRhblwgOwor6IO45q+bID4gbXVuYWdlXCA7CivlsbHloLQgPiB5YW1hYmFcIDsKK+Wxj+WxhSA+IGhlaWt5b1wgOwor5LiH6Zu3ID4gYmFucmFpXCA7CivmpJzkvZMgPiBrZW50YWlcIDsKK+WumOeJiCA+IGthbnBhblwgOwor5LiJ6ZqOID4gc2FuZ2FpXCA7Civlr53mp5ggPiBuZXphbWFcIDsKK+mhlOmdoiA+IGdhbm1lblwgOwor5LiK6ZmQID4gam91Z2VuXCA7CivmnIvovKkgPiBob3ViYWlcIDsKK+WwguaUuyA+IHNlbmtvdVwgOwor5LuB6ICFID4gamluc2hhXCA7CivnlarlhbUgPiBiYW5wZWlcIDsKK+S5seimliA+IHJhbnNoaVwgOwor5pyd6LOAID4gY2hvdWdhXCA7Civlr77mlbAgPiB0YWlzdXVcIDsKK+WvqeafuyA+IHNoaW5zYVwgOwor5a+d5qWtID4gbmV3YXphXCA7CivmnKzoq5YgPiBob25yb25cIDsKK+WAn+WVjyA+IHNoYW1vblwgOwor5pu+6YGKID4gc291eXV1XCA7Civoh6PkuosgPiBzaGluamlcIDsKK+eQouejqCA+IHRha3VtYVwgOwor6IW55a2QID4gaGFyYWtvXCA7CivmoZ/mlbcgPiBzYWppa2lcIDsKK+WvvuaUryA+IHRhaXNoaVwgOwor6aSK6IKyID4geW91aWt1XCA7CivpoqjosowgPiBmdXVib3VcIDsKK+S8r+eItiA+IGhha3VmdVwgOwor5pys6KqMID4gaG9uc2hpXCA7CivlrZDnqK4gPiBrb2RhbmVcIDsKK+S7lOe0sCA+IHNoaXNhaVwgOwor5p2x6IiqID4gdG91a291XCA7CivlsI/mjIcgPiBrb3l1YmlcIDsKK+acgOi/kSA+IHNhaWtpblwgOwor5pyq6KqtID4gbWlkb2t1XCA7Civku67np7AgPiBrYXNob3VcIDsKK+S9k+a2siA+IHRhaWVraVwgOwor5LiA6Zq7ID4gaXNzZWtpXCA7Civlr7jmlq0gPiBzdW5kYW5cIDsKK+eUn+WnnCA+IHNob3VnYVwgOwor5LiJ6ZaAID4gc2FubW9uXCA7CivogIHoobAgPiByb3VzdWlcIDsKK+iLm+OAhSA+IGlyYWlyYVwgOwor5L2O5ribID4gdGVpZ2VuXCA7Civoh6PkuIsgPiBzaGlua2FcIDsKK+WAoeWSjCA+IHNob3V3YVwgOwor5pyq6KmzID4gbWlzaG91XCA7CivohZDlv4MgPiBmdXNoaW5cIDsKK+aatOmiqCA+IGJvdWZ1dVwgOwor5L2Z5rKiID4geW90YWt1XCA7CivlrprngrkgPiB0ZWl0ZW5cIDsKK+abuOmBkyA+IHNob2RvdVwgOwor5Lit6YOoID4gY2h1dWJ1XCA7CivlgY/kurogPiBoZW5qaW5cIDsKK+WApuWOrSA+IGtlbicnZW5cIDsKK+WtpueboyA+IGdha2thblwgOwor6aSK6ICBID4geW91cm91XCA7CivogoznnYAgPiBoYWRhZ2lcIDsKK+eUo+WjsCA+IHVidWdvZVwgOwor6aO06ImyID4gYW1laXJvXCA7CivnlLDlnLAgPiBkZW5jaGlcIDsKK+acneitsCA+IGNob3VnaVwgOwor55Sw5ZySID4gZGVuJydlblwgOwor5bCP5oiRID4gc2hvdWdhXCA7CivlqabplbcgPiBmdWNob3VcIDsKK+mmmea4ryA+IGhvbmtvblwgOwor5qK15aa7ID4gYm9uc2FpXCA7CivmoYLmnpcgPiBrZWlyaW5cIDsKK+S4gOmWkyA+IGhpdG9tYVwgOwor5a2Y55+lID4gem9uY2hpXCA7CivkuK3pgJQgPiBjaHV1dG9cIDsKK+eQuueRryA+IGhvdXJvdVwgOwor55S75ZWGID4gZ2FzaG91XCA7CivmnaXoiKogPiByYWlrb3VcIDsKK+mgu+mguyA+IGhpbnBpblwgOwor5bC75bC+ID4gc2hpcHBvXCA7CivmoKHmraMgPiBrb3VzZWlcIDsKK+S+i+aWhyA+IHJlaWJ1blwgOwor55Sa5aSnID4gamluZGFpXCA7CivkvovmlbAgPiByZWlzdXVcIDsKK+S6jOiRiSA+IGZ1dGFiYVwgOwor6aO86IKyID4gc2hpaWt1XCA7Civkv7Plo4cgPiBoYWlkYW5cIDsKK+Wxr+WWtiA+IHRvbicnZWlcIDsKK+adpeiHqCA+IHJhaXJpblwgOwor5qK15aSpID4gYm9udGVuXCA7CivnlKjlnLAgPiB5b3VjaGlcIDsKK+iytOe0syA+IGtpc2hpblwgOwor5pq06ZyyID4gYmFrdXJvXCA7Civlr5LmooUgPiBrYW5iYWlcIDsKK+agueafoiA+IGtvbnRlaVwgOwor5bCE5omLID4gc2hhc2h1XCA7CivkvZXmrbMgPiBuYW5zYWlcIDsKK+eRtuaxoCA+IHlvdWNoaVwgOwor5a2m55WMID4gZ2Fra2FpXCA7CivmoJfmr5sgPiBrdXJpZ2VcIDsKK+WwiuaFriA+IHNvbnJ5b1wgOwor5L2P5rCRID4ganV1bWluXCA7CivpqZrllpwgPiBreW91a2lcIDsKK+WwkeaBqSA+IHNob3VvblwgOwor55Sj5ZywID4gc2FuY2hpXCA7Civkv5flrZcgPiB6b2t1amlcIDsKK+WvvuaKlyA+IHRhaWtvdVwgOwor5LyB55S7ID4ga2lrYWt1XCA7CivnlJjloakgPiBhbWFqaW9cIDsKK+i1pOacrCA+IGFrYWhvblwgOwor6aKo6KejID4gZnV1a2FpXCA7CivkvbXmnIkgPiBoZWl5dXVcIDsKK+Wxi+WkliA+IG9rdWdhaVwgOwor6aas5qmHID4gYmFzb3JpXCA7CivkuK3ouqsgPiBuYWthbWlcIDsKK+eQhuelniA+IHJpc2hpblwgOwor5L2z5pyoID4ga2Fib2t1XCA7CivmoLnmnKwgPiBuZW1vdG9cIDsKK+iBlueulyA+IHNlaXNhblwgOwor5Lq657W5ID4gamlua2VuXCA7CivkuLvos5MgPiBzaHVoaW5cIDsKK+eUn+WcsCA+IHNlaWNoaVwgOwor6aKo6KaLID4ga2F6YW1pXCA7Civlr77miKYgPiB0YWlzZW5cIDsKK+S7luensCA+IHRhc2hvdVwgOwor5pyb6KaLID4gYm91a2VuXCA7CivpppnmsLQgPiBrb3VzdWlcIDsKK+WvkuadkSA+IGthbnNvblwgOwor5p2J6I+cID4gc3VnaW5hXCA7CivnlZnkv50gPiByeXV1aG9cIDsKK+iDveabuCA+IG5vdXNob1wgOwor5L2c5qWtID4gc2FneW91XCA7Civku5jnpaggPiBmdWh5b3VcIDsKK+WAqOWCsiA+IGt5b2dvdVwgOwor5qC55pqXID4gbmVrdXJhXCA7Civot6HlnLAgPiBhdG9jaGlcIDsKK+S6uuezniA+IGppbnB1blwgOwor5a2m55CGID4gZ2FrdXJpXCA7CivohLPmgKcgPiBub3VzZWlcIDsKK+eUu+WMoCA+IGdhc2hvdVwgOwor5L2Z5qWtID4geW9neW91XCA7CivlsI/lvaIgPiBrb2dhdGFcIDsKK+S/oeWjqyA+IHNoaW5qaVwgOwor6IWr5aSnID4gc2h1ZGFpXCA7Civkub7oj5wgPiBrYW5zYWlcIDsKK+aciOisnSA+IGdlc3NoYVwgOwor5a+G5qCTID4gbWlzc2VuXCA7Civlr5LmmpYgPiBrYW5kYW5cIDsKK+WvkuaakSA+IGthbnNob1wgOwor5a2Q55mHID4gc2hpa2FuXCA7CivpoqjooosgPiBmdXV0YWlcIDsKK+WApeWBrCA+IGtvdXNvdVwgOwor5bCP5byVID4gc2hvdWluXCA7CivkvZPmp5ggPiB0YWl5b3VcIDsKK+S6uuexnyA+IGppbnJhaVwgOwor5LiJ6YeNID4gc2FuanV1XCA7CivosqHntYwgPiB6YWlrZWlcIDsKK+WtmOeUnyA+IHpvbmpvdVwgOwor5a2X55S7ID4gamlrYWt1XCA7CivkuIfph5EgPiBtYW5raW5cIDsKK+WwiuW9sSA+IHNvbicnZWlcIDsKK+agueaWuSA+IG5la2F0YVwgOwor55So5ZOBID4geW91aGluXCA7Civku67nl4UgPiBrZWJ5b3VcIDsKK+S4iumFkiA+IGpvdXNodVwgOwor5a6X5rS+ID4gc2h1dWhhXCA7Civlrprms5UgPiBqb3Vob3VcIDsKK+WutualrSA+IGthZ3lvdVwgOwor54yu6YeRID4ga2Vua2luXCA7CivnkrDmjIcgPiBrYW5zaGlcIDsKK+eUqOWRvSA+IHlvdW1laVwgOwor6IOh5qSSID4ga29zaG91XCA7Civoga/nm58gPiByZW5tZWlcIDsKK+iDhuaxgSA+IHRhbmp1dVwgOwor55Cl54+AID4ga29oYWt1XCA7Civog73mlocgPiBub3VidW5cIDsKK+WxheWfjiA+IGt5b2pvdVwgOwor5Li76KyAID4gc2h1Ym91XCA7Civlrpfms5UgPiBzb3Vob3VcIDsKK+Wwj+W5hSA+IGtvaGFiYVwgOwor5a2k54usID4ga29kb2t1XCA7CivnlKPlk4EgPiBzYW5waW5cIDsKK+mhmOmFkiA+IGdhbnNodVwgOwor5p2x57WMID4gdG91a2VpXCA7Civkub7oirsgPiBrYW5zdXVcIDsKK+WujOa4iCA+IGthbnNhaVwgOwor5LiN6YGpID4gZnV0ZWtpXCA7Civlr4bmm7ggPiBtaXNzaG9cIDsKK+iCoeeBqyA+IG1hdGFiaVwgOwor6aCI6auvID4gc2h1emVuXCA7CivlsI7luKsgPiBkb3VzaGlcIDsKK+e+jumGnCA+IGJpc2h1dVwgOwor5bCC5b6TID4gc2VuanV1XCA7CivkuIDph4wgPiBpY2hpcmlcIDsKK+WvteaEmyA+IGNob3VhaVwgOwor5a6d5q6/ID4gaG91ZGVuXCA7CivkubPoj5MgPiBueXV1a2FcIDsKK+Wwj+W3riA+IHNob3VzYVwgOwor54+g566XID4gc2h1emFuXCA7CivkuI3pgJogPiBmdXRzdXVcIDsKK+iEs+W5uSA+IG5vdWthblwgOwor5L6b5b+cID4ga3lvdW91XCA7Civnjonol7sgPiB0YW1hbW9cIDsKK+iCneeCjiA+IGthbicnZW5cIDsKK+S4iemBuCA+IHNhbnNlblwgOwor5bCL5bi4ID4gamluam91XCA7Civkv67llrYgPiBzaHV1ZWlcIDsKK+S4ueiqoCA+IHRhbnNlaVwgOwor6IOh5qGDID4ga3VydW1pXCA7CivkuIfpgqYgPiBiYW5wb3VcIDsKK+iAgeiNmCA+IHJvdXNvdVwgOwor5a6Y5rCRID4ga2FubWluXCA7Civkub7oiLcgPiBrYW5nZW5cIDsKK+WxnuWQjyA+IHpva3VyaVwgOwor5p6h55uuID4gbWFzdW1lXCA7CivkuIHphYkgPiB0ZWl5dXVcIDsKK+iBnuefpSA+IGJ1bmNoaVwgOwor5a625qC8ID4ga2FrYWt1XCA7CivotorlvowgPiBlY2hpZ29cIDsKK+eUn+WRvSA+IHNlaW1laVwgOwor5bCa5bCaID4gbmFvbmFvXCA7CivkuInpgKMgPiBzYW5yZW5cIDsKK+e+qei2syA+IGdpc29rdVwgOwor5Li76KiIID4gc2h1a2VpXCA7CivmoKHmnKwgPiBrb3Vob25cIDsKK+aarumQmCA+IGJvc2hvdVwgOwor5bCB5bu6ID4gaG91a2VuXCA7Civlr77lvZMgPiB0YWl0b3VcIDsKK+acqOiUrSA+IGtva2FnZVwgOwor5YCS5YOPID4gdG91em91XCA7CivnvoXph50gPiByYXNoaW5cIDsKK+WwhOW5uCA+IHNoYWtvdVwgOwor5qK15ZSEID4gYm9uYmFpXCA7CivkuIrovrogPiBqb3VoZW5cIDsKK+S4gOmDrSA+IGlra2FrdVwgOwor5LiA6YOoID4gaWNoaWJ1XCA7CivlrprmrL4gPiB0ZWlrYW5cIDsKK+S9leaemiA+IG5hbm1haVwgOwor5a+45b+XID4gc3Vuc2hpXCA7CivkvZ7mmbogPiBuZWljaGlcIDsKK+S4u+imsyA+IHNodWthblwgOwor5a625p+EID4gaWVnYXJhXCA7CivlsI/ls7YgPiBrb2ppbWFcIDsKK+acrOiRrCA+IGhvbnNvdVwgOwor55Sj5Y21ID4gc2FucmFuXCA7CivkurrnqK4gPiBqaW5zaHVcIDsKK+WujOayuyA+IGthbmNoaVwgOwor5L2V5p2hID4gbmFuam91XCA7CivkuLvopoEgPiBzaHV5b3VcIDsKK+S7o+eUqCA+IGRhaXlvdVwgOwor5pu46KqMID4gc2hvc2hpXCA7CivnlLLlhbUgPiBrb3VoZWlcIDsKK+S8r+avjSA+IGhha3Vib1wgOwor5L+z5ZCNID4gaGFpbWVpXCA7Civlrp/mqKkgPiBqaWtrZW5cIDsKK+S/s+WPtyA+IGhhaWdvdVwgOwor6LaK5bqmID4gb2NoaWRvXCA7Civpo5vnv5QgPiBoaXNob3VcIDsKK+S6iOe/kiA+IHlvc2h1dVwgOwor576p6LOKID4gZ2l6b2t1XCA7Civlr53mioAgPiBuZXdhemFcIDsKK+Wwj+WxsSA+IGtveWFtYVwgOwor5LiJ6LyqID4gc2FucmluXCA7CivlsIrltIcgPiBzb25zdXVcIDsKK+S/s+WPiyA+IGhhaXl1dVwgOwor5LiA6YCxID4gaXNzaHV1XCA7CivkvJHmvJQgPiBreXV1ZW5cIDsKK+S4gOmAmiA+IGl0dHN1dVwgOwor6ISH5oi4ID4gd2FraWRvXCA7CivkuInou70gPiBzYW5rZWlcIDsKK+Wwv+WZqCA+IG55b3VraVwgOwor5a+d5omAID4gc2hpbmpvXCA7CivlsKjlpKcgPiBib3VkYWlcIDsKK+S4iei7jSA+IHNhbmd1blwgOwor54ut6ZynID4gc2FnaXJpXCA7CivlrZDnjKsgPiBrb25la29cIDsKK+agueaLoCA+IGtvbmt5b1wgOwor5a+h5oW+ID4ga2F5b2t1XCA7CivkupXntrEgPiBpZHp1bmFcIDsKK+S4h+i7jSA+IGJhbmd1blwgOwor6amV5YWQID4ga3lvdWppXCA7Civosarog4YgPiBnb3V0YW5cIDsKK+adseerryA+IHRvdXRhblwgOwor5pys6I2JID4gaG9uem91XCA7CivnlJ/li5UgPiBzZWlkb3VcIDsKK+iyu+ebriA+IGhpbW9rdVwgOwor5pu46KaLID4gc2hva2VuXCA7Civku5nnlYwgPiBzZW5rYWlcIDsKK+WumOaoqSA+IGthbmtlblwgOwor5pu06KiCID4ga291dGVpXCA7CivnlKPliY0gPiBzYW56ZW5cIDsKK+Wwj+WutCA+IHNob3VlblwgOwor546J6I+cID4gdGFtYW5hXCA7CivnlKPliLYgPiBzYW5zZWlcIDsKK+WtlOeJiCA+IGtvdWhhblwgOwor5pyr6Iy2ID4gbWF0Y2hhXCA7Civpo6/nsbMgPiBoYW5tYWlcIDsKK+mghumiqCA+IGp1bnB1dVwgOwor5pyx6ImyID4gc2h1aXJvXCA7Civlrp/mpJwgPiBqaWtrZW5cIDsKK+S8neazlSA+IGRlbnBvdVwgOwor55S75LyvID4gZ2FoYWt1XCA7CivnlKjlhbUgPiB5b3VoZWlcIDsKK+eLremamCA+IGt5b3VhaVwgOwor542j6KGMID4ganV1a291XCA7CivkuI3otrMgPiBmdXNva3VcIDsKK+izh+eUoyA+IHNoaXNhblwgOwor5auB6I+cID4geW9tZW5hXCA7CivkupTntYwgPiBnb2t5b3VcIDsKK+mnheaJiyA+IGVraXNodVwgOwor5ayJ56yRID4ga2lzaG91XCA7CivkuovnuL4gPiBqaXNla2lcIDsKK+eUn+WJjSA+IHNlaXplblwgOwor5qOE5YWQID4gc3V0ZWdvXCA7CivlrZDniZsgPiBrb3VzaGlcIDsKK+S7lueUnyA+IHRhc2hvdVwgOwor5LiL6LazID4gZ2Vzb2t1XCA7CivkvZXmlrkgPiBkb25hdGFcIDsKK+ixmuiIjiA+IHRvbnNoYVwgOwor6Laz5aC0ID4gYXNoaWJhXCA7Civlrrbml48gPiBrYXpva3VcIDsKK+mghumghiA+IGp1bmp1blwgOwor5LiA6LqrID4gaXNzaGluXCA7CivmnKzoiLkgPiBob25zZW5cIDsKK+iCpeaygyA+IGhpeW9rdVwgOwor5a++5bK4ID4gdGFpZ2FuXCA7CivmorHljIUgPiBrb25wb3VcIDsKK+S4gOi5tCA+IGlzc2h1dVwgOwor5p6X55SjID4gcmluc2FuXCA7Civkurrnn6UgPiBqaW5jaGlcIDsKK+e9sOmHkSA+IGJha2tpblwgOwor5a625pWZID4ga2FreW91XCA7Civku6TnirYgPiByZWlqb3VcIDsKK+S+i+W5tCA+IHJlaW5lblwgOwor54ut6ZaTID4gaGF6YW1hXCA7CivohJvlt74gPiBoYWJha2lcIDsKK+i2o+WlvSA+IHNodWtvdVwgOwor5bGl5L+uID4gcmlzaHV1XCA7Civkv6Hlj5cgPiBzaGluanVcIDsKK+iGneS4iyA+IHNoaWtrYVwgOwor5LqM57SaID4gbmlreXV1XCA7CivotavmgJIgPiBrYWt1ZG9cIDsKK+acrOiGsyA+IGhvbnplblwgOwor6LW35bqKID4ga2lzaG91XCA7CivkuIDot68gPiBpY2hpcm9cIDsKK+iEhuaApyA+IHplaXNlaVwgOwor5L2T5pONID4gdGFpc291XCA7Civkvb/lvbkgPiBzaGlla2lcIDsKK+S4reihmyA+IGNodXVlaVwgOwor5pmp6aSQID4gYmFuc2FuXCA7Civku4vnlLIgPiBrYWlrb3VcIDsKK+iCneayuSA+IGthbicneXVcIDsKK+WxseS4iiA+IHNhbmpvdVwgOwor576k6KuWID4gZ3Vucm9uXCA7CivlsI/lp5MgPiBrb3Nob3VcIDsKK+eUqOS+vyA+IHlvdWJlblwgOwor5L+z5YSqID4gaGFpeXV1XCA7Civku4rnlJ8gPiBrb25qb3VcIDsKK+WwkeWlsyA+IHNob3Vqb1wgOwor5Lq655u4ID4gbmluc291XCA7CivkuojntIQgPiB5b3lha3VcIDsKK+S+m+WutCA+IGt5b3VlblwgOwor5Lq655uuID4gaGl0b21lXCA7CivnlKjkvosgPiB5b3VyZWlcIDsKK+eUmOWFmiA+IGFtYXRvdVwgOwor6LKn55u4ID4gaGluc291XCA7Civog4zmma8gPiBoYWlrZWlcIDsKK+mnkuW6pyA+IGtvbWF6YVwgOwor5L+X5ZCPID4gem9rdXJpXCA7Civlronmpb0gPiBhbnJha3VcIDsKK+agueaApyA+IGtvbmpvdVwgOwor5bCW5aGUID4gc2VudG91XCA7CivkuJboqZUgPiBzZWh5b3VcIDsKK+S5l+iJpiA+IGpvdWthblwgOwor5Lim6KGMID4gaGVpa291XCA7Civnj63nlLAgPiBoYW5kZW5cIDsKK+acieiTiyA+IHl1dWdhaVwgOwor5LuU54yrID4ga29uZWtvXCA7CivlrprmnKwgPiB0ZWlob25cIDsKK+eUqOS7tiA+IHlvdWtlblwgOwor5LmX6Ii5ID4gam91c2VuXCA7CivpqLDli6IgPiB0b3VzZWlcIDsKK+Wun+aZryA+IGppa2tlaVwgOwor5bGL5YaFID4gb2t1bmFpXCA7CivlrabmtL4gPiBnYWt1aGFcIDsKK+miqOiIuSA+IGZ1dXNlblwgOwor55So5Lq6ID4geW91bmluXCA7Civmn5Tmr5sgPiBqdXVtb3VcIDsKK+adpeekviA+IHJhaXNoYVwgOwor54++54q2ID4gZ2Vuam91XCA7Civpn7Ppn78gPiBvbmt5b3VcIDsKK+acqOiCjCA+IGtpaGFkYVwgOwor5bCK5aSnID4gc29uZGFpXCA7CivohLPlpKkgPiBub3V0ZW5cIDsKK+WqmuiWrCA+IGJpeWFrdVwgOwor6aKo6Ie0ID4gZnV1Y2hpXCA7CivkuI3oqr8gPiBmdWNob3VcIDsKK+WvneW6iiA+IG5lZG9rb1wgOwor5p+Q5rCPID4gYm91c2hpXCA7CivkupTnqYAgPiBnb2tva3VcIDsKK+S4luilsiA+IHNlc2h1dVwgOwor6ICB57e0ID4gcm91cmVuXCA7CivnlJ/kvZMgPiBzZWl0YWlcIDsKK+S7lOeJmyA+IGtvdXNoaVwgOwor5LiN6KmzID4gZnVzaG91XCA7Civlrp/mlr0gPiBqaXNzaGlcIDsKK+mguOi8qiA+IGt1Yml3YVwgOwor5LiH6KydID4gYmFuc2hhXCA7CivkuInoq5YgPiBzYW5yb25cIDsKK+S4jeiplSA+IGZ1aHlvdVwgOwor5L+X5YuZID4gem9rdW11XCA7Civpp4XlvIEgPiBla2liZW5cIDsKK+aZqemcnCA+IGJhbnNvdVwgOwor5L6g5aWzID4ga3lvdWpvXCA7CivmnKznvbIgPiBob25zaG9cIDsKK+WvneW3uyA+IG5lbWFraVwgOwor5p2R56ulID4gc29uZG91XCA7Civlrp/mlbAgPiBqaXNzdXVcIDsKK+iDveW8gSA+IG5vdWJlblwgOwor5Lq655SfID4gamluc2VpXCA7CivlrojmoKogPiBzaHVzaHVcIDsKK+S9leaJjSA+IG5hbnNhaVwgOwor5LqJ56uvID4gc291dGFuXCA7CivmoLnlupUgPiBrb250ZWlcIDsKK+S4reiYhyA+IGNodXVzb1wgOwor5LiA6K2wID4gaWNoaWdpXCA7CivkvLTmmJ8gPiBiYW5zZWlcIDsKK+mjm+ernCA+IGhpcnl1dVwgOwor5qC55bm5ID4ga29ua2FuXCA7CivotaTluL0gPiBha2Fib3VcIDsKK+Wwj+WeiyA+IGtvZ2F0YVwgOwor6aSK55SfID4geW91am91XCA7Civmna/nm6QgPiBoYWliYW5cIDsKK+aatOi1sCA+IGJvdXNvdVwgOwor5LiK6KiIID4gam91a2VpXCA7CivlsIrloIIgPiBzb25kb3VcIDsKK+agvOW3riA+IGtha3VzYVwgOwor5bCC5aOyID4gc2VuYmFpXCA7Civlrr/mhI8gPiBzaHVrdWlcIDsKK+S4jeimmiA+IGZ1a2FrdVwgOwor5L+z5Lq6ID4gaGFpamluXCA7CivlrozmnKwgPiBrYW5wb25cIDsKK+iAs+ebriA+IGppbW9rdVwgOwor5a6a5pWwID4gdGVpc3V1XCA7CivkvZ7mgqogPiBuZWlha3VcIDsKK+S/r+S8jyA+IGZ1ZnVrdVwgOwor54yu6KmgID4ga2VuJydlaVwgOwor5a+M5by3ID4gZnVreW91XCA7CivpqJnlj5YgPiBoZW5zaHVcIDsKK+S/r+S7sCA+IGZ1Z3lvdVwgOwor5LiK6KanID4gam91cmFuXCA7CivkuIfoqIAgPiBtYW5nZW5cIDsKK+WvvuWkliA+IHRhaWdhaVwgOwor5L2P5omAID4ganV1c2hvXCA7CivosqHnlYwgPiB6YWlrYWlcIDsKK+iAleeoriA+IGtvdXNodVwgOwor6aKo6IGeID4gZnV1YnVuXCA7CivkuIropoYgPiB1d2Fvb2lcIDsKK+WuueaFiyA+IHlvdWRhaVwgOwor5bCE5aC0ID4gc2hham91XCA7CivlsY3kvZMgPiBzaGl0YWlcIDsKK+iyoeeUoyA+IHphaXNhblwgOwor5LiA6KqeID4gaWNoaWdvXCA7Civlr5LluK8gPiBrYW50YWlcIDsKK+WvteWnqyA+IGNob3VraVwgOwor54yu6KiAID4ga2VuZ2VuXCA7CivkvJ3mn5MgPiBkZW5zZW5cIDsKK+WvoeWwkSA+IGthc2hvdVwgOwor5Lih6JmOID4gcnlvdWtvXCA7CivnjKXoq4cgPiB3YWlkYW5cIDsKK+i2iuWigyA+IGVra3lvdVwgOwor5bCP5ZmoID4gc2hvdWtpXCA7CivkuIroo70gPiBqb3VzZWlcIDsKK+acrOe3miA+IGhvbnNlblwgOwor5LyO5qW9ID4gZ2lnYWt1XCA7CivkvZPmhJ8gPiB0YWlrYW5cIDsKK+S/l+WEkiA+IHpva3VqdVwgOwor5LmD6IezID4gbmFpc2hpXCA7CivkuIroo4EgPiBqb3VzYWlcIDsKK+S8neadpSA+IGRlbnJhaVwgOwor6Imy44CFID4gaXJvaXJvXCA7Civlr53lsI8gPiBuZXNob3VcIDsKK+acrOe1uSA+IGhvbmtlblwgOwor6aOv55uSID4gaGFuZ291XCA7CivkuIvooaggPiBrYWh5b3VcIDsKK+izpOawkSA+IHNlbm1pblwgOwor5bGF5L2PID4ga3lvanV1XCA7CivohZXliY0gPiB1ZGVtYWVcIDsKK+S7ruaziiA+IGthaGFrdVwgOwor5L2Z5b6zID4geW90b2t1XCA7CivmnKzntJkgPiBob25zaGlcIDsKK+i2qOWQkSA+IHN1dWtvdVwgOwor5L2e5byBID4gbmVpYmVuXCA7CivkuK3oj68gPiBjaHV1a2FcIDsKK+S9meW+lyA+IHlvdG9rdVwgOwor5a6z5oKqID4gZ2FpYWt1XCA7CivlsIHlnLAgPiBob3VjaGlcIDsKK+WujOaVlyA+IGthbnBhaVwgOwor5Lqk55WqID4ga291YmFuXCA7Civkv5rkv5cgPiByaXpva3VcIDsKK+mhjOiogCA+IGRhaWdlblwgOwor5bGL5LiKID4gb2t1am91XCA7CivmnKjntYQgPiBraWd1bWlcIDsKK+acieiDvSA+IHl1dW5vdVwgOwor5bCa5Y+kID4gc2hvdWtvXCA7CivpqJLli5UgPiBzb3Vkb3VcIDsKK+iDjOaIuyA+IGhhaXJlaVwgOwor5L6L5aSWID4gcmVpZ2FpXCA7CivlrqPmiKYgPiBzZW5zZW5cIDsKK+iAs+eSsCA+IG1pbWl3YVwgOwor5LqU55uuID4gZ29tb2t1XCA7Civlr5PlsYUgPiBndXVreW9cIDsKK+i2o+WQkSA+IHNodWtvdVwgOwor6LKi54yuID4ga291a2VuXCA7Civni6zpgLggPiBkb2l0c3VcIDsKK+agoeW6rSA+IGtvdXRlaVwgOwor6LOH5rqQID4gc2hpZ2VuXCA7Civlr6HlqaYgPiB5YW1vbWVcIDsKK+Wwi+WVjyA+IGppbm1vblwgOwor5pq06KuWID4gYm91cm9uXCA7CivmnaHnl5UgPiBqb3Vrb25cIDsKK+agvOWtkCA+IGtvdXNoaVwgOwor5LyB5qWtID4ga2lneW91XCA7CivkvbXlrZggPiBoZWl6b25cIDsKK+mjsueUqCA+IGluJyd5b3VcIDsKK+S9k+W9oiA+IHRhaWtlaVwgOwor5a+M5bKzID4gZnVnYWt1XCA7Civlrp/miKYgPiBqaXNzZW5cIDsKK+S4u+iEsyA+IHNodW5vdVwgOwor6IOh5byTID4ga29reXV1XCA7CivmmLzppIkgPiBoaXJ1Z2VcIDsKK+eQtOafsSA+IGtvdG9qaVwgOwor6Lao5YuiID4gc3V1c2VpXCA7Civkvp3lmLEgPiBpc2hva3VcIDsKK+aYvOmjnyA+IGhpcnVnZVwgOwor5a+S5a6zID4ga2FuZ2FpXCA7CivpoJHov7cgPiBnYW5tZWlcIDsKK+Wum+aJgCA+IGF0ZXNob1wgOwor5p+Q5p+QID4gYm91Ym91XCA7CivnjaPohIIgPiBqdXVzaGlcIDsKK+S9juW+iiA+IHRlaWthaVwgOwor5pys566hID4gaG9ua2FuXCA7Civosq/ngq0gPiBjaG90YW5cIDsKK+S6jOebriA+IGZ1dGFtZVwgOwor5bCP5ZCPID4gc2hvdXJpXCA7CivkurrnhZkgPiBqaW4nJ2VuXCA7CivmmrToqIAgPiBib3VnZW5cIDsKK+S/iuWBiSA+IHNodW4nJ2lcIDsKK+WwiuWRvSA+IHNvbm1laVwgOwor5a6Y5oi/ID4ga2FuYm91XCA7Civmnb7nhZkgPiBzaG91ZW5cIDsKK+iCpeaWmSA+IGhpcnlvdVwgOwor5LyR5pqHID4ga3l1dWthXCA7Civkv5fkuosgPiB6b2t1amlcIDsKK+Wun+aFiyA+IGppdHRhaVwgOwor5pyo566xID4ga2liYWtvXCA7CivmnInnvaogPiB5dXV6YWlcIDsKK+eLrei7jCA+IGt5b3VraVwgOwor6LO85pu4ID4ga291c2hvXCA7CivlrabmoKEgPiBnYWtrb3VcIDsKK+acqOeuoSA+IG1va2thblwgOwor546E57GzID4gZ2VubWFpXCA7Civnj4jnkLIgPiBrb3VoaWlcIDsKK+miqOe0iyA+IGZ1dW1vblwgOwor5qCq5bGLID4ga2FidXlhXCA7Civlrp/mhJ8gPiBqaWtrYW5cIDsKK+WwiuWQmyA+IHNvbmt1blwgOwor5a6f5oSPID4gaml0c3VpXCA7CivlsIrlkI0gPiBzb25tZWlcIDsKK+S9juW7iSA+IHRlaXJlblwgOwor6aO854qsID4ga2FpaW51XCA7CivlsIrlj7cgPiBzb25nb3VcIDsKK+S7lua1gSA+IHRhcnl1dVwgOwor5bCK5Y+wID4gc29uZGFpXCA7CivmnKvnq68gPiBtYXR0YW5cIDsKK+WumOaGsiA+IGthbmtlblwgOwor5LuY5rOoID4gZnVjaHV1XCA7Civpo5vnmb0gPiBrYXN1cmlcIDsKK+izjuawkSA+IHNlbm1pblwgOwor5L2Q5bmVID4gc2FiYWt1XCA7Civkurrngb0gPiBqaW5zYWlcIDsKK+S4i+iWrCA+IGdleWFrdVwgOwor5a+G5bCBID4gbWlwcHV1XCA7CivlrrTluK0gPiBlbnNla2lcIDsKK+Wwj+WMmSA+IGtvc2FqaVwgOwor5bCK5Y6zID4gc29uZ2VuXCA7CivogonmoYIgPiBuaWtrZWlcIDsKK+i1sOWhgSA+IHNvdXJ1aVwgOwor5qC85aW9ID4ga2Fra291XCA7CivkvJ3mkKwgPiBkZW5wYW5cIDsKK+Wvm+WkpyA+IGthbmRhaVwgOwor5pys56i/ID4gaG9ua291XCA7Civmm7jogoYgPiBzaG9zaGlcIDsKK+WujOaKlSA+IGthbnRvdVwgOwor5a2Q5qeYID4ga29zYW1hXCA7Civlrr/lsYsgPiB5YWRveWFcIDsKK+abuOiBliA+IHNob3NlaVwgOwor5a+/5ZG9ID4ganVteW91XCA7CivkuInolLUgPiBzYW56b3VcIDsKK+mfs+mHjyA+IG9ucnlvdVwgOwor5Lqh54q2ID4gYm91am91XCA7CivosrvmtoggPiBoaXNob3VcIDsKK+WwluWFtSA+IHNlbnBlaVwgOwor5LmX566XID4gam91emFuXCA7CivmmrTooYwgPiBib3Vrb3VcIDsKK+agueWkqiA+IG5lYnV0b1wgOwor6K2w6ZW3ID4gZ2ljaG91XCA7Civkub7nm4MgPiBrYW5wYWlcIDsKK+WujOaIkCA+IGthbnNlaVwgOwor5bCP5YipID4gc2hvdXJpXCA7Civmm7jnv7AgPiBzaG9rYW5cIDsKK+adpeeKtiA+IHJhaWpvdVwgOwor5pyJ57eaID4geXV1c2VuXCA7Civku4/ms5UgPiBidXBwb3VcIDsKK+WuieaJiyA+IHlhc3VkZVwgOwor5YOF44CFID4ga2lua2luXCA7Civlr77lkJEgPiB0YWlrb3VcIDsKK+WumuaApyA+IHRlaXNlaVwgOwor6LGq55ubID4gZ291c2VpXCA7Civkub7nmawgPiBrYW5zZW5cIDsKK+WvvuWPpSA+IHRzdWlrdVwgOwor5Lit6ICzID4gY2h1dWppXCA7CivogrLmiJAgPiBpa3VzZWlcIDsKK+WuiOaIpiA+IHNodXNlblwgOwor5qCh5a6aID4ga291dGVpXCA7Civlr5LlpKkgPiBrYW50ZW5cIDsKK+acrOekviA+IGhvbnNoYVwgOwor5LiL6JC9ID4gZ2VyYWt1XCA7CivorabpmLIgPiBrZWlib3VcIDsKK+WvkuWknCA+IGthbicneWFcIDsKK+WuiOaIkCA+IHNodXNlaVwgOwor54m56auYID4gdG9ra291XCA7CivmnKvnpL4gPiBtYXNzaGFcIDsKK+iDuOWlpSA+IGt5b3VvdVwgOwor5L2z5aKDID4ga2FreW91XCA7Civmma7pgJogPiBmdXRzdXVcIDsKK+S9l+WvnSA+IHdhYmluZVwgOwor5a6f5byfID4gaml0dGVpXCA7CivnjrLnk48gPiByZWlyb3VcIDsKK+iAgeecvCA+IHJvdWdhblwgOwor6LGK56mjID4gaG91am91XCA7CivmoL3ln7kgPiBzYWliYWlcIDsKK+e+qeiHoyA+IGdpc2hpblwgOwor54mh6baPID4gb25kb3JpXCA7CivlsI/lhbUgPiBrb2h5b3VcIDsKK+aciOe1jCA+IGdla2tlaVwgOwor6IOM5bqDID4gc2ViaXJvXCA7CivlraPmmKUgPiBraXNodW5cIDsKK+Wwj+WFkCA+IHNob3VuaVwgOwor6LGK56iUID4gaG91bmVuXCA7CivniZ3pt4QgPiBoaW5rZWlcIDsKK+WumuW9oiA+IHRlaWtlaVwgOwor5p2h54mHID4gam91aGVuXCA7Civkv4LkuokgPiBrZWlzb3VcIDsKK+ixoeecvCA+IHpvdWdhblwgOwor546z55GBID4gdGFpbWFpXCA7CivmmpfoqqYgPiBhbnNob3VcIDsKK+mokuS6uiA+IHNvdWppblwgOwor5a6X5b6SID4gc2h1dXRvXCA7CivlrZDmoKogPiBrb2thYnVcIDsKK+aYvOmWkyA+IGhpcnVtYVwgOwor5L2O5bGkID4gdGVpc291XCA7CivmoLnln44gPiBuZWppcm9cIDsKK+S6gOeUsiA+IGtpa2tvdVwgOwor6LOA5q2jID4gZ2FzaG91XCA7CivpoZXokZcgPiBrZW5jaG9cIDsKK+eJoemzpSA+IG9uZG9yaVwgOwor6aiS5LmxID4gc291cmFuXCA7CivlsIrlhawgPiBzb25rb3VcIDsKK+WuteWuriA+IHlvbWl5YVwgOwor5Lqk54K5ID4ga291dGVuXCA7CivkvY/lsIIgPiBqdXVzZW5cIDsKK+mfs+mAnyA+IG9uc29rdVwgOwor5LyQ5o6hID4gYmFzc2FpXCA7CivlrrblroUgPiBrYXRha3VcIDsKK+mjm+eQgyA+IGhpa3l1dVwgOwor5pqX6Ki8ID4gYW5zaG91XCA7CivlsIrlhYQgPiBzb25rZWlcIDsKK+S+v+S5lyA+IGJpbmpvdVwgOwor5bCC5Yi2ID4gc2Vuc2VpXCA7Civkub7nlLAgPiBrYW5kZW5cIDsKK+WutuWtpiA+IGthZ2FrdVwgOwor5Ly45bqmID4gc2hpbmRvXCA7CivkvJrmiYAgPiBrYWlzaG9cIDsKK+S9v+WXviA+IHNoaXNvdVwgOwor6LGG56eRID4gbWFtZWthXCA7CivohLHlhZogPiBkYXR0b3VcIDsKK+S8muaIpiA+IGthaXNlblwgOwor5L2e5aemID4gbmVpa2FuXCA7CivkvY/lrrYgPiBzdW1pa2FcIDsKK+eOsueOsiA+IHJlaXJlaVwgOwor5L625Ly0ID4gcnlvaGFuXCA7Civog57lrZAgPiBob3VzaGlcIDsKK+WumuW5tCA+IHRlaW5lblwgOwor5pmC6ZCYID4gamlzaG91XCA7Civos5zmna8gPiBzaGloYWlcIDsKK+iyoea6kCA+IHphaWdlblwgOwor5Lim572uID4gaGVpY2hpXCA7Civlronmga8gPiBhbnNva3VcIDsKK+WwiuWDjyA+IHNvbnpvdVwgOwor5LiN6ImvID4gZnVyeW91XCA7Civku5XmqKMgPiBzaGl5b3VcIDsKK+adsea8uCA+IHRvdXplblwgOwor5a6a5bi4ID4gdGVpam91XCA7CivkvZ7lpbggPiBuZWlrYW5cIDsKK+eMruiMtiA+IGtlbmNoYVwgOwor5LiA6I+KID4gaWtraWt1XCA7Civlrq7lrrYgPiBtaXlha2VcIDsKK+miqOelniA+IGZ1dWppblwgOwor6IOa5a2QID4gaGFpc2hpXCA7CivlrZ3mlawgPiBrb3VrZWlcIDsKK+WvvuWHpiA+IHRhaXNob1wgOwor5Lih576pID4gcnlvdWdpXCA7CivkuLnnsr4gPiB0YW5zZWlcIDsKK+S7leanmCA+IHNoaXlvdVwgOwor5a+S5ZywID4ga2FuY2hpXCA7CivkuI3oiIggPiBmdWt5b3VcIDsKK+S4h+iKuCA+IGJhbmdlaVwgOwor5LiN6IejID4gZnVzaGluXCA7CivohJrljYogPiBreWFoYW5cIDsKK+izouaYjiA+IGtlbm1laVwgOwor5LiK6Ii5ID4gam91c2VuXCA7Civosq/msLQgPiBjaG9zdWlcIDsKK+WuueWnvyA+IHlvdXNoaVwgOwor5LiK6IiqID4gam91a291XCA7CivlsJHkvZAgPiBzaG91c2FcIDsKK+aer+acqCA+IGthcmVraVwgOwor5LiA6I2YID4gaWljaGFuXCA7Civlr7jliY0gPiBzdW56ZW5cIDsKK+Wuj+W8gSA+IGtvdWJlblwgOwor5a++5YaFID4gdGFpbmFpXCA7CivogIHnlJ8gPiByb3VzZWlcIDsKK+S7tuaVsCA+IGtlbnN1dVwgOwor5LiL6IejID4ga2FzaGluXCA7Civnjbrnpa0gPiBkYXNzYWlcIDsKK+eLrOiqniA+IGRva3Vnb1wgOwor5LiK6Ie8ID4gdXdhdXN1XCA7CivlsI/kvZwgPiBrb3Nha3VcIDsKK+acrOeblyA+IGhvbnRvdVwgOwor6aO95rqAID4gaG91bWFuXCA7CivmoKHlpJYgPiBrb3VnYWlcIDsKK+WvuOWIhiA+IHN1bmJ1blwgOwor54us6KmxID4gZG9rdXdhXCA7CivlsI7kvZMgPiBkb3V0YWlcIDsKK+S4h+iIrCA+IGJhbnBhblwgOwor5LiK6IeIID4gam91cm91XCA7CivmmJ/pnJwgPiBzZWlzb3VcIDsKK+S9v+WRvSA+IHNoaW1laVwgOwor54mp6aiSID4gYnVzc291XCA7CivmnKjnm64gPiBtb2t1bWVcIDsKK+S4u+euoSA+IHNodWthblwgOwor5Luk5pybID4gcmVpYm91XCA7CivkuIrohb8gPiBqb3V0YWlcIDsKK+WupuWumCA+IGthbmdhblwgOwor5a+M5Zu9ID4gZnVrb2t1XCA7Civmm7TntJcgPiBzYXJhc2FcIDsKK+S6uuawlyA+IGhpdG9rZVwgOwor5pyo55q/ID4ga2l6YXJhXCA7CivkurrmsJEgPiBqaW5taW5cIDsKK+WwhOWAliA+IHNoYWtvdVwgOwor5LiK6IWVID4gam91d2FuXCA7CivlsIrkvZMgPiBzb250YWlcIDsKK+acqOeariA+IG1va3VoaVwgOwor5Luj5pu/ID4gZGFpdGFpXCA7Civku6Pmm7ggPiBkYWlzaG9cIDsKK+afkOaJgCA+IGJvdXNob1wgOwor5piC6aiwID4ga291dG91XCA7CivlrZDmlrkgPiBrb2thdGFcIDsKK+Wwj+S6iyA+IHNob3VqaVwgOwor5L2c5aC0ID4gc2FrdWJhXCA7CivosqfmsJEgPiBoaW5taW5cIDsKK+S7iuanmCA+IGltYXlvdVwgOwor5a6f5bCEID4gamlzc2hhXCA7Civlr77lgbYgPiB0YWlndXVcIDsKK+S6rOa1nCA+IGtlaWhpblwgOwor5pu457ChID4gc2hva2FuXCA7CivkuI3ogpYgPiBmdXNob3VcIDsKK+adsea1tyA+IHRvdWthaVwgOwor5pyJ56iOID4geXV1emVpXCA7CivkvZPlpJYgPiB0YWlnYWlcIDsKK+aenOaguCA+IGtha2FrdVwgOwor6aCQ6KiXID4geW90YWt1XCA7CivohLHkvJogPiBkYWtrYWlcIDsKK+S4gOiIiCA+IGlra3lvdVwgOwor5LiK6IOMID4gdXdhemVpXCA7Civlr7XlhZAgPiBjaG91amlcIDsKK+WujOW3pSA+IGthbmtvdVwgOwor5LiK6IKiID4gam91c2hpXCA7CivmmbrorIAgPiBjaGlib3VcIDsKK+mhnuiBmiA+IHJ1aWp1dVwgOwor5pys55WqID4gaG9uYmFuXCA7CivmnbHmtIsgPiB0b3V5b3VcIDsKK+eJuemcgCA+IHRva3VqdVwgOwor6LK05qeYID4ga2lzYW1hXCA7CivogbDmmI4gPiBzb3VtZWlcIDsKK+miqOecvCA+IGZ1dWdhblwgOwor5LiK6IGeID4gam91YnVuXCA7Civlrp/lrZAgPiBqaXNzaGlcIDsKK+iAgeeNqiA+IHJvdWthaVwgOwor5p2v5rSXID4gaGFpc2VuXCA7Civlrrblob4gPiBrYWp1a3VcIDsKK+S7pOaXqCA+IHJlaXNoaVwgOwor5L215ZGRID4gaGVpZG9uXCA7Civos4fmnZAgPiBzaGl6YWlcIDsKK+S9juWjsCA+IHRlaXNlaVwgOwor5LqJ54K5ID4gc291dGVuXCA7Civos4fmnKwgPiBzaGlob25cIDsKK+S9nOWcnyA+IHNha3Vkb1wgOwor5bCK5LiKID4gc29uam91XCA7Civlr5vljrMgPiBrYW5nZW5cIDsKK+S8muW8jyA+IGVzaGlraVwgOwor576a576KID4gcmVpeW91XCA7CivkvbXlkIggPiBoZWlnb3VcIDsKK+S5vueHpSA+IGthbnNvdVwgOwor5Ly25a6YID4gcmVpa2FuXCA7Civlr5vljpogPiBrYW5rb3VcIDsKK+S4ieiAhSA+IHNhbnNoYVwgOwor6LGq54i9ID4gZ291c291XCA7CivkvZzlm7MgPiBzYWt1enVcIDsKK+eMq+iDjCA+IG5la296ZVwgOwor6aOb54GrID4gdG9iaWhpXCA7CivniYfpsZcgPiBoZW5yaW5cIDsKK+itpumGkiA+IGtlaXNlaVwgOwor6aeF5ZCNID4gZWtpbWVpXCA7Civku6PmlbAgPiBkYWlzdXVcIDsKK+mmmeWloCA+IGtvdWRlblwgOwor6LGQ55SwID4gdG95b3RhXCA7Civnv5TnoLQgPiBzaG91aGFcIDsKK+eLrOihjCA+IGRva2tvdVwgOwor5qC55Y+3ID4ga29uZ291XCA7Civogp3lv4MgPiBrYW5qaW5cIDsKK+eJm+mmrCA+IGd5dXViYVwgOwor5Lq65qipID4gamlua2VuXCA7CivogrrlsJYgPiBoYWlzZW5cIDsKK+S4uOenmCA+IG1hcnVoaVwgOwor6aOb54CRID4gaGliYWt1XCA7CivkvZPlnosgPiB0YWlrZWlcIDsKK+mgkuihjCA+IGhhbmtvdVwgOwor5p2x5q+OID4gdG91bWFpXCA7CivpoIjopoEgPiBzaHV5b3VcIDsKK+WvvuS6uiA+IHRhaWppblwgOwor6IOh5Zu9ID4ga29rb2t1XCA7CivmoYjlhoUgPiBhbicnbmFpXCA7CivkvZXlm54gPiBuYW5rYWlcIDsKK+aZruiriyA+IGZ1c2hpblwgOwor5pmC6YCfID4gamlzb2t1XCA7CivlraTmhIEgPiBrb3NodXVcIDsKK+itt+i6qyA+IGdvc2hpblwgOwor5pyo55C0ID4gbW9ra2luXCA7Civlrp/lp4kgPiBqaXNzaGlcIDsKK+S7j+abuCA+IGJ1c3Nob1wgOwor5a6M5bCBID4ga2FucHV1XCA7CivogLPmrrsgPiBqaWtha3VcIDsKK+mhnue6giA+IHJ1aXNhblwgOwor6Z2S6bu0ID4gYW9rYWJpXCA7CivmnKjnkIYgPiBtb2t1cmlcIDsKK+S+m+S4jiA+IGt5b3V5b1wgOwor6IGh5piOID4gc291bWVpXCA7CivorpLorJcgPiB6YW5ib3VcIDsKK+WvneWIgyA+IG5ldGFiYVwgOwor5LiA5769ID4gaWNoaXdhXCA7CivogonmhJ8gPiBuaWtrYW5cIDsKK+izouaJjSA+IGtlbnNhaVwgOwor5LiA576pID4gaWNoaWdpXCA7CivkvY7lnLAgPiB0ZWljaGlcIDsKK+ahguWGoCA+IGtlaWthblwgOwor5a6J5a+nID4gYW4nJ25laVwgOwor6IO95YuVID4gbm91ZG91XCA7CivnvornvrkgPiB5b3VrYW5cIDsKK+mll+W/nCA+IGt5b3VvdVwgOwor576K576uID4geW91a2FuXCA7CivogZbmm7ggPiBzZWlzaG9cIDsKK+S4u+egsiA+IHNodWhvdVwgOwor5L2O5ZueID4gdGVpa2FpXCA7Civlr53lhbcgPiBzaGluZ3VcIDsKK+iyv+aYkyA+IGJvdWVraVwgOwor54++5pWwID4gZ2Vuc3V1XCA7Civpn7Poqr8gPiBvbmNob3VcIDsKK+S6pOatkyA+IGtvdWthblwgOwor6aeF5YmNID4gZWtpbWFlXCA7Civlrojlrq4gPiB5YW1vcmlcIDsKK+aZr+imsyA+IGtlaWthblwgOwor6Z+z6KqtID4gb25kb2t1XCA7CivkuqTmrL4gPiBrb3VrYW5cIDsKK+aemuaVsCA+IG1haXN1dVwgOwor6IGh5pWPID4gc291YmluXCA7Civosqfmo5IgPiBiaW5ib3VcIDsKK+S4iue3miA+IGpvdXNlblwgOwor6aCG6KGMID4ganVua291XCA7CivmnIjnm7ggPiBnZXNzb3VcIDsKK+WtkOaIvyA+IHNoaWJvdVwgOwor5L6L5LyaID4gcmVpa2FpXCA7CivmnIDnn60gPiBzYWl0YW5cIDsKK+mdkum3uiA+IGFvc2FnaVwgOwor5a2m5b6SID4gZ2FrdXRvXCA7CivkuLnnoIIgPiB0YW5zaGFcIDsKK+acieebiiA+IHl1dWVraVwgOwor5LuK5pmpID4ga29uYmFuXCA7CivkupXms4kgPiBzZWlzZW5cIDsKK+WvkuWJpCA+IGthbnphaVwgOwor6LOi5oWuID4ga2VucnlvXCA7CivlrZ3mgowgPiBrb3V0ZWlcIDsKK+iCr+WumiA+IGtvdXRlaVwgOwor5LiL57W1ID4gc2hpdGFlXCA7CivorpLoqIAgPiB6YW5nZW5cIDsKK+i1puWFjSA+IHNoYW1lblwgOwor5LqI5risID4geW9zb2t1XCA7Civnv7vnhLYgPiBob256ZW5cIDsKK+S8tOWljyA+IGJhbnNvdVwgOwor6LOb5oiQID4gc2Fuc2VpXCA7CivpoqjnkLQgPiBmdXVraW5cIDsKK+S8neWwjiA+IGRlbmRvdVwgOwor5p6X5pS/ID4gcmluc2VpXCA7CivmoLnlhqAgPiBrb25rYW5cIDsKK+i1t+S8jyA+IGtpZnVrdVwgOwor5LiL57SaID4ga2FreXV1XCA7CivkuLvnnLwgPiBzaHVnYW5cIDsKK+S4iee1hCA+IG1pa3VtaVwgOwor5LiJ57WDID4gc2FuZ2VuXCA7Civlrp3loZQgPiBob3V0b3VcIDsKK+iBluaXqCA+IHNlaXNoaVwgOwor5LiN57K+ID4gYnVzaG91XCA7CivkuIrntI0gPiBqb3Vub3VcIDsKK+eOi+eJqSA+IG91bW9ub1wgOwor5LiA57i3ID4gaWNoaXJ1XCA7CivkuozmtYEgPiBuaXJ5dXVcIDsKK+iEmuS4iyA+IGt5YWtrYVwgOwor5qC55YWDID4gbmVtb3RvXCA7Civlr5LlhrcgPiBrYW5yZWlcIDsKK+iBluaWrSA+IHNlaWRhblwgOwor5L2p5YmjID4gaGFpa2VuXCA7Civlq4znhZkgPiBrZW4nJ2VuXCA7CivmoKHlkIggPiBrb3Vnb3VcIDsKK+adoeasviA+IGpvdWthblwgOwor5a2m5bqcID4gZ2FrdWZ1XCA7Civku4HmmbogPiBqaW5jaGlcIDsKK+S6uuadkCA+IGppbnphaVwgOwor5qCh5Y+LID4ga291eXV1XCA7CivkvanliIAgPiBoYWl0b3VcIDsKK+acqueGnyA+IG1panVrdVwgOwor5pyx54K5ID4gc2h1dGVuXCA7CivkuIrnsbMgPiBqb3VtYWlcIDsKK+S4reegtCA+IGNodXVoYVwgOwor5Lq65pybID4gamluYm91XCA7CivosrTml48gPiBraXpva3VcIDsKK+WvoeS9nCA+IGthc2FrdVwgOwor5a6Y5aCxID4ga2FucG91XCA7CivkuK3noKUgPiBuYWthdG9cIDsKK+Wuj+WkpyA+IGtvdWRhaVwgOwor6aKv54i9ID4gc2Fzc291XCA7Civlrp/lnLAgPiBqaXRjaGlcIDsKK+WtneW8nyA+IGtvdXRlaVwgOwor5p2/5pu4ID4gYmFuc2hvXCA7Civog4zlmqIgPiBoYWlub3VcIDsKK+izpuW9uSA+IGJ1eWFrdVwgOwor5pyJ55SoID4geXV1eW91XCA7Civlro/lo64gPiBrb3Vzb3VcIDsKK+acieeUoyA+IHl1dXNhblwgOwor5LiZ56iuID4gaGVpc2h1XCA7CivlrprlnosgPiB0ZWlrZWlcIDsKK+aciOeUoyA+IGdlc3NhblwgOwor5LyP5bGLID4gZnVzZXlhXCA7CivkuIDntJogPiBpa2t5dXVcIDsKK+S6uuaZuiA+IGppbmNoaVwgOwor5a6M5aOyID4ga2FuYmFpXCA7CivmnZHmsJEgPiBzb25taW5cIDsKK+eQg+aKgCA+IGt5dXVnaVwgOwor5p6a5oyZID4gbWFpa3lvXCA7Civml6XpoIMgPiBoaWdvcm9cIDsKK+S4i+etliA+IGdlc2FrdVwgOwor6Z2S6a6rID4gYW96YW1lXCA7CivlrZflvJUgPiBqaWJpa2lcIDsKK+S7geaUvyA+IGppbnNlaVwgOwor5L2O5ZCfID4gdGVpZ2luXCA7Civml6Xpn5MgPiBuaWtrYW5cIDsKK+eQg+aIryA+IGt5dXVnaVwgOwor5L2V5Y2DID4gbmFuemVuXCA7CivkvZXljYEgPiBuYW5qdXVcIDsKK+izouW8nyA+IGtlbnRlaVwgOwor5LiK562JID4gam91dG91XCA7CivppqzlipsgPiBiYXJpa2lcIDsKK+WtmOW7gyA+IHpvbnBhaVwgOwor6IGv5oOzID4gcmVuc291XCA7Civkvb/kuIEgPiBzaGl0ZWlcIDsKK+S4ieetiSA+IHNhbnRvdVwgOwor5Li755SoID4gc2h1eW91XCA7CivkuIDnsYwgPiBpdGNodXVcIDsKK+S9s+S9nCA+IGthc2FrdVwgOwor5a+b5LuBID4ga2FuamluXCA7Civnkbblj7AgPiB5b3VkYWlcIDsKK+WtkOW9uSA+IGtveWFrdVwgOwor5LyP5a2XID4gZnVzZWppXCA7CivogJDmsLQgPiB0YWlzdWlcIDsKK+S4iuerryA+IGpvdXRhblwgOwor6aeE5L2cID4gZGFzYWt1XCA7CivkuLnnlLAgPiB0YW5kZW5cIDsKK+S4ieervyA+IHNhbmthblwgOwor5Lq65paHID4gamlubW9uXCA7Civpp4XkvJ0gPiBla2lkZW5cIDsKK+S9k+WLoiA+IHRhaXNlaVwgOwor5a2X5bmVID4gamltYWt1XCA7CivkvJ3lpY8gPiBkZW5zb3VcIDsKK+WtkOW8nyA+IHNoaXRlaVwgOwor5LiH56uvID4gYmFudGFuXCA7CivkuIrnqbogPiBqb3VrdXVcIDsKK+eNsOeMmyA+IG5laW1vdVwgOwor6aaZ5ZCIID4ga291Z291XCA7CivniYfpm7IgPiBoZW4nJ3VuXCA7Civni6zoi7EgPiBkb2t1ZWlcIDsKK+agoeWGhSA+IGtvdW5haVwgOwor5pel6ZuAID4gaGlnYXJhXCA7CivpoYznsL0gPiBkYWlzZW5cIDsKK+WvhuWBtSA+IG1pdHRlaVwgOwor6aC757mBID4gaGlucGFuXCA7CivkuIDnrZYgPiBpc3Nha3VcIDsKK+S9leWIhiA+IG5hbnB1blwgOwor54m96YCjID4ga2VucmVuXCA7CivlravlrZAgPiBtYWdva29cIDsKK+S7i+aKsSA+IGthaWhvdVwgOwor5LiJ56iuID4gc2Fuc2h1XCA7CivkvZPliLYgPiB0YWlzZWlcIDsKK+mll+WutCA+IGt5b3VlblwgOwor5LiK56iLID4gam91dGVpXCA7Civml6XpmbAgPiBoaWthZ2VcIDsKK+abuOeUnyA+IHNob3NlaVwgOwor5pes6ZaTID4ganVua2FuXCA7CivppqzlhYsgPiBtYXJ1a3VcIDsKK+WumOWWtiA+IGthbicnZWlcIDsKK+S9k+WIkSA+IHRhaWtlaVwgOwor576955SwID4gaGFuZWRhXCA7CivpoYbnspIgPiBrYXJ5dXVcIDsKK+S4u+ePrSA+IHNodWhhblwgOwor5LiA56yRID4gaXNzaG91XCA7CivpnaLpoKwgPiBtZW5wb29cIDsKK+aXpemZkCA+IGhpZ2lyaVwgOwor5LiN56WlID4gZnVzaG91XCA7CivkuKHnm64gPiByeW91bWVcIDsKK+acrOa6kCA+IGhvbmdlblwgOwor6IKJ5bGLID4gbmlrdXlhXCA7Civog7TkvZMgPiBkb3V0YWlcIDsKK+WnpuioiCA+IGthbmtlaVwgOwor5Lqk5pu/ID4ga291dGFpXCA7CivpnZnppIogPiBzZWl5b3VcIDsKK+iyoeaUvyA+IHphaXNlaVwgOwor5a2k5a6iID4ga29rYWt1XCA7Civku6TlvJ8gPiByZWl0ZWlcIDsKK+agquS+oSA+IGthYnVrYVwgOwor576O56m6ID4gbWlzb3JhXCA7Civmm7TnlJ8gPiBrb3VzZWlcIDsKK+WvhOS/oSA+IGtpc2hpblwgOwor6IGW5oimID4gc2Vpc2VuXCA7CivkuK3nlJ8gPiBuYWthdGVcIDsKK+S9k+WGhSA+IHRhaW5haVwgOwor6IOM5Y+NID4gaGFpaGFuXCA7Civni6zoh6ogPiBkb2t1amlcIDsKK+S7o+W8gSA+IGRhaWJlblwgOwor5a+G5L2/ID4gbWlzc2hpXCA7CivmnbHmlrkgPiB0b3Vob3VcIDsKK+isuemBuCA+IGtpbnNlblwgOwor6LGK5r2kID4gaG91anVuXCA7CivkvJrloLQgPiBrYWlqb3VcIDsKK+S8muWgsSA+IGthaWhvdVwgOwor5pmC6KmVID4gamloeW91XCA7CivlrrblhYMgPiBpZW1vdG9cIDsKK+eJp+mHjiA+IGJva3V5YVwgOwor6Z2i6Z2iID4gbWVubWVuXCA7Civos4fmgKcgPiBzaGlzZWlcIDsKK+S6i+alrSA+IGppZ3lvdVwgOwor5LiB56iaID4gZGV0Y2hpXCA7CivmnaXmm7ggPiByYWlzaG9cIDsKK+aXpemVtyA+IGhpbmFnYVwgOwor5LqU5qGBID4gZ29rZXRhXCA7CivkvJrloIIgPiBrYWlkb3VcIDsKK+e+juensCA+IGJpc2hvdVwgOwor5a+G5LyaID4gbWlra2FpXCA7Civos4rlvpIgPiB6b2t1dG9cIDsKK+eMq+enkSA+IG5la29rYVwgOwor5peF6aSoID4gcnlva2FuXCA7Civog7TkubEgPiBkb3VyYW5cIDsKK+S7u+WumCA+IG5pbmthblwgOwor6LKe5pONID4gdGVpc291XCA7CivkuqTmmJMgPiBrb3Vla2lcIDsKK+WumOWRvSA+IGthbm1laVwgOwor5a625YOVID4ga2Fib2t1XCA7CivkuLvniq8gPiBzaHVoYW5cIDsKK+e9q+e3miA+IGtlaXNlblwgOwor5a2f5a2QID4gbW91c2hpXCA7CivnvqTnm7IgPiBndW5tb3VcIDsKK+iDjuWLlSA+IHRhaWRvdVwgOwor5piP6L+3ID4ga29ubWVpXCA7CivkuKbnlKggPiBoZWl5b3VcIDsKK+S5s+avjSA+IG55dXVib1wgOwor576k55uXID4gZ3VudG91XCA7Civku5blv4MgPiB0YXNoaW5cIDsKK+iAgeatuyA+IHJvdXNoaVwgOwor5a2d5a2QID4ga291c2hpXCA7Civnuo/poK0gPiB0ZW50b3VcIDsKK+eKr+ihjCA+IGhhbmtvdVwgOwor6LGK5rqAID4gaG91bWFuXCA7CivkvY/lg6cgPiBqdXVzb3VcIDsKK+WumOWQjSA+IGthbm1laVwgOwor5LiA56WoID4gaXBweW91XCA7CivlpZTpqLAgPiBob250b3VcIDsKK+afu+WPjiA+IHNhc2h1dVwgOwor5LqM5qC4ID4gbmlrYWt1XCA7Civlrp/li6IgPiBqaXNzZWlcIDsKK+S7ruWxiyA+IGthcml5YVwgOwor5L2e5Lq6ID4gbmVpamluXCA7CivmnKvms5UgPiBtYXBwb3VcIDsKK+mmmeWFuCA+IGtvdWRlblwgOwor5a6f5Yq5ID4gamlra291XCA7CivmnaXmlrkgPiBraWthdGFcIDsKK+itpuimliA+IGtlaXNoaVwgOwor6aOy5paZID4gaW5yeW91XCA7Civlrrbkv6EgPiBrYXNoaW5cIDsKK+WumOWNsCA+IGthbicnaW5cIDsKK+S6uuaJjSA+IGppbnNhaVwgOwor5Lq65omLID4gaGl0b2RlXCA7Civmm7jnirYgPiBzaG9qb3VcIDsKK+WuueS9kyA+IHlvdWRhaVwgOwor5Luu5a+dID4ga2FyaW5lXCA7CivlrZTlrZ8gPiBrb3Vtb3VcIDsKK+S7ruWutiA+IGthcmlpZVwgOwor5a2U5a2QID4ga291c2hpXCA7Civog47lhoUgPiB0YWluYWlcIDsKK+S7geaEmyA+IGppbicnYWlcIDsKK+adpeaUuyA+IHJhaWtvdVwgOwor5a6d5YmjID4gaG91a2VuXCA7CivlrrbkvZwgPiBrYXNha3VcIDsKK+Wkp+m6piA+IG9vbXVnaVwgOwor54ut576pID4ga3lvdWdpXCA7CivorJ3ph5EgPiBzaGFraW5cIDsKK+Wun+WIkSA+IGppa2tlaVwgOwor6aSK5oiQID4geW91c2VpXCA7CivmnaHmlocgPiBqb3VidW5cIDsKK+agoeS4uyA+IGtvdXNodVwgOwor5a2Q5a6IID4ga29tb3JpXCA7Civlrr/kuJYgPiBzdWt1c2VcIDsKK+WlrumXmCA+IGZ1bnRvdVwgOwor5a6X5YuZID4gc2h1dW11XCA7CivlqZrnpLwgPiBrb25yZWlcIDsKK+WtkOWtqyA+IHNoaXNvblwgOwor5LiJ55yBID4gc2Fuc2VpXCA7CivmnKzmrr8gPiBob25kZW5cIDsKK+S4ieebuCA+IHNhbnNvdVwgOwor54yb56a9ID4gbW91a2luXCA7Civlrp3liIAgPiBob3V0b3VcIDsKK+e+pOeUnyA+IGd1bnNlaVwgOwor5LiA55+zID4gaXNzZWtpXCA7Civlrp/lhpkgPiBqaXNzaGFcIDsKK+S7geaBtSA+IGppbmtlaVwgOwor5LqU5pelID4gaXRzdWthXCA7CivpoqjmtaogPiBmdXVyb3VcIDsKK+aZuuiDvSA+IGNoaW5vdVwgOwor5LiK55qHID4gam91a291XCA7CivkuqTmj5sgPiBrb3VrYW5cIDsKK+S6q+aMgSA+IGt5b3VqaVwgOwor5LiA556sID4gaXNzaHVuXCA7Civlrp3lhqAgPiBob3VrYW5cIDsKK+WumOWItiA+IGthbnNlaVwgOwor5a6f5YWEID4gamlra2VpXCA7Civlrp3lhbggPiBob3V0ZW5cIDsKK+miqOa0niA+IGZ1dWRvdVwgOwor5pas6aaWID4gemFuc2h1XCA7Civml6Xpiq0gPiBoaXplbmlcIDsKK+S5l+azlSA+IGpvdWhvdVwgOwor5pys5qyEID4gaG9ucmFuXCA7CivnjK7nm4MgPiBrZW5wYWlcIDsKK+S6uuaDhSA+IG5pbmpvdVwgOwor5L2P5Lq6ID4ganV1bmluXCA7Civku4/luKsgPiBidXNzaGlcIDsKK+WutuS4rSA+IGthY2h1dVwgOwor5a625LimID4geWFuYW1pXCA7CivosYrmsLQgPiBob3VzdWlcIDsKK+izouWmuyA+IGtlbnNhaVwgOwor5Luj5a6YID4gZGFpa2FuXCA7CivkuIHnm64gPiBjaG91bWVcIDsKK+S7pOWtqyA+IHJlaXNvblwgOwor5LuP5belID4gYnVra291XCA7CivkuIDnm64gPiBoaXRvbWVcIDsKK+iCieWhiiA+IG5pa2thaVwgOwor5Lqs5oiQID4ga2Vpc2VpXCA7Civmmq7np4sgPiBib3NodXVcIDsKK+aZuuiAhSA+IGNoaXNoYVwgOwor5pa56Z2iID4gaG91bWVuXCA7Civkub7mnb8gPiBrYW5wYW5cIDsKK+WtmOWkliA+IHpvbmdhaVwgOwor5Luk5ayiID4gcmVpam91XCA7Civnvo7nmoQgPiBiaXRla2lcIDsKK+S8tuWEqiA+IHJlaXl1dVwgOwor5Lm+5p2vID4ga2FucGFpXCA7CivkurrmgKcgPiBqaW5zZWlcIDsKK+S5l+awlyA+IG5vcmlraVwgOwor5LiK55WqID4gam91YmFuXCA7Civni5fogokgPiBrdW5pa3VcIDsKK+miqOawtCA+IGZ1dXN1aVwgOwor5Lm+5p2QID4ga2FuemFpXCA7CivorZzooaggPiBmdWh5b3VcIDsKK+S7mOWxniA+IGZ1em9rdVwgOwor5LiK55WMID4gam91a2FpXCA7CivkuInnlaogPiBzYW5iYW5cIDsKK+WtpuWckiA+IGdha3VlblwgOwor5peo6YWSID4gc2hpc2h1XCA7CivorJnpgZwgPiBrZW5zb25cIDsKK+S4iueUsCA+IGpvdWRlblwgOwor5LiJ55WMID4gc2FuZ2FpXCA7CivlpJzpt7kgPiB5b3Rha2FcIDsKK+S7suWkjyA+IGNodXVrYVwgOwor5a6I5YuiID4gc2h1c2VpXCA7CivotIjlkYggPiB6b3V0ZWlcIDsKK+irlumhjCA+IHJvbmRhaVwgOwor5Ly05YOnID4gYmFuc291XCA7CivkvJrlkIwgPiBrYWlkb3VcIDsKK+S8muWQiCA+IGthaWdvdVwgOwor55CG5a2mID4gcmlnYWt1XCA7CivkvLrlgJkgPiBzaGlrb3VcIDsKK+S7pOWpvyA+IHJlaXNlaVwgOwor55CD5a60ID4ga3l1dWVuXCA7CivkuqTmiKYgPiBrb3VzZW5cIDsKK+aXp+mDvSA+IGt5dXV0b1wgOwor5Lyv5YWEID4gaGFra2VpXCA7CivotIjlj7cgPiB6b3Vnb3VcIDsKK+S4reeBqyA+IGNodXViaVwgOwor5Lyd5Y2YID4gZGVudGFuXCA7CivlrqPkvJ0gPiBzZW5kZW5cIDsKK+acqOanvyA+IG11a3VnZVwgOwor5pa56ZmjID4gaG91amluXCA7CivotIvljbAgPiBuaXNlaW5cIDsKK+S7pOWomCA+IHJlaWpvdVwgOwor6IOM5Lu7ID4gaGFpbmluXCA7Civnv7vmoYggPiBob24nJ2FuXCA7Civnjovmp5ggPiBvdXNhbWFcIDsKK+S7u+WcsCA+IG5pbmNoaVwgOwor5a6f5L2TID4gaml0dGFpXCA7CivkuIDnlosgPiBpcHBpa2lcIDsKK+iAgeadpSA+IHJvdXJhaVwgOwor54mp6LOHID4gYnVzc2hpXCA7Civku5blrpcgPiB0YXNodXVcIDsKK+aXpumCoyA+IGRhbicnbmFcIDsKK+WlvemFjSA+IGtvdWhhaVwgOwor6ICB5p2JID4gcm91c2FuXCA7Civku6Tlp4kgPiByZWlzaGlcIDsKK+S7leWumCA+IHNoaWthblwgOwor5a6M5YWoID4ga2FuemVuXCA7CivkvJ3li5UgPiBkZW5kb3VcIDsKK+aWremdoiA+IGRhbm1lblwgOwor5Luk5aa5ID4gcmVpbWFpXCA7CivlpJzps6UgPiB5YWNob3VcIDsKK+eMm+ecgSA+IG1vdXNlaVwgOwor5LiA55S7ID4gaWtrYWt1XCA7Civmn5TlkowgPiBueXV1d2FcIDsKK+aXqemAgCA+IHNvdXRhaVwgOwor5a6a5L6LID4gdGVpcmVpXCA7Civnj77lrZggPiBnZW56b25cIDsKK+S5seadrSA+IHJhbmd1aVwgOwor5Ly05L62ID4gaGFucnlvXCA7CivkuqTmhJ8gPiBrb3VrYW5cIDsKK+WumuS9jyA+IHRlaWp1dVwgOwor6KuL6aGYID4gc2VpZ2FuXCA7CivlrojlhbUgPiBzaHVoZWlcIDsKK+iyoeW9oiA+IHphaWtlaVwgOwor6IOM5LitID4gc2VuYWthXCA7CivnibnoqLEgPiB0b2treW9cIDsKK+iqv+mmrCA+IGNob3ViYVwgOwor5a2Y5ZyoID4gc29uemFpXCA7Civog4zkuIggPiBzZXRha2VcIDsKK+eJueiokyA+IHRva2t1blwgOwor5LiN54yfID4gZnVyeW91XCA7CivniIbpn7MgPiBiYWt1b25cIDsKK+S6pOaDhSA+IGtvdWpvdVwgOwor5pys5qGIID4gaG9uJydhblwgOwor5LiL542EID4gZ2Vnb2t1XCA7Civku4rlsJogPiBpbWFuYW9cIDsKK+acrOagoSA+IGhvbmtvdVwgOwor5Lq65belID4gamlua291XCA7CivkubHmmrQgPiByYW5ib3VcIDsKK+acm+aokyA+IGJvdXJvdVwgOwor5LiJ54y/ID4gbWl6YXJ1XCA7Civoq5bpmaMgPiByb25qaW5cIDsKK+mhleePviA+IGtlbmdlblwgOwor5Ly25Lq6ID4gcmVpamluXCA7CivmnbHlvoEgPiB0b3VzZWlcIDsKK+aWnOmguCA+IHNoYWtlaVwgOwor6LGq5pS+ID4gZ291aG91XCA7CivkuIDnkIYgPiBpY2hpcmlcIDsKK+S4u+azlSA+IHNodWhvdVwgOwor6Ky56KiAID4ga2luZ2VuXCA7CivmnLHmm7ggPiBzaHVzaG9cIDsKK+mkqOWogyA+IGthbicnYWlcIDsKK+eJh+i8qiA+IGthdGF3YVwgOwor5pyb5qW8ID4gYm91cm91XCA7CivlronlgKQgPiB5YXN1bmVcIDsKK+acrOadpSA+IGhvbnJhaVwgOwor5piO6KiAID4gbWVpZ2VuXCA7Civnv7DmnpcgPiBrYW5yaW5cIDsKK+S7pOWggiA+IHJlaWRvdVwgOwor5piO6KejID4gbWVpa2FpXCA7CivkuIfnirYgPiBiYW5qb3VcIDsKK+Wul+S4uyA+IHNvdXNodVwgOwor6ZyK6a2CID4gcmVpa29uXCA7CivmnKzmnKggPiBtb3Rva2lcIDsKK+mdkumKhSA+IHNlaWRvdVwgOwor5LiA542yID4gaWtrYWt1XCA7CivmnKzmnJsgPiBob25tb3VcIDsKK+e9ueeXhSA+IHJpYnlvdVwgOwor6aGY54q2ID4gZ2Fuam91XCA7CivmnKvmnKsgPiBzdWV6dWVcIDsKK+WtkOWaoiA+IHNoaW5vdVwgOwor5pys5pu4ID4gaG9uc2hvXCA7CivmmpfnpIEgPiBhbnNob3VcIDsKK+aYjuimliA+IG1laXNoaVwgOwor5pac6Z2iID4gc2hhbWVuXCA7CivniYfouqsgPiBrYXRhbWlcIDsKK+S6jOaJiyA+IGZ1dGF0ZVwgOwor6KuS6ZeHID4gcnlvdWFuXCA7CivkubHmlbAgPiByYW5zdXVcIDsKK+iqv+mfsyA+IGNob3VvblwgOwor5pil6JqVID4gaGFydWdvXCA7Civlpb3ou6IgPiBrb3V0ZW5cIDsKK+acqOacqyA+IGtvbnVyZVwgOwor6IKM5ZCIID4gaGFkYWFpXCA7CivkuqzluKsgPiBrZWlzaGlcIDsKK+eOi+acnSA+IG91Y2hvdVwgOwor6aSo5aSWID4ga2FuZ2FpXCA7CivkvIHlj4ogPiBraWt5dXVcIDsKK+isueijvSA+IGtpbnNlaVwgOwor54qs6IiOID4ga2Vuc2hhXCA7Civpm7fps7QgPiByYWltZWlcIDsKK+S7u+WRvSA+IG5pbm1laVwgOwor5pu45rOVID4gc2hvaG91XCA7Civku4Dlrp0gPiBqdXVob3VcIDsKK+S6uuWxiyA+IGhpdG95YVwgOwor5pym5pynID4gbW91cm91XCA7CivmnKbmnKYgPiBtb3Vtb3VcIDsKK+S7o+WcsCA+IGRhaWNoaVwgOwor5Lit5rSyID4gbmFrYXN1XCA7Civos5vlmIYgPiBzYW50YW5cIDsKK+aXpei2syA+IGhpYXNoaVwgOwor6Z2S6YW4ID4gc2Vpc2FuXCA7Civmlpzpmb0gPiBzaGF5b3VcIDsKK+Wkp+miqCA+IG9va2F6ZVwgOwor6Ku46YGTID4gc2hvZG91XCA7CivlparpgoQgPiBkYWtrYW5cIDsKK+S4reazoiA+IGNodXVoYVwgOwor6Z+z57egID4gbmVqaW1lXCA7CivpnIrpqJMgPiByZWlnZW5cIDsKK+S4jeeCuiA+IGZ1dGFtZVwgOwor5aSp6aGUID4gdGVuZ2FuXCA7CivnianoposgPiBtb25vbWlcIDsKK+acrOaXqCA+IGhvbnNoaVwgOwor5aOu6b2iID4gc291cmVpXCA7Civlrabli5kgPiBnYWt1bXVcIDsKK+abv+atjCA+IGthZXV0YVwgOwor5a2Y5ZG9ID4gem9ubWVpXCA7Civlpa7ov4UgPiBmdW5qaW5cIDsKK+izreWNmiA+IHRvYmFrdVwgOwor5aSn6aGYID4gdGFpZ2FuXCA7CivmnYnmiLggPiBzdWdpZG9cIDsKK+iyp+WvkiA+IGhpbmthblwgOwor5aq+5puzID4gYWliaWtpXCA7CivmnInmp5ggPiBhcml5b3VcIDsKK+acrOaWhyA+IGhvbm1vblwgOwor5Lu25ZCNID4ga2VubWVpXCA7CivmnaXlupcgPiByYWl0ZW5cIDsKK+acrOaVsCA+IGhvbnN1dVwgOwor5pan6ZG/ID4gZnVzYWt1XCA7CivmnaXlubQgPiByYWluZW5cIDsKK+eMm+eNoyA+IG1vdWp1dVwgOwor5paH6aGMID4gYnVuZGFpXCA7Civnjovml48gPiBvdXpva3VcIDsKK+S8geWKgyA+IGtpa2FrdVwgOwor5LqU5b6zID4gZ290b2t1XCA7CivkuInngb0gPiBzYW5zYWlcIDsKK+Wlvei1sCA+IGtvdXNvdVwgOwor5LiH54K5ID4gbWFudGVuXCA7Civku4rlpJwgPiBrb24nJ3lhXCA7Civpo6/lupcgPiBoYW50ZW5cIDsKK+mkiuWtkCA+IHlvdXNoaVwgOwor5Lit5rCXID4gY2h1dWtpXCA7CivpoZXnhLYgPiBrZW56ZW5cIDsKK+S7pOWXoyA+IHJlaXNoaVwgOwor6KyZ6K2yID4ga2Vuam91XCA7Civlo67pupcgPiBzb3VyZWlcIDsKK+adseWyuCA+IHRvdWdhblwgOwor5Lyd5LukID4gZGVucmVpXCA7Civku4/loZQgPiBidXR0b3VcIDsKK+mcnOmbsCA+IHNvdWZ1blwgOwor6LOe5ZGzID4gc2hvdW1pXCA7CivpoK3nl5sgPiB6dXRzdXVcIDsKK+S4u+aoqSA+IHNodWtlblwgOwor6Zu36a2aID4gcmFpZ3lvXCA7CivkuIfnga8gPiBtYW5kb3VcIDsKK+iBluWjhyA+IHNlaWRhblwgOwor6LKh5a6dID4gemFpaG91XCA7CivorJvoq4cgPiBrb3VkYW5cIDsKK+WknOmiqCA+IHlva2F6ZVwgOwor6LKq5amqID4gZG9ucmFuXCA7CivnjK7nga8gPiBrZW50b3VcIDsKK+S8kOWAkiA+IGJhdHRvdVwgOwor54++5ZywID4gZ2VuY2hpXCA7CivogqLkvZMgPiBzaGl0YWlcIDsKK+eMm+eKrCA+IG1vdWtlblwgOwor5pu05q2jID4ga291c2VpXCA7CivlpKnpm7cgPiB0ZW5yYWlcIDsKK+acneaZqSA+IGFzYWJhblwgOwor54++5ZyoID4gZ2VuemFpXCA7Civku5blm70gPiB0YWtva3VcIDsKK+acl+aclyA+IHJvdXJvdVwgOwor5Luu5ZCNID4ga2VteW91XCA7Civpoqjmma8gPiBmdXVrZWlcIDsKK+irlumLkiA+IHJvbnBvdVwgOwor5paH6Z2iID4gYnVubWVuXCA7CivkvI7lgIYgPiBnaXJ5b3VcIDsKK+mkg+WtkCA+IGd5b3V6YVwgOwor5LqV5bqVID4gc2VpdGVpXCA7CivlrablhYQgPiBnYWtrZWlcIDsKK+eKr+e9qiA+IGhhbnphaVwgOwor5aSn6ZujID4gdGFpbmFuXCA7CivkuK3mrKcgPiBjaHV1b3VcIDsKK+S8neS4liA+IGRlbnNlaVwgOwor6LOb5ZCMID4gc2FuZG91XCA7CivkuI3mvIEgPiBmdXJ5b3VcIDsKK+WkqumZvSA+IHRhaXlvdVwgOwor5aSp6ZqbID4gdGVuc2FpXCA7CivmmrTnirYgPiBib3Vqb3VcIDsKK+aXi+i7oiA+IHNlbnRlblwgOwor5aSa6aGNID4gdGFnYWt1XCA7CivlpKnpmbogPiB0ZW5rZW5cIDsKK+iBluWggiA+IHNlaWRvdVwgOwor6ICB5omLID4gcm91c2h1XCA7CivkvJrkuLsgPiBrYWlzaHVcIDsKK+adseWuriA+IHRvdWd1dVwgOwor5p2x5a6dID4gdG91aG91XCA7CivogZbln58gPiBzZWlpa2lcIDsKK+Wkp+maiiA+IGRhaXRhaVwgOwor5Luj5ZOBID4gZGFpaGluXCA7CivmnIjmoYIgPiBnZWtrZWlcIDsKK+mgk+efpSA+IHRvbmNoaVwgOwor6ICB5oiQID4gcm91c2VpXCA7CivogJDmgKcgPiB0YWlzZWlcIDsKK+aVtemjmyA+IHRla2loaVwgOwor6aCG56S8ID4ganVucmVpXCA7CivkuZfmlbAgPiBqb3VzdXVcIDsKK+WklemhlCA+IHl1dWdhb1wgOwor5Lmx5oimID4gcmFuc2VuXCA7CivmmYLnv5IgPiBqaXNodXVcIDsKK+iAg+aFriA+IGtvdXJ5b1wgOwor5pat6YeRID4gZGFua2luXCA7CivkuI3muKwgPiBmdXNva3VcIDsKK+S7i+WcqCA+IGthaXphaVwgOwor5aSq6ZakID4gdGFpa291XCA7Civml6foqrwgPiBreXV1Z2lcIDsKK+aVtOmiqCA+IHNlaWZ1dVwgOwor5Lu75YWNID4gbmlubWVuXCA7CivlrZjliIYgPiB6b25idW5cIDsKK+S7pOWQjSA+IHJlaW1laVwgOwor6aOy5bGLID4gbm9taXlhXCA7CivogZblnLAgPiBzZWljaGlcIDsKK+S6uuWkliA+IG5pbmdhaVwgOwor5pan6YmeID4gZnVldHN1XCA7CivlpJzpnKcgPiB5b2dpcmlcIDsKK+eMm+eEtiA+IG1vdXplblwgOwor6IGv5ZCIID4gcmVuZ291XCA7Civkurrlo6sgPiBqaW5zaGlcIDsKK+mdouiyjCA+IG1lbmJvdVwgOwor6LKp5aOyID4gaGFuYmFpXCA7Civkub7mgKcgPiBrYW5zZWlcIDsKK+S4u+aguSA+IHNodWtvblwgOwor5aSn6ZaiID4gb296ZWtpXCA7Civml6foqaAgPiBreXV1ZWlcIDsKK+S7iuWbniA+IGtvbmthaVwgOwor5pel6KqMID4gbmlzc2hpXCA7Civml6noqIggPiBzb3VrZWlcIDsKK+S7o+WPgiA+IGRhaXNhblwgOwor5aSn6ZaAID4gZGFpbW9uXCA7CivmnKzmi6AgPiBob25reW9cIDsKK+acieacmyA+IHl1dWJvdVwgOwor54uh55+lID4ga291Y2hpXCA7Civpo67lsYsgPiBub21peWFcIDsKK+aVtOmgkyA+IHNlaXRvblwgOwor5pen6KiYID4ga3l1dWtpXCA7CivoqrLplbcgPiBrYWNob3VcIDsKK+WmhOiogCA+IG1vdWdlblwgOwor6Ku46LOiID4gc2hva2VuXCA7CivmmannqLIgPiBiYW50b3VcIDsKK+S6m+WwkSA+IHNhc2hvdVwgOwor5Lqh5a2QID4gYm91c2hpXCA7CivosrTlm70gPiBraWtva3VcIDsKK+aXhei3ryA+IHRhYmlqaVwgOwor6LGq5b+rID4gZ291a2FpXCA7Civml6XoqIggPiBuaWtrZWlcIDsKK+aXqeimiyA+IGhheWFtaVwgOwor6Zu76aGVID4gZGVua2VuXCA7CivppKjlk6EgPiBrYW4nJ2luXCA7Civos6LlhYQgPiBrZW5rZWlcIDsKK+WklumbuyA+IGdhaWRlblwgOwor54++5ZOhID4gZ2VuJydpblwgOwor5p2/5aGAID4gaXRhYmVpXCA7CivniYfoqIAgPiBoZW5nZW5cIDsKK+S6pOWqviA+IGtvdWtvdVwgOwor5LiL5rWBID4ga2FyeXV1XCA7CivnvarnirYgPiB6YWlqb3VcIDsKK+aXp+imjyA+IGt5dXVraVwgOwor5pav6YGTID4gc2hpZG91XCA7Civnj77lk4EgPiBnZW5waW5cIDsKK+eOqeW8hCA+IGdhbnJvdVwgOwor5pS+6be5ID4gaG91eW91XCA7CivlrabkvJogPiBnYWtrYWlcIDsKK+WliemChCA+IGhvdWthblwgOwor5LiN5rOBID4gZnVreW91XCA7CivlpYnpgbcgPiBob3VzZW5cIDsKK+iqk+mhmCA+IHNlaWdhblwgOwor5pys5oeQID4gaG9ua2FpXCA7CivkuLnmnLEgPiB0YW5zaHVcIDsKK+Wkp+mRkSA+IHRhaWthblwgOwor5Li45pyoID4gbWFydWtpXCA7CivlrabkuosgPiBnYWt1amlcIDsKK+aciOaXpiA+IGdldHRhblwgOwor5aSc6ZW3ID4geW9uYWdhXCA7CivmnbHlpKkgPiB0b3V0ZW5cIDsKK+WliemAgSA+IGhvdXNvdVwgOwor5p2x5aSnID4gdG91ZGFpXCA7CivpnaLoq4cgPiBtZW5kYW5cIDsKK+Wliei/jiA+IGhvdWdlaVwgOwor5pu45p6XID4gc2hvcmluXCA7CivlpbjoqIggPiBrYW5rZWlcIDsKK+eHlembgCA+IGVuamFrdVwgOwor5pyJ5pWwID4geXV1c3V1XCA7Civni7zni70gPiByb3ViYWlcIDsKK+WqkuafkyA+IGJhaXNlblwgOwor57mB6ZaRID4gaGFua2FuXCA7Civku7LlgKQgPiBuYWthbmVcIDsKK+S4iuawtCA+IGpvdXN1aVwgOwor6KqY6Zu7ID4geXV1ZGVuXCA7CivmmYLntaYgPiBqaWt5dXVcIDsKK+mbhOm2jyA+IG9uZG9yaVwgOwor5pm0552AID4gaGFyZWdpXCA7CivnvbDngrkgPiBiYXR0ZW5cIDsKK+S6oeWniSA+IGJvdXNoaVwgOwor5aSn6Y6MID4gb29nYW1hXCA7CivkuqHlprsgPiBib3VzYWlcIDsKK+mdkuixhiA+IGFvbWFtZVwgOwor6LKn5ZuwID4gaGlua29uXCA7Civku7Lkv50gPiBjaHV1aG9cIDsKK+ePjeWlhyA+IGNoaW5raVwgOwor6KyA6KiIID4gYm91a2VpXCA7CivkuLvml6ggPiBzaHVzaGlcIDsKK+S6ouWlriA+IGtvdWZ1blwgOwor54mI6KGMID4gaGFua291XCA7CivlpKfpjYsgPiBvb25hYmVcIDsKK+aatOa8oiA+IGJvdWthblwgOwor5LiK5q61ID4gam91ZGFuXCA7CivmnIDml6kgPiBtb2hheWFcIDsKK+mbt+mbuyA+IHJhaWRlblwgOwor5LiH5rCRID4gYmFubWluXCA7CivogIHlu4MgPiByb3VoYWlcIDsKK+S7pOWFhCA+IHJlaWtlaVwgOwor5aeU57iuID4gaXNodWt1XCA7CivkuZfmiYsgPiBub3JpdGVcIDsKK+S7j+WPgiA+IGJ1c3NhblwgOwor5piH6I+vID4gc2hvdWthXCA7CivkuIDms4ogPiBpcHBha3VcIDsKK+irt+irjCA+IGZ1dWthblwgOwor5Li75paHID4gc2h1YnVuXCA7Civpm4Tps6UgPiBvbmRvcmlcIDsKK+ePvuWLoiA+IGdlbnNlaVwgOwor6ICB5bm8ID4gcm91eW91XCA7Civoqp7plbcgPiBnb2Nob3VcIDsKK+WllOi1sCA+IGhvbnNvdVwgOwor6ICB5bm0ID4gcm91bmVuXCA7CivkuK3mnJ8gPiBjaHV1a2lcIDsKK+S4ieatuyA+IHNhbnNoaVwgOwor5LuW5YqbID4gdGFyaWtpXCA7CivmnKzmgKcgPiBob25zZWlcIDsKK+S7mOWJhyA+IGZ1c29rdVwgOwor57+75byEID4gaG9ucm91XCA7CivosqHlm6MgPiB6YWlkYW5cIDsKK+ismeiZmiA+IGtlbmt5b1wgOwor5Luj5YOnID4gZGFpc291XCA7Civkuojlr6kgPiB5b3NoaW5cIDsKK+S4u+aUuyA+IHNodWtvdVwgOwor6KqM6Z2iID4gc2hpbWVuXCA7CivkuIfmrbsgPiBiYW5zaGlcIDsKK+iAgeW4qyA+IHJvdXNoaVwgOwor5LiH5q2zID4gbWFuemFpXCA7CivlrZDkvpsgPiBrb2RvbW9cIDsKK+WtmOS6oSA+IHNvbmJvdVwgOwor5LqM5a2QID4gZnV0YWdvXCA7CivkuIrmrIQgPiBqb3VyYW5cIDsKK+S7ruS9nCA+IGthc2FrdVwgOwor6aCG55WqID4ganVuYmFuXCA7Civos6LkurogPiBrZW5qaW5cIDsKK+mbsumbhiA+IHVuc2h1dVwgOwor6Kuz6KqmID4gYW5zaG91XCA7Civpm7Lpm4AgPiBoaWJhcmlcIDsKK+ePvuWJjSA+IGdlbnplblwgOwor6ICB5benID4gcm91a291XCA7Civku4vljbUgPiBrYWlyYW5cIDsKK+Wkp+mJiCA+IG9vbmF0YVwgOwor6Kmp6a2CID4gc2hpa29uXCA7CivlpYfouZ8gPiBraXNla2lcIDsKK+e+iuawtCA+IHlvdXN1aVwgOwor576k5qOyID4gZ3Vuc2VpXCA7Civpm6PpoYwgPiBuYW5kYWlcIDsKK+WkqemHkSA+IHRlbmtpblwgOwor5pys5b2xID4gaG9uJydlaVwgOwor6ICQ5a+SID4gdGFpa2FuXCA7CivlpKnph40gPiB0ZW5qdXVcIDsKK+S4puacqCA+IG5hbWlraVwgOwor5pys5b2TID4gaG9udG91XCA7CivmlpzovrogPiBzaGFoZW5cIDsKK+izouS4uyA+IGtlbnNodVwgOwor5pu45paOID4gc2hvc2FpXCA7Civnvormr5sgPiB5b3Vtb3VcIDsKK+Wkp+mHkSA+IHRhaWtpblwgOwor6Z2Z6KazID4gc2Vpa2FuXCA7CivlpYfot6EgPiBraXNla2lcIDsKK+S7geWQmyA+IGppbmt1blwgOwor5LiN5qeYID4gYnV6YW1hXCA7Civkurrlk6EgPiBqaW4nJ2luXCA7CivkuK3ml6UgPiBuYWthYmlcIDsKK+acq+W8nyA+IG1hdHRlaVwgOwor5Lq65ZOBID4gamlucGluXCA7CivkuInmqKkgPiBzYW5rZW5cIDsKK+irruipoiA+IHNoaWp1blwgOwor57im6ZqKID4ganV1dGFpXCA7CivkuIDmrKEgPiBpY2hpamlcIDsKK+eGsemiqCA+IG5lcHB1dVwgOwor6LGh5bWMID4gem91Z2FuXCA7CivlpKfphZQgPiB0YWlzdWlcIDsKK+S4iuanmCA+IHVlemFtYVwgOwor5aSn6YWSID4gb296YWtlXCA7Civkurrlkb0gPiBqaW5tZWlcIDsKK+e4pumZoyA+IGp1dWppblwgOwor5auB5b6hID4geW9tZWdvXCA7Civos57kuI4gPiBzaG91eW9cIDsKK+acneaBqSA+IGNob3VvblwgOwor5pys5bqXID4gaG9udGVuXCA7Civpm7LplpMgPiBrdW1vbWFcIDsKK+Wni+e1giA+IHNoaWp1dVwgOwor6KuW6LObID4gcm9uc2FuXCA7Civmm7TmlLkgPiBrb3VrYWlcIDsKK+aVoumXmCA+IGthbnRvdVwgOwor5Lq65ZCbID4gamlua3VuXCA7Civnj77lg48gPiBnZW56b3VcIDsKK+S6uuWQjSA+IGppbm1laVwgOwor5aSt6YCdID4geW91c2VpXCA7CivmlaPplosgPiBzYW5rYWlcIDsKK+S7j+WFuCA+IGJ1dHRlblwgOwor5LiJ5qWtID4gc2FuZ291XCA7Civoq6voqIAgPiBrYW5nZW5cIDsKK+S7o+S7uyA+IGRhaW5pblwgOwor576o5pybID4gc2VuYm91XCA7CivoqabpqJMgPiBzaGlrZW5cIDsKK+S4luafhCA+IHlvZ2FyYVwgOwor5Lq65Y+jID4gamlua291XCA7Civoqp7pjLIgPiBnb3Jva3VcIDsKK+aYk+iAhSA+IGVraXNoYVwgOwor5aSp6YGTID4gdGVuZG91XCA7Civkurrlj4IgPiBuaW5qaW5cIDsKK+WkqemBjSA+IHRlbnBlblwgOwor5aSp6YGLID4gdGVuJyd1blwgOwor5LiA5qi5ID4gaWNoaWp1XCA7Civku6PkurogPiBkYWluaW5cIDsKK+S7iuWGrCA+IGtvbnRvdVwgOwor5LiK5qOfID4gam91dG91XCA7CivlpKfpgZMgPiBkYWlkb3VcIDsKK+mboumalCA+IHJpa2FrdVwgOwor5LuP5YOnID4gYnVzc291XCA7CivlpJrph48gPiB0YXJ5b3VcIDsKK+aXpeiUrSA+IGhpa2FnZVwgOwor6IGW5YW4ID4gc2VpdGVuXCA7CivmmrTmsJEgPiBib3VtaW5cIDsKK+mboumZuCA+IHJpcmlrdVwgOwor6ICB5a6zID4gcm91Z2FpXCA7CivmlofpgbggPiBidW5zZW5cIDsKK+S4iuaikyA+IGpvdXNoaVwgOwor5pyo5belID4gbW9ra291XCA7CivkubHlsIQgPiByYW5zaGFcIDsKK+Wkqei+uiA+IHRlcHBlblwgOwor6LKs5YuZID4gc2VraW11XCA7CivmlofpgYsgPiBidW4nJ3VuXCA7Civml4Xoo4UgPiByeW9zb3VcIDsKK+irpuimsyA+IHRlaWthblwgOwor6ICB5a2QID4gcm91c2hpXCA7CivosYrlubQgPiBob3VuZW5cIDsKK+Wkp+i+siA+IGRhaW5vdVwgOwor5pa56KiAID4gaG91Z2VuXCA7CivlpY/oq4sgPiBzb3VzZWlcIDsKK+S4ieahgSA+IG1pa2V0YVwgOwor5pys5bO2ID4gaG9udG91XCA7CivkuLvmiKYgPiBzaHVzZW5cIDsKK+iAgeWsoiA+IHJvdWpvdVwgOwor6IGW5YOPID4gc2Vpem91XCA7CivkuInmoKEgPiBzYW5rb3VcIDsKK+aXheihjCA+IHJ5b2tvdVwgOwor6Zuj6ZaiID4gbmFua2FuXCA7CivmlrDoqp4gPiBzaGluZ29cIDsKK+Wkp+i8qiA+IHRhaXJpblwgOwor5LiN5py9ID4gZnVreXV1XCA7CivmlL7poYwgPiBob3VkYWlcIDsKK+acrOWxsSA+IGhvbnphblwgOwor5aSp6LuNID4gdGVuZ3VuXCA7CivkuInmnpogPiBzYW5tYWlcIDsKK+adv+WJjSA+IGl0YW1hZVwgOwor54++5LujID4gZ2VuZGFpXCA7CivpoLvmrbsgPiBoaW5zaGlcIDsKK+eHkOmJsSA+IHJpbmtvdVwgOwor5LuB5YWEID4gamlua2VpXCA7CivmnKzlsYsgPiBob24nJ3lhXCA7CivkuI3mnI0gPiBmdWZ1a3VcIDsKK+mbu+mItCA+IGRlbnJlaVwgOwor5LiJ5p2/ID4gc2FucGFuXCA7CivpoZ7mnKwgPiBydWlob25cIDsKK+WjsOmWgCA+IHNlaW1vblwgOwor5pua5pinID4gbW91bWFpXCA7Civnj77ku4ogPiBnZW5rb25cIDsKK+miqOW4ryA+IGZ1dXRhaVwgOwor5Lqr5Y+XID4ga3lvdWp1XCA7CivpoqjluKsgPiBmdXVzaGlcIDsKK+S7meS4uSA+IHNlbnRhblwgOwor5Lq65Ye6ID4gaGl0b2RlXCA7CivpoZ7mm7ggPiBydWlzaG9cIDsKK+acrOWwiiA+IGhvbnpvblwgOwor5LiK5pyfID4ga2FtaWtpXCA7CivnhrHpl5ggPiBuZXR0b3VcIDsKK+ePjeWRsyA+IGNoaW5taVwgOwor5pu45oi/ID4gc2hvYm91XCA7CivkuIDmoYggPiBpY2hpYW5cIDsKK+S4ieacrCA+IHNhbmJvblwgOwor6aSK5YiGID4geW91YnVuXCA7CivmnInmgKcgPiB5dXVzZWlcIDsKK+S4h+adpSA+IGJhbnJhaVwgOwor6LGq5aWiID4gZ291c2hhXCA7CivmlLnpoYwgPiBrYWlkYWlcIDsKK+S4iuabuCA+IGpvdXNob1wgOwor5pyo5bGRID4ga2lrdXp1XCA7Civku4/kvJogPiBidXRzdWVcIDsKK+mkqOS4uyA+IGthbnNodVwgOwor5LiJ5pu5ID4gc2Fuc291XCA7CivkuInmm7QgPiBzYW5rb3VcIDsKK+eMruadryA+IGtlbnBhaVwgOwor5Lqh5ZG9ID4gYm91bWVpXCA7CivmnbHljYogPiB0b3VoYW5cIDsKK+aVhemanCA+IGtvc2hvdVwgOwor5pat6KiAID4gZGFuZ2VuXCA7CivlpJbpgYogPiBnYWl5dXVcIDsKK+acieW/lyA+IHl1dXNoaVwgOwor5pys5a6YID4gaG9ua2FuXCA7CivnjonlsYsgPiB0YW1heWFcIDsKK+S6pOWQiCA+IGtvdWdvdVwgOwor5paw6KaPID4gc2hpbmtpXCA7CivogIHlprsgPiByb3VzYWlcIDsKK+eOi+WwhiA+IG91c2hvdVwgOwor5LuV5LiKID4gc2hpYWdlXCA7Civosarlo64gPiBnb3Vzb3VcIDsKK+mhmOacmyA+IGdhbm1vdVwgOwor54is6JmrID4gaGFjaHV1XCA7CivogZbkvZMgPiBzZWl0YWlcIDsKK+eMruacrCA+IGtlbnBvblwgOwor6ICV5ZywID4ga291Y2hpXCA7CivkuK3miYsgPiBuYWthdGVcIDsKK+S4iuaZuiA+IGpvdWNoaVwgOwor5pyA5oKqID4gc2FpYWt1XCA7Civnh5DphbggPiByaW5zYW5cIDsKK+eLrOa8lCA+IGRva3VlblwgOwor5aSx6LK7ID4gc2hpcHBpXCA7CivkuqTlj4sgPiBrb3V5dXVcIDsKK+mhmOabuCA+IGdhbnNob1wgOwor5pyr5a2rID4gbWFzc29uXCA7CivkuqHlkJsgPiBib3VrdW5cIDsKK+itpuegsiA+IGtlaWhvdVwgOwor5pqX5rWBID4gYW5yeXV1XCA7CivogZbkvJ0gPiBzZWlkZW5cIDsKK+acq+WtkCA+IG1hc3NoaVwgOwor5LiJ5pmvID4gc2Fua2VpXCA7Civnjovlrq4gPiBvdWt5dXVcIDsKK+WrjOWrjCA+IGl5YWl5YVwgOwor5pS+6Zu7ID4gaG91ZGVuXCA7Civpm4zpm4QgPiBzaGl5dXVcIDsKK+acieW9oiA+IHl1dWtlaVwgOwor57+g5bWQID4gc3VpcmFuXCA7Civpo5/lmaggPiBzaG9ra2lcIDsKK+Wkp+i2syA+IG9vYXNoaVwgOwor6IGW5LujID4gc2VpZGFpXCA7CivkuqHlj4sgPiBib3V5dXVcIDsKK+e+juacjSA+IGJpZnVrdVwgOwor5LuK5LuKID4gaW1haW1hXCA7CivkuInmmKcgPiBzYW5tYWlcIDsKK+S4gOactiA+IGljaGlkYVwgOwor5LuK5Lq6ID4ga29uamluXCA7CivogZbkurogPiBzZWlqaW5cIDsKK+eNo+aApyA+IGp1dXNlaVwgOwor6Zuy6YePID4gdW5yeW91XCA7CivkuIrml6wgPiBqb3VqdW5cIDsKK+Wkp+i1piA+IHRhaXNoYVwgOwor5LiK5peoID4gam91c2hpXCA7CivkuIDmnJ0gPiBpdGNob3VcIDsKK+Wkoui3ryA+IHl1bWVqaVwgOwor5LiA5pyNID4gaXBwdWt1XCA7CivlpYfopbIgPiBraXNodXVcIDsKK+S4jeaVtSA+IGZ1dGVraVwgOwor6KuH6KuWID4gZGFucm9uXCA7CivkuKHmi7MgPiBqYW5rZW5cIDsKK+S4iuaWuSA+IGpvdWhvdVwgOwor546J5a2QID4gdGFtYWdvXCA7Civpo6/lj7AgPiBoYW5kYWlcIDsKK+aXpeiIqiA+IG5pa2tvdVwgOwor5piO57SwID4gbWVpc2FpXCA7CivnvojmnZ8gPiBraXNva3VcIDsKK+e9t+alrSA+IGhpZ3lvdVwgOwor5Lq65YGPID4gbmluYmVuXCA7CivlpJbovKogPiBnYWlyaW5cIDsKK+WkqeiznCA+IHRlbnNoaVwgOwor5LiJ5pa5ID4gc2FucG91XCA7CivpnZLol40gPiBzZWlyYW5cIDsKK+WkqeizhyA+IHRlbnNoaVwgOwor6Z+y54mpID4gYWVtb25vXCA7CivkuIrmlocgPiBqb3VidW5cIDsKK+S4u+W+kyA+IHNodWp1dVwgOwor5pat6KOBID4gZGFuc2FpXCA7CivkurrlgKsgPiBqaW5yaW5cIDsKK+iri+iokyA+IHNlaWt1blwgOwor54yl5pysID4gd2FpaG9uXCA7Civkub7lnaQgPiBrZW5rb25cIDsKK+S5seWjsiA+IHJhbmJhaVwgOwor5LiJ5paHID4gc2FubW9uXCA7CivlpKfos6IgPiB0YWlrZW5cIDsKK+S4h+aWuSA+IGJhbnBvdVwgOwor5aSJ6YG3ID4gaGVuc2VuXCA7CivpoYzmnZAgPiBkYWl6YWlcIDsKK+S7iuS4iiA+IGtpbmpvdVwgOwor6IGW5LiKID4gc2Vpam91XCA7CivlpJbou4ogPiBnYWlzaGFcIDsKK+mbu+mAgSA+IGRlbnNvdVwgOwor546E5a2rID4gZ2Vuc29uXCA7CivmlLvpmLIgPiBrb3Vib3VcIDsKK+S4oeaJiyA+IHJ5b3V0ZVwgOwor5LiD5pelID4gbmFub2thXCA7Civmlq3ooYwgPiBkYW5rb3VcIDsKK+acneWutiA+IGNob3VrYVwgOwor5aSJ6YCgID4gaGVuem91XCA7CivpoZjmlocgPiBnYW5tb25cIDsKK+acrOWnkyA+IGhvbnNlaVwgOwor5LiA5pioID4gaXNzYWt1XCA7CivlpYnooYwgPiBidWd5b3VcIDsKK+iyoOWCtyA+IGZ1c2hvdVwgOwor5LuB5Lq6ID4gamluamluXCA7CivmnKzlprsgPiBob25zYWlcIDsKK+miqOWusyA+IGZ1dWdhaVwgOwor5auJ5aasID4gc2hpdHRvXCA7CivorJ3nvaogPiBzaGF6YWlcIDsKK+eMn+acnyA+IHJ5b3VraVwgOwor5Lq65L2TID4gbmludGVpXCA7Civml6XohJogPiBoaWFzaGlcIDsKK+aWh+ixqiA+IGJ1bmdvdVwgOwor5LiA5pawID4gaXNzaGluXCA7CivkuLvlubkgPiBzaHVrYW5cIDsKK+aWveiWrCA+IHNleWFrdVwgOwor54us5rOzID4gZG9rdWVpXCA7CivmlpzoppYgPiBzaGFzaGlcIDsKK+WkqeittCA+IHRlbmtlblwgOwor5pWw6LuSID4gc3V1a2VuXCA7CivlpKnoraYgPiB0ZW5rZWlcIDsKK+iqueirpyA+IGhhaWthaVwgOwor572q5qWtID4gemFpZ291XCA7CivmlK/pmoogPiBzaGl0YWlcIDsKK+aXqeiAgSA+IHNvdXJvdVwgOwor6Zu76LuKID4gZGVuc2hhXCA7CivnjaPluK8gPiBqdXV0YWlcIDsKK+S4gOaUqyA+IGlra2FrdVwgOwor5Li75biGID4gc2h1aGFuXCA7CivpoZ7mjqggPiBydWlzdWlcIDsKK+aYjuetlCA+IG1laXRvdVwgOwor5LiK5o+QID4gam91dGVpXCA7Civnt5rpppkgPiBzZW5rb3VcIDsKK+Wkiei7oiA+IGhlbnRlblwgOwor5LiA5pOyID4gaXR0ZWtpXCA7CivkuIrmjrIgPiBqb3VrZWlcIDsKK+adpeWGpiA+IHJhaWtvdVwgOwor54yb5pqRID4gbW91c2hvXCA7Civoq7joirggPiBzaG9nZWlcIDsKK+S6oeWFhCA+IGJvdWtlaVwgOwor5LqI5ZGKID4geW9rb2t1XCA7CivkuI3mjK8gPiBmdXNoaW5cIDsKK+abuOW6lyA+IHNob3RlblwgOwor5Lq65LiWID4gamluc2VpXCA7CivmnKzloYEgPiBob25ydWlcIDsKK+iyp+S5jyA+IGJpbmJvdVwgOwor5p2l5YWJID4gcmFpa291XCA7CivlpJbos4cgPiBnYWlzaGlcIDsKK+eHu+ijvSA+IGt1bnNlaVwgOwor6aKo5ae/ID4gZnV1c2hpXCA7Civpm6Lpg7cgPiByaWt5b3VcIDsKK+acrOWggiA+IGhvbmRvdVwgOwor5Lmd5aSPID4ga3l1dWthXCA7CivpnZLojYkgPiBhb2t1c2FcIDsKK+iruOiIrCA+IHNob2hhblwgOwor5aSW6LKMID4gZ2FpYm91XCA7Civml6Lnv5IgPiBraXNodXVcIDsKK+S4reW6pyA+IGNodXV6YVwgOwor54qs54y/ID4ga2VuJydlblwgOwor5Li75bOwID4gc2h1aG91XCA7CivkuI3mib8gPiBmdXNob3VcIDsKK+e9sOadryA+IGJhcHBhaVwgOwor6aC45pyoID4ga3ViaWtpXCA7CivkuInmi50gPiBzYW5wYWlcIDsKK+WmlueyviA+IHlvdXNlaVwgOwor5LmZ5aScID4gb3RzdXlhXCA7CivpoJPmrbsgPiB0b25zaGlcIDsKK+acieWusyA+IHl1dWdhaVwgOwor57+S5a2XID4gc2h1dWppXCA7CivlpKfoqIggPiB0YWlrZWlcIDsKK+aYpeedgCA+IGhhcnVnaVwgOwor5LiA5o6sID4gaWtraWt1XCA7Civnt6jpmoogPiBoZW50YWlcIDsKK+S6reS6rSA+IHRlaXRlaVwgOwor5aSp6KanID4gdGVucmFuXCA7Civoqq3oqqYgPiBkb2t1anVcIDsKK+mghuazlSA+IGp1bnBvdVwgOwor5Lqs5Lq6ID4ga2VpamluXCA7CivmlZfpgIAgPiBoYWl0YWlcIDsKK+eMm+aUuyA+IG1vdWtvdVwgOwor5aSn6KazID4gdGFpa2FuXCA7CivkuozlibIgPiBuaXdhcmlcIDsKK+acqOWeiyA+IGtpZ2F0YVwgOwor5LiJ5omNID4gc2Fuc2FpXCA7CivmnJvlpJYgPiBib3VnYWlcIDsKK+S4reW3niA+IG5ha2FzdVwgOwor576p5b+DID4gZ2lzaGluXCA7CivlpKfopoEgPiB0YWl5b3VcIDsKK+S4gOaMuiA+IGl0Y2hvdVwgOwor5pqu5pilID4gYm9zaHVuXCA7CivkuLvlsI4gPiBzaHVkb3VcIDsKK+Wor+alvSA+IGdvcmFrdVwgOwor5Lqt5Li7ID4gdGVpc2h1XCA7CivkuIfmiY0gPiBtYW56YWlcIDsKK+aatOaUvyA+IGJvdXNlaVwgOwor6Kqk6KysID4gZ29ieXV1XCA7Civml6fnuIEgPiBreXV1ZW5cIDsKK+S6gOWNnCA+IGtpYm9rdVwgOwor6Kqt6KejID4gZG9ra2FpXCA7CivkuLvlrrAgPiBzaHVzYWlcIDsKK+eOi+WbvSA+IG91a29rdVwgOwor5aSa6KqtID4gdGFkb2t1XCA7CivpoqjlobUgPiBmdXVqaW5cIDsKK+Wjq+mBkyA+IHNoaWRvdVwgOwor6aCM5q2MID4gc2hvdWthXCA7CivkuqTku6MgPiBrb3V0YWlcIDsKK+S5l+WgtCA+IG5vcmliYVwgOwor5p2x5LiKID4gdG91am91XCA7CivlpKLoposgPiB5dW1lbWlcIDsKK+S4oeW6piA+IHJ5b3Vkb1wgOwor5aSJ6LKMID4gaGVuYm91XCA7CivpoLvmlbAgPiBoaW5zdXVcIDsKK+iqpOiqrSA+IGdvZG9rdVwgOwor5LiA5oqKID4gaWNoaXdhXCA7CivpoK3mm7ggPiB0b3VzaG9cIDsKK+aZpua4iyA+IGthaWp1dVwgOwor5LiN5oORID4gZnV3YWt1XCA7Civnj43kuosgPiBjaGluamlcIDsKK+aVl+i7jSA+IGhhaWd1blwgOwor5p2l5LyaID4gcmFpa2FpXCA7CivkuIDmiZMgPiBpY2hpZGFcIDsKK+adoeS+iyA+IGpvdXJlaVwgOwor5LiA5omLID4gaGl0b3RlXCA7CivmnaXku7sgPiByYWluaW5cIDsKK+aZuuatryA+IGNoaXNoaVwgOwor5pu+5a2rID4gaGltYWdvXCA7CivoqqToqLogPiBnb3NoaW5cIDsKK+iqpOiosyA+IGdveWFrdVwgOwor5pu95a2rID4gaGltYWdvXCA7CivnuKbotbAgPiBqdXVzb3VcIDsKK+acrOWWtiA+IGhvbicnZWlcIDsKK+aXpee1jCA+IG5pa2tlaVwgOwor5pyX5aCxID4gcm91aG91XCA7CivlpJrop5IgPiB0YWtha3VcIDsKK+S4h+aEnyA+IGJhbmthblwgOwor5aWI6JC9ID4gbmFyYWt1XCA7Civlpqjnoo0gPiBib3VnYWlcIDsKK+iqnuiqvyA+IGdvY2hvdVwgOwor5aSc6KWyID4geWFzaHV1XCA7CivniqDniZsgPiBnaWd5dXVcIDsKK+ixquWLoiA+IGdvdXNlaVwgOwor5LiN5oClID4gZnVreXV1XCA7Civml6Xns7sgPiBuaWtrZWlcIDsKK+aYpeeUuyA+IHNodW5nYVwgOwor5p2h5Lu2ID4gam91a2VuXCA7Civpm4Xph48gPiBnYXJ5b3VcIDsKK+adoeS7pCA+IGpvdXJlaVwgOwor6LGq5YuHID4gZ291eXV1XCA7CivmlaPosqEgPiBzYW56YWlcIDsKK+eGlOmKkSA+IHlvdXNlblwgOwor5LiN5b+gID4gZnVjaHV1XCA7Civml6LntIQgPiBraXlha3VcIDsKK+WkluimsyA+IGdhaWthblwgOwor6ZqP6aCGID4genVpanVuXCA7CivmnaXkuJYgPiByYWlzZWlcIDsKK+e4puiyqyA+IGp1dWthblwgOwor5LiN5b6zID4gZnV0b2t1XCA7Civnt5Hpm6ggPiByeW9rdXVcIDsKK+acrOWToSA+IGhvbicnaW5cIDsKK+mbu+iriyA+IGRlbnNlaVwgOwor5aSW6KaLID4gc290b21pXCA7CivkuInmgJ0gPiBzYW5zaGlcIDsKK+aYj+edoSA+IGtvbnN1aVwgOwor6Kmp6YG4ID4gc2hpc2VuXCA7CivpnaLnuYsgPiBvbW9nYWlcIDsKK+mam+mZkCA+IHNhaWdlblwgOwor5paw6Iq9ID4gc2hpbm1lXCA7CivmnInlo7AgPiB5dXVzZWlcIDsKK+S5s+WMliA+IG55dXVrYVwgOwor5pWX6LWwID4gaGFpc291XCA7CivmlL/pgZMgPiBzZWlkb3VcIDsKK+aVsOipniA+IHN1dXNoaVwgOwor6Kiq6Z+TID4gaG91a2FuXCA7CivmmI7nnLggPiBtZWlib3VcIDsKK+mgreaVsCA+IHRvdXN1dVwgOwor5pq05oyZID4gYm91a3lvXCA7CivnjaPlp6YgPiBqdXVrYW5cIDsKK+malOmboiA+IGtha3VyaVwgOwor5pys5ZG9ID4gaG9ubWVpXCA7CivpoZ7lvaIgPiBydWlrZWlcIDsKK+S4reWtkCA+IG5ha2Fnb1wgOwor6ICB5YqfID4gcm91a291XCA7Civmm7PlrZAgPiBoaWtpa29cIDsKK+WkqeialSA+IHRlbnNhblwgOwor5pS+6YCBID4gaG91c291XCA7CivlpKromZogPiB0YWlreW9cIDsKK+WkluijhSA+IGdhaXNvdVwgOwor5pys5ZCNID4gaG9ubWVpXCA7CivmlLnpgbggPiBrYWlzZW5cIDsKK+S4iuW8piA+IGpvdWdlblwgOwor5aWz57WmID4gam9reXV1XCA7Civpm7vop6MgPiBkZW5rYWlcIDsKK+S4ieW8piA+IHNhbmdlblwgOwor572u5o+bID4gY2hpa2FuXCA7CivoqpPoqZ4gPiBzZWlzaGlcIDsKK+S6jOS8uCA+IG5pc2hpblwgOwor5pyI5aCxID4gZ2VwcG91XCA7CivmnIDlpKcgPiBzYWlkYWlcIDsKK+eHu+iSuCA+IGt1bmpvdVwgOwor5LqR5LqRID4gdW4nJ251blwgOwor6ZqZ6ZaTID4gc3VraW1hXCA7CivmnIDlpJYgPiBzYWlnYWlcIDsKK+WppuW+syA+IGZ1dG9rdVwgOwor5pq05oi7ID4gYm91cmVpXCA7CivmlLnpgKAgPiBrYWl6b3VcIDsKK+Wkp+iZjiA+IG9vZG9yYVwgOwor6Zm16aeVID4gcnlvdWdhXCA7Civlo7LosrcgPiBiYWliYWlcIDsKK+aUr+mFjSA+IHNoaWhhaVwgOwor5Lim5a2YID4gaGVpem9uXCA7CivkuLjlpKogPiBtYXJ1dGFcIDsKK+adkeS8miA+IHNvbmthaVwgOwor576O5b6zID4gYml0b2t1XCA7CivmnKrlj44gPiBtaXNodXVcIDsKK+S4gOW/nCA+IGljaGlvdVwgOwor6Kmg6YCyID4gZWlzaGluXCA7CivnvqTls7YgPiBndW50b3VcIDsKK+iqk+iogCA+IHNlaWdlblwgOwor576k5bOwID4gZ3VucG91XCA7CivmnI3lnLAgPiBmdWt1amlcIDsKK+isneekvCA+IHNoYXJlaVwgOwor5LiA5b+DID4gaXNzaGluXCA7CivmnKjlj6IgPiBrb211cmFcIDsKK+S4oeWutiA+IHJ5b3VrZVwgOwor5LiA5b6zID4gaXR0b2t1XCA7CivkuozkurogPiBmdXRhcmlcIDsKK+iAgeWFtSA+IHJvdWhlaVwgOwor54uC5rCXID4ga3lvdWtpXCA7CivkuIDlvpcgPiBpdHRva3VcIDsKK+e3j+mWgCA+IHNvdW1vblwgOwor6ICB5YWsID4gcm91a291XCA7CivniYfnq68gPiBrYXRhd2FcIDsKK+eNhOWxiyA+IGdva3V5YVwgOwor6Kyb56S+ID4ga291c2hhXCA7CivkuIDlvoAgPiBpY2hpb3VcIDsKK+mgjOaghCA+IHNob3VlaVwgOwor54WO6aSFID4gc2VuYmVpXCA7CivkuIrluK8gPiB1d2FvYmlcIDsKK+mbkei4jyA+IHphdHRvdVwgOwor5pu05aeLID4ga291c2hpXCA7Civmlofol7sgPiBidW5zb3VcIDsKK+S4iuW4nSA+IGpvdXRlaVwgOwor6ICB5YSqID4gcm91eXV1XCA7CivnhrHos5sgPiBuZXNzYW5cIDsKK+aVmeittyA+IGt5b3Vnb1wgOwor5Lmz5YWQID4gbnl1dWppXCA7CivkuIDlvLUgPiBpdGNob3VcIDsKK+S4iuW3uyA+IGpvdWthblwgOwor5pq05oWiID4gYm91bWFuXCA7CivkuIrlt7MgPiBqb3VzaGlcIDsKK+e+pOWxhSA+IGd1bmt5b1wgOwor57qP57a/ID4gdGVubWVuXCA7Civlqr7lkIggPiBrb3Vnb3VcIDsKK+iAgeWDpyA+IHJvdXNvdVwgOwor5LqJ5LmxID4gc291cmFuXCA7CivnjJvmgqogPiBtb3Vha3VcIDsKK+Wlj+iBniA+IHNvdW1vblwgOwor5aSn6JS1ID4gb29rdXJhXCA7CivlpInoo4UgPiBoZW5zb3VcIDsKK+S4h+W3uyA+IG1hbmdhblwgOwor6aCT5pm6ID4gdG9uY2hpXCA7Civni4LmrYwgPiBreW91a2FcIDsKK+aXpeeoiyA+IG5pdHRlaVwgOwor5aem5rerID4ga2FuJydpblwgOwor5LiB5bqmID4gY2hvdWRvXCA7CivlpKnok4sgPiB0ZW5nYWlcIDsKK+aVmeirrSA+IGt5b3V5dVwgOwor542F5a2QID4gc2hpc2hpXCA7CivkuIDluqcgPiBpY2hpemFcIDsKK+S4reWkriA+IGNodXVvdVwgOwor5aWP6ICFID4gc291c2hhXCA7CivkuIHlubQgPiB0ZWluZW5cIDsKK+S5l+WQiCA+IG5vcmlhaVwgOwor6Z+z5qiZID4gb25weW91XCA7CivmlaPoposgPiBzYW5rZW5cIDsKK+S5l+WPtyA+IGpvdWdvdVwgOwor5pq05oKqID4gYm91YWt1XCA7CivmnKzliJ0gPiBob25zaG9cIDsKK+miqOWQkSA+IGZ1dWtvdVwgOwor6Kmp6LajID4gc2hpc2h1XCA7CivmnKzliIYgPiBob25idW5cIDsKK+aVkeittyA+IGt5dXVnb1wgOwor57im6KanID4ganV1cmFuXCA7CivkuIDluYUgPiBpcHB1a3VcIDsKK+iAkOS5jyA+IHRhaWJvdVwgOwor5pyN5ZaqID4gZnVrdW1vXCA7CivmnKjliaMgPiBib2trZW5cIDsKK+e4q+ijvSA+IGhvdXNlaVwgOwor5LiA5bitID4gaXNzZWtpXCA7CivlpKfokawgPiB0YWlzb3VcIDsKK+Wkp+iRlyA+IHRhaWNob1wgOwor5pOs6Z2pID4gZ2lrYWt1XCA7CivkuJblrZAgPiBzZWlzaGlcIDsKK+irluiAhSA+IHJvbnNoYVwgOwor6KuW6ICDID4gcm9ua291XCA7Civpn7Pmpb0gPiBvbmdha3VcIDsKK+acl+WQnyA+IHJvdWdpblwgOwor6Zuq6KaLID4geXVraW1pXCA7CivniannlKMgPiBidXNzYW5cIDsKK+S5seWAqyA+IHJhbnJpblwgOwor6Zuy6KGoID4gdW5weW91XCA7CivniZvnmq4gPiBneXV1aGlcIDsKK+S4iuWxpCA+IGpvdXNvdVwgOwor6Zuj6KiTID4gbmFua3VuXCA7CivkubPkvqEgPiBueXV1a2FcIDsKK+S4jeWvqSA+IGZ1c2hpblwgOwor57+75YCSID4gaG9udG91XCA7CivogIHkvZMgPiByb3V0YWlcIDsKK+mZuOmboiA+IHJpa3VyaVwgOwor5pOh6aCtID4gdGFpdG91XCA7CivlpYfnv5IgPiBraXNodXVcIDsKK+mbo+inoyA+IG5hbmthaVwgOwor5pat572qID4gZGFuemFpXCA7CivoqJPpm7sgPiBrdW5kZW5cIDsKK+eJoueVqiA+IHJvdWJhblwgOwor5pmC5rWBID4gamlyeXV1XCA7CivmlqznvaogPiB6YW56YWlcIDsKK+aXheexoCA+IGhhdGFnb1wgOwor5pWi6KGMID4ga2Fua291XCA7CivotaTjgIUgPiBha2Fha2FcIDsKK+aZtOaclyA+IHNlaXJvdVwgOwor5LiJ5bCBID4gc2FucHV1XCA7CivnhrHoqqAgPiBuZXNzZWlcIDsKK+S4ieWvuCA+IHNhbnp1blwgOwor5LiN5a2mID4gZnVnYWt1XCA7CivkuIflsIsgPiBiYW5qaW5cIDsKK+iAgeS6uiA+IHJvdWppblwgOwor54y25a2QID4geXV1c2hpXCA7CivmmbTmm4cgPiBzZWlkb25cIDsKK+S4iuWumCA+IGpvdWthblwgOwor5LiJ5a6dID4gc2FucG91XCA7CivpoqjliY0gPiBmdXV6ZW5cIDsKK+mZo+miqCA+IGppbnB1dVwgOwor546E5YasID4gZ2VudG91XCA7Civpm4bosqggPiBzaHV1a2FcIDsKK+eOh+WFiCA+IHNvc3NlblwgOwor6aKo5Yi6ID4gZnV1c2hpXCA7CivpmqfpgZMgPiBzdWlkb3VcIDsKK+WjruimsyA+IHNvdWthblwgOwor5pyA5ZaEID4gc2FpemVuXCA7CivnvarmgqogPiB6YWlha3VcIDsKK+S4h+WunSA+IGJhbnBvdVwgOwor5pqW5oi/ID4gZGFuYm91XCA7CivmlazomZQgPiBrZWlrZW5cIDsKK+mao+mCpiA+IHJpbnBvdVwgOwor5Lmx5LqkID4gcmFua291XCA7CivogIHkuK0gPiByb3VqdXVcIDsKK+acrOS/uCA+IGhvbnBvdVwgOwor5aWz56WeID4gbWVnYW1pXCA7Civniqzmra8gPiBrZW5zaGlcIDsKK+mdkuetiyA+IGFvc3VqaVwgOwor6Ku456iuID4gc2hvc2h1XCA7CivpmaPpoK0gPiBqaW50b3VcIDsKK+mgveW7gyA+IHRhaWhhaVwgOwor5pyJ5ZCNID4geXV1bWVpXCA7CivmnIvlj4sgPiBob3V5dXVcIDsKK+aWh+iKuCA+IGJ1bmdlaVwgOwor6Zmw6Zm9ID4gb24nJ3lvdVwgOwor5pyJ5Y+4ID4geXV1c2hpXCA7CivmnInlj7IgPiB5dXVzaGlcIDsKK+ips+iomCA+IHNob3VraVwgOwor5LiB5a+nID4gdGVpbmVpXCA7CivkuIDlsIYgPiBpc3Nob3VcIDsKK+S4gOWvviA+IGl0dHN1aVwgOwor576p5aG+ID4gZ2lqdWt1XCA7CivkuIDlr7ggPiBjaG90dG9cIDsKK+Wkp+iIuSA+IG9vYnVuZVwgOwor6Z2S56u5ID4gYW9kYWtlXCA7CivkuIDlr6kgPiBpc3NoaW5cIDsKK+mdqeegpSA+IGthd2F0b1wgOwor6ZuR6KqMID4gemFzc2hpXCA7CivniYfnnLwgPiBrYXRhbWVcIDsKK+aWree3miA+IGRhbnNlblwgOwor5Lmx5LiWID4gcmFuc2VpXCA7Civnhp/orbAgPiBqdWt1Z2lcIDsKK+S4luWkiSA+IHNlaWhlblwgOwor5pys5L2TID4gaG9udGFpXCA7CivpoqjlhYkgPiBmdXVrb3VcIDsKK+S4u+WRvSA+IHNodW1laVwgOwor6Zqg6YC4ID4gaW5pdHN1XCA7CivlpKfoh6MgPiBkYWlqaW5cIDsKK+e+juWtpiA+IGJpZ2FrdVwgOwor5LiA5a6XID4gaXNzaHV1XCA7Civoqanoq5YgPiBzaGlyb25cIDsKK+eJh+ebriA+IGthdGFtZVwgOwor5pS/6KuWID4gc2Vpcm9uXCA7CivkuIHlrZAgPiBjaG91amlcIDsKK+eOh+WAkiA+IHNvdHRvdVwgOwor5pyN5YuZID4gZnVrdW11XCA7CivpnZLnqbogPiBhb3pvcmFcIDsKK+aUv+irhyA+IHNlaWRhblwgOwor5pyJ5Y2KID4geXV1aGFuXCA7CivkuIDlrZcgPiBpY2hpamlcIDsKK+mbkeiogCA+IHpvdWdvblwgOwor57mL6Ii5ID4ga2Vpc2VuXCA7CivmnKzku7YgPiBob25rZW5cIDsKK+aUvuirhyA+IGhvdWRhblwgOwor5Li75ZCbID4gc2h1a3VuXCA7CivkuLjlkbMgPiBtYXJ1bWlcIDsKK+acrOS7oyA+IGhvbmRhaVwgOwor5aSn6IW/ID4gZGFpdGFpXCA7Civoqaboq5YgPiBzaGlyb25cIDsKK+aZqeaZryA+IGJhbmtlaVwgOwor5LiL5aeTID4gZ2VzaG91XCA7Civlo67ooYwgPiBzb3Vrb3VcIDsKK+WmmeeOiyA+IG15b3VvdVwgOwor5aSn6ISzID4gZGFpbm91XCA7Civml4XnqIsgPiByeW90ZWlcIDsKK+Wliee0jSA+IGhvdW5vdVwgOwor54af6KqeID4ganVrdWdvXCA7CivpnIroip0gPiByZWlzaGlcIDsKK+acieWKuSA+IHl1dWtvdVwgOwor54uZ5pKDID4gc29nZWtpXCA7CivmnInlip8gPiB5dXVrb3VcIDsKK+eMtuWkqiA+IHl1ZGF5YVwgOwor5aSc6Ii5ID4geW9mdW5lXCA7CivmnKrkuoYgPiBtaXJ5b3VcIDsKK+Wnk+awjyA+IHNlaXNoaVwgOwor5LiK5aWPID4gam91c291XCA7CivmlL7oqIAgPiBob3VnZW5cIDsKK+Wkp+iDhiA+IGRhaXRhblwgOwor5LiK5aSpID4gam91dGVuXCA7Civml6nnlKMgPiBzb3V6YW5cIDsKK+Wkp+iCoSA+IG9vbWF0YVwgOwor5pyA5Y2XID4gc2FpbmFuXCA7CivlpKnogZ4gPiB0ZW5idW5cIDsKK+iotOi/vSA+IHNvdHN1aVwgOwor54yb5bCEID4gbW91c2hhXCA7CivoqaDoqqYgPiBlaXNob3VcIDsKK+aZpuaXpSA+IG1pc29rYVwgOwor57mt57O4ID4ga2Vuc2hpXCA7CivmlL/oposgPiBzZWlrZW5cIDsKK+eMn+WtoyA+IHJ5b3VraVwgOwor5aaE55SoID4gYm91eW91XCA7Civmm7nlj7ggPiBzb3VzaGlcIDsKK+iomOmMsiA+IGtpcm9rdVwgOwor5pu45ZCNID4gc2hvbWVpXCA7CivlpKfogZYgPiB0YWlzZWlcIDsKK+aciOWIiiA+IGdla2thblwgOwor5LiH5aSpID4gYmFudGVuXCA7CivkuInlo6sgPiBzYW5zaGlcIDsKK+S4reWSjCA+IGNodXV3YVwgOwor5Li75YuVID4gc2h1ZG91XCA7CivmlLnoqIIgPiBrYWl0ZWlcIDsKK+S4reWRsyA+IG5ha2FtaVwgOwor5pel55SjID4gbmlzc2FuXCA7CivpnaLnm7ggPiBtZW5zb3VcIDsKK+e+juWmmSA+IGJpbXlvdVwgOwor6KmV6K2wID4gaHlvdWdpXCA7Civmlpznt5ogPiBzaGFzZW5cIDsKK+Wkp+iAgSA+IHRhaXJvdVwgOwor5pyL5YWaID4gaG91dG91XCA7CivpoqjkvZMgPiBmdXV0ZWlcIDsKK+eJneeJmyA+IG1ldXNoaVwgOwor5aKX6YWNID4gem91aGFpXCA7CivpnaLnmrAgPiBtZW5ib3VcIDsKK+S5g+WFrCA+IG5haWtvdVwgOwor6Zmj6ZaAID4gamlubW9uXCA7CivmmILnhLYgPiBrb3V6ZW5cIDsKK+S4gOWlsyA+IGljaGlqb1wgOwor5LiK5aC0ID4gam91am91XCA7CivpmY3poIYgPiBrb3VqdW5cIDsKK+Wkp+e+pCA+IHRhaWd1blwgOwor6Zmi6ZW3ID4gaW5jaG91XCA7CivkuK3lj6UgPiBjaHV1a3VcIDsKK+S4ieWhgSA+IHNhbnJ1aVwgOwor5pyA5YmNID4gc2FpemVuXCA7Civpmrvoqp4gPiBzZWtpZ29cIDsKK+abh+WkqSA+IGRvbnRlblwgOwor5pyI5YWJID4gZ2Vra291XCA7CivorJ3nirYgPiBzaGFqb3VcIDsKK+mciuiDvSA+IHJlaW5vdVwgOwor5Li75YiRID4gc2h1a2VpXCA7CivntprplosgPiB6b2trYWlcIDsKK+Wnu+aXjyA+IGluem9rdVwgOwor5Li55YmNID4gdGFuemVuXCA7CivlpYnnrZQgPiBob3V0b3VcIDsKK+S4uOWJpCA+IGdhbnphaVwgOwor5aSn572qID4gZGFpemFpXCA7CivkuIDlpKIgPiBpY2hpbXVcIDsKK+acgOWInSA+IHNhaXNob1wgOwor5LiA5aScID4gaGl0b3lvXCA7CivkuIDlpJUgPiBpc3Nla2lcIDsKK+S4h+WgtCA+IG1hbmpvdVwgOwor6Ku455u4ID4gc2hvc291XCA7CivpoZ7lnosgPiBydWlrZWlcIDsKK+Wlh+etliA+IGtpc2FrdVwgOwor6KmV6KqeID4gaHlvdWdvXCA7CivlqZrlp7sgPiBrb24nJ2luXCA7CivkuI7lnKcgPiB5b2F0c3VcIDsKK+eGlOinoyA+IHlvdWthaVwgOwor6Kej6aGMID4ga2FpZGFpXCA7CivlpJrogokgPiB0YW5pa3VcIDsKK+S4juWbvSA+IHlva29rdVwgOwor5pS56KOFID4ga2Fpc291XCA7CivoqabooYwgPiBzaGlrb3VcIDsKK+aal+W5lSA+IGFubWFrdVwgOwor6ZqG6YGLID4gcnl1dXVuXCA7Civml4vnm6QgPiBzZW5iYW5cIDsKK+mZjemcnCA+IGtvdXNvdVwgOwor6KqY6Ie0ID4geXV1Y2hpXCA7CivmmpbluK8gPiBkYW50YWlcIDsKK+S4i+WbvSA+IGdla29rdVwgOwor5pqr5a6aID4gemFudGVpXCA7Civmmbrmha4gPiBjaGlyeW9cIDsKK+itpuajkiA+IGtlaWJvdVwgOwor5pat56iuID4gZGFuc2h1XCA7Civni6zlvoAgPiBkb2t1b3VcIDsKK+mfnOaZpiA+IHRvdWthaVwgOwor5pmL5pu4ID4gc2hpbmpvXCA7CivnjJ/lpYcgPiByeW91a2lcIDsKK+S4ieWbsiA+IG1pdHN1aVwgOwor5aSW6IGeID4gZ2FpYnVuXCA7CivkuInlm54gPiBzYW5rYWlcIDsKK+aciOS/uCA+IGdlcHBvdVwgOwor54m55rS+ID4gdG9rdWhhXCA7CivkuLvlgqwgPiBzaHVzYWlcIDsKK+S4u+WCmCA+IHNodXNhblwgOwor6ZuB6KGMID4gZ2Fua291XCA7CivlpKnntrIgPiB0ZW5tb3VcIDsKK+mZtumFlCA+IHRvdXN1aVwgOwor5pu45YaZID4gc2hvc2hhXCA7CivmlpHntIsgPiBoYW5tb25cIDsKK+mhleWcqCA+IGtlbnphaVwgOwor5pyJ5L2TID4geXV1dGFpXCA7CivlpKfntrEgPiB0YWlrb3VcIDsKK+WnpuaZuiA+IGthbmNoaVwgOwor54aP6KO9ID4ga3Vuc2VpXCA7CivnjYTlkI8gPiBnb2t1cmlcIDsKK+eLrOW6pyA+IGRva3V6YVwgOwor57ep6KejID4ga2Fua2FpXCA7CivkuInlmIYgPiBzYW50YW5cIDsKK+WlieelgCA+IGhvdXNoaVwgOwor5LiA5Zu9ID4gaWtrb2t1XCA7CivlqLzlrrYgPiBzaG91a2FcIDsKK+aZg+abnCA+IGtvdXlvdVwgOwor54yf5aC0ID4gcnlvdWJhXCA7CivpoJjluIMgPiByeW91ZnVcIDsKK+eJh+eJhyA+IGhlbnBlblwgOwor5LiA5ZugID4gaWNoaWluXCA7CivpnKfnrJsgPiBtdXRla2lcIDsKK+mZuOmBiyA+IHJpa3V1blwgOwor5pyJ5Lq6ID4geXV1amluXCA7CivnhKHpl4cgPiBtdXlhbWlcIDsKK+aZqeaIkCA+IGJhbnNlaVwgOwor6ZuE6JyCID4gb2JhY2hpXCA7CivpmLLpoqggPiBib3VmdXVcIDsKK+ipqeiXuyA+IHNoaXNvdVwgOwor5aSn57O7ID4gdGFpa2VpXCA7Civntbnpm7IgPiBrZW4nJ3VuXCA7Civnha7osYYgPiBuaW1hbWVcIDsKK+eGlOiejSA+IHlvdXl1dVwgOwor5Li75L2TID4gc2h1dGFpXCA7CivoqJPpgKMgPiBrdW5yZW5cIDsKK+S4h+WWhCA+IG1hbnplblwgOwor5aSp57GfID4gdGVucmFpXCA7Civmlofns7sgPiBidW5rZWlcIDsKK+acgOS9jiA+IHNhaXRlaVwgOwor57mL57SvID4ga2VpcnVpXCA7Civoqq3ntYwgPiBkb2t5b3VcIDsKK+e5iue0sCA+IHNlbnNhaVwgOwor5pa955mCID4gc2VyeW91XCA7CivkuLvku7sgPiBzaHVuaW5cIDsKK+aVrOiAgSA+IGtlaXJvdVwgOwor6aCG5b2TID4ganVudG91XCA7Civpmb3ou6IgPiB5b3V0ZW5cIDsKK+S4oeWIgyA+IHJ5b3ViYVwgOwor57We6aaWID4ga291c2h1XCA7Civml6XnhLwgPiBoaXlha2VcIDsKK+S4iuWTgSA+IGpvdWJvblwgOwor5pS+6JWpID4gaG91dG91XCA7CivkuLvkurogPiBzaHVqaW5cIDsKK+mhq+WLlSA+IHNlbmRvdVwgOwor6ZuE6JiCID4geXV1enVpXCA7CivpmLvpmpQgPiBzb2tha3VcIDsKK+mbo+iIuSA+IG5hbnNlblwgOwor6ZqG6LW3ID4gcnl1dWtpXCA7CivpoIblu7YgPiBqdW4nJ2VuXCA7Civpm6PoiKogPiBuYW5rb3VcIDsKK+WovOWppiA+IHNob3VmdVwgOwor5aeU5puyID4gaWt5b2t1XCA7CivkuK3lgKQgPiBuYWthbmVcIDsKK+Wlh+efryA+IGtpa3lvdVwgOwor57ep6KGMID4ga2Fua291XCA7CivlpJbnt5ogPiBnYWlzZW5cIDsKK+Wnu+aImiA+IGluc2VraVwgOwor5pit5qCEID4gc2hvdWVpXCA7CivpoZ7lkIwgPiBydWlkb3VcIDsKK+iqpue1jCA+IHp1a3lvdVwgOwor5pep54CsID4gaGF5YXNlXCA7CivoqZ7ol7sgPiBzaGlzb3VcIDsKK+abuOS9kyA+IHNob3RhaVwgOwor5Lit5L+dID4gY2h1dWhvXCA7Civnt5Loq5YgPiBjaG9yb25cIDsKK+S4iuWQkSA+IGpvdWtvdVwgOwor6Ki76KiYID4gY2h1dWtpXCA7CivkuLvkuIogPiBzaHVqb3VcIDsKK+acgOS4rSA+IG1vbmFrYVwgOwor5LiK5Y+4ID4gam91c2hpXCA7Civlp7/mhYsgPiBzaGl0YWlcIDsKK+mbkeiPjCA+IHpha2tpblwgOwor5paH56+EID4gYnVucGFuXCA7CivmlrDnm4YgPiBuaWlib25cIDsKK+Wil+izhyA+IHpvdXNoaVwgOwor6ZuE6JWKID4geXV1enVpXCA7CivmnIDkuIogPiBtb2dhbWlcIDsKK+Wkp+etiyA+IG9vc3VqaVwgOwor5aqS5L2TID4gYmFpdGFpXCA7CivniIbnoLQgPiBiYWt1aGFcIDsKK+e3j+irliA+IHNvdXJvblwgOwor5LiA5ZOhID4gaWNoaWluXCA7CivlpKnnq6UgPiB0ZW5kb3VcIDsKK+eMruWRiCA+IGtlbnRlaVwgOwor54us5bGFID4gZG9ra3lvXCA7CivlqLzlppMgPiBzaG91Z2lcIDsKK+eJueaoqSA+IHRva2tlblwgOwor6Kiz6KqeID4geWFrdWdvXCA7CivlpJbntJkgPiBnYWlzaGlcIDsKK+S4reS9kCA+IGNodXVzYVwgOwor5LiH5Y+jID4gYmFua291XCA7Civpm5HojYkgPiB6YXNzb3VcIDsKK+S4iuWNiiA+IGpvdWhhblwgOwor6Zm46LevID4gcmlrdXJvXCA7CivlqpLku4sgPiBiYWlrYWlcIDsKK+WkqeepuiA+IHRlbmt1dVwgOwor57eS6KiAID4gY2hvZ2VuXCA7Civmm7Tku6MgPiBrb3V0YWlcIDsKK+iotOionyA+IHNvc2hvdVwgOwor6ZyA57WmID4ganVreXV1XCA7CivpoK3lo7AgPiB0b3VzZWlcIDsKK+S4ieWNgyA+IHNhbnplblwgOwor5LiJ5Y2BID4gc2FuanV1XCA7CivmlLnokawgPiBrYWlzb3VcIDsKK+S4juWKmyA+IHlvcmlraVwgOwor57WM6aiTID4ga2Vpa2VuXCA7Civml6nmvI8gPiBzb3Vyb3VcIDsKK+mbu+e3miA+IGRlbnNlblwgOwor5aSn56m6ID4gb296b3JhXCA7CivlpJbnsbMgPiBnYWltYWlcIDsKK+e3j+ioiCA+IHNvdWtlaVwgOwor5LiH5Y2DID4gYmFuc2VuXCA7CivlpKnnqJ8gPiB0ZW5waW5cIDsKK+ios+inoyA+IHlha2thaVwgOwor57mB57ChID4gaGFua2FuXCA7CivkuK3kuowgPiBjaHV1bmlcIDsKK+Wlh+eZliA+IGtpaGVraVwgOwor5pWP6IWVID4gYmlud2FuXCA7CivlpKnnp6QgPiB0ZW5iaW5cIDsKK+e0oum6uiA+IHNvdW1lblwgOwor57eP6KanID4gc291cmFuXCA7CivnvqTlg48gPiBndW56b3VcIDsKK+e3j+imiyA+IHNvdWtlblwgOwor57Sg6bq6ID4gc291bWVuXCA7Civmm5nlhYkgPiBzaG9rb3VcIDsKK+aVl+iAhSA+IGhhaXNoYVwgOwor5aWu54S2ID4gZnVuemVuXCA7CivkuIfliqsgPiBtYW5nb3VcIDsKK+S4iuWJjSA+IHV3YW1hZVwgOwor6Kit6KiIID4gc2Vra2VpXCA7Civmlq/nlYwgPiBzaGlrYWlcIDsKK+aWsOeUqyA+IHNoaW5wb1wgOwor6ZuG6I23ID4gc2h1dWthXCA7CivpmYTpjLIgPiBmdXJva3VcIDsKK+aVmee+qSA+IGt5b3VnaVwgOwor6ZuM6IqxID4gbWViYW5hXCA7CivlpYfnl4UgPiBraWJ5b3VcIDsKK+aZtOW1kCA+IHNlaXJhblwgOwor6Z2S54mpID4gYW9tb25vXCA7CivniaLmrbsgPiByb3VzaGlcIDsKK+eKtuaFiyA+IGpvdXRhaVwgOwor5aSp56WeID4gdGVuamluXCA7CivnhLbov4QgPiBzYW1hZGVcIDsKK+mhjOWQjSA+IGRhaW1laVwgOwor5LiA5Y2HID4gaXNzaG91XCA7Civlpb3mvKIgPiBrb3VrYW5cIDsKK+S4gOWMuSA+IGlwcGlraVwgOwor6aGM5Y+3ID4gZGFpZ291XCA7CivlpKfnpa0gPiB0YWlzYWlcIDsKK+S4ieWIhiA+IHNhbnB1blwgOwor576p5L6gID4gZ2lreW91XCA7Civnho/okrggPiBrdW5qb3VcIDsKK+mbtue0sCA+IHJlaXNhaVwgOwor5aSn56S+ID4gdGFpc2hhXCA7CivlpKfnpLwgPiB0YWlyZWlcIDsKK+iqk+e0mSA+IHNlaXNoaVwgOwor57eP6KOPID4gc291dXJhXCA7CivnianmqKkgPiBidWtrZW5cIDsKK+WknOepuiA+IHlvem9yYVwgOwor5LiA5YudID4gaXNzaG91XCA7Civlo67ogIUgPiBzb3VzaGFcIDsKK+e3j+ijgSA+IHNvdXNhaVwgOwor54Sh6YePID4gbXVyeW91XCA7CivkuInlhqwgPiBzYW50b3VcIDsKK+S4gOWKqSA+IGljaGlqb1wgOwor6ZuA6I2YID4gamFuc291XCA7Civnt4ropIwgPiBraW5rb25cIDsKK+S4luS/lyA+IHNlem9rdVwgOwor6aC95ZSQID4gdGFpdG91XCA7CivnuKbnt5ogPiBqdXVzZW5cIDsKK+eJm+atqSA+IGd5dXVob1wgOwor5LiH5YaGID4gbWFuJydlblwgOwor5aKX6KiCID4gem91dGVpXCA7CivpoIblroggPiBqdW5zaHVcIDsKK+S4h+WFqCA+IG1hbnplblwgOwor5LiA5Yi7ID4gaWtrb2t1XCA7Civml6fmtL4gPiBreXV1aGFcIDsKK+e+heWMlyA+IHJhaG9rdVwgOwor6Zuq57eaID4gc2Vzc2VuXCA7CivnvqTkvZMgPiBndW50YWlcIDsKK+S4i+WDmiA+IGthcnlvdVwgOwor57Sw6a2aID4gc2F5b3JpXCA7CivkuIvlg5UgPiBnZWJva3VcIDsKK+S4gOWIqSA+IGljaGlyaVwgOwor5aSn56CyID4gdGFpaG91XCA7CivmmrTlkJsgPiBib3VrdW5cIDsKK+aXp+azoiA+IGt5dXVoYVwgOwor5pWw562JID4gc3V1dG91XCA7CivlpbPmu50gPiBtZWRha2lcIDsKK+S4luS8nSA+IHNlaWRlblwgOwor6K2m5omLID4ga2Vpc2h1XCA7Civpmo/ooYwgPiB6dWlrb3VcIDsKK+aTjei7iiA+IHNvdXNoYVwgOwor5aaC5rOVID4gbnlvaG91XCA7CivkuI7kv6EgPiB5b3NoaW5cIDsKK+iomOiqpiA+IGtpc2hvdVwgOwor6Zu3566hID4gcmFpa2FuXCA7CivlpJrnpaUgPiB0YXNob3VcIDsKK+S4gOWGhiA+IGljaGllblwgOwor5LiA5YW3ID4gaWNoaWd1XCA7CivkuI3kv6EgPiBmdXNoaW5cIDsKK+e3qOiRlyA+IGhlbmNob1wgOwor6K2m5oiSID4ga2Vpa2FpXCA7CivloYrpibEgPiBrYWlrb3VcIDsKK+eIm+eImyA+IHJhbnJhblwgOwor5pqW5ZywID4gZGFuY2hpXCA7CivntrjoqIAgPiByaW5nZW5cIDsKK+aUvuiDhiA+IGhvdXRhblwgOwor6KiT6KutID4ga3VuJyd5dVwgOwor5pug5LiWID4ga291c2VpXCA7CivlpKnnnLwgPiB0ZW5nYW5cIDsKK+iqreegtCA+IGRva3VoYVwgOwor5LiJ5YCNID4gc2FuYmFpXCA7CivpoZvlgJIgPiB0ZW50b3VcIDsKK+aXgeeCuSA+IGJvdXRlblwgOwor6Kmp6IGWID4gc2hpc2VpXCA7CivnjJvli4cgPiBtb3V5dXVcIDsKK+aUvuiChiA+IGhvdXNoaVwgOwor5aWJ54yuID4gaG91a2VuXCA7CivkuIDlhIAgPiBpY2hpZ2lcIDsKK+e2mei1sCA+IGtlaXNvdVwgOwor5pel5rC4ID4gaGluYWdhXCA7CivpoZ7kvosgPiBydWlyZWlcIDsKK+iok+iqoSA+IGt1bmthaVwgOwor5LiN5L2cID4gZnVzYWt1XCA7CivoqIDos6ogPiBnZW5jaGlcIDsKK+isueabuCA+IGtpbnNob1wgOwor572y5ZCNID4gc2hvbWVpXCA7CivmmI7mnJcgPiBtZWlyb3VcIDsKK+S4iuS+iyA+IGpvdXJlaVwgOwor6ZeY6baPID4gdG91a2VpXCA7CivlpKnnm4MgPiB0ZW5wYWlcIDsKK+S4iuS9vyA+IGpvdXNoaVwgOwor5piU5pmCID4gc2VraWppXCA7CivmmrTli5UgPiBib3Vkb3VcIDsKK+WgpOmYsiA+IHRlaWJvdVwgOwor6KiO6KuWID4gdG91cm9uXCA7Civml6Xmr44gPiBoaWdvdG9cIDsKK+S4iuS9kyA+IGpvdXRhaVwgOwor5LiN5LuyID4gZnVuYWthXCA7CivoqrLnm64gPiBrYW1va3VcIDsKK+Wkp+ebgyA+IHRhaWhhaVwgOwor5aSn55q/ID4gb296YXJhXCA7CivkuInkvZMgPiBzYW50YWlcIDsKK+aWh+ebsiA+IG1vbm1vdVwgOwor54ax57eaID4gbmVzc2VuXCA7CivpoL3li6IgPiB0YWlzZWlcIDsKK+eGn+iAgyA+IGp1a2tvdVwgOwor5aSJ56iuID4gaGVuc2h1XCA7Civmlq3niYcgPiBkYW5wZW5cIDsKK+eMn+WFtyA+IHJ5b3VndVwgOwor5p+Q44CFID4gYm91Ym91XCA7CivlopPooaggPiBib2h5b3VcIDsKK+iok+inoyA+IGt1bmthaVwgOwor5pi15oeHID4gamlra29uXCA7CivlpbPmtYEgPiBqb3J5dXVcIDsKK+mfs+WuuSA+IG9uJyd5b3VcIDsKK+mZjei7iiA+IGtvdXNoYVwgOwor6ZyK55+lID4gcmVpY2hpXCA7Civlo7DntIsgPiBzZWltb25cIDsKK+S4iuS7oyA+IGpvdWRhaVwgOwor5aWH54m5ID4ga2lkb2t1XCA7CivpoJjlnJ8gPiByeW91ZG9cIDsKK+e+juS/lyA+IGJpem9rdVwgOwor6aCG5aWJID4ganVucG91XCA7CivmmJPmlq0gPiBla2lkYW5cIDsKK+S4ieS7oyA+IHNhbmRhaVwgOwor5LiA5L+1ID4gaXBweW91XCA7CivntrHopoEgPiBrb3V5b3VcIDsKK+aUvue9riA+IGhvdWNoaVwgOwor6ZeH6buSID4gYW5rb2t1XCA7CivkuI3kuZkgPiBmdWl0c3VcIDsKK+eMruS9kyA+IGtlbnRhaVwgOwor572q5ZCNID4gemFpbWVpXCA7CivmmI/mmI8gPiBrb25rb25cIDsKK+mbkee6giA+IHphc3NhblwgOwor5aaZ5qGIID4gbXlvdWFuXCA7CivlpbPms6IgPiBtZW5hbWlcIDsKK+aYjuaYjiA+IGFrYWFrYVwgOwor5LiH5LueID4gYmFuamluXCA7Civpm6LnsY0gPiByaXNla2lcIDsKK+S4jeS4gCA+IGZ1aXRzdVwgOwor5paZ55CGID4gcnlvdXJpXCA7CivkuIrkuZcgPiBqb3Vqb3VcIDsKK+aal+WUsSA+IGFuc2hvdVwgOwor5LiJ5LmXID4gc2Fuam91XCA7CivmmI7mlq0gPiBtZWlkYW5cIDsKK+e0uumdkiA+IGtvbmpvdVwgOwor5pWs56S8ID4ga2VpcmVpXCA7Civpm7fnpZ4gPiByYWlqaW5cIDsKK+mZtuijvSA+IHRvdXNlaVwgOwor5LiK5LiWID4gam91c2VpXCA7CivkuIrkuIogPiBqb3Vqb3VcIDsKK+aYjuaWhyA+IG1laWJ1blwgOwor5pm05aSpID4gc2VpdGVuXCA7CivkuIfkuZcgPiBiYW5qb3VcIDsKK+iqv+eQhiA+IGNob3VyaVwgOwor5pat54S2ID4gZGFuemVuXCA7CivlpKnnlKMgPiB0ZW5zYW5cIDsKK+WkqeeUnyA+IHRlbnNlaVwgOwor5pmp5amaID4gYmFua29uXCA7CivmmI7mlY8gPiBtZWliaW5cIDsKK+mhmOS4uyA+IGdhbnNodVwgOwor54mI5qipID4gaGFua2VuXCA7Civng4jpoqggPiByZXBwdXVcIDsKK+e1hOmWoyA+IHNva2FrdVwgOwor5LiH5LiIID4gYmFuam91XCA7CivkuIfkuIcgPiBtYW5tYW5cIDsKK+iogOirliA+IGdlbnJvblwgOwor6Zm46KGMID4gcmlra291XCA7CivlpKfnlJ8gPiBkYWlzZWlcIDsKK+mbgOe+hSA+IGpha3VyYVwgOwor5LiB5LqlID4gdGVpZ2FpXCA7CivorbDluK0gPiBnaXNla2lcIDsKK+e+juS6iyA+IG1pZ290b1wgOwor5aeR5oGvID4ga29zb2t1XCA7CivnuYHnm5sgPiBoYW5qb3VcIDsKK+S4gOS6uiA+IGhpdG9yaVwgOwor5pS+57imID4gaG91anV1XCA7Civoq5bngrkgPiByb250ZW5cIDsKK+ipqee3qCA+IHNoaWhlblwgOwor54yu5LiKID4ga2Vuam91XCA7Civml6Xmp5ggPiBoaXNhbWFcIDsKK+mZquimsyA+IGJhaWthblwgOwor5LiA5LqMID4gaWNoaW5pXCA7CivkuIDkuosgPiBpY2hpamlcIDsKK+e0oOmmliA+IHNva3ViaVwgOwor54ib5ryrID4gcmFubWFuXCA7Civpl5jprYIgPiB0b3Vrb25cIDsKK+eJueaOqiA+IHRva3Vzb1wgOwor5pS/57axID4gc2Vpa291XCA7Civoqabnt7QgPiBzaGlyZW5cIDsKK+iqh+ensCA+IGtvc2hvdVwgOwor5aWJ54GvID4gaG91dG91XCA7CivoqIDoqLMgPiBpaXdha2VcIDsKK+WfuemkiiA+IGJhaXlvdVwgOwor5pSv572yID4gc2hpc2hvXCA7CivkuIHkuIEgPiB0b3V0b3VcIDsKK+iruOawjyA+IHNob3NoaVwgOwor6KiA6KiAID4gZ2VuZ2VuXCA7CivkuIDkuIEgPiBpdGNob3VcIDsKK+e3j+iPnCA+IHNvdXphaVwgOwor5pS/57WMID4gc2Vpa2VpXCA7CivlpJrnl4UgPiB0YWJ5b3VcIDsKK+mbtueglSA+IHJlaXNhaVwgOwor5pKk6YCAID4gdGV0dGFpXCA7CivopovpoIMgPiBtaWdvcm9cIDsKK+aUuee3qCA+IGthaWhlblwgOwor54Sh6LODID4gbXVjaGluXCA7CivoqIjoo4UgPiBrZWlzb3VcIDsKK+mbhOe3qCA+IHl1dWhlblwgOwor5pWZ56eRID4ga3lvdWthXCA7CivntpzopqcgPiBzb3VyYW5cIDsKK+mciueVjCA+IHJlaWthaVwgOwor5pm65ZqiID4gY2hpbm91XCA7CivnuIHntYQgPiBlbmd1bWlcIDsKK+WkmueUnyA+IHRhc2hvdVwgOwor6Kyb5pu4ID4ga291c2hvXCA7CivntKvpm7sgPiBzaGlkZW5cIDsKK+mdmeatoiA+IHNlaXNoaVwgOwor54m55oqAID4gdG9rdWdpXCA7Civni6zlkowgPiBkb2t1d2FcIDsKK+aVmeelliA+IGt5b3Vzb1wgOwor5pWZ56S6ID4ga3lvdWppXCA7CivloIXpmaMgPiBrZW5qaW5cIDsKK+iqjeefpSA+IG5pbmNoaVwgOwor54uC5aWzID4ga3lvdWpvXCA7CivlpJbnlKggPiBnYWl5b3VcIDsKK+eJqeaQjSA+IGJ1c3NvblwgOwor6KaB6aCFID4geW91a291XCA7CivopoHpoIIgPiB5b3Vrb3VcIDsKK+eCuemgrSA+IHRlbnRvdVwgOwor5pSv57eaID4gc2hpc2VuXCA7CivnvbDkv7ggPiBiYXBwb3VcIDsKK+aWh+eMriA+IGJ1bmtlblwgOwor6Kmp56+HID4gc2hpaGVuXCA7Civml6Xmn4QgPiBoaWdhcmFcIDsKK+WnieW8nyA+IHNoaW1haVwgOwor57iB57GNID4gZW5zZWtpXCA7Civpm6LnpIEgPiByaXNob3VcIDsKK+mfs+WfnyA+IG9uJydpa2lcIDsKK+iogOihjCA+IGdlbmtvdVwgOwor6KeS6LedID4ga2Fra3lvXCA7CivloLHpgZMgPiBob3Vkb3VcIDsKK+aWueazlSA+IGhvdWhvdVwgOwor5pet5pqJID4ga3lva2tpXCA7Civntbbos5sgPiB6ZXNzYW5cIDsKK+WmguadpSA+IG55b3JhaVwgOwor5aSn54mpID4gb29tb25vXCA7CivmmILmj5ogPiBrb3V5b3VcIDsKK+mcsua7tCA+IHJvdGVraVwgOwor57aa6KGMID4gem9ra291XCA7CivoqabnrpcgPiBzaGlzYW5cIDsKK+irq+atuyA+IGthbnNoaVwgOwor6ZmN6KqVID4ga291dGFuXCA7CivniYjmnKwgPiBoYW5wb25cIDsKK+irq+atoiA+IGthbnNoaVwgOwor5pqW5YasID4gZGFudG91XCA7Civpm7vnlaogPiBkZW5iYW5cIDsKK+mbu+eVjCA+IGRlbmthaVwgOwor6K6a5ZiGID4gc2FudGFuXCA7Civml6nmmakgPiBzb3ViYW5cIDsKK+mciueNoyA+IHJlaWp1dVwgOwor57eo57qCID4gaGVuc2FuXCA7CivmmYLlrpcgPiBqaXNodXVcIDsKK+aWsOa0viA+IHNoaW5wYVwgOwor5pet5peXID4ga3lva2tpXCA7Civpm4Tnr4cgPiB5dXVoZW5cIDsKK+mbkeeoriA+IHphc3NodVwgOwor57SZ6Z2iID4gc2hpbWVuXCA7CivlpY/ms5UgPiBzb3Vob3VcIDsKK+WkseeBqyA+IHNoaWtrYVwgOwor5paR54K5ID4gaGFudGVuXCA7Civpm6rnm64gPiB5dWtpbWVcIDsKK+WlveacmyA+IGtvdWJvdVwgOwor5pen5pmCID4ga3l1dWppXCA7CivoqpXnlJ8gPiB0YW5qb3VcIDsKK+aYvOWvnSA+IGhpcnVuZVwgOwor5pON6KGMID4gc291a291XCA7CivnibnmgbUgPiB0b2trZWlcIDsKK+aYvOWvkCA+IGhpcnVuZVwgOwor54WZ6I2JID4gdGFiYWtvXCA7CivoqannqL8gPiBzaGlrb3VcIDsKK+itpuWumCA+IGtlaWthblwgOwor57W26K6DID4gemVzc2FuXCA7CivmlrnmraMgPiBob3VzZWlcIDsKK+irluazlSA+IHJvbnBvdVwgOwor54ib5q27ID4gcmFuc2hpXCA7CivmlbXnjosgPiB0ZWtpb3VcIDsKK+meheaOjCA+IG91c2hvdVwgOwor6KyE5pysID4gdG91aG9uXCA7CivmlLnnq4QgPiBrYWl6YW5cIDsKK+WmhOaWrSA+IG1vdWRhblwgOwor54m55b+rID4gdG9ra2FpXCA7CivlpKnngb0gPiB0ZW5zYWlcIDsKK+mdkualvCA+IHNlaXJvdVwgOwor6ZmE6KiXID4gZnV0YWt1XCA7Civml6fmlYUgPiBreXV1a29cIDsKK+eJveW8lSA+IGtlbicnaW5cIDsKK+aZr+WTgSA+IGtlaWhpblwgOwor5pel5pWwID4gaGlrYXp1XCA7CivniYjmlbAgPiBoYW5zdXVcIDsKK+aWreawtCA+IGRhbnN1aVwgOwor57Wm6LK7ID4ga3l1dWhpXCA7Civnh6bnhLYgPiBzYW56ZW5cIDsKK+WmmeaKgCA+IG15b3VnaVwgOwor57SF6aGUID4ga291Z2FuXCA7CivlprvluK8gPiBzYWl0YWlcIDsKK+mbheensCA+IGdhc2hvdVwgOwor5aiB5ZadID4gaWthdHN1XCA7CivpoJHlhqUgPiBnYW5tZWlcIDsKK+iqreeCuSA+IHRvdXRlblwgOwor54WO6Iy2ID4gc2VuY2hhXCA7CivmmI7lv6sgPiBtZWlrYWlcIDsKK+WmrOW/gyA+IHRvc2hpblwgOwor5pm65YuHID4gY2hpeXV1XCA7CivoravlpoQgPiBzZW5tb3VcIDsKK+aZtuWMliA+IHNob3VrYVwgOwor5pW054mIID4gc2VpaGFuXCA7Civpm7fnjaMgPiByYWlqdXVcIDsKK+mdkuahkCA+IGFvZ2lyaVwgOwor5aSn5r2uID4gb29zaGlvXCA7Civmma7lj4ogPiBmdWt5dXVcIDsKK+eLguWWnCA+IGt5b3VraVwgOwor5aSp5ryiID4gdGVua2FuXCA7CivpmbboirggPiB0b3VnZWlcIDsKK+aXl+aXpSA+IGhhdGFiaVwgOwor6Z2S5p+zID4gYW95YWdpXCA7CivoqK3nva4gPiBzZXRjaGlcIDsKK+eJqeaApyA+IGJ1c3NlaVwgOwor6ZmE6KGoID4gZnVoeW91XCA7Civpm6PnlKMgPiBuYW56YW5cIDsKK+iukuWPoyA+IHphbmtvdVwgOwor5LuK44CFID4gaW1haW1hXCA7CivpoJHlgaUgPiBnYW5rZW5cIDsKK+aal+S4rSA+IGFuY2h1dVwgOwor6K235Zu9ID4gZ29rb2t1XCA7CivmmLzlpJwgPiBjaHV1eWFcIDsKK+iogOiRiSA+IGtvdG9iYVwgOwor6Kaq6LqrID4gc2hpbm1pXCA7CivmlbTnhLYgPiBzZWl6ZW5cIDsKK+e0oemMmCA+IGJvdXN1aVwgOwor6KuM5q2iID4ga2Fuc2hpXCA7CivlpJbnga8gPiBnYWl0b3VcIDsKK+WmhOaMmSA+IGJvdWt5b1wgOwor57iB55+zID4gZW5zZWtpXCA7Civln7zpioAgPiBzYWlnaW5cIDsKK+mWk+m0qCA+IGFpZ2Ftb1wgOwor6Zyn5rC3ID4gbXVoeW91XCA7CivmlK/npL4gPiBzaGlzaGFcIDsKK+mdkuabuCA+IHNlaXNob1wgOwor5pil5a2jID4gc2h1bmtpXCA7CivmlZnnkIYgPiBreW91cmlcIDsKK+iruOaWuSA+IHNob2hvdVwgOwor5aKX572uID4gem91Y2hpXCA7CivlpKnmtq8gPiB0ZW5nYWlcIDsKK+ipkOensCA+IHNhc2hvdVwgOwor5pGC6ZaiID4gc2Vra2FuXCA7CivorabloLEgPiBrZWlob3VcIDsKK+e2vue+hSA+IHJ5b3VyYVwgOwor57eP57WxID4gc291dG91XCA7CivpoJjkuosgPiByeW91amlcIDsKK+eLguWPpSA+IGt5b3VrdVwgOwor5aaW5oCqID4geW91a2FpXCA7CivmlZnnjosgPiBreW91b3VcIDsKK+iruOaUvyA+IHNob3NlaVwgOwor5pa95p2hID4gc2hpam91XCA7CivpmbPohZAgPiBjaGlucHVcIDsKK+Wkp+a1tyA+IHRhaWthaVwgOwor5aeJ5aa5ID4gc2hpbWFpXCA7CivloLHorJ0gPiBob3VzaGFcIDsKK+Wmu+WtkCA+IHNhaXNoaVwgOwor54us5LmZID4gZG9pdHN1XCA7CivnhanntK8gPiBoYW5ydWlcIDsKK+eJh+aJiyA+IGthdGF0ZVwgOwor6Zu754GvID4gZGVudG91XCA7CivniYfmiLggPiBrYXRhZG9cIDsKK+Wkp+a0iyA+IHRhaXlvdVwgOwor5ae/5YuiID4gc2hpc2VpXCA7Civop5LooYwgPiBrYWtrb3VcIDsKK+WogeWKmyA+IGlyeW9rdVwgOwor5aW95oqVID4ga291dG91XCA7CivmlpHmsJcgPiBtdXJha2lcIDsKK+aVpueFjCA+IHRvbmtvdVwgOwor6Zuq54mHID4gc2VwcGVuXCA7CivlpKfms6IgPiBvb25hbWlcIDsKK+WkieeBvSA+IGhlbnNhaVwgOwor5aSn5rOVID4gdGFpaG91XCA7Civpm7bngrkgPiByZWl0ZW5cIDsKK+WlveaJiyA+IGtvdXNodVwgOwor5pmp5YasID4gYmFudG91XCA7Civlpb3miKYgPiBrb3VzZW5cIDsKK+aWreahiCA+IGRhbicnYW5cIDsKK+aWh+azlSA+IGJ1bnBvdVwgOwor5aSp5rC0ID4gdGVuc3VpXCA7CivpoJHkuIggPiBnYW5qb3VcIDsKK+Wklua5ryA+IHNvdG95dVwgOwor5paH5rK7ID4gYnVuY2hpXCA7CivmlaLnhLYgPiBrYW56ZW5cIDsKK+aZpuWGpSA+IGthaW1laVwgOwor5pWZ54i2ID4ga3lvdWZ1XCA7CivlpoTmg7MgPiBtb3Vzb3VcIDsKK+e0lOmKgCA+IGp1bmdpblwgOwor5aSt5q27ID4geW91c2hpXCA7CivmlL/nlYwgPiBzZWlrYWlcIDsKK+Wkp+awtCA+IG9vbWl6dVwgOwor57a/57a/ID4gbWVubWVuXCA7CivlpJbmuK8gPiBnYWlrb3VcIDsKK+iqrOazlSA+IHNlcHBvdVwgOwor6KaL6L68ID4gbWlrb21pXCA7CivoqKrnsbMgPiBob3ViZWlcIDsKK+ippueUqCA+IHNoaXlvdVwgOwor57Sw6LqrID4gaG9zb21pXCA7Civln47ploAgPiBqb3Vtb25cIDsKK+aWh+awkSA+IGJ1bm1pblwgOwor54Kt6YmxID4gdGFua291XCA7Civml6fmgakgPiBreXV1b25cIDsKK+e2v+e0oSA+IG1lbmJvdVwgOwor5aW95oSfID4ga291a2FuXCA7CivntJTph5EgPiBqdW5raW5cIDsKK+ilv+mDiiA+IHNlaWtvdVwgOwor5aSc5rOKID4geWFoYWt1XCA7Civmlr3mlL8gPiBzaGlzZWlcIDsKK+aXp+aAqCA+IGt5dXVlblwgOwor5pa55pa5ID4gaG91Ym91XCA7Civntr/ns7ggPiBtZW5zaGlcIDsKK+aXqOW/tSA+IHNoaW5lblwgOwor5pON6Ii5ID4gc291c2VuXCA7CivlpqjlrrMgPiBib3VnYWlcIDsKK+mciuaziSA+IHJlaXNlblwgOwor57a+57O4ID4gYXlhaXRvXCA7Civpm7vmupAgPiBkZW5nZW5cIDsKK+WmhOW/tSA+IG1vdW5lblwgOwor54q25YuiID4gam91c2VpXCA7Civlp5TlmLEgPiBpc2hva3VcIDsKK+e5iuavmyA+IHNlbm1vdVwgOwor6Zai6aCtID4ga2FudG91XCA7CivlpYnmm7ggPiBob3VzaG9cIDsKK+Wklua0iyA+IGdhaXlvdVwgOwor6KW/6YGKID4gc2VpeXV1XCA7CivnuZTmqZ8gPiBzaG9ra2lcIDsKK+WlruaIpiA+IGZ1bnNlblwgOwor6Kyb5birID4ga291c2hpXCA7CivpnIrmsLQgPiByZWlzdWlcIDsKK+eCremFuCA+IHRhbnNhblwgOwor5aWU5pS+ID4gaG9ucG91XCA7CivntI3ph5EgPiBub3VraW5cIDsKK+aZr+S7sCA+IGtlaWtvdVwgOwor57SN6YeHID4gbm91c2FpXCA7CivmloPmrbsgPiBoZWlzaGlcIDsKK+ims+impyA+IGthbnJhblwgOwor6Ku45omLID4gbW9yb3RlXCA7Civpn7Pkv6EgPiBvbnNoaW5cIDsKK+ezlumhniA+IHRvdXJ1aVwgOwor57K+6a2CID4gc2Vpa29uXCA7CivoqJPnt7QgPiBrdW5yZW5cIDsKK+Wfuui7uCA+IGtpamlrdVwgOwor6Zuj54K5ID4gbmFudGVuXCA7CivlpJzmr44gPiB5b2dvdG9cIDsKK+aXpeW9sSA+IGhpa2FnZVwgOwor5pWj5ryrID4gc2FubWFuXCA7Civnt6nnm64gPiB5dXJ1bWVcIDsKK+eJh+W9sSA+IGhlbicnZWlcIDsKK+eBvemboyA+IHNhaW5hblwgOwor5aaE5byBID4gYm91YmVuXCA7CivpnIrmrr8gPiByZWlkZW5cIDsKK+aXouW+lyA+IGtpdG9rdVwgOwor5aSn5qipID4gdGFpa2VuXCA7Civoq5bml6ggPiByb25zaGlcIDsKK+eyvumrhCA+IHNlaXp1aVwgOwor5pav5paHID4gc2hpYnVuXCA7Civln7TovKogPiBoYW5pd2FcIDsKK+irluaWrSA+IHJvbmRhblwgOwor6KuW5paHID4gcm9uYnVuXCA7CivnhZnnrqEgPiBraXNlcnVcIDsKK+eIveW/qyA+IHNvdWthaVwgOwor6ZmN6IeoID4ga291cmluXCA7CivlpKfmpoIgPiB0YWlnYWlcIDsKK+iqv+afuyA+IGNob3VzYVwgOwor6Z2Z5oWLID4gc2VpdGFpXCA7Civpm4zniZsgPiBtZXVzaGlcIDsKK+e3oOebnyA+IHRlaW1laVwgOwor6ZaL6aSoID4ga2Fpa2FuXCA7CivoqrLmpa0gPiBrYWd5b3VcIDsKK+eEoeiHrSA+IG11c2h1dVwgOwor5aSJ5rOVID4gaGVucG91XCA7CivpnbHluK8gPiBqaW50YWlcIDsKK+aYjuWkpyA+IG1laWRhaVwgOwor54mf5a2QID4gYm91c2hpXCA7Civpm7vmsaAgPiBkZW5jaGlcIDsKK+mWiemkqCA+IGhlaWthblwgOwor6Ku45oKqID4gc2hvYWt1XCA7CivmmJ/lm6MgPiBzZWlkYW5cIDsKK+WjgeeUuyA+IGhla2lnYVwgOwor5aeT5ZCNID4gc2VpbWVpXCA7CivntKDotrMgPiBzdWFzaGlcIDsKK+aVteatqSA+IHRla2lmdVwgOwor6Zuq5riTID4gc2Vra2VpXCA7Civpm4TniqwgPiBvc3VpbnVcIDsKK+mdreW4ryA+IGppbnRhaVwgOwor5aKX56iOID4gem91emVpXCA7CivmmYLliLsgPiBqaWtva3VcIDsKK+WivueUsCA+IGtvbmRlblwgOwor5pS554mIID4ga2FpaGFuXCA7CivniLblvqEgPiB0ZXRlZ29cIDsKK+mWoumWgCA+IGthbm1vblwgOwor57Sw6Ky5ID4gc2Fpa2luXCA7CivloYrojI4gPiBrYWlrZWlcIDsKK+maleefsyA+IGluc2VraVwgOwor5pit5ZKMID4gc2hvdXdhXCA7CivlpKfmoLkgPiBkYWlrb25cIDsKK+aWkeadoSA+IGhhbmpvdVwgOwor6ZaR6Z2ZID4ga2Fuc2VpXCA7CivplpHpnZYgPiBrYW5zZWlcIDsKK+mdmeaAnSA+IHNlaXNoaVwgOwor5pex5a6zID4ga2FuZ2FpXCA7Civpm5HngoogPiB6b3VzdWlcIDsKK+WknOalrSA+IHlhZ3lvdVwgOwor6KiY56ugID4ga2lzaG91XCA7CivmmILlpa4gPiBrb3VmdW5cIDsKK+e0sOirliA+IHNhaXJvblwgOwor6Kmm54WJID4gc2hpcmVuXCA7CivniaflpKsgPiBib2t1ZnVcIDsKK+aWh+ahiCA+IGJ1bicnYW5cIDsKK+aXheaDhSA+IHJ5b2pvdVwgOwor5LqR44CFID4gdW4nJ251blwgOwor5aSJ5q27ID4gaGVuc2hpXCA7Civpm6PmuIsgPiBuYW5qdXVcIDsKK+WkluanmCA+IHRvemFtYVwgOwor5aSn5p+EID4gb29nYXJhXCA7Civoq7jlvaYgPiBzaG9nZW5cIDsKK+mWk+mamyA+IG1hZ2l3YVwgOwor5aSp5p2vID4gdGVucGFpXCA7CivlpKnmnaUgPiB0ZW5yYWlcIDsKK+Wkp+aemiA+IHRhaW1haVwgOwor54Sh6IGKID4gYnVyeW91XCA7Civplbfpp4YgPiBjaG91a3VcIDsKK+Wni+WOnyA+IHNoaWdlblwgOwor5pWj5rC0ID4gc2Fuc3VpXCA7CivlpKfmna8gPiB0YWloYWlcIDsKK+mbsuavjSA+IGtpcmFyYVwgOwor5pep5a+dID4gaGF5YW5lXCA7Civopb/osqIgPiBzYWlnb25cIDsKK+aVmea0viA+IGt5b3VoYVwgOwor5pON57imID4gc291anV1XCA7Civnt4/nm6MgPiBzb3VrYW5cIDsKK+Wkp+acrCA+IHRhaWhvblwgOwor54ax5rmvID4gbmV0dG91XCA7CivlpKfmnJsgPiB0YWltb3VcIDsKK+irluaLoCA+IHJvbmt5b1wgOwor5pel5bCEID4gbmlzc2hhXCA7CivntK/oqIggPiBydWlrZWlcIDsKK+iou+eWjyA+IGNodXVzb1wgOwor5aWJ5oudID4gaG91aGFpXCA7CivlpKfmm7ggPiB0YWlzaG9cIDsKK+aXp+WutiA+IGt5dXVrYVwgOwor54mn5aC0ID4gbWFraWJhXCA7CivoqIjnrpcgPiBrZWlzYW5cIDsKK+aXi+W7uyA+IHNlbmthaVwgOwor6Zmk57GNID4gam9zZWtpXCA7Civlp4vli5UgPiBzaGlkb3VcIDsKK+e0sOimiyA+IHNhaWtlblwgOwor57mK5p2hID4gc2Vuam91XCA7Civns7jpgYogPiBpdG95dXVcIDsKK+aXp+WtlyA+IGt5dXVqaVwgOwor5aSn5pqRID4gdGFpc2hvXCA7Civpm6PmsrsgPiBuYW5jaGlcIDsKK+WiqOeXlSA+IGJva2tvblwgOwor54WZ56GdID4gZW5zaG91XCA7CivplqLpjbUgPiBrYW5rZW5cIDsKK+irluaIpiA+IHJvbnNlblwgOwor57K+6ZyKID4gc2VpcmVpXCA7Civml6XlrZAgPiBuaXNzaGlcIDsKK+WlieaItCA+IGhvdXRhaVwgOwor5aSp5piOID4gdGVubWVpXCA7Civln7roqr8gPiBraWNob3VcIDsKK+e5geaghCA+IGhhbicnZWlcIDsKK+Wik+efsyA+IGJvc2VraVwgOwor6KaL6KejID4ga2Vua2FpXCA7CivmlL7mvKsgPiBob3VtYW5cIDsKK+WlveWuiCA+IGtvdXNodVwgOwor6ZuM5rudID4gbWVkYWtpXCA7Civlp6bkurogPiBrYW5qaW5cIDsKK+WiqOeUuyA+IGJva3VnYVwgOwor6Zuj5rCRID4gbmFubWluXCA7Civml6nlqZogPiBzb3Vrb25cIDsKK+e0oOiqrSA+IHNvZG9rdVwgOwor6KaB6KumID4geW91dGVpXCA7CivlpKnmlocgPiB0ZW5tb25cIDsKK+Wkp+aWuSA+IG9va2F0YVwgOwor6KaB6KuLID4geW91c2VpXCA7CivmlK/ngrkgPiBzaGl0ZW5cIDsKK+imgeirhyA+IHlvdWRhblwgOwor5paH5piOID4gYnVubWVpXCA7CivpnZLlubQgPiBzZWluZW5cIDsKK+mWi+mWiSA+IGthaWhlaVwgOwor6Kqe5qC8ID4gZ29rYWt1XCA7Civplbfpn7MgPiBjaG91b25cIDsKK+aXp+WppiA+IGt5dXVmdVwgOwor6ZaL6ZaAID4ga2FpbW9uXCA7Civml7HlpKkgPiBrYW50ZW5cIDsKK+aQrOmAgSA+IGhhbnNvdVwgOwor6Z6P5Zu6ID4ga3lvdWtvXCA7Civmlofml6YgPiBidW50YW5cIDsKK+isueWVkyA+IGtpbmtlaVwgOwor57e054KtID4gcmVudGFuXCA7CivlpKfmlbAgPiB0YWlzdXVcIDsKK+ino+e6nCA+IGthaXJhblwgOwor6ZaJ6ZaAID4gaGVpbW9uXCA7CivorbDkuoYgPiBnaXJ5b3VcIDsKK+WlpeW3niA+IG91c2h1dVwgOwor5pWX5q6LID4gaGFpemFuXCA7Civlopfnm4ogPiB6b3Vla2lcIDsKK+Wkp+aVlyA+IHRhaWhhaVwgOwor6Kyb5aOHID4ga291ZGFuXCA7CivlpJbmnaUgPiBnYWlyYWlcIDsKK+mXh+i3ryA+IHlhbWlqaVwgOwor6Ku45bO2ID4gc2hvdG91XCA7CivlpJbmnZAgPiBnYWl6YWlcIDsKK+Wkp+aUvyA+IHRhaXNlaVwgOwor5aWz5bCGID4gam9zaG91XCA7CivploDpmaIgPiBtb24nJ2luXCA7CivntI3osYYgPiBuYXR0b3VcIDsKK+mWgOmZkCA+IG1vbmdlblwgOwor5pa55b2iID4gaG91a2VpXCA7CivpmaXnqb0gPiBrYW5zZWlcIDsKK+mciuaZuiA+IHJlaWNoaVwgOwor5paH5pS/ID4gYnVuc2VpXCA7CivlpbPlrpggPiBueW9rYW5cIDsKK+aQrei8iSA+IHRvdXNhaVwgOwor54Sh57WmID4gbXVreXV1XCA7Civml6nlpKkgPiBzb3V0ZW5cIDsKK+aXqeWkpyA+IHNvdWRhaVwgOwor6Kyb5aCCID4ga291ZG91XCA7CivopoHopqcgPiB5b3VyYW5cIDsKK+mdkuW1kCA+IHNlaXJhblwgOwor6Zub5q61ID4gc3V1ZGFuXCA7CivpnaLlrZAgPiBtZW50c3VcIDsKK+isueWRiCA+IGtpbnRlaVwgOwor5pWw5p6aID4gc3V1bWFpXCA7Civpm6jmqIsgPiBhbWFkb2lcIDsKK+aXp+WkqyA+IGt5dXVmdVwgOwor5pen5aSiID4ga3l1dW11XCA7Civpm4TmuL4gPiB5dXVrb25cIDsKK+e5geaYjCA+IGhhbmpvdVwgOwor5pS+5rWqID4gaG91cm91XCA7CivntprnqL8gPiB6b2trb3VcIDsKK+mbkeaykyA+IHphdHRvdVwgOwor6KSH6Z+zID4gZnVrdW9uXCA7CivmmI7lkJsgPiBtZWlrdW5cIDsKK+aXrOWgsSA+IGp1bnBvdVwgOwor6Zm655u4ID4ga2Vuc291XCA7CivnhKHnsr4gPiBidXNob3VcIDsKK+itpuS5lyA+IGtlaWpvdVwgOwor6Ky55Y6zID4ga2luZ2VuXCA7CivnhLbnqIsgPiBzYWhvZG9cIDsKK+eJueWLmSA+IHRva3VtdVwgOwor54mp5ZOBID4gYnVwcGluXCA7CivorabkuJYgPiBrZWlzZWlcIDsKK+Wil+eUoyA+IHpvdXNhblwgOwor5pCN6YeRID4gc29ua2luXCA7CivpnZLlsbEgPiBzZWl6YW5cIDsKK+eJueWKuSA+IHRva2tvdVwgOwor6Ku45a2QID4gc2hvc2hpXCA7Civnib3liLYgPiBrZW5zZWlcIDsKK+WlveWkqSA+IGtvdXRlblwgOwor54m55YqfID4gdG9ra291XCA7CivlpInmm7QgPiBoZW5rb3VcIDsKK+mVt+mWkSA+IG5vZG9rYVwgOwor6Kqe5pePID4gZ296b2t1XCA7Civoq5blvIEgPiByb25iZW5cIDsKK+aXpeWgsSA+IG5pcHBvdVwgOwor6ZaA6ZGRID4gbW9ua2FuXCA7CivlpKfmjJkgPiB0YWlreW9cIDsKK+WgleiQvSA+IGRhcmFrdVwgOwor6Zai6YCjID4ga2FucmVuXCA7Civnha7niakgPiBuaW1vbm9cIDsKK+aXheWvnSA+IHRhYmluZVwgOwor5auM44CFID4gaXlhaXlhXCA7CivmlL7msLQgPiBob3VzdWlcIDsKK+aYh+WPmSA+IHNob3Vqb1wgOwor57W557O4ID4ga2Vuc2hpXCA7CivpmY3nrYkgPiBrb3V0b3VcIDsKK+mZs+eariA+IGNoaW5waVwgOwor5pW05paJID4gc2Vpc2VpXCA7CivmlbTmlbAgPiBzZWlzdXVcIDsKK+Wkp+aKtSA+IHRhaXRlaVwgOwor57Sr6JitID4gc2hpcmFuXCA7CivplovpioAgPiBrYWlnaW5cIDsKK+eEoeetliA+IG11c2FrdVwgOwor6Kym5ZKzID4ga2VpZ2FpXCA7CivlpqXljZQgPiBkYWt5b3VcIDsKK+aWjuaIkiA+IHNhaWthaVwgOwor5aSp5omNID4gdGVuc2FpXCA7CivmnKvjgIUgPiBzdWV6dWVcIDsKK+WlieW5oyA+IGhvdWhlaVwgOwor5aSn5oqAID4gb293YXphXCA7Civnsr7pjKwgPiBzZWlyZW5cIDsKK+aXp+WcnyA+IGt5dXVkb1wgOwor6Zu75patID4gZGVuZGFuXCA7CivpnLDlvL4gPiBzYW5kYW5cIDsKK+aVmeahiCA+IGt5b3VhblwgOwor5aSp5oiQID4gdGVuc2VpXCA7CivnuYrmjIcgPiBzZW5zaGlcIDsKK+WmmeWRsyA+IG15b3VtaVwgOwor6Zu75paHID4gZGVuYnVuXCA7CivlpKfmiKYgPiB0YWlzZW5cIDsKK+iruOWniSA+IHNob3NoaVwgOwor6Kej562UID4ga2FpdG91XCA7CivmmI7liJ0gPiBtZWlzaG9cIDsKK+e1nue9qiA+IGtvdXphaVwgOwor5aSn5oiQID4gdGFpc2VpXCA7CivnhKHnqq4gPiBtdWt5dXVcIDsKK+aWh+aJjSA+IGJ1bnNhaVwgOwor5pio5LuKID4gc2Fra29uXCA7Civnsr7pioUgPiBzZWlkb3VcIDsKK+WkieaVsCA+IGhlbnN1dVwgOwor57Wo57eeID4ganV1dGFuXCA7Civmlrnlr7ggPiBob3VzdW5cIDsKK+iqk+aWhyA+IHNlaW1vblwgOwor5aSJ5pS5ID4gaGVua2FpXCA7CivmlLnmraMgPiBrYWlzZWlcIDsKK+e5iuaJiyA+IHNlbnNodVwgOwor5aSn5oW2ID4gdGFpa2VpXCA7Civpm7bmlZcgPiByZWloYWlcIDsKK+mWk+mBkyA+IGthbmRvdVwgOwor6KO96Zm2ID4gc2VpdG91XCA7Civmlq3ltJYgPiBkYW5nYWlcIDsKK+ilr+ihoyA+IHNoaW4nJ2lcIDsKK+WlpeWmmSA+IG91bXlvdVwgOwor57eP54K5ID4gc291dGVuXCA7CivmlL/mqKkgPiBzZWlrZW5cIDsKK+mbquaZryA+IHNla2tlaVwgOwor5pON55+tID4gc291dGFuXCA7CivntLDoj4wgPiBzYWlraW5cIDsKK+aVo+aWhyA+IHNhbmJ1blwgOwor5aSp5oG1ID4gdGVua2VpXCA7CivmlaPmlaMgPiBzYW56YW5cIDsKK+WkqeaBqSA+IHRlbicnb25cIDsKK+Wkp+aCoyA+IHRhaWthblwgOwor5pat5bGkID4gZGFuc291XCA7CivlnJ/pvo0gPiBtb2d1cmFcIDsKK+e4puaWrSA+IGp1dWRhblwgOwor5aOw5pybID4gc2VpYm91XCA7CivorJrlj7cgPiBzaGlnb3VcIDsKK+WkqeaApyA+IHRlbnNlaVwgOwor6Z2S5aSpID4gc2VpdGVuXCA7Civpm7vmjqIgPiBkZW50YW5cIDsKK+ino+emgSA+IGthaWtpblwgOwor5aSJ5o+bID4gaGVua2FuXCA7CivmmI/lgJIgPiBrb250b3VcIDsKK+acl+OAhSA+IHJvdXJvdVwgOwor6Kq/5bqmID4gY2hvdWRvXCA7CivlpbPlm5ogPiBqb3NodXVcIDsKK+Wkq+W9uSA+IGJ1eWFrdVwgOwor6ZmE56WoID4gZnVoeW91XCA7CivmlrDlrZcgPiBzaGluamlcIDsKK+aSmuezuCA+IG5lbnNoaVwgOwor5aSn5b+XID4gdGFpc2hpXCA7Civmlq3lrpogPiBkYW50ZWlcIDsKK+irluWumiA+IHJvbnRlaVwgOwor57KJ6ZuqID4ga295dWtpXCA7Civnsr7pgbggPiBzZWlzZW5cIDsKK+WhteeVjCA+IGppbmthaVwgOwor6ZuF5qW9ID4gZ2FnYWt1XCA7CivpnIrmhJ8gPiByZWlrYW5cIDsKK+aQuuihjCA+IGtlaWtvdVwgOwor6KuW5a2fID4gcm9ubW91XCA7Civml6XlkowgPiBoaXlvcmlcIDsKK+e2sueKtiA+IG1vdWpvdVwgOwor6KqY5ouQID4geXV1a2FpXCA7Civlo7DmmI4gPiBzZWltZWlcIDsKK+Wkp+W9oiA+IG9vZ3lvdVwgOwor6Zuj5paHID4gbmFuYnVuXCA7Civoq6flo7AgPiBrYWlzZWlcIDsKK+exs+mjryA+IGJlaWhhblwgOwor57ay54mIID4gYW1paGFuXCA7Civlo7LmlocgPiBiYWlidW5cIDsKK+aXpeWQkSA+IGhpbmF0YVwgOwor57K+6L6yID4gc2Vpbm91XCA7CivmlrDlqaYgPiBzaGlucHVcIDsKK+WlquWbniA+IGRha2thaVwgOwor54Gr6LazID4gaGlhc2hpXCA7CivnhKbnnIkgPiBzaG91YmlcIDsKK+aUvuagoSA+IGhvdWtvdVwgOwor6Ziy56m6ID4gYm91a3V1XCA7CivlpKnlupUgPiB0ZW50ZWlcIDsKK+WkquW5syA+IHRhaWhlaVwgOwor6Kqt5b6MID4gZG9rdWdvXCA7Civml6Xlj4IgPiBuaXNzYW5cIDsKK+mam+a2ryA+IHNhaWdhaVwgOwor5peL5ZueID4gc2Vua2FpXCA7CivlpaXlnLAgPiBva3VjaGlcIDsKK+WkqeW5syA+IHRlbmJpblwgOwor6ZyK5oCnID4gcmVpc2VpXCA7CivlpKflupcgPiBvb2RhbmFcIDsKK+WkluaCoyA+IGdhaWthblwgOwor6ZuR5pu4ID4gemFzc2hvXCA7CivplqPorbAgPiBrYWt1Z2lcIDsKK+eBsOiynSA+IGhhaWdhaVwgOwor5aSJ5oiQID4gaGVuc2VpXCA7CivlpKnluJ0gPiB0ZW50ZWlcIDsKK+e1jOe3miA+IGtlaXNlblwgOwor54mp5L2TID4gbW90dGFpXCA7CivlpKfluYUgPiBvb2hhYmFcIDsKK+e1jOe2uCA+IGtlaXJpblwgOwor5piO5Li7ID4gbWVpc2h1XCA7CivlpKfluKsgPiBkYWlzaGlcIDsKK+WkqeW3pSA+IHRlbmtvdVwgOwor5aSn5bidID4gdGFpdGVpXCA7Civoo73pjKwgPiBzZWlyZW5cIDsKK+WmhOWLlSA+IG1vdWRvdVwgOwor54SU56GdID4gZW5zaG91XCA7CivntZDntI0gPiB5dWlub3VcIDsKK+aXheWboyA+IHJ5b2RhblwgOwor57mB5b+ZID4gaGFuYm91XCA7CivlnLDpq6ogPiBqaWdhbWlcIDsKK+mYsuempiA+IGJvdWd5b1wgOwor57Sw6IOeID4gc2FpYm91XCA7Civnianku7YgPiBidWtrZW5cIDsKK+WkqeW2riA+IHRlbmtlblwgOwor6KO96Yu8ID4gc2Vpa291XCA7Civml6Xli6QgPiBuaWtraW5cIDsKK+Wkp+W3pyA+IHRhaWtvdVwgOwor54K56Iy2ID4gdGVuY2hhXCA7Civml6zliIogPiBqdW5rYW5cIDsKK+e0heiXuyA+IGtvdXNvdVwgOwor5paw5aWHID4gc2hpbmtpXCA7CivpmbbnhLYgPiB0b3V6ZW5cIDsKK+mVt+mAlCA+IGNob3V0b1wgOwor5pGY6Iq9ID4gdGVraWdhXCA7CivlpInmhYsgPiBoZW50YWlcIDsKK+aPm+mHkSA+IGthbmtpblwgOwor5pWZ5o6IID4ga3lvdWp1XCA7CivmlYXml6cgPiBrb2t5dXVcIDsKK+mbhOadviA+IG9tYXRzdVwgOwor5pep5Ye6ID4gaGF5YWRlXCA7CivlpYflppkgPiBraW15b3VcIDsKK+WkluW+hCA+IGdhaWtlaVwgOwor5aSW5b6BID4gZ2Fpc2VpXCA7CivmjqXpoK0gPiBzZXR0b3VcIDsKK+WkluW9oiA+IGdhaWtlaVwgOwor6KiT54K5ID4ga3VudGVuXCA7Civoq5blpJYgPiByb25nYWlcIDsKK+mZkOeVjCA+IGdlbmthaVwgOwor5aSc5bqXID4geW9taXNlXCA7CivntYPnt5ogPiBnZW5zZW5cIDsKK+irvuWQpiA+IGRha3VoaVwgOwor5o6i6aGMID4gdGFuZGFpXCA7CivnuYrlt6cgPiBzZW5rb3VcIDsKK+eEoeeXmyA+IG11dHN1dVwgOwor54Sh55eFID4gbXVieW91XCA7Civml6XliIogPiBuaWtrYW5cIDsKK+aVkeaPtCA+IGt5dXVlblwgOwor6KuW5aOHID4gcm9uZGFuXCA7Civlo5/mlq0gPiByb3VkYW5cIDsKK+eJh+WIgyA+IGthdGFoYVwgOwor5pW15b2xID4gdGVraWVpXCA7Civntbnnm64gPiBraW51bWVcIDsKK+eFruaxgSA+IG5pamlydVwgOwor6KO+6YeOID4gc3Vzb25vXCA7CivoqLTmsYIgPiBzb2t5dXVcIDsKK+eFieeCrSA+IHJlbnRhblwgOwor6ZyH5bqmID4gc2hpbmRvXCA7CivmlbTlvaIgPiBzZWlrZWlcIDsKK+WknOW4giA+IHlvaWNoaVwgOwor5aKX5ribID4gem91Z2VuXCA7Civpm4Hmm7ggPiBnYW5zaG9cIDsKK+e5g+W4ryA+IGhvdXRhaVwgOwor6Kmp5paHID4gc2hpYnVuXCA7CivlpInmgKcgPiBoZW5zZWlcIDsKK+imi+iBniA+IGtlbm1vblwgOwor5aSn5bGxID4gdGFpemFuXCA7Civoq7jlkJsgPiBzaG9rdW5cIDsKK+irruWVjyA+IHNoaW1vblwgOwor6Zai6KW/ID4ga2Fuc2FpXCA7Civplbfouq8gPiBjaG91a3VcIDsKK+Wkp+WxpCA+IHRhaXNvdVwgOwor6Zyc5a6zID4gc291Z2FpXCA7CivnuITmlocgPiBqb3Vtb25cIDsKK+aXpeWFiSA+IG5pa2tvdVwgOwor5pS55piTID4ga2FpZWtpXCA7Civml6flhIAgPiBreXV1Z2lcIDsKK+Wkp+WwvSA+IGRhaWppblwgOwor5aOu5oyZID4gc291a3lvXCA7CivntIXokYkgPiBtb21pamlcIDsKK+aUvuaVoyA+IGhvdXNhblwgOwor5paO5a6uID4gc2FpZ3V1XCA7CivopovogIUgPiBrZW5zaGFcIDsKK+mbo+aJgCA+IG5hbnNob1wgOwor5pWX5oimID4gaGFpc2VuXCA7Civlparlj5YgPiBkYXNzaHVcIDsKK+aRuOe0oiA+IG1vc2FrdVwgOwor54mA5YegID4gc2hvdWdpXCA7CivlpKrlroggPiB0YWlzaHVcIDsKK+aWieWwhCA+IHNlaXNoYVwgOwor57Wx55ujID4gdG91a2FuXCA7CivlpKflr5IgPiBkYWlrYW5cIDsKK+WdiumWkyA+IGJvdWthblwgOwor5aSr5a2QID4gZnV1c2hpXCA7CivlpKnlroggPiB0ZW5zaHVcIDsKK+WkieW9oiA+IGhlbmtlaVwgOwor57Sg6IKMID4gc3VoYWRhXCA7Civpm4Tmlq0gPiB5dXVkYW5cIDsKK+WkquWtlyA+IGZ1dG9qaVwgOwor5aSq5a2QID4gdGFpc2hpXCA7CivlpKnlrasgPiB0ZW5zb25cIDsKK+mbkeaQjSA+IHphc3NvblwgOwor6ZaR6KuHID4ga2FuZGFuXCA7Civml6XlgpggPiBoaWdhc2FcIDsKK+Wkp+WulyA+IHRhaXNvdVwgOwor5aSp5a2QID4gdGVuc2hpXCA7CivpnanlhbcgPiBrYXdhZ3VcIDsKK+mdouWJjSA+IG1lbnplblwgOwor6ZyK5bOwID4gcmVpaG91XCA7Civpmrfmm7ggPiByZWlzaG9cIDsKK+inkueariA+IGtha3VoaVwgOwor6KyE5YaZID4gdG91c2hhXCA7CivmjqLpmbogPiB0YW5rZW5cIDsKK+imlue3miA+IHNoaXNlblwgOwor5pWw5bm0ID4gc3V1bmVuXCA7Civlpa7lirEgPiBmdW5yZWlcIDsKK+mdnuWKmyA+IGhpcmlraVwgOwor6Kut5ZGKID4geXVrb2t1XCA7CivplovorJsgPiBrYWlrb3VcIDsKK+aWh+WumCA+IGJ1bmthblwgOwor5pes5L2ZID4ganVuJyd5b1wgOwor6ZqO5q61ID4ga2FpZGFuXCA7CivpnZLlj7IgPiBzZWlzaGlcIDsKK+e0meiDjCA+IHNoaWhhaVwgOwor57SF6Iy2ID4ga291Y2hhXCA7CivntLDnt7sgPiBzYWljaGlcIDsKK+Wfi+iUtSA+IG1haXpvdVwgOwor6KO96YCgID4gc2Vpem91XCA7CivpnIrlsbEgPiByZWl6YW5cIDsKK+eGseaIpiA+IG5lc3NlblwgOwor6KOP6ZaAID4gdXJhbW9uXCA7CivlpInlubsgPiBoZW5nZW5cIDsKK+mciuWxiyA+IHRhbWF5YVwgOwor5aKX5rC0ID4gem91c3VpXCA7CivorJvkuK0gPiBrb3VqdXVcIDsKK+mbouaEgSA+IHJpc2h1dVwgOwor6Zu75belID4gZGVua291XCA7CivmlaPlvL4gPiBzYW5kYW5cIDsKK+aWnOWhlCA+IHNoYXRvdVwgOwor5aSa5bCRID4gdGFzaG91XCA7CivlpJzlr5IgPiB5b3phbXVcIDsKK+irt+WIuiA+IGZ1dXNoaVwgOwor5aGp54WuID4gc2hpb25pXCA7CivlpJzlrq4gPiB5b21peWFcIDsKK+mcsuWbvSA+IHJva29rdVwgOwor6Ku45YiDID4gbW9yb2hhXCA7CivlpJblsaQgPiBnYWlzb3VcIDsKK+Wfi+iRrCA+IG1haXNvdVwgOwor57a/5q+bID4gd2F0YWdlXCA7CivntZDnpL4gPiBrZXNzaGFcIDsKK+ikkuiytiA+IGhvdWhlblwgOwor57Sv57SvID4gcnVpcnVpXCA7CivlnLDpnIogPiBjaGlyZWlcIDsKK+mciuWunSA+IHJlaWhvdVwgOwor5Zyw6ZyHID4gamlzaGluXCA7CivloLHnn6UgPiBob3VjaGlcIDsKK+e0sOezuCA+IHNhaXNoaVwgOwor5aSc5a2mID4geWFnYWt1XCA7CivoqqTlr6kgPiBnb3NoaW5cIDsKK+aXpeS8iiA+IG5pY2hpaVwgOwor6Ziy55arID4gYm91ZWtpXCA7Civop5LnlYwgPiBrYWtrYWlcIDsKK+aVj+aEnyA+IGJpbmthblwgOwor5pW35bGFID4gc2hpa2lpXCA7Civngq3ogrogPiB0YW5oYWlcIDsKK+WlveS+iyA+IGtvdXJlaVwgOwor5aWU5ZG9ID4gaG9ubWVpXCA7CivnhZnmr5IgPiBlbmRva3VcIDsKK+iqh+W8tSA+IGtvY2hvdVwgOwor54ax5oSPID4gbmV0c3VpXCA7CivmlrnlkJEgPiBob3Vrb3VcIDsKK+e0q+e0uiA+IHNoaWtvblwgOwor5Zyw6ZqOID4gY2hpa2FpXCA7CivmlZnlvpIgPiBreW91dG9cIDsKK+imj+e0hCA+IGtpeWFrdVwgOwor6Ku45YWEID4gc2hva2VpXCA7Civoq7jlhYMgPiBzaG9nZW5cIDsKK+aXqeS4liA+IHNvdXNlaVwgOwor6ZaL6KWfID4ga2Fpa2luXCA7CivmlpzlnZEgPiBzaGFrb3VcIDsKK+e4q+W3pSA+IGhvdWtvdVwgOwor5peF5Yi4ID4gcnlva2VuXCA7CivpmqPmnZEgPiByaW5zb25cIDsKK+WkqeWkliA+IHRlbmdhaVwgOwor6Kmp5omNID4gc2hpc2FpXCA7CivloKHnpIEgPiBob3Nob3VcIDsKK+WkqeWkiSA+IHRlbnBlblwgOwor6Z2i5YCSID4gbWVuZG91XCA7Civml6XkuK0gPiBoaW5ha2FcIDsKK+WkqeWjsCA+IHRlbnNlaVwgOwor5peL5YWJID4gc2Vua291XCA7CivlpZHlkIggPiBrZWlnb3VcIDsKK+mciuWqkiA+IHJlaWJhaVwgOwor57ea5p2hID4gc2Vuam91XCA7Civop6PniYggPiBrYWloYW5cIDsKK+aVtOWuuSA+IHNlaXlvdVwgOwor5paw5ZGzID4gc2hpbm1pXCA7CivlpKnlo4wgPiB0ZW5qb3VcIDsKK+Wkp+WkiSA+IHRhaWhlblwgOwor57aa5ryUID4gem9rdWVuXCA7Civlo67lv6sgPiBzb3VrYWlcIDsKK+ijuOi6qyA+IHJhc2hpblwgOwor57Gz6YqtID4gYmVpc2VuXCA7CivnhrHmgKcgPiBuZXNzZWlcIDsKK+iqnuWtpiA+IGdvZ2FrdVwgOwor6KqY5bCOID4geXV1ZG91XCA7Civpm5HmhJ8gPiB6YWtrYW5cIDsKK+aWjuWgtCA+IHNhaWpvdVwgOwor6KaB57axID4geW91a291XCA7CivntK/nrpcgPiBydWlzYW5cIDsKK+aWh+WjqyA+IGJ1bnNoaVwgOwor54K557eaID4gdGVuc2VuXCA7CivlpbPkvZMgPiBueW90YWlcIDsKK+e4geaImiA+IGVuc2VraVwgOwor6Z2i5L2TID4gbWVudGVpXCA7Civmloflo4cgPiBidW5kYW5cIDsKK+WlieWRiCA+IGhvdXRlaVwgOwor5pKD56C0ID4gZ2VraWhhXCA7Civnsr7oo70gPiBzZWlzZWlcIDsKK+mdouS8miA+IG1lbmthaVwgOwor57Sh57O4ID4gYm91c2hpXCA7CivlpKnloIIgPiB0ZW5kb3VcIDsKK+mbouW6iiA+IHJpc2hvdVwgOwor5aKT5qiZID4gYm9oeW91XCA7Civpmo7moq8gPiBrYWl0ZWlcIDsKK+WjsuW6lyA+IGJhaXRlblwgOwor6KuW5Y+iID4gcm9uc291XCA7Civoq7jkvq8gPiBzaG9rb3VcIDsKK+mbu+WtkCA+IGRlbnNoaVwgOwor54i15L2NID4gc2hha3VpXCA7Civopb/ntYwgPiBzZWlrZWlcIDsKK+ipqeaDsyA+IHNoaXNvdVwgOwor5aGK54q2ID4ga2Fpam91XCA7CivoprPnm7ggPiBrYW5zb3VcIDsKK+Wls+S6uiA+IG55b25pblwgOwor5pS55oayID4ga2Fpa2VuXCA7CivlpKfln58gPiB0YWlpa2lcIDsKK+e1tueJiCA+IHplcHBhblwgOwor6Zuq5bSpID4gbmFkYXJlXCA7Civoqanmg4UgPiBzaGlqb3VcIDsKK+WkluWnkyA+IGdhaXNlaVwgOwor6KiA5rW3ID4gZ2Vua2FpXCA7Civnhafmn7sgPiBzaG91c2FcIDsKK+aUv+aDhSA+IHNlaWpvdVwgOwor57Sb57SbID4gZnVucHVuXCA7CivlpY/lirkgPiBzb3Vrb3VcIDsKK+WjruW5tCA+IHNvdW5lblwgOwor5aSn5Z6LID4gb29nYXRhXCA7Civlo7DluK8gPiBzZWl0YWlcIDsKK+S4iuOAhSA+IGpvdWpvdVwgOwor5aWP5YqfID4gc291a291XCA7CivntJTntr8gPiBqdW5tZW5cIDsKK+WkqeWcsCA+IHRlbmNoaVwgOwor5aGp5rmvID4gc2hpb3l1XCA7CivoqbLlvZMgPiBnYWl0b3VcIDsKK+WdkemBkyA+IGtvdWRvdVwgOwor5aWz5LitID4gam9jaHV1XCA7Civmv4Dpq5ggPiBnZWtrb3VcIDsKK+aOoumJsSA+IHRhbmtvdVwgOwor57eP5pu4ID4gc291c2hvXCA7CivlpJblpZcgPiBnYWl0b3VcIDsKK+e2v+ajkiA+IG1lbmJvdVwgOwor5pSv5omAID4gc2hpc2hvXCA7CivmjqHpibEgPiBzYWlrb3VcIDsKK+Wkp+WcsCA+IGRhaWNoaVwgOwor57SU57W5ID4ganVua2VuXCA7CivmlL7mgaMgPiBob3VzaGlcIDsKK+aWh+WeiyA+IGJ1bmtlaVwgOwor6ZaA6KGbID4gbW9uJydlaVwgOwor6ZuM5oCnID4gc2hpc2VpXCA7CivkuIfjgIUgPiBtYW5tYW5cIDsKK+WeguiokyA+IHN1aWt1blwgOwor5aSn5ZyPID4gdGFpa2VuXCA7CivpmLLniq8gPiBib3VoYW5cIDsKK+iqjeWumiA+IG5pbnRlaVwgOwor54Gr6JasID4ga2F5YWt1XCA7CivnhrHluK8gPiBuZXR0YWlcIDsKK+e3tOaIkCA+IHJlbnNlaVwgOwor54Sa54GrID4gdGFraWJpXCA7CivmlLnmgqogPiBrYWlha3VcIDsKK+aUvuW/tSA+IGhvdW5lblwgOwor5aWH5YudID4ga2lzaG91XCA7CivpnIrloLQgPiByZWlqb3VcIDsKK+e0lOezuyA+IGp1bmtlaVwgOwor5aWi5L6IID4gc2hhc2hpXCA7CivlpaXkvJ0gPiBva3VkZW5cIDsKK+Whqea1tCA+IGVueW9rdVwgOwor6KuH5ZCIID4gZGFuZ291XCA7CivkuIHjgIUgPiB0b3V0b3VcIDsKK+ipqeW9oiA+IHNoaWtlaVwgOwor6ZyK5Z+fID4gcmVpaWtpXCA7Civoq5bliKQgPiByb25wYW5cIDsKK+eFruaWuSA+IG5pa2F0YVwgOwor54aK5omLID4ga3VtYWRlXCA7CivntJTnsosgPiBqdW5zdWlcIDsKK+iqreWbsyA+IGRva3V6dVwgOwor6ZuE5oCnID4geXV1c2VpXCA7Civngavok4sgPiBoaWJ1dGFcIDsKK+ijhemHmCA+IHNvdXRlaVwgOwor6Kq/5ZKMID4gY2hvdXdhXCA7CivoqILmraMgPiB0ZWlzZWlcIDsKK+eFp+aYoCA+IHNob3VlaVwgOwor6ZuE5b+XID4geXV1c2hpXCA7Civoqr/lkbMgPiBjaG91bWlcIDsKK+aOsui8iSA+IGtlaXNhaVwgOwor5peF5Lq6ID4gcnlvamluXCA7Civml4Xkuq0gPiByeW90ZWlcIDsKK+aPm+iogCA+IGthbmdlblwgOwor57eP5pWwID4gc291c3V1XCA7CivpnIrlnLAgPiByZWljaGlcIDsKK+aPmuiogCA+IHlvdWdlblwgOwor5aSn5ZaqID4gdGFpc291XCA7Civpm5Hlt74gPiB6b3VraW5cIDsKK+WkqeWVkyA+IHRlbmtlaVwgOwor6ZqF5pyoID4gc3VtaWtpXCA7CivlpYnlhawgPiBob3Vrb3VcIDsKK+e3j+aUrCA+IHNvdXJhblwgOwor57eo5oiQID4gaGVuc2VpXCA7Civopqrnlo4gPiBzaGluc29cIDsKK+aWueS+vyA+IGhvdWJlblwgOwor6Zui5a6uID4gcmlreXV1XCA7CivntaLniJsgPiBrZW5yYW5cIDsKK+WkluWcsCA+IGdhaWNoaVwgOwor5aSW5ZyoID4gZ2FpemFpXCA7CivloanmsJcgPiBzaGlva2VcIDsKK+aOpei/kSA+IHNla2tpblwgOwor6ZuE5byBID4geXV1YmVuXCA7CivnsbPou40gPiBiZWlndW5cIDsKK+ipqeW3uyA+IHNoaWthblwgOwor5pS55buDID4ga2FpaGFpXCA7Civpmo7mlbAgPiBrYWlzdXVcIDsKK+WckumVtyA+IGVuY2hvdVwgOwor5Zyw6YeRID4gamlnYW5lXCA7Civnt6nmhaIgPiBrYW5tYW5cIDsKK+mbu+WgsSA+IGRlbnBvdVwgOwor6Kq/5Y2wID4gY2hvdWluXCA7CivpmLLngb0gPiBib3VzYWlcIDsKK+WkqeWRvSA+IHRlbm1laVwgOwor57Gk6YGLID4ga3VqaXVuXCA7Civoo5zotrMgPiBob3Nva3VcIDsKK+a/gemfsyA+IGRha3VvblwgOwor5aSn5ZKMID4geWFtYXRvXCA7Civoq4fliKQgPiBkYW5wYW5cIDsKK+aVtOWcsCA+IHNlaWNoaVwgOwor5aSn5ZG9ID4gdGFpbWVpXCA7Civplbfom4cgPiBjaG91ZGFcIDsKK+aWueS7iiA+IGhvdWtvblwgOwor5o+Q6KiAID4gdGVpZ2VuXCA7CivoqLzmi6AgPiBzaG91a29cIDsKK+e0heeyiSA+IGJlbmlrb1wgOwor5aSq5ZCOID4gdGFpa291XCA7CivlnLDphZIgPiBqaXpha2VcIDsKK+mau+W9sSA+IHNla2llaVwgOwor5aOr5a6YID4gc2hpa2FuXCA7CivlnJ/pjYsgPiBkb25hYmVcIDsKK+WkqeWQjiA+IHRlbmtvdVwgOwor54Gw6ImyID4gaGFpaXJvXCA7CivlpKnlj7AgPiB0ZW5kYWlcIDsKK+ezu+e1sSA+IGtlaXRvdVwgOwor5aSn5ZCbID4gdGFpa3VuXCA7CivpmbDmoLggPiBpbmtha3VcIDsKK+Wkp+WQjCA+IGRhaWRvdVwgOwor6Zq35b6TID4gcmVpanV1XCA7CivntLDnm64gPiBob3NvbWVcIDsKK+aUr+W8gSA+IHNoaWJlblwgOwor5o+Q6KaBID4gdGVpeW91XCA7CivngavoirEgPiBoaWJhbmFcIDsKK+WkieWeiyA+IGhlbmtlaVwgOwor57SU56iuID4ganVuc2h1XCA7Civpm5HlsYUgPiB6YWtreW9cIDsKK+mZjeawtCA+IGtvdXN1aVwgOwor5pa55LiIID4gaG91am91XCA7Civln4vnt5ogPiBtYWlzZW5cIDsKK+aVsOWbniA+IHN1dWthaVwgOwor5paH5ZCNID4gYnVubWVpXCA7CivlpZXkuJYgPiBla2lzZWlcIDsKK+e3qeaAoCA+IGthbnRhaVwgOwor6Kej5rOVID4ga2FpaG91XCA7CivmlK/lupcgPiBzaGl0ZW5cIDsKK+WfuuefsyA+IGtpc2VraVwgOwor6KO96KKLID4gc2VpdGFpXCA7CivpoLvjgIUgPiBoaW5waW5cIDsKK+aWnOWFiSA+IHNoYWtvdVwgOwor5aWJ5L2TID4gaG91dGFpXCA7CivpmYTms6ggPiBmdWNodXVcIDsKK+aWpeWAmSA+IHNla2tvdVwgOwor6Zai6IGvID4ga2FucmVuXCA7CivlpYnkvLogPiBob3VzaGlcIDsKK+Wkp+WNiiA+IHRhaWhhblwgOwor6KSQ6Je7ID4ga2Fzc291XCA7Civnhb3mg4UgPiBzZW5qb3VcIDsKK+aVteWWtiA+IHRla2llaVwgOwor54Sh5q+SID4gbXVkb2t1XCA7CivlpKfljJkgPiBvb3NhamlcIDsKK+WcqOmDtyA+IHphaWdvdVwgOwor57W25rW3ID4gemVra2FpXCA7Civpm4Tls7AgPiB5dXVob3VcIDsKK+WlieS7lSA+IGhvdXNoaVwgOwor57SN56iOID4gbm91emVpXCA7CivlnJ/ph5wgPiBkb2dhbWFcIDsKK+Wkp+WLoiA+IHRhaXplaVwgOwor5aWP5LiKID4gc291am91XCA7Civmlq3kuqQgPiBkYW5rb3VcIDsKK+e3kuaIpiA+IGNob3NlblwgOwor5pS+5bCEID4gaG91c2hhXCA7CivlpKfli4cgPiB0YWl5dXVcIDsKK+imlueVjCA+IHNoaWthaVwgOwor6KuW5LqJID4gcm9uc291XCA7Civoo7Poo74gPiBtb3N1c29cIDsKK+ippuWwhCA+IHNoaXNoYVwgOwor6Zmk5qC4ID4gam9rYWt1XCA7CivlpKflip8gPiB0YWlrb3VcIDsKK+ino+avkiA+IGdlZG9rdVwgOwor6Kmp5a6XID4gc2hpc291XCA7Civmlofli6IgPiBidW5zZWlcIDsKK+mZsOaapiA+IGlucmVraVwgOwor54Sh5qyyID4gbXV5b2t1XCA7CivlpKrliJ0gPiB0YWlzaG9cIDsKK+aVo+WcqCA+IHNhbnphaVwgOwor54Kt56SmID4gdGFua291XCA7CivngavohJogPiBoaWFzaGlcIDsKK+iqo+WRiiA+IGJ1a29rdVwgOwor5aSp5YiRID4gdGVua2VpXCA7CivlpKnliIYgPiB0ZW5idW5cIDsKK+WjruWkpyA+IHNvdWRhaVwgOwor6KGw6aC9ID4gc3VpdGFpXCA7CivngrnnnZsgPiB0ZW5zZWlcIDsKK+Wkp+WIhiA+IGRhaWJ1blwgOwor5aOu5aOrID4gc291c2hpXCA7CivmlZfloLEgPiBoYWlob3VcIDsKK+WkluWQkSA+IGdhaWtvdVwgOwor5aSn5YiAID4gZGFpdG91XCA7CivmlLvlroggPiBrb3VzaHVcIDsKK+mbkeWpmiA+IHpha2tvblwgOwor5pCN6ICXID4gc29ubW91XCA7CivngrnnnLwgPiB0ZW5nYW5cIDsKK+Wcp+i/qyA+IGFwcGFrdVwgOwor5aSW5Y+yID4gZ2Fpc2hpXCA7CivlpKflh6EgPiBvb3lvc29cIDsKK+a/q+mAoCA+IHJhbnpvdVwgOwor54aU5bKpID4geW91Z2FuXCA7Civpmo/miYAgPiB6dWlzaG9cIDsKK+aUueWumiA+IGthaXRlaVwgOwor6ZuF5a6iID4gZ2FrYWt1XCA7CivntbHmsrsgPiB0b3VjaGlcIDsKK+WkqeWFtSA+IHRlbnBlaVwgOwor6Kaz54K5ID4ga2FudGVuXCA7CivpmqDlv40gPiBpbicnbmluXCA7CivlpKflhbggPiB0YWl0ZW5cIDsKK+mZpOacjSA+IGpvZnVrdVwgOwor5aSn5YWsID4gdGFpa291XCA7CivlpKflhaggPiB0YWl6ZW5cIDsKK+aVtOWQiCA+IHNlaWdvdVwgOwor57K+6IiOID4gc2hvdWphXCA7CivlpKflhYQgPiB0YWlrZWlcIDsKK+ipnuWulyA+IHNoaXNvdVwgOwor5aOw5Z+fID4gc2VpaWtpXCA7Civpm7vlkb0gPiBkZW5tZWlcIDsKK+ijnOiouyA+IGhvY2h1dVwgOwor6KGj6aOfID4gaXNob2t1XCA7CivnhKHmp5ggPiBidXphbWFcIDsKK+aRuOeJjCA+IG1vdXBhaVwgOwor5paH5YW4ID4gYnVudGVuXCA7Civnt5rlvaIgPiBzZW5rZWlcIDsKK+mciuWJoyA+IHJlaWtlblwgOwor5pWw5ZCNID4gc3V1bWVpXCA7Civooajpn7MgPiBoeW91b25cIDsKK+WkluWLpCA+IGdhaWtpblwgOwor6ZyK5YmNID4gcmVpemVuXCA7Civoo5zop5IgPiBob2tha3VcIDsKK+maj+aEnyA+IHp1aWthblwgOwor54Kv55y8ID4ga2VpZ2FuXCA7CivnhanmgrYgPiBoYW5tb25cIDsKK+ioiOaVsCA+IGtlaXN1dVwgOwor5aSc5YeqID4geW9uYWdpXCA7Civpmo/mg7MgPiB6dWlzb3VcIDsKK+mYsuawtCA+IGJvdXN1aVwgOwor5o6o6KuWID4gc3Vpcm9uXCA7CivlpInlkI0gPiBoZW5tZWlcIDsKK+e1puayuSA+IGt5dXV5dVwgOwor6KiA5piOID4gZ2VubWVpXCA7CivlpKnlgJkgPiB0ZW5rb3VcIDsKK+e1gueEiSA+IHNodXVlblwgOwor54ax5Z6LID4gbmVra2VpXCA7Civpm7flkI0gPiByYWltZWlcIDsKK+mbt+WQjCA+IHJhaWRvdVwgOwor6Zyn5LitID4gbXVjaHV1XCA7Civlm5vpnaIgPiBzaGltZW5cIDsKK+ezn+ezoCA+IHNvdWtvdVwgOwor5pWw5Y2DID4gc3V1c2VuXCA7CivmlbDljYEgPiBzdXVqdXVcIDsKK+imgeeUqCA+IHlvdXlvdVwgOwor57aa5pigID4gem9rdWVpXCA7CivpmaTmlqUgPiBqb3Nla2lcIDsKK+mbhOWnvyA+IHl1dXNoaVwgOwor5pS55aeTID4ga2Fpc2VpXCA7CivlpJbliIYgPiBnYWlidW5cIDsKK+eFluaIvyA+IGRhbmJvdVwgOwor5pS/5aSJID4gc2VpaGVuXCA7Civln7TnlJ8gPiBoYW55dXVcIDsKK+WkluWHuiA+IHNvdG9kZVwgOwor6Zuy5ZGRID4gd2FudGFuXCA7CivlpJXliIogPiB5dXVrYW5cIDsKK+eFqeW/mSA+IGhhbmJvdVwgOwor57WQ5rueID4ga2V0dGFpXCA7Civntajmr68gPiBqdXV0YW5cIDsKK+eCieerryA+IHJvYmF0YVwgOwor6ZuR5aCxID4gemFwcG91XCA7Civoqanlo4cgPiBzaGlkYW5cIDsKK+Wkp+S+vyA+IGRhaWJlblwgOwor57Wo5q+bID4ganV1bW91XCA7CivlpKnkvb8gPiB0ZW5zaGlcIDsKK+mYsuatoiA+IGJvdXNoaVwgOwor57Sv54qvID4gcnVpaGFuXCA7CivmjqjoqIggPiBzdWlrZWlcIDsKK+eFp+W/nCA+IHNob3VvdVwgOwor5aSp5L2TID4gdGVudGFpXCA7CivnuKvlkIggPiBob3Vnb3VcIDsKK+mbu+WLlSA+IGRlbmRvdVwgOwor54S25pavID4gc291a291XCA7CivlpKfkvb8gPiB0YWlzaGlcIDsKK+iovOW3piA+IHNob3VzYVwgOwor5Zub6ZqjID4gc2hpcmluXCA7Civpm7vlirkgPiBkZW5rb3VcIDsKK+WkluWFuCA+IGdhaXRlblwgOwor57Sw54mHID4gc2FpaGVuXCA7CivopovnjL8gPiBtaXphcnVcIDsKK+Wkp+S9kyA+IGRhaXRhaVwgOwor5Zub6ZqFID4geW9zdW1pXCA7CivloIXniaIgPiBrZW5yb3VcIDsKK+eBq+e4hCA+IGhpbmF3YVwgOwor5pWm5Y6aID4gdG9ua291XCA7CivmlLnlpIkgPiBrYWloZW5cIDsKK+WkieWLlSA+IGhlbmRvdVwgOwor54Wn5b2xID4gc2hvdWVpXCA7Civpmo/lvpMgPiB6dWlqdXVcIDsKK+mbhOWkpyA+IHl1dWRhaVwgOwor5paH5L6LID4gYnVucmVpXCA7CivpmY3mnb8gPiBrb3ViYW5cIDsKK+Wkp+S8miA+IHRhaWthaVwgOwor6Zuj5ZWPID4gbmFubW9uXCA7CivmlZnllIYgPiBreW91c2FcIDsKK+aOouioqiA+IHRhbmJvdVwgOwor5o276LuiID4gbmVudGVuXCA7CivooZfpoK0gPiBnYWl0b3VcIDsKK+Wkp+S7uyA+IHRhaW5pblwgOwor6ZuE5aOuID4geXV1c291XCA7CivmlofkvZMgPiBidW50YWlcIDsKK+Wkp+S7sCA+IG9vZ3lvdVwgOwor5pWZ5ZOhID4ga3lvdWluXCA7Civlm7PpjLIgPiB6dXJva3VcIDsKK+Wkp+S7oyA+IGRhaWRhaVwgOwor5aSp5LqVID4gdGVuam91XCA7CivmjqXoposgPiBzZWtrZW5cIDsKK+ijj+ilnyA+IHVyYWVyaVwgOwor5Zyf6LazID4gZG9zb2t1XCA7CivlpKfkurogPiBkYWluaW5cIDsKK+aWjuS4uyA+IHNhaXNodVwgOwor6KiT5oiSID4ga3Vua2FpXCA7CivlpJblgrUgPiBnYWlzYWlcIDsKK+aVheWbvSA+IGtva29rdVwgOwor5o6I6LOeID4ganVzaG91XCA7CivoqanlnosgPiBzaGlrZWlcIDsKK+imi+eJqSA+IG1pbW9ub1wgOwor57WM5riIID4ga2VpemFpXCA7Civnt4/luKUgPiBzb3VzdWlcIDsKK+WkqeS4vCA+IHRlbmRvblwgOwor5aSp5Li7ID4gdGVuc2h1XCA7CivlpKfkubEgPiB0YWlyYW5cIDsKK+eCreeUsCA+IHRhbmRlblwgOwor54Wn5bqmID4gc2hvdWRvXCA7CivpmorlvaIgPiB0YWlrZWlcIDsKK+WfjuegpiA+IGpvdXNhaVwgOwor57WC5ryUID4gc2h1dWVuXCA7CivmlofkurogPiBidW5qaW5cIDsKK+iqreS8miA+IGRva2thaVwgOwor5aSn5LmXID4gZGFpam91XCA7Civlo7Llk4EgPiBiYWloaW5cIDsKK+WkqeS4jiA+IHRlbicneW9cIDsKK+WkqeS4iiA+IHRlbmpvdVwgOwor5Z2H6KGhID4ga2lua291XCA7CivmlLvln44gPiBrb3Vqb3VcIDsKK+WcsOisoSA+IGppdXRhaVwgOwor6KaW54K5ID4gc2hpdGVuXCA7CivmkpLmsLQgPiBzYW5zdWlcIDsKK+ijveiMtiA+IHNlaWNoYVwgOwor54Gv57GgID4gdG91cm91XCA7CivoqqTkv6EgPiBnb3NoaW5cIDsKK+mbu+WFiSA+IGRlbmtvdVwgOwor5aSc5Ly9ID4geW90b2dpXCA7CivnuYvkuokgPiBrZWlzb3VcIDsKK+eEoeaalyA+IG11eWFtaVwgOwor6KOB6KixID4gc2Fpa3lvXCA7Civmk4Xmlq0gPiBzZW5kYW5cIDsKK+WkmuS9nCA+IHRhc2FrdVwgOwor54eQ5YWJID4gcmlua291XCA7CivplbfogIUgPiBjaG91amFcIDsKK+aVo+WJpCA+IHNhbnphaVwgOwor5Zyw6KqMID4gY2hpc2hpXCA7Civlo7LlkI0gPiBiYWltZWlcIDsKK+mZveaApyA+IHlvdXNlaVwgOwor5aSi5LitID4gbXVjaHV1XCA7Civpm7flhYkgPiByYWlrb3VcIDsKK+WhiuaguSA+IGthaWtvblwgOwor54Sa5pu4ID4gZnVuc2hvXCA7CivopKrntIUgPiB0YWlrb3VcIDsKK+aRgueUnyA+IHNlc3NlaVwgOwor6Zai56m6ID4ga2Fua3V1XCA7CivnhKHmmI4gPiBtdW15b3VcIDsKK+aVmeWMuiA+IGt5b3VrdVwgOwor57K+57e7ID4gc2VpY2hpXCA7Civnsr7nt7QgPiBzZWlyZW5cIDsKK+WbvemBiyA+IGtva3V1blwgOwor6ZaJ57WMID4gaGVpa2VpXCA7CivmlZnljJYgPiBreW91a2FcIDsKK+e1ueacrCA+IGtlbnBvblwgOwor6KGA6aSFID4ga2VwcGVpXCA7CivlpJbkvJ0gPiBnYWlkZW5cIDsKK+mbu+WBnCA+IGRlbnRlaVwgOwor6aCG44CFID4ganVuanVuXCA7CivmlbDlgKQgPiBzdXVjaGlcIDsKK+mWoueojiA+IGthbnplaVwgOwor5pWZ5YuZID4ga3lvdW11XCA7CivmlbDlgI0gPiBzdXViYWlcIDsKK+eEoeaWmSA+IG11cnlvdVwgOwor5aSc5LitID4geW9uYWthXCA7Civop6PmmI4gPiBrYWltZWlcIDsKK+eEoeaVtSA+IG11dGVraVwgOwor5pWj5YW1ID4gc2FucGVpXCA7CivntYzmsLQgPiBrZWlzdWlcIDsKK+WkluS6uiA+IGdhaWppblwgOwor57SZ54mHID4gc2hpaGVuXCA7CivlpJbkuqQgPiBnYWlrb3VcIDsKK+Wjh+WgtCA+IGRhbmpvdVwgOwor5pWj5YWJID4gc2Fua291XCA7CivmjajouqsgPiBzdXRlbWlcIDsKK+manOWtkCA+IHNob3VqaVwgOwor57K+57SwID4gc2Vpc2FpXCA7CivloZfmlpkgPiB0b3J5b3VcIDsKK+e0oOeEvCA+IHN1eWFraVwgOwor57aZ5oqVID4ga2VpdG91XCA7CivnhZnluZUgPiBlbm1ha3VcIDsKK+WkluS5sSA+IGdhaXJhblwgOwor6ZuR5ZOBID4gemFwcGluXCA7Civop6PmlaMgPiBrYWlzYW5cIDsKK+eyvuezliA+IHNlaXRvdVwgOwor6ZeY54qsID4gdG91a2VuXCA7Civmk7HluqcgPiBrYWt1emFcIDsKK+eyvueyviA+IHNlaXplaVwgOwor6Kej5pS+ID4ga2FpaG91XCA7Civntbbmma8gPiB6ZWtrZWlcIDsKK+ippuWVjyA+IHNoaW1vblwgOwor6Kix5a65ID4ga3lveW91XCA7Civpmo7lsaQgPiBrYWlzb3VcIDsKK+WcsOijgSA+IGNoaXNhaVwgOwor57K+57KLID4gc2Vpc3VpXCA7Civnsr7nsokgPiBzZWlmdW5cIDsKK+aPuuexgyA+IHlvdXJhblwgOwor5o2V6YC4ID4gaG9pdHN1XCA7CivntJvnhLYgPiBmdW56ZW5cIDsKK+aVkeWKqSA+IGt5dXVqb1wgOwor57K+57GzID4gc2VpbWFpXCA7CivmlLnlloQgPiBrYWl6ZW5cIDsKK+WkieS9kyA+IGhlbnRhaVwgOwor5pWs5L2TID4ga2VpdGFpXCA7CivopoHngrkgPiB5b3V0ZW5cIDsKK+Wcp+immiA+IGFra2FrdVwgOwor5pWw5Lq6ID4gc3V1bmluXCA7CivpmbDlvrMgPiBpbnRva3VcIDsKK+aVmeWFtyA+IGt5b3VndVwgOwor54Gr56iuID4gaGlkYW5lXCA7CivngrnngrkgPiB0ZW50ZW5cIDsKK+iomOW4syA+IGtpY2hvdVwgOwor6Kit5a6aID4gc2V0dGVpXCA7CivmjqjolqYgPiBzdWlzZW5cIDsKK+eCjueXhyA+IGVuc2hvdVwgOwor5o6D6KiOID4gc291dG91XCA7CivooYbpmaIgPiBzaHV1aW5cIDsKK+ipqeWQnyA+IHNoaWdpblwgOwor54K554GvID4gdGVudG91XCA7Civng53msJEgPiBqb3VtaW5cIDsKK+ipoOWUsSA+IGVpc2hvdVwgOwor5aSJ5Lq6ID4gaGVuamluXCA7CivntK/muJsgPiBydWlnZW5cIDsKK+exkOijvSA+IHRvdXNlaVwgOwor57ax5bi4ID4ga291am91XCA7Civnsr7nrqEgPiBzZWlrYW5cIDsKK+e0lOeEtiA+IGp1bnplblwgOwor6Ziy5pqRID4gYm91c2hvXCA7Civnsr7nrpcgPiBzZWlzYW5cIDsKK+aVsOS4hyA+IHN1dW1hblwgOwor5Z6C57eaID4gc3Vpc2VuXCA7Civplonnq68gPiBoZWl0YW5cIDsKK+WkieS5sSA+IGhlbnJhblwgOwor6Zai55+lID4ga2FuY2hpXCA7Civoqanlj4sgPiBzaGl5dXVcIDsKK+e1kOaniyA+IGtla2tvdVwgOwor5aOr5YiGID4gc2hpYnVuXCA7CivpmarlvpMgPiBiYWlqdXVcIDsKK+iho+mJoiA+IGloYXRzdVwgOwor5Zub6YeNID4gc2hpanV1XCA7Civmva7pn7MgPiBjaG91b25cIDsKK+iiq+imhiA+IGhpZnVrdVwgOwor5aOw5YSqID4gc2VpeXV1XCA7Civpmbblt6UgPiB0b3Vrb3VcIDsKK+aVo+S8miA+IHNhbmthaVwgOwor5oyH6aCtID4gc2hpdG91XCA7CivmlLnlkI0gPiBrYWltZWlcIDsKK+eCr+eCryA+IGtlaWtlaVwgOwor5pS55Y+3ID4ga2FpZ291XCA7Civoo73nvLYgPiBzZWlrYW5cIDsKK+iqjOS7oyA+IHNoaWRhaVwgOwor6KW/5ry4ID4gc2VpemVuXCA7CivoobDpgIAgPiBzdWl0YWlcIDsKK+aVo+S5sSA+IHNhbnJhblwgOwor6Zmj5b2iID4gamlua2VpXCA7Civngq3ngasgPiBzdW1pYmlcIDsKK+WbveiyuyA+IGtva3VoaVwgOwor5pS/5Yq0ID4gc2Vpcm91XCA7CivlnLDomasgPiBtaW1penVcIDsKK+WjruWBpSA+IHNvdWtlblwgOwor6Kaz5qKFID4ga2FuYmFpXCA7Civlm57pgYogPiBrYWl5dXVcIDsKK+ims+ahnCA+IGthbicnb3VcIDsKK+aUu+WLoiA+IGtvdXNlaVwgOwor6KqM5LiKID4gc2hpam91XCA7CivntLDmsJEgPiBzYWltaW5cIDsKK+WbnumAgSA+IGthaXNvdVwgOwor6KaB5rivID4geW91a291XCA7CivloIXmsJcgPiBrYXRhZ2lcIDsKK+mbhOWLgSA+IHl1dWtlaVwgOwor5Z6C56+EID4gc3VpaGFuXCA7CivnhKHmhb4gPiBtdXlva3VcIDsKK+mZveWtkCA+IHlvdXNoaVwgOwor6Zuj5Lu2ID4gbmFua2VuXCA7CivpmaTluZUgPiBqb21ha3VcIDsKK+e1ouaWhyA+IGtlbmJ1blwgOwor6KiT5bCOID4ga3VuZG91XCA7Civlm5vovrogPiBzaGloZW5cIDsKK+aVl+S6oSA+IGhhaWJvdVwgOwor6Zui5LqsID4gcmlreW91XCA7CivntIXnga8gPiBrb3V0b3VcIDsKK+WjsuS6uiA+IGJhaW5pblwgOwor5pS/5YWaID4gc2VpdG91XCA7CivoqablhpkgPiBzaGlzaGFcIDsKK+a9rumWkyA+IHNoaW9tYVwgOwor6Zui5LmzID4gcmlueXV1XCA7CivmlL7lhY0gPiBob3VtZW5cIDsKK+ijj+iKuCA+IHVyYWdlaVwgOwor5pS+5YWJID4gaG91a291XCA7CivoprPmnJsgPiBrYW5ib3VcIDsKK+Wbnui7oiA+IGthaXRlblwgOwor6KiO5bCLID4gdG91amluXCA7Civoo73ntJkgPiBzZWlzaGlcIDsKK+WgtOaVsCA+IGJha2F6dVwgOwor54Gr55q/ID4gaGl6YXJhXCA7Civnr4bpmrcgPiB0ZW5yZWlcIDsKK+ijveezuCA+IHNlaXNoaVwgOwor6KO957OWID4gc2VpdG91XCA7CivlopflpKcgPiB6b3VkYWlcIDsKK+ilv+a0iyA+IHNlaXlvdVwgOwor57iB5YWIID4gZW5zYWtpXCA7CivntYzmnKggPiBreW91Z2lcIDsKK+WjsuS4iiA+IHVyaWFnZVwgOwor6ZuR5L+zID4gemFwcGFpXCA7Civlm73oqp4gPiBrb2t1Z29cIDsKK+ijveeyiSA+IHNlaWZ1blwgOwor57WM5pu4ID4ga2Vpc2hvXCA7Civnt7Tlip8gPiByZW5rb3VcIDsKK+aUueWFgyA+IGthaWdlblwgOwor5o+b566XID4ga2FuemFuXCA7CivplovnnLwgPiBrYWlnZW5cIDsKK+ihjOmHkSA+IGtvdWtpblwgOwor57KX57KXID4gYXJhYXJhXCA7CivngorniKggPiBzdWlzYW5cIDsKK+a/gOiqniA+IGdla2lnb1wgOwor6KGX6YGTID4ga2FpZG91XCA7CivntKHmr5sgPiBib3Vtb3VcIDsKK+WjruS4gSA+IHNvdXRlaVwgOwor54Sh5b+DID4gbXVzaGluXCA7CivntKvmqoAgPiBzaGl0YW5cIDsKK+eCueawtCA+IHRlbnN1aVwgOwor57iB5YG0ID4gZW5nYXdhXCA7Civoo5znv5IgPiBob3NodXVcIDsKK+mZo+WxiyA+IGppbicneWFcIDsKK+mbkeS7tiA+IHpha2tlblwgOwor5o6D6JWpID4gc291dG91XCA7CivpmLLmiKYgPiBib3VzZW5cIDsKK+e1guacnyA+IHNodXVraVwgOwor6ZuR5Lq6ID4gem91bmluXCA7Civnt7TlhbUgPiByZW5wZWlcIDsKK+Wik+WgtCA+IGhha2FiYVwgOwor5Z6C56S6ID4gc3Vpc2hpXCA7CivmlL/kvZMgPiBzZWl0YWlcIDsKK+mbheS/lyA+IGdhem9rdVwgOwor57SU5rC0ID4ganVuc3VpXCA7Civoqanku5kgPiBzaGlzZW5cIDsKK+aUv+S7pCA+IHNlaXJlaVwgOwor5pS+5Lu7ID4gaG91bmluXCA7Civnsonns6AgPiBrb251a2FcIDsKK+ipqeS6uiA+IHNoaWppblwgOwor5o6o6ICDID4gc3Vpa291XCA7Civpmb3loLEgPiB5b3Vob3VcIDsKK+e3qOWItiA+IGhlbnNlaVwgOwor57SU5q+bID4ganVubW91XCA7Civmi7Ppl5ggPiBrZW50b3VcIDsKK+e0hea2mSA+IGtvdXJ1aVwgOwor5pS/5LqJID4gc2Vpc291XCA7CivntYLmmKAgPiBzaHV1ZWlcIDsKK+e0oOaouCA+IHNvYm9rdVwgOwor5oud6aGUID4gaGFpZ2FuXCA7CivntIXmtbcgPiBrb3VrYWlcIDsKK+mZi+W3tyA+IHJvdWtvdVwgOwor57eY5Y+jID4ga2Fua291XCA7CivnsonnsbMgPiBrb2dvbWVcIDsKK+aOouiBniA+IHRhbmJ1blwgOwor5Zm06aOvID4gZnVucGFuXCA7Civnhb3li5UgPiBzZW5kb3VcIDsKK+e2meWtkCA+IG1hbWFrb1wgOwor57SU5q2jID4ganVuc2VpXCA7Civopofmpa0gPiBoYWd5b3VcIDsKK+mZteWikyA+IHJ5b3Vib1wgOwor57Ch6KOBID4ga2Fuc2FpXCA7CivoqLzljbAgPiBzaG91aW5cIDsKK+ippuS5lyA+IHNoaWpvdVwgOwor6Zqg5Yy/ID4gaW50b2t1XCA7Civopo/moLwgPiBraWtha3VcIDsKK+eBq+eOiSA+IGhpZGFtYVwgOwor6Kiq5ZWPID4gaG91bW9uXCA7Civplbfnm64gPiBuYWdhbWVcIDsKK+aTjeWuiCA+IHNvdXNodVwgOwor57Wx5b6hID4gdG91Z3lvXCA7Civon7vpo58gPiBhcmlrdWlcIDsKK+aQvuayuSA+IHNha3V5dVwgOwor6KG/6KOPID4gZXJpdXJhXCA7CivmjK/otbcgPiBzaGlua2lcIDsKK+e3j+WQiCA+IHNvdWdvdVwgOwor6KOc57WmID4gaG9reXV1XCA7CivmkYLmsI8gPiBzZXNzaGlcIDsKK+ihjOi7jSA+IGtvdWd1blwgOwor6KmV5L6hID4gaHlvdWthXCA7CivploDnlaogPiBtb25iYW5cIDsKK+WgheadkCA+IGtlbnphaVwgOwor5Zuz6KGoID4genVoeW91XCA7CivloIXmnKggPiBrYXRhZ2lcIDsKK+aPtOeUqCA+IGVuJyd5b3VcIDsKK+mYsuW+oSA+IGJvdWd5b1wgOwor57Gz57a/ID4gYmVpbWVuXCA7CivngbDnh7wgPiBrYWlqaW5cIDsKK+eCueaknCA+IHRlbmtlblwgOwor5aG55aOVID4gemFuZ291XCA7CivntIXmr5sgPiBrb3Vtb3VcIDsKK+e3muWIhiA+IHNlbmJ1blwgOwor57eR5YyWID4gcnlva2thXCA7CivpmYvlsYsgPiByb3Vva3VcIDsKK+WcsOiCjCA+IGppaGFkYVwgOwor6Ziy5by+ID4gYm91ZGFuXCA7CivpmZDlrpogPiBnZW50ZWlcIDsKK+ijhee9riA+IHNvdWNoaVwgOwor6ZqO5ZCNID4ga2FpbWVpXCA7CivoqIDlpJYgPiBnZW5nYWlcIDsKK+inkuW6piA+IGtha3Vkb1wgOwor5Z6j54mGID4gZW5zaG91XCA7Civnt4/li6IgPiBzb3V6ZWlcIDsKK+WbnuiokyA+IGthaWt1blwgOwor5aOK5LmxID4ga2FpcmFuXCA7CivntbHluKUgPiB0b3VzdWlcIDsKK+ims+aIpiA+IGthbnNlblwgOwor5o6l57eaID4gc2Vzc2VuXCA7CivntZDmiJAgPiBrZXNzZWlcIDsKK+e0hOasviA+IHlha2thblwgOwor6KGo6KiYID4gaHlvdWtpXCA7CivmkqTlu4MgPiB0ZXBwYWlcIDsKK+mZhOWxniA+IGZ1em9rdVwgOwor5Zug6KWyID4gaW5zaHV1XCA7Civlm57opqcgPiBrYWlyYW5cIDsKK+exs+eyiSA+IGJlaWZ1blwgOwor54Wp5Yq0ID4gaGFucm91XCA7CivloqjliJEgPiBib2trZWlcIDsKK+eEoeWtpiA+IG11Z2FrdVwgOwor6KKr6IacID4gaGltYWt1XCA7Civln47msaAgPiBqb3VjaGlcIDsKK+aPj+egtCA+IGJ5b3VoYVwgOwor5pGY5p6cID4gdGVraWthXCA7Civntbbls7YgPiB6ZXR0b3VcIDsKK+mZsOWaoiA+IGZ1Z3VyaVwgOwor5aOH5LiKID4gZGFuam91XCA7Civoo4/ntIsgPiB1cmFtb25cIDsKK+e0oOactCA+IHNvYm9rdVwgOwor6ZaT54S2ID4ga2FuemVuXCA7CivmirnpppkgPiBtYWtrb3VcIDsKK+aLs+mKgyA+IGtlbmp1dVwgOwor57Sr5paRID4gc2hpaGFuXCA7CivopoHmnJsgPiB5b3Vib3VcIDsKK+ims+aDsyA+IGthbnNvdVwgOwor56+A6YWSID4gc2Vzc2h1XCA7CivopovmlrkgPiBtaWthdGFcIDsKK+e0jeajuiA+IG5vdWthblwgOwor6KOB57irID4gc2FpaG91XCA7CivlmbTploAgPiBmdW5tb25cIDsKK+eCuuabvyA+IGthd2FzZVwgOwor6KGo6KOPID4gaHlvdXJpXCA7Civpmo/liIYgPiB6dWlidW5cIDsKK+e1tuWvviA+IHpldHRhaVwgOwor6ZqP5YemID4genVpc2hvXCA7Civnspfnm64gPiB6YXJhbWVcIDsKK+mZo+WcsCA+IGppbmNoaVwgOwor5ryi6Z+zID4ga2FuJydvblwgOwor5oyH6LyqID4geXViaXdhXCA7CivmjqjnrpcgPiBzdWlzYW5cIDsKK+Wdh+etiSA+IGtpbnRvdVwgOwor54K55pmvID4gdGVua2VpXCA7CivpmZDlpJYgPiBnZW5nYWlcIDsKK+eyieeglSA+IGZ1bnNhaVwgOwor5Z+65pWZID4ga2lreW91XCA7CivpmbDllIcgPiBpbnNoaW5cIDsKK+imgeaXqCA+IHlvdXNoaVwgOwor6KiK5ZWPID4gamlubW9uXCA7CivpmqPkurogPiByaW5qaW5cIDsKK+exs+eqgSA+IG3Ek3RvcnVcIDsKK+e0oOaVtSA+IHN1dGVraVwgOwor5aKX5YiKID4gem91a2FuXCA7CivlopfliIYgPiB6b3VidW5cIDsKK+eyvueFiSA+IHNlaXJlblwgOwor5r2u6LevID4gc2hpb2ppXCA7CivntIXmooUgPiBrb3ViYWlcIDsKK+mZjeWjhyA+IGtvdWRhblwgOwor6KW/5pa5ID4gc2VpaG91XCA7CivooZPoqIggPiBqdWtrZWlcIDsKK+aOoeeulyA+IHNhaXNhblwgOwor57SN5p2vID4gbm91aGFpXCA7CivmvbDotbAgPiBrYWlzb3VcIDsKK+ihhuitsCA+IHNodXVnaVwgOwor6KSS54q2ID4gaG91am91XCA7CivpmLLlr5IgPiBib3VrYW5cIDsKK+mam+S8miA+IHNhaWthaVwgOwor54K55pWwID4gdGVuc3V1XCA7CivntI3mnKwgPiBub3Vob25cIDsKK+aLs+mBkyA+IGtvbmRvdVwgOwor5aKX5YW1ID4gem91aGVpXCA7CivmmI7jgIUgPiBha2Fha2FcIDsKK+mZo+WWtiA+IGppbicnZWlcIDsKK+WdkOekgSA+IHphc2hvdVwgOwor57SZ5pWwID4gc2hpc3V1XCA7Civntpnll6MgPiBrZWlzaGlcIDsKK+e3j+S9kyA+IHNvdXRhaVwgOwor5o+P55S7ID4gYnlvdWdhXCA7CivntJvmk74gPiBmdW5qb3VcIDsKK+eBuOayuyA+IGt5dXVqaVwgOwor57eP5LyaID4gc291a2FpXCA7CivmjqXnqK4gPiBzZXNzaHVcIDsKK+e3j+S7oyA+IHNvdWRhaVwgOwor6ZaA54GvID4gbW9udG91XCA7Civmi6Dph5EgPiBreW9raW5cIDsKK+mWgOeBqyA+IGthZG9iaVwgOwor54WO5YmkID4gc2VuemFpXCA7Civntbblpb0gPiB6ZWtrb3VcIDsKK+eEpuWcnyA+IHNob3Vkb1wgOwor57Sg5o+PID4gc29ieW91XCA7CivntIbmm7IgPiB1a3lva3VcIDsKK+aLnemHkSA+IGhhaWtpblwgOwor6KKx57SXID4gZnVrdXNhXCA7Civpmo/kvLQgPiB6dWloYW5cIDsKK+mZveWFiSA+IHlvdWtvdVwgOwor57WM5bi4ID4ga2Vpam91XCA7Civmj5DnkLQgPiB0ZWlraW5cIDsKK+e1jOW4qyA+IGt5b3VqaVwgOwor6KiY5YWlID4ga2lueXV1XCA7CivlnKjnsbMgPiB6YWliZWlcIDsKK+immuaCnyA+IGtha3Vnb1wgOwor5aKX5L+4ID4gem91aG91XCA7CivooqLnuo8gPiBoYW50ZW5cIDsKK+mWi+a4ryA+IGthaWtvdVwgOwor5aKX5L6/ID4gem91YmluXCA7CivntpzlkIggPiBzb3Vnb3VcIDsKK+mZsOWIuyA+IGlua29rdVwgOwor5ryP6Zu7ID4gcm91ZGVuXCA7CivopJDngq0gPiBrYXR0YW5cIDsKK+majuS5lyA+IGthaWpvdVwgOwor5o6755eSID4gc291eW91XCA7Civngonmo5ogPiByb2RhbmFcIDsKK+ino+WboyA+IGthaWRhblwgOwor5aKD5YaFID4ga2VpZGFpXCA7Civpmo7kuIogPiBrYWlqb3VcIDsKK+mZnuWPmSA+IHNob3Vqb1wgOwor5o6o55+lID4gc3VpY2hpXCA7Civmk77kubEgPiBqb3VyYW5cIDsKK+eBq+awtCA+IGhpbWl6dVwgOwor6KO954mIID4gc2VpaGFuXCA7Civnr6TooYwgPiB0b2trb3VcIDsKK+imgeaJgCA+IHlvdXNob1wgOwor5Zyw56iOID4gY2hpemVpXCA7CivntbnlnLAgPiBraW51amlcIDsKK+iogOWLlSA+IGdlbmRvdVwgOwor57K+5rayID4gc2VpZWtpXCA7CivpmLLlobUgPiBib3VqaW5cIDsKK+aOouefpSA+IHRhbmNoaVwgOwor5aCF5b+XID4ga2Vuc2hpXCA7CivpmLLloZ4gPiBib3VzYWlcIDsKK+WZqOmHjyA+IGtpcnlvdVwgOwor5oyZ6KGMID4ga3lva291XCA7CivngYzmvJEgPiBrYW5nYWlcIDsKK+mYquWkpyA+IGhhbmRhaVwgOwor6KGA6KGMID4ga2Vra291XCA7Civplbfmua8gPiBuYWdheXVcIDsKK+e2muWIiiA+IHpva2thblwgOwor5Zyf56ucID4gbW9ndXJhXCA7CivmvLjov5EgPiB6ZW5raW5cIDsKK+Wcn+eqryA+IGRvZ2FtYVwgOwor6Zmi5YaFID4gaW4nJ25haVwgOwor5aC05aSWID4gam91Z2FpXCA7Civoo73ngq0gPiBzZWl0YW5cIDsKK+Wegua6liA+IHN1aWp1blwgOwor57KJ54q2ID4gZnVuam91XCA7CivnhKHlkYogPiBtdWtva3VcIDsKK+iok+S7pCA+IGt1bnJlaVwgOwor6KaL5b2TID4ga2VudG91XCA7CivntK/lubQgPiBydWluZW5cIDsKK+WbnuiIuSA+IGthaXNlblwgOwor6ZmN5Y+CID4ga291c2FuXCA7CivlnKfnpZ4gPiBhc3NoaW5cIDsKK+exs+eUoyA+IGJlaXNhblwgOwor57WQ5amaID4ga2Vra29uXCA7Civlm57oiKogPiBrYWlrb3VcIDsKK+mWieatoiA+IGhlaXNoaVwgOwor57SN5omAID4gbmFzc2hvXCA7CivmkqTlm54gPiB0ZWtrYWlcIDsKK+exoOebriA+IGthZ29tZVwgOwor57SU5oSbID4ganVuJydhaVwgOwor5oqV6ZmNID4gdG91a291XCA7CivntLrlsYsgPiBrb24nJ3lhXCA7CivmiYvpvLsgPiB0ZWJhbmFcIDsKK+mVt+azoiA+IGNob3VoYVwgOwor5pON5YW4ID4gc291dGVuXCA7CivlnoLmto4gPiB6dWl6ZW5cIDsKK+e0ouW8lSA+IHNha3VpblwgOwor57SU5oOFID4ganVuam91XCA7Civngrnlv4MgPiB0ZW5qaW5cIDsKK+mWouadsSA+IGthbnRvdVwgOwor54WJ5Li5ID4gcmVudGFuXCA7Civntbblk4EgPiB6ZXBwaW5cIDsKK+aOoueVqiA+IHRhbmJhblwgOwor6KiM5LqJID4ga291c291XCA7CivploDmra8gPiBtb25zaGlcIDsKK+a/g+e0uiA+IG5vdWtvblwgOwor57SE5omLID4geWFrdXRlXCA7CivlnLDnm7ggPiBjaGlzb3VcIDsKK+ihsOiAlyA+IHN1aW1vdVwgOwor562G6aCtID4gaGl0dG91XCA7CivmjqHnlKggPiBzYWl5b3VcIDsKK+eBjOawtCA+IGthbnN1aVwgOwor5o2V57ibID4gaG9iYWt1XCA7Civoo4Lnl5QgPiBraXJlamlcIDsKK+eyieeCrSA+IGZ1bnRhblwgOwor6Zmq5LmXID4gYmFpam91XCA7Civlm5vogqIgPiBzaGlzaGlcIDsKK+euoeiyoSA+IGthbnphaVwgOwor6KOF55SyID4gc291a291XCA7Civoo4XnlKggPiBzb3V5b3VcIDsKK+ioiOS4iiA+IGtlaWpvdVwgOwor6ZeY5b+XID4gdG91c2hpXCA7CivlnKfnnYAgPiBhdHN1Z2lcIDsKK+Weo+aguSA+IGtha2luZVwgOwor5Zug57+SID4gaW5zaHV1XCA7CivpnaLjgIUgPiBtZW5tZW5cIDsKK+Wbm+iBliA+IHNoaXNlaVwgOwor6Kej5YmWID4ga2FpYm91XCA7CivntbHlkIggPiB0b3Vnb3VcIDsKK+Wcn+efsyA+IGRvc2VraVwgOwor6ZaL5qKxID4ga2Fpa29uXCA7CivpmYTliYcgPiBmdXNva3VcIDsKK+a9nOihjCA+IHNlbmtvdVwgOwor57SZ5bmjID4gc2hpaGVpXCA7CivopZ/mh5AgPiBraW5rYWlcIDsKK+ino+WHjSA+IGthaXRvdVwgOwor5Zyw55WqID4gY2hpYmFuXCA7CivnhJrliJEgPiBmdW5rZWlcIDsKK+WeguatuyA+IHN1aXNoaVwgOwor57Sw5a2XID4gaG9zb2ppXCA7CivntLDlrZQgPiBzYWlrb3VcIDsKK+WgheWuiCA+IGtlbnNodVwgOwor54Sh5YSfID4gbXVzaG91XCA7CivngavmnKggPiBrYW1va3VcIDsKK+e1guWknCA+IHNodXV5YVwgOwor5Zyw55WMID4gY2hpa2FpXCA7CivplqLmlbAgPiBrYW5zdXVcIDsKK+e1g+WjsCA+IGdlbnNlaVwgOwor6KiA5LiKID4gZ29uam91XCA7CivplovmoKEgPiBrYWlrb3VcIDsKK+aLneisnSA+IGhhaXNoYVwgOwor6ZaT5pyNID4gYWlmdWt1XCA7Civop6PlhZogPiBrYWl0b3VcIDsKK+mWieagoSA+IGhlaWtvdVwgOwor54Sh5YK3ID4gbXVraXp1XCA7Civmj5rmsLQgPiB5b3VzdWlcIDsKK+aSpOWOuyA+IHRla2t5b1wgOwor6KO95rOVID4gc2VpaG91XCA7Civmu57pmaMgPiB0YWlqaW5cIDsKK+eyvuaguSA+IHNlaWtvblwgOwor5Zug57iBID4gaW4nJ25lblwgOwor6KW/5bK4ID4gc2VpZ2FuXCA7CivlmIbpoZggPiB0YW5nYW5cIDsKK+a+seeyiSA+IGRlbnB1blwgOwor57Wx5Yi2ID4gdG91c2VpXCA7CivmjIHolqwgPiBqaXlha3VcIDsKK+Wbnue3miA+IGthaXNlblwgOwor6ZaT5patID4ga2FuZGFuXCA7Civmi53oprMgPiBoYWlrYW5cIDsKK+imgeWusyA+IHlvdWdhaVwgOwor57SZ5bGLID4ga2FtaXlhXCA7CivpmY3ku7sgPiBrb3VuaW5cIDsKK+aLneimiyA+IGhhaWtlblwgOwor6J+g6LieID4gYmFua3lvXCA7CivplpPmlbAgPiBtYWthenVcIDsKK+WbveemgSA+IGtva2tpblwgOwor5oy/57W1ID4gc2FzaGllXCA7CivlnLDnjYQgPiBqaWdva3VcIDsKK+eEoeS8kSA+IG11a3l1dVwgOwor5Z6C5qWKID4gc3VpeW91XCA7CivmjoznkIYgPiBzaG91cmlcIDsKK+e0sOWkpyA+IHNhaWRhaVwgOwor6ZaR5pWjID4ga2Fuc2FuXCA7CivplovmmI4gPiBrYWltZWlcIDsKK+Wcn+eUoyA+IG1peWFnZVwgOwor6Kej5L2TID4ga2FpdGFpXCA7CivmjqXngrkgPiBzZXR0ZW5cIDsKK+WbveekjiA+IGtva3Vzb1wgOwor5ruR6ZmNID4ga2Fra291XCA7CivplqjmiL8gPiBrZWlib3VcIDsKK+mWi+aWuSA+IGthaWhvdVwgOwor56uv6bqXID4gdGFucmVpXCA7CivooYDohr8gPiBjaGl1bWlcIDsKK+ino+S7uyA+IGthaW5pblwgOwor5pa544CFID4gaG91Ym91XCA7CivntbblgJIgPiB6ZXR0b3VcIDsKK+e0meWtkCA+IGthbWlrb1wgOwor54Kt5bGkID4gdGFuc291XCA7CivmkqTlhbUgPiB0ZXBwZWlcIDsKK+e0q+WkliA+IHNoaWdhaVwgOwor57Sv5aKXID4gcnVpem91XCA7CivooYzogIUgPiBneW91amFcIDsKK+aOoeeCuSA+IHNhaXRlblwgOwor5pC65bivID4ga2VpdGFpXCA7CivmjqHngq0gPiBzYWl0YW5cIDsKK+eDiOWjqyA+IHJlc3NoaVwgOwor6ZaL5pS+ID4ga2FpaG91XCA7CivmvKvoq4cgPiBtYW5kYW5cIDsKK+aJi+mnkiA+IHRlZ29tYVwgOwor5aCF5aGBID4ga2VucnVpXCA7CivmiYvpppYgPiB0ZWt1YmlcIDsKK+WgguWhlCA+IGRvdXRvdVwgOwor6ZW35pyfID4gY2hvdWtpXCA7CivloIXln44gPiBrZW5qb3VcIDsKK+eCieW/gyA+IHJvc2hpblwgOwor562G6YuSID4gaGlwcG91XCA7CivloILloIIgPiBkb3Vkb3VcIDsKK+a8q+iogCA+IG1hbmdlblwgOwor5Zue562UID4ga2FpdG91XCA7CivopqrlkowgPiBzaGlud2FcIDsKK+e1jOWPoyA+IGtlaWtvdVwgOwor5Z+O5biCID4gam91c2hpXCA7CivntbbkuqQgPiB6ZWtrb3VcIDsKK+WeguacqCA+IHRhcnVraVwgOwor5aC05YaFID4gam91bmFpXCA7CivmjInohbkgPiBhbnB1a3VcIDsKK+ijnOazqCA+IGhvY2h1dVwgOwor5Zyw54K5ID4gY2hpdGVuXCA7CivmvKLoqakgPiBrYW5zaGlcIDsKK+mXh+WxiyA+IHlhbWl5YVwgOwor57W25LiWID4gemVzc2VpXCA7CivmioDph48gPiBnaXJ5b3VcIDsKK+aJi+mguCA+IHRla3ViaVwgOwor57WE5ZCIID4ga3VtaWFpXCA7CivngonluoogPiByb3Nob3VcIDsKK+aJi+mggyA+IHRlZ29yb1wgOwor6KaL5ZywID4ga2VuY2hpXCA7CivopoHloZ4gPiB5b3VzYWlcIDsKK+iiq+eIhiA+IGhpYmFrdVwgOwor6J+36J6CID4gdG91cm91XCA7CivopoblnJ8gPiBmdWt1ZG9cIDsKK+WfueWcsCA+IGJhaWNoaVwgOwor5r2c6IiqID4gc2Vua291XCA7Civopb/ln58gPiBzZWlpa2lcIDsKK+e1puS7mCA+IGt5dXVmdVwgOwor57Wm5LuVID4ga3l1dWppXCA7Civlm57npLwgPiBrYWlyZWlcIDsKK+aJgOmhmCA+IHNob2dhblwgOwor6ZeY5aOrID4gdG91c2hpXCA7CivntZDlhZogPiBrZXR0b3VcIDsKK+eAleatuyA+IGhpbnNoaVwgOwor57SU5aKXID4ganVuem91XCA7CivplovmiKYgPiBrYWlzZW5cIDsKK+ims+WFiSA+IGthbmtvdVwgOwor6KO95p2QID4gc2VpemFpXCA7Civmupzpo7IgPiByeXV1aW5cIDsKK+ihqOekuiA+IGh5b3VqaVwgOwor6KaB5ZywID4geW91Y2hpXCA7Civoo73mnKwgPiBzZWlob25cIDsKK+eDmeWNsCA+IHJha3VpblwgOwor5omL6ZqbID4gdGVnaXdhXCA7CivmiYvpmpkgPiB0ZXN1a2lcIDsKK+e1jOWFuCA+IGtlaXRlblwgOwor6Kaq5YiGID4gb3lhYnVuXCA7CivntJnlnosgPiBzaGlrZWlcIDsKK+etiei+uiA+IHRvdWhlblwgOwor54K55ZyoID4gdGVuemFpXCA7CivlnLDmup0gPiBjaGlrb3VcIDsKK+e1puS4jiA+IGt5dXV5b1wgOwor54Kt5aG1ID4gdGFuamluXCA7Civlm73nkr0gPiBrb2t1amlcIDsKK+eyl+acjSA+IHNvZnVrdVwgOwor6KGA57WxID4ga2V0dG91XCA7CivngavmgKUgPiBrYWt5dXVcIDsKK+Wfn+WkliA+IGlraWdhaVwgOwor56u/6aCtID4ga2FudG91XCA7CivntLDlkJsgPiBzYWlrdW5cIDsKK+eBr+W9sSA+IGhva2FnZVwgOwor5oqV6LOHID4gdG91c2hpXCA7Civmi5nokZcgPiBzZXRjaG9cIDsKK+ihgOezliA+IGtldHRvdVwgOwor5omL6ZW3ID4gdGVuYWdhXCA7CivngavlvbEgPiBob2thZ2VcIDsKK+aOkua2siA+IGhhaWVraVwgOwor54Kt5Z2RID4gdGFua291XCA7Civpl4flpJwgPiB5YW1peW9cIDsKK+WbveeOiyA+IGtva3VvdVwgOwor57SF5aG1ID4ga291amluXCA7Civopovlj7AgPiBrZW5kYWlcIDsKK+eyieacrCA+IGZ1bnBvblwgOwor6ZW35omTID4gY2hvdWRhXCA7Civopovlj4IgPiBrZW56YW5cIDsKK+eyvuaCjSA+IHNlaWthblwgOwor5ZyP54K5ID4ga2VudGVuXCA7CivngavluoogPiBoaWRva29cIDsKK+ihgOeuoSA+IGtla2thblwgOwor57WM5LydID4ga2VpZGVuXCA7CivmjZXnkIMgPiBob2t5dXVcIDsKK+aIkOmtmiA+IHNlaWd5b1wgOwor6KGo55quID4gaHlvdWhpXCA7CivooYznqIsgPiBrb3V0ZWlcIDsKK+aPmuaPmiA+IHlvdXlvdVwgOwor5Z+O5aSWID4gam91Z2FpXCA7CivmjIfntIsgPiBzaGltb25cIDsKK+aOkuawtCA+IGhhaXN1aVwgOwor5Zu954i2ID4ga29rdWZ1XCA7CivntLDliIYgPiBzYWlidW5cIDsKK+eBveWusyA+IHNhaWdhaVwgOwor6ZaL5bu3ID4ga2FpdGVpXCA7CivlmInovrAgPiBrYXNoaW5cIDsKK+aNleeNsiA+IGhva2FrdVwgOwor5oyB57aaID4gaml6b2t1XCA7CivmurbpipEgPiB5b3VzZW5cIDsKK+imj+WJhyA+IGtpc29rdVwgOwor6ZaJ5bu3ID4gaGVpdGVpXCA7Civmj6HmiYsgPiBha3VzaHVcIDsKK+mWi+W6lyA+IGthaXRlblwgOwor57K+5b2pID4gc2Vpc2FpXCA7Civmj5DmkLogPiB0ZWlrZWlcIDsKK+aJi+mNiyA+IHRlbmFiZVwgOwor5o6D5rW3ID4gc291a2FpXCA7Civnq5zppqwgPiByeXV1bWVcIDsKK+WfjuWhniA+IGpvdXNhaVwgOwor57WM5LiWID4ga2Vpc2VpXCA7CivplovlubMgPiBrYWloZWlcIDsKK+aKl+iogCA+IGtvdWdlblwgOwor56qu6bygID4ga3l1dXNvXCA7CivplonlupcgPiBoZWl0ZW5cIDsKK+WfjuWhgSA+IGpvdXJ1aVwgOwor5ruR6LuKID4ga2Fzc2hhXCA7Civnq6XpoZQgPiBkb3VnYW5cIDsKK+WbnueUnyA+IGthaXNlaVwgOwor5rqA6aGYID4gbWFuZ2FuXCA7Civplovlt7sgPiBrYWlrYW5cIDsKK+ilv+WNlyA+IHNlaW5hblwgOwor5o6i5qScID4gdGFua2VuXCA7CivploDlvJ8gPiBtb250ZWlcIDsKK+aIpumbsiA+IHNlbicndW5cIDsKK+aJi+mJpCA+IHRla2FnaVwgOwor5rm+6aCtID4gd2FudG91XCA7CivntI3lk4EgPiBub3VoaW5cIDsKK+WWp+mokiA+IGtlbnNvdVwgOwor5pCN5a6zID4gc29uZ2FpXCA7CivnsbPmnZAgPiBiZWl6YWlcIDsKK+WfjuWdgCA+IGpvdXNoaVwgOwor5oim6ZqKID4gc2VudGFpXCA7Civmi53ogZ4gPiBoYWlidW5cIDsKK+icmumzpSA+IGhpY2hvdVwgOwor5oim6ZmjID4gc2VuamluXCA7Civnsr7lt6cgPiBzZWlrb3VcIDsKK+eyvuW3oyA+IHNlaXNvdVwgOwor5rqA6Z2iID4gbWFubWVuXCA7CivplpHlsYUgPiBrYW5reW9cIDsKK+ernOmgrSA+IHJ5dXV6dVwgOwor5ruR6LWwID4ga2Fzc291XCA7Civllqvpo68gPiBraXBwYW5cIDsKK+e0ouWFtyA+IHNha3VndVwgOwor6KOP5p2/ID4gdXJhaXRhXCA7CivonabpjKAgPiBlYmlqb3VcIDsKK+eBq+WuhSA+IGthdGFrdVwgOwor5oim6ZeYID4gc2VudG91XCA7CivmiYvphYwgPiB0ZWpha3VcIDsKK+aLmeiAhSA+IHNlc3NoYVwgOwor6ZaL5bGxID4ga2Fpc2FuXCA7CivplbfluqcgPiBjaG91emFcIDsKK+a8ouiLsSA+IGthbicnZWlcIDsKK+mWieWxsSA+IGhlaXphblwgOwor5ZiJ6LOeID4ga2FzaG91XCA7CivlnLDmpJwgPiBjaGlrZW5cIDsKK+mWieWxhSA+IGhlaWt5b1wgOwor6ZaL5bCBID4ga2FpZnV1XCA7CivmkYLlj5YgPiBzZXNzaHVcIDsKK+mWouWkpyA+IGthbmRhaVwgOwor5Zu95ryiID4ga29ra2FuXCA7CivngrnlhYkgPiB0ZW5rb3VcIDsKK+eCreWKtCA+IHRhbnJvdVwgOwor5oq56Iy2ID4gbWF0Y2hhXCA7Civlm57nirYgPiBrYWlqb3VcIDsKK+e0r+S7oyA+IHJ1aWRhaVwgOwor5ouY572uID4ga291Y2hpXCA7CivntJTliIYgPiBqdW5idW5cIDsKK+WdpuaHkCA+IHRhbmthaVwgOwor5Z2H5paJID4ga2luc2VpXCA7CivmuoDplosgPiBtYW5rYWlcIDsKK+Wdh+aVtCA+IGtpbnNlaVwgOwor57Sv5LmXID4gcnVpam91XCA7Civmjqjmlq0gPiBzdWlkYW5cIDsKK+aVo+OAhSA+IHNhbnphblwgOwor5om56KmVID4gaGloeW91XCA7Civmjojmpa0gPiBqdWd5b3VcIDsKK+iejeizhyA+IHl1dXNoaVwgOwor5o6o5pWyID4gc3Vpa291XCA7CivntK/kuJYgPiBydWlzZWlcIDsKK+ihgOebuCA+IGtlc3NvdVwgOwor57KY5oCnID4gbmVuc2VpXCA7CivopIfluqcgPiBmdWt1emFcIDsKK+a/g+a3oSA+IG5vdXRhblwgOwor5o6y5o+aID4ga2VpeW91XCA7CivopovkuosgPiBtaWdvdG9cIDsKK+eyvuWtkCA+IHNlaXNoaVwgOwor5aCC5LiKID4gZG91am91XCA7CivonrPonoIgPiB0b3Vyb3VcIDsKK+aJi+i7vSA+IHRlZ2FydVwgOwor54Gw5aG1ID4gaGFpamluXCA7CivlnKjmoKEgPiB6YWlrb3VcIDsKK+ikpeWppiA+IGpva3VmdVwgOwor5ryV6ImHID4gc291dGVpXCA7CivplbflsYsgPiBuYWdheWFcIDsKK+ihgOeXsCA+IGtldHRhblwgOwor6ZaL5aeLID4ga2Fpc2hpXCA7CivooYbnlJ8gPiBzaHVqb3VcIDsKK+imgeS7tiA+IHlvdWtlblwgOwor6KGA55eVID4ga2Vra29uXCA7Civln5/lhoUgPiBpa2luYWlcIDsKK+mVt+WvvyA+IGNob3VqdVwgOwor6KaB5Lq6ID4geW91amluXCA7CivlnKjmnaUgPiB6YWlyYWlcIDsKK+aMmeeUqCA+IGt5b3lvdVwgOwor6ZW35a62ID4gbmFnYXlhXCA7Civoo4Hmlq0gPiBzYWlkYW5cIDsKK+aKnOiQgyA+IGJhc3N1aVwgOwor57Sb5LqJID4gZnVuc291XCA7CivmiYDovIkgPiBzaG9zYWlcIDsKK+aJi+i2syA+IHRlYXNoaVwgOwor5Zyn5pyNID4gYXBwdWt1XCA7CivntJvkubEgPiBmdW5yYW5cIDsKK+a9sOeYjSA+IGthaXlvdVwgOwor6ZaL5aK+ID4ga2Fpa29uXCA7CivlnLDmlrkgPiBjaGlob3VcIDsKK+aOqOaMmSA+IHN1aWt5b1wgOwor5Zu95q+NID4ga29rdWJvXCA7CivnspLluqYgPiByeXV1ZG9cIDsKK+WcsOaWhyA+IGNoaW1vblwgOwor6KGX54eIID4gZ2FpdG91XCA7CivmuLjprZogPiB5dXVneW9cIDsKK+aKl+iPjCA+IGtvdWtpblwgOwor57SZ5LiKID4gc2hpam91XCA7CivplovloLQgPiBrYWlqb3VcIDsKK+iejeinoyA+IHl1dWthaVwgOwor5Zue5ryVID4ga2Fpc291XCA7CivlnJ/mnKggPiBkb2Jva3VcIDsKK+mWieWgtCA+IGhlaWpvdVwgOwor6KKr5pyNID4gaGlmdWt1XCA7CivllonpoK0gPiBrb3V0b3VcIDsKK+mWkeWcsCA+IGthbmNoaVwgOwor57Gz5oeHID4gYmVpa29uXCA7Civpl5jkuokgPiB0b3Vzb3VcIDsKK+e0jeS8miA+IG5vdWthaVwgOwor6ZaL5Z+OID4ga2Fpam91XCA7CivplqPlk6EgPiBrYWt1aW5cIDsKK+mWgOWkliA+IG1vbmdhaVwgOwor5o265p+TID4gbmFzc2VuXCA7Civooqvmm50gPiBoaWJha3VcIDsKK+aOqOaItCA+IHN1aXRhaVwgOwor5Z+O5YaFID4gam91bmFpXCA7CivnrqHnq68gPiBrYW50YW5cIDsKK+WfjuWFtSA+IGpvdWhlaVwgOwor5ryB6Ii5ID4gZ3lvc2VuXCA7Civpl4flgKQgPiB5YW1pbmVcIDsKK+a8lOe/kiA+IGVuc2h1dVwgOwor5o6l5oimID4gc2Vzc2VuXCA7Civlm57muLggPiBrYWl5dXVcIDsKK+ihl+eBryA+IGdhaXRvdVwgOwor56u26LyqID4ga2VpcmluXCA7CivmjIHnl4UgPiBqaWJ5b3VcIDsKK+mVt+WlsyA+IGNob3Vqb1wgOwor5Zu95qipID4ga29ra2VuXCA7CivntIrkubEgPiBidW5yYW5cIDsKK+mVt+WknCA+IGNob3V5YVwgOwor5oyH55KwID4geXViaXdhXCA7Civmi5nnqL8gPiBzZWtrb3VcIDsKK+Wcn+aWuSA+IGRva2F0YVwgOwor5omT6Ki6ID4gZGFzaGluXCA7CivlloTpnIogPiB6ZW5yZWlcIDsKK+aLneekvCA+IGhhaXJlaVwgOwor5Zub5rW3ID4gc2hpa2FpXCA7CivlnKfmkL4gPiBhc3Nha3VcIDsKK+a6tuinoyA+IHlvdWthaVwgOwor5ryU57m5ID4gZW4nJ2VraVwgOwor6KOc5by3ID4gaG9reW91XCA7CivploDlnLAgPiBtb25jaGlcIDsKK+aLmOemgSA+IGtvdWtpblwgOwor56uL6YyQID4gcmlzc3VpXCA7Civnsr7lmqIgPiBzZWlub3VcIDsKK+WWhOmaoyA+IHplbnJpblwgOwor56yR6KmxID4gc2hvdXdhXCA7CivpjpTpipEgPiB5b3VzZW5cIDsKK+aIpui7iiA+IHNlbnNoYVwgOwor5Z2R5bqVID4ga291dGVpXCA7Civnga/lj7AgPiB0b3VkYWlcIDsKK+eul+eoiyA+IHNhbnRlaVwgOwor5omL6KixID4gdGVtb3RvXCA7CivmuKDprYEgPiBreW9rYWlcIDsKK+ihsOauiyA+IHN1aXphblwgOwor6KGw5q27ID4gc3Vpc2hpXCA7CivnsonlsYsgPiBrb25heWFcIDsKK+WfjuS7oyA+IGpvdWRhaVwgOwor5omA6KuWID4gc2hvcm9uXCA7Civlm5vmsJEgPiBzaGltaW5cIDsKK+Wbo+askiA+IGRhbnJhblwgOwor5rqA6LyJID4gbWFuc2FpXCA7CivmjqXlvoUgPiBzZXR0YWlcIDsKK+a6gOi7iiA+IG1hbnNoYVwgOwor5omA6KmuID4gc2hvc2VuXCA7Civln47kuLsgPiBqb3VzaHVcIDsKK+WcqOaJgCA+IHphaXNob1wgOwor54CR5biDID4gYmFrdWZ1XCA7CivnsbPluJ0gPiBiZWl0ZWlcIDsKK+ezluWIhiA+IHRvdWJ1blwgOwor5pCt5LmXID4gdG91am91XCA7Civllp3ph4cgPiBrYXNzYWlcIDsKK+mWi+WPoyA+IGthaWtvdVwgOwor5rq26J6NID4geW91eXV1XCA7CivngbDliIYgPiBrYWlidW5cIDsKK+WYsue9tSA+IGNob3ViYVwgOwor562L6IWrID4ga2luc2h1XCA7Civplonlj6MgPiBoZWlrb3VcIDsKK+ibrumiqCA+IGJhbnB1dVwgOwor5oeH6aGYID4ga29uZ2FuXCA7CivnrYboh7QgPiBoaXRjaGlcIDsKK+aJgOimiyA+IHNob2tlblwgOwor5omA6KaBID4gc2hveW91XCA7Civlm7Pmn4QgPiB6dWdhcmFcIDsKK+ijheW8viA+IHNvdWRhblwgOwor5oiK6L6wID4gYm9zaGluXCA7CivmvIHntrIgPiBneW9tb3VcIDsKK+WbveaYryA+IGtva3V6ZVwgOwor54Gv5YWJID4gdG91a291XCA7Civns57kvr8gPiBmdW5iZW5cIDsKK+idtOidtiA+IGtvY2hvdVwgOwor5r2u54CsID4gc2hpb3NlXCA7CivplqLkv4IgPiBrYW5rZWlcIDsKK+erpeiyniA+IGRvdXRlaVwgOwor56qB6aKoID4gdG9wcHV1XCA7Civmv4DmmIIgPiBnZWtrb3VcIDsKK+aKmOe3miA+IHNlc3NlblwgOwor54Gr5YWIID4gaG9zYWtpXCA7CivnsbPlsYsgPiBrb21leWFcIDsKK+eBq+WFgyA+IGhpbW90b1wgOwor5Zyw5b2iID4gY2hpa2VpXCA7CivmuoDosqsgPiBtYW5nYW5cIDsKK+ijheW5gCA+IHNvdXRlaVwgOwor5o+65YuVID4geW91ZG91XCA7CivnsKHmmI4gPiBrYW5tZWlcIDsKK+aIr+iplSA+IGdpaHlvdVwgOwor57K+5YukID4gc2Vpa2luXCA7Civmipzns7ggPiBiYXNzaGlcIDsKK+ihgOa4hSA+IGtlc3NlaVwgOwor56m06aasID4gYW5hdW1hXCA7Civnsr7lirEgPiBzZWlyZWlcIDsKK+eBq+WCtyA+IHlha2Vkb1wgOwor5ruF6I+MID4gbWVra2luXCA7CivnrYbogJUgPiBoaWtrb3VcIDsKK+mOruittyA+IGNoaW5nb1wgOwor6Juu6Zq3ID4gYmFucmVpXCA7CivnrYbogIUgPiBoaXNzaGFcIDsKK+aKnOeyiyA+IGJhc3N1aVwgOwor5Zyw5bqVID4gY2hpdGVpXCA7CivlnKjlvbkgPiB6YWlla2lcIDsKK+aJjeiXuyA+IHNhaXNvdVwgOwor5Zyw5bmzID4gY2hpaGVpXCA7Civnsr7liLAgPiBzZWl0b3VcIDsKK+aPm+WWqSA+IGthbicneXVcIDsKK+eyieWhtSA+IGZ1bmppblwgOwor5Zyw5bivID4gY2hpdGFpXCA7Civnr4DngrkgPiBzZXR0ZW5cIDsKK+aOqOWumiA+IHN1aXRlaVwgOwor56ul6KyhID4gZG91eW91XCA7CivllY/poYwgPiBtb25kYWlcIDsKK+mWgOWJjSA+IG1vbnplblwgOwor5Zub5qGBID4geW9rZXRhXCA7CivooYzmroogPiBneW91am9cIDsKK+WdpuWdpiA+IHRhbnRhblwgOwor56m66Z+zID4gc29yYW5lXCA7CivplqLkuI4gPiBrYW4nJ3lvXCA7CivlnKflu7YgPiBhdHN1ZW5cIDsKK+ihsOabvyA+IHN1aXRhaVwgOwor6ZaL5YKsID4ga2Fpc2FpXCA7CivploDlh7ogPiBrYWRvZGVcIDsKK+eyvuWFtSA+IHNlaWhlaVwgOwor5o6h5a+4ID4gc2Fpc3VuXCA7CivplovlgpggPiBrYWlzYW5cIDsKK+aJtue/vCA+IGZ1eW9rdVwgOwor5pCN5LqhID4gc29uYm91XCA7CivploPlhYkgPiBzZW5rb3VcIDsKK+exoOWxhSA+IHJvdWt5b1wgOwor5Z2R5aSWID4ga291Z2FpXCA7Civmh7jou40gPiBrZW5ndW5cIDsKK+m+jemmrCA+IHJ5dXVtZVwgOwor56m66Zu7ID4ga3V1ZGVuXCA7Civlm5vmm7ggPiBzaGlzaG9cIDsKK+aMmeatoiA+IGt5b3NoaVwgOwor6KO95ZOBID4gc2VpaGluXCA7CivnqbrpmpsgPiBrdXVzYWlcIDsKK+WWhOmBkyA+IHplbmRvdVwgOwor5riF6aKoID4gc2VpZnV1XCA7CivnrqHnirYgPiBrYW5qb3VcIDsKK+mNm+mMrCA+IHRhbnJlblwgOwor5Zyw5bGkID4gY2hpc291XCA7CivngavkuK0gPiBrYWNodXVcIDsKK+WbveaKgCA+IGtva3VnaVwgOwor6Yyy6Z+zID4gcm9rdW9uXCA7CivpjZvpi7wgPiB0YW5rb3VcIDsKK+ijgeWumiA+IHNlaXRlaVwgOwor5omA6JS1ID4gc2hvem91XCA7CivplbflhoYgPiBjaG91ZW5cIDsKK+mWi+S8miA+IGthaWthaVwgOwor5ris6Y6WID4gc29rdXNhXCA7CivmvZ/muZYgPiBzZWtpa29cIDsKK+WWiei8qiA+IG5vZG93YVwgOwor5riL6Z2iID4ganV1bWVuXCA7CivplonkvJogPiBoZWlrYWlcIDsKK+WbnuaXiyA+IGthaXNlblwgOwor562G57SZID4gaGlzc2hpXCA7CivmjZXmjYkgPiBob3Nva3VcIDsKK+epuumWqCA+IGt1dWtlaVwgOwor5r2u5rCXID4gc2hpb2tlXCA7Civlm57mlocgPiBrYWlidW5cIDsKK+a8lOebriA+IGVubW9rdVwgOwor56m66ZaTID4ga3V1a2FuXCA7Civlm73mhrIgPiBrb2trZW5cIDsKK+WbnuaVsCA+IGthaXN1dVwgOwor5oqV56i/ID4gdG91a291XCA7Civlm73mhbYgPiBrb2trZWlcIDsKK+aJjeiKuCA+IHNhaWdlaVwgOwor6KSH5YipID4gZnVrdXJpXCA7Civoo4/lo7AgPiB1cmFnb2VcIDsKK+a7nue0jSA+IHRhaW5vdVwgOwor5Zub5pWjID4gc2hpc2FuXCA7CivmuJPplpMgPiBrZWlrYW5cIDsKK+aLoOeCuSA+IGt5b3RlblwgOwor5omL6Iq4ID4gc2h1Z2VpXCA7CivmuKzpiZsgPiBzb2t1ZW5cIDsKK+WcqOWumCA+IHphaWthblwgOwor5Zm054WZID4gZnVuJydlblwgOwor5rue57GzID4gdGFpYmVpXCA7CivmvILnoIIgPiBoeW91c2FcIDsKK+mWgOS6uiA+IG1vbmppblwgOwor562G566XID4gaGlzc2FuXCA7Civlm73mgakgPiBrb2t1b25cIDsKK+aOg+WwhCA+IHNvdXNoYVwgOwor6Y6U6KejID4geW91a2FpXCA7CivnrYbnrZQgPiBoaXR0b3VcIDsKK+aJjeiFlSA+IHNhaXdhblwgOwor5Zuw5oaKID4ga29ucGFpXCA7Civnr4DmsLQgPiBzZXNzdWlcIDsKK+a9hea8kSA+IGthbmdhaVwgOwor562G56uvID4gaGl0dGFuXCA7CivnrZTnpLwgPiB0b3VyZWlcIDsKK+aJi+iFlSA+IHNodXdhblwgOwor5r2c5rC0ID4gc2Vuc3VpXCA7Civmv4DmgJIgPiBnZWtpZG9cIDsKK+aJjeiDvSA+IHNhaW5vdVwgOwor6KOF5aGrID4gc291dGVuXCA7Civmi7Pms5UgPiBrZW5wb3VcIDsKK+a4hemWkSA+IHNlaWthblwgOwor5o6l5ZywID4gc2V0Y2hpXCA7CivpjZvpgKAgPiB0YW56b3VcIDsKK+ernOidpiA+IGlzZWViaVwgOwor5Zyw5aSJID4gY2hpaGVuXCA7CivooYDmoJMgPiBrZXNzZW5cIDsKK+aOkuWkliA+IGhhaWdhaVwgOwor5Zuj5omHID4gdWNoaXdhXCA7CivmiYvogbcgPiB0ZWpva3VcIDsKK+eqk+i+uiA+IG1hZG9iZVwgOwor6KGT5pWwID4ganVzc3V1XCA7CivnsaDln44gPiByb3Vqb3VcIDsKK+a8q+eEtiA+IG1hbnplblwgOwor5rue56m6ID4gdGFpa3V1XCA7Civmt7Hpm6ogPiBtaXl1a2lcIDsKK+WcsOWhiiA+IGNoaWthaVwgOwor5Zue5oimID4ga2Fpc2VuXCA7Civmv4HluqYgPiBkYWt1ZG9cIDsKK+aJi+e/sCA+IHNodWthblwgOwor5Zyo5aSpID4gemFpdGVuXCA7CivooYzml4UgPiBrb3VyeW9cIDsKK+eovemmliA+IGtlaXNodVwgOwor56uc6JmOID4gcnlvdWtvXCA7CivlnKjlpJYgPiB6YWlnYWlcIDsKK+ihsOaFiyA+IHN1aXRhaVwgOwor6KGM5paHID4ga291YnVuXCA7CivooYDmm7ggPiBrZXNzaG9cIDsKK+ijguWcsCA+IGtpcmVqaVwgOwor5Z2R5Y+jID4ga291a291XCA7CivlnLDln58gPiBjaGlpa2lcIDsKK+a4m+mFjSA+IGdlbnBhaVwgOwor56mN6ZuyID4gc2VraXVuXCA7CivmuoDokpkgPiBtYW5tb3VcIDsKK+a8uOa4myA+IHplbmdlblwgOwor5Zue5oOzID4ga2Fpc291XCA7Civmu5HnqbogPiBrYWtrdXVcIDsKK+a3semWkyA+IGZ1a2FtYVwgOwor5ruR56i9ID4ga29ra2VpXCA7CivmvKvmvKsgPiBtYW5tYW5cIDsKK+mMrOmLvCA+IHJlbmtvdVwgOwor6KGA5paRID4ga2VwcGFuXCA7CivnqJrpsKQgPiB3YXJhc2FcIDsKK+a4m+mAgCA+IGdlbnRhaVwgOwor56uv6ImHID4gdGFudGVpXCA7CivmjqXlkLsgPiBzZXBwdW5cIDsKK+aOqOWPgiA+IHN1aXNhblwgOwor5ouY5rOlID4ga291ZGVpXCA7CivnrYvnm64gPiBzdWppbWVcIDsKK+aIpuiJpiA+IHNlbmthblwgOwor6KOc5YmHID4gaG9zb2t1XCA7CivmjajlrZAgPiBzdXRlZ29cIDsKK+WZtOaziSA+IGZ1bnNlblwgOwor56ia6a6OID4gY2hpYXl1XCA7CivonKXonLQgPiB0b2thZ2VcIDsKK+aLneauvyA+IGhhaWRlblwgOwor56ia6a2aID4gY2hpZ3lvXCA7CivlnYfli6IgPiBraW5zZWlcIDsKK+WbveWvjCA+IGtva3VmdVwgOwor5o6h5Y+WID4gc2Fpc2h1XCA7CivlnZHlhoUgPiBrb3VuYWlcIDsKK+WZtOawtCA+IGZ1bnN1aVwgOwor5omL57SZID4gdGVnYW1pXCA7Civnrpfms5UgPiBzYW5wb3VcIDsKK+WbveWtlyA+IGtva3VqaVwgOwor5Zua5b6SID4gc2h1dXRvXCA7CivoobDluaMgPiBzdWloZWlcIDsKK+evhuabuCA+IHRlbnNob1wgOwor56iu6aGeID4gc2h1cnVpXCA7CivmuIXphZIgPiBzZWlzaHVcIDsKK+eyieS9kyA+IGZ1bnRhaVwgOwor5ZyP5aSWID4ga2VuZ2FpXCA7Civoo5zlhJ8gPiBob3Nob3VcIDsKK+WVhumBiyA+IHNob3V1blwgOwor5Zue5buKID4ga2Fpcm91XCA7Civnqbrou6IgPiBrdXV0ZW5cIDsKK+Wdh+WIhiA+IGtpbmJ1blwgOwor5ruF56eBID4gbWVzc2hpXCA7Civnqbrou40gPiBrdXVndW5cIDsKK+epuui7iiA+IGt1dXNoYVwgOwor57KL5Lq6ID4gc3VpamluXCA7CivmiYvnsaAgPiB0ZWthZ29cIDsKK+epuui6qyA+IGthcmFtaVwgOwor5oyH5pWwID4gc2hpc3V1XCA7CivlloTooYwgPiB6ZW5rb3VcIDsKK+mMmumMmiA+IHNvdXNvdVwgOwor5omL57ChID4gc2h1a2FuXCA7CivnrpfmrrUgPiBzYW5kYW5cIDsKK+a4hemBiiA+IHNlaXl1dVwgOwor5Zyw5ZCNID4gY2hpbWVpXCA7CivmuoDohZQgPiBtYW5rb3VcIDsKK+aKq+eAnSA+IGhpcmVraVwgOwor5ouS5q2iID4ga3lvc2hpXCA7CivmiYvnrrEgPiB0ZWJha29cIDsKK+aJi+euoSA+IHRla3VkYVwgOwor562G55SfID4gaGlzc2VpXCA7Civoo5zkv64gPiBob3NodXVcIDsKK+aOpeWGmSA+IHNlc3NoYVwgOwor5Zub5bedID4gc2hpc2VuXCA7CivmiYvnrYsgPiB0ZXN1amlcIDsKK+aJi+etiCA+IHRlaGF6dVwgOwor5oyZ5omLID4ga3lvc2h1XCA7CivnqoHosqsgPiB0b2trYW5cIDsKK+ihoeW5syA+IGtvdWhlaVwgOwor5rqW57iEID4ganVuam91XCA7Civnq7nnuIEgPiB0YWtlZW5cIDsKK+aOkuWNtSA+IGhhaXJhblwgOwor5rmv6IqxID4geXViYW5hXCA7CivmuJvos4cgPiBnZW5zaGlcIDsKK+ihgOaIpiA+IGtlc3NlblwgOwor5oeH6KuLID4ga29uc2VpXCA7Civmh4foq4cgPiBrb25kYW5cIDsKK+aNqOWgtCA+IHN1dGViYVwgOwor5o6h5YWJID4gc2Fpa291XCA7CivlnLDli6IgPiBjaGlzZWlcIDsKK+a5r+iIuSA+IHl1YnVuZVwgOwor562S54q2ID4gdG91am91XCA7CivooYbmhJogPiBzaHV1Z3VcIDsKK+eosumWgCA+IHRvdW1vblwgOwor6KOB5YikID4gc2FpYmFuXCA7Civnq5zog4YgPiByaW5kb3VcIDsKK+aJgOeuoSA+IHNob2thblwgOwor5rex6YOoID4gc2hpbmJ1XCA7CivmiLjnsY0gPiBrb3Nla2lcIDsKK+aOouWBtSA+IHRhbnRlaVwgOwor56+A5pONID4gc2Vzc291XCA7CivooqvlkYogPiBoaWtva3VcIDsKK+a3t+i/tyA+IGtvbm1laVwgOwor5ruF55u4ID4gbWVzc291XCA7Civnq6/nt5ogPiB0YW5zZW5cIDsKK+err+e3kiA+IHRhbmNob1wgOwor5Zyo5YukID4gemFpa2luXCA7CivmvZTmlo4gPiBrZXNzYWlcIDsKK+aIkOiCsiA+IHNlaWlrdVwgOwor6JyI6JqjID4gbXVrYWRlXCA7CivlnKfli50gPiBhc3Nob3VcIDsKK+a1t+m8oCA+IG5hbWFrb1wgOwor5oim57eaID4gc2Vuc2VuXCA7CivmvL/mnpwgPiBzaG91a2FcIDsKK+WbuuWftyA+IGtvc2h1dVwgOwor5o6l5Ly0ID4gc2VwcGFuXCA7Civnq7nnsIAgPiB0YWtlc3VcIDsKK+WZqOalvSA+IGtpZ2FrdVwgOwor5Zyw5YWDID4gamltb3RvXCA7Civmt7fovIkgPiBrb25zYWlcIDsKK+a2sumdoiA+IGVraW1lblwgOwor6JuH6LazID4gZGFzb2t1XCA7Civmu77mu74gPiBrb25rb25cIDsKK+WbveWcnyA+IGtva3Vkb1wgOwor6Jm56ZyTID4ga291Z2VpXCA7CivooYzlubggPiBtaXl1a2lcIDsKK+ihjOW5tCA+IGtvdW5lblwgOwor56m66KuWID4ga3V1cm9uXCA7Civnqbroq4cgPiBrdXVkYW5cIDsKK+a8gea4ryA+IGd5b2tvdVwgOwor5riF6LKnID4gc2VpaGluXCA7CivmiY3nn6UgPiBzYWljaGlcIDsKK+idi+e0mSA+IHJvdXNoaVwgOwor5oSb6bOlID4gYWljaG91XCA7Civom67ooYwgPiBiYW5rb3VcIDsKK+a8j+awtCA+IHJvdXN1aVwgOwor5ZWG6K2wID4gc2hvdWdpXCA7CivooLHmg5EgPiBrb3dha3VcIDsKK+aIr+eskSA+IGdpc2hvdVwgOwor562L54KOID4ga2luJydlblwgOwor5o6S5L6/ID4gaGFpYmVuXCA7Civlm73llrYgPiBrb2t1ZWlcIDsKK+Wbm+WnkyA+IHNoaXNlaVwgOwor5ouu5o2uID4ga2lra3lvXCA7CivmiqvmrbQgPiBoaXJla2lcIDsKK+aNleWbmiA+IGhvc2h1dVwgOwor5Zue5aSpID4ga2FpdGVuXCA7CivmjK/lrZAgPiBmdXJpa29cIDsKK+WZuOaVsCA+IHRvbnN1dVwgOwor5ryB5rOVID4gZ3lvaG91XCA7Civoo4XkuIEgPiBzb3V0ZWlcIDsKK+Wbo+WhiiA+IGRhbmthaVwgOwor5o2n5ZGIID4gaG91dGVpXCA7CivmuJvoobAgPiBnZW5zdWlcIDsKK+WcsOS7oyA+IGNoaWRhaVwgOwor5oim56uvID4gc2VudGFuXCA7Civllqvnt4ogPiBraWtraW5cIDsKK+Wbm+WjsCA+IHNoaXNlaVwgOwor5omL55mWID4gdGVrdXNlXCA7Civmi67mipcgPiBraWtrb3VcIDsKK+mMr+iqpCA+IHNha3Vnb1wgOwor56iO6ZaiID4gemVpa2FuXCA7CivmvIHmsJEgPiBneW9taW5cIDsKK+WcqOS9jyA+IHphaWp1dVwgOwor6JqK6YmkID4ga2FiYXJpXCA7CivmjIflvL4gPiBzaGlkYW5cIDsKK+WbnuWgsSA+IGthaWhvdVwgOwor5Zyw5LiKID4gY2hpam91XCA7CivlnKjku7sgPiB6YWluaW5cIDsKK+Wcp+S8jyA+IGFwcHVrdVwgOwor5r2u5bmyID4gc2hpb2hpXCA7CivmtbfprZogPiBrYWlneW9cIDsKK+WXnOecoCA+IHNoaW1pblwgOwor566X5pWwID4gc2Fuc3V1XCA7CivlnJ/kv7UgPiBkb2h5b3VcIDsKK+WckuWGhSA+IGVuJyduYWlcIDsKK+Wbo+WcsCA+IGRhbmNoaVwgOwor5Zyf5L+XID4gZG96b2t1XCA7Civomorph50gPiBrYWJhcmlcIDsKK+ihhuWvoSA+IHNodXVrYVwgOwor5oqc5q2vID4gYmFzc2hpXCA7Civmva7lt64gPiBjaG91c2FcIDsKK+a/g+WOmiA+IG5vdWtvdVwgOwor5ryi5pu4ID4ga2Fuc2hvXCA7CivmiZPnkIMgPiBkYWt5dXVcIDsKK+m8u+mPoSA+IGJpa3lvdVwgOwor56ym54mSID4gZnVjaG91XCA7CivlnKjkuJYgPiB6YWlzZWlcIDsKK+aOiOS5syA+IGp1bnl1dVwgOwor5rW36amiID4gYXNoaWthXCA7CivmvKvmlocgPiBtYW5idW5cIDsKK+ihqOWcnyA+IGh5b3Vkb1wgOwor5oiQ566XID4gc2Vpc2FuXCA7Civlm73li5kgPiBrb2t1bXVcIDsKK+a2iOmfsyA+IHNob3VvblwgOwor57Ch5Y2YID4ga2FudGFuXCA7CivmiJHnrYkgPiB3YXJlcmFcIDsKK+aMveWbniA+IGJhbmthaVwgOwor5oqY5qq7ID4gc2Vra2FuXCA7CivnqbromZogPiBrdXVreW9cIDsKK+a/gOWLmSA+IGdla2ltdVwgOwor5Zyf5LitID4gZG9jaHV1XCA7CivmiYDnlKggPiBzaG95b3VcIDsKK+aJgOeUoyA+IHNob3NhblwgOwor5ryi5pa5ID4ga2FucG91XCA7Civmt7roposgPiBzZW5rZW5cIDsKK+iejeeCuSA+IHl1dXRlblwgOwor5Zu95YipID4ga29rdXJpXCA7CivmvKLmlocgPiBrYW5idW5cIDsKK+aJi+eOiSA+IHRlZGFtYVwgOwor5ruU5ruUID4gdG91dG91XCA7Civllqrnq6AgPiBtb3Nob3VcIDsKK+aIkOepuiA+IHNlaWt1dVwgOwor5ZqH5oCSID4ga2FrdWRvXCA7Civlm6Plk6EgPiBkYW4nJ2luXCA7CivnrYbms5UgPiBoaXBwb3VcIDsKK+a1t+miqCA+IGthaWZ1dVwgOwor5omL54utID4gdGV6ZW1hXCA7Civlm73lhYkgPiBrb2trb3VcIDsKK+aMh+WwjiA+IHNoaWRvdVwgOwor6by+6YWUID4ga2Fuc3VpXCA7CivpioDpsZcgPiBnaW5yaW5cIDsKK+aEn+mbuyA+IGthbmRlblwgOwor5ZWT6JKZID4ga2VpbW91XCA7CivooYblpJogPiBzaHV1dGFcIDsKK+eojumHkSA+IHplaWtpblwgOwor5oyH5a6aID4gc2hpdGVpXCA7CivmuKnoia8gPiBvbnJ5b3VcIDsKK+WWquelrSA+IHNvdXNhaVwgOwor5oeQ6IOOID4ga2FpdGFpXCA7CivmtbfpnaIgPiBrYWltZW5cIDsKK+m7kum1kCA+IGt1cm9qaVwgOwor57Sv44CFID4gcnVpcnVpXCA7CivmvKvmiY0gPiBtYW56YWlcIDsKK+igj+W6pyA+IGthbml6YVwgOwor6KGw5YuiID4gc3Vpc2VpXCA7CivmvIHmnZEgPiBneW9zb25cIDsKK+a1t+mboyA+IGthaW5hblwgOwor5aCC44CFID4gZG91ZG91XCA7Civlm4Llm4IgPiBnb3Vnb3VcIDsKK+a8geacnyA+IHJ5b3VraVwgOwor56m66I23ID4ga2FyYW5pXCA7CivmirHmk4EgPiBob3V5b3VcIDsKK+mLs+iyqCA+IGNodXVrYVwgOwor6KGA5aGKID4ga2Vra2FpXCA7Civlm5vljYMgPiB5b25zZW5cIDsKK+Wbm+WNgSA+IHlvbmp1dVwgOwor57Ch5L6/ID4ga2FuYmVuXCA7Civlm73kvJogPiBrb2trYWlcIDsKK+euoeW8piA+IGthbmdlblwgOwor5rW36ZiyID4ga2FpYm91XCA7CivllJDoqakgPiB0b3VzaGlcIDsKK+m8u+i8qiA+IGhhbmF3YVwgOwor5Zu95LqkID4ga29ra291XCA7Civlm73kuosgPiBrb2t1amlcIDsKK+a1t+mWoiA+IGthaWthblwgOwor5oqV5pu4ID4gdG91c2hvXCA7CivmtbfploAgPiBrYWltb25cIDsKK+Wbs+S9kyA+IHp1dXRhaVwgOwor566x5bGLID4gaGFrb3lhXCA7Civmu4Xms5UgPiBtZXBwb3VcIDsKK+Wbm+WIhiA+IHNoaWJ1blwgOwor5oq15oqXID4gdGVpa291XCA7Civpkb3lrZQgPiBzYW5rb3VcIDsKK+a/geS4liA+IGRha3VzZVwgOwor54K544CFID4gdGVudGVuXCA7CivpvbLonZUgPiB1c2hva3VcIDsKK+aJi+a8iSA+IHRlc3VraVwgOwor6KGo5YW3ID4gaHlvdWd1XCA7CivpjZvnt7QgPiB0YW5yZW5cIDsKK+ifueW6pyA+IGthbml6YVwgOwor6Jqv6JqTID4gbWltaXp1XCA7CivmurbmtrIgPiB5b3Vla2lcIDsKK+a8geaSiCA+IGd5b3JvdVwgOwor56+A5aWPID4gc2Vzc291XCA7CivllYboiJcgPiBzaG91aG9cIDsKK+mLvOijvSA+IGtvdXNlaVwgOwor5ouQ5bivID4ga2FpdGFpXCA7CivmuJvogJcgPiBnZW5tb3VcIDsKK+err+eJqSA+IGhhbW9ub1wgOwor5oSf6YqYID4ga2FubWVpXCA7CivmiKbniq8gPiBzZW5wYW5cIDsKK+aKseaHkCA+IGhvdWthaVwgOwor6KGM5Y+4ID4gZ3lvdWppXCA7Civmi4XlvZMgPiB0YW50b3VcIDsKK+evieWfjiA+IHRzdWlraVwgOwor56qS57SgID4gY2hpc3NvXCA7Civlm6PkvZMgPiBkYW50YWlcIDsKK+aLoOWuiCA+IGt5b3NodVwgOwor6Yut6KeSID4gZWlrYWt1XCA7Civnp5jpjLIgPiBoaXJva3VcIDsKK+aLm+WutCA+IHNob3VlblwgOwor56eB6ZeYID4gc2hpdG91XCA7CivoobDkuqEgPiBzdWlib3VcIDsKK+ernOeOiyA+IHJ5dXVvdVwgOwor56uv54S2ID4gdGFuemVuXCA7Civlm6PkuqQgPiBkYW5rb3VcIDsKK+WZtOWwhCA+IGZ1bnNoYVwgOwor6KGM5YuVID4ga291ZG91XCA7CivllY/nvaogPiBtb256YWlcIDsKK+aJi+azlSA+IHNodWhvdVwgOwor6bub6Z2SID4gdGFpc2VpXCA7Civmi5nlroggPiBzZXNzaHVcIDsKK+ihsOS4liA+IHN1aXNlaVwgOwor6JuH6IW5ID4gamFiYXJhXCA7CivnrYnmlrkgPiB0b3Vob3VcIDsKK+WRvemhjCA+IG1laWRhaVwgOwor5r2c5ZyoID4gc2VuemFpXCA7CivmhaPooYwgPiBrYW5rb3VcIDsKK+aJi+awtCA+IHRlbWl6dVwgOwor5oq15b2TID4gdGVpdG91XCA7CivmhJvpg7cgPiBhaWt5b3VcIDsKK+eskeawlyA+IHNob3VraVwgOwor5rqd5rigID4ga291a3lvXCA7Civmipfmi5IgPiBrb3VreW9cIDsKK+aIpueBvSA+IHNlbnNhaVwgOwor6YqY6YqYID4gbWVpbWVpXCA7CivmiYvmr6wgPiB0ZW1hcmlcIDsKK+aKmOaKmCA+IG9yaW9yaVwgOwor5rmv546JID4geXVkYW1hXCA7CivmjKvlgrcgPiB6YXNob3VcIDsKK+eul+WumiA+IHNhbnRlaVwgOwor56u25ryUID4ga3lvdWVuXCA7CivmjJnli5UgPiBreW9kb3VcIDsKK+a1gemfsyA+IHJ5dXVvblwgOwor5omL5q61ID4gc2h1ZGFuXCA7CivmiJDniqwgPiBzZWlrZW5cIDsKK+mOrueBqyA+IGNoaW5rYVwgOwor5oqX5oimID4ga291c2VuXCA7Civpu5Lpm7IgPiBrb2t1dW5cIDsKK+aKleaJiyA+IHRvdXNodVwgOwor5rqA54K5ID4gbWFudGVuXCA7CivooYzlhIAgPiBneW91Z2lcIDsKK+mNteebpCA+IGtlbmJhblwgOwor5rWB6ZyyID4gcnl1dXJvXCA7CivmiormjYkgPiBoYXNva3VcIDsKK+aMh+WQkSA+IHNoaWtvdVwgOwor6KGA5YikID4ga2VwcGFuXCA7CivmjIflkI0gPiBzaGltZWlcIDsKK+iXu+mhniA+IHNvdXJ1aVwgOwor5rWB6ZuiID4gcnl1dXJpXCA7CivpipjphZIgPiBtZWlzaHVcIDsKK+a1t+mBkyA+IGthaWRvdVwgOwor6byg6LOKID4gc296b2t1XCA7CivmjJnlhbUgPiBreW9oZWlcIDsKK+a4qeeqgSA+IG9uZG9ydVwgOwor5omL5qmfID4gdGViYXRhXCA7CivpkZHlrpogPiBrYW50ZWlcIDsKK+aMmeWFmiA+IGt5b3RvdVwgOwor5ou35ZWPID4gZ291bW9uXCA7CivmjIfljZcgPiBzaGluYW5cIDsKK+iejeaclyA+IHl1dXJvdVwgOwor6bq66aGeID4gbWVucnVpXCA7CivmuJvnrpcgPiBnZW56YW5cIDsKK+mKhemKrSA+IGRvdXNlblwgOwor56u25rOzID4ga3lvdWVpXCA7CivooYzkvb8gPiBrb3VzaGlcIDsKK+aIuOavjiA+IGtvZ290b1wgOwor6YqF6YmxID4gZG91a291XCA7CivmuJvnrYkgPiBnZW50b3VcIDsKK+aJi+alrSA+IHRld2F6YVwgOwor5ry45aKXID4gemVuem91XCA7Civnpo/pn7MgPiBmdWt1aW5cIDsKK+a6kOaziSA+IGdlbnNlblwgOwor5rW36LuNID4ga2FpZ3VuXCA7CivmtojosrsgPiBzaG91aGlcIDsKK+a6gOa6gCA+IG1hbm1hblwgOwor5rWq6YCfID4gbmFuaXdhXCA7CivpioDpibEgPiBnaW5rb3VcIDsKK+ihjOS6uiA+IGtvdWppblwgOwor5ZWP562UID4gbW9uZG91XCA7CivlkLnps7QgPiBzdWltZWlcIDsKK+ethuaJjSA+IGhpc3NhaVwgOwor6KGM5LqLID4gZ3lvdWppXCA7CivpioDpiLQgPiBnaW5yZWlcIDsKK+a4hee0lCA+IHNlaWp1blwgOwor562G5oimID4gaGlzc2VuXCA7Civnp7voqK0gPiBpc2V0c3VcIDsKK+iZmuiqlSA+IGt5b3RhblwgOwor5oim5rOVID4gc2VucG91XCA7Civmt4voj4wgPiByaW5raW5cIDsKK+a6tuadkCA+IHlvdXphaVwgOwor5rib56iOID4gZ2VuemVpXCA7CivmipflvIEgPiBrb3ViZW5cIDsKK+etluW/nCA+IHNha3VvdVwgOwor56m656m6ID4ga3V1a3V1XCA7Civnq7bmrakgPiBreW91aG9cIDsKK+a4heeyiyA+IHNlaXN1aVwgOwor56eB6YK4ID4gc2hpdGVpXCA7CivpuqrpoZ4gPiBtZW5ydWlcIDsKK+a4qeefsyA+IG9uamFrdVwgOwor6Jma6KiAID4ga3lvZ2VuXCA7Civpu5LpjbUgPiBrb2trZW5cIDsKK+aJi+afhCA+IHRlZ2FyYVwgOwor56eB6YG4ID4gc2hpc2VuXCA7CivmiYvmnrcgPiB0ZWthc2VcIDsKK+a3t+e3miA+IGtvbnNlblwgOwor56eB6YGTID4gc2hpZG91XCA7CivnrYbmhI8gPiBoaXRzdWlcIDsKK+evgOWItiA+IHNlc3NlaVwgOwor56uv5q2jID4gdGFuc2VpXCA7CivmiYvmnK0gPiB0ZWZ1ZGFcIDsKK+a4heeulyA+IHNlaXNhblwgOwor562U5byBID4gdG91YmVuXCA7CivmiYHmoYMgPiBoZW50b3VcIDsKK+a9nOWHvSA+IHNlbmthblwgOwor5rSX6aGUID4gc2VuZ2FuXCA7Civmi53llZMgPiBoYWlrZWlcIDsKK+aIpuatuyA+IHNlbnNoaVwgOwor5omL5pu4ID4gc2h1c2hvXCA7Civmt7fntKEgPiBrb25ib3VcIDsKK+WTgOiqvyA+IGFpY2hvdVwgOwor5rWc6L66ID4gaGFtYWJlXCA7CivmhJ/orJ0gPiBrYW5zaGFcIDsKK+m7kumJmyA+IGtva3VlblwgOwor5omN5pm6ID4gc2FpY2hpXCA7Civlk4HoqZ4gPiBoaW5zaGlcIDsKK+a6gOawtCA+IG1hbnN1aVwgOwor5oi45qOaID4gdG9kYW5hXCA7CivmtIvppKggPiB5b3VrYW5cIDsKK+m8juirhyA+IHRlaWRhblwgOwor5rm/5rCXID4gc2hpa2tlXCA7CivooJXli5UgPiB6ZW5kb3VcIDsKK+aIkea1gSA+IGdhcnl1dVwgOwor5ZWG56eRID4gc2hvdWthXCA7Civmi53lkb0gPiBoYWltZWlcIDsKK+aCqumiqCA+IGFrdWZ1dVwgOwor5rSX6Z2iID4gc2VubWVuXCA7Civmi53lkYggPiBoYWl0ZWlcIDsKK+a9sOS5sSA+IGthaXJhblwgOwor5rSL6aKoID4geW91ZnV1XCA7CivnqbrnoLIgPiBrdXVob3VcIDsKK+a9nOWDjyA+IHNlbnpvdVwgOwor5oSb6KqtID4gYWlkb2t1XCA7CivmiYvml5cgPiB0ZWJhdGFcIDsKK+aEm+iqpiA+IGFpc2hvdVwgOwor5omA5pybID4gc2hvbW91XCA7CivmiYDmnIkgPiBzaG95dXVcIDsKK+m7kumFkiA+IGt1cm9raVwgOwor5omT5pKyID4gZGFib2t1XCA7CivmjIfku6QgPiBzaGlyZWlcIDsKK+eqg+eblyA+IHNldHRvdVwgOwor6YqA6LyqID4gZ2lucmluXCA7CivnpoXploAgPiB6ZW5tb25cIDsKK+aJk+aSgyA+IGRhZ2VraVwgOwor56+A5YC5ID4gc2Vra2VuXCA7Civmib/lvJUgPiBzaG91aW5cIDsKK+evhOS+iyA+IGhhbnJlaVwgOwor6buE6YqFID4ga291ZG91XCA7CivmhI/orZggPiBpc2hpa2lcIDsKK+a0numWgCA+IGRvdW1vblwgOwor56We6aasID4gc2hpbm1lXCA7CivmipXlsIQgPiB0b3VzaGFcIDsKK+euneWPoyA+IGthbmtvdVwgOwor5Zar5rC0ID4ga2lzc3VpXCA7CivlkLjpo7IgPiBreXV1aW5cIDsKK+epuuebriA+IHNvcmFtZVwgOwor5ZOB6KGMID4gaGlua291XCA7Civmua/msLQgPiB5dW1penVcIDsKK+aJgeaXgSA+IGhlbmJvdVwgOwor5oKq6ZyKID4gYWt1cmVpXCA7Civpu4Tph5EgPiBrb2dhbmVcIDsKK+aJi+aRuiA+IHRlc3VyaVwgOwor56iA6JaEID4ga2loYWt1XCA7Civnq4vms5UgPiByaXBwb3VcIDsKK+aMgeS5hSA+IGppa3l1dVwgOwor56+A5LyaID4gc2VjaGllXCA7CivmiJHmrLIgPiBnYXlva3VcIDsKK+a5r+auvyA+IHl1ZG9ub1wgOwor56uv5qCqID4gaGFrYWJ1XCA7Civnr4Dku4sgPiBzZWtrYWlcIDsKK+eyvuOAhSA+IHNlaXplaVwgOwor5ouQ5Y+WID4ga2Fpc2h1XCA7Civnp4HosqEgPiBzaGl6YWlcIDsKK+WQuOmfsyA+IGt5dXVvblwgOwor566h5Yi2ID4ga2Fuc2VpXCA7CivmuafmsLQgPiB5dXVzdWlcIDsKK+idi+aihSA+IHJvdWJhaVwgOwor5ria55WUID4gc2hvaGFuXCA7Civllrbmpa0gPiBlaWd5b3VcIDsKK+a4m+eUoyA+IGdlbnNhblwgOwor6Yu857eaID4ga291c2VuXCA7CivmupbmmJ8gPiBqdW5zZWlcIDsKK+WQiOm0qCA+IGFpZ2Ftb1wgOwor5omL5oyHID4gc2h1c2hpXCA7Civpu4TpgZMgPiBrb3Vkb3VcIDsKK+aJi+aLrSA+IHRlZnVraVwgOwor56u25pigID4ga3lvdWVpXCA7CivlkLnpm6ogPiBmdWJ1a2lcIDsKK+a6uuaEmyA+IGRla2lhaVwgOwor5rmv5qe9ID4geXVidW5lXCA7CivnrYvlrZAgPiBzdWppa29cIDsKK+aEgeiotCA+IHNodXVzb1wgOwor6Jar6aaZID4ga3Vua291XCA7CivpiYTpi7wgPiB0ZWtrb3VcIDsKK+engeirliA+IHNoaXJvblwgOwor5ryi5ZCNID4ga2FubWVpXCA7CivmuZbmsrwgPiBrb3Nob3VcIDsKK+ialee0mSA+IHNhbnNoaVwgOwor6JqV57O4ID4gc2Fuc2hpXCA7CivmgozpoIYgPiB0ZWlqdW5cIDsKK+a0l+mMrCA+IHNlbnJlblwgOwor5rqA5p2vID4gbWFucGFpXCA7CivolqzppIwgPiB5YWt1amlcIDsKK+mNvOayuyA+IHNoaW5qaVwgOwor6YmE6YmxID4gdGVra291XCA7Civnpo/pgYsgPiBmdWt1dW5cIDsKK+aKvOWPjiA+IG91c2h1dVwgOwor56uv5pW0ID4gdGFuc2VpXCA7CivolqvpoqggPiBrdW5wdXVcIDsKK+eptueQhiA+IGt5dXVyaVwgOwor6Yyy55S7ID4gcm9rdWdhXCA7CivpipPooaEgPiBzZW5rb3VcIDsKK+ays+m5vyA+IGthamlrYVwgOwor6Yu8566hID4ga291a2FuXCA7CivpvLvnv7wgPiBiaXlva3VcIDsKK+a8huWZqCA+IHNoaWtraVwgOwor56aB6YWSID4ga2luc2h1XCA7Civol6npgrggPiBoYW50ZWlcIDsKK+aIpuaVlyA+IHNlbnBhaVwgOwor56eB6KaLID4gc2hpa2VuXCA7CivmtYTosqEgPiBqb3V6YWlcIDsKK+iZjuiQvSA+IG1vZ2FyaVwgOwor5rW36Ji/ID4gZnVub3JpXCA7CivmiYDmh5AgPiBzaG9rYWlcIDsKK+a4qeeBuCA+IG9ua3l1dVwgOwor5rW36Je7ID4ga2Fpc291XCA7CivmiYfmg4UgPiBzZW5qb3VcIDsKK+engeijvSA+IHNoaXNlaVwgOwor5oKq6YqtID4gYWt1c2VuXCA7CivnpL7poqggPiBzaGFmdXVcIDsKK+WQjemmmSA+IG1laWtvdVwgOwor5ZKM6KizID4gd2F5YWt1XCA7CivpioXoo70gPiBkb3VzZWlcIDsKK+a6luaLoCA+IGp1bmt5b1wgOwor5raZ6IW6ID4gcnVpc2VuXCA7CivnrYnlpJYgPiB0b3VnYWlcIDsKK+aKseWNtSA+IGhvdXJhblwgOwor5omV5bqVID4gZnV0dGVpXCA7CivmiYDmhJ8gPiBzaG9rYW5cIDsKK+a0i+mKgCA+IHlvdWdpblwgOwor56eY6JasID4gaGl5YWt1XCA7Civpjq7mkqsgPiBjaGluYnVcIDsKK+ekvumgrSA+IHNoYXRvdVwgOwor56eB6KGMID4gc2hpa291XCA7CivllqrmnI0gPiBtb2Z1a3VcIDsKK+eul+S9kyA+IHNhbnRhaVwgOwor5ZKM6KaqID4gd2FzaGluXCA7CivmiYvlvbkgPiB0ZXlha3VcIDsKK+mKgOijvSA+IGdpbnNlaVwgOwor6buZ6KixID4gbW9ra3lvXCA7CivmiYvlvaIgPiB0ZWdhdGFcIDsKK+ertuaKgCA+IGt5b3VnaVwgOwor6JqV56iuID4gc2Fuc2h1XCA7CivmiZPluK0gPiBkYXNla2lcIDsKK+a4r+a5viA+IGtvdXdhblwgOwor6Jar6Zm2ID4ga3VudG91XCA7CivmiYvlvJUgPiB0ZWJpa2lcIDsKK+a4vuayjCA+IGtvbnRvblwgOwor5rib54K5ID4gZ2VudGVuXCA7CivmiYflvaIgPiBzZW5rZWlcIDsKK+a8lOWKhyA+IGVuZ2VraVwgOwor5oKq6YWSID4gYWt1c2h1XCA7CivmiYDmgJ0gPiBzaG9zaGlcIDsKK+emgei8uCA+IGtpbicneXVcIDsKK+a1ruiWhCA+IGZ1aGFrdVwgOwor5ZCM6aGeID4gZG91cnVpXCA7CivpioDooYwgPiBnaW5rb3VcIDsKK+aJjeW5uSA+IHNhaWthblwgOwor5rSL6YWSID4geW91c2h1XCA7Civpvo3njosgPiByeXV1b3VcIDsKK+aDhei2oyA+IGpvdXNodVwgOwor5oiQ5paHID4gc2VpYnVuXCA7Civmh7jmoYggPiBrZW4nJ2FuXCA7CivmiYvluLMgPiB0ZWNob3VcIDsKK+aIkOaVlyA+IHNlaWJhaVwgOwor6Jma6IGeID4ga3lvYnVuXCA7Civmi4XkvZMgPiB0YW50YWlcIDsKK+aJi+W4liA+IHRlY2hvdVwgOwor6YiN6ZaTID4gbm9yb21hXCA7Civph53prZogPiBoYXJpeW9cIDsKK+aJi+W3pSA+IHNodWtvdVwgOwor5rOi6ZaTID4gbmFtaW1hXCA7CivpvJPohpwgPiBrb21ha3VcIDsKK+aGq+eEtiA+IGJpbnplblwgOwor5oKq6YGTID4gYWt1ZG91XCA7CivmtYXoposgPiBzZW5rZW5cIDsKK+mHjumzpSA+IHlhY2hvdVwgOwor5rOi6ZW3ID4gaGFjaG91XCA7CivpvJPohbkgPiBrb2Z1a3VcIDsKK+m8k+iFuCA+IGtvY2hvdVwgOwor5rK76aiTID4gY2hpa2VuXCA7CivmurblsqkgPiB5b3VnYW5cIDsKK+a1t+iNiSA+IGthaXNvdVwgOwor5rOV6ZujID4gaG91bmFuXCA7CivlkbPoqq0gPiBtaWRva3VcIDsKK+a0l+i7iiA+IHNlbnNoYVwgOwor5ZGK6L6eID4ga29rdWppXCA7CivlkITpoIUgPiBrYWtrb3VcIDsKK+ayuOmosCA+IGZ1dHRvdVwgOwor5rip5rW3ID4gYXRzdW1pXCA7CivlloTmpa0gPiB6ZW5nb3VcIDsKK+aJgeW5syA+IGhlbnBlaVwgOwor56uL5pa5ID4gcmlwcG91XCA7CivnrKDlrZAgPiBrYXNhZ29cIDsKK+a0u+ioiCA+IGtha2tlaVwgOwor5oqV5ZCIID4gdG91Z291XCA7CivmhqTnhLYgPiBmdW56ZW5cIDsKK+WPt+mkqCA+IGdvdWthblwgOwor5rue5ZyoID4gdGFpemFpXCA7CivmuKHmuIkgPiB0b3Nob3VcIDsKK+aJgOW4ryA+IHNob3RhaVwgOwor5oqX5Y6fID4ga291Z2VuXCA7CivmuKbmtYEgPiBrYXJ5dXVcIDsKK+a8ouS6uiA+IGthbmppblwgOwor5ryB5Yq0ID4gZ3lvcm91XCA7Civmtaroj68gPiBuYW5pd2FcIDsKK+aKmOWNiiA+IHNlcHBhblwgOwor6YeR6a2aID4ga2luZ3lvXCA7CivlmIblo7AgPiB0YW5zZWlcIDsKK+mKmOiMtiA+IG1laWNoYVwgOwor56ew576OID4gc2hvdWJpXCA7Civnp4HolLUgPiBzaGl6b3VcIDsKK+WRs+immiA+IG1pa2FrdVwgOwor6b6V54GvID4gZ2FuZG91XCA7Civpu7Toj4wgPiBiYWlraW5cIDsKK+aKnOWJoyA+IGJha2tlblwgOwor5ZaE5qC5ID4gemVua29uXCA7CivlkI3ploAgPiBtZWltb25cIDsKK+epuua4ryA+IGt1dWtvdVwgOwor5ZCM6ZaAID4gZG91bW9uXCA7Civom67msJEgPiBiYW5taW5cIDsKK+aKnOWIgCA+IGJhdHRvdVwgOwor5Y+w6aKoID4gdGFpZnV1XCA7CivmhafnnLwgPiBrZWlnYW5cIDsKK+aJjeWtkCA+IHNhaXNoaVwgOwor6YyY54q2ID4gc3Vpam91XCA7CivmurblqpIgPiB5b3ViYWlcIDsKK+emheitsiA+IHplbmpvdVwgOwor5rK/6Z2pID4gZW5rYWt1XCA7CivmtaroirEgPiBuYW5pd2FcIDsKK+err+W9uSA+IGhheWFrdVwgOwor5Y+w6aGUID4gZGFpZ2FuXCA7CivlkYnotoogPiBnb2V0c3VcIDsKK+WPsOmgrSA+IHRhaXRvdVwgOwor5riL5rueID4ganV1dGFpXCA7Civmt7fnhLYgPiBrb256ZW5cIDsKK+eti+WQiCA+IHN1amlhaVwgOwor5rib5rOVID4gZ2VucG91XCA7CivmipXlh70gPiB0b3VrYW5cIDsKK+WWhOabuCA+IHplbnNob1wgOwor56m65rSeID4ga3V1ZG91XCA7CivpiJHph5EgPiBiYW5raW5cIDsKK+a6kOW5syA+IGdlbnBlaVwgOwor5ZCN6ZGRID4gbWVpa2FuXCA7CivnrYnlj7cgPiB0b3Vnb3VcIDsKK+WXo+WtkCA+IHNoaXNoaVwgOwor6YeO6aeSID4gbm9nb21hXCA7Civmta7ohasgPiBtdWt1bWlcIDsKK+a4m+awtCA+IGdlbnN1aVwgOwor6bq76KOPID4gYXNhdXJhXCA7CivnqK7nl5ggPiBzaHV0b3VcIDsKK+mIjemHjSA+IGRvbmp1dVwgOwor5Y+p6aCtID4ga291dG91XCA7CivmhrLms5UgPiBrZW5wb3VcIDsKK+aJgOWumiA+IHNob3RlaVwgOwor6YeY6aCtID4gdGVpdG91XCA7CivnpoDoq4sgPiByaW5zZWlcIDsKK+a2meeuoSA+IHJ1aWthblwgOwor5omA5a2YID4gc2hvem9uXCA7Civms6XphZQgPiBkZWlzdWlcIDsKK+a4m+auuiA+IGdlbnNhaVwgOwor5rib5q61ID4gZ2VudGFuXCA7Civpjq7luqcgPiBjaGluemFcIDsKK+epgueKtiA+IHN1aWpvdVwgOwor5Y+j6aCtID4ga291dG91XCA7CivmuIXmuIUgPiBzZWlzZWlcIDsKK+WQiOmNtSA+IGFpa2FnaVwgOwor562G5YuiID4gaGlzc2VpXCA7Civnq4vmhrIgPiByaWtrZW5cIDsKK+WWhOaUvyA+IHplbnNlaVwgOwor5rSe6KaLID4gZG91a2VuXCA7CivnpLzph5EgPiByZWlraW5cIDsKK+aHkOaflCA+IGthaWp1dVwgOwor5Y+N6aiwID4gaGFudG91XCA7CivomJroi5QgPiBzZW50YWlcIDsKK+a6gOW5siA+IG1hbmthblwgOwor56a96IiOID4ga2luc2hhXCA7CivlkYroq60gPiBrb2t1eXVcIDsKK+a4hea1hCA+IHNlaWpvdVwgOwor562J5YiGID4gdG91YnVuXCA7CivnqbrmrIQgPiBrdXVyYW5cIDsKK+ayoemgrSA+IGJvdHRvdVwgOwor5oqX5L2TID4ga291dGFpXCA7Civlj6Xpm4YgPiBrdXNodXVcIDsKK+aJi+WhqSA+IHRlc2hpb1wgOwor5rm/5biDID4gc2hpcHB1XCA7Civnq6/lsbEgPiBoYXlhbWFcIDsKK+aDo+iPnCA+IHNvdXphaVwgOwor5oiQ5b2iID4gc2Vpa2VpXCA7Civnq5zluqcgPiByeXV1emFcIDsKK+mJhOijvSA+IHRlc3NlaVwgOwor5ZGK6Ki0ID4ga29rdXNvXCA7Civmtbfntr8gPiBrYWltZW5cIDsKK+WXnOWlvSA+IHNoaWtvdVwgOwor5Y+X6aCYID4ganVyeW91XCA7CivnrYblhpkgPiBoaXNzaGFcIDsKK+a4h+awtCA+IGthc3N1aVwgOwor5riI5rCRID4gc2FpbWluXCA7CivnpoHooZsgPiBraW4nJ2VpXCA7CivmipfkuokgPiBrb3Vzb3VcIDsKK+a4heawtCA+IHNlaXN1aVwgOwor5ZCI6YeRID4gZ291a2luXCA7Civmt7fmt4YgPiBrb25rb3VcIDsKK+WTgeetiSA+IGhpbnRvdVwgOwor5om/5YWBID4gc2hvdWluXCA7CivmgqroqIAgPiBha3VnZW5cIDsKK+ekvOmBhyA+IHJlaWd1dVwgOwor5Zac5oKmID4ga2lldHN1XCA7Civnq4vlv5cgPiByaXNzaGlcIDsKK+m8k+esmyA+IGtvdGVraVwgOwor5oiQ5bm0ID4gc2VpbmVuXCA7Civnp4HogIMgPiBzaGlrb3VcIDsKK+aGpOatuyA+IGZ1bnNoaVwgOwor6bq76JasID4gbWF5YWt1XCA7CivmuIfmrbsgPiBrYXNzaGlcIDsKK+err+WtkCA+IHRhbnNoaVwgOwor5oeH5pybID4ga29ubW91XCA7CivomZrnpLwgPiBreW9yZWlcIDsKK+iejeWQiCA+IHl1dWdvdVwgOwor5ZCM6YKmID4gZG91aG91XCA7CivmsojpppkgPiBqaW5rb3VcIDsKK+aHh+abuCA+IGtvbnNob1wgOwor6buE6JGJID4ga291eW91XCA7CivnrYnlgKQgPiB0b3VjaGlcIDsKK+a5vuWyuCA+IHdhbmdhblwgOwor5rqA5bGxID4gbWFuemFuXCA7CivonqLlhYkgPiBrZWlrb3VcIDsKK+WPjOmgrSA+IHNvdXRvdVwgOwor5ZWG5qmfID4gc2hvdWtpXCA7CivmiY3lmbggPiBzYWl0b25cIDsKK+WQjOmBkyA+IGRvdWRvdVwgOwor56iy54axID4gaW1vY2hpXCA7Civpjq7lroggPiBjaGluanVcIDsKK+a7tOS4iyA+IHRla2lrYVwgOwor5ZOB56iuID4gaGluc2h1XCA7Civpu4Toj4ogPiBraWdpa3VcIDsKK+aKgOWAhiA+IGdpcnlvdVwgOwor5oSa562WID4gZ3VzYWt1XCA7Civmt7fmsowgPiBrb250b25cIDsKK+WQhOmDqCA+IGtha3VidVwgOwor5rOi6LevID4gbmFtaWppXCA7Civlj43pnaIgPiBoYW5tZW5cIDsKK+WWhOaIpiA+IHplbnNlblwgOwor5rSL6KOFID4geW91c291XCA7CivmtIvoo4EgPiB5b3VzYWlcIDsKK+aJgOWcqCA+IHNob3phaVwgOwor5oKq6KGAID4gb2tldHN1XCA7CivnpZ7oqbEgPiBzaGlud2FcIDsKK+aFqOeEtiA+IGdhaXplblwgOwor56u25aOyID4ga2VpYmFpXCA7Civol7vojYkgPiBtb2d1c2FcIDsKK+enu+edgCA+IGljaGFrdVwgOwor56Wd6KmeID4gbm9yaXRvXCA7CivmtIvooYwgPiB5b3Vrb3VcIDsKK+WQjOi8qSA+IGRvdWhhaVwgOwor5oCl6aCIID4ga3l1dXN1XCA7Civnp5jnrZYgPiBoaXNha3VcIDsKK+a2iOejqCA+IHNob3VtYVwgOwor6buZ6ICDID4gbW9ra291XCA7Civmho7msJcgPiBuaWt1Z2VcIDsKK+WQjOi7iiA+IGRvdXNoYVwgOwor5raI56OBID4gc2hvdWppXCA7CivllLHmrYwgPiBzaG91a2FcIDsKK+aEm+ensCA+IGFpc2hvdVwgOwor5rmW5b+DID4ga29zaGluXCA7Civmt6Hmt6EgPiB0YW50YW5cIDsKK+WWhOaEnyA+IHplbmthblwgOwor5rKZ6ZaAID4gc2hhbW9uXCA7CivnqK7ngasgPiB0YW5lYmlcIDsKK+mKhee3miA+IGRvdXNlblwgOwor5oCo6ZyKID4gb25yeW91XCA7CivmiYvlk4EgPiB0ZWppbmFcIDsKK+aIkeWutiA+IHdhZ2F5YVwgOwor56m65pu5ID4ga3V1c291XCA7CivmiKblo6sgPiBzZW5zaGlcIDsKK+WPjemWkyA+IGhhbmthblwgOwor5omN5ZCNID4gc2FpbWVpXCA7CivnpL7os5MgPiBzaGFoaW5cIDsKK+a2sueKtiA+IGVraWpvdVwgOwor5oG16LSIID4ga2Vpem91XCA7Civlj6Ppiq0gPiBrb3VzZW5cIDsKK+WWhOaApyA+IHplbnNlaVwgOwor56S86LObID4gcmFpc2FuXCA7CivmiKblobUgPiBzZW5qaW5cIDsKK+mHkemKrSA+IGtpbnNlblwgOwor5oe45bejID4ga2FrZXN1XCA7CivnqYLms6IgPiBob25hbWlcIDsKK+aHkOaKsSA+IGthaWhvdVwgOwor5Y+C6ZmiID4gc2FuJydpblwgOwor6Y+k5Yi7ID4gcnVrb2t1XCA7Civph5HpioAgPiBraW5naW5cIDsKK+mKgOe1jCA+IGdpbmtlaVwgOwor5oim5aC0ID4gc2Vuam91XCA7Civph5HpibEgPiBraW5rb3VcIDsKK+aGtuaWrSA+IG9rdWRhblwgOwor5rib5pWwID4gZ2Vuc3V1XCA7CivmuoDlpKkgPiBtYW50ZW5cIDsKK+WSjOe2tCA+IHdhdG9qaVwgOwor5rWE572qID4gam91emFpXCA7CivmhJ/nn6UgPiBrYW5jaGlcIDsKK+azsOilvyA+IHRhaXNlaVwgOwor5rSL6JitID4geW91cmFuXCA7CivpioDns7ggPiBnaW5zaGlcIDsKK+a3oeawtCA+IHRhbnN1aVwgOwor5rq25YmkID4geW91emFpXCA7CivnqbrmlocgPiBrdXVidW5cIDsKK+m7hOiCjCA+IGtpaGFkYVwgOwor5oiQ5amaID4gc2Vpa29uXCA7Civms6joqJggPiBjaHV1a2lcIDsKK+WQn+ipoCA+IGdpbicnZWlcIDsKK+aHuOW0liA+IGtlbmdhaVwgOwor6Y2b5oiQID4gdGFuc2VpXCA7CivpioDnsokgPiBnaW5wdW5cIDsKK+aHpuW8sSA+IGRhamFrdVwgOwor5oGt6LOAID4ga3lvdWdhXCA7CivljbXpu4QgPiByYW4nJ291XCA7CivmiYvli5UgPiBzaHVkb3VcIDsKK+iXjeiXuyA+IHJhbnNvdVwgOwor5oay5pS/ID4ga2Vuc2VpXCA7CivmiKblnLAgPiBzZW5jaGlcIDsKK+ekvOiugyA+IHJhaXNhblwgOwor5rqA5aGBID4gbWFucnVpXCA7CivlkIjos4cgPiBnb3VzaGlcIDsKK+a6gOWgtCA+IG1hbmpvdVwgOwor5Y+36LuKID4gZ291c2hhXCA7Civms6PoqLQgPiBreXV1c29cIDsKK+mHjemHjSA+IGp1dWp1dVwgOwor5oGp6LOeID4gb25zaG91XCA7CivmuIXmm7ggPiBzZWlzaG9cIDsKK+a6gOWggiA+IG1hbmRvdVwgOwor5omH5YuVID4gc2VuZG91XCA7CivmiY3liIYgPiBzYWlidW5cIDsKK+a4m+aQjSA+IGdlbnNvblwgOwor5rC06bu9ID4gYW1lbmJvXCA7CivnpZ7om4cgPiBzaGluamFcIDsKK+WTgOeXmyA+IGFpdHN1dVwgOwor5oiS5aOHID4ga2FpZGFuXCA7Civpuqboir0gPiBiYWt1Z2FcIDsKK+WPsOi7iiA+IGRhaXNoYVwgOwor5ZOB55WqID4gaGluYmFuXCA7Civolqvoo70gPiBrdW5zZWlcIDsKK+aJi+WGmSA+IHNodXNoYVwgOwor5riF5piOID4gc2VpbWVpXCA7Civms5Xoq5YgPiBob3Vyb25cIDsKK+axuumXmCA+IGtldHRvdVwgOwor5rOV6KuHID4gaG91ZGFuXCA7Civljp/poYwgPiBnZW5kYWlcIDsKK+aJi+WFtSA+IHNodWhlaVwgOwor5omA5Yq0ID4gc2hvcm91XCA7Civljp/poK0gPiBnZW50b3VcIDsKK+mHh+mFjSA+IHNhaWhhaVwgOwor5ZCN6KuWID4gbWVpcm9uXCA7CivmtYXntIUgPiBzZW5rb3VcIDsKK+esrOS4iSA+IGRhaXNhblwgOwor5re75pu4ID4gdGVuc2hvXCA7CivmiYvlhYggPiB0ZXNha2lcIDsKK+aJi+WFgyA+IHRlbW90b1wgOwor5oGp6K6QID4gb25zaHV1XCA7Civmganoro4gPiBvbnNodXVcIDsKK+WPo+i+uiA+IGtvdWhlblwgOwor5Y6f6Z+zID4gZ2VuJydvblwgOwor5oiR5Z+3ID4gZ2FzaHV1XCA7CivnqbrmjLogPiBrdXV0ZWlcIDsKK+a0u+e3miA+IGthc3NlblwgOwor5ZCM6KqMID4gZG91c2hpXCA7CivljprpoZQgPiBrb3VnYW5cIDsKK+WQjeipniA+IG1laXNoaVwgOwor6YiN6KGMID4gZG9ua291XCA7Civmh4fmg4UgPiBrb25qb3VcIDsKK+a3u+aZryA+IHRlbmtlaVwgOwor5omL5YK3ID4gdGVraXp1XCA7Civnqbrmi7MgPiBrdXVrZW5cIDsKK+mHnei3ryA+IHNoaW5yb1wgOwor56ym5LiBID4gZnVjaG91XCA7CivlkI3oqIAgPiBtZWlnZW5cIDsKK+WQjOiokyA+IGRvdWt1blwgOwor6YeR6LyqID4ga2FuYXdhXCA7CivmiJDlnosgPiBzZWlrZWlcIDsKK+ayoui+uiA+IHNhd2FiZVwgOwor5rOV6KaBID4gaG91eW91XCA7Civnp5Hnm64gPiBrYW1va3VcIDsKK+m8iOeUsiA+IGJla2tvdVwgOwor6JyC5bejID4gaG91c291XCA7CivnqbrmiYsgPiBrYXJhdGVcIDsKK+ekvOijhSA+IHJlaXNvdVwgOwor5ZCM6KaWID4gZG91c2hpXCA7CivlloTlsI4gPiB6ZW5kb3VcIDsKK+epuuaJgCA+IGt1dXNob1wgOwor5b+16aGYID4gbmVuZ2FuXCA7CivlkIjoqIggPiBnb3VrZWlcIDsKK+m6u+e5lCA+IGFzYW9yaVwgOwor5Y+k6LmfID4ga29zZWtpXCA7CivlkarnuJsgPiBqdWJha3VcIDsKK+epuuaIpiA+IGt1dXNlblwgOwor5oWo5q2OID4gZ2FpdGFuXCA7CivmsZfpoZQgPiBrYW5nYW5cIDsKK+W/temgrSA+IG5lbnRvdVwgOwor56eR55m9ID4gc2VyaWZ1XCA7Civljp/pmoogPiBnZW50YWlcIDsKK+mGtemHkSA+IGt5b2tpblwgOwor56i85qWtID4ga2FneW91XCA7Civnq6/ljrMgPiB0YW5nZW5cIDsKK+iWruiaiiA+IHlhYnVrYVwgOwor5ZGo57iBID4gc2h1dWVuXCA7Civllprlo7AgPiBrYW5zZWlcIDsKK+a1t+eUoyA+IGthaXNhblwgOwor5oim5Y+yID4gc2Vuc2hpXCA7CivmuoDlk6EgPiBtYW4nJ2luXCA7Civlj5vou40gPiBoYW5ndW5cIDsKK+m7hOeyiSA+IGtpbmFrb1wgOwor56iO5rqQID4gemVpZ2VuXCA7Civlj4vpgqYgPiB5dXVob3VcIDsKK+mOluWbvSA+IHNha29rdVwgOwor56u55YiAID4gc2hpbmFpXCA7CivmhIHnnIkgPiBzaHV1YmlcIDsKK+m7meenmCA+IG1va3VoaVwgOwor5riF5o6DID4gc2Vpc291XCA7CivpurvntbIgPiBhc2FpdG9cIDsKK+mKg+egsiA+IGp1dWhvdVwgOwor5omN5Lq6ID4gc2FpamluXCA7CivmuKzluqYgPiBzb2t1ZG9cIDsKK+WQjOihviA+IGRvdWtpblwgOwor6Y2b5belID4gdGFua291XCA7CivphbjpoZ4gPiBzYW5ydWlcIDsKK+a2vOawlyA+IHJ5b3VraVwgOwor56uL5ZywID4gcml0Y2hpXCA7CivlkIzooYwgPiBkb3Vrb3VcIDsKK+epuuaDsyA+IGt1dXNvdVwgOwor5omL5LqkID4gc2h1a291XCA7Civpu5LnqYIgPiBrdXJvYm9cIDsKK+aDhee3kiA+IGpvdWNob1wgOwor5rKD6YeOID4geW9rdXlhXCA7Civpurvns7ggPiBhc2FpdG9cIDsKK+WWp+WZqiA+IGtlbnNvdVwgOwor5rip5bqKID4gb25zaG91XCA7CivmhJ/nirYgPiBrYW5qb3VcIDsKK+WQiOihviA+IGdvdWtpblwgOwor5oSb54yrID4gYWlieW91XCA7CivphrjpgKAgPiBqb3V6b3VcIDsKK+aIpuWKnyA+IHNlbmtvdVwgOwor56eB55uKID4gc2hpZWtpXCA7Civmub7lj6MgPiB3YW5rb3VcIDsKK+WPsuirliA+IHNoaXJvblwgOwor6YqD55y8ID4ganV1Z2FuXCA7Civlj7Loq4cgPiBzaGlkYW5cIDsKK+eroOWPpSA+IHNob3VrdVwgOwor6YqF55ukID4gZG91YmFuXCA7Civmhrblv7UgPiBva3VuZW5cIDsKK+WRvOensCA+IGtvc2hvdVwgOwor5oim5YmNID4gc2VuemVuXCA7CivpuJ7ovL8gPiByYW4nJ3lvXCA7CivmhqfmhqwgPiBkb3VrZWlcIDsKK+WPjOi8qiA+IHNvdXJpblwgOwor5Y+C6YGTID4gc2FuZG91XCA7CivmtrLmsYEgPiBla2lqdXVcIDsKK+eov+acrCA+IGtvdWhvblwgOwor5rW3542jID4ga2FpanV1XCA7CivmhqTmh6MgPiBmdW5tYW5cIDsKK+WPsuipqSA+IHNoaXNoaVwgOwor5Y+N6LuiID4gaGFudGVuXCA7Civlj43ou40gPiBoYW5ndW5cIDsKK+WPr+iqrSA+IGthZG9rdVwgOwor5oe45Z6CID4ga2Vuc3VpXCA7CivnqI7ms5UgPiB6ZWlob3VcIDsKK+WOs+mHjSA+IGdlbmp1dVwgOwor6Jar6JK4ID4ga3Vuam91XCA7Civlj7DoqZ4gPiBzZXJpZnVcIDsKK+mMrOaIkCA+IHJlbnNlaVwgOwor6YqA55ukID4gZ2luYmFuXCA7Civlj4vou40gPiB5dXVndW5cIDsKK+WSjOedpiA+IHdhYm9rdVwgOwor6YqA55uDID4gZ2lucGFpXCA7CivmhqTmhaggPiBmdW5nYWlcIDsKK+WUkOacrCA+IHRvdWhvblwgOwor6YmE57eaID4gdGVzc2VuXCA7Civpi7zmnb8gPiBrb3ViYW5cIDsKK+m8u+avmyA+IGhhbmFnZVwgOwor5Y+y6KazID4gc2hpa2FuXCA7Civlj4zouYQgPiBzb3V0ZWlcIDsKK+WPl+izniA+IGp1c2hvdVwgOwor5raI54GrID4gc2hvdWthXCA7CivmiJLljrMgPiBrYWlnZW5cIDsKK+mLvOadkCA+IGtvdXphaVwgOwor5rSX57e0ID4gc2VucmVuXCA7Civlj7DopqcgPiB0YWlyYW5cIDsKK+engeeUqCA+IHNoaXlvdVwgOwor5b+X6aGYID4gc2hpZ2FuXCA7CivlkIzol6kgPiBkb3VoYW5cIDsKK+WPo+irliA+IGtvdXJvblwgOwor5Y+j6Kq/ID4ga3VjaG91XCA7Civlj6Loq4cgPiBzb3VkYW5cIDsKK+WOs+mBuCA+IGdlbnNlblwgOwor56uv5YCqID4gdGFuZ2VpXCA7Civph5Hoq4cgPiBraW5kYW5cIDsKK+a3t+aIpiA+IGtvbnNlblwgOwor5oiv5L2cID4gZ2VzYWt1XCA7Civmt7fmiJAgPiBrb25zZWlcIDsKK+WWmuWVjyA+IGthbm1vblwgOwor56S+6JGsID4gc2hhc291XCA7CivmhqTmgJIgPiBmdW4nJ251XCA7Civlj6ToqLsgPiBrb2NodXVcIDsKK+a1geefsyA+IHNhc3VnYVwgOwor6YmE57KJID4gdGVwcHVuXCA7CivphpfphbUgPiBoYWtrb3VcIDsKK+WOn+mJsSA+IGdlbmtvdVwgOwor5rip5a65ID4gb24nJ3lvdVwgOwor6bqm57KJID4gbXVnaWtvXCA7CivmiJDlip8gPiBzZWlrb3VcIDsKK+a3seaJiyA+IGZ1a2FkZVwgOwor6buS55uuID4ga3Vyb21lXCA7Civph5HoqIAgPiBraW5nZW5cIDsKK+a0l+exsyA+IHNlbm1haVwgOwor5oaQ5oarID4gcmVuYmluXCA7Civljp/ph44gPiBnZW4nJ3lhXCA7CivmsJfprYQgPiBraWhha3VcIDsKK+WPl+irviA+IGp1ZGFrdVwgOwor5rCX6ayxID4ga2l1dHN1XCA7CivmiJDliIYgPiBzZWlidW5cIDsKK+iWrOiIlyA+IHlha3Vob1wgOwor5ZCN6JGXID4gbWVpY2hvXCA7CivpiYTnrqEgPiB0ZWtrYW5cIDsKK+mHjeiogCA+IGp1dWdvblwgOwor5rC36ZynID4gaHlvdW11XCA7CivmhI3nhLYgPiBiaW56ZW5cIDsKK+mHkeiltCA+IGtpbnJhblwgOwor5oeQ5aaKID4ga2FpbmluXCA7CivmsLTpnaIgPiBtaW5vbW9cIDsKK+emjeemjyA+IGthZnVrdVwgOwor5rC36ZuoID4gaGlzYW1lXCA7CivpiYTnrYsgPiB0ZWtraW5cIDsKK+aHuOWRvSA+IGtlbm1laVwgOwor6YWU6aGUID4gc3VpZ2FuXCA7CivmhpDmhI0gPiByZW5iaW5cIDsKK+a0i+e0mSA+IHlvdXNoaVwgOwor6YeN6KaWID4ganV1c2hpXCA7CivmiJDlhbggPiBzZWl0ZW5cIDsKK+mKrea5ryA+IHNlbnRvdVwgOwor5riF5buJID4gc2VpcmVuXCA7CivmtIvntIUgPiB5b3Vrb3VcIDsKK+mHjeimgSA+IGp1dXlvdVwgOwor6YeR6KO9ID4ga2luc2VpXCA7CivphZLpoZ4gPiBzaHVydWlcIDsKK+WQiOiRlyA+IGdvdWNob1wgOwor6baP6bO0ID4ga2VpbWVpXCA7Civnpr3njaMgPiBraW5qdXVcIDsKK+awtOmbtyA+IHN1aXJhaVwgOwor5Y+X6Ki7ID4ganVjaHV1XCA7Civlj5foqLogPiBqdXNoaW5cIDsKK+WPo+ijhSA+IGtvdXNvdVwgOwor5rex5oSPID4gc2hpbicnaVwgOwor56OB6YedID4gamlzaGluXCA7CivmhpDmg4UgPiByZW5qb3VcIDsKK+awtOmboyA+IHN1aW5hblwgOwor5ZCb6IeoID4ga3VucmluXCA7CivmiKbkuokgPiBzZW5zb3VcIDsKK+WPl+iolyA+IGp1dGFrdVwgOwor5oim5LmxID4gc2VucmFuXCA7CivmtannhLYgPiBrb3V6ZW5cIDsKK+eqk+WkliA+IHNvdWdhaVwgOwor5ZWP5bGLID4gdG9uJyd5YVwgOwor6YmE56qTID4gdGVzc291XCA7CivlkI3ojLYgPiBtZWljaGFcIDsKK+aFp+aVjyA+IGtlaWJpblwgOwor5riv5aSWID4ga291Z2FpXCA7Civom4fluqcgPiBoZWJpemFcIDsKK+epv+WtlCA+IHNlbmtvdVwgOwor5rmv5YWDID4geXVtb3RvXCA7CivpvLvmooEgPiBiaXJ5b3VcIDsKK+engeeJiCA+IHNoaWhhblwgOwor5Y+N6KuWID4gaGFucm9uXCA7Civnqbrlr50gPiBzb3JhbmVcIDsKK+a1hOeVjCA+IGpvdWthaVwgOwor6JaE6JaEID4gdXN1dXN1XCA7CivmsLTpmLIgPiBzdWlib3VcIDsKK+mKheeJjCA+IGRvdWhhaVwgOwor5Zac5YqHID4ga2lnZWtpXCA7CivmhoLmhqQgPiB5dXVmdW5cIDsKK+aEn+a2mSA+IGthbnJ1aVwgOwor56m05bGFID4ga2Vra3lvXCA7Civnq4vlhqwgPiByaXR0b3VcIDsKK+aGguaFriA+IHl1dXJ5b1wgOwor5rW35rqdID4ga2Fpa291XCA7Civnq4vlhZogPiByaXR0b3VcIDsKK+WOmumBhyA+IGtvdWd1dVwgOwor5ZKM54usID4gd2Fkb2t1XCA7CivmgKroq4cgPiBrYWlkYW5cIDsKK+a1qeeAmiA+IGtvdWthblwgOwor6YeR6J2/ID4ga2luYmFlXCA7CivpioDniYwgPiBnaW5wYWlcIDsKK+awtOmWgCA+IHN1aW1vblwgOwor6Juu5aOwID4gYmFuc2VpXCA7CivlloTlk4kgPiB6ZW56YWlcIDsKK+WQj+iHrSA+IHJpc2h1dVwgOwor5ZCM6Ii5ID4gZG91c2VuXCA7CivljZjpoIUgPiB0YW5rb3VcIDsKK+WNmOmfsyA+IHRhbicnb25cIDsKK+a1t+a4ryA+IGthaWtvdVwgOwor6Ymb55m9ID4gZW5wYWt1XCA7Civlj4LorIAgPiBzYW5ib3VcIDsKK+aCquerpSA+IGFrdWRvdVwgOwor5oaC5oK2ID4geXV1bW9uXCA7CivmhoLmgqMgPiB5dXVrYW5cIDsKK+a1rua8giA+IGZ1aHlvdVwgOwor6by75pyoID4gaGFuYWdpXCA7CivphY3pm7sgPiBoYWlkZW5cIDsKK+WSjOeJmyA+IHdhZ3l1dVwgOwor6JaE6JGJID4gdXN1eW91XCA7CivmiJDkvZMgPiBzZWl0YWlcIDsKK+WUkOaJiyA+IGthcmF0ZVwgOwor5rer5b+DID4gaW5zaGluXCA7CivllYblrrYgPiBzaG91a2FcIDsKK+WUkOaIuCA+IGthcmFkb1wgOwor5rSX56S8ID4gc2VucmVpXCA7CivlkIjoh7QgPiBnYXRjaGlcIDsKK+WNl+mdoiA+IG5hbm1lblwgOwor5Y+C6KmjID4gc2Fua2VpXCA7CivmhoLmgJ0gPiB5dXVzaGlcIDsKK+WQkeiDjCA+IGtvdWhhaVwgOwor5rex5bqmID4gc2hpbmRvXCA7CivmhbfmhaggPiBrb3VnYWlcIDsKK+aDqOeKtiA+IHNhbmpvdVwgOwor5ZC+562JID4gd2FyZXJhXCA7CivmtbfmtZwgPiBrYWloaW5cIDsKK+awkemiqCA+IG1pbnB1dVwgOwor6Jma5qeLID4ga3lva291XCA7CivljZrpm4UgPiBiYWt1Z2FcIDsKK+aIkOS6uiA+IHNlaWppblwgOwor5oKq56iOID4gYWt1emVpXCA7Civpu4Tnk5wgPiBreXV1cmlcIDsKK+WQueeuoSA+IHN1aWthblwgOwor5rSL56iuID4geW91c2h1XCA7CivmtbfmtIsgPiBrYWl5b3VcIDsKK+enu+akjSA+IGlzaG9rdVwgOwor6YmE56CyID4gdGVwcG91XCA7CivlkIToh6ogPiBrYWt1amlcIDsKK+m6u+eWuSA+IG1hc2hpblwgOwor5Zan5LydID4ga2VuZGVuXCA7CivoloTojLYgPiB1c3VjaGFcIDsKK+WPguimsyA+IHNhbmthblwgOwor5ZGK56S6ID4ga29rdWppXCA7CivmhJ/mrY4gPiBrYW50YW5cIDsKK+WNl+mahSA+IG5hbmd1dVwgOwor5ZCr57OWID4gZ2FudG91XCA7Civom67lnLAgPiBiYW5jaGlcIDsKK+aCquelniA+IGFrdWppblwgOwor5ZCN6IGeID4gbWVpYnVuXCA7Civnq4vkvZMgPiByaXR0YWlcIDsKK+WNiumfsyA+IGhhbicnb25cIDsKK+WNl+mZkCA+IG5hbmdlblwgOwor5oOF55e0ID4gam91Y2hpXCA7CivnqoHloKQgPiB0b3R0ZWlcIDsKK+WWquS4rSA+IG1vY2h1dVwgOwor5rib5aGpID4gZ2VuJydlblwgOwor5ril5ZywID4gYWt1Y2hpXCA7Civmt6HlvakgPiB0YW5zYWlcIDsKK+a1t+awtCA+IGthaXN1aVwgOwor5rWu5rWBID4gZnVyeXV1XCA7Civnpa3npZ4gPiBzYWlqaW5cIDsKK+elnuespiA+IHNoaW5wdVwgOwor6YeR6JS1ID4ga2luem91XCA7CivmhJvmrLIgPiBhaXlva3VcIDsKK+elreelgCA+IHNhaXNoaVwgOwor5Y6z6KuHID4gZ2VuZGFuXCA7CivoloToibIgPiB1c3Vpcm9cIDsKK+elreekvCA+IHNhaXJlaVwgOwor5rCR6Z2SID4gbWluc2VpXCA7CivljYrpnaIgPiBoYW5tZW5cIDsKK+WPo+iTiyA+IGtvdWdhaVwgOwor5rWq5rWqID4gcm91cm91XCA7CivmuJPlo7AgPiBrZWlzZWlcIDsKK+iZmuaguSA+IGt5b2tvblwgOwor5b6u6ZyHID4gYmlzaGluXCA7Civlv5zphawgPiBvdXNodXVcIDsKK+WNl+mWgCA+IG5hbm1vblwgOwor5Y6f6LOHID4gZ2Vuc2hpXCA7CivmtJfnnLwgPiBzZW5nYW5cIDsKK+mFqemFiiA+IG1laXRlaVwgOwor5oCn6KGMID4gc2Vpa291XCA7CivlloTlh6YgPiB6ZW5zaG9cIDsKK+WQjOe9qiA+IGRvdXphaVwgOwor5rWu5rKIID4gZnVjaGluXCA7CivmsLTpioAgPiBzdWlnaW5cIDsKK+m7kueFmSA+IGtva3VlblwgOwor5b6h6aGMID4gZ3lvZGFpXCA7CivljrPoqJMgPiBnZW5rdW5cIDsKK+WNs+mHkSA+IHNva2tpblwgOwor5ZOA5qW9ID4gYWlyYWt1XCA7Civnqbrln58gPiBrdXVpa2lcIDsKK+mKgOa8oiA+IGdpbmthblwgOwor5rex5bGxID4gbWl5YW1hXCA7Civph47okpwgPiBub2JpcnVcIDsKK+a1ruawtyA+IGZ1aHlvdVwgOwor6baP6aCtID4ga2VpdG91XCA7Civnp4vms6IgPiBzaHV1aGFcIDsKK+a0u+eJiCA+IGthcHBhblwgOwor56S+57eaID4gc2hhc2VuXCA7CivmsJfplbcgPiBraW5hZ2FcIDsKK+elnuenmCA+IHNoaW5waVwgOwor56m65ZywID4gYWtpY2hpXCA7Civlj7Doh6ggPiB0YWlyaW5cIDsKK+aDqOa+uSA+IHNhbnRhblwgOwor5oSb5qW9ID4gYWlneW91XCA7Civph47oj4ogPiBub2dpa3VcIDsKK+eni+awlyA+IHNodXVraVwgOwor5rOV57eaID4gaG91c2VuXCA7CivmsJHplpMgPiBtaW5rYW5cIDsKK+aHh+WRvSA+IGtvbm1laVwgOwor5riv5Y+jID4ga291a291XCA7Civmgqrnm7ggPiBha3Vzb3VcIDsKK+W+oemciiA+IG1pdGFtYVwgOwor5rG66KOBID4ga2Vzc2FpXCA7CivljYrplosgPiBoYW5rYWlcIDsKK+azlee2siA+IGhvdW1vdVwgOwor5oKy55ebID4gaGl0c3V1XCA7CivpuqbnlLAgPiBtdWdpdGFcIDsKK+m1numzpSA+IGdhY2hvdVwgOwor5rC06YO3ID4gc3VpZ291XCA7CivlkIjnuYogPiBnb3VzZW5cIDsKK+engeazlSA+IHNoaWhvdVwgOwor6bWd6bOlID4gZ2FjaG91XCA7CivmhaPmgKcgPiBrYW5zZWlcIDsKK+WOn+irliA+IGdlbnJvblwgOwor5rG66KGMID4ga2Vra291XCA7CivmhaLmgKcgPiBtYW5zZWlcIDsKK+W+oemZtSA+IGdvcnlvdVwgOwor5b+r6LWwID4ga2Fpc291XCA7CivlvpPpoIYgPiBqdXVqdW5cIDsKK+m8oOaXjyA+IHNvem9rdVwgOwor5rK76ICFID4gY2hpc2hhXCA7Civljp/oqakgPiBnZW5zaGlcIDsKK+awtOmBkyA+IHN1aWRvdVwgOwor5oSf5p+TID4ga2Fuc2VuXCA7Civmh5DliaMgPiBrYWlrZW5cIDsKK+aDheeKtiA+IGpvdWpvdVwgOwor5ZCM57SZID4gZG91c2hpXCA7CivpibHmu5MgPiBrb3VzaGlcIDsKK+WQkeexsyA+IGtvdWJlaVwgOwor6YmE55C0ID4gdGVra2luXCA7CivlkIzns7sgPiBkb3VrZWlcIDsKK+eqruS9mSA+IGt5dXV5b1wgOwor5rWu5qiZID4gZnVoeW91XCA7CivpioDms6UgPiBnaW5kZWlcIDsKK+WPr+iBtCA+IGthY2hvdVwgOwor6Jma5pWwID4ga3lvc3V1XCA7Civmtbfmo6AgPiBrYWlkb3VcIDsKK+aCqueWqyA+IGFrdWVraVwgOwor5rib5ZOhID4gZ2VuJydpblwgOwor5ZCD57eKID4ga2lra2luXCA7CivmganntaYgPiBvbmt5dXVcIDsKK+awtOi+uiA+IG1penViZVwgOwor5b6h6ZaAID4gbWlrYWRvXCA7Civlj4zokYkgPiBmdXRhYmFcIDsKK+W+jOmghSA+IGtvdWtvdVwgOwor56if5oCnID4gaGluc2VpXCA7Civmt7flo7AgPiBrb25zZWlcIDsKK+WPo+iFlCA+IGtvdWtvdVwgOwor6Y2b5Ya2ID4gdGFuJyd5YVwgOwor5oKq55SoID4gYWt1eW91XCA7CivnqoPlj5YgPiBzZXNzaHVcIDsKK+aEiealvSA+IHl1cmFrdVwgOwor56eA5q2MID4gc2h1dWthXCA7CivljLrplbcgPiBrdWNob3VcIDsKK+a4m+WPtyA+IGdlbmdvdVwgOwor5riv5YaFID4ga291bmFpXCA7CivmsLTou4ogPiBzdWlzaGFcIDsKK+a4m+WPjSA+IGdlbnRhblwgOwor6YWS6YCgID4gc2h1em91XCA7CivomY7mlpEgPiB0b3JhZnVcIDsKK+m7kua1tyA+IGtva2thaVwgOwor5ZCN562UID4gbWVpdG91XCA7Civlvozpm6MgPiBrb3VuYW5cIDsKK+epuuWQjSA+IGt1dW1laVwgOwor5rWF5rW3ID4gc2Vua2FpXCA7CivpjKblnLAgPiBraW5jaGlcIDsKK+WPjeiLsSA+IGhhbicnZWlcIDsKK+WQjOetiSA+IGRvdXRvdVwgOwor5ray5oCnID4gZWtpc2VpXCA7CivpvLvmga8gPiBiaXNva3VcIDsKK+aCqueQgyA+IGFra3l1dVwgOwor5ZCI566XID4gZ2Fzc2FuXCA7Civlj43oirsgPiBoYW5zdXVcIDsKK+a0i+eQtCA+IHlvdWtpblwgOwor56eB5qipID4gc2hpa2VuXCA7CivpiYTniYcgPiB0ZXBwZW5cIDsKK+ehvOmFuCA+IGhvdXNhblwgOwor6Ymx5rOJID4ga291c2VuXCA7CivmtbfmnIggPiBrdXJhZ2VcIDsKK+a1t+abuSA+IGthaXNvdVwgOwor6YWN6YCBID4gaGFpc291XCA7CivlvozpmaMgPiBrb3VqaW5cIDsKK+WNl+mDiiA+IG5hbmtvdVwgOwor5rGO6KuWID4gaGFucm9uXCA7CivllJDlrZAgPiBrYXJha29cIDsKK+a1gea0viA+IHJ5dXVoYVwgOwor6JaE57SXID4gaGFrdXNhXCA7CivombnlvakgPiBrb3VzYWlcIDsKK+a3t+WcqCA+IGtvbnphaVwgOwor5ZCM56qTID4gZG91c291XCA7CivnpoHnhZkgPiBraW4nJ2VuXCA7Civpipjmnb8gPiBtZWliYW5cIDsKK+mJseawtCA+IGtvdXN1aVwgOwor5b6u6YePID4gYmlyeW91XCA7CivmsrnntbUgPiBhYnVyYWVcIDsKK+a1t+aZryA+IGthaWtlaVwgOwor56m65YyFID4ga3V1aG91XCA7CivljYrph5EgPiBoYW5raW5cIDsKK+avm+mgrSA+IG1vdXRvdVwgOwor5oSb5pWsID4gYWlreW91XCA7CivlkIznqK4gPiBkb3VzaHVcIDsKK+epv+WIuiA+IHNlbnNoaVwgOwor5b2i6aq4ID4ga2VpZ2FpXCA7Civmg6jmrbsgPiB6YW5zaGlcIDsKK+a1t+aYnyA+IGhpdG9kZVwgOwor5oWI5b+DID4gamlzaGluXCA7CivlvozploAgPiBrb3Vtb25cIDsKK+a1hOawtCA+IGpvdXN1aVwgOwor5rib5YiRID4gZ2Vua2VpXCA7Civph43nvaogPiBqdXV6YWlcIDsKK+mFouixmiA+IHN1YnV0YVwgOwor5Y2D6YieID4gc2Vua2luXCA7Civpu4TmtbcgPiBrb3VrYWlcIDsKK+WPsOe0mSA+IGRhaXNoaVwgOwor6YWN6LuKID4gaGFpc2hhXCA7CivnpZ7nkr0gPiBzaGluamlcIDsKK+epuuWJjSA+IGt1dXplblwgOwor5rSX54WJID4gc2VucmVuXCA7CivmtIvniqwgPiB5b3VrZW5cIDsKK+a0uOa0uCA+IGtvdWtvdVwgOwor5Y2w6LGhID4gaW5zaG91XCA7CivljYPph5EgPiBzZW5raW5cIDsKK+eoruWtkCA+IHNodXNoaVwgOwor5rS45rSLID4ga291eW91XCA7Civnp4vmnJ8gPiBzaHV1a2lcIDsKK+awl+i/qyA+IGtpaGFrdVwgOwor5ZCM56S+ID4gZG91c2hhXCA7CivlvbHpn78gPiBlaWt5b3VcIDsKK+iUkeimliA+IGJlc3NoaVwgOwor5b+c6Ku+ID4gb3VkYWt1XCA7CivmuJvlhY0gPiBnZW5tZW5cIDsKK+awkemBuCA+IG1pbnNlblwgOwor56m65Ya3ID4ga3V1cmVpXCA7Civmg5rmsJcgPiBub3Jva2VcIDsKK+ekvOegsiA+IHJlaWhvdVwgOwor5Y2Y6LuKID4gdGFuc2hhXCA7CivmhbblpKcgPiBrZWlkYWlcIDsKK+WSjOalvSA+IHdhcmFrdVwgOwor5oCq6IWVID4ga2Fpd2FuXCA7CivlkIjnpa0gPiBnb3VzYWlcIDsKK+WPjOiCqSA+IHNvdWtlblwgOwor5ZWG5YuZID4gc2hvdW11XCA7CivmgqrnhrEgPiBhbmV0c3VcIDsKK+WQiOelgCA+IGdvdXNoaVwgOwor5oCn6IW6ID4gc2Vpc2VuXCA7CivmhrLlhbUgPiBrZW5wZWlcIDsKK+a4m+WCtSA+IGdlbnNhaVwgOwor6buE5rC0ID4ga2ltaXp1XCA7CivpipjmlocgPiBtZWlidW5cIDsKK+WPo+e1tSA+IGt1Y2hpZVwgOwor56eR5paZID4ga2FyeW91XCA7CivlvqHphYwgPiBvc2hha3VcIDsKK+awl+i7vSA+IGtpZ2FydVwgOwor5oCn6IO9ID4gc2Vpbm91XCA7CivlkYbnhLYgPiBib3V6ZW5cIDsKK+azqOeWjyA+IGNodXVzb1wgOwor5rOo55aOID4gY2h1dXNvXCA7CivllYbliKkgPiBzaG91cmlcIDsKK+mKheadvyA+IGRvdWJhblwgOwor6YWS6LKpID4gc2h1aGFuXCA7Civom67kurogPiBiYW5qaW5cIDsKK+WUseWSjCA+IHNob3V3YVwgOwor5ZGo5rOiID4gc2h1dWhhXCA7CivmtbfmkI0gPiBrYWlzb25cIDsKK+aAquiBniA+IGthaWJ1blwgOwor56eB5pyJID4gc2hpeXV1XCA7Civmha7lpJYgPiByeW9nYWlcIDsKK+mFkuixqiA+IHNodWdvdVwgOwor56eB5pu4ID4gc2hpc2hvXCA7Civph5Hns7ggPiBraW5zaGlcIDsKK+a4m+S/uCA+IGdlbnBvdVwgOwor5Y2K6LyqID4gaGFucmluXCA7Civms5XnnLwgPiBob3VnZW5cIDsKK+a3t+WQjCA+IGtvbmRvdVwgOwor6YqA5p2vID4gZ2lucGFpXCA7Civmt7flkIggPiBrb25nb3VcIDsKK+efs+m5uCA+IHNla2tlblwgOwor6YeR57KJID4ga2lucHVuXCA7CivpiZvmr5IgPiBlbmRva3VcIDsKK+W9k+mnhSA+IHRvdWVraVwgOwor5b6h6YGKID4gZ3lveXV1XCA7CivmuKbkuK0gPiBrYWNodXVcIDsKK+azleebuCA+IGhvc3NvdVwgOwor5rex5ZGzID4gZnVrYW1pXCA7CivnpZ7niLYgPiBzaGlucHVcIDsKK+WOn+iRlyA+IGdlbmNob1wgOwor5oKg54S2ID4geXV1emVuXCA7CivmhJ/mh5AgPiBrYW5rYWlcIDsKK+m6pua5ryA+IG11Z2l5dVwgOwor5oOz5pybID4gc291Ym91XCA7Civlj4LogIMgPiBzYW5rb3VcIDsKK+WQjOecjCA+IGRvdWtlblwgOwor5ZCN55ukID4gbWVpYmFuXCA7Civlj7jnpa0gPiBzaGlzYWlcIDsKK+WPl+e1piA+IGp1a3l1dVwgOwor5ZCM55u4ID4gZG91c291XCA7CivlkIznm58gPiBkb3VtZWlcIDsKK+a0quawtCA+IGtvdXp1aVwgOwor5ZOA5oSBID4gYWlzaHV1XCA7CivmhJ/mhaggPiBrYW5nYWlcIDsKK+WNg+i8iSA+IHNlbnphaVwgOwor6JuN5YWJID4ga2Vpa291XCA7Civlk4Dmg5wgPiBhaXNla2lcIDsKK+WQieebuCA+IGtpc3NvdVwgOwor56m65Ly8ID4gc29yYW5pXCA7CivlkozmnI0gPiB3YWZ1a3VcIDsKK+ehrOi7nyA+IGtvdW5hblwgOwor6YeR566hID4ga2lua2FuXCA7CivolqznkIYgPiB5YWt1cmlcIDsKK+aEm+aGjiA+IGFpbmlrdVwgOwor5Y+j562UID4ga291dG91XCA7Civlvozph5EgPiBhdG9raW5cIDsKK+aEm+aFviA+IGFpeW9rdVwgOwor5oSf5oOzID4ga2Fuc291XCA7CivnpL7nlKggPiBzaGF5b3VcIDsKK+mKgOaYoCA+IGdpbicnZWlcIDsKK+m5teeNsiA+IHJva2FrdVwgOwor56Cy6ZaAID4gaG91bW9uXCA7CivmtbfmiKYgPiBrYWlzZW5cIDsKK+aEn+aDhSA+IGthbmpvdVwgOwor5oCd6ICDID4gc2hpa291XCA7Civlk4HmgKcgPiBoaW5zZWlcIDsKK+W+qei3ryA+IGZ1a3Vyb1wgOwor5ZG95qC5ID4gbWVpa29uXCA7Civmg4XmrbsgPiBqb3VzaGlcIDsKK+mMoOWJpCA+IGpvdXphaVwgOwor5rex5YyWID4gc2hpbmthXCA7CivljbPooYwgPiBzb2trb3VcIDsKK+mMoOWJjSA+IGpvdW1hZVwgOwor5rCX6LGhID4ga2lzaG91XCA7CivmhJvmg5wgPiBhaXNla2lcIDsKK+WPt+egsiA+IGdvdWhvdVwgOwor5rOV55WMID4gaG9ra2FpXCA7CivllZPkuIogPiBrZWlqb3VcIDsKK+a0l+a1hCA+IHNlbmpvdVwgOwor5oSf5oCnID4ga2Fuc2VpXCA7CivnpZ7ngasgPiBzaGlua2FcIDsKK+WPjOe0mSA+IHNvdXNoaVwgOwor5ZCN55SjID4gbWVpc2FuXCA7CivmhJvmga8gPiBhaXNva3VcIDsKK+iXpOawjyA+IHRvdXNoaVwgOwor5Y2U6K2wID4ga3lvdWdpXCA7Civpu5LmnKggPiBrdXJva2lcIDsKK+aEmuaBryA+IGd1c29rdVwgOwor5Y+k56ewID4ga29zaG91XCA7CivptJXps6UgPiBkYWNob3VcIDsKK+azpeeKtiA+IGRlaWpvdVwgOwor5b2T6Z2iID4gdG91bWVuXCA7Civlv4XoposgPiBoaWtrZW5cIDsKK+m8k+W8kyA+IGtva3l1dVwgOwor5ZOA5byUID4gYWljaG91XCA7CivmgrLms4EgPiBoaWt5b3VcIDsKK+azsOeEtiA+IHRhaXplblwgOwor5Y+N57GzID4gaGFuYmVpXCA7CivmtLvmoJMgPiBrYXNzZW5cIDsKK+a1hOabuCA+IGpvdXNob1wgOwor56C06Y+hID4gaGFreW91XCA7CivnqIDlsJEgPiBraXNob3VcIDsKK+WVhuS6iyA+IHNob3VqaVwgOwor56aB5q2iID4ga2luc2hpXCA7CivlvozpgIEgPiBrb3Vzb3VcIDsKK+W+jOmAgCA+IGtvdXRhaVwgOwor5Y+X56ugID4ganVzaG91XCA7Civph43nqI4gPiBqdXV6ZWlcIDsKK+mFouibuCA+IHN1ZGFrb1wgOwor5q2v6b2mID4gc2hpZ2luXCA7CivlkITnlYwgPiBrYWtrYWlcIDsKK+WPoueloCA+IGhva29yYVwgOwor5oWo5ZiGID4gZ2FpdGFuXCA7CivlvpPou40gPiBqdXVndW5cIDsKK+avm+mIjiA+IGtlYmFyaVwgOwor6YOo6ZW3ID4gYnVjaG91XCA7Civlj7LnnLwgPiBzaGlnYW5cIDsKK+aCtuatuyA+IG1vbnNoaVwgOwor5q616ZqOID4gZGFua2FpXCA7CivpvL7lo7AgPiBrYW5zZWlcIDsKK+aDqOaVlyA+IHphbnBhaVwgOwor5oKq5rOVID4gYWt1aG91XCA7CivlvoXpgYcgPiB0YWlndXVcIDsKK+a0i+a0iyA+IHlvdXlvdVwgOwor6bq65qOSID4gbWVuYm91XCA7Civlj7Pnm64gPiBtaWdpbWVcIDsKK+W/heihsCA+IGhpc3N1aVwgOwor5q2v6buSID4gaGFndXJvXCA7Civph43npZogPiBjaG91c29cIDsKK+W+jOi8qiA+IGtvdXJpblwgOwor5b6M6LypID4ga291aGFpXCA7Civpu47mmI4gPiByZWltZWlcIDsKK+aEiOaEiCA+IGl5b2l5b1wgOwor56S854q2ID4gcmVpam91XCA7CivmsJHoq5YgPiBtaW5yb25cIDsKK+WPguexoCA+IHNhbnJvdVwgOwor5oKq5rC0ID4gYWt1c3VpXCA7Civmu77jgIUgPiBrb25rb25cIDsKK+WMqui6rCA+IGhpa3l1dVwgOwor5b6M6LuNID4ga291Z3VuXCA7Civlvozou4ogPiBrb3VzaGFcIDsKK+aEieaCpiA+IHl1ZXRzdVwgOwor6Yed55uuID4gaGFyaW1lXCA7CivljJfpg6ggPiBob2t1YnVcIDsKK+W8vumgrSA+IGRhbnRvdVwgOwor5oKq5rCXID4gd2FydWdpXCA7Civnn6LpsYggPiB5YXRhcmFcIDsKK+ekjuefsyA+IHNvc2VraVwgOwor5rW05b6MID4geW9rdWdvXCA7CivljZPoposgPiB0YWtrZW5cIDsKK+WRveaVsCA+IG1laXN1dVwgOwor5YyX6YOKID4gaG9ra291XCA7CivmrovpqrggPiB6YW5nYWlcIDsKK+aKmOOAhSA+IG9yaW9yaVwgOwor5rOl54KtID4gZGVpdGFuXCA7Civph5HnoIIgPiBraW5zaGFcIDsKK+WQjeeKtiA+IG1laWpvdVwgOwor5Yun6ZmNID4ga2Fua291XCA7CivokZvppKEgPiBrdXp1YW5cIDsKK+a1ruW/gyA+IGZ1c2hpblwgOwor6YeN56CyID4ganV1aG91XCA7Civnp4HmhqQgPiBzaGlmdW5cIDsKK+axl+iFuiA+IGthbnNlblwgOwor5rW35bqVID4ga2FpdGVpXCA7CivmgKrnq6UgPiBrYWlkb3VcIDsKK+ayvOeUsCA+IG51bWFkYVwgOwor56Wt5q6/ID4gc2FpZGVuXCA7CivljZjooYwgPiB0YW5rb3VcIDsKK+egsumHkSA+IGhvdWtpblwgOwor5Y+k552AID4gZnVydWdpXCA7CivljYrop6MgPiBoYW5rYWlcIDsKK+WNl+ihjCA+IG5hbmtvdVwgOwor6YqA5omHID4gZ2luc2VuXCA7Civph43nn7MgPiBvbW9zaGlcIDsKK+ayu+eUoyA+IGNoaXNhblwgOwor5Yuf6ZuGID4gYm9zaHV1XCA7Civmt7vkuZcgPiB0ZW5qb3VcIDsKK+mDt+mHjCA+IGt5b3VyaVwgOwor5ZGo5pyfID4gc2h1dWtpXCA7Civljp/nvaogPiBnZW56YWlcIDsKK+mMpuS4iiA+IGtpbmpvdVwgOwor5ZGz5pa5ID4gbWlrYXRhXCA7CivnqK7lkI0gPiBzaHVtZWlcIDsKK+W8t+mfsyA+IGt5b3VvblwgOwor5re35LqkID4ga29ua291XCA7CivompXljbUgPiBzYW5yYW5cIDsKK+engeaEnyA+IHNoaWthblwgOwor5Y2B6KqhID4gamlra2FpXCA7CivmrovpppkgPiB6YW5rb3VcIDsKK+m6quajkiA+IG1lbmJvdVwgOwor5rGa6IG3ID4gb3Nob2t1XCA7Civol6nmoKEgPiBoYW5rb3VcIDsKK+a3t+S5sSA+IGtvbnJhblwgOwor56mC5YWIID4gaG9zYWtpXCA7Civph5Hnm64gPiBrYW5lbWVcIDsKK+engeaDhSA+IHNoaWpvdVwgOwor5rW35ba6ID4ga2FpcmVpXCA7Civli5XpnZkgPiBkb3VzZWlcIDsKK+aBkueUoyA+IGtvdXNhblwgOwor6YeP55uuID4gcnlvdW1lXCA7CivlvrPooYwgPiB0b2trb3VcIDsKK+eglOmRvSA+IGtlbnNhblwgOwor5byx6Z+zID4geW93YW5lXCA7CivljKros4ogPiBoaXpva3VcIDsKK+WQuOawlyA+IGt5dXVraVwgOwor5Yui6ZaAID4gc2VpbW9uXCA7Civlv6vohZUgPiBrYWl3YW5cIDsKK+engeaBqCA+IHNoaWtvblwgOwor5q6L6aOvID4gemFucGFuXCA7CivmsLTokawgPiBzdWlzb3VcIDsKK+WNiuijgSA+IGhhbnNhaVwgOwor56aF5p6XID4gemVucmluXCA7CivllK/kuIAgPiB5dWl0c3VcIDsKK+mHjeeblyA+IGp1dXRvdVwgOwor5ZCM54S2ID4gZG91emVuXCA7CivmrbvpqrggPiBzaGlnYWlcIDsKK+W+oeiolyA+IGdvdGFrdVwgOwor5b6u6KG3ID4gYmljaHV1XCA7CivlvqHoqIAgPiBtaWtvdG9cIDsKK+awt+iPkyA+IGh5b3VrYVwgOwor56We5rCXID4gc2hpbmtpXCA7CivlirnpqJMgPiBrb3VrZW5cIDsKK+WNl+ibriA+IG5hbmJhblwgOwor5Y2K6KG/ID4gaGFuZXJpXCA7CivomZrlpoQgPiBreW9tb3VcIDsKK+axuueulyA+IGtlc3NhblwgOwor5oSf5a6YID4ga2Fua2FuXCA7CivljJbouqsgPiBrZXNoaW5cIDsKK+aBrOeEtiA+IHRlbnplblwgOwor5oOF5pmvID4gam91a2VpXCA7Civolqzmua8gPiB5YWt1eXVcIDsKK+axveesmyA+IGtpdGVraVwgOwor5rOV54GvID4gaG91dG91XCA7CivmtrzlkbMgPiByeW91bWlcIDsKK+WQjOeCuSA+IGRvdXRlblwgOwor5rC06I+cID4gbWl6dW5hXCA7CivmtbflsrggPiBrYWlnYW5cIDsKK+WLvumFjSA+IGtvdWJhaVwgOwor5oKq5qWtID4gYWt1Z291XCA7Civlj4LnpoUgPiBzYW56ZW5cIDsKK+WOn+e2vyA+IGdlbm1lblwgOwor5oOo5oa6ID4gc2FudGFuXCA7Civol6TmnKwgPiB0b3Vob25cIDsKK+mJhOadvyA+IHRlcHBhblwgOwor6YO16YCBID4geXV1c291XCA7Civmr5TovIMgPiBoaWtha3VcIDsKK+a1heaJjSA+IHNlbnNhaVwgOwor55+t6Z+zID4gdGFuJydvblwgOwor56aB5pu4ID4ga2luc2hvXCA7CivokYnpoqggPiBoYWthemVcIDsKK+WPoueUnyA+IHNvdXNlaVwgOwor5b6h6KO9ID4gZ3lvc2VpXCA7Civok7Toj5wgPiBqdW5zYWlcIDsKK+WQq+awtCA+IGdhbnN1aVwgOwor5oOz5b+1ID4gc291bmVuXCA7CivlvbHouqsgPiBrYWdlbWlcIDsKK+WOn+e0mSA+IGdlbnNoaVwgOwor5oSb5ayMID4gYWlreW91XCA7CivpirflpI8gPiBzaG91a2FcIDsKK+avm+i2syA+IGtlYXNoaVwgOwor5Y6f57O4ID4gZ2Vuc2hpXCA7Civmra/pq4QgPiBzaGl6dWlcIDsKK+a1t+WuuSA+IGthaXlvdVwgOwor6YqD5by+ID4ganV1ZGFuXCA7CivomZrloLEgPiBreW9ob3VcIDsKK+WOn+ezliA+IGdlbnRvdVwgOwor6JC96aasID4gcmFrdWJhXCA7Civph5HnkrAgPiBraW5rYW5cIDsKK+eglemJsSA+IHNhaWtvdVwgOwor5byT6aasID4ga3l1dWJhXCA7Civlj4znnLwgPiBzb3VnYW5cIDsKK+WPjOecuCA+IHNvdWJvdVwgOwor6bm55rC0ID4ga2Fuc3VpXCA7CivnoLLou4ogPiBob3VzaGFcIDsKK+aGguS4liA+IHl1dXNlaVwgOwor5Y+N55yBID4gaGFuc2VpXCA7Civms6jmsrkgPiBjaHV1eXVcIDsKK+a1heaFriA+IHNlbnJ5b1wgOwor6YO36LuNID4gZ291Z3VuXCA7Civmg4Xmk40gPiBqb3Vzb3VcIDsKK+elnuaouSA+IHNoaW5qdVwgOwor5raI5aSPID4gc2hvdWthXCA7CivmsojnoIIgPiBjaGluc2FcIDsKK+WLp+mKgCA+IGthbmdpblwgOwor5Yy76KGTID4gaWp1dHN1XCA7CivpgqbpoYwgPiBob3VkYWlcIDsKK+iVg+ekviA+IGJhbnNoYVwgOwor56i/5Lq6ID4ga291amluXCA7CivnpoHmlq0gPiBraW5kYW5cIDsKK+iQjOm7jiA+IGhvdXJlaVwgOwor5oOw5byxID4gZGFqYWt1XCA7CivlvovoqakgPiByaXNzaGlcIDsKK+aEn+WlriA+IGthbnB1blwgOwor5Y6z56aBID4gZ2Vua2luXCA7CivmtpnlmqIgPiBydWlub3VcIDsKK+epguS4piA+IGhvbmFtaVwgOwor5Y216IOeID4gcmFuaG91XCA7CivlkIzmupAgPiBkb3VnZW5cIDsKK+aEm+WmviA+IGFpc2hvdVwgOwor5ZCN5rmvID4gbWVpdG91XCA7Civph47nkIMgPiB5YWt5dXVcIDsKK+aAqueblyA+IGthaXRvdVwgOwor5ZGJ5pyNID4gZ29mdWt1XCA7CivnpZ7mpb0gPiBrYWd1cmFcIDsKK+W/oOe+qSA+IGNodXVnaVwgOwor6JG36YWSID4ga3Vuc2h1XCA7CivmsLTohasgPiBzdWlzaHVcIDsKK+enkeWtpiA+IGthZ2FrdVwgOwor6JeN5p+TID4gYWl6b21lXCA7CivllJDkurogPiB0b3VqaW5cIDsKK+ayueeEtiA+IHl1dXplblwgOwor5oKq5pu4ID4gYWt1c2hvXCA7CivlvZPpgbggPiB0b3VzZW5cIDsKK+a0i+acrCA+IHlvdWhvblwgOwor5b6M6KaLID4ga291a2VuXCA7CivlkJvmsJEgPiBrdW5taW5cIDsKK+a0i+abuCA+IHlvdXNob1wgOwor6JGJ6ZmwID4gaGFrYWdlXCA7CivpioDltrogPiBnaW5yZWlcIDsKK+ekvOazlSA+IHJlaWhvdVwgOwor5rK454K5ID4gZnV0dGVuXCA7Civnp4vlraMgPiBzaHV1a2lcIDsKK+aFi+WLoiA+IHRhaXNlaVwgOwor5ZKM5biDID4gd2FrYW1lXCA7Civmgazmt6EgPiB0ZW50YW5cIDsKK+m7meW6pyA+IG1va3V6YVwgOwor5ray5YmkID4gZWtpemFpXCA7CivmrbvpnIogPiBzaGlyZWlcIDsKK+auv+i7jSA+IGRlbmd1blwgOwor6buS5b2xID4ga29rdWVpXCA7CivlvIrpoqggPiBoZWlmdXVcIDsKK+WPjOeUnyA+IHNvdXNlaVwgOwor5b+F6IezID4gaGlzc2hpXCA7CivlvoDoqLogPiBvdXNoaW5cIDsKK+W+geiojiA+IHNlaXRvdVwgOwor6JSX57OWID4gc2hvdG91XCA7Civph5HniYwgPiBraW5wYWlcIDsKK+mFjeiIuSA+IGhhaXNlblwgOwor6YqF5bGxID4gZG91emFuXCA7CivmhaPkvosgPiBrYW5yZWlcIDsKK+azleayuyA+IGhvdWNoaVwgOwor5rW35aSWID4ga2FpZ2FpXCA7Civljp/nqL8gPiBnZW5rb3VcIDsKK+WOn+eoriA+IGdlbnNodVwgOwor5rC06ICVID4gc3Vpa291XCA7Civpg7Xosq8gPiB5dXVjaG9cIDsKK+mHjueJmyA+IHlhZ3l1dVwgOwor5rS75oCnID4ga2Fzc2VpXCA7CivnpL7mrr8gPiBzaGFkZW5cIDsKK+aEm+WftyA+IGFpc2h1dVwgOwor5Yun6YCyID4ga2FuamluXCA7Civph43niYggPiBqdXVoYW5cIDsKK+aCquaWhyA+IGFrdWJ1blwgOwor56CC6YeRID4gc2hha2luXCA7CivmraPppJAgPiBzZWlzYW5cIDsKK+mFjeiGsyA+IGhhaXplblwgOwor5rGC57iBID4ga3l1dWVuXCA7CivpioDlsbEgPiBnaW56YW5cIDsKK+eojuWItiA+IHplaXNlaVwgOwor5b+N6ICQID4gbmludGFpXCA7CivmgqrmlL8gPiBha3VzZWlcIDsKK+atr+mdoiA+IHNoaW1lblwgOwor5ZCI5rOVID4gZ291aG91XCA7Civmrbvpl5ggPiBzaGl0b3VcIDsKK+elreaWhyA+IHNhaW1vblwgOwor5ZCE5rS+ID4ga2FrdWhhXCA7Civpgbrpq6ogPiBpaGF0c3VcIDsKK+WNl+iIqiA+IG5hbmtvdVwgOwor5oWo5LiWID4gZ2Fpc2VpXCA7Civnp5jlooMgPiBoaWt5b3VcIDsKK+mFkuiCtCA+IHNodWtvdVwgOwor5rGA57eaID4gdGVpc2VuXCA7Civljrvnl7AgPiBreW90YW5cIDsKK+a1t+WgoSA+IGthaWhvdVwgOwor5ZCM5rCPID4gZG91c2hpXCA7Civnpa3mlL8gPiBzYWlzZWlcIDsKK+mBuumqqCA+IGlrb3RzdVwgOwor6buS5be+ID4ga3Vyb2dvXCA7CivmganmsqIgPiBvbnRha3VcIDsKK+a1t+WfnyA+IGthaWlraVwgOwor5b6E6KGMID4ga2Vpa291XCA7CivmhJvlm70gPiBhaWtva3VcIDsKK+mJhOaLsyA+IHRla2tlblwgOwor5ZCN5q6LID4gbmFnb3JpXCA7CivmsrzmuZYgPiBzaG91a29cIDsKK+iRrOmAgSA+IHNvdXNvdVwgOwor56C06Kq/ID4gaGFjaG91XCA7Civmg7PlrpogPiBzb3V0ZWlcIDsKK+aDheaEnyA+IGpvdWthblwgOwor6Jma5ZCNID4ga3lvbWVpXCA7CivljprnpLwgPiBrb3VyZWlcIDsKK+emgeaJgCA+IGtpbnNob1wgOwor5by+6YGTID4gZGFuZG91XCA7CivmsJHoirggPiBtaW5nZWlcIDsKK+aEn+WYhiA+IGthbnRhblwgOwor5ZO65LmzID4gaG9ueXV1XCA7Civph43ngrkgPiBqdXV0ZW5cIDsKK+WQg+awtCA+IGtpc3N1aVwgOwor56ew5ZG8ID4gc2hvdWtvXCA7Civlj7Dmub4gPiB0YWl3YW5cIDsKK+azieawtCA+IHNlbnN1aVwgOwor6YmE5omHID4gdGVzc2VuXCA7CivmgKrnjaMgPiBrYWlqdXVcIDsKK+WRqOW/jCA+IHNodXVraVwgOwor5rC457aaID4gZWl6b2t1XCA7CivmraPpnaIgPiBtYXRvbW9cIDsKK+mHjeeBsCA+IGp1dWthaVwgOwor5rC057e0ID4gc3VpcmVuXCA7Civnn63pioMgPiB0YW5qdXVcIDsKK+WTgOWTrSA+IGFpa29rdVwgOwor5rC057eaID4gc3Vpc2VuXCA7CivpibHlsbEgPiBrb3V6YW5cIDsKK+WNsee1tSA+IGFidW5hZVwgOwor6Ymx5bGkID4ga291c291XCA7CivmgaXmr5sgPiBjaGltb3VcIDsKK+WMl+ihjCA+IGhva2tvdVwgOwor5rKb54S2ID4gaGFpemVuXCA7Civmrrfos5EgPiBpbnNoaW5cIDsKK+avkuimiyA+IGRva3VtaVwgOwor5Yqp6ZW3ID4gam9jaG91XCA7CivmtrLkvZMgPiBla2l0YWlcIDsKK+WPuOazlSA+IHNoaWhvdVwgOwor6YiN5qC5ID4gZG9ua29uXCA7Civmg4Xlv7UgPiBqb3VuZW5cIDsKK+aCveaDqCA+IHNlaXNhblwgOwor5oOo5a6zID4gc2FuZ2FpXCA7CivomZrli6IgPiBreW9zZWlcIDsKK+eih+e9riA+IHRlaWNoaVwgOwor6YWN572uID4gaGFpY2hpXCA7CivmsJfog7ggPiBraWt5b3VcIDsKK+WSs+WXvSA+IGdhaXNvdVwgOwor5q6L6YeRID4gemFua2luXCA7CivlvqnoiKogPiBmdWtrb3VcIDsKK+WQjOaoqSA+IGRvdWtlblwgOwor5q+s6Je7ID4gbWFyaW1vXCA7Civolqvmn5MgPiBrdW5zZW5cIDsKK+engeWkpyA+IHNoaWRhaVwgOwor5q+b6J+5ID4ga2VnYW5pXCA7CivlvqnoiIggPiBmdWtrb3VcIDsKK+aEm+WUsSA+IGFpc2hvdVwgOwor5oCn54q2ID4gc2Vpam91XCA7Civlk4HlkI0gPiBoaW5tZWlcIDsKK+mJseWusyA+IGtvdWdhaVwgOwor5ZCM5qeYID4gZG91eW91XCA7CivljYPoiKwgPiBzZW5wYW5cIDsKK+awtOezuyA+IHN1aWtlaVwgOwor5oKg5o+aID4geXV1eW91XCA7CivmgqrmipUgPiBha3V0b3VcIDsKK+WOn+ebpCA+IGdlbmJhblwgOwor6bO06ZaAID4gbmFydXRvXCA7Civli5XovKogPiBkb3VyaW5cIDsKK+ays+a1gSA+IGthcnl1dVwgOwor5Y6a552AID4gYXRzdWdpXCA7CivmgqrmiY0gPiBha3VzYWlcIDsKK+aCquaJiyA+IGFrdXNodVwgOwor5oSf5ZCfID4ga2FuZ2luXCA7CivmsrzmsJcgPiBzaG91a2lcIDsKK+ayu+awtCA+IGNoaXN1aVwgOwor5oKq5omAID4gYWt1c2hvXCA7CivpioPlo7AgPiBqdXVzZWlcIDsKK+WNteeuoSA+IHJhbmthblwgOwor5q2O6aGYID4gdGFuZ2FuXCA7Civpu5LlrZcgPiBrdXJvamlcIDsKK+m7kuWtkCA+IGhva3Vyb1wgOwor5oK25oK2ID4gbW9ubW9uXCA7CivmgqrmiKYgPiBha3VzZW5cIDsKK+WLlei7oiA+IGRvdXRlblwgOwor56aA5oCnID4gcmluc2VpXCA7Civli4fpgoEgPiB5dXVtYWlcIDsKK+WNseevpCA+IGtpdG9rdVwgOwor56eB5aCxID4gc2hpaG91XCA7CivmgrLmhIEgPiBoaXNodXVcIDsKK+a2iOWMliA+IHNob3VrYVwgOwor5q2j6ZaPID4gc2VpanVuXCA7CivmraPploAgPiBzZWltb25cIDsKK+W9ouimiyA+IGthdGFtaVwgOwor5ZCM5qOyID4gZG91c2VpXCA7Civpto/oiI4gPiBrZWlzaGFcIDsKK+WMheijhSA+IGhvdXNvdVwgOwor5b6z576pID4gdG9rdWdpXCA7CivokYnphbggPiB5b3VzYW5cIDsKK+WKtOmKgCA+IHJvdWdpblwgOwor5Y2w566xID4gaW5iYWtvXCA7CivlvozokYkgPiBrb3V5b3VcIDsKK+mDteiiiyA+IHl1dXRhaVwgOwor6YWN57eaID4gaGFpc2VuXCA7Civli4fpgIAgPiB5dXV0YWlcIDsKK+WQueaMmSA+IHN1aWt5b1wgOwor5q6K6YGHID4gc2h1Z3V1XCA7CivokrzojKsgPiBzb3Vib3VcIDsKK+awtOeuoSA+IHN1aWthblwgOwor56We5o6IID4gc2hpbmp1XCA7CivmgqrmhYsgPiBha3V0YWlcIDsKK+WPpOa1gSA+IGtvcnl1dVwgOwor5Y2B6IO9ID4ganV1bm91XCA7CivpioDloYogPiBnaW5rYWlcIDsKK+iXu+WxkSA+IG1va3V6dVwgOwor6Jma5YOPID4ga3lvem91XCA7CivphZLnsr4gPiBzaHVzZWlcIDsKK+WQjOaguSA+IGRvdWtvblwgOwor5rKZ5rygID4gc2FiYWt1XCA7CivmsLTnrZIgPiBzdWl0b3VcIDsKK+m7meWlkSA+IG1va2tlaVwgOwor5oSf5YuVID4ga2FuZG91XCA7CivlkIzmoKEgPiBkb3Vrb3VcIDsKK+mHjea2siA+IGp1dWVraVwgOwor5Y+k5rOoID4ga29jaHV1XCA7CivljZjnt5ogPiB0YW5zZW5cIDsKK+W9k+ipsiA+IHRvdWdhaVwgOwor5Y2w56ugID4gaW5zaG91XCA7Civmr5Lom74gPiBkb2t1Z2FcIDsKK+WOn+eUoyA+IGdlbnNhblwgOwor5Yud6LKgID4gc2hvdWJ1XCA7Civljp/nlJ8gPiBnZW5zZWlcIDsKK+W7tumVtyA+IGVuY2hvdVwgOwor6YeR5rOlID4ga29uZGVpXCA7Civnn6XpgYcgPiBjaGlndXVcIDsKK+atjOmbhiA+IGthc2h1dVwgOwor5rGg55WUID4gY2hpaGFuXCA7CivljabnrpcgPiBrZWlzYW5cIDsKK+m7kuWltCA+IGtva3Vkb1wgOwor5oCl54GrID4ga3l1dWthXCA7CivnpZ7mioAgPiBzaGluZ2lcIDsKK+mKgOWdkSA+IGdpbmtvdVwgOwor5rOV5pu5ID4gaG91c291XCA7CivlkIzmnZEgPiBkb3Vzb25cIDsKK+WOmueUnyA+IGtvdXNlaVwgOwor5ZCN5pytID4gbmFmdWRhXCA7CivmgqrmgKcgPiBha3VzZWlcIDsKK+WNmOe0lCA+IHRhbmp1blwgOwor5ZCN5pybID4gbWVpYm91XCA7Civli6foqqwgPiBrYW56ZWlcIDsKK+WQkeaakSA+IGtvdXNob1wgOwor6JiK5aWlID4gdW4nJ25vdVwgOwor5b+r55ygID4ga2FpbWluXCA7Civmgqrlv7UgPiBha3VuZW5cIDsKK+WNiue6jyA+IGhhbnRlblwgOwor5b6h6ICFID4gZ3lvc2hhXCA7CivmsLTnqLIgPiBzdWl0b3VcIDsKK+WQjOaciyA+IGRvdWJvdVwgOwor5ZCI5p2/ID4gZ291YmFuXCA7CivlkIzmm7ggPiBkb3VzaG9cIDsKK+mHkeawlyA+IGthbmFrZVwgOwor56eY5Yy/ID4gaGl0b2t1XCA7CivmhJ/lhpIgPiBrYW5ib3VcIDsKK+emj+WvvyA+IGZ1a3VqdVwgOwor5oCq5ryiID4ga2Fpa2FuXCA7CivpiYTlt6UgPiB0ZWtrb3VcIDsKK+WQiOacrCA+IGdhcHBvblwgOwor6YGt6ZujID4gc291bmFuXCA7Civph43msLQgPiBqdXVzdWlcIDsKK+awtOemvSA+IHN1aWtpblwgOwor5oSf5YWJID4ga2Fua291XCA7CivomZrkvJ0gPiBreW9kZW5cIDsKK+WQiOacjSA+IGFpZnVrdVwgOwor5oKg5oKgID4geXV1eXV1XCA7CivljZfnsbMgPiBuYW5iZWlcIDsKK+m2j+e+pCA+IGtlaWd1blwgOwor6YWN566hID4gaGFpa2FuXCA7Civlk4DlgrcgPiBhaXNob3VcIDsKK+WPl+azqCA+IGp1Y2h1dVwgOwor5Yq06YCjID4gcm91cmVuXCA7Civli6boqI4gPiBzb3V0b3VcIDsKK+WOs+eEtiA+IGdlbnplblwgOwor6YmX5a2QID4ga2Fuc2hpXCA7CivljZjnsKEgPiB0YW5rYW5cIDsKK+iUteeJiCA+IHpvdWhhblwgOwor5rC056WeID4gc3VpamluXCA7CivmgqrlvIogPiBha3VoZWlcIDsKK+WJtemdoiA+IHNvdW1lblwgOwor5Yq06L6yID4gcm91bm91XCA7CivlvqnnuIEgPiBmdWt1ZW5cIDsKK+elnuaEjyA+IHNoaW4nJ2lcIDsKK+m7veWLiSA+IGJpbmJlblwgOwor5oSP5YqbID4gaXJ5b2t1XCA7CivlvZPooYwgPiB0b3Vrb3VcIDsKK+emheWwvCA+IHplbicnbmlcIDsKK+elneaEjyA+IHNodWt1aVwgOwor5rOV5paHID4gaG91YnVuXCA7CivliqDph40gPiBrYWNob3VcIDsKK+WQjOaWrSA+IGRvdWRhblwgOwor5Y+W5rC0ID4gc2h1c3VpXCA7CivmtYTln58gPiBqb3Vpa2lcIDsKK+WQjeaWhyA+IG1laWJ1blwgOwor5Y2K57SZID4gaGFuc2hpXCA7CivlvJTovp4gPiBjaG91amlcIDsKK+mJseWdkSA+IGtvdWtvdVwgOwor5ZCN5pWwID4gbWVpc3V1XCA7CivphZLnqI4gPiBzaHV6ZWlcIDsKK+WQjOaWhyA+IGRvdWJ1blwgOwor5Yud6Ki0ID4gc2hvdXNvXCA7Civljp/nirYgPiBnZW5qb3VcIDsKK+a1t+WGhSA+IGthaWRhaVwgOwor5ZCM5pWwID4gZG91c3V1XCA7CivmtbflhbUgPiBrYWloZWlcIDsKK+W+k+iAhSA+IGp1dXNoYVwgOwor5YyF6JS1ID4gaG91em91XCA7Civlvr3nq6AgPiBraXNob3VcIDsKK+avm+iMuCA+IG1vdWpvdVwgOwor56aF5a6aID4gemVuam91XCA7CivlkIjmlrkgPiBhaWthdGFcIDsKK+m7kuWcsCA+IGt1cm9qaVwgOwor5rKI5rijID4gY2hpbnNhXCA7CivlvozogqIgPiBrb3VzaGlcIDsKK+m7kuWcnyA+IGtva3Vkb1wgOwor5Y6f54mIID4gZ2VucGFuXCA7CivoloTmnb8gPiB1c3VpdGFcIDsKK+efreizhyA+IHRhbnNoaVwgOwor6YeR5qipID4ga2lua2VuXCA7CivljZfnq68gPiBuYW50YW5cIDsKK+W8t+iriyA+IGdvdXNlaVwgOwor5by36KuHID4gZ291ZGFuXCA7CivpipjliIAgPiBtZWl0b3VcIDsKK+aClOaBqCA+IGthaWtvblwgOwor6YGg6ZqUID4gZW5rYWt1XCA7CivmsbrmvbAgPiBrZWtrYWlcIDsKK+iWpuaMmSA+IHNlbmt5b1wgOwor6buE5aG1ID4ga291amluXCA7Civli5XoqZ4gPiBkb3VzaGlcIDsKK+engOWPpSA+IHNodXVrdVwgOwor6Yej5p6cID4gY2hvdWthXCA7Civlj6Tmpb0gPiBrb2dha3VcIDsKK+WPuOabuCA+IHNoaXNob1wgOwor5b6M6ICFID4ga291c2hhXCA7CivljJfoiKogPiBob2trb3VcIDsKK+mIjeaJjSA+IGRvbnNhaVwgOwor5ZC45byVID4ga3l1dWluXCA7Civlu4PpoL0gPiBoYWl0YWlcIDsKK+iXu+WhqSA+IG1vc2hpb1wgOwor6YqD5Y+jID4ganV1a291XCA7CivlvLfoqJggPiBreW91a2lcIDsKK+aApea0viA+IGt5dXVoYVwgOwor5Ym16ZaLID4gc291a2FpXCA7Civlj43mr5sgPiBoYW5tb3VcIDsKK+iWhOaariA+IGhha3Vib1wgOwor55+p6LGhID4ga3VzaG91XCA7CivmsLTnnYAgPiBtaXp1Z2lcIDsKK+a6gOOAhSA+IG1hbm1hblwgOwor56KR55+zID4gaGlzZWtpXCA7CivmhJrkvZwgPiBndXNha3VcIDsKK+WKoOmAnyA+IGthc29rdVwgOwor5b6M572uID4ga291Y2hpXCA7CivmsZrniakgPiBvYnV0c3VcIDsKK+WPsuabuCA+IHNoaXNob1wgOwor5rSq5aSnID4ga291ZGFpXCA7Civlj7DmnKwgPiBkYWlob25cIDsKK+m2j+ezniA+IGtlaWZ1blwgOwor5rC055ukID4gc3VpYmFuXCA7CivljIXojpYgPiBob3VrZWlcIDsKK+WShuWTriA+IGhvdWtvdVwgOwor56S85oudID4gcmVpaGFpXCA7Civlvq7nrJEgPiBiaXNob3VcIDsKK+WJpemboiA+IGhha3VyaVwgOwor6YG46YmxID4gc2Vua291XCA7Civljp/ngrkgPiBnZW50ZW5cIDsKK+iSkOiNtyA+IHNodXVrYVwgOwor5Y2D56+HID4gc2VucGVuXCA7Civlj6TmoLwgPiBrb2tha3VcIDsKK+axuua4iCA+IGtlc3NhaVwgOwor5Y2R56ewID4gaGlzaG91XCA7CivpiI3mhJ8gPiBkb25rYW5cIDsKK+WMheiMjiA+IGhvdWtlaVwgOwor5q+b6ISbID4ga2V6dW5lXCA7Civmr5vohJogPiBrZWFzaGlcIDsKK+mzs+i8piA+IGhvdXJlblwgOwor5Yq06LOHID4gcm91c2hpXCA7CivmgKrmrbsgPiBrYWlzaGlcIDsKK+egsuiJpiA+IGhvdWthblwgOwor56eB5YiRID4gc2hpa2VpXCA7CivphZTnnLwgPiBzdWlnYW5cIDsKK+W5vOm9oiA+IHlvdXJlaVwgOwor5bu76YCBID4ga2Fpc291XCA7Civlu7rpgKAgPiBrZW56b3VcIDsKK+WIuumtmiA+IHRvZ2V1b1wgOwor6YOo6JC9ID4gYnVyYWt1XCA7Civlj7fmlbAgPiBnb3VzdXVcIDsKK+mKg+WJtSA+IGp1dXNvdVwgOwor56WW5bufID4gc29ieW91XCA7CivljbXnlJ8gPiByYW5zZWlcIDsKK+mKg+WJoyA+IGp1dWtlblwgOwor5Y+C5q6/ID4gc2FuZGVuXCA7CivlvJXosqwgPiBpbnNla2lcIDsKK+iXqeWjqyA+IGhhbnNoaVwgOwor5rC055eYID4gc3VpdG91XCA7Civph5Hmn5EgPiBraW5rYW5cIDsKK+efreipqSA+IHRhbnNoaVwgOwor5oGS5pifID4ga291c2VpXCA7Civmg4XloLEgPiBqb3Vob3VcIDsKK+m6l+WuuSA+IHJlaXlvdVwgOwor6YSt566LID4gdGVpc2VuXCA7CivmsLTnlrEgPiBzdWlob3VcIDsKK+WPouaelyA+IHNvdXJpblwgOwor5Y+z5paHID4geXV1YnVuXCA7CivpioPliJEgPiBqdXVrZWlcIDsKK+mDteiIuSA+IHl1dXNlblwgOwor5ZCN5omLID4gbWVpc2h1XCA7Civlvoznt6ggPiBrb3VoZW5cIDsKK+engeWFtSA+IHNoaWhlaVwgOwor5ZCN5omAID4gbWVpc2hvXCA7CivpgoLpgIUgPiBrYWlrb3VcIDsKK+WPpOacqCA+IGtvYm9rdVwgOwor6YeR5p2vID4ga2lucGFpXCA7Civnn6XorIAgPiBjaGlib3VcIDsKK+engeWFmiA+IHNoaXRvdVwgOwor5ZCM5omAID4gZG91c2hvXCA7CivlkIzmiL8gPiBkb3Vib3VcIDsKK+WQm+aBqSA+IGt1bicnb25cIDsKK+WQiOaKsSA+IGdvdWhvdVwgOwor5oOz5YiwID4gc291dG91XCA7Civljp/mvZwgPiBnZW5zZW5cIDsKK+mGpOayuSA+IHNob3V5dVwgOwor5b6u56aEID4gYmlyb2t1XCA7CivnooHnn7MgPiBnb2lzaGlcIDsKK+W+jOe2mSA+IGtvdWtlaVwgOwor5rOw5bmzID4gdGFpaGVpXCA7Civlj7DmlbAgPiBkYWlzdXVcIDsKK+awtOeUsCA+IHN1aWRlblwgOwor5rW35LiKID4ga2Fpam91XCA7CivmsLTnlKMgPiBzdWlzYW5cIDsKK+W5tOm9oiA+IG5lbnJlaVwgOwor5rC055SfID4gc3Vpc2VpXCA7CivpgbzpgaAgPiByeW91ZW5cIDsKK+W6lemtmiA+IHNva291b1wgOwor5oGS5pWwID4ga291c3V1XCA7Civnp5jkuK0gPiBoaWNodXVcIDsKK+WJjemghSA+IHplbmtvdVwgOwor5Y+i5pu4ID4gc291c2hvXCA7Civmrrroj4wgPiBzYWtraW5cIDsKK+W7u+i7oiA+IGthaXRlblwgOwor5qyg6ZmlID4ga2Vra2FuXCA7Civpipjku5kgPiBtZWlzZW5cIDsKK+efreimiyA+IHRhbmtlblwgOwor5ZG85ZC4ID4ga29reXV1XCA7CivlvLHooYwgPiBqYWtrb3VcIDsKK+WRveWQjSA+IG1laW1laVwgOwor56aF5aCCID4gemVuZG91XCA7CivlkIjmiKYgPiBrYXNzZW5cIDsKK+WRvOWQjSA+IHlvYmluYVwgOwor5q2T6YCBID4ga2Fuc291XCA7CivlkIjmiJAgPiBnb3VzZWlcIDsKK+axuuawtCA+IGtlc3N1aVwgOwor5ZCM5oaCID4gZG91eXV1XCA7CivpioXlg48gPiBkb3V6b3VcIDsKK+WQjOaFtiA+IGRvdWtlaVwgOwor5Y2Y55y8ID4gdGFuZ2FuXCA7CivmrZPov44gPiBrYW5nZWlcIDsKK+mHjeabuSA+IGp1dXNvdVwgOwor5YmN6Z2iID4gemVubWVuXCA7Civlj6TmmJQgPiBrb3Nla2lcIDsKK+iSuOexoCA+IHNlaXJvdVwgOwor5q+U57+8ID4gaGl5b2t1XCA7CivlkIjmhrIgPiBnb3VrZW5cIDsKK+WNmOebuCA+IHRhbnNvdVwgOwor6YmE5aGUID4gdGV0dG91XCA7CivlkIzmhJ8gPiBkb3VrYW5cIDsKK+a1quS6uiA+IHJvdW5pblwgOwor5YmU6ZmkID4gdGVraWpvXCA7CivlkIjmho4gPiBhaW5pa3VcIDsKK+ayoeabuCA+IGJvc3Nob1wgOwor5qyh6ZW3ID4gamljaG91XCA7Civpt7nmtL4gPiB0YWthaGFcIDsKK+aCquWmuyA+IGFrdXNhaVwgOwor6bqX5ae/ID4gcmVpc2hpXCA7CivliY3pm7sgPiB6ZW5kZW5cIDsKK+efpeimiyA+IGNoaWtlblwgOwor5rG65q27ID4ga2Vzc2hpXCA7Civmg7Plg48gPiBzb3V6b3VcIDsKK+WPluadkCA+IHNodXphaVwgOwor5ZCM5oOFID4gZG91am91XCA7CivliLbppq0gPiBzZWlneW9cIDsKK+WQkeaApyA+IGtvdXNlaVwgOwor6Jit5Lq6ID4gcmFuamluXCA7Civmrr/oiI4gPiBkZW5zaGFcIDsKK+iPjOmhniA+IGtpbnJ1aVwgOwor56We5a6uID4gamluZ3V1XCA7CivmgrLlooMgPiBoaWt5b3VcIDsKK+WOs+atoyA+IGdlbnNlaVwgOwor6JC96KqeID4gcmFrdWdvXCA7Civpu4TlkLsgPiBrb3VmdW5cIDsKK+mHjeaYnyA+IGp1dXNlaVwgOwor5Y+j5pWwID4ga291c3V1XCA7CivljbXnirYgPiByYW5qb3VcIDsKK+ato+izkyA+IHNlaWhpblwgOwor5byV6Ki8ID4gaW5zaG91XCA7CivmgqrlpKkgPiBha3V0ZW5cIDsKK+W+jOevhyA+IGtvdWhlblwgOwor6buE5Y+jID4ga291a291XCA7CivlkIzmgKcgPiBkb3VzZWlcIDsKK+aCquWjsCA+IGFrdXNlaVwgOwor5rOw5bGxID4gdGFpemFuXCA7Civpga3pgYcgPiBzb3VndXVcIDsKK+mHjeaWhyA+IGp1dWJ1blwgOwor5YmK6ZmkID4gc2FrdWpvXCA7CivljYrnnaEgPiBoYW5zdWlcIDsKK+WQjOW/lyA+IGRvdXNoaVwgOwor5ZC+5aa5ID4gd2FnaW1vXCA7CivljYrnnLwgPiBoYW5nYW5cIDsKK+WQiOaApyA+IGFpc2hvdVwgOwor56eB5Lq6ID4gc2hpamluXCA7Civlj7PmipggPiB1c2V0c3VcIDsKK+elreWjhyA+IHNhaWRhblwgOwor5Y6f5rK5ID4gZ2VuJyd5dVwgOwor5q2z6KiIID4gc2Fpa2VpXCA7CivmgKfmoLkgPiBzaG91bmVcIDsKK+iRm+iXpCA+IGthdHRvdVwgOwor5Y2K55uyID4gaGFubW91XCA7Civlvoznq68gPiBrb3V0YW5cIDsKK+a1hOWGmSA+IGpvdXNoYVwgOwor5ZCM5b2iID4gZG91a2VpXCA7CivliY3ploAgPiB6ZW5tb25cIDsKK+aCquWgtCA+IHdhcnViYVwgOwor5oKq5aCxID4gYWt1aG91XCA7Civms5Xlu7cgPiBob3V0ZWlcIDsKK+WPs+aJiyA+IG1pZ2l0ZVwgOwor5Y+M5pu4ID4gc291c2hvXCA7Civlv4PnkIYgPiBzaGlucmlcIDsKK+WPi+aciyA+IHl1dWhvdVwgOwor5b+r5ryiID4ga2Fpa2FuXCA7CivljYfnm64gPiBtYXN1bWVcIDsKK+ekvOW4vSA+IHJlaWJvdVwgOwor5Ye66by7ID4gZGViYW5hXCA7Civlj4nmnKggPiBtYXRhZ2lcIDsKK+atqeiqvyA+IGhvY2hvdVwgOwor5bqX6aCtID4gdGVudG91XCA7Civnpa3loLQgPiBzYWlqb3VcIDsKK+W5vemtgiA+IHl1dWtvblwgOwor56We5aiBID4gc2hpbicnaVwgOwor5Y+I5pyoID4gbWF0YWdpXCA7CivlubzprZogPiB5b3VneW9cIDsKK+WIuumdkiA+IHNoaXNlaVwgOwor5Y6f5rCRID4gZ2VubWluXCA7CivlibXpgKAgPiBzb3V6b3VcIDsKK+aBsOW6piA+IGNob3Vkb1wgOwor5ZC55aWPID4gc3Vpc291XCA7CivlkI3lupcgPiBtZWl0ZW5cIDsKK+WIuOmdoiA+IGtlbm1lblwgOwor5Y6f5q+bID4gZ2VubW91XCA7CivpioPkuLggPiBqdXVnYW5cIDsKK+W5sumxiCA+IGhpZGFyYVwgOwor5ZCM5bqXID4gZG91dGVuXCA7Civlj6/miJAgPiBrYW5hcmlcIDsKK+WIsOmgrSA+IHRvdXRvdVwgOwor5ZCI5byBID4gZ291YmVuXCA7Civms5XluKsgPiBob3VzaGlcIDsKK+W8geirliA+IGJlbnJvblwgOwor5Y+N5pigID4gaGFuJydlaVwgOwor5ZCM5bm0ID4gZG91bmVuXCA7Civms5XluJYgPiBob3Vqb3VcIDsKK+a1geWEgCA+IHJ5dXVnaVwgOwor5q2j6KuWID4gc2Vpcm9uXCA7Civmg4Xlj7IgPiBqb3VzaGlcIDsKK+a0u+WGmSA+IGthc3NoYVwgOwor5rC054WuID4gbWl6dW5pXCA7CivlirHooYwgPiByZWlrb3VcIDsKK+aDh+WOmiA+IHRvbmtvdVwgOwor5bqn6ZW3ID4gemFjaG91XCA7CivmgZDmh7wgPiBreW91a3VcIDsKK+WIpemkqCA+IGJla2thblwgOwor5q+S57SgID4gZG9rdXNvXCA7CivlkI3lt6UgPiBtZWlrb3VcIDsKK+WQjOW4giA+IGRvdXNoaVwgOwor5rC+5r+rID4gaGFucmFuXCA7CivlupXpnaIgPiB0ZWltZW5cIDsKK+WPjOaWuSA+IHNvdWhvdVwgOwor5Y2K55WzID4gaGFuam91XCA7CivnoLTntIQgPiBoYXlha3VcIDsKK+W9vOetiSA+IGthcmVyYVwgOwor6YGO6YePID4ga2FyeW91XCA7Civljpjmr5sgPiByaW5tb3VcIDsKK+WPjeaVsCA+IGhhbnN1dVwgOwor5rCR55SfID4gbWluc2VpXCA7Civmr5vnrqEgPiBtb3VrYW5cIDsKK+WNiueUnyA+IGhhbnNlaVwgOwor5q2j6KiTID4gc2Vpa3VuXCA7Civlj43mlLsgPiBoYW5rb3VcIDsKK+WOu+adpSA+IGt5b3JhaVwgOwor5byB6KejID4gYmVua2FpXCA7CivpgYvph50gPiB1bnNoaW5cIDsKK+mBjumFtyA+IGtha29rdVwgOwor5Y+k5omLID4gZnVydXRlXCA7CivmraPop6MgPiBzZWlrYWlcIDsKK+WItumZkCA+IHNlaWdlblwgOwor5q+b562LID4ga2VzdWppXCA7CivnpL7lsYsgPiBzaGFva3VcIDsKK+awl+eQgyA+IGtpa3l1dVwgOwor5Y+v5oOcID4gYXR0YXJhXCA7CivpgKPpmoogPiByZW50YWlcIDsKK+mBiumHkSA+IHl1dWtpblwgOwor5Y+j5omNID4ga291c2FpXCA7CivphofmraMgPiBqdW5zZWlcIDsKK+aDheWLoiA+IGpvdXNlaVwgOwor5bm96aaZID4geXV1a291XCA7Civph5HmiYcgPiBraW5zZW5cIDsKK+ato+imliA+IHNlaXNoaVwgOwor5ZCb5a2QID4ga3Vuc2hpXCA7CivmraLoprMgPiBzaGlrYW5cIDsKK+WIqememCA+IHJpemF5YVwgOwor5Yil6aCFID4gYmVra291XCA7CivmraPopb8gPiBzZWlzZWlcIDsKK+emj+WIqSA+IGZ1a3VyaVwgOwor6YGF6YiNID4gY2hpZG9uXCA7Civlj5bmjaggPiBzaHVzaGFcIDsKK+WJo+mBkyA+IGtlbmRvdVwgOwor5oCo5pW1ID4gb250ZWtpXCA7CivlvqrnkrAgPiBqdW5rYW5cIDsKK+W7uuiogCA+IGtlbmdlblwgOwor5oGL5oSbID4gcmVuJydhaVwgOwor5qyg6YWNID4ga2VwcGFpXCA7CivptaznqIsgPiBob3V0ZWlcIDsKK+iVg+abuCA+IGJhbnNob1wgOwor5oGS5oCnID4ga291c2VpXCA7Civlu7vopqcgPiBrYWlyYW5cIDsKK+WRveS7pCA+IG1laXJlaVwgOwor5ZCN5bGxID4gbWVpemFuXCA7CivnnJ/ptKggPiBtYWdhbW9cIDsKK+mAo+mWoiA+IHJlbmthblwgOwor5ZCR5a+SID4ga291a2FuXCA7CivmsYDmuJogPiB0ZWlzaG9cIDsKK+aBi+aDhSA+IHJlbmpvdVwgOwor5q2T6KuHID4ga2FuZGFuXCA7CivmgZDmgJYgPiBreW91ZnVcIDsKK+ato+ijhSA+IHNlaXNvdVwgOwor5Y+C5pS/ID4gc2Fuc2VpXCA7CivlkIzlsYUgPiBkb3VreW9cIDsKK+WInemgrSA+IHNob3RvdVwgOwor6YGF6YWNID4gY2hpaGFpXCA7Civlu4PpgIAgPiBoYWl0YWlcIDsKK+axgea2siA+IGp1dWVraVwgOwor6YCa6ZmiID4gdHN1dWluXCA7CivmgbXlrZggPiBrZWl6b25cIDsKK+iWhOW5uCA+IGhha2tvdVwgOwor5ZCM5bCBID4gZG91ZnV1XCA7Civlj7DlvaIgPiBkYWlrZWlcIDsKK+azleWumiA+IGhvdXRlaVwgOwor5rOV5a6YID4gaG91a2FuXCA7CivmgYvmgYsgPiByZW5yZW5cIDsKK+efs+iLsSA+IHNla2llaVwgOwor5b2p566hID4gc2Fpa2FuXCA7CivpgaDotrMgPiBlbnNva3VcIDsKK+WMuueUuyA+IGt1a2FrdVwgOwor5Y6z5pqRID4gZ2Vuc2hvXCA7CivmrKHpgLEgPiBqaXNodXVcIDsKK+WJjemHkSA+IG1hZWtpblwgOwor6YeN5oWLID4ganV1dGFpXCA7CivmrbvolLUgPiBzaGl6b3VcIDsKK+ayu+W5syA+IGNoaWhlaVwgOwor5rSL5ZOBID4geW91aGluXCA7CivlkIzlrpogPiBkb3V0ZWlcIDsKK+WQjeWtlyA+IG15b3VqaVwgOwor5Yml6LqrID4gbXVraW1pXCA7CivmsLTmupYgPiBzdWlqdW5cIDsKK+awtOa6kCA+IHN1aWdlblwgOwor56aB5Yi2ID4ga2luc2VpXCA7CivpgIHpoqggPiBzb3VmdXVcIDsKK+mBuuiogCA+IHl1aWdvblwgOwor5oGv5a2QID4gbXVzdWtvXCA7Civmganlr7UgPiBvbmNob3VcIDsKK+mBhemBhSA+IGNoaWNoaVwgOwor5oKq5ZCNID4gYWt1bWVpXCA7CivolLXmnKwgPiB6b3Vob25cIDsKK+WOs+aXqCA+IGdlbnNoaVwgOwor5Y6f5qGIID4gZ2VuJydhblwgOwor6YeN5oKjID4ganV1a2FuXCA7Civlj43mipcgPiBoYW5rb3VcIDsKK+elluWbvSA+IHNva29rdVwgOwor5buD6LuKID4gaGFpc2hhXCA7CivolLXmm7ggPiB6b3VzaG9cIDsKK+aCquWPiyA+IGFrdXl1dVwgOwor6YWU5ryiID4gc3Vpa2FuXCA7Civph43mgakgPiBjaG91b25cIDsKK+W5tOmgrSA+IG5lbnRvdVwgOwor5rKz5bqKID4ga2FzaG91XCA7CivmtJfliaQgPiBzZW56YWlcIDsKK+W5vemciiA+IHl1dXJlaVwgOwor56Wt5Y+4ID4gc2Fpc2hpXCA7Civli5jogIMgPiBrYW5rb3VcIDsKK+aBkuW4uCA+IGtvdWpvdVwgOwor5oKy5YqHID4gaGlnZWtpXCA7Civluqfph5EgPiB6YWdhbmVcIDsKK+emheWDpyA+IHplbnNvdVwgOwor5Y+j5b6EID4ga291a2VpXCA7Civlj4zmiYsgPiBtb3JvdGVcIDsKK+efs+iGjyA+IHNla2tvdVwgOwor55+t6ImHID4gdGFudGVpXCA7CivmsLTmtq8gPiBzdWlnYWlcIDsKK+WPjeaIpiA+IGhhbnNlblwgOwor5YiO6aC4ID4gZnVua2VpXCA7Civluqbph48gPiBkb3J5b3VcIDsKK+iSvOeUnyA+IHNvdXNlaVwgOwor5YiG6aSoID4gYnVua2FuXCA7CivliIbppJAgPiBidW5zYW5cIDsKK+mBiui7jSA+IHl1dWd1blwgOwor5Y6f5p2/ID4gZ2VucGFuXCA7Civpg7XnqI4gPiB5dXV6ZWlcIDsKK+mHjuW/gyA+IHlhc2hpblwgOwor5YuD6IiIID4gYm9ra291XCA7CivljJbnn7MgPiBrYXNla2lcIDsKK+ekvuWkliA+IHNoYWdhaVwgOwor5oCv5oemID4ga3lvdWRhXCA7Civlj6PlvIEgPiBrb3ViZW5cIDsKK+WPpOW7nyA+IGtvYnlvdVwgOwor5b2T57GkID4gdG91c2VuXCA7CivluoPplpMgPiBoaXJvbWFcIDsKK+WOn+acrCA+IGdlbnBvblwgOwor5rC05rSXID4gc3Vpc2VuXCA7CivmsLfmsrMgPiBoeW91Z2FcIDsKK+mGuOaIkCA+IGpvdXNlaVwgOwor5Y+C5oudID4gc2FucGFpXCA7CivlubPpnaIgPiBoZWltZW5cIDsKK+W5s+mdmSA+IGhlaXNlaVwgOwor5ZCM5aeTID4gZG91c2VpXCA7Civol4nlj6MgPiBzaGFrb3VcIDsKK+WOn+abuCA+IGdlbnNob1wgOwor5ZCr5Ze9ID4gZ2Fuc291XCA7CivmsLTms6EgPiBzdWlob3VcIDsKK+WQu+WQiCA+IGZ1bmdvdVwgOwor6YO356S+ID4gZ291c2hhXCA7CivpgIHpm7sgPiBzb3VkZW5cIDsKK+WIhumhniA+IGJ1bnJ1aVwgOwor5rK75bGxID4gY2hpc2FuXCA7CivlvoznlJ8gPiBnb3Nob3VcIDsKK+aBsOWlvSA+IGtha2tvdVwgOwor5Yqg6JasID4ga2F5YWt1XCA7Civlv6vmpb0gPiBrZXJha3VcIDsKK+WPjeaEnyA+IGhhbmthblwgOwor5ZCM5aW9ID4gZG91a291XCA7CivolqzlnJIgPiB5YWt1ZW5cIDsKK+iXqeS+ryA+IGhhbmtvdVwgOwor5oGv5aWzID4gc29rdWpvXCA7Civms5XlpJYgPiBob3VnYWlcIDsKK+mJhOWCmCA+IHRlc3NhblwgOwor5rGf5p2RID4ga291c29uXCA7Civlv7XmoKEgPiBuZW5rb3VcIDsKK+WNmOa8oiA+IHRhbmthblwgOwor56OB5p2fID4gamlzb2t1XCA7CivlkI3lpKcgPiBtZWlkYWlcIDsKK+W5vemWkSA+IHl1dWthblwgOwor5bm96ZaJID4geXV1aGVpXCA7Civlv43ms5UgPiBuaW5wb3VcIDsKK+W5vemWgCA+IHl1dW1vblwgOwor5Y+C5oimID4gc2Fuc2VuXCA7CivlkIzlpKcgPiBkb3VkYWlcIDsKK+WLsuetiSA+IGt1bnRvdVwgOwor5b2555uuID4geWFrdW1lXCA7Civmg4XkurogPiBqb3VuaW5cIDsKK+iRl+iAhSA+IGNob3NoYVwgOwor556l6KaLID4gYmVra2VuXCA7CivlkI3lo7AgPiBtZWlzZWlcIDsKK+aDheS6pCA+IGpvdWtvdVwgOwor5Y+k5bejID4gZnVydXN1XCA7CivlkI3lo6sgPiBtZWlzaGlcIDsKK+mBteihjCA+IGp1bmtvdVwgOwor6YCA6ZmjID4gdGFpamluXCA7CivliaPosaogPiBrZW5nb3VcIDsKK+awtOawlyA+IG1penVrZVwgOwor5ZCM5aOrID4gZG91c2hpXCA7CivlubTpmZAgPiBuZW5nZW5cIDsKK+WPi+aDhSA+IHl1dWpvdVwgOwor5rKi5bq1ID4gdGFrdWFuXCA7CivpgY7os54gPiBrYXNob3VcIDsKK+avkuefoiA+IGRva3V5YVwgOwor5Y6z5o6iID4gZ2VudGFuXCA7CivlkIjlpY8gPiBnYXNzb3VcIDsKK+aCsuWCtyA+IGhpc2hvdVwgOwor6YeR5belID4ga2lua291XCA7Civmr5vnmq4gPiBrZWdhd2FcIDsKK+WNl+a6nyA+IG5hbm1laVwgOwor6JGJ6IWLID4geW91ZWtpXCA7CivliY3ou40gPiB6ZW5ndW5cIDsKK+WLh+iAhSA+IHl1dXNoYVwgOwor5YmN6LuKID4gemVuc2hhXCA7CivmsLTmr40gPiBrdXJhZ2VcIDsKK+ebrum8uyA+IG1laGFuYVwgOwor6YO9552jID4gdG90b2t1XCA7CivljZfmuoAgPiBuYW5tYW5cIDsKK+aCquWFmiA+IGFrdXRvdVwgOwor5Y+y5a6YID4gc2hpa2FuXCA7CivpgYvos4MgPiB1bmNoaW5cIDsKK+aAp+aEnyA+IHNlaWthblwgOwor5rC05q27ID4gc3Vpc2hpXCA7Civljp/mlocgPiBnZW5idW5cIDsKK+mBiuizhyA+IHl1dXNoaVwgOwor6bqm5L6hID4gYmFrdWthXCA7Civph43lt6UgPiBqdXVrb3VcIDsKK+efpeiDvSA+IGNoaW5vdVwgOwor5Ym16KaLID4gc291a2VuXCA7Civnpa3lhbggPiBzYWl0ZW5cIDsKK+WLlee3miA+IGRvdXNlblwgOwor5b+15pu4ID4gbmVuc2hvXCA7CivlubTplpMgPiBuZW5rYW5cIDsKK+W/heayuyA+IGhpdGNoaVwgOwor56aB5LukID4ga2lucmVpXCA7Civmra/ojI4gPiBoYWd1a2lcIDsKK+aAp+aDhSA+IHNlaWpvdVwgOwor5oKq5YOnID4gYWt1c291XCA7CivlvpPniq8gPiBqdXVoYW5cIDsKK+elnuWMliA+IHNoaW5rYVwgOwor6Jep5Li7ID4gaGFuc2h1XCA7CivljaDms5UgPiBzZW5wb3VcIDsKK+efpeiCsiA+IGNoaWlrdVwgOwor56S+5ZujID4gc2hhZGFuXCA7Civlirnog70gPiBrb3Vub3VcIDsKK+WIhumamyA+IGJ1bnphaVwgOwor6YGB6LWwID4gdG9uc291XCA7CivokLXoi6MgPiBjaGlzaGFcIDsKK+WQieWgsSA+IGtpcHBvdVwgOwor5YiG6ZqKID4gYnVudGFpXCA7Civlj43lvbEgPiBoYW4nJ2VpXCA7CivmgKDmhaIgPiB0YWltYW5cIDsKK+egtOebriA+IHdhcmVtZVwgOwor6YCg6YWSID4gem91c2h1XCA7CivlibXoo70gPiBzb3VzZWlcIDsKK+WIhumZoiA+IGJ1bicnaW5cIDsKK+elnuWKqSA+IHNoaW5qb1wgOwor5YiG6ZmQID4gYnVuZ2VuXCA7CivljZfmtbcgPiBuYW5rYWlcIDsKK+WQjOWeiyA+IGRvdWtlaVwgOwor5oCd5oWuID4gc2hpcnlvXCA7CivmsbrmiKYgPiBrZXNzZW5cIDsKK+mAo+mCpiA+IHJlbnBvdVwgOwor5Yex6aKoID4gZ2FpZnV1XCA7CivmgKjlv7UgPiBvbicnbmVuXCA7CivljJbnlJ8gPiBrZXNob3VcIDsKK+mHkeWxsSA+IGtpbnphblwgOwor55+l6ICFID4gY2hpc2hhXCA7CivlkKblkKYgPiBpeWFpeWFcIDsKK+WOs+aIkiA+IGdlbmthaVwgOwor5Ye26Z+zID4ga3lvdWluXCA7Civlv4PmsJcgPiBzaGlua2lcIDsKK+aCn+WFpSA+IGdvbnl1dVwgOwor5ZCM5ZywID4gZG91Y2hpXCA7CivnoZ3nhZkgPiBzaG91ZW5cIDsKK+mFjeawtCA+IGhhaXN1aVwgOwor6YC46LazID4gaXNzb2t1XCA7CivmgJ3mg7MgPiBzaGlzb3VcIDsKK+egpeefsyA+IHRvaXNoaVwgOwor5YiH6ZaLID4gc2Vra2FpXCA7CivlubTpkZEgPiBuZW5rYW5cIDsKK+W/heatuyA+IGhpc3NoaVwgOwor5Y+k5a62ID4gZnVydWllXCA7CivlvZPnpL4gPiB0b3VzaGFcIDsKK+iQveiDpCA+IHJha3VpblwgOwor6Jas5ZGzID4geWFrdW1pXCA7CivmsLTmp70gPiBzdWlzb3VcIDsKK+mDjuetiSA+IHJvdWRvdVwgOwor6YeN5bGkID4ganV1c291XCA7CivliY3os6IgPiB6ZW5rZW5cIDsKK+ecvOmPoSA+IG1lZ2FuZVwgOwor55yf6Z2iID4gbWF0b21vXCA7CivmgqrkvosgPiBha3VyZWlcIDsKK+WPo+WuoyA+IGtvdXNlblwgOwor55+i5769ID4geWFiYW5lXCA7CivnnJ/pnZIgPiBtYXNzYW9cIDsKK+WNiua4myA+IGhhbmdlblwgOwor5rCX5rWBID4ga2lyeXV1XCA7CivpgLLot68gPiBzaGlucm9cIDsKK+WPpOWtpiA+IGtvZ2FrdVwgOwor5Y+35aSWID4gZ291Z2FpXCA7CivokrznhLYgPiBzb3V6ZW5cIDsKK+asoOismyA+IGtla2tvdVwgOwor6JWp5bC9ID4gdG91amluXCA7Civlj43luJ0gPiBoYW50ZWlcIDsKK+atu+iAhSA+IHNoaXNoYVwgOwor5b+r5pm0ID4ga2Fpc2VpXCA7CivpgZToprMgPiB0YWtrYW5cIDsKK+WHuumamyA+IGRlZ2l3YVwgOwor5Y+O5beuID4gc2h1dXNhXCA7CivlvaLnm7ggPiBrZWlzb3VcIDsKK+axuuaEjyA+IGtldHN1aVwgOwor5bqV6L66ID4gdGVpaGVuXCA7CivpgZPoprMgPiBkb3VrYW5cIDsKK+WQm+WRvSA+IGt1bm1laVwgOwor6YGU6KaLID4gdGFra2VuXCA7Civph47lrr8gPiBub2p1a3VcIDsKK+mBiuiqrCA+IHl1dXplaVwgOwor55+t57eoID4gdGFucGVuXCA7Civliaroo4EgPiBzZW5zYWlcIDsKK+iRm+eyiSA+IGt1enVrb1wgOwor5oKq5LukID4gYWt1cmVpXCA7CivpgJrpgY4gPiB0c3V1a2FcIDsKK+aAneW/tSA+IHNoaW5lblwgOwor6YCa6YGLID4gdHN1dXVuXCA7CivoloTloakgPiB1c3VqaW9cIDsKK+ecn+mamyA+IG1hZ2l3YVwgOwor5ZCE5ZueID4ga2Fra2FpXCA7CivmgqrkurogPiBha3VuaW5cIDsKK+atu+e9qiA+IHNoaXphaVwgOwor6YCj6LyJID4gcmVuc2FpXCA7CivnpZ3lhIAgPiBzaHV1Z2lcIDsKK+awtOajsiA+IHN1aXNlaVwgOwor5q2m6IejID4gYnVzaGluXCA7CivliKXpgrggPiBiZXR0ZWlcIDsKK+W/q+aWuSA+IGthaWhvdVwgOwor5rOi5Y+KID4gaGFreXV1XCA7CivpgJnpgJkgPiBob3Vob3VcIDsKK+WOn+aLoCA+IGdlbmt5b1wgOwor6Jao5Y67ID4ga291a3lvXCA7CivlvKnntJogPiBkb2t5dXVcIDsKK+avm+eOiSA+IGtlZGFtYVwgOwor6bqX5Lq6ID4gcmVpamluXCA7Civph4zlrZAgPiBzYXRvZ29cIDsKK+ekvuWRvSA+IHNoYW1laVwgOwor5b+D5qmfID4gc2hpbmtpXCA7Civmra/ogokgPiBoYW5pa3VcIDsKK+iNt+mejSA+IG5pZ3VyYVwgOwor55+z57KJID4gaXNoaWtvXCA7CivmgqnkubEgPiBub3VyYW5cIDsKK+awkeazlSA+IG1pbnBvdVwgOwor6YW45pWXID4gc2FucGFpXCA7CivljoTml6UgPiB5YWt1YmlcIDsKK+WRiOS4iiA+IHRlaWpvdVwgOwor5Y2X5qynID4gbmFuJydvdVwgOwor6YeR5amaID4ga2lua29uXCA7CivpgYropqcgPiB5dXVyYW5cIDsKK+a4heOAhSA+IHNlaXNlaVwgOwor5bu76Ii5ID4ga2Fpc2VuXCA7CivljI3nkIMgPiBob2t5dXVcIDsKK+mBruiUvSA+IHNoYWhlaVwgOwor56S+5ZCNID4gc2hhbWVpXCA7CivolqzlirkgPiB5YWtrb3VcIDsKK+iRrOelrSA+IHNvdXNhaVwgOwor5oCd5byBID4gc2hpYmVuXCA7CivliKXpgIEgPiBiZXNzb3VcIDsKK+ekvuWPsiA+IHNoYXNoaVwgOwor56Wt5Li7ID4gc2Fpc2h1XCA7CivmtIvkuIogPiB5b3Vqb3VcIDsKK+awtOagkyA+IHN1aXNlblwgOwor6I+v6KGoID4ga2FoeW91XCA7CivlkI3lk4EgPiBtZWloaW5cIDsKK+iRrOekvCA+IHNvdXJlaVwgOwor6YCT6YCBID4gdGVpc291XCA7CivnpL7lj4sgPiBzaGF5dXVcIDsKK+mDoeecjCA+IGd1bmtlblwgOwor6YeN5amaID4ganV1a29uXCA7CivlvJvnt6kgPiBjaGlrYW5cIDsKK+W/l+acmyA+IHNoaWJvdVwgOwor6YCB6YeRID4gc291a2luXCA7CivljprmiYsgPiBhdHN1ZGVcIDsKK+W5lemWkyA+IG1ha3VhaVwgOwor5bm06YeRID4gbmVua2luXCA7Civlj43lsIQgPiBoYW5zaGFcIDsKK+WPjeWvviA+IGhhbnRhaVwgOwor5rC35pyfID4gaHlvdWtpXCA7Civmgp/kuoYgPiBnb3J5b3VcIDsKK+W/v+aHoyA+IGZ1bm1hblwgOwor5rOV5Y+3ID4gaG91Z291XCA7CivliqPogIUgPiByZXNzaGFcIDsKK+atu+e3miA+IHNoaXNlblwgOwor5Y+M5bCEID4gc291c2hhXCA7CivlkI3lkJ8gPiBtZWlnaW5cIDsKK+WPjOWvviA+IHNvdXRhaVwgOwor5ZCN5ZCbID4gbWVpa3VuXCA7Civnm67pq5ggPiBtZWRha2FcIDsKK+i/lOmbuyA+IGhlbmRlblwgOwor5bm96YKDID4geXV1c3VpXCA7CivpiI3liIAgPiBkb250b3VcIDsKK+egtOeNhCA+IGhhZ29rdVwgOwor5Y+j5aSWID4ga291Z2FpXCA7CivmsrnlnKcgPiB5dWF0c3VcIDsKK+WHjOmnlSA+IHJ5b3VnYVwgOwor5ZCM5ZCNID4gZG91bWVpXCA7Civnn63nr4cgPiB0YW5wZW5cIDsKK+WNr+aciCA+IHVkenVraVwgOwor5rC05pyoID4gbWl6dWtpXCA7CivljYrmrbsgPiBoYW5zaGlcIDsKK+egguekqyA+IHNhcmVraVwgOwor5qyh6KGoID4gamloeW91XCA7CivmgJLlvLUgPiBkb2Nob3VcIDsKK+WQhOWToSA+IGtha3VpblwgOwor5bm06YWNID4gbmVucGFpXCA7CivliY3oqIAgPiB6ZW5nZW5cIDsKK+ehrOawtCA+IGtvdXN1aVwgOwor56We5LujID4gamluZGFpXCA7CivpgYrooYwgPiB5dXVrb3VcIDsKK+WPpOWiqCA+IGtvYm9rdVwgOwor5Y+w5ZywID4gZGFpY2hpXCA7CivliIbpioUgPiBmdW5kb3VcIDsKK+mAuOipsSA+IGl0c3V3YVwgOwor6I2J6a2aID4gc291Z3lvXCA7CivljbPmmYIgPiBzb2t1amlcIDsKK+awtOabnCA+IHN1aXlvdVwgOwor6YeN5aWPID4ganV1c291XCA7CivlvIHogIUgPiBiZW5zaGFcIDsKK+mAmui3ryA+IHRzdXVyb1wgOwor6JOu5qC5ID4gcmVua29uXCA7Civluq3oqJMgPiB0ZWlraW5cIDsKK+WPjOWtkCA+IGZ1dGFnb1wgOwor5ZCI5ZCMID4gZ291ZG91XCA7Civph43lpKcgPiBqdXVkYWlcIDsKK+i/kemaoyA+IGtpbnJpblwgOwor56We5LqLID4gc2hpbmppXCA7Civlh43ppJIgPiB0b3VkYWlcIDsKK+mHjeWkiSA+IGp1dWhlblwgOwor5q+S54mZID4gZG9rdWdhXCA7Civlv4zmnI0gPiBraWZ1a3VcIDsKK+W+kua4iSA+IHRvc2hvdVwgOwor5Yqf572qID4ga291emFpXCA7CivpgIHpgoQgPiBzb3VrYW5cIDsKK+iNkummrCA+IGFyYXVtYVwgOwor6YeR5aGKID4ga2lua2FpXCA7Civlv6vmjJkgPiBrYWlreW9cIDsKK+WIhumHjiA+IGJ1bicneWFcIDsKK+W9k+eVqiA+IHRvdWJhblwgOwor5rC05pifID4gc3Vpc2VpXCA7Civljprmg4UgPiBrb3Vqb3VcIDsKK+mFkuadryA+IHNodWhhaVwgOwor5rC05piOID4gc3VpbWVpXCA7CivlkIzli6IgPiBkb3V6ZWlcIDsKK+mHkeWggiA+IGtvbmRvdVwgOwor5Y+u5ZqAID4gdGVpbmVpXCA7CivpgYLooYwgPiBzdWlrb3VcIDsKK+awl+alvSA+IGtpcmFrdVwgOwor6JK85rW3ID4gc291a2FpXCA7CivmsJHmqKkgPiBtaW5rZW5cIDsKK+WIg+mHnSA+IGhhYmFyaVwgOwor5b2T55SoID4gdG91eW91XCA7CivluYfplpMgPiBob3VrYW5cIDsKK+WKseeyviA+IHJlaXNlaVwgOwor5Y+C5a6uID4gc2FuZ3V1XCA7CivlkIzlirQgPiBkb3Vyb3VcIDsKK+mHkeWfjiA+IGtpbmpvdVwgOwor5Yil6LajID4gYmVzc2h1XCA7CivliY3oo4UgPiB6ZW5zb3VcIDsKK+ekvuWGhSA+IHNoYW5haVwgOwor5YiG6YWNID4gYnVucGFpXCA7Civms5XliLYgPiBob3VzZWlcIDsKK+mBuuiEsSA+IGlkYXRzdVwgOwor55696ICFID4ga29zaGFcIDsKK+WQjeWJjSA+IG5hbWFlXCA7Civlj6TlnYAgPiBrb3NoaVwgOwor5biw6aCGID4ga2lqdW5cIDsKK+W6p+imliA+IHphc2hpXCA7Civlv6vmiZMgPiBrYWlkYVwgOwor6YCB6L6eID4gc291amlcIDsKK+WQjeWIqSA+IG1laXJpXCA7CivnnInplpMgPiBtaWtlblwgOwor56OB5oCnID4gamlzZWlcIDsKK+iWrOS+oSA+IHlha2thXCA7CivnoLLnhZkgPiBob3VlblwgOwor56S85YSAID4gcmVpZ2lcIDsKK+azleWFtyA+IGhvdWd1XCA7CivlkI/lhZogPiByaXRvdVwgOwor55uu6aGUID4gbWVnYW9cIDsKK+eikeaWhyA+IGhpYnVuXCA7CivpgKPoqp4gPiByZW5nb1wgOwor6YeN5ZuyID4gY2hvdWlcIDsKK+ayruWWqiA+IHNvc291XCA7Civpgbrnv5IgPiBpc2h1dVwgOwor6YG46ICFID4gc2VuamFcIDsKK+atjOiBliA+IGthc2VpXCA7CivpgKDoqp4gPiB6b3Vnb1wgOwor56Cy54GrID4gaG91a2FcIDsKK+iSuOawlyA+IGpvdWtpXCA7CivmgKrlpYcgPiBrYWlraVwgOwor6YCj6KiYID4gcmVua2lcIDsKK+mHjeWZqCA+IGp1dWtpXCA7CivliqDns5YgPiBrYXRvdVwgOwor5oGp5YW4ID4gb250ZW5cIDsKK+W+kuatuyA+IHRvc2hpXCA7Civluo/oq5YgPiBqb3JvblwgOwor5q+F54S2ID4ga2l6ZW5cIDsKK+WItuimhyA+IHNlaWhhXCA7CivmrY7nvo4gPiB0YW5iaVwgOwor6YCA6LevID4gdGFpcm9cIDsKK+W/nOaJiyA+IG91c2h1XCA7CivpgJ/oqJggPiBzb2traVwgOwor5rOi5LmxID4gaGFyYW5cIDsKK+W/nOaIpiA+IG91c2VuXCA7CivpgKPopocgPiByZW5wYVwgOwor5oCo5aOwID4gZW5zZWlcIDsKK+ayueWNmCA+IHl1dGFuXCA7Civluo/oqZ4gPiBqb3NoaVwgOwor5Yy75qWtID4gaWd5b3VcIDsKK+W6j+iogCA+IGpvZ2VuXCA7Civlv5jmiJEgPiBib3VnYVwgOwor6I236YeNID4ga2FqdXVcIDsKK+WMuuaknCA+IGt1a2VuXCA7CivljZfmlpcgPiBuYW50b1wgOwor5rK95Yi4ID4ga29rZW5cIDsKK+WNiuacnyA+IGhhbmtpXCA7CivlkIzkvqEgPiBkb3VrYVwgOwor5YuV55S7ID4gZG91Z2FcIDsKK+ays+WNlyA+IGthbmFuXCA7CivoloTliIMgPiB1c3ViYVwgOwor5Yqg566XID4ga2FzYW5cIDsKK+W5tOizpiA+IG5lbnB1XCA7Civlj6PlkbMgPiBrb3VtaVwgOwor6L+36LevID4gbWVpcm9cIDsKK+ayueWJpCA+IHl1emFpXCA7CivlubTos4AgPiBuZW5nYVwgOwor5Y+v5YuVID4ga2Fkb3VcIDsKK+W5tOiyoiA+IG5lbmd1XCA7CivlvqHmoKogPiBva2FidVwgOwor5Y6o5a2QID4genVzaGlcIDsKK+WIpeiomCA+IGJla2tpXCA7Civlj6Tlj7IgPiBrb3NoaVwgOwor5ZCP5Lq6ID4gcmlqaW5cIDsKK+WQhOWAiyA+IGtha2tvXCA7Civpgqrnn6UgPiBqYWNoaVwgOwor5Y+k5Y+CID4ga29zYW5cIDsKK+azleS6iyA+IGhvdWppXCA7CivolYPlpLcgPiBiYW4nJ2lcIDsKK+mHjeWRsyA+IG9tb21pXCA7CivmqLnpvaIgPiBqdXJlaVwgOwor5Y2D5pyoID4gY2hpZ2lcIDsKK+atr+enkSA+IHNoaWthXCA7CivmgbXkuI4gPiBrZWl5b1wgOwor6YW45bqmID4gc2FuZG9cIDsKK+WKseejgSA+IHJlaWppXCA7CivliaPoiJ4gPiBrZW5idVwgOwor5rOV5Li7ID4gaG9zc3VcIDsKK+avjea4ryA+IGJva291XCA7Civph47lkIggPiB5YWdvdVwgOwor5ZCM5LqLID4gZG91amlcIDsKK+WPr+WIhiA+IGthYnVuXCA7Civph47lj7IgPiB5YXNoaVwgOwor5Yqp56WtID4gam9zYWlcIDsKK+WNiuaXlyA+IGhhbmtpXCA7CivlkITkvY0gPiBrYWt1aVwgOwor5b6h5pytID4gb2Z1ZGFcIDsKK+mBjuiIrCA+IGthaGFuXCA7CivliIbos6YgPiBidW5wdVwgOwor56iu44CFID4gc2h1anVcIDsKK+W/mOaBqSA+IGJvdW9uXCA7CivlvoXmqZ8gPiB0YWlraVwgOwor5oGp5Lq6ID4gb25qaW5cIDsKK+W5tOitnCA+IG5lbnB1XCA7Civlv4zmhpogPiBraXRhblwgOwor6YGL6IiqID4gdW5rb3VcIDsKK+ays+WGhSA+IGhhbm9pXCA7CivmgajkuosgPiBrb25qaVwgOwor5oCn5ZmoID4gc2Vpa2lcIDsKK+aAkuWjsCA+IGRvc2VpXCA7CivmqZ/pppYgPiBraXNodVwgOwor5YiX6KiYID4gcmVra2lcIDsKK+WPpOWItiA+IGtvc2VpXCA7Civlj43lk7ogPiBoYW5wb1wgOwor5Y2B5pelID4gdG9va2FcIDsKK+W+oeaYvCA+IG9oaXJ1XCA7Civpg73msJEgPiB0b21pblwgOwor55yL6YGOID4ga2Fua2FcIDsKK+WPpOWIgCA+IGtvdG91XCA7CivlvKXnlJ8gPiB5YXlvaVwgOwor6YCB6KmxID4gc291d2FcIDsKK+W5s+iqniA+IGhlaWdvXCA7Civmr5LmsJcgPiBkb2trZVwgOwor55+b55u+ID4gbXVqdW5cIDsKK+egtOawtCA+IGhhc3VpXCA7Civph5HliKkgPiBraW5yaVwgOwor5rOJ5LiLID4gc2Vua2FcIDsKK+i/lOi+niA+IGhlbmppXCA7CivptZ7mr5sgPiBnYW1vdVwgOwor5Y+Z5YuyID4gam9rdW5cIDsKK+ayluWQiCA+IG9raWFpXCA7CivptZ3mr5sgPiBnYW1vdVwgOwor5Y+k5YW4ID4ga290ZW5cIDsKK+mvqOmjsiA+IGdlaWluXCA7Civph43liKkgPiBqdXVyaVwgOwor5Y2w5b2xID4gaW4nJ2VpXCA7CivljZjmiZMgPiB0YW5kYVwgOwor5b6h5pWwID4gb2thenVcIDsKK+WPl+WLlSA+IGp1ZG91XCA7CivpgZPnvqkgPiBkb3VnaVwgOwor5b6M5p62ID4ga291a2FcIDsKK+mBoOe4gSA+IHRvb2VuXCA7CivliIboqrIgPiBidW5rYVwgOwor6YKm55S7ID4gaG91Z2FcIDsKK+mHjuWFmiA+IHlhdG91XCA7CivnnYDooaMgPiB5YWt1aVwgOwor5Y+X5YiRID4ganVrZWlcIDsKK+avjuasoSA+IG1haWppXCA7CivlvozmnJ8gPiBrb3VraVwgOwor6JWp5YWQID4gdG91amlcIDsKK+ayueS6lSA+IHl1c2VpXCA7Civlu7rnopEgPiBrZW5waVwgOwor5Yal6ZeHID4gbWVpYW5cIDsKK+W4g+mZoyA+IGZ1amluXCA7CivojZLph44gPiBrb3V5YVwgOwor5rK75LiLID4gY2hpa2FcIDsKK+i+uumEmSA+IGhlbnBpXCA7CivphZLlvpIgPiBzaHV0b1wgOwor5qmf6Zu3ID4ga2lyYWlcIDsKK+atjOeovyA+IGtha291XCA7CivlvKfnirYgPiBrb2pvdVwgOwor6YG356e7ID4gc2VuJydpXCA7Civpgbjnp5EgPiBzZW5rYVwgOwor5biw6YKEID4ga2lrYW5cIDsKK+atr+eXmyA+IGhhaXRhXCA7CivmsJHmiLggPiBtaW5rb1wgOwor5Yqg55ufID4ga2FtZWlcIDsKK+iPiuiKsSA+IGtpa2thXCA7Civlj6TkvosgPiBrb3JlaVwgOwor5Y+w5LiLID4gZGFpa2FcIDsKK+WIu+iLpiA+IGtva2t1XCA7Civmr43mqKkgPiBib2tlblwgOwor5Y+k5L2TID4ga290YWlcIDsKK+W+gOadpSA+IG91cmFpXCA7Civlj5flg48gPiBqdXpvdVwgOwor5Y+l5LyaID4ga3VrYWlcIDsKK+WPpOS8nSA+IGtvZGVuXCA7Civlv5zlr74gPiBvdXRhaVwgOwor5Y2x5bOwID4ga2lob3VcIDsKK+auuuawlyA+IHNha2tpXCA7CivliqnnlKMgPiBqb3NhblwgOwor5bi46LuMID4gam91a2lcIDsKK+W4sOi+siA+IGtpbm91XCA7Civlj6Tku6MgPiBrb2RhaVwgOwor5Y+k5LuKID4ga29rb25cIDsKK+WPpOS6uiA+IGtvamluXCA7CivpgZXntIQgPiBpeWFrdVwgOwor5Y6f5ZuzID4gZ2VuenVcIDsKK+WNgeaJiyA+IGppdHRlXCA7CivmqZ/plqIgPiBraWthblwgOwor5rCR5oSPID4gbWluJydpXCA7Civlj4LliqAgPiBzYW5rYVwgOwor5Ya26YeRID4geWFraW5cIDsKK+efs+eBqyA+IHNla2thXCA7CivlhbXppqwgPiBoZWliYVwgOwor5b6h5omAID4gZ29zaG9cIDsKK+mHjuS6uiA+IHlhamluXCA7CivlvIHnlo8gPiBiZW5zb1wgOwor5Y6f5ZmoID4gZ2Vua2lcIDsKK+mAoOiKsSA+IHpvdWthXCA7CivluJ3pg70gPiB0ZWl0b1wgOwor6Iux6a2CID4gZWlrb25cIDsKK+mHjOS6uiA+IHJpamluXCA7Civljq3lkbMgPiBpeWFtaVwgOwor5Y2x5a6zID4ga2lnYWlcIDsKK+W6l+iIlyA+IHRlbnBvXCA7CivphY3luIMgPiBoYWlmdVwgOwor5q615q2pID4gdGFuYnVcIDsKK+WNmOW6pyA+IHRhbnphXCA7Civlj5nku7sgPiBqb25pblwgOwor5qyn57GzID4gb3ViZWlcIDsKK+W8p+eBryA+IGtvdG91XCA7CivmgJLlj7cgPiBkb2dvdVwgOwor5rC45a2YID4gZWl6b25cIDsKK+W3pemdoiA+IGt1bWVuXCA7CivlhoXpnIAgPiBuYWlqdVwgOwor5Y+X5Lu7ID4ganVuaW5cIDsKK+avjeagoSA+IGJva291XCA7Civlvozmj7QgPiBrb3VlblwgOwor55yM6K2wID4ga2VuZ2lcIDsKK+WLpOaxgiA+IGdvbmd1XCA7CivnnIvorbcgPiBrYW5nb1wgOwor5YaG6ZmjID4gZW5qaW5cIDsKK+mFuOWfuiA+IHNhbmtpXCA7Civnorrlm7ogPiBrYWtrb1wgOwor5biw6LaoID4ga2lzdXVcIDsKK+W4sOi2oyA+IGtpc2h1XCA7CivlvZPmqZ8gPiB0b3VraVwgOwor5byB55CGID4gYmVucmlcIDsKK+avjeadkCA+IGJvemFpXCA7CivlvpLmiYsgPiB0b3NodVwgOwor55ub6YGLID4gc2VpdW5cIDsKK+atr+eJmSA+IHNoaWdhXCA7CivmsJHluqYgPiBtaW5kb1wgOwor6YGL566XID4gdW56YW5cIDsKK+W/nOWkiSA+IG91aGVuXCA7CivphZLlrrYgPiBzaHVrYVwgOwor5byl5ryrID4gYmltYW5cIDsKK+mFkuWutCA+IHNodWVuXCA7Civprp/psYcgPiBhbmtvdVwgOwor6L2f6Z+zID4gZ291b25cIDsKK+W+oeW/tSA+IGdvbmVuXCA7CivlvpfmhI8gPiB0b2t1aVwgOwor5qmf6YuSID4ga2lob3VcIDsKK+WFuOmbhSA+IHRlbmdhXCA7Civlj4zkupIgPiBzb3Vnb1wgOwor5YuY5rCXID4ga2Fua2lcIDsKK+avjuaZgiA+IG1haWppXCA7Civovp7pgIAgPiBqaXRhaVwgOwor5Y6f5Y+lID4gZ2Vua3VcIDsKK+mBuueVmSA+IGlyeXV1XCA7CivmqZ/pioMgPiBraWp1dVwgOwor6YO95pS/ID4gdG9zZWlcIDsKK+WLleawlyA+IGRvdWtpXCA7Civlv5zloLEgPiBvdWhvdVwgOwor5bm86Iq9ID4geW91Z2FcIDsKK+ehrOW6piA+IGtvdWRvXCA7CivlvqnluLAgPiBmdWtraVwgOwor5qy6556eID4gZ2ltYW5cIDsKK+mBoOefoiA+IHRvb3lhXCA7CivpgY7nqIsgPiBrYXRlaVwgOwor5rC05aSrID4gc3VpZnVcIDsKK+avjeaWkSA+IGJvaGFuXCA7CivmgJzkv5AgPiByZWlyaVwgOwor5biC6YOoID4gc2hpYnVcIDsKK+WKq+eBqyA+IGdvdWthXCA7CivlhqXpgJQgPiBtZWlkb1wgOwor5Y+C5LqLID4gc2FuamlcIDsKK+W+oeW5oyA+IGdvaGVpXCA7CivlvL7mqZ8gPiBkYW5raVwgOwor6YGg55y8ID4gZW5nYW5cIDsKK+egtOaRpyA+IGhhc2FpXCA7Civov5HooZsgPiBrb25vZVwgOwor55+t5rOiID4gdGFucGFcIDsKK+mBoOebriA+IHRvb21lXCA7CivphofljJYgPiBqdW5rYVwgOwor5Yik6ICFID4gaGFuamFcIDsKK+egtOaQjSA+IGhhc29uXCA7CivpgZPnoLQgPiBkb3VoYVwgOwor6Iux6ZyKID4gZWlyZWlcIDsKK+WLh+awlyA+IHl1dWtpXCA7CivlvZPmnJ8gPiB0b3VraVwgOwor5YuV5qmfID4gZG91a2lcIDsKK+awl+WtlCA+IGtpa291XCA7CivliqDngrkgPiBrYXRlblwgOwor6YW45ZGzID4gc2FubWlcIDsKK+WGoOi+niA+IGthbmppXCA7Civoi7Hpm4QgPiBlaXl1dVwgOwor5b+r5ZGzID4ga2FpbWlcIDsKK+WNseWcsCA+IGtpY2hpXCA7CivlubPoh6UgPiBoZWlnYVwgOwor5Y6a5YipID4ga291cmlcIDsKK+W+kuW8nyA+IHRvdGVpXCA7Civnn63msJcgPiB0YW5raVwgOwor5rCR5a62ID4gbWlua2FcIDsKK+WMluaIkCA+IGthc2VpXCA7Civlt67ph5EgPiBzYWtpblwgOwor5qiq6ZqKID4gb3V0YWlcIDsKK+mDqOaVsCA+IGJ1c3V1XCA7CivluoPnvqkgPiBrb3VnaVwgOwor5YuH5q2mID4geXV1YnVcIDsKK+WFiOmnhiA+IHNlbmt1XCA7Civpgqrms5UgPiBqYWhvdVwgOwor5Y2K5a2jID4gaGFua2lcIDsKK+W/jOWeoyA+IGlnYWtpXCA7CivlvZPmmYIgPiB0b3VqaVwgOwor5YmN56eRID4gemVua2FcIDsKK+awj+WtkCA+IHVqaWtvXCA7Civlt67phY0gPiBzYWhhaVwgOwor55+t5q2MID4gdGFua2FcIDsKK+ebo+ittyA+IGthbmdvXCA7CivlhoXph44gPiBuYWl5YVwgOwor55u46KOcID4gc291aG9cIDsKK+W8puatjCA+IGdlbmthXCA7CivljYPlrrYgPiBzZW5rZVwgOwor6Ium6ZujID4ga3VuYW5cIDsKK+W8mOazlSA+IGd1aG91XCA7Civljq3kurogPiBlbmppblwgOwor6YW45YyWID4gc2Fua2FcIDsKK+apn+i7oiA+IGtpdGVuXCA7CivnoLTmiJIgPiBoYWthaVwgOwor5q+A5pCNID4ga2lzb25cIDsKK+WNgeWtlyA+IGp1dWppXCA7Civlt67pgaMgPiBzYWtlblwgOwor5b6h5a60ID4gZ3lvZW5cIDsKK+WLmOafuyA+IGthbnNhXCA7Civnn67mqLkgPiB3YWlqdVwgOwor55m96ZuoID4gaGFrdXVcIDsKK+WOreS4liA+IGVuc2VpXCA7CivlvqHlroUgPiBvdGFrdVwgOwor5YaF6YOoID4gbmFpYnVcIDsKK+WOn+S+oSA+IGdlbmthXCA7Civlhrfoqp4gPiByZWlnb1wgOwor5bqn56aFID4gemF6ZW5cIDsKK+iNt+iRiSA+IGtheW91XCA7Civoi6bpl5ggPiBrdXRvdVwgOwor6L6e6K2yID4gamlqb3VcIDsKK+WMu+WtpiA+IGlnYWt1XCA7CivliqDmuJsgPiBrYWdlblwgOwor5bqn56S8ID4gemFyZWlcIDsKK+mFkuWZqCA+IHNodWtpXCA7Civlt6bpgbcgPiBzYXNlblwgOwor55m76ZmiID4gdG91aW5cIDsKK+iPr+eUsiA+IGtha291XCA7CivlhYjpnZ4gPiBzZW5waVwgOwor6YGL55e0ID4gdW5jaGlcIDsKK+W4guiyuyA+IHNoaWhpXCA7CivlvoDlubQgPiBvdW5lblwgOwor5bqc56iOID4gZnV6ZWlcIDsKK+eglOaRqSA+IGtlbm1hXCA7Civlt6Hpgo8gPiBqdW5yYVwgOwor5Ymj55K9ID4ga2VuamlcIDsKK+WFjemZpCA+IG1lbmpvXCA7CivoirHprYEgPiBvaXJhblwgOwor5bu25rueID4gZW50YWlcIDsKK+W3pui+uiA+IHNhaGVuXCA7Civlvq7lobUgPiBtaWppblwgOwor6YOo5omAID4gYnVzaG9cIDsKK+WMueWppiA+IGhpcHB1XCA7CivlhYnpmbAgPiBrb3VpblwgOwor5qyh55S3ID4gamluYW5cIDsKK+WKoOazlSA+IGthaG91XCA7CivlvozlsL4gPiBrb3ViaVwgOwor5YaG6LuiID4gZW50ZW5cIDsKK+mBk+eQhiA+IGRvdXJpXCA7CivmrbPmrKEgPiBzYWlqaVwgOwor5YaX6LK7ID4gam91aGlcIDsKK+WIpeeuhyA+IGJla2tvXCA7CivojLboqbEgPiBjaGF3YVwgOwor5q+N5oCnID4gYm9zZWlcIDsKK+mBheeWkSA+IGNoaWdpXCA7CivmsJflnI8gPiBraWtlblwgOwor5beo6LqvID4ga3lva3VcIDsKK+W4guitsCA+IHNoaWdpXCA7CivmsJflm6MgPiBraWRhblwgOwor5b+c5YiGID4gb3VidW5cIDsKK+W+oeWkpyA+IG9udGFpXCA7CivliqDmsLQgPiBrYXN1aVwgOwor5YyW5belID4ga2Frb3VcIDsKK+avm+W4gyA+IG1vdWZ1XCA7Civlho3otbcgPiBzYWlraVwgOwor5rC45YqrID4gZWlnb3VcIDsKK+awl+WaoiA+IGtpbm91XCA7CivmsLTljJYgPiBzdWlrYVwgOwor6YCU56uvID4gdG90YW5cIDsKK+mDveW6piA+IHRzdWRvXCA7Civmr43lvaIgPiBib2tlaVwgOwor5q2j5rCXID4gc2Vpa2lcIDsKK+WMueWkqyA+IGhpcHB1XCA7CivlubPntKAgPiBoZWlzb1wgOwor6Iqx6aaZID4ga2Frb3VcIDsKK+WLv+aAqiA+IG1va2tlXCA7CivlhpnorZwgPiBzaGFmdVwgOwor56K65LmOID4ga2Fra29cIDsKK+efreacnyA+IHRhbmtpXCA7CivmraPmr5QgPiBzZWloaVwgOwor5b285bK4ID4gaGlnYW5cIDsKK+WNsOWIpCA+IGlucGFuXCA7Civpg73luIIgPiB0b3NoaVwgOwor5q+O5bqmID4gbWFpZG9cIDsKK+WFqOmDvSA+IHplbnRvXCA7CivljbDliIAgPiBpbnRvdVwgOwor5YWo6YOoID4gemVuYnVcIDsKK+awtOWIqSA+IHN1aXJpXCA7CivpgKPnoLQgPiByZW5wYVwgOwor5b2p5bqmID4gc2FpZG9cIDsKK+W9ouW9sSA+IGtlaWVpXCA7CivliKXnp5EgPiBiZWtrYVwgOwor6YGg54GrID4gdG9vYmlcIDsKK+iRieacqyA+IGhhenVlXCA7CivlirnmnpwgPiBrb3VrYVwgOwor5b+r5LqLID4ga2FpamlcIDsKK+W6nOecjCA+IGZ1a2VuXCA7Civlhpfoqp4gPiBqb3Vnb1wgOwor5Yy65Z+fID4ga3Vpa2lcIDsKK+WLvuW8lSA+IGtvdWluXCA7Civlt6josrsgPiBreW9oaVwgOwor5b6h5Z2KID4gZ29ib3VcIDsKK+efouadpSA+IHlhcmFpXCA7CivljJblsI4gPiBrZWRvdVwgOwor6Iux6YKBID4gZWltYWlcIDsKK+W+jOWmuyA+IGdvc2FpXCA7Civmr5Tls7YgPiBoaXRvdVwgOwor5Y2Y5Y+lID4gdGFua3VcIDsKK+awl+WTgSA+IGtpaGluXCA7Civlho3orbAgPiBzYWlnaVwgOwor5bel6LK7ID4ga291aGlcIDsKK+WLneaJiyA+IGthdHRlXCA7CivmrbvmnJ8gPiBzaGlraVwgOwor55y856qpID4gZ2Fua2FcIDsKK+W4g+iiiyA+IGhvdGVpXCA7CivoibbpupcgPiBlbnJlaVwgOwor5YSq6ZuFID4geXV1Z2FcIDsKK+avm+WtlCA+IGtlYW5hXCA7CivnoLTlsYsgPiBoYW9rdVwgOwor5Yuk5oOwID4ga2luZGFcIDsKK+WGheitsCA+IG5haWdpXCA7CivovZfou7sgPiBrYW5rYVwgOwor5q2U5qy3ID4ga3lva2lcIDsKK+i8uOmKgCA+IHl1Z2luXCA7Civlhajouq8gPiB6ZW5rdVwgOwor5bmz56mPID4gaGVpb25cIDsKK+WNs+S9jSA+IHNva3VpXCA7CivluLDoiaYgPiBraWthblwgOwor5bqP55ukID4gam9iYW5cIDsKK+i/kee/kiA+IGtpbmp1XCA7CivmqKHpgKAgPiBtb3pvdVwgOwor5q+N5bGLID4gb21veWFcIDsKK+mtkemthSA+IGNoaW1pXCA7CivmsLjkvY8gPiBlaWp1dVwgOwor55y856eRID4gZ2Fua2FcIDsKK+ebruiMtiA+IG1lY2hhXCA7Civlhazot68gPiBrb3Vyb1wgOwor5YiH56ymID4ga2lwcHVcIDsKK+W4sOiIqiA+IGtpa291XCA7CivmqKrou6IgPiBvdXRlblwgOwor5bm056efID4gbmVuc29cIDsKK+i7jem8kyA+IGd1bmtvXCA7CivljYrlj68gPiBoYW5rYVwgOwor5Y2K5Y+lID4gaGFua3VcIDsKK+mBuOatjCA+IHNlbmthXCA7CivljZjliKkgPiB0YW5yaVwgOwor5b6z5YyWID4gdG9ra2FcIDsKK+WIqeebiiA+IHJpZWtpXCA7CivmrKHngrkgPiBqaXRlblwgOwor5b2T5bqnID4gdG91emFcIDsKK+W+k+WboCA+IGp1dWluXCA7CivmsLjku6MgPiBlaXRhaVwgOwor5rCX5YuiID4ga2lzZWlcIDsKK+atr+actiA+IHNoaWRhXCA7CivmrbPmmq4gPiBzZWlib1wgOwor5q+N5a62ID4gb21veWFcIDsKK+W9vOWltCA+IGFpdHN1XCA7CivmsJflip8gPiBraWtvdVwgOwor5b6p5Y+kID4gZnVra29cIDsKK+ebruiJsiA+IG1laXJvXCA7Civlh4ToibYgPiBzZWllblwgOwor5q+N5a2QID4gYm9zaGlcIDsKK+mBoOa1tyA+IGVua2FpXCA7CivmsJfliY0gPiBraW1hZVwgOwor5Y2D5Y+kID4gc2Vua29cIDsKK+WGt+iPkyA+IHJlaWthXCA7CivlvJXmlbAgPiBpbnN1dVwgOwor5Yyq5ZujID4gaGlkYW5cIDsKK+mFjeWCmSA+IGhhaWJpXCA7Civlvq7li5UgPiBiaWRvdVwgOwor5rC45LiWID4gZWlzZWlcIDsKK+auteW3riA+IGRhbnNhXCA7CivlvbnlpKsgPiBla2lmdVwgOwor5rCX5YiGID4ga2lidW5cIDsKK+mFkuS/nSA+IHNodWhvXCA7CivlhazosrsgPiBrb3VoaVwgOwor5by35oSPID4ga3lvdWlcIDsKK+WGheimjyA+IG5haWtpXCA7CivpgaDms7MgPiBlbicnZWlcIDsKK+iNieiKsSA+IHNvdWthXCA7CivliIbnp5EgPiBidW5rYVwgOwor6YWU5L2ZID4gc3VpeW9cIDsKK+WLleaCuCA+IGRvdWtpXCA7CivokrLlm6MgPiBmdXRvblwgOwor5b6h5Y+wID4gbWlkYWlcIDsKK+i7jem2jyA+IHNoYW1vXCA7CivpgKPnkIYgPiByZW5yaVwgOwor6YKq5o6oID4gamFzdWlcIDsKK+awkeWIqSA+IG1pbnJpXCA7Civpgbrmpa0gPiBpZ3lvdVwgOwor6YGL5ryVID4gdW5zb3VcIDsKK+ehrOWMliA+IGtvdWthXCA7CivpgKPnj6AgPiByZW5qdVwgOwor5Yip55SoID4gcml5b3VcIDsKK+W+ruWIhiA+IGJpYnVuXCA7Civnn63miZMgPiB0YW5kYVwgOwor5Y2I5YmNID4gZ296ZW5cIDsKK+iLseizhyA+IGVpc2hpXCA7CivlhoXoo48gPiBkYWlyaVwgOwor6Ly46YCBID4geXVzb3VcIDsKK+WFiOmAlCA+IHNlbmRvXCA7CivlhbXoqp4gPiBoZWlnb1wgOwor5Yqp5pS7ID4gam9rb3VcIDsKK+auv+WuhyA+IGRlbicndVwgOwor6Iqf6ZmkID4gc2Fuam9cIDsKK+WIh+ejiyA+IHNlc3NhXCA7CivmsJHlhbcgPiBtaW5ndVwgOwor5YWs6K2wID4ga291Z2lcIDsKK+m1hOWwviA+IHNoaWJpXCA7CivljLvljZogPiBpaGFrdVwgOwor6Iy26I+TID4gY2hha2FcIDsKK+W+ruWFiSA+IGJpa291XCA7CivljZjkvqEgPiB0YW5rYVwgOwor6YWN5LuYID4gaGFpZnVcIDsKK+atqeaVsCA+IGhvc3V1XCA7CivnoLTlo4ogPiBoYWthaVwgOwor5q+O5aScID4gbWFpeW9cIDsKK+atpuaWrSA+IGJ1ZGFuXCA7CivljZjkvY0gPiB0YW4nJ2lcIDsKK+WFiei8nSA+IGtvdWtpXCA7CivmsJflgJkgPiBraWtvdVwgOwor5YW86KOcID4ga2VucG9cIDsKK+WKoOaVsCA+IGthc3V1XCA7CivlvqHliY0gPiBnb3plblwgOwor5YWs6KqyID4ga291a2FcIDsKK+W9k+WutiA+IHRvdWtlXCA7CivlvLflvJUgPiBnb3VpblwgOwor5b6S5ZCNID4gYWRhbmFcIDsKK+W+oeWHuCA+IG9kZWtvXCA7CivlvZPlrZcgPiBhdGVqaVwgOwor6YWN5LiLID4gaGFpa2FcIDsKK+WFrOiotCA+IGtvdXNvXCA7CivlubPnmZIgPiBoZWl5dVwgOwor55m66LW3ID4gaG9ra2lcIDsKK+mBuOaenCA+IHNlbmthXCA7CivmsJfkvZMgPiBraXRhaVwgOwor6YKq5oWzID4gamFrZW5cIDsKK+WMuuWIhiA+IGt1YnVuXCA7Civoj6/msI8gPiBrYXNoaVwgOwor6YG/5pqRID4gaGlzaG9cIDsKK+mBiuazsyA+IHl1dWVpXCA7CivljLrlh6YgPiBrdXNob1wgOwor5q+N5aCCID4gYm9kb3VcIDsKK+W+oeWFjSA+IGdvbWVuXCA7CivlvqHlhYggPiBvc2FraVwgOwor5Yas6IezID4gdG91amlcIDsKK+iMtuiIlyA+IGNoYWhvXCA7Civoi7HoqakgPiBlaXNoaVwgOwor5YuH5b6AID4geXV1b3VcIDsKK+W8k+aJiyA+IHl1bmRlXCA7CivljYrkvqEgPiBoYW5rYVwgOwor5Y2X5LiLID4gbmFua2FcIDsKK+WMuuWGhSA+IGt1bmFpXCA7CivoibLpppkgPiBpcm9rYVwgOwor5b6S5Yq0ID4gdG9yb3VcIDsKK+avjeWeiyA+IGJva2VpXCA7CivpgZPmrYwgPiBkb3VrYVwgOwor5YWa6K2wID4gdG91Z2lcIDsKK+mCquaCqiA+IGphYWt1XCA7CivlubTnlKsgPiBuZW5wb1wgOwor6YOo5aSWID4gYnVnYWlcIDsKK+atjOabuCA+IGthc2hvXCA7CivliZvmsJcgPiBnb3VraVwgOwor5byn5b2iID4ga29rZWlcIDsKK+WLouWutiA+IHNlaWthXCA7CivlioPmnJ8gPiBrYWtraVwgOwor56CC5bKpID4gc2FnYW5cIDsKK+mCquaBiyA+IGphcmVuXCA7CivluLDntI0gPiBraW5vdVwgOwor5byU5oWwID4gY2hvdWlcIDsKK+awl+S4iCA+IGtpam91XCA7CivliZvmr4UgPiBnb3VraVwgOwor5b6p5L2NID4gZnVrdWlcIDsKK+W+kuWIkSA+IHRva2VpXCA7Civnm67nt5ogPiBtZXNlblwgOwor6JCM5pyoID4gbW9lZ2lcIDsKK+WGt+e9tSA+IHJlaWJhXCA7CivmsJHkuosgPiBtaW5qaVwgOwor55+p5b2iID4ga3VrZWlcIDsKK+mBuuaXjyA+IGl6b2t1XCA7Civmr5vllJAgPiBrZXRvdVwgOwor5YWo6KO4ID4gemVucmFcIDsKK+mCquW/tSA+IGphbmVuXCA7CivliqnmiJAgPiBqb3NlaVwgOwor6LuN6aasID4gZ3VuYmFcIDsKK+W8lOaEjyA+IGNob3VpXCA7CivlibXmoYggPiBzb3VhblwgOwor5qih6KmmID4gbW9zaGlcIDsKK+mBiuatqSA+IHl1dWhvXCA7Civlh7nnnLwgPiBvdWdhblwgOwor5b2T5aScID4gdG91eWFcIDsKK+i7iummrCA+IHNoYWJhXCA7CivliqDmi4UgPiBrYXRhblwgOwor6bSo5bGFID4ga2Ftb2lcIDsKK+W+oeS+myA+IG90b21vXCA7CivlvpLlhZogPiB0b3RvdVwgOwor5YaG6JOLID4gZW5nYWlcIDsKK+WNg+S7oyA+IGNoaXlvXCA7CivlhYTosrQgPiBhbmlraVwgOwor6Ium6KiAID4ga3VnZW5cIDsKK+W+oeS8vSA+IG90b2dpXCA7CivljJblkIggPiBrYWdvdVwgOwor5Yip54K5ID4gcml0ZW5cIDsKK+msvOmdoiA+IGtpbWVuXCA7CivovL/oq5YgPiB5b3JvblwgOwor5YWa6KaPID4gdG91a2lcIDsKK+WNgeS6lCA+IGp1dWdvXCA7CivmrbvlvowgPiBzaGlnb1wgOwor5Y2B5LqMID4ganV1bmlcIDsKK+aoquihjCA+IG91a291XCA7CivljLvkvK8gPiBpaGFrdVwgOwor5b6h5LuBID4gZ29qaW5cIDsKK+W+jOWFiSA+IGdva291XCA7CivljYPkuJYgPiBjaGl5b1wgOwor5YWI6K2wID4gc2VuZ2lcIDsKK+WMuuS8miA+IGt1a2FpXCA7CivpgaDmnaUgPiBlbnJhaVwgOwor6bSf5bC+ID4gc2hpYmlcIDsKK+eZu+iomCA+IHRvdWtpXCA7CivliY3mra8gPiBtYWViYVwgOwor6YGg5pybID4gZW5ib3VcIDsKK+WHuueVqiA+IGRlYmFuXCA7Civnn6Xlt7EgPiBjaGlraVwgOwor5Yqx5bynID4gcmVpa29cIDsKK+W+jOWCmSA+IGtvdWJpXCA7CivnnIvnoLQgPiBrYW5wYVwgOwor5b6h5LiKID4gb2thbWlcIDsKK+WFjeiotCA+IG1lbnNvXCA7Civlvbnli5kgPiBla2ltdVwgOwor5qmf6IO9ID4ga2lub3VcIDsKK+iSmeWPpCA+IG1vdWtvXCA7CivlhqDogIUgPiBrYW5qYVwgOwor5buD5qOEID4gaGFpa2lcIDsKK+WIqea9pCA+IHJpanVuXCA7Civlg6fpmaIgPiBzb3VpblwgOwor6LuN6Z20ID4gZ3Vua2FcIDsKK+WGpOe9qiA+IGVuemFpXCA7CivpgaDmma8gPiBlbmtlaVwgOwor5YaF6IuRID4gbmFpZW5cIDsKK+W7g+ahiCA+IGhhaWFuXCA7Civmr43lkI4gPiBib2tvdVwgOwor6LuN6ZyAID4gZ3VuanVcIDsKK+W4g+e9riA+IGZ1Y2hpXCA7CivprLzploAgPiBraW1vblwgOwor5YSS6YGTID4ganVkb3VcIDsKK+mBoOaWuSA+IGVucG91XCA7CivlvpPkuosgPiBqdXVqaVwgOwor5YK16ay8ID4gc2Fpa2lcIDsKK+W3puiItyA+IHNhZ2VuXCA7CivlhYHoqLEgPiBpbmt5b1wgOwor5biw56S+ID4ga2lzaGFcIDsKK+WKo+W8pyA+IHJla2tvXCA7Civpg6jlk4EgPiBidWhpblwgOwor56CC5aG1ID4gc2FqaW5cIDsKK+WJm+aenCA+IGdvdWthXCA7CivliJ3mvJQgPiBzaG9lblwgOwor5q2p5buKID4gaG9yb3VcIDsKK+atjOaJiyA+IGthc2h1XCA7CivlvozkuosgPiBrb3VqaVwgOwor5YuH5ammID4geXV1ZnVcIDsKK+atquW6piA+IHdhaWRvXCA7CivlubPngokgPiBoZWlyb1wgOwor6L6y56eRID4gbm91a2FcIDsKK+asoeadoSA+IGppam91XCA7CivmrablvIEgPiBidWJlblwgOwor6LuM6ZaTID4ga2lrYW5cIDsKK+mDveWGhSA+IHRvbmFpXCA7CivlvJ/lrZAgPiBkZXNoaVwgOwor5bem6ISzID4gc2Fub3VcIDsKK+W7tuaApyA+IGVuc2VpXCA7CivpgqblrrYgPiBob3VrYVwgOwor5Yqg5bm0ID4ga2FuZW5cIDsKK+i/keeVvyA+IGtpbmtpXCA7CivlvIHluqcgPiBiZW56YVwgOwor5Yil5rS+ID4gYmVwcGFcIDsKK+ato+W6pyA+IHNlaXphXCA7CivlvJXlsI4gPiBpbmRvdVwgOwor6YCj5q2MID4gcmVuZ2FcIDsKK+mtlOmBkyA+IG1hZG91XCA7CivlvbHlg48gPiBlaXpvdVwgOwor5ber6ICFID4gZnVzaGFcIDsKK+mCpuWtlyA+IGhvdWppXCA7Civlh7nniYggPiBvdWJhblwgOwor5YaF6ICzID4gbmFpamlcIDsKK+WKoOW3pSA+IGtha291XCA7Civli4flpKsgPiB5dXVmdVwgOwor5qyn5paHID4gb3VidW5cIDsKK+W9k+WQpiA+IHRvdWhpXCA7CivliKnmsLQgPiByaXN1aVwgOwor6YCg5qyhID4gem91amlcIDsKK+WFreiKsSA+IHJpa2thXCA7Civlh6bnkIYgPiBzaG9yaVwgOwor5bu25byVID4gZW4nJ2luXCA7Civnnb/mmbogPiBlaWNoaVwgOwor5YWr6IumID4gaGFra3VcIDsKK+avlOWAqyA+IGhpcmluXCA7CivluLDnnIEgPiBraXNlaVwgOwor6YGO5pWPID4ga2FiaW5cIDsKK+W6j+atryA+IGpvc2hpXCA7Civlu7blu7YgPiBlbicnZW5cIDsKK+WLleWboCA+IGRvdWluXCA7CivlvIrlsaUgPiBoZWlyaVwgOwor6YG65b6zID4gaXRva3VcIDsKK+egtOWAqyA+IGhhcmluXCA7CivljJfkuqwgPiBwZWtpblwgOwor56CC5Zi0ID4gc2FzaGlcIDsKK+WJjeacnyA+IHplbmtpXCA7CivmrKHmlbAgPiBqaXN1dVwgOwor6YCg5qmfID4gem91a2lcIDsKK+avlOS+iyA+IGhpcmVpXCA7Civpg6jliIYgPiBidWJ1blwgOwor5bmz5ripID4gaGVpb25cIDsKK+WGjee4gSA+IHNhaWVuXCA7Civnm67nnKkgPiBtZW1haVwgOwor5qi56ISCID4ganVzaGlcIDsKK+aui+WfuiA+IHphbmtpXCA7CivpgLjmm7ggPiBpc3Nob1wgOwor6YO95LyaID4gdG9rYWlcIDsKK+asveaFlSA+IGtpbmJvXCA7Civpg6jlhoUgPiBidW5haVwgOwor5YWt6IWRID4gcm9wcHVcIDsKK+mAk+asoSA+IHRlaWppXCA7Civpg73kurogPiB0b2ppblwgOwor6YGL5pCsID4gdW5wYW5cIDsKK+WJjeaXpSA+IG1hZWJpXCA7Civmr43kvZMgPiBib3RhaVwgOwor5Yip5qipID4gcmlrZW5cIDsKK+WGhee4gSA+IG5haWVuXCA7CivpgbfluqcgPiBzZW56YVwgOwor5Yqg5a6zID4ga2FnYWlcIDsKK+mBoOaFriA+IGVucnlvXCA7Civli6fljJYgPiBrYW5nZVwgOwor5YuH5ZuzID4geXV1dG9cIDsKK+iPqeaPkCA+IGJvZGFpXCA7Civlg6fpg70gPiBzb3V6dVwgOwor5q2m5a6YID4gYnVrYW5cIDsKK+WIneatqSA+IHNob2hvXCA7Civnn7PlmaggPiBzZWtraVwgOwor6YCA5rK7ID4gdGFpamlcIDsKK+WLleWToSA+IGRvdWluXCA7Civoj7LmiY0gPiBoaXNhaVwgOwor5Yuk5YuZID4ga2lubXVcIDsKK+W8peWbmyA+IHlhc2hpXCA7CivmraPlrZcgPiBzZWlqaVwgOwor5beo57SwID4ga29zYWlcIDsKK+mBi+aMhyA+IHVuc2hpXCA7Civps6XlsYUgPiB0b3JpaVwgOwor5bmz5rCXID4gaGVpa2lcIDsKK+mAo+aetiA+IHJlbmthXCA7CivliIbmtL4gPiBidW5wYVwgOwor6LuN6YOoID4gZ3VuYnVcIDsKK+WFrOe+qSA+IGtvdWdpXCA7Civlh7rmua8gPiBpZGV5dVwgOwor5qmf56iuID4ga2lzaHVcIDsKK+W6puaVsCA+IGRvc3V1XCA7CivpgYrmioAgPiB5dXVnaVwgOwor6YCA5q2pID4gdGFpaG9cIDsKK+eah+iDpCA+IGtvdWluXCA7CivpgqblnJ8gPiBob3Vkb1wgOwor6YG/5a+SID4gaGlrYW5cIDsKK+mDqOS8miA+IGJ1a2FpXCA7CivliKnmoLkgPiByaWtvblwgOwor5bSO6Zm9ID4ga2l5b3VcIDsKK+W5tOasoSA+IG5lbmppXCA7CivpgYrmiK8gPiB5dXVnaVwgOwor6YGg5b6BID4gZW5zZWlcIDsKK+W3ruetiSA+IHNhdG91XCA7Civou4zpgZMgPiBraWRvdVwgOwor6YG65bC/ID4gaW55b3VcIDsKK+atu+WboCA+IHNoaWluXCA7Civli7LkvY0gPiBrdW4nJ2lcIDsKK+iRrOWFtyA+IHNvdWd1XCA7CivlhobnrZIgPiBlbnRvdVwgOwor5YiG5q+NID4gYnVuYm9cIDsKK+iMtuebriA+IGNoYW1lXCA7CivlupfmmK8gPiB0ZW56ZVwgOwor5Yuf5YW1ID4gYm9oZWlcIDsKK+auv+S4iyA+IGRlbmthXCA7CivmrJ3mhqQgPiB1cHB1blwgOwor6JGs5YSAID4gc291Z2lcIDsKK+mBleW/gyA+IGlzaGluXCA7CivlvLHljJYgPiBqYWtrYVwgOwor5Yqg5aKXID4ga2F6b3VcIDsKK+mBiuaDsCA+IHl1dWRhXCA7Civli5/lgrUgPiBib3NhaVwgOwor55+t5Y+lID4gdGFua3VcIDsKK+W9k+S6iyA+IHRvdWppXCA7CivpgY7mgKAgPiBrYXRhaVwgOwor5Ye65rGBID4gZGFzaGlcIDsKK+efs+WMliA+IHNla2thXCA7Civnm6PnkIYgPiBrYW5yaVwgOwor5YmN5oivID4gemVuZ2lcIDsKK+W4q+eItiA+IHNoaWZ1XCA7CivmraPloakgPiBzZWllblwgOwor5qmf55+lID4ga2ljaGlcIDsKK+W6uOaEmiA+IHlvdWd1XCA7CivlvJXllqkgPiBpbicneXVcIDsKK+W4neeOiyA+IHRlaW91XCA7Civpgb/lpoogPiBoaW5pblwgOwor5YaF56eRID4gbmFpa2FcIDsKK+mAruaNlSA+IHRhaWhvXCA7Civluo/mlocgPiBqb2J1blwgOwor6YGO5b2TID4ga2F0b3VcIDsKK+i7jei3ryA+IGd1bnJvXCA7Civluo/mlbAgPiBqb3N1dVwgOwor5q6L5YuZID4gemFubXVcIDsKK+WIneacnyA+IHNob2tpXCA7CivpgaDls7YgPiBlbnRvdVwgOwor5bel56eRID4ga291a2FcIDsKK+i6q+mHjSA+IG1pb21vXCA7CivluqfmiYAgPiB6YXNob1wgOwor5YaF56S6ID4gbmFpamlcIDsKK+ato+WdkCA+IHNlaXphXCA7CivovKroiJ4gPiByaW5idVwgOwor6YCU5pa5ID4gdG9ob3VcIDsKK+WEgOijhSA+IGdpc291XCA7Civlub3mmpcgPiB5dXVhblwgOwor6Iux57GzID4gZWliZWlcIDsKK+i7jeiyuyA+IGd1bnBpXCA7CivprZTooZcgPiBtYWdhaVwgOwor6Lui6KibID4gdGVua2FcIDsKK+i7ouiomCA+IHRlbmtpXCA7Civlh7HmrYwgPiBnYWlrYVwgOwor5qyh5bm0ID4gamluZW5cIDsKK+mBuuWiqCA+IGlib2t1XCA7CivnmofntIAgPiBrb3VraVwgOwor6YGF5bu2ID4gY2hpZW5cIDsKK+W5vOaZgiA+IHlvdWppXCA7Civnm4bnlLsgPiBib25nYVwgOwor5YiR5pyfID4ga2Vpa2lcIDsKK+W5tOacnyA+IG5lbmtpXCA7Civli5XkvZwgPiBkb3VzYVwgOwor5Ye65qeYID4gZGV5b3VcIDsKK+iKuOiLkSA+IGdlaWVuXCA7CivlvKflhYkgPiBrb2tvdVwgOwor5q2M5aOHID4ga2FkYW5cIDsKK+WFteenkSA+IGhlaWthXCA7Civliqnlkb0gPiBqb21laVwgOwor6auY6ZuFID4ga291Z2FcIDsKK+W4uOa4qSA+IGpvdW9uXCA7CivlhZrntIAgPiB0b3VraVwgOwor5YmN5b6MID4gemVuZ29cIDsKK+WFteemjSA+IGhlaWthXCA7CivmqZ/nlLIgPiBraWtvdVwgOwor5q2m5ZWPID4gYnVtb25cIDsKK+WKtOWLmSA+IHJvdW11XCA7Civlt67nm4ogPiBzYWVraVwgOwor6YCj5omTID4gcmVuZGFcIDsKK+WEquiJtiA+IHl1dWVuXCA7Civlurblub4gPiBzaG9raVwgOwor6Iqx6IyOID4ga2FrZWlcIDsKK+egguS4iiA+IHNham91XCA7Civou43orbAgPiBndW5naVwgOwor6Lui6KOcID4gdGVucG9cIDsKK+W5s+aZgiA+IGhlaWppXCA7Civlhobnm6QgPiBlbmJhblwgOwor5YG96Zu7ID4gZ2lkZW5cIDsKK+earuebuCA+IGhpc291XCA7CivluLDmuK8gPiBraWtvdVwgOwor6L+U5q2MID4gaGVua2FcIDsKK+WJjeW6pyA+IHplbnphXCA7Civlhaznp58gPiBrb3Vzb1wgOwor55ep6LqvID4gc291a3VcIDsKK+WIhuacqCA+IGJ1bmdpXCA7CivmraPlk6EgPiBzZWlpblwgOwor5YaF55quID4gbmFpaGlcIDsKK+mBk+WutiA+IGRvdWthXCA7CivmqKHnr4QgPiBtb2hhblwgOwor6Iq96IOeID4gZ2Fob3VcIDsKK+WIgOaetiA+IHRvdWthXCA7CivovInojbcgPiBzYWlrYVwgOwor55qu55msID4gaGl6ZW5cIDsKK+mBiuWxsSA+IHl1c2FuXCA7CivmrablkI0gPiBidW1laVwgOwor5YWo56eRID4gemVua2FcIDsKK+WKoOWPtyA+IGthZ291XCA7Civoipnok4kgPiBmdXlvdVwgOwor5buD5a62ID4gaGFpa2FcIDsKK+WFrOekuiA+IGtvdWppXCA7CivmrbvlhZAgPiBzaGlqaVwgOwor5q2j5ZCmID4gc2VpaGlcIDsKK+W6leaEjyA+IHNva29pXCA7Civoh6rpppYgPiBqaXNodVwgOwor6LuN6KiYID4gZ3Vua2lcIDsKK+iNkua3qyA+IGtvdWluXCA7CivliqPljJYgPiByZWtrYVwgOwor6YGg5aSnID4gZW5kYWlcIDsKK+WIpeaIuCA+IGJla2tvXCA7CivmrZPllpwgPiBrYW5raVwgOwor5YW355y8ID4gZ3VnYW5cIDsKK+asoeWumCA+IGppa2FuXCA7CivnnKnmmoggPiBtZW1haVwgOwor6LuN6KaPID4gZ3Vua2lcIDsKK+asoeWtkCA+IGppc2hpXCA7Civmrabli7IgPiBidWt1blwgOwor5bu25ZG9ID4gZW5tZWlcIDsKK+WKoOWLoiA+IGthc2VpXCA7CivlhYPntKAgPiBnZW5zb1wgOwor5q2m5YuHID4gYnV5dXVcIDsKK+atpuWKnyA+IGJ1a291XCA7Civlu7flkI8gPiB0ZWlyaVwgOwor5YaG55KwID4gZW5rYW5cIDsKK+WyqemtmiA+IGl3YW5hXCA7CivliJ3miYsgPiBzaG90ZVwgOwor55qH56WWID4ga291c29cIDsKK+WEque+jiA+IHl1dWJpXCA7CivlhJLoia8gPiBqdWdvblwgOwor5YSS6ImuID4ganVnb25cIDsKK+WFkOerpSA+IGppZG91XCA7CivmrZPlkbwgPiBrYW5rb1wgOwor5Yqg5YikID4ga2FoYW5cIDsKK+WKn+WIqSA+IGtvdXJpXCA7Civps7Plh7AgPiBob3VvdVwgOwor55+l5LqLID4gY2hpamlcIDsKK+mBk+WkriA+IGRvdW91XCA7Civou43ooaMgPiBndW4nJ2lcIDsKK+WItuW6piA+IHNlaWRvXCA7CivmranlhbUgPiBob2hlaVwgOwor6Iux55+lID4gZWljaGlcIDsKK+WBnOmfsyA+IHRlaW9uXCA7CivlvJXkvosgPiBpbnJlaVwgOwor55e06KmxID4gY2hpd2FcIDsKK+WKoOWGoCA+IGtha2FuXCA7CivpgKPluqcgPiByZW56YVwgOwor6Imk6KOFID4gZ2lzb3VcIDsKK+mBoOWcsCA+IGVuY2hpXCA7Civoj6/lo4cgPiBrYWRhblwgOwor55m756eRID4gdG91a2FcIDsKK+eZveemjSA+IGhha2thXCA7CivpgY7lpKcgPiBrYWRhaVwgOwor6Iub56iOID4ga2F6ZWlcIDsKK+mBoOWboCA+IGVuJydpblwgOwor6YGK5aWzID4geXV1am9cIDsKK+i8nee3miA+IGtpc2VuXCA7CivlhaXnm7ggPiBpcmlhaVwgOwor5YWN56efID4gbWVuc29cIDsKK+iKi+iMjiA+IHp1aWtpXCA7Civoj5PlrZAgPiBrYXNoaVwgOwor5bmy5oiIID4ga2Fua2FcIDsKK+eWjumWiyA+IHNva2FpXCA7CivliY3lqaYgPiB6ZW5wdVwgOwor5YGP6aCXID4gaGVucGFcIDsKK+mBt+WMliA+IHNlbmdlXCA7CivokL3kuIsgPiByYWtrYVwgOwor5YW354++ID4gZ3VnZW5cIDsKK+WKoOS/uCA+IGthaG91XCA7CivlhrfmsJcgPiByZWlraVwgOwor5YSS6ICFID4ganVzaGFcIDsKK+iIl+mBkyA+IGhvZG91XCA7CivlhYjnpZYgPiBzZW56b1wgOwor6Iiq6LevID4ga291cm9cIDsKK+eZuuegtCA+IGhhcHBhXCA7CivnlbPpn7sgPiBqb3VpblwgOwor55u45qOSID4gYWlib3VcIDsKK+W5veW+riA+IHl1dWJpXCA7CivoirPntIAgPiBob3VraVwgOwor5buD5ZySID4gaGFpZW5cIDsKK+ato+S+oSA+IHNlaWthXCA7Civov5HmmYIgPiBraW5qaVwgOwor6a2a6IKlID4gZ3lvaGlcIDsKK+i6jei1tyA+IHlha2tpXCA7Civpq5jpgaAgPiBrb3VlblwgOwor5YmN5aSrID4gemVucHVcIDsKK+iKsee0iyA+IGthbW9uXCA7CivlhYPnpZYgPiBnYW5zb1wgOwor5Ymw5ZOhID4gam91aW5cIDsKK+iKseezuCA+IGthc2hpXCA7Civnm5fmsZcgPiBuZWFzZVwgOwor5YWs55CGID4ga291cmlcIDsKK+atpuS6uiA+IGJ1amluXCA7CivoirHnsokgPiBrYWZ1blwgOwor5biw5qChID4ga2lrb3VcIDsKK+iInui5iCA+IGJ1dG91XCA7Civlub7luqYgPiBpa3Vkb1wgOwor5qyh5ZueID4gamlrYWlcIDsKK+W5tOW/jCA+IG5lbmtpXCA7CivoiJ7ouI8gPiBidXRvdVwgOwor6ayx6JK8ID4gdXNzb3VcIDsKK+iInui4iiA+IGJ1eW91XCA7CivlhoXngo4gPiBuYWllblwgOwor6Lyq56aNID4gcmlua2FcIDsKK+WIkeW+kiA+IGtlaXRvXCA7CivlubTlvowgPiBuZW5nb1wgOwor6YCj5a2QID4gcmVuamlcIDsKK+ebuOadvyA+IGFpYmFuXCA7CivliY3loLQgPiB6ZW5iYVwgOwor55Sw6bqpID4gZGVuYnVcIDsKK+WHueaJgCA+IG91c2hvXCA7Civlgb3pgKAgPiBnaXpvdVwgOwor5biw5p2lID4ga2lyYWlcIDsKK+iLpueVjCA+IGt1Z2FpXCA7Civlho3mvJQgPiBzYWllblwgOwor5biw5p2RID4ga2lzb25cIDsKK+W4uOaZgiA+IGpvdWppXCA7Civlu7bkvJogPiBlbmthaVwgOwor5qyj5ZacID4ga2lua2lcIDsKK+mChOS7mCA+IGthbnB1XCA7CivpgYvllrYgPiB1bicnZWlcIDsKK+iPnOWckiA+IHNhaWVuXCA7CivlubTluqYgPiBuZW5kb1wgOwor6YCu5aScID4gdGFpeWFcIDsKK+mAgOW6pyA+IHRhaXphXCA7CivliKnlrrMgPiByaWdhaVwgOwor6Imx6IumID4ga2Fua3VcIDsKK+asoeWWhCA+IGppemVuXCA7CivliKnlrZAgPiByaXNoaVwgOwor6I235ouFID4ga2F0YW5cIDsKK+WIpeWutiA+IGJla2tlXCA7CivpgbrkvZwgPiBpc2FrdVwgOwor6I2J5qGIID4gc291YW5cIDsKK+iNkuacqCA+IGFyYWtpXCA7CivlsqnplpMgPiBpd2FtYVwgOwor5bqt5ZySID4gdGVpZW5cIDsKK+mvqOazoiA+IGdlaWhhXCA7CivlubTlt64gPiBuZW5zYVwgOwor6a+o5rK5ID4gZ2VpeXVcIDsKK+i5tui1tyA+IGtla2tpXCA7CivlhobmuoAgPiBlbm1hblwgOwor6Iqx56mCID4ga2FzdWlcIDsKK+i+suacnyA+IG5vdWtpXCA7CivliKTlrZAgPiBoYW5rb1wgOwor6I+v5Y6zID4ga2Vnb25cIDsKK+mBoOWHuiA+IHRvb2RlXCA7CivpgYvlkb0gPiB1bm1laVwgOwor5YW154GrID4gaGVpa2FcIDsKK+ebo+afuyA+IGthbnNhXCA7Civoj6/ljZcgPiBrYW5hblwgOwor6YGT5YyWID4gZG91a2VcIDsKK+atjOS7mSA+IGthc2VuXCA7Civou6LnvqkgPiB0ZW5naVwgOwor5qyh5Y+3ID4gamlnb3VcIDsKK+atjOS6uiA+IGthamluXCA7Civpq5josrQgPiBrb3VraVwgOwor6YGO5Y2KID4ga2FoYW5cIDsKK+WIhuW4gyA+IGJ1bnB1XCA7Civnm7jmkrIgPiBzdW1vdVwgOwor6Im26IGeID4gZW5idW5cIDsKK+W6j+WljyA+IGpvc291XCA7Civov5HmiYAgPiBraW5qb1wgOwor5Yeh5omTID4gYm9uZGFcIDsKK+WHueW9oiA+IG91a2VpXCA7CivoiIjotbcgPiBrb3VraVwgOwor6IiO6LK7ID4gc2hhaGlcIDsKK+mBjuWLpCA+IGtha2luXCA7CivpgJrlpJwgPiB0c3V5YVwgOwor6YGO5Yq0ID4ga2Fyb3VcIDsKK+iHqumCuCA+IGppdGVpXCA7CivpgYvli6IgPiB1bnNlaVwgOwor5beo5rOiID4ga3lvaGFcIDsKK+mBi+WLlSA+IHVuZG91XCA7Civovp7mn4QgPiBqaWhlaVwgOwor6YGO5YmwID4ga2Fqb3VcIDsKK+eVnemWkyA+IHVuZW1hXCA7Civoh6rpgbggPiBqaXNlblwgOwor6L6e5p6XID4gamlyaW5cIDsKK+ebm+acnyA+IHNlaWtpXCA7CivlubPlrrYgPiBoZWlrZVwgOwor6YCj5Z2QID4gcmVuemFcIDsKK+mAuOWTgSA+IGlwcGluXCA7CivpgZPlhbcgPiBkb3VndVwgOwor6YGO5YiGID4ga2FidW5cIDsKK+W5s+WuiSA+IGhlaWFuXCA7CivlubTlraMgPiBuZW5raVwgOwor55qG54ShID4ga2FpbXVcIDsKK+WHoeaEmiA+IGJvbmd1XCA7CivmqZ/mp4sgPiBraWtvdVwgOwor5YiG5bKQID4gYnVua2lcIDsKK+WJjeWPpCA+IHplbmtvXCA7CivnlLvppIUgPiBnYWJlaVwgOwor5YWs5ryUID4ga291ZW5cIDsKK+i+nuabuCA+IGppc2hvXCA7CivpgKDlnJIgPiB6b3VlblwgOwor5Yas5pyfID4gdG91a2lcIDsKK+mrmOiqvCA+IGtvdWdpXCA7CivlibDkvZkgPiBqb3V5b1wgOwor5bq25YuZID4gc2hvbXVcIDsKK+eUu+miqCA+IGdhZnV1XCA7Civnm5vmmYIgPiBzZWlqaVwgOwor5YSA56+EID4gZ2loYW5cIDsKK+iKs+eciSA+IGhvdWJpXCA7CivliJ3lpJwgPiBzaG95YVwgOwor5YKN6KaLID4gb2thbWlcIDsKK+aouea2siA+IGp1ZWtpXCA7CivliJ3lpI8gPiBzaG9rYVwgOwor5biM5pybID4ga2lib3VcIDsKK+W3qOatqSA+IGt5b2hvXCA7CivlubzlpbMgPiB5b3Vqb1wgOwor55S76aGMID4gZ2FkYWlcIDsKK+WIhuWutiA+IGJ1bmtlXCA7CivluIzmm7ggPiBraXNob1wgOwor5biw5oqVID4ga2l0b3VcIDsKK+WGpOaeiSA+IGVuJydvdVwgOwor5qi55rW3ID4ganVrYWlcIDsKK+W5vuWknCA+IGlrdXlvXCA7Civlub7lpJogPiBpa3V0YVwgOwor5qyh5YWEID4gamlrZWlcIDsKK+asoeWFgyA+IGppZ2VuXCA7Civov7flrZAgPiBtYWlnb1wgOwor6Ieq6LuiID4gaml0ZW5cIDsKK+apn+aisCA+IGtpa2FpXCA7Civluqflj7MgPiB6YXl1dVwgOwor5bm75aSiID4gZ2VubXVcIDsKK+W7ieS+oSA+IHJlbmthXCA7CivlhYjniLYgPiBzZW5wdVwgOwor6YGh5LiKID4gc29qb3VcIDsKK+apn+aguSA+IGtpa29uXCA7Civlgb3oqpMgPiBnaXNlaVwgOwor6IiH6KuWID4geW9yb25cIDsKK+mAoOWWtiA+IHpvdWVpXCA7CivlhqXmmpcgPiBtZWlhblwgOwor6IiX6KOFID4gaG9zb3VcIDsKK+eVsOmDtyA+IGlreW91XCA7CivnlLvpnaIgPiBnYW1lblwgOwor5YCN6Z+zID4gYmFpb25cIDsKK+aji+miqCA+IGtpZnV1XCA7CivnmbrngasgPiBoYWtrYVwgOwor5YG96KiIID4gZ2lrZWlcIDsKK+ebuOaEmyA+IHNvdWFpXCA7Civlgb3oqIAgPiBnaWdlblwgOwor5YWJ54SUID4ga291ZW5cIDsKK+WBtuiqniA+IGd1dWdvXCA7CivmqZ/mnZAgPiBraXphaVwgOwor5qyh5L6/ID4gamliaW5cIDsKK+mAo+WRvCA+IHJlbmtvXCA7Civlt6bmp5ggPiBzYXlvdVwgOwor5YG26KmgID4gZ3V1ZWlcIDsKK+mtlOelniA+IG1hamluXCA7Civlu4rkuIsgPiByb3VrYVwgOwor6amf6ZuoID4gc2h1dXVcIDsKK+ebsuaEmyA+IG1vdWFpXCA7CivoirHnk7YgPiBrYWJpblwgOwor5YWJ54KOID4ga291ZW5cIDsKK+WGjeahiCA+IHNhaWFuXCA7CivlhIDnpLwgPiBnaXJlaVwgOwor6Ieq6LObID4gamlzYW5cIDsKK+mAo+WPpSA+IHJlbmt1XCA7Civot6/poK0gPiByb3RvdVwgOwor5qyh5LyaID4gamlrYWlcIDsKK+i/t+WkoiA+IG1laW11XCA7Civoi7Hms5UgPiBlaWhvdVwgOwor6Ieq6LKpID4gamloYW5cIDsKK+apn+aZuiA+IGtpY2hpXCA7Civoi6bmuIsgPiBrdWp1dVwgOwor5YG96KOFID4gZ2lzb3VcIDsKK+ebuOW/nCA+IHNvdW91XCA7CivmrKHku6MgPiBqaWRhaVwgOwor6LuN57SAID4gZ3Vua2lcIDsKK+WwvumwrSA+IG9iaXJlXCA7CivluKvmgakgPiBzaGlvblwgOwor5YWs5q2mID4ga291YnVcIDsKK+i7ouenuyA+IHRlbicnaVwgOwor6Lev6Z2iID4gcm9tZW5cIDsKK+Wyoei+uiA+IG9rYWJlXCA7CivlgYnouZ8gPiBpc2VraVwgOwor6Lui56eRID4gdGVua2FcIDsKK+iHgOmDqCA+IGRlbmJ1XCA7CivlhZrmtL4gPiB0b3VoYVwgOwor6YGL5LiKID4gdW5qb3VcIDsKK+alreiLpiA+IGdvdWt1XCA7CivlsaTpm7IgPiBzb3V1blwgOwor5bqn5YOPID4gemF6b3VcIDsKK+W4t+W5lSA+IGliYWt1XCA7CivpgKDljJYgPiB6b3VrYVwgOwor5bi35bizID4gaWNob3VcIDsKK+iHquiugyA+IGppc2FuXCA7CivliKnlj6MgPiByaWtvdVwgOwor5qmf5pWPID4ga2liaW5cIDsKK+iHquitpiA+IGppa2VpXCA7CivlgYnot6EgPiBpc2VraVwgOwor5YWl5q2vID4gaXJlYmFcIDsKK+W6tuS6iyA+IHNob2ppXCA7CivprZTnnaEgPiBtYXN1aVwgOwor5qiq5q27ID4gb3VzaGlcIDsKK+i7jOevhCA+IGtpaGFuXCA7CivlhobmnKwgPiBlbnBvblwgOwor5YSS55SfID4ganVzZWlcIDsKK+W3oeafuyA+IGp1bnNhXCA7Civlho3mmKAgPiBzYWllaVwgOwor5bq15Li7ID4gYW5zaHVcIDsKK+iHquiqjSA+IGppbmluXCA7CivlgpnojZIgPiBiaWtvdVwgOwor5biw5biGID4ga2loYW5cIDsKK+iKseeJhyA+IGthaGVuXCA7CivprLznpZ4gPiBraWppblwgOwor6Iaz6YOoID4gemVuYnVcIDsKK+i8uOa2siA+IHl1ZWtpXCA7CivnlJjpnLIgPiBrYW5yb1wgOwor5qqA5b6SID4gZGFudG9cIDsKK+WIqeWIgyA+IHJpamluXCA7CivliKnliIAgPiByaXRvdVwgOwor55Ww6LGhID4gaXNob3VcIDsKK+iMguaelyA+IG1vcmluXCA7Civkv53ppIogPiBob3lvdVwgOwor5YWJ5rOiID4ga291aGFcIDsKK+i3nemboiA+IGt5b3JpXCA7Civlt6bmlrkgPiBzYWhvdVwgOwor5bqn5LmXID4gemFqb3VcIDsKK+iNieW6tSA+IHNvdWFuXCA7CivmqLnmnpcgPiBqdXJpblwgOwor6a2U55WMID4gbWFrYWlcIDsKK+W5s+WSjCA+IGhlaXdhXCA7CivnnIHlrZcgPiBzZWlqaVwgOwor5YW35pyJID4gZ3V5dXVcIDsKK+mwpeWvoSA+IGthbmthXCA7CivlhazmoYggPiBrb3VhblwgOwor6Ieq6KO9ID4gamlzZWlcIDsKK+WHpuWlsyA+IHNob2pvXCA7CivluJ3luqcgPiB0ZWl6YVwgOwor5YiR5ZCPID4ga2VpcmlcIDsKK+mAgeWPlyA+IHNvdWp1XCA7Civlt67mkI0gPiBzYXNvblwgOwor5qih5qeYID4gbW95b3VcIDsKK+apn+aJjSA+IGtpc2FpXCA7CivnlbPoqp4gPiBqb3Vnb1wgOwor5Yeh5aSrID4gYm9ucHVcIDsKK+Wvv+m9oiA+IGp1cmVpXCA7CivlhYPmsJcgPiBnZW5raVwgOwor5Yi75LiLID4ga29ra2FcIDsKK+mAgOWMliA+IHRhaWthXCA7Civlh4blsIkgPiBqdW4nJ2lcIDsKK+WGtuW3pSA+IHlha291XCA7CivluKvlrrYgPiBzaGlrYVwgOwor5qiq5p+EID4gb3VoZWlcIDsKK+WFuOaVhSA+IHRlbmtvXCA7CivoibLnm64gPiBpcm9tZVwgOwor5Yip5L6/ID4gcmliZW5cIDsKK+WFrOaahyA+IGtvdWthXCA7CivlgpnogIMgPiBiaWtvdVwgOwor5Yil5YCLID4gYmVra29cIDsKK+eUu+mBkyA+IGdhZG91XCA7Civot6/pioAgPiByb2dpblwgOwor5bm85YWQID4geW91amlcIDsKK+i+suWutiA+IG5vdWthXCA7CivojYnlsaUgPiB6b3VyaVwgOwor5L+d6Zm6ID4gaG9rZW5cIDsKK+W5tOWIqSA+IG5lbnJpXCA7Civoi7Hmm7ggPiBlaXNob1wgOwor5YWt5pelID4gbXVpa2FcIDsKK+WIhuWMuiA+IGJ1bmt1XCA7Civlhavml6UgPiB5b3VrYVwgOwor5YiG5YyWID4gYnVua2FcIDsKK+WFrOaWuSA+IGt1Ym91XCA7CivmqKrmmrQgPiBvdWJvdVwgOwor5Yal5bqcID4gbWVpZnVcIDsKK+WIkeWFtyA+IGtlaWd1XCA7Civlt6fmioAgPiBrb3VnaVwgOwor6Ium5p2vID4ga3VoYWlcIDsKK+iLseaYjiA+IGVpbWVpXCA7CivmqoDlrrYgPiBkYW5rYVwgOwor5qih5pysID4gbW9ob25cIDsKK+WFpeaXpSA+IGlyaWhpXCA7Civoh6rolqYgPiBqaXNlblwgOwor5bC+6ZW3ID4gb25hZ2FcIDsKK+i+suWppiA+IG5vdWZ1XCA7CivlsI/prKIgPiBrb2JpblwgOwor5qOL6YGTID4ga2lkb3VcIDsKK+WIpOS6iyA+IGhhbmppXCA7CivliIbliKkgPiBidW5yaVwgOwor6Iux5patID4gZWlkYW5cIDsKK+WCheiCsiA+IGZ1aWt1XCA7CivmqKrmlq0gPiBvdWRhblwgOwor6Iux5paHID4gZWlidW5cIDsKK+WHoeWZqCA+IGJvbmtpXCA7Civoi7HmlbAgPiBlaXN1dVwgOwor5qiq5paHID4gb3VidW5cIDsKK+WGtOWvkiA+IGdva2FuXCA7CivpgJTkuIogPiB0b2pvdVwgOwor5bGx6LuKID4gZGFzaGlcIDsKK+W4g+W3viA+IGZ1a2luXCA7Civnm7jloLQgPiBzb3ViYVwgOwor55ub5a60ID4gc2VpZW5cIDsKK+mokumfsyA+IHNvdW9uXCA7Civnmobml6IgPiBrYWlraVwgOwor5YWa5pivID4gdG91emVcIDsKK+i+suWltCA+IG5vdWRvXCA7CivnlKjpgJQgPiB5b3V0b1wgOwor5YWJ5qCEID4ga291ZWlcIDsKK+iMtuWxiyA+IGNoYXlhXCA7CivoirPmsJcgPiBob3VraVwgOwor6Ly/5pybID4geW9ib3VcIDsKK+i+suWkqyA+IG5vdWZ1XCA7Civoh6rokZcgPiBqaWNob1wgOwor5YWQ5pu5ID4gamlzb3VcIDsKK+WHuuWJjSA+IGRlbWFlXCA7CivlubPkvqEgPiBoZWlrYVwgOwor5bCP6aasID4ga291bWFcIDsKK+apn+W3pyA+IGtpa291XCA7CivliJHkvZkgPiBrZWl5b1wgOwor6I235Y+wID4gbmlkYWlcIDsKK+eUmOmFoiA+IGFtYXp1XCA7CivlhqzlraMgPiB0b3VraVwgOwor6IuX5pyoID4gbmFlZ2lcIDsKK+WFteaIiCA+IGhlaWthXCA7CivlubnkuosgPiBrYW5qaVwgOwor6ae76aasID4ga2FuYmFcIDsKK+eUu+izmyA+IGdhc2FuXCA7Civnmb3ml5cgPiBoYWtraVwgOwor6YCB5LuYID4gc291ZnVcIDsKK+WGheW/nCA+IG5haW91XCA7Civlh43lnJ8gPiB0b3Vkb1wgOwor5biv5ZywID4gb2JpamlcIDsKK+WGjeW6piA+IHNhaWRvXCA7CivovrrlnJ8gPiBoZW5kb1wgOwor5bC+6YygID4gYmlqb3VcIDsKK+WIkeS6iyA+IGtlaWppXCA7CivlhoblvL4gPiBlbmRhblwgOwor55uu5Z6iID4gbWVha2FcIDsKK+ecvOS4iyA+IGdhbmthXCA7Civlho3luLAgPiBzYWlraVwgOwor5Ya35aSPID4gcmVpa2FcIDsKK+i/keWPpCA+IGtpbmtvXCA7Civlt7Hlt7MgPiBraXNoaVwgOwor6Lu95rWuID4ga2VpZnVcIDsKK+iNkuWcnyA+IGtvdWRvXCA7Civoi5vmloIgPiBrYXJlblwgOwor6Lui54KJID4gdGVucm9cIDsKK+WFqOaIuCA+IHplbmtvXCA7Civoi5vmlL8gPiBrYXNlaVwgOwor55S76K6aID4gZ2FzYW5cIDsKK+eUu+iugyA+IGdhc2FuXCA7CivovrLlnJIgPiBub3VlblwgOwor5be75bC+ID4ga2FuYmlcIDsKK+ebm+WkjyA+IHNlaWthXCA7CivkvbPpupcgPiBrYXJlaVwgOwor6Im254S2ID4gZW56ZW5cIDsKK+iLseaJjSA+IGVpc2FpXCA7CivohbDpg6ggPiB5b3VidVwgOwor6Lu95rK5ID4ga2VpeXVcIDsKK+W5h+WKqSA+IGhvdWpvXCA7CivlhoXluJEgPiBuYWlkb1wgOwor55S76KuHID4gZ2FkYW5cIDsKK+WGmeWtlyA+IHNoYWppXCA7CivkvpvppIogPiBrdXlvdVwgOwor5YCS6KqeID4gdG91Z29cIDsKK+eZuuaPriA+IGhha2tpXCA7CivprLzngasgPiBvbmliaVwgOwor6a2a5rK5ID4gZ3lveXVcIDsKK+W4neWcnyA+IHRlaWRvXCA7CivmqZ/lq4wgPiBraWdlblwgOwor55Sf6LW3ID4gc2Vpa2lcIDsKK+iKseaiqCA+IGthcmluXCA7CivlhYzmj5sgPiBkYWthblwgOwor5YiA5LiLID4gdG91a2FcIDsKK+mtlOazlSA+IG1haG91XCA7Civoi6bmiKYgPiBrdXNlblwgOwor5YK355eNID4gc2hvdWlcIDsKK+WAmeijnCA+IGtvdWhvXCA7CivluLjli5kgPiBqb3VtdVwgOwor5biw5Y+CID4ga2lzYW5cIDsKK+W3puWyuCA+IHNhZ2FuXCA7CivlhoblsYUgPiBtYWRvaVwgOwor55qu5bGkID4gaGlzb3VcIDsKK+aoueW5uSA+IGp1a2FuXCA7Civoi6bmha4gPiBrdXJ5b1wgOwor6aas6b2iID4gYmFyZWlcIDsKK+S9mem9oiA+IHlvcmVpXCA7Civou73mqZ8gPiBrZWlraVwgOwor55eU55i7ID4gamlyb3VcIDsKK+W3qOWvjCA+IGt5b2Z1XCA7Civlho3lq4EgPiBzYWlrYVwgOwor5YaF5a60ID4gbmFpZW5cIDsKK+iHque9siA+IGppc2hvXCA7CivlhazluqsgPiBrb3Vrb1wgOwor5YKZ56CyID4gYmlob3VcIDsKK+WFrOW6jyA+IGtvdWpvXCA7Civoi6bmg4UgPiBrdWpvdVwgOwor6Iy25ZySID4gY2hhZW5cIDsKK+iLpuaCtiA+IGt1bW9uXCA7Civoi6bmgqkgPiBrdW5vdVwgOwor55Ww6IetID4gaXNodXVcIDsKK+eUqOiqniA+IHlvdWdvXCA7Civlt6blrpggPiBzYWthblwgOwor5qeQ5qi5ID4ga2FpanVcIDsKK+WGl+WkmiA+IGpvdXRhXCA7Civou5/mtL4gPiBuYW5wYVwgOwor5Yal5ZyfID4gbWVpZG9cIDsKK+WFrOW4gyA+IGtvdWZ1XCA7CivnlbDohbkgPiBpZnVrdVwgOwor5YWI5omLID4gc2VudGVcIDsKK+WFrOW3riA+IGtvdXNhXCA7CivojLblmaggPiBjaGFraVwgOwor6IeT6IWRID4gem91ZnVcIDsKK+i/keS+jSA+IGtpbmppXCA7CivprLHmu54gPiB1dHRhaVwgOwor5qGC6aasID4ga2VpbWFcIDsKK+i/keS8vCA+IGtpbmppXCA7Civov5Tku5ggPiBoZW5wdVwgOwor6auY56WWID4ga291c29cIDsKK+aihemFoiA+IHVtZXp1XCA7CivovrLli5kgPiBub3VtdVwgOwor5bi45YKZID4gam91YmlcIDsKK+iLpuW9uSA+IGt1ZWtpXCA7CivluIPlm6MgPiBmdXRvblwgOwor6L+U5LqLID4gaGVuamlcIDsKK+iIjOemjSA+IHpla2thXCA7CivlhbXlrrYgPiBoZWlrYVwgOwor6L+R5LqLID4ga2luamlcIDsKK+W1kOawlyA+IHJhbmtpXCA7Civprq7luqYgPiBzZW5kb1wgOwor6Iub5oCnID4ga2FzZWlcIDsKK+aiteiqniA+IGJvbmdvXCA7CivpqLDosrQgPiB0b3VraVwgOwor5bGl6KGMID4gcmlrb3VcIDsKK+ecjOS4iyA+IGtlbmthXCA7CivlhoXlpaUgPiBuYWlvdVwgOwor6IWV6LyqID4gdWRld2FcIDsKK+i1t+mbuyA+IGtpZGVuXCA7CivluKvlhJIgPiBzaGlqdVwgOwor5a626bSoID4gYWhpcnVcIDsKK+WvnemhlCA+IG5lZ2FvXCA7CivovrLlhbcgPiBub3VndVwgOwor5biC5Za2ID4gc2hpZWlcIDsKK+WGhuWisyA+IGVucHVuXCA7CivoibLmsJcgPiBpcm9rZVwgOwor5bel5aSrID4ga291ZnVcIDsKK+i+nuWOuyA+IGppa3lvXCA7Civou6LmqZ8gPiB0ZW5raVwgOwor6ay85q2vID4gb25pYmFcIDsKK+WwgemOliA+IGZ1dXNhXCA7Civoi7Hlsa8gPiBlaXRvblwgOwor5YWs5a6JID4ga291YW5cIDsKK+WwlumDqCA+IHNlbmJ1XCA7Civovq3lhbggPiBqaXRlblwgOwor5bi45LqLID4gam91amlcIDsKK+WFqOWutiA+IHplbmthXCA7Civnm7jkvLwgPiBzb3VqaVwgOwor5YGJ57i+ID4gaXNla2lcIDsKK+W3peWgtCA+IGtvdWJhXCA7CivnmbrluIMgPiBoYXBwdVwgOwor5biw5Lu7ID4ga2luaW5cIDsKK+WFhOW+jCA+IGFuaWdvXCA7Civnm7jkupIgPiBzb3Vnb1wgOwor5YC26ICFID4ga3VzaGFcIDsKK+S/muisoSA+IHJpeW91XCA7CivlhYnluqYgPiBrb3Vkb1wgOwor6aaz6aeGID4gY2hpa3VcIDsKK+S/muiruiA+IHJpZ2VuXCA7CivlhYjluqYgPiBzZW5kb1wgOwor5L+O6LGGID4gc290b3VcIDsKK+WGl+WToSA+IGpvdWluXCA7Civou43mrYwgPiBndW5rYVwgOwor55Sf6J2LID4ga2lyb3VcIDsKK+WFi+W3sSA+IGtva2tpXCA7CivlhoXlm6AgPiBuYWlpblwgOwor6Leb6KGMID4gaGFrb3VcIDsKK+ebsuS6gCA+IG1vdWtpXCA7CivluKvkuosgPiBzaGlqaVwgOwor6Ium5a+SID4ga3VrYW5cIDsKK+i+nuWFuCA+IGppdGVuXCA7Civnlqvnl6IgPiBla2lyaVwgOwor55ub5YSAID4gc2VpZ2lcIDsKK+W4guWMuiA+IHNoaWt1XCA7CivppqzpppYgPiBiYXNodVwgOwor5L+a6KiAID4gcmlnZW5cIDsKK+S9memmmSA+IHlva291XCA7CivnmbvlsbEgPiB0b3phblwgOwor55a155GVID4gc2hpa2FcIDsKK+i7jeapnyA+IGd1bmtpXCA7Civoi7Hlp78gPiBlaXNoaVwgOwor5YaX5Y+lID4gam91a3VcIDsKK+i+suS6iyA+IG5vdWppXCA7CivmqKnlqIEgPiBrZW4nJ2lcIDsKK+ebruS4iyA+IG1va2thXCA7Civltq7lsqggPiBrZW5zb1wgOwor5qWt54GrID4gZ291a2FcIDsKK+iHquekviA+IGppc2hhXCA7CivnlqPnl5QgPiBpYm9qaVwgOwor5L2Z6aKoID4geW9mdXVcIDsKK+apn+WLlSA+IGtpZG91XCA7CivkvZnpoZ4gPiB5b3J1aVwgOwor5YWQ5a2rID4gamlzb25cIDsKK+ebo+S6iyA+IGthbmppXCA7CivppqzpoK0gPiBiYXRvdVwgOwor5YC557SgID4ga2Vuc29cIDsKK+eUmOiXuyA+IGFtYW1vXCA7CivnmoflpoMgPiBrb3VoaVwgOwor5bC+6KGMID4gYmlrb3VcIDsKK+eah+WlsyA+IGtvdWpvXCA7CivlrrbpoqggPiBrYWZ1dVwgOwor5bel5ZOhID4ga291aW5cIDsKK+WFteWZqCA+IGhlaWtpXCA7Civoibbmm7ggPiBlbnNob1wgOwor5YSq5bynID4geXV1a29cIDsKK+WFrOWckiA+IGtvdWVuXCA7Civovp7ku7sgPiBqaW5pblwgOwor55ub5LqLID4gc2VpamlcIDsKK+i+nuS7pCA+IGppcmVpXCA7Civmo4noirEgPiBtZW5rYVwgOwor5qmf5YaFID4ga2luYWlcIDsKK+WFrOWbsyA+IGtvdXp1XCA7CivlhbXllrYgPiBoZWllaVwgOwor55Sw6IiOID4gaW5ha2FcIDsKK+W3puWPsyA+IHNheXV1XCA7CivmqZ/lhYggPiBraXNlblwgOwor5YWo5ZyfID4gemVuZG9cIDsKK+WFqOWbsyA+IHplbnp1XCA7Civog6/plpMgPiBrb2thblwgOwor55Ww56ewID4gaXNob3VcIDsKK+eUu+iBliA+IGdhc2VpXCA7CivlhazlmaggPiBrb3VraVwgOwor5L2O6Z+zID4gdGVpb25cIDsKK+iHquecgSA+IGppc2VpXCA7CivluIzku6MgPiBraWRhaVwgOwor6L6e5LiWID4gamlzZWlcIDsKK+WFiOWppiA+IHNlbnB1XCA7Civou4zmnaEgPiBraWpvdVwgOwor5bCP6LGGID4gYXp1a2lcIDsKK+WFteWToSA+IGhlaWluXCA7CivmoYjphY0gPiBhbmJhaVwgOwor5a626Zu7ID4ga2FkZW5cIDsKK+WGheWLmSA+IG5haW11XCA7CivlsIrosrQgPiBzb25raVwgOwor5biC5L6hID4gc2hpa2FcIDsKK+W3ruWIhiA+IHNhYnVuXCA7CivlhazllrYgPiBrb3VlaVwgOwor5YaF5YqpID4gbmFpam9cIDsKK+eTpuinoyA+IGdha2FpXCA7CivlhqDkvY0gPiBrYW4nJ2lcIDsKK+iLseWZuCA+IGVpdG9uXCA7CivmooXoposgPiB1bWVtaVwgOwor5bel5YuZID4ga291bXVcIDsKK+aooeWeiyA+IG1va2VpXCA7CivluIzkuJYgPiBraXNlaVwgOwor5qCE6aSKID4gZWl5b3VcIDsKK+S/mOiZnCA+IGZ1cnlvXCA7CivprZTmiYsgPiBtYXNodVwgOwor55Sf6IqxID4gc2Vpa2FcIDsKK+WBveeJiCA+IGdpaGFuXCA7CivkvY7pm7IgPiB0ZWl1blwgOwor5YWI5aajID4gc2VucGlcIDsKK+W4g+S7pCA+IGZ1cmVpXCA7Civlt6jliKkgPiBreW9yaVwgOwor55m95aCKID4gaGFrdWFcIDsKK+aji+iBliA+IGtpc2VpXCA7CivlhYjlpKsgPiB6ZW5wdVwgOwor5YW85YuZID4ga2VubXVcIDsKK+apn+S9kyA+IGtpdGFpXCA7CivnlJjoi6YgPiBrYW5rdVwgOwor6aaZ6ZyyID4ga291cm9cIDsKK+mrmOeCiSA+IGtvdXJvXCA7Civnmbvln44gPiB0b2pvdVwgOwor6LuN5peXID4gZ3Vua2lcIDsKK+S9s+mGuCA+IGtham91XCA7Civot6/ogqkgPiByb2tlblwgOwor5qmf5LyaID4ga2lrYWlcIDsKK+S8vOmhlCA+IG5pZ2FvXCA7CivnlLLnvoUgPiBrb3VyYVwgOwor5a626ZaAID4ga2Ftb25cIDsKK+iHqueUsSA+IGppeXV1XCA7Civmo4Tog4wgPiBraWhhaVwgOwor5L6/6KGjID4gYmVuJydpXCA7CivlhoblhYkgPiBlbmtvdVwgOwor6Ieq55SoID4gaml5b3VcIDsKK+iHqueUnyA+IGppc2VpXCA7Civkvb/pgJQgPiBzaGl0b1wgOwor6Lu95b6uID4ga2VpYmlcIDsKK+WFteWMqiA+IGhlaWhpXCA7CivkvbPphZIgPiBrYXNodVwgOwor5bel5YW3ID4ga291Z3VcIDsKK+eZu+WdgiA+IHRvaGFuXCA7Civlr4zpibEgPiBmdWtvdVwgOwor5YWs5ZCPID4ga291cmlcIDsKK+WGheWEgCA+IG5haWdpXCA7Civkvq7oqIAgPiBidWdlblwgOwor6aiO6KGMID4ga2lrb3VcIDsKK+i8v+WcsCA+IHlvY2hpXCA7Civlu7bjgIUgPiBlbicnZW5cIDsKK+ajhOiAgSA+IGtpcm91XCA7CivoirjlrZAgPiBnZWlrb1wgOwor6IOM6ZuiID4gaGFpcmlcIDsKK+W3puWCviA+IHNha2VpXCA7Civkv53oj4wgPiBob2tpblwgOwor5qmf5LiKID4ga2lqb3VcIDsKK+WFrOWNsCA+IGtvdWluXCA7CivovJTlsI4gPiBob2RvdVwgOwor5YWr5Y2mID4gaGFra2VcIDsKK+i7veW6piA+IGtlaWRvXCA7Civlt7TkurogPiBoYWppblwgOwor55S757SZID4gZ2FzaGlcIDsKK+iLseWQjSA+IGVpbWVpXCA7CivohbnohZQgPiBmdWtrb1wgOwor5YWs5YufID4ga291Ym9cIDsKK+WFrOWLmSA+IGtvdW11XCA7Civnlarnm64gPiBiYW5tZVwgOwor5YWa5ZOhID4gdG91aW5cIDsKK+WGheS+jSA+IG5haWppXCA7CivlhbzlgpkgPiBrZW5iaVwgOwor6ay85omNID4ga2lzYWlcIDsKK+WvhOmHkSA+IGtpa2luXCA7CivotbDot68gPiBzb3Vyb1wgOwor6a2U5by+ID4gbWFkYW5cIDsKK+WyoeebriA+IG9rYW1lXCA7CivlrpjpnIAgPiBrYW5qdVwgOwor5YSA5b2iID4gZ2lrZWlcIDsKK+WEquWpiSA+IHl1dWVuXCA7CivnkZ7pm7IgPiB6dWl1blwgOwor6auY5ripID4ga291b25cIDsKK+WwvuiKsSA+IG9iYW5hXCA7Civlr77oqbEgPiB0YWl3YVwgOwor5Lyd6aasID4gdGVubWFcIDsKK+i9jeWPiSA+IHRlc3NhXCA7Civkvp3oqJcgPiBpdGFrdVwgOwor6ISz6KOhID4gbm91cmlcIDsKK+aoqeWMliA+IGdvbmdlXCA7CivohLPoo48gPiBub3VyaVwgOwor6Ium5ZCfID4ga3VnaW5cIDsKK+iKuOWmkyA+IGdlaWdpXCA7Civot6/nt5ogPiByb3NlblwgOwor6LWk6LqrID4gYWthbWlcIDsKK+WFteWCmSA+IGhlaWJpXCA7CivlhoXkuosgPiBuYWlqaVwgOwor55SY576OID4ga2FuYmlcIDsKK+WvjOi+siA+IGZ1bm91XCA7Civkv67nvoUgPiBzaHVyYVwgOwor6Iql5a2QID4ga2VzaGlcIDsKK+eWkeeCuSA+IGdpdGVuXCA7Civlt6XkuosgPiBrb3VqaVwgOwor5qi95L+OID4gc29uc29cIDsKK+S+jeismyA+IGppa291XCA7Civou43miYsgPiBndW50ZVwgOwor5qip5YipID4ga2VucmlcIDsKK+S8mumjsiA+IGthaWluXCA7Civlhbjkvo0gPiB0ZW5qaVwgOwor5YWs5YSAID4ga291Z2lcIDsKK+WuiemdmSA+IGFuc2VpXCA7Civpp4Xot68gPiBla2lyb1wgOwor5YSS5a6YID4ganVrYW5cIDsKK+WFpeWGhSA+IGp1ZGFpXCA7CivlhZrli5kgPiB0b3VtdVwgOwor5YW35L2TID4gZ3V0YWlcIDsKK+eZuuWPpSA+IGhva2t1XCA7CivkvbXotbcgPiBoZWlraVwgOwor6ayx5oakID4gdXBwdW5cIDsKK+iLpuWKtCA+IGt1cm91XCA7CivkvbPotqMgPiBrYXNodVwgOwor5qeY5a2QID4geW91c3VcIDsKK+S/neiCsiA+IGhvaWt1XCA7CivnlLvnqL8gPiBnYWtvdVwgOwor5bGx56qpID4gc2Fua2FcIDsKK+S+i+ipsSA+IHJlaXdhXCA7CivlhYXlk6EgPiBqdXVpblwgOwor6Iqx5aOHID4ga2FkYW5cIDsKK+WFqOWCmSA+IHplbmJpXCA7CivlhZrliKkgPiB0b3VyaVwgOwor6LiP56C0ID4gdG91aGFcIDsKK+WtpOmrmCA+IGtva291XCA7Civoh6rngoogPiBqaXN1aVwgOwor5qWt5p6cID4gZ291a2FcIDsKK+S9s+izkyA+IGthaGluXCA7CivnlJ/ns7ggPiBraWl0b1wgOwor5YW15LqLID4gaGVpamlcIDsKK+WFiOWPpCA+IHNlbmtvXCA7CivmqKHlhpkgPiBtb3NoYVwgOwor5YOn5b6SID4gc291dG9cIDsKK+iDg+mPoSA+IGlreW91XCA7Civpq5jmrYwgPiBrb3VrYVwgOwor5L6L6KaPID4gcmVpa2lcIDsKK+mrmOasoSA+IGtvdWppXCA7Civnlo7mvI8gPiBzb3JvdVwgOwor5a6J6ZaRID4gYW5rYW5cIDsKK+aoueS4iiA+IGp1am91XCA7CivkvZnovKkgPiB5b2hhaVwgOwor5qKF6IqxID4gYmFpa2FcIDsKK+WEgOWuuSA+IGdpeW91XCA7CivnlLDnp58gPiBkZW5zb1wgOwor5YOn5bq1ID4gc291YW5cIDsKK+mmrOi7iiA+IGJhc2hhXCA7CivlhazkuosgPiBrb3VqaVwgOwor5YWI5YuZID4gc2VubXVcIDsKK+S/uuetiSA+IG9yZXJhXCA7Civlr4zosrQgPiBmdWtraVwgOwor5a+h6KiAID4ga2FnZW5cIDsKK+mmlumDvSA+IHNodXRvXCA7CivmqKHlgKMgPiBtb2hvdVwgOwor5a+M6LGqID4gZnVnb3VcIDsKK+mlkemliSA+IGtpa2luXCA7CivppqzouYQgPiBiYXRlaVwgOwor6Le156WaID4gc2Vuc29cIDsKK+i3r+eoiyA+IHJvdGVpXCA7Civlr4TotIggPiBraXpvdVwgOwor5L2T6LqvID4gdGFpa3VcIDsKK+eXtOaEmiA+IGNoaWd1XCA7Civog4zpg6ggPiBoYWlidVwgOwor5L+d57eaID4gaG9zZW5cIDsKK+iLseS4uyA+IGVpc2h1XCA7CivlraPpoYwgPiBraWRhaVwgOwor5YWD5YipID4gZ2VucmlcIDsKK+S9teiomCA+IGhlaWtpXCA7CivlgKvnkIYgPiByaW5yaVwgOwor6LuK5bqrID4gc2hha29cIDsKK+iCoemWkyA+IGtva2FuXCA7CivnlKPnp5EgPiBzYW5rYVwgOwor5a+T6KmxID4gZ3V1d2FcIDsKK+S9s+iogCA+IGthZ2VuXCA7Civoh6rmtYQgPiBqaWpvdVwgOwor55aP5rC0ID4gc29zdWlcIDsKK+eWjuawtCA+IHNvc3VpXCA7CivkvZnosqEgPiB5b3phaVwgOwor6IS+6IefID4gaGl6b3VcIDsKK+WtkOmmrCA+IGtvdW1hXCA7CivohL7oh5MgPiBoaXpvdVwgOwor5YOn5bC8ID4gc291bmlcIDsKK+eZuuS9nCA+IGhvc3NhXCA7Civou6Llq4EgPiB0ZW5rYVwgOwor6Ieq5rK7ID4gamljaGlcIDsKK+eZkuWQiCA+IHl1Z291XCA7CivlhYXlgpkgPiBqdXViaVwgOwor5YOn5a+6ID4gc291amlcIDsKK+iEvuiFqyA+IGhpc2h1XCA7Civpq5jmnrYgPiBrb3VrYVwgOwor5bC+57GgID4gYmlyb3VcIDsKK+eXm+aJiyA+IGl0YWRlXCA7Civnmb3kupwgPiBoYWt1YVwgOwor5YOn5a62ID4gc291a2FcIDsKK+WutuiyoSA+IGthemFpXCA7Civou6LlqYYgPiB0ZW5iYVwgOwor5YGl5q2pID4ga2VucG9cIDsKK+msvOWtkCA+IG9uaWdvXCA7CivmpYrmnp0gPiB5b3VqaVwgOwor5bGV56S6ID4gdGVuamlcIDsKK+WumOmAlCA+IGthbnRvXCA7Civoh6rmsJEgPiBqaW1pblwgOwor5L+d566hID4gaG9rYW5cIDsKK+aghOi7oiA+IGVpdGVuXCA7CivmpJzms6IgPiBrZW5wYVwgOwor5Luu6aGMID4ga2FkYWlcIDsKK+Wtl+mdoiA+IGppbWVuXCA7Civot6/nm6QgPiByb2JhblwgOwor5YWD5L6hID4gZ2Vua2FcIDsKK+iIteaJiyA+IGRhc2h1XCA7Civlro/pgaAgPiBrb3VlblwgOwor5a2Q6Z+zID4gc2hpaW5cIDsKK+iJpuWwviA+IGthbmJpXCA7CivkvZnoq4cgPiB5b2RhblwgOwor5YSA5Z6LID4gZ2lrZWlcIDsKK+WvjOijlSA+IGZ1eXV1XCA7Civmp4vlm7MgPiBrb3V6dVwgOwor55Sj552AID4gdWJ1Z2lcIDsKK+WBj+azoiA+IGhlbmhhXCA7CivpqZrnlbAgPiBreW91aVwgOwor5YG95pysID4gZ2lob25cIDsKK+iJtuWnvyA+IGVuc2hpXCA7CivlhKrliKkgPiB5dXVyaVwgOwor5qW15oSPID4gZ29rdWlcIDsKK+S7rumdoiA+IGthbWVuXCA7Civlgb3mm7ggPiBnaXNob1wgOwor5bKh5rmvID4gb2theXVcIDsKK+aji+eVjCA+IGtpa2FpXCA7Civkv53nqI4gPiBob3plaVwgOwor5L2Z6KiIID4geW9rZWlcIDsKK+WDheW3riA+IGtpbnNhXCA7CivlhYTkuosgPiBrZWlqaVwgOwor6Lqv5bm5ID4ga3VrYW5cIDsKK+WCvuW6piA+IGtlaWRvXCA7Civkv6/nnrAgPiBmdWthblwgOwor5qCh6KaPID4ga291a2lcIDsKK+iHqOapnyA+IHJpbmtpXCA7Civogqnpg6ggPiBrZW5idVwgOwor6ImH5bqrID4gdGVpa29cIDsKK+WwiuiAhSA+IHNvbmphXCA7Civot6Hnm64gPiBhdG9tZVwgOwor6Lev55SoID4gcm95b3VcIDsKK+WutuiokyA+IGtha3VuXCA7CivlrZfplpMgPiBqaWthblwgOwor5a626KiIID4ga2FrZWlcIDsKK+iKseWGoCA+IGtha2FuXCA7CivkvY7oqp4gPiB0ZWlnb1wgOwor5a6f6LK7ID4gamlwcGlcIDsKK+WCvuW3riA+IGtlaXNhXCA7CivnlLfnjKsgPiBvbmVrb1wgOwor55Sm55SfID4gc29zZWlcIDsKK+i1t+iNiSA+IGtpc291XCA7CivmnrbplpMgPiBrYWthblwgOwor5L2Z6KOVID4geW95dXVcIDsKK+W1qeWRvCA+IHN1dWtvXCA7CivlrpjosrsgPiBrYW5waVwgOwor6aSK6a+JID4geW91cmlcIDsKK+i7jeWkqyA+IGd1bnB1XCA7Civnlo7mnpcgPiBzb3JpblwgOwor5a626KOBID4ga2FzYWlcIDsKK+S/s+eUuyA+IGhhaWdhXCA7Civou4rlpKsgPiBzaGFmdVwgOwor5LuW6Z2iID4gdGFtZW5cIDsKK+Wwj+e0iyA+IGtvbW9uXCA7CivmoYPoirEgPiB0b3VrYVwgOwor55Sf55CGID4gc2VpcmlcIDsKK+iFi+eqqSA+IGVraWthXCA7Civku5jpmo8gPiBmdXp1aVwgOwor6auY5om5ID4ga291aGlcIDsKK+WutuidvyA+IGllYmFlXCA7CivmpJzmn7sgPiBrZW5zYVwgOwor5YKZ5b+YID4gYmlib3VcIDsKK+Wwj+eyiyA+IGtvaWtpXCA7Civlrp/oqJggPiBqaWtraVwgOwor6Ieq5pu4ID4gamlzaG9cIDsKK+iyq+mmliA+IGthbmp1XCA7CivlgYnmpa0gPiBpZ3lvdVwgOwor5Lq66aasID4gamluYmFcIDsKK+WEhOWKqyA+IG9ra3V1XCA7CivosrTpoZUgPiBraWtlblwgOwor5L6N6ICFID4gamlzaGFcIDsKK+iHquaatCA+IGppYm91XCA7Civkvr/np5ggPiBiZW5waVwgOwor5a6Y6KmxID4ga2Fud2FcIDsKK+W0juW0liA+IGtpZ2FpXCA7Civnlo7mlL4gPiBzb2hvdVwgOwor5L2Z6JarID4geW9rdW5cIDsKK+iHquaYjiA+IGppbWVpXCA7Civoh6jmmYIgPiByaW5qaVwgOwor6aSM6aOfID4gZWppa2lcIDsKK+i7jeWZqCA+IGd1bmtpXCA7Civlrpropo8gPiBqb3VnaVwgOwor6Ii55bC+ID4gc2VuYmlcIDsKK+WEgOWIkSA+IGdpa2VpXCA7Civku4rpmpsgPiBpbWF3YVwgOwor5YSE5YaGID4gb2t1ZW5cIDsKK+WEgOWIgCA+IGdpdG91XCA7CivlrojorbcgPiBzaHVnb1wgOwor5Lya6LK7ID4ga2FpaGlcIDsKK+WyqeaguSA+IGl3YW5lXCA7CivppYvpgoQgPiBraWthblwgOwor5a+h6IGeID4ga2FidW5cIDsKK+mrmOaBqSA+IGtvdW9uXCA7CivnlLfmu50gPiBvZGFraVwgOwor6Lui5YyWID4gdGVua2FcIDsKK+WEgOWFuCA+IGdpdGVuXCA7Civnk5znp5EgPiB1cmlrYVwgOwor6Lu95L6uID4ga2VpYnVcIDsKK+WutuiUtSA+IGthem91XCA7CivkvpvnsbMgPiBrdW1haVwgOwor5qCE6J66ID4gc2F6YWVcIDsKK+i7n+WMliA+IG5hbmthXCA7CivlgKTmrrUgPiBuZWRhblwgOwor5a2k6LuNID4ga29ndW5cIDsKK+WBveaCqiA+IGdpYWt1XCA7CivnlbDmnJ0gPiBpY2hvdVwgOwor5L2z6IK0ID4ga2Frb3VcIDsKK+eWsuW8iiA+IGhpaGVpXCA7CivkvJrorbAgPiBrYWlnaVwgOwor55SY54WuID4gYW1hbmlcIDsKK+WBveaApyA+IGdpc2VpXCA7CivmnaXpp5UgPiByYWlnYVwgOwor55S75rOVID4gZ2Fob3VcIDsKK+WvhOiIqiA+IGtpa291XCA7Civpq5jluqcgPiBrb3V6YVwgOwor6auY5bqmID4ga291ZG9cIDsKK+iJr+WMuyA+IHJ5b3VpXCA7CivkvJ3oqJggPiBkZW5raVwgOwor5Lya6KmxID4ga2Fpd2FcIDsKK+S9meiKsyA+IHlvaG91XCA7CivkubHpursgPiByYW5tYVwgOwor5YKY5a+/ID4gc2FuanVcIDsKK+WxseaysyA+IHNhbmdhXCA7CivlsL7nirYgPiBiaWpvdVwgOwor6ICz6aCGID4gamlqdW5cIDsKK+S8veiXjSA+IGdhcmFuXCA7Civos5vovp4gPiBzYW5qaVwgOwor6LuN5Yy7ID4gZ3VuJydpXCA7CivlsILnp5EgPiBzZW5rYVwgOwor55Ww5pWZID4gaWt5b3VcIDsKK+WEgOS7lyA+IGdpam91XCA7CivlrojooZsgPiBzaHVlaVwgOwor5a+M6ICFID4gZnVzaGFcIDsKK+S8muimjyA+IGthaWtpXCA7Civou43li5kgPiBndW5tdVwgOwor55Sj5rmvID4gdWJ1eXVcIDsKK+mmmeiPryA+IGtvdWdlXCA7Civoh6rmiJIgPiBqaWthaVwgOwor5bC+54eIID4gYml0b3VcIDsKK+S+m+elrSA+IGd1c2FpXCA7Civos5Povp4gPiBoaW5qaVwgOwor6IOa6Iq9ID4gaGFpZ2FcIDsKK+i1t+eulyA+IGtpc2FuXCA7CivoiJ7lrZAgPiBtYWlrb1wgOwor5L2z57eoID4ga2FoZW5cIDsKK+iHquaFoiA+IGppbWFuXCA7Civou6LkvY0gPiB0ZW4nJ2lcIDsKK+mjoumliSA+IGtpa2luXCA7Civmpb3lmaggPiBnYWtraVwgOwor55aR5b+1ID4gZ2luZW5cIDsKK+WvuuekviA+IGppc2hhXCA7CivkvZnogZ4gPiB5b2J1blwgOwor5Lqk6ZmEID4ga291ZnVcIDsKK+WtpuiqsiA+IGdha2thXCA7Civlg63kvY0gPiBzZW4nJ2lcIDsKK+S7mOi/kSA+IGZ1a2luXCA7CivlsL7nga8gPiBiaXRvdVwgOwor6aas6ICVID4gYmFrb3VcIDsKK+eTnOeUsCA+IGthZGVuXCA7CivouI/mn7sgPiB0b3VzYVwgOwor6auY5a6cID4ga291Z2lcIDsKK+i1t+eovyA+IGtpa291XCA7CivnlLvmpbwgPiBnYXJvdVwgOwor6ISx55quID4gZGFwcGlcIDsKK+eVj+acjSA+IGlmdWt1XCA7CivmnaXpmaIgPiByYWlpblwgOwor5L6N56WtID4gamlzYWlcIDsKK+i7jeWCmSA+IGd1bmJpXCA7CivnlKPmsJcgPiBzYW5rZVwgOwor5qWK5a2QID4geW91amlcIDsKK+Wwj+eVsCA+IHNob3VpXCA7CivoiJ7lppMgPiBtYWlrb1wgOwor5qOE5q27ID4ga2lzaGlcIDsKK+S9mee9qiA+IHlvemFpXCA7CivnlKPmr5sgPiB1YnVnZVwgOwor5qWt5ZugID4gZ291aW5cIDsKK+S+i+ekuiA+IHJlaWppXCA7CivlrrbogIEgPiBrYXJvdVwgOwor55Sf5rCXID4gc2Vpa2lcIDsKK+S6i+mghSA+IGppa291XCA7CivohZDniJsgPiBmdXJhblwgOwor5bCP55O2ID4ga29iaW5cIDsKK+S9s+evhyA+IGthaGVuXCA7CivohLHnlr0gPiBkYXNzb1wgOwor5bKp5oi4ID4gaXdhdG9cIDsKK+Wvv+ebgyA+IGp1aGFpXCA7CivnlJ/mr40gPiBzZWlib1wgOwor6Ieq5byBID4gamliZW5cIDsKK+eVquaJiyA+IGJhbnRlXCA7CivlgbjlrokgPiB0b3VhblwgOwor5bCP55C0ID4gb2dvdG9cIDsKK+S/hOeEtiA+IGdhemVuXCA7Civmo4TmqKkgPiBraWtlblwgOwor6LGq6aOyID4gZ291aW5cIDsKK+S6gOmgrSA+IGtpdG91XCA7CivnlLvmnb8gPiBnYWJhblwgOwor5a2X6KiTID4gamlrdW5cIDsKK+ais+avmyA+IHNvbW91XCA7Civpo5vpm7sgPiBoaWRlblwgOwor5LqM6ZqOID4gbmlrYWlcIDsKK+eUu+adkCA+IGdhemFpXCA7CivlrZfop6MgPiBqaWthaVwgOwor6LuN5LqLID4gZ3VuamlcIDsKK+eQhuiyoSA+IHJpemFpXCA7CivnlLvmnKwgPiBnYWhvblwgOwor55S75pyfID4ga2Fra2lcIDsKK+iHquW3pSA+IGppa291XCA7Civog4PohbggPiBpY2hvdVwgOwor5qCh57SAID4ga291a2lcIDsKK+eVuOW9oiA+IGtpa2VpXCA7Civku6PorbAgPiBkYWlnaVwgOwor5Luu6KiAID4ga2FnZW5cIDsKK+i1sOegtCA+IHNvdWhhXCA7CivlgrXli5kgPiBzYWltdVwgOwor6Lqr5YiGID4gbWlidW5cIDsKK+WAi+adoSA+IGtham91XCA7CivotaTnpo0gPiBzZWtrYVwgOwor5LqI6ZiyID4geW9ib3VcIDsKK+WBieW+syA+IGl0b2t1XCA7Civos4Tos4IgPiB3YWlyb1wgOwor6IKy6IuxID4gaWt1ZWlcIDsKK+Wwj+eKrCA+IGtvaW51XCA7CivmoITogIAgPiBlaXlvdVwgOwor55Sx5p2lID4geXVyYWlcIDsKK+eVsOW/gyA+IGlzaGluXCA7CivoiLnljLsgPiBzZW4nJ2lcIDsKK+aksOWtkCA+IHlhc2hpXCA7CivlrrbntIsgPiBrYW1vblwgOwor5a6257O7ID4ga2FrZWlcIDsKK+eVsOW9oiA+IGlneW91XCA7CivkvL3nvoUgPiBreWFyYVwgOwor6IK66IWRID4gaGFpZnVcIDsKK+S7j+iyqCA+IGZ1a2thXCA7CivmnbHpg70gPiB0b3V0b1wgOwor5p2x6YOoID4gdG91YnVcIDsKK+S7ruijhSA+IGthc291XCA7Civoh6rlsL0gPiBqaWppblwgOwor55CG6KuWID4gcmlyb25cIDsKK+WBj+W3riA+IGhlbnNhXCA7CivlsIrniLYgPiBzb25wdVwgOwor6Ieq5bCKID4gamlzb25cIDsKK+WBveWgsSA+IGdpaG91XCA7CivlrprnvqkgPiB0ZWlnaVwgOwor5YKZ5ZOBID4gYmloaW5cIDsKK+iyqOi7iiA+IGthc2hhXCA7Civkv5fmsJcgPiB6b2trZVwgOwor6Ieq5a6zID4gamlnYWlcIDsKK+iyuOiyuyA+IHRhaWhpXCA7Civlr4TnqL8gPiBraWtvdVwgOwor55WZ5oSPID4gcnl1dWlcIDsKK+S9leeuhyA+IG5hbmtvXCA7CivlgIvmlbAgPiBrb3N1dVwgOwor5a+d55u4ID4gbmV6b3VcIDsKK+mitumiqCA+IGd1ZnV1XCA7CivosrTos6QgPiBraXNlblwgOwor6Ieq5a2YID4gamlzb25cIDsKK+ahgueariA+IGtlaWhpXCA7Civpo7LphZIgPiBpbnNodVwgOwor6LK06LOTID4ga2loaW5cIDsKK+S6qOmBiyA+IGtvdXVuXCA7CivnkIbop6MgPiByaWthaVwgOwor6LK06LOOID4ga2lzZW5cIDsKK+i1t+eUqCA+IGtpeW91XCA7CivkvZXnrYkgPiBuYW5yYVwgOwor6LKp6LevID4gaGFucm9cIDsKK+acn+mmliA+IGtpc2h1XCA7Civkv5fmrYwgPiB6b2trYVwgOwor5LmX6aasID4gam91YmFcIDsKK+S7mOiogCA+IGZ1Z2VuXCA7CivotaTnm64gPiBha2FtZVwgOwor5LuL6K23ID4ga2FpZ29cIDsKK+S7luiogCA+IHRhZ29uXCA7CivkuoDpkZEgPiBraWthblwgOwor6ISz54KOID4gbm91ZW5cIDsKK+aknOWtlyA+IGtlbmppXCA7CivkupTph40gPiBnb2p1dVwgOwor6LOA6KmeID4gZ2FzaGlcIDsKK+iInuWPsCA+IGJ1dGFpXCA7CivmnJ3ppIkgPiBhc2FnZVwgOwor5a+h55S3ID4geWFtb29cIDsKK+S7luimiyA+IHRha2VuXCA7CivoiI7llrYgPiBzaGFlaVwgOwor5LyO6Iq4ID4gZ2lnZWlcIDsKK+eWjuWkliA+IHNvZ2FpXCA7Civlgbblm6AgPiBndXVpblwgOwor5a6J572uID4gYW5jaGlcIDsKK+iyqOiyoSA+IGthemFpXCA7Civlgo3lj5cgPiBib3VqdVwgOwor6IO0552AID4gZG91Z2lcIDsKK+WutuemvSA+IGtha2luXCA7CivlsqnlsYsgPiBpd2F5YVwgOwor5LqM6YeNID4gZnV0YWVcIDsKK+iCpeiCsiA+IGhpaWt1XCA7CivlsI/mu50gPiBvdGFraVwgOwor5LqI6Yi0ID4geW9yZWlcIDsKK+WBveWWhCA+IGdpemVuXCA7CivmoqfmoZAgPiBnb3RvdVwgOwor6LKi6LOmID4ga291ZnVcIDsKK+eUu+aJjSA+IGdhc2FpXCA7CivnlLvmiYsgPiBnYXNodVwgOwor5a6Y57SAID4ga2Fua2lcIDsKK+iytOiqjCA+IGtpc2hpXCA7Civpoqjpn7sgPiBmdXVpblwgOwor55Wz5a2XID4gam91amlcIDsKK+S7luihjCA+IHRha291XCA7CivogqHogrEgPiBrb2tvdVwgOwor6LKh6LKoID4gemFpa2FcIDsKK+eVsOWulyA+IGlzaHV1XCA7CivkupLpgbggPiBnb3NlblwgOwor6Ieq5aOKID4gamlrYWlcIDsKK+ajhOaQjSA+IGtpc29uXCA7CivpoqjpnaEgPiBmdXViaVwgOwor6aSK6K23ID4geW91Z29cIDsKK+iyneiyqCA+IGJhaWthXCA7CivkvI7og70gPiBnaW5vdVwgOwor5pyq6ZaLID4gbWlrYWlcIDsKK+WAi+aJgCA+IGthc2hvXCA7CivosrTopqcgPiBraXJhblwgOwor6LWw54uXID4gc291a3VcIDsKK+miqOmbsiA+IGZ1dXVuXCA7CivkuZbpm6IgPiBrYWlyaVwgOwor55ay5Yq0ID4gaGlyb3VcIDsKK+S7ruiRrCA+IGthc291XCA7Civlgb3lkI0gPiBnaW1laVwgOwor5Lq66KqeID4gamluZ29cIDsKK+miqOmbhSA+IGZ1dWdhXCA7CivkupTovKogPiBnb3JpblwgOwor5YG95Y+yID4gZ2lzaGlcIDsKK+acn+mZkCA+IGtpZ2VuXCA7CivkuojpgbggPiB5b3NlblwgOwor5LmX6ZmkID4gam91am9cIDsKK+WBj+WlhyA+IGhlbmtpXCA7CivkuLvppqwgPiBzaHVtZVwgOwor5L+d5pyJID4gaG95dXVcIDsKK+iHquWcqCA+IGppemFpXCA7Civpq5jliKkgPiBrb3VyaVwgOwor5pyf6ZaTID4ga2lrYW5cIDsKK+i1t+eCuSA+IGtpdGVuXCA7CivkuozovKogPiBuaXJpblwgOwor5pyd6ZaTID4gYXNhbWFcIDsKK+iEs+azoiA+IG5vdWhhXCA7Civlrp/np5EgPiBqaWtrYVwgOwor5a6255u4ID4ga2Fzb3VcIDsKK+adpeizgCA+IHJhaWdhXCA7CivlsaDmiYAgPiB0b3Nob1wgOwor55aR5ZWPID4gZ2ltb25cIDsKK+iIjuWIqSA+IHNoYXJpXCA7Civlr4TnlJ8gPiBraXNlaVwgOwor5LqM6LuNID4gbmlndW5cIDsKK+WAkuW9sSA+IHRvdWVpXCA7Civku5bolqYgPiB0YXplblwgOwor5YCL5oCnID4ga29zZWlcIDsKK+mnhOeKrCA+IGRha2VuXCA7Civpo5vou4ogPiBoaXNoYVwgOwor5bG55bqmID4ga2l0dG9cIDsKK+S9nOeUqCA+IHNheW91XCA7CivlgK3lr4cgPiB3YWtvdVwgOwor5bCP5q2MID4ga291dGFcIDsKK+S4u+mfsyA+IHNodW9uXCA7CivnlbDlooMgPiBpa3lvdVwgOwor5a6555aRID4geW91Z2lcIDsKK+eUu+W7iiA+IGdhcm91XCA7CivkvZnnlJ8gPiB5b3NlaVwgOwor576O6bqXID4gYmlyZWlcIDsKK+WumuekjiA+IHRlaXNvXCA7CivlgY/lnJ8gPiBoZW5kb1wgOwor5bKp5aC0ID4gaXdhYmFcIDsKK+iHquWVjyA+IGppbW9uXCA7Civlgb3lhbUgPiBnaWhlaVwgOwor5Lqk6Kq8ID4ga291Z2lcIDsKK+iFleacqCA+IHVkZWdpXCA7CivlgpjkuIsgPiBzYW5rYVwgOwor5YGl5ZCmID4ga2VucGlcIDsKK+eUu+W4qyA+IGdhc2hpXCA7CivnlLvluJYgPiBnYWpvdVwgOwor5a6255SjID4ga2FzYW5cIDsKK+eUu+W3pSA+IGdha291XCA7CivotbfmupAgPiBraWdlblwgOwor57696Z+zID4gaGFvdG9cIDsKK+mrmOS+oSA+IGtvdWthXCA7CivlgInluqsgPiBzb3Vrb1wgOwor5p6c6I+cID4ga2FzYWlcIDsKK+acuui+uiA+IGtpaGVuXCA7Civlr77mr5QgPiB0YWloaVwgOwor55Ww5Zu9ID4gaWtva3VcIDsKK+adkeiyuyA+IHNvbnBpXCA7Civos6LogIUgPiBrZW5qYVwgOwor5pys6YOoID4gaG9uYnVcIDsKK+S6kuitsiA+IGdvam91XCA7Civoh5PlmaggPiB6b3VraVwgOwor5a++5qynID4gdGFpb3VcIDsKK+iAgei6ryA+IHJvdWt1XCA7CivnlKPlvowgPiBzYW5nb1wgOwor55So5bqmID4geW91ZG9cIDsKK+abuOmZoiA+IHNob2luXCA7CivmoZDmsrkgPiB0b3V5dVwgOwor5pyq6YGCID4gbWlzdWlcIDsKK+eUn+W+kiA+IHNlaXRvXCA7CivnlJ/lvowgPiBzZWlnb1wgOwor5p2h6KaPID4gam91a2lcIDsKK+iEmuawlyA+IGtha2tlXCA7Civpq5jkuIsgPiBrb3VnZVwgOwor6Ieq5YuVID4gamlkb3VcIDsKK+eOi+mBkyA+IG91ZG91XCA7Civos5vnvo4gPiBzYW5iaVwgOwor6IWQ5pWXID4gZnVoYWlcIDsKK+i5hOWPiSA+IHRlaXNhXCA7CivkuonorbAgPiBzb3VnaVwgOwor5pyo6YCaID4gYWtlYmlcIDsKK+S7leiIniA+IGppbWFpXCA7CivotormqKkgPiBla2tlblwgOwor6LeL5omIID4gYmFra29cIDsKK+S9meeHvCA+IHlvamluXCA7CivlgIvlsZUgPiBrb3RlblwgOwor6Ieq5YmNID4gamltYWVcIDsKK+iHquWItiA+IGppc2VpXCA7CivlgaXlhZAgPiBrZW5qaVwgOwor6IOD55ebID4gaXRzdXVcIDsKK+S6iOisgCA+IHlvYm91XCA7CivpqqjljJYgPiBrb2trYVwgOwor5bCP5p6dID4ga29lZGFcIDsKK+iDg+eXhSA+IGlieW91XCA7Civoh6rliIYgPiBqaWJ1blwgOwor6Ieq5YiDID4gamlqaW5cIDsKK+i1t+avmyA+IGtpbW91XCA7CivnkarnkZkgPiBtZW5vdVwgOwor6aKo6YKqID4gZnV1amFcIDsKK+i1t+atuyA+IGtpc2hpXCA7Civmnrbnt5ogPiBrYXNlblwgOwor5LiK6aasID4gam91YmFcIDsKK+S9nOeCuiA+IHNha3VpXCA7Civog4znkIYgPiBoYWlyaVwgOwor5a6J55ygID4gYW5taW5cIDsKK+iHquWFmiA+IGppdG91XCA7CivlsL/mhI8gPiBueW91aVwgOwor5pyb6YGgID4gYm91ZW5cIDsKK+eUsOWutiA+IGRlbmthXCA7CivkuojoqIAgPiB5b2dlblwgOwor5Lmd6LyqID4ga3VyaW5cIDsKK+S5seiyuyA+IHJhbnBpXCA7Civku5bogZ4gPiB0YWJ1blwgOwor5pyq6LiPID4gbWl0b3VcIDsKK+S6ieimhyA+IHNvdWhhXCA7Civlr53msZcgPiBuZWFzZVwgOwor5YGl5L+dID4ga2VucG9cIDsKK+WvvuahiCA+IHRhaWFuXCA7CivnkZXnlrUgPiBrYXNoaVwgOwor5LqI6KaLID4geW9rZW5cIDsKK+S4i+miqCA+IGthZnV1XCA7Civku5bogIUgPiB0YXNoYVwgOwor55W/5YaFID4ga2luYWlcIDsKK+S7rue0jSA+IGthbm91XCA7CivnjKrpppYgPiBpa3ViaVwgOwor5a6a55CGID4gdGVpcmlcIDsKK+S4jemghiA+IGZ1anVuXCA7CivkuIDpppYgPiBpc3NodVwgOwor55Sj5bGLID4gdWJ1eWFcIDsKK+S7rueypyA+IGtld2FpXCA7Civosaroqp4gPiBnb3Vnb1wgOwor6aGe6Z+7ID4gcnVpaW5cIDsKK+mhnumfsyA+IHJ1aW9uXCA7Civlr5Lms6IgPiBrYW5wYVwgOwor55So5a2XID4geW91amlcIDsKK+WtpuenkSA+IGdha2thXCA7Civosqfoi6YgPiBoaW5rdVwgOwor55S35aWzID4gZGFuam9cIDsKK+iAg+iqsiA+IGtvdWthXCA7CivmoLnmsJcgPiBrb25raVwgOwor6LWk5q+bID4gYWthZ2VcIDsKK+S4gOmjryA+IGlwcGFuXCA7CivnlLvlo4cgPiBnYWRhblwgOwor5a+E5rivID4ga2lrb3VcIDsKK+mmmeeFmSA+IGtvdWVuXCA7Civnvo7poqggPiBiaWZ1dVwgOwor6aOb6KGMID4gaGlrb3VcIDsKK+S6iOihjCA+IHlva291XCA7Civkuqzoj68gPiBrZWlrYVwgOwor5a6J55SjID4gYW56YW5cIDsKK+iHquS9kyA+IGppdGFpXCA7CivkuIDpoqggPiBpcHB1dVwgOwor576O6aGUID4gYmlnYW5cIDsKK+eUn+WutiA+IHNlaWthXCA7Civlrp/niLYgPiBqaXBwdVwgOwor6Ieq5LydID4gamlkZW5cIDsKK+iBluiAhSA+IHNlaWphXCA7Civkvr/miYAgPiBiZW5qb1wgOwor55S75aCxID4gZ2Fob3VcIDsKK+iHquS7uyA+IGppbmluXCA7CivkuJbplpMgPiBzZWtlblwgOwor5LiA6aCtID4gaXR0b3VcIDsKK+eUsuWknCA+IGtvdXlhXCA7Civoh6rku4ogPiBqaWtvblwgOwor5LiN6ZqPID4gZnV6dWlcIDsKK+mmmeeCiSA+IGtvdXJvXCA7CivkuLvpg6ggPiBzaHVidVwgOwor5LiA6aCFID4gaWtrb3VcIDsKK+mojuaJiyA+IGtpc2h1XCA7CivnlLDlpKsgPiBkZW5wdVwgOwor6LOm56iOID4gZnV6ZWlcIDsKK+mjm+idlyA+IGJhdHRhXCA7Civnkr3mm7ggPiBqaXNob1wgOwor5bC75bqnID4ga291emFcIDsKK+iytOe/sCA+IGtpa2FuXCA7CivnkIbns7sgPiByaWtlaVwgOwor6Ieq5LmXID4gamlqb3VcIDsKK+eUo+WppiA+IHNhbnB1XCA7CivkuIvpmZAgPiBrYWdlblwgOwor5LiL6ZmNID4ga2Frb3VcIDsKK+S4iumZoiA+IGpvdWluXCA7Civoh6rkuLsgPiBqaXNodVwgOwor5a+45pqHID4gc3Vua2FcIDsKK+aetuepuiA+IGtha3V1XCA7CivnlKPlqYYgPiBzYW5iYVwgOwor5qOL5aOrID4ga2lzaGlcIDsKK+ixjOixhiA+IGVuZG91XCA7CivkuIvpmKogPiBnZWhhblwgOwor5a+45pmCID4gc3VuamlcIDsKK+aiteWtlyA+IGJvbmppXCA7CivnlJjlrZAgPiBhbWFnb1wgOwor5L2T5ripID4gdGFpb25cIDsKK+S+v+aEjyA+IGJlbicnaVwgOwor5LuB576pID4gamluZ2lcIDsKK+Wum+eEtiA+IGVuemVuXCA7CivkvZzms5UgPiBzYWhvdVwgOwor5qSc5LqLID4ga2VuamlcIDsKK+S4u+i+niA+IHNodWppXCA7CivmmrTpo7IgPiBib3VpblwgOwor5a+d5qO6ID4gbmVrYW5cIDsKK+aenOezliA+IGthdG91XCA7CivkvY7muKkgPiB0ZWlvblwgOwor6LWw5p+7ID4gc291c2FcIDsKK+S4gOmajiA+IGlra2FpXCA7CivmnKzoqLQgPiBob25zb1wgOwor5LiA6ZqKID4gaXR0YWlcIDsKK+abuemBlCA+IHNvdWRhXCA7CivnlbjkurogPiBraWppblwgOwor6LKn6ICFID4gaGluamFcIDsKK+S/kOW3pyA+IHJpa291XCA7CivkvovmmYIgPiByZWlqaVwgOwor5a625rOVID4ga2Fob3VcIDsKK+eUsOWcgyA+IGRlbnBvXCA7CivlsaDloLQgPiB0b2pvdVwgOwor5LuY566LID4gZnVzZW5cIDsKK+acquimiyA+IG1pa2VuXCA7CivogLPohZQgPiBqaWtvdVwgOwor5LiA6ZaDID4gaXNzZW5cIDsKK+WwkeaFsCA+IHNob3VpXCA7Civkvq7mhaIgPiBidW1hblwgOwor5L2c5q2MID4gc2Fra2FcIDsKK+ahg+adjiA+IHRvdXJpXCA7CivmoKHmrYwgPiBrb3VrYVwgOwor576p6YeRID4gZ2lraW5cIDsKK+S/neWuiCA+IGhvc2h1XCA7Civpoqjoq60gPiBmdXV5dVwgOwor5LiW6YqAID4gc2VnaW5cIDsKK+S/neWtmCA+IGhvem9uXCA7Civogrrngo4gPiBoYWllblwgOwor55SY5aSiID4ga2FubXVcIDsKK+WwpOW6piA+IHl1dWRvXCA7CivogL3nvo4gPiB0YW5iaVwgOwor5pug6YeOID4ga291eWFcIDsKK+iytOe0mSA+IGtpc2hpXCA7CivmnIjos6YgPiBnZXBwdVwgOwor5bGV5aKTID4gdGVuYm9cIDsKK+S+v+W6pyA+IGJlbnphXCA7CivkupToipIgPiBnb2JvdVwgOwor54+q57SgID4ga2Vpc29cIDsKK+aguOaenCA+IGtha2thXCA7CivlsIrmhI8gPiBzb24nJ2lcIDsKK+mmmeayuSA+IGtvdXl1XCA7CivnlKjlmaggPiB5b3VraVwgOwor5qGI5paHID4gYW5tb25cIDsKK+S7ruedoSA+IGthc3VpXCA7CivmnJfoqaAgPiByb3VlaVwgOwor5YCS5Y+lID4gdG91a3VcIDsKK+WAkuWPmSA+IHRvdWpvXCA7Civku67nnKAgPiBrYW1pblwgOwor6LK057ChID4ga2lrYW5cIDsKK+iHjeS4iyA+IHNlaWthXCA7CivlrprmuKkgPiB0ZWlvblwgOwor5Luu55u4ID4ga2Fzb3VcIDsKK+S6lOiHkyA+IGdvem91XCA7Civog4zms7MgPiBoYWllaVwgOwor6aaZ5rCXID4ga291a2lcIDsKK+S6oeiAhSA+IG1vdWphXCA7CivohqDljJYgPiBrb3VrYVwgOwor6aCt6Z+7ID4gdG91aW5cIDsKK+S9s+aZryA+IGtha2VpXCA7CivlsJbluqYgPiBzZW5kb1wgOwor5LuW56S+ID4gdGFzaGFcIDsKK+ixquiPryA+IGdvdWthXCA7Civlr4zmnIkgPiBmdXl1dVwgOwor5LiW6YCUID4gc2VpdG9cIDsKK+S7rueXmCA+IGthdG91XCA7CivkuIfph4wgPiBiYW5yaVwgOwor55CG55+lID4gcmljaGlcIDsKK+S4mOi+uiA+IG9rYWJlXCA7Civohbnlm7IgPiBmdWt1aVwgOwor5L2Q5qeYID4gc2F5b3VcIDsKK+S7j+elliA+IGJ1c3NvXCA7Civpp4TmlocgPiBkYWJ1blwgOwor576p6LuNID4gZ2lndW5cIDsKK+WAjeWKoCA+IGJhaWthXCA7CivlgK3kurogPiB3YWppblwgOwor5LiD6YeNID4gbmFuYWVcIDsKK+S4i+mDjiA+IGdlcm91XCA7CivkuIrpg6ggPiBqb3VidVwgOwor6aCT6aasID4gdG9ubWFcIDsKK+S4iemDqCA+IHNhbmJ1XCA7CivosrTnqK4gPiBraXNodVwgOwor5LiN6YGcID4gZnVzb25cIDsKK+WwhOW9sSA+IHNoYWVpXCA7CivkuI3pgYcgPiBmdWd1dVwgOwor5LiA6YeNID4gaGl0b2VcIDsKK+S4u+iqniA+IHNodWdvXCA7Civkvr/lrpwgPiBiZW5naVwgOwor6aiO5bCEID4ga2lzaGFcIDsKK+WvhOabuCA+IGtpc2hvXCA7CivkuI3pgJ4gPiBmdXRlaVwgOwor5bCP5bedID4gb2dhd2FcIDsKK+WvvuW/nCA+IHRhaW91XCA7CivkuI3pgIAgPiBmdXRhaVwgOwor576O6YWSID4gYmlzaHVcIDsKK+eRnuawlyA+IHp1aWtpXCA7CivkuLvoqLQgPiBzaHVzb1wgOwor5pqX6ZuyID4gYW4nJ3VuXCA7CivosrTnpL4gPiBraXNoYVwgOwor55S35YWQID4gZGFuamlcIDsKK+S6jOiAhSA+IG5pc2hhXCA7CivnlLvlg48gPiBnYXpvdVwgOwor5LuW55yMID4gdGFrZW5cIDsKK+S/s+WRsyA+IGhhaW1pXCA7CivkvZrmm7ggPiBpc3Nob1wgOwor5amm6YG4ID4gZnVzZW5cIDsKK+eUqOWLmSA+IHlvdW11XCA7CivlqabpgZMgPiBmdWRvdVwgOwor5p2R57+BID4gc29ub3VcIDsKK+WuieazsCA+IGFudGFpXCA7CivogqXmuoAgPiBoaW1hblwgOwor5LiL6LypID4gZ2VoYWlcIDsKK+WutuadpSA+IGtlcmFpXCA7Civlr77luqcgPiB0YWl6YVwgOwor5YCk5LiKID4gbmVhZ2VcIDsKK+eUmOWRsyA+IGthbm1pXCA7Civkv7Plj6UgPiBoYWlrdVwgOwor5LiA6YGNID4gaXBwZW5cIDsKK+iAgeiIlyA+IHJvdWhvXCA7Civmmpfpl5ggPiBhbnRvdVwgOwor5pu46KiYID4gc2hva2lcIDsKK+S4i+i7iiA+IGdlc2hhXCA7CivlsJHlsIkgPiBzaG91aVwgOwor55Sa5Y+lID4gamlua3VcIDsKK+WutuabuCA+IGthc2hvXCA7CivkupvntLAgPiBzYXNhaVwgOwor55CG55SxID4gcml5dXVcIDsKK+S6uuelliA+IGppbnNvXCA7CivlsI/lsIkgPiBzaG91aVwgOwor5qCh5peXID4ga291a2lcIDsKK+S5seiIniA+IHJhbmJ1XCA7CivkupTnt5ogPiBnb3NlblwgOwor55SY5Y+XID4ga2FuanVcIDsKK+S4gOi+uiA+IGlwcGVuXCA7Civkvo3lvpMgPiBqaWp1dVwgOwor5a2k54GvID4ga290b3VcIDsKK+S7o+eQhiA+IGRhaXJpXCA7CivosqLnp58gPiBrb3Vzb1wgOwor5aiD6ayfID4gYWlrYW5cIDsKK+S8mua0viA+IGthaWhhXCA7CivlrZDniqwgPiBrb2ludVwgOwor6IGv54+gID4gcmVuanVcIDsKK+eUqOWFtyA+IHlvdWd1XCA7CivnlLvkvJogPiBnYWthaVwgOwor5LuW55WMID4gdGFrYWlcIDsKK+S6lOe1gyA+IGdvZ2VuXCA7CivlsI/lrZcgPiBrb2F6YVwgOwor5bGL5Y+3ID4geWFnb3VcIDsKK+Wxi+WPsCA+IHlhdGFpXCA7CivlsIrlrrYgPiBzb25rYVwgOwor5LiA6LuiID4gaXR0ZW5cIDsKK+eUu+S6uiA+IGdhamluXCA7CivpoYzovp4gPiBkYWlqaVwgOwor5LiA6LuSID4gaWtrZW5cIDsKK+Wun+aihSA+IG1pdW1lXCA7CivlgIvkvZMgPiBrb3RhaVwgOwor6aiO5aOrID4ga2lzaGlcIDsKK+WvvuWzmSA+IHRhaWppXCA7CivnlKPlhZAgPiBzYW5qaVwgOwor6Lev5YKNID4gcm9ib3VcIDsKK+acrOiIlyA+IGhvbnBvXCA7CivnvqTorbAgPiBndW5naVwgOwor5LiN6LK3ID4gZnViYWlcIDsKK+WutuaUvyA+IGthc2VpXCA7CivkuIvos6QgPiBnZXNlblwgOwor5a+d5oGvID4gbmVpa2lcIDsKK+S4jeiyniA+IGZ1dGVpXCA7CivkuIvos5wgPiBrYXNoaVwgOwor5LiL6LOOID4gZ2VzZW5cIDsKK+aer+eHpSA+IGtvc291XCA7CivlgIvkurogPiBrb2ppblwgOwor5pyo6IieID4ga29tYWlcIDsKK+S9v+W+kiA+IHNoaXRvXCA7CivogIHnv4EgPiByb3VvdVwgOwor57696J+7ID4gaGFhcmlcIDsKK+Wvm+aBlSA+IGthbmpvXCA7CivosrvnlKggPiBoaXlvdVwgOwor6aC46YOoID4ga2VpYnVcIDsKK+S7o+eItiA+IGRhaWZ1XCA7Civosqvnm64gPiBrYW5tZVwgOwor5bCP5aeUID4gc2hvdWlcIDsKK+e+qeiokyA+IGdpa3VuXCA7CivkuojntI0gPiB5b25vdVwgOwor5LiH6LKoID4gYmFua2FcIDsKK+S4luirliA+IHlvcm9uXCA7CivosYroibYgPiBob3VlblwgOwor6LW35belID4ga2lrb3VcIDsKK+adv+ebriA+IGl0YW1lXCA7CivpoK3ph40gPiB6dW9tb1wgOwor5qKF5ZySID4gYmFpZW5cIDsKK+iytOeUtyA+IHRha2FvXCA7CivlrprmnKggPiBqb3VnaVwgOwor5a6a5pyfID4gdGVpa2lcIDsKK+Wwj+WjsiA+IGtvdXJpXCA7Civnvo7osowgPiBiaWJvdVwgOwor5bCP5aOwID4ga29nb2VcIDsKK+ahguW6tSA+IGtlaWFuXCA7CivkuIDosqsgPiBpa2thblwgOwor5LiK6K2wID4gam91Z2lcIDsKK+eUn+S/nSA+IHNlaWhvXCA7Civkvr/lmaggPiBiZW5raVwgOwor5LiO6KuWID4geW9yb25cIDsKK+acquiBniA+IG1pbW9uXCA7Civpn7Ppn7sgPiBvbicnaW5cIDsKK+eUqOS6iyA+IHlvdWppXCA7Civmma/pm7IgPiBrZWl1blwgOwor6aCt6YOoID4gdG91YnVcIDsKK+S7lOeKrCA+IGtvaW51XCA7CivkuoznrYkgPiBuaXRvdVwgOwor572q6YGOID4gemFpa2FcIDsKK+S4iuirrSA+IGpvdXl1XCA7Civkv5fljJYgPiB6b2trYVwgOwor5a2X5rqQID4gamlnZW5cIDsKK+S6iOeulyA+IHlvc2FuXCA7CivpoZ7oqp4gPiBydWlnb1wgOwor6Lev5LiKID4gcm9qb3VcIDsKK+acrOe+qSA+IGhvbmdpXCA7Civos4DnirYgPiBnYWpvdVwgOwor5a6a5pmCID4gdGVpamlcIDsKK+ajhOS4liA+IGtpc2VpXCA7CivosYbohZAgPiB0b3VmdVwgOwor6aeE5byBID4gZGFiZW5cIDsKK+WppuitpiA+IGZ1a2VpXCA7CivotbflsYUgPiBraWt5b1wgOwor542E6KGjID4gZ29rdWlcIDsKK+adv+eUuyA+IGhhbmdhXCA7CivkuI3oqIAgPiBmdWdlblwgOwor5L2P5oyBID4ganV1amlcIDsKK+S9k+aKgCA+IHRhaWdpXCA7Civkv53lhrcgPiBob3JlaVwgOwor5L2Z5oakID4geW9mdW5cIDsKK+S4iuiotCA+IGpvdXNvXCA7CivkuIroqJggPiBqb3VraVwgOwor5L2Z5oW2ID4geW9rZWlcIDsKK+S9nOaEjyA+IHNha3VpXCA7Civkv53lhaggPiBob3plblwgOwor5LqM56iuID4gbmlzaHVcIDsKK+aenOeEtiA+IGthemVuXCA7CivkuI3opoEgPiBmdXlvdVwgOwor6Z+z6ZqOID4gb25rYWlcIDsKK+e+juirhyA+IGJpZGFuXCA7CivlrrbmhrIgPiBrYWtlblwgOwor5LqI56i/ID4geW9rb3VcIDsKK+WwjuWboCA+IGRvdWluXCA7Civku6PmvJQgPiBkYWllblwgOwor5L2Z5oOFID4geW9qb3VcIDsKK+WvoeWxhSA+IGtha3lvXCA7CivniqzppqwgPiBrZW5iYVwgOwor6aST54u8ID4gZ2Fyb3VcIDsKK+WwvOWDpyA+IG5pc291XCA7Civkv53lgaUgPiBob2tlblwgOwor57+h57+gID4gaGlzdWlcIDsKK+aer+a3oSA+IGtvdGFuXCA7CivpoJrpg6ggPiBrZWlidVwgOwor5pyq57e0ID4gbWlyZW5cIDsKK+S4gOioiCA+IGlra2VpXCA7Civnvo7oprMgPiBiaWthblwgOwor6aCQ6YeRID4geW9raW5cIDsKK+S9meW/tSA+IHlvbmVuXCA7CivkuIvooYwgPiBrYWtvdVwgOwor6aGM6KmgID4gZGFpZWlcIDsKK+acqOe2vyA+IG1vbWVuXCA7CivkuLnoirEgPiB0YW5rYVwgOwor5LiA6KaLID4gaWtrZW5cIDsKK+S4ueiJsiA+IG5paXJvXCA7CivnjovntbEgPiBvdXRvdVwgOwor5Lya5pyfID4ga2Fpa2lcIDsKK+WwgeWcnyA+IGhvdWRvXCA7CivotqPlkbMgPiBzaHVtaVwgOwor6LOi5q+NID4ga2VuYm9cIDsKK+aal+i7oiA+IGFudGVuXCA7CivmnKrntI0gPiBtaW5vdVwgOwor5a++5Z2QID4gdGFpemFcIDsKK+S9meW8piA+IHlvZ2VuXCA7CivorbDpoYwgPiBnaWRhaVwgOwor6IGW54GrID4gc2Vpa2FcIDsKK+Wwj+WUhCA+IGtvdXRhXCA7CivkvZnlvIogPiB5b2hlaVwgOwor6IWQ5YiRID4gZnVrZWlcIDsKK+S9s+WuuSA+IGtheW91XCA7CivlrrblvpMgPiBrYWp1dVwgOwor6LWk5a2XID4gYWthamlcIDsKK+mkiueItiA+IHlvdWZ1XCA7CivmnaXnlLEgPiByYWl5dVwgOwor5LqI55+lID4geW9jaGlcIDsKK+S7ruatuyA+IGthc2hpXCA7CivkuIDooYwgPiBpa2tvdVwgOwor5L6/5YipID4gYmVucmlcIDsKK+S7ruatryA+IGthc2hpXCA7CivmoLnlrZAgPiBuZWtrb1wgOwor5a+45ZyfID4gc3VuZG9cIDsKK+S9leW6piA+IG5hbmRvXCA7Civkuoznm7ggPiBuaXNvdVwgOwor6IOh5bqnID4gYWd1cmFcIDsKK+izm+atjCA+IHNhbmthXCA7Civnj4rnkZogPiBzYW5nb1wgOwor5qGI5aSWID4gYW5nYWlcIDsKK+S6i+ebuCA+IGppc291XCA7Civlrrbluq0gPiBrYXRlaVwgOwor5p6v5q27ID4ga29zaGlcIDsKK+iEheWogSA+IGt5b3VpXCA7Civmm7PoiKogPiBlaWtvdVwgOwor55CG5rOVID4gcmlob3VcIDsKK+miqOe0gCA+IGZ1dWtpXCA7Civku6Pmr40gPiBkYWlib1wgOwor55Om5YWoID4gZ2F6ZW5cIDsKK+WutuW4uCA+IGtham91XCA7CivkurrngrogPiBqaW4nJ2lcIDsKK+S8neaSrSA+IGRlbnBhXCA7CivnvbXoqIAgPiBiYWdlblwgOwor6aiO5YW1ID4ga2loZWlcIDsKK+S9juW6piA+IHRlaWRvXCA7CivmoZHlnJIgPiBzb3VlblwgOwor5LqS55SoID4gZ295b3VcIDsKK+S4u+e+qSA+IHNodWdpXCA7CivmnaHnkIYgPiBqb3VyaVwgOwor5bCP5YuiID4ga296ZWlcIDsKK+WvhOWvkyA+IGtpZ3V1XCA7CivlsIrljZEgPiBzb25waVwgOwor5a2m5pyfID4gZ2Fra2lcIDsKK+S6jOeVqiA+IG5pYmFuXCA7CivmmYLpmZAgPiBqaWdlblwgOwor6IOM5b6MID4gaGFpZ29cIDsKK+eJoem5vyA+IG9qaWthXCA7CivkvIHmnJsgPiBraWJvdVwgOwor5pys56eRID4gaG9ua2FcIDsKK+aenOaxgSA+IGthanV1XCA7CivppqzlsYsgPiB1bWF5YVwgOwor6aeF5aSrID4gZWtpZnVcIDsKK+S8neaOiCA+IGRlbmp1XCA7CivkuovnlLEgPiBqaXl1dVwgOwor5L+O5LiKID4gc29qb3VcIDsKK+Wwj+WIpCA+IGtvYmFuXCA7Civkub7nmq4gPiBrYW5waVwgOwor576957+8ID4gdXlva3VcIDsKK+aeneavmyA+IGVkYWdlXCA7Civlr7/lj7ggPiBzdXNoaVwgOwor5L2c5a62ID4gc2Fra2FcIDsKK+mmluW6pyA+IHNodXphXCA7Civmma7pgbggPiBmdXNlblwgOwor6aaW5bqcID4gc2h1ZnVcIDsKK+S6oeeItiA+IGJvdWZ1XCA7Civmma7pgY0gPiBmdWhlblwgOwor5L2Z5a+SID4geW9rYW5cIDsKK+aZgumWkyA+IGppa2FuXCA7CivlsIHljbAgPiBmdXVpblwgOwor6K2c6Z2iID4gZnVtZW5cIDsKK+S7u+acnyA+IG5pbmtpXCA7Civota3lnJ8gPiBzaGFkb1wgOwor5a625bGLID4ga2Fva3VcIDsKK+WutuWxhSA+IGtha3lvXCA7Civorprovp4gPiBzYW5qaVwgOwor6IGW5rK5ID4gc2VpeXVcIDsKK+iFkOS5sSA+IGZ1cmFuXCA7CivlsILli5kgPiBzZW5tdVwgOwor54yf6JmOID4gcmFra29cIDsKK+aZrui+uiA+IGZ1aGVuXCA7Civlr53lnYogPiBuZWJvdVwgOwor6aO054WuID4gYW1lbmlcIDsKK+aeouapnyA+IHN1dWtpXCA7CivnvqToiJ4gPiBndW5idVwgOwor5qC55Z+6ID4ga29ua2lcIDsKK+S9j+WxhSA+IHN1bWFpXCA7Civog4PlvLEgPiBpamFrdVwgOwor5Lyd5omLID4gdHN1dGVcIDsKK+WuteWvnSA+IHlvaW5lXCA7CivlrqPluIMgPiBzZW5wdVwgOwor6Laz5LiLID4gc29ra2FcIDsKK+Wwj+WDpyA+IGtvem91XCA7Civlrp3luqsgPiBob3Vrb1wgOwor6aCG6LevID4ganVucm9cIDsKK+S4iuiNtyA+IHV3YW5pXCA7Civlrrblrp0gPiBrYWhvdVwgOwor5bCE5YipID4gc2hhcmlcIDsKK+eMm+iZjiA+IG1vdWtvXCA7CivlrZfmm7ggPiBqaXNob1wgOwor5LiA6JGmID4gaWNoaWlcIDsKK+WuruWxhSA+IG1peWFpXCA7CivotaTlnLAgPiBha2FqaVwgOwor5L2Q5a6YID4gc2FrYW5cIDsKK+iEseWFjiA+IGRhdHRvXCA7CivogZbmr40gPiBzZWlib1wgOwor576957mUID4gaGFvcmlcIDsKK+iFi+S4iyA+IGVraWthXCA7CivnvqnogqIgPiBnaXNoaVwgOwor6aiO5LmXID4ga2lqb3VcIDsKK+S+jeWPsiA+IGppc2hpXCA7CivlrpjlupwgPiBrYW5wdVwgOwor5pyq55+lID4gbWljaGlcIDsKK+aal+imliA+IGFuc2hpXCA7Civmnpfmqo4gPiByaW5nb1wgOwor5Luj5qGIID4gZGFpYW5cIDsKK+iBluatjCA+IHNlaWthXCA7Civku4rmrKEgPiBrb25qaVwgOwor6LK05q6/ID4ga2lkZW5cIDsKK+S4i+iIuSA+IGdlc2VuXCA7Civkuovniq8gPiBqaWhhblwgOwor6aaW5bC+ID4gc2h1YmlcIDsKK+i2iuWGrCA+IGV0dG91XCA7Civlronlv4MgPiBhbmppblwgOwor54yu6IqxID4ga2Vua2FcIDsKK+iAs+a8jyA+IGppcm91XCA7Civos5zmmocgPiBzaGlrYVwgOwor5LiA6IyOID4gaWtrZWlcIDsKK+i1t+WOnyA+IGtpZ2VuXCA7Civog7jlm7IgPiBreW91aVwgOwor5a2X5pWwID4gamlzdXVcIDsKK+iyquaxmiA+IHRhbicnb1wgOwor54+t5qyhID4gaGFuamlcIDsKK+S4i+iFvyA+IGthdGFpXCA7CivppJPmrbsgPiBnYXNoaVwgOwor5pif6ZuyID4gc2VpdW5cIDsKK+Wvv+WDjyA+IGp1em91XCA7CivkvqHlgKQgPiBrYWNoaVwgOwor5LiN6IO9ID4gZnVub3VcIDsKK+WmlumtlCA+IHlvdW1hXCA7CivnkrDljJYgPiBrYW5rYVwgOwor5LiA6ImYID4gaXNzb3VcIDsKK+adpea8lCA+IHJhaWVuXCA7Civlq4znlpEgPiBrZW5naVwgOwor6LW35YuVID4ga2lkb3VcIDsKK+S7ruaVsCA+IGthc3V1XCA7CivkvZnlobUgPiB5b2ppblwgOwor5pmu6LOiID4gZnVnZW5cIDsKK+S4gOiIrCA+IGlwcGFuXCA7CivkvJHmhI8gPiBreXV1aVwgOwor6aSK5q+NID4geW91Ym9cIDsKK+WutuWjsCA+IGthc2VpXCA7Civlrp/lrrYgPiBqaWtrYVwgOwor5LiL6IKiID4ga2FzaGlcIDsKK+mgkOiogCA+IHlvZ2VuXCA7CivkuIDoh7QgPiBpdGNoaVwgOwor6aeF5ZOhID4gZWtpaW5cIDsKK+S8muW+lyA+IGV0b2t1XCA7Civlr53lj7AgPiBuZWRhaVwgOwor5LiL6IGeID4ga2FidW5cIDsKK+S9s+WTgSA+IGthaGluXCA7Civlr6HljaAgPiBrYXNlblwgOwor5LiN6ICBID4gZnVyb3VcIDsKK+i1pOWRsyA+IGFrYW1pXCA7CivorbfpgIEgPiBnb3NvdVwgOwor5a++5L6hID4gdGFpa2FcIDsKK+S+j+WEkiA+IHNodWp1XCA7CivlsIrkuIsgPiBzb25rYVwgOwor5LuW5p2RID4gdGFzb25cIDsKK+adnOa8jyA+IHp1cm91XCA7Civlr6Hli6IgPiBrYXplaVwgOwor5a6b5a2XID4gYXRlamlcIDsKK+afu+WumiA+IHNhdGVpXCA7CivlrpflrrYgPiBzb3VrZVwgOwor5L6N5YOnID4gamlzb3VcIDsKK+S9meWcsCA+IHlvY2hpXCA7CivniZ3ppqwgPiBoaW5iYVwgOwor576O6IKyID4gYmlpa3VcIDsKK+ahiOWIhiA+IGFuYnVuXCA7Civog73lkI8gPiBub3VyaVwgOwor5LuP5p6cID4gYnVra2FcIDsKK+iAkOeBqyA+IHRhaWthXCA7CivogIHniLogPiByb3V5YVwgOwor6ICB54i2ID4gcm91ZnVcIDsKK+itpumDqCA+IGtlaWJ1XCA7CivpoK3ok4sgPiB6dWdhaVwgOwor6LWk5YyWID4gc2Vra2FcIDsKK+eQhuaVsCA+IHJpc3V1XCA7CivkupzmtYEgPiBhcnl1dVwgOwor6LW35YK1ID4ga2lzYWlcIDsKK+ixoeeJmSA+IHpvdWdlXCA7CivkuIDogIMgPiBpa2tvdVwgOwor5p2x5q2MID4gdG91a2FcIDsKK+itpumCjyA+IGtlaXJhXCA7CivlronlsYUgPiBhbmt5b1wgOwor5p2x5qynID4gdG91b3VcIDsKK+mnhuWLlSA+IGt1ZG91XCA7CivlrrnlmaggPiB5b3VraVwgOwor6LSU5bGTID4gaGlpa2lcIDsKK+WvoeWFtSA+IGthaGVpXCA7CivkuJbntIAgPiBzZWlraVwgOwor5LuW5pa5ID4gdGFob3VcIDsKK+S7iuacnyA+IGtvbmtpXCA7Civmnpzmlq0gPiBrYWRhblwgOwor5Lu75oSPID4gbmluJydpXCA7CivpoZ7nuIEgPiBydWllblwgOwor5L2Z5ZaYID4geW96ZW5cIDsKK+iukuiqoyA+IHphbmJ1XCA7CivkuqHmr40gPiBib3Vib1wgOwor5p6c5pWiID4ga2FrYW5cIDsKK+WuieWumiA+IGFudGVpXCA7CivkuIvnt5ogPiBrYXNlblwgOwor5LiL57eSID4gc2FnZW9cIDsKK+Wuh+WumSA+IHVjaHV1XCA7CivorpLoqLQgPiB6YW5zb1wgOwor5a6Y5aWzID4ga2Fuam9cIDsKK+mfs+ipqSA+IG9uc2hpXCA7CivkuI3ntJQgPiBmdWp1blwgOwor5LiN57SNID4gZnVub3VcIDsKK+S8juW3pSA+IGdpa291XCA7Civpn7PoqJMgPiBvbmt1blwgOwor6LOi5oSaID4ga2VuZ3VcIDsKK+iDg+WjgSA+IGloZWtpXCA7CivkvZnlkb0gPiB5b21laVwgOwor5Lyd5a62ID4gZGVua2FcIDsKK+adnOawjyA+IHRvdWppXCA7CivkuI3nsosgPiBidXN1aVwgOwor5aaW6ZuyID4geW91dW5cIDsKK+i1tOS7uyA+IGZ1bmluXCA7Civos6bmgKcgPiBmdXNlaVwgOwor6aa05YyWID4ganVua2FcIDsKK+S4gOe3miA+IGlzc2VuXCA7CivkuIDnt5IgPiBpc3Nob1wgOwor5Luj5omTID4gZGFpZGFcIDsKK+S7ruaDsyA+IGthc291XCA7CivmoYjku7YgPiBhbmtlblwgOwor542j55quID4ganV1aGlcIDsKK+S6lOautSA+IGdvZGFuXCA7Civos5vmhI8gPiBzYW4nJ2lcIDsKK+adv+acqCA+IGhhbmdpXCA7CivosrTmlrkgPiBraWhvdVwgOwor6aOi5rCRID4ga2ltaW5cIDsKK+S4gOe1sSA+IGl0dG91XCA7Civpo5vms4kgPiBoaXNlblwgOwor5pyq54S2ID4gbWl6ZW5cIDsKK+mnkOS8iiA+IGNodXVpXCA7Civlpb3ppIwgPiBrb3VqaVwgOwor5pig6YWNID4gZWloYWlcIDsKK+WutuWQmyA+IGtha3VuXCA7CivlraTluIYgPiBrb2hhblwgOwor5a625ZCNID4ga2FtZWlcIDsKK+S4gOezuyA+IGlra2VpXCA7Civlr6HkurogPiBrYWppblwgOwor5Luu5oCnID4ga2FzZWlcIDsKK+S9nOWLlSA+IHNhZG91XCA7CivkuIDns7ggPiBpc3NoaVwgOwor5a2X5b2iID4gamlrZWlcIDsKK+S4jeetiSA+IGZ1dG91XCA7CivmoKHli5kgPiBrb3VtdVwgOwor5Lq65pmCID4gbmluamlcIDsKK+e+iOe1hiA+IGtpaGFuXCA7CivpoK3ohLMgPiB6dW5vdVwgOwor5L2Z5YuiID4geW9zZWlcIDsKK+S4i+etiSA+IGthdG91XCA7Civpp4bkvb8gPiBrdXNoaVwgOwor5L2z5L6LID4ga2FyZWlcIDsKK+S6jOatuyA+IG5pc2hpXCA7Civlrp3lmaggPiBob3VraVwgOwor5pyo54GwID4ga2liYWlcIDsKK+S4i+erryA+IGthdGFuXCA7CivkvZnlibAgPiB5b2pvdVwgOwor576F57SXID4gcmFzaGFcIDsKK+Wlh+m6lyA+IGtpcmVpXCA7Civku5XmiYsgPiBzaGl0ZVwgOwor5a2k5bO2ID4ga290b3VcIDsKK+mmrOWIuCA+IGJha2VuXCA7Civlrq7lj7ggPiBndXVqaVwgOwor6aaZ5ZGzID4ga291bWlcIDsKK+S9meWIhiA+IHlvYnVuXCA7CivkvJ3lpYcgPiBkZW5raVwgOwor55CG5oOzID4gcmlzb3VcIDsKK+S9s+S7gCA+IGthanV1XCA7CivkvbPkurogPiBrYWppblwgOwor5LiA566hID4gaWtrYW5cIDsKK+WupeWSjCA+IHl1dXdhXCA7CivkvZHliqkgPiB5dXVqb1wgOwor5qCh5YW3ID4ga291Z3VcIDsKK+itsOirliA+IGdpcm9uXCA7CivkuIDnrYkgPiBpdHRvdVwgOwor5pu455S7ID4gc2hvZ2FcIDsKK+eNsueJqSA+IGVtb25vXCA7Civog73kuosgPiBub3VqaVwgOwor5aWu6aObID4gZnVucGlcIDsKK+iCpeWkpyA+IGhpZGFpXCA7CivkvZnlhZogPiB5b3RvdVwgOwor5L2Z5YWJID4geW9rb3VcIDsKK+ixquawlyA+IGdvdWtpXCA7CivnkIbmgKcgPiByaXNlaVwgOwor5pmC6KuWID4gamlyb25cIDsKK+itpuittyA+IGtlaWdvXCA7CivosqDmlbAgPiBmdXN1dVwgOwor5LqM5qeYID4gbml5b3VcIDsKK+e+qeecvCA+IGdpZ2FuXCA7Civmn7vllY8gPiBzYW1vblwgOwor55CG5b+1ID4gcmluZW5cIDsKK+mdkummrCA+IGFvdW1hXCA7CivkvY7liKkgPiB0ZWlyaVwgOwor6K2r6KqeID4gc2VuZ29cIDsKK+acqua6gCA+IG1pbWFuXCA7CivlrrblhoUgPiBrYW5haVwgOwor5LiW55+lID4gc2VjaGlcIDsKK+WumuWToSA+IHRlaWluXCA7CivosrfmiYsgPiBrYWl0ZVwgOwor5a655YSAID4geW91Z2lcIDsKK+Wun+WQpiA+IGppcHBpXCA7CivmnaXmnJ8gPiByYWlraVwgOwor5LmD54i2ID4gZGFpZnVcIDsKK+WutuWFhCA+IGtha2VpXCA7CivlraPlrZAgPiBraXNoaVwgOwor5LqV5qGBID4gaWdldGFcIDsKK+aal+e/syA+IGFuJydlaVwgOwor5pyq5riIID4gbWlzYWlcIDsKK+iytOaJgCA+IGtpc2hvXCA7Civlp4nosrQgPiBhbmVraVwgOwor5pmC6KiIID4gdG9rZWlcIDsKK+iAgeavjSA+IHJvdWJvXCA7Civku5blv7UgPiB0YW5lblwgOwor5a6b5ZCNID4gYXRlbmFcIDsKK+Wls+mboyA+IGpvbmFuXCA7CivlpbTpmrcgPiBkb3JlaVwgOwor5LiW55u4ID4gc2Vzb3VcIDsKK+S7suWxhSA+IG5ha2FpXCA7CivpoZXnpLogPiBrZW5qaVwgOwor5LiN55+lID4gZnVjaGlcIDsKK+WumOWQjyA+IGthbnJpXCA7CivmnKvmtL4gPiBtYXBwYVwgOwor5L2V5YCLID4gbmFua29cIDsKK+mdnumboyA+IGhpbmFuXCA7CivkuIvnn6UgPiBnZWRqaVwgOwor5aSq6byTID4gdGFpa29cIDsKK+S4i+eesCA+IGtha2FuXCA7CivpppnlhbcgPiBrb3VndVwgOwor6aCI6Ie+ID4gc2h1eXVcIDsKK+acnea5ryA+IGFzYXl1XCA7CivkupTmm7ggPiBnb3Nob1wgOwor5LqU5pu0ID4gZ29rb3VcIDsKK+WllOmmrCA+IGhvbmJhXCA7CivogZbmgakgPiBzZWlvblwgOwor5auM5rCXID4ga2Vua2lcIDsKK+WnlOiolyA+IGl0YWt1XCA7CivkuI3nnKAgPiBmdW1pblwgOwor5Lqc5pePID4gYXpva3VcIDsKK+eOi+azlSA+IG91aG91XCA7Civku4HmhYggPiBqaW5qaVwgOwor5Luu5a+TID4ga2FndXVcIDsKK+S7j+W+kiA+IGJ1dHRvXCA7CivnkIblt6UgPiByaWtvdVwgOwor5p2/5oi4ID4gaXRhZG9cIDsKK+S6uuaIkSA+IGppbmdhXCA7CivlrrbkvosgPiBrYXJlaVwgOwor6LKn5omTID4gaGluZGFcIDsKK+S9meS6uiA+IHlvbmluXCA7Civku5blupcgPiB0YXRlblwgOwor5aSn6buEID4gZGFpb3VcIDsKK+S4iuedgCA+IHV3YWdpXCA7CivlpKfpursgPiB0YWltYVwgOwor5pys5rCXID4gaG9ua2lcIDsKK+S7ruWumiA+IGthdGVpXCA7Civku5blubQgPiB0YW5lblwgOwor6ICB5qi5ID4gcm91anVcIDsKK+S7mOW4ryA+IGZ1dGFpXCA7Civog47lhZAgPiB0YWlqaVwgOwor5piv6KqNID4gemVuaW5cIDsKK+iyoOaLhSA+IGZ1dGFuXCA7CivlrrbkvJ0gPiBrYWRlblwgOwor5pqX57eaID4gYW5zZW5cIDsKK+S4iuebriA+IHV3YW1lXCA7CivmoITlhqAgPiBlaWthblwgOwor5L2O5L6hID4gdGVpa2FcIDsKK+eOi+awtCA+IG91c3VpXCA7Civku4rlvowgPiBrb25nb1wgOwor6IGW5b6SID4gc2VpdG9cIDsKK+S4lueVjCA+IHNla2FpXCA7CivmoITlhbggPiBlaXRlblwgOwor5a2f5aWzID4gbW91am9cIDsKK+mjm+adpSA+IGhpcmFpXCA7Civlrrbku6QgPiBrYXJlaVwgOwor5LqM5pu5ID4gbmlzb3VcIDsKK+S6jOabtCA+IG5pa291XCA7CivlrrTkvJogPiBlbmthaVwgOwor6Z2S6ZuyID4gc2VpdW5cIDsKK+mmrOS4iiA+IGJham91XCA7CivkuIrnmq4gPiBqb3VoaVwgOwor5LiA55+iID4gaXNzaGlcIDsKK+S9meS4liA+IHlvc2VpXCA7CivppqzkuIEgPiBiYXRlaVwgOwor5a625LuAID4ga2FqdXVcIDsKK+aghOWFiSA+IGVpa291XCA7CivlrrbkurogPiBrZW5pblwgOwor6K2m6KGbID4ga2VpZWlcIDsKK+WtneWlsyA+IGtvdWpvXCA7Civku4HmgZUgPiBqaW5qb1wgOwor5a2f5aSPID4gbW91a2FcIDsKK+aWkemzqSA+IGlrYXJ1XCA7Civpoqjms6IgPiBmdXVoYVwgOwor5p2l5o+0ID4gcmFpZW5cIDsKK+S7iuW6piA+IGtvbmRvXCA7CivkuIvnlrMgPiBnZWthblwgOwor5Lya5ZOhID4ga2FpaW5cIDsKK+S5vuaeryA+IGthbmtvXCA7CivlraTln44gPiBrb2pvdVwgOwor6Z+z6ImyID4gbmVpcm9cIDsKK+S5vuaenCA+IGthbmthXCA7CivogIzmnaUgPiBqaXJhaVwgOwor5p2c5pKwID4genVzYW5cIDsKK+itjuipkCA+IGtpc3NhXCA7CivkuIrnlo8gPiBqb3Vzb1wgOwor5LiL55WqID4ga2FiYW5cIDsKK+S4jeeUqCA+IGZ1eW91XCA7CivogIPmoYggPiBrb3VhblwgOwor5LiL55WMID4gZ2VrYWlcIDsKK+S4i+eUtyA+IGdlbmFuXCA7CivkuIvnlLAgPiBnZWRlblwgOwor5L2O5LiLID4gdGVpa2FcIDsKK+eQhuWuuSA+IHJpeW91XCA7CivmmpbnsL4gPiBub3JlblwgOwor6LK05bqXID4ga2l0ZW5cIDsKK+S5vuacnyA+IGthbmtpXCA7CivogIPmn7sgPiBrb3VzYVwgOwor5LuW5bGxID4gdGF6YW5cIDsKK+S8neWPlyA+IGRlbmp1XCA7CivkuLvmvJQgPiBzaHVlblwgOwor6Kyd6L6eID4gc2hhamlcIDsKK+S6iOaWrSA+IHlvZGFuXCA7CivlrZDlpbMgPiBzaGlqb1wgOwor5Lq65b6MID4gamluZ29cIDsKK+eOi+aoqSA+IG91a2VuXCA7Civpo5vmlaMgPiBoaXNhblwgOwor5pqX566XID4gYW56YW5cIDsKK+iDjuS7lCA+IHRhaWppXCA7Civku67lo7AgPiBrYXNlaVwgOwor5ayM5oWLID4gc2hpbmFcIDsKK+e9quenkSA+IHphaWthXCA7CivogqXljpogPiBoaWtvdVwgOwor6LKg5oCnID4gZnVzZWlcIDsKK+S6kuaPmyA+IGdva2FuXCA7Civnvo7nlLcgPiBiaW5hblwgOwor6Zyy6aGVID4gcm9rZW5cIDsKK+e+jueUsCA+IGJpZGVuXCA7CivkvLbkv5AgPiByZWlyaVwgOwor5aSp6a2UID4gdGVubWFcIDsKK+WumuS+oSA+IHRlaWthXCA7CivpnLLpoK0gPiByb3RvdVwgOwor6K6a576OID4gc2FuYmlcIDsKK+S4gOeUnyA+IGlzc2VpXCA7CivlronlhaggPiBhbnplblwgOwor5LqU5oyHID4gZ29zaGlcIDsKK+iCsuWFkCA+IGlrdWppXCA7CivnvYznsp8gPiBrZXNoaVwgOwor5a6j5LiLID4gc2VuZ2VcIDsKK+S7j+WutiA+IGJ1a2tlXCA7CivnibnoqJggPiB0b2traVwgOwor6LKo5bmjID4ga2FoZWlcIDsKK+WumOS9jSA+IGthbicnaVwgOwor5LiA55KwID4gaWtrYW5cIDsKK+aXoumBgiA+IGtpc3VpXCA7CivlrbXljbUgPiBmdXJhblwgOwor5a6M5YKZID4ga2FuYmlcIDsKK+mhjOeUuyA+IGRhaWdhXCA7Civlpb3pgYsgPiBrb3V1blwgOwor6IGW5a+/ID4gc2VpanVcIDsKK+mjm+aPmiA+IGhpeW91XCA7CivnkIPlqIEgPiBreXV1aVwgOwor6Ky56KmxID4ga2lud2FcIDsKK+S4jeeKryA+IGZ1Ym9uXCA7Civku4rlrrUgPiBrb3lvaVwgOwor5a6I5YKZID4gc2h1YmlcIDsKK+S6lOaIkiA+IGdva2FpXCA7CivnjJznlpEgPiBzYWlnaVwgOwor5a6Y5LqLID4ga2FuamlcIDsKK+adnuaGgiA+IGtpeXV1XCA7Civku4rlraMgPiBrb25raVwgOwor55CG5aSWID4gcmlnYWlcIDsKK+mdoumDqCA+IG1lbmJ1XCA7CivmmI7oqJggPiBtZWlraVwgOwor5LuW5aeTID4gdGFzZWlcIDsKK+Wls+mDjiA+IGpvcm91XCA7CivlpKnppqwgPiB0ZW5iYVwgOwor6LKh5biDID4gc2FpZnVcIDsKK+acquadpSA+IG1pcmFpXCA7CivkuI3nh4MgPiBmdW5lblwgOwor5LiA54yuID4gaWtrb25cIDsKK+S6lOaEnyA+IGdva2FuXCA7Civmlr3pjKAgPiBzZWpvdVwgOwor5a6J5L2PID4gYW5qdXVcIDsKK+iAs+W6lSA+IGppdGVpXCA7CivpnZ7pgZMgPiBoaWRvdVwgOwor5LqU5oOFID4gZ29qb3VcIDsKK+mcp+mbsCA+IG11ZnVuXCA7Civmnb/lsYsgPiBpdGF5YVwgOwor5LiA54qsID4gaWtrZW5cIDsKK+S6lOaCqiA+IGdvYWt1XCA7CivlrabljLogPiBnYWtrdVwgOwor5Lq65a+/ID4gamluanVcIDsKK+acieapnyA+IHl1dWtpXCA7CivoroPnvo4gPiBzYW5iaVwgOwor5LiO54K5ID4geW90ZW5cIDsKK+S4gOeJiCA+IGlwcGFuXCA7CivkurrlrrYgPiBqaW5rYVwgOwor6aCt55quID4gdG91aGlcIDsKK+acquaYjiA+IG1pbWVpXCA7CivkupLmgbUgPiBnb2tlaVwgOwor5LqL5oWLID4gaml0YWlcIDsKK+aenOWgsSA+IGthaG91XCA7CivpnaLovKogPiBvbW93YVwgOwor6LKn5a+MID4gaGlucHVcIDsKK+ePvuWgtCA+IGdlbmJhXCA7CivosqflrrYgPiBoaW5rYVwgOwor6aSK5a62ID4geW91a2FcIDsKK+iqsumhjCA+IGthZGFpXCA7CivpoZ7ngasgPiBydWlrYVwgOwor5a2Y5ZCmID4gem9ucGlcIDsKK+S6pOW3riA+IGtvdXNhXCA7Civmnb/lrZAgPiBpdGFnb1wgOwor5aWg6YO9ID4gdGVudG9cIDsKK+S6i+aDhSA+IGppam91XCA7CivosrTlp4kgPiBraXNoaVwgOwor5LqI5oSfID4geW9rYW5cIDsKK+iBluWknCA+IHNlaXlhXCA7Civku4rlpI8gPiBrb25rYVwgOwor5a2X5Y+3ID4gamlnb3VcIDsKK+S6iOaDsyA+IHlvc291XCA7CivkupTlvakgPiBnb3NhaVwgOwor5Lu75YuZID4gbmlubXVcIDsKK+aWuemHjCA+IGhvdXJpXCA7CivnjovmlL8gPiBvdXNlaVwgOwor5a2j5YiKID4ga2lrYW5cIDsKK+aetuWPsCA+IGthZGFpXCA7Civnvo7ngrkgPiBiaXRlblwgOwor5LqM5b+1ID4gbmluZW5cIDsKK+ism+ipsSA+IGtvdXdhXCA7CivkuIDngrkgPiBpdHRlblwgOwor6LOb5ZCmID4gc2FucGlcIDsKK+Wkp+mbqCA+IG9vYW1lXCA7CivlpJXppIkgPiB5dXVnZVwgOwor5aSq6ZmwID4gdGFpaW5cIDsKK+acneaXpSA+IGFzYWhpXCA7Civku6Plk6EgPiBkYWlpblwgOwor5LiK5ryUID4gam91ZW5cIDsKK+mbsumrmCA+IHVua291XCA7CivkupTluLggPiBnb2pvdVwgOwor5paH6ZuFID4gYnVuZ2FcIDsKK+S6pOWwviA+IGtvdWJpXCA7CivkuI3muoAgPiBmdW1hblwgOwor6LSI5LiOID4gem91eW9cIDsKK+S5seaJkyA+IHJhbmRhXCA7CivlpJbpoYwgPiBnZWRhaVwgOwor54mh6KCjID4gYm9yZWlcIDsKK+Wlrui1tyA+IGZ1bmtpXCA7CivkurrlpKsgPiBuaW5wdVwgOwor6IC25ayiID4geWFqb3VcIDsKK+S6kuW4giA+IGdvc2hpXCA7CivppIrlpbMgPiB5b3Vqb1wgOwor5aaE6KqeID4gbW91Z29cIDsKK+iynuWppiA+IHRlaWZ1XCA7CivnvqnmsJEgPiBnaW1pblwgOwor5aSa6Z2iID4gdGFtZW5cIDsKK+iAs+WtlCA+IGppa291XCA7Civoqp7poZ4gPiBnb3J1aVwgOwor5pa56YCUID4gaG91dG9cIDsKK+S7j+WZqCA+IGJ1a2tpXCA7CivkuqTlrpwgPiBrb3VnaVwgOwor5pel6KqyID4gbmlra2FcIDsKK+iBr+WPpSA+IHJlbmt1XCA7Civoqp7poK0gPiBnb3RvdVwgOwor5Lqc5bGeID4gYXpva3VcIDsKK+acieacnyA+IHl1dWtpXCA7Civos5vliqkgPiBzYW5qb1wgOwor6Kqe6aCGID4gZ29qdW5cIDsKK+S4u+afuyA+IHNodXNhXCA7CivlraPlgJkgPiBraWtvdVwgOwor5aSa6ZujID4gdGFuYW5cIDsKK+Wtl+WFuCA+IGppdGVuXCA7CivosrTlnLAgPiBraWNoaVwgOwor5Luj5Y2wID4gZGFpaW5cIDsKK+e+qeatryA+IGdpc2hpXCA7Civlpb3oqrwgPiBrb3VnaVwgOwor5LiN5rWEID4gZnVqb3VcIDsKK+aXpeiomCA+IG5pa2tpXCA7Civku6XljJcgPiBpaG9rdVwgOwor5a2Q5YiGID4ga29idW5cIDsKK+eMm+eBqyA+IG1vdWthXCA7CivlpJbpnIAgPiBnYWlqdVwgOwor5a2m5L2NID4gZ2FrdWlcIDsKK+acrOaJiyA+IGhvbnRlXCA7CivmnaXlraMgPiByYWlraVwgOwor6LKe5aWzID4gdGVpam9cIDsKK+mfs+eoiyA+IG9udGVpXCA7Civnv7vmhI8gPiBob24nJ2lcIDsKK+isgOitsCA+IGJvdWdpXCA7CivkuI3ms5UgPiBmdWhvdVwgOwor576O5rivID4gYmlrb3VcIDsKK+S7o+WLmSA+IGRhaW11XCA7CivkuI3msrsgPiBmdWNoaVwgOwor576F5ryiID4gcmFrYW5cIDsKK+mkrOWPoyA+IGtva291XCA7Civnvbnngb0gPiByaXNhaVwgOwor5pyq5oiQID4gbWlzZWlcIDsKK+acgOacnyA+IHNhaWdvXCA7Civpm6rpp4QgPiBzZXR0YVwgOwor5aSV6Zm9ID4geXV1aGlcIDsKK+WknOmWkyA+IHlha2FuXCA7CivkuqHlqaYgPiBib3VmdVwgOwor5aWH6YGHID4ga2lndXVcIDsKK+abuOaetiA+IHNob2thXCA7CivogIHlvowgPiByb3Vnb1wgOwor5LuA5ZmoID4ganV1a2lcIDsKK+aXheiyuyA+IHJ5b2hpXCA7CivkupXlroggPiBpbW9yaVwgOwor6Z2S6LKdID4gYW9nYWlcIDsKK+S4i+awtCA+IGdlc3VpXCA7CivkupTlrpggPiBnb2thblwgOwor5aWI6L66ID4gbmFoZW5cIDsKK+aVtOmZpCA+IHNlaWpvXCA7CivkuI3mr5sgPiBmdW1vdVwgOwor5LiL5rCRID4gZ2VtaW5cIDsKK+acrOaEjyA+IGhvbicnaVwgOwor5auM5oKqID4ga2VuJydvXCA7Civml6fooaMgPiBreXV1aVwgOwor6LKn5ZyfID4gaGluZG9cIDsKK+aXouijvSA+IGtpc2VpXCA7Civpm7vpm6IgPiBkZW5yaVwgOwor5LiK5rCXID4gam91a2lcIDsKK+mhnuavlCA+IHJ1aWhpXCA7Civpo6Llr5IgPiBraWthblwgOwor5LiA5rSXID4gaXNzZW5cIDsKK+S4i+auvyA+IGdlZGVuXCA7CivkuI3mrbsgPiBmdXNoaVwgOwor5LiL5q61ID4gZ2VkYW5cIDsKK+mbtumcsiA+IHJlaXJvXCA7CivkuI3mraMgPiBmdXNlaVwgOwor5LqM5bCBID4gbmlmdXVcIDsKK+mbt+mbsiA+IHJhaXVuXCA7CivlrZfkvZMgPiBqaXRhaVwgOwor5pyf5oiQID4ga2lzZWlcIDsKK+S7luWLlSA+IHRhZG91XCA7CivpoZ7mrYwgPiBydWlrYVwgOwor6KyB6KaLID4gZWtrZW5cIDsKK+S6oeWkqyA+IGJvdWZ1XCA7CivkuIrmra8gPiB1d2FiYVwgOwor5LqM5a6uID4gbmlndXVcIDsKK+aWl+mFkiA+IHRvc2h1XCA7Civku5blirEgPiB0YXJlaVwgOwor5LiN5qyEID4gZnVyYW5cIDsKK+ePreWToSA+IGhhbmluXCA7Civoq7foqqYgPiBmdXVqdVwgOwor5auM5b+MID4ga2VuZ2lcIDsKK+S7iuWPpCA+IGtpbmtvXCA7Civoq67orbAgPiBzaGlnaVwgOwor5LiJ5qyhID4gc2FuamlcIDsKK+S4gOawtCA+IGlzc3VpXCA7Civku4flkI0gPiBhZGFuYVwgOwor5LqI5a6aID4geW90ZWlcIDsKK+iytOWQmyA+IGtpa3VuXCA7Civmlq3ot68gPiBkYW5yb1wgOwor54u854WZID4gcm91ZW5cIDsKK+iytOWQjSA+IGtpbWVpXCA7CivosrTlj7AgPiBraWRhaVwgOwor5Luu5LukID4gdGF0b2VcIDsKK+S4gOautSA+IGl0dGFuXCA7CivlpbPoo4UgPiBqb3NvdVwgOwor54mb6JKhID4gZ29ib3VcIDsKK+aal+eEtiA+IGFuemVuXCA7CivkuIDmrbsgPiBpc3NoaVwgOwor5LiA5q2zID4gaXNzYWlcIDsKK+adpeWgtCA+IHJhaWJhXCA7CivoqrLph5EgPiBrYWtpblwgOwor6Z+z55ukID4gb25iYW5cIDsKK+S7i+WKqSA+IGthaWpvXCA7CivkuIfmqZ8gPiBiYW5raVwgOwor6aOv5aC0ID4gaGFuYmFcIDsKK+e+iuatryA+IHNoaWRhXCA7Civpoqjmg4UgPiBmdXplaVwgOwor5Luj5L6hID4gZGFpa2FcIDsKK+aetuS4iiA+IGtham91XCA7Civlo7Dpn7MgPiBzZWlvblwgOwor5pqX54K5ID4gYW50ZW5cIDsKK+eLvOeBqyA+IHJvdWthXCA7Civku5XlhIAgPiBzaGlnaVwgOwor5pqW54KJID4gZGFucm9cIDsKK+mdnuihjCA+IGhpa291XCA7Civkub7lraMgPiBrYW5raVwgOwor5aSn6YOoID4gZGFpYnVcIDsKK+WlieizgCA+IGhvdWdhXCA7CivosarlrrYgPiBnb3VrYVwgOwor5pmC56m6ID4gamlrdXVcIDsKK+mfs+eXtCA+IG9uY2hpXCA7CivmnJ/lvoUgPiBraXRhaVwgOwor5paH6YOoID4gbW9uYnVcIDsKK+S6leWgsCA+IGlzZWtpXCA7CivlpKfpgY4gPiB0YWlrYVwgOwor5pqX5r65ID4gYW50YW5cIDsKK+eOi+W4qyA+IG91c2hpXCA7CivoqbHpoYwgPiB3YWRhaVwgOwor5LqL5aSnID4gamlkYWlcIDsKK+WkmumHjSA+IHRhanV1XCA7CivoqbHpoK0gPiB3YXRvdVwgOwor5LqM5aOrID4gbmlzaGlcIDsKK+S6i+WkiSA+IGppaGVuXCA7CivmmannlJ8gPiBva3V0ZVwgOwor6Zuo6ZaTID4gYW1hYWlcIDsKK+WmluiJtiA+IHlvdWVuXCA7CivlpJbph44gPiBnYWl5YVwgOwor5LiL5qChID4gZ2Vrb3VcIDsKK+ePvuS+oSA+IGdlbmthXCA7Civoq5borbAgPiByb25naVwgOwor6LKg5Y+3ID4gZnVnb3VcIDsKK+ippumjsiA+IHNoaWluXCA7Civoqq3pgY4gPiBkb2trYVwgOwor5piO576OID4gbWVpYmlcIDsKK+S7mOS8miA+IGZ1a2FpXCA7CivosrTlhawgPiBraWtvdVwgOwor6KuL6LKgID4gdWtlb2lcIDsKK+S4u+aIkSA+IHNodWdhXCA7Civpo73lkowgPiBob3V3YVwgOwor5LqM5aGBID4gbmlydWlcIDsKK+iqpOmFjSA+IGdvaGFpXCA7CivosrTlhYQgPiBraWtlaVwgOwor5aWH6K2mID4ga2lrZWlcIDsKK+mboumWkyA+IHJpa2FuXCA7Civnv7vlrZcgPiBob25qaVwgOwor6aOb5aCxID4gaGlob3VcIDsKK+iytOWDpyA+IGtpc291XCA7CivnuYvovp4gPiBrZWlqaVwgOwor5pel6I+vID4gbmlra2FcIDsKK+S6iOWgsSA+IHlvaG91XCA7Civku5bkurogPiB0YW5pblwgOwor6ZuE6aObID4geXV1aGlcIDsKK+WklumDqCA+IGdhaWJ1XCA7Civoq5boqp4gPiByb25nb1wgOwor5puc5pelID4geW91YmlcIDsKK+iAgeWppiA+IHJvdWZ1XCA7CivlpJbpg44gPiB1aXJvdVwgOwor6Z2S6J2/ID4gYW9iYWVcIDsKK+e9qOazlSA+IGFucG91XCA7CivmmpfmuKAgPiBhbmt5b1wgOwor6ICB5amGID4gcm91YmFcIDsKK+Wlh+irhyA+IGtpZGFuXCA7CivosqHli5kgPiB6YWltdVwgOwor5LiL5pu4ID4gZ2VzaG9cIDsKK+S6reWNiCA+IHRlaWdvXCA7Civmlr3ooYwgPiBzZWtvdVwgOwor5LiA5qChID4gaWtrb3VcIDsKK+acgOaEmyA+IHNhaWFpXCA7Civmm5bmmKcgPiBhaW1haVwgOwor5pep6IuXID4gc2FuYWVcIDsKK+S4h+actiA+IGJhbmRhXCA7CivmnKzlrrYgPiBob25rZVwgOwor5aSW6YGTID4gZ2Vkb3VcIDsKK+WqmuaFiyA+IGJpdGFpXCA7CivmmYLnn60gPiBqaXRhblwgOwor5pqX5raZID4gYW5ydWlcIDsKK+acieW/gyA+IHVzaGluXCA7Civnj77kuJYgPiBnZW56ZVwgOwor5LqM5ZueID4gbmlrYWlcIDsKK+ePvuS4iyA+IGdlbmthXCA7CivmmqLmsJcgPiBub25raVwgOwor6ICB5aaTID4gcm91Z2lcIDsKK+acquWumiA+IG1pdGVpXCA7CivogJXlnJ8gPiBrb3Vkb1wgOwor5pys5a2XID4gaG9uamlcIDsKK+S4jeaYkyA+IGZ1ZWtpXCA7CivkuqTlj4kgPiBrb3VzYVwgOwor5pyq5a6MID4gbWlrYW5cIDsKK+Wlh+ioiCA+IGtpa2VpXCA7CivkuI3mmI4gPiBmdW1laVwgOwor6LK85LuYID4gdGVucHVcIDsKK+acq+WtoyA+IG1ha2tpXCA7CivogIHlpbMgPiByb3Vqb1wgOwor5Li75oGpID4gc2h1b25cIDsKK+S4gOadryA+IGlwcGFpXCA7Civnvo7mnKwgPiBiaWhvblwgOwor5LiJ5pmCID4gc2FuamlcIDsKK+S4iuaYoCA+IGpvdWVpXCA7CivlpYfoprMgPiBraWthblwgOwor546L5a2rID4gb3Vzb25cIDsKK+S4i+aXrCA+IGdlanVuXCA7CivkuI3mlq0gPiBmdWRhblwgOwor5LiA5pysID4gaXBwb25cIDsKK+S4jeaWiSA+IGZ1c2VpXCA7CivkuI3mlocgPiBmdWJ1blwgOwor5p2Q5ZmoID4gemFpa2lcIDsKK+S4i+aWuSA+IGthaG91XCA7CivkuI3mlbQgPiBmdXNlaVwgOwor5LiN5pWsID4gZnVrZWlcIDsKK+S4ieaXpSA+IG1pa2thXCA7CivkuIDmm7kgPiBpc3NvdVwgOwor5LiA5pu4ID4gaXNzaG9cIDsKK+aZguebuCA+IGppc291XCA7CivkuIDmm7QgPiBpa2tvdVwgOwor5aeL56WWID4gc2hpc29cIDsKK+S4jeaVlyA+IGZ1aGFpXCA7CivkuI3mlY8gPiBmdWJpblwgOwor5aSp6LOmID4gdGVucHVcIDsKK+ixjuWtkCA+IGp1c2hpXCA7CivosYrlr4wgPiBob3VmdVwgOwor576O5pmvID4gYmlrZWlcIDsKK+mcsuimiyA+IHJva2VuXCA7CivnvqnmjJkgPiBnaWt5b1wgOwor5LiL5pS+ID4ga2Fob3VcIDsKK+irh+ipsSA+IGRhbndhXCA7CivmnIDlvowgPiBzYWlnb1wgOwor6LK05Lq6ID4ga2lqaW5cIDsKK+aVrOmBoCA+IGtlaWVuXCA7CivmnKrlqZogPiBtaWtvblwgOwor5pyd5a+dID4gYXNhbmVcIDsKK+iyuOS4jiA+IHRhaXlvXCA7Civkupjlj6QgPiBrb3Vrb1wgOwor5pqW5rCXID4gbm9ua2lcIDsKK+S5vuWbuiA+IGthbmtvXCA7CivkuI3mkpMgPiBmdXRvdVwgOwor57a66bqXID4ga2lyZWlcIDsKK+iyoOWCtSA+IGZ1c2FpXCA7CivkuZnlrZAgPiBvdG9nb1wgOwor5ama5pyfID4ga29ua2lcIDsKK+Wkp+ixhiA+IGRhaXp1XCA7CivorJvnvqkgPiBrb3VnaVwgOwor6Zuo6YePID4gdXJ5b3VcIDsKK+S4gOaXpiA+IGl0dGFuXCA7CivlpYfooYwgPiBraWtvdVwgOwor5Lq65L2NID4gamluJydpXCA7CivnvqnmiYsgPiBnaXNodVwgOwor576O5paHID4gYmlidW5cIDsKK+S4gOaWuSA+IGlwcG91XCA7CivmmpHmsJcgPiBzaG9raVwgOwor5LiA5pakID4gaWtraW5cIDsKK+e+qeaIpiA+IGdpc2VuXCA7CivkuIDmlpEgPiBpcHBhblwgOwor5LiA5paJID4gaXNzZWlcIDsKK+iqueislyA+IGhpYm91XCA7Civml5foiaYgPiBraWthblwgOwor57eL6a+JID4gaGlnb2lcIDsKK+S4gOaVlyA+IGlwcGFpXCA7Civnvojml4UgPiBraXJ5b1wgOwor5LqU5Y2BID4gZ29qdXVcIDsKK+e+qeaGpCA+IGdpZnVuXCA7CivkuozlkJsgPiBuaWt1blwgOwor5LiW5omNID4gc2VzYWlcIDsKK+iyq+S4uyA+IGthbmp1XCA7Civkuozlj7cgPiBuaWdvdVwgOwor5pyA5bemID4gc2Fpc2FcIDsKK+acquWiviA+IG1pa29uXCA7CivkuqHlhZAgPiBib3VqaVwgOwor5pu45bqrID4gc2hva29cIDsKK+acrOWgtCA+IGhvbmJhXCA7Civpm7vot68gPiBkZW5yb1wgOwor5aSW6LKoID4gZ2Fpa2FcIDsKK+S5meWlsyA+IG90b21lXCA7Civmlofoqp4gPiBidW5nb1wgOwor5LiW5oWLID4gc2V0YWlcIDsKK+eOqeWRsyA+IGdhbm1pXCA7Civpoafmha4gPiBrb3J5b1wgOwor6KqY6LW3ID4geXV1a2lcIDsKK+S4jeaJjSA+IGZ1c2FpXCA7CivlpJzoraYgPiB5YWtlaVwgOwor6Zqg6aGVID4gaW5rZW5cIDsKK+S4jeaIpiA+IGZ1c2VuXCA7Civnjovln44gPiBvdWpvdVwgOwor5LiA5o6DID4gaXNzb3VcIDsKK+S4iuaJiyA+IGpvdXp1XCA7CivmnKzlnJ8gPiBob25kb1wgOwor5LiW5oOFID4gc2Vqb3VcIDsKK+S4iuaIuCA+IGpvdWdvXCA7Civnvo7mjJkgPiBiaWt5b1wgOwor5aSa6KydID4gdGFzaGFcIDsKK+S4jeaGqyA+IGZ1YmluXCA7CivkuovliY0gPiBqaXplblwgOwor5LiA5oyZID4gaWtreW9cIDsKK+mboui+siA+IHJpbm91XCA7CivkuIfmiLggPiBiYW5rb1wgOwor5LiA5oyHID4gaXNzaGlcIDsKK+mfs+a6kCA+IG9uZ2VuXCA7CivkuI3mha4gPiBmdXJ5b1wgOwor6ICz5LuLID4gamlrYWlcIDsKK+S6jOWIhiA+IG5pYnVuXCA7CivmmqvmmYIgPiB6YW5qaVwgOwor5piO56S6ID4gbWVpamlcIDsKK+WjrumAlCA+IHNvdXRvXCA7CivkuLvlrrYgPiBzaHVrYVwgOwor6Zqg6Z2iID4gaW5tZW5cIDsKK+S6pOS7mCA+IGtvdWZ1XCA7CivoqLTpoZggPiBzb2dhblwgOwor5LiN5oSNID4gZnViaW5cIDsKK+e+qeW8nyA+IGdpdGVpXCA7CivniLbogIEgPiBmdXJvdVwgOwor546H5ZyfID4gc290dG9cIDsKK+S6pOS6kiA+IGtvdWdvXCA7CivoqqToqo0gPiBnb25pblwgOwor6Zuq6LiPID4gc2V0dGFcIDsKK+WkqeihoyA+IHRlbicnaVwgOwor6Z2i5721ID4gbWVuYmFcIDsKK+S4gOaJjSA+IGlzc2FpXCA7CivkuovlhbggPiBqaXRlblwgOwor5aSW6KqeID4gZ2FpZ29cIDsKK+WkmuiogCA+IHRhZ2VuXCA7CivkuIDmiKYgPiBpc3NlblwgOwor5LiL5oOFID4ga2Fqb3VcIDsKK+S6lOWAqyA+IGdvcmluXCA7CivogJXlhbcgPiBrb3VndVwgOwor5LqU5YCNID4gZ29iYWlcIDsKK+mghuasoSA+IGp1bmppXCA7CivniqDnibIgPiBnaXNlaVwgOwor6Kqk6KejID4gZ29rYWlcIDsKK+iqo+iogCA+IGZ1Z2VuXCA7Civmm7jlrrYgPiBzaG9rYVwgOwor6aGY5oSPID4gZ2FuJydpXCA7Civoqp7oqowgPiBnb3NoaVwgOwor6Kmt6YGTID4ga2lkb3VcIDsKK+S4u+WppiA+IHNodWZ1XCA7Civmma/msJcgPiBrZWlraVwgOwor5LiN5b+rID4gZnVrYWlcIDsKK+miqOWcnyA+IGZ1dWRvXCA7CivkuK3lsIkgPiBjaHV1aVwgOwor6Zuj6LevID4gbmFucm9cIDsKK+eHg+iyuyA+IG5lbnBpXCA7Civnvo7mhJ8gPiBiaWthblwgOwor5pyJ5aSrID4geXV1ZnVcIDsKK+S6lOS9kyA+IGdvdGFpXCA7CivogIHljJYgPiByb3VrYVwgOwor5pyJ5aSPID4geXV1a2FcIDsKK+WrjOWRsyA+IGl5YW1pXCA7CivkuIDmhI8gPiBpY2hpaVwgOwor5pmu5q61ID4gZnVkYW5cIDsKK+S6jOWAjSA+IG5pYmFpXCA7CivorprmrYwgPiBzYW5rYVwgOwor5LiL5b6hID4gZ2VneW9cIDsKK+eOqeWFtyA+IGdhbmd1XCA7Civoqa3ovq8gPiBraWJlblwgOwor5LiN5b2TID4gZnV0b3VcIDsKK+Wlpee+qSA+IG9rdWdpXCA7Civpm7voqbEgPiBkZW53YVwgOwor5LiW5bivID4gc2V0YWlcIDsKK+aZgueCuSA+IGppdGVuXCA7Civmlazoqp4gPiBrZWlnb1wgOwor5aSc6KGMID4geWFrb3VcIDsKK+eMm+aJkyA+IG1vdWRhXCA7CivpnIDopoEgPiBqdXlvdVwgOwor5aSn6JuHID4gZGFpamFcIDsKK+S4i+W8piA+IGthZ2VuXCA7CivmnLHljbAgPiBzaHVpblwgOwor5LqL5L6LID4gamlyZWlcIDsKK+WkluiiqyA+IGdhaWhpXCA7CivkuovkvZMgPiBqaXRhaVwgOwor5pyA5aSaID4gc2FpdGFcIDsKK+eJueeVsCA+IHRva3VpXCA7CivkuI3lubggPiBmdWtvdVwgOwor6aKo5ZapID4gZnV1eXVcIDsKK+S4jeW5syA+IGZ1aGVpXCA7CivpoZXlvq4gPiBrZW5iaVwgOwor5aWz57O7ID4gam9rZWlcIDsKK+iwt+WcsCA+IHlhY2hpXCA7CivkuIrluqcgPiBqb3V6YVwgOwor57iB6L66ID4gZW5wZW5cIDsKK+mbhOmAlCA+IHl1dXRvXCA7Civkuovku7YgPiBqaWtlblwgOwor5LiJ5bqmID4gc2FuZG9cIDsKK+S4ieW6nCA+IHNhbnB1XCA7CivmlK/pg6ggPiBzaGlidVwgOwor576O5b2iID4gYmlrZWlcIDsKK+WqvuWSjCA+IGtvdXdhXCA7CivniLbns7sgPiBmdWtlaVwgOwor5LmX5ZOhID4gam91aW5cIDsKK+S6iOS7pCA+IHlvcmVpXCA7CivmlK/pgqMgPiBzaGluYVwgOwor5LiL5be7ID4gZ2VrYW5cIDsKK+S6jOS5lyA+IG5pam91XCA7CivkuIrluIMgPiBqb3VmdVwgOwor6ICB5YSSID4gcm91anVcIDsKK+acrOWLmSA+IGhvbm11XCA7CivkuozkuJYgPiBuaXNlaVwgOwor5LqM5LiJID4gbmlzYW5cIDsKK+itsua4oSA+IGpvdXRvXCA7CivpoqjlkbMgPiBmdXVtaVwgOwor576p5a2QID4gZ2lzaGlcIDsKK+S5neWNgSA+IGt1anV1XCA7CivnvbnmgqMgPiByaWthblwgOwor5pyq5YiwID4gbWl0b3VcIDsKK+itt+azlSA+IGdvaG91XCA7CivogIzku4ogPiBqaWtvblwgOwor6LGa5YWQID4gdG9uamlcIDsKK+S4gOW4ryA+IGl0dGFpXCA7CivoroPmrYwgPiBzYW5rYVwgOwor5pe655ubID4gb3VzZWlcIDsKK+acquWIiiA+IG1pa2FuXCA7Civpm6Poqp4gPiBuYW5nb1wgOwor5pWF6LK3ID4ga29iYWlcIDsKK+mbkeiyuyA+IHphcHBpXCA7CivnjovliLYgPiBvdXNlaVwgOwor5Li75ZugID4gc2h1aW5cIDsKK+acseWEkiA+IHNodWp1XCA7Civpm5HosqggPiB6YWtrYVwgOwor5aWH6IGeID4ga2lidW5cIDsKK+S4jeWwvSA+IGZ1amluXCA7CivkuIvlsbEgPiBnZXphblwgOwor5pWX6Ki0ID4gaGFpc29cIDsKK+S4i+WxpCA+IGthc291XCA7Civlo7DoqokgPiBzZWl5b1wgOwor6ZuF6LajID4gZ2FzaHVcIDsKK+S4iuWxiyA+IHV3YXlhXCA7CivnjovlhqAgPiBvdWthblwgOwor6aKo5YyWID4gZnV1a2FcIDsKK+WjruiqniA+IHNvdWdvXCA7CivkuZfli5kgPiBqb3VtdVwgOwor5pq05b6SID4gYm91dG9cIDsKK+eOi+WFrCA+IG91a291XCA7Civnvqnlp4kgPiBnaXNoaVwgOwor5LiN5a6jID4gZnVzZW5cIDsKK+e+qeWmuSA+IGdpbWFpXCA7CivnjovlhZogPiBvdXRvdVwgOwor5LiN5a6aID4gZnV0ZWlcIDsKK+S4ieWwiSA+IHNhbicnaVwgOwor6Zm66Zi7ID4ga2Vuc29cIDsKK+S4jeWtnSA+IGZ1a291XCA7CivkuIflr78gPiBiYW5qdVwgOwor6Kmu6K2wID4gc2VuZ2lcIDsKK+mhnuWtlyA+IHJ1aWppXCA7CivpmY3prZQgPiBnb3VtYVwgOwor5aSp6IqxID4gdGVua2FcIDsKK+mfs+agkyA+IG9uc2VuXCA7Civnvqnlo6sgPiBnaXNoaVwgOwor5LiA5bGkID4gaXNzb3VcIDsKK+mfu+abuCA+IGluc2hvXCA7Civmlr3nsbMgPiBzZW1haVwgOwor6Kme6LOmID4gc2hpZnVcIDsKK+acn+WGhSA+IGtpbmFpXCA7Civml6Lnn6UgPiBraWNoaVwgOwor6K2y5q2pID4gam91aG9cIDsKK+ipreisgCA+IGtpYm91XCA7Civmlofoi5EgPiBidW5lblwgOwor6Z2Z56mPID4gc2Vpb25cIDsKK+acuuS4iiA+IGtpam91XCA7CivpmbDpmbogPiBpbmtlblwgOwor5LiA5bCJID4gaWNoaWlcIDsKK+S4gOWwgSA+IGlwcHV1XCA7Civnvo7lrrkgPiBiaXlvdVwgOwor5pmp5pyfID4gYmFua2lcIDsKK+e5geiPryA+IGhhbmthXCA7CivpoLvluqYgPiBoaW5kb1wgOwor6KuH576pID4gZGFuZ2lcIDsKK+maoOmBgSA+IGludG9uXCA7CivpnZ7npLwgPiBoaXJlaVwgOwor5pys5L2NID4gaG9uJydpXCA7CivkuIDlrpogPiBpdHRlaVwgOwor546L5L6vID4gb3Vrb3VcIDsKK+mgk+aMqyA+IHRvbnphXCA7CivkuIHlrZcgPiB0ZWlqaVwgOwor6ZuR6KiYID4gemFra2lcIDsKK+S4jeWnmSA+IGZ1bmluXCA7CivpmqDpgIAgPiBpbnRhaVwgOwor6Z2x55quID4gamlucGlcIDsKK+miqOWEgCA+IGZ1dWdpXCA7Civoqanoqp4gPiBzaGlnb1wgOwor6Kmt6KiIID4ga2lrZWlcIDsKK+mZpOmcnCA+IGpvc291XCA7CivlqIHmnI0gPiBpZnVrdVwgOwor6Zmk6ZyKID4gam9yZWlcIDsKK+S4jeWmiiA+IGZ1bmluXCA7CivloanpoZ4gPiBlbnJ1aVwgOwor6Zmw6ZaAID4gaW5tb25cIDsKK+aXp+eXviA+IGt5dXVhXCA7Civpn7vmlocgPiBpbmJ1blwgOwor57iB6KuHID4gZW5kYW5cIDsKK+mdreeariA+IGppbnBpXCA7CivmnIDlj6QgPiBzYWlrb1wgOwor57mB6IyCID4gaGFubW9cIDsKK+WkmuiKuCA+IHRhZ2VpXCA7CivpmaTpmoogPiBqb3RhaVwgOwor5ama5a62ID4ga29ua2FcIDsKK+S4jeWkiSA+IGZ1aGVuXCA7CivpoYzlrZcgPiBkYWlqaVwgOwor5LiJ5aWzID4gc2Fuam9cIDsKK+WkluiLkSA+IGdhaWVuXCA7CivmnKvkuJYgPiBtYXNzZVwgOwor5pyJ5YipID4geXV1cmlcIDsKK+S4i+WjqyA+IGthc2hpXCA7CivkuInlpI8gPiBzYW5rYVwgOwor54mh54mbID4gb3VzaGlcIDsKK+S4h+WkqyA+IGJhbnB1XCA7CivkuLvli5kgPiBzaHVtdVwgOwor54mI55S7ID4gaGFuZ2FcIDsKK+irreekuiA+IHl1c2hpXCA7Civpm7vojbcgPiBkZW5rYVwgOwor6ZuF6KiAID4gZ2FnZW5cIDsKK+S4jeWgqiA+IGZ1a2FuXCA7CivmmpflvbEgPiBhbicnZWlcIDsKK+mdkuejgSA+IHNlaWppXCA7CivnhKHpoqggPiBtdWZ1dVwgOwor6Z2i55quID4gbWVucGlcIDsKK+mgreW3viA+IHp1a2luXCA7CivlpKfnvqkgPiB0YWlnaVwgOwor54Sh6aGeID4gbXVydWlcIDsKK+e+juWkpyA+IGJpZGFpXCA7Civnt5rot68gPiBzZW5yb1wgOwor54Sh6aGMID4gbXVkYWlcIDsKK+eEoemgvCA+IGJ1cmFpXCA7Civoqaboo5wgPiBzaGlob1wgOwor6aCR5oSaID4gZ2FuZ3VcIDsKK+S4gOWkqSA+IGl0dGVuXCA7Civnvo7lo7AgPiBiaXNlaVwgOwor5aSa6IO9ID4gdGFub3VcIDsKK+S4i+WfjiA+IGdlam91XCA7CivmmK/mraMgPiB6ZXNlaVwgOwor5LiA5aSJID4gaXBwZW5cIDsKK+e9t+WumCA+IGhpa2FuXCA7CivmlaPoj68gPiBzYW5nZVwgOwor5LiA5aOrID4gaXNzaGlcIDsKK+S4i+WegiA+IGthc3VpXCA7CivlpI/oh7MgPiBnZXNoaVwgOwor57eP6LqrID4gc291bWlcIDsKK+S4jeWcqCA+IGZ1emFpXCA7CivkuK3ljLsgPiBjaHV1aVwgOwor6Kqk6IGeID4gZ29idW5cIDsKK+S4gOWgsSA+IGlwcG91XCA7CivkuIrlm7MgPiBqb3V6dVwgOwor6Z2i55S7ID4gbWVuZ2FcIDsKK+eFmemBkyA+IGVuZG91XCA7CivlpbPnlJ8gPiBqb3NlaVwgOwor54Sh6Zu7ID4gbXVkZW5cIDsKK+eEoemboyA+IGJ1bmFuXCA7CivlpJbogLMgPiBnYWlqaVwgOwor6Z2e55WqID4gaGliYW5cIDsKK+mhp+WVjyA+IGtvbW9uXCA7CivmnInkvqEgPiB5dXVrYVwgOwor5pyJ5L2ZID4geXV1eW9cIDsKK+ino+mboiA+IGthaXJpXCA7CivnhKHpmZAgPiBtdWdlblwgOwor6Kej6ZuHID4ga2Fpa29cIDsKK+S4jeWWhCA+IGZ1emVuXCA7Civpm6roirEgPiBzZWtrYVwgOwor5pug5Y+kID4ga291a29cIDsKK+ino+mZpCA+IGthaWpvXCA7CivkuI3llY8gPiBmdW1vblwgOwor5LiA5ZueID4gaWtrYWlcIDsKK+mZhOmajyA+IGZ1enVpXCA7CivnuYrntq0gPiBzZW4nJ2lcIDsKK+acieS6iyA+IHl1dWppXCA7CivkuIvllY8gPiBrYW1vblwgOwor5piO5rK7ID4gbWVpamlcIDsKK+S4meWNiCA+IGhlaWdvXCA7Civnvqnli4cgPiBnaXl1dVwgOwor6aCS5biDID4gaGFucHVcIDsKK+irluegtCA+IHJvbnBhXCA7CivnvbXlo7AgPiBiYXNlaVwgOwor5LiL5ZOBID4gZ2VoaW5cIDsKK+mYsumfsyA+IGJvdW9uXCA7CivmnIjkuIsgPiBnZWtrYVwgOwor6KiY6LyJID4ga2lzYWlcIDsKK+iok+i+niA+IGt1bmppXCA7CivlpKLnsr4gPiBtdXNlaVwgOwor5LiL5ZG9ID4ga2FtZWlcIDsKK+S4u+S6iyA+IHNodWppXCA7CivlpJbnuIEgPiBnYWllblwgOwor5LiN5ZCMID4gZnVkb3VcIDsKK+mfs+aEnyA+IG9ua2FuXCA7CivmmYLmlocgPiBqaWJ1blwgOwor5aWH55+lID4ga2ljaGlcIDsKK+e3j+itnCA+IHNvdWZ1XCA7CivkuIvlkJEgPiBnZWtvdVwgOwor5LiL5ZCNID4ga2FtZWlcIDsKK+ism+a8lCA+IGtvdWVuXCA7CivkuI3lj4IgPiBmdXNhblwgOwor6aCG5bqPID4ganVuam9cIDsKK+mhnuWPpSA+IHJ1aWt1XCA7CivkuIrlj6UgPiBqb3VrdVwgOwor5LiK5Y+kID4gam91a29cIDsKK+acgOS4iyA+IHNhaWthXCA7CivpmqDoposgPiBpbmtlblwgOwor576p5YW1ID4gZ2loZWlcIDsKK+S4ieWPiSA+IHNhbnNhXCA7CivkuIDlk4EgPiBpcHBpblwgOwor576p5YWEID4gZ2lrZWlcIDsKK+S4h+WPpCA+IGJhbmtvXCA7Civpmbrot68gPiBrZW5yb1wgOwor5aeL5pyfID4gc2hpa2lcIDsKK+S4i+WNiiA+IGthaGFuXCA7CivpmLLpmaQgPiBib3Vqb1wgOwor5LiN5YuiID4gYnV6ZWlcIDsKK+ipseiKuCA+IHdhZ2VpXCA7CivkuI3li5UgPiBmdWRvdVwgOwor5LiN5Yq0ID4gZnVyb3VcIDsKK+e+juWQjSA+IGJpbWVpXCA7CivloanphbggPiBlbnNhblwgOwor5aSn56m0ID4gb29hbmFcIDsKK+eMquWPoyA+IGNob2tvXCA7CivpnLLnm6QgPiByb2JhblwgOwor5LiH5YyWID4gYmFua2FcIDsKK+WogeW+syA+IGl0b2t1XCA7CivkuIDlj40gPiBpdHRhblwgOwor5LiA5Y+MID4gaXNzb3VcIDsKK+aWpOebriA+IGtpbm1lXCA7CivniafmrYwgPiBib2trYVwgOwor5LiL5YmkID4gZ2V6YWlcIDsKK+eEoemKrSA+IG11c2VuXCA7CivloLTpnaIgPiBiYW1lblwgOwor6KiA6L6eID4gZ2VuamlcIDsKK+iqsueojiA+IGthemVpXCA7CivoqrLnqIsgPiBrYXRlaVwgOwor54Sh6YqYID4gbXVtZWlcIDsKK+iqpOeulyA+IGdvc2FuXCA7CivkuI3lh6EgPiBmdWJvblwgOwor54iq54mZID4gc291Z2FcIDsKK+WkquelliA+IHRhaXNvXCA7CivmmpflpJwgPiBhbicneWFcIDsKK+S4jeWHjSA+IGZ1dG91XCA7CivlpKnnpZYgPiB0ZW5zb1wgOwor5LiA5Y2KID4gaXBwYW5cIDsKK+S4gOWNgyA+IGlzc2VuXCA7CivlppbmsJcgPiB5b3VraVwgOwor5aW95ryUID4ga291ZW5cIDsKK+iqpOetlCA+IGdvdG91XCA7Civmlofnp5EgPiBidW5rYVwgOwor6K235oayID4gZ29rZW5cIDsKK+WkmuerryA+IHRhdGFuXCA7CivkuI7lhZogPiB5b3RvdVwgOwor5LiN5YWoID4gZnV6ZW5cIDsKK+ipoOiNiSA+IGVpc291XCA7CivkuI3lhZogPiBmdXRvdVwgOwor6ZuE6IqxID4gb2JhbmFcIDsKK+aXoua4iCA+IGtpc2FpXCA7Civlo67nvo4gPiBzb3ViaVwgOwor5aKT6KqMID4gYm9zaGlcIDsKK+WkmueoriA+IHRhc2h1XCA7Civntrroq4cgPiBraWRhblwgOwor54Sh6YWNID4gbXVoYWlcIDsKK+eKr+aEjyA+IGhhbicnaVwgOwor5LiL5YOnID4gZ2Vzb3VcIDsKK+e+qeS6uiA+IGdpamluXCA7CivkuIDliIcgPiBpc3NhaVwgOwor5LiA5YiGID4gaXBwdW5cIDsKK+S4gOWIgCA+IGl0dG91XCA7CivlpYfnkZ4gPiBraXp1aVwgOwor6KuW55CGID4gcm9ucmlcIDsKK+Wkp+egtCA+IHRhaWhhXCA7CivkuI3lgY8gPiBmdWhlblwgOwor6ZuF6Ie0ID4gZ2FjaGlcIDsKK+S4jeWAqyA+IGZ1cmluXCA7CivoqbHogIUgPiB3YXNoYVwgOwor572y5ZOhID4gc2hvaW5cIDsKK+ism+atpiA+IGtvdWJ1XCA7Civml6Xms6IgPiBuaXBwb1wgOwor5LiW5LujID4gc2VkYWlcIDsKK+S4gOWGjSA+IGlzc2FpXCA7CivkuJbkurogPiBzZWppblwgOwor5pWF6ICBID4ga29yb3VcIDsKK+eMv+S6uiA+IGVuamluXCA7CivmmJ/mlpcgPiBzZWl0b1wgOwor5LiK5YCkID4gdXdhbmVcIDsKK+S4gOWFmiA+IGl0dG91XCA7CivnhKHpgZMgPiBtdWRvdVwgOwor5LiN5L6/ID4gZnViZW5cIDsKK+iojuitsCA+IHRvdWdpXCA7Civlopfoo5wgPiB6b3Vob1wgOwor5LiN5L6LID4gZnVyZWlcIDsKK+e5lOebriA+IG9yaW1lXCA7CivntpnotbcgPiBrZWlraVwgOwor6KiT6KmxID4ga3Vud2FcIDsKK+eEoei+uiA+IG11aGVuXCA7CivkuJbkuIogPiBzZWpvdVwgOwor5LiO5Lu2ID4geW9rZW5cIDsKK+S4i+S9kyA+IGthdGFpXCA7CivpoZ7kvLwgPiBydWlqaVwgOwor6Zqg6JS9ID4gaW5wZWlcIDsKK+e+heWFuCA+IHJhdGVuXCA7CivpmbDorIAgPiBpbmJvdVwgOwor6KiT6KmBID4ga3Vua29cIDsKK+S4ieS9kCA+IHNhbnNhXCA7CivkuInkvY0gPiBzYW5taVwgOwor5aiR5amGID4gc2hhYmFcIDsKK+S4jeS7gSA+IGZ1amluXCA7CivkuIjkvZkgPiBqb3V5b1wgOwor5piO5pqXID4gbWVpYW5cIDsKK+Wmk+alvCA+IGdpcm91XCA7Civmlofnm64gPiBheWFtZVwgOwor5aW95rCXID4ga291a2lcIDsKK+eMtuS6iCA+IHl1dXlvXCA7CivlpInnp7sgPiBoZW4nJ2lcIDsKK+mZhOi/kSA+IGZ1a2luXCA7CivkuIvkurogPiBnZW5pblwgOwor5pq05YipID4gYm91cmlcIDsKK+aal+WWqSA+IGFuJyd5dVwgOwor5aGR6YCgID4gc296b3VcIDsKK+WpmuWEgCA+IGtvbmdpXCA7CivkuIvkuZcgPiBnZWpvdVwgOwor5pOs6KO9ID4gZ2lzZWlcIDsKK+e0memtmiA+IHNoaW1pXCA7CivkuIfkuosgPiBiYW5qaVwgOwor5pOs6KOFID4gZ2lzb3VcIDsKK+S4gOS9kyA+IGl0dGFpXCA7CivkuIDkvY0gPiBpY2hpaVwgOwor6Ku45rS+ID4gc2hvaGFcIDsKK+S4iuS4iyA+IGpvdWdlXCA7CivlpJznm5cgPiB5YXRvdVwgOwor5LiJ5LiWID4gc2FuemVcIDsKK+mbu+ejgSA+IGRlbmppXCA7CivmmbTlpJwgPiBzZWl5YVwgOwor5amm5Lq6ID4gZnVqaW5cIDsKK+mgkeWbuiA+IGdhbmtvXCA7CivmmYLlvIogPiBqaWhlaVwgOwor5LiA5Lu2ID4gaWtrZW5cIDsKK+e+juS6uiA+IGJpamluXCA7CivkuIDku4sgPiBpa2thaVwgOwor57235YWNID4gaGltZW5cIDsKK+Wkp+eTtiA+IG9vYmluXCA7CivoqIDoqp4gPiBnZW5nb1wgOwor5aW95qmfID4ga291a2lcIDsKK+aVhee0mSA+IGtvc2hpXCA7CivlpLfni4QgPiBpdGVraVwgOwor5pqX5ZCbID4gYW5rdW5cIDsKK+WklueariA+IGdhaWhpXCA7CivmmpflkIggPiBhbmdvdVwgOwor5pqX5Y+3ID4gYW5nb3VcIDsKK+itt+WyuCA+IGdvZ2FuXCA7CivkuIDkuJYgPiBpc3NlaVwgOwor54mp5pWFID4gYnVra29cIDsKK+WkqeeQhiA+IHRlbnJpXCA7CivlpI/nnKAgPiBrYW1pblwgOwor57Sg6aSKID4gc295b3VcIDsKK+WnkOW+oSA+IGFuZWdvXCA7CivlpJznlaogPiB5b2JhblwgOwor6Zyy54K5ID4gcm90ZW5cIDsKK+aZqeWkjyA+IGJhbmthXCA7Civpn7PlpKcgPiBvbmRhaVwgOwor6Z+z5aOwID4gb25zZWlcIDsKK+aWh+eQhiA+IGJ1bnJpXCA7CivlpJrnlKggPiB0YXlvdVwgOwor5aSa55SjID4gdGFzYW5cIDsKK+Wkp+eOiyA+IGRhaW91XCA7CivnvbXlgJIgPiBiYXRvdVwgOwor57Sg6aGUID4gc3VnYW9cIDsKK+aUuee1hCA+IGthaXNvXCA7CivntKvpm7IgPiBzaGl1blwgOwor57eo6ICFID4gaGVuamFcIDsKK+Wls+aoqSA+IGpva2VuXCA7CivoqqTnlKggPiBnb3lvdVwgOwor5aeJ5b6hID4gYW5lZ29cIDsKK+WklueVjCA+IGdla2FpXCA7Civmk4HorbcgPiB5b3Vnb1wgOwor5aSp54uXID4gdGVuZ3VcIDsKK+eItuaoqSA+IGZ1a2VuXCA7CivlpaXmra8gPiBva3ViYVwgOwor5pep5pyfID4gc291a2lcIDsKK+e0oOmdoiA+IHN1bWVuXCA7CivorbDlrpogPiBnaXRlaVwgOwor5aSp54i2ID4gdGVucHVcIDsKK+mcgOeUqCA+IGp1eW91XCA7CivnuKvnm64gPiBudWltZVwgOwor54Sh6KyAID4gbXVib3VcIDsKK+aXheasoSA+IHJ5b2ppXCA7Civml6XmnKwgPiBuaWhvblwgOwor54mI5pyoID4gaGFuZ2lcIDsKK+mdiOawoyA+IHJlaWtpXCA7CivnhKHoq5YgPiBtdXJvblwgOwor6Z2e5qWtID4gaGlnb3VcIDsKK+Whq+ijnCA+IHRlbnBvXCA7Civpm6PnoLQgPiBuYW5wYVwgOwor5pem5pquID4gdGFuYm9cIDsKK+WkieeVsCA+IGhlbicnaVwgOwor5pei5pybID4ga2lib3VcIDsKK+mZm+ihmyA+IGhlaWVpXCA7Civns7jprZogPiBpdG95b1wgOwor6Zuo552AID4gYW1hZ2lcIDsKK+WogeWcpyA+IGlhdHN1XCA7Civlpb3mnJ8gPiBrb3VraVwgOwor5aem5ammID4ga2FucHVcIDsKK+ino+iqniA+IGthaWdvXCA7CivmlbTnkIYgPiBzZWlyaVwgOwor54Sh6KiAID4gbXVnb25cIDsKK+WmguaYryA+IG55b3plXCA7CivniL7mnaUgPiBqaXJhaVwgOwor54mH5pmCID4gaGVuamlcIDsKK+e2v+iKsSA+IG1lbmthXCA7CivpmbDolL0gPiBpbnBlaVwgOwor5aSp54K6ID4gdGVuJydpXCA7CivlqIHlmocgPiBpa2FrdVwgOwor54Sh6KaWID4gbXVzaGlcIDsKK+aVsOeQhiA+IHN1dXJpXCA7CivntYzpgY4gPiBrZWlrYVwgOwor54ax56CCID4gbmVzc2FcIDsKK+aYn+W6pyA+IHNlaXphXCA7CivlpKnngasgPiB0ZW5waVwgOwor5Z+g6aCtID4gZnV0b3VcIDsKK+eMiuS4iyA+IGdlaWthXCA7CivpmYToqIAgPiBmdWdlblwgOwor5aSn54GrID4gdGFpa2FcIDsKK+WnpuWkqyA+IGthbnB1XCA7CivpoIbljJYgPiBqdW5rYVwgOwor6Ziy6K23ID4gYm91Z29cIDsKK+mdnuacmyA+IGhpYm91XCA7CivpoK3kuIogPiB6dWpvdVwgOwor6K2w5aOrID4gZ2lzaGlcIDsKK+aZguWlvSA+IGppa291XCA7CivpnZLmooUgPiBhb3VtZVwgOwor5aGX6KOFID4gdG9zb3VcIDsKK+ipqeeikSA+IHNoaWhpXCA7CivmlYXnn6UgPiBrb2NoaVwgOwor6Zqg57eaID4gaW5zZW5cIDsKK+WlkeapnyA+IGtlaWtpXCA7Civoppbph44gPiBzaGl5YVwgOwor6K2w5aC0ID4gZ2lqb3VcIDsKK+aRuOmAoCA+IG1vem91XCA7CivpmbDojI4gPiBpbmtlaVwgOwor5pan5q2jID4gZnVzZWlcIDsKK+mdkuaenCA+IHNlaWthXCA7Civnh6DngasgPiBva2liaVwgOwor6Z+z5ZCNID4gb25tZWlcIDsKK+aYjuW6piA+IG1laWRvXCA7CivlpqXlvZMgPiBkYXRvdVwgOwor5pmC5aCxID4gamlob3VcIDsKK+e1jOi3ryA+IGtlaXJvXCA7Civmlq/mp5ggPiBrYXlvdVwgOwor5aGp6JS1ID4gZW56b3VcIDsKK+aYoOWwhCA+IGVpc2hhXCA7CivpoJLkvqEgPiBoYW5rYVwgOwor6Ku65paHID4gb25tb25cIDsKK+WiqOe1tSA+IHN1bWllXCA7CivntLDpg6ggPiBzYWlidVwgOwor57e056OoID4gcmVubWFcIDsKK+mZpOiNiSA+IGpvc291XCA7CivorY/lq4wgPiBraWdlblwgOwor5aWl5peoID4gb3VzaGlcIDsKK+WfuumHkSA+IGtpa2luXCA7CivntYzosrsgPiBrZWloaVwgOwor6KiY6ICFID4ga2lzaGFcIDsKK+isneaBqSA+IHNoYW9uXCA7CivmmIbluIMgPiBrb25idVwgOwor6Zuy54WZID4gdW4nJ2VuXCA7CivlpKnmsrMgPiB0ZW5nYVwgOwor6Kut5peoID4geXVzaGlcIDsKK+eHkOeBqyA+IHJpbmthXCA7Civlpb3miZMgPiBrb3VkYVwgOwor5pei5oiQID4ga2lzZWlcIDsKK+mYsuihmyA+IGJvdWVpXCA7CivlpKfmsrMgPiB0YWlnYVwgOwor6Zu354GrID4gcmFpa2FcIDsKK+e3h+e0oCA+IHNoaXNvXCA7CivntrLnvoUgPiBtb3VyYVwgOwor5aSp5rCXID4gdGVua2lcIDsKK+mghuS9jSA+IGp1bicnaVwgOwor6KiT576pID4ga3VuZ2lcIDsKK+aYqOWknCA+IHl1dWJlXCA7CivlpKfmsJcgPiB0YWlraVwgOwor54Sh6JOLID4gbXVnYWlcIDsKK+iqnua6kCA+IGdvZ2VuXCA7CivopofpgZMgPiBoYWRvdVwgOwor5pmu5YGPID4gZnVoZW5cIDsKK+aVoueCuiA+IGthbicnaVwgOwor6Zmw57+zID4gaW4nJ2VpXCA7Civml5fmiYsgPiBraXNodVwgOwor6KW/6YOoID4gc2VpYnVcIDsKK+mbh+eUqCA+IGtveW91XCA7Civpn7Plg48gPiBvbnpvdVwgOwor5aa75aWzID4gc2Fpam9cIDsKK+aTjeiItSA+IHNvdWRhXCA7CivlpKfmrYwgPiBvb3V0YVwgOwor6Kyb5bqnID4ga291emFcIDsKK+aWh+auiiA+IG1vbmp1XCA7CivmmJ/lpJwgPiBzZWl5YVwgOwor54Sh6I+MID4gbXVraW5cIDsKK+aWh+atpiA+IGJ1bmJ1XCA7CivpnZ7miY0gPiBoaXNhaVwgOwor5aWH5pu4ID4ga2lzaG9cIDsKK+Wkq+aoqSA+IGZ1a2VuXCA7CivlpKnmqZ8gPiB0ZW5raVwgOwor6ZyK5rCXID4gcmVpa2lcIDsKK+aYjuWqmiA+IG1laWJpXCA7CivnhKHojLYgPiBtdWNoYVwgOwor6Z+z5L6/ID4gb25iaW5cIDsKK+eJouWxiyA+IHJvdXlhXCA7CivlpYfmmbogPiBraWNoaVwgOwor5aSa5q+bID4gdGFtb3VcIDsKK+WogeS/oSA+IGlzaGluXCA7Civoqp7ms5UgPiBnb2hvdVwgOwor5aSn5qi5ID4gdGFpanVcIDsKK+WkluawlyA+IGdhaWtpXCA7CivnhKHoirggPiBtdWdlaVwgOwor5aSn5qeYID4gb295b3VcIDsKK+WlpeaJiyA+IG9rdXRlXCA7CivntrHntIAgPiBrb3VraVwgOwor6KO96bq7ID4gc2VpbWFcIDsKK+e3j+ekviA+IHNvdWphXCA7Civpm7vms6IgPiBkZW5wYVwgOwor5pmC5Y2KID4gamloYW5cIDsKK+itpuWPpSA+IGtlaWt1XCA7CivpnZ7mg4UgPiBoaWpvdVwgOwor6KuL5pqHID4gc2Vpa2FcIDsKK+aZguWMliA+IHNoaWtlXCA7CivlpbPmgKcgPiBqb3NlaVwgOwor6Zuo5ru0ID4gdXRla2lcIDsKK+Wlh+aVsCA+IGtpc3V1XCA7Civpm4TnjKsgPiBvbmVrb1wgOwor5pmC5YuiID4gamlzZWlcIDsKK+aWp+aWpCA+IGZ1a2luXCA7Civpm7LmtbcgPiB1bmthaVwgOwor6ZuR54WuID4gem91bmlcIDsKK+aZguWKuSA+IGppa291XCA7CivmmJ/lm7MgPiBzZWl6dVwgOwor54i25oCnID4gZnVzZWlcIDsKK+imgei3ryA+IHlvdXJvXCA7CivlpbPlvqEgPiBueW9nb1wgOwor6Zu75rCXID4gZGVua2lcIDsKK+aWoeaXiyA+IGFzc2VuXCA7Civpm7Lms6UgPiB1bmRlaVwgOwor6K2m5YuZID4ga2VpbXVcIDsKK+aZguWItiA+IGppc2VpXCA7Civpm4TniZsgPiBvdXNoaVwgOwor5pmC5YiGID4gamlidW5cIDsKK+eEoeiDvSA+IG11bm91XCA7CivlpJrmp5ggPiB0YXlvdVwgOwor54qs5YSSID4ga2VuanVcIDsKK+eBq+mboyA+IGthbmFuXCA7CivmlbDmrKEgPiBzdXVqaVwgOwor5aaW5ammID4geW91ZnVcIDsKK+aVteapnyA+IHRla2tpXCA7Civpm7LmsLQgPiB1bnN1aVwgOwor5aaW5amGID4geW91YmFcIDsKK+aXl+W5nyA+IGtpc2hpXCA7CivpnZLmga8gPiBhb2lraVwgOwor6ZaR6ZuFID4ga2FuZ2FcIDsKK+Wkp+aenSA+IG9vZWRhXCA7Civlo7Lmt6sgPiBiYWlpblwgOwor6Zyn5pWjID4gbXVzYW5cIDsKK+Wls+W4nSA+IGpvdGVpXCA7Civpm6jms6ggPiB1Y2h1dVwgOwor5pS+54GrID4gaG91a2FcIDsKK+WlieaMgSA+IGhvdWppXCA7CivlpbPlt6UgPiBqb2tvdVwgOwor6Zu75qmfID4gZGVua2lcIDsKK+e3mueUuyA+IHNlbmdhXCA7CivpnZ7luLggPiBoaWpvdVwgOwor5aaW5aWzID4geW91am9cIDsKK+aWsOaJiyA+IGFyYXRlXCA7CivpnZnluqcgPiBzZWl6YVwgOwor54Sh572qID4gbXV6YWlcIDsKK+aVo+atqSA+IHNhbnBvXCA7Civpm6jmsLcgPiB1aHlvdVwgOwor5paH5pu4ID4gbW9uam9cIDsKK+mWi+mZoiA+IGthaWluXCA7CivlporlqaYgPiBuaW5wdVwgOwor5pmC5YCZID4gamlrb3VcIDsKK+mWiemZoiA+IGhlaWluXCA7Civml6LlrpogPiBraXRlaVwgOwor6K2m5YKZID4ga2VpYmlcIDsKK+Wlh+aJjSA+IGtpc2FpXCA7CivlpYfmiYsgPiBraXNodVwgOwor5aSp5pelID4gdGVucGlcIDsKK+Wkp+aYoCA+IGRhaWVpXCA7CivlpJzmnaUgPiB5YXJhaVwgOwor5aW95a6cID4ga291Z2lcIDsKK+e0m+itsCA+IGZ1bmdpXCA7CivpmaTnrpcgPiBqb3phblwgOwor5pei5a2YID4ga2lzb25cIDsKK+itsOS8miA+IGdpa2FpXCA7Civpm6LmsLQgPiByaXN1aVwgOwor6KiT56S6ID4ga3VuamlcIDsKK+ippua8lCA+IHNoaWVuXCA7CivmkqvogrIgPiBidWlrdVwgOwor6Ziy6IWQID4gYm91ZnVcIDsKK+iqnuaguSA+IGdva29uXCA7CivmkrDogIUgPiBzZW5qYVwgOwor54ax5rOiID4gbmVwcGFcIDsKK+WkmuacmyA+IHRhYm91XCA7Civpmbbno4EgPiB0b3VqaVwgOwor5aWz5bCKID4gam9zb25cIDsKK+Wlh+aFiyA+IGtpdGFpXCA7CivmmYLku6MgPiBqaWRhaVwgOwor6K2y5LiOID4gam91eW9cIDsKK+eEoee3miA+IG11c2VuXCA7CivniaLlm7ogPiByb3Vrb1wgOwor5aSc5pmvID4geWFrZWlcIDsKK+aRmOiomCA+IHRla2tpXCA7Civml6LlqZogPiBraWtvblwgOwor5pmC5Lq6ID4gamlqaW5cIDsKK+mbhOa7nSA+IG9kYWtpXCA7CivniZnln44gPiBnYWpvdVwgOwor5aWH5oOzID4ga2lzb3VcIDsKK+Wjq+awlyA+IHNoaWtpXCA7CivoqbHms5UgPiB3YWhvdVwgOwor54KJ6L66ID4gcm9oZW5cIDsKK+Wls+WtkCA+IGpvc2hpXCA7CivnhannkaMgPiBoYW5zYVwgOwor57eP55CGID4gc291cmlcIDsKK+aZguS4liA+IGppc2VpXCA7CivniLblrZAgPiBmdXNoaVwgOwor54Sh57OWID4gbXV0b3VcIDsKK+mZveeariA+IHlvdWhpXCA7Civmlr3lt6UgPiBzZWtvdVwgOwor5aSn5pCNID4gb296b25cIDsKK+ino+e1hCA+IGthaXNvXCA7CivlpYfmgKogPiBraWthaVwgOwor6Ku45a62ID4gc2hva2FcIDsKK+eJueWMliA+IHRva2thXCA7CivpnLLmgqogPiByb2FrdVwgOwor54qA5YipID4gc2FpcmlcIDsKK+WkmuaVsCA+IHRhc3V1XCA7CivlpKfmj5ogPiBvb3lvdVwgOwor54Sh57KLID4gYnVzdWlcIDsKK+e2suebriA+IGFtaW1lXCA7CivlpKnmjoggPiB0ZW5qdVwgOwor5pig5YaZID4gZWlzaGFcIDsKK+WkleaXpSA+IHl1dWhpXCA7CivlpbPlqb8gPiBqb3NlaVwgOwor5aW95aWHID4ga291a2lcIDsKK+WkluaWuSA+IHNvcHBvXCA7CivmlL/msrsgPiBzZWlqaVwgOwor57KX6aSQID4gc29zYW5cIDsKK+eyl+mjryA+IHNvaGFuXCA7CivplonpjpYgPiBoZWlzYVwgOwor57Sg6KGMID4gc29rb3VcIDsKK+e1uee1tSA+IGtpbnVlXCA7CivorZzku6MgPiBmdWRhaVwgOwor6Ki054q2ID4gc29qb3VcIDsKK+Wlh+W9oiA+IGtpa2VpXCA7CivloannqI4gPiBlbnplaVwgOwor5pig5YOPID4gZWl6b3VcIDsKK+e1tee1uSA+IGVnaW51XCA7Civpm5HmrYwgPiB6b3VrYVwgOwor6Zqg54S2ID4gaW56ZW5cIDsKK+Wlh+W8gSA+IGtpYmVuXCA7Civoqp7mlbAgPiBnb3N1dVwgOwor5pei5aCxID4ga2lob3VcIDsKK+mZveeUuyA+IHlvdWdhXCA7CivngavphZIgPiBrYXNodVwgOwor57Sr6JiHID4gc2hpc29cIDsKK+ijvemdtCA+IHNlaWthXCA7Civpm7bmmYIgPiByZWlqaVwgOwor5pig5YCrID4gZWlyaW5cIDsKK+ipqeatjCA+IHNoaWthXCA7Civnsr7pi60gPiBzZWllaVwgOwor5aWz5aOwID4gam9zZWlcIDsKK+aUvuatjCA+IGhvdWthXCA7CivpmYTnrosgPiBmdXNlblwgOwor57O76K2cID4ga2VpZnVcIDsKK+mbsuaZryA+IHVua2VpXCA7CivoqonmnJsgPiB5b2JvdVwgOwor54mI5ZuzID4gaGFudG9cIDsKK+mcsuW6lyA+IHJvdGVuXCA7CivlpYflt4wgPiBraWdhblwgOwor5aeJ5LiKID4gYW5ldWVcIDsKK+aWnOW9sSA+IHNoYWVpXCA7CivnhKHnqL0gPiBtdWtlaVwgOwor6KWy6KGjID4gc2h1dWlcIDsKK+mWk+mBoCA+IG1hZG9vXCA7CivpnLLluJ0gPiByb3RlaVwgOwor6ZuE5q2mID4geXV1YnVcIDsKK+eEoeeojiA+IG11emVpXCA7CivlpKnmhI8gPiB0ZW4nJ2lcIDsKK+ipoOatjiA+IGVpdGFuXCA7CivpnZnlpJwgPiBzZWl5YVwgOwor6Kyb5ZKMID4ga291d2FcIDsKK+Wkp+aEmiA+IHRhaWd1XCA7CivnhKHnp4EgPiBtdXNoaVwgOwor54WJ55OmID4gcmVuZ2FcIDsKK+mbsuaVoyA+IHVuc2FuXCA7Civpm6LmnZEgPiByaXNvblwgOwor5aSc5oimID4geWFzZW5cIDsKK+e0gOimgSA+IGtpeW91XCA7CivnhaTnhZkgPiBiYWllblwgOwor57W1562GID4gZWZ1ZGVcIDsKK+WkmuaJjSA+IHRhc2FpXCA7CivmlofmhI8gPiBidW4nJ2lcIDsKK+ilpOikuCA+IHJhbnJ1XCA7CivlpKfmgp8gPiBkYWlnb1wgOwor54m55L6hID4gdG9ra2FcIDsKK+Wlh+WyqSA+IGtpZ2FuXCA7CivnhKHnpLwgPiBidXJlaVwgOwor57m75a2QID4gc2h1c3VcIDsKK+mWi+mBiyA+IGthaXVuXCA7CivlpKfmgakgPiBkYWlvblwgOwor6Kmy5qGIID4gZ2FpYW5cIDsKK+WkouaDsyA+IG11c291XCA7CivopabooqIgPiBqdWJhblwgOwor6Zuj5piTID4gbmFuJydpXCA7Civml6jlkbMgPiB1bWFtaVwgOwor6Kmx5p+EID4gd2FoZWlcIDsKK+WlieWuiSA+IGhvdWFuXCA7CivloJXog44gPiBkYXRhaVwgOwor57SA6KGMID4ga2lrb3VcIDsKK+aUvuajhCA+IGhvdWtpXCA7CivlpJrmhJ8gPiB0YWthblwgOwor5pKt56iuID4gaGFzaHVcIDsKK+iqsuW9uSA+IGthZWtpXCA7CivpmaLnlJ8gPiBpbnNlaVwgOwor6KOc6aGMID4gaG9kYWlcIDsKK+WkmuaDhSA+IHRham91XCA7CivnhKHnn6UgPiBtdWNoaVwgOwor6Zui5pWjID4gcmlzYW5cIDsKK+ippuahiCA+IHNoaWFuXCA7CivlpKnlupwgPiB0ZW5wdVwgOwor5aSa5oGoID4gdGFrb25cIDsKK+Wkp+W6piA+IHRhaWRvXCA7CivniankvqEgPiBidWtrYVwgOwor6Kqe5oSfID4gZ29rYW5cIDsKK+aVteaEjyA+IHRla2lpXCA7Civlpb3lj6QgPiBrb3Vrb1wgOwor5paH5bqrID4gYnVua29cIDsKK+WkmuW/mSA+IHRhYm91XCA7CivopovoiJ4gPiBtaW1haVwgOwor54WW54KJID4gZGFucm9cIDsKK+Wglee9qiA+IGRhemFpXCA7CivloannlLAgPiBlbmRlblwgOwor5pWF5pm6ID4ga29jaGlcIDsKK+eEoeebiiA+IG11ZWtpXCA7Civpmb3ngo4gPiB5b3VlblwgOwor5aSn5beuID4gdGFpc2FcIDsKK+e5iuW6piA+IHNlbmRvXCA7CivlpKflt6UgPiBkYWlrdVwgOwor6Ku35ZapID4gZnV1eXVcIDsKK+WkmuW9qSA+IHRhc2FpXCA7Civplonot68gPiBoZWlyb1wgOwor5aSa5b2iID4gdGFrZWlcIDsKK+aVrOaFlSA+IGtlaWJvXCA7CivloIbogqUgPiB0YWloaVwgOwor5pel5YqgID4gbmlra2FcIDsKK+aPtOi7jSA+IGVuZ3VuXCA7Civnspfpi7wgPiBzb2tvdVwgOwor5pWs5oSbID4ga2VpYWlcIDsKK+WkmuW8gSA+IHRhYmVuXCA7Civlo7Dmj7QgPiBzZWllblwgOwor54ao5paXID4gbm9zaGlcIDsKK+mdnuWRvSA+IGhpbWVpXCA7CivorIDlj5sgPiBtdWhvblwgOwor5aWz5Y+yID4gam9zaGlcIDsKK+isgOWPjSA+IG11aG9uXCA7CivnspfpioUgPiBzb2RvdVwgOwor6KSS6L6eID4gaG91amlcIDsKK+aRqeiAlyA+IG1hbW91XCA7CivnspfpibEgPiBzb2tvdVwgOwor54i25ZCbID4gZnVrdW5cIDsKK+aUvuaYoCA+IGhvdWVpXCA7CivlpJblu7YgPiBnYWllblwgOwor5aSa5bm4ID4gdGFrb3VcIDsKK+WkmuW5tCA+IHRhbmVuXCA7CivntIXok64gPiBndXJlblwgOwor6ZuB5pyoID4gZ2FuZ2lcIDsKK+Wlh+WjsCA+IGtpc2VpXCA7Civoqp7lvaIgPiBnb2tlaVwgOwor5aWE5aWEID4gZW4nJ2VuXCA7Civoo4/pnaIgPiByaW1lblwgOwor5pei5YiKID4ga2lrYW5cIDsKK+aWueWbsyA+IGhvdXp1XCA7Civpm6jmiLggPiBhbWFkb1wgOwor6Zyy5aSpID4gcm90ZW5cIDsKK+ijnOmWkyA+IGhva2FuXCA7Civoqp7lvIogPiBnb2hlaVwgOwor54mi5LmOID4gcm91a29cIDsKK+eEoeeUqCA+IG11eW91XCA7CivnhKHnlKMgPiBtdXNhblwgOwor54mh5Li5ID4gYm90YW5cIDsKK+Wkp+WwviA+IHRhaWJpXCA7CivlpKnlr78gPiB0ZW5qdVwgOwor6Kqe5bm5ID4gZ29rYW5cIDsKK+eyl+mFkiA+IHNvc2h1XCA7CivmjqfpmaQgPiBrb3Vqb1wgOwor5aOy5omLID4gdXJpdGVcIDsKK+Wil+a0viA+IHpvdWhhXCA7CivoqpjlvJUgPiB5dXVpblwgOwor5aSn5a62ID4gdGFpa2VcIDsKK+mbheaWhyA+IGdhYnVuXCA7CivopofogIUgPiBoYXNoYVwgOwor5paJ5a62ID4gc2Vpa2FcIDsKK+mcsuWgtCA+IHJvam91XCA7CivlpKflrokgPiBkYWlhblwgOwor5pWw5bqmID4gc3V1ZG9cIDsKK+Wkp+WtlyA+IG9vYXphXCA7CivplpHoqbEgPiBrYW53YVwgOwor5Zyw6aCtID4gaml0b3VcIDsKK+mZuOa5ryA+IG9rYXl1XCA7Civmlq3lm7ogPiBkYW5rb1wgOwor6Zuy5b2xID4gdW4nJ2VpXCA7CivmloflrZcgPiBtb25qaVwgOwor54eV5bejID4gZW5zb3VcIDsKK+WlpeWNsCA+IG9rdWluXCA7CivlpKvlqaYgPiBtZW90b1wgOwor5aSa5bGkID4gdGFzb3VcIDsKK+iotOaoqSA+IHNva2VuXCA7Civpm7bluqYgPiByZWlkb1wgOwor54K56ICFID4gdGVuamFcIDsKK+e1teeUuyA+IGthaWdhXCA7CivpmqDmo7IgPiBpbnNlaVwgOwor6KaB576pID4geW91Z2lcIDsKK+mdnuWHoSA+IGhpYm9uXCA7CivoqKrmrKcgPiBob3VvdVwgOwor5Zyw6Z2iID4gamltZW5cIDsKK+WlveWAiyA+IGtvdWtvXCA7CivlpbPlhKogPiBqb3l1dVwgOwor5aSp5aiBID4gdGVuJydpXCA7CivlpKvlprsgPiBmdXNhaVwgOwor6Kqk5bCEID4gZ29zaGFcIDsKK+eItuWFhCA+IGZ1a2VpXCA7CivlnLDpm7cgPiBqaXJhaVwgOwor6KiY5rOVID4ga2lob3VcIDsKK+eFluawlyA+IGRhbmtpXCA7CivpmqDmoJYgPiBpbnNlaVwgOwor5aSa5a2UID4gdGFrb3VcIDsKK+WkluWuriA+IGdla3V1XCA7CivnhZnmrbsgPiBlbnNoaVwgOwor5aSq5aSrID4gdGF5dXVcIDsKK+mZveawlyA+IHlvdWtpXCA7Civln7rnt5ogPiBraXNlblwgOwor5aSn5aWlID4gb29va3VcIDsKK+aOkumZpCA+IGhhaWpvXCA7CivlpJblrZcgPiBnYWlqaVwgOwor5pWj5biDID4gc2FucHVcIDsKK+Wlh+WVjyA+IGtpbW9uXCA7CivlpoLkuIogPiBqb2pvdVwgOwor5aW95LqLID4ga291enVcIDsKK+Wkp+WjsCA+IG9vZ29lXCA7CivoqrLlpJYgPiBrYWdhaVwgOwor5aS35Zu9ID4gaWtva3VcIDsKK+aUr+aPtCA+IHNoaWVuXCA7Civmk6zmr5sgPiBnaW1vdVwgOwor57Sg57W5ID4gc29rZW5cIDsKK+WlkeWNsCA+IGtlaWluXCA7Civpm6PluqYgPiBuYW5kb1wgOwor6KaP56+EID4ga2loYW5cIDsKK+aTrOatuyA+IGdpc2hpXCA7CivmlbDlrZcgPiBzdXVqaVwgOwor5aSa5aa7ID4gdGFzYWlcIDsKK+aWjuWeoyA+IGlnYWtpXCA7CivopoHntKAgPiB5b3Vzb1wgOwor5peX5LqtID4ga2l0ZWlcIDsKK+aUr+aMgSA+IHNoaWppXCA7Civpm4Xmh5AgPiBnYWthaVwgOwor5o+Q6LW3ID4gdGVpa2lcIDsKK+mbsuWxhSA+IGt1bW9pXCA7CivpnLLlkb0gPiByb21laVwgOwor54Sh54GvID4gbXV0b3VcIDsKK+mZsOavmyA+IGlubW91XCA7CivlpInlrZcgPiBoZW5qaVwgOwor6KW/57SAID4gc2Vpa2lcIDsKK+e5lOWcsCA+IG9yaWppXCA7CivpnIrlpKIgPiByZWltdVwgOwor6Zyy5ZGIID4gcm90ZWlcIDsKK+WkmuWkpyA+IHRhZGFpXCA7CivmjoPpmaQgPiBzb3VqaVwgOwor5aGX54KtID4gdG90YW5cIDsKK+aNlemvqCA+IGhvZ2VpXCA7CivpnZ7kurogPiBoaW5pblwgOwor5aSa5aOyID4gdGFiYWlcIDsKK+mcsuWPsCA+IHJvZGFpXCA7CivnuYHlpJogPiBoYW50YVwgOwor6Zmk5rOVID4gam9ob3VcIDsKK+eEnOeCiSA+IGtvbnJvXCA7CivmlrnlhoYgPiBob3VlblwgOwor6Ku45LqLID4gc2hvamlcIDsKK+aUueaCnyA+IGthaWdvXCA7Civntpnms7MgPiBrZWllaVwgOwor5aWJ5YqgID4gaG91Z2FcIDsKK+imj+eoiyA+IGtpdGVpXCA7Civpm6Lls7YgPiByaXRvdVwgOwor5aWH5Yq5ID4ga2lrb3VcIDsKK+ipreW8gSA+IGtpYmVuXCA7CivpmpXmmJ8gPiBpbnNlaVwgOwor5aSn5ZmoID4gdGFpa2lcIDsKK+mbouWyuCA+IHJpZ2FuXCA7Civngq3ntKAgPiB0YW5zb1wgOwor6Kqk5aCxID4gZ29ob3VcIDsKK+WkluWgtCA+IGdhaWJhXCA7CivmlbDlpYcgPiBzdXVraVwgOwor6Zui5bGxID4gcml6YW5cIDsKK+Wkp+WYmCA+IG9vdXNvXCA7Civns5boj5MgPiB0b3VrYVwgOwor5pWw5aSaID4gc3V1dGFcIDsKK+aPkOitsCA+IHRlaWdpXCA7Civpmo/mmYIgPiB6dWlqaVwgOwor57WM55SxID4ga2VpeXVcIDsKK+eBq+iRrCA+IGthc291XCA7CivpnIrlnJIgPiByZWllblwgOwor5pS/5bqcID4gc2VpZnVcIDsKK+Wlh+WFtSA+IGtpaGVpXCA7CivpmL/mvJUgPiBha29naVwgOwor6Ziy54KOID4gYm91ZW5cIDsKK+aWl+WNlyA+IHRvbmFuXCA7Civlo7LlrZAgPiB1cmlrb1wgOwor6Zu75aC0ID4gZGVuYmFcIDsKK+WkluWboCA+IGdhaWluXCA7CivpmLLngasgPiBib3VrYVwgOwor5o+Q6Ki0ID4gdGVpc29cIDsKK+mcsuWFiSA+IHJva291XCA7CivlpKvlkJsgPiBmdWt1blwgOwor6KSH6KGjID4gZnVrdWlcIDsKK+e1jOeQhiA+IGtlaXJpXCA7CivlpKflkbwgPiB0YWlrb1wgOwor5aSn5ZGzID4gb29hamlcIDsKK+aWveS4uyA+IHNlc2h1XCA7Civpm7Llo4wgPiB1bmpvdVwgOwor5aWH5YG2ID4ga2lndXVcIDsKK+WkquWPpCA+IHRhaWtvXCA7CivnhKHms5UgPiBtdWhvdVwgOwor5pWF5bGxID4ga296YW5cIDsKK+a/g+mcpyA+IG5vdW11XCA7Civpm6LlqZogPiByaWtvblwgOwor5aSn5Y+wID4gb29kYWlcIDsKK+WcqOmHjiA+IHphaXlhXCA7CivngrnnpLogPiB0ZW5qaVwgOwor5pWZ5aeUID4ga3lvdWlcIDsKK+iqh+WkpyA+IGtvZGFpXCA7CivngavoibIgPiBoaWlyb1wgOwor54S25qeYID4gc2F5b3VcIDsKK+iho+mtmiA+IHNoaW1pXCA7Civoqpjlm6AgPiB5dXVpblwgOwor57KX6KO9ID4gc29zZWlcIDsKK+aWh+WPpSA+IG1vbmt1XCA7CivnhKHmsLQgPiBtdXN1aVwgOwor54O954GrID4gaG91a2FcIDsKK+eyvuiPryA+IHNlaWthXCA7CivlpYfkvZMgPiBraXRhaVwgOwor54Sh5q+bID4gbXVtb3VcIDsKK+e5reS+oSA+IGtlbmthXCA7Civpm7vlmaggPiBkZW5raVwgOwor5Zuz6Z2iID4genVtZW5cIDsKK+e3qeW+kCA+IGthbmpvXCA7CivmlL7lsYEgPiBob3VoaVwgOwor5aOy5aWzID4gYmFpdGFcIDsKK+WkqeWKqSA+IHRlbmpvXCA7CivnsbPosqggPiBiZWlrYVwgOwor5Zu66ZmLID4ga29yb3VcIDsKK+eEoeauiyA+IG11emFuXCA7CivplovoirEgPiBrYWlrYVwgOwor54Sh5q27ID4gbXVzaGlcIDsKK+aWh+WMliA+IGJ1bmthXCA7CivlpYfkurogPiBraWppblwgOwor5pat5LmOID4gZGFua29cIDsKK+Wil+aPtCA+IHpvdWVuXCA7CivlpJzlj4kgPiB5YXNoYVwgOwor5Z+655ukID4ga2liYW5cIDsKK+WkquWIgCA+IHRhY2hpXCA7CivpmbDmmbQgPiBpbnNlaVwgOwor5aOr5aWzID4gc2hpam9cIDsKK+Wkp+WIpCA+IG9vYmFuXCA7CivntKDnm7QgPiBzdW5hb1wgOwor6Kaq54i6ID4gb3lhamlcIDsKK+imqueItiA+IG95YWppXCA7CivoqrLliLYgPiBrYXNlaVwgOwor6ZyA5ZOBID4ganVoaW5cIDsKK+ijnOismyA+IGhva291XCA7Civpm6PloLQgPiBuYW5iYVwgOwor57at5pawID4gaXNoaW5cIDsKK+WjsuWgtCA+IHVyaWJhXCA7CivlpLfkv5cgPiBpem9rdVwgOwor5Zue6aGnID4ga2Fpa29cIDsKK+WknOWLpCA+IHlha2luXCA7CivlpKflhoYgPiBkYWllblwgOwor6KiI5pmCID4ga2VpamlcIDsKK+WhqeaihSA+IGFuYmFpXCA7CivpmbDmlocgPiBpbmJ1blwgOwor6Zmi5pysID4gaW5wb25cIDsKK+WkmuWLoiA+IHRhemVpXCA7CivpmpTmhI8gPiBrYWt1aVwgOwor5Zub6aGnID4gc2hpa29cIDsKK+mWk+iAhSA+IGthbmphXCA7CivlpKflhJIgPiBkYWlqdVwgOwor6Kqe5Y6fID4gZ29nZW5cIDsKK+Wkp+WEgCA+IHRhaWdpXCA7CivlpJzliY0gPiB5YXplblwgOwor6KOc6KiCID4gaG90ZWlcIDsKK+exs+iqniA+IGJlaWdvXCA7CivpmLvmraIgPiBzb3NoaVwgOwor5aSW5YuZID4gZ2FpbXVcIDsKK+mbkeWkmiA+IHphdHRhXCA7CivlpJzliIYgPiB5YWJ1blwgOwor5pWX5ZugID4gaGFpaW5cIDsKK+exs+ipsSA+IGJlaXdhXCA7CivlnZDoppYgPiB6YXNoaVwgOwor5paJ5YKZID4gc2VpYmlcIDsKK+WkmuWIhiA+IHRhYnVuXCA7CivlopPmiYAgPiBib3Nob1wgOwor6Kqe5YuiID4gZ29zZWlcIDsKK+iqpOWIpCA+IGdvaGFuXCA7CivmjqHorZwgPiBzYWlmdVwgOwor5aOH5a62ID4gZGFua2FcIDsKK+WjruWbsyA+IHNvdXRvXCA7Civlm7PpkZEgPiB6dWthblwgOwor5aSc5YWJID4geWFrb3VcIDsKK+eCueeUuyA+IHRlbmdhXCA7CivpmaTmlbAgPiBqb3N1dVwgOwor6Zu75YyWID4gZGVua2FcIDsKK+iqpOWGmSA+IGdvc2hhXCA7CivmjqfoqLQgPiBrb3Vzb1wgOwor5aSa5YWDID4gdGFnZW5cIDsKK+WkqeS9jSA+IHRlbicnaVwgOwor6Zuy5Y+wID4gdW5kYWlcIDsKK+ilv+eTnCA+IHN1aWthXCA7Civoqo3lkKYgPiBuaW5waVwgOwor54Sh5qC5ID4gbXVrb25cIDsKK+WkieWMliA+IGhlbmdlXCA7CivpmaLmlL8gPiBpbnNlaVwgOwor5aSn5L2QID4gdGFpc2FcIDsKK+iqjeWPryA+IG5pbmthXCA7CivlpKvkurogPiBmdWppblwgOwor54Gr57eaID4ga2FzZW5cIDsKK+e2suaIuCA+IGFtaWRvXCA7Civnsr7nvqkgPiBzZWlnaVwgOwor6Kqw5L2VID4gc3Vpa2FcIDsKK+iomOaGtiA+IGtpb2t1XCA7Civoo73oj5MgPiBzZWlrYVwgOwor5aSn5LqLID4gZGFpamlcIDsKK+a/q+iyuyA+IHJhbnBpXCA7CivlpKnkuIsgPiB0ZW5rYVwgOwor5paH5LqLID4gYnVuamlcIDsKK+aTrOaFiyA+IGdpdGFpXCA7CivpmqDlsYUgPiBpbmt5b1wgOwor5pW05YKZID4gc2VpYmlcIDsKK+e0q+eFmSA+IHNoaWVuXCA7CivmlazlhbcgPiBrZWlndVwgOwor57KX6Iy2ID4gc29jaGFcIDsKK+WknOS8miA+IHlha2FpXCA7CivnhKHmmbogPiBtdWNoaVwgOwor6Zqj5a62ID4gcmlua2FcIDsKK+e0lOeQhiA+IGp1bnJpXCA7Civpm6LlkIggPiByaWdvdVwgOwor6Zuj5Y+lID4gbmFua3VcIDsKK+eziueyviA+IGtvc2VpXCA7Civnt57lrZAgPiBkb25zdVwgOwor6Zui5Y+NID4gcmloYW5cIDsKK+e0oOeJhyA+IHNvaGVuXCA7CivnhZnlvL4gPiBlbmRhblwgOwor6Kqk5LydID4gZ29kZW5cIDsKK+mbquWKoCA+IHNla2thXCA7Civns7jnm64gPiBpdG9tZVwgOwor57W15p+EID4gZWdhcmFcIDsKK+iomOW/tSA+IGtpbmVuXCA7CivopJLnvo4gPiBob3ViaVwgOwor6ZuE5ZuzID4geXV1dG9cIDsKK+eBveemjSA+IHNhaWthXCA7CivnhKHmlq0gPiBtdWRhblwgOwor54OI54GrID4gcmVra2FcIDsKK+aVsOWAiyA+IHN1dWtvXCA7CivpmbDmg6ggPiBpbnNhblwgOwor54Sh5pWwID4gbXVzdXVcIDsKK+e1teacrSA+IGVmdWRhXCA7CivlpJbkuosgPiBnYWlqaVwgOwor5pWw5L6hID4gc3V1a2FcIDsKK+e2v+W4gyA+IG1lbnB1XCA7CivooKfprZogPiBzaGltaVwgOwor5Z+654K5ID4ga2l0ZW5cIDsKK+mZsOaApyA+IGluc2VpXCA7Civpm7vkvY0gPiBkZW4nJ2lcIDsKK+ipoOWYhiA+IGVpdGFuXCA7Civnsr7nspcgPiBzZWlzb1wgOwor6Zuo5YW3ID4gYW1hZ3VcIDsKK+WkieS9jSA+IGhlbicnaVwgOwor6Zmw5b2xID4gaW4nJ2VpXCA7Civopo/mupYgPiBraWp1blwgOwor57eP5auBID4gc291a2FcIDsKK+eCueeBqyA+IHRlbmthXCA7Civpm6LlhZogPiByaXRvdVwgOwor5o6p6JS9ID4gZW5wZWlcIDsKK+WkieS6iyA+IGhlbmppXCA7Civoqanlj6UgPiBzaGlrdVwgOwor6Zuj5YSAID4gbmFuZ2lcIDsKK+e1g+atjCA+IGdlbmthXCA7CivoqablkIggPiBzaGlhaVwgOwor6Zqg5aOrID4gaW5zaGlcIDsKK+aOqeiTiyA+IGVuZ2FpXCA7CivlorPlopMgPiBmdW5ib1wgOwor57iB5Y+wID4gZW5kYWlcIDsKK+mbsuS6lSA+IGt1bW9pXCA7CivoobDpgYsgPiBzdWl1blwgOwor5Z+65rqWID4ga2lqdW5cIDsKK+mbtuS4iyA+IHJlaWthXCA7Civpm4Xlj7cgPiBnYWdvdVwgOwor5Z+65rqQID4ga2lnZW5cIDsKK+ipoOWQnyA+IGVpZ2luXCA7CivlnJ/oo70gPiBkb3NlaVwgOwor6Kmg5Y+yID4gZWlzaGlcIDsKK+eFmeWusyA+IGVuZ2FpXCA7CivmlL/li5kgPiBzZWltdVwgOwor5aC05pyrID4gYmFzdWVcIDsKK+WbnumBvyA+IGthaWhpXCA7Civpm7LkuIogPiB1bmpvdVwgOwor5pS55Y2wID4ga2FpaW5cIDsKK+e2vuWtkCA+IHJpbnp1XCA7CivnhKHmiY0gPiBtdXNhaVwgOwor54Ks54GrID4ga3lva2FcIDsKK+mWi+elliA+IGthaXNvXCA7CivngavnoLIgPiBrYWhvdVwgOwor6ZaL56S6ID4ga2FpamlcIDsKK+WjsuS+oSA+IGJhaWthXCA7CivnsbPoi7EgPiBiZWllaVwgOwor54Wp5aSaID4gaGFudGFcIDsKK+WjsOS+oSA+IHNlaWthXCA7CivpmqDlnYogPiBvbmJvdVwgOwor57a45a2QID4gcmluenVcIDsKK+mau+WPpSA+IHNla2t1XCA7CivnhKHmha4gPiBtdXJ5b1wgOwor6Zuq5LiLID4gc2Vra2FcIDsKK+WggOaxnyA+IGhvcmllXCA7Civpm6Lku7sgPiByaW5pblwgOwor57WQ5p6cID4ga2Vra2FcIDsKK+mbqOS4rSA+IHVjaHV1XCA7CivoobDouq8gPiBzdWlrdVwgOwor57SF54KOID4ga291ZW5cIDsKK+e2tOWtlyA+IHRlaWppXCA7Civpm6PkuosgPiBuYW5qaVwgOwor5Zyw6JS1ID4gaml6b3VcIDsKK+eEoeaDsyA+IG11c291XCA7CivnhKHmg6ggPiBtdXphblwgOwor57Sv5qyhID4gcnVpamlcIDsKK+eEoeaDhSA+IG11am91XCA7Civnt6nlkowgPiBrYW53YVwgOwor6KaP5q2jID4ga2lzZWlcIDsKK+ipkOWPliA+IHNhc2h1XCA7CivnhKHmgaUgPiBtdWNoaVwgOwor6KOF6I23ID4gc291a2FcIDsKK+eEoeaApyA+IG11c2VpXCA7Civpm4XlhYQgPiBnYWtlaVwgOwor57KX57OWID4gc290b3VcIDsKK+maoOWWqSA+IGluJyd5dVwgOwor54Sh5b+1ID4gbXVuZW5cIDsKK+Wbnui3ryA+IGthaXJvXCA7Civpm4flgq0gPiBrb3lvdVwgOwor6Kaq5pyoID4gb3lhZ2lcIDsKK+mbkeS9nCA+IHpvdXNhXCA7CivnhKHlvaIgPiBtdWtlaVwgOwor6ZmQ5bqmID4gZ2VuZG9cIDsKK+eFmeWhtSA+IGVuamluXCA7CivloYHmiZMgPiBydWlkYVwgOwor5pWF5Lq6ID4ga29qaW5cIDsKK+Wcn+iUtSA+IGRvem91XCA7Civopb/mraYgPiBzZWlidVwgOwor54KO54KOID4gZW4nJ2VuXCA7Civopovmp5ggPiBtaXlvdVwgOwor5pWF5Li7ID4ga29zaHVcIDsKK+ilv+aspyA+IHNlaW91XCA7CivopofmqKkgPiBoYWtlblwgOwor6Zmi5a6jID4gaW56ZW5cIDsKK+eyl+esqCA+IHNvaG9uXCA7CivntKHmqZ8gPiBib3VraVwgOwor5Zuz6KejID4genVrYWlcIDsKK+WcqOiNtyA+IHphaWthXCA7Civpl5jmsJcgPiB0b3VraVwgOwor5Zyw6ImyID4gamlpcm9cIDsKK+eEoeW4vSA+IG11Ym91XCA7CivnhKHluLggPiBtdWpvdVwgOwor5Zyf6JGsID4gZG9zb3VcIDsKK+aUv+S6iyA+IHNlaWppXCA7Civmjqrnva4gPiBzb2NoaVwgOwor5aKT5ZywID4gYm9jaGlcIDsKK+e3j+WToSA+IHNvdWluXCA7Civpmo/llpwgPiB6dWlraVwgOwor5Zyo6IuxID4gemFpZWlcIDsKK+eznOeImyA+IGJpcmFuXCA7Civnt4/lkowgPiBzb3V3YVwgOwor6ZuF5Lq6ID4gZ2FqaW5cIDsKK+WgtOaJgCA+IGJhc2hvXCA7CivooZfot68gPiBnYWlyb1wgOwor6ZmE5bivID4gZnV0YWlcIDsKK+Whl+W3pSA+IHRva291XCA7Civlm57orbAgPiBrYWlnaVwgOwor6ZqP5ZOhID4genVpaW5cIDsKK+WgheaenCA+IGtlbmthXCA7CivoqLHlkKYgPiBreW9oaVwgOwor5ouX6Z+zID4geW91b25cIDsKK+ioseWPryA+IGt5b2thXCA7CivopovmoIQgPiBtaWJhZVwgOwor57W55biDID4ga2VucHVcIDsKK+maiuWToSA+IHRhaWluXCA7CivpmbblnJ8gPiB0b3Vkb1wgOwor5o+Q56S6ID4gdGVpamlcIDsKK+aMiemFjSA+IGFuYmFpXCA7CivnhKHlsL0gPiBtdWppblwgOwor6Zmk5aSWID4gam9nYWlcIDsKK+Wil+WToSA+IHpvdWluXCA7CivntbXlt7sgPiBlbWFraVwgOwor6KGM6LevID4ga291cm9cIDsKK+aMv+ipsSA+IHNvdXdhXCA7CivopovmnKwgPiBtaWhvblwgOwor6Zmi5aSWID4gaW5nYWlcIDsKK+e3j+WLmSA+IHNvdW11XCA7Civpl4rmrakgPiBrYXBwb1wgOwor5Zmq6Z+zID4gc291b25cIDsKK+WfuuadvyA+IGtpYmFuXCA7CivpmbblmaggPiB0b3VraVwgOwor57aZ5aSrID4ga2VpZnVcIDsKK+eEoeWusyA+IG11Z2FpXCA7CivpmqDlhYMgPiBpbmdlblwgOwor54Sh5a6YID4gbXVrYW5cIDsKK+iog+WgsSA+IGZ1aG91XCA7Civln7rmnKwgPiBraWhvblwgOwor57KX56ClID4gYXJhdG9cIDsKK+WgseaBqSA+IGhvdW9uXCA7CivpmrfkuIsgPiByZWlrYVwgOwor57Sg5p2QID4gc296YWlcIDsKK+mZjeWrgSA+IGtvdWthXCA7Civnt4/lh7ogPiBzb3VkZVwgOwor6KaL5pigID4gbWliYWVcIDsKK+e2veWQjSA+IGFkYW5hXCA7CivlnJLoirggPiBlbmdlaVwgOwor54Gv54GrID4gdG91a2FcIDsKK+ino+WtlyA+IGthaWppXCA7CivmjZXomZwgPiBob3J5b1wgOwor6Zqj5L+dID4gcmlucG9cIDsKK+Wik+WPgiA+IGJvc2FuXCA7Civngavngb0gPiBrYXNhaVwgOwor6KiI5ZmoID4ga2Vpa2lcIDsKK+e1hOaIkCA+IHNvc2VpXCA7Civoo7jnnLwgPiByYWdhblwgOwor57KX55u4ID4gc29zb3VcIDsKK+aLvumBuiA+IHNodXVpXCA7CivntbblrrYgPiB6ZWtrZVwgOwor6KiY5ZCNID4ga2ltZWlcIDsKK+iho+ijsyA+IGlzaG91XCA7CivlopfliqAgPiB6b3VrYVwgOwor6KiY5Y+3ID4ga2lnb3VcIDsKK+a/vue0mSA+IHJvc2hpXCA7CivpmLvlrrMgPiBzb2dhaVwgOwor5Zyw57iBID4gY2hpZW5cIDsKK+eEoeWniyA+IG11c2hpXCA7Civlm5rooaMgPiBzaHV1aVwgOwor6KGj6KOFID4gaXNob3VcIDsKK+aRqeaQjSA+IG1hc29uXCA7Civln7rmlbAgPiBraXN1dVwgOwor6KGb6KaWID4gZWlzaGlcIDsKK+WbveiPryA+IGtva2thXCA7CivloZTlqYYgPiB0b3ViYVwgOwor57Sg5pWwID4gc29zdXVcIDsKK+WdkOemhSA+IHphemVuXCA7CivlopPliY0gPiBib3plblwgOwor6Zqg5LqhID4gb25ib3VcIDsKK+eEoeWjsCA+IG11c2VpXCA7CivlnLDntIsgPiBqaW1vblwgOwor5o6y56S6ID4ga2VpamlcIDsKK+a8lOmhjCA+IGVuZGFpXCA7CivntI3mnJ8gPiBub3VraVwgOwor5pKS5biDID4gc2FucHVcIDsKK+WgheaMgSA+IGtlbmppXCA7Civmk6zli6IgPiBnaXNlaVwgOwor5Zu96IqxID4ga29ra2FcIDsKK+WcsOexsyA+IGppbWFpXCA7CivopqrlvqEgPiBveWFnb1wgOwor54K55pKtID4gdGVucGFcIDsKK+a/g+iJtiA+IG5vdWVuXCA7CivoqLTkurogPiBzb25pblwgOwor6KGX6KGiID4gZ2Fpa3VcIDsKK+mWi+a8lCA+IGthaWVuXCA7CivoqI7ljKogPiB0b3VoaVwgOwor57WM5bqmID4ga2VpZG9cIDsKK+aTrOWItiA+IGdpc2VpXCA7CivntIvml6UgPiBtb25iaVwgOwor5o6I57K+ID4ganVzZWlcIDsKK+mZpOWQjSA+IGpvbWVpXCA7Civnga/msrkgPiB0b3V5dVwgOwor6Zmk5Y+3ID4gam9nb3VcIDsKK+mZtuWGtiA+IHRvdXlhXCA7Civlm7Doi6YgPiBrb25rdVwgOwor5oqr6ZyyID4gaGlyb3VcIDsKK+mZpOWOuyA+IGpva3lvXCA7CivpmaLlj7cgPiBpbmdvdVwgOwor6ZqK5LyNID4gdGFpZ29cIDsKK+e0heaXlyA+IGtvdWtpXCA7Civpmo7kuIsgPiBrYWlrYVwgOwor5oqV6aObID4gdG91aGlcIDsKK+ifu+mFuCA+IGdpc2FuXCA7CivntKDmh5AgPiBzb2thaVwgOwor5Zyw56efID4gY2hpc29cIDsKK+e0sOW+riA+IHNhaWJpXCA7CivoqJvkvJ0gPiBrYWRlblwgOwor5oud6L6eID4gaGFpamlcIDsKK+Wcn+euoSA+IGRva2FuXCA7CivlnLDnpYcgPiBjaGlnaVwgOwor5aGK5ZyfID4ga2FpZG9cIDsKK+ijj+ebriA+IHVyYW1lXCA7CivmjIHoq5YgPiBqaXJvblwgOwor6KaW5bqmID4gc2hpZG9cIDsKK+eCjuaakSA+IGVuc2hvXCA7Civnsr7msrkgPiBzZWl5dVwgOwor57KX54WuID4gYXJhbmlcIDsKK+mXmOaKgCA+IHRvdWdpXCA7CivmjL/oirEgPiBzb3VrYVwgOwor5pOs5Lq6ID4gZ2lqaW5cIDsKK+eyvuawlyA+IHNlaWtpXCA7Civoppblt64gPiBzaGlzYVwgOwor54Sh5ZCNID4gbXVtZWlcIDsKK+e0oOaApyA+IHN1am91XCA7CivopqrlrZcgPiBveWFqaVwgOwor6Zi75ZaqID4gc29zb3VcIDsKK+e0jeaIuCA+IG5hbmRvXCA7CivnhKHlj4wgPiBtdXNvdVwgOwor5aGp5YiGID4gZW5idW5cIDsKK+e0oOW/lyA+IHNvc2hpXCA7CivntLDlt6UgPiBzYWlrdVwgOwor6Zmq5L6NID4gYmFpamlcIDsKK+WgsOWgpCA+IGVudGVpXCA7CivnhKHli6IgPiBidXplaVwgOwor5Z+65bqVID4ga2l0ZWlcIDsKK+aOu+eIrCA+IHNvdWhhXCA7CivlnKfnoJUgPiBhc3NhaVwgOwor5Z+65bm5ID4ga2lrYW5cIDsKK+aPruavqyA+IGtpZ291XCA7CivnhKHlirkgPiBtdWtvdVwgOwor5Zyw55ukID4gamliYW5cIDsKK+Wbsue5niA+IGlueW91XCA7Civmi53os4AgPiBoYWlnYVwgOwor54Gr5qG2ID4gaGlva2VcIDsKK+aOqOeQhiA+IHN1aXJpXCA7CivnspfmvI8gPiBzb3JvdVwgOwor5om26aSKID4gZnV5b3VcIDsKK+aNlee4hCA+IGhvam91XCA7Civntbblj6UgPiB6ZWtrdVwgOwor5Zub6IKhID4gc2hpa29cIDsKK+ewoee0oCA+IGthbnNvXCA7CivmirzpgIEgPiBvdXNvdVwgOwor5Zyf56CCID4gZG9zaGFcIDsKK+eEoeWGoCA+IG11a2FuXCA7Civngrnlt64gPiB0ZW5zYVwgOwor5aCh5aGBID4gaG9ydWlcIDsKK+aTjeS9nCA+IHNvdXNhXCA7CivntJTluqYgPiBqdW5kb1wgOwor6KiA5LiLID4gZ2Vua2FcIDsKK+imj+WumiA+IGtpdGVpXCA7Civngavmm5wgPiBrYXlvdVwgOwor5ruL6aSKID4gaml5b3VcIDsKK+aPm+awlyA+IGthbmtpXCA7CivplovmnrYgPiBrYWlrYVwgOwor5Zyn55eVID4gYWtrb25cIDsKK+aJuemboyA+IGhpbmFuXCA7Civoo73msrkgPiBzZWl5dVwgOwor5Zmo6LKhID4ga2l6YWlcIDsKK+mWkeaahyA+IGthbmthXCA7CivngavmmJ8gPiBrYXNlaVwgOwor6Zmb5LiLID4gaGVpa2FcIDsKK+inkuWKmyA+IHN1bW91XCA7Civnsr7mn7sgPiBzZWlzYVwgOwor5Zyw55CGID4gY2hpcmlcIDsKK+WgtOWRsyA+IGJhYWppXCA7CivnrpforZwgPiBzYW5wdVwgOwor54OI5ammID4gcmVwcHVcIDsKK+WhkeWDjyA+IHNvem91XCA7CivmjojnlKMgPiBqdXNhblwgOwor54Sh5L2TID4gbXV0YWlcIDsKK+ihjOiEmiA+IGFuZ3lhXCA7CivnhKHkvY8gPiBtdWp1dVwgOwor5o+65puzID4geW91ZWlcIDsKK+e0oOWtkCA+IHNvc2hpXCA7CivntYzllrYgPiBrZWllaVwgOwor5Zyf55SoID4gZG95b3VcIDsKK+eEoeS7oyA+IG11ZGFpXCA7CivooJHonrogPiBzYXphZVwgOwor6J666Yi/ID4gcmFkZW5cIDsKK+eCueWtlyA+IHRlbmppXCA7CivnhKHkurogPiBtdW5pblwgOwor5Zyf55O2ID4gZG9iaW5cIDsKK+WgguWlpSA+IGRvdW91XCA7CivpmLLlhbcgPiBib3VndVwgOwor6ZmN5LiLID4ga291a2FcIDsKK+e0uuWcsCA+IGtvbmppXCA7Civplbfmn4QgPiBuYWdhZVwgOwor6KWf5bqmID4ga2luZG9cIDsKK+eEoeS4iiA+IG11am91XCA7CivooaPns6cgPiBpcnlvdVwgOwor57W25L2zID4gemVra2FcIDsKK+e0oOWnkyA+IHN1am91XCA7CivpmLLlgpkgPiBib3ViaVwgOwor5Zuz56S6ID4genVzaGlcIDsKK+e1kOWPpSA+IGtla2t1XCA7Civln47lupwgPiBqb3VmdVwgOwor6J6N6ZmkID4geXV1am9cIDsKK+aJo+mZpCA+IGtvdWpvXCA7CivpmL/kuoAgPiBva2FtZVwgOwor5omT6aCGID4gZGFqdW5cIDsKK+aKseiyoCA+IGhvdWZ1XCA7CivmjpLnhZkgPiBoYWllblwgOwor5ryi6KqeID4ga2FuZ29cIDsKK+aRguWutiA+IHNla2tlXCA7CivloIXlm7ogPiBrZW5nb1wgOwor54Gr5omLID4ga2FzaHVcIDsKK+aJi+mghiA+IHRlanVuXCA7CivmiZPpm7sgPiBkYWRlblwgOwor562U6L6eID4gdG91amlcIDsKK+aPkOahiCA+IHRlaWFuXCA7Civln7rlnLAgPiBraWNoaVwgOwor5Zyn54K5ID4gYXR0ZW5cIDsKK+mWi+aJiSA+IGthaWhpXCA7Civoo5zmraMgPiBob3NlaVwgOwor5o+h5panID4gYWt1ZnVcIDsKK+aKq+ismyA+IGhpa291XCA7CivmiZPplosgPiBkYWthaVwgOwor6KaB5ZuzID4geW91enVcIDsKK+ilv+WcnyA+IHNlaWRvXCA7CivopoHlm6AgPiB5b3VpblwgOwor56u26aasID4ga2VpYmFcIDsKK+eyl+acqCA+IGFyYWtpXCA7CivmvI/oqbEgPiByb3V3YVwgOwor5o6h5rK5ID4gc2FpeXVcIDsKK+iiq+eBvSA+IGhpc2FpXCA7CivloLTku6MgPiBiYWRhaVwgOwor57KX5pq0ID4gc29ib3VcIDsKK+WcsOa4qSA+IGNoaW9uXCA7CivmjqrmraIgPiBzb3NoaVwgOwor6KOP5q+bID4gdXJha2VcIDsKK+mWgOaJiSA+IG1vbnBpXCA7CivploDmiLggPiBtb25rb1wgOwor57OW5bqmID4gdG91ZG9cIDsKK+mWi+aCnyA+IGthaWdvXCA7CivntJnlmaggPiBzaGlraVwgOwor5oqr6KaLID4gaGlrZW5cIDsKK+aRuOWGmSA+IG1vc2hhXCA7CivooajnnYAgPiB1d2FnaVwgOwor54Kt5ZujID4gdGFkb25cIDsKK+WbnuebriA+IGthaW1lXCA7CivmipforbAgPiBrb3VnaVwgOwor5ruF6YeRID4gbWVra2lcIDsKK+eyl+aUviA+IHNvaG91XCA7CivopoHlk6EgPiB5b3VpblwgOwor5omT6Y21ID4gZGFrZW5cIDsKK+e0r+WKoCA+IHJ1aWthXCA7CivonZ/pm4YgPiBpc2h1dVwgOwor54KK5ammID4gc3VpZnVcIDsKK+eCueWRvCA+IHRlbmtvXCA7CivmjpLmsJcgPiBoYWlraVwgOwor5pG45YCjID4gbW9ob3VcIDsKK+imj+WItiA+IGtpc2VpXCA7Civngo7lpKkgPiBlbnRlblwgOwor5Zug55SxID4gaW4nJ3l1XCA7CivlnLDmrakgPiBjaGlob1wgOwor5omL6YygID4gdGVqb3VcIDsKK+a/tuatqSA+IGthcHBvXCA7CivlnLDmrYwgPiBqaXV0YVwgOwor6ZaA5b6SID4gbW9udG9cIDsKK+WWtumkiiA+IGVpeW91XCA7CivngorlpKsgPiBzdWlmdVwgOwor5oy/55S7ID4gc291Z2FcIDsKK+Wbs+eJiCA+IHp1aGFuXCA7Civnsr7luqYgPiBzZWlkb1wgOwor5o+05byVID4gZW4nJ2luXCA7Civmu57osqggPiB0YWlrYVwgOwor6KaB5YuZID4geW91bXVcIDsKK+eBq+WxsSA+IGthemFuXCA7Civns7vlm7MgPiBrZWl6dVwgOwor5Zyn5q27ID4gYXNzaGlcIDsKK+aJi+mHkSA+IHRla2luXCA7CivlnJ/msJEgPiBkb21pblwgOwor54K55YmNID4gdGVtYWVcIDsKK+aOouafuyA+IHRhbnNhXCA7CivntJTljJYgPiBqdW5rYVwgOwor57SN5Y+XID4gbm91anVcIDsKK+aJi+mFjSA+IHRlaGFpXCA7Civmi4noh7QgPiByYWNoaVwgOwor6KGb55SfID4gZWlzZWlcIDsKK+ijnOaVtCA+IGhvc2VpXCA7CivopoHlhbcgPiB5b3VndVwgOwor6KOc5pWwID4gaG9zdXVcIDsKK+eCreWMliA+IHRhbmthXCA7CivmjojmqKkgPiBqdWtlblwgOwor57SU5YipID4ganVucmlcIDsKK+ethuiomCA+IGhpa2tpXCA7CivntLDkuosgPiBzYWlqaVwgOwor5oyH56S6ID4gc2hpamlcIDsKK+eyl+aCqiA+IHNvYWt1XCA7CivntKDkvZMgPiBzb3RhaVwgOwor5ryU6Iq4ID4gZW5nZWlcIDsKK+eznuWcnyA+IGZ1bmRvXCA7CivplbflsYUgPiBuYWdhaVwgOwor5ryr5721ID4gbWFuYmFcIDsKK+e0meS+oSA+IHNoaWthXCA7Civnq6/piq0gPiBoYXNlblwgOwor5ZiJ6KiAID4ga2FnZW5cIDsKK+eymOW6piA+IG5lbmRvXCA7CivnrqrnrKUgPiB0YW5zdVwgOwor57SA5YWDID4ga2lnZW5cIDsKK+Wbs+azlSA+IHp1aG91XCA7CivmvaTnm64gPiB1cnVtZVwgOwor5Zu95q2MID4ga29ra2FcIDsKK+mWi+WfuiA+IGthaWtpXCA7CivmuZbpnaIgPiBrb21lblwgOwor5o+a5bGLID4gYWdleWFcIDsKK+Wcn+abnCA+IGRveW91XCA7CivntI3ku5ggPiBub3VmdVwgOwor6KOP5omLID4gdXJhdGVcIDsKK+ien+ibviA+IG1laWdhXCA7CivlnKfmlL8gPiBhc3NlaVwgOwor6ZaL5ZySID4ga2FpZW5cIDsKK+Wcn+aYnyA+IGRvc2VpXCA7Civngo7lhYkgPiBlbmtvdVwgOwor5oq857W1ID4gb3NoaWVcIDsKK+a5r+mKrSA+IHl1c2VuXCA7CivplrLlhbUgPiBlcHBlaVwgOwor6KOc5bymID4gaG9nZW5cIDsKK+ezuOS+oSA+IHNoaWthXCA7CivooYznga8gPiBhbmRvblwgOwor5omL6KmxID4gc2h1d2FcIDsKK+Wcp+aOkiA+IGFwcGFpXCA7CivmiYvoqJggPiBzaHVraVwgOwor5Za26YCgID4gZWl6b3VcIDsKK+WcsOaJgCA+IGppc2hvXCA7Civns5bljJYgPiB0b3VrYVwgOwor5Za26L6yID4gZWlub3VcIDsKK+ijnOW3uyA+IGhva2FuXCA7Civoo5XluqYgPiB5dXVkb1wgOwor57OK5Y+jID4ga29rb3VcIDsKK+aKgOiKuCA+IGdpZ2VpXCA7CivplrnkurogPiBlbmppblwgOwor5o2c5p+7ID4gc291c2FcIDsKK+aJi+ijvSA+IHRlc2VpXCA7Civln47kuIsgPiBqb3VrYVwgOwor54Gr5YuiID4ga2FzZWlcIDsKK+aLneeciSA+IGhhaWJpXCA7CivmjL3mrYwgPiBiYW5rYVwgOwor5o6I5oiSID4ganVrYWlcIDsKK+eyl+WkpyA+IHNvZGFpXCA7CivmiKbosrsgPiBzZW5waVwgOwor5Zu65pyJID4ga295dXVcIDsKK+a4qemhlCA+IG9uZ2FuXCA7CivngorkuosgPiBzdWlqaVwgOwor54KO5LiKID4gZW5qb3VcIDsKK+aNu+aMqyA+IG5lbnphXCA7Civoo73loakgPiBzZWllblwgOwor54Gr5YiRID4ga2FrZWlcIDsKK+a8lOeulyA+IGVuemFuXCA7CivmuKnpoIYgPiBvbmp1blwgOwor6ZaL5YyWID4ga2Fpa2FcIDsKK+ijnOWwjiA+IGhvZG91XCA7Civlm6Dmpa0gPiBpbmdvdVwgOwor5oqA6IO9ID4gZ2lub3VcIDsKK+eqgemjmyA+IHRvcHBpXCA7Civlm73ml5cgPiBrb2traVwgOwor5Zuz5pu4ID4gdG9zaG9cIDsKK+eBq+WFiSA+IGtha291XCA7Civoo5zlrowgPiBob2thblwgOwor57Ch5piTID4ga2FuJydpXCA7CivooZLmsJcgPiBnZW5raVwgOwor57Gz5a+/ID4gYmVpanVcIDsKK+aKlee2siA+IHRvYW1pXCA7Civoo73lm7MgPiBzZWl6dVwgOwor57KY5ZyfID4gbmVuZG9cIDsKK+aQjeS/nSA+IHNvbnBvXCA7Civoo4/lsYsgPiB1cmF5YVwgOwor5o6q5a6aID4gc290ZWlcIDsKK+aJtuiCsiA+IGZ1aWt1XCA7CivplqPkuIsgPiBrYWtrYVwgOwor5oim6KiYID4gc2Vua2lcIDsKK+aJi+iWhCA+IHRldXN1XCA7CivnrqHnkIYgPiBrYW5yaVwgOwor5Zyo5bqrID4gemFpa29cIDsKK+aNp+aMgSA+IGhvdWppXCA7Civnq6XoqbEgPiBkb3V3YVwgOwor6J2m6JuEID4gc2hha29cIDsKK+aPtOWFtSA+IGVucGVpXCA7CivlnZHlpKsgPiBrb3VmdVwgOwor6KKr5by+ID4gaGlkYW5cIDsKK+ihgOawlyA+IGtla2tpXCA7CivlmInogrQgPiBrYWtvdVwgOwor5Zmo55SoID4ga2l5b3VcIDsKK+mWk+S7oyA+IG1hZGFpXCA7CivlnKflt7sgPiBha2thblwgOwor5oiS6K23ID4ga2FpZ29cIDsKK+eBr+S4iyA+IHRvdWthXCA7CivmvKvnlLsgPiBtYW5nYVwgOwor5o+a5Y+lID4gYWdla3VcIDsKK+WWmui1tyA+IGthbmtpXCA7Civoo5zloasgPiBob3RlblwgOwor6KGj5pyNID4gaWZ1a3VcIDsKK+eyl+WTgSA+IHNvaGluXCA7CivlnJ/lt6UgPiBkb2tvdVwgOwor5riF6Z+zID4gc2Vpb25cIDsKK+WboOaVsCA+IGluc3V1XCA7CivmiJDoqp4gPiBzZWlnb1wgOwor5Zub5pelID4geW9ra2FcIDsKK+aJi+iNkiA+IHRlYXJhXCA7CivnsbPloakgPiBiZWllblwgOwor5o6p5aOVID4gZW5nb3VcIDsKK+WYhue+jiA+IHRhbmJpXCA7CivonZfomasgPiBiYXR0YVwgOwor6KGj5paZID4gaXJ5b3VcIDsKK+aNleaJiyA+IGhvc2h1XCA7CivlnKjlrrYgPiB6YWlrZVwgOwor6KOc5ZueID4gaG9rYWlcIDsKK+ihm+aYnyA+IGVpc2VpXCA7CivploDkuIsgPiBtb25rYVwgOwor6KGM5p2OID4ga291cmlcIDsKK+WZtOeBqyA+IGZ1bmthXCA7CivnspfliKkgPiBhcmFyaVwgOwor6KKr5a6zID4gaGlnYWlcIDsKK+evgOawlyA+IHNla2tpXCA7Civoo4/lnLAgPiB1cmFqaVwgOwor6Y2N6YeRID4gbWVra2lcIDsKK+WYiee0jSA+IGthbm91XCA7Civmt6vpoqggPiBpbnB1dVwgOwor5omT6ICFID4gZGFzaGFcIDsKK+WcsOWjsCA+IGppZ29lXCA7CivonL/onJIgPiBlbicnZW5cIDsKK+a3u+mZhCA+IHRlbnB1XCA7Civlm7rlvaIgPiBrb2tlaVwgOwor5oqY55uuID4gb3JpbWVcIDsKK+WbveW6qyA+IGtva2tvXCA7Civmv4PluqYgPiBub3Vkb1wgOwor562G56aNID4gaGlra2FcIDsKK+icu+ibiSA+IHRvbmJvXCA7CivooYzmlrkgPiB5dWt1ZVwgOwor6KGN5paHID4gZW5idW5cIDsKK+ijuOWDjyA+IHJhem91XCA7Civlm5vmiYsgPiBzaGlkZVwgOwor5Zuz5b2iID4genVrZWlcIDsKK+WeguS4iyA+IHN1aWthXCA7CivonILotbcgPiBob3VraVwgOwor77yw77yjID4gcMSrc2jEq1wgOwor5omT57eaID4gZGFzZW5cIDsKK+WcsOWbsyA+IGNoaXp1XCA7CivooajmhI8gPiBoeW91aVwgOwor5oqA56CUID4gZ2lrZW5cIDsKK+Wcn+WjjCA+IGRvam91XCA7CivmiYvnuZQgPiB0ZW9yaVwgOwor6KO45L2TID4gcmF0YWlcIDsKK+Wbs+W3pSA+IHp1a291XCA7CivooZvmiYAgPiBlaXNob1wgOwor6KGw5b6uID4gc3VpYmlcIDsKK+ijj+WQjSA+IHVyYW5hXCA7CivlnJ/loYogPiBkb2thaVwgOwor5omL57e0ID4gdGVyZW5cIDsKK+Wcn+WhgSA+IGRvcnVpXCA7CivlnJ/loYAgPiBkb2JlaVwgOwor5ZSQ6Z+zID4gdG91b25cIDsKK+WboOW+qiA+IGluanVuXCA7CivnsL/lpJYgPiBib2dhaVwgOwor5Zue5b+MID4ga2Fpa2lcIDsKK+aOoeWQpiA+IHNhaWhpXCA7CivmioDnm6MgPiBnaWthblwgOwor5Zu95a62ID4ga29ra2FcIDsKK+aIjuiRtSA+IGp1dWtpXCA7CivlmbTmsJcgPiBmdW5raVwgOwor56m66Ly4ID4ga3V1eXVcIDsKK+Wcn+WcsCA+IHRvY2hpXCA7Civoo5zlhYUgPiBob2p1dVwgOwor5Z2R5YSSID4ga291anVcIDsKK+WbuuWumiA+IGtvdGVpXCA7CivlnLDllIQgPiBqaXV0YVwgOwor5Zu65a6IID4ga29zaHVcIDsKK+aMmeaOqiA+IGt5b3NvXCA7CivmiZPnrpcgPiBkYXNhblwgOwor5Z2Q5YOPID4gemF6b3VcIDsKK+Wcn+WaoiA+IGRvbm91XCA7Civoo4Hlj68gPiBzYWlrYVwgOwor5Zyw5ZGzID4gY2hpbWlcIDsKK+eqgei1tyA+IHRva2tpXCA7CivllrboiI4gPiBlaXNoYVwgOwor5Zue5biwID4ga2Fpa2lcIDsKK+a8uOasoSA+IHplbmppXCA7CivllqvojLYgPiBraXNzYVwgOwor56m66LevID4ga3V1cm9cIDsKK+WbveWogSA+IGtva3VpXCA7CivmvZzmmYIgPiBzZW5qaVwgOwor5Zyw5Yy6ID4gY2hpa3VcIDsKK+aMh+aPriA+IHNoaWtpXCA7CivmjInmjpIgPiBhbmJhaVwgOwor6KOc5Lu7ID4gaG9uaW5cIDsKK+a8q+atqSA+IG1hbnBvXCA7CivnsbPkvqEgPiBiZWlrYVwgOwor6KGG5oSPID4gc2h1dWlcIDsKK+a8geeBqyA+IGd5b2thXCA7Civmh4foqbEgPiBrb253YVwgOwor56m66LK7ID4ga3V1aGlcIDsKK+icieidoyA+IGZ1eXV1XCA7Civom67oqp4gPiBiYW5nb1wgOwor6KOF5YW3ID4gc291Z3VcIDsKK+aIr+e1tSA+IHphcmVlXCA7CivlnZDkuZcgPiB6YWpvdVwgOwor5Zuj5a2QID4gZGFuZ29cIDsKK+Wcn+WPsCA+IGRvZGFpXCA7Civmtrzpm6ggPiByeW91dVwgOwor6KOF5YKZID4gc291YmlcIDsKK+WboOWtkCA+IGluc2hpXCA7CivmjInmiYsgPiBhbnNodVwgOwor5Z2K5Li7ID4gYm91enVcIDsKK+ihhuW+kiA+IHNodXRvXCA7CivmvI/mtKkgPiByb3VlaVwgOwor5Zyn5Yi2ID4gYXNzZWlcIDsKK+Wbm+WtoyA+IHNoaWtpXCA7CivllrbnuZUgPiBlaXplblwgOwor5Zmo5qKwID4ga2lrYWlcIDsKK+enu+mnkCA+IGljaHV1XCA7CivmjIHmiJIgPiBqaWthaVwgOwor6JmO6a2aID4gb2tvemVcIDsKK+eul+acqCA+IHNhbmdpXCA7CivlnLDkvqEgPiBjaGlrYVwgOwor5omL55u4ID4gdGVzb3VcIDsKK+WZqOadkCA+IGtpemFpXCA7CivpkZHmn7sgPiBrYW5zYVwgOwor5Zyn5YCSID4gYXR0b3VcIDsKK+a1t+mwuyA+IGFuYWdvXCA7Civmi4XmnrYgPiB0YW5rYVwgOwor6Yut6YuSID4gZWlob3VcIDsKK+aOkuS7liA+IGhhaXRhXCA7CivmhoLouqsgPiB1a2ltaVwgOwor5om554K5ID4gaGl0ZW5cIDsKK+Wcn+WBtiA+IGRvZ3V1XCA7CivooYzlrq4gPiBhbmd1dVwgOwor5Zyw5LiLID4gY2hpa2FcIDsKK+euh+adoSA+IGtham91XCA7CivlnJ/kvq8gPiBkb2tvdVwgOwor5oim56aNID4gc2Vua2FcIDsKK+etiea4qSA+IHRvdW9uXCA7Civmv4PljJYgPiBub3VrYVwgOwor5ZOA6aGYID4gYWlnYW5cIDsKK+aMv+WbsyA+IHNvdXp1XCA7CivlnJ/kurogPiBkb2ppblwgOwor5r+A5YyWID4gZ2Vra2FcIDsKK+aEm+mkkCA+IGFpc2FuXCA7Civlkr3poK0gPiBpbnRvdVwgOwor566H5pWwID4ga29zdXVcIDsKK+WWhOe+jiA+IHplbmJpXCA7CivmipXmqZ8gPiB0b3VraVwgOwor6JuH6KGMID4gZGFrb3VcIDsKK+aKgOazlSA+IGdpaG91XCA7CivooaHlmaggPiBrb3VraVwgOwor5rWF6buEID4gYXNhZ2lcIDsKK+aFtuizgCA+IGtlaWdhXCA7Civmi6zlvKcgPiBrYWtrb1wgOwor562J5q+UID4gdG91aGlcIDsKK+aKm+ajhCA+IGhvdWtpXCA7CivooZflm7MgPiBnYWl6dVwgOwor5ZyS5LiBID4gZW50ZWlcIDsKK+aLh+aMhyA+IGJvc2hpXCA7CivmipXmo4QgPiB0b3VraVwgOwor5omT54K5ID4gZGF0ZW5cIDsKK+a1t+mcpyA+IGthaW11XCA7CivmvI/mlpcgPiByb3V0b1wgOwor56+G5a2XID4gdGVuamlcIDsKK+a4oeiIuSA+IHRvc2VuXCA7CivmuKHoiKogPiB0b2tvdVwgOwor5rue5qynID4gdGFpb3VcIDsKK+a3q+ihjCA+IGlua291XCA7Civnr4DlraMgPiBzZWtraVwgOwor566H5omAID4ga2FzaG9cIDsKK+WbuuS9kyA+IGtvdGFpXCA7CivnrZTmoYggPiB0b3VhblwgOwor5ouY5byVID4ga291aW5cIDsKK+erpeeUuyA+IGRvdWdhXCA7CivmuKnnv5IgPiBzYXJhaVwgOwor56+A5ammID4gc2VwcHVcIDsKK+aLkOW8lSA+IGthaWluXCA7Civllp3noLQgPiBrYXBwYVwgOwor6KGM5ZOhID4ga291aW5cIDsKK+ihl+WMuiA+IGdhaWt1XCA7Civpu4Tpr5sgPiBraWRhaVwgOwor5ZKM6aKoID4gd2FmdXVcIDsKK+ieuuaXiyA+IHJhc2VuXCA7CivnqJ/orbAgPiByaW5naVwgOwor5oaC6JmeID4geXV1Z3VcIDsKK+aJi+a3qyA+IHNodWluXCA7Civpi5LotbcgPiBob3VraVwgOwor5omT5rOVID4gZGFob3VcIDsKK+a3q+iVqSA+IGludG91XCA7Civnp5jpjbUgPiBoaWtlblwgOwor5om25qGRID4gZnVzb3VcIDsKK+iZmui+niA+IGt5b2ppXCA7CivooZvlhbUgPiBlaWhlaVwgOwor5rim57eaID4ga2FzZW5cIDsKK+equuefpSA+IGtpY2hpXCA7CivmhJrpiI0gPiBndWRvblwgOwor6KGM5YuZID4ga291bXVcIDsKK+m8oOi8qSA+IHNvaGFpXCA7CivmjJnlj6UgPiBhZ2VrdVwgOwor5Zue5LuYID4ga2FpZnVcIDsKK+evhOWbsiA+IGhhbicnaVwgOwor5rim57SLID4ga2Ftb25cIDsKK+aJjeawlyA+IHNhaWtpXCA7Civmtbfph4wgPiBrYWlyaVwgOwor6byg6LmKID4gc29rZWlcIDsKK+aIpueBqyA+IHNlbmthXCA7Civmiormj6EgPiBoYWFrdVwgOwor5oKy6bO0ID4gaGltZWlcIDsKK+a4oeexsyA+IHRvYmVpXCA7Civmi7Plm7ogPiBnZW5rb1wgOwor5oqV5omTID4gdG91ZGFcIDsKK+aMh+WRvCA+IHNoaWtvXCA7CivpupLpup8gPiBraXJpblwgOwor5ou35ZmoID4gZ291a2lcIDsKK+WZqOWumCA+IGtpa2FuXCA7CivpjpbnirYgPiBzYWpvdVwgOwor5rqi5rC0ID4gaXNzdWlcIDsKK+aFiOiokyA+IGppa3VuXCA7CivmuZbnlZQgPiBrb2hhblwgOwor5rW36YGLID4ga2FpdW5cIDsKK+aGguiLpiA+IHl1dWt1XCA7Civll5/mrY4gPiBzYXRhblwgOwor5rW36L66ID4gdW1pYmVcIDsKK+aEm+i7iiA+IGFpc2hhXCA7CivmiormiYsgPiBoYXNodVwgOwor5oyB5Y+CID4gamlzYW5cIDsKK+aJk+ajkiA+IGRhYm91XCA7Civmua/nhY4gPiB5dXNlblwgOwor5rWu6YGKID4gZnV5dXVcIDsKK+a8ouWtlyA+IGthbmppXCA7CivmipLmg4UgPiBqb2pvdVwgOwor56+A5Y+lID4gc2Vra3VcIDsKK+enu+iqvyA+IGljaG91XCA7CivmjInliIYgPiBhbmJ1blwgOwor5oKq6a2UID4gYWt1bWFcIDsKK+aKgOaJiyA+IGdpc2h1XCA7Civmua/ngYwgPiB5dWthblwgOwor5omL5qG2ID4gdGVva2VcIDsKK+eosuiNtyA+IGluYXJpXCA7CivmupDmsI8gPiBnZW5qaVwgOwor5oqV5b2xID4gdG91ZWlcIDsKK+a1t+i3ryA+IGthaXJvXCA7CivmibbmjIEgPiBmdWNoaVwgOwor5rWm6L66ID4gdXJhYmVcIDsKK+WSjOmHkSA+IHdha2luXCA7Civpup3pppkgPiBqYWtvdVwgOwor6YiN6bq7ID4gZG9ubWFcIDsKK+WVk+ekuiA+IGtlaWppXCA7CivmgqrppqwgPiBha3VtZVwgOwor5omL5pysID4gdGVob25cIDsKK+a4m+ejqCA+IGdlbm1hXCA7CivmgrLpoZggPiBoaWdhblwgOwor56qB56C0ID4gdG9wcGFcIDsKK+a1t+ixmiA+IGlydWthXCA7Civmh5DnlpEgPiBrYWlnaVwgOwor6JuH566hID4gamFrYW5cIDsKK+WTgOipqSA+IGFpc2hpXCA7Civmva7kvY0gPiBjaG91aVwgOwor5ZOA6KmeID4gYWlzaGlcIDsKK+aJk+aVsCA+IGRhc3V1XCA7CivmhJroq5YgPiBndXJvblwgOwor5oim5qmfID4gc2Vua2lcIDsKK+aJgOacnyA+IHNob2tpXCA7CivmvIHlrrYgPiBneW9rYVwgOwor5omL5panID4gdGVvbm9cIDsKK+a8lOWljyA+IGVuc291XCA7Civpu5npgY4gPiBtb2trYVwgOwor5oud5Y+XID4gaGFpanVcIDsKK+a1quiyuyA+IHJvdWhpXCA7CivmiYvmlbAgPiB0ZXN1dVwgOwor5oi45p2/ID4gdG9pdGFcIDsKK+a8ouWcnyA+IGthbmRvXCA7CivmvJTlo4cgPiBlbmRhblwgOwor5oSa6KiIID4gZ3VrZWlcIDsKK+a5r+ayuyA+IHRvdWppXCA7CivpiZvpjJggPiBlbnN1aVwgOwor56+A5L6bID4gc2Vra3VcIDsKK+eri+a0viA+IHJpcHBhXCA7Civms6XpsIwgPiBkb2pvdVwgOwor562J5beuID4gdG91c2FcIDsKK+euoeWMuiA+IGthbmt1XCA7CivmhJroposgPiBndWtlblwgOwor5oqA5birID4gZ2lzaGlcIDsKK+aDuei1tyA+IGpha2tpXCA7Civmi5LlkKYgPiBreW9oaVwgOwor6Ymb6YmxID4gZW5rb3VcIDsKK+WRs+mGgiA+IG1pcmluXCA7Civlkb3pgYsgPiBtZWl1blwgOwor5oqA5benID4gZ2lrb3VcIDsKK+aKgOW3pSA+IGdpa291XCA7CivpvLvojLggPiBiaWpvdVwgOwor6Yys56OoID4gcmVubWFcIDsKK+enmOioiCA+IGhpa2VpXCA7Civnp4HosrsgPiBzaGloaVwgOwor5oSP6KizID4gaXlha3VcIDsKK+iYh+mAoyA+IHNvcmVuXCA7Civlk7rogrIgPiBob2lrdVwgOwor5rS+6YGjID4gaGFrZW5cIDsKK+aDs+i1tyA+IHNvdWtpXCA7CivpioXosqggPiBkb3VrYVwgOwor5oKN6aasID4ga2FuYmFcIDsKK+aIr+abuCA+IGdpc2hvXCA7CivpipjoqJggPiBtZWlraVwgOwor5oSa6KGMID4gZ3Vrb3VcIDsKK+epuueWjiA+IGt1dXNvXCA7Civmta7oqIAgPiBmdWdlblwgOwor5ryB5aSrID4gZ3lvZnVcIDsKK+aLneWFtyA+IGhhaWd1XCA7CivmiLjmlbAgPiBrb3N1dVwgOwor5rOi6auYID4gaGFrb3VcIDsKK+aIpuaenCA+IHNlbmthXCA7CivpioDosqggPiBnaW5rYVwgOwor56uv5pysID4gaGFob25cIDsKK+m6u+mFlCA+IG1hc3VpXCA7CivmtIvplpMgPiB5b3VtYVwgOwor6YmE6Y6WID4gdGVzc2FcIDsKK+engeitsCA+IHNoaWdpXCA7CivnpoHpjK4gPiBraW5rb1wgOwor5rWB6LuiID4gcnV0ZW5cIDsKK+a8ouWSjCA+IGthbndhXCA7CivmiYvmioAgPiBzaHVnaVwgOwor6by76IWUID4gYmlrb3VcIDsKK+a1tOihoyA+IHlva3VpXCA7CivmvIHloLQgPiBneW9iYVwgOwor5rim54q2ID4ga2Fqb3VcIDsKK+aEj+ihqCA+IGloeW91XCA7CivmiK/mlocgPiBnaWJ1blwgOwor5ray6IKlID4gZWtpaGlcIDsKK+aKgOWumCA+IGdpa2FuXCA7Civnp4Hoqp4gPiBzaGlnb1wgOwor5oim5pmCID4gc2VuamlcIDsKK+a3q+eloCA+IGluc2hpXCA7CivnqbrnkIYgPiBrdXVyaVwgOwor5omA5oyBID4gc2hvamlcIDsKK+aHkOeCiSA+IGthaXJvXCA7CivmuoDmnJ8gPiBtYW5raVwgOwor5Za25p6XID4gZWlyaW5cIDsKK+a5luawtCA+IGtvc3VpXCA7CivlkozorpogPiB3YXNhblwgOwor56eB6KiYID4gc2hpa2lcIDsKK+aIpuaXlyA+IHNlbmtpXCA7Civnq6/mlbAgPiBoYXN1dVwgOwor5ZiY5a2XID4gdXNvamlcIDsKK+aIkOahiCA+IHNlaWFuXCA7CivnpYjpoZggPiBraWdhblwgOwor5rip54K5ID4gb250ZW5cIDsKK+azoumgrSA+IGhhdG91XCA7CivmiJDmnpwgPiBzZWlrYVwgOwor5oSb6JS1ID4gYWl6b3VcIDsKK+m6pumFkiA+IGJpaXJ1XCA7CivlkI3ppqwgPiBtZWliYVwgOwor5ZKM6KiTID4gd2FrdW5cIDsKK+aIuOaIuCA+IGtva291XCA7Civlkozop6MgPiB3YWthaVwgOwor5rOi6Z2iID4gaGFtZW5cIDsKK+euoeS4iyA+IGthbmthXCA7CivmiYvlvZMgPiB0ZWF0ZVwgOwor5oK86L6eID4gdG91amlcIDsKK+enmOiUtSA+IGhpem91XCA7CivnqLLnqYIgPiBpbmFob1wgOwor6by757eSID4gaGFuYW9cIDsKK+WSjOijvSA+IHdhc2VpXCA7Civpi6TnsL4gPiBqb3JlblwgOwor56iu56iuID4gc2h1anVcIDsKK+a4uOazsyA+IHl1dWVpXCA7Civlkozoo4UgPiB3YXNvdVwgOwor5ouF5L+dID4gdGFucG9cIDsKK+WSjOijgSA+IHdhc2FpXCA7CivmhoLnm64gPiB1a2ltZVwgOwor6YeO6baPID4geWFrZWlcIDsKK+a4qea5ryA+IG9udG91XCA7CivlkIzpn7MgPiBkb3VvblwgOwor5oau54S2ID4gYnV6ZW5cIDsKK+aCqumBiyA+IGFrdXVuXCA7Civmh7jmnrYgPiBrZW5nYVwgOwor5oKj6YOoID4ga2FuYnVcIDsKK+a8geWMuiA+IGd5b2t1XCA7Civmi4nkuIEgPiByYXRlblwgOwor6Jas6ZG1ID4geWFrYW5cIDsKK+mKmOiPkyA+IG1laWthXCA7CivonJzmn5EgPiBtaWthblwgOwor6buS6KGjID4ga29rdWVcIDsKK+a4qeaziSA+IG9uc2VuXCA7CivmgqDpgaAgPiB5dXVlblwgOwor5oim5oSPID4gc2VuJydpXCA7Civmgp/pgZMgPiBnb2RvdVwgOwor5ZGz6KaLID4gYWppbWlcIDsKK+a4oea1tyA+IHRva2FpXCA7CivllrbmiYAgPiBlaXNob1wgOwor5rip5rC0ID4gb25zdWlcIDsKK+m8u+erryA+IGJpdGFuXCA7CivmuKHmtIsgPiB0b3lvdVwgOwor5oSb6IKyID4gYWlpa3VcIDsKK+a7heWkmiA+IG1ldHRhXCA7Civlj7fpn7MgPiBnb3VvblwgOwor5rer54ylID4gaW53YWlcIDsKK+WWhOaenCA+IHplbmthXCA7Civmg4XoqrwgPiBqb3VnaVwgOwor5ryB5YW3ID4gZ3lvZ3VcIDsKK+aCqui3ryA+IGFrdXJvXCA7CivmtYXonIogPiBhc2FyaVwgOwor5oOF6KmxID4gam91d2FcIDsKK+eorueariA+IHNodWhpXCA7CivmhJrogIUgPiBndXNoYVwgOwor5oSa6ICDID4gZ3Vrb3VcIDsKK+aIpuW+jCA+IHNlbmdvXCA7CivpiZvoo70gPiBlbnNlaVwgOwor56aA6K2wID4gcmluZ2lcIDsKK+aJjeWqmyA+IHNhaWVuXCA7CivmiYflrZAgPiBzZW5zdVwgOwor5oWw55WZID4gaXJ5dXVcIDsKK+enu+exjSA+IGlzZWtpXCA7Civph47ppqwgPiBub3VtYVwgOwor56uv5bqnID4gdGFuemFcIDsKK+emheipsSA+IHplbndhXCA7CivmiJHmhaIgPiBnYW1hblwgOwor5Zac5o2oID4ga2lzaGFcIDsKK+WPpOmiqCA+IGtvZnV1XCA7CivnqLLnlLAgPiBpbmFkYVwgOwor5Y+X6aiTID4ganVrZW5cIDsKK+epuuawlyA+IGt1dWtpXCA7CivmiJHmg4UgPiBnYWpvdVwgOwor5omN5aWzID4gc2Fpam9cIDsKK+epuuavjSA+IGt1dWJvXCA7CivllL7mtrIgPiBkYWVraVwgOwor5rqA5bqnID4gbWFuemFcIDsKK+WWtuW6rSA+IGVpdGVpXCA7CivnpoHoo6EgPiBraW5yaVwgOwor56aB6KOPID4ga2lucmlcIDsKK+WRs+iVviA+IG1pcmFpXCA7CivomZrnqbogPiBrb2t1dVwgOwor5oKy6KazID4gaGlrYW5cIDsKK+a3tea6kCA+IGVuZ2VuXCA7CivlkozoiLkgPiB3YXNlblwgOwor5rSL6KqeID4geW91Z29cIDsKK+aFiOecvCA+IGppZ2VuXCA7Civllrblt6MgPiBlaXNvdVwgOwor56S+6YGLID4gc2hhdW5cIDsKK+aJueWIpCA+IGhpaGFuXCA7CivmiYvlnqIgPiB0ZWFrYVwgOwor6J6N5ZKMID4geXV1d2FcIDsKK+aCquioiCA+IGFra2VpXCA7Civmibnlh4YgPiBoaWp1blwgOwor6byT56ulID4ga29kb3VcIDsKK+WQj+mBkyA+IHJvZG91XCA7CivmipXkuI4gPiB0b3V5b1wgOwor5oqV5LiLID4gdG91a2FcIDsKK+aHuOaDsyA+IGtlc291XCA7Civlj5fpm6MgPiBqdW5hblwgOwor5oi45aSWID4ga29nYWlcIDsKK+aHuuaClCA+IHphbmdlXCA7Civpi7PniakgPiBpbW9ub1wgOwor5omN5ZmoID4gc2Fpa2lcIDsKK+erquWtkCA+IGp1c2hpXCA7CivnrKblkIggPiBmdWdvdVwgOwor5re75rC0ID4gc291enVcIDsKK+espuWPtyA+IGZ1Z291XCA7CivmioDlgJIgPiBnaXRvdVwgOwor5rip5pqWID4gb25kYW5cIDsKK+etieS+oSA+IHRvdWthXCA7CivmuKHmnaUgPiB0b3JhaVwgOwor5ZCN6L6eID4gbWVpamlcIDsKK+aBpemDqCA+IGNoaWJ1XCA7Civnq6XlrZAgPiBkb3VqaVwgOwor5oe45b+1ID4ga2VuZW5cIDsKK+aCquihjCA+IGFra291XCA7CivphbjpvLsgPiBzYW5iaVwgOwor5reh5rmWID4gdGFua29cIDsKK+m7hOiKsSA+IGtvdWthXCA7CivmiJDlsLEgPiBqb3VqdVwgOwor56ef56iOID4gc296ZWlcIDsKK+WWhOaEjyA+IHplbicnaVwgOwor5Zef5ZiGID4gc2F0YW5cIDsKK+a4healmiA+IHNlaXNvXCA7CivpvKDnm5cgPiBzb3RvdVwgOwor5rOw6KqeID4gdGFpZ29cIDsKK+aEm+ekviA+IGFpc2hhXCA7Civmsr/pgZMgPiBlbmRvdVwgOwor5Zaq5a62ID4gc291a2FcIDsKK+WPpOmKrSA+IGtvc2VuXCA7CivnpL7osrsgPiBzaGFoaVwgOwor56ul5aWzID4gZG91am9cIDsKK+WQpuiqjSA+IGhpbmluXCA7CivmurbljJYgPiB5b3VrYVwgOwor5rmW5bqVID4ga290ZWlcIDsKK+a3i+a8kyA+IHJpbnJpXCA7CivmiYDlk6EgPiBzaG9pblwgOwor5ZiJ5L6LID4ga2FyZWlcIDsKK+a4heaghCA+IHNlaWVpXCA7CivpvKDnlqsgPiBzb2VraVwgOwor5ZaE5b6MID4gemVuZ29cIDsKK+eliOiriyA+IGtpc2VpXCA7Civms5XosqggPiBob3VrYVwgOwor56WI6KqTID4ga2lzZWlcIDsKK+a1gee9qiA+IHJ1emFpXCA7Civnq6/lnZAgPiB0YW56YVwgOwor5Zea5ZK9ID4gb2V0c3VcIDsKK+aBqei1piA+IG9uc2hhXCA7CivlkozntJkgPiB3YXNoaVwgOwor5omL5YuiID4gdGV6ZWlcIDsKK+a4m+aRqSA+IGdlbm1hXCA7Civlj7Dovp4gPiBkYWlqaVwgOwor5reY5rGwID4gdG91dGFcIDsKK+aBqeiznCA+IG9uc2hpXCA7CivmtJLokL0gPiBzaGFyZVwgOwor5rW356CCID4ga2Fpc2FcIDsKK+aJi+WJjSA+IHRlbWFlXCA7Civlj7DovKogPiBkYWl3YVwgOwor5rmW5bK4ID4ga29nYW5cIDsKK+a0tee+jiA+IGp1bmJpXCA7Civlj6TpgZMgPiBrb2RvdVwgOwor56ys5LqUID4gZGFpZ29cIDsKK+esrOS6jCA+IGRhaW5pXCA7CivnpLroq4cgPiBqaWRhblwgOwor6YeO6YOOID4geWFyb3VcIDsKK+mHjumBuCA+IHlhc2VuXCA7Civms5Xoqp4gPiBob3Vnb1wgOwor5ZCI6K2wID4gZ291Z2lcIDsKK+azleipsSA+IGhvdXdhXCA7CivmsZfppqwgPiBrYW5iYVwgOwor5oeH5oSPID4ga29uJydpXCA7Civmh4rmgqkgPiBvdW5vdVwgOwor5omT5YCSID4gZGF0b3VcIDsKK+WQjeiqiSA+IG1laXlvXCA7CivmhJrnl7QgPiBndWNoaVwgOwor5Za25ZujID4gZWlkYW5cIDsKK+awtOm2jyA+IGt1aW5hXCA7Civlj4npioMgPiBzYWp1dVwgOwor5rip5oOFID4gb25qb3VcIDsKK+enu+eJkiA+IGljaG91XCA7Civnq4vlpI8gPiByaWtrYVwgOwor5ZSQ5qqcID4gdG91aGlcIDsKK+aDhee+qSA+IGpvdWdpXCA7CivpjKbml5cgPiBraW5raVwgOwor5oSb55SoID4gYWl5b3VcIDsKK+azleimjyA+IGhvdWtpXCA7Civmh4jmgKAgPiBnZXRhaVwgOwor56ef55WMID4gc29rYWlcIDsKK+aEmueUnyA+IGd1c2VpXCA7Civph4jov6YgPiBzaGFrYVwgOwor5rmv5Z6iID4geXVha2FcIDsKK+aBi+i3ryA+IGtvaWppXCA7CivmtL7nsbMgPiBoYWJlaVwgOwor5oiQ5ZugID4gc2VpaW5cIDsKK+WOpumWgCA+IGthbW9uXCA7Civms5XooqsgPiBoYXBwaVwgOwor5rSL6IieID4geW91YnVcIDsKK+iZjueLvCA+IGtvcm91XCA7Civlj6Totr4gPiBrb3NoaVwgOwor6JeN6ImyID4gYWlpcm9cIDsKK+err+WNiCA+IHRhbmdvXCA7CivomZrnhKEgPiBreW9tdVwgOwor5omL5LujID4gdGVkYWlcIDsKK+aEm+eOqSA+IGFpZ2FuXCA7Civlj5fouqsgPiB1a2VtaVwgOwor5oOo56aNID4gc2Fua2FcIDsKK+a4oeW+oSA+IHRvZ3lvXCA7CivmsLTprZQgPiBzdWltYVwgOwor6YeO6LajID4geWFzaHVcIDsKK+WPpOizoiA+IGtva2VuXCA7CivmiKbli5kgPiBzZW5tdVwgOwor5rWu55SfID4gZnVzZWlcIDsKK+W/q+mfsyA+IGthaW9uXCA7CivllqflmKkgPiBrZW5rYVwgOwor56ia5rCXID4gY2hpa2lcIDsKK+a4qeW4ryA+IG9udGFpXCA7CivmiYDkvZwgPiBzaG9zYVwgOwor5Y+k6LGqID4ga29nb3VcIDsKK+mHkeiyqCA+IGtpbmthXCA7CivmhJvniqwgPiBhaWtlblwgOwor5rW35426ID4gcmFra29cIDsKK+aIkOWToSA+IHNlaWluXCA7CivmupblgpkgPiBqdW5iaVwgOwor5oOj56S+ID4gc291amFcIDsKK+ejr+i+uiA+IGlzb2JlXCA7CivpiZvnrqEgPiBlbmthblwgOwor6by75rGBID4gYmlqdXVcIDsKK+a1t+eLuCA+IGthaXJpXCA7Civmg7DnnKAgPiBkYW1pblwgOwor5oi/5LqLID4gYm91amlcIDsKK+WPmeiznCA+IGpvc2hpXCA7CivmiJDlkKYgPiBzZWloaVwgOwor5Y+X6LSIID4ganV6b3VcIDsKK+aCque9tSA+IGFrdWJhXCA7CivmiJDlj6UgPiBzZWlrdVwgOwor5omA5LiOID4gc2hveW9cIDsKK+aCo+iAhSA+IGthbmphXCA7Civlj6Toq7ogPiBrb2dlblwgOwor5Y+v6KaWID4ga2FzaGlcIDsKK+WPpeiqrSA+IGt1dG91XCA7Civpu4Tnpo0gPiBrb3VrYVwgOwor56iy5pyoID4gaW5hZ2lcIDsKK+aIpuWCmSA+IHNlbmJpXCA7Civlj6Poqp4gPiBrb3Vnb1wgOwor5Y+k6KmpID4ga29zaGlcIDsKK+aIuOS4uyA+IGtvc2h1XCA7Civph4zorKEgPiByaXlvdVwgOwor5Y+k6KiTID4ga29rdW5cIDsKK+epuuW3oyA+IGFraXN1XCA7Civlj6ToqIAgPiBrb2dlblwgOwor5oKq57iBID4gYWt1ZW5cIDsKK+a4qeWtmCA+IG9uem9uXCA7Civlj5forJsgPiBqdWtvdVwgOwor5Y2w6Z2iID4gaW5tZW5cIDsKK+axvei7iiA+IGtpc2hhXCA7Civlj6HopqcgPiBlaXJhblwgOwor6buE56CCID4ga291c2FcIDsKK+epjuaJjSA+IGVpc2FpXCA7Civph4zoqIAgPiByaWdlblwgOwor5Y2Y6aiOID4gdGFua2lcIDsKK+mGjemGkCA+IGRhaWdvXCA7CivmuIjluqYgPiBzYWlkb1wgOwor5Y2x6ZujID4ga2luYW5cIDsKK+azs+iAhSA+IGVpc2hhXCA7CivlkI3oj5MgPiBtZWlrYVwgOwor5Y+C6LOAID4gc2FuZ2FcIDsKK+WNsemZuiA+IGtpa2VuXCA7CivllrblgIkgPiBlaXNvdVwgOwor5Zaq5YW3ID4gc291Z3VcIDsKK+W/hemgiCA+IGhpc3N1XCA7CivmhoLmh7wgPiB5dXVrdVwgOwor5Y+N6KqeID4gaGFuZ29cIDsKK+m8u+aguSA+IGJpa29uXCA7Civlj4voqrwgPiB5dXVnaVwgOwor5ZCN6IqxID4gbWVpa2FcIDsKK+axuui1tyA+IGtla2tpXCA7CivpurvnnaEgPiBtYXN1aVwgOwor5Y+N6Ki0ID4gaGFuc29cIDsKK+mLreaVjyA+IGVpYmluXCA7CivomIfnlJ8gPiBzb3NlaVwgOwor5oSb5rayID4gYWlla2lcIDsKK+WPguitsCA+IHNhbmdpXCA7CivlkI3oiJcgPiBtZWlob1wgOwor5rS+55SfID4gaGFzZWlcIDsKK+enmOa5ryA+IGhpdG91XCA7Civpu4TnlrggPiBvdWRhblwgOwor5rCX6aKoID4ga2lmdXVcIDsKK+a1t+a3tSA+IGthaWVuXCA7CivnqbTlrZAgPiBhbmFnb1wgOwor5ZaH5Y+tID4gcmFwcGFcIDsKK+mNvOWMuyA+IGhhcmlpXCA7CivmgKroqJ0gPiBrZWdlblwgOwor6Jas572QID4geWFrYW5cIDsKK+iWrOe8tiA+IHlha2FuXCA7CivmgJ3orbAgPiBzaGlnaVwgOwor56mP5b2TID4gb250b3VcIDsKK+mHjuibriA+IHlhYmFuXCA7CivljbDpkZEgPiBpbmthblwgOwor5oCo6KiAID4gZW5nZW5cIDsKK+WNiOmkkCA+IGdvc2FuXCA7Civlvq7poqggPiBiaWZ1dVwgOwor5riv5ZuzID4ga291enVcIDsKK+axmui+sSA+IG9qb2t1XCA7Civlk4DmrZMgPiBhaWthblwgOwor5rWu5ri4ID4gZnV5dXVcIDsKK+iWhOiNtyA+IGhha2thXCA7CivpioPngasgPiBqdXVrYVwgOwor5oSa5rCRID4gZ3VtaW5cIDsKK+enmOazlSA+IGhpaG91XCA7CivlkYjnpLogPiB0ZWlqaVwgOwor5Zaq5Li7ID4gbW9zaHVcIDsKK+WNl+mYvyA+IG5hbicnYVwgOwor5rWu5rWqID4gZnVyb3VcIDsKK+m7hOePrSA+IG91aGFuXCA7CivmuL7lkI0gPiBhZGFuYVwgOwor5rW35rCXID4ga2Fpa2lcIDsKK+W+oemjryA+IGdvaGFuXCA7CivmsJfpmo8gPiBraXp1aVwgOwor5ZCN576pID4gbWVpZ2lcIDsKK+azoue3miA+IGhhc2VuXCA7CivmspnompUgPiBnb2thaVwgOwor5ZCM576pID4gZG91Z2lcIDsKK+WNkemZiyA+IGhpcm91XCA7CivmsJHpnIAgPiBtaW5qdVwgOwor56iA5pu4ID4ga2lzaG9cIDsKK+iZmuaghCA+IGt5b2VpXCA7CivmtoXmp4MgPiBuZWhhblwgOwor5re75a2XID4gc29lamlcIDsKK+WQiOe+vSA+IGthcHBhXCA7Civlk6HmlbAgPiBpbnp1dVwgOwor5rWu5rCXID4gdXdha2lcIDsKK+azoue0iyA+IGhhbW9uXCA7CivnpoXnlLsgPiB6ZW5nYVwgOwor56m05aC0ID4gYW5hYmFcIDsKK+eikemKmCA+IGhpbWVpXCA7CivlkozmvKIgPiB3YWthblwgOwor5oeQ5Y+kID4ga2Fpa29cIDsKK+aEj+assiA+IGl5b2t1XCA7Civmg4XnkIYgPiBqb3VyaVwgOwor6Yut5oSfID4gZWlrYW5cIDsKK+mHjuiPnCA+IHlhc2FpXCA7Civlj6TojLYgPiBrb2NoYVwgOwor56We56WHID4gamluZ2lcIDsKK+a1hOeBqyA+IGpvdWthXCA7CivnpZ7npL4gPiBqaW5qYVwgOwor6buE54eQID4gb3VyaW5cIDsKK+a1heeArCA+IGFzYXNlXCA7CivmsrnohIIgPiB5dXNoaVwgOwor5b6h6ZujID4gZ29uYW5cIDsKK+mJm+eJiCA+IGVuYmFuXCA7Civph43ojbcgPiBqdXVrYVwgOwor6Ju55YyWID4geW91a2FcIDsKK+mHjuiNiSA+IHlhc291XCA7CivlvqHpmbAgPiBva2FnZVwgOwor5Y+v6IO9ID4ga2Fub3VcIDsKK+WOn+iqniA+IGdlbmdvXCA7CivompXluqcgPiBzYW56YVwgOwor5rC06YGLID4gc3VpdW5cIDsKK+a4qeWOmiA+IG9ua291XCA7CivmuZbkuIogPiBrb2pvdVwgOwor5Y+z57+8ID4gdXlva3VcIDsKK+mKgOazoiA+IGdpbnBhXCA7CivljproqrwgPiBrb3VnaVwgOwor5b6M6aGnID4ga291a29cIDsKK+mKgOaysyA+IGdpbmdhXCA7CivmhZXmg4UgPiBib2pvdVwgOwor5ZKM5rSLID4gd2F5b3VcIDsKK+WVluWRtSA+IHRhbmthXCA7CivlkI3nsL8gPiBtZWlib1wgOwor5Yy76ZW3ID4gaWNob3VcIDsKK+WMuumWkyA+IGt1a2FuXCA7CivmtIvnlLsgPiB5b3VnYVwgOwor5reL5be0ID4gcmlucGFcIDsKK+WWhOS6iyA+IHplbmppXCA7CivmuKbli5UgPiBrYWRvdVwgOwor6Jas56aNID4geWFra2FcIDsKK+aFh+aHgyA+IGluZ2luXCA7Civlv7XoqqYgPiBuZW5qdVwgOwor5oSb5pu4ID4gYWlzaG9cIDsKK+eliOeltyA+IGtpdG91XCA7CivljJXpppYgPiBoaXNodVwgOwor5rK/57eaID4gZW5zZW5cIDsKK+mHkeiCpSA+IGtpbnBpXCA7Civlj6TogZYgPiBrb3NlaVwgOwor5oOF54SUID4gam91ZW5cIDsKK+WOn+iiqyA+IGdlbnBpXCA7CivolZfojYkgPiByb3NvdVwgOwor5rer5aWUID4gaW5wb25cIDsKK+WPo+iAsyA+IGtvdWppXCA7Civlj6TogIEgPiBrb3JvdVwgOwor5rCX6YeNID4ga2lvbW9cIDsKK+WNl+mDvSA+IG5hbnRvXCA7CivljZfpg6ggPiBuYW5idVwgOwor6Ymx5rK5ID4ga291eXVcIDsKK+aDheeCjiA+IGpvdWVuXCA7Civmt6vlo7IgPiBpbmJhaVwgOwor56eY5pysID4gaGlob25cIDsKK+aEmuaYpyA+IGd1bWFpXCA7CivmtYHmtaogPiBydXJvdVwgOwor5oOF54GrID4gam91a2FcIDsKK+awtOi3ryA+IHN1aXJvXCA7CivmhYjmgbUgPiBqaWtlaVwgOwor56eY5pu4ID4gaGlzaG9cIDsKK+awl+mFjSA+IGtlaGFpXCA7CivolqznoJQgPiB5YWdlblwgOwor5Y+X6IOOID4ganV0YWlcIDsKK+W+rumGuiA+IGJpa3VuXCA7CivljYrph4wgPiBoYW5yaVwgOwor5rOV56eRID4gaG91a2FcIDsKK+ayuee0mSA+IHl1c2hpXCA7CivnqLLlrZAgPiBpbmFnb1wgOwor5rCX6YGTID4ga2lkb3VcIDsKK+avlOmhniA+IGhpcnVpXCA7CivmtYHmsJEgPiBydW1pblwgOwor5Y2D6YeMID4gc2VucmlcIDsKK+enmOaWuSA+IGhpaG91XCA7CivlkIznpZYgPiBkb3Vzb1wgOwor5oWL5bqmID4gdGFpZG9cIDsKK+mJhOeBqyA+IHRla2thXCA7CivmsrPns7sgPiBrYWtlaVwgOwor56eB5qGIID4gc2hpYW5cIDsKK+emjea6kCA+IGthZ2VuXCA7CivnoLTpoZQgPiBoYWdhblwgOwor5Y2R6L+RID4gaGlraW5cIDsKK+m7hOaysyA+IGtvdWdhXCA7CivlvqHph5wgPiBva2FtYVwgOwor5b6h6YeRID4gb2thbmVcIDsKK+a1puabsiA+IHVyYXdhXCA7CivmtLvmsJcgPiBrYWtraVwgOwor5Y2K6YCUID4gaGFudG9cIDsKK+eoi+W6piA+IHRlaWRvXCA7Civph43nuIEgPiBqdXVlblwgOwor5Y+k57SZID4ga29zaGlcIDsKK+mDqOmmliA+IGJ1c2h1XCA7Civpg73pm7sgPiB0b2RlblwgOwor6byT5omLID4ga29zaHVcIDsKK+mKg+aetiA+IGp1dWthXCA7Civmt7flkowgPiBrb253YVwgOwor5rG96ImHID4ga2l0ZWlcIDsKK+axveiIuSA+IGtpc2VuXCA7Civmr5TpmqMgPiBoaXJpblwgOwor5oSa5oyZID4gZ3VreW9cIDsKK+WPi+e+qSA+IHl1dWdpXCA7Civlj6TnsbMgPiBrb21haVwgOwor5ZOA5oarID4gYWliaW5cIDsKK+a4m+S+oSA+IGdlbmthXCA7Civlk4DmhpAgPiBhaXJlblwgOwor5b2p6ZuyID4gc2FpdW5cIDsKK+ays+erpSA+IGthcHBhXCA7Civmt7Xlj6IgPiBlbnNvdVwgOwor6YOo6aGeID4gYnVydWlcIDsKK+WTgOaEnyA+IGFpa2FuXCA7Civms5XnmocgPiBob3VvdVwgOwor5ZOA5oSNID4gYWliaW5cIDsKK+iUrOiPnCA+IHNvc2FpXCA7Civno6jogJcgPiBtYW1vdVwgOwor5rWu5o+aID4gZnV5b3VcIDsKK+WSjOacrCA+IHdhaG9uXCA7CivmtrLlrokgPiBla2lhblwgOwor56m65L2QID4ga3V1c2FcIDsKK+a4oeS4liA+IHRvc2VpXCA7Civlj5fntI0gPiBqdW5vdVwgOwor5ZSQ5ZyfID4gdG91ZG9cIDsKK+a3u+WKoCA+IHRlbmthXCA7Civlk4Dmg4UgPiBhaWpvdVwgOwor5ZOA5oK8ID4gYWl0b3VcIDsKK+WSjOabuCA+IHdhc2hvXCA7CivmhJvmhpAgPiBhaXJlblwgOwor56C06ZaAID4gaGFtb25cIDsKK+WPl+eyviA+IGp1c2VpXCA7CivmgqrmvKIgPiBha2thblwgOwor5Y2R6LOkID4gaGlzZW5cIDsKK+aGguWTrSA+IHVraW5lXCA7CivljZHos44gPiBoaXNlblwgOwor5Y+X57KJID4ganVmdW5cIDsKK+mDqOmdoiA+IGJ1bWVuXCA7CivpvLvlrZQgPiBiaWtvdVwgOwor56eR5oyZID4ga2FreW9cIDsKK+efrum2jyA+IGNoYWJvXCA7Civmr6vph5AgPiBnb3VyaVwgOwor5oSb5oOzID4gYWlzb3VcIDsKK+aDheatjCA+IGpvdWthXCA7Civpu4TmpYogPiB0c3VnZVwgOwor5oSb5oOFID4gYWlqb3VcIDsKK+mLs+WeiyA+IGlnYXRhXCA7Civlvq7os6QgPiBiaXNlblwgOwor5b6u6LOOID4gYmlzZW5cIDsKK+W+jOmDqCA+IGtvdWJ1XCA7CivljbDooYwgPiBpbmtvdVwgOwor5ZCN55S7ID4gbWVpZ2FcIDsKK+m8oOW3oyA+IHNvc291XCA7Civpg6jpmoogPiBidXRhaVwgOwor5ZKM5paHID4gd2FidW5cIDsKK+axvee9kCA+IGtpa2FuXCA7Civmsb3nvLYgPiBraWthblwgOwor5oSP5oW+ID4gaXlva3VcIDsKK+WNmOiqniA+IHRhbmdvXCA7CivoloTnnYAgPiB1c3VnaVwgOwor5oOF5qmfID4gam91a2lcIDsKK+azoueKtiA+IGhham91XCA7CivnpLrnj74gPiBqaWdlblwgOwor6buE5qGDID4gb3V0b3VcIDsKK+WPpOeloCA+IGtvc2hpXCA7CivoloTnm64gPiB1c3VtZVwgOwor5ZGR5rCXID4gbm9ua2lcIDsKK+W+kui8qSA+IHRvaGFpXCA7Civms5XnkIYgPiBob3VyaVwgOwor6YeM56iLID4gcml0ZWlcIDsKK+WNmOiomCA+IHRhbmtpXCA7CivnoazosqggPiBrb3VrYVwgOwor6YeO56a9ID4geWFraW5cIDsKK+mHjeenkSA+IGp1dWthXCA7Civpg6jploAgPiBidW1vblwgOwor5b6F6YG/ID4gdGFpaGlcIDsKK+aFiOWnkSA+IGt1d2FpXCA7Civom4fkvZMgPiBqYXRhaVwgOwor5oSf5bqmID4ga2FuZG9cIDsKK+m8juW6pyA+IHRlaXphXCA7Civms5XnjosgPiBob3VvdVwgOwor56i95Y+kID4ga2Vpa29cIDsKK+aEmuW8nyA+IGd1dGVpXCA7CivmhJrlvIQgPiBndXJvdVwgOwor6by75aOwID4gYmlzZWlcIDsKK+iWq+eFmSA+IGt1bmVuXCA7Civlj6PnopEgPiBrb3VoaVwgOwor5b6A6YKEID4gb3VrYW5cIDsKK+ayg+e0oCA+IHlvdXNvXCA7CivlkIjnkIYgPiBnb3VyaVwgOwor5rK755mSID4gY2hpeXVcIDsKK+aCsuatjiA+IGhpdGFuXCA7CivmsZroh60gPiBvc2h1dVwgOwor5Y2R6KiAID4gaGlnZW5cIDsKK+WKoOm9oiA+IGthcmVpXCA7CivlvoHpgJQgPiBzZWl0b1wgOwor6byg5a6zID4gc29nYWlcIDsKK+W8p+mrmCA+IGtva291XCA7CivpiZvmnb8gPiBlbmJhblwgOwor5rCR6KmxID4gbWlud2FcIDsKK+avlOmHjSA+IGhpanV1XCA7CivljZHoposgPiBoaWtlblwgOwor5ZOh5aSWID4gaW5nYWlcIDsKK+W+gOi/lCA+IG91aGVuXCA7Civnpo3moLkgPiBrYWtvblwgOwor6Jma5a2XID4ga3lvamlcIDsKK+a3u+S7mCA+IHRlbnB1XCA7CivmhpHkvp0gPiBoeW91aVwgOwor6YeO56CyID4geWFob3VcIDsKK+WPoeefpSA+IGVpY2hpXCA7CivnqLzli5UgPiBrYWRvdVwgOwor5Y2Y6KGjID4gaGl0b2VcIDsKK+aEieW/qyA+IHl1a2FpXCA7CivnqY/lgaUgPiBvbmtlblwgOwor5Y6f576pID4gZ2VuZ2lcIDsKK+azoueAviA+IGhhcmFuXCA7CivmsrnnlLAgPiB5dWRlblwgOwor5by+6ZuoID4gZGFuJyd1XCA7CivnqY/kvr8gPiBvbmJpblwgOwor5rOi5r+kID4gaGF0b3VcIDsKK+WPsOeUqyA+IHRhaWhvXCA7Civpg73pgpEgPiB0b3l1dVwgOwor5ZKM5oimID4gd2FzZW5cIDsKK+WPr+eUqCA+IGtheW91XCA7CivpubnmuZYgPiBrYW5rb1wgOwor5rKz55WUID4ga2FoYW5cIDsKK+WLh+mjmyA+IHl1dWhpXCA7CivljYroo7ggPiBoYW5yYVwgOwor5b6E6LevID4ga2Vpcm9cIDsKK+W+oeipoCA+IGd5b2VpXCA7Civph43nm64gPiBvbW9tZVwgOwor5Y2K6KKrID4gaGFwcGlcIDsKK+engeaAqCA+IHNoaWVuXCA7CivnoILpmLIgPiBzYWJvdVwgOwor5b6u6KGMID4gYmlrb3VcIDsKK+WRquaWhyA+IGp1bW9uXCA7Civms7Pms5UgPiBlaWhvdVwgOwor5b6h6KanID4gZ29yYW5cIDsKK+eovOWDjSA+IGthZG91XCA7CivlkJDngIkgPiB0b3NoYVwgOwor5rer5LmxID4gaW5yYW5cIDsKK+WPl+ebiiA+IGp1ZWtpXCA7CivnpZ7mraYgPiBqaW5tdVwgOwor5ZCI54K5ID4gZ2F0ZW5cIDsKK+aEm+WtqyA+IGFpc29uXCA7CivmtYXmiYsgPiBhc2FkZVwgOwor5oSb5a2DID4gYWlqb3VcIDsKK+ialeWFtyA+IHNhbmd1XCA7CivpioPlvowgPiBqdXVnb1wgOwor5oSb5ayiID4gYWlqb3VcIDsKK+WOn+e0oCA+IGdlbnNvXCA7CivompXlhZAgPiBzYW5qaVwgOwor5oWI5ZaEID4gaml6ZW5cIDsKK+aDsOaApyA+IGRhc2VpXCA7CivmsrnnirYgPiB5dWpvdVwgOwor6YeO55SfID4geWFzZWlcIDsKK+azoua1qiA+IGhhcm91XCA7Civnp5jlrp0gPiBoaWhvdVwgOwor6JOu6I+vID4gcmVuZ2VcIDsKK+aEm+WpvyA+IGFpc2VpXCA7Civlv43oi6YgPiBuaW5rdVwgOwor6YqD5bqnID4ganV1emFcIDsKK+WOs+enmCA+IGdlbnBpXCA7Civljp/nsL8gPiBnZW5ib1wgOwor5Y6z56eRID4gZ2Vua2FcIDsKK+mLreWFtSA+IGVpaGVpXCA7CivpioDluqcgPiBnaW56YVwgOwor6YOh6YOoID4gZ3VuYnVcIDsKK+m8u+WPoyA+IGJpa291XCA7CivlvozoqJggPiBrb3VraVwgOwor5oSb5aa7ID4gYWlzYWlcIDsKK+aEmuWmuyA+IGd1c2FpXCA7CivmhbbkuosgPiBrZWlqaVwgOwor56iO5ZCPID4gemVpcmlcIDsKK+aEm+WlvSA+IGFpa291XCA7CivlirTpn7MgPiByb3VvblwgOwor5Y+v54eDID4ga2FuZW5cIDsKK+a2suWMliA+IGVraWthXCA7CivlkJ3msJcgPiByaW5raVwgOwor6YSZ6KaLID4gaGlrZW5cIDsKK+WSjOW5syA+IHdhaGVpXCA7Civph47njaMgPiB5YWp1dVwgOwor6bOz6aeVID4gaG91Z2FcIDsKK+mHjueMqiA+IHlhY2hvXCA7CivpgqrpmbogPiBqYWtlblwgOwor5b6S6KGMID4gdG9rb3VcIDsKK+awtOiCpSA+IHN1aWhpXCA7Civlj6TniYggPiBrb2hhblwgOwor5Yuf6YeRID4gYm9raW5cIDsKK+W+jOijlCA+IGtvdWVpXCA7CivlvpDooYwgPiBqb2tvdVwgOwor5ZCM5rS+ID4gZG91aGFcIDsKK+mFuOe0oCA+IHNhbnNvXCA7CivlvoDoqKogPiBvdWhvdVwgOwor6YeO54qsID4geWFrZW5cIDsKK+W7tumrhCA+IGVuenVpXCA7CivnqI7li5kgPiB6ZWltdVwgOwor5oKq5pelID4gYWt1YmlcIDsKK+eomuWFkCA+IGNoaWdvXCA7CivliqDppJAgPiBrYXNhblwgOwor5Yqg6aSKID4ga2F5b3VcIDsKK+atr+mfsyA+IHNoaW9uXCA7CivlvozooZsgPiBrb3VlaVwgOwor6YW157SgID4ga291c29cIDsKK+mDiumHjiA+IGtvdXlhXCA7Civnp4HlrrYgPiBzaGlrYVwgOwor6byO5Z2QID4gdGVpemFcIDsKK+W/jeiAhSA+IG5pbmphXCA7CivljLvolqwgPiBpeWFrdVwgOwor56S+5q2MID4gc2hha2FcIDsKK+m8u+WGhSA+IGJpbmFpXCA7CivlvqHolK0gPiBva2FnZVwgOwor5Yui6YGLID4gc2VpdW5cIDsKK+WQjOawlyA+IGRvdWtpXCA7Civlj6XngrkgPiBrdXRlblwgOwor56C06KuHID4gaGFkYW5cIDsKK+WSjOWwmiA+IG9zaG91XCA7Civlj6Pngo4gPiBrb3VlblwgOwor5b2T6LevID4gdG91cm9cIDsKK+aFiOWFhCA+IGppa2VpXCA7Civmg4XmhJsgPiBqb3VhaVwgOwor5q2j6Z+zID4gc2Vpb25cIDsKK+WQjeatjCA+IG1laWthXCA7Civpg6josqEgPiBidXphaVwgOwor5Y+v5rq2ID4ga2F5b3VcIDsKK+ayv+a1tyA+IGVua2FpXCA7Civoj6/pupcgPiBrYXJlaVwgOwor6YmE5omJID4gdGVwcGlcIDsKK+WSveWWiSA+IGlua291XCA7Civmtbflm7MgPiBrYWl6dVwgOwor5b6h6I+cID4gb2thenVcIDsKK+WNsOe2vyA+IGlubWVuXCA7Civmta7ln44gPiBmdWpvdVwgOwor5oGS5ripID4ga291b25cIDsKK+WPpOa9rSA+IGtvdGFuXCA7CivmsrPmuK8gPiBrYWtvdVwgOwor5rKz5riFID4ga2FzZWlcIDsKK+WNsOe0mSA+IGluc2hpXCA7CivmsJfog54gPiBraWhvdVwgOwor5Y+j5ryUID4ga291ZW5cIDsKK+m8k+WQuSA+IGtvc3VpXCA7CivmhJrllY8gPiBndW1vblwgOwor5rC057SgID4gc3Vpc29cIDsKK+iZjuWPoyA+IGtva291XCA7CivlvqHoi5EgPiBneW9lblwgOwor6JKy6JamID4gaG9zZW5cIDsKK+WTgOWPtyA+IGFpZ291XCA7CivmgrLmhqQgPiBoaWZ1blwgOwor5ZOA5Y+yID4gYWlzaGlcIDsKK+m6u+W5uSA+IG9nYXJhXCA7Civlv5znrZQgPiBvdXRvdVwgOwor5Y2w57GgID4gaW5yb3VcIDsKK+atjOmiqCA+IGthZnV1XCA7CivmrabploAgPiBidW1vblwgOwor5ZKM5aemID4gd2FrYW5cIDsKK+enu+WFpSA+IGlueXV1XCA7CivmgrLmhLQgPiBoaXNvdVwgOwor5q6L6YOoID4gemFuYnVcIDsKK+azsOaWlyA+IHRhaXRvXCA7CivmhJ/lj5cgPiBrYW5qdVwgOwor5q2M6aGMID4ga2FkYWlcIDsKK+aCsuaDqCA+IGhpc2FuXCA7CivnpoHlv4wgPiBraW5raVwgOwor5oSb5ZCfID4gYWlnaW5cIDsKK+a1t+WToSA+IGthaWluXCA7Civpgb/pm6MgPiBoaW5hblwgOwor6YeN5rmvID4gb21veXVcIDsKK+aDo+WrgSA+IHNvdWthXCA7CivpvJPli5UgPiBrb2RvdVwgOwor5qy66aiZID4gZ2loZW5cIDsKK+azleahiCA+IGhvdWFuXCA7CivlvqHohbkgPiBvbmFrYVwgOwor5ZKM5aOwID4gd2FzZWlcIDsKK+ays+awtCA+IGthc3VpXCA7CivlkI3moYggPiBtZWlhblwgOwor5oKy5oGLID4gaGlyZW5cIDsKK+aEn+WMliA+IGthbmthXCA7CivmrabpkZEgPiBidWthblwgOwor6YG66ZuGID4gaXNodXVcIDsKK+WPpeazlSA+IGt1aG91XCA7CivmgKrngasgPiBrYWlrYVwgOwor5b6u572qID4gYml6YWlcIDsKK+WOn+eUuyA+IGdlbmdhXCA7CivljZfnt68gPiBuYW4nJ2lcIDsKK+WPpOazlSA+IGtvaG91XCA7CivomZrlgb0gPiBreW9naVwgOwor5Yuy6KiYID4ga3Vua2lcIDsKK+WJo+msvCA+IGtlbmtpXCA7Civph5Hms6IgPiBraW5wYVwgOwor5rW35Y+CID4gaXJpa29cIDsKK+enmOWPsiA+IGhpc2hpXCA7CivpgqrpgZMgPiBqYWRvdVwgOwor56iA5LujID4ga2lkYWlcIDsKK+WOs+eItiA+IGdlbnB1XCA7CivpibHlpKsgPiBrb3VmdVwgOwor5oi444CFID4ga29rb3VcIDsKK+mKgOWcsCA+IGdpbmppXCA7CivnpL7mmK8gPiBzaGF6ZVwgOwor56OB55WMID4gamlrYWlcIDsKK+a1t+WMuiA+IGthaWt1XCA7CivljbDnqI4gPiBpbnplaVwgOwor5Y+j5rCXID4ga291a2lcIDsKK+WQjOacnyA+IGRvdWtpXCA7Civph43msrkgPiBqdXV5dVwgOwor6YqF5ZmoID4gZG91a2lcIDsKK+efrui6ryA+IHdhaWt1XCA7Civmsq7mraIgPiBzb3NoaVwgOwor5rK55qe9ID4geXVzb3VcIDsKK+efrei6ryA+IHRhbmt1XCA7CivmgYvmrYwgPiByZW5rYVwgOwor56eR5ZCNID4ga2FtZWlcIDsKK+aCquW/gyA+IG9zaGluXCA7CivpioPlmaggPiBqdXVraVwgOwor5byY6YGgID4ga291ZW5cIDsKK+WOn+eQhiA+IGdlbnJpXCA7CivmsZfnlrkgPiBhc2Vtb1wgOwor5rGX55ajID4gYXNlbW9cIDsKK+aCquW+kiA+IGFrdXRvXCA7CivnobzntKAgPiBob3Vzb1wgOwor5Y+X5rSXID4ganVzZW5cIDsKK+eogOS4liA+IGtpc2VpXCA7Civnp4HllrYgPiBzaGllaVwgOwor5oSP5YygID4gaXNob3VcIDsKK+mKgOWZqCA+IGdpbmtpXCA7CivmsLTnpo0gPiBzdWlrYVwgOwor56aN5a6zID4ga2FnYWlcIDsKK+W/q+eZkiA+IGthaXl1XCA7Civph5Hmra8gPiBraW5iYVwgOwor5ZCM5pmCID4gZG91amlcIDsKK+efrei3ryA+IHRhbnJvXCA7CivpgaDpn7MgPiB0b29uZVwgOwor5byV6YCAID4gaW50YWlcIDsKK+mCo+i+uiA+IG5haGVuXCA7Civmg4XlrpwgPiBqb3VnaVwgOwor5oSa5YWEID4gZ3VrZWlcIDsKK+aCn+aApyA+IGdvc2VpXCA7Civlvq7ntLAgPiBiaXNhaVwgOwor5YuV6K2wID4gZG91Z2lcIDsKK+a1ruWLlSA+IGZ1ZG91XCA7Civli4PotbcgPiBib2traVwgOwor5oSa5YOnID4gZ3Vzb3VcIDsKK+W+jOiDpCA+IGtvdWluXCA7CivnpoXlrrYgPiB6ZW5rZVwgOwor6buE5aSJID4gb3VoZW5cIDsKK+WKoOmFjSA+IGthaGFpXCA7Civlk4HkvY0gPiBoaW4nJ2lcIDsKK+W+gOiIqiA+IG91a291XCA7CivpgaDpm7cgPiBlbnJhaVwgOwor5b+154+gID4gbmVuanVcIDsKK+aClOaCnyA+IGthaWdvXCA7CivmsJfnrqEgPiBraWthblwgOwor5qyn6aKoID4gb3VmdXVcIDsKK+a1hOWcnyA+IGpvdWRvXCA7CivlkKvmhI8gPiBnYW4nJ2lcIDsKK+aDheWppiA+IGpvdWZ1XCA7Civph43mqZ8gPiBqdXVraVwgOwor5oKn5benID4gcmlrb3VcIDsKK+awl+etkiA+IGtpdG91XCA7CivmgJLmv6QgPiBkb3RvdVwgOwor5oO55Y+lID4gamFra3VcIDsKK+atqemBkyA+IGhvZG91XCA7Civno6jmt6wgPiBtYXNhaVwgOwor5q+b6ImyID4ga2Vpcm9cIDsKK+awuOecoCA+IGVpbWluXCA7CivlvLfoqLQgPiBnb3Vzb1wgOwor5ZKE5ZefID4gdG9zc2FcIDsKK+engeWNsCA+IHNoaWluXCA7CivmrabpgZMgPiBidWRvdVwgOwor5q2j6YKqID4gc2VpamFcIDsKK+WPjeavlCA+IGhhbnBpXCA7Civlip/pgY4gPiBrb3VrYVwgOwor5Y2w55u4ID4gaW56b3VcIDsKK+WMluiGvyA+IGthbm91XCA7CivmrKHpoZ4gPiBqaXJ1aVwgOwor5Y+N5q2vID4gc29wcGFcIDsKK+WPjeatqSA+IHRhbmJ1XCA7CivliarpmaQgPiBzZW5qb1wgOwor5Y+w5pyoID4gZGFpZ2lcIDsKK+azqOaEjyA+IGNodXVpXCA7Civlj43mrYwgPiBoYW5rYVwgOwor6Ya45q+NID4gam91Ym9cIDsKK+WJjemnhiA+IHplbmt1XCA7CivmrabovrogPiBidWhlblwgOwor5bqn6auYID4gemFrb3VcIDsKK+aDheWkqyA+IGpvdWZ1XCA7CivlkozlkI0gPiB3YW1laVwgOwor5oSb5Lq6ID4gYWlqaW5cIDsKK+WSjOWQiCA+IHdhZ291XCA7CivlirHotbcgPiByZWlraVwgOwor5Y2K56uvID4gaGFucGFcIDsKK+iWhOaXpSA+IHVzdWJpXCA7CivmhJrkurogPiBndWppblwgOwor6buE5ZyfID4ga291ZG9cIDsKK+W/nOeUqCA+IG91eW91XCA7CivpgqbosqggPiBob3VrYVwgOwor56eB5YipID4gc2hpcmlcIDsKK+egtOiIuSA+IGhhc2VuXCA7CivlkKblv5wgPiBpeWFvdVwgOwor5Yy757GNID4gaXNla2lcIDsKK+WMluiCsiA+IGthaWt1XCA7Civnp5jkvJ0gPiBoaWRlblwgOwor5q+N6ImmID4gYm9rYW5cIDsKK+WPl+aknCA+IGp1a2VuXCA7Civmsrnmlq0gPiB5dWRhblwgOwor552h6a2UID4gc3VpbWFcIDsKK+avjeiIuSA+IGJvc2VuXCA7CivnpI7mnZAgPiBzb3phaVwgOwor5buD6ZmkID4gaGFpam9cIDsKK+WPpOadpSA+IGtvcmFpXCA7CivmtbfkuosgPiBrYWlqaVwgOwor5rC455SfID4gZWlzZWlcIDsKK+WKqei1sCA+IGpvc291XCA7CivpgYrpm6IgPiB5dXVyaVwgOwor5oCS5rabID4gZG90b3VcIDsKK+eliOW/tSA+IGtpbmVuXCA7CivmrbPosrsgPiBzYWloaVwgOwor56WW5birID4gc29zaGlcIDsKK+WPpOabuCA+IGtvc2hvXCA7Civlkajlm7IgPiBzaHV1aVwgOwor5rG65rKzID4ga2Vra2FcIDsKK+mBt+mDvSA+IHNlbnRvXCA7Civmsb3msLQgPiBraXN1aVwgOwor5q+U6IKpID4gaGlrZW5cIDsKK+WNsOeSsCA+IGlua2FuXCA7Civph47mnKsgPiBub3p1ZVwgOwor6YeO5pybID4geWFib3VcIDsKK+aEj+S4rSA+IGljaHV1XCA7CivmgqrlqaYgPiBha3VmdVwgOwor5ZG85Y+3ID4ga29nb3VcIDsKK+ato+i3ryA+IHNlaXJvXCA7CivpibHljLogPiBrb3VrdVwgOwor5oKq5amGID4gYWt1YmFcIDsKK+mJseWMliA+IGtvdWthXCA7Civms6LlvaIgPiBoYWtlaVwgOwor6YKm6KqeID4gaG91Z29cIDsKK+WPoeaZuiA+IGVpY2hpXCA7CivlkITmiLggPiBrYWtrb1wgOwor5YmN6Z2eID4gemVucGlcIDsKK+axmua/gSA+IG9kYWt1XCA7Civmr43og44gPiBib3RhaVwgOwor5q2M6YGTID4ga2Fkb3VcIDsKK+eigeebpCA+IGdvYmFuXCA7Civmrbvoqp4gPiBzaGlnb1wgOwor5Y+v5pKTID4ga2F0b3VcIDsKK+aCsuWjriA+IGhpc291XCA7CivlvJjoqpMgPiBndXplaVwgOwor5rWu5LiWID4gdWtpeW9cIDsKK+W6p+mgrSA+IHphdG91XCA7CivlkJDmga8gPiB0b2lraVwgOwor5rWu5LiKID4gZnVqb3VcIDsKK+WPpOaWuSA+IGtvaG91XCA7CivmtYTljJYgPiBqb3VrYVwgOwor5Y+h5peoID4gZWlzaGlcIDsKK+mCquimiyA+IGpha2VuXCA7Civlj6TmlocgPiBrb21vblwgOwor5oKq5aWzID4gYWt1am9cIDsKK+WMlue5iiA+IGthc2VuXCA7CivljYjnoLIgPiBnb2hvdVwgOwor5q+b57mUID4ga2VvcmlcIDsKK+axn+a5liA+IGdvdWtvXCA7CivmganmhJsgPiBvbicnYWlcIDsKK+awl+ebuCA+IGtpc291XCA7CivmgrLloLEgPiBoaWhvdVwgOwor5b6h56S+ID4gb25zaGFcIDsKK+aCquWkoiA+IGFrdW11XCA7CivljJfnt68gPiBob2t1aVwgOwor5Y+Z5pmvID4gam9rZWlcIDsKK+ato+iyqCA+IHNlaWthXCA7CivmraPosqAgPiBzZWlmdVwgOwor56aB5Zu6ID4ga2lua29cIDsKK+WQkeW+jCA+IGtvdWdvXCA7CivnoYXntKAgPiBrZWlzb1wgOwor5oGp5oOFID4gb25qb3VcIDsKK+WPm+aXlyA+IGhhbmtpXCA7CivoloTmiYsgPiB1c3VkZVwgOwor5oGp5oG1ID4gb25rZWlcIDsKK+awuOeJoiA+IGVpcm91XCA7CivpgbrouZ8gPiBpc2VraVwgOwor6YeM5pWwID4gcmlzdXVcIDsKK+WNiOedoSA+IGdvc3VpXCA7CivlvJXoposgPiBpbmtlblwgOwor56WW5a6XID4gc29zb3VcIDsKK+a1geWIkSA+IHJ1a2VpXCA7CivliqnoqZ4gPiBqb3NoaVwgOwor6YqA5L2NID4gZ2luJydpXCA7Civlj5nmlocgPiBqb2J1blwgOwor5Y2X55S7ID4gbmFuZ2FcIDsKK+ekuuW6piA+IHNoaWRvXCA7Civpgbrot6EgPiBpc2VraVwgOwor6YmE5ZmoID4gdGVra2lcIDsKK+mBpemBoCA+IHlvdWVuXCA7CivlvIHorbcgPiBiZW5nb1wgOwor5Yuk6IumID4ga2lua3VcIDsKK+avm+ezuCA+IGtlaXRvXCA7CivliqnoqIAgPiBqb2dvblwgOwor5rOV5bqmID4gaGF0dG9cIDsKK+WNl+eTnCA+IG5hbmthXCA7Civlub3prLwgPiB5dXVraVwgOwor5YyW57KnID4ga2V3YWlcIDsKK+aDheWRsyA+IGpvdW1pXCA7CivmsZ/msrMgPiBrb3VnYVwgOwor5ZCm5a6aID4gaGl0ZWlcIDsKK+egtOe3miA+IGhhc2VuXCA7CivlvbHntbUgPiBrYWdlZVwgOwor5ZCM5bqnID4gZG91emFcIDsKK+egtOe2uyA+IGhhdGFuXCA7Civlj6PmjoggPiBrb3VqdVwgOwor5rS+5YW1ID4gaGFoZWlcIDsKK+aAneahiCA+IHNoaWFuXCA7CivokaHokIQgPiBidWRvdVwgOwor5bu66K2wID4ga2VuZ2lcIDsKK+ato+iqsiA+IHNlaWthXCA7Civmr43nt5ogPiBib3NlblwgOwor5Y+N5peXID4gaGFua2lcIDsKK+ato+iqpCA+IHNlaWdvXCA7CivmgrLlmIYgPiBoaXRhblwgOwor56aF5ZGzID4gemVubWlcIDsKK+mDqOe9siA+IGJ1c2hvXCA7Civlj6/mhpAgPiBrYXJlblwgOwor5oKq5ZugID4gYWt1aW5cIDsKK+iSlOe1tSA+IG1ha2llXCA7CivpgY7ph40gPiBrYWp1dVwgOwor5YyV5664ID4gaGljaG9cIDsKK+WNiueUsCA+IGhhbmRhXCA7CivmrITplpMgPiByYW5tYVwgOwor6JGJ6JitID4gaGFyYW5cIDsKK+aBqeW4qyA+IG9uc2hpXCA7Civmr43ns7sgPiBib2tlaVwgOwor6YGK6YeMID4geXV1cmlcIDsKK+awtOeBqyA+IHN1aWthXCA7Civmg6jkuosgPiBzYW5qaVwgOwor56Wt5ZmoID4gc2Fpa2lcIDsKK+aBqOW4gyA+IGtvbmJ1XCA7CivmsrnmgKcgPiB5dXNlaVwgOwor5q2j6KaPID4gc2Vpa2lcIDsKK+emgeWPpSA+IGtpbmt1XCA7CivnpL7lr7ogPiBzaGFqaVwgOwor5oGL5oWVID4gcmVuYm9cIDsKK+WMu+eZgiA+IGlyeW91XCA7Civoj6/pgZMgPiBrYWRvdVwgOwor6YeO5omLID4geWFzaHVcIDsKK+ekvuWutiA+IHNoYWtlXCA7Civph43miYsgPiBvbW9kZVwgOwor5q2m6KOFID4gYnVzb3VcIDsKK+mHjuaIpiA+IHlhc2VuXCA7CivmranooYwgPiBob2tvdVwgOwor5q+b56m0ID4ga2VhbmFcIDsKK+WNkeeMpSA+IGhpd2FpXCA7CivnoLTnrpcgPiBoYXNhblwgOwor5ZGR5ZCQID4gZG9udG9cIDsKK+ayueW9qSA+IHl1c2FpXCA7Civlj6Hmha4gPiBlaXJ5b1wgOwor5b6h55SoID4gZ295b3VcIDsKK+a1geS6uiA+IHJ1bmluXCA7Civlj6HmhJ8gPiBlaWthblwgOwor5q2M6KyhID4ga2F5b3VcIDsKK+WQjeWutiA+IG1laWthXCA7CivlvqHnkr0gPiBneW9qaVwgOwor5Y+W5omLID4gdG90dGVcIDsKK+WQjeWumyA+IG5hYXRlXCA7CivlkIzlrrYgPiBkb3VrZVwgOwor552A6aGeID4ga2lydWlcIDsKK+WPl+aIkiA+IGp1a2FpXCA7CivpgYvpgIEgPiB1bnNvdVwgOwor6buE5L2TID4gb3V0YWlcIDsKK+atjOirliA+IGthcm9uXCA7CivphbXmr40gPiBrb3Vib1wgOwor56WW5Z6LID4gc29rZWlcIDsKK+mHjeaEmyA+IGp1dWFpXCA7CivnpZ7lmaggPiBqaW5naVwgOwor5ZCM5a2XID4gZG91amlcIDsKK+WPsOW6pyA+IGRhaXphXCA7CivlibLos6YgPiB3YXBwdVwgOwor55yf6a+bID4gbWFkYWlcIDsKK+WPm+aEjyA+IGhhbicnaVwgOwor5q2M6KmeID4ga2FzaGlcIDsKK+ecn+mviSA+IG1hZ29pXCA7CivmrovoirEgPiB6YW5rYVwgOwor6buE5Lq6ID4gb3VqaW5cIDsKK+awtOa4qSA+IHN1aW9uXCA7CivpgYvovLggPiB1bicneXVcIDsKK+iXqeWEkiA+IGhhbmp1XCA7CivlibDosrsgPiBqb3VoaVwgOwor5YmN6YOoID4gemVuYnVcIDsKK+m6l+WPpSA+IHJlaWt1XCA7Civno6jmkI0gPiBtYXNvblwgOwor6YeO5oCnID4geWFzZWlcIDsKK+iRieiMtiA+IGhhZGphXCA7Civlj5nmg4UgPiBqb2pvdVwgOwor5b6h546JID4gb3RhbWFcIDsKK+mBk+i3ryA+IGRvdXJvXCA7CivpgYvou6IgPiB1bnRlblwgOwor5bm96ZuFID4geXV1Z2FcIDsKK+WInemZoyA+IHVpamluXCA7Civmsr/lsrggPiBlbmdhblwgOwor6YCj6Y6WID4gcmVuc2FcIDsKK+iRieiKvSA+IHlvdWdhXCA7CivmsrPlt50gPiBrYXNlblwgOwor6YGB6L6eID4gdG9uamlcIDsKK+WJjemAlCA+IHplbnRvXCA7CivpgY3ot68gPiBoZW5yb1wgOwor6Ymb5Li5ID4gZW50YW5cIDsKK+awtOazsyA+IHN1aWVpXCA7CivlkI7lpoMgPiBrb3VoaVwgOwor5ZCN5aaTID4gbWVpZ2lcIDsKK+WPo+W6pyA+IGtvdXphXCA7Civlv5fmsJcgPiBzaGlraVwgOwor5Y+b5b6SID4gaGFudG9cIDsKK+mHkeW6qyA+IGtpbmtvXCA7CivljbDmsaAgPiBpbmNoaVwgOwor5rOl5ZyfID4gZGVpZG9cIDsKK+ayueWxpCA+IHl1c291XCA7CivlirToi6YgPiByb3VrdVwgOwor5Y+L5oSbID4geXV1YWlcIDsKK+mBoOisgCA+IGVuYm91XCA7CivlkIzlpJwgPiBkb3V5YVwgOwor6YeN5bqmID4ganV1ZG9cIDsKK+WJjei8qiA+IG1hZXdhXCA7CivpgIDpmaIgPiB0YWlpblwgOwor5oOF5LqLID4gam91amlcIDsKK+egtOeglSA+IGhhc2FpXCA7CivljbHmroYgPiBraXRhaVwgOwor5rK75a6JID4gY2hpYW5cIDsKK+WJsOiqniA+IGpvdWdvXCA7Civph47luKsgPiB5YXNoaVwgOwor6JC96IqxID4gcmFra2FcIDsKK+WPsuWutiA+IHNoaWthXCA7CivpiI3lmaggPiBkb25raVwgOwor5oCn5oSbID4gc2VpYWlcIDsKK+W8leiIqiA+IGlua291XCA7CivnoILntbUgPiBzdW5hZVwgOwor5b6X54mpID4gZW1vbm9cIDsKK+aymeW8pSA+IHNoYW1pXCA7Civnpa3lhbcgPiBzYWlndVwgOwor5ZCr5ZGzID4gZ2FubWlcIDsKK+W+gOeUnyA+IG91am91XCA7CivliIbpm6IgPiBidW5yaVwgOwor6YWN5rWBID4gaGFpcnVcIDsKK+W8leiHtCA+IGluY2hpXCA7Civlj43lvpIgPiBoYW50b1wgOwor5YiI6ZmkID4gZ2Fpam9cIDsKK+aAqOaBqCA+IGVua29uXCA7CivpgaDoppYgPiBlbnNoaVwgOwor56Wt5YSAID4gc2FpZ2lcIDsKK+mEmeeMpSA+IGhpd2FpXCA7Civmra/oir0gPiBzaGlnYVwgOwor6YGg6KaLID4gdG9vbWlcIDsKK+m5ueWRsyA+IGthbm1pXCA7CivojbfppqwgPiBuaXVtYVwgOwor55yf6aGUID4gbWFnYW9cIDsKK+egguezliA+IHNhdG91XCA7CivphZLmsJcgPiBzaHVraVwgOwor6be55o+aID4gb3V5b3VcIDsKK+WIqemIjSA+IHJpZG9uXCA7CivmgJ3mhZUgPiBzaGlib1wgOwor5oCg5oOwID4gdGFpZGFcIDsKK+WIqemHkSA+IHJpa2luXCA7Civmsq7lrrMgPiBzb2dhaVwgOwor5ZCM5Z2QID4gZG91emFcIDsKK+WMuueCuSA+IGt1dGVuXCA7Civlj4vlvJUgPiB5dXVpblwgOwor6YWU5q2pID4gc3VpaG9cIDsKK+WHuemdoiA+IG91bWVuXCA7CivpgZPoqbEgPiBkb3V3YVwgOwor5YyF55quID4gaG91aGlcIDsKK+mAuOi1sCA+IGlzc291XCA7Civlu4Poqp4gPiBoYWlnb1wgOwor5ZCf5ZGzID4gZ2lubWlcIDsKK+WOreaIpiA+IGVuc2VuXCA7CivmraboirggPiBidWdlaVwgOwor6YGh6KGMID4gc29rb3VcIDsKK+WQjeWZqCA+IG1laWtpXCA7Civoj6/oqIAgPiBrYWdlblwgOwor5b2x55S7ID4ga2FnZWVcIDsKK+W+kueEtiA+IHRvemVuXCA7CivpgKPovp4gPiByZW5qaVwgOwor5bqD6YeOID4ga291eWFcIDsKK+awl+azoSA+IGtpaG91XCA7Civph5HlrZcgPiBraW5qaVwgOwor5byl57irID4gYmlob3VcIDsKK+mHkeWtkCA+IGtpbnN1XCA7CivlvKfnt5ogPiBrb3NlblwgOwor5qyg6KqyID4ga2Vra2FcIDsKK+WNmOavlCA+IHRhbnBpXCA7CivpgY7oqIAgPiBrYWdvblwgOwor56C055SjID4gaGFzYW5cIDsKK+ekvuWToSA+IHNoYWluXCA7CivljbDmo4kgPiBpbm1lblwgOwor56CU56OoID4ga2VubWFcIDsKK+aCquS6iyA+IGFrdWppXCA7CivnpLrllIYgPiBzaGlzYVwgOwor5Y+v5aSJID4ga2FoZW5cIDsKK+W9qeeUuyA+IHNhaWdhXCA7CivolqvljJYgPiBrdW5rYVwgOwor5Y+X5a65ID4ganV5b3VcIDsKK+elreS6iyA+IHNhaWppXCA7CivnpZblhYggPiBzb3NlblwgOwor6YiN5YyWID4gZG9ua2FcIDsKK+aAp+W3riA+IHNlaXNhXCA7CivokKDoir0gPiBob3VnYVwgOwor5Yil6YCUID4gYmV0dG9cIDsKK+mBjuikkiA+IGthaG91XCA7Civojbfpm7sgPiBrYWRlblwgOwor56Gs5rS+ID4ga291aGFcIDsKK+WPsOWgtCA+IGRhaWJhXCA7CivlkL7kurogPiBnb2ppblwgOwor5rOi5YuVID4gaGFkb3VcIDsKK+iWhOWcsCA+IHVzdWppXCA7CivpgI/pgY4gPiB0b3VrYVwgOwor5Y2Y5qmfID4gdGFua2lcIDsKK+aut+ebmyA+IGluc2VpXCA7CivnpL7ljbAgPiBzaGFpblwgOwor5Y2w5p2QID4gaW56YWlcIDsKK+W5s+mHjiA+IGhlaXlhXCA7CivljbDmnKwgPiBpbnBvblwgOwor5oGv5ZC5ID4gaWJ1a2lcIDsKK+W5uemDqCA+IGthbmJ1XCA7CivljbDmm7ggPiBpbnNob1wgOwor5bm96YGgID4geXV1ZW5cIDsKK+WQjeWPpSA+IG1laWt1XCA7CivliY3oqJggPiB6ZW5raVwgOwor6YGL6KGMID4gdW5rb3VcIDsKK+atpuiAhSA+IG11c2hhXCA7CivnpL7li5kgPiBzaGFtdVwgOwor5Y6f5oSPID4gZ2VuJydpXCA7Civlj6TlorMgPiBrb2Z1blwgOwor5oGp5ZG9ID4gb25tZWlcIDsKK+WPi+WunCA+IHl1dWdpXCA7Civph47lpKkgPiBub3RlblwgOwor5ZCI5ZCmID4gZ291aGlcIDsKK+WKtOe1hCA+IHJvdXNvXCA7Civph47lpJYgPiB5YWdhaVwgOwor5bqn6KuHID4gemFkYW5cIDsKK+W8l+e0oCA+IGZ1c3NvXCA7CivpgIPpgb8gPiB0b3VoaVwgOwor5bm46YGLID4ga291dW5cIDsKK+egtOeJoiA+IGhhcm91XCA7Civpgbroh6MgPiBpc2hpblwgOwor5bqD6LuMID4ga291a2lcIDsKK+ato+e+qSA+IHNlaWdpXCA7Civms5Xli5kgPiBob3VtdVwgOwor56C054mHID4gaGFoZW5cIDsKK+WQjOWMliA+IGRvdWthXCA7CivpgIDpgb8gPiB0YWloaVwgOwor5Y+k5Z+OID4ga29qb3VcIDsKK+WQkOWJpCA+IHRvemFpXCA7CivmsJfmpoIgPiBraWdhaVwgOwor5bqc6K2mID4gZnVrZWlcIDsKK+W+oeauvyA+IGdvdGVuXCA7CivokIzoir0gPiBob3VnYVwgOwor5Yy65rCRID4ga3VtaW5cIDsKK+WOmuaBqSA+IGtvdW9uXCA7Civlv5zmj7QgPiBvdWVuXCA7Civluqvoo48gPiBrdXJpXCA7Civlj6TlmaggPiBrb2tpXCA7Civlh43pm6ggPiB0b3V1XCA7CivlvpLmrakgPiB0b2hvXCA7Civlj6/lkKYgPiBrYWhpXCA7CivlvpDmrakgPiBqb2hvXCA7CivluoforbcgPiBoaWdvXCA7Civph47llrYgPiB5YWVpXCA7Civms5XkvJogPiBob3VlXCA7CivlkIzkvY0gPiBkb3VpXCA7CivljbHmh7wgPiBraWd1XCA7Civlj6Xlj6UgPiBrdWt1XCA7Civlj6Tlj6UgPiBrb2t1XCA7Civlj6Plj5cgPiBrdWp1XCA7CivmsrvlhbcgPiBqaWd1XCA7Civlhrfpm6ggPiByZWl1XCA7CivlvZPngrogPiB0b3VpXCA7Civlj7PlhZogPiB1dG91XCA7CivljbHmg6cgPiBraWd1XCA7Civpgbrnsr4gPiBpc2VpXCA7Civph47ljZEgPiB5YWhpXCA7Civlj7Plgr4gPiB1a2VpXCA7CivljLvmm7ggPiBpc2hvXCA7CivpgZXog4wgPiBpaGFpXCA7CivmgKjll58gPiBlbnNhXCA7CivpuJrlk6UgPiBpbmtvXCA7CivnoLTmr4AgPiBoYWtpXCA7Civlj43lkJAgPiBoZWRvXCA7Civlj43lj6QgPiBob2dvXCA7Civlj6TlhIAgPiBrb2dpXCA7Civoj6/nvo4gPiBrYWJpXCA7CivljbDluqYgPiBpbmRvXCA7CivpgbrnqL8gPiBpa291XCA7Civnm7jpgZUgPiBzb3VpXCA7Civluqfoh6UgPiB6YWdhXCA7CivluLDpgJQgPiBraXRvXCA7Civlv6Dlrp8gPiBtYW1lXCA7CivlhobpobEgPiBlbnJvXCA7Civno4HloLQgPiBqaWJhXCA7Civlj6TkuosgPiBrb2ppXCA7CivnoLTmo4QgPiBoYWtpXCA7CivmsLjlr78gPiBlaWp1XCA7CivmrYznopEgPiBrYWhpXCA7CivlvoDmmYIgPiBvdWppXCA7Civno4HlnJ8gPiBqaWRvXCA7CivptInniYcgPiBhaGVuXCA7CivljbDlrZcgPiBpbmppXCA7CivpgZXnrpcgPiBpc2FuXCA7Civlj5nkuosgPiBqb2ppXCA7Civno4HlmaggPiBqaWtpXCA7Civlvq7lvq4gPiBiaWJpXCA7CivluLDot68gPiBraXJvXCA7CivlvqHmhI8gPiBneW9pXCA7CivnoILmtLIgPiBzYXN1XCA7CivljYjlvowgPiBnb2dvXCA7Civmr4Dmo4QgPiBraWtpXCA7CivpgaDnpZYgPiBlbnNvXCA7CivlvozmiYsgPiBnb3RlXCA7CivlubLokYkgPiBoaWJhXCA7CivlvJXngasgPiBpbmthXCA7CivlvqHlvbEgPiBnb2VpXCA7CivpgbrnlKMgPiBpc2FuXCA7CivmqLnpmbAgPiBqdWluXCA7Civoi7Hpn7MgPiBlaW9uXCA7CivmsZrlkI0gPiBvbWVpXCA7Civno4HljLogPiBqaWt1XCA7Civpgqrmt6sgPiBqYWluXCA7Civov4LoqIAgPiB1Z2VuXCA7Civno4HljJYgPiBqaWthXCA7CivljLvluKsgPiBpc2hpXCA7CivlvbzmiJEgPiBoaWdhXCA7CivljbHlnZAgPiBraXphXCA7CivlibXnl40gPiBzb3VpXCA7CivmqZ/pgYsgPiBraXVuXCA7CivljKrlvpIgPiBoaXRvXCA7CivliqnmvJQgPiBqb2VuXCA7CivpgqrmsJcgPiBqYWtpXCA7CivlvKXmrKEgPiB5YWppXCA7CivlvqHlrocgPiBneW91XCA7CivlvoDlvoAgPiBvdW91XCA7CivliIDoh6ogPiB0b2ppXCA7CivlvqHlrZAgPiBtaWtvXCA7CivljLvlrpggPiBpa2FuXCA7CivliqDmuKkgPiBrYW9uXCA7CivpgY7nlo4gPiBrYXNvXCA7CivliIDog4wgPiBtaW5lXCA7Civlv5zli58gPiBvdWJvXCA7CivpgbrmvI8gPiBpcm91XCA7CivlvozlrrYgPiBnb2tlXCA7CivljLvlpKcgPiBpZGFpXCA7CivmrrTmiZMgPiBvdWRhXCA7CivmranmraYgPiBob2J1XCA7CivpgZXniq8gPiBpaGFuXCA7CivlhobosqggPiBlbmthXCA7CivmsJflkbMgPiBnaW1pXCA7CivmsJflkIggPiBraWFpXCA7CivluIPooY0gPiBmdWVuXCA7CivprZTprYUgPiBtYW1pXCA7CivlvozloLQgPiBnb2JhXCA7CivnoLTlrrYgPiBiYWthXCA7CivmsJfljJYgPiBraWthXCA7CivlvoHlpLcgPiBzZWlpXCA7CivljYjlkI4gPiBnb2dvXCA7CivmsLTkvY0gPiBzdWlpXCA7CivmsLjkuYUgPiB0b3dhXCA7Civlt6boqJggPiBzYWtpXCA7Civlhobopo8gPiBlbmtpXCA7Civnm4jomacgPiBlaWtpXCA7Civpgbrmp4sgPiBpa291XCA7CivlvqHlkI0gPiBtaW5hXCA7Civpg6jlsYsgPiBoZXlhXCA7Civoi7HosqggPiBlaWthXCA7CivpgY7muKEgPiBrYXRvXCA7CivpgZXms5UgPiBpaG91XCA7Civmrrflr4wgPiBpbnB1XCA7Civlu7bmnJ8gPiBlbmtpXCA7CivmqKrorbAgPiBvdWdpXCA7CivnoILlt54gPiBzYXN1XCA7CivojKPok5kgPiBnb3phXCA7Civoi7Hoqp4gPiBlaWdvXCA7CivpgYvmsrMgPiB1bmdhXCA7Civpgbrmm7ggPiBpc2hvXCA7Civnn6XmgbUgPiBjaGllXCA7CivpgYvmsJcgPiB1bmtpXCA7CivovLjotI8gPiB5dWVpXCA7CivljZHkuIsgPiBoaWdlXCA7Civli6LlrZAgPiBzZWtvXCA7CivljIXlm7IgPiBob3VpXCA7CivlvoDlj6QgPiBvdWtvXCA7CivliqDmjIEgPiBrYWppXCA7CivlvKfluqYgPiBrb2RvXCA7Civpg73llrYgPiB0b2VpXCA7Civmr5TllqkgPiBoaXl1XCA7CivpgbrmlocgPiBpYnVuXCA7CivpgKLngKwgPiBvdXNlXCA7Civlh7rnm64gPiBkZW1lXCA7CivlvZnloLEgPiBpaG91XCA7CivmrabmioAgPiBidWdpXCA7CivovJ3ovJ0gPiBraWtpXCA7CivluqfmtLIgPiB6YXN1XCA7CivlvqHku6MgPiBtaXlvXCA7Civli6LlqIEgPiBzZWlpXCA7CivljLvkvJogPiBpa2FpXCA7CivlvpfkvZMgPiBldGFpXCA7CivlvqHkuJYgPiBtaXlvXCA7CivlvbHljbAgPiBlaWluXCA7CivmraPmhI8gPiBzZWlpXCA7CivlhoboiJ4gPiBlbmJ1XCA7CivptZzljKAgPiB1am91XCA7Civmr43ljbAgPiBib2luXCA7CivpgLjmqZ8gPiBpa2tpXCA7Civpg6jlk6EgPiBidWluXCA7CivpgbrmiJIgPiBpa2FpXCA7Civnmq7ohpogPiBoaWZ1XCA7Civpgbrmhr4gPiBpa2FuXCA7CivliLfmr5sgPiBoYWtlXCA7CivmranluqYgPiBob2RvXCA7CivmrKHmnJ8gPiBqaWtpXCA7CivmrabluqsgPiBidWtvXCA7CivmqZ/nuIEgPiBraWVuXCA7CivnoILlnJ8gPiBzYWRvXCA7CivpgbrmgaggPiBpa29uXCA7CivlvoDkuosgPiBvdWppXCA7CivoirHorZwgPiBrYWZ1XCA7Civpgbrlv5cgPiBpc2hpXCA7Civluo/mrKEgPiBqb2ppXCA7Civmr5TkvqEgPiBoaWthXCA7CivpgJTmrKEgPiB0b2ppXCA7CivlibXmhI8gPiBzb3VpXCA7CivmrablrrYgPiBidWtlXCA7CivmqKroh6UgPiBvdWdhXCA7CivprLHph5EgPiB1a29uXCA7Civmr5TkuJggPiBiaWt1XCA7Civpg73kuIsgPiB0b2thXCA7Civnn6LloLQgPiB5YWJhXCA7CivoirHooqsgPiBrYWhpXCA7CivpgZXmhrIgPiBpa2VuXCA7Civlu7blr78gPiBlbmp1XCA7Civnmb7oiIwgPiBtb3p1XCA7CivmrablpKsgPiBidWZ1XCA7CivnoILliKkgPiBqYXJpXCA7Civpg6jkuIsgPiBidWthXCA7CivpgbrlrZAgPiBpc2hpXCA7Civnnr3lpbMgPiBnb3plXCA7Civlj6XjgIUgPiBrdWt1XCA7Civlh7rmra8gPiBkZWJhXCA7CivpgY7luqYgPiBrYWRvXCA7CivmrablmaggPiBidWtpXCA7CivpgYvluqcgPiB1bnphXCA7CivmrKHluo8gPiBqaWpvXCA7CivmqKHns4ogPiBtb2tvXCA7CivoirHoir0gPiBrYWdhXCA7CivpgbrlnYAgPiBpc2hpXCA7CivlubPmmJMgPiBoZWlpXCA7CivliqDlkbMgPiBrYW1pXCA7CivmranlkIggPiBidWFpXCA7CivmrKflrZcgPiBvdWppXCA7Civlh7rmnaUgPiBkZWtpXCA7Civlg6fooaMgPiBzb3VpXCA7Civnlo7pn7MgPiBzb2luXCA7Civluqflt54gPiB6YXN1XCA7CivmqLnnmq4gPiBqdWhpXCA7CivlupzluqsgPiBmdWtvXCA7Civpgbrlk4EgPiBpaGluXCA7CivnlpHpm7IgPiBnaXVuXCA7Civpgbrlkb0gPiBpbWVpXCA7CivmraTlh6YgPiBrb2tvXCA7CivmrablhbcgPiBidWd1XCA7CivpgY7lpJogPiBrYXRhXCA7CivmrKHlpbMgPiBqaWpvXCA7Civlh6DmoYggPiBraWFuXCA7CivmrablgpkgPiBidWJpXCA7Civov73miYsgPiBvdHRlXCA7Civpgbrlip8gPiBpa291XCA7CivnlbDpoqggPiBpZnV1XCA7CivpgbrliLYgPiBpc2VpXCA7CivnlbDpoZ4gPiBpcnVpXCA7CivliKnlt7EgPiByaWtvXCA7CivmraPkvY0gPiBzZWlpXCA7CivliLflrZAgPiBoYWtlXCA7CivmrabkuosgPiBidWppXCA7CivojYrmo5ggPiBiYXJhXCA7CivprZTnvoUgPiBtYXJhXCA7CivpgbrkvZMgPiBpdGFpXCA7CivpgZXlj40gPiBpaGFuXCA7CivpgbrkvJ0gPiBpZGVuXCA7CivpgY7ljrsgPiBrYWtvXCA7CivmrKfljJYgPiBvdWthXCA7Civnlo7pgaAgPiBzb2VuXCA7CivnlpHovp4gPiBnaWppXCA7Civlt6bmtL4gPiBzYWhhXCA7Civoibbnvo4gPiBlbmJpXCA7CivpqaLppqwgPiByb2JhXCA7CivlspDpmJwgPiBnaWZ1XCA7Civluqflk6EgPiB6YWluXCA7CivmsLjjgIUgPiBlaWVpXCA7CivnnJ/luIYgPiBtYWhvXCA7Civnm7jmiYsgPiBhaXRlXCA7CivluqblkIggPiBkb2FpXCA7CivpgZXkvosgPiBpcmVpXCA7CivliKnlmaggPiByaWtpXCA7CivoibLntbUgPiBpcm9lXCA7CivnlbDpgqYgPiBpaG91XCA7CivpgZXku6QgPiBpcmVpXCA7Civlu4PkvY0gPiBoYWlpXCA7CivluIPmlr0gPiBmdXNlXCA7Civoh6rosrsgPiBqaWhpXCA7Civoh6rosqAgPiBqaWZ1XCA7CivlhaXmsZ8gPiBpcmllXCA7Civoi7HmsJcgPiBlaWtpXCA7CivpqL7ppqwgPiByYWJhXCA7CivoirHnjosgPiBrYW91XCA7Civmo4vpmaIgPiBraWluXCA7CivluLfluYQgPiBpYWt1XCA7Civoi7HmraYgPiBlaWJ1XCA7CivnlbDotqMgPiBpc2h1XCA7CivlhbfmoYggPiBndWFuXCA7Civlh7rloLQgPiBkZWJhXCA7Civoh6roqJggPiBqaWtpXCA7CivluqfkuLsgPiB6YXN1XCA7Civoh6rooZsgPiBqaWVpXCA7CivnlbDoq5YgPiBpcm9uXCA7CivlspDot68gPiBraXJvXCA7Civnm7jlrZAgPiBhaWtvXCA7CivlupzkuIsgPiBmdWthXCA7CivprZTnjosgPiBtYW91XCA7CivlgYnoprMgPiBpa2FuXCA7CivnlbDoposgPiBpa2VuXCA7CivliKnku5YgPiByaXRhXCA7CivpqI7ppqwgPiBraWJhXCA7CivmqZ/lvq4gPiBraWJpXCA7CivmqZ/lvbEgPiBraWVpXCA7Civlub7kvZUgPiBraWthXCA7CivlvoDjgIUgPiBvdW91XCA7CivnmbrmnaEgPiBiYW5lXCA7CivlhoXmhI8gPiBuYWlpXCA7CivmqZ/luo8gPiBraWpvXCA7CivnmbjmnKogPiBraWJpXCA7CivluJ3lqIEgPiB0ZWlpXCA7Civov4Llm54gPiB1a2FpXCA7CivpgIDkvY0gPiB0YWlpXCA7Civlh7rliIMgPiBkZWJhXCA7CivmooXpm6ggPiBiYWl1XCA7CivmqKHmk6wgPiBtb2dpXCA7CivlhoblvKcgPiBlbmtvXCA7Civnl7Lnl7ogPiBtYWhpXCA7Civnm67lnLAgPiBtZWppXCA7CivlhobluqcgPiBlbnphXCA7CivmqZ/lsL4gPiBraWJpXCA7CivoirHmqLkgPiBrYWp1XCA7CivluLDllrYgPiBraWVpXCA7CivnlLvorZwgPiBnYWZ1XCA7CivmqZ/lrpwgPiBraWdpXCA7CivlsL7pg6ggPiBiaWJ1XCA7Civnm7LllJYgPiBtb3VhXCA7Civkvp3poZggPiBpZ2FuXCA7Civkvp3poLwgPiBpcmFpXCA7CivnlpHnvqkgPiBnaWdpXCA7CivnnJ/kvLwgPiBtYW5lXCA7Civmo4vorZwgPiBraWZ1XCA7CivluLDljJYgPiBraWthXCA7CivlhZDmiK8gPiBqaWdpXCA7CivnnJ/kuIogPiBtYXVlXCA7Civlt6vlrZAgPiBtaWtvXCA7CivluIzlnJ8gPiBraWRvXCA7CivoirHmnJ8gPiBrYWtpXCA7CivluIzlm7MgPiBraXRvXCA7Civppqzpub8gPiBiYWthXCA7Civoh5nohIIgPiBlbmppXCA7CivlgYPoh6UgPiBlbmdhXCA7Civog6HpursgPiBnb21hXCA7CivmoJfpvKAgPiByaXN1XCA7Civlr7rpmaIgPiBqaWluXCA7CivnlbDogZ4gPiBpYnVuXCA7Civlt6vlpbMgPiBtaWtvXCA7Civnm67lh6YgPiBtZWRvXCA7Civpp4TppqwgPiBkYWJhXCA7CivprLzmsJcgPiBraWtpXCA7Civlh6DkuIsgPiBraWthXCA7CivmqZ/lmaggPiBraWtpXCA7CivlhazlrrYgPiBrdWdlXCA7CivoibbmrYwgPiBlbmthXCA7Civkv53orbcgPiBob2dvXCA7CivlhbXlqIEgPiBoZWlpXCA7CivprLHmsJcgPiB1a2tpXCA7Civou73mmJMgPiBrZWlpXCA7Civoi7HlrZcgPiBlaWppXCA7CivoirHmirwgPiBrYW91XCA7Civkv5roqp4gPiByaWdvXCA7CivnmoflrZAgPiBvdWppXCA7CivlsaDomIcgPiB0b3NvXCA7CivlhoDlm7MgPiBraXRvXCA7Civpp4bpmaQgPiBrdWpvXCA7Civlr53plpMgPiBuZW1hXCA7Civovp7lhIAgPiBqaWdpXCA7Civnm67kuIogPiBtZXVlXCA7CivluJ3kvY0gPiB0ZWlpXCA7CivmqZ/ljJYgPiBraWthXCA7CivovKrlt64gPiB3YXNhXCA7CivkvZnpn7sgPiB5b2luXCA7CivnlbDnq68gPiBpdGFuXCA7CivovJ3luqYgPiBraWRvXCA7Civlr4TpmYQgPiBraWZ1XCA7CivmqZ/lhbcgPiBraWd1XCA7Civlt6XlkIggPiBndWFpXCA7CivnlbDnqK4gPiBpc2h1XCA7CivlhZDlpbMgPiBqaWpvXCA7CivoirHluo8gPiBrYWpvXCA7CivlhbflkIggPiBndWFpXCA7CivotrPooosgPiB0YWJpXCA7CivlsbHnvoogPiB5YWdpXCA7Civoi6blnJ8gPiBrdWRvXCA7CivkvY3pmo4gPiBpa2FpXCA7Civlr7/os4AgPiBqdWdhXCA7Civoh6rnlLsgPiBqaWdhXCA7Civoi7HlkowgPiBlaXdhXCA7Civlhazljb8gPiBrdWdlXCA7CivnlLvntKAgPiBnYXNvXCA7Civlhbblh6YgPiBzb2tvXCA7CivmoqjoirEgPiByaWthXCA7CivnlLHnuIEgPiB5dWVuXCA7CivlhobkvqEgPiBlbmthXCA7CivoirHlraMgPiBrYWtpXCA7CivprZrluqcgPiB1b3phXCA7CivlhbflgpkgPiBndWJpXCA7CivotoroqLQgPiBlc3NvXCA7CivogqXppqwgPiBoaWJhXCA7Civnmb7lkIggPiB5dXJpXCA7Civnmq7kuIsgPiBoaWthXCA7CivlhJLlrrYgPiBqdWthXCA7Civoh6rngasgPiBqaWthXCA7CivotbfoqLQgPiBraXNvXCA7Civkv5rogLMgPiByaWppXCA7CivlrrbpgYsgPiBrYXVuXCA7CivnlbDnirYgPiBpam91XCA7CivmpZrmpZogPiBzb3NvXCA7CivlhYHlj68gPiBpbmthXCA7Civkvo3ooZsgPiBqaWVpXCA7CivppZHppJMgPiBraWdhXCA7CivoirHlmaggPiBrYWtpXCA7CivnmofkvY0gPiBrb3VpXCA7CivkvbPoqbEgPiBrYXdhXCA7Civog4PphbggPiBpc2FuXCA7CivlhYjlhYggPiBtYW1hXCA7Civlrrbot68gPiBpZWppXCA7CivmoafokYkgPiBoaWJhXCA7CivprZTlpbMgPiBtYWpvXCA7CivppYLpo6kgPiB1ZG9uXCA7CivlrZfpn7MgPiBqaW9uXCA7Civlr4Toqp4gPiBraWdvXCA7CivoirHljYkgPiBrYWtpXCA7CivlrrborZwgPiBrYWZ1XCA7Civog7TooaMgPiBkb3VpXCA7CivprLzlpbMgPiBraWpvXCA7CivogLPpvLsgPiBqaWJpXCA7CivppJPprLwgPiBnYWtpXCA7Civog6Too5QgPiBpbmVpXCA7CivlhLLkvY0gPiBjaG9pXCA7Civoh6rmo4QgPiB5YWtlXCA7CivnkIbpnZ4gPiByaWhpXCA7Civku6XpmY0gPiBpa291XCA7CivlhKrkvY0gPiB5dXVpXCA7Civotbfoh6UgPiBraWdhXCA7Civog57ooaMgPiBob3VpXCA7CivmoIToqokgPiBlaXlvXCA7CivlrLDpn7MgPiBlaW9uXCA7CivovJTkvZAgPiBob3NhXCA7CivkvIrpgZQgPiBkYXRlXCA7CivnlbDmp5ggPiBpeW91XCA7CivkvZnomIogPiB5b3VuXCA7CivlrrbomoogPiBpZWthXCA7CivlsLznlKsgPiBqaWhvXCA7CivlgYnmnZAgPiBpemFpXCA7CivnlbDmnKwgPiBpaG9uXCA7CivmpI3mnKggPiB1ZWtpXCA7Civog7zog50gPiB0YWtvXCA7CivoiKrlrocgPiBrb3V1XCA7CivnlpHmh7wgPiBnaWt1XCA7CivnlbDmlocgPiBpYnVuXCA7CivnlbDmlbAgPiBpc3V1XCA7CivnlpHmg6cgPiBnaWd1XCA7Civoh6rmiJEgPiBqaWdhXCA7Civpp5XnsaAgPiBrYWdvXCA7CivprYHlgYkgPiBrYWlpXCA7Civkv53nhKEgPiBob211XCA7Civpp5Xnr60gPiBrYWdvXCA7Civpo6LppJMgPiBraWdhXCA7Civoh6rmhJsgPiBqaWFpXCA7CivmoIToj68gPiBlaWdhXCA7CivlgYnmjJkgPiBpa3lvXCA7CivlraPoqp4gPiBraWdvXCA7Civogproo48gPiB0b3JpXCA7Civlg6fkvY0gPiBzb3VpXCA7CivlgYnmiY0gPiBpc2FpXCA7CivnlbDmiY0gPiBpc2FpXCA7CivosrvpgJQgPiBoaXRvXCA7CivnkIbot68gPiByaXJvXCA7Civos6boqrIgPiBmdWthXCA7Civos6boqaAgPiBmdWVpXCA7CivnlY/mlawgPiBpa2VpXCA7Civkv53muKkgPiBob29uXCA7Civoh6rluo8gPiBqaWpvXCA7CivnlLvmnrYgPiBnYWthXCA7CivkvY3nva4gPiBpY2hpXCA7CivkuozpmaIgPiBuaWluXCA7Civoh6rlt7EgPiBqaWtvXCA7CivnlbDmgKcgPiBpc2VpXCA7CivnlbDlvakgPiBpc2FpXCA7CivnlpHlrZcgPiBnaWppXCA7Civosarpm6ggPiBnb3V1XCA7Civku5jorbAgPiBmdWdpXCA7Civkv53mr40gPiBob2JvXCA7Civlronoh6UgPiBhbmdhXCA7Civku6Xopb8gPiBpc2VpXCA7CivkupzpiLQgPiBhcmVpXCA7Civoh6rlrrYgPiBqaWthXCA7CivnlbDluLggPiBpam91XCA7CivkvpvniqAgPiBrdWdpXCA7Civku5joqJggPiBmdWtpXCA7CivlsI/ngasgPiBib3lhXCA7Civpp4Tnm64gPiBkYW1lXCA7CivlsYvmoLkgPiB5YW5lXCA7Civkvp3nhLYgPiBpemVuXCA7CivkvIroiaYgPiBpa2FuXCA7CivlgYnlrrkgPiBpeW91XCA7CivmoqjmnpwgPiByaWthXCA7CivnlbDlrZggPiBpem9uXCA7Civkuozpg6ggPiBuaWJ1XCA7Civpoqjpm6ggPiBmdXV1XCA7Civmo4TmjZAgPiBraWVuXCA7CivmpZXlhoYgPiBkYWVuXCA7Civlgb3ljbAgPiBnaWluXCA7CivogozohpogPiBraWZ1XCA7CivnlbDlp5MgPiBpc2VpXCA7CivlgYnlpKcgPiBpZGFpXCA7CivnlbDlpIkgPiBpaGVuXCA7CivnlZnlroggPiBydXN1XCA7CivkvY3nm7ggPiBpc291XCA7CivkuIDpvJMgPiBpa2tvXCA7Civoh6rllrYgPiBqaWVpXCA7CivnlKjmhI8gPiB5b3VpXCA7CivogLPoqp4gPiBqaWdvXCA7CivnlbDln58gPiBpaWtpXCA7CivnlLvluIMgPiBnYWZ1XCA7Civpq5jkvY0gPiBrb3VpXCA7CivlrZfnvqkgPiBqaWdpXCA7Civoh6rlj5kgPiBqaWpvXCA7Civkv53mjIEgPiBob2ppXCA7CivpqaXlsL4gPiBraWJpXCA7CivlgJrlrZAgPiBpc2hpXCA7Civoh6rliqkgPiBqaWpvXCA7Civog4PnmYwgPiBpZ2FuXCA7CivnlLvlrrYgPiBnYWthXCA7CivoiIjkupwgPiBrb3VhXCA7Civnk6bmlq8gPiBnYXN1XCA7Civoh6rliKkgPiBqaXJpXCA7CivlrrbniLYgPiBrYWZ1XCA7Civpo5voqp4gPiBoaWdvXCA7CivkvZnnhZkgPiB5b2VuXCA7CivkuIvpp4QgPiBnZXRhXCA7CivkuIvppqwgPiBnZWJhXCA7CivlgYflkI0gPiBrYW5hXCA7CivnlbDlkI0gPiBpbWVpXCA7CivkvY3niYwgPiBpaGFpXCA7CivnlbDlkIwgPiBpZG91XCA7CivogLbomIcgPiB5YXNvXCA7CivkvZnngo4gPiB5b2VuXCA7CivnkaDnkoMgPiBydXJpXCA7CivkuIDpqI4gPiBpa2tpXCA7CivnlpHkvLwgPiBnaWppXCA7CivlgYnli7IgPiBpa3VuXCA7CivlgYnlirkgPiBpa291XCA7CivlgYnlip8gPiBpa291XCA7CivnlbDli5UgPiBpZG91XCA7CivosqDojbcgPiBmdWthXCA7CivkuYXpgaAgPiBrdW9uXCA7Civoh6rkvZkgPiBqaXlvXCA7CivkuI3pm6IgPiBmdXJpXCA7CivkuIDpoacgPiBpa2tvXCA7Civoh6rku5YgPiBqaXRhXCA7Civnvo7pn7MgPiBiaW9uXCA7CivlrZDnrYkgPiBrb3JhXCA7CivkuIvpmaIgPiBrYWluXCA7CivotbfmoYggPiBraWFuXCA7CivkuI3plpMgPiBidW1hXCA7CivnlLvlm6AgPiBnYWluXCA7CivkvZnms6IgPiB5b2hhXCA7CivnlY/lj4sgPiBpeXV1XCA7CivnlbDkvosgPiBpcmVpXCA7CivlsI/miYsgPiBrb3RlXCA7CivnlbDkvZMgPiBpdGFpXCA7CivotqPmhI8gPiBzaHVpXCA7CivlhYjjgIUgPiBtYW1hXCA7CivlgYnkurogPiBpamluXCA7CivnlbDkurogPiBpamluXCA7Civkv53lrokgPiBob2FuXCA7CivkvZnmroMgPiB5b291XCA7Civot6/lnLAgPiByb2ppXCA7Civkvp3mi6AgPiBpa3lvXCA7CivnkLXnkLYgPiBiaXdhXCA7CivnkIbnp5EgPiByaWthXCA7Civmmq7pm7IgPiBib3VuXCA7Civkv53lp4YgPiBob2JvXCA7Civog4PmtrIgPiBpZWtpXCA7CivlsYXlo6sgPiBrb2ppXCA7CivkupzogZYgPiBhc2VpXCA7CivmnY7oirEgPiByaWthXCA7CivkuIvph44gPiBnZXlhXCA7CivkuIrph44gPiB1ZW5vXCA7CivogoznkIYgPiBraW1lXCA7CivpprTmn5MgPiBuYWppXCA7CivkupznvqQgPiBhZ3VuXCA7CivkuJbovp4gPiBzZWppXCA7CivkuI3pgYsgPiBmdXVuXCA7CivkvZnmoIQgPiB5b2VpXCA7CivohbDlm7IgPiB5b3VpXCA7CivmoqjlnJIgPiByaWVuXCA7CivkvpvlvqEgPiBndWdvXCA7CivmooPlrZAgPiB0ZWtvXCA7Civot6/liqAgPiBydWthXCA7CivkupzntrEgPiBha291XCA7Civmnpznmq4gPiBrYWhpXCA7CivkuI3ou4wgPiBmdWtpXCA7CivkvZnmmocgPiB5b2thXCA7CivkuIDpgY4gPiBpa2thXCA7CivlsI/lsYsgPiBrb3lhXCA7CivkuIDpgJQgPiBpdHRvXCA7Civnvo7ovp4gPiBiaWppXCA7CivlronmsJcgPiBhbmtpXCA7CivnkInnkoMgPiBydXJpXCA7CivlrrnmmJMgPiB5b3VpXCA7CivlgIvlgIsgPiBrb2tvXCA7CivkuI3otbcgPiBmdWtpXCA7CivlsInlrpggPiBpa2FuXCA7CivmoITmnq8gPiBlaWtvXCA7CivotbfluqcgPiBraXphXCA7Civlr5PmhI8gPiBndXVpXCA7Civkvp3lrZggPiBpem9uXCA7CivkuJboqbEgPiBzZXdhXCA7CivkupznqK4gPiBhc2h1XCA7CivmmbTpm6ggPiBzZWl1XCA7CivlsI/lpJwgPiBzYXlvXCA7CivlqIHpoqggPiBpZnV1XCA7Civpo5vnsLcgPiBoaWVuXCA7Civpn7PpoK0gPiBvbmRvXCA7CivkvZnmioAgPiB5b2dpXCA7CivkuI3oqp4gPiBmdWdvXCA7CivkvZnmiYAgPiB5b3NvXCA7CivnjovogIUgPiBvdWphXCA7CivlrrbmibYgPiBrYWZ1XCA7CivkuIvoqJggPiBrYWtpXCA7Civmmpfpg6ggPiBhbmJ1XCA7CivkvpvlpYkgPiBndWJ1XCA7Civog4PmlaMgPiBpc2FuXCA7Civku4HnjosgPiBuaW91XCA7Civkvo3lqaIgPiBqaWhpXCA7Civkuojnp5EgPiB5b2thXCA7CivlrrPmhI8gPiBnYWlpXCA7CivkuojnpLogPiB5b2ppXCA7CivlronmmJMgPiBhbicnaVwgOwor5LiL6KGGID4gZ2VzdVwgOwor5LiK6KGjID4gam91aVwgOwor5L6N5aWzID4gamlqb1wgOwor5a2X5q+NID4gamlib1wgOwor6IOM5oi4ID4gc2Vkb1wgOwor5a+E5bitID4geW9zZVwgOwor5L2z5a60ID4ga2FlblwgOwor54qg6aObID4gZ2loaVwgOwor5LiN6JmeID4gZnVndVwgOwor6IWQ5YSSID4gZnVqdVwgOwor57216KmIID4gYmFyaVwgOwor5a+M5a62ID4gZnVrYVwgOwor5LuW5rS+ID4gdGFoYVwgOwor6K2w6ZmiID4gZ2lpblwgOwor6LW35ZugID4ga2lpblwgOwor546755KDID4gaGFyaVwgOwor5a6J5omTID4gYW5kYVwgOwor5pqX6K2cID4gYW5wdVwgOwor6aas5a2QID4gbWFnb1wgOwor5piv6Z2eID4gemVoaVwgOwor5LqL55CGID4gamlyaVwgOwor5a625a62ID4gaWVpZVwgOwor5p645p2eID4ga3Vrb1wgOwor5LqM546LID4gbmlvdVwgOwor54y/6IeCID4gZW5waVwgOwor5pqX6KiYID4gYW5raVwgOwor5p6c5qi5ID4ga2FqdVwgOwor5L2N5a6YID4gaWthblwgOwor5LqR54i+ID4gdW5qaVwgOwor5Lqc54KtID4gYXRhblwgOwor5LiA6I23ID4gaWtrYVwgOwor6LW35Y+lID4ga2lrdVwgOwor5Lya5oSPID4ga2FpaVwgOwor5Lul5p2xID4gaXRvdVwgOwor5Lul5p2lID4gaXJhaVwgOwor6aOb54eVID4gaGllblwgOwor5a6J5bqnID4gYW56YVwgOwor5peX6byTID4ga2lrb1wgOwor6aas5aC0ID4gYmFiYVwgOwor6Z6N6aasID4gYW5iYVwgOwor5LiA6IeCID4gaXBwaVwgOwor5L2z5ZGzID4ga2FtaVwgOwor5LiN576pID4gZnVnaVwgOwor5LiN576IID4gZnVraVwgOwor5LiN576HID4gZnVraVwgOwor5L2z5Y+lID4ga2FrdVwgOwor5pyo55OcID4gYm9rZVwgOwor6aeE5Y+lID4gZGFrdVwgOwor6IKp5be+ID4gaGlyZVwgOwor5pmC6YGLID4gaml1blwgOwor6Z+76KqeID4gaW5nb1wgOwor5qWa44CFID4gc29zb1wgOwor6Z+z6K2cID4gb25wdVwgOwor5LiN57iBID4gZnVlblwgOwor5L2N5ZywID4gaWNoaVwgOwor5p6H5p23ID4gYml3YVwgOwor5LiK57W1ID4gdXdhZVwgOwor5a2k5b2xID4ga29laVwgOwor5qGI5L6hID4gYW5rYVwgOwor54yb6ICFID4gbW9zYVwgOwor5qCh5Yy7ID4ga291aVwgOwor576955uuID4gaGFtZVwgOwor5qGI5LiLID4gYW5rYVwgOwor5p+a5a2QID4geXV6dVwgOwor6K236KyoID4gZ29tdVwgOwor5LuW5omAID4geW9zb1wgOwor5LqM5qyhID4gbmlqaVwgOwor5aaC6ZyyID4gam9yb1wgOwor5LiN56mPID4gZnVvblwgOwor5a6J5aC1ID4gYW5kb1wgOwor5LiA566HID4gaWtrb1wgOwor5LiL56iuID4gZ2VzdVwgOwor6aas5YW3ID4gYmFndVwgOwor5L2N5YuyID4gaWt1blwgOwor5LuW5oSbID4gdGFhaVwgOwor5a625Ye6ID4gaWVkZVwgOwor5L2Z5YSAID4geW9naVwgOwor5a6J5Zu6ID4gYW5rb1wgOwor5a625YW3ID4ga2FndVwgOwor5LiN56OoID4gZnVtYVwgOwor5a625YWOID4ga2F0b1wgOwor5pel6ZaTID4gaGlhaVwgOwor5LyO5aWzID4gZ2lqb1wgOwor5aeU6K2yID4gaWpvdVwgOwor5L2N5YagID4gaWthblwgOwor6K236KGbID4gZ29laVwgOwor5LuL5oSPID4ga2FpaVwgOwor5a+E5LuYID4ga2lmdVwgOwor6Z6N6YOoID4gYW5idVwgOwor5pyJ54K6ID4geXV1aVwgOwor5a+E5LiOID4ga2l5b1wgOwor5L2T5L2NID4gdGFpaVwgOwor5L2Z5LqLID4geW9qaVwgOwor6Z2S6Z2SID4gYW9hb1wgOwor5Luu5a2XID4ga2FuYVwgOwor5LqM5pyfID4gbmlraVwgOwor5L2O5L2NID4gdGVpaVwgOwor5a6J5ZCmID4gYW5waVwgOwor6IOh5LmxID4gdXJvblwgOwor5LqI5pyfID4geW9raVwgOwor5a625LqLID4ga2FqaVwgOwor576p55CGID4gZ2lyaVwgOwor6K2P6Kq5ID4ga2loaVwgOwor5LiL55eiID4gZ2VyaVwgOwor5a6J5Y2xID4gYW5raVwgOwor6LOt5aC0ID4gdG9iYVwgOwor6aaW5L2NID4gc2h1aVwgOwor5ayJ5oivID4ga2lnaVwgOwor5LqL5pWFID4gamlrb1wgOwor5LyB5ZuzID4ga2l0b1wgOwor576p54i2ID4gZ2lmdVwgOwor5LuW5a62ID4gdGFrZVwgOwor5LiN55CGID4gZnVyaVwgOwor6LOA5a60ID4gZ2FlblwgOwor5a6a5L2NID4gdGVpaVwgOwor5a6H5YaFID4gdWRhaVwgOwor5Lul5aSWID4gaWdhaVwgOwor55Gj5LqLID4gc2FqaVwgOwor5aSi6a2UID4gbXVtYVwgOwor5p2l5oSPID4gcmFpaVwgOwor5a215YyWID4gZnVrYVwgOwor6LK05a62ID4ga2lrYVwgOwor5pqX56S6ID4gYW5qaVwgOwor5a6J5L+dID4gYW5wb1wgOwor5a6J5L6hID4gYW5rYVwgOwor5pyo5pyoID4ga2lnaVwgOwor6Z2e6YGLID4gaGl1blwgOwor6IG+5ZSWID4gcm91YVwgOwor6LSP5L2ZID4gZWl5b1wgOwor57695q+bID4gdW1vdVwgOwor6Z+z57SgID4gb25zb1wgOwor5a2X5Y+lID4gamlrdVwgOwor6LSI5L2NID4gem91aVwgOwor6LK05aWzID4ga2lqb1wgOwor5LuY5ZuzID4gZnV6dVwgOwor6IKJ5Yi6ID4gbWFtZVwgOwor5LqL5b6MID4gamlnb1wgOwor5LqI5b6MID4geW9nb1wgOwor5LqM5bqmID4gbmlkb1wgOwor6Z+z56ymID4gb25wdVwgOwor576p5rCXID4gZ2lraVwgOwor5YCL44CFID4ga29rb1wgOwor576p5q+NID4gZ2lib1wgOwor6Kqe6Z+zID4gZ29vblwgOwor5Lul5Y2XID4gaW5hblwgOwor6ICM5b6MID4gamlnb1wgOwor5aSc6ZmwID4geWFpblwgOwor5LuY5ZKMID4gZnV3YVwgOwor54mh6JuOID4ga2FraVwgOwor546L5omLID4gb3V0ZVwgOwor57695qC5ID4gaGFuZVwgOwor5pyo5oi4ID4ga2lkb1wgOwor5Lul5YmNID4gaXplblwgOwor5p2x5aS3ID4gdG91aVwgOwor6Z2e6K2wID4gaGlnaVwgOwor6Z+L57eoID4gaWhlblwgOwor5Lul5YaFID4gaW5haVwgOwor5LiA5rS+ID4gaXBwYVwgOwor5LiJ5q+bID4gbWlrZVwgOwor6Zu36ZuoID4gcmFpdVwgOwor6Kuz6K2cID4gYW5wdVwgOwor5LuY5YqgID4gZnVrYVwgOwor5LiN5qyhID4gZnVqaVwgOwor6ZuR6a2aID4gamFrb1wgOwor6K2356ymID4gZ29mdVwgOwor6Zuy6ZynID4gdW5tdVwgOwor5LqL5a6cID4gamlnaVwgOwor5puz5puzID4gZWllaVwgOwor5LqM5a2XID4gbmlqaVwgOwor5LiA5rCXID4gaWtraVwgOwor6LOm5LiOID4gZnV5b1wgOwor5p2P5a2QID4gYW56dVwgOwor5aeU57SwID4gaXNhaVwgOwor6Kuz6KiYID4gYW5raVwgOwor5aSn6YeOID4gb29ub1wgOwor5LiA5q2pID4gaXBwb1wgOwor5paO6YOoID4gaW5iZVwgOwor5Luj5L2NID4gZGFpaVwgOwor54uQ55aRID4ga29naVwgOwor546L5bqnID4gb3V6YVwgOwor5Luj5LujID4geW95b1wgOwor5aWH6LKoID4ga2lrYVwgOwor5Lul5LiKID4gaWpvdVwgOwor576p5peXID4gZ2lraVwgOwor55CG5LqLID4gcmlqaVwgOwor5pyJ5oSPID4geXV1aVwgOwor5pyJ5oOFID4gdWpvdVwgOwor5LiN5pyfID4gZnVraVwgOwor5LuW5LqLID4gdGFqaVwgOwor54uS54uSID4gaGloaVwgOwor5LuY5LiOID4gZnV5b1wgOwor5Li75oSPID4gc2h1aVwgOwor54uQ54u4ID4ga29yaVwgOwor5LiW5pWFID4gc2Vrb1wgOwor5LiN5pmCID4gZnVqaVwgOwor6Zyy6KqeID4gcm9nb1wgOwor5aSn6LevID4gb29qaVwgOwor546L5a62ID4gb3VrZVwgOwor576p5o+0ID4gZ2llblwgOwor546L5a2QID4gb3VqaVwgOwor5LiA5pyfID4gaWtraVwgOwor576p5o2QID4gZ2llblwgOwor6Kq56K2wID4gaGlnaVwgOwor6LK05LiLID4ga2lrYVwgOwor5LiA5paXID4gaXR0b1wgOwor546L5aaDID4gb3VoaVwgOwor546L5aWzID4gb3Vqb1wgOwor6Z2S6JGJID4gYW9iYVwgOwor6Kqe6LevID4gZ29yb1wgOwor6Z2S6I+cID4gYW9uYVwgOwor5LqS5YqpID4gZ29qb1wgOwor5pyo5aC0ID4ga2liYVwgOwor5LqU5YiGID4gZ29idVwgOwor5LiA5o+GID4gaWtraVwgOwor5LqL5YuZID4gamltdVwgOwor5LiL5omLID4gaGV0YVwgOwor5LiL5oi4ID4gZ2Vrb1wgOwor5p2x5LqeID4gdG91YVwgOwor5p2x5LqcID4gdG91YVwgOwor5pyo5ZywID4ga2lqaVwgOwor546L5ZyfID4gb3Vkb1wgOwor576O5oqAID4gYmlnaVwgOwor5LiK5oSPID4gam91aVwgOwor5LiA5oi4ID4gaWtrb1wgOwor54us5qW9ID4ga29tYVwgOwor6Kqk6KiYID4gZ29raVwgOwor6Z+z5rOiID4gb25wYVwgOwor5Lqb5LqLID4gc2FqaVwgOwor6Z+75q+NID4gaW5ib1wgOwor5pig55S7ID4gZWlnYVwgOwor5LqI5YKZID4geW9iaVwgOwor5LqM5L6hID4gbmlrYVwgOwor5pa96IKlID4gc2VoaVwgOwor6aGM5oSPID4gZGFpaVwgOwor5LqM5L2QID4gbmlzYVwgOwor5LqI5L6hID4geW9rYVwgOwor5aSW6KGjID4gZ2FpaVwgOwor5LiN5biwID4gZnVraVwgOwor5pW36KGNID4gZnVlblwgOwor5pep56iyID4gd2FzZVwgOwor6Kib6Z+zID4ga2FvblwgOwor57695aSqID4gaGF0YVwgOwor54WZ6ZynID4gZW5tdVwgOwor546L5YyWID4gb3VrYVwgOwor54WZ6ZyeID4gZW5rYVwgOwor54WZ6ZuoID4gZW4nJ3VcIDsKK+miqOWRgiA+IGZ1cm9cIDsKK+S5vuS9jSA+IGtlbmlcIDsKK+aTrOmfsyA+IGdpb25cIDsKK+WogeaoqSA+IGlrZW5cIDsKK+S4gOW3sSA+IGlra29cIDsKK+e4gei1tyA+IGVuZ2lcIDsKK+S5neWIhiA+IGt1YnVcIDsKK+S4jeWuiSA+IGZ1YW5cIDsKK+WmlueVsCA+IHlvdWlcIDsKK+iog+mfsyA+IGZ1b25cIDsKK+acuuS4iyA+IGtpa2FcIDsKK+eItuelliA+IGZ1c29cIDsKK+S4i+WpoiA+IGthaGlcIDsKK+S4gOWutiA+IGlra2VcIDsKK+mZsOmYnCA+IGluZnVcIDsKK+Wlh+e4gSA+IGtpZW5cIDsKK+aal+aEmiA+IGFuZ3VcIDsKK+S4juWkqiA+IHlvdGFcIDsKK+S4i+WlsyA+IGdlam9cIDsKK+eEoemnhCA+IG11ZGFcIDsKK+e4geiqniA+IGVuZ29cIDsKK+mbheiqniA+IGdhZ29cIDsKK+eOi+S6iyA+IG91amlcIDsKK+aZguapnyA+IGppa2lcIDsKK+aXqeeUnyA+IHdhc2VcIDsKK+eNo+WMuyA+IGp1dWlcIDsKK+e+juWnqyA+IGJpa2lcIDsKK+WppuWlsyA+IGZ1am9cIDsKK+e+juWmkyA+IGJpZ2lcIDsKK+miqOS9jSA+IGZ1dWlcIDsKK+e+juWlsyA+IGJpam9cIDsKK+S5neS5nSA+IGt1a3VcIDsKK+mdkuegpSA+IGFvdG9cIDsKK+WutuOAhSA+IGllaWVcIDsKK+eEoemfsyA+IG11b25cIDsKK+itsOahiCA+IGdpYW5cIDsKK+S4jeWbsyA+IGZ1dG9cIDsKK+mamOi3ryA+IGFpcm9cIDsKK+eMm+WogSA+IG1vdWlcIDsKK+mZjembqCA+IGtvdXVcIDsKK+aZuuaFpyA+IGNoaWVcIDsKK+S4jeWZqCA+IGZ1a2lcIDsKK+Wkmue+qSA+IHRhZ2lcIDsKK+aatOWogSA+IGJvdWlcIDsKK+Wkmue+hSA+IHRhcmFcIDsKK+aZguacnyA+IGppa2lcIDsKK+iqnue+qSA+IGdvZ2lcIDsKK+mZsOmDqCA+IGluYnVcIDsKK+Wls+eOiyA+IGpvb3VcIDsKK+S4u+S9jSA+IHNodWlcIDsKK+mdnueQhiA+IGhpcmlcIDsKK+mbsuiEgiA+IGZ1a2VcIDsKK+e+qeWLmSA+IGdpbXVcIDsKK+mbouiLpiA+IHJpa3VcIDsKK+aaruWknCA+IGJveWFcIDsKK+mdkueUsCA+IGFvdGFcIDsKK+S4jeWSjCA+IGZ1d2FcIDsKK+S4jeWRsyA+IGZ1bWlcIDsKK+maoOiqniA+IGluZ29cIDsKK+itt+aRqSA+IGdvbWFcIDsKK+S4ieWRsyA+IHNhbWlcIDsKK+S4jeWPryA+IGZ1a2FcIDsKK+S4i+WQjyA+IGthcmlcIDsKK+S4i+WPuCA+IGdlc3VcIDsKK+S4i+WPpSA+IGdla3VcIDsKK+e4t+e4tyA+IHJ1cnVcIDsKK+abtOS9jSA+IGtvdWlcIDsKK+WjgeidqCA+IGRhbmlcIDsKK+e+juWRsyA+IGJpbWlcIDsKK+S4i+WNkSA+IGdlYmlcIDsKK+iss+atjCA+IG91a2FcIDsKK+itt+aMgSA+IGdvamlcIDsKK+S4gOWPpSA+IGlra3VcIDsKK+S4jeWIqSA+IGZ1cmlcIDsKK+eEoemJmyA+IG11ZW5cIDsKK+e+juWMliA+IGJpa2FcIDsKK+S4gOWMuiA+IGlra3VcIDsKK+mgreWeoiA+IGZ1a2VcIDsKK+S4jeWFtyA+IGZ1Z3VcIDsKK+mgreWbsiA+IHRvdWlcIDsKK+iomOitnCA+IGtpZnVcIDsKK+S4jeWCmSA+IGZ1YmlcIDsKK+iom+iqniA+IGthZ29cIDsKK+eKoOaJkyA+IGdpZGFcIDsKK+WkluenkSA+IGdla2FcIDsKK+mboue4gSA+IHJpZW5cIDsKK+S4luS6iyA+IHNlamlcIDsKK+mfu+WtlyA+IGluamlcIDsKK+S4luS4liA+IHlveW9cIDsKK+Wkp+ebriA+IG9vbWVcIDsKK+eEoei+nCA+IG11a29cIDsKK+S4iuS9jSA+IGpvdWlcIDsKK+S4i+S7mCA+IGthZnVcIDsKK+e4geiAhSA+IGVuamFcIDsKK+aXpeatqSA+IGhpYnVcIDsKK+S4jeS6jCA+IGZ1amlcIDsKK+S4jeS6iCA+IGZ1eW9cIDsKK+S4gOWAiyA+IGlra29cIDsKK+eIvuaxnSA+IGppam9cIDsKK+WogeWuuSA+IGl5b3VcIDsKK+mfs+WtlyA+IG9uamlcIDsKK+WknOedgCA+IHlvZ2lcIDsKK+mZouitsCA+IGluZ2lcIDsKK+WknOebriA+IHlvbWVcIDsKK+S4gOS9kCA+IGlzc2FcIDsKK+eItuavjSA+IGZ1Ym9cIDsKK+mdnuavgCA+IGhpa2lcIDsKK+aZguW3riA+IGppc2FcIDsKK+e0sOmbqCA+IHNhaXVcIDsKK+mciueVsCA+IHJlaWlcIDsKK+iqh+ekuiA+IGtvamlcIDsKK+WfuumfsyA+IGtpb25cIDsKK+e3r+e3miA+IGlzZW5cIDsKK+mZhOitsCA+IGZ1Z2lcIDsKK+aZguWunCA+IGppZ2lcIDsKK+S7o+OAhSA+IHlveW9cIDsKK+maoOiAhSA+IGluamFcIDsKK+aZguWtoyA+IGppa2lcIDsKK+mWu+mtlCA+IGVubWFcIDsKK+aXpeaXpSA+IGhpYmlcIDsKK+aVsOePoCA+IGp1enVcIDsKK+mZhOiomCA+IGZ1a2lcIDsKK+mgpOS9vyA+IGlzaGlcIDsKK+mZsOiQjiA+IGluJydpXCA7Civpn7PlkJAgPiBvbnRvXCA7Civpn7Plj4kgPiBvbnNhXCA7CivlqIHlkI0gPiBpbWVpXCA7CivpnZLmnKggPiBhb2tpXCA7CivlqIHljrMgPiBpZ2VuXCA7CivorJ3mhI8gPiBzaGFpXCA7CivntrrnvoUgPiBraXJhXCA7CivlqIHli6IgPiBpc2VpXCA7Civln7rpg6ggPiBraWJ1XCA7CivlpoLmhI8gPiBueW9pXCA7CivorazllqkgPiBoaXl1XCA7CivorbDlk6EgPiBnaWluXCA7CivlqIHlhYkgPiBpa291XCA7Civlpb3mhI8gPiBrb3VpXCA7Civlpb3mgqogPiBrb3VvXCA7CivlpJzmsJcgPiB5YWtpXCA7Civpn7PkvqEgPiBvbmthXCA7Civpn7vkuosgPiBpbmppXCA7CivoqJjntIAgPiBraWtpXCA7Civml6LlvoAgPiBraW91XCA7Civoqp7msJcgPiBnb2tpXCA7CivniL7lvowgPiBqaWdvXCA7CivlqIHku6QgPiBpcmVpXCA7CivmmYLli5kgPiBqaW11XCA7CivlpaXmhI8gPiBva3VpXCA7CivlnqLpm6IgPiBrb3JpXCA7Civpm7LmsJcgPiB1bmtpXCA7CivplpPplpMgPiBtYW1hXCA7CivlopPnopEgPiBib2hpXCA7Civpm6jmsLQgPiB1c3VpXCA7CivorbLkvY0gPiBqb3VpXCA7CivloanntKAgPiBlbnNvXCA7CivmmYLkvqEgPiBqaWthXCA7CivorbDkuosgPiBnaWppXCA7CivnhKHnuIEgPiBtdWVuXCA7CivlpJzmmpcgPiB5YWFuXCA7CivmmYLkuosgPiBqaWppXCA7CivmmYLkuIsgPiBqaWthXCA7CivlpI/mnJ8gPiBrYWtpXCA7Civlp5Tku7sgPiBpbmluXCA7CivlpbTlqaIgPiBudWhpXCA7CivnuIrmrbsgPiBpc2hpXCA7CivlpKfmiYsgPiBvb2RlXCA7CivmnKjjgIUgPiBraWdpXCA7CivpnLLluqcgPiByb3phXCA7Civpm4XmrYwgPiBnYWthXCA7CivoqaDmrYwgPiBlaWthXCA7CivpmbDnlLsgPiBpbmdhXCA7CivlpKfmhI8gPiB0YWlpXCA7Civlo4rmrbsgPiBlc2hpXCA7CivnhKHnoo0gPiBtdWdlXCA7CivoqZDmrLogPiBzYWdpXCA7CivoqqDmhI8gPiBzZWlpXCA7CivnhZnngasgPiBlbmthXCA7CivntYznt68gPiBrZWlpXCA7CivpnZLlnLAgPiBhb2ppXCA7CivpnZLlm7MgPiBhb3p1XCA7CivmlazmhI8gPiBrZWlpXCA7CivmkannvoUgPiBtYXJhXCA7Civnspfph44gPiBzb3lhXCA7CivlpKflsYsgPiBvb3lhXCA7CivoqqTlt64gPiBnb3NhXCA7CivlpKflsIkgPiB0YWlpXCA7Civmm7PjgIUgPiBlaWVpXCA7CivnuIHmlYUgPiBlbmtvXCA7CivnhKHnkIYgPiBtdXJpXCA7CivlpKLlr5AgPiBtdWJpXCA7Civnt6/mm7ggPiBpc2hvXCA7CivlpJrlspAgPiB0YWtpXCA7CivnhZnms6IgPiBlbnBhXCA7Civns5booaMgPiB0b3VpXCA7CivpnLLlnLAgPiByb2ppXCA7CivlpbPlhZAgPiBqb2ppXCA7CivlpJrlr6EgPiB0YWthXCA7Civmj7TorbcgPiBlbmdvXCA7Civml6fkuosgPiBrdWppXCA7Civoqp7lsL4gPiBnb2JpXCA7CivoqqTlrZcgPiBnb2ppXCA7CivniL7kvZkgPiBqaXlvXCA7CivpnLLllrYgPiByb2VpXCA7CivkuJbjgIUgPiB5b3lvXCA7CivlpKXlpJogPiBrYXRhXCA7CivnhKHnhZkgPiBtdWVuXCA7CivmlbDlr4QgPiBzdWtpXCA7CivlpI/lraMgPiBrYWtpXCA7CivpmL/niYcgPiBhaGVuXCA7CivpmbDmsJcgPiBpbmtpXCA7CivlpJzlpJwgPiB5b3lvXCA7CivlpJrlpJogPiB0YXRhXCA7Civml5fkuIsgPiBraWthXCA7CivlnJ/plpMgPiBkb21hXCA7Civmjqrovp4gPiBzb2ppXCA7CivnuIHluqcgPiBlbnphXCA7CivmlrnkvY0gPiBob3VpXCA7CivlpJblm7IgPiBnYWlpXCA7CivoqrLlk6EgPiBrYWluXCA7Civln7rnpI4gPiBraXNvXCA7CivnhKHmtL4gPiBtdWhhXCA7Civopo/nn6kgPiBraWt1XCA7CivlpJzllrYgPiB5YWVpXCA7Civmv77pgY4gPiByb2thXCA7Civpm6jlpKkgPiB1dGVuXCA7CivlpYjkvZUgPiBpa2FuXCA7Civpm6jlo7AgPiB1c2VpXCA7CivnhKHmr5QgPiBtdWhpXCA7Civopovnm64gPiBtaW1lXCA7Civpm6jln58gPiB1aWtpXCA7CivnuIHlrrYgPiBlbmthXCA7CivlpJzljYogPiB5b3dhXCA7Civpm4nlrZAgPiBraWppXCA7CivooaPpppkgPiBpa291XCA7Civoqp7lkYIgPiBnb3JvXCA7CivnhKHmqZ8gPiBtdWtpXCA7Civoo5zoqp4gPiBob2dvXCA7Civnt4/mhI8gPiBzb3VpXCA7CivpmqDlvq4gPiBpbmJpXCA7Civoqp7lj6UgPiBnb2t1XCA7CivmjqnorbcgPiBlbmdvXCA7Civoo5zoqJggPiBob2tpXCA7Civpmo/mhI8gPiB6dWlpXCA7CivlpLfkurogPiBpamluXCA7CivooaPpoZ4gPiBpcnVpXCA7CivlpJzlhbcgPiB5YWd1XCA7CivnhKHmnJ8gPiBtdWtpXCA7Civnspfoj5MgPiBzb2thXCA7CivlpJrkvqEgPiB0YWthXCA7CivpnIrkvY0gPiByZWlpXCA7CivmlLvlm7IgPiBrb3VpXCA7CivlpJrkuosgPiB0YWppXCA7Civngavnrq0gPiBoaXlhXCA7CivntbXmnKwgPiBlaG9uXCA7Civlm7rovp4gPiBrb2ppXCA7Civni5LjgIUgPiBoaWhpXCA7CivlnJ/oqp4gPiBkb2dvXCA7CivlnLDooaMgPiBjaGlpXCA7CivmlJjlpLcgPiBqb3VpXCA7Civpm4flk6EgPiBrb2luXCA7CivnhKHmj7QgPiBtdWVuXCA7Civpm4XlkbMgPiBnYW1pXCA7CivnsL/oqJggPiBib2tpXCA7CivnhKHmiYsgPiBtdXRlXCA7CivnhKHmiJEgPiBtdWdhXCA7Civngavnn6IgPiBoaXlhXCA7CivpmL/miL8gPiBhaG91XCA7CivopofmsJcgPiBoYWtpXCA7Civoo5zogqUgPiBob2hpXCA7CivoqLTlm6AgPiBzb2luXCA7Civopo/mqKEgPiBraWJvXCA7Civpm4TlgYkgPiB5dXVpXCA7CivmlYXkuosgPiBrb2ppXCA7Civooojoo58gPiBrZXNhXCA7CivloZfluIMgPiB0b2Z1XCA7CivntbXluKsgPiBlc2hpXCA7CivpmaTlpJwgPiBqb3lhXCA7CivnhKHlraMgPiBtdWtpXCA7CivngavnhJQgPiBrYWVuXCA7Civngavngo4gPiBrYWVuXCA7CivngavngokgPiBrYXJvXCA7Civmirzpn7sgPiBvdWluXCA7Civloanln7ogPiBlbmtpXCA7Civmk6zlj6QgPiBnaWtvXCA7CivngrrmlL8gPiBpc2VpXCA7CivnhKHloakgPiBtdWVuXCA7Civmjqjnp7sgPiBzdWlpXCA7CivnhKHlnqIgPiBtdWt1XCA7CivnhKHlnLAgPiBtdWppXCA7CivpmYTlm7MgPiBmdXp1XCA7CivntKDmiYsgPiBzdWRlXCA7CivngavmsJcgPiBrYWtpXCA7Civmk6zkvLwgPiBnaWppXCA7CivloanljJYgPiBlbmthXCA7CivoqJjkuosgPiBraWppXCA7CivnhKHlkbMgPiBtdW1pXCA7Civml6XjgIUgPiBoaWJpXCA7CivpmL/lkYYgPiBhaG91XCA7CivlnLDnlbAgPiBjaGlpXCA7Civpl4fmhJogPiBhbmd1XCA7CivpmaLkuLsgPiBpbmp1XCA7CivloILlrocgPiBkb3V1XCA7CivpnZLjgIUgPiBhb2FvXCA7CivpmL/lhYQgPiBha2VpXCA7CivnhKHkvqEgPiBtdWthXCA7CivloLTlkIggPiBiYWFpXCA7CivntbXlg48gPiBlem91XCA7CivnhKHkuowgPiBtdW5pXCA7CivnhKHkuosgPiBidWppXCA7CivooaPntIsgPiBlbW9uXCA7CivntI3lsYsgPiBuYXlhXCA7CivopovloLQgPiBtaWJhXCA7CivpmL/kuJYgPiBhc2VpXCA7CivnrJHpoZQgPiBlZ2FvXCA7Civmj7bmj4QgPiB5YXl1XCA7Civln7rlm6AgPiBraWluXCA7CivntKDlnLAgPiBzb2ppXCA7CivntKDlm6AgPiBzb2luXCA7CivnspfmnLYgPiBzb2RhXCA7CivmiYvplpMgPiB0ZW1hXCA7Civlm7PnlLsgPiB6dWdhXCA7Civnq6DprZogPiB0YWtvXCA7CivlpJzjgIUgPiB5b3lvXCA7CivlpJrjgIUgPiB0YXRhXCA7CivngavlsYsgPiBob3lhXCA7CivmibnorbAgPiBoaWdpXCA7CivngKzmiLggPiBzZXRvXCA7Civonrvom4QgPiBrZXJhXCA7CivngavlpKsgPiBrYWZ1XCA7CivplpPlpKsgPiBtYWJ1XCA7CivmjIHnooEgPiBqaWdvXCA7CivmvJToiJ4gPiBlbmJ1XCA7Civns4rloZcgPiBrb3RvXCA7CivnspfluIMgPiBzb2Z1XCA7CivmvJTogIUgPiBlbmphXCA7CivngavlmaggPiBrYWtpXCA7Civom5npu70gPiBhYm91XCA7CivmvJTnvqkgPiBlbmdpXCA7Civmjo/mkbggPiBzdXJpXCA7CivooYzngrogPiBrb3VpXCA7CivnsaDmiYsgPiBrb3RlXCA7CivooYzngasgPiBhbmthXCA7CivnrofnrocgPiBrb2tvXCA7Civoo7jlqaYgPiByYWZ1XCA7Civlm7PmoYggPiB6dWFuXCA7CivlnJ/miYsgPiBkb3RlXCA7CivmuKnpm4UgPiBvbmdhXCA7Civmj7TliqkgPiBlbmpvXCA7Civonabon4cgPiBnYW1hXCA7Civlm6DmnpwgPiBpbmdhXCA7CivooaPmoYEgPiBpa291XCA7CivpvZ/pvawgPiBzb2dvXCA7CivngavkuosgPiBrYWppXCA7Civlm7rmjIEgPiBrb2ppXCA7Civlm5vmmYIgPiB5b2ppXCA7Civlm5vmlrkgPiB5b21vXCA7CivonYzomqogPiBrYXRvXCA7Civlm73lupwgPiBrb2Z1XCA7CivmjbvlrZAgPiBuZWppXCA7CivlnLDloLQgPiBqaWJhXCA7Civmt6vpnaEgPiBpbmJpXCA7CivmiYvnvr0gPiB0ZWJhXCA7CivonJroqp4gPiBoaWdvXCA7Civmt6vpm6ggPiBpbicndVwgOwor6KOc5YqpID4gaG9qb1wgOwor5o2p5a2QID4gbmVqaVwgOwor5rmv6JGJID4geXViYVwgOwor5oWw6ZyKID4gaXJlaVwgOwor5Zyf5ZmoID4gZG9raVwgOwor6JyY6JubID4ga3Vtb1wgOwor5oyJ5pGpID4gYW5tYVwgOwor6KGj5bivID4gaXRhaVwgOwor6KOc5L2QID4gaG9zYVwgOwor5o6I5Y+XID4ganVqdVwgOwor5omT56C0ID4gZGFoYVwgOwor5ou/5o2VID4gZGFob1wgOwor6by76Z+zID4gYmlvblwgOwor5Zyf5YyqID4gZG9oaVwgOwor5ZSW6Yi0ID4gYXJlaVwgOwor5ryU5q2mID4gZW5idVwgOwor5ryU5q2MID4gZW5rYVwgOwor5Zyw5L2NID4gY2hpaVwgOwor56e76aCFID4gaWtvdVwgOwor5Zyo5L2NID4gemFpaVwgOwor6KGN5a2XID4gZW5qaVwgOwor5ZyS5YWQID4gZW5qaVwgOwor5oSb6aasID4gYWliYVwgOwor5o6I5LiOID4ganV5b1wgOwor5Zub5ZuyID4gc2hpaVwgOwor5Zu65YyWID4ga29rYVwgOwor5o2V5ZCPID4gaG9yaVwgOwor5oSb6aOyID4gYWlpblwgOwor5ZOA6Z+zID4gYWlvblwgOwor5rW36aasID4gdG9kb1wgOwor5oSb6aGnID4gYWlrb1wgOwor5rW36Z6YID4gaG95YVwgOwor5Zue5ZCRID4gZWtvdVwgOwor5rih6IuxID4gdG9laVwgOwor5oiv55S7ID4gZ2lnYVwgOwor5oWw6KydID4gaXNoYVwgOwor6bu06ZuoID4gYmFpdVwgOwor5ryU5oqAID4gZW5naVwgOwor6KGj5YagID4gaWthblwgOwor5ryU5oivID4gZW5naVwgOwor56e76YCBID4gaXNvdVwgOwor5ZKM6Z+zID4gd2FvblwgOwor5oq85b+NID4gb3NzdVwgOwor56e76LuiID4gaXRlblwgOwor6YqF6ZG8ID4gZG9yYVwgOwor5oWw6JeJID4gaXNoYVwgOwor5oqK5oyBID4gaGFqaVwgOwor5oSb6LydID4gYWlraVwgOwor5rmv54WuID4geXVuaVwgOwor56e76K2yID4gaWpvdVwgOwor5oKq6ay8ID4gYWtraVwgOwor5oSP6LajID4gaXNodVwgOwor5oSb6K23ID4gYWlnb1wgOwor56e76KGMID4gaWtvdVwgOwor5ZOA6KmxID4gYWl3YVwgOwor5ZOA6Ki0ID4gYWlzb1wgOwor5ZGJ6aCIID4gZ29zdVwgOwor6ZaT44CFID4gbWFtYVwgOwor5ZGJ6Z+zID4gZ29vblwgOwor6buE6YmbID4gb3VlblwgOwor56eY6KmxID4gaGl3YVwgOwor5rmv5rCXID4geXVnZVwgOwor6J665a2QID4gbmVqaVwgOwor5oSP6KaLID4gaWtlblwgOwor5ouH5Y2wID4gYm9pblwgOwor6buE6LqrID4ga2ltaVwgOwor5ZKM6K2wID4gd2FnaVwgOwor5oq85Y2wID4gb3VpblwgOwor5Zmo5YW3ID4ga2lndVwgOwor5ZKM6KqeID4gd2Fnb1wgOwor5oKy6YGLID4gaGl1blwgOwor6byT6IieID4ga29idVwgOwor5ZCQ6ZyyID4gdG9yb1wgOwor5oGp6aGnID4gb25rb1wgOwor5oG16ZuoID4ga2VpdVwgOwor5rWu6I+vID4gZnVrYVwgOwor5rW36IuUID4gbm9yaVwgOwor5rW36IqLID4ga2FpdVwgOwor56We6YWSID4gbWlraVwgOwor5rWE6KGjID4gam91ZVwgOwor5rKz6aasID4ga2FiYVwgOwor6JWO6bqmID4gc29iYVwgOwor5oq85LiLID4gb3VrYVwgOwor5rih5rKzID4gdG9rYVwgOwor6bia6bWhID4gb3VtdVwgOwor5ZCI6ZaTID4gYWltYVwgOwor5Y+z6Z2iID4gdW1lblwgOwor6by756WWID4gYmlzb1wgOwor5oKq6LKoID4gYWtrYVwgOwor5rih5qynID4gdG9vdVwgOwor56e7566hID4gaWthblwgOwor5ZCm6YGLID4gaGl1blwgOwor5Y+k6Z+zID4ga29vblwgOwor5ZiU5ZCQID4gb3V0b1wgOwor5oKy6KmxID4gaGl3YVwgOwor5ZKM6IuxID4gd2FlaVwgOwor5Y+k6ZuFID4ga29nYVwgOwor5ruL5ZGzID4gamltaVwgOwor5om25YqpID4gZnVqb1wgOwor5ZSW54S2ID4gYXplblwgOwor6JiH6IqzID4gc3VvdVwgOwor562J5L2NID4gdG91aVwgOwor6JeN6KS4ID4gYm9yb1wgOwor5oKq6KGjID4gYWt1aVwgOwor56WW6KqeID4gc29nb1wgOwor5oCq6ZuoID4ga2FpdVwgOwor5rmv5bGLID4geXV5YVwgOwor5ZS+5qOEID4gZGFraVwgOwor5Y+z6L66ID4gdWhlblwgOwor5oWI54i2ID4gamlmdVwgOwor5Zac5a+/ID4ga2lqdVwgOwor5Y+k6YO9ID4ga290b1wgOwor5rK/6LevID4gZW5yb1wgOwor6YeO6YSZID4geWFoaVwgOwor5rmv5aWzID4geXVuYVwgOwor5Y6t6ZuiID4gb25yaVwgOwor6by754KOID4gYmllblwgOwor6YeO6L66ID4gbm9iZVwgOwor6buE57evID4ga291aVwgOwor6JWq6L6eID4gYnVqaVwgOwor5oGp6Kq8ID4gb25naVwgOwor56mO5p6cID4gZWlrYVwgOwor6Yut5rCXID4gZWlraVwgOwor5Za25Za2ID4gZWllaVwgOwor5rOV6KGjID4gaG91ZVwgOwor5rKz6LGaID4gZnVndVwgOwor6YeO6LevID4gbm9qaVwgOwor5rip5bqmID4gb25kb1wgOwor5rOV6J66ID4gaG9yYVwgOwor6JOW6bq7ID4gaGltYVwgOwor5omA5LulID4geXVlblwgOwor5ZGq56ymID4ganVmdVwgOwor5oWI5q+NID4gamlib1wgOwor5Y+k6KqeID4ga29nb1wgOwor5Za25YipID4gZWlyaVwgOwor5Y+k6KiYID4ga29raVwgOwor5b+c6ZyAID4gb3VqdVwgOwor6JaU6JaHID4gYmFyYVwgOwor5oiR5YipID4gZ2FyaVwgOwor56e75rCRID4gaW1pblwgOwor5ZaH5ZibID4gcmFtYVwgOwor5oaO5oKqID4gem91b1wgOwor56m65bCJID4ga3V1aVwgOwor56mO5oKfID4gZWlnb1wgOwor5rCX6Z+7ID4ga2lpblwgOwor5Y+z6JGJID4gdXlvdVwgOwor6bq755e6ID4gbWFoaVwgOwor5ZOA5q2MID4gYWlrYVwgOwor5rCX6ZqcID4ga2l6YVwgOwor5Y+X6JiKID4ganV1blwgOwor5b6h6aGUID4gb2thb1wgOwor5oSb5qmfID4gYWlraVwgOwor5Y+z6Ii3ID4gdWdlblwgOwor6bm157C/ID4gcm9ib1wgOwor5oGp576pID4gb25naVwgOwor5Y2B6ZuoID4ganV1dVwgOwor5Y+z6ISzID4gdW5vdVwgOwor5rip5ZKMID4gb253YVwgOwor5rC46YGgID4gZWllblwgOwor5oSa5qGIID4gZ3VhblwgOwor6YeO6ImvID4gbm9yYVwgOwor5b+M6YG/ID4ga2loaVwgOwor6JK/6ZuAID4gYW9qaVwgOwor5rer5ammID4gaW5wdVwgOwor5rCX6YutID4ga2llaVwgOwor5oOw5rCXID4gZGFraVwgOwor5ZKM5rCXID4gd2FraVwgOwor6JqK5bizID4ga2F5YVwgOwor5rW35p2+ID4gbWlydVwgOwor5oWI5oSbID4gamlhaVwgOwor5oWI5oKyID4gamloaVwgOwor5Y+l576pID4ga3VnaVwgOwor5Y+k576pID4ga29naVwgOwor5ZKM5q2MID4gd2FrYVwgOwor5rGa6KGMID4gb2tvdVwgOwor5ZG85rCXID4ga29raVwgOwor5rCX6YGLID4ga2l1blwgOwor6JqK5bGLID4ga2F5YVwgOwor56C06aKoID4gaGFmdVwgOwor5oSb5pKrID4gYWlidVwgOwor6buE5rOJID4geW9taVwgOwor5Y2w6K2cID4gaW5wdVwgOwor5b+c6Ki0ID4gb3Vzb1wgOwor5b6h6YWSID4gbWlraVwgOwor5q+N6Z+zID4gYm9pblwgOwor6YO96ZuFID4gdG9nYVwgOwor6buE5quoID4gaGF6ZVwgOwor5b+M6KuxID4ga2lraVwgOwor5ZOA5oWVID4gYWlib1wgOwor5Yy76YGTID4gaWRvdVwgOwor5ZCI552AID4gYWlnaVwgOwor56mP5ZKMID4gb253YVwgOwor56m65L2NID4ga3V1aVwgOwor56eY5oqAID4gaGlnaVwgOwor56WW54i2ID4gc29mdVwgOwor5oSb5oWVID4gYWlib1wgOwor5b6h6LqrID4gb25taVwgOwor5ZCM55WwID4gZG91aVwgOwor5Y+k56iAID4ga29raVwgOwor5q666ZmjID4gdGF0ZVwgOwor5oWw5ZWPID4gaW1vblwgOwor5Y2R6KqeID4gaGlnb1wgOwor5Y2x6JmeID4ga2lndVwgOwor5oSP5oCdID4gaXNoaVwgOwor5oKy5q2MID4gaGlrYVwgOwor5Yy66LK7ID4ga3VoaVwgOwor5oSP5b+XID4gaXNoaVwgOwor5ZGG5rCXID4gYWtrZVwgOwor6YKq6a2UID4gamFtYVwgOwor6YKq6ay8ID4gamFraVwgOwor6YO96YSZID4gdG9oaVwgOwor5Yy66K2wID4ga3VnaVwgOwor56eB5oSPID4gc2hpaVwgOwor5b6S6LK7ID4gdG9oaVwgOwor5oWw5Yq0ID4gaXJvdVwgOwor56C06YKqID4gaGFqYVwgOwor5b6A6LevID4gb3Vyb1wgOwor5rer5LqLID4gaW5qaVwgOwor5Y+k55S7ID4ga29nYVwgOwor6YKq6aObID4gamFoaVwgOwor56WW5q+NID4gc29ib1wgOwor5b6h6KGjID4gZ3lvaVwgOwor6Yut5YipID4gZWlyaVwgOwor5rS+5omLID4gaGFkZVwgOwor5oKq5p6cID4gYWtrYVwgOwor5rK554WZID4geXVlblwgOwor5byl6ZmAID4gbWlkYVwgOwor6YeO54y/ID4geWFlblwgOwor5Y+X55CGID4ganVyaVwgOwor5ZG85b+cID4ga29vdVwgOwor56eY5aWlID4gaGlvdVwgOwor5oCq55WwID4ga2FpaVwgOwor6YO96K2wID4gdG9naVwgOwor5oSP5aSWID4gaWdhaVwgOwor5q+U6KutID4gaGl5dVwgOwor6YG66aq4ID4gaWdhaVwgOwor5rGa56miID4gb3dhaVwgOwor5oSa5ZuzID4gZ3V6dVwgOwor5b6B6KGjID4gc2VpaVwgOwor5oOF5oSPID4gam91aVwgOwor5rWB5biDID4gcnVmdVwgOwor5q+N6KqeID4gYm9nb1wgOwor6YG66aaZID4gaWtvdVwgOwor6YeO54GrID4gbm9iaVwgOwor5ZKM5a2XID4gd2FqaVwgOwor5ZCI5q2TID4gbmVtdVwgOwor56e75YuVID4gaWRvdVwgOwor5Y2w57asID4gaW5qdVwgOwor5Yqg6ZmkID4ga2Fqb1wgOwor5b6h6Iy2ID4gb2NoYVwgOwor5oSP5ZquID4gaWtvdVwgOwor6YG66aKoID4gaWZ1dVwgOwor5q+A6KqJID4ga2l5b1wgOwor6bq75biDID4gbWFmdVwgOwor6by75LiLID4gYmlrYVwgOwor5oKq5oSfID4gb2thblwgOwor5oKq5oSPID4gYWt1aVwgOwor5oSP5ZCRID4gaWtvdVwgOwor56e75L2PID4gaWp1dVwgOwor6Jma5L2NID4ga3lvaVwgOwor5Yy76ICFID4gaXNoYVwgOwor5oG15pa5ID4gZWhvdVwgOwor6Jma5LuuID4ga29rZVwgOwor56e75LmXID4gaWpvdVwgOwor5oSb5YWQID4gYWlqaVwgOwor5Yqg6YeMID4ga2FyaVwgOwor6YeO5qyhID4geWFqaVwgOwor5rKZ5rGwID4gc2F0YVwgOwor56eY5YSAID4gaGlnaVwgOwor5Yqp6L6eID4gam9qaVwgOwor5q2m6YGLID4gYnV1blwgOwor5qyn6ZyyID4gb3Vyb1wgOwor5b6h57C+ID4gbWlzdVwgOwor5oKq5a+SID4gb2thblwgOwor5Y2x55aRID4ga2lnaVwgOwor5ZGz5ZmMID4gbWlzb1wgOwor5Y+z5pa5ID4gdWhvdVwgOwor5Y2w55S7ID4gaW5nYVwgOwor5buI6ZaAID4gYW1vaVwgOwor56eY5LqLID4gaGlqaVwgOwor5rGa54K5ID4gb3RlblwgOwor5Y2w55K9ID4gaW5qaVwgOwor5q+b5769ID4ga2ViYVwgOwor56aN5ZugID4ga2FpblwgOwor6YeO5pquID4geWFib1wgOwor5ZG15ZG1ID4ga2FrYVwgOwor5ZCM5oSPID4gZG91aVwgOwor5oCS5rCXID4gZG9raVwgOwor5ZCI5oSPID4gZ291aVwgOwor5b6h56S8ID4gb3JlaVwgOwor5rOi5biDID4gaGFidVwgOwor5b6h56KXID4gb3dhblwgOwor5oGj5oSPID4gc2hpaVwgOwor6JG16IqxID4ga2lrYVwgOwor5Yqg6K23ID4ga2Fnb1wgOwor6YG66LSIID4gaXpvdVwgOwor5rGa5rOlID4gb2RlaVwgOwor6YG66LOiID4gaWtlblwgOwor56OB5rCXID4gamlraVwgOwor6YG66LKhID4gaXphaVwgOwor55+z6JO0ID4gYW9zYVwgOwor5b6h55uGID4gb2JvblwgOwor5oKy5ZacID4gaGlraVwgOwor5rGa5rC0ID4gb3N1aVwgOwor5Y+N5pWFID4gaG9nb1wgOwor5byK6KGjID4gaGVpaVwgOwor5oKy5ZOAID4gaGlhaVwgOwor6YGg6LevID4gZW5yb1wgOwor5Yy755WMID4gaWthaVwgOwor6YG66KqhID4gaWthaVwgOwor5Yy755SoID4gaXlvdVwgOwor6YG66KiTID4gaWt1blwgOwor5Y2X54ShID4gbmFtdVwgOwor5b6B55+iID4gc295YVwgOwor6L+96aKoID4gb2l0ZVwgOwor5oKq5YyWID4gYWtrYVwgOwor5rCX54KOID4ga2llblwgOwor56CS57SgID4gaGlzb1wgOwor5oCq5oiRID4ga2VnYVwgOwor5Y+z5bK4ID4gdWdhblwgOwor6bq+5LiLID4ga2lrYVwgOwor5rC45rC4ID4gZWllaVwgOwor5rGa5p+TID4gb3NlblwgOwor5oGp5aiBID4gb24nJ2lcIDsKK+elh+WckiA+IGdpb25cIDsKK+WPpOW4jCA+IGtva2lcIDsKK+iNt+mnhCA+IG5pZGFcIDsKK+WNseapnyA+IGtpa2lcIDsKK+awl+a4qSA+IGtpb25cIDsKK+W+kueIviA+IHRvamlcIDsKK+aAneaDnyA+IHNoaWlcIDsKK+W+rua4qSA+IGJpb25cIDsKK+mBjuiqpCA+IGthZ29cIDsKK+WPpOWtlyA+IGtvamlcIDsKK+WQiOWbsyA+IGFpenVcIDsKK+egtOeTnCA+IGhha2FcIDsKK+mBuuiRlyA+IGljaG9cIDsKK+W5vumHjSA+IGlrdWVcIDsKK+axmuaQjSA+IG9zb25cIDsKK+WQj+WToSA+IHJpaW5cIDsKK+WOreaCqiA+IGVuJydvXCA7Civlj6/loZEgPiBrYXNvXCA7CivljrvlubQgPiBrb3pvXCA7CivpgbrojYkgPiBpc291XCA7Civojqvov6YgPiBiYWthXCA7CivpgbroirMgPiBpaG91XCA7CivlkI3ljLsgPiBtZWlpXCA7CivljprmhI8gPiBrb3VpXCA7CivlkI/li5kgPiByaW11XCA7CivmrYzoiJ4gPiBrYWJ1XCA7Civov4LpgaAgPiB1ZW5cIDsKK+W+ruaEjyA+IGJpaVwgOwor5Y+Z5L2NID4gam9pXCA7Civov4Lot68gPiB1cm9cIDsKK+W+l+aJiyA+IGV0ZVwgOwor5rCX5a6HID4ga2l1XCA7Civlt67pgZUgPiBzYWlcIDsKK+WMu+WutiA+IGlrYVwgOwor5YWr6YeNID4geWFlXCA7CivljLvlk6EgPiBpaW5cIDsKK+mBuuajhCA+IGlraVwgOwor5Yy75YuZID4gaW11XCA7CivljLvkuosgPiBpamlcIDsKK+mBuuaEmyA+IGlhaVwgOwor6YG65b2xID4gaWVpXCA7Civpg6jkvY0gPiBidWlcIDsKK+atpuWogSA+IGJ1aVwgOwor6YG65a2kID4gaWtvXCA7Civlt67nlbAgPiBzYWlcIDsKK+eVsOmfsyA+IGlvblwgOwor6YG65YWQID4gaWppXCA7CivpgZXlkowgPiBpd2FcIDsKK+mBuuS6iyA+IGlqaVwgOwor5biM5pyJID4ga2V1XCA7Civov4LmhJogPiB1Z3VcIDsKK+asp+S6nCA+IG91YVwgOwor5qyh5L2NID4gamlpXCA7CivmrKHkupwgPiBqaWFcIDsKK+ecieWuhyA+IGJpdVwgOwor6L6e5oSPID4gamlpXCA7CivnlbDorbAgPiBpZ2lcIDsKK+i+nuW9mSA+IGppaVwgOwor5bGF6ZaTID4gaW1hXCA7CivnlbDnvqkgPiBpZ2lcIDsKK+W4sOS+nSA+IGtpZVwgOwor6aaZ6a2aID4gYXl1XCA7CivmqZ/kvY0gPiBraWlcIDsKK+S8vOmdniA+IGVzZVwgOwor5bC+5769ID4gb2hhXCA7CivnlbDniLYgPiBpZnVcIDsKK+S8mumZsCA+IGVpblwgOwor5L2N6KiYID4gaWtpXCA7CivnlbDmr40gPiBpYm9cIDsKK+S6nOm6uyA+IGFtYVwgOwor5Lul6YGgID4gaWVuXCA7CivkvIroqp4gPiBpZ29cIDsKK+iHquaFsCA+IGppaVwgOwor5a6J6Iq4ID4gYWtpXCA7CivkupzpiZsgPiBhZW5cIDsKK+eUsuaWkCA+IGthaVwgOwor55WP5oe8ID4gaWt1XCA7CivnlY/mgJYgPiBpZnVcIDsKK+WwvuaguSA+IG9uZVwgOwor55S75oSPID4gZ2FpXCA7CivmpIXlrZAgPiBpc3VcIDsKK+eVsOWbsyA+IGl0b1wgOwor55Ww5YyWID4gaWthXCA7Civog4Pngo4gPiBpZW5cIDsKK+S9jeasoSA+IGlqaVwgOwor5L6d5oCZID4gZWtvXCA7Civkupznp5EgPiBha2FcIDsKK+S9meaEjyA+IHlvaVwgOwor5Luu5pyJID4ga2V1XCA7Civkvo3ljLsgPiBqaWlcIDsKK+S6keeCuiA+IHVuaVwgOwor5L6d5LywID4gZWtvXCA7CivkupzmrKcgPiBhb3VcIDsKK+S7peW+jCA+IGlnb1wgOwor5Lul5b6AID4gaW91XCA7Civku5bmhI8gPiB0YWlcIDsKK+izgOaEjyA+IGdhaVwgOwor5pyJ54ShID4gdW11XCA7CivosrTmhI8gPiBraWlcIDsKK+S8muWOrSA+IGVlblwgOwor5qCE5L2NID4gZWlpXCA7CivkupXmiLggPiBpZG9cIDsKK+mdnumBlSA+IGhpaVwgOwor5aSc6ZuoID4geWF1XCA7CivlpJrpm6ggPiB0YXVcIDsKK+S6jOWwiSA+IG5paVwgOwor6Zuo6ZyyID4gdXJvXCA7Civku6XkuIsgPiBpa2FcIDsKK+WiqOmtmiA+IGlrYVwgOwor5LiN5oSPID4gZnVpXCA7CivkuIvmhI8gPiBrYWlcIDsKK+S6jOS9jSA+IG5paVwgOwor5aiB5q2mID4gaWJ1XCA7CivmnInljaYgPiB1a2VcIDsKK+eOi+S9jSA+IG91aVwgOwor576F5a6HID4gcmFvXCA7Civnvr3ljJYgPiB1a2FcIDsKK+e1temmrCA+IGVtYVwgOwor5aeU5qOEID4gaWtpXCA7CivlpYfnlbAgPiBraWlcIDsKK+S4i+S9jSA+IGthaVwgOwor6Zi/6KubID4gYXl1XCA7CivlqIHlhIAgPiBpZ2lcIDsKK+WjiueWvSA+IGVzb1wgOwor54OP6LOKID4gaWthXCA7Civlp5Tlk6EgPiBpaW5cIDsKK+mbqOawlyA+IHVraVwgOwor5aeU5LuYID4gaWZ1XCA7Civpm6jmnJ8gPiB1a2lcIDsKK+iqnuaEjyA+IGdvaVwgOwor6Kqe5b2ZID4gZ29pXCA7CivlpbPljLsgPiBqb2lcIDsKK+WmguS9lSA+IGRvdVwgOwor6Zuo5b6MID4gdWdvXCA7CivmlYXmhI8gPiBrb2lcIDsKK+eEoeeCuiA+IG11aVwgOwor6KOc6YG6ID4gaG9pXCA7Civpm6jlraMgPiB1a2lcIDsKK+e3r+W6piA+IGlkb1wgOwor6Zi/5q+UID4gYWJpXCA7Civntq3mjIEgPiBpamlcIDsKK+mbsuS4uSA+IHVuaVwgOwor54Sh5oSPID4gbXVpXCA7CivpmL/lrZcgPiBhamlcIDsKK+mYv+WqvSA+IGFtYVwgOwor54Gw5rGBID4gYWt1XCA7CivntbXlm7MgPiBlenVcIDsKK+imi+W+lyA+IG1pZVwgOwor6Zi/5ZC9ID4gYXVuXCA7CivnhKHkvY0gPiBtdWlcIDsKK+a7i+mbqCA+IGppdVwgOwor5Zuy56KBID4gaWdvXCA7CivntIbkvZkgPiB1eW9cIDsKK+iho+aetiA+IGlrYVwgOwor5oWI6ZuoID4gaml1XCA7Civmtbfpq6ogPiBvZ29cIDsKK+aEj+mmrCA+IGliYVwgOwor5Zuz5LyaID4genVlXCA7CivmiYDngrogPiBzZWlcIDsKK+aCqumcsiA+IG9yb1wgOwor5rW36IOGID4gdW5pXCA7CivmtbfogIEgPiBlYmlcIDsKK+aIkeaEjyA+IGdhaVwgOwor6bq76KGjID4gbWFpXCA7CivmhI/nvqkgPiBpZ2lcIDsKK+idpuWktyA+IGV6b1wgOwor56Gr6buEID4gaW91XCA7CivmhbDmkqsgPiBpYnVcIDsKK+W+rumbqCA+IGJpdVwgOwor5oSP5rCXID4gaWtpXCA7Civpi63mhI8gPiBlaWlcIDsKK+epouWkmiA+IGV0YVwgOwor5Yy76ZmiID4gaWluXCA7CivnqaLlnJ8gPiBlZG9cIDsKK+WPs+e4gSA+IHVlblwgOwor5oWw5a6JID4gaWFuXCA7CivljYHph40gPiB0b2VcIDsKK+aEmuaEjyA+IGd1aVwgOwor5rW35aWzID4gYW1hXCA7CivmhI/lnLAgPiBpamlcIDsKK+aEj+WbsyA+IGl0b1wgOwor5Y+z5rS+ID4gdWhhXCA7CivmhI/lkbMgPiBpbWlcIDsKK+iQjumdoSA+IGliaVwgOwor5rW35Lq6ID4gYW1hXCA7CivljLvnp5EgPiBpa2FcIDsKK+W5tOmtmiA+IGF5dVwgOwor5Y+l5oSPID4ga3VpXCA7Civlj6TmhI8gPiBrb2lcIDsKK+mBuuipoCA+IGllaVwgOwor56S65aiBID4gamlpXCA7CivmsZ/miLggPiBlZG9cIDsKK+S8iuS6lSA+IGlpXCA7Civll5rlkbwgPiBhYVwgOwor6LuWID4gdHN1bXVnaWt1cnVtYVwgOwor57OOID4gc2VuY2hpbWVpdG9ydVwgOwor57KoID4gaGVrdXRvbWVldG9ydVwgOwor54irID4gdHN1bWVrYW5tdXJpXCA7Civlv4QgPiByaXRzdXNoaW5iZW5cIDsKK+W/lyA+IGtva29yb3phc2hpXCA7CivmlL8gPiBtYXRzdXJpZ290b1wgOwor6baOID4ga2lrdWl0YWRha2lcIDsKK+eyjSA+IG1pcmltZWl0b3J1XCA7CivnsoEgPiBraXJvbWVpdG9ydVwgOwor57G1ID4gZGVrYW1lZXRvcnVcIDsKK+ersCA+IHNlbmNoaXJpdHRvXCA7Civnq6EgPiBoZWt1dG9yaXR0b1wgOwor56uTID4gbWlyaXJpdHRvcnVcIDsKK+erjyA+IGtpcm9yaXR0b3J1XCA7Civnk7AgPiBkZXNoaWd1cmFtdVwgOwor5bexID4gdHN1Y2hpbm90b1wgOwor5bGhID4gc2hpYmFzaGliYVwgOwor6KyAID4gaGFrYXJpZ290b1wgOwor54afID4gdHN1a3VkenVrdVwgOwor5Zi0ID4ga3VjaGliYXNoaVwgOwor44CFID4ga3VyaWthZXNoaVwgOwor6YWbID4gc2FrZW5vbW90b1wgOwor6KmUID4gbWlrb3Rvbm9yaVwgOwor6J2fID4gaGFyaW5lenVtaVwgOwor6JCZID4ga3V0YWJpcmVydVwgOwor56uVID4gZGVzaGlyaXR0b1wgOwor55SFID4gc2VuY2hpZ3VyYVwgOwor55O4ID4gaGVrdXRvZ3VyYVwgOwor55OxID4gbWlyaWd1cmFtdVwgOwor55OpID4ga2lyb2d1cmFtdVwgOwor55OnID4gZGVrYWd1cmFtdVwgOwor5pOFID4gaG9zaGlpbWFtYVwgOwor5YuFID4gbWlrb3Rvbm9yaVwgOwor5YCpID4gdHN1cmF0c3VyYVwgOwor5bm7ID4gbWFib3Jvc2hpXCA7CivlsY0gPiBzaGlrYWJhbmVcIDsKK+WtpCA+IG1pbmFzaGlnb1wgOwor54yqID4gaW5vc2hpc2hpXCA7CivllIcgPiBrdWNoaWJpcnVcIDsKK+aqoyA+IGhvYmFzaGlyYVwgOwor5qmYID4gdGFjaGliYW5hXCA7CivlhbUgPiB0c3V3YW1vbm9cIDsKK+mKgCA+IHNoaXJvZ2FuZVwgOwor6YKqID4geW9rb3NoaW1hXCA7Civpr5AgPiBzdWJhc2hpcmlcIDsKK+mulyA+IGtvbm9zaGlyb1wgOwor6ZidID4ga296YXRvaGVuXCA7CivouJ0gPiBrdXJ1YnVzaGlcIDsKK+ijgyA+IGthbWlzaGltb1wgOwor6KGkID4ga29yb21vaGVuXCA7Civnq40gPiBkZWthcml0dG9cIDsKK+eKrSA+IGtlbW9ub2hlblwgOwor5qS0ID4gdG9kb21hdHN1XCA7CivltZkgPiB5YW1hc2hpbmFcIDsKK+WwuCA+IHNoaWthYmFuZVwgOwor5YepID4ga29nYXJhc2hpXCA7CivkuqUgPiBpbm9zaGlzaGlcIDsKK+W8sSA+IG5heW9uYXlvXCA7CivoubIgPiB0c3VrdWJhaVwgOwor5aeRID4gc2h1dXRvbWVcIDsKK+WhiiA+IGthdGFtYXJpXCA7CivloKQgPiB0c3V0c3VtaVwgOwor6byTID4gdHN1ZHp1bWlcIDsKK+a6kCA+IG1pbmFtb3RvXCA7Civpto8gPiBuaXdhdG9yaVwgOwor5Y+iID4ga3VzYW11cmFcIDsKK+WNsCA+IHNoaXJ1c2hpXCA7CivprYIgPiB0YW1hc2hpaVwgOwor6IW4ID4gaGFyYXdhdGFcIDsKK+adryA+IHNha2F6dWtpXCA7Civpm7cgPiBrYW1pbmFyaVwgOwor6ZuBID4ga2FyaWdhbmVcIDsKK+aagSA+IGFrYXRzdWtpXCA7CivntKsgPiBtdXJhc2FraVwgOwor5o6MID4gdGVub2hpcmFcIDsKK+aKkSA+IHNvbW9zb21vXCA7Civmh5AgPiBmdXRva29yb1wgOwor6bubID4gbWF5dXp1bWlcIDsKK+mxqSA+IGhhdGFoYXRhXCA7CivpsLAgPiBoYXRhaGF0YVwgOwor6a+RID4ga2F6dW5va29cIDsKK+mtgSA+IHNha2lnYWtlXCA7CivprKMgPiB0YXRlZ2FtaVwgOwor6aSeID4gaGFuYW11a2VcIDsKK+mgkSA+IGthdGFrdW5hXCA7CivpmrwgPiBoYXlhYnVzYVwgOwor6Zm1ID4gbWlzYXNhZ2lcIDsKK+mWiiA+IHRzdWthZXJ1XCA7Civpi7ggPiBub2tvZ2lyaVwgOwor6Lq+ID4gc2hpdHN1a2VcIDsKK+iruiA+IGtvdG93YXphXCA7CivopIwgPiBmdW5kb3NoaVwgOwor6JukID4gaGFtYWd1cmlcIDsKK+iSnCA+IG5pbicnbmlrdVwgOwor6IG+ID4gbWltaXNoaWlcIDsKK+e2tCA+IHRzdWR6dXJpXCA7Civnr4EgPiB0YWthbXVyYVwgOwor562NID4gdGFrZW5va29cIDsKK+eikSA+IGlzaGlidW1pXCA7CivnmbggPiBtaXp1bm90b1wgOwor5ryjID4gc2F6YW5hbWlcIDsKK+aloCA+IGt1c3Vub2tpXCA7Civlt6sgPiBrYW4nJ25hZ2lcIDsKK+WvvyA+IGtvdG9idWtpXCA7CivlnJUgPiB0b3Nob2thblwgOwor5b2iID4ga2F0YWNoaVwgOwor6L2NID4gd2FkYWNoaVwgOwor5be3ID4gY2hpbWF0YVwgOwor6LejID4gaGFkYXNoaVwgOwor6LajID4gb21vbXVraVwgOwor5bGAID4gdHN1Ym9uZVwgOwor5a+nID4gbXVzaGlyb1wgOwor5426ID4ga2F3YXVzb1wgOwor54uQID4ga2l0c3VuZVwgOwor5auCID4gYW5peW9tZVwgOwor6KmxID4gaGFuYXNoaVwgOwor54eVID4gdHN1YmFtZVwgOwor5ru0ID4gc2hpenVrdVwgOwor5rmWID4gbWl6dXVtaVwgOwor5YmjID4gdHN1cnVnaVwgOwor5YedID4gc2hpa29yaVwgOwor5YagID4ga2FubXVyaVwgOwor5qS/ID4gdHN1YmFraVwgOwor5qKfID4gZnVrdXJvdVwgOwor6aCCID4gaXRhZGFraVwgOwor5p+xID4gaGFzaGlyYVwgOwor5L+OID4gbWFuYWl0YVwgOwor5p6XID4gaGF5YXNoaVwgOwor5L6NID4gc2FtdXJhaVwgOwor576KID4gaGl0c3VqaVwgOwor5p2xID4gaGlnYXNoaVwgOwor5piUID4gbXVrYXNoaVwgOwor57WMID4gdGF0ZWl0b1wgOwor5621ID4gbXVzaGlyb1wgOwor6YymID4gbmlzaGlraVwgOwor56eBID4gd2F0YXNoaVwgOwor56WtID4gbWF0c3VyaVwgOwor56S+ID4geWFzaGlyb1wgOwor56K6ID4gdGFzaGlrYVwgOwor6YK4ID4geWFzaGlraVwgOwor6b2yID4gbXVzaGliYVwgOwor6bulID4gaXJlenVtaVwgOwor6barID4gdHN1Z3VtaVwgOwor6bWkID4gaWthcnVnYVwgOwor6bWGID4gY2hpZG9yaVwgOwor6bCYID4gbXVyb2FqaVwgOwor6a+zID4gc3VrZXNvdVwgOwor6ayYID4ga2F0c3VyYVwgOwor6ZurID4gc2hpenVrdVwgOwor6Y65ID4ga2FzdWdhaVwgOwor6YupID4ga2lzc2FraVwgOwor6YuSID4ga2lzc2FraVwgOwor6YqvID4ga2FzdWdhaVwgOwor6LmEID4gaGlkenVtZVwgOwor6KysID4gYXlhbWFyaVwgOwor6Kq8ID4geW9zaGltaVwgOwor6KquID4geWFzYXNoaVwgOwor6KWFID4gY2hpaGF5YVwgOwor6KCOID4gdXdhYmFtaVwgOwor6J2uID4gbWFtdXNoaVwgOwor6JyGID4gc2hpamltaVwgOwor6JmxID4gc2hpcmFtaVwgOwor6JiwID4ga2F0c3VyYVwgOwor6JW+ID4gdHN1Ym9taVwgOwor6JOGID4gbXVzaGlyb1wgOwor6ImAID4gaGFzaGlrZVwgOwor6IGiID4gc2hpa2F0b1wgOwor57+8ID4gdHN1YmFzYVwgOwor57GhID4gc2hpbnNoaVwgOwor56SrID4gdHN1YnV0ZVwgOwor56SOID4gaXNoaXp1ZVwgOwor552rID4gbWF0c3VnZVwgOwor55SmID4geW9taWdhZVwgOwor54mcID4gdXNoaWhlblwgOwor5q+uID4gbXVzaGlydVwgOwor5q+fID4gbXVzaGlydVwgOwor5qW/ID4ga2F0c3VyYVwgOwor5qOXID4gbmF0c3VtZVwgOwor5qK7ID4gc2hpa2ltaVwgOwor5p+KID4gaGlpcmFnaVwgOwor5puZID4gYWtlYm9ub1wgOwor5pmSID4gc2FyYXNoaVwgOwor5peBID4gdHN1a3VyaVwgOwor5oyYID4gbXVzaGlydVwgOwor5ouzID4ga29idXNoaVwgOwor5oC6ID4ga29yYWVydVwgOwor5b6kID4gdGFrZXNoaVwgOwor5be9ID4gdGF0c3VtaVwgOwor5aOsID4gbWl6dW5vZVwgOwor5ZqPID4ga3VzaGFtaVwgOwor5Zm6ID4gaGFuYXNoaVwgOwor5L+kID4gb21va2FnZVwgOwor5Li8ID4gZG9uYnVyaVwgOwor44CDID4gb25hamlrdVwgOwor5568ID4gbWFidXRhXCA7CivovrcgPiBzdWJlcnVcIDsKK+eesyA+IGhpdG9taVwgOwor6LypID4geWFrYXJhXCA7Civnm7IgPiBtZXNoaWlcIDsKK+i7iiA+IGt1cnVtYVwgOwor5bqPID4gdHN1aWRlXCA7CivnmoYgPiBtaW4nJ25hXCA7CivluZUgPiB0b2JhcmlcIDsKK+W4syA+IHRvYmFyaVwgOwor5bidID4gbWlrYWRvXCA7Civlt6YgPiBoaWRhcmlcIDsKK+eWviA+IHNoaXRzdVwgOwor55WzID4gdGF0YW1pXCA7CivnlaAgPiBoYXRha2VcIDsKK+eVkSA+IGhhdGFrZVwgOwor55OmID4ga2F3YXJhXCA7CivlsqwgPiBtaXNha2lcIDsKK+WxiiA+IHRvZG9rZVwgOwor5bCKID4gbWlrb3RvXCA7Civlrp0gPiB0YWthcmFcIDsKK+eNoyA+IGtlbW9ub1wgOwor54u8ID4gb29rYW1pXCA7Civni6wgPiBkb2l0c3VcIDsKK+WriSA+IHNoaXRzdVwgOwor6KqgID4gbWFrb3RvXCA7CivoqLwgPiBha2FzaGlcIDsKK+eItiA+IGNoaWNoaVwgOwor6KibID4gbmFtYXJpXCA7CivlqJggPiBtdXN1bWVcIDsKK+WnvyA+IHN1Z2F0YVwgOwor5aa+ID4gd2FyYXdhXCA7CivlprkgPiBpbW91dG9cIDsKK+imgSA+IGthbmFtZVwgOwor6KW3ID4gdGFzdWtpXCA7CivnhZkgPiBrZW11cmlcIDsKK+illiA+IGZ1c3VtYVwgOwor5aSxID4gc2hpdHN1XCA7Civoo7ggPiBoYWRha2FcIDsKK+iitCA+IGhha2FtYVwgOwor6KKLID4gZnVrdXJvXCA7CivooaMgPiBrb3JvbW9cIDsKK+WftyA+IHNoaXRzdVwgOwor5r+VID4gc2hpdHN1XCA7Civon4sgPiBzaGl0c3VcIDsKK+WfgyA+IGhva29yaVwgOwor6J+AID4gc2h1dHN1XCA7CivpvKwgPiBpdGFjaGlcIDsKK+m8oCA+IG5lenVtaVwgOwor5ZyfID4gdHN1Y2hpXCA7CivmvIYgPiB1cnVzaGlcIDsKK+ibuSA+IHNhbmFnaVwgOwor6JuZID4ga2F3YXp1XCA7Civmub8gPiBzaGl0c3VcIDsKK+WZqCA+IHV0c3V3YVwgOwor5rivID4gbWluYXRvXCA7CivolqwgPiBrdXN1cmlcIDsKK+iWqiA+IHRha2lnaVwgOwor5raZID4gbmFtaWRhXCA7CivolocgPiB6ZW5tYWlcIDsKK+iWhCA+IHN1c3VraVwgOwor6bSJID4ga2FyYXN1XCA7Civlj7EgPiBzaGl0c3VcIDsKK+WOqCA+IGt1cml5YVwgOwor5Y24ID4gb3Jvc2hpXCA7CivljbUgPiB0YW1hZ29cIDsKK+atqiA+IGliaXRzdVwgOwor6a2aID4gc2FrYW5hXCA7CivljZcgPiBtaW5hbWlcIDsKK+WMoCA+IHRha3VtaVwgOwor5qu7ID4gc2FrdXJhXCA7Civoi7ogPiBpY2hpZ29cIDsKK+WLoiA+IGhhenVtaVwgOwor5qqcID4gaGlub2tpXCA7CivoiIUgPiBzaHV1dG9cIDsKK+amiiA+IHNha2FraVwgOwor5YWJID4gaGlrYXJpXCA7CivppKggPiB5YWthdGFcIDsKK+iCtCA+IHNha2FuYVwgOwor5qGcID4gc2FrdXJhXCA7CivlgJkgPiBzb3Vyb3VcIDsKK+mfvyA+IGhpYmlraVwgOwor5p+zID4geWFuYWdpXCA7Civkv6UgPiBrdXJ1bWFcIDsKK+S/oSA+IG1ha290b1wgOwor5L+EID4gbml3YWthXCA7Civkv4IgPiBrYWthcmlcIDsKK+S+vyA+IHlvc3VnYVwgOwor5p6VID4gbWFrdXJhXCA7CivmnLogPiB0c3VrdWVcIDsKK+S7jyA+IGhvdG9rZVwgOwor5puHID4ga3Vtb3JpXCA7Civpm4AgPiBzdXp1bWVcIDsKK+S6rCA+IG1peWFrb1wgOwor6ZqjID4gdG9uYXJpXCA7CivkubMgPiBjaGljaGlcIDsKK+S5mSA+IGtpbm90b1wgOwor5LmNID4gbmFnYXJhXCA7CivkuIcgPiB5b3JvenVcIDsKK+S4gyA+IHNoaWNoaVwgOwor57iBID4geW9zdWdhXCA7CivkuIEgPiBoaW5vdG9cIDsKK+e3kSA+IG1pZG9yaVwgOwor57WjID4ga2FzdXJpXCA7CivntYYgPiBraXp1bmFcIDsKK+ewviA+IHN1ZGFyZVwgOwor6Y+hID4ga2FnYW1pXCA7CivpjpYgPiBrdXNhcmlcIDsKK+etkiA+IHRzdXRzdVwgOwor5o2MID4gc2FiYWtpXCA7Civpi7wgPiBoYWdhbmVcIDsKK+erpSA+IHdhcmFiZVwgOwor6YuPID4gaGFzYW1pXCA7CivpioMgPiB0c3V0c3VcIDsKK+mJmyA+IG5hbWFyaVwgOwor5omJID4gdG9iaXJhXCA7CivmiYAgPiB0b2tvcm9cIDsKK+mDvSA+IG1peWFrb1wgOwor5oKJID4gc2hpdHN1XCA7CivpvaYgPiBoYWd1a2lcIDsKK+m8iCA+IHN1cHBvblwgOwor6bucID4gY2h1dHN1XCA7CivpuqkgPiBmdXN1bWFcIDsKK+m6kyA+IGZ1bW90b1wgOwor6bWlID4ga2FrZXN1XCA7CivptKwgPiB1Z3Vpc3VcIDsKK+m0jiA+IGthbW9tZVwgOwor6bG4ID4gc3V6dWtpXCA7CivpsbAgPiBzaGlpcmFcIDsKK+mxqiA+IHNoaWlyYVwgOwor6bC5ID4ga2F0c3VvXCA7CivpsK8gPiBpd2FzaGlcIDsKK+mwriA+IGl3YXNoaVwgOwor6bCaID4gaGFyYWthXCA7CivpsIogPiBuaXNoaW5cIDsKK+mwhiA+IHNhd2FyYVwgOwor6a+xID4gc2hhY2hpXCA7Civpr7AgPiBuYW1henVcIDsKK+mvqCA+IGt1amlyYVwgOwor6a+jID4gc3VydW1lXCA7CivprqogPiBtYWd1cm9cIDsKK+muliA+IGthamlrYVwgOwor6a6DID4gaGlyYW1lXCA7CivprbggPiBuYW1henVcIDsKK+morSA+IHNoaXRzdVwgOwor6aKqID4gb3Jvc2hpXCA7CivpnpAgPiBrb2hhemVcIDsKK+mcniA+IGthc3VtaVwgOwor6ZyZID4gbWl6b3JlXCA7Civpm5sgPiBoaXlva29cIDsKK+masiA+IHNoaXRzdVwgOwor6ZqwID4gc2hpdHN1XCA7CivpkaIgPiB5YXN1cmlcIDsKK+mRlSA+IHNoaXRzdVwgOwor6Y66ID4gaGFiYWtpXCA7CivpjLogPiBrYXphcmlcIDsKK+mKjSA+IGNoaXRzdVwgOwor6YqKID4gc2h1dHN1XCA7CivpiaUgPiBzaHV0c3VcIDsKK+mJiyA+IGthbicnbmFcIDsKK+mIqCA+IGhhYmFraVwgOwor6YaqID4gbW9yb21pXCA7Civpg4UgPiBzaGl0c3VcIDsKK+mBliA+IGFwcGFyZVwgOwor6L+aID4gdG90ZW1vXCA7Civou4ggPiB5YWdhdGVcIDsKK+i7hSA+IHlhZ2F0ZVwgOwor6Lq7ID4gdXRzdWtlXCA7Civouq4gPiBzZWdhcmVcIDsKK+i4tSA+IGtha2F0b1wgOwor6LOJID4gc2h1dHN1XCA7Civosq0gPiBzaGl0c3VcIDsKK+ixkSA+IGNoaXRzdVwgOwor6KiBID4gZ29uYmVuXCA7CivooqAgPiBjaGl0c3VcIDsKK+iinyA+IGNoaXRzdVwgOwor6KG+ID4gZnVzdW1hXCA7CivooI0gPiBzYXNvcmlcIDsKK+ifhCA+IGNoaXRzdVwgOwor6J2oID4gc2hpdHN1XCA7Civom40gPiBob3RhcnVcIDsKK+iWuiA+IG5henVuYVwgOwor6JWoID4gd2FyYWJpXCA7CivolLYgPiBzb25va29cIDsKK+iTrCA+IHlvbW9naVwgOwor6JK6ID4gc2hpdHN1XCA7CivokoUgPiBzdWt1bW9cIDsKK+iSgSA+IHNodXRzdVwgOwor6I6oID4gdGFiYWtvXCA7CivojLggPiBraW5va29cIDsKK+iGoyA+IGNoaXRzdVwgOwor6IagID4gbmlrYXdhXCA7CivohZ8gPiBjaGl0c3VcIDsKK+e6gyA+IGthc3VyaVwgOwor57iFID4gb2Rvc2hpXCA7Civnt5UgPiBrYXN1cmlcIDsKK+e1gCA+IGNodXRzdVwgOwor57OYID4gc3VrdW1vXCA7Civns5IgPiBob3NoaWlcIDsKK+eyrSA+IHN1a3Vtb1wgOwor56yCID4gdXRzdWJvXCA7Civnq4ggPiBrYW1hZG9cIDsKK+eqkiA+IGNoaXRzdVwgOwor56qLID4gY2h1dHN1XCA7Civnp6kgPiBjaGl0c3VcIDsKK+enpCA+IGhha2FyaVwgOwor56aKID4gbWlzb2dpXCA7CivnpZEgPiBjaGl0c3VcIDsKK+ekqSA+IHNoaXRzdVwgOwor56GyID4gaGF6YW1hXCA7CivnoKYgPiB0b3JpZGVcIDsKK+eUqSA+IHNodXRzdVwgOwor55O8ID4gc2FyYWtlXCA7CivnkrEgPiBzaGl0c3VcIDsKK+eRnyA+IHNoaXRzdVwgOwor54u4ID4gdGFudWtpXCA7CivniYMgPiBvdWNob3VcIDsKK+eDjyA+IGthcmFzdVwgOwor5riaID4gbmFnaXNhXCA7Civmto4gPiB5b2RhcmVcIDsKK+azjyA+IGNodXRzdVwgOwor5rGiID4gdHN1Y2hpXCA7CivmsYAgPiBtaWdpd2FcIDsKK+awtSA+IHNhbnp1aVwgOwor5qmZID4gZGFpZGFpXCA7CivmqLUgPiBraWtvcmlcIDsKK+aoriA+IGhva3Vzb1wgOwor5qWUID4ga3VzYWJpXCA7CivmpYogPiB5YW5hZ2lcIDsKK+akuSA+IHNhd2FyYVwgOwor5qSqID4ga3VudWdpXCA7CivmpKEgPiBrdW51Z2lcIDsKK+akmyA+IG1vbWlqaVwgOwor5qSaID4ga3VudWdpXCA7CivmorogPiBmdW1vdG9cIDsKK+ahvCA+IHNoaXRzdVwgOwor5qGOID4gc2hpdHN1XCA7CivmoJ4gPiBzaGlvcmlcIDsKK+afkiA+IHNoaXRzdVwgOwor5p2OID4gc3Vtb21vXCA7CivmmqYgPiBrb3lvbWlcIDsKK+aZiiA+IHNoaXRzdVwgOwor5pi0ID4gc3ViYXJ1XCA7CivmkZQgPiBzaHV0c3VcIDsKK+aMgyA+IGNoaXRzdVwgOwor5oq2ID4gY2hpdHN1XCA7CivmiZYgPiBoYW1lcnVcIDsKK+aGliA+IG5hbWFqaVwgOwor5oSxID4gc2hpdHN1XCA7CivlvaAgPiBrdXdha3VcIDsKK+W9jyA+IGt1d2FrdVwgOwor5b2NID4ga3V3YWt1XCA7CivlvYkgPiBrdXdha3VcIDsKK+W7kyA+IGt1cnV3YVwgOwor5bqiID4gY2hpdHN1XCA7CivluZ8gPiBub2JvcmlcIDsKK+W5iSA+IHRhenVuYVwgOwor5biZID4gY2hpdHN1XCA7CivltZAgPiBhcmFzaGlcIDsKK+W0kiA+IHNodXRzdVwgOwor5bKAID4gc2h1dHN1XCA7Civlr6EgPiB5YW1vbWVcIDsKK+WrnyA+IGppeXVrdVwgOwor5aa3ID4gY2hpdHN1XCA7Civloo4gPiBrdXdha3VcIDsKK+WgsiA+IHNoaXRzdVwgOwor5aCbID4gaGl5b2t1XCA7CivlnLcgPiBha3V0c3VcIDsKK+WSsCA+IHNodXRzdVwgOwor5ZCOID4ga2lzYWtpXCA7Civlj7ogPiBrYW1hc3VcIDsKK+WOoCA+IGthd2F5YVwgOwor5Y6UID4gc2hpdHN1XCA7CivljoAgPiBzaGl0c3VcIDsKK+WNmyA+IHNodXRzdVwgOwor5YqVID4gc2hpdHN1XCA7CivlhZwgPiBrYWJ1dG9cIDsKK+WEqCA+IHNoaXRzdVwgOwor5YGqID4gaGl5b2t1XCA7CivlgK0gPiB5YW1hdG9cIDsKK+S+hCA+IHNoaXRzdVwgOwor5LyhID4ga3VydW1hXCA7Civku50gPiBkb3Vqb3VcIDsKK+S7hyA+IGthdGFraVwgOwor44CSID4geXV1YmluXCA7Civov7AgPiBqdXRzdVwgOwor5b+FID4gaGl0c3VcIDsKK+i+uyA+IHRzdWppXCA7CivlvrkgPiB0ZXRzdVwgOwor556lID4gYmV0c3VcIDsKK+W+jCA+IG5vY2hpXCA7CivlvosgPiByaXRzdVwgOwor552AID4gY2hha3VcIDsKK+W8jyA+IHNoaWtpXCA7CivnmrogPiBzaGl3YVwgOwor6LqFID4gY2hva3VcIDsKK+eZviA+IGh5YWt1XCA7Civnmb0gPiBzaGlyb1wgOwor55m8ID4gaG90c3VcIDsKK+eZuiA+IGhhdHN1XCA7CivlubggPiBzYWNoaVwgOwor5bm0ID4gdG9zaGlcIDsKK+eZqiA+IHNoYWt1XCA7Civlt7QgPiB0b21vZVwgOwor55eFID4geWFtYWlcIDsKK+eVpSA+IHJ5YWt1XCA7CivnlaIgPiBoaXRzdVwgOwor55WcID4gY2hpa3VcIDsKK+eUuiA+IG1hY2hpXCA7CivnlLcgPiBvdG9rb1wgOwor55SxID4geW9zaGlcIDsKK+WztiA+IHNoaW1hXCA7Civos6ogPiB0YWNoaVwgOwor5bK4ID4ga2lzaGlcIDsKK+WxiCA+IGt1dHN1XCA7CivlsLsgPiBzaGlyaVwgOwor5bC6ID4gc2hha3VcIDsKK+WvpiA+IGppdHN1XCA7Civlr58gPiBzYXRzdVwgOwor5a+GID4gbWl0c3VcIDsKK+WutCA+IHV0YWdlXCA7CivlrqIgPiBreWFrdVwgOwor546HID4gcml0c3VcIDsKK+itmCA+IHNoaWtpXCA7CivnjL4gPiBrYXRzdVwgOwor6KqsID4gc2V0c3VcIDsKK+ipsCA+IGtpdHN1XCA7CivniLogPiBqaWppaVwgOwor54i1ID4gc2hha3VcIDsKK+iorSA+IHNldHN1XCA7CivniKogPiB0c3VtZVwgOwor6KijID4ga2V0c3VcIDsKK+inuCA+IHNob2t1XCA7Civnh60gPiBzaG9rdVwgOwor6KemID4gc2hva3VcIDsKK+inkiA+IHRzdW5vXCA7CivlprsgPiB0c3VtYVwgOwor54axID4gbmV0c3VcIDsKK+ilvyA+IG5pc2hpXCA7CivlpbQgPiB5YXRzdVwgOwor5aWqID4gZGF0c3VcIDsKK+WkjyA+IG5hdHN1XCA7Civng4ggPiByZXRzdVwgOwor6KOCID4gcmV0c3VcIDsKK+iityA+IGF3YXNlXCA7Civngo4gPiBob25vb1wgOwor5aKDID4gc2FrYWlcIDsKK+eBvCA+IHNoYWt1XCA7CivlobUgPiBjaGlyaVwgOwor5aGaID4gdHN1a2FcIDsKK+ihlyA+IG1hY2hpXCA7Civln7ogPiBtb3RvaVwgOwor5r+2ID4ga2F0c3VcIDsKK+WfkiA+IHJhY2hpXCA7Civln44gPiBzaGlyb1wgOwor6b2iID4geW93YWlcIDsKK+idlSA+IHNob2t1XCA7CivmvZQgPiBrZXRzdVwgOwor6by+ID4gaWJpa2lcIDsKK+icgiA+IGhhY2hpXCA7CivonIAgPiBzaG9rdVwgOwor6buQID4gbW9jaGlcIDsKK+a7kSA+IGthdHN1XCA7Civmu4UgPiBtZXRzdVwgOwor6JqVID4ga2Fpa29cIDsKK+a6jCA+IGhhdHN1XCA7Civpub8gPiBzaGlrYVwgOwor6JmrID4gbXVzaGlcIDsKK+iZniA+IG9zb3JlXCA7CivlmYIgPiB1d2FzYVwgOwor5riHID4ga2F0c3VcIDsKK+a3tSA+IGZ1Y2hpXCA7Civpt7IgPiB3YXNoaVwgOwor5reRID4gc2h1a3VcIDsKK+WXhyA+IHNob2t1XCA7CivptrQgPiB0c3VydVwgOwor6JaUID4gc2hva3VcIDsKK+WWhyA+IHJhdHN1XCA7CivllZwgPiBzZXRzdVwgOwor5ZS+ID4gdHN1YmFcIDsKK+a0uyA+IGthdHN1XCA7CivolJEgPiBiZXRzdVwgOwor5ZOyID4gdGV0c3VcIDsKK+aziSA+IGl6dW1pXCA7Civok4QgPiBjaGlrdVwgOwor5rK5ID4gYWJ1cmFcIDsKK+ayoSA+IGJvdHN1XCA7CivlkoQgPiB0b3RzdVwgOwor5rG6ID4ga2V0c3VcIDsKK+iRpiA+IHlvc2hpXCA7CivokZcgPiBjaGFrdVwgOwor5rGBID4gdHN1eXVcIDsKK+mwjCA+IGRvam91XCA7CivlkIkgPiBraWNoaVwgOwor5Y+tID4gaGF0c3VcIDsKK+WPoyA+IGt1Y2hpXCA7Civlj5QgPiBzaHVrdVwgOwor5q66ID4gc2F0c3VcIDsKK+auliA+IHNob2t1XCA7CivljbQgPiBreWFrdVwgOwor5Y2YID4gaGl0b2VcIDsKK+WNkiA+IHNvdHN1XCA7CivljLkgPiBoaXRzdVwgOwor5qyhID4gdHN1Z2lcIDsKK+WLvyA+IG1vY2hpXCA7Civpq64gPiBoYXRzdVwgOwor5qubID4ga3VzaGlcIDsKK+WKoyA+IHJldHN1XCA7Civoip0gPiBzaGliYVwgOwor5YqbID4gcnlva3VcIDsKK+iJtiA+IHRzdXlhXCA7CivmqYsgPiBoYXNoaVwgOwor5Yi5ID4gc2V0c3VcIDsKK+WItyA+IHNhdHN1XCA7CivmqKsgPiBrYXNoaVwgOwor5YilID4gYmV0c3VcIDsKK+WInSA+IGhhdHN1XCA7CivliJcgPiByZXRzdVwgOwor5qiSID4gbWl0c3VcIDsKK+iIjCA+IHNoaXRhXCA7CivliIcgPiBzZXRzdVwgOwor5YiDID4geWFpYmFcIDsKK+WGjCA+IHNhdHN1XCA7CivlhoogPiBzYXRzdVwgOwor6IWwID4ga29zaGlcIDsKK+WFqyA+IHlhdHN1XCA7CivlhY4gPiB1c2FnaVwgOwor5YWAID4ga290c3VcIDsKK+iEsSA+IGRhdHN1XCA7CivmpI0gPiBzaG9rdVwgOwor6ISIID4gbXlha3VcIDsKK+mkhSA+IG1vY2hpXCA7Civpo74gPiBzaG9rdVwgOwor6aOvID4gbWVzaGlcIDsKK+mjnyA+IHNob2t1XCA7CivmoqggPiBuYXNoaVwgOwor5qKiID4ga296dWVcIDsKK+aikyA+IGF6dXNhXCA7CivlgpEgPiBrZXRzdVwgOwor6IKFID4gc2h1a3VcIDsKK+iBtyA+IHNob2t1XCA7CivpoY0gPiBoaXRhaVwgOwor5YCfID4gc2hha3VcIDsKK+mggSA+IHBlaWppXCA7Civmn4QgPiB0c3VrYVwgOwor57+BID4gb2tpbmFcIDsKK+merSA+IG11Y2hpXCA7CivpnoQgPiBrYWJhblwgOwor5p2+ID4gbWF0c3VcIDsKK+mdtCA+IGt1dHN1XCA7CivnvbAgPiBiYXRzdVwgOwor572qID4gdHN1bWlcIDsKK+adnyA+IHRzdWthXCA7CivkvZsgPiBidXRzdVwgOwor5p2TID4gc2hha3VcIDsKK+S9jSA+IGt1cmFpXCA7CivnvLogPiBrZXRzdVwgOwor5Ly4ID4gbm9zaGlcIDsKK+mcsiA+IHRzdXl1XCA7CivpnLAgPiBhcmFyZVwgOwor5pyrID4gbWF0c3VcIDsKK+mcnCA+IHNoaW1vXCA7CivmnIggPiB0c3VraVwgOwor5puyID4ga3lva3VcIDsKK+mbnCA+IHphdHN1XCA7Civku5kgPiBzZW50b1wgOwor6ZuRID4gemF0c3VcIDsKK+mbhyA+IHlhdG9pXCA7Civkub4gPiBob3NoaVwgOwor5LmeID4ga290c3VcIDsKK+S4uyA+IG51c2hpXCA7CivnuK4gPiBzaHVrdVwgOwor5pifID4gaG9zaGlcIDsKK+e4niA+IHNoaW1hXCA7CivkuIsgPiBzaGl0YVwgOwor57axID4gdHN1bmFcIDsKK+e1tiA+IHpldHN1XCA7CivntZAgPiBrZXRzdVwgOwor57WCID4gb3dhcmlcIDsKK+aTjSA+IG1pc2FvXCA7Civmkq4gPiBzYXRzdVwgOwor6ZC1ID4gdGV0c3VcIDsKK+mQoSA+IHRldHN1XCA7Civnr4kgPiBjaGlrdVwgOwor56+AID4gYnVzaGlcIDsKK+euuCA+IGhhc2hpXCA7CivmjqUgPiBzZXRzdVwgOwor5o6gID4gcnlha3VcIDsKK+aOmCA+IGt1dHN1XCA7CivnrpIgPiBob3VraVwgOwor5o2pID4gcmV0c3VcIDsKK+etlCA+IGtvdGFlXCA7Civmi7YgPiBzYXRzdVwgOwor5outID4gc2hpa2lcIDsKK+aLrCA+IGthdHN1XCA7Civmi5kgPiBzZXRzdVwgOwor5ouUID4gYmF0c3VcIDsKK+eriyA+IHJpdHN1XCA7Civnq4ogPiBzZXRzdVwgOwor5ouCID4gZnV0c3VcIDsKK+aKnCA+IGJhdHN1XCA7CivmiokgPiBrZXRzdVwgOwor56qBID4gdG90c3VcIDsKK+eptCA+IGtldHN1XCA7CivpiaIgPiBoYWNoaVwgOwor5omVID4gZnV0c3VcIDsKK+mJhCA+IHRldHN1XCA7CivmiKogPiBzZXRzdVwgOwor5oimID4gaWt1c2FcIDsKK+mHiyA+IHNoYWt1XCA7Civph4ggPiBzaGFrdVwgOwor56WdID4gc2h1a3VcIDsKK+mFjCA+IHNoYWt1XCA7CivmhYQgPiByaXRzdVwgOwor5oOaID4ga290c3VcIDsKK+mBlCA+IHRhY2hpXCA7CivpgZMgPiBtaWNoaVwgOwor6YC5ID4gdGF0c3VcIDsKK+mAkCA+IGNoaWt1XCA7CivpgIYgPiBneWFrdVwgOwor5b+9ID4ga290c3VcIDsKK+m+niA+IGJldHN1XCA7CivpvacgPiBrZXRzdVwgOwor6b2VID4ga290c3VcIDsKK+m9gyA+IGthdHN1XCA7CivpvL8gPiBnb3RzdVwgOwor6byOID4ga2FuYWVcIDsKK+m7uyA+IGZ1dHN1XCA7Civpu6AgPiBrYXRzdVwgOwor6bq5ID4ga291amlcIDsKK+m3qyA+IHNodWt1XCA7Civpt6kgPiBoZXRzdVwgOwor6ba7ID4ga290c3VcIDsKK+m2oSA+IGthdHN1XCA7Civpto0gPiBpc3VrYVwgOwor6baJID4gdXp1cmFcIDsKK+m1kyA+IGhvdHN1XCA7CivptLAgPiBrYXRzdVwgOwor6bSrID4gc2hpZ2lcIDsKK+m0gyA+IGtldHN1XCA7CivptIIgPiBrZXRzdVwgOwor6bK+ID4gaHlha3VcIDsKK+myrCA+IGtvY2hpXCA7CivpsZcgPiB1cm9rb1wgOwor6bGQID4gc2h1a3VcIDsKK+mxiSA+IGJldHN1XCA7CivpsYEgPiBjaGlrdVwgOwor6bC7ID4gdW5hZ2lcIDsKK+mwkiA+IGF3YWJpXCA7CivpsI8gPiBoeW9rdVwgOwor6bCNID4gaW5hZGFcIDsKK+mwiSA+IGhpZ2FpXCA7CivpsIggPiBrYXJlaVwgOwor6a+yID4gZG9qb3VcIDsKK+mvkiA+IGtvY2hpXCA7Civpr48gPiBhc2FyaVwgOwor6a6tID4gc2hha2VcIDsKK+muqCA+IHN1c2hpXCA7CivprpogPiBraXRzdVwgOwor6a6TID4gc3VzaGlcIDsKK+mukSA+IGF3YWJpXCA7CivproUgPiBoaXRzdVwgOwor6a6EID4gZnV0c3VcIDsKK+mtqSA+IGhhY2hpXCA7CivprYMgPiBiYXRzdVwgOwor6ay7ID4gc2h1a3VcIDsKK+msoCA+IGthdHN1XCA7CivprI4gPiByYXRzdVwgOwor6au6ID4gZ2F0c3VcIDsKK+mrtCA+IGZ1dHN1XCA7CivpqZYgPiB0ZXRzdVwgOwor6amMID4gc2h1a3VcIDsKK+mpiyA+IGhhdHN1XCA7CivpqIQgPiByeW9rdVwgOwor6aecID4gaGl0c3VcIDsKK+mngyA+IGtldHN1XCA7CivpprkgPiBqaXRzdVwgOwor6aadID4gaGl0c3VcIDsKK+mmmyA+IGhhdHN1XCA7CivppYYgPiBoaXRzdVwgOwor6aSuID4gdGV0c3VcIDsKK+mknyA+IHRldHN1XCA7CivppJ0gPiBzaG9rdVwgOwor6aSRID4gaG90c3VcIDsKK+mjtiA+IGhpdHN1XCA7Civpo60gPiBjaG9rdVwgOwor6aKzID4ga2F0c3VcIDsKK+misCA+IGhhdHN1XCA7Civpoq8gPiBzYXRzdVwgOwor6aGjID4gc2h1a3VcIDsKK+mgoSA+IGtpdHN1XCA7CivpoIogPiBreW9rdVwgOwor6Z+kID4gYmF0c3VcIDsKK+mfoSA+IHNha2FuXCA7Civpn6AgPiBoaXRzdVwgOwor6Z+NID4gZnV0c3VcIDsKK+mfiCA+IGJldHN1XCA7Civpn4MgPiBkYXRzdVwgOwor6Z64ID4gaGl0c3VcIDsKK+meqCA+IGthdHN1XCA7CivpnbogPiBtYXRzdVwgOwor6Z25ID4ga2V0c3VcIDsKK+mdqCA+IGVrdWJvXCA7CivpmokgPiBnZXRzdVwgOwor6ZmfID4gY2hva3VcIDsKK+mYoiA+IGdvdHN1XCA7Civpl6UgPiB0YXRzdVwgOwor6ZeVID4ga2V0c3VcIDsKK+mXkSA+IGdldHN1XCA7Civpl4sgPiBrZXRzdVwgOwor6ZeKID4ga2F0c3VcIDsKK+mWpiA+IHNodWt1XCA7CivplqUgPiBiYXRzdVwgOwor6ZKDID4gc2hva3VcIDsKK+mRoCA+IHNoYWt1XCA7CivpkL0gPiB0YXRzdVwgOwor6ZCvID4gc2hha3VcIDsKK+mQjSA+IHRldHN1XCA7Civpj7ogPiBoYXRzdVwgOwor6Y+JID4gc2h5dXVcIDsKK+mPhSA+IHNoeXV1XCA7CivpjqcgPiB5b3JvaVwgOwor6Y6LID4ga2F0c3VcIDsKK+mNpSA+IGtldHN1XCA7CivpjZggPiBzYXRzdVwgOwor6Y2UID4gdHN1YmFcIDsKK+mMqCA+IGlrYXJpXCA7CivpjJggPiB0c3VtdVwgOwor6YuoID4gdGV0c3VcIDsKK+mLnSA+IHJldHN1XCA7Civpi40gPiBob3RzdVwgOwor6Yq9ID4ga2F0c3VcIDsKK+mKqyA+IHNob2t1XCA7CivpipUgPiB0ZXRzdVwgOwor6Ym9ID4gc2h1a3VcIDsKK+mJmCA+IGZ1dHN1XCA7CivpiLogPiBneW9rdVwgOwor6Yi4ID4gaGF0c3VcIDsKK+mIryA+IHRvdHN1XCA7CivpiKQgPiBqaXRzdVwgOwor6YiFID4gZ2V0c3VcIDsKK+mHsCA+IGppdHN1XCA7Civph58gPiBoYXRzdVwgOwor6YaxID4gaGF0c3VcIDsKK+mGlyA+IGhhdHN1XCA7CivphpQgPiBzaHl1dVwgOwor6YaKID4gdGV0c3VcIDsKK+mGgSA+IHJ5b2t1XCA7CivphasgPiBzZXRzdVwgOwor6YWmID4gaGF0c3VcIDsKK+mEkCA+IGNoaWt1XCA7CivpgrIgPiBoaXRzdVwgOwor6YC8ID4gaGl0c3VcIDsKK+mAryA+IHJ5b2t1XCA7CivpgIIgPiBrYXRzdVwgOwor6L++ID4gcmV0c3VcIDsKK+i/rSA+IHRldHN1XCA7Civovr4gPiB0YXRzdVwgOwor6L62ID4gY2hha3VcIDsKK+i+tSA+IGNoYWt1XCA7CivovrAgPiB0YXRzdVwgOwor6L6lID4gc2V0c3VcIDsKK+i+oyA+IHJhdHN1XCA7CivovpwgPiB0c3VtaVwgOwor6L2VID4ga2F0c3VcIDsKK+i9hCA+IGthdHN1XCA7CivovL8gPiBrb3NoaVwgOwor6Ly1ID4ga2F0c3VcIDsKK+i8nyA+IHRldHN1XCA7CivovIIgPiBreW9rdVwgOwor6Lu+ID4gc2hva3VcIDsKK+i7tyA+IGhhdHN1XCA7Civou48gPiBnZXRzdVwgOwor6LuEID4gc2hva3VcIDsKK+i6tSA+IG5lcmF1XCA7CivouqkgPiBreWFrdVwgOwor6LqCID4gdGF0c3VcIDsKK+i5tiA+IGtldHN1XCA7CivouakgPiBoZXRzdVwgOwor6LmcID4gc2h1a3VcIDsKK+i5mSA+IHNodWt1XCA7CivouZUgPiBoaXRzdVwgOwor6LinID4gc2h1a3VcIDsKK+i4iyA+IGt5YWt1XCA7Civot7wgPiBreW9rdVwgOwor6LebID4gYmlra29cIDsKK+i3jCA+IHRldHN1XCA7Civot4sgPiBiYXRzdVwgOwor6LeAID4gZ2V0c3VcIDsKK+i2uSA+IGtldHN1XCA7CivotrcgPiBrb3RzdVwgOwor6LaeID4gc2hha3VcIDsKK+i2kCA+IGtldHN1XCA7CivotakgPiBreW9rdVwgOwor6LSWID4gc2hva3VcIDsKK+izoSA+IHNob2t1XCA7CivospwgPiBreWFrdVwgOwor6LGBID4ga2F0c3VcIDsKK+iuniA+IGdldHN1XCA7CivorY4gPiBraXRzdVwgOwor6KyWID4gc2hva3VcIDsKK+islCA+IGd5YWt1XCA7CivorJAgPiBoaXRzdVwgOwor6KuUID4gc2h1a3VcIDsKK+iqsyA+IGt1dHN1XCA7CivoqqogPiBzZXRzdVwgOwor6KqWID4gaG90c3VcIDsKK+ippyA+IHNhdHN1XCA7CivoqZggPiBrdXRzdVwgOwor6KilID4gdG90c3VcIDsKK+ioliA+IGtpdHN1XCA7CivoqJAgPiBrZXRzdVwgOwor6KexID4gaGl0c3VcIDsKK+inliA+IGtldHN1XCA7CivoppUgPiBiZXRzdVwgOwor6KWtID4ga2V0c3VcIDsKK+ilqiA+IGJldHN1XCA7CivopaEgPiBzaG9rdVwgOwor6KWSID4gaGV0c3VcIDsKK+iljyA+IGhhdHN1XCA7CivopY0gPiB6YXRzdVwgOwor6KS7ID4gc2V0c3VcIDsKK+ikkCA+IGthdHN1XCA7CivopIQgPiB0c3VtYVwgOwor6KOwID4gdGF0c3VcIDsKK+iiuiA+IGtldHN1XCA7CivoopwgPiBiYXRzdVwgOwor6KKaID4gaGF0c3VcIDsKK+ihtSA+IGppdHN1XCA7CivooYsgPiBreW9rdVwgOwor6KGKID4gYmV0c3VcIDsKK+igvCA+IGt5YWt1XCA7CivooJ4gPiBzZXRzdVwgOwor6KCbID4gYmV0c3VcIDsKK+igmCA+IHNldHN1XCA7CivooIsgPiBzaG9rdVwgOwor6J+ZID4gc2hva3VcIDsKK+idsiA+IHJhdHN1XCA7CivonY4gPiBrYXRzdVwgOwor6JycID4gbWl0c3VcIDsKK+ichyA+IHRldHN1XCA7Civom6UgPiBzZXRzdVwgOwor6JujID4ga2l0c3VcIDsKK+ibniA+IGthdHN1XCA7Civom5ogPiByZXRzdVwgOwor6JmQID4gZ3lha3VcIDsKK+iYliA+IGdldHN1XCA7Civol5wgPiBha2F6YVwgOwor6JeaID4gc2hva3VcIDsKK+iWqSA+IHNhdHN1XCA7CivolqUgPiBzaG9rdVwgOwor6JabID4gc2V0c3VcIDsKK+iWmCA+IHRhdHN1XCA7CivoloogPiBhemFtaVwgOwor6JWfID4gaGl0c3VcIDsKK+iVnSA+IHNldHN1XCA7CivolYAgPiBreW9rdVwgOwor6JSmID4gdHN1dGFcIDsKK+iUpCA+IGJpdHN1XCA7CivolI4gPiBzZXRzdVwgOwor6JO/ID4gc2h1a3VcIDsKK+iTvSA+IGhpdHN1XCA7Civok4cgPiBrb3RzdVwgOwor6JGnID4gaG90c3VcIDsKK+iRnCA+IGthdHN1XCA7CivokZYgPiB0b3RzdVwgOwor6JGOID4gcml0c3VcIDsKK+iPvSA+IHNodWt1XCA7Civoj50gPiBoYXRzdVwgOwor6I+JID4gcnlva3VcIDsKK+iOrSA+IHNldHN1XCA7CivojoIgPiBoZXRzdVwgOwor6I24ID4gaG90c3VcIDsKK+iNlyA+IHNob2t1XCA7CivojKggPiBpYmFyYVwgOwor6IyiID4gcmV0c3VcIDsKK+iMnCA+IGFrYW5lXCA7CivojI0gPiBreW9rdVwgOwor6IyJID4gbWF0c3VcIDsKK+iMhyA+IGhhdHN1XCA7CivojIEgPiBzYXRzdVwgOwor6IyAID4gaHV0c3VcIDsKK+iLviA+IGhpdHN1XCA7Civoi7YgPiBkZXRzdVwgOwor6Iq0ID4gYnV0c3VcIDsKK+iKjSA+IHNoYWt1XCA7CivoibQgPiBob3RzdVwgOwor6IizID4gY2hpa3VcIDsKK+iInSA+IGthdHN1XCA7CivoiIQgPiBzaGFrdVwgOwor6IiDID4gc2hha3VcIDsKK+iHuCA+IGppdHN1XCA7Civoh7IgPiBnZXRzdVwgOwor6IeFID4gc2hva3VcIDsKK+iFtyA+IGh5b2t1XCA7Civoha8gPiB0b3RzdVwgOwor6ISrID4gZGF0c3VcIDsKK+iEliA+IGhvdHN1XCA7CivohIkgPiBteWFrdVwgOwor6IOIID4gaGF0c3VcIDsKK+iCuCA+IGtpdHN1XCA7Civogq0gPiBkb3RzdVwgOwor6IKLID4gYWJhcmFcIDsKK+iBkiA+IGthdHN1XCA7CivogYAgPiBzaG9rdVwgOwor6ICLID4gdGV0c3VcIDsKK+iAiiA+IHRldHN1XCA7Civnvq8gPiBrYXRzdVwgOwor576NID4gdGF0c3VcIDsKK+e9uCA+IGJhdHN1XCA7CivnvL0gPiBoYWNoaVwgOwor57y8ID4ga2V0c3VcIDsKK+e6iCA+IGtldHN1XCA7CivnubMgPiBzaGFrdVwgOwor57mYID4ga2l0c3VcIDsKK+e4rCA+IHNodWt1XCA7Civnt6QgPiBzZXRzdVwgOwor57a9ID4gc2hha3VcIDsKK+e2oCA+IHJ5b2t1XCA7Civnto0gPiBodXRzdVwgOwor57WwID4gdGV0c3VcIDsKK+e1nCA+IGtldHN1XCA7CivntZcgPiBrb3RzdVwgOwor57WVID4gemV0c3VcIDsKK+e1jyA+IHNldHN1XCA7CivntLwgPiBodXRzdVwgOwor57SyID4gc2V0c3VcIDsKK+e0sSA+IGh1dHN1XCA7CivntK4gPiBzYXRzdVwgOwor57SHID4ga290c3VcIDsKK+eztSA+IGdldHN1XCA7Civns48gPiBzZXRzdVwgOwor57OAID4ga291amlcIDsKK+eymyA+IHNodWt1XCA7CivnspIgPiB0c3VidVwgOwor57GZID4gcnlva3VcIDsKK+evviA+IGJldHN1XCA7Civnr7MgPiBoaXRzdVwgOwor56+pID4gZnVydWlcIDsKK+evpSA+IHJpdHN1XCA7CivnrrsgPiByaXRzdVwgOwor566aID4gc2F0c3VcIDsKK+etkSA+IGNoaWt1XCA7CivnrY8gPiBpa2FkYVwgOwor562BID4ga3lva3VcIDsKK+esvSA+IHNvdWtlXCA7CivnrLAgPiBodXRzdVwgOwor56yUID4gaGl0c3VcIDsKK+esjyA+IGtvdHN1XCA7Civnq60gPiBrZXRzdVwgOwor56qjID4gc290c3VcIDsKK+eqnyA+IGt1dHN1XCA7CivnqoMgPiBzZXRzdVwgOwor56mhID4gc2hva3VcIDsKK+eotyA+IHNob2t1XCA7CivnqK0gPiBrYXRzdVwgOwor56irID4gaHlva3VcIDsKK+eooSA+IHNvdHN1XCA7CivnqJkgPiBjaG9rdVwgOwor56e4ID4ga2F0c3VcIDsKK+enqyA+IGpvdHN1XCA7Civnp6MgPiBtYXRzdVwgOwor56ehID4gaGF0c3VcIDsKK+emnSA+IHNob2t1XCA7CivnpZMgPiBmdXRzdVwgOwor56OGID4ga2F0c3VcIDsKK+eivyA+IHNvdHN1XCA7CivnoqMgPiBrZXRzdVwgOwor56KfID4ga2F0c3VcIDsKK+eijyA+IHNoYWt1XCA7CivnoYggPiBrYXRzdVwgOwor55+7ID4ga290c3VcIDsKK+efmiA+IHNob2t1XCA7Civnn5cgPiBjaGlrdVwgOwor556uID4gdGV0c3VcIDsKK+eejiA+IGthdHN1XCA7CivnnbAgPiBiYXRzdVwgOwor55ycID4gYmF0c3VcIDsKK+ebiyA+IGhhdHN1XCA7Civnmq0gPiBzaGFrdVwgOwor55qVID4gaHlva3VcIDsKK+eajCA+IGJhdHN1XCA7CivnmbYgPiBoYXRzdVwgOwor55mkID4gc2V0c3VcIDsKK+eZnyA+IGhldHN1XCA7CivnmKcgPiBneWFrdVwgOwor55icID4gc2hva3VcIDsKK+eYjCA+IHJhdHN1XCA7CivnmIQgPiBzaGFrdVwgOwor55iDID4gc2hva3VcIDsKK+eXhiA+IGRhdHN1XCA7CivnlpkgPiBnaXRzdVwgOwor55W3ID4gdGV0c3VcIDsKK+eVpyA+IHJ5YWt1XCA7CivnlZ8gPiBzaG9rdVwgOwor55S2ID4gZnV0c3VcIDsKK+eTniA+IHRldHN1XCA7Civnka4gPiByaXRzdVwgOwor54+/ID4gc2h1a3VcIDsKK+ePjCA+IGhpdHN1XCA7CivnjqYgPiBrZXRzdVwgOwor546lID4gZ2V0c3VcIDsKK+eOkCA+IGhhdHN1XCA7CivnjoMgPiBreWFrdVwgOwor542mID4ga2F0c3VcIDsKK+eNnSA+IGtpdHN1XCA7CivnjZcgPiBrZXRzdVwgOwor54yyID4ga2F0c3VcIDsKK+eMnSA+IHNvdHN1XCA7Civni5ggPiBrZXRzdVwgOwor54quID4gaGF0c3VcIDsKK+eInSA+IHNoYWt1XCA7CivniI0gPiBzaGFrdVwgOwor54iHID4gemV0c3VcIDsKK+eHtSA+IHRhdHN1XCA7CivnhpogPiBoaXRzdVwgOwor54WeID4gc2F0c3VcIDsKK+eEryA+IHNoYWt1XCA7CivnhKsgPiB6ZXRzdVwgOwor54SUID4gaG9ub29cIDsKK+eEjyA+IGt5b2t1XCA7Civng5UgPiBrZXRzdVwgOwor54CSID4gc2hva3VcIDsKK+a/hyA+IHNob2t1XCA7CivmvoggPiB0ZXRzdVwgOwor5r2aID4gc2h1a3VcIDsKK+a9kSA+IGhhdHN1XCA7CivmvY8gPiBrZXRzdVwgOwor5rutID4gaGl0c3VcIDsKK+a7gCA+IGNoaWt1XCA7Civmuq0gPiBzaG9rdVwgOwor5rqnID4gcml0c3VcIDsKK+a6giA+IHJhdHN1XCA7CivmuaIgPiBoeW9rdVwgOwor5rmcID4gc2hva3VcIDsKK+a4tCA+IGthdHN1XCA7CivmuKsgPiBzZXRzdVwgOwor5rikID4gYm90c3VcIDsKK+a4iyA+IHNoaWJ1XCA7Civmt4ggPiBrb3RzdVwgOwor5raFID4gbmV0c3VcIDsKK+a1rCA+IGthaXJpXCA7CivmtaEgPiBob3RzdVwgOwor5rWZID4gc2V0c3VcIDsKK+a0ryA+IGtldHN1XCA7CivmtKsgPiBreW9rdVwgOwor5rSMID4gcmV0c3VcIDsKK+azrCA+IGtldHN1XCA7Civms5AgPiByeW9rdVwgOwor5rOMID4gaGl0c3VcIDsKK+ayuCA+IGZ1dHN1XCA7CivmsqsgPiBtYXRzdVwgOwor5rKVID4gYnV0c3VcIDsKK+aykiA+IGJvdHN1XCA7CivmsZQgPiBraXRzdVwgOwor5rCfID4gaHV0c3VcIDsKK+awkiA+IGtldHN1XCA7CivmrpsgPiBreW9rdVwgOwor5q6BID4gYm90c3VcIDsKK+atvyA+IGJvdHN1XCA7Civmrb4gPiBib3RzdVwgOwor5q29ID4gc2V0c3VcIDsKK+atuSA+IGdhdHN1XCA7CivmraAgPiBzZXRzdVwgOwor5q2YID4ga3V0c3VcIDsKK+athyA+IGtldHN1XCA7CivmrLsgPiBrdXRzdVwgOwor5qyvID4ga2l0c3VcIDsKK+asoCA+IGtldHN1XCA7CivmrJ8gPiB0c3VraVwgOwor5quxID4gZ2V0c3VcIDsKK+argSA+IG1pdHN1XCA7CivmqqsgPiBzYXRzdVwgOwor5qqLID4ga3lva3VcIDsKK+apmyA+IGtldHN1XCA7CivmqLQgPiBzaG9rdVwgOwor5qetID4gc2h1a3VcIDsKK+amviA+IGtvdHN1XCA7Civmpo0gPiBzZXRzdVwgOwor5qaAID4ga29tYWlcIDsKK+alviA+IGhhem91XCA7CivmpawgPiBrZXRzdVwgOwor5qSjID4gc2hpZGVcIDsKK+akiiA+IHNvdHN1XCA7CivmpIQgPiBzZXRzdVwgOwor5qOBID4gc2V0c3VcIDsKK+aisiA+IHNldHN1XCA7CivmobIgPiBob3RzdVwgOwor5qGwID4ga2F0c3VcIDsKK+ahmyA+IGthc2VpXCA7CivmoZQgPiBraXRzdVwgOwor5qGAID4ga2V0c3VcIDsKK+aguyA+IGNob2t1XCA7CivmoLAgPiBoYXRzdVwgOwor5qCoID4gc2V0c3VcIDsKK+aggyA+IHRvY2hpXCA7Civmn7cgPiBzaHVrdVwgOwor5p+uID4gdG90c3VcIDsKK+adsCA+IGtldHN1XCA7CivmnaQgPiB0b2NoaVwgOwor5p2MID4gZ290c3VcIDsKK+adgSA+IGVidXJpXCA7CivmnLggPiByeW9rdVwgOwor5pyzID4gaGF0c3VcIDsKK+acryA+IGp1dHN1XCA7CivmnK4gPiBqdXRzdVwgOwor5pyFID4ga2V0c3VcIDsKK+abtyA+IGthdHN1XCA7CivmmrwgPiBoZXRzdVwgOwor5pqxID4gaml0c3VcIDsKK+aZoiA+IHNldHN1XCA7CivmmLUgPiBqaXRzdVwgOwor5pizID4gdGV0c3VcIDsKK+aYqSA+IGJhdHN1XCA7CivmmKIgPiBob3RzdVwgOwor5piSID4ga290c3VcIDsKK+aXrSA+IGFzYWhpXCA7CivmlqsgPiBzaGFrdVwgOwor5pajID4gc2h1a3VcIDsKK+aVqiA+IHRhdHN1XCA7CivmlaAgPiB0YXRzdVwgOwor5pWVID4gY2hva3VcIDsKK+aUnSA+IHNldHN1XCA7Civmk70gPiByeWFrdVwgOwor5pO3ID4ga2V0c3VcIDsKK+aTpiA+IHNhdHN1XCA7CivmkrsgPiB0YWNoaVwgOwor5pKlID4gYmFjaGlcIDsKK+aSpCA+IHRldHN1XCA7CivmkocgPiBoZXRzdVwgOwor5pKFID4ga2V0c3VcIDsKK+aRiyA+IHNhdHN1XCA7CivmkYIgPiBzZXRzdVwgOwor5pCwID4ga290c3VcIDsKK+aQqSA+IGtldHN1XCA7CivmkJAgPiBjaGlrdVwgOwor5o+zID4gc2V0c3VcIDsKK+aPsiA+IHNldHN1XCA7Civmj6wgPiB0b3RzdVwgOwor5o+gID4gc2F0c3VcIDsKK+aPkSA+IGdldHN1XCA7Civmjp8gPiBva2l0ZVwgOwor5o6HID4gdGF0c3VcIDsKK+aNvSA+IHNvdHN1XCA7CivmjbogPiBuYXRzdVwgOwor5o24ID4gdG90c3VcIDsKK+aNnSA+IHRhdHN1XCA7CivmjY8gPiBkZXRzdVwgOwor5o2LID4gcmF0c3VcIDsKK+aMtiA+IGt5b2t1XCA7CivmjKkgPiB0YXRzdVwgOwor5oyIID4ga2V0c3VcIDsKK+aLriA+IGtpdHN1XCA7Civmi4kgPiByYXRzdVwgOwor5oq5ID4gbWF0c3VcIDsKK+aKkCA+IGRvdHN1XCA7CivmioggPiBnZXRzdVwgOwor5omkID4gZ290c3VcIDsKK+aJjiA+IHNhdHN1XCA7CivmiKAgPiBzaG9rdVwgOwor5oieID4ga2F0c3VcIDsKK+aInCA+IHRldHN1XCA7CivmiJsgPiBrYXRzdVwgOwor5oiEID4ga3lha3VcIDsKK+aHpCA+IGNoeXV1XCA7Civmh44gPiBzaG9rdVwgOwor5oagID4ga2V0c3VcIDsKK+aGnyA+IHNob2t1XCA7CivmhosgPiBoZXRzdVwgOwor5oSOID4gaHlva3VcIDsKK+aEiiA+IGh5b2t1XCA7CivmhIIgPiBib3RzdVwgOwor5oOZID4gdGV0c3VcIDsKK+aCiiA+IHRldHN1XCA7CivmgaQgPiBqdXRzdVwgOwor5oC1ID4ganV0c3VcIDsKK+aArSA+IGhpdHN1XCA7CivmgKsgPiBmdXRzdVwgOwor5oCbID4gZGF0c3VcIDsKK+W/lCA+IGtpdHN1XCA7Civlvo8gPiBjaG9rdVwgOwor5b2/ID4gZnV0c3VcIDsKK+W9tCA+IHNoYWt1XCA7CivlvYMgPiBoaXRzdVwgOwor5b2CID4gaG90c3VcIDsKK+W8vCA+IGhpdHN1XCA7CivlvLsgPiBoaXRzdVwgOwor5bymID4gdHN1cnVcIDsKK+W8oSA+IGt1dHN1XCA7Civlu5AgPiB1bWF5YVwgOwor5bqCID4gc2hva3VcIDsKK+W5ryA+IHNldHN1XCA7Civlua0gPiBiZXRzdVwgOwor5bi0ID4gc2F0c3VcIDsKK+W4pSA+IHNvdHN1XCA7CivluJogPiBob3VraVwgOwor5biVID4gYmF0c3VcIDsKK+W3vyA+IGh1dHN1XCA7Civlt4AgPiBzYXRzdVwgOwor5baxID4ga2F0c3VcIDsKK+W2rSA+IGdhdHN1XCA7Civlto0gPiBzaGlodVwgOwor5bW9ID4gdGV0c3VcIDsKK+W1siA+IGdldHN1XCA7CivltaUgPiBrZXRzdVwgOwor5bWRID4ga2V0c3VcIDsKK+W1giA+IHJpdHN1XCA7CivltLEgPiBzaG9rdVwgOwor5bSrID4ga3V0c3VcIDsKK+W0myA+IGt1dHN1XCA7Civls6AgPiB0b3VnZVwgOwor5bOaID4gYml0c3VcIDsKK+WzjCA+IHRldHN1XCA7CivlsqogPiBodXRzdVwgOwor5bKkID4ga2V0c3VcIDsKK+WyjyA+IGd1d2FuXCA7CivlsoogPiBzZXRzdVwgOwor5bKJID4gYnV0c3VcIDsKK+WxvCA+IGdvdHN1XCA7CivlsbkgPiBraXRzdVwgOwor5bG1ID4gZ2F0c3VcIDsKK+WxtCA+IHJ5b2t1XCA7CivlsasgPiBreWFrdVwgOwor5bGpID4ga3lha3VcIDsKK+WwsyA+IGtvdHN1XCA7CivlsJcgPiBzaHVrdVwgOwor5bCQID4gc2V0c3VcIDsKK+WvoyA+IGtvdHN1XCA7Civlr5QgPiBzaG9rdVwgOwor5a67ID4gbWl0c3VcIDsKK+WukyA+IGJpdHN1XCA7CivlroogPiB0b3RzdVwgOwor5a29ID4gZ2V0c3VcIDsKK+WtvCA+IGdldHN1XCA7CivlrbAgPiBpenVyZVwgOwor5a2bID4gYm90c3VcIDsKK+WtkiA+IGtldHN1XCA7CivlrZEgPiBrZXRzdVwgOwor5a2OID4gc2hva3VcIDsKK+WshyA+IGt1d2FpXCA7CivlrIIgPiBzaG9rdVwgOwor5auzID4gaGV0c3VcIDsKK+WroSA+IGNoYWt1XCA7Civlqp8gPiBzZXRzdVwgOwor5am8ID4gc2hha3VcIDsKK+WpjCA+IHNodWt1XCA7CivlqI4gPiBrZXRzdVwgOwor5ae0ID4gcmV0c3VcIDsKK+WnoSA+IGthdHN1XCA7Civlp54gPiBraXRzdVwgOwor5aa6ID4gYmF0c3VcIDsKK+WmsiA+IGRhdHN1XCA7CivlprAgPiBjaGFrdVwgOwor5aatID4gaGF0c3VcIDsKK+WmgSA+IHNoYWt1XCA7Civlpa8gPiBrYXRzdVwgOwor5aWRID4gc2V0c3VcIDsKK+WktyA+IGViaXN1XCA7CivlpKwgPiBrZXRzdVwgOwor5aSoID4gc2hva3VcIDsKK+WkmSA+IHNodWt1XCA7Civlo7cgPiB0c3Vib1wgOwor5aKiID4gaGF0c3VcIDsKK+WijCA+IHNoYWt1XCA7CivlooYgPiB0ZXRzdVwgOwor5aGbID4gcml0c3VcIDsKK+WgqCA+IGdldHN1XCA7Civln7QgPiBzaG9rdVwgOwor5Z+xID4gc2h5dXVcIDsKK+WfkyA+IHJhY2hpXCA7CivlnqQgPiB0ZXRzdVwgOwor5Z6hID4gaGF0c3VcIDsKK+WelCA+IHNoeW91XCA7Civlno8gPiByb3RzdVwgOwor5Z6DID4gcmF0c3VcIDsKK+WduiA+IGhhdHN1XCA7CivlnbkgPiBrZXRzdVwgOwor5Z2yID4gaHV0c3VcIDsKK+WdqiA+IHRzdWJvXCA7CivlnL8gPiBrYXRzdVwgOwor5Zy9ID4gYm90c3VcIDsKK+WctCA+IHNoYWt1XCA7CivlnKogPiBnaXRzdVwgOwor5ZyjID4ga3V0c3VcIDsKK+WbriA+IG90b3JpXCA7Civlm6sgPiBrb3RzdVwgOwor5ZuTID4ga2V0c3VcIDsKK+WbkSA+IHNob2t1XCA7Civlm5AgPiBzYXRzdVwgOwor5ZuLID4gc2F0c3VcIDsKK+WavSA+IHNldHN1XCA7CivlmrwgPiBzaGFrdVwgOwor5ZqeID4gdGV0c3VcIDsKK+WZtiA+IGthdHN1XCA7CivlmbIgPiBrdXdhaVwgOwor5ZmxID4ga3lha3VcIDsKK+WZoCA+IHRhdHN1XCA7CivlmZggPiBrZXRzdVwgOwor5ZmIID4gc2h1a3VcIDsKK+WZhCA+IGtpdHN1XCA7CivlmLEgPiBzaG9rdVwgOwor5ZigID4ga2F0c3VcIDsKK+WYjiA+IGthdHN1XCA7Civll7YgPiBoaXRzdVwgOwor5ZenID4gZ2Fyb25cIDsKK+WXoiA+IHJhdHN1XCA7Civll5YgPiBzaHVodVwgOwor5ZeVID4gc2hva3VcIDsKK+WXkCA+IGthdHN1XCA7CivllqsgPiBraXRzdVwgOwor5ZadID4ga2F0c3VcIDsKK+WWjCA+IHNodWt1XCA7CivlloYgPiB0ZXRzdVwgOwor5ZWgID4gdGV0c3VcIDsKK+WVkiA+IGtvdHN1XCA7CivllL8gPiBrb3RzdVwgOwor5ZSwID4gc2V0c3VcIDsKK+WTviA+IHlhdHN1XCA7Civlk7cgPiByZXRzdVwgOwor5ZOzID4gdGF0c3VcIDsKK+WTsSA+IGhvdHN1XCA7Civlk6sgPiBzaG9rdVwgOwor5ZOYID4gc2Fzb3VcIDsKK+WTiyA+IHRldHN1XCA7CivlkrEgPiBzYXRzdVwgOwor5ZKtID4ga2l0c3VcIDsKK+WSpyA+IHJldHN1XCA7CivlkoggPiBodXRzdVwgOwor5ZKHID4gaGV0c3VcIDsKK+WRviA+IHRhdHN1XCA7CivlkZAgPiB0b3RzdVwgOwor5ZC3ID4ga2V0c3VcIDsKK+WQtiA+IHRvdHN1XCA7CivlkKEgPiBoaXRzdVwgOwor5ZCLID4gaW5jaGlcIDsKK+WQgyA+IGtpdHN1XCA7Civlj5UgPiB0ZXRzdVwgOwor5Y+QID4gaGF0c3VcIDsKK+WOqSA+IHVtYXlhXCA7CivljqUgPiBrZXRzdVwgOwor5Y28ID4gZ290c3VcIDsKK+WNuyA+IGt5YWt1XCA7CivljbkgPiBqdXRzdVwgOwor5Y2pID4gc2V0c3VcIDsKK+WNqCA+IHNldHN1XCA7CivljY0gPiBtYW5qaVwgOwor5Y2GID4gc290c3VcIDsKK+WMsSA+IGhpdHN1XCA7CivljKsgPiBrb3RzdVwgOwor5YykID4ga3lha3VcIDsKK+WMoiA+IGtvdHN1XCA7CivljIMgPiBrYXRzdVwgOwor5YyBID4gbW9ubWVcIDsKK+WLuiA+IHNoYWt1XCA7Civli7YgPiBrZXRzdVwgOwor5YuqID4ga3lha3VcIDsKK+WLliA+IGt5YWt1XCA7Civli4MgPiBib3RzdVwgOwor5Yq9ID4gcmV0c3VcIDsKK+WKvCA+IGthdHN1XCA7CivlipogPiBjaGFrdVwgOwor5YqEID4gc2F0c3VcIDsKK+WKgiA+IGtldHN1XCA7CivlioAgPiBrYXRzdVwgOwor5YmfID4gdGV0c3VcIDsKK+WJjiA+IHNhdHN1XCA7CivliYwgPiByYXRzdVwgOwor5YiuID4ga2F0c3VcIDsKK+WIqyA+IGJldHN1XCA7CivliJwgPiBodXRzdVwgOwor5YiWID4gZ2V0c3VcIDsKK+WIlCA+IGtldHN1XCA7Civlh5MgPiByaXRzdVwgOwor5Ya9ID4gcmV0c3VcIDsKK+WGuSA+IGh1dHN1XCA7CivlhrMgPiBrZXRzdVwgOwor5YSyID4gbW91a2VcIDsKK+WDqiA+IGtpdHN1XCA7Civlg6YgPiBzaHl1dVwgOwor5YOBID4gc2V0c3VcIDsKK+WCoCA+IGhhdHN1XCA7CivlgoggPiByaXRzdVwgOwor5YKEID4ga2F0c3VcIDsKK+WBsCA+IHNldHN1XCA7CivlgZ8gPiBrdXdhdVwgOwor5YGIID4ga2V0c3VcIDsKK+WAlCA+IGt1dHN1XCA7CivlgJAgPiBzaHVrdVwgOwor5YCPID4gc2h1a3VcIDsKK+WAjCA+IGt1d2FuXCA7Civkv7YgPiBzaHVrdVwgOwor5L68ID4gaG90c3VcIDsKK+S+uyA+IHRhdHN1XCA7CivkvrcgPiBreW9rdVwgOwor5L6ZID4gY2hva3VcIDsKK+S+kyA+IHJvdHN1XCA7CivkvpAgPiBreW9rdVwgOwor5L24ID4ga2F0c3VcIDsKK+S9tiA+IGtpdHN1XCA7CivkvaogPiBrdXdhaVwgOwor5L2aID4gdGV0c3VcIDsKK+S9liA+IGhpdHN1XCA7CivkvLUgPiBreW9rdVwgOwor5LyzID4gc2V0c3VcIDsKK+S8nCA+IHNvdHN1XCA7CivkvJAgPiBiYXRzdVwgOwor5Lu0ID4gZ2F0c3VcIDsKK+S7oSA+IGtpdHN1XCA7Civku4ggPiBoYXRzdVwgOwor5LqfID4ga3lva3VcIDsKK+S6jSA+IGNob2t1XCA7CivkuoUgPiBrZXRzdVwgOwor5Lm0ID4gc2V0c3VcIDsKK+S5hCA+IHNoaW1lXCA7CivkuYAgPiBmdXRzdVwgOwor5Li/ID4gaGV0c3VcIDsKK+S4siA+IGt1c2hpXCA7CivjgIYgPiBzaGltZVwgOwor55+zID4ga29rdVwgOwor6L+rID4gaGFrdVwgOwor6L+EID4gbWFkZVwgOwor5b+DID4gc2hpblwgOwor6L68ID4ga29tdVwgOwor5b60ID4gY2hvdVwgOwor5b6zID4gdG9rdVwgOwor6L6xID4gam9rdVwgOwor556tID4gcnlvdVwgOwor556sID4gc2h1blwgOwor5b6pID4gZnVrdVwgOwor6L6bID4gc2hpblwgOwor5b6XID4gdG9rdVwgOwor5b28ID4ga2FyZVwgOwor5b25ID4geWFrdVwgOwor5b2xID4ga2FnZVwgOwor5b2rID4gY2hvdVwgOwor552mID4gYm9rdVwgOwor552jID4gdG9rdVwgOwor5by+ID4gdGFtYVwgOwor55y6ID4gY2hvdVwgOwor5by3ID4ga3lvdVwgOwor5by1ID4gY2hvdVwgOwor6LyvID4gc2h1dVwgOwor55yeID4gc2hpblwgOwor5byUID4gY2hvdVwgOwor55yJID4gbWF5dVwgOwor6LyDID4ga2FrdVwgOwor55u0ID4gaGl0YVwgOwor6LuSID4gbm9raVwgOwor55uKID4geWFrdVwgOwor5buCID4gc2hvdVwgOwor55q/ID4gc2FyYVwgOwor5bq1ID4gaW9yaVwgOwor55quID4ga2F3YVwgOwor5bqtID4gbml3YVwgOwor5bqXID4gbWlzZVwgOwor5bqVID4gc29rb1wgOwor6LqRID4gdGVraVwgOwor6LqNID4geWFrdVwgOwor6LqKID4gY2h1dVwgOwor5bqKID4geXVrYVwgOwor55qEID4gbWF0b1wgOwor5bqBID4gY2hvdVwgOwor5bm5ID4gbWlraVwgOwor6Lm0ID4gc2h1dVwgOwor5bmzID4gaGlyYVwgOwor6LmgID4gc2VraVwgOwor6LmfID4gc2VraVwgOwor55mWID4ga3VzZVwgOwor5bmFID4gaGFiYVwgOwor55mCID4gcnlvdVwgOwor5bi4ID4gdG93YVwgOwor5bitID4gc2VraVwgOwor5biMID4gbWFyZVwgOwor5biDID4gbnVub1wgOwor5be7ID4gbWFraVwgOwor6LezID4gY2hvdVwgOwor5bedID4ga2F3YVwgOwor55eHID4gc2hvdVwgOwor6LazID4gYXNoaVwgOwor6LaKID4gZXRzdVwgOwor6LaFID4gY2hvdVwgOwor6LWrID4ga2FrdVwgOwor55WrID4ga2FrdVwgOwor6LWkID4gc2VraVwgOwor55WZID4gcnl1dVwgOwor55S7ID4ga2FrdVwgOwor55SzID4gc2FydVwgOwor55SfID4gbmFtYVwgOwor55SaID4gc2hpblwgOwor5bSWID4gZ2FrZVwgOwor5bSOID4gc2FraVwgOwor5bOwID4gbWluZVwgOwor6LORID4gc2hpblwgOwor6LOKID4gem9rdVwgOwor6LODID4gY2hpblwgOwor6LKsID4gc2VraVwgOwor5bGxID4geWFtYVwgOwor5bGsID4gem9rdVwgOwor5bGeID4gem9rdVwgOwor5bGRID4ga3V6dVwgOwor6LGGID4gbWFtZVwgOwor55C0ID4ga290b1wgOwor5bCxID4gc2h1dVwgOwor5bCRID4gc2hvdVwgOwor5bCPID4gc2hvdVwgOwor5bCGID4gc2hvdVwgOwor55CDID4gdGFtYVwgOwor5a++ID4gdHN1aVwgOwor5a+6ID4gdGVyYVwgOwor5a+1ID4gY2hvdVwgOwor5a+pID4gc2hpblwgOwor5a+lID4gcnlvdVwgOwor5a+iID4gc2hpblwgOwor54+NID4gY2hpblwgOwor5a+MID4gdG9taVwgOwor5a+CID4gc2FiaVwgOwor5a6/ID4geWFkb1wgOwor5a6uID4gbWl5YVwgOwor5a6kID4gbXVyb1wgOwor5a6XID4gc2h1dVwgOwor546WID4ga3l1dVwgOwor546JID4gZGFtYVwgOwor5a6JID4geWFzdVwgOwor5a6IID4gbW9yaVwgOwor5a6FID4gdGFrdVwgOwor6K6AID4gdG9rdVwgOwor5a24ID4gZ2FrdVwgOwor542yID4ga2FrdVwgOwor6K2vID4geWFrdVwgOwor5a2rID4gbWFnb1wgOwor542oID4gZG9rdVwgOwor5a2mID4gZ2FrdVwgOwor6K2JID4gc2hvdVwgOwor542EID4gZ29rdVwgOwor54y/ID4gc2FydVwgOwor54yrID4gbmVrb1wgOwor6KyhID4gdXRhaVwgOwor6KyOID4gbmF6b1wgOwor5ayMID4ga3lvdVwgOwor6KyBID4gZXRzdVwgOwor54u5ID4ga3lvdVwgOwor54utID4ga3lvdVwgOwor54uCID4ga3lvdVwgOwor5auBID4geW9tZVwgOwor6Kq/ID4gY2hvdVwgOwor6KqwID4gZGFyZVwgOwor6KqtID4gdG9rdVwgOwor6KqCID4gY2hvdVwgOwor5am/ID4gbXVrb1wgOwor54m5ID4gdG9rdVwgOwor6KmzID4gc2hvdVwgOwor54mpID4gbW9ub1wgOwor54mnID4gYm9rdVwgOwor54mbID4gdXNoaVwgOwor6KmVID4gaHlvdVwgOwor54mSID4gY2hvdVwgOwor5amGID4gYmFiYVwgOwor6Ki6ID4gc2hpblwgOwor6KizID4gd2FrZVwgOwor6KifID4gc2hvdVwgOwor5aigID4gc2hpblwgOwor6KiXID4gdGFrdVwgOwor54iGID4gYmFrdVwgOwor5aerID4gaGltZVwgOwor54eSID4gc2hvdVwgOwor6Ka6ID4ga2FrdVwgOwor6KaaID4ga2FrdVwgOwor5aaZID4gbXlvdVwgOwor54aKID4ga3VtYVwgOwor6KaGID4gZnVrdVwgOwor6KWyID4gc2h1dVwgOwor54WnID4gc2hvdVwgOwor54WkID4gc3VzdVwgOwor6KWBID4ga3lvdVwgOwor54S8ID4geWFraVwgOwor5aSrID4gb3R0b1wgOwor54SmID4gc2hvdVwgOwor5aSiID4geXVtZVwgOwor5aScID4geW9ydVwgOwor5aSWID4gaG9rYVwgOwor6KSHID4gZnVrdVwgOwor6KO+ID4gc3Vzb1wgOwor5aOxID4gaWNoaVwgOwor5aOTID4gYXRzdVwgOwor5aOBID4ga2FiZVwgOwor54K6ID4gdGFtZVwgOwor54KtID4gc3VtaVwgOwor5aKoID4gc3VtaVwgOwor6KKWID4gc29kZVwgOwor5aKTID4gaGFrYVwgOwor6KG3ID4gY2h1dVwgOwor6KGoID4gaHlvdVwgOwor5aGpID4gc2hpb1wgOwor6KGdID4gc2hvdVwgOwor5aGeID4gc29rdVwgOwor6KGTID4gc3ViZVwgOwor6KGMID4gZ3lvdVwgOwor6KGGID4gc2h1dVwgOwor6KCiID4gc2h1blwgOwor54CdID4gcmVraVwgOwor5aCAID4gaG9yaVwgOwor5r+vID4gdGFrdVwgOwor5r+BID4gZGFrdVwgOwor5r+AID4gZ2VraVwgOwor5r6kID4gdGFrdVwgOwor5Z6jID4ga2FraVwgOwor5Z6LID4ga2F0YVwgOwor5r6EID4gY2hvdVwgOwor5r2uID4gc2hpb1wgOwor6J2gID4gZnVrdVwgOwor6J2JID4gc2VtaVwgOwor5Z2CID4gc2FrYVwgOwor5ry/ID4gc2hvdVwgOwor6by7ID4gaGFuYVwgOwor5ryyID4gY2hvdVwgOwor5ZynID4gYXRzdVwgOwor5rygID4gYmFrdVwgOwor5ZySID4gc29ub1wgOwor5ZyLID4ga29rdVwgOwor6JyDID4gc2hpblwgOwor5ryCID4gaHlvdVwgOwor5ryBID4gcnlvdVwgOwor5Zu9ID4ga3VuaVwgOwor6bu0ID4ga2FiaVwgOwor6buZID4gbW9rdVwgOwor6buYID4gbW9rdVwgOwor6buSID4ga3Vyb1wgOwor6buNID4ga2liaVwgOwor6JuHID4gaGViaVwgOwor5ZuBID4gc2hvdVwgOwor5rq6ID4gZGVraVwgOwor6bqmID4gbXVnaVwgOwor6bqlID4gYmFrdVwgOwor6JqkID4gbm9taVwgOwor5rqiID4gaXRzdVwgOwor5rqdID4gbWl6b1wgOwor5rqcID4gcnl1dVwgOwor6JmOID4gdG9yYVwgOwor5risID4gc29rdVwgOwor5ZiXID4gc2hvdVwgOwor5riJID4gc2hvdVwgOwor6be5ID4gdGFrYVwgOwor5rexID4gc2hpblwgOwor6JelID4geWFrdVwgOwor6JekID4gZnVqaVwgOwor5ZeFID4ga3l1dVwgOwor6JeBID4gd2FyYVwgOwor5ra8ID4gcnlvdVwgOwor5racID4gdG9rdVwgOwor5ZaLID4gY2hvdVwgOwor5ZaJID4gbm9kb1wgOwor5raIID4gc2hvdVwgOwor5rW4ID4gc2hpblwgOwor5rW0ID4geW9rdVwgOwor5rWcID4gaGFtYVwgOwor5rWaID4gc2h1blwgOwor6JWOID4ga3lvdVwgOwor5ZWGID4gc2hvdVwgOwor5rWBID4gcnl1dVwgOwor5rSyID4gc2h1dVwgOwor5ZSxID4gc2hvdVwgOwor5ZSvID4gdGFkYVwgOwor6JStID4ga2FnZVwgOwor5rSlID4gc2hpblwgOwor5rSeID4gaG9yYVwgOwor5rSbID4gcmFrdVwgOwor5ZSWID4gb3NoaVwgOwor6JOuID4gaGFzdVwgOwor5ZOtID4ga29rdVwgOwor6bOpID4gaGF0b1wgOwor5rOoID4gY2h1dVwgOwor6bOlID4gdG9yaVwgOwor5rOlID4gZG9yb1wgOwor5rOjID4ga3l1dVwgOwor5rOiID4gbmFtaVwgOwor6JOLID4gZnV0YVwgOwor5rOKID4gaGFrdVwgOwor5rOBID4ga3lvdVwgOwor5ZK9ID4gbm9kb1wgOwor5rK8ID4gbnVtYVwgOwor6JK7ID4gamFrdVwgOwor5rKzID4ga2F3YVwgOwor6JKyID4gZ2FtYVwgOwor5ZKzID4gc2VraVwgOwor5ZKyID4gc2hvdVwgOwor5rKiID4gc2F3YVwgOwor5ZKOID4ga3l1dVwgOwor5rKIID4gY2hpblwgOwor5rGyID4ga3l1dVwgOwor5ZGoID4gc2h1dVwgOwor6bGIID4gdGFyYVwgOwor5ZGKID4ga29rdVwgOwor5rGCID4ga3l1dVwgOwor6JC9ID4gb2NoaVwgOwor5ZC4ID4ga3l1dVwgOwor5rC0ID4gbWl6dVwgOwor5rCRID4gdGFtaVwgOwor5ZCKID4gY2hvdVwgOwor5ZCEID4ga2FrdVwgOwor5Y+zID4gbWlnaVwgOwor6I+vID4gaGFuYVwgOwor5q+sID4ga3l1dVwgOwor5Y+sID4gc2hvdVwgOwor5Y+rID4ga3lvdVwgOwor5Y+qID4gdGFkYVwgOwor5Y+kID4gZnVydVwgOwor5Y+WID4gdG9yaVwgOwor5q+SID4gZG9rdVwgOwor5Y+OID4gc2h1dVwgOwor5q+NID4gaGFoYVwgOwor5Y+MID4gZnV0YVwgOwor6I+KID4ga2lrdVwgOwor5Y+LID4gdG9tb1wgOwor5Y+KID4ga3l1dVwgOwor5Y+IID4gbWF0YVwgOwor5q6/ID4gZG9ub1wgOwor5q67ID4ga2FyYVwgOwor6I6iID4gc2F5YVwgOwor5Y6fID4gaGFyYVwgOwor5Y6EID4geWFrdVwgOwor5q20ID4gcmVraVwgOwor5Y2zID4gc29rdVwgOwor5Y2aID4gYmFrdVwgOwor5Y2UID4ga3lvdVwgOwor5Y2TID4gdGFrdVwgOwor6I2JID4ga3VzYVwgOwor5Y2HID4gbWFzdVwgOwor6ayxID4gdXRzdVwgOwor5qyyID4geW9rdVwgOwor5qydID4gdXRzdVwgOwor6ayaID4gaGlnZVwgOwor5YyZID4gc2FqaVwgOwor5YyXID4gaG9rdVwgOwor6IyOID4ga3VraVwgOwor6IyFID4ga2F5YVwgOwor5YyCID4gbmlvdVwgOwor6au3ID4gbWFnZVwgOwor6autID4gaGlnZVwgOwor6auqID4ga2FtaVwgOwor6IulID4gamFrdVwgOwor5YudID4gc2hvdVwgOwor6auYID4gdGFrYVwgOwor6IuUID4ga29rZVwgOwor6IqxID4gaGFuYVwgOwor6aqoID4gaG9uZVwgOwor5YqpID4gc3VrZVwgOwor5YqHID4gZ2VraVwgOwor5YqDID4ga2FrdVwgOwor5Ym9ID4gaHlvdVwgOwor5YmyID4gd2FyaVwgOwor6ImvID4gcnlvdVwgOwor5YmlID4gaGFrdVwgOwor5qmfID4gaGF0YVwgOwor6amaID4ga3lvdVwgOwor5YmKID4gc2FrdVwgOwor5YmHID4gc29rdVwgOwor5Yi7ID4ga29rdVwgOwor6Ii5ID4gZnVuZVwgOwor5Yi6ID4gdG9nZVwgOwor6Ii2ID4gaGFrdVwgOwor5qiqID4geW9rb1wgOwor6IifID4gZnVuZVwgOwor5qiZID4gaHlvdVwgOwor6IiOID4gc2VraVwgOwor6IiKID4ga3l1dVwgOwor5YiIID4ga2FyaVwgOwor5qiFID4gbW9taVwgOwor5qiCID4gZ2FrdVwgOwor6IetID4gc2h1dVwgOwor6IejID4gc2hpblwgOwor6aeSID4ga29tYVwgOwor6aeQID4gY2h1dVwgOwor6IeNID4gaGVzb1wgOwor5qeMID4gdHN1aVwgOwor5YeMID4gcnlvdVwgOwor5qeHID4gbWFraVwgOwor6aa0ID4gc2h1blwgOwor5YasID4gZnV5dVwgOwor6IadID4gaGl6YVwgOwor6IacID4gbWFrdVwgOwor5qabID4gc2hpblwgOwor6aaZID4ga3lvdVwgOwor6aaWID4ga3ViaVwgOwor5YaGID4gbWFydVwgOwor5YaFID4gdWNoaVwgOwor5qW9ID4gcmFrdVwgOwor6IW5ID4gaGFyYVwgOwor5qW1ID4gZ29rdVwgOwor5YWxID4gZG9tb1wgOwor5qWtID4gd2F6YVwgOwor5YWtID4gcm9rdVwgOwor5YWpID4gcnlvdVwgOwor5YWlID4gbnl1dVwgOwor5YWDID4gbW90b1wgOwor6ISjID4gc2hpblwgOwor5YSfID4gc2hvdVwgOwor6ISaID4gYXNoaVwgOwor5YSYID4gbWFtYVwgOwor5qSOID4gdHN1aVwgOwor6ISKID4gc2VraVwgOwor6ISHID4gd2FraVwgOwor6ISFID4ga3lvdVwgOwor6ISCID4geWFuaVwgOwor6IO9ID4geW9rdVwgOwor6IO4ID4gbXVuZVwgOwor5qOuID4gbW9yaVwgOwor5qOaID4gdGFuYVwgOwor5YOaID4gcnlvdVwgOwor5YOVID4gYm9rdVwgOwor5YORID4ga3lvdVwgOwor5YK3ID4gc2hvdVwgOwor6IKpID4ga2F0YVwgOwor6IKdID4ga2ltb1wgOwor6IKYID4gaGlqaVwgOwor5YKYID4ga2FzYVwgOwor6IKWID4gc2hvdVwgOwor6IKMID4gaGFkYVwgOwor5YKNID4gd2FraVwgOwor6IKJID4gbmlrdVwgOwor5qKDID4gdGVrb1wgOwor6IG9ID4gY2hvdVwgOwor5YG9ID4gbmlzZVwgOwor6IG0ID4gY2hvdVwgOwor6IGzID4gc2hvdVwgOwor5YG0ID4gaGF0YVwgOwor6IGaID4gc2h1dVwgOwor5qGQID4ga2lyaVwgOwor6IGKID4gcnlvdVwgOwor5qGDID4gbW9tb1wgOwor5qGBID4ga2V0YVwgOwor5qC8ID4ga2FrdVwgOwor6aC4ID4ga3ViaVwgOwor6ICzID4gbWltaVwgOwor6aCsID4gaG9ob1wgOwor6aCYID4gcnlvdVwgOwor5qCXID4ga3VyaVwgOwor6ICFID4gbW9ub1wgOwor6aCDID4gZ29yb1wgOwor5p+/ID4ga2FraVwgOwor5p+1ID4gc2FrdVwgOwor5L+uID4gc2h1dVwgOwor5p+aID4geXV6dVwgOwor5L+XID4gem9rdVwgOwor5p+UID4gbnl1dVwgOwor57+SID4gc2h1dVwgOwor57+MID4geW9rdVwgOwor5L+DID4gc29rdVwgOwor5L61ID4gc2hpblwgOwor5L6hID4gYXRhaVwgOwor576eID4gc2h1dVwgOwor5L6bID4gdG9tb1wgOwor6Z6YID4gc2F5YVwgOwor6Z2pID4ga2F3YVwgOwor5L2cID4gc2FrdVwgOwor5p2WID4gdHN1ZVwgOwor5p2RID4gbXVyYVwgOwor5p2PID4gYW56dVwgOwor5p2JID4gc3VnaVwgOwor5Ly9ID4gdG9naVwgOwor5py0ID4gYm9rdVwgOwor5Ly0ID4gdG9tb1wgOwor5LyvID4gaGFrdVwgOwor5pytID4gZnVkYVwgOwor5pysID4gbW90b1wgOwor6ZynID4ga2lyaVwgOwor5LyRID4ga3l1dVwgOwor5LyPID4gZnVrdVwgOwor5pyNID4gZnVrdVwgOwor6ZyHID4gc2hpblwgOwor6ZuyID4ga3Vtb1wgOwor5LuyID4gbmFrYVwgOwor5LuwID4gZ3lvdVwgOwor5LuuID4ga2FyaVwgOwor6ZuqID4geXVraVwgOwor5pudID4gYmFrdVwgOwor5LuWID4gaG9rYVwgOwor6ZuMID4gbWVzdVwgOwor6ZuGID4gc2h1dVwgOwor5LuEID4gc29rdVwgOwor5Lq6ID4gaGl0b1wgOwor5LqrID4ga3lvdVwgOwor5LqmID4gbWF0YVwgOwor5pqiID4gY2hvdVwgOwor6ZqcID4gc2hvdVwgOwor6ZqZID4gc3VraVwgOwor6ZqUID4ga2FrdVwgOwor57qMID4gem9rdVwgOwor5LqLID4ga290b1wgOwor6ZqGID4gcnl1dVwgOwor5pqHID4gaGltYVwgOwor6ZqFID4gc3VtaVwgOwor5LqGID4gcnlvdVwgOwor6Zm4ID4gcm9rdVwgOwor5pm2ID4gc2hvdVwgOwor6ZmwID4ga2FnZVwgOwor5pmdID4gY2h1dVwgOwor5LmLID4ga29yZVwgOwor5LmFID4ga3l1dVwgOwor5pmCID4gdG9raVwgOwor5pi8ID4gaGlydVwgOwor5Li4ID4gbWFydVwgOwor5pitID4gc2hvdVwgOwor5LitID4gbmFrYVwgOwor5pioID4gc2FrdVwgOwor57imID4gdGF0ZVwgOwor5pilID4gaGFydVwgOwor5LihID4gcnlvdVwgOwor57ibID4gYmFrdVwgOwor57iLID4gdHN1aVwgOwor5LiIID4gZGFrZVwgOwor5piHID4gc2hvdVwgOwor57iEID4gbmF3YVwgOwor5LiAID4gaWNoaVwgOwor5peoID4gbXVuZVwgOwor5peXID4gaGF0YVwgOwor5pePID4gem9rdVwgOwor6ZeHID4geWFtaVwgOwor5peFID4gdGFiaVwgOwor57a/ID4gd2F0YVwgOwor6Za+ID4geW9rdVwgOwor57a+ID4gcnlvdVwgOwor6ZayID4gZXRzdVwgOwor5pawID4gc2hpblwgOwor6ZajID4ga2FrdVwgOwor5palID4gc2VraVwgOwor6ZaiID4gc2VraVwgOwor57aaID4gem9rdVwgOwor5paZID4gcnlvdVwgOwor6ZaRID4gaGltYVwgOwor5paRID4gbXVyYVwgOwor5paOID4gdG9raVwgOwor57W5ID4ga2ludVwgOwor5pW1ID4gdGVraVwgOwor57WmID4ga3l1dVwgOwor57WhID4gcmFrdVwgOwor5pWZID4ga3lvdVwgOwor5pWRID4ga3l1dVwgOwor57WEID4ga3VtaVwgOwor57S5ID4gc2hvdVwgOwor5pS2ID4gc2h1dVwgOwor57SzID4gc2hpblwgOwor5pSrID4ga2FrdVwgOwor57SiID4gc2FrdVwgOwor57SaID4ga3l1dVwgOwor57SZID4ga2FtaVwgOwor57SQID4gaGltb1wgOwor57SFID4gYmVuaVwgOwor57SEID4geWFrdVwgOwor5pOxID4ga2FrdVwgOwor57OnID4gcnlvdVwgOwor5pKyID4gYm9rdVwgOwor57KnID4gc2hvdVwgOwor57KlID4ga2F5dVwgOwor57KJID4ga29uYVwgOwor5pKDID4gZ2VraVwgOwor5pG6ID4gc2hvdVwgOwor57GzID4ga29tZVwgOwor57GgID4ga2Fnb1wgOwor57GNID4gc2VraVwgOwor6ZCYID4ga2FuZVwgOwor6ZCQID4gcnlvdVwgOwor5o+6ID4geXVyaVwgOwor56+tID4ga2Fnb1wgOwor56+kID4gdG9rdVwgOwor5o+PID4gYnlvdVwgOwor5o60ID4ga2FrdVwgOwor566xID4gaGFrb1wgOwor566hID4ga3VkYVwgOwor6Y21ID4ga2FnaVwgOwor6Y2uID4gY2h1dVwgOwor562WID4gc2FrdVwgOwor6Y2LID4gbmFiZVwgOwor562LID4gc3VqaVwgOwor562JID4gbmFkb1wgOwor562IID4gaGF6dVwgOwor562GID4gZnVkZVwgOwor5oy+ID4ga3lvdVwgOwor56y5ID4gc2FzYVwgOwor6YyyID4gcm9rdVwgOwor6YyvID4gc2FrdVwgOwor5oyvID4gc2hpblwgOwor56ygID4ga2FzYVwgOwor56yRID4gc2hvdVwgOwor6YyQID4ga2lyaVwgOwor5oyHID4geXViaVwgOwor56u5ID4gdGFrZVwgOwor56u2ID4ga3lvdVwgOwor56uvID4gaGFuYVwgOwor56ugID4gc2hvdVwgOwor5oubID4gc2hvdVwgOwor5ouNID4gaGFrdVwgOwor5oq9ID4gY2h1dVwgOwor56quID4ga3l1dVwgOwor56qTID4gbWFkb1wgOwor6YqRID4genVrdVwgOwor5oqAID4gd2F6YVwgOwor5om/ID4gc2hvdVwgOwor56m6ID4gc29yYVwgOwor56m2ID4ga3l1dVwgOwor56mNID4gc2VraVwgOwor5omHID4gb3VnaVwgOwor5oi/ID4gZnVzYVwgOwor6Yi0ID4gc3V6dVwgOwor56ixID4gc2hvdVwgOwor56iuID4gdGFuZVwgOwor5oifID4gZ2VraVwgOwor5oiaID4gc2VraVwgOwor5oiRID4gd2FyZVwgOwor56iNID4geWF5YVwgOwor56iLID4gaG9kb1wgOwor56iAID4gbWFyZVwgOwor56ewID4gc2hvdVwgOwor6YejID4gY2hvdVwgOwor6YedID4gaGFyaVwgOwor6YecID4ga2FtYVwgOwor6YeYID4ga3VnaVwgOwor56eSID4gYnlvdVwgOwor56eAID4gc2h1dVwgOwor56a/ID4gaGFnZVwgOwor5oapID4gaWtvaVwgOwor6YakID4gc2hvdVwgOwor6YacID4gc2h1dVwgOwor5oaUID4gc2hvdVwgOwor5oaRID4gaHlvdVwgOwor56aPID4gZnVrdVwgOwor56aEID4gcm9rdVwgOwor5oW+ID4geW9rdVwgOwor6YW3ID4ga29rdVwgOwor6YWsID4gc2h1dVwgOwor56WeID4ga2FtaVwgOwor6YWSID4gc2FrZVwgOwor5oWLID4gemFtYVwgOwor5oSVID4gZ2FrdVwgOwor6YO3ID4ga3lvdVwgOwor6YOtID4ga2FrdVwgOwor5oOcID4gc2VraVwgOwor5oORID4gd2FrdVwgOwor5oKqID4gd2FydVwgOwor56KnID4gaGVraVwgOwor56KMID4gcm9rdVwgOwor5oKEID4gc2hvdVwgOwor5oGtID4ga3lvdVwgOwor6YGpID4gdGVraVwgOwor5oGlID4gaGFqaVwgOwor56GdID4gc2hvdVwgOwor5oGQID4ga3lvdVwgOwor6YC4ID4gaXRzdVwgOwor6YCyID4gc2hpblwgOwor6YCxID4gc2h1dVwgOwor5oCvID4ga3lvdVwgOwor5oClID4ga3l1dVwgOwor6YCfID4gc29rdVwgOwor6YCaID4gdHN1dVwgOwor5oCOID4gc2hpblwgOwor56CCID4gc3VuYVwgOwor6L+9ID4gdHN1aVwgOwor6b6lID4geWFrdVwgOwor6b6jID4ga2FrdVwgOwor6b6gID4geWFrdVwgOwor6b6dID4gc2h1dVwgOwor6b6UID4ga3lvdVwgOwor6b6PID4ga3lvdVwgOwor6b6NID4gcnl1dVwgOwor6b26ID4gc2h1dVwgOwor6b2xID4gc2VrdVwgOwor6b2wID4gc2FrdVwgOwor6b2qID4gc29rdVwgOwor6b2oID4ga3l1dVwgOwor6b2jID4ga29tYVwgOwor6b2gID4gY2hvdVwgOwor6b2aID4gc2FrdVwgOwor6b2UID4gc2hpblwgOwor6b2TID4gc2hpblwgOwor6b2FID4ga3l1dVwgOwor6by8ID4gZ3lvdVwgOwor6byrID4gc2VraVwgOwor6bymID4gY2hvdVwgOwor6byaID4gY2hvdVwgOwor6byPID4gYmVraVwgOwor6byCID4gY2hvdVwgOwor6bu3ID4gdG9rdVwgOwor6buwID4gc2hpblwgOwor6buRID4ga29rdVwgOwor6bq/ID4gbWFyb1wgOwor6bq0ID4ga2lrdVwgOwor6bqvID4ga2lrdVwgOwor6bqoID4gc2hvdVwgOwor6bqeID4gc2hvdVwgOwor6bqYID4ga3lvdVwgOwor6bqOID4gc2hpblwgOwor6bm2ID4ga3lvdVwgOwor6bmiID4gZ2VraVwgOwor6bmhID4gc2VraVwgOwor6bi0ID4ga2FrdVwgOwor6biZID4geWFrdVwgOwor6biWID4ga2FrdVwgOwor6biRID4gZ2FrdVwgOwor6biQID4gdGVraVwgOwor6biKID4gaGVraVwgOwor6be9ID4ga2FrdVwgOwor6be4ID4gaXRzdVwgOwor6bevID4gcnlvdVwgOwor6beuID4ga3lvdVwgOwor6bemID4gc2hvdVwgOwor6befID4gc2FrdVwgOwor6beaID4gcnl1dVwgOwor6beKID4gZ2VraVwgOwor6beBID4gZ2VraVwgOwor6ba6ID4gc2VraVwgOwor6ba5ID4gcnl1dVwgOwor6ba4ID4gamFrdVwgOwor6bauID4ga29rdVwgOwor6baqID4ga2VraVwgOwor6bapID4gYm9rdVwgOwor6baaID4gZ2FrdVwgOwor6baWID4gc2h1dVwgOwor6baTID4gYnlvdVwgOwor6baSID4gc2VraVwgOwor6baDID4gZ2VraVwgOwor6bWyID4gamFrdVwgOwor6bWwID4gY2hvdVwgOwor6bWpID4gZnVrdVwgOwor6bWiID4gc2hpblwgOwor6bWgID4ga29rdVwgOwor6bWfID4ga3lvdVwgOwor6bWZID4gbW96dVwgOwor6bWUID4gc2h1blwgOwor6bWHID4gdG9raVwgOwor6bWFID4gcmFrdVwgOwor6bWDID4gY2h1dVwgOwor6bWCID4ga3l1dVwgOwor6bSqID4gaXRzdVwgOwor6bSoID4ga2Ftb1wgOwor6bSXID4gcnl1dVwgOwor6bSHID4gdG9raVwgOwor6bSGID4gY2hpblwgOwor6bOmID4gaXRzdVwgOwor6bKMID4gaGFrdVwgOwor6bG3ID4gZ2FrdVwgOwor6bG2ID4gZnVrYVwgOwor6bG1ID4gc2hpblwgOwor6bGyID4gcnlvdVwgOwor6bGoID4gc2hvdVwgOwor6bGnID4gaGFtb1wgOwor6bGcID4ga3lvdVwgOwor6bGaID4ga2lzdVwgOwor6bGYID4gc2hpblwgOwor6bGSID4gbWFzdVwgOwor6bGPID4gc2hpblwgOwor6bGOID4ga3lvdVwgOwor6bGKID4gaXRzdVwgOwor6bGGID4gc2hvdVwgOwor6bGFID4gc2hvdVwgOwor6bGDID4gc2h1dVwgOwor6bGCID4gc2hvdVwgOwor6bC+ID4gaHlvdVwgOwor6bC9ID4gc2h1dVwgOwor6bC3ID4gY2hvdVwgOwor6bCtID4gaGlyZVwgOwor6bCoID4gY2hvdVwgOwor6bCkID4gYnVyaVwgOwor6bChID4gcnl1dVwgOwor6bCZID4gaGF5YVwgOwor6bCQID4gd2FuaVwgOwor6bCCID4gc29rdVwgOwor6a+9ID4gc2VraVwgOwor6a+qID4gcnlvdVwgOwor6a+nID4gc2hvdVwgOwor6a+lID4gcmlrdVwgOwor6a+XID4gc2hvdVwgOwor6a+WID4gc2FiYVwgOwor6a+UID4gYm9yYVwgOwor6a+OID4gdWd1aVwgOwor6a+KID4gaGF6ZVwgOwor6a6/ID4gY2hvdVwgOwor6a68ID4gc2hpblwgOwor6a65ID4gdGFrb1wgOwor6a60ID4gZ29yaVwgOwor6a6yID4gbWF0ZVwgOwor6a6xID4gYm9yYVwgOwor6a6rID4gc2FtZVwgOwor6a6gID4gaGF5YVwgOwor6a6dID4gc2hvdVwgOwor6a6SID4gZnVuYVwgOwor6a6KID4gaGFrdVwgOwor6a6JID4gY2hvdVwgOwor6a25ID4gdG9kb1wgOwor6a2rID4gc2hpblwgOwor6a2hID4gdGVraVwgOwor6a2XID4gc2h1dVwgOwor6a2OID4gcnlvdVwgOwor6a2IID4gc2hvdVwgOwor6a2EID4gaGFrdVwgOwor6ay6ID4gc2hvdVwgOwor6ayyID4gcmVraVwgOwor6aywID4gdXRzdVwgOwor6ayvID4gY2hvdVwgOwor6ayuID4ga3l1dVwgOwor6aypID4gZ2VraVwgOwor6aybID4gcnlvdVwgOwor6aySID4gc2hpblwgOwor6ayGID4gc2hvdVwgOwor6au5ID4ga3l1dVwgOwor6aurID4gY2hvdVwgOwor6aukID4ga3l1dVwgOwor6aufID4gaHlvdVwgOwor6aucID4ga3lvdVwgOwor6auRID4gdG9rdVwgOwor6auOID4gcnlvdVwgOwor6auGID4gaGFrdVwgOwor6aq8ID4ga2FrdVwgOwor6aqyID4gaGFrdVwgOwor6aquID4geW9rdVwgOwor6aqtID4gaGFnaVwgOwor6aqOID4gc2hpblwgOwor6aqJID4gaHl1dVwgOwor6amrID4gaHl1dVwgOwor6amfID4gc2h1dVwgOwor6amdID4gdGFrdVwgOwor6amVID4ga3lvdVwgOwor6amRID4gcnl1dVwgOwor6amNID4gZ3lvdVwgOwor6amDID4gaHlvdVwgOwor6amAID4gYmFrdVwgOwor6ai2ID4gc2h1dVwgOwor6aizID4gdG9rdVwgOwor6aiuID4gcnl1dVwgOwor6aieID4ga2FrdVwgOwor6ae/ID4gc2h1blwgOwor6ae4ID4gc2hpblwgOwor6ae1ID4gcnl1dVwgOwor6aeyID4gc2h1dVwgOwor6aexID4gcmFrdVwgOwor6aeuID4gaGFrdVwgOwor6aeqID4gc2hpblwgOwor6aeBID4gYmFrdVwgOwor6aa9ID4gY2h1dVwgOwor6aayID4gdGFrdVwgOwor6aawID4gdGVraVwgOwor6aauID4gaHlvdVwgOwor6aalID4gZnVrdVwgOwor6aaYID4ga2FrdVwgOwor6aWfID4gc2hvdVwgOwor6aWXID4ga3lvdVwgOwor6aWIID4gc2h1dVwgOwor6aS+ID4gcnl1dVwgOwor6aS6ID4gaGFrdVwgOwor6aSmID4gY2hvdVwgOwor6aSXID4gc29rdVwgOwor6aSVID4gc2h1blwgOwor6aSJID4gc2hvdVwgOwor6aOlID4gdGFrdVwgOwor6aOIID4gaHlvdVwgOwor6aOHID4gaHlvdVwgOwor6aOGID4gaHlvdVwgOwor6aOFID4gcnl1dVwgOwor6aOEID4gaHlvdVwgOwor6aODID4gaHlvdVwgOwor6aOCID4gcnl1dVwgOwor6aK3ID4gaHlvdVwgOwor6aKuID4gaHlvdVwgOwor6aGzID4gc2hvdVwgOwor6aGmID4gc2hvdVwgOwor6aGWID4gc2hpblwgOwor6aGSID4gZ3lvdVwgOwor6aCwID4ga3lvdVwgOwor6aCjID4gc2hpblwgOwor6aCeID4gYXRzdVwgOwor6aCZID4gc2FrdVwgOwor6aCUID4gdGVraVwgOwor6aCMID4gc2hvdVwgOwor6Z+3ID4gcmFrdVwgOwor6Z+2ID4gc2hvdVwgOwor6Z+uID4gbmlyYVwgOwor6Z+tID4ga3l1dVwgOwor6Z+YID4gc2hvdVwgOwor6Z+UID4gY2hvdVwgOwor6Z+HID4gdG9rdVwgOwor6Z+BID4ga3lvdVwgOwor6Z65ID4ga2FrdVwgOwor6Z60ID4gZnVrdVwgOwor6Z6rID4ga2lrdVwgOwor6Z6mID4gc2h1dVwgOwor6Z6iID4gc2hvdVwgOwor6Z6gID4gbWFyaVwgOwor6Z6fID4ga2FrdVwgOwor6Z6PID4ga3lvdVwgOwor6Z6GID4gdG9tb1wgOwor6Z2uID4gdGVraVwgOwor6Z2VID4gc2hpblwgOwor6Z2PID4ga2FrdVwgOwor6Z2OID4ga2FrdVwgOwor6Z2EID4gbW95YVwgOwor6Z2DID4ga2FrdVwgOwor6Z2CID4gcmVraVwgOwor6Zy5ID4gaGVraVwgOwor6Zy4ID4gaGFrdVwgOwor6ZyzID4gcnl1dVwgOwor6ZyxID4gaXRzdVwgOwor6ZykID4gcnl1dVwgOwor6ZyiID4gYmFrdVwgOwor6ZyhID4gYmFrdVwgOwor6ZyNID4ga2FrdVwgOwor6ZyFID4gc2hvdVwgOwor6ZyEID4gc2hvdVwgOwor6ZyDID4gY2hpblwgOwor6ZyCID4gYm9rdVwgOwor6Zu5ID4gaHlvdVwgOwor6ZuYID4gd2FrdVwgOwor6ZuVID4gY2hvdVwgOwor6ZuSID4gcmFrdVwgOwor6ZuJID4ga2lqaVwgOwor6Zq7ID4gc2VraVwgOwor6Zq6ID4ga29rdVwgOwor6ZqfID4gZ2VraVwgOwor6Zm/ID4ga3lvdVwgOwor6ZmzID4gY2hpblwgOwor6ZmeID4gc2hvdVwgOwor6ZmXID4gc2hvdVwgOwor6ZmMID4gaGFrdVwgOwor6ZieID4gcm9rdVwgOwor6ZeiID4gaGVraVwgOwor6ZefID4ga3l1dVwgOwor6ZedID4gaHlvdVwgOwor6ZeWID4gY2hpblwgOwor6ZeDID4gZ2VraVwgOwor6Za2ID4gc2hvdVwgOwor6Za0ID4ga2VraVwgOwor6ZaxID4gZXRzdVwgOwor6ZagID4gdGFtYVwgOwor6ZaWID4geXVydVwgOwor6ZaEID4ga29rdVwgOwor6ZW5ID4ga3l1dVwgOwor6ZW4ID4gY2hvdVwgOwor6ZWgID4gcnl1dVwgOwor6ZS6ID4gc2hvdVwgOwor6ZKBID4ga2FrdVwgOwor6ZG/ID4gbm9taVwgOwor6ZGwID4geWFrdVwgOwor6ZGuID4gaGFrdVwgOwor6ZGjID4gaHlvdVwgOwor6ZGhID4gc2FrdVwgOwor6ZGfID4gdG9rdVwgOwor6ZGcID4gc2hvdVwgOwor6ZGTID4geWFyaVwgOwor6ZGKID4ga2FrdVwgOwor6ZGEID4gY2h1dVwgOwor6ZGDID4gdHlvdVwgOwor6ZC4ID4gdGFrdVwgOwor6ZC0ID4gaGVraVwgOwor6ZCyID4gdGFrdVwgOwor6ZCUID4gc2hpblwgOwor6ZCOID4gc2hvdVwgOwor6ZCIID4ga3lvdVwgOwor6ZCCID4gcnl1dVwgOwor6Y+9ID4gc2h1dVwgOwor6Y+5ID4ga3lvdVwgOwor6Y+3ID4gaG9rdVwgOwor6Y+mID4gc2hvdVwgOwor6Y+lID4gc2h1dVwgOwor6Y+iID4gaHlvdVwgOwor6Y+bID4gc2hvdVwgOwor6Y+YID4gc2hvdVwgOwor6Y+RID4gdGVraVwgOwor6Y+QID4gcnl1dVwgOwor6Y+MID4gYmFrdVwgOwor6Y+KID4gZ3lvdVwgOwor6Y+DID4gem9rdVwgOwor6Y60ID4gc29rdVwgOwor6Y6wID4gaXRzdVwgOwor6Y6uID4gY2hpblwgOwor6Y6tID4gY2hpblwgOwor6Y6oID4gc2h1blwgOwor6Y6mID4gcnl1dVwgOwor6Y6bID4gaGFrdVwgOwor6Y6aID4gdHN1aVwgOwor6Y6YID4gcmVraVwgOwor6Y6QID4gc29rdVwgOwor6Y6PID4gcnl1dVwgOwor6Y6NID4gc2FrdVwgOwor6Y6MID4ga2FtYVwgOwor6Y6AID4gc2h1dVwgOwor6Y2+ID4gc2hvdVwgOwor6Y28ID4gaGFyaVwgOwor6Y22ID4gc2hvdVwgOwor6Y2sID4ga3V3YVwgOwor6Y2WID4gY2hpblwgOwor6Yy3ID4gYXRzdVwgOwor6Yy2ID4gaHlvdVwgOwor6Yy0ID4gcm9rdVwgOwor6YyrID4gc3V6dVwgOwor6YypID4gc2hvdVwgOwor6YyeID4gc2h1blwgOwor6YyGID4gc2FiaVwgOwor6YyEID4gcm9rdVwgOwor6YyCID4gcnlvdVwgOwor6Yu/ID4gc2hvdVwgOwor6Yu5ID4gY2hvdVwgOwor6YuzID4gY2h1dVwgOwor6YuyID4gYnlvdVwgOwor6YukID4gc3VraVwgOwor6YugID4gc2hpblwgOwor6YucID4gc2FrdVwgOwor6YuIID4geW9rdVwgOwor6Yq/ID4gc2hvdVwgOwor6Yq5ID4gc2h1dVwgOwor6Yq4ID4gc2hvdVwgOwor6Yq3ID4gc2hvdVwgOwor6Yq2ID4ga3l1dVwgOwor6YqbID4gbW9yaVwgOwor6YqOID4ga3lvdVwgOwor6YqJID4gaXRzdVwgOwor6Ym+ID4gaG9rb1wgOwor6Ym7ID4gcmFrdVwgOwor6YmuID4gc2hpblwgOwor6YmmID4ga2FuZVwgOwor6YmeID4gZXRzdVwgOwor6YmdID4gcnl1dVwgOwor6YmaID4gcnl1dVwgOwor6YmRID4gaGFrdVwgOwor6YmQID4gc2VraVwgOwor6YmKID4gc2hvdVwgOwor6Yi+ID4gY2h1dVwgOwor6Yi8ID4gc2FrdVwgOwor6YisID4gdGFrdVwgOwor6YiVID4gY2h1dVwgOwor6YiUID4gc2hvdVwgOwor6YiOID4ga2FnaVwgOwor6YiMID4gZXRzdVwgOwor6YiKID4gc2hpblwgOwor6Ye9ID4gaGVraVwgOwor6Ye7ID4ga3l1dVwgOwor6YelID4gc2hvdVwgOwor6YeeID4gc2h1dVwgOwor6YebID4ga29rdVwgOwor6YeaID4ga3l1dVwgOwor6YeZID4gaGFrdVwgOwor6YeXID4gc2hvdVwgOwor6YeUID4gaXRzdVwgOwor6YeTID4gaHl1dVwgOwor6YePID4gcnlvdVwgOwor6YeCID4gc2hvdVwgOwor6Ya7ID4gc2h1dVwgOwor6YauID4gc2hvdVwgOwor6YatID4gaG9rdVwgOwor6YasID4gc2hvdVwgOwor6YaVID4gc2h1blwgOwor6YaLID4gc2FrdVwgOwor6YaHID4gc2h1blwgOwor6YWxID4gc2hvdVwgOwor6YWqID4gcmFrdVwgOwor6YWnID4gc2h1dVwgOwor6YWZID4gc2hpblwgOwor6YWOID4gY2h1dVwgOwor6YWLID4gc2h1dVwgOwor6YWJID4gdG9yaVwgOwor6YS5ID4gc2h1dVwgOwor6YS0ID4gZ3lvdVwgOwor6YSpID4gc2hpblwgOwor6YSlID4ga3lvdVwgOwor6YSjID4gc2hvdVwgOwor6YSaID4gYmFrdVwgOwor6YSZID4gaGluYVwgOwor6YSVID4ga3lvdVwgOwor6YSJID4ga3lvdVwgOwor6YSCID4gZ2FrdVwgOwor6YSAID4gamFrdVwgOwor6YO0ID4gY2hpblwgOwor6YOwID4gc2h1dVwgOwor6YOkID4gZ2VraVwgOwor6YOdID4ga2FrdVwgOwor6YOHID4gc2h1blwgOwor6YOEID4ga2VraVwgOwor6YK1ID4gc2hvdVwgOwor6YKxID4ga3l1dVwgOwor6YKmID4ga3VuaVwgOwor6YKlID4gc2hpblwgOwor6YKbID4ga3lvdVwgOwor6YKLID4gcnlvdVwgOwor6YKIID4gYmFrdVwgOwor6YG8ID4gcnlvdVwgOwor6YG5ID4gaXRzdVwgOwor6YGsID4gc29rdVwgOwor6YGnID4gc2hvdVwgOwor6YGbID4gcnl1dVwgOwor6YGSID4gc2h1dVwgOwor6YGPID4gYXRzdVwgOwor6YGMID4gZ2FrdVwgOwor6YC3ID4ga2VraVwgOwor6YC0ID4gdGFrdVwgOwor6YCqID4gc2FrdVwgOwor6YCpID4ga2FtdVwgOwor6YCnID4gc2Frb1wgOwor6YChID4gc2h1blwgOwor6YCbID4ga3lvdVwgOwor6YCWID4gdGVraVwgOwor6YCRID4ga3l1dVwgOwor6YCOID4gc2h1dVwgOwor6YCNID4gc2hvdVwgOwor6L+5ID4gc2VraVwgOwor6L+uID4gc2FrdVwgOwor6L+qID4gdGVraVwgOwor6L+iID4gY2hvdVwgOwor6L+gID4gc2hvdVwgOwor6L+NID4gY2h1blwgOwor6L64ID4gc2hvdVwgOwor6L6fID4gaGVraVwgOwor6L2jID4gcmVraVwgOwor6L2iID4gcmVraVwgOwor6L2OID4ga3lvdVwgOwor6L2MID4gc29yaVwgOwor6L2GID4gcm9rdVwgOwor6L2DID4gc2hpblwgOwor6L2CID4ga29rdVwgOwor6Ly7ID4gZnVrdVwgOwor6Ly5ID4gZnVrdVwgOwor6Ly0ID4gY2h1blwgOwor6LysID4gcnlvdVwgOwor6LynID4gYnlvdVwgOwor6LybID4gcnlvdVwgOwor6LyZID4gY2hvdVwgOwor6LyYID4gcnlvdVwgOwor6LyWID4gc2h1dVwgOwor6LySID4gY2hvdVwgOwor6LyMID4gcnlvdVwgOwor6LyIID4gY2h1dVwgOwor6Lu/ID4gYnlvdVwgOwor6Lu8ID4gaXRzdVwgOwor6Lu4ID4gamlrdVwgOwor6LutID4ga3lvdVwgOwor6LurID4gc2hpblwgOwor6LuLID4gYXRzdVwgOwor6LqzID4ga3l1dVwgOwor6LqsID4ga3l1dVwgOwor6LqeID4gc2hvdVwgOwor6LqSID4gcmVraVwgOwor6LqQID4gcnlvdVwgOwor6LqEID4gaGVraVwgOwor6LqDID4gaGVraVwgOwor6Lm8ID4gYm9rdVwgOwor6Lm7ID4ga3lvdVwgOwor6Lm6ID4ga3lvdVwgOwor6LmxID4gc2hvdVwgOwor6LmwID4gc2h1dVwgOwor6LmkID4gc2hvdVwgOwor6LmiID4gdGVraVwgOwor6LmQID4gc2VraVwgOwor6LmMID4gc2hvdVwgOwor6LmAID4gY2hvdVwgOwor6Li4ID4gY2hpblwgOwor6LizID4gc2h1blwgOwor6LixID4gdGFrdVwgOwor6LiqID4gc2hvdVwgOwor6LiiID4gdGVraVwgOwor6LiWID4gc2VraVwgOwor6LiJID4gcnlvdVwgOwor6LiGID4gc2h1blwgOwor6LiEID4gaGFrdVwgOwor6LerID4ga3lvdVwgOwor6LeWID4gc2VraVwgOwor6LeVID4gY2hvdVwgOwor6LeFID4gdGFrdVwgOwor6La7ID4gY2hpblwgOwor6La1ID4gaGFrdVwgOwor6LasID4ga3lvdVwgOwor6LarID4ga3lvdVwgOwor6LagID4gdGFrdVwgOwor6LaZID4gY2hvdVwgOwor6LaCID4gY2hpblwgOwor6LaBID4gY2hpblwgOwor6LWzID4ga3l1dVwgOwor6LWlID4ga2VraVwgOwor6LSQID4gc2hpblwgOwor6LSLID4gbmlzZVwgOwor6LO+ID4gc2FrdVwgOwor6LOwID4gc2h1blwgOwor6LOtID4ga2FrZVwgOwor6LOsID4gY2hvdVwgOwor6LOeID4gc2hvdVwgOwor6LOdID4gY2hpblwgOwor6LOZID4gc2h1dVwgOwor6LOVID4ga3l1dVwgOwor6LK6ID4ga3lvdVwgOwor6LKYID4gYmFrdVwgOwor6LKTID4gYnlvdVwgOwor6LKKID4gaGFrdVwgOwor6LKJID4ga2FrdVwgOwor6LKFID4ga3l1dVwgOwor6LKCID4gY2hvdVwgOwor6LG5ID4gaHlvdVwgOwor6LGaID4gYnV0YVwgOwor6K6sID4gdGFrdVwgOwor6K6fID4gdG9rdVwgOwor6K6WID4gc2hpblwgOwor6K6QID4gc2h1dVwgOwor6K6OID4gc2h1dVwgOwor6K6NID4gZ2FrdVwgOwor6K6LID4gc2hvdVwgOwor6K6FID4gc2hpblwgOwor6K6BID4gdGFrdVwgOwor6K24ID4gY2h1dVwgOwor6K2bID4gc2hpblwgOwor6K2ZID4gc2hvdVwgOwor6K2WID4gc2hpblwgOwor6K2FID4gc2h1dVwgOwor6Ky3ID4gZ3lvdVwgOwor6KyrID4gdGFrdVwgOwor6KyeID4ga2FrdVwgOwor6KyLID4ga2FrdVwgOwor6Ku/ID4gc2h1dVwgOwor6Ku+ID4gZGFrdVwgOwor6Ku2ID4gc2hpblwgOwor6KukID4gZ2FrdVwgOwor6KucID4gY2hvdVwgOwor6KuXID4gc2hpblwgOwor6KuSID4gcnlvdVwgOwor6KuRID4gdGFrdVwgOwor6KuKID4ga2lrdVwgOwor6KuDID4gY2hpblwgOwor6KqvID4gc2hvdVwgOwor6KqmID4gc2hvdVwgOwor6KqaID4gc2hvdVwgOwor6KqRID4ga3lvdVwgOwor6KqGID4ga3lvdVwgOwor6KqFID4gY2h1dVwgOwor6Km+ID4ga3lvdVwgOwor6Km7ID4gZ2FrdVwgOwor6Km2ID4gc2h1dVwgOwor6Km1ID4gc2hpblwgOwor6KmXID4ga3lvdVwgOwor6Ki7ID4gY2h1dVwgOwor6Ki3ID4gc2hpblwgOwor6KirID4gc2hpblwgOwor6KimID4gc2hpblwgOwor6KigID4gc2hpblwgOwor6KiFID4ga3l1dVwgOwor6KiEID4ga3l1dVwgOwor6Ke0ID4gc2hvdVwgOwor6KezID4ga29rdVwgOwor6KerID4gc29rdVwgOwor6KepID4ga3l1dVwgOwor6Ka/ID4gdGVraVwgOwor6KahID4gZ2VraVwgOwor6KacID4gY2hvdVwgOwor6KabID4gYmlraVwgOwor6KaTID4gYmVraVwgOwor6KaQID4ga2FrdVwgOwor6KaIID4ga2FrdVwgOwor6KW1ID4gc2hvdVwgOwor6KWvID4gc2hpblwgOwor6KWuID4gaGFrdVwgOwor6KWrID4gc2VraVwgOwor6KWeID4gaGlkYVwgOwor6KWXID4gdGFrdVwgOwor6KWGID4gaG9rdVwgOwor6KWCID4gc2hpblwgOwor6KWAID4gc2VraVwgOwor6KS+ID4gaHlvdVwgOwor6KS6ID4gY2hvdVwgOwor6KS2ID4gY2hvdVwgOwor6KSxID4ga2FpZVwgOwor6KSlID4gam9rdVwgOwor6KSOID4gc2h1dVwgOwor6KSBID4gc2VraVwgOwor6KO8ID4gc2VraVwgOwor6KOyID4gcnlvdVwgOwor6KOxID4gaHlvdVwgOwor6KOvID4gY2h1dVwgOwor6KObID4geW91dVwgOwor6KOYID4ga3l1dVwgOwor6KOTID4ga29rdVwgOwor6KORID4gc2hpblwgOwor6KOEID4geXVraVwgOwor6KKxID4gZnVrdVwgOwor6KKwID4gaG9yb1wgOwor6KKXID4gc2hpblwgOwor6KGxID4ga3lvdVwgOwor6KGgID4gc2h1blwgOwor6KGJID4ga2FrdVwgOwor6KGEID4gamlrdVwgOwor6KGCID4gamlrdVwgOwor6KCwID4gc2hvdVwgOwor6KCuID4gZXRzdVwgOwor6KCoID4gc2hvdVwgOwor6KCaID4ga2FrdVwgOwor6KCWID4ga2FrdVwgOwor6KCBID4ga3lvdVwgOwor6J+5ID4ga2FuaVwgOwor6J+vID4gZ3lvdVwgOwor6J+tID4gc2hvdVwgOwor6J+fID4gcnlvdVwgOwor6J+cID4ga3lvdVwgOwor6J+OID4gZGFuaVwgOwor6J+JID4gcnl1dVwgOwor6J+IID4ga2FrdVwgOwor6J+HID4gaGlraVwgOwor6J+GID4gaGlraVwgOwor6J6/ID4gc2hvdVwgOwor6J69ID4gc2h1dVwgOwor6J61ID4gaHlvdVwgOwor6J6rID4gc2VraVwgOwor6J6TID4gc2hpblwgOwor6J6LID4gc2h1dVwgOwor6J22ID4gY2hvdVwgOwor6J2kID4gc2h1dVwgOwor6J2NID4gc29rdVwgOwor6Jy9ID4gcnlvdVwgOwor6JyuID4geW9rdVwgOwor6JypID4gY2hvdVwgOwor6JyoID4gc2hvdVwgOwor6JylID4gc2VraVwgOwor6JyjID4ga3lvdVwgOwor6JyZID4gc2hvdVwgOwor6JyQID4ga3lvdVwgOwor6JyEID4gc2hpblwgOwor6Ju6ID4ga3lvdVwgOwor6Ju4ID4gdGFrb1wgOwor6JutID4gaGlydVwgOwor6JusID4ga3lvdVwgOwor6JupID4ga3lvdVwgOwor6JuSID4ga2FrdVwgOwor6JuBID4gY2hvdVwgOwor6Jq4ID4gcmVraVwgOwor6JqxID4gc2FrdVwgOwor6JqvID4ga3l1dVwgOwor6JqLID4gYnV5b1wgOwor6Jm5ID4gbmlqaVwgOwor6JmvID4ga3l1dVwgOwor6JmsID4ga3l1dVwgOwor6JmpID4ga2VraVwgOwor6JmZID4gaHVrdVwgOwor6JmIID4ga3lvdVwgOwor6Ji9ID4gcnl1dVwgOwor6JiXID4gaGFrdVwgOwor6JiSID4gaGFnaVwgOwor6JiGID4gYXNoaVwgOwor6JiAID4gdGFrdVwgOwor6Je/ID4ga2FrdVwgOwor6Je2ID4gcmVraVwgOwor6JetID4ga3l1dVwgOwor6JeqID4geWFidVwgOwor6JeoID4gaHlvdVwgOwor6JegID4ga3lvdVwgOwor6JeQID4gYmFrdVwgOwor6JeOID4gc2hpblwgOwor6JeLID4gY2hvdVwgOwor6Ja9ID4gc2hpblwgOwor6Ja8ID4gY2hpblwgOwor6Ja4ID4gaHlvdVwgOwor6JacID4gaGVraVwgOwor6JaTID4gc2hpblwgOwor6JaRID4ga3lvdVwgOwor6JaPID4geW9rdVwgOwor6JaMID4ga3lvdVwgOwor6JW6ID4gc2h1dVwgOwor6JWtID4gc2hvdVwgOwor6JWqID4ga2FidVwgOwor6JWjID4gc2h1blwgOwor6JWaID4gZ2FrdVwgOwor6JWXID4gZnVraVwgOwor6JWQID4ga3V3YVwgOwor6JWJID4gc2hvdVwgOwor6JWIID4gc2hpblwgOwor6JSvID4gY2hpblwgOwor6JSjID4gc2hvdVwgOwor6JSfID4gem9rdVwgOwor6JSaID4gdXRzdVwgOwor6JSYID4gc2hpblwgOwor6JSVID4gaGV0YVwgOwor6JSUID4gZnVrdVwgOwor6JSQID4gdGVraVwgOwor6JSPID4gc2hvdVwgOwor6JSMID4gc29rdVwgOwor6JSHID4ga2lrZVwgOwor6JSGID4gcnlvdVwgOwor6JSDID4ga3lvdVwgOwor6JO8ID4gdGFkZVwgOwor6JO7ID4gc2h1dVwgOwor6JO0ID4gc2h1blwgOwor6JOyID4ga3l1dVwgOwor6JOnID4gc2hvdVwgOwor6JOaID4gY2hvdVwgOwor6JORID4gbWlub1wgOwor6JOQID4gam9rdVwgOwor6JOBID4gc2hpblwgOwor6JK0ID4gc2FrdVwgOwor6JKqID4gaGFrdVwgOwor6JKmID4gd2FrdVwgOwor6JKWID4gc2hpblwgOwor6JKQID4gc2h1dVwgOwor6JKLID4gc2hvdVwgOwor6JG6ID4gc2h1dVwgOwor6JG0ID4gc2hpblwgOwor6JGxID4gbmVnaVwgOwor6JGvID4geWFrdVwgOwor6JGkID4gY2h1dVwgOwor6JGgID4gc2hpblwgOwor6JGbID4ga3V6dVwgOwor6JGaID4gY2hpblwgOwor6JGZID4gc2hvdVwgOwor6JGNID4gaHVrdVwgOwor6JC8ID4gZ2FrdVwgOwor6JCqID4ga3V3YVwgOwor6JCpID4gaGFnaVwgOwor6JCiID4geWFqaVwgOwor6JCbID4ga3l1dVwgOwor6JCHID4gY2hvdVwgOwor6JCFID4gc2h1blwgOwor6I+xID4gcnlvdVwgOwor6I+oID4gc2hvdVwgOwor6I+WID4gc2hvdVwgOwor6I+UID4gaG9rdVwgOwor6I+QID4gaG9rdVwgOwor6I6cID4gdGVraVwgOwor6I6YID4gc2hpblwgOwor6I6NID4ga3l1dVwgOwor6I6AID4gc2hpblwgOwor6I2NID4ga3lvdVwgOwor6Iy9ID4gY2h1dVwgOwor6Iy6ID4gc2h1dVwgOwor6IyvID4gZnVrdVwgOwor6IyuID4gc2hvdVwgOwor6IytID4ga2VraVwgOwor6IyfID4gaXRzdVwgOwor6IyeID4gc2hpblwgOwor6IyWID4ga2FrdVwgOwor6IucID4gYm9rdVwgOwor6IuZID4gcnl1dVwgOwor6IuVID4gY2hvdVwgOwor6IuGID4gc3VzYVwgOwor6Iq5ID4gc2VyaVwgOwor6IqyID4ga3V3YVwgOwor6IqvID4gc2hpblwgOwor6IqoID4ga3l1dVwgOwor6IqSID4gbm9naVwgOwor6IqOID4ga3l1dVwgOwor6IqAID4gc2hvdVwgOwor6Im9ID4ga3l1dVwgOwor6Im7ID4gcm9rdVwgOwor6ImrID4gdG9tb1wgOwor6ImnID4gd2FrdVwgOwor6ImiID4gc2hvdVwgOwor6ImdID4gc29yaVwgOwor6ImPID4gc2h1dVwgOwor6Ii1ID4ga2FqaVwgOwor6Ii0ID4gdGFrdVwgOwor6IicID4gc2h1blwgOwor6IiPID4ga3l1dVwgOwor6IiCID4gc2hvdVwgOwor6Ie7ID4gc2hpblwgOwor6Ie5ID4gc2h1dVwgOwor6Ie1ID4ga2FrdVwgOwor6IewID4gc2h1dVwgOwor6IerID4ga3lvdVwgOwor6IebID4ga29rdVwgOwor6IeVID4gaHlvdVwgOwor6IayID4gc2hvdVwgOwor6IauID4ga3lvdVwgOwor6IakID4gdGFyYVwgOwor6IaYID4gaHlvdVwgOwor6IaVID4ga2FrdVwgOwor6IaTID4gY2hvdVwgOwor6IaLID4gcnlvdVwgOwor6IaKID4gaGFrdVwgOwor6IaIID4ga2FrdVwgOwor6IaEID4gc2h1dVwgOwor6IaDID4gb3RzdVwgOwor6IW/ID4gbW9tb1wgOwor6IW9ID4gb3RzdVwgOwor6IWtID4gZ2FrdVwgOwor6IWYID4ga2FrdVwgOwor6IWKID4gc2VraVwgOwor6IS8ID4gcnlvdVwgOwor6IS5ID4gY2hvdVwgOwor6ISpID4gc2h1dVwgOwor6ISkID4gc2hpblwgOwor6ISbID4gc3VuZVwgOwor6ISLID4ga3lvdVwgOwor6IO6ID4gYXRzdVwgOwor6IOzID4ga2FrdVwgOwor6IOkID4gdGFuZVwgOwor6IOXID4gc2hpblwgOwor6IOEID4gY2h1dVwgOwor6IKxID4gaGlqaVwgOwor6IKrID4gc2h1blwgOwor6IKhID4gbW9tb1wgOwor6IKIID4gY2hvdVwgOwor6IKHID4gY2hvdVwgOwor6IKBID4gY2hvdVwgOwor6IG/ID4gaXRzdVwgOwor6IG8ID4gY2hvdVwgOwor6IGEID4gc2hpblwgOwor6IC0ID4gY2hvdVwgOwor6ICkID4gc2VraVwgOwor57+5ID4gZ3lvdVwgOwor57+yID4gaHlvdVwgOwor57+vID4ga29rdVwgOwor57+uID4ga2FrdVwgOwor57+fID4ga2VraVwgOwor57+VID4ga3l1dVwgOwor57+UID4gc2hvdVwgOwor57+PID4gcnl1dVwgOwor57+KID4geW9rdVwgOwor57+AID4gY2h1dVwgOwor576XID4ga3lvdVwgOwor576MID4ga3lvdVwgOwor576DID4gYmVraVwgOwor576AID4gcnl1dVwgOwor572/ID4gc2hvdVwgOwor5722ID4gcnl1dVwgOwor572tID4geW9rdVwgOwor572nID4gc2hpblwgOwor572gID4gd2FuYVwgOwor572FID4gaGliaVwgOwor57qVID4gc2hvdVwgOwor57qGID4gYm9rdVwgOwor57muID4ga3lvdVwgOwor57mtID4gbWF5dVwgOwor57mmID4ga3lvdVwgOwor57mhID4gc2h1dVwgOwor57maID4gcnlvdVwgOwor57mSID4gc2hvdVwgOwor57mNID4gc2h1dVwgOwor57mIID4ga3lvdVwgOwor57mGID4ga3l1dVwgOwor57i+ID4gc2VraVwgOwor57i5ID4gaHlvdVwgOwor57i2ID4gY2h1dVwgOwor57igID4ga29rdVwgOwor57ifID4gam9rdVwgOwor57idID4gc2hpblwgOwor57iQID4gc2h1dVwgOwor57iJID4gc2hpblwgOwor57eyID4gYnlvdVwgOwor57edID4gc2h1dVwgOwor57eZID4ga2FrdVwgOwor57eXID4gc2hvdVwgOwor57eOID4geW9rdVwgOwor57eGID4gc2VraVwgOwor57eFID4gc2h1dVwgOwor57eDID4gc2hvdVwgOwor57a5ID4gcnl1dVwgOwor57a2ID4ga3V3YVwgOwor57anID4gc2h1blwgOwor57aiID4gY2h1dVwgOwor57adID4gY2hpblwgOwor57abID4ga2FzZVwgOwor57aMID4ga2VraVwgOwor57aFID4gc2hpblwgOwor57aDID4gc2hvdVwgOwor57W/ID4ga3l1dVwgOwor57WIID4gYmFrdVwgOwor57S+ID4gc2hpblwgOwor57SsID4gY2h1dVwgOwor57SWID4gY2hpblwgOwor57SDID4gc2h1blwgOwor57SCID4gY2h1dVwgOwor57O+ID4ga3l1dVwgOwor57O6ID4ga3l1dVwgOwor57O2ID4gY2hvdVwgOwor57O0ID4gdGVraVwgOwor57OgID4gbnVrYVwgOwor57OXID4ga3l1dVwgOwor57OUID4gc2h1dVwgOwor57OTID4ga29rdVwgOwor57OKID4gbm9yaVwgOwor57K7ID4gY2hvdVwgOwor57K3ID4ga2lrdVwgOwor57K2ID4gcm9rdVwgOwor57K1ID4gZXRzdVwgOwor57KxID4gcnlvdVwgOwor57KuID4gcnlvdVwgOwor57KkID4gZXRzdVwgOwor57KVID4gaGFrdVwgOwor57KCID4ga3VtZVwgOwor57G+ID4gbW9taVwgOwor57GwID4gd2FrdVwgOwor57GlID4geWFrdVwgOwor57GkID4ga3VqaVwgOwor57GcID4gdGFrdVwgOwor57GVID4gcnl1dVwgOwor57GSID4gc2h1dVwgOwor57GPID4gaGF0YVwgOwor57GMID4gY2h1dVwgOwor57GKID4gdGVraVwgOwor57GGID4gd2FrdVwgOwor57GAID4gY2h1dVwgOwor57C2ID4gcm9rdVwgOwor57CxID4gaGF0YVwgOwor57CrID4gc2hvdVwgOwor57CqID4gc2hpblwgOwor57CoID4gc2h1blwgOwor57ClID4ga3lvdVwgOwor57CZID4gaGFrdVwgOwor57CYID4gc2hvdVwgOwor57CXID4geWFuYVwgOwor57CPID4gcm9rdVwgOwor57COID4gc2FrdVwgOwor57CMID4gc29rdVwgOwor57CJID4gc2h1dVwgOwor57CAID4gc2FrdVwgOwor56+4ID4gc2hpblwgOwor56+0ID4gdGVraVwgOwor56+gID4gc2hvdVwgOwor56+bID4gamFrdVwgOwor56+XID4gd2FrdVwgOwor56+LID4ga3lvdVwgOwor5666ID4gc2h1blwgOwor5660ID4gc2hpblwgOwor566wID4gc2h1blwgOwor566sID4gam9rdVwgOwor566ZID4gZnVrdVwgOwor566UID4gaGFrdVwgOwor566NID4gdGFnYVwgOwor566GID4gaGVyYVwgOwor562/ID4gc2hvdVwgOwor5626ID4ga3lvdVwgOwor5620ID4ga3lvdVwgOwor562xID4gc2hvdVwgOwor562wID4gc2FrdVwgOwor562QID4ga3lvdVwgOwor562HID4ga3lvdVwgOwor56y/ID4gcmFrdVwgOwor56yuID4gc2FrdVwgOwor56ynID4gc2FrdVwgOwor56yKID4gemFydVwgOwor56yIID4ga3l1dVwgOwor56u7ID4gcm9rdVwgOwor56u6ID4gdG9rdVwgOwor56u0ID4gc2h1blwgOwor56uoID4gY2hvdVwgOwor56umID4gc2hvdVwgOwor56ujID4gc2h1blwgOwor56ucID4gcnl1dVwgOwor56uGID4ga3l1dVwgOwor56uFID4ga3lvdVwgOwor56q/ID4gcnl1dVwgOwor56q1ID4gY2hvdVwgOwor56qvID4ga2FtYVwgOwor56qVID4gY2hvdVwgOwor56qEID4gc2FrdVwgOwor56qAID4gY2h1blwgOwor56m5ID4ga3l1dVwgOwor56m4ID4gc2VraVwgOwor56m1ID4gYXRzdVwgOwor56mrID4ga2FrdVwgOwor56mqID4gc2hvdVwgOwor56mZID4gaG9rdVwgOwor56mVID4gc2hvdVwgOwor56mQID4gc2h1dVwgOwor56mGID4gYm9rdVwgOwor56mAID4ga29rdVwgOwor56i5ID4gc2hpblwgOwor56i4ID4ga2lrdVwgOwor56igID4gY2h1dVwgOwor56icID4gcnlvdVwgOwor56iVID4gc2h1blwgOwor56iRID4gcmlrdVwgOwor56emID4gc2hpblwgOwor56edID4gcmVraVwgOwor56eNID4gY2h1dVwgOwor56eDID4gdG9rdVwgOwor56a0ID4geWFrdVwgOwor56abID4gc2hpblwgOwor56W/ID4gcm9rdVwgOwor56W+ID4gcnlvdVwgOwor56WyID4gc2hpblwgOwor56WoID4gaHlvdVwgOwor56WnID4gY2hvdVwgOwor56WlID4gc2hvdVwgOwor56WPID4gc2VraVwgOwor56S/ID4geWFrdVwgOwor56S0ID4gaGFrdVwgOwor56StID4ga2FrdVwgOwor56SQID4ga2FrdVwgOwor56SBID4gc2hvdVwgOwor56O/ID4gcmVraVwgOwor56O2ID4gc2VraVwgOwor56OnID4gc2VraVwgOwor56OmID4gaHlvdVwgOwor56OfID4gcmlrdVwgOwor56OUID4gdGFrdVwgOwor56K7ID4ga2FrdVwgOwor56K1ID4gc2VraVwgOwor56KqID4gY2hpblwgOwor56KpID4gc2VraVwgOwor56KhID4gdG9rdVwgOwor56G+ID4gdHN1aVwgOwor56G6ID4gdGFrdVwgOwor56G0ID4ga2FraVwgOwor56GuID4ga2FrdVwgOwor56GrID4gcnl1dVwgOwor56GeID4ga2FrdVwgOwor56GMID4gcmFrdVwgOwor56C3ID4gc2hpblwgOwor56CnID4gY2hpblwgOwor56ChID4gZ2lrdVwgOwor56CdID4ga3lvdVwgOwor56CJID4ga2VraVwgOwor55+xID4gd2FrdVwgOwor55+vID4ga3lvdVwgOwor55+qID4gY2h1dVwgOwor55+nID4gc2hpblwgOwor55+kID4gc2hpblwgOwor55+gID4gc2FrdVwgOwor55+fID4gc2FrdVwgOwor55+eID4gaXRzdVwgOwor55+bID4gaG9rb1wgOwor55+NID4ga2FrdVwgOwor556+ID4gc2hvdVwgOwor556nID4gc2hvdVwgOwor556fID4gaHlvdVwgOwor556aID4gc2h1blwgOwor556VID4gc2hvdVwgOwor556UID4gc2FrdVwgOwor556LID4gc2hpblwgOwor556EID4gYnlvdVwgOwor552XID4gc2VraVwgOwor552WID4gY2hvdVwgOwor55y+ID4gc2h1dVwgOwor55y9ID4gYmFrdVwgOwor55y5ID4gY2hpblwgOwor55y2ID4ga3lvdVwgOwor55yVID4gc2hpblwgOwor55ySID4gc2hpblwgOwor55yHID4gYnlvdVwgOwor55u+ID4gdGF0ZVwgOwor55u5ID4gc2h1blwgOwor55uFID4gY2h1dVwgOwor55q5ID4gaGliaVwgOwor55q4ID4gaGliaVwgOwor55q0ID4gc2h1blwgOwor55qqID4gcmVraVwgOwor55qmID4ga3lvdVwgOwor55qiID4ga3lvdVwgOwor55qfID4gc2FrdVwgOwor55qbID4ga3lvdVwgOwor55qZID4gc2VraVwgOwor55qNID4gc29rdVwgOwor55qAID4gaHl1dVwgOwor55moID4ga2FrdVwgOwor55mnID4gcmVraVwgOwor55mlID4gY2hvdVwgOwor55mLID4ga2FrdVwgOwor55mFID4gcnl1dVwgOwor55mEID4gc2hvdVwgOwor55mDID4gcnl1dVwgOwor55mBID4gZnVrdVwgOwor55i8ID4gYmFrdVwgOwor55i5ID4gY2hvdVwgOwor55i0ID4gc2hvdVwgOwor55izID4gY2h1dVwgOwor55iyID4gc2hvdVwgOwor55iuID4gc2hpblwgOwor55itID4gaHlvdVwgOwor55ikID4ga29idVwgOwor55igID4gc2VraVwgOwor55iHID4gc2hvdVwgOwor55euID4gY2hvdVwgOwor55efID4gc2hvdVwgOwor55ecID4gdG9rdVwgOwor55a5ID4gc2hpblwgOwor55aiID4gY2hpblwgOwor55aaID4ga3l1dVwgOwor55aUID4gY2hvdVwgOwor55aSID4gZGFrdVwgOwor55aHID4gY2h1dVwgOwor55aGID4ga3lvdVwgOwor55aFID4ga3lvdVwgOwor55W8ID4gY2hvdVwgOwor55W7ID4gc2hvdVwgOwor55W6ID4ga3lvdVwgOwor55W1ID4ga2FrdVwgOwor55W0ID4gY2h1dVwgOwor55WxID4gcnl1dVwgOwor55WvID4gc2h1blwgOwor55WpID4ga2VzYVwgOwor55WbID4gc2hpblwgOwor55WQID4gZnVrdVwgOwor55WEID4gcnl1dVwgOwor55WDID4gc2h1blwgOwor55S8ID4gY2hvdVwgOwor55SqID4gcm9rdVwgOwor55SnID4gc2hpblwgOwor55ShID4gc2hpblwgOwor55SeID4gc2hvdVwgOwor55SVID4gbWlrYVwgOwor55STID4gaGVraVwgOwor55SDID4gc2h1dVwgOwor55O6ID4gY2hvdVwgOwor55OkID4gc2hvdVwgOwor55OiID4gaHlvdVwgOwor55OfID4gaGFrdVwgOwor55K5ID4gc2h1dVwgOwor55KnID4gaGVraVwgOwor55KiID4gcnl1dVwgOwor55KhID4gc2hpblwgOwor55KeID4gaGFrdVwgOwor55KZID4gcnlvdVwgOwor55KLID4gc2hvdVwgOwor55KGID4ga3l1dVwgOwor55GyID4gc2hvdVwgOwor55GoID4gc2hpblwgOwor55GnID4gc2hpblwgOwor55GgID4gcnl1dVwgOwor55GVID4ga2l6dVwgOwor55GSID4gY2hvdVwgOwor55GDID4gY2h1blwgOwor55CxID4gY2hvdVwgOwor55CtID4ga29rdVwgOwor55CpID4gc2hvdVwgOwor55CiID4gdGFrdVwgOwor55CbID4gY2hpblwgOwor55CJID4gcnl1dVwgOwor55CHID4gc2h1dVwgOwor54+mID4ga3lvdVwgOwor54+jID4gc2h1blwgOwor54+eID4gcmFrdVwgOwor54+ZID4ga3lvdVwgOwor54+SID4gc2hpblwgOwor54+PID4ga2FrdVwgOwor54+OID4gY2hpblwgOwor54+LID4gcnl1dVwgOwor54+FID4gc2hpblwgOwor54+AID4gaGFrdVwgOwor546/ID4gc2hvdVwgOwor546TID4gdGVraVwgOwor546FID4gbXlvdVwgOwor5422ID4gbnlvdVwgOwor5421ID4gcnlvdVwgOwor542gID4gcnlvdVwgOwor542fID4gZ3lvdVwgOwor542QID4gc2hvdVwgOwor542PID4gYmFrdVwgOwor542OID4gc2hvdVwgOwor542NID4ga3lvdVwgOwor54yfID4gcnlvdVwgOwor54yWID4gc2hvdVwgOwor54yLID4gaHlvdVwgOwor54ulID4gc2h1blwgOwor54uiID4ga2FrdVwgOwor54ubID4gaGFrdVwgOwor54uHID4gYm9rdVwgOwor54uGID4gY2hpblwgOwor54uEID4gdGVraVwgOwor54qxID4ga2VraVwgOwor54qoID4gc2h1dVwgOwor54qiID4gdG9rdVwgOwor54qWID4gcmFrdVwgOwor54m/ID4ga29rdVwgOwor54meID4ga3l1dVwgOwor54mZID4ga2liYVwgOwor54mYID4gdG9rdVwgOwor54mUID4gaGFrdVwgOwor54mGID4gc2hvdVwgOwor54i/ID4gc2hvdVwgOwor54i0ID4ga2FrdVwgOwor54ivID4gc2hvdVwgOwor54iaID4geWFrdVwgOwor54iAID4ga2FrdVwgOwor54e4ID4gaml5dVwgOwor54euID4gc2hvdVwgOwor54eaID4gaXRzdVwgOwor54eWID4gc2hpblwgOwor54eOID4gcnlvdVwgOwor54eLID4gc2hvdVwgOwor54abID4gaHlvdVwgOwor54aHID4ga29rdVwgOwor54aEID4gc29rdVwgOwor54WBID4gc2hpblwgOwor54S7ID4gc2hvdVwgOwor54SMID4gc2h1blwgOwor54SHID4gc2hvdVwgOwor54SGID4gZXRzdVwgOwor54SFID4ga29rdVwgOwor54SDID4ga2FrdVwgOwor54OZID4gcmFrdVwgOwor54K4ID4gc2FrdVwgOwor54KkID4gc2hvdVwgOwor54G4ID4ga3l1dVwgOwor54GsID4gaHlvdVwgOwor54GlID4gc2h1blwgOwor54GEID4gc2hvdVwgOwor54C5ID4gc2VrdVwgOwor54C3ID4geW9rdVwgOwor54CnID4gdGFraVwgOwor54CfID4gc2hvdVwgOwor54CTID4gY2hvdVwgOwor54CRID4gYmFrdVwgOwor54CPID4gcnl1dVwgOwor54CLID4gc2hpblwgOwor54CGID4gdG9rdVwgOwor5r+8ID4gcm9rdVwgOwor5r+5ID4gYm9rdVwgOwor5r+uID4gaG9rdVwgOwor5r+sID4gc2h1blwgOwor5r+pID4ga2FrdVwgOwor5r+IID4gc2h1dVwgOwor5r+FID4gc2hpblwgOwor5r68ID4gaGVraVwgOwor5r61ID4gc2hpblwgOwor5r6gID4gc2hvdVwgOwor5r6ZID4gc2VraVwgOwor5r6TID4gaHVrdVwgOwor5r6RID4gcnl1dVwgOwor5r6GID4gZ3lvdVwgOwor5r6CID4gY2hvdVwgOwor5r2fID4ga2F0YVwgOwor5r2dID4ga3l1dVwgOwor5r2XID4gc2h1dVwgOwor5ry7ID4gcnlvdVwgOwor5ryzID4gc2hvdVwgOwor5ryYID4gc2hpblwgOwor5ryNID4ga2FrdVwgOwor5ryJID4gcm9rdVwgOwor5ruyID4gc2hpblwgOwor5ruuID4gaHl1dVwgOwor5rurID4gc2h1dVwgOwor5rudID4gdGFraVwgOwor5ruTID4ga2FzdVwgOwor5ruMID4gZGVraVwgOwor5rq9ID4gam9rdVwgOwor5rqxID4gc2hpblwgOwor5rqNID4gc2hpblwgOwor5rmrID4gc2hvdVwgOwor5rmoID4ga2VraVwgOwor5rmYID4gc2hvdVwgOwor5rmSID4gc2h1dVwgOwor5ri6ID4gYnlvdVwgOwor5rieID4gc2h1dVwgOwor5riXID4gc2hpblwgOwor5riMID4gcm9rdVwgOwor5re8ID4gYnlvdVwgOwor5re0ID4gb3RzdVwgOwor5rezID4gc2h1blwgOwor5repID4gcnlvdVwgOwor5relID4gcm9rdVwgOwor5reiID4geW9rdVwgOwor5reeID4gc2hvdVwgOwor5reVID4gcmlrdVwgOwor5reMID4gc2hvdVwgOwor5reFID4gc2VraVwgOwor5ra/ID4gdG9rdVwgOwor5raJID4gc2hvdVwgOwor5rW5ID4gc2hvdVwgOwor5rWeID4gc2FrdVwgOwor5rWXID4ga3l1dVwgOwor5rS2ID4ga3lvdVwgOwor5rS1ID4gc2h1blwgOwor5rSmID4gYmFrdVwgOwor5rSfID4gaGFuYVwgOwor5rSTID4gc2FrdVwgOwor5rSRID4gaHVrdVwgOwor5rO1ID4gcnl1dVwgOwor5rOnID4gZXRzdVwgOwor5rOGID4gaXRzdVwgOwor5rOFID4gc2h1dVwgOwor5rKwID4gdGFrdVwgOwor5rKQID4gYm9rdVwgOwor5rKJID4gY2hpblwgOwor5rKDID4geW9rdVwgOwor5rKBID4gc2hpblwgOwor5rG5ID4ga3lvdVwgOwor5rGpID4gaXRzdVwgOwor5rGoID4gYmVraVwgOwor5rGbID4gc2hpblwgOwor5rGQID4gc2VraVwgOwor5rGLID4gc2FrdVwgOwor5rC7ID4gcm9rdVwgOwor5rC2ID4gc2hvdVwgOwor5rCOID4gY2hvdVwgOwor5rCFID4gc2hvdVwgOwor5q+xID4ga2lrdVwgOwor5q+jID4gYm9rdVwgOwor5q+EID4ga2VraVwgOwor5q+DID4ga2FrdVwgOwor5q6+ID4gc2h1blwgOwor5q68ID4ga2FrdVwgOwor5q6wID4gdG9rdVwgOwor5q6tID4ga3lvdVwgOwor5q6kID4gc2hvdVwgOwor5q6gID4gc2h1dVwgOwor5q6fID4gb3RzdVwgOwor5q6RID4ga3lvdVwgOwor5q6NID4gaHlvdVwgOwor5q21ID4gc2FrdVwgOwor5q2wID4gc2h1dVwgOwor5q2ZID4ga3l1dVwgOwor5q2SID4gdGVraVwgOwor5q2KID4ga3lvdVwgOwor5qy2ID4gc2FrdVwgOwor5qyrID4ga2VraVwgOwor5qyHID4gc2hvdVwgOwor5qyCID4gaGFrdVwgOwor5qusID4gc2hpblwgOwor5quqID4gcmVraVwgOwor5qufID4gcmVraVwgOwor5qudID4gdG9rdVwgOwor5qq0ID4ga2FrdVwgOwor5qqqID4gcmVraVwgOwor5qqdID4gc2h1dVwgOwor5qqXID4gaGFrdVwgOwor5qqNID4geW9rdVwgOwor5qqEID4gZ2VraVwgOwor5qm/ID4ga3lvdVwgOwor5qm4ID4gc2hvdVwgOwor5qmzID4gbnVkZVwgOwor5qmyID4genVzYVwgOwor5qmhID4gc2hvdVwgOwor5qmQID4gdGFrdVwgOwor5qmKID4gcnlvdVwgOwor5qi+ID4gZXRzdVwgOwor5qi9ID4gdGFydVwgOwor5qi6ID4ga2FiYVwgOwor5qi4ID4gYm9rdVwgOwor5qiwID4gdGFyYVwgOwor5qiiID4gYm9rdVwgOwor5qifID4gc2hvdVwgOwor5qibID4ga3l1dVwgOwor5qiaID4gcm9rdVwgOwor5qiVID4gc29rdVwgOwor5qiRID4gcnlvdVwgOwor5qiAID4gdGVraVwgOwor5qezID4gc2hvdVwgOwor5qeyID4ga29rdVwgOwor5qeuID4gc2hpblwgOwor5qeoID4ga2FrdVwgOwor5qeiID4gc2h1dVwgOwor5qeXID4ga3lvdVwgOwor5qeWID4gdGFrdVwgOwor5qeNID4geWFyaVwgOwor5qeKID4gc2FrdVwgOwor5qeFID4ga2FrdVwgOwor5qa6ID4gc2hvdVwgOwor5qa3ID4ga2FrdVwgOwor5qa0ID4gcnl1dVwgOwor5qayID4gb3RzdVwgOwor5qarID4gc2h1blwgOwor5qanID4ga2F5YVwgOwor5qaWID4ga29rdVwgOwor5qaSID4gZG9rdVwgOwor5qaFID4gb3RzdVwgOwor5qaBID4gbXVyb1wgOwor5qW4ID4gc2h1dVwgOwor5qWrID4gc2h1dVwgOwor5qWiID4gc2h1dVwgOwor5qWJID4gamFrdVwgOwor5qWFID4gaHlrdVwgOwor5qSoID4gdGFmdVwgOwor5qSlID4gbmFnaVwgOwor5qSZID4gc3VnaVwgOwor5qSTID4gdGFrdVwgOwor5qSSID4gc2hvdVwgOwor5qSLID4gcnlvdVwgOwor5qSIID4ga2lrdVwgOwor5qSGID4gY2h1dVwgOwor5qSBID4ga2FrdVwgOwor5qO9ID4gY2hpblwgOwor5qOrID4geW9rdVwgOwor5qOfID4gbXVuZVwgOwor5qOYID4gdG9nZVwgOwor5qOPID4gdG9rdVwgOwor5qKuID4ga2lrdVwgOwor5qKlID4gc2hvdVwgOwor5qKjID4gc2hpblwgOwor5qKcID4ga3lvdVwgOwor5qKPID4ga29rdVwgOwor5qKCID4ga3l1dVwgOwor5qKBID4gaGFyaVwgOwor5qG6ID4gcnl1dVwgOwor5qG3ID4ga2FrdVwgOwor5qGdID4gbWFzdVwgOwor5qGYID4gdHN1aVwgOwor5qGVID4ga3l1dVwgOwor5qGRID4ga3V3YVwgOwor5qGMID4gdGFrdVwgOwor5qGGID4ga3lvdVwgOwor5qC/ID4gZnVrdVwgOwor5qC4ID4ga2FrdVwgOwor5qCxID4ga3lvdVwgOwor5qCqID4ga2FidVwgOwor5qCiID4gaGFrdVwgOwor5qCFID4gc2FrdVwgOwor5qCCID4gdG9nYVwgOwor5p++ID4ga3l1dVwgOwor5p+pID4ga3l1dVwgOwor5p+eID4gc2FrdVwgOwor5p+dID4gdGFrdVwgOwor5p+XID4gc2hvdVwgOwor5p+PID4gaGFrdVwgOwor5p63ID4ga2FzZVwgOwor5p61ID4ga3lvdVwgOwor5p6pID4gc2hvdVwgOwor5p6hID4gbWFzdVwgOwor5p6gID4gd2FrdVwgOwor5p6QID4gc2VraVwgOwor5p6BID4ga3lvdVwgOwor5p27ID4gY2h1dVwgOwor5p22ID4gY2h1blwgOwor5p2qID4gYnlvdVwgOwor5p2mID4gc3VnaVwgOwor5p2jID4gc29tYVwgOwor5p2iID4gbW9rdVwgOwor5p2ZID4geW9rdVwgOwor5p2UID4gdGFrdVwgOwor5py9ID4ga3l1dVwgOwor5pyVID4gY2hpblwgOwor5pyUID4gc2FrdVwgOwor5pyTID4gY2hvdVwgOwor5pySID4gbmlrdVwgOwor5pyQID4ga3lvdVwgOwor5pu7ID4gc2hvdVwgOwor5puwID4gZXRzdVwgOwor5pufID4gc2hpblwgOwor5puPID4ga3lvdVwgOwor5puMID4gc2hvdVwgOwor5puJID4gZ3lvdVwgOwor5puGID4gcmVraVwgOwor5pq4ID4gcnlvdVwgOwor5pqyID4gc2hvdVwgOwor5pqZID4gc2h1blwgOwor5pqNID4gZXRzdVwgOwor5pm/ID4gc2hvdVwgOwor5pm+ID4gcnlvdVwgOwor5pmzID4gc2VraVwgOwor5pmwID4gc2VraVwgOwor5pmrID4gdGFrdVwgOwor5pmoID4gc2hpblwgOwor5pmZID4gc2h1blwgOwor5pmRID4ga3lvdVwgOwor5pmMID4gc2hvdVwgOwor5pmLID4gc2hpblwgOwor5pmJID4gc2hpblwgOwor5pmBID4gY2hvdVwgOwor5pmAID4gY2hvdVwgOwor5pi2ID4gY2hvdVwgOwor5piuID4gc2hvdVwgOwor5pijID4gc2hpblwgOwor5piMID4gc2hvdVwgOwor5piDID4gc29rdVwgOwor5pe+ID4gc2h1blwgOwor5penID4ga3l1dVwgOwor5peSID4gcnl1dVwgOwor5peQID4gY2hvdVwgOwor5peIID4gcnl1dVwgOwor5payID4gdGFrdVwgOwor5pauID4gc2FrdVwgOwor5pahID4gYXRzdVwgOwor5pagID4ga2FrdVwgOwor5pafID4gc2hpblwgOwor5pabID4ga29rdVwgOwor5paYID4gc2hvdVwgOwor5paIID4gZ2FrdVwgOwor5pW/ID4ga3lvdVwgOwor5pW9ID4ga3lvdVwgOwor5pWrID4gc2VrdVwgOwor5pWeID4gc2hvdVwgOwor5pWSID4gY2hpblwgOwor5pWQID4gc2hpblwgOwor5pWOID4ga3lvdVwgOwor5pWLID4ga2FrdVwgOwor5pWHID4gc2FrdVwgOwor5pS1ID4gYm9rdVwgOwor5pS0ID4gaG9rdVwgOwor5pSqID4ga2FrdVwgOwor5pSKID4gZnVraVwgOwor5pSJID4ga2FrdVwgOwor5pO/ID4gdGVraVwgOwor5pO0ID4ga2FrdVwgOwor5pOyID4gdGVraVwgOwor5pOiID4gdGVraVwgOwor5pOYID4gaGFrdVwgOwor5pOXID4gaGVraVwgOwor5pORID4gc2hvdVwgOwor5pOMID4gc2FrdVwgOwor5pOKID4gZ2VraVwgOwor5pOJID4gc2FrdVwgOwor5pOHID4gdGFrdVwgOwor5pK5ID4ga2FrdVwgOwor5pKsID4ga3lvdVwgOwor5pKpID4gcnlvdVwgOwor5pKoID4gc2hvdVwgOwor5pKfID4ga3lvdVwgOwor5pKRID4gY2hvdVwgOwor5pKQID4gY2hvdVwgOwor5pG9ID4gaHlvdVwgOwor5pGtID4gc2VraVwgOwor5pGdID4gcm9rdVwgOwor5pGYID4gdGVraVwgOwor5pGRID4ga2FrdVwgOwor5pGPID4gc2hvdVwgOwor5pGOID4ga3l1dVwgOwor5pC/ID4ga2FrdVwgOwor5pC+ID4gc2FrdVwgOwor5pC2ID4gc2hvdVwgOwor5pCmID4gamFrdVwgOwor5pCiID4gc2hpblwgOwor5pCgID4gc2FrdVwgOwor5pCPID4gaGFrdVwgOwor5pCKID4gc2h1dVwgOwor5pCJID4ga2FrdVwgOwor5o+qID4gc2h1dVwgOwor5o+VID4gY2hpblwgOwor5o61ID4gaGFiYVwgOwor5o6sID4ga2lrdVwgOwor5o6mID4gdGVraVwgOwor5o6kID4gaHlvdVwgOwor5o6aID4gcnlvdVwgOwor5o6VID4gcnlvdVwgOwor5o23ID4gc2hvdVwgOwor5o2UID4ga2FrdVwgOwor5o2SID4gc2hvdVwgOwor5o2JID4gc29rdVwgOwor5o2EID4ga3l1dVwgOwor5o2BID4ga2FrdVwgOwor5oyfID4ga3lvdVwgOwor5oyWID4gYXRzdVwgOwor5oyRID4gY2hvdVwgOwor5oyMID4ga2FrdVwgOwor5oyLID4gc2hpblwgOwor5ouyID4ga3lvdVwgOwor5ouxID4ga3lvdVwgOwor5ourID4gc2h1dVwgOwor5ouhID4ga2FrdVwgOwor5ouTID4gdGFrdVwgOwor5ouGID4gdGFrdVwgOwor5oq7ID4gc2hpblwgOwor5oqeID4gdGFrdVwgOwor5oqNID4gc2hvdVwgOwor5oqEID4gc2hvdVwgOwor5oqCID4ga3lvdVwgOwor5omoID4gc2F0ZVwgOwor5omaID4gY2hvdVwgOwor5omYID4gdGFrdVwgOwor5omRID4gaG9rdVwgOwor5omQID4gcm9rdVwgOwor5omEID4gc2hvdVwgOwor5oizID4gdGFrdVwgOwor5oiuID4gcmlrdVwgOwor5oirID4geW9rdVwgOwor5oiiID4gc2h1dVwgOwor5oidID4gem9rdVwgOwor5oiVID4gc2hvdVwgOwor5oiJID4gZXRzdVwgOwor5oiIID4gaG9rb1wgOwor5oe+ID4gc2hvdVwgOwor5oeyID4gY2hvdVwgOwor5oefID4gdHN1aVwgOwor5oePID4gc2h1blwgOwor5oatID4gcnlvdVwgOwor5oaNID4ga3lvdVwgOwor5oaAID4gcnlvdVwgOwor5oW/ID4gaHlvdVwgOwor5oW8ID4gc2VraVwgOwor5oW0ID4gc2hvdVwgOwor5oWvID4gc2hvdVwgOwor5oWrID4gc2hvdVwgOwor5oWeID4gc2hvdVwgOwor5oWdID4gdG9rdVwgOwor5oWTID4gaHlvdVwgOwor5oWOID4gc2hpblwgOwor5oS9ID4gaGFrdVwgOwor5oS8ID4gc2hpblwgOwor5oS2ID4ga3lvdVwgOwor5oS1ID4gZGVraVwgOwor5oSoID4ga2FrdVwgOwor5oScID4ga3lvdVwgOwor5oSZID4ga2FrdVwgOwor5oSWID4gc2hpblwgOwor5oSBID4gc2h1dVwgOwor5oSAID4gc2hvdVwgOwor5oO7ID4gc29rdVwgOwor5oO3ID4gc2h1blwgOwor5oO1ID4gY2hvdVwgOwor5oOqID4gdG9rdVwgOwor5oOdID4gc2hvdVwgOwor5oOWID4gdGVraVwgOwor5oOVID4gdGVraVwgOwor5oOKID4gcnlvdVwgOwor5oOGID4gY2h1dVwgOwor5oOEID4gZGVraVwgOwor5oK1ID4gY2hvdVwgOwor5oKzID4gdG9rdVwgOwor5oKmID4gZXRzdVwgOwor5oKlID4geW9rdVwgOwor5oKiID4gcnlvdVwgOwor5oKaID4gc2hvdVwgOwor5oKFID4gZXRzdVwgOwor5oG3ID4ga3l1dVwgOwor5oGxID4gZXRzdVwgOwor5oGqID4ga2FrdVwgOwor5oGnID4gamlrdVwgOwor5oGfID4ga3lvdVwgOwor5oGUID4ga3lvdVwgOwor5oGMID4gY2hvdVwgOwor5oGKID4ga3lvdVwgOwor5oGHID4ga3lvdVwgOwor5oCzID4ga3lvdVwgOwor5oCXID4gY2hvdVwgOwor5oCNID4gc2FrdVwgOwor5oCKID4gY2hvdVwgOwor5b+4ID4gamlrdVwgOwor5b+3ID4ga3lvdVwgOwor5b+xID4gc2hpblwgOwor5b+qID4gc2hvdVwgOwor5b+hID4gY2h1dVwgOwor5b+gID4gY2h1dVwgOwor5b+SID4gdG9rdVwgOwor5b+RID4gdG9rdVwgOwor5b+HID4gcm9rdVwgOwor5b68ID4ga3lvdVwgOwor5b64ID4gc2hvdVwgOwor5b63ID4gdG9rdVwgOwor5b61ID4gY2hvdVwgOwor5b6xID4gaHlvdVwgOwor5b6iID4gc2hvdVwgOwor5b6cID4gc2hvdVwgOwor5b6HID4gc2h1blwgOwor5b24ID4gc2hvdVwgOwor5b22ID4ga2lodVwgOwor5b2zID4gdGVraVwgOwor5b2wID4gc2hvdVwgOwor5b2qID4gaHlvdVwgOwor5b2fID4ga2FrdVwgOwor5b2UID4gcm9rdVwgOwor5b2KID4ga3lvdVwgOwor5b2FID4gbmFnaVwgOwor5by6ID4ga3lvdVwgOwor5by2ID4gZ3lhdVwgOwor5byrID4gc2hpblwgOwor5bycID4ga3lvdVwgOwor5byXID4gZG9ydVwgOwor5byTID4geXVtaVwgOwor5byMID4gaXRzdVwgOwor5byLID4geW9rdVwgOwor5bu+ID4ga3lvdVwgOwor5bu4ID4gdGVraVwgOwor5buzID4gY2hvdVwgOwor5buwID4gY2hvdVwgOwor5burID4gcnlvdVwgOwor5bunID4gc2hhdVwgOwor5bumID4gaGVraVwgOwor5bugID4gc2hvdVwgOwor5bufID4gYnlvdVwgOwor5buZID4geW9rdVwgOwor5buYID4gcm9rdVwgOwor5buWID4gcnlvdVwgOwor5buLID4gc2h1dVwgOwor5bq/ID4gYnlvdVwgOwor5bq0ID4gc2VraVwgOwor5bqxID4gY2hvdVwgOwor5bqlID4ga3l1dVwgOwor5bqgID4gc2hvdVwgOwor5bmsID4gY2h1dVwgOwor5bmmID4gYmVraVwgOwor5bmeID4gaG9rdVwgOwor5bmbID4gc2hvdVwgOwor5bmZID4gYmFrdVwgOwor5bmYID4gc2FrdVwgOwor5bmXID4ga2FrdVwgOwor5bmWID4gaHlvdVwgOwor5bmTID4gc2hpblwgOwor5bmOID4gYmVraVwgOwor5bmCID4gYmVraVwgOwor5bikID4gZ2V5b1wgOwor5biiID4ga2FodVwgOwor5bibID4gaGFrdVwgOwor5bepID4ga3lvdVwgOwor5bekID4gcmVodVwgOwor5beQID4gY2hvdVwgOwor5ba9ID4gZ2FrdVwgOwor5bavID4gc2hpdVwgOwor5barID4gZ3lvdVwgOwor5baqID4gZ3lvdVwgOwor5baoID4ga2FrdVwgOwor5baiID4gZ3lvdVwgOwor5bagID4ga3lvdVwgOwor5bacID4gc2hpblwgOwor5babID4gcnlvdVwgOwor5baaID4gcnlvdVwgOwor5baSID4gc2hvdVwgOwor5baQID4gcnl1dVwgOwor5baIID4gc2hhdVwgOwor5baCID4gc2hvdVwgOwor5bW+ID4gc2hpblwgOwor5bW5ID4ga3lvdVwgOwor5bW3ID4gc2hvdVwgOwor5bWKID4gc2hvdVwgOwor5bWAID4gY2hpdVwgOwor5bS/ID4gZ2FrdVwgOwor5bS3ID4gc2hpdVwgOwor5bSoID4gc2VodVwgOwor5bSnID4gc2h1dVwgOwor5bSaID4gcnlvdVwgOwor5bSIID4gc2h1dVwgOwor5bO9ID4ga3lvdVwgOwor5bO7ID4gc2h1blwgOwor5bO3ID4gc2hpblwgOwor5bOtID4gc2hvdVwgOwor5bOqID4geW9rdVwgOwor5bOjID4gZ3lvdVwgOwor5bOhID4ga3lvdVwgOwor5bOLID4gc2h1blwgOwor5bOJID4gZ2FrdVwgOwor5bOIID4gcmFrdVwgOwor5bOGID4ga2FodVwgOwor5bOFID4ga3VyYVwgOwor5bOAID4gc2h1dVwgOwor5bK8ID4geXVyaVwgOwor5bK2ID4gaGFrdVwgOwor5bKzID4gdGFrZVwgOwor5bKrID4gc2h1dVwgOwor5bKmID4gcnl1dVwgOwor5bKdID4gc2FrdVwgOwor5bKRID4gc2hpblwgOwor5bKMID4ga3l1dVwgOwor5bG+ID4gc2hpblwgOwor5bG2ID4gbmF0YVwgOwor5bGwID4gZ2VraVwgOwor5bGqID4gcnlvdVwgOwor5bGQID4gZ2VraVwgOwor5bGMID4gY2hvdVwgOwor5bC/ID4gbnlvdVwgOwor5bCwID4gc2hvdVwgOwor5bCtID4gZ3lvdVwgOwor5bCmID4gcnlvdVwgOwor5bClID4gcnlvdVwgOwor5bCeID4gcnlvdVwgOwor5bCZID4gc2hvdVwgOwor5bCHID4gc2hvdVwgOwor5bCFID4ga29rdVwgOwor5a+0ID4gc2hpblwgOwor5a+vID4gc2h1blwgOwor5a+uID4gcnlvdVwgOwor5a+eID4gYmFrdVwgOwor5a+WID4gc2hpblwgOwor5a+RID4gc2hpblwgOwor5a+JID4ga2FrdVwgOwor5a+FID4gdG9yYVwgOwor5a64ID4gc2hpblwgOwor5a63ID4gc2hpblwgOwor5a6rID4ga3l1dVwgOwor5a6oID4gdGV3YVwgOwor5a6ZID4gY2h1dVwgOwor5a6SID4gY2h1blwgOwor5a6NID4gbmlrdVwgOwor5a6GID4ga3lvdVwgOwor5a2eID4gc2hpblwgOwor5a2HID4gc2F3YVwgOwor5ay8ID4gcml3YVwgOwor5ay4ID4gc2hpblwgOwor5ay2ID4ga2FrYVwgOwor5aynID4gc2hpblwgOwor5aymID4gY2hpdVwgOwor5aylID4gY2hvdVwgOwor5ayZID4gc2hvdVwgOwor5ayFID4ga3V3YVwgOwor5au/ID4ga2FrdVwgOwor5aueID4gc2hvdVwgOwor5aucID4gc2hhdVwgOwor5auWID4gaHlvdVwgOwor5auAID4gc2hpblwgOwor5aq3ID4gam9rdVwgOwor5aqzID4gc2VraVwgOwor5aqwID4gc2hpdVwgOwor5aqdID4gc2h1dVwgOwor5aqbID4gaGltZVwgOwor5aqLID4gc2h1blwgOwor5aqDID4ganl1dVwgOwor5amzID4ga2FrdVwgOwor5amkID4gc2h1dVwgOwor5amVID4gc2hvdVwgOwor5amKID4gaHlvdVwgOwor5amIID4gcnlvdVwgOwor5amFID4ga2lrdVwgOwor5ai8ID4gc2hvdVwgOwor5ai3ID4gdHN1aVwgOwor5aiWID4gc2FrdVwgOwor5aiVID4gc2FrdVwgOwor5aiAID4gc2h1dVwgOwor5ae6ID4gc2hpblwgOwor5aegID4gc2hvdVwgOwor5aecID4ga3lvdVwgOwor5aa9ID4gc2hpblwgOwor5aaxID4gc2hvdVwgOwor5aavID4gY2h1dVwgOwor5aaVID4gY2h1dVwgOwor5aaQID4gc2hvdVwgOwor5aWtID4gc2VraVwgOwor5aWsID4gc2hvdVwgOwor5aWoID4gc2hvdVwgOwor5aWeID4gc2h1blwgOwor5aWdID4gY2hvdVwgOwor5aSMID4gcnlvdVwgOwor5aSLID4gc2h1blwgOwor5aO/ID4gc2h1blwgOwor5aO5ID4gaWNoaVwgOwor5aOzID4ga2FrdVwgOwor5aOiID4gcmVraVwgOwor5aOXID4gbWFtYVwgOwor5aORID4gZ2FrdVwgOwor5aOGID4ga2FrdVwgOwor5aK8ID4ga2VraVwgOwor5aK7ID4gc2hvdVwgOwor5aK5ID4gbWFtYVwgOwor5aKrID4gc2h1blwgOwor5aKjID4gaGFrdVwgOwor5aKcID4gdHN1aVwgOwor5aKSID4gc2hvdVwgOwor5aKRID4gdGVraVwgOwor5aKPID4gc2hvdVwgOwor5aKLID4gc2hpblwgOwor5aKHID4gc2hvdVwgOwor5aKEID4gc29rdVwgOwor5aKCID4gaHlvdVwgOwor5aG+ID4ganVrdVwgOwor5aG7ID4gYmFrdVwgOwor5aG2ID4ga29rdVwgOwor5aGoID4ga3lvdVwgOwor5aGlID4ga2FrdVwgOwor5aGZID4ga2FrdVwgOwor5aGWID4gc2hvdVwgOwor5aGTID4gYmVraVwgOwor5aGNID4gc2hvdVwgOwor5aGJID4gc2VraVwgOwor5aC7ID4gc2hpblwgOwor5aC5ID4gc2hvdVwgOwor5aCvID4gZ3lvdVwgOwor5aCuID4gZ2FrdVwgOwor5aCYID4gc2hvdVwgOwor5Z+7ID4gc2h1blwgOwor5Z+rID4gc2hvdVwgOwor5Z+WID4gZ29taVwgOwor5Z+QID4gc2hpblwgOwor5Z+IID4gc2h1blwgOwor5Z+GID4ga2FrdVwgOwor5Z+BID4gc2hpblwgOwor5Z6zID4gZ2FrZVwgOwor5Z6sID4ga3lvdVwgOwor5Z6YID4gaHVrdVwgOwor5Z28ID4gdGFrdVwgOwor5Z22ID4gYm9rdVwgOwor5Z21ID4ga3lvdVwgOwor5Z20ID4gcmlrdVwgOwor5Z2nID4gc2VraVwgOwor5Zy+ID4gZ3l1dVwgOwor5Zy4ID4geWFtYVwgOwor5ZyzID4gc2hpdVwgOwor5ZylID4gcm9rdVwgOwor5ZykID4gaGFrdVwgOwor5ZygID4gYXRzdVwgOwor5ZyAID4ga29rdVwgOwor5Zu7ID4ga29rdVwgOwor5Zu2ID4ga29rdVwgOwor5ZuvID4ga29rdVwgOwor5ZuiID4gc2h1dVwgOwor5ZufID4gc2hpblwgOwor5ZuaID4gc2h1dVwgOwor5ZqzID4ga29rdVwgOwor5ZqrID4gc2hpblwgOwor5ZqpID4gaGFrdVwgOwor5ZqmID4gcmVraVwgOwor5ZqgID4gcnl1dVwgOwor5ZqdID4ga2FrdVwgOwor5ZqXID4gaGFrdVwgOwor5ZqQID4gc2hvdVwgOwor5ZqNID4gc2hpblwgOwor5ZqLID4gY2h1dVwgOwor5ZqHID4ga2FrdVwgOwor5ZqEID4ga2FrdVwgOwor5ZqBID4gdGVraVwgOwor5ZmtID4ga3lvdVwgOwor5ZmpID4ga2FrdVwgOwor5ZmmID4gZXRzdVwgOwor5ZmXID4gYm9rdVwgOwor5ZmPID4ga3l1dVwgOwor5ZmOID4gaXRzdVwgOwor5ZmKID4gaXRzdVwgOwor5Zi/ID4gYm9rdVwgOwor5Zi8ID4ga3l1dVwgOwor5Zi6ID4ga3lvdVwgOwor5Zi4ID4gc2F6b1wgOwor5ZivID4gc2hvdVwgOwor5ZioID4gc2hvdVwgOwor5ZieID4gcm9rdVwgOwor5ZiaID4gdG9rdVwgOwor5ZiWID4gc2FrdVwgOwor5ZiTID4ga2FrdVwgOwor5ZiCID4ga3lvdVwgOwor5ZiBID4gc2FodVwgOwor5ZiAID4gc2FrdVwgOwor5Ze9ID4gdWdhaVwgOwor5Ze8ID4gYmFrdVwgOwor5ZedID4ga2FrdVwgOwor5ZeXID4gYXRzdVwgOwor5ZeUID4gc2hpblwgOwor5ZeRID4ga2FodVwgOwor5ZeNID4gc2FrdVwgOwor5ZeLID4ga3lvdVwgOwor5ZeGID4gc2hvdVwgOwor5ZeAID4ga2FrdVwgOwor5ZayID4geWFrdVwgOwor5ZasID4ga3lvdVwgOwor5ZaoID4gcnlvdVwgOwor5ZaiID4gdGVodVwgOwor5ZaeID4gc29rdVwgOwor5ZaBID4gZ3lvdVwgOwor5ZaAID4ga2FrdVwgOwor5ZW+ID4gc2h1dVwgOwor5ZWvID4ga2FrdVwgOwor5ZWmID4gcmFodVwgOwor5ZWiID4gcnlvdVwgOwor5ZWLID4ga3lvdVwgOwor5ZWHID4gdGVraVwgOwor5ZWFID4gdGFrdVwgOwor5ZWEID4gdGFrdVwgOwor5ZWDID4gc2h1dVwgOwor5ZS9ID4gc2VraVwgOwor5ZS8ID4gc2FodVwgOwor5ZS0ID4ga3lvdVwgOwor5ZSuID4gc2h1dVwgOwor5ZSnID4gc29rdVwgOwor5ZShID4gcnlvdVwgOwor5ZSaID4gc2hpblwgOwor5ZSZID4gdGVraVwgOwor5ZSSID4gc2h1dVwgOwor5ZSKID4ga3lvdVwgOwor5ZSDID4ga29rdVwgOwor5ZOoID4gc2hvdVwgOwor5ZONID4ga3lvdVwgOwor5ZOCID4gc2hpblwgOwor5ZK5ID4gYXRzdVwgOwor5ZK2ID4ga3V1aVwgOwor5ZKvID4ga2FrdVwgOwor5ZKiID4gZ2FrdVwgOwor5ZKgID4gc2h1dVwgOwor5ZKfID4ga2FrdVwgOwor5ZKLID4gc2FrdVwgOwor5ZG7ID4gc2hpblwgOwor5ZG6ID4ga3lvdVwgOwor5ZG5ID4gaXRzdVwgOwor5ZGrID4gdGVodVwgOwor5ZGPID4gc2hvdVwgOwor5ZGOID4gc2VraVwgOwor5ZGMID4ga3lvdVwgOwor5ZGEID4ga29rdVwgOwor5ZC/ID4ga29rdVwgOwor5ZC1ID4gYnlvdVwgOwor5ZCyID4gc2hpblwgOwor5ZCjID4gc2hpblwgOwor5ZCiID4gc2hpblwgOwor5ZCcID4gY2h1dVwgOwor5Y+8ID4gY2hvdVwgOwor5Y+7ID4gcm9rdVwgOwor5Y+2ID4ga3lvdVwgOwor5Y+gID4gY2hvdVwgOwor5Y+SID4gamFrdVwgOwor5Y+JID4gbWF0YVwgOwor5Y6wID4gc2hvdVwgOwor5Y6vID4gcmVraVwgOwor5Y6kID4gcmVraVwgOwor5Y6dID4gc2FrdVwgOwor5Y6SID4ga2FodVwgOwor5Y6LID4gYXRzdVwgOwor5Y6HID4gdGFrdVwgOwor5Y2+ID4gZ2FrdVwgOwor5Y29ID4gc29rdVwgOwor5Y2yID4gc2hvdVwgOwor5Y2tID4ga3lvdVwgOwor5Y2hID4gc2FodVwgOwor5Y2cID4gYm9rdVwgOwor5Y2ZID4gc2hvdVwgOwor5Y2MID4gc2h1dVwgOwor5Y2CID4gc2hpblwgOwor5Yy/ID4gdG9rdVwgOwor5Yy1ID4gdG9rdVwgOwor5YypID4ga3lvdVwgOwor5YynID4ga3lvdVwgOwor5YyjID4gaGFrb1wgOwor5YyhID4ga3lvdVwgOwor5YyeID4gc2hvdVwgOwor5YybID4ga3l1dVwgOwor5YyTID4ga3lvdVwgOwor5YyRID4ga3l1dVwgOwor5YyQID4gaG9rdVwgOwor5YyKID4ga2lrdVwgOwor5YyJID4gaHlvdVwgOwor5YyIID4ga3lvdVwgOwor5Yu8ID4ga3l1dVwgOwor5YuwID4ga3lvdVwgOwor5YulID4ga3lvdVwgOwor5YujID4gc2VraVwgOwor5YugID4gcmlrdVwgOwor5YuSID4gcm9rdVwgOwor5YuAID4ga29rdVwgOwor5Yq7ID4ga3lvdVwgOwor5YqwID4gYmFrdVwgOwor5YquID4gaXRzdVwgOwor5YqtID4gc2hvdVwgOwor5YqmID4ga3lvdVwgOwor5YqcID4gYXRzdVwgOwor5YqQID4ga2FrdVwgOwor5YqLID4gc3lvdVwgOwor5YqJID4gcnl1dVwgOwor5YqIID4gaGVraVwgOwor5YqFID4gdGFrdVwgOwor5YqBID4gc3lvdVwgOwor5Ym5ID4gcmlrdVwgOwor5YmvID4gZnVrdVwgOwor5YmrID4gdGFrdVwgOwor5YmoID4ga2FrdVwgOwor5YmiID4gdG9rdVwgOwor5YmdID4gaGFrdVwgOwor5YmUID4gdGVraVwgOwor5YmSID4gc2FrdVwgOwor5YmLID4ga29rdVwgOwor5Yi8ID4ga3lvdVwgOwor5YimID4ga3lvdVwgOwor5YifID4gY2hvdVwgOwor5YiYID4gcnl1dVwgOwor5Ye4ID4gZGVrb1wgOwor5Ye2ID4ga3lvdVwgOwor5Ye0ID4gaHlvdVwgOwor5YeqID4gbmFnaVwgOwor5YenID4gdGFrb1wgOwor5YeZID4gdGFrdVwgOwor5YeLID4gY2hvdVwgOwor5YeJID4gcnlvdVwgOwor5YeHID4gc2hvdVwgOwor5Ya+ID4ga3lvdVwgOwor5Ya8ID4gc2hvdVwgOwor5Ya1ID4ga3lvdVwgOwor5YayID4gY2h1dVwgOwor5YawID4gaHlvdVwgOwor5YarID4gaHlvdVwgOwor5YaqID4gYmVraVwgOwor5YaiID4gY2hvdVwgOwor5YaWID4gYmVraVwgOwor5YaRID4gY2h1dVwgOwor5YW4ID4gbm9yaVwgOwor5YWiID4ga3lvdVwgOwor5YWfID4gc2hpblwgOwor5YWTID4gc2hpblwgOwor5YWPID4gY2hvdVwgOwor5YWLID4ga29rdVwgOwor5YWHID4ga3lvdVwgOwor5YWGID4gY2hvdVwgOwor5YWCID4gc2hpblwgOwor5YS1ID4gc2h1dVwgOwor5YS0ID4gc2hvdVwgOwor5YSuID4gcmVraVwgOwor5YStID4gc2hpblwgOwor5YSsID4gc2hpblwgOwor5YSmID4gaHlvdVwgOwor5YSgID4gcnlvdVwgOwor5YSUID4gY2h1dVwgOwor5YSBID4gc2h1blwgOwor5YO9ID4gc2h1dVwgOwor5YO7ID4gaGVraVwgOwor5YO6ID4gc2hvdVwgOwor5YO1ID4ga3lvdVwgOwor5YOwID4gaG9rdVwgOwor5YOlID4gZ3lvdVwgOwor5YOYID4gc2hvdVwgOwor5YOHID4gcmlrdVwgOwor5YK9ID4gc2hvdVwgOwor5YK5ID4ga3lvdVwgOwor5YK2ID4gc29rdVwgOwor5YKxID4gc2hvdVwgOwor5YKVID4ga2FrdVwgOwor5YG3ID4gY2h1dVwgOwor5YGxID4gc2h1blwgOwor5YGuID4gc2h1dVwgOwor5YGGID4gc2h1blwgOwor5YGFID4gc2hvdVwgOwor5YGBID4gc2hvdVwgOwor5YCwID4gcnlvdVwgOwor5YCvID4gc2hvdVwgOwor5YCsID4gdGFrdVwgOwor5YCiID4gc2hvdVwgOwor5YChID4gc2hvdVwgOwor5YCcID4gdGVraVwgOwor5YCYID4gc2hvdVwgOwor5YCGID4gcnlvdVwgOwor5YCDID4ga3l1dVwgOwor5YCAID4gY2hvdVwgOwor5L+1ID4gaHlvdVwgOwor5L+jID4gbWF0YVwgOwor5L+iID4gc2h1dVwgOwor5L+gID4ga3lvdVwgOwor5L+NID4gcnlvdVwgOwor5L+LID4gY2h1dVwgOwor5L+IID4ga29rdVwgOwor5L+HID4ga3lhdVwgOwor5L+FID4ga3l1dVwgOwor5L66ID4gc2hpblwgOwor5L62ID4gdG9tb1wgOwor5L60ID4gY2h1dVwgOwor5L6yID4gc2hpblwgOwor5L6gID4ga3lhblwgOwor5L6cID4gY2h1dVwgOwor5L6aID4gc2h1blwgOwor5L6CID4gdGFrdVwgOwor5L6BID4gc2hpblwgOwor5L2+ID4gaXRzdVwgOwor5L27ID4gY2hvdVwgOwor5L2wID4gaGFrdVwgOwor5L2sID4gcnlvdVwgOwor5L2rID4ga2FrdVwgOwor5L2XID4gd2FiaVwgOwor5L2UID4gY2hpblwgOwor5L2LID4gc2hvdVwgOwor5Ly3ID4gY2h1dVwgOwor5LypID4gc2hpblwgOwor5LyUID4gc2hpblwgOwor5LyLID4ga3l1dVwgOwor5LyIID4gc2hpblwgOwor5LyEID4gY2hvdVwgOwor5LyAID4gc2hvdVwgOwor5Lu8ID4ga3lvdVwgOwor5LuiID4gaGFrdVwgOwor5LuXID4gdHN1ZVwgOwor5LuJID4gc2hvdVwgOwor5LuCID4gcm9rdVwgOwor5Lq8ID4gc2h1dVwgOwor5LqzID4gaGFrdVwgOwor5LqvID4ga3lvdVwgOwor5LquID4gcnlvdVwgOwor5LqoID4ga3lvdVwgOwor5LqAID4ga2FtZVwgOwor5LmjID4ga3l1dVwgOwor5LmfID4gbmFyaVwgOwor5LmHID4gdGFrdVwgOwor5LmGID4ga3l1dVwgOwor5Li1ID4gc2FrdVwgOwor5LiuID4ga2VraVwgOwor5LipID4ga3l1dVwgOwor5LikID4gcnlvdVwgOwor5LiiID4gY2h1dVwgOwor5LigID4ga3l1dVwgOwor5LifID4gY2h1dVwgOwor5LieID4gc2hvdVwgOwor5LiSID4gY2h1dVwgOwor5LiRID4gdXNoaVwgOwor5LiEID4gc2hvdVwgOwor44CHID4gbWFydVwgOwor6L+3ID4gbWVpXCA7Civlv7UgPiBuZW5cIDsKK+efrSA+IHRhblwgOwor5b+rID4ga2FpXCA7Civov6UgPiBrZWlcIDsKK+efpSA+IGNoaVwgOwor55+cID4ga2luXCA7Civlv5kgPiBib3VcIDsKK+W/mCA+IGJvdVwgOwor6L+UID4gaGVuXCA7Civov5EgPiBraW5cIDsKK+i/jiA+IGdlaVwgOwor5b+NID4gbmluXCA7Civov4UgPiBqaW5cIDsKK+i+vyA+IHRlblwgOwor5567ID4gc2VuXCA7CivovrogPiBoZW5cIDsKK+i+siA+IG5vdVwgOwor6L6vID4gYmVuXCA7CivlvqogPiBqdW5cIDsKK+eeoCA+IGRvdVwgOwor5b6eID4ganV1XCA7CivlvpMgPiBqdXVcIDsKK+W+iiA+IGthaVwgOwor5b6FID4gdGFpXCA7CivlvoQgPiBrZWlcIDsKK+W9qSA+IHNhaVwgOwor552oID4gZ2VpXCA7CivnnaEgPiBzdWlcIDsKK+i9nyA+IGdvdVwgOwor5b2TID4gdG91XCA7CivovYkgPiB0ZW5cIDsKK+W9iCA+IGRhblwgOwor55ypID4gZ2VuXCA7CivnnKAgPiBtaW5cIDsKK+W8nyA+IHRlaVwgOwor5bybID4gc2hpXCA7CivlvJggPiBrb3VcIDsKK+i8lSA+IGtlaVwgOwor55yMID4ga2VuXCA7CivnnIsgPiBrYW5cIDsKK+i8iSA+IHNhaVwgOwor5byEID4gcm91XCA7CivnnIEgPiBzZWlcIDsKK+W8gSA+IGJlblwgOwor6Lu9ID4ga2VpXCA7Civlu7sgPiBrYWlcIDsKK+W7uiA+IGtlblwgOwor55u4ID4gc291XCA7Civnm6UgPiBrYW5cIDsKK+eboyA+IGthblwgOwor6LuiID4gdGVuXCA7Civlu6MgPiBrb3VcIDsKK+W7oiA+IGhhaVwgOwor55uhID4gamluXCA7Civnm5wgPiB0b3VcIDsKK+ebmyA+IHNlaVwgOwor55uXID4gdG91XCA7Civou40gPiBndW5cIDsKK+W7iiA+IHJvdVwgOwor5buJID4gcmVuXCA7Civnm4YgPiBib25cIDsKK+ebgyA+IGhhaVwgOwor5buDID4gaGFpXCA7CivlurggPiB5b3VcIDsKK+W6tyA+IGtvdVwgOwor55qwID4gaG91XCA7CivlupogPiBrb3VcIDsKK+W6liA+IGhvdVwgOwor6LqTID4gY2hpXCA7CivouocgPiBjaG9cIDsKK+eahyA+IGtvdVwgOwor5bqEID4gc291XCA7CivluoMgPiBrb3VcIDsKK+W5viA+IGlrdVwgOwor5bm9ID4geXV1XCA7CivlubwgPiB5b3VcIDsKK+eZuyA+IHRvdVwgOwor5bmyID4ga2FuXCA7CivnmYwgPiBnYW5cIDsKK+eZhyA+IGthblwgOwor5bi9ID4gYm91XCA7CivluLYgPiB0YWlcIDsKK+W4ryA+IHRhaVwgOwor5birID4gc2hpXCA7CivouJ8gPiBjaGlcIDsKK+i4jyA+IHRvdVwgOwor6LiKID4geW91XCA7CivluIIgPiBzaGlcIDsKK+W3viA+IGtpblwgOwor55e0ID4gY2hpXCA7Civnl6kgPiBzb3VcIDsKK+W3pyA+IGtvdVwgOwor5belID4ga291XCA7Civot6EgPiBhdG9cIDsKK+i3nyA+IGtvblwgOwor5behID4ganVuXCA7Civot50gPiBreW9cIDsKK+eXlSA+IGtvblwgOwor55eSID4geW91XCA7Civltq4gPiBrZW5cIDsKK+eWiiA+IGpvdVwgOwor55W2ID4gdG91XCA7CivotbAgPiBzb3VcIDsKK+eVqiA+IGJhblwgOwor6LWnID4gdGFuXCA7CivnlaYgPiBhemVcIDsKK+eVlCA+IGhhblwgOwor55WMID4ga2FpXCA7CivltYwgPiBrYW5cIDsKK+eUsiA+IGtvdVwgOwor5bSpID4gaG91XCA7CivnlKggPiB5b3VcIDsKK+eUoyA+IHNhblwgOwor55SYID4ga2FuXCA7CivltJcgPiBrb3VcIDsKK+i0hSA+IHplaVwgOwor6LO9ID4gc2FpXCA7Civos7wgPiBrb3VcIDsKK+izuiA+IHRhblwgOwor55O2ID4gYmluXCA7Civos6MgPiBiYWlcIDsKK+izoiA+IGtlblwgOwor55OcID4gdXJpXCA7Civos4cgPiBzaGlcIDsKK+iyvCA+IHRlblwgOwor6LK4ID4gdGFpXCA7CivosrcgPiBiYWlcIDsKK+iysCA+IHNlaVwgOwor6LKvID4gY2hvXCA7CivlsqkgPiBpd2FcIDsKK+iypyA+IGJpblwgOwor6LKhID4gemFpXCA7CivlsqEgPiBrb3VcIDsKK+iyniA+IHRlaVwgOwor6LKdID4ga2FpXCA7CivosaogPiBnb3VcIDsKK+WxpCA+IHNvdVwgOwor6LGhID4gem91XCA7CivlsZUgPiB0ZW5cIDsKK+ixkCA+IGhvdVwgOwor5bGPID4gaGVpXCA7CivosYogPiBob3VcIDsKK+WxhiA+IGthaVwgOwor5bGFID4ga3lvXCA7CivlsL0gPiBqaW5cIDsKK+eQsiA+IGhhaVwgOwor5bCkID4geXV1XCA7CivlsKAgPiBzZW5cIDsKK+WwmiA+IG5hb1wgOwor5bCWID4gc2VuXCA7CivlsI4gPiBkb3VcIDsKK+WwjSA+IHRhaVwgOwor5bCLID4gamluXCA7CivlsIkgPiBqb3VcIDsKK+WwiCA+IHNlblwgOwor5bCEID4gc2hhXCA7CivlsIEgPiBmdXVcIDsKK+ePviA+IGdlblwgOwor5a+4ID4gc3VuXCA7Civlr6sgPiBzaGFcIDsKK+ePqiA+IGtlaVwgOwor5a+SID4ga2FuXCA7CivlrrkgPiB5b3VcIDsKK+WutSA+IHlvaVwgOwor5a6zID4gZ2FpXCA7CivlrrAgPiBzYWlcIDsKK+eOqSA+IGdhblwgOwor5a6jID4gc2VuXCA7CivlrpsgPiBhdGVcIDsKK+WumiA+IHRlaVwgOwor5a6YID4ga2FuXCA7CivlrowgPiBrYW5cIDsKK+iuiiA+IGhlblwgOwor6K6DID4gc2FuXCA7CivnjoQgPiBnZW5cIDsKK+eNuyA+IGtlblwgOwor5424ID4ganV1XCA7CivorbIgPiBqb3VcIDsKK+itqyA+IHNlblwgOwor6K2mID4ga2VpXCA7CivlrZggPiBzb25cIDsKK+WtlCA+IGtvdVwgOwor6Ky5ID4ga2luXCA7CivnjLYgPiB5dXVcIDsKK+WsqiA+IGhpblwgOwor5ayiID4gam91XCA7CivorJ0gPiBzaGFcIDsKK+eMnCA+IHNhaVwgOwor6KybID4ga291XCA7CivorJkgPiBrZW5cIDsKK+eLvSA+IGhhaVwgOwor6Ku4ID4gc2hvXCA7Civoq6YgPiB0ZWlcIDsKK+eLoSA+IGtvdVwgOwor54uZID4gc2hvXCA7Civni5cgPiBrb3VcIDsKK+irliA+IHJvblwgOwor6KuLID4gc2VpXCA7Civlq4wgPiBpeWFcIDsKK+irhyA+IGRhblwgOwor54uDID4ganV1XCA7CivnirYgPiBqb3VcIDsKK+eKryA+IGhhblwgOwor54qsID4gaW51XCA7CivoqpggPiB5dXVcIDsKK+iqkyA+IHNlaVwgOwor5aqSID4gYmFpXCA7Civoqo0gPiBuaW5cIDsKK+iqjCA+IHNoaVwgOwor6KqEID4gcnVpXCA7CivoqbIgPiBnYWlcIDsKK+eJsiA+IHNlaVwgOwor6KmuID4gc2VuXCA7CivoqakgPiBzaGlcIDsKK+ippiA+IHNoaVwgOwor54miID4gcm91XCA7CivniaEgPiBvc3VcIDsKK+ipniA+IHNoaVwgOwor5amaID4ga29uXCA7CivniYwgPiBwYWlcIDsKK+eJiCA+IGhhblwgOwor54mHID4gaGVuXCA7CivniYAgPiBzb3VcIDsKK+eIvSA+IHNvdVwgOwor6KixID4ga3lvXCA7CivniK0gPiBzb3VcIDsKK+ioqiA+IGhvdVwgOwor54ibID4gcmFuXCA7CivlqJEgPiBzaGFcIDsKK+ioiiA+IGppblwgOwor6KiIID4ga2VpXCA7CivoqIAgPiBnZW5cIDsKK+eHuyA+IGt1blwgOwor6KejID4ga2FpXCA7Civlp5MgPiBzZWlcIDsKK+WniyA+IHNoaVwgOwor5aeJID4gYW5lXCA7Civnh4ggPiB0b3VcIDsKK+eHgyA+IG5lblwgOwor6KeAID4ga2FuXCA7Civopr0gPiByYW5cIDsKK+imsyA+IGthblwgOwor6KaqID4gb3lhXCA7CivopqcgPiByYW5cIDsKK+imlyA+IHNoaVwgOwor6KaWID4gc2hpXCA7CivlppYgPiB5b3VcIDsKK+WmiiA+IG5pblwgOwor5aaEID4gYm91XCA7Civnhb0gPiBzZW5cIDsKK+WlvSA+IGtvdVwgOwor54WuID4gc2hhXCA7Civlpa4gPiBmdW5cIDsKK+eFqSA+IGhhblwgOwor6KWkID4gcmFuXCA7CivlpaUgPiBva3VcIDsKK+WloiA+IHNoYVwgOwor6KWfID4gZXJpXCA7CivlpZcgPiB0b3VcIDsKK+WljyA+IHNvdVwgOwor54WOID4gc2VuXCA7CivlpYkgPiBob3VcIDsKK+WkviA+IGtvdVwgOwor6KS4ID4gcm91XCA7CivnhLYgPiB6ZW5cIDsKK+ikqiA+IHRhaVwgOwor5aSpID4gdGVuXCA7CivlpKcgPiB0YWlcIDsKK+eEmiA+IGZ1blwgOwor5aSVID4geXV1XCA7CivopJIgPiBob3VcIDsKK+WkiSA+IGhlblwgOwor6KO9ID4gc2VpXCA7Civlo7sgPiBzZWlcIDsKK+WjsiA+IGJhaVwgOwor5aOwID4ga29lXCA7Civlo68gPiBzb3VcIDsKK+WjqyA+IHNoaVwgOwor6KOdID4gc291XCA7Civlo54gPiBrYWlcIDsKK+ijlSA+IHl1dVwgOwor6KOPID4gdXJhXCA7Civlo4ogPiBrYWlcIDsKK+WjhyA+IGRhblwgOwor6KOFID4gc291XCA7Civoo4EgPiBzYWlcIDsKK+eCuSA+IHRlblwgOwor6KKiID4gaGFuXCA7CivlopcgPiB6b3VcIDsKK+eCiiA+IHN1aVwgOwor6KKCID4gYmVpXCA7Civngb0gPiBzYWlcIDsKK+eBsCA+IGhhaVwgOwor6KGhID4ga291XCA7CivloZQgPiB0b3VcIDsKK+eBjCA+IGthblwgOwor6KGAID4gY2hpXCA7CivloYAgPiBoZWlcIDsKK+igtiA+IHNhblwgOwor5aCxID4gaG91XCA7CivloKogPiBrYW5cIDsKK+eAlSA+IGhpblwgOwor5aCGID4gdGFpXCA7CivloIUgPiBrZW5cIDsKK+WggiA+IGRvdVwgOwor6J+7ID4gYXJpXCA7Civmv7ogPiBzZW5cIDsKK+a/sSA+IGhpblwgOwor5r+fID4gc2FpXCA7Civmv5ggPiBuZWlcIDsKK+WfiyA+IG1haVwgOwor5r+DID4gbm91XCA7CivmvrkgPiB0YW5cIDsKK+ieoiA+IGtlaVwgOwor5Z6iID4gYWthXCA7CivpvpUgPiBnYW5cIDsKK+iejSA+IHl1dVwgOwor5Z6CID4gc3VpXCA7Civonb8gPiBoYWVcIDsKK+a9sCA+IGthaVwgOwor5Z2mID4gdGFuXCA7CivpvaEgPiByZWlcIDsKK+a9nCA+IHNlblwgOwor6J2ZID4gaGVuXCA7CivpvY4gPiBzZWlcIDsKK+m9iiA+IHNlaVwgOwor6J2LID4gcm91XCA7CivlnYogPiBib3VcIDsKK+WdhyA+IGtpblwgOwor6Jy7ID4gc2VpXCA7CivmvLggPiB6ZW5cIDsKK+WcsCA+IGNoaVwgOwor5rysID4gc2hpXCA7CivlnKggPiB6YWlcIDsKK+a8oiA+IGthblwgOwor6JyYID4gY2hpXCA7CivlnJggPiBkYW5cIDsKK+a8lSA+IHNvdVwgOwor5ryPID4gcm91XCA7CivlnI8gPiBrZW5cIDsKK+a7vyA+IG1hblwgOwor5ZuwID4ga29uXCA7Civmu68gPiB0YWlcIDsKK+m7qCA+IHRvdVwgOwor5ZujID4gZGFuXCA7Civpu54gPiB0ZW5cIDsKK+WbniA+IGthaVwgOwor6JubID4gc2h1XCA7Civlm5sgPiB5b25cIDsKK+ibiSA+IHJlaVwgOwor6JuGID4gc2hvXCA7CivpursgPiBhc2FcIDsKK+a6tiA+IHlvdVwgOwor5Zq0ID4gZ2VuXCA7CivmuqogPiBrZWlcIDsKK+m6lyA+IHJlaVwgOwor5rqWID4ganVuXCA7CivmuoAgPiBtYW5cIDsKK+a5viA+IHdhblwgOwor6bm4ID4ga2VuXCA7CivlmaogPiBzb3VcIDsKK+a5pyA+IHl1dVwgOwor6JmfID4gZ291XCA7CivomZwgPiByeW9cIDsKK+iZmiA+IGt5b1wgOwor5ZmbID4gZ291XCA7CivomZUgPiBzaG9cIDsKK+WZjCA+IHNvdVwgOwor5ZiyID4gdG91XCA7CivomK0gPiByYW5cIDsKK+a4piA+IHV6dVwgOwor5rigID4ga3lvXCA7CivmuJsgPiBnZW5cIDsKK+WYmCA+IHVzb1wgOwor5riIID4gc2FpXCA7CivlmIYgPiB0YW5cIDsKK+a4hSA+IHNlaVwgOwor6JiCID4genVpXCA7Civmt7sgPiB0ZW5cIDsKK+a3uiA+IHNlblwgOwor5re3ID4ga29uXCA7Civol6kgPiBoYW5cIDsKK+WXoyA+IHNoaVwgOwor5rehID4gdGFuXCA7Civol50gPiBnZWlcIDsKK+WXnCA+IHNoaVwgOwor5reLID4gcmluXCA7Civol4kgPiBzaGFcIDsKK+m3hCA+IGtlaVwgOwor5rayID4gZWtpXCA7Civolq8gPiBzaG9cIDsKK+WWsCA+IGt1dVwgOwor5ravID4gZ2FpXCA7Civolq4gPiBzb3VcIDsKK+WWriA+IHRhblwgOwor6JamID4gc2VuXCA7CivllqcgPiBrZW5cIDsKK+WWmiA+IGthblwgOwor5ZaYID4gemVuXCA7CivmtowgPiB5dXVcIDsKK+WWhCA+IHplblwgOwor5ZW8ID4gdGVpXCA7CivmtbcgPiB1bWlcIDsKK+a1qiA+IHJvdVwgOwor6JWpID4gdG91XCA7CivllaMgPiBrYW5cIDsKK+WVjyA+IG1vblwgOwor5rWFID4gc2VuXCA7CivmtYQgPiBqb3VcIDsKK+iUvSA+IGhlaVwgOwor5ZS4ID4gdGVuXCA7CivolLUgPiBzb3VcIDsKK+a0lyA+IHNlblwgOwor5rSSID4gc2VpXCA7CivllJAgPiB0b3VcIDsKK+a0iyA+IHlvdVwgOwor6bO0ID4gbWVpXCA7Civms6EgPiBhd2FcIDsKK+azlSA+IGhvdVwgOwor5ZOBID4gaGluXCA7CivokrwgPiBzb3VcIDsKK+iSuCA+IGpvdVwgOwor5ZKsID4ga291XCA7Civokp8gPiBrb25cIDsKK+iSmSA+IG1vdVwgOwor5rKWID4gb2tpXCA7CivokpQgPiBzaGlcIDsKK+ayjCA+IHRvblwgOwor5ZG9ID4gbWVpXCA7CivlkbMgPiBhamlcIDsKK+iRrCA+IHNvdVwgOwor6JGjID4gdG91XCA7CivmsaAgPiBpa2VcIDsKK+WRnyA+IGdlblwgOwor5rGXID4gYXNlXCA7CivlkZEgPiBkb25cIDsKK+WRhiA+IGJvdVwgOwor5ZGCID4gcnlvXCA7CivpsLogPiBhamlcIDsKK+WQuyA+IGZ1blwgOwor5ZC5ID4gc3VpXCA7CivokKwgPiBtYW5cIDsKK+WQqyA+IGdhblwgOwor5ZCdID4gcmluXCA7CivlkJsgPiBrdW5cIDsKK+WQkSA+IGtvdVwgOwor5rCPID4gdWppXCA7CivokIwgPiBob3VcIDsKK+WQjCA+IGRvdVwgOwor5rCIID4gc2VuXCA7CivlkIggPiBnb3VcIDsKK+iQhCA+IHRvdVwgOwor5Y+4ID4gc2hpXCA7Civlj7IgPiBzaGlcIDsKK+WPsCA+IGRhaVwgOwor6I+rID4ga2luXCA7Civmr6sgPiBrb3VcIDsKK+iPqSA+IGhhaVwgOwor5Y+pID4ga291XCA7Civlj6UgPiBrb3VcIDsKK+avjiA+IG1haVwgOwor5Y+NID4gaGFuXCA7Civlj4MgPiBzYW5cIDsKK+WPgiA+IHNhblwgOwor5Y67ID4ga3lvXCA7CivmrrUgPiBkYW5cIDsKK+WOsyA+IGdlblwgOwor6a6uID4gc2VuXCA7Civljq0gPiBpeWFcIDsKK+WOmiA+IGtvdVwgOwor5q6YID4gemFuXCA7CivljpggPiByaW5cIDsKK+auiyA+IHphblwgOwor5q6KID4gc2h1XCA7CivmroYgPiB0YWlcIDsKK+WNvyA+IGtlaVwgOwor5q27ID4gc2hpXCA7CivljbcgPiBrYW5cIDsKK+atsyA+IHNhaVwgOwor5q2kID4gc2hpXCA7CivmraMgPiBzZWlcIDsKK+atoiA+IHNoaVwgOwor5q2hID4ga2FuXCA7CivljaAgPiBzZW5cIDsKK+atlCA+IGt5b1wgOwor6I2SID4ga291XCA7CivmrY4gPiB0YW5cIDsKK+atjCA+IHV0YVwgOwor5Y2KID4gaGFuXCA7CivljYggPiB1bWFcIDsKK+WNgyA+IGNoaVwgOwor5Y2BID4gdG9vXCA7CivprLwgPiBvbmlcIDsKK+iMtiA+IGNoYVwgOwor6IyrID4gYm91XCA7CivprKIgPiBoaW5cIDsKK+WMmiA+IGhvdVwgOwor5qyKID4ga2VuXCA7CivljIYgPiBzb3VcIDsKK+ashSA+IGt5b1wgOwor5YyFID4gaG91XCA7Civli74gPiBrb3VcIDsKK+WLuCA+IGthblwgOwor5YunID4ga2FuXCA7Civli6QgPiBnb25cIDsKK+WLniA+IHJvdVwgOwor6IuXID4gbmFlXCA7Civli5ggPiBrYW5cIDsKK+mrlCA+IHRlaVwgOwor5YuVID4gZG91XCA7Civli4kgPiBiZW5cIDsKK+WLhyA+IHl1dVwgOwor6auEID4genVpXCA7CivpqrggPiBrYWlcIDsKK+iKuCA+IGdlaVwgOwor5Yq5ID4ga291XCA7CivoirMgPiBob3VcIDsKK+WKtCA+IHJvdVwgOwor5YqxID4gcmVpXCA7CivliqsgPiBnb3VcIDsKK+aqoiA+IGtlblwgOwor5YqfID4ga291XCA7Civlio0gPiBrZW5cIDsKK+aqgCA+IHRhblwgOwor6Im4ID4gc291XCA7CivlibUgPiBzb3VcIDsKK+iJsiA+IGlyb1wgOwor6amiID4gcnlvXCA7CivliZsgPiBnb3VcIDsKK+mplyA+IGtlblwgOwor5YmWID4gYm91XCA7CivliY0gPiBtYWVcIDsKK+WJgyA+IHRlaVwgOwor6ai3ID4gc291XCA7CivliLYgPiBzZWlcIDsKK+WIsCA+IHRvdVwgOwor6IisID4gaGFuXCA7CivoiKogPiBrb3VcIDsKK+aoqSA+IGtlblwgOwor5YikID4gYmFuXCA7CivmqKMgPiB5b3VcIDsKK+momSA+IGhlblwgOwor6aiTID4ga2VuXCA7CivpqJIgPiBzb3VcIDsKK+aokyA+IHJvdVwgOwor5YiRID4ga2VpXCA7CivliIogPiBrYW5cIDsKK+iIiCA+IGtvdVwgOwor5YiGID4gYnVuXCA7CivliIAgPiB0b3VcIDsKK+anvSA+IHNvdVwgOwor6Ie8ID4gdXN1XCA7Civlh70gPiBrYW5cIDsKK+iHuiA+IHRhaVwgOwor6Ie0ID4gY2hpXCA7Civoh7MgPiBzaGlcIDsKK+iHqiA+IHNoaVwgOwor6IeoID4gcmluXCA7Civlh6YgPiBzaG9cIDsKK+WHoSA+IGJvblwgOwor6IefID4gem91XCA7Civpp5sgPiBzaGlcIDsKK+anmCA+IHlvdVwgOwor5YeNID4gdG91XCA7Civmp4sgPiBrb3VcIDsKK+mnhSA+IGVraVwgOwor5YeEID4gc2VpXCA7Civohr8gPiB1bWlcIDsKK+iGvSA+IHRhblwgOwor5qa7ID4gdG91XCA7CivlhrcgPiByZWlcIDsKK+mmsyA+IGNoaVwgOwor6IazID4gemVuXCA7Civppq0gPiBneW9cIDsKK+mmrCA+IHVtYVwgOwor5YaZID4gc2hhXCA7CivlhpcgPiBqb3VcIDsKK+WGkiA+IGJvdVwgOwor5YaNID4gc2FpXCA7CivmpoIgPiBnYWlcIDsKK+alvCA+IHJvdVwgOwor5YW8ID4ga2VuXCA7Civoha4gPiBzYWlcIDsKK+WFrCA+IGtvdVwgOwor5YWoID4gemVuXCA7CivohaYgPiBub3VcIDsKK+WFmiA+IHRvdVwgOwor6IWVID4gdWRlXCA7CivppZIgPiBqb3VcIDsKK+alkyA+IGZ1dVwgOwor5YWNID4gbWVuXCA7CivohYsgPiBla2lcIDsKK+mlhSA+IG1hblwgOwor5YWIID4gc2VuXCA7CivlhYUgPiBqdXVcIDsKK+WFhCA+IGFuaVwgOwor6ISzID4gbm91XCA7CivlhKogPiB5dXVcIDsKK+aknCA+IGtlblwgOwor6aSQID4gc2FuXCA7CivppIogPiB5b3VcIDsKK+WEhCA+IG9rdVwgOwor5qSAID4gd2FuXCA7Civpo70gPiBob3VcIDsKK+mjvCA+IHNoaVwgOwor5qO6ID4ga2FuXCA7Civpo7QgPiBhbWVcIDsKK+iDtCA+IGRvdVwgOwor5qOyID4gc2VpXCA7Civlg6cgPiBzb3VcIDsKK+iDniA+IGhvdVwgOwor6aOcID4gaG9uXCA7Civmo5IgPiBib3VcIDsKK+iDjiA+IHRhaVwgOwor5YOPID4gem91XCA7Civog4wgPiBzZWlcIDsKK+WDjSA+IGRvdVwgOwor6IOGID4gdGFuXCA7Civlg4UgPiBraW5cIDsKK+WCviA+IGtlaVwgOwor6IKyID4gaWt1XCA7CivlgrMgPiBkZW5cIDsKK+aisCA+IGthaVwgOwor6IKvID4ga291XCA7Civmoq8gPiB0ZWlcIDsKK+WCrCA+IHNhaVwgOwor6aKoID4gZnV1XCA7CivogqUgPiBrb2VcIDsKK+ainSA+IGpvdVwgOwor6IKGID4gc2hpXCA7CivmooUgPiB1bWVcIDsKK+ahtiA+IG9rZVwgOwor5YG2ID4gZ3V1XCA7CivlgbUgPiB0ZWlcIDsKK+iBsiA+IHNlaVwgOwor6aGvID4ga2VuXCA7CivpoasgPiBzZW5cIDsKK+ahpyA+IGthaVwgOwor5YGlID4ga2VuXCA7CivpoZ4gPiBydWlcIDsKK+ahnyA+IHNhblwgOwor6IGeID4gYnVuXCA7CivpoZsgPiB0ZW5cIDsKK+WBnCA+IHRlaVwgOwor6aGYID4gZ2FuXCA7CivogZYgPiBzZWlcIDsKK+mhlSA+IGtlblwgOwor6aGUID4ga2FvXCA7CivpoY8gPiBnYW5cIDsKK+mhjiA+IGFnb1wgOwor6aGMID4gZGFpXCA7CivmoYIgPiBrZWlcIDsKK+iAvSA+IHRhblwgOwor6aC8ID4gcmFpXCA7CivpoLsgPiBoaW5cIDsKK+iAuyA+IGNoaVwgOwor5YC5ID4ga2VuXCA7CivpoK0gPiB0b3VcIDsKK+WApiA+IGtlblwgOwor5qChID4ga291XCA7CivpoJogPiBrZWlcIDsKK+iAlSA+IGtvdVwgOwor6aCTID4gdG9uXCA7CivmoJMgPiBzZW5cIDsKK+WAkiA+IHRvdVwgOwor6ICQID4gdGFpXCA7CivlgIkgPiBzb3VcIDsKK+mghiA+IGp1blwgOwor6aCFID4ga291XCA7CivogIMgPiBrb3VcIDsKK+iAgSA+IHJvdVwgOwor57+7ID4gaG9uXCA7Civkv7ogPiBvcmVcIDsKK+aftCA+IHNhaVwgOwor5p+TID4gc2VuXCA7Civmn5AgPiBib3VcIDsKK+e+uSA+IGtvdVwgOwor576uID4ga291XCA7Civkvq8gPiBrb3VcIDsKK+S+rSA+IGppblwgOwor576oID4gc2VuXCA7CivnvqQgPiBndW5cIDsKK+aenSA+IGVkYVwgOwor5p6aID4gbWFpXCA7CivkvosgPiByZWlcIDsKK+S+hiA+IHJhaVwgOwor5p2/ID4gaXRhXCA7Civkvb8gPiBzaGlcIDsKK+adtSA+IHNob1wgOwor5L21ID4gaGVpXCA7Civnva4gPiBjaGlcIDsKK+adpSA+IHJhaVwgOwor6Z2iID4gbWVuXCA7CivmnaEgPiBqb3VcIDsKK+mdnCA+IHNlaVwgOwor6Z2ZID4gc2VpXCA7CivpnZYgPiBzZWlcIDsKK+S9lSA+IG5hblwgOwor5L2TID4gdGVpXCA7CivnvZAgPiBrYW5cIDsKK+adkCA+IHphaVwgOwor572OID4gdGFuXCA7CivkvY8gPiBqdXVcIDsKK+S9jiA+IHRlaVwgOwor6Z2IID4gcmVpXCA7CivkvYcgPiBjaG9cIDsKK+S9gyA+IHRlblwgOwor5Ly6ID4gc2hpXCA7CivmnLEgPiBha2FcIDsKK+acpyA+IHJvdVwgOwor5pymID4gYm91XCA7CivmnJ0gPiBhc2FcIDsKK+S8nSA+IHRlblwgOwor5pybID4gYm91XCA7CivkvJogPiBrYWlcIDsKK+aclyA+IHJvdVwgOwor6ZyKID4gcmVpXCA7CivmnIsgPiBob3VcIDsKK+aciSA+IHl1dVwgOwor5pyDID4ga2FpXCA7CivmnIAgPiBzYWlcIDsKK+abvyA+IHRhaVwgOwor5pu+ID4gc291XCA7Civpm7sgPiBkZW5cIDsKK+abvCA+IGJhblwgOwor5Lu7ID4gbmluXCA7Civpm7YgPiByZWlcIDsKK+abuCA+IHNob1wgOwor5Lu2ID4ga2VuXCA7Civmm7QgPiBrb3VcIDsKK+mbqCA+IGFtZVwgOwor6ZujID4gbmFuXCA7Civku6QgPiByZWlcIDsKK+abnCA+IHlvdVwgOwor6ZuWID4gc3VpXCA7Civku5UgPiBzaGlcIDsKK+S7lCA+IHNoaVwgOwor5LuLID4ga2FpXCA7Civku4ogPiBrb25cIDsKK+mbhCA+IG9zdVwgOwor5LuBID4gbmluXCA7CivmmrQgPiBib3VcIDsKK+S6rSA+IHRlaVwgOwor6ZqqID4ga2VuXCA7CivmmqsgPiB6YW5cIDsKK+maqCA+IHp1aVwgOwor5LqkID4ga291XCA7CivkuqEgPiBib3VcIDsKK+mamyA+IHNhaVwgOwor5LqZID4ga291XCA7CivkupggPiBzZW5cIDsKK+aaliA+IGRhblwgOwor5LqVID4gc2VpXCA7CivnupIgPiB0ZW5cIDsKK+aakSA+IHNob1wgOwor6ZqPID4genVpXCA7Civnuo8gPiB0ZW5cIDsKK+majiA+IGthaVwgOwor6ZqKID4gdGFpXCA7CivpmoggPiB3YWlcIDsKK+S6iSA+IHNvdVwgOwor57qCID4gc2FuXCA7CivkuoIgPiByYW5cIDsKK+mZvSA+IHlvdVwgOwor57m8ID4ga2VpXCA7CivpmbogPiBrZW5cIDsKK+aZuiA+IGNoaVwgOwor6Zm2ID4gdG91XCA7CivmmbQgPiBzZWlcIDsKK+e5sCA+IHNvdVwgOwor5LmxID4gcmFuXCA7Civmma8gPiBrZWlcIDsKK+e5qiA+IGthaVwgOwor57mpID4gam91XCA7CivmmakgPiBiYW5cIDsKK+mZpSA+IGthblwgOwor6ZmjID4gamluXCA7CivnuZ4gPiBqb3VcIDsKK+S5mCA+IGpvdVwgOwor57mVID4gemVuXCA7CivkuZcgPiBqb3VcIDsKK+e5lCA+IG9yaVwgOwor6ZmQID4gZ2VuXCA7CivpmY0gPiBrb3VcIDsKK+S5jyA+IGJvdVwgOwor57mBID4gaGFuXCA7CivnuL0gPiBzb3VcIDsKK+mYsiA+IGJvdVwgOwor57ixID4ganV1XCA7CivnuKsgPiBob3VcIDsKK+mYqiA+IGhhblwgOwor5LimID4gaGVpXCA7CivkuJggPiBva2FcIDsKK+S4lCA+IHNoYVwgOwor5piTID4gZWtpXCA7CivmmI4gPiBtZWlcIDsKK+S4iiA+IGpvdVwgOwor5piGID4ga29uXCA7CivmmIIgPiBrb3VcIDsKK+e3tCA+IHJlblwgOwor57esID4gbWVuXCA7Civml6wgPiBqdW5cIDsKK+e3qSA+IGthblwgOwor5pepID4gc291XCA7Civnt6ggPiBoZW5cIDsKK+aXpiA+IHRhblwgOwor57egID4gdGVpXCA7Civpl5wgPiBrYW5cIDsKK+e3miA+IHNlblwgOwor6ZeYID4gdG91XCA7Civnt48gPiBzb3VcIDsKK+aXiyA+IHNlblwgOwor57eKID4ga2luXCA7CivmlrkgPiBob3VcIDsKK+aWtyA+IGRhblwgOwor57ayID4gYW1pXCA7Civmlq8gPiBzaGlcIDsKK+aWrSA+IGRhblwgOwor5pasID4gemFuXCA7CivplqQgPiBrb3VcIDsKK+aWnCA+IHNoYVwgOwor57aZID4ga2VpXCA7CivntpMgPiBrZWlcIDsKK+mWiyA+IGthaVwgOwor6ZaJID4gaGVpXCA7CivmlokgPiBzZWlcIDsKK+aWhyA+IGJ1blwgOwor6ZaDID4gc2VuXCA7CivmloMgPiBoZWlcIDsKK+mWgCA+IG1vblwgOwor6ZW3ID4gb3NhXCA7CivmlbggPiBzdXVcIDsKK+aVtCA+IHNlaVwgOwor57WyID4gc2hpXCA7CivntbEgPiB0b3VcIDsKK+aVsCA+IHN1dVwgOwor5pWsID4ga2VpXCA7CivntaggPiBqdXVcIDsKK+aVoyA+IHNhblwgOwor5pWiID4ga2FuXCA7CivntZ4gPiBrb3VcIDsKK+aVlyA+IGhhaVwgOwor5pWPID4gYmluXCA7CivmlYggPiBrb3VcIDsKK+aVhSA+IHl1ZVwgOwor5pS+ID4gaG91XCA7CivntLogPiBrb25cIDsKK+aUuSA+IGthaVwgOwor57SwID4gc2VpXCA7CivntK8gPiBydWlcIDsKK+aUryA+IHNoaVwgOwor57SbID4gZnVuXCA7CivntJQgPiBqdW5cIDsKK+e0jSA+IHRvdVwgOwor57SLID4gbW9uXCA7Civns7ggPiBpdG9cIDsKK+aTpyA+IGt5b1wgOwor5pOhID4gdGFpXCA7Civns54gPiBmdW5cIDsKK+ezliA+IHRvdVwgOwor5pOUID4gdGFuXCA7Civnsr4gPiBzZWlcIDsKK+eynyA+IGF3YVwgOwor57KXID4gYXJhXCA7CivpkbUgPiBrYW5cIDsKK+exliA+IHNlblwgOwor6ZGSID4ga2FuXCA7CivnsZAgPiB0b3VcIDsKK+aQuiA+IGtlaVwgOwor57ChID4ga2FuXCA7CivmkJwgPiBzb3VcIDsKK+aQliA+IHlvdVwgOwor5pCNID4gc29uXCA7Civmj6EgPiBha3VcIDsKK+aPmyA+IGthblwgOwor5o+aID4geW91XCA7Civmj5AgPiB0ZWlcIDsKK+aPiSA+IGp1dVwgOwor56+EID4gaGFuXCA7Civmj4MgPiBzZW5cIDsKK+aOuyA+IHNvdVwgOwor5o6yID4ga2VpXCA7CivnrqogPiB0YW5cIDsKK+aOqCA+IHN1aVwgOwor5o6nID4ga291XCA7CivmjqMgPiBzZWlcIDsKK+aOoiA+IHRhblwgOwor5o6hID4gc2FpXCA7CivnrpcgPiBzYW5cIDsKK+aOkiA+IGhhaVwgOwor566LID4gc2VuXCA7CivmjoMgPiBzb3VcIDsKK+aNuyA+IG5lblwgOwor5o2yID4ga2VuXCA7Civmja4gPiBreW9cIDsKK+aNqCA+IHNoYVwgOwor562nID4ga2VuXCA7CivpjZsgPiB0YW5cIDsKK+aNnCA+IHNvdVwgOwor5oy/ID4gc291XCA7CivmjL0gPiBiYW5cIDsKK+esrCA+IGRhaVwgOwor56ylID4gc2hpXCA7CivpjKIgPiBzZW5cIDsKK+esmyA+IGZ1ZVwgOwor5oyZID4ga3lvXCA7CivnrIQgPiBrZWlcIDsKK+ervyA+IHNhb1wgOwor5ou+ID4ganV1XCA7Civmi7UgPiBzb25cIDsKK+aLoCA+IGt5b1wgOwor56ufID4ga2VpXCA7Civnq50gPiBoZWlcIDsKK+aLnSA+IGhhaVwgOwor5oucID4gaGFpXCA7Civmi5ggPiBrb3VcIDsKK+aLhSA+IHRhblwgOwor56uDID4gc291XCA7CivmirUgPiB0ZWlcIDsKK+aKsSA+IGhvdVwgOwor6YqtID4gc2VuXCA7CivpipwgPiBrYW5cIDsKK+aKmyA+IGhvdVwgOwor6YqYID4gbWVpXCA7CivmipggPiBvcmlcIDsKK+aKlyA+IGtvdVwgOwor5oqVID4gdG91XCA7CivmipMgPiBzb3VcIDsKK+mKhSA+IGRvdVwgOwor56m/ID4gc2VuXCA7CivmibEgPiBzb3VcIDsKK+aJriA+IGZ1blwgOwor56mXID4gc3VpXCA7CivmiY0gPiBzYWlcIDsKK+epiSA+IGNoaVwgOwor56i/ID4ga291XCA7CivnqL0gPiBrZWlcIDsKK+eouyA+IHRvdVwgOwor5oi7ID4gcmVpXCA7CivmiLQgPiB0YWlcIDsKK+eosiA+IGluZVwgOwor5oiwID4gc2VuXCA7CivnqJogPiBjaGlcIDsKK+aIliA+IGFydVwgOwor5oiSID4ga2FpXCA7CivmiJAgPiBzZWlcIDsKK+mIjSA+IGRvblwgOwor56iOID4gemVpXCA7CivmiIwgPiBpbnVcIDsKK+aIgCA+IHJlblwgOwor5oe4ID4ga2VuXCA7Civmh7cgPiBrYWlcIDsKK+mHkSA+IGtpblwgOwor6YeNID4gb21vXCA7Civnp4sgPiBha2lcIDsKK+aHiSA+IHlvdVwgOwor6YeHID4gc2FpXCA7Civmh4MgPiBraW5cIDsKK+emvSA+IGtpblwgOwor5oa6ID4gdGFuXCA7CivmhrYgPiBva3VcIDsKK+emsCA+IGRlaVwgOwor56auID4gcmVpXCA7CivmhqwgPiBrZWlcIDsKK+aGpyA+IGRvdVwgOwor5oakID4gZnVuXCA7CivphpIgPiBzZWlcIDsKK+aGkCA+IHJlblwgOwor5oaOID4gem91XCA7CivphokgPiBzdWlcIDsKK+emhSA+IHplblwgOwor5oaCID4geXV1XCA7CivnpoEgPiBraW5cIDsKK+mFuCA+IHNhblwgOwor56W3ID4gdG91XCA7Civmha4gPiByeW9cIDsKK+aFqCA+IGdhaVwgOwor5oWlID4gem91XCA7CivmhaMgPiBrYW5cIDsKK+aFoiA+IG1hblwgOwor5oWYID4gc2FuXCA7CivphZQgPiBzdWlcIDsKK+mFjSA+IGhhaVwgOwor5oWMID4ga291XCA7CivmhYogPiBrZW5cIDsKK+ekvCA+IHJlaVwgOwor56S6ID4gc2hpXCA7CivmhJ8gPiBrYW5cIDsKK+ekmSA+IGdhaVwgOwor6YO1ID4geXV1XCA7Civmg7MgPiBzb3VcIDsKK+aDsSA+IG5vdVwgOwor5oOoID4gc2FuXCA7Civmg6AgPiBrZWlcIDsKK+ejkCA+IGl3YVwgOwor6YOOID4gcm91XCA7Civpg4ogPiBrb3VcIDsKK+aDhSA+IGpvdVwgOwor5oK8ID4gdG91XCA7CivmgrYgPiBtb25cIDsKK+aCtCA+IHN1aVwgOwor5oKjID4ga2FuXCA7CivmgqAgPiB5dXVcIDsKK+eilyA+IHdhblwgOwor5oKWID4gaGFpXCA7CivmgpQgPiBrYWlcIDsKK+mCiiA+IGhlblwgOwor6YKEID4ga2FuXCA7CivpgoIgPiBrYWlcIDsKK+mBuCA+IHNlblwgOwor6YGyID4gY2hpXCA7CivmgbAgPiBrb3VcIDsKK+mBriA+IHNoYVwgOwor6YGtID4gc291XCA7Civmga8gPiBpa2lcIDsKK+ehrCA+IGtvdVwgOwor5oGoID4ga29uXCA7CivpgaUgPiB5b3VcIDsKK+mBoyA+IGtlblwgOwor6YGgID4gdG9vXCA7CivpgZwgPiBzb25cIDsKK+mBmSA+IHlvdVwgOwor6YGRID4ga291XCA7CivpgY0gPiBoZW5cIDsKK+aBjSA+IGtvdVwgOwor6YGKID4geXV1XCA7CivmgYsgPiBrb2lcIDsKK+mBhyA+IGd1dVwgOwor6YGFID4gY2hpXCA7CivpgYIgPiBzdWlcIDsKK+mBgSA+IHRvblwgOwor5oCqID4ga2FpXCA7CivmgKcgPiBzZWlcIDsKK+egpSA+IHNoaVwgOwor6YCjID4gcmVuXCA7CivpgKIgPiBob3VcIDsKK+mAoCA+IHpvdVwgOwor5oCgID4gdGFpXCA7CivpgJ4gPiB0ZWlcIDsKK+mAnSA+IHNlaVwgOwor5oCdID4gc2hpXCA7CivpgJkgPiBnZW5cIDsKK+eglSA+IHNhaVwgOwor56CUID4ga2VuXCA7CivpgI8gPiB0b3VcIDsKK+mAhSA+IGtvdVwgOwor6YCDID4gdG91XCA7CivpgIEgPiBzb3VcIDsKK+mAgCA+IHRhaVwgOwor5b+/ID4gZnVuXCA7CivpvqQgPiBrYWlcIDsKK+m+oSA+IHN1aVwgOwor6b6YID4gdG91XCA7CivpvpcgPiByZWlcIDsKK+m+liA+IHRvdVwgOwor6b6SID4gcnl1XCA7CivpvpAgPiBob3VcIDsKK+m9vSA+IGtpblwgOwor6b23ID4gYWt1XCA7CivpvbYgPiBhZ29cIDsKK+m9tSA+IGdvdVwgOwor6b2zID4gZ3VuXCA7Civpva8gPiBnZWlcIDsKK+m9rSA+IHNob1wgOwor6b2sID4gZ3lvXCA7CivpvakgPiBnb3VcIDsKK+m9niA+IGdlblwgOwor6b2dID4gY2hpXCA7CivpvZggPiBrYWlcIDsKK+m9lyA+IGtpblwgOwor6b2SID4gc2hpXCA7CivpvY8gPiBzZWlcIDsKK+m9iyA+IHNhaVwgOwor6b2EID4gc2hhXCA7CivpvYEgPiBrb3VcIDsKK+m8uiA+IHJ1aVwgOwor6by3ID4ga2VpXCA7CivpvLIgPiBrb25cIDsKK+m8sSA+IHNlaVwgOwor6byqID4gc2VpXCA7CivpvKIgPiBmdW5cIDsKK+m8oSA+IHNob1wgOwor6byfID4gdG91XCA7CivpvJsgPiBrb3VcIDsKK+m8mSA+IGhlaVwgOwor6byXID4gdG91XCA7CivpvJYgPiBmdW5cIDsKK+m8lSA+IHRvdVwgOwor6bySID4gc2hpXCA7CivpvJEgPiB0ZWlcIDsKK+m8kCA+IGRhaVwgOwor6byHID4gZ291XCA7CivpvIUgPiBjaGlcIDsKK+m8gyA+IHdhaVwgOwor6bu/ID4gZ2VuXCA7Civpu70gPiBib3VcIDsKK+m7uSA+IGNoaVwgOwor6bu2ID4gYXphXCA7Civpu7UgPiB0YW5cIDsKK+m7siA+IHNhblwgOwor6buxID4gdGFpXCA7Civpu64gPiB0YW5cIDsKK+m7rCA+IGthblwgOwor6bunID4gcmVpXCA7Civpu50gPiB5dXVcIDsKK+m7lSA+IHRhblwgOwor6buUID4ga2VuXCA7Civpu48gPiBuZW5cIDsKK+m7jiA+IHJlaVwgOwor6buMID4ga291XCA7Civpu4sgPiBrb3VcIDsKK+m7iCA+IHRvdVwgOwor6buGID4ga291XCA7Civpu4MgPiBrb3VcIDsKK+m6uiA+IG1lblwgOwor6bq1ID4gYmVuXCA7CivpurMgPiByYWlcIDsKK+m6sCA+IGJvdVwgOwor6bquID4ga3lvXCA7Civpuq0gPiBob3VcIDsKK+m6qiA+IG1lblwgOwor6bqfID4gcmluXCA7Civpup0gPiBzaGFcIDsKK+m6myA+IGJlaVwgOwor6bqWID4ga2VpXCA7CivpupUgPiBraW5cIDsKK+m6kSA+IGdlaVwgOwor6bqPID4ga2luXCA7CivpuoggPiBzaHVcIDsKK+m6hyA+IGtpblwgOwor6bqFID4gaG91XCA7CivpuoMgPiBob3VcIDsKK+m6gCA+IHl1dVwgOwor6bm8ID4ga2VuXCA7CivpubsgPiBrYW5cIDsKK+m5uSA+IGthblwgOwor6biwID4gcmVpXCA7CivpuJ4gPiByYW5cIDsKK+m4myA+IGthblwgOwor6biOID4geW91XCA7CivpuIcgPiBzZW5cIDsKK+m4giA+IGtlaVwgOwor6be0ID4ga2FuXCA7Civpt7MgPiBrYW5cIDsKK+m3rSA+IGJhblwgOwor6belID4gc2hpXCA7Civpt6AgPiBneW9cIDsKK+m3niA+IHNvdVwgOwor6beZID4gc2hpXCA7Civpt5UgPiB5b3VcIDsKK+m3lCA+IGdvdVwgOwor6beTID4gc2hhXCA7Civpt48gPiB0ZW5cIDsKK+m3iSA+IHRlaVwgOwor6beHID4ga291XCA7Civpt4YgPiB0ZW5cIDsKK+m3giA+IHlvdVwgOwor6ba/ID4gc2hpXCA7CivptrwgPiBrZW5cIDsKK+m2tSA+IHN1dVwgOwor6baxID4ga2VuXCA7CivptqwgPiBzb3VcIDsKK+m2pCA+IGtvblwgOwor6baXID4gdGVpXCA7CivptoogPiBrb3VcIDsKK+m2hyA+IHRvdVwgOwor6baGID4gcmFpXCA7CivptoQgPiBzZWlcIDsKK+m1viA+IGtvblwgOwor6bW8ID4ga291XCA7CivptbsgPiBzdWlcIDsKK+m1rCA+IGhvdVwgOwor6bWrID4gdG91XCA7CivptacgPiBoZWlcIDsKK+m1oyA+IHJhaVwgOwor6bWRID4ga2VuXCA7CivptYogPiBrb3VcIDsKK+m1iCA+IHRlblwgOwor6bWEID4gc2hpXCA7CivptYEgPiBrb3VcIDsKK+m0vyA+IGtvdVwgOwor6bS+ID4gYm91XCA7CivptLsgPiBrb3VcIDsKK+m0uiA+IHRlaVwgOwor6bS0ID4ga291XCA7CivptLIgPiBzaGlcIDsKK+m0piA+IHlvdVwgOwor6bSfID4gc2hpXCA7CivptJ4gPiB5b3VcIDsKK+m0nCA+IHNoaVwgOwor6bSYID4gaGVuXCA7CivptJIgPiByZWlcIDsKK+m0iyA+IGhvdVwgOwor6bSIID4gZ2FuXCA7Civps7kgPiBrZW5cIDsKK+mztyA+IHNoaVwgOwor6bOzID4gaG91XCA7Civps7IgPiBzaGlcIDsKK+mzsCA+IG5pb1wgOwor6bOvID4gaG91XCA7Civps64gPiBrZWlcIDsKK+mzqyA+IGdhblwgOwor6bK5ID4gc291XCA7CivpspkgPiBrYWlcIDsKK+myiSA+IHl1dVwgOwor6bG7ID4gc2VuXCA7Civpsa4gPiBzaG9cIDsKK+mxpCA+IGthblwgOwor6bGjID4gdGFuXCA7CivpsaAgPiBrYWlcIDsKK+mxnyA+IGtvdVwgOwor6bGeID4ga2FuXCA7CivpsZ0gPiBmdW5cIDsKK+mxmyA+IGVzb1wgOwor6bGWID4ga2VpXCA7CivpsZQgPiBzZW5cIDsKK+mxkyA+IHNlblwgOwor6bGHID4ga291XCA7CivpsYQgPiBzZW5cIDsKK+mwtiA+IHNlaVwgOwor6bC1ID4gYmluXCA7CivpsLIgPiBnb3VcIDsKK+mwsSA+IHJlblwgOwor6bCqID4ga291XCA7CivpsKkgPiB5b3VcIDsKK+mwpyA+IHRvdVwgOwor6bCmID4gc2hpXCA7CivpsKUgPiBrYW5cIDsKK+mwoyA+IHNoaVwgOwor6bCcID4ga2VuXCA7CivpsJUgPiBlYmlcIDsKK+mwlCA+IGthblwgOwor6bCTID4gZXJhXCA7CivpsJEgPiB5b3VcIDsKK+mwgyA+IHdhaVwgOwor6bCBID4gc2VuXCA7CivpsIAgPiBrYW5cIDsKK+mvvyA+IGhlblwgOwor6a+6ID4gc2hvXCA7Civpr7kgPiBzZWlcIDsKK+mvuCA+IGtvdVwgOwor6a+3ID4gdGVpXCA7Civpr7UgPiBhamlcIDsKK+mvryA+IHNlaVwgOwor6a+rID4gc291XCA7Civpr6QgPiBrb25cIDsKK+mvoiA+IGdlaVwgOwor6a+fID4gdG91XCA7Civpr5sgPiB0YWlcIDsKK+mvmCA+IGRhaVwgOwor6a+JID4ga29pXCA7Civpr4ggPiB5dXVcIDsKK+mvhyA+IGthblwgOwor6a+BID4ga291XCA7Civpr4AgPiBrb25cIDsKK+muviA+IGRhaVwgOwor6a64ID4gYmVuXCA7CivprrcgPiB0ZWlcIDsKK+musCA+IGthaVwgOwor6a6pID4gaG91XCA7CivprqYgPiB0b3VcIDsKK+mulCA+IGt5b1wgOwor6a6QID4gdGFpXCA7Civpro8gPiBzZWlcIDsKK+mujiA+IGF5dVwgOwor6a6LID4geXV1XCA7CivproYgPiBzZWlcIDsKK+mtvyA+IHJlaVwgOwor6a23ID4geXV1XCA7CivprbUgPiBmdW5cIDsKK+mttCA+IGhvdVwgOwor6a2zID4gc2hpXCA7Civpra0gPiBnZW5cIDsKK+mtrCA+IGhhblwgOwor6a2qID4ga2FpXCA7CivpraggPiB0b25cIDsKK+mtpSA+IGdvdVwgOwor6a2jID4gc2hvXCA7CivprZ4gPiBlcmlcIDsKK+mtnCA+IGppblwgOwor6a2bID4gdG91XCA7CivprZYgPiBreW9cIDsKK+mtkSA+IGNoaVwgOwor6a2NID4gYm91XCA7CivprYsgPiB0YWlcIDsKK+mstyA+IHNvdVwgOwor6ay1ID4gc2VuXCA7CivprLMgPiBrZW5cIDsKK+msrSA+IHRvdVwgOwor6aysID4gdG91XCA7CivprKsgPiBrYW5cIDsKK+msqiA+IHRvdVwgOwor6ayoID4ga291XCA7CivprKcgPiB0b3VcIDsKK+mspiA+IHRvdVwgOwor6aylID4gdG91XCA7CivprJ8gPiBrYW5cIDsKK+msnCA+IGthblwgOwor6ayZID4gc291XCA7CivprJYgPiBzYW5cIDsKK+msiyA+IHNlblwgOwor6ayJID4gc291XCA7CivprIggPiBrZW5cIDsKK+mshSA+IGhvdVwgOwor6ayEID4gdGVpXCA7CivprIMgPiBzb3VcIDsKK+msgiA+IGJpblwgOwor6ayAID4gdGVpXCA7Civpq7sgPiBrZWlcIDsKK+mrsyA+IGJvdVwgOwor6auxID4gaG91XCA7Civpq68gPiB6ZW5cIDsKK+mrqSA+IGJpblwgOwor6aunID4gdGFuXCA7Civpq6YgPiBib3VcIDsKK+mrpSA+IHplblwgOwor6aujID4gaG91XCA7Civpq6IgPiB0ZWlcIDsKK+mroCA+IGtvblwgOwor6aueID4gc291XCA7Civpq5sgPiBrb3VcIDsKK+mrmSA+IGtvdVwgOwor6auWID4ga2FuXCA7Civpq5UgPiBoaW5cIDsKK+mrkyA+IHp1aVwgOwor6auSID4gc291XCA7Civpq5AgPiBrb3VcIDsKK+mrjyA+IHJvdVwgOwor6auIID4gaG91XCA7Civpq4EgPiBrYWlcIDsKK+mqvyA+IGhlblwgOwor6aq+ID4ga291XCA7CivpqrkgPiBrb3VcIDsKK+mqtiA+IHRlaVwgOwor6aq1ID4gdGFpXCA7CivpqrQgPiBzaGlcIDsKK+mqsCA+IHRvdVwgOwor6aqvID4ga291XCA7CivpqpQgPiBzb3VcIDsKK+mpqSA+IGthblwgOwor6amkID4gam91XCA7CivpqZsgPiBla2lcIDsKK+mplCA+IHRlblwgOwor6amSID4gdGFuXCA7CivpqY4gPiByaW5cIDsKK+mphyA+IGNoaVwgOwor6amEID4gc291XCA7CivpqYIgPiBzYW5cIDsKK+mpgSA+IGdvdVwgOwor6ai6ID4gY2hpXCA7CivpqLggPiBzZW5cIDsKK+motSA+IGdlblwgOwor6aiwID4gdG91XCA7CivpqKsgPiBrZW5cIDsKK+moqCA+IHRhblwgOwor6aijID4gc291XCA7CivpqKAgPiB0ZWlcIDsKK+molyA+IGhlblwgOwor6aiQID4ga2VuXCA7CivpqIwgPiBzb3VcIDsKK+moiyA+IHJhaVwgOwor6aiIID4gaGVuXCA7CivpqIUgPiBzdWlcIDsKK+mogyA+IGdhaVwgOwor6aiCID4gc2VpXCA7CivpqIEgPiB0ZWlcIDsKK+mnviA+IHRhaVwgOwor6ae9ID4ga2VuXCA7Civpp7sgPiBrYW5cIDsKK+mnuSA+IGJvdVwgOwor6ae0ID4ga2FpXCA7Civpp60gPiBrYWlcIDsKK+mnqyA+IGtlaVwgOwor6aenID4gdG91XCA7Civpp6IgPiBoZW5cIDsKK+mnnyA+IHNoaVwgOwor6aeaID4geW91XCA7Civpp5ggPiB0YWlcIDsKK+mnlCA+IHNvdVwgOwor6aeJID4ga2VpXCA7CivpprwgPiBidW5cIDsKK+mmuiA+IHNvdVwgOwor6aa1ID4gc2h1XCA7CivppqggPiBrZWlcIDsKK+mmpiA+IGtlblwgOwor6aaTID4gc2FuXCA7CivppZ4gPiBzYW5cIDsKK+mlmyA+IGJvdVwgOwor6aWZID4gZnVuXCA7CivppZggPiBzZW5cIDsKK+mllSA+IHRvdVwgOwor6aWUID4geW91XCA7CivppY4gPiBzaGlcIDsKK+mljSA+IHplblwgOwor6aWMID4gc2VuXCA7CivppYogPiBzYW5cIDsKK+mliSA+IGtpblwgOwor6aWBID4geW91XCA7CivppYAgPiB0b3VcIDsKK+mkuyA+IGtvdVwgOwor6aS5ID4gdG91XCA7CivppLUgPiBkYWlcIDsKK+mktCA+IGZ1blwgOwor6aSzID4gdG91XCA7CivppLEgPiBrb3VcIDsKK+mkpyA+IGRhaVwgOwor6aSkID4gdGFuXCA7CivppKIgPiBob3VcIDsKK+mkoCA+IGhlaVwgOwor6aSbID4ga29uXCA7CivppJogPiBrb3VcIDsKK+mkliA+IHRvdVwgOwor6aSSID4gZGFpXCA7CivppIwgPiBlc2FcIDsKK+mkiCA+IHNoaVwgOwor6aSDID4ga291XCA7CivppIIgPiB0ZW5cIDsKK+mkgSA+IGppblwgOwor6aOzID4gc2h1XCA7Civpo7AgPiBoYW5cIDsKK+mjqiA+IGppblwgOwor6aOpID4gdG9uXCA7Civpo6cgPiBzb25cIDsKK+mjpiA+IGtlblwgOwor6aOjID4gdGVpXCA7Civpo6EgPiBzYW5cIDsKK+mjjCA+IGZ1dVwgOwor6aK/ID4gaGFuXCA7CivporsgPiB5b3VcIDsKK+miuiA+IHlvdVwgOwor6aK4ID4gc2hpXCA7CivporQgPiBzZW5cIDsKK+misSA+IHRhaVwgOwor6aKtID4gc2VuXCA7CivpobQgPiBrYW5cIDsKK+mhsCA+IGhpblwgOwor6aGqID4ga2FpXCA7CivpoaUgPiBrb3VcIDsKK+mhoiA+IGJhblwgOwor6aGaID4gdGVuXCA7CivpoZkgPiBzb3VcIDsKK+mhkyA+IHNlblwgOwor6aGRID4ga2FuXCA7CivpoYsgPiBzYWlcIDsKK+mhhyA+IHN1aVwgOwor6aGEID4ga2FuXCA7CivpoL4gPiBzaGlcIDsKK+mgvSA+IHRhaVwgOwor6aC5ID4gdGFpXCA7CivpoLcgPiBrYW5cIDsKK+mgsyA+IHRlaVwgOwor6aCyID4gdGVpXCA7CivpoK8gPiBrYWlcIDsKK+mgriA+IGthaVwgOwor6aCmID4ga2FpXCA7CivpoKAgPiBnYWlcIDsKK+mgnCA+IGthblwgOwor6aCWID4gaGFuXCA7CivpoJIgPiBoYW5cIDsKK+mgjyA+IGtvdVwgOwor6aCIID4gc2h1XCA7CivpoIcgPiBrYW5cIDsKK+mfuCA+IGhvdVwgOwor6Z+0ID4gc291XCA7Civpn7IgPiBzZWlcIDsKK+mfsSA+IHNlblwgOwor6Z+vID4gc2VuXCA7Civpn50gPiBrb3VcIDsKK+mfnCA+IHRvdVwgOwor6Z+bID4gaGFpXCA7Civpn5MgPiBrYW5cIDsKK+mfkCA+IGtvdVwgOwor6Z+OID4gYmFpXCA7Civpn4wgPiBqaW5cIDsKK+mfiiA+IHJhblwgOwor6Z+JID4gc2VuXCA7Civpn4YgPiBzZW5cIDsKK+mfhSA+IGtlblwgOwor6Z+EID4gYWt1XCA7CivpnrogPiB0b3VcIDsKK+metiA+IGhhblwgOwor6Z6zID4gdG91XCA7CivpnrIgPiBrb3VcIDsKK+mesSA+IHRvdVwgOwor6Z6uID4gdGVpXCA7CivpnqwgPiBrZW5cIDsKK+meoyA+IGp1dVwgOwor6Z6eID4gaGVpXCA7CivpnpwgPiB0b3VcIDsKK+memiA+IGtvdVwgOwor6Z6ZID4ga2VuXCA7CivpnpcgPiB0b3VcIDsKK+meliA+IHNhaVwgOwor6Z6VID4gZ291XCA7CivpnokgPiB0b3VcIDsKK+megCA+IHRvdVwgOwor6Z29ID4gYmFuXCA7CivpnbwgPiB0YW5cIDsKK+mduCA+IHNvdVwgOwor6Z2zID4ga2luXCA7CivpnbEgPiBqaW5cIDsKK+mdrSA+IGppblwgOwor6Z2rID4gc2FpXCA7CivpnaogPiB0ZWlcIDsKK+mdpyA+IGthaVwgOwor6Z2mID4gdGVuXCA7CivpnaQgPiBob3VcIDsKK+mdoyA+IG1lblwgOwor6Z2gID4ga291XCA7CivpnZsgPiB0ZW5cIDsKK+mdmiA+IHNlaVwgOwor6Z2XID4gdGVpXCA7CivpnZEgPiBzZWlcIDsKK+mdiiA+IGZ1dVwgOwor6Z2GID4gdGFpXCA7CivpnYEgPiByYWlcIDsKK+mcviA+IGJhaVwgOwor6Zy9ID4gc2VpXCA7CivpnJ0gPiByZWlcIDsKK+mcmyA+IHJlaVwgOwor6ZyaID4gYm91XCA7CivpnJYgPiByaW5cIDsKK+mckyA+IGdlaVwgOwor6ZyRID4gdGVuXCA7CivpnI4gPiBzb3VcIDsKK+mciSA+IGJhaVwgOwor6ZyIID4gaGFpXCA7CivpnIYgPiB0ZWlcIDsKK+mbsSA+IGhvdVwgOwor6ZuwID4gZnVuXCA7Civpm68gPiBidW5cIDsKK+mbnyA+IGtlaVwgOwor6ZueID4ga2VpXCA7Civpm50gPiB5b3VcIDsKK+mbmiA+IGthblwgOwor6ZuZID4gc291XCA7Civpm44gPiBzaG9cIDsKK+mbjSA+IHlvdVwgOwor6ZuLID4gc2VuXCA7Civpm4ogPiBrb3VcIDsKK+mbiCA+IGthblwgOwor6Zq5ID4gc3VpXCA7CivpmrggPiByZWlcIDsKK+matyA+IHJlaVwgOwor6Zq2ID4gdGFpXCA7CivpmrQgPiByb3VcIDsKK+maryA+IHRvdVwgOwor6ZquID4gc2VpXCA7CivpmqcgPiBzdWlcIDsKK+mapiA+IGhlaVwgOwor6ZqlID4gdG91XCA7CivpmqQgPiB0YWlcIDsKK+manSA+IHRvdVwgOwor6ZqaID4gdG91XCA7CivpmpcgPiBrYWlcIDsKK+makSA+IGthaVwgOwor6ZqNID4ga291XCA7CivpmoQgPiB0ZWlcIDsKK+magyA+IHNodVwgOwor6Zm+ID4gam91XCA7CivpmbwgPiBzaG9cIDsKK+mZtyA+IGthblwgOwor6ZmyID4gc3VpXCA7Civpma4gPiB0YWlcIDsKK+mZrCA+IHN1dVwgOwor6ZmqID4gYmFpXCA7CivpmaYgPiB0b3VcIDsKK+mZoSA+IHRvdVwgOwor6ZmdID4gc2VuXCA7CivpmZwgPiBrb3VcIDsKK+mZmyA+IGhlaVwgOwor6ZmYID4ga2VpXCA7CivpmZYgPiBrYWlcIDsKK+mZlCA+IGdhaVwgOwor6ZmLID4gcm91XCA7CivpmLogPiBreW9cIDsKK+mYuCA+IGFrdVwgOwor6Zi3ID4gdGVpXCA7CivpmLMgPiB5b3VcIDsKK+mYsSA+IHNlaVwgOwor6ZivID4gc2hpXCA7CivpmK4gPiBnZW5cIDsKK+mYrCA+IGtvdVwgOwor6ZioID4gYWt1XCA7CivpmKYgPiB5b3VcIDsKK+mYpCA+IGNoaVwgOwor6ZihID4gc2VuXCA7Civpl6YgPiBnb25cIDsKK+mXpCA+IGthblwgOwor6ZehID4gc2VuXCA7Civpl6AgPiBrYWlcIDsKK+mXmSA+IGtlaVwgOwor6ZeXID4ga2FuXCA7Civpl5QgPiBrb3VcIDsKK+mXkyA+IGthaVwgOwor6ZeSID4gdG91XCA7Civpl5AgPiB0ZW5cIDsKK+mXjCA+IHJhblwgOwor6ZeGID4gaGFuXCA7Civplr8gPiBidW5cIDsKK+mWvSA+IGtvblwgOwor6Za6ID4gYmVuXCA7CivplqwgPiByb3VcIDsKK+mWqyA+IGtvblwgOwor6ZapID4gYmVuXCA7CivplqggPiBrZWlcIDsKK+mWpyA+IGtvdVwgOwor6ZahID4gZ2FpXCA7Civplp4gPiBoZW5cIDsKK+mWnSA+IHJlaVwgOwor6ZaZID4gdG91XCA7CivplpggPiBrb3VcIDsKK+mWlCA+IGJpblwgOwor6ZaPID4ganVuXCA7Civplo4gPiBrb3VcIDsKK+mWjSA+IGhvdVwgOwor6ZaMID4ga291XCA7CivploggPiBrYW5cIDsKK+mWhyA+IGhlaVwgOwor6ZaCID4gc2FuXCA7CivplbQgPiByb3VcIDsKK+mVriA+IGthblwgOwor6ZS9ID4ga291XCA7Civpk6YgPiBzZW5cIDsKK+mTkyA+IGJvdVwgOwor6ZOHID4gaG91XCA7CivpkoQgPiByYW5cIDsKK+mRviA+IHJhblwgOwor6ZG9ID4gc2FuXCA7CivpkbcgPiBqb3VcIDsKK+mRsiA+IGpvdVwgOwor6ZGxID4gc2FuXCA7Civpka8gPiBzZW5cIDsKK+mRrSA+IHJhblwgOwor6ZGrID4ga2luXCA7CivpkaggPiByb3VcIDsKK+mRniA+IHJvdVwgOwor6ZGbID4ga291XCA7CivpkZogPiBzYW5cIDsKK+mRmSA+IGtlaVwgOwor6ZGRID4ga2FuXCA7CivpkYwgPiBoaW5cIDsKK+mRiCA+IGdlaVwgOwor6ZGFID4ga291XCA7CivpkYEgPiBiYW5cIDsKK+mQuyA+IGt5b1wgOwor6ZC6ID4gdG91XCA7CivpkLYgPiBrYW5cIDsKK+mQsyA+IHJhaVwgOwor6ZCxID4gc2VuXCA7CivpkK4gPiByZW5cIDsKK+mQqyA+IHNlblwgOwor6ZCfID4gdGVpXCA7CivpkJkgPiB0b3VcIDsKK+mQlyA+IGthblwgOwor6ZCVID4gc2FuXCA7CivpkJMgPiB0YWlcIDsKK+mQjyA+IHNvblwgOwor6ZCJID4gc2VuXCA7CivpkIcgPiBoYW5cIDsKK+mQhCA+IGtvdVwgOwor6ZCDID4gZG91XCA7CivpkIEgPiBzaGlcIDsKK+mPuyA+IHJpblwgOwor6Y+4ID4gdGVpXCA7Civpj6ggPiBzYW5cIDsKK+mPpyA+IHJvdVwgOwor6Y+kID4gcm91XCA7Civpj58gPiBzYW5cIDsKK+mPniA+IHlvdVwgOwor6Y+dID4gbWFuXCA7Civpj5wgPiB0b3VcIDsKK+mPmSA+IHNhaVwgOwor6Y+XID4ga291XCA7Civpj5MgPiBzb3VcIDsKK+mPiyA+IGJhblwgOwor6Y+IID4gcmVuXCA7Civpj4cgPiBzZW5cIDsKK+mPhiA+IGthblwgOwor6Y+EID4gdGFuXCA7CivpjqwgPiBrb3VcIDsKK+mOqyA+IGJhblwgOwor6Y6pID4gc2FpXCA7CivpjqQgPiBrb3VcIDsKK+mOoSA+IHNoaVwgOwor6Y6eID4gaGVpXCA7CivpjpcgPiBzb3VcIDsKK+mOlSA+IHRvdVwgOwor6Y6UID4geW91XCA7CivpjpIgPiBkb3VcIDsKK+mOiiA+IGhhdVwgOwor6Y2/ID4gc2hpXCA7Civpjb0gPiBoZW5cIDsKK+mNtCA+IHRhblwgOwor6Y2zID4ga2FuXCA7CivpjbEgPiB5b3VcIDsKK+mNsCA+IGthblwgOwor6Y2vID4gc291XCA7Civpja0gPiBrb3VcIDsKK+mNqiA+IGJvdVwgOwor6Y2pID4gdGVuXCA7CivpjacgPiBrb3VcIDsKK+mNpCA+IHNvdVwgOwor6Y2gID4ga291XCA7CivpjZ4gPiBrb3VcIDsKK+mNmiA+IHlvdVwgOwor6Y2XID4gdGVpXCA7CivpjZUgPiBrdW5cIDsKK+mNkiA+IGp1dVwgOwor6Y2RID4gaHV1XCA7CivpjZAgPiBzb3VcIDsKK+mNiiA+IHJlblwgOwor6Y2JID4gdGVpXCA7CivpjYcgPiBrYWlcIDsKK+mNhCA+IGtlaVwgOwor6Yy1ID4gbmllXCA7CivpjLMgPiBtb3VcIDsKK+mMrCA+IHJlblwgOwor6YyqID4gdGVuXCA7CivpjKcgPiBrYW5cIDsKK+mMpSA+IGlrdVwgOwor6YyjID4gdGVpXCA7CivpjKAgPiBqb3VcIDsKK+mMnyA+IHRhblwgOwor6YydID4gc291XCA7CivpjJwgPiBqb3VcIDsKK+mMmiA+IHNvdVwgOwor6YyZID4gc2hpXCA7CivpjJUgPiBrb25cIDsKK+mMlCA+IHRvdVwgOwor6YyRID4gcmFpXCA7CivpjIggPiBrZW5cIDsKK+mMgCA+IHJpblwgOwor6Yu7ID4ga2VuXCA7Civpi64gPiBzZWlcIDsKK+mLrCA+IGhhblwgOwor6YunID4ga2VuXCA7Civpi6UgPiB0b3VcIDsKK+mLoSA+IGthblwgOwor6YufID4gc2VuXCA7Civpi5kgPiBneW9cIDsKK+mLlyA+IGtlblwgOwor6YuVID4gc2hpXCA7Civpi5MgPiB0ZW5cIDsKK+mLkCA+IGtvdVwgOwor6YuOID4ga2FuXCA7Civpi4wgPiB0ZWlcIDsKK+mLiyA+IHNlblwgOwor6YuHID4gaGFpXCA7Civpi4UgPiBzaGlcIDsKK+mLgyA+IHJvdVwgOwor6YuCID4gYmFpXCA7Civpi4EgPiByeW9cIDsKK+mLgCA+IHRvdVwgOwor6Yq7ID4gdGVpXCA7CivpirogPiBzb3VcIDsKK+mKsiA+IGthblwgOwor6YqnID4ga291XCA7CivpiqQgPiBiZWlcIDsKK+mKoCA+IHJvdVwgOwor6YqaID4geW91XCA7CivpipkgPiBrYWlcIDsKK+mKlyA+IGtvdVwgOwor6YqWID4gc2h1XCA7CivpipMgPiBzZW5cIDsKK+mKkiA+IGtlaVwgOwor6YqIID4gdGVpXCA7Civpib8gPiBrb3VcIDsKK+mJvCA+IGhlaVwgOwor6Ym5ID4gc2hpXCA7CivpibggPiBrb3VcIDsKK+mJtyA+IGtvdVwgOwor6Ym2ID4ga2VpXCA7CivpibUgPiB0b3VcIDsKK+mJsSA+IGtvdVwgOwor6YmwID4gc2hpXCA7CivpiakgPiBqb3VcIDsKK+mJqCA+IGRlaVwgOwor6YmnID4gYm91XCA7CivpiaQgPiBrb3VcIDsKK+mJoSA+IGhhblwgOwor6YmcID4gZnV1XCA7CivpiZkgPiB0YWlcIDsKK+mJlyA+IGthblwgOwor6YmPID4gc2hvXCA7CivpiY4gPiBzb3VcIDsKK+mJiSA+IGtlblwgOwor6YmIID4gc2hhXCA7CivpiYcgPiBzaGlcIDsKK+mJhiA+IHRlblwgOwor6YmFID4ga3lvXCA7CivpiYMgPiBzaGlcIDsKK+mJgiA+IHNoaVwgOwor6YmAID4ga291XCA7CivpiL8gPiB0ZW5cIDsKK+mItiA+IHNoaVwgOwor6Yi1ID4gaGVpXCA7CivpiLAgPiBzaGlcIDsKK+mIriA+IGRlaVwgOwor6YijID4ga2FpXCA7CivpiJ4gPiBraW5cIDsKK+mInCA+IGtvdVwgOwor6YiWID4gaHVuXCA7CivpiJMgPiBqaW5cIDsKK+mIkiA+IHNvdVwgOwor6YiRID4gaGFuXCA7CivpiJAgPiBrZW5cIDsKK+mIiSA+IGRvdVwgOwor6YiEID4gdG91XCA7CivpiIEgPiBob3VcIDsKK+mHvyA+IGtpblwgOwor6Ye8ID4ga2VuXCA7Civph7YgPiBzaGlcIDsKK+mHsSA+IHRlaVwgOwor6YevID4gYm91XCA7Civph64gPiBzZW5cIDsKK+mHrSA+IGtvdVwgOwor6YesID4ga2FuXCA7Civph6kgPiBoYW5cIDsKK+mHpyA+IHNlblwgOwor6YemID4ga291XCA7Civph6QgPiBzYW5cIDsKK+mHliA+IHRvdVwgOwor6YeJID4geXV1XCA7Civph4YgPiBoYW5cIDsKK+mHhSA+IGdlblwgOwor6YeDID4gc2hpXCA7Civph4EgPiBraW5cIDsKK+mHgCA+IGpvdVwgOwor6Ya9ID4gcmVpXCA7CivphrogPiBrdW5cIDsKK+mGuCA+IGpvdVwgOwor6Ya2ID4gZ2VuXCA7CivphrUgPiBreW9cIDsKK+mGtCA+IHJlaVwgOwor6YazID4gZWtpXCA7CivphrIgPiBqb3VcIDsKK+mGsCA+IHRhblwgOwor6YavID4ga2VpXCA7CivphqYgPiBzYW5cIDsKK+mGoiA+IGthaVwgOwor6YaYID4ga291XCA7CivphpMgPiB0YW5cIDsKK+mGkSA+IHNob1wgOwor6YaOID4gZGFpXCA7Civpho0gPiB0ZWlcIDsKK+mGhiA+IHNhblwgOwor6YaFID4gaGFpXCA7CivphoIgPiByaW5cIDsKK+mFuyA+IHN1aVwgOwor6YW5ID4gcmFpXCA7CivphbYgPiBiYWlcIDsKK+mFtSA+IGtvdVwgOwor6YWyID4gdGVpXCA7Civpha0gPiB5dXVcIDsKK+mFqSA+IG1laVwgOwor6YWjID4ga2FuXCA7CivphZogPiBodW5cIDsKK+mFmCA+IHRvdVwgOwor6YWWID4gdGFuXCA7CivphYogPiB0ZWlcIDsKK+mFhyA+IHNhblwgOwor6YWGID4gZnV1XCA7CivphYMgPiByZWlcIDsKK+mEvSA+IHRlblwgOwor6YS8ID4gc2FiXCA7CivphLogPiBrb3VcIDsKK+mEtyA+IGhvdVwgOwor6YS2ID4ga2FpXCA7CivphLIgPiB0YW5cIDsKK+mEsCA+IHJpblwgOwor6YSvID4gc2VuXCA7CivphK4gPiBib3VcIDsKK+mErSA+IHRlaVwgOwor6YSnID4gdG91XCA7CivphJ4gPiBnaW5cIDsKK+mEmCA+IHlvdVwgOwor6YSXID4ga291XCA7CivphJIgPiBzdXVcIDsKK+mEjSA+IG1laVwgOwor6YSEID4ga2VuXCA7Civpg68gPiB0YW5cIDsKK+mDpSA+IGhhaVwgOwor6YOhID4gZ3VuXCA7Civpg58gPiBrb3VcIDsKK+mDniA+IHJvdVwgOwor6YOcID4ga291XCA7Civpg5ggPiByeW9cIDsKK+mDlyA+IGNoaVwgOwor6YOVID4gc2VpXCA7Civpg5IgPiByb3VcIDsKK+mDjCA+IGtlaVwgOwor6YOIID4ga291XCA7Civpg4MgPiBrb3VcIDsKK+mDgSA+IGlrdVwgOwor6YK+ID4gY2h1XCA7Civpgr0gPiBrZWlcIDsKK+mCtiA+IGhhaVwgOwor6YK0ID4gaGVpXCA7CivpgrAgPiB0YWlcIDsKK+mCryA+IGthblwgOwor6YKoID4gc29uXCA7CivpgqIgPiBrZWlcIDsKK+mCoSA+IGhvdVwgOwor6YKgID4gaGluXCA7CivpgpkgPiBib3VcIDsKK+mClyA+IGthblwgOwor6YKVID4geW91XCA7CivpgpEgPiB5dXVcIDsKK+mCjiA+IHl1dVwgOwor6YKMID4gcmVpXCA7CivpgokgPiBoZW5cIDsKK+mChSA+IGtlblwgOwor6YKDID4gc3VpXCA7CivpgoEgPiBiYWlcIDsKK+mCgCA+IHlvdVwgOwor6YG9ID4ga3lvXCA7CivpgbcgPiBzZW5cIDsKK+mBtiA+IGpvdVwgOwor6YG1ID4ganVuXCA7CivpgbQgPiByaW5cIDsKK+mBsCA+IHRlaVwgOwor6YGvID4gdG9uXCA7CivpgaggPiBnb3VcIDsKK+mBpiA+IGthblwgOwor6YGiID4gdG91XCA7CivpgZ8gPiBjaGlcIDsKK+mBniA+IHRlaVwgOwor6YGdID4gdG91XCA7CivpgZggPiBrb3VcIDsKK+mBiSA+IHRlaVwgOwor6YGEID4gc2VuXCA7CivpgYMgPiBnZW5cIDsKK+mAvyA+IHRvdVwgOwor6YCzID4gaWt1XCA7CivpgLAgPiB5dXVcIDsKK+mAriA+IHRhaVwgOwor6YCtID4ga2FuXCA7CivpgKwgPiBob3VcIDsKK+mAqCA+IHJhaVwgOwor6YClID4ga2FpXCA7CivpgJcgPiB0b3VcIDsKK+mAlSA+IGtlaVwgOwor6YCTID4gdGVpXCA7CivpgIwgPiB5dXVcIDsKK+mAiCA+IGtlaVwgOwor6YCEID4gaG91XCA7Civov7ogPiBkYWlcIDsKK+i/uCA+IGhvdVwgOwor6L+2ID4geXV1XCA7Civov7UgPiB0b3VcIDsKK+i/tCA+IGthaVwgOwor6L+vID4gdG91XCA7Civov6ggPiB0YWlcIDsKK+i/oyA+IHNlaVwgOwor6L+SID4ga291XCA7Civov4ogPiBzb3VcIDsKK+i/gSA+IHNlblwgOwor6L+AID4ga2FuXCA7CivovrkgPiBoZW5cIDsKK+i+riA+IGhlblwgOwor6L6oID4gYmVuXCA7CivovqcgPiBiZW5cIDsKK+i+piA+IGhhblwgOwor6L6hID4gaGVuXCA7CivovqAgPiBzYWlcIDsKK+i9pSA+IHJpblwgOwor6L2eID4ga2FuXCA7CivovZggPiBrYW5cIDsKK+i9lyA+IGthblwgOwor6L2UID4gcmluXCA7CivovZMgPiBoYW5cIDsKK+i9kiA+IGh1blwgOwor6L2RID4gcmF1XCA7CivovY8gPiBzYW5cIDsKK+i9hyA+IGtvdVwgOwor6L2BID4gdG91XCA7CivovL4gPiB0ZW5cIDsKK+i8uiA+IHNoaVwgOwor6Ly3ID4ga291XCA7CivovLYgPiB5dXVcIDsKK+i8syA+IHNvdVwgOwor6LyuID4ganV1XCA7CivovK0gPiB6ZW5cIDsKK+i8qCA+IGthblwgOwor6LymID4gcmVuXCA7CivovKUgPiBrb25cIDsKK+i8oyA+IGhvdVwgOwor6LyhID4ga2FuXCA7CivovJ4gPiBib3VcIDsKK+i8nCA+IHNoaVwgOwor6LyXID4gZ2VpXCA7CivovJMgPiBiYW5cIDsKK+i8kCA+IGthblwgOwor6LyPID4geXV1XCA7CivovIogPiBjaGlcIDsKK+i8hyA+IHNlblwgOwor6Lu6ID4geW91XCA7Civou7kgPiBzaGlcIDsKK+i7sCA+IGhhaVwgOwor6LuoID4gcmVpXCA7Civou6MgPiBnb3VcIDsKK+i7oCA+IGppblwgOwor6LufID4gbmFuXCA7Civou5wgPiBkb3VcIDsKK+i7myA+IGFrdVwgOwor6LuUID4gamluXCA7Civou5EgPiB0ZWlcIDsKK+i7kCA+IHNlblwgOwor6LuHID4gdG91XCA7Civou4YgPiB0ZWlcIDsKK+i7gSA+IHJvdVwgOwor6Lq6ID4gdG91XCA7CivourAgPiB0ZWlcIDsKK+i6rSA+IHRhblwgOwor6LqqID4gcmluXCA7CivouqcgPiBzaGlcIDsKK+i6oiA+IHRvdVwgOwor6LqhID4gam91XCA7Civoup0gPiByYW5cIDsKK+i6miA+IHNlblwgOwor6LqZID4gcmluXCA7CivoupUgPiBjaHVcIDsKK+i6lCA+IHRlblwgOwor6LqLID4gc2VpXCA7CivouokgPiB0b25cIDsKK+i6gSA+IHNvdVwgOwor6Lm5ID4gdG91XCA7Civoua8gPiBoYW5cIDsKK+i5rSA+IHNvdVwgOwor6LmsID4gdG91XCA7CivouaMgPiBtYW5cIDsKK+i5oSA+IHlvdVwgOwor6LmdID4gc2hpXCA7CivouZsgPiB0YWlcIDsKK+i5lCA+IHNhblwgOwor6LmPID4gdGVpXCA7CivouY4gPiB0ZW5cIDsKK+i5jSA+IHRlblwgOwor6LmLID4gdG91XCA7CivouYogPiBrZWlcIDsKK+i5iCA+IHRvdVwgOwor6LmHID4ga2VuXCA7CivouYIgPiBqdXVcIDsKK+i5gSA+IGhlblwgOwor6Li5ID4gc2VuXCA7CivouLYgPiB0ZWlcIDsKK+i4tCA+IHlvdVwgOwor6LijID4gaG91XCA7CivouKEgPiBrZW5cIDsKK+i4niA+IGt5b1wgOwor6LiUID4gdG91XCA7CivouJAgPiBzZW5cIDsKK+i4iCA+IHNob1wgOwor6LiFID4gdGVpXCA7CivouIEgPiBrZWlcIDsKK+i3tSA+IHNlblwgOwor6Le0ID4gc2FpXCA7Civot7IgPiBrb3VcIDsKK+i3sSA+IGNoaVwgOwor6LewID4gaG91XCA7Civot6cgPiBzZW5cIDsKK+i3pCA+IGtvdVwgOwor6LeaID4gc2FuXCA7Civot5kgPiBzaG9cIDsKK+i3kSA+IGhvdVwgOwor6LeKID4gYmFpXCA7Civot4ggPiBkZW5cIDsKK+i3hiA+IHRhaVwgOwor6La+ID4gc2hpXCA7CivotrwgPiBnZW5cIDsKK+i2siA+IHNhblwgOwor6LavID4ga2FuXCA7CivotqggPiBzdXVcIDsKK+i2piA+IHNoaVwgOwor6LafID4gdG91XCA7CivotpUgPiBrYW5cIDsKK+i2kSA+IHNoaVwgOwor6LaNID4gY2hpXCA7CivotoggPiB0YW5cIDsKK+i2hCA+IHNob1wgOwor6LW/ID4gY2hpXCA7CivotbEgPiBzb3VcIDsKK+i1rSA+IHNoYVwgOwor6LWsID4gdGVpXCA7CivotaYgPiBzaGFcIDsKK+i0nCA+IHpvdVwgOwor6LSbID4ga291XCA7CivotJcgPiBrZW5cIDsKK+i0kyA+IHpvdVwgOwor6LSSID4ga2VuXCA7CivotI0gPiBzZW5cIDsKK+i0iiA+IHNhblwgOwor6LSJID4gdGFuXCA7CivotIggPiB6b3VcIDsKK+i0hCA+IHNoaVwgOwor6LSDID4gd2FuXCA7CivotIEgPiBoYWlcIDsKK+izvyA+IHJvdVwgOwor6LO4ID4geW91XCA7Civos7cgPiBzZWlcIDsKK+iztSA+IGh1dVwgOwor6LO0ID4gcmFpXCA7Civos7IgPiBob3VcIDsKK+izryA+IGtlaVwgOwor6LOoID4gc291XCA7Civos6QgPiBzZW5cIDsKK+izoCA+IGJhaVwgOwor6LOcID4gc2hpXCA7Civos5sgPiBzYW5cIDsKK+izmiA+IHJhaVwgOwor6LOWID4gc2hhXCA7Civos5QgPiBoaW5cIDsKK+izkyA+IGhpblwgOwor6LOSID4gc2hhXCA7Civos44gPiBzZW5cIDsKK+izjSA+IHNvdVwgOwor6LOLID4ga291XCA7Civos4YgPiBoZW5cIDsKK+izhSA+IGthaVwgOwor6LOEID4gd2FpXCA7Civosr8gPiBib3VcIDsKK+iyuSA+IHNlaVwgOwor6LK2ID4gaGVuXCA7CivosrIgPiBzaGlcIDsKK+iyqyA+IGthblwgOwor6LKqID4gZG9uXCA7CivosqkgPiBoYW5cIDsKK+iyoiA+IGtvdVwgOwor6LKbID4ga2FuXCA7CivospkgPiBjaHVcIDsKK+iykiA+IHRhblwgOwor6LKOID4gZ2VpXCA7CivosowgPiBib3VcIDsKK+iyiyA+IGthblwgOwor6LKHID4ga29uXCA7CivosoYgPiBrYW5cIDsKK+ixuyA+IGthblwgOwor6LG6ID4gc2FpXCA7CivosbggPiBjaGlcIDsKK+ixtiA+IGh1blwgOwor6LG1ID4gc291XCA7CivosbMgPiBoaW5cIDsKK+ixrCA+IGNob1wgOwor6LGpID4gaGluXCA7CivosaYgPiBreW9cIDsKK+ixpCA+IGtvblwgOwor6LGjID4ga2VuXCA7CivosaIgPiBrZW5cIDsKK+ixnCA+IGtlblwgOwor6LGbID4gZWtpXCA7CivosZggPiB0b25cIDsKK+ixlSA+IHNoaVwgOwor6LGPID4ga2FuXCA7CivosYsgPiB0b3VcIDsKK+ixiSA+IHNoaVwgOwor6LGHID4ga291XCA7CivosYUgPiByb3VcIDsKK+iwvyA+IGtlaVwgOwor6LC+ID4ga291XCA7CivosL0gPiBrYW5cIDsKK+iwuSA+IGtvdVwgOwor6LC4ID4gc2VuXCA7CivorpwgPiB0b3VcIDsKK+iumiA+IHNhblwgOwor6K6ZID4ga2FuXCA7CivorpUgPiByYW5cIDsKK+iukyA+IGpvdVwgOwor6K6SID4gc2FuXCA7Civorb4gPiBzZW5cIDsKK+itvCA+IGthblwgOwor6K25ID4ga291XCA7CivorbYgPiB0b3VcIDsKK+ittCA+IGtlblwgOwor6K2xID4gemVuXCA7CivoraMgPiBzZW5cIDsKK+itnyA+IHNvdVwgOwor6K2eID4ga2VuXCA7CivorZogPiB0YW5cIDsKK+itlCA+IHNlblwgOwor6K2TID4ga2VpXCA7CivorY0gPiB5b3VcIDsKK+itiCA+IHRhaVwgOwor6K2EID4gc291XCA7CivorYIgPiBzZW5cIDsKK+isviA+IGJhblwgOwor6KywID4gcmVuXCA7CivorK0gPiBzZWlcIDsKK+ispiA+IGtlaVwgOwor6KygID4geW91XCA7CivorJ8gPiB0b3VcIDsKK+isnCA+IGdlblwgOwor6KyaID4gc2hpXCA7CivorJcgPiBib3VcIDsKK+iskSA+IGtlaVwgOwor6KyKID4ga291XCA7CivorIcgPiBrZW5cIDsKK+ishiA+IHNlblwgOwor6KyFID4gc291XCA7CivorIQgPiB0b3VcIDsKK+irvCA+IGtlblwgOwor6Ku3ID4gZnV1XCA7Civoq7UgPiBuYW5cIDsKK+irtCA+IGthblwgOwor6KuwID4gc2hpXCA7Civoq64gPiBzaGlcIDsKK+irrCA+IGtlaVwgOwor6KurID4ga2FuXCA7Civoq6cgPiBrYWlcIDsKK+iroiA+IGtvblwgOwor6KuhID4gc2hpXCA7Civoq6AgPiBrZW5cIDsKK+irnyA+IHNoaVwgOwor6KueID4gaGVuXCA7Civoq50gPiBzaG9cIDsKK+irmiA+IGpvdVwgOwor6KuVID4ga291XCA7Civoq5MgPiBzZW5cIDsKK+irjyA+IHNodVwgOwor6KuNID4gc291XCA7Civoq4wgPiBrYW5cIDsKK+iriSA+IHp1aVwgOwor6KuIID4gc3VpXCA7Civoq4QgPiBqdW5cIDsKK+irgiA+IHRlblwgOwor6Kq+ID4gZ2luXCA7CivoqrsgPiB0b3VcIDsKK+iqtyA+IGJvdVwgOwor6Kq2ID4gc3VpXCA7CivoqqkgPiBrZWlcIDsKK+iqqCA+IGthaVwgOwor6KqlID4ga291XCA7CivoqqEgPiBrYWlcIDsKK+iqnyA+IGtvdVwgOwor6KqZID4ga291XCA7CivoqpcgPiB0ZW5cIDsKK+iqlSA+IHRhblwgOwor6KqPID4gcm91XCA7CivoqoMgPiBzaGlcIDsKK+ipvyA+IGthaVwgOwor6Km8ID4ga2FpXCA7CivoqbogPiBiaWlcIDsKK+ipuSA+IHNlblwgOwor6Km3ID4gdG91XCA7CivoqawgPiBrb3VcIDsKK+ippSA+IGtvdVwgOwor6KmjID4ga2VpXCA7CivoqaIgPiBqdW5cIDsKK+ipnSA+IGNob1wgOwor6KmcID4gdG91XCA7CivoqZMgPiBreW9cIDsKK+ipkiA+IHRhaVwgOwor6KmOID4ga3lvXCA7CivoqYkgPiBkb3VcIDsKK+iphyA+IHlvdVwgOwor6KmGID4gdGVpXCA7CivoqYUgPiByZWlcIDsKK+ipgyA+IGtlblwgOwor6KmAID4gdGFuXCA7CivoqL4gPiBzaGlcIDsKK+iovSA+IGtvdVwgOwor6Ki1ID4gY2hpXCA7CivoqKwgPiBzb3VcIDsKK+iopCA+IGtvblwgOwor6KiiID4ga2luXCA7CivoqJ4gPiB5b3VcIDsKK+iolSA+IHNhblwgOwor6KiUID4gZ2luXCA7CivoqJMgPiBrdW5cIDsKK+iokiA+IGppblwgOwor6KiRID4gc2hpXCA7CivoqI4gPiB0b3VcIDsKK+iojCA+IGtvdVwgOwor6KiHID4ga291XCA7CivoqIIgPiB0ZWlcIDsKK+invyA+IGtlaVwgOwor6Ke9ID4ga2VpXCA7Civop7kgPiBrZWlcIDsKK+intiA+IHNoaVwgOwor6KenID4ga2FpXCA7Civop6UgPiBrb3VcIDsKK+innSA+IHRlaVwgOwor6KecID4gc2hpXCA7Civop5ggPiBzb3VcIDsKK+inlyA+IHNoaVwgOwor6KeUID4ga2luXCA7CivoprggPiBrYW5cIDsKK+imtyA+IHNodVwgOwor6Ka1ID4ga2FuXCA7CivoprQgPiB0b3VcIDsKK+imsiA+IGtpblwgOwor6KavID4ga291XCA7CivopqUgPiB0ZW5cIDsKK+imoCA+IGtpblwgOwor6KafID4gc2hpXCA7CivoppggPiB0ZW5cIDsKK+imlCA+IGVraVwgOwor6KaNID4gaGVuXCA7CivopowgPiBrYW5cIDsKK+imgyA+IHRhblwgOwor6KW+ID4gYWthXCA7Civopb0gPiByYW5cIDsKK+ilvCA+IGdlaVwgOwor6KW7ID4gaGFuXCA7CivopbogPiBrZW5cIDsKK+iltCA+IHJhblwgOwor6KWzID4gc2VuXCA7CivopbAgPiByYWlcIDsKK+iloiA+IHRhblwgOwor6KWgID4gdG91XCA7CivopZwgPiBzZW5cIDsKK+ilmyA+IGpvdVwgOwor6KWaID4gc3VpXCA7CivopZUgPiByYW5cIDsKK+iljCA+IHRhblwgOwor6KWJID4ga2FuXCA7CivopYQgPiBqb3VcIDsKK+ilgyA+IGhvdVwgOwor6KS5ID4gZ2VpXCA7CivopLAgPiBrZW5cIDsKK+ikqyA+IGNoaVwgOwor6KSnID4ga2VpXCA7CivopKYgPiBkYWlcIDsKK+ikoCA+IGtvdVwgOwor6KSdID4gdGFuXCA7CivopJwgPiBlbmFcIDsKK+ikmiA+IGNob1wgOwor6KSZID4gaGFpXCA7CivopJYgPiB0YW5cIDsKK+ikjyA+IHl1dVwgOwor6KSNID4gdGFuXCA7CivopIogPiBoZW5cIDsKK+ikhiA+IHNoaVwgOwor6KSCID4ga2FpXCA7Civoo7UgPiBoYWlcIDsKK+ijtCA+IGhhaVwgOwor6KOqID4gdGF1XCA7Civoo6cgPiBzZW5cIDsKK+ijniA+IHNlaVwgOwor6KOZID4ga3VuXCA7Civoo5IgPiBob3VcIDsKK+ijjiA+IHRlaVwgOwor6KONID4ga29uXCA7Civoo4wgPiBrb3VcIDsKK+ijiyA+IHNodVwgOwor6KOKID4gam91XCA7Civoo4ggPiBrb25cIDsKK+iivyA+IGtlaVwgOwor6KK+ID4gY2h1XCA7CivoorUgPiBqaW5cIDsKK+iisyA+IHNoaVwgOwor6KKqID4ga3lvXCA7CivooqggPiBrZW5cIDsKK+iipCA+IGJvdVwgOwor6KKeID4ga29uXCA7CivoopsgPiB0ZWlcIDsKK+iikiA+IHRhblwgOwor6KKNID4gaG91XCA7CivoooAgPiBraW5cIDsKK+ihvyA+IGVyaVwgOwor6KG9ID4gamluXCA7CivoobsgPiB6ZW5cIDsKK+ihsiA+IGRvdVwgOwor6KGuID4ga29uXCA7CivooasgPiBzYW5cIDsKK+ihqSA+IHNhaVwgOwor6KGmID4ga2FuXCA7CivooZ8gPiBkb3VcIDsKK+ihnCA+IGRvdVwgOwor6KGZID4gZ3lvXCA7CivooZggPiBrYW5cIDsKK+ihliA+IGtvdVwgOwor6KGVID4gdG91XCA7CivooZIgPiBrZW5cIDsKK+ihkSA+IHJlaVwgOwor6KGOID4ga2FuXCA7CivooYUgPiBraW5cIDsKK+ihgyA+IGhhaVwgOwor6KGBID4ga291XCA7CivooLsgPiBiYW5cIDsKK+iguiA+IHNhblwgOwor6KC1ID4ga2VpXCA7CivooLIgPiBrZW5cIDsKK+igrSA+IGhvdVwgOwor6KCjID4gcmVpXCA7CivooKEgPiByZWlcIDsKK+ignyA+IHJvdVwgOwor6KCcID4gaGFuXCA7CivooJkgPiBoZW5cIDsKK+iglCA+IGtvdVwgOwor6KCTID4gYm91XCA7CivooJIgPiBrZW5cIDsKK+igkCA+IHNlaVwgOwor6KCPID4ga2FpXCA7CivooIogPiByZW5cIDsKK+igiSA+IGtlblwgOwor6KCGID4gdGFpXCA7CivooIUgPiB5b3VcIDsKK+ifvyA+IGtlaVwgOwor6J++ID4gc2VuXCA7Civon7ogPiBzZW5cIDsKK+ifuCA+IHJlaVwgOwor6J+3ID4gdG91XCA7Civon7YgPiB0ZWlcIDsKK+ifsyA+IGppblwgOwor6J+xID4gYm91XCA7Civon6wgPiBzZW5cIDsKK+ifqiA+IGtlaVwgOwor6J+kID4gc2VuXCA7Civon6AgPiBoYW5cIDsKK+ifmiA+IGhvdVwgOwor6J+WID4gc2hpXCA7Civon5UgPiBzdWlcIDsKK+ifkiA+IGJvdVwgOwor6J+QID4gdG91XCA7Civon4ogPiBib3VcIDsKK+ifgSA+IGJ1blwgOwor6J67ID4gcm91XCA7CivonrMgPiB0b3VcIDsKK+ieryA+IGdvdVwgOwor6J6uID4gdGVpXCA7Civonq0gPiBjaGlcIDsKK+ierCA+IHNvdVwgOwor6J6nID4gZWJpXCA7CivonqMgPiB0b3VcIDsKK+ienyA+IG1laVwgOwor6J6XID4gdG91XCA7CivonpUgPiBoZWlcIDsKK+iejCA+IGhhblwgOwor6J6IID4gZ2VuXCA7CivonocgPiBrZWlcIDsKK+iehiA+IHNoaVwgOwor6J6FID4gc2hpXCA7CivonoQgPiBzaGlcIDsKK+iegyA+IGhvdVwgOwor6J6CID4gcm91XCA7CivonbsgPiBuYW5cIDsKK+idsSA+IG1vdVwgOwor6J2qID4gdG91XCA7CivonaYgPiBlYmlcIDsKK+idpSA+IGJvdVwgOwor6J2jID4geXV1XCA7CivonaEgPiB6ZW5cIDsKK+idlyA+IGtvdVwgOwor6J2FID4gc2FuXCA7CivonYMgPiB0ZWlcIDsKK+idgCA+IHRvdVwgOwor6Jy6ID4gZ2VpXCA7CivonLkgPiB6ZWlcIDsKK+ictyA+IGtlblwgOwor6Jy0ID4gZWtpXCA7CivonK8gPiBob3VcIDsKK+icoSA+IHNob1wgOwor6JyfID4gaWt1XCA7CivonJYgPiBrYWlcIDsKK+iclSA+IHplaVwgOwor6JyUID4gdGVuXCA7CivonJMgPiB0ZW5cIDsKK+ickSA+IHRhblwgOwor6JyPID4geXV1XCA7CivonI0gPiBzaG9cIDsKK+iciyA+IHJvdVwgOwor6Ju9ID4gYmFpXCA7Civom7wgPiBzaGFcIDsKK+ibuyA+IHplaVwgOwor6JuvID4gZWJpXCA7Civom64gPiBiYW5cIDsKK+ibpyA+IGJvdVwgOwor6JugID4gcmVpXCA7Civom58gPiBrb3VcIDsKK+iblyA+IGh1dVwgOwor6JuVID4ga2FpXCA7Civom5QgPiBrYWlcIDsKK+ibkSA+IGJvdVwgOwor6JuOID4gcmVpXCA7Civom4sgPiB0YW5cIDsKK+ibhSA+IHplblwgOwor6JuDID4gaGVpXCA7Civom4AgPiBzaHVcIDsKK+iavyA+IGtlblwgOwor6Jq3ID4ga3lvXCA7CivomrYgPiBrYW5cIDsKK+iatCA+IHl1dVwgOwor6JqzID4gY2hpXCA7CivomrAgPiB5dXVcIDsKK+iaqyA+IGhvdVwgOwor6JqqID4gdG91XCA7CivomqkgPiBzaGlcIDsKK+iapyA+IGthaVwgOwor6JqmID4gemVuXCA7CivomqMgPiBrb3VcIDsKK+iaoSA+IGh1blwgOwor6JqYID4ga2FpXCA7CivompYgPiBnZW5cIDsKK+iajCA+IGhvdVwgOwor6JqIID4ga2VuXCA7CivombsgPiBhYnVcIDsKK+iZtyA+IGthblwgOwor6Jm1ID4gc2hhXCA7CivomaQgPiBnYW5cIDsKK+iZoyA+IGhvdVwgOwor6JmiID4gaG91XCA7CivomaEgPiBreW9cIDsKK+iZoCA+IGtvdVwgOwor6JmbID4ga3lvXCA7CivomZcgPiBreW9cIDsKK+iZlCA+IGtlblwgOwor6JmTID4ga291XCA7CivomZIgPiBzaGlcIDsKK+iZhiA+IHJ1aVwgOwor6JmAID4gc2VpXCA7CivomLggPiBzYW5cIDsKK+iYryA+IHRvdVwgOwor6JipID4gaGFuXCA7CivomKIgPiByb3VcIDsKK+iYniA+IHJlblwgOwor6JibID4gaWt1XCA7CivomJogPiBzZW5cIDsKK+iYmCA+IGpvdVwgOwor6JiQID4ga2VuXCA7CivomI8gPiBrZWlcIDsKK+iYjSA+IGt1blwgOwor6JiLID4gaGluXCA7CivomIUgPiBrb3VcIDsKK+iXviA+IHJhaVwgOwor6Je8ID4ga2VuXCA7Civol7ogPiByaW5cIDsKK+iXtyA+IHNob1wgOwor6JezID4ga291XCA7Civol58gPiBydWlcIDsKK+iXmCA+IHJ5b1wgOwor6JeVID4gZ3V1XCA7Civol48gPiB6b3VcIDsKK+iXiiA+IGhlblwgOwor6JeHID4gc2hvXCA7Civol4IgPiBzb3VcIDsKK+iWviA+IHNoaVwgOwor6Ja5ID4gdGFpXCA7CivolrYgPiBiYWlcIDsKK+iWtCA+IG5vdVwgOwor6JawID4ga3VuXCA7Civolq0gPiBoYWlcIDsKK+iWqyA+IGt1blwgOwor6JaoID4ga291XCA7CivolqcgPiBrb3VcIDsKK+iWpCA+IGthaVwgOwor6JaiID4ga2FpXCA7CivolqAgPiBoYW5cIDsKK+iWnyA+IHJlblwgOwor6JadID4gc2VuXCA7CivolpkgPiB0ZWlcIDsKK+iWkCA+IHJvdVwgOwor6JaLID4gc2hpXCA7CivolokgPiB3YWlcIDsKK+iWiCA+IGthaVwgOwor6JaFID4ga291XCA7CivoloEgPiBpa3VcIDsKK+iVvyA+IGtlblwgOwor6JW9ID4gZG91XCA7CivolbsgPiBrb3VcIDsKK+iVuSA+IHlvdVwgOwor6JWvID4gcm91XCA7CivolasgPiB0b3VcIDsKK+iVpCA+IHp1aVwgOwor6JWiID4ga2FpXCA7CivolaEgPiBodW5cIDsKK+iVniA+IHNhaVwgOwor6JWZID4ga2VpXCA7CivolZggPiBqb3VcIDsKK+iVliA+IGt5b1wgOwor6JWVID4geXV1XCA7CivolZIgPiBiYWlcIDsKK+iVkSA+IGthblwgOwor6JWPID4gY2hvXCA7CivolYsgPiB6dWlcIDsKK+iViiA+IHp1aVwgOwor6JWGID4gdGVuXCA7CivolYMgPiBiYW5cIDsKK+iVgSA+IGppblwgOwor6JSzID4gc2VuXCA7CivolLIgPiBrb3VcIDsKK+iUqiA+IHNlblwgOwor6JSnID4gc2VpXCA7CivolKUgPiBzb3VcIDsKK+iUoSA+IHNhaVwgOwor6JSeID4gcm91XCA7CivolJwgPiBnb3VcIDsKK+iUlyA+IHNob1wgOwor6JSTID4gYmFuXCA7CivolIIgPiBydWlcIDsKK+iUgCA+IGhvdVwgOwor6JO6ID4gZ2VpXCA7Civok7cgPiB0YWlcIDsKK+iTsSA+IGhlaVwgOwor6JOwID4gc2hpXCA7Civok68gPiBzb3VcIDsKK+iTqiA+IHRvdVwgOwor6JOcID4gaGFpXCA7Civok5MgPiBoYWlcIDsKK+iTjSA+IHNoaVwgOwor6JOJID4geW91XCA7Civok4ggPiBrb3VcIDsKK+iTgiA+IG1laVwgOwor6JOAID4gc29uXCA7Civokr8gPiBrb3VcIDsKK+iSviA+IGJlaVwgOwor6JK5ID4ga2VuXCA7Civokq8gPiBrYWlcIDsKK+iSrSA+IHN1dVwgOwor6JKoID4gc2VuXCA7CivokqEgPiBob3VcIDsKK+iSkyA+IGp1blwgOwor6JKSID4gc2hpXCA7CivokoQgPiBrYW5cIDsKK+iSgiA+IHRlaVwgOwor6JG9ID4geW91XCA7CivokbwgPiBzb3VcIDsKK+iRuSA+IHNoaVwgOwor6JG4ID4gc2FpXCA7CivokbcgPiBndW5cIDsKK+iRtiA+IHRlaVwgOwor6JG1ID4gYW9pXCA7CivokbAgPiBzdWlcIDsKK+iRriA+IHRhblwgOwor6JGqID4ga2VpXCA7CivokaUgPiBzZW5cIDsKK+iRoiA+IGdhaVwgOwor6JGYID4gc2hpXCA7CivokZIgPiBrb3VcIDsKK+iRkSA+IGhvdVwgOwor6JGPID4gc2VuXCA7CivokYggPiBzaGlcIDsKK+iRhyA+IGp1dVwgOwor6JGFID4gc2hvXCA7CivokLkgPiBoZW5cIDsKK+iQsSA+IGtlblwgOwor6JCvID4gaHV1XCA7CivokKAgPiBob3VcIDsKK+iQlSA+IHNlaVwgOwor6JCRID4ga2FuXCA7CivokI8gPiB0YW5cIDsKK+iQjSA+IGhlaVwgOwor6JCLID4gc2VpXCA7CivokIogPiByYWlcIDsKK+iQgyA+IHN1aVwgOwor6I+8ID4gdGFuXCA7Civoj7sgPiByaW5cIDsKK+iPuSA+IHNob1wgOwor6I+3ID4gc291XCA7Civoj7YgPiBob3VcIDsKK+iPqiA+IHRvdVwgOwor6I+YID4gc3V1XCA7Civoj5EgPiBzaGlcIDsKK+iPjiA+IGtvblwgOwor6I+MID4ga2luXCA7Civoj4UgPiBrYW5cIDsKK+iPgSA+IHNlaVwgOwor6I6/ID4gc2hpXCA7Civojr4gPiBtb3VcIDsKK+iOvSA+IGJvdVwgOwor6I6xID4gcmFpXCA7CivojqwgPiBidW5cIDsKK+iOpyA+IGthblwgOwor6I6mID4gc291XCA7CivojqAgPiB5dXVcIDsKK+iOnyA+IGthblwgOwor6I6eID4ga2FuXCA7CivojpsgPiB0ZWlcIDsKK+iOmSA+IGtpblwgOwor6I6WID4ga2VpXCA7CivojpUgPiBrb3VcIDsKK+iOlCA+IG1vdVwgOwor6I6TID4gbWFpXCA7CivojpIgPiBreW9cIDsKK+iOiiA+IHNvdVwgOwor6I6JID4gY2hpXCA7CivojocgPiBjaG9cIDsKK+iOhCA+IGtvdVwgOwor6I2/ID4gc2VpXCA7CivojbsgPiBvZ2lcIDsKK+iNtSA+IGppblwgOwor6I2zID4gdG91XCA7CivojZggPiBzb3VcIDsKK+iNliA+IGhvdVwgOwor6I2VID4ga2luXCA7CivojZMgPiBoZWlcIDsKK+iNkSA+IHRlaVwgOwor6I2QID4gc2VuXCA7CivojY4gPiBjaGlcIDsKK+iNiiA+IGtlaVwgOwor6I2HID4ga291XCA7CivojYYgPiBrZWlcIDsKK+iNhSA+IHRvdVwgOwor6I2EID4ga2FpXCA7CivojYMgPiBzZW5cIDsKK+iNgCA+IGp1blwgOwor6Iy8ID4gdG91XCA7CivojLcgPiBoYWlcIDsKK+iMtCA+IGthaVwgOwor6IyzID4ga291XCA7CivojLEgPiBzaHVcIDsKK+iMrCA+IHNoaVwgOwor6IydID4gc2FpXCA7CivojJsgPiBrb25cIDsKK+iMlyA+IG1laVwgOwor6IyLID4gc2hpXCA7CivojIogPiBzaGlcIDsKK+iMiCA+IHNoaVwgOwor6IyGID4gYm91XCA7CivojIMgPiBoYW5cIDsKK+iLuSA+IGhlaVwgOwor6Iu3ID4ga2FuXCA7Civoi7MgPiB0b3VcIDsKK+iLryA+IGhvblwgOwor6IutID4geW91XCA7Civoi6sgPiBzZW5cIDsKK+iLqiA+IGhlaVwgOwor6IuoID4gZGVpXCA7Civoi6cgPiBjaG9cIDsKK+iLoyA+IGt5b1wgOwor6IugID4gYmluXCA7Civoi58gPiBrb3VcIDsKK+iLniA+IGhvdVwgOwor6IuaID4geW91XCA7Civoi5MgPiByZWlcIDsKK+iLkiA+IHplblwgOwor6IuQID4gdGVpXCA7Civoi4UgPiBnYWlcIDsKK+iKvyA+IGpvdVwgOwor6Iq8ID4gYm91XCA7CivoirsgPiBzdXVcIDsKK+iKtyA+IHNoaVwgOwor6IquID4gemVpXCA7CivoiqwgPiBmdW5cIDsKK+iKqyA+IGdlblwgOwor6IqpID4ga2luXCA7CivoiqcgPiBjaG9cIDsKK+iKpSA+IGthaVwgOwor6IqkID4ga291XCA7CivoiqMgPiBodXVcIDsKK+iKoSA+IGtlblwgOwor6IqgID4gYnVuXCA7Civoip8gPiBzYW5cIDsKK+iKmiA+IHRvblwgOwor6IqWID4gY2hpXCA7CivoiosgPiBpbW9cIDsKK+iKiiA+IHNlblwgOwor6IqJID4ga2FpXCA7CivoiocgPiBiZW5cIDsKK+iKhCA+IGthblwgOwor6IqDID4gaG91XCA7CivoioEgPiBrb3VcIDsKK+iJvyA+IGpvdVwgOwor6Im+ID4gZ2FpXCA7CivoibEgPiBrYW5cIDsKK+iJriA+IGtvblwgOwor6ImtID4gc291XCA7CivoiaggPiBtb3VcIDsKK+iJpiA+IGthblwgOwor6ImgID4gdG91XCA7CivoiZ8gPiBkb3VcIDsKK+iJnCA+IHRhaVwgOwor6ImaID4gc291XCA7CivoiZkgPiBzb3VcIDsKK+iJmCA+IHNvdVwgOwor6ImRID4gaGVuXCA7CivoiY4gPiBrb3VcIDsKK+iJiyA+IG1vdVwgOwor6ImHID4gdGVpXCA7CivoiYYgPiByb3VcIDsKK+iJhCA+IHNvdVwgOwor6Ii6ID4ga291XCA7CivoiLcgPiBrZW5cIDsKK+iIsiA+IHJlaVwgOwor6IirID4gaG91XCA7CivoiKkgPiBzZW5cIDsKK+iIqCA+IGhhblwgOwor6IiiID4gc2FuXCA7CivoiKEgPiBrb3VcIDsKK+iImyA+IHNlblwgOwor6IiaID4gdGVuXCA7CivoiJkgPiBrdXVcIDsKK+iImCA+IGthblwgOwor6IiUID4gdGVuXCA7CivoiJMgPiBzaGlcIDsKK+iIkCA+IHNoaVwgOwor6IiNID4gc2hhXCA7CivoiIkgPiBreW9cIDsKK+iIgCA+IHlvdVwgOwor6Ie/ID4gc291XCA7Civoh70gPiBrYW5cIDsKK+iHtiA+IHNlblwgOwor6IexID4gYmVuXCA7Civoh6cgPiB6b3VcIDsKK+iHpCA+IGthblwgOwor6IehID4gZGVpXCA7Civoh6AgPiByZW5cIDsKK+iHmiA+IHJ5b1wgOwor6IeYID4gcm91XCA7Civoh5cgPiBrb25cIDsKK+iHkyA+IHpvdVwgOwor6IeRID4gZGF1XCA7Civoh48gPiBoaW5cIDsKK+iHjiA+IHN1aVwgOwor6IeLID4gZGVuXCA7Civoh4ogPiBzb3VcIDsKK+iHiSA+IHJlblwgOwor6IeIID4gcm91XCA7Civoh4YgPiBva3VcIDsKK+iHgyA+IHlvdVwgOwor6IeAID4gZGVuXCA7Civohr4gPiBrYWlcIDsKK+iGuyA+IHRhblwgOwor6Ia6ID4geW91XCA7CivohrggPiB6dWlcIDsKK+iGtSA+IHN1aVwgOwor6IawID4gaGFuXCA7CivohqggPiBib3VcIDsKK+iGoiA+IHJvdVwgOwor6IaeID4gc2VuXCA7CivohpsgPiB0b3VcIDsKK+iGliA+IGhvdVwgOwor6IaQID4gcnlvXCA7Civoho8gPiBrb3VcIDsKK+iGjiA+IGthaVwgOwor6IaFID4gdG91XCA7CivohoIgPiByeW9cIDsKK+iGgSA+IGtlblwgOwor6IaAID4gaG91XCA7CivohbogPiBzZW5cIDsKK+iFsSA+IGtlblwgOwor6IWrID4gc2h1XCA7CivohakgPiBkYW5cIDsKK+iFqCA+IHNlblwgOwor6IWnID4gc2h1XCA7CivohaUgPiBzZWlcIDsKK+iFoCA+IHNvdVwgOwor6IWUID4ga291XCA7CivohZIgPiBreW9cIDsKK+iFjiA+IGppblwgOwor6IWMID4geW91XCA7CivohYcgPiBkYWlcIDsKK+iFhiA+IHRlblwgOwor6IWFID4gdGFuXCA7CivohYEgPiBoZW5cIDsKK+iEuiA+IHplaVwgOwor6ISwID4gdG91XCA7CivohKwgPiBob3VcIDsKK+iEpyA+IHNhaVwgOwor6ISgID4gc2VuXCA7CivohJggPiBrYW5cIDsKK+iElyA+IGJ1blwgOwor6ISGID4gemVpXCA7CivohIMgPiB6ZWlcIDsKK+iDviA+IHNoaVwgOwor6IO8ID4gaGVuXCA7Civog7YgPiBrb3VcIDsKK+iDsiA+IGthaVwgOwor6IOxID4ga291XCA7Civog64gPiBob3VcIDsKK+iDpSA+IHNob1wgOwor6IOgID4ga3lvXCA7Civog50gPiBjaGlcIDsKK+iDmyA+IGtvdVwgOwor6IOaID4gaGFpXCA7Civog5ggPiBrZW5cIDsKK+iDliA+IGhhblwgOwor6IOUID4gc2hpXCA7Civog5IgPiBkZWlcIDsKK+iDjyA+IHNoaVwgOwor6IK6ID4gaGFpXCA7CivogqwgPiB5dXVcIDsKK+iCqiA+IGJvdVwgOwor6IKnID4gaGFpXCA7CivogqYgPiBmdW5cIDsKK+iCoiA+IHNoaVwgOwor6IKcID4geXV1XCA7CivogpsgPiBrb3VcIDsKK+iCkyA+IGtvdVwgOwor6IKOID4ga291XCA7CivogbkgPiBkZWlcIDsKK+iBtiA+IGpvdVwgOwor6IG1ID4gZ2FpXCA7CivogbEgPiBnb3VcIDsKK+iBsCA+IHNvdVwgOwor6IGvID4gcmVuXCA7Civoga4gPiByZW5cIDsKK+iBqyA+IHJlblwgOwor6IGoID4gcmVuXCA7CivogaYgPiBzb3VcIDsKK+iBpCA+IHRlaVwgOwor6IGhID4gc291XCA7CivogaAgPiBoZWlcIDsKK+iBnyA+IHNlaVwgOwor6IGYID4gaGVpXCA7CivogYYgPiByZWlcIDsKK+iAvyA+IGtvdVwgOwor6IC+ID4ga291XCA7CivogLwgPiB0YW5cIDsKK+iAuSA+IGtpblwgOwor6IC3ID4gdG91XCA7CivogLUgPiB0ZWlcIDsKK+iAsCA+IHl1dVwgOwor6ICuID4gcm91XCA7CivogKwgPiByb3VcIDsKK+iAqCA+IGRvdVwgOwor6ICmID4gZ291XCA7CivogKAgPiBrb3VcIDsKK+iAnyA+IGt5b1wgOwor6ICdID4gc2hvXCA7CivogJwgPiBzaGlcIDsKK+iAlyA+IG1vdVwgOwor6ICWID4gc291XCA7CivogJQgPiBzaGlcIDsKK+iAkyA+IHRlaVwgOwor6ICSID4gcmFpXCA7CivogJEgPiB0YW5cIDsKK+iAjiA+IHplblwgOwor6ICJID4ga291XCA7CivogIggPiBrb3VcIDsKK+iAhyA+IGtvdVwgOwor6ICEID4gbW91XCA7CivogIAgPiB5b3VcIDsKK+e/vyA+IHRvdVwgOwor57++ID4ga2VuXCA7Civnv70gPiBrYWlcIDsKK+e/uiA+IGdvdVwgOwor57+wID4ga2FuXCA7Civnv6sgPiBnYW5cIDsKK+e/qSA+IGhlblwgOwor57+oID4gc2hpXCA7Civnv6YgPiBzZW5cIDsKK+e/pSA+IHNob1wgOwor57+jID4gc291XCA7Civnv6AgPiBzdWlcIDsKK+e/myA+IHl1dVwgOwor57+OID4gcmVpXCA7Civnv4ggPiBrb3VcIDsKK+e/hiA+IHN1aVwgOwor57+FID4gc2hpXCA7Civnv4MgPiBrb3VcIDsKK+e+vyA+IGdlaVwgOwor5768ID4gc2FuXCA7CivnvrggPiBydWlcIDsKK+e+tiA+IHNlblwgOwor5760ID4gc2VuXCA7CivnvqogPiB5b3VcIDsKK+e+piA+IGthblwgOwor576jID4gZ3VuXCA7CivnvqIgPiBqb3VcIDsKK+e+oSA+IHNlblwgOwor576dID4gdGVpXCA7CivnvpwgPiBjaG9cIDsKK+e+miA+IHJlaVwgOwor576YID4gc291XCA7CivnvpQgPiBrb3VcIDsKK+e+kSA+IHl1dVwgOwor576QID4geXV1XCA7Civnvo8gPiB5b3VcIDsKK+e+giA+IGtlblwgOwor572+ID4gc291XCA7Civnvb0gPiBrZWlcIDsKK+e9siA+IHNob1wgOwor572xID4gZ3VuXCA7CivnvasgPiBrZWlcIDsKK+e9qSA+IHRvdVwgOwor572lID4ga2VuXCA7CivnvaQgPiB0ZWlcIDsKK+e9oyA+IGthaVwgOwor572hID4ga291XCA7CivnvZ0gPiBzaGFcIDsKK+e9nCA+IHNodVwgOwor572VID4ga2FuXCA7CivnvZQgPiBtb3VcIDsKK+e9kyA+IG1vdVwgOwor572SID4gbW91XCA7CivnvZEgPiBib3VcIDsKK+e9jSA+IHJhaVwgOwor572HID4gc29uXCA7CivnvYQgPiBrZWlcIDsKK+e8vyA+IHRvdVwgOwor57y+ID4gaGVpXCA7CivnvLggPiBrb3VcIDsKK+e8tyA+IHNoYVwgOwor57y2ID4ga2FuXCA7CivnvJAgPiBzZW5cIDsKK+e7uSA+IHRvdVwgOwor57q7ID4gY2hvXCA7Civnuq4gPiBrb3VcIDsKK+e6niA+IHJlblwgOwor57qdID4gcnVpXCA7CivnupwgPiByYW5cIDsKK+e6myA+IHRvdVwgOwor57qaID4gc2hpXCA7CivnupggPiBzYWJcIDsKK+e6liA+IHNlblwgOwor57qUID4gc2FuXCA7CivnupAgPiBrb3VcIDsKK+e6jiA+IHNlblwgOwor57qNID4gcnVpXCA7CivnuoogPiBrb3VcIDsKK+e6iSA+IHNhblwgOwor57qHID4gcmFpXCA7CivnuoEgPiBrdW5cIDsKK+e5vyA+IHJhblwgOwor57m+ID4gdGVuXCA7Civnub0gPiBoaW5cIDsKK+e5uSA+IGVraVwgOwor57m4ID4gc3VpXCA7Civnua8gPiBrZW5cIDsKK+e5qyA+IGtlaVwgOwor57mkID4gc2FuXCA7CivnuaIgPiBrYWlcIDsKK+e5nyA+IHNlblwgOwor57mdID4ga2FuXCA7CivnuZkgPiBoYW5cIDsKK+e5liA+IHNhblwgOwor57mQID4ga2VpXCA7CivnuY4gPiBiaW5cIDsKK+e5iyA+IGtlaVwgOwor57mKID4gc2VuXCA7CivnuYcgPiB5b3VcIDsKK+e5hSA+IHNvdVwgOwor57mDID4gaG91XCA7CivnuL8gPiBzYW5cIDsKK+e4uiA+IHJlblwgOwor57i1ID4gYmFuXCA7CivnuLQgPiBrZW5cIDsKK+e4syA+IHRlblwgOwor57iyID4gcnVpXCA7CivnuKggPiBrb3VcIDsKK+e4pyA+IHRvdVwgOwor57ijID4ga2VuXCA7CivnuKIgPiB0b3VcIDsKK+e4oSA+IHNhaVwgOwor57iXID4gc2FpXCA7CivnuJIgPiBzaGlcIDsKK+e4kSA+IGtlblwgOwor57iGID4ga291XCA7CivnuIIgPiBzb3VcIDsKK+e3uyA+IGNoaVwgOwor57e6ID4ga2FpXCA7Civnt7kgPiB0ZWlcIDsKK+e3tiA+IGhlblwgOwor57e1ID4gc291XCA7Civnt7EgPiBrb3VcIDsKK+e3qyA+IHNvdVwgOwor57eqID4ga291XCA7Civnt6YgPiBzaGlcIDsKK+e3pSA+IGhvdVwgOwor57eiID4gYm91XCA7Civnt6EgPiBiaW5cIDsKK+e3niA+IHRhblwgOwor57ecID4gYmVuXCA7Civnt5ggPiBrYW5cIDsKK+e3liA+IHNob1wgOwor57eNID4gYmluXCA7Civnt4wgPiB6dWlcIDsKK+e3hyA+IHNoaVwgOwor57eEID4ga29uXCA7Civnt4IgPiB0YW5cIDsKK+e2uyA+IHRhblwgOwor57a4ID4gcmluXCA7CivntrcgPiBzYWlcIDsKK+e2tSA+IHNhaVwgOwor57azID4gaG91XCA7CivntrAgPiB3YW5cIDsKK+e2ryA+IHRvdVwgOwor57auID4ga2VpXCA7CivntqsgPiBzZW5cIDsKK+e2qiA+IHNlblwgOwor57ajID4ga2VuXCA7Civntp8gPiByZWlcIDsKK+e2nCA+IHNvdVwgOwor57aXID4gZ2VpXCA7CivntpEgPiBrb25cIDsKK+e2jyA+IHN1aVwgOwor57aLID4ga291XCA7CivntokgPiB0b3VcIDsKK+e2iCA+IHRlaVwgOwor57aGID4ga291XCA7CivntoIgPiB0b3VcIDsKK+e2gSA+IGhvdVwgOwor57W9ID4gcnlvXCA7CivntbsgPiBidW5cIDsKK+e1uiA+IGNoaVwgOwor57W4ID4ga2VuXCA7CivntbMgPiBrb3VcIDsKK+e1pyA+IHRvdVwgOwor57WiID4ga2VuXCA7CivntZsgPiBqb3VcIDsKK+e1miA+IGtvdVwgOwor57WZID4ga2FuXCA7CivntZYgPiBrb3VcIDsKK+e1kyA+IGthaVwgOwor57WRID4gc2h1XCA7CivntY4gPiBrb3VcIDsKK+e1jSA+IGppblwgOwor57WLID4ga291XCA7CivntYUgPiBrZWlcIDsKK+e1gyA+IGdlblwgOwor57WBID4gc2hpXCA7CivntL8gPiB0YWlcIDsKK+e0tSA+IGNob1wgOwor57StID4ga291XCA7CivntKogPiBzZWlcIDsKK+e0oyA+IHNhaVwgOwor57ShID4gYm91XCA7CivntJ4gPiB0YW5cIDsKK+e0nSA+IGppblwgOwor57SYID4ga291XCA7CivntJMgPiBzaG9cIDsKK+e0kiA+IGtlaVwgOwor57SRID4gaHV1XCA7CivntI8gPiB0b3VcIDsKK+e0iiA+IGJpblwgOwor57SJID4gamluXCA7CivntIggPiBrYW5cIDsKK+ezuyA+IGtlaVwgOwor57OyID4gcmVpXCA7Civns7AgPiBkYW5cIDsKK+ezqyA+IGthaVwgOwor57OpID4ga2FpXCA7Civns6YgPiBzaGlcIDsKK+ezpCA+IHNhblwgOwor57OfID4gc291XCA7Civns50gPiBzYW5cIDsKK+ezmiA+IHNvdVwgOwor57OZID4gc291XCA7Civns5UgPiBrb3VcIDsKK+ezjSA+IHNoaVwgOwor57OJID4gc291XCA7Civns4ggPiBzaG9cIDsKK+ezhyA+IGtvdVwgOwor57OFID4ganV1XCA7Civns4QgPiBoZW5cIDsKK+ezgiA+IHNhblwgOwor57K9ID4gc291XCA7CivnsrwgPiByaW5cIDsKK+eyuiA+IGhhaVwgOwor57K5ID4gc3VpXCA7CivnsrMgPiBrb3VcIDsKK+eysiA+IHNhblwgOwor57KwID4gZnV1XCA7CivnsqYgPiByaW5cIDsKK+eyoiA+IHNoaVwgOwor57KhID4gdG91XCA7CivnsqAgPiBrb3VcIDsKK+eyniA+IHNlaVwgOwor57KYID4gbmVuXCA7CivnspQgPiBreW9cIDsKK+eyiyA+IGlraVwgOwor57KHID4ga291XCA7Civnsb0gPiBzaGlcIDsKK+exvCA+IHNlblwgOwor57GtID4gc2hpXCA7CivnsakgPiBoZW5cIDsKK+expyA+IGt5b1wgOwor57GjID4gcmFuXCA7CivnsZ8gPiByYWlcIDsKK+exniA+IGd5b1wgOwor57GbID4gc2VuXCA7CivnsZggPiB0b3VcIDsKK+exkyA+IGhhblwgOwor57GRID4gc2VuXCA7CivnsYMgPiByYW5cIDsKK+ewvSA+IHNlblwgOwor57C6ID4gc2FpXCA7CivnsLkgPiB0b3VcIDsKK+ewtCA+IGt5b1wgOwor57CzID4ga2FuXCA7CivnsKcgPiBrb3VcIDsKK+ewpiA+IHRvdVwgOwor57CfID4gdGVuXCA7CivnsJ4gPiB0YW5cIDsKK+ewmyA+IHNoaVwgOwor57CTID4gc2VuXCA7CivnsJIgPiBzYW5cIDsKK+ewjSA+IHJvdVwgOwor57CHID4gc291XCA7CivnsIYgPiBrb3VcIDsKK+ewgSA+IHNoaVwgOwor56+8ID4gdG91XCA7Civnr7ogPiBoYWlcIDsKK+evuSA+IHNhblwgOwor56+3ID4gaG91XCA7Civnr7UgPiBzb3VcIDsKK+evsiA+IHN1aVwgOwor56+qID4gY2hpXCA7Civnr6ggPiBjaG9cIDsKK+evpiA+IGhlaVwgOwor56+hID4gc2FuXCA7Civnr50gPiBrb3VcIDsKK+evmSA+IGtvdVwgOwor56+WID4gdG91XCA7Civnr48gPiBrYW5cIDsKK+evjCA+IGtvdVwgOwor56+KID4ga291XCA7Civnr4ggPiBob3VcIDsKK+evhyA+IGhlblwgOwor56+GID4gdGVuXCA7Civnr4UgPiBzdWlcIDsKK+evgiA+IHNlaVwgOwor5669ID4gdG91XCA7CivnrrwgPiBva3VcIDsKK+eutSA+IHNlaVwgOwor566yID4gc2VuXCA7Civnrq8gPiBoZW5cIDsKK+eurSA+IHNlblwgOwor566gID4gc3VpXCA7Civnrp8gPiBraW5cIDsKK+euniA+IGtlblwgOwor566dID4ga2FuXCA7CivnrpwgPiBrb3VcIDsKK+eumCA+IGtpblwgOwor566WID4gcmluXCA7CivnrpEgPiBzb3VcIDsKK+eukCA+IHNlaVwgOwor566PID4gc291XCA7CivnrokgPiBrYWlcIDsKK+euhCA+IGhhaVwgOwor5623ID4ga2FpXCA7CivnrbMgPiB0ZWlcIDsKK+etsiA+IHNvdVwgOwor562vID4gY2hvXCA7Civnra4gPiBzZWlcIDsKK+etrSA+IHNhblwgOwor562sID4gc2VpXCA7CivnraogPiBrb3VcIDsKK+etqSA+IHRvdVwgOwor562mID4ga2FuXCA7CivnraUgPiBreW9cIDsKK+etpCA+IHJvdVwgOwor562dID4gc291XCA7CivnrZUgPiBrb3VcIDsKK+etjCA+IHNlblwgOwor562FID4gc2VuXCA7CivnrYAgPiBrZWlcIDsKK+estiA+IHNoaVwgOwor56y1ID4gaGFuXCA7CivnrLEgPiBrb3VcIDsKK+esrSA+IHJlaVwgOwor56yrID4gc2hpXCA7CivnrKogPiB0YW5cIDsKK+esqSA+IGhhaVwgOwor56yoID4gaG9uXCA7CivnrKMgPiBob3VcIDsKK+esniA+IGNoaVwgOwor56yZID4gc291XCA7CivnrJggPiBzZW5cIDsKK+esiyA+IGp1blwgOwor56yHID4gc2FuXCA7Civnq74gPiBzaGlcIDsKK+ervCA+IGhvdVwgOwor56u4ID4ga2VpXCA7Civnq7EgPiBzZW5cIDsKK+erqyA+IHNlaVwgOwor56uiID4gc2hpXCA7Civnq5sgPiByZWlcIDsKK+ermiA+IGNob1wgOwor56uZID4gdGFuXCA7Civnq5EgPiBrb3VcIDsKK+erjiA+IGZ1dVwgOwor56uMID4gc2hvXCA7Civnq4kgPiByb3VcIDsKK+erhyA+IHRvdVwgOwor56uEID4gemFuXCA7CivnqrwgPiBzb3VcIDsKK+equyA+IHNvdVwgOwor56qwID4geW91XCA7Civnqp4gPiB0YW5cIDsKK+eqmCA+IGtpblwgOwor56qXID4gc291XCA7CivnqpYgPiBrb3VcIDsKK+eqlCA+IHlvdVwgOwor56qRID4geW91XCA7CivnqpAgPiBrZWlcIDsKK+eqiCA+IHlvdVwgOwor56qGID4gYmluXCA7CivnqoUgPiB5b3VcIDsKK+eqgiA+IHJvdVwgOwor56m+ID4geW91XCA7Civnqb0gPiBzZWlcIDsKK+epsCA+IGpvdVwgOwor56mtID4gcnlvXCA7CivnqacgPiBzZWlcIDsKK+epoyA+IGpvdVwgOwor56mgID4gam91XCA7CivnqZ8gPiBzdWlcIDsKK+epnSA+IHNhaVwgOwor56mcID4gdG91XCA7CivnqYggPiBib25cIDsKK+ephyA+IHNhblwgOwor56mFID4ga291XCA7CivnqYQgPiBzZWlcIDsKK+epgyA+IHlvdVwgOwor56i+ID4ga291XCA7CivnqLogPiBjaGlcIDsKK+eotSA+IHNoaVwgOwor56i0ID4gcmVuXCA7CivnqLAgPiBzaG9cIDsKK+eoryA+IHNvdVwgOwor56inID4ga2VpXCA7CivnqJ8gPiByaW5cIDsKK+eomyA+IGtvblwgOwor56iXID4gaGllXCA7CivnqJQgPiBqaW5cIDsKK+eoiiA+IHRlaVwgOwor56iJID4ga291XCA7CivnqIggPiBrYW5cIDsKK+eohyA+IGtvblwgOwor56iFID4gemVpXCA7CivnqIIgPiByb3VcIDsKK+envCA+IHNodVwgOwor56exID4gdG91XCA7Civnp60gPiBzaGlcIDsKK+enrCA+IGt5b1wgOwor56eqID4gY2hpXCA7Civnp6UgPiBkZW5cIDsKK+enoiA+IHJlaVwgOwor56eeID4geXV1XCA7Civnp5ogPiBoYW5cIDsKK+enliA+IHNoaVwgOwor56eUID4ga291XCA7Civnp48gPiBrb3VcIDsKK+eniiA+IG5lblwgOwor56eJID4gaGVpXCA7Civnp4ggPiBzZW5cIDsKK+enhyA+IGdlaVwgOwor56eEID4gc2hpXCA7Civnp4IgPiBqaW5cIDsKK+emuyA+IGNoaVwgOwor56a6ID4gZ3V1XCA7CivnprggPiBqdXVcIDsKK+emsyA+IGpvdVwgOwor56axID4gdG91XCA7Civnpq8gPiBqb3VcIDsKK+emqyA+IHRhblwgOwor56aqID4gemVuXCA7CivnpqkgPiBzaGlcIDsKK+empiA+IGd5b1wgOwor56aYID4gdGVpXCA7CivnppYgPiBiYWlcIDsKK+emlCA+IHNoaVwgOwor56aTID4geW91XCA7Civnpo4gPiB0ZWlcIDsKK+emjCA+IHNoaVwgOwor56aAID4gcmluXCA7CivnpbwgPiBrYW5cIDsKK+eluSA+IHRvdVwgOwor56WrID4ga291XCA7CivnpakgPiBzaHVcIDsKK+eloiA+IGRlaVwgOwor56WgID4gc2hpXCA7CivnpZ8gPiBzdWlcIDsKK+elmyA+IGt5b1wgOwor56WYID4gc2FuXCA7CivnpZcgPiBzaGlcIDsKK+elkCA+IHl1dVwgOwor56WLID4gdGFpXCA7CivnpYogPiBob3VcIDsKK+eliSA+IHNoaVwgOwor56WGID4ga2VuXCA7CivnpYUgPiB5b3VcIDsKK+elhCA+IGthaVwgOwor56WAID4gc2hpXCA7CivnpL0gPiBqb3VcIDsKK+ekuyA+IHNoaVwgOwor56S1ID4gc291XCA7CivnpLEgPiByb3VcIDsKK+ekrCA+IGJhblwgOwor56SqID4gcmVpXCA7CivnpKcgPiByYWlcIDsKK+ekpiA+IGtvdVwgOwor56SlID4ga2luXCA7CivnpJ8gPiBob3VcIDsKK+ekniA+IGJvdVwgOwor56SaID4ga2FpXCA7CivnpJEgPiB0b3VcIDsKK+ekjCA+IHJhaVwgOwor56SHID4gaWt1XCA7CivnpIYgPiBrZW5cIDsKK+ekgCA+IGthblwgOwor56O9ID4ga291XCA7Civno7sgPiBoYW5cIDsKK+ejuiA+IGtvdVwgOwor56O3ID4gcmluXCA7Civno7QgPiB0b3VcIDsKK+ejsyA+IHNvdVwgOwor56OyID4ga3lvXCA7Civno6wgPiBrZWlcIDsKK+ejqiA+IHNhaVwgOwor56OhID4ga2FuXCA7Civno5sgPiBzYW5cIDsKK+ejmiA+IHNlblwgOwor56OWID4gcm91XCA7Civno5UgPiBrYWlcIDsKK+ejkyA+IHRhaVwgOwor56ORID4gZ2FpXCA7Civno44gPiBrZWlcIDsKK+ejjCA+IHRlblwgOwor56OKID4gcmFpXCA7Civno4kgPiBzb3VcIDsKK+ejhyA+IGhlaVwgOwor56OFID4gaG91XCA7Civnor4gPiB0ZW5cIDsKK+eivSA+IGtvdVwgOwor56KzID4gdGFuXCA7CivnorIgPiB0ZWlcIDsKK+eisSA+IGtlblwgOwor56KwID4gaG91XCA7Civnoq8gPiBkb3VcIDsKK+eirSA+IHRvdVwgOwor56KoID4gd2FpXCA7Civnop4gPiBnYW5cIDsKK+einSA+IHplblwgOwor56KaID4gaGFpXCA7CivnopggPiB0ZW5cIDsKK+eikyA+IHRhaVwgOwor56KOID4gc2FpXCA7Civnoo0gPiBnYWlcIDsKK+eiiiA+IHNlblwgOwor56KHID4gdGVpXCA7CivnobwgPiBob3VcIDsKK+ehryA+IGtlblwgOwor56GoID4gc2hhXCA7CivnoaQgPiBrb3VcIDsKK+ehoyA+IGtvdVwgOwor56GhID4ga291XCA7CivnoaAgPiByb3VcIDsKK+ehnCA+IGtvdVwgOwor56GZID4gZ2FpXCA7CivnoZIgPiBzZWlcIDsKK+ehjyA+IGtlblwgOwor56GOID4ga2VpXCA7CivnoYcgPiBkb3VcIDsKK+ehhSA+IGtlaVwgOwor56GEID4ga291XCA7CivnoYMgPiBzaHVcIDsKK+egvyA+IGtvdVwgOwor56C6ID4gcmVpXCA7CivnoLIgPiBob3VcIDsKK+egsCA+IGhvdVwgOwor56CtID4gaGVuXCA7CivnoKAgPiBzaG9cIDsKK+egjiA+IGthaVwgOwor56CNID4ga2FuXCA7CivnoIwgPiBzZWlcIDsKK+eghSA+IHJlaVwgOwor55+8ID4ga291XCA7Civnn7ggPiBrYW5cIDsKK+eftCA+IHRlaVwgOwor55+wID4gc291XCA7Civnn64gPiB3YWlcIDsKK+efpiA+IGtvdVwgOwor55+ZID4ga2FuXCA7Civnn5UgPiBiYW5cIDsKK+efkiA+IGJvdVwgOwor55+JID4gaGluXCA7Civnn4ggPiBiZW5cIDsKK+efhyA+IG1vdVwgOwor55+DID4gZ2VpXCA7CivnnrUgPiByaW5cIDsKK+eesSA+IHlvdVwgOwor556wID4ga2FuXCA7Civnnq8gPiBrYW5cIDsKK+eeqiA+IGRvdVwgOwor556iID4gYm91XCA7Civnnp4gPiBiYW5cIDsKK+eekSA+IG1laVwgOwor556NID4gc291XCA7CivnnowgPiBrb3VcIDsKK+eegCA+IGJvdVwgOwor552+ID4ga291XCA7Civnnb0gPiBrZWlcIDsKK+eduiA+IGtvdVwgOwor5520ID4ga29uXCA7CivnnbMgPiBrZWlcIDsKK+edsiA+IHNlaVwgOwor552sID4gc2FpXCA7CivnnaogPiBla2lcIDsKK+edpyA+IGtvblwgOwor552lID4gaGVpXCA7CivnnaQgPiBoZWlcIDsKK+edoCA+IGtlblwgOwor552fID4gc3VpXCA7CivnnZ4gPiByYWlcIDsKK+ednCA+IHNlaVwgOwor552bID4gc2VpXCA7CivnnZogPiBnYWlcIDsKK+edkiA+IHNlblwgOwor552PID4ga29uXCA7CivnnY0gPiBrZW5cIDsKK+edhyA+IHRlaVwgOwor552GID4ga2FuXCA7CivnnYUgPiBrYW5cIDsKK+ecuCA+IGJvdVwgOwor55y3ID4ga2VuXCA7CivnnLUgPiBzaGlcIDsKK+ectCA+IGtlblwgOwor55yvID4gYmVpXCA7CivnnK4gPiB0b3VcIDsKK+ecqCA+IHNvdVwgOwor55ymID4gc2VpXCA7CivnnKUgPiBzZWlcIDsKK+ecpCA+IHRlaVwgOwor55yiID4gd2FuXCA7CivnnJsgPiBtYWlcIDsKK+ecmiA+IHNlaVwgOwor55yZID4gY2hpXCA7CivnnJQgPiB0b3VcIDsKK+ecjiA+IHNoaVwgOwor55yKID4gYm91XCA7CivnnIggPiB0YW5cIDsKK+echiA+IGhvdVwgOwor55yEID4gYmVuXCA7CivnnIAgPiBiZWlcIDsKK+ebvCA+IGhhblwgOwor55u7ID4ga2VpXCA7Civnm7YgPiBnaW5cIDsKK+ebsCA+IGthblwgOwor55uqID4gdG91XCA7Civnm6ggPiBzaHVcIDsKK+ebpCA+IGJhblwgOwor55ugID4gcmVpXCA7Civnm58gPiBtZWlcIDsKK+ebniA+IHNhblwgOwor55uWID4gZ2FpXCA7Civnm5QgPiBrYWlcIDsKK+ebkiA+IGtvdVwgOwor55uNID4ga291XCA7Civnm4wgPiB3YW5cIDsKK+eavSA+IHRlblwgOwor55qoID4gc2VpXCA7CivnmqUgPiBrb3VcIDsKK+eaoyA+IHlvdVwgOwor55qgID4gc2FpXCA7Civnmp0gPiBrb3VcIDsKK+eanCA+IGtvdVwgOwor55qaID4gZ2FpXCA7CivnmpYgPiBrYW5cIDsKK+eakyA+IGtvdVwgOwor55qQID4ga291XCA7Civnmo4gPiBrb3VcIDsKK+eaiyA+IGtvdVwgOwor55qFID4gaGFlXCA7CivnmoMgPiBib3VcIDsKK+eagSA+IHNvdVwgOwor55m0ID4gcmVuXCA7CivnmbIgPiB0ZW5cIDsKK+eZsSA+IHRhblwgOwor55mwID4geW91XCA7CivnmawgPiBzZW5cIDsKK+eZqSA+IHJhaVwgOwor55miID4geW91XCA7CivnmaEgPiBjaGlcIDsKK+eZnCA+IGRlblwgOwor55mZID4gc2hvXCA7CivnmZggPiByZWlcIDsKK+eZlSA+IHlvdVwgOwor55mJID4gdGFuXCA7CivnmYggPiBoYWlcIDsKK+eZhiA+IHJvdVwgOwor55mAID4ga291XCA7CivnmLsgPiByb3VcIDsKK+eYuiA+IHJvdVwgOwor55i1ID4gc2FpXCA7CivnmLAgPiBydWlcIDsKK+eYqSA+IHRvdVwgOwor55imID4gc291XCA7CivnmKMgPiBrYWlcIDsKK+eYoiA+IGhhblwgOwor55ihID4gc291XCA7CivnmJ0gPiBrYW5cIDsKK+eYmyA+IHNlaVwgOwor55iZID4gc291XCA7CivnmJMgPiB0YW5cIDsKK+eYkiA+IGdvblwgOwor55iNID4geW91XCA7CivnmIsgPiBmdXVcIDsKK+eYiiA+IGtvdVwgOwor55iIID4ga2VpXCA7CivnmIEgPiBzdWlcIDsKK+eXsyA+IHJpblwgOwor55ewID4gdGFuXCA7Civnl68gPiBrYW5cIDsKK+eXrCA+IGVraVwgOwor55ejID4gYXphXCA7Civnl6AgPiBzYW5cIDsKK+eXmSA+IGtlaVwgOwor55eYID4gdG91XCA7Civnl5cgPiBiYWlcIDsKK+eXjiA+IGthaVwgOwor55eMID4gdG91XCA7Civnl4ogPiBzZW5cIDsKK+eXgyA+IGtlblwgOwor55eBID4gc2VuXCA7Civnlr0gPiBzaG9cIDsKK+eWvCA+IHRvdVwgOwor55a6ID4gaG91XCA7CivnlrggPiB0YW5cIDsKK+eWtSA+IHNoaVwgOwor55azID4ga2FuXCA7CivnlrEgPiBob3VcIDsKK+eWqyA+IGVraVwgOwor55alID4ga2FpXCA7CivnlqMgPiBpYm9cIDsKK+eWnSA+IHNhblwgOwor55aTID4gemFpXCA7CivnlpAgPiBjaGlcIDsKK+eWiSA+IGpvdVwgOwor55aCID4gam91XCA7CivnloEgPiByeXVcIDsKK+eVviA+IHN1aVwgOwor55W9ID4gdG9uXCA7CivnlaQgPiBzaGlcIDsKK+eVoSA+IGthaVwgOwor55WeID4gYm91XCA7CivnlZogPiBob25cIDsKK+eVlyA+IHRvdVwgOwor55WOID4ga2VuXCA7CivnlY0gPiBrYWlcIDsKK+eViyA+IHRlblwgOwor55WKID4ga291XCA7CivnlYggPiBoYW5cIDsKK+eUvyA+IG1vdVwgOwor55S+ID4gc2hpXCA7CivnlL0gPiBrZW5cIDsKK+eUuSA+IGhlaVwgOwor55S4ID4gdGVuXCA7CivnlLQgPiBzb3VcIDsKK+eUryA+IG5laVwgOwor55SsID4geW91XCA7CivnlKQgPiB6dWlcIDsKK+eUoiA+IHNhblwgOwor55SgID4gc2VpXCA7CivnlJwgPiB0ZW5cIDsKK+eUmyA+IHRlblwgOwor55SXID4gZ2VuXCA7CivnlJEgPiBzb3VcIDsKK+eUjiA+IHNlblwgOwor55SNID4gYm91XCA7CivnlIYgPiBzaGlcIDsKK+eUhCA+IGtlblwgOwor55SBID4gaGVpXCA7Civnk78gPiBob3VcIDsKK+eTuyA+IGNoaVwgOwor55O3ID4gc2hpXCA7Civnk7QgPiByaWlcIDsKK+eTsiA+IHRvblwgOwor55OrID4gaG9uXCA7Civnk6ogPiBoYW5cIDsKK+eTqCA+IGtvdVwgOwor55OjID4gYmVuXCA7Civnk5sgPiBrYW5cIDsKK+eTmiA+IHNhblwgOwor55OYID4ga2FuXCA7Civnk5MgPiByYW5cIDsKK+eTjyA+IHJvdVwgOwor55OMID4ga2FpXCA7Civnk4ogPiBrZWlcIDsKK+eTiSA+IHNhblwgOwor55OIID4gcmVpXCA7Civnkr8gPiBzZW5cIDsKK+eSuyA+IHN1aVwgOwor55KyID4gc3VpXCA7Civnkq8gPiBrYWlcIDsKK+eSriA+IHRhblwgOwor55KrID4gdG91XCA7CivnkqogPiBzb3VcIDsKK+eSqSA+IGt5b1wgOwor55KoID4gc2FuXCA7CivnkqAgPiBoYW5cIDsKK+eSnCA+IGtvdVwgOwor55KaID4ga2VpXCA7CivnkpggPiByaW5cIDsKK+eSkiA+IHRvdVwgOwor55KPID4gdGVpXCA7CivnkokgPiByaW5cIDsKK+eShyA+IHNlblwgOwor55KFID4gc291XCA7CivnkoEgPiBzb3VcIDsKK+eSgCA+IHNhaVwgOwor55G+ID4ga2luXCA7CivnkbYgPiB5b3VcIDsKK+eRsSA+IHRlblwgOwor55GwID4ga2FpXCA7Civnka8gPiByb3VcIDsKK+eRrSA+IHRvdVwgOwor55GrID4gdG91XCA7CivnkaQgPiB5b3VcIDsKK+eRoiA+IHlvdVwgOwor55GeID4genVpXCA7CivnkZ0gPiBrb3VcIDsKK+eRmSA+IGRvdVwgOwor55GRID4gdGVuXCA7CivnkY0gPiBrYW5cIDsKK+eRhyA+IHRhaVwgOwor55GGID4gc2VpXCA7CivnkYUgPiB0ZWlcIDsKK+eRhCA+IHNlblwgOwor55GBID4gYm91XCA7CivnkL8gPiBrb25cIDsKK+eQuiA+IGhvdVwgOwor55C5ID4ga2luXCA7CivnkLMgPiByaW5cIDsKK+eQryA+IGthblwgOwor55CuID4gc291XCA7CivnkKsgPiBob3VcIDsKK+eQqCA+IGtvblwgOwor55CkID4gc291XCA7CivnkJogPiBreW9cIDsKK+eQhSA+IHJvdVwgOwor55CEID4ga2VuXCA7CivnkIEgPiB6ZW5cIDsKK+eQgCA+IGthblwgOwor54+9ID4gdGVpXCA7Civnj7sgPiBiYWlcIDsKK+ePuiA+IGt1blwgOwor54+5ID4gc2VpXCA7Civnj7UgPiB0ZWlcIDsKK+ePriA+IGhhaVwgOwor54+tID4gaGFuXCA7Civnj6kgPiBrb3VcIDsKK+ePpyA+IHlvdVwgOwor54+iID4gZ2luXCA7Civnj6EgPiBraW5cIDsKK+ePoCA+IHNodVwgOwor54+WID4ga291XCA7Civnj5MgPiBrb3VcIDsKK+ePiiA+IHNhblwgOwor54+JID4gYmluXCA7Civnjr0gPiBrb3VcIDsKK+eOvCA+IHNlaVwgOwor5465ID4ga2VuXCA7CivnjrcgPiB0ZW5cIDsKK+eOtSA+IGdhblwgOwor546zID4gdGFpXCA7CivnjrIgPiByZWlcIDsKK+eOrSA+IGhpblwgOwor546rID4gYmFpXCA7CivnjqogPiBrYW5cIDsKK+eOoiA+IGhpblwgOwor546gID4ga2FpXCA7Civnjp8gPiBiaW5cIDsKK+eOnCA+IGtvdVwgOwor546VID4ga2FuXCA7Civnjo4gPiB0ZWlcIDsKK+eOgSA+IGtlblwgOwor5423ID4ga291XCA7CivnjbEgPiBoaW5cIDsKK+eNsCA+IGRvdVwgOwor542vID4ga3VuXCA7Civnja4gPiBzZW5cIDsKK+eNrCA+IGthaVwgOwor542rID4ga2VuXCA7CivnjaogPiBrYWlcIDsKK+eNqSA+IHdhaVwgOwor542nID4ga2VuXCA7CivnjZ4gPiB0b3VcIDsKK+eNmCA+IGhlaVwgOwor542WID4gZnVuXCA7CivnjZIgPiBnb3VcIDsKK+eNiiA+IHNvdVwgOwor542FID4gc2hpXCA7CivnjYMgPiBnYWlcIDsKK+eMvSA+IGJlaVwgOwor54y7ID4gc29uXCA7CivnjLogPiB5b3VcIDsKK+eMtyA+IHl1dVwgOwor54y1ID4gaGVuXCA7CivnjLQgPiBrb3VcIDsKK+eMsSA+IGRvdVwgOwor54yvID4gdGFuXCA7CivnjK4gPiBrZW5cIDsKK+eMqSA+IHNlaVwgOwor54ylID4gd2FpXCA7CivnjJ4gPiBzaGFcIDsKK+eMmyA+IG1vdVwgOwor54yZID4gc291XCA7CivnjJggPiBzZWlcIDsKK+eMjSA+IHJhaVwgOwor54yKID4gZ2VpXCA7CivnjIUgPiBoYWlcIDsKK+eMhCA+IGtlaVwgOwor54yCID4ga2FuXCA7Civni74gPiBzZWlcIDsKK+eLuyA+IHNhblwgOwor54u6ID4gZ2VuXCA7Civni7cgPiBrZW5cIDsKK+eLtCA+IGhlaVwgOwor54upID4gc2h1XCA7Civni6AgPiBnYW5cIDsKK+eLnyA+IGthblwgOwor54udID4gc2VuXCA7Civni5YgPiB5dXVcIDsKK+eLjiA+IGtvdVwgOwor54uMID4gc2VpXCA7Civni4AgPiBqb3VcIDsKK+eKviA+IGdpblwgOwor54q5ID4geXV1XCA7CivnirQgPiBrYW5cIDsKK+eKsiA+IHNhaVwgOwor54qbID4gYm91XCA7CivnipIgPiBrb3VcIDsKK+eKjiA+IGhvdVwgOwor54qNID4ga2VuXCA7CivniokgPiBqdW5cIDsKK+eKhyA+IGhvblwgOwor54qAID4gc2FpXCA7Civnib0gPiBrZW5cIDsKK+eJvCA+IGtvdVwgOwor54m7ID4gYm91XCA7CivnibggPiBzaGlcIDsKK+eJtyA+IHNlblwgOwor54m0ID4gdGVpXCA7Civnia4gPiBzZW5cIDsKK+eJrCA+IGhhaVwgOwor54moID4ga291XCA7CivniaMgPiBqaW5cIDsKK+eJnyA+IGJvdVwgOwor54mdID4gaGluXCA7CivniZogPiB0b3VcIDsKK+eJliA+IHl1dVwgOwor54mVID4gc291XCA7CivniZMgPiBib3VcIDsKK+eJkCA+IHNvdVwgOwor54mPID4gY2h1XCA7CivniY4gPiBzb3VcIDsKK+eJiyA+IHNlblwgOwor54mFID4geW91XCA7CivniYIgPiBzb3VcIDsKK+eIvCA+IHNob1wgOwor54i7ID4ga291XCA7CivniKggPiBzYW5cIDsKK+eIpCA+IHJhblwgOwor54ifID4ga2FuXCA7CivniJcgPiB5b3VcIDsKK+eIiSA+IHJvdVwgOwor54iIID4gcnlvXCA7Civnh78gPiB5b3VcIDsKK+eHviA+IHRvdVwgOwor54e8ID4gamluXCA7Civnh7kgPiBzZW5cIDsKK+eHpyA+IHN1aVwgOwor54emID4gc2FuXCA7Civnh6UgPiBzb3VcIDsKK+eHoCA+IG9raVwgOwor54ecID4gbW9uXCA7Civnh5kgPiB0b3VcIDsKK+eHlyA+IHJhblwgOwor54eUID4gaGFuXCA7Civnh5MgPiBmdW5cIDsKK+eHkCA+IHJpblwgOwor54eMID4gZnVuXCA7Civnh4kgPiB0b25cIDsKK+eHgSA+IHlvdVwgOwor54eAID4gc2VuXCA7Civnhr8gPiBrb3VcIDsKK+eGviA+IHNoaVwgOwor54azID4gbWFuXCA7CivnhrIgPiBrZWlcIDsKK+eGryA+IHplblwgOwor54asID4gZ291XCA7CivnhqIgPiBob3VcIDsKK+eGoCA+IHl1dVwgOwor54aVID4ga291XCA7CivnhpQgPiB5b3VcIDsKK+eGkiA+IGtlaVwgOwor54aPID4ga3VuXCA7CivnhowgPiBzZW5cIDsKK+eGgCA+IHlvdVwgOwor54W5ID4ga291XCA7CivnhawgPiB5b3VcIDsKK+eFqCA+IHdhaVwgOwor54WlID4ga2FuXCA7CivnhaIgPiBrZWlcIDsKK+eFoCA+IHlvdVwgOwor54WcID4gaWt1XCA7CivnhZogPiBrZWlcIDsKK+eFlyA+IGRhblwgOwor54WWID4gZGFuXCA7CivnhZEgPiBzaGFcIDsKK+eFjCA+IGtvdVwgOwor54WLID4gc2VpXCA7CivnhYogPiBrZW5cIDsKK+eFiSA+IHJlblwgOwor54WFID4gdGFuXCA7CivnhK0gPiBrZWlcIDsKK+eEoCA+IHNhaVwgOwor54SeID4gdG9uXCA7CivnhJwgPiBrb25cIDsKK+eEmSA+IGhvdVwgOwor54SVID4ga2FuXCA7CivnhIsgPiBzb3VcIDsKK+eEhCA+IGt1blwgOwor54O9ID4gaG91XCA7Civng7ogPiBrb3VcIDsKK+eDuSA+IGhvdVwgOwor54OxID4ga2VpXCA7Civng6QgPiBrb3VcIDsKK+eDnSA+IGpvdVwgOwor54OcID4gdGVuXCA7Civng5ggPiBrb3VcIDsKK+eDliA+IHNhaVwgOwor54OUID4gdG91XCA7Civng5EgPiB5b3VcIDsKK+eDiyA+IGtvdVwgOwor54OKID4geW91XCA7Civng4kgPiBrYW5cIDsKK+eCtyA+IHNodVwgOwor54K0ID4geW91XCA7CivngrMgPiBoZWlcIDsKK+eCsSA+IHRhaVwgOwor54KwID4gaG91XCA7Civngq8gPiBrZWlcIDsKK+eCriA+IGhvdVwgOwor54KrID4ga2VuXCA7CivngpsgPiB5b3VcIDsKK+eCmSA+IHNoYVwgOwor54KYID4ga2luXCA7CivngpcgPiBrb3VcIDsKK+eCliA+IHRvblwgOwor54KVID4ga291XCA7CivngpQgPiBrZWlcIDsKK+eCkiA+IHNvdVwgOwor54KGID4gYnVuXCA7CivngoUgPiBrZWlcIDsKK+eBviA+IHNhaVwgOwor54G2ID4gc291XCA7CivngbUgPiByZWlcIDsKK+eBriA+IGtvdVwgOwor54GkID4gcmFuXCA7CivngaMgPiB3YW5cIDsKK+eBnSA+IGtvdVwgOwor54GYID4gZGFuXCA7CivngZEgPiBzYWlcIDsKK+eBiyA+IGhvdVwgOwor54GKID4gc2VuXCA7CivngYkgPiB5b3VcIDsKK+eBgyA+IGh1dVwgOwor54C+ID4gcmFuXCA7CivngLwgPiBqb3VcIDsKK+eAsiA+IHJlblwgOwor54CoID4gcmFpXCA7CivngKYgPiBjaG9cIDsKK+eAoyA+IGthaVwgOwor54CeID4gam91XCA7CivngJogPiBrYW5cIDsKK+eAlyA+IGtlblwgOwor54CNID4gdGVuXCA7CivngIkgPiBzaGFcIDsKK+eAgSA+IHlvdVwgOwor54CAID4geXV1XCA7Civmv74gPiByeW9cIDsKK+a/vSA+IHNhblwgOwor5r+1ID4gaGluXCA7Civmv7MgPiBzZW5cIDsKK+a/qyA+IHJhblwgOwor5r+oID4gc2hpXCA7Civmv6QgPiB0b3VcIDsKK+a/oCA+IGdvdVwgOwor5r+UID4gZGVpXCA7Civmv4ogPiBrYWlcIDsKK+a/hiA+IGZ1blwgOwor5r+CID4gcmVuXCA7CivmvrYgPiBzZW5cIDsKK+a+syA+IGlrdVwgOwor5r6xID4gdGVuXCA7CivmvrAgPiByZW5cIDsKK+a+ryA+IHNhblwgOwor5r6uID4ga2FpXCA7CivmvqogPiByZWlcIDsKK+a+qCA+IHNlaVwgOwor5r6nID4gcmVpXCA7CivmvqUgPiBrYWlcIDsKK+a+oyA+IGthblwgOwor5r6hID4gc291XCA7Civmvp8gPiByaW5cIDsKK+a+miA+IGlrdVwgOwor5r6XID4ga2FuXCA7CivmvpYgPiBrYW5cIDsKK+a+lCA+IGtvdVwgOwor5r6SID4ga291XCA7Civmvo4gPiBob3VcIDsKK+a+jSA+IHNodVwgOwor5r6MID4gc2hpXCA7CivmvosgPiBrb3VcIDsKK+a+hyA+IHJvdVwgOwor5r6DID4gZ2VpXCA7CivmvoEgPiBqdXVcIDsKK+a+gCA+IGp1dVwgOwor5r2+ID4gcmluXCA7CivmvbwgPiBkb3VcIDsKK+a9uiA+IHNhblwgOwor5r24ID4gc2FuXCA7CivmvbQgPiBjaG9cIDsKK+a9ryA+IGppblwgOwor5r2tID4gdGFuXCA7CivmvawgPiB0YW5cIDsKK+a9qCA+IHNvdVwgOwor5r2mID4gcm91XCA7CivmvaQgPiBqdW5cIDsKK+a9oiA+IGtvdVwgOwor5r2hID4gdG9uXCA7CivmvZsgPiBzZW5cIDsKK+a9mCA+IGhhblwgOwor5r2TID4ga2VpXCA7CivmvZIgPiB0b3VcIDsKK+a9hSA+IGthblwgOwor5r2AID4gc291XCA7CivmvL4gPiB5b3VcIDsKK+a8vCA+IHNhaVwgOwor5ry2ID4ga2FuXCA7CivmvLEgPiBzb3VcIDsKK+a8sCA+IGhvdVwgOwor5ryvID4gdG91XCA7CivmvK0gPiBib3VcIDsKK+a8qyA+IG1hblwgOwor5rypID4gc2VuXCA7CivmvJsgPiB0b3VcIDsKK+a8liA+IGtvdVwgOwor5ryRID4gZ2FpXCA7CivmvIwgPiBraW5cIDsKK+a8iCA+IHNlaVwgOwor5ryEID4gZ2FpXCA7Civmu74gPiBrb25cIDsKK+a7vSA+IHlvdVwgOwor5ru7ID4gc2FuXCA7Civmu6EgPiBtYW5cIDsKK+a7niA+IHRhaVwgOwor5ruaID4ga29uXCA7Civmu5UgPiB0b3VcIDsKK+a7lCA+IHRvdVwgOwor5ruOID4ga2VpXCA7Civmu40gPiBjaGlcIDsKK+a7iSA+IGtvdVwgOwor5ruIID4ga291XCA7Civmu4cgPiB0ZW5cIDsKK+a7hCA+IHNvdVwgOwor5ruCID4gYm91XCA7Civmu4EgPiBjaG9cIDsKK+a6vyA+IGhhblwgOwor5rq7ID4gdG91XCA7CivmurcgPiBrb25cIDsKK+a6siA+IHNvdVwgOwor5rquID4gc2hpXCA7Civmup8gPiBtZWlcIDsKK+a6mSA+IHRhaVwgOwor5rqYID4ga291XCA7CivmupMgPiByZW5cIDsKK+a6jyA+IHRvdVwgOwor5rqJID4gZ2FpXCA7Civmub0gPiBzaGlcIDsKK+a5uyA+IGp1blwgOwor5rm2ID4gc2VuXCA7CivmubMgPiBkYW5cIDsKK+a5siA+IGthblwgOwor5rmjID4gYmluXCA7CivmuZ8gPiBrb3VcIDsKK+a5niA+IHRvdVwgOwor5rmdID4ga2FpXCA7CivmuZsgPiB0YW5cIDsKK+a5lyA+IGhvdVwgOwor5rmUID4gc2VuXCA7CivmuZMgPiBob25cIDsKK+a5kSA+IHNob1wgOwor5rmPID4ga2FpXCA7CivmuY4gPiBiZW5cIDsKK+a5jSA+IHRhblwgOwor5rmKID4gc291XCA7CivmuYkgPiB0ZW5cIDsKK+a5iCA+IGJhaVwgOwor5rmFID4gcmVuXCA7CivmuYMgPiBoYWlcIDsKK+a4viA+IGtvblwgOwor5ri7ID4gc2VpXCA7CivmuLkgPiBrb3VcIDsKK+a4uCA+IHl1dVwgOwor5riyID4gc2VuXCA7CivmuKcgPiB0ZWlcIDsKK+a4pSA+IGFrdVwgOwor5riiID4gaHV1XCA7CivmuJ8gPiB0ZWlcIDsKK+a4mSA+IGthblwgOwor5riTID4ga2VpXCA7CivmuIAgPiBob25cIDsKK+a3uCA+IHNlaVwgOwor5re2ID4gcmFpXCA7Civmt7AgPiBkZW5cIDsKK+a3ryA+IGlrdVwgOwor5reuID4gd2FpXCA7Civmt6wgPiBzYWlcIDsKK+a3qiA+IHJpblwgOwor5reoID4gam91XCA7Civmt6YgPiBrYW5cIDsKK+a3nyA+IHRlblwgOwor5rebID4gc2VpXCA7Civmt5ogPiBydWlcIDsKK+a3mSA+IHNvdVwgOwor5reYID4gdG91XCA7Civmt5YgPiBkb3VcIDsKK+a3kiA+IHNlaVwgOwor5rePID4ga291XCA7Civmt44gPiBob3VcIDsKK+a3iiA+IGthblwgOwor5reGID4ga291XCA7Civmt4QgPiBzaGlcIDsKK+a3gCA+IHRlblwgOwor5ra9ID4ga29uXCA7CivmtrcgPiB0b3VcIDsKK+a2tSA+IGthblwgOwor5rasID4ga2VpXCA7CivmtqogPiBodXVcIDsKK+a2oyA+IGthblwgOwor5rabID4gdG91XCA7CivmtpogPiBzZWlcIDsKK+a2mCA+IHNoaVwgOwor5raXID4gc2VpXCA7CivmtpYgPiByZWlcIDsKK+a2lSA+IHRlaVwgOwor5raUID4gc2FuXCA7CivmtpMgPiBrZW5cIDsKK+a2kiA+IHRvblwgOwor5raRID4gc291XCA7CivmtocgPiB0ZWlcIDsKK+a1vCA+IGJhaVwgOwor5rWwID4gcmVuXCA7CivmtakgPiBrb3VcIDsKK+a1pyA+IHRlaVwgOwor5rWmID4gdXJhXCA7CivmtaUgPiB5dXVcIDsKK+a1pCA+IGtvdVwgOwor5rWjID4ga2FuXCA7CivmtZ8gPiB5dXVcIDsKK+a0vSA+IGtvdVwgOwor5rS4ID4ga291XCA7CivmtK4gPiB0b3VcIDsKK+a0qiA+IGtvdVwgOwor5rSoID4ga291XCA7CivmtJogPiBrb3VcIDsKK+a0mSA+IHNodVwgOwor5rSKID4gc2VuXCA7CivmtIQgPiBrYWlcIDsKK+aztCA+IGthblwgOwor5rOyID4gc2VpXCA7Civms7AgPiB0YWlcIDsKK+azryA+IGJpblwgOwor5rOuID4gaGFuXCA7Civms6sgPiBrZW5cIDsKK+azqiA+IHJ1aVwgOwor5rOpID4gc291XCA7Civms6AgPiByZWlcIDsKK+aznCA+IHRlaVwgOwor5rObID4gaGFuXCA7Civms5ogPiBzZWlcIDsKK+azmSA+IGhvdVwgOwor5rOXID4gc2hpXCA7Civms5YgPiBib3VcIDsKK+azlCA+IGthblwgOwor5rORID4geXV1XCA7Civms40gPiBob25cIDsKK+azgiA+IGtlaVwgOwor5rK+ID4gdGVuXCA7CivmsrogPiB0ZW5cIDsKK+aytSA+IGRlaVwgOwor5rK0ID4gcmVpXCA7Civmsq4gPiBzaG9cIDsKK+aynyA+IGtvdVwgOwor5rKcID4gaGFuXCA7CivmspsgPiBoYWlcIDsKK+aymiA+IHNoaVwgOwor5rKXID4gdGVuXCA7CivmspQgPiBiZW5cIDsKK+aykyA+IHRvdVwgOwor5rKGID4ga291XCA7CivmsoUgPiBnZW5cIDsKK+axviA+IGZ1blwgOwor5rG4ID4gaG91XCA7CivmsbYgPiBidW5cIDsKK+axtCA+IGhlblwgOwor5rGzID4gaGVuXCA7Civmsa8gPiBrb3VcIDsKK+axrSA+IHplaVwgOwor5rGrID4ga2VpXCA7CivmsacgPiBrZW5cIDsKK+axniA+IGtvdVwgOwor5rGcID4gc2hpXCA7CivmsZUgPiBzYW5cIDsKK+axkiA+IGJvdVwgOwor5rGPID4gdGFpXCA7CivmsY4gPiBoYW5cIDsKK+axjSA+IGthblwgOwor5rC+ID4gaGFuXCA7CivmsL0gPiB0b25cIDsKK+awuiA+IHN1aVwgOwor5rC5ID4ga2FuXCA7CivmsK4gPiB0YW5cIDsKK+awpyA+IHlvdVwgOwor5rCmID4gZ2FpXCA7CivmsJsgPiBmdW5cIDsKK+awmSA+IHNlblwgOwor5rCTID4gYm91XCA7CivmsJAgPiB0ZWlcIDsKK+awiSA+IHNvdVwgOwor5rCEID4ganV1XCA7Civmr78gPiBzYW5cIDsKK+avtyA+IGJvdVwgOwor5q+zID4gemVpXCA7Civmr68gPiB0YW5cIDsKK+avpyA+IGp1dVwgOwor5q+hID4gc2VuXCA7Civmr5ogPiBzYW5cIDsKK+avkyA+IGlrdVwgOwor5q+PID4gbWFpXCA7Civmr4wgPiBrYW5cIDsKK+auvSA+IGtvdVwgOwor5q64ID4ga2VpXCA7CivmrrMgPiBzaHVcIDsKK+ausiA+IHNlblwgOwor5q6xID4gc2VuXCA7Civmrq8gPiBoaW5cIDsKK+auriA+IHJlblwgOwor5q6rID4gdGFuXCA7CivmrqkgPiBzYW5cIDsKK+auqCA+IGthaVwgOwor5q6jID4ga2luXCA7CivmrqIgPiB0ZWlcIDsKK+aulyA+IHlvdVwgOwor5q6VID4gZnV1XCA7CivmrokgPiBqdW5cIDsKK+auhSA+IHNvdVwgOwor5q6EID4gdGVuXCA7CivmroMgPiB5b3VcIDsKK+augCA+IHlvdVwgOwor5q2yID4gc2VpXCA7Civmra4gPiBqdXVcIDsKK+atqyA+IGt5b1wgOwor5q2dID4gZWtpXCA7CivmrZsgPiBrYW5cIDsKK+atkyA+IGthblwgOwor5q2JID4ga2VuXCA7CivmrYYgPiBraW5cIDsKK+atgyA+IHNvdVwgOwor5qy/ID4gdGFuXCA7CivmrL4gPiBrYW5cIDsKK+asvSA+IGtpblwgOwor5qy1ID4ga2FuXCA7CivmrKwgPiBrYWlcIDsKK+asoyA+IGdvblwgOwor5qyeID4gcmVpXCA7CivmrJcgPiByYW5cIDsKK+asliA+IHJhblwgOwor5qySID4gcmFuXCA7CivmrJEgPiBzYW5cIDsKK+askCA+IHJlaVwgOwor5qyJID4gc291XCA7CivmrIYgPiBzb3VcIDsKK+ashCA+IHJhblwgOwor5qyDID4gc2FuXCA7Civmq7wgPiBzZW5cIDsKK+aruiA+IHJlaVwgOwor5quwID4ga2FpXCA7Civmq6cgPiBzaG9cIDsKK+arpSA+IGNodVwgOwor5qukID4gc2VuXCA7Civmq5wgPiBrb3VcIDsKK+armiA+IHJ5b1wgOwor5quWID4gcnlvXCA7Civmq5UgPiBzYW5cIDsKK+arlCA+IHJlaVwgOwor5quRID4gcmFpXCA7Civmq5AgPiBydWlcIDsKK+arjCA+IHl1dVwgOwor5quJID4gY2h1XCA7Civmq4ggPiB0b3VcIDsKK+arhiA+IGthaVwgOwor5quCID4ga2FpXCA7Civmqr4gPiBrZWlcIDsKK+aquyA+IG9yaVwgOwor5qq4ID4gbmVpXCA7CivmqrMgPiBiaW5cIDsKK+aqsCA+IGhlblwgOwor5qqvID4gdGFpXCA7Civmqq4gPiB0b3VcIDsKK+aqrCA+IGJvdVwgOwor5qqpID4gcmluXCA7CivmqqAgPiBrZWlcIDsKK+aqniA+IGthaVwgOwor5qqRID4gcmFpXCA7CivmqokgPiB0ZWlcIDsKK+aqhyA+IHN1aVwgOwor5qqGID4gc2FuXCA7CivmqoEgPiByaW5cIDsKK+apviA+IHNodVwgOwor5qmqID4gemVuXCA7CivmqacgPiBzb3VcIDsKK+appiA+IHRvdVwgOwor5qmkID4genVpXCA7CivmqZYgPiB0b3VcIDsKK+aplSA+IHRvdVwgOwor5qmRID4gcm91XCA7CivmqY4gPiBoYW5cIDsKK+apiSA+IHJpblwgOwor5qmIID4ga2FpXCA7CivmqYcgPiB6ZWlcIDsKK+aphCA+IGthblwgOwor5qi/ID4gc2VuXCA7CivmqLcgPiBzb3VcIDsKK+aotiA+IHNhaVwgOwor5qioID4gc2VpXCA7CivmqKQgPiBqb3VcIDsKK+aooCA+IGJvblwgOwor5qieID4gc3V1XCA7CivmqJcgPiBjaG9cIDsKK+aolCA+IHNvdVwgOwor5qiPID4gcnVpXCA7CivmqIwgPiBrYW5cIDsKK+aoiyA+IHRvaVwgOwor5qiKID4gaGFuXCA7CivmqIMgPiByb3VcIDsKK+aogSA+IHRvdVwgOwor5qe/ID4ga2luXCA7Civmp74gPiBiYW5cIDsKK+anuSA+IGtvdVwgOwor5qe1ID4ga2FuXCA7Civmp7EgPiB5dXVcIDsKK+anryA+IHNhaVwgOwor5qerID4gdGFuXCA7Civmp6ogPiBnYWlcIDsKK+anpyA+IHNhblwgOwor5qeeID4gcm91XCA7Civmp50gPiB0b3VcIDsKK+anmSA+IHRlblwgOwor5qeTID4ga291XCA7Civmp5EgPiBiYWlcIDsKK+ankCA+IGthaVwgOwor5qeIID4gZG91XCA7Civmp4MgPiBoYW5cIDsKK+angSA+IGtvdVwgOwor5qa8ID4ga291XCA7CivmprggPiB0YWlcIDsKK+amsSA+IHN1aVwgOwor5qavID4gc2hpXCA7Civmpq0gPiBzaGFcIDsKK+ampiA+IGthblwgOwor5qalID4ga291XCA7CivmpqAgPiBiZWlcIDsKK+amnCA+IGJvdVwgOwor5qaVID4geW91XCA7CivmppQgPiByb3VcIDsKK+aluyA+IGtvdVwgOwor5qW6ID4ganV1XCA7CivmpbcgPiBrYWlcIDsKK+altCA+IHRlaVwgOwor5qWzID4gYmFpXCA7CivmpbEgPiBzb3VcIDsKK+alryA+IGp1blwgOwor5qWuID4gY2hvXCA7CivmpaogPiB5b3VcIDsKK+alqSA+IGhlblwgOwor5qWoID4gdGVpXCA7CivmpaYgPiBrZW5cIDsKK+alpSA+IGtlblwgOwor5qWkID4gc291XCA7CivmpZ4gPiByb3VcIDsKK+alnSA+IHJlblwgOwor5qWZID4gYm91XCA7CivmpZcgPiBrZW5cIDsKK+aljiA+IGtvblwgOwor5qS9ID4gdGVuXCA7CivmpLYgPiBzaHVcIDsKK+aksyA+IHdhaVwgOwor5qSxID4gZnV1XCA7CivmpKYgPiBrZW5cIDsKK+akoiA+IGthaVwgOwor5qSXID4gdGVpXCA7CivmpJYgPiBob3VcIDsKK+akkSA+IGhlaVwgOwor5qSQID4ga3lvXCA7CivmpIwgPiBrb3VcIDsKK+akiSA+IGpvdVwgOwor5qO8ID4gaHVuXCA7Civmo7kgPiBzYW9cIDsKK+ajtiA+IHJhaVwgOwor5qO1ID4ga2FuXCA7Civmo7EgPiByb3VcIDsKK+ajsCA+IHNvaVwgOwor5qOvID4gamluXCA7Civmo60gPiBla2lcIDsKK+ajrCA+IGtlblwgOwor5qOoID4ga2VpXCA7Civmo6cgPiBzYW5cIDsKK+ajpSA+IGhhblwgOwor5qOjID4gdGVpXCA7Civmo6EgPiBrb3VcIDsKK+ajoCA+IHRvdVwgOwor5qOZID4gcmVpXCA7Civmo5YgPiB0b3VcIDsKK+ajlSA+IHNodVwgOwor5qOUID4ga29uXCA7Civmo5MgPiBob3VcIDsKK+ajkSA+IGhhaVwgOwor5qONID4ga29uXCA7Civmo4wgPiBzYWlcIDsKK+ajiSA+IG1lblwgOwor5qOIID4gc2VuXCA7Civmo4YgPiByaW5cIDsKK+ajhSA+IGhlaVwgOwor5qK8ID4gdG91XCA7CivmorkgPiBiaW5cIDsKK+aitSA+IGZ1dVwgOwor5qKxID4ga29uXCA7CivmoqogPiB0b3VcIDsKK+aioSA+IGthblwgOwor5qKgID4gcnlvXCA7CivmopogPiBiYW5cIDsKK+aimCA+IGtlblwgOwor5qKXID4ga291XCA7CivmopYgPiBoYWlcIDsKK+ailCA+IHNoaVwgOwor5qKNID4gc291XCA7CivmooggPiBob3VcIDsKK+aihiA+IGhvdVwgOwor5qKEID4geW91XCA7Civmob8gPiBrYW5cIDsKK+ahviA+IGt1blwgOwor5qG7ID4gaG91XCA7CivmobkgPiByb3VcIDsKK+ahtSA+IHp1aVwgOwor5qGxID4ga2VpXCA7Civmoa8gPiB0ZWlcIDsKK+ahriA+IGhhaVwgOwor5qGjID4gdG91XCA7CivmoZMgPiBrYW5cIDsKK+ahkiA+IHNvdVwgOwor5qGKID4ga2VuXCA7CivmoYUgPiBnYWlcIDsKK+ahhCA+IGtvdVwgOwor5qC9ID4gc2FpXCA7CivmoLQgPiBzZW5cIDsKK+agsyA+IHJvdVwgOwor5qCyID4gZ291XCA7CivmoK8gPiBpa3VcIDsKK+agrCA+IHNlaVwgOwor5qCrID4gc29uXCA7CivmoJ8gPiBoZWlcIDsKK+agnSA+IHRlblwgOwor5qCZID4ga291XCA7CivmoJYgPiBzZWlcIDsKK+aglCA+IGtlaVwgOwor5qCIID4gc2FuXCA7Civmn7kgPiBzaGlcIDsKK+aftiA+IHNoaVwgOwor5p+sID4ga2FuXCA7Civmn6YgPiB0YW5cIDsKK+afoiA+IHRlaVwgOwor5p+cID4ga3lvXCA7Civmn5kgPiBrb3VcIDsKK+afmCA+IHNoYVwgOwor5p+RID4ga2FuXCA7Civmn4kgPiBoYW5cIDsKK+afiCA+IGhhblwgOwor5p+GID4gcm91XCA7Civmn4MgPiByZWlcIDsKK+aeviA+IHNoaVwgOwor5p69ID4gc291XCA7CivmnrwgPiB5b3VcIDsKK+aeuSA+IGhvdVwgOwor5p60ID4ga2FpXCA7CivmnrIgPiBzaGlcIDsKK+aesCA+IGhlaVwgOwor5p6iID4gc3V1XCA7CivmnpsgPiBzb3VcIDsKK+aemCA+IHplaVwgOwor5p6WID4geW91XCA7CivmnpMgPiBzaHVcIDsKK+aejyA+IGRhblwgOwor5p6MID4gZnVuXCA7CivmnosgPiBob3VcIDsKK+aehSA+IGtlaVwgOwor5p6EID4ga291XCA7CivmnbwgPiBjaG9cIDsKK+adtCA+IGtlblwgOwor5p2zID4geW91XCA7CivmnbIgPiBrb3VcIDsKK+adriA+IGhhaVwgOwor5p2tID4ga3VpXCA7CivmnawgPiBnZW5cIDsKK+adpyA+IG1hblwgOwor5p2gID4ga291XCA7CivmnZ0gPiBjaGlcIDsKK+adlSA+IHRlaVwgOwor5p2GID4ga2FuXCA7CivmnL8gPiBzaGlcIDsKK+acviA+IHRvdVwgOwor5py3ID4gdG91XCA7CivmnKkgPiB0b3VcIDsKK+acoiA+IGJvdVwgOwor5pycID4gdG9uXCA7CivmnJkgPiBtZWlcIDsKK+acmCA+IHNlblwgOwor5pyWID4gcm91XCA7CivmnI4gPiByZWlcIDsKK+acjCA+IGhhblwgOwor5pu6ID4gc291XCA7Civmm7kgPiBzb3VcIDsKK+abriA+IGdhblwgOwor5pusID4gc2FpXCA7Civmm6sgPiByYW5cIDsKK+abqSA+IGRvdVwgOwor5puoID4gcm91XCA7Civmm6EgPiBqb3VcIDsKK+aboCA+IGtvdVwgOwor5pubID4ga3VuXCA7Civmm5ogPiBib3VcIDsKK+ablCA+IGtlaVwgOwor5puOID4gZWtpXCA7Civmm4ggPiB0b3VcIDsKK+abhSA+IHlvdVwgOwor5puEID4geW91XCA7Civmm4MgPiB0YWlcIDsKK+abgiA+IGtvdVwgOwor5pq+ID4gdG9uXCA7CivmmrsgPiBrZWlcIDsKK+aauSA+IHNlblwgOwor5pq1ID4ga2FuXCA7Civmmq0gPiBrb3VcIDsKK+aapCA+IGtvdVwgOwor5pqgID4ga291XCA7Civmmp8gPiBrYWlcIDsKK+aanSA+IG1laVwgOwor5pqaID4geW91XCA7CivmmpggPiB5b3VcIDsKK+aakiA+IHNlaVwgOwor5pqMID4ga2VpXCA7CivmmosgPiBiaW5cIDsKK+aahCA+IGtlblwgOwor5pm5ID4gZWtpXCA7CivmmbggPiB0ZWlcIDsKK+aZtSA+IGtlaVwgOwor5pmsID4gc2FpXCA7CivmmaogPiB0ZW5cIDsKK+aZpyA+IGtvdVwgOwor5pmmID4ga2FpXCA7CivmmaAgPiBzZWlcIDsKK+aZnyA+IHNlaVwgOwor5pmcID4ga29uXCA7CivmmZsgPiBrZW5cIDsKK+aZmiA+IGJhblwgOwor5pmYID4ga2FuXCA7CivmmZcgPiBrYW5cIDsKK+aZjiA+IGtvdVwgOwor5pmGID4ga2FpXCA7CivmmYUgPiBrZW5cIDsKK+aZhCA+IGtvdVwgOwor5pmDID4ga291XCA7CivmmL8gPiBrb3VcIDsKK+aYuyA+IGtvdVwgOwor5pixID4gaWt1XCA7CivmmLAgPiBzaGlcIDsKK+aYrCA+IGtvblwgOwor5piqID4gaGVuXCA7CivmmKcgPiBtYWlcIDsKK+aYpiA+IGtvdVwgOwor5pikID4gcmVpXCA7CivmmKEgPiBrZW5cIDsKK+aYniA+IGhlaVwgOwor5pidID4gc2FuXCA7CivmmJwgPiB5b3VcIDsKK+aYlSA+IGtpblwgOwor5piRID4ga2luXCA7CivmmI8gPiBrb25cIDsKK+aYjSA+IGtlblwgOwor5piKID4ga291XCA7CivmmIkgPiBob3VcIDsKK+aYhCA+IGhhblwgOwor5pe7ID4gYmluXCA7Civml7UgPiB0YW5cIDsKK+aXsiA+IHRhaVwgOwor5pexID4ga2FuXCA7Civml7AgPiBrYW5cIDsKK+aXmyA+IGhhblwgOwor5peZID4gaGFuXCA7Civml5ggPiBzaGlcIDsKK+aXlCA+IGtlblwgOwor5peMID4gc2VpXCA7Civml4YgPiBoYWlcIDsKK+aXhCA+IGJvdVwgOwor5peDID4gc2VuXCA7Civmlr8gPiB5b3VcIDsKK+aWvSA+IHNoaVwgOwor5pa0ID4gcmluXCA7CivmlrMgPiBraW5cIDsKK+aWpyA+IG9ub1wgOwor5pamID4gZ2luXCA7CivmlqQgPiBraW5cIDsKK+aWlSA+IHJhblwgOwor5paSID4gaGFuXCA7CivmlowgPiBoaW5cIDsKK+aWiiA+IHNlaVwgOwor5paGID4ga291XCA7CivmloUgPiBrb3VcIDsKK+aWgiA+IHJlblwgOwor5paBID4gZWtpXCA7CivmlbsgPiBrZWlcIDsKK+aVsiA+IGtvdVwgOwor5pWvID4gYmluXCA7Civmla0gPiB5b3VcIDsKK+aVqSA+IGtvdVwgOwor5pWmID4gdG9uXCA7CivmlZ8gPiB0ZW5cIDsKK+aVnSA+IGhlaVwgOwor5pWWID4gZ291XCA7CivmlZQgPiBneW9cIDsKK+aVgyA+IGJpblwgOwor5pS9ID4gaGFuXCA7CivmlLwgPiBrYW5cIDsKK+aUuyA+IGtvdVwgOwor5pS4ID4geXV1XCA7CivmlLcgPiBrb3VcIDsKK+aUriA+IGRvdVwgOwor5pSsID4gcmFuXCA7CivmlKkgPiB0b3VcIDsKK+aUpiA+IHJlaVwgOwor5pSkID4gdGFuXCA7CivmlKMgPiByZW5cIDsKK+aUoiA+IHNhblwgOwor5pSfID4ga3VuXCA7CivmlJwgPiBrZWlcIDsKK+aUmyA+IHNhblwgOwor5pSZID4gc2VuXCA7CivmlJggPiBqb3VcIDsKK+aUlCA+IHJhblwgOwor5pSTID4ga2VuXCA7CivmlI8gPiByb3VcIDsKK+aUiCA+IGt1blwgOwor5pSFID4gc2FuXCA7CivmlIQgPiBjaG9cIDsKK+aUgSA+IHlvdVwgOwor5pSAID4gaGFuXCA7Civmk74gPiBqb3VcIDsKK+aTuyA+IHNvdVwgOwor5pO6ID4gaGFpXCA7Civmk7YgPiBzZW5cIDsKK+aTsCA+IGRvdVwgOwor5pOvID4gaGluXCA7Civmk60gPiBreW9cIDsKK+aTqiA+IHlvdVwgOwor5pOlID4gcmFuXCA7Civmk6QgPiBrb3VcIDsKK+aToyA+IHRvdVwgOwor5pOgID4gc2VpXCA7Civmk5ogPiBreW9cIDsKK+aTlSA+IGtlaVwgOwor5pOSID4ga2luXCA7Civmk5AgPiBrYW5cIDsKK+aTjiA+IGtlaVwgOwor5pOLID4gdG91XCA7Civmk4QgPiByeW9cIDsKK+aTgiA+IHJhaVwgOwor5pOBID4geW91XCA7Civmkr8gPiByZW5cIDsKK+aSvSA+IGtvdVwgOwor5pK8ID4ga2FuXCA7CivmkrMgPiBraW5cIDsKK+aSsCA+IHNhblwgOwor5pKmID4gc2hhXCA7CivmkqMgPiB0YW5cIDsKK+aSoSA+IHNvdVwgOwor5pKeID4gc2h1XCA7CivmkpsgPiByaW5cIDsKK+aSmiA+IG5lblwgOwor5pKZID4gc29uXCA7CivmkpggPiB0b3VcIDsKK+aSlSA+IHNlaVwgOwor5pKTID4gZG91XCA7CivmkpIgPiBzYW5cIDsKK+aSjyA+IHNhblwgOwor5pKIID4gcm91XCA7CivmkbsgPiBzYW5cIDsKK+aRtiA+IHRhblwgOwor5pG0ID4gY2hvXCA7CivmkbMgPiBrb3VcIDsKK+aRryA+IHNoaVwgOwor5pGnID4gc2FpXCA7CivmkaEgPiBrYWlcIDsKK+aRoCA+IHNvdVwgOwor5pGfID4gcm91XCA7CivmkZwgPiBrYW5cIDsKK+aRmyA+IGNoaVwgOwor5pGaID4gdG91XCA7CivmkZMgPiBob3VcIDsKK+aRkiA+IGhlaVwgOwor5pGHID4geW91XCA7CivmkLQgPiBrZW5cIDsKK+aQryA+IHRvdVwgOwor5pCtID4gdG91XCA7CivmkKwgPiBoYW5cIDsKK+aQqiA+IHRvdVwgOwor5pCoID4gdG91XCA7CivmkKUgPiB0YWlcIDsKK+aQpCA+IGFrdVwgOwor5pCeID4ga291XCA7CivmkJggPiBzaGlcIDsKK+aQlyA+IHRvdVwgOwor5pCUID4gc291XCA7CivmkJIgPiBob3VcIDsKK+aQhiA+IGtvdVwgOwor5o+5ID4gaGFpXCA7Civmj7cgPiBzb3VcIDsKK+aPtSA+IGtlblwgOwor5o+tID4ga2VpXCA7Civmj6kgPiBrYWlcIDsKK+aPpSA+IHRlaVwgOwor5o+jID4gc2hpXCA7Civmj5YgPiB5dXVcIDsKK+aPlCA+IHNvdVwgOwor5o+TID4gc2hpXCA7Civmj5IgPiBzb3VcIDsKK+aPjiA+IHNlblwgOwor5o+IID4ga291XCA7Civmj4UgPiBrZW5cIDsKK+aPgSA+IHRlaVwgOwor5o+AID4ga2FuXCA7Civmjr0gPiBob3VcIDsKK+aOryA+IGtvdVwgOwor5o6uID4ga2VuXCA7Civmjq0gPiB0ZW5cIDsKK+aOqyA+IHNvdVwgOwor5o6ZID4gc291XCA7CivmjpYgPiBla2lcIDsKK+aOlCA+IGthblwgOwor5o6QID4ga291XCA7Civmjo8gPiB0b3VcIDsKK+aOiiA+IGhvdVwgOwor5o6JID4gdG91XCA7CivmjoQgPiByb25cIDsKK+aOgiA+IHRlblwgOwor5o6AID4ga2luXCA7Civmjb8gPiBzZWlcIDsKK+aNtiA+IHN1aVwgOwor5o21ID4gdGVuXCA7CivmjbQgPiBmdW5cIDsKK+aNsSA+IGdhaVwgOwor5o2tID4gaGFpXCA7CivmjasgPiBtb25cIDsKK+aNpyA+IGhvdVwgOwor5o2mID4ga2luXCA7CivmjaUgPiB3YW5cIDsKK+aNoiA+IGthblwgOwor5o2bID4gcnlvXCA7CivmjZggPiBzb25cIDsKK+aNjiA+IHNvdVwgOwor5o2NID4ga2FuXCA7CivmjYogPiBob3VcIDsKK+aNhiA+IGtvblwgOwor5o2DID4ga3VuXCA7CivmjLogPiB0ZWlcIDsKK+aMuSA+IHl1dVwgOwor5oy1ID4gcm91XCA7CivmjK0gPiBrb3VcIDsKK+aMjSA+IGtvdVwgOwor5oyKID4gcm91XCA7CivmjIQgPiBrb3VcIDsKK+aMgiA+IGtlaVwgOwor5ou8ID4gaG91XCA7Civmi7cgPiBnb3VcIDsKK+aLtCA+IHNlblwgOwor5ouvID4gam91XCA7Civmi6ogPiBzZW5cIDsKK+aLmiA+IGhlblwgOwor5ouSID4ga3lvXCA7Civmi5EgPiBrYW5cIDsKK+aLkCA+IGthaVwgOwor5ouOID4gcmVpXCA7Civmi4wgPiBoYW5cIDsKK+aLiyA+IGhvdVwgOwor5ouIID4gZGVuXCA7Civmi4QgPiBjaHVcIDsKK+aKvyA+IGJpblwgOwor5oq+ID4ga3lvXCA7CivmirogPiBiYWlcIDsKK+aKrCA+IHRhaVwgOwor5oqoID4gaG91XCA7CivmiqYgPiBoZWlcIDsKK+aKliA+IHRvdVwgOwor5oqUID4gaG91XCA7Civmio8gPiBnYW5cIDsKK+aKgyA+IGJlblwgOwor5om9ID4gdG9uXCA7CivmibwgPiBha3VcIDsKK+aJuiA+IHRlaVwgOwor5omzID4gaGFuXCA7Civmia0gPiBqdXVcIDsKK+aJoyA+IGtvdVwgOwor5omeID4ga2FuXCA7CivmiZsgPiBrb3VcIDsKK+aJlCA+IGpvdVwgOwor5omSID4gaGFpXCA7CivmiYwgPiBzaHVcIDsKK+aJgyA+IGtlaVwgOwor5omCID4gdGVuXCA7CivmiYEgPiBoZW5cIDsKK+aIviA+IHJlaVwgOwor5oi8ID4gYm91XCA7CivmiLkgPiBha3VcIDsKK+aIqSA+IHNlblwgOwor5oinID4gc291XCA7CivmiKEgPiBrYW5cIDsKK+aIlCA+IHNhblwgOwor5oiOID4ganV1XCA7CivmiIcgPiB0b3VcIDsKK+aIgyA+IHRvdVwgOwor5oiBID4gZGFuXCA7Civmh70gPiBrYW5cIDsKK+aHuiA+IHphblwgOwor5oe2ID4gcmFuXCA7Civmh7QgPiB6YW5cIDsKK+aHrSA+IGtvdVwgOwor5oesID4ga291XCA7Civmh6kgPiB5b3VcIDsKK+aHoyA+IG1vblwgOwor5oeiID4gcmFuXCA7Civmh54gPiBib3VcIDsKK+aHnSA+IGdhaVwgOwor5oecID4gYm91XCA7Civmh5QgPiByaW5cIDsKK+aHjSA+IHJpblwgOwor5oeMID4gZWtpXCA7Civmh4sgPiBib3VcIDsKK+aHiCA+IGthaVwgOwor5oeHID4ga29uXCA7Civmh4YgPiBzb3VcIDsKK+aHgiA+IHRvdVwgOwor5oeBID4ga2VuXCA7Civmh4AgPiB3YWlcIDsKK+aGviA+IGthblwgOwor5oa8ID4ga2VpXCA7CivmhrkgPiBkb3VcIDsKK+aGuCA+IHNlblwgOwor5oayID4ga2VuXCA7CivmhqsgPiBiaW5cIDsKK+aGqiA+IGthblwgOwor5oaoID4ga2FuXCA7CivmhqUgPiByb3VcIDsKK+aGnSA+IHRhaVwgOwor5oaaID4gdGFuXCA7CivmhpcgPiBnaW5cIDsKK+aGkyA+IGtlaVwgOwor5oaSID4ga2FpXCA7CivmhoogPiBoYWlcIDsKK+aGhyA+IGtlaVwgOwor5oaEID4gY2hpXCA7CivmhoMgPiB0b3VcIDsKK+aGgSA+IHNvdVwgOwor5oW7ID4ga2VuXCA7CivmhbggPiB0ZWlcIDsKK+aFtyA+IGtvdVwgOwor5oW2ID4ga2VpXCA7CivmhbUgPiB5b3VcIDsKK+aFsyA+IGthblwgOwor5oWyID4gYmFuXCA7CivmhbEgPiB0YW5cIDsKK+aFrSA+IGdpblwgOwor5oWsID4ga2luXCA7CivmhacgPiBrZWlcIDsKK+aFoCA+IGdvdVwgOwor5oWfID4gZG91XCA7CivmhZogPiB6YW5cIDsKK+aFmSA+IHphblwgOwor5oWJID4ga2luXCA7CivmhYYgPiB0b3VcIDsKK+aFhSA+IHNvdVwgOwor5oWCID4geW91XCA7CivmhYEgPiBrb25cIDsKK+aEvyA+IGdlblwgOwor5oS5ID4geW91XCA7CivmhLcgPiBrYWlcIDsKK+aEtCA+IHNvdVwgOwor5oSwID4ga2F1XCA7CivmhKIgPiBzYWlcIDsKK+aEoSA+IHNvdVwgOwor5oSeID4gemVuXCA7CivmhJcgPiBib3VcIDsKK+aEkyA+IHRvdVwgOwor5oSSID4ga2VpXCA7CivmhJEgPiB5b3VcIDsKK+aEkCA+IGJlblwgOwor5oSNID4gYmluXCA7CivmhIwgPiBrYW5cIDsKK+aEhiA+IGtlblwgOwor5oSDID4ga2VuXCA7Civmg70gPiBrb25cIDsKK+aDvCA+IGhlblwgOwor5oO6ID4gc2VpXCA7Civmg7ggPiBrZWlcIDsKK+aDtiA+IGtvdVwgOwor5oO0ID4genVpXCA7Civmg6UgPiB5b3VcIDsKK+aDoyA+IHNvdVwgOwor5oOeID4ga2luXCA7Civmg5sgPiBrb25cIDsKK+aDmCA+IGJvdVwgOwor5oOUID4gdGFuXCA7Civmg5MgPiBrZW5cIDsKK+aDjyA+IHJhblwgOwor5oOLID4gd2FuXCA7Civmg4kgPiBzZW5cIDsKK+aDhyA+IHRvblwgOwor5oOCID4ga2FuXCA7Civmgr4gPiBrb3VcIDsKK+aCvSA+IHNlaVwgOwor5oK7ID4ga2VpXCA7CivmgrcgPiByZWlcIDsKK+aCsCA+IHNvdVwgOwor5oKpID4gbm91XCA7CivmgqQgPiBzb3VcIDsKK+aCnSA+IGthaVwgOwor5oKbID4gc2VuXCA7CivmgpcgPiBiYW5cIDsKK+aCkyA+IGtlblwgOwor5oKSID4geXV1XCA7Civmgo4gPiBrb3VcIDsKK+aCjSA+IGthblwgOwor5oKMID4gdGVpXCA7CivmgosgPiByaW5cIDsKK+aCiCA+IGthaVwgOwor5oKDID4ga29uXCA7Civmgb8gPiB5b3VcIDsKK+aBviA+IGJvdVwgOwor5oG1ID4ga2VpXCA7CivmgawgPiB0ZW5cIDsKK+aBqyA+IGRvdVwgOwor5oGjID4gc2hpXCA7CivmgaIgPiBrYWlcIDsKK+aBoSA+IHJpblwgOwor5oGgID4ga2FpXCA7CivmgZ0gPiBrYWlcIDsKK+aBmSA+IHlvdVwgOwor5oGWID4gc2hpXCA7CivmgZIgPiBrb3VcIDsKK+aBiSA+IHNoaVwgOwor5oGIID4gYm91XCA7CivmgYYgPiBrb3VcIDsKK+aBgiA+IGp1blwgOwor5oGAID4gc2hpXCA7CivmgLEgPiBzb3VcIDsKK+aApiA+IGhvdVwgOwor5oCfID4gdGVpXCA7CivmgJwgPiByZWlcIDsKK+aAmiA+IHNob1wgOwor5oCUID4gc2VpXCA7CivmgJMgPiBkb3VcIDsKK+aAkCA+IGtvdVwgOwor5oCPID4geW91XCA7CivmgIcgPiBreW9cIDsKK+W/vCA+IGtvdVwgOwor5b+7ID4ga2luXCA7Civlv7ogPiBrZW5cIDsKK+W/tiA+IGtvblwgOwor5b+zID4gdG9uXCA7Civlv7IgPiB0YWlcIDsKK+W/sCA+IHN1aVwgOwor5b+uID4gc2hpXCA7Civlv60gPiBoZW5cIDsKK+W/qSA+IHNvdVwgOwor5b+oID4gZ2FuXCA7Civlv54gPiBiaW5cIDsKK+W/nSA+IHRlblwgOwor5b+WID4gc29uXCA7Civlv5MgPiBrYW5cIDsKK+W/kCA+IGt1blwgOwor5b+LID4ga2FpXCA7Civlv4kgPiB0b3VcIDsKK+W/iCA+IGppblwgOwor5b6wID4gc2VpXCA7Civlvq8gPiBrZWlcIDsKK+W+rSA+IHlvdVwgOwor5b6sID4gaG91XCA7CivlvqggPiBrb3VcIDsKK+W+pyA+IGhlblwgOwor5b6gID4gcmFpXCA7Civlvp0gPiBjaGlcIDsKK+W+mSA+IHNoaVwgOwor5b6YID4gaGFpXCA7CivlvpYgPiBzb3VcIDsKK+W+kSA+IGtlaVwgOwor5b6JID4geW91XCA7CivlvoggPiBrb25cIDsKK+W+hiA+IHNlaVwgOwor5b6BID4gc2VpXCA7Civlvb4gPiByZWlcIDsKK+W9vSA+IGNoaVwgOwor5b23ID4gaG91XCA7CivlvbIgPiBjaGlcIDsKK+W9ryA+IGhldVwgOwor5b2tID4gaG91XCA7CivlvawgPiBoaW5cIDsKK+W9pyA+IGlrdVwgOwor5b2mID4gZ2VuXCA7CivlvaUgPiBnZW5cIDsKK+W9pCA+IHRvdVwgOwor5b2jID4gYnVuXCA7CivlvaEgPiBzYW5cIDsKK+W9mCA+IHRlaVwgOwor5b2XID4gc3VpXCA7CivlvZYgPiB0YW5cIDsKK+W9kSA+IGtlaVwgOwor5b2QID4ga2VpXCA7CivlvY4gPiB3YW5cIDsKK+W9iyA+IGthdVwgOwor5b2HID4geW91XCA7CivlvYQgPiBrb3VcIDsKK+W9gSA+IHNlaVwgOwor5b2AID4ga291XCA7CivlvL8gPiBrZW5cIDsKK+W8vSA+IHlvdVwgOwor5by5ID4gZGFuXCA7CivlvLggPiBob3VcIDsKK+W8tCA+IHRvblwgOwor5bywID4gc291XCA7CivlvK8gPiB3YW5cIDsKK+W8riA+IGtlblwgOwor5byoID4gc2V1XCA7CivlvKQgPiB0ZWlcIDsKK+W8oiA+IHRvdVwgOwor5byaID4gdGFpXCA7CivlvJIgPiBzaGlcIDsKK+W8kSA+IHNoaVwgOwor5byOID4gc2FuXCA7CivlvIogPiBoZWlcIDsKK+W8iSA+IGpvdVwgOwor5byIID4gZWtpXCA7CivlvIYgPiBreW9cIDsKK+W8hSA+IGh1blwgOwor5bu/ID4ganV1XCA7Civlu70gPiBrYWlcIDsKK+W7vCA+IGRhaVwgOwor5bu3ID4gdGVpXCA7Civlu7UgPiBqdW5cIDsKK+W7siA+IHJlaVwgOwor5buxID4geW91XCA7Civlu68gPiBzZW5cIDsKK+W7rCA+IHJ5b1wgOwor5buqID4gcmluXCA7Civlu6kgPiByaW5cIDsKK+W7qCA+IGthaVwgOwor5bulID4ga2FpXCA7Civlu54gPiBraW5cIDsKK+W7nSA+IHNoaVwgOwor5bubID4gdGVuXCA7Civlu5cgPiB0YWlcIDsKK+W7lCA+IHJvdVwgOwor5buSID4gZ291XCA7Civlu5EgPiBraW5cIDsKK+W7jiA+IGtlaVwgOwor5buMID4gY2hpXCA7Civlu4cgPiByaXVcIDsKK+W7hiA+IGthaVwgOwor5buFID4gYWh1XCA7Civlu4EgPiBzaGlcIDsKK+W7gCA+IHNvdVwgOwor5bq9ID4gZG91XCA7CivlursgPiBzaG9cIDsKK+W6tiA+IHNob1wgOwor5bqyID4gcmFpXCA7CivlurAgPiBoZWlcIDsKK+W6rCA+IGJvdVwgOwor5bqoID4ga291XCA7CivluqQgPiBjaGlcIDsKK+W6oyA+IHRldVwgOwor5bqbID4gc2hpXCA7Civluo4gPiBrYWlcIDsKK+W6jSA+IGhhaVwgOwor5bqJID4gdG9uXCA7CivluoggPiBraW5cIDsKK+W5vyA+IGdlblwgOwor5bm6ID4geW91XCA7CivlubcgPiBoZWlcIDsKK+W5tiA+IGhlaVwgOwor5bm1ID4ga2VuXCA7CivlubEgPiByYW5cIDsKK+W5sCA+IGtlblwgOwor5bmuID4gY2h1XCA7CivluasgPiBob3VcIDsKK+W5qiA+IGJvdVwgOwor5bmpID4gaHVuXCA7CivluaggPiBzZW5cIDsKK+W5pyA+IHNldVwgOwor5bmkID4gaGVpXCA7CivluaMgPiBoZWlcIDsKK+W5oiA+IHRvdVwgOwor5bmhID4gaGFuXCA7CivluZ0gPiBzZW5cIDsKK+W5nCA+IGtlaVwgOwor5bmaID4gaG91XCA7CivluZQgPiBiYW5cIDsKK+W5kCA+IHRvdVwgOwor5bmNID4gdG91XCA7CivluYwgPiBrb3VcIDsKK+W5iyA+IGhhblwgOwor5bmKID4ga291XCA7CivluYggPiBoZWlcIDsKK+W5hyA+IGhvdVwgOwor5bmEID4gYWt1XCA7CivluYAgPiB0ZWlcIDsKK+W4tSA+IHdhblwgOwor5biyID4gaGVpXCA7CivluK4gPiBob3VcIDsKK+W4rCA+IGt1blwgOwor5bipID4gc2V1XCA7CivluKggPiBzZWlcIDsKK+W4piA+IHRhaVwgOwor5bijID4ga2VuXCA7CivluKEgPiBoZWlcIDsKK+W4oCA+IGdlaVwgOwor5bifID4gZWtpXCA7CivluJggPiByZW5cIDsKK+W4liA+IGpvdVwgOwor5biSID4gdGFpXCA7CivluI4gPiB0YW5cIDsKK+W4iyA+IHNoaVwgOwor5biHID4gZGVuXCA7CivluIQgPiB0ZWlcIDsKK+W4gCA+IHNvdVwgOwor5be6ID4gc29uXCA7Civlt7kgPiBraW5cIDsKK+W3tSA+IHNoaVwgOwor5begID4ga2VpXCA7Civlt58gPiBrb3VcIDsKK+W3nCA+IGthaVwgOwor5bebID4gc2VuXCA7Civlt5ggPiBnZW5cIDsKK+W3liA+IGdhblwgOwor5beUID4gdGVuXCA7Civlt5MgPiB0ZW5cIDsKK+W3kiA+IHJhblwgOwor5beRID4gc2FuXCA7Civlt48gPiBrZW5cIDsKK+W3jiA+IGRvdVwgOwor5beMID4gZ2FuXCA7Civlt4kgPiBzYW5cIDsKK+W3hiA+IGtvdVwgOwor5beDID4gcm91XCA7Civlt4IgPiBzdWlcIDsKK+W2vCA+IHNob1wgOwor5ba6ID4gcmVpXCA7CivltrkgPiB0b3VcIDsKK+W2uCA+IGtvdVwgOwor5ba1ID4gc2FpXCA7CivltrIgPiBrZWlcIDsKK+W2sCA+IGthaVwgOwor5bapID4gZGF1XCA7CivltqcgPiBla2lcIDsKK+W2oSA+IGtlaVwgOwor5bafID4gc29uXCA7Civltp0gPiB0b3VcIDsKK+W2mSA+IHJpblwgOwor5baVID4gc2V1XCA7CivltpQgPiBraW5cIDsKK+W2jCA+IHRvdVwgOwor5baLID4gdG91XCA7CivltoogPiBzdWlcIDsKK+W2iSA+IHN1aVwgOwor5baGID4gc2F1XCA7CivltoQgPiBzYW5cIDsKK+W2gyA+IHNhblwgOwor5bW/ID4gdGVpXCA7CivltbwgPiBzYW5cIDsKK+W1uiA+IHJldVwgOwor5bW2ID4gdGFvXCA7CivltbEgPiB5b3VcIDsKK+W1sCA+IGtlblwgOwor5bWtID4gaG91XCA7CivltawgPiBrYWlcIDsKK+W1qiA+IGtvdVwgOwor5bWpID4gc3V1XCA7CivltacgPiByaXVcIDsKK+W1pCA+IGtlaVwgOwor5bWjID4gdGF1XCA7CivltaIgPiBzb3VcIDsKK+W1oCA+IGdlaVwgOwor5bWXID4gc2VpXCA7CivltZUgPiBzb3VcIDsKK+W1kyA+IGdhblwgOwor5bWSID4gZ2FuXCA7CivltY4gPiBndXVcIDsKK+W1iSA+IHRlaVwgOwor5bWIID4ga2FuXCA7CivltYcgPiBrZWlcIDsKK+W1hiA+IGtlaVwgOwor5bWFID4ga2FuXCA7CivltYMgPiBnZW5cIDsKK+W1gSA+IGthblwgOwor5bS9ID4gc2FpXCA7CivltLwgPiBzaGlcIDsKK+W0uSA+IHRlaVwgOwor5bS4ID4gdG9uXCA7CivltLYgPiBob3VcIDsKK+W0tSA+IHNldVwgOwor5bS0ID4gd2FpXCA7CivltLIgPiBrb3VcIDsKK+W0pSA+IGhlaVwgOwor5bSkID4ga291XCA7CivltKIgPiBzb3VcIDsKK+W0oSA+IGthblwgOwor5bSgID4gdG91XCA7CivltJ8gPiBnaW5cIDsKK+W0nSA+IHNhdVwgOwor5bSZID4gcm9uXCA7CivltJggPiByb25cIDsKK+W0lSA+IGdhaVwgOwor5bSUID4gc2FpXCA7CivltJEgPiBrb25cIDsKK+W0kCA+IGtvblwgOwor5bSPID4gYmluXCA7CivltI0gPiByYWlcIDsKK+W0hyA+IHN1dVwgOwor5bSGID4ga291XCA7CivltIQgPiBrZW5cIDsKK+W0gSA+IGthblwgOwor5bO6ID4ga291XCA7Civls7ggPiBzZWlcIDsKK+WztSA+IGtvdVwgOwor5bO0ID4ga2VuXCA7Civls7EgPiBkb3VcIDsKK+WzryA+IGhvdVwgOwor5bOuID4ga2luXCA7Civls58gPiB5b3VcIDsKK+WznSA+IHRvdVwgOwor5bOcID4ga2VpXCA7Civls5ggPiBrYW5cIDsKK+WzlSA+IHNoaVwgOwor5bOSID4gdG91XCA7Civls5AgPiBrYWlcIDsKK+WzjiA+IGdvblwgOwor5bOHID4ga291XCA7Civlsr4gPiBzZW5cIDsKK+WyuiA+IHJlaVwgOwor5bK3ID4gYmluXCA7CivlsrIgPiBrb3VcIDsKK+WysSA+IHRhaVwgOwor5bKwID4geW91XCA7Civlsq0gPiByZWlcIDsKK+WypyA+IHRldVwgOwor5bKjID4ga291XCA7CivlsqAgPiBreW9cIDsKK+WynyA+IHlvdVwgOwor5bKVID4ga2FpXCA7CivlspIgPiBrZW5cIDsKK+WyiyA+IGdvdVwgOwor5bKHID4gZ291XCA7CivlsoUgPiBoYW5cIDsKK+WxvSA+IGthblwgOwor5bG7ID4gamluXCA7CivlsbMgPiBzZW5cIDsKK+WxryA+IHRvblwgOwor5bGnID4gdGVpXCA7CivlsaMgPiBzaGlcIDsKK+WxnyA+IHRlaVwgOwor5bGcID4gdGVpXCA7CivlsZsgPiBoZWlcIDsKK+WxmiA+IHJvdVwgOwor5bGWID4gc2VpXCA7CivlsZQgPiBkZWlcIDsKK+WxjiA+IHNoaVwgOwor5bGHID4gdGVuXCA7CivlsLwgPiBhbWFcIDsKK+WwtyA+IGthblwgOwor5bC2ID4ga2FuXCA7CivlsLUgPiB0YWlcIDsKK+WwsiA+IGthblwgOwor5bCsID4ga2FpXCA7CivlsKggPiBib3VcIDsKK+WwnyA+IHNlblwgOwor5bCMID4gc2h1XCA7CivlsIIgPiBzZW5cIDsKK+WvvSA+IHJpblwgOwor5a+5ID4gdGFpXCA7Civlr7YgPiBob3VcIDsKK+WvsyA+IGhvdVwgOwor5a+xID4gZ2VpXCA7Civlr7AgPiBrYW5cIDsKK+WvrCA+IGthblwgOwor5a+oID4gc2FpXCA7Civlr5wgPiBuZWlcIDsKK+WvmyA+IGthblwgOwor5a+aID4gaG91XCA7Civlr5ggPiBzaGlcIDsKK+WvlyA+IG5laVwgOwor5a+VID4gbmVpXCA7Civlr5MgPiBndXVcIDsKK+WvjyA+IGthblwgOwor5a+OID4gaGVpXCA7Civlr40gPiBuZWlcIDsKK+WviyA+IGtlblwgOwor5a+KID4gdGVpXCA7Civlr4cgPiBrb3VcIDsKK+WvgSA+IHNhblwgOwor5a+AID4gc2FpXCA7CivlrrwgPiBrb3VcIDsKK+WuuiA+IGtvdVwgOwor5a6yID4gaG91XCA7Civlrq8gPiBrb3VcIDsKK+WurSA+IGt1blwgOwor5a6sID4gc2VpXCA7CivlrqkgPiBzaGlcIDsKK+WupiA+IGthblwgOwor5a6lID4geXV1XCA7CivlrpYgPiBrb3VcIDsKK+WulSA+IHRvdVwgOwor5a6UID4gc2h1XCA7CivlrpEgPiBzZWlcIDsKK+WujyA+IGtvdVwgOwor5a6LID4gc291XCA7CivlroEgPiBjaG9cIDsKK+WugCA+IGJlblwgOwor5a2/ID4gc2FuXCA7CivlrbsgPiBkYWlcIDsKK+WtsyA+IHNoaVwgOwor5a2xID4gc2VuXCA7Civlra8gPiBrYW5cIDsKK+WtriA+IHNvdVwgOwor5a2pID4ga2FpXCA7CivlraggPiBzZW5cIDsKK+WtnyA+IG1vdVwgOwor5a2dID4ga291XCA7CivlrZwgPiBzaGlcIDsKK+WtliA+IHNoaVwgOwor5a2VID4geW91XCA7CivlrY0gPiBnZW5cIDsKK+WtjCA+IHJlblwgOwor5a2IID4gc3VpXCA7CivlrYUgPiBzZW5cIDsKK+WtgyA+IGpvdVwgOwor5a2BID4gcmVpXCA7CivlrYAgPiBzb3VcIDsKK+WsviA+IHJhblwgOwor5ayyID4gam91XCA7CivlrK8gPiB0YWlcIDsKK+WsrSA+IGRhaVwgOwor5aysID4gc2h1XCA7CivlrKggPiBzaGlcIDsKK+WsoyA+IHRhdVwgOwor5aygID4gc2FuXCA7CivlrJ4gPiB0b3VcIDsKK+WsnSA+IGpvdVwgOwor5aybID4ga2VuXCA7CivlrJogPiByZW5cIDsKK+WslyA+IHNlblwgOwor5ayWID4gaGVpXCA7CivlrJMgPiBrZXVcIDsKK+WskCA+IHNlblwgOwor5ayPID4gaGFuXCA7CivlrI4gPiBoYW5cIDsKK+WsiyA+IHNlblwgOwor5ayIID4gZGV1XCA7CivlrIMgPiBzaHVcIDsKK+WsgSA+IHRvdVwgOwor5au9ID4gcmV1XCA7Civlq7sgPiBrYW5cIDsKK+WruiA+IGthblwgOwor5au5ID4gYmF1XCA7Civlq7ggPiBzZW5cIDsKK+WrtiA+IHNldVwgOwor5ausID4gc2hhXCA7Civlq6ogPiByYXVcIDsKK+WrqSA+IGRvblwgOwor5auoID4ga2FuXCA7Civlq6YgPiBrb3VcIDsKK+WrpSA+IHNlblwgOwor5audID4ga2F1XCA7Civlq5ogPiBiYW5cIDsKK+WrmSA+IHNlYlwgOwor5auYID4gcnVpXCA7Civlq5AgPiBqb3VcIDsKK+WrjyA+IHJvdVwgOwor5auNID4gdGF1XCA7Civlq4sgPiBqb3VcIDsKK+WriCA+IHNldVwgOwor5auHID4gYmVpXCA7Civlq4YgPiB5b3VcIDsKK+WrhCA+IGdlblwgOwor5aq+ID4ga291XCA7CivlqrsgPiBoYW5cIDsKK+WquSA+IHJpdVwgOwor5aq4ID4gc2hpXCA7CivlqrYgPiBqb3VcIDsKK+WqtSA+IHlvdVwgOwor5aqyID4gaGVpXCA7Civlqq4gPiB0b3VcIDsKK+WqrSA+IHNodVwgOwor5aqnID4ga2FpXCA7CivlqqUgPiBoZW5cIDsKK+WqpCA+IHNoaVwgOwor5aqiID4gYm91XCA7Civlqp4gPiBzaGlcIDsKK+WqnCA+IHRlaVwgOwor5aqXID4ga2VuXCA7CivlqpQgPiBiZW5cIDsKK+WqkyA+IGtvdVwgOwor5aqPID4gdGFuXCA7CivlqowgPiBib3VcIDsKK+WqiiA+IHNlblwgOwor5am+ID4gdG91XCA7CivlqbsgPiBkYW5cIDsKK+WpuCA+IHRvdVwgOwor5am3ID4gdGVpXCA7CivlqbAgPiB0ZW5cIDsKK+WpqiA+IHJhblwgOwor5ampID4gZ2VuXCA7CivlqacgPiBzZWlcIDsKK+WppSA+IGRvdVwgOwor5amgID4gd2FuXCA7CivlqZ4gPiBrZWlcIDsKK+WpnSA+IHRlblwgOwor5amcID4ga2FuXCA7CivlqZsgPiBrZWlcIDsKK+WpmCA+IGtlblwgOwor5amXID4gZ2VpXCA7CivlqZYgPiB0ZW5cIDsKK+WpkiA+IHRhblwgOwor5amRID4genVpXCA7CivlqYcgPiBzYWlcIDsKK+WphCA+IGhvdVwgOwor5amDID4gc291XCA7CivlqYIgPiBiZW5cIDsKK+WpgSA+IHJvdVwgOwor5ai+ID4gZ2FpXCA7CivlqLkgPiBrZW5cIDsKK+WotiA+IHNodVwgOwor5ai1ID4gc2h1XCA7CivlqK4gPiBkZW5cIDsKK+WoqSA+IGJlblwgOwor5aioID4gYmFuXCA7CivlqKcgPiB0YWlcIDsKK+WopCA+IHNvdVwgOwor5aijID4gdGVpXCA7CivlqJ8gPiBrZW5cIDsKK+WoniA+IGRhaVwgOwor5aiaID4gbmFuXCA7CivlqJkgPiBnb3VcIDsKK+WolyA+IHRlaVwgOwor5aiPID4gYm91XCA7CivlqI0gPiBzZWlcIDsKK+WoiiA+IGtlblwgOwor5aiJID4gaGVpXCA7Civlp74gPiBzZW5cIDsKK+WnvCA+IHNoaVwgOwor5ae4ID4ga2VuXCA7Civlp7cgPiB5dXVcIDsKK+WntSA+IGhhaVwgOwor5aezID4gYmVpXCA7Civlp68gPiBrb3VcIDsKK+WnriA+IGtvdVwgOwor5aetID4ga2VuXCA7Civlp6ogPiBtZWlcIDsKK+WnqSA+IGRlblwgOwor5aenID4ga2FuXCA7Civlp6YgPiBrYW5cIDsKK+WnpCA+IGtvdVwgOwor5aejID4ga291XCA7Civlp6IgPiBrZW5cIDsKK+WnnyA+IGthaVwgOwor5aebID4gdG91XCA7Civlp5ogPiB5b3VcIDsKK+WnmSA+IG5pblwgOwor5aeYID4gaGluXCA7Civlp5cgPiBzYW5cIDsKK+WnliA+IGt5b1wgOwor5aeSID4gc2hpXCA7Civlp5AgPiBhbmVcIDsKK+WnjyA+IGJhblwgOwor5aeNID4gc2FuXCA7Civlp4wgPiB6ZW5cIDsKK+WniiA+IHNoaVwgOwor5aeIID4gcmVpXCA7Civlp4UgPiBoYW5cIDsKK+WnhCA+IGJpblwgOwor5aeDID4gc2VpXCA7CivlprYgPiBrZW5cIDsKK+WmtSA+IHRvdVwgOwor5aazID4gZGFpXCA7CivlpqggPiBib3VcIDsKK+WmpyA+IGdlblwgOwor5aamID4gaG91XCA7CivlpqIgPiBodW5cIDsKK+WmoSA+IGtpblwgOwor5aagID4gZG91XCA7Civlpp4gPiBqdXVcIDsKK+WmnSA+IHNvdVwgOwor5aabID4gc2hpXCA7CivlppogPiBodXVcIDsKK+WmlyA+IHNlblwgOwor5aaPID4gYnVuXCA7Civlpo4gPiBrYWlcIDsKK+WmjSA+IGtlblwgOwor5aaMID4gc2VpXCA7CivlpoUgPiBrb3VcIDsKK+WlvyA+IGdhblwgOwor5aW+ID4gc2VuXCA7CivlpbsgPiBkYW5cIDsKK+WluSA+IGNoaVwgOwor5aW4ID4ga2FuXCA7CivlpbcgPiBzZW5cIDsKK+WltiA+IGRhaVwgOwor5aW1ID4gdGVpXCA7CivlpbIgPiBzaGFcIDsKK+WlsSA+IHJlblwgOwor5aWpID4gcmVuXCA7CivlpaMgPiB3YW5cIDsKK+WloSA+IGdhdVwgOwor5aWgID4gdGVuXCA7CivlpZ8gPiBrb3VcIDsKK+WlmyA+IGtvdVwgOwor5aWaID4ga2VpXCA7CivlpZkgPiBob25cIDsKK+WlmCA+IGpvdVwgOwor5aWVID4gZWtpXCA7CivlpZQgPiBob25cIDsKK+WlkiA+IGthaVwgOwor5aWQID4ga2FuXCA7CivlpY4gPiBrZWlcIDsKK+WljCA+IHRlblwgOwor5aWGID4ga2VuXCA7CivlpYUgPiBob3VcIDsKK+WlgyA+IHRlaVwgOwor5aWAID4gYm91XCA7CivlpLMgPiB0YWlcIDsKK+WksiA+IHRvdVwgOwor5aSwID4ga291XCA7CivlpK8gPiBrb3VcIDsKK+WkrSA+IHlvdVwgOwor5aSjID4gYm91XCA7CivlpKAgPiBrb3VcIDsKK+WknSA+IHNlaVwgOwor5aSYID4gYm91XCA7CivlpJIgPiBkb3VcIDsKK+WkkCA+IGtlaVwgOwor5aSKID4gc3VpXCA7CivlpIYgPiBob3VcIDsKK+WkhSA+IGtvdVwgOwor5aSCID4gY2hpXCA7Civlo74gPiBib3VcIDsKK+WjvCA+IGtvblwgOwor5aO4ID4ga29uXCA7Civlo7QgPiBzaHVcIDsKK+WjriA+IHNvdVwgOwor5aOoID4gcmFpXCA7Civlo6cgPiBnYW5cIDsKK+WjpSA+IHRlblwgOwor5aOkID4gam91XCA7Civlo6MgPiByaW5cIDsKK+WjoCA+IHJvdVwgOwor5aOfID4gb2thXCA7Civlo5wgPiB0YW5cIDsKK+WjmSA+IGtvdVwgOwor5aOYID4gcnVpXCA7Civlo5YgPiB6ZW5cIDsKK+WjlSA+IGdvdVwgOwor5aOUID4gdGF1XCA7Civlo5AgPiBzaGlcIDsKK+WjjyA+IGthblwgOwor5aOOID4ga2VuXCA7Civlo40gPiB6YW5cIDsKK+WjjCA+IGpvdVwgOwor5aOJID4ga3lvXCA7Civlo4UgPiB5b3VcIDsKK+WjgiA+IHRlblwgOwor5aK/ID4gZWtpXCA7Civlor4gPiBrb25cIDsKK+WivSA+IGthdVwgOwor5aK4ID4gc2hvXCA7CivlorMgPiBmdW5cIDsKK+WisSA+IHRvdVwgOwor5aKtID4gc2VpXCA7CivloqwgPiBjaGlcIDsKK+WiqSA+IHRvblwgOwor5aKmID4gaGFuXCA7CivloqUgPiB0b3VcIDsKK+WioSA+IHNlblwgOwor5aKgID4gc2VuXCA7Civlop8gPiBreW9cIDsKK+WiniA+IHpvdVwgOwor5aKdID4ga291XCA7CivlopYgPiB0b3VcIDsKK+WilCA+IHNhaVwgOwor5aKQID4ga2luXCA7CivlooogPiB0ZW5cIDsKK+WiiSA+IHlvdVwgOwor5aKIID4ga2FuXCA7CivlooUgPiBzaG9cIDsKK+WigSA+IGJhblwgOwor5aKAID4gY2hpXCA7Civlob8gPiByb3VcIDsKK+WhvSA+IHNhdVwgOwor5aG8ID4gc2VuXCA7CivlobogPiBiYWlcIDsKK+WhuSA+IHphblwgOwor5aG0ID4gaG91XCA7CivlobIgPiBqb3VcIDsKK+WhsCA+IGFtYVwgOwor5aGrID4gdGVuXCA7CivloaQgPiBrZW5cIDsKK+WhoyA+IHRlaVwgOwor5aGhID4gdGVuXCA7CivloZ8gPiBzb3VcIDsKK+WhnSA+IGhhdVwgOwor5aGcID4gaG91XCA7CivloZggPiB0b3VcIDsKK+WhkiA+IHNoaVwgOwor5aGPID4ga2FpXCA7CivloY4gPiB5b3VcIDsKK+WhjCA+IHRvdVwgOwor5aGBID4gcnVpXCA7CivloL8gPiBrYW5cIDsKK+WgvSA+IGtvdVwgOwor5aC8ID4ga291XCA7CivloLogPiBrYWlcIDsKK+WgrSA+IGthdVwgOwor5aCpID4ga291XCA7CivloKcgPiB6ZW5cIDsKK+WgpiA+IGthaVwgOwor5aClID4gYm91XCA7CivloKEgPiBob3VcIDsKK+WgoCA+IGtvdVwgOwor5aCfID4gdGVuXCA7CivloJ4gPiB0ZXVcIDsKK+WgnCA+IHJlblwgOwor5aCLID4gaG91XCA7CivloIkgPiBpa3VcIDsKK+WgiCA+IGtvdVwgOwor5aCHID4ga2luXCA7CivloIQgPiBnZW5cIDsKK+WggyA+IGtvblwgOwor5Z+/ID4gZGVpXCA7Civln74gPiBzaHVcIDsKK+WfvSA+IHNvdVwgOwor5Z+5ID4gYmFpXCA7Civln7ggPiBla2lcIDsKK+WftiA+IGdlaVwgOwor5Z+zID4ga2FuXCA7Civln7IgPiBob3VcIDsKK+WfsCA+IHNhaVwgOwor5Z+uID4gdGFuXCA7Civln60gPiB0YWlcIDsKK+WfrCA+IHRvdVwgOwor5Z+pID4gc2F1XCA7Civln6YgPiB3YW5cIDsKK+WfpSA+IHNlaVwgOwor5Z+jID4gc2FpXCA7Civln6IgPiBrZW5cIDsKK+WfnyA+IGlraVwgOwor5Z+eID4gdGVpXCA7Civln50gPiB0ZW5cIDsKK+WfnCA+IHNob1wgOwor5Z+VID4gdGVpXCA7Civln48gPiBzZW5cIDsKK+WfjCA+IHJvdVwgOwor5Z+HID4geW91XCA7Civln4QgPiBob3VcIDsKK+WfgiA+IGthdVwgOwor5Z+AID4gc3VpXCA7Civlnr8gPiBzaG9cIDsKK+WeviA+IGthblwgOwor5Z69ID4gZ2luXCA7CivlnrwgPiBla2lcIDsKK+WeuyA+IGhhaVwgOwor5Z65ID4gaG91XCA7CivlnrggPiBrYW5cIDsKK+WetiA+IHNlaVwgOwor5Z6wID4gdGFvXCA7CivlnqkgPiBzZWlcIDsKK+WeqCA+IHNodVwgOwor5Z6nID4ga2VpXCA7CivlnqUgPiBrZXVcIDsKK+WeoCA+IGdpblwgOwor5Z6fID4geW91XCA7CivlnpogPiBnZXVcIDsKK+WemSA+IGt1dVwgOwor5Z6XID4gdGV1XCA7CivlnpUgPiBrb3VcIDsKK+WekyA+IGdhaVwgOwor5Z6QID4gc2hpXCA7CivlnowgPiB0b3VcIDsKK+WeiSA+IGhvdVwgOwor5Z6IID4gdGFpXCA7CivlnoEgPiBjaGlcIDsKK+WdviA+IGNob1wgOwor5Z29ID4gcmVpXCA7CivlnbsgPiBjaGlcIDsKK+WdsCA+IGtlaVwgOwor5Z2uID4gZGFpXCA7Civlna0gPiBkZWlcIDsKK+WdqyA+IHRlblwgOwor5Z2pID4ga2FuXCA7CivlnaUgPiBzaG9cIDsKK+WdpCA+IGtvblwgOwor5Z2iID4gaGFuXCA7CivlnZogPiBrZW5cIDsKK+WdmSA+IGtlaVwgOwor5Z2XID4ga2FpXCA7CivlnZEgPiBrb3VcIDsKK+WdjyA+IGhhaVwgOwor5Z2OID4ga2FuXCA7CivlnY0gPiB0YW5cIDsKK+WdjCA+IGhvblwgOwor5Z2LID4gaHVuXCA7CivlnYkgPiB0b25cIDsKK+WdhiA+IGJhaVwgOwor5Z2FID4ga2luXCA7CivlnYEgPiBzaGlcIDsKK+WdgCA+IHNoaVwgOwor5ZytID4ga2VpXCA7CivlnKYgPiBpcmlcIDsKK+WcoiA+IHRlaVwgOwor5ZyeID4gcmFuXCA7CivlnJ0gPiByYW5cIDsKK+WcnCA+IGthblwgOwor5ZybID4gZWtpXCA7CivlnJogPiBrYWlcIDsKK+WcjCA+IHNlblwgOwor5ZyKID4gc2VpXCA7CivlnIkgPiBneW9cIDsKK+WciCA+IGtlblwgOwor5ZyHID4gcmluXCA7CivlnIUgPiBrYW5cIDsKK+WchCA+IGd5b1wgOwor5ZyCID4ga29uXCA7CivlnIEgPiBnaW5cIDsKK+WbvyA+IHl1dVwgOwor5Zu5ID4gcmVpXCA7Civlm7cgPiBraW5cIDsKK+WbsSA+IHNvdVwgOwor5ZutID4gZ2FuXCA7Civlm6wgPiBrYWlcIDsKK+WbqiA+IHNvdVwgOwor5ZuoID4gaGVuXCA7Civlm6cgPiBrZWlcIDsKK+WbpSA+IGtvdVwgOwor5ZukID4gdG9uXCA7Civlm6EgPiBqdXVcIDsKK+WbnSA+IGtlblwgOwor5ZucID4gamluXCA7Civlm5ggPiBrYWlcIDsKK+WblCA+IGRvdVwgOwor5ZuPID4ga2FuXCA7Civlm4ogPiBub3VcIDsKK+WbiCA+IGdlaVwgOwor5ZuGID4gdGFpXCA7Civlm4UgPiB0ZW5cIDsKK+WbgyA+IHNvdVwgOwor5ZuCID4gZ291XCA7Civlm4AgPiB0ZW5cIDsKK+WaviA+IGthblwgOwor5Zq7ID4gZ291XCA7CivlmrcgPiBqYXVcIDsKK+WatSA+IHNhblwgOwor5ZquID4ga291XCA7CivlmqwgPiBoaW5cIDsKK+WaqiA+IHRhblwgOwor5ZqoID4gcm91XCA7CivlmqIgPiBub3VcIDsKK+WamiA+IGdpblwgOwor5ZqZID4gZ291XCA7CivlmpQgPiB0ZWlcIDsKK+WajiA+IGthdVwgOwor5ZqMID4gc2VpXCA7CivlmoggPiB5b3VcIDsKK+WahiA+IGtvdVwgOwor5ZqDID4gdG91XCA7CivlmoIgPiByYW5cIDsKK+WagCA+IGRlaVwgOwor5Zm/ID4gc3VpXCA7CivlmbkgPiB0b3VcIDsKK+WZuCA+IHRvblwgOwor5Zm3ID4ga2luXCA7CivlmbUgPiBkb3VcIDsKK+WZtCA+IGZ1blwgOwor5ZmwID4geW91XCA7CivlmawgPiB6ZWlcIDsKK+WZpSA+IGRvdVwgOwor5ZmkID4ga2luXCA7CivlmaMgPiBjaHVcIDsKK+WZoiA+IGlrdVwgOwor5ZmhID4gc2VuXCA7CivlmZ8gPiB5b3VcIDsKK+WZniA+IGdlblwgOwor5ZmZID4ga2luXCA7CivlmZQgPiB0b3VcIDsKK+WZkyA+IGt5b1wgOwor5ZmNID4gc2V1XCA7CivlmYsgPiB0b25cIDsKK+WZiSA+IHRhblwgOwor5ZmHID4gdG91XCA7CivlmYYgPiBzb3VcIDsKK+WZgyA+IGhhblwgOwor5ZmAID4gc29uXCA7CivlmL4gPiB0YW5cIDsKK+WYvSA+IHRhblwgOwor5Zi5ID4gcmV1XCA7CivlmLcgPiBrb3VcIDsKK+WYtiA+IHNlaVwgOwor5Zi1ID4ga2V1XCA7CivlmK4gPiB0b3VcIDsKK+WYrSA+IGhvdVwgOwor5ZisID4gc2FpXCA7CivlmKsgPiBkYW1cIDsKK+WYqiA+IGJhaVwgOwor5ZiVID4ga2VuXCA7CivlmJIgPiBrZWlcIDsKK+WYkCA+IGhhdVwgOwor5ZiNID4gcm91XCA7CivlmIwgPiBoZXVcIDsKK+WYiiA+IGdhaVwgOwor5ZiIID4gc2F1XCA7CivlmIUgPiBrYWlcIDsKK+WYhCA+IGtldVwgOwor5Ze/ID4gdGFuXCA7Civll74gPiBzb3VcIDsKK+WXuyA+IHNoYVwgOwor5Ze6ID4gc3VpXCA7Civll7kgPiByZW5cIDsKK+WXuCA+IGdvdVwgOwor5Ze3ID4gZ291XCA7Civll6ggPiBrYWlcIDsKK+WXpSA+IGtvdVwgOwor5ZekID4gc2hpXCA7Civll6EgPiByb3VcIDsKK+WXniA+IHNoaVwgOwor5ZebID4ga2VuXCA7Civll5kgPiBob3VcIDsKK+WXmCA+IGtlaVwgOwor5ZeTID4gc291XCA7Civll5IgPiB0b3VcIDsKK+WXjCA+IGVraVwgOwor5ZeKID4ga291XCA7Civll4ggPiB5b3VcIDsKK+WXgyA+IGtvdVwgOwor5ZeBID4gdGVpXCA7Civllr8gPiBzb3VcIDsKK+WWrSA+IGdlblwgOwor5ZamID4gam91XCA7CivllqQgPiBrb3VcIDsKK+WWmyA+IGthblwgOwor5ZaZID4ga2FpXCA7CivllpcgPiBnaW5cIDsKK+WWlSA+IGJlblwgOwor5ZaUID4gYWt1XCA7CivllpIgPiBzYW5cIDsKK+WWjyA+IHNoYVwgOwor5ZaNID4gc2FpXCA7CivlloogPiBrYW5cIDsKK+WWiCA+IGthaVwgOwor5ZaDID4gbmFuXCA7Civllb8gPiB0YW5cIDsKK+WVvSA+IGdhblwgOwor5ZW7ID4gc2hpXCA7CivllbQgPiB0YW5cIDsKK+WVriA+IGdvdVwgOwor5ZWlID4gc2hhXCA7CivllaEgPiBoYWlcIDsKK+WVnyA+IGtlaVwgOwor5ZWbID4gc2FpXCA7CivllZkgPiBzaGlcIDsKK+WVlyA+IHRhblwgOwor5ZWWID4gdGFuXCA7CivllZUgPiB0b3VcIDsKK+WVlCA+IGtlaVwgOwor5ZWTID4ga2VpXCA7CivllZEgPiBzb3VcIDsKK+WVkCA+IHNhaVwgOwor5ZWNID4gdG9uXCA7CivllYwgPiBrb3VcIDsKK+WViSA+IHJhblwgOwor5ZWIID4ga291XCA7CivllYEgPiB0b3VcIDsKK+WVgCA+IGdhaVwgOwor5ZS7ID4gcmFpXCA7CivllLYgPiBzaGFcIDsKK+WUsyA+IHJlaVwgOwor5ZSrID4gZ2luXCA7CivllKogPiBob3VcIDsKK+WUpCA+IGthblwgOwor5ZSdID4ga291XCA7CivllJggPiBrZWlcIDsKK+WUlyA+IHRvdVwgOwor5ZSVID4gc291XCA7CivllJEgPiB6ZWlcIDsKK+WUjSA+IGthblwgOwor5ZSMID4gc2VuXCA7CivllIkgPiBrYWlcIDsKK+WUhSA+IGthblwgOwor5ZSEID4gdXRhXCA7CivllIEgPiBnZW5cIDsKK+WTvSA+IGtvdVwgOwor5ZO8ID4ga291XCA7Civlk7sgPiBrYW5cIDsKK+WTuCA+IHNhaVwgOwor5ZOwID4gcm91XCA7Civlk68gPiBrZW5cIDsKK+WTriA+IGtvdVwgOwor5ZOkID4gYm91XCA7Civlk6IgPiByb3VcIDsKK+WToCA+IGtvdVwgOwor5ZOPID4ga29uXCA7Civlk44gPiBnYWlcIDsKK+WTiiA+IGlrdVwgOwor5ZOIID4gZ291XCA7Civlk4YgPiBzaGlcIDsKK+WThSA+IGtvdVwgOwor5ZOEID4ga291XCA7Civlk4MgPiB0b3VcIDsKK+WSviA+IHJvdVwgOwor5ZK6ID4ga2VuXCA7CivlkrggPiBrYW5cIDsKK+WStyA+IHRhdVwgOwor5ZK1ID4ga3V1XCA7CivlkrQgPiBrYWlcIDsKK+WSriA+IHRvdVwgOwor5ZKrID4gc2hpXCA7CivlkqggPiBzaGlcIDsKK+WSoyA+IGtvdVwgOwor5ZKUID4gcm91XCA7CivlkpIgPiBzaHVcIDsKK+WSjSA+IGthaVwgOwor5ZKGID4gaG91XCA7CivlkoUgPiB0b3VcIDsKK+WSgiA+IHNvdVwgOwor5ZKBID4ga2FuXCA7CivlkbcgPiBrb3VcIDsKK+WRsiA+IHNoaVwgOwor5ZGwID4gc2hpXCA7Civlka8gPiBoZWlcIDsKK+WRqSA+IHNoaVwgOwor5ZGnID4gdGVpXCA7CivlkaUgPiB6ZW5cIDsKK+WRpCA+IHJlaVwgOwor5ZGjID4gYm91XCA7CivlkaEgPiBidW5cIDsKK+WRoCA+IGhvblwgOwor5ZGeID4gc2hpXCA7CivlkYggPiB0ZWlcIDsKK+WRhyA+IGtlaVwgOwor5ZGFID4gYmFpXCA7CivlkYMgPiBha3VcIDsKK+WRgSA+IGtpblwgOwor5ZC8ID4ga291XCA7CivlkLogPiB0b3VcIDsKK+WQsSA+IHNoaVwgOwor5ZCwID4ga291XCA7CivlkK8gPiBrZWlcIDsKK+WQriA+IHNlblwgOwor5ZCtID4ga291XCA7CivlkKwgPiBraW5cIDsKK+WQqiA+IGd1dVwgOwor5ZCpID4gZnVuXCA7CivlkKggPiB0b25cIDsKK+WQpSA+IGhvdVwgOwor5ZCkID4ga2FpXCA7CivlkKAgPiBoYWlcIDsKK+WQnyA+IGdpblwgOwor5ZCeID4gZG9uXCA7CivlkJkgPiBrdXVcIDsKK+WQmCA+IGdvdVwgOwor5ZCVID4gcnlvXCA7CivlkIYgPiB5b3VcIDsKK+WQhSA+IHRlblwgOwor5ZCCID4gYm91XCA7Civlj7cgPiBnb3VcIDsKK+WPriA+IHRlaVwgOwor5Y+oID4gdG91XCA7Civlj6YgPiByZWlcIDsKK+WPnyA+IHNvdVwgOwor5Y+dID4ga291XCA7Civlj5sgPiBoYW5cIDsKK+WPmCA+IGhlblwgOwor5Y+TID4gc2hpXCA7Civlj48gPiBrYWlcIDsKK+WPhyA+IHRhaVwgOwor5Y+FID4gc2FuXCA7Civlj4QgPiBzYW5cIDsKK+WPgSA+IHNhblwgOwor5Y+AID4gc2VuXCA7Civljr0gPiBydWlcIDsKK+WOuiA+IGt5b1wgOwor5Y65ID4gaml1XCA7CivljrggPiByaW5cIDsKK+WOtyA+IGtvdVwgOwor5Y62ID4gc2hpXCA7CivljrUgPiBnZW5cIDsKK+WOsiA+IHJlaVwgOwor5Y6uID4gc2hpXCA7CivljqsgPiBnb3VcIDsKK+WOqiA+IGtpblwgOwor5Y6nID4gdGVuXCA7CivljqEgPiBnZW5cIDsKK+WOnCA+IHNoaVwgOwor5Y6ZID4gc2hhXCA7CivljpcgPiB0ZWlcIDsKK+WOliA+IGJvdVwgOwor5Y6TID4gZ2FpXCA7Civljo4gPiBzaGlcIDsKK+WOiSA+IHJlaVwgOwor5Y6IID4ga2FuXCA7CivljoMgPiBzZW5cIDsKK+WOgiA+IGthblwgOwor5Y26ID4ga2luXCA7Civlja8gPiBib3VcIDsKK+WNriA+IHNoaVwgOwor5Y2sID4gZ2F1XCA7CivljaUgPiBzZWlcIDsKK+WNpCA+IHNlaVwgOwor5Y2jID4geXV1XCA7CivljZ4gPiBoZW5cIDsKK+WNnSA+IGthblwgOwor5Y2VID4gdGFuXCA7CivljZAgPiBiYW5cIDsKK+WNiyA+IHNlaVwgOwor5Y2FID4gc291XCA7CivljYQgPiBqdXVcIDsKK+WMviA+IGhlblwgOwor5Yy4ID4ga2VpXCA7CivljLcgPiBreW9cIDsKK+WMtCA+IHNhblwgOwor5YyzID4gcmVuXCA7CivljLIgPiByZW5cIDsKK+WMsCA+IHRhblwgOwor5YyvID4gd2FpXCA7CivljKggPiB6b3VcIDsKK+WMpSA+IGhlblwgOwor5YyfID4ga291XCA7CivljJ0gPiBzb3VcIDsKK+WMmCA+IGRvdVwgOwor5YySID4gdG91XCA7CivljI8gPiBob3VcIDsKK+WMjCA+IGtvdVwgOwor5YyLID4gdG91XCA7CivljIQgPiBrYWlcIDsKK+WLvSA+IGJ1blwgOwor5Yu5ID4gaG91XCA7Civli7cgPiBqb3VcIDsKK+WLtSA+IHJlaVwgOwor5Yu0ID4gcnlvXCA7Civli7MgPiBrdW5cIDsKK+WLsiA+IGt1blwgOwor5YuxID4gYmFpXCA7Civli68gPiB0YW5cIDsKK+WLrCA+IGtlblwgOwor5YurID4gaGFuXCA7Civli6ggPiB5b3VcIDsKK+WLpiA+IHNvdVwgOwor5YuhID4gaGV1XCA7Civli5sgPiBrdW5cIDsKK+WLlyA+IGJvdVwgOwor5YuUID4gYmVuXCA7Civli5MgPiBrYWlcIDsKK+WLkSA+IHJhaVwgOwor5YuQID4gYmF1XCA7Civli48gPiBob3VcIDsKK+WLjSA+IGtlaVwgOwor5YuMID4ga2VuXCA7Civli4ggPiB5b3VcIDsKK+WLhiA+IHJvdVwgOwor5YuEID4gYmluXCA7Civli4IgPiBrb3VcIDsKK+WLgSA+IGtlaVwgOwor5Yq/ID4gc2VpXCA7Civlir4gPiBnYWlcIDsKK+WKuiA+IGJvdVwgOwor5Yq3ID4geW91XCA7CivlirYgPiBrb3VcIDsKK+WKtSA+IGtlblwgOwor5YqzID4gcm91XCA7CivlirIgPiBrZWlcIDsKK+WKryA+IHNob1wgOwor5YqnID4gc2hpXCA7CivliqUgPiBrb3VcIDsKK+WKpCA+IGtpblwgOwor5YqeID4gaGVuXCA7Civlip0gPiBrYW5cIDsKK+WKlyA+IHNhblwgOwor5YqWID4gc2FuXCA7CivlipQgPiBrZW5cIDsKK+WKkiA+IGtlblwgOwor5YqRID4gemFpXCA7Civlio4gPiBrZW5cIDsKK+WKjCA+IGtlaVwgOwor5YqKID4ga2FpXCA7CivlioYgPiByZW5cIDsKK+WJvyA+IHNvdVwgOwor5Ym8ID4gc2FuXCA7CivlibsgPiBodXVcIDsKK+WJuCA+IHRhblwgOwor5Ym3ID4gc2FuXCA7CivlibQgPiBnYWlcIDsKK+WJsyA+IHRvdVwgOwor5YmxID4ga2VuXCA7CivlibAgPiBqb3VcIDsKK+WJrSA+IG9rdVwgOwor5YmsID4gdGFuXCA7CivliaogPiBzZW5cIDsKK+WJqSA+IGpvdVwgOwor5YmkID4gemFpXCA7CivliaAgPiBrZWlcIDsKK+WJnCA+IHdhblwgOwor5YmaID4gc2hpXCA7CivliZkgPiBzb3VcIDsKK+WJlyA+IHNhblwgOwor5YmPID4gc291XCA7CivliYUgPiByb3VcIDsKK+WJhCA+IGtlaVwgOwor5Yi4ID4ga2VuXCA7CivliLIgPiBrZWlcIDsKK+WIsSA+IHNvdVwgOwor5YisID4gc2FuXCA7CivliKogPiBzYW5cIDsKK+WIqCA+IGhvdVwgOwor5YinID4gZ291XCA7CivliKIgPiByZWlcIDsKK+WIoSA+IGJpblwgOwor5YigID4gc2FuXCA7CivliJ4gPiBzaG9cIDsKK+WIkyA+IGd1blwgOwor5YiQID4gdGFuXCA7CivliI4gPiBmdW5cIDsKK+WIjCA+IHNvblwgOwor5YiLID4gc2VuXCA7CivliIUgPiBzb3VcIDsKK+WIhCA+IGppblwgOwor5YiCID4gdGF1XCA7CivliIEgPiB0ZXVcIDsKK+WHviA+IGthblwgOwor5Ye3ID4ga2FpXCA7Civlh7UgPiBrYW5cIDsKK+WHsyA+IHRvdVwgOwor5YeyID4ga2FuXCA7Civlh7EgPiBnYWlcIDsKK+WHsCA+IGtvdVwgOwor5YeuID4gZnV1XCA7Civlh60gPiBoZWlcIDsKK+WHqCA+IGZ1dVwgOwor5YelID4ga3lvXCA7Civlh6QgPiBob3VcIDsKK+WHoyA+IGhhblwgOwor5YeiID4gYm9uXCA7Civlh5wgPiByaW5cIDsKK+WHmyA+IHJpblwgOwor5YeYID4gc2hpXCA7Civlh5cgPiBzYWlcIDsKK+WHliA+IGp1blwgOwor5YeVID4gYmVpXCA7Civlh5QgPiBzYXVcIDsKK+WHkSA+IHNvdVwgOwor5YePID4gZ2VuXCA7Civlh4ogPiBzZWlcIDsKK+WHiCA+IHNvdVwgOwor5YeGID4ganVuXCA7Civlh4IgPiBiYWlcIDsKK+WGvyA+IHNlblwgOwor5Ya6ID4gYmluXCA7CivlhrggPiBoYW5cIDsKK+WGrSA+IHRhaVwgOwor5YapID4gc2hhXCA7CivlhqYgPiBrb3VcIDsKK+WGpSA+IG1laVwgOwor5YajID4gc2h1XCA7CivlhqEgPiBib3VcIDsKK+WGlSA+IGJlblwgOwor5YaTID4ga291XCA7CivlhpAgPiBib3VcIDsKK+WGjyA+IGtlaVwgOwor5YaLID4ga2VpXCA7CivlhokgPiBuZW5cIDsKK+WGhCA+IHplblwgOwor5YaDID4gYm91XCA7CivlhoIgPiBrZWlcIDsKK+WFriA+IGtlaVwgOwor5YWnID4gZGFpXCA7CivlhaYgPiBib3VcIDsKK+WFpCA+IGtvdVwgOwor5YWYID4gc2hpXCA7CivlhZUgPiBzaGlcIDsKK+WFiiA+IHRhaVwgOwor5YS/ID4gamluXCA7CivlhL0gPiByYWlcIDsKK+WEvCA+IGdlblwgOwor5YS7ID4gdG91XCA7CivlhLkgPiBzYW5cIDsKK+WEtyA+IHJlaVwgOwor5YSzID4gc2FuXCA7CivlhLEgPiByb3VcIDsKK+WEryA+IHRvdVwgOwor5YSpID4gc2hpXCA7CivlhKcgPiBzYW5cIDsKK+WEpSA+IGlrdVwgOwor5YSkID4gaG91XCA7CivlhKMgPiBrb3VcIDsKK+WEoiA+IHJ5b1wgOwor5YShID4gcmFpXCA7CivlhJ0gPiBrZWlcIDsKK+WEnCA+IGRhdVwgOwor5YSaID4gYm91XCA7CivlhJkgPiBrZW5cIDsKK+WEliA+IHJhblwgOwor5YSVID4gc2VpXCA7CivlhJMgPiB0YWlcIDsKK+WEkSA+IGdhblwgOwor5YSQID4gaGluXCA7CivlhI4gPiBzYWlcIDsKK+WEjCA+IGtldVwgOwor5YSLID4gdGFuXCA7CivlhIogPiBzaG9cIDsKK+WEiSA+IGtlblwgOwor5YSIID4ga2FpXCA7CivlhIcgPiBrZW5cIDsKK+WEhiA+IGtlaVwgOwor5YSFID4gdG91XCA7CivlhIMgPiBzZW5cIDsKK+WEgiA+IGRvdVwgOwor5YO/ID4gc2hpXCA7Civlg7wgPiBob3VcIDsKK+WDuCA+IGtpblwgOwor5YO2ID4gYmluXCA7Civlg68gPiByaW5cIDsKK+WDriA+IGRvdVwgOwor5YOtID4gc2VuXCA7Civlg6wgPiBzZXVcIDsKK+WDqSA+IGthblwgOwor5YOoID4gaHVuXCA7Civlg6QgPiB0YW5cIDsKK+WDoyA+IHNlblwgOwor5YOiID4gc2VuXCA7Civlg6AgPiBmYW5cIDsKK+WDnSA+IHNhblwgOwor5YOcID4gdG91XCA7Civlg5kgPiBrb3VcIDsKK+WDlyA+IHJhdVwgOwor5YOUID4gc29uXCA7Civlg5MgPiB0YWlcIDsKK+WDkCA+IHNlblwgOwor5YOOID4gc2VuXCA7Civlg4wgPiB5b3VcIDsKK+WDiyA+IHRhblwgOwor5YOKID4gc2VuXCA7Civlg4kgPiBzZW5cIDsKK+WDiCA+IGJhblwgOwor5YOGID4gcmVuXCA7Civlg4QgPiBoZXVcIDsKK+WDgiA+IHJvdVwgOwor5YOAID4gdGVpXCA7CivlgrogPiB0ZWlcIDsKK+WCuCA+IHNhdVwgOwor5YK1ID4gc2FpXCA7CivlgrIgPiBnb3VcIDsKK+WCsCA+IGhvdVwgOwor5YKvID4gc291XCA7Civlgq4gPiBzb3VcIDsKK+WCrSA+IHlvdVwgOwor5YKqID4gc2FuXCA7CivlgqQgPiBzYWlcIDsKK+WCoSA+IGhlaVwgOwor5YKdID4gdGFuXCA7CivlgpsgPiB5b3VcIDsKK+WCmiA+IGtvdVwgOwor5YKWID4gc2F1XCA7CivlgpQgPiBrZW5cIDsKK+WCkyA+IHNlblwgOwor5YKSID4ga2VpXCA7CivlgpAgPiBrb3VcIDsKK+WCjyA+IHRvdVwgOwor5YKOID4gdGVuXCA7CivlgosgPiBrYXVcIDsKK+WChyA+IGpvdVwgOwor5YKGID4gZ2VuXCA7CivlgoIgPiBjaGlcIDsKK+WCgSA+IHNvdVwgOwor5YKAID4ga2FpXCA7CivlgbsgPiByb3VcIDsKK+WBuiA+IHNhblwgOwor5YG4ID4gdG91XCA7CivlgbMgPiB0YW5cIDsKK+WBsiA+IHNoaVwgOwor5YGtID4gYmVuXCA7CivlgawgPiBzb3VcIDsKK+WBqyA+IGNoaVwgOwor5YGpID4gaHV1XCA7CivlgaggPiBzaGlcIDsKK+WBpiA+IHNob1wgOwor5YGiID4gc2V1XCA7CivlgaEgPiB0YW5cIDsKK+WBniA+IHlvdVwgOwor5YGdID4gaGFpXCA7CivlgZsgPiBzb3VcIDsKK+WBmSA+IHRlaVwgOwor5YGYID4ga2FuXCA7CivlgZcgPiBzZWlcIDsKK+WBliA+IHNoYVwgOwor5YGVID4ga2FpXCA7CivlgZMgPiBha3VcIDsKK+WBkiA+IHRvdVwgOwor5YGRID4gaHV1XCA7CivlgZAgPiBnYW5cIDsKK+WBjyA+IGhlblwgOwor5YGOID4gd2FpXCA7CivlgY0gPiB0ZWlcIDsKK+WBiyA+IGhlaVwgOwor5YGEID4gZGFuXCA7CivlgYIgPiBzZW5cIDsKK+WAvCA+IGNoaVwgOwor5YC3ID4gZGFpXCA7CivlgLQgPiBob25cIDsKK+WAsyA+IHNoaVwgOwor5YCyID4gdG91XCA7CivlgLEgPiBrb25cIDsKK+WAqyA+IHJpblwgOwor5YCqID4gZ2VpXCA7CivlgKggPiBreW9cIDsKK+WApyA+IHNvdVwgOwor5YClID4ga291XCA7CivlgKMgPiBob3VcIDsKK+WAniA+IGtlaVwgOwor5YCdID4ga2FuXCA7CivlgJcgPiBob3VcIDsKK+WAliA+IGtvdVwgOwor5YCVID4gc3VpXCA7CivlgJMgPiB0YW5cIDsKK+WAkSA+IG1vblwgOwor5YCOID4gdGVuXCA7CivlgI0gPiBiYWlcIDsKK+WAiiA+IHNvdVwgOwor5YCIID4gcmFpXCA7CivlgIUgPiBzYWlcIDsKK+WAhCA+IGtvdVwgOwor5YCCID4gaGVpXCA7CivlgIEgPiBjaGlcIDsKK+S/vyA+IGNoaVwgOwor5L+9ID4ga2luXCA7Civkv7wgPiBpa3VcIDsKK+S/uCA+IGhvdVwgOwor5L+0ID4gc2VuXCA7Civkv7MgPiBoYWlcIDsKK+S/siA+IGtvdVwgOwor5L+rID4gcmFpXCA7Civkv58gPiBzaGlcIDsKK+S/nCA+IGhlaVwgOwor5L+bID4gYmVuXCA7Civkv5YgPiBoYWlcIDsKK+S/lCA+IGtlblwgOwor5L+TID4gZ2F1XCA7Civkv5IgPiBrb25cIDsKK+S/kSA+IHlvdVwgOwor5L+PID4gc2V1XCA7Civkv4ogPiBqdW5cIDsKK+S/hiA+IHNob1wgOwor5L+AID4gdGFpXCA7Civkvr4gPiBrb3VcIDsKK+S+vSA+IGRhblwgOwor5L65ID4gdGVpXCA7CivkvqsgPiBuZWlcIDsKK+S+oyA+IHJ5b1wgOwor5L6fID4gc2VuXCA7CivkvpcgPiB0b3VcIDsKK+S+liA+IHJvblwgOwor5L6UID4gYm91XCA7CivkvpEgPiB5dXVcIDsKK+S+jyA+IHNodVwgOwor5L6KID4ga291XCA7CivkvoggPiBzaGlcIDsKK+S+hSA+IGthaVwgOwor5L6DID4ga2FuXCA7CivkvoAgPiBrZWlcIDsKK+S9vSA+IHNoaVwgOwor5L28ID4ga291XCA7CivkvbogPiBzZW5cIDsKK+S9tyA+IGtvdVwgOwor5L2xID4gaG91XCA7Civkva8gPiB5b3VcIDsKK+S9riA+IGtvdVwgOwor5L2pID4gaGFpXCA7CivkvaMgPiB5b3VcIDsKK+S9oiA+IGt5b1wgOwor5L2hID4ga2VuXCA7CivkvZ8gPiB0b3VcIDsKK+S9niA+IG5laVwgOwor5L2dID4ga291XCA7CivkvZggPiBzaGFcIDsKK+S9kSA+IHl1dVwgOwor5L2MID4gc2hpXCA7CivkvYkgPiBreW9cIDsKK+S9hiA+IHRhblwgOwor5L2CID4geWFpXCA7CivkvYAgPiBzaGlcIDsKK+S8uyA+IGhvdVwgOwor5Ly5ID4gc2hvXCA7CivkvLYgPiByZWlcIDsKK+S8rSA+IGtlblwgOwor5LyjID4ga2VuXCA7CivkvJggPiB5dXVcIDsKK+S8lyA+IGdpblwgOwor5LyTID4gaGFpXCA7CivkvJIgPiBraW5cIDsKK+S8iSA+IGtvdVwgOwor5LyHID4gZWtpXCA7CivkvIUgPiB0b25cIDsKK+S8giA+IGhhaVwgOwor5Lu/ID4gaG91XCA7Civku74gPiB0ZWlcIDsKK+S7vSA+IGhpblwgOwor5Lu3ID4ga2FpXCA7Civku7EgPiBrZW5cIDsKK+S7ryA+IHNvdVwgOwor5LutID4gamluXCA7Civku6AgPiBrYW5cIDsKK+S7nyA+IHNlblwgOwor5LueID4gamluXCA7Civku5wgPiBrb3VcIDsKK+S7miA+IGtlblwgOwor5LuQID4gc2FuXCA7Civku44gPiBqdXVcIDsKK+S7jSA+IGpvdVwgOwor5LuDID4gdGVpXCA7Civku4AgPiBqdXVcIDsKK+S6viA+IGJvdVwgOwor5Lq3ID4gcmVuXCA7CivkurYgPiB0YW5cIDsKK+S6sCA+IGtlaVwgOwor5LqiID4ga291XCA7CivkuqAgPiB0b3VcIDsKK+S6nSA+IHNlaVwgOwor5LqXID4gc2FpXCA7CivkupYgPiBzaGlcIDsKK+S6gyA+IHJpblwgOwor5LqBID4ga2VuXCA7Civkub8gPiBjaGlcIDsKK+S5uSA+IGthblwgOwor5LmqID4gZG91XCA7CivkuakgPiBrZWlcIDsKK+S5qCA+IHNoaVwgOwor5LmiID4gZ2FpXCA7CivkuZYgPiBrYWlcIDsKK+S5kyA+IGhhdVwgOwor5LmSID4gaGVpXCA7CivkuZEgPiBnaW5cIDsKK+S5giA+IGdhaVwgOwor5Li+ID4ga3lvXCA7CivkuL0gPiByZWlcIDsKK+S4tiA+IGNodVwgOwor5LizID4gc2FuXCA7CivkuLEgPiBrYW5cIDsKK+S4sCA+IGhvdVwgOwor5LivID4ga2FpXCA7CivkuKggPiBrb25cIDsKK+S4oyA+IHl1dVwgOwor5LiZID4gaGVpXCA7CivkuJcgPiBzZWlcIDsKK+S4kyA+IHNlblwgOwor5LiQID4ga2FpXCA7CivkuI8gPiBiZW5cIDsKK+S4giA+IGtvdVwgOwor6L+mID4ga2FcIDsKK+efoiA+IHlhXCA7Civlv5wgPiBvdVwgOwor5b+MID4ga2lcIDsKK+i+rSA+IGppXCA7Civlvq4gPiBiaVwgOwor5b6hID4gZ29cIDsKK+i+niA+IGppXCA7CivlvpIgPiB0b1wgOwor5b6QID4gam9cIDsKK+W+gyA+IG91XCA7CivlvoAgPiBvdVwgOwor55y8ID4gbWVcIDsKK+i8qiA+IHdhXCA7CivlvKUgPiBtaVwgOwor55yfID4gbWFcIDsKK+i8nSA+IGtpXCA7CivlvJUgPiBpblwgOwor5byQID4gbmlcIDsKK+W7tiA+IGVuXCA7Civnm64gPiBtZVwgOwor6LqrID4gbWlcIDsKK+W6qyA+IGtvXCA7CivluqcgPiB6YVwgOwor5bqmID4gZG9cIDsKK+W6nCA+IGZ1XCA7CivluocgPiBoaVwgOwor6LiwID4geXVcIDsKK+W4sCA+IGtpXCA7Civnl7ogPiBoaVwgOwor6LevID4gcm9cIDsKK+W3riA+IHNhXCA7Civot6ogPiBraVwgOwor5beoID4ga29cIDsKK+W3oyA+IHN1XCA7Civlt54gPiBzdVwgOwor55ebID4gdHNcIDsKK+eWsiA+IGhpXCA7CivnlpEgPiBnaVwgOwor55aOID4gc29cIDsKK+eWiyA+IHNvXCA7CivotbcgPiBraVwgOwor6LW0ID4gZnVcIDsKK+eUsCA+IHRhXCA7CivnlKUgPiBvaVwgOwor6LSUID4gaGlcIDsKK+iyuyA+IGhpXCA7CivosrQgPiBraVwgOwor55KwID4gd2FcIDsKK+iyqCA+IGthXCA7CivosqAgPiBmdVwgOwor6LGrID4geW9cIDsKK+WxpSA+IHJpXCA7CivlsZMgPiBraVwgOwor5bGLID4geWFcIDsKK+iwtyA+IHlhXCA7CivnkIYgPiByaVwgOwor5a+dID4gbmVcIDsKK+WvkCA+IGJpXCA7Civnj4ggPiBrYVwgOwor5a+EID4ga2lcIDsKK+WutiA+IGtlXCA7Civlrp8gPiBtaVwgOwor5a6cID4gZ2lcIDsKK+eOiyA+IG91XCA7Civorb0gPiB5b1wgOwor6K23ID4gZ29cIDsKK+itsCA+IGdpXCA7CivorawgPiBoaVwgOwor5a2jID4ga2lcIDsKK+WtlyA+IGppXCA7CivlrZAgPiBuZVwgOwor5ayJID4ga2lcIDsKK+WqvCA+IG91XCA7CivoqrIgPiBrYVwgOwor6KqkID4gZ29cIDsKK+eKoCA+IGdpXCA7Civoqp4gPiBnb1wgOwor5aqaID4gYmlcIDsKK+iqiSA+IHlvXCA7CivoqocgPiBrb1wgOwor5ammID4gZnVcIDsKK+WpoiA+IGhpXCA7CivlqYkgPiBlblwgOwor6Ki0ID4gc29cIDsKK+ionSA+IGdhXCA7CivoqJggPiBraVwgOwor54iQID4gcm9cIDsKK+eHnyA+IGVpXCA7CivlpqwgPiB0b1wgOwor5aaTID4ga2lcIDsKK+imiyA+IG1pXCA7CivlpoIgPiBqb1wgOwor5aWzID4gam9cIDsKK+ilpiA+IGp1XCA7CivlpacgPiBvdVwgOwor5aWIID4gbmFcIDsKK+WlhyA+IGtpXCA7CivlpK4gPiBvdVwgOwor5aSqID4gdGFcIDsKK+eEoSA+IG11XCA7CivopJ4gPiBvblwgOwor5aSaID4gdGFcIDsKK+ikkyA+IGhvXCA7Civoo7MgPiBtb1wgOwor6KOhID4gcmlcIDsKK+eDnyA+IGVuXCA7Civoo5wgPiBob1wgOwor5aKuID4gZGFcIDsKK+iiqyA+IGhpXCA7CivoobAgPiBzYVwgOwor54GvID4gaGlcIDsKK+eBqyA+IGhpXCA7CivooZ4gPiBlaVwgOwor6KGbID4gZWlcIDsKK+WhlyA+IHRvXCA7CivloLUgPiB0b1wgOwor5aC0ID4gYmFcIDsKK+eArCA+IHNlXCA7CivloJUgPiBkYVwgOwor6J+yID4ga2lcIDsKK+a/oSA+IGp1XCA7CivonrogPiByYVwgOwor5Z2QID4gemFcIDsKK+WcliA+IHRvXCA7CivmvJQgPiBlblwgOwor5ZyTID4gZW5cIDsKK+WcgyA+IGhvXCA7Civlm7ogPiBrb1wgOwor5ZuzID4genVcIDsKK+WboCA+IGluXCA7Civpu4QgPiBraVwgOwor5rqvID4gc29cIDsKK+iaiiA+IGthXCA7Civpub0gPiBlblwgOwor5rmvID4geXVcIDsKK+a4qSA+IG9uXCA7CivlmKkgPiBrYVwgOwor5rihID4gdG9cIDsKK+m4miA+IG91XCA7CivlmJQgPiBvdVwgOwor6JiHID4gc29cIDsKK+m3uiA+IHJvXCA7Civmt7kgPiBlblwgOwor5rerID4gaW5cIDsKK+WXnyA+IGFhXCA7Civol40gPiBhaVwgOwor5ra4ID4ga29cIDsKK+WWqiA+IG1vXCA7CivllpwgPiBraVwgOwor5rWuID4gZnVcIDsKK+m1oSA+IGJ1XCA7CivmtL4gPiBoYVwgOwor5rSpID4gZWlcIDsKK+azsyA+IGVpXCA7Civlk6kgPiByaVwgOwor5ZOhID4gaW5cIDsKK+azhCA+IGVpXCA7Civlk4AgPiBhaVwgOwor5rK/ID4gZW5cIDsKK+ayuyA+IGppXCA7CivmspkgPiBzYVwgOwor5ZKMID4gd2FcIDsKK+axvSA+IGtpXCA7CivlkbwgPiBrb1wgOwor5rGwID4gdGFcIDsKK+WRqiA+IGp1XCA7CivokaEgPiBob1wgOwor5rGdID4gam9cIDsKK+iRiSA+IGhhXCA7CivlkYkgPiBnb1wgOwor5ZC+ID4gZ29cIDsKK+awuCA+IGVpXCA7CivmsLcgPiBoaVwgOwor5ZCmID4gaGlcIDsKK+awoyA+IGtpXCA7CivmsJcgPiBraVwgOwor5ZCQID4gdG9cIDsKK+WQjyA+IHJpXCA7CivlkI0gPiBuYVwgOwor5Y+vID4ga2FcIDsKK+iPnCA+IG5hXCA7Civmr5sgPiBrZVwgOwor5Y+ZID4gam9cIDsKK+avmCA+IGhpXCA7Civlj5cgPiBqdVwgOwor5q+UID4gaGlcIDsKK+iPkyA+IGthXCA7Civmr4YgPiBvdVwgOwor6I6rID4gYm9cIDsKK+atuCA+IGtpXCA7CivojbcgPiBuaVwgOwor6a2vID4gcm9cIDsKK+WNsSA+IGtpXCA7Civmra8gPiBoYVwgOwor5q2pID4gaG9cIDsKK+atpiA+IGJ1XCA7CivmrZ8gPiB5b1wgOwor6a2YID4gZW5cIDsKK+mtlCA+IG1hXCA7CivljZEgPiBoaVwgOwor5q2QID4gb3VcIDsKK+mthSA+IG1pXCA7CivojLkgPiBqb1wgOwor5qy6ID4gZ2lcIDsKK+astyA+IGtpXCA7CivljJYgPiBrYVwgOwor5YyNID4gaG9cIDsKK+iMhCA+IGthXCA7CivojIIgPiBtb1wgOwor6IuxID4gZWlcIDsKK+iLpiA+IGt1XCA7Civoi5sgPiBrYVwgOwor5YuZID4gbXVcIDsKK+iLkSA+IGVuXCA7Civoir0gPiBtZVwgOwor5YqqID4gZG9cIDsKK+WKoCA+IGthXCA7CivmqpAgPiBlblwgOwor5qqOID4gZ29cIDsKK+mphSA+IGt1XCA7CivmqLkgPiBqdVwgOwor5YipID4gcmlcIDsKK+aooSA+IG1vXCA7CivoiJ4gPiBidVwgOwor6IiHID4geW9cIDsKK+WHuiA+IGRlXCA7Civoh6UgPiBnYVwgOwor6aeIID4ga3VcIDsKK+mnhiA+IGt1XCA7Civpp4QgPiB0YVwgOwor5Ya2ID4geWFcIDsKK+iGmiA+IGZ1XCA7Civmpo4gPiBrYVwgOwor5YW3ID4gZ3VcIDsKK+WFtiA+IGtpXCA7CivppZEgPiBraVwgOwor6IWRID4gZnVcIDsKK+WFkiA+IGppXCA7CivohZAgPiBmdVwgOwor5YWQID4gamlcIDsKK+mkmCA+IHlvXCA7CivppJMgPiBnYVwgOwor5YSAID4gZ2lcIDsKK+WDuSA+IGthXCA7Civpo7IgPiBpblwgOwor6aOuID4gaW5cIDsKK+mjoiA+IGtpXCA7Civog6EgPiBrb1wgOwor5YOeID4gZ2lcIDsKK+mjmyA+IGhpXCA7Civmo4QgPiBraVwgOwor5YKZID4gYmlcIDsKK+mhpyA+IGtvXCA7CivlgZogPiBzYVwgOwor6aGGID4ga2FcIDsKK+ahiCA+IGFuXCA7CivlgYcgPiBrYVwgOwor5qC5ID4gbmVcIDsKK+WAtiA+IGt1XCA7CivlgKQgPiBuZVwgOwor5YCaID4ga2lcIDsKK+mglyA+IGhhXCA7CivpoJAgPiB5b1wgOwor5YCLID4ga29cIDsKK+aghCA+IGVpXCA7Civpn7sgPiBpblwgOwor5p+7ID4gc2FcIDsKK+mfsyA+IG5lXCA7Civnv7MgPiBlaVwgOwor5L+vID4gZnVcIDsKK+S/nSA+IGhvXCA7Civnvr0gPiB3YVwgOwor5p62ID4ga2FcIDsKK+aeryA+IGtvXCA7Civkvq4gPiBidVwgOwor576pID4gZ2lcIDsKK+aenCA+IGthXCA7CivkvpggPiB0YVwgOwor576OID4gYmlcIDsKK+e+hSA+IHJhXCA7CivnvbkgPiByaVwgOwor5721ID4gYmFcIDsKK+mdoSA+IGhpXCA7CivpnZ4gPiBoaVwgOwor5L2ZID4geW9cIDsKK+mdkiA+IGFvXCA7CivkvZAgPiBzYVwgOwor5Ly8ID4gbmlcIDsKK+acqiA+IG1pXCA7CivmnKggPiBraVwgOwor5pyfID4ga2lcIDsKK+S8jiA+IGdpXCA7CivkvI0gPiBnb1wgOwor5LyBID4ga2lcIDsKK+absyA+IGVpXCA7Civpm6IgPiByaVwgOwor5LujID4geW9cIDsKK+S7mCA+IGZ1XCA7CivpmrEgPiBpblwgOwor5pquID4gYm9cIDsKK+maoCA+IGluXCA7CivkupsgPiBzYVwgOwor5pqXID4gYW5cIDsKK+S6lCA+IGdvXCA7CivkupIgPiBnb1wgOwor5LqRID4gdW5cIDsKK+S6jCA+IG5pXCA7CivkuoggPiB5b1wgOwor57m7ID4ganVcIDsKK+aZriA+IGZ1XCA7CivpmaQgPiBqb1wgOwor6ZmiID4gaW5cIDsKK+S5nSA+IGt1XCA7CivpmYQgPiBmdVwgOwor5LmDID4gbm9cIDsKK+mZgCA+IGRhXCA7CivkuLkgPiBuaVwgOwor5pivID4gemVcIDsKK+aYoCA+IGVpXCA7CivkuJYgPiB5b1wgOwor5LiOID4geW9cIDsKK+S4jSA+IGZ1XCA7CivkuIkgPiBtaVwgOwor5pe6ID4gb3VcIDsKK+aXpSA+IGhpXCA7Civml6IgPiBraVwgOwor57a6ID4ga2lcIDsKK+aWlyA+IHRvXCA7CivplpMgPiBtYVwgOwor5paQID4gaGlcIDsKK+aVtyA+IGZ1XCA7CivntKAgPiBzb1wgOwor57SAID4ga2lcIDsKK+aTrCA+IGdpXCA7CivmkqsgPiBidVwgOwor5pGpID4gbWFcIDsKK+exlCA+IHN1XCA7CivnsL8gPiBib1wgOwor57C3ID4gZW5cIDsKK+aOqiA+IHNvXCA7CivmjqkgPiBlblwgOwor5o6bID4ga2FcIDsKK+aOiCA+IGp1XCA7CivnrocgPiBrYVwgOwor5o2XID4gaG9cIDsKK+aNlSA+IGhvXCA7CivmjKggPiBhaVwgOwor56ymID4gZnVcIDsKK+aMgSA+IGppXCA7Civpi60gPiBlaVwgOwor6YuqID4gaG9cIDsKK+aKvCA+IG91XCA7CivnqrogPiBraVwgOwor56q2ID4ga3VcIDsKK+aKqyA+IGhpXCA7CivmipIgPiBqb1wgOwor5om5ID4gaGlcIDsKK+aJtiA+IGZ1XCA7CivmiZMgPiBkYVwgOwor56mPID4gb25cIDsKK+aJiyA+IHRlXCA7CivnqYIgPiBob1wgOwor56i8ID4ga2FcIDsKK+aIuCA+IHRvXCA7CivmiLIgPiBnaVwgOwor5oivID4gZ2lcIDsKK+aHvCA+IGt1XCA7Civnp5ggPiBoaVwgOwor56eRID4ga2FcIDsKK+mHjiA+IG5vXCA7Civph4wgPiByaVwgOwor56WWID4gc29cIDsKK+ellSA+IGhpXCA7CivmhZUgPiBib1wgOwor56WIID4ga2lcIDsKK+aFhyA+IGluXCA7CivmhJsgPiBhaVwgOwor5oSaID4gZ3VcIDsKK+aEiSA+IHl1XCA7CivmhIggPiB5dVwgOwor5oO5ID4gamFcIDsKK+mDqCA+IGJ1XCA7Civno6ggPiBtYVwgOwor5oK4ID4ga2lcIDsKK+aCsiA+IGhpXCA7CivpgqMgPiBkYVwgOwor5oKfID4gZ29cIDsKK+mBvyA+IGhpXCA7CivmgakgPiBvblwgOwor6YGOID4ga2FcIDsKK+mBiyA+IHVuXCA7CivnoLQgPiBoYVwgOwor5oCoID4gZW5cIDsKK+aAliA+IGZ1XCA7CivpgJQgPiB0b1wgOwor5oCSID4gZG9cIDsKK+m+oiA+IGthXCA7CivpvpwgPiBraVwgOwor6b6RID4gZW5cIDsKK+m9riA+IGdpXCA7CivpvZ8gPiBzb1wgOwor6b2WID4gZ2FcIDsKK+m9hyA+IHNhXCA7CivpvYYgPiBvdVwgOwor6by9ID4gZ3VcIDsKK+m8uSA+IGVuXCA7CivpvLQgPiBlblwgOwor6byvID4gZ29cIDsKK+m8lCA+IGtvXCA7CivpvIkgPiB0YVwgOwor6bu8ID4gaG9cIDsKK+m7uCA+IHJvXCA7Civpu68gPiBhblwgOwor6butID4gZW5cIDsKK+m7pCA+IGVuXCA7Civpu6EgPiBlblwgOwor6bufID4gZWlcIDsKK+m6viA+IGtpXCA7CivpurwgPiBtYVwgOwor6bq4ID4gZnVcIDsKK+m6rCA+IGZ1XCA7CivpuqQgPiBzb1wgOwor6bqSID4ga2lcIDsKK+m6jCA+IGd1XCA7CivpuosgPiBiaVwgOwor6bqEID4gc29cIDsKK+m6giA+IGtpXCA7CivpuoEgPiBzb1wgOwor6bm6ID4gc2FcIDsKK+m5tSA+IHJvXCA7CivpuZ8gPiBvdVwgOwor6bmAID4gYnVcIDsKK+m4nSA+IHJpXCA7CivpuJwgPiBrdVwgOwor6biVID4gcm9cIDsKK+m4kiA+IHlvXCA7Civpt7AgPiBlblwgOwor6beXID4gb3VcIDsKK+m3liA+IGVpXCA7Civpt4MgPiBhblwgOwor6bayID4gb3VcIDsKK+m2ryA+IG91XCA7CivptpggPiBrb1wgOwor6baVID4gYW5cIDsKK+m1uiA+IHlhXCA7CivptbcgPiBlblwgOwor6bWvID4gaGlcIDsKK+m1qiA+IGFuXCA7CivptZ4gPiBnYVwgOwor6bWdID4gZ2FcIDsKK+m1kCA+IGJ1XCA7CivptL0gPiBqb1wgOwor6bS8ID4gcm9cIDsKK+m0syA+IGFuXCA7CivptK8gPiBqaVwgOwor6bSjID4ga29cIDsKK+m0nSA+IGt1XCA7CivptJsgPiBlblwgOwor6bSVID4gdGFcIDsKK+m0kSA+IGRvXCA7Civps7YgPiBlblwgOwor6bOsID4gZnVcIDsKK+mzpyA+IGZ1XCA7Civps4EgPiBvblwgOwor6bKPID4gaGlcIDsKK+myiiA+IHNhXCA7CivpsasgPiBhaVwgOwor6bCiID4gYmFcIDsKK+mwmyA+IG9uXCA7CivpsJYgPiB0YVwgOwor6bCLID4gZW5cIDsKK+mvoSA+IGhpXCA7Civpr50gPiBrb1wgOwor6a+LID4gc2FcIDsKK+mvhiA+IGhvXCA7CivprrsgPiBzYVwgOwor6a6sID4gaG9cIDsKK+munyA+IGFuXCA7Civprp4gPiBqaVwgOwor6a6NID4gaGlcIDsKK+muhyA+IGJpXCA7CivproAgPiB0YVwgOwor6a2yID4gcm9cIDsKK+mtriA+IGhpXCA7CivpraYgPiBzYVwgOwor6a2VID4ga2lcIDsKK+mtjyA+IGdpXCA7CivprYwgPiBraVwgOwor6ay9ID4gYmlcIDsKK+msuSA+IGtpXCA7CivprLYgPiBraVwgOwor6ay0ID4gZnVcIDsKK+mskCA+IGtpXCA7CivprI0gPiBrb1wgOwor6ayMID4gdGFcIDsKK+msgSA+IHJpXCA7Civpq78gPiBzYVwgOwor6au9ID4gc2FcIDsKK+mrtSA+IGppXCA7Civpq7IgPiBoaVwgOwor6ausID4gaGlcIDsKK+mrlyA+IHJvXCA7Civpq4MgPiBndVwgOwor6auAID4gaGlcIDsKK+mquyA+IGthXCA7CivpqaogPiByaVwgOwor6amlID4ga2lcIDsKK+mpiiA+IGthXCA7CivpqL4gPiByYVwgOwor6ainID4ga2FcIDsKK+mopCA+IGtpXCA7CivpqKIgPiBrYVwgOwor6aiWID4gYnVcIDsKK+mokSA+IGhpXCA7CivpqI8gPiBraVwgOwor6aiOID4ga2lcIDsKK+mnsCA+IGluXCA7Civpp6wgPiBqaVwgOwor6aehID4gYmFcIDsKK+mnniA+IGRhXCA7Civpp50gPiB0YVwgOwor6aeZID4gZnVcIDsKK+mnlSA+IGdhXCA7Civpp5MgPiBoaVwgOwor6aeRID4gZG9cIDsKK+mmvyA+IHJvXCA7CivpprEgPiB0YVwgOwor6aafID4gdG9cIDsKK+mmlyA+IGtpXCA7CivppaAgPiByYVwgOwor6aWcID4gZW5cIDsKK+mliyA+IGtpXCA7CivppYcgPiB5b1wgOwor6aWCID4gdW5cIDsKK+mkvSA+IGtpXCA7CivppLwgPiBraVwgOwor6aSyID4gZWlcIDsKK+mkrCA+IGtvXCA7CivppKsgPiB1blwgOwor6aShID4gYW5cIDsKK+mknCA+IGthXCA7CivppJQgPiBob1wgOwor6aSHID4gdG9cIDsKK+mjqyA+IHlvXCA7CivporYgPiBrdVwgOwor6aKrID4gZnVcIDsKK+milSA+IGVpXCA7CivpobEgPiByb1wgOwor6aGsID4ganVcIDsKK+mhlyA+IGdpXCA7CivpoLUgPiBpblwgOwor6aC0ID4gZWlcIDsKK+mgqyA+IGZ1XCA7CivpoI4gPiBraVwgOwor6aCNID4gZ2lcIDsKK+mfuiA+IGVpXCA7Civpn7UgPiBpblwgOwor6Z+eID4gb25cIDsKK+mflyA+IHVuXCA7Civpnr8gPiBraVwgOwor6Z6+ID4ga2FcIDsKK+mevCA+IGtpXCA7CivpnrUgPiBhaVwgOwor6Z6NID4gYW5cIDsKK+meiyA+IGFpXCA7CivpnoUgPiBvdVwgOwor6Z6BID4gaGlcIDsKK+mdvyA+IG91XCA7CivpnbsgPiBzb1wgOwor6Z23ID4gaW5cIDsKK+mdtiA+IGhhXCA7CivpnYkgPiBhaVwgOwor6ZyqID4gaW5cIDsKK+mcoyA+IGluXCA7CivpnI8gPiBoaVwgOwor6ZyAID4ganVcIDsKK+mbuiA+IG11XCA7Civpm4UgPiBnYVwgOwor6ZqzID4ga2lcIDsKK+maqSA+IG91XCA7CivpmpggPiBhaVwgOwor6ZqVID4gaW5cIDsKK+makCA+IGluXCA7CivpmosgPiB0YVwgOwor6ZqCID4gaW5cIDsKK+magSA+IGVuXCA7CivpmbsgPiBpblwgOwor6Zm0ID4gaGlcIDsKK+mZkiA+IGtpXCA7CivpmY8gPiB0YVwgOwor6ZmCID4gaGFcIDsKK+mZgSA+IHRhXCA7CivpmL0gPiBlblwgOwor6Zi8ID4gc29cIDsKK+mYuyA+IHNvXCA7CivpmKUgPiBpblwgOwor6ZicID4gZnVcIDsKK+mYhyA+IHRvXCA7Civpl54gPiBrblwgOwor6ZeaID4ga2lcIDsKK+mXjSA+IHRvXCA7Civpl4kgPiBpblwgOwor6Za7ID4gZW5cIDsKK+mWuSA+IGVuXCA7Civplq0gPiByb1wgOwor6ZafID4gaGlcIDsKK+mVviA+IGJpXCA7CivpkbwgPiByYVwgOwor6ZGqID4gcm9cIDsKK+mQliA+IGtpXCA7Civpj5YgPiBvdVwgOwor6Y+NID4gcmFcIDsKK+mPgSA+IHNhXCA7CivpjrYgPiBrYVwgOwor6Y61ID4ga2FcIDsKK+mOoyA+IGVpXCA7CivpjoggPiBzYVwgOwor6Y6CID4gYmlcIDsKK+mOgSA+IHlhXCA7CivpjbogPiB0YVwgOwor6Y2cID4ga2FcIDsKK+mNjSA+IHRvXCA7CivpjYggPiBlaVwgOwor6Yy7ID4gYnVcIDsKK+mMriA+IGtvXCA7CivpjKQgPiBraVwgOwor6YyhID4ga2lcIDsKK+mMjSA+IGhpXCA7Civpi7ogPiBlblwgOwor6YuwID4gcmlcIDsKK+mLoyA+IHlhXCA7Civpi5ggPiBrYVwgOwor6YuGID4gaW5cIDsKK+mKvCA+IHNhXCA7CivpirMgPiBlaVwgOwor6YqoID4gYW5cIDsKK+mKnyA+IHNhXCA7CivpiaAgPiBlaVwgOwor6YmNID4gaGlcIDsKK+mIuSA+IGhpXCA7CivpiLcgPiBrb1wgOwor6YipID4gcm9cIDsKK+mIpiA+IHRhXCA7CivpiKUgPiBrYVwgOwor6YidID4gaW5cIDsKK+mImCA+IGdpXCA7CivpiIcgPiBodVwgOwor6YiGID4gZW5cIDsKK+mIgCA+IGhhXCA7Civph7kgPiBqb1wgOwor6Ye3ID4gdG9cIDsKK+mHtSA+IHNhXCA7Civph6EgPiBmdVwgOwor6YeQID4gcmlcIDsKK+mGvyA+IGJpXCA7CivphrwgPiBlblwgOwor6YaoID4gcmlcIDsKK+mGoSA+IHNhXCA7Civphp4gPiB1blwgOwor6YaWID4gdW5cIDsKK+mGkCA+IGtvXCA7CivphoMgPiBlblwgOwor6YW6ID4gaG9cIDsKK+mFtCA+IHRvXCA7CivphbMgPiBpblwgOwor6YWlID4gc29cIDsKK+mFpCA+IGtvXCA7CivphaIgPiBzdVwgOwor6YWhID4gdGFcIDsKK+mFlyA+IGt1XCA7CivphZMgPiBlblwgOwor6YWIID4gcmlcIDsKK+mEsSA+IGhhXCA7CivphKIgPiBlblwgOwor6YSgID4ga29cIDsKK+mEnCA+IGh1XCA7CivphJYgPiB1blwgOwor6YSIID4ga2lcIDsKK+mEhiA+IHVuXCA7CivphIUgPiBndVwgOwor6YO/ID4gYmlcIDsKK+mDviA+IGVuXCA7Civpg7YgPiBidVwgOwor6YOrID4gaGlcIDsKK+mDoiA+IGVpXCA7Civpg5sgPiBmdVwgOwor6YOZID4gaHVcIDsKK+mCsyA+IGhpXCA7CivpgpAgPiByaVwgOwor6YKPID4gcmFcIDsKK+mChyA+IGppXCA7CivpgaEgPiBzb1wgOwor6YGQID4ga2FcIDsKK+mAviA+IHl1XCA7CivpgLogPiBlblwgOwor6YC1ID4ga2lcIDsKK+mAmCA+IGdpXCA7CivpgIsgPiBob1wgOwor6L+xID4gdGFcIDsKK+i/rCA+IG91XCA7Civov6kgPiBqaVwgOwor6L+VID4gZ29cIDsKK+i/kyA+IGdhXCA7Civov5AgPiB1blwgOwor6L+LID4gb3VcIDsKK+i+pCA+IGppXCA7Civovp0gPiBqaVwgOwor6L2kID4gcm9cIDsKK+i9oSA+IGhpXCA7CivovZ0gPiB5b1wgOwor6L2cID4gamlcIDsKK+i9hSA+IGVuXCA7CivovYAgPiBvblwgOwor6Ly4ID4geXVcIDsKK+i8oCA+IGthXCA7CivovJQgPiBmdVwgOwor6LyFID4gcm9cIDsKK+i8gCA+IGppXCA7Civou7sgPiBrYVwgOwor6LuxID4ga29cIDsKK+i7riA+IG91XCA7Civou4wgPiBraVwgOwor6LuDID4gdGFcIDsKK+i7gCA+IGt1XCA7CivourIgPiB0YVwgOwor6LqxID4gdGFcIDsKK+i6ryA+IGt1XCA7CivoupsgPiBlaVwgOwor6LqXID4gZWlcIDsKK+i5niA+IGtpXCA7CivouYkgPiBzYVwgOwor6Li9ID4ga3VcIDsKK+i4tyA+IHRhXCA7CivouKYgPiBraVwgOwor6LigID4gZW5cIDsKK+i4kSA+IGtpXCA7Civot78gPiB0b1wgOwor6Le9ID4ga2lcIDsKK+i3uiA+IHRhXCA7Civot6wgPiBraVwgOwor6LeoID4ga29cIDsKK+i3pSA+IHRhXCA7Civot5cgPiBmdVwgOwor6LeUID4ga3VcIDsKK+i3jyA+IGthXCA7Civot44gPiB0YVwgOwor6LeHID4gZWlcIDsKK+i3giA+IGtpXCA7CivotrogPiBmdVwgOwor6LWuID4ga2FcIDsKK+i1nyA+IGluXCA7CivotZEgPiBoaVwgOwor6LSPID4gZWlcIDsKK+i0hyA+IGluXCA7Civos7sgPiBmdVwgOwor6LOmID4gZnVcIDsKK+izjyA+IGVpXCA7Civos4ggPiBrb1wgOwor6LOCID4gcm9cIDsKK+izgSA+IGhpXCA7Civos4AgPiBnYVwgOwor6LKzID4gbmlcIDsKK+iyriA+IG5pXCA7CivospQgPiBoaVwgOwor6LKQID4geXVcIDsKK+iyjSA+IHJpXCA7Civosb4gPiBoaVwgOwor6LG8ID4gaGlcIDsKK+ixrSA+IGthXCA7CivosaggPiBraVwgOwor6LGdID4gaGFcIDsKK+ixmSA+IGdpXCA7CivosZcgPiBrYVwgOwor6LGUID4gZW5cIDsKK+ixkyA+IGVuXCA7CivosY4gPiBqdVwgOwor6LGMID4gZW5cIDsKK+ixiCA+IGtpXCA7CivosLogPiBrYVwgOwor6K6UID4gaW5cIDsKK+iujyA+IGVpXCA7CivorowgPiBlblwgOwor6K6GID4gZWlcIDsKK+iuhCA+IHJ1XCA7Civora0gPiBraVwgOwor6K2cID4gZnVcIDsKK+itkiA+IGhhXCA7CivorY8gPiBraVwgOwor6K2MID4ga2FcIDsKK+ithiA+IGtpXCA7CivorYMgPiBrdVwgOwor6K2BID4ga2FcIDsKK+isvCA+IGtvXCA7CivorLMgPiBvdVwgOwor6KyoID4gYm9cIDsKK+isjCA+IGthXCA7Civoq7MgPiBhblwgOwor6KuxID4ga2lcIDsKK+irrSA+IHl1XCA7Civoq5sgPiB5dVwgOwor6KuGID4ga2lcIDsKK+iquSA+IGhpXCA7CivoqqcgPiBob1wgOwor6KqjID4gZnVcIDsKK+iqkiA+IGtpXCA7CivoqpAgPiBnYVwgOwor6KqLID4ga2lcIDsKK+iqgCA+IGppXCA7Civoqa0gPiBraVwgOwor6KmrID4gdGFcIDsKK+ipoSA+IGt1XCA7CivoqaAgPiBlaVwgOwor6KmbID4gc29cIDsKK+ipliA+IGhpXCA7CivoqZEgPiB0YVwgOwor6KmQID4gc2FcIDsKK+ipjSA+IGVpXCA7CivoqYggPiByaVwgOwor6KmBID4ga29cIDsKK+iotiA+IGthXCA7CivoqK8gPiBzYVwgOwor6KiPID4ga3VcIDsKK+iogyA+IGZ1XCA7Civop60gPiBraVwgOwor6KeaID4ga29cIDsKK+inlSA+IHNvXCA7CivoprwgPiByYVwgOwor6Ka2ID4gcmFcIDsKK+imsCA+IHNvXCA7CivopqwgPiBraVwgOwor6KapID4gdG9cIDsKK+impiA+IHl1XCA7CivoppkgPiByYVwgOwor6KaPID4ga2lcIDsKK+imiiA+IGtpXCA7CivopokgPiBraVwgOwor6KaHID4gaGFcIDsKK+iloyA+IGhpXCA7CivopLUgPiByaVwgOwor6KSyID4ga29cIDsKK+ikqCA+IHNhXCA7CivopJUgPiB5dVwgOwor6KO5ID4ga2FcIDsKK+ijtyA+IGVuXCA7Civoo6ggPiBoaVwgOwor6KOfID4gc2FcIDsKK+ijlCA+IGVpXCA7Civoo4AgPiBpblwgOwor6KK9ID4gam9cIDsKK+iiriA+IG5lXCA7CivoopkgPiBoYVwgOwor6KKIID4ga2FcIDsKK+iigSA+IGVuXCA7CivoobkgPiBraVwgOwor6KGiID4ga3VcIDsKK+ihmiA+IGtvXCA7CivooY0gPiBlblwgOwor6KGIID4gamlcIDsKK+iguSA+IHRvXCA7CivooLEgPiBrb1wgOwor6KCnID4gdG9cIDsKK+iglSA+IGRhXCA7CivooJEgPiBlaVwgOwor6KCDID4gcmFcIDsKK+ifqyA+IGluXCA7Civon6MgPiBraVwgOwor6J+iID4ga2lcIDsKK+ieviA+IGluXCA7Civonp4gPiBiYVwgOwor6J6YID4gZ2lcIDsKK+iduCA+IGthXCA7CivonbQgPiBrb1wgOwor6J2vID4gZW5cIDsKK+idnSA+IGVuXCA7CivonZggPiBlblwgOwor6J2TID4geXVcIDsKK+idjCA+IGthXCA7CivonL8gPiBlblwgOwor6Jy+ID4ga2FcIDsKK+icsSA+IGhpXCA7CivonJ4gPiBraVwgOwor6JyaID4gaGlcIDsKK+ickiA+IGVuXCA7CivonI4gPiBlblwgOwor6JyKID4gcmlcIDsKK+iciSA+IGZ1XCA7CivonIggPiBnb1wgOwor6JyFID4gaHVcIDsKK+ibviA+IGdhXCA7Civom4QgPiBrb1wgOwor6Jq5ID4gaHVcIDsKK+iatSA+IGthXCA7Civomq0gPiBqaVwgOwor6JqoID4gaHVcIDsKK+ianCA+IGthXCA7CivompogPiBraVwgOwor6JqTID4gaW5cIDsKK+iakSA+IGtpXCA7Civomo0gPiBoaVwgOwor6Jm6ID4ga2lcIDsKK+iZpyA+IGtpXCA7CivomZ0gPiBrb1wgOwor6JmYID4gc2FcIDsKK+iZliA+IGtvXCA7CivomY0gPiBrb1wgOwor6JmCID4gcm9cIDsKK+iZgSA+IGtpXCA7CivomL8gPiByYVwgOwor6Ji8ID4gYmlcIDsKK+iYuiA+IHJpXCA7CivomLYgPiBnaVwgOwor6JinID4ga3VcIDsKK+iYoSA+IG91XCA7CivomJkgPiBlaVwgOwor6JiTID4gc29cIDsKK+iYkSA+IG1hXCA7CivomI4gPiBraVwgOwor6JiKID4gdW5cIDsKK+iYhCA+IGtpXCA7Civol7sgPiBtb1wgOwor6Je5ID4gYWlcIDsKK+iXtCA+IHVuXCA7Civol6YgPiBiYVwgOwor6Ja/ID4gZ2lcIDsKK+iWtyA+IGp1XCA7CivolpcgPiBlblwgOwor6JaGID4gYWlcIDsKK+iWgCA+IHVuXCA7CivolbcgPiB5b1wgOwor6JWwID4gdW5cIDsKK+iVoCA+IGpvXCA7CivolZwgPiBoaVwgOwor6JWTID4gdW5cIDsKK+iUtCA+IG1hXCA7CivolKwgPiBzb1wgOwor6JSrID4gZW5cIDsKK+iUoiA+IGhhXCA7Civok5kgPiB6YVwgOwor6JOWID4gaGlcIDsKK+iTjyA+IHJhXCA7Civok4wgPiBzYVwgOwor6JOKID4gb3VcIDsKK+iSvSA+IG9uXCA7CivokrEgPiBob1wgOwor6JKpID4gc29cIDsKK+iSniA+IHJpXCA7CivokpUgPiB1blwgOwor6JGtID4ga2FcIDsKK+iRqyA+IGtvXCA7CivokakgPiBoYVwgOwor6JGKID4gYW5cIDsKK+iRhiA+IGhvXCA7CivokLggPiB5dVwgOwor6JC1ID4gd2FcIDsKK+iQkyA+IGdpXCA7CivokIYgPiBoaVwgOwor6JCBID4ga2lcIDsKK+iPuCA+IGVuXCA7Civoj7QgPiBhblwgOwor6I+yID4gaGlcIDsKK+iPsCA+IGtvXCA7Civoj6AgPiBoYVwgOwor6I+fID4gdG9cIDsKK+iPjyA+IGthXCA7Civoj4cgPiBrb1wgOwor6I+AID4gZW5cIDsKK+iOtSA+IHRvXCA7CivojqogPiBnYVwgOwor6I6pID4gaHVcIDsKK+iOnSA+IHNhXCA7CivojpogPiBlblwgOwor6I6OID4gc2FcIDsKK+iOhiA+IGh1XCA7CivojoUgPiByaVwgOwor6I28ID4gdG9cIDsKK+iNsCA+IHRvXCA7CivojZQgPiByaVwgOwor6I2CID4ga2FcIDsKK+iMtSA+IGluXCA7CivojLIgPiBqaVwgOwor6IywID4geXVcIDsKK+iMoyA+IGdvXCA7CivojJggPiByaVwgOwor6Iu9ID4ga29cIDsKK+iLuyA+IGZ1XCA7Civoi7QgPiBzb1wgOwor6IukID4gaGlcIDsKK+iKviA+IGhpXCA7CivoirogPiBvdVwgOwor6IqwID4ga2lcIDsKK+iKrSA+IGJhXCA7CivoiqogPiBraVwgOwor6IqmID4gcm9cIDsKK+iKmSA+IGZ1XCA7CivoipggPiBoaVwgOwor6IqUID4ga2lcIDsKK+iKkSA+IGtpXCA7CivoioggPiBiYVwgOwor6Im3ID4gZW5cIDsKK+iJqiA+IHJvXCA7CivoiaQgPiBnaVwgOwor6ImjID4gcm9cIDsKK+iJliA+IHNhXCA7CivoiYUgPiB5b1wgOwor6ImDID4gcmlcIDsKK+iIuCA+IGthXCA7CivoiK4gPiByb1wgOwor6IiXID4gaG9cIDsKK+iIliA+IGhvXCA7CivoiJIgPiBqb1wgOwor6IiBID4geW9cIDsKK+iHviA+IHl1XCA7Civoh54gPiBrdVwgOwor6IedID4gcmFcIDsKK+iHmSA+IGVuXCA7Civoh4IgPiBoaVwgOwor6Ia0ID4ga29cIDsKK+iGqSA+IGppXCA7CivohoYgPiBzb1wgOwor6IW0ID4geXVcIDsKK+iFoSA+IHJhXCA7CivohZcgPiBoaVwgOwor6IWTID4gaGlcIDsKK+iEviA+IGhpXCA7CivohLUgPiBrb1wgOwor6ISvID4gaG9cIDsKK+iEniA+IHNhXCA7CivohJwgPiBqdVwgOwor6IO5ID4gamlcIDsKK+iDryA+IGtvXCA7Civog60gPiBpblwgOwor6IOZID4gc29cIDsKK+iDlSA+IGh1XCA7Civog40gPiBrb1wgOwor6IOKID4ga3VcIDsKK+iCuSA+IGhpXCA7Civogp4gPiBzYVwgOwor6IKaID4gdG9cIDsKK+iBrSA+IGtpXCA7CivogLogPiB1blwgOwor6IC2ID4geWFcIDsKK+iAoSA+IGpvXCA7CivogJ4gPiBrYVwgOwor6ICZID4gaGFcIDsKK+iAmCA+IHVuXCA7CivogI8gPiBqaVwgOwor6ICNID4gc2FcIDsKK+iAjCA+IGppXCA7CivogIYgPiBraVwgOwor57+sID4ga2lcIDsKK+e/oSA+IGhpXCA7CivnvrIgPiBnaVwgOwor576tID4geXVcIDsKK+e+liA+IGtvXCA7CivnvosgPiBiYVwgOwor576IID4ga2lcIDsKK+e+hyA+IGtpXCA7CivnvoYgPiBoaVwgOwor5723ID4gaGlcIDsKK+e9qCA+IGFuXCA7CivnvaYgPiBodVwgOwor572fID4ga29cIDsKK+e9myA+IHJvXCA7CivnvZggPiBmdVwgOwor572PID4gcm9cIDsKK+e9jCA+IG91XCA7CivnvYMgPiBvdVwgOwor57y7ID4gZnVcIDsKK+e6kyA+IGVpXCA7CivnupEgPiByb1wgOwor57mnID4gdW5cIDsKK+e5pSA+IGtpXCA7CivnuYQgPiBlaVwgOwor57i7ID4gYmlcIDsKK+e4tyA+IHJ1XCA7CivnuK8gPiBlblwgOwor57itID4gcmlcIDsKK+e4nCA+IGluXCA7CivnuJUgPiB1blwgOwor57iKID4gZWlcIDsKK+e4iCA+IGVpXCA7CivnuIAgPiBrYVwgOwor57ejID4gZW5cIDsKK+e3iyA+IGhpXCA7CivntqwgPiBqdVwgOwor57amID4ga2lcIDsKK+e2niA+IHRhXCA7CivntpYgPiBlblwgOwor57WuID4gam9cIDsKK+e1qiA+IGluXCA7CivntaUgPiBoaVwgOwor57WdID4ga3VcIDsKK+e1hyA+IGt1XCA7CivntL0gPiB0YVwgOwor57SmID4gaGFcIDsKK+e0nCA+IHVuXCA7CivntJcgPiBzYVwgOwor57SVID4gaGlcIDsKK+ezryA+IGRhXCA7Civns6IgPiBib1wgOwor57OcID4gYmlcIDsKK+eyvyA+IGthXCA7CivnsqsgPiBqaVwgOwor57KQID4gcm9cIDsKK+eyjyA+IHRhXCA7CivnsoYgPiBzYVwgOwor57KDID4gaGlcIDsKK+exuSA+IGpvXCA7CivnsbIgPiB5dVwgOwor57GuID4gcmFcIDsKK+exrCA+IHJpXCA7CivnsZ0gPiBlaVwgOwor57GaID4gcm9cIDsKK+ewuCA+IGhhXCA7CivnsKwgPiByb1wgOwor57CjID4ga2lcIDsKK+ewoCA+IGh1XCA7CivnsJQgPiBzYVwgOwor57CRID4gc2FcIDsKK+ewiyA+IGtpXCA7CivnsIQgPiBrb1wgOwor57CCID4ga2VcIDsKK+evtiA+IGVuXCA7Civnr5ogPiBoaVwgOwor56+UID4gdW5cIDsKK+eutiA+IGtvXCA7CivnrqUgPiBoYVwgOwor566bID4ga29cIDsKK+eulSA+IGtpXCA7Civnro4gPiBrb1wgOwor562gID4gaW5cIDsKK+etjiA+IGpvXCA7CivnrLQgPiBrYVwgOwor56yzID4ga2FcIDsKK+esryA+IGRvXCA7CivnrJ8gPiBrb1wgOwor56yGID4gaGFcIDsKK+errCA+IGt1XCA7Civnq6ogPiBqdVwgOwor56upID4gZ2lcIDsKK+erkiA+IGtpXCA7CivnqrkgPiBnb1wgOwor56qzID4gd2FcIDsKK+eqrCA+IHl1XCA7CivnqqogPiB3YVwgOwor56qpID4ga2FcIDsKK+eqoCA+IGthXCA7CivnqoogPiB3YVwgOwor56mpID4gb25cIDsKK+eppSA+IHlvXCA7CivnqaIgPiBhaVwgOwor56mWID4ga2lcIDsKK+epjiA+IGVpXCA7CivnqYwgPiBzb1wgOwor56izID4gb25cIDsKK+eoniA+IGthXCA7CivnqJggPiBraVwgOwor56iMID4gdG9cIDsKK+eogyA+IGh1XCA7Civnp6cgPiBvdVwgOwor56egID4gaGlcIDsKK+ennyA+IHNvXCA7Civnp5UgPiBoaVwgOwor56a+ID4ga2FcIDsKK+emqCA+IGtpXCA7CivnpqcgPiBraVwgOwor56ahID4gYmFcIDsKK+emnCA+IGVpXCA7CivnppEgPiBndVwgOwor56aNID4ga2FcIDsKK+emiyA+IGluXCA7CivnpbsgPiBrb1wgOwor56W6ID4ga2lcIDsKK+elnCA+IGtvXCA7CivnpZogPiBzb1wgOwor56WZID4gbWlcIDsKK+ellCA+IGh1XCA7CivnpYcgPiBraVwgOwor56WBID4ga2lcIDsKK+ekoCA+IGppXCA7CivnpJwgPiB5b1wgOwor56SSID4gZ2lcIDsKK+ejryA+IGtpXCA7Civno6QgPiBpblwgOwor56OgID4gcm9cIDsKK+ejkiA+IGluXCA7Civno4sgPiBzYVwgOwor56OBID4gamlcIDsKK+eivCA+IGJhXCA7CivnoqwgPiBrYVwgOwor56KkID4gZWlcIDsKK+eilSA+IGtpXCA7CivnopQgPiBidVwgOwor56KGID4gaGFcIDsKK+eigSA+IGdvXCA7CivnoaogPiBnaVwgOwor56C1ID4gb3VcIDsKK+egriA+IGRvXCA7CivnoKMgPiB0YVwgOwor56CiID4gcmFcIDsKK+egkiA+IGhpXCA7CivnoJEgPiBnYVwgOwor56CGID4gaHVcIDsKK+efrCA+IHNhXCA7Civnn6kgPiBrdVwgOwor55+RID4gcm9cIDsKK+eevyA+IGt1XCA7Civnnr0gPiBrb1wgOwor5565ID4gYWlcIDsKK+eetiA+IGtpXCA7CivnnpYgPiBlaVwgOwor556GID4ga2lcIDsKK+edvyA+IGVpXCA7CivnnbkgPiB0b1wgOwor552xID4ga2FcIDsKK+edoiA+IGtpXCA7CivnnY4gPiBraVwgOwor552KID4gZW5cIDsKK+edgiA+IGJpXCA7CivnnK0gPiBraVwgOwor55yXID4ga3VcIDsKK+ebsSA+IGt1XCA7Civnm6wgPiBrb1wgOwor55unID4gcm9cIDsKK+ebpiA+IG91XCA7Civnm5kgPiBmdVwgOwor55uOID4gb3VcIDsKK+ebiSA+IGthXCA7Civnm4ggPiBlaVwgOwor55uBID4gZWlcIDsKK+eatyA+IGtvXCA7CivnmqcgPiBhaVwgOwor55qkID4gaGFcIDsKK+eaiCA+IGtpXCA7Civnma8gPiBrdVwgOwor55muID4gaW5cIDsKK+eZrSA+IGVpXCA7CivnmZIgPiB5dVwgOwor55mKID4gaW5cIDsKK+eYuCA+IGthXCA7CivnmKUgPiBzYVwgOwor55ifID4gb25cIDsKK+eYniA+IGVpXCA7CivnmJYgPiBpblwgOwor55iVID4ga2FcIDsKK+eYjyA+IHRvXCA7CivnmIkgPiB5dVwgOwor55iAID4geW9cIDsKK+eXvCA+IGtvXCA7Civnl7kgPiBoaVwgOwor55eyID4gbWFcIDsKK+eXsSA+IGhpXCA7Civnl6cgPiBzYVwgOwor55ekID4gc2FcIDsKK+eXoiA+IHJpXCA7Civnl6EgPiBob1wgOwor55eeID4gaGlcIDsKK+eXlCA+IGppXCA7Civnl4QgPiBzYVwgOwor55eCID4ga2FcIDsKK+eXgCA+IGt1XCA7Civnlr8gPiBoaVwgOwor55akID4gaGFcIDsKK+eWnCA+IGthXCA7CivnlpUgPiBoaVwgOwor55aPID4gc29cIDsKK+eVvyA+IGtpXCA7CivnlbggPiBraVwgOwor55WyID4geW9cIDsKK+eVrSA+IHlvXCA7CivnlawgPiB5b1wgOwor55WdID4gc2VcIDsKK+eVkiA+IGhvXCA7CivnlYkgPiBmdVwgOwor55WHID4gaW5cIDsKK+eVhiA+IGhvXCA7CivnlYAgPiBoaVwgOwor55SrID4gaG9cIDsKK+eUliA+IG91XCA7CivnlJIgPiBidVwgOwor55SMID4gb3VcIDsKK+eTryA+IG91XCA7Civnk64gPiBvdVwgOwor55OgID4ga29cIDsKK+eTlCA+IGVpXCA7Civnk5AgPiByb1wgOwor55K9ID4gamlcIDsKK+eStSA+IHlvXCA7CivnkqYgPiBhaVwgOwor55KjID4ga2lcIDsKK+eSnyA+IGVpXCA7CivnkpEgPiBidVwgOwor55KQID4gcm9cIDsKK+eSgyA+IHJpXCA7CivnkbMgPiBzYVwgOwor55GqID4gYmFcIDsKK+eRqSA+IGVpXCA7CivnkaMgPiBzYVwgOwor55GcID4geXVcIDsKK+eRmyA+IGVpXCA7CivnkZogPiBrb1wgOwor55GXID4gZW5cIDsKK+eQtiA+IGhhXCA7CivnkLUgPiBiaVwgOwor55CwID4gZW5cIDsKK+eQrCA+IGVuXCA7CivnkKogPiBraVwgOwor55CmID4ga2lcIDsKK+eQpSA+IGtvXCA7CivnkJEgPiBzYVwgOwor55CKID4geWFcIDsKK+ePuCA+IGdvXCA7Civnj7cgPiBidVwgOwor54+0ID4gZ2FcIDsKK+ePsSA+IGVpXCA7Civnj6UgPiBqaVwgOwor54+dID4ga3VcIDsKK+ePgiA+IGthXCA7CivnjrsgPiBoYVwgOwor546eID4gaHVcIDsKK+eOmCA+IGtpXCA7CivnjoYgPiBqaVwgOwor546AID4gcmFcIDsKK+eNvCA+IGJpXCA7CivnjbkgPiByb1wgOwor54yoID4gZW5cIDsKK+eMpyA+IGthXCA7CivnjKQgPiBraVwgOwor54yiID4ga29cIDsKK+eMkyA+IGthXCA7CivnjJIgPiBlblwgOwor54yHID4gb3VcIDsKK+eLsyA+IHlvXCA7Civni5UgPiBvdVwgOwor54uSID4gaGlcIDsKK+eLiSA+IGhpXCA7Civni4EgPiBpblwgOwor54qnID4gZ2lcIDsKK+eKkyA+IHN1XCA7CivnioIgPiByaVwgOwor54qBID4gcmlcIDsKK+eJviA+IGdvXCA7CivnibEgPiBrYVwgOwor54mvID4ga29cIDsKK+eJqyA+IGthXCA7CivniaAgPiB0YVwgOwor54mBID4ga2FcIDsKK+eIviA+IGppXCA7CivniLkgPiB0YVwgOwor54i4ID4gaGFcIDsKK+eIsCA+IGVuXCA7CivniKwgPiBoYVwgOwor54iTID4gZW5cIDsKK+eHrCA+IGtpXCA7Civnh4QgPiBlblwgOwor54a6ID4ga2lcIDsKK+eGuSA+IGtpXCA7CivnhrAgPiBvdVwgOwor54aZID4ga2lcIDsKK+eGiCA+IGtpXCA7CivnhoUgPiB1blwgOwor54WmID4ga3VcIDsKK+eFlSA+IGtpXCA7CivnhZAgPiBlaVwgOwor54WHID4ga2lcIDsKK+eFhiA+IGthXCA7CivnhLggPiBrb1wgOwor54SxID4gZW5cIDsKK+eEsCA+IGVuXCA7CivnhIkgPiBlblwgOwor54OTID4gZWlcIDsKK+eCrCA+IGtvXCA7CivngokgPiByb1wgOwor54KBID4ga2lcIDsKK+eBqSA+IGVuXCA7CivngacgPiBlblwgOwor54GeID4gaGFcIDsKK+eBlSA+IHJpXCA7CivngZQgPiBlblwgOwor54GOID4gZW5cIDsKK+eBiCA+IGt1XCA7CivngLQgPiBlaVwgOwor54CwID4gYmlcIDsKK+eAryA+IGVpXCA7CivngKAgPiBlaVwgOwor54CbID4gZWlcIDsKK+eAmCA+IHJvXCA7CivngIcgPiBvdVwgOwor54CFID4gZWlcIDsKK+a/niA+IGhpXCA7Civmv5ogPiBlaVwgOwor5r6mID4geW9cIDsKK+a+kCA+IHVuXCA7Civmvb0gPiBob1wgOwor5r2eID4gcm9cIDsKK+a9mSA+IGtpXCA7CivmvYEgPiBlaVwgOwor5rymID4gZ2lcIDsKK+a8miA+IG91XCA7CivmvJMgPiByaVwgOwor5ryKID4gcnVcIDsKK+a7uSA+IGtvXCA7Civmu7ggPiBrb1wgOwor5ru3ID4gcm9cIDsKK+a7rCA+IGtvXCA7Civmu48gPiBodVwgOwor5ruLID4gamlcIDsKK+a7iiA+IGtpXCA7Civmu4MgPiBvdVwgOwor5rqzID4gdW5cIDsKK+a6qyA+IG9uXCA7CivmuqYgPiBtaVwgOwor5rqlID4gaG9cIDsKK+a6oCA+IHNhXCA7CivmuoggPiBraVwgOwor5rmuID4gaW5cIDsKK+a5hCA+IGJpXCA7CivmuLwgPiBiaVwgOwor5ri2ID4gZWlcIDsKK+a4riA+IGthXCA7CivmuKMgPiBzYVwgOwor5ridID4geXVcIDsKK+a4lSA+IGVuXCA7CivmuIogPiBlblwgOwor5riEID4gaGlcIDsKK+a3pCA+IHlvXCA7Civmt6AgPiBoaVwgOwor5redID4gaGlcIDsKK+a3hyA+IGtpXCA7CivmtrkgPiB3YVwgOwor5ra0ID4gZW5cIDsKK+a2giA+IHRvXCA7Civmta8gPiBnb1wgOwor5rS8ID4gYWlcIDsKK+a0uSA+IGVuXCA7CivmtLMgPiBqb1wgOwor5rSxID4gamlcIDsKK+a0jyA+IGppXCA7CivmtI4gPiBraVwgOwor5rSHID4gaW5cIDsKK+azsSA+IG91XCA7Civms50gPiBzb1wgOwor5rOTID4gb3VcIDsKK+azkiA+IGtvXCA7Civmsr0gPiBrb1wgOwor5rKyID4gdGFcIDsKK+aysSA+IHRhXCA7CivmspggPiBoaVwgOwor5rKNID4gZ29cIDsKK+ayhyA+IGVuXCA7CivmsoIgPiBraVwgOwor5rG7ID4ga29cIDsKK+axqiA+IG91XCA7CivmsYogPiBzYVwgOwor5rC/ID4ga2lcIDsKK+awsyA+IHVuXCA7CivmsLIgPiB1blwgOwor5rCoID4gYW5cIDsKK+awpCA+IGluXCA7CivmsJQgPiBraVwgOwor5rCNID4ga3VcIDsKK+awgiA+IHJpXCA7Civmr7kgPiB5dVwgOwor5q+mID4gamlcIDsKK+avliA+IGhpXCA7Civmr4sgPiBidVwgOwor5q+FID4ga2lcIDsKK+avgSA+IGtpXCA7Civmr4AgPiBraVwgOwor5q65ID4gZWlcIDsKK+autyA+IGluXCA7CivmrrQgPiBvdVwgOwor5q6sID4gdG9cIDsKK+auqiA+IGVpXCA7Civmrp4gPiBpblwgOwor5q6CID4gc29cIDsKK+atpyA+IGtpXCA7CivmraUgPiBob1wgOwor5q2WID4ga2lcIDsKK+asuCA+IGFpXCA7CivmrKggPiBrdVwgOwor5qynID4gb3VcIDsKK+aspCA+IHlvXCA7CivmrJsgPiBoYVwgOwor5qyPID4gcmFcIDsKK+arvSA+IGluXCA7Civmq7IgPiB5b1wgOwor5quoID4gcm9cIDsKK+arniA+IGVuXCA7Civmq5MgPiByb1wgOwor5quDID4ga2lcIDsKK+aqvyA+IGVuXCA7Civmqr0gPiBqaVwgOwor5qq8ID4gaW5cIDsKK+aqsSA+IGtpXCA7CivmqqUgPiBnaVwgOwor5qqfID4ga2FcIDsKK+aqmyA+IHRhXCA7CivmqoMgPiBpblwgOwor5qmxID4genVcIDsKK+apqyA+IG91XCA7CivmqaIgPiBkYVwgOwor5qmSID4gdW5cIDsKK+aphiA+IGJ1XCA7CivmqYUgPiBib1wgOwor5qi7ID4ga2lcIDsKK+aosiA+IGppXCA7CivmqJ0gPiBzYVwgOwor5qe7ID4ga2lcIDsKK+anpSA+IGVpXCA7Civmp44gPiBzYVwgOwor5qa/ID4ga2lcIDsKK+amriA+IGVpXCA7CivmpqggPiBzYVwgOwor5qahID4gc29cIDsKK+ammCA+IGt1XCA7CivmppEgPiBmdVwgOwor5qaGID4geXVcIDsKK+aluSA+IGVpXCA7CivmpbAgPiB5dVwgOwor5qWjID4gYmlcIDsKK+aloSA+IHl1XCA7CivmpZwgPiBrb1wgOwor5qWbID4ga29cIDsKK+almiA+IHNvXCA7CivmpZUgPiBkYVwgOwor5qWCID4gc2FcIDsKK+akuyA+IGVuXCA7CivmpLUgPiBrYVwgOwor5qSwID4geWFcIDsKK+ajqiA+IGVuXCA7Civmo50gPiBrb1wgOwor5qOcID4geW9cIDsKK+ajkCA+IGhpXCA7Civmo4sgPiBraVwgOwor5qOKID4ga2lcIDsKK+aitiA+IGJpXCA7CivmorMgPiBzb1wgOwor5qKtID4gc2FcIDsKK+aiqSA+IHJpXCA7CivmoqcgPiBnb1wgOwor5qKmID4gbXVcIDsKK+aimyA+IGRhXCA7Civmoo4gPiBvdVwgOwor5qG0ID4gZnVcIDsKK+ahqyA+IHNhXCA7CivmoZcgPiB0YVwgOwor5qGNID4ga29cIDsKK+agrSA+IGppXCA7CivmoKkgPiBrdVwgOwor5qCnID4gZWlcIDsKK+afsiA+IGhpXCA7Civmn7AgPiBuYVwgOwor5p+vID4ga2FcIDsKK+afpyA+IGtvXCA7Civmn6UgPiBzYVwgOwor5p+kID4gc2FcIDsKK+afoSA+IGVpXCA7Civmn44gPiBmdVwgOwor5p+FID4gamlcIDsKK+afgSA+IHRhXCA7Civmn4AgPiBoaVwgOwor5p67ID4gZWlcIDsKK+aeuCA+IGt1XCA7CivmnrMgPiBraVwgOwor5p6mID4gcm9cIDsKK+aemSA+IGdhXCA7CivmnpEgPiBrb1wgOwor5p6OID4gaHVcIDsKK+aeiSA+IG91XCA7CivmnocgPiBoaVwgOwor5p23ID4gaGFcIDsKK+adniA+IGtvXCA7CivmnZwgPiBkb1wgOwor5p2IID4gc2FcIDsKK+actiA+IGRhXCA7CivmnLUgPiBkYVwgOwor5pygID4gZWlcIDsKK+acniA+IGtpXCA7CivmnI8gPiBoaVwgOwor5pyHID4gaGlcIDsKK+abvSA+IHpvXCA7Civmm7UgPiBlaVwgOwor5puxID4gb3VcIDsKK+abpiA+IGdpXCA7Civmm5YgPiBhaVwgOwor5puBID4ga2lcIDsKK+abgCA+IGVpXCA7Civmmr8gPiBraVwgOwor5pqoID4ga2lcIDsKK+aanCA+IGZ1XCA7CivmmpsgPiBzYVwgOwor5pqOID4gZWlcIDsKK+aaiSA+IGtpXCA7CivmmoggPiB1blwgOwor5pqDID4gaGlcIDsKK+aagCA+IG91XCA7CivmmbwgPiBlblwgOwor5pm7ID4gYW5cIDsKK+aZtyA+IGtpXCA7CivmmaQgPiBnb1wgOwor5pmhID4gaG9cIDsKK+aZniA+IGtpXCA7CivmmY8gPiBhblwgOwor5pi5ID4gYWlcIDsKK+aYtyA+IG9uXCA7CivmmKsgPiBrdVwgOwor5piWID4gZW5cIDsKK+aYiCA+IGtvXCA7CivmmIAgPiBpblwgOwor5pe/ID4gZ29cIDsKK+aXuSA+IGppXCA7Civml7QgPiBrdVwgOwor5pejID4ga2lcIDsKK+aXoSA+IGtpXCA7Civml6AgPiBidVwgOwor5pefID4geW9cIDsKK+aXjiA+IGppXCA7Civml4kgPiBmdVwgOwor5peCID4ga2lcIDsKK+aWnSA+IGthXCA7CivmlbogPiBrdVwgOwor5pWnID4ga2lcIDsKK+aVmCA+IGpvXCA7CivmlY0gPiBqb1wgOwor5pWJID4gYmlcIDsKK+aUsSA+IGtpXCA7CivmlLAgPiBraVwgOwor5pSeID4gcmFcIDsKK+aUliA+IGVpXCA7Civmk7UgPiBtYVwgOwor5pOpID4ganVcIDsKK+aSviA+IHRhXCA7Civmkq0gPiBoYVwgOwor5pKdID4ga2lcIDsKK+aRuCA+IG1vXCA7CivmkaMgPiBzYVwgOwor5pC9ID4gdGFcIDsKK+aQtSA+IG9uXCA7CivmkJkgPiBudVwgOwor5pCTID4gc2FcIDsKK+aPuCA+IHNhXCA7Civmj7YgPiB5YVwgOwor5o+0ID4gZW5cIDsKK+aPriA+IGtpXCA7Civmj5wgPiBlblwgOwor5o+GID4ga2lcIDsKK+aPhCA+IHl1XCA7Civmjr4gPiBlblwgOwor5o6eID4gZW5cIDsKK+aOjiA+IGtpXCA7CivmjbwgPiBkYVwgOwor5o2sID4gaHVcIDsKK+aNkyA+IHNlXCA7CivmjZAgPiBlblwgOwor5o2CID4gZ29cIDsKK+aMvCA+IGRhXCA7CivmjKsgPiB6YVwgOwor5oyqID4gZGFcIDsKK+aMpyA+IGt1XCA7CivmjJMgPiB0YVwgOwor5oyQID4gZGFcIDsKK+aMiSA+IGFuXCA7Civmi78gPiBkYVwgOwor5ou9ID4gZWlcIDsKK+aLlyA+IG91XCA7Civmi5YgPiB0YVwgOwor5ouVID4gdGFcIDsKK+aLjyA+IGRhXCA7Civmi4ogPiBmdVwgOwor5ouHID4gYm9cIDsKK+aKtyA+IGhpXCA7CivmirMgPiBqaVwgOwor5oqOID4gdW5cIDsKK+aKiiA+IHdhXCA7Civmib4gPiBrYVwgOwor5omvID4gdGFcIDsKK+aJoCA+IHNhXCA7CivmiYggPiBrb1wgOwor5oi9ID4ga29cIDsKK+aItyA+IGtvXCA7CivmiLYgPiBrb1wgOwor5oixID4gZ2lcIDsKK+aIoyA+IGtpXCA7CivmiJMgPiBrYVwgOwor5oiNID4ganVcIDsKK+aIiiA+IGJvXCA7Civmh68gPiBmdVwgOwor5oenID4gZGFcIDsKK+aHpiA+IGRhXCA7Civmh6EgPiBiYVwgOwor5oeVID4gZW5cIDsKK+aHiiA+IG91XCA7Civmhq4gPiBidVwgOwor5oacID4gdGFcIDsKK+aGmSA+IGtpXCA7CivmhpggPiBraVwgOwor5oWNID4gdW5cIDsKK+aFiCA+IGppXCA7CivmhL4gPiBraVwgOwor5oSsID4gc29cIDsKK+aEqyA+IHNvXCA7CivmhKogPiB1blwgOwor5oSnID4ga2lcIDsKK+aEoCA+IHVuXCA7CivmhJQgPiBpblwgOwor5oOyID4gdW5cIDsKK+aDsCA+IGRhXCA7Civmg6cgPiBrdVwgOwor5oOiID4gc2FcIDsKK+aDjiA+IGtpXCA7Civmg4ggPiBrYVwgOwor5oKxID4gaGlcIDsKK+aCqCA+IGppXCA7CivmgqcgPiByaVwgOwor5oKeID4gZ29cIDsKK+aClSA+IGtpXCA7CivmgpEgPiBob1wgOwor5oKGID4geW9cIDsKK+aCgiA+IGhpXCA7CivmgoEgPiBlblwgOwor5oGXID4ga29cIDsKK+aBlSA+IGpvXCA7CivmgZEgPiBraVwgOwor5oGDID4gamlcIDsKK+aBgSA+IGluXCA7CivmgKkgPiBqaVwgOwor5oCkID4gaHVcIDsKK+aAmSA+IGtvXCA7CivmgJggPiBrb1wgOwor5oCVID4gaGFcIDsKK+W/ryA+IGtpXCA7Civlv6wgPiB5b1wgOwor5b+kID4gZ29cIDsKK+W/oiA+IGdvXCA7Civlvr0gPiBraVwgOwor5b6NID4gYWlcIDsKK+W+giA+IHNvXCA7CivlvbogPiBvdVwgOwor5b21ID4gdGFcIDsKK+W9jCA+IGJpXCA7CivlvK0gPiBiaVwgOwor5bypID4gZG9cIDsKK+W8pyA+IGtvXCA7CivlvKMgPiBodVwgOwor5bydID4gaGFcIDsKK+W8liA+IHRlXCA7CivlvI0gPiBuaVwgOwor5byHID4gZW5cIDsKK+W8gyA+IGtpXCA7Civlu7QgPiBpblwgOwor5buuID4gZWlcIDsKK+W7oSA+IGJ1XCA7Civlu5wgPiB0b1wgOwor5buaID4genVcIDsKK+W7lSA+IGluXCA7Civlu4ggPiBrYVwgOwor5bq+ID4geXVcIDsKK+W6syA+IGhpXCA7Civluq8gPiBob1wgOwor5bquID4gaXVcIDsKK+W6qiA+IGtpXCA7CivluowgPiBnYVwgOwor5bqLID4ga2lcIDsKK+W6gCA+IGhpXCA7CivluaAgPiBrb1wgOwor5bmRID4ga2lcIDsKK+W5jyA+IGthXCA7CivluYEgPiBzdVwgOwor5bi+ID4gdG9cIDsKK+W4lCA+IGhpXCA7CivluJEgPiBkb1wgOwor5biNID4ga29cIDsKK+W4iiA+IGhhXCA7CivluIYgPiBob1wgOwor5bezID4gbWlcIDsKK+W3mSA+IGtpXCA7Civlt40gPiBnaVwgOwor5beLID4ga2lcIDsKK+W3hyA+IGtpXCA7CivltrcgPiBnaVwgOwor5ba0ID4gYXVcIDsKK+W2rCA+IGdpXCA7Civltp4gPiB0YVwgOwor5baTID4gaGFcIDsKK+W2hyA+IGt1XCA7CivltoEgPiBydVwgOwor5baAID4gdG9cIDsKK+W1syA+IHNhXCA7Civlta8gPiBzYVwgOwor5bWhID4gb3VcIDsKK+W1nyA+IGtpXCA7CivltZ4gPiB0b1wgOwor5bWcID4ga2lcIDsKK+W1liA+IHNhXCA7CivltYsgPiBiaVwgOwor5bSzID4geXVcIDsKK+W0piA+IGVuXCA7CivltIsgPiBrYVwgOwor5bO5ID4gdG9cIDsKK+WzsiA+IHJpXCA7Civls6wgPiBob1wgOwor5bOrID4geWFcIDsKK+WzqSA+IGdhXCA7Civls6ggPiBnYVwgOwor5bOeID4ga2lcIDsKK+WzmyA+IHJpXCA7Civls5kgPiBqaVwgOwor5bOXID4gZ2lcIDsKK+WzliA+IGFuXCA7Civls5QgPiBib1wgOwor5bOPID4gamlcIDsKK+WziiA+IGh1XCA7CivlsrsgPiBqaVwgOwor5bK1ID4ga29cIDsKK+WytCA+IGt1XCA7Civlsq8gPiBoaVwgOwor5bKuID4gdGFcIDsKK+WyqCA+IHNvXCA7CivlsqUgPiBoYVwgOwor5bKUID4gc2FcIDsKK+WykyA+IGtpXCA7CivlspAgPiBraVwgOwor5bKIID4ga2FcIDsKK+WyhiA+IGV1XCA7CivlsbogPiBraVwgOwor5bGuID4gc2FcIDsKK+WxrSA+IGtpXCA7CivlsaggPiBrdVwgOwor5bGiID4gcnVcIDsKK+WxoCA+IHRvXCA7CivlsYQgPiBoaVwgOwor5bGDID4ga2lcIDsKK+WxgSA+IGhlXCA7CivlsLkgPiBpblwgOwor5bCvID4ga2lcIDsKK+WwriA+IHRhXCA7CivlsKsgPiBvdVwgOwor5bCqID4gb3VcIDsKK+WwqSA+IG91XCA7CivlsKMgPiBvdVwgOwor5bCiID4gb3VcIDsKK+WwlCA+IGppXCA7CivlsJMgPiBqaVwgOwor5bCSID4gamlcIDsKK+WwgyA+IGh1XCA7CivlsIAgPiBoYVwgOwor5a+yID4gZ2lcIDsKK+WvpCA+IGdvXCA7Civlr6AgPiBrdVwgOwor5a+ZID4geXVcIDsKK+WvgyA+IGVuXCA7CivlrrEgPiBzYVwgOwor5a6QID4gZ2lcIDsKK+WujiA+IGV1XCA7CivlroQgPiBraVwgOwor5a6DID4gdGFcIDsKK+WtviA+IGVpXCA7CivlrbogPiBqdVwgOwor5a23ID4gcmlcIDsKK+WttSA+IGZ1XCA7CivlraUgPiBkb1wgOwor5a2aID4gZnVcIDsKK+WtiyA+IHJpXCA7CivlrL8gPiBlblwgOwor5ay9ID4gZW5cIDsKK+WstyA+IGJhXCA7CivlrLQgPiBlaVwgOwor5aywID4gZWlcIDsKK+WsriA+IGVuXCA7CivlrKQgPiBiYVwgOwor5ayhID4gYWlcIDsKK+WslCA+IGh1XCA7CivlrI0gPiBiaVwgOwor5ayAID4ga2lcIDsKK+WrtyA+IHRhXCA7Civlq7UgPiBidVwgOwor5au0ID4ga29cIDsKK+WrriA+IGtvXCA7Civlq60gPiBrb1wgOwor5aurID4gYm9cIDsKK+WroyA+IGVuXCA7Civlq6IgPiBraVwgOwor5augID4gcmlcIDsKK+WrmyA+IGVpXCA7Civlq5cgPiBvdVwgOwor5auVID4gZWlcIDsKK+WriiA+IHNvXCA7Civlqr8gPiBraVwgOwor5aq9ID4gYm9cIDsKK+WquiA+IGJpXCA7CivlqrQgPiBlblwgOwor5aqxID4gZXVcIDsKK+WqrCA+IGhvXCA7CivlqqogPiBvdVwgOwor5aqpID4ga29cIDsKK+WqoCA+IHRhXCA7CivlqpYgPiBlaVwgOwor5aqVID4gZW5cIDsKK+WqkCA+IGtpXCA7Civlqo4gPiBzb1wgOwor5aqEID4gYmlcIDsKK+WpvSA+IGthXCA7CivlqbogPiBidVwgOwor5amsID4gaW5cIDsKK+WpoyA+IGluXCA7CivlqZ8gPiBrb1wgOwor5amTID4gaGlcIDsKK+WpkCA+IHdhXCA7CivlqY0gPiBraVwgOwor5ai4ID4ga2lcIDsKK+WosCA+IGppXCA7CivlqK8gPiBnb1wgOwor5aitID4ga2lcIDsKK+WorCA+IGJ1XCA7CivlqKogPiBnb1wgOwor5ailID4gZ2FcIDsKK+WonCA+IGRhXCA7CivlqJsgPiBnb1wgOwor5aiTID4gYmlcIDsKK+WokiA+IGJvXCA7CivlqIwgPiByaVwgOwor5aiEID4gcnVcIDsKK+WnvSA+IGtpXCA7Civlp7sgPiBpblwgOwor5ae5ID4gdGFcIDsKK+WntiA+IG91XCA7Civlp7IgPiBhblwgOwor5aexID4ga2FcIDsKK+WnrCA+IGtpXCA7Civlp6UgPiBib1wgOwor5aedID4gc3VcIDsKK+WnjiA+IGF1XCA7Civlp4cgPiBodVwgOwor5aeGID4gYm9cIDsKK+WngSA+IGt1XCA7Civlp4AgPiBrYVwgOwor5aa8ID4gaGlcIDsKK+WmtCA+IGVuXCA7Civlpq4gPiBqaVwgOwor5aalID4gZGFcIDsKK+WmpCA+IHlvXCA7CivlpqMgPiBoaVwgOwor5aafID4gYW5cIDsKK+WmmCA+IHVuXCA7CivlppIgPiB0b1wgOwor5aaLID4gZnVcIDsKK+WmgyA+IGhpXCA7CivlpbwgPiB0YVwgOwor5aWwID4gaGlcIDsKK+WlqyA+IGluXCA7CivlpZwgPiBoaVwgOwor5aWTID4gdGFcIDsKK+WlhCA+IGVuXCA7CivlpL8gPiBoYVwgOwor5aS4ID4ga29cIDsKK+WktiA+IGhpXCA7CivlpLUgPiBlblwgOwor5aSlID4ga2FcIDsKK+WkpCA+IGluXCA7CivlpKEgPiBraVwgOwor5aSbID4gdGFcIDsKK+WklyA+IGVuXCA7CivlpJQgPiBraVwgOwor5aSTID4ga2FcIDsKK+WkjiA+IHNhXCA7CivlpIMgPiBrb1wgOwor5aO9ID4ganVcIDsKK+WjuiA+IGtvXCA7Civlo6kgPiBoYVwgOwor5aOhID4gZWlcIDsKK+WjmyA+IGVuXCA7Civlo5ogPiByb1wgOwor5aOSID4gYWlcIDsKK+WjiCA+IG9uXCA7Civlo4QgPiB5YVwgOwor5aK6ID4gb3VcIDsKK+WisiA+IGJvXCA7Civloq8gPiBkYVwgOwor5aKNID4ga2lcIDsKK+WhuCA+IG91XCA7CivloacgPiBhaVwgOwor5aGVID4gb3VcIDsKK+WhkSA+IHNvXCA7CivloZAgPiBzb1wgOwor5aGLID4gZWlcIDsKK+WhiCA+IGtpXCA7CivloLggPiBodVwgOwor5aC3ID4gYW5cIDsKK+WgtiA+IGt1XCA7CivloLMgPiBiaVwgOwor5aCwID4gZW5cIDsKK+WgrCA+IHl1XCA7CivloKMgPiBndVwgOwor5aCdID4ga2FcIDsKK+WgmSA+IGluXCA7CivloI0gPiB0b1wgOwor5aCMID4ga29cIDsKK+WggSA+IGthXCA7Civln7wgPiBraVwgOwor5Z+1ID4gdGFcIDsKK+WfryA+IGVuXCA7Civln6cgPiBrdVwgOwor5Z+kID4gaGlcIDsKK+WfoCA+IGZ1XCA7Civln5QgPiBob1wgOwor5Z66ID4gaHVcIDsKK+WeqiA+IGhhXCA7Civlnp4gPiB0YVwgOwor5Z6dID4ga2lcIDsKK+WenCA+IGRhXCA7CivlnpsgPiBkYVwgOwor5Z6AID4ga29cIDsKK+WdvyA+IGZ1XCA7CivlnbcgPiBrYVwgOwor5Z2zID4gYXVcIDsKK+WdsSA+IGF1XCA7Civlna8gPiBoaVwgOwor5Z2sID4ga2FcIDsKK+WdoSA+IGhhXCA7CivlnZIgPiBoaVwgOwor5Zy7ID4ga2lcIDsKK+WcriA+IGhpXCA7CivlnKsgPiBhdVwgOwor5ZyXID4gdG9cIDsKK+WclCA+IG91XCA7CivlnJEgPiBob1wgOwor5ZyOID4gZW5cIDsKK+WbpiA+IGVuXCA7Civlm5kgPiBpblwgOwor5ZuOID4gc29cIDsKK+WbjCA+IHNvXCA7Civlm4kgPiByYVwgOwor5Zq2ID4gb3VcIDsKK+WasiA+IHRhXCA7CivlmrEgPiBraVwgOwor5ZqtID4gaGlcIDsKK+WapyA+IHJvXCA7CivlmqUgPiBlblwgOwor5ZqfID4gcmlcIDsKK+WanCA+IGJpXCA7CivlmpggPiBpdVwgOwor5ZqVID4gcm9cIDsKK+WaiiA+IGhpXCA7CivlmoUgPiBqdVwgOwor5Zm+ID4gaW5cIDsKK+WZsyA+IGd1XCA7Civlma8gPiBhaVwgOwor5ZmuID4gZW5cIDsKK+WZqyA+IGFhXCA7CivlmZUgPiBraVwgOwor5ZmQID4ga2lcIDsKK+WZhSA+IGtpXCA7CivlmLsgPiBraVwgOwor5ZizID4ga2lcIDsKK+WYsCA+IGtpXCA7CivlmJ8gPiB0b1wgOwor5ZicID4gYmFcIDsKK+WYmyA+IG1hXCA7CivlmJkgPiBoYVwgOwor5ZiRID4ga29cIDsKK+WYjyA+IGthXCA7CivlmIkgPiBrYVwgOwor5ZepID4gc2FcIDsKK+WXpiA+IHNhXCA7Civll48gPiBzYVwgOwor5ZeOID4gYmFcIDsKK+WXiSA+IHNvXCA7Civll4QgPiBzYVwgOwor5ZeCID4gZXVcIDsKK+WWuyA+IHl1XCA7CivllrYgPiBlaVwgOwor5ZazID4gc2FcIDsKK+WWsSA+IHJpXCA7CivllqkgPiB5dVwgOwor5ZalID4gdG9cIDsKK+WWoyA+IGt1XCA7Civllp8gPiBraVwgOwor5ZaTID4gZXVcIDsKK+WWkSA+IGluXCA7Civllo4gPiBrYVwgOwor5ZaCID4ga2lcIDsKK+WVpCA+IGhpXCA7CivllZ0gPiBrYVwgOwor5ZWaID4gaGlcIDsKK+WVmCA+IGVuXCA7CivllY4gPiBnb1wgOwor5ZS5ID4geW9cIDsKK+WUtyA+IHlvXCA7CivllLUgPiBhblwgOwor5ZSyID4gamlcIDsKK+WUrSA+IGtpXCA7CivllKwgPiBrYVwgOwor5ZSUID4gZ29cIDsKK+WUjyA+IGtpXCA7CivllI4gPiByaVwgOwor5ZSLID4gdG9cIDsKK+WUiCA+IG91XCA7CivllIYgPiBzYVwgOwor5ZSAID4gaXVcIDsKK+WTvyA+IGthXCA7Civlk7ogPiBob1wgOwor5ZO2ID4gYmFcIDsKK+WTrCA+IGthXCA7Civlk6ogPiBkYVwgOwor5ZOnID4ga2FcIDsKK+WTpiA+IGdhXCA7Civlk6UgPiBrYVwgOwor5ZOJID4geWFcIDsKK+WThyA+IGFpXCA7CivlkrwgPiBrYVwgOwor5ZK7ID4ga3VcIDsKK+WSqiA+IGJpXCA7CivlkqkgPiBiaVwgOwor5ZKlID4ga2lcIDsKK+WSpCA+IHRhXCA7CivlkqEgPiBqaVwgOwor5ZKcID4gdGFcIDsKK+WSliA+IGthXCA7CivlkpUgPiBrb1wgOwor5ZKRID4gZGFcIDsKK+WSkCA+IGhvXCA7Civlko8gPiBlaVwgOwor5ZKKID4gd2FcIDsKK+WSiSA+IGF1XCA7CivlkoMgPiB0YVwgOwor5ZKAID4gc29cIDsKK+WRvyA+IGthXCA7CivlkbggPiBoaVwgOwor5ZG2ID4gZG9cIDsKK+WRtSA+IGthXCA7CivlkbQgPiBrdVwgOwor5ZGxID4ga29cIDsKK+WRriA+IGtpXCA7Civlka0gPiBlaVwgOwor5ZGsID4ga2lcIDsKK+WRpiA+IGl1XCA7CivlkaIgPiBqaVwgOwor5ZGNID4gdW5cIDsKK+WRiyA+IGh1XCA7CivlkYAgPiBnYVwgOwor5ZC9ID4gaW5cIDsKK+WQtCA+IGdvXCA7CivlkLMgPiBnb1wgOwor5ZCnID4gaGFcIDsKK+WQlCA+IHNlXCA7CivlkJMgPiBrYVwgOwor5ZCSID4gdGFcIDsKK+WQgSA+IGt1XCA7Civlj7kgPiBpdVwgOwor5Y+1ID4gaGFcIDsKK+WPpyA+IGthXCA7Civlj6EgPiBlaVwgOwor5Y+aID4ga2FcIDsKK+WPhiA+IGFpXCA7CivljrQgPiBlblwgOwor5Y6sID4ga2lcIDsKK+WOpiA+IGthXCA7Civljp4gPiBoaVwgOwor5Y6PID4gc2FcIDsKK+WOiiA+IGthXCA7CivljaYgPiBrYVwgOwor5Y2JID4ga2lcIDsKK+WNgCA+IGt1XCA7CivljL0gPiBlblwgOwor5Yy8ID4gYW5cIDsKK+WMuiA+IGt1XCA7CivljK0gPiBraVwgOwor5YysID4geXVcIDsKK+WMqiA+IGhpXCA7CivljJUgPiBoaVwgOwor5YyOID4gb3VcIDsKK+WMgCA+IGluXCA7Civli7sgPiBpblwgOwor5YupID4gZWlcIDsKK+WLnyA+IGJvXCA7Civli5wgPiBvdVwgOwor5YuaID4gZWlcIDsKK+WKuCA+IGFpXCA7CivliqwgPiBrdVwgOwor5YqZID4gcmlcIDsKK+WKmCA+IGJhXCA7CivlipMgPiBnaVwgOwor5Ym6ID4gcmlcIDsKK+WJriA+IGthXCA7CivliaYgPiBlblwgOwor5YmhID4gZW5cIDsKK+WJniA+IGtpXCA7CivliZggPiBraVwgOwor5YmVID4gaGlcIDsKK+WJiSA+IHNhXCA7CivliYYgPiByYVwgOwor5YmBID4gdGFcIDsKK+WItSA+IGppXCA7CivliLQgPiB0YVwgOwor5YizID4ga29cIDsKK+WIlSA+IHJpXCA7CivliJIgPiBrYVwgOwor5YiPID4ga2lcIDsKK+WIiSA+IGtpXCA7Civlh7kgPiBvdVwgOwor5YegID4ga2lcIDsKK+WHniA+IGtpXCA7Civlh5IgPiBnaVwgOwor5YeQID4gaW5cIDsKK+WHhSA+IGtvXCA7CivlhrQgPiBnb1wgOwor5YaxID4gZ29cIDsKK+WGqCA+IGZ1XCA7CivlhqQgPiBlblwgOwor5YaeID4gYmlcIDsKK+WGnSA+IGdpXCA7CivlhpggPiBpblwgOwor5YaUID4ga3VcIDsKK+WGjiA+IGthXCA7CivlhoAgPiBraVwgOwor5YW+ID4ga2lcIDsKK+WFuSA+IGppXCA7CivlhaogPiB5dVwgOwor5YWXID4gZW5cIDsKK+WFlCA+IHRvXCA7CivlhZEgPiBkYVwgOwor5YWMID4gZGFcIDsKK+WFgSA+IGluXCA7CivlhLogPiBuYVwgOwor5YS4ID4gcmFcIDsKK+WEniA+IGppXCA7CivlhJsgPiBidVwgOwor5YSXID4gZ2lcIDsKK+WEkiA+IGp1XCA7CivlhI0gPiBzYVwgOwor5YO+ID4gYWlcIDsKK+WDsSA+IGtvXCA7Civlg58gPiBraVwgOwor5YObID4ga2lcIDsKK+WDliA+IGtpXCA7Civlg4MgPiBiaVwgOwor5YK/ID4gZW5cIDsKK+WCuyA+IHNhXCA7CivlgrQgPiBrdVwgOwor5YKiID4ga2FcIDsKK+WCnyA+IGF1XCA7Civlgp4gPiBzYVwgOwor5YKcID4gZXVcIDsKK+WCjCA+IGJhXCA7CivlgoogPiBpblwgOwor5YKFID4gZnVcIDsKK+WCgyA+IHNvXCA7CivlgbkgPiBiaVwgOwor5YGnID4gdGFcIDsKK+WBpCA+IHl1XCA7CivlgaMgPiBlblwgOwor5YGgID4gZXVcIDsKK+WBjCA+IGphXCA7CivlgYMgPiBlblwgOwor5YGAID4gZWlcIDsKK+WAuyA+IHlhXCA7CivlgLUgPiBidVwgOwor5YCuID4gcmFcIDsKK+WAoCA+IGtpXCA7CivlgJsgPiBraVwgOwor5YCHID4gZW5cIDsKK+S/viA+IGhpXCA7Civkv7sgPiBiaVwgOwor5L+3ID4gaGlcIDsKK+S/sSA+IGt1XCA7Civkv7AgPiBrYVwgOwor5L+eID4geXVcIDsKK+S/miA+IHJpXCA7Civkv5kgPiBraVwgOwor5L+YID4gZnVcIDsKK+S/kCA+IHJpXCA7Civkv4wgPiBmdVwgOwor5L+JID4gZ29cIDsKK+S/gSA+IGd1XCA7CivkvrMgPiBzYVwgOwor5L6iID4gYnVcIDsKK+S+niA+IGpvXCA7CivkvpUgPiBqaVwgOwor5L6SID4gYW5cIDsKK+S+jiA+IGJpXCA7CivkvowgPiBpblwgOwor5L6JID4ga2FcIDsKK+S9uSA+IGtpXCA7CivkvbQgPiBqaVwgOwor5L2zID4ga2FcIDsKK+S9oCA+IGppXCA7CivkvZIgPiBhdVwgOwor5L2IID4gaG9cIDsKK+S9gSA+IGFpXCA7CivkvL4gPiBoaVwgOwor5LyyID4gamlcIDsKK+S8sSA+IGppXCA7CivkvLAgPiBrb1wgOwor5LyuID4gZG9cIDsKK+S8mSA+IGthXCA7CivkvJYgPiBkb1wgOwor5LyVID4gaHVcIDsKK+S8jCA+IGFpXCA7CivkvIMgPiB5b1wgOwor5Lu1ID4ga29cIDsKK+S7syA+IGhpXCA7Civku6ggPiBzYVwgOwor5LubID4gdGFcIDsKK+S7hiA+IGZ1XCA7Civku4UgPiBodVwgOwor5Lq5ID4gYmlcIDsKK+S6uCA+IHRhXCA7CivkurEgPiB5YVwgOwor5LqTID4ga2lcIDsKK+S6iiA+IGppXCA7CivkubUgPiBlblwgOwor5LmcID4gYmFcIDsKK+S5miA+IGluXCA7CivkuZUgPiBrb1wgOwor5LmOID4ga2FcIDsKK+S5iCA+IGV1XCA7CivkuKogPiBrYVwgOwor5LiVID4gaGlcIDsKK+S4jCA+IGtpXCA7CivkuIUgPiBrYVwgOwor5bi3ID4gaVwgOwor55WwID4gaVwgOwor55WPID4gaVwgOwor5bC+ID4gb1wgOwor5a6HID4gdVwgOwor6KyCID4gaVwgOwor54iyID4gaVwgOwor5aiBID4gaVwgOwor5aeUID4gaVwgOwor5ZyNID4gaVwgOwor5ZuyID4gaVwgOwor5ZeaID4gb1wgOwor5rGfID4gZVwgOwor5rGaID4gb1wgOwor6JCOID4gaVwgOwor5Yy7ID4gaVwgOwor5qSFID4gaVwgOwor6IODID4gaVwgOwor5YGJID4gaVwgOwor6aCkID4gaVwgOwor5L6dID4gZVwgOwor5LyKID4gaVwgOwor5LulID4gaVwgOwor5LqeID4gYVwgOwor6Zi/ID4gYVwgOwor57eSID4gb1wgOwor5pa8ID4gb1wgOwor57atID4gaVwgOwor57W1ID4gZVwgOwor56e7ID4gaVwgOwor6YarID4gaVwgOwor5oWwID4gaVwgOwor5oSPID4gaVwgOwor5oOhID4gb1wgOwor6YG6ID4gaVwgOwor6YGVID4gaVwgOwor6be+ID4gaVwgOwor6benID4gaVwgOwor6bW2ID4gYVwgOwor6bWcID4gdVwgOwor6bCeID4gb1wgOwor6bCEID4gaVwgOwor6a6nID4gaVwgOwor6aqsID4gdVwgOwor6aqrID4gaVwgOwor6aqqID4gaVwgOwor6aWQID4gaVwgOwor6aGKID4gaVwgOwor6aClID4gaVwgOwor6aCJID4gaVwgOwor6Z+ZID4gaVwgOwor6Z+RID4gaVwgOwor6Z+LID4gaVwgOwor6ZyoID4gaVwgOwor6ZupID4gdVwgOwor6ZqWID4gb1wgOwor6ZeIID4gaVwgOwor6Za8ID4gYVwgOwor6ZOUID4gYVwgOwor6ZC/ID4gaVwgOwor6ZCaID4gYVwgOwor6YyPID4gYVwgOwor6YqlID4gaVwgOwor6YmvID4gaVwgOwor6YizID4gYVwgOwor6YeqID4gdVwgOwor6YWPID4gaVwgOwor6YSUID4gb1wgOwor6YKYID4gdVwgOwor6YC2ID4gaVwgOwor6L+7ID4gaVwgOwor6L+kID4gaVwgOwor6L+GID4gaVwgOwor6L+CID4gdVwgOwor6LK9ID4gaVwgOwor6LKkID4gaVwgOwor6KSYID4gaVwgOwor6KKYID4gaVwgOwor6J6xID4gaVwgOwor6J6gID4gaVwgOwor6J6QID4gb1wgOwor6J6JID4gb1wgOwor6Jy8ID4gaVwgOwor6JyyID4gaVwgOwor6JucID4gaVwgOwor6Jm2ID4gdVwgOwor6JS/ID4gaVwgOwor6JGzID4gaVwgOwor6I29ID4gaVwgOwor6I2PID4gZVwgOwor6IyhID4gdVwgOwor6IuiID4gaVwgOwor6IuhID4gaVwgOwor6IqbID4gaVwgOwor6IOwID4gaVwgOwor6IKEID4gaVwgOwor57evID4gaVwgOwor57etID4gaVwgOwor57SGID4gdVwgOwor57CDID4gaVwgOwor56u9ID4gdVwgOwor56a5ID4gdVwgOwor56aVID4gaVwgOwor56OIID4gaVwgOwor55+jID4gaVwgOwor55uCID4gdVwgOwor55iCID4gYVwgOwor55e/ID4gaVwgOwor55e+ID4gYVwgOwor55ePID4gaVwgOwor55eNID4gaVwgOwor55a0ID4gYVwgOwor55GmID4gb1wgOwor55GLID4gaVwgOwor55GAID4gdVwgOwor54+GID4gaVwgOwor546XID4gdVwgOwor54ysID4gaVwgOwor54yXID4gaVwgOwor54qEID4gaVwgOwor54aoID4gaVwgOwor54WSID4gaVwgOwor5r+wID4gaVwgOwor5ryqID4gaVwgOwor5rmLID4gaVwgOwor5ritID4gaVwgOwor5rS/ID4gb1wgOwor5rSnID4gaVwgOwor5rGhID4gb1wgOwor5rGZID4gb1wgOwor5rCsID4gYVwgOwor5q+JID4gaVwgOwor5q2NID4gb1wgOwor5qy5ID4gaVwgOwor5qWyID4gaVwgOwor5qS4ID4gaVwgOwor5qSPID4gYVwgOwor5qGZID4gdVwgOwor5p+CID4gaVwgOwor5p6xID4gaVwgOwor5p2HID4gb1wgOwor5p2FID4gdVwgOwor5pqQID4gaVwgOwor5peWID4gaVwgOwor5pWhID4gaVwgOwor5pS6ID4gaVwgOwor5omcID4gdVwgOwor5omGID4gaVwgOwor5omFID4gaVwgOwor5oe/ID4gaVwgOwor5oSHID4gaVwgOwor5oOfID4gaVwgOwor5oKYID4gaVwgOwor5oGaID4gaVwgOwor5oChID4gaVwgOwor5b6rID4gaVwgOwor5b2eID4gaVwgOwor5b2dID4gaVwgOwor5b2cID4gaVwgOwor5b2bID4gaVwgOwor5b2aID4gaVwgOwor5b2ZID4gaVwgOwor5bysID4gaVwgOwor5byZID4gb1wgOwor5byCID4gaVwgOwor5bmDID4gaVwgOwor5be4ID4gaVwgOwor5beyID4gaVwgOwor5bWoID4gb1wgOwor5bS6ID4gaVwgOwor5bSjID4gaVwgOwor5bGZID4gYVwgOwor5a+qID4gaVwgOwor5a2yID4gYVwgOwor5aqmID4gaVwgOwor5aqZID4gaVwgOwor5amtID4gYVwgOwor5amAID4gYVwgOwor5ai/ID4gYVwgOwor5aiDID4gYVwgOwor5aeoID4gaVwgOwor5aa4ID4gYVwgOwor5aOdID4gaVwgOwor5aGiID4gb1wgOwor5aCKID4gYVwgOwor5Z+hID4gb1wgOwor5Z2oID4gaVwgOwor5ZyvID4gaVwgOwor5ZysID4gb1wgOwor5ZypID4gdVwgOwor5ZuXID4gaVwgOwor5ZmBID4gb1wgOwor5Za0ID4gaVwgOwor5ZahID4gaVwgOwor5ZWeID4gYVwgOwor5ZWKID4gYVwgOwor5ZK/ID4gaVwgOwor5ZKmID4gaVwgOwor5ZCaID4gaVwgOwor5Y+eID4gaVwgOwor5YycID4gaVwgOwor5YSwID4gaVwgOwor5YGvID4gaVwgOwor5YGKID4gdVwgOwor5L6HID4gaVwgOwor5Ly/ID4gaVwgOwor5LqcID4gYVwgOwor5LqPID4gdVwgOwor5LqOID4gdVwgOwor5LqEID4gaVwgOwor5LmBID4gaVwgOwor5LirID4gYVwgOwor44CCIDw+ICcuJzsKKyMgRW5kIFJBVyBkYXRhIGZvciBjb252ZXJ0aW5nIENKSyBjaGFyYWN0ZXJzCisKKworOjoga2F0YWthbmEtbGF0aW4gKCk7Cis6OiBoaXJhZ2FuYS1sYXRpbiAoKTsKKzo6IGZ1bGx3aWR0aC1oYWxmd2lkdGggKCk7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzU0ZDkwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphcgpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpiNmQ1MDdhOWI1M2IzMTVmMTY0NDQ4MDExZDgwMjE4MjU3Yzc0YzMxNDhkMGMyOTVlNjkxYTMzN2NkY2U1MTU5CitzaXplIDUwNjgxNzYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGY5YmNkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Jlc291cmNlIGRhdGEgdXNlZCBieSBjbGFzc2VzIGluIGNvbS5pYm0udGV4dC4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3RoLmJyayBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MDQ4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3RoLmJyawpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmYzMDFmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXIuamF2YQpAQCAtMCwwICsxLDYxOTcgQEAKKy8vIyNoZWFkZXIKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVCaURpUHJvcHM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlck5hbWVDaG9pY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VUHJvcGVydHlBbGlhc2VzOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisvKioKKyAqIDxwPgorICogVGhlIFVDaGFyYWN0ZXIgY2xhc3MgcHJvdmlkZXMgZXh0ZW5zaW9ucyB0byB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS41L2RvY3MvYXBpL2phdmEvbGFuZy9DaGFyYWN0ZXIuaHRtbCI+CisgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyPC9hPiBjbGFzcy4gVGhlc2UgZXh0ZW5zaW9ucyBwcm92aWRlIHN1cHBvcnQgZm9yIAorICogbW9yZSBVbmljb2RlIHByb3BlcnRpZXMgYW5kIHRvZ2V0aGVyIHdpdGggdGhlIDxhIGhyZWY9Li4vdGV4dC9VVEYxNi5odG1sPlVURjE2PC9hPiAKKyAqIGNsYXNzLCBwcm92aWRlIHN1cHBvcnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAodGhvc2Ugd2l0aCBjb2RlIAorICogcG9pbnRzIGFib3ZlIFUrRkZGRikuCisgKiBFYWNoIElDVSByZWxlYXNlIHN1cHBvcnRzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBVbmljb2RlIGF2YWlsYWJsZSBhdCB0aGF0IHRpbWUuCisgKiA8L3A+CisgKiA8cD4KKyAqIENvZGUgcG9pbnRzIGFyZSByZXByZXNlbnRlZCBpbiB0aGVzZSBBUEkgdXNpbmcgaW50cy4gV2hpbGUgaXQgd291bGQgYmUgCisgKiBtb3JlIGNvbnZlbmllbnQgaW4gSmF2YSB0byBoYXZlIGEgc2VwYXJhdGUgcHJpbWl0aXZlIGRhdGF0eXBlIGZvciB0aGVtLCAKKyAqIGludHMgc3VmZmljZSBpbiB0aGUgbWVhbnRpbWUuCisgKiA8L3A+CisgKiA8cD4KKyAqIFRvIHVzZSB0aGlzIGNsYXNzIHBsZWFzZSBhZGQgdGhlIGphciBmaWxlIG5hbWUgaWN1NGouamFyIHRvIHRoZSAKKyAqIGNsYXNzIHBhdGgsIHNpbmNlIGl0IGNvbnRhaW5zIGRhdGEgZmlsZXMgd2hpY2ggc3VwcGx5IHRoZSBpbmZvcm1hdGlvbiB1c2VkIAorICogYnkgdGhpcyBmaWxlLjxicj4KKyAqIEUuZy4gSW4gV2luZG93cyA8YnI+CisgKiA8Y29kZT5zZXQgQ0xBU1NQQVRIPSVDTEFTU1BBVEglOyRKQVJfRklMRV9QQVRIL3VjaGFyYWN0ZXIuamFyPC9jb2RlPi48YnI+CisgKiBPdGhlcndpc2UsIGFub3RoZXIgbWV0aG9kIHdvdWxkIGJlIHRvIGNvcHkgdGhlIGZpbGVzIHVwcm9wcy5kYXQgYW5kIAorICogdW5hbWVzLmljdSBmcm9tIHRoZSBpY3U0aiBzb3VyY2Ugc3ViZGlyZWN0b3J5CisgKiA8aT4kSUNVNEpfU1JDL3NyYy9jb20uaWJtLmljdS5pbXBsLmRhdGE8L2k+IHRvIHlvdXIgY2xhc3MgZGlyZWN0b3J5IAorICogPGk+JElDVTRKX0NMQVNTL2NvbS5pYm0uaWN1LmltcGwuZGF0YTwvaT4uCisgKiA8L3A+CisgKiA8cD4KKyAqIEFzaWRlIGZyb20gdGhlIGFkZGl0aW9ucyBmb3IgVVRGLTE2IHN1cHBvcnQsIGFuZCB0aGUgdXBkYXRlZCBVbmljb2RlCisgKiBwcm9wZXJ0aWVzLCB0aGUgbWFpbiBkaWZmZXJlbmNlcyBiZXR3ZWVuIFVDaGFyYWN0ZXIgYW5kIENoYXJhY3RlciBhcmU6CisgKiA8dWw+CisgKiA8bGk+IFVDaGFyYWN0ZXIgaXMgbm90IGRlc2lnbmVkIHRvIGJlIGEgY2hhciB3cmFwcGVyIGFuZCBkb2VzIG5vdCBoYXZlIAorICogICAgICBBUElzIHRvIHdoaWNoIGludm9sdmVzIG1hbmFnZW1lbnQgb2YgdGhhdCBzaW5nbGUgY2hhci48YnI+CisgKiAgICAgIFRoZXNlIGluY2x1ZGU6IAorICogICAgICA8dWw+CisgKiAgICAgICAgPGxpPiBjaGFyIGNoYXJWYWx1ZSgpLCAKKyAqICAgICAgICA8bGk+IGludCBjb21wYXJlVG8oamF2YS5sYW5nLkNoYXJhY3RlciwgamF2YS5sYW5nLkNoYXJhY3RlciksIGV0Yy4KKyAqICAgICAgPC91bD4KKyAqIDxsaT4gVUNoYXJhY3RlciBkb2VzIG5vdCBpbmNsdWRlIENoYXJhY3RlciBBUElzIHRoYXQgYXJlIGRlcHJlY2F0ZWQsIG5vcgorICogICAgICBkb2VzIGl0IGluY2x1ZGUgdGhlIEphdmEtc3BlY2lmaWMgY2hhcmFjdGVyIGluZm9ybWF0aW9uLCBzdWNoIGFzIAorICogICAgICBib29sZWFuIGlzSmF2YUlkZW50aWZpZXJQYXJ0KGNoYXIgY2gpLgorICogPGxpPiBDaGFyYWN0ZXIgbWFwcyBjaGFyYWN0ZXJzICdBJyAtICdaJyBhbmQgJ2EnIC0gJ3onIHRvIHRoZSBudW1lcmljIAorICogICAgICB2YWx1ZXMgJzEwJyAtICczNScuIFVDaGFyYWN0ZXIgYWxzbyBkb2VzIHRoaXMgaW4gZGlnaXQgYW5kCisgKiAgICAgIGdldE51bWVyaWNWYWx1ZSwgdG8gYWRoZXJlIHRvIHRoZSBqYXZhIHNlbWFudGljcyBvZiB0aGVzZQorICogICAgICBtZXRob2RzLiAgTmV3IG1ldGhvZHMgdW5pY29kZURpZ2l0LCBhbmQKKyAqICAgICAgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZSBkbyBub3QgdHJlYXQgdGhlIGFib3ZlIGNvZGUgcG9pbnRzIAorICogICAgICBhcyBoYXZpbmcgbnVtZXJpYyB2YWx1ZXMuICBUaGlzIGlzIGEgc2VtYW50aWMgY2hhbmdlIGZyb20gSUNVNEogMS4zLjEuCisgKiA8L3VsPgorICogPHA+CisgKiBGdXJ0aGVyIGRldGFpbCBkaWZmZXJlbmNlcyBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBwcm9ncmFtIAorICogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvfmNoZWNrb3V0fi9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ29tcGFyZS5qYXZhIj4KKyAqICAgICAgICBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nLlVDaGFyYWN0ZXJDb21wYXJlPC9hPgorICogPC9wPgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byBKYXZhIGNvbXBhdGliaWxpdHkgZnVuY3Rpb25zLCB3aGljaCBjYWxjdWxhdGUgZGVyaXZlZCBwcm9wZXJ0aWVzLAorICogdGhpcyBBUEkgcHJvdmlkZXMgbG93LWxldmVsIGFjY2VzcyB0byB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuCisgKiA8L3A+CisgKiA8cD4KKyAqIFVuaWNvZGUgYXNzaWducyBlYWNoIGNvZGUgcG9pbnQgKG5vdCBqdXN0IGFzc2lnbmVkIGNoYXJhY3RlcikgdmFsdWVzIGZvcgorICogbWFueSBwcm9wZXJ0aWVzLgorICogTW9zdCBvZiB0aGVtIGFyZSBzaW1wbGUgYm9vbGVhbiBmbGFncywgb3IgY29uc3RhbnRzIGZyb20gYSBzbWFsbCBlbnVtZXJhdGVkIGxpc3QuCisgKiBGb3Igc29tZSBwcm9wZXJ0aWVzLCB2YWx1ZXMgYXJlIHN0cmluZ3Mgb3Igb3RoZXIgcmVsYXRpdmVseSBtb3JlIGNvbXBsZXggdHlwZXMuCisgKiA8L3A+CisgKiA8cD4KKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZQorICogIkFib3V0IHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSIgKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdWNkLykKKyAqIGFuZCB0aGUgSUNVIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBQcm9wZXJ0aWVzIChodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcHJvcGVydGllcy5odG1sKS4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhlcmUgYXJlIGFsc28gZnVuY3Rpb25zIHRoYXQgcHJvdmlkZSBlYXN5IG1pZ3JhdGlvbiBmcm9tIEMvUE9TSVggZnVuY3Rpb25zCisgKiBsaWtlIGlzYmxhbmsoKS4gVGhlaXIgdXNlIGlzIGdlbmVyYWxseSBkaXNjb3VyYWdlZCBiZWNhdXNlIHRoZSBDL1BPU0lYCisgKiBzdGFuZGFyZHMgZG8gbm90IGRlZmluZSB0aGVpciBzZW1hbnRpY3MgYmV5b25kIHRoZSBBU0NJSSByYW5nZSwgd2hpY2ggbWVhbnMKKyAqIHRoYXQgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBleGhpYml0IHZlcnkgZGlmZmVyZW50IGJlaGF2aW9yLgorICogSW5zdGVhZCwgVW5pY29kZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1c2VkIGRpcmVjdGx5LgorICogPC9wPgorICogPHA+CisgKiBUaGVyZSBhcmUgYWxzbyBvbmx5IGEgZmV3LCBicm9hZCBDL1BPU0lYIGNoYXJhY3RlciBjbGFzc2VzLCBhbmQgdGhleSB0ZW5kCisgKiB0byBiZSB1c2VkIGZvciBjb25mbGljdGluZyBwdXJwb3Nlcy4gRm9yIGV4YW1wbGUsIHRoZSAiaXNhbHBoYSgpIiBjbGFzcworICogaXMgc29tZXRpbWVzIHVzZWQgdG8gZGV0ZXJtaW5lIHdvcmQgYm91bmRhcmllcywgd2hpbGUgYSBtb3JlIHNvcGhpc3RpY2F0ZWQKKyAqIGFwcHJvYWNoIHdvdWxkIGF0IGxlYXN0IGRpc3Rpbmd1aXNoIGluaXRpYWwgbGV0dGVycyBmcm9tIGNvbnRpbnVhdGlvbgorICogY2hhcmFjdGVycyAodGhlIGxhdHRlciBpbmNsdWRpbmcgY29tYmluaW5nIG1hcmtzKS4KKyAqIChJbiBJQ1UsIEJyZWFrSXRlcmF0b3IgaXMgdGhlIG1vc3Qgc29waGlzdGljYXRlZCBBUEkgZm9yIHdvcmQgYm91bmRhcmllcy4pCisgKiBBbm90aGVyIGV4YW1wbGU6IFRoZXJlIGlzIG5vICJpc3RpdGxlKCkiIGNsYXNzIGZvciB0aXRsZWNhc2UgY2hhcmFjdGVycy4KKyAqIDwvcD4KKyAqIDxwPgorICogSUNVIDMuNCBhbmQgbGF0ZXIgcHJvdmlkZXMgQVBJIGFjY2VzcyBmb3IgYWxsIHR3ZWx2ZSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzc2VzLgorICogSUNVIGltcGxlbWVudHMgdGhlbSBhY2NvcmRpbmcgdG8gdGhlIFN0YW5kYXJkIFJlY29tbWVuZGF0aW9ucyBpbgorICogQW5uZXggQzogQ29tcGF0aWJpbGl0eSBQcm9wZXJ0aWVzIG9mIFVUUyAjMTggVW5pY29kZSBSZWd1bGFyIEV4cHJlc3Npb25zCisgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTgvI0NvbXBhdGliaWxpdHlfUHJvcGVydGllcykuCisgKiA8L3A+CisgKiA8cD4KKyAqIEFQSSBhY2Nlc3MgZm9yIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMgaXMgYXMgZm9sbG93czoKKyAqIC0gYWxwaGE6ICAgICBpc1VBbHBoYWJldGljKGMpIG9yIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5BTFBIQUJFVElDKQorICogLSBsb3dlcjogICAgIGlzVUxvd2VyY2FzZShjKSBvciBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuTE9XRVJDQVNFKQorICogLSB1cHBlcjogICAgIGlzVVVwcGVyY2FzZShjKSBvciBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuVVBQRVJDQVNFKQorICogLSBwdW5jdDogICAgICgoMTw8Z2V0VHlwZShjKSkgJiAoKDE8PERBU0hfUFVOQ1RVQVRJT04pfCgxPDxTVEFSVF9QVU5DVFVBVElPTil8KDE8PEVORF9QVU5DVFVBVElPTil8KDE8PENPTk5FQ1RPUl9QVU5DVFVBVElPTil8KDE8PE9USEVSX1BVTkNUVUFUSU9OKXwoMTw8SU5JVElBTF9QVU5DVFVBVElPTil8KDE8PEZJTkFMX1BVTkNUVUFUSU9OKSkpIT0wCisgKiAtIGRpZ2l0OiAgICAgaXNEaWdpdChjKSBvciBnZXRUeXBlKGMpPT1ERUNJTUFMX0RJR0lUX05VTUJFUgorICogLSB4ZGlnaXQ6ICAgIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5QT1NJWF9YRElHSVQpCisgKiAtIGFsbnVtOiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX0FMTlVNKQorICogLSBzcGFjZTogICAgIGlzVVdoaXRlU3BhY2UoYykgb3IgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LldISVRFX1NQQUNFKQorICogLSBibGFuazogICAgIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5QT1NJWF9CTEFOSykKKyAqIC0gY250cmw6ICAgICBnZXRUeXBlKGMpPT1DT05UUk9MCisgKiAtIGdyYXBoOiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX0dSQVBIKQorICogLSBwcmludDogICAgIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5QT1NJWF9QUklOVCkKKyAqIDwvcD4KKyAqIDxwPgorICogVGhlIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMgYXJlIGFsc28gYXZhaWxhYmxlIGluIFVuaWNvZGVTZXQgcGF0dGVybnMsCisgKiB1c2luZyBwYXR0ZXJucyBsaWtlIFs6Z3JhcGg6XSBvciBccHtncmFwaH0uCisgKiA8L3A+CisgKiA8cD4KKyAqIE5vdGU6IFRoZXJlIGFyZSBzZXZlcmFsIElDVSAoYW5kIEphdmEpIHdoaXRlc3BhY2UgZnVuY3Rpb25zLgorICogQ29tcGFyaXNvbjoKKyAqIC0gaXNVV2hpdGVTcGFjZT1VQ0hBUl9XSElURV9TUEFDRTogVW5pY29kZSBXaGl0ZV9TcGFjZSBwcm9wZXJ0eTsKKyAqICAgICAgIG1vc3Qgb2YgZ2VuZXJhbCBjYXRlZ29yaWVzICJaIiAoc2VwYXJhdG9ycykgKyBtb3N0IHdoaXRlc3BhY2UgSVNPIGNvbnRyb2xzCisgKiAgICAgICAoaW5jbHVkaW5nIG5vLWJyZWFrIHNwYWNlcywgYnV0IGV4Y2x1ZGluZyBJUzEuLklTNCBhbmQgWldTUCkKKyAqIC0gaXNXaGl0ZXNwYWNlOiBKYXZhIGlzV2hpdGVzcGFjZTsgWiArIHdoaXRlc3BhY2UgSVNPIGNvbnRyb2xzIGJ1dCBleGNsdWRpbmcgbm8tYnJlYWsgc3BhY2VzCisgKiAtIGlzU3BhY2VDaGFyOiBqdXN0IFogKGluY2x1ZGluZyBuby1icmVhayBzcGFjZXMpCisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuMQorICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJFbnVtcworICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyIGltcGxlbWVudHMgRUNoYXJhY3RlckNhdGVnb3J5LCBFQ2hhcmFjdGVyRGlyZWN0aW9uCit7IAorICAgIC8vIHB1YmxpYyBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEEgZmFtaWx5IG9mIGNoYXJhY3RlciBzdWJzZXRzIHJlcHJlc2VudGluZyB0aGUgY2hhcmFjdGVyIGJsb2NrcyBpbiB0aGUgCisgICAgICogVW5pY29kZSBzcGVjaWZpY2F0aW9uLCBnZW5lcmF0ZWQgZnJvbSBVbmljb2RlIERhdGEgZmlsZSBCbG9ja3MudHh0LiAKKyAgICAgKiBDaGFyYWN0ZXIgYmxvY2tzIGdlbmVyYWxseSBkZWZpbmUgY2hhcmFjdGVycyB1c2VkIGZvciBhIHNwZWNpZmljIHNjcmlwdCAKKyAgICAgKiBvciBwdXJwb3NlLiBBIGNoYXJhY3RlciBpcyBjb250YWluZWQgYnkgYXQgbW9zdCBvbmUgVW5pY29kZSBibG9jay4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBVbmljb2RlQmxvY2sgZXh0ZW5kcyBDaGFyYWN0ZXIuU3Vic2V0IAorICAgIHsKKyAgICAgICAgLy8gYmxvY2tzIG9iamVjdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTk9fQkxPQ0sgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk5PX0JMT0NLIiwgMCk7CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJBU0lDX0xBVElOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCQVNJQ19MQVRJTiIsIDEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExBVElOXzFfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTEFUSU5fMV9TVVBQTEVNRU5UIiwgMik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfQQorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQVRJTl9FWFRFTkRFRF9BIiwgMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfQiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTEFUSU5fRVhURU5ERURfQiIsIDQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIElQQV9FWFRFTlNJT05TIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJJUEFfRVhURU5TSU9OUyIsIDUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNQQUNJTkdfTU9ESUZJRVJfTEVUVEVSUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTIiwgNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1MiLCA3KTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhpcyBibG9jayB0byAiR3JlZWsgYW5kIENvcHRpYyIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR1JFRUsKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1JFRUsiLCA4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDWVJJTExJQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lSSUxMSUMiLCA5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUk1FTklBTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQVJNRU5JQU4iLCAxMCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSEVCUkVXIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIRUJSRVciLCAxMSk7ICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUMKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQVJBQklDIiwgMTIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNZUklBQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1lSSUFDIiwgMTMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRIQUFOQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEhBQU5BIiwgMTQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIERFVkFOQUdBUkkgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkRFVkFOQUdBUkkiLCAxNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQkVOR0FMSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQkVOR0FMSSIsIDE2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHVVJNVUtISSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1VSTVVLSEkiLCAxNyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR1VKQVJBVEkgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdVSkFSQVRJIiwgMTgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9SSVlBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPUklZQSIsIDE5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQU1JTCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFNSUwiLCAyMCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEVMVUdVIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJURUxVR1UiLCAyMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0FOTkFEQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0FOTkFEQSIsIDIyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNQUxBWUFMQU0gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1BTEFZQUxBTSIsIDIzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTSU5IQUxBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTSU5IQUxBIiwgMjQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRIQUkgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRIQUkiLCAyNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFPIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQU8iLCAyNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVElCRVRBTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVElCRVRBTiIsIDI3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNWUFOTUFSIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNWUFOTUFSIiwgMjgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdFT1JHSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHRU9SR0lBTiIsIDI5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIQU5HVUxfSkFNTyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSEFOR1VMX0pBTU8iLCAzMCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgRVRISU9QSUMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkVUSElPUElDIiwgMzEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENIRVJPS0VFIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSEVST0tFRSIsIDMyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTIiwgMzMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9HSEFNIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPR0hBTSIsIDM0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBSVU5JQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiUlVOSUMiLCAzNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0hNRVIgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktITUVSIiwgMzYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1PTkdPTElBTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTU9OR09MSUFOIiwgMzcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxBVElOX0VYVEVOREVEX0FERElUSU9OQUwiLCAzOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR1JFRUtfRVhURU5ERUQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdSRUVLX0VYVEVOREVEIiwgMzkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdFTkVSQUxfUFVOQ1RVQVRJT04gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdFTkVSQUxfUFVOQ1RVQVRJT04iLCA0MCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQRVJTQ1JJUFRTX0FORF9TVUJTQ1JJUFRTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMiLCA0MSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1VSUkVOQ1lfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1VSUkVOQ1lfU1lNQk9MUyIsIDQyKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhpcyBibG9jayB0byAiQ29tYmluaW5nIERpYWNyaXRpY2FsIE1hcmtzIGZvciAKKyAgICAgICAgICogU3ltYm9scyIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ09NQklOSU5HX01BUktTX0ZPUl9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMiLCA0Myk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEVUVEVSTElLRV9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMRVRURVJMSUtFX1NZTUJPTFMiLCA0NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTlVNQkVSX0ZPUk1TIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJOVU1CRVJfRk9STVMiLCA0NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQVJST1dTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUlJPV1MiLCA0Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyIsIDQ3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19URUNITklDQUwiLCA0OCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ09OVFJPTF9QSUNUVVJFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ09OVFJPTF9QSUNUVVJFUyIsIDQ5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiT1BUSUNBTF9DSEFSQUNURVJfUkVDT0dOSVRJT04iLCA1MCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgRU5DTE9TRURfQUxQSEFOVU1FUklDUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRU5DTE9TRURfQUxQSEFOVU1FUklDUyIsIDUxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCT1hfRFJBV0lORyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQk9YX0RSQVdJTkciLCA1Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQkxPQ0tfRUxFTUVOVFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJMT0NLX0VMRU1FTlRTIiwgNTMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdFT01FVFJJQ19TSEFQRVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdFT01FVFJJQ19TSEFQRVMiLCA1NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTUlTQ0VMTEFORU9VU19TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNSVNDRUxMQU5FT1VTX1NZTUJPTFMiLCA1NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgRElOR0JBVFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkRJTkdCQVRTIiwgNTYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJSQUlMTEVfUEFUVEVSTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJSQUlMTEVfUEFUVEVSTlMiLCA1Nyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19SQURJQ0FMU19TVVBQTEVNRU5UIiwgNTgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBTkdYSV9SQURJQ0FMUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0FOR1hJX1JBRElDQUxTIiwgNTkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIklERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMiLCA2MCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX1NZTUJPTFNfQU5EX1BVTkNUVUFUSU9OIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04iLCA2MSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSElSQUdBTkEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhJUkFHQU5BIiwgNjIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBVEFLQU5BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQVRBS0FOQSIsIDYzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCT1BPTU9GTyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQk9QT01PRk8iLCA2NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTyIsIDY1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLQU5CVU4gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktBTkJVTiIsIDY2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCT1BPTU9GT19FWFRFTkRFRCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQk9QT01PRk9fRVhURU5ERUQiLCA2Nyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUyIsIDY4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfQ09NUEFUSUJJTElUWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX0NPTVBBVElCSUxJVFkiLCA2OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQSIsIDcwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfVU5JRklFRF9JREVPR1JBUEhTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfVU5JRklFRF9JREVPR1JBUEhTIiwgNzEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFlJX1NZTExBQkxFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiWUlfU1lMTEFCTEVTIiwgNzIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFlJX1JBRElDQUxTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJZSV9SQURJQ0FMUyIsIDczKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIQU5HVUxfU1lMTEFCTEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5HVUxfU1lMTEFCTEVTIiwgNzQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhJR0hfU1VSUk9HQVRFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSElHSF9TVVJST0dBVEVTIiwgNzUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSElHSF9QUklWQVRFX1VTRV9TVVJST0dBVEVTIiwgNzYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExPV19TVVJST0dBVEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMT1dfU1VSUk9HQVRFUyIsIDc3KTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNhbWUgYXMgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJVkFURV9VU0UuCisgICAgICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjE7IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSI7CisgICAgICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiAKKyAgICAgICAgICogYW5kIGFkZHMgc2VwYXJhdGUgYmxvY2tzIGZvciB0aGUgc3VwcGxlbWVudGFyeSBQVUFzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBSSVZBVEVfVVNFX0FSRUEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlBSSVZBVEVfVVNFX0FSRUEiLCAgNzgpOworICAgICAgICAvKioKKyAgICAgICAgICogU2FtZSBhcyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRV9BUkVBLgorICAgICAgICAgKiBVbnRpbCBVbmljb2RlIDMuMS4xOyB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBVc2UiOworICAgICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFkIHRoaXMgYmxvY2suCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgCisgICAgICAgICAqIGFuZCBhZGRzIHNlcGFyYXRlIGJsb2NrcyBmb3IgdGhlIHN1cHBsZW1lbnRhcnkgUFVBcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBQUklWQVRFX1VTRSAKKyAgICAgICAgICAgID0gUFJJVkFURV9VU0VfQVJFQTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTIiwgNzkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNUyIsIDgwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0EgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSIsIDgxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfSEFMRl9NQVJLUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ09NQklOSU5HX0hBTEZfTUFSS1MiLCA4Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19DT01QQVRJQklMSVRZX0ZPUk1TIiwgODMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNNQUxMX0ZPUk1fVkFSSUFOVFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNNQUxMX0ZPUk1fVkFSSUFOVFMiLCA4NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IiLCA4NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1BFQ0lBTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNQRUNJQUxTIiwgODYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUyIsIDg3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPTERfSVRBTElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPTERfSVRBTElDIiwgODgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdPVEhJQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR09USElDIiwgODkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIERFU0VSRVQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkRFU0VSRVQiLCA5MCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyIsIDkxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNVVNJQ0FMX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1VU0lDQUxfU1lNQk9MUyIsIDkyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNQVRIRU1BVElDQUxfQUxQSEFOVU1FUklDX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyIsIDkzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9CICAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQiIsIDk0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayAKKyAgICAgICAgICAgIENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19TVVBQTEVNRU5UIiwgOTUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBR1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRBR1MiLCA5Nik7CisgICAgCisgICAgICAgIC8vIE5ldyBibG9ja3MgaW4gVW5pY29kZSAzLjIKKyAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENZUklMTElDX1NVUFBMRU1FTlRBUlkgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNZUklMTElDX1NVUFBMRU1FTlRBUlkiLCA5Nyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxvY2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENZUklMTElDX1NVUFBMRU1FTlQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNZUklMTElDX1NVUFBMRU1FTlQiLCA5Nyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFHQUxPRyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFHQUxPRyIsIDk4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIQU5VTk9PIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5VTk9PIiwgOTkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJVSElEIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCVUhJRCIsIDEwMCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFHQkFOV0EgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRBR0JBTldBIiwgMTAxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0EgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQSIsIDEwMik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX0FSUk9XU19BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQUxfQVJST1dTX0EiLCAxMDMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNVUFBMRU1FTlRBTF9BUlJPV1NfQiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFMX0FSUk9XU19CIiwgMTA0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0IgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQiIsIDEwNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX01BVEhFTUFUSUNBTF9PUEVSQVRPUlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBTF9NQVRIRU1BVElDQUxfT1BFUkFUT1JTIiwgMTA2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLQVRBS0FOQV9QSE9ORVRJQ19FWFRFTlNJT05TIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQVRBS0FOQV9QSE9ORVRJQ19FWFRFTlNJT05TIiwgMTA3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBWQVJJQVRJT05fU0VMRUNUT1JTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJWQVJJQVRJT05fU0VMRUNUT1JTIiwgMTA4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0EiLCAxMDkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQiIsIDExMCk7CisgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMSU1CVSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTElNQlUiLCAxMTEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBSV9MRSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFJIExFIiwgMTEyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLSE1FUl9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLSE1FUiBTWU1CT0xTIiwgMTEzKTsKKworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBIT05FVElDX0VYVEVOU0lPTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlBIT05FVElDIEVYVEVOU0lPTlMiLCAxMTQpOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTUlTQ0VMTEFORU9VU19TWU1CT0xTX0FORF9BUlJPV1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1JU0NFTExBTkVPVVNfU1lNQk9MU19BTkRfQVJST1dTIiwgMTE1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBZSUpJTkdfSEVYQUdSQU1fU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiWUlKSU5HX0hFWEFHUkFNX1NZTUJPTFMiLCAxMTYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExJTkVBUl9CX1NZTExBQkFSWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTElORUFSX0JfU1lMTEFCQVJZIiwgMTE3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMSU5FQVJfQl9JREVPR1JBTVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxJTkVBUl9CX0lERU9HUkFNUyIsIDExOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQUVHRUFOX05VTUJFUlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFFR0VBTl9OVU1CRVJTIiwgMTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFVHQVJJVElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJVR0FSSVRJQyIsIDEyMCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU0hBVklBTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU0hBVklBTiIsIDEyMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT1NNQU5ZQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiT1NNQU5ZQSIsIDEyMik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1lQUklPVF9TWUxMQUJBUlkgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNZUFJJT1RfU1lMTEFCQVJZIiwgMTIzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQUlfWFVBTl9KSU5HX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRBSV9YVUFOX0pJTkdfU1lNQk9MUyIsIDEyNCk7CisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFZBUklBVElPTl9TRUxFQ1RPUlNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVkFSSUFUSU9OX1NFTEVDVE9SU19TVVBQTEVNRU5UIiwgMTI1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSA0LjEgKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBTkNJRU5UX0dSRUVLX01VU0lDQUxfTk9UQVRJT04gPSBuZXcgVW5pY29kZUJsb2NrKCJBTkNJRU5UX0dSRUVLX01VU0lDQUxfTk9UQVRJT04iLCAxMjYpOyAvKlsxRDIwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFOQ0lFTlRfR1JFRUtfTlVNQkVSUyA9IG5ldyBVbmljb2RlQmxvY2soIkFOQ0lFTlRfR1JFRUtfTlVNQkVSUyIsIDEyNyk7IC8qWzEwMTQwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQVJBQklDX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJBUkFCSUNfU1VQUExFTUVOVCIsIDEyOCk7IC8qWzA3NTBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCVUdJTkVTRSA9IG5ldyBVbmljb2RlQmxvY2soIkJVR0lORVNFIiwgMTI5KTsgLypbMUEwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19TVFJPS0VTID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX1NUUk9LRVMiLCAxMzApOyAvKlszMUMwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfU1VQUExFTUVOVCIsIDEzMSk7IC8qWzFEQzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT1BUSUMgPSBuZXcgVW5pY29kZUJsb2NrKCJDT1BUSUMiLCAxMzIpOyAvKlsyQzgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgRVRISU9QSUNfRVhURU5ERUQgPSBuZXcgVW5pY29kZUJsb2NrKCJFVEhJT1BJQ19FWFRFTkRFRCIsIDEzMyk7IC8qWzJEODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFVEhJT1BJQ19TVVBQTEVNRU5UID0gbmV3IFVuaWNvZGVCbG9jaygiRVRISU9QSUNfU1VQUExFTUVOVCIsIDEzNCk7IC8qWzEzODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHRU9SR0lBTl9TVVBQTEVNRU5UID0gbmV3IFVuaWNvZGVCbG9jaygiR0VPUkdJQU5fU1VQUExFTUVOVCIsIDEzNSk7IC8qWzJEMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHTEFHT0xJVElDID0gbmV3IFVuaWNvZGVCbG9jaygiR0xBR09MSVRJQyIsIDEzNik7IC8qWzJDMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLSEFST1NIVEhJID0gbmV3IFVuaWNvZGVCbG9jaygiS0hBUk9TSFRISSIsIDEzNyk7IC8qWzEwQTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTU9ESUZJRVJfVE9ORV9MRVRURVJTID0gbmV3IFVuaWNvZGVCbG9jaygiTU9ESUZJRVJfVE9ORV9MRVRURVJTIiwgMTM4KTsgLypbQTcwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE5FV19UQUlfTFVFID0gbmV3IFVuaWNvZGVCbG9jaygiTkVXX1RBSV9MVUUiLCAxMzkpOyAvKlsxOTgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT0xEX1BFUlNJQU4gPSBuZXcgVW5pY29kZUJsb2NrKCJPTERfUEVSU0lBTiIsIDE0MCk7IC8qWzEwM0EwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgUEhPTkVUSUNfRVhURU5TSU9OU19TVVBQTEVNRU5UID0gbmV3IFVuaWNvZGVCbG9jaygiUEhPTkVUSUNfRVhURU5TSU9OU19TVVBQTEVNRU5UIiwgMTQxKTsgLypbMUQ4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNVUFBMRU1FTlRBTF9QVU5DVFVBVElPTiA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBTF9QVU5DVFVBVElPTiIsIDE0Mik7IC8qWzJFMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTWUxPVElfTkFHUkkgPSBuZXcgVW5pY29kZUJsb2NrKCJTWUxPVElfTkFHUkkiLCAxNDMpOyAvKltBODAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVElGSU5BR0ggPSBuZXcgVW5pY29kZUJsb2NrKCJUSUZJTkFHSCIsIDE0NCk7IC8qWzJEMzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBWRVJUSUNBTF9GT1JNUyA9IG5ldyBVbmljb2RlQmxvY2soIlZFUlRJQ0FMX0ZPUk1TIiwgMTQ1KTsgLypbRkUxMF0qLworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTktPID0gbmV3IFVuaWNvZGVCbG9jayggIk5LTyIsIDE0Nik7IC8qWzA3QzBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCQUxJTkVTRSA9IG5ldyBVbmljb2RlQmxvY2soICJCQUxJTkVTRSIsIDE0Nyk7IC8qWzFCMDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9DID0gbmV3IFVuaWNvZGVCbG9jayggIkxBVElOX0VYVEVOREVEX0MiLCAxNDgpOyAvKlsyQzYwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExBVElOX0VYVEVOREVEX0QgPSBuZXcgVW5pY29kZUJsb2NrKCAiTEFUSU5fRVhURU5ERURfRCIsIDE0OSk7IC8qW0E3MjBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBQSEFHU19QQSA9IG5ldyBVbmljb2RlQmxvY2soICJQSEFHU19QQSIsIDE1MCk7IC8qW0E4NDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBQSE9FTklDSUFOID0gbmV3IFVuaWNvZGVCbG9jayggIlBIT0VOSUNJQU4iLCAxNTEpOyAvKlsxMDkwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENVTkVJRk9STSA9IG5ldyBVbmljb2RlQmxvY2soICJDVU5FSUZPUk0iLCAxNTIpOyAvKlsxMjAwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENVTkVJRk9STV9OVU1CRVJTX0FORF9QVU5DVFVBVElPTiA9IG5ldyBVbmljb2RlQmxvY2soICJDVU5FSUZPUk1fTlVNQkVSU19BTkRfUFVOQ1RVQVRJT04iLCAxNTMpOyAvKlsxMjQwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ09VTlRJTkdfUk9EX05VTUVSQUxTID0gbmV3IFVuaWNvZGVCbG9jayggIkNPVU5USU5HX1JPRF9OVU1FUkFMUyIsIDE1NCk7IC8qWzFEMzYwXSovCisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIElOVkFMSURfQ09ERSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSU5WQUxJRF9DT0RFIiwgLTEpOworICAgICAgICAgICAKKyAgICAgICAgLy8gYmxvY2sgaWQgY29ycmVzcG9uZGluZyB0byBpY3U0YyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlZBTElEX0NPREVfSUQgPSAtMTsgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFTSUNfTEFUSU5fSUQgPSAxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOXzFfU1VQUExFTUVOVF9JRCA9IDI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfQV9JRCA9IDM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfQl9JRCA9IDQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVBBX0VYVEVOU0lPTlNfSUQgPSA1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQQUNJTkdfTU9ESUZJRVJfTEVUVEVSU19JRCA9IDY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTX0lEID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhpcyBibG9jayB0byAiR3JlZWsgYW5kIENvcHRpYyIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JFRUtfSUQgPSA4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUklMTElDX0lEID0gOTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUk1FTklBTl9JRCA9IDEwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFQlJFV19JRCA9IDExOyAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDX0lEID0gMTI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lSSUFDX0lEID0gMTM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEhBQU5BX0lEID0gMTQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVWQU5BR0FSSV9JRCA9IDE1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFTkdBTElfSUQgPSAxNjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVVJNVUtISV9JRCA9IDE3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdVSkFSQVRJX0lEID0gMTg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JJWUFfSUQgPSAxOTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQU1JTF9JRCA9IDIwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTFVHVV9JRCA9IDIxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBTk5BREFfSUQgPSAyMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQUxBWUFMQU1fSUQgPSAyMzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSU5IQUxBX0lEID0gMjQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEhBSV9JRCA9IDI1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBT19JRCA9IDI2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJQkVUQU5fSUQgPSAyNzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNWUFOTUFSX0lEID0gMjg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VPUkdJQU5fSUQgPSAyOTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfSkFNT19JRCA9IDMwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDX0lEID0gMzE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hFUk9LRUVfSUQgPSAzMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklGSUVEX0NBTkFESUFOX0FCT1JJR0lOQUxfU1lMTEFCSUNTX0lEID0gMzM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0dIQU1fSUQgPSAzNDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSVU5JQ19JRCA9IDM1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtITUVSX0lEID0gMzY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTU9OR09MSUFOX0lEID0gMzc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfQURESVRJT05BTF9JRCA9IDM4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSRUVLX0VYVEVOREVEX0lEID0gMzk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VORVJBTF9QVU5DVFVBVElPTl9JRCA9IDQwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUEVSU0NSSVBUU19BTkRfU1VCU0NSSVBUU19JRCA9IDQxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZX1NZTUJPTFNfSUQgPSA0MjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhpcyBibG9jayB0byAiQ29tYmluaW5nIERpYWNyaXRpY2FsIE1hcmtzIGZvciAKKyAgICAgICAgICogU3ltYm9scyIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX01BUktTX0ZPUl9TWU1CT0xTX0lEID0gNDM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSTElLRV9TWU1CT0xTX0lEID0gNDQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNQkVSX0ZPUk1TX0lEID0gNDU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJST1dTX0lEID0gNDY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFUSEVNQVRJQ0FMX09QRVJBVE9SU19JRCA9IDQ3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JU0NFTExBTkVPVVNfVEVDSE5JQ0FMX0lEID0gNDg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9QSUNUVVJFU19JRCA9IDQ5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OX0lEID0gNTA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU5DTE9TRURfQUxQSEFOVU1FUklDU19JRCA9IDUxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPWF9EUkFXSU5HX0lEID0gNTI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0tfRUxFTUVOVFNfSUQgPSA1MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU9NRVRSSUNfU0hBUEVTX0lEID0gNTQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlTQ0VMTEFORU9VU19TWU1CT0xTX0lEID0gNTU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElOR0JBVFNfSUQgPSA1NjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkFJTExFX1BBVFRFUk5TX0lEID0gNTc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlRfSUQgPSA1ODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5HWElfUkFESUNBTFNfSUQgPSA1OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJREVPR1JBUEhJQ19ERVNDUklQVElPTl9DSEFSQUNURVJTX0lEID0gNjA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1NZTUJPTFNfQU5EX1BVTkNUVUFUSU9OX0lEID0gNjE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElSQUdBTkFfSUQgPSA2MjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVRBS0FOQV9JRCA9IDYzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPUE9NT0ZPX0lEID0gNjQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNT19JRCA9IDY1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBTkJVTl9JRCA9IDY2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPUE9NT0ZPX0VYVEVOREVEX0lEID0gNjc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIU19JRCA9IDY4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRJQklMSVRZX0lEID0gNjk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQV9JRCA9IDcwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19VTklGSUVEX0lERU9HUkFQSFNfSUQgPSA3MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZSV9TWUxMQUJMRVNfSUQgPSA3MjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZSV9SQURJQ0FMU19JRCA9IDczOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9TWUxMQUJMRVNfSUQgPSA3NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISUdIX1NVUlJPR0FURVNfSUQgPSA3NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVNfSUQgPSA3NjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dfU1VSUk9HQVRFU19JRCA9IDc3OworICAgICAgICAvKioKKyAgICAgICAgICogU2FtZSBhcyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRS4KKyAgICAgICAgICogVW50aWwgVW5pY29kZSAzLjEuMTsgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMgIlByaXZhdGUgVXNlIjsKKyAgICAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZhdGUgVXNlIEFyZWEiIAorICAgICAgICAgKiBhbmQgYWRkcyBzZXBhcmF0ZSBibG9ja3MgZm9yIHRoZSBzdXBwbGVtZW50YXJ5IFBVQXMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJVkFURV9VU0VfQVJFQV9JRCA9IDc4OworICAgICAgICAvKioKKyAgICAgICAgICogU2FtZSBhcyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRV9BUkVBLgorICAgICAgICAgKiBVbnRpbCBVbmljb2RlIDMuMS4xOyB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBVc2UiOworICAgICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFkIHRoaXMgYmxvY2suCisgICAgICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgCisgICAgICAgICAqIGFuZCBhZGRzIHNlcGFyYXRlIGJsb2NrcyBmb3IgdGhlIHN1cHBsZW1lbnRhcnkgUFVBcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRV9JRCA9IFBSSVZBVEVfVVNFX0FSRUFfSUQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19JRCA9IDc5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0lEID0gODA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BX0lEID0gODE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0hBTEZfTUFSS1NfSUQgPSA4MjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUSUJJTElUWV9GT1JNU19JRCA9IDgzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNNQUxMX0ZPUk1fVkFSSUFOVFNfSUQgPSA4NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0JfSUQgPSA4NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUEVDSUFMU19JRCA9IDg2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TX0lEID0gODc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX0lUQUxJQ19JRCA9IDg4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdPVEhJQ19JRCA9IDg5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFU0VSRVRfSUQgPSA5MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTX0lEID0gOTE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVVTSUNBTF9TWU1CT0xTX0lEID0gOTI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTX0lEID0gOTM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQl9JRCA9IDk0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IAorICAgICAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19TVVBQTEVNRU5UX0lEID0gOTU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHU19JRCA9IDk2OworICAgIAorICAgICAgICAvLyBOZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4yCisgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxvY2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVJJTExJQ19TVVBQTEVNRU5UQVJZX0lEID0gOTc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxvY2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUNfU1VQUExFTUVOVF9JRCA9IDk3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR0FMT0dfSUQgPSA5ODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5VTk9PX0lEID0gOTk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVISURfSUQgPSAxMDA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQkFOV0FfSUQgPSAxMDE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19BX0lEID0gMTAyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBTF9BUlJPV1NfQV9JRCA9IDEwMzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQUxfQVJST1dTX0JfSUQgPSAxMDQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19CX0lEID0gMTA1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBTF9NQVRIRU1BVElDQUxfT1BFUkFUT1JTX0lEID0gMTA2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlNfSUQgPSAxMDc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFSSUFUSU9OX1NFTEVDVE9SU19JRCA9IDEwODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQV9JRCA9IDEwOTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQl9JRCA9IDExMDsKKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElNQlVfSUQgPSAxMTE7IC8qWzE5MDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBSV9MRV9JRCA9IDExMjsgLypbMTk1MF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtITUVSX1NZTUJPTFNfSUQgPSAxMTM7IC8qWzE5RTBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIT05FVElDX0VYVEVOU0lPTlNfSUQgPSAxMTQ7IC8qWzFEMDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfQU5EX0FSUk9XU19JRCA9IDExNTsgLypbMkIwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUlKSU5HX0hFWEFHUkFNX1NZTUJPTFNfSUQgPSAxMTY7IC8qWzREQzBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FQVJfQl9TWUxMQUJBUllfSUQgPSAxMTc7IC8qWzEwMDAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FQVJfQl9JREVPR1JBTVNfSUQgPSAxMTg7IC8qWzEwMDgwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBRUdFQU5fTlVNQkVSU19JRCA9IDExOTsgLypbMTAxMDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUdBUklUSUNfSUQgPSAxMjA7IC8qWzEwMzgwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQVZJQU5fSUQgPSAxMjE7IC8qWzEwNDUwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9TTUFOWUFfSUQgPSAxMjI7IC8qWzEwNDgwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUFJJT1RfU1lMTEFCQVJZX0lEID0gMTIzOyAvKlsxMDgwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUlfWFVBTl9KSU5HX1NZTUJPTFNfSUQgPSAxMjQ7IC8qWzFEMzAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBUklBVElPTl9TRUxFQ1RPUlNfU1VQUExFTUVOVF9JRCA9IDEyNTsgLypbRTAxMDBdKi8KKworICAgICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgNC4xICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OX0lEID0gMTI2OyAvKlsxRDIwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFOQ0lFTlRfR1JFRUtfTlVNQkVSU19JRCA9IDEyNzsgLypbMTAxNDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUNfU1VQUExFTUVOVF9JRCA9IDEyODsgLypbMDc1MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVR0lORVNFX0lEID0gMTI5OyAvKlsxQTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX1NUUk9LRVNfSUQgPSAxMzA7IC8qWzMxQzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfU1VQUExFTUVOVF9JRCA9IDEzMTsgLypbMURDMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPUFRJQ19JRCA9IDEzMjsgLypbMkM4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDX0VYVEVOREVEX0lEID0gMTMzOyAvKlsyRDgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVRISU9QSUNfU1VQUExFTUVOVF9JRCA9IDEzNDsgLypbMTM4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT1JHSUFOX1NVUFBMRU1FTlRfSUQgPSAxMzU7IC8qWzJEMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHTEFHT0xJVElDX0lEID0gMTM2OyAvKlsyQzAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hBUk9TSFRISV9JRCA9IDEzNzsgLypbMTBBMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNT0RJRklFUl9UT05FX0xFVFRFUlNfSUQgPSAxMzg7IC8qW0E3MDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORVdfVEFJX0xVRV9JRCA9IDEzOTsgLypbMTk4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9QRVJTSUFOX0lEID0gMTQwOyAvKlsxMDNBMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIT05FVElDX0VYVEVOU0lPTlNfU1VQUExFTUVOVF9JRCA9IDE0MTsgLypbMUQ4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBTF9QVU5DVFVBVElPTl9JRCA9IDE0MjsgLypbMkUwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZTE9USV9OQUdSSV9JRCA9IDE0MzsgLypbQTgwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJRklOQUdIX0lEID0gMTQ0OyAvKlsyRDMwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkVSVElDQUxfRk9STVNfSUQgPSAxNDU7IC8qW0ZFMTBdKi8KKworICAgICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgNS4wICovCisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOS09fSUQgPSAxNDY7IC8qWzA3QzBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQUxJTkVTRV9JRCA9IDE0NzsgLypbMUIwMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0VYVEVOREVEX0NfSUQgPSAxNDg7IC8qWzJDNjBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRVhURU5ERURfRF9JRCA9IDE0OTsgLypbQTcyMF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42IAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBIQUdTX1BBX0lEID0gMTUwOyAvKltBODQwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPRU5JQ0lBTl9JRCA9IDE1MTsgLypbMTA5MDBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNiAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVU5FSUZPUk1fSUQgPSAxNTI7IC8qWzEyMDAwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VORUlGT1JNX05VTUJFUlNfQU5EX1BVTkNUVUFUSU9OX0lEID0gMTUzOyAvKlsxMjQwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlRJTkdfUk9EX05VTUVSQUxTX0lEID0gMTU0OyAvKlsxRDM2MF0qLworICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDE1NTsKKyAgICAgICAgCisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEdldHMgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgdGhlIFVuaWNvZGVCbG9jayB3aXRoIHRoZSBhcmd1bWVudCBJRC4KKyAgICAgICAgICogSWYgbm8gc3VjaCBJRCBleGlzdHMsIGEgSU5WQUxJRF9DT0RFIFVuaWNvZGVCbG9jayB3aWxsIGJlIHJldHVybmVkLgorICAgICAgICAgKiBAcGFyYW0gaWQgVW5pY29kZUJsb2NrIElECisgICAgICAgICAqIEByZXR1cm4gdGhlIG9ubHkgaW5zdGFuY2Ugb2YgdGhlIFVuaWNvZGVCbG9jayB3aXRoIHRoZSBhcmd1bWVudCBJRAorICAgICAgICAgKiAgICAgICAgIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIGEgSU5WQUxJRF9DT0RFIFVuaWNvZGVCbG9jayB3aWxsIGJlIAorICAgICAgICAgKiAgICAgICAgIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUJsb2NrIGdldEluc3RhbmNlKGludCBpZCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGlkID49IDAgJiYgaWQgPCBCTE9DS1NfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBCTE9DS1NfW2lkXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0NPREU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBVbmljb2RlIGFsbG9jYXRpb24gYmxvY2sgdGhhdCBjb250YWlucyB0aGUgY29kZSBwb2ludCwKKyAgICAgICAgICogb3IgbnVsbCBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBtZW1iZXIgb2YgYSBkZWZpbmVkIGJsb2NrLgorICAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgICAgICogQHJldHVybiB0aGUgVW5pY29kZSBhbGxvY2F0aW9uIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGNvZGUgcG9pbnQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVCbG9jayBvZihpbnQgY2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0NPREU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBVbmljb2RlQmxvY2suZ2V0SW5zdGFuY2UoKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICYgQkxPQ0tfTUFTS18pID4+IEJMT0NLX1NISUZUXyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gcmV0dXJuaW5nIG9mKGNoKS5nZXRJRCgpLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gY2gKKyAgICAgICAgICogQHJldHVybiBudW1lcmljIGJsb2NrIHZhbHVlCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGludCBpZE9mKGludCBjaCkgeworICAgICAgICAgICAgaWYgKGNoIDwgMCB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMCkgJiBCTE9DS19NQVNLXykgPj4gQkxPQ0tfU0hJRlRfOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSS4gIFJldHVybiB0aGUgVW5pY29kZSBibG9jayB3aXRoIHRoZQorICAgICAgICAgKiBnaXZlbiBuYW1lLiAgPGJyLz48Yj5Ob3RlPC9iPjogVW5saWtlIEpESyAxLjUsIHRoaXMgb25seSBtYXRjaGVzCisgICAgICAgICAqIGFnYWluc3QgdGhlIG9mZmljaWFsIFVDRCBuYW1lIGFuZCB0aGUgSmF2YSBibG9jayBuYW1lCisgICAgICAgICAqIChpZ25vcmluZyBjYXNlKS4KKyAgICAgICAgICogQHBhcmFtIGJsb2NrTmFtZSB0aGUgbmFtZSBvZiB0aGUgYmxvY2sgdG8gbWF0Y2gKKyAgICAgICAgICogQHJldHVybiB0aGUgVW5pY29kZUJsb2NrIHdpdGggdGhhdCBuYW1lCisgICAgICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBibG9ja05hbWUgY291bGQgbm90IGJlIG1hdGNoZWQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBmb3JOYW1lKFN0cmluZyBibG9ja05hbWUpIHsKKyAgICAgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChtcmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtID0gKE1hcCltcmVmLmdldCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG0gPSBuZXcgSGFzaE1hcChCTE9DS1NfLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCTE9DS1NfLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVCbG9jayBiID0gQkxPQ0tTX1tpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXRQcm9wZXJ0eVZhbHVlTmFtZShVUHJvcGVydHkuQkxPQ0ssIGIuZ2V0SUQoKSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgICAgICAgIG0ucHV0KG5hbWUudG9VcHBlckNhc2UoKSwgYik7CisgICAgICAgICAgICBtLnB1dChuYW1lLnJlcGxhY2UoJ18nLCcgJykudG9VcHBlckNhc2UoKSwgYik7CisgICAgICAgICAgICAgICAgICAgIG0ucHV0KGIudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLCBiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKG0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVW5pY29kZUJsb2NrIGIgPSAoVW5pY29kZUJsb2NrKW0uZ2V0KGJsb2NrTmFtZS50b1VwcGVyQ2FzZSgpKTsKKyAgICAgICAgICAgIGlmIChiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIG1yZWY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHR5cGUgSUQgb2YgdGhpcyBVbmljb2RlIGJsb2NrCisgICAgICAgICAqIEByZXR1cm4gaW50ZWdlciB0eXBlIElEIG9mIHRoaXMgVW5pY29kZSBibG9jaworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SUQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pZF87CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IG9mIFVuaWNvZGVCbG9ja3MsIGZvciBlYXN5IGFjY2VzcyBpbiBnZXRJbnN0YW5jZShpbnQpCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBVbmljb2RlQmxvY2sgQkxPQ0tTX1tdID0geworICAgICAgICAgICAgTk9fQkxPQ0ssIEJBU0lDX0xBVElOLCAKKyAgICAgICAgICAgIExBVElOXzFfU1VQUExFTUVOVCwgTEFUSU5fRVhURU5ERURfQSwgCisgICAgICAgICAgICBMQVRJTl9FWFRFTkRFRF9CLCBJUEFfRVhURU5TSU9OUywgCisgICAgICAgICAgICBTUEFDSU5HX01PRElGSUVSX0xFVFRFUlMsIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUywKKyAgICAgICAgICAgIEdSRUVLLCBDWVJJTExJQywKKyAgICAgICAgICAgIEFSTUVOSUFOLCBIRUJSRVcsCisgICAgICAgICAgICBBUkFCSUMsIFNZUklBQywgCisgICAgICAgICAgICBUSEFBTkEsIERFVkFOQUdBUkksIAorICAgICAgICAgICAgQkVOR0FMSSwgR1VSTVVLSEksIAorICAgICAgICAgICAgR1VKQVJBVEksIE9SSVlBLCAKKyAgICAgICAgICAgIFRBTUlMLCBURUxVR1UsIAorICAgICAgICAgICAgS0FOTkFEQSwgTUFMQVlBTEFNLCAKKyAgICAgICAgICAgIFNJTkhBTEEsIFRIQUksIAorICAgICAgICAgICAgTEFPLCBUSUJFVEFOLCAKKyAgICAgICAgICAgIE1ZQU5NQVIsIEdFT1JHSUFOLCAKKyAgICAgICAgICAgIEhBTkdVTF9KQU1PLCBFVEhJT1BJQywgCisgICAgICAgICAgICBDSEVST0tFRSwgVU5JRklFRF9DQU5BRElBTl9BQk9SSUdJTkFMX1NZTExBQklDUywKKyAgICAgICAgICAgIE9HSEFNLCBSVU5JQywgCisgICAgICAgICAgICBLSE1FUiwgTU9OR09MSUFOLCAKKyAgICAgICAgICAgIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwsIEdSRUVLX0VYVEVOREVELCAKKyAgICAgICAgICAgIEdFTkVSQUxfUFVOQ1RVQVRJT04sIFNVUEVSU0NSSVBUU19BTkRfU1VCU0NSSVBUUywKKyAgICAgICAgICAgIENVUlJFTkNZX1NZTUJPTFMsIENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUywgCisgICAgICAgICAgICBMRVRURVJMSUtFX1NZTUJPTFMsIE5VTUJFUl9GT1JNUywgCisgICAgICAgICAgICBBUlJPV1MsIE1BVEhFTUFUSUNBTF9PUEVSQVRPUlMsIAorICAgICAgICAgICAgTUlTQ0VMTEFORU9VU19URUNITklDQUwsIENPTlRST0xfUElDVFVSRVMsCisgICAgICAgICAgICBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiwgRU5DTE9TRURfQUxQSEFOVU1FUklDUywKKyAgICAgICAgICAgIEJPWF9EUkFXSU5HLCBCTE9DS19FTEVNRU5UUywKKyAgICAgICAgICAgIEdFT01FVFJJQ19TSEFQRVMsIE1JU0NFTExBTkVPVVNfU1lNQk9MUywKKyAgICAgICAgICAgIERJTkdCQVRTLCBCUkFJTExFX1BBVFRFUk5TLAorICAgICAgICAgICAgQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQsIEtBTkdYSV9SQURJQ0FMUywKKyAgICAgICAgICAgIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMsIENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTiwKKyAgICAgICAgICAgIEhJUkFHQU5BLCBLQVRBS0FOQSwgCisgICAgICAgICAgICBCT1BPTU9GTywgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTywKKyAgICAgICAgICAgIEtBTkJVTiwgQk9QT01PRk9fRVhURU5ERUQsIAorICAgICAgICAgICAgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUywgQ0pLX0NPTVBBVElCSUxJVFksCisgICAgICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BLCBDSktfVU5JRklFRF9JREVPR1JBUEhTLAorICAgICAgICAgICAgWUlfU1lMTEFCTEVTLCBZSV9SQURJQ0FMUywgCisgICAgICAgICAgICBIQU5HVUxfU1lMTEFCTEVTLCBISUdIX1NVUlJPR0FURVMsCisgICAgICAgICAgICBISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMsIExPV19TVVJST0dBVEVTLAorICAgICAgICAgICAgUFJJVkFURV9VU0VfQVJFQSwgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUywKKyAgICAgICAgICAgIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TLCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0EsCisgICAgICAgICAgICBDT01CSU5JTkdfSEFMRl9NQVJLUywgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMsCisgICAgICAgICAgICBTTUFMTF9GT1JNX1ZBUklBTlRTLCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IsCisgICAgICAgICAgICBTUEVDSUFMUywgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVMsCisgICAgICAgICAgICBPTERfSVRBTElDLCBHT1RISUMsIAorICAgICAgICAgICAgREVTRVJFVCwgQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUywKKyAgICAgICAgICAgIE1VU0lDQUxfU1lNQk9MUywgTUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTLAorICAgICAgICAgICAgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQiwgCisgICAgICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQsIAorICAgICAgICAgICAgVEFHUywgQ1lSSUxMSUNfU1VQUExFTUVOVCwKKyAgICAgICAgICAgIFRBR0FMT0csIEhBTlVOT08sIAorICAgICAgICAgICAgQlVISUQsIFRBR0JBTldBLCAKKyAgICAgICAgICAgIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQSwgU1VQUExFTUVOVEFMX0FSUk9XU19BLAorICAgICAgICAgICAgU1VQUExFTUVOVEFMX0FSUk9XU19CLCBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0IsCisgICAgICAgICAgICBTVVBQTEVNRU5UQUxfTUFUSEVNQVRJQ0FMX09QRVJBVE9SUywgCisgICAgICAgICAgICBLQVRBS0FOQV9QSE9ORVRJQ19FWFRFTlNJT05TLAorICAgICAgICAgICAgVkFSSUFUSU9OX1NFTEVDVE9SUywgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0EsCisgICAgICAgICAgICBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQiwKKyAgICAgICAgICAgIExJTUJVLCBUQUlfTEUsIEtITUVSX1NZTUJPTFMsIFBIT05FVElDX0VYVEVOU0lPTlMsCisgICAgICAgICAgICBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfQU5EX0FSUk9XUywgWUlKSU5HX0hFWEFHUkFNX1NZTUJPTFMsCisgICAgICAgICAgICBMSU5FQVJfQl9TWUxMQUJBUlksIExJTkVBUl9CX0lERU9HUkFNUywgQUVHRUFOX05VTUJFUlMsCisgICAgICAgICAgICBVR0FSSVRJQywgU0hBVklBTiwgT1NNQU5ZQSwgQ1lQUklPVF9TWUxMQUJBUlksCisgICAgICAgICAgICBUQUlfWFVBTl9KSU5HX1NZTUJPTFMsIFZBUklBVElPTl9TRUxFQ1RPUlNfU1VQUExFTUVOVCwKKworICAgICAgICAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDQuMSAqLworICAgICAgICAgICAgQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OLAorICAgICAgICAgICAgQU5DSUVOVF9HUkVFS19OVU1CRVJTLAorICAgICAgICAgICAgQVJBQklDX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBCVUdJTkVTRSwKKyAgICAgICAgICAgIENKS19TVFJPS0VTLAorICAgICAgICAgICAgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBDT1BUSUMsCisgICAgICAgICAgICBFVEhJT1BJQ19FWFRFTkRFRCwKKyAgICAgICAgICAgIEVUSElPUElDX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBHRU9SR0lBTl9TVVBQTEVNRU5ULAorICAgICAgICAgICAgR0xBR09MSVRJQywKKyAgICAgICAgICAgIEtIQVJPU0hUSEksCisgICAgICAgICAgICBNT0RJRklFUl9UT05FX0xFVFRFUlMsCisgICAgICAgICAgICBORVdfVEFJX0xVRSwKKyAgICAgICAgICAgIE9MRF9QRVJTSUFOLAorICAgICAgICAgICAgUEhPTkVUSUNfRVhURU5TSU9OU19TVVBQTEVNRU5ULAorICAgICAgICAgICAgU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OLAorICAgICAgICAgICAgU1lMT1RJX05BR1JJLAorICAgICAgICAgICAgVElGSU5BR0gsCisgICAgICAgICAgICBWRVJUSUNBTF9GT1JNUywKKyAgICAgICAgICAgIE5LTywKKyAgICAgICAgICAgIEJBTElORVNFLAorICAgICAgICAgICAgTEFUSU5fRVhURU5ERURfQywKKyAgICAgICAgICAgIExBVElOX0VYVEVOREVEX0QsCisgICAgICAgICAgICBQSEFHU19QQSwKKyAgICAgICAgICAgIFBIT0VOSUNJQU4sCisgICAgICAgICAgICBDVU5FSUZPUk0sCisgICAgICAgICAgICBDVU5FSUZPUk1fTlVNQkVSU19BTkRfUFVOQ1RVQVRJT04sCisgICAgICAgICAgICBDT1VOVElOR19ST0RfTlVNRVJBTFMKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgeworICAgICAgICAgICAgaWYgKENPVU5UIT1CTE9DS1NfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJVbmljb2RlQmxvY2sgZmllbGRzIGFyZSBpbmNvbnNpc3RlbnQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIElkZW50aWZpY2F0aW9uIGNvZGUgZm9yIHRoaXMgVW5pY29kZUJsb2NrCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtX2lkXzsKKyAgICAgICAgCisgICAgICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaWNvZGVCbG9jayBjb25zdHJ1Y3RvcgorICAgICAgICAgKiBAcGFyYW0gbmFtZSBuYW1lIG9mIHRoaXMgVW5pY29kZUJsb2NrCisgICAgICAgICAqIEBwYXJhbSBpZCB1bmlxdWUgaWQgb2YgdGhpcyBVbmljb2RlQmxvY2sKKyAgICAgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBuYW1lIGlzIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFVuaWNvZGVCbG9jayhTdHJpbmcgbmFtZSwgaW50IGlkKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgICAgIG1faWRfID0gaWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRWFzdCBBc2lhbiBXaWR0aCBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjRUFTVF9BU0lBTl9XSURUSAorICAgICAqIEBzZWUgVUNoYXJhY3RlciNnZXRJbnRQcm9wZXJ0eVZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRWFzdEFzaWFuV2lkdGggCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORVVUUkFMID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQU1CSUdVT1VTID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFMRldJRFRIID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTFdJRFRIID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0lERSA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gNjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2l0aW9uIFR5cGUgY29uc3RhbnRzLgorICAgICAqIEBzZWUgVVByb3BlcnR5I0RFQ09NUE9TSVRJT05fVFlQRQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIERlY29tcG9zaXRpb25UeXBlIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9ORSA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBTk9OSUNBTCA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTVBBVCA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENJUkNMRSA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZJTkFMID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9OVCA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTCA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElTT0xBVEVEID0gODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVESUFMID0gOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XID0gMTA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PQlJFQUsgPSAxMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU01BTEwgPSAxMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1FVQVJFID0gMTM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVQiA9IDE0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBFUiA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWRVJUSUNBTCA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSURFID0gMTc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMTg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEpvaW5pbmcgVHlwZSBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjSk9JTklOR19UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSm9pbmluZ1R5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05fSk9JTklORyA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpPSU5fQ0FVU0lORyA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERVQUxfSk9JTklORyA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFRlRfSk9JTklORyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX0pPSU5JTkcgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFOU1BBUkVOVCA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gNjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSm9pbmluZyBHcm91cCBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjSk9JTklOR19HUk9VUAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIEpvaW5pbmdHcm91cCAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PX0pPSU5JTkdfR1JPVVAgPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBSU4gPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTEFQSCA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMRUYgPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRUggPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRVRIID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFMID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFMQVRIX1JJU0ggPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFID0gODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkVIID0gOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRklOQUxfU0VNS0FUSCA9IDEwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHQUYgPSAxMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0FNQUwgPSAxMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBSCA9IDEzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU1aQV9PTl9IRUhfR09BTCA9IDE0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRSA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUggPSAxNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVIX0dPQUwgPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVUSCA9IDE4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQUYgPSAxOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FQSCA9IDIwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLTk9UVEVEX0hFSCA9IDIxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU0gPSAyMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFNQURIID0gMjM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FRU0gPSAyNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlNID0gMjU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PT04gPSAyNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVOID0gMjc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBFID0gMjg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFBRiA9IDI5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRQVBIID0gMzA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFSCA9IDMxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSRVZFUlNFRF9QRSA9IDMyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQUQgPSAzMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FESEUgPSAzNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VFTiA9IDM1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRU1LQVRIID0gMzY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNISU4gPSAzNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1dBU0hfS0FGID0gMzg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZUklBQ19XQVcgPSAzOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFIID0gNDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBVyA9IDQxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUhfTUFSQlVUQSA9IDQyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVRIID0gNDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdBVyA9IDQ0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUggPSA0NTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVIX0JBUlJFRSA9IDQ2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUhfV0lUSF9UQUlMID0gNDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlVREggPSA0ODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWVVESF9IRSA9IDQ5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBaQUlOID0gNTA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkUgPSA1MTsgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtIQVBIID0gNTI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBaSEFJTiA9NTM7ICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gNTQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR3JhcGhlbWUgQ2x1c3RlciBCcmVhayBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgR3JhcGhlbWVDbHVzdGVyQnJlYWsgeworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUiA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0wgPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDUiA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYVEVORCA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEwgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRiA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExWID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZUID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVCA9IDg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFYgPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDEwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdvcmQgQnJlYWsgY29uc3RhbnRzLgorICAgICAqIEBzZWUgVVByb3BlcnR5I1dPUkRfQlJFQUsKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFdvcmRCcmVhayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxFVFRFUiA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlETEVUVEVSID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlETlVNID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQyA9IDY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYVEVORE5VTUxFVCA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gODsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW50ZW5jZSBCcmVhayBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjU0VOVEVOQ0VfQlJFQUsKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFNlbnRlbmNlQnJlYWsgeworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUiA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFURVJNID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0UgPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVQgPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUiA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUMgPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTEVUVEVSID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VQID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1AgPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEVSTSA9IDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSID0gMTA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogTGluZSBCcmVhayBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjTElORV9CUkVBSworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIExpbmVCcmVhayAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTUJJR1VPVVMgPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFBIQUJFVElDID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfQk9USCA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJSRUFLX0FGVEVSID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfQkVGT1JFID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFOREFUT1JZX0JSRUFLID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVElOR0VOVF9CUkVBSyA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMT1NFX1BVTkNUVUFUSU9OID0gODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX01BUksgPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVJSSUFHRV9SRVRVUk4gPSAxMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDTEFNQVRJT04gPSAxMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0xVRSA9IDEyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gPSAxMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURFT0dSQVBISUMgPSAxNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzZWUgI0lOU0VQQVJBQkxFCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5TRVBFUkFCTEUgPSAxNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlbmFtZWQgZnJvbSB0aGUgbWlzc3BlbGxlZCAiaW5zZXBlcmFibGUiIGluIFVuaWNvZGUgNC4wLjEuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5TRVBBUkFCTEUgPSAxNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5GSVhfTlVNRVJJQyA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU5FX0ZFRUQgPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9OU1RBUlRFUiA9IDE4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1FUklDID0gMTk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QRU5fUFVOQ1RVQVRJT04gPSAyMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9TVEZJWF9OVU1FUklDID0gMjE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSRUZJWF9OVU1FUklDID0gMjI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFVT1RBVElPTiA9IDIzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QTEVYX0NPTlRFWFQgPSAyNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFID0gMjU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQQUNFID0gMjY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJSRUFLX1NZTUJPTFMgPSAyNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWldTUEFDRSA9IDI4OworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkVYVF9MSU5FID0gMjk7ICAgICAgIC8qW05MXSovIC8qIGZyb20gaGVyZSBvbjogbmV3IGluIFVuaWNvZGUgNC9JQ1UgMi42ICovCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgV09SRF9KT0lORVIgPSAzMDsgICAgICAvKltXSl0qLworICAgICAgICAKKyAgICAgICAgLyogZnJvbSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA0LjEvSUNVIDMuNCAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIMiA9IDMxOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgSDMgPSAzMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIEpMID0gMzM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBKVCA9IDM0OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgSlYgPSAzNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDM2OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOdW1lcmljIFR5cGUgY29uc3RhbnRzLgorICAgICAqIEBzZWUgVVByb3BlcnR5I05VTUVSSUNfVFlQRQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIE51bWVyaWNUeXBlIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9ORSA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFQ0lNQUwgPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVCA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUMgPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEhhbmd1bCBTeWxsYWJsZSBUeXBlIGNvbnN0YW50cy4KKyAgICAgKgorICAgICAqIEBzZWUgVVByb3BlcnR5I0hBTkdVTF9TWUxMQUJMRV9UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSGFuZ3VsU3lsbGFibGVUeXBlIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9UX0FQUExJQ0FCTEUgICAgICA9IDA7ICAgLypbTkFdKi8gLypTZWUgbm90ZSAhISovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURJTkdfSkFNTyAgICAgICAgPSAxOyAgIC8qW0xdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVk9XRUxfSkFNTyAgICAgICAgICA9IDI7ICAgLypbVl0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFJTElOR19KQU1PICAgICAgID0gMzsgICAvKltUXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExWX1NZTExBQkxFICAgICAgICAgPSA0OyAgIC8qW0xWXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExWVF9TWUxMQUJMRSAgICAgICAgPSA1OyAgIC8qW0xWVF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCAgICAgICAgICAgICAgID0gNjsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKiAKKyAgICAgKiBUaGUgbG93ZXN0IFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fVkFMVUUgPSBVVEYxNi5DT0RFUE9JTlRfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogVGhlIGhpZ2hlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlIChzY2FsYXIgdmFsdWUpIGFjY29yZGluZyB0byB0aGUgCisgICAgICogVW5pY29kZSBTdGFuZGFyZC4gCisgICAgICogVGhpcyBpcyBhIDIxLWJpdCB2YWx1ZSAoMjEgYml0cywgcm91bmRlZCB1cCkuPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLk1JTl9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9WQUxVRSA9IFVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUU7IAorICAgICAgCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gdmFsdWUgZm9yIFN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSA9IAorICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFVuaWNvZGUgdmFsdWUgdXNlZCB3aGVuIHRyYW5zbGF0aW5nIGludG8gVW5pY29kZSBlbmNvZGluZyBmb3JtIGFuZCB0aGVyZSAKKyAgICAgKiBpcyBubyBleGlzdGluZyBjaGFyYWN0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVQTEFDRU1FTlRfQ0hBUiA9ICdcdUZGRkQnOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQgYnkgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpbnQpIHdoZW4gbm8gCisgICAgICogbnVtZXJpYyB2YWx1ZSBpcyBkZWZpbmVkIGZvciBhIGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICogQHNlZSAjZ2V0VW5pY29kZU51bWVyaWNWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIE5PX05VTUVSSUNfVkFMVUUgPSAtMTIzNDU2Nzg5OworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBjb25zdGFudCBmb3IgSmF2YSBDaGFyYWN0ZXIncyBNSU5fUkFESVguCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fUkFESVggPSBqYXZhLmxhbmcuQ2hhcmFjdGVyLk1JTl9SQURJWDsKKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgY29uc3RhbnQgZm9yIEphdmEgQ2hhcmFjdGVyJ3MgTUFYX1JBRElYLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1JBRElYID0gamF2YS5sYW5nLkNoYXJhY3Rlci5NQVhfUkFESVg7CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIG51bWVyaWMgdmFsdWUgb2YgYSBkZWNpbWFsIGRpZ2l0IGNvZGUgcG9pbnQuCisgICAgICogPGJyPlRoaXMgbWV0aG9kIG9ic2VydmVzIHRoZSBzZW1hbnRpY3Mgb2YKKyAgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KCk8L2NvZGU+LiAgTm90ZSB0aGF0IHRoaXMKKyAgICAgKiB3aWxsIHJldHVybiBwb3NpdGl2ZSB2YWx1ZXMgZm9yIGNvZGUgcG9pbnRzIGZvciB3aGljaCBpc0RpZ2l0CisgICAgICogcmV0dXJucyBmYWxzZSwganVzdCBsaWtlIGphdmEubGFuZy5DaGFyYWN0ZXIuCisgICAgICogPGJyPjxlbT5TZW1hbnRpYyBDaGFuZ2U6PC9lbT4gSW4gcmVsZWFzZSAxLjMuMSBhbmQKKyAgICAgKiBwcmlvciwgdGhpcyBkaWQgbm90IHRyZWF0IHRoZSBFdXJvcGVhbiBsZXR0ZXJzIGFzIGhhdmluZyBhCisgICAgICogZGlnaXQgdmFsdWUsIGFuZCBhbHNvIHRyZWF0ZWQgbnVtZXJpYyBsZXR0ZXJzIGFuZCBvdGhlciBudW1iZXJzIGFzIAorICAgICAqIGRpZ2l0cy4gIAorICAgICAqIFRoaXMgaGFzIGJlZW4gY2hhbmdlZCB0byBjb25mb3JtIHRvIHRoZSBqYXZhIHNlbWFudGljcy4KKyAgICAgKiA8YnI+QSBjb2RlIHBvaW50IGlzIGEgdmFsaWQgZGlnaXQgaWYgYW5kIG9ubHkgaWY6CisgICAgICogPHVsPgorICAgICAqICAgPGxpPmNoIGlzIGEgZGVjaW1hbCBkaWdpdCBvciBvbmUgb2YgdGhlIGV1cm9wZWFuIGxldHRlcnMsIGFuZAorICAgICAqICAgPGxpPnRoZSB2YWx1ZSBvZiBjaCBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCByYWRpeC4KKyAgICAgKiA8L3VsPgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBxdWVyeQorICAgICAqIEBwYXJhbSByYWRpeCB0aGUgcmFkaXgKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSBjb2RlIHBvaW50IGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYWRpeCwgb3IgLTEgaWYgdGhlIGNvZGUgcG9pbnQgaXMgbm90IGEgZGVjaW1hbCBkaWdpdAorICAgICAqIG9yIGlmIGl0cyB2YWx1ZSBpcyB0b28gbGFyZ2UgZm9yIHRoZSByYWRpeAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRpZ2l0KGludCBjaCwgaW50IHJhZGl4KQorICAgIHsKKyAgICAgICAgLy8gd2hlbiBjaCBpcyBvdXQgb2YgYm91bmRzIGdldFByb3BlcnR5ID09IDAKKyAgICAgICAgaW50IHByb3BzID0gZ2V0UHJvcGVydHkoY2gpOworICAgICAgICBpbnQgdmFsdWU7ICAgICAgICAKKyAgICAgICAgaWYgKGdldE51bWVyaWNUeXBlKHByb3BzKSA9PSBOdW1lcmljVHlwZS5ERUNJTUFMKSB7CisgICAgICAgICAgICB2YWx1ZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRVbnNpZ25lZFZhbHVlKHByb3BzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhbHVlID0gZ2V0RXVyb3BlYW5EaWdpdChjaCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICgwIDw9IHZhbHVlICYmIHZhbHVlIDwgcmFkaXgpID8gdmFsdWUgOiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgZGVjaW1hbCBkaWdpdCBjb2RlIHBvaW50LgorICAgICAqIDxicj5UaGlzIGlzIGEgY29udmVuaWVuY2Ugb3ZlcmxvYWQgb2YgPGNvZGU+ZGlnaXQoaW50LCBpbnQpPC9jb2RlPiAKKyAgICAgKiB0aGF0IHByb3ZpZGVzIGEgZGVjaW1hbCByYWRpeC4KKyAgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZCBwcmlvciwgdGhpcworICAgICAqIHRyZWF0ZWQgbnVtZXJpYyBsZXR0ZXJzIGFuZCBvdGhlciBudW1iZXJzIGFzIGRpZ2l0cy4gIFRoaXMgaGFzCisgICAgICogYmVlbiBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8gdGhlIGphdmEgc2VtYW50aWNzLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBxdWVyeQorICAgICAqIEByZXR1cm4gdGhlIG51bWVyaWMgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIGNvZGUgcG9pbnQsCisgICAgICogb3IgLTEgaWYgdGhlIGNvZGUgcG9pbnQgaXMgbm90IGEgZGVjaW1hbCBkaWdpdCBvciBpZiBpdHMKKyAgICAgKiB2YWx1ZSBpcyB0b28gbGFyZ2UgZm9yIGEgZGVjaW1hbCByYWRpeCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkaWdpdChpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wZXJ0eShjaCk7CisgICAgICAgIGlmIChnZXROdW1lcmljVHlwZShwcm9wcykgPT0gTnVtZXJpY1R5cGUuREVDSU1BTCkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRVbnNpZ25lZFZhbHVlKHByb3BzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBjb2RlIHBvaW50IGFzIGEgbm9ubmVnYXRpdmUgCisgICAgICogaW50ZWdlci4KKyAgICAgKiA8YnI+SWYgdGhlIGNvZGUgcG9pbnQgZG9lcyBub3QgaGF2ZSBhIG51bWVyaWMgdmFsdWUsIHRoZW4gLTEgaXMgcmV0dXJuZWQuIAorICAgICAqIDxicj4KKyAgICAgKiBJZiB0aGUgY29kZSBwb2ludCBoYXMgYSBudW1lcmljIHZhbHVlIHRoYXQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzIGEgCisgICAgICogbm9ubmVnYXRpdmUgaW50ZWdlciAoZm9yIGV4YW1wbGUsIGEgZnJhY3Rpb25hbCB2YWx1ZSksIHRoZW4gLTIgaXMgCisgICAgICogcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgY29kZSBwb2ludCwgb3IgLTEgaWYgaXQgaGFzIG5vIG51bWVyaWMgCisgICAgICogdmFsdWUsIG9yIC0yIGlmIGl0IGhhcyBhIG51bWVyaWMgdmFsdWUgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYSAKKyAgICAgKiBub25uZWdhdGl2ZSBpbnRlZ2VyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0TnVtZXJpY1ZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIHNsaWdodGx5IHBydW5lZCB2ZXJzaW9uIG9mIGdldFVuaWNvZGVOdW1lcmljVmFsdWUoKSwgcGx1cyBnZXRFdXJvcGVhbkRpZ2l0KCkKKyAgICAgICAgaW50IHByb3BzID0gUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaW50IG51bWVyaWNUeXBlID0gZ2V0TnVtZXJpY1R5cGUocHJvcHMpOworCisgICAgICAgIGlmKG51bWVyaWNUeXBlPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RXVyb3BlYW5EaWdpdChjaCk7CisgICAgICAgIH0KKyAgICAgICAgaWYobnVtZXJpY1R5cGU9PVVDaGFyYWN0ZXJQcm9wZXJ0eS5OVF9GUkFDVElPTiB8fCBudW1lcmljVHlwZT49VUNoYXJhY3RlclByb3BlcnR5Lk5UX0NPVU5UKSB7CisgICAgICAgICAgICByZXR1cm4gLTI7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbnVtZXJpY1ZhbHVlID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFVuc2lnbmVkVmFsdWUocHJvcHMpOworCisgICAgICAgIGlmKG51bWVyaWNUeXBlPE51bWVyaWNUeXBlLkNPVU5UKSB7CisgICAgICAgICAgICAvKiBub3JtYWwgdHlwZSwgdGhlIHZhbHVlIGlzIHN0b3JlZCBkaXJlY3RseSAqLworICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNWYWx1ZTsKKyAgICAgICAgfSBlbHNlIC8qIG51bWVyaWNUeXBlPT1OVF9MQVJHRSAqLyB7CisgICAgICAgICAgICAvKiBsYXJnZSB2YWx1ZSB3aXRoIGV4cG9uZW50ICovCisgICAgICAgICAgICBsb25nIG51bVZhbHVlOworICAgICAgICAgICAgaW50IG1hbnQsIGV4cDsKKworICAgICAgICAgICAgbWFudD1udW1lcmljVmFsdWU+PkxBUkdFX01BTlRfU0hJRlQ7CisgICAgICAgICAgICBleHA9bnVtZXJpY1ZhbHVlJkxBUkdFX0VYUF9NQVNLOworICAgICAgICAgICAgaWYobWFudD09MCkgeworICAgICAgICAgICAgICAgIG1hbnQ9MTsKKyAgICAgICAgICAgICAgICBleHArPUxBUkdFX0VYUF9PRkZTRVRfRVhUUkE7CisgICAgICAgICAgICB9IGVsc2UgaWYobWFudD45KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0yOyAvKiByZXNlcnZlZCBtYW50aXNzYSB2YWx1ZSAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBleHArPUxBUkdFX0VYUF9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHA+OSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbnVtVmFsdWU9bWFudDsKKworICAgICAgICAgICAgLyogbXVsdGlwbHkgYnkgMTBeZXhwIHdpdGhvdXQgbWF0aC5oICovCisgICAgICAgICAgICB3aGlsZShleHA+PTQpIHsKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAwMDAuOworICAgICAgICAgICAgICAgIGV4cC09NDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3aXRjaChleHApIHsKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAwMC47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwMC47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihudW1WYWx1ZTw9SW50ZWdlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGludCludW1WYWx1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgbnVtZXJpYyB2YWx1ZSBmb3IgYSBVbmljb2RlIGNvZGUgcG9pbnQgYXMgZGVmaW5lZCBpbiB0aGUgCisgICAgICogVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuPC9wPgorICAgICAqIDxwPkEgImRvdWJsZSIgcmV0dXJuIHR5cGUgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc29tZSBudW1lcmljIHZhbHVlcyBhcmUgCisgICAgICogZnJhY3Rpb25zLCBuZWdhdGl2ZSwgb3IgdG9vIGxhcmdlIGZvciBpbnQuPC9wPgorICAgICAqIDxwPkZvciBjaGFyYWN0ZXJzIHdpdGhvdXQgYW55IG51bWVyaWMgdmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciAKKyAgICAgKiBEYXRhYmFzZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBOT19OVU1FUklDX1ZBTFVFLjwvcD4KKyAgICAgKiA8cD48ZW0+QVBJIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDIuMiBhbmQgcHJpb3IsIHRoaXMgQVBJIGhhcyBhCisgICAgICogcmV0dXJuIHR5cGUgaW50IGFuZCByZXR1cm5zIC0xIHdoZW4gdGhlIGFyZ3VtZW50IGNoIGRvZXMgbm90IGhhdmUgYSAKKyAgICAgKiBjb3JyZXNwb25kaW5nIG51bWVyaWMgdmFsdWUuIFRoaXMgaGFzIGJlZW4gY2hhbmdlZCB0byBzeW5jaCB3aXRoIElDVTRDCisgICAgICogPC9wPgorICAgICAqIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIElDVTRDIGZ1bmN0aW9uIHVfZ2V0TnVtZXJpY1ZhbHVlLgorICAgICAqIEBwYXJhbSBjaCBDb2RlIHBvaW50IHRvIGdldCB0aGUgbnVtZXJpYyB2YWx1ZSBmb3IuCisgICAgICogQHJldHVybiBudW1lcmljIHZhbHVlIG9mIGNoLCBvciBOT19OVU1FUklDX1ZBTFVFIGlmIG5vbmUgaXMgZGVmaW5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBnZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGVxdWl2YWxlbnQgdG8gYyB2ZXJzaW9uIGRvdWJsZSB1X2dldE51bWVyaWNWYWx1ZShVQ2hhcjMyIGMpCisgICAgICAgIGludCBwcm9wcyA9IFBST1BFUlRZXy5nZXRQcm9wZXJ0eShjaCk7CisgICAgICAgIGludCBudW1lcmljVHlwZSA9IGdldE51bWVyaWNUeXBlKHByb3BzKTsKKworICAgICAgICBpZihudW1lcmljVHlwZT09MCB8fCBudW1lcmljVHlwZT49VUNoYXJhY3RlclByb3BlcnR5Lk5UX0NPVU5UKSB7CisgICAgICAgICAgICByZXR1cm4gTk9fTlVNRVJJQ19WQUxVRTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBudW1lcmljVmFsdWUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0VW5zaWduZWRWYWx1ZShwcm9wcyk7CisKKyAgICAgICAgaWYobnVtZXJpY1R5cGU8TnVtZXJpY1R5cGUuQ09VTlQpIHsKKyAgICAgICAgICAgIC8qIG5vcm1hbCB0eXBlLCB0aGUgdmFsdWUgaXMgc3RvcmVkIGRpcmVjdGx5ICovCisgICAgICAgICAgICByZXR1cm4gbnVtZXJpY1ZhbHVlOworICAgICAgICB9IGVsc2UgaWYobnVtZXJpY1R5cGU9PVVDaGFyYWN0ZXJQcm9wZXJ0eS5OVF9GUkFDVElPTikgeworICAgICAgICAgICAgLyogZnJhY3Rpb24gdmFsdWUgKi8KKyAgICAgICAgICAgIGludCBudW1lcmF0b3IsIGRlbm9taW5hdG9yOworCisgICAgICAgICAgICBudW1lcmF0b3I9bnVtZXJpY1ZhbHVlPj5GUkFDVElPTl9OVU1fU0hJRlQ7CisgICAgICAgICAgICBkZW5vbWluYXRvcj0obnVtZXJpY1ZhbHVlJkZSQUNUSU9OX0RFTl9NQVNLKStGUkFDVElPTl9ERU5fT0ZGU0VUOworCisgICAgICAgICAgICBpZihudW1lcmF0b3I9PTApIHsKKyAgICAgICAgICAgICAgICBudW1lcmF0b3I9LTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKGRvdWJsZSludW1lcmF0b3IvKGRvdWJsZSlkZW5vbWluYXRvcjsKKyAgICAgICAgfSBlbHNlIC8qIG51bWVyaWNUeXBlPT1OVF9MQVJHRSAqLyB7CisgICAgICAgICAgICAvKiBsYXJnZSB2YWx1ZSB3aXRoIGV4cG9uZW50ICovCisgICAgICAgICAgICBkb3VibGUgbnVtVmFsdWU7CisgICAgICAgICAgICBpbnQgbWFudCwgZXhwOworCisgICAgICAgICAgICBtYW50PW51bWVyaWNWYWx1ZT4+TEFSR0VfTUFOVF9TSElGVDsKKyAgICAgICAgICAgIGV4cD1udW1lcmljVmFsdWUmTEFSR0VfRVhQX01BU0s7CisgICAgICAgICAgICBpZihtYW50PT0wKSB7CisgICAgICAgICAgICAgICAgbWFudD0xOworICAgICAgICAgICAgICAgIGV4cCs9TEFSR0VfRVhQX09GRlNFVF9FWFRSQTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtYW50PjkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9fTlVNRVJJQ19WQUxVRTsgLyogcmVzZXJ2ZWQgbWFudGlzc2EgdmFsdWUgKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXhwKz1MQVJHRV9FWFBfT0ZGU0VUOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBudW1WYWx1ZT1tYW50OworCisgICAgICAgICAgICAvKiBtdWx0aXBseSBieSAxMF5leHAgd2l0aG91dCBtYXRoLmggKi8KKyAgICAgICAgICAgIHdoaWxlKGV4cD49NCkgeworICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwMC47CisgICAgICAgICAgICAgICAgZXhwLT00OworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKGV4cCkgeworICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bVZhbHVlOworICAgICAgICB9CisgICAgfQorICAKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIEphdmEgZGVwcmVjYXRlZCBtZXRob2QuICBUaGlzCisgICAgICogbWV0aG9kIHdpbGwgYWx3YXlzIHJlbWFpbiBkZXByZWNhdGVkLiAgRGVsZWdhdGVzIHRvCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc1NwYWNlLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBpcyBhIHNwYWNlIGNoYXJhY3RlciBhcworICAgICAqIGRlZmluZWQgYnkgamF2YS5sYW5nLkNoYXJhY3Rlci5pc1NwYWNlLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjQgKEphdmEpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3BhY2UoaW50IGNoKSB7CisgICAgCXJldHVybiBjaCA8PSAweDIwICYmCisgICAgCQkoY2ggPT0gMHgyMCB8fCBjaCA9PSAweDA5IHx8IGNoID09IDB4MGEgfHwgY2ggPT0gMHgwYyB8fCBjaCA9PSAweDBkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdmFsdWUgaW5kaWNhdGluZyBhIGNvZGUgcG9pbnQncyBVbmljb2RlIGNhdGVnb3J5LgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUoKSAKKyAgICAgKiBleGNlcHQgZm9yIHRoZSBhYm92ZSBtZW50aW9uZWQgY29kZSBwb2ludHMgdGhhdCBoYWQgdGhlaXIgY2F0ZWdvcnkgCisgICAgICogY2hhbmdlZC48YnI+CisgICAgICogUmV0dXJuIHJlc3VsdHMgYXJlIGNvbnN0YW50cyBmcm9tIHRoZSBpbnRlcmZhY2UgCisgICAgICogPGEgaHJlZj1VQ2hhcmFjdGVyQ2F0ZWdvcnkuaHRtbD5VQ2hhcmFjdGVyQ2F0ZWdvcnk8L2E+PGJyPgorICAgICAqIDxlbT5OT1RFOjwvZW0+IHRoZSBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzIGFyZSA8ZW0+bm90PC9lbT4gY29tcGF0aWJsZSB3aXRoCisgICAgICogdGhvc2UgcmV0dXJuZWQgYnkgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlLiAgVUNoYXJhY3RlckNhdGVnb3J5IHZhbHVlcworICAgICAqIG1hdGNoIHRoZSBvbmVzIHVzZWQgaW4gSUNVNEMsIHdoaWxlIGphdmEubGFuZy5DaGFyYWN0ZXIgdHlwZQorICAgICAqIHZhbHVlcywgdGhvdWdoIHNpbWlsYXIsIHNraXAgdGhlIHZhbHVlIDE3LjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSB0eXBlIGlzIHRvIGJlIGRldGVybWluZWQKKyAgICAgKiBAcmV0dXJuIGNhdGVnb3J5IHdoaWNoIGlzIGEgdmFsdWUgb2YgVUNoYXJhY3RlckNhdGVnb3J5CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0VHlwZShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0UHJvcGVydHkoY2gpICYgVUNoYXJhY3RlclByb3BlcnR5LlRZUEVfTUFTSzsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiBhIGNvZGUgcG9pbnQgaGFzIGEgZGVmaW5lZCBtZWFuaW5nIGluIHRoZSB1cC10by1kYXRlIAorICAgICAqIFVuaWNvZGUgc3RhbmRhcmQuCisgICAgICogRS5nLiBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzIHRob3VnaCBhbGxvY2F0ZWQgc3BhY2UgYXJlIG5vdCBkZWZpbmVkIGluIAorICAgICAqIFVuaWNvZGUgeWV0Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0RlZmluZWQoKQorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgZGVmaW5lZCBpbiB0aGUgbW9zdCAKKyAgICAgKiAgICAgICAgY3VycmVudCB2ZXJzaW9uIG9mIFVuaWNvZGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBjb2RlIHBvaW50IGlzIGRlZmluZWQgaW4gdW5pY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0RlZmluZWQoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpICE9IDA7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiBhIGNvZGUgcG9pbnQgaXMgYSBKYXZhIGRpZ2l0LgorICAgICAqIDxicj5UaGlzIG1ldGhvZCBvYnNlcnZlcyB0aGUgc2VtYW50aWNzIG9mCisgICAgICogPGNvZGU+amF2YS5sYW5nLkNoYXJhY3Rlci5pc0RpZ2l0KCk8L2NvZGU+LiBJdCByZXR1cm5zIHRydWUgZm9yIGRlY2ltYWwgCisgICAgICogZGlnaXRzIG9ubHkuCisgICAgICogPGJyPjxlbT5TZW1hbnRpYyBDaGFuZ2U6PC9lbT4gSW4gcmVsZWFzZSAxLjMuMSBhbmQgcHJpb3IsIHRoaXMgdHJlYXRlZCAKKyAgICAgKiBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgZGlnaXRzLiAKKyAgICAgKiBUaGlzIGhhcyBiZWVuIGNoYW5nZWQgdG8gY29uZm9ybSB0byB0aGUgamF2YSBzZW1hbnRpY3MuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBjb2RlIHBvaW50IGlzIGEgZGlnaXQgCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRGlnaXQoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIuCisgICAgICogQSBjb2RlIHBvaW50IGlzIGNvbnNpZGVyZWQgdG8gYmUgYW4gSVNPIGNvbnRyb2wgY2hhcmFjdGVyIGlmIGl0IGlzIGluIAorICAgICAqIHRoZSByYW5nZSAmIzkydTAwMDAgdGhyb3VnaCAmIzkydTAwMUYgb3IgaW4gdGhlIHJhbmdlICYjOTJ1MDA3RiB0aHJvdWdoIAorICAgICAqICYjOTJ1MDA5Ri48YnI+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNJU09Db250cm9sKCkKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYW4gSVNPIGNvbnRyb2wgY2hhcmFjdGVyCisgICAgICogQHJldHVybiB0cnVlIGlmIGNvZGUgcG9pbnQgaXMgYSBJU08gY29udHJvbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJU09Db250cm9sKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBjaCA+PSAwICYmIGNoIDw9IEFQUExJQ0FUSU9OX1BST0dSQU1fQ09NTUFORF8gJiYgCisgICAgICAgICAgICAoKGNoIDw9IFVOSVRfU0VQQVJBVE9SXykgfHwgKGNoID49IERFTEVURV8pKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIGxldHRlci4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0xldHRlcigpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbGV0dGVyCisgICAgICogQHJldHVybiB0cnVlIGlmIGNvZGUgcG9pbnQgaXMgYSBsZXR0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZXR0ZXIoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSkpICE9IDA7CisgICAgfQorICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgbGV0dGVyIG9yIGRpZ2l0LgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QsIHVubGlrZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIGRvZXMgbm90IHJlZ2FyZCB0aGUgYXNjaWkgCisgICAgICogY2hhcmFjdGVycyAnQScgLSAnWicgYW5kICdhJyAtICd6JyBhcyBkaWdpdHMuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbGV0dGVyIG9yIGEgZGlnaXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIGxldHRlciBvciBhIGRpZ2l0CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGV0dGVyT3JEaWdpdChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKCgxIDw8IGdldFR5cGUoY2gpKSAKKyAgICAgICAgJiAoKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIpIAorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIpKSkgIT0gMDsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBkZXByZWNhdGVkIG1ldGhvZC4gIFRoaXMKKyAgICAgKiBtZXRob2Qgd2lsbCBhbHdheXMgcmVtYWluIGRlcHJlY2F0ZWQuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJTdGFydC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgY2FuIHN0YXJ0IGEgamF2YSBpZGVudGlmaWVyLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjQgKEphdmEpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSmF2YUxldHRlcihpbnQgY3ApIHsKKwlyZXR1cm4gaXNKYXZhSWRlbnRpZmllclN0YXJ0KGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIEphdmEgZGVwcmVjYXRlZCBtZXRob2QuICBUaGlzCisgICAgICogbWV0aG9kIHdpbGwgYWx3YXlzIHJlbWFpbiBkZXByZWNhdGVkLiAgRGVsZWdhdGVzIHRvCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgY2FuIGNvbnRpbnVlIGEgamF2YSBpZGVudGlmaWVyLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjQgKEphdmEpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSmF2YUxldHRlck9yRGlnaXQoaW50IGNwKSB7CisJcmV0dXJuIGlzSmF2YUlkZW50aWZpZXJQYXJ0KGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIEphdmEgbWV0aG9kLCBkZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJTdGFydC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgY2FuIHN0YXJ0IGEgamF2YSBpZGVudGlmaWVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSmF2YUlkZW50aWZpZXJTdGFydChpbnQgY3ApIHsKKwkvLyBub3RlLCBkb3duY2FzdCB0byBjaGFyIGZvciBqZGsgMS40IGNvbXBhdGliaWxpdHkKKwlyZXR1cm4gamF2YS5sYW5nLkNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyU3RhcnQoKGNoYXIpY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBtZXRob2QsIGRlbGVnYXRlcyB0bworICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclBhcnQuCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGNhbiBjb250aW51ZSBhIGphdmEgaWRlbnRpZmllci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0phdmFJZGVudGlmaWVyUGFydChpbnQgY3ApIHsKKwkvLyBub3RlLCBkb3duY2FzdCB0byBjaGFyIGZvciBqZGsgMS40IGNvbXBhdGliaWxpdHkKKwlyZXR1cm4gamF2YS5sYW5nLkNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydCgoY2hhciljcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBsb3dlcmNhc2UgY2hhcmFjdGVyLgorICAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludHMgd2hlcmUgdGhleSBhcmUgCisgICAgICogb25lLXRvLW9uZSBtYXBwaW5nczsgaXQgYWxzbyBvbWl0cyBpbmZvcm1hdGlvbiBhYm91dCBjb250ZXh0LXNlbnNpdGl2ZSAKKyAgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgCisgICAgICogcGxlYXNlIHJlZmVyIHRvIHRoZSAKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMjEvPlRlY2huaWNhbCByZXBvcnQgCisgICAgICogIzIxPC9hPi48YnI+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNMb3dlckNhc2UoKQorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiBsb3dlcmNhc2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIGxvd2VyY2FzZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMb3dlckNhc2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUjsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXIuCisgICAgICogQSBjb2RlIHBvaW50IGlzIGNvbnNpZGVyZWQgdG8gYmUgYW4gd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaWYgYW5kIG9ubHkKKyAgICAgKiBpZiBpdCBzYXRpc2ZpZXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWE6CisgICAgICogPHVsPgorICAgICAqIDxsaT4gSXQgaXMgYSBVbmljb2RlIHNwYWNlIHNlcGFyYXRvciAoY2F0ZWdvcnkgIlpzIiksIGJ1dCBpcyBub3QKKyAgICAgKiAgICAgIGEgbm8tYnJlYWsgc3BhY2UgKCYjOTJ1MDBBMCBvciAmIzkydTIwMkYgb3IgJiM5MnVGRUZGKS4KKyAgICAgKiA8bGk+IEl0IGlzIGEgVW5pY29kZSBsaW5lIHNlcGFyYXRvciAoY2F0ZWdvcnkgIlpsIikuCisgICAgICogPGxpPiBJdCBpcyBhIFVuaWNvZGUgcGFyYWdyYXBoIHNlcGFyYXRvciAoY2F0ZWdvcnkgIlpwIikuCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMDksIEhPUklaT05UQUwgVEFCVUxBVElPTi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEEsIExJTkUgRkVFRC4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEIsIFZFUlRJQ0FMIFRBQlVMQVRJT04uIAorICAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDBDLCBGT1JNIEZFRUQuIAorICAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDBELCBDQVJSSUFHRSBSRVRVUk4uIAorICAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDFDLCBGSUxFIFNFUEFSQVRPUi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUQsIEdST1VQIFNFUEFSQVRPUi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUUsIFJFQ09SRCBTRVBBUkFUT1IuIAorICAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDFGLCBVTklUIFNFUEFSQVRPUi4gIAorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBUaGlzIEFQSSB0cmllcyB0byBzeW5jaCB0byB0aGUgc2VtYW50aWNzIG9mIHRoZSBKYXZhIEFQSSwKKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZSgpLiAKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSB3aGl0ZSBzcGFjZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNXaGl0ZXNwYWNlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGV4Y2x1ZGUgbm8tYnJlYWsgc3BhY2VzCisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gKCgxIDw8IGdldFR5cGUoY2gpKSAmIAorICAgICAgICAgICAgICAgICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SKQorICAgICAgICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MSU5FX1NFUEFSQVRPUikKKyAgICAgICAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUEFSQUdSQVBIX1NFUEFSQVRPUikpKSAhPSAwIAorICAgICAgICAmJiAoY2ggIT0gTk9fQlJFQUtfU1BBQ0VfKSAmJiAoY2ggIT0gTkFSUk9XX05PX0JSRUFLX1NQQUNFXykgCisgICAgICAgICYmIChjaCAhPSBaRVJPX1dJRFRIX05PX0JSRUFLX1NQQUNFXykKKyAgICAgICAgLy8gVEFCIFZUIExGIEZGIENSIEZTIEdTIFJTIFVTIE5MIGFyZSBhbGwgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIHRoYXQgYXJlIHdoaXRlIHNwYWNlcy4KKyAgICAgICAgfHwgKGNoID49IDB4OSAmJiBjaCA8PSAweGQpIHx8IChjaCA+PSAweDFjICYmIGNoIDw9IDB4MWYpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIFVuaWNvZGUgc3BlY2lmaWVkIHNwYWNlIAorICAgICAqIGNoYXJhY3RlciwgaS5lLiBpZiBjb2RlIHBvaW50IGlzIGluIHRoZSBjYXRlZ29yeSBacywgWmwgYW5kIFpwLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKCkuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgc3BhY2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgc3BhY2UgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3BhY2VDaGFyKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gKCgxIDw8IGdldFR5cGUoY2gpKSAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SKSAKKyAgICAgICAgICAgICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MSU5FX1NFUEFSQVRPUikKKyAgICAgICAgICAgICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5QQVJBR1JBUEhfU0VQQVJBVE9SKSkpCisgICAgICAgICE9IDA7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSB0aXRsZWNhc2UgY2hhcmFjdGVyLgorICAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludHMgd2hlcmUgdGhleSBhcmUgCisgICAgICogb25lLXRvLW9uZSBtYXBwaW5nczsgaXQgYWxzbyBvbWl0cyBpbmZvcm1hdGlvbiBhYm91dCBjb250ZXh0LXNlbnNpdGl2ZSAKKyAgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4KKyAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIGNhc2UgbWFwcGluZyBwbGVhc2UgcmVmZXIgdG8gdGhlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgICogVGVjaG5pY2FsIHJlcG9ydCAjMjE8L2E+Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc1RpdGxlQ2FzZSgpLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiB0aXRsZSBjYXNlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHRpdGxlY2FzZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNUaXRsZUNhc2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUjsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgbWF5IGJlIGFueSBwYXJ0IG9mIGEgVW5pY29kZSAKKyAgICAgKiBpZGVudGlmaWVyIG90aGVyIHRoYW4gdGhlIHN0YXJ0aW5nIGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgbWF5IGJlIHBhcnQgb2YgYSBVbmljb2RlIGlkZW50aWZpZXIgaWYgYW5kIG9ubHkgaWYgaXQgaXMgCisgICAgICogb25lIG9mIHRoZSBmb2xsb3dpbmc6IAorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IEx1IFVwcGVyY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IExsIExvd2VyY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IEx0IFRpdGxlY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IExtIE1vZGlmaWVyIGxldHRlcgorICAgICAqIDxsaT4gTG8gT3RoZXIgbGV0dGVyCisgICAgICogPGxpPiBObCBMZXR0ZXIgbnVtYmVyCisgICAgICogPGxpPiBQYyBDb25uZWN0aW5nIHB1bmN0dWF0aW9uIGNoYXJhY3RlciAKKyAgICAgKiA8bGk+IE5kIGRlY2ltYWwgbnVtYmVyCisgICAgICogPGxpPiBNYyBTcGFjaW5nIGNvbWJpbmluZyBtYXJrIAorICAgICAqIDxsaT4gTW4gTm9uLXNwYWNpbmcgbWFyayAKKyAgICAgKiA8bGk+IENmIGZvcm1hdHRpbmcgY29kZQorICAgICAqIDwvdWw+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIAorICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoKS48YnI+CisgICAgICogU2VlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI4Lz5VVFIgIzg8L2E+LgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpcyBjYW4gYmUgcGFydCBvZiBhIFVuaWNvZGUgCisgICAgICogICAgICAgIGlkZW50aWZpZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhbnkgY2hhcmFjdGVyIGJlbG9uZ2luZyBhIHVuaWNvZGUgCisgICAgICogICAgICAgICBpZGVudGlmaWVyIHN1ZmZpeCBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICAvLyBjYXQgPT0gZm9ybWF0CisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MRVRURVJfTlVNQkVSKSAKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OTkVDVE9SX1BVTkNUVUFUSU9OKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSSykpKSAhPSAwCisgICAgICAgIHx8IGlzSWRlbnRpZmllcklnbm9yYWJsZShjaCk7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBwZXJtaXNzaWJsZSBhcyB0aGUgZmlyc3QgCisgICAgICogY2hhcmFjdGVyIGluIGEgVW5pY29kZSBpZGVudGlmaWVyLgorICAgICAqIEEgY29kZSBwb2ludCBtYXkgc3RhcnQgYSBVbmljb2RlIGlkZW50aWZpZXIgaWYgaXQgaXMgb2YgdHlwZSBlaXRoZXIgCisgICAgICogPHVsPiAKKyAgICAgKiA8bGk+IEx1IFVwcGVyY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IExsIExvd2VyY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IEx0IFRpdGxlY2FzZSBsZXR0ZXIKKyAgICAgKiA8bGk+IExtIE1vZGlmaWVyIGxldHRlcgorICAgICAqIDxsaT4gTG8gT3RoZXIgbGV0dGVyCisgICAgICogPGxpPiBObCBMZXR0ZXIgbnVtYmVyCisgICAgICogPC91bD4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoKS48YnI+CisgICAgICogU2VlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI4Lz5VVFIgIzg8L2E+LgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBjYW4gc3RhcnQgYSBVbmljb2RlIGlkZW50aWZpZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGJlbG9uZ2luZyBhIHVuaWNvZGUgCisgICAgICogICAgICAgICAgICAgIGlkZW50aWZpZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGludCBjaCkKKyAgICB7CisgICAgICAgIC8qaW50IGNhdCA9IGdldFR5cGUoY2gpOyovCisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gKCgxIDw8IGdldFR5cGUoY2gpKSAKKyAgICAgICAgJiAoKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIpIAorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUikpKSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IHNob3VsZCBiZSByZWdhcmRlZCBhcyBhbiAKKyAgICAgKiBpZ25vcmFibGUgY2hhcmFjdGVyIGluIGEgVW5pY29kZSBpZGVudGlmaWVyLgorICAgICAqIEEgY2hhcmFjdGVyIGlzIGlnbm9yYWJsZSBpbiB0aGUgVW5pY29kZSBzdGFuZGFyZCBpZiBpdCBpcyBvZiB0aGUgdHlwZSAKKyAgICAgKiBDZiwgRm9ybWF0dGluZyBjb2RlLjxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoKS48YnI+CisgICAgICogU2VlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI4Lz5VVFIgIzg8L2E+LgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgY2FuIGJlIGlnbm9yZWQgaW4gYSBVbmljb2RlIAorICAgICAqICAgICAgICBpZGVudGlmaWVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBpcyBpZ25vcmFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJZGVudGlmaWVySWdub3JhYmxlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIHNlZSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZSgpIG9uIHJhbmdlIG9mIAorICAgICAgICAvLyBpZ25vcmFibGUgY2hhcmFjdGVycy4KKyAgICAgICAgaWYgKGNoIDw9IDB4OWYpIHsKKyAgICAgICAgcmV0dXJuIGlzSVNPQ29udHJvbChjaCkgCisgICAgICAgICYmICEoKGNoID49IDB4OSAmJiBjaCA8PSAweGQpIAorICAgICAgICAgICAgIHx8IChjaCA+PSAweDFjICYmIGNoIDw9IDB4MWYpKTsKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GT1JNQVQ7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGFuIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogVW5pY29kZURhdGEgb25seSBjb250YWlucyBjYXNlIG1hcHBpbmdzIGZvciBjb2RlIHBvaW50IHdoZXJlIHRoZXkgYXJlIAorICAgICAqIG9uZS10by1vbmUgbWFwcGluZ3M7IGl0IGFsc28gb21pdHMgaW5mb3JtYXRpb24gYWJvdXQgY29udGV4dC1zZW5zaXRpdmUgCisgICAgICogY2FzZSBtYXBwaW5ncy48YnI+IAorICAgICAqIEZvciBsYW5ndWFnZSBzcGVjaWZpYyBjYXNlIGNvbnZlcnNpb24gYmVoYXZpb3IsIHVzZSAKKyAgICAgKiB0b1VwcGVyQ2FzZShsb2NhbGUsIHN0cikuIDxicj4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGNhc2UgY29udmVyc2lvbiBmb3IgZG90LWxlc3MgaSBhbmQgZG90dGVkIEkgaW4gVHVya2lzaCwKKyAgICAgKiBvciBmb3IgZmluYWwgc2lnbWEgaW4gR3JlZWsuCisgICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgcGxlYXNlIHJlZmVyIHRvIHRoZSAKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMjEvPgorICAgICAqIFRlY2huaWNhbCByZXBvcnQgIzIxPC9hPi48YnI+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNVcHBlckNhc2UoKS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgaW4gdXBwZXJjYXNlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGFuIHVwcGVyY2FzZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVcHBlckNhc2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUjsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIFRoZSBnaXZlbiBjb2RlIHBvaW50IGlzIG1hcHBlZCB0byBpdHMgbG93ZXJjYXNlIGVxdWl2YWxlbnQ7IGlmIHRoZSBjb2RlIAorICAgICAqIHBvaW50IGhhcyBubyBsb3dlcmNhc2UgZXF1aXZhbGVudCwgdGhlIGNvZGUgcG9pbnQgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKCkKKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSB0YWtlIGludG8gYWNjb3VudCB0aGUgc3RyaW5nIGNvbnRleHQgYW5kIHRoZSBsYW5ndWFnZSBhbmQgY2FuIG1hcAorICAgICAqIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBsb3dlcmNhc2UgZXF1aXZhbGVudCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBsb3dlcmNhc2UgZXF1aXZhbGVudCBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdG9Mb3dlckNhc2UoaW50IGNoKSB7CisgICAgICAgIHJldHVybiBnQ3NwLnRvbG93ZXIoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIGFyZ3VtZW50IGNvZGUgcG9pbnQgYW5kIHJldHVybnMgYSBTdHJpbmcgb2JqZWN0IHJlcHJlc2VudGluZyAKKyAgICAgKiB0aGUgY29kZSBwb2ludCdzIHZhbHVlIGluIFVURjE2IGZvcm1hdC4KKyAgICAgKiBUaGUgcmVzdWx0IGlzIGEgc3RyaW5nIHdob3NlIGxlbmd0aCBpcyAxIGZvciBub24tc3VwcGxlbWVudGFyeSBjb2RlIAorICAgICAqIHBvaW50cywgMiBvdGhlcndpc2UuPGJyPgorICAgICAqIGNvbS5pYm0uaWJtLmljdS5VVEYxNiBjYW4gYmUgdXNlZCB0byBwYXJzZSBTdHJpbmdzIGdlbmVyYXRlZCBieSB0aGlzIAorICAgICAqIGZ1bmN0aW9uLjxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci50b1N0cmluZygpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29kZSBwb2ludCwgbnVsbCBpZiBjb2RlIHBvaW50IGlzIG5vdAorICAgICAqICAgICAgICAgZGVmaW5lZCBpbiB1bmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNoIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcudmFsdWVPZigoY2hhciljaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY29kZSBwb2ludCBhcmd1bWVudCB0byB0aXRsZWNhc2UuCisgICAgICogSWYgbm8gdGl0bGVjYXNlIGlzIGF2YWlsYWJsZSwgdGhlIHVwcGVyY2FzZSBpcyByZXR1cm5lZC4gSWYgbm8gdXBwZXJjYXNlIAorICAgICAqIGlzIGF2YWlsYWJsZSwgdGhlIGNvZGUgcG9pbnQgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKCkKKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSB0YWtlIGludG8gYWNjb3VudCB0aGUgc3RyaW5nIGNvbnRleHQgYW5kIHRoZSBsYW5ndWFnZSBhbmQgY2FuIG1hcAorICAgICAqIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCAgd2hvc2UgdGl0bGUgY2FzZSBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHRpdGxlY2FzZSBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdG9UaXRsZUNhc2UoaW50IGNoKSB7CisgICAgICAgIHJldHVybiBnQ3NwLnRvdGl0bGUoY2gpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY2hhcmFjdGVyIGFyZ3VtZW50IHRvIHVwcGVyY2FzZS4KKyAgICAgKiBJZiBubyB1cHBlcmNhc2UgaXMgYXZhaWxhYmxlLCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci50b1VwcGVyQ2FzZSgpCisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyB0aGUgc2ltcGxlLCBzaW5nbGUtY29kZSBwb2ludCBjYXNlIG1hcHBpbmcuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIHNob3VsZCBiZSB1c2VkIHdoZW5ldmVyIHBvc3NpYmxlIGJlY2F1c2UgdGhleSBwcm9kdWNlCisgICAgICogYmV0dGVyIHJlc3VsdHMgYnkgd29ya2luZyBvbiB3aG9sZSBzdHJpbmdzLgorICAgICAqIFRoZXkgdGFrZSBpbnRvIGFjY291bnQgdGhlIHN0cmluZyBjb250ZXh0IGFuZCB0aGUgbGFuZ3VhZ2UgYW5kIGNhbiBtYXAKKyAgICAgKiB0byBhIHJlc3VsdCBzdHJpbmcgd2l0aCBhIGRpZmZlcmVudCBsZW5ndGggYXMgYXBwcm9wcmlhdGUuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIGFyZSBhcHBsaWVkIGJ5IHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zCisgICAgICogdGhhdCB0YWtlIFN0cmluZyBwYXJhbWV0ZXJzIHJhdGhlciB0aGFuIGNvZGUgcG9pbnRzIChpbnQpLgorICAgICAqIFNlZSBhbHNvIHRoZSBVc2VyIEd1aWRlIGNoYXB0ZXIgb24gQy9QT1NJWCBtaWdyYXRpb246CisgICAgICogaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3Bvc2l4Lmh0bWwjY2FzZV9tYXBwaW5ncworICAgICAqCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgdXBwZXJjYXNlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdXBwZXJjYXNlIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b1VwcGVyQ2FzZShpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AudG91cHBlcihjaCk7CisgICAgfQorICAgICAgIAorICAgIC8vIGV4dHJhIG1ldGhvZHMgbm90IGluIGphdmEubGFuZy5DaGFyYWN0ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBjb2RlIHBvaW50IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICogQSBjb2RlIHBvaW50IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgaWYgYW5kIG9ubHkgaWYgaXQgaXMgZ3JlYXRlciAKKyAgICAgKiB0aGFuIDxhIGhyZWY9I1NVUFBMRU1FTlRBUllfTUlOX1ZBTFVFPlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFPC9hPgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgaW4gdGhlIHN1cHBsZW1lbnRhcnkgCisgICAgICogICAgICAgIHBsYW5lCisgICAgICogQHJldHVybiB0cnVlIGlmIGNvZGUgcG9pbnQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N1cHBsZW1lbnRhcnkoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoID49IFVDaGFyYWN0ZXIuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYgCisgICAgICAgICAgICBjaCA8PSBVQ2hhcmFjdGVyLk1BWF9WQUxVRTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBjb2RlIHBvaW50IGlzIGluIHRoZSBCTVAgcGxhbmUuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBub3QgYSBzdXBwbGVtZW50YXJ5IAorICAgICAqICAgICAgICBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBub3QgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0JNUChpbnQgY2gpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaCA+PSAwICYmIGNoIDw9IExBU1RfQ0hBUl9NQVNLXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHByaW50YWJsZSBjaGFyYWN0ZXIgCisgICAgICogYWNjb3JkaW5nIHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgcHJpbnRhYmxlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGEgcHJpbnRhYmxlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1ByaW50YWJsZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgY2F0ID0gZ2V0VHlwZShjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gKGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAmJiAKKyAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MICYmIAorICAgICAgICBjYXQgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVCAmJgorICAgICAgICBjYXQgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFICYmCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1VSUk9HQVRFICYmCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBvZiBiYXNlIGZvcm0uCisgICAgICogQSBjb2RlIHBvaW50IG9mIGJhc2UgZm9ybSBkb2VzIG5vdCBncmFwaGljYWxseSBjb21iaW5lIHdpdGggcHJlY2VkaW5nIAorICAgICAqIGNoYXJhY3RlcnMsIGFuZCBpcyBuZWl0aGVyIGEgY29udHJvbCBub3IgYSBmb3JtYXQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgb2YgYmFzZSBmb3JtCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIG9mIGJhc2UgZm9ybQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0Jhc2VGb3JtKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBjYXQgPSBnZXRUeXBlKGNoKTsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9OVU1CRVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIgfHwKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk5PTl9TUEFDSU5HX01BUksgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkVOQ0xPU0lOR19NQVJLIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTUJJTklOR19TUEFDSU5HX01BUks7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQmlkaXJlY3Rpb24gcHJvcGVydHkgb2YgYSBjb2RlIHBvaW50LgorICAgICAqIEZvciBleGFtcGxlLCAweDAwNDEgKGxldHRlciBBKSBoYXMgdGhlIExFRlRfVE9fUklHSFQgZGlyZWN0aW9uYWwgCisgICAgICogcHJvcGVydHkuPGJyPgorICAgICAqIFJlc3VsdCByZXR1cm5lZCBiZWxvbmdzIHRvIHRoZSBpbnRlcmZhY2UgCisgICAgICogPGEgaHJlZj1VQ2hhcmFjdGVyRGlyZWN0aW9uLmh0bWw+VUNoYXJhY3RlckRpcmVjdGlvbjwvYT4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpdHMgZGlyZWN0aW9uCisgICAgICogQHJldHVybiBkaXJlY3Rpb24gY29uc3RhbnQgZnJvbSBVQ2hhcmFjdGVyRGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldERpcmVjdGlvbihpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ0JkcC5nZXRDbGFzcyhjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2RlIHBvaW50IGhhcyB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eS4KKyAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHNldCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBjb21tb25seSB1c2VkIGluCisgICAgICogUmlnaHQtVG8tTGVmdCBjb250ZXh0cyBhbmQgbmVlZCB0byBiZSBkaXNwbGF5ZWQgd2l0aCBhICJtaXJyb3JlZCIKKyAgICAgKiBnbHlwaC4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBtaXJyb3IgaXMgdG8gYmUgZGV0ZXJtaW5lZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBoYXMgdGhlICJtaXJyb3JlZCIgcHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNNaXJyb3JlZChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ0JkcC5pc01pcnJvcmVkKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXBzIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCB0byBhICJtaXJyb3ItaW1hZ2UiIGNvZGUgcG9pbnQuCisgICAgICogRm9yIGNvZGUgcG9pbnRzIHdpdGggdGhlICJtaXJyb3JlZCIgcHJvcGVydHksIGltcGxlbWVudGF0aW9ucyBzb21ldGltZXMgCisgICAgICogbmVlZCBhICJwb29yIG1hbidzIiBtYXBwaW5nIHRvIGFub3RoZXIgY29kZSBwb2ludCBzdWNoIHRoYXQgdGhlIGRlZmF1bHQgCisgICAgICogZ2x5cGggbWF5IHNlcnZlIGFzIHRoZSBtaXJyb3ItaW1hZ2Ugb2YgdGhlIGRlZmF1bHQgZ2x5cGggb2YgdGhlIAorICAgICAqIHNwZWNpZmllZCBjb2RlIHBvaW50Ljxicj4gCisgICAgICogVGhpcyBpcyB1c2VmdWwgZm9yIHRleHQgY29udmVyc2lvbiB0byBhbmQgZnJvbSBjb2RlcGFnZXMgd2l0aCB2aXN1YWwgCisgICAgICogb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlwaCBzZWxlY3Rpb24gY2FwYWJpbGl0aWVzLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIG1pcnJvciBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIGFub3RoZXIgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1pcnJvci1pbWFnZSBzdWJzdGl0dXRlLCAKKyAgICAgKiAgICAgICAgIG9yIGNoIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcgb3IgY2ggZG9lcyBub3QgaGF2ZSB0aGUgCisgICAgICogICAgICAgICAibWlycm9yZWQiIHByb3BlcnR5CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0TWlycm9yKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnQmRwLmdldE1pcnJvcihjaCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBhcmd1bWVudCBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBjb21iaW5pbmcgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0aGUgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBjb2RlcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb21iaW5pbmdDbGFzcyhpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEEgY29kZSBwb2ludCBpcyBpbGxlZ2FsIGlmIGFuZCBvbmx5IGlmCisgICAgICogPHVsPgorICAgICAqIDxsaT4gT3V0IG9mIGJvdW5kcywgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFCisgICAgICogPGxpPiBBIHN1cnJvZ2F0ZSB2YWx1ZSwgMHhEODAwIHRvIDB4REZGRgorICAgICAqIDxsaT4gTm90LWEtY2hhcmFjdGVyLCBoYXZpbmcgdGhlIGZvcm0gMHggeHhGRkZGIG9yIDB4IHh4RkZGRQorICAgICAqIDwvdWw+CisgICAgICogTm90ZTogbGVnYWwgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGFzc2lnbmVkIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhIGxlZ2FsIGNvZGUgcG9pbnQgYnkgaXRzZWxmCisgICAgICogQHJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlmIGxlZ2FsLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZWdhbChpbnQgY2gpIAorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDwgVVRGMTYuU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDw9IFVURjE2LlNVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVUNoYXJhY3RlclV0aWxpdHkuaXNOb25DaGFyYWN0ZXIoY2gpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaCA8PSBNQVhfVkFMVUUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEEgc3RyaW5nIGlzIGxlZ2FsIGlmZiBhbGwgaXRzIGNvZGUgcG9pbnRzIGFyZSBsZWdhbC4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgaWxsZWdhbCBpZiBhbmQgb25seSBpZgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IE91dCBvZiBib3VuZHMsIGxlc3MgdGhhbiAwIG9yIGdyZWF0ZXIgdGhhbiBVQ2hhcmFjdGVyLk1BWF9WQUxVRQorICAgICAqIDxsaT4gQSBzdXJyb2dhdGUgdmFsdWUsIDB4RDgwMCB0byAweERGRkYKKyAgICAgKiA8bGk+IE5vdC1hLWNoYXJhY3RlciwgaGF2aW5nIHRoZSBmb3JtIDB4IHh4RkZGRiBvciAweCB4eEZGRkUKKyAgICAgKiA8L3VsPgorICAgICAqIE5vdGU6IGxlZ2FsIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhc3NpZ25lZCBpbiB0aGlzIHZlcnNpb24gb2YgVW5pY29kZS4KKyAgICAgKiBAcGFyYW0gc3RyIGNvbnRhaW5pbmcgY29kZSBwb2ludHMgdG8gZXhhbWluCisgICAgICogQHJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlmIGxlZ2FsLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZWdhbChTdHJpbmcgc3RyKSAKKyAgICB7CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworICAgICAgICBpbnQgY29kZXBvaW50OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgY29kZXBvaW50ID0gVVRGMTYuY2hhckF0KHN0ciwgaSk7CisgICAgICAgIGlmICghaXNMZWdhbChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzU3VwcGxlbWVudGFyeShjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICBpICsrOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmVyc2lvbiBvZiBVbmljb2RlIGRhdGEgdXNlZC4gCisgICAgICogQHJldHVybiB0aGUgdW5pY29kZSB2ZXJzaW9uIG51bWJlciB1c2VkCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRVbmljb2RlVmVyc2lvbigpCisgICAgeworICAgICAgICByZXR1cm4gUFJPUEVSVFlfLm1fdW5pY29kZVZlcnNpb25fOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBtb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjb2RlIHBvaW50LCBvciAKKyAgICAgKiBudWxsIGlmIHRoZSBjaGFyYWN0ZXIgaXMgdW5hc3NpZ25lZCBvciBvdXRzaWRlIHRoZSByYW5nZSAKKyAgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQgVUNoYXJhY3Rlci5NQVhfVkFMVUUgb3IgZG9lcyBub3QgaGF2ZSBhIG5hbWUuCisgICAgICogPGJyPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCisgICAgICogQHJldHVybiBtb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZShpbnQgY2gpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZXMgZm9yIGVhY2ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgdG8gZm9ybWF0CisgICAgICogQHBhcmFtIHNlcGFyYXRvciBzdHJpbmcgdG8gZ28gYmV0d2VlbiBuYW1lcworICAgICAqIEByZXR1cm4gc3RyaW5nIG9mIG5hbWVzCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgcywgU3RyaW5nIHNlcGFyYXRvcikgeworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAxKSB7IC8vIGhhbmRsZSBjb21tb24gY2FzZQorICAgICAgICAgICAgcmV0dXJuIGdldE5hbWUocy5jaGFyQXQoMCkpOworICAgICAgICB9CisgICAgICAgIGludCBjcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHNiLmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgc2IuYXBwZW5kKFVDaGFyYWN0ZXIuZ2V0TmFtZShjcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBlYXJsaWVyIHZlcnNpb24gMS4wIFVuaWNvZGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgY29kZSAKKyAgICAgKiBwb2ludCwgb3IgbnVsbCBpZiB0aGUgY2hhcmFjdGVyIGlzIHVuYXNzaWduZWQgb3Igb3V0c2lkZSB0aGUgcmFuZ2UgCisgICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIG9yIGRvZXMgbm90IGhhdmUgYSBuYW1lLgorICAgICAqIDxicj4KKyAgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZQorICAgICAqIEByZXR1cm4gdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZTFfMChpbnQgY2gpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldE5hbWUoY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPlJldHJpZXZlcyBhIG5hbWUgZm9yIGEgdmFsaWQgY29kZXBvaW50LiBVbmxpa2UsIGdldE5hbWUoaW50KSBhbmQKKyAgICAgKiBnZXROYW1lMV8wKGludCksIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGEgbmFtZSBldmVuIGZvciBjb2RlcG9pbnRzIHRoYXQKKyAgICAgKiBhcmUgbm90IGFzc2lnbmVkIGEgbmFtZSBpbiBVbmljb2RlRGF0YS50eHQuCisgICAgICogPC9wPgorICAgICAqIFRoZSBuYW1lcyBhcmUgcmV0dXJuZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlci4KKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBNb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICAqIDxsaT4gVW5pY29kZSAxLjAgbmFtZSBpZiB0aGVyZSBpcyBhbnkKKyAgICAgKiA8bGk+IEV4dGVuZGVkIG5hbWUgaW4gdGhlIGZvcm0gb2YgCisgICAgICogICAgICAiPGNvZGVwb2ludF90eXBlLWNvZGVwb2ludF9oZXhfZGlnaXRzPiIuIEUuZy4gPG5vbmNoYXJhY3Rlci1mZmZlPgorICAgICAqIDwvdWw+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUKKyAgICAgKiBAcmV0dXJuIGEgbmFtZSBmb3IgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEV4dGVuZGVkTmFtZShpbnQgY2gpIAorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOQU1FXy5nZXROYW1lKGNoLCBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElTTyAxMDY0NiBjb21tZW50IGZvciBhIGNoYXJhY3Rlci4KKyAgICAgKiBUaGUgSVNPIDEwNjQ2IGNvbW1lbnQgaXMgYW4gaW5mb3JtYXRpdmUgZmllbGQgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyCisgICAgICogRGF0YWJhc2UgKFVuaWNvZGVEYXRhLnR4dCBmaWVsZCAxMSkgYW5kIGlzIGZyb20gdGhlIElTTyAxMDY0NiBuYW1lcyBsaXN0LgorICAgICAqIEBwYXJhbSBjaCBUaGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBJU08gY29tbWVudC4KKyAgICAgKiAgICAgICAgICAgSXQgbXVzdCBiZSA8Y29kZT4wPD1jPD0weDEwZmZmZjwvY29kZT4uCisgICAgICogQHJldHVybiBUaGUgSVNPIGNvbW1lbnQsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gY29tbWVudCBmb3IgdGhpcyAKKyAgICAgKiAgICAgICAgIGNoYXJhY3Rlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJU09Db21tZW50KGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIHx8IGNoID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IE5BTUVfLmdldEdyb3VwTmFtZShjaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuSVNPX0NPTU1FTlRfKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5GaW5kIGEgVW5pY29kZSBjb2RlIHBvaW50IGJ5IGl0cyBtb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIGFuZCAKKyAgICAgKiByZXR1cm4gaXRzIGNvZGUgcG9pbnQgdmFsdWUuIEFsbCBVbmljb2RlIG5hbWVzIGFyZSBpbiB1cHBlcmNhc2UuPC9wPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBuYW1lIG1vc3QgY3VycmVudCBVbmljb2RlIGNoYXJhY3RlciBuYW1lIHdob3NlIGNvZGUgcG9pbnQgaXMgdG8gCisgICAgICogICAgICAgIGJlIHJldHVybmVkCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IG9yIC0xIGlmIG5hbWUgaXMgbm90IGZvdW5kCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21OYW1lKFN0cmluZyBuYW1lKQorICAgIHsgICAgIAorICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldENoYXJGcm9tTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfQ0hBUl9OQU1FLCBuYW1lKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5GaW5kIGEgVW5pY29kZSBjaGFyYWN0ZXIgYnkgaXRzIHZlcnNpb24gMS4wIFVuaWNvZGUgbmFtZSBhbmQgcmV0dXJuIAorICAgICAqIGl0cyBjb2RlIHBvaW50IHZhbHVlLiBBbGwgVW5pY29kZSBuYW1lcyBhcmUgaW4gdXBwZXJjYXNlLjwvcD4KKyAgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gbmFtZSBVbmljb2RlIDEuMCBjb2RlIHBvaW50IG5hbWUgd2hvc2UgY29kZSBwb2ludCBpcyB0byAKKyAgICAgKiAgICAgICAgICAgICByZXR1cm5lZAorICAgICAqIEByZXR1cm4gY29kZSBwb2ludCBvciAtMSBpZiBuYW1lIGlzIG5vdCBmb3VuZAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJGcm9tTmFtZTFfMChTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0Q2hhckZyb21OYW1lKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5GaW5kIGEgVW5pY29kZSBjaGFyYWN0ZXIgYnkgZWl0aGVyIGl0cyBuYW1lIGFuZCByZXR1cm4gaXRzIGNvZGUgCisgICAgICogcG9pbnQgdmFsdWUuIEFsbCBVbmljb2RlIG5hbWVzIGFyZSBpbiB1cHBlcmNhc2UuIAorICAgICAqIEV4dGVuZGVkIG5hbWVzIGFyZSBhbGwgbG93ZXJjYXNlIGV4Y2VwdCBmb3IgbnVtYmVycyBhbmQgYXJlIGNvbnRhaW5lZAorICAgICAqIHdpdGhpbiBhbmdsZSBicmFja2V0cy48L3A+CisgICAgICogVGhlIG5hbWVzIGFyZSBzZWFyY2hlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyCisgICAgICogPHVsPgorICAgICAqIDxsaT4gTW9zdCBjdXJyZW50IFVuaWNvZGUgbmFtZSBpZiB0aGVyZSBpcyBhbnkKKyAgICAgKiA8bGk+IFVuaWNvZGUgMS4wIG5hbWUgaWYgdGhlcmUgaXMgYW55CisgICAgICogPGxpPiBFeHRlbmRlZCBuYW1lIGluIHRoZSBmb3JtIG9mIAorICAgICAqICAgICAgIjxjb2RlcG9pbnRfdHlwZS1jb2RlcG9pbnRfaGV4X2RpZ2l0cz4iLiBFLmcuIDxub25jaGFyYWN0ZXItRkZGRT4KKyAgICAgKiA8L3VsPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBuYW1lIGNvZGVwb2ludCBuYW1lCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgbmFtZSBvciAtMSBpZiB0aGUgbmFtZSBpcyBub3QKKyAgICAgKiAgICAgICAgIGZvdW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJGcm9tRXh0ZW5kZWROYW1lKFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOQU1FXy5nZXRDaGFyRnJvbU5hbWUoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVW5pY29kZSBuYW1lIGZvciBhIGdpdmVuIHByb3BlcnR5LCBhcyBnaXZlbiBpbiB0aGUKKyAgICAgKiBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlBbGlhc2VzLnR4dC4gIE1vc3QgcHJvcGVydGllcworICAgICAqIGhhdmUgbW9yZSB0aGFuIG9uZSBuYW1lLiAgVGhlIG5hbWVDaG9pY2UgZGV0ZXJtaW5lcyB3aGljaCBvbmUKKyAgICAgKiBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEluIGFkZGl0aW9uLCB0aGlzIGZ1bmN0aW9uIG1hcHMgdGhlIHByb3BlcnR5CisgICAgICogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSyB0byB0aGUgc3ludGhldGljIG5hbWVzICJnY20iIC8KKyAgICAgKiAiR2VuZXJhbF9DYXRlZ29yeV9NYXNrIi4gIFRoZXNlIG5hbWVzIGFyZSBub3QgaW4KKyAgICAgKiBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBVUHJvcGVydHkgc2VsZWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZUNob2ljZSBVUHJvcGVydHkuTmFtZUNob2ljZSBzZWxlY3RvciBmb3Igd2hpY2ggbmFtZQorICAgICAqIHRvIGdldC4gIEFsbCBwcm9wZXJ0aWVzIGhhdmUgYSBsb25nIG5hbWUuICBNb3N0IGhhdmUgYSBzaG9ydAorICAgICAqIG5hbWUsIGJ1dCBzb21lIGRvIG5vdC4gIFVuaWNvZGUgYWxsb3dzIGZvciBhZGRpdGlvbmFsIG5hbWVzOyBpZgorICAgICAqIHByZXNlbnQgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZCBieSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HICsgaSwKKyAgICAgKiB3aGVyZSBpPTEsIDIsLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgbmFtZSwgb3IgbnVsbCBpZiBVbmljb2RlIGV4cGxpY2l0bHkgZGVmaW5lcyBubyBuYW1lCisgICAgICogKCJuL2EiKSBmb3IgYSBnaXZlbiBwcm9wZXJ0eS9uYW1lQ2hvaWNlLiAgSWYgYSBnaXZlbiBuYW1lQ2hvaWNlCisgICAgICogdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdGhlbiBhbGwgbGFyZ2VyIHZhbHVlcyBvZiBuYW1lQ2hvaWNlIHdpbGwKKyAgICAgKiB0aHJvdyBhbiBleGNlcHRpb24uICBJZiBudWxsIGlzIHJldHVybmVkIGZvciBhIGdpdmVuCisgICAgICogbmFtZUNob2ljZSwgdGhlbiBvdGhlciBuYW1lQ2hvaWNlIHZhbHVlcyBtYXkgcmV0dXJuIG5vbi1udWxsCisgICAgICogcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBwcm9wZXJ0eSBvcgorICAgICAqIG5hbWVDaG9pY2UgYXJlIGludmFsaWQuCisgICAgICoKKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEBzZWUgVVByb3BlcnR5Lk5hbWVDaG9pY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRQcm9wZXJ0eU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICByZXR1cm4gUE5BTUVTXy5nZXRQcm9wZXJ0eU5hbWUocHJvcGVydHksIG5hbWVDaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVVByb3BlcnR5IHNlbGVjdG9yIGZvciBhIGdpdmVuIHByb3BlcnR5IG5hbWUsIGFzCisgICAgICogc3BlY2lmaWVkIGluIHRoZSBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlBbGlhc2VzLnR4dC4KKyAgICAgKiBTaG9ydCwgbG9uZywgYW5kIGFueSBvdGhlciB2YXJpYW50cyBhcmUgcmVjb2duaXplZC4KKyAgICAgKgorICAgICAqIEluIGFkZGl0aW9uLCB0aGlzIGZ1bmN0aW9uIG1hcHMgdGhlIHN5bnRoZXRpYyBuYW1lcyAiZ2NtIiAvCisgICAgICogIkdlbmVyYWxfQ2F0ZWdvcnlfTWFzayIgdG8gdGhlIHByb3BlcnR5CisgICAgICogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSy4gIFRoZXNlIG5hbWVzIGFyZSBub3QgaW4KKyAgICAgKiBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5QWxpYXMgdGhlIHByb3BlcnR5IG5hbWUgdG8gYmUgbWF0Y2hlZC4gIFRoZSBuYW1lCisgICAgICogaXMgY29tcGFyZWQgdXNpbmcgImxvb3NlIG1hdGNoaW5nIiBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqCisgICAgICogQHJldHVybiBhIFVQcm9wZXJ0eSBlbnVtLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHByb3BlcnR5QWxpYXMKKyAgICAgKiBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UHJvcGVydHlFbnVtKFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5RW51bShwcm9wZXJ0eUFsaWFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIFVuaWNvZGUgbmFtZSBmb3IgYSBnaXZlbiBwcm9wZXJ0eSB2YWx1ZSwgYXMgZ2l2ZW4gaW4KKyAgICAgKiB0aGUgVW5pY29kZSBkYXRhYmFzZSBmaWxlIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dC4gIE1vc3QKKyAgICAgKiB2YWx1ZXMgaGF2ZSBtb3JlIHRoYW4gb25lIG5hbWUuICBUaGUgbmFtZUNob2ljZSBkZXRlcm1pbmVzCisgICAgICogd2hpY2ggb25lIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogTm90ZTogU29tZSBvZiB0aGUgbmFtZXMgaW4gUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IGNhbiBvbmx5IGJlCisgICAgICogcmV0cmlldmVkIHVzaW5nIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0ssIG5vdAorICAgICAqIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZLiAgVGhlc2UgaW5jbHVkZTogIkMiIC8gIk90aGVyIiwgIkwiIC8KKyAgICAgKiAiTGV0dGVyIiwgIkxDIiAvICJDYXNlZF9MZXR0ZXIiLCAiTSIgLyAiTWFyayIsICJOIiAvICJOdW1iZXIiLCAiUCIKKyAgICAgKiAvICJQdW5jdHVhdGlvbiIsICJTIiAvICJTeW1ib2wiLCBhbmQgIloiIC8gIlNlcGFyYXRvciIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgVVByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50LgorICAgICAqIFVQcm9wZXJ0eS5JTlRfU1RBUlQgJmx0Oz0gcHJvcGVydHkgJmx0OyBVUHJvcGVydHkuSU5UX0xJTUlUIG9yCisgICAgICogVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmbHQ7PSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQgb3IKKyAgICAgKiBVUHJvcGVydHkuTUFTS19TVEFSVCAmbHQ7ID0gcHJvcGVydHkgJmx0OyBVUHJvcGVydHkuTUFTS19MSU1JVC4KKyAgICAgKiBJZiBvdXQgb2YgcmFuZ2UsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgc2VsZWN0b3IgZm9yIGEgdmFsdWUgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eS4gIEluCisgICAgICogZ2VuZXJhbCwgdmFsaWQgdmFsdWVzIHJhbmdlIGZyb20gMCB1cCB0byBzb21lIG1heGltdW0uICBUaGVyZQorICAgICAqIGFyZSBhIGZldyBleGNlcHRpb25zOiAoMS4pIFVQcm9wZXJ0eS5CTE9DSyB2YWx1ZXMgYmVnaW4gYXQgdGhlCisgICAgICogbm9uLXplcm8gdmFsdWUgQkFTSUNfTEFUSU4uZ2V0SUQoKS4gICgyLikKKyAgICAgKiBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB2YWx1ZXMgYXJlIG5vdCBjb250aWd1b3VzCisgICAgICogYW5kIHJhbmdlIGZyb20gMC4uMjQwLiAgKDMuKSAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSyB2YWx1ZXMKKyAgICAgKiBhcmUgbWFzayB2YWx1ZXMgcHJvZHVjZWQgYnkgbGVmdC1zaGlmdGluZyAxIGJ5CisgICAgICogVUNoYXJhY3Rlci5nZXRUeXBlKCkuICBUaGlzIGFsbG93cyBncm91cGVkIGNhdGVnb3JpZXMgc3VjaCBhcworICAgICAqIFs6TDpdIHRvIGJlIHJlcHJlc2VudGVkLiAgTWFzayB2YWx1ZXMgYXJlIG5vbi1jb250aWd1b3VzLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWVDaG9pY2UgVVByb3BlcnR5Lk5hbWVDaG9pY2Ugc2VsZWN0b3IgZm9yIHdoaWNoIG5hbWUKKyAgICAgKiB0byBnZXQuICBBbGwgdmFsdWVzIGhhdmUgYSBsb25nIG5hbWUuICBNb3N0IGhhdmUgYSBzaG9ydCBuYW1lLAorICAgICAqIGJ1dCBzb21lIGRvIG5vdC4gIFVuaWNvZGUgYWxsb3dzIGZvciBhZGRpdGlvbmFsIG5hbWVzOyBpZgorICAgICAqIHByZXNlbnQgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZCBieSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HICsgaSwKKyAgICAgKiB3aGVyZSBpPTEsIDIsLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgbmFtZSwgb3IgbnVsbCBpZiBVbmljb2RlIGV4cGxpY2l0bHkgZGVmaW5lcyBubyBuYW1lCisgICAgICogKCJuL2EiKSBmb3IgYSBnaXZlbiBwcm9wZXJ0eS92YWx1ZS9uYW1lQ2hvaWNlLiAgSWYgYSBnaXZlbgorICAgICAqIG5hbWVDaG9pY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdGhlbiBhbGwgbGFyZ2VyIHZhbHVlcyBvZgorICAgICAqIG5hbWVDaG9pY2Ugd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uICBJZiBudWxsIGlzIHJldHVybmVkIGZvciBhCisgICAgICogZ2l2ZW4gbmFtZUNob2ljZSwgdGhlbiBvdGhlciBuYW1lQ2hvaWNlIHZhbHVlcyBtYXkgcmV0dXJuCisgICAgICogbm9uLW51bGwgcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBwcm9wZXJ0eSwgdmFsdWUsCisgICAgICogb3IgbmFtZUNob2ljZSBhcmUgaW52YWxpZC4KKyAgICAgKgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSBVUHJvcGVydHkuTmFtZUNob2ljZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVOYW1lKGludCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hbWVDaG9pY2UpIAorICAgIHsKKyAgICAgICAgaWYgKHByb3BlcnR5ID09IFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIAorICAgICAgICAgICAgJiYgdmFsdWUgPj0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpCisgICAgICAgICAgICAmJiB2YWx1ZSA8PSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykKKyAgICAgICAgICAgICYmIG5hbWVDaG9pY2UgPj0gMCAmJiBuYW1lQ2hvaWNlIDwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuQ09VTlQpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgaGFyZCBjb2RlZCBmb3IgdGhlIHZhbGlkIGNjCisgICAgICAgICAgICAvLyBiZWNhdXNlIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dCBkb2VzIG5vdCBjb250YWluIGFsbCBvZiB0aGVtCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BlcnR5LCB2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUNob2ljZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUE5BTUVTXy5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wZXJ0eSwgdmFsdWUsIG5hbWVDaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJvcGVydHkgdmFsdWUgaW50ZWdlciBmb3IgYSBnaXZlbiB2YWx1ZSBuYW1lLCBhcworICAgICAqIHNwZWNpZmllZCBpbiB0aGUgVW5pY29kZSBkYXRhYmFzZSBmaWxlIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dC4KKyAgICAgKiBTaG9ydCwgbG9uZywgYW5kIGFueSBvdGhlciB2YXJpYW50cyBhcmUgcmVjb2duaXplZC4KKyAgICAgKgorICAgICAqIE5vdGU6IFNvbWUgb2YgdGhlIG5hbWVzIGluIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dCB3aWxsIG9ubHkgYmUKKyAgICAgKiByZWNvZ25pemVkIHdpdGggVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSywgbm90CisgICAgICogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkuICBUaGVzZSBpbmNsdWRlOiAiQyIgLyAiT3RoZXIiLCAiTCIgLworICAgICAqICJMZXR0ZXIiLCAiTEMiIC8gIkNhc2VkX0xldHRlciIsICJNIiAvICJNYXJrIiwgIk4iIC8gIk51bWJlciIsICJQIgorICAgICAqIC8gIlB1bmN0dWF0aW9uIiwgIlMiIC8gIlN5bWJvbCIsIGFuZCAiWiIgLyAiU2VwYXJhdG9yIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQuCisgICAgICogVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQgb3IKKyAgICAgKiBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvcgorICAgICAqIFVQcm9wZXJ0eS5NQVNLX1NUQVJUICZsdDsgPSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5NQVNLX0xJTUlULgorICAgICAqIE9ubHkgdGhlc2UgcHJvcGVydGllcyBjYW4gYmUgZW51bWVyYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZUFsaWFzIHRoZSB2YWx1ZSBuYW1lIHRvIGJlIG1hdGNoZWQuICBUaGUgbmFtZSBpcworICAgICAqIGNvbXBhcmVkIHVzaW5nICJsb29zZSBtYXRjaGluZyIgYXMgZGVzY3JpYmVkIGluCisgICAgICogUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LgorICAgICAqCisgICAgICogQHJldHVybiBhIHZhbHVlIGludGVnZXIuICBOb3RlOiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWQorICAgICAqIHZhbHVlcyBhcmUgbWFzayB2YWx1ZXMgcHJvZHVjZWQgYnkgbGVmdC1zaGlmdGluZyAxIGJ5CisgICAgICogVUNoYXJhY3Rlci5nZXRUeXBlKCkuICBUaGlzIGFsbG93cyBncm91cGVkIGNhdGVnb3JpZXMgc3VjaCBhcworICAgICAqIFs6TDpdIHRvIGJlIHJlcHJlc2VudGVkLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBwcm9wZXJ0eSBpcyBub3QgYSB2YWxpZCBVUHJvcGVydHkKKyAgICAgKiAgICAgICAgIHNlbGVjdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UHJvcGVydHlWYWx1ZUVudW0oaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5VmFsdWVFbnVtKHByb3BlcnR5LCB2YWx1ZUFsaWFzKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY29kZSBwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSB0d28gVVRGMTYgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gbGVhZCB0aGUgbGVhZCBjaGFyCisgICAgICogQHBhcmFtIHRyYWlsIHRoZSB0cmFpbCBjaGFyCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IGlmIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGFyZSB2YWxpZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCBjaGFyYWN0ZXJzIGRvCisgICAgICogICAgICAgICAgICBub3QgZm9ybSBhIHZhbGlkIGNvZGVwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvZGVQb2ludChjaGFyIGxlYWQsIGNoYXIgdHJhaWwpIAorICAgIHsKKyAgICAgICAgaWYgKGxlYWQgPj0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFICYmIAorICAgICAgICBsZWFkIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJgorICAgICAgICAgICAgdHJhaWwgPj0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiAKKyAgICAgICAgdHJhaWwgPD0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHRyYWlsKTsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIik7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgVVRGMTYgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IGlmIGFyZ3VtZW50IGlzIGEgdmFsaWQgY2hhcmFjdGVyLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGNoYXIxNiBpcyBub3QgYSB2YWxpZAorICAgICAqICAgICAgICAgICAgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29kZVBvaW50KGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGVnYWwoY2hhcjE2KSkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXIxNjsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yLCBpdGVyYXRlcyBvdmVyIGEgU3RyaW5nLgorICAgICAqIFNlZSB1c3RyY2FzZS5jL3V0ZjE2X2Nhc2VDb250ZXh0SXRlcmF0b3IoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTdHJpbmdDb250ZXh0SXRlcmF0b3IgaW1wbGVtZW50cyBVQ2FzZVByb3BzLkNvbnRleHRJdGVyYXRvciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgICAgICogQHBhcmFtIHMgU3RyaW5nIHRvIGl0ZXJhdGUgb3Zlci4gCisgICAgICAgICAqLworICAgICAgICBTdHJpbmdDb250ZXh0SXRlcmF0b3IoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHRoaXMucz1zOworICAgICAgICAgICAgbGltaXQ9cy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGNwU3RhcnQ9Y3BMaW1pdD1pbmRleD0wOworICAgICAgICAgICAgZGlyPTA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSBpdGVyYXRpb24gbGltaXQgZm9yIG5leHRDYXNlTWFwQ1AoKSB0byBhbiBpbmRleCB3aXRoaW4gdGhlIHN0cmluZy4KKyAgICAgICAgICogSWYgdGhlIGxpbWl0IHBhcmFtZXRlciBpcyBuZWdhdGl2ZSBvciBwYXN0IHRoZSBzdHJpbmcsIHRoZW4gdGhlCisgICAgICAgICAqIHN0cmluZyBsZW5ndGggaXMgcmVzdG9yZWQgYXMgdGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBsaW1pdCBkb2VzIG5vdCBhZmZlY3QgdGhlIG5leHQoKSBmdW5jdGlvbiB3aGljaCBhbHdheXMKKyAgICAgICAgICogaXRlcmF0ZXMgdG8gdGhlIHZlcnkgZW5kIG9mIHRoZSBzdHJpbmcuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBsaW0gVGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldExpbWl0KGludCBsaW0pIHsKKyAgICAgICAgICAgIGlmKDA8PWxpbSAmJiBsaW08PXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBsaW1pdD1saW07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxpbWl0PXMubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSXRlcmF0ZSBmb3J3YXJkIHRocm91Z2ggdGhlIHN0cmluZyB0byBmZXRjaCB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICAgICAqIHRvIGJlIGNhc2UtbWFwcGVkLCBhbmQgc2V0IHRoZSBjb250ZXh0IGluZGV4ZXMgZm9yIGl0LgorICAgICAgICAgKiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24sIHRvIHNhdmUgb24gZnVuY3Rpb24gY2FsbHMgYW5kIHJlZHVuZGFudAorICAgICAgICAgKiB0ZXN0cy4gQ29tYmluZXMgVVRGMTYuY2hhckF0KCksIFVURjE2LmdldENoYXJDb3VudCgpLCBhbmQgc2V0SW5kZXgoKS4KKyAgICAgICAgICoKKyAgICAgICAgICogV2hlbiB0aGUgaXRlcmF0aW9uIGxpbWl0IGlzIHJlYWNoZWQgKGFuZCAtMSBpcyByZXR1cm5lZCksCisgICAgICAgICAqIGdldENQU3RhcnQoKSB3aWxsIGJlIGF0IHRoZSBpdGVyYXRpb24gbGltaXQuCisgICAgICAgICAqCisgICAgICAgICAqIEl0ZXJhdGlvbiB3aXRoIG5leHQoKSBkb2VzIG5vdCBhZmZlY3QgdGhlIHBvc2l0aW9uIGZvciBuZXh0Q2FzZU1hcENQKCkuCisgICAgICAgICAqCisgICAgICAgICAqIEByZXR1cm4gVGhlIG5leHQgY29kZSBwb2ludCB0byBiZSBjYXNlLW1hcHBlZCwgb3IgPDAgd2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IG5leHRDYXNlTWFwQ1AoKSB7CisgICAgICAgICAgICBjcFN0YXJ0PWNwTGltaXQ7CisgICAgICAgICAgICBpZihjcExpbWl0PGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaW50IGM9cy5jaGFyQXQoY3BMaW1pdCsrKTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUU8PWMgfHwgYzw9VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGMyOworICAgICAgICAgICAgICAgICAgICBpZiggYzw9VVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmIGNwTGltaXQ8bGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUU8PShjMj1zLmNoYXJBdChjcExpbWl0KSkgJiYgYzI8PVVURjE2LlRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUKKyAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICsrY3BMaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpYywgYzIpOworICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIHVucGFpcmVkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBlbHNlIEJNUCBjb2RlIHBvaW50CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogR2V0IHRoZSBzdGFydCBvZiB0aGUgY29kZSBwb2ludCB0aGF0IHdhcyBsYXN0IHJldHVybmVkCisgICAgICAgICAqIGJ5IG5leHRDYXNlTWFwQ1AoKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q1BTdGFydCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjcFN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgLy8gaW1wbGVtZW50IFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBkaXIpIHsKKyAgICAgICAgICAgIGlmKGRpcj4wKSB7CisgICAgICAgICAgICAgICAgLyogcmVzZXQgZm9yIGZvcndhcmQgaXRlcmF0aW9uICovCisgICAgICAgICAgICAgICAgdGhpcy5kaXI9MTsKKyAgICAgICAgICAgICAgICBpbmRleD1jcExpbWl0OworICAgICAgICAgICAgfSBlbHNlIGlmKGRpcjwwKSB7CisgICAgICAgICAgICAgICAgLyogcmVzZXQgZm9yIGJhY2t3YXJkIGl0ZXJhdGlvbiAqLworICAgICAgICAgICAgICAgIHRoaXMuZGlyPS0xOworICAgICAgICAgICAgICAgIGluZGV4PWNwU3RhcnQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIG5vdCBhIHZhbGlkIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgIHRoaXMuZGlyPTA7CisgICAgICAgICAgICAgICAgaW5kZXg9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgICAgIGludCBjOworCisgICAgICAgICAgICBpZihkaXI+MCAmJiBpbmRleDxzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQocywgaW5kZXgpOworICAgICAgICAgICAgICAgIGluZGV4Kz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9IGVsc2UgaWYoZGlyPDAgJiYgaW5kZXg+MCkgeworICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KHMsIGluZGV4LTEpOworICAgICAgICAgICAgICAgIGluZGV4LT1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvLyB2YXJpYWJsZXMKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBzOworICAgICAgICBwcm90ZWN0ZWQgaW50IGluZGV4LCBsaW1pdCwgY3BTdGFydCwgY3BMaW1pdDsKKyAgICAgICAgcHJvdGVjdGVkIGludCBkaXI7IC8vIDA9aW5pdGlhbCBzdGF0ZSAgPjA9Zm9yd2FyZCAgPDA9YmFja3dhcmQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuIAorICAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHJldHVybiB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9VcHBlckNhc2UoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1VwcGVyQ2FzZShVTG9jYWxlLmdldERlZmF1bHQoKSwgc3RyKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuIAorICAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvTG93ZXJDYXNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSB0aXRsZWNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLjwvcD4KKyAgICAgKiA8cD5Qb3NpdGlvbiBmb3IgdGl0bGVjYXNpbmcgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJndW1lbnQgYnJlYWsgCisgICAgICogaXRlcmF0b3IsIGhlbmNlIHRoZSB1c2VyIGNhbiBjdXN0b21pemVkIGhpcyBicmVhayBpdGVyYXRvciBmb3IgCisgICAgICogYSBzcGVjaWFsaXplZCB0aXRsZWNhc2luZy4gSW4gdGhpcyBjYXNlIG9ubHkgdGhlIGZvcndhcmQgaXRlcmF0aW9uIAorICAgICAqIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgorICAgICAqIElmIHRoZSBicmVhayBpdGVyYXRvciBwYXNzZWQgaW4gaXMgbnVsbCwgdGhlIGRlZmF1bHQgVW5pY29kZSBhbGdvcml0aG0KKyAgICAgKiB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0aXRsZWNhc2UgcG9zaXRpb25zLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5Pbmx5IHBvc2l0aW9ucyByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSB0aXRsZSBjYXNlZCwKKyAgICAgKiBjaGFyYWN0ZXIgaW4gYmV0d2VlbiB0aGUgcG9zaXRpb25zIHdpbGwgYWxsIGJlIGluIGxvd2VyIGNhc2UuPC9wPgorICAgICAqIDxwPkNhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZTwvcD4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGJyZWFraXRlciBicmVhayBpdGVyYXRvciB0byBkZXRlcm1pbmUgdGhlIHBvc2l0aW9ucyBpbiB3aGljaAorICAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1RpdGxlQ2FzZShTdHJpbmcgc3RyLCBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1RpdGxlQ2FzZShVTG9jYWxlLmdldERlZmF1bHQoKSwgc3RyLCBicmVha2l0ZXIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHJldHVybiB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9VcHBlckNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1VwcGVyQ2FzZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHJldHVybiB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0cikgeworICAgICAgICBTdHJpbmdDb250ZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBTdHJpbmdDb250ZXh0SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgYzsKKworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIGxvY0NhY2hlWzBdPTA7CisKKyAgICAgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICBjPWdDc3AudG9GdWxsVXBwZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgIC8qIChub3QpIG9yaWdpbmFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKiBtYXBwaW5nIGFscmVhZHkgYXBwZW5kZWQgdG8gcmVzdWx0ICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvKiB9IGVsc2UgeyBhcHBlbmQgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvTG93ZXJDYXNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIHN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICogQHBhcmFtIGxvY2FsZSB3aGljaCBzdHJpbmcgaXMgdG8gYmUgY29udmVydGVkIGluCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9Mb3dlckNhc2UoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgU3RyaW5nQ29udGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgU3RyaW5nQ29udGV4dEl0ZXJhdG9yKHN0cik7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGM7CisKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb2NDYWNoZVswXT0wOworCisgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgYz1nQ3NwLnRvRnVsbExvd2VyKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgICAgICAvKiAobm90KSBvcmlnaW5hbCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgYz1+YzsKKyAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLyogbWFwcGluZyBhbHJlYWR5IGFwcGVuZGVkIHRvIHJlc3VsdCAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLyogfSBlbHNlIHsgYXBwZW5kIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmcgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIHRoZSB0aXRsZWNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLjwvcD4KKyAgICAgKiA8cD5Qb3NpdGlvbiBmb3IgdGl0bGVjYXNpbmcgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJndW1lbnQgYnJlYWsgCisgICAgICogaXRlcmF0b3IsIGhlbmNlIHRoZSB1c2VyIGNhbiBjdXN0b21pemVkIGhpcyBicmVhayBpdGVyYXRvciBmb3IgCisgICAgICogYSBzcGVjaWFsaXplZCB0aXRsZWNhc2luZy4gSW4gdGhpcyBjYXNlIG9ubHkgdGhlIGZvcndhcmQgaXRlcmF0aW9uIAorICAgICAqIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgorICAgICAqIElmIHRoZSBicmVhayBpdGVyYXRvciBwYXNzZWQgaW4gaXMgbnVsbCwgdGhlIGRlZmF1bHQgVW5pY29kZSBhbGdvcml0aG0KKyAgICAgKiB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0aXRsZWNhc2UgcG9zaXRpb25zLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5Pbmx5IHBvc2l0aW9ucyByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSB0aXRsZSBjYXNlZCwKKyAgICAgKiBjaGFyYWN0ZXIgaW4gYmV0d2VlbiB0aGUgcG9zaXRpb25zIHdpbGwgYWxsIGJlIGluIGxvd2VyIGNhc2UuPC9wPgorICAgICAqIDxwPkNhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmU8L3A+CisgICAgICogQHBhcmFtIGxvY2FsZSB3aGljaCBzdHJpbmcgaXMgdG8gYmUgY29udmVydGVkIGluCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEBwYXJhbSBicmVha2l0ZXIgYnJlYWsgaXRlcmF0b3IgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgaW4gd2hpY2gKKyAgICAgKiAgICAgICAgdGhlIGNoYXJhY3RlciBzaG91bGQgYmUgdGl0bGUgY2FzZWQuCisgICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9UaXRsZUNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBicmVha2l0ZXIpCisgICAgeworICAgICAgICByZXR1cm4gdG9UaXRsZUNhc2UoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgc3RyLCBicmVha2l0ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHRpdGxlY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuPC9wPgorICAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAgKiBhIHNwZWNpYWxpemVkIHRpdGxlY2FzaW5nLiBJbiB0aGlzIGNhc2Ugb25seSB0aGUgZm9yd2FyZCBpdGVyYXRpb24gCisgICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICAqIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpdGxlY2FzZSBwb3NpdGlvbnMuCisgICAgICogPC9wPgorICAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICAqIGNoYXJhY3RlciBpbiBiZXR3ZWVuIHRoZSBwb3NpdGlvbnMgd2lsbCBhbGwgYmUgaW4gbG93ZXIgY2FzZS48L3A+CisgICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZTwvcD4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIHRpdGxlSXRlciBicmVhayBpdGVyYXRvciB0byBkZXRlcm1pbmUgdGhlIHBvc2l0aW9ucyBpbiB3aGljaAorICAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVGl0bGVDYXNlKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIHRpdGxlSXRlcikgeworICAgICAgICBTdHJpbmdDb250ZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBTdHJpbmdDb250ZXh0SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgYywgc3JjTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworCisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKworICAgICAgICBpZih0aXRsZUl0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGl0bGVJdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICB0aXRsZUl0ZXIuc2V0VGV4dChzdHIpOworCisgICAgICAgIGludCBwcmV2LCB0aXRsZVN0YXJ0LCBpbmRleDsKKyAgICAgICAgYm9vbGVhbiBpc0ZpcnN0SW5kZXg7CisKKyAgICAgICAgLyogc2V0IHVwIGxvY2FsIHZhcmlhYmxlcyAqLworICAgICAgICBwcmV2PTA7CisgICAgICAgIGlzRmlyc3RJbmRleD10cnVlOworCisgICAgICAgIC8qIHRpdGxlY2FzaW5nIGxvb3AgKi8KKyAgICAgICAgd2hpbGUocHJldjxzcmNMZW5ndGgpIHsKKyAgICAgICAgICAgIC8qIGZpbmQgbmV4dCBpbmRleCB3aGVyZSB0byB0aXRsZWNhc2UgKi8KKyAgICAgICAgICAgIGlmKGlzRmlyc3RJbmRleCkgeworICAgICAgICAgICAgICAgIGlzRmlyc3RJbmRleD1mYWxzZTsKKyAgICAgICAgICAgICAgICBpbmRleD10aXRsZUl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW5kZXg9dGl0bGVJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGluZGV4PT1CcmVha0l0ZXJhdG9yLkRPTkUgfHwgaW5kZXg+c3JjTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9c3JjTGVuZ3RoOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMgRGVmYXVsdCBDYXNlIE9wZXJhdGlvbnM6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5kIHRoZSB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICAgICAgICAgICAgICogIzI5LCAiVGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFyaWVzLCBmaW5kIHRoZSBmaXJzdAorICAgICAgICAgICAgICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBtYXAgRiB0byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgICAgICAgICAgICAgKiBzdWJzZXF1ZW50IGNoYXJhY3RlciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogSW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgc2VnbWVudCBbcHJldi4uaW5kZXhbIGludG8gMyBwYXJ0czoKKyAgICAgICAgICAgICAqIGEpIHVuY2FzZWQgY2hhcmFjdGVycyAoY29weSBhcy1pcykgW3ByZXYuLnRpdGxlU3RhcnRbCisgICAgICAgICAgICAgKiBiKSBmaXJzdCBjYXNlIGxldHRlciAodGl0bGVjYXNlKSAgICAgICAgIFt0aXRsZVN0YXJ0Li50aXRsZUxpbWl0WworICAgICAgICAgICAgICogYykgc3Vic2VxdWVudCBjaGFyYWN0ZXJzIChsb3dlcmNhc2UpICAgICAgICAgICAgICAgICBbdGl0bGVMaW1pdC4uaW5kZXhbCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKHByZXY8aW5kZXgpIHsKKyAgICAgICAgICAgICAgICAvKiBmaW5kIGFuZCBjb3B5IHVuY2FzZWQgY2hhcmFjdGVycyBbcHJldi4udGl0bGVTdGFydFsgKi8KKyAgICAgICAgICAgICAgICBpdGVyLnNldExpbWl0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB3aGlsZSgoYz1pdGVyLm5leHRDYXNlTWFwQ1AoKSk+PTAgJiYgVUNhc2VQcm9wcy5OT05FPT1nQ3NwLmdldFR5cGUoYykpIHt9CisgICAgICAgICAgICAgICAgdGl0bGVTdGFydD1pdGVyLmdldENQU3RhcnQoKTsKKyAgICAgICAgICAgICAgICBpZihwcmV2PHRpdGxlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogV2l0aCBKYXZhIDUsIHRoaXMgd291bGQgd2FudCB0byBiZSByZXN1bHQuYXBwZW5kKHN0ciwgcHJldiwgdGl0bGVTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyLnN1YnN0cmluZyhwcmV2LCB0aXRsZVN0YXJ0KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYodGl0bGVTdGFydDxpbmRleCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aXRsZWNhc2UgYyB3aGljaCBpcyBmcm9tIHRpdGxlU3RhcnQgKi8KKyAgICAgICAgICAgICAgICAgICAgYz1nQ3NwLnRvRnVsbFRpdGxlKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgYW5kIGxvd2VyY2FzZSB1cCB0byBpbmRleCAqLworICAgICAgICAgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChub3QpIG9yaWdpbmFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbWFwcGluZyBhbHJlYWR5IGFwcGVuZGVkIHRvIHJlc3VsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcHBlbmQgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYz1nQ3NwLnRvRnVsbExvd2VyKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcmV2PWluZGV4OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIG1hcHBlZCB0byBpdHMgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgYWNjb3JkaW5nIAorICAgICAqIHRvIFVuaWNvZGVEYXRhLnR4dCBhbmQgQ2FzZUZvbGRpbmcudHh0OyBpZiB0aGUgY2hhcmFjdGVyIGhhcyBubyBjYXNlIAorICAgICAqIGZvbGRpbmcgZXF1aXZhbGVudCwgdGhlIGNoYXJhY3RlciBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyB0aGUgc2ltcGxlLCBzaW5nbGUtY29kZSBwb2ludCBjYXNlIG1hcHBpbmcuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIHNob3VsZCBiZSB1c2VkIHdoZW5ldmVyIHBvc3NpYmxlIGJlY2F1c2UgdGhleSBwcm9kdWNlCisgICAgICogYmV0dGVyIHJlc3VsdHMgYnkgd29ya2luZyBvbiB3aG9sZSBzdHJpbmdzLgorICAgICAqIFRoZXkgY2FuIG1hcCB0byBhIHJlc3VsdCBzdHJpbmcgd2l0aCBhIGRpZmZlcmVudCBsZW5ndGggYXMgYXBwcm9wcmlhdGUuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIGFyZSBhcHBsaWVkIGJ5IHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zCisgICAgICogdGhhdCB0YWtlIFN0cmluZyBwYXJhbWV0ZXJzIHJhdGhlciB0aGFuIGNvZGUgcG9pbnRzIChpbnQpLgorICAgICAqIFNlZSBhbHNvIHRoZSBVc2VyIEd1aWRlIGNoYXB0ZXIgb24gQy9QT1NJWCBtaWdyYXRpb246CisgICAgICogaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3Bvc2l4Lmh0bWwjY2FzZV9tYXBwaW5ncworICAgICAqCisgICAgICogQHBhcmFtIGNoICAgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIGRlZmF1bHRtYXBwaW5nIEluZGljYXRlcyBpZiBhbGwgbWFwcGluZ3MgZGVmaW5lZCBpbiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgQ2FzZUZvbGRpbmcudHh0IGlzIHRvIGJlIHVzZWQsIG90aGVyd2lzZSB0aGUgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdzIGZvciBkb3R0ZWQgSSAgYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgJ0knIGluIENhc2VGb2xkaW5nLnR4dCB3aWxsIGJlIHNraXBwZWQuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgIHRoZSBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBvZiB0aGUgY2hhcmFjdGVyLCBpZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW55OyBvdGhlcndpc2UgdGhlIGNoYXJhY3RlciBpdHNlbGYuCisgICAgICogQHNlZSAgICAgICAgICAgICAgICAgICNmb2xkQ2FzZShTdHJpbmcsIGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZm9sZENhc2UoaW50IGNoLCBib29sZWFuIGRlZmF1bHRtYXBwaW5nKSB7CisgICAgICAgIHJldHVybiBmb2xkQ2FzZShjaCwgZGVmYXVsdG1hcHBpbmcgPyBGT0xEX0NBU0VfREVGQVVMVCA6IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIHN0cmluZyBpcyBtYXBwZWQgdG8gaXRzIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IGFjY29yZGluZyB0bworICAgICAqIFVuaWNvZGVEYXRhLnR4dCBhbmQgQ2FzZUZvbGRpbmcudHh0OyBpZiBhbnkgY2hhcmFjdGVyIGhhcyBubyBjYXNlIAorICAgICAqIGZvbGRpbmcgZXF1aXZhbGVudCwgdGhlIGNoYXJhY3RlciBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogIkZ1bGwiLCBtdWx0aXBsZS1jb2RlIHBvaW50IGNhc2UgZm9sZGluZyBtYXBwaW5ncyBhcmUgcmV0dXJuZWQgaGVyZS4KKyAgICAgKiBGb3IgInNpbXBsZSIgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZ3MgdXNlIHRoZSBBUEkgCisgICAgICogZm9sZENhc2UoaW50IGNoLCBib29sZWFuIGRlZmF1bHRtYXBwaW5nKS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICAgICAgICAgdGhlIFN0cmluZyB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gZGVmYXVsdG1hcHBpbmcgSW5kaWNhdGVzIGlmIGFsbCBtYXBwaW5ncyBkZWZpbmVkIGluIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBDYXNlRm9sZGluZy50eHQgaXMgdG8gYmUgdXNlZCwgb3RoZXJ3aXNlIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZ3MgZm9yIGRvdHRlZCBJIGFuZCBkb3RsZXNzIGkgbWFya2VkIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICdJJyBpbiBDYXNlRm9sZGluZy50eHQgd2lsbCBiZSBza2lwcGVkLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICB0aGUgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgb2YgdGhlIGNoYXJhY3RlciwgaWYgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFueTsgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorICAgICAqIEBzZWUgICAgICAgICAgICAgICAgICAjZm9sZENhc2UoaW50LCBib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvbGRDYXNlKFN0cmluZyBzdHIsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpIHsKKyAgICAgICAgcmV0dXJuIGZvbGRDYXNlKHN0ciwgZGVmYXVsdG1hcHBpbmcgPyBGT0xEX0NBU0VfREVGQVVMVCA6IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE9wdGlvbiB2YWx1ZSBmb3IgY2FzZSBmb2xkaW5nOiB1c2UgZGVmYXVsdCBtYXBwaW5ncyBkZWZpbmVkIGluIENhc2VGb2xkaW5nLnR4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfREVGQVVMVCAgICA9ICAgICAgMHgwMDAwOworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZzogZXhjbHVkZSB0aGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJIAorICAgICAqIGFuZCBkb3RsZXNzIGkgbWFya2VkIHdpdGggJ0knIGluIENhc2VGb2xkaW5nLnR4dC4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JID0gMHgwMDAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgbWFwcGVkIHRvIGl0cyBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBhY2NvcmRpbmcgCisgICAgICogdG8gVW5pY29kZURhdGEudHh0IGFuZCBDYXNlRm9sZGluZy50eHQ7IGlmIHRoZSBjaGFyYWN0ZXIgaGFzIG5vIGNhc2UgCisgICAgICogZm9sZGluZyBlcXVpdmFsZW50LCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSBjYW4gbWFwIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggICAgICAgICAgICAgdGhlIGNoYXJhY3RlciB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICAgICAgQSBiaXQgc2V0IGZvciBzcGVjaWFsIHByb2Nlc3NpbmcuIEN1cnJlbnRseSB0aGUgcmVjb2duaXNlZCBvcHRpb25zIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JIGFuZCBGT0xEX0NBU0VfREVGQVVMVCAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICAgdGhlIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IG9mIHRoZSBjaGFyYWN0ZXIsIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBhbnk7IG90aGVyd2lzZSB0aGUgY2hhcmFjdGVyIGl0c2VsZi4KKyAgICAgKiBAc2VlICNmb2xkQ2FzZShTdHJpbmcsIGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZm9sZENhc2UoaW50IGNoLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gZ0NzcC5mb2xkKGNoLCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIHN0cmluZyBpcyBtYXBwZWQgdG8gaXRzIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IGFjY29yZGluZyB0bworICAgICAqIFVuaWNvZGVEYXRhLnR4dCBhbmQgQ2FzZUZvbGRpbmcudHh0OyBpZiBhbnkgY2hhcmFjdGVyIGhhcyBubyBjYXNlIAorICAgICAqIGZvbGRpbmcgZXF1aXZhbGVudCwgdGhlIGNoYXJhY3RlciBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogIkZ1bGwiLCBtdWx0aXBsZS1jb2RlIHBvaW50IGNhc2UgZm9sZGluZyBtYXBwaW5ncyBhcmUgcmV0dXJuZWQgaGVyZS4KKyAgICAgKiBGb3IgInNpbXBsZSIgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZ3MgdXNlIHRoZSBBUEkgCisgICAgICogZm9sZENhc2UoaW50IGNoLCBib29sZWFuIGRlZmF1bHRtYXBwaW5nKS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICAgICAgICAgdGhlIFN0cmluZyB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICAgICAgQSBiaXQgc2V0IGZvciBzcGVjaWFsIHByb2Nlc3NpbmcuIEN1cnJlbnRseSB0aGUgcmVjb2duaXNlZCBvcHRpb25zIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JIGFuZCBGT0xEX0NBU0VfREVGQVVMVCAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICAgdGhlIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IG9mIHRoZSBjaGFyYWN0ZXIsIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBhbnk7IG90aGVyd2lzZSB0aGUgY2hhcmFjdGVyIGl0c2VsZi4KKyAgICAgKiBAc2VlICNmb2xkQ2FzZShpbnQsIGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZm9sZENhc2UoU3RyaW5nIHN0ciwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaW50IGMsIGksIGxlbmd0aDsKKworICAgICAgICBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGZvcihpPTA7IGk8bGVuZ3RoOykgeworICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgICAgIGkrPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIGM9Z0NzcC50b0Z1bGxGb2xkaW5nKGMsIHJlc3VsdCwgb3B0aW9ucyk7CisKKyAgICAgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgICAgICAvKiAobm90KSBvcmlnaW5hbCBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgYz1+YzsKKyAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLyogbWFwcGluZyBhbHJlYWR5IGFwcGVuZGVkIHRvIHJlc3VsdCAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLyogfSBlbHNlIHsgYXBwZW5kIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmcgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gbnVtZXJpYyB2YWx1ZSBvZiBIYW4gY29kZSBwb2ludHMuCisgICAgICogPGJyPiBUaGlzIHJldHVybnMgdGhlIHZhbHVlIG9mIEhhbiAnbnVtZXJpYycgY29kZSBwb2ludHMsCisgICAgICogaW5jbHVkaW5nIHRob3NlIGZvciB6ZXJvLCB0ZW4sIGh1bmRyZWQsIHRob3VzYW5kLCB0ZW4gdGhvdXNhbmQsCisgICAgICogYW5kIGh1bmRyZWQgbWlsbGlvbi4KKyAgICAgKiBUaGlzIGluY2x1ZGVzIGJvdGggdGhlIHN0YW5kYXJkIGFuZCAnY2hlY2t3cml0aW5nJworICAgICAqIGNoYXJhY3RlcnMsIHRoZSAnYmlnIGNpcmNsZScgemVybyBjaGFyYWN0ZXIsIGFuZCB0aGUgc3RhbmRhcmQKKyAgICAgKiB6ZXJvIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBxdWVyeQorICAgICAqIEByZXR1cm4gdmFsdWUgaWYgaXQgaXMgYSBIYW4gJ251bWVyaWMgY2hhcmFjdGVyLCcgb3RoZXJ3aXNlIHJldHVybiAtMS4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEhhbk51bWVyaWNWYWx1ZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBUT0RPOiBBcmUgdGhlc2UgYWxsIGNvdmVyZWQgYnkgVW5pY29kZSBudW1lcmljIHZhbHVlIGRhdGE/CisgICAgICAgIHN3aXRjaChjaCkKKyAgICAgICAgeworICAgICAgICBjYXNlIElERU9HUkFQSElDX05VTUJFUl9aRVJPXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1pFUk9fIDoKKyAgICAgICAgcmV0dXJuIDA7IC8vIEhhbiBaZXJvCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9GSVJTVF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9PTkVfIDoKKyAgICAgICAgcmV0dXJuIDE7IC8vIEhhbiBPbmUKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1NFQ09ORF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9UV09fIDoKKyAgICAgICAgcmV0dXJuIDI7IC8vIEhhbiBUd28KKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1RISVJEXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RIUkVFXyA6CisgICAgICAgIHJldHVybiAzOyAvLyBIYW4gVGhyZWUKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0ZPVVJUSF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9GT1VSXyA6CisgICAgICAgIHJldHVybiA0OyAvLyBIYW4gRm91cgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRklGVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfRklWRV8gOgorICAgICAgICByZXR1cm4gNTsgLy8gSGFuIEZpdmUKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1NJWFRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NJWF8gOgorICAgICAgICByZXR1cm4gNjsgLy8gSGFuIFNpeAorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfU0VWRU5USF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9TRVZFTl8gOgorICAgICAgICByZXR1cm4gNzsgLy8gSGFuIFNldmVuCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9FSUdIVEhfIDogCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0VJR0hUXyA6CisgICAgICAgIHJldHVybiA4OyAvLyBIYW4gRWlnaHQKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX05JTkVUSF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9OSU5FXyA6CisgICAgICAgIHJldHVybiA5OyAvLyBIYW4gTmluZQorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfVEVOXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RFTl8gOgorICAgICAgICByZXR1cm4gMTA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9IVU5EUkVEXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0hVTkRSRURfIDoKKyAgICAgICAgcmV0dXJuIDEwMDsKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1RIT1VTQU5EXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RIT1VTQU5EXyA6CisgICAgICAgIHJldHVybiAxMDAwOworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfVEVOX1RIT1VTQU5EXyA6CisgICAgICAgIHJldHVybiAxMDAwMDsKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0hVTkRSRURfTUlMTElPTl8gOgorICAgICAgICByZXR1cm4gMTAwMDAwMDAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsgLy8gbm8gdmFsdWUKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIHR5cGVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgICogPHByZT4KKyAgICAgKiBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAqIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuc3RhcnQpICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGNvZGVwb2ludCBcXHUiICsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5saW1pdCAtIDEpICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIHR5cGUgIiArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSk7CisgICAgICogfQorICAgICAqIDwvcHJlPgorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3IgCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSYW5nZVZhbHVlSXRlcmF0b3IgZ2V0VHlwZUl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3RlclR5cGVJdGVyYXRvcihQUk9QRVJUWV8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldHMgYW4gaXRlcmF0b3IgZm9yIGNoYXJhY3RlciBuYW1lcywgaXRlcmF0aW5nIG92ZXIgY29kZXBvaW50cy48L3A+CisgICAgICogPHA+VGhpcyBBUEkgb25seSBnZXRzIHRoZSBpdGVyYXRvciBmb3IgdGhlIG1vZGVybiwgbW9zdCB1cC10by1kYXRlIAorICAgICAqIFVuaWNvZGUgbmFtZXMuIEZvciBvbGRlciAxLjAgVW5pY29kZSBuYW1lcyB1c2UgZ2V0MV8wTmFtZUl0ZXJhdG9yKCkgb3IKKyAgICAgKiBmb3IgZXh0ZW5kZWQgbmFtZXMgdXNlIGdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCkuPC9wPgorICAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAgKiA8cHJlPgorICAgICAqIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldE5hbWVJdGVyYXRvcigpOworICAgICAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAqIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5jb2RlcG9pbnQpICsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBuYW1lICIgKyAoU3RyaW5nKWVsZW1lbnQudmFsdWUpOworICAgICAqIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8cD5UaGUgbWF4aW1hbCByYW5nZSB3aGljaCB0aGUgbmFtZSBpdGVyYXRvciBpdGVyYXRlcyBpcyBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIHRvIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFLjwvcD4KKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmFsdWVJdGVyYXRvciBnZXROYW1lSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoTkFNRV8sCisgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgbmFtZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIG9ubHkgZ2V0cyB0aGUgaXRlcmF0b3IgZm9yIHRoZSBvbGRlciAxLjAgVW5pY29kZSBuYW1lcy4gCisgICAgICogRm9yIG1vZGVybiwgbW9zdCB1cC10by1kYXRlIFVuaWNvZGUgbmFtZXMgdXNlIGdldE5hbWVJdGVyYXRvcigpIG9yCisgICAgICogZm9yIGV4dGVuZGVkIG5hbWVzIHVzZSBnZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpLjwvcD4KKyAgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgICogPHByZT4KKyAgICAgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXQxXzBOYW1lSXRlcmF0b3IoKTsKKyAgICAgKiBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuY29kZXBvaW50KSArCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgbmFtZSAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgKiB9CisgICAgICogPC9wcmU+CisgICAgICogPHA+VGhlIG1heGltYWwgcmFuZ2Ugd2hpY2ggdGhlIG5hbWUgaXRlcmF0b3IgaXRlcmF0ZXMgaXMgZnJvbSAKKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmFsdWVJdGVyYXRvciBnZXROYW1lMV8wSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoTkFNRV8sCisgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgbmFtZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIG9ubHkgZ2V0cyB0aGUgaXRlcmF0b3IgZm9yIHRoZSBleHRlbmRlZCBuYW1lcy4gCisgICAgICogRm9yIG1vZGVybiwgbW9zdCB1cC10by1kYXRlIFVuaWNvZGUgbmFtZXMgdXNlIGdldE5hbWVJdGVyYXRvcigpIG9yCisgICAgICogZm9yIG9sZGVyIDEuMCBVbmljb2RlIG5hbWVzIHVzZSBnZXQxXzBOYW1lSXRlcmF0b3IoKS48L3A+CisgICAgICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICAgICAqIDxwcmU+CisgICAgICogVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKTsKKyAgICAgKiBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuY29kZXBvaW50KSArCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgbmFtZSAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgKiB9CisgICAgICogPC9wcmU+CisgICAgICogPHA+VGhlIG1heGltYWwgcmFuZ2Ugd2hpY2ggdGhlIG5hbWUgaXRlcmF0b3IgaXRlcmF0ZXMgaXMgZnJvbSAKKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmFsdWVJdGVyYXRvciBnZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yKE5BTUVfLAorICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgImFnZSIgb2YgdGhlIGNvZGUgcG9pbnQuPC9wPgorICAgICAqIDxwPlRoZSAiYWdlIiBpcyB0aGUgVW5pY29kZSB2ZXJzaW9uIHdoZW4gdGhlIGNvZGUgcG9pbnQgd2FzIGZpcnN0CisgICAgICogZGVzaWduYXRlZCAoYXMgYSBub24tY2hhcmFjdGVyIG9yIGZvciBQcml2YXRlIFVzZSkgb3IgYXNzaWduZWQgYSAKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogPHA+VGhpcyBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIGVtaXR0aW5nIGNvZGUgcG9pbnRzIHRvIHJlY2VpdmluZyAKKyAgICAgKiBwcm9jZXNzZXMgdGhhdCBkbyBub3QgYWNjZXB0IG5ld2VyIGNoYXJhY3RlcnMuPC9wPgorICAgICAqIDxwPlRoZSBkYXRhIGlzIGZyb20gdGhlIFVDRCBmaWxlIERlcml2ZWRBZ2UudHh0LjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggVGhlIGNvZGUgcG9pbnQuCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZSB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0QWdlKGludCBjaCkgCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldEFnZShjaCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGEgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgZm9yIGEgY29kZSBwb2ludC48L3A+IAorICAgICAqIDxwPlVuaWNvZGUsIGVzcGVjaWFsbHkgaW4gdmVyc2lvbiAzLjIsIGRlZmluZXMgbWFueSBtb3JlIHByb3BlcnRpZXMgCisgICAgICogdGhhbiB0aGUgb3JpZ2luYWwgc2V0IGluIFVuaWNvZGVEYXRhLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgaXMgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgZGVmaW5lZCBpbiAKKyAgICAgKiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UgKFVDRCkgYW5kIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydHMgCisgICAgICogKFVUUikuPC9wPgorICAgICAqIDxwPkZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSAKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPi48L3A+CisgICAgICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIAorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKyAgICAgKiA8cD5JbXBvcnRhbnQ6IElmIElDVSBpcyBidWlsdCB3aXRoIFVDRCBmaWxlcyBmcm9tIFVuaWNvZGUgdmVyc2lvbnMgCisgICAgICogYmVsb3cgMy4yLCB0aGVuIHByb3BlcnRpZXMgbWFya2VkIHdpdGggIm5ldyIgYXJlIG5vdCBvciAKKyAgICAgKiBub3QgZnVsbHkgYXZhaWxhYmxlLjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byB0ZXN0LgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudCBmcm9tIGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5LCAKKyAgICAgKiAgICAgICAgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgcHJvcGVydHkgdG8gY2hlY2suCisgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlIGFjY29yZGluZyB0byB0aGUgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgdmFsdWUgCisgICAgICogICAgICAgICBmb3IgY2guIEFsc28gZmFsc2UgaWYgcHJvcGVydHkgaXMgb3V0IG9mIGJvdW5kcyBvciBpZiB0aGUgCisgICAgICogICAgICAgICBVbmljb2RlIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBkYXRhIGZvciB0aGUgcHJvcGVydHkgYXQgYWxsLCBvciAKKyAgICAgKiAgICAgICAgIG5vdCBmb3IgdGhpcyBjb2RlIHBvaW50LgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaGFzQmluYXJ5UHJvcGVydHkoaW50IGNoLCBpbnQgcHJvcGVydHkpIAorICAgIHsKKyAgICBpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBwcm9wZXJ0eSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBBbHBoYWJldGljIFVuaWNvZGUgcHJvcGVydHkuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5BTFBIQUJFVElDKS48L3A+CisgICAgICogPHA+RGlmZmVyZW50IGZyb20gVUNoYXJhY3Rlci5pc0xldHRlcihjaCkhPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGJlIHRlc3RlZAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VBbHBoYWJldGljKGludCBjaCkKKyAgICB7CisgICAgcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuQUxQSEFCRVRJQyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgaWYgYSBjb2RlIHBvaW50IGhhcyB0aGUgTG93ZXJjYXNlIFVuaWNvZGUgcHJvcGVydHkuPC9wPgorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LkxPV0VSQ0FTRSkuPC9wPgorICAgICAqIDxwPlRoaXMgaXMgZGlmZmVyZW50IGZyb20gVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCkhPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVUxvd2VyY2FzZShpbnQgY2gpIAorICAgIHsKKyAgICByZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT1dFUkNBU0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGlmIGEgY29kZSBwb2ludCBoYXMgdGhlIFVwcGVyY2FzZSBVbmljb2RlIHByb3BlcnR5LjwvcD4KKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5VUFBFUkNBU0UpLjwvcD4KKyAgICAgKiA8cD5UaGlzIGlzIGRpZmZlcmVudCBmcm9tIFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoY2gpITwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGJlIHRlc3RlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VVcHBlcmNhc2UoaW50IGNoKSAKKyAgICB7CisgICAgcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuVVBQRVJDQVNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBXaGl0ZV9TcGFjZSBVbmljb2RlIHByb3BlcnR5LjwvcD4KKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSkuPC9wPgorICAgICAqIDxwPlRoaXMgaXMgZGlmZmVyZW50IGZyb20gYm90aCBVQ2hhcmFjdGVyLmlzU3BhY2UoY2gpIGFuZCAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCkhPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVVdoaXRlU3BhY2UoaW50IGNoKSAKKyAgICB7CisgICAgcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgZm9yIGFuIFVuaWNvZGUgcHJvcGVydHkgdHlwZSBvZiBhIGNvZGUgcG9pbnQuIAorICAgICAqIEFsc28gcmV0dXJucyBiaW5hcnkgYW5kIG1hc2sgcHJvcGVydHkgdmFsdWVzLjwvcD4KKyAgICAgKiA8cD5Vbmljb2RlLCBlc3BlY2lhbGx5IGluIHZlcnNpb24gMy4yLCBkZWZpbmVzIG1hbnkgbW9yZSBwcm9wZXJ0aWVzIHRoYW4gCisgICAgICogdGhlIG9yaWdpbmFsIHNldCBpbiBVbmljb2RlRGF0YS50eHQuPC9wPgorICAgICAqIDxwPlRoZSBwcm9wZXJ0aWVzIEFQSXMgYXJlIGludGVuZGVkIHRvIHJlZmxlY3QgVW5pY29kZSBwcm9wZXJ0aWVzIGFzIAorICAgICAqIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIChVQ0QpIGFuZCBVbmljb2RlIFRlY2huaWNhbCAKKyAgICAgKiBSZXBvcnRzIChVVFIpLiBGb3IgZGV0YWlscyBhYm91dCB0aGUgcHJvcGVydGllcyBzZWUgCisgICAgICogaHR0cDovL3d3dy51bmljb2RlLm9yZy8uPC9wPgorICAgICAqIDxwPkZvciBuYW1lcyBvZiBVbmljb2RlIHByb3BlcnRpZXMgc2VlIHRoZSBVQ0QgZmlsZSBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqIDwvcD4KKyAgICAgKiA8cHJlPgorICAgICAqIFNhbXBsZSB1c2FnZToKKyAgICAgKiBpbnQgZWEgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgpOworICAgICAqIGludCBpZGVvID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5JREVPR1JBUEhJQyk7CisgICAgICogYm9vbGVhbiBiID0gKGlkZW8gPT0gMSkgPyB0cnVlIDogZmFsc2U7IAorICAgICAqIDwvcHJlPgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIHRlc3QuCisgICAgICogQHBhcmFtIHR5cGUgVVByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50LCBpZGVudGlmaWVzIHdoaWNoIGJpbmFyeSAKKyAgICAgKiAgICAgICAgcHJvcGVydHkgdG8gY2hlY2suIE11c3QgYmUgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQgb3IgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5JTlRfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQgb3IgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5NQVNLX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuTUFTS19MSU1JVC4KKyAgICAgKiBAcmV0dXJuIG51bWVyaWMgdmFsdWUgdGhhdCBpcyBkaXJlY3RseSB0aGUgcHJvcGVydHkgdmFsdWUgb3IsCisgICAgICogICAgICAgICBmb3IgZW51bWVyYXRlZCBwcm9wZXJ0aWVzLCBjb3JyZXNwb25kcyB0byB0aGUgbnVtZXJpYyB2YWx1ZSBvZiAKKyAgICAgKiAgICAgICAgIHRoZSBlbnVtZXJhdGVkIGNvbnN0YW50IG9mIHRoZSByZXNwZWN0aXZlIHByb3BlcnR5IHZhbHVlIAorICAgICAqICAgICAgICAgZW51bWVyYXRpb24gdHlwZSAoY2FzdCB0byBlbnVtIHR5cGUgaWYgbmVjZXNzYXJ5KS4KKyAgICAgKiAgICAgICAgIFJldHVybnMgMCBvciAxIChmb3IgZmFsc2UgLyB0cnVlKSBmb3IgYmluYXJ5IFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiAgICAgICAgIFJldHVybnMgYSBiaXQtbWFzayBmb3IgbWFzayBwcm9wZXJ0aWVzLgorICAgICAqICAgICAgICAgUmV0dXJucyAwIGlmICd0eXBlJyBpcyBvdXQgb2YgYm91bmRzIG9yIGlmIHRoZSBVbmljb2RlIHZlcnNpb24KKyAgICAgKiAgICAgICAgIGRvZXMgbm90IGhhdmUgZGF0YSBmb3IgdGhlIHByb3BlcnR5IGF0IGFsbCwgb3Igbm90IGZvciB0aGlzIGNvZGUgCisgICAgICogICAgICAgICBwb2ludC4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEBzZWUgI2hhc0JpbmFyeVByb3BlcnR5CisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlNaW5WYWx1ZQorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5TWF4VmFsdWUKKyAgICAgKiBAc2VlICNnZXRVbmljb2RlVmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEludFByb3BlcnR5VmFsdWUoaW50IGNoLCBpbnQgdHlwZSkKKyAgICB7CisgICAgICAgIGlmICh0eXBlIDwgVVByb3BlcnR5LkJJTkFSWV9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHVuZGVmaW5lZAorICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgeworICAgICAgICAgICAgcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCB0eXBlKSA/IDEgOiAwOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHVuZGVmaW5lZAorICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgeworICAgICAgICAgICAgLy9pbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RGlyZWN0aW9uKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJMT0NLOgorICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlQmxvY2suaWRPZihjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBnZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAyKSAKKyAgICAgICAgICAgICYgREVDT01QT1NJVElPTl9UWVBFX01BU0tfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSDoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAwKQorICAgICAgICAgICAgJiBFQVNUX0FTSUFOX01BU0tfKSA+PiBFQVNUX0FTSUFOX1NISUZUXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19HUk9VUDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ0JkcC5nZXRKb2luaW5nR3JvdXAoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBnQmRwLmdldEpvaW5pbmdUeXBlKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxJTkVfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAwKSYgTElORV9CUkVBS19NQVNLXyk+PkxJTkVfQlJFQUtfU0hJRlRfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTlVNRVJJQ19UWVBFOgorICAgICAgICAgICAgICAgIHR5cGU9Z2V0TnVtZXJpY1R5cGUoUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKSk7CisgICAgICAgICAgICAgICAgaWYodHlwZT5OdW1lcmljVHlwZS5OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgaW50ZXJuYWwgdmFyaWFudHMgb2YgTnVtZXJpY1R5cGUuTlVNRVJJQyBmcm9tIGJlY29taW5nIHZpc2libGUgKi8KKyAgICAgICAgICAgICAgICAgICAgdHlwZT1OdW1lcmljVHlwZS5OVU1FUklDOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNDUklQVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gVVNjcmlwdC5nZXRTY3JpcHQoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEU6CisgICAgICAgIC8qIHB1cmVseSBhbGdvcml0aG1pYzsgaGFyZGNvZGUga25vd24gY2hhcmFjdGVycywgY2hlY2sgZm9yIGFzc2lnbmVkIG5ldyBvbmVzICovIAorICAgICAgICBpZihjaDxOb3JtYWxpemVySW1wbC5KQU1PX0xfQkFTRSkgeyAKKyAgICAgICAgICAgIC8qIE5BICovIAorICAgICAgICB9IGVsc2UgaWYoY2g8PTB4MTFmZikgeyAKKyAgICAgICAgICAgIC8qIEphbW8gcmFuZ2UgKi8gCisgICAgICAgICAgICBpZihjaDw9MHgxMTVmKSB7IAorICAgICAgICAgICAgLyogSmFtbyBMIHJhbmdlLCBIQU5HVUwgQ0hPU0VPTkcgLi4uICovIAorICAgICAgICAgICAgaWYoY2g9PTB4MTE1ZiB8fCBjaDw9MHgxMTU5IHx8IGdldFR5cGUoY2gpPT1VQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSB7IAorICAgICAgICAgICAgICAgIHJldHVybiBIYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1POyAKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IGVsc2UgaWYoY2g8PTB4MTFhNykgeyAKKyAgICAgICAgICAgIC8qIEphbW8gViByYW5nZSwgSEFOR1VMIEpVTkdTRU9ORyAuLi4gKi8gCisgICAgICAgICAgICBpZihjaDw9MHgxMWEyIHx8IGdldFR5cGUoY2gpPT1VQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSB7IAorICAgICAgICAgICAgICAgIHJldHVybiBIYW5ndWxTeWxsYWJsZVR5cGUuVk9XRUxfSkFNTzsgCisgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSBlbHNlIHsgCisgICAgICAgICAgICAvKiBKYW1vIFQgcmFuZ2UgKi8gCisgICAgICAgICAgICBpZihjaDw9MHgxMWY5IHx8IGdldFR5cGUoY2gpPT1VQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSB7IAorICAgICAgICAgICAgICAgIHJldHVybiBIYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTzsgCisgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSAKKyAgICAgICAgfSBlbHNlIGlmKChjaC09Tm9ybWFsaXplckltcGwuSEFOR1VMX0JBU0UpPDApIHsgCisgICAgICAgICAgICAvKiBOQSAqLyAKKyAgICAgICAgfSBlbHNlIGlmKGNoPE5vcm1hbGl6ZXJJbXBsLkhBTkdVTF9DT1VOVCkgeyAKKyAgICAgICAgICAgIC8qIEhhbmd1bCBzeWxsYWJsZSAqLyAKKyAgICAgICAgICAgIHJldHVybiBjaCVOb3JtYWxpemVySW1wbC5KQU1PX1RfQ09VTlQ9PTAgPyBIYW5ndWxTeWxsYWJsZVR5cGUuTFZfU1lMTEFCTEUgOiBIYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFOyAKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIDA7IC8qIE5BICovIAorCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZDX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwucXVpY2tDaGVjayhjaCwgKHR5cGUtVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSykrMik7IC8vIDI9VU5PUk1fTkZECisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKT4+ODsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRSQUlMX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKSYweGZmOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKGludCkoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDIpJiBHQ0JfTUFTSyk+PkdDQl9TSElGVDsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoaW50KShQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMikmIFNCX01BU0spPj5TQl9TSElGVDsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LldPUkRfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAyKSYgV0JfTUFTSyk+PldCX1NISUZUOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gMDsgLyogdW5kZWZpbmVkICovCisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldE1hc2soZ2V0VHlwZShjaCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOyAvLyB1bmRlZmluZWQKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyB2ZXJzaW9uIG9mIHRoZSBwcm9wZXJ0eSB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHlFbnVtCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBuYW1lQ2hvaWNlCisgICAgICogQHJldHVybiB2YWx1ZSBhcyBzdHJpbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdHJpbmdQcm9wZXJ0eVZhbHVlKGludCBwcm9wZXJ0eUVudW0sIGludCBjb2RlcG9pbnQsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIC8vIFRPRE8gc29tZSBvZiB0aGVzZSBhcmUgbGVzcyBlZmZpY2llbnQsIHNpbmNlIGEgc3RyaW5nIGlzIGZvcmNlZCEKKyAgICAgICAgaWYgKChwcm9wZXJ0eUVudW0gPj0gVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmJiBwcm9wZXJ0eUVudW0gPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB8fAorICAgICAgICAgICAgICAgIChwcm9wZXJ0eUVudW0gPj0gVVByb3BlcnR5LklOVF9TVEFSVCAmJiBwcm9wZXJ0eUVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSkgeworICAgICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BlcnR5RW51bSwgZ2V0SW50UHJvcGVydHlWYWx1ZShjb2RlcG9pbnQsIHByb3BlcnR5RW51bSksIG5hbWVDaG9pY2UpOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9wZXJ0eUVudW0gPT0gVVByb3BlcnR5Lk5VTUVSSUNfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLnZhbHVlT2YoZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjb2RlcG9pbnQpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBvdGhlcndpc2UgbXVzdCBiZSBzdHJpbmcgcHJvcGVydHkKKyAgICAgICAgc3dpdGNoIChwcm9wZXJ0eUVudW0pIHsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiByZXR1cm4gZ2V0QWdlKGNvZGVwb2ludCkudG9TdHJpbmcoKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuSVNPX0NPTU1FTlQ6IHJldHVybiBnZXRJU09Db21tZW50KGNvZGVwb2ludCk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfTUlSUk9SSU5HX0dMWVBIOiByZXR1cm4gVVRGMTYudmFsdWVPZihnZXRNaXJyb3IoY29kZXBvaW50KSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzogcmV0dXJuIGZvbGRDYXNlKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSwgdHJ1ZSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkxPV0VSQ0FTRV9NQVBQSU5HOiByZXR1cm4gdG9Mb3dlckNhc2UoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRTogcmV0dXJuIGdldE5hbWUoY29kZXBvaW50KTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoZm9sZENhc2UoY29kZXBvaW50LHRydWUpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZih0b0xvd2VyQ2FzZShjb2RlcG9pbnQpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZih0b1RpdGxlQ2FzZShjb2RlcG9pbnQpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZih0b1VwcGVyQ2FzZShjb2RlcG9pbnQpKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuVElUTEVDQVNFX01BUFBJTkc6IHJldHVybiB0b1RpdGxlQ2FzZShVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCksbnVsbCk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOiByZXR1cm4gZ2V0TmFtZTFfMChjb2RlcG9pbnQpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0VfTUFQUElORzogcmV0dXJuIHRvVXBwZXJDYXNlKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSk7ICAgICAgICAKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIFByb3BlcnR5IEVudW0iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtaW5pbXVtIHZhbHVlIGZvciBhbiBpbnRlZ2VyL2JpbmFyeSBVbmljb2RlIHByb3BlcnR5IHR5cGUuCisgICAgICogQ2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoaW50KQorICAgICAqIHRvIGFsbG9jYXRlIGFycmF5cyBvZiBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQgb3Igc2ltaWxhci4KKyAgICAgKiBAcGFyYW0gdHlwZSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQsIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IAorICAgICAqICAgICAgICBwcm9wZXJ0eSB0byBjaGVjay4gTXVzdCBiZSAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LkJJTkFSWV9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvciAKKyAgICAgKiAgICAgICAgVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5LklOVF9MSU1JVC4KKyAgICAgKiBAcmV0dXJuIE1pbmltdW0gdmFsdWUgcmV0dXJuZWQgYnkgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGludCkgCisgICAgICogICAgICAgICBmb3IgYSBVbmljb2RlIHByb3BlcnR5LiAwIGlmIHRoZSBwcm9wZXJ0eSAKKyAgICAgKiAgICAgICAgIHNlbGVjdG9yICd0eXBlJyBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc2VlICNoYXNCaW5hcnlQcm9wZXJ0eQorICAgICAqIEBzZWUgI2dldFVuaWNvZGVWZXJzaW9uCisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlNYXhWYWx1ZQorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5VmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRJbnRQcm9wZXJ0eU1pblZhbHVlKGludCB0eXBlKQorICAgIHsKKworICAgICAgICByZXR1cm4gMDsgLy8gdW5kZWZpbmVkOyBhbmQ6IGFsbCBvdGhlciBwcm9wZXJ0aWVzIGhhdmUgYSBtaW5pbXVtIHZhbHVlIAorICAgIC8vIG9mIDAKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1heGltdW0gdmFsdWUgZm9yIGFuIGludGVnZXIvYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkuCisgICAgICogQ2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoaW50KQorICAgICAqIHRvIGFsbG9jYXRlIGFycmF5cyBvZiBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQgb3Igc2ltaWxhci4KKyAgICAgKiBFeGFtcGxlcyBmb3IgbWluL21heCB2YWx1ZXMgKGZvciBVbmljb2RlIDMuMik6CisgICAgICogPHVsPgorICAgICAqIDxsaT4gVVByb3BlcnR5LkJJRElfQ0xBU1M6ICAgIDAvMTggKFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVC9VQ2hhcmFjdGVyRGlyZWN0aW9uLkJPVU5EQVJZX05FVVRSQUwpCisgICAgICogPGxpPiBVUHJvcGVydHkuU0NSSVBUOiAgICAgICAgMC80NSAoVVNjcmlwdC5DT01NT04vVVNjcmlwdC5UQUdCQU5XQSkKKyAgICAgKiA8bGk+IFVQcm9wZXJ0eS5JREVPR1JBUEhJQzogICAwLzEgIChmYWxzZS90cnVlKQorICAgICAqIDwvdWw+CisgICAgICogRm9yIHVuZGVmaW5lZCBVUHJvcGVydHkgY29uc3RhbnQgdmFsdWVzLCBtaW4vbWF4IHZhbHVlcyB3aWxsIGJlIDAvLTEuCisgICAgICogQHBhcmFtIHR5cGUgVVByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50LCBpZGVudGlmaWVzIHdoaWNoIGJpbmFyeSAKKyAgICAgKiAgICAgICAgcHJvcGVydHkgdG8gY2hlY2suIE11c3QgYmUgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQgb3IgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5JTlRfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQuCisgICAgICogQHJldHVybiBNYXhpbXVtIHZhbHVlIHJldHVybmVkIGJ5IHVfZ2V0SW50UHJvcGVydHlWYWx1ZSBmb3IgYSBVbmljb2RlIAorICAgICAqICAgICAgICAgcHJvcGVydHkuICZsdDs9IDAgaWYgdGhlIHByb3BlcnR5IHNlbGVjdG9yICd0eXBlJyBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc2VlICNoYXNCaW5hcnlQcm9wZXJ0eQorICAgICAqIEBzZWUgI2dldFVuaWNvZGVWZXJzaW9uCisgICAgICogQHNlZSAjZ2V0SW50UHJvcGVydHlNYXhWYWx1ZQorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5VmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRJbnRQcm9wZXJ0eU1heFZhbHVlKGludCB0eXBlKQorICAgIHsgCisgICAgICAgIGlmICh0eXBlIDwgVVByb3BlcnR5LkJJTkFSWV9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvLyB1bmRlZmluZWQKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHsKKyAgICAgICAgICAgIHJldHVybiAxOyAvLyBtYXhpbXVtIFRSVUUgZm9yIGFsbCBiaW5hcnkgcHJvcGVydGllcworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICh0eXBlIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOyAvLyB1bmRlZmluZWQKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVA6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdCZHAuZ2V0TWF4VmFsdWUodHlwZSk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CTE9DSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMCkgJiBCTE9DS19NQVNLXykgPj4gQkxPQ0tfU0hJRlRfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRSQUlMX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICAgICAgcmV0dXJuIDB4ZmY7IC8vIFRPRE8gZG8gd2UgbmVlZCB0byBiZSBtb3JlIHByZWNpc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHRoZSBhY3R1YWwgbWF4aW11bT8KKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldE1heFZhbHVlcygyKSAmIERFQ09NUE9TSVRJT05fVFlQRV9NQVNLXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEg6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDApICYgRUFTVF9BU0lBTl9NQVNLXykgPj4gRUFTVF9BU0lBTl9TSElGVF87CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZOgorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVCAtIDE7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MSU5FX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygwKSAmIExJTkVfQlJFQUtfTUFTS18pID4+IExJTkVfQlJFQUtfU0hJRlRfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTlVNRVJJQ19UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBOdW1lcmljVHlwZS5DT1VOVCAtIDE7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TQ1JJUFQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMCkgJiBTQ1JJUFRfTUFTS187ICAgCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFuZ3VsU3lsbGFibGVUeXBlLkNPVU5ULTE7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgICAgIHJldHVybiAxOyAvLyBZRVMgLS0gdGhlc2UgYXJlIG5ldmVyICJtYXliZSIsIG9ubHkgIm5vIiBvciAieWVzIgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZDX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsgLy8gTUFZQkUKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDIpICYgR0NCX01BU0spID4+IEdDQl9TSElGVDsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygyKSAmIFNCX01BU0spID4+IFNCX1NISUZUOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuV09SRF9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMikgJiBXQl9NQVNLKSA+PiBXQl9TSElGVDsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOyAvLyB1bmRlZmluZWQKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsgLy8gdW5kZWZpbmVkCisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvdmlkZSB0aGUgamF2YS5sYW5nLkNoYXJhY3RlciBmb3JEaWdpdCBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZm9yRGlnaXQoaW50IGRpZ2l0LCBpbnQgcmFkaXgpIHsKKyAgICAgICAgcmV0dXJuIGphdmEubGFuZy5DaGFyYWN0ZXIuZm9yRGlnaXQoZGlnaXQsIHJhZGl4KTsKKyAgICB9CisKKyAgICAvLyBKREsgMS41IEFQSSBjb3ZlcmFnZQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUlOX0hJR0hfU1VSUk9HQVRFID0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUFYX0hJR0hfU1VSUk9HQVRFID0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1JTl9MT1dfU1VSUk9HQVRFID0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNQVhfTE9XX1NVUlJPR0FURSA9IFVURjE2LlRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUlOX1NVUlJPR0FURSA9IFVURjE2LlNVUlJPR0FURV9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I1NVUlJPR0FURV9NQVhfVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUFYX1NVUlJPR0FURSA9IFVURjE2LlNVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I1NVUFBMRU1FTlRBUllfTUlOX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIE1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQgPSBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjQ09ERVBPSU5UX01BWF9WQUxVRQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBNQVhfQ09ERV9QT0lOVCA9IFVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I0NPREVQT0lOVF9NSU5fVkFMVUUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgTUlOX0NPREVfUE9JTlQgPSBVVEYxNi5DT0RFUE9JTlRfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNwIGlzIGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1ZhbGlkQ29kZVBvaW50KGludCBjcCkgeworICAgICAgICByZXR1cm4gY3AgPj0gMCAmJiBjcCA8PSBNQVhfQ09ERV9QT0lOVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY3AgaXMgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KGludCBjcCkgeworICAgICAgICByZXR1cm4gY3AgPj0gVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUKKyAgICAgICAgICAgICYmIGNwIDw9IFVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHBhcmFtIGNoIHRoZSBjaGFyIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGEgaGlnaCAobGVhZCkgc3Vycm9nYXRlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSGlnaFN1cnJvZ2F0ZShjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY2hhciB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBhIGxvdyAodHJhaWwpIHN1cnJvZ2F0ZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xvd1N1cnJvZ2F0ZShjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSBNSU5fTE9XX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfTE9XX1NVUlJPR0FURTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0cnVlIGlmIHRoZSBjaGFycworICAgICAqIGZvcm0gYSB2YWxpZCBzdXJyb2dhdGUgcGFpci4KKyAgICAgKiBAcGFyYW0gaGlnaCB0aGUgaGlnaCAobGVhZCkgY2hhcgorICAgICAqIEBwYXJhbSBsb3cgdGhlIGxvdyAodHJhaWwpIGNoYXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgaGlnaCwgbG93IGZvcm0gYSBzdXJyb2dhdGUgcGFpcgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1N1cnJvZ2F0ZVBhaXIoY2hhciBoaWdoLCBjaGFyIGxvdykgeworICAgICAgICByZXR1cm4gaXNIaWdoU3Vycm9nYXRlKGhpZ2gpICYmIGlzTG93U3Vycm9nYXRlKGxvdyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyBuZWVkZWQKKyAgICAgKiB0byByZXByZXNlbnQgdGhlIGNvZGUgcG9pbnQuICBUaGlzIGRvZXMgbm90IGNoZWNrIHRoZQorICAgICAqIGNvZGUgcG9pbnQgZm9yIHZhbGlkaXR5LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjaGVjaworICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyBuZWVkZWQgdG8gcmVwcmVzZW50IHRoZSBjb2RlIHBvaW50CisgICAgICogQHNlZSBVVEYxNiNnZXRDaGFyQ291bnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQ291bnQoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIGNoYXJhY3RlcnMuICBUaGlzIGRvZXMgbm90IGNoZWNrIHRoZSBzdXJyb2dhdGUgcGFpciBmb3IgdmFsaWRpdHkuCisgICAgICogQHBhcmFtIGhpZ2ggdGhlIGhpZ2ggKGxlYWQpIHN1cnJvZ2F0ZQorICAgICAqIEBwYXJhbSBsb3cgdGhlIGxvdyAodHJhaWwpIHN1cnJvZ2F0ZQorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgZm9ybWVkIGJ5IHRoZSBzdXJyb2dhdGUgcGFpcgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHRvQ29kZVBvaW50KGNoYXIgaGlnaCwgY2hhciBsb3cpIHsKKyAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGhpZ2gsIGxvdyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleCBhbmQgaW5kZXgrMS4KKyAgICAgKiBAcGFyYW0gc2VxIHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IHRoZSBpbmRleAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRBdChDaGFyU2VxdWVuY2Ugc2VxLCBpbnQgaW5kZXgpIHsKKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QXQoU3RyaW5nIHNlcSwgaW50IGluZGV4KSB7CisvLyNlbmRpZgorICAgICAgICBjaGFyIGMxID0gc2VxLmNoYXJBdChpbmRleCsrKTsKKyAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA8IHNlcS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNoYXIgYzIgPSBzZXEuY2hhckF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMb3dTdXJyb2dhdGUoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzE7CisgICAgfQorLy8jaWZkZWYgRk9VTkRBVElPTgorLy8jIyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRBdChTdHJpbmdCdWZmZXIgc2VxLCBpbnQgaW5kZXgpIHsKKy8vIyMgICAgICAgIHJldHVybiBjb2RlUG9pbnRBdChzZXEudG9TdHJpbmcoKSwgaW5kZXgpOworLy8jIyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleCBhbmQgaW5kZXgrMS4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9yIG9ubHkgY2hhciBmb3JtaW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBhdCB0aGUgaW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRBdChjaGFyW10gdGV4dCwgaW50IGluZGV4KSB7CisgICAgICAgIGNoYXIgYzEgPSB0ZXh0W2luZGV4KytdOworICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgaWYgKGluZGV4IDwgdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMyID0gdGV4dFtpbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXggYW5kIGluZGV4KzEuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHZhbGlkIHRleHQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IHRoZSBpbmRleAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEF0KGNoYXJbXSB0ZXh0LCBpbnQgaW5kZXgsIGludCBsaW1pdCkgeworICAgIGlmIChpbmRleCA+PSBsaW1pdCB8fCBsaW1pdCA+IHRleHQubGVuZ3RoKSB7CisgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgfQorICAgICAgICBjaGFyIGMxID0gdGV4dFtpbmRleCsrXTsKKyAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjMiA9IHRleHRbaW5kZXhdOworICAgICAgICAgICAgICAgIGlmIChpc0xvd1N1cnJvZ2F0ZShjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgaW5kZXguCisgICAgICogPGJyLz48Yj5Ob3RlPC9iPjogdGhlIHNlbWFudGljcyBvZiB0aGlzIEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVsYXRlZCBVVEYxNgorICAgICAqIEFQSS4gIFRoaXMgZXhhbWluZXMgb25seSB0aGUgY2hhcmFjdGVycyBhdCBpbmRleC0xIGFuZCBpbmRleC0yLgorICAgICAqIEBwYXJhbSBzZXEgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IG9yIG9ubHkgY2hhciBmb3JtaW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgdGhlIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEJlZm9yZShDaGFyU2VxdWVuY2Ugc2VxLCBpbnQgaW5kZXgpIHsKKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QmVmb3JlKFN0cmluZyBzZXEsIGludCBpbmRleCkgeworLy8jZW5kaWYKKyAgICAgICAgY2hhciBjMiA9IHNlcS5jaGFyQXQoLS1pbmRleCk7CisgICAgICAgIGlmIChpc0xvd1N1cnJvZ2F0ZShjMikpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMxID0gc2VxLmNoYXJBdCgtLWluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMyOworICAgIH0KKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QmVmb3JlKFN0cmluZ0J1ZmZlciBzZXEsIGludCBpbmRleCkgeworLy8jIyAgICAgICAgcmV0dXJuIGNvZGVQb2ludEJlZm9yZShzZXEudG9TdHJpbmcoKSwgaW5kZXgpOworLy8jIyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYmVmb3JlIGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXgtMSBhbmQgaW5kZXgtMi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgaW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoY2hhcltdIHRleHQsIGludCBpbmRleCkgeworICAgICAgICBjaGFyIGMyID0gdGV4dFstLWluZGV4XTsKKyAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgYzEgPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICAgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYmVmb3JlIGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXgtMSBhbmQgaW5kZXgtMi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIHN0YXJ0IG9mIHRoZSB2YWxpZCB0ZXh0CisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgdGhlIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QmVmb3JlKGNoYXJbXSB0ZXh0LCBpbnQgaW5kZXgsIGludCBsaW1pdCkgeworICAgIGlmIChpbmRleCA8PSBsaW1pdCB8fCBsaW1pdCA8IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICB9CisgICAgICAgIGNoYXIgYzIgPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICBpZiAoaXNMb3dTdXJyb2dhdGUoYzIpKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiBsaW1pdCkgeworICAgICAgICAgICAgICAgIGNoYXIgYzEgPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICAgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBXcml0ZXMgdGhlIGNoYXJzIHJlcHJlc2VudGluZyB0aGUKKyAgICAgKiBjb2RlIHBvaW50IGludG8gdGhlIGRlc3RpbmF0aW9uIGF0IHRoZSBnaXZlbiBpbmRleC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY29udmVydAorICAgICAqIEBwYXJhbSBkc3QgdGhlIGRlc3RpbmF0aW9uIGFycmF5IGludG8gd2hpY2ggdG8gcHV0IHRoZSBjaGFyKHMpIHJlcHJlc2VudGluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBkc3RJbmRleCB0aGUgaW5kZXggYXQgd2hpY2ggdG8gcHV0IHRoZSBmaXJzdCAob3Igb25seSkgY2hhcgorICAgICAqIEByZXR1cm4gdGhlIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgY2hhcnMgd3JpdHRlbiAoMSBvciAyKQorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGNwIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCB0b0NoYXJzKGludCBjcCwgY2hhcltdIGRzdCwgaW50IGRzdEluZGV4KSB7CisgICAgICAgIGlmIChjcCA+PSAwKSB7CisgICAgICAgICAgICBpZiAoY3AgPCBNSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UKSB7CisgICAgICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IChjaGFyKWNwOworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNwIDw9IE1BWF9DT0RFX1BPSU5UKSB7CisgICAgICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApOworICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleCsxXSA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm5zIGEgY2hhciBhcnJheQorICAgICAqIHJlcHJlc2VudGluZyB0aGUgY29kZSBwb2ludC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY29udmVydAorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgY2hhcihzKSByZXByZXNlbnRpbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBjcCBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyW10gdG9DaGFycyhpbnQgY3ApIHsKKyAgICAgICAgaWYgKGNwID49IDApIHsKKyAgICAgICAgICAgIGlmIChjcCA8IE1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGNoYXJbXSB7IChjaGFyKWNwIH07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPD0gTUFYX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApLAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIGEgYnl0ZSByZXByZXNlbnRpbmcgdGhlIGRpcmVjdGlvbmFsaXR5IG9mCisgICAgICogdGhlIGNoYXJhY3Rlci4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiBVbmxpa2UgdGhlIEpESywgdGhpcyByZXR1cm5zIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFQgZm9yIHVuZGVmaW5lZCBvcgorICAgICAqIG91dC1vZi1ib3VuZHMgY2hhcmFjdGVycy4gIDxici8+PGI+Tm90ZTwvYj46IFRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAqIHRlc3RlZCB1c2luZyB0aGUgY29uc3RhbnRzIGRlZmluZWQgaW4ge0BsaW5rIFVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyRGlyZWN0aW9ufQorICAgICAqIHNpbmNlIHRoZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBvbmVzIGRlZmluZWQgYnkgPGNvZGU+amF2YS5sYW5nLkNoYXJhY3RlcjwvY29kZT4uCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0aGUgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAc2VlICNnZXREaXJlY3Rpb24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgZ2V0RGlyZWN0aW9uYWxpdHkoaW50IGNwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChieXRlKWdldERpcmVjdGlvbihjcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyBBUEksIGZvciBjb252ZW5pZW5jZS4gIENvdW50IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlIG9mIHRleHQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb2RlUG9pbnRDb3VudChDaGFyU2VxdWVuY2UgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIHN0YXRpYyBpbnQgY29kZVBvaW50Q291bnQoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisvLyNlbmRpZgorICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0IDwgc3RhcnQgfHwgbGltaXQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigic3RhcnQgKCIgKyBzdGFydCArCisgICAgICAgICAgICAgICAgIikgb3IgbGltaXQgKCIgKyBsaW1pdCArCisgICAgICAgICAgICAgICAgIikgaW52YWxpZCBvciBvdXQgb2YgcmFuZ2UgMCwgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIHdoaWxlIChsaW1pdCA+IHN0YXJ0KSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5jaGFyQXQoLS1saW1pdCk7CisgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgbGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgIGNoID0gdGV4dC5jaGFyQXQoLS1saW1pdCk7CisgICAgICAgICAgICAgICAgaWYgKGNoID49IE1JTl9ISUdIX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfSElHSF9TVVJST0dBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1sZW47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgQVBJLCBmb3IgY29udmVuaWVuY2UuICBDb3VudCB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSByYW5nZSBvZiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZQorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb2RlUG9pbnRDb3VudChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBsaW1pdCA8IHN0YXJ0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJzdGFydCAoIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIGxpbWl0ICgiICsgbGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgaW52YWxpZCBvciBvdXQgb2YgcmFuZ2UgMCwgIiArIHRleHQubGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB3aGlsZSAobGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHRbLS1saW1pdF07CisgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgbGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgIGNoID0gdGV4dFstLWxpbWl0XTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPj0gTUlOX0hJR0hfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAtLWxlbjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyBBUEksIGZvciBjb252ZW5pZW5jZS4gIEFkanVzdCB0aGUgY2hhciBpbmRleCBieSBhIGNvZGUgcG9pbnQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB0byBhZGp1c3QKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50T2Zmc2V0IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgYnkgd2hpY2ggdG8gb2Zmc2V0IHRoZSBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIGFkanVzdGVkIGluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIHB1YmxpYyBzdGF0aWMgaW50IG9mZnNldEJ5Q29kZVBvaW50cyhDaGFyU2VxdWVuY2UgdGV4dCwgaW50IGluZGV4LCBpbnQgY29kZVBvaW50T2Zmc2V0KSB7CisvLyNlbHNlCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgaW50IG9mZnNldEJ5Q29kZVBvaW50cyhTdHJpbmcgdGV4dCwgaW50IGluZGV4LCBpbnQgY29kZVBvaW50T2Zmc2V0KSB7CisvLyNlbmRpZgorICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImluZGV4ICggIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG91dCBvZiByYW5nZSAwLCAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29kZVBvaW50T2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgd2hpbGUgKCsrY29kZVBvaW50T2Zmc2V0IDw9IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5jaGFyQXQoLS1pbmRleCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNoID49IE1JTl9MT1dfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9MT1dfU1VSUk9HQVRFICYmIGluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhckF0KC0taW5kZXgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPCBNSU5fSElHSF9TVVJST0dBVEUgfHwgY2ggPiBNQVhfSElHSF9TVVJST0dBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2NvZGVQb2ludE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGlsZSAoLS1jb2RlUG9pbnRPZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmNoYXJBdChpbmRleCsrKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0hJR0hfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9ISUdIX1NVUlJPR0FURSAmJiBpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dC5jaGFyQXQoaW5kZXgrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IE1JTl9MT1dfU1VSUk9HQVRFIHx8IGNoID4gTUFYX0xPV19TVVJST0dBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWNvZGVQb2ludE9mZnNldCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgQWRqdXN0IHRoZSBjaGFyIGluZGV4IGJ5IGEgY29kZSBwb2ludCBvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSB0byBjaGVjaworICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbGVuZ3RoIG9mIHRoZSByYW5nZSB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggdG8gYWRqdXN0CisgICAgICogQHBhcmFtIGNvZGVQb2ludE9mZnNldCB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGJ5IHdoaWNoIHRvIG9mZnNldCB0aGUgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHRoZSBhZGp1c3RlZCBpbmRleAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG9mZnNldEJ5Q29kZVBvaW50cyhjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgY291bnQsIGludCBpbmRleCwgaW50IGNvZGVQb2ludE9mZnNldCkgeworICAgICAgICBpbnQgbGltaXQgPSBzdGFydCArIGNvdW50OworICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0IDwgc3RhcnQgfHwgbGltaXQgPiB0ZXh0Lmxlbmd0aCB8fCBpbmRleCA8IHN0YXJ0IHx8IGluZGV4ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJpbmRleCAoICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBvdXQgb2YgcmFuZ2UgIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIgKyBsaW1pdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIGFycmF5IDAsICIgKyB0ZXh0Lmxlbmd0aCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29kZVBvaW50T2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgd2hpbGUgKCsrY29kZVBvaW50T2Zmc2V0IDw9IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFstLWluZGV4XTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXggKCAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSA8IHN0YXJ0ICgiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgaW5kZXggPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHRleHRbLS1pbmRleF07CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IE1JTl9ISUdIX1NVUlJPR0FURSB8fCBjaCA+IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrY29kZVBvaW50T2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCsxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKC0tY29kZVBvaW50T2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFtpbmRleCsrXTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXggKCAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSA+IGxpbWl0ICgiICsgbGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0hJR0hfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9ISUdIX1NVUlJPR0FURSAmJiBpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dFtpbmRleCsrXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgTUlOX0xPV19TVVJST0dBVEUgfHwgY2ggPiBNQVhfTE9XX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0tY29kZVBvaW50T2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRhYmFzZSBzdG9yaW5nIHRoZSBzZXRzIG9mIGNoYXJhY3RlciBuYW1lCisgICAgICovCisgICAgc3RhdGljIFVDaGFyYWN0ZXJOYW1lIE5BTUVfID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNpbmdsZXRvbiBvYmplY3QgZW5jYXBzdWxhdGluZyB0aGUgaW1wb3J0ZWQgcG5hbWVzLmljdSBwcm9wZXJ0eSBhbGlhc2VzCisgICAgICovCisgICAgc3RhdGljIFVQcm9wZXJ0eUFsaWFzZXMgUE5BTUVTXyA9IG51bGw7CisgICAgICAKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIG5hbWUgZGF0YWJhc2UgYW5kIHVuaWNvZGUgMS4wIGRhdGEgCisgICAgc3RhdGljIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFBOQU1FU18gPSBuZXcgVVByb3BlcnR5QWxpYXNlcygpOworICAgICAgICAgICAgTkFNRV8gPSBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgICAgICAvL3Rocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIC8vIERPTk9UIHRocm93IGFuIGV4Y2VwdGlvbgorICAgICAgICAgICAgLy8gd2UgbWlnaHQgYmUgYnVpbGRpbmcgSUNVIG1vZHVsYXJseSB3b3Rob3V0IG5hbWVzLmljdSBhbmQKKyAgICAgICAgICAgIC8vIHBuYW1lcy5pY3UKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIERhdGFiYXNlIHN0b3JpbmcgdGhlIHNldHMgb2YgY2hhcmFjdGVyIHByb3BlcnR5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUNoYXJhY3RlclByb3BlcnR5IFBST1BFUlRZXzsKKyAgICAvKioKKyAgICAgKiBGb3Igb3B0aW1pemF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIFBST1BFUlRZX1RSSUVfSU5ERVhfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBQUk9QRVJUWV9UUklFX0RBVEFfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQUk9QRVJUWV9JTklUSUFMX1ZBTFVFXzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVDYXNlUHJvcHMgZ0NzcDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQmlEaVByb3BzIGdCZHA7CisKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIGNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhYmFzZQorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFBST1BFUlRZXyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgUFJPUEVSVFlfVFJJRV9JTkRFWF8gPSBQUk9QRVJUWV8ubV90cmllSW5kZXhfOworICAgICAgICAgICAgUFJPUEVSVFlfVFJJRV9EQVRBXyA9IFBST1BFUlRZXy5tX3RyaWVEYXRhXzsKKyAgICAgICAgICAgIFBST1BFUlRZX0lOSVRJQUxfVkFMVUVfID0gUFJPUEVSVFlfLm1fdHJpZUluaXRpYWxWYWx1ZV87CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEluIElDVTRKIDMuMiwgbW9zdCBVbmljb2RlIHByb3BlcnRpZXMgd2VyZSBsb2FkZWQgZnJvbSB1cHJvcHMuaWN1LgorICAgICAgICAgKiBJQ1U0SiAzLjQgYWRkcyB1Y2FzZS5pY3UgZm9yIGNhc2UgbWFwcGluZyBwcm9wZXJ0aWVzIGFuZAorICAgICAgICAgKiB1YmlkaS5pY3UgZm9yIGJpZGkvc2hhcGluZyBwcm9wZXJ0aWVzIGFuZAorICAgICAgICAgKiByZW1vdmVzIGNhc2UvYmlkaS9zaGFwaW5nIHByb3BlcnRpZXMgZnJvbSB1cHJvcHMuaWN1LgorICAgICAgICAgKgorICAgICAgICAgKiBMb2FkaW5nIG9mIHVwcm9wcy5pY3Ugd2FzIGFsd2F5cyBkb25lIGR1cmluZyBjbGFzcyBsb2FkaW5nIG9mIFVDaGFyYWN0ZXIuY2xhc3MuCisgICAgICAgICAqIEluIG9yZGVyIHRvIG1haW50YWluIHBlcmZvcm1hbmNlIGZvciBhbGwgc3VjaCBwcm9wZXJ0aWVzLAorICAgICAgICAgKiB1Y2FzZS5pY3UgYW5kIHViaWRpLmljdSBhcmUgYWxzbyBsb2FkZWQgZHVyaW5nIGNsYXNzIGxvYWRpbmcgb2YgVUNoYXJhY3Rlci5jbGFzcy4KKyAgICAgICAgICogSXQgd2lsbCBub3QgZmFpbCBpZiB0aGV5IGFyZSBtaXNzaW5nLgorICAgICAgICAgKiBUaGVzZSBkYXRhIGl0ZW1zIGFyZSBsb2FkZWQgZWFybHkgdG8gYXZvaWQgaGF2aW5nIHRvIHN5bmNocm9uaXplIGFjY2VzcyB0byB0aGVtLAorICAgICAgICAgKiBmb3IgdGhyZWFkIHNhZmV0eSBhbmQgcGVyZm9ybWFuY2UuCisgICAgICAgICAqCisgICAgICAgICAqIFdlIHRyeSB0byBsb2FkIHRoZXNlIGRhdGEgaXRlbXMgYXQgbW9zdCBvbmNlLgorICAgICAgICAgKiBJZiBpdCB3b3Jrcywgd2UgdXNlIHRoZSByZXN1bHRpbmcgc2luZ2xldG9uIG9iamVjdC4KKyAgICAgICAgICogSWYgaXQgZmFpbHMsIHRoZW4gd2UgZ2V0IGEgZHVtbXkgb2JqZWN0LCB3aGljaCBhbHdheXMgd29ya3MgdW5sZXNzCisgICAgICAgICAqIHdlIGFyZSBzZXJpb3VzbHkgb3V0IG9mIG1lbW9yeS4KKyAgICAgICAgICogQWZ0ZXIgVUNoYXJhY3Rlci5jbGFzcyBsb2FkaW5nLCB3ZSBoYXZlIGEgbmV2ZXItY2hhbmdpbmcgcG9pbnRlciB0byBlaXRoZXIgdGhlCisgICAgICAgICAqIHJlYWwgc2luZ2xldG9uIG9yIHRoZSBkdW1teS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBVbmljb2RlIHByb3BlcnRpZXMgQVBJcyB0aGF0CisgICAgICAgICAqIGRvIG5vdCBoYXZlIGEgc2VydmljZSBvYmplY3QgYW5kIGFsc28gZG8gbm90IGhhdmUgYW4gZXJyb3IgY29kZSBwYXJhbWV0ZXIuCisgICAgICAgICAqIE90aGVyIEFQSSBpbXBsZW1lbnRhdGlvbnMgZ2V0IHRoZSBzaW5nbGV0b24gdGhlbXNlbHZlcworICAgICAgICAgKiAoc3luY2hyb25pemVkKSwgc3RvcmUgaXQgaW4gdGhlIHNlcnZpY2Ugb2JqZWN0LCBhbmQgcmVwb3J0IGVycm9ycy4KKyAgICAgICAgICovCisgICAgICAgIFVDYXNlUHJvcHMgY3NwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3NwPVVDYXNlUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgY3NwPVVDYXNlUHJvcHMuZ2V0RHVtbXkoKTsKKyAgICAgICAgfQorICAgICAgICBnQ3NwPWNzcDsKKworICAgICAgICBVQmlEaVByb3BzIGJkcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJkcD1VQmlEaVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGJkcD1VQmlEaVByb3BzLmdldER1bW15KCk7CisgICAgICAgIH0KKyAgICAgICAgZ0JkcD1iZHA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRvIGdldCB0aGUgbGFzdCBjaGFyYWN0ZXIgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DSEFSX01BU0tfID0gMHhGRkZGOworICAgICAgCisgICAgLyoqCisgICAgICogVG8gZ2V0IHRoZSBsYXN0IGJ5dGUgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhGRjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFNoaWZ0IDE2IGJpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRfMTZfID0gMTY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdCAyNCBiaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzI0XyA9IDI0OyAgCisgICAgCisgICAgLyoqCisgICAgICogRGVjaW1hbCByYWRpeAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUNJTUFMX1JBRElYXyA9IDEwOworICAgICAgCisgICAgLyoqCisgICAgICogTm8gYnJlYWsgc3BhY2UgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19CUkVBS19TUEFDRV8gPSAweEEwOworICAgICAgCisgICAgLyoqCisgICAgICogTmFycm93IG5vIGJyZWFrIHNwYWNlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XX05PX0JSRUFLX1NQQUNFXyA9IDB4MjAyRjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFplcm8gd2lkdGggbm8gYnJlYWsgc3BhY2UgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBaRVJPX1dJRFRIX05PX0JSRUFLX1NQQUNFXyA9IDB4RkVGRjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIElkZW9ncmFwaGljIG51bWJlciB6ZXJvIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURFT0dSQVBISUNfTlVNQkVSX1pFUk9fID0gMHgzMDA3OworICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgRmlyc3QgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZJUlNUXyA9IDB4NGUwMDsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIFNlY29uZCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfU0VDT05EXyA9IDB4NGU4YzsKKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIFRoaXJkIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9USElSRF8gPSAweDRlMDk7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBGb3VydGggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZPVVJUSF8gPSAweDU2ZDg7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBGSUZUSCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfRklGVEhfID0gMHg0ZTk0OworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgU2l4dGggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1NJWFRIXyA9IDB4NTE2ZDsKKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIFNldmVudGggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1NFVkVOVEhfID0gMHg0ZTAzOworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgRWlnaHRoIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9FSUdIVEhfID0gMHg1MTZiOworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgTmluZXRoIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9OSU5FVEhfID0gMHg0ZTVkOworICAgICAgCisgICAgLyoqCisgICAgICogQXBwbGljYXRpb24gUHJvZ3JhbSBjb21tYW5kIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVBQTElDQVRJT05fUFJPR1JBTV9DT01NQU5EXyA9IDB4MDA5RjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFVuaXQgc2VwYXJhdG9yIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5JVF9TRVBBUkFUT1JfID0gMHgwMDFGOworICAgICAgCisgICAgLyoqCisgICAgICogRGVsZXRlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMRVRFXyA9IDB4MDA3RjsKKyAgICAvKioKKyAgICAgKiBJU08gY29udHJvbCBjaGFyYWN0ZXIgZmlyc3QgcmFuZ2UgdXBwZXIgbGltaXQgMHgwIC0gMHgxRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJU09fQ09OVFJPTF9GSVJTVF9SQU5HRV9NQVhfID0gMHgxRjsKKyAgICAvKioKKyAgICAgKiBTaGlmdCB0byBnZXQgbnVtZXJpYyB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVFlQRV9TSElGVF8gPSA1OworICAgIC8qKgorICAgICAqIE1hc2sgdG8gZ2V0IG51bWVyaWMgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1FUklDX1RZUEVfTUFTS18gPSAweDcgPDwgTlVNRVJJQ19UWVBFX1NISUZUXzsKKyAgICAgIAorICAgIC8qIGVuY29kaW5nIG9mIGZyYWN0aW9uYWwgYW5kIGxhcmdlIG51bWJlcnMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NNQUxMX05VTUJFUj0weGZmOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX05VTV9TSElGVD0zOyAgICAgICAgLyogbnVtZXJhdG9yOiBiaXRzIDcuLjMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fREVOX01BU0s9NzsgICAgICAgICAvKiBkZW5vbWluYXRvcjogYml0cyAyLi4wICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fTUFYX05VTT0zMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fREVOX09GRlNFVD0yOyAgICAgICAvKiBkZW5vbWluYXRvciB2YWx1ZXMgYXJlIDIuLjkgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9NSU5fREVOPUZSQUNUSU9OX0RFTl9PRkZTRVQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX01BWF9ERU49RlJBQ1RJT05fTUlOX0RFTitGUkFDVElPTl9ERU5fTUFTSzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9NQU5UX1NISUZUPTQ7ICAgICAgICAgIC8qIG1hbnRpc3NhOiBiaXRzIDcuLjQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfRVhQX01BU0s9MHhmOyAgICAgICAgICAvKiBleHBvbmVudDogYml0cyAzLi4wICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX0VYUF9PRkZTRVQ9MjsgICAgICAgICAgLyogcmVndWxhciBleHBvbmVudHMgMi4uMTcgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfRVhQX09GRlNFVF9FWFRSQT0xODsgICAvKiBleHRyYSBsYXJnZSBleHBvbmVudHMgMTguLjMzICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfTUlOX0VYUD1MQVJHRV9FWFBfT0ZGU0VUOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9NQVhfRVhQPUxBUkdFX01JTl9FWFArTEFSR0VfRVhQX01BU0s7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX01BWF9FWFBfRVhUUkE9TEFSR0VfRVhQX09GRlNFVF9FWFRSQStMQVJHRV9FWFBfTUFTSzsKKworICAgIC8qKgorICAgICAqIEhhbiBkaWdpdCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9aRVJPXyAgICAgPSAweDk2ZjY7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfT05FXyAgICAgID0gMHg1OGY5OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RXT18gICAgICA9IDB4OGNiMzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9USFJFRV8gICAgPSAweDUzYzM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfRk9VUl8gICAgID0gMHg4MDg2OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZJVkVfICAgICA9IDB4NGYwZDsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9TSVhfICAgICAgPSAweDk2Nzg7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfU0VWRU5fICAgID0gMHg2N2QyOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0VJR0hUXyAgICA9IDB4NjM0YzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9OSU5FXyAgICAgPSAweDczOTY7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1RFTl8gICAgICAgICAgICAgID0gMHg1MzQxOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1RFTl8gICAgICA9IDB4NjJmZTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfSFVORFJFRF8gICAgICAgICAgPSAweDc2N2U7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfSFVORFJFRF8gID0gMHg0ZjcwOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9USE9VU0FORF8gICAgICAgICA9IDB4NTM0MzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9USE9VU0FORF8gPSAweDRlZGY7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1RFTl9USE9VU0FORF8gICAgID0gMHg4MjRjOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9IVU5EUkVEX01JTExJT05fICA9IDB4NTEwNDsKKworICAgIC8qKgorICAgICAqIFplcm8gV2lkdGggTm9uIEpvaW5lci4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFpXTkouCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpFUk9fV0lEVEhfTk9OX0pPSU5FUl8gPSAweDIwMGM7CisgICAgLyoqCisgICAgICogWmVybyBXaWR0aCBKb2luZXIKKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFpXSi4gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpFUk9fV0lEVEhfSk9JTkVSXyA9IDB4MjAwZDsKKworICAgIC8qCisgICAgICogUHJvcGVydGllcyBpbiB2ZWN0b3Igd29yZCAyCisgICAgICogQml0cworICAgICAqIDMxLi4yNCAgIE1vcmUgYmluYXJ5IHByb3BlcnRpZXMgKHNlZSBVQ2hhcmFjdGVyUHJvcGVydHkpCisgICAgICogMjMuLjE5ICAgcmVzZXJ2ZWQKKyAgICAgKiAxOC4uMTQgICBTZW50ZW5jZSBCcmVhaworICAgICAqIDEzLi4xMCAgIFdvcmQgQnJlYWsKKyAgICAgKiAgOS4uIDUgICBHcmFwaGVtZSBDbHVzdGVyIEJyZWFrCisgICAgICogIDQuLiAwICAgRGVjb21wb3NpdGlvbiBUeXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNCX01BU0sgICAgICAgICAgPSAweDAwMDdjMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQl9TSElGVCAgICAgICAgID0gMTQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgV0JfTUFTSyAgICAgICAgICA9IDB4MDAwMDNjMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdCX1NISUZUICAgICAgICAgPSAxMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ0JfTUFTSyAgICAgICAgID0gMHgwMDAwMDNlMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NCX1NISUZUICAgICAgICA9IDU7CisKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBmb3IgZGVjb21wb3NpdGlvbiB0eXBlLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0RUX01BU0suIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QT1NJVElPTl9UWVBFX01BU0tfID0gMHgwMDAwMDAxZjsKKworICAgIC8qCisgICAgICogUHJvcGVydGllcyBpbiB2ZWN0b3Igd29yZCAwCisgICAgICogQml0cworICAgICAqIDMxLi4yNCAgIERlcml2ZWRBZ2UgdmVyc2lvbiBtYWpvci9taW5vciBvbmUgbmliYmxlIGVhY2ggKHNlZSBVQ2hhcmFjdGVyUHJvcGVydHkpCisgICAgICogMjMuLjE4ICAgTGluZSBCcmVhaworICAgICAqIDE3Li4xNSAgIEVhc3QgQXNpYW4gV2lkdGgKKyAgICAgKiAxNC4uIDcgICBVQmxvY2tDb2RlCisgICAgICogIDYuLiAwICAgVVNjcmlwdENvZGUKKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIEVhc3QgQXNpYW4gY2VsbCB3aWR0aC4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19FQV9NQVNLIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRUFTVF9BU0lBTl9NQVNLXyA9IDB4MDAwMzgwMDA7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgRWFzdCBBc2lhbiBjZWxsIHdpZHRoLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0VBX1NISUZUIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRUFTVF9BU0lBTl9TSElGVF8gPSAxNTsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBsaW5lIGJyZWFrcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19MQl9NQVNLIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElORV9CUkVBS19NQVNLXyA9IDB4MDBGQzAwMDA7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgbGluZSBicmVha3MuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfTEJfU0hJRlQgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5FX0JSRUFLX1NISUZUXyA9IDE4OworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIGJsb2Nrcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19CTE9DS19NQVNLIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0tfTUFTS18gPSAweDAwMDA3ZjgwOworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIGJsb2Nrcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19CTE9DS19TSElGVCAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJMT0NLX1NISUZUXyA9IDc7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3Igc2NyaXB0cy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19TSElGVF9NQVNLCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ1JJUFRfTUFTS18gPSAweDAwMDAwMDdmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vL0NMT1ZFUjpPRkYgIAorICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbnN0YW50aWF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyKCkKKyAgICB7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTiAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgZGlnaXQgdmFsdWVzIG9mIGNoYXJhY3RlcnMgbGlrZSAnQScgLSAnWicsIG5vcm1hbCwgCisgICAgICogaGFsZi13aWR0aCBhbmQgZnVsbC13aWR0aC4gVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IHRoZSBvdGhlciBkaWdpdCAKKyAgICAgKiBjaGFyYWN0ZXJzIGFyZSBjaGVja2VkIGJ5IHRoZSBjYWxsaW5nIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIC0xIGlmIGNoIGlzIG5vdCBhIGNoYXJhY3RlciBvZiB0aGUgZm9ybSAnQScgLSAnWicsIG90aGVyd2lzZQorICAgICAqICAgICAgICAgaXRzIGNvcnJlc3BvbmRpbmcgZGlnaXQgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0RXVyb3BlYW5EaWdpdChpbnQgY2gpIHsKKyAgICAgICAgaWYgKChjaCA+IDB4N2EgJiYgY2ggPCAweGZmMjEpICAKKyAgICAgICAgICAgIHx8IGNoIDwgMHg0MSB8fCAoY2ggPiAweDVhICYmIGNoIDwgMHg2MSkKKyAgICAgICAgICAgIHx8IGNoID4gMHhmZjVhIHx8IChjaCA+IDB4ZmYzMSAmJiBjaCA8IDB4ZmY0MSkpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKGNoIDw9IDB4N2EpIHsKKyAgICAgICAgICAgIC8vIGNoID49IDB4NDEgb3IgY2ggPCAweDYxIAorICAgICAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAoKGNoIDw9IDB4NWEpID8gMHg0MSA6IDB4NjEpOworICAgICAgICB9CisgICAgICAgIC8vIGNoID49IDB4ZmYyMQorICAgICAgICBpZiAoY2ggPD0gMHhmZjNhKSB7CisgICAgICAgICAgICByZXR1cm4gY2ggKyAxMCAtIDB4ZmYyMTsKKyAgICAgICAgfSAKKyAgICAgICAgLy8gY2ggPj0gMHhmZjQxICYmIGNoIDw9IDB4ZmY1YQorICAgICAgICByZXR1cm4gY2ggKyAxMCAtIDB4ZmY0MTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtZXJpYyB0eXBlIG9mIHRoZSBwcm9wZXJ0eSBhcmd1bWVudAorICAgICAqIEBwYXJhbSBwcm9wcyAzMiBiaXQgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0TnVtZXJpY1R5cGUoaW50IHByb3BzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChwcm9wcyAmIE5VTUVSSUNfVFlQRV9NQVNLXykgPj4gTlVNRVJJQ19UWVBFX1NISUZUXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgYXQgdGhlIGluZGV4LgorICAgICAqIFRoaXMgaXMgb3B0aW1pemVkLgorICAgICAqIE5vdGUgdGhpcyBpcyBhbGl0dGxlIGRpZmZlcmVudCBmcm9tIENoYXJUcmllIHRoZSBpbmRleCBtX3RyaWVEYXRhXworICAgICAqIGlzIG5ldmVyIG5lZ2F0aXZlLgorICAgICAqIFRoaXMgaXMgYSBkdXBsaWNhdGUgb2YgVUNoYXJhY3RlclByb3BlcnR5LmdldFByb3BlcnR5LiBGb3Igb3B0aW1pemF0aW9uCisgICAgICogcHVycG9zZXMsIHRoaXMgbWV0aG9kIGNhbGxzIHRoZSB0cmllIGRhdGEgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aHJvdWdoIAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wZXJ0eS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBwcm9wZXJ0eSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHByb3BlcnR5IHZhbHVlIG9mIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0UHJvcGVydHkoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIAorICAgICAgICAgICAgfHwgKGNoID4gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFIAorICAgICAgICAgICAgICAgICYmIGNoIDwgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICAvLyBCTVAgY29kZXBvaW50IDAwMDAuLkQ3RkYgb3IgREMwMC4uRkZGRgorICAgICAgICAgICAgdHJ5IHsgLy8gdXNpbmcgdHJ5IGZvciBjaCA8IDAgaXMgZmFzdGVyIHRoYW4gdXNpbmcgYW4gaWYgc3RhdGVtZW50CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZX1RSSUVfREFUQV9bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUFJPUEVSVFlfVFJJRV9JTkRFWF9bY2ggPj4gNV0gPDwgMikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChjaCAmIDB4MWYpXTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZX0lOSVRJQUxfVkFMVUVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjaCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIEQ4MDAuLkRCRkYKKyAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV9UUklFX0RBVEFfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBST1BFUlRZX1RSSUVfSU5ERVhfWygweDI4MDAgPj4gNSkgKyAoY2ggPj4gNSldIDw8IDIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiAweDFmKV07CisgICAgICAgIH0KKyAgICAgICAgLy8gZm9yIG9wdGltaXphdGlvbgorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgLy8gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IDEwMDAwLi4xMEZGRkYKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5tX3RyaWVfLmdldFN1cnJvZ2F0ZVZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIDB4M2ZmKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gcmV0dXJuIG1fZGF0YU9mZnNldF8gaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4gCisgICAgICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVlOiBtX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgLy8gd2UgY2Fubm90IGFzc3VtZSB0aGF0IG1faW5pdGlhbFZhbHVlXyBpcyBhdCBvZmZzZXQgMAorICAgICAgICAvLyB0aGlzIGlzIGZvciBvcHRpbWl6YXRpb24uCisgICAgICAgIHJldHVybiBQUk9QRVJUWV9JTklUSUFMX1ZBTFVFXzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwYzBhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnkuamF2YQpAQCAtMCwwICsxLDExMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zLkVDaGFyYWN0ZXJDYXRlZ29yeTsKKworLyoqCisgKiBFbnVtZXJhdGVkIFVuaWNvZGUgY2F0ZWdvcnkgdHlwZXMgZnJvbSB0aGUgVW5pY29kZURhdGEudHh0IGZpbGUuCisgKiBVc2VkIGFzIHJldHVybiByZXN1bHRzIGZyb20gPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4KKyAqIEVxdWl2YWxlbnQgdG8gaWN1J3MgVUNoYXJDYXRlZ29yeS4KKyAqIFJlZmVyIHRvIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURBVEEvVUNELmh0bWwiPgorICogVW5pY29kZSBDb25zb3J0aXVtPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlRGF0YS50eHQuCisgKiA8cD4KKyAqIDxlbT5OT1RFOjwvZW0+IHRoZSBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzIGFyZSA8ZW0+bm90PC9lbT4gY29tcGF0aWJsZSB3aXRoCisgKiB0aG9zZSByZXR1cm5lZCBieSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUuICBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzCisgKiBtYXRjaCB0aGUgb25lcyB1c2VkIGluIElDVTRDLCB3aGlsZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHR5cGUKKyAqIHZhbHVlcywgdGhvdWdoIHNpbWlsYXIsIHNraXAgdGhlIHZhbHVlIDE3LjwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi4xCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDYXRlZ29yeSBpbXBsZW1lbnRzIEVDaGFyYWN0ZXJDYXRlZ29yeQoreworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNhdGVnb3J5CisgICAgICogQHBhcmFtIGNhdGVnb3J5IHRvIHJldHJpZXZlIG5hbWUKKyAgICAgKiBAcmV0dXJuIGNhdGVnb3J5IG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgY2F0ZWdvcnkpCisgICAgeworICAgICAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7CisgICAgICAgIGNhc2UgVVBQRVJDQVNFX0xFVFRFUiA6CisgICAgICAgICAgICByZXR1cm4gIkxldHRlciwgVXBwZXJjYXNlIjsKKyAgICAgICAgY2FzZSBMT1dFUkNBU0VfTEVUVEVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTGV0dGVyLCBMb3dlcmNhc2UiOworICAgICAgICBjYXNlIFRJVExFQ0FTRV9MRVRURVIgOgorICAgICAgICAgICAgcmV0dXJuICJMZXR0ZXIsIFRpdGxlY2FzZSI7CisgICAgICAgIGNhc2UgTU9ESUZJRVJfTEVUVEVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTGV0dGVyLCBNb2RpZmllciI7CisgICAgICAgIGNhc2UgT1RIRVJfTEVUVEVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTGV0dGVyLCBPdGhlciI7CisgICAgICAgIGNhc2UgTk9OX1NQQUNJTkdfTUFSSyA6CisgICAgICAgICAgICByZXR1cm4gIk1hcmssIE5vbi1TcGFjaW5nIjsKKyAgICAgICAgY2FzZSBFTkNMT1NJTkdfTUFSSyA6IAorICAgICAgICAgICAgcmV0dXJuICJNYXJrLCBFbmNsb3NpbmciOworICAgICAgICBjYXNlIENPTUJJTklOR19TUEFDSU5HX01BUksgOgorICAgICAgICAgICAgcmV0dXJuICJNYXJrLCBTcGFjaW5nIENvbWJpbmluZyI7CisgICAgICAgIGNhc2UgREVDSU1BTF9ESUdJVF9OVU1CRVIgOgorICAgICAgICAgICAgcmV0dXJuICJOdW1iZXIsIERlY2ltYWwgRGlnaXQiOworICAgICAgICBjYXNlIExFVFRFUl9OVU1CRVIgOgorICAgICAgICAgICAgcmV0dXJuICJOdW1iZXIsIExldHRlciI7CisgICAgICAgIGNhc2UgT1RIRVJfTlVNQkVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTnVtYmVyLCBPdGhlciI7CisgICAgICAgIGNhc2UgU1BBQ0VfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgIHJldHVybiAiU2VwYXJhdG9yLCBTcGFjZSI7CisgICAgICAgIGNhc2UgTElORV9TRVBBUkFUT1IgOgorICAgICAgICAgICAgcmV0dXJuICJTZXBhcmF0b3IsIExpbmUiOworICAgICAgICBjYXNlIFBBUkFHUkFQSF9TRVBBUkFUT1IgOgorICAgICAgICAgICAgcmV0dXJuICJTZXBhcmF0b3IsIFBhcmFncmFwaCI7CisgICAgICAgIGNhc2UgQ09OVFJPTCA6CisgICAgICAgICAgICByZXR1cm4gIk90aGVyLCBDb250cm9sIjsKKyAgICAgICAgY2FzZSBGT1JNQVQgOgorICAgICAgICAgICAgcmV0dXJuICJPdGhlciwgRm9ybWF0IjsKKyAgICAgICAgY2FzZSBQUklWQVRFX1VTRSA6CisgICAgICAgICAgICByZXR1cm4gIk90aGVyLCBQcml2YXRlIFVzZSI7CisgICAgICAgIGNhc2UgU1VSUk9HQVRFIDoKKyAgICAgICAgICAgIHJldHVybiAiT3RoZXIsIFN1cnJvZ2F0ZSI7CisgICAgICAgIGNhc2UgREFTSF9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBEYXNoIjsKKyAgICAgICAgY2FzZSBTVEFSVF9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBPcGVuIjsKKyAgICAgICAgY2FzZSBFTkRfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgQ2xvc2UiOworICAgICAgICBjYXNlIENPTk5FQ1RPUl9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBDb25uZWN0b3IiOworICAgICAgICBjYXNlIE9USEVSX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIE90aGVyIjsKKyAgICAgICAgY2FzZSBNQVRIX1NZTUJPTCA6CisgICAgICAgICAgICByZXR1cm4gIlN5bWJvbCwgTWF0aCI7CisgICAgICAgIGNhc2UgQ1VSUkVOQ1lfU1lNQk9MIDoKKyAgICAgICAgICAgIHJldHVybiAiU3ltYm9sLCBDdXJyZW5jeSI7CisgICAgICAgIGNhc2UgTU9ESUZJRVJfU1lNQk9MIDoKKyAgICAgICAgICAgIHJldHVybiAiU3ltYm9sLCBNb2RpZmllciI7CisgICAgICAgIGNhc2UgT1RIRVJfU1lNQk9MIDoKKyAgICAgICAgICAgIHJldHVybiAiU3ltYm9sLCBPdGhlciI7CisgICAgICAgIGNhc2UgSU5JVElBTF9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBJbml0aWFsIHF1b3RlIjsKKyAgICAgICAgY2FzZSBGSU5BTF9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBGaW5hbCBxdW90ZSI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJVbmFzc2lnbmVkIjsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy9DTE9WRVI6T0ZGIAorICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlckNhdGVnb3J5KCkKKyAgICB7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4NGM2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uLmphdmEKQEAgLTAsMCArMSw4NCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyRGlyZWN0aW9uOworCisvKioKKyAqIEVudW1lcmF0ZWQgVW5pY29kZSBjaGFyYWN0ZXIgbGluZ3Vpc3RpYyBkaXJlY3Rpb24gY29uc3RhbnRzLgorICogVXNlZCBhcyByZXR1cm4gcmVzdWx0cyBmcm9tIDxhIGhyZWY9VUNoYXJhY3Rlci5odG1sPlVDaGFyYWN0ZXI8L2E+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuMQorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyRGlyZWN0aW9uIGltcGxlbWVudHMgRUNoYXJhY3RlckRpcmVjdGlvbiB7CisKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8vQ0xPVkVSOk9GRiAgCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGluaXRpYWxpc2F0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyRGlyZWN0aW9uKCkKKyAgICB7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgZGlyZWN0aW9uCisgICAgICogQHBhcmFtIGRpciBkaXJlY3Rpb24gdHlwZSB0byByZXRyaWV2ZSBuYW1lCisgICAgICogQHJldHVybiBkaXJlY3Rpb25hbCBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGRpcikgeworICAgICAgICBzd2l0Y2goZGlyKQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSBMRUZUX1RPX1JJR0hUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxlZnQtdG8tUmlnaHQiOworICAgICAgICAgICAgY2FzZSBSSUdIVF9UT19MRUZUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlJpZ2h0LXRvLUxlZnQiOworICAgICAgICAgICAgY2FzZSBFVVJPUEVBTl9OVU1CRVIgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRXVyb3BlYW4gTnVtYmVyIjsKKyAgICAgICAgICAgIGNhc2UgRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJFdXJvcGVhbiBOdW1iZXIgU2VwYXJhdG9yIjsKKyAgICAgICAgICAgIGNhc2UgRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRXVyb3BlYW4gTnVtYmVyIFRlcm1pbmF0b3IiOworICAgICAgICAgICAgY2FzZSBBUkFCSUNfTlVNQkVSIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkFyYWJpYyBOdW1iZXIiOworICAgICAgICAgICAgY2FzZSBDT01NT05fTlVNQkVSX1NFUEFSQVRPUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJDb21tb24gTnVtYmVyIFNlcGFyYXRvciI7CisgICAgICAgICAgICBjYXNlIEJMT0NLX1NFUEFSQVRPUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGggU2VwYXJhdG9yIjsKKyAgICAgICAgICAgIGNhc2UgU0VHTUVOVF9TRVBBUkFUT1IgOgorICAgICAgICAgICAgICAgIHJldHVybiAiU2VnbWVudCBTZXBhcmF0b3IiOworICAgICAgICAgICAgY2FzZSBXSElURV9TUEFDRV9ORVVUUkFMIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIldoaXRlc3BhY2UiOworICAgICAgICAgICAgY2FzZSBPVEhFUl9ORVVUUkFMIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIk90aGVyIE5ldXRyYWxzIjsKKyAgICAgICAgICAgIGNhc2UgTEVGVF9UT19SSUdIVF9FTUJFRERJTkcgOgorICAgICAgICAgICAgICAgIHJldHVybiAiTGVmdC10by1SaWdodCBFbWJlZGRpbmciOworICAgICAgICAgICAgY2FzZSBMRUZUX1RPX1JJR0hUX09WRVJSSURFIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxlZnQtdG8tUmlnaHQgT3ZlcnJpZGUiOworICAgICAgICAgICAgY2FzZSBSSUdIVF9UT19MRUZUX0FSQUJJQyA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJSaWdodC10by1MZWZ0IEFyYWJpYyI7CisgICAgICAgICAgICBjYXNlIFJJR0hUX1RPX0xFRlRfRU1CRURESU5HIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlJpZ2h0LXRvLUxlZnQgRW1iZWRkaW5nIjsKKyAgICAgICAgICAgIGNhc2UgUklHSFRfVE9fTEVGVF9PVkVSUklERSA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJSaWdodC10by1MZWZ0IE92ZXJyaWRlIjsKKyAgICAgICAgICAgIGNhc2UgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJQb3AgRGlyZWN0aW9uYWwgRm9ybWF0IjsKKyAgICAgICAgICAgIGNhc2UgRElSX05PTl9TUEFDSU5HX01BUksgOgorICAgICAgICAgICAgICAgIHJldHVybiAiTm9uLVNwYWNpbmcgTWFyayI7CisgICAgICAgICAgICBjYXNlIEJPVU5EQVJZX05FVVRSQUwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiQm91bmRhcnkgTmV1dHJhbCI7CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiAiVW5hc3NpZ25lZCI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckVudW1zLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRW51bXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzVhMjNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckVudW1zLmphdmEKQEAgLTAsMCArMSw0OTEgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKKy8qKgorICogQSBjb250YWluZXIgZm9yIHRoZSBkaWZmZXJlbnQgJ2VudW1lcmF0ZWQgdHlwZXMnIHVzZWQgYnkgVUNoYXJhY3Rlci4KKyAqIEBzdGFibGUgSUNVIDMuMAorICovCitwdWJsaWMgY2xhc3MgVUNoYXJhY3RlckVudW1zIHsKKworICAgIC8qKiBUaGlzIGlzIGp1c3QgYSBuYW1lc3BhY2UsIGl0IGlzIG5vdCBpbnN0YW50aWF0YWJsZS4gKi8KKwkvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyRW51bXMoKSB7fQorCisgICAgLyoqCisgICAgICogJ0VudW0nIGZvciB0aGUgQ2hhcmFjdGVyQ2F0ZWdvcnkgY29uc3RhbnRzLiAgVGhlc2UgY29uc3RhbnRzIGFyZSAKKyAgICAgKiBjb21wYXRpYmxlIGluIG5hbWUgPGI+YnV0IG5vdCBpbiB2YWx1ZTwvYj4gd2l0aCB0aG9zZSBkZWZpbmVkIGluCisgICAgICogPGNvZGU+amF2YS5sYW5nLkNoYXJhY3RlcjwvY29kZT4uCisgICAgICogQHNlZSBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBFQ2hhcmFjdGVyQ2F0ZWdvcnkgeworICAgICAgICAvKioKKyAgICAgICAgICogVW5hc3NpZ25lZCBjaGFyYWN0ZXIgdHlwZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBVTkFTU0lHTkVEICAgICAgICAgICAgICA9IDA7IAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBDbgorICAgICAgICAgKiBOb3QgQXNzaWduZWQgKG5vIGNoYXJhY3RlcnMgaW4gW1VuaWNvZGVEYXRhLnR4dF0gaGF2ZSB0aGlzIHByb3BlcnR5KSAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgR0VORVJBTF9PVEhFUl9UWVBFUyAgICAgPSAwOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBMdQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBVUFBFUkNBU0VfTEVUVEVSICAgICAgICA9IDE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIExsCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExPV0VSQ0FTRV9MRVRURVIgICAgICAgID0gMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTHQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBUSVRMRUNBU0VfTEVUVEVSICAgICAgICA9IDM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIExtCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE1PRElGSUVSX0xFVFRFUiAgICAgICAgID0gNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTG8KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgT1RIRVJfTEVUVEVSICAgICAgICAgICAgPSA1OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBNbgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBOT05fU1BBQ0lOR19NQVJLICAgICAgICA9IDY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE1lCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEVOQ0xPU0lOR19NQVJLICAgICAgICAgID0gNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTWMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ09NQklOSU5HX1NQQUNJTkdfTUFSSyAgPSA4OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBOZAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEgICAgICAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBERUNJTUFMX0RJR0lUX05VTUJFUiAgICA9IDk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE5sCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExFVFRFUl9OVU1CRVIgICAgICAgICAgID0gMTA7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTm8KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgT1RIRVJfTlVNQkVSICAgICAgICAgICAgPSAxMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgWnMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgU1BBQ0VfU0VQQVJBVE9SICAgICAgICAgPSAxMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgWmwKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTElORV9TRVBBUkFUT1IgICAgICAgICAgPSAxMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgWnAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgUEFSQUdSQVBIX1NFUEFSQVRPUiAgICAgPSAxNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgQ2MKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ09OVFJPTCAgICAgICAgICAgICAgICAgPSAxNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgQ2YKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRk9STUFUICAgICAgICAgICAgICAgICAgPSAxNjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgQ28KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgUFJJVkFURV9VU0UgICAgICAgICAgICAgPSAxNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgQ3MKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgU1VSUk9HQVRFICAgICAgICAgICAgICAgPSAxODsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgREFTSF9QVU5DVFVBVElPTiAgICAgICAgPSAxOTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUHMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgU1RBUlRfUFVOQ1RVQVRJT04gICAgICAgPSAyMDsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBFTkRfUFVOQ1RVQVRJT04gICAgICAgICA9IDIxOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQYworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDT05ORUNUT1JfUFVOQ1RVQVRJT04gICA9IDIyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQbworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBPVEhFUl9QVU5DVFVBVElPTiAgICAgICA9IDIzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBTbQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBNQVRIX1NZTUJPTCAgICAgICAgICAgICA9IDI0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBTYworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDVVJSRU5DWV9TWU1CT0wgICAgICAgICA9IDI1OworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFNrCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE1PRElGSUVSX1NZTUJPTCAgICAgICAgID0gMjY7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgU28KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgT1RIRVJfU1lNQk9MICAgICAgICAgICAgPSAyNzsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQaQorICAgICAgICAgKiBAc2VlICNJTklUSUFMX1FVT1RFX1BVTkNUVUFUSU9OCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIElOSVRJQUxfUFVOQ1RVQVRJT04gICAgID0gMjg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBpCisgICAgICAgICAqIFRoaXMgbmFtZSBpcyBjb21wYXRpYmxlIHdpdGggamF2YS5sYW5nLkNoYXJhY3RlcidzIG5hbWUgZm9yIHRoaXMgdHlwZS4KKyAgICAgICAgICogQHNlZSAjSU5JVElBTF9QVU5DVFVBVElPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBJTklUSUFMX1FVT1RFX1BVTkNUVUFUSU9OID0gMjg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBmCisgICAgICAgICAqIEBzZWUgI0ZJTkFMX1FVT1RFX1BVTkNUVUFUSU9OCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEZJTkFMX1BVTkNUVUFUSU9OICAgICAgID0gMjk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBmCisgICAgICAgICAqIFRoaXMgbmFtZSBpcyBjb21wYXRpYmxlIHdpdGggamF2YS5sYW5nLkNoYXJhY3RlcidzIG5hbWUgZm9yIHRoaXMgdHlwZS4KKyAgICAgICAgICogQHNlZSAjRklOQUxfUFVOQ1RVQVRJT04KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRklOQUxfUVVPVEVfUFVOQ1RVQVRJT04gICA9IDI5OworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIGNvdW50CisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENIQVJfQ0FURUdPUllfQ09VTlQgICAgID0gMzA7CisgICAgfQorCisgICAgLyoqCisgICAgICogJ0VudW0nIGZvciB0aGUgQ2hhcmFjdGVyRGlyZWN0aW9uIGNvbnN0YW50cy4gIFRoZXJlIGFyZSB0d28gc2V0cworICAgICAqIG9mIG5hbWVzLCB0aG9zZSB1c2VkIGluIElDVSwgYW5kIHRob3NlIHVzZWQgaW4gdGhlIEpESy4gIFRoZQorICAgICAqIEpESyBjb25zdGFudHMgYXJlIGNvbXBhdGlibGUgaW4gbmFtZSA8Yj5idXQgbm90IGluIHZhbHVlPC9iPiAKKyAgICAgKiB3aXRoIHRob3NlIGRlZmluZWQgaW4gPGNvZGU+amF2YS5sYW5nLkNoYXJhY3RlcjwvY29kZT4uCisgICAgICogQHNlZSBVQ2hhcmFjdGVyRGlyZWN0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRUNoYXJhY3RlckRpcmVjdGlvbiB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEwKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUICAgICAgICAgICAgICA9IDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIExFRlRfVE9fUklHSFQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFQgPSAoYnl0ZSlMRUZUX1RPX1JJR0hUOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFIKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSSUdIVF9UT19MRUZUICAgICAgICAgICAgICA9IDE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFJJR0hUX1RPX0xFRlQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1JJR0hUX1RPX0xFRlQgPSAoYnl0ZSlSSUdIVF9UT19MRUZUOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEVOCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVVST1BFQU5fTlVNQkVSICAgICAgICAgICAgPSAyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBFVVJPUEVBTl9OVU1CRVIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0VVUk9QRUFOX05VTUJFUiA9IChieXRlKUVVUk9QRUFOX05VTUJFUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBFUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IgID0gMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUiA9IChieXRlKUVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgRVQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUiA9IDQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9FVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUiA9IChieXRlKUVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEFOCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19OVU1CRVIgICAgICAgICAgICAgID0gNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgQVJBQklDX05VTUJFUi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfQVJBQklDX05VTUJFUiA9IChieXRlKUFSQUJJQ19OVU1CRVI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgQ1MKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01NT05fTlVNQkVSX1NFUEFSQVRPUiAgICA9IDY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIENPTU1PTl9OVU1CRVJfU0VQQVJBVE9SLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9DT01NT05fTlVNQkVSX1NFUEFSQVRPUiA9IChieXRlKUNPTU1PTl9OVU1CRVJfU0VQQVJBVE9SOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEIKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCTE9DS19TRVBBUkFUT1IgICAgICAgICAgICA9IDc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEJMT0NLX1NFUEFSQVRPUi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUEFSQUdSQVBIX1NFUEFSQVRPUiA9IChieXRlKUJMT0NLX1NFUEFSQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBTCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8gICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VHTUVOVF9TRVBBUkFUT1IgICAgICAgICAgPSA4OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBTRUdNRU5UX1NFUEFSQVRPUi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfU0VHTUVOVF9TRVBBUkFUT1IgPSAoYnl0ZSlTRUdNRU5UX1NFUEFSQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBXUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX05FVVRSQUwgICAgICAgID0gOTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgV0hJVEVfU1BBQ0VfTkVVVFJBTC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfV0hJVEVTUEFDRSA9IChieXRlKVdISVRFX1NQQUNFX05FVVRSQUw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgT04KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUl9ORVVUUkFMICAgICAgICAgICAgICA9IDEwOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBPVEhFUl9ORVVUUkFMLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9PVEhFUl9ORVVUUkFMUyA9IChieXRlKU9USEVSX05FVVRSQUw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgTFJFCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVGVF9UT19SSUdIVF9FTUJFRERJTkcgICAgPSAxMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgTEVGVF9UT19SSUdIVF9FTUJFRERJTkcuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFRfRU1CRURESU5HID0gKGJ5dGUpTEVGVF9UT19SSUdIVF9FTUJFRERJTkc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgTFJPCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVGVF9UT19SSUdIVF9PVkVSUklERSAgICAgPSAxMjsgIAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBMRUZUX1RPX1JJR0hUX09WRVJSSURFLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9MRUZUX1RPX1JJR0hUX09WRVJSSURFID0gKGJ5dGUpTEVGVF9UT19SSUdIVF9PVkVSUklERTsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBBTAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlRfQVJBQklDICAgICAgID0gMTM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFJJR0hUX1RPX0xFRlRfQVJBQklDLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9SSUdIVF9UT19MRUZUX0FSQUJJQyA9IChieXRlKVJJR0hUX1RPX0xFRlRfQVJBQklDOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFJMRQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlRfRU1CRURESU5HICAgID0gMTQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFJJR0hUX1RPX0xFRlRfRU1CRURESU5HLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9SSUdIVF9UT19MRUZUX0VNQkVERElORyA9IChieXRlKVJJR0hUX1RPX0xFRlRfRU1CRURESU5HOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFJMTworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUgICAgID0gMTU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1JJR0hUX1RPX0xFRlRfT1ZFUlJJREUgPSAoYnl0ZSlSSUdIVF9UT19MRUZUX09WRVJSSURFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFBERgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPUF9ESVJFQ1RJT05BTF9GT1JNQVQgICAgID0gMTY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFBPUF9ESVJFQ1RJT05BTF9GT1JNQVQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1BPUF9ESVJFQ1RJT05BTF9GT1JNQVQgPSAoYnl0ZSlQT1BfRElSRUNUSU9OQUxfRk9STUFUOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIE5TTQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJUl9OT05fU1BBQ0lOR19NQVJLICAgICAgID0gMTc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIERJUl9OT05fU1BBQ0lOR19NQVJLLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9OT05TUEFDSU5HX01BUksgPSAoYnl0ZSlESVJfTk9OX1NQQUNJTkdfTUFSSzsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBCTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPVU5EQVJZX05FVVRSQUwgICAgICAgICAgID0gMTg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEJPVU5EQVJZX05FVVRSQUwuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0JPVU5EQVJZX05FVVRSQUwgPSAoYnl0ZSlCT1VOREFSWV9ORVVUUkFMOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgZGlyZWN0aW9uYWwgdHlwZXMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSEFSX0RJUkVDVElPTl9DT1VOVCAgICAgICA9IDE5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmRlZmluZWQgYmlkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgdHlwZS4gVW5kZWZpbmVkIDxjb2RlPmNoYXI8L2NvZGU+CisgICAgICAgICAqIHZhbHVlcyBoYXZlIHVuZGVmaW5lZCBkaXJlY3Rpb25hbGl0eSBpbiB0aGUgVW5pY29kZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9VTkRFRklORUQgPSAtMTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEyODI4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDMzMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlck5hbWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyTmFtZUNob2ljZTsKKworLyoqCisgKiA8cD5DbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYW5kIHRoZWlyIG5hbWVzLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyBhIHZhbGlkIGNvZGVwb2ludCB0aGF0IGhhcyB2YWxpZAorICogbmFtZS48L3A+CisgKiA8cD5TZWUgVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKSBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgTWFyY2ggNSAyMDAyCisgKi8KK2NsYXNzIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IgaW1wbGVtZW50cyBWYWx1ZUl0ZXJhdG9yCit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gYW5kIHJldHVybnMKKyAgICAqIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5JZiB0aGUgcmV0dXJuIGJvb2xlYW4gaXMgYSBmYWxzZSwgdGhlIGNvbnRlbnRzIG9mIGVsZW1lbnRzIHdpbGwgbm90CisgICAgKiBiZSB1cGRhdGVkLjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBzZWUgRWxlbWVudAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmIChtX2N1cnJlbnRfID49IG1fbGltaXRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9jaG9pY2VfICE9IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbV9uYW1lXy5nZXRBbGdvcml0aG1MZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBhbGdvcml0aG0gcmFuZ2UgdGhhdCBjb3VsZCBjb250YWluIG1fY3VycmVudF8KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtSW5kZXhfIDwgMCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lXy5nZXRBbGdvcml0aG1FbmQobV9hbGdvcml0aG1JbmRleF8pIDwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYWxnb3JpdGhtSW5kZXhfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobV9hbGdvcml0aG1JbmRleF8gPCBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJsZWF2ZSB0aGUgZGF0YS1kcml2ZW4gb25lcyB3aXRoIHRoZSBhbGdvcml0aG1pYyBvbmVzCisgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciBhbGwgYWxnb3JpdGhtaWMgcmFuZ2VzOyBhc3N1bWUgdGhhdCB0aGV5IGFyZQorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhc2NlbmRpbmcgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gbV9uYW1lXy5nZXRBbGdvcml0aG1TdGFydChtX2FsZ29yaXRobUluZGV4Xyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRfIDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGdldCByaWQgb2YgdGhvc2UgY29kZXBvaW50cyB0aGF0IGFyZSBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBhbGdvcml0aG1pYyByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fbGltaXRfIDw9IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gbV9saW1pdF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdGVHcm91cChlbGVtZW50LCBlbmQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRfID49IG1fbGltaXRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciBpdGVyYXRlR3JvdXAgZmFpbHMsIGN1cnJlbnQgY29kZXBvaW50IG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3JlYXRlciB0aGFuIGxpbWl0CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlICAgPSBtX25hbWVfLmdldEFsZ29yaXRobU5hbWUobV9hbGdvcml0aG1JbmRleF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBncm91cCBpbmRleCBpZiB3ZSBhcmUgaW4gdGhlIGFsZ29yaXRobWljIG5hbWVzCisgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBJbmRleF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGVudW1lcmF0ZSB0aGUgY2hhcmFjdGVyIG5hbWVzIGFmdGVyIHRoZSBsYXN0IGFsZ29yaXRobWljIHJhbmdlCisgICAgICAgIGlmICghaXRlcmF0ZUdyb3VwKGVsZW1lbnQsIG1fbGltaXRfKSkgeworICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1fY2hvaWNlXyA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgIGlmICghaXRlcmF0ZUV4dGVuZGVkKGVsZW1lbnQsIG1fbGltaXRfKSkgeworICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5SZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHN0YXJ0IGl0ZXJhdGluZyBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4CisgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBvciBYIGlmIGEgc2V0UmFuZ2UoWCwgWSkgaGFzIGJlZW4gY2FsbGVkIHByZXZpb3VzbHkuCisgICAgKiA8L3A+CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBtX2N1cnJlbnRfICAgICAgICA9IG1fc3RhcnRfOworICAgICAgICBtX2dyb3VwSW5kZXhfICAgICA9IC0xOworICAgICAgICBtX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJlc3RyaWN0cyB0aGUgcmFuZ2Ugb2YgaW50ZWdlcnMgdG8gaXRlcmF0ZSBhbmQgcmVzZXRzIHRoZSBpdGVyYXRpb24KKyAgICAgKiB0byBiZWdpbiBhdCB0aGUgaW5kZXggYXJndW1lbnQgc3RhcnQuPC9wPgorICAgICAqIDxwPklmIHNldFJhbmdlKHN0YXJ0LCBlbmQpIGlzIG5vdCBwZXJmb3JtZWQgYmVmb3JlIG5leHQoZWxlbWVudCkgaXMKKyAgICAgKiBjYWxsZWQsIHRoZSBpdGVyYXRpb24gd2lsbCBzdGFydCBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4CisgICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kIGVuZCBhdCBVQ2hhcmFjdGVyLk1BWF9WQUxVRS48L3A+CisgICAgICogPHA+CisgICAgICogSWYgdGhpcyByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kCisgICAgICogVUNoYXJhY3Rlci5NQVhfVkFMVUUsIG5leHQoZWxlbWVudCkgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgaW50ZWdlciBpbiByYW5nZSB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGxpbWl0IDEgaW50ZWdlciBhZnRlciB0aGUgbGFzdCBpbnRlZ2VyIGluIHJhbmdlCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgYW4KKyAgICAgKiAgICAgICAgICAgIGlsbGVnYWwgcmFuZ2UuIEUuZyBsaW1pdCA8PSBzdGFydAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAic3RhcnQgb3IgbGltaXQgaGFzIHRvIGJlIHZhbGlkIFVuaWNvZGUgY29kZXBvaW50cyBhbmQgc3RhcnQgPCBsaW1pdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9zdGFydF8gPSBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW1pdCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMSkgeworICAgICAgICAgICAgbV9saW1pdF8gPSBVQ2hhcmFjdGVyLk1BWF9WQUxVRSArIDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2xpbWl0XyA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIG1fY3VycmVudF8gPSBtX3N0YXJ0XzsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gbmFtZSBuYW1lIGRhdGEKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UgZnJvbSB0aGUgY2xhc3MKKyAgICAqICAgICAgICAgICAgICAgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyTmFtZUNob2ljZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoVUNoYXJhY3Rlck5hbWUgbmFtZSwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGlmKG5hbWU9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVUNoYXJhY3Rlck5hbWUgbmFtZSBhcmd1bWVudCBjYW5ub3QgYmUgbnVsbC4gTWlzc2luZyB1bmFtZXMuaWN1PyIpOworICAgICAgICB9CisgICAgICAgIG1fbmFtZV8gICAgPSBuYW1lOworICAgICAgICAvLyBubyBleHBsaWNpdCBjaG9pY2UgaW4gVUNoYXJhY3RlciBzbyBubyBjaGVja3Mgb24gY2hvaWNlCisgICAgICAgIG1fY2hvaWNlXyAgPSBjaG9pY2U7CisgICAgICAgIG1fc3RhcnRfICAgPSBVQ2hhcmFjdGVyLk1JTl9WQUxVRTsKKyAgICAgICAgbV9saW1pdF8gICA9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMTsKKyAgICAgICAgbV9jdXJyZW50XyA9IG1fc3RhcnRfOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogTmFtZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZSBtX25hbWVfOworICAgIC8qKgorICAgICAqIE5hbWUgY2hvaWNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jaG9pY2VfOworICAgICAvKioKKyAgICAgKiBTdGFydCBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICAvKioKKyAgICAgKiBFbmQgKyAxIGl0ZXJhdGlvbiByYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbGltaXRfOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgY29kZXBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50XzsKKyAgICAvKioKKyAgICAgKiBHcm91cCBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBJbmRleF8gPSAtMTsKKyAgICAvKioKKyAgICAgKiBBbGdvcml0aG0gaW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIC8qKgorICAgICogR3JvdXAgdXNlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIEdST1VQX09GRlNFVFNfW10gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY2hhcltVQ2hhcmFjdGVyTmFtZS5MSU5FU19QRVJfR1JPVVBfICsgMV07CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBHUk9VUF9MRU5HVEhTX1tdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGNoYXJbVUNoYXJhY3Rlck5hbWUuTElORVNfUEVSX0dST1VQXyArIDFdOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHcm91cCBuYW1lIGl0ZXJhdGlvbiwgaXRlcmF0ZSBhbGwgdGhlIG5hbWVzIGluIHRoZSBjdXJyZW50IDMyLWdyb3VwIGFuZAorICAgICAqIHJldHVybnMgdGhlIGZpcnN0IGNvZGVwb2ludCB0aGF0IGhhcyBhIHZhbGlkIG5hbWUuCisgICAgICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAgICAgKiBAcGFyYW0gbGltaXQgbGFzdCBjb2RlcG9pbnQgKyAxIGluIHJhbmdlIHRvIHNlYXJjaAorICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYSBjb2RlcG9pbnQgd2l0aCBhIG5hbWUgaXMgZm91bmQgaW4gZ3JvdXAgYW5kIHdlIGNhbgorICAgICAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlCisgICAgICogICAgICAgICBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXRlcmF0ZVNpbmdsZUdyb3VwKFZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChHUk9VUF9PRkZTRVRTXykgeworICAgICAgICBzeW5jaHJvbml6ZWQoR1JPVVBfTEVOR1RIU18pIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IG1fbmFtZV8uZ2V0R3JvdXBMZW5ndGhzKG1fZ3JvdXBJbmRleF8sIEdST1VQX09GRlNFVFNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVBfTEVOR1RIU18pOworICAgICAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGludCAgICBvZmZzZXQgPSBVQ2hhcmFjdGVyTmFtZS5nZXRHcm91cE9mZnNldChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSAgID0gbV9uYW1lXy5nZXRHcm91cE5hbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArIEdST1VQX09GRlNFVFNfW29mZnNldF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUF9MRU5HVEhTX1tvZmZzZXRdLCBtX2Nob2ljZV8pOworICAgICAgICAgICAgICAgIGlmICgobmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgbV9jaG9pY2VfID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICBuYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE5hbWUobV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgbmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICByZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgbV9jdXJyZW50XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdyb3VwIG5hbWUgaXRlcmF0aW9uLCBpdGVyYXRlIGFsbCB0aGUgbmFtZXMgaW4gdGhlIGN1cnJlbnQgMzItZ3JvdXAgYW5kCisgICAgICogcmV0dXJucyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaGFzIGEgdmFsaWQgbmFtZS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHN0b3JlcyB0aGUgcmVzdWx0IGNvZGVwb2ludCBhbmQgbmFtZQorICAgICAqIEBwYXJhbSBsaW1pdCBsYXN0IGNvZGVwb2ludCArIDEgaW4gcmFuZ2UgdG8gc2VhcmNoCisgICAgICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBpbiBncm91cCBhbmQgd2UgY2FuCisgICAgICogICAgICAgICBiYWlsIGZyb20gZnVydGhlciBpdGVyYXRpb24sIHRydWUgdG8gY29udGludWUgb24gd2l0aCB0aGUKKyAgICAgKiAgICAgICAgIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlR3JvdXAoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKG1fZ3JvdXBJbmRleF8gPCAwKSB7CisgICAgICAgICAgICBtX2dyb3VwSW5kZXhfID0gbV9uYW1lXy5nZXRHcm91cChtX2N1cnJlbnRfKTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChtX2dyb3VwSW5kZXhfIDwgbV9uYW1lXy5tX2dyb3VwY291bnRfICYmCisgICAgICAgICAgICAgICBtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgICAgIC8vIGl0ZXJhdGUgdGlsbCB0aGUgbGFzdCBncm91cCBvciB0aGUgbGFzdCBjb2RlcG9pbnQKKyAgICAgICAgICAgIGludCBzdGFydE1TQiA9IFVDaGFyYWN0ZXJOYW1lLmdldENvZGVwb2ludE1TQihtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgIGludCBnTVNCICAgICA9IG1fbmFtZV8uZ2V0R3JvdXBNU0IobV9ncm91cEluZGV4Xyk7IC8vIGNhbiBiZSAtMQorICAgICAgICAgICAgaWYgKHN0YXJ0TVNCID09IGdNU0IpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnRNU0IgPT0gVUNoYXJhY3Rlck5hbWUuZ2V0Q29kZXBvaW50TVNCKGxpbWl0IC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhcnQgYW5kIGxpbWl0IC0gMSBhcmUgaW4gdGhlIHNhbWUgZ3JvdXAsIHRoZW4gZW51bWVyYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgaW4gdGhhdCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVTaW5nbGVHcm91cChyZXN1bHQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZW51bWVyYXRlIGNoYXJhY3RlcnMgaW4gdGhlIHBhcnRpYWwgc3RhcnQgZ3JvdXAKKyAgICAgICAgICAgICAgICAvLyBpZiAobV9uYW1lXy5nZXRHcm91cE9mZnNldChtX2N1cnJlbnRfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpdGVyYXRlU2luZ2xlR3JvdXAocmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLmdldEdyb3VwTGltaXQoZ01TQikpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgbV9ncm91cEluZGV4XzsgLy8gY29udGludWUgd2l0aCB0aGUgbmV4dCBncm91cAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhcnRNU0IgPiBnTVNCKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHdlIHN0YXJ0IGVudW1lcmF0aW5nIHdpdGggdGhlIGZpcnN0IGdyb3VwCisgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBJbmRleF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZ01JTiA9IFVDaGFyYWN0ZXJOYW1lLmdldEdyb3VwTWluKGdNU0IpOworICAgICAgICAgICAgICAgIGlmIChnTUlOID4gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZ01JTiA9IGxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jaG9pY2VfID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdGVFeHRlbmRlZChyZXN1bHQsIGdNSU4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9jdXJyZW50XyA9IGdNSU47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlIGV4dGVuZGVkIG5hbWVzLgorICAgICAqIEBwYXJhbSByZXN1bHQgc3RvcmVzIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGEgY29kZXBvaW50IHdpdGggYSBuYW1lIGlzIGZvdW5kIGFuZCB3ZSBjYW4KKyAgICAgKiAgICAgICAgIGJhaWwgZnJvbSBmdXJ0aGVyIGl0ZXJhdGlvbiwgdHJ1ZSB0byBjb250aW51ZSBvbiB3aXRoIHRoZQorICAgICAqICAgICAgICAgaXRlcmF0aW9uICh0aGlzIHdpbGwgYWx3YXlzIGJlIGZhbHNlIGZvciB2YWxpZCBjb2RlcG9pbnRzKQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlRXh0ZW5kZWQoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE9yMTBOYW1lKG1fY3VycmVudF8pOworICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCAmJiBuYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5pbnRlZ2VyID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICByZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKysgbV9jdXJyZW50XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQwNDMzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJUeXBlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDcwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisgKiBDbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYWNjb3JkaW5nIHRvIHRoZWlyIHR5cGVzLgorICogUmVzdWx0IG9mIGVhY2ggaXRlcmF0aW9uIGNvbnRhaW5zIHRoZSBpbnRlcnZhbCBvZiBjb2RlcG9pbnRzIHRoYXQgaGF2ZQorICogdGhlIHNhbWUgdHlwZS4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICogUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5zdGFydCkgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIiB0byBjb2RlcG9pbnQgXFx1IiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5saW1pdCAtIDEpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpOworICogfQorICogPC9wcmU+CisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRyaWVJdGVyYXRvcgorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMjQgMjAwMgorICovCitjbGFzcyBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGV4dGVuZHMgVHJpZUl0ZXJhdG9yCit7CisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogVHJpZUVudW1lcmF0aW9uIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gcHJvcGVydHkgdGhlIHVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRpZXMgdG8gYmUgdXNlZAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IoVUNoYXJhY3RlclByb3BlcnR5IHByb3BlcnR5KQorICAgIHsKKyAgICAgICBzdXBlcihwcm9wZXJ0eS5tX3RyaWVfKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2FsbGVkIGJ5IG5leHRFbGVtZW50KCkgdG8gZXh0cmFjdHMgYSAzMiBiaXQgdmFsdWUgZnJvbSBhIHRyaWUgdmFsdWUKKyAgICAqIHVzZWQgZm9yIGNvbXBhcmlzb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBiZSBvdmVyd3JpdHRlbiBpZiBzcGVjaWFsIG1hbmlwdWxhdGlvbiBpcyB0byBiZSBkb25lCisgICAgKiB0byByZXRyaWV2ZSBhIHJlbGV2YW50IGNvbXBhcmlzb24uCisgICAgKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLgorICAgICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICAgICogQHJldHVybiBleHRyYWN0ZWQgdmFsdWUKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWUgJiBVQ2hhcmFjdGVyUHJvcGVydHkuVFlQRV9NQVNLOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Byb3BlcnR5X1tdOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VQcm9wZXJ0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVByb3BlcnR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVlMzkzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VQcm9wZXJ0eS5qYXZhCkBAIC0wLDAgKzEsODM4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIGludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworLyoqCisgKiA8cD5TZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmljb2RlIHByb3BlcnRpZXMuIDwvcD4KKyAqIDxwPlRoZXNlIGNvbnN0YW50cyBhcmUgdXNlZCBpbiBmdW5jdGlvbnMgbGlrZSAKKyAqIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoaW50KSB0byBzZWxlY3Qgb25lIG9mIHRoZSBVbmljb2RlIHByb3BlcnRpZXMuIAorICogPC9wPgorICogPHA+VGhlIHByb3BlcnRpZXMgQVBJcyBhcmUgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgCisgKiBkZWZpbmVkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgCisgKiBSZXBvcnRzIChVVFIpLjwvcD4KKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmc+CisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnPC9hPi48L3A+IAorICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIFByb3BlcnR5QWxpYXNlcy50eHQuCisgKiA8L3A+IAorICogPHA+SW1wb3J0YW50OiBJZiBJQ1UgaXMgYnVpbHQgd2l0aCBVQ0QgZmlsZXMgZnJvbSBVbmljb2RlIHZlcnNpb25zIGJlbG93IAorICogMy4yLCB0aGVuIHByb3BlcnRpZXMgbWFya2VkIHdpdGggIm5ldyIgYXJlIG5vdCBvciBub3QgZnVsbHkgCisgKiBhdmFpbGFibGUuIENoZWNrIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSB0byBiZSBzdXJlLjwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgVVByb3BlcnR5Cit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgQWxwaGFiZXRpYy4gPC9wPgorICAgICAqIDxwPlByb3BlcnR5IGZvciBVQ2hhcmFjdGVyLmlzVUFscGhhYmV0aWMoKSwgZGlmZmVyZW50IGZyb20gdGhlIHByb3BlcnR5IAorICAgICAqIGluIFVDaGFyYWN0ZXIuaXNhbHBoYSgpLjwvcD4KKyAgICAgKiA8cD5MdSArIExsICsgTHQgKyBMbSArIExvICsgTmwgKyBPdGhlcl9BbHBoYWJldGljLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxQSEFCRVRJQyA9IDA7IAorCisgICAgLyoqIAorICAgICAqIEZpcnN0IGNvbnN0YW50IGZvciBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklOQVJZX1NUQVJUID0gQUxQSEFCRVRJQzsKKworICAgIC8qKiAKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgQVNDSUlfSGV4X0RpZ2l0ICgwLTkgQS1GIGEtZikuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFTQ0lJX0hFWF9ESUdJVCA9IDE7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBCaWRpX0NvbnRyb2wuPC9wPgorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyB3aGljaCBoYXZlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbiB0aGUgQmlkaSBBbGdvcml0aG0uCisgICAgICogPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DT05UUk9MID0gMjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEJpZGlfTWlycm9yZWQuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHRoYXQgbWF5IGNoYW5nZSBkaXNwbGF5IGluIFJUTCB0ZXh0LjwvcD4gCisgICAgICogPHA+UHJvcGVydHkgZm9yIFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgpLjwvcD4gCisgICAgICogPHA+U2VlIEJpZGkgQWxnb3JpdGhtOyBVVFIgOS48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJX01JUlJPUkVEID0gMzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERhc2guPC9wPiAKKyAgICAgKiA8cD5WYXJpYXRpb25zIG9mIGRhc2hlcy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQVNIID0gNDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKG5ldykuCisgICAgICogPC9wPiAKKyAgICAgKiA8cD5Qcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBjb2RlcG9pbnQgaXMgaWdub3JhYmxlIGluIG1vc3QgcHJvY2Vzc2luZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+Q29kZXBvaW50cyAoMjA2MC4uMjA2RiwgRkZGMC4uRkZGQiwgRTAwMDAuLkUwRkZGKSArIAorICAgICAqIE90aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKyAoQ2YgKyBDYyArIENzIC0gV2hpdGVfU3BhY2UpPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCA9IDU7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBEZXByZWNhdGVkIChuZXcpLjwvcD4gCisgICAgICogPHA+VGhlIHVzYWdlIG9mIGRlcHJlY2F0ZWQgY2hhcmFjdGVycyBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZC48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVBSRUNBVEVEID0gNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERpYWNyaXRpYy48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBsaW5ndWlzdGljYWxseSBtb2RpZnkgdGhlIG1lYW5pbmcgb2YgYW5vdGhlciAKKyAgICAgKiBjaGFyYWN0ZXIgdG8gd2hpY2ggdGhleSBhcHBseS48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUFDUklUSUMgPSA3OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRXh0ZW5kZXIuPC9wPiAKKyAgICAgKiA8cD5FeHRlbmQgdGhlIHZhbHVlIG9yIHNoYXBlIG9mIGEgcHJlY2VkaW5nIGFscGhhYmV0aWMgY2hhcmFjdGVyLCBlLmcuCisgICAgICogbGVuZ3RoIGFuZCBpdGVyYXRpb24gbWFya3MuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERVIgPSA4OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24uPC9wPiAKKyAgICAgKiA8cD5Db21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0ICsgU2luZ2xldG9uIERlY29tcG9zaXRpb25zICsgCisgICAgICogTm9uLVN0YXJ0ZXIgRGVjb21wb3NpdGlvbnMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT04gPSA5OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfQmFzZSAobmV3KS48L3A+CisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4gCisgICAgICogWzAuLjEwRkZGRl0tQ2MtQ2YtQ3MtQ28tQ24tWmwtWnAtR3JhcGhlbWVfTGluay1HcmFwaGVtZV9FeHRlbmQtQ0dKPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfQkFTRSA9IDEwOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfRXh0ZW5kIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy48L3A+IAorICAgICAqIDxwPk1lK01uK01jK090aGVyX0dyYXBoZW1lX0V4dGVuZC1HcmFwaGVtZV9MaW5rLUNHSjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0VYVEVORCA9IDExOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfTGluayAobmV3KS48L3A+IAorICAgICAqIDxwPkZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBncmFwaGVtZSBjbHVzdGVyIGJvdW5kYXJpZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfTElOSyA9IDEyOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSGV4X0RpZ2l0LjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyBjb21tb25seSB1c2VkIGZvciBoZXhhZGVjaW1hbCBudW1iZXJzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFWF9ESUdJVCA9IDEzOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSHlwaGVuLjwvcD4gCisgICAgICogPHA+RGFzaGVzIHVzZWQgdG8gbWFyayBjb25uZWN0aW9ucyBiZXR3ZWVuIHBpZWNlcyBvZiB3b3JkcywgcGx1cyB0aGUgCisgICAgICogS2F0YWthbmEgbWlkZGxlIGRvdC48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gPSAxNDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEX0NvbnRpbnVlLjwvcD4KKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHRoYXQgY2FuIGNvbnRpbnVlIGFuIGlkZW50aWZpZXIuPC9wPiAKKyAgICAgKiA8cD5JRF9TdGFydCtNbitNYytOZCtQYzwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElEX0NPTlRJTlVFID0gMTU7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRF9TdGFydC48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBjYW4gc3RhcnQgYW4gaWRlbnRpZmllci48L3A+IAorICAgICAqIDxwPkx1K0xsK0x0K0xtK0xvK05sPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURfU1RBUlQgPSAxNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElkZW9ncmFwaGljLjwvcD4gCisgICAgICogPHA+Q0pLViBpZGVvZ3JhcGhzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDID0gMTc7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRFNfQmluYXJ5X09wZXJhdG9yIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIElkZW9ncmFwaGljIERlc2NyaXB0aW9uIFNlcXVlbmNlcy4KKyAgICAgKiA8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRFNfQklOQVJZX09QRVJBVE9SID0gMTg7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRFNfVHJpbmFyeV9PcGVyYXRvciAobmV3KS48L3A+IAorICAgICAqIDxwP0ZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiAKKyAgICAgKiBTZXF1ZW5jZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURTX1RSSU5BUllfT1BFUkFUT1IgPSAxOTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEpvaW5fQ29udHJvbC48L3A+IAorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyBmb3IgY3Vyc2l2ZSBqb2luaW5nIGFuZCBsaWdhdGlvbi48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0wgPSAyMDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IExvZ2ljYWxfT3JkZXJfRXhjZXB0aW9uIChuZXcpLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGRvIG5vdCB1c2UgbG9naWNhbCBvcmRlciBhbmQgcmVxdWlyZSBzcGVjaWFsIAorICAgICAqIGhhbmRsaW5nIGluIG1vc3QgcHJvY2Vzc2luZy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTiA9IDIxOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgTG93ZXJjYXNlLjwvcD4gCisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZSgpLCBkaWZmZXJlbnQgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzbG93ZXIoKS48L3A+IAorICAgICAqIDxwPkxsK090aGVyX0xvd2VyY2FzZTwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSQ0FTRSA9IDIyOyAKKworICAgIC8qKiA8cD5CaW5hcnkgcHJvcGVydHkgTWF0aC48L3A+IAorICAgICAqIDxwPlNtK090aGVyX01hdGg8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIID0gMjM7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBOb25jaGFyYWN0ZXJfQ29kZV9Qb2ludC48L3A+IAorICAgICAqIDxwPkNvZGUgcG9pbnRzIHRoYXQgYXJlIGV4cGxpY2l0bHkgZGVmaW5lZCBhcyBpbGxlZ2FsIGZvciB0aGUgZW5jb2RpbmcgCisgICAgICogb2YgY2hhcmFjdGVycy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05DSEFSQUNURVJfQ09ERV9QT0lOVCA9IDI0OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgUXVvdGF0aW9uX01hcmsuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX01BUksgPSAyNTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFJhZGljYWwgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBRElDQUwgPSAyNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFNvZnRfRG90dGVkIChuZXcpLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB3aXRoIGEgInNvZnQgZG90IiwgbGlrZSBpIG9yIGouPC9wPgorICAgICAqIDxwPkFuIGFjY2VudCBwbGFjZWQgb24gdGhlc2UgY2hhcmFjdGVycyBjYXVzZXMgdGhlIGRvdCB0byBkaXNhcHBlYXIuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU09GVF9ET1RURUQgPSAyNzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFRlcm1pbmFsX1B1bmN0dWF0aW9uLjwvcD4gCisgICAgICogPHA+UHVuY3R1YXRpb24gY2hhcmFjdGVycyB0aGF0IGdlbmVyYWxseSBtYXJrIHRoZSBlbmQgb2YgdGV4dHVhbCAKKyAgICAgKiB1bml0cy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVJNSU5BTF9QVU5DVFVBVElPTiA9IDI4OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVW5pZmllZF9JZGVvZ3JhcGggKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIID0gMjk7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBVcHBlcmNhc2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVVXBwZXJjYXNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoKS48L3A+IAorICAgICAqIDxwPkx1K090aGVyX1VwcGVyY2FzZTwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRSA9IDMwOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgV2hpdGVfU3BhY2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZSgpLCBkaWZmZXJlbnQgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzU3BhY2UoKSBhbmQgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoKS48L3A+IAorICAgICAqIFNwYWNlIGNoYXJhY3RlcnMrVEFCK0NSK0xGLVpXU1AtWldOQlNQPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0hJVEVfU1BBQ0UgPSAzMTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFhJRF9Db250aW51ZS48L3A+IAorICAgICAqIDxwPklEX0NvbnRpbnVlIG1vZGlmaWVkIHRvIGFsbG93IGNsb3N1cmUgdW5kZXIgbm9ybWFsaXphdGlvbiBmb3JtcyAKKyAgICAgKiBORktDIGFuZCBORktELjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFhJRF9DT05USU5VRSA9IDMyOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgWElEX1N0YXJ0LjwvcD4gCisgICAgICogPHA+SURfU3RhcnQgbW9kaWZpZWQgdG8gYWxsb3cgY2xvc3VyZSB1bmRlciBub3JtYWxpemF0aW9uIGZvcm1zIE5GS0MgCisgICAgICogYW5kIE5GS0QuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWElEX1NUQVJUID0gMzM7IAorCisgICAgLyoqCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IENhc2VfU2Vuc2l0aXZlLjwvcD4KKyAgICAgKiA8cD5FaXRoZXIgdGhlIHNvdXJjZSBvZiBhIGNhc2UKKyAgICAgKiBtYXBwaW5nIG9yIF9pbl8gdGhlIHRhcmdldCBvZiBhIGNhc2UgbWFwcGluZy4gTm90IHRoZSBzYW1lIGFzCisgICAgICogdGhlIGdlbmVyYWwgY2F0ZWdvcnkgQ2FzZWRfTGV0dGVyLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFX1NFTlNJVElWRSA9IDM0OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFNUZXJtIChuZXcgaW4gVW5pY29kZSA0LjAuMSkuCisgICAgICogU2VudGVuY2UgVGVybWluYWwuIFVzZWQgaW4gVUFYICMyOTogVGV4dCBCb3VuZGFyaWVzCisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTX1RFUk0gPSAzNTsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBWYXJpYXRpb25fU2VsZWN0b3IgKG5ldyBpbiBVbmljb2RlIDQuMC4xKS4KKyAgICAgKiBJbmRpY2F0ZXMgYWxsIHRob3NlIGNoYXJhY3RlcnMgdGhhdCBxdWFsaWZ5IGFzIFZhcmlhdGlvbiBTZWxlY3RvcnMuCisgICAgICogRm9yIGRldGFpbHMgb24gdGhlIGJlaGF2aW9yIG9mIHRoZXNlIGNoYXJhY3RlcnMsCisgICAgICogc2VlIFN0YW5kYXJkaXplZFZhcmlhbnRzLmh0bWwgYW5kIDE1LjYgVmFyaWF0aW9uIFNlbGVjdG9ycy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQVJJQVRJT05fU0VMRUNUT1IgPSAzNjsKKworICAgIC8qKiAKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgTkZEX0luZXJ0LgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmVydCB1bmRlciBORkQsCisgICAgICogaS5lLiwgdGhleSBkbyBub3QgaW50ZXJhY3Qgd2l0aCBhZGphY2VudCBjaGFyYWN0ZXJzLgorICAgICAqIFVzZWQgZm9yIGV4YW1wbGUgaW4gbm9ybWFsaXppbmcgdHJhbnNmb3JtcyBpbiBpbmNyZW1lbnRhbCBtb2RlCisgICAgICogdG8gZmluZCB0aGUgYm91bmRhcnkgb2Ygc2FmZWx5IG5vcm1hbGl6YWJsZSB0ZXh0IGRlc3BpdGUgcG9zc2libGUKKyAgICAgKiB0ZXh0IGFkZGl0aW9ucy4KKyAgICAgKgorICAgICAqIFRoZXJlIGlzIG9uZSBzdWNoIHByb3BlcnR5IHBlciBub3JtYWxpemF0aW9uIGZvcm0uCisgICAgICogVGhlc2UgcHJvcGVydGllcyBhcmUgY29tcHV0ZWQgYXMgZm9sbG93cyAtIGFuIGluZXJ0IGNoYXJhY3RlciBpczoKKyAgICAgKiBhKSB1bmFzc2lnbmVkLCBvciBBTEwgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgKiBiKSBvZiBjb21iaW5pbmcgY2xhc3MgMC4KKyAgICAgKiBjKSBub3QgZGVjb21wb3NlZCBieSB0aGlzIG5vcm1hbGl6YXRpb24gZm9ybS4KKyAgICAgKiBBTkQgaWYgTkZDIG9yIE5GS0MsCisgICAgICogZCkgY2FuIG5ldmVyIGNvbXBvc2Ugd2l0aCBhIHByZXZpb3VzIGNoYXJhY3Rlci4KKyAgICAgKiBlKSBjYW4gbmV2ZXIgY29tcG9zZSB3aXRoIGEgZm9sbG93aW5nIGNoYXJhY3Rlci4KKyAgICAgKiBmKSBjYW4gbmV2ZXIgY2hhbmdlIGlmIGFub3RoZXIgY2hhcmFjdGVyIGlzIGFkZGVkLgorICAgICAqIEV4YW1wbGU6IGEtYnJldmUgbWlnaHQgc2F0aXNmeSBhbGwgYnV0IGYsIGJ1dCBpZiB5b3UKKyAgICAgKiBhZGQgYW4gb2dvbmVrIGl0IGNoYW5nZXMgdG8gYS1vZ29uZWsgKyBicmV2ZQorICAgICAqCisgICAgICogU2VlIGFsc28gY29tLmlibS50ZXh0LlVDRC5ORlNraXBwYWJsZSBpbiB0aGUgSUNVNEogcmVwb3NpdG9yeSwKKyAgICAgKiBhbmQgaWN1L3NvdXJjZS9jb21tb24vdW5vcm1pbXAuaCAuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZEX0lORVJUID0gMzc7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GS0RfSW5lcnQuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluZXJ0IHVuZGVyIE5GS0QsCisgICAgICogaS5lLiwgdGhleSBkbyBub3QgaW50ZXJhY3Qgd2l0aCBhZGphY2VudCBjaGFyYWN0ZXJzLgorICAgICAqIFVzZWQgZm9yIGV4YW1wbGUgaW4gbm9ybWFsaXppbmcgdHJhbnNmb3JtcyBpbiBpbmNyZW1lbnRhbCBtb2RlCisgICAgICogdG8gZmluZCB0aGUgYm91bmRhcnkgb2Ygc2FmZWx5IG5vcm1hbGl6YWJsZSB0ZXh0IGRlc3BpdGUgcG9zc2libGUKKyAgICAgKiB0ZXh0IGFkZGl0aW9ucy4KKyAgICAgKiBAc2VlICNORkRfSU5FUlQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZLRF9JTkVSVCA9IDM4OworCisgICAgLyoqIAorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBORkNfSW5lcnQuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluZXJ0IHVuZGVyIE5GQywKKyAgICAgKiBpLmUuLCB0aGV5IGRvIG5vdCBpbnRlcmFjdCB3aXRoIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICogVXNlZCBmb3IgZXhhbXBsZSBpbiBub3JtYWxpemluZyB0cmFuc2Zvcm1zIGluIGluY3JlbWVudGFsIG1vZGUKKyAgICAgKiB0byBmaW5kIHRoZSBib3VuZGFyeSBvZiBzYWZlbHkgbm9ybWFsaXphYmxlIHRleHQgZGVzcGl0ZSBwb3NzaWJsZQorICAgICAqIHRleHQgYWRkaXRpb25zLgorICAgICAqIEBzZWUgI05GRF9JTkVSVAorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORkNfSU5FUlQgPSAzOTsKKworICAgIC8qKiAKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgTkZLQ19JbmVydC4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5lcnQgdW5kZXIgTkZLQywKKyAgICAgKiBpLmUuLCB0aGV5IGRvIG5vdCBpbnRlcmFjdCB3aXRoIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICogVXNlZCBmb3IgZXhhbXBsZSBpbiBub3JtYWxpemluZyB0cmFuc2Zvcm1zIGluIGluY3JlbWVudGFsIG1vZGUKKyAgICAgKiB0byBmaW5kIHRoZSBib3VuZGFyeSBvZiBzYWZlbHkgbm9ybWFsaXphYmxlIHRleHQgZGVzcGl0ZSBwb3NzaWJsZQorICAgICAqIHRleHQgYWRkaXRpb25zLgorICAgICAqIEBzZWUgI05GRF9JTkVSVAorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktDX0lORVJUID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgUHJvcGVydHkgU2VnbWVudF9TdGFydGVyLgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzdGFydGVycyBpbiB0ZXJtcyBvZgorICAgICAqIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBhbmQgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogVGhleSBoYXZlIGNjYz0wIGFuZCBkbyBub3Qgb2NjdXIgaW4gbm9uLWluaXRpYWwgcG9zaXRpb24gb2YgdGhlCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgYW55IGNoYXJhY3RlcgorICAgICAqIChsaWtlICIgaW4gTkZEKGEtdW1sYXV0KSBhbmQgYSBKYW1vIFQgaW4gYW4gTkZEKEhhbmd1bCBMVlQpKS4KKyAgICAgKiBJQ1UgdXNlcyB0aGlzIHByb3BlcnR5IGZvciBzZWdtZW50aW5nIGEgc3RyaW5nIGZvciBnZW5lcmF0aW5nIGEgc2V0IG9mCisgICAgICogY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzLCBlLmcuIGZvciBjYW5vbmljYWwgY2xvc3VyZSB3aGlsZQorICAgICAqIHByb2Nlc3NpbmcgY29sbGF0aW9uIHRhaWxvcmluZyBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VHTUVOVF9TVEFSVEVSID0gNDE7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgUGF0dGVybl9TeW50YXggKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXgKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzEvKQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFUVEVSTl9TWU5UQVggPSA0MjsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBQYXR0ZXJuX1doaXRlX1NwYWNlIChuZXcgaW4gVW5pY29kZSA0LjEpLgorICAgICAqIFNlZSBVQVggIzMxIElkZW50aWZpZXIgYW5kIFBhdHRlcm4gU3ludGF4CisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjMxLykKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBVFRFUk5fV0hJVEVfU1BBQ0UgPSA0MzsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBhbG51bSAoYSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzcykuCisgICAgICogSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBVVFMgIzE4IEFubmV4IEMgU3RhbmRhcmQgUmVjb21tZW5kYXRpb24uCisgICAgICogU2VlIHRoZSBVQ2hhcmFjdGVyIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NJWF9BTE5VTSA9IDQ0OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IGJsYW5rIChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX0JMQU5LID0gNDU7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgZ3JhcGggKGEgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3MpLgorICAgICAqIEltcGxlbWVudGVkIGFjY29yZGluZyB0byB0aGUgVVRTICMxOCBBbm5leCBDIFN0YW5kYXJkIFJlY29tbWVuZGF0aW9uLgorICAgICAqIFNlZSB0aGUgVUNoYXJhY3RlciBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9TSVhfR1JBUEggPSA0NjsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBwcmludCAoYSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzcykuCisgICAgICogSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBVVFMgIzE4IEFubmV4IEMgU3RhbmRhcmQgUmVjb21tZW5kYXRpb24uCisgICAgICogU2VlIHRoZSBVQ2hhcmFjdGVyIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NJWF9QUklOVCA9IDQ3OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IHhkaWdpdCAoYSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzcykuCisgICAgICogSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBVVFMgIzE4IEFubmV4IEMgU3RhbmRhcmQgUmVjb21tZW5kYXRpb24uCisgICAgICogU2VlIHRoZSBVQ2hhcmFjdGVyIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NJWF9YRElHSVQgPSA0ODsKKworICAgIC8qKiAKKyAgICAgKiA8cD5PbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0aWVzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklOQVJZX0xJTUlUID0gNDk7CisgICAgCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9DbGFzcy4KKyAgICAgKiBTYW1lIGFzIFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGludCksIHJldHVybnMgVUNoYXJhY3RlckRpcmVjdGlvbiB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJX0NMQVNTID0gMHgxMDAwOworCisgICAgLyoqIAorICAgICAqIEZpcnN0IGNvbnN0YW50IGZvciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRfU1RBUlQgPSBCSURJX0NMQVNTOworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmxvY2suCisgICAgICogU2FtZSBhcyBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5vZihpbnQpLCByZXR1cm5zIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrIAorICAgICAqIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMT0NLID0gMHgxMDAxOworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcy4KKyAgICAgKiBTYW1lIGFzIFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoaW50KSwgcmV0dXJucyA4LWJpdCBudW1lcmljIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MgPSAweDEwMDI7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBEZWNvbXBvc2l0aW9uX1R5cGUuCisgICAgICogUmV0dXJucyBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QT1NJVElPTl9UWVBFID0gMHgxMDAzOworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgRWFzdF9Bc2lhbl9XaWR0aC4KKyAgICAgKiBTZWUgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTEvCisgICAgICogUmV0dXJucyBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVBU1RfQVNJQU5fV0lEVEggPSAweDEwMDQ7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5LgorICAgICAqIFNhbWUgYXMgVUNoYXJhY3Rlci5nZXRUeXBlKGludCksIHJldHVybnMgVUNoYXJhY3RlckNhdGVnb3J5IHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkVSQUxfQ0FURUdPUlkgPSAweDEwMDU7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBKb2luaW5nX0dyb3VwLgorICAgICAqIFJldHVybnMgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSk9JTklOR19HUk9VUCA9IDB4MTAwNjsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEpvaW5pbmdfVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSk9JTklOR19UWVBFID0gMHgxMDA3OworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTGluZV9CcmVhay4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuTGluZUJyZWFrIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVfQlJFQUsgPSAweDEwMDg7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBOdW1lcmljX1R5cGUuCisgICAgICogUmV0dXJucyBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVFlQRSA9IDB4MTAwOTsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IFNjcmlwdC4KKyAgICAgKiBTYW1lIGFzIFVTY3JpcHQuZ2V0U2NyaXB0KGludCksIHJldHVybnMgVVNjcmlwdCB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQ1JJUFQgPSAweDEwMEE7CisgICAgCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgSGFuZ3VsX1N5bGxhYmxlX1R5cGUsIG5ldyBpbiBVbmljb2RlIDQuCisgICAgICogUmV0dXJucyBIYW5ndWxTeWxsYWJsZVR5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1NZTExBQkxFX1RZUEUgPSAweDEwMEI7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IE5GRF9RdWlja19DaGVjay4KKyAgICAgKiBSZXR1cm5zIG51bWVyaWMgdmFsdWVzIGNvbXBhdGlibGUgd2l0aCBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZEX1FVSUNLX0NIRUNLID0gMHgxMDBDOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBORktEX1F1aWNrX0NoZWNrLgorICAgICAqIFJldHVybnMgbnVtZXJpYyB2YWx1ZXMgY29tcGF0aWJsZSB3aXRoIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktEX1FVSUNLX0NIRUNLID0gMHgxMDBEOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBORkNfUXVpY2tfQ2hlY2suCisgICAgICogUmV0dXJucyBudW1lcmljIHZhbHVlcyBjb21wYXRpYmxlIHdpdGggTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GQ19RVUlDS19DSEVDSyA9IDB4MTAwRTsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTkZLQ19RdWlja19DaGVjay4KKyAgICAgKiBSZXR1cm5zIG51bWVyaWMgdmFsdWVzIGNvbXBhdGlibGUgd2l0aCBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZLQ19RVUlDS19DSEVDSyA9IDB4MTAwRjsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTGVhZF9DYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzLgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgdGhlIGNjYyBvZiB0aGUgZmlyc3QgY29kZSBwb2ludAorICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uLCBvciBsY2NjKGMpPWNjYyhORkQoYylbMF0pLgorICAgICAqIFVzZWZ1bCBmb3IgY2hlY2tpbmcgZm9yIGNhbm9uaWNhbGx5IG9yZGVyZWQgdGV4dDsKKyAgICAgKiBzZWUgTm9ybWFsaXplci5GQ0QgYW5kIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvbm90ZXMvdG41LyNGQ0QgLgorICAgICAqIFJldHVybnMgOC1iaXQgbnVtZXJpYyB2YWx1ZXMgbGlrZSBDQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAxMDsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgVHJhaWxfQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcy4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIHRoZSBjY2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludAorICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uLCBvciBsY2NjKGMpPWNjYyhORkQoYylbbGFzdF0pLgorICAgICAqIFVzZWZ1bCBmb3IgY2hlY2tpbmcgZm9yIGNhbm9uaWNhbGx5IG9yZGVyZWQgdGV4dDsKKyAgICAgKiBzZWUgTm9ybWFsaXplci5GQ0QgYW5kIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvbm90ZXMvdG41LyNGQ0QgLgorICAgICAqIFJldHVybnMgOC1iaXQgbnVtZXJpYyB2YWx1ZXMgbGlrZSBDQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MgPSAweDEwMTE7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEdyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIFJldHVybnMgVUdyYXBoZW1lQ2x1c3RlckJyZWFrIHZhbHVlcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0NMVVNURVJfQlJFQUsgPSAweDEwMTI7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IFNlbnRlbmNlX0JyZWFrIChuZXcgaW4gVW5pY29kZSA0LjEpLgorICAgICAqIFVzZWQgaW4gVUFYICMyOTogVGV4dCBCb3VuZGFyaWVzCisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKKyAgICAgKiBSZXR1cm5zIFVTZW50ZW5jZUJyZWFrIHZhbHVlcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTlRFTkNFX0JSRUFLID0gMHgxMDEzOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBXb3JkX0JyZWFrIChuZXcgaW4gVW5pY29kZSA0LjEpLgorICAgICAqIFVzZWQgaW4gVUFYICMyOTogVGV4dCBCb3VuZGFyaWVzCisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKKyAgICAgKiBSZXR1cm5zIFVXb3JkQnJlYWtWYWx1ZXMgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9CUkVBSyA9IDB4MTAxNDsKKworICAgIC8qKiAKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSAKKyAgICAgKiBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5UX0xJTUlUID0gMHgxMDE1OworCisgICAgLyoqIAorICAgICAqIEJpdG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNrLgorICAgICAqIFRoaXMgaXMgdGhlIEdlbmVyYWxfQ2F0ZWdvcnkgcHJvcGVydHkgcmV0dXJuZWQgYXMgYSBiaXQgbWFzay4KKyAgICAgKiBXaGVuIHVzZWQgaW4gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMpLAorICAgICAqIHJldHVybnMgYml0IG1hc2tzIGZvciBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzIHdoZXJlIGV4YWN0bHkgb25lIGJpdCBpcyBzZXQuIAorICAgICAqIFdoZW4gdXNlZCB3aXRoIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoKSBhbmQgVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bSgpLCAKKyAgICAgKiBhIG11bHRpLWJpdCBtYXNrIGlzIHVzZWQgZm9yIHNldHMgb2YgY2F0ZWdvcmllcyBsaWtlICJMZXR0ZXJzIi4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkVSQUxfQ0FURUdPUllfTUFTSyA9IDB4MjAwMDsgCisKKyAgICAvKiogCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGJpdC1tYXNrIFVuaWNvZGUgcHJvcGVydGllcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19TVEFSVCA9IEdFTkVSQUxfQ0FURUdPUllfTUFTSzsKKworICAgIC8qKiAKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBiaXQtbWFzayBVbmljb2RlIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVNLX0xJTUlUID0gMHgyMDAxOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBEb3VibGUgcHJvcGVydHkgTnVtZXJpY19WYWx1ZS4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmdldFVuaWNvZGVOdW1lcmljVmFsdWUoaW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1FUklDX1ZBTFVFID0gMHgzMDAwOworCisgICAgLyoqCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGRvdWJsZSBVbmljb2RlIHByb3BlcnRpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9VQkxFX1NUQVJUID0gTlVNRVJJQ19WQUxVRTsKKworICAgIC8qKgorICAgICAqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGRvdWJsZSBVbmljb2RlIHByb3BlcnRpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9VQkxFX0xJTUlUID0gMHgzMDAxOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IEFnZS4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmdldEFnZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFHRSA9IDB4NDAwMDsKKworICAgIC8qKgorICAgICAqIEZpcnN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29kZSBwcm9wZXJ0aWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUUklOR19TVEFSVCA9IEFHRTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBCaWRpX01pcnJvcmluZ19HbHlwaC4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmdldE1pcnJvcihpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJRElfTUlSUk9SSU5HX0dMWVBIID0gMHg0MDAxOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IENhc2VfRm9sZGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmZvbGRDYXNlKFN0cmluZywgYm9vbGVhbikuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRV9GT0xESU5HID0gMHg0MDAyOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IElTT19Db21tZW50LgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0SVNPQ29tbWVudChpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElTT19DT01NRU5UID0gMHg0MDAzOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IExvd2VyY2FzZV9NYXBwaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoU3RyaW5nKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUkNBU0VfTUFQUElORyA9IDB4NDAwNDsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBOYW1lLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0TmFtZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BTUUgPSAweDQwMDU7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgU2ltcGxlX0Nhc2VfRm9sZGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmZvbGRDYXNlKGludCwgYm9vbGVhbikuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX0NBU0VfRk9MRElORyA9IDB4NDAwNjsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBTaW1wbGVfTG93ZXJjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTVBMRV9MT1dFUkNBU0VfTUFQUElORyA9IDB4NDAwNzsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBTaW1wbGVfVGl0bGVjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTVBMRV9USVRMRUNBU0VfTUFQUElORyA9IDB4NDAwODsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBTaW1wbGVfVXBwZXJjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTVBMRV9VUFBFUkNBU0VfTUFQUElORyA9IDB4NDAwOTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBUaXRsZWNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKFN0cmluZykuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElUTEVDQVNFX01BUFBJTkcgPSAweDQwMEE7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgVW5pY29kZV8xX05hbWUuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci5nZXROYW1lMV8wKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JQ09ERV8xX05BTUUgPSAweDQwMEI7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgVXBwZXJjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTdHJpbmcpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRV9NQVBQSU5HID0gMHg0MDBDOworCisgICAgLyoqCisgICAgICogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3Igc3RyaW5nIFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFJJTkdfTElNSVQgPSAweDQwMEQ7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb25zdGFudHMgZm9yIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKCkgYW5kCisgICAgICogVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZSgpLiAgVGhlc2Ugc2VsZWN0b3JzIGFyZSB1c2VkIHRvCisgICAgICogY2hvb3NlIHdoaWNoIG5hbWUgaXMgcmV0dXJuZWQgZm9yIGEgZ2l2ZW4gcHJvcGVydHkgb3IgdmFsdWUuCisgICAgICogQWxsIHByb3BlcnRpZXMgYW5kIHZhbHVlcyBoYXZlIGEgbG9uZyBuYW1lLiAgTW9zdCBoYXZlIGEgc2hvcnQKKyAgICAgKiBuYW1lLCBidXQgc29tZSBkbyBub3QuICBVbmljb2RlIGFsbG93cyBmb3IgYWRkaXRpb25hbCBuYW1lcywKKyAgICAgKiBiZXlvbmQgdGhlIGxvbmcgYW5kIHNob3J0IG5hbWUsIHdoaWNoIHdvdWxkIGJlIGluZGljYXRlZCBieQorICAgICAqIExPTkcgKyBpLCB3aGVyZSBpPTEsIDIsLi4uCisgICAgICoKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXIjZ2V0UHJvcGVydHlOYW1lCisgICAgICogQHNlZSBVQ2hhcmFjdGVyI2dldFByb3BlcnR5VmFsdWVOYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludGVyZmFjZSBOYW1lQ2hvaWNlIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNlbGVjdG9yIGZvciB0aGUgYWJicmV2aWF0ZWQgbmFtZSBvZiBhIHByb3BlcnR5IG9yIHZhbHVlLgorICAgICAgICAgKiBNb3N0IHByb3BlcnRpZXMgYW5kIHZhbHVlcyBoYXZlIGEgc2hvcnQgbmFtZTsgdGhvc2UgdGhhdCBkbworICAgICAgICAgKiBub3QgcmV0dXJuIG51bGwuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNlbGVjdG9yIGZvciB0aGUgbG9uZyBuYW1lIG9mIGEgcHJvcGVydHkgb3IgdmFsdWUuICBBbGwKKyAgICAgICAgICogcHJvcGVydGllcyBhbmQgdmFsdWVzIGhhdmUgYSBsb25nIG5hbWUuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMT05HID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIG51bWJlciBvZiBwcmVkZWZpbmVkIHByb3BlcnR5IG5hbWUgY2hvaWNlcy4gIEluZGl2aWR1YWwKKyAgICAgICAgICogcHJvcGVydGllcyBvciB2YWx1ZXMgbWF5IGhhdmUgbW9yZSB0aGFuIENPVU5UIGFsaWFzZXMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhMWNkNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEKQEAgLTAsMCArMSw3OTcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBBIGNsYXNzIHRvIHJlZmxlY3QgVVRSICMyNDogU2NyaXB0IE5hbWVzCisgKiAoYmFzZWQgb24gSVNPIDE1OTI0OjIwMDAsICJDb2RlIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YKKyAqIHNjcmlwdHMiKS4gIFVUUiAjMjQgZGVzY3JpYmVzIHRoZSBiYXNpcyBmb3IgYSBuZXcgVW5pY29kZSBkYXRhIGZpbGUsCisgKiBTY3JpcHRzLnR4dC4KKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVNjcmlwdCB7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkyMDAxIElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogSW52YWxpZCBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DT0RFID0gLTE7CisgICAgLyoqCisgICAgICogQ29tbW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OICAgICAgID0gIDA7ICAvKiBaeXl5ICovCisgICAgLyoqCisgICAgICogSW5oZXJpdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5IRVJJVEVEICAgID0gIDE7ICAvKiBRYWFpICovCisgICAgLyoqCisgICAgICogQXJhYmljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDICAgICAgID0gIDI7ICAvKiBBcmFiICovCisgICAgLyoqCisgICAgICogQXJtZW5pYW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUk1FTklBTiAgICAgPSAgMzsgIC8qIEFybW4gKi8KKyAgICAvKioKKyAgICAgKiBCZW5nYWxpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkVOR0FMSSAgICAgID0gIDQ7ICAvKiBCZW5nICovCisgICAgLyoqCisgICAgICogQm9wb21vZm8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCT1BPTU9GTyAgICAgPSAgNTsgIC8qIEJvcG8gKi8KKyAgICAvKioKKyAgICAgKiBDaGVyb2tlZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIRVJPS0VFICAgICA9ICA2OyAgLyogQ2hlciAqLworICAgIC8qKgorICAgICAqIENvcHRpYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPUFRJQyAgICAgICA9ICA3OyAgLyogUWFhYyAqLworICAgIC8qKgorICAgICAqIEN5cmlsbGljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUMgICAgID0gIDg7ICAvKiBDeXJsIChDeXJzKSAqLworICAgIC8qKgorICAgICAqIERlc2VyZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVNFUkVUICAgICAgPSAgOTsgIC8qIERzcnQgKi8KKyAgICAvKioKKyAgICAgKiBEZXZhbmFnYXJpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVWQU5BR0FSSSAgID0gMTA7ICAvKiBEZXZhICovCisgICAgLyoqCisgICAgICogRXRoaW9waWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQyAgICAgPSAxMTsgIC8qIEV0aGkgKi8KKyAgICAvKioKKyAgICAgKiBHZW9yZ2lhbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT1JHSUFOICAgICA9IDEyOyAgLyogR2VvciAoR2VvbjsgR2VvYSkgKi8KKyAgICAvKioKKyAgICAgKiBHb3RoaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHT1RISUMgICAgICAgPSAxMzsgIC8qIEdvdGggKi8KKyAgICAvKioKKyAgICAgKiBHcmVlaworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSRUVLICAgICAgICA9IDE0OyAgLyogR3JlayAqLworICAgIC8qKgorICAgICAqIEd1amFyYXRpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1VKQVJBVEkgICAgID0gMTU7ICAvKiBHdWpyICovCisgICAgLyoqCisgICAgICogR3VybXVraGkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVVJNVUtISSAgICAgPSAxNjsgIC8qIEd1cnUgKi8KKyAgICAvKioKKyAgICAgKiBIYW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU4gICAgICAgICAgPSAxNzsgIC8qIEhhbmkgKi8KKyAgICAvKioKKyAgICAgKiBIYW5ndWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUwgICAgICAgPSAxODsgIC8qIEhhbmcgKi8KKyAgICAvKioKKyAgICAgKiBIZWJyZXcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUJSRVcgICAgICAgPSAxOTsgIC8qIEhlYnIgKi8KKyAgICAvKioKKyAgICAgKiBIaXJhZ2FuYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJUkFHQU5BICAgICA9IDIwOyAgLyogSGlyYSAqLworICAgIC8qKgorICAgICAqIEthbm5hZGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5OQURBICAgICAgPSAyMTsgIC8qIEtuZGEgKi8KKyAgICAvKioKKyAgICAgKiBLYXRha2FuYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BICAgICA9IDIyOyAgLyogS2FuYSAqLworICAgIC8qKgorICAgICAqIEtobWVyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hNRVIgICAgICAgID0gMjM7ICAvKiBLaG1yICovCisgICAgLyoqCisgICAgICogTGFvCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFPICAgICAgICAgID0gMjQ7ICAvKiBMYW9vICovCisgICAgLyoqCisgICAgICogTGF0aW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTiAgICAgICAgPSAyNTsgIC8qIExhdG4gKExhdGY7IExhdGcpICovCisgICAgLyoqCisgICAgICogTWFsYXlhbGFtCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFMQVlBTEFNICAgID0gMjY7ICAvKiBNbHltICovCisgICAgLyoqCisgICAgICogTWFuZ29saWFuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTU9OR09MSUFOICAgID0gMjc7ICAvKiBNb25nICovCisgICAgLyoqCisgICAgICogTXlhbW1hcgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1ZQU5NQVIgICAgICA9IDI4OyAgLyogTXltciAqLworICAgIC8qKgorICAgICAqIE9naGFtCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0dIQU0gICAgICAgID0gMjk7ICAvKiBPZ2FtICovCisgICAgLyoqCisgICAgICogT2xkIEl0YWxsaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfSVRBTElDICAgPSAzMDsgIC8qIEl0YWwgKi8KKyAgICAvKioKKyAgICAgKiBPcml5YQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9SSVlBICAgICAgICA9IDMxOyAgLyogT3J5YSAqLworICAgIC8qKgorICAgICAqIFJ1bmljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUlVOSUMgICAgICAgID0gMzI7ICAvKiBSdW5yICovCisgICAgLyoqCisgICAgICogU2luaGFsYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTkhBTEEgICAgICA9IDMzOyAgLyogU2luaCAqLworICAgIC8qKgorICAgICAqIFN5cmlhYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZUklBQyAgICAgICA9IDM0OyAgLyogU3lyYyAoU3lyajsgU3lybjsgU3lyZSkgKi8KKyAgICAvKioKKyAgICAgKiBUYW1pbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTUlMICAgICAgICA9IDM1OyAgLyogVGFtbCAqLworICAgIC8qKgorICAgICAqIFRlbHVndQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTFVHVSAgICAgICA9IDM2OyAgLyogVGVsdSAqLworICAgIC8qKgorICAgICAqIFRoYW5hCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEhBQU5BICAgICAgID0gMzc7ICAvKiBUaGFhICovCisgICAgLyoqCisgICAgICogVGhhaQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUkgICAgICAgICA9IDM4OyAgLyogVGhhaSAqLworICAgIC8qKgorICAgICAqIFRpYmV0YW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUJFVEFOICAgICAgPSAzOTsgIC8qIFRpYnQgKi8KKyAgICAvKioKKyAgICAgKiBVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBTkFESUFOX0FCT1JJR0lOQUwgPSA0MDsgIC8qIENhbnMgKi8KKyAgICAvKioKKyAgICAgKiBVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3ltYm9scyAoYWxpYXMpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUNBUyAgICAgICAgID0gQ0FOQURJQU5fQUJPUklHSU5BTDsgIC8qIENhbnMgKi8KKyAgICAvKioKKyAgICAgKiBZaSBzeWxsYWJsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZSSAgICAgICAgICAgPSA0MTsgIC8qIFlpaWkgKi8KKyAgICAvKioKKyAgICAgKiBUYWdhbG9nCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQUxPRyAgICAgID0gNDI7ICAvKiBUZ2xnICovCisgICAgLyoqCisgICAgICogSGFudW5vb28KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5VTk9PICAgICAgPSA0MzsgIC8qIEhhbm8gKi8KKyAgICAvKioKKyAgICAgKiBCdWhpZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVSElEICAgICAgICA9IDQ0OyAgLyogQnVoZCAqLworICAgIC8qKgorICAgICAqIFRhZ2JhbndhCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQkFOV0EgICAgID0gNDU7ICAvKiBUYWdiICovCisgICAgLyoqCisgICAgICogQnJhaWxsZQorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJBSUxMRSAgICAgID0gNDY7ICAvKiBCcmFpICovCisgICAgLyoqCisgICAgICogQ3lwcmlvdAorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUFJJT1QgICAgICAgICAgICAgID0gNDc7ICAvKiBDcHJ0ICovIAorICAgIC8qKgorICAgICAqIExpbWJ1CisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU1CVSAgICAgICAgICAgICAgICA9IDQ4OyAgLyogTGltYiAqLyAKKyAgICAvKioKKyAgICAgKiBMaW5lYXIgQgorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0IgICAgID0gNDk7ICAvKiBMaW5iICovIAorICAgIC8qKgorICAgICAqIE9zbWFueWEKKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9TTUFOWUEgICAgICAgICAgICAgID0gNTA7ICAvKiBPc21hICovIAorICAgIC8qKgorICAgICAqIFNoYXZpYW4KKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQVZJQU4gICAgICAgICAgICAgID0gNTE7ICAvKiBTaGF3ICovIAorICAgIC8qKgorICAgICAqIFRhaSBMZQorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFJX0xFICAgICAgICAgICAgICAgPSA1MjsgIC8qIFRhbGUgKi8gCisgICAgLyoqCisgICAgICogVWdhcml0aWMKKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVHQVJJVElDICAgICA9IDUzOyAgLyogVWdhciAqLyAKKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjAuMQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BX09SX0hJUkFHQU5BID0gNTQ7ICAvKkhya3QgKi8KKworICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNC4xIEBkcmFmdCBJQ1UgMy40ICovCisKKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVR0lORVNFID0gNTU7ICAgICAgICAgICAvKiBCdWdpICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHTEFHT0xJVElDID0gNTY7ICAgICAgICAgLyogR2xhZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hBUk9TSFRISSA9IDU3OyAgICAgICAgIC8qIEtoYXIgKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZTE9USV9OQUdSSSA9IDU4OyAgICAgICAvKiBTeWxvICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORVdfVEFJX0xVRSA9IDU5OyAgICAgICAgLyogVGFsdSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElGSU5BR0ggPSA2MDsgICAgICAgICAgIC8qIFRmbmcgKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9QRVJTSUFOID0gNjE7ICAgICAgICAvKiBYcGVvICovCisKKworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFMSU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA2MjsgLyogQmFsaSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFUQUsgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MzsgLyogQmF0ayAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxJU1NZTUJPTFMgICAgICAgICAgICAgICAgICAgPSA2NDsgLyogQmxpcyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJBSE1JICAgICAgICAgICAgICAgICAgICAgICAgPSA2NTsgLyogQnJhaCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hBTSAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2NjsgLyogQ2hhbSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0lSVEggICAgICAgICAgICAgICAgICAgICAgICAgPSA2NzsgLyogQ2lydCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX0NIVVJDSF9TTEFWT05JQ19DWVJJTExJQyAgPSA2ODsgLyogQ3lycyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVNT1RJQ19FR1lQVElBTiAgICAgICAgICAgICAgPSA2OTsgLyogRWd5ZCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElFUkFUSUNfRUdZUFRJQU4gICAgICAgICAgICAgPSA3MDsgLyogRWd5aCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUdZUFRJQU5fSElFUk9HTFlQSFMgICAgICAgICAgPSA3MTsgLyogRWd5cCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hVVFNVUkkgICAgICAgICAgICAgICAgICAgICAgPSA3MjsgLyogR2VvayAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExJRklFRF9IQU4gICAgICAgICAgICAgICAgPSA3MzsgLyogSGFucyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBRElUSU9OQUxfSEFOICAgICAgICAgICAgICAgPSA3NDsgLyogSGFudCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFIQVdIX0hNT05HICAgICAgICAgICAgICAgICAgPSA3NTsgLyogSG1uZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX0hVTkdBUklBTiAgICAgICAgICAgICAgICAgPSA3NjsgLyogSHVuZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFSQVBQQU5fSU5EVVMgICAgICAgICAgICAgICAgPSA3NzsgLyogSW5kcyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSkFWQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA3ODsgLyogSmF2YSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FZQUhfTEkgICAgICAgICAgICAgICAgICAgICAgPSA3OTsgLyogS2FsaSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fRlJBS1RVUiAgICAgICAgICAgICAgICAgPSA4MDsgLyogTGF0ZiAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fR0FFTElDICAgICAgICAgICAgICAgICAgPSA4MTsgLyogTGF0ZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVQQ0hBICAgICAgICAgICAgICAgICAgICAgICAgPSA4MjsgLyogTGVwYyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0EgICAgICAgICAgICAgICAgICAgICAgPSA4MzsgLyogTGluYSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFOREFFQU4gICAgICAgICAgICAgICAgICAgICAgPSA4NDsgLyogTWFuZCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFZQU5fSElFUk9HTFlQSFMgICAgICAgICAgICAgPSA4NTsgLyogTWF5YSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVST0lUSUMgICAgICAgICAgICAgICAgICAgICAgPSA4NjsgLyogTWVybyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTktPICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA4NzsgLyogTmtvbyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JLSE9OICAgICAgICAgICAgICAgICAgICAgICAgPSA4ODsgLyogT3JraCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX1BFUk1JQyAgICAgICAgICAgICAgICAgICAgPSA4OTsgLyogUGVybSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhBR1NfUEEgICAgICAgICAgICAgICAgICAgICAgPSA5MDsgLyogUGhhZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPRU5JQ0lBTiAgICAgICAgICAgICAgICAgICAgPSA5MTsgLyogUGhueCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEhPTkVUSUNfUE9MTEFSRCAgICAgICAgICAgICAgPSA5MjsgLyogUGxyZCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9OR09ST05HTyAgICAgICAgICAgICAgICAgICAgPSA5MzsgLyogUm9ybyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FSQVRJICAgICAgICAgICAgICAgICAgICAgICAgPSA5NDsgLyogU2FyYSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVNUUkFOR0VMT19TWVJJQUMgICAgICAgICAgICAgPSA5NTsgLyogU3lyZSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NjsgLyogU3lyaiAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUFTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NzsgLyogU3lybiAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVOR1dBUiAgICAgICAgICAgICAgICAgICAgICAgPSA5ODsgLyogVGVuZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFJICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5OTsgLyogVmFpaSAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVklTSUJMRV9TUEVFQ0ggICAgICAgICAgICAgICAgPSAxMDA7LyogVmlzcCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VORUlGT1JNICAgICAgICAgICAgICAgICAgICAgPSAxMDE7LyogWHN1eCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5XUklUVEVOX0xBTkdVQUdFUyAgICAgICAgICAgPSAxMDI7LyogWnh4eCAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgCisgICAgICogQGRyYWZ0IElDVSAzLjYgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiAgICAgICAgICAgICAgICAgICAgICAgPSAxMDM7LyogWnp6eiAqLyAvKiBVbmtub3duPSJDb2RlIGZvciB1bmNvZGVkIHNjcmlwdCIsIGZvciB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzICovCisgICAgCisgICAgLyogUHJpdmF0ZSB1c2UgY29kZXMgZnJvbSBRYWFhIC0gUWFieCBhcmUgbm90IHN1cHBvcnRlZCovCisKKyAgICAvKioKKyAgICAgKiBMaW1pdAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVfTElNSVQgICA9IDEwNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ1JJUFRfTUFTSyAgID0gMHgwMDAwMDA3ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgcHJvcD0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtMb2NhbGVTY3JpcHQgPSAiTG9jYWxlU2NyaXB0IjsKKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlZBTElEX05BTUUgPSAiSW52YWxpZCI7CisgICAgLyoqCisgICAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvZGUgZnJvbSBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludFtdIGZpbmRDb2RlRnJvbUxvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIHJiIGlzIG5vdCBhIHN0cmljdCBmYWxsYmFjayBvZiB0aGUgcmVxdWVzdGVkIGxvY2FsZSwgcmV0dXJuIG51bGwKKyAgICAgICAgLy9pZighTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YocmIuZ2V0VUxvY2FsZSgpLnRvU3RyaW5nKCksIGxvY2FsZS50b1N0cmluZygpKSl7CisgICAgICAgIC8vICAgIHJldHVybiBudWxsOworICAgICAgICAvL30KKyAgICAgICAgLy9ub24gZXhpc3RlbnQgbG9jYWxlIGNoZWNrCisgICAgICAgIGlmKHJiLmdldExvYWRpbmdTdGF0dXMoKT09SUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUICYmICEgbG9jYWxlLmVxdWFscyhVTG9jYWxlLmdldERlZmF1bHQoKSkpeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gcmIuZ2V0KGtMb2NhbGVTY3JpcHQpOworICAgICAgICAKKyAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtzdWIuZ2V0U2l6ZSgpXTsKKyAgICAgICAgaW50IHcgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IGNvZGUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKFVQcm9wZXJ0eS5TQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViLmdldFN0cmluZyhpKSk7CisgICAgICAgICAgICByZXN1bHRbdysrXSA9IGNvZGU7CisKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3IDwgcmVzdWx0Lmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiYmFkIGxvY2FsZSBkYXRhLCBsaXN0ZWQgIiArIAorICAgICAgICAgICAgICAgICByZXN1bHQubGVuZ3RoICsgIiBzY3JpcHRzIGJ1dCBmb3VuZCBvbmx5ICIgKyB3KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBjb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGxvY2FsZSBvciBJU08gMTU5MjQgYWJicmV2aWF0aW9uIG9yIG5hbWUuCisgICAgICogUmV0dXJucyBNQUxBWUFNIGdpdmVuICJNYWxheWFtIiBPUiAiTWx5bSIuCisgICAgICogUmV0dXJucyBMQVRJTiBnaXZlbiAiZW4iIE9SICJlbl9VUyIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIExvY2FsZQorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlcyBhcnJheS4gbnVsbCBpZiB0aGUgdGhlIGNvZGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50W10gZ2V0Q29kZShMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlRnJvbUxvY2FsZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBjb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGxvY2FsZSBvciBJU08gMTU5MjQgYWJicmV2aWF0aW9uIG9yIG5hbWUuCisgICAgICogUmV0dXJucyBNQUxBWUFNIGdpdmVuICJNYWxheWFtIiBPUiAiTWx5bSIuCisgICAgICogUmV0dXJucyBMQVRJTiBnaXZlbiAiZW4iIE9SICJlbl9VUyIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFVMb2NhbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZXMgYXJyYXkuIG51bGwgaWYgdGhlIHRoZSBjb2RlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludFtdIGdldENvZGUoVUxvY2FsZSBsb2NhbGUpeworICAgICAgICByZXR1cm4gZmluZENvZGVGcm9tTG9jYWxlKGxvY2FsZSk7CisgICAgfQorICAgIC8qKgorICAgICAqIEdldHMgYSBzY3JpcHQgY29kZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBsb2NhbGUgb3IgSVNPIDE1OTI0IGFiYnJldmlhdGlvbiBvciBuYW1lLgorICAgICAqIFJldHVybnMgTUFMQVlBTSBnaXZlbiAiTWFsYXlhbSIgT1IgIk1seW0iLgorICAgICAqIFJldHVybnMgTEFUSU4gZ2l2ZW4gImVuIiBPUiAiZW5fVVMiCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUbyBzZWFyY2ggYnkgc2hvcnQgb3IgbG9uZyBzY3JpcHQgYWxpYXMgb25seSwgdXNlCisgICAgICogVUNoYXJhY2F0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwgYWxpYXMpCisgICAgICogaW5zdGVhZC4gIFRoaXMgZG9lcyBhIGZhc3QgbG9va3VwIHdpdGggbm8gYWNjZXNzIG9mIHRoZSBsb2NhbGUKKyAgICAgKiBkYXRhLgorICAgICAqIEBwYXJhbSBuYW1lT3JBYmJyT3JMb2NhbGUgbmFtZSBvZiB0aGUgc2NyaXB0IG9yIElTTyAxNTkyNCBjb2RlIG9yIGxvY2FsZQorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlcyBhcnJheS4gbnVsbCBpZiB0aGUgdGhlIGNvZGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50W10gZ2V0Q29kZShTdHJpbmcgbmFtZU9yQWJick9yTG9jYWxlKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgaW50W10geworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVPckFiYnJPckxvY2FsZSkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmluZENvZGVGcm9tTG9jYWxlKG5ldyBVTG9jYWxlKG5hbWVPckFiYnJPckxvY2FsZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBjb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lT3JBYmJyIG5hbWUgb2YgdGhlIHNjcmlwdCBvciBJU08gMTU5MjQgY29kZQorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlIHZhbHVlIG9yIElOVkFMSURfQ09ERSBpZiB0aGUgY29kZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q29kZUZyb21OYW1lKFN0cmluZyBuYW1lT3JBYmJyKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShVUHJvcGVydHkuU0NSSVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU9yQWJicik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9DT0RFOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2NyaXB0IGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjb2RlcG9pbnQuCisgICAgICogUmV0dXJucyBVU2NyaXB0Lk1BTEFZQU0gZ2l2ZW4gMHgwRDAyCisgICAgICogQHBhcmFtIGNvZGVwb2ludCBVQ2hhcjMyIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZ2V0U2NyaXB0KGludCBjb2RlcG9pbnQpeworICAgICAgICBpZiAoY29kZXBvaW50ID49IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFICYgY29kZXBvaW50IDw9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gKHByb3AuZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsMCkgJiBTQ1JJUFRfTUFTSyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGNvZGVwb2ludCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gc2NyaXB0IGNvZGUuCisgICAgICogUmV0dXJucyAgIk1hbGF5YW0iIGdpdmVuIE1BTEFZQU0KKyAgICAgKiBAcGFyYW0gc2NyaXB0Q29kZSBpbnQgc2NyaXB0IGNvZGUKKyAgICAgKiBAcmV0dXJuIHNjcmlwdCBuYW1lIGFzIGEgc3RyaW5nIGluIGZ1bGwgYXMgZ2l2ZW4gaW4gVFIjMjQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXROYW1lKGludCBzY3JpcHRDb2RlKXsKKyAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gc2NyaXB0IGNvZGUuCisgICAgICogUmV0dXJucyAgIk1seW0iIGdpdmVuIE1BTEFZQU0KKyAgICAgKiBAcGFyYW0gc2NyaXB0Q29kZSBpbnQgc2NyaXB0IGNvZGUKKyAgICAgKiBAcmV0dXJuIHNjcmlwdCBhYmJyZXZpYXRlZCBuYW1lIGFzIGEgc3RyaW5nICBhcyBnaXZlbiBpbiBUUiMyNAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGdldFNob3J0TmFtZShpbnQgc2NyaXB0Q29kZSl7CisgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKFVQcm9wZXJ0eS5TQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdENvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqICBQcml2YXRlIENvbnN0cnVjdG9yLiBOZXZlciBkZWZhdWx0IGNvbnN0cnVjdAorICAgICAqLworICAgIHByaXZhdGUgVVNjcmlwdCgpe30KKyAgICAvLy9DTE9WRVI6T04KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMzQ2ODIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEKQEAgLTAsMCArMSw2MzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IGlzIHVzZWQgdG8gZmluZCBydW5zIG9mIGNoYXJhY3RlcnMgaW4KKyAqIHRoZSBzYW1lIHNjcmlwdCwgYXMgZGVmaW5lZCBpbiB0aGUgPGNvZGU+VVNjcmlwdDwvY29kZT4gY2xhc3MuCisgKiBJdCBpbXBsZW1lbnRzIGEgc2ltcGxlIGl0ZXJhdG9yIG92ZXIgYW4gYXJyYXkgb2YgY2hhcmFjdGVycy4KKyAqIFRoZSBpdGVyYXRvciB3aWxsIGFzc2lnbiA8Y29kZT5DT01NT048L2NvZGU+IGFuZCA8Y29kZT5JTkhFUklURUQ8L2NvZGU+CisgKiBjaGFyYWN0ZXJzIHRvIHRoZSBzYW1lIHNjcmlwdCBhcyB0aGUgcHJlY2VlZGluZyBjaGFyYWN0ZXJzLiBJZiB0aGUKKyAqIENPTU1PTiBhbmQgSU5IRVJJVEVEIGNoYXJhY3RlcnMgYXJlIGZpcnN0LCB0aGV5IHdpbGwgYmUgYXNzaWduZWQgdG8KKyAqIHRoZSBzYW1lIHNjcmlwdCBhcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMuCisgKgorICogVGhlIGl0ZXJhdG9yIHdpbGwgdHJ5IHRvIG1hdGNoIHBhaXJlZCBwdW5jdHVhdGlvbi4gSWYgaXQgc2VlcyBhbgorICogb3BlbmluZyBwdW5jdHVhdGlvbiBjaGFyYWN0ZXIsIGl0IHdpbGwgcmVtZW1iZXIgdGhlIHNjcmlwdCB0aGF0CisgKiB3YXMgYXNzaWduZWQgdG8gdGhhdCBjaGFyYWN0ZXIsIGFuZCBhc3NpZ24gdGhlIHNhbWUgc2NyaXB0IHRvIHRoZQorICogbWF0Y2hpbmcgY2xvc2luZyBwdW5jdHVhdGlvbi4KKyAqCisgKiBObyBhdHRlbXB0IGlzIG1hZGUgdG8gY29tYmluZSByZWxhdGVkIHNjcmlwdHMgaW50byBhIHNpbmdsZSBydW4uIEluCisgKiBwYXJ0aWN1bGFyLCBIaXJhZ2FuYSwgS2F0YWthbmEsIGFuZCBIYW4gY2hhcmFjdGVycyB3aWxsIGFwcGVhciBpbiBzZXBlcmF0ZQorICogcnVucy4KKworICogSGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdyB0byBpdGVyYXRlIG92ZXIgc2NyaXB0IHJ1bnM6CisgKiA8cHJlPgorICogdm9pZCBwcmludFNjcmlwdFJ1bnMoY2hhcltdIHRleHQpCisgKiB7CisgKiAgICAgVVNjcmlwdFJ1biBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bih0ZXh0KTsKKyAqCisgKiAgICAgd2hpbGUgKHNjcmlwdFJ1bi5uZXh0KCkpIHsKKyAqICAgICAgICAgaW50IHN0YXJ0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRTdGFydCgpOworICogICAgICAgICBpbnQgbGltaXQgID0gc2NyaXB0UnVuLmdldFNjcmlwdExpbWl0KCk7CisgKiAgICAgICAgIGludCBzY3JpcHQgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0Q29kZSgpOworICoKKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTY3JpcHQgXCIiICsgVVNjcmlwdC5nZXROYW1lKHNjcmlwdCkgKyAiXCIgZnJvbSAiICsKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgIiB0byAiICsgbGltaXQgKyAiLiIpOworICogICAgIH0KKyAqICB9CisgKiA8L3ByZT4KKyAqCisgKiBAaW50ZXJuYWwKKyAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVNjcmlwdFJ1bgoreworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5OS0yMDAyIElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGVtcHR5IDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdC4gVGhlIDxjb2RlPm5leHQoKTwvY29kZT4KKyAgICAgKiBtZXRob2Qgd2lsbCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+IHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKCkKKyAgICB7CisgICAgICAgIGNoYXJbXSBudWxsQ2hhcnMgPSBudWxsOworICAgICAgICAKKyAgICAgICAgcmVzZXQobnVsbENoYXJzLCAwLCAwKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKFN0cmluZyB0ZXh0KQorICAgIHsKKyAgICAgICAgcmVzZXQgKHRleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBvYmplY3Qgd2hpY2ggaXRlcmF0ZXMgb3ZlciBhIHN1YnJhbmdlCisgICAgICogb2YgdGhlIGNoYXJhY2V0cnMgaW4gdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZQorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVVNjcmlwdFJ1bihTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICByZXNldCh0ZXh0LCBzdGFydCwgY291bnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdCB3aGljaCBpdGVyYXRlcyBvdmVyIHRoZSBnaXZlbgorICAgICAqIGNoYXJhY2V0cnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIGFycmF5IG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oY2hhcltdIGNoYXJzKQorICAgIHsKKyAgICAgICAgcmVzZXQoY2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdCB3aGljaCBpdGVyYXRlcyBvdmVyIGEgc3VicmFuZ2UKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gY2hhcmFjZXRycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZQorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVVNjcmlwdFJ1bihjaGFyW10gY2hhcnMsIGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgcmVzZXQoY2hhcnMsIHN0YXJ0LCBjb3VudCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gZW1wdHkgYW55IG9sZCBwYXJlblN0YWNrIGNvbnRlbnRzLgorICAgICAgICAvLyBOT1RFOiB0aGlzIGlzIG5vdCB0aGUgbW9zdCBlZmZpY2llbnQgd2F5CisgICAgICAgIC8vIHRvIGRvIHRoaXMsIGJ1dCBpdCdzIHRoZSBlYXNpZXN0IHRvIHdyaXRlLi4uCisgICAgICAgIHdoaWxlIChzdGFja0lzTm90RW1wdHkoKSkgeworICAgICAgICAgICAgcG9wKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNjcmlwdFN0YXJ0ID0gdGV4dFN0YXJ0OworICAgICAgICBzY3JpcHRMaW1pdCA9IHRleHRTdGFydDsKKyAgICAgICAgc2NyaXB0Q29kZSAgPSBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgcGFyZW5TUCAgICAgPSAtMTsKKyAgICAgICAgcHVzaENvdW50ICAgPSAgMDsKKyAgICAgICAgZml4dXBDb3VudCAgPSAgMDsKKyAgICAgICAgCisgICAgICAgIHRleHRJbmRleCA9IHRleHRTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBnaXZlbiByYW5nZSBvZiB0aGUgdGV4dC4gVGhyb3dzCisgICAgICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSByYW5nZSBpcyBvdXRzaWRlIG9mIHRoZSBib3VuZHMgb2YgdGhlCisgICAgICogY2hhcmFjdGVyIGFycmF5LgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgbmV3IGZpcnN0IGNoYXJhY3RlciBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG5ldyBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgbGVuID0gdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzdGFydCA8IDAgfHwgY291bnQgPCAwIHx8IHN0YXJ0ID4gbGVuIC0gY291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGV4dFN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRleHRMaW1pdCA9IHN0YXJ0ICsgY291bnQ7CisKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIDxjb2RlPmNvdW50PC9jb2RlPiBjaGFyYWN0ZXJzCisgICAgICogaW4gPGNvZGU+Y2hhcnM8L2NvZGU+IHN0YXJ0aW5nIGF0IDxjb2RlPnN0YXJ0PC9jb2RlPi4gVGhpcyBhbGxvd3MKKyAgICAgKiBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSBuZXcgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KGNoYXJbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICBpZiAoY2hhcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgY2hhcnMgPSBlbXB0eUNoYXJBcnJheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGV4dCA9IGNoYXJzOworCisgICAgICAgIHJlc2V0KHN0YXJ0LCBjb3VudCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT5jaGFyczwvY29kZT4uIFRoaXMgYWxsb3dzIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIG5ldyBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KGNoYXJbXSBjaGFycykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKGNoYXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxlbmd0aCA9IGNoYXJzLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzZXQoY2hhcnMsIDAsIGxlbmd0aCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgPGNvZGU+Y291bnQ8L2NvZGU+IGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT50ZXh0PC9jb2RlPiBzdGFydGluZyBhdCA8Y29kZT5zdGFydDwvY29kZT4uIFRoaXMgYWxsb3dzCisgICAgICogY2xpZW50cyB0byByZXVzZSBhbiBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBuZXcgc3RyaW5nIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudWJlciBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBjaGFycyA9IHRleHQudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzZXQoY2hhcnMsIHN0YXJ0LCBjb3VudCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT50ZXh0PC9jb2RlPi4gVGhpcyBhbGxvd3MgY2xpZW50cyB0byByZXVzZSBhbiBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBuZXcgc3RyaW5nIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoICAgPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzZXQodGV4dCwgMCwgbGVuZ3RoKTsKKyAgICB9CisgICAgICAgIAorCisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFNjcmlwdFN0YXJ0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBzY3JpcHRTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U2NyaXB0TGltaXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmlwdExpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSBzY3JpcHQgb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNjcmlwdCBjb2RlIGZvciB0aGUgc2NyaXB0IG9mIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U2NyaXB0Q29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0Q29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBuZXh0IHNjcmlwdCBydW4uIFJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHRoZXJlCisgICAgICogaXNuJ3QgYW5vdGhlciBydW4sIHJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB0aGVyZSBpc24ndCBhbm90aGVyIHJ1biwgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBuZXh0KCkKKyAgICB7CisgICAgICAgIC8vIGlmIHdlJ3ZlIGZhbGxlbiBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dCwgd2UncmUgZG9uZQorICAgICAgICBpZiAoc2NyaXB0TGltaXQgPj0gdGV4dExpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgc2NyaXB0Q29kZSAgPSBVU2NyaXB0LkNPTU1PTjsKKyAgICAgICAgc2NyaXB0U3RhcnQgPSBzY3JpcHRMaW1pdDsKKyAgICAgICAgCisgICAgICAgIHN5bmNGaXh1cCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRleHRJbmRleCA8IHRleHRMaW1pdCkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIHRleHRTdGFydCwgdGV4dExpbWl0LCB0ZXh0SW5kZXggLSB0ZXh0U3RhcnQpOworICAgICAgICAgICAgaW50IGNvZGVQb2ludENvdW50ID0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIGludCBzYyA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgIGludCBwYWlySW5kZXggPSBnZXRQYWlySW5kZXgoY2gpOworCisgICAgICAgICAgICB0ZXh0SW5kZXggKz0gY29kZVBvaW50Q291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFBhaXJlZCBjaGFyYWN0ZXIgaGFuZGxpbmc6CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gaWYgaXQncyBhbiBvcGVuIGNoYXJhY3RlciwgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay4KKyAgICAgICAgICAgIC8vIGlmIGl0J3MgYSBjbG9zZSBjaGFyYWN0ZXIsIGZpbmQgdGhlIG1hdGNoaW5nIG9wZW4gb24gdGhlCisgICAgICAgICAgICAvLyBzdGFjaywgYW5kIHVzZSB0aGF0IHNjcmlwdCBjb2RlLiBBbnkgbm9uLW1hdGNoaW5nIG9wZW4KKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgYWJvdmUgaXQgb24gdGhlIHN0YWNrIHdpbGwgYmUgcG9wZWQuCisgICAgICAgICAgICBpZiAocGFpckluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoKHBhaXJJbmRleCAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChwYWlySW5kZXgsIHNjcmlwdENvZGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBwaSA9IHBhaXJJbmRleCAmIH4xOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdGFja0lzTm90RW1wdHkoKSAmJiB0b3AoKS5wYWlySW5kZXggIT0gcGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcCgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrSXNOb3RFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzYyA9IHRvcCgpLnNjcmlwdENvZGU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzYW1lU2NyaXB0KHNjcmlwdENvZGUsIHNjKSkgeworICAgICAgICAgICAgICAgIGlmIChzY3JpcHRDb2RlIDw9IFVTY3JpcHQuSU5IRVJJVEVEICYmIHNjID4gVVNjcmlwdC5JTkhFUklURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29kZSA9IHNjOworCisgICAgICAgICAgICAgICAgICAgIGZpeHVwKHNjcmlwdENvZGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgY2hhcmFjdGVyIGlzIGEgY2xvc2UgcGFpcmVkIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAvLyBwb3AgdGhlIG1hdGNoaW5nIG9wZW4gY2hhcmFjdGVyIGZyb20gdGhlIHN0YWNrCisgICAgICAgICAgICAgICAgaWYgKHBhaXJJbmRleCA+PSAwICYmIChwYWlySW5kZXggJiAxKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBvcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gV2UndmUganVzdCBzZWVuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV4dCBydW4uIEJhY2sgb3ZlciBpdCBzbyB3ZSdsbCBzZWUKKyAgICAgICAgICAgICAgICAvLyBpdCBhZ2FpbiB0aGUgbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgIHRleHRJbmRleCAtPSBjb2RlUG9pbnRDb3VudDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHNjcmlwdExpbWl0ID0gdGV4dEluZGV4OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzY3JpcHQgY29kZXMgdG8gc2VlIGlmIHRoZXkgYXJlIGluIHRoZSBzYW1lIHNjcmlwdC4gSWYgb25lIHNjcmlwdCBpcworICAgICAqIGEgc3Ryb25nIHNjcmlwdCwgYW5kIHRoZSBvdGhlciBpcyBJTkhFUklURUQgb3IgQ09NTU9OLCBpdCB3aWxsIGNvbXBhcmUgZXF1YWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NyaXB0T25lIG9uZSBvZiB0aGUgc2NyaXB0IGNvZGVzLgorICAgICAqIEBwYXJhbSBzY3JpcHRUd28gdGhlIG90aGVyIHNjcmlwdCBjb2RlLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIHR3byBzY3JpcHRzIGFyZSB0aGUgc2FtZS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gc2FtZVNjcmlwdChpbnQgc2NyaXB0T25lLCBpbnQgc2NyaXB0VHdvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmlwdE9uZSA8PSBVU2NyaXB0LklOSEVSSVRFRCB8fCBzY3JpcHRUd28gPD0gVVNjcmlwdC5JTkhFUklURUQgfHwgc2NyaXB0T25lID09IHNjcmlwdFR3bzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEFuIGludGVybmFsIGNsYXNzIHdoaWNoIGhvbGRzIGVudHJpZXMgb24gdGhlIHBhcmVuIHN0YWNrLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFBhcmVuU3RhY2tFbnRyeQorICAgIHsKKyAgICAgICAgaW50IHBhaXJJbmRleDsKKyAgICAgICAgaW50IHNjcmlwdENvZGU7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUGFyZW5TdGFja0VudHJ5KGludCB0aGVQYWlySW5kZXgsIGludCB0aGVTY3JpcHRDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICBwYWlySW5kZXggID0gdGhlUGFpckluZGV4OworICAgICAgICAgICAgc2NyaXB0Q29kZSA9IHRoZVNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1vZChpbnQgc3ApCisgICAgeworICAgICAgICByZXR1cm4gc3AgJSBQQVJFTl9TVEFDS19ERVBUSDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluYyhpbnQgc3AsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBtb2Qoc3AgKyBjb3VudCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbmMoaW50IHNwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluYyhzcCwgMSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkZWMoaW50IHNwLCBpbnQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gbW9kKHNwICsgUEFSRU5fU1RBQ0tfREVQVEggLSBjb3VudCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkZWMoaW50IHNwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlYyhzcCwgMSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsaW1pdEluYyhpbnQgY291bnQpCisgICAgeworICAgICAgICBpZiAoY291bnQgPCBQQVJFTl9TVEFDS19ERVBUSCkgeworICAgICAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gc3RhY2tJc0VtcHR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBwdXNoQ291bnQgPD0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIHN0YWNrSXNOb3RFbXB0eSgpCisgICAgeworICAgICAgICByZXR1cm4gISBzdGFja0lzRW1wdHkoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHB1c2goaW50IHBhaXJJbmRleCwgaW50IHNjcmlwdENvZGUpCisgICAgeworICAgICAgICBwdXNoQ291bnQgID0gbGltaXRJbmMocHVzaENvdW50KTsKKyAgICAgICAgZml4dXBDb3VudCA9IGxpbWl0SW5jKGZpeHVwQ291bnQpOworICAgICAgICAKKyAgICAgICAgcGFyZW5TUCA9IGluYyhwYXJlblNQKTsKKyAgICAgICAgcGFyZW5TdGFja1twYXJlblNQXSA9IG5ldyBQYXJlblN0YWNrRW50cnkocGFpckluZGV4LCBzY3JpcHRDb2RlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHBvcCgpCisgICAgeworICAgICAgICAKKyAgICAgICAgaWYgKHN0YWNrSXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcmVuU3RhY2tbcGFyZW5TUF0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKGZpeHVwQ291bnQgPiAwKSB7CisgICAgICAgICAgICBmaXh1cENvdW50IC09IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1c2hDb3VudCAtPSAxOworICAgICAgICBwYXJlblNQID0gZGVjKHBhcmVuU1ApOworICAgICAgICAKKyAgICAgICAgLy8gSWYgdGhlIHN0YWNrIGlzIG5vdyBlbXB0eSwgcmVzZXQgdGhlIHN0YWNrCisgICAgICAgIC8vIHBvaW50ZXJzIHRvIHRoZWlyIGluaXRpYWwgdmFsdWVzLgorICAgICAgICBpZiAoc3RhY2tJc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHBhcmVuU1AgPSAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIFBhcmVuU3RhY2tFbnRyeSB0b3AoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcmVuU3RhY2tbcGFyZW5TUF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgdm9pZCBzeW5jRml4dXAoKQorICAgIHsKKyAgICAgICAgZml4dXBDb3VudCA9IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgdm9pZCBmaXh1cChpbnQgc2NyaXB0Q29kZSkKKyAgICB7CisgICAgICAgIGludCBmaXh1cFNQID0gZGVjKHBhcmVuU1AsIGZpeHVwQ291bnQpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGZpeHVwQ291bnQtLSA+IDApIHsKKyAgICAgICAgICAgIGZpeHVwU1AgPSBpbmMoZml4dXBTUCk7CisgICAgICAgICAgICBwYXJlblN0YWNrW2ZpeHVwU1BdLnNjcmlwdENvZGUgPSBzY3JpcHRDb2RlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2hhcltdIGVtcHR5Q2hhckFycmF5ID0ge307CisKKyAgICBwcml2YXRlIGNoYXJbXSB0ZXh0OworCisgICAgcHJpdmF0ZSBpbnQgdGV4dEluZGV4OworICAgIHByaXZhdGUgaW50ICB0ZXh0U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgIHRleHRMaW1pdDsKKyAgICAKKyAgICBwcml2YXRlIGludCAgc2NyaXB0U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgIHNjcmlwdExpbWl0OworICAgIHByaXZhdGUgaW50ICBzY3JpcHRDb2RlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IFBBUkVOX1NUQUNLX0RFUFRIID0gMzI7CisgICAgcHJpdmF0ZSBzdGF0aWMgUGFyZW5TdGFja0VudHJ5IHBhcmVuU3RhY2tbXSA9IG5ldyBQYXJlblN0YWNrRW50cnlbUEFSRU5fU1RBQ0tfREVQVEhdOworICAgIHByaXZhdGUgaW50IHBhcmVuU1AgPSAtMTsKKyAgICBwcml2YXRlIGludCBwdXNoQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGZpeHVwQ291bnQgPSAwOworCisgICAgLyoqCisgICAgICogRmluZCB0aGUgaGlnaGVzdCBiaXQgdGhhdCdzIHNldCBpbiBhIHdvcmQuIFVzZXMgYSBiaW5hcnkgc2VhcmNoIHRocm91Z2gKKyAgICAgKiB0aGUgYml0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuIHRoZSB3b3JkIGluIHdoaWNoIHRvIGZpbmQgdGhlIGhpZ2hlc3QgYml0IHRoYXQncyBzZXQuCisgICAgICogQHJldHVybiB0aGUgYml0IG51bWJlciAoY291bnRpbmcgZnJvbSB0aGUgbG93IG9yZGVyIGJpdCkgb2YgdGhlIGhpZ2hlc3QgYml0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgaGlnaEJpdChpbnQgbikKKyAgICB7CisgICAgICAgIGlmIChuIDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMzI7CisgICAgICAgIH0KKworICAgICAgICBieXRlIGJpdCA9IDA7CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxNikgeworICAgICAgICAgICAgbiA+Pj0gMTY7CisgICAgICAgICAgICBiaXQgKz0gMTY7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDgpIHsKKyAgICAgICAgICAgIG4gPj49IDg7CisgICAgICAgICAgICBiaXQgKz0gODsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgNCkgeworICAgICAgICAgICAgbiA+Pj0gNDsKKyAgICAgICAgICAgIGJpdCArPSA0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAyKSB7CisgICAgICAgICAgICBuID4+PSAyOworICAgICAgICAgICAgYml0ICs9IDI7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDEpIHsKKyAgICAgICAgICAgIG4gPj49IDE7CisgICAgICAgICAgICBiaXQgKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBiaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoIHRoZSBwYWlyZWRDaGFycyBhcnJheSBmb3IgdGhlIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCB0aGUgY2hhcmFjdGVyIGZvciB3aGljaCB0byBzZWFyY2guCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGFibGUsIG9yIC0xIGlmIGl0J3Mgbm90IHRoZXJlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRQYWlySW5kZXgoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IHByb2JlID0gcGFpcmVkQ2hhclBvd2VyOworICAgICAgICBpbnQgaW5kZXggPSAwOworCisgICAgICAgIGlmIChjaCA+PSBwYWlyZWRDaGFyc1twYWlyZWRDaGFyRXh0cmFdKSB7CisgICAgICAgICAgICBpbmRleCA9IHBhaXJlZENoYXJFeHRyYTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChwcm9iZSA+ICgxIDw8IDApKSB7CisgICAgICAgICAgICBwcm9iZSA+Pj0gMTsKKworICAgICAgICAgICAgaWYgKGNoID49IHBhaXJlZENoYXJzW2luZGV4ICsgcHJvYmVdKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gcHJvYmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFpcmVkQ2hhcnNbaW5kZXhdICE9IGNoKSB7CisgICAgICAgICAgICBpbmRleCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBwYWlyZWRDaGFyc1tdID0geworICAgICAgICAweDAwMjgsIDB4MDAyOSwgLy8gYXNjaWkgcGFpcmVkIHB1bmN0dWF0aW9uCisgICAgICAgIDB4MDAzYywgMHgwMDNlLAorICAgICAgICAweDAwNWIsIDB4MDA1ZCwKKyAgICAgICAgMHgwMDdiLCAweDAwN2QsCisgICAgICAgIDB4MDBhYiwgMHgwMGJiLCAvLyBndWlsbGVtZXRzCisgICAgICAgIDB4MjAxOCwgMHgyMDE5LCAvLyBnZW5lcmFsIHB1bmN0dWF0aW9uCisgICAgICAgIDB4MjAxYywgMHgyMDFkLAorICAgICAgICAweDIwMzksIDB4MjAzYSwKKyAgICAgICAgMHgzMDA4LCAweDMwMDksIC8vIGNoaW5lc2UgcGFpcmVkIHB1bmN0dWF0aW9uCisgICAgICAgIDB4MzAwYSwgMHgzMDBiLAorICAgICAgICAweDMwMGMsIDB4MzAwZCwKKyAgICAgICAgMHgzMDBlLCAweDMwMGYsCisgICAgICAgIDB4MzAxMCwgMHgzMDExLAorICAgICAgICAweDMwMTQsIDB4MzAxNSwKKyAgICAgICAgMHgzMDE2LCAweDMwMTcsCisgICAgICAgIDB4MzAxOCwgMHgzMDE5LAorICAgICAgICAweDMwMWEsIDB4MzAxYgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGFpcmVkQ2hhclBvd2VyID0gMSA8PCBoaWdoQml0KHBhaXJlZENoYXJzLmxlbmd0aCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBhaXJlZENoYXJFeHRyYSA9IHBhaXJlZENoYXJzLmxlbmd0aCAtIHBhaXJlZENoYXJQb3dlcjsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMzI4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD48IS0tICBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0tPgorCis8dGl0bGU+QzpJQ1U0SiAubGFuZyBQYWNrYWdlIE92ZXJ2aWV3PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorCis8cD5FbmhhbmNlZCBjaGFyYWN0ZXIgcHJvcGVydHkgYW5kIHN1cnJvZ2F0ZSBzdXBwb3J0LjwvcD4KKworVUNoYXJhY3RlciBzdXBwb3J0cyBhbGwgY2hhcmFjdGVycyBhbmQgcHJvcGVydGllcyBkZWZpbmVkIGluIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBVbmljb2RlLCBpbmNsdWRpbmcgcHJvcGVydGllcyBvZiBzdXJyb2dhdGUgY2hhcmFjdGVycy4gIEl0IHByb3ZpZGVzIG5ldyBBUEkgZm9yIHF1ZXJ5aW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIChyZXByZXNlbnRlZCBhcyBpbnQpIGFuZCBhbHNvIHN1cHBvcnRzIHRoZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIEFQSS4gIFVTY3JpcHQgYW5kIFVTY3JpcHRSdW4gcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBzY3JpcHRzLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIHRocm91Z2ggdGhlIEphdmEgQVBJcy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWFuaWZlc3QubW9kdWxlLnN0dWIgYi9zcmMvY29tL2libS9pY3UvbWFuaWZlc3QubW9kdWxlLnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdhNjNhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5tb2R1bGUuc3R1YgpAQCAtMCwwICsxLDE0IEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKKworTmFtZTogY29tL2libS9pY3UKK1NwZWNpZmljYXRpb24tVGl0bGU6IE1vZHVsYXJpemVkIElDVSBmb3IgSmF2YQorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjYKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBNb2R1bGFyaXplZCBJQ1UgZm9yIEphdmEKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNgorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvci1JZDogY29tLmlibQorQ29weXJpZ2h0LUluZm86IENvcHlyaWdodCAoYykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorU2VhbGVkOiBmYWxzZQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQyYjJjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViCkBAIC0wLDAgKzEsMTIgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorCitOYW1lOiBjb20vaWJtL2ljdS8KK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjYKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgZm9yIEphdmEKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNgorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvci1JZDogY29tLmlibQorQ29weXJpZ2h0LUluZm86IENvcHlyaWdodCAoYykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorU2VhbGVkOiBmYWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L21hdGgvQmlnRGVjaW1hbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvQmlnRGVjaW1hbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmZTJmMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEKQEAgLTAsMCArMSw0NDAzIEBACisvLyMjaGVhZGVyCisvKiBHZW5lcmF0ZWQgZnJvbSAnQmlnRGVjaW1hbC5ucngnIDggU2VwIDIwMDAgMTE6MTA6NTAgW3YyLjAwXSAqLworLyogT3B0aW9uczogQmluYXJ5IENvbW1lbnRzIENyb3NzcmVmIEZvcm1hdCBKYXZhIExvZ28gU3RyaWN0YXJncyBTdHJpY3RjYXNlIFRyYWNlMiBWZXJib3NlMyAqLworcGFja2FnZSBjb20uaWJtLmljdS5tYXRoOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBCaWdEZWNpbWFsIC0tIERlY2ltYWwgYXJpdGhtZXRpYyBmb3IgSmF2YSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiwgMTk5Ni0yMDA2LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogVGhlIEJpZ0RlY2ltYWwgY2xhc3MgcHJvdmlkZXMgaW1tdXRhYmxlIGFyYml0cmFyeS1wcmVjaXNpb24gICAgICAgICovCisvKiBmbG9hdGluZyBwb2ludCAoaW5jbHVkaW5nIGludGVnZXIpIGRlY2ltYWwgbnVtYmVycy4gICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogQXMgdGhlIG51bWJlcnMgYXJlIGRlY2ltYWwsIHRoZXJlIGlzIGFuIGV4YWN0IGNvcnJlc3BvbmRlbmNlICAgICAgICovCisvKiBiZXR3ZWVuIGFuIGluc3RhbmNlIG9mIGEgQmlnRGVjaW1hbCBvYmplY3QgYW5kIGl0cyBTdHJpbmcgICAgICAgICAgKi8KKy8qIHJlcHJlc2VudGF0aW9uOyB0aGUgQmlnRGVjaW1hbCBjbGFzcyBwcm92aWRlcyBkaXJlY3QgY29udmVyc2lvbnMgICAqLworLyogdG8gYW5kIGZyb20gU3RyaW5nIGFuZCBjaGFyYWN0ZXIgYXJyYXkgb2JqZWN0cywgYW5kIHdlbGwgYXMgICAgICAgICovCisvKiBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGUgSmF2YSBwcmltaXRpdmUgdHlwZXMgKHdoaWNoIG1heSBub3QgICAgKi8KKy8qIGJlIGV4YWN0KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBOb3RlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMS4gQSBCaWdEZWNpbWFsIG9iamVjdCBpcyBuZXZlciBjaGFuZ2VkIGluIHZhbHVlIG9uY2UgY29uc3RydWN0ZWQ7ICovCisvKiAgICB0aGlzIGF2b2lkcyB0aGUgbmVlZCBmb3IgbG9ja2luZy4gIE5vdGUgaW4gcGFydGljdWxhciB0aGF0IHRoZSAgKi8KKy8qICAgIG1hbnRpc3NhIGFycmF5IG1heSBiZSBzaGFyZWQgYmV0d2VlbiBtYW55IEJpZ0RlY2ltYWwgb2JqZWN0cywgICAqLworLyogICAgc28gdGhhdCBvbmNlIGV4cG9zZWQgaXQgbXVzdCBub3QgYmUgYWx0ZXJlZC4gICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDIuIFRoaXMgY2xhc3MgbG9va3MgYXQgTWF0aENvbnRleHQgY2xhc3MgZmllbGRzIGRpcmVjdGx5IChmb3IgICAgICAqLworLyogICAgcGVyZm9ybWFuY2UpLiAgSXQgbXVzdCBub3QgYW5kIGRvZXMgbm90IGNoYW5nZSB0aGVtLiAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDMuIEV4cG9uZW50IGNoZWNraW5nIGlzIGRlbGF5ZWQgdW50aWwgZmluaXNoKCksIGFzIHdlIGtub3cgICAgICAgICAqLworLyogICAgaW50ZXJtZWRpYXRlIGNhbGN1bGF0aW9ucyBjYW5ub3QgY2F1c2UgMzEtYml0IG92ZXJmbG93LiAgICAgICAgICovCisvKiAgICBbVGhpcyBhc3NlcnRpb24gZGVwZW5kcyBvbiBNQVhfRElHSVRTIGluIE1hdGhDb250ZXh0Ll0gICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogNC4gQ29tbWVudHMgZm9yIHRoZSBwdWJsaWMgQVBJIG5vdyBmb2xsb3cgdGhlIGphdmFkb2MgY29udmVudGlvbnMuICovCisvKiAgICBUaGUgTmV0UmV4eCAtY29tbWVudHMgb3B0aW9uIGlzIHVzZWQgdG8gcGFzcyB0aGVzZSBjb21tZW50cyAgICAgKi8KKy8qICAgIHRocm91Z2ggdG8gdGhlIGdlbmVyYXRlZCBKYXZhIGNvZGUgKHdpdGggLWZvcm1hdCwgaWYgZGVzaXJlZCkuICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA1LiBTeXN0ZW0uYXJyYXljb3B5IGlzIGZhc3RlciB0aGFuIGV4cGxpY2l0IGxvb3AgYXMgZm9sbG93cyAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggNDogIGVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBNZWFuIGxlbmd0aCA4OiAgeDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIE1lYW4gbGVuZ3RoIDE2OiB4MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggMjQ6IHg0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgRnJvbSBwcmlvciBleHBlcmllbmNlLCB3ZSBleHBlY3QgbWVhbiBsZW5ndGggYSBsaXR0bGUgYmVsb3cgOCwgICovCisvKiAgICBidXQgYXJyYXljb3B5IGlzIHN0aWxsIHRoZSBvbmUgdG8gdXNlLCBpbiBnZW5lcmFsLCB1bnRpbCBsYXRlciAgKi8KKy8qICAgIG1lYXN1cmVtZW50cyBzdWdnZXN0IG90aGVyd2lzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA2LiAnRE1TUkNOJyByZWZlcnJlZCB0byBiZWxvdyBpcyB0aGUgb3JpZ2luYWwgKDE5ODEpIElCTSBTLzM3MCAgICAgKi8KKy8qICAgIGFzc2VtYmxlciBjb2RlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhbGdvcml0aG1zIGJlbG93OyBpdCBpcyAgICAqLworLyogICAgbm93IGNhbGxlZCBJWFhSQ04gYW5kIGlzIGF2YWlsYWJsZSB3aXRoIHRoZSBPUy8zOTAgYW5kIFZNL0VTQSAgICovCisvKiAgICBvcGVyYXRpbmcgc3lzdGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ2hhbmdlIEhpc3Rvcnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjAyIEluaXRpYWwgdmVyc2lvbiAoZGVyaXZlZCBmcm9tIG5ldHJleHgubGFuZyBjbGFzc2VzKSAgICAgKi8KKy8qIDE5OTcuMDkuMTIgQWRkIGxvc3REaWdpdHMgY2hlY2tpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4xMC4wNiBDaGFuZ2UgbWFudGlzc2EgdG8gYSBieXRlIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjExLjIyIFJld29yayBwb3dlciBbZGlkIG5vdCBwcmVwYXJlIGFyZ3VtZW50cywgZXRjLl0gICAgICAgICAgKi8KKy8qIDE5OTcuMTIuMTMgbXVsdGlwbHkgZGlkIG5vdCBwcmVwYXJlIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4xMi4xNCBhZGQgZGlkIG5vdCBwcmVwYXJlIGFuZCBhbGlnbiBhcmd1bWVudHMgY29ycmVjdGx5ICAgICAgICovCisvKiAxOTk4LjA1LjAyIDAuMDcgcGFja2FnaW5nIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IFN1biBhbmQgT3JhY2xlICAgICAgKi8KKy8qIDE5OTguMDUuMjEgYWRqdXN0IHJlbWFpbmRlciBvcGVyYXRvciBmaW5hbGl6YXRpb24gICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4wNCByZXdvcmsgdG8gcGFzcyBNYXRoQ29udGV4dCB0byBmaW5pc2goKSBhbmQgcm91bmQoKSAgICAgICovCisvKiAxOTk4LjA2LjA2IGNoYW5nZSBmb3JtYXQgdG8gdXNlIHJvdW5kKCk7IHN1cHBvcnQgcm91bmRpbmcgbW9kZXMgICAgKi8KKy8qIDE5OTguMDYuMjUgcmVuYW1lIHRvIEJpZ0RlY2ltYWwgYW5kIGJlZ2luIG1lcmdlICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICB6ZXJvIGNhbiBub3cgaGF2ZSB0cmFpbGluZyB6ZXJvcyAoaS5lLiwgZXhwXD0wKSAgICAgICAgICovCisvKiAxOTk4LjA2LjI4IG5ldyBtZXRob2RzOiBtb3ZlUG9pbnRYeHh4LCBzY2FsZSwgdG9CaWdJbnRlZ2VyICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2NhbGVkVmFsdWUsIHZhbHVlb2YgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNy4wMSBpbXByb3ZlIGJ5dGVhZGRzdWIgdG8gYWxsb3cgYXJyYXkgcmV1c2UsIGV0Yy4gICAgICAgICAgICovCisvKiAxOTk4LjA3LjAxIG1ha2UgbnVsbCB0ZXN0aW5nIGV4cGxpY2l0IHRvIGF2b2lkIEpJVCBidWcgW1dpbjMyXSAgICAgKi8KKy8qIDE5OTguMDcuMDcgc2NhbGVkIGRpdmlzaW9uICBbZGl2aWRlKEJpZ0RlY2ltYWwsIGludCwgaW50KV0gICAgICAgICAqLworLyogMTk5OC4wNy4wOCBzZXRTY2FsZSwgZmFzdGVyIGVxdWFscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjExIGFsbG93IDFFNiAobm8gc2lnbikgPHNpZ2g+OyBuZXcgZG91YmxlL2Zsb2F0IGNvbnZlcnNpb24gKi8KKy8qIDE5OTguMTAuMTIgY2hhbmdlIHBhY2thZ2UgdG8gY29tLmlibS5pY3UubWF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMTIuMTQgcG93ZXIgb3BlcmF0b3Igbm8gbG9uZ2VyIHJvdW5kcyBSSFMgW3RvIG1hdGNoIEFOU0ldICAgICAqLworLyogICAgICAgICAgICBhZGQgdG9CaWdEZWNpbWFsKCkgYW5kIEJpZ0RlY2ltYWwoamF2YS5tYXRoLkJpZ0RlY2ltYWwpICovCisvKiAxOTk4LjEyLjI5IGltcHJvdmUgYnl0ZWFkZHN1YiBieSB1c2luZyB0YWJsZSBsb29rdXAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMDQgbG9zdGRpZ2l0cz0wIGJlaGF2aW91ciByb3VuZHMgaW5zdGVhZCBvZiBkaWdpdHMrMSBndWFyZCAqLworLyogMTk5OS4wMi4wNSBjbGVhbmVyIGNvZGUgZm9yIEJpZ0RlY2ltYWwoY2hhcltdKSAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAyLjA2IGFkZCBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMTEgZm9ybWF0KCkgY2hhbmdlZCBmcm9tIDcgdG8gMiBtZXRob2QgZm9ybSAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBudWxsIHBvaW50ZXIgY2hlY2tpbmcgaXMgbm8gbG9uZ2VyIGV4cGxpY2l0ICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHNpbXBsaWZ5OyBjaGFuZ2VzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIEouIEJsb2NoOiAgICAgICAgKi8KKy8qICAgICAgICAgICAgbnVsbCBubyBsb25nZXIgcGVybWl0dGVkIGZvciBNYXRoQ29udGV4dDsgZHJvcCBib29sZWFuLCAqLworLyogICAgICAgICAgICBieXRlLCBjaGFyLCBmbG9hdCwgc2hvcnQgY29uc3RydWN0b3IsIGRlcHJlY2F0ZSBkb3VibGUgICovCisvKiAgICAgICAgICAgIGNvbnN0cnVjdG9yLCBubyBibGFua3MgaW4gc3RyaW5nIGNvbnN0cnVjdG9yLCBhZGQgICAgICAgKi8KKy8qICAgICAgICAgICAgb2Zmc2V0IGFuZCBsZW5ndGggdmVyc2lvbiBvZiBjaGFyW10gY29uc3RydWN0b3I7ICAgICAgICAqLworLyogICAgICAgICAgICBhZGQgdmFsdWVPZihkb3VibGUpOyBkcm9wIGJvb2xlYW5WYWx1ZSwgY2hhclZhbHVlOyAgICAgICovCisvKiAgICAgICAgICAgIGFkZCAuLi5FeGFjdCB2ZXJzaW9ucyBvZiByZW1haW5pbmcgY29udmVydG9ycyAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMTMgYWRkIHRvQmlnSW50ZWdlckV4YWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4xMyAxLjAwIHJlbGVhc2UgdG8gSUJNIENlbnRyZSBmb3IgSmF2YSBUZWNobm9sb2d5ICAgICAgICAgICovCisvKiAxOTk5LjA1LjI3IDEuMDEgY29ycmVjdCAwLTAuMiBidWcgdW5kZXIgc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgKi8KKy8qIDE5OTkuMDYuMjkgMS4wMiBjb25zdHJ1Y3RvcnMgc2hvdWxkIG5vdCBhbGxvdyBleHBvbmVudCA+IDkgZGlnaXRzICAqLworLyogMTk5OS4wNy4wMyAxLjAzIGxvc3QgZGlnaXRzIHNob3VsZCBub3QgYmUgY2hlY2tlZCBpZiBkaWdpdHM9MCAgICAgICovCisvKiAxOTk5LjA3LjA2ICAgICAgbG9zdCBkaWdpdHMgRXhjZXB0aW9uIG1lc3NhZ2UgY2hhbmdlZCAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTAgMS4wNCBtb3JlIHdvcmsgb24gMC0wLjIgKHNjYWxlZCBhcml0aG1ldGljKSAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4xNyAgICAgIGltcHJvdmUgbWVzc2FnZXMgZnJvbSBwb3cgbWV0aG9kICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA4LjA4ICAgICAgcGVyZm9ybWFuY2UgdHdlYWtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDguMTUgICAgICBmYXN0cGF0aCBpbiBtdWx0aXBseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4xMS4wNSAxLjA1IGZpeCBwcm9ibGVtIGluIGludFZhbHVlRXhhY3QgW2UuZy4sIDU1NTU1NTU1NTVdICAgICovCisvKiAxOTk5LjEyLjIyIDEuMDYgcmVtb3ZlIG11bHRpcGx5IGZhc3RwYXRoLCBhbmQgaW1wcm92ZSBwZXJmb3JtYW5jZSAgKi8KKy8qIDIwMDAuMDEuMDEgICAgICBjb3B5cmlnaHQgdXBkYXRlIFtZMksgaGFzIGFycml2ZWRdICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wNi4xOCAxLjA4IG5vIGxvbmdlciBkZXByZWNhdGUgQmlnRGVjaW1hbChkb3VibGUpICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcyBpbXBsZW1lbnRzIGltbXV0YWJsZQorICogYXJiaXRyYXJ5LXByZWNpc2lvbiBkZWNpbWFsIG51bWJlcnMuICBUaGUgbWV0aG9kcyBvZiB0aGUKKyAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzIHByb3ZpZGUgb3BlcmF0aW9ucyBmb3IgZml4ZWQgYW5kCisgKiBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljLCBjb21wYXJpc29uLCBmb3JtYXQgY29udmVyc2lvbnMsIGFuZAorICogaGFzaGluZy4KKyAqIDxwPgorICogQXMgdGhlIG51bWJlcnMgYXJlIGRlY2ltYWwsIHRoZXJlIGlzIGFuIGV4YWN0IGNvcnJlc3BvbmRlbmNlIGJldHdlZW4KKyAqIGFuIGluc3RhbmNlIG9mIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGFuZCBpdHMKKyAqIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb247IHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcworICogcHJvdmlkZXMgZGlyZWN0IGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kCisgKiBjaGFyYWN0ZXIgYXJyYXkgKDxjb2RlPmNoYXJbXTwvY29kZT4pIG9iamVjdHMsIGFzIHdlbGwgYXMgY29udmVyc2lvbnMKKyAqIHRvIGFuZCBmcm9tIHRoZSBKYXZhIHByaW1pdGl2ZSB0eXBlcyAod2hpY2ggbWF5IG5vdCBiZSBleGFjdCkgYW5kCisgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAqIDxwPgorICogSW4gdGhlIGRlc2NyaXB0aW9ucyBvZiBjb25zdHJ1Y3RvcnMgYW5kIG1ldGhvZHMgaW4gdGhpcyBkb2N1bWVudGF0aW9uLAorICogdGhlIHZhbHVlIG9mIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVyIG9iamVjdCBpcyBzaG93biBhcyB0aGUKKyAqIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgPGNvZGU+dG9TdHJpbmcoKTwvY29kZT4gbWV0aG9kIG9uIHRoZSBvYmplY3QuCisgKiBUaGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYSBkZWNpbWFsIG51bWJlciBpcyBuZWl0aGVyIGRlZmluZWQKKyAqIG5vciBleHBvc2VkLCBhbmQgaXMgbm90IHBlcm1pdHRlZCB0byBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhbnkKKyAqIG9wZXJhdGlvbi4KKyAqIDxwPgorICogVGhlIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgcHJvdmlkZWQgYnkgdGhpcyBjbGFzcyBpcyBkZWZpbmVkIGJ5CisgKiB0aGUgQU5TSSBYMy4yNzQtMTk5NiBzdGFuZGFyZCwgYW5kIGlzIGFsc28gZG9jdW1lbnRlZCBhdAorICogPGNvZGU+aHR0cDovL3d3dzIuaHVyc2xleS5pYm0uY29tL2RlY2ltYWw8L2NvZGU+CisgKiA8YnI+PGk+W1RoaXMgVVJMIHdpbGwgY2hhbmdlLl08L2k+CisgKgorICogPGgzPk9wZXJhdG9yIG1ldGhvZHM8L2gzPgorICogPHA+CisgKiBPcGVyYXRpb25zIG9uIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlcnMgYXJlIGNvbnRyb2xsZWQgYnkgYQorICoge0BsaW5rIE1hdGhDb250ZXh0fSBvYmplY3QsIHdoaWNoIHByb3ZpZGVzIHRoZSBjb250ZXh0IChwcmVjaXNpb24gYW5kCisgKiBvdGhlciBpbmZvcm1hdGlvbikgZm9yIHRoZSBvcGVyYXRpb24uIE1ldGhvZHMgdGhhdCBjYW4gdGFrZSBhCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyIGltcGxlbWVudCB0aGUgc3RhbmRhcmQgYXJpdGhtZXRpYworICogb3BlcmF0b3JzIGZvciA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzIGFuZCBhcmUga25vd24gYXMKKyAqIDxpPm9wZXJhdG9yIG1ldGhvZHM8L2k+LiAgVGhlIGRlZmF1bHQgc2V0dGluZ3MgcHJvdmlkZWQgYnkgdGhlCisgKiBjb25zdGFudCB7QGxpbmsgTWF0aENvbnRleHQjREVGQVVMVH0gKDxjb2RlPmRpZ2l0cz05LAorICogZm9ybT1TQ0lFTlRJRklDLCBsb3N0RGlnaXRzPWZhbHNlLCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUDwvY29kZT4pCisgKiBwZXJmb3JtIGdlbmVyYWwtcHVycG9zZSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHRvIG5pbmUgZGlnaXRzIG9mCisgKiBwcmVjaXNpb24uICBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlciBtdXN0IG5vdCBiZQorICogPGNvZGU+bnVsbDwvY29kZT4uCisgKiA8cD4KKyAqIEVhY2ggb3BlcmF0b3IgbWV0aG9kIGFsc28gaGFzIGEgdmVyc2lvbiBwcm92aWRlZCB3aGljaCBkb2VzCisgKiBub3QgdGFrZSBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIuICBGb3IgdGhpcyB2ZXJzaW9uIG9mCisgKiBlYWNoIG1ldGhvZCwgdGhlIGNvbnRleHQgc2V0dGluZ3MgdXNlZCBhcmUgPGNvZGU+ZGlnaXRzPTAsCisgKiBmb3JtPVBMQUlOLCBsb3N0RGlnaXRzPWZhbHNlLCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUDwvY29kZT47CisgKiB0aGVzZSBzZXR0aW5ncyBwZXJmb3JtIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgd2l0aCB1bmxpbWl0ZWQKKyAqIHByZWNpc2lvbiwgYXMgZGVmaW5lZCBmb3IgdGhlIG9yaWdpbmFsIEJpZ0RlY2ltYWwgY2xhc3MgaW4gSmF2YSAxLjEKKyAqIGFuZCBKYXZhIDEuMi4KKyAqIDxwPgorICogRm9yIG1vbmFkaWMgb3BlcmF0b3JzLCBvbmx5IHRoZSBvcHRpb25hbCA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4KKyAqIHBhcmFtZXRlciBpcyBwcmVzZW50OyB0aGUgb3BlcmF0aW9uIGFjdHMgdXBvbiB0aGUgY3VycmVudCBvYmplY3QuCisgKiA8cD4KKyAqIEZvciBkeWFkaWMgb3BlcmF0b3JzLCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHBhcmFtZXRlciBpcyBhbHdheXMKKyAqIHByZXNlbnQ7IGl0IG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICogVGhlIG9wZXJhdGlvbiBhY3RzIHdpdGggdGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIHRoZSBsZWZ0LWhhbmQgb3BlcmFuZAorICogYW5kIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBwYXJhbWV0ZXIgYmVpbmcgdGhlIHJpZ2h0LWhhbmQgb3BlcmFuZC4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGFkZGluZyB0d28gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cyByZWZlcnJlZCB0bworICogYnkgdGhlIG5hbWVzIDxjb2RlPmF3YXJkPC9jb2RlPiBhbmQgPGNvZGU+ZXh0cmE8L2NvZGU+IGNvdWxkIGJlCisgKiB3cml0dGVuIGFzIGFueSBvZjoKKyAqIDxwPjxjb2RlPgorICogICAgIGF3YXJkLmFkZChleHRyYSkKKyAqIDxicj5hd2FyZC5hZGQoZXh0cmEsIE1hdGhDb250ZXh0LkRFRkFVTFQpCisgKiA8YnI+YXdhcmQuYWRkKGV4dHJhLCBhY29udGV4dCkKKyAqIDwvY29kZT4KKyAqIDxwPgorICogKHdoZXJlIDxjb2RlPmFjb250ZXh0PC9jb2RlPiBpcyBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QpLAorICogd2hpY2ggd291bGQgcmV0dXJuIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IHdob3NlIHZhbHVlIGlzCisgKiB0aGUgcmVzdWx0IG9mIGFkZGluZyA8Y29kZT5hd2FyZDwvY29kZT4gYW5kIDxjb2RlPmV4dHJhPC9jb2RlPiB1bmRlcgorICogdGhlIGFwcHJvcHJpYXRlIGNvbnRleHQgc2V0dGluZ3MuCisgKiA8cD4KKyAqIFdoZW4gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRvciBtZXRob2QgaXMgdXNlZCwgYSBzZXQgb2YKKyAqIHJ1bGVzIGRlZmluZSB3aGF0IHRoZSByZXN1bHQgd2lsbCBiZSAoYW5kLCBieSBpbXBsaWNhdGlvbiwgaG93IHRoZQorICogcmVzdWx0IHdvdWxkIGJlIHJlcHJlc2VudGVkIGFzIGEgY2hhcmFjdGVyIHN0cmluZykuCisgKiBUaGVzZSBydWxlcyBhcmUgZGVmaW5lZCBpbiB0aGUgQmlnRGVjaW1hbCBhcml0aG1ldGljIGRvY3VtZW50YXRpb24KKyAqIChzZWUgdGhlIFVSTCBhYm92ZSksIGJ1dCBpbiBzdW1tYXJ5OgorICogPHVsPgorICogPGxpPlJlc3VsdHMgYXJlIG5vcm1hbGx5IGNhbGN1bGF0ZWQgd2l0aCB1cCB0byBzb21lIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMuCisgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgZm9yIGFuIG9wZXJhdGlvbgorICogd2VyZSA8Y29kZT5NYXRoQ29udGV4dC5ERUZBVUxUPC9jb2RlPiB0aGVuIHRoZSByZXN1bHQgd291bGQgYmUKKyAqIHJvdW5kZWQgdG8gOSBkaWdpdHM7IHRoZSBkaXZpc2lvbiBvZiAyIGJ5IDMgd291bGQgdGhlbiByZXN1bHQgaW4KKyAqIDAuNjY2NjY2NjY3LgorICogPGJyPgorICogWW91IGNhbiBjaGFuZ2UgdGhlIGRlZmF1bHQgb2YgOSBzaWduaWZpY2FudCBkaWdpdHMgYnkgcHJvdmlkaW5nIHRoZQorICogbWV0aG9kIHdpdGggYSBzdWl0YWJsZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0LiBUaGlzIGxldHMgeW91CisgKiBjYWxjdWxhdGUgdXNpbmcgYXMgbWFueSBkaWdpdHMgYXMgeW91IG5lZWQgLS0gdGhvdXNhbmRzLCBpZiBuZWNlc3NhcnkuCisgKiBGaXhlZCBwb2ludCAoc2NhbGVkKSBhcml0aG1ldGljIGlzIGluZGljYXRlZCBieSB1c2luZyBhCisgKiA8Y29kZT5kaWdpdHM8L2NvZGU+IHNldHRpbmcgb2YgMCAob3Igb21pdHRpbmcgdGhlCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKS4KKyAqIDxicj4KKyAqIFNpbWlsYXJseSwgeW91IGNhbiBjaGFuZ2UgdGhlIGFsZ29yaXRobSB1c2VkIGZvciByb3VuZGluZyBmcm9tIHRoZQorICogZGVmYXVsdCAiY2xhc3NpYyIgYWxnb3JpdGhtLgorICogPGxpPgorICogSW4gc3RhbmRhcmQgYXJpdGhtZXRpYyAodGhhdCBpcywgd2hlbiB0aGUgPGNvZGU+Zm9ybTwvY29kZT4gc2V0dGluZworICogaXMgbm90IDxjb2RlPlBMQUlOPC9jb2RlPiksIGEgemVybyByZXN1bHQgaXMgYWx3YXlzIGV4cHJlc3NlZCBhcyB0aGUKKyAqIHNpbmdsZSBkaWdpdCA8Y29kZT4nMCc8L2NvZGU+ICh0aGF0IGlzLCB3aXRoIG5vIHNpZ24sIGRlY2ltYWwgcG9pbnQsCisgKiBvciBleHBvbmVudCBwYXJ0KS4KKyAqIDxsaT4KKyAqIEV4Y2VwdCBmb3IgdGhlIGRpdmlzaW9uIGFuZCBwb3dlciBvcGVyYXRvcnMgaW4gc3RhbmRhcmQgYXJpdGhtZXRpYywKKyAqIHRyYWlsaW5nIHplcm9zIGFyZSBwcmVzZXJ2ZWQgKHRoaXMgaXMgaW4gY29udHJhc3QgdG8gYmluYXJ5IGZsb2F0aW5nCisgKiBwb2ludCBvcGVyYXRpb25zIGFuZCBtb3N0IGVsZWN0cm9uaWMgY2FsY3VsYXRvcnMsIHdoaWNoIGxvc2UgdGhlCisgKiBpbmZvcm1hdGlvbiBhYm91dCB0cmFpbGluZyB6ZXJvcyBpbiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHJlc3VsdHMpLgorICogPGJyPgorICogU28sIGZvciBleGFtcGxlOgorICogPHA+PGNvZGU+CisgKiAgICAgbmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5hZGQoICAgICBuZXcgQmlnRGVjaW1hbCgiMiIpKSAgICAgID0mZ3Q7ICI0LjQwIgorICogPGJyPm5ldyBCaWdEZWNpbWFsKCIyLjQwIikuc3VidHJhY3QobmV3IEJpZ0RlY2ltYWwoIjIiKSkgICAgICA9Jmd0OyAiMC40MCIKKyAqIDxicj5uZXcgQmlnRGVjaW1hbCgiMi40MCIpLm11bHRpcGx5KG5ldyBCaWdEZWNpbWFsKCIyIikpICAgICAgPSZndDsgIjQuODAiCisgKiA8YnI+bmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5kaXZpZGUoICBuZXcgQmlnRGVjaW1hbCgiMiIpLCBkZWYpID0mZ3Q7ICIxLjIiCisgKiA8L2NvZGU+CisgKiA8cD53aGVyZSB0aGUgdmFsdWUgb24gdGhlIHJpZ2h0IG9mIHRoZSA8Y29kZT49Jmd0OzwvY29kZT4gd291bGQgYmUgdGhlCisgKiByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiwgZXhwcmVzc2VkIGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5kZWY8L2NvZGU+IChpbiB0aGlzIGFuZCBmb2xsb3dpbmcgZXhhbXBsZXMpIHJlZmVycyB0bworICogPGNvZGU+TWF0aENvbnRleHQuREVGQVVMVDwvY29kZT4pLgorICogVGhpcyBwcmVzZXJ2YXRpb24gb2YgdHJhaWxpbmcgemVyb3MgaXMgZGVzaXJhYmxlIGZvciBtb3N0CisgKiBjYWxjdWxhdGlvbnMgKGluY2x1ZGluZyBmaW5hbmNpYWwgY2FsY3VsYXRpb25zKS4KKyAqIElmIG5lY2Vzc2FyeSwgdHJhaWxpbmcgemVyb3MgbWF5IGJlIGVhc2lseSByZW1vdmVkIHVzaW5nIGRpdmlzaW9uIGJ5IDEuCisgKiA8bGk+CisgKiBJbiBzdGFuZGFyZCBhcml0aG1ldGljLCBleHBvbmVudGlhbCBmb3JtIGlzIHVzZWQgZm9yIGEgcmVzdWx0CisgKiBkZXBlbmRpbmcgb24gaXRzIHZhbHVlIGFuZCB0aGUgY3VycmVudCBzZXR0aW5nIG9mIDxjb2RlPmRpZ2l0czwvY29kZT4KKyAqICh0aGUgZGVmYXVsdCBpcyA5IGRpZ2l0cykuCisgKiBJZiB0aGUgbnVtYmVyIG9mIHBsYWNlcyBuZWVkZWQgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGV4Y2VlZHMgdGhlCisgKiA8Y29kZT5kaWdpdHM8L2NvZGU+IHNldHRpbmcsIG9yIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIGlzCisgKiBsZXNzIHRoYW4gPGNvZGU+MC4wMDAwMDE8L2NvZGU+LCB0aGVuIHRoZSBudW1iZXIgd2lsbCBiZSBleHByZXNzZWQgaW4KKyAqIGV4cG9uZW50aWFsIG5vdGF0aW9uOyB0aHVzCisgKiA8cD48Y29kZT4KKyAqICAgbmV3IEJpZ0RlY2ltYWwoIjFlKzYiKS5tdWx0aXBseShuZXcgQmlnRGVjaW1hbCgiMWUrNiIpLCBkZWYpCisgKiA8L2NvZGU+CisgKiA8cD5yZXN1bHRzIGluIDxjb2RlPjFFKzEyPC9jb2RlPiBpbnN0ZWFkIG9mCisgKiA8Y29kZT4xMDAwMDAwMDAwMDAwPC9jb2RlPiwgYW5kCisgKiA8cD48Y29kZT4KKyAqICAgbmV3IEJpZ0RlY2ltYWwoIjEiKS5kaXZpZGUobmV3IEJpZ0RlY2ltYWwoIjNFKzEwIiksIGRlZikKKyAqIDwvY29kZT4KKyAqIDxwPnJlc3VsdHMgaW4gPGNvZGU+My4zMzMzMzMzM0UtMTE8L2NvZGU+IGluc3RlYWQgb2YKKyAqIDxjb2RlPjAuMDAwMDAwMDAwMDMzMzMzMzMzMzwvY29kZT4uCisgKiA8cD4KKyAqIFRoZSBmb3JtIG9mIHRoZSBleHBvbmVudGlhbCBub3RhdGlvbiAoc2NpZW50aWZpYyBvciBlbmdpbmVlcmluZykgaXMKKyAqIGRldGVybWluZWQgYnkgdGhlIDxjb2RlPmZvcm08L2NvZGU+IHNldHRpbmcuCisgKiA8ZXVsPgorICogPHA+CisgKiBUaGUgbmFtZXMgb2YgbWV0aG9kcyBpbiB0aGlzIGNsYXNzIGZvbGxvdyB0aGUgY29udmVudGlvbnMgZXN0YWJsaXNoZWQKKyAqIGJ5IDxjb2RlPmphdmEubGFuZy5OdW1iZXI8L2NvZGU+LCA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4sCisgKiBhbmQgPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+IGluIEphdmEgMS4xIGFuZCBKYXZhIDEuMi4KKyAqCisgKiBAc2VlICAgICBNYXRoQ29udGV4dAorICogQGF1dGhvciAgTWlrZSBDb3dsaXNoYXcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisKK3B1YmxpYyBjbGFzcyBCaWdEZWNpbWFsIGV4dGVuZHMgamF2YS5sYW5nLk51bWJlciBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLGphdmEubGFuZy5Db21wYXJhYmxleworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9IkJpZ0RlY2ltYWwubnJ4IjsKKyAKKyAKKyAKKyAvKiAtLS0tLSBDb25zdGFudHMgLS0tLS0gKi8KKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHB1YmxpYyAqLyAvLyB1c2VmdWwgdG8gb3RoZXJzCisgLyoqCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0YW50ICIwIi4KKyAgKgorICAqIEBzZWUgI09ORQorICAqIEBzZWUgI1RFTgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIFpFUk89bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgobG9uZykwKTsgLy8gdXNlIGxvbmcgYXMgd2Ugd2FudCB0aGUgaW50IGNvbnN0cnVjdG9yCisgLy8gLi4gdG8gYmUgYWJsZSB0byB1c2UgdGhpcywgZm9yIHNwZWVkCisgCisgLyoqCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0YW50ICIxIi4KKyAgKgorICAqIEBzZWUgI1RFTgorICAqIEBzZWUgI1pFUk8KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBPTkU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgobG9uZykxKTsgLy8gdXNlIGxvbmcgYXMgd2Ugd2FudCB0aGUgaW50IGNvbnN0cnVjdG9yCisgLy8gLi4gdG8gYmUgYWJsZSB0byB1c2UgdGhpcywgZm9yIHNwZWVkCisgCisgLyoqCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0YW50ICIxMCIuCisgICoKKyAgKiBAc2VlICNPTkUKKyAgKiBAc2VlICNaRVJPCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgVEVOPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApOworIAorIC8vIHRoZSByb3VuZGluZyBtb2RlcyAoY29waWVkIGhlcmUgZm9yIHVwd2FyZHMgY29tcGF0aWJpbGl0eSkKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBwb3NpdGl2ZSBudW1iZXIuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9DRUlMSU5HCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfQ0VJTElORz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0b3dhcmRzIHplcm8uCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9ET1dOCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfRE9XTj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgbmVnYXRpdmUgbnVtYmVyLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfRkxPT1IKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9GTE9PUj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIGRvd24uCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9IQUxGX0RPV04KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0RPV049Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV047CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgZXZlbiBuZWlnaGJvci4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfRVZFTgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRVZFTj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB1cC4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVAKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX1VQPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIGFzc2VydCB0aGF0IG5vIHJvdW5kaW5nIGlzIG5lY2Vzc2FyeS4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX1VOTkVDRVNTQVJZCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVU5ORUNFU1NBUlk9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIGF3YXkgZnJvbSB6ZXJvLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfVVAKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9VUD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQOworIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSAqLyAvLyBsb2NhbHMKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGlzcG9zPTE7IC8vIGluZDogaW5kaWNhdGVzIHBvc2l0aXZlIChtdXN0IGJlIDEpCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBpc3plcm89MDsgLy8gaW5kOiBpbmRpY2F0ZXMgemVybyAgICAgKG11c3QgYmUgMCkKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGlzbmVnPS0xOyAvLyBpbmQ6IGluZGljYXRlcyBuZWdhdGl2ZSAobXVzdCBiZSAtMSkKKyAvLyBbbGF0ZXIgY291bGQgYWRkIE5hTiwgKy8tIGluZmluaXR5LCBoZXJlXQorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNaW5FeHA9LTk5OTk5OTk5OTsgLy8gbWluaW11bSBleHBvbmVudCBhbGxvd2VkCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1heEV4cD05OTk5OTk5OTk7IC8vIG1heGltdW0gZXhwb25lbnQgYWxsb3dlZAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNaW5Bcmc9LTk5OTk5OTk5OTsgLy8gbWluaW11bSBhcmd1bWVudCBpbnRlZ2VyCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1heEFyZz05OTk5OTk5OTk7IC8vIG1heGltdW0gYXJndW1lbnQgaW50ZWdlcgorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgcGxhaW5NQz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pOyAvLyBjb250ZXh0IGZvciBwbGFpbiB1bmxpbWl0ZWQgbWF0aAorIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSB1bnVzZWQgKi8gLy8gcHJlc2VudCBidXQgbm90IHJlZmVyZW5jZWQKKyAKKyAvLyBTZXJpYWxpemF0aW9uIHZlcnNpb24KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQ9ODI0NTM1NTgwNDk3NDE5ODgzMkw7CisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBjb3B5cmlnaHQ9IiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIjsKKyAKKyAvKiBwcm9wZXJ0aWVzIHN0YXRpYyBwcml2YXRlICovCisgLy8gUHJlY2FsY3VsYXRlZCBjb25zdGFudCBhcnJheXMgKHVzZWQgYnkgYnl0ZWFkZHN1YikKKyBwcml2YXRlIHN0YXRpYyBieXRlIGJ5dGVjYXJbXT1uZXcgYnl0ZVsoOTArOTkpKzFdOyAvLyBjYXJyeS9ib3Jyb3cgYXJyYXkKKyBwcml2YXRlIHN0YXRpYyBieXRlIGJ5dGVkaWdbXT1kaWdpbml0KCk7IC8vIG5leHQgZGlnaXQgYXJyYXkKKyAKKyAvKiAtLS0tLSBJbnN0YW5jZSBwcm9wZXJ0aWVzIFthbGwgcHJpdmF0ZSBhbmQgaW1tdXRhYmxlXSAtLS0tLSAqLworIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSAqLworIAorIC8qKgorICAqIFRoZSBpbmRpY2F0b3IuIFRoaXMgbWF5IHRha2UgdGhlIHZhbHVlczoKKyAgKiA8dWw+CisgICogPGxpPmlzcG9zICAtLSB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlCisgICogPGxpPmlzemVybyAtLSB0aGUgbnVtYmVyIGlzIHplcm8KKyAgKiA8bGk+aXNuZWcgIC0tIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUKKyAgKiA8L3VsPgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgYnl0ZSBpbmQ7IC8vIGFzc3VtZWQgdW5kZWZpbmVkCisgLy8gTm90ZTogc29tZSBjb2RlIGJlbG93IGFzc3VtZXMgSU5EID0gU2lnbiBbLTEsIDAsIDFdLCBhdCBwcmVzZW50LgorIC8vIFdlIG9ubHkgbmVlZCB0d28gYml0cyBmb3IgdGhpcywgYnV0IHVzZSBhIGJ5dGUgW2Fsc28gcGVybWl0cworIC8vIHNtb290aCBmdXR1cmUgZXh0ZW5zaW9uXS4KKyAKKyAvKioKKyAgKiBUaGUgZm9ybWF0dGluZyBzdHlsZS4gVGhpcyBtYXkgdGFrZSB0aGUgdmFsdWVzOgorICAqIDx1bD4KKyAgKiA8bGk+TWF0aENvbnRleHQuUExBSU4gICAgICAgIC0tIG5vIGV4cG9uZW50IG5lZWRlZAorICAqIDxsaT5NYXRoQ29udGV4dC5TQ0lFTlRJRklDICAgLS0gc2NpZW50aWZpYyBub3RhdGlvbiByZXF1aXJlZAorICAqIDxsaT5NYXRoQ29udGV4dC5FTkdJTkVFUklORyAgLS0gZW5naW5lZXJpbmcgbm90YXRpb24gcmVxdWlyZWQKKyAgKiA8L3VsPgorICAqIDxwPgorICAqIFRoaXMgcHJvcGVydHkgaXMgYW4gb3B0aW1pemF0aW9uOyBpdCBhbGxvd3MgdXMgdG8gZGVmZXIgbnVtYmVyCisgICogbGF5b3V0IHVudGlsIGl0IGlzIGFjdHVhbGx5IG5lZWRlZCBhcyBhIHN0cmluZywgaGVuY2UgYXZvaWRpbmcKKyAgKiB1bm5lY2Vzc2FyeSBmb3JtYXR0aW5nLgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgYnl0ZSBmb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47IC8vIGFzc3VtZWQgUExBSU4KKyAvLyBXZSBvbmx5IG5lZWQgdHdvIGJpdHMgZm9yIHRoaXMsIGF0IHByZXNlbnQsIGJ1dCB1c2UgYSBieXRlCisgLy8gW2FnYWluLCB0byBhbGxvdyBmb3Igc21vb3RoIGZ1dHVyZSBleHRlbnNpb25dCisgCisgLyoqCisgICogVGhlIHZhbHVlIG9mIHRoZSBtYW50aXNzYS4KKyAgKiA8cD4KKyAgKiBPbmNlIGNvbnN0cnVjdGVkLCB0aGlzIG1heSBiZWNvbWUgc2hhcmVkIGJldHdlZW4gc2V2ZXJhbCBCaWdEZWNpbWFsCisgICogb2JqZWN0cywgc28gbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgKiA8cD4KKyAgKiBGb3IgZWZmaWNpZW5jeSAoc3BlZWQpLCB0aGlzIGlzIGEgYnl0ZSBhcnJheSwgd2l0aCBlYWNoIGJ5dGUKKyAgKiB0YWtpbmcgYSB2YWx1ZSBvZiAwIC0+IDkuCisgICogPHA+CisgICogSWYgdGhlIGZpcnN0IGJ5dGUgaXMgMCB0aGVuIHRoZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIGlzIHplcm8gKGFuZAorICAqIG1hbnQubGVuZ3RoPTEsIGV4Y2VwdCB3aGVuIGNvbnN0cnVjdGVkIGZyb20gYSBwbGFpbiBudW1iZXIsIGZvcgorICAqIGV4YW1wbGUsIDAuMDAwKS4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBwcml2YXRlIGJ5dGUgbWFudFtdOyAvLyBhc3N1bWVkIG51bGwKKyAKKyAvKioKKyAgKiBUaGUgZXhwb25lbnQuCisgICogPHA+CisgICogRm9yIGZpeGVkIHBvaW50IGFyaXRobWV0aWMsIHNjYWxlIGlzIDxjb2RlPi1leHA8L2NvZGU+LCBhbmQgY2FuCisgICogYXBwbHkgdG8gemVyby4KKyAgKgorICAqIE5vdGUgdGhhdCB0aGlzIHByb3BlcnR5IGNhbiBoYXZlIGEgdmFsdWUgbGVzcyB0aGFuIE1pbkV4cCB3aGVuCisgICogdGhlIG1hbnRpc3NhIGhhcyBtb3JlIHRoYW4gb25lIGRpZ2l0LgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgaW50IGV4cDsKKyAvLyBhc3N1bWVkIDAKKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQ29uc3RydWN0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGEKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4uCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIHRob3VnaCB0aGUgcGFyYW1ldGVyIGhhZAorICAqIGJlZW4gcmVwcmVzZW50ZWQgYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+ICh1c2luZyBpdHMKKyAgKiA8Y29kZT50b1N0cmluZzwvY29kZT4gbWV0aG9kKSBhbmQgdGhlCisgICoge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbiBiZWVuCisgICogdXNlZC4KKyAgKiBUaGUgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIDxpPihOb3RlOiB0aGlzIGNvbnN0cnVjdG9yIGlzIHByb3ZpZGVkIG9ubHkgaW4gdGhlCisgICogPGNvZGU+Y29tLmlibS5pY3UubWF0aDwvY29kZT4gdmVyc2lvbiBvZiB0aGUgQmlnRGVjaW1hbCBjbGFzcy4KKyAgKiBJdCB3b3VsZCBub3QgYmUgcHJlc2VudCBpbiBhIDxjb2RlPmphdmEubWF0aDwvY29kZT4gdmVyc2lvbi4pPC9pPgorICAqCisgICogQHBhcmFtIGJkIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBiZSB0cmFuc2xhdGVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdEZWNpbWFsIGJkKXsKKyAgdGhpcyhiZC50b1N0cmluZygpKTsKKyAgcmV0dXJuO30KKy8vI2VuZGlmCisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LCB3aXRoIHNjYWxlIDAuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LCB3aXRoIGEgc2NhbGUgb2YKKyAgKiB6ZXJvLgorICAqIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgaWRlbnRpY2FsIHRvIHRoZSB2YWx1ZQorICAqIG9mIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKiBUaGUgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aWxsIGNvbnRhaW4gb25seSBkZWNpbWFsIGRpZ2l0cywKKyAgKiBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cyBzaWduIChoeXBoZW4pIGlmIHRoZQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzIG5lZ2F0aXZlLiAgQSBsZWFkaW5nIHplcm8gd2lsbCBiZQorICAqIHByZXNlbnQgb25seSBpZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMgemVyby4KKyAgKgorICAqIEBwYXJhbSBiaSBUaGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpKXsKKyAgdGhpcyhiaS50b1N0cmluZygxMCkpOworICByZXR1cm47fQorIC8vIGV4cCByZW1haW5zIDAKKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGFuZCBhIHNjYWxlLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgc2NhbGVkIGJ5IHRoZQorICAqIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIG1heSBub3QgYmUgbmVnYXRpdmUuCisgICogVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyB0aGUKKyAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBkaXZpZGVkIGJ5IHRlbiB0byB0aGUgcG93ZXIgb2YgdGhlIHNjYWxlLgorICAqIFRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUKKyAgKiA8Y29kZT5udWxsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsICh3aXRoCisgICogYW4gZW1iZWRkZWQgZGVjaW1hbCBwb2ludCBmb2xsb3dlZCBieSA8Y29kZT5zY2FsZTwvY29kZT4gZGVjaW1hbAorICAqIGRpZ2l0cyBpZiB0aGUgc2NhbGUgaXMgcG9zaXRpdmUpLCBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cworICAqIHNpZ24gKGh5cGhlbikgaWYgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzIG5lZ2F0aXZlLiAgQQorICAqIGxlYWRpbmcgemVybyB3aWxsIGJlIHByZXNlbnQgb25seSBpZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMKKyAgKiB6ZXJvLgorICAqCisgICogQHBhcmFtICBiaSAgICBUaGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHNjYWxlIGlzIG5lZ2F0aXZlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpLGludCBzY2FsZSl7CisgIHRoaXMoYmkudG9TdHJpbmcoMTApKTsKKyAgaWYgKHNjYWxlPDApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgZXhwPShpbnQpLXNjYWxlOyAvLyBleHBvbmVudCBpcyAtc2NhbGUKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyB0aG91Z2ggYQorICAqIDxjb2RlPlN0cmluZzwvY29kZT4gaGFkIGJlZW4gY29uc3RydWN0ZWQgZnJvbSB0aGUgY2hhcmFjdGVyIGFycmF5CisgICogYW5kIHRoZSB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuCisgICogYmVlbiB1c2VkLiBUaGUgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIFVzaW5nIHRoaXMgY29uc3RydWN0b3IgaXMgZmFzdGVyIHRoYW4gdXNpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbChTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvciBpZiB0aGUgc3RyaW5nIGlzCisgICogYWxyZWFkeSBhdmFpbGFibGUgaW4gY2hhcmFjdGVyIGFycmF5IGZvcm0uCisgICoKKyAgKiBAcGFyYW0gaW5jaGFycyBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb250YWluaW5nIHRoZSBudW1iZXIKKyAgKiAgICAgICAgICAgICAgICB0byBiZSBjb252ZXJ0ZWQuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZAorICAqICAgICAgICAgICAgICAgIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChjaGFyIGluY2hhcnNbXSl7CisgIHRoaXMoaW5jaGFycywwLGluY2hhcnMubGVuZ3RoKTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyB0aG91Z2ggYQorICAqIDxjb2RlPlN0cmluZzwvY29kZT4gaGFkIGJlZW4gY29uc3RydWN0ZWQgZnJvbSB0aGUgY2hhcmFjdGVyIGFycmF5CisgICogKG9yIGEgc3ViYXJyYXkgb2YgdGhhdCBhcnJheSkgYW5kIHRoZQorICAqIHtAbGluayAjQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKX0gY29uc3RydWN0b3IgaGFkIHRoZW4gYmVlbgorICAqIHVzZWQuIFRoZSBmaXJzdCBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4sIGFuZCB0aGUKKyAgKiBzdWJhcnJheSBtdXN0IGJlIHdob2xseSBjb250YWluZWQgd2l0aGluIGl0LgorICAqIDxwPgorICAqIFVzaW5nIHRoaXMgY29uc3RydWN0b3IgaXMgZmFzdGVyIHRoYW4gdXNpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbChTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvciBpZiB0aGUgc3RyaW5nIGlzCisgICogYWxyZWFkeSBhdmFpbGFibGUgd2l0aGluIGEgY2hhcmFjdGVyIGFycmF5LgorICAqCisgICogQHBhcmFtIGluY2hhcnMgVGhlIDxjb2RlPmNoYXJbXTwvY29kZT4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtYmVyCisgICogICAgICAgICAgICAgICAgdG8gYmUgY29udmVydGVkLgorICAqIEBwYXJhbSBvZmZzZXQgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IG9mZnNldCBpbnRvIHRoZSBhcnJheSBvZiB0aGUKKyAgKiAgICAgICAgICAgICAgICBzdGFydCBvZiB0aGUgbnVtYmVyIHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAcGFyYW0gbGVuZ3RoICBUaGUgPGNvZGU+aW50PC9jb2RlPiBsZW5ndGggb2YgdGhlIG51bWJlci4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkCisgICogICAgICAgICAgICAgICAgbnVtYmVyIGZvciBhbnkgcmVhc29uLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGNoYXIgaW5jaGFyc1tdLGludCBvZmZzZXQsaW50IGxlbmd0aCl7c3VwZXIoKTsKKyAgYm9vbGVhbiBleG90aWM7CisgIGJvb2xlYW4gaGFkZXhwOworICBpbnQgZDsKKyAgaW50IGRvdG9mZjsKKyAgaW50IGxhc3Q7CisgIGludCBpPTA7CisgIGNoYXIgc2k9MDsKKyAgYm9vbGVhbiBlbmVnPWZhbHNlOworICBpbnQgaz0wOworICBpbnQgZWxlbj0wOworICBpbnQgaj0wOworICBjaGFyIHNqPTA7CisgIGludCBkdmFsdWU9MDsKKyAgaW50IG1hZz0wOworICAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGNvbnN0cnVjdG9yOyBhbGwgaW5jb21pbmcgc3RyaW5ncyBlbmQgdXAKKyAgLy8gaGVyZTsgaXQgdXNlcyBleHBsaWNpdCAoaW5saW5lKSBwYXJzaW5nIGZvciBzcGVlZCBhbmQgdG8gYXZvaWQKKyAgLy8gZ2VuZXJhdGluZyBpbnRlcm1lZGlhdGUgKHRlbXBvcmFyeSkgb2JqZWN0cyBvZiBhbnkga2luZC4KKyAgLy8gMTk5OC4wNi4yNTogZXhwb25lbnQgZm9ybSBidWlsdCBvbmx5IGlmIEUvZSBpbiBzdHJpbmcKKyAgLy8gMTk5OC4wNi4yNTogdHJhaWxpbmcgemVyb3Mgbm90IHJlbW92ZWQgZm9yIHplcm8KKyAgLy8gMTk5OS4wMy4wNjogbm8gZW1iZWRkZWQgYmxhbmtzOyBhbGxvdyBvZmZzZXQgYW5kIGxlbmd0aAorICBpZiAobGVuZ3RoPD0wKSAKKyAgIGJhZChpbmNoYXJzKTsgLy8gYmFkIGNvbnZlcnNpb24gKGVtcHR5IHN0cmluZykKKyAgLy8gW2JhZCBvZmZzZXQgd2lsbCByYWlzZSBhcnJheSBib3VuZHMgZXhjZXB0aW9uXQorICAKKyAgLyogSGFuZGxlIGFuZCBzdGVwIHBhc3Qgc2lnbiAqLworICBpbmQ9aXNwb3M7IC8vIGFzc3VtZSBwb3NpdGl2ZQorICBpZiAoaW5jaGFyc1tvZmZzZXRdPT0oJy0nKSkgCisgICB7CisgICAgbGVuZ3RoLS07CisgICAgaWYgKGxlbmd0aD09MCkgCisgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90aGluZyBhZnRlciBzaWduCisgICAgaW5kPWlzbmVnOworICAgIG9mZnNldCsrOworICAgfQorICBlbHNlIAorICAgaWYgKGluY2hhcnNbb2Zmc2V0XT09KCcrJykpIAorICAgIHsKKyAgICAgbGVuZ3RoLS07CisgICAgIGlmIChsZW5ndGg9PTApIAorICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3RoaW5nIGFmdGVyIHNpZ24KKyAgICAgb2Zmc2V0Kys7CisgICAgfQorICAKKyAgLyogV2UncmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBudW1iZXIgKi8KKyAgZXhvdGljPWZhbHNlOyAvLyBoYXZlIGV4dHJhIGRpZ2l0cworICBoYWRleHA9ZmFsc2U7IC8vIGhhZCBleHBsaWNpdCBleHBvbmVudAorICBkPTA7IC8vIGNvdW50IG9mIGRpZ2l0cyBmb3VuZAorICBkb3RvZmY9LTE7IC8vIG9mZnNldCB3aGVyZSBkb3Qgd2FzIGZvdW5kCisgIGxhc3Q9LTE7IC8vIGxhc3QgY2hhcmFjdGVyIG9mIG1hbnRpc3NhCisgIHtpbnQgJDE9bGVuZ3RoO2k9b2Zmc2V0O2k6Zm9yKDskMT4wOyQxLS0saSsrKXsKKyAgIHNpPWluY2hhcnNbaV07CisgICBpZiAoc2k+PScwJykgIC8vIHRlc3QgZm9yIEFyYWJpYyBkaWdpdAorICAgIGlmIChzaTw9JzknKSAKKyAgICAgeworICAgICAgbGFzdD1pOworICAgICAgZCsrOyAvLyBzdGlsbCBpbiBtYW50aXNzYQorICAgICAgY29udGludWUgaTsKKyAgICAgfQorICAgaWYgKHNpPT0nLicpIAorICAgIHsgLy8gcmVjb3JkIGFuZCBpZ25vcmUKKyAgICAgaWYgKGRvdG9mZj49MCkgCisgICAgICBiYWQoaW5jaGFycyk7IC8vIHR3byBkb3RzCisgICAgIGRvdG9mZj1pLW9mZnNldDsgLy8gb2Zmc2V0IGludG8gbWFudGlzc2EKKyAgICAgY29udGludWUgaTsKKyAgICB9CisgICBpZiAoc2khPSdlJykgCisgICAgaWYgKHNpIT0nRScpIAorICAgICB7IC8vIGV4cGVjdCBhbiBleHRyYSBkaWdpdAorICAgICAgaWYgKCghKGphdmEubGFuZy5DaGFyYWN0ZXIuaXNEaWdpdChzaSkpKSkgCisgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYSBudW1iZXIKKyAgICAgIC8vIGRlZmVyIHRoZSBiYXNlIDEwIGNoZWNrIHVudGlsIGxhdGVyIHRvIGF2b2lkIGV4dHJhIG1ldGhvZCBjYWxsCisgICAgICBleG90aWM9dHJ1ZTsgLy8gd2lsbCBuZWVkIGNvbnZlcnNpb24gbGF0ZXIKKyAgICAgIGxhc3Q9aTsKKyAgICAgIGQrKzsgLy8gc3RpbGwgaW4gbWFudGlzc2EKKyAgICAgIGNvbnRpbnVlIGk7CisgICAgIH0KKyAgIC8qIEZvdW5kICdlJyBvciAnRScgLS0gbm93IHByb2Nlc3MgZXhwbGljaXQgZXhwb25lbnQgKi8KKyAgIC8vIDE5OTguMDcuMTE6IHNpZ24gbm8gbG9uZ2VyIHJlcXVpcmVkCisgICBpZiAoKGktb2Zmc2V0KT4obGVuZ3RoLTIpKSAKKyAgICBiYWQoaW5jaGFycyk7IC8vIG5vIHJvb20gZm9yIGV2ZW4gb25lIGRpZ2l0CisgICBlbmVnPWZhbHNlOworICAgaWYgKChpbmNoYXJzW2krMV0pPT0oJy0nKSkgCisgICAgeworICAgICBlbmVnPXRydWU7CisgICAgIGs9aSsyOworICAgIH0KKyAgIGVsc2UgCisgICAgaWYgKChpbmNoYXJzW2krMV0pPT0oJysnKSkgCisgICAgIGs9aSsyOworICAgIGVsc2UgCisgICAgIGs9aSsxOworICAgLy8gayBpcyBvZmZzZXQgb2YgZmlyc3QgZXhwZWN0ZWQgZGlnaXQKKyAgIGVsZW49bGVuZ3RoLSgoay1vZmZzZXQpKTsgLy8gcG9zc2libGUgbnVtYmVyIG9mIGRpZ2l0cworICAgaWYgKChlbGVuPT0wKXwoZWxlbj45KSkgCisgICAgYmFkKGluY2hhcnMpOyAvLyAwIG9yIG1vcmUgdGhhbiA5IGRpZ2l0cworICAge2ludCAkMj1lbGVuO2o9aztqOmZvcig7JDI+MDskMi0tLGorKyl7CisgICAgc2o9aW5jaGFyc1tqXTsKKyAgICBpZiAoc2o8JzAnKSAKKyAgICAgYmFkKGluY2hhcnMpOyAvLyBhbHdheXMgYmFkCisgICAgaWYgKHNqPic5JykgCisgICAgIHsgLy8gbWF5YmUgYW4gZXhvdGljIGRpZ2l0CisgICAgICBpZiAoKCEoamF2YS5sYW5nLkNoYXJhY3Rlci5pc0RpZ2l0KHNqKSkpKSAKKyAgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdCBhIG51bWJlcgorICAgICAgZHZhbHVlPWphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoc2osMTApOyAvLyBjaGVjayBiYXNlCisgICAgICBpZiAoZHZhbHVlPDApIAorICAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90IGJhc2UgMTAKKyAgICAgfQorICAgIGVsc2UgCisgICAgIGR2YWx1ZT0oKGludCkoc2opKS0oKGludCkoJzAnKSk7CisgICAgZXhwPShleHAqMTApK2R2YWx1ZTsKKyAgICB9CisgICB9LypqKi8KKyAgIGlmIChlbmVnKSAKKyAgICBleHA9KGludCktZXhwOyAvLyB3YXMgbmVnYXRpdmUKKyAgIGhhZGV4cD10cnVlOyAvLyByZW1lbWJlciB3ZSBoYWQgb25lCisgICBicmVhayBpOyAvLyB3ZSBhcmUgZG9uZQorICAgfQorICB9LyppKi8KKyAgCisgIC8qIEhlcmUgd2hlbiBhbGwgaW5zcGVjdGVkICovCisgIGlmIChkPT0wKSAKKyAgIGJhZChpbmNoYXJzKTsgLy8gbm8gbWFudGlzc2EgZGlnaXRzCisgIGlmIChkb3RvZmY+PTApIAorICAgZXhwPShleHArZG90b2ZmKS1kOyAvLyBhZGp1c3QgZXhwb25lbnQgaWYgaGFkIGRvdAorICAKKyAgLyogc3RyaXAgbGVhZGluZyB6ZXJvcy9kb3QgKGxlYXZlIGZpbmFsIGlmIGFsbCAwJ3MpICovCisgIHtpbnQgJDM9bGFzdC0xO2k9b2Zmc2V0O2k6Zm9yKDtpPD0kMztpKyspeworICAgc2k9aW5jaGFyc1tpXTsKKyAgIGlmIChzaT09JzAnKSAKKyAgICB7CisgICAgIG9mZnNldCsrOworICAgICBkb3RvZmYtLTsKKyAgICAgZC0tOworICAgIH0KKyAgIGVsc2UgCisgICAgaWYgKHNpPT0nLicpIAorICAgICB7CisgICAgICBvZmZzZXQrKzsgLy8gc3RlcCBwYXN0IGRvdAorICAgICAgZG90b2ZmLS07CisgICAgIH0KKyAgICBlbHNlIAorICAgICBpZiAoc2k8PSc5JykgCisgICAgICBicmVhayBpOy8qIG5vbi0wICovCisgICAgIGVsc2UgCisgICAgICB7LyogZXhvdGljICovCisgICAgICAgaWYgKChqYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KHNpLDEwKSkhPTApIAorICAgICAgICBicmVhayBpOyAvLyBub24tMCBvciBiYWQKKyAgICAgICAvLyBpcyAwIC4uIHN0cmlwIGxpa2UgJzAnCisgICAgICAgb2Zmc2V0Kys7CisgICAgICAgZG90b2ZmLS07CisgICAgICAgZC0tOworICAgICAgfQorICAgfQorICB9LyppKi8KKyAgCisgIC8qIENyZWF0ZSB0aGUgbWFudGlzc2EgYXJyYXkgKi8KKyAgbWFudD1uZXcgYnl0ZVtkXTsgLy8gd2Uga25vdyB0aGUgbGVuZ3RoCisgIGo9b2Zmc2V0OyAvLyBpbnB1dCBvZmZzZXQKKyAgaWYgKGV4b3RpYykgCisgICB7ZXhvdGljYTpkb3sgLy8gc2xvdzogY2hlY2sgZm9yIGV4b3RpY2EKKyAgICB7aW50ICQ0PWQ7aT0wO2k6Zm9yKDskND4wOyQ0LS0saSsrKXsKKyAgICAgaWYgKGk9PWRvdG9mZikgCisgICAgICBqKys7IC8vIGF0IGRvdAorICAgICBzaj1pbmNoYXJzW2pdOworICAgICBpZiAoc2o8PSc5JykgCisgICAgICBtYW50W2ldPShieXRlKSgoKGludCkoc2opKS0oKGludCkoJzAnKSkpOy8qIGVhc3kgKi8KKyAgICAgZWxzZSAKKyAgICAgIHsKKyAgICAgICBkdmFsdWU9amF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdChzaiwxMCk7CisgICAgICAgaWYgKGR2YWx1ZTwwKSAKKyAgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYSBudW1iZXIgYWZ0ZXIgYWxsCisgICAgICAgbWFudFtpXT0oYnl0ZSlkdmFsdWU7CisgICAgICB9CisgICAgIGorKzsKKyAgICAgfQorICAgIH0vKmkqLworICAgfXdoaWxlKGZhbHNlKTt9LypleG90aWNhKi8KKyAgZWxzZSAKKyAgIHtzaW1wbGU6ZG97CisgICAge2ludCAkNT1kO2k9MDtpOmZvcig7JDU+MDskNS0tLGkrKyl7CisgICAgIGlmIChpPT1kb3RvZmYpIAorICAgICAgaisrOworICAgICBtYW50W2ldPShieXRlKSgoKGludCkoaW5jaGFyc1tqXSkpLSgoaW50KSgnMCcpKSk7CisgICAgIGorKzsKKyAgICAgfQorICAgIH0vKmkqLworICAgfXdoaWxlKGZhbHNlKTt9LypzaW1wbGUqLworICAKKyAgLyogTG9va3MgZ29vZC4gIFNldCB0aGUgc2lnbiBpbmRpY2F0b3IgYW5kIGZvcm0sIGFzIG5lZWRlZC4gKi8KKyAgLy8gVHJhaWxpbmcgemVyb3MgYXJlIHByZXNlcnZlZAorICAvLyBUaGUgcnVsZSBoZXJlIGZvciBmb3JtIGlzOgorICAvLyAgIElmIG5vIEUtbm90YXRpb24sIHRoZW4gcmVxdWVzdCBwbGFpbiBub3RhdGlvbgorICAvLyAgIE90aGVyd2lzZSBhY3QgYXMgdGhvdWdoIGFkZCgwLERFRkFVTFQpIGFuZCByZXF1ZXN0IHNjaWVudGlmaWMgbm90YXRpb24KKyAgLy8gW2Zvcm0gaXMgYWxyZWFkeSBQTEFJTl0KKyAgaWYgKG1hbnRbMF09PTApIAorICAgeworICAgIGluZD1pc3plcm87IC8vIGZvcmNlIHRvIHNob3cgemVybworICAgIC8vIG5lZ2F0aXZlIGV4cG9uZW50IGlzIHNpZ25pZmljYW50IChlLmcuLCAtMyBmb3IgMC4wMDApIGlmIHBsYWluCisgICAgaWYgKGV4cD4wKSAKKyAgICAgZXhwPTA7IC8vIHBvc2l0aXZlIGV4cG9uZW50IGNhbiBiZSBpZ25vcmVkCisgICAgaWYgKGhhZGV4cCkgCisgICAgIHsgLy8gemVybyBiZWNvbWVzIHNpbmdsZSBkaWdpdCBmcm9tIGFkZAorICAgICAgbWFudD1aRVJPLm1hbnQ7CisgICAgICBleHA9MDsKKyAgICAgfQorICAgfQorICBlbHNlIAorICAgeyAvLyBub24temVybworICAgIC8vIFtpbmQgd2FzIHNldCBlYXJsaWVyXQorICAgIC8vIG5vdyBkZXRlcm1pbmUgZm9ybQorICAgIGlmIChoYWRleHApIAorICAgICB7CisgICAgICBmb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgICAgIC8vIDE5OTkuMDYuMjkgY2hlY2sgZm9yIG92ZXJmbG93CisgICAgICBtYWc9KGV4cCttYW50Lmxlbmd0aCktMTsgLy8gdHJ1ZSBleHBvbmVudCBpbiBzY2llbnRpZmljIG5vdGF0aW9uCisgICAgICBpZiAoKG1hZzxNaW5FeHApfChtYWc+TWF4RXhwKSkgCisgICAgICAgYmFkKGluY2hhcnMpOworICAgICB9CisgICB9CisgIC8vIHNheSAnQkQoY1tdKTogbWFudFswXSBtYW50bGVuIGV4cCBpbmQgZm9ybTonIG1hbnRbMF0gbWFudC5sZW5ndGggZXhwIGluZCBmb3JtCisgIHJldHVybjsKKyAgfQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBkaXJlY3RseSBmcm9tIGEKKyAgKiA8Y29kZT5kb3VibGU8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBmbG9hdGluZyBwb2ludAorICAqIHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBpdCBhbiBleGFjdCBjb252ZXJzaW9uOyBpdCBkb2VzIG5vdCBnaXZlCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIGNvbnZlcnRpbmcgPGNvZGU+bnVtPC9jb2RlPiB0byBhCisgICogPGNvZGU+U3RyaW5nPC9jb2RlPiB1c2luZyB0aGUgPGNvZGU+RG91YmxlLnRvU3RyaW5nKCk8L2NvZGU+IG1ldGhvZAorICAqIGFuZCB0aGVuIHVzaW5nIHRoZSB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9CisgICogY29uc3RydWN0b3IuCisgICogVG8gZ2V0IHRoYXQgcmVzdWx0LCB1c2UgdGhlIHN0YXRpYyB7QGxpbmsgI3ZhbHVlT2YoZG91YmxlKX0KKyAgKiBtZXRob2QgdG8gY29uc3RydWN0IGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZnJvbSBhCisgICogPGNvZGU+ZG91YmxlPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSBudW0gVGhlIDxjb2RlPmRvdWJsZTwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgaW5maW5pdGUgb3IKKyAgKiAgICAgICAgICAgIG5vdCBhIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChkb3VibGUgbnVtKXsKKyAgLy8gMTk5OS4wMy4wNjogdXNlIGV4YWN0bHkgdGhlIG9sZCBhbGdvcml0aG0KKyAgLy8gMjAwMC4wMS4wMTogbm90ZSB0aGF0IHRoaXMgY29uc3RydWN0b3IgZG9lcyBnaXZlIGFuIGV4YWN0IHJlc3VsdCwKKyAgLy8gICAgICAgICAgICAgc28gcGVyaGFwcyBpdCBzaG91bGQgbm90IGJlIGRlcHJlY2F0ZWQKKyAgLy8gMjAwMC4wNi4xODogbm8gbG9uZ2VyIGRlcHJlY2F0ZWQKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIHRoaXMoKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKS50b1N0cmluZygpKTsKKy8vI2Vsc2UKKy8vIyMgICAgdGhpcyhTdHJpbmcudmFsdWVPZihudW0pKTsKKy8vI2VuZGlmCisgIHJldHVybjt9CisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBkaXJlY3RseSBmcm9tIGEKKyAgKiA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSAzMi1iaXQgc2lnbmVkIGJpbmFyeSBpbnRlZ2VyIHBhcmFtZXRlci4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsCisgICogcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiAoaHlwaGVuKSBpZiB0aGUgcGFyYW1ldGVyIGlzCisgICogbmVnYXRpdmUuCisgICogQSBsZWFkaW5nIHplcm8gd2lsbCBiZSBwcmVzZW50IG9ubHkgaWYgdGhlIHBhcmFtZXRlciBpcyB6ZXJvLgorICAqCisgICogQHBhcmFtIG51bSBUaGUgPGNvZGU+aW50PC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoaW50IG51bSl7c3VwZXIoKTsKKyAgaW50IG11bjsKKyAgaW50IGk9MDsKKyAgLy8gV2UgZmFzdHBhdGggY29tbW9uZXJzCisgIGlmIChudW08PTkpIAorICAgaWYgKG51bT49KC05KSkgCisgICAge3NpbmdsZWRpZ2l0OmRveworICAgICAvLyB2ZXJ5IGNvbW1vbiBzaW5nbGUgZGlnaXQgY2FzZQorICAgICB7LypzZWxlY3QqLworICAgICBpZiAobnVtPT0wKQorICAgICAgeworICAgICAgIG1hbnQ9WkVSTy5tYW50OworICAgICAgIGluZD1pc3plcm87CisgICAgICB9CisgICAgIGVsc2UgaWYgKG51bT09MSkKKyAgICAgIHsKKyAgICAgICBtYW50PU9ORS5tYW50OworICAgICAgIGluZD1pc3BvczsKKyAgICAgIH0KKyAgICAgZWxzZSBpZiAobnVtPT0oLTEpKQorICAgICAgeworICAgICAgIG1hbnQ9T05FLm1hbnQ7CisgICAgICAgaW5kPWlzbmVnOworICAgICAgfQorICAgICBlbHNleworICAgICAgeworICAgICAgIG1hbnQ9bmV3IGJ5dGVbMV07CisgICAgICAgaWYgKG51bT4wKSAKKyAgICAgICAgeworICAgICAgICAgbWFudFswXT0oYnl0ZSludW07CisgICAgICAgICBpbmQ9aXNwb3M7CisgICAgICAgIH0KKyAgICAgICBlbHNlIAorICAgICAgICB7IC8vIG51bTwtMQorICAgICAgICAgbWFudFswXT0oYnl0ZSkoKGludCktbnVtKTsKKyAgICAgICAgIGluZD1pc25lZzsKKyAgICAgICAgfQorICAgICAgfQorICAgICB9CisgICAgIH0KKyAgICAgcmV0dXJuOworICAgIH13aGlsZShmYWxzZSk7fS8qc2luZ2xlZGlnaXQqLworICAKKyAgLyogV2Ugd29yayBvbiBuZWdhdGl2ZSBudW1iZXJzIHNvIHdlIGhhbmRsZSB0aGUgbW9zdCBuZWdhdGl2ZSBudW1iZXIgKi8KKyAgaWYgKG51bT4wKSAKKyAgIHsKKyAgICBpbmQ9aXNwb3M7CisgICAgbnVtPShpbnQpLW51bTsKKyAgIH0KKyAgZWxzZSAKKyAgIGluZD1pc25lZzsvKiBuZWdhdGl2ZSAqLyAvLyBbMCBjYXNlIGFscmVhZHkgaGFuZGxlZF0KKyAgLy8gW2l0IGlzIHF1aWNrZXIsIGhlcmUsIHRvIHByZS1jYWxjdWxhdGUgdGhlIGxlbmd0aCB3aXRoCisgIC8vIG9uZSBsb29wLCB0aGVuIGFsbG9jYXRlIGV4YWN0bHkgdGhlIHJpZ2h0IGxlbmd0aCBvZiBieXRlIGFycmF5LAorICAvLyB0aGVuIHJlLWZpbGwgaXQgd2l0aCBhbm90aGVyIGxvb3BdCisgIG11bj1udW07IC8vIHdvcmtpbmcgY29weQorICB7aT05O2k6Zm9yKDs7aS0tKXsKKyAgIG11bj1tdW4vMTA7CisgICBpZiAobXVuPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgLy8gaSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGxlZnRtb3N0IGRpZ2l0IHBsYWNlZAorICBtYW50PW5ldyBieXRlWzEwLWldOworICB7aT0oMTAtaSktMTtpOmZvcig7O2ktLSl7CisgICBtYW50W2ldPShieXRlKS0oKChieXRlKShudW0lMTApKSk7CisgICBudW09bnVtLzEwOworICAgaWYgKG51bT09MCkgCisgICAgYnJlYWsgaTsKKyAgIH0KKyAgfS8qaSovCisgIHJldHVybjsKKyAgfQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBkaXJlY3RseSBmcm9tIGEKKyAgKiA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGV4YWN0IGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgNjQtYml0IHNpZ25lZCBiaW5hcnkgaW50ZWdlciBwYXJhbWV0ZXIuCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpbGwgY29udGFpbiBvbmx5IGRlY2ltYWwgZGlnaXRzLAorICAqIHByZWZpeGVkIHdpdGggYSBsZWFkaW5nIG1pbnVzIHNpZ24gKGh5cGhlbikgaWYgdGhlIHBhcmFtZXRlciBpcworICAqIG5lZ2F0aXZlLgorICAqIEEgbGVhZGluZyB6ZXJvIHdpbGwgYmUgcHJlc2VudCBvbmx5IGlmIHRoZSBwYXJhbWV0ZXIgaXMgemVyby4KKyAgKgorICAqIEBwYXJhbSBudW0gVGhlIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChsb25nIG51bSl7c3VwZXIoKTsKKyAgbG9uZyBtdW47CisgIGludCBpPTA7CisgIC8vIE5vdCByZWFsbHkgd29ydGggZmFzdHBhdGhpbmcgY29tbW9uZXJzIGluIHRoaXMgY29uc3RydWN0b3IgW2Fsc28sCisgIC8vIHdlIHVzZSB0aGlzIHRvIGNvbnN0cnVjdCB0aGUgc3RhdGljIGNvbnN0YW50c10uCisgIC8vIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbjogdGhpcyhTdHJpbmcudmFsdWVPZihudW0pLnRvQ2hhckFycmF5KCkpCisgIC8qIFdlIHdvcmsgb24gbmVnYXRpdmUgbnVtIHNvIHdlIGhhbmRsZSB0aGUgbW9zdCBuZWdhdGl2ZSBudW1iZXIgKi8KKyAgaWYgKG51bT4wKSAKKyAgIHsKKyAgICBpbmQ9aXNwb3M7CisgICAgbnVtPShsb25nKS1udW07CisgICB9CisgIGVsc2UgCisgICBpZiAobnVtPT0wKSAKKyAgICBpbmQ9aXN6ZXJvOworICAgZWxzZSAKKyAgICBpbmQ9aXNuZWc7LyogbmVnYXRpdmUgKi8KKyAgbXVuPW51bTsKKyAge2k9MTg7aTpmb3IoOztpLS0peworICAgbXVuPW11bi8xMDsKKyAgIGlmIChtdW49PTApIAorICAgIGJyZWFrIGk7CisgICB9CisgIH0vKmkqLworICAvLyBpIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbGVmdG1vc3QgZGlnaXQgcGxhY2VkCisgIG1hbnQ9bmV3IGJ5dGVbMTktaV07CisgIHtpPSgxOS1pKS0xO2k6Zm9yKDs7aS0tKXsKKyAgIG1hbnRbaV09KGJ5dGUpLSgoKGJ5dGUpKG51bSUxMCkpKTsKKyAgIG51bT1udW0vMTA7CisgICBpZiAobnVtPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgcmV0dXJuOworICB9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmcm9tIHRoZSBwYXJhbWV0ZXIsIHdoaWNoIG11c3QKKyAgKiBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4gYW5kIG11c3QgcmVwcmVzZW50IGEgdmFsaWQgPGk+bnVtYmVyPC9pPiwKKyAgKiBhcyBkZXNjcmliZWQgZm9ybWFsbHkgaW4gdGhlIGRvY3VtZW50YXRpb24gcmVmZXJyZWQgdG8KKyAgKiB7QGxpbmsgQmlnRGVjaW1hbCBhYm92ZX0uCisgICogPHA+CisgICogSW4gc3VtbWFyeSwgbnVtYmVycyBpbiA8Y29kZT5TdHJpbmc8L2NvZGU+IGZvcm0gbXVzdCBoYXZlIGF0IGxlYXN0CisgICogb25lIGRpZ2l0LCBtYXkgaGF2ZSBhIGxlYWRpbmcgc2lnbiwgbWF5IGhhdmUgYSBkZWNpbWFsIHBvaW50LCBhbmQKKyAgKiBleHBvbmVudGlhbCBub3RhdGlvbiBtYXkgYmUgdXNlZC4gIFRoZXkgZm9sbG93IGNvbnZlbnRpb25hbCBzeW50YXgsCisgICogYW5kIG1heSBub3QgY29udGFpbiBibGFua3MuCisgICogPHA+CisgICogU29tZSB2YWxpZCBzdHJpbmdzIGZyb20gd2hpY2ggYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBtaWdodAorICAqIGJlIGNvbnN0cnVjdGVkIGFyZToKKyAgKiA8cHJlPgorICAqICAgICAgICIwIiAgICAgICAgIC0tIFplcm8KKyAgKiAgICAgICIxMiIgICAgICAgICAtLSBBIHdob2xlIG51bWJlcgorICAqICAgICAiLTc2IiAgICAgICAgIC0tIEEgc2lnbmVkIHdob2xlIG51bWJlcgorICAqICAgICAgIjEyLjcwIiAgICAgIC0tIFNvbWUgZGVjaW1hbCBwbGFjZXMKKyAgKiAgICAgIiswLjAwMyIgICAgICAtLSBQbHVzIHNpZ24gaXMgYWxsb3dlZAorICAqICAgICAgIjE3LiIgICAgICAgIC0tIFRoZSBzYW1lIGFzIDE3CisgICogICAgICAgICIuNSIgICAgICAgLS0gVGhlIHNhbWUgYXMgMC41CisgICogICAgICAiNEUrOSIgICAgICAgLS0gRXhwb25lbnRpYWwgbm90YXRpb24KKyAgKiAgICAgICAiMC43M2UtNyIgICAtLSBFeHBvbmVudGlhbCBub3RhdGlvbgorICAqIDwvcHJlPgorICAqIDxwPgorICAqIChFeHBvbmVudGlhbCBub3RhdGlvbiBtZWFucyB0aGF0IHRoZSBudW1iZXIgaW5jbHVkZXMgYW4gb3B0aW9uYWwKKyAgKiBzaWduIGFuZCBhIHBvd2VyIG9mIHRlbiBmb2xsb3dpbmcgYW4gJzwvY29kZT5FPC9jb2RlPicgdGhhdAorICAqIGluZGljYXRlcyBob3cgdGhlIGRlY2ltYWwgcG9pbnQgd2lsbCBiZSBzaGlmdGVkLiAgVGh1cyB0aGUKKyAgKiA8Y29kZT4iNEUrOSI8L2NvZGU+IGFib3ZlIGlzIGp1c3QgYSBzaG9ydCB3YXkgb2Ygd3JpdGluZworICAqIDxjb2RlPjQwMDAwMDAwMDA8L2NvZGU+LCBhbmQgdGhlIDxjb2RlPiIwLjczZS03IjwvY29kZT4gaXMgc2hvcnQKKyAgKiBmb3IgPGNvZGU+MC4wMDAwMDAwNzM8L2NvZGU+LikKKyAgKiA8cD4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY29uc3RydWN0ZWQgZnJvbSB0aGUgU3RyaW5nIGlzIGluIGEKKyAgKiBzdGFuZGFyZCBmb3JtLCB3aXRoIG5vIGJsYW5rcywgYXMgdGhvdWdoIHRoZQorICAqIHtAbGluayAjYWRkKEJpZ0RlY2ltYWwpfSBtZXRob2QgaGFkIGJlZW4gdXNlZCB0byBhZGQgemVybyB0byB0aGUKKyAgKiBudW1iZXIgd2l0aCB1bmxpbWl0ZWQgcHJlY2lzaW9uLgorICAqIElmIHRoZSBzdHJpbmcgdXNlcyBleHBvbmVudGlhbCBub3RhdGlvbiAodGhhdCBpcywgaW5jbHVkZXMgYW4KKyAgKiA8Y29kZT5lPC9jb2RlPiBvciBhbiA8Y29kZT5FPC9jb2RlPiksIHRoZW4gdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVyIHdpbGwgYmUgZXhwcmVzc2VkIGluIHNjaWVudGlmaWMKKyAgKiBub3RhdGlvbiAod2hlcmUgdGhlIHBvd2VyIG9mIHRlbiBpcyBhZGp1c3RlZCBzbyB0aGVyZSBpcyBhIHNpbmdsZQorICAqIG5vbi16ZXJvIGRpZ2l0IHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIHBvaW50KTsgaW4gdGhpcyBjYXNlIGlmCisgICogdGhlIG51bWJlciBpcyB6ZXJvIHRoZW4gaXQgd2lsbCBiZSBleHByZXNzZWQgYXMgdGhlIHNpbmdsZSBkaWdpdCAwLAorICAqIGFuZCBpZiBub24temVybyBpdCB3aWxsIGhhdmUgYW4gZXhwb25lbnQgdW5sZXNzIHRoYXQgZXhwb25lbnQgd291bGQKKyAgKiBiZSAwLiAgVGhlIGV4cG9uZW50IG11c3QgZml0IGluIG5pbmUgZGlnaXRzIGJvdGggYmVmb3JlIGFuZCBhZnRlciBpdAorICAqIGlzIGV4cHJlc3NlZCBpbiBzY2llbnRpZmljIG5vdGF0aW9uLgorICAqIDxwPgorICAqIEFueSBkaWdpdHMgaW4gdGhlIHBhcmFtZXRlciBtdXN0IGJlIGRlY2ltYWw7IHRoYXQgaXMsCisgICogPGNvZGU+Q2hhcmFjdGVyLmRpZ2l0KGMsIDEwKTwvY29kZT4gKHdoZXJlIDwvY29kZT5jPC9jb2RlPiBpcyB0aGUKKyAgKiBjaGFyYWN0ZXIgaW4gcXVlc3Rpb24pIHdvdWxkIG5vdCByZXR1cm4gLTEuCisgICoKKyAgKiBAcGFyYW0gc3RyaW5nIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkCisgICogbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcgc3RyaW5nKXsKKyAgdGhpcyhzdHJpbmcudG9DaGFyQXJyYXkoKSwwLHN0cmluZy5sZW5ndGgoKSk7CisgIHJldHVybjt9CisKKyAvKiA8c2dtbD4gTWFrZSBhIGRlZmF1bHQgQmlnRGVjaW1hbCBvYmplY3QgZm9yIGxvY2FsIHVzZS4gPC9zZ21sPiAqLworIAorIHByaXZhdGUgQmlnRGVjaW1hbCgpe3N1cGVyKCk7CisgIHJldHVybjsKKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE9wZXJhdG9yIG1ldGhvZHMgW21ldGhvZHMgd2hpY2ggdGFrZSBhIGNvbnRleHQgcGFyYW1ldGVyXSAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBhYnNvbHV0ZQorICAqIHZhbHVlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNhYnMoTWF0aENvbnRleHQpfSwgd2hlcmUgdGhlIGNvbnRleHQgaXMKKyAgKiA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsCisgICogYmUgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPgorICAqCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBhYnNvbHV0ZQorICAqICAgICAgICAgdmFsdWUgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFicygpeworICByZXR1cm4gdGhpcy5hYnMocGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUgdmFsdWUKKyAgKiBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIElmIHRoZSBjdXJyZW50IG9iamVjdCBpcyB6ZXJvIG9yIHBvc2l0aXZlLCB0aGVuIHRoZSBzYW1lIHJlc3VsdCBhcworICAqIGludm9raW5nIHRoZSB7QGxpbmsgI3BsdXMoTWF0aENvbnRleHQpfSBtZXRob2Qgd2l0aCB0aGUgc2FtZQorICAqIHBhcmFtZXRlciBpcyByZXR1cm5lZC4KKyAgKiBPdGhlcndpc2UsIHRoZSBzYW1lIHJlc3VsdCBhcyBpbnZva2luZyB0aGUKKyAgKiB7QGxpbmsgI25lZ2F0ZShNYXRoQ29udGV4dCl9IG1ldGhvZCB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlciBpcworICAqIHJldHVybmVkLgorICAqCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlCisgICogICAgICAgICAgICAgdmFsdWUgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFicyhjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGlmICh0aGlzLmluZD09aXNuZWcpIAorICAgcmV0dXJuIHRoaXMubmVnYXRlKHNldCk7CisgIHJldHVybiB0aGlzLnBsdXMoc2V0KTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcytyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjYWRkKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiB0aGUgbWF4aW11bSBvZiB0aGUgc2NhbGVzIG9mIHRoZSB0d28gb3BlcmFuZHMuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgYWRkaXRpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMrcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuYWRkKHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMrcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBhZGRpdGlvbiAoPGI+PGNvZGU+KzwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgYWRkaXRpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzK3JoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhZGQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCByZXFkaWc7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGJ5dGUgdXNlbFtdOworICBpbnQgdXNlbGxlbjsKKyAgYnl0ZSB1c2VyW107CisgIGludCB1c2VybGVuOworICBpbnQgbmV3bGVuPTA7CisgIGludCB0bGVuPTA7CisgIGludCBtdWx0PTA7CisgIGJ5dGUgdFtdPW51bGw7CisgIGludCBpYT0wOworICBpbnQgaWI9MDsKKyAgaW50IGVhPTA7CisgIGludCBlYj0wOworICBieXRlIGNhPTA7CisgIGJ5dGUgY2I9MDsKKyAgLyogZGV0ZXJtaW5lIHJlcXVlc3RlZCBkaWdpdHMgYW5kIGZvcm0gKi8KKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgbGhzPXRoaXM7IC8vIG5hbWUgZm9yIGNsYXJpdHkgYW5kIHByb3h5CisgIAorICAvKiBRdWljayBleGl0IGZvciBhZGQgZmxvYXRpbmcgMCAqLworICAvLyBwbHVzKCkgd2lsbCBvcHRpbWl6ZSB0byByZXR1cm4gc2FtZSBvYmplY3QgaWYgcG9zc2libGUKKyAgaWYgKGxocy5pbmQ9PTApIAorICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICByZXR1cm4gcmhzLnBsdXMoc2V0KTsKKyAgaWYgKHJocy5pbmQ9PTApIAorICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICByZXR1cm4gbGhzLnBsdXMoc2V0KTsKKyAgCisgIC8qIFByZXBhcmUgbnVtYmVycyAocm91bmQsIHVubGVzcyB1bmxpbWl0ZWQgcHJlY2lzaW9uKSAqLworICByZXFkaWc9c2V0LmRpZ2l0czsgLy8gbG9jYWwgY29weSAoaGVhdmlseSB1c2VkKQorICBpZiAocmVxZGlnPjApIAorICAgeworICAgIGlmIChsaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgbGhzPWNsb25lKGxocykucm91bmQoc2V0KTsKKyAgICBpZiAocmhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIHJocz1jbG9uZShyaHMpLnJvdW5kKHNldCk7CisgICAvLyBbd2UgY291bGQgcmV1c2UgdGhlIG5ldyBMSFMgZm9yIHJlc3VsdCBpbiB0aGlzIGNhc2VdCisgICB9CisgIAorICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOyAvLyBidWlsZCByZXN1bHQgaGVyZQorICAKKyAgLyogTm93IHNlZSBob3cgbXVjaCB3ZSBoYXZlIHRvIHBhZCBvciB0cnVuY2F0ZSBsaHMgb3IgcmhzIGluIG9yZGVyCisgICAgIHRvIGFsaWduIHRoZSBudW1iZXJzLiAgSWYgb25lIG51bWJlciBpcyBtdWNoIGxhcmdlciB0aGFuIHRoZQorICAgICBvdGhlciwgdGhlbiB0aGUgc21hbGxlciBjYW5ub3QgYWZmZWN0IHRoZSBhbnN3ZXIgW2J1dCB3ZSBtYXkKKyAgICAgc3RpbGwgbmVlZCB0byBwYWQgd2l0aCB1cCB0byBESUdJVFMgdHJhaWxpbmcgemVyb3NdLiAqLworICAvLyBOb3RlIHNpZ24gbWF5IGJlIDAgaWYgZGlnaXRzIChyZXFkaWcpIGlzIDAKKyAgLy8gdXNlbCBhbmQgdXNlciB3aWxsIGJlIHRoZSBieXRlIGFycmF5cyBwYXNzZWQgdG8gdGhlIGFkZGVyOyB3ZSdsbAorICAvLyB1c2UgdGhlbSBvbiBhbGwgcGF0aHMgZXhjZXB0IHF1aWNrIGV4aXRzCisgIHVzZWw9bGhzLm1hbnQ7CisgIHVzZWxsZW49bGhzLm1hbnQubGVuZ3RoOworICB1c2VyPXJocy5tYW50OworICB1c2VybGVuPXJocy5tYW50Lmxlbmd0aDsKKyAge3BhZGRlcjpkb3svKnNlbGVjdCovCisgIGlmIChsaHMuZXhwPT1yaHMuZXhwKQorICAgey8qIG5vIHBhZGRpbmcgbmVlZGVkICovCisgICAgLy8gVGhpcyBpcyB0aGUgbW9zdCBjb21tb24sIGFuZCBmYXN0ZXN0LCBwYXRoCisgICAgcmVzLmV4cD1saHMuZXhwOworICAgfQorICBlbHNlIGlmIChsaHMuZXhwPnJocy5leHApCisgICB7IC8vIG5lZWQgdG8gcGFkIGxocyBhbmQvb3IgdHJ1bmNhdGUgcmhzCisgICAgbmV3bGVuPSh1c2VsbGVuK2xocy5leHApLXJocy5leHA7CisgICAgLyogSWYsIGFmdGVyIHBhZCwgbGhzIHdvdWxkIGJlIGxvbmdlciB0aGFuIHJocyBieSBkaWdpdHMrMSBvcgorICAgICAgIG1vcmUgKGFuZCBkaWdpdHM+MCkgdGhlbiByaHMgY2Fubm90IGFmZmVjdCBhbnN3ZXIsIHNvIHdlIG9ubHkKKyAgICAgICBuZWVkIHRvIHBhZCB1cCB0byBhIGxlbmd0aCBvZiBESUdJVFMrMS4gKi8KKyAgICBpZiAobmV3bGVuPj0oKHVzZXJsZW4rcmVxZGlnKSsxKSkgCisgICAgIGlmIChyZXFkaWc+MCkgCisgICAgICB7CisgICAgICAgLy8gTEhTIGlzIHN1ZmZpY2llbnQKKyAgICAgICByZXMubWFudD11c2VsOworICAgICAgIHJlcy5leHA9bGhzLmV4cDsKKyAgICAgICByZXMuaW5kPWxocy5pbmQ7CisgICAgICAgaWYgKHVzZWxsZW48cmVxZGlnKSAKKyAgICAgICAgeyAvLyBuZWVkIDAgcGFkZGluZworICAgICAgICAgcmVzLm1hbnQ9ZXh0ZW5kKGxocy5tYW50LHJlcWRpZyk7CisgICAgICAgICByZXMuZXhwPXJlcy5leHAtKChyZXFkaWctdXNlbGxlbikpOworICAgICAgICB9CisgICAgICAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgICAgIH0KKyAgICAvLyBSSFMgbWF5IGFmZmVjdCByZXN1bHQKKyAgICByZXMuZXhwPXJocy5leHA7IC8vIGV4cGVjdGVkIGZpbmFsIGV4cG9uZW50CisgICAgaWYgKG5ld2xlbj4ocmVxZGlnKzEpKSAKKyAgICAgaWYgKHJlcWRpZz4wKSAKKyAgICAgIHsKKyAgICAgICAvLyBMSFMgd2lsbCBiZSBtYXg7IFJIUyB0cnVuY2F0ZWQKKyAgICAgICB0bGVuPShuZXdsZW4tcmVxZGlnKS0xOyAvLyB0cnVuY2F0aW9uIGxlbmd0aAorICAgICAgIHVzZXJsZW49dXNlcmxlbi10bGVuOworICAgICAgIHJlcy5leHA9cmVzLmV4cCt0bGVuOworICAgICAgIG5ld2xlbj1yZXFkaWcrMTsKKyAgICAgIH0KKyAgICBpZiAobmV3bGVuPnVzZWxsZW4pIAorICAgICB1c2VsbGVuPW5ld2xlbjsgLy8gbmVlZCB0byBwYWQgTEhTCisgICB9CisgIGVsc2V7IC8vIG5lZWQgdG8gcGFkIHJocyBhbmQvb3IgdHJ1bmNhdGUgbGhzCisgICBuZXdsZW49KHVzZXJsZW4rcmhzLmV4cCktbGhzLmV4cDsKKyAgIGlmIChuZXdsZW4+PSgodXNlbGxlbityZXFkaWcpKzEpKSAKKyAgICBpZiAocmVxZGlnPjApIAorICAgICB7CisgICAgICAvLyBSSFMgaXMgc3VmZmljaWVudAorICAgICAgcmVzLm1hbnQ9dXNlcjsKKyAgICAgIHJlcy5leHA9cmhzLmV4cDsKKyAgICAgIHJlcy5pbmQ9cmhzLmluZDsKKyAgICAgIGlmICh1c2VybGVuPHJlcWRpZykgCisgICAgICAgeyAvLyBuZWVkIDAgcGFkZGluZworICAgICAgICByZXMubWFudD1leHRlbmQocmhzLm1hbnQscmVxZGlnKTsKKyAgICAgICAgcmVzLmV4cD1yZXMuZXhwLSgocmVxZGlnLXVzZXJsZW4pKTsKKyAgICAgICB9CisgICAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICAgICB9CisgICAvLyBMSFMgbWF5IGFmZmVjdCByZXN1bHQKKyAgIHJlcy5leHA9bGhzLmV4cDsgLy8gZXhwZWN0ZWQgZmluYWwgZXhwb25lbnQKKyAgIGlmIChuZXdsZW4+KHJlcWRpZysxKSkgCisgICAgaWYgKHJlcWRpZz4wKSAKKyAgICAgeworICAgICAgLy8gUkhTIHdpbGwgYmUgbWF4OyBMSFMgdHJ1bmNhdGVkCisgICAgICB0bGVuPShuZXdsZW4tcmVxZGlnKS0xOyAvLyB0cnVuY2F0aW9uIGxlbmd0aAorICAgICAgdXNlbGxlbj11c2VsbGVuLXRsZW47CisgICAgICByZXMuZXhwPXJlcy5leHArdGxlbjsKKyAgICAgIG5ld2xlbj1yZXFkaWcrMTsKKyAgICAgfQorICAgaWYgKG5ld2xlbj51c2VybGVuKSAKKyAgICB1c2VybGVuPW5ld2xlbjsgLy8gbmVlZCB0byBwYWQgUkhTCisgIH0KKyAgfXdoaWxlKGZhbHNlKTt9LypwYWRkZXIqLworICAKKyAgLyogT0ssIHdlIGhhdmUgYWxpZ25lZCBtYW50aXNzYXMuICBOb3cgYWRkIG9yIHN1YnRyYWN0LiAqLworICAvLyAxOTk4LjA2LjI3IFNpZ24gbWF5IG5vdyBiZSAwIFtlLmcuLCAwLjAwMF0gLi4gdHJlYXQgYXMgcG9zaXRpdmUKKyAgLy8gMTk5OS4wNS4yNyBBbGxvdyBmb3IgMDAgb24gbGhzIFtpcyBub3QgbGFyZ2VyIHRoYW4gMiBvbiByaHNdCisgIC8vIDE5OTkuMDcuMTAgQWxsb3cgZm9yIDAwIG9uIHJocyBbaXMgbm90IGxhcmdlciB0aGFuIDIgb24gcmhzXQorICBpZiAobGhzLmluZD09aXN6ZXJvKSAKKyAgIHJlcy5pbmQ9aXNwb3M7CisgIGVsc2UgCisgICByZXMuaW5kPWxocy5pbmQ7IC8vIGxpa2VseSBzaWduLCBhbGwgcGF0aHMKKyAgaWYgKCgobGhzLmluZD09aXNuZWcpPzE6MCk9PSgocmhzLmluZD09aXNuZWcpPzE6MCkpICAvLyBzYW1lIHNpZ24sIDAgbm9uLW5lZ2F0aXZlCisgICBtdWx0PTE7CisgIGVsc2UgCisgICB7c2lnbmRpZmY6ZG97IC8vIGRpZmZlcmVudCBzaWducywgc28gc3VidHJhY3Rpb24gaXMgbmVlZGVkCisgICAgbXVsdD0tMTsgLy8gd2lsbCBjYXVzZSBzdWJ0cmFjdAorICAgIC8qIEJlZm9yZSB3ZSBjYW4gc3VidHJhY3Qgd2UgbXVzdCBkZXRlcm1pbmUgd2hpY2ggaXMgdGhlIGxhcmdlciwKKyAgICAgICBhcyBvdXIgYWRkL3N1YnRyYWN0IHJvdXRpbmUgb25seSBoYW5kbGVzIG5vbi1uZWdhdGl2ZSByZXN1bHRzCisgICAgICAgc28gd2UgbWF5IG5lZWQgdG8gc3dhcCB0aGUgb3BlcmFuZHMuICovCisgICAge3N3YXB0ZXN0OmRvey8qc2VsZWN0Ki8KKyAgICBpZiAocmhzLmluZD09aXN6ZXJvKXsKKyAgICAgLy8gb3JpZ2luYWwgQSBiaWdnZXIKKyAgICB9ZWxzZSBpZiAoKHVzZWxsZW48dXNlcmxlbil8KGxocy5pbmQ9PWlzemVybykpCisgICAgIHsgLy8gb3JpZ2luYWwgQiBiaWdnZXIKKyAgICAgIHQ9dXNlbDsKKyAgICAgIHVzZWw9dXNlcjsKKyAgICAgIHVzZXI9dDsgLy8gc3dhcAorICAgICAgdGxlbj11c2VsbGVuOworICAgICAgdXNlbGxlbj11c2VybGVuOworICAgICAgdXNlcmxlbj10bGVuOyAvLyAuLgorICAgICAgcmVzLmluZD0oYnl0ZSktcmVzLmluZDsgLy8gYW5kIHNldCBzaWduCisgICAgIH0KKyAgICBlbHNlIGlmICh1c2VsbGVuPnVzZXJsZW4peworICAgICAvLyBvcmlnaW5hbCBBIGJpZ2dlcgorICAgIH1lbHNleworICAgICB7LyogbG9naWNhbCBsZW5ndGhzIHRoZSBzYW1lICovIC8vIG5lZWQgY29tcGFyZQorICAgICAgLyogbWF5IHN0aWxsIG5lZWQgdG8gc3dhcDogY29tcGFyZSB0aGUgc3RyaW5ncyAqLworICAgICAgaWE9MDsKKyAgICAgIGliPTA7CisgICAgICBlYT11c2VsLmxlbmd0aC0xOworICAgICAgZWI9dXNlci5sZW5ndGgtMTsKKyAgICAgIHtjb21wYXJlOmZvcig7Oyl7CisgICAgICAgaWYgKGlhPD1lYSkgCisgICAgICAgIGNhPXVzZWxbaWFdOworICAgICAgIGVsc2UgCisgICAgICAgIHsKKyAgICAgICAgIGlmIChpYj5lYikgCisgICAgICAgICAgey8qIGlkZW50aWNhbCAqLworICAgICAgICAgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgICAgICAgICAgcmV0dXJuIFpFUk87CisgICAgICAgICAgIC8vIFtpZiBQTEFJTiB3ZSBtdXN0IGRvIHRoZSBzdWJ0cmFjdCwgaW4gY2FzZSBvZiAwLjAwMCByZXN1bHRzXQorICAgICAgICAgICBicmVhayBjb21wYXJlOworICAgICAgICAgIH0KKyAgICAgICAgIGNhPShieXRlKTA7CisgICAgICAgIH0KKyAgICAgICBpZiAoaWI8PWViKSAKKyAgICAgICAgY2I9dXNlcltpYl07CisgICAgICAgZWxzZSAKKyAgICAgICAgY2I9KGJ5dGUpMDsKKyAgICAgICBpZiAoY2EhPWNiKSAKKyAgICAgICAgeworICAgICAgICAgaWYgKGNhPGNiKSAKKyAgICAgICAgICB7Lyogc3dhcCBuZWVkZWQgKi8KKyAgICAgICAgICAgdD11c2VsOworICAgICAgICAgICB1c2VsPXVzZXI7CisgICAgICAgICAgIHVzZXI9dDsgLy8gc3dhcAorICAgICAgICAgICB0bGVuPXVzZWxsZW47CisgICAgICAgICAgIHVzZWxsZW49dXNlcmxlbjsKKyAgICAgICAgICAgdXNlcmxlbj10bGVuOyAvLyAuLgorICAgICAgICAgICByZXMuaW5kPShieXRlKS1yZXMuaW5kOworICAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrIGNvbXBhcmU7CisgICAgICAgIH0KKyAgICAgICAvKiBtYW50aXNzYXMgdGhlIHNhbWUsIHNvIGZhciAqLworICAgICAgIGlhKys7CisgICAgICAgaWIrKzsKKyAgICAgICB9CisgICAgICB9Lypjb21wYXJlKi8KKyAgICAgfSAvLyBsZW5ndGhzIHRoZSBzYW1lCisgICAgfQorICAgIH13aGlsZShmYWxzZSk7fS8qc3dhcHRlc3QqLworICAgfXdoaWxlKGZhbHNlKTt9LypzaWduZGlmZiovCisgIAorICAvKiBoZXJlLCBBIGlzID4gQiBpZiBzdWJ0cmFjdGluZyAqLworICAvLyBhZGQgW0ErQioxXSBvciBzdWJ0cmFjdCBbQSsoQiotMSldCisgIHJlcy5tYW50PWJ5dGVhZGRzdWIodXNlbCx1c2VsbGVuLHVzZXIsdXNlcmxlbixtdWx0LGZhbHNlKTsKKyAgLy8gW3JldXNlIHBvc3NpYmxlIG9ubHkgYWZ0ZXIgY2hvcDsgYWNjb3VudGluZyBtYWtlcyBub3Qgd29ydGh3aGlsZV0KKyAgCisgIC8vIEZpbmlzaCgpIHJvdW5kcyBiZWZvcmUgc3RyaXBwaW5nIGxlYWRpbmcgMCdzLCB0aGVuIHNldHMgZm9ybSwgZXRjLgorICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBDb21wYXJlcyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFub3RoZXIsIHVzaW5nIHVubGltaXRlZAorICAqIHByZWNpc2lvbi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgLTEsIDAsIG9yIDEgYXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4sIGVxdWFsIHRvLAorICAqICAgICAgICAgICAgIG9yIGdyZWF0ZXIgdGhhbiA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhPYmplY3QpCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBjb21wYXJlVG8oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLmNvbXBhcmVUbyhyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIENvbXBhcmVzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYW5vdGhlci4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIG51bWVyaWMgY29tcGFyaXNvbiwKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyBhIHJlc3VsdCBvZiB0eXBlIDxjb2RlPmludDwvY29kZT4uCisgICogPHA+CisgICogVGhlIHJlc3VsdCB3aWxsIGJlOgorICAqIDx0YWJsZSBjZWxscGFkZGluZz0yPjx0cj4KKyAgKiA8dGQgYWxpZ249cmlnaHQ+PGI+LTE8L2I+PC90ZD4KKyAgKiA8dGQ+aWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGxlc3MgdGhhbiB0aGUgZmlyc3QgcGFyYW1ldGVyPC90ZD4KKyAgKiA8L3RyPjx0cj4KKyAgKiA8dGQgYWxpZ249cmlnaHQ+PGI+MDwvYj48L3RkPgorICAqIDx0ZD5pZiB0aGUgY3VycmVudCBvYmplY3QgaXMgZXF1YWwgdG8gdGhlIGZpcnN0IHBhcmFtZXRlcjwvdGQ+CisgICogPC90cj48dHI+CisgICogPHRkIGFsaWduPXJpZ2h0PjxiPjE8L2I+PC90ZD4KKyAgKiA8dGQ+aWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlyc3QgcGFyYW1ldGVyLjwvdGQ+CisgICogPC90cj48L3RhYmxlPgorICAqIDxwPgorICAqIEEge0BsaW5rICNjb21wYXJlVG8oT2JqZWN0KX0gbWV0aG9kIGlzIGFsc28gcHJvdmlkZWQuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQW4gPGNvZGU+aW50PC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyAtMSwgMCwgb3IgMSBhcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXM8L2NvZGU+IGlzIG51bWVyaWNhbGx5IGxlc3MgdGhhbiwgZXF1YWwgdG8sCisgICogICAgICAgICAgICAgb3IgZ3JlYXRlciB0aGFuIDxjb2RlPnJoczwvY29kZT4uCisgICogQHNlZSAgICAjY29tcGFyZVRvKE9iamVjdCkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGNvbXBhcmVUbyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaW50IHRoaXNsZW5ndGg9MDsKKyAgaW50IGk9MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5ld3JoczsKKyAgLy8gcmhzPW51bGwgd2lsbCByYWlzZSBOdWxsUG9pbnRlckV4Y2VwdGlvbiwgYXMgcGVyIENvbXBhcmFibGUgaW50ZXJmYWNlCisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIC8vIFthZGQgd2lsbCByZWNoZWNrIGluIHNsb3dwYXRoIGNhc2VzIC4uIGJ1dCB3b3VsZCByZXBvcnQgLXJoc10KKyAgaWYgKCh0aGlzLmluZD09cmhzLmluZCkmKHRoaXMuZXhwPT1yaHMuZXhwKSkgCisgICB7CisgICAgLyogc2lnbiAmIGV4cG9uZW50IHRoZSBzYW1lIFt2ZXJ5IGNvbW1vbl0gKi8KKyAgICB0aGlzbGVuZ3RoPXRoaXMubWFudC5sZW5ndGg7CisgICAgaWYgKHRoaXNsZW5ndGg8cmhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmV0dXJuIChieXRlKS10aGlzLmluZDsKKyAgICBpZiAodGhpc2xlbmd0aD5yaHMubWFudC5sZW5ndGgpIAorICAgICByZXR1cm4gdGhpcy5pbmQ7CisgICAgLyogbGVuZ3RocyBhcmUgdGhlIHNhbWU7IHdlIGNhbiBkbyBhIHN0cmFpZ2h0IG1hbnRpc3NhIGNvbXBhcmUKKyAgICAgICB1bmxlc3MgbWF5YmUgcm91bmRpbmcgW3JvdW5kaW5nIGlzIHZlcnkgdW51c3VhbF0gKi8KKyAgICBpZiAoKHRoaXNsZW5ndGg8PXNldC5kaWdpdHMpfChzZXQuZGlnaXRzPT0wKSkgCisgICAgIHsKKyAgICAgIHtpbnQgJDY9dGhpc2xlbmd0aDtpPTA7aTpmb3IoOyQ2PjA7JDYtLSxpKyspeworICAgICAgIGlmICh0aGlzLm1hbnRbaV08cmhzLm1hbnRbaV0pIAorICAgICAgICByZXR1cm4gKGJ5dGUpLXRoaXMuaW5kOworICAgICAgIGlmICh0aGlzLm1hbnRbaV0+cmhzLm1hbnRbaV0pIAorICAgICAgICByZXR1cm4gdGhpcy5pbmQ7CisgICAgICAgfQorICAgICAgfS8qaSovCisgICAgICByZXR1cm4gMDsgLy8gaWRlbnRpY2FsCisgICAgIH0KKyAgIC8qIGRyb3AgdGhyb3VnaCBmb3IgZnVsbCBjb21wYXJpc29uICovCisgICB9CisgIGVsc2UgCisgICB7CisgICAgLyogTW9yZSBmYXN0cGF0aHMgcG9zc2libGUgKi8KKyAgICBpZiAodGhpcy5pbmQ8cmhzLmluZCkgCisgICAgIHJldHVybiAtMTsKKyAgICBpZiAodGhpcy5pbmQ+cmhzLmluZCkgCisgICAgIHJldHVybiAxOworICAgfQorICAvKiBjYXJyeSBvdXQgYSBzdWJ0cmFjdCB0byBtYWtlIHRoZSBjb21wYXJpc29uICovCisgIG5ld3Jocz1jbG9uZShyaHMpOyAvLyBzYWZlIGNvcHkKKyAgbmV3cmhzLmluZD0oYnl0ZSktbmV3cmhzLmluZDsgLy8gcHJlcGFyZSB0byBzdWJ0cmFjdAorICByZXR1cm4gdGhpcy5hZGQobmV3cmhzLHNldCkuaW5kOyAvLyBhZGQsIGFuZCByZXR1cm4gc2lnbiBvZiByZXN1bHQKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjZGl2aWRlKEJpZ0RlY2ltYWwsIGludCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgcm91bmRpbmcgbW9kZSBpcyB7QGxpbmsgTWF0aENvbnRleHQjUk9VTkRfSEFMRl9VUH0uCisgICoKKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIHNhbWUgYXMgdGhlIHNjYWxlIG9mIHRoZSBjdXJyZW50IG9iamVjdCwgaWYgdGhlIGxhdHRlciB3ZXJlCisgICogZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgZGl2aXNpb24uCisgICogQHJldHVybiAgICAgQSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnRCcscmhzLHBsYWluTUMsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgYW5kIGEKKyAgKiByb3VuZGluZyBtb2RlLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjZGl2aWRlKEJpZ0RlY2ltYWwsIGludCwgaW50KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4sIGFuZAorICAqIHRoZSB0aGlyZCBpcyA8Y29kZT5yb3VuZDwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbAorICAqIHRoZXJlZm9yZSBiZSB0aGUgc2FtZSBhcyB0aGUgc2NhbGUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0LCBpZiB0aGUKKyAgKiBsYXR0ZXIgd2VyZSBmb3JtYXR0ZWQgd2l0aG91dCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiBAcGFyYW0gIHJocyAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgICAgdGhlIGRpdmlzaW9uLgorICAqIEBwYXJhbSAgcm91bmQgVGhlIDxjb2RlPmludDwvY29kZT4gcm91bmRpbmcgbW9kZSB0byBiZSB1c2VkIGZvcgorICAqICAgICAgICAgICAgICAgdGhlIGRpdmlzaW9uIChzZWUgdGhlIHtAbGluayBNYXRoQ29udGV4dH0gY2xhc3MpLgorICAqIEByZXR1cm4gICAgICAgQSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgICAgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljCisgICogICAgICAgICAgICAgICBhbmQgdGhlIHNwZWNpZmllZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyBub3QgYQorICAqICAgICAgICAgICAgICAgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMge0BsaW5rCisgICogICAgICAgICAgICAgICBNYXRoQ29udGV4dCNST1VORF9VTk5FQ0VTU0FSWX0gYW5kCisgICogICAgICAgICAgICAgICA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+IGlzIGluc3VmZmljaWVudCB0bworICAqICAgICAgICAgICAgICAgcmVwcmVzZW50IHRoZSByZXN1bHQgZXhhY3RseS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGludCByb3VuZCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0OworICBzZXQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLHJvdW5kKTsgLy8gW2NoZWNrcyByb3VuZCwgdG9vXQorICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnRCcscmhzLHNldCwtMSk7IC8vIHRha2Ugc2NhbGUgZnJvbSBMSFMKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljIGFuZCBhCisgICogZ2l2ZW4gc2NhbGUgYW5kIHJvdW5kaW5nIG1vZGUuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNkaXZpZGUoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4sIGZhbHNlLCByb3VuZCk8L2NvZGU+LAorICAqIGV4Y2VwdCB0aGF0IHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSB0byBiZSB1c2VkCisgICogZm9yIHRoZSByZXN1bHQgaXMgZXhwbGljaXQgcmF0aGVyIHRoYW4gYmVpbmcgdGFrZW4gZnJvbQorICAqIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiB0aGUgc2FtZSBhcyB0aGUgc2NhbGUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0LCBpZiB0aGUgbGF0dGVyIHdlcmUKKyAgKiBmb3JtYXR0ZWQgd2l0aG91dCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiBAcGFyYW0gIHJocyAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgICAgdGhlIGRpdmlzaW9uLgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc2NhbGUgdG8gYmUgdXNlZCBmb3IgdGhlIHJlc3VsdC4KKyAgKiBAcGFyYW0gIHJvdW5kIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nIG1vZGUgdG8gYmUgdXNlZCBmb3IKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbiAoc2VlIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzKS4KKyAgKiBAcmV0dXJuICAgICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYworICAqICAgICAgICAgICAgICAgYW5kIHRoZSBzcGVjaWZpZWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEKKyAgKiAgICAgICAgICAgICAgIHZhbGlkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+c2NhbGU8L2NvZGU+IGlzIG5lZ2F0aXZlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMge0BsaW5rCisgICogICAgICAgICAgICAgICBNYXRoQ29udGV4dCNST1VORF9VTk5FQ0VTU0FSWX0gYW5kIDxjb2RlPnNjYWxlPC9jb2RlPgorICAqICAgICAgICAgICAgICAgaXMgaW5zdWZmaWNpZW50IHRvIHJlcHJlc2VudCB0aGUgcmVzdWx0IGV4YWN0bHkuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxpbnQgc2NhbGUsaW50IHJvdW5kKXsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQ7CisgIGlmIChzY2FsZTwwKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICBzZXQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLHJvdW5kKTsgLy8gW2NoZWNrcyByb3VuZF0KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxzZXQsc2NhbGUpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIGRpdmlzaW9uICg8Yj48Y29kZT4vPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnRCcscmhzLHNldCwtMSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50ZWdlcgorICAqIHBhcnQgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjZGl2aWRlSW50ZWdlcihCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBpbnRlZ2VyIGRpdmlzaW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiAgICAgICAgICAgICBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlSW50ZWdlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgLy8gc2NhbGUgMCB0byBkcm9wIC4wMDAgd2hlbiBwbGFpbgorICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnSScscmhzLHBsYWluTUMsMCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50ZWdlcgorICAqIHBhcnQgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIGludGVnZXIgZGl2aXNpb24gb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGludGVnZXIgZGl2aXNpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiAgICAgICAgICAgICBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0IHdpbGwgbm90IGZpdCBpbiB0aGUKKyAgKiAgICAgICAgICAgICBudW1iZXIgb2YgZGlnaXRzIHNwZWNpZmllZCBmb3IgdGhlIGNvbnRleHQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGVJbnRlZ2VyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICAvLyBzY2FsZSAwIHRvIGRyb3AgLjAwMCB3aGVuIHBsYWluCisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdJJyxyaHMsc2V0LDApOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgbWF4aW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI21heChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWF4aW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1heChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMubWF4KHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogPHA+CisgICogUmV0dXJucyB0aGUgbGFyZ2VyIG9mIHRoZSBjdXJyZW50IG9iamVjdCBhbmQgdGhlIGZpcnN0IHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBJZiBjYWxsaW5nIHRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZAorICAqIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyB3b3VsZCByZXR1cm4gPGNvZGU+MTwvY29kZT4gb3IKKyAgKiA8Y29kZT4wPC9jb2RlPiwgdGhlbiB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlCisgICoge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0gbWV0aG9kIG9uIHRoZSBjdXJyZW50IG9iamVjdCAodXNpbmcgdGhlCisgICogc2FtZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKSBpcyByZXR1cm5lZC4KKyAgKiBPdGhlcndpc2UsIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0KKyAgKiBtZXRob2Qgb24gdGhlIGZpcnN0IHBhcmFtZXRlciBvYmplY3QgKHVzaW5nIHRoZSBzYW1lCisgICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIHRoZSBtYXhpbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWF4KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpZiAoKHRoaXMuY29tcGFyZVRvKHJocyxzZXQpKT49MCkgCisgICByZXR1cm4gdGhpcy5wbHVzKHNldCk7CisgIGVsc2UgCisgICByZXR1cm4gcmhzLnBsdXMoc2V0KTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIG1pbmltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNtaW4oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgdGhlIG1pbmltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtaW4oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLm1pbihyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFJldHVybnMgdGhlIHNtYWxsZXIgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IGFuZCB0aGUgZmlyc3QgcGFyYW1ldGVyLgorICAqIDxwPgorICAqIElmIGNhbGxpbmcgdGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0gbWV0aG9kCisgICogd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzIHdvdWxkIHJldHVybiA8Y29kZT4tMTwvY29kZT4gb3IKKyAgKiA8Y29kZT4wPC9jb2RlPiwgdGhlbiB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlCisgICoge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0gbWV0aG9kIG9uIHRoZSBjdXJyZW50IG9iamVjdCAodXNpbmcgdGhlCisgICogc2FtZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKSBpcyByZXR1cm5lZC4KKyAgKiBPdGhlcndpc2UsIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0KKyAgKiBtZXRob2Qgb24gdGhlIGZpcnN0IHBhcmFtZXRlciBvYmplY3QgKHVzaW5nIHRoZSBzYW1lCisgICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWluKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpZiAoKHRoaXMuY29tcGFyZVRvKHJocyxzZXQpKTw9MCkgCisgICByZXR1cm4gdGhpcy5wbHVzKHNldCk7CisgIGVsc2UgCisgICByZXR1cm4gcmhzLnBsdXMoc2V0KTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcypyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjYWRkKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiB0aGUgc3VtIG9mIHRoZSBzY2FsZXMgb2YgdGhlIG9wZXJhbmRzLCBpZiB0aGV5IHdlcmUgZm9ybWF0dGVkCisgICogd2l0aG91dCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBtdWx0aXBsaWNhdGlvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcypyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbXVsdGlwbHkoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLm11bHRpcGx5KHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMqcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBtdWx0aXBsaWNhdGlvbiAoPGI+PGNvZGU+KjwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgbXVsdGlwbGljYXRpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzKnJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtdWx0aXBseShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgaW50IHBhZGRpbmc7CisgIGludCByZXFkaWc7CisgIGJ5dGUgbXVsdGVyW109bnVsbDsKKyAgYnl0ZSBtdWx0YW5kW109bnVsbDsKKyAgaW50IG11bHRhbmRsZW47CisgIGludCBhY2NsZW49MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgYnl0ZSBhY2NbXTsKKyAgaW50IG49MDsKKyAgYnl0ZSBtdWx0PTA7CisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIGxocz10aGlzOyAvLyBuYW1lIGZvciBjbGFyaXR5IGFuZCBwcm94eQorICAKKyAgLyogUHJlcGFyZSBudW1iZXJzICh0cnVuY2F0ZSwgdW5sZXNzIHVubGltaXRlZCBwcmVjaXNpb24pICovCisgIHBhZGRpbmc9MDsgLy8gdHJhaWxpbmcgMCdzIHRvIGFkZAorICByZXFkaWc9c2V0LmRpZ2l0czsgLy8gbG9jYWwgY29weQorICBpZiAocmVxZGlnPjApIAorICAgeworICAgIGlmIChsaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgbGhzPWNsb25lKGxocykucm91bmQoc2V0KTsKKyAgICBpZiAocmhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIHJocz1jbG9uZShyaHMpLnJvdW5kKHNldCk7CisgICAvLyBbd2UgY291bGQgcmV1c2UgdGhlIG5ldyBMSFMgZm9yIHJlc3VsdCBpbiB0aGlzIGNhc2VdCisgICB9CisgIGVsc2UgCisgICB7LyogdW5saW1pdGVkICovCisgICAgLy8gZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyB3aWxsIHdhbnQgZXZlcnkgdHJhaWxpbmcgMDsgd2UgYWRkIHRoZXNlCisgICAgLy8gYWZ0ZXIgdGhlIGNhbGN1bGF0aW9uIHJhdGhlciB0aGFuIGJlZm9yZSwgZm9yIHNwZWVkLgorICAgIGlmIChsaHMuZXhwPjApIAorICAgICBwYWRkaW5nPXBhZGRpbmcrbGhzLmV4cDsKKyAgICBpZiAocmhzLmV4cD4wKSAKKyAgICAgcGFkZGluZz1wYWRkaW5nK3Jocy5leHA7CisgICB9CisgIAorICAvLyBGb3IgYmVzdCBzcGVlZCwgYXMgaW4gRE1TUkNOLCB3ZSB1c2UgdGhlIHNob3J0ZXIgbnVtYmVyIGFzIHRoZQorICAvLyBtdWx0aXBsaWVyIGFuZCB0aGUgbG9uZ2VyIGFzIHRoZSBtdWx0aXBsaWNhbmQuCisgIC8vIDE5OTkuMTIuMjI6IFdlIHVzZWQgdG8gc3BlY2lhbCBjYXNlIHdoZW4gdGhlIHJlc3VsdCB3b3VsZCBmaXQgaW4KKyAgLy8gICAgICAgICAgICAgYSBsb25nLCBidXQgd2l0aCBKYXZhIDEuMyB0aGlzIGdhdmUgbm8gYWR2YW50YWdlLgorICBpZiAobGhzLm1hbnQubGVuZ3RoPHJocy5tYW50Lmxlbmd0aCkgCisgICB7CisgICAgbXVsdGVyPWxocy5tYW50OworICAgIG11bHRhbmQ9cmhzLm1hbnQ7CisgICB9CisgIGVsc2UgCisgICB7CisgICAgbXVsdGVyPXJocy5tYW50OworICAgIG11bHRhbmQ9bGhzLm1hbnQ7CisgICB9CisgIAorICAvKiBDYWxjdWxhdGUgaG93IGxvbmcgcmVzdWx0IGJ5dGUgYXJyYXkgd2lsbCBiZSAqLworICBtdWx0YW5kbGVuPShtdWx0ZXIubGVuZ3RoK211bHRhbmQubGVuZ3RoKS0xOyAvLyBlZmZlY3RpdmUgbGVuZ3RoCisgIC8vIG9wdGltaXplIGZvciA3NSUgb2YgdGhlIGNhc2VzIHdoZXJlIGEgY2FycnkgaXMgZXhwZWN0ZWQuLi4KKyAgaWYgKChtdWx0ZXJbMF0qbXVsdGFuZFswXSk+OSkgCisgICBhY2NsZW49bXVsdGFuZGxlbisxOworICBlbHNlIAorICAgYWNjbGVuPW11bHRhbmRsZW47CisgIAorICAvKiBOb3cgdGhlIG1haW4gbG9uZyBtdWx0aXBsaWNhdGlvbiBsb29wICovCisgIHJlcz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCk7IC8vIHdoZXJlIHdlJ2xsIGJ1aWxkIHJlc3VsdAorICBhY2M9bmV3IGJ5dGVbYWNjbGVuXTsgLy8gYWNjdW11bGF0b3IsIGFsbCB6ZXJvcworICAvLyAxOTk4LjA3LjAxOiBjYWxjdWxhdGUgZnJvbSBsZWZ0IHRvIHJpZ2h0IHNvIHRoYXQgYWNjdW11bGF0b3IgZ29lcworICAvLyB0byBsaWtlbHkgZmluYWwgbGVuZ3RoIG9uIGZpcnN0IGFkZGl0aW9uOyB0aGlzIGF2b2lkcyBhIG9uZS1kaWdpdAorICAvLyBleHRlbnNpb24gKGFuZCBvYmplY3QgYWxsb2NhdGlvbikgZWFjaCB0aW1lIGFyb3VuZCB0aGUgbG9vcC4KKyAgLy8gSW5pdGlhbCBudW1iZXIgdGhlcmVmb3JlIGhhcyB2aXJ0dWFsIHplcm9zIGFkZGVkIHRvIHJpZ2h0LgorICB7aW50ICQ3PW11bHRlci5sZW5ndGg7bj0wO246Zm9yKDskNz4wOyQ3LS0sbisrKXsKKyAgIG11bHQ9bXVsdGVyW25dOworICAgaWYgKG11bHQhPTApIAorICAgIHsgLy8gW29wdGltaXphdGlvbl0KKyAgICAgLy8gYWNjdW11bGF0ZSBbYWNjdW11bGF0b3IgaXMgcmV1c2FibGUgYXJyYXldCisgICAgIGFjYz1ieXRlYWRkc3ViKGFjYyxhY2MubGVuZ3RoLG11bHRhbmQsbXVsdGFuZGxlbixtdWx0LHRydWUpOworICAgIH0KKyAgIC8vIGRpdmlkZSBtdWx0aXBsaWNhbmQgYnkgMTAgZm9yIG5leHQgZGlnaXQgdG8gcmlnaHQKKyAgIG11bHRhbmRsZW4tLTsgLy8gJ3ZpcnR1YWwgbGVuZ3RoJworICAgfQorICB9LypuKi8KKyAgCisgIHJlcy5pbmQ9KGJ5dGUpKGxocy5pbmQqcmhzLmluZCk7IC8vIGZpbmFsIHNpZ24KKyAgcmVzLmV4cD0obGhzLmV4cCtyaHMuZXhwKS1wYWRkaW5nOyAvLyBmaW5hbCBleHBvbmVudAorICAvLyBbb3ZlcmZsb3cgaXMgY2hlY2tlZCBieSBmaW5pc2hdCisgIAorICAvKiBhZGQgdHJhaWxpbmcgemVyb3MgdG8gdGhlIHJlc3VsdCwgaWYgbmVjZXNzYXJ5ICovCisgIGlmIChwYWRkaW5nPT0wKSAKKyAgIHJlcy5tYW50PWFjYzsKKyAgZWxzZSAKKyAgIHJlcy5tYW50PWV4dGVuZChhY2MsYWNjLmxlbmd0aCtwYWRkaW5nKTsgLy8gYWRkIHRyYWlsaW5nIDBzCisgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI25lZ2F0ZShNYXRoQ29udGV4dCl9LCB3aGVyZSB0aGUgY29udGV4dCBpcworICAqIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiBiZSA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+CisgICoKKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgPGNvZGU+LXRoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbmVnYXRlKCl7CisgIHJldHVybiB0aGlzLm5lZ2F0ZShwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBuZWdhdGlvbiAoUHJlZml4IDxiPjxjb2RlPi08L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgPGNvZGU+LXRoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbmVnYXRlKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgLy8gT3JpZ2luYWxseSBjYWxsZWQgbWludXMoKSwgY2hhbmdlZCB0byBtYXRjaGVkIEphdmEgcHJlY2VkZW50cworICAvLyBUaGlzIHNpbXBseSBjbG9uZXMsIGZsaXBzIHRoZSBzaWduLCBhbmQgcG9zc2libHkgcm91bmRzCisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwsc2V0LmRpZ2l0cyk7CisgIHJlcz1jbG9uZSh0aGlzKTsgLy8gc2FmZSBjb3B5CisgIHJlcy5pbmQ9KGJ5dGUpLXJlcy5pbmQ7CisgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPit0aGlzPC9jb2RlPi4KKyAgKiBOb3RlIHRoYXQgPGNvZGU+dGhpczwvY29kZT4gaXMgbm90IG5lY2Vzc2FyaWx5IGEKKyAgKiBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgYnV0IHRoZSByZXN1bHQgd2lsbCBhbHdheXMgYmUuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0sIHdoZXJlIHRoZSBjb250ZXh0IGlzCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIGJlIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgPGNvZGU+K3RoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcGx1cygpeworICByZXR1cm4gdGhpcy5wbHVzKHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT4rdGhpczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgcGx1cyAoUHJlZml4IDxiPjxjb2RlPis8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIDxwPgorICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3Igcm91bmRpbmcgb3Igb3RoZXJ3aXNlIGFwcGx5aW5nIGEgY29udGV4dAorICAqIHRvIGEgZGVjaW1hbCB2YWx1ZS4KKyAgKgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPit0aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBsdXMoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICAvLyBUaGlzIGNsb25lcyBhbmQgZm9yY2VzIHRoZSByZXN1bHQgdG8gdGhlIG5ldyBzZXR0aW5ncworICAvLyBNYXkgcmV0dXJuIHNhbWUgb2JqZWN0CisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwsc2V0LmRpZ2l0cyk7CisgIC8vIE9wdGltaXphdGlvbjogcmV0dXJucyBzYW1lIG9iamVjdCBmb3Igc29tZSBjb21tb24gY2FzZXMKKyAgaWYgKHNldC5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgIGlmICh0aGlzLmZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgIHsKKyAgICAgaWYgKHRoaXMubWFudC5sZW5ndGg8PXNldC5kaWdpdHMpIAorICAgICAgcmV0dXJuIHRoaXM7CisgICAgIGlmIChzZXQuZGlnaXRzPT0wKSAKKyAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgcmV0dXJuIGNsb25lKHRoaXMpLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzKipyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjcG93KEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBwYXJhbWV0ZXIgaXMgdGhlIHBvd2VyIHRvIHdoaWNoIHRoZSA8Y29kZT50aGlzPC9jb2RlPiB3aWxsIGJlCisgICogcmFpc2VkOyBpdCBtdXN0IGJlIGluIHRoZSByYW5nZSAwIHRocm91Z2ggOTk5OTk5OTk5LCBhbmQgbXVzdAorICAqIGhhdmUgYSBkZWNpbWFsIHBhcnQgb2YgemVyby4gIE5vdGUgdGhhdCB0aGVzZSByZXN0cmljdGlvbnMgbWF5IGJlCisgICogcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLCBzbyB0aGV5IHNob3VsZCBub3QgYmUgdXNlZCBhcyBhIHRlc3QgZm9yIGEKKyAgKiB3aG9sZSBudW1iZXIuCisgICogPHA+CisgICogSW4gYWRkaXRpb24sIHRoZSBwb3dlciBtdXN0IG5vdCBiZSBuZWdhdGl2ZSwgYXMgbm8KKyAgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gaXMgdXNlZCBhbmQgc28gdGhlIHJlc3VsdCB3b3VsZCB0aGVuCisgICogYWx3YXlzIGJlIDAuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uICh0aGUgcG93ZXIpLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzKipyaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIG91dCBvZiByYW5nZSBvcgorICAqICAgICAgICAgICAgIGlzIG5vdCBhIHdob2xlIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBvdyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMucG93KHJocyxwbGFpbk1DKTsKKyAgfQorIC8vIFRoZSBuYW1lIGZvciB0aGlzIG1ldGhvZCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgcHJlY2VkZW50IHNldCBieSB0aGUKKyAvLyBCaWdJbnRlZ2VyIGFuZCBNYXRoIGNsYXNzZXMuCisgCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMqKnJoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgcG93ZXIgKDxiPjxjb2RlPioqPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiA8cD4KKyAgKiBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBwb3dlciB0byB3aGljaCB0aGUgPGNvZGU+dGhpczwvY29kZT4KKyAgKiB3aWxsIGJlIHJhaXNlZDsgaXQgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTk5OTk5OTk5OSB0aHJvdWdoCisgICogOTk5OTk5OTk5LCBhbmQgbXVzdCBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIHplcm8uICBOb3RlIHRoYXQgdGhlc2UKKyAgKiByZXN0cmljdGlvbnMgbWF5IGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSwgc28gdGhleSBzaG91bGQgbm90IGJlCisgICogdXNlZCBhcyBhIHRlc3QgZm9yIGEgd2hvbGUgbnVtYmVyLgorICAqIDxwPgorICAqIElmIHRoZSA8Y29kZT5kaWdpdHM8L2NvZGU+IHNldHRpbmcgb2YgdGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPgorICAqIHBhcmFtZXRlciBpcyAwLCB0aGUgcG93ZXIgbXVzdCBiZSB6ZXJvIG9yIHBvc2l0aXZlLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiAodGhlIHBvd2VyKS4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMqKnJoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgb3V0IG9mIHJhbmdlIG9yCisgICogICAgICAgICAgICAgaXMgbm90IGEgd2hvbGUgbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcG93KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpbnQgbjsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgaW50IHJlcWRpZzsKKyAgaW50IHdvcmtkaWdpdHM9MDsKKyAgaW50IEw9MDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCB3b3Jrc2V0OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBib29sZWFuIHNlZW5iaXQ7CisgIGludCBpPTA7CisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIG49cmhzLmludGNoZWNrKE1pbkFyZyxNYXhBcmcpOyAvLyBjaGVjayBSSFMgYnkgdGhlIHJ1bGVzCisgIGxocz10aGlzOyAvLyBjbGFyaWZpZWQgbmFtZQorICAKKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkgKGhlYXZpbHkgdXNlZCkKKyAgaWYgKHJlcWRpZz09MCkgCisgICB7CisgICAgaWYgKHJocy5pbmQ9PWlzbmVnKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJOZWdhdGl2ZSBwb3dlcjoiKyIgIityaHMudG9TdHJpbmcoKSk7CisgICAgd29ya2RpZ2l0cz0wOworICAgfQorICBlbHNlIAorICAgey8qIG5vbi0wIGRpZ2l0cyAqLworICAgIGlmICgocmhzLm1hbnQubGVuZ3RoK3Jocy5leHApPnJlcWRpZykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3Jocy50b1N0cmluZygpKTsKKyAgICAKKyAgICAvKiBSb3VuZCB0aGUgbGhzIHRvIERJR0lUUyBpZiBuZWVkIGJlICovCisgICAgaWYgKGxocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICBsaHM9Y2xvbmUobGhzKS5yb3VuZChzZXQpOworICAgIAorICAgIC8qIEwgZm9yIHByZWNpc2lvbiBjYWxjdWxhdGlvbiBbc2VlIEFOU0kgWDMuMjc0LTE5OTZdICovCisgICAgTD1yaHMubWFudC5sZW5ndGgrcmhzLmV4cDsgLy8gbGVuZ3RoIHdpdGhvdXQgZGVjaW1hbCB6ZXJvcy9leHAKKyAgICB3b3JrZGlnaXRzPShyZXFkaWcrTCkrMTsgLy8gY2FsY3VsYXRlIHRoZSB3b3JraW5nIERJR0lUUworICAgfQorICAKKyAgLyogQ3JlYXRlIGEgY29weSBvZiBzZXQgZm9yIHdvcmtpbmcgc2V0dGluZ3MgKi8KKyAgLy8gTm90ZTogbm8gbmVlZCB0byBjaGVjayBmb3IgbG9zdERpZ2l0cyBhZ2Fpbi4KKyAgLy8gMTk5OS4wNy4xNyBOb3RlOiB0aGlzIGNvbnN0cnVjdGlvbiBtdXN0IGZvbGxvdyBSSFMgY2hlY2sKKyAgd29ya3NldD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCh3b3JrZGlnaXRzLHNldC5mb3JtLGZhbHNlLHNldC5yb3VuZGluZ01vZGUpOworICAKKyAgcmVzPU9ORTsgLy8gYWNjdW11bGF0b3IKKyAgaWYgKG49PTApIAorICAgcmV0dXJuIHJlczsgLy8geCoqMCA9PSAxCisgIGlmIChuPDApIAorICAgbj0oaW50KS1uOyAvLyBbcmhzLmluZCByZWNvcmRzIHRoZSBzaWduXQorICBzZWVuYml0PWZhbHNlOyAvLyBzZXQgb25jZSB3ZSd2ZSBzZWVuIGEgMS1iaXQKKyAge2k9MTtpOmZvcig7O2krKyl7IC8vIGZvciBlYWNoIGJpdCBbdG9wIGJpdCBpZ25vcmVkXQorICAgbj1uK247IC8vIHNoaWZ0IGxlZnQgMSBiaXQKKyAgIGlmIChuPDApIAorICAgIHsgLy8gdG9wIGJpdCBpcyBzZXQKKyAgICAgc2VlbmJpdD10cnVlOyAvLyBPSywgd2UncmUgb2ZmCisgICAgIHJlcz1yZXMubXVsdGlwbHkobGhzLHdvcmtzZXQpOyAvLyBhY2M9YWNjKngKKyAgICB9CisgICBpZiAoaT09MzEpIAorICAgIGJyZWFrIGk7IC8vIHRoYXQgd2FzIHRoZSBsYXN0IGJpdAorICAgaWYgKCghc2VlbmJpdCkpIAorICAgIGNvbnRpbnVlIGk7IC8vIHdlIGRvbid0IGhhdmUgdG8gc3F1YXJlIDEKKyAgIHJlcz1yZXMubXVsdGlwbHkocmVzLHdvcmtzZXQpOyAvLyBhY2M9YWNjKmFjYyBbc3F1YXJlXQorICAgfQorICB9LyppKi8gLy8gMzIgYml0cworICBpZiAocmhzLmluZDwwKSAgLy8gd2FzIGEgKiotbiBbaGVuY2UgZGlnaXRzPjBdCisgICByZXM9T05FLmRpdmlkZShyZXMsd29ya3NldCk7IC8vIC4uIHNvIGFjYz0xL2FjYworICByZXR1cm4gcmVzLmZpbmlzaChzZXQsdHJ1ZSk7IC8vIHJvdW5kIGFuZCBzdHJpcCBbb3JpZ2luYWwgZGlnaXRzXQorICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgcmVtYWluZGVyIG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3JlbWFpbmRlcihCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGlzIGlzIG5vdCB0aGUgbW9kdWxvIG9wZXJhdG9yIC0tIHRoZSByZXN1bHQgbWF5IGJlIG5lZ2F0aXZlLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIHJlbWFpbmRlciBvcGVyYXRpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgcmVtYWluZGVyCisgICogICAgICAgICAgICAgb2YgPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdSJyxyaHMscGxhaW5NQywtMSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgcmVtYWluZGVyIG9mCisgICogPGNvZGU+dGhpcy9yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHJlbWFpbmRlciBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogPHA+CisgICogVGhpcyBpcyBub3QgdGhlIG1vZHVsbyBvcGVyYXRvciAtLSB0aGUgcmVzdWx0IG1heSBiZSBuZWdhdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSByZW1haW5kZXIgb3BlcmF0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSByZW1haW5kZXIKKyAgKiAgICAgICAgICAgICBvZiA8Y29kZT50aGlzK3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIGludGVnZXIgcGFydCBvZiB0aGUgcmVzdWx0IHdpbGwKKyAgKiAgICAgICAgICAgICBub3QgZml0IGluIHRoZSBudW1iZXIgb2YgZGlnaXRzIHNwZWNpZmllZCBmb3IgdGhlCisgICogICAgICAgICAgICAgY29udGV4dC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ1InLHJocyxzZXQsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT50aGlzLXJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNzdWJ0cmFjdChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIG1heGltdW0gb2YgdGhlIHNjYWxlcyBvZiB0aGUgdHdvIG9wZXJhbmRzLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIHN1YnRyYWN0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzLXJoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuc3VidHJhY3QocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgPGNvZGU+dGhpcy1yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHN1YnRyYWN0aW9uICg8Yj48Y29kZT4tPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBzdWJ0cmFjdGlvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMtcmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHN1YnRyYWN0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbmV3cmhzOworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICAvLyBbYWRkIHdpbGwgcmVjaGVjayAuLiBidXQgd291bGQgcmVwb3J0IC1yaHNdCisgIC8qIGNhcnJ5IG91dCB0aGUgc3VidHJhY3Rpb24gKi8KKyAgLy8gd2UgY291bGQgZmFzdHBhdGggLTAsIGJ1dCBpdCBpcyB0b28gcmFyZS4KKyAgbmV3cmhzPWNsb25lKHJocyk7IC8vIHNhZmUgY29weQorICBuZXdyaHMuaW5kPShieXRlKS1uZXdyaHMuaW5kOyAvLyBwcmVwYXJlIHRvIHN1YnRyYWN0CisgIHJldHVybiB0aGlzLmFkZChuZXdyaHMsc2V0KTsgLy8gYXJpdGhtZXRpYworICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogT3RoZXIgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+Ynl0ZTwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEgPGNvZGU+Ynl0ZTwvY29kZT4gKDgtYml0IHNpZ25lZAorICAqIGludGVnZXIpIHJlc3VsdCB0aGVuIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5ieXRlPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwYXJ0LCBvciB3aWxsIG5vdCBmaXQgaW4gYSA8Y29kZT5ieXRlPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgYnl0ZSBieXRlVmFsdWVFeGFjdCgpeworICBpbnQgbnVtOworICBudW09dGhpcy5pbnRWYWx1ZUV4YWN0KCk7IC8vIHdpbGwgY2hlY2sgZGVjaW1hbCBwYXJ0IHRvbworICBpZiAoKG51bT4xMjcpfChudW08KC0xMjgpKSkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgcmV0dXJuIChieXRlKW51bTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLgorICAqIDxwPgorICAqIElmIHRoZSBwYXJhbWV0ZXIgaXMgPGNvZGU+bnVsbDwvY29kZT4sIG9yIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0eXBlLCBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAqIE90aGVyd2lzZSwgdGhlIHBhcmFtZXRlciBpcyBjYXN0IHRvIHR5cGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4KKyAgKiBhbmQgdGhlIHJlc3VsdCBvZiB0aGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCl9IG1ldGhvZCwKKyAgKiB1c2luZyB0aGUgY2FzdCBwYXJhbWV0ZXIsIGlzIHJldHVybmVkLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZCBzaG91bGQgYmUKKyAgKiB1c2VkIHdoZW4gYSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gaXMgbmVlZGVkIGZvciB0aGUgY29tcGFyaXNvbi4KKyAgKgorICAqIEBwYXJhbSAgcmhzb2JqIFRoZSA8Y29kZT5PYmplY3Q8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQW4gPGNvZGU+aW50PC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyAtMSwgMCwgb3IgMSBhcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXM8L2NvZGU+IGlzIG51bWVyaWNhbGx5IGxlc3MgdGhhbiwgZXF1YWwgdG8sCisgICogICAgICAgICAgICAgb3IgZ3JlYXRlciB0aGFuIDxjb2RlPnJoczwvY29kZT4uCisgICogQHRocm93cyBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBjYW5ub3QgYmUgY2FzdCB0bworICAqICAgICAgICAgICAgICAgICBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiBAc2VlICAgICNjb21wYXJlVG8oQmlnRGVjaW1hbCkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHJoc29iail7CisgIC8vIHRoZSBjYXN0IGluIHRoZSBuZXh0IGxpbmUgd2lsbCByYWlzZSBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgbmVjZXNzYXJ5CisgIHJldHVybiBjb21wYXJlVG8oKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbClyaHNvYmoscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5kb3VibGU8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhCisgICogPGNvZGU+ZG91YmxlPC9jb2RlPiAoNjQtYml0IHNpZ25lZCBmbG9hdGluZyBwb2ludCkgcmVzdWx0IHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIGRvdWJsZSBwcm9kdWNlZCBpcyBpZGVudGljYWwgdG8gcmVzdWx0IG9mIGV4cHJlc3NpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCB0aGVuCisgICogY29udmVydGluZyBpdCB1c2luZyB0aGUgPGNvZGU+RG91YmxlKFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yOworICAqIHRoaXMgY2FuIHJlc3VsdCBpbiB2YWx1ZXMgb2YgPGNvZGU+RG91YmxlLk5FR0FUSVZFX0lORklOSVRZPC9jb2RlPgorICAqIG9yIDxjb2RlPkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWTwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+ZG91YmxlPC9jb2RlPiBjb3JyZXNwb25kaW5nIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKXsKKyAgLy8gV2UgZ28gdmlhIGEgU3RyaW5nIFthcyBkb2VzIEJpZ0RlY2ltYWwgaW4gSkRLIDEuMl0KKyAgLy8gTmV4dCBsaW5lIGNvdWxkIHBvc3NpYmx5IHJhaXNlIE51bWJlckZvcm1hdEV4Y2VwdGlvbgorICByZXR1cm4gamF2YS5sYW5nLkRvdWJsZS52YWx1ZU9mKHRoaXMudG9TdHJpbmcoKSkuZG91YmxlVmFsdWUoKTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIDxjb2RlPnJoczwvY29kZT4gZm9yCisgICogZXF1YWxpdHkuCisgICogPHA+CisgICogSWYgdGhlIHBhcmFtZXRlciBpcyA8Y29kZT5udWxsPC9jb2RlPiwgb3IgaXMgbm90IGFuIGluc3RhbmNlIG9mIHRoZQorICAqIEJpZ0RlY2ltYWwgdHlwZSwgb3IgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIGN1cnJlbnQKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QsIHRoZW4gPGk+ZmFsc2U8L2k+IGlzIHJldHVybmVkLgorICAqIE90aGVyd2lzZSwgPGk+dHJ1ZTwvaT4gaXMgcmV0dXJuZWQuCisgICogPHA+CisgICogIkV4YWN0bHkgZXF1YWwiLCBoZXJlLCBtZWFucyB0aGF0IHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+CisgICogcmVwcmVzZW50YXRpb25zIG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXJzIGFyZQorICAqIGlkZW50aWNhbCAodGhleSBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgc2VxdWVuY2UpLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZCBzaG91bGQgYmUKKyAgKiB1c2VkIGZvciBtb3JlIGdlbmVyYWwgY29tcGFyaXNvbnMuCisgICogQHBhcmFtICBvYmogVGhlIDxjb2RlPk9iamVjdDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPmJvb2xlYW48L2NvZGU+IHdob3NlIHZhbHVlIDxpPnRydWU8L2k+IGlmIGFuZAorICAqICAgICAgICAgICAgIG9ubHkgaWYgdGhlIG9wZXJhbmRzIGhhdmUgaWRlbnRpY2FsIHN0cmluZyByZXByZXNlbnRhdGlvbnMuCisgICogQHRocm93cyBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBjYW5ub3QgYmUgY2FzdCB0bworICAqICAgICAgICAgICAgICAgICBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKiBAc2VlICAgICNjb21wYXJlVG8oT2JqZWN0KQorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhCaWdEZWNpbWFsKQorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCkKKyAgKi8KKyAKKyBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCBvYmopeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzOworICBpbnQgaT0wOworICBjaGFyIGxjYVtdPW51bGw7CisgIGNoYXIgcmNhW109bnVsbDsKKyAgLy8gV2UgYXJlIGVxdWFsIGlmZiB0b1N0cmluZyBvZiBib3RoIGFyZSBleGFjdGx5IHRoZSBzYW1lCisgIGlmIChvYmo9PW51bGwpIAorICAgcmV0dXJuIGZhbHNlOyAvLyBub3QgZXF1YWwKKyAgaWYgKCghKCgob2JqIGluc3RhbmNlb2YgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKSkpKSkgCisgICByZXR1cm4gZmFsc2U7IC8vIG5vdCBhIGRlY2ltYWwKKyAgcmhzPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpb2JqOyAvLyBjYXN0OyB3ZSBrbm93IGl0IHdpbGwgd29yaworICBpZiAodGhpcy5pbmQhPXJocy5pbmQpIAorICAgcmV0dXJuIGZhbHNlOyAvLyBkaWZmZXJlbnQgc2lnbnMgbmV2ZXIgbWF0Y2gKKyAgaWYgKCgodGhpcy5tYW50Lmxlbmd0aD09cmhzLm1hbnQubGVuZ3RoKSYodGhpcy5leHA9PXJocy5leHApKSYodGhpcy5mb3JtPT1yaHMuZm9ybSkpIAorICAgCisgICB7IC8vIG1hbnRpc3NhcyBzYXkgYWxsCisgICAgLy8gaGVyZSB3aXRoIGVxdWFsLWxlbmd0aCBieXRlIGFycmF5cyB0byBjb21wYXJlCisgICAge2ludCAkOD10aGlzLm1hbnQubGVuZ3RoO2k9MDtpOmZvcig7JDg+MDskOC0tLGkrKyl7CisgICAgIGlmICh0aGlzLm1hbnRbaV0hPXJocy5tYW50W2ldKSAKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorICAgIH0vKmkqLworICAgfQorICBlbHNlIAorICAgeyAvLyBuZWVkIHByb3BlciBsYXlvdXQKKyAgICBsY2E9dGhpcy5sYXlvdXQoKTsgLy8gbGF5b3V0IHRvIGNoYXJhY3RlciBhcnJheQorICAgIHJjYT1yaHMubGF5b3V0KCk7CisgICAgaWYgKGxjYS5sZW5ndGghPXJjYS5sZW5ndGgpIAorICAgICByZXR1cm4gZmFsc2U7IC8vIG1pc21hdGNoCisgICAgLy8gaGVyZSB3aXRoIGVxdWFsLWxlbmd0aCBjaGFyYWN0ZXIgYXJyYXlzIHRvIGNvbXBhcmUKKyAgICB7aW50ICQ5PWxjYS5sZW5ndGg7aT0wO2k6Zm9yKDskOT4wOyQ5LS0saSsrKXsKKyAgICAgaWYgKGxjYVtpXSE9cmNhW2ldKSAKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorICAgIH0vKmkqLworICAgfQorICByZXR1cm4gdHJ1ZTsgLy8gYXJyYXlzIGhhdmUgaWRlbnRpY2FsIGNvbnRlbnQKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmZsb2F0PC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYQorICAqIDxjb2RlPmZsb2F0PC9jb2RlPiAoMzItYml0IHNpZ25lZCBmbG9hdGluZyBwb2ludCkgcmVzdWx0IHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIGZsb2F0IHByb2R1Y2VkIGlzIGlkZW50aWNhbCB0byByZXN1bHQgb2YgZXhwcmVzc2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIHRoZW4KKyAgKiBjb252ZXJ0aW5nIGl0IHVzaW5nIHRoZSA8Y29kZT5GbG9hdChTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvcjsKKyAgKiB0aGlzIGNhbiByZXN1bHQgaW4gdmFsdWVzIG9mIDxjb2RlPkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZPC9jb2RlPgorICAqIG9yIDxjb2RlPkZsb2F0LlBPU0lUSVZFX0lORklOSVRZPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5mbG9hdDwvY29kZT4gY29ycmVzcG9uZGluZyB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgZmxvYXQgZmxvYXRWYWx1ZSgpeworICByZXR1cm4gamF2YS5sYW5nLkZsb2F0LnZhbHVlT2YodGhpcy50b1N0cmluZygpKS5mbG9hdFZhbHVlKCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBtb2RpZmllZCBieSBsYXlvdXQgcGFyYW1ldGVycy4KKyAgKiA8cD4KKyAgKiA8aT5UaGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBhIHByaW1pdGl2ZSBmb3IgdXNlIGJ5IG1vcmUKKyAgKiBzb3BoaXN0aWNhdGVkIGNsYXNzZXMsIHN1Y2ggYXMgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4sIHRoYXQKKyAgKiBjYW4gYXBwbHkgbG9jYWxlLXNlbnNpdGl2ZSBlZGl0aW5nIG9mIHRoZSByZXN1bHQuICBUaGUgbGV2ZWwgb2YKKyAgKiBmb3JtYXR0aW5nIHRoYXQgaXQgcHJvdmlkZXMgaXMgYSBuZWNlc3NhcnkgcGFydCBvZiB0aGUgQmlnRGVjaW1hbAorICAqIGNsYXNzIGFzIGl0IGlzIHNlbnNpdGl2ZSB0byBhbmQgbXVzdCBmb2xsb3cgdGhlIGNhbGN1bGF0aW9uIGFuZAorICAqIHJvdW5kaW5nIHJ1bGVzIGZvciBCaWdEZWNpbWFsIGFyaXRobWV0aWMuCisgICogSG93ZXZlciwgaWYgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGVsc2V3aGVyZSwgaXQgbWF5IGJlIHJlbW92ZWQKKyAgKiBmcm9tIHRoaXMgY2xhc3MuIDwvaT4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVycywgZm9yIGJvdGggZm9ybXMgb2YgdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kCisgICogYXJlIGFsbCBvZiB0eXBlIDxjb2RlPmludDwvY29kZT4uCisgICogQSB2YWx1ZSBvZiAtMSBmb3IgYW55IHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBhY3Rpb24KKyAgKiBvciB2YWx1ZSBmb3IgdGhhdCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHVzZWQuCisgICogPHA+CisgICogVGhlIHBhcmFtZXRlcnMsIDxjb2RlPmJlZm9yZTwvY29kZT4gYW5kIDxjb2RlPmFmdGVyPC9jb2RlPiwKKyAgKiBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBiZSB1c2VkIGZvciB0aGUgaW50ZWdlciBwYXJ0CisgICogYW5kIGRlY2ltYWwgcGFydCBvZiB0aGUgcmVzdWx0IHJlc3BlY3RpdmVseS4gIEV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogaXMgbm90IHVzZWQuIElmIGVpdGhlciBwYXJhbWV0ZXIgaXMgLTEgKHdoaWNoIGluZGljYXRlcyB0aGUgZGVmYXVsdAorICAqIGFjdGlvbiksIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB1c2VkIHdpbGwgYmUgZXhhY3RseSBhcyBtYW55IGFzCisgICogYXJlIG5lZWRlZCBmb3IgdGhhdCBwYXJ0LgorICAqIDxwPgorICAqIDxjb2RlPmJlZm9yZTwvY29kZT4gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcjsgaWYgaXQgaXMgbGFyZ2VyIHRoYW4KKyAgKiBpcyBuZWVkZWQgdG8gY29udGFpbiB0aGUgaW50ZWdlciBwYXJ0LCB0aGF0IHBhcnQgaXMgcGFkZGVkIG9uIHRoZQorICAqIGxlZnQgd2l0aCBibGFua3MgdG8gdGhlIHJlcXVlc3RlZCBsZW5ndGguIElmIDxjb2RlPmJlZm9yZTwvY29kZT4gaXMKKyAgKiBub3QgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIGludGVnZXIgcGFydCBvZiB0aGUgbnVtYmVyCisgICogKGluY2x1ZGluZyB0aGUgc2lnbiwgZm9yIG5lZ2F0aXZlIG51bWJlcnMpIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICogPHA+CisgICogPGNvZGU+YWZ0ZXI8L2NvZGU+IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyOyBpZiBpdCBpcyBub3QgdGhlCisgICogc2FtZSBzaXplIGFzIHRoZSBkZWNpbWFsIHBhcnQgb2YgdGhlIG51bWJlciwgdGhlIG51bWJlciB3aWxsIGJlCisgICogcm91bmRlZCAob3IgZXh0ZW5kZWQgd2l0aCB6ZXJvcykgdG8gZml0LiAgU3BlY2lmeWluZyAwIGZvcgorICAqIDxjb2RlPmFmdGVyPC9jb2RlPiB3aWxsIGNhdXNlIHRoZSBudW1iZXIgdG8gYmUgcm91bmRlZCB0byBhbgorICAqIGludGVnZXIgKHRoYXQgaXMsIGl0IHdpbGwgaGF2ZSBubyBkZWNpbWFsIHBhcnQgb3IgZGVjaW1hbCBwb2ludCkuCisgICogVGhlIHJvdW5kaW5nIG1ldGhvZCB3aWxsIGJlIHRoZSBkZWZhdWx0LAorICAqIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA8L2NvZGU+LgorICAqIDxwPgorICAqIE90aGVyIHJvdW5kaW5nIG1ldGhvZHMsIGFuZCB0aGUgdXNlIG9mIGV4cG9uZW50aWFsIG5vdGF0aW9uLCBjYW4KKyAgKiBiZSBzZWxlY3RlZCBieSB1c2luZyB7QGxpbmsgI2Zvcm1hdChpbnQsaW50LGludCxpbnQsaW50LGludCl9LgorICAqIFVzaW5nIHRoZSB0d28tcGFyYW1ldGVyIGZvcm0gb2YgdGhlIG1ldGhvZCBoYXMgZXhhY3RseSB0aGUgc2FtZQorICAqIGVmZmVjdCBhcyB1c2luZyB0aGUgc2l4LXBhcmFtZXRlciBmb3JtIHdpdGggdGhlIGZpbmFsIGZvdXIKKyAgKiBwYXJhbWV0ZXJzIGFsbCBiZWluZyAtMS4KKyAgKgorICAqIEBwYXJhbSAgYmVmb3JlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQuICBVc2UgLTEgZm9yICdhcyBtYW55IGFzCisgICogICAgICAgICAgICAgICAgYXJlIG5lZWRlZCcuCisgICogQHBhcmFtICBhZnRlciAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LiAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUKKyAgKiAgICAgICAgICAgICAgICBuZWVkZWQnLgorICAqIEByZXR1cm4gICAgICAgIEEgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRpbmcgdGhpcworICAqICAgICAgICAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBsYWlkIG91dCBhY2NvcmRpbmcgdG8gdGhlCisgICogICAgICAgICAgICAgICAgc3BlY2lmaWVkIHBhcmFtZXRlcnMKKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIG51bWJlciBjYW5ub3QgYmUgbGFpZCBvdXQgYXMKKyAgKiAgICAgICAgICAgICAgICByZXF1ZXN0ZWQuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYSBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqIEBzZWUgICAgI3RvU3RyaW5nCisgICogQHNlZSAgICAjdG9DaGFyQXJyYXkKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBmb3JtYXQoaW50IGJlZm9yZSxpbnQgYWZ0ZXIpeworICByZXR1cm4gZm9ybWF0KGJlZm9yZSxhZnRlciwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsUk9VTkRfSEFMRl9VUCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBtb2RpZmllZCBieSBsYXlvdXQgcGFyYW1ldGVycyBhbmQgYWxsb3dpbmcKKyAgKiBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiA8aT5UaGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBhIHByaW1pdGl2ZSBmb3IgdXNlIGJ5IG1vcmUKKyAgKiBzb3BoaXN0aWNhdGVkIGNsYXNzZXMsIHN1Y2ggYXMgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4sIHRoYXQKKyAgKiBjYW4gYXBwbHkgbG9jYWxlLXNlbnNpdGl2ZSBlZGl0aW5nIG9mIHRoZSByZXN1bHQuICBUaGUgbGV2ZWwgb2YKKyAgKiBmb3JtYXR0aW5nIHRoYXQgaXQgcHJvdmlkZXMgaXMgYSBuZWNlc3NhcnkgcGFydCBvZiB0aGUgQmlnRGVjaW1hbAorICAqIGNsYXNzIGFzIGl0IGlzIHNlbnNpdGl2ZSB0byBhbmQgbXVzdCBmb2xsb3cgdGhlIGNhbGN1bGF0aW9uIGFuZAorICAqIHJvdW5kaW5nIHJ1bGVzIGZvciBCaWdEZWNpbWFsIGFyaXRobWV0aWMuCisgICogSG93ZXZlciwgaWYgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGVsc2V3aGVyZSwgaXQgbWF5IGJlIHJlbW92ZWQKKyAgKiBmcm9tIHRoaXMgY2xhc3MuIDwvaT4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVycyBhcmUgYWxsIG9mIHR5cGUgPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBBIHZhbHVlIG9mIC0xIGZvciBhbnkgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGFjdGlvbgorICAqIG9yIHZhbHVlIGZvciB0aGF0IHBhcmFtZXRlciBzaG91bGQgYmUgdXNlZC4KKyAgKiA8cD4KKyAgKiBUaGUgZmlyc3QgdHdvIHBhcmFtZXRlcnMgKDxjb2RlPmJlZm9yZTwvY29kZT4gYW5kCisgICogPGNvZGU+YWZ0ZXI8L2NvZGU+KSBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBiZSB1c2VkIGZvcgorICAqIHRoZSBpbnRlZ2VyIHBhcnQgYW5kIGRlY2ltYWwgcGFydCBvZiB0aGUgcmVzdWx0IHJlc3BlY3RpdmVseSwgYXMKKyAgKiBkZWZpbmVkIGZvciB7QGxpbmsgI2Zvcm1hdChpbnQsaW50KX0uCisgICogSWYgZWl0aGVyIG9mIHRoZXNlIGlzIC0xICh3aGljaCBpbmRpY2F0ZXMgdGhlIGRlZmF1bHQgYWN0aW9uKSwgdGhlCisgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgdXNlZCB3aWxsIGJlIGV4YWN0bHkgYXMgbWFueSBhcyBhcmUgbmVlZGVkIGZvcgorICAqIHRoYXQgcGFydC4KKyAgKiA8cD4KKyAgKiBUaGUgcmVtYWluaW5nIHBhcmFtZXRlcnMgY29udHJvbCB0aGUgdXNlIG9mIGV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogYW5kIHJvdW5kaW5nLiAgVGhyZWUgKDxjb2RlPmV4cGxhY2VzPC9jb2RlPiwgPGNvZGU+ZXhkaWdpdHM8L2NvZGU+LAorICAqIGFuZCA8Y29kZT5leGZvcm08L2NvZGU+KSBjb250cm9sIHRoZSBleHBvbmVudCBwYXJ0IG9mIHRoZSByZXN1bHQuCisgICogQXMgYmVmb3JlLCB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIGFueSBvZiB0aGVzZSBwYXJhbWV0ZXJzIG1heSBiZQorICAqIHNlbGVjdGVkIGJ5IHVzaW5nIHRoZSB2YWx1ZSAtMS4KKyAgKiA8cD4KKyAgKiA8Y29kZT5leHBsYWNlczwvY29kZT4gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcjsgaXQgc2V0cyB0aGUgbnVtYmVyCisgICogb2YgcGxhY2VzIChkaWdpdHMgYWZ0ZXIgdGhlIHNpZ24gb2YgdGhlIGV4cG9uZW50KSB0byBiZSB1c2VkIGZvcgorICAqIGFueSBleHBvbmVudCBwYXJ0LCB0aGUgZGVmYXVsdCAod2hlbiA8Y29kZT5leHBsYWNlczwvY29kZT4gaXMgLTEpCisgICogYmVpbmcgdG8gdXNlIGFzIG1hbnkgYXMgYXJlIG5lZWRlZC4KKyAgKiBJZiA8Y29kZT5leHBsYWNlczwvY29kZT4gaXMgbm90IC0xLCBzcGFjZSBpcyBhbHdheXMgcmVzZXJ2ZWQgZm9yCisgICogYW4gZXhwb25lbnQ7IGlmIG9uZSBpcyBub3QgbmVlZGVkIChmb3IgZXhhbXBsZSwgaWYgdGhlIGV4cG9uZW50CisgICogd2lsbCBiZSAwKSB0aGVuIDxjb2RlPmV4cGxhY2VzPC9jb2RlPisyIGJsYW5rcyBhcmUgYXBwZW5kZWQgdG8gdGhlCisgICogcmVzdWx0LgorICAqIDwhLS0gKFRoaXMgcHJlc2VydmVzIHZlcnRpY2FsIGFsaWdubWVudCBvZiBzaW1pbGFybHkgZm9ybWF0dGVkCisgICogICAgICAgbnVtYmVycyBpbiBhIG1vbm9zcGFjZSBmb250LikgLS0+CisgICogSWYgPGNvZGU+ZXhwbGFjZXM8L2NvZGU+IGlzIG5vdCAtMSBhbmQgaXMgbm90IGxhcmdlIGVub3VnaCB0bworICAqIGNvbnRhaW4gdGhlIGV4cG9uZW50LCBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAqIDxwPgorICAqIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiBzZXRzIHRoZSB0cmlnZ2VyIHBvaW50IGZvciB1c2Ugb2YgZXhwb25lbnRpYWwKKyAgKiBub3RhdGlvbi4gSWYsIGJlZm9yZSBhbnkgcm91bmRpbmcsIHRoZSBudW1iZXIgb2YgcGxhY2VzIG5lZWRlZAorICAqIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCBleGNlZWRzIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiwgb3IgaWYgdGhlCisgICogYWJzb2x1dGUgdmFsdWUgb2YgdGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gPGNvZGU+MC4wMDAwMDE8L2NvZGU+LAorICAqIHRoZW4gZXhwb25lbnRpYWwgZm9ybSB3aWxsIGJlIHVzZWQsIHByb3ZpZGVkIHRoYXQKKyAgKiA8Y29kZT5leGRpZ2l0czwvY29kZT4gd2FzIHNwZWNpZmllZC4KKyAgKiBXaGVuIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiBpcyAtMSwgZXhwb25lbnRpYWwgbm90YXRpb24gd2lsbCBuZXZlcgorICAqIGJlIHVzZWQuIElmIDAgaXMgc3BlY2lmaWVkIGZvciA8Y29kZT5leGRpZ2l0czwvY29kZT4sIGV4cG9uZW50aWFsCisgICogbm90YXRpb24gaXMgYWx3YXlzIHVzZWQgdW5sZXNzIHRoZSBleHBvbmVudCB3b3VsZCBiZSAwLgorICAqIDxwPgorICAqIDxjb2RlPmV4Zm9ybTwvY29kZT4gc2V0cyB0aGUgZm9ybSBmb3IgZXhwb25lbnRpYWwgbm90YXRpb24gKGlmCisgICogbmVlZGVkKS4KKyAgKiBJdCAgbWF5IGJlIGVpdGhlciB7QGxpbmsgTWF0aENvbnRleHQjU0NJRU5USUZJQ30gb3IKKyAgKiB7QGxpbmsgTWF0aENvbnRleHQjRU5HSU5FRVJJTkd9LgorICAqIElmIHRoZSBsYXR0ZXIsIGVuZ2luZWVyaW5nLCBmb3JtIGlzIHJlcXVlc3RlZCwgdXAgdG8gdGhyZWUgZGlnaXRzCisgICogKHBsdXMgc2lnbiwgaWYgbmVnYXRpdmUpIG1heSBiZSBuZWVkZWQgZm9yIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlCisgICogcmVzdWx0ICg8Y29kZT5iZWZvcmU8L2NvZGU+KS4gIE90aGVyd2lzZSwgb25seSBvbmUgZGlnaXQgKHBsdXMKKyAgKiBzaWduLCBpZiBuZWdhdGl2ZSkgaXMgbmVlZGVkLgorICAqIDxwPgorICAqIEZpbmFsbHksIHRoZSBzaXh0aCBhcmd1bWVudCwgPGNvZGU+ZXhyb3VuZDwvY29kZT4sIHNlbGVjdHMgdGhlCisgICogcm91bmRpbmcgYWxnb3JpdGhtIHRvIGJlIHVzZWQsIGFuZCBtdXN0IGJlIG9uZSBvZiB0aGUgdmFsdWVzCisgICogaW5kaWNhdGVkIGJ5IGEgcHVibGljIGNvbnN0YW50IGluIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzCisgICogd2hvc2UgbmFtZSBzdGFydHMgd2l0aCA8Y29kZT5ST1VORF88L2NvZGU+LgorICAqIFRoZSBkZWZhdWx0ICg8Y29kZT5ST1VORF9IQUxGX1VQPC9jb2RlPikgbWF5IGFsc28gYmUgc2VsZWN0ZWQgYnkKKyAgKiB1c2luZyB0aGUgdmFsdWUgLTEsIGFzIGJlZm9yZS4KKyAgKiA8cD4KKyAgKiBUaGUgc3BlY2lhbCB2YWx1ZSA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4gbWF5IGJlCisgICogdXNlZCB0byBkZXRlY3Qgd2hldGhlciBub24temVybyBkaWdpdHMgYXJlIGRpc2NhcmRlZCAtLSBpZgorICAqIDxjb2RlPmV4cm91bmQ8L2NvZGU+IGhhcyB0aGlzIHZhbHVlIHRoYW4gaWYgbm9uLXplcm8gZGlnaXRzIHdvdWxkCisgICogYmUgZGlzY2FyZGVkIChyb3VuZGVkKSBkdXJpbmcgZm9ybWF0dGluZyB0aGVuIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHBhcmFtICBiZWZvcmUgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgYWZ0ZXIgICAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgICAgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgZXhwbGFjZXMgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgICAgdG8gYmUgdXNlZCBmb3IgYW55IGV4cG9uZW50LgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUgbmVlZGVkJy4KKyAgKiBAcGFyYW0gIGV4ZGlnaXRzIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHRyaWdnZXIKKyAgKiAgICAgICAgICAgICAgICAgIChkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50KSB3aGljaCBpZgorICAqICAgICAgICAgICAgICAgICAgZXhjZWVkZWQgY2F1c2VzIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGJlIHVzZWQuCisgICogICAgICAgICAgICAgICAgICBVc2UgMCB0byBmb3JjZSBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSB0byBmb3JjZSBwbGFpbiBub3RhdGlvbiAobm8gZXhwb25lbnRpYWwKKyAgKiAgICAgICAgICAgICAgICAgIG5vdGF0aW9uKS4KKyAgKiBAcGFyYW0gIGV4Zm9ybWludCAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIGZvcm0gb2YKKyAgKiAgICAgICAgICAgICAgICAgIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGJlIHVzZWQKKyAgKiAgICAgICAgICAgICAgICAgICh7QGxpbmsgTWF0aENvbnRleHQjU0NJRU5USUZJQ30gb3IKKyAgKiAgICAgICAgICAgICAgICAgIHtAbGluayBNYXRoQ29udGV4dCNFTkdJTkVFUklOR30pLgorICAqIEBwYXJhbSAgZXhyb3VuZCAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgcm91bmRpbmcgbW9kZQorICAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciB0aGUgZGVmYXVsdCwge0BsaW5rIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVB9LgorICAqIEByZXR1cm4gICAgICAgICAgQSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGluZyB0aGlzCisgICogICAgICAgICAgICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgbGFpZCBvdXQgYWNjb3JkaW5nIHRvIHRoZQorICAqICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkIHBhcmFtZXRlcnMKKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIG51bWJlciBjYW5ub3QgYmUgbGFpZCBvdXQgYXMKKyAgKiAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZC4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhIHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UuCisgICogQHNlZSAgICAjdG9TdHJpbmcKKyAgKiBAc2VlICAgICN0b0NoYXJBcnJheQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGZvcm1hdChpbnQgYmVmb3JlLGludCBhZnRlcixpbnQgZXhwbGFjZXMsaW50IGV4ZGlnaXRzLGludCBleGZvcm1pbnQsaW50IGV4cm91bmQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtOworICBpbnQgbWFnPTA7CisgIGludCB0aGlzYWZ0ZXI9MDsKKyAgaW50IGxlYWQ9MDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgaW50IGNob3A9MDsKKyAgaW50IG5lZWQ9MDsKKyAgaW50IG9sZGV4cD0wOworICBjaGFyIGFbXTsKKyAgaW50IHA9MDsKKyAgY2hhciBuZXdhW109bnVsbDsKKyAgaW50IGk9MDsKKyAgaW50IHBsYWNlcz0wOworICAKKyAgCisgIC8qIENoZWNrIGFyZ3VtZW50cyAqLworICBpZiAoKGJlZm9yZTwoLTEpKXwoYmVmb3JlPT0wKSkgCisgICBiYWRhcmcoImZvcm1hdCIsMSxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoYmVmb3JlKSk7CisgIGlmIChhZnRlcjwoLTEpKSAKKyAgIGJhZGFyZygiZm9ybWF0IiwyLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihhZnRlcikpOworICBpZiAoKGV4cGxhY2VzPCgtMSkpfChleHBsYWNlcz09MCkpIAorICAgYmFkYXJnKCJmb3JtYXQiLDMsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4cGxhY2VzKSk7CisgIGlmIChleGRpZ2l0czwoLTEpKSAKKyAgIGJhZGFyZygiZm9ybWF0Iiw0LGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHBsYWNlcykpOworICB7LypzZWxlY3QqLworICBpZiAoZXhmb3JtaW50PT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpeworICB9ZWxzZSBpZiAoZXhmb3JtaW50PT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HKXsKKyAgfWVsc2UgaWYgKGV4Zm9ybWludD09KC0xKSkKKyAgIGV4Zm9ybWludD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgICAvLyBub3RlIFBMQUlOIGlzbid0IGFsbG93ZWQKKyAgZWxzZXsKKyAgIGJhZGFyZygiZm9ybWF0Iiw1LGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleGZvcm1pbnQpKTsKKyAgfQorICB9CisgIC8vIGNoZWNraW5nIHRoZSByb3VuZGluZyBtb2RlIGlzIGRvbmUgYnkgdHJ5aW5nIHRvIGNvbnN0cnVjdCBhCisgIC8vIE1hdGhDb250ZXh0IG9iamVjdCB3aXRoIHRoYXQgbW9kZTsgaXQgd2lsbCBmYWlsIGlmIGJhZAorICBpZiAoZXhyb3VuZCE9Uk9VTkRfSEFMRl9VUCkgCisgICB7dHJ5eyAvLyBpZiBub24tZGVmYXVsdC4uLgorICAgIGlmIChleHJvdW5kPT0oLTEpKSAKKyAgICAgZXhyb3VuZD1ST1VORF9IQUxGX1VQOworICAgIGVsc2UgCisgICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGV4cm91bmQpOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEwKXsKKyAgICBiYWRhcmcoImZvcm1hdCIsNixqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoZXhyb3VuZCkpOworICAgfX0KKyAgCisgIG51bT1jbG9uZSh0aGlzKTsgLy8gbWFrZSBwcml2YXRlIGNvcHkKKyAgCisgIC8qIEhlcmU6CisgICAgIG51bSAgICAgICBpcyBCaWdEZWNpbWFsIHRvIGZvcm1hdAorICAgICBiZWZvcmUgICAgaXMgcGxhY2VzIGJlZm9yZSBwb2ludCBbPjBdCisgICAgIGFmdGVyICAgICBpcyBwbGFjZXMgYWZ0ZXIgcG9pbnQgIFs+PTBdCisgICAgIGV4cGxhY2VzICBpcyBleHBvbmVudCBwbGFjZXMgICAgIFs+MF0KKyAgICAgZXhkaWdpdHMgIGlzIGV4cG9uZW50IGRpZ2l0cyAgICAgWz49MF0KKyAgICAgZXhmb3JtaW50IGlzIGV4cG9uZW50IGZvcm0gICAgICAgW29uZSBvZiB0d29dCisgICAgIGV4cm91bmQgICBpcyByb3VuZGluZyBtb2RlICAgICAgIFtvbmUgb2YgZWlnaHRdCisgICAgICdiZWZvcmUnIHRocm91Z2ggJ2V4ZGlnaXRzJyBhcmUgLTEgaWYgbm90IHNwZWNpZmllZAorICAqLworICAKKyAgLyogZGV0ZXJtaW5lIGZvcm0gKi8KKyAge3NldGZvcm06ZG97LypzZWxlY3QqLworICBpZiAoZXhkaWdpdHM9PSgtMSkpCisgICBudW0uZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICBlbHNlIGlmIChudW0uaW5kPT1pc3plcm8pCisgICBudW0uZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICBlbHNleworICAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgdHJpZ2dlcnMKKyAgIG1hZz1udW0uZXhwK251bS5tYW50Lmxlbmd0aDsKKyAgIGlmIChtYWc+ZXhkaWdpdHMpIAorICAgIG51bS5mb3JtPShieXRlKWV4Zm9ybWludDsKKyAgIGVsc2UgCisgICAgaWYgKG1hZzwoLTUpKSAKKyAgICAgbnVtLmZvcm09KGJ5dGUpZXhmb3JtaW50OworICAgIGVsc2UgCisgICAgIG51bS5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIH0KKyAgfXdoaWxlKGZhbHNlKTt9LypzZXRmb3JtKi8KKyAgCisgIC8qIElmICdhZnRlcicgd2FzIHNwZWNpZmllZCB0aGVuIHdlIG1heSBuZWVkIHRvIGFkanVzdCB0aGUKKyAgICAgbWFudGlzc2EuICBUaGlzIGlzIGEgbGl0dGxlIHRyaWNreSwgYXMgd2UgbXVzdCBjb25mb3JtIHRvIHRoZQorICAgICBydWxlcyBvZiBleHBvbmVudGlhbCBsYXlvdXQgaWYgbmVjZXNzYXJ5IChlLmcuLCB3ZSBjYW5ub3QgZW5kIHVwCisgICAgIHdpdGggMTAuMCBpZiBzY2llbnRpZmljKS4gKi8KKyAgaWYgKGFmdGVyPj0wKSAKKyAgIHtzZXRhZnRlcjpmb3IoOzspeworICAgIC8vIGNhbGN1bGF0ZSB0aGUgY3VycmVudCBhZnRlci1sZW5ndGgKKyAgICB7LypzZWxlY3QqLworICAgIGlmIChudW0uZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikKKyAgICAgdGhpc2FmdGVyPShpbnQpLW51bS5leHA7IC8vIGhhcyBkZWNpbWFsIHBhcnQKKyAgICBlbHNlIGlmIChudW0uZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKQorICAgICB0aGlzYWZ0ZXI9bnVtLm1hbnQubGVuZ3RoLTE7CisgICAgZWxzZXsgLy8gZW5naW5lZXJpbmcKKyAgICAgbGVhZD0oKChudW0uZXhwK251bS5tYW50Lmxlbmd0aCktMSkpJTM7IC8vIGV4cG9uZW50IHRvIHVzZQorICAgICBpZiAobGVhZDwwKSAKKyAgICAgIGxlYWQ9MytsZWFkOyAvLyBuZWdhdGl2ZSBleHBvbmVudCBjYXNlCisgICAgIGxlYWQrKzsgLy8gbnVtYmVyIG9mIGxlYWRpbmcgZGlnaXRzCisgICAgIGlmIChsZWFkPj1udW0ubWFudC5sZW5ndGgpIAorICAgICAgdGhpc2FmdGVyPTA7CisgICAgIGVsc2UgCisgICAgICB0aGlzYWZ0ZXI9bnVtLm1hbnQubGVuZ3RoLWxlYWQ7CisgICAgfQorICAgIH0KKyAgICBpZiAodGhpc2FmdGVyPT1hZnRlcikgCisgICAgIGJyZWFrIHNldGFmdGVyOyAvLyB3ZSdyZSBpbiBsdWNrCisgICAgaWYgKHRoaXNhZnRlcjxhZnRlcikgCisgICAgIHsgLy8gbmVlZCBhZGRlZCB0cmFpbGluZyB6ZXJvcworICAgICAgLy8gW3RoaXNhZnRlciBjYW4gYmUgbmVnYXRpdmVdCisgICAgICBuZXdtYW50PWV4dGVuZChudW0ubWFudCwobnVtLm1hbnQubGVuZ3RoK2FmdGVyKS10aGlzYWZ0ZXIpOworICAgICAgbnVtLm1hbnQ9bmV3bWFudDsKKyAgICAgIG51bS5leHA9bnVtLmV4cC0oKGFmdGVyLXRoaXNhZnRlcikpOyAvLyBhZGp1c3QgZXhwb25lbnQKKyAgICAgIGlmIChudW0uZXhwPE1pbkV4cCkgCisgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJFeHBvbmVudCBPdmVyZmxvdzoiKyIgIitudW0uZXhwKTsKKyAgICAgIGJyZWFrIHNldGFmdGVyOworICAgICB9CisgICAgLy8gV2UgaGF2ZSB0b28gbWFueSBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQ7IHRoaXMgY291bGQKKyAgICAvLyBjYXVzZSBhIGNhcnJ5LCB3aGljaCBjb3VsZCBjaGFuZ2UgdGhlIG1hbnRpc3NhLi4uCisgICAgLy8gV2F0Y2ggb3V0IGZvciBpbXBsaWVkIGxlYWRpbmcgemVyb3MgaW4gUExBSU4gY2FzZQorICAgIGNob3A9dGhpc2FmdGVyLWFmdGVyOyAvLyBkaWdpdHMgdG8gbG9wIFtpcyA+MF0KKyAgICBpZiAoY2hvcD5udW0ubWFudC5sZW5ndGgpIAorICAgICB7IC8vIGFsbCBkaWdpdHMgZ28sIG5vIGNoYW5jZSBvZiBjYXJyeQorICAgICAgLy8gY2Fycnkgb24gd2l0aCB6ZXJvCisgICAgICBudW0ubWFudD1aRVJPLm1hbnQ7CisgICAgICBudW0uaW5kPWlzemVybzsKKyAgICAgIG51bS5leHA9MDsKKyAgICAgIGNvbnRpbnVlIHNldGFmdGVyOyAvLyByZWNoZWNrOiB3ZSBtYXkgbmVlZCB0cmFpbGluZyB6ZXJvcworICAgICB9CisgICAgLy8gd2UgaGF2ZSBhIGRpZ2l0IHRvIGluc3BlY3QgZnJvbSBleGlzdGluZyBtYW50aXNzYQorICAgIC8vIHJvdW5kIHRoZSBudW1iZXIgYXMgcmVxdWlyZWQKKyAgICBuZWVkPW51bS5tYW50Lmxlbmd0aC1jaG9wOyAvLyBkaWdpdHMgdG8gZW5kIHVwIHdpdGggW21heSBiZSAwXQorICAgIG9sZGV4cD1udW0uZXhwOyAvLyBzYXZlIG9sZCBleHBvbmVudAorICAgIG51bS5yb3VuZChuZWVkLGV4cm91bmQpOworICAgIC8vIGlmIHRoZSBleHBvbmVudCBncmV3IGJ5IG1vcmUgdGhhbiB0aGUgZGlnaXRzIHdlIGNob3BwZWQsIHRoZW4KKyAgICAvLyB3ZSBtdXN0IGhhdmUgaGFkIGEgY2FycnksIHNvIHdpbGwgbmVlZCB0byByZWNoZWNrIHRoZSBsYXlvdXQKKyAgICBpZiAoKG51bS5leHAtb2xkZXhwKT09Y2hvcCkgCisgICAgIGJyZWFrIHNldGFmdGVyOyAvLyBudW1iZXIgZGlkIG5vdCBoYXZlIGNhcnJ5CisgICAgLy8gbWFudGlzc2EgZ290IGV4dGVuZGVkIC4uIHNvIGdvIGFyb3VuZCBhbmQgY2hlY2sgYWdhaW4KKyAgICB9CisgICB9LypzZXRhZnRlciovCisgIAorICBhPW51bS5sYXlvdXQoKTsgLy8gbGF5IG91dCwgd2l0aCBleHBvbmVudCBpZiByZXF1aXJlZCwgZXRjLgorICAKKyAgLyogSGVyZSB3ZSBoYXZlIGxhaWQtb3V0IG51bWJlciBpbiAnYScgKi8KKyAgLy8gbm93IGFwcGx5ICdiZWZvcmUnIGFuZCAnZXhwbGFjZXMnIGFzIG5lZWRlZAorICBpZiAoYmVmb3JlPjApIAorICAgeworICAgIC8vIGxvb2sgZm9yICcuJyBvciAnRScKKyAgICB7aW50ICQxMT1hLmxlbmd0aDtwPTA7cDpmb3IoOyQxMT4wOyQxMS0tLHArKyl7CisgICAgIGlmIChhW3BdPT0nLicpIAorICAgICAgYnJlYWsgcDsKKyAgICAgaWYgKGFbcF09PSdFJykgCisgICAgICBicmVhayBwOworICAgICB9CisgICAgfS8qcCovCisgICAgLy8gcCBpcyBub3cgb2Zmc2V0IG9mICcuJywgJ0UnLCBvciBjaGFyYWN0ZXIgYWZ0ZXIgZW5kIG9mIGFycmF5CisgICAgLy8gdGhhdCBpcywgdGhlIGN1cnJlbnQgbGVuZ3RoIG9mIGJlZm9yZSBwYXJ0CisgICAgaWYgKHA+YmVmb3JlKSAKKyAgICAgYmFkYXJnKCJmb3JtYXQiLDEsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGJlZm9yZSkpOyAvLyB3b24ndCBmaXQKKyAgICBpZiAocDxiZWZvcmUpIAorICAgICB7IC8vIG5lZWQgbGVhZGluZyBibGFua3MKKyAgICAgIG5ld2E9bmV3IGNoYXJbKGEubGVuZ3RoK2JlZm9yZSktcF07CisgICAgICB7aW50ICQxMj1iZWZvcmUtcDtpPTA7aTpmb3IoOyQxMj4wOyQxMi0tLGkrKyl7CisgICAgICAgbmV3YVtpXT0nICc7CisgICAgICAgfQorICAgICAgfS8qaSovCisgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClhLDAsKGphdmEubGFuZy5PYmplY3QpbmV3YSxpLGEubGVuZ3RoKTsKKyAgICAgIGE9bmV3YTsKKyAgICAgfQorICAgLy8gW2lmIHA9YmVmb3JlIHRoZW4gaXQncyBqdXN0IHRoZSByaWdodCBsZW5ndGhdCisgICB9CisgIAorICBpZiAoZXhwbGFjZXM+MCkgCisgICB7CisgICAgLy8gbG9vayBmb3IgJ0UnIFtjYW5ub3QgYmUgYXQgb2Zmc2V0IDBdCisgICAge2ludCAkMTM9YS5sZW5ndGgtMTtwPWEubGVuZ3RoLTE7cDpmb3IoOyQxMz4wOyQxMy0tLHAtLSl7CisgICAgIGlmIChhW3BdPT0nRScpIAorICAgICAgYnJlYWsgcDsKKyAgICAgfQorICAgIH0vKnAqLworICAgIC8vIHAgaXMgbm93IG9mZnNldCBvZiAnRScsIG9yIDAKKyAgICBpZiAocD09MCkgCisgICAgIHsgLy8gbm8gRSBwYXJ0OyBhZGQgdHJhaWxpbmcgYmxhbmtzCisgICAgICBuZXdhPW5ldyBjaGFyWyhhLmxlbmd0aCtleHBsYWNlcykrMl07CisgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClhLDAsKGphdmEubGFuZy5PYmplY3QpbmV3YSwwLGEubGVuZ3RoKTsKKyAgICAgIHtpbnQgJDE0PWV4cGxhY2VzKzI7aT1hLmxlbmd0aDtpOmZvcig7JDE0PjA7JDE0LS0saSsrKXsKKyAgICAgICBuZXdhW2ldPScgJzsKKyAgICAgICB9CisgICAgICB9LyppKi8KKyAgICAgIGE9bmV3YTsKKyAgICAgfQorICAgIGVsc2UgCisgICAgIHsvKiBmb3VuZCBFICovIC8vIG1heSBuZWVkIHRvIGluc2VydCB6ZXJvcworICAgICAgcGxhY2VzPShhLmxlbmd0aC1wKS0yOyAvLyBudW1iZXIgc28gZmFyCisgICAgICBpZiAocGxhY2VzPmV4cGxhY2VzKSAKKyAgICAgICBiYWRhcmcoImZvcm1hdCIsMyxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoZXhwbGFjZXMpKTsKKyAgICAgIGlmIChwbGFjZXM8ZXhwbGFjZXMpIAorICAgICAgIHsgLy8gbmVlZCB0byBpbnNlcnQgemVyb3MKKyAgICAgICAgbmV3YT1uZXcgY2hhclsoYS5sZW5ndGgrZXhwbGFjZXMpLXBsYWNlc107CisgICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhLDAscCsyKTsgLy8gdGhyb3VnaCBFIGFuZCBzaWduCisgICAgICAgIHtpbnQgJDE1PWV4cGxhY2VzLXBsYWNlcztpPXArMjtpOmZvcig7JDE1PjA7JDE1LS0saSsrKXsKKyAgICAgICAgIG5ld2FbaV09JzAnOworICAgICAgICAgfQorICAgICAgICB9LyppKi8KKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpYSxwKzIsKGphdmEubGFuZy5PYmplY3QpbmV3YSxpLHBsYWNlcyk7IC8vIHJlbWFpbmRlciBvZiBleHBvbmVudAorICAgICAgICBhPW5ld2E7CisgICAgICAgfQorICAgICAvLyBbaWYgcGxhY2VzPWV4cGxhY2VzIHRoZW4gaXQncyBqdXN0IHRoZSByaWdodCBsZW5ndGhdCisgICAgIH0KKyAgIH0KKyAgcmV0dXJuIG5ldyBqYXZhLmxhbmcuU3RyaW5nKGEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBoYXNoY29kZSBmb3IgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBUaGlzIGhhc2hjb2RlIGlzIHN1aXRhYmxlIGZvciB1c2UgYnkgdGhlCisgICogPGNvZGU+amF2YS51dGlsLkhhc2h0YWJsZTwvY29kZT4gY2xhc3MuCisgICogPHA+CisgICogTm90ZSB0aGF0IHR3byA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzIGFyZSBvbmx5IGd1YXJhbnRlZWQKKyAgKiB0byBwcm9kdWNlIHRoZSBzYW1lIGhhc2hjb2RlIGlmIHRoZXkgYXJlIGV4YWN0bHkgZXF1YWwgKHRoYXQgaXMsCisgICogdGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb25zIG9mIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlcnMgYXJlIGlkZW50aWNhbCAtLSB0aGV5IGhhdmUgdGhlIHNhbWUKKyAgKiBjaGFyYWN0ZXJzIGluIHRoZSBzYW1lIHNlcXVlbmNlKS4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiB0aGF0IGlzIHRoZSBoYXNoY29kZSBmb3IgPGNvZGU+dGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBoYXNoQ29kZSgpeworICAvLyBNYXliZSBjYWxjdWxhdGUgb3Vyc2VsdmVzLCBsYXRlci4gIElmIHNvLCBub3RlIHRoYXQgdGhlcmUgY2FuIGJlCisgIC8vIG1vcmUgdGhhbiBvbmUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gZm9yIGEgZ2l2ZW4gdG9TdHJpbmcoKSByZXN1bHQuCisgIHJldHVybiB0aGlzLnRvU3RyaW5nKCkuaGFzaENvZGUoKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhbiA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgaXQgaXMKKyAgKiBkaXNjYXJkZWQuIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBvdXQgb2YgdGhlIHBvc3NpYmxlCisgICogcmFuZ2UgZm9yIGFuIDxjb2RlPmludDwvY29kZT4gKDMyLWJpdCBzaWduZWQgaW50ZWdlcikgcmVzdWx0IHRoZW4KKyAgKiBvbmx5IHRoZSBsb3ctb3JkZXIgMzIgYml0cyBhcmUgdXNlZC4gKFRoYXQgaXMsIHRoZSBudW1iZXIgbWF5IGJlCisgICogPGk+ZGVjYXBpdGF0ZWQ8L2k+LikgIFRvIGF2b2lkIHVuZXhwZWN0ZWQgZXJyb3JzIHdoZW4gdGhlc2UKKyAgKiBjb25kaXRpb25zIG9jY3VyLCB1c2UgdGhlIHtAbGluayAjaW50VmFsdWVFeGFjdH0gbWV0aG9kLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IGNvbnZlcnRlZCBmcm9tIDxjb2RlPnRoaXM8L2NvZGU+LAorICAqICAgICAgICAgdHJ1bmNhdGVkIGFuZCBkZWNhcGl0YXRlZCBpZiBuZWNlc3NhcnkuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBpbnRWYWx1ZSgpeworICByZXR1cm4gdG9CaWdJbnRlZ2VyKCkuaW50VmFsdWUoKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhbiA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgb3IgaXMKKyAgKiBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhbiA8Y29kZT5pbnQ8L2NvZGU+ICgzMi1iaXQgc2lnbmVkCisgICogaW50ZWdlcikgcmVzdWx0IHRoZW4gYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgICAgICAgICBkZWNpbWFsIHBhcnQsIG9yIHdpbGwgbm90IGZpdCBpbiBhbgorICAqICAgICAgICAgICAgICAgICA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgaW50VmFsdWVFeGFjdCgpeworICBpbnQgbG9kaWdpdDsKKyAgaW50IHVzZWV4cD0wOworICBpbnQgcmVzdWx0OworICBpbnQgaT0wOworICBpbnQgdG9wZGlnPTA7CisgIC8vIFRoaXMgZG9lcyBub3QgdXNlIGxvbmdWYWx1ZUV4YWN0KCkgYXMgdGhlIGxhdHRlciBjYW4gYmUgbXVjaAorICAvLyBzbG93ZXIuCisgIC8vIGludGNoZWNrIChmcm9tIHBvdykgcmVsaWVzIG9uIHRoaXMgdG8gY2hlY2sgZGVjaW1hbCBwYXJ0CisgIGlmIChpbmQ9PWlzemVybykgCisgICByZXR1cm4gMDsgLy8gZWFzeSwgYW5kIHF1aXRlIGNvbW1vbgorICAvKiB0ZXN0IGFuZCBkcm9wIGFueSB0cmFpbGluZyBkZWNpbWFsIHBhcnQgKi8KKyAgbG9kaWdpdD1tYW50Lmxlbmd0aC0xOworICBpZiAoZXhwPDApIAorICAgeworICAgIGxvZGlnaXQ9bG9kaWdpdCtleHA7IC8vIHJlZHVjZXMgYnkgLSgtZXhwKQorICAgIC8qIGFsbCBkZWNpbWFsIHBsYWNlcyBtdXN0IGJlIDAgKi8KKyAgICBpZiAoKCEoYWxsemVybyhtYW50LGxvZGlnaXQrMSkpKSkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgaWYgKGxvZGlnaXQ8MCkgCisgICAgIHJldHVybiAwOyAvLyAtMTx0aGlzPDEKKyAgICB1c2VleHA9MDsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiA+PTAgKi8KKyAgICBpZiAoKGV4cCtsb2RpZ2l0KT45KSAgLy8gZWFybHkgZXhpdAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICB1c2VleHA9ZXhwOworICAgfQorICAvKiBjb252ZXJ0IHRoZSBtYW50aXNzYSB0byBiaW5hcnksIGlubGluZSBmb3Igc3BlZWQgKi8KKyAgcmVzdWx0PTA7CisgIHtpbnQgJDE2PWxvZGlnaXQrdXNlZXhwO2k9MDtpOmZvcig7aTw9JDE2O2krKyl7CisgICByZXN1bHQ9cmVzdWx0KjEwOworICAgaWYgKGk8PWxvZGlnaXQpIAorICAgIHJlc3VsdD1yZXN1bHQrbWFudFtpXTsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvKiBOb3csIGlmIHRoZSByaXNreSBsZW5ndGgsIGNoZWNrIGZvciBvdmVyZmxvdyAqLworICBpZiAoKGxvZGlnaXQrdXNlZXhwKT09OSkgCisgICB7CisgICAgLy8gbm90ZSB3ZSBjYW5ub3QganVzdCB0ZXN0IGZvciAtdmUgcmVzdWx0LCBhcyBvdmVyZmxvdyBjYW4gbW92ZSBhCisgICAgLy8gemVybyBpbnRvIHRoZSB0b3AgYml0IFtjb25zaWRlciA1NTU1NTU1NTU1XQorICAgIHRvcGRpZz1yZXN1bHQvMTAwMDAwMDAwMDsgLy8gZ2V0IHRvcCBkaWdpdCwgcHJlc2VydmluZyBzaWduCisgICAgaWYgKHRvcGRpZyE9bWFudFswXSkgCisgICAgIHsgLy8gZGlnaXQgbXVzdCBtYXRjaCBhbmQgYmUgcG9zaXRpdmUKKyAgICAgIC8vIGV4Y2VwdCBpbiB0aGUgc3BlY2lhbCBjYXNlIC4uLgorICAgICAgaWYgKHJlc3VsdD09amF2YS5sYW5nLkludGVnZXIuTUlOX1ZBTFVFKSAgLy8gbG9va3MgbGlrZSB0aGUgc3BlY2lhbAorICAgICAgIGlmIChpbmQ9PWlzbmVnKSAgLy8gcmVhbGx5IHdhcyBuZWdhdGl2ZQorICAgICAgICBpZiAobWFudFswXT09MikgCisgICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyByZWFsbHkgaGFkIHRvcCBkaWdpdCAyCisgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICAgfQorICAgfQorICAKKyAgLyogTG9va3MgZ29vZCAqLworICBpZiAoaW5kPT1pc3BvcykgCisgICByZXR1cm4gcmVzdWx0OworICByZXR1cm4gKGludCktcmVzdWx0OworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+bG9uZzwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBpdCBpcworICAqIGRpc2NhcmRlZC4gSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG91dCBvZiB0aGUgcG9zc2libGUKKyAgKiByYW5nZSBmb3IgYSA8Y29kZT5sb25nPC9jb2RlPiAoNjQtYml0IHNpZ25lZCBpbnRlZ2VyKSByZXN1bHQgdGhlbgorICAqIG9ubHkgdGhlIGxvdy1vcmRlciA2NCBiaXRzIGFyZSB1c2VkLiAoVGhhdCBpcywgdGhlIG51bWJlciBtYXkgYmUKKyAgKiA8aT5kZWNhcGl0YXRlZDwvaT4uKSAgVG8gYXZvaWQgdW5leHBlY3RlZCBlcnJvcnMgd2hlbiB0aGVzZQorICAqIGNvbmRpdGlvbnMgb2NjdXIsIHVzZSB0aGUge0BsaW5rICNsb25nVmFsdWVFeGFjdH0gbWV0aG9kLgorICAqCisgICogQHJldHVybiBBIDxjb2RlPmxvbmc8L2NvZGU+IGNvbnZlcnRlZCBmcm9tIDxjb2RlPnRoaXM8L2NvZGU+LAorICAqICAgICAgICAgdHJ1bmNhdGVkIGFuZCBkZWNhcGl0YXRlZCBpZiBuZWNlc3NhcnkuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGxvbmcgbG9uZ1ZhbHVlKCl7CisgIHJldHVybiB0b0JpZ0ludGVnZXIoKS5sb25nVmFsdWUoKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgb3IgaXMKKyAgKiBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhIDxjb2RlPmxvbmc8L2NvZGU+ICg2NC1iaXQgc2lnbmVkCisgICogaW50ZWdlcikgcmVzdWx0IHRoZW4gYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHJldHVybiBBIDxjb2RlPmxvbmc8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgICAgICAgICBkZWNpbWFsIHBhcnQsIG9yIHdpbGwgbm90IGZpdCBpbiBhCisgICogICAgICAgICAgICAgICAgIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBsb25nIGxvbmdWYWx1ZUV4YWN0KCl7CisgIGludCBsb2RpZ2l0OworICBpbnQgY3N0YXJ0PTA7CisgIGludCB1c2VleHA9MDsKKyAgbG9uZyByZXN1bHQ7CisgIGludCBpPTA7CisgIGxvbmcgdG9wZGlnPTA7CisgIC8vIElkZW50aWNhbCB0byBpbnRWYWx1ZUV4YWN0IGV4Y2VwdCBmb3IgcmVzdWx0PWxvbmcsIGFuZCBleHA+PTIwIHRlc3QKKyAgaWYgKGluZD09MCkgCisgICByZXR1cm4gMDsgLy8gZWFzeSwgYW5kIHF1aXRlIGNvbW1vbgorICBsb2RpZ2l0PW1hbnQubGVuZ3RoLTE7IC8vIGxhc3QgaW5jbHVkZWQgZGlnaXQKKyAgaWYgKGV4cDwwKSAKKyAgIHsKKyAgICBsb2RpZ2l0PWxvZGlnaXQrZXhwOyAvLyAtKC1leHApCisgICAgLyogYWxsIGRlY2ltYWwgcGxhY2VzIG11c3QgYmUgMCAqLworICAgIGlmIChsb2RpZ2l0PDApIAorICAgICBjc3RhcnQ9MDsKKyAgICBlbHNlIAorICAgICBjc3RhcnQ9bG9kaWdpdCsxOworICAgIGlmICgoIShhbGx6ZXJvKG1hbnQsY3N0YXJ0KSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICBpZiAobG9kaWdpdDwwKSAKKyAgICAgcmV0dXJuIDA7IC8vIC0xPHRoaXM8MQorICAgIHVzZWV4cD0wOworICAgfQorICBlbHNlIAorICAgey8qID49MCAqLworICAgIGlmICgoZXhwK21hbnQubGVuZ3RoKT4xOCkgIC8vIGVhcmx5IGV4aXQKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgdXNlZXhwPWV4cDsKKyAgIH0KKyAgCisgIC8qIGNvbnZlcnQgdGhlIG1hbnRpc3NhIHRvIGJpbmFyeSwgaW5saW5lIGZvciBzcGVlZCAqLworICAvLyBub3RlIHRoYXQgd2UgY291bGQgc2FmZWx5IHVzZSB0aGUgJ3Rlc3QgZm9yIHdyYXAgdG8gbmVnYXRpdmUnCisgIC8vIGFsZ29yaXRobSBoZXJlLCBidXQgaW5zdGVhZCB3ZSBwYXJhbGxlbCB0aGUgaW50VmFsdWVFeGFjdAorICAvLyBhbGdvcml0aG0gZm9yIGVhc2Ugb2YgY2hlY2tpbmcgYW5kIG1haW50ZW5hbmNlLgorICByZXN1bHQ9KGxvbmcpMDsKKyAge2ludCAkMTc9bG9kaWdpdCt1c2VleHA7aT0wO2k6Zm9yKDtpPD0kMTc7aSsrKXsKKyAgIHJlc3VsdD1yZXN1bHQqMTA7CisgICBpZiAoaTw9bG9kaWdpdCkgCisgICAgcmVzdWx0PXJlc3VsdCttYW50W2ldOworICAgfQorICB9LyppKi8KKyAgCisgIC8qIE5vdywgaWYgdGhlIHJpc2t5IGxlbmd0aCwgY2hlY2sgZm9yIG92ZXJmbG93ICovCisgIGlmICgobG9kaWdpdCt1c2VleHApPT0xOCkgCisgICB7CisgICAgdG9wZGlnPXJlc3VsdC8xMDAwMDAwMDAwMDAwMDAwMDAwTDsgLy8gZ2V0IHRvcCBkaWdpdCwgcHJlc2VydmluZyBzaWduCisgICAgaWYgKHRvcGRpZyE9bWFudFswXSkgCisgICAgIHsgLy8gZGlnaXQgbXVzdCBtYXRjaCBhbmQgYmUgcG9zaXRpdmUKKyAgICAgIC8vIGV4Y2VwdCBpbiB0aGUgc3BlY2lhbCBjYXNlIC4uLgorICAgICAgaWYgKHJlc3VsdD09amF2YS5sYW5nLkxvbmcuTUlOX1ZBTFVFKSAgLy8gbG9va3MgbGlrZSB0aGUgc3BlY2lhbAorICAgICAgIGlmIChpbmQ9PWlzbmVnKSAgLy8gcmVhbGx5IHdhcyBuZWdhdGl2ZQorICAgICAgICBpZiAobWFudFswXT09OSkgCisgICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyByZWFsbHkgaGFkIHRvcCBkaWdpdCA5CisgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICAgfQorICAgfQorICAKKyAgLyogTG9va3MgZ29vZCAqLworICBpZiAoaW5kPT1pc3BvcykgCisgICByZXR1cm4gcmVzdWx0OworICByZXR1cm4gKGxvbmcpLXJlc3VsdDsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIGRlY2ltYWwgcG9pbnQgaGFzCisgICogYmVlbiBtb3ZlZCB0byB0aGUgbGVmdCBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgcG9zaXRpb25zLgorICAqIFRoZSBwYXJhbWV0ZXIsIDxjb2RlPm48L2NvZGU+LCBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwb3NpdGlvbnMgdG8KKyAgKiBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50LgorICAqIFRoYXQgaXMsIGlmIDxjb2RlPm48L2NvZGU+IGlzIDAgb3IgcG9zaXRpdmUsIHRoZSBudW1iZXIgcmV0dXJuZWQgaXMKKyAgKiBnaXZlbiBieToKKyAgKiA8cD48Y29kZT4KKyAgKiB0aGlzLm11bHRpcGx5KFRFTi5wb3cobmV3IEJpZ0RlY2ltYWwoLW4pKSkKKyAgKiA8L2NvZGU+CisgICogPHA+CisgICogPGNvZGU+bjwvY29kZT4gbWF5IGJlIG5lZ2F0aXZlLCBpbiB3aGljaCBjYXNlIHRoZSBtZXRob2QgcmV0dXJucworICAqIHRoZSBzYW1lIHJlc3VsdCBhcyA8Y29kZT5tb3ZlUG9pbnRSaWdodCgtbik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICBuIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMgdG8KKyAgKiAgICAgICAgICAgbW92ZSB0aGUgZGVjaW1hbCBwb2ludCBsZWZ0d2FyZHMuCisgICogQHJldHVybiAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZGVyaXZlZCBmcm9tCisgICogICAgICAgICAgIDxjb2RlPnRoaXM8L2NvZGU+LCB3aXRoIHRoZSBkZWNpbWFsIHBvaW50IG1vdmVkCisgICogICAgICAgICAgIDxjb2RlPm48L2NvZGU+IHBsYWNlcyB0byB0aGUgbGVmdC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1vdmVQb2ludExlZnQoaW50IG4peworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICAvLyB2ZXJ5IGxpdHRsZSBwb2ludCBpbiBvcHRpbWl6aW5nIGZvciBzaGlmdCBvZiAwCisgIHJlcz1jbG9uZSh0aGlzKTsKKyAgcmVzLmV4cD1yZXMuZXhwLW47CisgIHJldHVybiByZXMuZmluaXNoKHBsYWluTUMsZmFsc2UpOyAvLyBmaW5pc2ggc2V0cyBmb3JtIGFuZCBjaGVja3MgZXhwb25lbnQKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIGRlY2ltYWwgcG9pbnQgaGFzCisgICogYmVlbiBtb3ZlZCB0byB0aGUgcmlnaHQgYnkgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHBvc2l0aW9ucy4KKyAgKiBUaGUgcGFyYW1ldGVyLCA8Y29kZT5uPC9jb2RlPiwgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcG9zaXRpb25zIHRvCisgICogbW92ZSB0aGUgZGVjaW1hbCBwb2ludC4KKyAgKiBUaGF0IGlzLCBpZiA8Y29kZT5uPC9jb2RlPiBpcyAwIG9yIHBvc2l0aXZlLCB0aGUgbnVtYmVyIHJldHVybmVkIGlzCisgICogZ2l2ZW4gYnk6CisgICogPHA+PGNvZGU+CisgICogdGhpcy5tdWx0aXBseShURU4ucG93KG5ldyBCaWdEZWNpbWFsKG4pKSkKKyAgKiA8L2NvZGU+CisgICogPHA+CisgICogPGNvZGU+bjwvY29kZT4gbWF5IGJlIG5lZ2F0aXZlLCBpbiB3aGljaCBjYXNlIHRoZSBtZXRob2QgcmV0dXJucworICAqIHRoZSBzYW1lIHJlc3VsdCBhcyA8Y29kZT5tb3ZlUG9pbnRMZWZ0KC1uKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIG4gVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcyB0bworICAqICAgICAgICAgICBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50IHJpZ2h0d2FyZHMuCisgICogQHJldHVybiAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZGVyaXZlZCBmcm9tCisgICogICAgICAgICAgIDxjb2RlPnRoaXM8L2NvZGU+LCB3aXRoIHRoZSBkZWNpbWFsIHBvaW50IG1vdmVkCisgICogICAgICAgICAgIDxjb2RlPm48L2NvZGU+IHBsYWNlcyB0byB0aGUgcmlnaHQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtb3ZlUG9pbnRSaWdodChpbnQgbil7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIHJlcz1jbG9uZSh0aGlzKTsKKyAgcmVzLmV4cD1yZXMuZXhwK247CisgIHJldHVybiByZXMuZmluaXNoKHBsYWluTUMsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBzY2FsZSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIFJldHVybnMgYSBub24tbmVnYXRpdmUgPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgc2NhbGUgb2YgdGhlCisgICogbnVtYmVyLiBUaGUgc2NhbGUgaXMgdGhlIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIGRlY2ltYWwgcGFydCBvZgorICAqIHRoZSBudW1iZXIgaWYgdGhlIG51bWJlciB3ZXJlIGZvcm1hdHRlZCB3aXRob3V0IGV4cG9uZW50aWFsCisgICogbm90YXRpb24uCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHNjYWxlIG9mIHRoaXMKKyAgKiAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgc2NhbGUoKXsKKyAgaWYgKGV4cD49MCkgCisgICByZXR1cm4gMDsgLy8gc2NhbGUgY2FuIG5ldmVyIGJlIG5lZ2F0aXZlCisgIHJldHVybiAoaW50KS1leHA7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIGEgZ2l2ZW4gc2NhbGUuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlICh3aGljaCBtdXN0IGJlIHplcm8gb3IgcG9zaXRpdmUpIGlzIHRoZSBzYW1lIGFzCisgICogb3IgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyB6ZXJvcyB3aWxsIGJlIGFkZGVkIHRvIHRoZQorICAqIGRlY2ltYWwgcGFydCBhcyBuZWNlc3NhcnkuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlIGlzIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZQorICAqIHNjYWxlKSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoZW4gdHJhaWxpbmcgZGlnaXRzCisgICogd2lsbCBiZSByZW1vdmVkLCBhbmQgaW4gdGhpcyBjYXNlIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIGFueSBkaXNjYXJkZWQgZGlnaXRzCisgICogYXJlIG5vbi16ZXJvLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjc2V0U2NhbGUoaW50LCBpbnQpfSwgd2hlcmUgdGhlIGZpcnN0IHBhcmFtZXRlcgorICAqIGlzIHRoZSBzY2FsZSwgYW5kIHRoZSBzZWNvbmQgaXMKKyAgKiA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHNjYWxlIG9mIHRoZQorICAqICAgICAgICAgICAgICAgcmVzdWx0aW5nIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEByZXR1cm4gICAgICAgQSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBzY2FsZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+c2NhbGU8L2NvZGU+IGlzIG5lZ2F0aXZlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiByZWR1Y2luZyBzY2FsZSB3b3VsZCBkaXNjYXJkCisgICogICAgICAgICAgICAgICBub24temVybyBkaWdpdHMuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzZXRTY2FsZShpbnQgc2NhbGUpeworICByZXR1cm4gc2V0U2NhbGUoc2NhbGUsUk9VTkRfVU5ORUNFU1NBUlkpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCBhIGdpdmVuIHNjYWxlLgorICAqIDxwPgorICAqIElmIHRoZSBnaXZlbiBzY2FsZSAod2hpY2ggbXVzdCBiZSB6ZXJvIG9yIHBvc2l0aXZlKSBpcyB0aGUgc2FtZSBhcworICAqIG9yIGdyZWF0ZXIgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoZW4gdHJhaWxpbmcgemVyb3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUKKyAgKiBkZWNpbWFsIHBhcnQgYXMgbmVjZXNzYXJ5LgorICAqIDxwPgorICAqIElmIHRoZSBnaXZlbiBzY2FsZSBpcyBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUKKyAgKiBzY2FsZSkgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGVuIHRyYWlsaW5nIGRpZ2l0cworICAqIHdpbGwgYmUgcmVtb3ZlZCwgYW5kIHRoZSByb3VuZGluZyBtb2RlIGdpdmVuIGJ5IHRoZSBzZWNvbmQKKyAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHJlbWFpbmluZyBkaWdpdHMgYXJlCisgICogYWZmZWN0ZWQgYnkgYSBjYXJyeS4KKyAgKiBJbiB0aGlzIGNhc2UsIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmCisgICogPGNvZGU+cm91bmQ8L2NvZGU+IGlzIG5vdCBhIHZhbGlkIHJvdW5kaW5nIG1vZGUuCisgICogPHA+CisgICogSWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPiwKKyAgKiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgYW55IGRpc2NhcmRlZAorICAqIGRpZ2l0cyBhcmUgbm9uLXplcm8uCisgICoKKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHNjYWxlIG9mIHRoZQorICAqICAgICAgICAgICAgICAgcmVzdWx0aW5nIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBwYXJhbSAgcm91bmQgVGhlIDxjb2RlPmludDwvY29kZT4gcm91bmRpbmcgbW9kZSB0byBiZSB1c2VkIGZvcgorICAqICAgICAgICAgICAgICAgdGhlIGRpdmlzaW9uIChzZWUgdGhlIHtAbGluayBNYXRoQ29udGV4dH0gY2xhc3MpLgorICAqIEByZXR1cm4gICAgICAgQSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBzY2FsZS4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEKKyAgKiAgICAgICAgICAgICAgIHZhbGlkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnNjYWxlPC9jb2RlPiBpcyBuZWdhdGl2ZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzCisgICogICAgICAgICAgICAgICA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4sIGFuZAorICAqICAgICAgICAgICAgICAgcmVkdWNpbmcgc2NhbGUgd291bGQgZGlzY2FyZCBub24temVybyBkaWdpdHMuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzZXRTY2FsZShpbnQgc2NhbGUsaW50IHJvdW5kKXsKKyAgaW50IG91cnNjYWxlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBpbnQgcGFkZGluZz0wOworICBpbnQgbmV3bGVuPTA7CisgIC8vIGF0IHByZXNlbnQgdGhpcyBuYXVnaHRpbHkgb25seSBjaGVja3MgdGhlIHJvdW5kIHZhbHVlIGlmIGl0IGlzCisgIC8vIG5lZWRlZCAodXNlZCksIGZvciBzcGVlZAorICBvdXJzY2FsZT10aGlzLnNjYWxlKCk7CisgIGlmIChvdXJzY2FsZT09c2NhbGUpICAvLyBhbHJlYWR5IGNvcnJlY3Qgc2NhbGUKKyAgIGlmICh0aGlzLmZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pICAvLyAuLiBhbmQgZm9ybQorICAgIHJldHVybiB0aGlzOworICByZXM9Y2xvbmUodGhpcyk7IC8vIG5lZWQgY29weQorICBpZiAob3Vyc2NhbGU8PXNjYWxlKSAKKyAgIHsgLy8gc2ltcGx5IHplcm8tcGFkZGluZy9jaGFuZ2luZyBmb3JtCisgICAgLy8gaWYgb3Vyc2NhbGUgaXMgMCB3ZSBtYXkgaGF2ZSBsb3RzIG9mIDBzIHRvIGFkZAorICAgIGlmIChvdXJzY2FsZT09MCkgCisgICAgIHBhZGRpbmc9cmVzLmV4cCtzY2FsZTsKKyAgICBlbHNlIAorICAgICBwYWRkaW5nPXNjYWxlLW91cnNjYWxlOworICAgIHJlcy5tYW50PWV4dGVuZChyZXMubWFudCxyZXMubWFudC5sZW5ndGgrcGFkZGluZyk7CisgICAgcmVzLmV4cD0oaW50KS1zY2FsZTsgLy8gYXMgcmVxdWVzdGVkCisgICB9CisgIGVsc2UgCisgICB7Lyogb3Vyc2NhbGU+c2NhbGU6IHNob3J0ZW5pbmcsIHByb2JhYmx5ICovCisgICAgaWYgKHNjYWxlPDApIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgICAvLyBbcm91bmQoKSB3aWxsIHJhaXNlIGV4Y2VwdGlvbiBpZiBpbnZhbGlkIHJvdW5kXQorICAgIG5ld2xlbj1yZXMubWFudC5sZW5ndGgtKChvdXJzY2FsZS1zY2FsZSkpOyAvLyBbPD0wIGlzIE9LXQorICAgIHJlcz1yZXMucm91bmQobmV3bGVuLHJvdW5kKTsgLy8gcm91bmQgdG8gcmVxdWlyZWQgbGVuZ3RoCisgICAgLy8gVGhpcyBjb3VsZCBoYXZlIHNoaWZ0ZWQgbGVmdCBpZiByb3VuZCAoc2F5KSAwLjktPjFbLjBdCisgICAgLy8gUmVwYWlyIGlmIHNvIGJ5IGFkZGluZyBhIHplcm8gYW5kIHJlZHVjaW5nIGV4cG9uZW50CisgICAgaWYgKHJlcy5leHAhPSgoaW50KS1zY2FsZSkpIAorICAgICB7CisgICAgICByZXMubWFudD1leHRlbmQocmVzLm1hbnQscmVzLm1hbnQubGVuZ3RoKzEpOworICAgICAgcmVzLmV4cD1yZXMuZXhwLTE7CisgICAgIH0KKyAgIH0KKyAgcmVzLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gYnkgZGVmaW5pdGlvbgorICByZXR1cm4gcmVzOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+c2hvcnQ8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgb3IgaXMKKyAgKiBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhIDxjb2RlPnNob3J0PC9jb2RlPiAoMTYtYml0IHNpZ25lZAorICAqIGludGVnZXIpIHJlc3VsdCB0aGVuIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5zaG9ydDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGEKKyAgKiAgICAgICAgICAgICAgICAgPGNvZGU+c2hvcnQ8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBzaG9ydCBzaG9ydFZhbHVlRXhhY3QoKXsKKyAgaW50IG51bTsKKyAgbnVtPXRoaXMuaW50VmFsdWVFeGFjdCgpOyAvLyB3aWxsIGNoZWNrIGRlY2ltYWwgcGFydCB0b28KKyAgaWYgKChudW0+MzI3NjcpfChudW08KC0zMjc2OCkpKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICByZXR1cm4gKHNob3J0KW51bTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgc2lnbiBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBhcyBhbgorICAqIDxjb2RlPmludDwvY29kZT4uCisgICogVGhpcyByZXR1cm5zIHRoZSA8aT5zaWdudW08L2k+IGZ1bmN0aW9uIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGUKKyAgKiBzaWduIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogVGhhdCBpcywgLTEgaWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG5lZ2F0aXZlLCAwIGlmIGl0IGlzCisgICogbnVtZXJpY2FsbHkgZXF1YWwgdG8gemVybywgb3IgMSBpZiBpdCBpcyBwb3NpdGl2ZS4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyAtMSBpZiB0aGUKKyAgKiAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG5lZ2F0aXZlLCAwIGlmIGl0IGlzCisgICogICAgICAgICBudW1lcmljYWxseSBlcXVhbCB0byB6ZXJvLCBvciAxIGlmIGl0IGlzIHBvc2l0aXZlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgc2lnbnVtKCl7CisgIHJldHVybiAoaW50KXRoaXMuaW5kOyAvLyBbbm90ZSB0aGlzIGFzc3VtZXMgdmFsdWVzIGZvciBpbmQuXQorICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoaXMgaXMgYW4gZXhhY3QgY29udmVyc2lvbjsgdGhlIHJlc3VsdCBpcyB0aGUgc2FtZSBhcyBpZiB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3ZXJlIGZvcm1hdHRlZCBhcyBhIHBsYWluIG51bWJlciB3aXRob3V0CisgICogYW55IHJvdW5kaW5nIG9yIGV4cG9uZW50IGFuZCB0aGVuIHRoZQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvcgorICAqIHdlcmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHJlc3VsdC4KKyAgKiA8cD4KKyAgKiA8aT4oTm90ZTogdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgb25seSBpbiB0aGUKKyAgKiA8Y29kZT5jb20uaWJtLmljdS5tYXRoPC9jb2RlPiB2ZXJzaW9uIG9mIHRoZSBCaWdEZWNpbWFsIGNsYXNzLgorICAqIEl0IHdvdWxkIG5vdCBiZSBwcmVzZW50IGluIGEgPGNvZGU+amF2YS5tYXRoPC9jb2RlPiB2ZXJzaW9uLik8L2k+CisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4gZXF1YWwgaW4gdmFsdWUKKyAgKiAgICAgICAgIHRvIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubWF0aC5CaWdEZWNpbWFsIHRvQmlnRGVjaW1hbCgpeworICByZXR1cm4gbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKHRoaXMudW5zY2FsZWRWYWx1ZSgpLHRoaXMuc2NhbGUoKSk7CisgIH0KKy8vI2VuZGlmCisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4uCisgICogPHA+CisgICogQW55IGRlY2ltYWwgcGFydCBpcyB0cnVuY2F0ZWQgKGRpc2NhcmRlZCkuCisgICogSWYgYW4gZXhjZXB0aW9uIGlzIGRlc2lyZWQgc2hvdWxkIHRoZSBkZWNpbWFsIHBhcnQgYmUgbm9uLXplcm8sCisgICogdXNlIHtAbGluayAjdG9CaWdJbnRlZ2VyRXhhY3QoKX0uCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4gZXF1YWwgaW4gdmFsdWUKKyAgKiAgICAgICAgIHRvIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5tYXRoLkJpZ0ludGVnZXIgdG9CaWdJbnRlZ2VyKCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM9bnVsbDsKKyAgaW50IG5ld2xlbj0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICB7LypzZWxlY3QqLworICBpZiAoKGV4cD49MCkmKGZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pKQorICAgcmVzPXRoaXM7IC8vIGNhbiBsYXlvdXQgc2ltcGx5CisgIGVsc2UgaWYgKGV4cD49MCkKKyAgIHsKKyAgICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICAgIHJlcy5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47IC8vIC4uIGFuZCByZXF1ZXN0IFBMQUlOCisgICB9CisgIGVsc2V7CisgICB7IC8vIGV4cDwwOyBzY2FsZSB0byBiZSB0cnVuY2F0ZWQKKyAgICAvLyB3ZSBjb3VsZCB1c2UgZGl2aWRlSW50ZWdlciwgYnV0IHdlIG1heSBhcyB3ZWxsIGJlIHF1aWNrZXIKKyAgICBpZiAoKChpbnQpLXRoaXMuZXhwKT49dGhpcy5tYW50Lmxlbmd0aCkgCisgICAgIHJlcz1aRVJPOyAvLyBhbGwgYmxvd3MgYXdheQorICAgIGVsc2UgCisgICAgIHsKKyAgICAgIHJlcz1jbG9uZSh0aGlzKTsgLy8gc2FmZSBjb3B5CisgICAgICBuZXdsZW49cmVzLm1hbnQubGVuZ3RoK3Jlcy5leHA7CisgICAgICBuZXdtYW50PW5ldyBieXRlW25ld2xlbl07IC8vIFtzaG9ydGVyXQorICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpcmVzLm1hbnQsMCwoamF2YS5sYW5nLk9iamVjdCluZXdtYW50LDAsbmV3bGVuKTsKKyAgICAgIHJlcy5tYW50PW5ld21hbnQ7CisgICAgICByZXMuZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICAgICAgcmVzLmV4cD0wOworICAgICB9CisgICB9CisgIH0KKyAgfQorICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobmV3IGphdmEubGFuZy5TdHJpbmcocmVzLmxheW91dCgpKSk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBBbiBleGNlcHRpb24gaXMgdGhyb3duIGlmIHRoZSBkZWNpbWFsIHBhcnQgKGlmIGFueSkgaXMgbm9uLXplcm8uCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4gZXF1YWwgaW4gdmFsdWUKKyAgKiAgICAgICAgIHRvIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgIGRlY2ltYWwgcGFydC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5tYXRoLkJpZ0ludGVnZXIgdG9CaWdJbnRlZ2VyRXhhY3QoKXsKKyAgLyogdGVzdCBhbnkgdHJhaWxpbmcgZGVjaW1hbCBwYXJ0ICovCisgIGlmIChleHA8MCkgCisgICB7IC8vIHBvc3NpYmxlIGRlY2ltYWwgcGFydAorICAgIC8qIGFsbCBkZWNpbWFsIHBsYWNlcyBtdXN0IGJlIDA7IG5vdGUgZXhwPDAgKi8KKyAgICBpZiAoKCEoYWxsemVybyhtYW50LG1hbnQubGVuZ3RoK2V4cCkpKSkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICB9CisgIHJldHVybiB0b0JpZ0ludGVnZXIoKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgYSBjaGFyYWN0ZXIgYXJyYXkuCisgICogVGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCBpcyB0aGUgc2FtZSBhcyB1c2luZyB0aGUKKyAgKiBzZXF1ZW5jZSA8Y29kZT50b1N0cmluZygpLnRvQ2hhckFycmF5KCk8L2NvZGU+LCBidXQgYXZvaWRzIGNyZWF0aW5nCisgICogdGhlIGludGVybWVkaWF0ZSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCA8Y29kZT5jaGFyW108L2NvZGU+CisgICogb2JqZWN0cy4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmNoYXJbXTwvY29kZT4gYXJyYXkgY29ycmVzcG9uZGluZyB0byB0aGlzCisgICogICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY2hhcltdIHRvQ2hhckFycmF5KCl7CisgIHJldHVybiBsYXlvdXQoKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICAqIFRoaXMgcmV0dXJucyBhIDxjb2RlPlN0cmluZzwvY29kZT4gdGhhdCBleGFjdGx5IHJlcHJlc2VudHMgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24KKyAgKiAoc2VlIHtAbGluayBCaWdEZWNpbWFsIGNsYXNzIGhlYWRlcn0pLgorICAqIDxwPgorICAqIEJ5IGRlZmluaXRpb24sIHVzaW5nIHRoZSB7QGxpbmsgI0JpZ0RlY2ltYWwoU3RyaW5nKX0gY29uc3RydWN0b3IKKyAgKiBvbiB0aGUgcmVzdWx0IDxjb2RlPlN0cmluZzwvY29kZT4gd2lsbCBjcmVhdGUgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoYXQgaXMgZXhhY3RseSBlcXVhbCB0byB0aGUgb3JpZ2luYWwKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gZXhhY3RseSBjb3JyZXNwb25kaW5nIHRvIHRoaXMKKyAgKiAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzZWUgICAgI2Zvcm1hdChpbnQsIGludCkKKyAgKiBAc2VlICAgICNmb3JtYXQoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCkKKyAgKiBAc2VlICAgICN0b0NoYXJBcnJheSgpCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKXsKKyAgcmV0dXJuIG5ldyBqYXZhLmxhbmcuU3RyaW5nKGxheW91dCgpKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgbnVtYmVyIGFzIGEgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gYWZ0ZXIgcmVtb3ZpbmcgdGhlCisgICogc2NhbGUuCisgICogVGhhdCBpcywgdGhlIG51bWJlciBpcyBleHByZXNzZWQgYXMgYSBwbGFpbiBudW1iZXIsIGFueSBkZWNpbWFsCisgICogcG9pbnQgaXMgdGhlbiByZW1vdmVkIChyZXRhaW5pbmcgdGhlIGRpZ2l0cyBvZiBhbnkgZGVjaW1hbCBwYXJ0KSwKKyAgKiBhbmQgdGhlIHJlc3VsdCBpcyB0aGVuIGNvbnZlcnRlZCB0byBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvCisgICogICAgICAgICB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG11bHRpcGxpZWQgYnkgdGVuIHRvIHRoZQorICAqICAgICAgICAgcG93ZXIgb2YgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5tYXRoLkJpZ0ludGVnZXIgdW5zY2FsZWRWYWx1ZSgpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzPW51bGw7CisgIGlmIChleHA+PTApIAorICAgcmVzPXRoaXM7CisgIGVsc2UgCisgICB7CisgICAgcmVzPWNsb25lKHRoaXMpOyAvLyBzYWZlIGNvcHkKKyAgICByZXMuZXhwPTA7IC8vIGRyb3Agc2NhbGUKKyAgIH0KKyAgcmV0dXJuIHJlcy50b0JpZ0ludGVnZXIoKTsKKyAgfQorCisgLyoqCisgICogVHJhbnNsYXRlcyBhIDxjb2RlPmRvdWJsZTwvY29kZT4gdG8gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgNjQtYml0IHNpZ25lZCBiaW5hcnkgZmxvYXRpbmcgcG9pbnQKKyAgKiBwYXJhbWV0ZXIuIElmIHRoZSBwYXJhbWV0ZXIgaXMgaW5maW5pdGUsIG9yIGlzIG5vdCBhIG51bWJlciAoTmFOKSwKKyAgKiBhIDxjb2RlPk51bWJlckZvcm1hdEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqIDxwPgorICAqIFRoZSBudW1iZXIgaXMgY29uc3RydWN0ZWQgYXMgdGhvdWdoIDxjb2RlPm51bTwvY29kZT4gaGFkIGJlZW4KKyAgKiBjb252ZXJ0ZWQgdG8gYSA8Y29kZT5TdHJpbmc8L2NvZGU+IHVzaW5nIHRoZQorICAqIDxjb2RlPkRvdWJsZS50b1N0cmluZygpPC9jb2RlPiBtZXRob2QgYW5kIHRoZQorICAqIHtAbGluayAjQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKX0gY29uc3RydWN0b3IgaGFkIHRoZW4gYmVlbiB1c2VkLgorICAqIFRoaXMgaXMgdHlwaWNhbGx5IG5vdCBhbiBleGFjdCBjb252ZXJzaW9uLgorICAqCisgICogQHBhcmFtICBkdWIgVGhlIDxjb2RlPmRvdWJsZTwvY29kZT4gdG8gYmUgdHJhbnNsYXRlZC4KKyAgKiBAcmV0dXJuICAgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8KKyAgKiAgICAgICAgICAgICA8Y29kZT5kdWI8L2NvZGU+LgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgaW5maW5pdGUgb3IKKyAgKiAgICAgICAgICAgICBub3QgYSBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIHN0YXRpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdmFsdWVPZihkb3VibGUgZHViKXsKKyAgLy8gUmVtaW5kZXI6IGEgemVybyBkb3VibGUgcmV0dXJucyAnMC4wJywgc28gd2UgY2Fubm90IGZhc3RwYXRoIHRvCisgIC8vIHVzZSB0aGUgY29uc3RhbnQgWkVSTy4gIFRoaXMgbWlnaHQgYmUgaW1wb3J0YW50IGVub3VnaCB0byBqdXN0aWZ5CisgIC8vIGEgZmFjdG9yeSBhcHByb2FjaCwgYSBjYWNoZSwgb3IgYSBmZXcgcHJpdmF0ZSBjb25zdGFudHMsIGxhdGVyLgorICByZXR1cm4gbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgobmV3IGphdmEubGFuZy5Eb3VibGUoZHViKSkudG9TdHJpbmcoKSk7CisgIH0KKworIC8qKgorICAqIFRyYW5zbGF0ZXMgYSA8Y29kZT5sb25nPC9jb2RlPiB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIFRoYXQgaXMsIHJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIGVxdWFsIHRvIHRoZSBnaXZlbiA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgbGludCBUaGUgPGNvZGU+bG9uZzwvY29kZT4gdG8gYmUgdHJhbnNsYXRlZC4KKyAgKiBAcmV0dXJuICAgICAgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvCisgICogICAgICAgICAgICAgIDxjb2RlPmxpbnQ8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBzdGF0aWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZhbHVlT2YobG9uZyBsaW50KXsKKyAgcmV0dXJuIHZhbHVlT2YobGludCwwKTsKKyAgfQorCisgLyoqCisgICogVHJhbnNsYXRlcyBhIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCBhCisgICogZ2l2ZW4gc2NhbGUuCisgICogVGhhdCBpcywgcmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHVuc2NhbGVkCisgICogdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIDxjb2RlPmxvbmc8L2NvZGU+LCBhZGp1c3RlZCBieSB0aGUKKyAgKiBzZWNvbmQgcGFyYW1ldGVyLCA8Y29kZT5zY2FsZTwvY29kZT4uCisgICogPHA+CisgICogVGhlIHJlc3VsdCBpcyBnaXZlbiBieToKKyAgKiA8cD48Y29kZT4KKyAgKiAobmV3IEJpZ0RlY2ltYWwobGludCkpLmRpdmlkZShURU4ucG93KG5ldyBCaWdEZWNpbWFsKHNjYWxlKSkpCisgICogPC9jb2RlPgorICAqIDxwPgorICAqIEEgPGNvZGU+TnVtYmVyRm9ybWF0RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgPGNvZGU+c2NhbGU8L2NvZGU+CisgICogaXMgbmVnYXRpdmUuCisgICoKKyAgKiBAcGFyYW0gIGxpbnQgIFRoZSA8Y29kZT5sb25nPC9jb2RlPiB0byBiZSB0cmFuc2xhdGVkLgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc2NhbGUgdG8gYmUgYXBwbGllZC4KKyAgKiBAcmV0dXJuICAgICAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgICAgICAgPGNvZGU+bGludDwvY29kZT4uCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHNjYWxlIGlzIG5lZ2F0aXZlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBzdGF0aWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZhbHVlT2YobG9uZyBsaW50LGludCBzY2FsZSl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM9bnVsbDsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKGxpbnQ9PTApCisgICByZXM9WkVSTzsKKyAgZWxzZSBpZiAobGludD09MSkKKyAgIHJlcz1PTkU7CisgIGVsc2UgaWYgKGxpbnQ9PTEwKQorICAgcmVzPVRFTjsKKyAgZWxzZXsKKyAgIHJlcz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxpbnQpOworICB9CisgIH0KKyAgaWYgKHNjYWxlPT0wKSAKKyAgIHJldHVybiByZXM7CisgIGlmIChzY2FsZTwwKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uKCJOZWdhdGl2ZSBzY2FsZToiKyIgIitzY2FsZSk7CisgIHJlcz1jbG9uZShyZXMpOyAvLyBzYWZlIGNvcHkgW2RvIG5vdCBtdXRhdGVdCisgIHJlcy5leHA9KGludCktc2NhbGU7IC8vIGV4cG9uZW50IGlzIC1zY2FsZQorICByZXR1cm4gcmVzOworICB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiA8c2dtbD4gUmV0dXJuIGNoYXIgYXJyYXkgdmFsdWUgb2YgYSBCaWdEZWNpbWFsIChjb252ZXJzaW9uIGZyb20KKyAgICAgICBCaWdEZWNpbWFsIHRvIGxhaWQtb3V0IGNhbm9uaWNhbCBjaGFyIGFycmF5KS4KKyAgICA8cD5UaGUgbWFudGlzc2Egd2lsbCBlaXRoZXIgYWxyZWFkeSBoYXZlIGJlZW4gcm91bmRlZCAoZm9sbG93aW5nIGFuCisgICAgICAgb3BlcmF0aW9uKSBvciB3aWxsIGJlIG9mIGxlbmd0aCBhcHByb3ByaWF0ZSAoaW4gdGhlIGNhc2Ugb2YKKyAgICAgICBjb25zdHJ1Y3Rpb24gZnJvbSBhbiBpbnQsIGZvciBleGFtcGxlKS4KKyAgICA8cD5XZSBtdXN0IG5vdCBhbHRlciB0aGUgbWFudGlzc2EsIGhlcmUuCisgICAgPHA+J2Zvcm0nIGRlc2NyaWJlcyB3aGV0aGVyIHdlIGFyZSB0byB1c2UgZXhwb25lbnRpYWwgbm90YXRpb24gKGFuZAorICAgICAgIGlmIHNvLCB3aGljaCksIG9yIGlmIHdlIGFyZSB0byBsYXkgb3V0IGFzIGEgcGxhaW4vcHVyZSBudW1lcmljLgorICAgIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIGNoYXJbXSBsYXlvdXQoKXsKKyAgY2hhciBjbWFudFtdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIHNiPW51bGw7CisgIGludCBldXNlPTA7CisgIGludCBzaWc9MDsKKyAgY2hhciBjc2lnbj0wOworICBjaGFyIHJlY1tdPW51bGw7CisgIGludCBuZWVkc2lnbjsKKyAgaW50IG1hZzsKKyAgaW50IGxlbj0wOworICBjbWFudD1uZXcgY2hhclttYW50Lmxlbmd0aF07IC8vIGNvcHkgYnl0ZVtdIHRvIGEgY2hhcltdCisgIHtpbnQgJDE4PW1hbnQubGVuZ3RoO2k9MDtpOmZvcig7JDE4PjA7JDE4LS0saSsrKXsKKyAgIGNtYW50W2ldPShjaGFyKShtYW50W2ldKygoaW50KSgnMCcpKSk7CisgICB9CisgIH0vKmkqLworICAKKyAgaWYgKGZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgey8qIGV4cG9uZW50aWFsIG5vdGF0aW9uIG5lZWRlZCAqLworICAgIHNiPW5ldyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKGNtYW50Lmxlbmd0aCsxNSk7IC8vIC14Lnh4eEUrOTk5OTk5OTk5CisgICAgaWYgKGluZD09aXNuZWcpIAorICAgICBzYi5hcHBlbmQoJy0nKTsKKyAgICBldXNlPShleHArY21hbnQubGVuZ3RoKS0xOyAvLyBleHBvbmVudCB0byB1c2UKKyAgICAvKiBzZXR1cCBzaWc9c2lnbmlmaWNhbnQgZGlnaXRzIGFuZCBjb3B5IHRvIHJlc3VsdCAqLworICAgIGlmIChmb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpIAorICAgICB7IC8vIFtkZWZhdWx0XQorICAgICAgc2IuYXBwZW5kKGNtYW50WzBdKTsgLy8gc2lnbmlmaWNhbnQgY2hhcmFjdGVyCisgICAgICBpZiAoY21hbnQubGVuZ3RoPjEpICAvLyBoYXZlIGRlY2ltYWwgcGFydAorICAgICAgIHNiLmFwcGVuZCgnLicpLmFwcGVuZChjbWFudCwxLGNtYW50Lmxlbmd0aC0xKTsKKyAgICAgfQorICAgIGVsc2UgCisgICAgIHtlbmdpbmVlcmluZzpkb3sKKyAgICAgIHNpZz1ldXNlJTM7IC8vIGNvbW1vbgorICAgICAgaWYgKHNpZzwwKSAKKyAgICAgICBzaWc9MytzaWc7IC8vIG5lZ2F0aXZlIGV4cG9uZW50CisgICAgICBldXNlPWV1c2Utc2lnOworICAgICAgc2lnKys7CisgICAgICBpZiAoc2lnPj1jbWFudC5sZW5ndGgpIAorICAgICAgIHsgLy8gemVybyBwYWRkaW5nIG1heSBiZSBuZWVkZWQKKyAgICAgICAgc2IuYXBwZW5kKGNtYW50LDAsY21hbnQubGVuZ3RoKTsKKyAgICAgICAge2ludCAkMTk9c2lnLWNtYW50Lmxlbmd0aDtmb3IoOyQxOT4wOyQxOS0tKXsKKyAgICAgICAgIHNiLmFwcGVuZCgnMCcpOworICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgfQorICAgICAgZWxzZSAKKyAgICAgICB7IC8vIGRlY2ltYWwgcG9pbnQgbmVlZGVkCisgICAgICAgIHNiLmFwcGVuZChjbWFudCwwLHNpZykuYXBwZW5kKCcuJykuYXBwZW5kKGNtYW50LHNpZyxjbWFudC5sZW5ndGgtc2lnKTsKKyAgICAgICB9CisgICAgIH13aGlsZShmYWxzZSk7fS8qZW5naW5lZXJpbmcqLworICAgIGlmIChldXNlIT0wKSAKKyAgICAgeworICAgICAgaWYgKGV1c2U8MCkgCisgICAgICAgeworICAgICAgICBjc2lnbj0nLSc7CisgICAgICAgIGV1c2U9KGludCktZXVzZTsKKyAgICAgICB9CisgICAgICBlbHNlIAorICAgICAgIGNzaWduPScrJzsKKyAgICAgIHNiLmFwcGVuZCgnRScpLmFwcGVuZChjc2lnbikuYXBwZW5kKGV1c2UpOworICAgICB9CisgICAgcmVjPW5ldyBjaGFyW3NiLmxlbmd0aCgpXTsKKyAgICBVdGlsaXR5LmdldENoYXJzKHNiLCAwLHNiLmxlbmd0aCgpLHJlYywwKTsKKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgLyogSGVyZSBmb3Igbm9uLWV4cG9uZW50aWFsIChwbGFpbikgbm90YXRpb24gKi8KKyAgaWYgKGV4cD09MCkgCisgICB7LyogZWFzeSAqLworICAgIGlmIChpbmQ+PTApIAorICAgICByZXR1cm4gY21hbnQ7IC8vIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyCisgICAgcmVjPW5ldyBjaGFyW2NtYW50Lmxlbmd0aCsxXTsKKyAgICByZWNbMF09Jy0nOworICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LDAsKGphdmEubGFuZy5PYmplY3QpcmVjLDEsY21hbnQubGVuZ3RoKTsKKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgLyogTmVlZCBhICcuJyBhbmQvb3Igc29tZSB6ZXJvcyAqLworICBuZWVkc2lnbj0oaW50KSgoaW5kPT1pc25lZyk/MTowKTsgLy8gc3BhY2UgZm9yIHNpZ24/ICAwIG9yIDEKKyAgCisgIC8qIE1BRyBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHBvaW50IGluIHRoZSBtYW50aXNzYSAoaW5kZXggb2YgdGhlCisgICAgIGNoYXJhY3RlciBpdCBmb2xsb3dzKSAqLworICBtYWc9ZXhwK2NtYW50Lmxlbmd0aDsKKyAgCisgIGlmIChtYWc8MSkgCisgICB7LyogMC4wMHh4eHggZm9ybSAqLworICAgIGxlbj0obmVlZHNpZ24rMiktZXhwOyAvLyBuZWVkc2lnbisyKygtbWFnKStjbWFudC5sZW5ndGgKKyAgICByZWM9bmV3IGNoYXJbbGVuXTsKKyAgICBpZiAobmVlZHNpZ24hPTApIAorICAgICByZWNbMF09Jy0nOworICAgIHJlY1tuZWVkc2lnbl09JzAnOworICAgIHJlY1tuZWVkc2lnbisxXT0nLic7CisgICAge2ludCAkMjA9KGludCktbWFnO2k9bmVlZHNpZ24rMjtpOmZvcig7JDIwPjA7JDIwLS0saSsrKXsgLy8gbWF5YmUgbm9uZQorICAgICByZWNbaV09JzAnOworICAgICB9CisgICAgfS8qaSovCisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsMCwoamF2YS5sYW5nLk9iamVjdClyZWMsKG5lZWRzaWduKzIpLW1hZyxjbWFudC5sZW5ndGgpOworICAgIHJldHVybiByZWM7CisgICB9CisgIAorICBpZiAobWFnPmNtYW50Lmxlbmd0aCkgCisgICB7LyogeHh4eDAwMDAgZm9ybSAqLworICAgIGxlbj1uZWVkc2lnbittYWc7CisgICAgcmVjPW5ldyBjaGFyW2xlbl07CisgICAgaWYgKG5lZWRzaWduIT0wKSAKKyAgICAgcmVjWzBdPSctJzsKKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYyxuZWVkc2lnbixjbWFudC5sZW5ndGgpOworICAgIHtpbnQgJDIxPW1hZy1jbWFudC5sZW5ndGg7aT1uZWVkc2lnbitjbWFudC5sZW5ndGg7aTpmb3IoOyQyMT4wOyQyMS0tLGkrKyl7IC8vIG5ldmVyIDAKKyAgICAgcmVjW2ldPScwJzsKKyAgICAgfQorICAgIH0vKmkqLworICAgIHJldHVybiByZWM7CisgICB9CisgIAorICAvKiBkZWNpbWFsIHBvaW50IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIG1hbnRpc3NhICovCisgIGxlbj0obmVlZHNpZ24rMSkrY21hbnQubGVuZ3RoOworICByZWM9bmV3IGNoYXJbbGVuXTsKKyAgaWYgKG5lZWRzaWduIT0wKSAKKyAgIHJlY1swXT0nLSc7CisgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LDAsKGphdmEubGFuZy5PYmplY3QpcmVjLG5lZWRzaWduLG1hZyk7CisgIHJlY1tuZWVkc2lnbittYWddPScuJzsKKyAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsbWFnLChqYXZhLmxhbmcuT2JqZWN0KXJlYywobmVlZHNpZ24rbWFnKSsxLGNtYW50Lmxlbmd0aC1tYWcpOworICByZXR1cm4gcmVjOworICB9CisKKyAvKiA8c2dtbD4gQ2hlY2tzIGEgQmlnRGVjaW1hbCBhcmd1bWVudCB0byBlbnN1cmUgaXQncyBhIHRydWUgaW50ZWdlcgorICAgICAgIGluIGEgZ2l2ZW4gcmFuZ2UuCisgICAgPHA+SWYgT0ssIHJldHVybnMgaXQgYXMgYW4gaW50LiA8L3NnbWw+ICovCisgLy8gW2N1cnJlbnRseSBvbmx5IHVzZWQgYnkgcG93XQorIAorIHByaXZhdGUgaW50IGludGNoZWNrKGludCBtaW4saW50IG1heCl7CisgIGludCBpOworICBpPXRoaXMuaW50VmFsdWVFeGFjdCgpOyAvLyBbY2hlY2tzIGZvciBub24tMCBkZWNpbWFsIHBhcnRdCisgIC8vIFVzZSBzYW1lIG1lc3NhZ2UgYXMgdGhvdWdoIGludFZhbHVlRXhhY3QgZmFpbGVkIGR1ZSB0byBzaXplCisgIGlmICgoaTxtaW4pfChpPm1heCkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK2kpOworICByZXR1cm4gaTsKKyAgfQorCisgLyogPHNnbWw+IENhcnJ5IG91dCBkaXZpc2lvbiBvcGVyYXRpb25zLiA8L3NnbWw+ICovCisgLyoKKyAgICBBcmcxIGlzIG9wZXJhdGlvbiBjb2RlOiBEPWRpdmlkZSwgST1pbnRlZ2VyIGRpdmlkZSwgUj1yZW1haW5kZXIKKyAgICBBcmcyIGlzIHRoZSByaHMuCisgICAgQXJnMyBpcyB0aGUgY29udGV4dC4KKyAgICBBcmc0IGlzIGV4cGxpY2l0IHNjYWxlIGlmZiBjb2RlPSdEJyBvciAnSScgKC0xIGlmIG5vbmUpLgorIAorICAgIFVuZGVybHlpbmcgYWxnb3JpdGhtIChjb21wbGljYXRpb25zIGZvciBSZW1haW5kZXIgZnVuY3Rpb24gYW5kCisgICAgc2NhbGVkIGRpdmlzaW9uIGFyZSBvbWl0dGVkIGZvciBjbGFyaXR5KToKKyAKKyAgICAgIFRlc3QgZm9yIHgvMCBhbmQgdGhlbiAwL3gKKyAgICAgIEV4cCA9RXhwMSAtIEV4cDIKKyAgICAgIEV4cCA9RXhwICtsZW4odmFyMSkgLWxlbih2YXIyKQorICAgICAgU2lnbj1TaWduMSAqIFNpZ24yCisgICAgICBQYWQgYWNjdW11bGF0b3IgKFZhcjEpIHRvIGRvdWJsZS1sZW5ndGggd2l0aCAwJ3MgKHBhZDEpCisgICAgICBQYWQgVmFyMiB0byBzYW1lIGxlbmd0aCBhcyBWYXIxCisgICAgICBCMkI9MXN0IHR3byBkaWdpdHMgb2YgdmFyMiwgKzEgdG8gYWxsb3cgZm9yIHJvdW5kdXAKKyAgICAgIGhhdmU9MAorICAgICAgRG8gdW50aWwgKGhhdmU9ZGlnaXRzKzEgT1IgcmVzaWR1ZT0wKQorICAgICAgICBpZiBleHA8MCB0aGVuIGlmIGludGVnZXIgZGl2aWRlL3Jlc2lkdWUgdGhlbiBsZWF2ZQorICAgICAgICB0aGlzX2RpZ2l0PTAKKyAgICAgICAgRG8gZm9yZXZlcgorICAgICAgICAgICBjb21wYXJlIG51bWJlcnMKKyAgICAgICAgICAgaWYgPDAgdGhlbiBsZWF2ZSBpbm5lcl9sb29wCisgICAgICAgICAgIGlmID0wIHRoZW4gKC0gcXVpY2sgZXhpdCB3aXRob3V0IHN1YnRyYWN0IC0pIGRvCisgICAgICAgICAgICAgIHRoaXNfZGlnaXQ9dGhpc19kaWdpdCsxOyBvdXRwdXQgdGhpc19kaWdpdAorICAgICAgICAgICAgICBsZWF2ZSBvdXRlcl9sb29wOyBlbmQKKyAgICAgICAgICAgQ29tcGFyZSBsZW5ndGhzIG9mIG51bWJlcnMgKG1hbnRpc3NhZSk6CisgICAgICAgICAgIElmIHNhbWUgdGhlbiBDQT1maXJzdF9kaWdpdF9vZl9WYXIxCisgICAgICAgICAgICAgICAgICAgZWxzZSBDQT1maXJzdF90d29fZGlnaXRzX29mX1ZhcjEKKyAgICAgICAgICAgbXVsdD1jYSoxMC9iMmIgICAtLSBHb29kIGFuZCBzYWZlIGd1ZXNzIGF0IGRpdmlzb3IKKyAgICAgICAgICAgaWYgbXVsdD0wIHRoZW4gbXVsdD0xCisgICAgICAgICAgIHRoaXNfZGlnaXQ9dGhpc19kaWdpdCttdWx0CisgICAgICAgICAgIHN1YnRyYWN0CisgICAgICAgICAgIGVuZCBpbm5lcl9sb29wCisgICAgICAgICBpZiBoYXZlXD0wIHwgdGhpc19kaWdpdFw9MCB0aGVuIGRvCisgICAgICAgICAgIG91dHB1dCB0aGlzX2RpZ2l0CisgICAgICAgICAgIGhhdmU9aGF2ZSsxOyBlbmQKKyAgICAgICAgIHZhcjI9dmFyMi8xMAorICAgICAgICAgZXhwPWV4cC0xCisgICAgICAgICBlbmQgb3V0ZXJfbG9vcAorICAgICAgZXhwPWV4cCsxICAgLS0gc2V0IHRoZSBwcm9wZXIgZXhwb25lbnQKKyAgICAgIGlmIGhhdmU9MCB0aGVuIGdlbmVyYXRlIGFuc3dlcj0wCisgICAgICBSZXR1cm4gdG8gRklOSVNIRUQKKyAgICAgIFJlc3VsdCBkZWZpbmVkIGJ5IE1BVEhWMQorIAorICAgIEZvciBleHRlbmRlZCBjb21tZW50YXJ5LCBzZWUgRE1TUkNOLgorICAqLworIAorIHByaXZhdGUgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRvZGl2aWRlKGNoYXIgY29kZSxjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0LGludCBzY2FsZSl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCByZXFkaWc7CisgIGludCBuZXdleHA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGludCBuZXdsZW47CisgIGJ5dGUgdmFyMVtdOworICBpbnQgdmFyMWxlbjsKKyAgYnl0ZSB2YXIyW107CisgIGludCB2YXIybGVuOworICBpbnQgYjJiOworICBpbnQgaGF2ZTsKKyAgaW50IHRoaXNkaWdpdD0wOworICBpbnQgaT0wOworICBieXRlIHYyPTA7CisgIGludCBiYT0wOworICBpbnQgbXVsdD0wOworICBpbnQgc3RhcnQ9MDsKKyAgaW50IHBhZGRpbmc9MDsKKyAgaW50IGQ9MDsKKyAgYnl0ZSBuZXd2YXIxW109bnVsbDsKKyAgYnl0ZSBsYXN0aGF2ZT0wOworICBpbnQgYWN0ZGlnPTA7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIAorICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBsaHM9dGhpczsgLy8gbmFtZSBmb3IgY2xhcml0eQorICAKKyAgLy8gW25vdGUgd2UgbXVzdCBoYXZlIGNoZWNrZWQgbG9zdERpZ2l0cyBiZWZvcmUgdGhlIGZvbGxvd2luZyBjaGVja3NdCisgIGlmIChyaHMuaW5kPT0wKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRGl2aWRlIGJ5IDAiKTsgLy8gaW5jbHVkZXMgMC8wCisgIGlmIChsaHMuaW5kPT0wKSAKKyAgIHsgLy8gMC94ID0+IDAgW3Bvc3NpYmx5IHdpdGggLjBzXQorICAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgIHJldHVybiBaRVJPOworICAgIGlmIChzY2FsZT09KC0xKSkgCisgICAgIHJldHVybiBsaHM7CisgICAgcmV0dXJuIGxocy5zZXRTY2FsZShzY2FsZSk7CisgICB9CisgIAorICAvKiBQcmVwYXJlIG51bWJlcnMgYWNjb3JkaW5nIHRvIEJpZ0RlY2ltYWwgcnVsZXMgKi8KKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkgKGhlYXZpbHkgdXNlZCkKKyAgaWYgKHJlcWRpZz4wKSAKKyAgIHsKKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgaWYgKHJocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICByaHM9Y2xvbmUocmhzKS5yb3VuZChzZXQpOworICAgfQorICBlbHNlIAorICAgey8qIHNjYWxlZCBkaXZpZGUgKi8KKyAgICBpZiAoc2NhbGU9PSgtMSkpIAorICAgICBzY2FsZT1saHMuc2NhbGUoKTsKKyAgICAvLyBzZXQgcmVxZGlnIHRvIGJlIGF0IGxlYXN0IGxhcmdlIGVub3VnaCBmb3IgdGhlIGNvbXB1dGF0aW9uCisgICAgcmVxZGlnPWxocy5tYW50Lmxlbmd0aDsgLy8gYmFzZSBsZW5ndGgKKyAgICAvLyBuZXh0IGxpbmUgaGFuZGxlcyBib3RoIHBvc2l0aXZlIGxocy5leHAgYW5kIGFsc28gc2NhbGUgbWlzbWF0Y2gKKyAgICBpZiAoc2NhbGUhPSgoaW50KS1saHMuZXhwKSkgCisgICAgIHJlcWRpZz0ocmVxZGlnK3NjYWxlKStsaHMuZXhwOworICAgIHJlcWRpZz0ocmVxZGlnLSgocmhzLm1hbnQubGVuZ3RoLTEpKSktcmhzLmV4cDsgLy8gcmVkdWNlIGJ5IFJIUyBlZmZlY3QKKyAgICBpZiAocmVxZGlnPGxocy5tYW50Lmxlbmd0aCkgCisgICAgIHJlcWRpZz1saHMubWFudC5sZW5ndGg7IC8vIGNsYW1wCisgICAgaWYgKHJlcWRpZzxyaHMubWFudC5sZW5ndGgpIAorICAgICByZXFkaWc9cmhzLm1hbnQubGVuZ3RoOyAvLyAuLgorICAgfQorICAKKyAgLyogcHJlY2FsY3VsYXRlIGV4cG9uZW50ICovCisgIG5ld2V4cD0oKGxocy5leHAtcmhzLmV4cCkrbGhzLm1hbnQubGVuZ3RoKS1yaHMubWFudC5sZW5ndGg7CisgIC8qIElmIG5ldyBleHBvbmVudCAtdmUsIHRoZW4gc29tZSBxdWljayBleGl0cyBhcmUgcG9zc2libGUgKi8KKyAgaWYgKG5ld2V4cDwwKSAKKyAgIGlmIChjb2RlIT0nRCcpIAorICAgIHsKKyAgICAgaWYgKGNvZGU9PSdJJykgCisgICAgICByZXR1cm4gWkVSTzsgLy8gZWFzeSAtIG5vIGludGVnZXIgcGFydAorICAgICAvKiBNdXN0IGJlICdSJzsgcmVtYWluZGVyIGlzIFtmaW5pc2hlZCBjbG9uZSBvZl0gaW5wdXQgdmFsdWUgKi8KKyAgICAgcmV0dXJuIGNsb25lKGxocykuZmluaXNoKHNldCxmYWxzZSk7CisgICAgfQorICAKKyAgLyogV2UgbmVlZCBzbG93IGRpdmlzaW9uICovCisgIHJlcz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCk7IC8vIHdoZXJlIHdlJ2xsIGJ1aWxkIHJlc3VsdAorICByZXMuaW5kPShieXRlKShsaHMuaW5kKnJocy5pbmQpOyAvLyBmaW5hbCBzaWduIChmb3IgRC9JKQorICByZXMuZXhwPW5ld2V4cDsgLy8gaW5pdGlhbCBleHBvbmVudCAoZm9yIEQvSSkKKyAgcmVzLm1hbnQ9bmV3IGJ5dGVbcmVxZGlnKzFdOyAvLyB3aGVyZSBidWlsZCB0aGUgcmVzdWx0CisgIAorICAvKiBOb3cgW3ZpcnR1YWxseSBwYWQgdGhlIG1hbnRpc3NhZSB3aXRoIHRyYWlsaW5nIHplcm9zICovCisgIC8vIEFsc28gY29weSB0aGUgTEhTLCB3aGljaCB3aWxsIGJlIG91ciB3b3JraW5nIGFycmF5CisgIG5ld2xlbj0ocmVxZGlnK3JlcWRpZykrMTsKKyAgdmFyMT1leHRlbmQobGhzLm1hbnQsbmV3bGVuKTsgLy8gYWx3YXlzIG1ha2VzIGxvbmdlciwgc28gbmV3IHNhZmUgYXJyYXkKKyAgdmFyMWxlbj1uZXdsZW47IC8vIFtyZW1haW5pbmcgZGlnaXRzIGFyZSAwXQorICAKKyAgdmFyMj1yaHMubWFudDsKKyAgdmFyMmxlbj1uZXdsZW47CisgIAorICAvKiBDYWxjdWxhdGUgZmlyc3QgdHdvIGRpZ2l0cyBvZiByaHMgKHZhcjIpLCArMSBmb3IgbGF0ZXIgZXN0aW1hdGlvbnMgKi8KKyAgYjJiPSh2YXIyWzBdKjEwKSsxOworICBpZiAodmFyMi5sZW5ndGg+MSkgCisgICBiMmI9YjJiK3ZhcjJbMV07CisgIAorICAvKiBzdGFydCB0aGUgbG9uZy1kaXZpc2lvbiBsb29wcyAqLworICBoYXZlPTA7CisgIHtvdXRlcjpmb3IoOzspeworICAgdGhpc2RpZ2l0PTA7CisgICAvKiBmaW5kIHRoZSBuZXh0IGRpZ2l0ICovCisgICB7aW5uZXI6Zm9yKDs7KXsKKyAgICBpZiAodmFyMWxlbjx2YXIybGVuKSAKKyAgICAgYnJlYWsgaW5uZXI7IC8vIFYxIHRvbyBsb3cKKyAgICBpZiAodmFyMWxlbj09dmFyMmxlbikgCisgICAgIHsgLy8gY29tcGFyZSBuZWVkZWQKKyAgICAgIHtjb21wYXJlOmRveyAvLyBjb21wYXJpc29uCisgICAgICAge2ludCAkMjI9dmFyMWxlbjtpPTA7aTpmb3IoOyQyMj4wOyQyMi0tLGkrKyl7CisgICAgICAgIC8vIHZhcjFsZW4gaXMgYWx3YXlzIDw9IHZhcjEubGVuZ3RoCisgICAgICAgIGlmIChpPHZhcjIubGVuZ3RoKSAKKyAgICAgICAgIHYyPXZhcjJbaV07CisgICAgICAgIGVsc2UgCisgICAgICAgICB2Mj0oYnl0ZSkwOworICAgICAgICBpZiAodmFyMVtpXTx2MikgCisgICAgICAgICBicmVhayBpbm5lcjsgLy8gVjEgdG9vIGxvdworICAgICAgICBpZiAodmFyMVtpXT52MikgCisgICAgICAgICBicmVhayBjb21wYXJlOyAvLyBPSyB0byBzdWJ0cmFjdAorICAgICAgICB9CisgICAgICAgfS8qaSovCisgICAgICAgLyogcmVhY2ggaGVyZSBpZiBsaHMgYW5kIHJocyBhcmUgaWRlbnRpY2FsOyBzdWJ0cmFjdGlvbiB3aWxsCisgICAgICAgICAgaW5jcmVhc2UgZGlnaXQgYnkgb25lLCBhbmQgdGhlIHJlc2lkdWUgd2lsbCBiZSAwIHNvIHdlCisgICAgICAgICAgYXJlIGRvbmU7IGxlYXZlIHRoZSBsb29wIHdpdGggcmVzaWR1ZSBzZXQgdG8gMCAoaW4gY2FzZQorICAgICAgICAgIGNvZGUgaXMgJ1InIG9yIFJPVU5EX1VOTkVDRVNTQVJZIG9yIGEgUk9VTkRfSEFMRl94eHh4IGlzCisgICAgICAgICAgYmVpbmcgY2hlY2tlZCkgKi8KKyAgICAgICB0aGlzZGlnaXQrKzsKKyAgICAgICByZXMubWFudFtoYXZlXT0oYnl0ZSl0aGlzZGlnaXQ7CisgICAgICAgaGF2ZSsrOworICAgICAgIHZhcjFbMF09KGJ5dGUpMDsgLy8gcmVzaWR1ZSB0byAwIFt0aGlzIGlzIGFsbCB3ZSdsbCB0ZXN0XQorICAgICAgIC8vIHZhcjFsZW49MSAgICAgIC0tIFtvcHRpbWl6ZWQgb3V0XQorICAgICAgIGJyZWFrIG91dGVyOworICAgICAgfXdoaWxlKGZhbHNlKTt9Lypjb21wYXJlKi8KKyAgICAgIC8qIHByZXBhcmUgZm9yIHN1YnRyYWN0aW9uLiAgRXN0aW1hdGUgQkEgKGxlbmd0aHMgdGhlIHNhbWUpICovCisgICAgICBiYT0oaW50KXZhcjFbMF07IC8vIHVzZSBvbmx5IGZpcnN0IGRpZ2l0CisgICAgIH0gLy8gbGVuZ3RocyB0aGUgc2FtZQorICAgIGVsc2UgCisgICAgIHsvKiBsaHMgbG9uZ2VyIHRoYW4gcmhzICovCisgICAgICAvKiB1c2UgZmlyc3QgdHdvIGRpZ2l0cyBmb3IgZXN0aW1hdGUgKi8KKyAgICAgIGJhPXZhcjFbMF0qMTA7CisgICAgICBpZiAodmFyMWxlbj4xKSAKKyAgICAgICBiYT1iYSt2YXIxWzFdOworICAgICB9CisgICAgLyogc3VidHJhY3Rpb24gbmVlZGVkOyBWMT49VjIgKi8KKyAgICBtdWx0PShiYSoxMCkvYjJiOworICAgIGlmIChtdWx0PT0wKSAKKyAgICAgbXVsdD0xOworICAgIHRoaXNkaWdpdD10aGlzZGlnaXQrbXVsdDsKKyAgICAvLyBzdWJ0cmFjdDsgdmFyMSByZXVzYWJsZQorICAgIHZhcjE9Ynl0ZWFkZHN1Yih2YXIxLHZhcjFsZW4sdmFyMix2YXIybGVuLChpbnQpLW11bHQsdHJ1ZSk7CisgICAgaWYgKHZhcjFbMF0hPTApIAorICAgICBjb250aW51ZSBpbm5lcjsgLy8gbWF5YmUgYW5vdGhlciBzdWJ0cmFjdCBuZWVkZWQKKyAgICAvKiBWMSBub3cgcHJvYmFibHkgaGFzIGxlYWRpbmcgemVyb3MsIHJlbW92ZSBsZWFkaW5nIDAncyBhbmQgdHJ5CisgICAgICAgYWdhaW4uIChJdCBjb3VsZCBiZSBsb25nZXIgdGhhbiBWMikgKi8KKyAgICB7aW50ICQyMz12YXIxbGVuLTI7c3RhcnQ9MDtzdGFydDpmb3IoO3N0YXJ0PD0kMjM7c3RhcnQrKyl7CisgICAgIGlmICh2YXIxW3N0YXJ0XSE9MCkgCisgICAgICBicmVhayBzdGFydDsKKyAgICAgdmFyMWxlbi0tOworICAgICB9CisgICAgfS8qc3RhcnQqLworICAgIGlmIChzdGFydD09MCkgCisgICAgIGNvbnRpbnVlIGlubmVyOworICAgIC8vIHNoaWZ0IGxlZnQKKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCl2YXIxLHN0YXJ0LChqYXZhLmxhbmcuT2JqZWN0KXZhcjEsMCx2YXIxbGVuKTsKKyAgICB9CisgICB9Lyppbm5lciovCisgICAKKyAgIC8qIFdlIGhhdmUgdGhlIG5leHQgZGlnaXQgKi8KKyAgIGlmICgoaGF2ZSE9MCl8KHRoaXNkaWdpdCE9MCkpIAorICAgIHsgLy8gcHV0IHRoZSBkaWdpdCB3ZSBnb3QKKyAgICAgcmVzLm1hbnRbaGF2ZV09KGJ5dGUpdGhpc2RpZ2l0OworICAgICBoYXZlKys7CisgICAgIGlmIChoYXZlPT0ocmVxZGlnKzEpKSAKKyAgICAgIGJyZWFrIG91dGVyOyAvLyB3ZSBoYXZlIGFsbCB3ZSBuZWVkCisgICAgIGlmICh2YXIxWzBdPT0wKSAKKyAgICAgIGJyZWFrIG91dGVyOyAvLyByZXNpZHVlIG5vdyAwCisgICAgfQorICAgLyogY2FuIGxlYXZlIG5vdyBpZiBhIHNjYWxlZCBkaXZpZGUgYW5kIGV4cG9uZW50IGlzIHNtYWxsIGVub3VnaCAqLworICAgaWYgKHNjYWxlPj0wKSAKKyAgICBpZiAoKChpbnQpLXJlcy5leHApPnNjYWxlKSAKKyAgICAgYnJlYWsgb3V0ZXI7CisgICAvKiBjYW4gbGVhdmUgbm93IGlmIG5vdCBEaXZpZGUgYW5kIG5vIGludGVnZXIgcGFydCBsZWZ0ICAqLworICAgaWYgKGNvZGUhPSdEJykgCisgICAgaWYgKHJlcy5leHA8PTApIAorICAgICBicmVhayBvdXRlcjsKKyAgIHJlcy5leHA9cmVzLmV4cC0xOyAvLyByZWR1Y2UgdGhlIGV4cG9uZW50CisgICAvKiB0byBnZXQgaGVyZSwgVjEgaXMgbGVzcyB0aGFuIFYyLCBzbyBkaXZpZGUgVjIgYnkgMTAgYW5kIGdvIGZvcgorICAgICAgdGhlIG5leHQgZGlnaXQgKi8KKyAgIHZhcjJsZW4tLTsKKyAgIH0KKyAgfS8qb3V0ZXIqLworICAKKyAgLyogaGVyZSB3aGVuIHdlIGhhdmUgZmluaXNoZWQgZGl2aWRpbmcsIGZvciBzb21lIHJlYXNvbiAqLworICAvLyBoYXZlIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIHdlIGNvbGxlY3RlZCBpbiByZXMubWFudAorICBpZiAoaGF2ZT09MCkgCisgICBoYXZlPTE7IC8vIHJlcy5tYW50WzBdIGlzIDA7IHdlIGFsd2F5cyB3YW50IGEgZGlnaXQKKyAgCisgIGlmICgoY29kZT09J0knKXwoY29kZT09J1InKSkgCisgICB7LyogY2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgbmVlZGVkICovCisgICAgaWYgKChoYXZlK3Jlcy5leHApPnJlcWRpZykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiSW50ZWdlciBvdmVyZmxvdyIpOworICAgIAorICAgIGlmIChjb2RlPT0nUicpIAorICAgICB7cmVtYWluZGVyOmRveworICAgICAgLyogV2Ugd2VyZSBkb2luZyBSZW1haW5kZXIgLS0gcmV0dXJuIHRoZSByZXNpZHVlICovCisgICAgICBpZiAocmVzLm1hbnRbMF09PTApICAvLyBubyBpbnRlZ2VyIHBhcnQgd2FzIGZvdW5kCisgICAgICAgcmV0dXJuIGNsb25lKGxocykuZmluaXNoKHNldCxmYWxzZSk7IC8vIC4uIHNvIHJldHVybiBsaHMsIGNhbm9uaWNhbAorICAgICAgaWYgKHZhcjFbMF09PTApIAorICAgICAgIHJldHVybiBaRVJPOyAvLyBzaW1wbGUgMCByZXNpZHVlCisgICAgICByZXMuaW5kPWxocy5pbmQ7IC8vIHNpZ24gaXMgYWx3YXlzIGFzIExIUworICAgICAgLyogQ2FsY3VsYXRlIHRoZSBleHBvbmVudCBieSBzdWJ0cmFjdGluZyB0aGUgbnVtYmVyIG9mIHBhZGRpbmcgemVyb3MKKyAgICAgICAgIHdlIGFkZGVkIGFuZCBhZGRpbmcgdGhlIG9yaWdpbmFsIGV4cG9uZW50ICovCisgICAgICBwYWRkaW5nPSgocmVxZGlnK3JlcWRpZykrMSktbGhzLm1hbnQubGVuZ3RoOworICAgICAgcmVzLmV4cD0ocmVzLmV4cC1wYWRkaW5nKStsaHMuZXhwOworICAgICAgCisgICAgICAvKiBzdHJpcCBpbnNpZ25pZmljYW50IHBhZGRpbmcgemVyb3MgZnJvbSByZXNpZHVlLCBhbmQgY3JlYXRlL2NvcHkKKyAgICAgICAgIHRoZSByZXN1bHRpbmcgbWFudGlzc2EgaWYgbmVlZCBiZSAqLworICAgICAgZD12YXIxbGVuOworICAgICAge2k9ZC0xO2k6Zm9yKDtpPj0xO2ktLSl7aWYoISgocmVzLmV4cDxsaHMuZXhwKSYocmVzLmV4cDxyaHMuZXhwKSkpYnJlYWs7CisgICAgICAgaWYgKHZhcjFbaV0hPTApIAorICAgICAgICBicmVhayBpOworICAgICAgIGQtLTsKKyAgICAgICByZXMuZXhwPXJlcy5leHArMTsKKyAgICAgICB9CisgICAgICB9LyppKi8KKyAgICAgIGlmIChkPHZhcjEubGVuZ3RoKSAKKyAgICAgICB7LyogbmVlZCB0byByZWR1Y2UgKi8KKyAgICAgICAgbmV3dmFyMT1uZXcgYnl0ZVtkXTsKKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdmFyMSwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld3ZhcjEsMCxkKTsgLy8gc2hvcnRlbgorICAgICAgICB2YXIxPW5ld3ZhcjE7CisgICAgICAgfQorICAgICAgcmVzLm1hbnQ9dmFyMTsKKyAgICAgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgICAgIH13aGlsZShmYWxzZSk7fS8qcmVtYWluZGVyKi8KKyAgIH0KKyAgIAorICBlbHNlIAorICAgey8qICdEJyAtLSBubyBvdmVyZmxvdyBjaGVjayBuZWVkZWQgKi8KKyAgICAvLyBJZiB0aGVyZSB3YXMgYSByZXNpZHVlIHRoZW4gYnVtcCB0aGUgZmluYWwgZGlnaXQgKGlmZiAwIG9yIDUpCisgICAgLy8gc28gdGhhdCB0aGUgcmVzaWR1ZSBpcyB2aXNpYmxlIGZvciBST1VORF9VUCwgUk9VTkRfSEFMRl94eHggYW5kCisgICAgLy8gUk9VTkRfVU5ORUNFU1NBUlkgY2hlY2tzIChldGMuKSBsYXRlci4KKyAgICAvLyBbaWYgd2UgZmluaXNoZWQgZWFybHksIHRoZSByZXNpZHVlIHdpbGwgYmUgMF0KKyAgICBpZiAodmFyMVswXSE9MCkgCisgICAgIHsgLy8gcmVzaWR1ZSBub3QgMAorICAgICAgbGFzdGhhdmU9cmVzLm1hbnRbaGF2ZS0xXTsKKyAgICAgIGlmICgoKGxhc3RoYXZlJTUpKT09MCkgCisgICAgICAgcmVzLm1hbnRbaGF2ZS0xXT0oYnl0ZSkobGFzdGhhdmUrMSk7CisgICAgIH0KKyAgIH0KKyAgCisgIC8qIEhlcmUgZm9yIERpdmlkZSBvciBJbnRlZ2VyIERpdmlkZSAqLworICAvLyBoYW5kbGUgc2NhbGVkIHJlc3VsdHMgZmlyc3QgWydJJyBhbHdheXMgc2NhbGUgMCwgb3B0aW9uYWwgZm9yICdEJ10KKyAgaWYgKHNjYWxlPj0wKSAKKyAgIHtzY2FsZWQ6ZG97CisgICAgLy8gc2F5ICdzY2FsZSBoYXZlIHJlcy5leHAgbGVuJyBzY2FsZSBoYXZlIHJlcy5leHAgcmVzLm1hbnQubGVuZ3RoCisgICAgaWYgKGhhdmUhPXJlcy5tYW50Lmxlbmd0aCkgCisgICAgIC8vIGFscmVhZHkgcGFkZGVkIHdpdGggMCdzLCBzbyBqdXN0IGFkanVzdCBleHBvbmVudAorICAgICByZXMuZXhwPXJlcy5leHAtKChyZXMubWFudC5sZW5ndGgtaGF2ZSkpOworICAgIC8vIGNhbGN1bGF0ZSBudW1iZXIgb2YgZGlnaXRzIHdlIHJlYWxseSB3YW50IFttYXkgYmUgMF0KKyAgICBhY3RkaWc9cmVzLm1hbnQubGVuZ3RoLSgoKChpbnQpLXJlcy5leHApLXNjYWxlKSk7CisgICAgcmVzLnJvdW5kKGFjdGRpZyxzZXQucm91bmRpbmdNb2RlKTsgLy8gcm91bmQgdG8gZGVzaXJlZCBsZW5ndGgKKyAgICAvLyBUaGlzIGNvdWxkIGhhdmUgc2hpZnRlZCBsZWZ0IGlmIHJvdW5kIChzYXkpIDAuOS0+MVsuMF0KKyAgICAvLyBSZXBhaXIgaWYgc28gYnkgYWRkaW5nIGEgemVybyBhbmQgcmVkdWNpbmcgZXhwb25lbnQKKyAgICBpZiAocmVzLmV4cCE9KChpbnQpLXNjYWxlKSkgCisgICAgIHsKKyAgICAgIHJlcy5tYW50PWV4dGVuZChyZXMubWFudCxyZXMubWFudC5sZW5ndGgrMSk7CisgICAgICByZXMuZXhwPXJlcy5leHAtMTsKKyAgICAgfQorICAgIHJldHVybiByZXMuZmluaXNoKHNldCx0cnVlKTsgLy8gW3N0cmlwIGlmIG5vdCBQTEFJTl0KKyAgIH13aGlsZShmYWxzZSk7fS8qc2NhbGVkKi8KKyAgCisgIC8vIHJlYWNoIGhlcmUgb25seSBpZiBhIG5vbi1zY2FsZWQKKyAgaWYgKGhhdmU9PXJlcy5tYW50Lmxlbmd0aCkgCisgICB7IC8vIGdvdCBkaWdpdHMrMSBkaWdpdHMKKyAgICByZXMucm91bmQoc2V0KTsKKyAgICBoYXZlPXJlcWRpZzsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBoYXZlPD1yZXFkaWcgKi8KKyAgICBpZiAocmVzLm1hbnRbMF09PTApIAorICAgICByZXR1cm4gWkVSTzsgLy8gZmFzdHBhdGgKKyAgICAvLyBtYWtlIHRoZSBtYW50aXNzYSB0cnVseSBqdXN0ICdoYXZlJyBsb25nCisgICAgLy8gW3dlIGNvdWxkIGxldCBmaW5pc2ggZG8gdGhpcywgZHVyaW5nIHN0cmlwLCBpZiB3ZSBhZGp1c3RlZAorICAgIC8vIHRoZSBleHBvbmVudDsgaG93ZXZlciwgdHJ1bmNhdGlvbiBhdm9pZHMgdGhlIHN0cmlwIGxvb3BdCisgICAgbmV3bWFudD1uZXcgYnl0ZVtoYXZlXTsgLy8gc2hvcnRlbgorICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXJlcy5tYW50LDAsKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLGhhdmUpOworICAgIHJlcy5tYW50PW5ld21hbnQ7CisgICB9CisgIHJldHVybiByZXMuZmluaXNoKHNldCx0cnVlKTsKKyAgfQorCisgCisgLyogPHNnbWw+IFJlcG9ydCBhIGNvbnZlcnNpb24gZXhjZXB0aW9uLiA8L3NnbWw+ICovCisgCisgcHJpdmF0ZSB2b2lkIGJhZChjaGFyIHNbXSl7CisgIHRocm93IG5ldyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uKCJOb3QgYSBudW1iZXI6IisiICIramF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKHMpKTsKKyAgfQorCisgLyogPHNnbWw+IFJlcG9ydCBhIGJhZCBhcmd1bWVudCB0byBhIG1ldGhvZC4gPC9zZ21sPgorICAgIEFyZzEgaXMgbWV0aG9kIG5hbWUKKyAgICBBcmcyIGlzIGFyZ3VtZW50IHBvc2l0aW9uCisgICAgQXJnMyBpcyB3aGF0IHdhcyBmb3VuZCAqLworIAorIHByaXZhdGUgdm9pZCBiYWRhcmcoamF2YS5sYW5nLlN0cmluZyBuYW1lLGludCBwb3MsamF2YS5sYW5nLlN0cmluZyB2YWx1ZSl7CisgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgYXJndW1lbnQiKyIgIitwb3MrIiAiKyJ0byIrIiAiK25hbWUrIjoiKyIgIit2YWx1ZSk7CisgIH0KKworIC8qIDxzZ21sPiBFeHRlbmQgYnl0ZSBhcnJheSB0byBnaXZlbiBsZW5ndGgsIHBhZGRpbmcgd2l0aCAwcy4gIElmIG5vCisgICAgZXh0ZW5zaW9uIGlzIHJlcXVpcmVkIHRoZW4gcmV0dXJuIHRoZSBzYW1lIGFycmF5LiA8L3NnbWw+CisgCisgICAgQXJnMSBpcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkKKyAgICBBcmcyIGlzIHRoZSBuZXcgbGVuZ3RoIChsb25nZXIpCisgICAgKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gZXh0ZW5kKGJ5dGUgaW5hcnJbXSxpbnQgbmV3bGVuKXsKKyAgYnl0ZSBuZXdhcnJbXTsKKyAgaWYgKGluYXJyLmxlbmd0aD09bmV3bGVuKSAKKyAgIHJldHVybiBpbmFycjsKKyAgbmV3YXJyPW5ldyBieXRlW25ld2xlbl07CisgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWluYXJyLDAsKGphdmEubGFuZy5PYmplY3QpbmV3YXJyLDAsaW5hcnIubGVuZ3RoKTsKKyAgLy8gMCBwYWRkaW5nIGlzIGNhcnJpZWQgb3V0IGJ5IHRoZSBKVk0gb24gYWxsb2NhdGlvbiBpbml0aWFsaXphdGlvbgorICByZXR1cm4gbmV3YXJyOworICB9CisKKyAvKiA8c2dtbD4gQWRkIG9yIHN1YnRyYWN0IHR3byA+PTAgaW50ZWdlcnMgaW4gYnl0ZSBhcnJheXMKKyAgICA8cD5UaGlzIHJvdXRpbmUgcGVyZm9ybXMgdGhlIGNhbGN1bGF0aW9uOgorICAgIDxwcmU+CisgICAgQz1BKyhCKk0pCisgICAgPC9wcmU+CisgICAgV2hlcmUgTSBpcyBpbiB0aGUgcmFuZ2UgLTkgdGhyb3VnaCArOQorICAgIDxwPgorICAgIElmIE08MCB0aGVuIEE+PUIgbXVzdCBiZSB0cnVlLCBzbyB0aGUgcmVzdWx0IGlzIGFsd2F5cworICAgIG5vbi1uZWdhdGl2ZS4KKyAKKyAgICBMZWFkaW5nIHplcm9zIGFyZSBub3QgcmVtb3ZlZCBhZnRlciBhIHN1YnRyYWN0aW9uLiAgVGhlIHJlc3VsdCBpcworICAgIGVpdGhlciB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIGxvbmdlciBvZiBBIGFuZCBCLCBvciAxIGxvbmdlciB0aGFuCisgICAgdGhhdCAoaWYgYSBjYXJyeSBvY2N1cnJlZCkuCisgCisgICAgQSBpcyBub3QgYWx0ZXJlZCB1bmxlc3MgQXJnNiBpcyAxLgorICAgIEIgaXMgbmV2ZXIgYWx0ZXJlZC4KKyAKKyAgICBBcmcxIGlzIEEKKyAgICBBcmcyIGlzIEEgbGVuZ3RoIHRvIHVzZSAoaWYgbG9uZ2VyIHRoYW4gQSwgcGFkIHdpdGggMCdzKQorICAgIEFyZzMgaXMgQgorICAgIEFyZzQgaXMgQiBsZW5ndGggdG8gdXNlIChpZiBsb25nZXIgdGhhbiBCLCBwYWQgd2l0aCAwJ3MpCisgICAgQXJnNSBpcyBNLCB0aGUgbXVsdGlwbGllcgorICAgIEFyZzYgaXMgMSBpZiBBIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIHRoZSByZXN1bHQgKGlmIGl0IGZpdHMpCisgCisgICAgVGhpcyByb3V0aW5lIGlzIHNldmVyZWx5IHBlcmZvcm1hbmNlLWNyaXRpY2FsOyAqYW55KiBjaGFuZ2UgaGVyZQorICAgIG11c3QgYmUgbWVhc3VyZWQgKHRpbWVkKSB0byBhc3N1cmUgbm8gcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uCisgICAgKi8KKyAvLyAxOTk2LjAyLjIwIC0tIGVuaGFuY2VkIHZlcnNpb24gb2YgRE1TUkNOIGFsZ29yaXRobSAoMTk4MSkKKyAvLyAxOTk3LjEwLjA1IC0tIGNoYW5nZWQgdG8gYnl0ZSBhcnJheXMgKGZyb20gY2hhciBhcnJheXMpCisgLy8gMTk5OC4wNy4wMSAtLSBjaGFuZ2VkIHRvIGFsbG93IGRlc3RydWN0aXZlIHJldXNlIG9mIExIUworIC8vIDE5OTguMDcuMDEgLS0gY2hhbmdlZCB0byBhbGxvdyB2aXJ0dWFsIGxlbmd0aHMgZm9yIHRoZSBhcnJheXMKKyAvLyAxOTk4LjEyLjI5IC0tIHVzZSBsb29rYXNpZGUgZm9yIGRpZ2l0L2NhcnJ5IGNhbGN1bGF0aW9uCisgLy8gMTk5OS4wOC4wNyAtLSBhdm9pZCBtdWx0aXBseSB3aGVuIG11bHQ9MSwgYW5kIG1ha2UgZGIgYW4gaW50CisgLy8gMTk5OS4xMi4yMiAtLSBzcGVjaWFsIGNhc2UgbT0tMSwgYWxzbyBkcm9wIDAgc3BlY2lhbCBjYXNlCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGJ5dGVhZGRzdWIoYnl0ZSBhW10saW50IGF2bGVuLGJ5dGUgYltdLGludCBidmxlbixpbnQgbSxib29sZWFuIHJldXNlKXsKKyAgaW50IGFsZW5ndGg7CisgIGludCBibGVuZ3RoOworICBpbnQgYXA7CisgIGludCBicDsKKyAgaW50IG1heGFycjsKKyAgYnl0ZSByZWJbXTsKKyAgYm9vbGVhbiBxdWlja207CisgIGludCBkaWdpdDsKKyAgaW50IG9wPTA7CisgIGludCBkcDkwPTA7CisgIGJ5dGUgbmV3YXJyW107CisgIGludCBpPTA7CisgIAorICAKKyAgCisgIAorICAvLyBXZSdsbCB1c3VhbGx5IGJlIHJpZ2h0IGlmIHdlIGFzc3VtZSBubyBjYXJyeQorICBhbGVuZ3RoPWEubGVuZ3RoOyAvLyBwaHlzaWNhbCBsZW5ndGhzCisgIGJsZW5ndGg9Yi5sZW5ndGg7IC8vIC4uCisgIGFwPWF2bGVuLTE7IC8vIC0+IGZpbmFsIChyaWdodG1vc3QpIGRpZ2l0CisgIGJwPWJ2bGVuLTE7IC8vIC4uCisgIG1heGFycj1icDsKKyAgaWYgKG1heGFycjxhcCkgCisgICBtYXhhcnI9YXA7CisgIHJlYj0oYnl0ZVtdKW51bGw7IC8vIHJlc3VsdCBieXRlIGFycmF5CisgIGlmIChyZXVzZSkgCisgICBpZiAoKG1heGFycisxKT09YWxlbmd0aCkgCisgICAgcmViPWE7IC8vIE9LIHRvIHJldXNlIEEKKyAgaWYgKHJlYj09bnVsbCkgCisgICByZWI9bmV3IGJ5dGVbbWF4YXJyKzFdOyAvLyBuZWVkIG5ldyBhcnJheQorICAKKyAgcXVpY2ttPWZhbHNlOyAvLyAxIGlmIG5vIG11bHRpcGx5IG5lZWRlZAorICBpZiAobT09MSkgCisgICBxdWlja209dHJ1ZTsgLy8gbW9zdCBjb21tb24KKyAgZWxzZSAKKyAgIGlmIChtPT0oLTEpKSAKKyAgICBxdWlja209dHJ1ZTsgLy8gYWxzbyBjb21tb24KKyAgCisgIGRpZ2l0PTA7IC8vIGRpZ2l0LCB3aXRoIGNhcnJ5IG9yIGJvcnJvdworICB7b3A9bWF4YXJyO29wOmZvcig7b3A+PTA7b3AtLSl7CisgICBpZiAoYXA+PTApIAorICAgIHsKKyAgICAgaWYgKGFwPGFsZW5ndGgpIAorICAgICAgZGlnaXQ9ZGlnaXQrYVthcF07IC8vIHdpdGhpbiBBCisgICAgIGFwLS07CisgICAgfQorICAgaWYgKGJwPj0wKSAKKyAgICB7CisgICAgIGlmIChicDxibGVuZ3RoKSAKKyAgICAgIHsgLy8gd2l0aGluIEIKKyAgICAgICBpZiAocXVpY2ttKSAKKyAgICAgICAgeworICAgICAgICAgaWYgKG0+MCkgCisgICAgICAgICAgZGlnaXQ9ZGlnaXQrYlticF07IC8vIG1vc3QgY29tbW9uCisgICAgICAgICBlbHNlIAorICAgICAgICAgIGRpZ2l0PWRpZ2l0LWJbYnBdOyAvLyBhbHNvIGNvbW1vbgorICAgICAgICB9CisgICAgICAgZWxzZSAKKyAgICAgICAgZGlnaXQ9ZGlnaXQrKGJbYnBdKm0pOworICAgICAgfQorICAgICBicC0tOworICAgIH0KKyAgIC8qIHJlc3VsdCBzbyBmYXIgKGRpZ2l0KSBjb3VsZCBiZSAtOTAgdGhyb3VnaCA5OSAqLworICAgaWYgKGRpZ2l0PDEwKSAKKyAgICBpZiAoZGlnaXQ+PTApIAorICAgICB7cXVpY2s6ZG97IC8vIDAtOQorICAgICAgcmViW29wXT0oYnl0ZSlkaWdpdDsKKyAgICAgIGRpZ2l0PTA7IC8vIG5vIGNhcnJ5CisgICAgICBjb250aW51ZSBvcDsKKyAgICAgfXdoaWxlKGZhbHNlKTt9LypxdWljayovCisgICBkcDkwPWRpZ2l0KzkwOworICAgcmViW29wXT1ieXRlZGlnW2RwOTBdOyAvLyB0aGlzIGRpZ2l0CisgICBkaWdpdD1ieXRlY2FyW2RwOTBdOyAvLyBjYXJyeSBvciBib3Jyb3cKKyAgIH0KKyAgfS8qb3AqLworICAKKyAgaWYgKGRpZ2l0PT0wKSAKKyAgIHJldHVybiByZWI7IC8vIG5vIGNhcnJ5CisgIC8vIGZvbGxvd2luZyBsaW5lIHdpbGwgYmVjb21lIGFuIEFzc2VydCwgbGF0ZXIKKyAgLy8gaWYgZGlnaXQ8MCB0aGVuIHNpZ25hbCBBcml0aG1ldGljRXhjZXB0aW9uKCJpbnRlcm5hbC5lcnJvciBbImRpZ2l0Il0iKQorICAKKyAgLyogV2UgaGF2ZSBjYXJyeSAtLSBuZWVkIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSBleHRyYSBkaWdpdCAqLworICBuZXdhcnI9KGJ5dGVbXSludWxsOworICBpZiAocmV1c2UpIAorICAgaWYgKChtYXhhcnIrMik9PWEubGVuZ3RoKSAKKyAgICBuZXdhcnI9YTsgLy8gT0sgdG8gcmV1c2UgQQorICBpZiAobmV3YXJyPT1udWxsKSAKKyAgIG5ld2Fycj1uZXcgYnl0ZVttYXhhcnIrMl07CisgIG5ld2FyclswXT0oYnl0ZSlkaWdpdDsgLy8gdGhlIGNhcnJpZWQgZGlnaXQgLi4KKyAgLy8gLi4gYW5kIGFsbCB0aGUgcmVzdCBbdXNlIGxvY2FsIGxvb3AgZm9yIHNob3J0IG51bWJlcnNdCisgIGlmIChtYXhhcnI8MTApIAorICAge2ludCAkMjQ9bWF4YXJyKzE7aT0wO2k6Zm9yKDskMjQ+MDskMjQtLSxpKyspeworICAgIG5ld2FycltpKzFdPXJlYltpXTsKKyAgICB9CisgICB9LyppKi8KKyAgZWxzZSAKKyAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXJlYiwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2FyciwxLG1heGFycisxKTsKKyAgcmV0dXJuIG5ld2FycjsKKyAgfQorCisgLyogPHNnbWw+IEluaXRpYWxpemVyIGZvciBkaWdpdCBhcnJheSBwcm9wZXJ0aWVzIChsb29rYXNpZGUpLiA8L3NnbWw+CisgICAgUmV0dXJucyB0aGUgZGlnaXQgYXJyYXksIGFuZCBpbml0aWFsaXplcyB0aGUgY2FycnkgYXJyYXkuICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGRpZ2luaXQoKXsKKyAgYnl0ZSB3b3JrW107CisgIGludCBvcD0wOworICBpbnQgZGlnaXQ9MDsKKyAgd29yaz1uZXcgYnl0ZVsoOTArOTkpKzFdOworICB7b3A9MDtvcDpmb3IoO29wPD0oOTArOTkpO29wKyspeworICAgZGlnaXQ9b3AtOTA7CisgICBpZiAoZGlnaXQ+PTApIAorICAgIHsKKyAgICAgd29ya1tvcF09KGJ5dGUpKGRpZ2l0JTEwKTsKKyAgICAgYnl0ZWNhcltvcF09KGJ5dGUpKGRpZ2l0LzEwKTsgLy8gY2FsY3VsYXRlIGNhcnJ5CisgICAgIGNvbnRpbnVlIG9wOworICAgIH0KKyAgIC8vIGJvcnJvd2luZy4uLgorICAgZGlnaXQ9ZGlnaXQrMTAwOyAvLyB5ZXMsIHRoaXMgaXMgcmlnaHQgW2NvbnNpZGVyIC01MF0KKyAgIHdvcmtbb3BdPShieXRlKShkaWdpdCUxMCk7CisgICBieXRlY2FyW29wXT0oYnl0ZSkoKGRpZ2l0LzEwKS0xMCk7IC8vIGNhbGN1bGF0ZSBib3Jyb3cgW05COiAtIGFmdGVyICVdCisgICB9CisgIH0vKm9wKi8KKyAgcmV0dXJuIHdvcms7CisgIH0KKworIC8qIDxzZ21sPiBDcmVhdGUgYSBjb3B5IG9mIEJpZ0RlY2ltYWwgb2JqZWN0IGZvciBsb2NhbCB1c2UuCisgICAgPHA+VGhpcyBkb2VzIE5PVCBtYWtlIGEgY29weSBvZiB0aGUgbWFudGlzc2EgYXJyYXkuCisgICAgPC9zZ21sPgorICAgIEFyZzEgaXMgdGhlIEJpZ0RlY2ltYWwgdG8gY2xvbmUgKG5vbi1udWxsKQorICAgICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGNsb25lKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkZWMpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgY29weTsKKyAgY29weT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCk7CisgIGNvcHkuaW5kPWRlYy5pbmQ7CisgIGNvcHkuZXhwPWRlYy5leHA7CisgIGNvcHkuZm9ybT1kZWMuZm9ybTsKKyAgY29weS5tYW50PWRlYy5tYW50OworICByZXR1cm4gY29weTsKKyAgfQorCisgLyogPHNnbWw+IENoZWNrIG9uZSBvciB0d28gbnVtYmVycyBmb3IgbG9zdCBkaWdpdHMuIDwvc2dtbD4KKyAgICBBcmcxIGlzIFJIUyAob3IgbnVsbCwgaWYgbm9uZSkKKyAgICBBcmcyIGlzIGN1cnJlbnQgRElHSVRTIHNldHRpbmcKKyAgICByZXR1cm5zIHF1aWV0bHkgb3IgdGhyb3dzIGFuIGV4Y2VwdGlvbiAqLworIAorIHByaXZhdGUgdm9pZCBjaGVja2RpZ2l0cyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGludCBkaWcpeworICBpZiAoZGlnPT0wKSAKKyAgIHJldHVybjsgLy8gZG9uJ3QgY2hlY2sgaWYgZGlnaXRzPTAKKyAgLy8gZmlyc3QgY2hlY2sgbGhzLi4uCisgIGlmICh0aGlzLm1hbnQubGVuZ3RoPmRpZykgCisgICBpZiAoKCEoYWxsemVybyh0aGlzLm1hbnQsZGlnKSkpKSAKKyAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICBpZiAocmhzPT1udWxsKSAKKyAgIHJldHVybjsgLy8gbW9uYWRpYworICBpZiAocmhzLm1hbnQubGVuZ3RoPmRpZykgCisgICBpZiAoKCEoYWxsemVybyhyaHMubWFudCxkaWcpKSkpIAorICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3Jocy50b1N0cmluZygpKTsKKyAgfQorCisgLyogPHNnbWw+IFJvdW5kIHRvIHNwZWNpZmllZCBkaWdpdHMsIGlmIG5lY2Vzc2FyeS4gPC9zZ21sPgorICAgIEFyZzEgaXMgcmVxdWVzdGVkIE1hdGhDb250ZXh0IFt3aXRoIGxlbmd0aCBhbmQgcm91bmRpbmcgbW9kZV0KKyAgICByZXR1cm5zIHRoaXMsIGZvciBjb252ZW5pZW5jZSAqLworIAorIHByaXZhdGUgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJvdW5kKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgcmV0dXJuIHJvdW5kKHNldC5kaWdpdHMsc2V0LnJvdW5kaW5nTW9kZSk7CisgIH0KKworIC8qIDxzZ21sPiBSb3VuZCB0byBzcGVjaWZpZWQgZGlnaXRzLCBpZiBuZWNlc3NhcnkuCisgICAgQXJnMSBpcyByZXF1ZXN0ZWQgbGVuZ3RoIChkaWdpdHMgdG8gcm91bmQgdG8pCisgICAgICAgICAgICBbbWF5IGJlIDw9MCB3aGVuIGNhbGxlZCBmcm9tIGZvcm1hdCwgZG9kaXZpZGUsIGV0Yy5dCisgICAgQXJnMiBpcyByb3VuZGluZyBtb2RlCisgICAgcmV0dXJucyB0aGlzLCBmb3IgY29udmVuaWVuY2UKKyAKKyAgICBpbmQgYW5kIGV4cCBhcmUgYWRqdXN0ZWQsIGJ1dCBub3QgY2xlYXJlZCBmb3IgYSBtYW50aXNzYSBvZiB6ZXJvCisgCisgICAgVGhlIGxlbmd0aCBvZiB0aGUgbWFudGlzc2EgcmV0dXJuZWQgd2lsbCBiZSBBcmcxLCBleGNlcHQgd2hlbiBBcmcxCisgICAgaXMgMCwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuZWQgbWFudGlzc2EgbGVuZ3RoIHdpbGwgYmUgMS4KKyAgICA8L3NnbWw+CisgICAgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByb3VuZChpbnQgbGVuLGludCBtb2RlKXsKKyAgaW50IGFkanVzdDsKKyAgaW50IHNpZ247CisgIGJ5dGUgb2xkbWFudFtdOworICBib29sZWFuIHJldXNlPWZhbHNlOworICBieXRlIGZpcnN0PTA7CisgIGludCBpbmNyZW1lbnQ7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIGFkanVzdD1tYW50Lmxlbmd0aC1sZW47CisgIGlmIChhZGp1c3Q8PTApIAorICAgcmV0dXJuIHRoaXM7IC8vIG5vd3QgdG8gZG8KKyAgCisgIGV4cD1leHArYWRqdXN0OyAvLyBleHBvbmVudCBvZiByZXN1bHQKKyAgc2lnbj0oaW50KWluZDsgLy8gc2F2ZSBbYXNzdW1lcyAtMSwgMCwgMV0KKyAgb2xkbWFudD1tYW50OyAvLyBzYXZlCisgIGlmIChsZW4+MCkgCisgICB7CisgICAgLy8gcmVtb3ZlIHRoZSB1bndhbnRlZCBkaWdpdHMKKyAgICBtYW50PW5ldyBieXRlW2xlbl07CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3Qpb2xkbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW1hbnQsMCxsZW4pOworICAgIHJldXNlPXRydWU7IC8vIGNhbiByZXVzZSBtYW50aXNzYQorICAgIGZpcnN0PW9sZG1hbnRbbGVuXTsgLy8gZmlyc3Qgb2YgZGlzY2FyZGVkIGRpZ2l0cworICAgfQorICBlbHNlIAorICAgey8qIGxlbjw9MCAqLworICAgIG1hbnQ9WkVSTy5tYW50OworICAgIGluZD1pc3plcm87CisgICAgcmV1c2U9ZmFsc2U7IC8vIGNhbm5vdCByZXVzZSBtYW50aXNzYQorICAgIGlmIChsZW49PTApIAorICAgICBmaXJzdD1vbGRtYW50WzBdOworICAgIGVsc2UgCisgICAgIGZpcnN0PShieXRlKTA7IC8vIFt2aXJ0dWFsIGRpZ2l0XQorICAgfQorICAKKyAgLy8gZGVjaWRlIHJvdW5kaW5nIGFkanVzdG1lbnQgZGVwZW5kaW5nIG9uIG1vZGUsIHNpZ24sIGFuZCBkaXNjYXJkZWQgZGlnaXRzCisgIGluY3JlbWVudD0wOyAvLyBidW1wZXIKKyAge21vZGVzOmRvey8qc2VsZWN0Ki8KKyAgaWYgKG1vZGU9PVJPVU5EX0hBTEZfVVApCisgICB7IC8vIGRlZmF1bHQgZmlyc3QgW21vc3QgY29tbW9uXQorICAgIGlmIChmaXJzdD49NSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9VTk5FQ0VTU0FSWSkKKyAgIHsgLy8gZGVmYXVsdCBmb3Igc2V0U2NhbGUoKQorICAgIC8vIGRpc2NhcmRpbmcgYW55IG5vbi16ZXJvIGRpZ2l0cyBpcyBhbiBlcnJvcgorICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfSEFMRl9ET1dOKQorICAgeyAvLyAwLjUwMDAgZ29lcyBkb3duCisgICAgaWYgKGZpcnN0PjUpIAorICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgICBlbHNlIAorICAgICBpZiAoZmlyc3Q9PTUpIAorICAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4rMSkpKSkgCisgICAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0hBTEZfRVZFTikKKyAgIHsgLy8gMC41MDAwIGdvZXMgZG93biBpZiBsZWZ0IGRpZ2l0IGV2ZW4KKyAgICBpZiAoZmlyc3Q+NSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgIGVsc2UgCisgICAgIGlmIChmaXJzdD09NSkgCisgICAgICB7CisgICAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4rMSkpKSkgCisgICAgICAgIGluY3JlbWVudD1zaWduOworICAgICAgIGVsc2UgLyogMC41MDAwICovCisgICAgICAgIGlmICgoKChtYW50W21hbnQubGVuZ3RoLTFdKSUyKSk9PTEpIAorICAgICAgICAgaW5jcmVtZW50PXNpZ247CisgICAgICB9CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0RPV04peworICAgLy8gbmV2ZXIgaW5jcmVtZW50CisgIH1lbHNlIGlmIChtb2RlPT1ST1VORF9VUCkKKyAgIHsgLy8gaW5jcmVtZW50IGlmIGRpc2NhcmRlZCBub24temVybworICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0NFSUxJTkcpCisgICB7IC8vIG1vcmUgcG9zaXRpdmUKKyAgICBpZiAoc2lnbj4wKSAKKyAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4pKSkpIAorICAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0ZMT09SKQorICAgeyAvLyBtb3JlIG5lZ2F0aXZlCisgICAgaWYgKHNpZ248MCkgCisgICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNleworICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhZCByb3VuZCB2YWx1ZToiKyIgIittb2RlKTsKKyAgfQorICB9d2hpbGUoZmFsc2UpO30vKm1vZGVzKi8KKyAgCisgIGlmIChpbmNyZW1lbnQhPTApIAorICAge2J1bXA6ZG97CisgICAgaWYgKGluZD09aXN6ZXJvKSAKKyAgICAgeworICAgICAgLy8gd2UgbXVzdCBub3Qgc3VidHJhY3QgZnJvbSAwLCBidXQgcmVzdWx0IGlzIHRyaXZpYWwgYW55d2F5CisgICAgICBtYW50PU9ORS5tYW50OworICAgICAgaW5kPShieXRlKWluY3JlbWVudDsKKyAgICAgfQorICAgIGVsc2UgCisgICAgIHsKKyAgICAgIC8vIG1hbnRpc3NhIGlzIG5vbi0wOyB3ZSBjYW4gc2FmZWx5IGFkZCBvciBzdWJ0cmFjdCAxCisgICAgICBpZiAoaW5kPT1pc25lZykgCisgICAgICAgaW5jcmVtZW50PShpbnQpLWluY3JlbWVudDsKKyAgICAgIG5ld21hbnQ9Ynl0ZWFkZHN1YihtYW50LG1hbnQubGVuZ3RoLE9ORS5tYW50LDEsaW5jcmVtZW50LHJldXNlKTsKKyAgICAgIGlmIChuZXdtYW50Lmxlbmd0aD5tYW50Lmxlbmd0aCkgCisgICAgICAgeyAvLyBoYWQgYSBjYXJyeQorICAgICAgICAvLyBkcm9wIHJpZ2h0bW9zdCBkaWdpdCBhbmQgcmFpc2UgZXhwb25lbnQKKyAgICAgICAgZXhwKys7CisgICAgICAgIC8vIG1hbnQgaXMgYWxyZWFkeSB0aGUgY29ycmVjdCBsZW5ndGgKKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW1hbnQsMCxtYW50Lmxlbmd0aCk7CisgICAgICAgfQorICAgICAgZWxzZSAKKyAgICAgICBtYW50PW5ld21hbnQ7CisgICAgIH0KKyAgIH13aGlsZShmYWxzZSk7fS8qYnVtcCovCisgIC8vIHJvdW5kaW5nIGNhbiBpbmNyZWFzZSBleHBvbmVudCBzaWduaWZpY2FudGx5CisgIGlmIChleHA+TWF4RXhwKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrZXhwKTsKKyAgcmV0dXJuIHRoaXM7CisgIH0KKworIC8qIDxzZ21sPiBUZXN0IGlmIHJpZ2h0bW9zdCBkaWdpdHMgYXJlIGFsbCAwLgorICAgIEFyZzEgaXMgYSBtYW50aXNzYSBhcnJheSB0byB0ZXN0CisgICAgQXJnMiBpcyB0aGUgb2Zmc2V0IG9mIGZpcnN0IGRpZ2l0IHRvIGNoZWNrCisgICAgICAgICAgICBbbWF5IGJlIG5lZ2F0aXZlOyBpZiBzbywgZGlnaXRzIHRvIGxlZnQgYXJlIDAnc10KKyAgICByZXR1cm5zIDEgaWYgYWxsIHRoZSBkaWdpdHMgc3RhcnRpbmcgYXQgQXJnMiBhcmUgMAorIAorICAgIEFyZzIgbWF5IGJlIGJleW9uZCBhcnJheSBib3VuZHMsIGluIHdoaWNoIGNhc2UgMSBpcyByZXR1cm5lZAorICAgIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGFsbHplcm8oYnl0ZSBhcnJheVtdLGludCBzdGFydCl7CisgIGludCBpPTA7CisgIGlmIChzdGFydDwwKSAKKyAgIHN0YXJ0PTA7CisgIHtpbnQgJDI1PWFycmF5Lmxlbmd0aC0xO2k9c3RhcnQ7aTpmb3IoO2k8PSQyNTtpKyspeworICAgaWYgKGFycmF5W2ldIT0wKSAKKyAgICByZXR1cm4gZmFsc2U7CisgICB9CisgIH0vKmkqLworICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgLyogPHNnbWw+IENhcnJ5IG91dCBmaW5hbCBjaGVja3MgYW5kIGNhbm9uaWNhbGl6YXRpb24KKyAgICA8cD4KKyAgICBUaGlzIGZpbmlzaGVzIG9mZiB0aGUgY3VycmVudCBudW1iZXIgYnk6CisgICAgICAxLiBSb3VuZGluZyBpZiBuZWNlc3NhcnkgKE5COiBsZW5ndGggaW5jbHVkZXMgbGVhZGluZyB6ZXJvcykKKyAgICAgIDIuIFN0cmlwcGluZyB0cmFpbGluZyB6ZXJvcyAoaWYgcmVxdWVzdGVkIGFuZCBcUExBSU4pCisgICAgICAzLiBTdHJpcHBpbmcgbGVhZGluZyB6ZXJvcyAoYWx3YXlzKQorICAgICAgNC4gU2VsZWN0aW5nIGV4cG9uZW50aWFsIG5vdGF0aW9uIChpZiByZXF1aXJlZCkKKyAgICAgIDUuIENvbnZlcnRpbmcgYSB6ZXJvIHJlc3VsdCB0byBqdXN0ICcwJyAoaWYgXFBMQUlOKQorICAgIEluIHByYWN0aWNlLCB0aGVzZSBvcGVyYXRpb25zIG92ZXJsYXAgYW5kIHNoYXJlIGNvZGUuCisgICAgSXQgYWx3YXlzIHNldHMgZm9ybS4KKyAgICA8L3NnbWw+CisgICAgQXJnMSBpcyByZXF1ZXN0ZWQgTWF0aENvbnRleHQgKGxlbmd0aCB0byByb3VuZCB0bywgdHJpZ2dlciwgYW5kIEZPUk0pCisgICAgQXJnMiBpcyAxIGlmIHRyYWlsaW5nIGluc2lnbmlmaWNhbnQgemVyb3Mgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIKKyAgICAgICAgIHJvdW5kIChmb3IgZGl2aXNpb24sIGV0Yy4pLCBwcm92aWRlZCB0aGF0IHNldC5mb3JtIGlzbid0IFBMQUlOLgorICAgcmV0dXJucyB0aGlzLCBmb3IgY29udmVuaWVuY2UKKyAgICovCisgCisgcHJpdmF0ZSBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZmluaXNoKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0LGJvb2xlYW4gc3RyaXApeworICBpbnQgZD0wOworICBpbnQgaT0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICBpbnQgbWFnPTA7CisgIGludCBzaWc9MDsKKyAgLyogUm91bmQgaWYgbWFudGlzc2EgdG9vIGxvbmcgYW5kIGRpZ2l0cyByZXF1ZXN0ZWQgKi8KKyAgaWYgKHNldC5kaWdpdHMhPTApIAorICAgaWYgKHRoaXMubWFudC5sZW5ndGg+c2V0LmRpZ2l0cykgCisgICAgdGhpcy5yb3VuZChzZXQpOworICAKKyAgLyogSWYgc3RyaXAgcmVxdWVzdGVkIChhbmQgc3RhbmRhcmQgZm9ybWF0dGluZyksIHJlbW92ZQorICAgICBpbnNpZ25pZmljYW50IHRyYWlsaW5nIHplcm9zLiAqLworICBpZiAoc3RyaXApIAorICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICB7CisgICAgIGQ9dGhpcy5tYW50Lmxlbmd0aDsKKyAgICAgLyogc2VlIGlmIHdlIG5lZWQgdG8gZHJvcCBhbnkgdHJhaWxpbmcgemVyb3MgKi8KKyAgICAge2k9ZC0xO2k6Zm9yKDtpPj0xO2ktLSl7CisgICAgICBpZiAodGhpcy5tYW50W2ldIT0wKSAKKyAgICAgICBicmVhayBpOworICAgICAgZC0tOworICAgICAgZXhwKys7CisgICAgICB9CisgICAgIH0vKmkqLworICAgICBpZiAoZDx0aGlzLm1hbnQubGVuZ3RoKSAKKyAgICAgIHsvKiBuZWVkIHRvIHJlZHVjZSAqLworICAgICAgIG5ld21hbnQ9bmV3IGJ5dGVbZF07CisgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdGhpcy5tYW50LDAsKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLGQpOworICAgICAgIHRoaXMubWFudD1uZXdtYW50OworICAgICAgfQorICAgIH0KKyAgCisgIGZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gcHJlc2V0CisgIAorICAvKiBOb3cgY2hlY2sgZm9yIGxlYWRpbmctIGFuZCBhbGwtIHplcm9zIGluIG1hbnRpc3NhICovCisgIHtpbnQgJDI2PXRoaXMubWFudC5sZW5ndGg7aT0wO2k6Zm9yKDskMjY+MDskMjYtLSxpKyspeworICAgaWYgKHRoaXMubWFudFtpXSE9MCkgCisgICAgeworICAgICAvLyBub24tMCByZXN1bHQ7IGluZCB3aWxsIGJlIGNvcnJlY3QKKyAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgemVyb3MgW2UuZy4sIGFmdGVyIHN1YnRyYWN0XQorICAgICBpZiAoaT4wKSAKKyAgICAgIHtkZWxlYWQ6ZG97CisgICAgICAgbmV3bWFudD1uZXcgYnl0ZVt0aGlzLm1hbnQubGVuZ3RoLWldOworICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXRoaXMubWFudCxpLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCx0aGlzLm1hbnQubGVuZ3RoLWkpOworICAgICAgIHRoaXMubWFudD1uZXdtYW50OworICAgICAgfXdoaWxlKGZhbHNlKTt9LypkZWxlYWQqLworICAgICAvLyBub3cgZGV0ZXJtaW5lIGZvcm0gaWYgbm90IFBMQUlOCisgICAgIG1hZz1leHArbWFudC5sZW5ndGg7CisgICAgIGlmIChtYWc+MCkgCisgICAgICB7IC8vIG1vc3QgY29tbW9uIHBhdGgKKyAgICAgICBpZiAobWFnPnNldC5kaWdpdHMpIAorICAgICAgICBpZiAoc2V0LmRpZ2l0cyE9MCkgCisgICAgICAgICBmb3JtPShieXRlKXNldC5mb3JtOworICAgICAgIGlmICgobWFnLTEpPD1NYXhFeHApIAorICAgICAgICByZXR1cm4gdGhpczsgLy8gbm8gb3ZlcmZsb3c7IHF1aWNrIHJldHVybgorICAgICAgfQorICAgICBlbHNlIAorICAgICAgaWYgKG1hZzwoLTUpKSAKKyAgICAgICBmb3JtPShieXRlKXNldC5mb3JtOworICAgICAvKiBjaGVjayBmb3Igb3ZlcmZsb3cgKi8KKyAgICAgbWFnLS07CisgICAgIGlmICgobWFnPE1pbkV4cCl8KG1hZz5NYXhFeHApKSAKKyAgICAgIHtvdmVyZmxvdzpkb3sKKyAgICAgICAvLyBwb3NzaWJsZSByZXByaWV2ZSBpZiBmb3JtIGlzIGVuZ2luZWVyaW5nCisgICAgICAgaWYgKGZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpIAorICAgICAgICB7CisgICAgICAgICBzaWc9bWFnJTM7IC8vIGxlZnRvdmVyCisgICAgICAgICBpZiAoc2lnPDApIAorICAgICAgICAgIHNpZz0zK3NpZzsgLy8gbmVnYXRpdmUgZXhwb25lbnQKKyAgICAgICAgIG1hZz1tYWctc2lnOyAvLyBleHBvbmVudCB0byB1c2UKKyAgICAgICAgIC8vIDE5OTkuMDYuMjk6IHNlY29uZCB0ZXN0IGhlcmUgbXVzdCBiZSBNYXhFeHAKKyAgICAgICAgIGlmIChtYWc+PU1pbkV4cCkgCisgICAgICAgICAgaWYgKG1hZzw9TWF4RXhwKSAKKyAgICAgICAgICAgYnJlYWsgb3ZlcmZsb3c7CisgICAgICAgIH0KKyAgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK21hZyk7CisgICAgICB9d2hpbGUoZmFsc2UpO30vKm92ZXJmbG93Ki8KKyAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgfQorICB9LyppKi8KKyAgCisgIC8vIERyb3AgdGhyb3VnaCB0byBoZXJlIG9ubHkgaWYgbWFudGlzc2EgaXMgYWxsIHplcm9zCisgIGluZD1pc3plcm87CisgIHsvKnNlbGVjdCovCisgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikKKyAgIGV4cD0wOyAvLyBzdGFuZGFyZCByZXN1bHQ7IGdvIHRvICcwJworICBlbHNlIGlmIChleHA+MCkKKyAgIGV4cD0wOyAvLyArdmUgZXhwb25lbnQgYWxzbyBnb2VzIHRvICcwJworICBlbHNleworICAgLy8gYSBwbGFpbiBudW1iZXIgd2l0aCAtdmUgZXhwb25lbnQ7IHByZXNlcnZlIGFuZCBjaGVjayBleHBvbmVudAorICAgaWYgKGV4cDxNaW5FeHApIAorICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrZXhwKTsKKyAgfQorICB9CisgIG1hbnQ9WkVSTy5tYW50OyAvLyBjYW5vbmljYWwgbWFudGlzc2EKKyAgcmV0dXJuIHRoaXM7CisgIH0KKyB9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvTWF0aENvbnRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMTYzOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvTWF0aENvbnRleHQuamF2YQpAQCAtMCwwICsxLDYwMSBAQAorLyogR2VuZXJhdGVkIGZyb20gJ01hdGhDb250ZXh0Lm5yeCcgOCBTZXAgMjAwMCAxMTowNzo0OCBbdjIuMDBdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBTdHJpY3RhcmdzIFN0cmljdGNhc2UgVHJhY2UyIFZlcmJvc2UzICovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lm1hdGg7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogTWF0aENvbnRleHQgLS0gTWF0aCBjb250ZXh0IHNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24sIDE5OTcsIDIwMDAsIDIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIFRoZSBNYXRoQ29udGV4dCBvYmplY3QgZW5jYXBzdWxhdGVzIHRoZSBzZXR0aW5ncyB1c2VkIGJ5IHRoZSAgICAgKi8KKy8qICAgQmlnRGVjaW1hbCBjbGFzczsgaXQgY291bGQgYWxzbyBiZSB1c2VkIGJ5IG90aGVyIGFyaXRobWV0aWNzLiAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBOb3RlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMS4gVGhlIHByb3BlcnRpZXMgYXJlIGNoZWNrZWQgZm9yIHZhbGlkaXR5IG9uIGNvbnN0cnVjdGlvbiwgc28gICAgICovCisvKiAgICB0aGUgQmlnRGVjaW1hbCBjbGFzcyBtYXkgYXNzdW1lIHRoYXQgdGhleSBhcmUgY29ycmVjdC4gICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQXV0aG9yOiAgICBNaWtlIENvd2xpc2hhdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjAzIEluaXRpYWwgdmVyc2lvbiAoZWRpdGVkIGZyb20gbmV0cmV4eC5sYW5nLlJleHhTZXQpICAgICAgKi8KKy8qIDE5OTcuMDkuMTIgQWRkIGxvc3REaWdpdHMgcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNS4wMiBNYWtlIHRoZSBjbGFzcyBpbW11dGFibGUgYW5kIGZpbmFsOyBkcm9wIHNldCBtZXRob2RzICAgICovCisvKiAxOTk4LjA2LjA1IEFkZCBSb3VuZCAocm91bmRpbmcgbW9kZXMpIHByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjUgUmVuYW1lIGZyb20gRGVjaW1hbENvbnRleHQ7IGFsbG93IGRpZ2l0cz0wICAgICAgICAgICAgICAqLworLyogMTk5OC4xMC4xMiBjaGFuZ2UgdG8gY29tLmlibS5pY3UubWF0aCBwYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4wNiBhZGQgamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHNpbXBsaWZ5OyBjaGFuZ2VzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIEouIEJsb2NoICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMTMgMS4wMCByZWxlYXNlIHRvIElCTSBDZW50cmUgZm9yIEphdmEgVGVjaG5vbG9neSAgICAgICAgICAqLworLyogMTk5OS4wNy4xMCAxLjA0IGZsYWcgc2VyaWFsaXphdGlvbiB1bnVzZWQgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAxLjAxIDEuMDYgY29weXJpZ2h0IHVwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gaW1tdXRhYmxlIGNsYXNzIGVuY2Fwc3VsYXRlcyB0aGUKKyAqIHNldHRpbmdzIHVuZGVyc3Rvb2QgYnkgdGhlIG9wZXJhdG9yIG1ldGhvZHMgb2YgdGhlIHtAbGluayBCaWdEZWNpbWFsfQorICogY2xhc3MgKGFuZCBwb3RlbnRpYWxseSBvdGhlciBjbGFzc2VzKS4gIE9wZXJhdG9yIG1ldGhvZHMgYXJlIHRob3NlCisgKiB0aGF0IGVmZmVjdCBhbiBvcGVyYXRpb24gb24gYSBudW1iZXIgb3IgYSBwYWlyIG9mIG51bWJlcnMuCisgKiA8cD4KKyAqIFRoZSBzZXR0aW5ncywgd2hpY2ggYXJlIG5vdCBiYXNlLWRlcGVuZGVudCwgY29tcHJpc2U6CisgKiA8b2w+CisgKiA8bGk+PGNvZGU+ZGlnaXRzPC9jb2RlPjoKKyAqIHRoZSBudW1iZXIgb2YgZGlnaXRzIChwcmVjaXNpb24pIHRvIGJlIHVzZWQgZm9yIGFuIG9wZXJhdGlvbgorICogPGxpPjxjb2RlPmZvcm08L2NvZGU+OgorICogdGhlIGZvcm0gb2YgYW55IGV4cG9uZW50IHRoYXQgcmVzdWx0cyBmcm9tIHRoZSBvcGVyYXRpb24KKyAqIDxsaT48Y29kZT5sb3N0RGlnaXRzPC9jb2RlPjoKKyAqIHdoZXRoZXIgY2hlY2tpbmcgZm9yIGxvc3QgZGlnaXRzIGlzIGVuYWJsZWQKKyAqIDxsaT48Y29kZT5yb3VuZGluZ01vZGU8L2NvZGU+OgorICogdGhlIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciByb3VuZGluZy4KKyAqIDwvb2w+CisgKiA8cD4KKyAqIFdoZW4gcHJvdmlkZWQsIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCBzdXBwbGllcyB0aGUKKyAqIHNldHRpbmdzIGZvciBhbiBvcGVyYXRpb24gZGlyZWN0bHkuCisgKiA8cD4KKyAqIFdoZW4gPGNvZGU+TWF0aENvbnRleHQuREVGQVVMVDwvY29kZT4gaXMgcHJvdmlkZWQgZm9yIGEKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgdGhlbiB0aGUgZGVmYXVsdCBzZXR0aW5ncyBhcmUgdXNlZAorICogKDxjb2RlPjksIFNDSUVOVElGSUMsIGZhbHNlLCBST1VORF9IQUxGX1VQPC9jb2RlPikuCisgKiA8cD4KKyAqIEluIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcywgYWxsIG1ldGhvZHMgd2hpY2ggYWNjZXB0IGEKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QgZGVmYXVsdHMpIGFsc28gaGF2ZSBhIHZlcnNpb24gb2YgdGhlCisgKiBtZXRob2Qgd2hpY2ggZG9lcyBub3QgYWNjZXB0IGEgTWF0aENvbnRleHQgcGFyYW1ldGVyLiAgVGhlc2UgdmVyc2lvbnMKKyAqIGNhcnJ5IG91dCB1bmxpbWl0ZWQgcHJlY2lzaW9uIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgKGFzIHRob3VnaCB0aGUKKyAqIHNldHRpbmdzIHdlcmUgKDxjb2RlPjAsIFBMQUlOLCBmYWxzZSwgUk9VTkRfSEFMRl9VUDwvY29kZT4pLgorICogPHA+CisgKiBUaGUgaW5zdGFuY2UgdmFyaWFibGVzIGFyZSBzaGFyZWQgd2l0aCBkZWZhdWx0IGFjY2VzcyAoc28gdGhleSBhcmUKKyAqIGRpcmVjdGx5IGFjY2Vzc2libGUgdG8gdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzKSwgYnV0IG11c3QKKyAqIG5ldmVyIGJlIGNoYW5nZWQuCisgKiA8cD4KKyAqIFRoZSByb3VuZGluZyBtb2RlIGNvbnN0YW50cyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFuZCB2YWx1ZXMgYXMgdGhlCisgKiBjb25zdGFudHMgb2YgdGhlIHNhbWUgbmFtZSBpbiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4sIHRvCisgKiBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggZWFybGllciB2ZXJzaW9ucyBvZgorICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgKgorICogQHNlZSAgICAgQmlnRGVjaW1hbAorICogQGF1dGhvciAgTWlrZSBDb3dsaXNoYXcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNYXRoQ29udGV4dCBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxleworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9Ik1hdGhDb250ZXh0Lm5yeCI7CisgCisgLyogLS0tLS0gUHJvcGVydGllcyAtLS0tLSAqLworIC8qIHByb3BlcnRpZXMgcHVibGljIGNvbnN0YW50ICovCisgLyoqCisgICogUGxhaW4gKGZpeGVkIHBvaW50KSBub3RhdGlvbiwgd2l0aG91dCBhbnkgZXhwb25lbnQuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgZm9ybSBvZiB0aGUgcmVzdWx0IG9mIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogQSB6ZXJvIHJlc3VsdCBpbiBwbGFpbiBmb3JtIG1heSBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIG9uZSBvcgorICAqIG1vcmUgemVyb3MuCisgICoKKyAgKiBAc2VlICNFTkdJTkVFUklORworICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQTEFJTj0wOyAvLyBbbm8gZXhwb25lbnRdCisgCisgLyoqCisgICogU3RhbmRhcmQgZmxvYXRpbmcgcG9pbnQgbm90YXRpb24gKHdpdGggc2NpZW50aWZpYyBleHBvbmVudGlhbAorICAqIGZvcm1hdCwgd2hlcmUgdGhlcmUgaXMgb25lIGRpZ2l0IGJlZm9yZSBhbnkgZGVjaW1hbCBwb2ludCkuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgZm9ybSBvZiB0aGUgcmVzdWx0IG9mIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogQSB6ZXJvIHJlc3VsdCBpbiBwbGFpbiBmb3JtIG1heSBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIG9uZSBvcgorICAqIG1vcmUgemVyb3MuCisgICoKKyAgKiBAc2VlICNFTkdJTkVFUklORworICAqIEBzZWUgI1BMQUlOCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0NJRU5USUZJQz0xOyAvLyAxIGRpZ2l0IGJlZm9yZSAuCisgCisgLyoqCisgICogU3RhbmRhcmQgZmxvYXRpbmcgcG9pbnQgbm90YXRpb24gKHdpdGggZW5naW5lZXJpbmcgZXhwb25lbnRpYWwKKyAgKiBmb3JtYXQsIHdoZXJlIHRoZSBwb3dlciBvZiB0ZW4gaXMgYSBtdWx0aXBsZSBvZiAzKS4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSBmb3JtIG9mIHRoZSByZXN1bHQgb2YgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiBBIHplcm8gcmVzdWx0IGluIHBsYWluIGZvcm0gbWF5IGhhdmUgYSBkZWNpbWFsIHBhcnQgb2Ygb25lIG9yCisgICogbW9yZSB6ZXJvcy4KKyAgKgorICAqIEBzZWUgI1BMQUlOCisgICogQHNlZSAjU0NJRU5USUZJQworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVOR0lORUVSSU5HPTI7IC8vIDEtMyBkaWdpdHMgYmVmb3JlIC4KKyAKKyAvLyBUaGUgcm91bmRpbmcgbW9kZXMgbWF0Y2ggdGhlIG9yaWdpbmFsIEJpZ0RlY2ltYWwgY2xhc3MgdmFsdWVzCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgcG9zaXRpdmUgbnVtYmVyLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gdGhlIHJlc3VsdAorICAqIHNob3VsZCBiZSByb3VuZGVkIHRvd2FyZHMgdGhlIG5leHQgbW9yZSBwb3NpdGl2ZSBkaWdpdC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9DRUlMSU5HPTI7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0b3dhcmRzIHplcm8uCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIEFsbCBkaXNjYXJkZWQgZGlnaXRzIGFyZSBpZ25vcmVkICh0cnVuY2F0ZWQpLiAgVGhlIHJlc3VsdCBpcworICAqIG5laXRoZXIgaW5jcmVtZW50ZWQgbm9yIGRlY3JlbWVudGVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0RPV049MTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBuZWdhdGl2ZSBudW1iZXIuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiB0aGUgcmVzdWx0CisgICogc2hvdWxkIGJlIHJvdW5kZWQgdG93YXJkcyB0aGUgbmV4dCBtb3JlIG5lZ2F0aXZlIGRpZ2l0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0ZMT09SPTM7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgZG93bi4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgdGhlIGRpc2NhcmRlZCBkaWdpdHMgcmVwcmVzZW50IGdyZWF0ZXIgdGhhbiBoYWxmICgwLjUgdGltZXMpCisgICogdGhlIHZhbHVlIG9mIGEgb25lIGluIHRoZSBuZXh0IHBvc2l0aW9uIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUKKyAgKiByb3VuZGVkIHVwIChhd2F5IGZyb20gemVybykuICBPdGhlcndpc2UgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlCisgICogaWdub3JlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0RPV049NTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBldmVuIG5laWdoYm9yLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyByZXByZXNlbnQgZ3JlYXRlciB0aGFuIGhhbGYgKDAuNSB0aW1lcykKKyAgKiB0aGUgdmFsdWUgb2YgYSBvbmUgaW4gdGhlIG5leHQgcG9zaXRpb24gdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZQorICAqIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4gIElmIHRoZXkgcmVwcmVzZW50IGxlc3MgdGhhbiBoYWxmLAorICAqIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcm91bmRlZCBkb3duLgorICAqIDxwPgorICAqIE90aGVyd2lzZSAodGhleSByZXByZXNlbnQgZXhhY3RseSBoYWxmKSB0aGUgcmVzdWx0IGlzIHJvdW5kZWQKKyAgKiBkb3duIGlmIGl0cyByaWdodG1vc3QgZGlnaXQgaXMgZXZlbiwgb3Igcm91bmRlZCB1cCBpZiBpdHMKKyAgKiByaWdodG1vc3QgZGlnaXQgaXMgb2RkICh0byBtYWtlIGFuIGV2ZW4gZGlnaXQpLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRVZFTj02OworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIHVwLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyByZXByZXNlbnQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGhhbGYKKyAgKiAoMC41IHRpbWVzKSB0aGUgdmFsdWUgb2YgYSBvbmUgaW4gdGhlIG5leHQgcG9zaXRpb24gdGhlbiB0aGUgcmVzdWx0CisgICogc2hvdWxkIGJlIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4gIE90aGVyd2lzZSB0aGUgZGlzY2FyZGVkCisgICogZGlnaXRzIGFyZSBpZ25vcmVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfVVA9NDsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIGFzc2VydCB0aGF0IG5vIHJvdW5kaW5nIGlzIG5lY2Vzc2FyeS4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogUm91bmRpbmcgKHBvdGVudGlhbCBsb3NzIG9mIGluZm9ybWF0aW9uKSBpcyBub3QgcGVybWl0dGVkLgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IHNob3VsZCBiZSB0aHJvd24uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVU5ORUNFU1NBUlk9NzsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIGF3YXkgZnJvbSB6ZXJvLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gdGhlIHJlc3VsdCB3aWxsCisgICogYmUgcm91bmRlZCB1cCAoYXdheSBmcm9tIHplcm8pLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX1VQPTA7CisgCisgCisgLyogcHJvcGVydGllcyBzaGFyZWQgKi8KKyAvKioKKyAgKiBUaGUgbnVtYmVyIG9mIGRpZ2l0cyAocHJlY2lzaW9uKSB0byBiZSB1c2VkIGZvciBhbiBvcGVyYXRpb24uCisgICogQSB2YWx1ZSBvZiAwIGluZGljYXRlcyB0aGF0IHVubGltaXRlZCBwcmVjaXNpb24gKGFzIG1hbnkgZGlnaXRzCisgICogYXMgYXJlIHJlcXVpcmVkKSB3aWxsIGJlIHVzZWQuCisgICogPHA+CisgICogVGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIHVzZSB0aGlzIHZhbHVlIHRvCisgICogZGV0ZXJtaW5lIHRoZSBwcmVjaXNpb24gb2YgcmVzdWx0cy4KKyAgKiBOb3RlIHRoYXQgbGVhZGluZyB6ZXJvcyAoaW4gdGhlIGludGVnZXIgcGFydCBvZiBhIG51bWJlcikgYXJlCisgICogbmV2ZXIgc2lnbmlmaWNhbnQuCisgICogPHA+CisgICogPGNvZGU+ZGlnaXRzPC9jb2RlPiB3aWxsIGFsd2F5cyBiZSBub24tbmVnYXRpdmUuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgaW50IGRpZ2l0czsKKyAKKyAvKioKKyAgKiBUaGUgZm9ybSBvZiByZXN1bHRzIGZyb20gYW4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgQmlnRGVjaW1hbH0gb3BlcmF0b3IgbWV0aG9kcyB1c2UgdGhpcyB2YWx1ZSB0bworICAqIGRldGVybWluZSB0aGUgZm9ybSBvZiByZXN1bHRzLCBpbiBwYXJ0aWN1bGFyIHdoZXRoZXIgYW5kIGhvdworICAqIGV4cG9uZW50aWFsIG5vdGF0aW9uIHNob3VsZCBiZSB1c2VkLgorICAqCisgICogQHNlZSAjRU5HSU5FRVJJTkcKKyAgKiBAc2VlICNQTEFJTgorICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc2VyaWFsCisgICovCisgaW50IGZvcm07IC8vIHZhbHVlcyBmb3IgdGhpcyBtdXN0IGZpdCBpbiBhIGJ5dGUKKyAKKyAvKioKKyAgKiBDb250cm9scyB3aGV0aGVyIGxvc3QgZGlnaXRzIGNoZWNraW5nIGlzIGVuYWJsZWQgZm9yIGFuCisgICogb3BlcmF0aW9uLgorICAqIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiB0byBlbmFibGUgY2hlY2tpbmcsIG9yCisgICogdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IHRvIGRpc2FibGUgY2hlY2tpbmcuCisgICogPHA+CisgICogV2hlbiBlbmFibGVkLCB0aGUge0BsaW5rIEJpZ0RlY2ltYWx9IG9wZXJhdG9yIG1ldGhvZHMgY2hlY2sKKyAgKiB0aGUgcHJlY2lzaW9uIG9mIHRoZWlyIG9wZXJhbmQgb3Igb3BlcmFuZHMsIGFuZCB0aHJvdyBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlmIGFuIG9wZXJhbmQgaXMgbW9yZSBwcmVjaXNlCisgICogdGhhbiB0aGUgZGlnaXRzIHNldHRpbmcgKHRoYXQgaXMsIGRpZ2l0cyB3b3VsZCBiZSBsb3N0KS4KKyAgKiBXaGVuIGRpc2FibGVkLCBvcGVyYW5kcyBhcmUgcm91bmRlZCB0byB0aGUgc3BlY2lmaWVkIGRpZ2l0cy4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBib29sZWFuIGxvc3REaWdpdHM7CisgCisgLyoqCisgICogVGhlIHJvdW5kaW5nIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciBhbiBvcGVyYXRpb24uCisgICogPHA+CisgICogVGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIHVzZSB0aGlzIHZhbHVlIHRvCisgICogZGV0ZXJtaW5lIHRoZSBhbGdvcml0aG0gdG8gYmUgdXNlZCB3aGVuIG5vbi16ZXJvIGRpZ2l0cyBoYXZlIHRvCisgICogYmUgZGlzY2FyZGVkIGluIG9yZGVyIHRvIHJlZHVjZSB0aGUgcHJlY2lzaW9uIG9mIGEgcmVzdWx0LgorICAqIFRoZSB2YWx1ZSBtdXN0IGJlIG9uZSBvZiB0aGUgcHVibGljIGNvbnN0YW50cyB3aG9zZSBuYW1lIHN0YXJ0cworICAqIHdpdGggPGNvZGU+Uk9VTkRfPC9jb2RlPi4KKyAgKgorICAqIEBzZWUgI1JPVU5EX0NFSUxJTkcKKyAgKiBAc2VlICNST1VORF9ET1dOCisgICogQHNlZSAjUk9VTkRfRkxPT1IKKyAgKiBAc2VlICNST1VORF9IQUxGX0RPV04KKyAgKiBAc2VlICNST1VORF9IQUxGX0VWRU4KKyAgKiBAc2VlICNST1VORF9IQUxGX1VQCisgICogQHNlZSAjUk9VTkRfVU5ORUNFU1NBUlkKKyAgKiBAc2VlICNST1VORF9VUAorICAqIEBzZXJpYWwKKyAgKi8KKyBpbnQgcm91bmRpbmdNb2RlOworIAorIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSBjb25zdGFudCAqLworIC8vIGRlZmF1bHQgc2V0dGluZ3MKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9GT1JNPVNDSUVOVElGSUM7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRElHSVRTPTk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUZBVUxUX0xPU1RESUdJVFM9ZmFsc2U7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfUk9VTkRJTkdNT0RFPVJPVU5EX0hBTEZfVVA7CisgCisgLyogcHJvcGVydGllcyBwcml2YXRlIGNvbnN0YW50ICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTl9ESUdJVFM9MDsgLy8gc21hbGxlc3QgdmFsdWUgZm9yIERJR0lUUy4KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0RJR0lUUz05OTk5OTk5OTk7IC8vIGxhcmdlc3QgdmFsdWUgZm9yIERJR0lUUy4gIElmIGluY3JlYXNlZCwKKyAvLyB0aGUgQmlnRGVjaW1hbCBjbGFzcyBtYXkgbmVlZCB1cGRhdGUuCisgLy8gbGlzdCBvZiB2YWxpZCByb3VuZGluZyBtb2RlIHZhbHVlcywgbW9zdCBjb21tb24gdHdvIGZpcnN0CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJPVU5EU1tdPW5ldyBpbnRbXXtST1VORF9IQUxGX1VQLFJPVU5EX1VOTkVDRVNTQVJZLFJPVU5EX0NFSUxJTkcsUk9VTkRfRE9XTixST1VORF9GTE9PUixST1VORF9IQUxGX0RPV04sUk9VTkRfSEFMRl9FVkVOLFJPVU5EX1VQfTsKKyAKKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIFJPVU5EV09SRFNbXT1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyJST1VORF9IQUxGX1VQIiwiUk9VTkRfVU5ORUNFU1NBUlkiLCJST1VORF9DRUlMSU5HIiwiUk9VTkRfRE9XTiIsIlJPVU5EX0ZMT09SIiwiUk9VTkRfSEFMRl9ET1dOIiwiUk9VTkRfSEFMRl9FVkVOIiwiUk9VTkRfVVAifTsgLy8gbWF0Y2hpbmcgbmFtZXMgb2YgdGhlIFJPVU5EUyB2YWx1ZXMKKyAKKyAKKyAKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgY29uc3RhbnQgdW51c2VkICovCisgCisgLy8gU2VyaWFsaXphdGlvbiB2ZXJzaW9uCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEPTcxNjMzNzY5OTg4OTI1MTUzNzZMOworIAorIC8qIHByb3BlcnRpZXMgcHVibGljIGNvbnN0YW50ICovCisgLyoqCisgICogQSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IGluaXRpYWxpemVkIHRvIHRoZSBkZWZhdWx0CisgICogc2V0dGluZ3MgZm9yIGdlbmVyYWwtcHVycG9zZSBhcml0aG1ldGljLiAgVGhhdCBpcywKKyAgKiA8Y29kZT5kaWdpdHM9OSBmb3JtPVNDSUVOVElGSUMgbG9zdERpZ2l0cz1mYWxzZQorICAqIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQPC9jb2RlPi4KKyAgKgorICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc2VlICNST1VORF9IQUxGX1VQCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IERFRkFVTFQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoREVGQVVMVF9ESUdJVFMsREVGQVVMVF9GT1JNLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisKKyAKKyAKKyAKKyAvKiAtLS0tLSBDb25zdHJ1Y3RvcnMgLS0tLS0gKi8KKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uLgorICAqIFRoZSBvdGhlciBzZXR0aW5ncyBhcmUgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlcworICAqIChzZWUge0BsaW5rICNERUZBVUxUfSkuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSkuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBkaWdpdHMgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBwYXJhbWV0ZXIgb3V0IG9mIHJhbmdlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBNYXRoQ29udGV4dChpbnQgc2V0ZGlnaXRzKXsKKyAgdGhpcyhzZXRkaWdpdHMsREVGQVVMVF9GT1JNLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisgIHJldHVybjt9CisKKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uIGFuZCBmb3JtLgorICAqIFRoZSBvdGhlciBzZXR0aW5ncyBhcmUgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlcworICAqIChzZWUge0BsaW5rICNERUZBVUxUfSkuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSksIG9yIGlmIHRoZSB2YWx1ZSBnaXZlbiBmb3IgdGhlCisgICogPGNvZGU+c2V0Zm9ybTwvY29kZT4gcGFyYW1ldGVyIGlzIG5vdCBvbmUgb2YgdGhlIGFwcHJvcHJpYXRlCisgICogY29uc3RhbnRzLgorICAqCisgICogQHBhcmFtIHNldGRpZ2l0cyAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZGlnaXRzIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGZvcm0gICAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZm9ybSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMsaW50IHNldGZvcm0peworICB0aGlzKHNldGRpZ2l0cyxzZXRmb3JtLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uLCBmb3JtLCBhbmQgbG9zdERpZ2l0cyBzZXR0aW5nLgorICAqIFRoZSByb3VuZGluZ01vZGUgc2V0dGluZyBpcyBzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWUKKyAgKiAoc2VlIHtAbGluayAjREVGQVVMVH0pLgorICAqCisgICogQW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgdGhlCisgICogPGNvZGU+c2V0ZGlnaXRzPC9jb2RlPiBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlCisgICogKCZsdDswIG9yICZndDs5OTk5OTk5OTkpLCBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gZm9yIHRoZQorICAqIDxjb2RlPnNldGZvcm08L2NvZGU+IHBhcmFtZXRlciBpcyBub3Qgb25lIG9mIHRoZSBhcHByb3ByaWF0ZQorICAqIGNvbnN0YW50cy4KKyAgKgorICAqIEBwYXJhbSBzZXRkaWdpdHMgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRmb3JtICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZvcm0gc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0bG9zdGRpZ2l0cyBUaGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4gbG9zdERpZ2l0cworICAqICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMsaW50IHNldGZvcm0sYm9vbGVhbiBzZXRsb3N0ZGlnaXRzKXsKKyAgdGhpcyhzZXRkaWdpdHMsc2V0Zm9ybSxzZXRsb3N0ZGlnaXRzLERFRkFVTFRfUk9VTkRJTkdNT0RFKTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQKKyAgKiBwcmVjaXNpb24sIGZvcm0sIGxvc3REaWdpdHMsIGFuZCByb3VuZGluZ01vZGUgc2V0dGluZy4KKyAgKgorICAqIEFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIHRoZQorICAqIDxjb2RlPnNldGRpZ2l0czwvY29kZT4gcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZQorICAqICgmbHQ7MCBvciAmZ3Q7OTk5OTk5OTk5KSwgb3IgaWYgdGhlIHZhbHVlIGdpdmVuIGZvciB0aGUKKyAgKiA8Y29kZT5zZXRmb3JtPC9jb2RlPiBvciA8Y29kZT5zZXRyb3VuZGluZ21vZGU8L2NvZGU+IHBhcmFtZXRlcnMgaXMKKyAgKiBub3Qgb25lIG9mIHRoZSBhcHByb3ByaWF0ZSBjb25zdGFudHMuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGZvcm0gICAgICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBmb3JtIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0bG9zdGRpZ2l0cyAgIFRoZSA8Y29kZT5ib29sZWFuPC9jb2RlPiBsb3N0RGlnaXRzCisgICogICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0cm91bmRpbmdtb2RlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nTW9kZSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gcGFyYW1ldGVyIG91dCBvZiByYW5nZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgTWF0aENvbnRleHQoaW50IHNldGRpZ2l0cyxpbnQgc2V0Zm9ybSxib29sZWFuIHNldGxvc3RkaWdpdHMsaW50IHNldHJvdW5kaW5nbW9kZSl7c3VwZXIoKTsKKyAgCisgIAorICAvLyBzZXQgdmFsdWVzLCBhZnRlciBjaGVja2luZworICBpZiAoc2V0ZGlnaXRzIT1ERUZBVUxUX0RJR0lUUykgCisgICB7CisgICAgaWYgKHNldGRpZ2l0czxNSU5fRElHSVRTKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRpZ2l0cyB0b28gc21hbGw6IisiICIrc2V0ZGlnaXRzKTsKKyAgICBpZiAoc2V0ZGlnaXRzPk1BWF9ESUdJVFMpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGlnaXRzIHRvbyBsYXJnZToiKyIgIitzZXRkaWdpdHMpOworICAgfQorICB7LypzZWxlY3QqLworICBpZiAoc2V0Zm9ybT09U0NJRU5USUZJQyl7CisgICAvLyBbbW9zdCBjb21tb25dCisgIH1lbHNlIGlmIChzZXRmb3JtPT1FTkdJTkVFUklORyl7CisgIH1lbHNlIGlmIChzZXRmb3JtPT1QTEFJTil7CisgIH1lbHNleworICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhZCBmb3JtIHZhbHVlOiIrIiAiK3NldGZvcm0pOworICB9CisgIH0KKyAgaWYgKCghKGlzVmFsaWRSb3VuZChzZXRyb3VuZGluZ21vZGUpKSkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhZCByb3VuZGluZ01vZGUgdmFsdWU6IisiICIrc2V0cm91bmRpbmdtb2RlKTsKKyAgZGlnaXRzPXNldGRpZ2l0czsKKyAgZm9ybT1zZXRmb3JtOworICBsb3N0RGlnaXRzPXNldGxvc3RkaWdpdHM7IC8vIFtubyBiYWQgdmFsdWUgcG9zc2libGVdCisgIHJvdW5kaW5nTW9kZT1zZXRyb3VuZGluZ21vZGU7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBkaWdpdHMgc2V0dGluZy4KKyAgKiBUaGlzIHZhbHVlIGlzIGFsd2F5cyBub24tbmVnYXRpdmUuCisgICoKKyAgKiBAcmV0dXJuIGFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgdGhlIHZhbHVlIG9mIHRoZSBkaWdpdHMKKyAgKiAgICAgICAgIHNldHRpbmcKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGdldERpZ2l0cygpeworICByZXR1cm4gZGlnaXRzOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBmb3JtIHNldHRpbmcuCisgICogVGhpcyB3aWxsIGJlIG9uZSBvZgorICAqIHtAbGluayAjRU5HSU5FRVJJTkd9LAorICAqIHtAbGluayAjUExBSU59LCBvcgorICAqIHtAbGluayAjU0NJRU5USUZJQ30uCisgICoKKyAgKiBAcmV0dXJuIGFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgdGhlIHZhbHVlIG9mIHRoZSBmb3JtIHNldHRpbmcKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGdldEZvcm0oKXsKKyAgcmV0dXJuIGZvcm07CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIGxvc3REaWdpdHMgc2V0dGluZy4KKyAgKiBUaGlzIHdpbGwgYmUgZWl0aGVyIDxjb2RlPnRydWU8L2NvZGU+IChlbmFibGVkKSBvcgorICAqIDxjb2RlPmZhbHNlPC9jb2RlPiAoZGlzYWJsZWQpLgorICAqCisgICogQHJldHVybiBhIDxjb2RlPmJvb2xlYW48L2NvZGU+IHdoaWNoIGlzIHRoZSB2YWx1ZSBvZiB0aGUgbG9zdERpZ2l0cworICAqICAgICAgICAgICBzZXR0aW5nCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGJvb2xlYW4gZ2V0TG9zdERpZ2l0cygpeworICByZXR1cm4gbG9zdERpZ2l0czsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgcm91bmRpbmdNb2RlIHNldHRpbmcuCisgICogVGhpcyB3aWxsIGJlIG9uZSBvZgorICAqIHtAbGluayAgI1JPVU5EX0NFSUxJTkd9LAorICAqIHtAbGluayAgI1JPVU5EX0RPV059LAorICAqIHtAbGluayAgI1JPVU5EX0ZMT09SfSwKKyAgKiB7QGxpbmsgICNST1VORF9IQUxGX0RPV059LAorICAqIHtAbGluayAgI1JPVU5EX0hBTEZfRVZFTn0sCisgICoge0BsaW5rICAjUk9VTkRfSEFMRl9VUH0sCisgICoge0BsaW5rICAjUk9VTkRfVU5ORUNFU1NBUll9LCBvcgorICAqIHtAbGluayAgI1JPVU5EX1VQfS4KKyAgKgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIHJvdW5kaW5nTW9kZQorICAqICAgICAgICAgc2V0dGluZworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgZ2V0Um91bmRpbmdNb2RlKCl7CisgIHJldHVybiByb3VuZGluZ01vZGU7CisgIH0KKworIC8qKiBSZXR1cm5zIHRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXMgYSByZWFkYWJsZSBzdHJpbmcuCisgICogVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmV0dXJuZWQgcmVwcmVzZW50cyB0aGUgc2V0dGluZ3Mgb2YgdGhlCisgICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCBhcyBmb3VyIGJsYW5rLWRlbGltaXRlZCB3b3JkcworICAqIHNlcGFyYXRlZCBieSBhIHNpbmdsZSBibGFuayBhbmQgd2l0aCBubyBsZWFkaW5nIG9yIHRyYWlsaW5nIGJsYW5rcywKKyAgKiBhcyBmb2xsb3dzOgorICAqIDxvbD4KKyAgKiA8bGk+CisgICogPGNvZGU+ZGlnaXRzPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSBkaWdpdHMgc2V0dGluZyBhcyBhIG51bWVyaWMgd29yZC4KKyAgKiA8bGk+CisgICogPGNvZGU+Zm9ybT08L2NvZGU+LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAqIHRoZSB2YWx1ZSBvZiB0aGUgZm9ybSBzZXR0aW5nIGFzIGFuIHVwcGVyY2FzZSB3b3JkCisgICogKG9uZSBvZiA8Y29kZT5TQ0lFTlRJRklDPC9jb2RlPiwgPGNvZGU+UExBSU48L2NvZGU+LCBvcgorICAqIDxjb2RlPkVOR0lORUVSSU5HPC9jb2RlPikuCisgICogPGxpPgorICAqIDxjb2RlPmxvc3REaWdpdHM9PC9jb2RlPiwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKKyAgKiB0aGUgdmFsdWUgb2YgdGhlIGxvc3REaWdpdHMgc2V0dGluZworICAqICg8Y29kZT4xPC9jb2RlPiBpZiBlbmFibGVkLCA8Y29kZT4wPC9jb2RlPiBpZiBkaXNhYmxlZCkuCisgICogPGxpPgorICAqIDxjb2RlPnJvdW5kaW5nTW9kZT08L2NvZGU+LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAqIHRoZSB2YWx1ZSBvZiB0aGUgcm91bmRpbmdNb2RlIHNldHRpbmcgYXMgYSB3b3JkLgorICAqIFRoaXMgd29yZCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYworICAqIGNvbnN0YW50LgorICAqIDwvb2w+CisgICogPHA+CisgICogRm9yIGV4YW1wbGU6CisgICogPGJyPjxjb2RlPgorICAqIGRpZ2l0cz05IGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAKKyAgKiA8L2NvZGU+CisgICogPHA+CisgICogQWRkaXRpb25hbCB3b3JkcyBtYXkgYmUgYXBwZW5kZWQgdG8gdGhlIHJlc3VsdCBvZgorICAqIDxjb2RlPnRvU3RyaW5nPC9jb2RlPiBpbiB0aGUgZnV0dXJlIGlmIG1vcmUgcHJvcGVydGllcyBhcmUgYWRkZWQKKyAgKiB0byB0aGUgY2xhc3MuCisgICoKKyAgKiBAcmV0dXJuIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIGNvbnRleHQgc2V0dGluZ3MuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKXsKKyAgamF2YS5sYW5nLlN0cmluZyBmb3Jtc3RyPW51bGw7CisgIGludCByPTA7CisgIGphdmEubGFuZy5TdHJpbmcgcm91bmR3b3JkPW51bGw7CisgIHsvKnNlbGVjdCovCisgIGlmIChmb3JtPT1TQ0lFTlRJRklDKQorICAgZm9ybXN0cj0iU0NJRU5USUZJQyI7CisgIGVsc2UgaWYgKGZvcm09PUVOR0lORUVSSU5HKQorICAgZm9ybXN0cj0iRU5HSU5FRVJJTkciOworICBlbHNleworICAgZm9ybXN0cj0iUExBSU4iOy8qIGZvcm09UExBSU4gKi8KKyAgfQorICB9CisgIHtpbnQgJDE9Uk9VTkRTLmxlbmd0aDtyPTA7cjpmb3IoOyQxPjA7JDEtLSxyKyspeworICAgaWYgKHJvdW5kaW5nTW9kZT09Uk9VTkRTW3JdKSAKKyAgICB7CisgICAgIHJvdW5kd29yZD1ST1VORFdPUkRTW3JdOworICAgICBicmVhayByOworICAgIH0KKyAgIH0KKyAgfS8qciovCisgIHJldHVybiAiZGlnaXRzPSIrZGlnaXRzKyIgIisiZm9ybT0iK2Zvcm1zdHIrIiAiKyJsb3N0RGlnaXRzPSIrKGxvc3REaWdpdHM/IjEiOiIwIikrIiAiKyJyb3VuZGluZ01vZGU9Iityb3VuZHdvcmQ7CisgIH0KKworIAorIC8qIDxzZ21sPiBUZXN0IHdoZXRoZXIgcm91bmQgaXMgdmFsaWQuIDwvc2dtbD4gKi8KKyAvLyBUaGlzIGNvdWxkIGJlIG1hZGUgc2hhcmVkIGZvciB1c2UgYnkgQmlnRGVjaW1hbCBmb3Igc2V0U2NhbGUuCisgCisgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1ZhbGlkUm91bmQoaW50IHRlc3Ryb3VuZCl7CisgIGludCByPTA7CisgIHtpbnQgJDI9Uk9VTkRTLmxlbmd0aDtyPTA7cjpmb3IoOyQyPjA7JDItLSxyKyspeworICAgaWYgKHRlc3Ryb3VuZD09Uk9VTkRTW3JdKSAKKyAgICByZXR1cm4gdHJ1ZTsKKyAgIH0KKyAgfS8qciovCisgIHJldHVybiBmYWxzZTsKKyAgfQorIH0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYXRoL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzM2ZWFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorCis8aGVhZD48IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKworPHRpdGxlPkM6XGN2c1xpY3U0alxzcmNcY29tXGlibVxkZW1vXHBhY2thZ2UuaHRtbDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+SUJNIEJpZ0RlY2ltYWwgc3VwcG9ydC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjU0NGVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDM0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogMDYvMDYvMjAwMiAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgamF2YS5sYW5nLk1hdGg7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHRyYW5zbGF0ZXMgbXVsdGlwbGUgaW5wdXQgc2NyaXB0cyB0byBhIHNpbmdsZQorICogb3V0cHV0IHNjcmlwdC4gIEl0IGlzIG5hbWVkIEFueS1UIG9yIEFueS1UL1YsIHdoZXJlIFQgaXMgdGhlIHRhcmdldAorICogYW5kIFYgaXMgdGhlIG9wdGlvbmFsIHZhcmlhbnQuICBUaGUgdGFyZ2V0IFQgaXMgYSBzY3JpcHQuCisgKgorICogPHA+QW4gQW55VHJhbnNsaXRlcmF0b3IgcGFydGl0aW9ucyB0ZXh0IGludG8gcnVucyBvZiB0aGUgc2FtZQorICogc2NyaXB0LCB0b2dldGhlciB3aXRoIGFkamFjZW50IENPTU1PTiBvciBJTkhFUklURUQgY2hhcmFjdGVycy4KKyAqIEFmdGVyIGRldGVybWluaW5nIHRoZSBzY3JpcHQgb2YgZWFjaCBydW4sIGl0IHRyYW5zbGl0ZXJhdGVzIGZyb20KKyAqIHRoYXQgc2NyaXB0IHRvIHRoZSBnaXZlbiB0YXJnZXQvdmFyaWFudC4gIEl0IGRvZXMgc28gYnkKKyAqIGluc3RhbnRpYXRpbmcgYSB0cmFuc2xpdGVyYXRvciBmcm9tIHRoZSBzb3VyY2Ugc2NyaXB0IHRvIHRoZQorICogdGFyZ2V0L3ZhcmlhbnQuICBJZiBhIHJ1biBjb25zaXN0cyBvbmx5IG9mIHRoZSB0YXJnZXQgc2NyaXB0LAorICogQ09NTU9OLCBvciBJTkhFUklURUQgY2hhcmFjdGVycywgdGhlbiB0aGUgcnVuIGlzIG5vdCBjaGFuZ2VkLgorICoKKyAqIDxwPkF0IHN0YXJ0dXAsIGFsbCBwb3NzaWJsZSBBbnlUcmFuc2xpdGVyYXRvcnMgYXJlIHJlZ2lzdGVyZWQgd2l0aAorICogdGhlIHN5c3RlbSwgYXMgZGV0ZXJtaW5lZCBieSBleGFtaW5pbmcgdGhlIHJlZ2lzdGVyZWQgc2NyaXB0CisgKiB0cmFuc2xpdGVyYXRvcnMuCisgKgorICogQHNpbmNlIElDVSAyLjIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgQW55VHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworCisgICAgc3RhdGljIGZpbmFsIGNoYXIgVEFSR0VUX1NFUCA9ICctJzsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBWQVJJQU5UX1NFUCA9ICcvJzsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTlVMTF9JRCA9ICJOdWxsIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIExBVElOX1BJVk9UID0gIi1MYXRpbjtMYXRpbi0iOworCisgICAgLyoqCisgICAgICogQ2FjaGUgbWFwcGluZyBVU2NyaXB0Q29kZSB2YWx1ZXMgdG8gVHJhbnNsaXRlcmF0b3IqLgorICAgICAqLworICAgIHByaXZhdGUgTWFwIGNhY2hlOworCisgICAgLyoqCisgICAgICogVGhlIHRhcmdldCBvciB0YXJnZXQvdmFyaWFudCBzdHJpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFyZ2V0OworCisgICAgLyoqCisgICAgICogVGhlIHRhcmdldCBzY3JpcHQgY29kZS4gIE5ldmVyIFVTQ1JJUFRfSU5WQUxJRF9DT0RFLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHRhcmdldFNjcmlwdDsKKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBhbGxTdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgaW50IGFsbExpbWl0ID0gcG9zLmxpbWl0OworCisgICAgICAgIFNjcmlwdFJ1bkl0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgIG5ldyBTY3JpcHRSdW5JdGVyYXRvcih0ZXh0LCBwb3MuY29udGV4dFN0YXJ0LCBwb3MuY29udGV4dExpbWl0KTsKKworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAvLyBJZ25vcmUgcnVucyBpbiB0aGUgYW50ZSBjb250ZXh0CisgICAgICAgICAgICBpZiAoaXQubGltaXQgPD0gYWxsU3RhcnQpIGNvbnRpbnVlOworCisgICAgICAgICAgICAvLyBUcnkgdG8gaW5zdGFudGlhdGUgdHJhbnNsaXRlcmF0b3IgZnJvbSBpdC5zY3JpcHRDb2RlIHRvCisgICAgICAgICAgICAvLyBvdXIgdGFyZ2V0IG9yIHRhcmdldC92YXJpYW50CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gZ2V0VHJhbnNsaXRlcmF0b3IoaXQuc2NyaXB0Q29kZSk7CisKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vIHRyYW5zbGl0ZXJhdG9yLiAgRG8gbm90aGluZywgYnV0IGtlZXAKKyAgICAgICAgICAgICAgICAvLyBwb3Muc3RhcnQgdXAgdG8gZGF0ZS4KKyAgICAgICAgICAgICAgICBwb3Muc3RhcnQgPSBpdC5saW1pdDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgdGhlIHJ1biBlbmQgaXMgYmVmb3JlIHRoZSB0cmFuc2xpdGVyYXRpb24gbGltaXQsIGRvCisgICAgICAgICAgICAvLyBhIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBPdGhlcndpc2UgZG8gYW4KKyAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIG9uZS4KKyAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwgPSBpc0luY3JlbWVudGFsICYmIChpdC5saW1pdCA+PSBhbGxMaW1pdCk7CisKKyAgICAgICAgICAgIHBvcy5zdGFydCA9IE1hdGgubWF4KGFsbFN0YXJ0LCBpdC5zdGFydCk7CisgICAgICAgICAgICBwb3MubGltaXQgPSBNYXRoLm1pbihhbGxMaW1pdCwgaXQubGltaXQpOworICAgICAgICAgICAgaW50IGxpbWl0ID0gcG9zLmxpbWl0OworICAgICAgICAgICAgdC5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgcG9zLCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpbnQgZGVsdGEgPSBwb3MubGltaXQgLSBsaW1pdDsKKyAgICAgICAgICAgIGFsbExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgaXQuYWRqdXN0TGltaXQoZGVsdGEpOworCisgICAgICAgICAgICAvLyBXZSdyZSBkb25lIGlmIHdlIGVudGVyIHRoZSBwb3N0IGNvbnRleHQKKyAgICAgICAgICAgIGlmIChpdC5saW1pdCA+PSBhbGxMaW1pdCkgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXN0b3JlIGxpbWl0LiAgcG9zLnN0YXJ0IGlzIGZpbmUgd2hlcmUgdGhlIGxhc3QgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgLy8gbGVmdCBpdCwgb3IgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBydW4uCisgICAgICAgIHBvcy5saW1pdCA9IGFsbExpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IKKyAgICAgKiBAcGFyYW0gaWQgdGhlIElEIG9mIHRoZSBmb3JtIFMtVCBvciBTLVQvViwgd2hlcmUgVCBpcyB0aGVUYXJnZXQKKyAgICAgKiBhbmQgViBpcyB0aGVWYXJpYW50LiAgTXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIHRoZVRhcmdldCB0aGUgdGFyZ2V0IG5hbWUuICBNdXN0IG5vdCBiZSBlbXB0eSwgYW5kIG11c3QKKyAgICAgKiBuYW1lIGEgc2NyaXB0IGNvcnJlc3BvbmRpbmcgdG8gdGhlVGFyZ2V0U2NyaXB0LgorICAgICAqIEBwYXJhbSB0aGVWYXJpYW50IHRoZSB2YXJpYW50IG5hbWUsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYKKyAgICAgKiB0aGVyZSBpcyBubyB2YXJpYW50CisgICAgICogQHBhcmFtIHRoZVRhcmdldFNjcmlwdCB0aGUgc2NyaXB0IGNvZGUgY29ycmVzcG9uZGluZyB0bworICAgICAqIHRoZVRhcmdldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIEFueVRyYW5zbGl0ZXJhdG9yKFN0cmluZyBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aGVUYXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGhlVmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aGVUYXJnZXRTY3JpcHQpIHsKKyAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICB0YXJnZXRTY3JpcHQgPSB0aGVUYXJnZXRTY3JpcHQ7CisgICAgICAgIGNhY2hlID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICB0YXJnZXQgPSB0aGVUYXJnZXQ7CisgICAgICAgIGlmICh0aGVWYXJpYW50Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgdGFyZ2V0ID0gdGhlVGFyZ2V0ICsgVkFSSUFOVF9TRVAgKyB0aGVWYXJpYW50OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHNvdXJjZSB0byBvdXIgdGFyZ2V0IG9yCisgICAgICogdGFyZ2V0L3ZhcmlhbnQuICBSZXR1cm5zIE5VTEwgaWYgdGhlIHNvdXJjZSBpcyB0aGUgc2FtZSBhcyBvdXIKKyAgICAgKiB0YXJnZXQgc2NyaXB0LCBvciBpZiB0aGUgc291cmNlIGlzIFVTQ1JJUFRfSU5WQUxJRF9DT0RFLgorICAgICAqIENhY2hlcyB0aGUgcmVzdWx0IGFuZCByZXR1cm5zIHRoZSBzYW1lIHRyYW5zbGl0ZXJhdG9yIHRoZSBuZXh0CisgICAgICogdGltZS4gIFRoZSBjYWxsZXIgZG9lcyBOT1Qgb3duIHRoZSByZXN1bHQgYW5kIG11c3Qgbm90IGRlbGV0ZQorICAgICAqIGl0LgorICAgICAqLworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgZ2V0VHJhbnNsaXRlcmF0b3IoaW50IHNvdXJjZSkgeworICAgICAgICBpZiAoc291cmNlID09IHRhcmdldFNjcmlwdCB8fCBzb3VyY2UgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgSW50ZWdlciBrZXkgPSBuZXcgSW50ZWdlcihzb3VyY2UpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gKFRyYW5zbGl0ZXJhdG9yKSBjYWNoZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZU5hbWUgPSBVU2NyaXB0LmdldE5hbWUoc291cmNlKTsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZU5hbWUgKyBUQVJHRVRfU0VQICsgdGFyZ2V0OworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgRk9SV0FSRCk7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsgfQorICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworCisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHBpdm90IGFyb3VuZCBMYXRpbiwgb3VyIG1vc3QgY29tbW9uIHNjcmlwdAorICAgICAgICAgICAgICAgIGlkID0gc291cmNlTmFtZSArIExBVElOX1BJVk9UICsgdGFyZ2V0OworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNhY2hlLnB1dChrZXksIHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHN0YW5kYXJkIHRyYW5zbGl0ZXJhdG9ycyB3aXRoIHRoZSBzeXN0ZW0uICBDYWxsZWQgYnkKKyAgICAgKiBUcmFuc2xpdGVyYXRvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uICBTY2FuIGFsbCBjdXJyZW50IHRhcmdldHMKKyAgICAgKiBhbmQgcmVnaXN0ZXIgdGhvc2UgdGhhdCBhcmUgc2NyaXB0cyBUIGFzIEFueS1UL1YuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisKKyAgICAgICAgSGFzaFNldCBzZWVuID0gbmV3IEhhc2hTZXQoKTsKKworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIHM9VHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOyBzLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzLm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgIC8vIElnbm9yZSB0aGUgIkFueSIgc291cmNlCisgICAgICAgICAgICBpZiAoc291cmNlLmVxdWFsc0lnbm9yZUNhc2UoQU5ZKSkgY29udGludWU7CisKKyAgICAgICAgICAgIGZvciAoRW51bWVyYXRpb24gdD1UcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgICAgICAgICAgICAgIHQuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSAoU3RyaW5nKSB0Lm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgICAgICAvLyBPbmx5IHByb2Nlc3MgZWFjaCB0YXJnZXQgb25jZQorICAgICAgICAgICAgICAgIGlmIChzZWVuLmNvbnRhaW5zKHRhcmdldCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHNlZW4uYWRkKHRhcmdldCk7CisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGUgdGFyZ2V0LiAgSWYgbm90IGEgc2NyaXB0LCBpZ25vcmUuCisgICAgICAgICAgICAgICAgaW50IHRhcmdldFNjcmlwdCA9IHNjcmlwdE5hbWVUb0NvZGUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0U2NyaXB0ID09IFVTY3JpcHQuSU5WQUxJRF9DT0RFKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGZvciAoRW51bWVyYXRpb24gdj1UcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICB2Lmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKSB2Lm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkOworICAgICAgICAgICAgICAgICAgICBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChBTlksIHRhcmdldCwgdmFyaWFudCk7CisgICAgICAgICAgICAgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIHRyYW5zID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKGlkLCB0YXJnZXQsIHZhcmlhbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFNjcmlwdCk7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UodHJhbnMpOworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKHRhcmdldCwgTlVMTF9JRCwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2NyaXB0IGNvZGUgZm9yIGEgZ2l2ZW4gbmFtZSwgb3IKKyAgICAgKiBVU2NyaXB0LklOVkFMSURfQ09ERSBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNjcmlwdE5hbWVUb0NvZGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50W10gY29kZXMgPSBVU2NyaXB0LmdldENvZGUobmFtZSk7CisgICAgICAgICAgICByZXR1cm4gY29kZXMgIT0gbnVsbCA/IGNvZGVzWzBdIDogVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIH1jYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgcmV0dXJuIFVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTY3JpcHRSdW5JdGVyYXRvcgorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHNlcmllcyBvZiByYW5nZXMgY29ycmVzcG9uZGluZyB0byBzY3JpcHRzLiBUaGV5IHdpbGwgYmUKKyAgICAgKiBvZiB0aGUgZm9ybToKKyAgICAgKgorICAgICAqIGNjY2NTU2NTU2NjY2NUVGNUY2NjYyAgIC0gYyA9IGNvbW1vbiwgUyA9IGZpcnN0IHNjcmlwdCwgVCA9IHNlY29uZAorICAgICAqIHwgICAgICAgICAgICB8ICAgICAgICAgIC0gZmlyc3QgcnVuIChzdGFydCwgbGltaXQpCisgICAgICogICAgICAgICAgfCAgICAgICAgICAgfCAgLSBzZWNvbmQgcnVuIChzdGFydCwgbGltaXQpCisgICAgICoKKyAgICAgKiBUaGF0IGlzLCB0aGUgcnVucyB3aWxsIG92ZXJsYXAuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgc28gdGhhdCBhCisgICAgICogdHJhbnNsaXRlcmF0b3IgY2FuIGNvbnNpZGVyIGNvbW1vbiBjaGFyYWN0ZXJzIGJvdGggYmVmb3JlIGFuZCBhZnRlcgorICAgICAqIHRoZSBzY3JpcHRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNjcmlwdFJ1bkl0ZXJhdG9yIHsKKworICAgICAgICBwcml2YXRlIFJlcGxhY2VhYmxlIHRleHQ7CisgICAgICAgIHByaXZhdGUgaW50IHRleHRTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdGV4dExpbWl0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY29kZSBvZiB0aGUgY3VycmVudCBydW4sIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLiAgTWF5CisgICAgICAgICAqIGJlIFVTY3JpcHQuSU5WQUxJRF9DT0RFIGlmIGFuZCBvbmx5IGlmIHRoZSBlbnRpcmUgdGV4dCBpcworICAgICAgICAgKiBDT01NT04vSU5IRVJJVEVELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzY3JpcHRDb2RlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIHJ1biwgaW5jbHVzaXZlLCB2YWxpZCBhZnRlciBuZXh0KCkgcmV0dXJucy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3RhcnQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlbmQgb2YgdGhlIHJ1biwgZXhjbHVzaXZlLCB2YWxpZCBhZnRlciBuZXh0KCkgcmV0dXJucy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBydW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gdGV4dCBmcm9tIHN0YXJ0CisgICAgICAgICAqIChpbmNsdXNpdmUpIHRvIGxpbWl0IChleGNsdXNpdmUpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNjcmlwdFJ1bkl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgdGhpcy50ZXh0U3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIHRoaXMudGV4dExpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gc3RhcnQ7CisgICAgICAgIH0KKworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIFRSVUUgaWYgdGhlcmUgYXJlIGFueSBtb3JlIHJ1bnMuICBUUlVFIGlzIGFsd2F5cworICAgICAgICAgKiByZXR1cm5lZCBhdCBsZWFzdCBvbmNlLiAgVXBvbiByZXR1cm4sIHRoZSBjYWxsZXIgc2hvdWxkCisgICAgICAgICAqIGV4YW1pbmUgc2NyaXB0Q29kZSwgc3RhcnQsIGFuZCBsaW1pdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICBpbnQgY2g7CisgICAgICAgICAgICBpbnQgczsKKworICAgICAgICAgICAgc2NyaXB0Q29kZSA9IFVTY3JpcHQuSU5WQUxJRF9DT0RFOyAvLyBkb24ndCBrbm93IHNjcmlwdCB5ZXQKKyAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisKKyAgICAgICAgICAgIC8vIEFyZSB3ZSBkb25lPworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IHRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSBzdGFydCBiYWNrIHRvIGluY2x1ZGUgYWRqYWNlbnQgQ09NTU9OIG9yIElOSEVSSVRFRAorICAgICAgICAgICAgLy8gY2hhcmFjdGVycworICAgICAgICAgICAgd2hpbGUgKHN0YXJ0ID4gdGV4dFN0YXJ0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXIzMkF0KHN0YXJ0IC0gMSk7IC8vIGxvb2sgYmFjaworICAgICAgICAgICAgICAgIHMgPSBVU2NyaXB0LmdldFNjcmlwdChjaCk7CisgICAgICAgICAgICAgICAgaWYgKHMgPT0gVVNjcmlwdC5DT01NT04gfHwgcyA9PSBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSBsaW1pdCBhaGVhZCB0byBpbmNsdWRlIENPTU1PTiwgSU5IRVJJVEVELCBhbmQgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gb2YgdGhlIGN1cnJlbnQgc2NyaXB0LgorICAgICAgICAgICAgd2hpbGUgKGxpbWl0IDwgdGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXIzMkF0KGxpbWl0KTsgLy8gbG9vayBhaGVhZAorICAgICAgICAgICAgICAgIHMgPSBVU2NyaXB0LmdldFNjcmlwdChjaCk7CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gVVNjcmlwdC5DT01NT04gJiYgcyAhPSBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0Q29kZSA9PSBVU2NyaXB0LklOVkFMSURfQ09ERSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29kZSA9IHM7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocyAhPSBzY3JpcHRDb2RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2xpbWl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZXR1cm4gVFJVRSBldmVuIGlmIHRoZSBlbnRpcmUgdGV4dCBpcyBDT01NT04gLyBJTkhFUklURUQsIGluCisgICAgICAgICAgICAvLyB3aGljaCBjYXNlIHNjcmlwdENvZGUgd2lsbCBiZSBVU2NyaXB0LklOVkFMSURfQ09ERS4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkanVzdHMgaW50ZXJuYWwgaW5kaWNlcyBmb3IgYSBjaGFuZ2UgaW4gdGhlIGxpbWl0IGluZGV4IG9mIHRoZQorICAgICAgICAgKiBnaXZlbiBkZWx0YS4gIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgdGhlIGxpbWl0IGhhcyBpbmNyZWFzZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBhZGp1c3RMaW1pdChpbnQgZGVsdGEpIHsKKyAgICAgICAgICAgIGxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgdGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzZWEzMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEKQEAgLTAsMCArMSwxMjI5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVCaURpUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogU2hhcGUgQXJhYmljIHRleHQgb24gYSBjaGFyYWN0ZXIgYmFzaXMuCisgKgorICogPHA+QXJhYmljU2hhcGluZyBwZXJmb3JtcyBiYXNpYyBvcGVyYXRpb25zIGZvciAic2hhcGluZyIgQXJhYmljIHRleHQuIEl0IGlzIG1vc3QKKyAqIHVzZWZ1bCBmb3IgdXNlIHdpdGggbGVnYWN5IGRhdGEgZm9ybWF0cyBhbmQgbGVnYWN5IGRpc3BsYXkgdGVjaG5vbG9neQorICogKHNpbXBsZSB0ZXJtaW5hbHMpLiBBbGwgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkIG9uIFVuaWNvZGUgY2hhcmFjdGVycy48L3A+CisgKgorICogPHA+VGV4dC1iYXNlZCBzaGFwaW5nIG1lYW5zIHRoYXQgc29tZSBjaGFyYWN0ZXIgY29kZSBwb2ludHMgaW4gdGhlIHRleHQgYXJlCisgKiByZXBsYWNlZCBieSBvdGhlcnMgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LiBJdCB0cmFuc2Zvcm1zIG9uZSBraW5kIG9mIHRleHQKKyAqIGludG8gYW5vdGhlci4gSW4gY29tcGFyaXNvbiwgbW9kZXJuIGRpc3BsYXlzIGZvciBBcmFiaWMgdGV4dCBzZWxlY3QKKyAqIGFwcHJvcHJpYXRlLCBjb250ZXh0LWRlcGVuZGVudCBmb250IGdseXBocyBmb3IgZWFjaCB0ZXh0IGVsZW1lbnQsIHdoaWNoIG1lYW5zCisgKiB0aGF0IHRoZXkgdHJhbnNmb3JtIHRleHQgaW50byBhIGdseXBoIHZlY3Rvci48L3A+CisgKgorICogPHA+VGV4dCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG5lY2Vzc2FyeSB3aGVuIG1vZGVybiBkaXNwbGF5IHRlY2hub2xvZ3kgaXMgbm90CisgKiBhdmFpbGFibGUgb3Igd2hlbiB0ZXh0IG5lZWRzIHRvIGJlIHRyYW5zZm9ybWVkIHRvIG9yIGZyb20gbGVnYWN5IGZvcm1hdHMgdGhhdAorICogdXNlICJzaGFwZWQiIGNoYXJhY3RlcnMuIFNpbmNlIHRoZSBBcmFiaWMgc2NyaXB0IGlzIGN1cnNpdmUsIGNvbm5lY3RpbmcKKyAqIGFkamFjZW50IGxldHRlcnMgdG8gZWFjaCBvdGhlciwgY29tcHV0ZXJzIHNlbGVjdCBpbWFnZXMgZm9yIGVhY2ggbGV0dGVyIGJhc2VkCisgKiBvbiB0aGUgc3Vycm91bmRpbmcgbGV0dGVycy4gVGhpcyB1c3VhbGx5IHJlc3VsdHMgaW4gZm91ciBpbWFnZXMgcGVyIEFyYWJpYworICogbGV0dGVyOiBpbml0aWFsLCBtaWRkbGUsIGZpbmFsLCBhbmQgaXNvbGF0ZWQgZm9ybXMuIEluIFVuaWNvZGUsIG9uIHRoZSBvdGhlcgorICogaGFuZCwgbGV0dGVycyBhcmUgbm9ybWFsbHkgc3RvcmVkIGFic3RyYWN0LCBhbmQgYSBkaXNwbGF5IHN5c3RlbSBpcyBleHBlY3RlZAorICogdG8gc2VsZWN0IHRoZSBuZWNlc3NhcnkgZ2x5cGhzLiAoVGhpcyBtYWtlcyBzZWFyY2hpbmcgYW5kIG90aGVyIHRleHQKKyAqIHByb2Nlc3NpbmcgZWFzaWVyIGJlY2F1c2UgdGhlIHNhbWUgbGV0dGVyIGhhcyBvbmx5IG9uZSBjb2RlLikgSXQgaXMgcG9zc2libGUKKyAqIHRvIG1pbWljIHRoaXMgd2l0aCB0ZXh0IHRyYW5zZm9ybWF0aW9ucyBiZWNhdXNlIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIGluCisgKiBVbmljb2RlIHRoYXQgYXJlIHJlbmRlcmVkIGFzIGxldHRlcnMgd2l0aCBhIHNwZWNpZmljIHNoYXBlCisgKiAob3IgY3Vyc2l2ZSBjb25uZWN0aXZpdHkpLiBUaGV5IHdlcmUgaW5jbHVkZWQgZm9yIGludGVyb3BlcmFiaWxpdHkgd2l0aAorICogbGVnYWN5IHN5c3RlbXMgYW5kIGNvZGVwYWdlcywgYW5kIGZvciB1bnNvcGhpc3RpY2F0ZWQgZGlzcGxheSBzeXN0ZW1zLjwvcD4KKyAqCisgKiA8cD5BIHNlY29uZCBraW5kIG9mIHRleHQgdHJhbnNmb3JtYXRpb25zIGlzIHN1cHBvcnRlZCBmb3IgQXJhYmljIGRpZ2l0czoKKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IGNvZGVwYWdlcyB0aGF0IG9ubHkgaW5jbHVkZSBFdXJvcGVhbiBkaWdpdHMsCisgKiBpdCBpcyBwb3NzaWJsZSB0byByZXBsYWNlIG9uZSBzZXQgb2YgZGlnaXRzIGJ5IGFub3RoZXIsIGNoYW5naW5nIHRoZQorICogY2hhcmFjdGVyIGNvZGUgcG9pbnRzLiBUaGVzZSBvcGVyYXRpb25zIGNhbiBiZSBwZXJmb3JtZWQgZm9yIGVpdGhlcgorICogQXJhYmljLUluZGljIERpZ2l0cyAoVSswNjYwLi4uVSswNjY5KSBvciBFYXN0ZXJuIChFeHRlbmRlZCkgQXJhYmljLUluZGljCisgKiBkaWdpdHMgKFUrMDZmMC4uLlUrMDZmOSkuPC9wPgorICoKKyAqIDxwPlNvbWUgcmVwbGFjZW1lbnRzIG1heSByZXN1bHQgaW4gbW9yZSBvciBmZXdlciBjaGFyYWN0ZXJzIChjb2RlIHBvaW50cykuCisgKiBCeSBkZWZhdWx0LCB0aGlzIG1lYW5zIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtYXkgcmVjZWl2ZSB0ZXh0IHdpdGggYQorICogbGVuZ3RoIGRpZmZlcmVudCBmcm9tIHRoZSBzb3VyY2UgbGVuZ3RoLiBTb21lIGxlZ2FjeSBzeXN0ZW1zIHJlbHkgb24gdGhlCisgKiBsZW5ndGggb2YgdGhlIHRleHQgdG8gYmUgY29uc3RhbnQuIFRoZXkgZXhwZWN0IGV4dHJhIHNwYWNlcyB0byBiZSBhZGRlZAorICogb3IgY29uc3VtZWQgZWl0aGVyIG5leHQgdG8gdGhlIGFmZmVjdGVkIGNoYXJhY3RlciBvciBhdCB0aGUgZW5kIG9mIHRoZQorICogdGV4dC48L3A+CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEFyYWJpY1NoYXBpbmcgeworICAgIHByaXZhdGUgZmluYWwgaW50IG9wdGlvbnM7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzTG9naWNhbDsgLy8gY29udmVuaWVuY2UKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSByYW5nZSBvZiB0ZXh0IGluIHRoZSBzb3VyY2UgYXJyYXksIHB1dHRpbmcgdGhlIHJlc3VsdCAKKyAgICAgKiBpbnRvIGEgcmFuZ2Ugb2YgdGV4dCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXksIGFuZCByZXR1cm4gdGhlIG51bWJlcgorICAgICAqIG9mIGNoYXJhY3RlcnMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgQW4gYXJyYXkgY29udGFpbmluZyB0aGUgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBzb3VyY2VTdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gY29udmVydAorICAgICAqIEBwYXJhbSBzb3VyY2VMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGRlc3QgVGhlIGRlc3RpbmF0aW9uIGFycmF5IHRoYXQgd2lsbCByZWNlaXZlIHRoZSByZXN1bHQuCisgICAgICogICBJdCBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb25seSBpZiAgPGNvZGU+ZGVzdFNpemU8L2NvZGU+IGlzIDAuICAKKyAgICAgKiBAcGFyYW0gZGVzdFN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB0byB1c2UuCisgICAgICogQHBhcmFtIGRlc3RTaXplIFRoZSBzaXplIChjYXBhY2l0eSkgb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4KKyAgICAgKiAgIElmIDxjb2RlPmRlc3RTaXplPC9jb2RlPiBpcyAwLCB0aGVuIG5vIG91dHB1dCBpcyBwcm9kdWNlZCwKKyAgICAgKiAgIGJ1dCB0aGUgbmVjZXNzYXJ5IGJ1ZmZlciBzaXplIGlzIHJldHVybmVkICgicHJlZmxpZ2h0aW5nIikuICBUaGlzCisgICAgICogICBkb2VzIG5vdCB2YWxpZGF0ZSB0aGUgdGV4dCBhZ2FpbnN0IHRoZSBvcHRpb25zLCBmb3IgZXhhbXBsZSwgCisgICAgICogICBpZiBsZXR0ZXJzIGFyZSBiZWluZyB1bnNoYXBlZCwgYW5kIHNwYWNlcyBhcmUgYmVpbmcgY29uc3VtZWQKKyAgICAgKiAgIGZvbGxvd2luZyBsYW1hbGVmLCB0aGlzIHdpbGwgbm90IGRldGVjdCBhIGxhbWFsZWYgd2l0aG91dCBhIAorICAgICAqICAgY29ycmVzcG9uZGluZyBzcGFjZS4gIEFuIGVycm9yIHdpbGwgYmUgdGhyb3duIHdoZW4gdGhlIGFjdHVhbAorICAgICAqICAgY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQuCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGNoYXJzIHdyaXR0ZW4gdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4KKyAgICAgKiAgIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiBubyBvdXRwdXQgd2FzIHdyaXR0ZW4sIG9yIGl0IG1heSBiZQorICAgICAqICAgaW5jb21wbGV0ZS4KKyAgICAgKiBAdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gaWYgdGhlIHRleHQgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBzaGFwZShjaGFyW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsIGludCBzb3VyY2VMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RTaXplKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic291cmNlIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2VTdGFydCA8IDAgfHwgc291cmNlTGVuZ3RoIDwgMCB8fCBzb3VyY2VTdGFydCArIHNvdXJjZUxlbmd0aCA+IHNvdXJjZS5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBzb3VyY2Ugc3RhcnQgKCIgKyBzb3VyY2VTdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIGxlbmd0aCAoIiArIHNvdXJjZUxlbmd0aCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGZvciBidWZmZXIgb2YgbGVuZ3RoICIgKyBzb3VyY2UubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVzdCA9PSBudWxsICYmIGRlc3RTaXplICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm51bGwgZGVzdCByZXF1aXJlcyBkZXN0U2l6ZSA9PSAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChkZXN0U2l6ZSAhPSAwKSAmJgorICAgICAgICAgICAgKGRlc3RTdGFydCA8IDAgfHwgZGVzdFNpemUgPCAwIHx8IGRlc3RTdGFydCArIGRlc3RTaXplID4gZGVzdC5sZW5ndGgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgZGVzdCBzdGFydCAoIiArIGRlc3RTdGFydCArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBvciBzaXplICgiICsgZGVzdFNpemUgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgZm9yIGJ1ZmZlciBvZiBsZW5ndGggIiArIGRlc3QubGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbnRlcm5hbFNoYXBlKHNvdXJjZSwgc291cmNlU3RhcnQsIHNvdXJjZUxlbmd0aCwgZGVzdCwgZGVzdFN0YXJ0LCBkZXN0U2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHJhbmdlIG9mIHRleHQgaW4gcGxhY2UuICBUaGlzIG1heSBvbmx5IGJlIHVzZWQgaWYgdGhlIExlbmd0aCBvcHRpb24KKyAgICAgKiBkb2VzIG5vdCBncm93IG9yIHNocmluayB0aGUgdGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgQW4gYXJyYXkgY29udGFpbmluZyB0aGUgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gY29udmVydAorICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGlmIHRoZSB0ZXh0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgYWNjb3JkaW5nIHRvIHRoZSBvcHRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNoYXBlKGNoYXJbXSBzb3VyY2UsIGludCBzdGFydCwgaW50IGxlbmd0aCkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworICAgICAgICBpZiAoKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigiQ2Fubm90IHNoYXBlIGluIHBsYWNlIHdpdGggbGVuZ3RoIG9wdGlvbiBncm93L3Nocmluay4iKTsKKyAgICAgICAgfQorICAgICAgICBzaGFwZShzb3VyY2UsIHN0YXJ0LCBsZW5ndGgsIHNvdXJjZSwgc3RhcnQsIGxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHN0cmluZywgcmV0dXJuaW5nIHRoZSBuZXcgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBjb252ZXJ0CisgICAgICogQHJldHVybiB0aGUgY29udmVydGVkIHN0cmluZworICAgICAqIEB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBjb252ZXJ0ZWQgYWNjb3JkaW5nIHRvIHRoZSBvcHRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc2hhcGUoU3RyaW5nIHRleHQpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIHNyYyA9IHRleHQudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgY2hhcltdIGRlc3QgPSBzcmM7CisgICAgICAgIGlmICgoKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSAmJgorICAgICAgICAgICAgKChvcHRpb25zICYgTEVUVEVSU19NQVNLKSA9PSBMRVRURVJTX1VOU0hBUEUpKSB7CisKKyAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltzcmMubGVuZ3RoICogMl07IC8vIG1heAorICAgICAgICB9CisgICAgICAgIGludCBsZW4gPSBzaGFwZShzcmMsIDAsIHNyYy5sZW5ndGgsIGRlc3QsIDAsIGRlc3QubGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LCAwLCBsZW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBBcmFiaWNTaGFwaW5nIHVzaW5nIHRoZSBvcHRpb25zIGZsYWdzLgorICAgICAqIFRoZSBmbGFncyBhcmUgYXMgZm9sbG93czo8YnI+CisgICAgICogJ0xFTkdUSCcgZmxhZ3MgY29udHJvbCB3aGV0aGVyIHRoZSB0ZXh0IGNhbiBjaGFuZ2Ugc2l6ZSwgYW5kIGlmIG5vdCwKKyAgICAgKiBob3cgdG8gbWFpbnRhaW4gdGhlIHNpemUgb2YgdGhlIHRleHQgd2hlbiBMYW1BbGVmIGxpZ2F0dXJlcyBhcmUgCisgICAgICogZm9ybWVkIG9yIGJyb2tlbi48YnI+CisgICAgICogJ1RFWFRfRElSRUNUSU9OJyBmbGFncyBjb250cm9sIHdoZXRoZXIgdGhlIHRleHQgaXMgcmVhZCBhbmQgd3JpdHRlbgorICAgICAqIGluIHZpc3VhbCBvcmRlciBvciBpbiBsb2dpY2FsIG9yZGVyLjxicj4KKyAgICAgKiAnTEVUVEVSU19TSEFQRScgZmxhZ3MgY29udHJvbCB3aGV0aGVyIGNvbnZlcnNpb24gaXMgdG8gb3IgZnJvbQorICAgICAqIHByZXNlbnRhdGlvbiBmb3Jtcy48YnI+CisgICAgICogJ0RJR0lUUycgZmxhZ3MgY29udHJvbCB3aGV0aGVyIGRpZ2l0cyBhcmUgc2hhcGVkLCBhbmQgd2hldGhlciBmcm9tCisgICAgICogRXVyb3BlYW4gdG8gQXJhYmljLUluZGljIG9yIHZpY2UtdmVyc2EuPGJyPgorICAgICAqICdESUdJVF9UWVBFJyBmbGFncyBjb250cm9sIHdoZXRoZXIgc3RhbmRhcmQgb3IgZXh0ZW5kZWQgQXJhYmljLUluZGljCisgICAgICogZGlnaXRzIGFyZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBkaWdpdCBjb252ZXJzaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBBcmFiaWNTaGFwaW5nKGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAgIGlmICgob3B0aW9ucyAmIERJR0lUU19NQVNLKSA+IDB4ODApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBESUdJVFMgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgICAgIGlzTG9naWNhbCA9IChvcHRpb25zICYgVEVYVF9ESVJFQ1RJT05fTUFTSykgPT0gVEVYVF9ESVJFQ1RJT05fTE9HSUNBTDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiBhbGxvdyB0aGUgcmVzdWx0IHRvIGhhdmUgYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIHNvdXJjZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfR1JPV19TSFJJTksgPSAwOworCisgICAgLyoqCisgICAgICogTWVtb3J5IG9wdGlvbjogdGhlIHJlc3VsdCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzb3VyY2UuCisgICAgICogSWYgbW9yZSByb29tIGlzIG5lY2Vzc2FyeSwgdGhlbiB0cnkgdG8gY29uc3VtZSBzcGFjZXMgbmV4dCB0byBtb2RpZmllZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiB0aGUgcmVzdWx0IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNvdXJjZS4KKyAgICAgKiBJZiBtb3JlIHJvb20gaXMgbmVjZXNzYXJ5LCB0aGVuIHRyeSB0byBjb25zdW1lIHNwYWNlcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EID0gMjsKKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IHRoZSByZXN1bHQgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgc291cmNlLgorICAgICAqIElmIG1vcmUgcm9vbSBpcyBuZWNlc3NhcnksIHRoZW4gdHJ5IHRvIGNvbnN1bWUgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcgPSAzOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBtZW1vcnkgb3B0aW9ucy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX01BU0sgPSAzOworCisKKyAgICAvKiogCisgICAgICogRGlyZWN0aW9uIGluZGljYXRvcjogdGhlIHNvdXJjZSBpcyBpbiBsb2dpY2FsIChrZXlib2FyZCkgb3JkZXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgPSAwOworCisgICAgLyoqIAorICAgICAqIERpcmVjdGlvbiBpbmRpY2F0b3I6IHRoZSBzb3VyY2UgaXMgaW4gdmlzdWFsIChkaXNwbGF5KSBvcmRlciwgdGhhdCBpcywKKyAgICAgKiB0aGUgbGVmdG1vc3QgZGlzcGxheWVkIGNoYXJhY3RlciBpcyBzdG9yZWQgZmlyc3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiA9IDQ7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGRpcmVjdGlvbiBpbmRpY2F0b3JzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX0RJUkVDVElPTl9NQVNLID0gNDsKKworCisgICAgLyoqCisgICAgICogTGV0dGVyIHNoYXBpbmcgb3B0aW9uOiBkbyBub3QgcGVyZm9ybSBsZXR0ZXIgc2hhcGluZy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19OT09QID0gMDsKKworICAgIC8qKiAKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugbm9ybWF0aXZlIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2ssCisgICAgICogYnkgc2hhcGVkIG9uZXMgaW4gdGhlIFUrRkU3MCAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrLiBQZXJmb3JtcyBMYW0tQWxlZiBsaWdhdHVyZQorICAgICAqIHN1YnN0aXR1dGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFID0gODsKKworICAgIC8qKiAKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugc2hhcGVkIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVK0ZFNzAgKFByZXNlbnRhdGlvbiBGb3JtcyBCKSBibG9jaworICAgICAqIGJ5IG5vcm1hdGl2ZSBvbmVzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2suICBDb252ZXJ0cyBMYW0tQWxlZiBsaWdhdHVyZXMgdG8gcGFpcnMgb2YgTGFtIGFuZAorICAgICAqIEFsZWYgY2hhcmFjdGVycywgY29uc3VtaW5nIHNwYWNlcyBpZiByZXF1aXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1VOU0hBUEUgPSAweDEwOworCisgICAgLyoqCisgICAgICogTGV0dGVyIHNoYXBpbmcgb3B0aW9uOiByZXBsYWNlIG5vcm1hdGl2ZSBsZXR0ZXIgY2hhcmFjdGVycyBpbiB0aGUgVSswNjAwIChBcmFiaWMpIGJsb2NrLAorICAgICAqIGV4Y2VwdCBmb3IgdGhlIFRBU0hLRUVMIGNoYXJhY3RlcnMgYXQgVSswNjRCLi4uVSswNjUyLCBieSBzaGFwZWQgb25lcyBpbiB0aGUgVStGZTcwCisgICAgICogKFByZXNlbnRhdGlvbiBGb3JtcyBCKSBibG9jay4gIFRoZSBUQVNIS0VFTCBjaGFyYWN0ZXJzIHdpbGwgYWx3YXlzIGJlIGNvbnZlcnRlZCB0bworICAgICAqIHRoZSBpc29sYXRlZCBmb3JtcyByYXRoZXIgdGhhbiB0byB0aGVpciBjb3JyZWN0IHNoYXBlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgPSAweDE4OworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBsZXR0ZXIgc2hhcGluZyBvcHRpb25zLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX01BU0sgPSAweDE4OworCisKKyAgICAvKiogCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246IGRvIG5vdCBwZXJmb3JtIGRpZ2l0IHNoYXBpbmcuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19OT09QID0gMDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOiBSZXBsYWNlIEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KSBieSBBcmFiaWMtSW5kaWMgZGlnaXRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTiA9IDB4MjA7CisKKyAgICAvKioKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjogUmVwbGFjZSBBcmFiaWMtSW5kaWMgZGlnaXRzIGJ5IEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfQU4yRU4gPSAweDQwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246CisgICAgICogUmVwbGFjZSBFdXJvcGVhbiBkaWdpdHMgKFUrMDAzMC4uLlUrMDAzOSkgYnkgQXJhYmljLUluZGljIGRpZ2l0cworICAgICAqIGlmIHRoZSBtb3N0IHJlY2VudCBzdHJvbmdseSBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIKKyAgICAgKiBpcyBhbiBBcmFiaWMgbGV0dGVyIChpdHMgQmlkaSBkaXJlY3Rpb24gdmFsdWUgaXMgUklHSFRfVE9fTEVGVF9BUkFCSUMpLiAKKyAgICAgKiBUaGUgaW5pdGlhbCBzdGF0ZSBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXMgYXNzdW1lZCB0byBiZSBub3QgYW4gQXJhYmljLAorICAgICAqIGxldHRlciwgc28gRXVyb3BlYW4gZGlnaXRzIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCB3aWxsIG5vdCBjaGFuZ2UuCisgICAgICogQ29tcGFyZSB0byBESUdJVFNfQUxFTjJBTl9JTklUX0FMLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTl9JTklUX0xSID0gMHg2MDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOgorICAgICAqIFJlcGxhY2UgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpIGJ5IEFyYWJpYy1JbmRpYyBkaWdpdHMKKyAgICAgKiBpZiB0aGUgbW9zdCByZWNlbnQgc3Ryb25nbHkgZGlyZWN0aW9uYWwgY2hhcmFjdGVyCisgICAgICogaXMgYW4gQXJhYmljIGxldHRlciAoaXRzIEJpZGkgZGlyZWN0aW9uIHZhbHVlIGlzIFJJR0hUX1RPX0xFRlRfQVJBQklDKS4gCisgICAgICogVGhlIGluaXRpYWwgc3RhdGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IGlzIGFzc3VtZWQgdG8gYmUgYW4gQXJhYmljLAorICAgICAqIGxldHRlciwgc28gRXVyb3BlYW4gZGlnaXRzIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCB3aWxsIGNoYW5nZS4KKyAgICAgKiBDb21wYXJlIHRvIERJR0lUU19BTEVOMkFOX0lOVF9MUi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9BTCA9IDB4ODA7CisKKyAgICAvKiogTm90IGEgdmFsaWQgb3B0aW9uIHZhbHVlLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUdJVFNfUkVTRVJWRUQgPSAweGEwOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBkaWdpdCBzaGFwaW5nIG9wdGlvbnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19NQVNLID0gMHhlMDsKKworICAgIC8qKiAKKyAgICAgKiBEaWdpdCB0eXBlIG9wdGlvbjogVXNlIEFyYWJpYy1JbmRpYyBkaWdpdHMgKFUrMDY2MC4uLlUrMDY2OSkuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfQU4gPSAwOworCisgICAgLyoqIAorICAgICAqIERpZ2l0IHR5cGUgb3B0aW9uOiBVc2UgRWFzdGVybiAoRXh0ZW5kZWQpIEFyYWJpYy1JbmRpYyBkaWdpdHMgKFUrMDZmMC4uLlUrMDZmOSkuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgPSAweDEwMDsKKworICAgIC8qKiAKKyAgICAgKiBCaXQgbWFzayBmb3IgZGlnaXQgdHlwZSBvcHRpb25zLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVF9UWVBFX01BU0sgPSAweDAxMDA7IC8vIDB4M2YwMD8KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIHJldHVybiByaHMgIT0gbnVsbCAmJiAKKyAgICAgICAgICAgIHJocy5nZXRDbGFzcygpID09IEFyYWJpY1NoYXBpbmcuY2xhc3MgJiYgCisgICAgICAgICAgICBvcHRpb25zID09ICgoQXJhYmljU2hhcGluZylyaHMpLm9wdGlvbnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gb3B0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzdXBlci50b1N0cmluZygpKTsKKyAgICAgICAgYnVmLmFwcGVuZCgnWycpOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgeworICAgICAgICBjYXNlIExFTkdUSF9HUk9XX1NIUklOSzogYnVmLmFwcGVuZCgiZ3Jvdy9zaHJpbmsiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSOiBidWYuYXBwZW5kKCJzcGFjZXMgbmVhciIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDogYnVmLmFwcGVuZCgic3BhY2VzIGF0IGVuZCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzogYnVmLmFwcGVuZCgic3BhY2VzIGF0IGJlZ2lubmluZyIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBURVhUX0RJUkVDVElPTl9NQVNLKSB7CisgICAgICAgIGNhc2UgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTDogYnVmLmFwcGVuZCgiLCBsb2dpY2FsIik7IGJyZWFrOworICAgICAgICBjYXNlIFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFI6IGJ1Zi5hcHBlbmQoIiwgdmlzdWFsIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIExFVFRFUlNfTUFTSykgeworICAgICAgICBjYXNlIExFVFRFUlNfTk9PUDogYnVmLmFwcGVuZCgiLCBubyBsZXR0ZXIgc2hhcGluZyIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFOiBidWYuYXBwZW5kKCIsIHNoYXBlIGxldHRlcnMiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDogYnVmLmFwcGVuZCgiLCBzaGFwZSBsZXR0ZXJzIHRhc2hrZWVsIGlzb2xhdGVkIik7IGJyZWFrOworICAgICAgICBjYXNlIExFVFRFUlNfVU5TSEFQRTogYnVmLmFwcGVuZCgiLCB1bnNoYXBlIGxldHRlcnMiKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRTX01BU0spIHsKKyAgICAgICAgY2FzZSBESUdJVFNfTk9PUDogYnVmLmFwcGVuZCgiLCBubyBkaWdpdCBzaGFwaW5nIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUU19FTjJBTjogYnVmLmFwcGVuZCgiLCBzaGFwZSBkaWdpdHMgdG8gQU4iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0FOMkVOOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBFTiIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVFNfRU4yQU5fSU5JVF9MUjogYnVmLmFwcGVuZCgiLCBzaGFwZSBkaWdpdHMgdG8gQU4gY29udGV4dHVhbGx5OiBkZWZhdWx0IEVOIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0FMOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBBTiBjb250ZXh0dWFsbHk6IGRlZmF1bHQgQUwiKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRfVFlQRV9NQVNLKSB7CisgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTjogYnVmLmFwcGVuZCgiLCBzdGFuZGFyZCBBcmFiaWMtSW5kaWMgZGlnaXRzIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUX1RZUEVfQU5fRVhURU5ERUQ6IGJ1Zi5hcHBlbmQoIiwgZXh0ZW5kZWQgQXJhYmljLUluZGljIGRpZ2l0cyIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCJdIik7CisKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vCisgICAgLy8gcG9ydGVkIGFwaQorICAgIC8vCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVJSRUxFVkFOVCA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBTVRZUEUgPSAxNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUxFRlRZUEUgPSAzMjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5LUiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTktMID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElOS19NQVNLID0gMzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpcnJlbGV2YW50UG9zW10gPSB7IAorICAgICAgICAweDAsIDB4MiwgMHg0LCAweDYsIDB4OCwgMHhBLCAweEMsIDB4RSAKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBjb252ZXJ0TGFtQWxlZltdID0gIHsKKyAgICAgICAgJ1x1MDYyMicsIC8vIEZFRjUgCisgICAgICAgICdcdTA2MjInLCAvLyBGRUY2CisgICAgICAgICdcdTA2MjMnLCAvLyBGRUY3CisgICAgICAgICdcdTA2MjMnLCAvLyBGRUY4CisgICAgICAgICdcdTA2MjUnLCAvLyBGRUY5CisgICAgICAgICdcdTA2MjUnLCAvLyBGRUZBCisgICAgICAgICdcdTA2MjcnLCAvLyBGRUZCCisgICAgICAgICdcdTA2MjcnICAvLyBGRUZDIAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltdID0geworICAgICAgICAnXHUwNjIyJywgLy8gMDY1QworICAgICAgICAnXHUwNjIzJywgLy8gMDY1RAorICAgICAgICAnXHUwNjI1JywgLy8gMDY1RQorICAgICAgICAnXHUwNjI3JywgLy8gMDY1RgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBhcmFMaW5rID0geworICAgICAgICAxICAgICAgICAgICArIDMyICsgMjU2ICogMHgxMSwgIC8qMHgwNjIyKi8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiArIDI1NiAqIDB4MTMsICAvKjB4MDYyMyovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDE1LCAgLyoweDA2MjQqLworICAgICAgICAxICAgICAgICAgICArIDMyICsgMjU2ICogMHgxNywgIC8qMHgwNjI1Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MTksICAvKjB4MDYyNiovCisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDFELCAgLyoweDA2MjcqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgxRiwgIC8qMHgwNjI4Ki8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4MjMsICAvKjB4MDYyOSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDI1LCAgLyoweDA2MkEqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgyOSwgIC8qMHgwNjJCKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MkQsICAvKjB4MDYyQyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDMxLCAgLyoweDA2MkQqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgzNSwgIC8qMHgwNjJFKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4MzksICAvKjB4MDYyRiovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDNCLCAgLyoweDA2MzAqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzRCwgIC8qMHgwNjMxKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4M0YsICAvKjB4MDYzMiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDQxLCAgLyoweDA2MzMqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg0NSwgIC8qMHgwNjM0Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NDksICAvKjB4MDYzNSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDRELCAgLyoweDA2MzYqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg1MSwgIC8qMHgwNjM3Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NTUsICAvKjB4MDYzOCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDU5LCAgLyoweDA2MzkqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg1RCwgIC8qMHgwNjNBKi8KKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAvKjB4MDYzQi0weDA2M0YqLworICAgICAgICAxICsgMiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjQwKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NjEsICAvKjB4MDY0MSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDY1LCAgLyoweDA2NDIqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg2OSwgIC8qMHgwNjQzKi8KKyAgICAgICAgMSArIDIgICAgICAgKyAxNiArIDI1NiAqIDB4NkQsICAvKjB4MDY0NCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDcxLCAgLyoweDA2NDUqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg3NSwgIC8qMHgwNjQ2Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NzksICAvKjB4MDY0NyovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDdELCAgLyoweDA2NDgqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg3RiwgIC8qMHgwNjQ5Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4ODEsICAvKjB4MDY0QSovCisgICAgICAgIDQsIDQsIDQsIDQsICAgICAgICAgICAgICAgICAgICAgLyoweDA2NEItMHgwNjRFKi8KKyAgICAgICAgNCwgNCwgNCwgNCwgICAgICAgICAgICAgICAgICAgICAvKjB4MDY0Ri0weDA2NTIqLworICAgICAgICA0LCA0LCA0LCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjUzLTB4MDY1NyovCisgICAgICAgIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgICAgICAgLyoweDA2NTgtMHgwNjVCKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4ODUsICAvKjB4MDY1QyovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDg3LCAgLyoweDA2NUQqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4OSwgIC8qMHgwNjVFKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4OEIsICAvKjB4MDY1RiovCisgICAgICAgIDAsIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgICAgLyoweDA2NjAtMHgwNjY0Ki8KKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAvKjB4MDY2NS0weDA2NjkqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgIC8qMHgwNjZBLTB4MDY2RiovCisgICAgICAgIDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzAqLworICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjcxKi8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiwgICAgICAgICAgICAgICAvKjB4MDY3MiovCisgICAgICAgIDEgICAgICAgICAgICsgMzIsICAgICAgICAgICAgICAgLyoweDA2NzMqLworICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjc0Ki8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiwgICAgICAgICAgICAgICAvKjB4MDY3NSovCisgICAgICAgIDEsIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzYtMHgwNjc3Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDY3OC0weDA2N0QqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNjdFLTB4MDY4MyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2ODQtMHgwNjg3Ki8KKyAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgICAvKjB4MDY4OC0weDA2OTEqLworICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAgICAgICAgIC8qMHgwNjkyLTB4MDY5OSovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2OUEtMHgwNkEzKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDY5QS0weDA2QTMqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNkE0LTB4MDZBRCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2QTQtMHgwNkFEKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDZBRS0weDA2QjcqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNkFFLTB4MDZCNyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2QjgtMHgwNkJGKi8KKyAgICAgICAgMSsyLCAxKzIsICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZCOC0weDA2QkYqLworICAgICAgICAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkMwKi8KKyAgICAgICAgMSsyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZDMSovCisgICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsICAgLyoweDA2QzItMHgwNkNCKi8KKyAgICAgICAgMSsyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZDQyovCisgICAgICAgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2Q0QqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNkNFLTB4MDZEMSovCisgICAgICAgIDEsIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2RDItMHgwNkQzKi8KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gcHJlc0xpbmsgPSB7CisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgIC8qMHhGRTcwKi8KKyAgICAgICAgMSArIDIsICAgICAgICAgICAgICAgICAgICAgICAgLyoweEZFNzEqLworICAgICAgICAxICsgMiwgMCwgMSsgMiwgMCwgMSsgMiwgICAgICAvKjB4RkU3Mi0weEZFNzYqLworICAgICAgICAxICsgMiwgICAgICAgICAgICAgICAgICAgICAgICAvKjB4RkU3NyovCisgICAgICAgIDErIDIsIDEgKyAyLCAxKzIsIDEgKyAyLCAgICAgIC8qMHhGRTc4LTB4RkU4MSovCisgICAgICAgIDErIDIsIDEgKyAyLCAxKzIsIDEgKyAyLCAgICAgIC8qMHhGRTgyLTB4RkU4NSovCisgICAgICAgIDAsIDAgKyAzMiwgMSArIDMyLCAwICsgMzIsICAgIC8qMHhGRTg2LTB4RkU4OSovCisgICAgICAgIDEgKyAzMiwgMCwgMSwgIDAgKyAzMiwgICAgICAgIC8qMHhGRThBLTB4RkU4RCovCisgICAgICAgIDEgKyAzMiwgMCwgMiwgIDEgKyAyLCAgICAgICAgIC8qMHhGRThFLTB4RkU5MSovCisgICAgICAgIDEsIDAgKyAzMiwgMSArIDMyLCAwLCAgICAgICAgIC8qMHhGRTkyLTB4RkU5NSovCisgICAgICAgIDIsIDEgKyAyLCAxLCAwLCAgICAgICAgICAgICAgIC8qMHhGRTk2LTB4RkU5OSovCisgICAgICAgIDEsIDAsIDIsIDEgKyAyLCAgICAgICAgICAgICAgIC8qMHhGRTlBLTB4RkU5RCovCisgICAgICAgIDEsIDAsIDIsIDEgKyAyLCAgICAgICAgICAgICAgIC8qMHhGRTlFLTB4RkVBMSovCisgICAgICAgIDEsIDAsIDIsIDEgKyAyLCAgICAgICAgICAgICAgIC8qMHhGRUEyLTB4RkVBNSovCisgICAgICAgIDEsIDAsIDIsIDEgKyAyLCAgICAgICAgICAgICAgIC8qMHhGRUE2LTB4RkVBOSovCisgICAgICAgIDEsIDAsIDIsIDEgKyAyLCAgICAgICAgICAgICAgIC8qMHhGRUFBLTB4RkVBRCovCisgICAgICAgIDEsIDAsIDEsIDAsICAgICAgICAgICAgICAgICAgIC8qMHhGRUFFLTB4RkVCMSovCisgICAgICAgIDEsIDAsIDEsIDAsICAgICAgICAgICAgICAgICAgIC8qMHhGRUIyLTB4RkVCNSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUI2LTB4RkVCOSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUJBLTB4RkVCRCovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUJFLTB4RkVDMSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUMyLTB4RkVDNSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUM2LTB4RkVDOSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUNBLTB4RkVDRCovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUNFLTB4RkVEMSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUQyLTB4RkVENSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUQ2LTB4RkVEOSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRURBLTB4RkVERCovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRURFLTB4RkVFMSovCisgICAgICAgIDEsIDAgKyAxNiwgMiArIDE2LCAxICsgMiArMTYsIC8qMHhGRUUyLTB4RkVFNSovCisgICAgICAgIDEgKyAxNiwgMCwgMiwgMSsyLCAgICAgICAgICAgIC8qMHhGRUU2LTB4RkVFOSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUVBLTB4RkVFRCovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUVFLTB4RkVGMSovCisgICAgICAgIDEsIDAsIDEsIDAsICAgICAgICAgICAgICAgICAgIC8qMHhGRUYyLTB4RkVGNSovCisgICAgICAgIDEsIDAsIDIsIDErMiwgICAgICAgICAgICAgICAgIC8qMHhGRUY2LTB4RkVGOSovCisgICAgICAgIDEsIDAsIDEsIDAsICAgICAgICAgICAgICAgICAgIC8qMHhGRUZBLTB4RkVGRCovCisgICAgICAgIDEsIDAsIDEsIDAsCisgICAgICAgIDEKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gY29udmVydEZFdG8wNiA9IHsKKyAgICAgICAgLyoqKioqKioqKioqMCoqKioqKjEqKioqKioyKioqKioqMyoqKioqKjQqKioqKio1KioqKioqNioqKioqKjcqKioqKio4KioqKioqOSoqKioqKkEqKioqKipCKioqKioqQyoqKioqKkQqKioqKipFKioqKioqRioqKi8KKyAgICAgICAgLypGRTcqLyAgIDB4NjRCLCAweDY0QiwgMHg2NEMsIDB4NjRDLCAweDY0RCwgMHg2NEQsIDB4NjRFLCAweDY0RSwgMHg2NEYsIDB4NjRGLCAweDY1MCwgMHg2NTAsIDB4NjUxLCAweDY1MSwgMHg2NTIsIDB4NjUyLAorICAgICAgICAvKkZFOCovICAgMHg2MjEsIDB4NjIyLCAweDYyMiwgMHg2MjMsIDB4NjIzLCAweDYyNCwgMHg2MjQsIDB4NjI1LCAweDYyNSwgMHg2MjYsIDB4NjI2LCAweDYyNiwgMHg2MjYsIDB4NjI3LCAweDYyNywgMHg2MjgsCisgICAgICAgIC8qRkU5Ki8gICAweDYyOCwgMHg2MjgsIDB4NjI4LCAweDYyOSwgMHg2MjksIDB4NjJBLCAweDYyQSwgMHg2MkEsIDB4NjJBLCAweDYyQiwgMHg2MkIsIDB4NjJCLCAweDYyQiwgMHg2MkMsIDB4NjJDLCAweDYyQywKKyAgICAgICAgLypGRUEqLyAgIDB4NjJDLCAweDYyRCwgMHg2MkQsIDB4NjJELCAweDYyRCwgMHg2MkUsIDB4NjJFLCAweDYyRSwgMHg2MkUsIDB4NjJGLCAweDYyRiwgMHg2MzAsIDB4NjMwLCAweDYzMSwgMHg2MzEsIDB4NjMyLAorICAgICAgICAvKkZFQiovICAgMHg2MzIsIDB4NjMzLCAweDYzMywgMHg2MzMsIDB4NjMzLCAweDYzNCwgMHg2MzQsIDB4NjM0LCAweDYzNCwgMHg2MzUsIDB4NjM1LCAweDYzNSwgMHg2MzUsIDB4NjM2LCAweDYzNiwgMHg2MzYsCisgICAgICAgIC8qRkVDKi8gICAweDYzNiwgMHg2MzcsIDB4NjM3LCAweDYzNywgMHg2MzcsIDB4NjM4LCAweDYzOCwgMHg2MzgsIDB4NjM4LCAweDYzOSwgMHg2MzksIDB4NjM5LCAweDYzOSwgMHg2M0EsIDB4NjNBLCAweDYzQSwKKyAgICAgICAgLypGRUQqLyAgIDB4NjNBLCAweDY0MSwgMHg2NDEsIDB4NjQxLCAweDY0MSwgMHg2NDIsIDB4NjQyLCAweDY0MiwgMHg2NDIsIDB4NjQzLCAweDY0MywgMHg2NDMsIDB4NjQzLCAweDY0NCwgMHg2NDQsIDB4NjQ0LAorICAgICAgICAvKkZFRSovICAgMHg2NDQsIDB4NjQ1LCAweDY0NSwgMHg2NDUsIDB4NjQ1LCAweDY0NiwgMHg2NDYsIDB4NjQ2LCAweDY0NiwgMHg2NDcsIDB4NjQ3LCAweDY0NywgMHg2NDcsIDB4NjQ4LCAweDY0OCwgMHg2NDksCisgICAgICAgIC8qRkVGKi8gICAweDY0OSwgMHg2NEEsIDB4NjRBLCAweDY0QSwgMHg2NEEsIDB4NjVDLCAweDY1QywgMHg2NUQsIDB4NjVELCAweDY1RSwgMHg2NUUsIDB4NjVGLCAweDY1RgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2hhcGVUYWJsZVtdW11bXSA9IHsKKyAgICAgICAgeyB7MCwwLDAsMH0sIHswLDAsMCwwfSwgezAsMSwwLDN9LCB7MCwxLDAsMX0gfSwKKyAgICAgICAgeyB7MCwwLDIsMn0sIHswLDAsMSwyfSwgezAsMSwxLDJ9LCB7MCwxLDEsM30gfSwKKyAgICAgICAgeyB7MCwwLDAsMH0sIHswLDAsMCwwfSwgezAsMSwwLDN9LCB7MCwxLDAsM30gfSwKKyAgICAgICAgeyB7MCwwLDEsMn0sIHswLDAsMSwyfSwgezAsMSwxLDJ9LCB7MCwxLDEsM30gfQorICAgIH07CisKKyAgICAvKgorICAgICAqIFRoaXMgZnVuY3Rpb24gc2hhcGVzIEV1cm9wZWFuIGRpZ2l0cyB0byBBcmFiaWMtSW5kaWMgZGlnaXRzCisgICAgICogaW4tcGxhY2UsIHdyaXRpbmcgb3ZlciB0aGUgaW5wdXQgY2hhcmFjdGVycy4gIERhdGEgaXMgaW4gdmlzdWFsCisgICAgICogb3JkZXIuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNoYXBlVG9BcmFiaWNEaWdpdHNXaXRoQ29udGV4dChjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRpZ2l0QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGFzdFN0cm9uZ1dhc0FMKSB7CisgICAgICAgIFVCaURpUHJvcHMgYmRwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYmRwPVVCaURpUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksICIoQmlkaVByb3BzKSIsICIiKTsKKyAgICAgICAgfQorICAgICAgICBkaWdpdEJhc2UgLT0gJzAnOyAvLyBtb3ZlIGNvbW1vbiBhZGp1c3RtZW50IG91dCBvZiBsb29wCisKKyAgICAgICAgZm9yKGludCBpID0gc3RhcnQgKyBsZW5ndGg7IC0taSA+PSBzdGFydDspIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W2ldOworICAgICAgICAgICAgc3dpdGNoIChiZHAuZ2V0Q2xhc3MoY2gpKSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVDoKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUOgorICAgICAgICAgICAgICAgIGxhc3RTdHJvbmdXYXNBTCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDOgorICAgICAgICAgICAgICAgIGxhc3RTdHJvbmdXYXNBTCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJEaXJlY3Rpb24uRVVST1BFQU5fTlVNQkVSOgorICAgICAgICAgICAgICAgIGlmIChsYXN0U3Ryb25nV2FzQUwgJiYgY2ggPD0gJ1x1MDAzOScpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9IChjaGFyKShjaCArIGRpZ2l0QmFzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGludmVydEJ1ZmZlcgorICAgICAqIEZ1bmN0aW9uOiBUaGlzIGZ1bmN0aW9uIGludmVydHMgdGhlIGJ1ZmZlciwgaXQncyB1c2VkCisgICAgICogICAgICAgICAgIGluIGNhc2UgdGhlIHVzZXIgc3BlY2lmaWVzIHRoZSBidWZmZXIgdG8gYmUKKyAgICAgKiAgICAgICAgICAgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW52ZXJ0QnVmZmVyKGNoYXJbXSBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgpIHsKKworICAgICAgICBmb3IoaW50IGkgPSBzdGFydCwgaiA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsgaSA8IGo7IGkrKywgLS1qKSB7CisgICAgICAgICAgICBjaGFyIHRlbXAgPSBidWZmZXJbaV07CisgICAgICAgICAgICBidWZmZXJbaV0gPSBidWZmZXJbal07CisgICAgICAgICAgICBidWZmZXJbal0gPSB0ZW1wOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogY2hhbmdlTGFtQWxlZgorICAgICAqIEZ1bmN0aW9uOiBDb252ZXJ0cyB0aGUgQWxlZiBjaGFyYWN0ZXJzIGludG8gYW4gZXF1aXZhbGVudAorICAgICAqICAgICAgICAgICBMYW1BbGVmIGxvY2F0aW9uIGluIHRoZSAweDA2eHggUmFuZ2UsIHRoaXMgaXMgYW4KKyAgICAgKiAgICAgICAgICAgaW50ZXJtZWRpYXRlIHN0YWdlIGluIHRoZSBvcGVyYXRpb24gb2YgdGhlIHByb2dyYW0KKyAgICAgKiAgICAgICAgICAgbGF0ZXIgaXQnbGwgYmUgY29udmVydGVkIGludG8gdGhlIDB4RkV4eCBMYW1BbGVmcyAKKyAgICAgKiAgICAgICAgICAgaW4gdGhlIHNoYXBpbmcgZnVuY3Rpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBjaGFuZ2VMYW1BbGVmKGNoYXIgY2gpIHsKKyAgICAgICAgc3dpdGNoKGNoKSB7CisgICAgICAgIGNhc2UgJ1x1MDYyMic6IHJldHVybiAnXHUwNjVDJzsKKyAgICAgICAgY2FzZSAnXHUwNjIzJzogcmV0dXJuICdcdTA2NUQnOworICAgICAgICBjYXNlICdcdTA2MjUnOiByZXR1cm4gJ1x1MDY1RSc7CisgICAgICAgIGNhc2UgJ1x1MDYyNyc6IHJldHVybiAnXHUwNjVGJzsKKyAgICAgICAgZGVmYXVsdDogIHJldHVybiAnXHUwMDAwJzsgLy8gbm90IGEgbGFtYWxlZgorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogc3BlY2lhbENoYXIKKyAgICAgKiBGdW5jdGlvbjogU3BlY2lhbCBBcmFiaWMgY2hhcmFjdGVycyBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgaW4gdGhlIHNoYXBlVW5pY29kZQorICAgICAqICAgICAgICAgICBmdW5jdGlvbiwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIDEgb3IgMiBmb3IgdGhlc2Ugc3BlY2lhbCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNwZWNpYWxDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgaWYgKChjaCA+ICdcdTA2MjEnICYmIGNoIDwgJ1x1MDYyNicpIHx8IAorICAgICAgICAgICAgKGNoID09ICdcdTA2MjcnKSB8fAorICAgICAgICAgICAgKGNoID4gJ1x1MDYyRScgJiYgY2ggPCAnXHUwNjMzJykgfHwKKyAgICAgICAgICAgIChjaCA+ICdcdTA2NDcnICYmIGNoIDwgJ1x1MDY0QScpIHx8CisgICAgICAgICAgICAoY2ggPT0gJ1x1MDYyOScpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAnXHUwNjRCJyAmJiBjaDw9ICdcdTA2NTInKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAweDA2NTMgJiYgY2ggPD0gMHgwNjU1IHx8IAorICAgICAgICAgICAgICAgICAgIGNoID09IDB4MDY3MCB8fAorICAgICAgICAgICAgICAgICAgIGNoID49IDB4RkU3MCAmJiBjaCA8PSAweEZFN0YpIHsKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogZ2V0TGluaworICAgICAqIEZ1bmN0aW9uOiBSZXNvbHZlcyB0aGUgbGluayBiZXR3ZWVuIHRoZSBjaGFyYWN0ZXJzIGFzIAorICAgICAqICAgICAgICAgICBBcmFiaWMgY2hhcmFjdGVycyBoYXZlIGZvdXIgZm9ybXMgOgorICAgICAqICAgICAgICAgICBJc29sYXRlZCwgSW5pdGlhbCwgTWlkZGxlIGFuZCBGaW5hbCBGb3JtCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldExpbmsoY2hhciBjaCkgeworICAgICAgICBpZiAoY2ggPj0gJ1x1MDYyMicgJiYgY2ggPD0gJ1x1MDZEMycpIHsKKyAgICAgICAgICAgIHJldHVybiBhcmFMaW5rW2NoIC0gJ1x1MDYyMiddOworICAgICAgICB9IGVsc2UgaWYgKGNoID09ICdcdTIwMEQnKSB7CisgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAnXHUyMDZEJyAmJiBjaCA8PSAnXHUyMDZGJykgeworICAgICAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPj0gJ1x1RkU3MCcgJiYgY2ggPD0gJ1x1RkVGQycpIHsKKyAgICAgICAgICAgIHJldHVybiBwcmVzTGlua1tjaCAtICdcdUZFNzAnXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogY291bnRTcGFjZXMKKyAgICAgKiBGdW5jdGlvbjogQ291bnRzIHRoZSBudW1iZXIgb2Ygc3BhY2VzCisgICAgICogICAgICAgICAgIGF0IGVhY2ggZW5kIG9mIHRoZSBsb2dpY2FsIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBjb3VudFNwYWNlc0xlZnQoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50KSB7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IHN0YXJ0ICsgY291bnQ7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChkZXN0W2ldICE9ICdcdTAwMjAnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGkgLSBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvdW50U3BhY2VzUmlnaHQoY2hhcltdIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCkgeworCisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCArIGNvdW50OyAtLWkgPj0gc3RhcnQ7KSB7CisgICAgICAgICAgICBpZiAoZGVzdFtpXSAhPSAnXHUwMDIwJykgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCArIGNvdW50IC0gMSAtIGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGlzVGFzaGtlZWxDaGFyCisgICAgICogRnVuY3Rpb246IFJldHVybnMgMSBmb3IgVGFzaGtlZWwgY2hhcmFjdGVycyBlbHNlIHJldHVybiAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1Rhc2hrZWVsQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSdcdTA2NEInICYmIGNoIDw9ICdcdTA2NTInOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGlzQWxlZkNoYXIKKyAgICAgKiBGdW5jdGlvbjogUmV0dXJucyAxIGZvciBBbGVmIGNoYXJhY3RlcnMgZWxzZSByZXR1cm4gMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNBbGVmQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA9PSAnXHUwNjIyJyB8fCBjaCA9PSAnXHUwNjIzJyB8fCBjaCA9PSAnXHUwNjI1JyB8fCBjaCA9PSAnXHUwNjI3JzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBpc0xhbUFsZWZDaGFyCisgICAgICogRnVuY3Rpb246IFJldHVybnMgMSBmb3IgTGFtQWxlZiBjaGFyYWN0ZXJzIGVsc2UgcmV0dXJuIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTGFtQWxlZkNoYXIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY2ggPj0gJ1x1RkVGNScgJiYgY2ggPD0gJ1x1RkVGQyc7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSAnXHUwNjVDJyAmJiBjaCA8PSAnXHUwNjVGJzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBjYWxjdWxhdGVTaXplCisgICAgICogRnVuY3Rpb246IFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgZGVzdFNpemUgdG8gYmUgdXNlZCBpbiBwcmVmbGlnaHRpbmcKKyAgICAgKiAgICAgICAgICAgd2hlbiB0aGUgZGVzdFNpemUgaXMgZXF1YWwgdG8gMAorICAgICAqLworICAgIHByaXZhdGUgaW50IGNhbGN1bGF0ZVNpemUoY2hhcltdIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VMZW5ndGgpIHsKKyAgICAKKyAgICAgICAgaW50IGRlc3RTaXplID0gc291cmNlTGVuZ3RoOworCisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIExFVFRFUlNfTUFTSykgeworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEU6CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDoKKyAgICAgICAgICAgIGlmIChpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQsIGUgPSBzb3VyY2VTdGFydCArIHNvdXJjZUxlbmd0aCAtIDE7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSA9PSAnXHUwNjQ0JyAmJiBpc0FsZWZDaGFyKHNvdXJjZVtpKzFdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLS1kZXN0U2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7IC8vIHZpc3VhbAorICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IHNvdXJjZVN0YXJ0ICsgMSwgZSA9IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gPT0gJ1x1MDY0NCcgJiYgaXNBbGVmQ2hhcihzb3VyY2VbaS0xXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tZGVzdFNpemU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFVFRFUlNfVU5TSEFQRToKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IHNvdXJjZVN0YXJ0LCBlID0gc291cmNlU3RhcnQgKyBzb3VyY2VMZW5ndGg7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMYW1BbGVmQ2hhcihzb3VyY2VbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RTaXplKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlc3RTaXplOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IHJlbW92ZUxhbUFsZWZTcGFjZXMKKyAgICAgKiBGdW5jdGlvbjogVGhlIHNoYXBlVW5pY29kZSBmdW5jdGlvbiBjb252ZXJ0cyBMYW0gKyBBbGVmIGludG8gTGFtQWxlZiArIHNwYWNlLAorICAgICAqICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIHNwYWNlcyBiZWhpbmQgdGhlIExhbUFsZWZzIGFjY29yZGluZyB0bworICAgICAqICAgICAgICAgICB0aGUgb3B0aW9ucyB0aGUgdXNlciBzcGVjaWZpZXMsIHRoZSBzcGFjZXMgYXJlIHJlbW92ZWQgdG8gdGhlIGVuZAorICAgICAqICAgICAgICAgICBvZiB0aGUgYnVmZmVyLCBvciBzaHJpbmsgdGhlIGJ1ZmZlciBhbmQgcmVtb3ZlIHNwYWNlcyBmb3IgZ29vZAorICAgICAqICAgICAgICAgICBvciBsZWF2ZSB0aGUgYnVmZmVyIGFzIGl0IGlzIExhbUFsZWYgKyBzcGFjZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZW1vdmVMYW1BbGVmU3BhY2VzKGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgpIHsKKyAgICAKKyAgICAgICAgaW50IGxlbk9wdGlvbnMgPSBvcHRpb25zICYgTEVOR1RIX01BU0s7CisgICAgICAgIGlmICghaXNMb2dpY2FsKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGxlbk9wdGlvbnMpIHsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiBsZW5PcHRpb25zID0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobGVuT3B0aW9ucyA9PSBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IGkgKyBsZW5ndGg7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzdFtpXSA9PSAnXHVmZmZmJykgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gJ1x1MDAyMCc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZmluYWwgaW50IGUgPSBzdGFydCArIGxlbmd0aDsKKyAgICAgICAgICAgIGludCB3ID0gZTsKKyAgICAgICAgICAgIGludCByID0gZTsKKyAgICAgICAgICAgIHdoaWxlICgtLXIgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtyXTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gJ1x1ZmZmZicpIHsKKyAgICAgICAgICAgICAgICAgICAgLS13OworICAgICAgICAgICAgICAgICAgICBpZiAodyAhPSByKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3ddID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsZW5PcHRpb25zID09IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHcgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSAnXHUwMDIwJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh3ID4gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2hpZnQsIGFzc3VtZSBzbWFsbCBidWZmZXIgc2l6ZSBzbyBkb24ndCB1c2UgYXJyYXljb3B5CisgICAgICAgICAgICAgICAgICAgIHIgPSB3OworICAgICAgICAgICAgICAgICAgICB3ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChyIDwgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gZGVzdFtyKytdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdyA9IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsZW5PcHRpb25zID09IExFTkdUSF9HUk9XX1NIUklOSykgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSB3IC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gc3BhY2VzIGF0IGJlZ2lubmluZworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodyA8IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9ICdcdTAwMjAnOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogZXhwYW5kTGFtQWxlZgorICAgICAqIEZ1bmN0aW9uOiBMYW1BbGVmIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgYXMgdGhlIExhbUFsZWYgaXMKKyAgICAgKiAgICAgICAgICAgb25lIGNoYXJhY3RlciB3aGlsZSBleHBhbmRpbmcgaXQgd2lsbCBnaXZlIHR3bworICAgICAqICAgICAgICAgICBjaGFyYWN0ZXJzIExhbSArIEFsZWYsIHNvIHdlIG5lZWQgdG8gZXhwYW5kIHRoZSBMYW1BbGVmCisgICAgICogICAgICAgICAgIGluIG5lYXIgb3IgZmFyIHNwYWNlcyBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMgdGhlIHVzZXIKKyAgICAgKiAgICAgICAgICAgc3BlY2lmaWVzIG9yIGluY3JlYXNlIHRoZSBidWZmZXIgc2l6ZS4KKyAgICAgKiAgICAgICAgICAgRGVzdCBoYXMgZW5vdWdoIHJvb20gZm9yIHRoZSBleHBhbnNpb24gaWYgd2UgYXJlIGdyb3dpbmcuCisgICAgICogICAgICAgICAgIGxhbWFsZWYgYXJlIG5vcm1hbGl6ZWQgdG8gdGhlICdzcGVjaWFsIGNoYXJhY3RlcnMnCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZXhwYW5kTGFtQWxlZihjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGFjb3VudCkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworCisgICAgICAgIGludCBsZW5PcHRpb25zID0gb3B0aW9ucyAmIExFTkdUSF9NQVNLOworICAgICAgICBpZiAoIWlzTG9naWNhbCkgeworICAgICAgICAgICAgc3dpdGNoIChsZW5PcHRpb25zKSB7CisgICAgICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOiBsZW5PcHRpb25zID0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDogbGVuT3B0aW9ucyA9IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChsZW5PcHRpb25zKSB7CisgICAgICAgIGNhc2UgTEVOR1RIX0dST1dfU0hSSU5LOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCByID0gc3RhcnQgKyBsZW5ndGgsIHcgPSByICsgbGFjb3VudDsgLS1yID49IHN0YXJ0OykgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtyXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gJ1x1MDY0NCc7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxlbmd0aCArPSBsYWNvdW50OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVI6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihkZXN0W3N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vIHNwYWNlIGZvciBsYW1hbGVmIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCArIGxlbmd0aDsgLS1pID4gc3RhcnQ7KSB7IC8vIGRvbid0IGNoZWNrIHN0YXJ0LCBhbHJlYWR5IGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IGRlc3RbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXN0W2ktMV0gPT0gJ1x1MDAyMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gJ1x1MDY0NCc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLWldID0gY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW2NoIC0gJ1x1MDY1QyddOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChsYWNvdW50ID4gY291bnRTcGFjZXNMZWZ0KGRlc3QsIHN0YXJ0LCBsZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJubyBzcGFjZSBmb3IgbGFtYWxlZiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCByID0gc3RhcnQgKyBsYWNvdW50LCB3ID0gc3RhcnQsIGUgPSBzdGFydCArIGxlbmd0aDsgciA8IGU7ICsrcikgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtyXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW2NoIC0gJ1x1MDY1QyddOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gJ1x1MDY0NCc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobGFjb3VudCA+IGNvdW50U3BhY2VzUmlnaHQoZGVzdCwgc3RhcnQsIGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vIHNwYWNlIGZvciBsYW1hbGVmIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSBzdGFydCArIGxlbmd0aCAtIGxhY291bnQsIHcgPSBzdGFydCArIGxlbmd0aDsgLS1yID49IHN0YXJ0OykgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtyXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gJ1x1MDY0NCc7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKiBDb252ZXJ0IHRoZSBpbnB1dCBidWZmZXIgZnJvbSBGRXh4IFJhbmdlIGludG8gMDZ4eCBSYW5nZQorICAgICAqIHRvIHB1dCBhbGwgY2hhcmFjdGVycyBpbnRvIHRoZSAwNnh4IHJhbmdlCisgICAgICogZXZlbiB0aGUgbGFtYWxlZiBpcyBjb252ZXJ0ZWQgdG8gdGhlIHNwZWNpYWwgcmVnaW9uIGluCisgICAgICogdGhlIDA2eHggcmFuZ2UuICBSZXR1cm4gdGhlIG51bWJlciBvZiBsYW1hbGVmIGNoYXJzIGZvdW5kLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5vcm1hbGl6ZShjaGFyW10gZGVzdCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGludCBsYWNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0LCBlID0gaSArIGxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IGRlc3RbaV07CisgICAgICAgICAgICBpZiAoY2ggPj0gJ1x1RkU3MCcgJiYgY2ggPD0gJ1x1RkVGQycpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMYW1BbGVmQ2hhcihjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytsYWNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpY29udmVydEZFdG8wNltjaCAtICdcdUZFNzAnXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGFjb3VudDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBzaGFwZVVuaWNvZGUKKyAgICAgKiBGdW5jdGlvbjogQ29udmVydHMgYW4gQXJhYmljIFVuaWNvZGUgYnVmZmVyIGluIDA2eHggUmFuZ2UgaW50byBhIHNoYXBlZAorICAgICAqICAgICAgICAgICBhcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gRkV4eCBSYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHNoYXBlVW5pY29kZShjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGFzaGtlZWxGbGFnKSB7CisKKworICAgICAgICBub3JtYWxpemUoZGVzdCwgc3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgLy8gcmVzb2x2ZSB0aGUgbGluayBiZXR3ZWVuIHRoZSBjaGFyYWN0ZXJzLgorICAgICAgICAvLyBBcmFiaWMgY2hhcmFjdGVycyBoYXZlIGZvdXIgZm9ybXM6IElzb2xhdGVkLCBJbml0aWFsLCBNZWRpYWwgYW5kIEZpbmFsLgorICAgICAgICAvLyBUYXNoa2VlbCBjaGFyYWN0ZXJzIGhhdmUgdHdvLCBpc29sYXRlZCBvciBtZWRpYWwsIGFuZCBzb21ldGltZXMgb25seSBpc29sYXRlZC4KKyAgICAgICAgLy8gdGFzaGtlZWxGbGFnID09IDA6IHNoYXBlIG5vcm1hbGx5LCAxOiBzaGFwZSBpc29sYXRlZCwgMjogZG9uJ3Qgc2hhcGUKKworICAgICAgICBib29sZWFuIGxhbWFsZWZfZm91bmQgPSBmYWxzZTsKKyAgICAgICAgaW50IGkgPSBzdGFydCArIGxlbmd0aCAtIDE7CisgICAgICAgIGludCBjdXJyTGluayA9IGdldExpbmsoZGVzdFtpXSk7CisgICAgICAgIGludCBuZXh0TGluayA9IDA7CisgICAgICAgIGludCBwcmV2TGluayA9IDA7CisgICAgICAgIGludCBsYXN0TGluayA9IDA7CisgICAgICAgIGludCBwcmV2UG9zID0gaTsKKyAgICAgICAgaW50IGxhc3RQb3MgPSBpOworICAgICAgICBpbnQgbnggPSAtMjsKKyAgICAgICAgaW50IG53ID0gMDsKKworICAgICAgICB3aGlsZSAoaSA+PSAwKSB7CisgICAgICAgICAgICAvLyBJZiBoaWdoIGJ5dGUgb2YgY3VyckxpbmsgPiAwIHRoZW4gdGhlcmUgbWlnaHQgYmUgbW9yZSB0aGFuIG9uZSBzaGFwZQorICAgICAgICAgICAgaWYgKChjdXJyTGluayAmICdcdUZGMDAnKSA+IDAgfHwgaXNUYXNoa2VlbENoYXIoZGVzdFtpXSkpIHsKKyAgICAgICAgICAgICAgICBudyA9IGkgLSAxOworICAgICAgICAgICAgICAgIG54ID0gLTI7CisgICAgICAgICAgICAgICAgd2hpbGUgKG54IDwgMCkgeyAvLyB3ZSBuZWVkIHRvIGtub3cgYWJvdXQgbmV4dCBjaGFyCisgICAgICAgICAgICAgICAgICAgIGlmIChudyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExpbmsgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbnggPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRMaW5rID0gZ2V0TGluayhkZXN0W253XSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG5leHRMaW5rICYgSVJSRUxFVkFOVCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54ID0gbnc7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbnc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKChjdXJyTGluayAmIEFMRUZUWVBFKSA+IDApICYmICgobGFzdExpbmsgJiBMQU1UWVBFKSA+IDApKSB7CisgICAgICAgICAgICAgICAgICAgIGxhbWFsZWZfZm91bmQgPSB0cnVlOyAKKyAgICAgICAgICAgICAgICAgICAgY2hhciB3TGFtYWxlZiA9IGNoYW5nZUxhbUFsZWYoZGVzdFtpXSk7IC8vIGdldCBmcm9tIDB4MDY1Qy0weDA2NWYKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdMYW1hbGVmICE9ICdcdTAwMDAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIGFsZWYgYnkgbWFya2VyLCBpdCB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAnXHVmZmZmJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbbGFzdFBvc10gPSB3TGFtYWxlZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBsYXN0UG9zOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbGFzdExpbmsgPSBwcmV2TGluazsKKyAgICAgICAgICAgICAgICAgICAgY3VyckxpbmsgPSBnZXRMaW5rKHdMYW1hbGVmKTsgLy8gcmVxdWlyZXMgJ1x1MDAwMCcsIHVuZm9ydHVuYXRlbHkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHByb3BlciBzaGFwZSBhY2NvcmRpbmcgdG8gbGluayBhYmlsaXR5IG9mIG5laWdoYm9ycworICAgICAgICAgICAgICAgIC8vIGFuZCBvZiBjaGFyYWN0ZXI7IGRlcGVuZHMgb24gdGhlIG9yZGVyIG9mIHRoZSBzaGFwZXMKKyAgICAgICAgICAgICAgICAvLyAoaXNvbGF0ZWQsIGluaXRpYWwsIG1pZGRsZSwgZmluYWwpIGluIHRoZSBjb21wYXRpYmlsaXR5IGFyZWEKKworICAgICAgICAgICAgICAgIGludCBmbGFnID0gc3BlY2lhbENoYXIoZGVzdFtpXSk7CisKKyAgICAgICAgICAgICAgICBpbnQgc2hhcGUgPSBzaGFwZVRhYmxlW25leHRMaW5rICYgTElOS19NQVNLXQorICAgICAgICAgICAgICAgICAgICBbbGFzdExpbmsgJiBMSU5LX01BU0tdCisgICAgICAgICAgICAgICAgICAgIFtjdXJyTGluayAmIExJTktfTUFTS107CisKKyAgICAgICAgICAgICAgICBpZiAoZmxhZyA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIHNoYXBlICY9IDB4MTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZsYWcgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFzaGtlZWxGbGFnID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICgobGFzdExpbmsgJiBMSU5LTCkgIT0gMCkgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAoKG5leHRMaW5rICYgTElOS1IpICE9IDApICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSAhPSAnXHUwNjRDJyAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gIT0gJ1x1MDY0RCcgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICEoKG5leHRMaW5rICYgQUxFRlRZUEUpID09IEFMRUZUWVBFICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAobGFzdExpbmsgJiBMQU1UWVBFKSA9PSBMQU1UWVBFKSkgeworICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmbGFnID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhc2hrZWVsRmxhZyA8IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAoY2hhcikoJ1x1RkU3MCcgKyBpcnJlbGV2YW50UG9zW2Rlc3RbaV0gLSAnXHUwNjRCJ10gKyBzaGFwZSk7CisgICAgICAgICAgICAgICAgICAgIH0gLy8gZWxzZSBsZWF2ZSB0YXNoa2VlbCBhbG9uZSAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9IChjaGFyKSgnXHVGRTcwJyArIChjdXJyTGluayA+PiA4KSArIHNoYXBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG1vdmUgb25lIG5vdGNoIGZvcndhcmQKKyAgICAgICAgICAgIGlmICgoY3VyckxpbmsgJiBJUlJFTEVWQU5UKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgcHJldkxpbmsgPSBsYXN0TGluazsKKyAgICAgICAgICAgICAgICBsYXN0TGluayA9IGN1cnJMaW5rOworICAgICAgICAgICAgICAgIHByZXZQb3MgPSBsYXN0UG9zOworICAgICAgICAgICAgICAgIGxhc3RQb3MgPSBpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAtLWk7CisgICAgICAgICAgICBpZiAoaSA9PSBueCkgeworICAgICAgICAgICAgICAgIGN1cnJMaW5rID0gbmV4dExpbms7CisgICAgICAgICAgICAgICAgbnggPSAtMjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGN1cnJMaW5rID0gZ2V0TGluayhkZXN0W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGZvdW5kIGEgbGFtL2FsZWYgcGFpciBpbiB0aGUgYnVmZmVyIAorICAgICAgICAvLyBjYWxsIHJlbW92ZUxhbUFsZWZTcGFjZXMgdG8gcmVtb3ZlIHRoZSBzcGFjZXMgdGhhdCB3ZXJlIGFkZGVkCisKKyAgICAgICAgaWYgKGxhbWFsZWZfZm91bmQpIHsKKyAgICAgICAgICAgIGRlc3RTaXplID0gcmVtb3ZlTGFtQWxlZlNwYWNlcyhkZXN0LCBzdGFydCwgbGVuZ3RoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlc3RTaXplID0gbGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVzdFNpemU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogZGVTaGFwZVVuaWNvZGUKKyAgICAgKiBGdW5jdGlvbjogQ29udmVydHMgYW4gQXJhYmljIFVuaWNvZGUgYnVmZmVyIGluIEZFeHggUmFuZ2UgaW50byB1bnNoYXBlZAorICAgICAqICAgICAgICAgICBhcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gMDZ4eCBSYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGRlU2hhcGVVbmljb2RlKGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgbGFtYWxlZl9jb3VudCA9IG5vcm1hbGl6ZShkZXN0LCBzdGFydCwgbGVuZ3RoKTsKKworICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSBsYW1hbGVmIGluIHRoZSBidWZmZXIgY2FsbCBleHBhbmRMYW1BbGVmCisgICAgICAgIGlmIChsYW1hbGVmX2NvdW50ICE9IDApIHsKKyAgICAgICAgICAgIC8vIG5lZWQgdG8gYWRqdXN0IGRlc3QgdG8gZml0IGV4cGFuZGVkIGJ1ZmZlci4uLiAhISEKKyAgICAgICAgICAgIGRlc3RTaXplID0gZXhwYW5kTGFtQWxlZihkZXN0LCBzdGFydCwgbGVuZ3RoLCBsYW1hbGVmX2NvdW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlc3RTaXplID0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlc3RTaXplOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGludGVybmFsU2hhcGUoY2hhcltdIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc291cmNlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RTaXplKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKHNvdXJjZUxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkZXN0U2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoKChvcHRpb25zICYgTEVUVEVSU19NQVNLKSAhPSBMRVRURVJTX05PT1ApICYmCisgICAgICAgICAgICAgICAgKChvcHRpb25zICYgTEVOR1RIX01BU0spID09IExFTkdUSF9HUk9XX1NIUklOSykpIHsKKyAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsY3VsYXRlU2l6ZShzb3VyY2UsIHNvdXJjZVN0YXJ0LCBzb3VyY2VMZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlTGVuZ3RoOyAvLyBieSBkZWZpbml0aW9uCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBhbHdheXMgdXNlIHRlbXAgYnVmZmVyCisgICAgICAgIGNoYXJbXSB0ZW1wID0gbmV3IGNoYXJbc291cmNlTGVuZ3RoICogMl07IC8vIGFsbCBsYW1hbGVmcyByZXF1aXJpbmcgZXhwYW5zaW9uCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLCBzb3VyY2VTdGFydCwgdGVtcCwgMCwgc291cmNlTGVuZ3RoKTsKKworICAgICAgICBpZiAoaXNMb2dpY2FsKSB7CisgICAgICAgICAgICBpbnZlcnRCdWZmZXIodGVtcCwgMCwgc291cmNlTGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBvdXRwdXRTaXplID0gc291cmNlTGVuZ3RoOworCisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIExFVFRFUlNfTUFTSykgeworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQ6CisgICAgICAgICAgICBvdXRwdXRTaXplID0gc2hhcGVVbmljb2RlKHRlbXAsIDAsIHNvdXJjZUxlbmd0aCwgZGVzdFNpemUsIDEpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFOgorICAgICAgICAgICAgb3V0cHV0U2l6ZSA9IHNoYXBlVW5pY29kZSh0ZW1wLCAwLCBzb3VyY2VMZW5ndGgsIGRlc3RTaXplLCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVUVEVSU19VTlNIQVBFOgorICAgICAgICAgICAgb3V0cHV0U2l6ZSA9IGRlU2hhcGVVbmljb2RlKHRlbXAsIDAsIHNvdXJjZUxlbmd0aCwgZGVzdFNpemUpOworICAgICAgICAgICAgYnJlYWs7IAorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAob3V0cHV0U2l6ZSA+IGRlc3RTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm90IGVub3VnaCByb29tIGZvciByZXN1bHQgZGF0YSIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChvcHRpb25zICYgRElHSVRTX01BU0spICE9IERJR0lUU19OT09QKSB7CisgICAgICAgICAgICBjaGFyIGRpZ2l0QmFzZSA9ICdcdTAwMzAnOyAvLyBFdXJvcGVhbiBkaWdpdHMKKyAgICAgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIERJR0lUX1RZUEVfTUFTSykgeworICAgICAgICAgICAgY2FzZSBESUdJVF9UWVBFX0FOOgorICAgICAgICAgICAgICAgIGRpZ2l0QmFzZSA9ICdcdTA2NjAnOyAgLy8gQXJhYmljLUluZGljIGRpZ2l0cworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUX1RZUEVfQU5fRVhURU5ERUQ6CisgICAgICAgICAgICAgICAgZGlnaXRCYXNlID0gJ1x1MDZmMCc7ICAvLyBFYXN0ZXJuIEFyYWJpYy1JbmRpYyBkaWdpdHMgKFBlcnNpYW4gYW5kIFVyZHUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIERJR0lUU19NQVNLKSB7CisgICAgICAgICAgICBjYXNlIERJR0lUU19FTjJBTjoKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdERlbHRhID0gZGlnaXRCYXNlIC0gJ1x1MDAzMCc7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3V0cHV0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSAnXHUwMDM5JyAmJiBjaCA+PSAnXHUwMDMwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbaV0gKz0gZGlnaXREZWx0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBESUdJVFNfQU4yRU46CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGRpZ2l0VG9wID0gKGNoYXIpKGRpZ2l0QmFzZSArIDkpOworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXREZWx0YSA9ICdcdTAwMzAnIC0gZGlnaXRCYXNlOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG91dHB1dFNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRlbXBbaV07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gZGlnaXRUb3AgJiYgY2ggPj0gZGlnaXRCYXNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtpXSArPSBkaWdpdERlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0xSOgorICAgICAgICAgICAgICAgIHNoYXBlVG9BcmFiaWNEaWdpdHNXaXRoQ29udGV4dCh0ZW1wLCAwLCBvdXRwdXRTaXplLCBkaWdpdEJhc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBESUdJVFNfRU4yQU5fSU5JVF9BTDoKKyAgICAgICAgICAgICAgICBzaGFwZVRvQXJhYmljRGlnaXRzV2l0aENvbnRleHQodGVtcCwgMCwgb3V0cHV0U2l6ZSwgZGlnaXRCYXNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIGludmVydEJ1ZmZlcih0ZW1wLCAwLCBvdXRwdXRTaXplKTsKKyAgICAgICAgfQorICAgICAgCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgZGVzdCwgZGVzdFN0YXJ0LCBvdXRwdXRTaXplKTsKKyAgICAgIAorICAgICAgICByZXR1cm4gb3V0cHV0U2l6ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTlkMzBmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmdFeGNlcHRpb24uamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogVGhyb3duIGJ5IEFyYWJpY1NoYXBpbmcgd2hlbiB0aGVyZSBpcyBhIHNoYXBpbmcgZXJyb3IuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24geworICAgIC8vIGdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNTI2MTUzMTgwNTQ5NzI2MDQ5MEw7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3R1Y3QgdGhlIGV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlCisgICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uCisgICAgICogCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBzdXBlcihtZXNzYWdlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0RpY3Rpb25hcnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyYzdhZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0RpY3Rpb25hcnkuamF2YQpAQCAtMCwwICsxLDMyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RCeXRlQXJyYXk7CisKKy8qKgorICogVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBsaXN0IG9mIGtub3duIHdvcmRzIHVzZWQgYnkKKyAqIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuICBUaGUgY29uY2VwdHVhbCBkYXRhIHN0cnVjdHVyZSB1c2VkCisgKiBoZXJlIGlzIGEgdHJpZTogdGhlcmUgaXMgYSBub2RlIGhhbmdpbmcgb2ZmIHRoZSByb290IG5vZGUgZm9yIGV2ZXJ5CisgKiBsZXR0ZXIgdGhhdCBjYW4gc3RhcnQgYSB3b3JkLiAgRWFjaCBvZiB0aGVzZSBub2RlcyBoYXMgYSBub2RlIGhhbmdpbmcKKyAqIG9mZiBvZiBpdCBmb3IgZXZlcnkgbGV0dGVyIHRoYXQgY2FuIGJlIHRoZSBzZWNvbmQgbGV0dGVyIG9mIGEgd29yZAorICogaWYgdGhpcyBub2RlIGlzIHRoZSBmaXJzdCBsZXR0ZXIsIGFuZCBzbyBvbi4gIFRoZSB0cmllIGlzIHJlcHJlc2VudGVkCisgKiBhcyBhIHR3by1kaW1lbnNpb25hbCBhcnJheSB0aGF0IGNhbiBiZSB0cmVhdGVkIGFzIGEgdGFibGUgb2Ygc3RhdGUKKyAqIHRyYW5zaXRpb25zLiAgSW5kZXhlcyBhcmUgdXNlZCB0byBjb21wcmVzcyB0aGlzIGFycmF5LCB0YWtpbmcKKyAqIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0IHRoaXMgYXJyYXkgd2lsbCBhbHdheXMgYmUgdmVyeSBzcGFyc2UuCisgKiBAaW50ZXJuYWwKKyAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICovCitwdWJsaWMgY2xhc3MgQnJlYWtEaWN0aW9uYXJ5IHsKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIHRlc3RpbmcgYW5kIGRlYnVnZ2luZworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqIAorICAgICAqIEBpbnRlcm5hbCAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKQorICAgICAgICAgICAgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBhcmdzWzBdOworCisgICAgICAgIEJyZWFrRGljdGlvbmFyeSBkaWN0aW9uYXJ5ID0gbmV3IEJyZWFrRGljdGlvbmFyeShuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGVuYW1lKSk7CisKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbnVsbDsKKworICAgICAgICBpZihhcmdzLmxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShhcmdzWzFdKSwgIlVuaWNvZGVMaXR0bGUiKSk7CisgICAgICAgIH0KKworICAgICAgICBkaWN0aW9uYXJ5LnByaW50V29yZExpc3QoIiIsIDAsIG91dCk7CisKKyAgICAgICAgaWYgKG91dCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBAaW50ZXJuYWwgCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHJpbnRXb3JkTGlzdChTdHJpbmcgcGFydGlhbFdvcmQsIGludCBzdGF0ZSwgUHJpbnRXcml0ZXIgb3V0KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHN0YXRlID09IDB4RkZGRikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnRpYWxXb3JkKTsKKyAgICAgICAgICAgIGlmIChvdXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHBhcnRpYWxXb3JkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IG5ld1N0YXRlID0gKGF0KHN0YXRlLCBpKSkgJiAweEZGRkY7CisKKyAgICAgICAgICAgICAgICBpZiAobmV3U3RhdGUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIG5ld0NoYXIgPSByZXZlcnNlQ29sdW1uTWFwW2ldOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3UGFydGlhbFdvcmQgPSBwYXJ0aWFsV29yZDsKKworICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q2hhciAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJ0aWFsV29yZCArPSBuZXdDaGFyOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRXb3JkTGlzdChuZXdQYXJ0aWFsV29yZCwgbmV3U3RhdGUsIG91dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBtYXAgdXNlZCB0byBnbyBmcm9tIGNvbHVtbiBudW1iZXJzIHRvIGNoYXJhY3RlcnMuICBVc2VkIG9ubHkKKyAgICAgKiBmb3IgZGVidWdnaW5nIHJpZ2h0IG5vdy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXJbXSByZXZlcnNlQ29sdW1uTWFwID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIE1hcHMgZnJvbSBjaGFyYWN0ZXJzIHRvIGNvbHVtbiBudW1iZXJzLiAgVGhlIG1haW4gdXNlIG9mIHRoaXMgaXMgdG8KKyAgICAgKiBhdm9pZCBtYWtpbmcgcm9vbSBpbiB0aGUgYXJyYXkgZm9yIGVtcHR5IGNvbHVtbnMuCisgICAgICovCisgICAgcHJpdmF0ZSBDb21wYWN0Qnl0ZUFycmF5IGNvbHVtbk1hcCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGFjdHVhbCBjb2x1bW5zIGluIHRoZSB0YWJsZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG51bUNvbHM7CisKKyAgICAvKioKKyAgICAgKiBDb2x1bW5zIGFyZSBvcmdhbml6ZWQgaW50byBncm91cHMgb2YgMzIuICBUaGlzIHNheXMgaG93IG1hbnkKKyAgICAgKiBjb2x1bW4gZ3JvdXBzLiAgKFdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzLCBidXQgd2Ugc3RvcmUgdGhlCisgICAgICogdmFsdWUgdG8gYXZvaWQgaGF2aW5nIHRvIHJlcGVhdGVkbHkgY2FsY3VsYXRlIGl0LikKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudW1Db2xHcm91cHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYWN0dWFsIGNvbXByZXNzZWQgc3RhdGUgdGFibGUuICBFYWNoIGNvbmNlcHR1YWwgcm93IHJlcHJlc2VudHMKKyAgICAgKiBhIHN0YXRlLCBhbmQgdGhlIGNlbGxzIGluIGl0IGNvbnRhaW4gdGhlIHJvdyBudW1iZXJzIG9mIHRoZSBzdGF0ZXMKKyAgICAgKiB0byB0cmFuc2l0aW9uIHRvIGZvciBlYWNoIHBvc3NpYmxlIGxldHRlci4gIDAgaXMgdXNlZCB0byBpbmRpY2F0ZQorICAgICAqIGFuIGlsbGVnYWwgY29tYmluYXRpb24gb2YgbGV0dGVycyAoaS5lLiwgdGhlIGVycm9yIHN0YXRlKS4gIFRoZQorICAgICAqIHRhYmxlIGlzIGNvbXByZXNzZWQgYnkgZWxpbWluYXRpbmcgYWxsIHRoZSB1bnBvcHVsYXRlZCAoaS5lLiwgemVybykKKyAgICAgKiBjZWxscy4gIE11bHRpcGxlIGNvbmNlcHR1YWwgcm93cyBjYW4gdGhlbiBiZSBkb3VibGVkIHVwIGluIGEgc2luZ2xlCisgICAgICogcGh5c2ljYWwgcm93IGJ5IHNsaWRpbmcgdGhlbSB1cCBhbmQgcG9zc2libHkgc2hpZnRpbmcgdGhlbSB0byBvbmUKKyAgICAgKiBzaWRlIG9yIHRoZSBvdGhlciBzbyB0aGUgcG9wdWxhdGVkIGNlbGxzIGRvbid0IGNvbGxpZGUuICBJbmRleGVzCisgICAgICogYXJlIHVzZWQgdG8gaWRlbnRpZnkgdW5wb3B1bGF0ZWQgY2VsbHMgYW5kIHRvIGxvY2F0ZSBwb3B1bGF0ZWQgY2VsbHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIHRhYmxlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoaXMgaW5kZXggbWFwcyBsb2dpY2FsIHJvdyBudW1iZXJzIHRvIHBoeXNpY2FsIHJvdyBudW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIHJvd0luZGV4ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgYml0bWFwIGlzIHVzZWQgdG8gdGVsbCB3aGljaCBjZWxscyBpbiB0aGUgY29tY2VwdHVhbCB0YWJsZSBhcmUKKyAgICAgKiBwb3B1bGF0ZWQuICBUaGlzIGFycmF5IGNvbnRhaW5zIGFsbCB0aGUgdW5pcXVlIGJpdCBjb21iaW5hdGlvbnMKKyAgICAgKiBpbiB0aGF0IGJpdG1hcC4gIElmIHRoZSB0YWJsZSBpcyBtb3JlIHRoYW4gMzIgY29sdW1ucyB3aWRlLAorICAgICAqIHN1Y2Nlc3NpdmUgZW50cmllcyBpbiB0aGlzIGFycmF5IGFyZSB1c2VkIGZvciBhIHNpbmdsZSByb3cuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSByb3dJbmRleEZsYWdzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoaXMgaW5kZXggbWFwcyBmcm9tIGEgbG9naWNhbCByb3cgbnVtYmVyIGludG8gdGhlIGJpdG1hcCB0YWJsZSBhYm92ZS4KKyAgICAgKiAoVGhpcyBrZWVwcyB1cyBmcm9tIHN0b3JpbmcgZHVwbGljYXRlIGJpdG1hcCBjb21iaW5hdGlvbnMuKSAgU2luY2UgdGhlcmUKKyAgICAgKiBhcmUgYSBsb3Qgb2Ygcm93cyB3aXRoIG9ubHkgb25lIHBvcHVsYXRlZCBjZWxsLCBpbnN0ZWFkIG9mIHdhc3Rpbmcgc3BhY2UKKyAgICAgKiBpbiB0aGUgYml0bWFwIHRhYmxlLCB3ZSBqdXN0IHN0b3JlIGEgbmVnYXRpdmUgbnVtYmVyIGluIHRoaXMgaW5kZXggZm9yCisgICAgICogcm93cyB3aXRoIG9uZSBwb3B1bGF0ZWQgY2VsbC4gIFRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGF0IG51bWJlciBpcworICAgICAqIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBwb3B1bGF0ZWQgY2VsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXhGbGFnc0luZGV4ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEZvciBlYWNoIGxvZ2ljYWwgcm93LCB0aGlzIGluZGV4IGNvbnRhaW5zIGEgY29uc3RhbnQgdGhhdCBpcyBhZGRlZCB0bworICAgICAqIHRoZSBsb2dpY2FsIGNvbHVtbiBudW1iZXIgdG8gZ2V0IHRoZSBwaHlzaWNhbCBjb2x1bW4gbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlW10gcm93SW5kZXhTaGlmdHMgPSBudWxsOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBkZXNlcmlhbGl6YXRpb24KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqIAorICAgICAqIEBpbnRlcm5hbCAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnJlYWtEaWN0aW9uYXJ5KElucHV0U3RyZWFtIGRpY3Rpb25hcnlTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJlYWREaWN0aW9uYXJ5RmlsZShuZXcgRGF0YUlucHV0U3RyZWFtKGRpY3Rpb25hcnlTdHJlYW0pKTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVhZERpY3Rpb25hcnlGaWxlKERhdGFJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGw7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgdmVyc2lvbiBudW1iZXIgKHJpZ2h0IG5vdyB3ZSBqdXN0IGlnbm9yZSBpdCkKKyAgICAgICAgaW4ucmVhZEludCgpOworCisgICAgICAgIC8vIHJlYWQgaW4gdGhlIGNvbHVtbiBtYXAgKHRoaXMgaXMgc2VyaWFsaXplZCBpbiBpdHMgaW50ZXJuYWwgZm9ybToKKyAgICAgICAgLy8gYW4gaW5kZXggYXJyYXkgZm9sbG93ZWQgYnkgYSBkYXRhIGFycmF5KQorICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0ZW1wW2ldID0gKGNoYXIpaW4ucmVhZFNob3J0KCk7CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGJ5dGVbXSB0ZW1wMiA9IG5ldyBieXRlW2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXAyLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGVtcDJbaV0gPSBpbi5yZWFkQnl0ZSgpOworICAgICAgICBjb2x1bW5NYXAgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSh0ZW1wLCB0ZW1wMik7CisKKyAgICAgICAgLy8gcmVhZCBpbiBudW1Db2xzIGFuZCBudW1Db2xHcm91cHMKKyAgICAgICAgbnVtQ29scyA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgbnVtQ29sR3JvdXBzID0gaW4ucmVhZEludCgpOworCisgICAgICAgIC8vIHJlYWQgaW4gdGhlIHJvdy1udW1iZXIgaW5kZXgKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXggPSBuZXcgc2hvcnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleFtpXSA9IGluLnJlYWRTaG9ydCgpOworCisgICAgICAgIC8vIGxvYWQgaW4gdGhlIHBvcHVsYXRlZC1jZWxscyBiaXRtYXA6IGluZGV4IGZpcnN0LCB0aGVuIGJpdG1hcCBsaXN0CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleCA9IG5ldyBzaG9ydFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzSW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleEZsYWdzSW5kZXhbaV0gPSBpbi5yZWFkU2hvcnQoKTsKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhGbGFncyA9IG5ldyBpbnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NbaV0gPSBpbi5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gbG9hZCBpbiB0aGUgcm93LXNoaWZ0IGluZGV4CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHJvd0luZGV4U2hpZnRzID0gbmV3IGJ5dGVbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhTaGlmdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleFNoaWZ0c1tpXSA9IGluLnJlYWRCeXRlKCk7CisKKyAgICAgICAgLy8gZmluYWxseSwgbG9hZCBpbiB0aGUgYWN0dWFsIHN0YXRlIHRhYmxlCisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHRhYmxlID0gbmV3IHNob3J0W2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGFibGVbaV0gPSBpbi5yZWFkU2hvcnQoKTsKKworICAgICAgICAvLyB0aGlzIGRhdGEgc3RydWN0dXJlIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgcHVycG9zZXMKKyAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcCA9IG5ldyBjaGFyW251bUNvbHNdOworICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweGZmZmY7IGMrKykgeworICAgICAgICAgICAgaW50IGNvbCA9IGNvbHVtbk1hcC5lbGVtZW50QXQoYyk7CisgICAgICAgICAgICBpZiAoY29sICE9IDApIHsKKyAgICAgICAgICAgICAgIHJldmVyc2VDb2x1bW5NYXBbY29sXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGluLmNsb3NlKCk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBhY2Nlc3MgdG8gdGhlIHdvcmRzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFVzZXMgdGhlIGNvbHVtbiBtYXAgdG8gbWFwIHRoZSBjaGFyYWN0ZXIgdG8gYSBjb2x1bW4gbnVtYmVyLCB0aGVuCisgICAgICogcGFzc2VzIHRoZSByb3cgYW5kIGNvbHVtbiBudW1iZXIgdG8gdGhlIG90aGVyIHZlcnNpb24gb2YgYXQoKQorICAgICAqIEBwYXJhbSByb3cgVGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciB3aG9zZSBjb2x1bW4gd2UncmUgaW50ZXJlc3RlZCBpbgorICAgICAqIEByZXR1cm4gVGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGNoYXIgY2gpIHsKKyAgICAgICAgaW50IGNvbCA9IGNvbHVtbk1hcC5lbGVtZW50QXQoY2gpOworICAgICAgICByZXR1cm4gYXQocm93LCBjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGluIHRoZSBjZWxsIHdpdGggdGhlIHNwZWNpZmllZCAobG9naWNhbCkgcm93IGFuZAorICAgICAqIGNvbHVtbiBudW1iZXJzLiAgSW4gRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwgdGhlIHJvdyBudW1iZXIgaXMKKyAgICAgKiBhIHN0YXRlIG51bWJlciwgdGhlIGNvbHVtbiBudW1iZXIgaXMgYW4gaW5wdXQsIGFuZCB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgdGhlIHJvdyBudW1iZXIgb2YgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvLiAgKDAgaXMgdGhlCisgICAgICogImVycm9yIiBzdGF0ZSwgYW5kIC0xIGlzIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlIGluIGEgZGljdGlvbmFyeSkKKyAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgbnVtYmVyIG9mIHRoZSBjdXJyZW50IHN0YXRlCisgICAgICogQHBhcmFtIGNvbCBUaGUgY29sdW1uIG51bWJlciBvZiB0aGUgaW5wdXQgY2hhcmFjdGVyICgwIG1lYW5zICJub3QgYQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVyIikKKyAgICAgKiBAcmV0dXJuIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBuZXcgc3RhdGUgdG8gdHJhbnNpdGlvbiB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzaG9ydCBhdChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIGlmIChjZWxsSXNQb3B1bGF0ZWQocm93LCBjb2wpKSB7CisgICAgICAgICAgICAvLyB3ZSBtYXAgZnJvbSBsb2dpY2FsIHRvIHBoeXNpY2FsIHJvdyBudW1iZXIgYnkgbG9va2luZyB1cCB0aGUKKyAgICAgICAgICAgIC8vIG1hcHBpbmcgaW4gcm93SW5kZXg7IHdlIG1hcCBmcm9tIGxvZ2ljYWwgY29sdW1uIG51bWJlciB0bworICAgICAgICAgICAgLy8gcGh5c2ljYWwgY29sdW1uIG51bWJlciBieSBsb29raW5nIHVwIGEgc2hpZnQgdmFsdWUgZm9yIHRoaXMKKyAgICAgICAgICAgIC8vIGxvZ2ljYWwgcm93IGFuZCBvZmZzZXR0aW5nIHRoZSBsb2dpY2FsIGNvbHVtbiBudW1iZXIgYnkKKyAgICAgICAgICAgIC8vIHRoZSBzaGlmdCBhbW91bnQuICBUaGVuIHdlIGNhbiB1c2UgaW50ZXJuYWxBdCgpIHRvIGFjdHVhbGx5CisgICAgICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIG91dCBvZiB0aGUgdGFibGUuCisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxBdChyb3dJbmRleFtyb3ddLCBjb2wgKyByb3dJbmRleFNoaWZ0c1tyb3ddKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gKGxvZ2ljYWwpIHJvdyBhbmQgY29sdW1uIG51bWJlcnMsIHJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiBjZWxsIGluIHRoYXQgcG9zaXRpb24gaXMgcG9wdWxhdGVkCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNlbGxJc1BvcHVsYXRlZChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIC8vIGxvb2sgdXAgdGhlIGVudHJ5IGluIHRoZSBiaXRtYXAgaW5kZXggZm9yIHRoZSBzcGVjaWZpZWQgcm93LgorICAgICAgICAvLyBJZiBpdCdzIGEgbmVnYXRpdmUgbnVtYmVyLCBpdCdzIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBvbmx5CisgICAgICAgIC8vIHBvcHVsYXRlZCBjZWxsIGluIHRoZSByb3cKKyAgICAgICAgaWYgKHJvd0luZGV4RmxhZ3NJbmRleFtyb3ddIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbCA9PSAtcm93SW5kZXhGbGFnc0luZGV4W3Jvd107CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBpdCdzIGEgcG9zaXRpdmUgbnVtYmVyLCBpdCdzIHRoZSBvZmZzZXQgb2YgYW4gZW50cnkgaW4gdGhlIGJpdG1hcAorICAgICAgICAvLyBsaXN0LiAgSWYgdGhlIHRhYmxlIGlzIG1vcmUgdGhhbiAzMiBjb2x1bW5zIHdpZGUsIHRoZSBiaXRtYXAgaXMgc3RvcmVkCisgICAgICAgIC8vIHN1Y2Nlc3NpdmUgZW50cmllcyBpbiB0aGUgYml0bWFwIGxpc3QsIHNvIHdlIGhhdmUgdG8gZGl2aWRlIHRoZSBjb2x1bW4KKyAgICAgICAgLy8gbnVtYmVyIGJ5IDMyIGFuZCBvZmZzZXQgdGhlIG51bWJlciB3ZSBnb3Qgb3V0IG9mIHRoZSBpbmRleCBieSB0aGUgcmVzdWx0LgorICAgICAgICAvLyBPbmNlIHdlIGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBpZWNlIG9mIHRoZSBiaXRtYXAsIHRlc3QgdGhlIGFwcHJvcHJpYXRlCisgICAgICAgIC8vIGJpdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGZsYWdzID0gcm93SW5kZXhGbGFnc1tyb3dJbmRleEZsYWdzSW5kZXhbcm93XSArIChjb2wgPj4gNSldOworICAgICAgICAgICAgcmV0dXJuIChmbGFncyAmICgxIDw8IChjb2wgJiAweDFmKSkpICE9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhdCgpIHdoZW4gd2Uga25vdyB0aGUgc3BlY2lmaWVkIGNlbGwgaXMgcG9wdWxhdGVkLgorICAgICAqIEBwYXJhbSByb3cgVGhlIFBIWVNJQ0FMIHJvdyBudW1iZXIgb2YgdGhlIGNlbGwKKyAgICAgKiBAcGFyYW0gY29sIFRoZSBQSFlTSUNBTCBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjZWxsCisgICAgICogQHJldHVybiBUaGUgdmFsdWUgc3RvcmVkIGluIHRoZSBjZWxsCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzaG9ydCBpbnRlcm5hbEF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgLy8gdGhlIHRhYmxlIGlzIGEgb25lLWRpbWVuc2lvbmFsIGFycmF5LCBzbyB0aGlzIGp1c3QgZG9lcyB0aGUgbWF0aCBuZWNlc3NhcnkKKyAgICAgICAgLy8gdG8gdHJlYXQgaXQgYXMgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgKHdlIGRvbid0IGp1c3QgdXNlIGEgdHdvLWRpbWVuc2lvbmFsCisgICAgICAgIC8vIGFycmF5IGJlY2F1c2UgdHdvLWRpbWVuc2lvbmFsIGFycmF5cyBhcmUgaW5lZmZpY2llbnQgaW4gSmF2YSkKKyAgICAgICAgcmV0dXJuIHRhYmxlW3JvdyAqIG51bUNvbHMgKyBjb2xdOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2N2Q5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw4ODUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWc7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgaW4gdGV4dC4gIFRoaXMgY2xhc3MgZGVmaW5lcyBhIHByb3RvY29sIGZvcgorICogb2JqZWN0cyB0aGF0IGJyZWFrIHVwIGEgcGllY2Ugb2YgbmF0dXJhbC1sYW5ndWFnZSB0ZXh0IGFjY29yZGluZyB0byBhIHNldAorICogb2YgY3JpdGVyaWEuICBJbnN0YW5jZXMgb3Igc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCwgZm9yCisgKiBleGFtcGxlLCB0byBicmVhayBhIHBpZWNlIG9mIHRleHQgaW50byB3b3Jkcywgc2VudGVuY2VzLCBvciBsb2dpY2FsIGNoYXJhY3RlcnMKKyAqIGFjY29yZGluZyB0byB0aGUgY29udmVudGlvbnMgb2Ygc29tZSBsYW5ndWFnZSBvciBncm91cCBvZiBsYW5ndWFnZXMuCisgKgorICogV2UgcHJvdmlkZSBmaXZlIGJ1aWx0LWluIHR5cGVzIG9mIEJyZWFrSXRlcmF0b3I6CisgKiA8dWw+PGxpPmdldFRpdGxlSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcworICogYmV0d2VlbiB0aXRsZSBicmVha3MuCisgKiA8bGk+Z2V0U2VudGVuY2VJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHNlbnRlbmNlcy4gIFRoaXMgaXMgdXNlZnVsIGZvciB0cmlwbGUtY2xpY2sgc2VsZWN0aW9uLCBmb3IgZXhhbXBsZS4KKyAqIDxsaT5nZXRXb3JkSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiB3b3Jkcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBkb3VibGUtY2xpY2sgc2VsZWN0aW9uIG9yICJmaW5kIHdob2xlIHdvcmRzIiBzZWFyY2hlcy4KKyAqIFRoaXMgdHlwZSBvZiBCcmVha0l0ZXJhdG9yIG1ha2VzIHN1cmUgdGhlcmUgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiBhdCB0aGUKKyAqIGJlZ2lubmluZyBhbmQgZW5kIG9mIGVhY2ggbGVnYWwgd29yZC4gIChOdW1iZXJzIGNvdW50IGFzIHdvcmRzLCB0b28uKSAgV2hpdGVzcGFjZQorICogYW5kIHB1bmN0dWF0aW9uIGFyZSBrZXB0IHNlcGFyYXRlIGZyb20gcmVhbCB3b3Jkcy4KKyAqIDxsaT5nZXRMaW5lSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgcG9zaXRpb25zIHdoZXJlIGl0IGlzCisgKiBsZWdhbCBmb3IgYSB0ZXh0IGVkaXRvciB0byB3cmFwIGxpbmVzLiAgVGhpcyBpcyBzaW1pbGFyIHRvIHdvcmQgYnJlYWtpbmcsIGJ1dAorICogbm90IHRoZSBzYW1lOiBwdW5jdHVhdGlvbiBhbmQgd2hpdGVzcGFjZSBhcmUgZ2VuZXJhbGx5IGtlcHQgd2l0aCB3b3JkcyAoeW91IGRvbid0CisgKiB3YW50IGEgbGluZSB0byBzdGFydCB3aXRoIHdoaXRlc3BhY2UsIGZvciBleGFtcGxlKSwgYW5kIHNvbWUgc3BlY2lhbCBjaGFyYWN0ZXJzCisgKiBjYW4gZm9yY2UgYSBwb3NpdGlvbiB0byBiZSBjb25zaWRlcmVkIGEgbGluZS1icmVhayBwb3NpdGlvbiBvciBwcmV2ZW50IGEgcG9zaXRpb24KKyAqIGZyb20gYmVpbmcgYSBsaW5lLWJyZWFrIHBvc2l0aW9uLgorICogPGxpPmdldENoYXJhY3Rlckluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgYmV0d2VlbgorICogbG9naWNhbCBjaGFyYWN0ZXJzLiAgQmVjYXVzZSBvZiB0aGUgc3RydWN0dXJlIG9mIHRoZSBVbmljb2RlIGVuY29kaW5nLCBhIGxvZ2ljYWwKKyAqIGNoYXJhY3RlciBtYXkgYmUgc3RvcmVkIGludGVybmFsbHkgYXMgbW9yZSB0aGFuIG9uZSBVbmljb2RlIGNvZGUgcG9pbnQuICAoQSB3aXRoIGFuCisgKiB1bWxhdXQgbWF5IGJlIHN0b3JlZCBhcyBhbiBhIGZvbGxvd2VkIGJ5IGEgc2VwYXJhdGUgY29tYmluaW5nIHVtbGF1dCBjaGFyYWN0ZXIsCisgKiBmb3IgZXhhbXBsZSwgYnV0IHRoZSB1c2VyIHN0aWxsIHRoaW5rcyBvZiBpdCBhcyBvbmUgY2hhcmFjdGVyLikgIFRoaXMgaXRlcmF0b3IgYWxsb3dzCisgKiB2YXJpb3VzIHByb2Nlc3NlcyAoZXNwZWNpYWxseSB0ZXh0IGVkaXRvcnMpIHRvIHRyZWF0IGFzIGNoYXJhY3RlcnMgdGhlIHVuaXRzIG9mIHRleHQKKyAqIHRoYXQgYSB1c2VyIHdvdWxkIHRoaW5rIG9mIGFzIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIHRoZSB1bml0cyBvZiB0ZXh0IHRoYXQgdGhlCisgKiBjb21wdXRlciBzZWVzIGFzICJjaGFyYWN0ZXJzIi48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IncyBpbnRlcmZhY2UgZm9sbG93cyBhbiAiaXRlcmF0b3IiIG1vZGVsIChoZW5jZSB0aGUgbmFtZSksIG1lYW5pbmcgaXQKKyAqIGhhcyBhIGNvbmNlcHQgb2YgYSAiY3VycmVudCBwb3NpdGlvbiIgYW5kIG1ldGhvZHMgbGlrZSBmaXJzdCgpLCBsYXN0KCksIG5leHQoKSwKKyAqIGFuZCBwcmV2aW91cygpIHRoYXQgdXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uLiAgQWxsIEJyZWFrSXRlcmF0b3JzIHVwaG9sZCB0aGUKKyAqIGZvbGxvd2luZyBpbnZhcmlhbnRzOgorICogPHVsPjxsaT5UaGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHRleHQgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIGJvdW5kYXJ5IHBvc2l0aW9ucy4KKyAqIDxsaT5UaGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0b3IgaXMgYWx3YXlzIGEgYm91bmRhcnkgcG9zaXRpb24gKHJhbmRvbS0KKyAqIGFjY2VzcyBtZXRob2RzIG1vdmUgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSBvcgorICogYWZ0ZXIgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiwgbm90IF90b18gdGhlIHNwZWNpZmllZCBwb3NpdGlvbikuCisgKiA8bGk+RE9ORSBpcyB1c2VkIGFzIGEgZmxhZyB0byBpbmRpY2F0ZSB3aGVuIGl0ZXJhdGlvbiBoYXMgc3RvcHBlZC4gIERPTkUgaXMgb25seQorICogcmV0dXJuZWQgd2hlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0IGFuZCB0aGUgdXNlciBjYWxscyBuZXh0KCksCisgKiBvciB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzCisgKiBwcmV2aW91cygpLgorICogPGxpPkJyZWFrIHBvc2l0aW9ucyBhcmUgbnVtYmVyZWQgYnkgdGhlIHBvc2l0aW9ucyBvZiB0aGUgY2hhcmFjdGVycyB0aGF0IGZvbGxvdworICogdGhlbS4gIFRodXMsIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAqIGlzIDAsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIDEsIGFuZCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlCisgKiBsYXN0IGNoYXJhY3RlciBpcyAxIHBsdXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICogPGxpPlRoZSBjbGllbnQgY2FuIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgYW4gaXRlcmF0b3IsIG9yIHRoZSB0ZXh0IGl0IGFuYWx5emVzLAorICogYXQgd2lsbCwgYnV0IGNhbm5vdCBjaGFuZ2UgdGhlIGJlaGF2aW9yLiAgSWYgdGhlIHVzZXIgd2FudHMgZGlmZmVyZW50IGJlaGF2aW9yLCBoZQorICogbXVzdCBpbnN0YW50aWF0ZSBhIG5ldyBpdGVyYXRvci48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQgaXQgYW5hbHl6ZXMgdGhyb3VnaCBhIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBtYWtlcworICogaXQgcG9zc2libGUgdG8gdXNlIEJyZWFrSXRlcmF0b3IgdG8gYW5hbHl6ZSB0ZXh0IGluIGFueSB0ZXh0LXN0b3JhZ2UgdmVoaWNsZSB0aGF0CisgKiBwcm92aWRlcyBhIENoYXJhY3Rlckl0ZXJhdG9yIGludGVyZmFjZS4KKyAqCisgKiA8Yj5OT1RFOjwvYj4gIFNvbWUgdHlwZXMgb2YgQnJlYWtJdGVyYXRvciBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBjcmVhdGUsIGFuZAorICogaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGVkIGJ5IHRoZSBzeXN0ZW0uICBGb3IKKyAqIG9wdGltYWwgcGVyZm9ybWFuY2UsIGtlZXAgaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJvdW5kIGFzIGxvbmcgYXMgbWFrZXMKKyAqIHNlbnNlLiAgRm9yIGV4YW1wbGUsIHdoZW4gd29yZC13cmFwcGluZyBhIGRvY3VtZW50LCBkb24ndCBjcmVhdGUgYW5kIGRlc3Ryb3kgYQorICogbmV3IEJyZWFrSXRlcmF0b3IgZm9yIGVhY2ggbGluZS4gIENyZWF0ZSBvbmUgYnJlYWsgaXRlcmF0b3IgZm9yIHRoZSB3aG9sZSBkb2N1bWVudAorICogKG9yIHdoYXRldmVyIHN0cmV0Y2ggb2YgdGV4dCB5b3UncmUgd3JhcHBpbmcpIGFuZCB1c2UgaXQgdG8gZG8gdGhlIHdob2xlIGpvYiBvZgorICogd3JhcHBpbmcgdGhlIHRleHQuCisgKgorICAqIDxQPgorICogPHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjo8UD4KKyAqIENyZWF0aW5nIGFuZCB1c2luZyB0ZXh0IGJvdW5kYXJpZXMKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAqICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIHsKKyAqICAgICAgICAgIFN0cmluZyBzdHJpbmdUb0V4YW1pbmUgPSBhcmdzWzBdOworICogICAgICAgICAgLy9wcmludCBlYWNoIHdvcmQgaW4gb3JkZXIKKyAqICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYm91bmRhcnkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICogICAgICAgICAgYm91bmRhcnkuc2V0VGV4dChzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRFYWNoRm9yd2FyZChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIC8vcHJpbnQgZWFjaCBzZW50ZW5jZSBpbiByZXZlcnNlIG9yZGVyCisgKiAgICAgICAgICBib3VuZGFyeSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICogICAgICAgICAgYm91bmRhcnkuc2V0VGV4dChzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRFYWNoQmFja3dhcmQoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEZpcnN0KGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRMYXN0KGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBlYWNoIGVsZW1lbnQgaW4gb3JkZXIKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEVhY2hGb3J3YXJkKEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5maXJzdCgpOworICogICAgIGZvciAoaW50IGVuZCA9IGJvdW5kYXJ5Lm5leHQoKTsKKyAqICAgICAgICAgIGVuZCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiAgICAgICAgICBzdGFydCA9IGVuZCwgZW5kID0gYm91bmRhcnkubmV4dCgpKSB7CisgKiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBlYWNoIGVsZW1lbnQgaW4gcmV2ZXJzZSBvcmRlcgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50RWFjaEJhY2t3YXJkKEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubGFzdCgpOworICogICAgIGZvciAoaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICAgICAgIHN0YXJ0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqICAgICAgICAgIGVuZCA9IHN0YXJ0LCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZmlyc3QgZWxlbWVudAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50Rmlyc3QoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LmZpcnN0KCk7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lm5leHQoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGxhc3QgZWxlbWVudAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50TGFzdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lmxhc3QoKTsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgdGhlIGVsZW1lbnQgYXQgYSBzcGVjaWZpZWQgcG9zaXRpb24KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEF0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIGludCBwb3MsIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkuZm9sbG93aW5nKHBvcyk7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZpbmQgdGhlIG5leHQgd29yZAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyBpbnQgbmV4dFdvcmRTdGFydEFmdGVyKGludCBwb3MsIFN0cmluZyB0ZXh0KSB7CisgKiAgICAgQnJlYWtJdGVyYXRvciB3YiA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgKiAgICAgd2Iuc2V0VGV4dCh0ZXh0KTsKKyAqICAgICBpbnQgbGFzdCA9IHdiLmZvbGxvd2luZyhwb3MpOworICogICAgIGludCBjdXJyZW50ID0gd2IubmV4dCgpOworICogICAgIHdoaWxlIChjdXJyZW50ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICogICAgICAgICBmb3IgKGludCBwID0gbGFzdDsgcCA8IGN1cnJlbnQ7IHArKykgeworICogICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xldHRlcih0ZXh0LmNoYXJBdChwKSkKKyAqICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKKyAqICAgICAgICAgfQorICogICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAqICAgICAgICAgY3VycmVudCA9IHdiLm5leHQoKTsKKyAqICAgICB9CisgKiAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqIH0KKyAqIDwvcHJlPgorICogKFRoZSBpdGVyYXRvciByZXR1cm5lZCBieSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpIGlzIHVuaXF1ZSBpbiB0aGF0CisgKiB0aGUgYnJlYWsgcG9zaXRpb25zIGl0IHJldHVybnMgZG9uJ3QgcmVwcmVzZW50IGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlCisgKiB0aGluZyBiZWluZyBpdGVyYXRlZCBvdmVyLiAgVGhhdCBpcywgYSBzZW50ZW5jZS1icmVhayBpdGVyYXRvciByZXR1cm5zIGJyZWFrcworICogdGhhdCBlYWNoIHJlcHJlc2VudCB0aGUgZW5kIG9mIG9uZSBzZW50ZW5jZSBhbmQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dC4KKyAqIFdpdGggdGhlIHdvcmQtYnJlYWsgaXRlcmF0b3IsIHRoZSBjaGFyYWN0ZXJzIGJldHdlZW4gdHdvIGJvdW5kYXJpZXMgbWlnaHQgYmUgYQorICogd29yZCwgb3IgdGhleSBtaWdodCBiZSB0aGUgcHVuY3R1YXRpb24gb3Igd2hpdGVzcGFjZSBiZXR3ZWVuIHR3byB3b3Jkcy4gIFRoZQorICogYWJvdmUgY29kZSB1c2VzIGEgc2ltcGxlIGhldXJpc3RpYyB0byBkZXRlcm1pbmUgd2hpY2ggYm91bmRhcnkgaXMgdGhlIGJlZ2lubmluZworICogb2YgYSB3b3JkOiBJZiB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIHRoaXMgYm91bmRhcnkgYW5kIHRoZSBuZXh0IGJvdW5kYXJ5CisgKiBpbmNsdWRlIGF0IGxlYXN0IG9uZSBsZXR0ZXIgKHRoaXMgY2FuIGJlIGFuIGFscGhhYmV0aWNhbCBsZXR0ZXIsIGEgQ0pLIGlkZW9ncmFwaCwKKyAqIGEgSGFuZ3VsIHN5bGxhYmxlLCBhIEthbmEgY2hhcmFjdGVyLCBldGMuKSwgdGhlbiB0aGUgdGV4dCBiZXR3ZWVuIHRoaXMgYm91bmRhcnkKKyAqIGFuZCB0aGUgbmV4dCBpcyBhIHdvcmQ7IG90aGVyd2lzZSwgaXQncyB0aGUgbWF0ZXJpYWwgYmV0d2VlbiB3b3Jkcy4pCisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKgorICovCisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBCcmVha0l0ZXJhdG9yIGltcGxlbWVudHMgQ2xvbmVhYmxlCit7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgiYnJlYWtpdGVyYXRvciIpOworICAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuICBUaGVyZSBpcyBubyBzdGF0ZSB0aGF0IGlzIGNhcnJpZWQgYnkgdGhpcyBhYnN0cmFjdAorICAgICAqIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIEJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSBtZXRob2QuICBDcmVhdGVzIGFub3RoZXIgQnJlYWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yIGFuZAorICAgICAqIGN1cnJlbnQgc3RhdGUgYXMgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgY2xvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IC0xOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbi4gIFRoaXMgaXMgYWx3YXlzIHRoZSBiZWdpbm5pbmcKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZywgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICogYWx3YXlzIHJldHVybiAwLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIHRvIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmaXJzdCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uLiAgVGhpcyBpcyBhbHdheXMgdGhlICJwYXN0LXRoZS1lbmQiCisgICAgICogaW5kZXggb2YgdGhlIHRleHQgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQorICAgICAqIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSB3aG9sZSBzdHJpbmcgKGNhbGwgaXQgInRleHQiKSwgdGhpcyBmdW5jdGlvbgorICAgICAqIHdpbGwgYWx3YXlzIHJldHVybiB0ZXh0Lmxlbmd0aCgpLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsYXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcyBmb3J3YXJkIGluIHRoZSB0ZXh0IChhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyLCB0aGVyZWZvcmUsIGFkdmFuY2VzIGJhY2t3YXJkcykuICBJZiB0aGlzIGNhdXNlcyB0aGUgaXRlcmF0b3IKKyAgICAgKiB0byBhZHZhbmNlIG9mZiBlaXRoZXIgZW5kIG9mIHRoZSB0ZXh0LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORTsKKyAgICAgKiBvdGhlcndpc2UsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGFwcHJvcHJpYXRlCisgICAgICogYm91bmRhcnkuICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIG5leHQoKSBvcgorICAgICAqIHByZXZpb3VzKCkgbiB0aW1lcy4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gYWR2YW5jZSBvdmVyIChpZiBwb3NpdGl2ZSwgbW92ZXMKKyAgICAgKiBmb3J3YXJkOyBpZiBuZWdhdGl2ZSwgbW92ZXMgYmFja3dhcmRzKS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgYm91bmRhcnkgbiBib3VuZGFyaWVzIGZyb20gdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24sIG9yIERPTkUgaWYgbW92aW5nIG4gYm91bmRhcmllcyBjYXVzZXMgdGhlIGl0ZXJhdG9yCisgICAgICogdG8gYWR2YW5jZSBvZmYgZWl0aGVyIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoaW50IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGZvcndhcmQgb25lIGJvdW5kYXJ5LiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgbGFzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZCBvbmUgYm91bmRhcnkuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZQorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgZmlyc3QoKSwgb3IgdG8KKyAgICAgKiBET05FLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORSBhbmQgc2V0cyB0aGUgY3VycmVudCBwb3NpdGlvbiB0bworICAgICAqIERPTkUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHByZXZpb3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBmaXJzdAorICAgICAqIGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiAgKFdoZXRoZXIgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGl0c2VsZiBhIGJvdW5kYXJ5IHBvc2l0aW9uIG9yIG5vdCBkb2Vzbid0CisgICAgICogbWF0dGVyLS0gdGhpcyBmdW5jdGlvbiBhbHdheXMgbW92ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgKiBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLikgIElmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwb3NpdGlvbiBpcyB0aGUgcGFzdC10aGUtZW5kIHBvc2l0aW9uLCByZXR1cm5zIERPTkUuCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgY2hhcmFjdGVyIHBvc2l0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvciBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmb2xsb3dpbmcoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvZiBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgaXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBOT1RFOiAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBoZXJlIHNvbGVseSBiZWNhdXNlIHdlIGNhbid0IGFkZCBuZXcKKyAgICAgICAgLy8gYWJzdHJhY3QgbWV0aG9kcyB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZXJlIGlzIGFsbW9zdCBBTFdBWVMgYQorICAgICAgICAvLyBiZXR0ZXIsIGZhc3RlciB3YXkgdG8gZG8gdGhpcy4KKyAgICAgICAgaW50IHBvcyA9IGZvbGxvd2luZyhvZmZzZXQpOworICAgICAgICB3aGlsZSAocG9zID49IG9mZnNldCAmJiBwb3MgIT0gRE9ORSkKKyAgICAgICAgICAgIHBvcyA9IHByZXZpb3VzKCk7CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBJZiB0aGUKKyAgICAgKiBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uOyBpZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IGFzIHRob3VnaCBmb2xsb3dpbmcoKSBoYWQgYmVlbiBjYWxsZWQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgICAgICAvLyBBZ2FpbiwgdGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgcHJvdmlkZWQgc29sZWx5IGJlY2F1c2UKKyAgICAgICAgLy8gd2UgY291bGRuJ3QgYWRkIGEgbmV3IGFic3RyYWN0IG1ldGhvZCB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZSByZWFsCisgICAgICAgIC8vIGltcGxlbWVudGF0aW9ucyB3aWxsIHVzdWFsbHkgbmVlZCB0byBkbyBhIGxpdHRsZSBtb3JlIHdvcmsuCisgICAgICAgIGlmIChvZmZzZXQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZvbGxvd2luZyhvZmZzZXQgLSAxKSA9PSBvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgaXRlcmF0b3IncyBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogRm9yIGF0IGxlYXN0IHNvbWUgc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yLCB0aGlzIGlzIGEgcmVmZXJlbmNlCisgICAgICogdG8gdGhlIDxiPmFjdHVhbCBpdGVyYXRvciBiZWluZyB1c2VkPC9iPiBieSB0aGUgQnJlYWtJdGVyYXRvciwKKyAgICAgKiBhbmQgdGhlcmVmb3JlLCB0aGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSB0cmVhdGVkIGFzCisgICAgICogPHR0PmNvbnN0PC90dD4uICBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGFib3V0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICogb2YgdGhpcyBpdGVyYXRvciB3aGVuIGl0IGlzIHJldHVybmVkLiAgSWYgeW91IG5lZWQgdG8gbW92ZSB0aGF0CisgICAgICogcG9zaXRpb24gdG8gZXhhbWluZSB0aGUgdGV4dCwgY2xvbmUgdGhpcyBmdW5jdGlvbidzIHJldHVybiB2YWx1ZSBmaXJzdC4KKyAgICAgKiBAcmV0dXJuIEEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlIG5ldworICAgICAqIHBpZWNlIG9mIHRleHQgaXMgcGFzc2VkIGluIGFzIGEgU3RyaW5nLCBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqIChUaGUgb2xkIHRleHQgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBTdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBhbmFseXplIHdpdGgKKyAgICAgKiB0aGlzIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbmV3VGV4dCkKKyAgICB7CisgICAgICAgIHNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKG5ld1RleHQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUKKyAgICAgKiBCcmVha0l0ZXJhdG9yIGlzIHBhc3NlZCBhIENoYXJhY3Rlckl0ZXJhdG9yIHRocm91Z2ggd2hpY2gKKyAgICAgKiBpdCB3aWxsIGFjY2VzcyB0aGUgdGV4dCBpdHNlbGYuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydCBpbmRleC4KKyAgICAgKiAoVGhlIG9sZCBpdGVyYXRvciBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIENoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgdGV4dAorICAgICAqIHRvIGFuYWx5emUgd2l0aCB0aGlzIEJyZWFrSXRlcmF0b3IgKHRoZSBpdGVyYXRvcidzIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBpZ25vcmVkLCBidXQgaXRzIG90aGVyIHN0YXRlIGlzIHNpZ25pZmljYW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpOworCisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfQ0hBUkFDVEVSID0gMDsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9XT1JEID0gMTsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9MSU5FID0gMjsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9TRU5URU5DRSA9IDM7CisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfVElUTEUgPSA0OworCisgICAgLyoqIEBzaW5jZSBJQ1UgMi44ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEtJTkRfQ09VTlQgPSA1OworCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFNvZnRSZWZlcmVuY2VbXSBpdGVyQ2FjaGUgPSBuZXcgU29mdFJlZmVyZW5jZVs1XTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgdG8gYmUKKyAgICAgKiBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9XT1JEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgdG8gYmUKKyAgICAgKiBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1dPUkQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYnJva2VuCisgICAgICogaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldExpbmVJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9MSU5FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBicm9rZW4uCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldExpbmVJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfTElORSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcworICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX0NIQVJBQ1RFUik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldENoYXJhY3Rlckluc3RhbmNlKFVMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9DSEFSQUNURVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9TRU5URU5DRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0U2VudGVuY2VJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfU0VOVEVOQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4gVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yIAorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgYSB3b3JkIGJvdW5kYXJ5IGl0ZXJhdG9yLiB7QGxpbmsgI2dldFdvcmRJbnN0YW5jZX0KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFRpdGxlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IgCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjZ2V0V29yZEluc3RhbmNlfQorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX1RJVExFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yIAorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2dldFdvcmRJbnN0YW5jZX0KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1RJVExFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVyYXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gaXRlciB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBhZG9wdC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBlIG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yIGl0ZXIsIExvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiByZWdpc3Rlckluc3RhbmNlKGl0ZXIsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGtpbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQ2xvbmVzIG9mIHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBpdGVyIHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGFkb3B0LgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciBpdGVyLCBVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgLy8gSWYgdGhlIHJlZ2lzdGVyZWQgb2JqZWN0IG1hdGNoZXMgdGhlIG9uZSBpbiB0aGUgY2FjaGUsIHRoZW4KKyAgICAgICAgLy8gZmx1c2ggdGhlIGNhY2hlZCBvYmplY3QuCisgICAgICAgIGlmIChpdGVyQ2FjaGVba2luZF0gIT0gbnVsbCkgeworICAgICAgICAgICAgQnJlYWtJdGVyYXRvckNhY2hlIGNhY2hlID0gKEJyZWFrSXRlcmF0b3JDYWNoZSkgaXRlckNhY2hlW2tpbmRdLmdldCgpOworICAgICAgICAgICAgaWYgKGNhY2hlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2FjaGUuZ2V0TG9jYWxlKCkuZXF1YWxzKGxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlckNhY2hlW2tpbmRdID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3Rlckluc3RhbmNlKGl0ZXIsIGxvY2FsZSwga2luZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVha0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3RlciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciB0aGlzIGNhbGwgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICBpZiAoa2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5IGtleSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzogd2UgZG9uJ3QgZG8gY29kZSBjb3ZlcmFnZSBmb3IgdGhlIGZvbGxvd2luZyBsaW5lcworICAgICAgICAvLyBiZWNhdXNlIGluIGdldEJyZWFrSW5zdGFuY2Ugd2UgYWx3YXlzIGluc3RhbnRpYXRlIHRoZSBzaGltLAorICAgICAgICAvLyBhbmQgdGVzdCBleGVjdXRpb24gaXMgc3VjaCB0aGF0IHdlIGFsd2F5cyBpbnN0YW50aWF0ZSBhCisgICAgICAgIC8vIGJyZWFraXRlcmF0b3IgYmVmb3JlIHdlIGdldCB0byB0aGUgYnJlYWsgaXRlcmF0b3IgdGVzdHMuCisgICAgICAgIC8vIHRoaXMgaXMgZm9yIG1vZHVsYXJpemF0aW9uLCBhbmQgd2UgY291bGQgcmVtb3ZlIHRoZQorICAgICAgICAvLyBkZXBlbmRlbmNpZXMgaW4gZ2V0QnJlYWtJbnN0YW5jZSBieSByZXdyaXRpbmcgcGFydCBvZiB0aGUKKyAgICAgICAgLy8gTG9jYWxlRGF0YSBjb2RlLCBvciBwZXJoYXBzIGJ5IGFjY2VwdGluZyBpdCBpbnRvIHRoZQorICAgICAgICAvLyBtb2R1bGUuCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgaWYgKHNoaW0gIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgZG9uJ3Qga25vdyB3aGF0IGlzIGJlaW5nIHVucmVnaXN0ZXJlZAorICAgICAgICAgICAgLy8gLS0gd2hhdCBga2luZCcgYW5kIHdoYXQgbG9jYWxlIC0tIHNvIHdlIGZsdXNoIGFsbAorICAgICAgICAgICAgLy8gY2FjaGVzLiAgVGhpcyBpcyBzYWZlIGJ1dCBpbmVmZmljaWVudCBpZiBwZW9wbGUgYXJlCisgICAgICAgICAgICAvLyBhY3RpdmVseSByZWdpc3RlcmluZyBhbmQgdW5yZWdpc3RlcmluZy4KKyAgICAgICAgICAgIGZvciAoaW50IGtpbmQ9MDsga2luZDxLSU5EX0NPVU5UOyArK2tpbmQpIHsKKyAgICAgICAgICAgICAgICBpdGVyQ2FjaGVba2luZF0gPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNoaW0udW5yZWdpc3RlcihrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorCisgICAgLy8gZW5kIG9mIHJlZ2lzdHJhdGlvbgorCisgICAgLyoqCisgICAgICogR2V0IGEgcGFydGljdWxhciBraW5kIG9mIEJyZWFrSXRlcmF0b3IgZm9yIGEgbG9jYWxlLgorICAgICAqIEF2b2lkcyB3cml0aW5nIGEgc3dpdGNoIHN0YXRlbWVudCB3aXRoIGdldFhZWkluc3RhbmNlKHdoZXJlKSBjYWxscy4gCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSwgaW50IGtpbmQpIHsKKworICAgICAgICBpZiAoaXRlckNhY2hlW2tpbmRdICE9IG51bGwpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3JDYWNoZSBjYWNoZSA9IChCcmVha0l0ZXJhdG9yQ2FjaGUpIGl0ZXJDYWNoZVtraW5kXS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChjYWNoZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhY2hlLmdldExvY2FsZSgpLmVxdWFscyh3aGVyZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmNyZWF0ZUJyZWFrSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBzaWdoLCBhbGwgdG8gYXZvaWQgbGlua2luZyBpbiBJQ1VMb2NhbGVEYXRhLi4uCisgICAgICAgIEJyZWFrSXRlcmF0b3IgcmVzdWx0ID0gZ2V0U2hpbSgpLmNyZWF0ZUJyZWFrSXRlcmF0b3Iod2hlcmUsIGtpbmQpOworCisgICAgICAgIEJyZWFrSXRlcmF0b3JDYWNoZSBjYWNoZSA9IG5ldyBCcmVha0l0ZXJhdG9yQ2FjaGUod2hlcmUsIHJlc3VsdCk7CisgICAgICAgIGl0ZXJDYWNoZVtraW5kXSA9IG5ldyBTb2Z0UmVmZXJlbmNlKGNhY2hlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIEJyZWFrSXRlcmF0b3JzIGNhbiBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgTG9jYWxlcy4gIEFsbCBvZiB0aGUgbG9jYWxlcyBpbiB0aGUgYXJyYXkgY2FuCisgICAgICogYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIC8vIHRvIGF2b2lkIGxpbmtpbmcgSUNVTG9jYWxlRGF0YQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBCcmVha0l0ZXJhdG9ycyBjYW4gYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIEFuIGFycmF5IG9mIExvY2FsZXMuICBBbGwgb2YgdGhlIGxvY2FsZXMgaW4gdGhlIGFycmF5IGNhbgorICAgICAqIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIEJyZWFrSXRlcmF0b3IuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgLy8gdG8gYXZvaWQgbGlua2luZyBJQ1VMb2NhbGVEYXRhCisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBCcmVha0l0ZXJhdG9yQ2FjaGUgeworCisgICAgICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBpdGVyOworICAgICAgICBwcml2YXRlIFVMb2NhbGUgd2hlcmU7CisKKyAgICAgICAgQnJlYWtJdGVyYXRvckNhY2hlKFVMb2NhbGUgd2hlcmUsIEJyZWFrSXRlcmF0b3IgaXRlcikgeworICAgICAgICAgICAgdGhpcy53aGVyZSA9IHdoZXJlOworICAgICAgICAgICAgdGhpcy5pdGVyID0gKEJyZWFrSXRlcmF0b3IpIGl0ZXIuY2xvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFVMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHdoZXJlOworICAgICAgICB9CisKKyAgICAgICAgQnJlYWtJdGVyYXRvciBjcmVhdGVCcmVha0luc3RhbmNlKCkgeworICAgICAgICAgICAgcmV0dXJuIChCcmVha0l0ZXJhdG9yKSBpdGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltIHsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IgaXRlciwgVUxvY2FsZSBsLCBpbnQgayk7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSk7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJdGVyYXRvcihVTG9jYWxlIGwsIGludCBrKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yU2VydmljZVNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yU2VydmljZVNoaW0gZ2V0U2hpbSgpIHsKKyAgICAgICAgLy8gTm90ZTogdGhpcyBpbnN0YW50aWF0aW9uIGlzIHNhZmUgb24gbG9vc2UtbWVtb3J5LW1vZGVsIGNvbmZpZ3VyYXRpb25zCisgICAgICAgIC8vIGRlc3BpdGUgbGFjayBvZiBzeW5jaHJvbml6YXRpb24sIHNpbmNlIHRoZSBzaGltIGluc3RhbmNlIGhhcyBubyBzdGF0ZS0tCisgICAgICAgIC8vIGl0J3MgYWxsIGluIHRoZSBjbGFzcyBpbml0LiAgVGhlIHdvcnN0IHByb2JsZW0gaXMgd2UgbWlnaHQgaW5zdGFudGlhdGUKKyAgICAgICAgLy8gdHdvIHNoaW0gaW5zdGFuY2VzLCBidXQgdGhleSdsbCBzaGFyZSB0aGUgc2FtZSBzdGF0ZSBzbyB0aGF0J3Mgb2suCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yRmFjdG9yeSIpOworICAgICAgICAgICAgICAgIHNoaW0gPSAoQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltKWNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW07CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3JGYWN0b3J5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNDViY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yRmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworCisvKioKKyAqIEBhdXRob3IgUmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitmaW5hbCBjbGFzcyBCcmVha0l0ZXJhdG9yRmFjdG9yeSBleHRlbmRzIEJyZWFrSXRlcmF0b3IuQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltIHsKKworICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yIGl0ZXIsIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCkgeworICAgICAgICBpdGVyLnNldFRleHQobmV3IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIikpOworICAgICAgICByZXR1cm4gc2VydmljZS5yZWdpc3Rlck9iamVjdChpdGVyLCBsb2NhbGUsIGtpbmQpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWtleSk7CisgICAgfQorCisgICAgcHVibGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChzZXJ2aWNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSXRlcmF0b3IoVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgLy8gVE9ETzogY29udmVydCB0byBVTG9jYWxlIHdoZW4gc2VydmljZSBzd2l0Y2hlcyBvdmVyCisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnJlYWtJbnN0YW5jZShsb2NhbGUsIGtpbmQpOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxMb2MgPSBuZXcgVUxvY2FsZVsxXTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gKEJyZWFrSXRlcmF0b3Ipc2VydmljZS5nZXQobG9jYWxlLCBraW5kLCBhY3R1YWxMb2MpOworICAgICAgICBpdGVyLnNldExvY2FsZShhY3R1YWxMb2NbMF0sIGFjdHVhbExvY1swXSk7IC8vIHNlcnZpY2VzIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBhY3R1YWwgJiB2YWxpZAorICAgICAgICByZXR1cm4gaXRlcjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBCRlNlcnZpY2UgZXh0ZW5kcyBJQ1VMb2NhbGVTZXJ2aWNlIHsKKyAgICAgICAgQkZTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIkJyZWFrSXRlcmF0b3IiKTsKKworICAgICAgICAgICAgY2xhc3MgUkJCcmVha0l0ZXJhdG9yRmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJyZWFrSW5zdGFuY2UobG9jLCBraW5kKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZWdpc3RlckZhY3RvcnkobmV3IFJCQnJlYWtJdGVyYXRvckZhY3RvcnkoKSk7CisKKyAgICAgICAgICAgIG1hcmtEZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIGZpbmFsIElDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG5ldyBCRlNlcnZpY2UoKTsKKworCisgICAgLyoqIEtJTkRfTkFNRVMgYXJlIHRoZSByZXNvdXJjZSBrZXkgdG8gYmUgdXNlZCB0byBmZXRjaCB0aGUgbmFtZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICBwcmUtY29tcGlsZWQgYnJlYWsgcnVsZXMuICBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgImJvdW5kYXJpZXMiLgorICAgICAqICAgICAgICAgICAgIFRoZSB2YWx1ZSBmb3IgZWFjaCBrZXkgd2lsbCBiZSB0aGUgcnVsZXMgdG8gYmUgdXNlZCBmb3IgdGhlCisgICAgICogICAgICAgICAgICAgc3BlY2lmaWVkIGxvY2FsZSAtICJ3b3JkIiAtPiAid29yZF90aCIgZm9yIFRoYWksIGZvciBleGFtcGxlLgorICAgICAqICBESUNUSU9OQVJZX1BPU1NJQkxFIGluZGV4ZXMgaW4gdGhlIHNhbWUgd2F5LCBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgYQorICAgICAqICAgICAgICAgICAgIGRpY3Rpb25hcnkgaXMgYSBwb3NzaWJpbGl0eSBmb3IgdGhhdCB0eXBlIG9mIGJyZWFrLiAgVGhpcyBpcyBqdXN0CisgICAgICogICAgICAgICAgICAgYW4gb3B0aW1pemF0aW9uIHRvIGF2b2lkIGEgcmVzb3VyY2UgbG9va3VwIHdoZXJlIG5vIGRpY3Rpb25hcnkgaXMKKyAgICAgKiAgICAgICAgICAgICBldmVyIHBvc3NpYmxlLgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBLSU5EX05BTUVTID0geworICAgICAgICAgICAgImdyYXBoZW1lIiwgIndvcmQiLCAibGluZSIsICJzZW50ZW5jZSIsICJ0aXRsZSIKKyAgICAgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuW10gRElDVElPTkFSWV9QT1NTSUJMRSA9IHsKKyAgICAgICAgICAgIGZhbHNlLCAgICAgIHRydWUsICB0cnVlLCAgIGZhbHNlLCAgICAgZmFsc2UKKyAgICB9OworCisKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIAorICAgICAgICBCcmVha0l0ZXJhdG9yICAgIGl0ZXIgICAgICAgPSBudWxsOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgIHJiICAgICAgICAgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JSS0lUUl9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyAgR2V0IHRoZSBiaW5hcnkgcnVsZXMuICBUaGVzZSBhcmUgbmVlZGVkIGZvciBib3RoIG5vcm1hbCBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcnMKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZvciBEaWN0aW9uYXJ5IGl0ZXJhdG9ycy4KKyAgICAgICAgLy8KKyAgICAgICAgSW5wdXRTdHJlYW0gICAgICBydWxlU3RyZWFtID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJvdW5kYXJpZXMgICAgPSAoUmVzb3VyY2VCdW5kbGUpcmIuZ2V0T2JqZWN0KCJib3VuZGFyaWVzIik7IAorICAgICAgICAgICAgU3RyaW5nICAgICAgICAgdHlwZUtleSAgICAgICA9IEtJTkRfTkFNRVNba2luZF07CisgICAgICAgICAgICBTdHJpbmcgICAgICAgICBicmtmbmFtZSAgICAgID0gYm91bmRhcmllcy5nZXRTdHJpbmcodHlwZUtleSk7CisgICAgICAgICAgICBTdHJpbmcgICAgICAgICBydWxlc0ZpbGVOYW1lID0gSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSArSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JSS0lUUl9OQU1FKyAiLyIgKyBicmtmbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVTdHJlYW0gICAgPSBJQ1VEYXRhLmdldFN0cmVhbShydWxlc0ZpbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS50b1N0cmluZygpLCIiLCIiKTsKKyAgICAgICAgfQorIAorICAgICAgICAvLworICAgICAgICAvLyAgQ2hlY2sgd2hldGhlciBhIGRpY3Rpb25hcnkgZXhpc3RzLCBhbmQgY3JlYXRlIGEgREJCSSBpdGVyYXRvciBpcworICAgICAgICAvLyAgIG9uZSBkb2VzLgorICAgICAgICAvLworICAgICAgICBpZiAoRElDVElPTkFSWV9QT1NTSUJMRVtraW5kXSkgeworICAgICAgICAgICAgLy8gVGhpcyB0eXBlIG9mIGJyZWFrIGl0ZXJhdG9yIGNvdWxkIHBvdGVudGlhbGx5IHVzZSBhIGRpY3Rpb25hcnkuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvL0lDVVJlc291cmNlQnVuZGxlIGRpY3RSZXMgPSAoSUNVUmVzb3VyY2VCdW5kbGUpcmIuZ2V0T2JqZWN0KCJCcmVha0RpY3Rpb25hcnlEYXRhIik7CisgICAgICAgICAgICAgICAgLy9ieXRlW10gZGljdEJ5dGVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvL2RpY3RCeXRlcyA9IGRpY3RSZXMuZ2V0QmluYXJ5KGRpY3RCeXRlcyk7CisgICAgICAgICAgICAgICAgLy9UT0RPOiBIYXJkIGNvZGUgdGhpcyBmb3Igbm93ISBmaXggaXQgb25jZSBDb21wYWN0VHJpZURpY3Rpb25hcnkgaXMgcG9ydGVkCisgICAgICAgICAgICAgICAgaWYobG9jYWxlLmVxdWFscygidGgiKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyAgZmlsZU5hbWUgPSAiZGF0YS90aC5icmsiOworICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyAgICA9IElDVURhdGEuZ2V0U3RyZWFtKGZpbGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlciA9IG5ldyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVTdHJlYW0sIGlzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vICBDb3VsZG4ndCBmaW5kIGEgZGljdGlvbmFyeS4KKyAgICAgICAgICAgICAgICAvLyAgVGhpcyBpcyBub3JtYWwsIGFuZCB3aWxsIG9jY3VyIHdoZW5ldmVyIGNyZWF0aW5nIGEgd29yZCBvciBsaW5lCisgICAgICAgICAgICAgICAgLy8gIGJyZWFrIGl0ZXJhdG9yIGZvciBhIGxvY2FsZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBCcmVha0RpY3Rpb25hcnlEYXRhCisgICAgICAgICAgICAgICAgLy8gIHJlc291cmNlIC0gbWVhbmluZyBmb3IgYWxsIGJ1dCBUaGFpLgorICAgICAgICAgICAgICAgIC8vICBGYWxsIHRocm91Z2ggdG8gY3JlYXRpbmcgYSBub3JtYWwgUnVsZWJhc2VkQnJlYWtJdGVyYXRvci4KKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBBc3NlcnQuZmFpbChlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuCisgICAgICAgICAgICAvLyAgICBXZSBoYXZlIGRldGVybWluZWQgdGhhdCB0aGlzIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBhIGRpY3Rpb25hcnkgaXRlcmF0b3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyID0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRJbnN0YW5jZUZyb21Db21waWxlZFJ1bGVzKHJ1bGVTdHJlYW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBTaG91bGRuJ3QgYmUgcG9zc2libGUgdG8gZ2V0IGhlcmUuCisgICAgICAgICAgICAgICAgLy8gSWYgaXQgaGFwcGVucywgdGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBwcm9iYWJseSBjb3JydXB0ZWQgaW4gc29tZSB3YXkuCisgICAgICAgICAgICAgICAgQXNzZXJ0LmZhaWwoZSk7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiBEZXRlcm1pbmUgdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUgY29ycmVjdGx5LgorICAgICAgICBVTG9jYWxlIHVsb2MgPSBVTG9jYWxlLmZvckxvY2FsZShyYi5nZXRMb2NhbGUoKSk7CisgICAgICAgIGl0ZXIuc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGl0ZXI7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2E3NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzgzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworCisvKioKKyAqIEluc2VydHMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGF0IHdvcmQgYnJlYWtzLiBUbyByZXN0cmljdCBpdCB0byBwYXJ0aWN1bGFyIGNoYXJhY3RlcnMsIHVzZSBhIGZpbHRlci4KKyAqIFRPRE86IHRoaXMgaXMgYW4gaW50ZXJuYWwgY2xhc3MsIGFuZCBvbmx5IHRlbXBvcmFyeS4gUmVtb3ZlIGl0IG9uY2Ugd2UgaGF2ZSBcYiBub3RhdGlvbiBpbiBUcmFuc2xpdGVyYXRvci4KKyAqLworZmluYWwgY2xhc3MgQnJlYWtUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgYmk7CisgICAgcHJpdmF0ZSBTdHJpbmcgaW5zZXJ0aW9uOworICAgIHByaXZhdGUgaW50W10gYm91bmRhcmllcyA9IG5ldyBpbnRbNTBdOworICAgIHByaXZhdGUgaW50IGJvdW5kYXJ5Q291bnQgPSAwOworCisgICAgcHVibGljIEJyZWFrVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBVbmljb2RlRmlsdGVyIGZpbHRlciwgQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgdGhpcy5iaSA9IGJpOworICAgICAgICB0aGlzLmluc2VydGlvbiA9IGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgQnJlYWtUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMoSUQsIGZpbHRlciwgbnVsbCwgIiAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluc2VydGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnNlcnRpb24oU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICB0aGlzLmluc2VydGlvbiA9IGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKCkgeworICAgICAgICAvLyBEZWZlciBpbml0aWFsaXphdGlvbiBvZiBCcmVha0l0ZXJhdG9yIGJlY2F1c2UgaXQgaXMgc2xvdywKKyAgICAgICAgLy8gdHlwaWNhbGx5IG92ZXIgMjAwMCBtcy4KKyAgICAgICAgaWYgKGJpID09IG51bGwpIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IFVMb2NhbGUoInRoX1RIIikpOworICAgICAgICByZXR1cm4gYmk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIHRoaXMuYmkgPSBiaTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IExFVFRFUl9PUl9NQVJLX01BU0sgPQorICAgICAgICAgICgxPDxDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuT1RIRVJfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUkspCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgICAgOworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gcG9zLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGJvdW5kYXJ5Q291bnQgPSAwOworICAgICAgICBpbnQgYm91bmRhcnkgPSAwOworICAgICAgICBnZXRCcmVha0l0ZXJhdG9yKCk7IC8vIExhenktY3JlYXRlIGl0IGlmIG5lY2Vzc2FyeQorICAgICAgICBiaS5zZXRUZXh0KG5ldyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKHRleHQsIHBvcy5zdGFydCwgcG9zLmxpbWl0LCBwb3Muc3RhcnQpKTsKKyAgICAgICAgLy8gVE9ETzogZml4IGNsdW1zeSB3b3JrYXJvdW5kIHVzZWQgYmVsb3cuCisgICAgICAgIC8qCisgICAgICAgIGNoYXJbXSB0ZW1wQnVmZmVyID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgIHRleHQuZ2V0Q2hhcnMoMCwgdGV4dC5sZW5ndGgoKSwgdGVtcEJ1ZmZlciwgMCk7CisgICAgICAgIGJpLnNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKG5ldyBTdHJpbmcodGVtcEJ1ZmZlciksIHBvcy5zdGFydCwgcG9zLmxpbWl0LCBwb3Muc3RhcnQpKTsKKyAgICAgICAgKi8KKyAgICAgICAgLy8gZW5kIGRlYnVnZ2luZworCisgICAgICAgIC8vIFRvIG1ha2UgdGhpbmdzIG11Y2ggZWFzaWVyLCB3ZSB3aWxsIHN0YWNrIHRoZSBib3VuZGFyaWVzLCBhbmQgdGhlbiBpbnNlcnQgYXQgdGhlIGVuZC4KKyAgICAgICAgLy8gZ2VuZXJhbGx5LCB3ZSB3b24ndCBuZWVkIHRvbyBtYW55LCBzaW5jZSB3ZSB3aWxsIGJlIGZpbHRlcmVkLgorCisgICAgICAgIGZvcihib3VuZGFyeSA9IGJpLmZpcnN0KCk7IGJvdW5kYXJ5ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiBib3VuZGFyeSA8IHBvcy5saW1pdDsgYm91bmRhcnkgPSBiaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChib3VuZGFyeSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIC8vIEhBQ0s6IENoZWNrIHRvIHNlZSB0aGF0IHByZWNlZWRpbmcgaXRlbSB3YXMgYSBsZXR0ZXIKKworICAgICAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGJvdW5kYXJ5LTEpOworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhjcCwxNikgKyAiIChiZWZvcmUpOiAiICsgdHlwZSk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9PUl9NQVJLX01BU0spID09IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBib3VuZGFyeSk7CisgICAgICAgICAgICB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAoYWZ0ZXIpOiAiICsgdHlwZSk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9PUl9NQVJLX01BU0spID09IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoYm91bmRhcnlDb3VudCA+PSBib3VuZGFyaWVzLmxlbmd0aCkgeyAgICAgICAvLyByZWFsbG9jIGlmIG5lY2Vzc2FyeQorICAgICAgICAgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W2JvdW5kYXJpZXMubGVuZ3RoICogMl07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShib3VuZGFyaWVzLCAwLCB0ZW1wLCAwLCBib3VuZGFyaWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgYm91bmRhcmllcyA9IHRlbXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcnlDb3VudCsrXSA9IGJvdW5kYXJ5OworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oYm91bmRhcnkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGRlbHRhID0gMDsKKyAgICAgICAgaW50IGxhc3RCb3VuZGFyeSA9IDA7CisKKyAgICAgICAgaWYgKGJvdW5kYXJ5Q291bnQgIT0gMCkgeyAvLyBpZiB3ZSBmb3VuZCBzb21ldGhpbmcsIGFkanVzdAorICAgICAgICAgICAgZGVsdGEgPSBib3VuZGFyeUNvdW50ICogaW5zZXJ0aW9uLmxlbmd0aCgpOworICAgICAgICAgICAgbGFzdEJvdW5kYXJ5ID0gYm91bmRhcmllc1tib3VuZGFyeUNvdW50LTFdOworCisgICAgICAgICAgICAvLyB3ZSBkbyB0aGlzIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBrZWVwIHVwZGF0aW5nLgorCisgICAgICAgICAgICB3aGlsZSAoYm91bmRhcnlDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBib3VuZGFyeSA9IGJvdW5kYXJpZXNbLS1ib3VuZGFyeUNvdW50XTsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoYm91bmRhcnksIGJvdW5kYXJ5LCBpbnNlcnRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGZpeCB1cCB0aGUgcmV0dXJuIHZhbHVlcworICAgICAgICBwb3MuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICBwb3MubGltaXQgKz0gZGVsdGE7CisgICAgICAgIHBvcy5zdGFydCA9IGluY3JlbWVudGFsID8gbGFzdEJvdW5kYXJ5ICsgZGVsdGEgOiBwb3MubGltaXQ7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBmYWxzZSBtZWFucyB0aGF0IGl0IGlzIGludmlzaWJsZQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWtJbnRlcm5hbCIsIG51bGwpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHRyYW5zLCBmYWxzZSk7CisgICAgICAgIC8qCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUJyZWFrIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWsiLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgICovCisgICAgfQorCisgICAgLy8gSGFjaywganVzdCB0byBnZXQgYSByZWFsIGNoYXJhY3RlciBpdGVyYXRvci4KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICB7CisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgYmVnaW47CisgICAgICAgIHByaXZhdGUgaW50IGVuZDsKKyAgICAgICAgLy8gaW52YXJpYW50OiBiZWdpbiA8PSBwb3MgPD0gZW5kCisgICAgICAgIHByaXZhdGUgaW50IHBvczsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggYW4gaW5pdGlhbCBpbmRleCBvZiAwLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzKHRleHQsIDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgaW5pdGlhbCBpbmRleC4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IoUmVwbGFjZWFibGUgdGV4dCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICB0aGlzKHRleHQsIDAsIHRleHQubGVuZ3RoKCksIHBvcyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSBnaXZlbiBzdHJpbmcsIHdpdGggdGhlCisgICAgICAgICogaW5kZXggc2V0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICoKKyAgICAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgICAgKiBAcGFyYW0gIGJlZ2luICBJbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgICAgICogQHBhcmFtICBlbmQgICAgSW5kZXggb2YgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICogQHBhcmFtICBwb3MgICAgSW5pdGlhbCBpdGVyYXRvciBwb3NpdGlvbgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgYmVnaW4sIGludCBlbmQsIGludCBwb3MpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisKKyAgICAgICAgICAgIGlmIChiZWdpbiA8IDAgfHwgYmVnaW4gPiBlbmQgfHwgZW5kID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3Vic3RyaW5nIHJhbmdlIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwb3MgPCBiZWdpbiB8fCBwb3MgPiBlbmQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHBvc2l0aW9uIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMuYmVnaW4gPSBiZWdpbjsKKyAgICAgICAgICAgIHRoaXMuZW5kID0gZW5kOworICAgICAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBSZXNldCB0aGlzIGl0ZXJhdG9yIHRvIHBvaW50IHRvIGEgbmV3IHN0cmluZy4gIFRoaXMgcGFja2FnZS12aXNpYmxlCisgICAgICAgICogbWV0aG9kIGlzIHVzZWQgYnkgb3RoZXIgamF2YS50ZXh0IGNsYXNzZXMgdGhhdCB3YW50IHRvIGF2b2lkIGFsbG9jYXRpbmcKKyAgICAgICAgKiBuZXcgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgICAgKiBpcyBjYWxsZWQuCisgICAgICAgICoKKyAgICAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGV4dChSZXBsYWNlYWJsZSB0ZXh0KSB7CisgICAgICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgdGhpcy5iZWdpbiA9IDA7CisgICAgICAgICAgICB0aGlzLmVuZCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB0aGlzLnBvcyA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmZpcnN0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2ZpcnN0CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9zID0gYmVnaW47CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5sYXN0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2xhc3QKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlbmQgIT0gYmVnaW4pIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQgLSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5zZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNzZXRJbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcCkKKyAgICAgICAgeworICAgICAgICBpZiAocCA8IGJlZ2luIHx8IHAgPiBlbmQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGluZGV4Iik7CisgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyA9IHA7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5jdXJyZW50KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2N1cnJlbnQKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgY3VycmVudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPj0gYmVnaW4gJiYgcG9zIDwgZW5kKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IubmV4dCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNuZXh0CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zIDwgZW5kIC0gMSkgeworICAgICAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcG9zID0gZW5kOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5wcmV2aW91cygpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNwcmV2aW91cworICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPiBiZWdpbikgeworICAgICAgICAgICAgICAgIHBvcy0tOworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0QmVnaW5JbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYmVnaW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEVuZEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEVuZEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRJbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzLgorICAgICAgICAqIEBwYXJhbSBvYmogdGhlIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGguCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmogaXMgdGhlIHNhbWUgYXMgdGhpcworICAgICAgICAqIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0OyBmYWxzZSBvdGhlcndpc2UuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgPSAoUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikgb2JqOworCisgICAgICAgICAgICBpZiAoaGFzaENvZGUoKSAhPSB0aGF0Lmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRleHQuZXF1YWxzKHRoYXQudGV4dCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocG9zICE9IHRoYXQucG9zIHx8IGJlZ2luICE9IHRoYXQuYmVnaW4gfHwgZW5kICE9IHRoYXQuZW5kKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb21wdXRlcyBhIGhhc2hjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0Lmhhc2hDb2RlKCkgXiBwb3MgXiBiZWdpbiBeIGVuZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICAgICogQHJldHVybiBBIGNvcHkgb2YgdGhpcworICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG90aGVyCisgICAgICAgICAgICAgICAgPSAoUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTFlYTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDUzMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVNlcmlhbGl6ZWRTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIG9uZSB0byBpdGVyYXRlIHRocm91Z2ggYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgdG8gYSBnaXZlbgorICogc3RyaW5nLiBGb3IgZXhhbXBsZSwgaGVyZSBhcmUgc29tZSBzYW1wbGUgcmVzdWx0czoKKyAqIFJlc3VsdHMgZm9yOiB7QSBXSVRIIFJJTkcgQUJPVkV9e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKyAqIDxwcmU+CisgMToge0F9e1JJTkcgQUJPVkV9e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKyAyOiB7QX17UklORyBBQk9WRX17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorIDM6IHtBfXtSSU5HIEFCT1ZFfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorIDQ6IHtBfXtSSU5HIEFCT1ZFfXtkIFdJVEggQ0VESUxMQX17RE9UIEFCT1ZFfQorIDU6IHtBIFdJVEggUklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorIDY6IHtBIFdJVEggUklORyBBQk9WRX17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorIDc6IHtBIFdJVEggUklORyBBQk9WRX17ZCBXSVRIIERPVCBBQk9WRX17Q0VESUxMQX0KKyA4OiB7QSBXSVRIIFJJTkcgQUJPVkV9e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgOToge0FOR1NUUk9NIFNJR059e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKzEwOiB7QU5HU1RST00gU0lHTn17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorMTE6IHtBTkdTVFJPTSBTSUdOfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorMTI6IHtBTkdTVFJPTSBTSUdOfXtkIFdJVEggQ0VESUxMQX17RE9UIEFCT1ZFfQorICo8L3ByZT4KKyAqPGJyPk5vdGU6IHRoZSBjb2RlIGlzIGludGVuZGVkIGZvciB1c2Ugd2l0aCBzbWFsbCBzdHJpbmdzLCBhbmQgaXMgbm90IHN1aXRhYmxlIGZvciBsYXJnZXIgb25lcywKKyAqIHNpbmNlIGl0IGhhcyBub3QgYmVlbiBvcHRpbWl6ZWQgZm9yIHRoYXQgc2l0dWF0aW9uLgorICogQGF1dGhvciBNLiBEYXZpcworICogQHN0YWJsZSBJQ1UgMi40CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIENhbm9uaWNhbEl0ZXJhdG9yIHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDYW5vbmljYWxJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAcGFyYW0gc291cmNlIHN0cmluZyB0byBnZXQgcmVzdWx0cyBmb3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2Fub25pY2FsSXRlcmF0b3IoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBzZXRTb3VyY2Uoc291cmNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBORkQgZm9ybSBvZiB0aGUgY3VycmVudCBzb3VyY2Ugd2UgYXJlIGl0ZXJhdGluZyBvdmVyLgorICAgICAqIEByZXR1cm4gZ2V0cyB0aGUgc291cmNlOiBOT1RFOiBpdCBpcyB0aGUgTkZEIGZvcm0gb2YgdGhlIHNvdXJjZSBvcmlnaW5hbGx5IHBhc3NlZCBpbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlKCkgeworICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhlIGl0ZXJhdG9yIHNvIHRoYXQgb25lIGNhbiBzdGFydCBhZ2FpbiBmcm9tIHRoZSBiZWdpbm5pbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjdXJyZW50W2ldID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmV4dCBjYW5vbmljYWxseSBlcXVpdmFsZW50IHN0cmluZy4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogVGhlIHN0cmluZ3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGluIGFueSBwYXJ0aWN1bGFyIG9yZGVyLjwvYj4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHN0cmluZyB0aGF0IGlzIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQuIFRoZSB2YWx1ZSBudWxsIGlzIHJldHVybmVkIHdoZW4KKyAgICAgKiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICBpZiAoZG9uZSkgcmV0dXJuIG51bGw7CisKKyAgICAgICAgLy8gY29uc3RydWN0IHJldHVybiB2YWx1ZQorCisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7IC8vIGRlbGV0ZSBvbGQgY29udGVudHMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocGllY2VzW2ldW2N1cnJlbnRbaV1dKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisKKyAgICAgICAgLy8gZmluZCBuZXh0IHZhbHVlIGZvciBuZXh0IHRpbWUKKworICAgICAgICBmb3IgKGludCBpID0gY3VycmVudC5sZW5ndGggLSAxOyA7IC0taSkgeworICAgICAgICAgICAgaWYgKGkgPCAwKSB7CisgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50W2ldKys7CisgICAgICAgICAgICBpZiAoY3VycmVudFtpXSA8IHBpZWNlc1tpXS5sZW5ndGgpIGJyZWFrOyAvLyBnb3Qgc2VxdWVuY2UKKyAgICAgICAgICAgIGN1cnJlbnRbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgbmV3IHNvdXJjZSBmb3IgdGhpcyBpdGVyYXRvci4gQWxsb3dzIG9iamVjdCByZXVzZS4KKyAgICAgKiBAcGFyYW0gbmV3U291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nIHRvIGl0ZXJhdGUgYWdhaW5zdC4gVGhpcyBhbGxvd3MgdGhlIHNhbWUgaXRlcmF0b3IgdG8gYmUgdXNlZAorICAgICAqIHdoaWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugc3RyaW5nLCBzYXZpbmcgb2JqZWN0IGNyZWF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNvdXJjZShTdHJpbmcgbmV3U291cmNlKSB7CisgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKG5ld1NvdXJjZSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICBkb25lID0gZmFsc2U7CisKKyAgICAgICAgLy8gY2F0Y2ggZGVnZW5lcmF0ZSBjYXNlCisgICAgICAgIGlmIChuZXdTb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcGllY2VzID0gbmV3IFN0cmluZ1sxXVtdOworICAgICAgICAgICAgY3VycmVudCA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBwaWVjZXNbMF0gPSBuZXcgU3RyaW5nW117IiJ9OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluZCB0aGUgc2VnbWVudHMKKyAgICAgICAgTGlzdCBzZWdtZW50TGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgc3RhcnQgPSAwOworCisgICAgICAgIC8vIGkgc2hvdWxkIGJlIHRoZSBlbmQgb2YgdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgICAgLy8gYnJlYWsgdXAgdGhlIHN0cmluZyBpbnRvIHNlZ2VtZW50cworCisgICAgICAgIGludCBpID0gVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc291cmNlLCAxKTsKKworICAgICAgICBmb3IgKDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXJJbXBsLmlzQ2Fub25TYWZlU3RhcnQoY3ApKSB7CisgICAgICAgICAgICAgICAgc2VnbWVudExpc3QuYWRkKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGkpKTsgLy8gYWRkIHVwIHRvIGkKKyAgICAgICAgICAgICAgICBzdGFydCA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2VnbWVudExpc3QuYWRkKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGkpKTsgLy8gYWRkIGxhc3Qgb25lCisKKyAgICAgICAgLy8gYWxsb2NhdGUgdGhlIGFycmF5cywgYW5kIGZpbmQgdGhlIHN0cmluZ3MgdGhhdCBhcmUgQ0UgdG8gZWFjaCBzZWdtZW50CisgICAgICAgIHBpZWNlcyA9IG5ldyBTdHJpbmdbc2VnbWVudExpc3Quc2l6ZSgpXVtdOworICAgICAgICBjdXJyZW50ID0gbmV3IGludFtzZWdtZW50TGlzdC5zaXplKCldOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGllY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiU0VHTUVOVCIpOworICAgICAgICAgICAgcGllY2VzW2ldID0gZ2V0RXF1aXZhbGVudHMoKFN0cmluZykgc2VnbWVudExpc3QuZ2V0KGkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBwZXJtdXRhdGlvbi4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogVGhlIHN0cmluZ3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGluIGFueSBwYXJ0aWN1bGFyIG9yZGVyLjwvYj4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzdHJpbmcgdG8gZmluZCBwZXJtdXRhdGlvbnMgZm9yCisgICAgICogQHBhcmFtIHNraXBaZXJvcyBzZXQgdG8gdHJ1ZSB0byBza2lwIGNoYXJhY3RlcnMgd2l0aCBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzIHplcm8KKyAgICAgKiBAcGFyYW0gb3V0cHV0IHRoZSBzZXQgdG8gYWRkIHRoZSByZXN1bHRzIHRvCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHBlcm11dGUoU3RyaW5nIHNvdXJjZSwgYm9vbGVhbiBza2lwWmVyb3MsIFNldCBvdXRwdXQpIHsKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUKKyAgICAgICAgLy9pZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiUGVybXV0ZTogIiArIHNvdXJjZSk7CisKKyAgICAgICAgLy8gb3B0aW1pemF0aW9uOgorICAgICAgICAvLyBpZiB6ZXJvIG9yIG9uZSBjaGFyYWN0ZXIsIGp1c3QgcmV0dXJuIGEgc2V0IHdpdGggaXQKKyAgICAgICAgLy8gd2UgY2hlY2sgZm9yIGxlbmd0aCA8IDIgdG8ga2VlcCBmcm9tIGNvdW50aW5nIGNvZGUgcG9pbnRzIGFsbCB0aGUgdGltZQorICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpIDw9IDIgJiYgVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlKSA8PSAxKSB7CisgICAgICAgICAgICBvdXRwdXQuYWRkKHNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UgaXRlcmF0ZSB0aHJvdWdoIHRoZSBzdHJpbmcsIGFuZCByZWN1cnNpdmVseSBwZXJtdXRlIGFsbCB0aGUgb3RoZXIgY2hhcmFjdGVycworICAgICAgICBTZXQgc3VicGVybXV0ZSA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKworICAgICAgICAgICAgLy8gb3B0aW1pemF0aW9uOgorICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzIHplcm8sCisgICAgICAgICAgICAvLyBkb24ndCBwZXJtdXRlIGl0CisgICAgICAgICAgICBpZiAoc2tpcFplcm9zICYmIGkgIT0gMCAmJiBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNwKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKHNvdXJjZSwgaSkpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2VlIHdoYXQgdGhlIHBlcm11dGF0aW9ucyBvZiB0aGUgY2hhcmFjdGVycyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgb25lIGFyZQorICAgICAgICAgICAgc3VicGVybXV0ZS5jbGVhcigpOworICAgICAgICAgICAgcGVybXV0ZShzb3VyY2Uuc3Vic3RyaW5nKDAsaSkKKyAgICAgICAgICAgICAgICArIHNvdXJjZS5zdWJzdHJpbmcoaSArIFVURjE2LmdldENoYXJDb3VudChjcCkpLCBza2lwWmVyb3MsIHN1YnBlcm11dGUpOworCisgICAgICAgICAgICAvLyBwcmVmaXggdGhpcyBjaGFyYWN0ZXIgdG8gYWxsIG9mIHRoZW0KKyAgICAgICAgICAgIFN0cmluZyBjaFN0ciA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3VicGVybXV0ZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IGNoU3RyICsgKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgUGllY2U6ICIgKyBwaWVjZSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChwaWVjZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGT1IgVEVTVElORworCisgICAgLyoKKyAgICAgKkByZXR1cm4gdGhlIHNldCBvZiAic2FmZSBzdGFydHMiLCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNsYXNzIHplcm8gQU5EIGFyZSBuZXZlciBub24taW5pdGlhbCBpbiBhIGRlY29tcG9zaXRpb24uCisgICAgICpAaW50ZXJuYWwKKyAgICAgKgorICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBnZXRTYWZlU3RhcnQoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgU0FGRV9TVEFSVC5jbG9uZSgpOworICAgIH0KKyAgICAqLworICAgIC8qCisgICAgICpAcmV0dXJuIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB3aG9zZSBkZWNvbXBvc2l0aW9ucyBzdGFydCB3aXRoIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKkBpbnRlcm5hbAorICAgICAqCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFN0YXJ0cyhpbnQgY3ApIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBBVF9TVEFSVC5nZXQoY3ApOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IEVNUFRZOworICAgICAgICByZXR1cm4gKFVuaWNvZGVTZXQpIHJlc3VsdC5jbG9uZSgpOworICAgIH0KKyAgICAqLworCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFBSSVZBVEVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLy8gZGVidWcKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFBST0dSRVNTID0gZmFsc2U7IC8vIGRlYnVnIHByb2dyZXNzCisgICAgLy9wcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBOQU1FID0gUFJPR1JFU1MgPyBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibmFtZSIpIDogbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFNLSVBfWkVST1MgPSB0cnVlOworCisgICAgLy8gZmllbGRzCisgICAgcHJpdmF0ZSBTdHJpbmcgc291cmNlOworICAgIHByaXZhdGUgYm9vbGVhbiBkb25lOworICAgIHByaXZhdGUgU3RyaW5nW11bXSBwaWVjZXM7CisgICAgcHJpdmF0ZSBpbnRbXSBjdXJyZW50OworICAgIC8vIE5vdGU6IEMgd2lsbCBuZWVkIHR3byBtb3JlIGZpZWxkcywgc2luY2UgYXJyYXlzIHRoZXJlIGRvbid0IGhhdmUgbGVuZ3RocworICAgIC8vIGludCBwaWVjZXNfbGVuZ3RoOworICAgIC8vIGludFtdIHBpZWNlc19sZW5ndGhzOworCisgICAgLy8gdHJhbnNpZW50IGZpZWxkcworICAgIHByaXZhdGUgdHJhbnNpZW50IFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKworICAgIC8vIHdlIGhhdmUgYSBzZWdtZW50LCBpbiBORkQuIEZpbmQgYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgdG8gaXQuCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXRFcXVpdmFsZW50cyhTdHJpbmcgc2VnbWVudCkgeworICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgU2V0IGJhc2ljID0gZ2V0RXF1aXZhbGVudHMyKHNlZ21lbnQpOworICAgICAgICBTZXQgcGVybXV0YXRpb25zID0gbmV3IEhhc2hTZXQoKTsKKworICAgICAgICAvLyBub3cgZ2V0IGFsbCB0aGUgcGVybXV0YXRpb25zCisgICAgICAgIC8vIGFkZCBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgYnkgbm90IHBlcm11dGluZyBhbnkgY2xhc3MgemVyby4KKyAgICAgICAgSXRlcmF0b3IgaXQgPSBiYXNpYy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIHBlcm11dGF0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgcGVybXV0ZShpdGVtLCBTS0lQX1pFUk9TLCBwZXJtdXRhdGlvbnMpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gcGVybXV0YXRpb25zLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwb3NzaWJsZSA9IChTdHJpbmcpIGl0Mi5uZXh0KCk7CisKKy8qCisgICAgICAgICAgICAgICAgU3RyaW5nIGF0dGVtcHQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShwb3NzaWJsZSwgTm9ybWFsaXplci5ERUNPTVAsIDApOworICAgICAgICAgICAgICAgIGlmIChhdHRlbXB0LmVxdWFscyhzZWdtZW50KSkgeworKi8KKyAgICAgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5jb21wYXJlKHBvc3NpYmxlLCBzZWdtZW50LDApPT0wKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZyBQZXJtdXRhdGlvbjogIiArIFV0aWxpdHkuaGV4KHBvc3NpYmxlKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQocG9zc2libGUpOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIi1Ta2lwcGluZyBQZXJtdXRhdGlvbjogIiArIFV0aWxpdHkuaGV4KHBvc3NpYmxlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gY29udmVydCBpbnRvIGEgU3RyaW5nW10gdG8gY2xlYW4gdXAgc3RvcmFnZQorICAgICAgICBTdHJpbmdbXSBmaW5hbFJlc3VsdCA9IG5ldyBTdHJpbmdbcmVzdWx0LnNpemUoKV07CisgICAgICAgIHJlc3VsdC50b0FycmF5KGZpbmFsUmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGZpbmFsUmVzdWx0OworICAgIH0KKworCisgICAgcHJpdmF0ZSBTZXQgZ2V0RXF1aXZhbGVudHMyKFN0cmluZyBzZWdtZW50KSB7CisKKyAgICAgICAgU2V0IHJlc3VsdCA9IG5ldyBIYXNoU2V0KCk7CisKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIFV0aWxpdHkuaGV4KHNlZ21lbnQpKTsKKworICAgICAgICByZXN1bHQuYWRkKHNlZ21lbnQpOworICAgICAgICBTdHJpbmdCdWZmZXIgd29ya2luZ0J1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBjeWNsZSB0aHJvdWdoIGFsbCB0aGUgY2hhcmFjdGVycworICAgICAgICBpbnQgY3A9MDsKKyAgICAgICAgaW50W10gcmFuZ2UgPSBuZXcgaW50WzJdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCisgICAgICAgICAgICAvLyBzZWUgaWYgYW55IGNoYXJhY3RlciBpcyBhdCB0aGUgc3RhcnQgb2Ygc29tZSBkZWNvbXBvc2l0aW9uCisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzZWdtZW50LCBpKTsKKyAgICAgICAgICAgIFVTZXJpYWxpemVkU2V0IHN0YXJ0cyA9IG5ldyBVU2VyaWFsaXplZFNldCgpOworCisgICAgICAgICAgICBpZiAoIU5vcm1hbGl6ZXJJbXBsLmdldENhbm9uU3RhcnRTZXQoY3AsIHN0YXJ0cykpIHsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgaj0wOworICAgICAgICAgICAgLy8gaWYgc28sIHNlZSB3aGljaCBkZWNvbXBvc2l0aW9ucyBtYXRjaAorICAgICAgICAgICAgaW50IHJhbmdlQ291bnQgPSBzdGFydHMuY291bnRSYW5nZXMoKTsKKyAgICAgICAgICAgIGZvcihqID0gMDsgaiA8IHJhbmdlQ291bnQ7ICsraikgeworICAgICAgICAgICAgCXN0YXJ0cy5nZXRSYW5nZShqLCByYW5nZSk7CisgICAgICAgICAgICAgICAgaW50IGVuZD1yYW5nZVsxXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjcDIgPSByYW5nZVswXTsgY3AyIDw9IGVuZDsgKytjcDIpIHsKKwkgICAgICAgICAgICAgICAgU2V0IHJlbWFpbmRlciA9IGV4dHJhY3QoY3AyLCBzZWdtZW50LCBpLCB3b3JraW5nQnVmZmVyKTsKKwkgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmRlciA9PSBudWxsKSBjb250aW51ZTsKKwkKKwkgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2VyZSBzb21lIG1hdGNoZXMsIHNvIGFkZCBhbGwgdGhlIHBvc3NpYmlsaXRpZXMgdG8gdGhlIHNldC4KKwkgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeD0gc2VnbWVudC5zdWJzdHJpbmcoMCxpKTsKKwkgICAgICAgICAgICAgICAgcHJlZml4ICs9IFVURjE2LnZhbHVlT2YoY3AyKTsKKwkgICAgICAgICAgICAgICAgLy9pbnQgZWwgPSAtMTsKKwkgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IHJlbWFpbmRlci5pdGVyYXRvcigpOworCSAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZykgaXRlci5uZXh0KCk7CisJICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdG9BZGQgPSBuZXcgU3RyaW5nKHByZWZpeCk7CisJICAgICAgICAgICAgICAgICAgICB0b0FkZCArPSBpdGVtOworCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0b0FkZCk7CisJICAgICAgICAgICAgICAgICAgICAvL2lmIChQUk9HUkVTUykgcHJpbnRmKCJBZGRpbmc6ICVzXG4iLCBVVG9TKFRyKCp0b0FkZCkpKTsKKwkgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAvKgorICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShzZWdtZW50KSk7CisgICAgICAgIHJlc3VsdC5hZGQoc2VnbWVudCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JraW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBjaGFyYWN0ZXJzCisgICAgICAgIGludCBjcDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgLy8gc2VlIGlmIGFueSBjaGFyYWN0ZXIgaXMgYXQgdGhlIHN0YXJ0IG9mIHNvbWUgZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc2VnbWVudCwgaSk7CisgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRDYW5vblN0YXJ0U2V0KGMsZmlsbFNldCkKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc3RhcnRzID0gQVRfU1RBUlQuZ2V0KGNwKTsKKyAgICAgICAgICAgIGlmIChzdGFydHMgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzdGFydHMpOworICAgICAgICAgICAgLy8gaWYgc28sIHNlZSB3aGljaCBkZWNvbXBvc2l0aW9ucyBtYXRjaAorICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgY3AyID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICAvLyB3ZSBrbm93IHRoYXQgdGhlcmUgYXJlIG5vIHN0cmluZ3MgaW4gaXQKKyAgICAgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIENoYXJhY3Rlckl0ZXJhdG9yLklTX1NUUklORworICAgICAgICAgICAgICAgIFNldCByZW1haW5kZXIgPSBleHRyYWN0KGNwMiwgc2VnbWVudCwgaSwgd29ya2luZ0J1ZmZlcik7CisgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmRlciA9PSBudWxsKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIHRoZXJlIHdlcmUgc29tZSBtYXRjaGVzLCBzbyBhZGQgYWxsIHRoZSBwb3NzaWJpbGl0aWVzIHRvIHRoZSBzZXQuCisgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IHNlZ21lbnQuc3Vic3RyaW5nKDAsIGkpICsgVVRGMTYudmFsdWVPZihjcDIpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gcmVtYWluZGVyLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShwcmVmaXggKyBpdGVtKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQocHJlZml4ICsgaXRlbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICovCisgICAgfQorCisgICAgLyoqCisgICAgICogU2VlIGlmIHRoZSBkZWNvbXBvc2l0aW9uIG9mIGNwMiBpcyBhdCBzZWdtZW50IHN0YXJ0aW5nIGF0IHNlZ21lbnRQb3MKKyAgICAgKiAod2l0aCBjYW5vbmljYWwgcmVhcnJhbmdtZW50ISkKKyAgICAgKiBJZiBzbywgdGFrZSB0aGUgcmVtYWluZGVyLCBhbmQgcmV0dXJuIHRoZSBlcXVpdmFsZW50cworICAgICAqLworICAgIHByaXZhdGUgU2V0IGV4dHJhY3QoaW50IGNvbXAsIFN0cmluZyBzZWdtZW50LCBpbnQgc2VnbWVudFBvcywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiIGV4dHJhY3Q6ICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKGNvbXApKQorICAgICAgICAgICAgKyAiLCAiICsgVXRpbGl0eS5oZXgoc2VnbWVudC5zdWJzdHJpbmcoc2VnbWVudFBvcykpKTsKKworICAgICAgICAvL1N0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNvbXApLCBOb3JtYWxpemVyLkRFQ09NUCwgMCk7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb21wLCBOb3JtYWxpemVyLk5GRCk7CisKKyAgICAgICAgLy8gU2VlIGlmIGl0IG1hdGNoZXMgdGhlIHN0YXJ0IG9mIHNlZ21lbnQgKGF0IHNlZ21lbnRQb3MpCisgICAgICAgIGJvb2xlYW4gb2sgPSBmYWxzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgZGVjb21wUG9zID0gMDsKKyAgICAgICAgaW50IGRlY29tcENwID0gVVRGMTYuY2hhckF0KGRlY29tcCwwKTsKKyAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7IC8vIGFkanVzdCBwb3NpdGlvbiB0byBza2lwIGZpcnN0IGNoYXIKKyAgICAgICAgLy9pbnQgZGVjb21wQ2xhc3MgPSBnZXRDbGFzcyhkZWNvbXBDcCk7CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7IC8vIGluaXRpYWxpemUgd29ya2luZyBidWZmZXIsIHNoYXJlZCBhbW9uZyBjYWxsZWVzCisKKyAgICAgICAgZm9yIChpbnQgaSA9IHNlZ21lbnRQb3M7IGkgPCBzZWdtZW50Lmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNlZ21lbnQsIGkpOworICAgICAgICAgICAgaWYgKGNwID09IGRlY29tcENwKSB7IC8vIGlmIGVxdWFsLCBlYXQgYW5vdGhlciBjcCBmcm9tIGRlY29tcAorICAgICAgICAgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCIgIG1hdGNoZXM6ICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBQb3MgPT0gZGVjb21wLmxlbmd0aCgpKSB7IC8vIGRvbmUsIGhhdmUgYWxsIGRlY29tcCBjaGFyYWN0ZXJzIQorICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNlZ21lbnQuc3Vic3RyaW5nKGkgKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSk7IC8vIGFkZCByZW1haW5pbmcgc2VnbWVudCBjaGFycworICAgICAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWNvbXBDcCA9IFVURjE2LmNoYXJBdChkZWNvbXAsIGRlY29tcFBvcyk7CisgICAgICAgICAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7CisgICAgICAgICAgICAgICAgLy9kZWNvbXBDbGFzcyA9IGdldENsYXNzKGRlY29tcENwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgYnVmZmVyOiAiICsgVXRpbGl0eS5oZXgoVVRGMTYudmFsdWVPZihjcCkpKTsKKyAgICAgICAgICAgICAgICAvLyBicnV0ZSBmb3JjZSBhcHByb2FjaAorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNwKTsKKyAgICAgICAgICAgICAgICAvKiBUT0RPOiBvcHRpbWl6ZQorICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhhdCB0aGUgY2xhc3NlcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLCBhZnRlciB6ZXJvCisgICAgICAgICAgICAgICAgLy8gZS5nLiAwIDUgNyA5IDAgMworICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBkbyBhbiBvcHRpbWl6YXRpb24KKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBhcmUgb25seSBhIGZldyBjYXNlcyB0aGF0IHdvcms6IHplcm8sIGxlc3MsIHNhbWUsIGdyZWF0ZXIKKyAgICAgICAgICAgICAgICAvLyBpZiBib3RoIGNsYXNzZXMgYXJlIHRoZSBzYW1lLCB3ZSBmYWlsCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlY29tcCBjbGFzcyA8IHRoZSBzZWdtZW50IGNsYXNzLCB3ZSBmYWlsCisKKyAgICAgICAgICAgICAgICBzZWdDbGFzcyA9IGdldENsYXNzKGNwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGVjb21wQ2xhc3MgPD0gc2VnQ2xhc3MpIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykgcmV0dXJuIG51bGw7IC8vIHdlIGZhaWxlZCwgY2hhcmFjdGVycyBsZWZ0IG92ZXIKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoZXMiKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKSByZXR1cm4gU0VUX1dJVEhfTlVMTF9TVFJJTkc7IC8vIHN1Y2NlZWQsIGJ1dCBubyByZW1haW5kZXIKKyAgICAgICAgU3RyaW5nIHJlbWFpbmRlciA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgIC8vIGJydXRlIGZvcmNlIGFwcHJvYWNoCisgICAgICAgIC8vIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSByZXN1bHQgaXMgY2Fub25pY2FsbHkgZXF1aXZhbGVudAorICAgICAgICAvKgorICAgICAgICBTdHJpbmcgdHJpYWwgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNvbXApICsgcmVtYWluZGVyLCBOb3JtYWxpemVyLkRFQ09NUCwgMCk7CisgICAgICAgIGlmICghc2VnbWVudC5yZWdpb25NYXRjaGVzKHNlZ21lbnRQb3MsIHRyaWFsLCAwLCBzZWdtZW50Lmxlbmd0aCgpIC0gc2VnbWVudFBvcykpIHJldHVybiBudWxsOworICAgICAgICAqLworCisgICAgICAgIGlmICgwIT1Ob3JtYWxpemVyLmNvbXBhcmUoVVRGMTYudmFsdWVPZihjb21wKSArIHJlbWFpbmRlciwgc2VnbWVudC5zdWJzdHJpbmcoc2VnbWVudFBvcyksIDApKSByZXR1cm4gbnVsbDsKKworICAgICAgICAvLyBnZXQgdGhlIHJlbWFpbmluZyBjb21iaW5hdGlvbnMKKyAgICAgICAgcmV0dXJuIGdldEVxdWl2YWxlbnRzMihyZW1haW5kZXIpOworICAgIH0KKworICAgIC8qCisgICAgLy8gVE9ETzogZml4IG9uY2Ugd2UgaGF2ZSBhIGNvZGVwb2ludCBpbnRlcmZhY2UgdG8gZ2V0IHRoZSBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzCisgICAgLy8gVE9ETzogTmVlZCBwdWJsaWMgYWNjZXNzIHRvIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MgaW4gVUNoYXJhY3RlciEKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0Q2xhc3MoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmdldENsYXNzKChjaGFyKWNwKTsKKyAgICB9CisgICAgKi8KKworICAgLy8gPT09PT09PT09PT09PT09PT0gQlVJTERFUiA9PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVE9ETzogRmxhdHRlbiB0aGlzIGRhdGEgc28gaXQgZG9lc24ndCBoYXZlIHRvIGJlIHJlY29uc3RydWN0ZWQgZWFjaCB0aW1lIQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBFTVBUWSA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIGNvbnN0YW50LCBkb24ndCBjaGFuZ2UKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTZXQgU0VUX1dJVEhfTlVMTF9TVFJJTkcgPSBuZXcgSGFzaFNldCgpOyAvLyBjb25zdGFudCwgZG9uJ3QgY2hhbmdlCisgICAgc3RhdGljIHsKKyAgICAgICAgU0VUX1dJVEhfTlVMTF9TVFJJTkcuYWRkKCIiKTsKKyAgICB9CisKKyAgLy8gIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgU0FGRV9TVEFSVCA9IG5ldyBVbmljb2RlU2V0KCk7CisgIC8vICBwcml2YXRlIHN0YXRpYyBDaGFyTWFwIEFUX1NUQVJUID0gbmV3IENoYXJNYXAoKTsKKworICAgICAgICAvLyBUT0RPOiBXQVJOSU5HLCBOT1JNQUxJWkVSIGRvZXNuJ3QgaGF2ZSBzdXBwbGVtZW50YXJpZXMgeWV0ICEhOworICAgICAgICAvLyBDaGFuZ2UgRkZGRiB0byAxMEZGRkYgaW4gQywgYW5kIGluIEphdmEgd2hlbiBub3JtYWxpemVyIGlzIHVwZ3JhZGVkLgorICAvLyAgcHJpdmF0ZSBzdGF0aWMgaW50IExBU1RfVU5JQ09ERSA9IDB4MTBGRkZGOworICAgIC8qCisgICAgc3RhdGljIHsKKyAgICAgICAgYnVpbGREYXRhKCk7CisgICAgfQorICAgICovCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGJ1aWxkRGF0YSgpIHsKKworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiR2V0dGluZyBTYWZlIFN0YXJ0Iik7CisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gTEFTVF9VTklDT0RFOyArK2NwKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MgJiAoY3AgJiAweDdGRikgPT0gMCkgU3lzdGVtLm91dC5wcmludCgnLicpOworICAgICAgICAgICAgaW50IGNjID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjcCk7CisgICAgICAgICAgICBpZiAoY2MgPT0gMCkgU0FGRV9TVEFSVC5hZGQoY3ApOworICAgICAgICAgICAgLy8gd2lsbCBmaXggdG8gYmUgcmVhbGx5IHNhZmUgYmVsb3cKKyAgICAgICAgfQorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigpOworCisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJHZXR0aW5nIENvbnRhaW5tZW50Iik7CisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gTEFTVF9VTklDT0RFOyArK2NwKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MgJiAoY3AgJiAweDdGRikgPT0gMCkgU3lzdGVtLm91dC5wcmludCgnLicpOworCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoY3AsIE5vcm1hbGl6ZXIuTkZEKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vU3RyaW5nIGlzdHIgPSBVVEYxNi52YWx1ZU9mKGNwKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjcCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgLy9pZiAoZGVjb21wLmVxdWFscyhpc3RyKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIGFkZCBlYWNoIGNoYXJhY3RlciBpbiB0aGUgZGVjb21wb3NpdGlvbiB0byBjYW5CZUluCisKKyAgICAgICAgICAgIGludCBjb21wb25lbnQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY29tcG9uZW50KSkgeworICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IFVURjE2LmNoYXJBdChkZWNvbXAsIGkpOworICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQVRfU1RBUlQuYWRkKGNvbXBvbmVudCwgY3ApOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjb21wb25lbnQpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU0FGRV9TVEFSVC5yZW1vdmUoY29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgaXMganVzdCBmb3IgYSBtYXAgZnJvbSBjaGFyYWN0ZXJzIHRvIGEgc2V0IG9mIGNoYXJhY3RlcnMKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENoYXJNYXAgeworICAgICAgICBNYXAgc3RvcmFnZSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIE11dGFibGVJbnQgcHJvYmUgPSBuZXcgTXV0YWJsZUludCgpOworICAgICAgICBib29sZWFuIGNvbnZlcnRlZCA9IGZhbHNlOworCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgY3AsIGludCB3aGF0SXRJc0luKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IChVbmljb2RlU2V0KSBzdG9yYWdlLmdldChwcm9iZS5zZXQoY3ApKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAgICAgc3RvcmFnZS5wdXQocHJvYmUsIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkKHdoYXRJdElzSW4pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0KGludCBjcCkgeworICAgICAgICAgICAgcmV0dXJuIChVbmljb2RlU2V0KSBzdG9yYWdlLmdldChwcm9iZS5zZXQoY3ApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE11dGFibGVJbnQgeworICAgICAgICBwdWJsaWMgaW50IGNvbnRlbnRzOworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gY29udGVudHM7IH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgcmV0dXJuICgoTXV0YWJsZUludClvdGhlcikuY29udGVudHMgPT0gY29udGVudHM7CisgICAgICAgIH0KKyAgICAgICAgLy8gYWxsb3dzIGNoYWluaW5nCisgICAgICAgIHB1YmxpYyBNdXRhYmxlSW50IHNldChpbnQgY29udGVudHMpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSBjb250ZW50czsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfQorICAgICovCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldERldGVjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjExYjU3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5qYXZhCkBAIC0wLDAgKzEsNTM5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworCisvKioKKyAqIDxjb2RlPkNoYXJzZXREZXRlY3RvcjwvY29kZT4gcHJvdmlkZXMgYSBmYWNpbGl0eSBmb3IgZGV0ZWN0aW5nIHRoZQorICogY2hhcnNldCBvciBlbmNvZGluZyBvZiBjaGFyYWN0ZXIgZGF0YSBpbiBhbiB1bmtub3duIGZvcm1hdC4KKyAqIFRoZSBpbnB1dCBkYXRhIGNhbiBlaXRoZXIgYmUgZnJvbSBhbiBpbnB1dCBzdHJlYW0gb3IgYW4gYXJyYXkgb2YgYnl0ZXMuCisgKiBUaGUgcmVzdWx0IG9mIHRoZSBkZXRlY3Rpb24gb3BlcmF0aW9uIGlzIGEgbGlzdCBvZiBwb3NzaWJseSBtYXRjaGluZworICogY2hhcnNldHMsIG9yLCBmb3Igc2ltcGxlIHVzZSwgeW91IGNhbiBqdXN0IGFzayBmb3IgYSBKYXZhIFJlYWRlciB0aGF0CisgKiB3aWxsIHdpbGwgd29yayBvdmVyIHRoZSBpbnB1dCBkYXRhLgorICogPHAvPgorICogQ2hhcmFjdGVyIHNldCBkZXRlY3Rpb24gaXMgYXQgYmVzdCBhbiBpbXByZWNpc2Ugb3BlcmF0aW9uLiAgVGhlIGRldGVjdGlvbgorICogcHJvY2VzcyB3aWxsIGF0dGVtcHQgdG8gaWRlbnRpZnkgdGhlIGNoYXJzZXQgdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGNoYXJhY3RlcmlzdGljcworICogb2YgdGhlIGJ5dGUgZGF0YSwgYnV0IHRoZSBwcm9jZXNzIGlzIHBhcnRseSBzdGF0aXN0aWNhbCBpbiBuYXR1cmUsIGFuZAorICogdGhlIHJlc3VsdHMgY2FuIG5vdCBiZSBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSBjb3JyZWN0LgorICogPHAvPgorICogRm9yIGJlc3QgYWNjdXJhY3kgaW4gY2hhcnNldCBkZXRlY3Rpb24sIHRoZSBpbnB1dCBkYXRhIHNob3VsZCBiZSBwcmltYXJpbHkKKyAqIGluIGEgc2luZ2xlIGxhbmd1YWdlLCBhbmQgYSBtaW5pbXVtIG9mIGEgZmV3IGh1bmRyZWQgYnl0ZXMgd29ydGggb2YgcGxhaW4gdGV4dAorICogaW4gdGhlIGxhbmd1YWdlIGFyZSBuZWVkZWQuICBUaGUgZGV0ZWN0aW9uIHByb2Nlc3Mgd2lsbCBhdHRlbXB0IHRvCisgKiBpZ25vcmUgaHRtbCBvciB4bWwgc3R5bGUgbWFya3VwIHRoYXQgY291bGQgb3RoZXJ3aXNlIG9ic2N1cmUgdGhlIGNvbnRlbnQuCisgKiA8cC8+CisgKiBAZHJhZnQgSUNVIDMuNAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBDaGFyc2V0RGV0ZWN0b3IgeworCisvLyAgIFF1ZXN0aW9uOiBTaG91bGQgd2UgaGF2ZSBnZXR0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNldHRlcnMgZm9yIGludXQgdGV4dAorLy8gICBhbmQgZGVjbGFyZWQgZW5jb2Rpbmc/CisKKy8vICAgQSB0aG91Z2h0OiBJZiB3ZSB3ZXJlIHRvIGNyZWF0ZSBvdXIgb3duIHR5cGUgb2YgSmF2YSBSZWFkZXIsIHdlIGNvdWxkIGRlZmVyCisvLyAgIGZpZ3VyaW5nIG91dCBhbiBhY3R1YWwgY2hhcnNldCBmb3IgZGF0YSB0aGF0IHN0YXJ0cyBvdXQgd2l0aCB0b28gbXVjaCBFbmdsaXNoCisvLyAgIG9ubHkgQVNDSUkgdW50aWwgdGhlIHVzZXIgYWN0dWFsbHkgcmVhZCB0aHJvdWdoIHRvIHNvbWV0aGluZyB0aGF0IGRpZG4ndCBsb29rCisvLyAgIGxpa2UgNyBiaXQgRW5nbGlzaC4gIElmICBub3RoaW5nIGVsc2UgZXZlciBhcHBlYXJlZCwgd2Ugd291bGQgbmV2ZXIgbmVlZCB0bworLy8gICBhY3R1YWxseSBjaG9vc2UgdGhlICJyZWFsIiBjaGFyc2V0LiAgQWxsIGFzc3VtaW5nIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGp1c3QKKy8vICAgd2FudHMgdGhlIGRhdGEsIGFuZCBkb2Vzbid0IGNhcmUgYWJvdXQgYSBjaGFyIHNldCBuYW1lLgorCisgICAgLyoqCisgICAgICogICBDb25zdHJ1Y3RvcgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXREZXRlY3RvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRlY2xhcmVkIGVuY29kaW5nIGZvciBjaGFyc2V0IGRldGVjdGlvbi4KKyAgICAgKiAgVGhlIGRlY2xhcmVkIGVuY29kaW5nIG9mIGFuIGlucHV0IHRleHQgaXMgYW4gZW5jb2Rpbmcgb2J0YWluZWQKKyAgICAgKiAgZnJvbSBhbiBodHRwIGhlYWRlciBvciB4bWwgZGVjbGFyYXRpb24gb3Igc2ltaWxhciBzb3VyY2UgdGhhdAorICAgICAqICBjYW4gYmUgcHJvdmlkZWQgYXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byB0aGUgY2hhcnNldCBkZXRlY3Rvci4gIAorICAgICAqICBBIG1hdGNoIGJldHdlZW4gYSBkZWNsYXJlZCBlbmNvZGluZyBhbmQgYSBwb3NzaWJsZSBkZXRlY3RlZCBlbmNvZGluZworICAgICAqICB3aWxsIHJhaXNlIHRoZSBxdWFsaXR5IG9mIHRoYXQgZGV0ZWN0ZWQgZW5jb2RpbmcgYnkgYSBzbWFsbCBkZWx0YSwKKyAgICAgKiAgYW5kIHdpbGwgYWxzbyBhcHBlYXIgYXMgYSAicmVhc29uIiBmb3IgdGhlIG1hdGNoLgorICAgICAqIDxwLz4KKyAgICAgKiBBIGRlY2xhcmVkIGVuY29kaW5nIHRoYXQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGlucHV0IGRhdGEgYmVpbmcKKyAgICAgKiBhbmFseXplZCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MuCisgICAgICogCisgICAgICogIEBwYXJhbSBlbmNvZGluZyBUaGUgZGVjbGFyZWQgZW5jb2RpbmcgCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3Igc2V0RGVjbGFyZWRFbmNvZGluZyhTdHJpbmcgZW5jb2RpbmcpIHsKKyAgICAgICAgZkRlY2xhcmVkRW5jb2RpbmcgPSBlbmNvZGluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCAoYnl0ZSkgZGF0YSB3aG9zZSBjaGFyc2V0IGlzIHRvIGJlIGRldGVjdGVkLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbiB0aGUgaW5wdXQgdGV4dCBvZiB1bmtub3duIGVuY29kaW5nCisgICAgICogCisgICAgICogQHJldHVybiBUaGlzIENoYXJzZXREZXRlY3RvcgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldERldGVjdG9yIHNldFRleHQoYnl0ZSBbXSBpbikgeworICAgICAgICBmUmF3SW5wdXQgID0gaW47CisgICAgICAgIGZSYXdMZW5ndGggPSBpbi5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBNdW5nZUlucHV0KCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtCdWZTaXplID0gODAwMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCAoYnl0ZSkgZGF0YSB3aG9zZSBjaGFyc2V0IGlzIHRvIGJlIGRldGVjdGVkLgorICAgICAqICA8cC8+CisgICAgICogICBUaGUgaW5wdXQgc3RyZWFtIHRoYXQgc3VwcGxpZXMgdGhlIGNoYXJhY3RlciBkYXRhIG11c3QgaGF2ZSBtYXJrU3VwcG9ydGVkKCkKKyAgICAgKiAgID09IHRydWU7IHRoZSBjaGFyc2V0IGRldGVjdGlvbiBwcm9jZXNzIHdpbGwgcmVhZCBhIHNtYWxsIGFtb3VudCBvZiBkYXRhLAorICAgICAqICAgdGhlbiByZXR1cm4gdGhlIHN0cmVhbSB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24gdmlhCisgICAgICogICB0aGUgSW5wdXRTdHJlYW0ucmVzZXQoKSBvcGVyYXRpb24uICBUaGUgZXhhY3QgYW1vdW50IHRoYXQgd2lsbAorICAgICAqICAgYmUgcmVhZCBkZXBlbmRzIG9uIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGRhdGEgaXRzZWxmLgorICAgICAqCisgICAgICogQHBhcmFtIGluIHRoZSBpbnB1dCB0ZXh0IG9mIHVua25vd24gZW5jb2RpbmcKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoaXMgQ2hhcnNldERldGVjdG9yCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3Igc2V0VGV4dChJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZklucHV0U3RyZWFtID0gaW47CisgICAgICAgIGZJbnB1dFN0cmVhbS5tYXJrKGtCdWZTaXplKTsKKyAgICAgICAgZlJhd0lucHV0ID0gbmV3IGJ5dGVba0J1ZlNpemVdOyAgIC8vIEFsd2F5cyBtYWtlIGEgbmV3IGJ1ZmZlciBiZWNhdXNlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBwcmV2aW91cyBvbmUgbWF5IGhhdmUgY29tZSBmcm9tIHRoZSBjYWxsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGluIHdoaWNoIGNhc2Ugd2UgY2FuJ3QgdG91Y2ggaXQuCisgICAgICAgIGZSYXdMZW5ndGggPSAwOworICAgICAgICBpbnQgcmVtYWluaW5nTGVuZ3RoID0ga0J1ZlNpemU7CisgICAgICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwICkgeworICAgICAgICAgICAgLy8gcmVhZCgpIG1heSBnaXZlIGRhdGEgaW4gc21hbGxpc2ggY2h1bmtzLCBlc3AuIGZvciByZW1vdGUgc291cmNlcy4gIEhlbmNlLCB0aGlzIGxvb3AuCisgICAgICAgICAgICBpbnQgIGJ5dGVzUmVhZCA9IGZJbnB1dFN0cmVhbS5yZWFkKGZSYXdJbnB1dCwgZlJhd0xlbmd0aCwgcmVtYWluaW5nTGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChieXRlc1JlYWQgPD0gMCkgeworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZSYXdMZW5ndGggKz0gYnl0ZXNSZWFkOworICAgICAgICAgICAgcmVtYWluaW5nTGVuZ3RoIC09IGJ5dGVzUmVhZDsKKyAgICAgICAgfQorICAgICAgICBmSW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgCisgICAgICAgIE11bmdlSW5wdXQoKTsgICAgICAgICAgICAgICAgICAgICAvLyBTdHJpcCBodG1sIG1hcmt1cCwgY29sbGVjdCBieXRlIHN0YXRzLgorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyc2V0IHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBzdXBwbGllZCBpbnB1dCBkYXRhLgorICAgICAqIAorICAgICAqIE5vdGUgdGhvdWdoLCB0aGF0IGJlY2F1c2UgdGhlIGRldGVjdGlvbiAKKyAgICAgKiBvbmx5IGxvb2tzIGF0IHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgZGF0YSwKKyAgICAgKiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHJldHVybmVkIGNoYXJzZXQgd2lsbCBmYWlsIHRvIGhhbmRsZQorICAgICAqIHRoZSBmdWxsIHNldCBvZiBpbnB1dCBkYXRhLgorICAgICAqIDxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgCisgICAgICogIDx1bD4KKyAgICAgKiAgICA8bGk+bm8gY2hhcnNldCBhcHBlYXJzIHRvIG1hdGNoIHRoZSBkYXRhLjwvbGk+CisgICAgICogICAgPGxpPm5vIGlucHV0IHRleHQgaGFzIGJlZW4gcHJvdmlkZWQ8L2xpPgorICAgICAqICA8L3VsPgorICAgICAqCisgICAgICogQHJldHVybiBhIENoYXJzZXRNYXRjaCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBiZXN0IG1hdGNoaW5nIGNoYXJzZXQsIG9yCisgICAgICogICAgICAgICA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXRNYXRjaCBkZXRlY3QoKSB7CisvLyAgIFRPRE86ICBBIGJldHRlciBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSB0byBjb3B5IHRoZSBkZXRlY3QgbG9vcCBmcm9tCisvLyAgICAgICAgICBkZXRlY3RBbGwoKSwgYW5kIGN1dCBpdCBzaG9ydCBhcyBzb29uIGFzIGEgbWF0Y2ggd2l0aCBhIGhpZ2ggY29uZmlkZW5jZQorLy8gICAgICAgICAgaXMgZm91bmQuICBUaGlzIGlzIHNvbWV0aGluZyB0byBiZSBkb25lIGxhdGVyLCBhZnRlciB0aGluZ3MgYXJlIG90aGVyd2lzZQorLy8gICAgICAgICAgd29ya2luZy4KKyAgICAgICAgQ2hhcnNldE1hdGNoIG1hdGNoZXNbXSA9IGRldGVjdEFsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG1hdGNoZXMgPT0gbnVsbCB8fCBtYXRjaGVzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1hdGNoZXNbMF07CisgICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBjaGFyc2V0cyB0aGF0IGFwcGVhciB0byBiZSBwbGF1c2libGUKKyAgICAgKiAgbWF0Y2hlcyB3aXRoIHRoZSBpbnB1dCBkYXRhLiAgVGhlIGFycmF5IGlzIG9yZGVyZWQgd2l0aCB0aGUKKyAgICAgKiAgYmVzdCBxdWFsaXR5IG1hdGNoIGZpcnN0LgorICAgICAqIDxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgCisgICAgICogIDx1bD4KKyAgICAgKiAgICA8bGk+bm8gY2hhcnNldHMgYXBwZWFyIHRvIG1hdGNoIHRoZSBpbnB1dCBkYXRhLjwvbGk+CisgICAgICogICAgPGxpPm5vIGlucHV0IHRleHQgaGFzIGJlZW4gcHJvdmlkZWQ8L2xpPgorICAgICAqICA8L3VsPgorICAgICAqIAorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgQ2hhcnNldE1hdGNoIG9iamVjdHMgcmVwcmVzZW50aW5nIHBvc3NpYmx5IG1hdGNoaW5nIGNoYXJzZXRzLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldE1hdGNoW10gZGV0ZWN0QWxsKCkgeworICAgICAgICBDaGFyc2V0UmVjb2duaXplciBjc3I7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGk7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGRldGVjdFJlc3VsdHM7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGNvbmZpZGVuY2U7CisgICAgICAgIEFycmF5TGlzdCAgICAgICAgIG1hdGNoZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIAorICAgICAgICAvLyAgSXRlcmF0ZSBvdmVyIGFsbCBwb3NzaWJsZSBjaGFyc2V0cywgcmVtZW1iZXIgYWxsIHRoYXQKKyAgICAgICAgLy8gICAgZ2l2ZSBhIG1hdGNoIHF1YWxpdHkgPiAwLgorICAgICAgICBmb3IgKGk9MDsgaTxmQ1NSZWNvZ25pemVycy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY3NyID0gKENoYXJzZXRSZWNvZ25pemVyKWZDU1JlY29nbml6ZXJzLmdldChpKTsKKyAgICAgICAgICAgIGRldGVjdFJlc3VsdHMgPSBjc3IubWF0Y2godGhpcyk7CisgICAgICAgICAgICBjb25maWRlbmNlID0gZGV0ZWN0UmVzdWx0cyAmIDB4MDAwMDAwZmY7CisgICAgICAgICAgICBpZiAoY29uZmlkZW5jZSA+IDApIHsKKyAgICAgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggIG0gPSBuZXcgQ2hhcnNldE1hdGNoKHRoaXMsIGNzciwgY29uZmlkZW5jZSk7CisgICAgICAgICAgICAgICAgbWF0Y2hlcy5hZGQobSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydChtYXRjaGVzKTsgICAgICAvLyBDaGFyc2V0TWF0Y2ggY29tcGFyZXMgb24gY29uZmlkZW5jZQorICAgICAgICBDb2xsZWN0aW9ucy5yZXZlcnNlKG1hdGNoZXMpOyAgIC8vICBQdXQgYmVzdCBtYXRjaCBmaXJzdC4KKyAgICAgICAgQ2hhcnNldE1hdGNoIFtdIHJlc3VsdEFycmF5ID0gbmV3IENoYXJzZXRNYXRjaFttYXRjaGVzLnNpemUoKV07CisgICAgICAgIHJlc3VsdEFycmF5ID0gKENoYXJzZXRNYXRjaFtdKSBtYXRjaGVzLnRvQXJyYXkocmVzdWx0QXJyYXkpOworICAgICAgICByZXR1cm4gcmVzdWx0QXJyYXk7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogQXV0b2RldGVjdCB0aGUgY2hhcnNldCBvZiBhbiBpbnB1dFN0cmVhbSwgYW5kIHJldHVybiBhIEphdmEgUmVhZGVyCisgICAgICogdG8gYWNjZXNzIHRoZSBjb252ZXJ0ZWQgaW5wdXQgZGF0YS4KKyAgICAgKiA8cC8+CisgICAgICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIDxjb2RlPnRoaXMuc2V0RGVjbGFyZWRFbmNvZGluZyhkZWNsYXJlZEVuY29kaW5nKS5zZXRUZXh0KGluKS5kZXRlY3QoKS5nZXRSZWFkZXIoKTs8L2NvZGU+CisgICAgICogPHAvPgorICAgICAqICAgRm9yIHRoZSBpbnB1dCBzdHJlYW0gdGhhdCBzdXBwbGllcyB0aGUgY2hhcmFjdGVyIGRhdGEsIG1hcmtTdXBwb3J0ZWQoKQorICAgICAqICAgbXVzdCBiZSB0cnVlOyB0aGUgIGNoYXJzZXQgZGV0ZWN0aW9uIHdpbGwgcmVhZCBhIHNtYWxsIGFtb3VudCBvZiBkYXRhLAorICAgICAqICAgdGhlbiByZXR1cm4gdGhlIHN0cmVhbSB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24gdmlhCisgICAgICogICB0aGUgSW5wdXRTdHJlYW0ucmVzZXQoKSBvcGVyYXRpb24uICBUaGUgZXhhY3QgYW1vdW50IHRoYXQgd2lsbAorICAgICAqICAgIGJlIHJlYWQgZGVwZW5kcyBvbiB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBkYXRhIGl0c2VsZi4KKyAgICAgKjxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgbm8gY2hhcnNldHMgYXBwZWFyIHRvIG1hdGNoIHRoZSBpbnB1dCBkYXRhLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbiBUaGUgc291cmNlIG9mIHRoZSBieXRlIGRhdGEgaW4gdGhlIHVua25vd24gY2hhcnNldC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZWNsYXJlZEVuY29kaW5nICBBIGRlY2xhcmVkIGVuY29kaW5nIGZvciB0aGUgZGF0YSwgaWYgYXZhaWxhYmxlLAorICAgICAqICAgICAgICAgICBvciBudWxsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBub25lIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFJlYWRlciBnZXRSZWFkZXIoSW5wdXRTdHJlYW0gaW4sIFN0cmluZyBkZWNsYXJlZEVuY29kaW5nKSB7CisgICAgICAgIGZEZWNsYXJlZEVuY29kaW5nID0gZGVjbGFyZWRFbmNvZGluZzsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXRUZXh0KGluKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2hhcnNldE1hdGNoIG1hdGNoID0gZGV0ZWN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXRjaCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5nZXRSZWFkZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdXRvZGV0ZWN0IHRoZSBjaGFyc2V0IG9mIGFuIGlucHV0U3RyZWFtLCBhbmQgcmV0dXJuIGEgU3RyaW5nCisgICAgICogY29udGFpbmluZyB0aGUgY29udmVydGVkIGlucHV0IGRhdGEuCisgICAgICogPHAvPgorICAgICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBpcyBlcXVpdmFsZW50IHRvCisgICAgICogICA8Y29kZT50aGlzLnNldERlY2xhcmVkRW5jb2RpbmcoZGVjbGFyZWRFbmNvZGluZykuc2V0VGV4dChpbikuZGV0ZWN0KCkuZ2V0U3RyaW5nKCk7PC9jb2RlPgorICAgICAqPHAvPgorICAgICAqIFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBubyBjaGFyc2V0cyBhcHBlYXIgdG8gbWF0Y2ggdGhlIGlucHV0IGRhdGEuCisgICAgICogCisgICAgICogQHBhcmFtIGluIFRoZSBzb3VyY2Ugb2YgdGhlIGJ5dGUgZGF0YSBpbiB0aGUgdW5rbm93biBjaGFyc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGRlY2xhcmVkRW5jb2RpbmcgIEEgZGVjbGFyZWQgZW5jb2RpbmcgZm9yIHRoZSBkYXRhLCBpZiBhdmFpbGFibGUsCisgICAgICogICAgICAgICAgIG9yIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vbmUgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhieXRlW10gaW4sIFN0cmluZyBkZWNsYXJlZEVuY29kaW5nKQorICAgIHsKKyAgICAgICAgZkRlY2xhcmVkRW5jb2RpbmcgPSBkZWNsYXJlZEVuY29kaW5nOworICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2V0VGV4dChpbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENoYXJzZXRNYXRjaCBtYXRjaCA9IGRldGVjdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobWF0Y2ggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gbWF0Y2guZ2V0U3RyaW5nKC0xKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWVzIG9mIGFsbCBjaGFyIHNldHMgdGhhdCBjYW4gYmUgcmVjb2duaXplZCBieSB0aGUgY2hhciBzZXQgZGV0ZWN0b3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBuYW1lcyBvZiBhbGwgY2hhcnNldHMgdGhhdCBjYW4gYmUgcmVjb2duaXplZAorICAgICAqIGJ5IHRoZSBjaGFyc2V0IGRldGVjdG9yLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEFsbERldGVjdGFibGVDaGFyc2V0cygpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyc2V0TmFtZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgd2hldGhlciBvciBub3QgaW5wdXQgZmlsdGVyaW5nIGlzIGVuYWJsZWQuCisgICAgICogCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbnB1dCB0ZXh0IHdpbGwgYmUgZmlsdGVyZWQuCisgICAgICogCisgICAgICogQHNlZSAjZW5hYmxlSW5wdXRGaWx0ZXIKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5wdXRGaWx0ZXJFbmFibGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmU3RyaXBUYWdzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBFbmFibGUgZmlsdGVyaW5nIG9mIGlucHV0IHRleHQuIElmIGZpbHRlcmluZyBpcyBlbmFibGVkLAorICAgICAqIHRleHQgd2l0aGluIGFuZ2xlIGJyYWNrZXRzICgiPCIgYW5kICI+Iikgd2lsbCBiZSByZW1vdmVkCisgICAgICogYmVmb3JlIGRldGVjdGlvbi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmlsdGVyIDxjb2RlPnRydWU8L2NvZGU+IHRvIGVuYWJsZSBpbnB1dCB0ZXh0IGZpbHRlcmluZy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBwcmV2aW91cyBzZXR0aW5nLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlbmFibGVJbnB1dEZpbHRlcihib29sZWFuIGZpbHRlcikKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcHJldmlvdXMgPSBmU3RyaXBUYWdzOworICAgICAgICAKKyAgICAgICAgZlN0cmlwVGFncyA9IGZpbHRlcjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBwcmV2aW91czsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIE11bmdlSW5wdXQgLSBhZnRlciBnZXR0aW5nIGEgc2V0IG9mIHJhdyBpbnB1dCBkYXRhIHRvIGJlIGFuYWx5emVkLCBwcmVwcm9jZXNzCisgICAgICogICAgICAgICAgICAgICBpdCBieSByZW1vdmluZyB3aGF0IGFwcGVhcnMgdG8gYmUgaHRtbCBtYXJrdXAuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIE11bmdlSW5wdXQoKSB7CisgICAgICAgIGludCBzcmNpID0gMDsKKyAgICAgICAgaW50IGRzdGkgPSAwOworICAgICAgICBieXRlIGI7CisgICAgICAgIGJvb2xlYW4gIGluTWFya3VwID0gZmFsc2U7CisgICAgICAgIGludCAgICAgIG9wZW5UYWdzID0gMDsKKyAgICAgICAgaW50ICAgICAgYmFkVGFncyAgPSAwOworICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIGh0bWwgLyB4bWwgbWFya3VwIHN0cmlwcGluZy4KKyAgICAgICAgLy8gICAgIHF1aWNrIGFuZCBkaXJ0eSwgbm90IDEwMCUgYWNjdXJhdGUsIGJ1dCBob3BlZnVsbHkgZ29vZCBlbm91Z2gsIHN0YXRpc3RpY2FsbHkuCisgICAgICAgIC8vICAgICBkaXNjYXJkIGV2ZXJ5dGhpbmcgd2l0aGluIDwgYnJhY2tldHMgPgorICAgICAgICAvLyAgICAgQ291bnQgaG93IG1hbnkgdG90YWwgJzwnIGFuZCBpbGxlZ2FsIChuZXN0ZWQpICc8JyBvY2N1ciwgc28gd2UgY2FuIG1ha2Ugc29tZQorICAgICAgICAvLyAgICAgZ3Vlc3MgYXMgdG8gd2hldGhlciB0aGUgaW5wdXQgd2FzIGFjdHVhbGx5IG1hcmtlZCB1cCBhdCBhbGwuCisgICAgICAgIGlmIChmU3RyaXBUYWdzKSB7CisgICAgICAgICAgICBmb3IgKHNyY2kgPSAwOyBzcmNpIDwgZlJhd0xlbmd0aCAmJiBkc3RpIDwgZklucHV0Qnl0ZXMubGVuZ3RoOyBzcmNpKyspIHsKKyAgICAgICAgICAgICAgICBiID0gZlJhd0lucHV0W3NyY2ldOworICAgICAgICAgICAgICAgIGlmIChiID09IChieXRlKSc8JykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5NYXJrdXApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhZFRhZ3MrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbk1hcmt1cCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIG9wZW5UYWdzKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghIGluTWFya3VwKSB7CisgICAgICAgICAgICAgICAgICAgIGZJbnB1dEJ5dGVzW2RzdGkrK10gPSBiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYiA9PSAoYnl0ZSknPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5NYXJrdXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZklucHV0TGVuID0gZHN0aTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIElmIGl0IGxvb2tzIGxpa2UgdGhpcyBpbnB1dCB3YXNuJ3QgbWFya2VkIHVwLCBvciBpZiBpdCBsb29rcyBsaWtlIGl0J3MKKyAgICAgICAgLy8gICAgZXNzZW50aWFsbHkgbm90aGluZyBidXQgbWFya3VwIGFiYW5kb24gdGhlIG1hcmt1cCBzdHJpcHBpbmcuCisgICAgICAgIC8vICAgIERldGVjdGlvbiB3aWxsIGhhdmUgdG8gd29yayBvbiB0aGUgdW5zdHJpcHBlZCBpbnB1dC4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKG9wZW5UYWdzPDUgfHwgb3BlblRhZ3MvNSA8IGJhZFRhZ3MgfHwgCisgICAgICAgICAgICAgICAgKGZJbnB1dExlbiA8IDEwMCAmJiBmUmF3TGVuZ3RoPjYwMCkpIHsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGZSYXdMZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaW1pdCA+IGtCdWZTaXplKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBrQnVmU2l6ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzcmNpPTA7IHNyY2k8bGltaXQ7IHNyY2krKykgeworICAgICAgICAgICAgICAgIGZJbnB1dEJ5dGVzW3NyY2ldID0gZlJhd0lucHV0W3NyY2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZklucHV0TGVuID0gc3JjaTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGFsbHkgdXAgdGhlIGJ5dGUgb2NjdXJlbmNlIHN0YXRpc3RpY3MuCisgICAgICAgIC8vICAgVGhlc2UgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSB2YXJpb3VzIGRldGVjdG9ycy4KKyAgICAgICAgLy8KKyAgICAgICAgQXJyYXlzLmZpbGwoZkJ5dGVTdGF0cywgKHNob3J0KTApOworICAgICAgICBmb3IgKHNyY2k9MDsgc3JjaTxmSW5wdXRMZW47IHNyY2krKykgeworICAgICAgICAgICAgaW50IHZhbCA9IGZJbnB1dEJ5dGVzW3NyY2ldICYgMHgwMGZmOworICAgICAgICAgICAgZkJ5dGVTdGF0c1t2YWxdKys7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZDMUJ5dGVzID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAweDgwOyBpIDw9IDB4OUY7IGkgKz0gMSkgeworICAgICAgICAgICAgaWYgKGZCeXRlU3RhdHNbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGZDMUJ5dGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICB9CisKKyAgICAvKioKKyAgICAgKiAgVGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgYWNjZXNzZWQgYnkgaW5kaXZpZHVhbCBDaGFyc2V0UmVjb25naXplcnMgZHVyaW5nCisgICAgICogICAgIHRoZSByZWNvZ25pdGlvbiBwcm9jZXNzCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgYnl0ZVtdICAgICAgZklucHV0Qnl0ZXMgPSAgICAgICAvLyBUaGUgdGV4dCB0byBiZSBjaGVja2VkLiAgTWFya3VwIHdpbGwgaGF2ZSBiZWVuCisgICAgICAgICAgICAgICAgICAgbmV3IGJ5dGVba0J1ZlNpemVdOyAgLy8gICByZW1vdmVkIGlmIGFwcHJvcHJpYXRlLgorICAgIAorICAgIGludCAgICAgICAgIGZJbnB1dExlbjsgICAgICAgICAgLy8gTGVuZ3RoIG9mIHRoZSBieXRlIGRhdGEgaW4gZklucHV0VGV4dC4KKyAgICAKKyAgICBzaG9ydCAgICAgICBmQnl0ZVN0YXRzW10gPSAgICAgIC8vIGJ5dGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MgZm9yIHRoZSBpbnB1dCB0ZXh0LgorICAgICAgICAgICAgICAgICAgIG5ldyBzaG9ydFsyNTZdOyAgLy8gICBWYWx1ZSBpcyBwZXJjZW50LCBub3QgYWJzb2x1dGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIFZhbHVlIGlzIHJvdW5kZWQgdXAsIHNvIHplcm8gcmVhbGx5IG1lYW5zIHplcm8gb2NjdXJlbmNlcy4KKyAgICAKKyAgICBib29sZWFuICAgICBmQzFCeXRlcyA9ICAgICAgICAgIC8vIFRydWUgaWYgYW55IGJ5dGVzIGluIHRoZSByYW5nZSAweDgwIC0gMHg5RiBhcmUgaW4gdGhlIGlucHV0OworICAgICAgICAgICAgICAgICAgIGZhbHNlOworICAgIAorICAgIFN0cmluZyAgICAgIGZEZWNsYXJlZEVuY29kaW5nOworICAgIAorICAgIAorCisgICAgLy8KKyAgICAvLyAgU3R1ZmYgcHJpdmF0ZSB0byBDaGFyc2V0RGV0ZWN0b3IKKyAgICAvLworICAgIGJ5dGVbXSAgICAgICAgICAgICAgIGZSYXdJbnB1dDsgICAgIC8vIE9yaWdpbmFsLCB1bnRvdWNoZWQgaW5wdXQgYnl0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIElmIHVzZXIgZ2F2ZSB1cyBhIGJ5dGUgYXJyYXksIHRoaXMgaXMgaXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIElmIHVzZXIgZ2F2ZSB1cyBhIHN0cmVhbSwgaXQncyByZWFkIHRvIGEgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGJ1ZmZlciBoZXJlLgorICAgIGludCAgICAgICAgICAgICAgICAgIGZSYXdMZW5ndGg7ICAgIC8vIExlbmd0aCBvZiBkYXRhIGluIGZSYXdJbnB1dCBhcnJheS4KKyAgICAKKyAgICBJbnB1dFN0cmVhbSAgICAgICAgICBmSW5wdXRTdHJlYW07ICAvLyBVc2VyJ3MgaW5wdXQgc3RyZWFtLCBvciBudWxsIGlmIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBnYXZlIHVzIGEgYnl0ZSBhcnJheS4KKyAgICAgCisgICAgYm9vbGVhbiAgICAgICAgICAgICAgZlN0cmlwVGFncyA9ICAgLy8gSWYgdHJ1ZSwgc2V0VGV4dCgpIHdpbGwgc3RyaXAgdGFncyBmcm9tIGlucHV0IHRleHQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZTsKKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiAgTGlzdCBvZiByZWNvZ25pemVycyBmb3IgYWxsIGNoYXJzZXRzIGtub3duIHRvIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEFycmF5TGlzdCBmQ1NSZWNvZ25pemVycyA9IGNyZWF0ZVJlY29nbml6ZXJzKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIFtdIGZDaGFyc2V0TmFtZXM7CisgICAgCisgICAvKioKKyAgICAgKiBDcmVhdGUgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZXMgb2YgdGhlIENoYXJzZXRSZWNvZ25pemVyIGNsYXNzZXMKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBBcnJheUxpc3QgY3JlYXRlUmVjb2duaXplcnMoKSB7CisgICAgICAgIEFycmF5TGlzdCByZWNvZ25pemVycyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VURjgoKSk7CisgICAgICAgIAorICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19Vbmljb2RlLkNoYXJzZXRSZWNvZ19VVEZfMTZfQkUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VuaWNvZGUuQ2hhcnNldFJlY29nX1VURl8xNl9MRSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfVW5pY29kZS5DaGFyc2V0UmVjb2dfVVRGXzMyX0JFKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19Vbmljb2RlLkNoYXJzZXRSZWNvZ19VVEZfMzJfTEUoKSk7CisgICAgICAgIAorICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19tYmNzLkNoYXJzZXRSZWNvZ19zamlzKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ18yMDIyLkNoYXJzZXRSZWNvZ18yMDIySlAoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nXzIwMjIuQ2hhcnNldFJlY29nXzIwMjJDTigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfMjAyMi5DaGFyc2V0UmVjb2dfMjAyMktSKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19tYmNzLkNoYXJzZXRSZWNvZ19ldWMuQ2hhcnNldFJlY29nX2diXzE4MDMwKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19tYmNzLkNoYXJzZXRSZWNvZ19ldWMuQ2hhcnNldFJlY29nX2V1Y19qcCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfbWJjcy5DaGFyc2V0UmVjb2dfZXVjLkNoYXJzZXRSZWNvZ19ldWNfa3IoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX21iY3MuQ2hhcnNldFJlY29nX2JpZzUoKSk7CisgICAgICAgIAorICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfZGEoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9kZSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2VuKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfZXMoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9mcigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2l0KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfbmwoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9ubygpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX3B0KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfc3YoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMl9jcygpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8yX2h1KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzJfcGwoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMl9ybygpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV81X3J1KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzZfYXIoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfN19lbCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV84X0lfaGUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfOF9oZSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfd2luZG93c18xMjUxKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nX0tPSThfUigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV85X3RyKCkpOworICAgICAgICAKKyAgICAgICAgLy8gQ3JlYXRlIGFuIGFycmF5IG9mIGFsbCBjaGFyc2V0IG5hbWVzLCBhcyBhIHNpZGUgZWZmZWN0LgorICAgICAgICAvLyBOZWVkZWQgZm9yIHRoZSBnZXRBbGxEZXRlY3RhYmxlQ2hhcnNldHMoKSBBUEkuCisgICAgICAgIFN0cmluZ1tdIGNoYXJzZXROYW1lcyA9IG5ldyBTdHJpbmcgW3JlY29nbml6ZXJzLnNpemUoKV07CisgICAgICAgIGludCBvdXQgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWNvZ25pemVycy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSAoKENoYXJzZXRSZWNvZ25pemVyKXJlY29nbml6ZXJzLmdldChpKSkuZ2V0TmFtZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob3V0ID09IDAgfHwgISBuYW1lLmVxdWFscyhjaGFyc2V0TmFtZXNbb3V0IC0gMV0pKSB7CisgICAgICAgICAgICAgICAgY2hhcnNldE5hbWVzW291dCsrXSA9IG5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZDaGFyc2V0TmFtZXMgPSBuZXcgU3RyaW5nW291dF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2hhcnNldE5hbWVzLCAwLCBmQ2hhcnNldE5hbWVzLCAwLCBvdXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlY29nbml6ZXJzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRNYXRjaC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldE1hdGNoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUxM2RmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRNYXRjaC5qYXZhCkBAIC0wLDAgKzEsMjc4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uUmVhZGVyOworCisKKy8qKgorICogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgY2hhcnNldCB0aGF0IGhhcyBiZWVuIGlkZW50aWZpZWQgYnkgYSBDaGFyc2V0RGV0ZWN0b3IKKyAqIGFzIGEgcG9zc2libGUgZW5jb2RpbmcgZm9yIGEgc2V0IG9mIGlucHV0IGRhdGEuICBGcm9tIGFuIGluc3RhbmNlIG9mIHRoaXMKKyAqIGNsYXNzLCB5b3UgY2FuIGFzayBmb3IgYSBjb25maWRlbmNlIGxldmVsIGluIHRoZSBjaGFyc2V0IGlkZW50aWZpY2F0aW9uLAorICogb3IgZm9yIEphdmEgUmVhZGVyIG9yIFN0cmluZyB0byBhY2Nlc3MgdGhlIG9yaWdpbmFsIGJ5dGUgZGF0YSBpbiBVbmljb2RlIGZvcm0uCisgKiA8cC8+CisgKiBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgY3JlYXRlZCBvbmx5IGJ5IENoYXJzZXREZXRlY3RvcnMuCisgKiA8cC8+CisgKiBOb3RlOiAgdGhpcyBjbGFzcyBoYXMgYSBuYXR1cmFsIG9yZGVyaW5nIHRoYXQgaXMgaW5jb25zaXN0ZW50IHdpdGggZXF1YWxzLgorICogICAgICAgIFRoZSBuYXR1cmFsIG9yZGVyaW5nIGlzIGJhc2VkIG9uIHRoZSBtYXRjaCBjb25maWRlbmNlIHZhbHVlLgorICoKKyAqIEBkcmFmdCBJQ1UgMy40CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIENoYXJzZXRNYXRjaCBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworCisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgamF2YS5pby5SZWFkZXIgZm9yIHJlYWRpbmcgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGEgY29ycmVzcG9uZGluZworICAgICAqIHRvIHRoZSBvcmlnaW5hbCBieXRlIGRhdGEgc3VwcGxpZWQgdG8gdGhlIENoYXJzZXQgZGV0ZWN0IG9wZXJhdGlvbi4KKyAgICAgKiA8cC8+CisgICAgICogQ0FVVElPTjogIGlmIHRoZSBzb3VyY2Ugb2YgdGhlIGJ5dGUgZGF0YSB3YXMgYW4gSW5wdXRTdHJlYW0sIGEgUmVhZGVyCisgICAgICogY2FuIGJlIGNyZWF0ZWQgZm9yIG9ubHkgb25lIG1hdGNoaW5nIGNoYXIgc2V0IHVzaW5nIHRoaXMgbWV0aG9kLiAgSWYgbW9yZSAKKyAgICAgKiB0aGFuIG9uZSBjaGFyc2V0IG5lZWRzIHRvIGJlIHRyaWVkLCB0aGUgY2FsbGVyIHdpbGwgbmVlZCB0byByZXNldAorICAgICAqIHRoZSBJbnB1dFN0cmVhbSBhbmQgY3JlYXRlIElucHV0U3RyZWFtUmVhZGVycyBpdHNlbGYsIGJhc2VkIG9uIHRoZSBjaGFyc2V0IG5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBSZWFkZXIgZm9yIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVhZGVyIGdldFJlYWRlcigpIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gPSBmSW5wdXRTdHJlYW07CisgICAgICAgIAorICAgICAgICBpZiAoaW5wdXRTdHJlYW0gPT0gbnVsbCkgeworICAgICAgICAgICAgaW5wdXRTdHJlYW0gPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZlJhd0lucHV0LCAwLCBmUmF3TGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlucHV0U3RyZWFtLnJlc2V0KCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlucHV0U3RyZWFtLCBnZXROYW1lKCkpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIEphdmEgU3RyaW5nIGZyb20gVW5pY29kZSBjaGFyYWN0ZXIgZGF0YSBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIG9yaWdpbmFsIGJ5dGUgZGF0YSBzdXBwbGllZCB0byB0aGUgQ2hhcnNldCBkZXRlY3Qgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBhIFN0cmluZyBjcmVhdGVkIGZyb20gdGhlIGNvbnZlcnRlZCBpbnB1dCBkYXRhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZygpICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXRTdHJpbmcoLTEpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgSmF2YSBTdHJpbmcgZnJvbSBVbmljb2RlIGNoYXJhY3RlciBkYXRhIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgb3JpZ2luYWwgYnl0ZSBkYXRhIHN1cHBsaWVkIHRvIHRoZSBDaGFyc2V0IGRldGVjdCBvcGVyYXRpb24uCisgICAgICogVGhlIGxlbmd0aCBvZiB0aGUgcmV0dXJuZWQgc3RyaW5nIGlzIGxpbWl0ZWQgdG8gdGhlIHNwZWNpZmllZCBzaXplOworICAgICAqIHRoZSBzdHJpbmcgd2lsbCBiZSB0cnVuY3RhdGVkIHRvIHRoaXMgbGVuZ3RoIGlmIG5lY2Vzc2FyeS4gIEEgbGltaXQgdmFsdWUgb2YKKyAgICAgKiB6ZXJvIG9yIGxlc3MgaXMgaWdub3JlZCwgYW5kIHRyZWF0ZWQgYXMgbm8gbGltaXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWF4TGVuZ3RoIFRoZSBtYXhpbWl1bSBsZW5ndGggb2YgdGhlIFN0cmluZyB0byBiZSBjcmVhdGVkIHdoZW4gdGhlCisgICAgICogICAgICAgICAgICAgICAgICBzb3VyY2Ugb2YgdGhlIGRhdGEgaXMgYW4gaW5wdXQgc3RyZWFtLCBvciAtMSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgIHVubGltaXRlZCBsZW5ndGguCisgICAgICogQHJldHVybiBhIFN0cmluZyBjcmVhdGVkIGZyb20gdGhlIGNvbnZlcnRlZCBpbnB1dCBkYXRhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhpbnQgbWF4TGVuZ3RoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoZklucHV0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclsxMDI0XTsKKyAgICAgICAgICAgIFJlYWRlciByZWFkZXIgPSBnZXRSZWFkZXIoKTsKKyAgICAgICAgICAgIGludCBtYXggPSBtYXhMZW5ndGggPCAwPyBJbnRlZ2VyLk1BWF9WQUxVRSA6IG1heExlbmd0aDsKKyAgICAgICAgICAgIGludCBieXRlc1JlYWQgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoKGJ5dGVzUmVhZCA9IHJlYWRlci5yZWFkKGJ1ZmZlciwgMCwgTWF0aC5taW4obWF4LCAxMDI0KSkpID49IDApIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoYnVmZmVyLCAwLCBieXRlc1JlYWQpOworICAgICAgICAgICAgICAgIG1heCAtPSBieXRlc1JlYWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlYWRlci5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmcoZlJhd0lucHV0LCBnZXROYW1lKCkpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGFuIGluZGljYXRpb24gb2YgdGhlIGNvbmZpZGVuY2UgaW4gdGhlIGNoYXJzZXQgZGV0ZWN0ZWQuCisgICAgICogQ29uZmlkZW5jZSB2YWx1ZXMgcmFuZ2UgZnJvbSAwLTEwMCwgd2l0aCBsYXJnZXIgbnVtYmVycyBpbmRpY2F0aW5nCisgICAgICogYSBiZXR0ZXIgbWF0Y2ggb2YgdGhlIGlucHV0IGRhdGEgdG8gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUKKyAgICAgKiBjaGFyc2V0LgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgY29uZmlkZW5jZSBpbiB0aGUgY2hhcnNldCBtYXRjaAorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbmZpZGVuY2UoKSB7CisgICAgICAgIHJldHVybiBmQ29uZmlkZW5jZTsKKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBCaXQgZmxhZyBpbmRpY2F0aW5nIHRoZSBtYXRjaCBpcyBiYXNlZCBvbiB0aGUgdGhlIGVuY29kaW5nIHNjaGVtZS4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1hdGNoVHlwZQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgRU5DT0RJTkdfU0NIRU1FICAgID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBCaXQgZmxhZyBpbmRpY2F0aW5nIHRoZSBtYXRjaCBpcyBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgYSBCT00uCisgICAgICogCisgICAgICogQHNlZSAjZ2V0TWF0Y2hUeXBlCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBCT00gICAgICAgICAgICAgICAgPSAyOworICAgIAorICAgIC8qKgorICAgICAqIEJpdCBmbGFnIGluZGljYXRpbmcgaGUgbWF0Y2ggaXMgYmFzZWQgb24gdGhlIGRlY2xhcmVkIGVuY29kaW5nLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldE1hdGNoVHlwZQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgREVDTEFSRURfRU5DT0RJTkcgID0gNDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBCaXQgZmxhZyBpbmRpY2F0aW5nIHRoZSBtYXRjaCBpcyBiYXNlZCBvbiBsYW5ndWFnZSBzdGF0aXN0aWNzLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TWF0Y2hUeXBlCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBMQU5HX1NUQVRJU1RJQ1MgICAgPSA4OworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBmbGFncyBpbmRpY2F0aW5nIHdoYXQgaXQgd2FzIGFib3V0IHRoZSBpbnB1dCBkYXRhIAorICAgICAqIHRoYXQgY2F1c2VkIHRoaXMgY2hhcnNldCB0byBiZSBjb25zaWRlcmVkIGFzIGEgcG9zc2libGUgbWF0Y2guCisgICAgICogVGhlIHJlc3VsdCBpcyBhIGJpdGZpZWxkIGNvbnRhaW5pbmcgemVybyBvciBtb3JlIG9mIHRoZSBmbGFncworICAgICAqIEVOQ09ESU5HX1NDSEVNRSwgQk9NLCBERUNMQVJFRF9FTkNPRElORywgYW5kIExBTkdfU1RBVElTVElDUy4KKyAgICAgKiBBIHJlc3VsdCBvZiB6ZXJvIG1lYW5zIG5vIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiBjdXJyZW50bHksIHRoaXMgbWV0aG9kIGFsd2F5cyByZXR1cm5zIHplcm8uCisgICAgICogPHA+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSB0eXBlIG9mIG1hdGNoIGZvdW5kIGZvciB0aGlzIGNoYXJzZXQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hUeXBlKCkgeworLy8gICAgICBUT0RPOiBjcmVhdGUgYSBsaXN0IG9mIGVudW0tbGlrZSBjb25zdGFudHMgZm9yIGNvbW1vbiBjb21iaW5hdGlvbnMgb2YgdHlwZXMgb2YgbWF0Y2hlcy4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBkZXRlY3RlZCBjaGFyc2V0LiAgCisgICAgICogVGhlIG5hbWUgd2lsbCBiZSBvbmUgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIG90aGVyIEFQSXMgb24gdGhlCisgICAgICogcGxhdGZvcm0gdGhhdCBhY2NlcHQgY2hhcnNldCBuYW1lcy4gIEl0IGlzIHRoZSAiQ2Fub25pY2FsIG5hbWUiCisgICAgICogYXMgZGVmaW5lZCBieSB0aGUgY2xhc3MgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OyBmb3IKKyAgICAgKiBjaGFyc2V0cyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggdGhlIElBTkEgY2hhcnNldCByZWdpc3RyeSwKKyAgICAgKiB0aGlzIGlzIHRoZSBNSU1FLXByZWZlcnJlZCByZWdpc3RlcmQgbmFtZS4KKyAgICAgKgorICAgICAqIEBzZWUgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0CisgICAgICogQHNlZSBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBuYW1lIG9mIHRoZSBjaGFyc2V0LgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBmUmVjb2duaXplci5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgSVNPIGNvZGUgZm9yIHRoZSBsYW5ndWFnZSBvZiB0aGUgZGV0ZWN0ZWQgY2hhcnNldC4gIAorICAgICAqCisgICAgICogQHJldHVybiBUaGUgSVNPIGNvZGUgZm9yIHRoZSBsYW5ndWFnZSBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgbGFuZ3VhZ2UgY2Fubm90IGJlIGRldGVybWluZWQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKSB7CisgICAgICAgIHJldHVybiBmUmVjb2duaXplci5nZXRMYW5ndWFnZSgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRvIG90aGVyIENoYXJzZXRNYXRjaCBvYmplY3RzLgorICAgICAqIENvbXBhcmlzb24gaXMgYmFzZWQgb24gdGhlIG1hdGNoIGNvbmZpZGVuY2UgdmFsdWUsIHdoaWNoIAorICAgICAqICAgYWxsb3dzIENoYXJzZXREZXRlY3Rvci5kZXRlY3RBbGwoKSB0byBvcmRlciBpdHMgcmVzdWx0cy4gCisgICAgICoKKyAgICAgKiBAcGFyYW0gbyB0aGUgQ2hhcnNldE1hdGNoIG9iamVjdCB0byBjb21wYXJlIGFnYWluc3QuCisgICAgICogQHJldHVybiAgYSBuZWdhdGl2ZSBpbnRlZ2VyLCB6ZXJvLCBvciBhIHBvc2l0aXZlIGludGVnZXIgYXMgdGhlIAorICAgICAqICAgICAgICAgIGNvbmZpZGVuY2UgbGV2ZWwgb2YgdGhpcyBDaGFyc2V0TWF0Y2gKKyAgICAgKgkJaXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgZ3JlYXRlciB0aGFuIHRoYXQgb2YKKyAgICAgKiAgICAgICAgICB0aGUgYXJndW1lbnQuCisgICAgICogQHRocm93cyBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG5vdCBhIENoYXJzZXRNYXRjaC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvIChPYmplY3QgbykgeworICAgICAgICBDaGFyc2V0TWF0Y2ggb3RoZXIgPSAoQ2hhcnNldE1hdGNoKW87CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gMDsKKyAgICAgICAgaWYgKHRoaXMuZkNvbmZpZGVuY2UgPiBvdGhlci5mQ29uZmlkZW5jZSkgeworICAgICAgICAgICAgY29tcGFyZVJlc3VsdCA9IDE7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mQ29uZmlkZW5jZSA8IG90aGVyLmZDb25maWRlbmNlKSB7CisgICAgICAgICAgICBjb21wYXJlUmVzdWx0ID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqICBDb25zdHJ1Y3Rvci4gIEltcGxlbWVudGF0aW9uIGludGVybmFsCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBDaGFyc2V0TWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCwgQ2hhcnNldFJlY29nbml6ZXIgcmVjLCBpbnQgY29uZikgeworICAgICAgICBmUmVjb2duaXplciA9IHJlYzsKKyAgICAgICAgZkNvbmZpZGVuY2UgPSBjb25mOworICAgICAgICAKKyAgICAgICAgLy8gVGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9yaWdpbmFsIGFwbGljYXRpb24gaW5wdXQgZGF0YSBtdXN0IGJlIGNvcGllZCBvdXQKKyAgICAgICAgLy8gICBvZiB0aGUgY2hhcnNldCByZWNvZ25pemVyIHRvIGhlcmUsIGluIGNhc2UgdGhlIGFwcGxpY2F0aW9uIHJlc2V0cyB0aGUKKyAgICAgICAgLy8gICByZWNvZ25pemVyIGJlZm9yZSB1c2luZyB0aGlzIENoYXJzZXRNYXRjaC4KKyAgICAgICAgaWYgKGRldC5mSW5wdXRTdHJlYW0gPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRoZSBleGlzdGluZyBpbnB1dCBieXRlIGRhdGEgaWYgaXQgY2FtZSBzdHJhaWdodCBmcm9tIHRoZSB1c2VyLAorICAgICAgICAgICAgLy8gICBub3QgaWYgaXMganVzdCB0aGUgaGVhZCBvZiBhIHN0cmVhbS4KKyAgICAgICAgICAgIGZSYXdJbnB1dCAgICA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgICAgICBmUmF3TGVuZ3RoICAgPSBkZXQuZlJhd0xlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBmSW5wdXRTdHJlYW0gPSBkZXQuZklucHV0U3RyZWFtOworICAgIH0KKworICAgIAorICAgIC8vCisgICAgLy8gICBQcml2YXRlIERhdGEKKyAgICAvLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBmQ29uZmlkZW5jZTsKKyAgICBwcml2YXRlIENoYXJzZXRSZWNvZ25pemVyICAgZlJlY29nbml6ZXI7CisgICAgcHJpdmF0ZSBieXRlW10gICAgICAgICAgICAgIGZSYXdJbnB1dCA9IG51bGw7ICAgICAvLyBPcmlnaW5hbCwgdW50b3VjaGVkIGlucHV0IGJ5dGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIElmIHVzZXIgZ2F2ZSB1cyBhIGJ5dGUgYXJyYXksIHRoaXMgaXMgaXQuCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgICAgIGZSYXdMZW5ndGg7ICAgICAgICAgICAvLyBMZW5ndGggb2YgZGF0YSBpbiBmUmF3SW5wdXQgYXJyYXkuCisKKyAgICBwcml2YXRlIElucHV0U3RyZWFtICAgICAgICAgZklucHV0U3RyZWFtID0gbnVsbDsgIC8vIFVzZXIncyBpbnB1dCBzdHJlYW0sIG9yIG51bGwgaWYgdGhlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZ2F2ZSB1cyBhIGJ5dGUgYXJyYXkuCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfMjAyMi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nXzIwMjIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTg1MWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nXzIwMjIuamF2YQpAQCAtMCwwICsxLDE2MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogIGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyICBwYXJ0IG9mIHRoZSBJQ1UgY2hhcnNldCBkZXRlY3Rpb24gaW1sZW1lbnRhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHN1cGVyY2xhc3MgZm9yIHRoZSBpbmRpdmlkdWFsIGRldGVjdG9ycyBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZWFjaCBvZiB0aGUgZGV0ZWN0YWJsZSBtZW1iZXJzIG9mIHRoZSBJU08gMjAyMiBmYW1pbHkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgZW5jb2RpbmdzLgorICogCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBzZXBhcmF0ZSBjbGFzc2VzIGFyZSBuZXN0ZWQgd2l0aGluIHRoaXMgY2xhc3MuCisgKiAKKyAqIEBpbnRlcm5hbAorICovCithYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2dfMjAyMiBleHRlbmRzIENoYXJzZXRSZWNvZ25pemVyIHsKKworICAgIAorICAgIC8qKgorICAgICAqIE1hdGNoaW5nIGZ1bmN0aW9uIHNoYXJlZCBhbW9uZyB0aGUgMjAyMiBkZXRlY3RvcnMgSlAsIENOIGFuZCBLUgorICAgICAqIENvdW50cyB1cCB0aGUgbnVtYmVyIG9mIGxlZ2FsIGFuIHVucmVjb2duaXplZCBlc2NhcGUgc2VxdWVuY2VzIGluCisgICAgICogdGhlIHNhbXBsZSBvZiB0ZXh0LCBhbmQgY29tcHV0ZXMgYSBzY29yZSBiYXNlZCBvbiB0aGUgdG90YWwgbnVtYmVyICYKKyAgICAgKiB0aGUgcHJvcG9ydGlvbiB0aGF0IGZpdCB0aGUgZW5jb2RpbmcuCisgICAgICogCisgICAgICogCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ5dGUgYnVmZmVyIGNvbnRhaW5pbmcgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIHRleHRMZW4gIHRoZSBzaXplIG9mIHRoZSB0ZXh0IGluIHRoZSBieXRlLgorICAgICAqIEBwYXJhbSBlc2NhcGVTZXF1ZW5jZXMgdGhlIGJ5dGUgZXNjYXBlIHNlcXVlbmNlcyB0byB0ZXN0IGZvci4KKyAgICAgKiBAcmV0dXJuIG1hdGNoIHF1YWxpdHksIGluIHRoZSByYW5nZSBvZiAwLTEwMC4KKyAgICAgKi8KKyAgICBpbnQgICBtYXRjaChieXRlIFtdIHRleHQsIGludCB0ZXh0TGVuLCBieXRlIFtdW10gZXNjYXBlU2VxdWVuY2VzKSB7CisgICAgICAgIGludCAgICAgaSwgajsKKyAgICAgICAgaW50ICAgICBlc2NOOworICAgICAgICBpbnQgICAgIGhpdHMgICA9IDA7CisgICAgICAgIGludCAgICAgbWlzc2VzID0gMDsKKyAgICAgICAgaW50ICAgICBzaGlmdHMgPSAwOworICAgICAgICBpbnQgICAgIHF1YWxpdHk7CisgICAgICAgIHNjYW5JbnB1dDoKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPHRleHRMZW47IGkrKykgeworICAgICAgICAgICAgICAgIGlmICh0ZXh0W2ldID09IDB4MWIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tFc2NhcGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChlc2NOPTA7IGVzY048ZXNjYXBlU2VxdWVuY2VzLmxlbmd0aDsgZXNjTisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBbXSBzZXEgPSBlc2NhcGVTZXF1ZW5jZXNbZXNjTl07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqPTE7IGo8c2VxLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXFbal0gIT0gdGV4dFtpK2pdKSAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgY2hlY2tFc2NhcGVzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGl0cysrOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICs9IHNlcS5sZW5ndGgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBzY2FuSW5wdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBtaXNzZXMrKzsgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHRleHRbaV0gPT0gMHgwZSB8fCB0ZXh0W2ldID09IDB4MGYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU2hpZnQgaW4vb3V0CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0cysrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChoaXRzID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBJbml0aWFsIHF1YWxpdHkgaXMgYmFzZWQgb24gcmVsYXRpdmUgcHJvcG9ydGlvbiBvZiByZWNvbmdpemVkIHZzLgorICAgICAgICAvLyAgIHVucmVjb2duaXplZCBlc2NhcGUgc2VxdWVuY2VzLiAKKyAgICAgICAgLy8gICBBbGwgZ29vZDogIHF1YWxpdHkgPSAxMDA7CisgICAgICAgIC8vICAgaGFsZiBvciBsZXNzIGdvb2Q6IHF1YWxpdHkgPSAwOworICAgICAgICAvLyAgIGxpbmVhciBpbmJldHdlZW4uCisgICAgICAgIHF1YWxpdHkgPSAoMTAwKmhpdHMgLSAxMDAqbWlzc2VzKSAvIChoaXRzICsgbWlzc2VzKTsKKyAgICAgICAgCisgICAgICAgIC8vIEJhY2sgb2ZmIHF1YWxpdHkgaWYgdGhlcmUgd2VyZSB0b28gZmV3IGVzY2FwZSBzZXF1ZW5jZXMgc2Vlbi4KKyAgICAgICAgLy8gICBJbmNsdWRlIHNoaWZ0cyBpbiB0aGlzIGNvbXB1dGF0aW9uLCBzbyB0aGF0IEtSIGRvZXMgbm90IGdldCBwZW5hbGl6ZWQKKyAgICAgICAgLy8gICBmb3IgaGF2aW5nIG9ubHkgYSBzaW5nbGUgRXNjYXBlIHNlcXVlbmNlLCBidXQgbWFueSBzaGlmdHMuCisgICAgICAgIGlmIChoaXRzK3NoaWZ0cyA8IDUpIHsKKyAgICAgICAgICAgIHF1YWxpdHkgLT0gKDUtKGhpdHMrc2hpZnRzKSkqMTA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChxdWFsaXR5IDwgMCkgeworICAgICAgICAgICAgcXVhbGl0eSA9IDA7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICByZXR1cm4gcXVhbGl0eTsKKyAgICB9CisKKyAgICAKKyAKKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzIwMjJKUCBleHRlbmRzIENoYXJzZXRSZWNvZ18yMDIyIHsKKyAgICAgICAgcHJpdmF0ZSBieXRlIFtdIFtdIGVzY2FwZVNlcXVlbmNlcyA9IHsKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOCwgMHg0M30sICAgLy8gS1MgWCAxMDAxOjE5OTIKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOCwgMHg0NH0sICAgLy8gSklTIFggMjEyLTE5OTAKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHg0MH0sICAgICAgICAgLy8gSklTIEMgNjIyNi0xOTc4CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4NDF9LCAgICAgICAgIC8vIEdCIDIzMTItODAKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHg0Mn0sICAgICAgICAgLy8gSklTIFggMjA4LTE5ODMKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNiwgMHg0MH0sICAgICAgICAgLy8gSklTIFggMjA4IDE5OTAsIDE5OTcKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyOCwgMHg0Mn0sICAgICAgICAgLy8gQVNDSUkKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyOCwgMHg0OH0sICAgICAgICAgLy8gSklTLVJvbWFuCisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjgsIDB4NDl9LCAgICAgICAgIC8vIEhhbGYtd2lkdGgga2F0YWthbmEKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyOCwgMHg0YX0sICAgICAgICAgLy8gSklTLVJvbWFuCisgICAgICAgICAgICAgICAgezB4MWIsIDB4MmUsIDB4NDF9LCAgICAgICAgIC8vIElTTyA4ODU5LTEKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyZSwgMHg0Nn0gICAgICAgICAgLy8gSVNPIDg4NTktNworICAgICAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAiSVNPLTIwMjItSlAiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgICBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LmZJbnB1dEJ5dGVzLCBkZXQuZklucHV0TGVuLCBlc2NhcGVTZXF1ZW5jZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyS1IgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfMjAyMiB7CisgICAgICAgIHByaXZhdGUgYnl0ZSBbXSBbXSBlc2NhcGVTZXF1ZW5jZXMgPSB7CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDN9ICAgCisgICAgICAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAiSVNPLTIwMjItS1IiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgICBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LmZJbnB1dEJ5dGVzLCBkZXQuZklucHV0TGVuLCBlc2NhcGVTZXF1ZW5jZXMpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfMjAyMkNOIGV4dGVuZHMgQ2hhcnNldFJlY29nXzIwMjIgeworICAgICAgICBwcml2YXRlIGJ5dGUgW10gW10gZXNjYXBlU2VxdWVuY2VzID0geworICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI5LCAweDQxfSwgICAvLyBHQiAyMzEyLTgwCisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDd9LCAgIC8vIENOUyAxMTY0My0xOTkyIFBsYW5lIDEKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQSwgMHg0OH0sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgMgorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI5LCAweDQ1fSwgICAvLyBJU08tSVItMTY1CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MkIsIDB4NDl9LCAgIC8vIENOUyAxMTY0My0xOTkyIFBsYW5lIDMKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0QX0sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgNAorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJCLCAweDRCfSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSA1CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MkIsIDB4NEN9LCAgIC8vIENOUyAxMTY0My0xOTkyIFBsYW5lIDYKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0RH0sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgNworICAgICAgICAgICAgICAgIHsweDFiLCAweDRlfSwgICAgICAgICAgICAgICAvLyBTUzIKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHg0Zn0sICAgICAgICAgICAgICAgLy8gU1MzCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAiSVNPLTIwMjItQ04iOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaW50ICAgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldC5mSW5wdXRCeXRlcywgZGV0LmZJbnB1dExlbiwgZXNjYXBlU2VxdWVuY2VzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19VVEY4LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVVRGOC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzYmVhZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVVRGOC5qYXZhCkBAIC0wLDAgKzEsOTkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBDaGFyc2V0IHJlY29nbml6ZXIgZm9yIFVURi04CisgKgorICogQGludGVybmFsCisgKi8KK2NsYXNzIENoYXJzZXRSZWNvZ19VVEY4IGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiAiVVRGLTgiOworICAgIH0KKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldFJlY29nbml6ZXIjbWF0Y2goY29tLmlibS5pY3UudGV4dC5DaGFyc2V0RGV0ZWN0b3IpCisgICAgICovCisgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgYm9vbGVhbiAgICAgaGFzQk9NID0gZmFsc2U7CisgICAgICAgIGludCAgICAgICAgIG51bVZhbGlkID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgbnVtSW52YWxpZCA9IDA7CisgICAgICAgIGJ5dGUgICAgICAgIGlucHV0W10gPSBkZXQuZlJhd0lucHV0OworICAgICAgICBpbnQgICAgICAgICBpOworICAgICAgICBpbnQgICAgICAgICB0cmFpbEJ5dGVzID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgY29uZmlkZW5jZTsKKyAgICAgICAgCisgICAgICAgIGlmIChkZXQuZlJhd0xlbmd0aCA+PSAzICYmIAorICAgICAgICAgICAgICAgIGlucHV0WzBdPT0weGVmICYmIGlucHV0WzFdPT0weGJiICYgaW5wdXRbMl09PTB4YmYpIHsKKyAgICAgICAgICAgIGhhc0JPTSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFNjYW4gZm9yIG11bHRpLWJ5dGUgc2VxdWVuY2VzCisgICAgICAgIGZvciAoaT0wOyBpPGRldC5mUmF3TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGludCBiID0gaW5wdXRbaV07CisgICAgICAgICAgICBpZiAoKGIgJiAweDgwKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7ICAgLy8gQVNDSUkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSGkgYml0IG9uIGNoYXIgZm91bmQuICBGaWd1cmUgb3V0IGhvdyBsb25nIHRoZSBzZXF1ZW5jZSBzaG91bGQgYmUKKyAgICAgICAgICAgIGlmICgoYiAmIDB4MGUwKSA9PSAweDBjMCkgeworICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAxOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGIgJiAweDBmMCkgPT0gMHgwZTApIHsKKyAgICAgICAgICAgICAgICB0cmFpbEJ5dGVzID0gMjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGIgJiAweDBmOCkgPT0gMHhmMCkgeworICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBudW1JbnZhbGlkKys7CisgICAgICAgICAgICAgICAgaWYgKG51bUludmFsaWQgPiA1KSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cmFpbEJ5dGVzID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHdlJ3ZlIGdvdCB0aGUgcmlnaHQgbnVtYmVyIG9mIHRyYWlsIGJ5dGVzIGluIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBpZiAoaT49ZGV0LmZSYXdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGIgPSBpbnB1dFtpXTsKKyAgICAgICAgICAgICAgICBpZiAoKGIgJiAweGMwKSAhPSAweDA4MCkgeworICAgICAgICAgICAgICAgICAgICBudW1JbnZhbGlkKys7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoLS10cmFpbEJ5dGVzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtVmFsaWQrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIENvb2sgdXAgc29tZSBzb3J0IG9mIGNvbmZpZGVuY2Ugc2NvcmUsIGJhc2VkIG9uIHByZXNlbnNlIG9mIGEgQk9NCisgICAgICAgIC8vICAgIGFuZCB0aGUgZXhpc3RlbmNlIG9mIHZhbGlkIGFuZC9vciBpbnZhbGlkIG11bHRpLWJ5dGUgc2VxdWVuY2VzLgorICAgICAgICBjb25maWRlbmNlID0gMDsKKyAgICAgICAgaWYgKGhhc0JPTSAmJiBudW1JbnZhbGlkPT0wKSB7CisgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOworICAgICAgICB9IGVsc2UgaWYgKGhhc0JPTSAmJiBudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSA4MDsKKyAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IDMgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gMCAmJiBudW1JbnZhbGlkID09IDApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSA4MDsKKyAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA9PSAwICYmIG51bUludmFsaWQgPT0gMCkgeworICAgICAgICAgICAgLy8gUGxhaW4gQVNDSUkuICAKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDsgICAgICAgICAgICAKKyAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgIC8vIFByb2JhYmx5IGNvcnJ1cHV0IHV0Zi04IGRhdGEuICBWYWxpZCBzZXF1ZW5jZXMgYXJlbid0IGxpa2VseSBieSBjaGFuY2UuCisgICAgICAgICAgICBjb25maWRlbmNlID0gMjU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbmZpZGVuY2U7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVW5pY29kZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX1VuaWNvZGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmU2MTY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX1VuaWNvZGUuamF2YQpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIG1hdGNoZXMgVVRGLTE2IGFuZCBVVEYtMzIsIGJvdGggYmlnLSBhbmQgbGl0dGxlLWVuZGlhbi4gVGhlCisgKiBCT00gd2lsbCBiZSB1c2VkIGlmIGl0IGlzIHByZXNlbnQuCisgKiAKKyAqIEBpbnRlcm5hbAorICovCithYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2dfVW5pY29kZSBleHRlbmRzIENoYXJzZXRSZWNvZ25pemVyIHsKKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldFJlY29nbml6ZXIjZ2V0TmFtZSgpCisgICAgICovCisgICAgYWJzdHJhY3QgU3RyaW5nIGdldE5hbWUoKTsKKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldFJlY29nbml6ZXIjbWF0Y2goY29tLmlibS5pY3UudGV4dC5DaGFyc2V0RGV0ZWN0b3IpCisgICAgICovCisgICAgYWJzdHJhY3QgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpOworICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzE2X0JFIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VuaWNvZGUKKyAgICB7CisgICAgICAgIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJVVEYtMTZCRSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICBieXRlW10gaW5wdXQgPSBkZXQuZlJhd0lucHV0OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoKGlucHV0WzBdICYgMHhGRikgPT0gMHhGRSAmJiAoaW5wdXRbMV0gJiAweEZGKSA9PSAweEZGKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVE9ETzogRG8gc29tZSBzdGF0YXN0aWNzIHRvIGNoZWNrIGZvciB1bnNpZ25lZCBVVEYtMTZCRQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19VVEZfMTZfTEUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfVW5pY29kZQorICAgIHsKKyAgICAgICAgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlVURi0xNkxFIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVbXSBpbnB1dCA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoaW5wdXRbMF0gJiAweEZGKSA9PSAweEZGICYmIChpbnB1dFsxXSAmIDB4RkYpID09IDB4RkUgJiYgKGlucHV0WzJdICE9IDB4MDAgfHwgaW5wdXRbM10gIT0gMHgwMCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUT0RPOiBEbyBzb21lIHN0YXRhc3RpY3MgdG8gY2hlY2sgZm9yIHVuc2lnbmVkIFVURi0xNkxFCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nX1VURl8zMiBleHRlbmRzIENoYXJzZXRSZWNvZ19Vbmljb2RlCisgICAgeworICAgICAgICBhYnN0cmFjdCBpbnQgZ2V0Q2hhcihieXRlW10gaW5wdXQsIGludCBpbmRleCk7CisgICAgICAgIAorICAgICAgICBhYnN0cmFjdCBTdHJpbmcgZ2V0TmFtZSgpOworICAgICAgICAKKyAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVbXSBpbnB1dCAgID0gZGV0LmZSYXdJbnB1dDsKKyAgICAgICAgICAgIGludCBsaW1pdCAgICAgID0gKGRldC5mUmF3TGVuZ3RoIC8gNCkgKiA0OworICAgICAgICAgICAgaW50IG51bVZhbGlkICAgPSAwOworICAgICAgICAgICAgaW50IG51bUludmFsaWQgPSAwOworICAgICAgICAgICAgYm9vbGVhbiBoYXNCT00gPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBjb25maWRlbmNlID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGdldENoYXIoaW5wdXQsIDApID09IDB4MDAwMEZFRkYpIHsKKyAgICAgICAgICAgICAgICBoYXNCT00gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gNCkgeworICAgICAgICAgICAgICAgIGludCBjaCA9IGdldENoYXIoaW5wdXQsIGkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChjaCA8IDAgfHwgY2ggPj0gMHgxMEZGRkYgfHwgKGNoID49IDB4RDgwMCAmJiBjaCA8PSAweERGRkYpKSB7CisgICAgICAgICAgICAgICAgICAgIG51bUludmFsaWQgKz0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBudW1WYWxpZCArPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDb29rIHVwIHNvbWUgc29ydCBvZiBjb25maWRlbmNlIHNjb3JlLCBiYXNlZCBvbiBwcmVzZW5zZSBvZiBhIEJPTQorICAgICAgICAgICAgLy8gICAgYW5kIHRoZSBleGlzdGVuY2Ugb2YgdmFsaWQgYW5kL29yIGludmFsaWQgbXVsdGktYnl0ZSBzZXF1ZW5jZXMuCisgICAgICAgICAgICBpZiAoaGFzQk9NICYmIG51bUludmFsaWQ9PTApIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNCT00gJiYgbnVtVmFsaWQgPiBudW1JbnZhbGlkKjEwKSB7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IDMgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDEwMDsgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtVmFsaWQgPiAwICYmIG51bUludmFsaWQgPT0gMCkgeworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSA4MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtVmFsaWQgPiBudW1JbnZhbGlkKjEwKSB7CisgICAgICAgICAgICAgICAgLy8gUHJvYmFibHkgY29ycnVwdXQgVVRGLTMyQkUgZGF0YS4gIFZhbGlkIHNlcXVlbmNlcyBhcmVuJ3QgbGlrZWx5IGJ5IGNoYW5jZS4KKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMjU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjb25maWRlbmNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzMyX0JFIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VURl8zMgorICAgIHsKKyAgICAgICAgaW50IGdldENoYXIoYnl0ZVtdIGlucHV0LCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5wdXRbaW5kZXggKyAwXSAmIDB4RkYpIDw8IDI0IHwgKGlucHV0W2luZGV4ICsgMV0gJiAweEZGKSA8PCAxNiB8CisgICAgICAgICAgICAgICAgICAgKGlucHV0W2luZGV4ICsgMl0gJiAweEZGKSA8PCAgOCB8IChpbnB1dFtpbmRleCArIDNdICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJVVEYtMzJCRSI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX1VURl8zMl9MRSBleHRlbmRzIENoYXJzZXRSZWNvZ19VVEZfMzIKKyAgICB7CisgICAgICAgIGludCBnZXRDaGFyKGJ5dGVbXSBpbnB1dCwgaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKGlucHV0W2luZGV4ICsgM10gJiAweEZGKSA8PCAyNCB8IChpbnB1dFtpbmRleCArIDJdICYgMHhGRikgPDwgMTYgfAorICAgICAgICAgICAgICAgICAgIChpbnB1dFtpbmRleCArIDFdICYgMHhGRikgPDwgIDggfCAoaW5wdXRbaW5kZXggKyAwXSAmIDB4RkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiVVRGLTMyTEUiOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX21iY3MuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19tYmNzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYzZmMzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19tYmNzLmphdmEKQEAgLTAsMCArMSw1MzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworLyoqCisgKiBDaGFyc2V0UmVjb2duaXplciBpbXBsZW1lbmF0aW9uIGZvciBBc2lhbiAgLSBkb3VibGUgb3IgbXVsdGktYnl0ZSAtIGNoYXJzZXRzLgorICogICAgICAgICAgICAgICAgICAgTWF0Y2ggaXMgZGV0ZXJtaW5lZCBtb3N0bHkgYnkgdGhlIGlucHV0IGRhdGEgYWRoZXJpbmcgdG8gdGhlCisgKiAgICAgICAgICAgICAgICAgICBlbmNvZGluZyBzY2hlbWUgZm9yIHRoZSBjaGFyc2V0LCBhbmQsIG9wdGlvbmFsbHksCisgKiAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3ktb2Ytb2NjdXJlbmNlIG9mIGNoYXJhY3RlcnMuCisgKiA8cC8+CisgKiAgICAgICAgICAgICAgICAgICBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgc2luZ2xldG9ucywgb25lIHBlciBlbmNvZGluZworICogICAgICAgICAgICAgICAgICAgYmVpbmcgcmVjb2duaXplZC4gIFRoZXkgYXJlIGNyZWF0ZWQgaW4gdGhlIG1haW4KKyAqICAgICAgICAgICAgICAgICAgIENoYXJzZXREZXRlY3RvciBjbGFzcyBhbmQga2VwdCBpbiB0aGUgZ2xvYmFsIGxpc3Qgb2YgYXZhaWxhYmxlCisgKiAgICAgICAgICAgICAgICAgICBlbmNvZGluZ3MgdG8gYmUgY2hlY2tlZC4gIFRoZSBzcGVjaWZpYyBlbmNvZGluZyBiZWluZyByZWNvZ25pemVkCisgKiAgICAgICAgICAgICAgICAgICBpcyBkZXRlcm1pbmVkIGJ5IHN1YmNsYXNzLgorICogCisgKiBAaW50ZXJuYWwgICAgICAgICAgICAgICAgICAKKyAqLworYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nX21iY3MgZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgIC8qKgorICAgICAqIEdldCB0aGUgSUFOQSBuYW1lIG9mIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyc2V0IG5hbWUuCisgICAgICovCisgICAgYWJzdHJhY3QgU3RyaW5nICAgICAgZ2V0TmFtZSgpIDsKKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBtYXRjaCBvZiB0aGlzIGNoYXJzZXQgd2l0aCB0aGUgaW5wdXQgdGV4dCBkYXRhCisgICAgICogICAgICB3aGljaCBpcyBvYnRhaW5lZCB2aWEgdGhlIENoYXJzZXREZXRlY3RvciBvYmplY3QuCisgICAgICogCisgICAgICogQHBhcmFtIGRldCAgVGhlIENoYXJzZXREZXRlY3Rvciwgd2hpY2ggY29udGFpbnMgdGhlIGlucHV0IHRleHQKKyAgICAgKiAgICAgICAgICAgICB0byBiZSBjaGVja2VkIGZvciBiZWluZyBpbiB0aGlzIGNoYXJzZXQuCisgICAgICogQHJldHVybiAgICAgVHdvIHZhbHVlcyBwYWNrZWQgaW50byBvbmUgaW50ICAoRGFtbiBqYXZhLCBhbnlob3cpCisgICAgICogICAgICAgICAgICAgPGJyLz4KKyAgICAgKiAgICAgICAgICAgICBiaXRzIDAtNzogIHRoZSBtYXRjaCBjb25maWRlbmNlLCByYW5naW5nIGZyb20gMC0xMDAKKyAgICAgKiAgICAgICAgICAgICA8YnIvPgorICAgICAqICAgICAgICAgICAgIGJpdHMgOC0xNTogVGhlIG1hdGNoIHJlYXNvbiwgYW4gZW51bS1saWtlIHZhbHVlLgorICAgICAqLworICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0LCBpbnQgW10gY29tbW9uQ2hhcnMpIHsKKyAgICAgICAgaW50ICAgc2luZ2xlQnl0ZUNoYXJDb3VudCA9IDA7CisgICAgICAgIGludCAgIGRvdWJsZUJ5dGVDaGFyQ291bnQgPSAwOworICAgICAgICBpbnQgICBjb21tb25DaGFyQ291bnQgICAgID0gMDsKKyAgICAgICAgaW50ICAgYmFkQ2hhckNvdW50ICAgICAgICA9IDA7CisgICAgICAgIGludCAgIHRvdGFsQ2hhckNvdW50ICAgICAgPSAwOworICAgICAgICBpbnQgICBjb25maWRlbmNlICAgICAgICAgID0gMDsKKyAgICAgICAgaXRlcmF0ZWRDaGFyICAgaXRlciAgICAgICA9IG5ldyBpdGVyYXRlZENoYXIoKTsKKyAgICAgICAgCisgICAgICAgIGRldGVjdEJsb2NrOiB7CisgICAgICAgICAgICBmb3IgKGl0ZXIucmVzZXQoKTsgbmV4dENoYXIoaXRlciwgZGV0KTspIHsKKyAgICAgICAgICAgICAgICB0b3RhbENoYXJDb3VudCsrOworICAgICAgICAgICAgICAgIGlmIChpdGVyLmVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgIGJhZENoYXJDb3VudCsrOyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIuY2hhclZhbHVlIDw9IDB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZUJ5dGVDaGFyQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZUJ5dGVDaGFyQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21tb25DaGFycyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5cy5iaW5hcnlTZWFyY2goY29tbW9uQ2hhcnMsIGl0ZXIuY2hhclZhbHVlKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbkNoYXJDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYmFkQ2hhckNvdW50ID49IDIgJiYgYmFkQ2hhckNvdW50KjUgPj0gZG91YmxlQnl0ZUNoYXJDb3VudCkgeworICAgICAgICAgICAgICAgICAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUgYnl0ZSBkYXRhIGlzIG5vdCBtYXRjaGluZyB0aGUgZW5jb2Rpbmcgc2NoZW1lLgorICAgICAgICAgICAgICAgICAgICBicmVhayBkZXRlY3RCbG9jazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkb3VibGVCeXRlQ2hhckNvdW50IDw9IDEwICYmIGJhZENoYXJDb3VudD09IDApIHsKKyAgICAgICAgICAgICAgICAvLyBOb3QgbWFueSBtdWx0aS1ieXRlIGNoYXJzLgorICAgICAgICAgICAgICAgIC8vICAgQVNDSUkgb3IgSVNPIGZpbGU/ICBJdCdzIHByb2JhYmx5IG5vdCBvdXIgZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgLy8gICBidXQgaXMgbm90IGluY29tcGF0aWJsZSB3aXRoIG91ciBlbmNvZGluZywgc28gZG9uJ3QgZ2l2ZSBpdCBhIHplcm8uCisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDEwOworICAgICAgICAgICAgICAgIGJyZWFrIGRldGVjdEJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gIE5vIG1hdGNoIGlmIHRoZXJlIGFyZSB0b28gbWFueSBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgZml0IHRoZSBlbmNvZGluZyBzY2hlbWUuCisgICAgICAgICAgICAvLyAgICAoc2hvdWxkIHdlIGhhdmUgemVybyB0b2xlcmFuY2UgZm9yIHRoZXNlPykKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBpZiAoZG91YmxlQnl0ZUNoYXJDb3VudCA8IDIwKmJhZENoYXJDb3VudCkgeworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrIGRldGVjdEJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY29tbW9uQ2hhcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm8gc3RhdGlzdGljcyBvbiBmcmVxdWVudGx5IG9jY3VyaW5nIGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgLy8gIEFzc2VzcyBjb25maWRlbmNlIHB1cmVseSBvbiBoYXZpbmcgYSByZWFzb25hYmxlIG51bWJlciBvZgorICAgICAgICAgICAgICAgIC8vICBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgKHRoZSBtb3JlIHRoZSBiZXR0ZXIKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMzAgKyBkb3VibGVCeXRlQ2hhckNvdW50IC0gMjAqYmFkQ2hhckNvdW50OworICAgICAgICAgICAgICAgIGlmIChjb25maWRlbmNlID4gMTAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gRnJlcXVlbmN5IG9mIG9jY3VyZW5jZSBzdGF0aXN0aWNzIGV4aXN0LgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgZG91YmxlIG1heFZhbCA9IE1hdGgubG9nKChmbG9hdClkb3VibGVCeXRlQ2hhckNvdW50IC8gNCk7CisgICAgICAgICAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0gOTAuMCAvIG1heFZhbDsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gKGludCkoTWF0aC5sb2coY29tbW9uQ2hhckNvdW50KzEpICogc2NhbGVGYWN0b3IgKyAxMCk7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IE1hdGgubWluKGNvbmZpZGVuY2UsIDEwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAvLyBlbmQgb2YgZGV0ZWN0QmxvY2s6CisgICAgICAgIAorICAgICAgICByZXR1cm4gY29uZmlkZW5jZTsKKyAgICB9CisgICAgCisgICAgIC8vICJDaGFyYWN0ZXIiICBpdGVyYXRlZCBjaGFyYWN0ZXIgY2xhc3MuCisgICAgIC8vICAgIFJlY29nbml6ZXJzIGZvciBzcGVjaWZpYyBtYmNzIGVuY29kaW5ncyBtYWtlIHRoZWlyICJjaGFyYWN0ZXJzIiBhdmFpbGFibGUKKyAgICAgLy8gICAgYnkgcHJvdmlkaW5nIGEgbmV4dENoYXIoKSBmdW5jdGlvbiB0aGF0IGZpbGxzIGluIGFuIGluc3RhbmNlIG9mIGl0ZXJhdGVkQ2hhcgorICAgICAvLyAgICB3aXRoIHRoZSBuZXh0IGNoYXIgZnJvbSB0aGUgaW5wdXQuCisgICAgIC8vICAgIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXJzIGFyZSBub3QgY29udmVydGVkIHRvIFVuaWNvZGUsIGJ1dCByZW1haW4gYXMgdGhlIHJhdworICAgICAvLyAgICBieXRlcyAoY29uY2F0ZW5hdGVkIGludG8gYW4gaW50KSBmcm9tIHRoZSBjb2RlcGFnZSBkYXRhLgorICAgICAvLworICAgICAvLyAgRm9yIEFzaWFuIGNoYXJzZXRzLCB1c2UgdGhlIHJhdyBpbnB1dCByYXRoZXIgdGhhbiB0aGUgaW5wdXQgdGhhdCBoYXMgYmVlbgorICAgICAvLyAgIHN0cmlwcGVkIG9mIG1hcmt1cC4gIERldGVjdGlvbiBvbmx5IGNvbnNpZGVycyBtdWx0aS1ieXRlIGNoYXJzLCBlZmZlY3RpdmVseQorICAgICAvLyAgIHN0cmlwcGluZyBtYXJrdXAgYW55d2F5LCBhbmQgZG91YmxlIGJ5dGUgY2hhcnMgZG8gb2NjdXIgaW4gbWFya3VwIHRvby4KKyAgICAgLy8KKyAgICAgc3RhdGljIGNsYXNzIGl0ZXJhdGVkQ2hhciB7CisgICAgICAgICBpbnQgICAgICAgICAgICAgY2hhclZhbHVlID0gMDsgICAgICAgICAgICAgLy8gMS00IGJ5dGVzIGZyb20gdGhlIHJhdyBpbnB1dCBkYXRhCisgICAgICAgICBpbnQgICAgICAgICAgICAgaW5kZXggICAgID0gMDsKKyAgICAgICAgIGludCAgICAgICAgICAgICBuZXh0SW5kZXggPSAwOworICAgICAgICAgYm9vbGVhbiAgICAgICAgIGVycm9yICAgICA9IGZhbHNlOworICAgICAgICAgYm9vbGVhbiAgICAgICAgIGRvbmUgICAgICA9IGZhbHNlOworICAgICAgICAgCisgICAgICAgICB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgIGNoYXJWYWx1ZSA9IDA7CisgICAgICAgICAgICAgaW5kZXggICAgID0gLTE7CisgICAgICAgICAgICAgbmV4dEluZGV4ID0gMDsKKyAgICAgICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgaW50IG5leHRCeXRlKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICBpZiAobmV4dEluZGV4ID49IGRldC5mUmF3TGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGludCBieXRlVmFsdWUgPSAoaW50KWRldC5mUmF3SW5wdXRbbmV4dEluZGV4KytdICYgMHgwMGZmOworICAgICAgICAgICAgIHJldHVybiBieXRlVmFsdWU7CisgICAgICAgICB9ICAgICAgIAorICAgICB9CisgICAgIAorICAgICAvKioKKyAgICAgICogR2V0IHRoZSBuZXh0IGNoYXJhY3RlciAoaG93ZXZlciBtYW55IGJ5dGVzIGl0IGlzKSBmcm9tIHRoZSBpbnB1dCBkYXRhCisgICAgICAqICAgIFN1YmNsYXNzZXMgZm9yIHNwZWNpZmljIGNoYXJzZXQgZW5jb2RpbmdzIG11c3QgaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24KKyAgICAgICogICAgdG8gZ2V0IGNoYXJhY3RlcnMgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiB0aGVpciBlbmNvZGluZyBzY2hlbWUuCisgICAgICAqIAorICAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBub3QgYSBtZXRob2Qgb2YgY2xhc3MgaXRlcmF0ZWRDaGFyIG9ubHkgYmVjYXVzZQorICAgICAgKiAgIHRoYXQgd291bGQgcmVxdWlyZSBhIGxvdCBvZiBleHRyYSBkZXJpdmVkIGNsYXNzZXMsIHdoaWNoIGlzIGF3a3dhcmQuCisgICAgICAqIEBwYXJhbSBpdCAgVGhlIGl0ZXJhdGVkQ2hhciAic3RydWN0IiBpbnRvIHdoaWNoIHRoZSByZXR1cm5lZCBjaGFyIGlzIHBsYWNlZC4KKyAgICAgICogQHBhcmFtIGRldCBUaGUgY2hhcnNldCBkZXRlY3Rvciwgd2hpY2ggaXMgbmVlZGVkIHRvIGdldCBhdCB0aGUgaW5wdXQgYnl0ZSBkYXRhCisgICAgICAqICAgICAgICAgICAgYmVpbmcgaXRlcmF0ZWQgb3Zlci4KKyAgICAgICogQHJldHVybiAgICBUcnVlIGlmIGEgY2hhcmFjdGVyIHdhcyByZXR1cm5lZCwgZmFsc2UgYXQgZW5kIG9mIGlucHV0LgorICAgICAgKi8KKyAgICAgYWJzdHJhY3QgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQsIENoYXJzZXREZXRlY3RvciBkZXQpOworICAgICAKKworCisgICAgIAorICAgICAKKyAgICAgLyoqCisgICAgICAqICAgU2hpZnQtSklTIGNoYXJzZXQgcmVjb2duaXplci4gICAKKyAgICAgICoKKyAgICAgICovCisgICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfc2ppcyBleHRlbmRzIENoYXJzZXRSZWNvZ19tYmNzIHsKKyAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAvLyBUT0RPOiAgVGhpcyBzZXQgb2YgZGF0YSBjb21lcyBmcm9tIHRoZSBjaGFyYWN0ZXIgZnJlcXVlbmN5LQorICAgICAgICAgICAgIC8vICAgICAgICBvZi1vY2N1cmVuY2UgYW5hbHlzaXMgdG9vbC4gIFRoZSBkYXRhIG5lZWRzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICB7MHg4MTQwLCAweDgxNDEsIDB4ODE0MiwgMHg4MTQ1LCAweDgxNWIsIDB4ODE2OSwgMHg4MTZhLCAweDgxNzUsIDB4ODE3NiwgMHg4MmEwLCAKKyAgICAgICAgICAgICAweDgyYTIsIDB4ODJhNCwgMHg4MmE5LCAweDgyYWEsIDB4ODJhYiwgMHg4MmFkLCAweDgyYWYsIDB4ODJiMSwgMHg4MmIzLCAweDgyYjUsIAorICAgICAgICAgICAgIDB4ODJiNywgMHg4MmJkLCAweDgyYmUsIDB4ODJjMSwgMHg4MmM0LCAweDgyYzUsIDB4ODJjNiwgMHg4MmM4LCAweDgyYzksIDB4ODJjYywgCisgICAgICAgICAgICAgMHg4MmNkLCAweDgyZGMsIDB4ODJlMCwgMHg4MmU3LCAweDgyZTgsIDB4ODJlOSwgMHg4MmVhLCAweDgyZjAsIDB4ODJmMSwgMHg4MzQxLCAKKyAgICAgICAgICAgICAweDgzNDMsIDB4ODM0ZSwgMHg4MzRmLCAweDgzNTgsIDB4ODM1ZSwgMHg4MzYyLCAweDgzNjcsIDB4ODM3NSwgMHg4Mzc2LCAweDgzODksIAorICAgICAgICAgICAgIDB4ODM4YSwgMHg4MzhiLCAweDgzOGQsIDB4ODM5MywgMHg4ZTk2LCAweDkzZmEsIDB4OTVhYX07CisgICAgICAgICAKKyAgICAgICAgIGJvb2xlYW4gbmV4dENoYXIoaXRlcmF0ZWRDaGFyIGl0LCBDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgaXQuaW5kZXggPSBpdC5uZXh0SW5kZXg7CisgICAgICAgICAgICAgaXQuZXJyb3IgPSBmYWxzZTsKKyAgICAgICAgICAgICBpbnQgZmlyc3RCeXRlOworICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IGl0LmNoYXJWYWx1ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDw9IDB4N2YgfHwgKGZpcnN0Qnl0ZT4weGEwICYmIGZpcnN0Qnl0ZTw9MHhkZikpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIGludCBzZWNvbmRCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDApICB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChmaXJzdEJ5dGUgPDwgOCkgfCBzZWNvbmRCeXRlOworICAgICAgICAgICAgIGlmICghICgoc2Vjb25kQnl0ZT49MHg0MCAmJiBzZWNvbmRCeXRlPD0weDdmKSB8fCAoc2Vjb25kQnl0ZT49MHg4MCAmJiBzZWNvbmRCeXRlPD0weGZmKSkpIHsKKyAgICAgICAgICAgICAgICAgLy8gSWxsZWdhbCBzZWNvbmQgYnl0ZSB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBjb21tb25DaGFycyk7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgIHJldHVybiAiU2hpZnRfSklTIjsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgICB7CisgICAgICAgICAgICAgcmV0dXJuICJqYSI7CisgICAgICAgICB9CisKKyAgICAgICAgIAorICAgICB9CisgICAgIAorICAgICAKKyAgICAgLyoqCisgICAgICAqICAgQmlnNSBjaGFyc2V0IHJlY29nbml6ZXIuICAgCisgICAgICAqCisgICAgICAqLworICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX2JpZzUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfbWJjcyB7CisgICAgICAgICBzdGF0aWMgaW50IFtdIGNvbW1vbkNoYXJzID0gCisgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAvLyAgICAgICAgb2Ytb2NjdXJlbmNlIGFuYWx5c2lzIHRvb2wuICBUaGUgZGF0YSBuZWVkcyB0byBiZSBtb3ZlZAorICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIGEgcmVzb3VyY2UgYW5kIGxvYWRlZCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgezB4YTE0MCwgMHhhMTQxLCAweGExNDIsIDB4YTE0MywgMHhhMTQ3LCAweGExNDksIDB4YTE3NSwgMHhhMTc2LCAweGE0NDAsIDB4YTQ0NiwgCisgICAgICAgICAgICAgMHhhNDQ3LCAweGE0NDgsIDB4YTQ1MSwgMHhhNDU0LCAweGE0NTcsIDB4YTQ2NCwgMHhhNDZhLCAweGE0NmMsIDB4YTQ3NywgMHhhNGEzLCAKKyAgICAgICAgICAgICAweGE0YTQsIDB4YTRhNywgMHhhNGMxLCAweGE0Y2UsIDB4YTRkMSwgMHhhNGRmLCAweGE0ZTgsIDB4YTRmZCwgMHhhNTQwLCAweGE1NDgsIAorICAgICAgICAgICAgIDB4YTU1OCwgMHhhNTY5LCAweGE1Y2QsIDB4YTVlNywgMHhhNjU3LCAweGE2NjEsIDB4YTY2MiwgMHhhNjY4LCAweGE2NzAsIDB4YTZhOCwgCisgICAgICAgICAgICAgMHhhNmIzLCAweGE2YjksIDB4YTZkMywgMHhhNmRiLCAweGE2ZTYsIDB4YTZmMiwgMHhhNzQwLCAweGE3NTEsIDB4YTc1OSwgMHhhN2RhLCAKKyAgICAgICAgICAgICAweGE4YTMsIDB4YThhNSwgMHhhOGFkLCAweGE4ZDEsIDB4YThkMywgMHhhOGU0LCAweGE4ZmMsIDB4YTljMCwgMHhhOWQyLCAweGE5ZjMsIAorICAgICAgICAgICAgIDB4YWE2YiwgMHhhYWJhLCAweGFhYmUsIDB4YWFjYywgMHhhYWZjLCAweGFjNDcsIDB4YWM0ZiwgMHhhY2IwLCAweGFjZDIsIDB4YWQ1OSwgCisgICAgICAgICAgICAgMHhhZWM5LCAweGFmZTAsIDB4YjBlYSwgMHhiMTZmLCAweGIyYjMsIDB4YjJjNCwgMHhiMzZmLCAweGI0NGMsIDB4YjQ0ZSwgMHhiNTRjLCAKKyAgICAgICAgICAgICAweGI1YTUsIDB4YjViZCwgMHhiNWQwLCAweGI1ZDgsIDB4YjY3MSwgMHhiN2VkLCAweGI4NjcsIDB4Yjk0NCwgMHhiYWQ4LCAweGJiNDQsIAorICAgICAgICAgICAgIDB4YmJhMSwgMHhiZGQxLCAweGMyYzQsIDB4YzNiOSwgMHhjNDQwLCAweGM0NWZ9OworICAgICAgICAgIAorICAgICAgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQsIENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICBpdC5pbmRleCA9IGl0Lm5leHRJbmRleDsKKyAgICAgICAgICAgICBpdC5lcnJvciA9IGZhbHNlOworICAgICAgICAgICAgIGludCBmaXJzdEJ5dGU7CisgICAgICAgICAgICAgZmlyc3RCeXRlID0gaXQuY2hhclZhbHVlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg3ZiB8fCBmaXJzdEJ5dGU9PTB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGJ5dGUgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgaW50IHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgMCkgIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisKKyAgICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZSA8IDB4NDAgfHwKKyAgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSA9PTB4N2YgfHwKKyAgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSA9PSAweGZmKSB7CisgICAgICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIGNvbW1vbkNoYXJzKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICAgcmV0dXJuICJCaWc1IjsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgCisgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXR1cm4gInpoIjsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICAKKyAgICAgCisgICAgIC8qKgorICAgICAgKiAgIEVVQyBjaGFyc2V0IHJlY29nbml6ZXJzLiAgT25lIGFic3RyYWN0IGNsYXNzIHRoYXQgcHJvdmlkZXMgdGhlIGNvbW1vbiBmdW5jdGlvbgorICAgICAgKiAgICAgICAgICAgICBmb3IgZ2V0dGluZyB0aGUgbmV4dCBjaGFyYWN0ZXIgYWNjb3JkaW5nIHRvIHRoZSBFVUMgZW5jb2Rpbmcgc2NoZW1lLAorICAgICAgKiAgICAgICAgICAgICBhbmQgbmVzdGVkIGRlcml2ZWQgY2xhc3NlcyBmb3IgRVVDX0tSLCBFVUNfSlAsIEVVQ19DTi4gICAKKyAgICAgICoKKyAgICAgICovCisgICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfZXVjIGV4dGVuZHMgQ2hhcnNldFJlY29nX21iY3MgeworICAgICAgICAgCisgICAgICAgICAvKgorICAgICAgICAgICogIChub24tSmF2YWRvYykKKyAgICAgICAgICAqICBHZXQgdGhlIG5leHQgY2hhcmFjdGVyIHZhbHVlIGZvciBFVUMgYmFzZWQgZW5jb2RpbmdzLgorICAgICAgICAgICogIENoYXJhY3RlciAidmFsdWUiIGlzIHNpbXBseSB0aGUgcmF3IGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgKiAgICAgcGFja2VkIGludG8gYW4gaW50LgorICAgICAgICAgICovCisgICAgICAgICBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGl0LmluZGV4ID0gaXQubmV4dEluZGV4OworICAgICAgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgICAgICAgaW50IGZpcnN0Qnl0ZSAgPSAwOworICAgICAgICAgICAgIGludCBzZWNvbmRCeXRlID0gMDsKKyAgICAgICAgICAgICBpbnQgdGhpcmRCeXRlICA9IDA7CisgICAgICAgICAgICAgaW50IGZvdXJ0aEJ5dGUgPSAwOworICAgICAgICAgICAgIAorICAgICAgICAgICAgIGJ1aWxkQ2hhcjogeworICAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBpdC5jaGFyVmFsdWUgPSBpdC5uZXh0Qnl0ZShkZXQpOyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBSYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIGlucHV0IGRhdGEKKyAgICAgICAgICAgICAgICAgICAgIGl0LmRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg4ZCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGJ5dGUgY2hhcgorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID49IDB4QTEgJiYgZmlyc3RCeXRlIDw9IDB4ZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBieXRlIENoYXIKKyAgICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgMHhhMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGUpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvZGUgU2V0IDIuCisgICAgICAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1KUCwgdG90YWwgY2hhciBzaXplIGlzIDIgYnl0ZXMsIG9ubHkgb25lIGJ5dGUgb2YgYWN0dWFsIGNoYXIgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1UVywgdG90YWwgY2hhciBzaXplIGlzIDQgYnl0ZXMsIHRocmVlIGJ5dGVzIGNvbnRyaWJ1dGUgdG8gY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hpY2ggd2UndmUgZ290LgorICAgICAgICAgICAgICAgICAgICAgLy8gVHJlYXQgaXQgbGlrZSBFVUMtSlAuICBJZiB0aGUgZGF0YSByZWFsbHkgd2FzIEVVQy1UVywgdGhlIGZvbGxvd2luZyB0d28KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgYnl0ZXMgd2lsbCBsb29rIGxpa2UgYSB3ZWxsIGZvcm1lZCAyIGJ5dGUgY2hhci4gIAorICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPCAweGExKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGYpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvZGUgc2V0IDMuCisgICAgICAgICAgICAgICAgICAgICAvLyBUaHJlZSBieXRlIHRvdGFsIGNoYXIgc2l6ZSwgdHdvIGJ5dGVzIG9mIGFjdHVhbCBjaGFyIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICAgdGhpcmRCeXRlICAgID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgOCkgfCB0aGlyZEJ5dGU7CisgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcmRCeXRlIDwgMHhhMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgcmV0dXJuIChpdC5kb25lID09IGZhbHNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLyoqCisgICAgICAgICAgKiBUaGUgY2hhcnNldCByZWNvZ25pemUgZm9yIEVVQy1KUC4gIEEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MKKyAgICAgICAgICAqICAgIGlzIGNyZWF0ZWQgYW5kIGtlcHQgYnkgdGhlIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3IgY2xhc3MKKyAgICAgICAgICAqLworICAgICAgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19ldWNfanAgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfZXVjIHsKKyAgICAgICAgICAgICBzdGF0aWMgaW50IFtdIGNvbW1vbkNoYXJzID0gCisgICAgICAgICAgICAgICAgIC8vIFRPRE86ICBUaGlzIHNldCBvZiBkYXRhIGNvbWVzIGZyb20gdGhlIGNoYXJhY3RlciBmcmVxdWVuY3ktCisgICAgICAgICAgICAgICAgIC8vICAgICAgICBvZi1vY2N1cmVuY2UgYW5hbHlzaXMgdG9vbC4gIFRoZSBkYXRhIG5lZWRzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIGEgcmVzb3VyY2UgYW5kIGxvYWRlZCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgICAgIHsweGExYTEsIDB4YTFhMiwgMHhhMWEzLCAweGExYTYsIDB4YTFiYywgMHhhMWNhLCAweGExY2IsIDB4YTFkNiwgMHhhMWQ3LCAweGE0YTIsIAorICAgICAgICAgICAgICAgICAweGE0YTQsIDB4YTRhNiwgMHhhNGE4LCAweGE0YWEsIDB4YTRhYiwgMHhhNGFjLCAweGE0YWQsIDB4YTRhZiwgMHhhNGIxLCAweGE0YjMsIAorICAgICAgICAgICAgICAgICAweGE0YjUsIDB4YTRiNywgMHhhNGI5LCAweGE0YmIsIDB4YTRiZCwgMHhhNGJmLCAweGE0YzAsIDB4YTRjMSwgMHhhNGMzLCAweGE0YzQsIAorICAgICAgICAgICAgICAgICAweGE0YzYsIDB4YTRjNywgMHhhNGM4LCAweGE0YzksIDB4YTRjYSwgMHhhNGNiLCAweGE0Y2UsIDB4YTRjZiwgMHhhNGQwLCAweGE0ZGUsIAorICAgICAgICAgICAgICAgICAweGE0ZGYsIDB4YTRlMSwgMHhhNGUyLCAweGE0ZTQsIDB4YTRlOCwgMHhhNGU5LCAweGE0ZWEsIDB4YTRlYiwgMHhhNGVjLCAweGE0ZWYsIAorICAgICAgICAgICAgICAgICAweGE0ZjIsIDB4YTRmMywgMHhhNWEyLCAweGE1YTMsIDB4YTVhNCwgMHhhNWE2LCAweGE1YTcsIDB4YTVhYSwgMHhhNWFkLCAweGE1YWYsIAorICAgICAgICAgICAgICAgICAweGE1YjAsIDB4YTViMywgMHhhNWI1LCAweGE1YjcsIDB4YTViOCwgMHhhNWI5LCAweGE1YmYsIDB4YTVjMywgMHhhNWM2LCAweGE1YzcsIAorICAgICAgICAgICAgICAgICAweGE1YzgsIDB4YTVjOSwgMHhhNWNiLCAweGE1ZDAsIDB4YTVkNSwgMHhhNWQ2LCAweGE1ZDcsIDB4YTVkZSwgMHhhNWUwLCAweGE1ZTEsIAorICAgICAgICAgICAgICAgICAweGE1ZTUsIDB4YTVlOSwgMHhhNWVhLCAweGE1ZWIsIDB4YTVlYywgMHhhNWVkLCAweGE1ZjMsIDB4YjhhOSwgMHhiOWQ0LCAweGJhZWUsIAorICAgICAgICAgICAgICAgICAweGJiYzgsIDB4YmVmMCwgMHhiZmI3LCAweGM0ZWEsIDB4YzZmYywgMHhjN2JkLCAweGNhYjgsIDB4Y2FmMywgMHhjYmRjLCAweGNkZDF9OyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuICJFVUMtSlAiOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBjb21tb25DaGFycyk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuICJqYSI7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvKioKKyAgICAgICAgICAqIFRoZSBjaGFyc2V0IHJlY29nbml6ZSBmb3IgRVVDLUtSLiAgQSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcworICAgICAgICAgICogICAgaXMgY3JlYXRlZCBhbmQga2VwdCBieSB0aGUgcHVibGljIENoYXJzZXREZXRlY3RvciBjbGFzcworICAgICAgICAgICovCisgICAgICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX2V1Y19rciBleHRlbmRzIENoYXJzZXRSZWNvZ19ldWMgeworICAgICAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIG9mLW9jY3VyZW5jZSBhbmFseXNpcyB0b29sLiAgVGhlIGRhdGEgbmVlZHMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICAgICAgezB4YjBhMSwgMHhiMGIzLCAweGIwYzUsIDB4YjBjZCwgMHhiMGQ0LCAweGIwZTYsIDB4YjBlZCwgMHhiMGY4LCAweGIwZmEsIDB4YjBmYywgCisgICAgICAgICAgICAgICAgIDB4YjFiOCwgMHhiMWI5LCAweGIxYzcsIDB4YjFkNywgMHhiMWUyLCAweGIzYWEsIDB4YjNiYiwgMHhiNGMyLCAweGI0Y2YsIDB4YjRkOSwgCisgICAgICAgICAgICAgICAgIDB4YjRlYiwgMHhiNWE1LCAweGI1YjUsIDB4YjViZiwgMHhiNWM3LCAweGI1ZTksIDB4YjZmMywgMHhiN2FmLCAweGI3YzIsIDB4YjdjZSwgCisgICAgICAgICAgICAgICAgIDB4YjhhNiwgMHhiOGFlLCAweGI4YjYsIDB4YjhiOCwgMHhiOGJiLCAweGI4ZTksIDB4YjlhYiwgMHhiOWFlLCAweGI5Y2MsIDB4YjljZSwgCisgICAgICAgICAgICAgICAgIDB4YjlmZCwgMHhiYWI4LCAweGJhY2UsIDB4YmFkMCwgMHhiYWYxLCAweGJiZTcsIDB4YmJmMywgMHhiYmZkLCAweGJjYWQsIDB4YmNiYSwgCisgICAgICAgICAgICAgICAgIDB4YmNkMiwgMHhiY2Y2LCAweGJkYmEsIDB4YmRjMCwgMHhiZGMzLCAweGJkYzUsIDB4YmVjNiwgMHhiZWM4LCAweGJlZGYsIDB4YmVlZSwgCisgICAgICAgICAgICAgICAgIDB4YmVmOCwgMHhiZWZhLCAweGJmYTEsIDB4YmZhOSwgMHhiZmMwLCAweGJmZTQsIDB4YmZlYiwgMHhiZmVjLCAweGJmZjgsIDB4YzBhNywgCisgICAgICAgICAgICAgICAgIDB4YzBhZiwgMHhjMGI4LCAweGMwYmEsIDB4YzBiYiwgMHhjMGJkLCAweGMwYzcsIDB4YzBjYywgMHhjMGNlLCAweGMwY2YsIDB4YzBkNiwgCisgICAgICAgICAgICAgICAgIDB4YzBkYSwgMHhjMGU1LCAweGMwZmIsIDB4YzBmYywgMHhjMWE0LCAweGMxYTYsIDB4YzFiNiwgMHhjMWQ2LCAweGMxZGYsIDB4YzFmNiwgCisgICAgICAgICAgICAgICAgIDB4YzFmOCwgMHhjNGExLCAweGM1Y2QsIDB4YzZhZSwgMHhjN2NmLCAweGM3ZDEsIDB4YzdkMiwgMHhjN2Q4LCAweGM3ZTUsIDB4YzhhZH07CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiAiRVVDLUtSIjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgY29tbW9uQ2hhcnMpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHJldHVybiAia28iOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorICAgICAKKyAgICAgLyoqCisgICAgICAqIAorICAgICAgKiAgIEdCLTE4MDMwIHJlY29nbml6ZXIuIFVzZXMgc2ltcGxpZmllZCBDaGluZXNlIHN0YXRpc3RpY3MuICAgCisgICAgICAqCisgICAgICAqLworICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX2diXzE4MDMwIGV4dGVuZHMgQ2hhcnNldFJlY29nX21iY3MgeworICAgICAgICAgCisgICAgICAgICAvKgorICAgICAgICAgICogIChub24tSmF2YWRvYykKKyAgICAgICAgICAqICBHZXQgdGhlIG5leHQgY2hhcmFjdGVyIHZhbHVlIGZvciBFVUMgYmFzZWQgZW5jb2RpbmdzLgorICAgICAgICAgICogIENoYXJhY3RlciAidmFsdWUiIGlzIHNpbXBseSB0aGUgcmF3IGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgKiAgICAgcGFja2VkIGludG8gYW4gaW50LgorICAgICAgICAgICovCisgICAgICAgICBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGl0LmluZGV4ID0gaXQubmV4dEluZGV4OworICAgICAgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgICAgICAgaW50IGZpcnN0Qnl0ZSAgPSAwOworICAgICAgICAgICAgIGludCBzZWNvbmRCeXRlID0gMDsKKyAgICAgICAgICAgICBpbnQgdGhpcmRCeXRlICA9IDA7CisgICAgICAgICAgICAgaW50IGZvdXJ0aEJ5dGUgPSAwOworICAgICAgICAgICAgIAorICAgICAgICAgICAgIGJ1aWxkQ2hhcjogeworICAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBpdC5jaGFyVmFsdWUgPSBpdC5uZXh0Qnl0ZShkZXQpOyAKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBSYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIGlucHV0IGRhdGEKKyAgICAgICAgICAgICAgICAgICAgIGl0LmRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDw9IDB4ODApIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgOCkgfCBzZWNvbmRCeXRlOworICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA+PSAweDgxICYmIGZpcnN0Qnl0ZSA8PSAweEZFKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBUd28gYnl0ZSBDaGFyCisgICAgICAgICAgICAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgPj0gMHg0MCAmJiBzZWNvbmRCeXRlIDw9IDB4N0UpIHx8IChzZWNvbmRCeXRlID49ODAgJiYgc2Vjb25kQnl0ZSA8PTB4RkUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAvLyBGb3VyIGJ5dGUgY2hhcgorICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPj0gMHgzMCAmJiBzZWNvbmRCeXRlIDw9IDB4MzkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGlyZEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlyZEJ5dGUgPj0gMHg4MSAmJiB0aGlyZEJ5dGUgPD0gMHhGRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VydGhCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VydGhCeXRlID49IDB4MzAgJiYgZm91cnRoQnl0ZSA8PSAweDM5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5jaGFyVmFsdWUgPSAoaXQuY2hhclZhbHVlIDw8IDE2KSB8ICh0aGlyZEJ5dGUgPDwgOCkgfCBmb3VydGhCeXRlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICBpdC5lcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIHJldHVybiAoaXQuZG9uZSA9PSBmYWxzZSk7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAvLyBUT0RPOiAgVGhpcyBzZXQgb2YgZGF0YSBjb21lcyBmcm9tIHRoZSBjaGFyYWN0ZXIgZnJlcXVlbmN5LQorICAgICAgICAgICAgIC8vICAgICAgICBvZi1vY2N1cmVuY2UgYW5hbHlzaXMgdG9vbC4gIFRoZSBkYXRhIG5lZWRzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICB7MHhhMWExLCAweGExYTIsIDB4YTFhMywgMHhhMWE0LCAweGExYjAsIDB4YTFiMSwgMHhhMWYxLCAweGExZjMsIDB4YTNhMSwgMHhhM2FjLCAKKyAgICAgICAgICAgICAweGEzYmEsIDB4YjFhOCwgMHhiMWI4LCAweGIxYmUsIDB4YjJiYiwgMHhiM2M5LCAweGIzZjYsIDB4YjRmMywgMHhiNWJkLCAweGI1YzQsIAorICAgICAgICAgICAgIDB4YjVlMywgMHhiNmFmLCAweGI2ZDQsIDB4YjZlMCwgMHhiN2EyLCAweGI3YTgsIDB4YjdiZCwgMHhiN2Q2LCAweGI3ZGQsIDB4YjhiNCwgCisgICAgICAgICAgICAgMHhiOGRmLCAweGI4ZjYsIDB4YjlhYiwgMHhiOWM5LCAweGI5ZDgsIDB4YjlmYSwgMHhiOWZkLCAweGJhY2QsIDB4YmJhNywgMHhiYmQ2LCAKKyAgICAgICAgICAgICAweGJiZTEsIDB4YmJmYSwgMHhiY2JjLCAweGJjZGIsIDB4YmNmZSwgMHhiZGNjLCAweGJlY2QsIDB4YmVkZCwgMHhiZmI0LCAweGJmYzYsIAorICAgICAgICAgICAgIDB4YmZjOSwgMHhjMGI0LCAweGMwZWQsIDB4YzFjYiwgMHhjMmRiLCAweGMzYzcsIDB4YzRkYywgMHhjNGVhLCAweGM1Y2MsIDB4YzZmNywgCisgICAgICAgICAgICAgMHhjN2Y4LCAweGM4YWIsIDB4YzhjYiwgMHhjOGQ1LCAweGM4ZTcsIDB4YzljZiwgMHhjOWZhLCAweGNhYjEsIDB4Y2FiNSwgMHhjYWM3LCAKKyAgICAgICAgICAgICAweGNhZDAsIDB4Y2FkNiwgMHhjYWY1LCAweGNhZmQsIDB4Y2NlYywgMHhjZGY4LCAweGNlYWEsIDB4Y2VjNCwgMHhjZWQyLCAweGNlZTUsIAorICAgICAgICAgICAgIDB4Y2ZiNSwgMHhjZmMyLCAweGNmZDYsIDB4ZDBjMiwgMHhkMGM1LCAweGQwZDAsIDB4ZDBkNCwgMHhkMWE3LCAweGQyYWEsIDB4ZDJiMiwgCisgICAgICAgICAgICAgMHhkMmI1LCAweGQyYmIsIDB4ZDJkNCwgMHhkM2MzLCAweGQzZDAsIDB4ZDNmZCwgMHhkNGMyLCAweGQ0ZGEsIDB4ZDVlMiwgMHhkNmQwfTsKKworICAgICAgICAgCisgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICByZXR1cm4gIkdCMTgwMzAiOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIGNvbW1vbkNoYXJzKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgICB7CisgICAgICAgICAgICAgcmV0dXJuICJ6aCI7CisgICAgICAgICB9CisgICAgIH0KKyAgICAgCisgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX3NiY3MuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19zYmNzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIzMGQ1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19zYmNzLmphdmEKQEAgLTAsMCArMSwxMDUzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICoKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIFRoaXMgY2xhc3MgcmVjb2duaXplcyBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MuIEJlY2F1c2UgdGhlIGVuY29kaW5nIHNjaGVtZSBpcyBzbworICogc2ltcGxlLCBsYW5ndWFnZSBzdGF0aXN0aWNzIGFyZSB1c2VkIHRvIGRvIHRoZSBtYXRjaGluZy4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ19zYmNzIGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNnZXROYW1lKCkKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgZ2V0TmFtZSgpOworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNtYXRjaChjb20uaWJtLmljdS50ZXh0LkNoYXJzZXREZXRlY3RvcikKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCk7CisgICAgCisgICAgc3RhdGljIGNsYXNzIE5HcmFtUGFyc2VyCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTl9HUkFNX1NJWkUgPSAzOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTl9HUkFNX01BU0sgPSAweEZGRkZGRjsKKworICAgICAgICBwcml2YXRlIGludCBieXRlSW5kZXggPSAwOworICAgICAgICBwcml2YXRlIGludCBuZ3JhbSA9IDA7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGludFtdIG5ncmFtTGlzdDsKKyAgICAgICAgcHJpdmF0ZSBieXRlW10gYnl0ZU1hcDsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IG5ncmFtQ291bnQ7CisgICAgICAgIHByaXZhdGUgaW50IGhpdENvdW50OworICAgICAgICAKKyAgICAgICAgcHVibGljIE5HcmFtUGFyc2VyKGludFtdIHRoZU5ncmFtTGlzdCwgYnl0ZVtdIHRoZUJ5dGVNYXApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ncmFtTGlzdCA9IHRoZU5ncmFtTGlzdDsKKyAgICAgICAgICAgIGJ5dGVNYXAgICA9IHRoZUJ5dGVNYXA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ncmFtID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmdyYW1Db3VudCA9IGhpdENvdW50ID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogQmluYXJ5IHNlYXJjaCBmb3IgdmFsdWUgaW4gdGFibGUsIHdoaWNoIG11c3QgaGF2ZSBleGFjdGx5IDY0IGVudHJpZXMuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnQgc2VhcmNoKGludFtdIHRhYmxlLCBpbnQgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDMyXSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDMyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyAxNl0gPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAxNjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgOF0gPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSA4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyA0XSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDJdIDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgMV0gPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXhdID4gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IHRhYmxlW2luZGV4XSAhPSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGxvb2t1cChpbnQgdGhpc05ncmFtKQorICAgICAgICB7CisgICAgICAgICAgICBuZ3JhbUNvdW50ICs9IDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWFyY2gobmdyYW1MaXN0LCB0aGlzTmdyYW0pID49IDApIHsKKyAgICAgICAgICAgICAgICBoaXRDb3VudCArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBhZGRCeXRlKGludCBiKQorICAgICAgICB7CisgICAgICAgICAgICBuZ3JhbSA9ICgobmdyYW0gPDwgOCkgKyAoYiAmIDB4RkYpKSAmIE5fR1JBTV9NQVNLOworICAgICAgICAgICAgbG9va3VwKG5ncmFtKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgbmV4dEJ5dGUoQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGJ5dGVJbmRleCA+PSBkZXQuZklucHV0TGVuKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZGV0LmZJbnB1dEJ5dGVzW2J5dGVJbmRleCsrXSAmIDB4RkY7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgcGFyc2UoQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGI7CisgICAgICAgICAgICBib29sZWFuIGlnbm9yZVNwYWNlID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICgoYiA9IG5leHRCeXRlKGRldCkpID49IDApIHsKKyAgICAgICAgICAgICAgICBieXRlIG1iID0gYnl0ZU1hcFtiXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiAweDIwIG1pZ2h0IG5vdCBiZSBhIHNwYWNlIGluIGFsbCBjaGFyYWN0ZXIgc2V0cy4uLgorICAgICAgICAgICAgICAgIGlmIChtYiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghKG1iID09IDB4MjAgJiYgaWdub3JlU3BhY2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRCeXRlKG1iKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZ25vcmVTcGFjZSA9IChtYiA9PSAweDIwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE86IElzIHRoaXMgT0s/IFRoZSBidWZmZXIgY291bGQgaGF2ZSBlbmRlZCBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZC4uLgorICAgICAgICAgICAgYWRkQnl0ZSgweDIwKTsKKworICAgICAgICAgICAgZG91YmxlIHJhd1BlcmNlbnQgPSAoZG91YmxlKSBoaXRDb3VudCAvIChkb3VibGUpIG5ncmFtQ291bnQ7CisgICAgICAgICAgICAKKy8vICAgICAgICAgICAgaWYgKHJhd1BlcmNlbnQgPD0gMi4wKSB7CisvLyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKy8vICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUT0RPIC0gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgdG8gdGFrZSBjYXJlIG9mIGEgY2FzZQorICAgICAgICAgICAgLy8gd2VyZSB3ZSB3ZXJlIGdldHRpbmcgYSBjb25maWRlbmNlIG9mIDEzNS4uLgorICAgICAgICAgICAgaWYgKHJhd1BlcmNlbnQgPiAwLjMzKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDk4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gKGludCkgKHJhd1BlcmNlbnQgKiAzMDAuMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaGF2ZUMxQnl0ZXMgPSBmYWxzZTsKKyAgICAKKyAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCwgaW50W10gbmdyYW1zLCAgYnl0ZVtdIGJ5dGVNYXApCisgICAgeworICAgICAgICBOR3JhbVBhcnNlciBwYXJzZXIgPSBuZXcgTkdyYW1QYXJzZXIobmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgCisgICAgICAgIGhhdmVDMUJ5dGVzID0gZGV0LmZDMUJ5dGVzOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZShkZXQpOworICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMSBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjUyIiA6ICJJU08tODg1OS0xIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV8xX2RhIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfMQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMDYxNjYsIDB4MjA2MTc0LCAweDIwNjQ2NSwgMHgyMDY1NkUsIDB4MjA2NTcyLCAweDIwNjY2RiwgMHgyMDY4NjEsIDB4MjA2OTIwLCAweDIwNkQ2NSwgMHgyMDZGNjcsIDB4MjA3MEU1LCAweDIwNzM2OSwgMHgyMDczNzQsIDB4MjA3NDY5LCAweDIwNzY2OSwgMHg2MTY2MjAsIAorICAgICAgICAgICAgMHg2MTZFMjAsIDB4NjE2RTY0LCAweDYxNzIyMCwgMHg2MTc0MjAsIDB4NjQ2NTIwLCAweDY0NjU2RSwgMHg2NDY1NzIsIDB4NjQ2NTc0LCAweDY1MjA3MywgMHg2NTY0MjAsIDB4NjU2NDY1LCAweDY1NkUyMCwgMHg2NTZFNjQsIDB4NjU3MjIwLCAweDY1NzI2NSwgMHg2NTczMjAsIAorICAgICAgICAgICAgMHg2NTc0MjAsIDB4NjY2RjcyLCAweDY3NjUyMCwgMHg2NzY1NkUsIDB4Njc2NTcyLCAweDY5Njc2NSwgMHg2OTZDMjAsIDB4Njk2RTY3LCAweDZCNjUyMCwgMHg2QjZCNjUsIDB4NkM2NTcyLCAweDZDNjk2NywgMHg2QzZDNjUsIDB4NkQ2NTY0LCAweDZFNjQ2NSwgMHg2RTY1MjAsIAorICAgICAgICAgICAgMHg2RTY3MjAsIDB4NkU2NzY1LCAweDZGNjcyMCwgMHg2RjZEMjAsIDB4NkY3MjIwLCAweDcwRTUyMCwgMHg3MjIwNjQsIDB4NzIyMDY1LCAweDcyMjA3MywgMHg3MjY1MjAsIDB4NzM3NDY1LCAweDc0MjA3MywgMHg3NDY1MjAsIDB4NzQ2NTcyLCAweDc0Njk2QywgMHg3NjY1NzIsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImRhIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZGUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE2RSwgMHgyMDYxNzUsIDB4MjA2MjY1LCAweDIwNjQ2MSwgMHgyMDY0NjUsIDB4MjA2NDY5LCAweDIwNjU2OSwgMHgyMDY3NjUsIDB4MjA2ODYxLCAweDIwNjk2RSwgMHgyMDZENjksIDB4MjA3MzYzLCAweDIwNzM2NSwgMHgyMDc1NkUsIDB4MjA3NjY1LCAweDIwNzY2RiwgCisgICAgICAgICAgICAweDIwNzc2NSwgMHgyMDdBNzUsIDB4NjI2NTcyLCAweDYzNjgyMCwgMHg2MzY4NjUsIDB4NjM2ODc0LCAweDY0NjE3MywgMHg2NDY1NkUsIDB4NjQ2NTcyLCAweDY0Njk2NSwgMHg2NTIwNjQsIDB4NjUyMDczLCAweDY1Njk2RSwgMHg2NTY5NzQsIDB4NjU2RTIwLCAweDY1NzIyMCwgCisgICAgICAgICAgICAweDY1NzMyMCwgMHg2NzY1NkUsIDB4Njg2NTZFLCAweDY4NzQyMCwgMHg2OTYzNjgsIDB4Njk2NTIwLCAweDY5NkUyMCwgMHg2OTZFNjUsIDB4Njk3NDIwLCAweDZDNjk2MywgMHg2QzZDNjUsIDB4NkUyMDYxLCAweDZFMjA2NCwgMHg2RTIwNzMsIDB4NkU2NDIwLCAweDZFNjQ2NSwgCisgICAgICAgICAgICAweDZFNjUyMCwgMHg2RTY3MjAsIDB4NkU2NzY1LCAweDZFNzQ2NSwgMHg3MjIwNjQsIDB4NzI2NDY1LCAweDcyNjU2OSwgMHg3MzYzNjgsIDB4NzM3NDY1LCAweDc0MjA2NCwgMHg3NDY1MjAsIDB4NzQ2NTZFLCAweDc0NjU3MiwgMHg3NTZFNjQsIDB4NzU2RTY3LCAweDc2NjU3MiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZGUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZW4gZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYxNkUsIDB4MjA2MjY1LCAweDIwNjM2RiwgMHgyMDY2NkYsIDB4MjA2ODYxLCAweDIwNjg2NSwgMHgyMDY5NkUsIDB4MjA2RDYxLCAweDIwNkY2NiwgMHgyMDcwNzIsIDB4MjA3MjY1LCAweDIwNzM2MSwgMHgyMDczNzQsIDB4MjA3NDY4LCAweDIwNzQ2RiwgCisgICAgICAgICAgICAweDIwNzc2OCwgMHg2MTY5NjQsIDB4NjE2QzIwLCAweDYxNkUyMCwgMHg2MTZFNjQsIDB4NjE3MzIwLCAweDYxNzQyMCwgMHg2MTc0NjUsIDB4NjE3NDY5LCAweDY0MjA2MSwgMHg2NDIwNzQsIDB4NjUyMDYxLCAweDY1MjA3MywgMHg2NTIwNzQsIDB4NjU2NDIwLCAweDY1NkU3NCwgCisgICAgICAgICAgICAweDY1NzIyMCwgMHg2NTczMjAsIDB4NjY2RjcyLCAweDY4NjE3NCwgMHg2ODY1MjAsIDB4Njg2NTcyLCAweDY5NjQyMCwgMHg2OTZFMjAsIDB4Njk2RTY3LCAweDY5NkY2RSwgMHg2OTczMjAsIDB4NkUyMDYxLCAweDZFMjA3NCwgMHg2RTY0MjAsIDB4NkU2NzIwLCAweDZFNzQyMCwgCisgICAgICAgICAgICAweDZGNjYyMCwgMHg2RjZFMjAsIDB4NkY3MjIwLCAweDcyNjUyMCwgMHg3MjczMjAsIDB4NzMyMDYxLCAweDczMjA3NCwgMHg3MzYxNjksIDB4NzM3NDIwLCAweDc0MjA3NCwgMHg3NDY1NzIsIDB4NzQ2ODYxLCAweDc0Njg2NSwgMHg3NDY5NkYsIDB4NzQ2RjIwLCAweDc0NzMyMCwgCisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZW4iOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZXMgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYzNjEsIDB4MjA2MzZGLCAweDIwNjQ2NSwgMHgyMDY1NkMsIDB4MjA2NTZFLCAweDIwNjU3MywgMHgyMDY5NkUsIDB4MjA2QzYxLCAweDIwNkM2RiwgMHgyMDcwNjEsIDB4MjA3MDZGLCAweDIwNzA3MiwgMHgyMDcxNzUsIDB4MjA3MjY1LCAweDIwNzM2NSwgCisgICAgICAgICAgICAweDIwNzU2RSwgMHgyMDc5MjAsIDB4NjEyMDYzLCAweDYxMjA2NCwgMHg2MTIwNjUsIDB4NjEyMDZDLCAweDYxMjA3MCwgMHg2MTYzNjksIDB4NjE2NDZGLCAweDYxNkMyMCwgMHg2MTcyMjAsIDB4NjE3MzIwLCAweDYzNjlGMywgMHg2MzZGNkUsIDB4NjQ2NTIwLCAweDY0NjU2QywgCisgICAgICAgICAgICAweDY0NkYyMCwgMHg2NTIwNjQsIDB4NjUyMDY1LCAweDY1MjA2QywgMHg2NTZDMjAsIDB4NjU2RTIwLCAweDY1NkU3NCwgMHg2NTczMjAsIDB4NjU3Mzc0LCAweDY5NjU2RSwgMHg2OUYzNkUsIDB4NkM2MTIwLCAweDZDNkY3MywgMHg2RTIwNjUsIDB4NkU3NDY1LCAweDZGMjA2NCwgCisgICAgICAgICAgICAweDZGMjA2NSwgMHg2RjZFMjAsIDB4NkY3MjIwLCAweDZGNzMyMCwgMHg3MDYxNzIsIDB4NzE3NTY1LCAweDcyNjEyMCwgMHg3MjY1NzMsIDB4NzMyMDY0LCAweDczMjA2NSwgMHg3MzIwNzAsIDB4NzM2NTIwLCAweDc0NjUyMCwgMHg3NDZGMjAsIDB4NzU2NTIwLCAweEYzNkUyMCwgCisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZXMiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZnIgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE3NSwgMHgyMDYzNkYsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY0NzUsIDB4MjA2NTZFLCAweDIwNjU3NCwgMHgyMDZDNjEsIDB4MjA2QzY1LCAweDIwNzA2MSwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzE3NSwgMHgyMDczNjUsIDB4MjA3MzZGLCAweDIwNzU2RSwgCisgICAgICAgICAgICAweDIwRTAyMCwgMHg2MTZFNzQsIDB4NjE3NDY5LCAweDYzNjUyMCwgMHg2MzZGNkUsIDB4NjQ2NTIwLCAweDY0NjU3MywgMHg2NDc1MjAsIDB4NjUyMDYxLCAweDY1MjA2MywgMHg2NTIwNjQsIDB4NjUyMDY1LCAweDY1MjA2QywgMHg2NTIwNzAsIDB4NjUyMDczLCAweDY1NkUyMCwgCisgICAgICAgICAgICAweDY1NkU3NCwgMHg2NTcyMjAsIDB4NjU3MzIwLCAweDY1NzQyMCwgMHg2NTc1NzIsIDB4Njk2RjZFLCAweDY5NzMyMCwgMHg2OTc0MjAsIDB4NkM2MTIwLCAweDZDNjUyMCwgMHg2QzY1NzMsIDB4NkQ2NTZFLCAweDZFMjA2NCwgMHg2RTY1MjAsIDB4NkU3MzIwLCAweDZFNzQyMCwgCisgICAgICAgICAgICAweDZGNkUyMCwgMHg2RjZFNzQsIDB4NkY3NTcyLCAweDcxNzU2NSwgMHg3MjIwNkMsIDB4NzI2NTIwLCAweDczMjA2MSwgMHg3MzIwNjQsIDB4NzMyMDY1LCAweDczMjA2QywgMHg3MzIwNzAsIDB4NzQyMDY0LCAweDc0NjUyMCwgMHg3NDY5NkYsIDB4NzU2NTIwLCAweDc1NzIyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZnIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfaXQgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE2QywgMHgyMDYzNjgsIDB4MjA2MzZGLCAweDIwNjQ2NSwgMHgyMDY0NjksIDB4MjA2NTIwLCAweDIwNjk2QywgMHgyMDY5NkUsIDB4MjA2QzYxLCAweDIwNzA2NSwgMHgyMDcwNzIsIDB4MjA3NTZFLCAweDYxMjA2MywgMHg2MTIwNjQsIDB4NjEyMDcwLCAweDYxMjA3MywgCisgICAgICAgICAgICAweDYxNzQ2RiwgMHg2MzY4NjUsIDB4NjM2RjZFLCAweDY0NjU2QywgMHg2NDY5MjAsIDB4NjUyMDYxLCAweDY1MjA2MywgMHg2NTIwNjQsIDB4NjUyMDY5LCAweDY1MjA2QywgMHg2NTIwNzAsIDB4NjUyMDczLCAweDY1NkMyMCwgMHg2NTZDNkMsIDB4NjU2RTc0LCAweDY1NzIyMCwgCisgICAgICAgICAgICAweDY4NjUyMCwgMHg2OTIwNjEsIDB4NjkyMDYzLCAweDY5MjA2NCwgMHg2OTIwNzMsIDB4Njk2MTIwLCAweDY5NkMyMCwgMHg2OTZFMjAsIDB4Njk2RjZFLCAweDZDNjEyMCwgMHg2QzY1MjAsIDB4NkM2OTIwLCAweDZDNkM2MSwgMHg2RTY1MjAsIDB4NkU2OTIwLCAweDZFNkYyMCwgCisgICAgICAgICAgICAweDZFNzQ2NSwgMHg2RjIwNjEsIDB4NkYyMDY0LCAweDZGMjA2OSwgMHg2RjIwNzMsIDB4NkY2RTIwLCAweDZGNkU2NSwgMHg3MDY1NzIsIDB4NzI2MTIwLCAweDcyNjUyMCwgMHg3MzY5MjAsIDB4NzQ2MTIwLCAweDc0NjUyMCwgMHg3NDY5MjAsIDB4NzQ2RjIwLCAweDdBNjk2RiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiaXQiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfbmwgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE2QywgMHgyMDYyNjUsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY0NjksIDB4MjA2NTY1LCAweDIwNjU2RSwgMHgyMDY3NjUsIDB4MjA2ODY1LCAweDIwNjk2RSwgMHgyMDZENjEsIDB4MjA2RDY1LCAweDIwNkY3MCwgMHgyMDc0NjUsIDB4MjA3NjYxLCAweDIwNzY2NSwgCisgICAgICAgICAgICAweDIwNzY2RiwgMHgyMDc3NjUsIDB4MjA3QTY5LCAweDYxNjE2RSwgMHg2MTYxNzIsIDB4NjE2RTIwLCAweDYxNkU2NCwgMHg2MTcyMjAsIDB4NjE3NDIwLCAweDYzNjg3NCwgMHg2NDY1MjAsIDB4NjQ2NTZFLCAweDY0NjU3MiwgMHg2NTIwNjIsIDB4NjUyMDc2LCAweDY1NjU2RSwgCisgICAgICAgICAgICAweDY1NjU3MiwgMHg2NTZFMjAsIDB4NjU3MjIwLCAweDY1NzI3MywgMHg2NTc0MjAsIDB4Njc2NTZFLCAweDY4NjU3NCwgMHg2OTY1MjAsIDB4Njk2RTIwLCAweDY5NkU2NywgMHg2OTczMjAsIDB4NkUyMDYyLCAweDZFMjA2NCwgMHg2RTIwNjUsIDB4NkUyMDY4LCAweDZFMjA2RiwgCisgICAgICAgICAgICAweDZFMjA3NiwgMHg2RTY0NjUsIDB4NkU2NzIwLCAweDZGNkU2NCwgMHg2RjZGNzIsIDB4NkY3MDIwLCAweDZGNzIyMCwgMHg3MzYzNjgsIDB4NzM3NDY1LCAweDc0MjA2NCwgMHg3NDY1MjAsIDB4NzQ2NTZFLCAweDc0NjU3MiwgMHg3NjYxNkUsIDB4NzY2NTcyLCAweDc2NkY2RiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAibmwiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfbm8gZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE3NCwgMHgyMDYxNzYsIDB4MjA2NDY1LCAweDIwNjU2RSwgMHgyMDY1NzIsIDB4MjA2NjZGLCAweDIwNjg2MSwgMHgyMDY5MjAsIDB4MjA2RDY1LCAweDIwNkY2NywgMHgyMDcwRTUsIDB4MjA3MzY1LCAweDIwNzM2QiwgMHgyMDczNkYsIDB4MjA3Mzc0LCAweDIwNzQ2OSwgCisgICAgICAgICAgICAweDIwNzY2OSwgMHgyMEU1MjAsIDB4NjE2RTY0LCAweDYxNzIyMCwgMHg2MTc0MjAsIDB4NjQ2NTIwLCAweDY0NjU2RSwgMHg2NDY1NzQsIDB4NjUyMDczLCAweDY1NjQyMCwgMHg2NTZFMjAsIDB4NjU2RTY1LCAweDY1NzIyMCwgMHg2NTcyNjUsIDB4NjU3NDIwLCAweDY1NzQ3NCwgCisgICAgICAgICAgICAweDY2NkY3MiwgMHg2NzY1NkUsIDB4Njk2QjZCLCAweDY5NkMyMCwgMHg2OTZFNjcsIDB4NkI2NTIwLCAweDZCNkI2NSwgMHg2QzY1MjAsIDB4NkM2QzY1LCAweDZENjU2NCwgMHg2RDY1NkUsIDB4NkUyMDczLCAweDZFNjUyMCwgMHg2RTY3MjAsIDB4NkU2NzY1LCAweDZFNkU2NSwgCisgICAgICAgICAgICAweDZGNjcyMCwgMHg2RjZEMjAsIDB4NkY3MjIwLCAweDcwRTUyMCwgMHg3MjIwNzMsIDB4NzI2NTIwLCAweDczNkY2RCwgMHg3Mzc0NjUsIDB4NzQyMDczLCAweDc0NjUyMCwgMHg3NDY1NkUsIDB4NzQ2NTcyLCAweDc0Njk2QywgMHg3NDc0MjAsIDB4NzQ3NDY1LCAweDc2NjU3MiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAibm8iOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfcHQgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYzNkYsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY0NkYsIDB4MjA2NTIwLCAweDIwNjU3MywgMHgyMDZENjEsIDB4MjA2RTZGLCAweDIwNkYyMCwgMHgyMDcwNjEsIDB4MjA3MDZGLCAweDIwNzA3MiwgMHgyMDcxNzUsIDB4MjA3MjY1LCAweDIwNzM2NSwgCisgICAgICAgICAgICAweDIwNzU2RCwgMHg2MTIwNjEsIDB4NjEyMDYzLCAweDYxMjA2NCwgMHg2MTIwNzAsIDB4NjE2NDY1LCAweDYxNjQ2RiwgMHg2MTZDMjAsIDB4NjE3MjIwLCAweDYxNzI2MSwgMHg2MTczMjAsIDB4NjM2RjZELCAweDYzNkY2RSwgMHg2NDYxMjAsIDB4NjQ2NTIwLCAweDY0NkYyMCwgCisgICAgICAgICAgICAweDY0NkY3MywgMHg2NTIwNjEsIDB4NjUyMDY0LCAweDY1NkQyMCwgMHg2NTZFNzQsIDB4NjU3MzIwLCAweDY1NzM3NCwgMHg2OTYxMjAsIDB4Njk2MzYxLCAweDZENjU2RSwgMHg2RTc0NjUsIDB4NkU3NDZGLCAweDZGMjA2MSwgMHg2RjIwNjMsIDB4NkYyMDY0LCAweDZGMjA2NSwgCisgICAgICAgICAgICAweDZGMjA3MCwgMHg2RjczMjAsIDB4NzA2MTcyLCAweDcxNzU2NSwgMHg3MjYxMjAsIDB4NzI2NTczLCAweDczMjA2MSwgMHg3MzIwNjQsIDB4NzMyMDY1LCAweDczMjA3MCwgMHg3Mzc0NjEsIDB4NzQ2NTIwLCAweDc0NkYyMCwgMHg3NTY1MjAsIDB4RTM2RjIwLCAweEU3RTM2RiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicHQiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfc3YgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE3NCwgMHgyMDYxNzYsIDB4MjA2NDY1LCAweDIwNjU2RSwgMHgyMDY2RjYsIDB4MjA2ODYxLCAweDIwNjkyMCwgMHgyMDY5NkUsIDB4MjA2QjZGLCAweDIwNkQ2NSwgMHgyMDZGNjMsIDB4MjA3MEU1LCAweDIwNzM2QiwgMHgyMDczNkYsIDB4MjA3Mzc0LCAweDIwNzQ2OSwgCisgICAgICAgICAgICAweDIwNzY2MSwgMHgyMDc2NjksIDB4MjBFNDcyLCAweDYxNjQ2NSwgMHg2MTZFMjAsIDB4NjE2RTY0LCAweDYxNzIyMCwgMHg2MTc0NzQsIDB4NjM2ODIwLCAweDY0NjUyMCwgMHg2NDY1NkUsIDB4NjQ2NTcyLCAweDY0NjU3NCwgMHg2NTY0MjAsIDB4NjU2RTIwLCAweDY1NzIyMCwgCisgICAgICAgICAgICAweDY1NzQyMCwgMHg2NkY2NzIsIDB4Njc2NTZFLCAweDY5NkM2QywgMHg2OTZFNjcsIDB4NkI2MTIwLCAweDZDNkMyMCwgMHg2RDY1NjQsIDB4NkUyMDczLCAweDZFNjEyMCwgMHg2RTY0NjUsIDB4NkU2NzIwLCAweDZFNjc2NSwgMHg2RTY5NkUsIDB4NkY2MzY4LCAweDZGNkQyMCwgCisgICAgICAgICAgICAweDZGNkUyMCwgMHg3MEU1MjAsIDB4NzIyMDYxLCAweDcyMjA3MywgMHg3MjYxMjAsIDB4NzM2QjYxLCAweDczNkY2RCwgMHg3NDIwNzMsIDB4NzQ2MTIwLCAweDc0NjUyMCwgMHg3NDY1NzIsIDB4NzQ2OTZDLCAweDc0NzQyMCwgMHg3NjYxNzIsIDB4RTQ3MjIwLCAweEY2NzIyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAic3YiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzIgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEIxLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4QjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCOSwgKGJ5dGUpIDB4QkEsIChieXRlKSAweEJCLCAoYnl0ZSkgMHhCQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJFLCAoYnl0ZSkgMHhCRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHhCNiwgKGJ5dGUpIDB4QjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI5LCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4QkIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4MjAsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBoYXZlQzFCeXRlcz8gIndpbmRvd3MtMTI1MCIgOiAiSVNPLTg4NTktMiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzJfY3MgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8yCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYyNzksIDB4MjA2NDZGLCAweDIwNkE2NSwgMHgyMDZFNjEsIDB4MjA2RTY1LCAweDIwNkYyMCwgMHgyMDZGNjQsIDB4MjA3MDZGLCAweDIwNzA3MiwgMHgyMDcwRjgsIDB4MjA3MjZGLCAweDIwNzM2NSwgMHgyMDczNkYsIDB4MjA3Mzc0LCAweDIwNzQ2RiwgCisgICAgICAgICAgICAweDIwNzYyMCwgMHgyMDc2NzksIDB4MjA3QTYxLCAweDYxMjA3MCwgMHg2MzY1MjAsIDB4NjM2ODIwLCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjUyMDc2LCAweDY1NkQyMCwgMHg2NTZFRUQsIDB4Njg2RjIwLCAweDY4NkY2NCwgMHg2OTczNzQsIDB4NkE2NTIwLCAweDZCNzQ2NSwgCisgICAgICAgICAgICAweDZDNjUyMCwgMHg2QzY5MjAsIDB4NkU2MTIwLCAweDZFRTkyMCwgMHg2RUVDMjAsIDB4NkVFRDIwLCAweDZGMjA3MCwgMHg2RjY0NkUsIDB4NkY2QTY5LCAweDZGNzM3NCwgMHg2Rjc1MjAsIDB4NkY3NjYxLCAweDcwNkY2NCwgMHg3MDZGNkEsIDB4NzA3MjZGLCAweDcwRjg2NSwgCisgICAgICAgICAgICAweDczNjUyMCwgMHg3MzZGNzUsIDB4NzM3NDYxLCAweDczNzQ2OSwgMHg3Mzc0NkUsIDB4NzQ2NTcyLCAweDc0NkVFRCwgMHg3NDZGMjAsIDB4NzUyMDcwLCAweEJFNjUyMCwgMHhFMTZFRUQsIDB4RTk2ODZGLCAweEVEMjA3MCwgMHhFRDIwNzMsIDB4RUQ2RDIwLCAweEY4NjU2NCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiY3MiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzJfaHUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8yCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYxN0EsIDB4MjA2MjY1LCAweDIwNjU2NywgMHgyMDY1NkMsIDB4MjA2NjY1LCAweDIwNjg2MSwgMHgyMDY4NkYsIDB4MjA2OTczLCAweDIwNkI2NSwgMHgyMDZCNjksIDB4MjA2QkY2LCAweDIwNkM2NSwgMHgyMDZENjEsIDB4MjA2RDY1LCAweDIwNkQ2OSwgCisgICAgICAgICAgICAweDIwNkU2NSwgMHgyMDczN0EsIDB4MjA3NDY1LCAweDIwRTk3MywgMHg2MTIwNjEsIDB4NjEyMDZCLCAweDYxMjA2RCwgMHg2MTIwNzMsIDB4NjE2QjIwLCAweDYxNkUyMCwgMHg2MTdBMjAsIDB4NjI2MTZFLCAweDYyNjU2RSwgMHg2NTY3NzksIDB4NjU2QjIwLCAweDY1NkMyMCwgCisgICAgICAgICAgICAweDY1NkM2NSwgMHg2NTZEMjAsIDB4NjU2RTIwLCAweDY1NzI2NSwgMHg2NTc0MjAsIDB4NjU3NDY1LCAweDY1NzQ3NCwgMHg2Nzc5MjAsIDB4Njg2RjY3LCAweDY5NkU3NCwgMHg2OTczMjAsIDB4NkIyMDYxLCAweDZCRjY3QSwgMHg2RDY1NjcsIDB4NkQ2OTZFLCAweDZFMjA2MSwgCisgICAgICAgICAgICAweDZFNjE2QiwgMHg2RTY1NkIsIDB4NkU2NTZELCAweDZFNzQyMCwgMHg2RjY3NzksIDB4NzMyMDYxLCAweDczN0E2NSwgMHg3MzdBNzQsIDB4NzM3QUUxLCAweDczRTk2NywgMHg3NDIwNjEsIDB4NzQ3NDIwLCAweDc0RTE3MywgMHg3QTY1NzIsIDB4RTE2RTIwLCAweEU5NzMyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiaHUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzJfcGwgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8yCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjM3QSwgMHgyMDY0NkYsIDB4MjA2OTIwLCAweDIwNkE2NSwgMHgyMDZCNkYsIDB4MjA2RDYxLCAweDIwNkQ2OSwgMHgyMDZFNjEsIDB4MjA2RTY5LCAweDIwNkY2NCwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzM2OSwgMHgyMDc3MjAsIDB4MjA3NzY5LCAweDIwNzc3OSwgCisgICAgICAgICAgICAweDIwN0EyMCwgMHgyMDdBNjEsIDB4NjEyMDcwLCAweDYxMjA3NywgMHg2MTZFNjksIDB4NjM2ODIwLCAweDYzN0E2NSwgMHg2MzdBNzksIDB4NjQ2RjIwLCAweDY0N0E2OSwgMHg2NTIwNzAsIDB4NjUyMDczLCAweDY1MjA3NywgMHg2NTIwN0EsIDB4NjU2NzZGLCAweDY1NkEyMCwgCisgICAgICAgICAgICAweDY1NkQyMCwgMHg2NTZFNjksIDB4Njc2RjIwLCAweDY5NjEyMCwgMHg2OTY1MjAsIDB4Njk2NTZBLCAweDZCNjEyMCwgMHg2QjY5MjAsIDB4NkI2OTY1LCAweDZENjk2NSwgMHg2RTYxMjAsIDB4NkU2OTYxLCAweDZFNjk2NSwgMHg2RjIwNzAsIDB4NkY3NzYxLCAweDZGNzc2OSwgCisgICAgICAgICAgICAweDcwNkY2QywgMHg3MDcyNjEsIDB4NzA3MjZGLCAweDcwNzI3QSwgMHg3MjdBNjUsIDB4NzI3QTc5LCAweDczNjlFQSwgMHg3MzZCNjksIDB4NzM3NDYxLCAweDc3Njk2NSwgMHg3OTYzNjgsIDB4Nzk2RDIwLCAweDdBNjUyMCwgMHg3QTY5NjUsIDB4N0E3OTIwLCAweEYzNzcyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicGwiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzJfcm8gZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8yCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjEyMCwgMHgyMDYxNjMsIDB4MjA2MzYxLCAweDIwNjM2NSwgMHgyMDYzNkYsIDB4MjA2Mzc1LCAweDIwNjQ2NSwgMHgyMDY0NjksIDB4MjA2QzYxLCAweDIwNkQ2MSwgMHgyMDcwNjUsIDB4MjA3MDcyLCAweDIwNzM2NSwgMHgyMDczRTMsIDB4MjA3NTZFLCAweDIwQkE2OSwgCisgICAgICAgICAgICAweDIwRUU2RSwgMHg2MTIwNjMsIDB4NjEyMDY0LCAweDYxNzI2NSwgMHg2MTc0MjAsIDB4NjE3NDY1LCAweDYxNzUyMCwgMHg2MzYxNzIsIDB4NjM2RjZFLCAweDYzNzUyMCwgMHg2M0UzMjAsIDB4NjQ2NTIwLCAweDY1MjA2MSwgMHg2NTIwNjMsIDB4NjUyMDY0LCAweDY1MjA3MCwgCisgICAgICAgICAgICAweDY1MjA3MywgMHg2NTYxMjAsIDB4NjU2OTIwLCAweDY1NkM2NSwgMHg2NTZFNzQsIDB4NjU3Mzc0LCAweDY5MjA2MSwgMHg2OTIwNjMsIDB4NjkyMDY0LCAweDY5MjA3MCwgMHg2OTY1MjAsIDB4Njk2OTIwLCAweDY5NkUyMCwgMHg2QzYxMjAsIDB4NkM2NTIwLCAweDZDNkY3MiwgCisgICAgICAgICAgICAweDZDNzU2OSwgMHg2RTY1MjAsIDB4NkU3NDcyLCAweDZGNzIyMCwgMHg3MDY1NkUsIDB4NzI2NTIwLCAweDcyNjU2MSwgMHg3Mjc1MjAsIDB4NzNFMzIwLCAweDc0NjUyMCwgMHg3NDcyNzUsIDB4NzRFMzIwLCAweDc1NjkyMCwgMHg3NTZDMjAsIDB4QkE2OTIwLCAweEVFNkUyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicm8iOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LCAKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweERCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4RkYsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiSVNPLTg4NTktNSI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzVfcnUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV81CisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwRDIyMCwgMHgyMEQyREUsIDB4MjBENERFLCAweDIwRDdEMCwgMHgyMEQ4MjAsIDB4MjBEQUQwLCAweDIwREFERSwgMHgyMERERDAsIDB4MjBEREQ1LCAweDIwREVEMSwgMHgyMERGREUsIDB4MjBERkUwLCAweDIwRTBEMCwgMHgyMEUxREUsIDB4MjBFMUUyLCAweDIwRTJERSwgCisgICAgICAgICAgICAweDIwRTdFMiwgMHgyMEVERTIsIDB4RDBEREQ4LCAweEQwRTJFQywgMHhEM0RFMjAsIDB4RDVEQkVDLCAweEQ1REREOCwgMHhENUUxRTIsIDB4RDVFMjIwLCAweEQ4MjBERiwgMHhEOEQ1MjAsIDB4RDhEODIwLCAweEQ4RUYyMCwgMHhEQkQ1REQsIDB4REJEODIwLCAweERCRUNERCwgCisgICAgICAgICAgICAweERERDAyMCwgMHhEREQ1MjAsIDB4REREOEQ1LCAweERERDhFRiwgMHhERERFMjAsIDB4RERERUQyLCAweERFMjBEMiwgMHhERTIwREYsIDB4REUyMEUxLCAweERFRDIyMCwgMHhERUQyRDAsIDB4REVEM0RFLCAweERFRDkyMCwgMHhERURCRUMsIDB4REVEQzIwLCAweERFRTFFMiwgCisgICAgICAgICAgICAweERGREVEQiwgMHhERkUwRDUsIDB4REZFMEQ4LCAweERGRTBERSwgMHhFMEQwRDIsIDB4RTBENUQ0LCAweEUxRTJEMCwgMHhFMUUyRDIsIDB4RTFFMkQ4LCAweEUxRUYyMCwgMHhFMkQ1REIsIDB4RTJERTIwLCAweEUyREVFMCwgMHhFMkVDMjAsIDB4RTdFMkRFLCAweEVCRTUyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAicnUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzYgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhDMSwgKGJ5dGUpIDB4QzIsIChieXRlKSAweEMzLCAoYnl0ZSkgMHhDNCwgKGJ5dGUpIDB4QzUsIChieXRlKSAweEM2LCAoYnl0ZSkgMHhDNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhDOCwgKGJ5dGUpIDB4QzksIChieXRlKSAweENBLCAoYnl0ZSkgMHhDQiwgKGJ5dGUpIDB4Q0MsIChieXRlKSAweENELCAoYnl0ZSkgMHhDRSwgKGJ5dGUpIDB4Q0YsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LCAKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiSVNPLTg4NTktNiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzZfYXIgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV82CisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwQzdFNCwgMHgyMEM3RTYsIDB4MjBDOEM3LCAweDIwRDlFNCwgMHgyMEUxRUEsIDB4MjBFNEU0LCAweDIwRTVFNiwgMHgyMEU4QzcsIDB4QzcyMEM3LCAweEM3QzEyMCwgMHhDN0NBMjAsIDB4QzdEMTIwLCAweEM3RTQyMCwgMHhDN0U0QzMsIDB4QzdFNEM3LCAweEM3RTRDOCwgCisgICAgICAgICAgICAweEM3RTRDQSwgMHhDN0U0Q0MsIDB4QzdFNENELCAweEM3RTRDRiwgMHhDN0U0RDMsIDB4QzdFNEQ5LCAweEM3RTRFMiwgMHhDN0U0RTUsIDB4QzdFNEU4LCAweEM3RTRFQSwgMHhDN0U1MjAsIDB4QzdFNjIwLCAweEM3RTZDQSwgMHhDODIwQzcsIDB4QzkyMEM3LCAweEM5MjBFMSwgCisgICAgICAgICAgICAweEM5MjBFNCwgMHhDOTIwRTUsIDB4QzkyMEU4LCAweENBMjBDNywgMHhDRjIwQzcsIDB4Q0ZDOTIwLCAweEQxMjBDNywgMHhEMUM5MjAsIDB4RDMyMEM3LCAweEQ5MjBDNywgMHhEOUU0RTksIDB4RTFFQTIwLCAweEU0MjBDNywgMHhFNEM5MjAsIDB4RTRFOTIwLCAweEU0RUEyMCwgCisgICAgICAgICAgICAweEU1MjBDNywgMHhFNUM3MjAsIDB4RTVDOTIwLCAweEU1RTYyMCwgMHhFNjIwQzcsIDB4RTcyMEM3LCAweEU3QzcyMCwgMHhFOEM3RTQsIDB4RThFNjIwLCAweEU5MjBDNywgMHhFQTIwQzcsIDB4RUEyMEU1LCAweEVBMjBFOCwgMHhFQUM5MjAsIDB4RUFEMTIwLCAweEVBRTYyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiYXIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzcgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEExLCAoYnl0ZSkgMHhBMiwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAKKyAgICAgICAgICAgIChieXRlKSAweEMwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4MjAsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBoYXZlQzFCeXRlcz8gIndpbmRvd3MtMTI1MyIgOiAiSVNPLTg4NTktNyI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzdfZWwgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV83CisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwRTFFRCwgMHgyMEUxRjAsIDB4MjBFM0U5LCAweDIwRTRFOSwgMHgyMEU1RjAsIDB4MjBFNzIwLCAweDIwRUFFMSwgMHgyMEVDRTUsIDB4MjBFREUxLCAweDIwRUYyMCwgMHgyMEYwRTEsIDB4MjBGMEVGLCAweDIwRjBGMSwgMHgyMEYzRjQsIDB4MjBGM0Y1LCAweDIwRjRFNywgCisgICAgICAgICAgICAweDIwRjRFRiwgMHhERkUxMjAsIDB4RTEyMEUxLCAweEUxMjBGNCwgMHhFMUU5MjAsIDB4RTFFRDIwLCAweEUxRjBGQywgMHhFMUYyMjAsIDB4RTNFOUUxLCAweEU1RTkyMCwgMHhFNUYyMjAsIDB4RTcyMEY0LCAweEU3RUQyMCwgMHhFN0YyMjAsIDB4RTkyMEY0LCAweEU5RTEyMCwgCisgICAgICAgICAgICAweEU5RUFERSwgMHhFOUYyMjAsIDB4RUFFMUU5LCAweEVBRTFGNCwgMHhFQ0U1MjAsIDB4RUQyMEUxLCAweEVEMjBFNSwgMHhFRDIwRjAsIDB4RURFMTIwLCAweEVGRjIyMCwgMHhFRkY1MjAsIDB4RjBFRkY1LCAweEYwRjFFRiwgMHhGMEZDMjAsIDB4RjIyMEUxLCAweEYyMjBFNSwgCisgICAgICAgICAgICAweEYyMjBFQSwgMHhGMjIwRjAsIDB4RjIyMEY0LCAweEYzRTUyMCwgMHhGM0U3MjAsIDB4RjNGNEVGLCAweEY0RTEyMCwgMHhGNEUxRTksIDB4RjRFN0VELCAweEY0RTdGMiwgMHhGNEU5RUEsIDB4RjRFRjIwLCAweEY0RUZGNSwgMHhGNEY5RUQsIDB4RjlFRDIwLCAweEZFRUQyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZWwiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzggZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBoYXZlQzFCeXRlcz8gIndpbmRvd3MtMTI1NSIgOiAiSVNPLTg4NTktOCI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzhfSV9oZSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzgKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBFMEU1LCAweDIwRTBFNywgMHgyMEUwRTksIDB4MjBFMEZBLCAweDIwRTFFOSwgMHgyMEUxRUUsIDB4MjBFNEUwLCAweDIwRTRFNSwgMHgyMEU0RTksIDB4MjBFNEVFLCAweDIwRTRGMiwgMHgyMEU0RjksIDB4MjBFNEZBLCAweDIwRUNFMCwgMHgyMEVDRTQsIDB4MjBFRUUwLCAKKyAgICAgICAgICAgIDB4MjBGMkVDLCAweDIwRjlFQywgMHhFMEZBMjAsIDB4RTQyMEUwLCAweEU0MjBFMSwgMHhFNDIwRTQsIDB4RTQyMEVDLCAweEU0MjBFRSwgMHhFNDIwRjksIDB4RTRFNUUwLCAweEU1RTAyMCwgMHhFNUVEMjAsIDB4RTVFRjIwLCAweEU1RjgyMCwgMHhFNUZBMjAsIDB4RTkyMEU0LCAKKyAgICAgICAgICAgIDB4RTlFNDIwLCAweEU5RTVGQSwgMHhFOUU5RUQsIDB4RTlFRDIwLCAweEU5RUYyMCwgMHhFOUY4MjAsIDB4RTlGQTIwLCAweEVDMjBFMCwgMHhFQzIwRTQsIDB4RUNFMDIwLCAweEVDRTQyMCwgMHhFRDIwRTAsIDB4RUQyMEUxLCAweEVEMjBFNCwgMHhFRDIwRUMsIDB4RUQyMEVFLCAKKyAgICAgICAgICAgIDB4RUQyMEY5LCAweEVFRTQyMCwgMHhFRjIwRTQsIDB4RjBFNDIwLCAweEYwRTkyMCwgMHhGMEU5RUQsIDB4RjJFQzIwLCAweEY4MjBFNCwgMHhGOEU5RUQsIDB4RjlFQzIwLCAweEZBMjBFMCwgMHhGQTIwRTEsIDB4RkEyMEU0LCAweEZBMjBFQywgMHhGQTIwRUUsIDB4RkEyMEY5LCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaGF2ZUMxQnl0ZXM/ICJ3aW5kb3dzLTEyNTUiIDogLyoiSVNPLTg4NTktOC1JIiovICJJU08tODg1OS04IjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImhlIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV84X2hlIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfOAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEUwRTUsIDB4MjBFMEVDLCAweDIwRTRFOSwgMHgyMEU0RUMsIDB4MjBFNEVFLCAweDIwRTRGMCwgMHgyMEU5RjAsIDB4MjBFQ0YyLCAweDIwRUNGOSwgMHgyMEVERTUsIDB4MjBFREU5LCAweDIwRUZFNSwgMHgyMEVGRTksIDB4MjBGOEU1LCAweDIwRjhFOSwgMHgyMEZBRTAsIAorICAgICAgICAgICAgMHgyMEZBRTUsIDB4MjBGQUU5LCAweEUwMjBFNCwgMHhFMDIwRUMsIDB4RTAyMEVELCAweEUwMjBGQSwgMHhFMEU0MjAsIDB4RTBFNUU0LCAweEUwRUMyMCwgMHhFMEVFMjAsIDB4RTEyMEU0LCAweEUxMjBFRCwgMHhFMTIwRkEsIDB4RTQyMEU0LCAweEU0MjBFOSwgMHhFNDIwRUMsIAorICAgICAgICAgICAgMHhFNDIwRUQsIDB4RTQyMEVGLCAweEU0MjBGOCwgMHhFNDIwRkEsIDB4RTRFQzIwLCAweEU1RTAyMCwgMHhFNUU0MjAsIDB4RTdFMDIwLCAweEU5RTAyMCwgMHhFOUUxMjAsIDB4RTlFNDIwLCAweEVDMjBFNCwgMHhFQzIwRUQsIDB4RUMyMEZBLCAweEVDRjIyMCwgMHhFQ0Y5MjAsIAorICAgICAgICAgICAgMHhFREU5RTksIDB4RURFOUYwLCAweEVERTlGOCwgMHhFRTIwRTQsIDB4RUUyMEVELCAweEVFMjBGQSwgMHhFRUUxMjAsIDB4RUVFNDIwLCAweEYyRTQyMCwgMHhGOTIwRTQsIDB4RjkyMEVELCAweEY5MjBGQSwgMHhGOUU0MjAsIDB4RkFFMDIwLCAweEZBRTQyMCwgMHhGQUU1RTksIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImhlIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV85IGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEFBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweDY5LCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaGF2ZUMxQnl0ZXM/ICJ3aW5kb3dzLTEyNTQiIDogIklTTy04ODU5LTkiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV85X3RyIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfOQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMDYyNjEsIDB4MjA2MjY5LCAweDIwNjI3NSwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjc2NSwgMHgyMDY4NjEsIDB4MjA2OTZDLCAweDIwNkI2MSwgMHgyMDZCNkYsIDB4MjA2RDYxLCAweDIwNkY2QywgMHgyMDczNjEsIDB4MjA3NDYxLCAweDIwNzY2NSwgMHgyMDc5NjEsIAorICAgICAgICAgICAgMHg2MTIwNjIsIDB4NjE2QjIwLCAweDYxNkM2MSwgMHg2MTZENjEsIDB4NjE2RTIwLCAweDYxNkVGRCwgMHg2MTcyMjAsIDB4NjE3MjYxLCAweDYxNzJGRCwgMHg2MTczRkQsIDB4NjE3OTYxLCAweDYyNjk3MiwgMHg2NDYxMjAsIDB4NjQ2NTIwLCAweDY0NjkyMCwgMHg2NTIwNjIsIAorICAgICAgICAgICAgMHg2NTIwNkIsIDB4NjU2NDY5LCAweDY1NkUyMCwgMHg2NTcyMjAsIDB4NjU3MjY5LCAweDY1NzM2OSwgMHg2OTZDNjUsIDB4Njk2RTIwLCAweDY5NkU2OSwgMHg2OTcyMjAsIDB4NkM2MTZFLCAweDZDNjE3MiwgMHg2QzY1MjAsIDB4NkM2NTcyLCAweDZFMjA2MSwgMHg2RTIwNjIsIAorICAgICAgICAgICAgMHg2RTIwNkIsIDB4NkU2NDYxLCAweDZFNjQ2NSwgMHg2RTY1MjAsIDB4NkU2OTIwLCAweDZFNjk2RSwgMHg2RUZEMjAsIDB4NzI2OTZFLCAweDcyRkQ2RSwgMHg3NjY1MjAsIDB4Nzk2MTIwLCAweDc5NkY3MiwgMHhGRDZFMjAsIDB4RkQ2RTY0LCAweEZENkVGRCwgMHhGREYwRkQsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gInRyIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfd2luZG93c18xMjUxIGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBFMjIwLCAweDIwRTJFRSwgMHgyMEU0RUUsIDB4MjBFN0UwLCAweDIwRTgyMCwgMHgyMEVBRTAsIDB4MjBFQUVFLCAweDIwRURFMCwgMHgyMEVERTUsIDB4MjBFRUUxLCAweDIwRUZFRSwgMHgyMEVGRjAsIDB4MjBGMEUwLCAweDIwRjFFRSwgMHgyMEYxRjIsIDB4MjBGMkVFLCAKKyAgICAgICAgICAgIDB4MjBGN0YyLCAweDIwRkRGMiwgMHhFMEVERTgsIDB4RTBGMkZDLCAweEUzRUUyMCwgMHhFNUVCRkMsIDB4RTVFREU4LCAweEU1RjFGMiwgMHhFNUYyMjAsIDB4RTgyMEVGLCAweEU4RTUyMCwgMHhFOEU4MjAsIDB4RThGRjIwLCAweEVCRTVFRCwgMHhFQkU4MjAsIDB4RUJGQ0VELCAKKyAgICAgICAgICAgIDB4RURFMDIwLCAweEVERTUyMCwgMHhFREU4RTUsIDB4RURFOEZGLCAweEVERUUyMCwgMHhFREVFRTIsIDB4RUUyMEUyLCAweEVFMjBFRiwgMHhFRTIwRjEsIDB4RUVFMjIwLCAweEVFRTJFMCwgMHhFRUUzRUUsIDB4RUVFOTIwLCAweEVFRUJGQywgMHhFRUVDMjAsIDB4RUVGMUYyLCAKKyAgICAgICAgICAgIDB4RUZFRUVCLCAweEVGRjBFNSwgMHhFRkYwRTgsIDB4RUZGMEVFLCAweEYwRTBFMiwgMHhGMEU1RTQsIDB4RjFGMkUwLCAweEYxRjJFMiwgMHhGMUYyRTgsIDB4RjFGRjIwLCAweEYyRTVFQiwgMHhGMkVFMjAsIDB4RjJFRUYwLCAweEYyRkMyMCwgMHhGN0YyRUUsIDB4RkJGNTIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHg5MCwgKGJ5dGUpIDB4ODMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg4MywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlDLCAoYnl0ZSkgMHg5RCwgKGJ5dGUpIDB4OUUsIChieXRlKSAweDlGLCAKKyAgICAgICAgICAgIChieXRlKSAweDkwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUMsIChieXRlKSAweDlELCAoYnl0ZSkgMHg5RSwgKGJ5dGUpIDB4OUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEEyLCAoYnl0ZSkgMHhBMiwgKGJ5dGUpIDB4QkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEI4LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEIzLCAoYnl0ZSkgMHhCMywgKGJ5dGUpIDB4QjQsIChieXRlKSAweEI1LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QjgsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJDLCAoYnl0ZSkgMHhCRSwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4RkYsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAgIndpbmRvd3MtMTI1MSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gInJ1IjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfd2luZG93c18xMjU2IGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBDN0UxLCAweDIwQzdFNCwgMHgyMEM4QzcsIDB4MjBEQUUxLCAweDIwRERFRCwgMHgyMEUxRTEsIDB4MjBFM0U0LCAweDIwRTZDNywgMHhDNzIwQzcsIDB4QzdDMTIwLCAweEM3Q0EyMCwgMHhDN0QxMjAsIDB4QzdFMTIwLCAweEM3RTFDMywgMHhDN0UxQzcsIDB4QzdFMUM4LCAKKyAgICAgICAgICAgIDB4QzdFMUNBLCAweEM3RTFDQywgMHhDN0UxQ0QsIDB4QzdFMUNGLCAweEM3RTFEMywgMHhDN0UxREEsIDB4QzdFMURFLCAweEM3RTFFMywgMHhDN0UxRTYsIDB4QzdFMUVELCAweEM3RTMyMCwgMHhDN0U0MjAsIDB4QzdFNENBLCAweEM4MjBDNywgMHhDOTIwQzcsIDB4QzkyMERELCAKKyAgICAgICAgICAgIDB4QzkyMEUxLCAweEM5MjBFMywgMHhDOTIwRTYsIDB4Q0EyMEM3LCAweENGMjBDNywgMHhDRkM5MjAsIDB4RDEyMEM3LCAweEQxQzkyMCwgMHhEMzIwQzcsIDB4REEyMEM3LCAweERBRTFFQywgMHhEREVEMjAsIDB4RTEyMEM3LCAweEUxQzkyMCwgMHhFMUVDMjAsIDB4RTFFRDIwLCAKKyAgICAgICAgICAgIDB4RTMyMEM3LCAweEUzQzcyMCwgMHhFM0M5MjAsIDB4RTNFNDIwLCAweEU0MjBDNywgMHhFNTIwQzcsIDB4RTVDNzIwLCAweEU2QzdFMSwgMHhFNkU0MjAsIDB4RUMyMEM3LCAweEVEMjBDNywgMHhFRDIwRTMsIDB4RUQyMEU2LCAweEVEQzkyMCwgMHhFREQxMjAsIDB4RURFNDIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MDAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4ODEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg4MywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4ODgsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg4QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlDLCAoYnl0ZSkgMHg4RCwgKGJ5dGUpIDB4OEUsIChieXRlKSAweDhGLCAKKyAgICAgICAgICAgIChieXRlKSAweDkwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHg5OCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QUEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEMwLCAoYnl0ZSkgMHhDMSwgKGJ5dGUpIDB4QzIsIChieXRlKSAweEMzLCAoYnl0ZSkgMHhDNCwgKGJ5dGUpIDB4QzUsIChieXRlKSAweEM2LCAoYnl0ZSkgMHhDNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhDOCwgKGJ5dGUpIDB4QzksIChieXRlKSAweENBLCAoYnl0ZSkgMHhDQiwgKGJ5dGUpIDB4Q0MsIChieXRlKSAweENELCAoYnl0ZSkgMHhDRSwgKGJ5dGUpIDB4Q0YsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweERCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RjksIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkYsIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAgIndpbmRvd3MtMTI1NiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImFyIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX0tPSThfUiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwQzRDRiwgMHgyMEM5MjAsIDB4MjBDQkMxLCAweDIwQ0JDRiwgMHgyMENFQzEsIDB4MjBDRUM1LCAweDIwQ0ZDMiwgMHgyMEQwQ0YsIDB4MjBEMEQyLCAweDIwRDJDMSwgMHgyMEQzQ0YsIDB4MjBEM0Q0LCAweDIwRDRDRiwgMHgyMEQ3MjAsIDB4MjBEN0NGLCAweDIwREFDMSwgCisgICAgICAgICAgICAweDIwRENENCwgMHgyMERFRDQsIDB4QzFDRUM5LCAweEMxRDREOCwgMHhDNUNDRDgsIDB4QzVDRUM5LCAweEM1RDNENCwgMHhDNUQ0MjAsIDB4QzdDRjIwLCAweEM5MjBEMCwgMHhDOUM1MjAsIDB4QzlDOTIwLCAweEM5RDEyMCwgMHhDQ0M1Q0UsIDB4Q0NDOTIwLCAweENDRDhDRSwgCisgICAgICAgICAgICAweENFQzEyMCwgMHhDRUM1MjAsIDB4Q0VDOUM1LCAweENFQzlEMSwgMHhDRUNGMjAsIDB4Q0VDRkQ3LCAweENGMjBEMCwgMHhDRjIwRDMsIDB4Q0YyMEQ3LCAweENGQzdDRiwgMHhDRkNBMjAsIDB4Q0ZDQ0Q4LCAweENGQ0QyMCwgMHhDRkQzRDQsIDB4Q0ZENzIwLCAweENGRDdDMSwgCisgICAgICAgICAgICAweEQwQ0ZDQywgMHhEMEQyQzUsIDB4RDBEMkM5LCAweEQwRDJDRiwgMHhEMkMxRDcsIDB4RDJDNUM0LCAweEQzRDEyMCwgMHhEM0Q0QzEsIDB4RDNENEM5LCAweEQzRDRENywgMHhENEM1Q0MsIDB4RDRDRjIwLCAweEQ0Q0ZEMiwgMHhENEQ4MjAsIDB4RDlDODIwLCAweERFRDRDRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEEzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QTMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhDMCwgKGJ5dGUpIDB4QzEsIChieXRlKSAweEMyLCAoYnl0ZSkgMHhDMywgKGJ5dGUpIDB4QzQsIChieXRlKSAweEM1LCAoYnl0ZSkgMHhDNiwgKGJ5dGUpIDB4QzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzgsIChieXRlKSAweEM5LCAoYnl0ZSkgMHhDQSwgKGJ5dGUpIDB4Q0IsIChieXRlKSAweENDLCAoYnl0ZSkgMHhDRCwgKGJ5dGUpIDB4Q0UsIChieXRlKSAweENGLCAKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHhENywgCisgICAgICAgICAgICAoYnl0ZSkgMHhEOCwgKGJ5dGUpIDB4RDksIChieXRlKSAweERBLCAoYnl0ZSkgMHhEQiwgKGJ5dGUpIDB4REMsIChieXRlKSAweERELCAoYnl0ZSkgMHhERSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LCAKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAgIktPSTgtUiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gInJ1IjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nbml6ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ25pemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg0YmIyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ25pemVyLmphdmEKQEAgLTAsMCArMSw1NSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIGZvciByZWNvZ25pemluZyBhIHNpbmdsZSBjaGFyc2V0LgorICogUGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24gb2YgSUNVJ3MgQ2hhcnNldERldGVjdG9yLgorICogCisgKiBFYWNoIHNwZWNpZmljIGNoYXJzZXQgdGhhdCBjYW4gYmUgcmVjb2duaXplZCB3aWxsIGhhdmUgYW4gaW5zdGFuY2UKKyAqIG9mIHNvbWUgc3ViY2xhc3Mgb2YgdGhpcyBjbGFzcy4gIEFsbCBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBvdmVyYWxsCisgKiBDaGFyc2V0RGV0ZWN0b3IgYW5kIHRoZSBzdHVmZiBzcGVjaWZpYyB0byBhbiBpbmRpdmlkdWFsIGNoYXJzZXQgaGFwcGVucworICogdmlhIHRoZSBpbnRlcmZhY2UgcHJvdmlkZWQgaGVyZS4KKyAqIAorICogSW5zdGFuY2VzIG9mIENoYXJzZXREZXRlY3RvciBETyBOT1QgaGF2ZSBvciBtYWludGFpbiAKKyAqIHN0YXRlIHBlcnRhaW5pbmcgdG8gYSBzcGVjaWZpYyBtYXRjaCBvciBkZXRlY3Qgb3BlcmF0aW9uLgorICogVGhlIFdJTEwgYmUgc2hhcmVkIGJ5IG11bHRpcGxlIGluc3RhbmNlcyBvZiBDaGFyc2V0RGV0ZWN0b3IuCisgKiBUaGV5IGVuY2Fwc3VsYXRlIGNvbnN0IGNoYXJzZXQtc3BlY2lmaWMgaW5mb3JtYXRpb24uCisgKiAKKyAqIEBpbnRlcm5hbAorICovCithYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2duaXplciB7CisgICAgLyoqCisgICAgICogR2V0IHRoZSBJQU5BIG5hbWUgb2YgdGhpcyBjaGFyc2V0LgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJzZXQgbmFtZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgICAgICBnZXROYW1lKCk7CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBJU08gbGFuZ3VhZ2UgY29kZSBmb3IgdGhpcyBjaGFyc2V0LgorICAgICAqIEByZXR1cm4gdGhlIGxhbmd1YWdlIGNvZGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBsYW5ndWFnZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgICBTdHJpbmcgICAgICBnZXRMYW5ndWFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbWF0Y2ggb2YgdGhpcyBjaGFyc2V0IHdpdGggdGhlIGlucHV0IHRleHQgZGF0YQorICAgICAqICAgICAgd2hpY2ggaXMgb2J0YWluZWQgdmlhIHRoZSBDaGFyc2V0RGV0ZWN0b3Igb2JqZWN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBkZXQgIFRoZSBDaGFyc2V0RGV0ZWN0b3IsIHdoaWNoIGNvbnRhaW5zIHRoZSBpbnB1dCB0ZXh0CisgICAgICogICAgICAgICAgICAgdG8gYmUgY2hlY2tlZCBmb3IgYmVpbmcgaW4gdGhpcyBjaGFyc2V0LgorICAgICAqIEByZXR1cm4gICAgIFR3byB2YWx1ZXMgcGFja2VkIGludG8gb25lIGludCAgKERhbW4gamF2YSwgYW55aG93KQorICAgICAqICAgICAgICAgICAgIDxici8+CisgICAgICogICAgICAgICAgICAgYml0cyAwLTc6ICB0aGUgbWF0Y2ggY29uZmlkZW5jZSwgcmFuZ2luZyBmcm9tIDAtMTAwCisgICAgICogICAgICAgICAgICAgPGJyLz4KKyAgICAgKiAgICAgICAgICAgICBiaXRzIDgtMTU6IFRoZSBtYXRjaCByZWFzb24sIGFuIGVudW0tbGlrZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBpbnQgICAgICAgICBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2JmMzU1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwxNzUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEEgY29uY3JldGUge0BsaW5rIERhdGVGb3JtYXR9IGZvciB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXJ9LgorICogVGhpcyBjbGFzcyBoYW5kbGVzIGEgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPi1zcGVjaWZpYyBmaWVsZCwKKyAqIDxjb2RlPkNoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIPC9jb2RlPi4gIEl0IGFsc28gcmVkZWZpbmVzIHRoZQorICogaGFuZGxpbmcgb2YgdHdvIGZpZWxkcywgPGNvZGU+RVJBPC9jb2RlPiBhbmQgPGNvZGU+WUVBUjwvY29kZT4uICBUaGUKKyAqIGZvcm1lciBpcyBkaXNwbGF5ZWQgbnVtZXJpY2FsbHksIGluc3RlYWQgb2Ygc3ltYm9saWNhbGx5LCBzaW5jZSBpdCBpcworICogdGhlIG51bWVyaWMgY3ljbGUgbnVtYmVyIGluIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4uICBUaGUgbGF0dGVyIGlzCisgKiBudW1lcmljLCBhcyBiZWZvcmUsIGJ1dCBoYXMgbm8gc3BlY2lhbCAyLWRpZ2l0IFkySyBiZWhhdmlvci4KKyAqCisgKiA8cD5XaXRoIHJlZ2FyZCB0byA8Y29kZT5DaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USDwvY29kZT4sIHRoaXMKKyAqIGNsYXNzIGhhbmRsZXMgcGFyc2luZyBzcGVjaWFsbHkuICBJZiBubyBzdHJpbmcgc3ltYm9sIGlzIGZvdW5kIGF0IGFsbCwKKyAqIHRoaXMgaXMgdGFrZW4gYXMgZXF1aXZhbGVudCB0byBhbiA8Y29kZT5JU19MRUFQX01PTlRIPC9jb2RlPiB2YWx1ZSBvZgorICogemVyby4gIFRoaXMgYWxsb3dzIGZvcm1hdHMgdG8gZGlzcGxheSBhIHNwZWNpYWwgc3RyaW5nIChlLmcuLCAiKiIpIGZvcgorICogbGVhcCBtb250aHMsIGJ1dCBubyBzdHJpbmcgZm9yIG5vcm1hbCBtb250aHMuCisgKgorICogPHA+U3VtbWFyeSBvZiBmaWVsZCBjaGFuZ2VzIHZzLiB7QGxpbmsgU2ltcGxlRGF0ZUZvcm1hdH06PHByZT4KKyAqIFN5bWJvbCAgIE1lYW5pbmcgICAgICAgICAgICAgICAgIFByZXNlbnRhdGlvbiAgICAgICAgRXhhbXBsZQorICogLS0tLS0tICAgLS0tLS0tLSAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tICAgICAgICAtLS0tLS0tCisgKiBHICAgICAgICBjeWNsZSAgICAgICAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDc4CisgKiB5ICAgICAgICB5ZWFyIG9mIGN5Y2xlICgxLi42MCkgICAoTnVtYmVyKSAgICAgICAgICAgIDE3CisgKiBsICAgICAgICBpcyBsZWFwIG1vbnRoICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIDQ2MzcKKyAqIDwvcHJlPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIKKyAqIEBzZWUgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VEYXRlRm9ybWF0IGV4dGVuZHMgU2ltcGxlRGF0ZUZvcm1hdCB7CisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNDYxMDMwMDc1MzEwNDA5OTg5OUw7CisgICAgCisgICAgLy8gVE9ETyBGaW5pc2ggdGhlIGNvbnN0cnVjdG9ycworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXQgZnJvbSBhIGRhdGUgZm9ybWF0IHBhdHRlcm4gYW5kIGxvY2FsZQorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAvLyBUT0RPOiBjb252ZXJ0IHRvIHVzZSBVTG9jYWxlCisgICAgICAgIHN1cGVyKHBhdHRlcm4sIG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlKSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXQgZnJvbSBhIGRhdGUgZm9ybWF0IHBhdHRlcm4gYW5kIGxvY2FsZQorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAvLyBUT0RPOiBjb252ZXJ0IENERlMgdG8gdXNlIFVMb2NhbGUKKyAgICAgICAgLy9zdXBlcihwYXR0ZXJuLCBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGxvY2FsZS50b0xvY2FsZSgpKSwgdHJ1ZSk7CisgICAgICAgc3VwZXIocGF0dGVybiwgbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhsb2NhbGUpLCBsb2NhbGUpOworICAgIH0KKworLy8gTk9URTogVGhpcyBBUEkgc3RpbGwgZXhpc3RzOyB3ZSBqdXN0IGluaGVyaXQgaXQgZnJvbSBTaW1wbGVEYXRlRm9ybWF0CisvLyBhcyBvZiBJQ1UgMy4wCisvLyAgLyoqCisvLyAgICogQHN0YWJsZSBJQ1UgMi4wCisvLyAgICovCisvLyAgcHJvdGVjdGVkIFN0cmluZyBzdWJGb3JtYXQoY2hhciBjaCwgaW50IGNvdW50LCBpbnQgYmVnaW5PZmZzZXQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MsIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsKSAgeworLy8gICAgICBzd2l0Y2ggKGNoKSB7CisvLyAgICAgIGNhc2UgJ0cnOiAvLyAnRycgLSBFUkEKKy8vICAgICAgICAgIHJldHVybiB6ZXJvUGFkZGluZ051bWJlcihjYWwuZ2V0KENhbGVuZGFyLkVSQSksIDEsIDkpOworLy8gICAgICBjYXNlICdsJzogLy8gJ2wnIC0gSVNfTEVBUF9NT05USAorLy8gICAgICAgICAgeworLy8gICAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0KKy8vICAgICAgICAgICAgICAgICAgKENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scykgZm9ybWF0RGF0YTsKKy8vICAgICAgICAgICAgICByZXR1cm4gc3ltYm9scy5nZXRMZWFwTW9udGgoY2FsLmdldCgKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkpOworLy8gICAgICAgICAgfQorLy8gICAgICBkZWZhdWx0OgorLy8gICAgICAgICAgcmV0dXJuIHN1cGVyLnN1YkZvcm1hdChjaCwgY291bnQsIGJlZ2luT2Zmc2V0LCBwb3MsIGZvcm1hdERhdGEsIGNhbCk7CisvLyAgICAgIH0KKy8vICB9ICAgIAorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc3ViRm9ybWF0KFN0cmluZ0J1ZmZlciBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2gsIGludCBjb3VudCwgaW50IGJlZ2luT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSAnRyc6IC8vICdHJyAtIEVSQQorICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCBjYWwuZ2V0KENhbGVuZGFyLkVSQSksIDEsIDkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2wnOiAvLyAnbCcgLSBJU19MRUFQX01PTlRICisgICAgICAgICAgICBidWYuYXBwZW5kKCgoQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKSBnZXRTeW1ib2xzKCkpLgorICAgICAgICAgICAgICAgICAgICAgICBnZXRMZWFwTW9udGgoY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIuc3ViRm9ybWF0KGJ1ZiwgY2gsIGNvdW50LCBiZWdpbk9mZnNldCwgcG9zLCBjYWwpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBUT0RPOiBhZGQgY29kZSB0byBzZXQgRmllbGRQb3NpdGlvbiBmb3IgJ0cnIGFuZCAnbCcgZmllbGRzLiBUaGlzCisgICAgICAgIC8vIGlzIGEgREVTSUdOIEZMQVcgLS0gc3ViY2xhc3NlcyBzaG91bGRuJ3QgaGF2ZSB0byBkdXBsaWNhdGUgdGhlCisgICAgICAgIC8vIGNvZGUgdGhhdCBoYW5kbGVzIHRoaXMgYXQgdGhlIGVuZCBvZiBTaW1wbGVEYXRlRm9ybWF0LnN1YkZvcm1hdC4KKyAgICAgICAgLy8gVGhlIGxvZ2ljIHNob3VsZCBiZSBtb3ZlZCB1cCBpbnRvIFNpbXBsZURhdGVGb3JtYXQuZm9ybWF0LgorICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgc3ViUGFyc2UoU3RyaW5nIHRleHQsIGludCBzdGFydCwgY2hhciBjaCwgaW50IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvYmV5Q291bnQsIGJvb2xlYW4gYWxsb3dOZWdhdGl2ZSwgYm9vbGVhbltdIGFtYmlndW91c1llYXIsIENhbGVuZGFyIGNhbCkgeworICAgICAgICBpZiAoY2ggIT0gJ0cnICYmIGNoICE9ICdsJyAmJiBjaCAhPSAneScpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5zdWJQYXJzZSh0ZXh0LCBzdGFydCwgY2gsIGNvdW50LCBvYmV5Q291bnQsIGFsbG93TmVnYXRpdmUsIGFtYmlndW91c1llYXIsIGNhbCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTa2lwIHdoaXRlc3BhY2UKKyAgICAgICAgc3RhcnQgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKHRleHQsIHN0YXJ0KTsKKworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHN0YXJ0KTsKKworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgJ0cnOiAvLyAnRycgLSBFUkEKKyAgICAgICAgY2FzZSAneSc6IC8vICd5JyAtIFlFQVIsIGJ1dCB3aXRob3V0IHRoZSAyLWRpZ2l0IFkySyBhZGp1c3RtZW50CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG51bWJlciA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKG9iZXlDb3VudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0K2NvdW50KSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoY2ggPT0gJ0cnID8gQ2FsZW5kYXIuRVJBIDogQ2FsZW5kYXIuWUVBUiwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAnbCc6IC8vICdsJyAtIElTX0xFQVBfTU9OVEgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9CisgICAgICAgICAgICAgICAgICAgIChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGdldFN5bWJvbHMoKTsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmlzTGVhcE1vbnRoLCBjYWwpOworICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoZSBhYnNlbmNlIG9mIGFueSBtYXRjaGluZyBzdHJpbmcgYXMgc2V0dGluZworICAgICAgICAgICAgICAgIC8vIElTX0xFQVBfTU9OVEggdG8gZmFsc2UuCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDApOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyBUaGlzIGNhbiBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTRjYzIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBzdWJjbGFzcyBvZiB7QGxpbmsgRGF0ZUZvcm1hdFN5bWJvbHN9IGZvciB7QGxpbmsgQ2hpbmVzZURhdGVGb3JtYXR9LgorICogVGhpcyBjbGFzcyBjb250YWlucyBhZGRpdGlvbmFsIHN5bWJvbHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAqIDxjb2RlPkNoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIPC9jb2RlPiBmaWVsZC4KKyAqCisgKiBAc2VlIENoaW5lc2VEYXRlRm9ybWF0CisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBleHRlbmRzIERhdGVGb3JtYXRTeW1ib2xzIHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDY4Mjc4MTYxMTk3ODM5NTI4OTBMOworICAgIAorICAgIC8qKgorICAgICAqIFBhY2thZ2UtcHJpdmF0ZSBhcnJheSB0aGF0IENoaW5lc2VEYXRlRm9ybWF0IG5lZWRzIHRvIGJlIGFibGUgdG8KKyAgICAgKiByZWFkLgorICAgICAqLworICAgIFN0cmluZyBpc0xlYXBNb250aFtdOyAvLyBEbyBOT1QgYWRkID1udWxsIGluaXRpYWxpemVyCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICB0aGlzKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKENoaW5lc2VDYWxlbmRhci5jbGFzcywgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihDaGluZXNlQ2FsZW5kYXIuY2xhc3MsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgcHJvdmlkZWQgY2FsZW5kYXIgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gY2FsIHRoZSBDYWxlbmRhcgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGNhbD09bnVsbD9udWxsOmNhbC5nZXRDbGFzcygpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIHByb3ZpZGVkIGNhbGVuZGFyIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGNhbCB0aGUgQ2FsZW5kYXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihjYWwgPT0gbnVsbCA/IG51bGwgOiBjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvLyBOZXcgQVBJCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMZWFwTW9udGgoaW50IGlzTGVhcE1vbnRoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmlzTGVhcE1vbnRoW2lzTGVhcE1vbnRoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGxvYywgQ2FsZW5kYXJEYXRhIGNhbERhdGEpIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZURhdGEobG9jLCBjYWxEYXRhKTsKKyAgICAgICAgaXNMZWFwTW9udGggPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJpc0xlYXBNb250aCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDUwZTNlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjg3NSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioqCisgKiBpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworICogaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKyAqLworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogPHA+PGNvZGU+Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yPC9jb2RlPiBpcyBhbiBpdGVyYXRvciBjcmVhdGVkIGJ5CisgKiBhIFJ1bGVCYXNlZENvbGxhdG9yIHRvIHdhbGsgdGhyb3VnaCBhIHN0cmluZy4gVGhlIHJldHVybiByZXN1bHQgb2YKKyAqIGVhY2ggaXRlcmF0aW9uIGlzIGEgMzItYml0IGNvbGxhdGlvbiBlbGVtZW50IHRoYXQgZGVmaW5lcyB0aGUKKyAqIG9yZGVyaW5nIHByaW9yaXR5IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBvciBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzCisgKiBpbiB0aGUgc291cmNlIHN0cmluZy48L3A+CisgKgorICogPHA+Rm9yIGlsbHVzdHJhdGlvbiwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBpbiBTcGFuaXNoOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogImNhIiAtPiB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2MnKSBhbmQgc2Vjb25kCisgKiAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKgorICogU2luY2UgImNoIiBpbiBTcGFuaXNoIHNvcnRzIGFzIG9uZSBlbnRpdHksIHRoZSBiZWxvdyBleGFtcGxlIHJldHVybnMgb25lCisgKiBjb2xsYXRpb24gZWxlbWVudCBmb3IgdGhlIHR3byBjaGFyYWN0ZXJzICdjJyBhbmQgJ2gnCisgKgorICogImNoYSIgLT4gdGhlIGZpcnN0IGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdjaCcpIGFuZCBzZWNvbmQKKyAqICAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEFuZCBpbiBHZXJtYW4sCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTaW5jZSB0aGUgY2hhcmFjdGVyICcmIzIzMDsnIGlzIGEgY29tcG9zZWQgY2hhcmFjdGVyIG9mICdhJyBhbmQgJ2UnLCB0aGUKKyAqIGl0ZXJhdG9yIHJldHVybnMgdHdvIGNvbGxhdGlvbiBlbGVtZW50cyBmb3IgdGhlIHNpbmdsZSBjaGFyYWN0ZXIgJyYjMjMwOycKKyAqCisgKiAiJiMyMzA7YiIgLT4gdGhlIGZpcnN0IGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJyksIHRoZQorICogICAgICAgICAgICAgIHNlY29uZCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnZScpLCBhbmQgdGhlCisgKiAgICAgICAgICAgICAgdGhpcmQgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2InKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICoKKyAqIDxwPkZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiwgdGhlIGNvbGxhdGlvbiBlbGVtZW50IHJlc3VsdHMKKyAqIGNhbiBub3QgYmUgY29tcGFyZWQgc2ltcGx5IGJ5IHVzaW5nIGJhc2ljIGFyaXRobWV0cmljIG9wZXJhdG9ycywKKyAqIGUuZy4gJmx0OywgPT0gb3IgJmd0OywgZnVydGhlciBwcm9jZXNzaW5nIGhhcyB0byBiZSBkb25lLiBEZXRhaWxzCisgKiBjYW4gYmUgZm91bmQgaW4gdGhlIElDVQorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAqIHVzZXIgZ3VpZGU8L2E+LiBBbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAqIGZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiBpcyB0aGUgY2xhc3MKKyAqIDxhIGhyZWY9U3RyaW5nU2VhcmNoLmh0bWw+IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nU2VhcmNoPC9hPi48L3A+CisgKgorICogPHA+VG8gY29uc3RydWN0IGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG9iamVjdCwgdXNlcnMKKyAqIGNhbGwgdGhlIG1ldGhvZCBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoKSBvbiBhCisgKiBSdWxlQmFzZWRDb2xsYXRvciB0aGF0IGRlZmluZXMgdGhlIGRlc2lyZWQgc29ydGluZyBvcmRlci48L3A+CisgKgorICogPHA+IEV4YW1wbGU6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGhpcyBpcyBhIHRlc3QiOworICogIFJ1bGVCYXNlZENvbGxhdG9yIHJiYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmFtcDthJmx0O2IiKTsKKyAqICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IgPSByYmMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RTdHJpbmcpOworICogIGludCBwcmltYXJ5T3JkZXIgPSBpdGVyYXRvci5JR05PUkFCTEU7CisgKiAgd2hpbGUgKHByaW1hcnlPcmRlciAhPSBpdGVyYXRvci5OVUxMT1JERVIpIHsKKyAqICAgICAgaW50IG9yZGVyID0gaXRlcmF0b3IubmV4dCgpOworICogICAgICBpZiAob3JkZXIgIT0gaXRlcmF0b3IuSUdOT1JBQkxFICYmCisgKiAgICAgICAgICBvcmRlciAhPSBpdGVyYXRvci5OVUxMT1JERVIpIHsKKyAqICAgICAgICAgIC8vIG9yZGVyIGlzIHZhbGlkLCBub3QgaWdub3JhYmxlIGFuZCB3ZSBoYXZlIG5vdCBwYXNzZWQgdGhlIGVuZAorICogICAgICAgICAgLy8gb2YgdGhlIGl0ZXJhdGlvbiwgd2UgZG8gc29tZXRoaW5nCisgKiAgICAgICAgICBwcmltYXJ5T3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyKTsKKyAqICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmV4dCBwcmltYXJ5IG9yZGVyIDB4IiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhwcmltYXJ5T3JkZXIpKTsKKyAqICAgICAgfQorICogIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgQ29sbGF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBzZWUgU3RyaW5nU2VhcmNoCisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKK3sKKyAgCisgICAgCisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+VGhpcyBjb25zdGFudCBpcyByZXR1cm5lZCBieSB0aGUgaXRlcmF0b3IgaW4gdGhlIG1ldGhvZHMKKyAgICAgKiBuZXh0KCkgYW5kIHByZXZpb3VzKCkgd2hlbiB0aGUgZW5kIG9yIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICogc291cmNlIHN0cmluZyBoYXMgYmVlbiByZWFjaGVkLCBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgdmFsaWQKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMgdG8gcmV0dXJuLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTlVMTE9SREVSID0gMHhmZmZmZmZmZjsKKworICAgIC8qKgorICAgICAqIDxwPlRoaXMgY29uc3RhbnQgaXMgcmV0dXJuZWQgYnkgdGhlIGl0ZXJhdG9yIGluIHRoZSBtZXRob2RzCisgICAgICogbmV4dCgpIGFuZCBwcmV2aW91cygpIHdoZW4gYSBjb2xsYXRpb24gZWxlbWVudCByZXN1bHQgaXMgdG8gYmUKKyAgICAgKiBpZ25vcmVkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JBQkxFID0gMDsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGNoYXJhY3RlciBvZmZzZXQgaW4gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBuZXh0IGNvbGxhdGlvbiBlbGVtZW50LiBJLmUuLCBnZXRPZmZzZXQoKQorICAgICAqIHJldHVybnMgdGhlIHBvc2l0aW9uIGluIHRoZSBzb3VyY2Ugc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8KKyAgICAgKiBuZXh0KCkuIFRoaXMgdmFsdWUgY291bGQgYmUgYW55IG9mOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IFRoZSBpbmRleCBvZiB0aGUgPGI+Zmlyc3Q8L2I+IGNoYXJhY3RlciBjb3JyZXNwb25kaW5nIHRvCisgICAgICogdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQuIChUaGlzIG1lYW5zIHRoYXQgaWYKKyAgICAgKiA8Y29kZT5zZXRPZmZzZXQob2Zmc2V0KTwvY29kZT4gc2V0cyB0aGUgaW5kZXggaW4gdGhlIG1pZGRsZSBvZgorICAgICAqIGEgY29udHJhY3Rpb24sIDxjb2RlPmdldE9mZnNldCgpPC9jb2RlPiByZXR1cm5zIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNvbnRyYWN0aW9uLCB3aGljaCBtYXkgbm90IGJlIGVxdWFsCisgICAgICogdG8gdGhlIG9yaWdpbmFsIG9mZnNldCB0aGF0IHdhcyBzZXQuIEhlbmNlIGNhbGxpbmcgZ2V0T2Zmc2V0KCkKKyAgICAgKiBpbW1lZGlhdGVseSBhZnRlciBzZXRPZmZzZXQob2Zmc2V0KSBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUKKyAgICAgKiBvcmlnaW5hbCBvZmZzZXQgc2V0IHdpbGwgYmUgcmV0dXJuZWQuKQorICAgICAqIDxsaT4gSWYgbm9ybWFsaXphdGlvbiBpcyBvbiwgdGhlIGluZGV4IG9mIHRoZSA8Yj5pbW1lZGlhdGU8L2I+CisgICAgICogc3Vic2VxdWVudCBjaGFyYWN0ZXIsIG9yIGNvbXBvc2l0ZSBjaGFyYWN0ZXIgd2l0aCB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIsIGhhdmluZyBhIGNvbWJpbmluZyBjbGFzcyBvZiAwLgorICAgICAqIDxsaT4gVGhlIGxlbmd0aCBvZiB0aGUgc291cmNlIHN0cmluZywgaWYgaXRlcmF0aW9uIGhhcyByZWFjaGVkCisgICAgICogdGhlIGVuZC4KKyAgICAgKjwvdWw+CisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgaW4gdGhlIHNvdXJjZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvCisgICAgICogICAgICAgICBuZXh0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyAhPSAtMSkgeworICAgICAgICAgICAgaWYgKG1faXNGb3J3YXJkc18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9GQ0RMaW1pdF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9GQ0RTdGFydF87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fc291cmNlXy5nZXRJbmRleCgpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+IFJldHVybnMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNpb24gc2VxdWVuY2UgdGhhdCBlbmRzIHdpdGgKKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LiBJZiB0aGVyZSBpcyBubyBleHBhbnNpb24gd2l0aCB0aGlzCisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgYXMgdGhlIGxhc3QgZWxlbWVudCwgcmV0dXJucyAxLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gY2UgYSBjb2xsYXRpb24gZWxlbWVudCByZXR1cm5lZCBieSBwcmV2aW91cygpIG9yIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgZXhwYW5zaW9uIHNlcXVlbmNlIGVuZGluZworICAgICAqICAgICAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4RXhwYW5zaW9uKGludCBjZSkKKyAgICB7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGludCBsaW1pdCA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfLmxlbmd0aDsKKyAgICAgICAgbG9uZyB1bnNpZ25lZGNlID0gY2UgJiAweEZGRkZGRkZGbDsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQgLSAxKSB7CisgICAgICAgICAgICBpbnQgbWlkID0gc3RhcnQgKyAoKGxpbWl0IC0gc3RhcnQpID4+IDEpOworICAgICAgICAgICAgbG9uZyBtaWRjZSA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW21pZF0gJiAweEZGRkZGRkZGbDsKKyAgICAgICAgICAgIGlmICh1bnNpZ25lZGNlIDw9IG1pZGNlKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgcmVzdWx0ID0gMTsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW3N0YXJ0XSA9PSBjZSkgeworICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfW3N0YXJ0XTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChsaW1pdCA8IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfLmxlbmd0aCAmJgorICAgICAgICAgICAgICAgICBtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFX1tsaW1pdF0gPT0gY2UpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tsaW1pdF07CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoKGNlICYgMHhGRkZGKSA9PSAweDAwQzApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD4gUmVzZXRzIHRoZSBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLiBUaGUgbmV4dAorICAgICAqIGNhbGwgdG8gbmV4dCgpIG9yIHByZXZpb3VzKCkgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGFuZCBsYXN0CisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHN0cmluZywgcmVzcGVjdGl2ZWx5LjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZSBSdWxlQmFzZWRDb2xsYXRvciB1c2VkIGJ5IHRoaXMgaXRlcmF0b3IgaGFzIGhhZCBpdHMKKyAgICAgKiBhdHRyaWJ1dGVzIGNoYW5nZWQsIGNhbGxpbmcgcmVzZXQoKSB3aWxsIHJlaW5pdGlhbGl6ZSB0aGUKKyAgICAgKiBpdGVyYXRvciB0byB1c2UgdGhlIG5ldyBhdHRyaWJ1dGVzLjwvcD4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRUb1N0YXJ0KCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HZXQgdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgc2VxdWVuY2Ugb2YgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCB3ZXJlIGJ1aWx0IGZyb20gdGhlIHN0cmluZy4gQmVjYXVzZSB0aGVyZSBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBtYXBwaW5nIGZyb20gY2hhcmFjdGVycyB0byBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50cywgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgInJldHVybiB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBbb3Igb3JkZXJpbmcgcHJpb3JpdHldIG9mIHRoZSBuZXh0IGNoYXJhY3RlcgorICAgICAqIGluIHRoZSBzdHJpbmciLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB0aGUKKyAgICAgKiBpdGVyYXRvciBpcyBjdXJyZW50bHkgcG9pbnRpbmcgdG8sIGFuZCB0aGVuIHVwZGF0ZXMgdGhlCisgICAgICogaW50ZXJuYWwgcG9pbnRlciB0byBwb2ludCB0byB0aGUgbmV4dCBlbGVtZW50LiAgUHJldmlvdXMoKQorICAgICAqIHVwZGF0ZXMgdGhlIHBvaW50ZXIgZmlyc3QsIGFuZCB0aGVuIHJldHVybnMgdGhlIGVsZW1lbnQuIFRoaXMKKyAgICAgKiBtZWFucyB0aGF0IHdoZW4geW91IGNoYW5nZSBkaXJlY3Rpb24gd2hpbGUgaXRlcmF0aW5nIChpLmUuLAorICAgICAqIGNhbGwgbmV4dCgpIGFuZCB0aGVuIGNhbGwgcHJldmlvdXMoKSwgb3IgY2FsbCBwcmV2aW91cygpIGFuZAorICAgICAqIHRoZW4gY2FsbCBuZXh0KCkpLCB5b3UnbGwgZ2V0IGJhY2sgdGhlIHNhbWUgZWxlbWVudCB0d2ljZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvbGxhdGlvbiBlbGVtZW50IG9yIE5VTExPUkRFUiBpZiB0aGUgZW5kIG9mIHRoZQorICAgICAqICAgICAgICAgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkc18gPSB0cnVlOworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID4gMCkgeworICAgICAgICAgICAgaWYgKG1fQ0VCdWZmZXJPZmZzZXRfIDwgbV9DRUJ1ZmZlclNpemVfKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGV4cGFuc2lvbnMgbGVmdCBpbiB0aGUgYnVmZmVyLCB3ZSByZXR1cm4gaXQKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF8gKytdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMDsKKyAgICAgICAgfQorIAorICAgICAgICBpbnQgY2hfaW50ID0gbmV4dENoYXIoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjaF9pbnQgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMT1JERVI7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gKGNoID49IDB4MzA0MCAmJiBjaCA8PSAweDMwOWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIShjaCA+IDB4MzA5NCAmJiBjaCA8IDB4MzA5ZCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gTlVMTE9SREVSOworICAgICAgICBpZiAoY2ggPD0gMHhGRikgeworICAgICAgICAgICAgLy8gRm9yIGxhdGluLTEgY2hhcmFjdGVycyB3ZSBuZXZlciBuZWVkIHRvIGZhbGwgYmFjayB0byB0aGUgVUNBCisgICAgICAgICAgICAvLyB0YWJsZSBiZWNhdXNlIGFsbCBvZiB0aGUgVUNBIGRhdGEgaXMgcmVwbGljYXRlZCBpbiB0aGUKKyAgICAgICAgICAgIC8vIGxhdGluT25lTWFwcGluZyBhcnJheQorICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdCkpOworICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlIGxlYWRzIGFyZSBoYW5kbGVkIGFzIHNwZWNpYWwgY2VzCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFNwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfICYmIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIGNvdWxkbid0IGZpbmQgYSBnb29kIENFIGluIHRoZSB0YWlsb3JpbmcKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgaGVyZSwgdGhlIGNvZGVwb2ludCBNVVNUIGJlIG92ZXIgMHhGRiAtIHNvIHdlIGxvb2sKKyAgICAgICAgICAgICAgICAvLyBkaXJlY3RseSBpbiB0aGUgVUNBCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFVDQSBhbHNvIGdpdmVzIHVzIGEgc3BlY2lhbCBDRQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLCByZXN1bHQsIGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsgCisgICAgICAgICAgICAvLyBtYXliZSB0aGVyZSBpcyBubyBVQ0EsIHVubGlrZWx5IGluIEphdmEsIGJ1dCBwb3J0ZWQgZm9yIGNvbnNpc3RlbmN5CisgICAgICAgICAgICByZXN1bHQgPSBuZXh0SW1wbGljaXQoY2gpOyAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgcHJldmlvdXMgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgc2VxdWVuY2Ugb2YgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCB3ZXJlIGJ1aWx0IGZyb20gdGhlIHN0cmluZy4gQmVjYXVzZSB0aGVyZSBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBtYXBwaW5nIGZyb20gY2hhcmFjdGVycyB0byBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50cywgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgInJldHVybiB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBbb3Igb3JkZXJpbmcgcHJpb3JpdHldIG9mIHRoZSBwcmV2aW91cworICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIi48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIGl0ZXJhdG9yJ3MgaW50ZXJuYWwgcG9pbnRlciB0bworICAgICAqIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudCBwcmVjZWRpbmcgdGhlIG9uZSBpdCdzIGN1cnJlbnRseQorICAgICAqIHBvaW50aW5nIHRvIGFuZCB0aGVuIHJldHVybnMgdGhhdCBlbGVtZW50LCB3aGlsZSBuZXh0KCkgcmV0dXJucworICAgICAqIHRoZSBjdXJyZW50IGVsZW1lbnQgYW5kIHRoZW4gdXBkYXRlcyB0aGUgcG9pbnRlci4gVGhpcyBtZWFucworICAgICAqIHRoYXQgd2hlbiB5b3UgY2hhbmdlIGRpcmVjdGlvbiB3aGlsZSBpdGVyYXRpbmcgKGkuZS4sIGNhbGwKKyAgICAgKiBuZXh0KCkgYW5kIHRoZW4gY2FsbCBwcmV2aW91cygpLCBvciBjYWxsIHByZXZpb3VzKCkgYW5kIHRoZW4KKyAgICAgKiBjYWxsIG5leHQoKSksIHlvdSdsbCBnZXQgYmFjayB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvbGxhdGlvbiBlbGVtZW50LCBvciBOVUxMT1JERVIgd2hlbiB0aGUgc3RhcnQgb2YKKyAgICAgKiAgICAgICAgICAgICB0aGUgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2VfLmdldEluZGV4KCkgPD0gMCAmJiBtX2lzRm9yd2FyZHNfKSB7CisgICAgICAgICAgICAvLyBpZiBpdGVyYXRvciBpcyBuZXcgb3IgcmVzZXQsIHdlIGNhbiBpbW1lZGlhdGUgcGVyZm9ybSAgYmFja3dhcmRzCisgICAgICAgICAgICAvLyBpdGVyYXRpb24gZXZlbiB3aGVuIHRoZSBvZmZzZXQgaXMgbm90IHJpZ2h0LgorICAgICAgICAgICAgbV9zb3VyY2VfLnNldFRvTGltaXQoKTsKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICAgICAgfQorICAgICAgICBtX2lzRm9yd2FyZHNfID0gZmFsc2U7CisgICAgICAgIGludCByZXN1bHQgPSBOVUxMT1JERVI7CisgICAgICAgIGlmIChtX0NFQnVmZmVyU2l6ZV8gPiAwKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlck9mZnNldF8gPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWy0tIG1fQ0VCdWZmZXJPZmZzZXRfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNoX2ludCA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICBpZiAoY2hfaW50ID09IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTE9SREVSOworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XykgeworICAgICAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IChjaCA+PSAweDMwNDAgJiYgY2ggPD0gMHgzMDlmKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9jb2xsYXRvcl8uaXNDb250cmFjdGlvbkVuZChjaCkgJiYgIWlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXNTcGVjaWFsKG1fY29sbGF0b3JfLCBDRV9DT05UUkFDVElPTl8sIGNoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSAweEZGKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c1NwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xsYXRvcl8uaXNDb250cmFjdGlvbkVuZChjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ0VfQ09OVFJBQ1RJT05fOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5VQ0FfICE9IG51bGwpIHsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXNTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJpbWFyeSBvcmRlciBvZiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LAorICAgICAqIGkuZS4gdGhlIGZpcnN0IDE2IGJpdHMuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgMTYgYml0cyBwcmltYXJ5IG9yZGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IHByaW1hcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgID4+PiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXzsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgb3JkZXIgb2YgdGhlIHNwZWNpZmllZCBjb2xsYXRpb24gZWxlbWVudCwKKyAgICAgKiBpLmUuIHRoZSAxNnRoIHRvIDIzdGggYml0cywgaW5jbHVzaXZlLiAgVGhpcyB2YWx1ZSBpcyB1bnNpZ25lZC4KKyAgICAgKiBAcGFyYW0gY2UgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0aGUgZWxlbWVudCdzIDggYml0cyBzZWNvbmRhcnkgb3JkZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBzZWNvbmRhcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX01BU0tfKQorICAgICAgICAgICAgPj4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX1NISUZUXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRlcnRpYXJ5IG9yZGVyIG9mIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQsIGkuZS4gdGhlIGxhc3QKKyAgICAgKiA4IGJpdHMuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgOCBiaXRzIHRlcnRpYXJ5IG9yZGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgdGVydGlhcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gU2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LiBUaGUKKyAgICAgKiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvIG5leHQoKSB3aWxsIGJlIHRoZSBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNoYXJhY3RlcnMgYXQgb2Zmc2V0LjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIG9mZnNldCBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyCisgICAgICogc2VxdWVuY2UsIHRoZSBpdGVyYXRvciBpcyBhZGp1c3RlZCB0byB0aGUgc3RhcnQgb2YgdGhlCisgICAgICogY29udHJhY3Rpbmcgc2VxdWVuY2UuIFRoaXMgbWVhbnMgdGhhdCBnZXRPZmZzZXQoKSBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHJldHVybiB0aGUgc2FtZSB2YWx1ZSBzZXQgYnkgdGhpcyBtZXRob2QuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBpcyBvbiwgYW5kIG9mZnNldCBpcyBpbiB0aGUgbWlkZGxlCisgICAgICogb2YgYSBkZWNvbXBvc2libGUgcmFuZ2Ugb2Ygc291cmNlIHRleHQsIHRoZSBpdGVyYXRvciBtYXkgbm90CisgICAgICogcmV0dXJuIGEgY29ycmVjdCByZXN1bHQgZm9yIHRoZSBuZXh0IGZvcndhcmRzIG9yIGJhY2t3YXJkcworICAgICAqIGl0ZXJhdGlvbi4gIFRoZSB1c2VyIG11c3QgZW5zdXJlIHRoYXQgdGhlIG9mZnNldCBpcyBub3QgaW4gdGhlCisgICAgICogbWlkZGxlIG9mIGEgZGVjb21wb3NpYmxlIHJhbmdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIGNoYXJhY3RlciBvZmZzZXQgaW50byB0aGUgb3JpZ2luYWwgc291cmNlIHN0cmluZyB0bworICAgICAqICAgICAgICBzZXQuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhbiBvZmZzZXQgaW50byB0aGUgY29ycmVzcG9uZGluZworICAgICAqICAgICAgICBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0T2Zmc2V0KGludCBvZmZzZXQpCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgaW50IGNoX2ludCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgIGNoYXIgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgIGlmIChjaF9pbnQgIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUoY2gpKSB7CisgICAgICAgICAgICAvLyBpZiBpdCBpcyB1bnNhZmUgd2UgbmVlZCB0byBjaGVjayBpZiBpdCBpcyBwYXJ0IG9mIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIC8vIG9yIGEgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgaXQgaXMgYSBzdXJyb2dhdGUgcGFpciB3ZSBtb3ZlIHVwIG9uZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBjaGFyIHByZXZjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHByZXZjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG9mZnNldCk7IC8vIGdvIGJhY2sgdG8gdGhlIHNhbWUgaW5kZXgKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBjb3VsZCBiZSBwYXJ0IG9mIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBiYWNrdXAgdG8gYSBzYWZlIHBvaW50IGFuZCBpdGVyYXRlIHRpbGwgd2UgcGFzcyBvZmZzZXQKKyAgICAgICAgICAgICAgICB3aGlsZSAobV9zb3VyY2VfLmdldEluZGV4KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbV9jb2xsYXRvcl8uaXNVbnNhZmUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgICAgICAgICAgICAgaW50IHByZXZvZmZzZXQgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldm9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChwcmV2b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgICAgIC8vIGRpcmVjdGlvbiBjb2RlIHRvIHByZXZlbnQgbmV4dCBhbmQgcHJldmlvdXMgZnJvbSByZXR1cm5pbmcgYSAKKyAgICAgICAgLy8gY2hhcmFjdGVyIGlmIHdlIGFyZSBhbHJlYWR5IGF0IHRoZSBlbmRzCisgICAgICAgIG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBpZiAob2Zmc2V0ID09IDAvKiBtX3NvdXJjZV8uZ2V0QmVnaW5JbmRleCgpICovKSB7CisgICAgICAgICAgICAvLyBwcmV2ZW50aW5nIHByZXZpb3VzKCkgZnJvbSByZXR1cm5pbmcgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgCisgICAgICAgICAgICAvLyB0aGUgc3RyaW5nIGFnYWluIGlmIHdlIGFyZSBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgICAgICBtX2lzRm9yd2FyZHNfID0gZmFsc2U7IAorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG9mZnNldCA9PSBtX3NvdXJjZV8uZ2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIHByZXZlbnRpbmcgbmV4dCgpIGZyb20gcmV0dXJuaW5nIGNoYXJhY3RlcnMgZnJvbSB0aGUgc3RhcnQgb2YgCisgICAgICAgICAgICAvLyB0aGUgc3RyaW5nIGFnYWluIGlmIHdlIGFyZSBhdCB0aGUgZW5kCisgICAgICAgICAgICBtX2lzRm9yd2FyZHNfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCBhIG5ldyBzb3VyY2Ugc3RyaW5nIGZvciBpdGVyYXRpb24sIGFuZCByZXNldCB0aGUgb2Zmc2V0CisgICAgICogdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBuZXcgc291cmNlIHN0cmluZyBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHNvdXJjZSkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+U2V0IGEgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbiwgYW5kIHJlc2V0IHRoZQorICAgICAqIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5UaGUgc291cmNlIGl0ZXJhdG9yJ3MgaW50ZWdyaXR5IHdpbGwgYmUgcHJlc2VydmVkIHNpbmNlIGEgbmV3IGNvcHkKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS48L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXy5zZXRUZXh0KHNvdXJjZS5nZXRUZXh0KCkpOworICAgICAgICBtX3NvdXJjZV8gPSBtX3NyY1V0aWxJdGVyXzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgYSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLCBhbmQgcmVzZXQgdGhlCisgICAgICogb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIG5ldyBzb3VyY2Ugc3RyaW5nIGl0ZXJhdG9yIGZvciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBuZXcgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHNvdXJjZSk7CisgICAgICAgIG1fc291cmNlXy5zZXRUb1N0YXJ0KCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWlzY2VsbGFuZW91cyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0aGF0IGFyZ3VtZW50IG9iamVjdCBpcyBlcXVhbHMgdG8gdGhpcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuCisgICAgICogSXRlcmF0b3JzIGFyZSBlcXVhbCBpZiB0aGUgb2JqZWN0cyB1c2VzIHRoZSBzYW1lIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAqIHRoZSBzYW1lIHNvdXJjZSB0ZXh0IGFuZCBoYXZlIHRoZSBzYW1lIGN1cnJlbnQgcG9zaXRpb24gaW4gaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSB0aGF0IG9iamVjdCB0byB0ZXN0IGlmIGl0IGlzIGVxdWFscyB0byB0aGlzCisgICAgICogICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KQorICAgIHsKKyAgICAgICAgaWYgKHRoYXQgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoYXQgaW5zdGFuY2VvZiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IpIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0aGF0Y2VpdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKXRoYXQ7CisgICAgICAgICAgICBpZiAoIW1fY29sbGF0b3JfLmVxdWFscyh0aGF0Y2VpdGVyLm1fY29sbGF0b3JfKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrcyB0aGUgdGV4dCAKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSB0aGF0Y2VpdGVyLm1fc291cmNlXy5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgJiYgbV9zb3VyY2VfLmdldFRleHQoKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXRjZWl0ZXIubV9zb3VyY2VfLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBzdHJpbmcgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsIHdhbGsgdGhyb3VnaAorICAgICAqIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5IHRoZQorICAgICAqIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZyBzb3VyY2UsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICBtX0NFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX0lOSVRfU0laRV9dOworICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbnN0cnVjdG9yLiBUaGlzIHRha2VzIGEgc291cmNlCisgICAgICogY2hhcmFjdGVyIGl0ZXJhdG9yIGFuZCBhIFJ1bGVCYXNlZENvbGxhdG9yLiBUaGUgaXRlcmF0b3Igd2lsbAorICAgICAqIHdhbGsgdGhyb3VnaCB0aGUgc291cmNlIHN0cmluZyBiYXNlZCBvbiB0aGUgcnVsZXMgZGVmaW5lZCBieQorICAgICAqIHRoZSBjb2xsYXRvci4gSWYgdGhlIHNvdXJjZSBzdHJpbmcgaXMgZW1wdHksIE5VTExPUkRFUiB3aWxsIGJlCisgICAgICogcmV0dXJuZWQgb24gdGhlIGZpcnN0IGNhbGwgdG8gbmV4dCgpLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc291cmNlXyA9IG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgbV9DRUJ1ZmZlcl8gPSBuZXcgaW50W0NFX0JVRkZFUl9JTklUX1NJWkVfXTsKKyAgICAgICAgbV9idWZmZXJfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBtX3V0aWxTcGVjaWFsQmFja1VwXyA9IG5ldyBCYWNrdXAoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBjaGFyYWN0ZXIgaXRlcmF0b3IgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsCisgICAgICogd2FsayB0aHJvdWdoIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5CisgICAgICogdGhlIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyBpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlLmdldFRleHQoKSk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICBtX0NFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX0lOSVRfU0laRV9dOworICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiBjdXJyZW50IGNvZGVwb2ludCB3YXMgSGlyYWdhbmEKKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV87CisgICAgLyoqCisgICAgICogUG9zaXRpb24gaW4gdGhlIG9yaWdpbmFsIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoIGEgbm9uLUZDRCBzZXF1ZW5jZQorICAgICAqLworICAgIGludCBtX0ZDRFN0YXJ0XzsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBDRSBmcm9tIENFcyBidWZmZXIgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogSW5pdGlhbCB2YWx1ZSBpcyAwLgorICAgICAqIEZvcndhcmRzIGl0ZXJhdGlvbiB3aWxsIGVuZCB3aXRoIG1fQ0VCdWZmZXJPZmZzZXRfID09IG1fQ0VCdWZmZXJTaXplXywKKyAgICAgKiBiYWNrd2FyZHMgd2lsbCBlbmQgd2l0aCBtX0NFQnVmZmVyT2Zmc2V0XyA9PSAwLgorICAgICAqIFRoZSBuZXh0L3ByZXZpb3VzIGFmdGVyIHdlIHJlYWNoIHRoZSBlbmQvYmVnaW5uaW5nIG9mIHRoZSBtX0NFQnVmZmVyXworICAgICAqIHdpbGwgY2F1c2UgdGhpcyB2YWx1ZSB0byBiZSByZXNldCB0byAwLgorICAgICAqLworICAgIGludCBtX0NFQnVmZmVyT2Zmc2V0XzsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIHRvIHdoaWNoIHdlIGhhdmUgc3RvcmVkIHByb2Nlc3NlZCBDRXMuCisgICAgICogSW5pdGlhbCB2YWx1ZSBpcyAwLgorICAgICAqIFRoZSBuZXh0L3ByZXZpb3VzIGFmdGVyIHdlIHJlYWNoIHRoZSBlbmQvYmVnaW5uaW5nIG9mIHRoZSBtX0NFQnVmZmVyXworICAgICAqIHdpbGwgY2F1c2UgdGhpcyB2YWx1ZSB0byBiZSByZXNldCB0byAwLgorICAgICAqLworICAgIGludCBtX0NFQnVmZmVyU2l6ZV87CisgICAgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfID0gMHhGMDAwMDAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0VYUEFOU0lPTl9UQUdfID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OX1RBR18gPSAyOworICAgIC8qKiAKKyAgICAgKiBDb2xsYXRlIERpZ2l0cyBBcyBOdW1iZXJzIChDT0RBTikgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0RJR0lUX1RBR18gPSAxMzsKKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvbGxhdG9yIHVzZWQuCisgICAgICogSW50ZXJuYWwgdXNlLCBhbGwgZGF0YSBtZW1iZXJzIHdpbGwgYmUgcmVzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRvIHNldAorICAgICAqLworICAgIHZvaWQgc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciAodGhlIHBhcmFtZXRlciBpcyBhIENIQVJBQ1RFUiBvZmZzZXQgaW4gdGhlCisgICAgICogb3JpZ2luYWwgc3RyaW5nLCBub3QgYW4gb2Zmc2V0IGludG8gaXRzIGNvcnJlc3BvbmRpbmcgc2VxdWVuY2Ugb2YKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMpLiBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0byBuZXh0KCkKKyAgICAgKiB3aWxsIGJlIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24KKyAgICAgKiBpbiB0aGUgdGV4dC4gVW5saWtlIHRoZSBwdWJsaWMgbWV0aG9kIHNldE9mZnNldChpbnQpLCB0aGlzIG1ldGhvZCBkb2VzCisgICAgICogbm90IHRyeSB0byByZWFkanVzdCB0aGUgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLgorICAgICAqIGdldE9mZnNldCgpIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHdhcyBwYXNzZWQgdG8gYQorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG5ldyBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHRleHQgdG8gc2V0LgorICAgICAqLworICAgIHZvaWQgc2V0RXhhY3RPZmZzZXQoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGl0ZXJhdG9yIGlzIGluIHRoZSBidWZmZXIgem9uZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdGVyYXRvciBpcyBpbiBidWZmZXIgem9uZSwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgYm9vbGVhbiBpc0luQnVmZmVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2J1ZmZlck9mZnNldF8gPiAwOworICAgIH0KKworICAgCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciAodGhlIHBhcmFtZXRlciBpcyBhIENIQVJBQ1RFUiBvZmZzZXQgaW4gdGhlCisgICAgICogb3JpZ2luYWwgc3RyaW5nLCBub3QgYW4gb2Zmc2V0IGludG8gaXRzIGNvcnJlc3BvbmRpbmcgc2VxdWVuY2Ugb2YKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMpLiBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0byBuZXh0KCkKKyAgICAgKiB3aWxsIGJlIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24KKyAgICAgKiBpbiB0aGUgdGV4dC4gVW5saWtlIHRoZSBwdWJsaWMgbWV0aG9kIHNldE9mZnNldChpbnQpLCB0aGlzIG1ldGhvZCBkb2VzCisgICAgICogbm90IHRyeSB0byByZWFkanVzdCB0aGUgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLgorICAgICAqIGdldE9mZnNldCgpIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHdhcyBwYXNzZWQgdG8gYQorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBzb3VyY2UKKyAgICAgKi8KKyAgICB2b2lkIHNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlLmdldFRleHQoKSk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEJhY2t1cCBkYXRhIGNsYXNzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQmFja3VwCisgICAgeworICAgICAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIG5vbiBGQ0Qgc2VxdWVuY2UgbGltaXQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9GQ0RMaW1pdF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgbm9uIEZDRCBzZXF1ZW5jZSBzdGFydAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBpZiBwcmV2aW91cyBDb2RlcG9pbnQgaXMgSGlyYWdhbmEgcXVhdGVuYXJ5CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIGJ1ZmZlciBwb3NpdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX2J1ZmZlck9mZnNldF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgc291cmNlIGl0ZXJhdG9yIG9mZnNldAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX29mZnNldF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgYnVmZmVyIGNvbnRlbnRzCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIG1fYnVmZmVyXzsKKworICAgICAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgY29uc3RydWN0b3IKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBCYWNrdXAoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gZW5kIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRGlyZWN0aW9uIG9mIHRyYXZlbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRm9yd2FyZHNfOworICAgIC8qKgorICAgICAqIFNvdXJjZSBzdHJpbmcgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJJdGVyYXRvciBtX3NvdXJjZV87CisgICAgLyoqCisgICAgICogVGhpcyBpcyBwb3NpdGlvbiB0byB0aGUgbV9idWZmZXJfLCAtMSBpZiBpdGVyYXRvciBpcyBub3QgaW4gbV9idWZmZXJfCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9idWZmZXJPZmZzZXRfOworICAgIC8qKgorICAgICAqIEJ1ZmZlciBmb3IgdGVtcG9yYXJ5IHN0b3JhZ2Ugb2Ygbm9ybWFsaXplZCBjaGFyYWN0ZXJzLCBkaXNjb250aWd1b3VzCisgICAgICogY2hhcmFjdGVycyBhbmQgVGhhaSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV9idWZmZXJfOworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgdG8gY29udGludWUgZm9yd2FyZCBGQ0QgY2hlY2sgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX0ZDRExpbWl0XzsKKyAgICAvKioKKyAgICAgKiBUaGUgY29sbGF0b3IgdGhpcyBpdGVyYXRvciBpcyBiYXNlZCBvbgorICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgLyoqCisgICAgICogdHJ1ZSBpZiBIaXJhZ2FuYSBxdWF0ZW5hcnkgaXMgb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87CisgICAgLyoqCisgICAgICogQ0UgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9DRUJ1ZmZlcl9bXTsKKyAgICAvKioKKyAgICAgKiBJbiByZWFsaXR5IHdlIHNob3VsZCBub3QgaGF2ZSB0byBkZWFsIHdpdGggZXhwYW5zaW9uIHNlcXVlbmNlcyBsb25nZXIKKyAgICAgKiB0aGVuIDE2LiBIb3dldmVyIHRoaXMgdmFsdWUgY2FuIGJlIGNoYW5nZSBpZiBhIGJpZ2dlciBidWZmZXIgaXMgbmVlZGVkLgorICAgICAqIE5vdGUsIGlmIHRoZSBzaXplIGlzIGNoYW5nZSB0byB0b28gc21hbGwgYSBudW1iZXIsIEJJRyB0cm91YmxlLgorICAgICAqIFJlYXNvbmFibGUgc21hbGwgdmFsdWUgaXMgYXJvdW5kIDEwLCBpZiB0aGVyZSdzIG5vIEFyYWJpYyBvciBvdGhlcgorICAgICAqIGZ1bmt5IGNvbGxhdGlvbnMgdGhhdCBoYXZlIGxvbmcgZXhwYW5zaW9uIHNlcXVlbmNlLiBUaGlzIGlzIHRoZSBsb25nZXN0CisgICAgICogZXhwYW5zaW9uIHNlcXVlbmNlIHRoaXMgY2FuIGhhbmRsZSB3aXRob3V0IGJvbWJpbmcgb3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CVUZGRVJfSU5JVF9TSVpFXyA9IDUxMjsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBmb3Igc3BlY2lhbCBwcm9jZXNzaW5nIGlubmVyIGNhc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEJhY2tVcF87CisgICAgLyoqCisgICAgICogQmFja3VwIHN0b3JhZ2UgaW4gc3BlY2lhbCBwcm9jZXNzaW5nIGVudHJ5IHN0YXRlCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBpbiBzcGVjaWFsIHByb2Nlc3NpbmcgZGlzY29udGlndW91cyBzdGF0ZQorICAgICAqLworICAgIHByaXZhdGUgQmFja3VwIG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IgbV9zcmNVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3V0aWxTa2lwcGVkQnVmZmVyXzsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3V0aWxDb2xFSXRlcl87CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IG5vbi16ZXJvIGNvbWJpbmluZyBjbGFzcyBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyA9IDB4QzA7CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlciB3aXRoIGxlYWRpbmcgbm9uLXplcm8gY29tYmluaW5nCisgICAgICogY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyA9IDB4MzAwOworICAgIC8qKgorICAgICAqIE1hc2sgZm9yIHRoZSBsYXN0IGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBTaGlmdCB2YWx1ZSBmb3IgdGhlIHNlY29uZCBsYXN0IGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EX0xBU1RfQllURV9TSElGVF8gPSA4OworCisgICAgLy8gc3BlY2lhbCBjZSB2YWx1ZXMgYW5kIHRhZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9FWFBBTlNJT05fID0gMHhGMTAwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVFJBQ1RJT05fID0gMHhGMjAwMDAwMDsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIGxhc3QgY2UgaGFzIGJlZW4gY29uc3VtZWQuIENvbXBhcmUgd2l0aCBOVUxMT1JERVIuCisgICAgICogTlVMTE9SREVSIGlzIHJldHVybmVkIGlmIGVycm9yIG9jY3Vycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfID0gMHgwMDAxMDEwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfUFJJTUFSWV8gPSAweDAwMDEwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT19NT1JFX0NFU19TRUNPTkRBUllfID0gMHgwMDAwMDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfVEVSVElBUllfID0gMHgwMDAwMDAwMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfVEFHXyA9IDA7CisgICAgLyoqCisgICAgICogQ2hhcnNldCBwcm9jZXNzaW5nLCBub3QgeWV0IGltcGxlbWVudGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NIQVJTRVRfVEFHXyA9IDQ7CisgICAgLyoqCisgICAgICogQUMwMC1EN0FGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0hBTkdVTF9TWUxMQUJMRV9UQUdfID0gNjsKKyAgICAvKioKKyAgICAgKiBEODAwLURCRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTEVBRF9TVVJST0dBVEVfVEFHXyA9IDc7CisgICAgLyoqCisgICAgICogREMwMC1ERkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RSQUlMX1NVUlJPR0FURV9UQUdfID0gODsKKyAgICAvKioKKyAgICAgKiAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NKS19JTVBMSUNJVF9UQUdfID0gOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSU1QTElDSVRfVEFHXyA9IDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ19QUk9DX1RBR18gPSAxMTsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgMyBieXRlIHByaW1hcnkgd2l0aCBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4KKyAgICAgKiBJdCBmaXRzIGluIGEgc2luZ2xlIDMyIGJpdCBDRSBhbmQgaXMgdXNlZCBpbnN0ZWFkIG9mIGV4cGFuc2lvbiB0byBzYXZlCisgICAgICogc3BhY2Ugd2l0aG91dCBhZmZlY3RpbmcgdGhlIHBlcmZvcm1hbmNlIChob3BlZnVsbHkpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MT05HX1BSSU1BUllfVEFHXyA9IDEyOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NFX1RBR1NfQ09VTlQgPSAxNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQllURV9DT01NT05fID0gMHgwNTsKKworICAgIC8vIGVuZCBzcGVjaWFsIGNlIHZhbHVlcyBhbmQgdGFncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfU0JBU0VfID0gMHhBQzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfTEJBU0VfID0gMHgxMTAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVkJBU0VfID0gMHgxMTYxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVEJBU0VfID0gMHgxMUE3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVkNPVU5UXyA9IDIxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVENPVU5UXyA9IDI4OworCisgICAgLy8gQ0pLIHN0dWZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19CQVNFXyA9IDB4NEUwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0xJTUlUXyA9IDB4OUZGRisxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfQkFTRV8gPSAweEZBMEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRfVVNFRF9MSU1JVF8gPSAweEZBMkYgKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQV9CQVNFXyA9IDB4MzQwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0FfTElNSVRfID0gMHg0REJGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfQkFTRV8gPSAweDIwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQl9MSU1JVF8gPSAweDJBNkRGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NKS19PRkZTRVRfID0gMHgxMTAwMDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHICA9ICBJQ1VEZWJ1Zy5lbmFibGVkKCJjb2xsYXRvciIpOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciBpbnRlcm5hbGx5CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUludGVybmFsU3RhdGUoKQorICAgIHsKKyAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IGZhbHNlOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAtMTsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAwOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX0ZDRExpbWl0XyA9IC0xOworICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fc291cmNlXy5nZXRMZW5ndGgoKTsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9pc0ZvcndhcmRzXyA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFja3VwIHRoZSBjdXJyZW50IGludGVybmFsIHN0YXRlCisgICAgICogQHBhcmFtIGJhY2t1cCBvYmplY3QgdG8gc3RvcmUgdGhlIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYmFja3VwSW50ZXJuYWxTdGF0ZShCYWNrdXAgYmFja3VwKQorICAgIHsKKyAgICAgICAgYmFja3VwLm1fb2Zmc2V0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBiYWNrdXAubV9GQ0RMaW1pdF8gPSBtX0ZDRExpbWl0XzsKKyAgICAgICAgYmFja3VwLm1fRkNEU3RhcnRfID0gbV9GQ0RTdGFydF87CisgICAgICAgIGJhY2t1cC5tX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gbV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgYmFja3VwLm1fYnVmZmVyT2Zmc2V0XyA9IG1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgYmFja3VwLm1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICBpZihJQ1VEZWJ1Zy5pc0pESzE0T3JIaWdoZXIpeworICAgICAgICAgICAgICAgIGJhY2t1cC5tX2J1ZmZlcl8uYXBwZW5kKG1fYnVmZmVyXyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBiYWNrdXAubV9idWZmZXJfLmFwcGVuZChtX2J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGUgdGhlIGl0ZXJhdG9yIGludGVybmFsbHkgd2l0aCBiYWNrZWQtdXAgc3RhdGUKKyAgICAgKiBAcGFyYW0gYmFja3VwIG9iamVjdCB0aGF0IHN0b3JlZCB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVJbnRlcm5hbFN0YXRlKEJhY2t1cCBiYWNrdXApCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoYmFja3VwLm1fb2Zmc2V0Xyk7CisgICAgICAgIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSBiYWNrdXAubV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gYmFja3VwLm1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgbV9GQ0RMaW1pdF8gPSBiYWNrdXAubV9GQ0RMaW1pdF87CisgICAgICAgIG1fRkNEU3RhcnRfID0gYmFja3VwLm1fRkNEU3RhcnRfOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgIC8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZChiYWNrdXAubV9idWZmZXJfLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBmYXN0IGNvbWJpbmluZyBjbGFzcyByZXRyaWV2YWwgc3lzdGVtLgorICAgICAqIEBwYXJhbSBjaCBVVEYxNiBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIGNvbWJpbmluZyBjbGFzcyBvZiBjaAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA+PSBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfICYmCisgICAgICAgICAgICBtX2NvbGxhdG9yXy5pc1Vuc2FmZSgoY2hhciljaCkgfHwgY2ggPiAweEZGRkYpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgbm9ybWFsaXphdGlvbiwgdGhpcyBpcyBhbiBlc3NlbnRpYWwgb3B0aW1pemF0aW9uLgorICAgICAqIEFzc3VtaW5nIEZDRCBjaGVja3MgaGFzIGJlZW4gZG9uZSwgbm9ybWFsaXplIHRoZSBub24tRkNEIGNoYXJhY3RlcnMgaW50bworICAgICAqIHRoZSBidWZmZXIuCisgICAgICogU291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbm9ybWFsaXplKCkKKyAgICB7CisgICAgICAgIGludCBzaXplID0gbV9GQ0RMaW1pdF8gLSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNEU3RhcnRfKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKChjaGFyKW1fc291cmNlXy5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShtX2J1ZmZlcl8udG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKGRlY29tcCk7CisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgRkNEIGNoZWNrIGFuZCBub3JtYWxpemF0aW9uLiBHZXRzIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyCisgICAgICogcG9zaXRpb24gYW5kIGRldGVybWluZXMgaWYgdGhlIGluLWJldHdlZW4gY2hhcmFjdGVycyBuZWVkcyBub3JtYWxpemF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5XaGVuIGVudGVyaW5nLCB0aGUgc3RhdGUgaXMga25vd24gdG8gYmUgdGhpczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPldlIGFyZSB3b3JraW5nIG9uIHNvdXJjZSBzdHJpbmcsIG5vdCB0aGUgYnVmZmVyLgorICAgICAqIDxsaT5UaGUgbGVhZGluZyBjb21iaW5pbmcgY2xhc3MgZnJvbSB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgMCBvciB0aGUKKyAgICAgKiAgICAgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBwcmV2aW91cyBjaGFyIHdhcyB6ZXJvLgorICAgICAqIDwvdWw+CisgICAgICogSW5jb21pbmcgc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIFJldHVybiBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBvZmZzZXQgY3VycmVudCBjaGFyYWN0ZXIgb2Zmc2V0CisgICAgICogQHJldHVybiB0cnVlIGlmIEZDRENoZWNrIHBhc3NlcywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIEZDRENoZWNrKGNoYXIgY2gsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisKKyAgICAgICAgLy8gR2V0IHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAgICAvLyBJZiBpdCdzIHplcm8sIHdlIGFyZSBPSy4KKyAgICAgICAgbV9GQ0RTdGFydF8gPSBvZmZzZXQ7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICAvLyB0cmllIGFjY2VzcworICAgICAgICBjaGFyIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5jdXJyZW50KCk7IAorICAgICAgICAgICAgLy8gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgaGFzIDAgZmNkCisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmY2QgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworCisgICAgICAgIGlmIChwcmV2VHJhaWxDQyAhPSAwKSB7CisgICAgICAgICAgICAvLyBUaGUgY3VycmVudCBjaGFyIGhhcyBhIG5vbi16ZXJvIHRyYWlsaW5nIENDLiBTY2FuIGZvcndhcmQgdW50aWwKKyAgICAgICAgICAgIC8vIHdlIGZpbmQgYSBjaGFyIHdpdGggYSBsZWFkaW5nIGNjIG9mIHplcm8uCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNoX2ludCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoX2ludCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgICAgICAgICAgLy8gdHJpZSBhY2Nlc3MKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2hhciltX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmY2QgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICAgICAgICAgIGlmIChsZWFkQ0MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgYmFzZSBjaGFyYWN0ZXIsIHdlIHN0b3AgdGhlIEZDRCBjaGVja3MKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRFN0YXJ0Xyk7CisgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+TWV0aG9kIHRyaWVzIHRvIGZldGNoIHRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IGlzIGluIGZjZCBmb3JtLjwvcD4KKyAgICAgKiA8cD5Ob3JtYWxpemF0aW9uIGlzIGRvbmUgaWYgcmVxdWlyZWQuPC9wPgorICAgICAqIDxwPk9mZnNldHMgYXJlIHJldHVybmVkIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci48L3A+CisgICAgICogQHJldHVybiBuZXh0IGZjZCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0Q2hhcigpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIC8vIGxvb3AgaGFuZGxlcyB0aGUgbmV4dCBjaGFyYWN0ZXIgd2hldGhlciBpdCBpcyBpbiB0aGUgYnVmZmVyIG9yIG5vdC4KKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA8IDApIHsKKyAgICAgICAgICAgIC8vIHdlJ3JlIHdvcmtpbmcgb24gdGhlIHNvdXJjZSBhbmQgbm90IG5vcm1hbGl6aW5nLiBmYXN0IHBhdGguCisgICAgICAgICAgICAvLyBub3RlIFRoYWkgcHJlLXZvd2VsIHJlb3JkZXJpbmcgdXNlcyBidWZmZXIgdG9vCisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBidWZmZXIsIGJ1ZmZlciBvZmZzZXQgd2lsbCBuZXZlciBiZSAwIGhlcmUKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gbV9idWZmZXJfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgLy8gTnVsbCBtYXJrZWQgZW5kIG9mIGJ1ZmZlciwgcmV2ZXJ0IHRvIHRoZSBzb3VyY2Ugc3RyaW5nIGFuZAorICAgICAgICAgICAgICAgIC8vIGxvb3AgYmFjayB0byB0b3AgdG8gdHJ5IGFnYWluIHRvIGdldCBhIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RMaW1pdF8pOworICAgICAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IC0xOworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8gKyspOworICAgICAgICB9CisgICAgICAgIGludCBzdGFydG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBpZiAocmVzdWx0IDwgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXworICAgICAgICAgICAgLy8gRmFzdCBmY2Qgc2FmZSBwYXRoLiB0cmFpbCBjb21iaW5pbmcgY2xhc3MgPT0gMC4KKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmdldERlY29tcG9zaXRpb24oKSA9PSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OCisgICAgICAgICAgICB8fCBtX2J1ZmZlck9mZnNldF8gPj0gMCB8fCBtX0ZDRExpbWl0XyA+IHN0YXJ0b2Zmc2V0KSB7CisgICAgICAgICAgICAvLyBza2lwIHRoZSBmY2QgY2hlY2tzCisgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfKSB7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBlZWsgYXQgdGhlIG5leHQgY2hhcmFjdGVyIGluIG9yZGVyIHRvIHRlbGwgaWYgd2UgYXJlCisgICAgICAgICAgICAvLyBGQ0QKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICBpbnQgbmV4dCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgICAgICBpZiAobmV4dCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORQorICAgICAgICAgICAgICAgIHx8IG5leHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgLy8gZW5kIG9mIHNvdXJjZSBzdHJpbmcgYW5kIGlmIG5leHQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLy8gc3RhcnRzIHdpdGggYSBiYXNlIGNoYXJhY3RlciBpcyBhbHdheXMgZmNkLgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTmVlZCBhIG1vcmUgY29tcGxldGUgRkNEIGNoZWNrIGFuZCBwb3NzaWJsZSBub3JtYWxpemF0aW9uLgorICAgICAgICBpZiAoIUZDRENoZWNrKChjaGFyKXJlc3VsdCwgc3RhcnRvZmZzZXQpKSB7CisgICAgICAgICAgICBub3JtYWxpemUoKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fYnVmZmVyXy5jaGFyQXQoMCk7CisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgbm9ybWFsaXphdGlvbiwgdGhpcyBpcyBhbiBlc3NlbnRpYWwgb3B0aW1pemF0aW9uLgorICAgICAqIEFzc3VtaW5nIEZDRCBjaGVja3MgaGFzIGJlZW4gZG9uZSwgbm9ybWFsaXplIHRoZSBub24tRkNEIGNoYXJhY3RlcnMgaW50bworICAgICAqIHRoZSBidWZmZXIuCisgICAgICogU291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbm9ybWFsaXplQmFja3dhcmRzKCkKKyAgICB7CisgICAgICAgIG5vcm1hbGl6ZSgpOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSBtX2J1ZmZlcl8ubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgYmFja3dhcmRzIEZDRCBjaGVjayBhbmQgbm9ybWFsaXphdGlvbi4gR2V0cyB0aGUgcHJldmlvdXMKKyAgICAgKiBiYXNlIGNoYXJhY3RlciBwb3NpdGlvbiBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgaW4tYmV0d2VlbiBjaGFyYWN0ZXJzCisgICAgICogbmVlZHMgbm9ybWFsaXphdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+V2hlbiBlbnRlcmluZywgdGhlIHN0YXRlIGlzIGtub3duIHRvIGJlIHRoaXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5XZSBhcmUgd29ya2luZyBvbiBzb3VyY2Ugc3RyaW5nLCBub3QgdGhlIGJ1ZmZlci4KKyAgICAgKiA8bGk+VGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyAwIG9yIHRoZQorICAgICAqICAgICBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcyBvZiB0aGUgbmV4dCBjaGFyIHdhcyB6ZXJvLgorICAgICAqIDwvdWw+CisgICAgICogSW5wdXQgc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIuCisgICAgICogUmV0dXJuIHNvdXJjZSBvZmZzZXRzIHBvaW50cyB0byB0aGUgY3VycmVudCBwcm9jZXNzaW5nIGNoYXJhY3Rlci4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIG9mZnNldCBjdXJyZW50IGNoYXJhY3RlciBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgRkNEQ2hlY2sgcGFzc2VzLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gRkNEQ2hlY2tCYWNrd2FyZHMoY2hhciBjaCwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgY2hhciBmY2QgPSAwOworICAgICAgICBtX0ZDRExpbWl0XyA9IG9mZnNldCArIDE7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAoIVVURjE2LmlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIG1fRkNETGltaXRfID4gMCkgeworICAgICAgICAgICAgLy8gbm90ZSB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVycyBnZXRzIDAgZmNkCisgICAgICAgICAgICBjaGFyIHRyYWlsY2ggPSBjaDsKKyAgICAgICAgICAgIGNoID0gKGNoYXIpbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAoZmNkICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihmY2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmNkID0gMDsgLy8gdW5wYWlyZWQgc3Vycm9nYXRlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVhZENDID0gZmNkID4+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXzsKKyAgICAgICAgLy8gVGhlIGN1cnJlbnQgY2hhciBoYXMgYSBub24temVybyBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcy4KKyAgICAgICAgLy8gU2NhbiBiYWNrd2FyZCB1bnRpbCB3ZSBmaW5kIGEgY2hhciB3aXRoIGEgdHJhaWxpbmcgY2Mgb2YgemVyby4KKworICAgICAgICB3aGlsZSAobGVhZENDICE9IDApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKCFVVEYxNi5pc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gY2g7CisgICAgICAgICAgICAgICAgY2ggPSAoY2hhciltX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmY2QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwgdHJhaWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZjZCA9IDA7IC8vIHVucGFpcmVkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RvcmluZyBjaGFyYWN0ZXIgd2l0aCAwIGxlYWQgZmNkIG9yIHRoZSAxc3QgYWNjZW50IHdpdGggYSBiYXNlCisgICAgICAgIC8vIGNoYXJhY3RlciBiZWZvcmUgaXQKKyAgICAgICAgaWYgKGZjZCA9PSAwKSB7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNETGltaXRfKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5NZXRob2QgdHJpZXMgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIGNoYXJhY3RlciB0aGF0IGlzIGluIGZjZCBmb3JtLjwvcD4KKyAgICAgKiA8cD5Ob3JtYWxpemF0aW9uIGlzIGRvbmUgaWYgcmVxdWlyZWQuPC9wPgorICAgICAqIDxwPk9mZnNldHMgYXJlIHJldHVybmVkIGF0IHRoZSBjdXJyZW50IGNoYXJhY3Rlci48L3A+CisgICAgICogQHJldHVybiBwcmV2aW91cyBmY2QgY2hhcmFjdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEF0IHRoZSBzdGFydCBvZiBidWZmZXIsIHJvdXRlIGJhY2sgdG8gc3RyaW5nLgorICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaWYgKG1fRkNEU3RhcnRfID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV9GQ0RTdGFydF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fRkNEU3RhcnRfOworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RTdGFydF8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaW50IHN0YXJ0b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGlmIChyZXN1bHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfCisgICAgICAgICAgICB8fCBtX2NvbGxhdG9yXy5nZXREZWNvbXBvc2l0aW9uKCkgPT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTgorICAgICAgICAgICAgfHwgbV9GQ0RTdGFydF8gPD0gc3RhcnRvZmZzZXQgfHwgbV9zb3VyY2VfLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBpbnQgY2ggPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaWYgKGNoIDwgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXykgeworICAgICAgICAgICAgLy8gaWYgcHJldmlvdXMgY2hhcmFjdGVyIGlzIEZDRAorICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gTmVlZCBhIG1vcmUgY29tcGxldGUgRkNEIGNoZWNrIGFuZCBwb3NzaWJsZSBub3JtYWxpemF0aW9uLgorICAgICAgICBpZiAoIUZDRENoZWNrQmFja3dhcmRzKChjaGFyKXJlc3VsdCwgc3RhcnRvZmZzZXQpKSB7CisgICAgICAgICAgICBub3JtYWxpemVCYWNrd2FyZHMoKTsKKyAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyAtLTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGZjZCBjaGVja3MgYWx3YXkgcmVzZXQgbV9zb3VyY2VfIHRvIHRoZSBsaW1pdCBvZiB0aGUgRkNECisgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoc3RhcnRvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiBpdCBpcyBhdCB0aGUgc3RhcnQgb2Ygc291cmNlIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdGVyYXRvciBhdCB0aGUgc3RhcnQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0JhY2t3YXJkc1N0YXJ0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV9idWZmZXJPZmZzZXRfIDwgMCAmJiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKQorICAgICAgICAgICAgfHwgKG1fYnVmZmVyT2Zmc2V0XyA9PSAwICYmIG1fRkNEU3RhcnRfIDw9IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBpdGVyYXRvciBpcyBhdCB0aGUgZW5kIG9mIGl0cyBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBpcyBhdCB0aGUgZW5kLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNFbmQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfICE9IG1fYnVmZmVyXy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGF0IGVuZCBvZiBidWZmZXIuIGNoZWNrIGlmIGZjZCBpcyBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fRkNETGltaXRfID09IG1fc291cmNlXy5nZXRMZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9zb3VyY2VfLmdldExlbmd0aCgpID09IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNwZWNpYWwgQ0UgbWFuYWdlbWVudCBmb3Igc3Vycm9nYXRlczwvcD4KKyAgICAgKiA8cD5MZWFkIHN1cnJvZ2F0ZSBpcyBlbmNvdW50ZXJlZC4gQ0UgdG8gYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZQorICAgICAqIGZvbGxvd2luZyBjb2RlIHVuaXQuIElmIG5leHQgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLCBib3RoCisgICAgICogY2hhcmFjdGVycyB3aWxsIGJlIGNvbWJpbmVkIHRvIHJldHJpZXZlIHRoZSBDRSwgb3RoZXJ3aXNlIGNvbXBsZXRlbHkKKyAgICAgKiBpZ25vcmFibGUgKFVDQSBzcGVjaWZpY2F0aW9uKSBpcyByZXR1cm5lZC48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IENFCisgICAgICogQHBhcmFtIHRyYWlsIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBDRSBmb3IgdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbmV4dFN1cnJvZ2F0ZShSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiBDRSBjb250YWluIHRoZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzIENFICsgdGhlIG1hc2suCisgICAgICAgIC8vIEl0IHNob3VsZCBhdCBsZWFzdCBiZSB1bm1hc2tlZAorICAgICAgICBpbnQgcmVzdWx0ID0gY29sbGF0b3IubV90cmllXy5nZXRUcmFpbFZhbHVlKGNlLCB0cmFpbCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDRSBleHBhbnNpb24gb2Zmc2V0CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY2UgdG8gdGVzdAorICAgICAqIEByZXR1cm4gZXhwYW5zaW9uIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldEV4cGFuc2lvbk9mZnNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgoY2UgJiAweEZGRkZGMCkgPj4gNCkgLSBjb2xsYXRvci5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb250cmFjdGlvbiBjZSBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRDb250cmFjdGlvbk9mZnNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjZSAmIDB4RkZGRkZGKSAtIGNvbGxhdG9yLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBDRSBpcyBhIHNwZWNpYWwgdGFnIENFCisgICAgICogQHBhcmFtIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIENFIGlzIGEgc3BlY2lhbCB0YWcgQ0UsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNpYWxQcmVmaXhUYWcoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChjZSkgJiYKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkgPT0gQ0VfU1BFQ19QUk9DX1RBR187CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3BlY2lhbCBwcm9jZXNzaW5nIGdldHRpbmcgYSBDRSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgY2VydGFpbgorICAgICAqIHByZWZpeC48L3A+CisgICAgICogPHA+VXNlZCBmb3Igb3B0aW1pemluZyBKYXBhbmVzZSBsZW5ndGggYW5kIGl0ZXJhdGlvbiBtYXJrcy4gV2hlbiBhCisgICAgICogc3BlY2lhbCBwcm9jZXNzaW5nIHRhZyBpcyBlbmNvdW50ZXJlZCwgaXRlcmF0ZSBiYWNrd2FyZHMgdG8gc2VlIGlmCisgICAgICogdGhlcmUncyBhIG1hdGNoLjwvcD4KKyAgICAgKiA8cD5Db250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQsIHByZWZpeCBkYXRhIGlzIHN0b3JlZCBiYWNrd2FyZHMgaW4gdGhlCisgICAgICogdGFibGUuPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBlbnRyeWJhY2t1cCBlbnRyeSBiYWNrdXAgaXRlcmF0b3Igc3RhdHVzCisgICAgICogQHJldHVybiBuZXh0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFNwZWNpYWxQcmVmaXgoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrdXAgZW50cnliYWNrdXApCisgICAgeworICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIHByZXZpb3VzQ2hhcigpOworICAgICAgICAvLyBXZSB3YW50IHRvIGxvb2sgYXQgdGhlIGNoYXJhY3RlciB3aGVyZSB3ZSBlbnRlcmVkCisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbG9vcCB3aWxsIHJ1biBvbmNlIHBlciBzb3VyY2Ugc3RyaW5nIGNoYXJhY3RlciwgZm9yIGFzCisgICAgICAgICAgICAvLyBsb25nIGFzIHdlIGFyZSBtYXRjaGluZyBhIHBvdGVudGlhbCBjb250cmFjdGlvbiBzZXF1ZW5jZQorICAgICAgICAgICAgLy8gRmlyc3Qgd2UgcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSBiZWdpbmluZyBvZiBjb250cmFjdGlvbgorICAgICAgICAgICAgLy8gc2VxdWVuY2UKKyAgICAgICAgICAgIGludCBlbnRyeW9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZW50cnlvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZpb3VzID0gKGNoYXIpcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICB3aGlsZSAocHJldmlvdXMgPiBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBjaGFyYWN0ZXJzIGFyZSBvcmRlcmVkLCBza2lwIHNtYWxsZXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByZXZpb3VzID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vIFBpY2sgdXAgdGhlIGNvcnJlc3BvbmRpbmcgQ0UgZnJvbSB0aGUgdGFibGUuCisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTb3VyY2Ugc3RyaW5nIGNoYXIgd2FzIG5vdCBpbiB0aGUgdGFibGUsIHByZWZpeCBub3QgZm91bmQKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bZW50cnlvZmZzZXRdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWlzU3BlY2lhbFByZWZpeFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgc291cmNlIHN0cmluZyBjaGFyIHdhcyBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUsIGFuZAorICAgICAgICAgICAgICAgIC8vIHRoZSBjb3JyZXNwb25kaW5nIENFIGlzIG5vdCBhIHByZWZpeCBDRS4gV2UgZm91bmQgdGhlCisgICAgICAgICAgICAgICAgLy8gcHJlZml4LCBicmVhayBvdXQgb2YgbG9vcCwgdGhpcyBDRSB3aWxsIGVuZCB1cCBiZWluZworICAgICAgICAgICAgICAgIC8vIHJldHVybmVkLiBUaGlzIGlzIHRoZSBub3JtYWwgd2F5IG91dCBvZiBwcmVmaXggaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSBzb3VyY2UgYWN0dWFsbHkgY29udGFpbmVkIHRoZSBwcmVmaXguCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNlICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIC8vIHdlIGZvdW5kIHNvbWV0aGluZyBhbmQgd2UgY2FuIG1lcmlsbHkgY29udGludWUKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeyAvLyBwcmVmaXggc2VhcmNoIHdhcyBhIGZhaWx1cmUsIHdlIGhhdmUgdG8gYmFja3VwIGFsbCB0aGUgd2F5IHRvCisgICAgICAgICAgICAvLyB0aGUgc3RhcnQKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoZW50cnliYWNrdXApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnCisgICAgICogQHBhcmFtIGNlIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb250cmFjdGlvblRhZyhpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSAmJgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSA9PSBDRV9DT05UUkFDVElPTl9UQUdfOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCB0byBjb3B5IHNraXBwZWQgY2hhcmFjdGVycyBpbnRvIHRoZSBidWZmZXIgYW5kIHNldHMgdGhlIGZjZAorICAgICAqIHBvc2l0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGUgc2tpcHBlZCBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIGxhdGVyLAorICAgICAqIHdlIG5lZWQgdG8gcGxhY2UgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIHBvc2l0aW9uIGluIHRoZSBidWZmZXIgYW5kCisgICAgICogcmVhc3NpZ24gdGhlIHNvdXJjZSBpbmRleC4gc2ltcGxlIGNhc2UgaWYgaW5kZXggcmVzaWRlIGluIHN0cmluZywKKyAgICAgKiBzaW1wbHkgY29weSB0byBidWZmZXIgYW5kIGZjZHBvc2l0aW9uID0gcG9zLCBwb3MgPSBzdGFydCBvZiBidWZmZXIuCisgICAgICogaWYgcG9zIGluIG5vcm1hbGl6YXRpb24gYnVmZmVyLCB3ZSdsbCBpbnNlcnQgdGhlIGNvcHkgaW5mcm9udCBvZiBwb3MKKyAgICAgKiBhbmQgcG9pbnQgcG9zIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLiB3aHkgYW0gaSBkb2luZyB0aGVzZSBjb3BpZXM/CisgICAgICogd2VsbCwgc28gdGhhdCB0aGUgd2hvbGUgY2h1bmsgb2YgY29kZXMgaW4gdGhlIGdldE5leHRDRSwKKyAgICAgKiB1Y29sX3Bydl9nZXRTcGVjaWFsQ0UgZG9lcyBub3QgcmVxdWlyZSBhbnkgY2hhbmdlcywgd2hpY2ggd2lsbCBiZQorICAgICAqIHJlYWxseSBwYWluZnVsLgorICAgICAqIEBwYXJhbSBza2lwcGVkIGNoYXJhY3RlciBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0RGlzY29udGlndW91cyhTdHJpbmdCdWZmZXIgc2tpcHBlZCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJfLnJlcGxhY2UoMCwgbV9idWZmZXJPZmZzZXRfLCBza2lwcGVkLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9GQ0RMaW1pdF8gPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKHNraXBwZWQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGZvciBmb3J3YXJkIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjdXJyZW50Q2hhcigpCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICByZXR1cm4gbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG1fYnVmZmVyT2Zmc2V0XyBpcyBuZXZlciAwIGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzIGV4Y2VwdCBhZnRlciBhCisgICAgICAgIC8vIGRpc2NvbnRpZ3VvdXMgY29udHJhY3Rpb24gc2luY2UgaXQgaXMgYWx3YXlzIHJldHVybmVkIGFuZCBtb3ZlZAorICAgICAgICAvLyBieSAxIHdoZW4gd2UgZG8gbmV4dENoYXIoKQorICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8gLSAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdG8gZ2V0IHRoZSBkaXNjb250aWd1b3VzIGNvbGxhdGlvbiBlbGVtZW50IHdpdGhpbiB0aGUgc291cmNlLgorICAgICAqIE5vdGUgdGhpcyBmdW5jdGlvbiB3aWxsIHNldCB0aGUgcG9zaXRpb24gdG8gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAgICAgKiBQYXNzZWQgaW4gY2hhcmFjdGVyIG9mZnNldCBwb2ludHMgdG8gdGhlIHNlY29uZCBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICogYWZ0ZXIgdGhlIHN0YXJ0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvciB1c2VkCisgICAgICogQHBhcmFtIGVudHJ5b2Zmc2V0IGluZGV4IHRvIHRoZSBzdGFydCBjaGFyYWN0ZXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiBkaXNjb250aWd1b3VzIGNvbGxhdGlvbiBlbGVtZW50IG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHREaXNjb250aWd1b3VzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgZW50cnlvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gZW50cnlvZmZzZXQ7CisgICAgICAgIGJvb2xlYW4gbXVsdGljb250cmFjdGlvbiA9IGZhbHNlOworICAgICAgICAvLyBzaW5jZSBpdCB3aWxsIGJlIHN0dWZmZWQgaW50byB0aGlzIGl0ZXJhdG9yIGFuZCByYW4gb3ZlciBhZ2FpbgorICAgICAgICBpZiAobV91dGlsU2tpcHBlZEJ1ZmZlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV91dGlsU2tpcHBlZEJ1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWN1cnJlbnRDaGFyKCk7CisgICAgICAgIG1fdXRpbFNraXBwZWRCdWZmZXJfLmFwcGVuZCgoY2hhciljdXJyZW50Q2hhcigpKTsKKyAgICAgICAgLy8gYWNjZW50IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8gPSBuZXcgQmFja3VwKCk7CisgICAgICAgIH0KKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8pOworICAgICAgICBjaGFyIG5leHRjaCA9IGNoOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgY2ggPSBuZXh0Y2g7CisgICAgICAgICAgICBpbnQgY2hfaW50ID0gbmV4dENoYXIoKTsKKyAgICAgICAgICAgIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgIGlmIChjaF9pbnQgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUKKyAgICAgICAgICAgICAgICB8fCBnZXRDb21iaW5pbmdDbGFzcyhuZXh0Y2gpID09IDApIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gbW9yZSBhY2NlbnRzIHRvIG1vdmUgYXJvdW5kCisgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBzaGlmdCBwcmV2aW91c0NoYXIsIHNpbmNlIHdlIGFyZSByZXNldHRpbmcKKyAgICAgICAgICAgICAgICAvLyB0aGUgb2Zmc2V0IGxhdGVyCisgICAgICAgICAgICAgICAgaWYgKG11bHRpY29udHJhY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoX2ludCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7IC8vIGJhY2t0cmFjaworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldERpc2NvbnRpZ3VvdXMobV91dGlsU2tpcHBlZEJ1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb2Zmc2V0ICsrOyAvLyBza2lwIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2Zmc2V0CisgICAgICAgICAgICB3aGlsZSAobmV4dGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgY2UgPSBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgaWYgKG5leHRjaCAhPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0KKyAgICAgICAgICAgICAgICAgICAgfHwgZ2V0Q29tYmluaW5nQ2xhc3MobmV4dGNoKSA9PSBnZXRDb21iaW5pbmdDbGFzcyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIG9yIGJsb2NrZWQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgbV91dGlsU2tpcHBlZEJ1ZmZlcl8uYXBwZW5kKG5leHRjaCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzQ29udHJhY3Rpb25UYWcoY2UpKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIG11bHRpLWNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbXVsdGljb250cmFjdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXREaXNjb250aWd1b3VzKG1fdXRpbFNraXBwZWRCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyk7CisgICAgICAgIC8vIGJhY2t1cCBpcyBvbmUgZm9yd2FyZCBvZiB0aGUgYmFzZSBjaGFyYWN0ZXIsIHdlIG5lZWQgdG8gbW92ZSBiYWNrCisgICAgICAgIC8vIG9uZSBtb3JlCisgICAgICAgIHByZXZpb3VzQ2hhcigpOworICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBjb250cmFjdGlvbiBjZQorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBlbnRyeWJhY2t1cCBlbnRyeSBiYWNrdXAgaXRlcmF0b3Igc3RhdHVzCisgICAgICogQHJldHVybiBjZSBvZiB0aGUgbmV4dCBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRDb250cmFjdGlvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIGludCBlbnRyeWNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsgLy9DRV9OT1RfRk9VTkRfOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVudHJ5b2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKworICAgICAgICAgICAgaWYgKGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICAvLyBiYWNrIHVwIHRoZSBzb3VyY2Ugb3ZlciBhbGwgdGhlIGNoYXJzIHdlIHNjYW5uZWQgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50byB0aGlzIGNvbnRyYWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBjZSA9IGVudHJ5Y2U7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHRoZSBkaXNjb250aWd1b3MgbWF4aW11bSBjb21iaW5pbmcgY2xhc3MKKyAgICAgICAgICAgIGludCBtYXhDQyA9IChjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gJiAweEZGKTsKKyAgICAgICAgICAgIC8vIGNoZWNrcyBpZiBhbGwgY2hhcmFjdGVycyBoYXZlIHRoZSBzYW1lIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgYnl0ZSBhbGxTYW1lID0gKGJ5dGUpKGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSA+PiA4KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSAoY2hhciluZXh0Q2hhcigpOworICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgd2hpbGUgKGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gY2hhcmFjdGVycyBhcmUgb3JkZXJlZCwgc2tpcCBhbGwgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNoID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vICBQaWNrIHVwIHRoZSBjb3JyZXNwb25kaW5nIENFIGZyb20gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU291cmNlIHN0cmluZyBjaGFyIHdhcyBub3QgaW4gY29udHJhY3Rpb24gdGFibGUuCisgICAgICAgICAgICAgICAgLy8gVW5sZXNzIGl0IGlzIGEgZGlzY29udGlndW91cyBjb250cmFjdGlvbiwgd2UgYXJlIGRvbmUKKyAgICAgICAgICAgICAgICBpbnQgbWlzcyA9IGNoOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsgLy8gaW4gb3JkZXIgdG8gZG8gdGhlIHByb3BlciBkZXRlY3Rpb24sIHdlCisgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gc2VlIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICAgICAgICAgbWlzcyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGNoLCAoY2hhcikgbmV4dENoYXIoKSk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHNDQzsKKyAgICAgICAgICAgICAgICBpZiAobWF4Q0MgPT0gMCB8fCAoc0NDID0gZ2V0Q29tYmluaW5nQ2xhc3MobWlzcykpID09IDAKKyAgICAgICAgICAgICAgICAgICAgfHwgc0NDID4gbWF4Q0MgfHwgKGFsbFNhbWUgIT0gMCAmJiBzQ0MgPT0gbWF4Q0MpIHx8CisgICAgICAgICAgICAgICAgICAgIGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29udHJhY3Rpb24gY2FuIG5vdCBiZSBkaXNjb250aWd1b3VzLCBiYWNrIHVwIGJ5IG9uZQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobWlzcyA+IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnRyYWN0aW9uIGlzIHBvc3NpYmx5IGRpc2NvbnRpZ3VvdXMuCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgY2hhcmFjdGVyIGlmIGNoIGlzIG5vdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2hfaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENvbWJpbmluZ0NsYXNzKG5leHRjaCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihtaXNzID4gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjaGFyYWN0ZXIgbm90IHBhcnQgb2YgZGlzY29udGlndW91cyBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dERpc2NvbnRpZ3VvdXMoY29sbGF0b3IsIGVudHJ5b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAvLyBzb3VyY2UgZGlkIG5vdCBtYXRjaCB0aGUgY29udHJhY3Rpb24sIHJldmVydCBiYWNrIG9yaWdpbmFsCisgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgY2UgPSBlbnRyeWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzb3VyY2Ugd2FzIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIGlmICghaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2NvbnRpbnVlIGxvb3BpbmcgdG8gY2hlY2sgZm9yIHRoZSByZW1haW5pbmcgY29udHJhY3Rpb24uCisgICAgICAgICAgICBpZiAoY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF0gIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBmdXJ0aGVyIGNvbnRyYWN0aW9ucyB0byBiZSBwZXJmb3JtZWQsIHNvIHdlIHN0b3JlCisgICAgICAgICAgICAgICAgLy8gdGhlIHNvLWZhciBjb21wbGV0ZWQgY2UsIHNvIHRoYXQgaWYgd2UgZmFpbCBpbiB0aGUgbmV4dAorICAgICAgICAgICAgICAgIC8vIHJvdW5kIHdlIGp1c3QgcmV0dXJuIHRoaXMgb25lLgorICAgICAgICAgICAgICAgIGVudHJ5Y2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9vZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBjZSBmb3IgbG9uZyBwcmltYXJpZXMsIHN0dWZmcyB0aGUgcmVzdCBvZiB0aGUgY29sbGF0aW9uCisgICAgICogZWxlbWVudHMgaW50byB0aGUgY2UgYnVmZmVyCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0TG9uZ1ByaW1hcnkoaW50IGNlKQorICAgIHsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKGNlICYgMHhGRikgPDwgMjQpCisgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIG1fQ0VCdWZmZXJfWzBdID0gKChjZSAmIDB4RkZGRjAwKSA8PCA4KSB8IChDRV9CWVRFX0NPTU1PTl8gPDwgOCkgfAorICAgICAgICAgICAgQ0VfQllURV9DT01NT05fOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBudW1iZXIgb2YgZXhwYW5zaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXhwYW5zaW9uQ291bnQoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5leHQgZXhwYW5zaW9uIGNlIGFuZCBzdHVmZnMgdGhlIHJlc3Qgb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIGludG8gdGhlIGNlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgZXhwYW5zaW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEV4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gTk9URTogd2UgY2FuIGVuY291bnRlciBib3RoIGNvbnRpbnVhdGlvbnMgYW5kIGV4cGFuc2lvbnMgaW4gYW4KKyAgICAgICAgLy8gZXhwYW5zaW9uIQorICAgICAgICAvLyBJIGhhdmUgdG8gZGVjaWRlIHdoZXJlIGNvbnRpbnVhdGlvbnMgYXJlIGdvaW5nIHRvIGJlIGRlYWx0IHdpdGgKKyAgICAgICAgaW50IG9mZnNldCA9IGdldEV4cGFuc2lvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSBnZXRFeHBhbnNpb25Db3VudChjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0XTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtX0NFQnVmZmVyU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1tpXSA9IGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXQgKyBpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNlIGFyZSB0ZXJtaW5hdGVkCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAxOworICAgICAgICAgICAgd2hpbGUgKGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXRdICE9IDApIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fWysrIG9mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaW4gY2FzZSBvZiBvbmUgZWxlbWVudCBleHBhbnNpb24sIHdlIAorICAgICAgICAvLyB3YW50IHRvIGltbWVkaWF0ZWx5IHJldHVybiBDRXBvcworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IDEpIHsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGRpZ2l0IGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjcCBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbmV4dCBkaWdpdCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHREaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBpbnQgY3ApCisgICAgeworICAgICAgICAvLyBXZSBkbyBhIGNoZWNrIHRvIHNlZSBpZiB3ZSB3YW50IHRvIGNvbGxhdGUgZGlnaXRzIGFzIG51bWJlcnM7IAorICAgICAgICAvLyBpZiBzbyB3ZSBnZW5lcmF0ZSBhIGN1c3RvbSBjb2xsYXRpb24ga2V5LiBPdGhlcndpc2Ugd2UgcHVsbCBvdXQgCisgICAgICAgIC8vIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKworICAgICAgICBpZiAobV9jb2xsYXRvcl8ubV9pc051bWVyaWNDb2xsYXRpb25fKXsKKyAgICAgICAgICAgIGludCBjb2xsYXRlVmFsID0gMDsKKyAgICAgICAgICAgIGludCB0cmFpbGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIEkganVzdCBuZWVkIGEgdGVtcG9yYXJ5IHBsYWNlIHRvIHN0b3JlIG15IGdlbmVyYXRlZCBDRXMuCisgICAgICAgICAgICAvLyBpY3U0YyB1c2VzIGEgdW5zaWduZWQgYnl0ZSBhcnJheSwgaSdsbCB1c2UgYSBzdHJpbmdidWZmZXIgaGVyZQorICAgICAgICAgICAgLy8gdG8gYXZvaWQgZGVhbGluZyB3aXRoIHRoZSBzaWduIHByb2JsZW1zIGFuZCBhcnJheSBhbGxvY2F0aW9uCisgICAgICAgICAgICAvLyBjbGVhciBhbmQgc2V0IGluaXRpYWwgc3RyaW5nIGJ1ZmZlciBsZW5ndGgKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDMpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBzb3VyY2Ugc3RyaW5nIHVudGlsIHdlIGhpdCBhIGNoYXIgdGhhdCdzIE5PVCBhIAorICAgICAgICAgICAgLy8gZGlnaXQuCisgICAgICAgICAgICAvLyBVc2UgdGhpcyB1X2NoYXJEaWdpdFZhbHVlLiBUaGlzIG1pZ2h0IGJlIHNsb3cgYmVjYXVzZSB3ZSBoYXZlIAorICAgICAgICAgICAgLy8gdG8gaGFuZGxlIHN1cnJvZ2F0ZXMuLi4KKyAgICAgICAgICAgIGludCBkaWdWYWwgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNwKTsgCisgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFycml2ZWQgaGVyZSwgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCBwb3NzaWJsZSAKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcmllcyB0aGF0IHRyaWdlcmVkIHRoZSBkaWdpdCB0YWcgLQorICAgICAgICAgICAgLy8gYWxsIHN1cHBsZW1lbnRhcmllcyBhcmUgbWFya2VkIGluIHRoZSBVQ0EuCisgICAgICAgICAgICAvLyBXZSAgcGFkIGEgemVybyBpbiBmcm9udCBvZiB0aGUgZmlyc3QgZWxlbWVudCBhbnl3YXlzLiAKKyAgICAgICAgICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiB0aGUgKHByb2JhYmx5KSBtb3N0IGNvbW1vbiBjYXNlIHdoZXJlIAorICAgICAgICAgICAgLy8gcGVvcGxlIGFyZSBzb3J0aW5nIHRoaW5ncyBmb2xsb3dlZCBieSBhIHNpbmdsZSBkaWdpdAorICAgICAgICAgICAgaW50IGRpZ0luZHggPSAxOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciBsZWFkaW5nIHplcm9lcy4gICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCB8fCBub25aZXJvVmFsUmVhY2hlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsICE9IDAgJiYgIW5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub25aZXJvVmFsUmVhY2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBkaWdpdCBzdHJpbmcgaW50byBiYXNlIDEwMCBudW1iZXJzIAorICAgICAgICAgICAgICAgICAgICAvLyAodGhpcyBmaXRzIGludG8gYSBieXRlKS4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBhZGQgdG8gdGhlIGJ1ZmZlciBpbiB0d29zLCB0aHVzIGlmIHdlIGFyZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gcGFyc2luZyBhbiBvZGQgY2hhcmFjdGVyLCB0aGF0IHNlcnZlcyBhcyB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vICd0ZW5zJyBkaWdpdCB3aGlsZSB0aGUgaWYgd2UgYXJlIHBhcnNpbmcgYW4gZXZlbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gb25lLCB0aGF0IGlzIHRoZSAnb25lcycgZGlnaXQuIFdlIGR1bXBlZCB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAoY29sbGF0ZVZhbCkgaW50byBhIGJ1ZmZlci4gCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCBieSAyICh0byBnaXZlIHVzIHJvb20pIAorICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIG1hZ2ljIENFIGJ5dGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byBlbnN1cmUgaXQgaXMgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLgorICAgICAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCAlIDIgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWw7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcmVtb3ZlcyB0cmFpbGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIHRyYWlsaW5nWmVyb0luZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0cmFpbGluZ1plcm9JbmRleCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdaZXJvSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZHJvcCB0aGUgY29sbGF0aW9uIHZhbHVlIGludG8gdGhlIGJ1ZmZlciBzbyBpZiAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZG8gYSAiZnJvbnQgcGF0Y2giIHdlIGRvbid0IGhhdmUgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayB0byBzZWUgaWYgd2UncmUgaGl0dGluZyB0aGUgbGFzdCBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbCAqIDEwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoKGNvbGxhdGVWYWwgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBHZXQgbmV4dCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgaWYgKCFpc0VuZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gKGNoYXIpY2hhcjMyOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gKGNoYXIpbmV4dENoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyMzIgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvQmFja09uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldHRpbmcgcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIG5leHQgdW5wcm9jZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyLiBXZSBvdmVyc2hvdCBpdCB3aGVuIGRvaW5nIG91ciB0ZXN0L3NldCBmb3IgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgIGRpZ0luZHggPSAyOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KDIsIChjaGFyKTYpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBlbmRJbmRleCA9IHRyYWlsaW5nWmVyb0luZGV4ICE9IDAgPyB0cmFpbGluZ1plcm9JbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRpZ0luZHggPj4+IDEpICsgMjsgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApeworICAgICAgICAgICAgICAgIC8vIFdlIG1pc3NlZCBhIHZhbHVlLiBTaW5jZSBkaWdJbmR4IGlzbid0IGV2ZW4sIHN0dWNrIHRvbyBtYW55IAorICAgICAgICAgICAgICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBidWZmZXIgKHRoaXMgaXMgd2hhdCB3ZSBnZXQgZm9yIHBhZGRpbmcgdGhlIAorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGJ5dGUgd2l0aCBhIHplcm8pLiAiRnJvbnQtcGF0Y2giIG5vdyBieSBwdXNoaW5nIGFsbCAKKyAgICAgICAgICAgICAgICAvLyBueWJibGVzIGZvcndhcmQuCisgICAgICAgICAgICAgICAgLy8gRG9pbmcgaXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0IGF0IGxlYXN0IDUwJSBvZiB0aGUgdGltZSAKKyAgICAgICAgICAgICAgICAvLyAoc3RhdGlzdGljYWxseSBzcGVha2luZykgd2UnbGwgb25seSBiZSBkb2luZyBhIHNpbmdsZSBwYXNzIAorICAgICAgICAgICAgICAgIC8vIGFuZCBvcHRpbWl6ZXMgZm9yIHN0cmluZ3Mgd2l0aCBzaW5nbGUgZGlnaXRzLiBJJ20ganVzdCAKKyAgICAgICAgICAgICAgICAvLyBhc3N1bWluZyB0aGF0J3MgdGhlIG1vcmUgY29tbW9uIGNhc2UuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBlbmRJbmRleDsgaSArKyl7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGksIAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKCgoKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSkgLSA2KSA+Pj4gMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAxMCkgKiAxMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgoKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGkgKyAxKSAtIDYpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMSkgLyAxMCkgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC0tIGRpZ0luZHg7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLy8gU3VidHJhY3Qgb25lIG9mZiBvZiB0aGUgbGFzdCBieXRlLiAKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGVuZEluZGV4IC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGVuZEluZGV4IC0gMSkgLSAxKSk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoMHg4MCArICgoZGlnSW5keCA+Pj4gMSkgJiAweDdGKSkpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyB0cmFuc2ZlciB0aGUgY29sbGF0aW9uIGtleSB0byBvdXIgY29sbEl0ZXJhdGUgc3RydWN0LgorICAgICAgICAgICAgLy8gVGhlIHRvdGFsIHNpemUgZm9yIG91ciBjb2xsYXRpb24ga2V5IGlzIGVuZEluZHggYnVtcGVkIHVwIHRvIHRoZSBuZXh0IGxhcmdlc3QgZXZlbiB2YWx1ZSBkaXZpZGVkIGJ5IHR3by4KKyAgICAgICAgICAgIGNlID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJpbWFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgIHwgbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMSkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgIC8vICBTZWNvbmRhcnkgd2VpZ2h0IAorICAgICAgICAgICAgICAgICAgICAgICB8IChSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgLy8gVGVydGlhcnkgd2VpZ2h0LgorICAgICAgICAgICAgaW50IGkgPSAyOyAvLyBSZXNldCB0aGUgaW5kZXggaW50byB0aGUgYnVmZmVyLgorICAgICAgICAgICAgCisgICAgICAgICAgICBtX0NFQnVmZmVyX1swXSA9IGNlOworICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgZW5kSW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHByaW1XZWlnaHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKSA8PCA4OworICAgICAgICAgICAgICAgIGlmIChpIDwgZW5kSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbVdlaWdodCB8PSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgPSAocHJpbVdlaWdodCA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIC8vIG5vIG51bWVyaWMgbW9kZSwgd2UnbGwganVzdCBzd2l0Y2ggdG8gd2hhdGV2ZXIgd2Ugc3Rhc2hlZCBhbmQgCisgICAgICAgIC8vIGNvbnRpbnVlCisgICAgICAgIC8vIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBpbXBsaWNpdCBjZSBmb3IgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGltcGxpY2l0IGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEltcGxpY2l0KGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAvLyBzeW53ZWUgdG8gY2hlY2sgd2l0aCB2bGFkaW1pciBvbiB0aGUgcmFuZ2Ugb2YgaXNOb25DaGFyKCkKKyAgICAgICAgICAgIC8vIGlsbGVnYWwgY29kZSB2YWx1ZSwgdXNlIGNvbXBsZXRlbHkgaWdub3JlYWJsZSEKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSAocmVzdWx0ICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MDAwMDA1MDU7CisgICAgICAgIG1fQ0VCdWZmZXJfWzFdID0gKChyZXN1bHQgJiAweDAwMDBGRkZGKSA8PCAxNikgfCAweDAwMDAwMEMwOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRTdXJyb2dhdGUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKGNoX2ludCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmCisgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKG5leHRjaCkpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgbmV4dGNoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV4dGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHByZXZpb3VzQ2hhcigpOyAvLyByZXZlcnRzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gY29tcGxldGVseSBpZ25vcmFibGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGZvciBhIGhhbmd1bCBjaGFyYWN0ZXIsIHRoaXMgaXMgYW4gaW1wbGljaXQKKyAgICAgKiBjYWxjdWxhdGlvbgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0SGFuZ3VsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBMID0gKGNoYXIpKGNoIC0gSEFOR1VMX1NCQVNFXyk7CisKKyAgICAgICAgLy8gZGl2aWRlIGludG8gcGllY2VzCisgICAgICAgIC8vIGRvIGl0IGluIHRoaXMgb3JkZXIgc2luY2Ugc29tZSBjb21waWxlcnMgY2FuIGRvICUgYW5kIC8gaW4gb25lCisgICAgICAgIC8vIG9wZXJhdGlvbgorICAgICAgICBjaGFyIFQgPSAoY2hhcikoTCAlIEhBTkdVTF9UQ09VTlRfKTsKKyAgICAgICAgTCAvPSBIQU5HVUxfVENPVU5UXzsKKyAgICAgICAgY2hhciBWID0gKGNoYXIpKEwgJSBIQU5HVUxfVkNPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1ZDT1VOVF87CisKKyAgICAgICAgLy8gb2Zmc2V0IHRoZW0KKyAgICAgICAgTCArPSBIQU5HVUxfTEJBU0VfOworICAgICAgICBWICs9IEhBTkdVTF9WQkFTRV87CisgICAgICAgIFQgKz0gSEFOR1VMX1RCQVNFXzsKKworICAgICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IENFLCBidXQgZmlyc3QgcHV0IHRoZSByZXN0IGludG8gdGhlIGV4cGFuc2lvbgorICAgICAgICAvLyBidWZmZXIKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7IC8vIEZBU1QgUEFUSAorICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9CisgICAgICAgICAgICAgICAgY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUoTCk7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShWKTsKKworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEphbW8gaXMgU3BlY2lhbAorICAgICAgICAgICAgLy8gU2luY2UgSGFuZ3VscyBwYXNzIHRoZSBGQ0QgY2hlY2ssIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCB3ZQorICAgICAgICAgICAgLy8gd29uJ3QgYmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIGlmIHNvbWV0aGluZyBsaWtlIHRoaXMKKyAgICAgICAgICAgIC8vIGhhcHBlbnMKKyAgICAgICAgICAgIC8vIE1vdmUgSmFtb3MgaW50byBub3JtYWxpemF0aW9uIGJ1ZmZlcgorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilMKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpVik7CisgICAgICAgICAgICBpZiAoVCAhPSBIQU5HVUxfVEJBU0VfKSB7CisgICAgICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fRkNETGltaXRfIC0gMTsKKyAgICAgICAgICAgIC8vIEluZGljYXRlIHdoZXJlIHRvIGNvbnRpbnVlIGluIG1haW4gaW5wdXQgc3RyaW5nIGFmdGVyCisgICAgICAgICAgICAvLyBleGhhdXN0aW5nIHRoZSBidWZmZXIKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQuIEV4cGFuc2lvbnMsIGNvbnRyYWN0aW9ucyBldGMuLi48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNhbiBiZSBwbGFpbiBVQ0EKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFNwZWNpYWwoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBjaDsKKyAgICAgICAgQmFja3VwIGVudHJ5YmFja3VwID0gbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAgICAgLy8gdGhpcyBpcyB0byBoYW5kbGUgcmVjdXJzaXZlIGxvb3BpbmcKKyAgICAgICAgaWYgKGVudHJ5YmFja3VwICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxFbnRyeUJhY2tVcF8gPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW50cnliYWNrdXAgPSBuZXcgQmFja3VwKCk7CisgICAgICAgIH0KKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIHRyeSB7IC8vIGZvcmNlcyBpdCB0byBhc3NpZ24gbV91dGlsU3BlY2lhbEVudHJ5QmFja3VwXworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGxvb3Agd2lsbCByZXBlYXQgb25seSBpbiB0aGUgY2FzZSBvZiBjb250cmFjdGlvbnMsCisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgc3dpdGNoKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENFX05PVF9GT1VORF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyBpbXBvc3NpYmxlIGNhc2UgZm9yIGljdTRqCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IChjaGFyKW5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dFN1cnJvZ2F0ZShjb2xsYXRvciwgY2UsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHN1cnJvZ2F0ZSB3YXMgbm90IHRhaWxvcmVkIHdlIGdvIG9uZSBtb3JlIHJvdW5kCisgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9CisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHRTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSwgZW50cnliYWNrdXApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dENvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfTE9OR19QUklNQVJZX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TG9uZ1ByaW1hcnkoY2UpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0RXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9ESUdJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHREaWdpdChjb2xsYXRvciwgY2UsIGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyB2YXJpb3VzIGltcGxpY2l0cyBvcHRpbWl6YXRpb24KKyAgICAgICAgICAgICAgICBjYXNlIENFX0NKS19JTVBMSUNJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0lNUExJQ0lUX1RBR186IC8vIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEltcGxpY2l0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9UUkFJTF9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gREMwMC1ERkZGIGJyb2tlbiBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR186IC8vIEFDMDAtRDdBRgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEhhbmd1bChjb2xsYXRvciwgY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IHlldCBpbXBsZW1lbnRlZCBwcm9iYWJseSBhZnRlciAxLjgKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBJR05PUkFCTEU7CisgICAgICAgICAgICAgICAgICAgIC8vIHN5bndlZSB0b2RvLCB0aHJvdyBleGNlcHRpb24gb3Igc29tZXRoaW5nIGhlcmUuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXyA9IGVudHJ5YmFja3VwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIHByb2Nlc3NpbmcgaXMgZ2V0dGluZyBhIENFIHRoYXQgaXMgcHJlY2VkZWQgYnkgYSBjZXJ0YWluIHByZWZpeC4KKyAgICAgKiBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3Igb3B0aW1pemluZyBKYXBhbmVzZSBsZW5ndGggYW5kCisgICAgICogaXRlcmF0aW9uIG1hcmtzLiBXaGVuIHdlIGVuY291dGVyIGEgc3BlY2lhbCBwcm9jZXNzaW5nIHRhZywgd2UgZ28KKyAgICAgKiBiYWNrd2FyZHMgYW5kIHRyeSB0byBzZWUgaWYgd2UgaGF2ZSBhIG1hdGNoLiBDb250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQKKyAgICAgKiAtIHNvIHRoZSB3aG9sZSBwcm9jZXNzIGlzIG5vdCB1bmxpa2UgY29udHJhY3Rpb24uIHByZWZpeCBkYXRhIGlzIHN0b3JlZAorICAgICAqIGJhY2t3YXJkcyBpbiB0aGUgdGFibGUuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gcHJldmlvdXMgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c1NwZWNpYWxQcmVmaXgoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSkKKyAgICB7CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSBiZWdpbmluZyBvZiBjb250cmFjdGlvbiBzZXF1ZW5jZQorICAgICAgICAgICAgaW50IG9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgZW50cnlvZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZjaCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgd2hpbGUgKHByZXZjaCA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIHNpbmNlIGNvbnRyYWN0aW9uIGNvZGVwb2ludHMgYXJlIG9yZGVyZWQsIHdlIHNraXAgYWxsIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmV2Y2ggPT0gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGNvbXBsZXRlbHkgaWdub3JhYmxlIGNvZGUgcG9pbnQgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgICAgIC8vIG9mIGEgcHJlZml4LCB3ZSBuZWVkIHRvIGFjdCBhcyBpZiBpdCdzIG5vdCB0aGVyZSBhc3N1bXB0aW9uOgorICAgICAgICAgICAgICAgIC8vICdyZWFsJyBub25jaGFyYWN0ZXJzICgqZmZmZSwgKmZmZmYsIGZkZDAtZmRlZiBhcmUgc2V0IHRvCisgICAgICAgICAgICAgICAgLy8gemVybykKKyAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZXMgY2Fubm90IGJlIHNldCB0byB6ZXJvIGFzIGl0IHdvdWxkIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHJvY2Vzc2luZworICAgICAgICAgICAgICAgIGludCBpc1plcm9DRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKHByZXZjaCk7CisgICAgICAgICAgICAgICAgLy8gaXQncyBlYXN5IGZvciBCTVAgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICBpZiAoaXNaZXJvQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShwcmV2Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgfHwgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHByZXZjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlIG5leHQgb25lCisgICAgICAgICAgICAgICAgICAgIC8vIHNpdHVhdGlvbnMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIGlnbm9yZQorICAgICAgICAgICAgICAgICAgICAvLyAxLiBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZzogc2NoYXIgaXMgYSBsb25lIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAvLyAyLiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIDMuIHNjaGFyIGlzIGEgdHJhaWwgc3Vycm9nYXRlIGluIGEgdmFsaWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vICAgIHNlcXVlbmNlIHRoYXQgaXMgZXhwbGljaXRseSBzZXQgdG8gemVyby4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbGVhZCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUobGVhZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhpc1plcm9DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1VSUk9HQVRFX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsQ0UgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNaZXJvQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmFsQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlYWwsIGFzc2lnbmVkIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yYWJsZSBjb2RlIHBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSwgY29tcGxldGVseSBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUgYmVnZ2luaW5nLCBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gY2hhciB3YXMgbm90IGluIHRoZSB0YWJsZS4gcHJlZml4IG5vdCBmb3VuZAorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaXNTcGVjaWFsUHJlZml4VGFnKGNlKSkgeworICAgICAgICAgICAgICAgIC8vIGNoYXIgd2FzIGluIHRoZSBjb250cmFjdGlvbiB0YWJsZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGNlCisgICAgICAgICAgICAgICAgLy8gaXMgbm90IGEgcHJlZml4IGNlLiAgV2UgZm91bmQgdGhlIHByZWZpeCwgYnJlYWsgb3V0IG9mIGxvb3AsCisgICAgICAgICAgICAgICAgLy8gdGhpcyBjZSB3aWxsIGVuZCB1cCBiZWluZyByZXR1cm5lZC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgcHJldmlvdXMgY29udHJhY3Rpb24gY2UuIFRvIGVuc3VyZSB0aGF0IHRoZSBiYWNrd2FyZHMgYW5kCisgICAgICogZm9yd2FyZHMgaXRlcmF0aW9uIG1hdGNoZXMsIHdlIHRha2UgdGhlIGN1cnJlbnQgcmVnaW9uIG9mIG1vc3QgcG9zc2libGUKKyAgICAgKiBtYXRjaCBhbmQgcGFzcyBpdCB0aHJvdWdoIHRoZSBmb3J3YXJkIGl0ZXJhdGlvbi4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0CisgICAgICogdGhlIG9ic3RpbmF0ZSBwcm9ibGVtIG9mIG92ZXJsYXBwaW5nIGNvbnRyYWN0aW9ucyB3aWxsIG5vdCBvY2N1ci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBjb250cmFjdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzQ29udHJhY3Rpb24oUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICAvLyBzaW5jZSB3ZSBtaWdodCBlbmNvdW50ZXIgbm9ybWFsaXplZCBjaGFyYWN0ZXJzIChmcm9tIHRoZSB0aGFpCisgICAgICAgIC8vIHByb2Nlc3NpbmcpIHdlIGNhbid0IHVzZSBwZWVrQ2hhcmFjdGVyKCkgaGVyZS4KKyAgICAgICAgY2hhciBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgYm9vbGVhbiBhdFN0YXJ0ID0gZmFsc2U7CisgICAgICAgIC8vIFRPRE86IGFkZHJlc3MgdGhlIGNvbW1lbnQgYWJvdmUgLSBtYXliZSBub3cgd2UgKmNhbiogdXNlIHBlZWtDaGFyYWN0ZXIKKyAgICAgICAgLy93aGlsZSAoY29sbGF0b3IuaXNVbnNhZmUoY2gpIHx8IGlzVGhhaVByZVZvd2VsKHByZXZjaCkpIHsKKyAgICAgICAgd2hpbGUgKGNvbGxhdG9yLmlzVW5zYWZlKGNoKSkgeworICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworICAgICAgICAgICAgY2ggPSBwcmV2Y2g7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgYXRTdGFydCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWF0U3RhcnQpIHsKKyAgICAgICAgICAgIC8vIHVuZG8gdGhlIHByZXZpb3VzQ2hhcigpIGlmIHdlIGRpZG4ndCByZWFjaCB0aGUgYmVnaW5uaW5nIAorICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhZGRzIHRoZSBpbml0aWFsIGJhc2UgY2hhcmFjdGVyIHRvIHRoZSBzdHJpbmcKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworCisgICAgICAgIC8vIGEgbmV3IGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGlzIHVzZWQgdG8gc2ltcGx5IHRoaW5ncywgc2luY2UKKyAgICAgICAgLy8gdXNpbmcgdGhlIGN1cnJlbnQgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3Igd2lsbCBtZWFuIHRoYXQgdGhlCisgICAgICAgIC8vIGZvcndhcmQgYW5kIGJhY2t3YXJkcyBpdGVyYXRpb24gd2lsbCBzaGFyZSBhbmQgY2hhbmdlIHRoZSBzYW1lCisgICAgICAgIC8vIGJ1ZmZlcnMuIGl0IGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwuCisgICAgICAgIGludCBvcmlnaW5hbGRlY29tcCA9IGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgLy8gZm9yIGZhc3RlciBhY2Nlc3MsIHNpbmNlIHN0cmluZyB3b3VsZCBoYXZlIGJlZW4gbm9ybWFsaXplZCBhYm92ZQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpZiAobV91dGlsQ29sRUl0ZXJfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8ubV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICB3aGlsZSAoY2UgIT0gTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IG1fQ0VCdWZmZXJfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlYXNpbmcgY2VidWZmZXIgc2l6ZQorICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcGJ1ZmZlcltdID0gbmV3IGludFttX0NFQnVmZmVyXy5sZW5ndGggKyA1MF07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9DRUJ1ZmZlcl8sIDAsIHRlbXBidWZmZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8gPSB0ZW1wYnVmZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTE9SREVSOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPSBjZTsKKyAgICAgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKG9yaWdpbmFsZGVjb21wKTsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGxvbmcgcHJpbWFyeSBjZXMKKyAgICAgKiBAcGFyYW0gY2UgbG9uZyBwcmltYXJ5IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBsb25nIHByaW1hcnkgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNMb25nUHJpbWFyeShpbnQgY2UpCisgICAgeworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICgoY2UgJiAweEZGRkYwMCkgPDwgOCkgfCAoQ0VfQllURV9DT01NT05fIDw8IDgpIHwgQ0VfQllURV9DT01NT05fOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0gKChjZSAmIDB4RkYpIDw8IDI0KQorICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGV4cGFuc2lvbiBjZXMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBleHBhbnNpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0V4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gZmluZCB0aGUgb2Zmc2V0IHRvIGV4cGFuc2lvbiB0YWJsZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0RXhwYW5zaW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IGdldEV4cGFuc2lvbkNvdW50KGNlKTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBsZXNzIHRoYW4gMTYgZWxlbWVudHMgaW4gZXhwYW5zaW9uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fQ0VCdWZmZXJTaXplXzsgaSArKykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW2ldID0gY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIGldOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBudWxsIHRlcm1pbmF0ZWQgY2VzCisgICAgICAgICAgICB3aGlsZSAoY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIG1fQ0VCdWZmZXJTaXplX10gIT0gMCkgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplX10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0ICsgbV9DRUJ1ZmZlclNpemVfXTsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBkaWdpdCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIGRpZ2l0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNEaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgLy8gV2UgZG8gYSBjaGVjayB0byBzZWUgaWYgd2Ugd2FudCB0byBjb2xsYXRlIGRpZ2l0cyBhcyBudW1iZXJzOyBpZiBzbyB3ZSBnZW5lcmF0ZQorICAgICAgICAvLyAgYSBjdXN0b20gY29sbGF0aW9uIGtleS4gT3RoZXJ3aXNlIHdlIHB1bGwgb3V0IHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNOdW1lcmljQ29sbGF0aW9uXyl7CisgICAgICAgICAgICBpbnQgbGVhZGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgY29sbGF0ZVZhbCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIGNsZWFyIGFuZCBzZXQgaW5pdGlhbCBzdHJpbmcgYnVmZmVyIGxlbmd0aAorICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRMZW5ndGgoMyk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gV2UgcGFyc2UgdGhlIHNvdXJjZSBzdHJpbmcgdW50aWwgd2UgaGl0IGEgY2hhciB0aGF0J3MgTk9UIGEgZGlnaXQKKyAgICAgICAgICAgIC8vIFVzZSB0aGlzIHVfY2hhckRpZ2l0VmFsdWUuIFRoaXMgbWlnaHQgYmUgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8gCisgICAgICAgICAgICAvLyBoYW5kbGUgc3Vycm9nYXRlcy4uLgorICAgICAgICAgICAgaW50IGNoYXIzMiA9IGNoOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpeworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcjMyID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnb0ZvcndhcmRPbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBpbnQgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgaW50IGRpZ0luZHggPSAwOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciAidHJhaWxpbmciIHplcm9lcyBidXQgd2Ugc3RpbGwgYWRkIHRvIGRpZ0luZHguCisgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCAhPSAwIHx8IG5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCAmJiAhbm9uWmVyb1ZhbFJlYWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vblplcm9WYWxSZWFjaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBXZSBwYXJzZSB0aGUgZGlnaXQgc3RyaW5nIGludG8gYmFzZSAxMDAgbnVtYmVycyAodGhpcyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZml0cyBpbnRvIGEgYnl0ZSkuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIHRvIHRoZSBidWZmZXIgaW4gdHdvcywgdGh1cyBpZiB3ZSBhcmUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNpbmcgYW4gb2RkIGNoYXJhY3RlciwgdGhhdCBzZXJ2ZXMgYXMgdGhlICd0ZW5zJyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXQgd2hpbGUgdGhlIGlmIHdlIGFyZSBwYXJzaW5nIGFuIGV2ZW4gb25lLCB0aGF0IGlzIAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgJ29uZXMnIGRpZ2l0LiBXZSBkdW1wZWQgdGhlIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gKGNvbGxhdGVWYWwpIGludG8gYSBidWZmZXIuIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCAKKyAgICAgICAgICAgICAgICAgICAgLy8gYnkgMiAodG8gZ2l2ZSB1cyByb29tKSBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIAorICAgICAgICAgICAgICAgICAgICAvLyBtYWdpYyBDRSBieXRlIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byAKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIGl0IGlzIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLiAKKyAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UncmUgZG9pbmcgaW4gdGhpcyByZXZlcnNlIHdlIHdhbnQgdG8gcHV0IHRoZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgb25lcyBwbGFjZSBhbmQgdGhlIAorICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyID09IDEpeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWwgKiAxMDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgbGVhZGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChsZWFkaW5nWmVyb0luZGV4ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgoKGRpZ0luZHggLSAxKSA+Pj4gMSkgKyAyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbDsgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNCYWNrd2FyZHNTdGFydCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGNoYXIzMiA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKWNoOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIzMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRpZ1ZhbCA9IFVDaGFyYWN0ZXIuZGlnaXQoY2hhcjMyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBkaWdJbmR4ID0gMjsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAoY2hhcik2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGxlYWRpbmcgMCBpbiBhIG9kZCBudW1iZXIgc2VxdWVuY2Ugb2YgCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlcnMgZS5nLiBhdmVyeTAwMQorICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gKChkaWdJbmR4IC0gMSkgPj4+IDEpICsgMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGEgbGVhZGluZyAwLCB3ZSBhZGQgaXQgaW4KKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsgCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZW5kSW5kZXggPSBsZWFkaW5nWmVyb0luZGV4ICE9IDAgPyBsZWFkaW5nWmVyb0luZGV4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoZGlnSW5keCA+Pj4gMSkgKyAyKSA7ICAKKyAgICAgICAgICAgIGRpZ0luZHggPSAoKGVuZEluZGV4IC0gMikgPDwgMSkgKyAxOyAvLyByZW1vdmluZyBpbml0aWFsIHplcm9zICAgICAgICAgCisgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgb2ZmIG9mIHRoZSBsYXN0IGJ5dGUuIAorICAgICAgICAgICAgLy8gUmVhbGx5IHRoZSBmaXJzdCBieXRlIGhlcmUsIGJ1dCBpdCdzIHJldmVyc2VkLi4uCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdCgyKSAtIDEpKTsgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgweDgwICsgKChkaWdJbmR4ID4+PiAxKSAmIDB4N0YpKSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IHRyYW5zZmVyIHRoZSBjb2xsYXRpb24ga2V5IHRvIG91ciBjb2xsSXRlcmF0ZSBzdHJ1Y3QuCisgICAgICAgICAgICAvLyBUaGUgdG90YWwgc2l6ZSBmb3Igb3VyIGNvbGxhdGlvbiBrZXkgaXMgZW5kSW5keCBidW1wZWQgdXAgdG8gdGhlIAorICAgICAgICAgICAgLy8gbmV4dCBsYXJnZXN0IGV2ZW4gdmFsdWUgZGl2aWRlZCBieSB0d28uCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmltYXJ5IHdlaWdodCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KDEpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfU0hJRlRfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZGFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVydGlhcnkgd2VpZ2h0LiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgCisgICAgICAgICAgICAgaW50IGkgPSBlbmRJbmRleCAtIDE7IC8vIFJlc2V0IHRoZSBpbmRleCBpbnRvIHRoZSBidWZmZXIuCisgICAgICAgICAgICAgd2hpbGUgKGkgPj0gMikgeworICAgICAgICAgICAgICAgIGludCBwcmltV2VpZ2h0ID0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSkgPDwgODsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW1XZWlnaHQgfD0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gCisgICAgICAgICAgICAgICAgICAgID0gKHByaW1XZWlnaHQgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICAgfQorICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgICAgICB9CisgICAgfSAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgcHJldmlvdXMgaGFuZ3VsIGNlcworICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0hhbmd1bChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgTCA9IChjaGFyKShjaCAtIEhBTkdVTF9TQkFTRV8pOworICAgICAgICAvLyB3ZSBkbyBpdCBpbiB0aGlzIG9yZGVyIHNpbmNlIHNvbWUgY29tcGlsZXJzIGNhbiBkbyAlIGFuZCAvIGluIG9uZQorICAgICAgICAvLyBvcGVyYXRpb24KKyAgICAgICAgY2hhciBUID0gKGNoYXIpKEwgJSBIQU5HVUxfVENPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1RDT1VOVF87CisgICAgICAgIGNoYXIgViA9IChjaGFyKShMICUgSEFOR1VMX1ZDT1VOVF8pOworICAgICAgICBMIC89IEhBTkdVTF9WQ09VTlRfOworCisgICAgICAgIC8vIG9mZnNldCB0aGVtCisgICAgICAgIEwgKz0gSEFOR1VMX0xCQVNFXzsKKyAgICAgICAgViArPSBIQU5HVUxfVkJBU0VfOworICAgICAgICBUICs9IEhBTkdVTF9UQkFTRV87CisKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShMKTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyT2Zmc2V0X107CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBTaW5jZSBIYW5ndWxzIHBhc3MgdGhlIEZDRCBjaGVjaywgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHdlIHdvbid0CisgICAgICAgICAgICAvLyBiZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIgaWYgc29tZXRoaW5nIGxpa2UgdGhpcyBoYXBwZW5zCisgICAgICAgICAgICAvLyBNb3ZlIEphbW9zIGludG8gbm9ybWFsaXphdGlvbiBidWZmZXIKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoTCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoVCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fRkNEU3RhcnRfICsgMTsKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGltcGxpY2l0IGNvZGVwb2ludCBjZXMKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHJldHVybiBpbXBsaWNpdCBjb2RlcG9pbnQgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNJbXBsaWNpdChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwoY29kZXBvaW50KSkgeworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gaWxsZWdhbCBjb2RlIHZhbHVlLCBjb21wbGV0ZWx5IGlnbm9yZWFibGUhCisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMjsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAxOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IChyZXN1bHQgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgIHwgMHgwMDAwMDUwNTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKHJlc3VsdCAmIDB4MDAwMEZGRkYpIDw8IDE2KSB8IDB4MDAwMDAwQzA7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1sxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwcmV2aW91cyBzdXJyb2dhdGUgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIHN1cnJvZ2F0ZSBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzU3Vycm9nYXRlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcsIHdyb25nIHBsYWNlIHRvIGJlIGF0CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgICAgIGNoYXIgcHJldmNoID0gKGNoYXIpcHJldmlvdXNDaGFyKCk7CisgICAgICAgIC8vIEhhbmRsZXMgSGFuIGFuZCBTdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgaGVyZS4KKyAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShwcmV2Y2gpKSB7CisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNJbXBsaWNpdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkocHJldmNoLCBjaCkpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmV2Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNwZWNpYWwgQ0UgbWFuYWdlbWVudC4gRXhwYW5zaW9ucywgY29udHJhY3Rpb25zIGV0Yy4uLjwvcD4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY2FuIGJlIHBsYWluIFVDQQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UsIGNoYXIgY2gpCisgICAgeworICAgICAgICB3aGlsZSh0cnVlKSB7CisgICAgICAgICAgICAvLyB0aGUgb25seSBjZXMgdGhhdCBsb29wcyBhcmUgdGhhaSwgc3BlY2lhbCBwcmVmaXggYW5kCisgICAgICAgICAgICAvLyBjb250cmFjdGlvbnMKKyAgICAgICAgICAgIHN3aXRjaCAoUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSkgeworICAgICAgICAgICAgY2FzZSBDRV9OT1RfRk9VTkRfVEFHXzogIC8vIHRoaXMgdGFnIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIGNlOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNzZW50aWFseSBhIGRpc2VuZ2FnZWQgbGVhZCBzdXJyb2dhdGUuIGEgYnJva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlIHdhcyBlbmNvdW50ZXJlZCBhbmQgdGhpcyBpcyBhbiBlcnJvcgorICAgICAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgIGNlID0gcHJldmlvdXNTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgLy8gbWF5IGxvb3AgZm9yIGZpcnN0IGNoYXJhY3RlciBlLmcuICIweDBmNzEiIGZvciBlbmdsaXNoCisgICAgICAgICAgICAgICAgaWYgKGlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiBzdHJpbmcgb3IgdGhpcyBpcyBub3QgdGhlIGVuZCBvZiBhbnkgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSwgY2gpOyAvLyBlbHNlCisgICAgICAgICAgICBjYXNlIENFX0xPTkdfUFJJTUFSWV9UQUdfOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0xvbmdQcmltYXJ5KGNlKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186IC8vIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzRXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBjYXNlIENFX0RJR0lUX1RBR186CisgICAgICAgICAgICAgICAgY2UgPSBwcmV2aW91c0RpZ2l0KGNvbGxhdG9yLCBjZSwgY2gpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXzogLy8gQUMwMC1EN0FGCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSGFuZ3VsKGNvbGxhdG9yLCBjaCk7CisgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBicm9rZW4gc3Vycm9nYXRlIHNlcXVlbmNlCisgICAgICAgICAgICBjYXNlIENFX1RSQUlMX1NVUlJPR0FURV9UQUdfOiAvLyBEQzAwLURGRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9DSktfSU1QTElDSVRfVEFHXzoKKyAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSW1wbGljaXQoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9JTVBMSUNJVF9UQUdfOiAvLyBldmVyeXRoaW5nIHRoYXQgaXMgbm90IGRlZmluZWQKKyAgICAgICAgICAgICAgICAvLyBVQ0EgaXMgZmlsbGVkIHdpdGggdGhlc2UuIFRhaWxvcmluZ3MgYXJlIE5PVF9GT1VORAorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOiAvLyB0aGlzIHRhZyBhbHdheXMgcmV0dXJucworICAgICAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgZGVmYXVsdDogLy8gdGhpcyB0YWcgYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgICAgICBjZSA9IElHTk9SQUJMRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHRVQgSU1QTElDSVQgUFJJTUFSWSBXRUlHSFRTCisgICAgICogQHBhcmFtIGNwIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSB2YWx1ZSBpcyBsZWZ0IGp1c3RpZmllZCBwcmltYXJ5IGtleQorICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEltcGxpY2l0UHJpbWFyeShpbnQgY3ApCisvLyAgICB7CisvLyAgICAgICAgY3AgPSBzd2FwQ0pLKGNwKTsKKy8vCisvLyAgICAgICAgLy9pZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ0pLIHN3YXBwZWQ6ICIgKyBVdGlsaXR5LmhleChjcCkpOworLy8gICAgICAgIC8vIHdlIG5vdyBoYXZlIGEgcmFuZ2Ugb2YgbnVtYmVycyBmcm9tIDAgdG8gMjFGRkZGLgorLy8gICAgICAgIC8vIHdlIG11c3Qgc2tpcCBhbGwgMDAsIDAxLCAwMiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MyB2YWx1ZXMKKy8vICAgICAgICAvLyB3ZSBtdXN0IGxlYXZlIGEgZ2FwIG9mIDAxIGJldHdlZW4gYWxsIHZhbHVlcyBvZiB0aGUgbGFzdCBieXRlLCBzbworLy8gICAgICAgIC8vIHRoZSBsYXN0IGJ5dGUgaGFzIDEyNiB2YWx1ZXMgKDMgYnl0ZSBjYXNlKQorLy8gICAgICAgIC8vIHdlIHNoaWZ0IHNvIHRoYXQgSEFOIGFsbCBoYXMgdGhlIHNhbWUgZmlyc3QgcHJpbWFyeSwgZm9yCisvLyAgICAgICAgLy8gY29tcHJlc3Npb24uCisvLyAgICAgICAgLy8gZm9yIHRoZSA0IGJ5dGUgY2FzZSwgd2UgbWFrZSB0aGUgZ2FwIGFzIGxhcmdlIGFzIHdlIGNhbiBmaXQuCisvLyAgICAgICAgLy8gVGhyZWUgYnl0ZSBmb3JtcyBhcmUgRUMgeHggeHgsIEVEIHh4IHh4LCBFRSB4eCB4eCAod2l0aCBhIGdhcCBvZiAxKQorLy8gICAgICAgIC8vIEZvdXIgYnl0ZSBmb3JtcyAobW9zdCBzdXBwbGVtZW50YXJpZXMpIGFyZSBFRiB4eCB4eCB4eCAod2l0aCBhIGdhcAorLy8gICAgICAgIC8vIG9mIExBU1QyX01VTFRJUExJRVIgPT0gMTQpCisvLworLy8gICAgICAgIGludCBsYXN0MCA9IGNwIC0gUnVsZUJhc2VkQ29sbGF0b3IuSU1QTElDSVRfNEJZVEVfQk9VTkRBUllfOworLy8gICAgICAgIGlmIChsYXN0MCA8IDApIHsKKy8vICAgICAgICAgICAgaW50IGxhc3QxID0gY3AgLyBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDAgPSBjcCAlIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QyID0gbGFzdDEgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QxICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfM0JZVEVfICsgKGxhc3QyIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDEgPDwgMTYpCisvLyAgICAgICAgICAgICAgICAgICArICgobGFzdDAgKiBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX01VTFRJUExJRVJfKSA8PCA4KTsKKy8vICAgICAgICB9CisvLyAgICAgICAgZWxzZSB7CisvLyAgICAgICAgICAgIGludCBsYXN0MSA9IGxhc3QwIC8gUnVsZUJhc2VkQ29sbGF0b3IuTEFTVF9DT1VOVDJfOworLy8gICAgICAgICAgICBsYXN0MCAlPSBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UMl87CisvLworLy8gICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDEgJT0gUnVsZUJhc2VkQ29sbGF0b3IuT1RIRVJfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QzID0gbGFzdDIgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QyICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfNEJZVEVfICsgKGxhc3QzIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDIgPDwgMTYpICsgKGxhc3QxIDw8IDgpCisvLyAgICAgICAgICAgICAgICAgICArIChsYXN0MCAqIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1QyX01VTFRJUExJRVJfKTsKKy8vICAgICAgICB9CisvLyAgICB9CisKKy8vICAgIC8qKgorLy8gICAgICogU3dhcHBpbmcgQ0pLIGNoYXJhY3RlcnMgZm9yIGltcGxpY2l0IGNlcworLy8gICAgICogQHBhcmFtIGNwIGNvZGVwb2ludCBDSksKKy8vICAgICAqIEByZXR1cm4gc3dhcHBlZCByZXN1bHQKKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHN3YXBDSksoaW50IGNwKQorLy8gICAgeworLy8gICAgICAgIGlmIChjcCA+PSBDSktfQkFTRV8pIHsKKy8vICAgICAgICAgICAgaWYgKGNwIDwgQ0pLX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwIC0gQ0pLX0JBU0VfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9MSU1JVF8pIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiBjcCAtIENKS19DT01QQVRfVVNFRF9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBpZiAoY3AgPCBDSktfQl9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19CX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwOyAvLyBub24tQk1QLUNKSworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoY3AgPCBDSktfQV9CQVNFXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmIChjcCA8IENKS19BX0xJTUlUXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgLSBDSktfQV9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKQorLy8gICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUXyAtIENKS19DT01QQVRfVVNFRF9CQVNFXyk7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBHZXRzIGEgY2hhcmFjdGVyIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcgYXQgYSBnaXZlbiBvZmZzZXQuCisgICAgICogSGFuZGxlcyBib3RoIG5vcm1hbCBhbmQgaXRlcmF0aXZlIGNhc2VzLgorICAgICAqIE5vIGVycm9yIGNoZWNraW5nIGFuZCBkb2VzIG5vdCBhY2Nlc3MgdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIAorICAgICAqIC0gY2FsbGVyIGJld2FyZSEKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9mZnNldCBmcm9tIGN1cnJlbnQgcG9zaXRpb24gd2hpY2ggY2hhcmFjdGVyIGlzIHRvIGJlIAorICAgICAqICAgICAgICAgICAgICAgcmV0cmlldmVkCisgICAgICogQHJldHVybiBjaGFyYWN0ZXIgYXQgY3VycmVudCBwb3NpdGlvbiArIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwZWVrQ2hhcmFjdGVyKGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgY3VycmVudG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KGN1cnJlbnRvZmZzZXQgKyBvZmZzZXQpOworICAgICAgICAgICAgY2hhciByZXN1bHQgPSAoY2hhciltX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KGN1cnJlbnRvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyBiYWNrIDEgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSBzdHJpbmcuIFRoaXMgaXMgc2xpZ2h0bHkgbGVzcyAKKyAgICAgKiBjb21wbGljYXRlZCB0aGFuIHByZXZpb3VzQ2hhciBpbiB0aGF0IGl0IGRvZXNuJ3Qgbm9ybWFsaXplIHdoaWxlIAorICAgICAqIG1vdmluZyBiYWNrLiBCb3VuZGFyeSBjaGVja3MgYXJlIG5vdCBwZXJmb3JtZWQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgdXNlZCB3aXRoIGNhdXRpb24sIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCAKKyAgICAgKiBtb3ZpbmcgYmFjayBvbmUgcG9zaXRpb24gd2lsbCBub3QgZXhjZWVkIHRoZSBzb3VyY2UgbGltaXRzLgorICAgICAqIFVzZSBvbmx5IHdpdGggbmV4dENoYXIoKSBhbmQgbmV2ZXIgY2FsbCB0aGlzIEFQSSB0d2ljZSBpbiBhIHJvdyB3aXRob3V0CisgICAgICogbmV4dENoYXIoKSBpbiB0aGUgbWlkZGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBnb0JhY2tPbmUoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fc291cmNlXy5nZXRJbmRleCgpIC0gMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTW92ZXMgZm9yd2FyZCAxIHBvc2l0aW9uIGluIHRoZSBzb3VyY2Ugc3RyaW5nLiBUaGlzIGlzIHNsaWdodGx5IGxlc3MgCisgICAgICogY29tcGxpY2F0ZWQgdGhhbiBuZXh0Q2hhciBpbiB0aGF0IGl0IGRvZXNuJ3Qgbm9ybWFsaXplIHdoaWxlIAorICAgICAqIG1vdmluZyBiYWNrLiBCb3VuZGFyeSBjaGVja3MgYXJlIG5vdCBwZXJmb3JtZWQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgdXNlZCB3aXRoIGNhdXRpb24sIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCAKKyAgICAgKiBtb3ZpbmcgYmFjayBvbmUgcG9zaXRpb24gd2lsbCBub3QgZXhjZWVkIHRoZSBzb3VyY2UgbGltaXRzLgorICAgICAqIFVzZSBvbmx5IHdpdGggcHJldmlvdXNDaGFyKCkgYW5kIG5ldmVyIGNhbGwgdGhpcyBBUEkgdHdpY2UgaW4gYSByb3cgCisgICAgICogd2l0aG91dCBwcmV2aW91c0NoYXIoKSBpbiB0aGUgbWlkZGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBnb0ZvcndhcmRPbmUoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPCAwKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSB3b3JraW5nIG9uIHRoZSBzb3VyY2UgYW5kIG5vdCBub3JtYWxpemluZy4gZmFzdCBwYXRoLgorICAgICAgICAgICAgLy8gbm90ZSBUaGFpIHByZS12b3dlbCByZW9yZGVyaW5nIHVzZXMgYnVmZmVyIHRvbworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fc291cmNlXy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgaW4gdGhlIGJ1ZmZlciwgYnVmZmVyIG9mZnNldCB3aWxsIG5ldmVyIGJlIDAgaGVyZQorICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfICsrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTc5Y2E1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSw2NDcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8cD5BIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4gcmVwcmVzZW50cyBhIDxjb2RlPlN0cmluZzwvY29kZT4KKyAqIHVuZGVyIHRoZSBydWxlcyBvZiBhIHNwZWNpZmljIDxjb2RlPkNvbGxhdG9yPC9jb2RlPgorICogb2JqZWN0LiBDb21wYXJpbmcgdHdvIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIHJldHVybnMgdGhlCisgKiByZWxhdGl2ZSBvcmRlciBvZiB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPnMgdGhleSByZXByZXNlbnQuPC9wPgorICoKKyAqIDxwPlNpbmNlIHRoZSBydWxlIHNldCBvZiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIGNhbiBkaWZmZXIsIHRoZQorICogc29ydCBvcmRlcnMgb2YgdGhlIHNhbWUgc3RyaW5nIHVuZGVyIHR3byBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgbWlnaHQgZGlmZmVyLiAgSGVuY2UgY29tcGFyaW5nCisgKiA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBnZW5lcmF0ZWQgZnJvbSBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgY2FuIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorIAorICogPHA+Qm90aCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGFuZCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKTwvY29kZT4gY29tcGFyZSB0d28gc3RyaW5ncworICogYW5kIHJldHVybnMgdGhlaXIgcmVsYXRpdmUgb3JkZXIuICBUaGUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaWN0aWNzCisgKiBvZiB0aGVzZSB0d28gYXBwcm9hY2hlcyBjYW4gZGlmZmVyLjwvcD4KKyAqCisgKiA8cD5EdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBvZiBhIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4sIHRoZQorICogZW50aXJlIHNvdXJjZSBzdHJpbmcgaXMgZXhhbWluZWQgYW5kIHByb2Nlc3NlZCBpbnRvIGEgc2VyaWVzIG9mCisgKiBiaXRzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLCB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4uIAorICogV2hlbiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGV4ZWN1dGVzLCBpdAorICogcGVyZm9ybXMgYml0d2lzZSBjb21wYXJpc29uIG9uIHRoZSBiaXQgc2VxdWVuY2VzLiAgVGhpcyBjYW4gaW5jdXJzCisgKiBzdGFydHVwIGNvc3Qgd2hlbiBjcmVhdGluZyB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgYnV0IG9uY2UKKyAqIHRoZSBrZXkgaXMgY3JlYXRlZCwgYmluYXJ5IGNvbXBhcmlzb25zIGFyZSBmYXN0LiAgVGhpcyBhcHByb2FjaCBpcworICogcmVjb21tZW5kZWQgd2hlbiB0aGUgc2FtZSBzdHJpbmdzIGFyZSB0byBiZSBjb21wYXJlZCBvdmVyIGFuZCBvdmVyCisgKiBhZ2Fpbi48L3A+CisgKgorICogPHA+T24gdGhlIG90aGVyIGhhbmQsIGltcGxlbWVudGF0aW9ucyBvZgorICogPGNvZGU+Q29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyk8L2NvZGU+IGNhbiBleGFtaW5lIGFuZAorICogcHJvY2VzcyB0aGUgc3RyaW5ncyBvbmx5IHVudGlsIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIGRpZmZlcmluZyBpbgorICogb3JkZXIuICBUaGlzIGFwcHJvYWNoIGlzIHJlY29tbWVuZGVkIGlmIHRoZSBzdHJpbmdzIGFyZSB0byBiZQorICogY29tcGFyZWQgb25seSBvbmNlLjwvcD4KKyAqIAorICogPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcG9zaXRpb24gb2YgdGhlIGJpdCBzZXF1ZW5jZSBjYW4KKyAqIGJlIGZvdW5kIGluIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbCI+CisgKiB1c2VyIGd1aWRlPC9hPi48L3A+CisgKgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBjYW4gYmUgdXNlZAorICogdG8gc29ydCBhIGxpc3Qgb2YgPGNvZGU+U3RyaW5nPC9jb2RlPnMuPC9wPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gQ3JlYXRlIGFuIGFycmF5IG9mIENvbGxhdGlvbktleXMgZm9yIHRoZSBTdHJpbmdzIHRvIGJlIHNvcnRlZC4KKyAqIENvbGxhdG9yIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICogQ29sbGF0aW9uS2V5W10ga2V5cyA9IG5ldyBDb2xsYXRpb25LZXlbM107CisgKiBrZXlzWzBdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIlRvbSIpOworICoga2V5c1sxXSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJEaWNrIik7CisgKiBrZXlzWzJdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkhhcnJ5Iik7CisgKiBzb3J0KCBrZXlzICk7CisgKiA8YnI+CisgKiAvLy4uLgorICogPGJyPgorICogLy8gSW5zaWRlIGJvZHkgb2Ygc29ydCByb3V0aW5lLCBjb21wYXJlIGtleXMgdGhpcyB3YXkKKyAqIGlmKCBrZXlzW2ldLmNvbXBhcmVUbygga2V5c1tqXSApID4gMCApCisgKiAgICAvLyBzd2FwIGtleXNbaV0gYW5kIGtleXNbal0KKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBGaW5hbGx5LCB3aGVuIHdlJ3ZlIHJldHVybmVkIGZyb20gc29ydC4KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1swXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzFdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMl0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgQ29sbGF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjggCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsYXRpb25LZXkgaW1wbGVtZW50cyBDb21wYXJhYmxlIAoreworICAgIC8vIHB1YmxpYyBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogT3B0aW9ucyB0aGF0IHVzZWQgaW4gdGhlIEFQSSBDb2xsYXRpb25LZXkuZ2V0Qm91bmQoKSBmb3IgZ2V0dGluZyBhIAorICAgICAqIENvbGxhdGlvbktleSBiYXNlZCBvbiB0aGUgYm91bmQgbW9kZSByZXF1ZXN0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBCb3VuZE1vZGUgCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBkbyBub3QgY2hhbmdlIHRoZSB2YWx1ZXMgYXNzaWduZWQgdG8gdGhlIG1lbWJlcnMgb2YgdGhpcyBlbnVtLiAKKyAgICAgICAgICogVW5kZXJseWluZyBjb2RlIGRlcGVuZHMgb24gdGhlbSBoYXZpbmcgdGhlc2UgbnVtYmVycyAgCisgICAgICAgICAqLworICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogTG93ZXIgYm91bmQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUiA9IDA7CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVcHBlciBib3VuZCB0aGF0IHdpbGwgbWF0Y2ggc3RyaW5ncyBvZiBleGFjdCBzaXplCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVIgPSAxOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVXBwZXIgYm91bmQgdGhhdCB3aWxsIG1hdGNoIGFsbCB0aGUgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIHNhbWUgCisgICAgICAgICAqIGluaXRpYWwgc3Vic3RyaW5nIGFzIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVUFBFUl9MT05HID0gMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGJvdW5kIG1vZGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDM7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUHJpdmF0ZSBDb25zdHJ1Y3RvcgorICAgICAgICAgKi8KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICBwcml2YXRlIEJvdW5kTW9kZSgpe30KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb25LZXkgY29uc3RydWN0b3IuCisgICAgICogVGhpcyBjb25zdHJ1Y3RvciBpcyBnaXZlbiBwdWJsaWMgYWNjZXNzLCB1bmxpa2UgdGhlIEpESyB2ZXJzaW9uLCB0bworICAgICAqIGFsbG93IGFjY2VzcyB0byB1c2VycyBleHRlbmRpbmcgdGhlIENvbGxhdG9yIGNsYXNzLiBTZWUgCisgICAgICoge0BsaW5rIENvbGxhdG9yI2dldENvbGxhdGlvbktleShTdHJpbmcpfS4gCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcgdGhpcyBDb2xsYXRpb25LZXkgaXMgdG8gcmVwcmVzZW50CisgICAgICogQHBhcmFtIGtleSBhcnJheSBvZiBieXRlcyB0aGF0IHJlcHJlc2VudCB0aGUgY29sbGF0aW9uIG9yZGVyIG9mIGFyZ3VtZW50CisgICAgICogICAgICAgICAgICBzb3VyY2UgdGVybWluYXRlZCBieSBhIG51bGwKKyAgICAgKiBAc2VlIENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCBieXRlIGtleVtdKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2VfID0gc291cmNlOworICAgICAgICBtX2tleV8gPSBrZXk7CisgICAgICAgIG1faGFzaENvZGVfID0gMDsKKyAgICAgICAgbV9sZW5ndGhfID0gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbGxhdGlvbktleSBjb25zdHJ1Y3RvciB0aGF0IGZvcmNlcyBrZXkgdG8gcmVsZWFzZSBpdHMgaW50ZXJuYWwgYnl0ZSAKKyAgICAgKiBhcnJheSBmb3IgYWRvcHRpb24uIGtleSB3aWxsIGhhdmUgYSBudWxsIGJ5dGUgYXJyYXkgYWZ0ZXIgdGhpcyAKKyAgICAgKiBjb25zdHJ1Y3Rpb24uCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcgdGhpcyBDb2xsYXRpb25LZXkgaXMgdG8gcmVwcmVzZW50CisgICAgICogQHBhcmFtIGtleSBSYXdDb2xsYXRpb25LZXkgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgY29sbGF0aW9uIG9yZGVyIG9mIAorICAgICAqICAgICAgICAgICAgYXJndW1lbnQgc291cmNlLiAKKyAgICAgKiBAc2VlIENvbGxhdG9yCisgICAgICogQHNlZSBSYXdDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCBSYXdDb2xsYXRpb25LZXkga2V5KQorICAgIHsKKyAgICAgICAgbV9zb3VyY2VfID0gc291cmNlOworICAgICAgICBtX2tleV8gPSBrZXkucmVsZWFzZUJ5dGVzKCk7CisgICAgICAgIG1faGFzaENvZGVfID0gMDsKKyAgICAgICAgbV9sZW5ndGhfID0gLTE7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzLgorICAgICAqIEByZXR1cm4gc291cmNlIHN0cmluZyB0aGF0IHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZVN0cmluZygpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5EdXBsaWNhdGVzIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGlzIENvbGxhdGlvbktleSBhcyBhIHNlcXVlbmNlIAorICAgICAqIG9mIGJpZy1lbmRpYW4gYnl0ZXMgdGVybWluYXRlZCBieSBhIG51bGwuPC9wPiAKKyAgICAgKgorICAgICAqIDxwPklmIHR3byBDb2xsYXRpb25LZXlzIGNhbiBiZSBsZWdpdGltYXRlbHkgY29tcGFyZWQsIHRoZW4gb25lIGNhbgorICAgICAqIGNvbXBhcmUgdGhlIGJ5dGUgYXJyYXlzIG9mIGVhY2ggdG8gb2J0YWluIHRoZSBzYW1lIHJlc3VsdCwgZS5nLgorICAgICAqIDxwcmU+CisgICAgICogYnl0ZSBrZXkxW10gPSBjb2xsYXRpb25rZXkxLnRvQnl0ZUFycmF5KCk7CisgICAgICogYnl0ZSBrZXkyW10gPSBjb2xsYXRpb25rZXkyLnRvQnl0ZUFycmF5KCk7CisgICAgICogaW50IGtleSwgdGFyZ2V0a2V5OworICAgICAqIGludCBpID0gMDsKKyAgICAgKiBkbyB7CisgICAgICogICAgICAga2V5ID0ga2V5MVtpXSAmIDB4RkY7CisgICAgICogICAgIHRhcmdldGtleSA9IGtleTJbaV0gJiAweEZGOworICAgICAqICAgICBpZiAoa2V5ICZsdDsgdGFyZ2V0a2V5KSB7CisgICAgICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyAxIGlzIGxlc3MgdGhhbiBzdHJpbmcgMiIpOworICAgICAqICAgICAgICAgcmV0dXJuOworICAgICAqICAgICB9CisgICAgICogICAgIGlmICh0YXJnZXRrZXkgJmx0OyBrZXkpIHsKKyAgICAgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIDEgaXMgbW9yZSB0aGFuIHN0cmluZyAyIik7CisgICAgICogICAgIH0KKyAgICAgKiAgICAgaSArKzsKKyAgICAgKiB9IHdoaWxlIChrZXkgIT0gMCAmJiB0YXJnZXRLZXkgIT0gMCk7CisgICAgICoKKyAgICAgKiBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZ3MgYXJlIGVxdWFsLiIpOworICAgICAqIDwvcHJlPgorICAgICAqIDwvcD4gIAorICAgICAqIEByZXR1cm4gQ29sbGF0aW9uS2V5IHZhbHVlIGluIGEgc2VxdWVuY2Ugb2YgYmlnLWVuZGlhbiBieXRlIGJ5dGVzIAorICAgICAqICAgICAgICAgdGVybWluYXRlZCBieSBhIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSB0b0J5dGVBcnJheSgpIAorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAobV9rZXlfW2xlbmd0aF0gPT0gMCkgeworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxlbmd0aCArKzsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggKys7CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fa2V5XywgMCwgcmVzdWx0LCAwLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgCisgICAgIAorICAgIC8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgdG8gYW5vdGhlciBDb2xsYXRpb25LZXkuICBUaGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZXMgb2YgdGhlIENvbGxhdG9yIHRoYXQgY3JlYXRlZCB0aGlzIGtleSBhcmUKKyAgICAgKiBhcHBsaWVkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQ29tcGFyaXNvbiBiZXR3ZWVuIENvbGxhdGlvbktleXMKKyAgICAgKiBjcmVhdGVkIGJ5IGRpZmZlcmVudCBDb2xsYXRvcnMgbWlnaHQgcmV0dXJuIGluY29ycmVjdAorICAgICAqIHJlc3VsdHMuICBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCBDb2xsYXRpb25LZXkKKyAgICAgKiBAcmV0dXJuIGFuIGludGVnZXIgdmFsdWUuICBJZiB0aGUgdmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gdGhpcyBDb2xsYXRpb25LZXkKKyAgICAgKiAgICAgICAgIGlzIGxlc3MgdGhhbiB0aGFuIHRhcmdldCwgaWYgdGhlIHZhbHVlIGlzIHplcm8gdGhleSBhcmUgZXF1YWwsIGFuZAorICAgICAqICAgICAgICAgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIHRoaXMgQ29sbGF0aW9uS2V5IGlzIGdyZWF0ZXIgCisgICAgICogICAgICAgICB0aGFuIHRhcmdldC4KKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhcmd1bWVudCBpcyBudWxsLgorICAgICAqIEBzZWUgQ29sbGF0b3IjY29tcGFyZShTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oQ29sbGF0aW9uS2V5IHRhcmdldCkKKyAgICB7CisgICAgZm9yIChpbnQgaSA9IDA7OyArK2kpIHsKKyAgICAgICAgaW50IGwgPSBtX2tleV9baV0mMHhmZjsKKyAgICAgICAgaW50IHIgPSB0YXJnZXQubV9rZXlfW2ldJjB4ZmY7CisgICAgICAgIGlmIChsIDwgcikgeworICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gZWxzZSBpZiAobCA+IHIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAobCA9PSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgd2l0aCB0aGUgc3BlY2lmaWVkIE9iamVjdC4gIFRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkIHRoaXMga2V5IGFyZQorICAgICAqIGFwcGxpZWQuPC9wPgorICAgICAqIAorICAgICAqIDxwPlNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBhYm91dCBwb3NzaWJsZQorICAgICAqIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmogdGhlIE9iamVjdCB0byBiZSBjb21wYXJlZCB0by4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYSBuZWdhdGl2ZSBpbnRlZ2VyLCB6ZXJvLCBvciBhIHBvc2l0aXZlIGludGVnZXIgCisgICAgICogICAgICAgICByZXNwZWN0aXZlbHkgaWYgdGhpcyBDb2xsYXRpb25LZXkgaXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgCisgICAgICogICAgICAgICBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIE9iamVjdC4KKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBzZWUgI2NvbXBhcmVUbyhDb2xsYXRpb25LZXkpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvYmopIAorICAgIHsKKyAgICAgICByZXR1cm4gY29tcGFyZVRvKChDb2xsYXRpb25LZXkpb2JqKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IGFuZCB0aGUgc3BlY2lmaWVkIE9iamVjdCBmb3IKKyAgICAgKiBlcXVhbGl0eS4gIFRoZSBjb2xsYXRpb24gcnVsZXMgb2YgdGhlIENvbGxhdG9yIHRoYXQgY3JlYXRlZAorICAgICAqIHRoaXMga2V5IGFyZSBhcHBsaWVkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBhYm91dAorICAgICAqIHBvc3NpYmxlIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB0byBjb21wYXJlIHRvLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIGtleXMgY29tcGFyZSBhcyBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzZWUgI2NvbXBhcmVUbyhDb2xsYXRpb25LZXkpCisgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgQ29sbGF0aW9uS2V5LiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGFyZ3VtZW50IAorICAgICAqICAgICAgICAgICAgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgQ29sbGF0aW9uS2V5KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZXF1YWxzKChDb2xsYXRpb25LZXkpdGFyZ2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIGFyZ3VtZW50IHRhcmdldCBDb2xsYXRpb25LZXkgZm9yIAorICAgICAqIGVxdWFsaXR5LgorICAgICAqIFRoZSBjb2xsYXRpb24gCisgICAgICogcnVsZXMgb2YgdGhlIENvbGxhdG9yIG9iamVjdCB3aGljaCBjcmVhdGVkIHRoZXNlIG9iamVjdHMgYXJlIGFwcGxpZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBvZiBpbmNvcnJlY3QgcmVzdWx0cworICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdHdvIG9iamVjdHMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQ29sbGF0aW9uS2V5IHRhcmdldCkgCisgICAgeworICAgICAgICBpZiAodGhpcyA9PSB0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbktleSBvdGhlciA9IChDb2xsYXRpb25LZXkpdGFyZ2V0OworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAobV9rZXlfW2ldICE9IG90aGVyLm1fa2V5X1tpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX2tleV9baV0gPT0gMCkgeworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJucyBhIGhhc2ggY29kZSBmb3IgdGhpcyBDb2xsYXRpb25LZXkuIFRoZSBoYXNoIHZhbHVlIGlzIGNhbGN1bGF0ZWQgCisgICAgICogb24gdGhlIGtleSBpdHNlbGYsIG5vdCB0aGUgU3RyaW5nIGZyb20gd2hpY2ggdGhlIGtleSB3YXMgY3JlYXRlZC4gVGh1cyAKKyAgICAgKiBpZiB4IGFuZCB5IGFyZSBDb2xsYXRpb25LZXlzLCB0aGVuIHguaGFzaENvZGUoeCkgPT0geS5oYXNoQ29kZSgpIAorICAgICAqIGlmIHguZXF1YWxzKHkpIGlzIHRydWUuIFRoaXMgYWxsb3dzIGxhbmd1YWdlLXNlbnNpdGl2ZSBjb21wYXJpc29uIGluIGEgCisgICAgICogaGFzaCB0YWJsZS4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGUgaGFzaCB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgCisgICAgeworICAgICAgICBpZiAobV9oYXNoQ29kZV8gPT0gMCkgeworICAgICAgICAgICAgaWYgKG1fa2V5XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9oYXNoQ29kZV8gPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHNpemUgPSBtX2tleV8ubGVuZ3RoID4+IDE7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGtleSA9IG5ldyBTdHJpbmdCdWZmZXIoc2l6ZSk7CisgICAgICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChtX2tleV9baV0gIT0gMCAmJiBtX2tleV9baSArIDFdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAga2V5LmFwcGVuZCgoY2hhcikoKG1fa2V5X1tpXSA8PCA4KSB8IG1fa2V5X1tpICsgMV0pKTsKKyAgICAgICAgICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9rZXlfW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAga2V5LmFwcGVuZCgoY2hhcikobV9rZXlfW2ldIDw8IDgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9oYXNoQ29kZV8gPSBrZXkudG9TdHJpbmcoKS5oYXNoQ29kZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2hhc2hDb2RlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUHJvZHVjZSBhIGJvdW5kIGZvciB0aGUgc29ydCBvcmRlciBvZiBhIGdpdmVuIGNvbGxhdGlvbiBrZXkgYW5kIGEgCisgICAgICogc3RyZW5ndGggbGV2ZWwuIFRoaXMgQVBJIGRvZXMgbm90IGF0dGVtcHQgdG8gZmluZCBhIGJvdW5kIGZvciB0aGUgCisgICAgICogQ29sbGF0aW9uS2V5IFN0cmluZyByZXByZXNlbnRhdGlvbiwgaGVuY2UgbnVsbCB3aWxsIGJlIHJldHVybmVkIGluIGl0cyAKKyAgICAgKiBwbGFjZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogUmVzdWx0aW5nIGJvdW5kcyBjYW4gYmUgdXNlZCB0byBwcm9kdWNlIGEgcmFuZ2Ugb2Ygc3RyaW5ncyB0aGF0IGFyZQorICAgICAqIGJldHdlZW4gdXBwZXIgYW5kIGxvd2VyIGJvdW5kcy4gRm9yIGV4YW1wbGUsIGlmIGJvdW5kcyBhcmUgcHJvZHVjZWQKKyAgICAgKiBmb3IgYSBzb3J0a2V5IG9mIHN0cmluZyAic21pdGgiLCBzdHJpbmdzIGJldHdlZW4gdXBwZXIgYW5kIGxvd2VyIAorICAgICAqIGJvdW5kcyB3aXRoIHByaW1hcnkgc3RyZW5ndGggd291bGQgaW5jbHVkZSAiU21pdGgiLCAiU01JVEgiLCAic01pVGgiLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBhcmUgdHdvIHVwcGVyIGJvdW5kcyB0aGF0IGNhbiBiZSBwcm9kdWNlZC4gSWYgQm91bmRNb2RlLlVQUEVSCisgICAgICogaXMgcHJvZHVjZWQsIHN0cmluZ3MgbWF0Y2hlZCB3b3VsZCBiZSBhcyBhYm92ZS4gSG93ZXZlciwgaWYgYSBib3VuZAorICAgICAqIGlzIHByb2R1Y2VkIHVzaW5nIEJvdW5kTW9kZS5VUFBFUl9MT05HIGlzIHVzZWQsIHRoZSBhYm92ZSBleGFtcGxlIHdpbGwKKyAgICAgKiBhbHNvIG1hdGNoICJTbWl0aHNvbmlhbiIgYW5kIHNpbWlsYXIuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEZvciBtb3JlIG9uIHVzYWdlLCBzZWUgZXhhbXBsZSBpbiB0ZXN0IHByb2NlZHVyZSAKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL35jaGVja291dH4vaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkFQSVRlc3QuamF2YSI+CisgICAgICogc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkFQSVRlc3QvVGVzdEJvdW5kcy4KKyAgICAgKiA8L2E+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIENvbGxhdGlvbiBrZXlzIHByb2R1Y2VkIG1heSBiZSBjb21wYXJlZCB1c2luZyB0aGUgPFRUPmNvbXBhcmU8L1RUPiBBUEkuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBib3VuZFR5cGUgTW9kZSBvZiBib3VuZCByZXF1aXJlZC4gSXQgY2FuIGJlIEJvdW5kTW9kZS5MT1dFUiwgd2hpY2ggCisgICAgICogICAgICAgICAgICAgIHByb2R1Y2VzIGEgbG93ZXIgaW5jbHVzaXZlIGJvdW5kLCBCb3VuZE1vZGUuVVBQRVIsIHRoYXQgCisgICAgICogICAgICAgICAgICAgIHByb2R1Y2VzIHVwcGVyIGJvdW5kIHRoYXQgbWF0Y2hlcyBzdHJpbmdzIG9mIHRoZSBzYW1lIAorICAgICAqICAgICAgICAgICAgICBsZW5ndGggb3IgQm91bmRNb2RlLlVQUEVSX0xPTkcgdGhhdCBtYXRjaGVzIHN0cmluZ3MgdGhhdCAKKyAgICAgKiAgICAgICAgICAgICAgaGF2ZSB0aGUgc2FtZSBzdGFydGluZyBzdWJzdHJpbmcgYXMgdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIG5vT2ZMZXZlbHMgU3RyZW5ndGggbGV2ZWxzIHJlcXVpcmVkIGluIHRoZSByZXN1bHRpbmcgYm91bmQgCisgICAgICogICAgICAgICAgICAgICAgIChmb3IgbW9zdCB1c2VzLCB0aGUgcmVjb21tZW5kZWQgdmFsdWUgaXMgUFJJTUFSWSkuIFRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZW5ndGggc2hvdWxkIGJlIGxlc3MgdGhhbiB0aGUgbWF4aW11bSBzdHJlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhpcyBDb2xsYXRpb25LZXkuCisgICAgICogICAgICAgICAgICAgICAgIFNlZSB1c2VycyBndWlkZSBmb3IgZXhwbGFuYXRpb24gb24gdGhlIHN0cmVuZ3RoIGxldmVscyBhIAorICAgICAqICAgICAgICAgICAgICAgICBjb2xsYXRpb24ga2V5IGNhbiBoYXZlLiAKKyAgICAgKiBAcmV0dXJuIHRoZSByZXN1bHQgYm91bmRlZCBDb2xsYXRpb25LZXkgd2l0aCBhIHZhbGlkIHNvcnQgb3JkZXIgYnV0IAorICAgICAqICAgICAgICAgYSBudWxsIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGUgc3RyZW5ndGggbGV2ZWwgCisgICAgICogICAgICAgICAgICByZXF1ZXN0ZWQgaXMgaGlnaGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHN0cmVuZ3RoIGluIHRoaXMKKyAgICAgKiAgICAgICAgICAgIENvbGxhdGlvbktleS4gCisgICAgICogICAgICAgICAgICBJbiB0aGUgY2FzZSBvZiBhbiBFeGNlcHRpb24sIGluZm9ybWF0aW9uIAorICAgICAqICAgICAgICAgICAgYWJvdXQgdGhlIG1heGltdW0gc3RyZW5ndGggdG8gdXNlIHdpbGwgYmUgcmV0dXJuZWQgaW4gdGhlIAorICAgICAqICAgICAgICAgICAgRXhjZXB0aW9uLiBUaGUgdXNlciBjYW4gdGhlbiBjYWxsIGdldEJvdW5kKCkgYWdhaW4gd2l0aCB0aGUgCisgICAgICogICAgICAgICAgICBhcHByb3ByaWF0ZSBzdHJlbmd0aC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5LkJvdW5kTW9kZQorICAgICAqIEBzZWUgQ29sbGF0b3IjUFJJTUFSWQorICAgICAqIEBzZWUgQ29sbGF0b3IjU0VDT05EQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNURVJUSUFSWQorICAgICAqIEBzZWUgQ29sbGF0b3IjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgQ29sbGF0b3IjSURFTlRJQ0FMCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbktleSBnZXRCb3VuZChpbnQgYm91bmRUeXBlLCBpbnQgbm9PZkxldmVscykgCisgICAgeworICAgICAgICAvLyBTY2FuIHRoZSBzdHJpbmcgdW50aWwgd2Ugc2tpcCBlbm91Z2ggb2YgdGhlIGtleSBPUiByZWFjaCB0aGUgZW5kIG9mIAorICAgICAgICAvLyB0aGUga2V5CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBpbnQga2V5c3RyZW5ndGggPSBDb2xsYXRvci5QUklNQVJZOworICAgICAgICAKKyAgICAgICAgaWYgKG5vT2ZMZXZlbHMgPiBDb2xsYXRvci5QUklNQVJZKSB7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbV9rZXlfLmxlbmd0aCAmJiBtX2tleV9bb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fa2V5X1tvZmZzZXQgKytdIAorICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuU09SVF9MRVZFTF9URVJNSU5BVE9SXykgeworICAgICAgICAgICAgICAgICAgICBrZXlzdHJlbmd0aCArKzsKKyAgICAgICAgICAgICAgICAgICAgbm9PZkxldmVscyAtLTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vT2ZMZXZlbHMgPT0gQ29sbGF0b3IuUFJJTUFSWSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IG9mZnNldCA9PSBtX2tleV8ubGVuZ3RoIHx8IG1fa2V5X1tvZmZzZXRdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5vT2ZMZXZlbHMgPiAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3VyY2UgY29sbGF0aW9uIGtleSBoYXMgb25seSAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsga2V5c3RyZW5ndGggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHN0cmVuZ3RoIGxldmVsLiBDYWxsIGdldEJvdW5kKCkgYWdhaW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB3aXRoIG5vT2ZMZXZlbHMgPCAiICsga2V5c3RyZW5ndGgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBSRUFEIE1FOiB0aGlzIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSB2YWx1ZXMgZm9yIEJvdW5kTW9kZSB2YXJpYWJsZXMgCisgICAgICAgIC8vIHdpbGwgbm90IGNoYW5nZXMuIFRoZXkgYXJlIHNldCBzbyB0aGF0IHRoZSBlbnVtIHZhbHVlIGNvcnJlc3BvbmRzIHRvIAorICAgICAgICAvLyB0aGUgbnVtYmVyIG9mIGV4dHJhIGJ5dGVzIGVhY2ggYm91bmQgdHlwZSBuZWVkcy4KKyAgICAgICAgYnl0ZSByZXN1bHRrZXlbXSA9IG5ldyBieXRlW29mZnNldCArIGJvdW5kVHlwZSArIDFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fa2V5XywgMCwgcmVzdWx0a2V5LCAwLCBvZmZzZXQpOworICAgICAgICBzd2l0Y2ggKGJvdW5kVHlwZSkgeworICAgICAgICAgICAgY2FzZSBCb3VuZE1vZGUuTE9XRVI6IC8vID0gMAorICAgICAgICAgICAgICAgIC8vIExvd2VyIGJvdW5kIGp1c3QgZ2V0cyB0ZXJtaW5hdGVkLiBObyBleHRyYSBieXRlcworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCb3VuZE1vZGUuVVBQRVI6IC8vID0gMQorICAgICAgICAgICAgICAgIC8vIFVwcGVyIGJvdW5kIG5lZWRzIG9uZSBleHRyYSBieXRlCisgICAgICAgICAgICAgICAgcmVzdWx0a2V5W29mZnNldCArK10gPSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCb3VuZE1vZGUuVVBQRVJfTE9ORzogLy8gPSAyCisgICAgICAgICAgICAgICAgLy8gVXBwZXIgbG9uZyBib3VuZCBuZWVkcyB0d28gZXh0cmEgYnl0ZXMKKyAgICAgICAgICAgICAgICByZXN1bHRrZXlbb2Zmc2V0ICsrXSA9IChieXRlKTB4RkY7CisgICAgICAgICAgICAgICAgcmVzdWx0a2V5W29mZnNldCArK10gPSAoYnl0ZSkweEZGOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklsbGVnYWwgYm91bmRUeXBlIGFyZ3VtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0a2V5W29mZnNldCArK10gPSAwOworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbktleShudWxsLCByZXN1bHRrZXkpOworICAgIH0KKworCisgICAgCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIE1lcmdlcyB0aGlzIENvbGxhdGlvbktleSB3aXRoIGFub3RoZXIuIE9ubHkgdGhlIHNvcnRpbmcgb3JkZXIgb2YgdGhlIAorICAgICAqIENvbGxhdGlvbktleXMgd2lsbCBiZSBtZXJnZWQuIFRoaXMgQVBJIGRvZXMgbm90IGF0dGVtcHQgdG8gbWVyZ2UgdGhlIAorICAgICAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMgb2YgdGhlIENvbGxhdGlvbktleXMsIGhlbmNlIG51bGwgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGFzIHRoZSBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBzdHJlbmd0aCBsZXZlbHMgYXJlIG1lcmdlZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgY291bnRlcnBhcnRzIAorICAgICAqIChQUklNQVJJRVMgd2l0aCBQUklNQVJJRVMsIFNFQ09OREFSSUVTIHdpdGggU0VDT05EQVJJRVMgZXRjLikuIAorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbWVyZ2VkIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVzdWx0IENvbGxhdGlvbktleSB3aWxsIGJlIGEKKyAgICAgKiBjb25jYXRlbmF0aW9uIG9mIHRoZSBTdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIHRoZSAyIHNvdXJjZSAKKyAgICAgKiBDb2xsYXRpb25LZXlzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBCZXR3ZWVuIHRoZSB2YWx1ZXMgZnJvbSB0aGUgc2FtZSBsZXZlbCBhIHNlcGFyYXRvciBpcyBpbnNlcnRlZC4KKyAgICAgKiBleGFtcGxlICh1bmNvbXByZXNzZWQpOgorICAgICAqIDxwcmU+IAorICAgICAqIDE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwIGFuZCAxRjIxMjMgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMAorICAgICAqIHdpbGwgYmUgbWVyZ2VkIGFzIAorICAgICAqIDE5MUIxRCAwMiAxRjIxMjMwMSAwNTA1MDUgMDIgMDUwNTA1IDAxIDkxMDUwNSAwMiA5MTA1MDUgMDAKKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhpcyBhbGxvd3MgZm9yIGNvbmNhdGVuYXRpbmcgb2YgZmlyc3QgYW5kIGxhc3QgbmFtZXMgZm9yIHNvcnRpbmcsIGFtb25nIAorICAgICAqIG90aGVyIHRoaW5ncy4KKyAgICAgKiA8L3A+CisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgQ29sbGF0aW9uS2V5IHRvIG1lcmdlIHdpdGggCisgICAgICogQHJldHVybiBhIENvbGxhdGlvbktleSB0aGF0IGNvbnRhaW5zIHRoZSB2YWxpZCBtZXJnZWQgc29ydGluZyBvcmRlciAKKyAgICAgKiAgICAgICAgIHdpdGggYSBudWxsIFN0cmluZyByZXByZXNlbnRhdGlvbiwgCisgICAgICogICAgICAgICBpLmUuIDx0dD5uZXcgQ29sbGF0aW9uS2V5KG51bGwsIG1lcmdlX3NvcnRfb3JkZXIpPC90dD4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgc291cmNlIENvbGxhdGlvbktleQorICAgICAqICAgICAgICAgICAgYXJndW1lbnQgaXMgbnVsbCBvciBvZiAwIGxlbmd0aC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IG1lcmdlKENvbGxhdGlvbktleSBzb3VyY2UpCisgICAgeworICAgICAgICAvLyBjaGVjayBhcmd1bWVudHMKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5nZXRMZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25LZXkgYXJndW1lbnQgY2FuIG5vdCBiZSBudWxsIG9yIG9mIDAgbGVuZ3RoIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZ2V0TGVuZ3RoKCk7IC8vIGdldHMgdGhlIGxlbmd0aCBvZiB0aGlzIHNvcnQga2V5CisgICAgICAgIGludCBzb3VyY2VsZW5ndGggPSBzb3VyY2UuZ2V0TGVuZ3RoKCk7CisgICAgICAgIC8vIDEgZXh0cmEgZm9yIHRoZSBsYXN0IHN0cmVuZ3RoIHRoYXQgaGFzIG5vIHNlcGVyYXRvcnMKKyAgICAgICAgYnl0ZSByZXN1bHRbXSA9IG5ldyBieXRlW21fbGVuZ3RoXyArIHNvdXJjZWxlbmd0aCArIDJdOworICAgIAorICAgICAgICAvLyBtZXJnZSB0aGUgc29ydCBrZXlzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxldmVscworICAgICAgICBpbnQgcmluZGV4ID0gMDsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IHNvdXJjZWluZGV4ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsgCisgICAgICAgICAgICAvLyB3aGlsZSBib3RoIGhhdmUgYW5vdGhlciBsZXZlbAorICAgICAgICAgICAgLy8gY29weSBsZXZlbCBmcm9tIHNyYzEgbm90IGluY2x1ZGluZyAwMCBvciAwMQorICAgICAgICAgICAgLy8gdW5zaWduZWQgaXNzdWVzCisgICAgICAgICAgICB3aGlsZSAobV9rZXlfW2luZGV4XSA8IDAgfHwgbV9rZXlfW2luZGV4XSA+PSBNRVJHRV9TRVBFUkFUT1JfKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0W3JpbmRleCArK10gPSBtX2tleV9baW5kZXggKytdOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gYWRkIGEgMDIgbWVyZ2Ugc2VwYXJhdG9yCisgICAgICAgICAgICByZXN1bHRbcmluZGV4ICsrXSA9IE1FUkdFX1NFUEVSQVRPUl87CisgICAgCisgICAgICAgICAgICAvLyBjb3B5IGxldmVsIGZyb20gc3JjMiBub3QgaW5jbHVkaW5nIDAwIG9yIDAxCisgICAgICAgICAgICB3aGlsZSAoc291cmNlLm1fa2V5X1tzb3VyY2VpbmRleF0gPCAwIAorICAgICAgICAgICAgICAgICAgIHx8IHNvdXJjZS5tX2tleV9bc291cmNlaW5kZXhdID49IE1FUkdFX1NFUEVSQVRPUl8pIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbcmluZGV4ICsrXSA9IHNvdXJjZS5tX2tleV9bc291cmNlaW5kZXggKytdOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gaWYgYm90aCBzb3J0IGtleXMgaGF2ZSBhbm90aGVyIGxldmVsLCB0aGVuIGFkZCBhIDAxIGxldmVsIAorICAgICAgICAgICAgLy8gc2VwYXJhdG9yIGFuZCBjb250aW51ZQorICAgICAgICAgICAgaWYgKG1fa2V5X1tpbmRleF0gPT0gUnVsZUJhc2VkQ29sbGF0b3IuU09SVF9MRVZFTF9URVJNSU5BVE9SXworICAgICAgICAgICAgICAgICYmIHNvdXJjZS5tX2tleV9bc291cmNlaW5kZXhdIAorICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuU09SVF9MRVZFTF9URVJNSU5BVE9SXykgeworICAgICAgICAgICAgICAgICsrIGluZGV4OworICAgICAgICAgICAgICAgICsrIHNvdXJjZWluZGV4OworICAgICAgICAgICAgICAgIHJlc3VsdFtyaW5kZXggKytdID0gUnVsZUJhc2VkQ29sbGF0b3IuU09SVF9MRVZFTF9URVJNSU5BVE9SXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGhlcmUsIGF0IGxlYXN0IG9uZSBzb3J0IGtleSBpcyBmaW5pc2hlZCBub3csIGJ1dCB0aGUgb3RoZXIgb25lCisgICAgICAgIC8vIG1pZ2h0IGhhdmUgc29tZSBjb250ZW50cyBsZWZ0IGZyb20gY29udGFpbmluZyBtb3JlIGxldmVsczsKKyAgICAgICAgLy8gdGhhdCBjb250ZW50cyBpcyBqdXN0IGFwcGVuZGVkIHRvIHRoZSByZXN1bHQKKyAgICAgICAgaWYgKG1fa2V5X1tpbmRleF0gIT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX2tleV8sIGluZGV4LCByZXN1bHQsIHJpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sZW5ndGhfIC0gaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZS5tX2tleV9bc291cmNlaW5kZXhdICE9IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLm1fa2V5Xywgc291cmNlaW5kZXgsIHJlc3VsdCwgcmluZGV4LCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5tX2xlbmd0aF8gLSBzb3VyY2VpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IDA7CisgICAgCisgICAgICAgIC8vIHRydXN0IHRoYXQgbmVpdGhlciBzb3J0IGtleSBjb250YWluZWQgaWxsZWdhbGx5IGVtYmVkZGVkIHplcm8gYnl0ZXMKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkobnVsbCwgcmVzdWx0KTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTZXF1ZW5jZSBvZiBieXRlcyB0aGF0IHJlcHJlc2VudHMgdGhlIHNvcnQga2V5CisgICAgICovCisgICAgcHJpdmF0ZSBieXRlIG1fa2V5X1tdOworICAgIAorICAgIC8qKgorICAgICAqIFNvdXJjZSBzdHJpbmcgdGhpcyBDb2xsYXRpb25LZXkgcmVwcmVzZW50cworICAgICAqLyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBtX3NvdXJjZV87CisKKyAgICAvKioKKyAgICAgKiBIYXNoIGNvZGUgZm9yIHRoZSBrZXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2hhc2hDb2RlXzsKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsZW5ndGggb2YgdGhpcyBDb2xsYXRpb25LZXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xlbmd0aF87CisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIGtleSBtZXJnZSBzZXBlcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUVSR0VfU0VQRVJBVE9SXyA9IDI7CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxlbmd0aCBvZiB0aGUgQ29sbGF0aW9uS2V5CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIENvbGxhdGlvbktleQorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldExlbmd0aCgpCisgICAgeworICAgICAgICBpZiAobV9sZW5ndGhfID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBtX2xlbmd0aF87CisgICAgICAgIH0KKyAgICAgICAgaW50IGxlbmd0aCA9IG1fa2V5Xy5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICsrKSB7CisgICAgICAgICAgICBpZiAobV9rZXlfW2luZGV4XSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gaW5kZXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIG1fbGVuZ3RoXyA9IGxlbmd0aDsKKyAgICAgICAgcmV0dXJuIG1fbGVuZ3RoXzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2IxODJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM4NjEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKyAKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVCdWlsZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZUJ1aWxkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorKiBDbGFzcyBmb3IgYnVpbGRpbmcgYSBjb2xsYXRvciBmcm9tIGEgbGlzdCBvZiBjb2xsYXRpb24gcnVsZXMuCisqIFRoaXMgY2xhc3MgaXMgdXNlcyBDb2xsYXRpb25SdWxlUGFyc2VyCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgSnVuZSAxMSAyMDAyCisqIEBkcmFmdCAyLjIKKyovCitmaW5hbCBjbGFzcyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcgoreyAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIHJ1bGVzIGNvbGxhdGlvbiBydWxlcworICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkIAorICAgICAqICAgICAgICAgICAgc3ludGF4IAorICAgICAqLworICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3BhcnNlcl8gPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihydWxlcyk7CisgICAgICAgIG1fcGFyc2VyXy5hc3NlbWJsZVRva2VuTGlzdCgpOworICAgICAgICBtX3V0aWxDb2xFSXRlcl8gPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiBJbnZlcnNlIFVDQSB3cmFwcGVyCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEludmVyc2VVQ0EgCisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICBJbnZlcnNlVUNBKCkgCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IGxpc3Qgb2YgY2hhcmFjdGVycworICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fdGFibGVfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBBcnJheSBsaXN0IG9mIGNvbnRpbnVhdGlvbiBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBjaGFyIG1fY29udGludWF0aW9uc19bXTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBVQ0EgdmVyc2lvbiBvZiBpbnZlcnNlIFVDQSB0YWJsZQorICAgICAgICAgKi8KKyAgICAgICAgVmVyc2lvbkluZm8gbV9VQ0FfdmVyc2lvbl87CisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBpbnZlcnNlIGNlcyBvZiB0aGUgYXJndW1lbnQgY2VzCisgICAgICogQHBhcmFtIGNlIGNlIHRvIHRlc3QKKyAgICAgKiBAcGFyYW0gY29udGNlIGNvbnRpbnVhdGlvbiBjZSB0byB0ZXN0CisgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEBwYXJhbSBwcmV2cmVzdWx0IGFuIGFycmF5IHRvIHN0b3JlIHRoZSByZXR1cm4gcmVzdWx0cyBwcmV2aW91cyAKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgaW52ZXJzZSBjZSBhbmQgcHJldmlvdXMgaW52ZXJzZSBjb250aW51YXRpb24gY2UKKyAgICAgICAgICogQHJldHVybiByZXN1bHQgb2YgdGhlIGludmVyc2UgY2UgCisgICAgICovCisgICAgZmluYWwgaW50IGdldEludmVyc2VQcmV2Q0UoaW50IGNlLCBpbnQgY29udGNlLCBpbnQgc3RyZW5ndGgsIAorICAgICAgICAgICAgICAgICAgIGludCBwcmV2cmVzdWx0W10pIAorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGZpbmRJbnZlcnNlQ0UoY2UsIGNvbnRjZSk7CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBwcmV2cmVzdWx0WzBdID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjZSAmPSBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF07CisgICAgICAgIGNvbnRjZSAmPSBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF07CisgICAgICAgIAorICAgICAgICAgICAgcHJldnJlc3VsdFswXSA9IGNlOworICAgICAgICBwcmV2cmVzdWx0WzFdID0gY29udGNlOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKChwcmV2cmVzdWx0WzBdICAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgPT0gY2UgCisgICAgICAgICAgICYmIChwcmV2cmVzdWx0WzFdICAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSk9PSBjb250Y2UKKyAgICAgICAgICAgJiYgcmVzdWx0ID4gMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY29uZGl0aW9uIHNob3VsZCBwcmV2ZW50IGZhbGxpbmcgb2ZmIHRoZSBlZGdlIG9mIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdvcmxkIAorICAgICAgICAgICAgICAgIC8vIGhlcmUsIHdlIGVuZCB1cCBpbiBhIHNpbmd1bGFyaXR5IC0gemVybworICAgICAgICAgICAgICAgIHByZXZyZXN1bHRbMF0gPSBtX3RhYmxlX1szICogKC0tIHJlc3VsdCldOworICAgICAgICAgICAgICAgIHByZXZyZXN1bHRbMV0gPSBtX3RhYmxlX1szICogcmVzdWx0ICsgMV07CisgICAgICAgICAgIH0KKyAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IGdldENFU3RyZW5ndGhEaWZmZXJlbmNlKGludCBDRSwgaW50IGNvbnRDRSwgCisgICAgICAgICAgICAgICAgaW50IHByZXZDRSwgaW50IHByZXZDb250Q0UpIHsKKyAgICAgICAgICAgIGludCBzdHJlbmd0aCA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAgICAgd2hpbGUoCisgICAgICAgICAgICAoKHByZXZDRSAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgIT0gKENFICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSAKKyAgICAgICAgICAgIHx8IChwcmV2Q29udENFICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSAhPSAoY29udENFICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSkKKyAgICAgICAgICAgICYmIChzdHJlbmd0aCAhPSAwKSkgeworICAgICAgICAgICAgICAgIHN0cmVuZ3RoLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc3RyZW5ndGg7ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNFcyhpbnQgc291cmNlMCwgaW50IHNvdXJjZTEsIGludCB0YXJnZXQwLCBpbnQgdGFyZ2V0MSkgeworICAgICAgICAgICAgaW50IHMxID0gc291cmNlMCwgczIsIHQxID0gdGFyZ2V0MCwgdDI7CisgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihzb3VyY2UxKSkgeworICAgICAgICAgICAgICAgIHMyID0gc291cmNlMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgczIgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24odGFyZ2V0MSkpIHsKKyAgICAgICAgICAgICAgICB0MiA9IHRhcmdldDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHQyID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHMgPSAwLCB0ID0gMDsKKyAgICAgICAgICAgIGlmKHMxID09IHQxICYmIHMyID09IHQyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzID0gKHMxICYgMHhGRkZGMDAwMCl8KChzMiAmIDB4RkZGRjAwMDApPj4xNik7IAorICAgICAgICAgICAgdCA9ICh0MSAmIDB4RkZGRjAwMDApfCgodDIgJiAweEZGRkYwMDAwKT4+MTYpOworICAgICAgICAgICAgaWYocyA9PSB0KSB7CisgICAgICAgICAgICAgICAgcyA9IChzMSAmIDB4MDAwMEZGMDApIHwgKHMyICYgMHgwMDAwRkYwMCk+Pjg7CisgICAgICAgICAgICAgICAgdCA9ICh0MSAmIDB4MDAwMEZGMDApIHwgKHQyICYgMHgwMDAwRkYwMCk+Pjg7CisgICAgICAgICAgICAgICAgaWYocyA9PSB0KSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSAoczEgJiAweDAwMDAwMEZGKTw8OCB8IChzMiAmIDB4MDAwMDAwRkYpOworICAgICAgICAgICAgICAgICAgICB0ID0gKHQxICYgMHgwMDAwMDBGRik8PDggfCAodDIgJiAweDAwMDAwMEZGKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHMsIHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVXRpbGl0eS5jb21wYXJlVW5zaWduZWQocywgdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVXRpbGl0eS5jb21wYXJlVW5zaWduZWQocywgdCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRmluZGluZyB0aGUgaW52ZXJzZSBDRSBvZiB0aGUgYXJndW1lbnQgQ0VzCisgICAgICAgICAqIEBwYXJhbSBjZSBDRSB0byBiZSB0ZXN0ZWQKKyAgICAgICAgICogQHBhcmFtIGNvbnRjZSBjb250aW51YXRpb24gQ0UKKyAgICAgICAgICogQHJldHVybiBpbnZlcnNlIENFCisgICAgICAgICAqLworICAgICAgICBpbnQgZmluZEludmVyc2VDRShpbnQgY2UsIGludCBjb250Y2UpIAorICAgICAgICB7CisgICAgICAgICAgICBpbnQgYm90dG9tID0gMDsKKyAgICAgICAgICAgIGludCB0b3AgPSBtX3RhYmxlXy5sZW5ndGggLyAzOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChib3R0b20gPCB0b3AgLSAxKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHRvcCArIGJvdHRvbSkgPj4gMTsKKyAgICAgICAgICAgICAgICBpbnQgZmlyc3QgPSBtX3RhYmxlX1szICogcmVzdWx0XTsKKyAgICAgICAgICAgICAgICBpbnQgc2Vjb25kID0gbV90YWJsZV9bMyAqIHJlc3VsdCArIDFdOworICAgICAgICAgICAgICAgIGludCBjb21wYXJpc29uID0gY29tcGFyZUNFcyhmaXJzdCwgc2Vjb25kLCBjZSwgY29udGNlKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyaXNvbiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdG9wID0gcmVzdWx0OworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29tcGFyaXNvbiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tID0gcmVzdWx0OworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIGdhcCBvZmZzZXRzIGluIHRoZSBpbnZlcnNlIFVDQQorICAgICAqIEBwYXJhbSBsaXN0aGVhZGVyIHBhcnNlZCB0b2tlbiBsaXN0cworICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGVycm9yIG9jY3VycyB3aGlsZSBmaW5kaW5nIHRoZSAKKyAgICAgKiAgICAgICAgICAgIGNvbGxhdGlvbiBnYXBzCisgICAgICovCisgICAgdm9pZCBnZXRJbnZlcnNlR2FwUG9zaXRpb25zKENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW5MaXN0SGVhZGVyIAorICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIAorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgYWxsIHRoZSBnYXBzCisgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4gPSBsaXN0aGVhZGVyLm1fZmlyc3RfOworICAgICAgICBpbnQgdG9rZW5zdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkgKyspIHsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIGldID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIGkgKyAxXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBpICsgMl0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogaV0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogaSArIDFdID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIGkgKyAyXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9udW1TdHJfW2ldID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9baV0gPSBudWxsOworICAgICAgICBsaXN0aGVhZGVyLm1fbFN0clRva2VuX1tpXSA9IG51bGw7CisgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfW2ldID0gLTE7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKChsaXN0aGVhZGVyLm1fYmFzZUNFXyA+Pj4gMjQpIAorICAgICAgICAgICAgICAgID49IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUlOXworICAgICAgICAmJiAobGlzdGhlYWRlci5tX2Jhc2VDRV8gPj4+IDI0KQorICAgICAgICAgICAgICAgIDw9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUFYXykgCisgICAgICAgIHsgCisgICAgICAgICAgICAgICAgLy8gaW1wbGljaXRzIC0KKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfWzBdID0gMDsKKyAgICAgICAgICAgIGludCB0MSA9IGxpc3RoZWFkZXIubV9iYXNlQ0VfOworICAgICAgICAgICAgaW50IHQyID0gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1syXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaW50IHByaW1hcnlDRSA9IHQxICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8ICh0MiAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18pID4+PiAxNjsKKyAgICAgICAgICAgIHByaW1hcnlDRSA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21SYXcoUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldFJhd0Zyb21JbXBsaWNpdChwcmltYXJ5Q0UpKzEpOworCisgICAgICAgICAgICB0MSA9IHByaW1hcnlDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAweDA1MDU7CisgICAgICAgICAgICB0MiA9IChwcmltYXJ5Q0UgPDwgMTYpICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9iYXNlQ0VfIDwgMHhFRjAwMDAwMCkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0IGltcGxpY2l0cyBoYXZlIHRocmVlIGJ5dGUgcHJpbWFyaWVzLCB3aXRoIGEgZ2FwIG9mCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gb25lIHNvIHdlIGVzZW50aWFsbHkgbmVlZCB0byBhZGQgMiB0byB0aGUgdG9wIGJ5dGUgaW4gCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgdDIgKz0gMHgwMjAwMDAwMDsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgaW1wbGljaXRzIGhhdmUgZm91ciBieXRlIHByaW1hcmllcywgd2l0aCBhIGdhcCBvZgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIElNUExJQ0lUX0xBU1QyX01VTFRJUExJRVJfCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gTm93LCB0aGlzIGd1eSBpcyBub3QgcmVhbGx5IGFjY2Vzc2libGUgaGVyZSwgc28gdW50aWwgd2UgCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gZmluZCBhIGJldHRlciB3YXkgdG8gcGFzcyBpdCBhcm91bmQsIGFzc3VtZSB0aGF0IHRoZSBnYXAgaXMgMQorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIHQyICs9IDB4MDAwMjAwMDA7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1swXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1sxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGxpc3RoZWFkZXIubV9pbmRpcmVjdF8gPT0gdHJ1ZSAKKyAgICAgICAgICAgICAgICAgICAgICYmIGxpc3RoZWFkZXIubV9uZXh0Q0VfICE9IDApIHsKKyAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19bMF0gPSAwOworICAgICAgICBpbnQgdDEgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKyAgICAgICAgaW50IHQyID0gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1swXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1syXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB0MSA9IGxpc3RoZWFkZXIubV9uZXh0Q0VfOworICAgICAgICB0MiA9IGxpc3RoZWFkZXIubV9uZXh0Q29udENFXzsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1sxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMl0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAodG9rZW5zdHJlbmd0aCA8IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXykgeworICAgICAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aF0gCisgICAgICAgICAgICAgICAgPSBnZXRJbnZlcnNlTmV4dChsaXN0aGVhZGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoXSA+PSAwKSB7CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aF0gPSB0b2tlbjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIENFIG11c3QgYmUgaW1wbGljaXQsIHNpbmNlIGl0J3Mgbm90IGluIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YWJsZSAKKyAgICAgICAgICAgICAgICAvLyBFcnJvcgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9IG51bGwgJiYgdG9rZW4ubV9zdHJlbmd0aF8gPj0gdG9rZW5zdHJlbmd0aCkgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHRva2Vuc3RyZW5ndGggPCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8pIHsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fbFN0clRva2VuX1t0b2tlbnN0cmVuZ3RoXSA9IHRva2VuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b2tlbiA9IHRva2VuLm1fbmV4dF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodG9rZW5zdHJlbmd0aCA8IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXyAtIDEpIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIHByZXZpb3VzIGludGVydmFsIGlzIHRoZSBzYW1lIGFuZCBtZXJnZSB0aGUgCisgICAgICAgICAgICAvLyBpbnRlcnZhbHMgaWYgaXQgaXMgc28KKyAgICAgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoXSAKKyAgICAgICAgICAgICAgICA9PSBsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoICsgMV0pIHsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoXSAKKyAgICAgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9mU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMV07CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aCArIDFdID0gbnVsbDsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fbFN0clRva2VuX1t0b2tlbnN0cmVuZ3RoICsgMV0gPSBudWxsOworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGggKyAxXSA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRva2VuICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRva2Vuc3RyZW5ndGggPSB0b2tlbi5tX3N0cmVuZ3RoXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IHN0ID0gMDsgc3QgPCAzOyBzdCArKykgeworICAgICAgICAgICAgaW50IHBvcyA9IGxpc3RoZWFkZXIubV9wb3NfW3N0XTsKKyAgICAgICAgICAgIGlmIChwb3MgPj0gMCkgeworICAgICAgICAgICAgaW50IHQxID0gbV90YWJsZV9bMyAqIHBvc107CisgICAgICAgICAgICBpbnQgdDIgPSBtX3RhYmxlX1szICogcG9zICsgMV07CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogc3RdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBzdCArIDFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIHN0ICsgMl0gPSAodDEgJiAweDNmKSA8PCAyNCAKKyAgICAgICAgICAgICAgICB8ICh0MiAmIDB4M2YpIDw8IDE2OworICAgICAgICAgICAgLy9wb3MgLS07CisgICAgICAgICAgICAvL3QxID0gbV90YWJsZV9bMyAqIHBvc107CisgICAgICAgICAgICAvL3QyID0gbV90YWJsZV9bMyAqIHBvcyArIDFdOworICAgICAgICAgICAgdDEgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKyAgICAgICAgICAgIHQyID0gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfOworICAgICAgICAgICAgCisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogc3RdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBzdCArIDFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIHN0ICsgMl0gPSAodDEgJiAweDNmKSA8PCAyNCAKKyAgICAgICAgICAgICAgICB8ICh0MiAmIDB4M2YpIDw8IDE2OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IENFIGluIHRoZSBpbnZlcnNlIHRhYmxlCisgICAgICogQHBhcmFtIGxpc3RoZWFkZXIgdG9rZW4gbGlzdCBoZWFkZXIKKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICogQHJldHVybiBuZXh0IGNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0SW52ZXJzZU5leHQoQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbkxpc3RIZWFkZXIgCisgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLCAKKyAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlbmd0aCkgCisgICAgeworICAgICAgICBpbnQgY2UgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKyAgICAgICAgaW50IHNlY29uZGNlID0gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfOyAKKyAgICAgICAgaW50IHJlc3VsdCA9IGZpbmRJbnZlcnNlQ0UoY2UsIHNlY29uZGNlKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjZSAmPSBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF07CisgICAgICAgIHNlY29uZGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKyAgICAgICAgCisgICAgICAgIGludCBuZXh0Y2UgPSBjZTsKKyAgICAgICAgaW50IG5leHRjb250Y2UgPSBzZWNvbmRjZTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKChuZXh0Y2UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pID09IGNlIAorICAgICAgICAgICYmIChuZXh0Y29udGNlICAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgPT0gc2Vjb25kY2UpIHsKKyAgICAgICAgbmV4dGNlID0gbV90YWJsZV9bMyAqICgrKyByZXN1bHQpXTsKKyAgICAgICAgbmV4dGNvbnRjZSA9IG1fdGFibGVfWzMgKiByZXN1bHQgKyAxXTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGxpc3RoZWFkZXIubV9uZXh0Q0VfID0gbmV4dGNlOworICAgICAgICBsaXN0aGVhZGVyLm1fbmV4dENvbnRDRV8gPSBuZXh0Y29udGNlOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnZlcnNlIFVDQSwgaW5zdGFudGlhdGUgb25seSB3aGVuIHJlcXVpcmVkCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIEludmVyc2VVQ0EgSU5WRVJTRV9VQ0FfOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBVQ0EgYW5kIEludmVyc2UgVUNBIHZlcnNpb24gZG8gbm90IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVl9VQ0FfVkVSU0lPTl9NSVNNQVRDSF8gPQorICAgICJVQ0EgdmVyc2lvbnMgb2YgVUNBIGFuZCBpbnZlcnNlIFVDQSBzaG91bGQgbWF0Y2giOworICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBVQ0EgYW5kIEludmVyc2UgVUNBIHZlcnNpb24gZG8gbm90IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVDQV9OT1RfSU5TVEFOVElBVEVEXyA9CisgICAgIlVDQSBpcyBub3QgaW5zdGFudGlhdGVkISI7CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6aW5nIHRoZSBpbnZlcnNlIFVDQQorICAgICAqLworICAgIHN0YXRpYyB7CisgICAgICAgIEludmVyc2VVQ0EgdGVtcCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgIHRlbXAgPSBDb2xsYXRvclJlYWRlci5nZXRJbnZlcnNlVUNBKCk7CisgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgIH0KKyAgICAgICAgLyoKKyAgICAgIHRyeQorICAgICAgeworICAgICAgU3RyaW5nIGludmRhdCA9ICIvY29tL2libS9pY3UvaW1wbC9kYXRhL2ludnVjYS5pY3UiOworICAgICAgSW5wdXRTdHJlYW0gaSA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oaW52ZGF0KTsKKyAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIDExMDAwMCk7CisgICAgICBJTlZFUlNFX1VDQV8gPSBDb2xsYXRvclJlYWRlci5yZWFkSW52ZXJzZVVDQShiKTsKKyAgICAgIGIuY2xvc2UoKTsKKyAgICAgIGkuY2xvc2UoKTsKKyAgICAgIH0KKyAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgIHsKKyAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICB9CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBpZih0ZW1wICE9IG51bGwgJiYgUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyAhPSBudWxsKSB7CisgICAgICAgICAgICBpZighdGVtcC5tX1VDQV92ZXJzaW9uXy5lcXVhbHMoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX1VDQV92ZXJzaW9uXykpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihJTlZfVUNBX1ZFUlNJT05fTUlTTUFUQ0hfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKFVDQV9OT1RfSU5TVEFOVElBVEVEXyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIElOVkVSU0VfVUNBXyA9IHRlbXA7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUGFyc2UgYW5kIHNldHMgdGhlIGNvbGxhdGlvbiBydWxlcyBpbiB0aGUgYXJndW1lbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdG8gc2V0CisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICB2b2lkIHNldFJ1bGVzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAobV9wYXJzZXJfLm1fcmVzdWx0TGVuZ3RoXyA+IDAgfHwgbV9wYXJzZXJfLm1fcmVtb3ZlU2V0XyAhPSBudWxsKSB7IAorICAgICAgICAvLyB3ZSBoYXZlIGEgc2V0IG9mIHJ1bGVzLCBsZXQncyBtYWtlIHNvbWV0aGluZyBvZiBpdCAKKyAgICAgICAgYXNzZW1ibGVUYWlsb3JpbmdUYWJsZShjb2xsYXRvcik7CisgICAgfSAKKyAgICBlbHNlIHsgLy8gbm8gcnVsZXMsIGJ1dCBubyBlcnJvciBlaXRoZXIgbXVzdCBiZSBvbmx5IG9wdGlvbnMKKyAgICAgICAgLy8gV2Ugd2lsbCBpbml0IHRoZSBjb2xsYXRvciBmcm9tIFVDQSAgIAorICAgICAgICBjb2xsYXRvci5zZXRXaXRoVUNBVGFibGVzKCk7CisgICAgfQorICAgICAgICAvLyBBbmQgc2V0IG9ubHkgdGhlIG9wdGlvbnMKKyAgICAgICAgbV9wYXJzZXJfLnNldERlZmF1bHRPcHRpb25zSW5Db2xsYXRvcihjb2xsYXRvcik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb3B5UmFuZ2VGcm9tVUNBKEJ1aWxkVGFibGUgdCwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGludCB1ID0gMDsKKyAgICAgICAgZm9yICh1ID0gc3RhcnQ7IHUgPD0gZW5kOyB1ICsrKSB7CisgICAgICAgICAgICAvLyBpZiAoKENFID0gdWNtcGUzMl9nZXQodC5tX21hcHBpbmcsIHUpKSA9PSBVQ09MX05PVF9GT1VORAorICAgICAgICAgICAgaW50IENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKHUpOworICAgICAgICAgICAgaWYgKENFID09IENFX05PVF9GT1VORF8gCisgICAgICAgICAgICAgICAgLy8gdGhpcyB0ZXN0IGlzIGZvciBjb250cmFjdGlvbnMgdGhhdCBhcmUgbWlzc2luZyB0aGUgc3RhcnRpbmcgCisgICAgICAgICAgICAgICAgLy8gZWxlbWVudC4gTG9va3MgbGlrZSBsYXRpbi0xIHNob3VsZCBiZSBkb25lIGJlZm9yZSAKKyAgICAgICAgICAgICAgICAvLyBhc3NlbWJsaW5nIHRoZSB0YWJsZSwgZXZlbiBpZiBpdCByZXN1bHRzIGluIG1vcmUgZmFsc2UgCisgICAgICAgICAgICAgICAgLy8gY2xvc3VyZSBlbGVtZW50cworICAgICAgICAgICAgICAgIHx8IChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KENFKSAKKyAgICAgICAgICAgICYmIGdldENFKHQubV9jb250cmFjdGlvbnNfLCBDRSwgMCkgPT0gQ0VfTk9UX0ZPVU5EXykpIHsKKyAgICAgICAgICAgICAgICAvL21fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IHN0ci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IFVDaGFyYWN0ZXIudG9TdHJpbmcodSk7CisgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXzsKKyAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeF8gPSAwOworICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18pOworICAgICAgICAgICAgICAgIHdoaWxlIChDRSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIENFID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENFICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1ttX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyArK10gCisgICAgICAgICAgICAgICAgPSBDRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhZGRBbkVsZW1lbnQodCwgbV91dGlsRWxlbWVudF8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogMi4gIEVsaW1pbmF0ZSB0aGUgbmVnYXRpdmUgbGlzdHMgYnkgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCAKKyAgICAgKiBub24tbnVsbCBuZWdhdGl2ZSBsaXN0OiAKKyAgICAgKiBvICAgaWYgcHJldmlvdXNDRShiYXNlQ0UsIHN0cm9uZ2VzdE4pICE9IHNvbWUgTGlzdEhlYWRlciBYJ3MgYmFzZUNFLCAKKyAgICAgKiBjcmVhdGUgbmV3IExpc3RIZWFkZXIgWCAKKyAgICAgKiBvICAgcmV2ZXJzZSB0aGUgbGlzdCwgYWRkIHRvIHRoZSBlbmQgb2YgWCdzIHBvc2l0aXZlIGxpc3QuIFJlc2V0IHRoZSAKKyAgICAgKiBzdHJlbmd0aCBvZiB0aGUgZmlyc3QgaXRlbSB5b3UgYWRkLCBiYXNlZCBvbiB0aGUgc3Ryb25nZXIgc3RyZW5ndGggCisgICAgICogbGV2ZWxzIG9mIHRoZSB0d28gbGlzdHMuIAorICAgICAqIAorICAgICAqIDMuICBGb3IgZWFjaCBMaXN0SGVhZGVyIHdpdGggYSBub24tbnVsbCBwb3NpdGl2ZSBsaXN0OiAKKyAgICAgKiBvICAgRmluZCBhbGwgY2hhcmFjdGVyIHN0cmluZ3Mgd2l0aCBDRXMgYmV0d2VlbiB0aGUgYmFzZUNFIGFuZCB0aGUgCisgICAgICogbmV4dC9wcmV2aW91cyBDRSwgYXQgdGhlIHN0cmVuZ3RoIG9mIHRoZSBmaXJzdCB0b2tlbi4gQWRkIHRoZXNlIHRvIHRoZSAKKyAgICAgKiB0YWlsb3JpbmcuIAorICAgICAqICAgICA/IFRoYXQgaXMsIGlmIFVDQSBoYXMgLi4uICB4IDw8PCBYIDw8IHgnIDw8PCBYJyA8IHkgLi4uLCBhbmQgdGhlIAorICAgICAqICAgICAgIHRhaWxvcmluZyBoYXMgJiB4IDwgei4uLiAKKyAgICAgKiAgICAgPyBUaGVuIHdlIGNoYW5nZSB0aGUgdGFpbG9yaW5nIHRvICYgeCAgPDw8IFggPDwgeCcgPDw8IFgnIDwgeiAuLi4gCisgICAgICogCisgICAgICogSXQgaXMgcG9zc2libGUgdGhhdCB0aGlzIHBhcnQgc2hvdWxkIGJlIGRvbmUgZXZlbiB3aGlsZSBjb25zdHJ1Y3RpbmcgbGlzdAorICAgICAqIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgaXMgdW5rbm93biB3aGF0IGlzIGdvaW5nIHRvIGJlIHRoZSBzdHJvbmdlc3QgCisgICAgICogd2VpZ2h0LgorICAgICAqIFNvIHdlIG1pZ2h0IGFzIHdlbGwgZG8gaXQgaGVyZQorICAgICAqIG8gICBBbGxvY2F0ZSBDRXMgZm9yIGVhY2ggdG9rZW4gaW4gdGhlIGxpc3QsIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgTiAKKyAgICAgKiBvZiB0aGUgbGFyZ2VzdCBsZXZlbCBkaWZmZXJlbmNlLCBhbmQgdGhlIGdhcCBHIGJldHdlZW4gYmFzZUNFIGFuZCBuZXh0Q0UgCisgICAgICogYXQgdGhhdCBsZXZlbC4gVGhlIHJlbGF0aW9uICogYmV0d2VlbiB0aGUgbGFzdCBpdGVtIGFuZCBuZXh0Q0UgaXMgdGhlIAorICAgICAqIHNhbWUgYXMgdGhlIHN0cm9uZ2VzdCBzdHJlbmd0aC4gCisgICAgICogbyAgIEV4YW1wbGU6IGJhc2VDRSA8IGEgPDwgYiA8PDwgcSA8PCBjIDwgZCA8IGUgKiBuZXh0Q0UoWCwxKSAKKyAgICAgKiAgICAgPyBUaGVyZSBhcmUgMyBwcmltYXJ5IGl0ZW1zOiBhLCBkLCBlLiBGaXQgdGhlbSBpbnRvIHRoZSBwcmltYXJ5IGdhcC4gCisgICAgICogICAgIFRoZW4gZml0IGIgYW5kIGMgaW50byB0aGUgc2Vjb25kYXJ5IGdhcCBiZXR3ZWVuIGEgYW5kIGQsIHRoZW4gZml0IHEgCisgICAgICogICAgIGludG8gdGhlIHRlcnRpYXJ5IGdhcCBiZXR3ZWVuIGIgYW5kIGMuIAorICAgICAqIG8gICBFeGFtcGxlOiBiYXNlQ0UgPDwgYiA8PDwgcSA8PCBjICogbmV4dENFKFgsMikgCisgICAgICogICAgID8gVGhlcmUgYXJlIDIgc2Vjb25kYXJ5IGl0ZW1zOiBiLCBjLiBGaXQgdGhlbSBpbnRvIHRoZSBzZWNvbmRhcnkgZ2FwLiAKKyAgICAgKiAgICAgICBUaGVuIGZpdCBxIGludG8gdGhlIHRlcnRpYXJ5IGdhcCBiZXR3ZWVuIGIgYW5kIGMuIAorICAgICAqIG8gICBXaGVuIGluY3JlbWVudGluZyBwcmltYXJ5IHZhbHVlcywgd2Ugd2lsbCBub3QgY3Jvc3MgaGlnaCBieXRlIAorICAgICAqICAgICBib3VuZGFyaWVzIGV4Y2VwdCB3aGVyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlLWJ5dGUgcHJpbWFyeS4gVGhhdCBpcyAKKyAgICAgKiAgICAgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcmlwdCByZW9yZGVyaW5nIHdpbGwgY29udGludWUgdG8gd29yay4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRoZSBydWxlIGJhc2VkIGNvbGxhdG9yIHRvIHVwZGF0ZQorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgdm9pZCBhc3NlbWJsZVRhaWxvcmluZ1RhYmxlKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fcGFyc2VyXy5tX3Jlc3VsdExlbmd0aF87IGkgKyspIHsKKyAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIENFcyAgCisgICAgICAgIC8vIFdlIHN0dWZmIHRoZSBpbml0aWFsIHZhbHVlIGluIHRoZSBidWZmZXJzLCBhbmQgaW5jcmVhc2UgdGhlIAorICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIGFjY29yZGluZyB0byBzdHJlbmd0aAorICAgICAgICAgICAgaWYgIChtX3BhcnNlcl8ubV9saXN0SGVhZGVyX1tpXS5tX2ZpcnN0XyAhPSBudWxsKSB7IAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBhbnkgZWxlbWVudHMKKyAgICAgICAgICAgICAgICAvLyBkdWUgdG8gdGhlIHdheSBwYXJzZXIgd29ya3MsIHN1YnNlcXVlbnQgdGFpbG9yaW5ncworICAgICAgICAgICAgICAgIC8vIG1heSByZW1vdmUgYWxsIHRoZSBlbGVtZW50cyBmcm9tIGEgc2VxdWVuY2UsIHRoZXJlZm9yZQorICAgICAgICAgICAgICAgIC8vIGxlYXZpbmcgYW4gZW1wdHkgdGFpbG9yaW5nIHNlcXVlbmNlLgorICAgICAgICBpbml0QnVmZmVycyhtX3BhcnNlcl8ubV9saXN0SGVhZGVyX1tpXSk7CisgICAgICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXyAhPSBudWxsKSB7IAorICAgICAgICAgICAgLy8gc3R1ZmYgdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZQorICAgICAgICBtX3BhcnNlcl8ubV9vcHRpb25zXy5tX3ZhcmlhYmxlVG9wVmFsdWVfIAorICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX0NFX1swXSA+Pj4gMTY7CisgICAgICAgIC8vIHJlbW92ZSBpdCBmcm9tIHRoZSBsaXN0CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyAKKyAgICAgICAgICAgICAgICA9PSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8pIHsgLy8gZmlyc3QgaW4gbGlzdAorICAgICAgICBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbmV4dF87CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gCisgICAgICAgID09IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXykgeyAKKyAgICAgICAgICAgICAgICAvLyBmaXJzdCBpbiBsaXN0CisgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gCisgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXzsgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfICE9IG51bGwpIHsKKyAgICAgICAgbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbmV4dF8ubV9wcmV2aW91c18gCisgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXzsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fcHJldmlvdXNfLm1fbmV4dF8gCisgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBCdWlsZFRhYmxlIHQgPSBuZXcgQnVpbGRUYWJsZShtX3BhcnNlcl8pOworICAgICAgICAKKyAgICAgICAgLy8gQWZ0ZXIgdGhpcywgd2UgaGF2ZSBhc3NpZ25lZCBDRSB2YWx1ZXMgdG8gYWxsIHJlZ3VsYXIgQ0VzIG5vdyB3ZSAKKyAgICAvLyB3aWxsIGdvIHRocm91Z2ggbGlzdCBvbmNlIG1vcmUgYW5kIHJlc29sdmUgZXhwYW5zaW9ucywgbWFrZSAKKyAgICAvLyBVQ0FFbGVtZW50cyBzdHJ1Y3RzIGFuZCBhZGQgdGhlbSB0byB0YWJsZSAgICAgICAgICAgICAgIAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9wYXJzZXJfLm1fcmVzdWx0TGVuZ3RoXzsgaSArKykgeworICAgICAgICAvLyBub3cgd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgQ0VzIAorICAgICAgICAvLyBXZSBzdHVmZiB0aGUgaW5pdGlhbCB2YWx1ZSBpbiB0aGUgYnVmZmVycywgYW5kIGluY3JlYXNlIHRoZSAKKyAgICAgICAgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIGFjY29yZGluZyB0byBzdHJlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICBjcmVhdGVFbGVtZW50cyh0LCBtX3BhcnNlcl8ubV9saXN0SGVhZGVyX1tpXSk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgbV91dGlsRWxlbWVudF8uY2xlYXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgLy8gYWRkIGxhdGluLTEgc3R1ZmYKKyAgICAgICAgY29weVJhbmdlRnJvbVVDQSh0LCAwLCAweEZGKTsKKyAgICAKKyAgICAgICAgLy8gYWRkIHN0dWZmIGZvciBjb3B5aW5nIAorICAgICAgICBpZihtX3BhcnNlcl8ubV9jb3B5U2V0XyAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBtX3BhcnNlcl8ubV9jb3B5U2V0Xy5nZXRSYW5nZUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgICAgIGNvcHlSYW5nZUZyb21VQ0EodCwgbV9wYXJzZXJfLm1fY29weVNldF8uZ2V0UmFuZ2VTdGFydChpKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlcl8ubV9jb3B5U2V0Xy5nZXRSYW5nZUVuZChpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGNvcHkgY29udHJhY3Rpb25zIGZyb20gdGhlIFVDQSAtIHRoaXMgaXMgZmVsdCBtb3N0bHkgZm9yIGN5cmlsbGljCisgICAgY2hhciBjb250c1tdID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlRSQUNUSU9OU187CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgIHdoaWxlIChjb250c1tvZmZzZXRdICE9IDApIHsKKyAgICAgICAgLy8gdGFpbG9yZWRDRSA9IHVjbXBlMzJfZ2V0KHQubV9tYXBwaW5nLCAqY29udHMpOworICAgICAgICAgICAgaW50IHRhaWxvcmVkQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUoY29udHNbb2Zmc2V0XSk7CisgICAgICAgIGlmICh0YWlsb3JlZENFICE9IENFX05PVF9GT1VORF8pIHsgICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBuZWVkVG9BZGQgPSB0cnVlOworICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudCh0YWlsb3JlZENFKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNUYWlsb3JlZCh0Lm1fY29udHJhY3Rpb25zXywgdGFpbG9yZWRDRSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzLCBvZmZzZXQgKyAxKSA9PSB0cnVlKSB7CisgICAgICAgICAgICBuZWVkVG9BZGQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKG1fcGFyc2VyXy5tX3JlbW92ZVNldF8gIT0gbnVsbCAmJiBtX3BhcnNlcl8ubV9yZW1vdmVTZXRfLmNvbnRhaW5zKGNvbnRzW29mZnNldF0pKSB7CisgICAgICAgICAgICAgICAgICAgIG5lZWRUb0FkZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChuZWVkVG9BZGQgPT0gdHJ1ZSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBhZGQgaWYgdGhpcyBjb250cmFjdGlvbiBpcyBub3QgdGFpbG9yZWQuCisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeF8gPSAwOworICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXzsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmRlbGV0ZSgwLCBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNvbnRzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNvbnRzW29mZnNldCArIDFdKTsKKyAgICAgICAgICAgIGlmIChjb250c1tvZmZzZXQgKyAyXSAhPSAwKSB7CisgICAgICAgICAgICBzdHIuYXBwZW5kKGNvbnRzW29mZnNldCArIDJdKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IHN0ci50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgQ0UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENFICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgKytdID0gQ0U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZGRBbkVsZW1lbnQodCwgbV91dGlsRWxlbWVudF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKG1fcGFyc2VyXy5tX3JlbW92ZVNldF8gIT0gbnVsbCAmJiBtX3BhcnNlcl8ubV9yZW1vdmVTZXRfLmNvbnRhaW5zKGNvbnRzW29mZnNldF0pKSB7CisgICAgICAgICAgICAgICAgY29weVJhbmdlRnJvbVVDQSh0LCBjb250c1tvZmZzZXRdLCBjb250c1tvZmZzZXRdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBvZmZzZXQgKz0gMzsKKyAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBZGQgY29tcGxldGVseSBpZ25vcmFibGUgZWxlbWVudHMKKyAgICAgICAgcHJvY2Vzc1VDQUNvbXBsZXRlSWdub3JhYmxlcyh0KTsKKyAgICAgICAgCisgICAgICAgIC8vIGNhbm9uaWNhbCBjbG9zdXJlIAorICAgICAgICBjYW5vbmljYWxDbG9zdXJlKHQpOworICAKKyAgICAvLyBzdGlsbCBuZWVkIHRvIHByb2R1Y2UgY29tcGF0aWJpbGl0eSBjbG9zdXJlCisgICAgYXNzZW1ibGVUYWJsZSh0LCBjb2xsYXRvcik7ICAKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDRUdlbmVyYXRvciAKKyAgICB7CisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgV2VpZ2h0UmFuZ2UgbV9yYW5nZXNfW107CisgICAgaW50IG1fcmFuZ2VzTGVuZ3RoXzsKKyAgICBpbnQgbV9ieXRlU2l6ZV87IAorICAgICAgICBpbnQgbV9zdGFydF87IAorICAgICAgICBpbnQgbV9saW1pdF87CisgICAgaW50IG1fbWF4Q291bnRfOworICAgIGludCBtX2NvdW50XzsKKyAgICBpbnQgbV9jdXJyZW50XzsKKyAgICBpbnQgbV9mTG93XzsgLy8gZm9yYmlkZGVuIExvdyAKKyAgICBpbnQgbV9mSGlnaF87IC8vIGZvcmJpZGRlbiBIaWdoIAorICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgQ0VHZW5lcmF0b3IoKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9yYW5nZXNfID0gbmV3IFdlaWdodFJhbmdlWzddOyAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDY7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgICAgIG1fcmFuZ2VzX1tpXSA9IG5ldyBXZWlnaHRSYW5nZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgV2VpZ2h0UmFuZ2UgaW1wbGVtZW50cyBDb21wYXJhYmxlCisgICAgeworICAgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZXMgdGhpcyBvYmplY3Qgd2l0aCB0YXJnZXQKKyAgICAgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZSB3aXRoCisgICAgICAgICAqIEByZXR1cm4gMCBpZiBlcXVhbHMsIDEgaWYgdGhpcyBpcyA+IHRhcmdldCwgLTEgb3RoZXJ3aXNlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgdGFyZ2V0KSAKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdHN0YXJ0ID0gKChXZWlnaHRSYW5nZSl0YXJnZXQpLm1fc3RhcnRfOyAgIAorICAgICAgICAgICAgaWYgKG1fc3RhcnRfID09IHRzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fc3RhcnRfID4gdHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXplIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IDA7CisgICAgICAgICAgICBtX2VuZF8gPSAwOworICAgICAgICAgICAgbV9sZW5ndGhfID0gMDsgCisgICAgICAgICAgICBtX2NvdW50XyA9IDA7CisgICAgICAgICAgICBtX2xlbmd0aDJfID0gMDsKKyAgICAgICAgICAgIG1fY291bnQyXyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgaW50IG1fc3RhcnRfOworICAgICAgICBpbnQgbV9lbmRfOworICAgIGludCBtX2xlbmd0aF87IAorICAgICAgICBpbnQgbV9jb3VudF87CisgICAgaW50IG1fbGVuZ3RoMl87CisgICAgaW50IG1fY291bnQyXzsKKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIFdlaWdodFJhbmdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICAgICAqIENsb25lYWJsZSBpcyB0cm91Ymxlc29tZSwgbmVlZHMgdG8gY2hlY2sgZm9yIGV4Y2VwdGlvbgorICAgICAgICAgKiBAcGFyYW0gc291cmNlIHRvIGNsb25lCisgICAgICAgICAqLworICAgICAgICBXZWlnaHRSYW5nZShXZWlnaHRSYW5nZSBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fc3RhcnRfID0gc291cmNlLm1fc3RhcnRfOworICAgICAgICAgICAgbV9lbmRfID0gc291cmNlLm1fZW5kXzsKKyAgICAgICAgICAgIG1fbGVuZ3RoXyA9IHNvdXJjZS5tX2xlbmd0aF87IAorICAgICAgICAgICAgbV9jb3VudF8gPSBzb3VyY2UubV9jb3VudF87CisgICAgICAgICAgICBtX2xlbmd0aDJfID0gc291cmNlLm1fbGVuZ3RoMl87CisgICAgICAgICAgICBtX2NvdW50Ml8gPSBzb3VyY2UubV9jb3VudDJfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1heEphbW9FeHBhbnNpb25UYWJsZQorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIFZlY3RvciBtX2VuZEV4cGFuc2lvbkNFXzsKKyAgICAvLyB2ZWN0b3Igb2YgYm9vbGVhbnMKKyAgICBWZWN0b3IgbV9pc1ZfOworICAgIGJ5dGUgbV9tYXhMU2l6ZV87CisgICAgYnl0ZSBtX21heFZTaXplXzsKKyAgICBieXRlIG1fbWF4VFNpemVfOworICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSgpCisgICAgeworICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9pc1ZfID0gbmV3IFZlY3RvcigpOworICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXy5hZGQobmV3IEludGVnZXIoMCkpOworICAgICAgICBtX2lzVl8uYWRkKG5ldyBCb29sZWFuKGZhbHNlKSk7CisgICAgICAgICAgICBtX21heExTaXplXyA9IDE7CisgICAgICAgICAgICBtX21heFZTaXplXyA9IDE7CisgICAgICAgICAgICBtX21heFRTaXplXyA9IDE7CisgICAgfQorICAgICAgICAKKyAgICAgICAgTWF4SmFtb0V4cGFuc2lvblRhYmxlKE1heEphbW9FeHBhbnNpb25UYWJsZSB0YWJsZSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8gPSAoVmVjdG9yKXRhYmxlLm1fZW5kRXhwYW5zaW9uQ0VfLmNsb25lKCk7CisgICAgICAgICAgICBtX2lzVl8gPSAoVmVjdG9yKXRhYmxlLm1faXNWXy5jbG9uZSgpOworICAgICAgICAgICAgbV9tYXhMU2l6ZV8gPSB0YWJsZS5tX21heExTaXplXzsKKyAgICAgICAgICAgIG1fbWF4VlNpemVfID0gdGFibGUubV9tYXhWU2l6ZV87CisgICAgICAgICAgICBtX21heFRTaXplXyA9IHRhYmxlLm1fbWF4VFNpemVfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1heEV4cGFuc2lvblRhYmxlIAorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgTWF4RXhwYW5zaW9uVGFibGUoKSAKKyAgICB7CisgICAgICAgIG1fZW5kRXhwYW5zaW9uQ0VfID0gbmV3IFZlY3RvcigpOworICAgICAgICBtX2V4cGFuc2lvbkNFU2l6ZV8gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcigwKSk7CisgICAgICAgIG1fZXhwYW5zaW9uQ0VTaXplXy5hZGQobmV3IEJ5dGUoKGJ5dGUpMCkpOworICAgIH0KKyAgICAgICAgCisgICAgICAgIE1heEV4cGFuc2lvblRhYmxlKE1heEV4cGFuc2lvblRhYmxlIHRhYmxlKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8gPSAoVmVjdG9yKXRhYmxlLm1fZW5kRXhwYW5zaW9uQ0VfLmNsb25lKCk7CisgICAgICAgICAgICBtX2V4cGFuc2lvbkNFU2l6ZV8gPSAoVmVjdG9yKXRhYmxlLm1fZXhwYW5zaW9uQ0VTaXplXy5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBWZWN0b3IgbV9lbmRFeHBhbnNpb25DRV87CisgICAgVmVjdG9yIG1fZXhwYW5zaW9uQ0VTaXplXzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQmFzaWNDb250cmFjdGlvblRhYmxlIAorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlKCkKKyAgICB7CisgICAgICAgIG1fQ0VzXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBTdHJpbmdCdWZmZXIgbV9jb2RlUG9pbnRzXzsKKyAgICBWZWN0b3IgbV9DRXNfOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDb250cmFjdGlvblRhYmxlIAorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQnVpbGRzIGEgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gbWFwcGluZworICAgICAqLworICAgIENvbnRyYWN0aW9uVGFibGUoSW50VHJpZUJ1aWxkZXIgbWFwcGluZykgCisgICAgeworICAgICAgICBtX21hcHBpbmdfID0gbWFwcGluZzsKKyAgICAgICAgbV9lbGVtZW50c18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fQ0VzXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV9vZmZzZXRzXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9jdXJyZW50VGFnXyA9IENFX05PVF9GT1VORF9UQUdfOworICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3BpZXMgYSBjb250cmFjdGlvbiB0YWJsZS4KKyAgICAgICAgICogTm90IGFsbCBkYXRhIHdpbGwgYmUgY29waWVkIGludG8gdGhlaXIgb3duIG9iamVjdC4KKyAgICAgICAgICogQHBhcmFtIHRhYmxlCisgICAgICAgICAqLworICAgICAgICBDb250cmFjdGlvblRhYmxlKENvbnRyYWN0aW9uVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX21hcHBpbmdfID0gdGFibGUubV9tYXBwaW5nXzsKKyAgICAgICAgICAgIG1fZWxlbWVudHNfID0gKFZlY3Rvcil0YWJsZS5tX2VsZW1lbnRzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIodGFibGUubV9jb2RlUG9pbnRzXy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIG1fQ0VzXyA9IChWZWN0b3IpdGFibGUubV9DRXNfLmNsb25lKCk7CisgICAgICAgICAgICBtX29mZnNldHNfID0gKFZlY3Rvcil0YWJsZS5tX29mZnNldHNfLmNsb25lKCk7CisgICAgICAgICAgICBtX2N1cnJlbnRUYWdfID0gdGFibGUubV9jdXJyZW50VGFnXzsKKyAgICAgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZlY3RvciBvZiBCYXNpY0NvbnRyYWN0aW9uVGFibGUKKyAgICAgKi8KKyAgICAgICAgVmVjdG9yIG1fZWxlbWVudHNfOworICAgICAgICBJbnRUcmllQnVpbGRlciBtX21hcHBpbmdfOworICAgICAgICBTdHJpbmdCdWZmZXIgbV9jb2RlUG9pbnRzXzsKKyAgICBWZWN0b3IgbV9DRXNfOworICAgIFZlY3RvciBtX29mZnNldHNfOworICAgIGludCBtX2N1cnJlbnRUYWdfOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEJ1aWxkVGFibGUgaW1wbGVtZW50cyBUcmllQnVpbGRlci5EYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAqIEZvciBjb25zdHJ1Y3Rpb24gb2YgdGhlIFRyaWUgdGFibGVzLgorICAgICAqIEhhcyB0byBiZSBsYWJlbGVkIHB1YmxpYworICAgICAqIEBwYXJhbSBjcAorICAgICAqIEBwYXJhbSBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIGRhdGEgb2Zmc2V0IG9yIDAgCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGVkVmFsdWUoaW50IGNwLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IGxpbWl0ID0gY3AgKyAweDQwMDsKKyAgICAgICAgd2hpbGUgKGNwIDwgbGltaXQpIHsKKyAgICAgICAgaW50IHZhbHVlID0gbV9tYXBwaW5nXy5nZXRWYWx1ZShjcCk7CisgICAgICAgIGJvb2xlYW4gaW5CbG9ja1plcm8gPSBtX21hcHBpbmdfLmlzSW5aZXJvQmxvY2soY3ApOworICAgICAgICBpbnQgdGFnID0gZ2V0Q0VUYWcodmFsdWUpOworICAgICAgICBpZiAoaW5CbG9ja1plcm8gPT0gdHJ1ZSkgeworICAgICAgICAgICAgY3AgKz0gVHJpZUJ1aWxkZXIuREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKCEoaXNTcGVjaWFsKHZhbHVlKSAmJiAodGFnID09IENFX0lNUExJQ0lUX1RBR18gCisgICAgICAgICAgICAgICAgICAgICAgICB8fCB0YWcgPT0gQ0VfTk9UX0ZPVU5EX1RBR18pKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdmFsdWVzIHRoYXQgYXJlIHN0YXJ0aW5nIGluIGVpdGhlciBVQ0EgCisgICAgICAgICAgICAgICAgICAgIC8vIChJTVBMSUNJVF9UQUcpIG9yIGluIHRoZSB0YWlsb3JpbmdzIChOT1RfRk9VTkRfVEFHKS4gCisgICAgICAgICAgICAgICAgICAgIC8vIFByZXNlbmNlIG9mIHRoZXNlIHRhZ3MgbWVhbnMgdGhhdCB0aGVyZSBpcyBub3RoaW5nIGluIAorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHBvc2l0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCBiZSBza2lwcGVkLgorICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18gCisgICAgICAgICAgICB8IChDRV9TVVJST0dBVEVfVEFHXyA8PCAyNCkgfCBvZmZzZXQ7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgKysgY3A7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0YWJsZQorICAgICAqLworICAgIEJ1aWxkVGFibGUoQ29sbGF0aW9uUnVsZVBhcnNlciBwYXJzZXIpIAorICAgIHsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKTsKKyAgICAgICAgbV9jb2xsYXRvcl8uc2V0V2l0aFVDQURhdGEoKTsKKyAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXQgPSBuZXcgTWF4RXhwYW5zaW9uVGFibGUoKTsKKyAgICAgICAgTWF4SmFtb0V4cGFuc2lvblRhYmxlIG1heGpldCA9IG5ldyBNYXhKYW1vRXhwYW5zaW9uVGFibGUoKTsKKyAgICAgICAgbV9vcHRpb25zXyA9IHBhcnNlci5tX29wdGlvbnNfOworICAgICAgICBtX2V4cGFuc2lvbnNfID0gbmV3IFZlY3RvcigpOworICAgICAgICAvLyBEbyB5b3VyIG93biBtYWxsb2NzIGZvciB0aGUgc3RydWN0dXJlLCBhcnJheSBhbmQgaGF2ZSBsaW5lYXIgCisgICAgICAgIC8vIExhdGluIDEKKyAgICAgICAgICAgIGludCB0cmllaW5pdGlhbHZhbHVlID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXworICAgICAgICB8IChDRV9OT1RfRk9VTkRfVEFHXyA8PCAyNCk7CisgICAgICAgIC8vIHRlbXBvcmFyeSBmaXggZm9yIGpiMzgyMiwgMHgxMDAwMDAgLT4gMzAwMDAKKyAgICAgICAgbV9tYXBwaW5nXyA9IG5ldyBJbnRUcmllQnVpbGRlcihudWxsLCAweDMwMDAwLCB0cmllaW5pdGlhbHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZWluaXRpYWx2YWx1ZSwgdHJ1ZSk7IAorICAgICAgICBtX3ByZWZpeExvb2t1cF8gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIC8vIHVoYXNoX29wZW4ocHJlZml4TG9va3VwSGFzaCwgcHJlZml4TG9va3VwQ29tcCk7CisgICAgICAgIG1fY29udHJhY3Rpb25zXyA9IG5ldyBDb250cmFjdGlvblRhYmxlKG1fbWFwcGluZ18pOworICAgICAgICAvLyBjb3B5IFVDQSdzIG1heGV4cGFuc2lvbiBhbmQgbWVyZ2UgYXMgd2UgZ28gYWxvbmcKKyAgICAgICAgbV9tYXhFeHBhbnNpb25zXyA9IG1heGV0OworICAgICAgICAvLyBhZGRpbmcgYW4gZXh0cmEgaW5pdGlhbCB2YWx1ZSBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbiAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IAorICAgICAgICAgaSA8IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgIG1heGV0Lm1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fZXhwYW5zaW9uRW5kQ0VfW2ldKSk7CisgICAgICAgIG1heGV0Lm1fZXhwYW5zaW9uQ0VTaXplXy5hZGQobmV3IEJ5dGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXSkpOworICAgICAgICB9CisgICAgICAgIG1fbWF4SmFtb0V4cGFuc2lvbnNfID0gbWF4amV0OworICAgICAgICAKKyAgICAgICAgbV91bnNhZmVDUF8gPSBuZXcgYnl0ZVtVTlNBRkVDUF9UQUJMRV9TSVpFX107CisgICAgICAgIG1fY29udHJFbmRDUF8gPSBuZXcgYnl0ZVtVTlNBRkVDUF9UQUJMRV9TSVpFX107CisgICAgICAgIEFycmF5cy5maWxsKG1fdW5zYWZlQ1BfLCAoYnl0ZSkwKTsKKyAgICAgICAgQXJyYXlzLmZpbGwobV9jb250ckVuZENQXywgKGJ5dGUpMCk7CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRHVwbGljYXRpbmcgYSBCdWlsZFRhYmxlLgorICAgICAgICAgKiBOb3QgYWxsIGRhdGEgd2lsbCBiZSBkdXBsaWNhdGVkIGludG8gdGhlaXIgb3duIG9iamVjdC4KKyAgICAgICAgICogQHBhcmFtIHRhYmxlIHRvIGNsb25lCisgICAgICAgICAqLworICAgICAgICBCdWlsZFRhYmxlKEJ1aWxkVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbGxhdG9yXyA9IHRhYmxlLm1fY29sbGF0b3JfOworICAgICAgICAgICAgbV9tYXBwaW5nXyA9IG5ldyBJbnRUcmllQnVpbGRlcih0YWJsZS5tX21hcHBpbmdfKTsKKyAgICAgICAgICAgIG1fZXhwYW5zaW9uc18gPSAoVmVjdG9yKXRhYmxlLm1fZXhwYW5zaW9uc18uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25zXyA9IG5ldyBDb250cmFjdGlvblRhYmxlKHRhYmxlLm1fY29udHJhY3Rpb25zXyk7CisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uc18ubV9tYXBwaW5nXyA9IG1fbWFwcGluZ187CisgICAgICAgICAgICBtX29wdGlvbnNfID0gdGFibGUubV9vcHRpb25zXzsKKyAgICAgICAgICAgIG1fbWF4RXhwYW5zaW9uc18gPSBuZXcgTWF4RXhwYW5zaW9uVGFibGUodGFibGUubV9tYXhFeHBhbnNpb25zXyk7CisgICAgICAgICAgICBtX21heEphbW9FeHBhbnNpb25zXyAKKyAgICAgICAgPSBuZXcgTWF4SmFtb0V4cGFuc2lvblRhYmxlKHRhYmxlLm1fbWF4SmFtb0V4cGFuc2lvbnNfKTsKKyAgICAgICAgICAgIG1fdW5zYWZlQ1BfID0gbmV3IGJ5dGVbdGFibGUubV91bnNhZmVDUF8ubGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV91bnNhZmVDUF8sIDAsIG1fdW5zYWZlQ1BfLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Vuc2FmZUNQXy5sZW5ndGgpOworICAgICAgICAgICAgbV9jb250ckVuZENQXyA9IG5ldyBieXRlW3RhYmxlLm1fY29udHJFbmRDUF8ubGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9jb250ckVuZENQXywgMCwgbV9jb250ckVuZENQXywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb250ckVuZENQXy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbV9tYXBwaW5nXzsgCisgICAgICAgIFZlY3RvciBtX2V4cGFuc2lvbnNfOyAKKyAgICAgICAgQ29udHJhY3Rpb25UYWJsZSBtX2NvbnRyYWN0aW9uc187CisgICAgLy8gVUNBVGFibGVIZWFkZXIgaW1hZ2U7CisgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5PcHRpb25TZXQgbV9vcHRpb25zXzsKKyAgICBNYXhFeHBhbnNpb25UYWJsZSBtX21heEV4cGFuc2lvbnNfOworICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSBtX21heEphbW9FeHBhbnNpb25zXzsKKyAgICBieXRlIG1fdW5zYWZlQ1BfW107CisgICAgYnl0ZSBtX2NvbnRyRW5kQ1BfW107CisgICAgSGFzaHRhYmxlIG1fcHJlZml4TG9va3VwXzsKKyAgICB9IAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEVsZW1lbnRzCisgICAgeworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBTdHJpbmcgbV9wcmVmaXhDaGFyc187CisgICAgaW50IG1fcHJlZml4XzsKKyAgICBTdHJpbmcgbV91Y2hhcnNfOworICAgIC8qKgorICAgICAqIFdvcmtpbmcgc3RyaW5nCisgICAgICovCisgICAgU3RyaW5nIG1fY1BvaW50c187ICAgIAorICAgIC8qKgorICAgICAqIE9mZnNldCB0byB0aGUgd29ya2luZyBzdHJpbmcKKyAgICAgKi8KKyAgICBpbnQgbV9jUG9pbnRzT2Zmc2V0XzsKKyAgICAvKiogCisgICAgICogVGhlc2UgYXJlIGNvbGxhdGlvbiBlbGVtZW50cyAtIHRoZXJlIGNvdWxkIGJlIG1vcmUgdGhhbiBvbmUgLSBpbiAKKyAgICAgKiBjYXNlIG9mIGV4cGFuc2lvbiAKKyAgICAgKi8gICAgCisgICAgaW50IG1fQ0VzX1tdOyAgICAgIAorICAgICAgICBpbnQgbV9DRUxlbmd0aF87CisgICAgLyoqIAorICAgICAqIFRoaXMgaXMgdGhlIHZhbHVlIGVsZW1lbnQgbWFwcyBpbiBvcmlnaW5hbCB0YWJsZSAgIAorICAgICAqLworICAgIGludCBtX21hcENFXzsgICAgICAgICAKKyAgICBpbnQgbV9zaXplUHJpbV9bXTsKKyAgICBpbnQgbV9zaXplU2VjX1tdOworICAgIGludCBtX3NpemVUZXJfW107CisgICAgYm9vbGVhbiBtX3ZhcmlhYmxlVG9wXzsKKyAgICBib29sZWFuIG1fY2FzZUJpdF87CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBFbGVtZW50cygpCisgICAgeworICAgICAgICBtX3NpemVQcmltXyA9IG5ldyBpbnRbMTI4XTsgICAgCisgICAgICAgIG1fc2l6ZVNlY18gPSBuZXcgaW50WzEyOF07ICAgIAorICAgICAgICBtX3NpemVUZXJfID0gbmV3IGludFsxMjhdOyAgICAKKyAgICAgICAgICAgIG1fQ0VzXyA9IG5ldyBpbnRbMjU2XTsKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gMDsKKyAgICB9CisKKyAgICAgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAgICovCisgICAgRWxlbWVudHMoRWxlbWVudHMgZWxlbWVudCkKKyAgICB7CisgICAgICAgICAgICBtX3ByZWZpeENoYXJzXyA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc187CisgICAgICAgICAgICBtX3ByZWZpeF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAgICAgICAgIG1fdWNoYXJzXyA9IGVsZW1lbnQubV91Y2hhcnNfOworICAgICAgICAgICAgbV9jUG9pbnRzXyA9IGVsZW1lbnQubV9jUG9pbnRzXzsgICAgCisgICAgICAgICAgICBtX2NQb2ludHNPZmZzZXRfID0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOyAgICAKKyAgICAgICAgICAgIG1fQ0VzXyA9IGVsZW1lbnQubV9DRXNfOworICAgICAgICAgICAgbV9DRUxlbmd0aF8gPSBlbGVtZW50Lm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgbV9tYXBDRV8gPSBlbGVtZW50Lm1fbWFwQ0VfOworICAgICAgICBtX3NpemVQcmltXyA9IGVsZW1lbnQubV9zaXplUHJpbV87CisgICAgICAgIG1fc2l6ZVNlY18gPSBlbGVtZW50Lm1fc2l6ZVNlY187CisgICAgICAgIG1fc2l6ZVRlcl8gPSBlbGVtZW50Lm1fc2l6ZVRlcl87CisgICAgICAgIG1fdmFyaWFibGVUb3BfID0gZWxlbWVudC5tX3ZhcmlhYmxlVG9wXzsKKyAgICAgICAgbV9jYXNlQml0XyA9IGVsZW1lbnQubV9jYXNlQml0XzsKKyAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluaXRpYWxpemluZyB0aGUgZWxlbWVudHMKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgbV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgIG1fdWNoYXJzXyA9IG51bGw7CisgICAgICAgICAgICBtX2NQb2ludHNfID0gbnVsbDsgICAgCisgICAgICAgICAgICBtX2NQb2ludHNPZmZzZXRfID0gMDsgIAorICAgICAgICAgICAgbV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgbV9tYXBDRV8gPSAwOworICAgICAgICAgICAgQXJyYXlzLmZpbGwobV9zaXplUHJpbV8sIDApOworICAgICAgICAgICAgQXJyYXlzLmZpbGwobV9zaXplU2VjXywgMCk7CisgICAgICAgICAgICBBcnJheXMuZmlsbChtX3NpemVUZXJfLCAwKTsKKyAgICAgICAgICAgIG1fdmFyaWFibGVUb3BfID0gZmFsc2U7CisgICAgICAgICAgICBtX2Nhc2VCaXRfID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEhhc2hjb2RlIGNhbGN1bGF0aW9uIGZvciB0b2tlbgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBoYXNoY29kZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG1fY1BvaW50c18uc3Vic3RyaW5nKG1fY1BvaW50c09mZnNldF8pOworICAgICAgICByZXR1cm4gc3RyLmhhc2hDb2RlKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBFcXVhbHMgY2FsY3VsYXRpb24KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IG9iamVjdCB0byBjb21wYXJlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRhcmdldCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgaWYgKHRhcmdldCA9PSB0aGlzKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50cykgeworICAgICAgICBFbGVtZW50cyB0ID0gKEVsZW1lbnRzKXRhcmdldDsKKyAgICAgICAgaW50IHNpemUgPSBtX2NQb2ludHNfLmxlbmd0aCgpIC0gbV9jUG9pbnRzT2Zmc2V0XzsKKyAgICAgICAgaWYgKHNpemUgPT0gdC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gdC5tX2NQb2ludHNPZmZzZXRfKSB7CisgICAgICAgICAgICByZXR1cm4gdC5tX2NQb2ludHNfLnJlZ2lvbk1hdGNoZXModC5tX2NQb2ludHNPZmZzZXRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY1BvaW50c18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jUG9pbnRzT2Zmc2V0Xywgc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIHN0cmVuZ3RoIHVzZWQgaW4gQ0UgYnVpbGRpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQkFTSUNfU1RSRU5HVEhfTElNSVRfID0gMzsKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9TVFJFTkdUSF9MSU1JVF8gPSAxNjsKKyAgICAvKioKKyAgICAgKiBTdHJlbmd0aCBtYXNrIGFycmF5LCB1c2VkIGluIGludmVyc2UgVUNBCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUUkVOR1RIX01BU0tfW10gPSB7MHhGRkZGMDAwMCwgMHhGRkZGRkYwMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRn07CisgICAgLyoqCisgICAgICogQ0UgdGFnIGZvciBub3QgZm91bmQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9UX0ZPVU5EXyA9IDB4RjAwMDAwMDA7CisgICAgLyoqCisgICAgICogQ0UgdGFnIGZvciBub3QgZm91bmQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9UX0ZPVU5EX1RBR18gPSAwOworICAgIC8qKgorICAgICAqIFRoaXMgY29kZSBwb2ludCByZXN1bHRzIGluIGFuIGV4cGFuc2lvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfRVhQQU5TSU9OX1RBR18gPSAxOworICAgIC8qKiAKKyAgICAgKiBTdGFydCBvZiBhIGNvbnRyYWN0aW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DT05UUkFDVElPTl9UQUdfID0gMjsKKyAgICAvKiogCisgICAgICogVGhhaSBjaGFyYWN0ZXIgLSBkbyB0aGUgcmVvcmRlcmluZyAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEhBSV9UQUdfID0gMzsgICAgICAgICAgICAKKyAgICAvKiogCisgICAgICogQ2hhcnNldCBwcm9jZXNzaW5nLCBub3QgeWV0IGltcGxlbWVudGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NIQVJTRVRfVEFHXyA9IDQ7ICAgICAgICAgCisgICAgLyoqIAorICAgICAqIExlYWQgc3Vycm9nYXRlIHRoYXQgaXMgdGFpbG9yZWQgYW5kIGRvZXNuJ3Qgc3RhcnQgYSBjb250cmFjdGlvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1VSUk9HQVRFX1RBR18gPSA1OworICAgIC8qKiAKKyAgICAgKiBBQzAwLUQ3QUYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR18gPSA2OworICAgIC8qKiAKKyAgICAgKiBEODAwLURCRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTEVBRF9TVVJST0dBVEVfVEFHXyA9IDc7CisgICAgLyoqIAorICAgICAqIERDMDAtREZGRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9UUkFJTF9TVVJST0dBVEVfVEFHXyA9IDg7IAorICAgIC8qKiAKKyAgICAgKiAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DSktfSU1QTElDSVRfVEFHXyA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0lNUExJQ0lUX1RBR18gPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ19QUk9DX1RBR18gPSAxMTsKKyAgICAvKiogCisgICAgICogVGhpcyBpcyBhIHRocmVlIGJ5dGUgcHJpbWFyeSB3aXRoIHN0YXJ0aW5nIHNlY29uZGFyaWVzIGFuZCB0ZXJ0aWFyaWVzLgorICAgICAqIEl0IGZpdHMgaW4gYSBzaW5nbGUgMzIgYml0IENFIGFuZCBpcyB1c2VkIGluc3RlYWQgb2YgZXhwYW5zaW9uIHRvIHNhdmUKKyAgICAgKiBzcGFjZSB3aXRob3V0IGFmZmVjdGluZyB0aGUgcGVyZm9ybWFuY2UgKGhvcGVmdWxseSkgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0xPTkdfUFJJTUFSWV9UQUdfID0gMTI7ICAKKyAgICAvKiogCisgICAgICogVW5zYWZlIFVDaGFyIGhhc2ggdGFibGUgdGFibGUgc2l6ZS4gU2l6ZSBpcyAzMiBieXRlcyBmb3IgMSBiaXQgZm9yIGVhY2ggCisgICAgICogbGF0aW4gMSBjaGFyICsgc29tZSBwb3dlciBvZiB0d28gZm9yIGhhc2hpbmcgdGhlIHJlc3Qgb2YgdGhlIGNoYXJzLiAKKyAgICAgKiBTaXplIGluIGJ5dGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNBRkVDUF9UQUJMRV9TSVpFXyA9IDEwNTY7CisgICAgLyoqIAorICAgICAqIE1hc2sgdmFsdWUgZG93biB0byAic29tZSBwb3dlciBvZiB0d28iIC0xLiBOdW1iZXIgb2YgYml0cywgbm90IG51bSBvZiAKKyAgICAgKiBieXRlcy4gICAgICAgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0FGRUNQX1RBQkxFX01BU0tfID0gMHgxZmZmOworICAgIC8qKgorICAgICAqIENhc2UgdmFsdWVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVQUEVSX0NBU0VfID0gMHg4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlYRURfQ0FTRV8gPSAweDQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1dFUl9DQVNFXyA9IDB4MDA7CisgICAgLyoqCisgICAgICogSW5pdGlhbCB0YWJsZSBzaXplCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSVRfVEFCTEVfU0laRV8gPSAxMDI4OworICAgIC8qKgorICAgICAqIEhlYWRlciBzaXplLCBjb3BpZWQgZnJvbSBJQ1U0QywgdG8gYmUgY2hhbmdlZCB3aGVuIHRoYXQgdmFsdWUgY2hhbmdlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0laRV8gPSAweEM0OworICAgIC8qKgorICAgICAqIENvbnRyYWN0aW9uIHRhYmxlIG5ldyBlbGVtZW50IGluZGljYXRvcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT05UUkFDVElPTl9UQUJMRV9ORVdfRUxFTUVOVF8gPSAweEZGRkZGRjsKKyAgICAvKioKKyAgICAgKiBQYXJzZXIgZm9yIHRoZSBydWxlcworICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZVBhcnNlciBtX3BhcnNlcl87CisgICAgLyoqCisgICAgICogVXRpbGl0eSBVQ0EgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3V0aWxDb2xFSXRlcl87CisgICAgLyoqCisgICAgICogVXRpbGl0eSBkYXRhIG1lbWJlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIENFR2VuZXJhdG9yIG1fdXRpbEdlbnNfW10gPSB7bmV3IENFR2VuZXJhdG9yKCksIG5ldyBDRUdlbmVyYXRvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ0VHZW5lcmF0b3IoKX07CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ0VCdWZmZXJfW10gPSBuZXcgaW50W0NFX0JBU0lDX1NUUkVOR1RIX0xJTUlUX107CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFtDRV9TVFJFTkdUSF9MSU1JVF9dOworICAgIHByaXZhdGUgRWxlbWVudHMgbV91dGlsRWxlbWVudF8gPSBuZXcgRWxlbWVudHMoKTsKKyAgICBwcml2YXRlIEVsZW1lbnRzIG1fdXRpbEVsZW1lbnQyXyA9IG5ldyBFbGVtZW50cygpOworICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiBtX3V0aWxUb2tlbl8gCisgICAgPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbigpOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50QnVmZmVyX1tdID0gbmV3IGludFs2XTsgICAgIAorICAgIHByaXZhdGUgbG9uZyBtX3V0aWxMb25nQnVmZmVyX1tdID0gbmV3IGxvbmdbNV07CisgICAgcHJpdmF0ZSBXZWlnaHRSYW5nZSBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tdID0gCisgICAge25ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgIG5ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgIG5ldyBXZWlnaHRSYW5nZSgpfTsgCisgICAgcHJpdmF0ZSBXZWlnaHRSYW5nZSBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tdID0gCisgICAge25ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgIG5ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgIG5ldyBXZWlnaHRSYW5nZSgpfTsgCisgICAgcHJpdmF0ZSBXZWlnaHRSYW5nZSBtX3V0aWxXZWlnaHRSYW5nZV8gPSBuZXcgV2VpZ2h0UmFuZ2UoKTsKKyAgICBwcml2YXRlIGNoYXIgbV91dGlsQ2hhckJ1ZmZlcl9bXSA9IG5ldyBjaGFyWzI1Nl07CisgICAgcHJpdmF0ZSBDYW5vbmljYWxJdGVyYXRvciBtX3V0aWxDYW5JdGVyXyA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcigiIik7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGxpc3RoZWFkZXIgcGFyc2VkIHJ1bGUgdG9rZW5zCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRCdWZmZXJzKENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW5MaXN0SGVhZGVyIGxpc3RoZWFkZXIpIAorICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4gPSBsaXN0aGVhZGVyLm1fbGFzdF87CisgICAgICAgIEFycmF5cy5maWxsKG1fdXRpbEludEJ1ZmZlcl8sIDAsIENFX1NUUkVOR1RIX0xJTUlUXywgMCk7CisgICAgICAgIAorICAgIHRva2VuLm1fdG9JbnNlcnRfID0gMTsKKyAgICBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fc3RyZW5ndGhfXSA9IDE7CisgICAgd2hpbGUgKHRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgaWYgKHRva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfIDwgdG9rZW4ubV9zdHJlbmd0aF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZ29pbmcgdXAKKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3N0cmVuZ3RoX10gPSAwOworICAgICAgICBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfXSArKzsKKyAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfID4gdG9rZW4ubV9zdHJlbmd0aF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZ29pbmcgZG93bgorICAgICAgICBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfXSA9IDE7CisgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3N0cmVuZ3RoX10gKys7CisgICAgICAgIH0KKyAgICAgICAgdG9rZW4gPSB0b2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgdG9rZW4ubV90b0luc2VydF8gPSBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fc3RyZW5ndGhfXTsKKyAgICB9IAorICAgICAgICAKKyAgICB0b2tlbi5tX3RvSW5zZXJ0XyA9IG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9zdHJlbmd0aF9dOworICAgIElOVkVSU0VfVUNBXy5nZXRJbnZlcnNlR2FwUG9zaXRpb25zKGxpc3RoZWFkZXIpOworICAgICAgICAKKyAgICB0b2tlbiA9IGxpc3RoZWFkZXIubV9maXJzdF87CisgICAgaW50IGZzdHJlbmd0aCA9IENvbGxhdG9yLklERU5USUNBTDsKKyAgICBpbnQgaW5pdHN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworICAgICAgICAKKyAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuUFJJTUFSWV0gPSBtZXJnZUNFKGxpc3RoZWFkZXIubV9iYXNlQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gPSBtZXJnZUNFKGxpc3RoZWFkZXIubV9iYXNlQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9iYXNlQ29udENFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSA9IG1lcmdlQ0UobGlzdGhlYWRlci5tX2Jhc2VDRV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICB3aGlsZSAodG9rZW4gIT0gbnVsbCkgeworICAgICAgICBmc3RyZW5ndGggPSB0b2tlbi5tX3N0cmVuZ3RoXzsKKyAgICAgICAgaWYgKGZzdHJlbmd0aCA8IGluaXRzdHJlbmd0aCkgeworICAgICAgICBpbml0c3RyZW5ndGggPSBmc3RyZW5ndGg7CisgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fcG9zX1tmc3RyZW5ndGhdID09IC0xKSB7CisgICAgICAgICAgICB3aGlsZSAobGlzdGhlYWRlci5tX3Bvc19bZnN0cmVuZ3RoXSA9PSAtMSAmJiBmc3RyZW5ndGggPiAwKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmc3RyZW5ndGgtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fcG9zX1tmc3RyZW5ndGhdID09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluaXRzdHJlbmd0aCA9PSBDb2xsYXRvci5URVJUSUFSWSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnRpbmcgd2l0aCB0ZXJ0aWFyeQorICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlBSSU1BUlldIAorICAgICAgICAgICAgPSBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1tmc3RyZW5ndGggKiAzXTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldIAorICAgICAgICAgICAgPSBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1tmc3RyZW5ndGggKiAzICsgMV07CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldID0gZ2V0Q0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGZzdHJlbmd0aCk7IAorICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGluaXRzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZGFyaWVzCisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuUFJJTUFSWV0gCisgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9nYXBzTG9fW2ZzdHJlbmd0aCAqIDNdOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICA9IGdldENFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5TRUNPTkRBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBmc3RyZW5ndGgpOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHByaW1hcmllcyAKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5QUklNQVJZXSAKKyAgICAgICAgICAgID0gZ2V0Q0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5QUklNQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvXywgCisgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpXywgCisgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgZnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuU0VDT05EQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICBpZiAodG9rZW4ubV9zdHJlbmd0aF8gPT0gQ29sbGF0b3IuVEVSVElBUlkpIHsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gCisgICAgICAgICAgICA9IGdldE5leHRHZW5lcmF0ZWQobV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldKTsKKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5tX3N0cmVuZ3RoXyA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldIAorICAgICAgICAgICAgPSBnZXROZXh0R2VuZXJhdGVkKG1fdXRpbEdlbnNfW0NvbGxhdG9yLlNFQ09OREFSWV0pOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSAKKyAgICAgICAgICAgID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5tX3N0cmVuZ3RoXyA9PSBDb2xsYXRvci5QUklNQVJZKSB7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuUFJJTUFSWV0gCisgICAgICAgICAgICA9IGdldE5leHRHZW5lcmF0ZWQoCisgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlBSSU1BUlldKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5TRUNPTkRBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlNFQ09OREFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG9DRShtX3V0aWxDRUJ1ZmZlcl8sIHRva2VuKTsKKyAgICAgICAgdG9rZW4gPSB0b2tlbi5tX25leHRfOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5leHQgZ2VuZXJhdGVkIGNlCisgICAgICogQHBhcmFtIGcgY2UgZ2VuZXJhdG9yCisgICAgICogQHJldHVybiBuZXh0IGdlbmVyYXRlZCBjZSAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXROZXh0R2VuZXJhdGVkKENFR2VuZXJhdG9yIGcpIAorICAgIHsKKyAgICAgICAgZy5tX2N1cnJlbnRfID0gbmV4dFdlaWdodChnKTsKKyAgICAgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZyBDRUdlbmVyYXRvcgorICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIAorICAgICAqIEByZXR1cm4gY2UgZ2VuZXJhdG9yCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoQ0VHZW5lcmF0b3IgZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBpbnQgaGlnaCwgbG93LCBjb3VudCA9IDE7CisgICAgICAgIGludCBtYXhieXRlID0gKHN0cmVuZ3RoID09IENvbGxhdG9yLlRFUlRJQVJZKSA/IDB4M0YgOiAweEZGOworCisgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICBoaWdoID0gMHhGRkZGRkZGRjsKKyAgICAgICAgY291bnQgPSAweEZGIC0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXzsKKyAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fIDw8IDI0OyAvLzB4MDUwMDAwMDA7CisgICAgICAgIGhpZ2ggPSAweDQwMDAwMDAwOworICAgICAgICBjb3VudCA9IDB4NDAgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl87CisgICAgfQorICAgIAorICAgIGlmICh0b2tlbi5tX25leHRfICE9IG51bGwgJiYgdG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXyA9PSBzdHJlbmd0aCkgeworICAgICAgICBjb3VudCA9IHRva2VuLm1fbmV4dF8ubV90b0luc2VydF87CisgICAgfSAKKyAgICAKKyAgICBnLm1fcmFuZ2VzTGVuZ3RoXyA9IGFsbG9jYXRlV2VpZ2h0cyhsb3csIGhpZ2gsIGNvdW50LCBtYXhieXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZy5tX3Jhbmdlc18pOworICAgIGcubV9jdXJyZW50XyA9IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXyA8PCAyNDsKKyAgICAKKyAgICBpZiAoZy5tX3Jhbmdlc0xlbmd0aF8gPT0gMCkgeworICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgfQorICAgIHJldHVybiBnLm1fY3VycmVudF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tYmluZXMgMiBjZSBpbnRvIG9uZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGFyZ3VtZW50IHN0cmVuZ3RoCisgICAgICogQHBhcmFtIGNlMSBmaXJzdCBjZQorICAgICAqIEBwYXJhbSBjZTIgc2Vjb25kIGNlCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIHN0cmVuZ3RoIHRvIHVzZQorICAgICAqIEByZXR1cm4gY29tYmluZWQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWVyZ2VDRShpbnQgY2UxLCBpbnQgY2UyLCBpbnQgc3RyZW5ndGgpIAorICAgIHsKKyAgICAgICAgaW50IG1hc2sgPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXzsKKyAgICAgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgbWFzayA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdHJlbmd0aCA9PSBDb2xsYXRvci5QUklNQVJZKSB7CisgICAgICAgICAgICBtYXNrID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBjZTEgJj0gbWFzazsKKyAgICAgICAgY2UyICY9IG1hc2s7CisgICAgICAgIHN3aXRjaCAoc3RyZW5ndGgpIAorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlBSSU1BUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNlMSB8IGNlMiA+Pj4gMTY7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlNFQ09OREFSWToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2UxIDw8IDE2IHwgY2UyIDw8IDg7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBjZTEgPDwgMjQgfCBjZTIgPDwgMTY7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGcgQ0VHZW5lcmF0b3IKKyAgICAgKiBAcGFyYW0gbG93cyBsb3cgZ2FwIGFycmF5CisgICAgICogQHBhcmFtIGhpZ2hzIGhpZ2ggZ2FwIGFycmF5CisgICAgICogQHBhcmFtIHRva2VuIHJ1bGUgdG9rZW4KKyAgICAgKiBAcGFyYW0gZnN0cmVuZ3RoIAorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldENFR2VuZXJhdG9yKENFR2VuZXJhdG9yIGcsIGludCBsb3dzW10sIGludCBoaWdoc1tdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuLCBpbnQgZnN0cmVuZ3RoKSAKKyAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgIGludCBzdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworICAgIGludCBsb3cgPSBsb3dzW2ZzdHJlbmd0aCAqIDMgKyBzdHJlbmd0aF07CisgICAgaW50IGhpZ2ggPSBoaWdoc1tmc3RyZW5ndGggKiAzICsgc3RyZW5ndGhdOworICAgIGludCBtYXhieXRlID0gMDsKKyAgICBpZihzdHJlbmd0aCA9PSBDb2xsYXRvci5URVJUSUFSWSkgeworICAgICAgICBtYXhieXRlID0gMHgzRjsKKyAgICB9IGVsc2UgaWYoc3RyZW5ndGggPT0gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICBtYXhieXRlID0gMHhGRTsKKyAgICB9IGVsc2UgeworICAgICAgICBtYXhieXRlID0gMHhGRjsKKyAgICB9CisgICAgCisgICAgaW50IGNvdW50ID0gdG9rZW4ubV90b0luc2VydF87CisgICAgCisgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgaGlnaCkgPj0gMCAKKyAgICAgICAgICAgICYmIHN0cmVuZ3RoID4gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICBpbnQgcyA9IHN0cmVuZ3RoOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBzIC0tOworICAgICAgICBpZiAobG93c1tmc3RyZW5ndGggKiAzICsgc10gIT0gaGlnaHNbZnN0cmVuZ3RoICogMyArIHNdKSB7CisgICAgICAgICAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisgICAgICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICAgICAgaGlnaCA9IDB4RkZGRkZGRkY7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvdyA9IDB4MDIwMDAwMDA7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBuZWVkcyB0byBiZSBjaGVja2VkIC0gd2hhdCBpZiBsb3cgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBnb29kLi4uCisgICAgICAgICAgICBoaWdoID0gMHg0MDAwMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IAorICAgIGlmIChsb3cgPT0gMCkgeworICAgICAgICBsb3cgPSAweDAxMDAwMDAwOworICAgIH0KKyAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7IC8vIHNpbWlsYXIgYXMgc2ltcGxlIAorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCAKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNCkgPj0gMAorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgCisgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQpIDwgMCkgeworICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICAgICAgfQorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoaGlnaCwgCisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQpID4gMCAKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChoaWdoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNCkgPCAwKSB7CisgICAgICAgIGhpZ2ggPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICB9IAorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCAKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNCkgPCAwKSB7CisgICAgICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfVU5TSElGVEVEX01JTl8gPDwgMjQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2gsIGNvdW50LCBtYXhieXRlLCBnLm1fcmFuZ2VzXyk7CisgICAgICAgIGcubV9jdXJyZW50XyA9IG5leHRXZWlnaHQoZyk7CisgICAgICAgIC8vZy5tX2N1cnJlbnRfID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNDsKKyAgICAgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICAgICAgfQorICAgIH0gCisgICAgCisgICAgZy5tX3Jhbmdlc0xlbmd0aF8gPSBhbGxvY2F0ZVdlaWdodHMobG93LCBoaWdoLCBjb3VudCwgbWF4Ynl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcubV9yYW5nZXNfKTsKKyAgICBpZiAoZy5tX3Jhbmdlc0xlbmd0aF8gPT0gMCkgeworICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgfQorICAgIGcubV9jdXJyZW50XyA9IG5leHRXZWlnaHQoZyk7CisgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gY2VwYXJ0cyBsaXN0IG9mIGNvbGxhdGlvbiBlbGVtZW50cyBwYXJ0cworICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gZm9ybWluZyBjYXNlIGJpdHMgZm9yIGV4cGFuc2lvbnMgZmFpbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9DRShpbnQgY2VwYXJ0c1tdLCBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuKSAKKyAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyB0aGlzIG9uZSBtYWtlcyB0aGUgdGFibGUgYW5kIHN0dWZmCisgICAgLy8gaW50IG5vb2ZieXRlc1tdID0gbmV3IGludFszXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkgKyspIHsKKyAgICAgICAgLy8gbm9vZmJ5dGVzW2ldID0gY291bnRCeXRlcyhjZXBhcnRzW2ldKTsKKyAgICAgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9baV0gPSBjb3VudEJ5dGVzKGNlcGFydHNbaV0pOworICAgIH0KKyAgICAKKyAgICAvLyBIZXJlIHdlIGhhdmUgdG8gcGFjayBDRXMgZnJvbSBwYXJ0cworICAgIGludCBjZWkgPSAwOworICAgIGludCB2YWx1ZSA9IDA7CisgICAgCisgICAgd2hpbGUgKChjZWkgPDwgMSkgPCBtX3V0aWxJbnRCdWZmZXJfWzBdIHx8IGNlaSA8IG1fdXRpbEludEJ1ZmZlcl9bMV0gCisgICAgICAgICAgICAgICB8fCBjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzJdKSB7CisgICAgICAgIGlmIChjZWkgPiAwKSB7CisgICAgICAgIHZhbHVlID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKChjZWkgPDwgMSkgPCBtX3V0aWxJbnRCdWZmZXJfWzBdKSB7CisgICAgICAgIHZhbHVlIHw9ICgoY2VwYXJ0c1swXSA+PiAoMzIgLSAoKGNlaSArIDEpIDw8IDQpKSkgJiAweEZGRkYpIAorICAgICAgICAgICAgICAgICAgICAgIDw8IDE2OworICAgICAgICB9CisgICAgICAgIGlmIChjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzFdKSB7CisgICAgICAgIHZhbHVlIHw9ICgoY2VwYXJ0c1sxXSA+PiAoMzIgLSAoKGNlaSArIDEpIDw8IDMpKSkgJiAweEZGKSA8PCA4OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGNlaSA8IG1fdXRpbEludEJ1ZmZlcl9bMl0pIHsKKyAgICAgICAgdmFsdWUgfD0gKChjZXBhcnRzWzJdID4+ICgzMiAtICgoY2VpKzEpIDw8IDMpKSkgJiAweDNGKTsKKyAgICAgICAgfQorICAgICAgICB0b2tlbi5tX0NFX1tjZWldID0gdmFsdWU7CisgICAgICAgIGNlaSArKzsKKyAgICB9CisgICAgaWYgKGNlaSA9PSAwKSB7IC8vIHRvdGFsbHkgaWdub3JhYmxlCisgICAgICAgIHRva2VuLm1fQ0VMZW5ndGhfID0gMTsKKyAgICAgICAgdG9rZW4ubV9DRV9bMF0gPSAwOworICAgIH0gCisgICAgZWxzZSB7IC8vIHRoZXJlIGlzIGF0IGxlYXN0IHNvbWV0aGluZworICAgICAgICB0b2tlbi5tX0NFTGVuZ3RoXyA9IGNlaTsKKyAgICB9CisgICAgICAgICAgCisgICAgLy8gQ2FzZSBiaXRzIGhhbmRsaW5nIGZvciBleHBhbnNpb24KKyAgICBpZih0b2tlbi5tX0NFX1swXSAhPSAwKSB7IC8vIGNhc2UgYml0cyBzaG91bGQgYmUgc2V0IG9ubHkgZm9yIG5vbi1pZ25vcmFibGVzCisgICAgICAgIGludCBzdGFydG9mdG9rZW5ydWxlID0gdG9rZW4ubV9zb3VyY2VfICYgMHhGRjsKKyAgICAgICAgaWYgKCh0b2tlbi5tX3NvdXJjZV8gPj4+IDI0KSA+IDEpIHsKKyAgICAgICAgICAgIC8vIERvIGl0IG1hbnVhbGx5CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gdG9rZW4ubV9zb3VyY2VfID4+PiAyNDsKKyAgICAgICAgICAgIFN0cmluZyB0b2tlbnN0ciA9IHRva2VuLm1fcnVsZXNfLnN1YnN0cmluZyhzdGFydG9mdG9rZW5ydWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRvZnRva2VucnVsZSArIGxlbmd0aCk7CisgICAgICAgICAgICB0b2tlbi5tX0NFX1swXSB8PSBnZXRDYXNlQml0cyh0b2tlbnN0cik7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gQ29weSBpdCBmcm9tIHRoZSBVQ0EKKyAgICAgICAgICAgIGludCBjYXNlQ0UgCisgICAgICAgICAgICA9IGdldEZpcnN0Q0UodG9rZW4ubV9ydWxlc18uY2hhckF0KHN0YXJ0b2Z0b2tlbnJ1bGUpKTsKKyAgICAgICAgICAgIHRva2VuLm1fQ0VfWzBdIHw9IChjYXNlQ0UgJiAweEMwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3VudCB0aGUgbnVtYmVyIG9mIG5vbi16ZXJvIGJ5dGVzIHVzZWQgaW4gdGhlIGNlCisgICAgICogQHBhcmFtIGNlIAorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIG5vbi16ZXJvIGJ5dGVzIHVzZWQgaW4gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY291bnRCeXRlcyhpbnQgY2UpICAgCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBpbnQgbWFzayA9IDB4RkZGRkZGRkY7ICAgCisgICAgaW50IHJlc3VsdCA9IDA7ICAgICAgICAgICAgICAKKyAgICB3aGlsZSAobWFzayAhPSAwKSB7ICAgICAgICAgICAgCisgICAgICAgIGlmICgoY2UgJiBtYXNrKSAhPSAwKSB7IAorICAgICAgICByZXN1bHQgKys7ICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgbWFzayA+Pj49IDg7ICAgICAgICAgICAgICAgICAKKyAgICB9ICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2UgYXJlIHJlYWR5IHRvIGNyZWF0ZSBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZSB0byBpbnNlcnQKKyAgICAgKiBAcGFyYW0gbGggcnVsZSB0b2tlbiBsaXN0IGhlYWRlcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjcmVhdGVFbGVtZW50cyhCdWlsZFRhYmxlIHQsIAorICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW5MaXN0SGVhZGVyIGxoKQorICAgIHsKKyAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRvayA9IGxoLm1fZmlyc3RfOworICAgIG1fdXRpbEVsZW1lbnRfLmNsZWFyKCk7CisgICAgd2hpbGUgKHRvayAhPSBudWxsKSB7CisgICAgICAgIC8vIGZpcnN0LCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGV4cGFuc2lvbnMKKyAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGV4cGFuc2lvbnMsIHdlIG5lZWQgdG8gZG8gYSBsaXR0bGUgYml0IG1vcmUgCisgICAgICAgIC8vIHByb2Nlc3Npbmcgc2luY2UgcGFydHMgb2YgZXhwYW5zaW9uIGNhbiBiZSB0YWlsb3JlZCwgd2hpbGUgCisgICAgICAgIC8vIG90aGVycyBhcmUgbm90CisgICAgICAgIGlmICh0b2subV9leHBhbnNpb25fICE9IDApIHsKKyAgICAgICAgaW50IGxlbiA9IHRvay5tX2V4cGFuc2lvbl8gPj4+IDI0OworICAgICAgICBpbnQgY3VycmVudFNlcXVlbmNlTGVuID0gbGVuOworICAgICAgICBpbnQgZXhwT2Zmc2V0ID0gdG9rLm1fZXhwYW5zaW9uXyAmIDB4MDBGRkZGRkY7CisgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSBjdXJyZW50U2VxdWVuY2VMZW4gfCBleHBPZmZzZXQ7CisgICAgICAgIG1fdXRpbFRva2VuXy5tX3J1bGVzXyA9IG1fcGFyc2VyXy5tX3NvdXJjZV87CisgICAgCisgICAgICAgIHdoaWxlIChsZW4gPiAwKSB7CisgICAgICAgICAgICBjdXJyZW50U2VxdWVuY2VMZW4gPSBsZW47CisgICAgICAgICAgICB3aGlsZSAoY3VycmVudFNlcXVlbmNlTGVuID4gMCkgeworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fc291cmNlXyA9IChjdXJyZW50U2VxdWVuY2VMZW4gPDwgMjQpIAorICAgICAgICAgICAgICAgIHwgZXhwT2Zmc2V0OworICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiBleHB0ID0gCisgICAgICAgICAgICAgICAgKENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4pCisgICAgICAgICAgICAgICAgbV9wYXJzZXJfLm1faGFzaFRhYmxlXy5nZXQobV91dGlsVG9rZW5fKTsKKyAgICAgICAgICAgIGlmIChleHB0ICE9IG51bGwgCisgICAgICAgICAgICAgICAgJiYgZXhwdC5tX3N0cmVuZ3RoXyAKKyAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25SdWxlUGFyc2VyLlRPS0VOX1JFU0VUXykgeyAKKyAgICAgICAgICAgICAgICAvLyBleHBhbnNpb24gaXMgdGFpbG9yZWQKKyAgICAgICAgICAgICAgICBpbnQgbm9PZkNFc1RvQ29weSA9IGV4cHQubV9DRUxlbmd0aF87CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBub09mQ0VzVG9Db3B5OyBqICsrKSB7CisgICAgICAgICAgICAgICAgdG9rLm1fZXhwQ0VfW3Rvay5tX2V4cENFTGVuZ3RoXyArIGpdIAorICAgICAgICAgICAgICAgICAgICA9IGV4cHQubV9DRV9bal07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRvay5tX2V4cENFTGVuZ3RoXyArPSBub09mQ0VzVG9Db3B5OworICAgICAgICAgICAgICAgIC8vIG5ldmVyIHRyeSB0byBhZGQgY29kZXBvaW50cyBhbmQgQ0VzLgorICAgICAgICAgICAgICAgIC8vIEZvciBzb21lIG9kZCByZWFzb24sIGl0IHdvbid0IHdvcmsuCisgICAgICAgICAgICAgICAgZXhwT2Zmc2V0ICs9IGN1cnJlbnRTZXF1ZW5jZUxlbjsgLy9ub09mQ0VzVG9Db3B5OworICAgICAgICAgICAgICAgIGxlbiAtPSBjdXJyZW50U2VxdWVuY2VMZW47IC8vbm9PZkNFc1RvQ29weTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50U2VxdWVuY2VMZW4gLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudFNlcXVlbmNlTGVuID09IDApIHsgCisgICAgICAgICAgICAvLyBjb3VsZG4ndCBmaW5kIGFueSB0YWlsb3JlZCBzdWJzZXF1ZW5jZSwgd2lsbCBoYXZlIHRvIAorICAgICAgICAgICAgLy8gZ2V0IG9uZSBmcm9tIFVDQS4gZmlyc3QsIGdldCB0aGUgVUNoYXJzIGZyb20gdGhlIAorICAgICAgICAgICAgLy8gcnVsZXMgdGhlbiBwaWNrIENFcyBvdXQgdW50aWwgdGhlcmUgaXMgbm8gbW9yZSBhbmQgCisgICAgICAgICAgICAvLyBzdHVmZiB0aGVtIGludG8gZXhwYW5zaW9uCisgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3BhcnNlcl8ubV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cE9mZnNldCwgZXhwT2Zmc2V0ICsgMSkpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgb3JkZXIgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRvay5tX2V4cENFX1t0b2subV9leHBDRUxlbmd0aF8gKytdID0gb3JkZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBPZmZzZXQgKys7CisgICAgICAgICAgICBsZW4gLS07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHRvay5tX2V4cENFTGVuZ3RoXyA9IDA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gc2V0IHRoZSB1Y2FlbGVtZW50IHdpdGggb2J0YWluZWQgdmFsdWVzCisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyA9IHRvay5tX0NFTGVuZ3RoXyArIHRvay5tX2V4cENFTGVuZ3RoXzsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBjb3B5IENFcworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRvay5tX0NFXywgMCwgbV91dGlsRWxlbWVudF8ubV9DRXNfLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0b2subV9leHBDRV8sIDAsIG1fdXRpbEVsZW1lbnRfLm1fQ0VzXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvay5tX0NFTGVuZ3RoXywgdG9rLm1fZXhwQ0VMZW5ndGhfKTsKKyAgICAKKyAgICAgICAgLy8gY29weSBVQ2hhcnMgCisgICAgICAgIC8vIFdlIGtlcHQgcHJlZml4IGFuZCBzb3VyY2Uga2luZCBvZiB0b2dldGhlciwgYXMgaXQgaXMgYSBraW5kIG9mIGEgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiAKKyAgICAgICAgLy8gSG93ZXZlciwgbm93IHdlIGhhdmUgdG8gc2xpY2UgdGhlIHByZWZpeCBvZmYgdGhlIG1haW4gdGhpbmcgLSAKKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsvLyBlbC5tX3ByZWZpeENoYXJzXzsKKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzT2Zmc2V0XyA9IDA7IC8vZWwubV91Y2hhcnNfOworICAgICAgICBpZiAodG9rLm1fcHJlZml4XyAhPSAwKSB7IAorICAgICAgICAvLyB3ZSB3aWxsIGp1c3QgY29weSB0aGUgcHJlZml4IGhlcmUsIGFuZCBhZGp1c3QgYWNjb3JkaW5nbHkgaW4gCisgICAgICAgIC8vIHRoZSBhZGRQcmVmaXggZnVuY3Rpb24gaW4gdWNvbF9lbG0uIFRoZSByZWFzb24gaXMgdGhhdCB3ZSAKKyAgICAgICAgLy8gbmVlZCB0byBhZGQgYm90aCBjb21wb3NlZCBBTkQgZGVjb21wb3NlZCBlbGVtZW50cyB0byB0aGUgCisgICAgICAgIC8vIHVuc2FmZSB0YWJsZS4KKyAgICAgICAgaW50IHNpemUgPSB0b2subV9wcmVmaXhfID4+IDI0OworICAgICAgICBpbnQgb2Zmc2V0ID0gdG9rLm1fcHJlZml4XyAmIDB4MDBGRkZGRkY7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4Q2hhcnNfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV9zb3VyY2VfLnN1YnN0cmluZyhvZmZzZXQsIG9mZnNldCArIHNpemUpOworICAgICAgICBzaXplID0gKHRvay5tX3NvdXJjZV8gPj4gMjQpIC0gKHRvay5tX3ByZWZpeF8gPj4gMjQpOyAKKyAgICAgICAgb2Zmc2V0ID0gKHRvay5tX3NvdXJjZV8gJiAweDAwRkZGRkZGKSArICh0b2subV9wcmVmaXhfID4+IDI0KTsKKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV9zb3VyY2VfLnN1YnN0cmluZyhvZmZzZXQsIG9mZnNldCArIHNpemUpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICBpbnQgb2Zmc2V0ID0gdG9rLm1fc291cmNlXyAmIDB4MDBGRkZGRkY7CisgICAgICAgIGludCBzaXplID0gdG9rLm1fc291cmNlXyA+Pj4gMjQ7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IG1fcGFyc2VyXy5tX3NvdXJjZV8uc3Vic3RyaW5nKG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsgc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXzsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfLmxlbmd0aCgpIAorICAgICAgICAgICAgIC0gbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzT2Zmc2V0XzsgaSArKykgeworICAgICAgICBpZiAoaXNKYW1vKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18uY2hhckF0KGkpKSkgeworICAgICAgICAgICAgdC5tX2NvbGxhdG9yXy5tX2lzSmFtb1NwZWNpYWxfID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyoqKgorICAgIAorICAgICAgICAgICAgLy8gQ2FzZSBiaXRzIGhhbmRsaW5nIAorICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfWzBdICY9IDB4RkZGRkZGM0Y7IAorICAgICAgICAvLyBDbGVhbiB0aGUgY2FzZSBiaXRzIGZpZWxkCisgICAgICAgICAgICBpZiAobV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXy5sZW5ndGgoKSAKKyAgICAgICAgICAgICAgICAtIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF8gPiAxKSB7CisgICAgICAgIC8vIERvIGl0IG1hbnVhbGx5CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSAKKyAgICAgICAgfD0gZ2V0Q2FzZUJpdHMobV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgIC8vIENvcHkgaXQgZnJvbSB0aGUgVUNBCisgICAgICAgIGludCBjYXNlQ0UgPSBnZXRGaXJzdENFKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18uY2hhckF0KDApKTsKKyAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfWzBdIHw9IChjYXNlQ0UgJiAweEMwKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICoqKi8KKyAgICAgICAgLy8gYW5kIHRoZW4sIGFkZCBpdAorICAgICAgICBhZGRBbkVsZW1lbnQodCwgbV91dGlsRWxlbWVudF8pOworICAgICAgICB0b2sgPSB0b2subV9uZXh0XzsKKyAgICB9ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgaWYgdGhlIHN0cmluZyBhcmd1bWVudCBoYXMgY2FzZQorICAgICAqIEBwYXJhbSBzcmMgc3RyaW5nCisgICAgICogQHJldHVybiB0aGUgY2FzZSBmb3IgdGhpcyBjaGFyIGFycmF5CisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRDYXNlQml0cyhTdHJpbmcgc3JjKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgIGludCB1Q291bnQgPSAwOyAKKyAgICBpbnQgbENvdW50ID0gMDsKKyAgICBzcmMgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzcmMsIHRydWUpOworICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KHNyYyk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzcmMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChzcmMuc3Vic3RyaW5nKGksIGkgKyAxKSk7CisgICAgICAgIGludCBvcmRlciA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihvcmRlcikpIHsKKyAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIGlmICgob3JkZXIgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9DQVNFX0JJVF9NQVNLXykKKyAgICAgICAgPT0gVVBQRVJfQ0FTRV8pIHsKKyAgICAgICAgdUNvdW50ICsrOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgY2hhciBjaCA9IHNyYy5jaGFyQXQoaSk7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGNoKSkgeworICAgICAgICAgICAgbENvdW50ICsrOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICh0b1NtYWxsS2FuYShjaCkgPT0gY2ggJiYgdG9MYXJnZUthbmEoY2gpICE9IGNoKSB7CisgICAgICAgICAgICBsQ291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgaWYgKHVDb3VudCAhPSAwICYmIGxDb3VudCAhPSAwKSB7CisgICAgICAgIHJldHVybiBNSVhFRF9DQVNFXzsKKyAgICB9IAorICAgIGVsc2UgaWYgKHVDb3VudCAhPSAwKSB7CisgICAgICAgIHJldHVybiBVUFBFUl9DQVNFXzsKKyAgICB9IAorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTE9XRVJfQ0FTRV87CisgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBhIGNoYXIgdG8gdGhlIHVwcGVyY2FzZSBLYW5hCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBjb252ZXJ0CisgICAgICogQHJldHVybiB0aGUgY29udmVydGVkIEthbmEgY2hhcmFjdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciB0b0xhcmdlS2FuYShjaGFyIGNoKSAKKyAgICB7CisgICAgaWYgKDB4MzA0MiA8IGNoICYmIGNoIDwgMHgzMGVmKSB7IC8vIEthbmEgcmFuZ2UgCisgICAgICAgIHN3aXRjaCAoY2ggLSAweDMwMDApIHsKKyAgICAgICAgY2FzZSAweDQxOiAKKyAgICAgICAgY2FzZSAweDQzOiAKKyAgICAgICAgY2FzZSAweDQ1OiAKKyAgICAgICAgY2FzZSAweDQ3OiAKKyAgICAgICAgY2FzZSAweDQ5OiAKKyAgICAgICAgY2FzZSAweDYzOiAKKyAgICAgICAgY2FzZSAweDgzOiAKKyAgICAgICAgY2FzZSAweDg1OiAKKyAgICAgICAgY2FzZSAweDhFOgorICAgICAgICBjYXNlIDB4QTE6IAorICAgICAgICBjYXNlIDB4QTM6IAorICAgICAgICBjYXNlIDB4QTU6IAorICAgICAgICBjYXNlIDB4QTc6IAorICAgICAgICBjYXNlIDB4QTk6IAorICAgICAgICBjYXNlIDB4QzM6IAorICAgICAgICBjYXNlIDB4RTM6IAorICAgICAgICBjYXNlIDB4RTU6IAorICAgICAgICBjYXNlIDB4RUU6CisgICAgICAgIGNoICsrOworICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweEY1OgorICAgICAgICBjaCA9IDB4MzBBQjsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhGNjoKKyAgICAgICAgY2ggPSAweDMwQjE7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgYSBjaGFyIHRvIHRoZSBsb3dlcmNhc2UgS2FuYQorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gY29udmVydAorICAgICAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBLYW5hIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgdG9TbWFsbEthbmEoY2hhciBjaCkgCisgICAgeworICAgIGlmICgweDMwNDIgPCBjaCAmJiBjaCA8IDB4MzBlZikgeyAvLyBLYW5hIHJhbmdlCisgICAgICAgIHN3aXRjaCAoY2ggLSAweDMwMDApIHsKKyAgICAgICAgY2FzZSAweDQyOiAKKyAgICAgICAgY2FzZSAweDQ0OiAKKyAgICAgICAgY2FzZSAweDQ2OiAKKyAgICAgICAgY2FzZSAweDQ4OiAKKyAgICAgICAgY2FzZSAweDRBOiAKKyAgICAgICAgY2FzZSAweDY0OiAKKyAgICAgICAgY2FzZSAweDg0OiAKKyAgICAgICAgY2FzZSAweDg2OiAKKyAgICAgICAgY2FzZSAweDhGOgorICAgICAgICBjYXNlIDB4QTI6IAorICAgICAgICBjYXNlIDB4QTQ6IAorICAgICAgICBjYXNlIDB4QTY6IAorICAgICAgICBjYXNlIDB4QTg6IAorICAgICAgICBjYXNlIDB4QUE6IAorICAgICAgICBjYXNlIDB4QzQ6IAorICAgICAgICBjYXNlIDB4RTQ6IAorICAgICAgICBjYXNlIDB4RTY6IAorICAgICAgICBjYXNlIDB4RUY6CisgICAgICAgIGNoIC0tOworICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweEFCOgorICAgICAgICBjaCA9IDB4MzBGNTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhCMToKKyAgICAgICAgY2ggPSAweDMwRjY7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gc3BlY2lhbCBKYW1vIGhhbmRsaW5nLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldEZpcnN0Q0UoY2hhciBjaCkgCisgICAgeworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSk7CisgICAgcmV0dXJuIG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBUaGlzIGFkZHMgYSByZWFkIGVsZW1lbnQsIHdoaWxlIHRlc3RpbmcgZm9yIGV4aXN0ZW5jZSAKKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IAorICAgICAqIEByZXR1cm4gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhZGRBbkVsZW1lbnQoQnVpbGRUYWJsZSB0LCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgICAgIFZlY3RvciBleHBhbnNpb25zID0gdC5tX2V4cGFuc2lvbnNfOworICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChlbGVtZW50Lm1fQ0VMZW5ndGhfID09IDEpIHsKKyAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8gPSBlbGVtZW50Lm1fQ0VzX1swXTsKKworICAgICAgICB9IGVsc2UgeyAgICAgCisgICAgICAgIC8vIHVuZm9ydHVuYXRlbHksIGl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSB0byBsb29rIGZvciBhIGxvbmcgcHJpbWFyeSAKKyAgICAgICAgLy8gaGVyZSBzaW5jZSBpbiBjYW5vbmljYWwgY2xvc3VyZSB3ZSBhcmUgZ29pbmcgdG8gaGl0IHNvbWUgbG9uZyAKKyAgICAgICAgLy8gcHJpbWFyaWVzIGZyb20gdGhlIGZpcnN0IHBoYXNlLCBhbmQgdGhleSB3aWxsIGNvbWUgYmFjayBhcyAKKyAgICAgICAgLy8gY29udGludWF0aW9ucy9leHBhbnNpb25zIGRlc3Ryb3lpbmcgdGhlIGVmZmVjdCBvZiB0aGUgcHJldmlvdXMgCisgICAgICAgIC8vIG9waXRpbWl6YXRpb24uIEEgbG9uZyBwcmltYXJ5IGlzIGEgdGhyZWUgYnl0ZSBwcmltYXJ5IHdpdGggCisgICAgICAgIC8vIHN0YXJ0aW5nIHNlY29uZGFyaWVzIGFuZCB0ZXJ0aWFyaWVzLiBJdCBjYW4gYXBwZWFyIGluIGxvbmcgcnVucyAKKyAgICAgICAgLy8gb2Ygb25seSBwcmltYXJ5IGRpZmZlcmVuY2VzIChsaWtlIGVhc3QgQXNpYW4gdGFpbG9yaW5ncykgYWxzbywgCisgICAgICAgIC8vIGl0IHNob3VsZCBub3QgYmUgYW4gZXhwYW5zaW9uLCBhcyBleHBhbnNpb25zIHdvdWxkIGJyZWFrIHdpdGggCisgICAgICAgIC8vIHRoaXMKKyAgICAgICAgaWYgKGVsZW1lbnQubV9DRUxlbmd0aF8gPT0gMiAvLyBhIHR3byBDRSBleHBhbnNpb24gCisgICAgICAgICYmIFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKGVsZW1lbnQubV9DRXNfWzFdKSAKKyAgICAgICAgJiYgKGVsZW1lbnQubV9DRXNfWzFdIAorICAgICAgICAgICAgJiAofigweEZGIDw8IDI0IHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl8pKSkgCisgICAgICAgID09IDAgLy8gdGhhdCBoYXMgb25seSBwcmltYXJpZXMgaW4gY29udGludWF0aW9uCisgICAgICAgICYmICgoKGVsZW1lbnQubV9DRXNfWzBdID4+IDgpICYgMHhGRikgCisgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8pIAorICAgICAgICAvLyBhIGNvbW1vbiBzZWNvbmRhcnkKKyAgICAgICAgJiYgKChlbGVtZW50Lm1fQ0VzX1swXSAmIDB4RkYpIAorICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fKSAvLyBhbmQgYSBjb21tb24gdGVydGlhcnkKKyAgICAgICAgKSB7CisgICAgICAgIGVsZW1lbnQubV9tYXBDRV8gPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfIAorICAgICAgICAgICAgLy8gYSBsb25nIHByaW1hcnkgc3BlY2lhbAorICAgICAgICAgICAgfCAoQ0VfTE9OR19QUklNQVJZX1RBR18gPDwgMjQpIAorICAgICAgICAgICAgLy8gZmlyc3QgYW5kIHNlY29uZCBieXRlIG9mIHByaW1hcnkKKyAgICAgICAgICAgIHwgKChlbGVtZW50Lm1fQ0VzX1swXSA+PiA4KSAmIDB4RkZGRjAwKSAKKyAgICAgICAgICAgIC8vIHRoaXJkIGJ5dGUgb2YgcHJpbWFyeQorICAgICAgICAgICAgfCAoKGVsZW1lbnQubV9DRXNfWzFdID4+IDI0KSAmIDB4RkYpOyAgIAorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBvbWl0dGluZyBleHBhbnNpb24gb2Zmc2V0IGluIGJ1aWxkZXIKKyAgICAgICAgICAgICAgICAvLyAoSEVBREVSX1NJWkVfID4+IDIpCisgICAgICAgIGludCBleHBhbnNpb24gPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfIAorICAgICAgICAgICAgfCAoQ0VfRVhQQU5TSU9OX1RBR18gCisgICAgICAgICAgICAgICA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9UQUdfU0hJRlRfKSAKKyAgICAgICAgICAgIHwgKGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1swXSkKKyAgICAgICAgICAgICAgIDw8IDQpICYgMHhGRkZGRjA7CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgZWxlbWVudC5tX0NFTGVuZ3RoXzsgaSArKykgeworICAgICAgICAgICAgYWRkRXhwYW5zaW9uKGV4cGFuc2lvbnMsIGVsZW1lbnQubV9DRXNfW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZWxlbWVudC5tX0NFTGVuZ3RoXyA8PSAweEYpIHsKKyAgICAgICAgICAgIGV4cGFuc2lvbiB8PSBlbGVtZW50Lm1fQ0VMZW5ndGhfOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCAwKTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZXhwYW5zaW9uOworICAgICAgICBzZXRNYXhFeHBhbnNpb24oZWxlbWVudC5tX0NFc19bZWxlbWVudC5tX0NFTGVuZ3RoXyAtIDFdLAorICAgICAgICAgICAgICAgIChieXRlKWVsZW1lbnQubV9DRUxlbmd0aF8sIAorICAgICAgICAgICAgICAgIHQubV9tYXhFeHBhbnNpb25zXyk7CisgICAgICAgIGlmIChpc0phbW8oZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSkpeworICAgICAgICAgICAgdC5tX2NvbGxhdG9yXy5tX2lzSmFtb1NwZWNpYWxfID0gdHJ1ZTsKKyAgICAgICAgICAgIHNldE1heEphbW9FeHBhbnNpb24oZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSwKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX0NFc19bZWxlbWVudC5tX0NFTGVuZ3RoXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMV0sCisgICAgICAgICAgICAgICAgICAgIChieXRlKWVsZW1lbnQubV9DRUxlbmd0aF8sCisgICAgICAgICAgICAgICAgICAgIHQubV9tYXhKYW1vRXhwYW5zaW9uc18pOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgICAgICAvLyBXZSB0cmVhdCBkaWdpdHMgZGlmZmVyZW50bHkgLSB0aGV5IGFyZSAidWJlciBzcGVjaWFsIiBhbmQgc2hvdWxkIGJlCisgICAgICAgIC8vIHByb2Nlc3NlZCBkaWZmZXJlbnRseSBpZiBudW1lcmljIGNvbGxhdGlvbiBpcyBvbi4gCisgICAgICAgIGludCB1bmlDaGFyID0gMDsKKyAgICAgICAgaWYgKChlbGVtZW50Lm1fdWNoYXJzXy5sZW5ndGgoKSA9PSAyKSAKKyAgICAgICAgICAgICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShlbGVtZW50Lm1fdWNoYXJzXy5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICB1bmlDaGFyID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fdWNoYXJzXy5jaGFyQXQoMCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3VjaGFyc18uY2hhckF0KDEpKTsgICAgICAKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5tX3VjaGFyc18ubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgdW5pQ2hhciA9IGVsZW1lbnQubV91Y2hhcnNfLmNoYXJBdCgwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gSGVyZSwgd2UgZWl0aGVyIGhhdmUgb25lIG5vcm1hbCBDRSBPUiBtYXBDRSBpcyBzZXQuIFRoZXJlZm9yZSwgd2UgCisgICAgICAgIC8vIHN0dWZmIG9ubHkgb25lIGVsZW1lbnQgdG8gdGhlIGV4cGFuc2lvbiBidWZmZXIuIFdoZW4gd2UgZW5jb3VudGVyIGEgCisgICAgICAgIC8vIGRpZ2l0IGFuZCB3ZSBkb24ndCBkbyBudW1lcmljIGNvbGxhdGlvbiwgd2Ugd2lsbCBqdXN0IHBpY2sgdGhlIENFIAorICAgICAgICAvLyB3ZSBoYXZlIGFuZCBicmVhayBvdXQgb2YgY2FzZSAoc2VlIHVjb2wuY3BwIHVjb2xfcHJ2X2dldFNwZWNpYWxDRSAKKyAgICAgICAgLy8gJiYgdWNvbF9wcnZfZ2V0U3BlY2lhbFByZXZDRSkuIElmIHdlIHBpY2tlZCBhIHNwZWNpYWwsIGZ1cnRoZXIgCisgICAgICAgIC8vIHByb2Nlc3Npbmcgd2lsbCBvY2N1ci4gSWYgaXQncyBhIHNpbXBsZSBDRSwgd2UnbGwgcmV0dXJuIGR1ZQorICAgICAgICAvLyB0byBob3cgdGhlIGxvb3AgaXMgY29uc3RydWN0ZWQuCisgICAgICAgIGlmICh1bmlDaGFyICE9IDAgJiYgVUNoYXJhY3Rlci5pc0RpZ2l0KHVuaUNoYXIpKSB7CisgICAgICAgICAgICAvLyBwcmVwYXJlIHRoZSBlbGVtZW50CisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgfCAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0RJR0lUX1RBR18KKyAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX1NISUZUXykgfCAxOyAKKyAgICAgICAgICAgIGlmIChlbGVtZW50Lm1fbWFwQ0VfICE9IDApIHsgCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYW4gZXhwYW5zaW9uLCB3ZSdsbCBwaWNrIGl0IGhlcmUKKyAgICAgICAgICAgICAgICBleHBhbnNpb24gfD0gKGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fbWFwQ0VfKSA8PCA0KTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBleHBhbnNpb24gfD0gKGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1swXSkgPDwgNCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZXhwYW5zaW9uOworICAgICAgICB9CisgICAgCisgICAgLy8gaGVyZSB3ZSB3YW50IHRvIGFkZCB0aGUgcHJlZml4IHN0cnVjdHVyZS4KKyAgICAvLyBJIHdpbGwgdHJ5IHRvIHByb2Nlc3MgaXQgYXMgYSByZXZlcnNlIGNvbnRyYWN0aW9uLCBpZiBwb3NzaWJsZS4KKyAgICAvLyBwcmVmaXggYnVmZmVyIGlzIGFscmVhZHkgcmV2ZXJzZWQuCisgICAgCisgICAgaWYgKGVsZW1lbnQubV9wcmVmaXhDaGFyc18gIT0gbnVsbCAmJgorICAgICAgICAgICAgZWxlbWVudC5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9wcmVmaXhfID4gMCkgeworICAgICAgICAvLyBXZSBrZWVwIHRoZSBzZWVuIHByZWZpeCBzdGFydGVyIGVsZW1lbnRzIGluIGEgaGFzaHRhYmxlIHdlIG5lZWQgCisgICAgICAgICAgICAvLyBpdCB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHNpbXBsZSBjb2RlcG9pbnRzIGFuZCAKKyAgICAgICAgICAgIC8vIHByZWZpeCBzdGFydGVycy4gQWxzbywgd2UgbmVlZCB0byB1c2UgaXQgZm9yIGNhbm9uaWNhbCBjbG9zdXJlLgorICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9jYXNlQml0XyA9IGVsZW1lbnQubV9jYXNlQml0XzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX0NFTGVuZ3RoXyA9IGVsZW1lbnQubV9DRUxlbmd0aF87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9DRXNfID0gZWxlbWVudC5tX0NFc187CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9tYXBDRV8gPSBlbGVtZW50Lm1fbWFwQ0VfOworICAgICAgICAgICAgLy9tX3V0aWxFbGVtZW50Ml8ubV9wcmVmaXhDaGFyc18gPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fc2l6ZVByaW1fID0gZWxlbWVudC5tX3NpemVQcmltXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3NpemVTZWNfID0gZWxlbWVudC5tX3NpemVTZWNfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fc2l6ZVRlcl8gPSBlbGVtZW50Lm1fc2l6ZVRlcl87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV92YXJpYWJsZVRvcF8gPSBlbGVtZW50Lm1fdmFyaWFibGVUb3BfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fcHJlZml4XyA9IGVsZW1lbnQubV9wcmVmaXhfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfID0gTm9ybWFsaXplci5jb21wb3NlKGVsZW1lbnQubV9wcmVmaXhDaGFyc18sIGZhbHNlKTsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3VjaGFyc18gPSBlbGVtZW50Lm1fdWNoYXJzXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX2NQb2ludHNfID0gZWxlbWVudC5tX2NQb2ludHNfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fY1BvaW50c09mZnNldF8gPSAwOworICAgICAgICAgICAgCisgICAgICAgIGlmICh0Lm1fcHJlZml4TG9va3VwXyAhPSBudWxsKSB7CisgICAgICAgIEVsZW1lbnRzIHVDRSA9IChFbGVtZW50cyl0Lm1fcHJlZml4TG9va3VwXy5nZXQoZWxlbWVudCk7CisgICAgICAgIGlmICh1Q0UgIT0gbnVsbCkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgYWxyZWFkeSBhIHNldCBvZiBjb2RlIHBvaW50cyBoZXJlCisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gYWRkUHJlZml4KHQsIHVDRS5tX21hcENFXywgZWxlbWVudCk7CisgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7IC8vIG5vIGNvZGUgcG9pbnRzLCBzbyB0aGlzIHNwb3QgaXMgY2xlYW4KKyAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8gPSBhZGRQcmVmaXgodCwgQ0VfTk9UX0ZPVU5EXywgZWxlbWVudCk7CisgICAgICAgICAgICB1Q0UgPSBuZXcgRWxlbWVudHMoZWxlbWVudCk7CisgICAgICAgICAgICB1Q0UubV9jUG9pbnRzXyA9IHVDRS5tX3VjaGFyc187CisgICAgICAgICAgICB0Lm1fcHJlZml4TG9va3VwXy5wdXQodUNFLCB1Q0UpOworICAgICAgICB9CisgICAgICAgIGlmIChtX3V0aWxFbGVtZW50Ml8ubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgCisgICAgICAgICAgICAhPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX3ByZWZpeF8KKyAgICAgICAgICAgICAgICAgICAgfHwgIW1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeENoYXJzXy5yZWdpb25NYXRjaGVzKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3ByZWZpeENoYXJzXywgZWxlbWVudC5tX3ByZWZpeF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgLy8gZG8gaXQhCisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX21hcENFXyA9IGFkZFByZWZpeCh0LCBlbGVtZW50Lm1fbWFwQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXyk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBXZSBuZWVkIHRvIHVzZSB0aGUgY2Fub25pY2FsIGl0ZXJhdG9yIGhlcmUKKyAgICAvLyB0aGUgd2F5IHdlIGRvIGl0IGlzIHRvIGdlbmVyYXRlIHRoZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IHN0cmluZ3MgCisgICAgLy8gZm9yIHRoZSBjb250cmFjdGlvbiBhbmQgdGhlbiBhZGQgdGhlIHNlcXVlbmNlcyB0aGF0IHBhc3MgRkNEIGNoZWNrCisgICAgaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA+IDEgCisgICAgICAgICYmICEoZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfID09IDIgCisgICAgICAgICAmJiBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSkgCisgICAgICAgICAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMSkpKSkgeyAKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgYSBjb21wb3NlZCBmb3JtIAorICAgICAgICAgICAgLy8gc2hvdWxkIGFsc28gYmUgaW5jbHVkZWQKKyAgICAgICAgbV91dGlsQ2FuSXRlcl8uc2V0U291cmNlKGVsZW1lbnQubV9jUG9pbnRzXyk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBtX3V0aWxDYW5JdGVyXy5uZXh0KCk7CisgICAgICAgIHdoaWxlIChzb3VyY2UgIT0gbnVsbCAmJiBzb3VyY2UubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLkZDRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgZWxlbWVudC5tX3VjaGFyc18gPSBzb3VyY2U7CisgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18gPSBlbGVtZW50Lm1fdWNoYXJzXzsKKyAgICAgICAgICAgIGZpbmFsaXplQWRkaXRpb24odCwgZWxlbWVudCk7CisgICAgICAgIH0KKyAgICAgICAgc291cmNlID0gbV91dGlsQ2FuSXRlcl8ubmV4dCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZWxlbWVudC5tX21hcENFXzsKKyAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGZpbmFsaXplQWRkaXRpb24odCwgZWxlbWVudCk7ICAKKyAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgYW4gZXhwYW5zaW9uIGNlIHRvIHRoZSBleHBhbnNpb24gdmVjdG9yCisgICAgICogQHBhcmFtIGV4cGFuc2lvbnMgdmVjdG9yIHRvIGFkZCB0bworICAgICAqIEBwYXJhbSB2YWx1ZSBvZiB0aGUgZXhwYW5zaW9uCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgbmV3IGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgYWRkRXhwYW5zaW9uKFZlY3RvciBleHBhbnNpb25zLCBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBleHBhbnNpb25zLmFkZChuZXcgSW50ZWdlcih2YWx1ZSkpOworICAgIHJldHVybiBleHBhbnNpb25zLnNpemUoKSAtIDE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvb2tzIGZvciB0aGUgbWF4aW11bSBsZW5ndGggb2YgYWxsIGV4cGFuc2lvbiBzZXF1ZW5jZXMgZW5kaW5nIHdpdGggdGhlIAorICAgICAqIHNhbWUgY29sbGF0aW9uIGVsZW1lbnQuIFRoZSBzaXplIHJlcXVpcmVkIGZvciBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgCisgICAgICogaXMgcmV0dXJuZWQgaWYgdGhlIGFycmF5cyBhcmUgdG9vIHNtYWxsLgorICAgICAqIEBwYXJhbSBlbmRleHBhbnNpb24gdGhlIGxhc3QgZXhwYW5zaW9uIGNvbGxhdGlvbiBlbGVtZW50IHRvIGJlIGFkZGVkCisgICAgICogQHBhcmFtIGV4cGFuc2lvbnNpemUgc2l6ZSBvZiB0aGUgZXhwYW5zaW9uCisgICAgICogQHBhcmFtIG1heGV4cGFuc2lvbiBkYXRhIHN0cnVjdHVyZSB0byBzdG9yZSB0aGUgbWF4aW11bSBleHBhbnNpb24gZGF0YS4KKyAgICAgKiBAcmV0dXJucyBzaXplIG9mIHRoZSBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgdXNlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc2V0TWF4RXhwYW5zaW9uKGludCBlbmRleHBhbnNpb24sIGJ5dGUgZXhwYW5zaW9uc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uKQorICAgIHsKKyAgICBpbnQgc3RhcnQgPSAwOworICAgIGludCBsaW1pdCA9IG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgICAgIGxvbmcgdW5zaWduZWQgPSAobG9uZyllbmRleHBhbnNpb247CisgICAgICAgIHVuc2lnbmVkICY9IDB4RkZGRkZGRkZsOworICAgIAorICAgIC8vIHVzaW5nIGJpbmFyeSBzZWFyY2ggdG8gZGV0ZXJtaW5lIGlmIGxhc3QgZXhwYW5zaW9uIGVsZW1lbnQgaXMgCisgICAgLy8gYWxyZWFkeSBpbiB0aGUgYXJyYXkgCisgICAgaW50IHJlc3VsdCA9IC0xOworICAgIHdoaWxlIChzdGFydCA8IGxpbWl0IC0gMSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgbWlkID0gc3RhcnQgKyAoKGxpbWl0IC0gc3RhcnQpID4+IDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbG9uZyB1bnNpZ25lZGNlID0gKChJbnRlZ2VyKW1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWQpKS5pbnRWYWx1ZSgpOyAKKyAgICAgICAgICAgIHVuc2lnbmVkY2UgJj0gMHhGRkZGRkZGRmw7CisgICAgICAgIGlmICh1bnNpZ25lZCA8PSB1bnNpZ25lZGNlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGxpbWl0ID0gbWlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdGFydCA9IG1pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgfSAKKyAgICAgICAgICAKKyAgICBpZiAoKChJbnRlZ2VyKW1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoc3RhcnQpKS5pbnRWYWx1ZSgpIAorICAgICAgICA9PSBlbmRleHBhbnNpb24pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXN1bHQgPSBzdGFydDsgIAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGVsc2UgaWYgKCgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGxpbWl0KSkuaW50VmFsdWUoKSAKKyAgICAgICAgID09IGVuZGV4cGFuc2lvbikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGxpbWl0OyAgICAgIAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGlmIChyZXN1bHQgPiAtMSkgeworICAgICAgICAvLyBmb3VuZCB0aGUgY2UgaW4gZXhwYW5zaW9uLCB3ZSdsbCBqdXN0IG1vZGlmeSB0aGUgc2l6ZSBpZiBpdCAKKyAgICAgICAgLy8gaXMgc21hbGxlcgorICAgICAgICBPYmplY3QgY3VycmVudHNpemUgPSBtYXhleHBhbnNpb24ubV9leHBhbnNpb25DRVNpemVfLmdldChyZXN1bHQpOworICAgICAgICBpZiAoKChCeXRlKWN1cnJlbnRzaXplKS5ieXRlVmFsdWUoKSA8IGV4cGFuc2lvbnNpemUpIHsKKyAgICAgICAgbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5zZXQocmVzdWx0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZShleHBhbnNpb25zaXplKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8vIHdlJ2xsIG5lZWQgdG8gc3F1ZWV6ZSB0aGUgdmFsdWUgaW50byB0aGUgYXJyYXkuIGluaXRpYWwgCisgICAgICAgIC8vIGltcGxlbWVudGF0aW9uLiBzaGlmdGluZyB0aGUgc3ViYXJyYXkgZG93biBieSAxCisgICAgICAgIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5pbnNlcnRFbGVtZW50QXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihlbmRleHBhbnNpb24pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAxKTsKKyAgICAgICAgbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5pbnNlcnRFbGVtZW50QXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlKGV4cGFuc2lvbnNpemUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArIDEpOworICAgIH0KKyAgICByZXR1cm4gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYWxsIGphbW8gZXhwYW5zaW9uIHNlcXVlbmNlcyBlbmRpbmcgd2l0aCB0aGUgCisgICAgICogc2FtZSBjb2xsYXRpb24gZWxlbWVudC4gVGhlIHNpemUgcmVxdWlyZWQgZm9yIG1heGV4cGFuc2lvbiBhbmQgbWF4c2l6ZSAKKyAgICAgKiBpcyByZXR1cm5lZCBpZiB0aGUgYXJyYXlzIGFyZSB0b28gc21hbGwuCisgICAgICogQHBhcmFtIGNoIHRoZSBqYW1vIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBlbmRleHBhbnNpb24gdGhlIGxhc3QgZXhwYW5zaW9uIGNvbGxhdGlvbiBlbGVtZW50IHRvIGJlIGFkZGVkCisgICAgICogQHBhcmFtIGV4cGFuc2lvbnNpemUgc2l6ZSBvZiB0aGUgZXhwYW5zaW9uCisgICAgICogQHBhcmFtIG1heGV4cGFuc2lvbiBkYXRhIHN0cnVjdHVyZSB0byBzdG9yZSB0aGUgbWF4aW11bSBleHBhbnNpb24gZGF0YS4KKyAgICAgKiBAcmV0dXJucyBzaXplIG9mIHRoZSBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgdXNlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc2V0TWF4SmFtb0V4cGFuc2lvbihjaGFyIGNoLCBpbnQgZW5kZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICBieXRlIGV4cGFuc2lvbnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSBtYXhleHBhbnNpb24pCisgICAgeworICAgIGJvb2xlYW4gaXNWID0gdHJ1ZTsKKyAgICBpZiAoY2ggPj0gMHgxMTAwICYmIGNoIDw9IDB4MTExMikgeworICAgICAgICAvLyBkZXRlcm1pbmVzIEwgZm9yIEphbW8sIGRvZXNuJ3QgbmVlZCB0byBzdG9yZSB0aGlzIHNpbmNlIGl0IGlzIAorICAgICAgICAvLyBuZXZlciBhdCB0aGUgZW5kIG9mIGEgZXhwYW5zaW9uCisgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhMU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX21heExTaXplXyA9IGV4cGFuc2lvbnNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgfQorICAgIAorICAgIGlmIChjaCA+PSAweDExNjEgJiYgY2ggPD0gMHgxMTc1KSB7CisgICAgICAgIC8vIGRldGVybWluZXMgViBmb3IgSmFtbworICAgICAgICBpZiAobWF4ZXhwYW5zaW9uLm1fbWF4VlNpemVfIDwgZXhwYW5zaW9uc2l6ZSkgeworICAgICAgICBtYXhleHBhbnNpb24ubV9tYXhWU2l6ZV8gPSBleHBhbnNpb25zaXplOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChjaCA+PSAweDExQTggJiYgY2ggPD0gMHgxMUMyKSB7CisgICAgICAgIGlzViA9IGZhbHNlOworICAgICAgICAvLyBkZXRlcm1pbmVzIFQgZm9yIEphbW8KKyAgICAgICAgaWYgKG1heGV4cGFuc2lvbi5tX21heFRTaXplXyA8IGV4cGFuc2lvbnNpemUpIHsKKyAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4VFNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgICAgICBpbnQgcG9zID0gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsgICAgCisgICAgd2hpbGUgKHBvcyA+IDApIHsKKyAgICAgICAgcG9zIC0tOworICAgICAgICBpZiAoKChJbnRlZ2VyKW1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQocG9zKSkuaW50VmFsdWUoKSAKKyAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7CisgICAgICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgICAgICB9CisgICAgfQorICAgIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5hZGQobmV3IEludGVnZXIoZW5kZXhwYW5zaW9uKSk7CisgICAgbWF4ZXhwYW5zaW9uLm1faXNWXy5hZGQobmV3IEJvb2xlYW4oaXNWKSk7CisgICAgICAgICAgCisgICAgcmV0dXJuIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgYSBwcmVmaXggdG8gdGhlIHRhYmxlCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUgdG8gdXBkYXRlCisgICAgICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50IHRvIGFkZAorICAgICAqIEBwYXJhbSBlbGVtZW50IHJ1bGUgZWxlbWVudCB0byBhZGQKKyAgICAgKiBAcmV0dXJuIG1vZGlmaWVkIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkUHJlZml4KEJ1aWxkVGFibGUgdCwgaW50IENFLCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgLy8gY3VycmVudGx5IHRoZSBsb25nZXN0IHByZWZpeCB3ZSdyZSBzdXBwb3J0aW5nIGluIEphcGFuZXNlIGlzIHR3byAKKyAgICAvLyBjaGFyYWN0ZXJzIGxvbmcuIEFsdGhvdWdoIHRoaXMgdGFibGUgY291bGQgcXVpdGUgZWFzaWx5IG1pbWljIAorICAgIC8vIGNvbXBsZXRlIGNvbnRyYWN0aW9uIHN0dWZmIHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uIHRvIG1ha2UgYSBnZW5lcmFsIAorICAgIC8vIHNvbHV0aW9uLCBhcyBpdCB3b3VsZCByZXF1aXJlIHNvbWUgZXJyb3IgcHJvbmUgbWVzc2luZy4KKyAgICBDb250cmFjdGlvblRhYmxlIGNvbnRyYWN0aW9ucyA9IHQubV9jb250cmFjdGlvbnNfOworICAgIFN0cmluZyBvbGRDUCA9IGVsZW1lbnQubV9jUG9pbnRzXzsKKyAgICBpbnQgb2xkQ1BPZmZzZXQgPSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF87CisgICAgICAgIAorICAgIGNvbnRyYWN0aW9ucy5tX2N1cnJlbnRUYWdfID0gQ0VfU1BFQ19QUk9DX1RBR187CisgICAgLy8gaGVyZSwgd2Ugd2lsbCBub3JtYWxpemUgJiBhZGQgcHJlZml4IHRvIHRoZSB0YWJsZS4KKyAgICBpbnQgc2l6ZSA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICBmb3IgKGludCBqID0gMTsgaiA8IHNpemU7IGogKyspIHsgICAKKyAgICAgICAgLy8gRmlyc3QgYWRkIE5GRCBwcmVmaXggY2hhcnMgdG8gdW5zYWZlIENQIGhhc2ggdGFibGUgCisgICAgICAgIC8vIFVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCBhbGdvcml0bWljYWxseSAKKyAgICAgICAgLy8gYW5kIHNob3VsZG4ndCB0YWtlIHVwIHNwYWNlIGluIHRoZSB0YWJsZS4KKyAgICAgICAgY2hhciBjaCA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KGogKyBlbGVtZW50Lm1fcHJlZml4Xyk7CisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgY2gpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvLyBTdHJpbmdCdWZmZXIgcmV2ZXJzZWQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uZGVsZXRlKDAsIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZTsgaiArKykgeyAKKyAgICAgICAgLy8gcHJlZml4ZXMgYXJlIGdvaW5nIHRvIGJlIGxvb2tlZCB1cCBiYWNrd2FyZHMKKyAgICAgICAgLy8gdGhlcmVmb3JlLCB3ZSB3aWxsIHByb21wdGx5IHJldmVyc2UgdGhlIHByZWZpeCBidWZmZXIuLi4KKyAgICAgICAgaW50IG9mZnNldCA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBqIC0gMTsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQob2Zmc2V0KSk7CisgICAgfQorICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18gPSBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgZWxlbWVudC5tX3ByZWZpeF8gPSAwOworICAgIAorICAgIC8vIHRoZSBmaXJzdCBjb2RlcG9pbnQgaXMgYWxzbyB1bnNhZmUsIGFzIGl0IGZvcm1zIGEgJ2NvbnRyYWN0aW9uJyB3aXRoIAorICAgIC8vIHRoZSBwcmVmaXgKKyAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSkpIHsKKyAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisgICAgfQorICAgICAgICAKKyAgICBlbGVtZW50Lm1fY1BvaW50c18gPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfOworICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9IGVsZW1lbnQubV9wcmVmaXhfOworICAgIAorICAgIC8vIEFkZCB0aGUgbGFzdCBjaGFyIG9mIHRoZSBjb250cmFjdGlvbiB0byB0aGUgY29udHJhY3Rpb24tZW5kIGhhc2ggCisgICAgLy8gdGFibGUuIHVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCAKKyAgICAvLyBhbGdvcml0aG1pY2FsbHkgYW5kIHNob3VsZG4ndCBiZSBpbiB0aGUgdGFibGUKKyAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gMSkpKSB7CisgICAgICAgIENvbnRyRW5kQ1BTZXQodC5tX2NvbnRyRW5kQ1BfLCBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIDEpKTsKKyAgICB9CisgICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBjaGVjayBpZiBjb250cmFjdGlvbnMgc3RhcnRzIHdpdGggYSBzdXJyb2dhdGUKKyAgICAvLyBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLCBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pOworICAgIAorICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgSmFtb3MgaW4gdGhlIGNvbnRyYWN0aW9uLCB3ZSBzaG91bGQgdHVybiBvbiBzcGVjaWFsIAorICAgIC8vIHByb2Nlc3NpbmcgZm9yIEphbW9zCisgICAgaWYgKGlzSmFtbyhlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChlbGVtZW50Lm1fcHJlZml4XykpKSB7CisgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgfQorICAgIC8vIHRoZW4gd2UgbmVlZCB0byBkZWFsIHdpdGggaXQgCisgICAgLy8gd2UgY291bGQgYXJlYWR5IGhhdmUgc29tZXRoaW5nIGluIHRhYmxlIC0gb3Igd2UgbWlnaHQgbm90IAorICAgIGlmICghaXNQcmVmaXgoQ0UpKSB7IAorICAgICAgICAvLyBpZiBpdCB3YXNuJ3QgY29udHJhY3Rpb24sIHdlIHdvdWxkbid0IGVuZCB1cCBoZXJlCisgICAgICAgIGludCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0ID0gYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05UUkFDVElPTl9UQUJMRV9ORVdfRUxFTUVOVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKTAsIENFKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQoZWxlbWVudC5tX3ByZWZpeF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAoY2hhcikweEZGRkYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0UpOworICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShDRV9TUEVDX1BST0NfVEFHXywgZmlyc3RDb250cmFjdGlvbk9mZnNldCk7CisgICAgfSAKKyAgICBlbHNlIHsgCisgICAgICAgIC8vIHdlIGFyZSBhZGRpbmcgdG8gZXhpc3RpbmcgY29udHJhY3Rpb24gCisgICAgICAgIC8vIHRoZXJlIHdlcmUgYWxyZWFkeSBzb21lIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgc28gd2UgbmVlZCB0byBhZGQgCisgICAgICAgIC8vIGEgbmV3IGNvbnRyYWN0aW9uIAorICAgICAgICAvLyBUd28gdGhpbmdzIGNhbiBoYXBwZW4gaGVyZTogZWl0aGVyIHRoZSBjb2RlcG9pbnQgaXMgYWxyZWFkeSBpbiAKKyAgICAgICAgLy8gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QKKyAgICAgICAgY2hhciBjaCA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KGVsZW1lbnQubV9wcmVmaXhfKTsKKyAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKGNvbnRyYWN0aW9ucywgQ0UsIGNoKTsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gMCkgeyAgICAgICAKKyAgICAgICAgLy8gaWYgaXQgaXMgd2UganVzdCBjb250aW51ZSBkb3duIHRoZSBjaGFpbiAKKyAgICAgICAgaW50IGVDRSA9IGdldENFKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgZUNFKTsKKyAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgcG9zaXRpb24sIGNoLCBuZXdDRSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBpZiBpdCBpc24ndCwgd2Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBhIG5ldyBzZXF1ZW5jZSAKKyAgICAgICAgcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgQ0VfTk9UX0ZPVU5EXyk7CisgICAgICAgIGluc2VydENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIGNoLCBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBlbGVtZW50Lm1fY1BvaW50c18gPSBvbGRDUDsKKyAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPSBvbGRDUE9mZnNldDsKKyAgICAKKyAgICByZXR1cm4gQ0U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaXMgYSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBpcyBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uKGludCBDRSkgCisgICAgeworICAgIHJldHVybiBpc1NwZWNpYWwoQ0UpICYmIChnZXRDRVRhZyhDRSkgPT0gQ0VfQ09OVFJBQ1RJT05fVEFHXyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaGFzIGEgcHJlZml4CisgICAgICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNQcmVmaXgoaW50IENFKSAKKyAgICB7CisgICAgcmV0dXJuIGlzU3BlY2lhbChDRSkgJiYgKGdldENFVGFnKENFKSA9PSBDRV9TUEVDX1BST0NfVEFHXyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaXMgc3BlY2lhbAorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBpcyBzcGVjaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1NwZWNpYWwoaW50IENFKSAKKyAgICB7CisgICAgcmV0dXJuIChDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pID09IDB4RjAwMDAwMDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaGFzIGEgcHJlZml4CisgICAgICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDRVRhZyhpbnQgQ0UpIAorICAgIHsKKyAgICByZXR1cm4gKENFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX01BU0tfKSA+Pj4gCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNlIGF0IHBvc2l0aW9uIGluIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHBvc2l0aW9uIG9mZnNldCB0byB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENFKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIGludCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICBpbnQgcG9zaXRpb24pIAorICAgIHsKKyAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworICAgICAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKyAgICAgICAgCisgICAgICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICBpZiAocG9zaXRpb24gPiB0YmwubV9DRXNfLnNpemUoKSB8fCBwb3NpdGlvbiA9PSAtMSkgeworICAgICAgICByZXR1cm4gQ0VfTk9UX0ZPVU5EXzsKKyAgICB9IAorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXRibC5tX0NFc18uZ2V0KHBvc2l0aW9uKSkuaW50VmFsdWUoKTsKKyAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHVuc2FmZSBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gdGFibGUgdW5zYWZlIHRhYmxlCisgICAgICogQHBhcmFtIGMgY2hhcmFjdGVyIHRvIGJlIGFkZGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB1bnNhZmVDUFNldChieXRlIHRhYmxlW10sIGNoYXIgYykgCisgICAgeworICAgIGludCBoYXNoID0gYzsKKyAgICBpZiAoaGFzaCA+PSAoVU5TQUZFQ1BfVEFCTEVfU0laRV8gPDwgMykpIHsKKyAgICAgICAgaWYgKGhhc2ggPj0gMHhkODAwICYmIGhhc2ggPD0gMHhmOGZmKSB7CisgICAgICAgIC8vIFBhcnQgb2YgYSBzdXJyb2dhdGUsIG9yIGluIHByaXZhdGUgdXNlIGFyZWEuIAorICAgICAgICAvLyBUaGVzZSBkb24ndCBnbyBpbiB0aGUgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBoYXNoID0gKGhhc2ggJiBVTlNBRkVDUF9UQUJMRV9NQVNLXykgKyAyNTY7CisgICAgfQorICAgIHRhYmxlW2hhc2ggPj4gM10gfD0gKDEgPDwgKGhhc2ggJiA3KSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvbnRyYWN0aW9uIGVuZCBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gZW5kIHRhYmxlCisgICAgICogQHBhcmFtIGMgY2hhcmFjdGVyIHRvIGJlIGFkZGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBDb250ckVuZENQU2V0KGJ5dGUgdGFibGVbXSwgY2hhciBjKSAKKyAgICB7CisgICAgaW50IGhhc2ggPSBjOworICAgIGlmIChoYXNoID49IChVTlNBRkVDUF9UQUJMRV9TSVpFXyA8PCAzKSkgeworICAgICAgICBoYXNoID0gKGhhc2ggJiBVTlNBRkVDUF9UQUJMRV9NQVNLXykgKyAyNTY7CisgICAgfQorICAgIHRhYmxlW2hhc2ggPj4gM10gfD0gKDEgPDwgKGhhc2ggJiA3KSk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBBZGRzIG1vcmUgY29udHJhY3Rpb25zIGluIHRhYmxlLiBJZiBlbGVtZW50IGlzIG5vbiBleGlzdGFudCwgaXQgY3JlYXRlcyAKKyAgICAgKiBvbi4gUmV0dXJucyBlbGVtZW50IGhhbmRsZSAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGNvZGVQb2ludCBjb2RlcG9pbnQgdG8gYWRkCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBhZGRDb250cmFjdGlvbihDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29kZVBvaW50LCBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgdGJsID0gYWRkQUNvbnRyYWN0aW9uRWxlbWVudCh0YWJsZSk7CisgICAgICAgIGVsZW1lbnQgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCkgLSAxOworICAgIH0gCisgICAgCisgICAgdGJsLm1fQ0VzXy5hZGQobmV3IEludGVnZXIodmFsdWUpKTsKKyAgICB0YmwubV9jb2RlUG9pbnRzXy5hcHBlbmQoY29kZVBvaW50KTsKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYSBjb250cmFjdGlvbiBlbGVtZW50IHRvIHRoZSB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZSB0byB1cGRhdGUKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEJhc2ljQ29udHJhY3Rpb25UYWJsZSBhZGRBQ29udHJhY3Rpb25FbGVtZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cmFjdGlvblRhYmxlIHRhYmxlKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHJlc3VsdCA9IG5ldyBCYXNpY0NvbnRyYWN0aW9uVGFibGUoKTsKKyAgICB0YWJsZS5tX2VsZW1lbnRzXy5hZGQocmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzcGVjaWFsIGNlCisgICAgICogQHBhcmFtIHRhZyBzcGVjaWFsIHRhZworICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudCAKKyAgICAgKiBAcmV0dXJuIGEgY29udHJhY3Rpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY29uc3RydWN0U3BlY2lhbENFKGludCB0YWcsIGludCBDRSkgCisgICAgeworICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfIAorICAgICAgICB8ICh0YWcgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX1NISUZUXykgfCAoQ0UgJiAweEZGRkZGRik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgYW5kIGluc2VydHMgdGhlIGVsZW1lbnQgdGhhdCBoYXMgYSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSBjb250cmFjdGlvbnMgY29udHJhY3Rpb24gdGFibGUgCisgICAgICogQHBhcmFtIGVsZW1lbnQgY29udHJhY3RpbmcgZWxlbWVudAorICAgICAqIEBwYXJhbSBleGlzdGluZ0NFCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBwcm9jZXNzQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRzIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgIGludCBleGlzdGluZ0NFKSAKKyAgICB7CisgICAgaW50IGZpcnN0Q29udHJhY3Rpb25PZmZzZXQgPSAwOworICAgIC8vIGVuZCBvZiByZWN1cnNpb24gCisgICAgaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9PSAxKSB7CisgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGV4aXN0aW5nQ0UpIAorICAgICAgICAmJiBnZXRDRVRhZyhleGlzdGluZ0NFKSA9PSBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXykgeworICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIChjaGFyKTAsIAorICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIGNoYW5nZUNvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgKGNoYXIpMHhGRkZGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICByZXR1cm4gZXhpc3RpbmdDRTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIC8vIGNhbid0IGRvIGp1c3QgdGhhdC4gZXhpc3RpbmdDZSBtaWdodCBiZSBhIGNvbnRyYWN0aW9uLCAKKyAgICAgICAgLy8gbWVhbmluZyB0aGF0IHdlIG5lZWQgdG8gZG8gYW5vdGhlciBzdGVwCisgICAgICAgIHJldHVybiBlbGVtZW50Lm1fbWFwQ0VfOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyB0aGlzIHJlY3Vyc2lvbiBjdXJyZW50bHkgZmVlZHMgb24gdGhlIG9ubHkgZWxlbWVudCB3ZSBoYXZlLi4uIAorICAgIC8vIFdlIHdpbGwgaGF2ZSB0byBjb3B5IGl0IGluIG9yZGVyIHRvIGFjY29tb2RhdGUgZm9yIGJvdGggYmFja3dhcmQgCisgICAgLy8gYW5kIGZvcndhcmQgY3ljbGVzCisgICAgLy8gd2UgZW5jb3VudGVyZWQgZWl0aGVyIGFuIGVtcHR5IHNwYWNlIG9yIGEgbm9uLWNvbnRyYWN0aW9uIGVsZW1lbnQgCisgICAgLy8gdGhpcyBtZWFucyB3ZSBhcmUgY29uc3RydWN0aW5nIGEgbmV3IGNvbnRyYWN0aW9uIHNlcXVlbmNlIAorICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyArKzsKKyAgICBpZiAoIWlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoZXhpc3RpbmdDRSkpIHsgCisgICAgICAgIC8vIGlmIGl0IHdhc24ndCBjb250cmFjdGlvbiwgd2Ugd291bGRuJ3QgZW5kIHVwIGhlcmUKKyAgICAgICAgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikwLCBleGlzdGluZ0NFKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgIChjaGFyKTB4RkZGRiwgZXhpc3RpbmdDRSk7CisgICAgICAgIGV4aXN0aW5nQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoY29udHJhY3Rpb25zLm1fY3VycmVudFRhZ18sIAorICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RDb250cmFjdGlvbk9mZnNldCk7CisgICAgfSAKKyAgICBlbHNlIHsgCisgICAgICAgIC8vIHdlIGFyZSBhZGRpbmcgdG8gZXhpc3RpbmcgY29udHJhY3Rpb24KKyAgICAgICAgLy8gdGhlcmUgd2VyZSBhbHJlYWR5IHNvbWUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBzbyB3ZSBuZWVkIHRvIGFkZCAKKyAgICAgICAgLy8gYSBuZXcgY29udHJhY3Rpb24gCisgICAgICAgIC8vIFR3byB0aGluZ3MgY2FuIGhhcHBlbiBoZXJlOiBlaXRoZXIgdGhlIGNvZGVwb2ludCBpcyBhbHJlYWR5IGluIAorICAgICAgICAvLyB0aGUgdGFibGUsIG9yIGl0IGlzIG5vdAorICAgICAgICBpbnQgcG9zaXRpb24gPSBmaW5kQ1AoY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCAKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSk7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IDApIHsgICAgICAgCisgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4gCisgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIHBvc2l0aW9uKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgZUNFKTsKKyAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCBwb3NpdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7ICAKKyAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisgICAgICAgIGluc2VydENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgCisgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICB9CisgICAgfQorICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyAtLTsKKyAgICByZXR1cm4gZXhpc3RpbmdDRTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIENFIGJlbG9uZ3MgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50IHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgQ0UgYmVsb25ncyB0byB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoaW50IENFKSAKKyAgICB7IAorICAgIHJldHVybiBpc1NwZWNpYWwoQ0UpIAorICAgICAgICAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX0NPTlRSQUNUSU9OX1RBR18KKyAgICAgICAgfHwgZ2V0Q0VUYWcoQ0UpID09IENFX1NQRUNfUFJPQ19UQUdfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29kZXBvaW50IAorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgY29udHJhY3Rpb24gZWxlbWVudCBpbiB0aGUgdGFibGUKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGUgcG9pbnQgdG8gbG9vayBmb3IKKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgdG8gdGhlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZENQKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIGludCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgIGNoYXIgY29kZVBvaW50KSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICB3aGlsZSAoY29kZVBvaW50ID4gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICBwb3NpdGlvbiArKzsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjb2RlUG9pbnQgPT0gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb250cmFjdGlvbiBlbGVtZW50IG91dCBvZiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBlbGVtZW50IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEByZXR1cm4gYmFzaWMgY29udHJhY3Rpb24gZWxlbWVudCBhdCBvZmZzZXQgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQmFzaWNDb250cmFjdGlvblRhYmxlIGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyYWN0aW9uVGFibGUgdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KSAKKyAgICB7CisgICAgICAgIG9mZnNldCAmPSAweEZGRkZGRjsKKyAgICAgICAgaWYgKG9mZnNldCA9PSAweEZGRkZGRikgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIHJldHVybiAoQmFzaWNDb250cmFjdGlvblRhYmxlKXRhYmxlLm1fZWxlbWVudHNfLmdldChvZmZzZXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFuZ2VzIHRoZSBjb250cmFjdGlvbiBlbGVtZW50CisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBlbGVtZW50IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZXBvaW50IAorICAgICAqIEBwYXJhbSBuZXdDRSBuZXcgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIGJhc2ljIGNvbnRyYWN0aW9uIGVsZW1lbnQgYXQgb2Zmc2V0IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjaGFuZ2VDb250cmFjdGlvbihDb250cmFjdGlvblRhYmxlIHRhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVsZW1lbnQsIGNoYXIgY29kZVBvaW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0NFKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7ICAgIAorICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICB3aGlsZSAoY29kZVBvaW50ID4gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICBwb3NpdGlvbiArKzsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNvZGVQb2ludCA9PSB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisgICAgICAgIHRibC5tX0NFc18uc2V0KHBvc2l0aW9uLCBuZXcgSW50ZWdlcihuZXdDRSkpOworICAgICAgICByZXR1cm4gZWxlbWVudCAmIDB4RkZGRkZGOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFNldHMgYSBwYXJ0IG9mIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGluIHRhYmxlLiBJZiBlbGVtZW50IGlzIG5vbiAKKyAgICAgKiBleGlzdGFudCwgaXQgY3JlYXRlcyBvbi4gUmV0dXJucyBlbGVtZW50IGhhbmRsZS4KKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIG9mZnNldAorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29udHJhY3Rpb24gY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHZhbHVlIGNlIHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY29udHJhY3Rpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0Q29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50LCBpbnQgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb2RlUG9pbnQsIGludCB2YWx1ZSkgCisgICAgeworICAgICAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOyAgICAKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgdGJsID0gYWRkQUNvbnRyYWN0aW9uRWxlbWVudCh0YWJsZSk7CisgICAgICAgIGVsZW1lbnQgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCkgLSAxOworICAgIH0KKyAgICAKKyAgICB0YmwubV9DRXNfLnNldChvZmZzZXQsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgdGJsLm1fY29kZVBvaW50c18uc2V0Q2hhckF0KG9mZnNldCwgY29kZVBvaW50KTsKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogSW5zZXJ0cyBhIHBhcnQgb2YgY29udHJhY3Rpb24gc2VxdWVuY2UgaW4gdGFibGUuIFNlcXVlbmNlcyBiZWhpbmQgdGhlIAorICAgICAqIG9mZnNldCBhcmUgbW92ZWQgYmFjay4gSWYgZWxlbWVudCBpcyBub24gZXhpc3RlbnQsIGl0IGNyZWF0ZXMgb24uIAorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgdGFibGUgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluc2VydENvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZWxlbWVudCwgY2hhciBjb2RlUG9pbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOworICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICB0YmwgPSBhZGRBQ29udHJhY3Rpb25FbGVtZW50KHRhYmxlKTsKKyAgICAgICAgZWxlbWVudCA9IHRhYmxlLm1fZWxlbWVudHNfLnNpemUoKSAtIDE7CisgICAgfQorICAgIAorICAgIGludCBvZmZzZXQgPSAwOworICAgIHdoaWxlICh0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQob2Zmc2V0KSA8IGNvZGVQb2ludCAKKyAgICAgICAgICAgJiYgb2Zmc2V0IDwgdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgb2Zmc2V0ICsrOworICAgIH0KKyAgICAKKyAgICB0YmwubV9DRXNfLmluc2VydEVsZW1lbnRBdChuZXcgSW50ZWdlcih2YWx1ZSksIG9mZnNldCk7CisgICAgdGJsLm1fY29kZVBvaW50c18uaW5zZXJ0KG9mZnNldCwgY29kZVBvaW50KTsKKyAgICAKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5hbGl6ZSBhZGRpdGlvbgorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgdG8gYWRkCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGZpbmFsaXplQWRkaXRpb24oQnVpbGRUYWJsZSB0LCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgaW50IENFID0gQ0VfTk9UX0ZPVU5EXzsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYWRkIGEgY29tcGxldGVseSBpZ25vcmFibGUgZWxlbWVudCB0byB0aGUgIAorICAgICAgICAvLyB1bnNhZmUgdGFibGUsIHNvIHRoYXQgYmFja3dhcmQgaXRlcmF0aW9uIHdpbGwgc2tpcCAKKyAgICAgICAgLy8gb3ZlciBpdCB3aGVuIHRyZWF0aW5nIGNvbnRyYWN0aW9ucy4gCisgICAgICAgIGlmIChlbGVtZW50Lm1fbWFwQ0VfID09IDApIHsgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKTsgaSArKykgeyAKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7IAorICAgICAgICAgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBjaCk7IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IAorCisgICAgaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA+IDEpIHsgCisgICAgICAgIC8vIHdlJ3JlIGFkZGluZyBhIGNvbnRyYWN0aW9uCisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c18sIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0Xyk7CisgICAgICAgIENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKGNwKTsKKyAgICAgICAgQ0UgPSBhZGRDb250cmFjdGlvbih0LCBDRSwgZWxlbWVudCk7CisgICAgfSAKKyAgICBlbHNlIHsgCisgICAgICAgIC8vIGVhc3kgY2FzZQorICAgICAgICBDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSk7CisgICAgICAgIAorICAgICAgICBpZiAoQ0UgIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICBpZihpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KENFKSkgeyAKKyAgICAgICAgICAgIC8vIGFkZGluZyBhIG5vbiBjb250cmFjdGlvbiBlbGVtZW50ICh0aGFpLCBleHBhbnNpb24sIAorICAgICAgICAgICAgLy8gc2luZ2xlKSB0byBhbHJlYWR5IGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAgICAgaWYgKCFpc1ByZWZpeChlbGVtZW50Lm1fbWFwQ0VfKSkgeyAKKyAgICAgICAgICAgIC8vIHdlIGNhbm5vdCByZWVudGVyIHByZWZpeCBlbGVtZW50cyAtIGFzIHdlIGFyZSBnb2luZyAKKyAgICAgICAgICAgIC8vIHRvIGNyZWF0ZSBhIGRlYWQgbG9vcAorICAgICAgICAgICAgLy8gT25seSBleHBhbnNpb25zIGFuZCByZWd1bGFyIENFcyBjYW4gZ28gaGVyZS4uLiAKKyAgICAgICAgICAgIC8vIENvbnRyYWN0aW9ucyB3aWxsIG5ldmVyIGhhcHBlbiBpbiB0aGlzIHBsYWNlCisgICAgICAgICAgICBzZXRDb250cmFjdGlvbih0Lm1fY29udHJhY3Rpb25zXywgQ0UsIDAsIChjaGFyKTAsIAorICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBoYXMgdG8gY2hhbmdlIHRoZSBDRSBhdCB0aGUgZW5kIG9mIAorICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gUkVETyEKKyAgICAgICAgICAgIGNoYW5nZUxhc3RDRSh0Lm1fY29udHJhY3Rpb25zXywgQ0UsIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENFOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogTm90ZSByZWdhcmRpbmcgc3Vycm9nYXRlIGhhbmRsaW5nOiBXZSBhcmUgaW50ZXJlc3RlZCBvbmx5IGluIHRoZSBzaW5nbGUKKyAgICAgKiBvciBsZWFkaW5nIHN1cnJvZ2F0ZXMgaW4gYSBjb250cmFjdGlvbi4gSWYgYSBzdXJyb2dhdGUgaXMgc29tZXdoZXJlIGVsc2UKKyAgICAgKiBpbiB0aGUgY29udHJhY3Rpb24sIGl0IGlzIGdvaW5nIHRvIGJlIGhhbmRsZWQgYXMgYSBwYWlyIG9mIGNvZGUgdW5pdHMsCisgICAgICogYXMgaXQgZG9lc24ndCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlIEFORCBoYW5kbGluZyBzdXJyb2dhdGVzIHNwZWNpYWxseQorICAgICAqIHdvdWxkIGNvbXBsaWNhdGUgY29kZSB3YXkgdG9vIG11Y2guCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkZENvbnRyYWN0aW9uKEJ1aWxkVGFibGUgdCwgaW50IENFLCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKyAgICBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXyA9IENFX0NPTlRSQUNUSU9OX1RBR187CisgICAgCisgICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBjaGVjayBpZiBjb250cmFjdGlvbnMgc3RhcnRzIHdpdGggYSBzdXJyb2dhdGUKKyAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLCAwKTsKKyAgICBpbnQgY3BzaXplID0gMTsKKyAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY3ApKSB7CisgICAgICAgIGNwc2l6ZSA9IDI7CisgICAgfQorICAgIGlmIChjcHNpemUgPCBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkpIHsgCisgICAgICAgIC8vIFRoaXMgaXMgYSByZWFsIGNvbnRyYWN0aW9uLCBpZiB0aGVyZSBhcmUgb3RoZXIgY2hhcmFjdGVycyBhZnRlciAKKyAgICAgICAgLy8gdGhlIGZpcnN0CisgICAgICAgIGludCBzaXplID0gZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOworICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IHNpemU7IGogKyspIHsgICAKKyAgICAgICAgLy8gRmlyc3QgYWRkIGNvbnRyYWN0aW9uIGNoYXJzIHRvIHVuc2FmZSBDUCBoYXNoIHRhYmxlIAorICAgICAgICAvLyBVbmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgCisgICAgICAgIC8vIGFsZ29yaXRtaWNhbGx5IGFuZCBzaG91bGRuJ3QgdGFrZSB1cCBzcGFjZSBpbiB0aGUgdGFibGUuCisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKyBqKSkpIHsKKyAgICAgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIAorICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKyBqKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCAKKyAgICAgICAgLy8gaGFzaCB0YWJsZS4gdW5sZXNzIGl0IGlzIGEgdHJhaWwgc3Vycm9nYXRlLCB3aGljaCBpcyBoYW5kbGVkIAorICAgICAgICAvLyBhbGdvcml0aG1pY2FsbHkgYW5kIHNob3VsZG4ndCBiZSBpbiB0aGUgdGFibGUKKyAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0xKSkpIHsKKyAgICAgICAgQ29udHJFbmRDUFNldCh0Lm1fY29udHJFbmRDUF8sIAorICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLTEpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IEphbW9zIGluIHRoZSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIHR1cm4gb24gCisgICAgICAgIC8vIHNwZWNpYWwgcHJvY2Vzc2luZyBmb3IgSmFtb3MKKyAgICAgICAgaWYgKGlzSmFtbyhlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpKSB7CisgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIGRlYWwgd2l0aCBpdCAKKyAgICAgICAgLy8gd2UgY291bGQgYXJlYWR5IGhhdmUgc29tZXRoaW5nIGluIHRhYmxlIC0gb3Igd2UgbWlnaHQgbm90IAorICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKz0gY3BzaXplOworICAgICAgICBpZiAoIWlzQ29udHJhY3Rpb24oQ0UpKSB7IAorICAgICAgICAvLyBpZiBpdCB3YXNuJ3QgY29udHJhY3Rpb24sIHdlIHdvdWxkbid0IGVuZCB1cCBoZXJlCisgICAgICAgIGludCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0ID0gYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAoY2hhcikwLCBDRSk7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMHhGRkZGLCBDRSk7CisgICAgICAgIENFID0gY29uc3RydWN0U3BlY2lhbENFKENFX0NPTlRSQUNUSU9OX1RBR18sIAorICAgICAgICAgICAgICAgICAgICBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0KTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IAorICAgICAgICAvLyB3ZSBhcmUgYWRkaW5nIHRvIGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAvLyB0aGVyZSB3ZXJlIGFscmVhZHkgc29tZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIHNvIHdlIG5lZWQgdG8gCisgICAgICAgIC8vIGFkZCBhIG5ldyBjb250cmFjdGlvbgorICAgICAgICAvLyBUd28gdGhpbmdzIGNhbiBoYXBwZW4gaGVyZTogZWl0aGVyIHRoZSBjb2RlcG9pbnQgaXMgYWxyZWFkeSAKKyAgICAgICAgLy8gaW4gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QgCisgICAgICAgIGludCBwb3NpdGlvbiA9IGZpbmRDUChjb250cmFjdGlvbnMsIENFLCAKKyAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpOworICAgICAgICBpZiAocG9zaXRpb24gPiAwKSB7ICAgICAgIAorICAgICAgICAgICAgLy8gaWYgaXQgaXMgd2UganVzdCBjb250aW51ZSBkb3duIHRoZSBjaGFpbgorICAgICAgICAgICAgaW50IGVDRSA9IGdldENFKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uKTsKKyAgICAgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisgICAgICAgICAgICBzZXRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbiwgCisgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICAgICAgaW5zZXJ0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgCisgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfIC09IGNwc2l6ZTsKKyAgICAgICAgdC5tX21hcHBpbmdfLnNldFZhbHVlKGNwLCBDRSk7CisgICAgfSAKKyAgICBlbHNlIGlmICghaXNDb250cmFjdGlvbihDRSkpIHsgCisgICAgICAgIC8vIHRoaXMgaXMganVzdCBhIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIG5vIGNvbnRyYWN0aW9uIAorICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoY3AsIGVsZW1lbnQubV9tYXBDRV8pOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyBmaWxsIG91dCB0aGUgZmlyc3Qgc3RhZ2Ugb2YgdGhlIGNvbnRyYWN0aW9uIHdpdGggdGhlIHN1cnJvZ2F0ZSAKKyAgICAgICAgLy8gQ0UgCisgICAgICAgIGNoYW5nZUNvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIChjaGFyKTAsIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCAoY2hhcikweEZGRkYsIGVsZW1lbnQubV9tYXBDRV8pOworICAgIH0KKyAgICByZXR1cm4gQ0U7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiB0aGlzIGlzIGZvciBhZGRpbmcgbm9uIGNvbnRyYWN0aW9ucyAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHZhbHVlIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY29sbGF0aW9uIGVsZW1lbnQgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNoYW5nZUxhc3RDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHRibC5tX0NFc18uc2V0KHRibC5tX0NFc18uc2l6ZSgpIC0gMSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQgJiAweEZGRkZGRik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEgc2V0IG9mIHJhbmdlcyBjYWxjdWxhdGVkIGJ5IGFsbG9jV2VpZ2h0cygpLCBpdGVyYXRlIHRocm91Z2ggdGhlIAorICAgICAqIHdlaWdodHMuIFNldHMgdGhlIG5leHQgd2VpZ2h0IGluIGNlZ2VuZXJhdG9yLm1fY3VycmVudF8uCisgICAgICogQHBhcmFtIGNlZ2VuZXJhdG9yIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJhbmdlcyB3ZWlnaHQgcmFuZ2UgYXJyYXkgYW5kCisgICAgICogICAgICAgIGl0cyByYW5nZUNvdW50CisgICAgICogQHJldHVybiB0aGUgbmV4dCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbmV4dFdlaWdodChDRUdlbmVyYXRvciBjZWdlbmVyYXRvcikgCisgICAgeworICAgICAgICBpZiAoY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfID4gMCkgeworICAgICAgICAgICAgLy8gZ2V0IG1heEJ5dGUgZnJvbSB0aGUgLmNvdW50IGZpZWxkCisgICAgICAgICAgICBpbnQgbWF4Qnl0ZSA9IGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX2NvdW50XzsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgbmV4dCB3ZWlnaHQgCisgICAgICAgICAgICBpbnQgd2VpZ2h0ID0gY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fc3RhcnRfOworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9lbmRfKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyByYW5nZSBpcyBmaW5pc2hlZCwgcmVtb3ZlIGl0IGFuZCBtb3ZlIHRoZSBmb2xsb3dpbmcgCisgICAgICAgICAgICAgICAgLy8gb25lcyB1cCAKKyAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc0xlbmd0aF8gLS07CisgICAgICAgICAgICAgICAgaWYgKGNlZ2VuZXJhdG9yLm1fcmFuZ2VzTGVuZ3RoXyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjZWdlbmVyYXRvci5tX3Jhbmdlc18sIDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzXywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfKTsKKyAgICAgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fY291bnRfID0gbWF4Qnl0ZTsgCisgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgbWF4Qnl0ZSBpbiByYW5nZXNbMF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50IHRoZSB3ZWlnaHQgZm9yIHRoZSBuZXh0IHZhbHVlCisgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fc3RhcnRfIAorICAgICAgICAgICAgPSBpbmNXZWlnaHQod2VpZ2h0LCBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9sZW5ndGgyXywgCisgICAgICAgICAgICAgICAgbWF4Qnl0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gd2VpZ2h0OworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5jcmVtZW50IHRoZSBjb2xsYXRpb24gd2VpZ2h0CisgICAgICogQHBhcmFtIHdlaWdodCB0byBpbmNyZW1lbnQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcmV0dXJuIG5ldyBpbmNyZW1lbnRlZCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jV2VpZ2h0KGludCB3ZWlnaHQsIGludCBsZW5ndGgsIGludCBtYXhCeXRlKSAKKyAgICB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgYiA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKGIgPCBtYXhCeXRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgsIGIgKyAxKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyByb2xsIG92ZXIsIHNldCB0aGlzIGJ5dGUgdG8gQllURV9GSVJTVF9UQUlMT1JFRF8gYW5kIAorICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgcHJldmlvdXMgb25lCisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gc2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXyk7CisgICAgICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHdlaWdodCBieXRlCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBpbmRleAorICAgICAqIEByZXR1cm4gYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCkgCisgICAgeworICAgICAgICByZXR1cm4gKHdlaWdodCA+PiAoKDQgLSBpbmRleCkgPDwgMykpICYgMHhmZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB3ZWlnaHQgYnl0ZSBpbiB0YWJsZQorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHBhcmFtIGIgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCwgaW50IGIpIAorICAgIHsKKyAgICAgICAgaW5kZXggPDw9IDM7CisgICAgICAgIC8vIDB4ZmZmZmZmZmYgZXhjZXB0IGEgMDAgImhvbGUiIGZvciB0aGUgaW5kZXgtdGggYnl0ZQorICAgICAgICBpbnQgbWFzayA9IDB4ZmZmZmZmZmYgPj4+IGluZGV4OworICAgICAgICBpbmRleCA9IDMyIC0gaW5kZXg7CisgICAgICAgIG1hc2sgfD0gMHhmZmZmZmYwMCA8PCBpbmRleDsKKyAgICAgICAgcmV0dXJuICh3ZWlnaHQgJiBtYXNrKSB8IChiIDw8IGluZGV4KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsbCBnZXRXZWlnaHRSYW5nZXMgYW5kIHRoZW4gZGV0ZXJtaW5lIGhldXJpc3RpY2FsbHkgd2hpY2ggcmFuZ2VzIHRvIAorICAgICAqIHVzZSBmb3IgYSBnaXZlbiBudW1iZXIgb2Ygd2VpZ2h0cyBiZXR3ZWVuIChleGNsdWRpbmcpIHR3byBsaW1pdHMKKyAgICAgKiBAcGFyYW0gbG93ZXJMaW1pdAorICAgICAqIEBwYXJhbSB1cHBlckxpbWl0CisgICAgICogQHBhcmFtIG4KKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSByYW5nZXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWxsb2NhdGVXZWlnaHRzKGludCBsb3dlckxpbWl0LCBpbnQgdXBwZXJMaW1pdCwgaW50IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhCeXRlLCBXZWlnaHRSYW5nZSByYW5nZXNbXSkgCisgICAgeworICAgICAgICAvLyBudW1iZXIgb2YgdXNhYmxlIGJ5dGUgdmFsdWVzIDMuLm1heEJ5dGUKKyAgICAgICAgaW50IGNvdW50Qnl0ZXMgPSBtYXhCeXRlIC0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8gKyAxOworICAgICAgICAvLyBbMF0gdW51c2VkLCBbNV0gdG8gbWFrZSBpbmRleCBjaGVja3MgdW5uZWNlc3NhcnksIG1fdXRpbENvdW50QnVmZmVyXworICAgICAgICAvLyBjb3VudEJ5dGVzIHRvIHRoZSBwb3dlciBvZiBpbmRleCwgbV91dGlsTG9uZ0J1ZmZlcl8gZm9yIHVuc2lnbmVkbmVzcworICAgICAgICAvLyBnY2MgcmVxdWlyZXMgZXhwbGljaXQgaW5pdGlhbGl6YXRpb24gCisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzBdID0gMTsKKyAgICAgICAgbV91dGlsTG9uZ0J1ZmZlcl9bMV0gPSBjb3VudEJ5dGVzOworICAgICAgICBtX3V0aWxMb25nQnVmZmVyX1syXSA9IG1fdXRpbExvbmdCdWZmZXJfWzFdICogY291bnRCeXRlczsKKyAgICAgICAgbV91dGlsTG9uZ0J1ZmZlcl9bM10gPSBtX3V0aWxMb25nQnVmZmVyX1syXSAqIGNvdW50Qnl0ZXM7CisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzRdID0gbV91dGlsTG9uZ0J1ZmZlcl9bM10gKiBjb3VudEJ5dGVzOworICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IGdldFdlaWdodFJhbmdlcyhsb3dlckxpbWl0LCB1cHBlckxpbWl0LCBtYXhCeXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRCeXRlcywgcmFuZ2VzKTsKKyAgICAgICAgaWYgKHJhbmdlQ291bnQgPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gd2hhdCBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygd2VpZ2h0cyB3aXRoIHRoZXNlIHJhbmdlcz8KKyAgICAgICAgbG9uZyBtYXhDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VDb3VudDsgKysgaSkgeworICAgICAgICAgICAgbWF4Q291bnQgKz0gKGxvbmcpcmFuZ2VzW2ldLm1fY291bnRfIAorICAgICAgICAqIG1fdXRpbExvbmdCdWZmZXJfWzQgLSByYW5nZXNbaV0ubV9sZW5ndGhfXTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWF4Q291bnQgPCBuKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgdGhlIGxlbmd0aDIgYW5kIGNvdW50MiBmaWVsZHMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICByYW5nZXNbaV0ubV9sZW5ndGgyXyA9IHJhbmdlc1tpXS5tX2xlbmd0aF87CisgICAgICAgICAgICByYW5nZXNbaV0ubV9jb3VudDJfID0gcmFuZ2VzW2ldLm1fY291bnRfOworICAgICAgICB9CisgICAgICAgIC8vIHRyeSB1bnRpbCB3ZSBmaW5kIHN1aXRhYmx5IGxhcmdlIHJhbmdlcworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gZ2V0IHRoZSBzbWFsbGVzdCBudW1iZXIgb2YgYnl0ZXMgaW4gYSByYW5nZQorICAgICAgICAgICAgaW50IG1pbkxlbmd0aCA9IHJhbmdlc1swXS5tX2xlbmd0aDJfOworICAgICAgICAgICAgLy8gc3VtIHVwIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgaW50byByYW5nZXMgb2YgZWFjaCBieXRlIAorICAgICAgICAgICAgLy8gbGVuZ3RoCisgICAgICAgICAgICBBcnJheXMuZmlsbChtX3V0aWxDb3VudEJ1ZmZlcl8sIDApOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnRCdWZmZXJfW3Jhbmdlc1tpXS5tX2xlbmd0aDJfXSArPSByYW5nZXNbaV0ubV9jb3VudDJfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm93IHRyeSB0byBhbGxvY2F0ZSBuIGVsZW1lbnRzIGluIHRoZSBhdmFpbGFibGUgc2hvcnQgcmFuZ2VzIAorICAgICAgICAgICAgaWYgKG4gPD0gbV91dGlsQ291bnRCdWZmZXJfW21pbkxlbmd0aF0gCisgICAgICAgICsgbV91dGlsQ291bnRCdWZmZXJfW21pbkxlbmd0aCArIDFdKSB7CisgICAgICAgICAgICAgICAgLy8gdHJpdmlhbCBjYXNlcywgdXNlIHRoZSBmaXJzdCBmZXcgcmFuZ2VzCisgICAgICAgICAgICAgICAgbWF4Q291bnQgPSAwOworICAgICAgICAgICAgICAgIHJhbmdlQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4Q291bnQgKz0gcmFuZ2VzW3JhbmdlQ291bnRdLm1fY291bnQyXzsKKyAgICAgICAgICAgICAgICAgICAgKysgcmFuZ2VDb3VudDsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuID4gbWF4Q291bnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKG4gPD0gcmFuZ2VzWzBdLm1fY291bnQyXyAqIGNvdW50Qnl0ZXMpIHsKKyAgICAgICAgICAgICAgICAvLyBlYXN5IGNhc2UsIGp1c3QgbWFrZSB0aGlzIG9uZSByYW5nZSBsYXJnZSBlbm91Z2ggYnkgCisgICAgICAgICAgICAgICAgLy8gbGVuZ3RoZW5pbmcgaXQgb25jZSBtb3JlLCBwb3NzaWJseSBzcGxpdCBpdAorICAgICAgICAgICAgICAgIHJhbmdlQ291bnQgPSAxOworICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBob3cgdG8gc3BsaXQgdGhlIHJhbmdlIGJldHdlZW4gbWF4TGVuZ3RoLTEgCisgICAgICAgICAgICAgICAgLy8gKGNvdW50MSkgYW5kIG1heExlbmd0aCAoY291bnQyKSAKKyAgICAgICAgICAgICAgICBsb25nIHBvd2VyXzEgCisgICAgICAgICAgICA9IG1fdXRpbExvbmdCdWZmZXJfW21pbkxlbmd0aCAtIHJhbmdlc1swXS5tX2xlbmd0aF9dOworICAgICAgICAgICAgICAgIGxvbmcgcG93ZXIgPSBwb3dlcl8xICogY291bnRCeXRlczsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQyID0gKGludCkoKG4gKyBwb3dlciAtIDEpIC8gcG93ZXIpOworICAgICAgICAgICAgICAgIGludCBjb3VudDEgPSByYW5nZXNbMF0ubV9jb3VudF8gLSBjb3VudDI7CisgICAgICAgICAgICAgICAgLy8gc3BsaXQgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgaWYgKGNvdW50MSA8IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoZW4gdGhlIGVudGlyZSByYW5nZSB0byBtYXhMZW5ndGggCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCAwLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyByZWFsbHkgc3BsaXQgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyByYW5nZSB3aXRoIHRoZSBlbmQgYW5kIGluaXRpYWwgYW5kIGN1cnJlbnQgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgb2xkIG9uZQorICAgICAgICAgICAgICAgICAgICByYW5nZUNvdW50ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fZW5kXyA9IHJhbmdlc1swXS5tX2VuZF87CisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2xlbmd0aF8gPSByYW5nZXNbMF0ubV9sZW5ndGhfOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9sZW5ndGgyXyA9IG1pbkxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBlbmQgb2YgdGhlIGZpcnN0IHJhbmdlIGFjY29yZGluZyB0byBjb3VudDEKKyAgICAgICAgICAgICAgICAgICAgaW50IGkgPSByYW5nZXNbMF0ubV9sZW5ndGhfOworICAgICAgICAgICAgICAgICAgICBpbnQgYiA9IGdldFdlaWdodEJ5dGUocmFuZ2VzWzBdLm1fc3RhcnRfLCBpKSArIGNvdW50MSAtIDE7CisgICAgICAgICAgICAgICAgICAgIC8vIHJhbmdlc1swXS5jb3VudCBhbmQgY291bnQxIG1heSBiZSA+Y291bnRCeXRlcyBmcm9tIAorICAgICAgICAgICAgICAgICAgICAvLyBtZXJnaW5nIGFkamFjZW50IHJhbmdlczsgYiA+IG1heEJ5dGUgaXMgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGIgPD0gbWF4Qnl0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzBdLm1fZW5kXyA9IHNldFdlaWdodEJ5dGUocmFuZ2VzWzBdLm1fc3RhcnRfLCBpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIpOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSBzZXRXZWlnaHRCeXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNXZWlnaHQocmFuZ2VzWzBdLm1fc3RhcnRfLCBpIC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgYiAtIGNvdW50Qnl0ZXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgYnl0ZXMgaW4gdGhlIGVuZCB3ZWlnaHQgYXQgbGVuZ3RoICsgMS4ubGVuZ3RoMiAKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWF4Qnl0ZQorICAgICAgICAgICAgICAgICAgICBiID0gKG1heEJ5dGUgPDwgMjQpIHwgKG1heEJ5dGUgPDwgMTYpIHwgKG1heEJ5dGUgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgbWF4Qnl0ZTsgLy8gdGhpcyB1c2VkIHRvIGJlIDB4ZmZmZmZmZmYgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSB0cnVuY2F0ZVdlaWdodChyYW5nZXNbMF0ubV9lbmRfLCBpKSAKKyAgICAgICAgICAgIHwgKGIgPj4+IChpIDw8IDMpKSAKKyAgICAgICAgICAgICYgKGIgPDwgKCg0IC0gbWluTGVuZ3RoKSA8PCAzKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhcnQgb2YgdGhlIHNlY29uZCByYW5nZSB0byBpbW1lZGlhdGVseSBmb2xsb3cgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGZpcnN0IG9uZQorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9zdGFydF8gPSBpbmNXZWlnaHQocmFuZ2VzWzBdLm1fZW5kXywgbWluTGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpOworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGNvdW50IHZhbHVlcyAoaW5mb3JtYXRpb25hbCkKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzBdLm1fY291bnRfID0gY291bnQxOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9jb3VudF8gPSBjb3VudDI7CisgICAgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2NvdW50Ml8gPSAoaW50KShjb3VudDEgKiBwb3dlcl8xKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSAqY291bnRCeXRlcyB3aGVuIGxlbmd0aGVuZWQgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2NvdW50Ml8gPSAoaW50KShjb3VudDIgKiBwb3dlcl8xKTsgCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aGVuIHRoZSBzZWNvbmQgcmFuZ2UgdG8gbWF4TGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCAxLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBubyBnb29kIG1hdGNoLCBsZW5ndGhlbiBhbGwgbWluTGVuZ3RoIHJhbmdlcyBhbmQgaXRlcmF0ZSAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgcmFuZ2VzW2ldLm1fbGVuZ3RoMl8gPT0gbWluTGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoZW5SYW5nZShyYW5nZXMsIGksIG1heEJ5dGUsIGNvdW50Qnl0ZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChyYW5nZUNvdW50ID4gMSkgeworICAgICAgICAgICAgLy8gc29ydCB0aGUgcmFuZ2VzIGJ5IHdlaWdodCB2YWx1ZXMgCisgICAgICAgICAgICBBcnJheXMuc29ydChyYW5nZXMsIDAsIHJhbmdlQ291bnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHNldCBtYXhCeXRlIGluIHJhbmdlc1swXSBmb3IgdWNvbF9uZXh0V2VpZ2h0KCkKKyAgICAgICAgcmFuZ2VzWzBdLm1fY291bnRfID0gbWF4Qnl0ZTsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJhbmdlQ291bnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZGF0ZXMgdGhlIHJhbmdlIGxlbmd0aAorICAgICAqIEBwYXJhbSByYW5nZSB3ZWlnaHQgcmFuZ2UgYXJyYXkKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHdlaWdodCByYW5nZSBhcnJheQorICAgICAqIEBwYXJhbSBtYXhCeXRlCisgICAgICogQHBhcmFtIGNvdW50Qnl0ZXMKKyAgICAgKiBAcmV0dXJuIG5ldyBsZW5ndGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoZW5SYW5nZShXZWlnaHRSYW5nZSByYW5nZVtdLCBpbnQgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4Qnl0ZSwgaW50IGNvdW50Qnl0ZXMpIAorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IHJhbmdlW29mZnNldF0ubV9sZW5ndGgyXyArIDE7CisgICAgICAgIHJhbmdlW29mZnNldF0ubV9zdGFydF8gPSBzZXRXZWlnaHRUcmFpbChyYW5nZVtvZmZzZXRdLm1fc3RhcnRfLCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fZW5kXyA9IHNldFdlaWdodFRyYWlsKHJhbmdlW29mZnNldF0ubV9lbmRfLCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fY291bnQyXyAqPSBjb3VudEJ5dGVzOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fbGVuZ3RoMl8gPSBsZW5ndGg7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHdlaWdodCAKKyAgICAgKiBAcGFyYW0gd2VpZ2h0CisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEBwYXJhbSB0cmFpbAorICAgICAqIEByZXR1cm4gbmV3IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzZXRXZWlnaHRUcmFpbChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoLCBpbnQgdHJhaWwpIAorICAgIHsKKyAgICAgICAgbGVuZ3RoID0gKDQgLSBsZW5ndGgpIDw8IDM7CisgICAgICAgIHJldHVybiAod2VpZ2h0ICYgKDB4ZmZmZmZmMDAgPDwgbGVuZ3RoKSkgfCAodHJhaWwgPDwgbGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogdGFrZSB0d28gQ0Ugd2VpZ2h0cyBhbmQgY2FsY3VsYXRlIHRoZQorICAgICAqIHBvc3NpYmxlIHJhbmdlcyBvZiB3ZWlnaHRzIGJldHdlZW4gdGhlIHR3byBsaW1pdHMsIGV4Y2x1ZGluZyB0aGVtCisgICAgICogZm9yIHdlaWdodHMgd2l0aCB1cCB0byA0IGJ5dGVzIHRoZXJlIGFyZSB1cCB0byAyKjQtMT03IHJhbmdlcworICAgICAqIEBwYXJhbSBsb3dlckxpbWl0CisgICAgICogQHBhcmFtIHVwcGVyTGltaXQKKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSBjb3VudEJ5dGVzCisgICAgICogQHBhcmFtIHJhbmdlcworICAgICAqIEByZXR1cm4gd2VpZ2h0IHJhbmdlcworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFdlaWdodFJhbmdlcyhpbnQgbG93ZXJMaW1pdCwgaW50IHVwcGVyTGltaXQsIGludCBtYXhCeXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Qnl0ZXMsIFdlaWdodFJhbmdlIHJhbmdlc1tdKSAKKyAgICB7CisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGJvdGggbG93ZXJMaW1pdCAmIHVwcGVyTGltaXQgYXJlIG5vdCAwIAorICAgICAgICAvLyBnZXQgdGhlIGxlbmd0aHMgb2YgdGhlIGxpbWl0cyAKKyAgICAgICAgaW50IGxvd2VyTGVuZ3RoID0gbGVuZ3RoT2ZXZWlnaHQobG93ZXJMaW1pdCk7CisgICAgICAgIGludCB1cHBlckxlbmd0aCA9IGxlbmd0aE9mV2VpZ2h0KHVwcGVyTGltaXQpOworICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93ZXJMaW1pdCwgdXBwZXJMaW1pdCkgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2hlY2sgdGhhdCBuZWl0aGVyIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlcgorICAgICAgICBpZiAobG93ZXJMZW5ndGggPCB1cHBlckxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGxvd2VyTGltaXQgPT0gdHJ1bmNhdGVXZWlnaHQodXBwZXJMaW1pdCwgbG93ZXJMZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaWYgdGhlIHVwcGVyIGxpbWl0IGlzIGEgcHJlZml4IG9mIHRoZSBsb3dlciBsaW1pdCB0aGVuIHRoZSBlYXJsaWVyIAorICAgICAgICAvLyB0ZXN0IGxvd2VyTGltaXQgPj0gdXBwZXJMaW1pdCBoYXMgY2F1Z2h0IGl0CisgICAgICAgIC8vIHJlc2V0IGxvY2FsIHZhcmlhYmxlcworICAgICAgICAvLyBXaXRoIHRoZSBsaW1pdCBsZW5ndGhzIG9mIDEuLjQsIHRoZXJlIGFyZSB1cCB0byA3IHJhbmdlcyBmb3IgCisgICAgICAgIC8vIGFsbG9jYXRpb246CisgICAgICAgIC8vIHJhbmdlICAgICBtaW5pbXVtIGxlbmd0aAorICAgICAgICAvLyBsb3dlcls0XSAgNAorICAgICAgICAvLyBsb3dlclszXSAgMworICAgICAgICAvLyBsb3dlclsyXSAgMgorICAgICAgICAvLyBtaWRkbGUgICAgMQorICAgICAgICAvLyB1cHBlclsyXSAgMgorICAgICAgICAvLyB1cHBlclszXSAgMworICAgICAgICAvLyB1cHBlcls0XSAgNAorICAgICAgICAvLyBXZSBhcmUgbm93IGdvaW5nIHRvIGNhbGN1bGF0ZSB1cCB0byA3IHJhbmdlcy4KKyAgICAgICAgLy8gU29tZSBvZiB0aGVtIHdpbGwgdHlwaWNhbGx5IG92ZXJsYXAsIHNvIHdlIHdpbGwgdGhlbiBoYXZlIHRvIG1lcmdlIAorICAgICAgICAvLyBhbmQgZWxpbWluYXRlIHJhbmdlcy4KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGhhdmUgdG8gY2xlYW4gY3J1ZnQgZnJvbSBwcmV2aW91cyBpbnZvY2F0aW9ucworICAgICAgICAvLyBiZWZvcmUgZG9pbmcgYW55dGhpbmcuIEMrKyBhbHJlYWR5IGRvZXMgdGhhdAorICAgICAgICBmb3IoaW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IDU7IGxlbmd0aCsrKSB7CisgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLmNsZWFyKCk7CisgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICBpbnQgd2VpZ2h0ID0gbG93ZXJMaW1pdDsKKyAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gbG93ZXJMZW5ndGg7IGxlbmd0aCA+PSAyOyAtLSBsZW5ndGgpIHsKKyAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0uY2xlYXIoKTsKKyAgICAgICAgICAgIGludCB0cmFpbCA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKHRyYWlsIDwgbWF4Qnl0ZSkgeworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF8gCisgICAgICAgICAgICA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgID0gc2V0V2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgsIG1heEJ5dGUpOworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSBtYXhCeXRlIC0gdHJhaWw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3ZWlnaHQgPSB0cnVuY2F0ZVdlaWdodCh3ZWlnaHQsIGxlbmd0aCAtIDEpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX3N0YXJ0XyA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgMSk7CisgICAgCisgICAgICAgIHdlaWdodCA9IHVwcGVyTGltaXQ7CisgICAgICAgIC8vIFswXSBhbmQgWzFdIGFyZSBub3QgdXNlZCAtIHRoaXMgc2ltcGxpZmllcyBpbmRleGluZywgCisgICAgICAgIC8vIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfCisgICAgICAgIAorICAgICAgICBmb3IgKGludCBsZW5ndGggPSB1cHBlckxlbmd0aDsgbGVuZ3RoID49IDI7IGxlbmd0aCAtLSkgeworICAgICAgICAgICAgaW50IHRyYWlsID0gZ2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCk7CisgICAgICAgICAgICBpZiAodHJhaWwgPiBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXykgeworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF8gCisgICAgICAgICAgICA9IHNldFdlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfRklSU1RfVEFJTE9SRURfKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgID0gZGVjV2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSB0cmFpbAorICAgICAgICAgICAgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdlaWdodCA9IHRydW5jYXRlV2VpZ2h0KHdlaWdodCwgbGVuZ3RoIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fZW5kXyA9IGRlY1dlaWdodFRyYWlsKHdlaWdodCwgMSk7CisgICAgCisgICAgICAgIC8vIHNldCB0aGUgbWlkZGxlIHJhbmdlCisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX2xlbmd0aF8gPSAxOworICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobV91dGlsV2VpZ2h0UmFuZ2VfLm1fZW5kXywgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSA+PSAwKSB7CisgICAgICAgIC8vaWYgKG1fdXRpbFdlaWdodFJhbmdlXy5tX2VuZF8gPj0gbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSB7CisgICAgICAgICAgICBtX3V0aWxXZWlnaHRSYW5nZV8ubV9jb3VudF8gCisgICAgICAgID0gKChtX3V0aWxXZWlnaHRSYW5nZV8ubV9lbmRfIC0gbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSAKKyAgICAgICAgICAgPj4+IDI0KSArIDE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZWxpbWluYXRlIG92ZXJsYXBzCisgICAgICAgICAgICAvLyByZW1vdmUgdGhlIG1pZGRsZSByYW5nZQorICAgICAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fY291bnRfID0gMDsKKyAgICAgICAgICAgIC8vIHJlZHVjZSBvciByZW1vdmUgdGhlIGxvd2VyIHJhbmdlcyB0aGF0IGdvIGJleW9uZCB1cHBlckxpbWl0CisgICAgICAgICAgICBmb3IgKGludCBsZW5ndGggPSA0OyBsZW5ndGggPj0gMjsgLS0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPiAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2VuZF87CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPj0gc3RhcnQgfHwgaW5jV2VpZ2h0KGVuZCwgbGVuZ3RoLCBtYXhCeXRlKSAKKyAgICAgICAgICAgID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgcmFuZ2VzIGNvbGxpZGUgb3IgYXJlIGRpcmVjdGx5IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRqYWNlbnQ6IG1lcmdlIHRoZXNlIHR3byBhbmQgcmVtb3ZlIGFsbCBzaG9ydGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFuZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF87CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9lbmRfOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2luZyBkaXJlY3RseSBhZGphY2VudCByYW5nZXMgbmVlZHMgdG8gc3VidHJhY3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgMC8xIGdhcHMgaW4gYmV0d2VlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IG1heSByZXN1bHQgaW4gYSByYW5nZSB3aXRoIGNvdW50PmNvdW50Qnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gCisgICAgICAgICAgICAgICAgPSBnZXRXZWlnaHRCeXRlKGVuZCwgbGVuZ3RoKQorICAgICAgICAgICAgICAgIC0gZ2V0V2VpZ2h0Qnl0ZShzdGFydCwgbGVuZ3RoKSArIDEgCisgICAgICAgICAgICAgICAgKyBjb3VudEJ5dGVzICogKGdldFdlaWdodEJ5dGUoZW5kLCBsZW5ndGggLSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgLSBnZXRXZWlnaHRCeXRlKHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIC0gMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoLS0gbGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gY29weSB0aGUgcmFuZ2VzLCBzaG9ydGVzdCBmaXJzdCwgaW50byB0aGUgcmVzdWx0IGFycmF5IAorICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IDA7CisgICAgICAgIGlmIChtX3V0aWxXZWlnaHRSYW5nZV8ubV9jb3VudF8gPiAwKSB7CisgICAgICAgICAgICByYW5nZXNbMF0gPSBuZXcgV2VpZ2h0UmFuZ2UobV91dGlsV2VpZ2h0UmFuZ2VfKTsKKyAgICAgICAgICAgIHJhbmdlQ291bnQgPSAxOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGxlbmd0aCA9IDI7IGxlbmd0aCA8PSA0OyArKyBsZW5ndGgpIHsKKyAgICAgICAgICAgIC8vIGNvcHkgdXBwZXIgZmlyc3Qgc28gdGhhdCBsYXRlciB0aGUgbWlkZGxlIHJhbmdlIGlzIG1vcmUgbGlrZWx5IAorICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9uZSB0byB1c2UKKyAgICAgICAgICAgIGlmIChtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgICAgIHJhbmdlc1tyYW5nZUNvdW50XSAKKyAgICAgICAgICAgID0gbmV3IFdlaWdodFJhbmdlKG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0pOworICAgICAgICAgICAgICAgICsrIHJhbmdlQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICByYW5nZXNbcmFuZ2VDb3VudF0gCisgICAgICAgICAgICA9IG5ldyBXZWlnaHRSYW5nZShtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdKTsKKyAgICAgICAgICAgICAgICArKyByYW5nZUNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUNvdW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnVuY2F0ZXMgdGhlIHdlaWdodCB3aXRoIGxlbmd0aAorICAgICAqIEBwYXJhbSB3ZWlnaHQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHJldHVybiB0cnVuY2F0ZWQgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRydW5jYXRlV2VpZ2h0KGludCB3ZWlnaHQsIGludCBsZW5ndGgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlaWdodCAmICgweGZmZmZmZmZmIDw8ICgoNCAtIGxlbmd0aCkgPDwgMykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMZW5ndGggb2YgdGhlIHdlaWdodAorICAgICAqIEBwYXJhbSB3ZWlnaHQKKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiB0aGUgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxlbmd0aE9mV2VpZ2h0KGludCB3ZWlnaHQpIAorICAgIHsKKyAgICAgICAgaWYgKCh3ZWlnaHQgJiAweGZmZmZmZikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKCh3ZWlnaHQgJiAweGZmZmYpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICgod2VpZ2h0ICYgMHhmZikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0gCisgICAgICAgIHJldHVybiA0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnQgdGhlIHdlaWdodCB0cmFpbAorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEByZXR1cm4gbmV3IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbmNXZWlnaHRUcmFpbChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoKSAKKyAgICB7CisgICAgICAgIHJldHVybiB3ZWlnaHQgKyAoMSA8PCAoKDQtbGVuZ3RoKSA8PCAzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjcmVtZW50IHRoZSB3ZWlnaHQgdHJhaWwKKyAgICAgKiBAcGFyYW0gd2VpZ2h0IAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcmV0dXJuIG5ldyB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjV2VpZ2h0VHJhaWwoaW50IHdlaWdodCwgaW50IGxlbmd0aCkgCisgICAgeworICAgICAgICByZXR1cm4gd2VpZ2h0IC0gKDEgPDwgKCg0IC0gbGVuZ3RoKSA8PCAzKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvZGVwb2ludCAKKyAgICAgKiBAcGFyYW0gdGJsIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGNvZGVQb2ludCBjb2RlIHBvaW50IHRvIGxvb2sgZm9yCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IHRvIHRoZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDUChCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsLCBjaGFyIGNvZGVQb2ludCkgCisgICAgeworICAgICAgICBpbnQgcG9zaXRpb24gPSAwOworICAgICAgICB3aGlsZSAoY29kZVBvaW50ID4gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICAgICAgcG9zaXRpb24gKys7CisgICAgICAgICAgICBpZiAocG9zaXRpb24gPiB0YmwubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29kZVBvaW50ID09IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kcyBhIGNvbnRyYWN0aW9uIGNlCisgICAgICogQHBhcmFtIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gY2gKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgY2hhciBjaCkgCisgICAgeworICAgICAgICBpZiAodGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICAgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKHRibCwgY2gpOworICAgICAgICBpZiAocG9zaXRpb24gPiB0YmwubV9DRXNfLnNpemUoKSB8fCBwb3NpdGlvbiA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXRibC5tX0NFc18uZ2V0KHBvc2l0aW9uKSkuaW50VmFsdWUoKTsKKyAgICB9ICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgc3RyaW5nIGlzIHRhaWxvcmVkIGluIHRoZSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IAorICAgICAqIEBwYXJhbSBhcnJheSBjaGFyYWN0ZXIgYXJyYXkgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFycmF5IG9mZnNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBpcyB0YWlsb3JlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNUYWlsb3JlZChDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYXJyYXlbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICB3aGlsZSAoYXJyYXlbb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgICAgICBlbGVtZW50ID0gZmluZENFKHRhYmxlLCBlbGVtZW50LCBhcnJheVtvZmZzZXRdKTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50ID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0Q0UodGFibGUsIGVsZW1lbnQsIDApICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNzZW1ibGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byB1cGRhdGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXNzZW1ibGVUYWJsZShCdWlsZFRhYmxlIHQsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKSAKKyAgICB7CisgICAgICAgIEludFRyaWVCdWlsZGVyIG1hcHBpbmcgPSB0Lm1fbWFwcGluZ187CisgICAgICAgIFZlY3RvciBleHBhbnNpb25zID0gdC5tX2V4cGFuc2lvbnNfOworICAgICAgICBDb250cmFjdGlvblRhYmxlIGNvbnRyYWN0aW9ucyA9IHQubV9jb250cmFjdGlvbnNfOworICAgICAgICBNYXhFeHBhbnNpb25UYWJsZSBtYXhleHBhbnNpb24gPSB0Lm1fbWF4RXhwYW5zaW9uc187CisgICAgICAgIAorICAgICAgICAvLyBjb250cmFjdGlvbiBvZmZzZXQgaGFzIHRvIGJlIGluIHNpbmNlIHdlIGFyZSBidWlsZGluZyBvbiB0aGUgCisgICAgICAgIC8vIFVDQSBjb250cmFjdGlvbnMgCisgICAgICAgIC8vIGludCBiZWZvcmVDb250cmFjdGlvbnMgPSAoSEVBREVSX1NJWkVfIAorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICArIHBhZGRlZHNpemUoZXhwYW5zaW9ucy5zaXplKCkgPDwgMikpID4+PiAxOworICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IDA7CisgICAgICAgIGludCBjb250cmFjdGlvbnNTaXplID0gY29uc3RydWN0VGFibGUoY29udHJhY3Rpb25zKTsKKyAgICAgICAgCisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uIGRlcGVuZHMgb24gdGhlIHRyaWUgZGF0YS4gVGhlcmVmb3JlLCB3ZSBoYXZlIAorICAgICAgICAvLyB0byBkbyBpdCBiZWZvcmUgdGhlIHRyaWUgaXMgY29tcGFjdGVkIAorICAgICAgICAvLyBzZXRzIGphbW8gZXhwYW5zaW9ucworICAgICAgICBnZXRNYXhFeHBhbnNpb25KYW1vKG1hcHBpbmcsIG1heGV4cGFuc2lvbiwgdC5tX21heEphbW9FeHBhbnNpb25zXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE86IExBVElOMSBhcnJheSBpcyBub3cgaW4gdGhlIHV0cmllIC0gaXQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSAKKyAgICAgICAgLy8gdGhlIGNhbGN1bGF0aW9uCisgICAgICAgIHNldEF0dHJpYnV0ZXMoY29sbGF0b3IsIHQubV9vcHRpb25zXyk7CisgICAgICAgIC8vIGNvcHkgZXhwYW5zaW9ucworICAgICAgICBpbnQgc2l6ZSA9IGV4cGFuc2lvbnMuc2l6ZSgpOworICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl8gPSBuZXcgaW50W3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tpXSA9ICgoSW50ZWdlcilleHBhbnNpb25zLmdldChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjb250cmFjdGlvbnMgYmxvY2sgCisgICAgICAgIGlmIChjb250cmFjdGlvbnNTaXplICE9IDApIHsKKyAgICAgICAgICAgIC8vIGNvcHkgY29udHJhY3Rpb24gaW5kZXggCisgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfID0gbmV3IGNoYXJbY29udHJhY3Rpb25zU2l6ZV07CisgICAgICAgICAgICBjb250cmFjdGlvbnMubV9jb2RlUG9pbnRzXy5nZXRDaGFycygwLCBjb250cmFjdGlvbnNTaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgICAgICAvLyBjb3B5IGNvbnRyYWN0aW9uIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkNFXyA9IG5ldyBpbnRbY29udHJhY3Rpb25zU2l6ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRyYWN0aW9uc1NpemU7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2ldID0gKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25zLm1fQ0VzXy5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY29weSBtYXBwaW5nIHRhYmxlCisgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8gPSBtYXBwaW5nLnNlcmlhbGl6ZSh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5EYXRhTWFuaXB1bGF0ZS5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgLy8gY29weSBtYXggZXhwYW5zaW9uIHRhYmxlCisgICAgICAgIC8vIG5vdCBjb3B5aW5nIHRoZSBmaXJzdCBlbGVtZW50IHdoaWNoIGlzIGEgZHVtbXkKKyAgICAgICAgLy8gdG8gYmUgaW4gc3luY2ggd2l0aCBpY3U0YydzIGJ1aWxkZXIsIHdlIGNvbnRpbnVlIHRvIHVzZSB0aGUgCisgICAgICAgIC8vIGV4cGFuc2lvbiBvZmZzZXQKKyAgICAgICAgLy8gb21pdHRpbmcgZXhwYW5zaW9uIG9mZnNldCBpbiBidWlsZGVyCisgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uT2Zmc2V0XyA9IDA7IAorICAgICAgICBzaXplID0gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRV8gPSBuZXcgaW50W3NpemUgLSAxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbkVuZENFX1tpIC0gMV0gPSAoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV8gPSBuZXcgYnl0ZVtzaXplIC0gMV07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRU1heFNpemVfW2kgLSAxXSAKKyAgICAgICAgPSAoKEJ5dGUpbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5nZXQoaSkpLmJ5dGVWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIC8vIFVuc2FmZSBjaGFycyB0YWJsZS4gIEZpbmlzaCBpdCBvZmYsIHRoZW4gY29weSBpdC4KKyAgICAgICAgdW5zYWZlQ1BBZGRDQ05aKHQpOworICAgICAgICAvLyBPciBpbiB1bnNhZmViaXRzIGZyb20gVUNBLCBtYWtpbmcgYSBjb21iaW5lZCB0YWJsZS4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVTlNBRkVDUF9UQUJMRV9TSVpFXzsgaSArKykgeyAgICAKKyAgICAgICAgdC5tX3Vuc2FmZUNQX1tpXSB8PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdW5zYWZlX1tpXTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX3Vuc2FmZV8gPSB0Lm1fdW5zYWZlQ1BfOworICAgIAorICAgICAgICAvLyBGaW5pc2ggYnVpbGRpbmcgQ29udHJhY3Rpb24gRW5kaW5nIGNoYXJzIGhhc2ggdGFibGUgYW5kIHRoZW4gY29weSBpdCAKKyAgICAgICAgLy8gb3V0LgorICAgICAgICAvLyBPciBpbiB1bnNhZmViaXRzIGZyb20gVUNBLCBtYWtpbmcgYSBjb21iaW5lZCB0YWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOU0FGRUNQX1RBQkxFX1NJWkVfOyBpICsrKSB7ICAgIAorICAgICAgICB0Lm1fY29udHJFbmRDUF9baV0gfD0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX2NvbnRyYWN0aW9uRW5kX1tpXTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uRW5kXyA9IHQubV9jb250ckVuZENQXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIGNvbGxhdG9yIHRvIHVzZSB0aGUgYWxsIG9wdGlvbnMgYW5kIHRhYmxlcyBpbiBVQ0EuIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciB3aGljaCBhdHRyaWJ1dGUgaXMgdG8gYmUgc2V0IAorICAgICAqIEBwYXJhbSBvcHRpb24gdG8gc2V0IHdpdGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHNldEF0dHJpYnV0ZXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLk9wdGlvblNldCBvcHRpb24pCisgICAgeworICAgICAgICBjb2xsYXRvci5sYXRpbk9uZUZhaWxlZF8gPSB0cnVlOworICAgICAgICBjb2xsYXRvci5tX2Nhc2VGaXJzdF8gPSBvcHRpb24ubV9jYXNlRmlyc3RfOworICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKG9wdGlvbi5tX2RlY29tcG9zaXRpb25fKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyk7CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbChvcHRpb24ubV9pc0Nhc2VMZXZlbF8pOworICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24ob3B0aW9uLm1faXNGcmVuY2hDb2xsYXRpb25fKTsKKyAgICAgICAgY29sbGF0b3IubV9pc0hpcmFnYW5hNF8gPSBvcHRpb24ubV9pc0hpcmFnYW5hNF87CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKG9wdGlvbi5tX3N0cmVuZ3RoXyk7CisgICAgICAgIGNvbGxhdG9yLm1fdmFyaWFibGVUb3BWYWx1ZV8gPSBvcHRpb24ubV92YXJpYWJsZVRvcFZhbHVlXzsgICAgCisgICAgICAgIGNvbGxhdG9yLmxhdGluT25lRmFpbGVkXyA9IGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RpbmcgdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb25zdHJ1Y3RUYWJsZShDb250cmFjdGlvblRhYmxlIHRhYmxlKSAKKyAgICB7CisgICAgICAgIC8vIFNlZSBob3cgbXVjaCBtZW1vcnkgd2UgbmVlZCAKKyAgICAgICAgaW50IHRzaXplID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpOworICAgICAgICBpZiAodHNpemUgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgdGFibGUubV9vZmZzZXRzXy5jbGVhcigpOworICAgICAgICBpbnQgcG9zaXRpb24gPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRzaXplOyBpICsrKSB7CisgICAgICAgICAgICB0YWJsZS5tX29mZnNldHNfLmFkZChuZXcgSW50ZWdlcihwb3NpdGlvbikpOworICAgICAgICAgICAgcG9zaXRpb24gKz0gKChCYXNpY0NvbnRyYWN0aW9uVGFibGUpCisgICAgICAgICAgICAgdGFibGUubV9lbGVtZW50c18uZ2V0KGkpKS5tX0NFc18uc2l6ZSgpOworICAgICAgICB9CisgICAgICAgIHRhYmxlLm1fQ0VzXy5jbGVhcigpOworICAgICAgICB0YWJsZS5tX2NvZGVQb2ludHNfLmRlbGV0ZSgwLCB0YWJsZS5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKTsKKyAgICAgICAgLy8gTm93IHN0dWZmIHRoZSB0aGluZ3MgaW4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGNwUG9pbnRlciA9IHRhYmxlLm1fY29kZVBvaW50c187CisgICAgICAgIFZlY3RvciBDRVBvaW50ZXIgPSB0YWJsZS5tX0NFc187CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSBiY3QgPSAoQmFzaWNDb250cmFjdGlvblRhYmxlKQorICAgICAgICB0YWJsZS5tX2VsZW1lbnRzXy5nZXQoaSk7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IGJjdC5tX0NFc18uc2l6ZSgpOworICAgICAgICAgICAgY2hhciBjY01heCA9IDA7CisgICAgICAgICAgICBjaGFyIGNjTWluID0gMjU1OworICAgICAgICAgICAgaW50IG9mZnNldCA9IENFUG9pbnRlci5zaXplKCk7CisgICAgICAgICAgICBDRVBvaW50ZXIuYWRkKGJjdC5tX0NFc18uZ2V0KDApKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgc2l6ZTsgaiArKykgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBiY3QubV9jb2RlUG9pbnRzXy5jaGFyQXQoaik7CisgICAgICAgICAgICAgICAgY2hhciBjYyA9IChjaGFyKShVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNoKSAmIDB4RkYpOworICAgICAgICAgICAgICAgIGlmIChjYyA+IGNjTWF4KSB7CisgICAgICAgICAgICAgICAgICAgIGNjTWF4ID0gY2M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjYyA8IGNjTWluKSB7CisgICAgICAgICAgICAgICAgICAgIGNjTWluID0gY2M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNwUG9pbnRlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIENFUG9pbnRlci5hZGQoYmN0Lm1fQ0VzXy5nZXQoaikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3BQb2ludGVyLmluc2VydChvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoKChjY01pbiA9PSBjY01heCkgPyAxIDogMCA8PCA4KSB8IGNjTWF4KSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudCgoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDRVBvaW50ZXIuZ2V0KG9mZnNldCArIGopKS5pbnRWYWx1ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSAoKEludGVnZXIpQ0VQb2ludGVyLmdldChvZmZzZXQgKyBqKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgQ0VQb2ludGVyLnNldChvZmZzZXQgKyBqLCAKKyAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKGNvbnN0cnVjdFNwZWNpYWxDRShnZXRDRVRhZyhjZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChJbnRlZ2VyKXRhYmxlLm1fb2Zmc2V0c18uZ2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29udHJhY3Rpb25PZmZzZXQoY2UpKSkuaW50VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBDRSA9IHRhYmxlLm1fbWFwcGluZ18uZ2V0VmFsdWUoaSk7CisgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChDRSkpIHsKKyAgICAgICAgICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShnZXRDRVRhZyhDRSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlcil0YWJsZS5tX29mZnNldHNfLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRyYWN0aW9uT2Zmc2V0KENFKSkpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIHRhYmxlLm1fbWFwcGluZ18uc2V0VmFsdWUoaSwgQ0UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGNvbnRyYWN0aW9uIG9mZnNldAorICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudCAKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDb250cmFjdGlvbk9mZnNldChpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gY2UgJiAweEZGRkZGRjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBKYW1vIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBtYXBwaW5nIHRyaWUgdGFibGUKKyAgICAgKiBAcGFyYW0gbWF4ZXhwYW5zaW9uIG1heGltdW0gZXhwYW5zaW9uIHRhYmxlCisgICAgICogQHBhcmFtIG1heGphbW9leHBhbnNpb24gbWF4aW11bSBqYW1vIGV4cGFuc2lvbiB0YWJsZQorICAgICAqIEBwYXJhbSBqYW1vc3BlY2lhbCBpcyBqYW1vIHNwZWNpYWw/CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBnZXRNYXhFeHBhbnNpb25KYW1vKEludFRyaWVCdWlsZGVyIG1hcHBpbmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhFeHBhbnNpb25UYWJsZSBtYXhleHBhbnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gamFtb3NwZWNpYWwpCisgICAgeworICAgICAgICBpbnQgVkJBU0UgID0gMHgxMTYxOworICAgICAgICBpbnQgVEJBU0UgID0gMHgxMUE4OworICAgICAgICBpbnQgVkNPVU5UID0gMjE7CisgICAgICAgIGludCBUQ09VTlQgPSAyODsKKyAgICAgICAgaW50IHYgPSBWQkFTRSArIFZDT1VOVCAtIDE7CisgICAgICAgIGludCB0ID0gVEJBU0UgKyBUQ09VTlQgLSAxOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHYgPj0gVkJBU0UpIHsKKyAgICAgICAgICAgIGludCBjZSA9IG1hcHBpbmcuZ2V0VmFsdWUodik7CisgICAgICAgICAgICBpZiAoKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXykgCisgICAgICAgICE9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIHsKKyAgICAgICAgICAgICAgICBzZXRNYXhFeHBhbnNpb24oY2UsIChieXRlKTIsIG1heGV4cGFuc2lvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2IC0tOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aGlsZSAodCA+PSBUQkFTRSkKKyAgICAgICAgeworICAgICAgICBpbnQgY2UgPSBtYXBwaW5nLmdldFZhbHVlKHQpOworICAgICAgICBpZiAoKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXykgCisgICAgICAgICAgICAhPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSB7CisgICAgICAgICAgICBzZXRNYXhFeHBhbnNpb24oY2UsIChieXRlKTMsIG1heGV4cGFuc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgdCAtLTsKKyAgICAgICAgfQorICAgICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIGRvY3MsIDk5JSBvZiB0aGUgdGltZSwgdGhlIEphbW8gd2lsbCBub3QgYmUgc3BlY2lhbCAKKyAgICAgICAgaWYgKGphbW9zcGVjaWFsKSB7CisgICAgICAgICAgICAvLyBnZXRzIHRoZSBtYXggZXhwYW5zaW9uIGluIGFsbCB1bmljb2RlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGludCBjb3VudCA9IG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgICAgICAgICAgYnl0ZSBtYXhUU2l6ZSA9IChieXRlKShtYXhqYW1vZXhwYW5zaW9uLm1fbWF4TFNpemVfICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9tYXhWU2l6ZV8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLm1fbWF4VFNpemVfKTsKKyAgICAgICAgICAgIGJ5dGUgbWF4VlNpemUgPSAoYnl0ZSkobWF4amFtb2V4cGFuc2lvbi5tX21heExTaXplXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLm1fbWF4VlNpemVfKTsKKyAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICAgICAgaWYgKCgoQm9vbGVhbiltYXhqYW1vZXhwYW5zaW9uLm1faXNWXy5nZXQoY291bnQpKS5ib29sZWFuVmFsdWUoKQorICAgICAgICAgICAgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBzZXRNYXhFeHBhbnNpb24oKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoY291bnQpKS5pbnRWYWx1ZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgbWF4VlNpemUsIG1heGV4cGFuc2lvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZXRNYXhFeHBhbnNpb24oKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoY291bnQpKS5pbnRWYWx1ZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgbWF4VFNpemUsIG1heGV4cGFuc2lvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAgCisgICAgICogVG8gdGhlIFVuc2FmZUNQIGhhc2ggdGFibGUsIGFkZCBhbGwgY2hhcnMgd2l0aCBjb21iaW5pbmcgY2xhc3MgIT0gMCAgICAgCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHVuc2FmZUNQQWRkQ0NOWihCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAKKyAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhmZmZmOyBjICsrKSB7CisgICAgICAgICAgICBjaGFyIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGMpOworICAgICAgICAgICAgaWYgKGZjZCA+PSAweDEwMCB8fCAvLyBpZiB0aGUgbGVhZGluZyBjb21iaW5pbmcgY2xhc3MoYykgPiAwIHx8CisgICAgICAgICAgICAgICAgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBmY2QgIT0gMCkpIHsKKyAgICAgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZGluZyBzdXJyb2dhdGUgd2l0aCBzb21lIEZDRCBkYXRhCisgICAgICAgICAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKHQubV9wcmVmaXhMb29rdXBfICE9IG51bGwpIHsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVscyA9IHQubV9wcmVmaXhMb29rdXBfLmVsZW1lbnRzKCk7CisgICAgICAgICAgICB3aGlsZSAoZWxzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgRWxlbWVudHMgZSA9IChFbGVtZW50cyllbHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAvLyBjb2RlcG9pbnRzIGhlcmUgYXJlIGluIHRoZSBORkQgZm9ybS4gV2UgbmVlZCB0byBhZGQgdGhlCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgY29kZSBwb2ludCBvZiB0aGUgTkZDIGZvcm0gdG8gdW5zYWZlLCBiZWNhdXNlIAorICAgICAgICAgICAgICAgIC8vIHN0cmNvbGwgbmVlZHMgdG8gYmFja3VwIG92ZXIgdGhlbS4KKyAgICAgICAgICAgICAgICAvLyB3ZWl2OiBUaGlzIGlzIHdyb25nISBTZWUgdGhlIGNvbW1lbnQgYWJvdmUuCisgICAgICAgICAgICAgICAgLy9TdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5kZWNvbXBvc2UoZS5tX2NQb2ludHNfLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAvL3Vuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGRlY29tcC5jaGFyQXQoMCkpOworICAgICAgICAgICAgICAgIC8vIGl0IHNob3VsZCBiZToKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tcCA9IE5vcm1hbGl6ZXIuY29tcG9zZShlLm1fY1BvaW50c18sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBjb21wLmNoYXJBdCgwKSk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBjbG9zdXJlCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY29sRWwgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gc3RhcnQgCisgICAgICogQHBhcmFtIGxpbWl0CisgICAgICogQHBhcmFtIHR5cGUgY2hhcmFjdGVyIHR5cGUKKyAgICAgKiBAcmV0dXJuIAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBlbnVtQ2F0ZWdvcnlSYW5nZUNsb3N1cmVDYXRlZ29yeShCdWlsZFRhYmxlIHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xFbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdHlwZSkgCisgICAgeworICAgICAgICBpZiAodHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFKSB7IAorICAgICAgICAgICAgLy8gaWYgdGhlIHJhbmdlIGlzIGFzc2lnbmVkIC0gd2UgbWlnaHQgb21taXQgbW9yZSBjYXRlZ29yaWVzIGxhdGVyCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHUzMiA9IHN0YXJ0OyB1MzIgPCBsaW1pdDsgdTMyICsrKSB7CisgICAgICAgICAgICAgICAgaW50IG5vT2ZEZWMgPSBOb3JtYWxpemVySW1wbC5nZXREZWNvbXBvc2l0aW9uKHUzMiwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENoYXJCdWZmZXJfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMjU2KTsKKyAgICAgICAgICAgICAgICBpZiAobm9PZkRlYyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgcG9zaXRpdmUsIHRoYXQgbWVhbnMgdGhlcmUgaXMgbm8gZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY29tcCA9IFVDaGFyYWN0ZXIudG9TdHJpbmcodTMyKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IG5ldyBTdHJpbmcobV91dGlsQ2hhckJ1ZmZlcl8sIDAsIG5vT2ZEZWMpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGxhdG9yLmVxdWFscyhjb21wLCBkZWNvbXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfID0gZGVjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRzIHByZWZpeCAKKyAgICAgICAgICAgICAgICA9IChFbGVtZW50cyl0Lm1fcHJlZml4TG9va3VwXy5nZXQobV91dGlsRWxlbWVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IGNvbXA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeENoYXJzXyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sRWwuc2V0VGV4dChkZWNvbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjZSA9IGNvbEVsLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gKytdIAorICAgICAgICAgICAgICAgICAgICA9IGNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGNvbEVsLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IGNvbXA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeENoYXJzXyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSA9IHByZWZpeC5tX21hcENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGNoYXJhY3RlciB1c2VzIGEgcHJlZml4LiBXZSBoYXZlIHRvIGFkZCBpdCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgdW5zYWZlIHRhYmxlLCBhcyBpdCBkZWNvbXBvc2VkIGZvcm0gaXMgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBpbi4gSW4gSmFwYW5lc2UsIHRoaXMgaGFwcGVucyBmb3IgXHUzMDllIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICYgXHUzMGZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdW5zYWZlQ1BTZXQgaXMgc3RhdGljIGluIHVjb2xfZWxtLCB3ZSBhcmUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ29pbmcgdG8gd3JhcCBpdCB1cCBpbiB0aGUgdW5zYWZlQ1BBZGRDQ05aIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRBbkVsZW1lbnQodCwgbV91dGlsRWxlbWVudF8pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBjaGFyYWN0ZXIgaXMgYSBKYW1vCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGEgSmFtbywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0phbW8oY2hhciBjaCkKKyAgICB7IAorICAgIHJldHVybiAoY2ggPj0gMHgxMTAwICYmIGNoIDw9IDB4MTExMikgCisgICAgICAgIHx8IChjaCA+PSAweDExNzUgJiYgY2ggPD0gMHgxMTYxKSAKKyAgICAgICAgfHwgKGNoID49IDB4MTFBOCAmJiBjaCA8PSAweDExQzIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQcm9kdWNlcyBjYW5vbmljYWwgY2xvc3VyZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjYW5vbmljYWxDbG9zdXJlKEJ1aWxkVGFibGUgdCkgCisgICAgeworICAgICAgICBCdWlsZFRhYmxlIHRlbXAgPSBuZXcgQnVpbGRUYWJsZSh0KTsKKyAgICAgICAgYXNzZW1ibGVUYWJsZSh0ZW1wLCB0ZW1wLm1fY29sbGF0b3JfKTsKKyAgICAgICAgLy8gcHJvZHVjZSBjYW5vbmljYWwgY2xvc3VyZSAKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyIAorICAgICAgICA9IHRlbXAubV9jb2xsYXRvcl8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yIHR5cGVpdGVyID0gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IoKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICB3aGlsZSAodHlwZWl0ZXIubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgZW51bUNhdGVnb3J5UmFuZ2VDbG9zdXJlQ2F0ZWdvcnkodCwgdGVtcC5tX2NvbGxhdG9yXywgY29sZWl0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3RhcnQsIGVsZW1lbnQubGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzVUNBQ29tcGxldGVJZ25vcmFibGVzKEJ1aWxkVGFibGUgdCkgCisgICAgeworICAgICAgICBUcmllSXRlcmF0b3IgdHJpZWl0ZXJhdG9yIAorICAgICAgICA9IG5ldyBUcmllSXRlcmF0b3IoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX3RyaWVfKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICB3aGlsZSAodHJpZWl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGVsZW1lbnQuc3RhcnQ7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBlbGVtZW50LmxpbWl0OworICAgICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUgPT0gMCkgeworICAgICAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZShzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChDRSA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfID0gVUNoYXJhY3Rlci50b1N0cmluZyhzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfID0gbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzT2Zmc2V0XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bMF0gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIxMDliNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblJ1bGVQYXJzZXIuamF2YQpAQCAtMCwwICsxLDIwNjggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCisvKioKKyogQ2xhc3MgZm9yIHBhcnNpbmcgY29sbGF0aW9uIHJ1bGVzLCBwcm9kdWNlcyBhIGxpc3Qgb2YgdG9rZW5zIHRoYXQgd2lsbCBiZQorKiB0dXJuZWQgaW50byBjb2xsYXRpb24gZWxlbWVudHMKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4yLCBKdW5lIDcgMjAwMgorKiBAZHJhZnQgMi4yCisqLworZmluYWwgY2xhc3MgQ29sbGF0aW9uUnVsZVBhcnNlcgoreworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+UnVsZUJhc2VkQ29sbGF0b3IgY29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgcnVsZXMuCisgICAgICogUGxlYXNlIHNlZSBSdWxlQmFzZWRDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlIHN5bnRheC48L3A+CisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHBhcmFtIHJ1bGVzIHRoZSBjb2xsYXRpb24gcnVsZXMgdG8gYnVpbGQgdGhlIGNvbGxhdGlvbiB0YWJsZSBmcm9tLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkCisgICAgICogICAgICAgICAgICBzeW50YXguCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIENvbGxhdGlvblJ1bGVQYXJzZXIoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGV4dHJhY3RTZXRzRnJvbVJ1bGVzKHJ1bGVzKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbmV3IFN0cmluZ0J1ZmZlcihOb3JtYWxpemVyLmRlY29tcG9zZShydWxlcywgZmFsc2UpLnRyaW0oKSk7CisgICAgICAgIG1fcnVsZXNfID0gbV9zb3VyY2VfLnRvU3RyaW5nKCk7CisgICAgICAgIG1fY3VycmVudF8gPSAwOworICAgICAgICBtX2V4dHJhQ3VycmVudF8gPSBtX3NvdXJjZV8ubGVuZ3RoKCk7CisgICAgICAgIG1fdmFyaWFibGVUb3BfID0gbnVsbDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8gPSBuZXcgUGFyc2VkVG9rZW4oKTsKKyAgICAgICAgbV9oYXNoVGFibGVfID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBtX29wdGlvbnNfID0gbmV3IE9wdGlvblNldChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfKTsKKyAgICAgICAgbV9saXN0SGVhZGVyXyA9IG5ldyBUb2tlbkxpc3RIZWFkZXJbNTEyXTsKKyAgICAgICAgbV9yZXN1bHRMZW5ndGhfID0gMDsKKyAgICAgICAgLy8gY2FsbCBhc3NlbWJsZVRva2VuTGlzdCgpIG1hbnVhbGx5LCBzbyB0aGF0IHdlIGNhbgorICAgICAgICAvLyBpbml0IGEgcGFyc2VyIGFuZCBtYW51YWxseSBwYXJzZSB0b2tlbnMKKyAgICAgICAgLy9hc3NlbWJsZVRva2VuTGlzdCgpOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gb3B0aW9ucyBzZXQKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgT3B0aW9uU2V0CisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluaXRpYWxpemVzIHRoZSBvcHRpb24gc2V0IHdpdGggdGhlIGFyZ3VtZW50IGNvbGxhdG9ycworICAgICAgICAgKiBAcGFyYW0gY29sbGF0b3Igb3B0aW9uIHRvIHVzZQorICAgICAgICAgKi8KKyAgICAgICAgT3B0aW9uU2V0KFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgICAgICB7CisgICAgICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gY29sbGF0b3IubV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gY29sbGF0b3IuaXNGcmVuY2hDb2xsYXRpb24oKTsKKyAgICAgICAgICAgIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbGF0b3IuaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKTsKKyAgICAgICAgICAgIG1fY2FzZUZpcnN0XyA9IGNvbGxhdG9yLm1fY2FzZUZpcnN0XzsKKyAgICAgICAgICAgIG1faXNDYXNlTGV2ZWxfID0gY29sbGF0b3IuaXNDYXNlTGV2ZWwoKTsKKyAgICAgICAgICAgIG1fZGVjb21wb3NpdGlvbl8gPSBjb2xsYXRvci5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgICAgICBtX3N0cmVuZ3RoXyA9IGNvbGxhdG9yLmdldFN0cmVuZ3RoKCk7CisgICAgICAgICAgICBtX2lzSGlyYWdhbmE0XyA9IGNvbGxhdG9yLm1faXNIaXJhZ2FuYTRfOworICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGludCBtX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBib29sZWFuIG1faXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICAvKioKKyAgICAgICAgICogQXR0cmlidXRlIGZvciBoYW5kbGluZyB2YXJpYWJsZSBlbGVtZW50cworICAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIHdobyBnb2VzIGZpcnN0LCBsb3dlciBjYXNlIG9yIHVwcGVyY2FzZQorICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fY2FzZUZpcnN0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIGRvIHdlIGhhdmUgYW4gZXh0cmEgY2FzZSBsZXZlbAorICAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBtX2lzQ2FzZUxldmVsXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIGF0dHJpYnV0ZSBmb3Igbm9ybWFsaXphdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fZGVjb21wb3NpdGlvbl87CisgICAgICAgIC8qKgorICAgICAgICAgKiBhdHRyaWJ1dGUgZm9yIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBpbnQgbV9zdHJlbmd0aF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBhdHRyaWJ1dGUgZm9yIHNwZWNpYWwgSGlyYWdhbmEKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87CisgICAgfQorCisgICAgLyoqCisgICAgICogTGlzdCBvZiB0b2tlbnMgdXNlZCBieSB0aGUgY29sbGF0aW9uIHJ1bGVzCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFRva2VuTGlzdEhlYWRlcgorICAgIHsKKyAgICAgICAgVG9rZW4gbV9maXJzdF87CisgICAgICAgIFRva2VuIG1fbGFzdF87CisgICAgICAgIFRva2VuIG1fcmVzZXRfOworICAgICAgICBib29sZWFuIG1faW5kaXJlY3RfOworICAgICAgICBpbnQgbV9iYXNlQ0VfOworICAgICAgICBpbnQgbV9iYXNlQ29udENFXzsKKyAgICAgICAgaW50IG1fbmV4dENFXzsKKyAgICAgICAgaW50IG1fbmV4dENvbnRDRV87CisgICAgICAgIGludCBtX3ByZXZpb3VzQ0VfOworICAgICAgICBpbnQgbV9wcmV2aW91c0NvbnRDRV87CisgICAgICAgIGludCBtX3Bvc19bXSA9IG5ldyBpbnRbQ29sbGF0b3IuSURFTlRJQ0FMICsgMV07CisgICAgICAgIGludCBtX2dhcHNMb19bXSA9IG5ldyBpbnRbMyAqIChDb2xsYXRvci5URVJUSUFSWSArIDEpXTsKKyAgICAgICAgaW50IG1fZ2Fwc0hpX1tdID0gbmV3IGludFszICogKENvbGxhdG9yLlRFUlRJQVJZICsgMSldOworICAgICAgICBpbnQgbV9udW1TdHJfW10gPSBuZXcgaW50WzMgKiAoQ29sbGF0b3IuVEVSVElBUlkgKyAxKV07CisgICAgICAgIFRva2VuIG1fZlN0clRva2VuX1tdID0gbmV3IFRva2VuW0NvbGxhdG9yLlRFUlRJQVJZICsgMV07CisgICAgICAgIFRva2VuIG1fbFN0clRva2VuX1tdID0gbmV3IFRva2VuW0NvbGxhdG9yLlRFUlRJQVJZICsgMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogVG9rZW4gd3JhcHBlciBmb3IgY29sbGF0aW9uIHJ1bGVzCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFRva2VuCisgICAgeworICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICBpbnQgbV9DRV9bXTsKKyAgICAgICBpbnQgbV9DRUxlbmd0aF87CisgICAgICAgaW50IG1fZXhwQ0VfW107CisgICAgICAgaW50IG1fZXhwQ0VMZW5ndGhfOworICAgICAgIGludCBtX3NvdXJjZV87CisgICAgICAgaW50IG1fZXhwYW5zaW9uXzsKKyAgICAgICBpbnQgbV9wcmVmaXhfOworICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICBpbnQgbV90b0luc2VydF87CisgICAgICAgaW50IG1fcG9sYXJpdHlfOyAvLyAxIGZvciA8LCA8PCwgPDw8LCAsIDsgYW5kIDAgZm9yID4sID4+LCA+Pj4KKyAgICAgICBUb2tlbkxpc3RIZWFkZXIgbV9saXN0SGVhZGVyXzsKKyAgICAgICBUb2tlbiBtX3ByZXZpb3VzXzsKKyAgICAgICBUb2tlbiBtX25leHRfOworICAgICAgIFN0cmluZ0J1ZmZlciBtX3J1bGVzXzsKKyAgICAgICBjaGFyIG1fZmxhZ3NfOworCisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgIG1fQ0VfID0gbmV3IGludFsxMjhdOworICAgICAgICAgICBtX2V4cENFXyA9IG5ldyBpbnRbMTI4XTsKKyAgICAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgcmV2ZXJzZQorICAgICAgICAgICBtX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsKKyAgICAgICAgICAgbV9uZXh0XyA9IG51bGw7CisgICAgICAgICAgIG1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgICAgbV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICBtX2V4cENFTGVuZ3RoXyA9IDA7CisgICAgICAgfQorCisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKgorICAgICAgICAqIEhhc2hjb2RlIGNhbGN1bGF0aW9uIGZvciB0b2tlbgorICAgICAgICAqIEByZXR1cm4gdGhlIGhhc2hjb2RlCisgICAgICAgICovCisgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgICAgeworICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgaW50IGxlbiA9IChtX3NvdXJjZV8gJiAweEZGMDAwMDAwKSA+Pj4gMjQ7CisgICAgICAgICAgIGludCBpbmMgPSAoKGxlbiAtIDMyKSAvIDMyKSArIDE7CisKKyAgICAgICAgICAgaW50IHN0YXJ0ID0gbV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKyAgICAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyBsZW47CisKKyAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzNykgKyBtX3J1bGVzXy5jaGFyQXQoc3RhcnQpOworICAgICAgICAgICAgICAgc3RhcnQgKz0gaW5jOworICAgICAgICAgICB9CisgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogRXF1YWxzIGNhbGN1bGF0aW9uCisgICAgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZQorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvYmplY3QKKyAgICAgICAgKi8KKyAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkKKyAgICAgICB7CisgICAgICAgICAgIGlmICh0YXJnZXQgPT0gdGhpcykgeworICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIFRva2VuKSB7CisgICAgICAgICAgICAgICBUb2tlbiB0ID0gKFRva2VuKXRhcmdldDsKKyAgICAgICAgICAgICAgIGludCBzc3RhcnQgPSBtX3NvdXJjZV8gJiAweDAwRkZGRkZGOworICAgICAgICAgICAgICAgaW50IHRzdGFydCA9IHQubV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKyAgICAgICAgICAgICAgIGludCBzbGltaXQgPSAobV9zb3VyY2VfICYgMHhGRjAwMDAwMCkgPj4gMjQ7CisgICAgICAgICAgICAgICBpbnQgdGxpbWl0ID0gKG1fc291cmNlXyAmIDB4RkYwMDAwMDApID4+IDI0OworCisgICAgICAgICAgICAgICBpbnQgZW5kID0gc3N0YXJ0ICsgc2xpbWl0IC0gMTsKKworICAgICAgICAgICAgICAgaWYgKG1fc291cmNlXyA9PSAwIHx8IHQubV9zb3VyY2VfID09IDApIHsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZiAoc2xpbWl0ICE9IHRsaW1pdCkgeworICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8gPT0gdC5tX3NvdXJjZV8pIHsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgd2hpbGUgKHNzdGFydCA8IGVuZAorICAgICAgICAgICAgICAgICAgICAgICYmIG1fcnVsZXNfLmNoYXJBdChzc3RhcnQpID09IHQubV9ydWxlc18uY2hhckF0KHRzdGFydCkpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgKysgc3N0YXJ0OworICAgICAgICAgICAgICAgICAgICsrIHRzdGFydDsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5jaGFyQXQoc3N0YXJ0KSA9PSB0Lm1fcnVsZXNfLmNoYXJBdCh0c3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHRoZSB0b2tlbiBpcyByZXNldHRlZCB5ZXQsIGllICYgaW4gdGhlIHJ1bGVzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBUT0tFTl9SRVNFVF8gPSAweERFQURCRUVGOworCisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgbnVtYmVyIG9mIHRva2VucworICAgICAqLworICAgIGludCBtX3Jlc3VsdExlbmd0aF87CisgICAgLyoqCisgICAgICogTGlzdCBvZiBwYXJzZWQgdG9rZW5zCisgICAgICovCisgICAgVG9rZW5MaXN0SGVhZGVyIG1fbGlzdEhlYWRlcl9bXTsKKyAgICAvKioKKyAgICAgKiBWYXJpYWJsZSB0b3AgdG9rZW4KKyAgICAgKi8KKyAgICBUb2tlbiBtX3ZhcmlhYmxlVG9wXzsKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gb3B0aW9ucworICAgICAqLworICAgIE9wdGlvblNldCBtX29wdGlvbnNfOworICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZWQgY29sbGF0aW9uIHJ1bGVzIHdpdGggc29tZSBleHRyYSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgU3RyaW5nQnVmZmVyIG1fc291cmNlXzsKKyAgICAvKioKKyAgICAgKiBIYXNoIHRhYmxlIHRvIGtlZXAgYWxsIHRva2VucworICAgICAqLworICAgIEhhc2h0YWJsZSBtX2hhc2hUYWJsZV87CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdm9pZCBzZXREZWZhdWx0T3B0aW9uc0luQ29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRTdHJlbmd0aF8gPSBtX29wdGlvbnNfLm1fc3RyZW5ndGhfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHREZWNvbXBvc2l0aW9uXyA9IG1fb3B0aW9uc18ubV9kZWNvbXBvc2l0aW9uXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fID0gbV9vcHRpb25zXy5tX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0SXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fb3B0aW9uc18ubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzQ2FzZUxldmVsXyA9IG1fb3B0aW9uc18ubV9pc0Nhc2VMZXZlbF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdENhc2VGaXJzdF8gPSBtX29wdGlvbnNfLm1fY2FzZUZpcnN0XzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0SXNIaXJhZ2FuYTRfID0gbV9vcHRpb25zXy5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV8gPSBtX29wdGlvbnNfLm1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSB0b2tlbiB0aGF0IGhhcyBiZWVuIHBhcnNlZCBidXQgbm90IHlldCBwcm9jZXNzZWQuIFVzZWQgdG8KKyAgICAgKiByZWR1Y2UgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgaW4gdGhlIHBhcnNlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFBhcnNlZFRva2VuCisgICAgeworICAgICAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgY29uc3RydWN0b3IKKyAgICAgICAgICovCisgICAgICAgIFBhcnNlZFRva2VuKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jaGFyc0xlbl8gPSAwOworICAgICAgICAgICAgbV9jaGFyc09mZnNldF8gPSAwOworICAgICAgICAgICAgbV9leHRlbnNpb25MZW5fID0gMDsKKyAgICAgICAgICAgIG1fZXh0ZW5zaW9uT2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3ByZWZpeExlbl8gPSAwOworICAgICAgICAgICAgbV9wcmVmaXhPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fZmxhZ3NfID0gMDsKKyAgICAgICAgICAgIG1fc3RyZW5ndGhfID0gVE9LRU5fVU5TRVRfOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgaW50IG1fc3RyZW5ndGhfOworICAgICAgICBpbnQgbV9jaGFyc09mZnNldF87CisgICAgICAgIGludCBtX2NoYXJzTGVuXzsKKyAgICAgICAgaW50IG1fZXh0ZW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgaW50IG1fZXh0ZW5zaW9uTGVuXzsKKyAgICAgICAgaW50IG1fcHJlZml4T2Zmc2V0XzsKKyAgICAgICAgaW50IG1fcHJlZml4TGVuXzsKKyAgICAgICAgY2hhciBtX2ZsYWdzXzsKKyAgICAgICAgY2hhciBtX2luZGlyZWN0SW5kZXhfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvdW5kYXJ5IHdyYXBwZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSW5kaXJlY3RCb3VuZGFyaWVzCisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgSW5kaXJlY3RCb3VuZGFyaWVzKGludCBzdGFydGNlW10sIGludCBsaW1pdGNlW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFNldCB2YWx1ZXMgZm9yIHRoZSB0b3AgLSBUT0RPOiBvbmNlIHdlIGhhdmUgdmFsdWVzIGZvciBhbGwgdGhlCisgICAgICAgICAgICAvLyBpbmRpcmVjdHMsIHdlIGFyZSBnb2luZyB0byBpbml0YWxpemUgaGVyZS4KKyAgICAgICAgICAgIG1fc3RhcnRDRV8gPSBzdGFydGNlWzBdOworICAgICAgICAgICAgbV9zdGFydENvbnRDRV8gPSBzdGFydGNlWzFdOworICAgICAgICAgICAgaWYgKGxpbWl0Y2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fbGltaXRDRV8gPSBsaW1pdGNlWzBdOworICAgICAgICAgICAgICAgIG1fbGltaXRDb250Q0VfID0gbGltaXRjZVsxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fbGltaXRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGltaXRDb250Q0VfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpbnQgbV9zdGFydENFXzsKKyAgICAgICAgaW50IG1fc3RhcnRDb250Q0VfOworICAgICAgICBpbnQgbV9saW1pdENFXzsKKyAgICAgICAgaW50IG1fbGltaXRDb250Q0VfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBvcHRpb24gcnVsZSB0YWcKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUb2tlbk9wdGlvbgorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIFRva2VuT3B0aW9uKFN0cmluZyBuYW1lLCBpbnQgYXR0cmlidXRlLCBTdHJpbmcgc3Vib3B0aW9uc1tdLAorICAgICAgICAgICAgICAgICAgICBpbnQgc3Vib3B0aW9uYXR0cmlidXRldmFsdWVbXSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9uYW1lXyA9IG5hbWU7CisgICAgICAgICAgICBtX2F0dHJpYnV0ZV8gPSBhdHRyaWJ1dGU7CisgICAgICAgICAgICBtX3N1Yk9wdGlvbnNfID0gc3Vib3B0aW9uczsKKyAgICAgICAgICAgIG1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzXyA9IHN1Ym9wdGlvbmF0dHJpYnV0ZXZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG1fbmFtZV87CisgICAgICAgIHByaXZhdGUgaW50IG1fYXR0cmlidXRlXzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9zdWJPcHRpb25zX1tdOworICAgICAgICBwcml2YXRlIGludCBtX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc19bXTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3VycmVudCBwYXJzZWQgdG9rZW4KKyAgICAgKi8KKyAgICBwcml2YXRlIFBhcnNlZFRva2VuIG1fcGFyc2VkVG9rZW5fOworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBydWxlCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV9ydWxlc187CisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50XzsKKyAgICAvKioKKyAgICAgKiBFbmQgb2YgdGhlIG9wdGlvbiB3aGlsZSByZWFkaW5nLgorICAgICAqIE5lZWQgaXQgZm9yIFVuaWNvZGVTZXQgcmVhZGluZyBzdXBwb3J0LgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fb3B0aW9uRW5kXzsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IG9mZnNldCBpbiBtX3NvdXJjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fc291cmNlTGltaXRfOworICAgIC8qKgorICAgICAqIE9mZnNldCB0byBtX3NvdXJjZV8gb2ZyIHRoZSBleHRyYSBleHBhbnNpb24gY2hhcmFjdGVycworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZXh0cmFDdXJyZW50XzsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBjb2RlIHBvaW50cyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgVUNBCisgICAgICovCisgICAgVW5pY29kZVNldCBtX2NvcHlTZXRfOworCisgICAgLyoqCisgICAgICogVW5pY29kZVNldCB0aGF0IGNvbnRhaW5zIGNvZGUgcG9pbnRzIGZvciB3aGljaCB3ZSB3YW50IHRvIHJlbW92ZQorICAgICAqIFVDQSBjb250cmFjdGlvbnMuIEl0IGltcGxpZXMgY29weWluZyBvZiB0aGVzZSBjb2RlIHBvaW50cyBmcm9tCisgICAgICogdGhlIFVDQS4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IG1fcmVtb3ZlU2V0XzsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHNwYWNlIGZvciB0aGUgZXh0cmEgc3RyaW5ncyB0aGF0IG5lZWQgdG8gYmUgdW5xdW90ZWQgZHVyaW5nIHRoZQorICAgICAqIHBhcnNpbmcgb2YgdGhlIHJ1bGVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPS0VOX0VYVFJBX1JVTEVfU1BBQ0VfU0laRV8gPSAyMDQ4OworICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHRoZSB0b2tlbiBpcyBub3Qgc2V0IHlldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9VTlNFVF8gPSAweEZGRkZGRkZGOworICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHRoZSBydWxlIGlzIGluIHRoZSA+IHBvbGFyaXR5LCBpZSBldmVyeXRoaW5nIG9uIHRoZQorICAgICAqIHJpZ2h0IG9mIHRoZSBydWxlIGlzIGxlc3MgdGhhbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9QT0xBUklUWV9ORUdBVElWRV8gPSAwOworICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHRoZSBydWxlIGlzIGluIHRoZSA8IHBvbGFyaXR5LCBpZSBldmVyeXRoaW5nIG9uIHRoZQorICAgICAqIHJpZ2h0IG9mIHRoZSBydWxlIGlzIGdyZWF0ZXIgdGhhbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9QT0xBUklUWV9QT1NJVElWRV8gPSAxOworICAgIC8qKgorICAgICAqIEZsYWcgbWFzayB0byBkZXRlcm1pbmUgaWYgdG9wIGlzIHNldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9UT1BfTUFTS18gPSAweDA0OworICAgIC8qKgorICAgICAqIEZsYWcgbWFzayB0byBkZXRlcm1pbmUgaWYgdmFyaWFibGUgdG9wIGlzIHNldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS18gPSAweDA4OworICAgIC8qKgorICAgICAqIEZsYWcgbWFzayB0byBkZXRlcm1pbmUgaWYgYSBiZWZvcmUgYXR0cmlidXRlIGlzIHNldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9CRUZPUkVfID0gMHgwMzsKKyAgICAvKioKKyAgICAgKiBGb3IgdXNlIGluIHBhcnNpbmcgdG9rZW4gb3B0aW9ucworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9TVUNDRVNTX01BU0tfID0gMHgxMDsKKworICAgIC8qKgorICAgICAqIFRoZXNlIHZhbHVlcyBhcmUgdXNlZCBmb3IgZmluZGluZyBDRSB2YWx1ZXMgZm9yIGluZGlyZWN0IHBvc2l0aW9uaW5nLgorICAgICAqIEluZGlyZWN0IHBvc2l0aW9uaW5nIGlzIGEgbWVjaGFuaXNtIGZvciBhbGxvd2luZyByZXNldHMgb24gc3ltYm9saWMKKyAgICAgKiB2YWx1ZXMuIEl0IG9ubHkgd29ya3MgZm9yIHJlc2V0cyBhbmQgeW91IGNhbm5vdCB0YWlsb3IgaW5kaXJlY3QgbmFtZXMuCisgICAgICogQW4gaW5kaXJlY3QgbmFtZSBjYW4gZGVmaW5lIGVpdGhlciBhbiBhbmNob3IgcG9pbnQgb3IgYSByYW5nZS4gQW4gYW5jaG9yCisgICAgICogcG9pbnQgYmVoYXZlcyBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyBhIGNvZGUgcG9pbnQgaW4gcmVzZXQgd291bGQsCisgICAgICogZXhjZXB0IHRoYXQgaXQgY2Fubm90IGJlIHRhaWxvcmVkLiBBIHJhbmdlICh3ZSBjdXJyZW50bHkgb25seSBrbm93IGZvcgorICAgICAqIHRoZSBbdG9wXSByYW5nZSB3aWxsIGV4cGxpY2l0bHkgc2V0IHRoZSB1cHBlciBib3VuZCBmb3IgZ2VuZXJhdGVkIENFcywKKyAgICAgKiB0aHVzIGFsbG93aW5nIGZvciBiZXR0ZXIgY29udHJvbCBvdmVyIGhvdyBtYW55IENFcyBjYW4gYmUgc3F1ZWV6ZWQKKyAgICAgKiBiZXR3ZWVuIGluIHRoZSByYW5nZSB3aXRob3V0IHBlcmZvcm1hbmNlIHBlbmFsdHkuIEluIHRoYXQgcmVzcGVjdCwgd2UgdXNlCisgICAgICogW3RvcF0gZm9yIHRhaWxvcmluZyBvZiBsb2NhbGVzIHRoYXQgdXNlIENKSyBjaGFyYWN0ZXJzLiBPdGhlciBpbmRpcmVjdAorICAgICAqIHZhbHVlcyBhcmUgY3VycmVudGx5IGEgcHVyZSBjb252ZW5pZW5jZSwgdGhleSBjYW4gYmUgdXNlZCB0byBhc3N1cmUgdGhhdAorICAgICAqIHRoZSBDRXMgd2lsbCBiZSBhbHdheXMgcG9zaXRpb25lZCBpbiB0aGUgc2FtZSBwbGFjZSByZWxhdGl2ZSB0byBhIHBvaW50CisgICAgICogd2l0aCBrbm93biBwcm9wZXJ0aWVzIChlLmcuIGZpcnN0IHByaW1hcnkgaWdub3JhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbmRpcmVjdEJvdW5kYXJpZXMgSU5ESVJFQ1RfQk9VTkRBUklFU19bXTsKKworICAgIC8qKgorICAgICAqIEludmVyc2UgVUNBIGNvbnN0YW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX1NJWkVfTUFTS18gPSAweEZGRjAwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX09GRlNFVF9NQVNLXyA9IDB4MDAwRkZGRkY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVkVSU0VfU0hJRlRfVkFMVUVfID0gMjA7CisKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gb3B0aW9uIHRhZ3MKKyAgICAgKiBbbGFzdCB2YXJpYWJsZV0gbGFzdCB2YXJpYWJsZSB2YWx1ZQorICAgICAqIFtsYXN0IHByaW1hcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciBwcmltYXJ5IGlnbm9yYWJsZQorICAgICAqIFtsYXN0IHNlY29uZGFyeSBpZ25vcmFibGVdIGxhcmdlc3QgQ0UgZm9yIHNlY29uZGFyeSBpZ25vcmFibGUKKyAgICAgKiBbbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdIGxhcmdlc3QgQ0UgZm9yIHRlcnRpYXJ5IGlnbm9yYWJsZQorICAgICAqIFt0b3BdIGd1YXJhbnRlZWQgdG8gYmUgYWJvdmUgYWxsIGltcGxpY2l0IENFcywgZm9yIG5vdyBhbmQgaW4gdGhlIGZ1dHVyZSAoaW4gMS44KQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRva2VuT3B0aW9uIFJVTEVTX09QVElPTlNfW107CisKKyAgICBzdGF0aWMKKyAgICB7CisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfID0gbmV3IEluZGlyZWN0Qm91bmRhcmllc1sxNV07CisgICAgICAgIC8vIFVDT0xfUkVTRVRfVE9QX1ZBTFVFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzBdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX0lNUExJQ0lUXyk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfUFJJTUFSWV9JR05PUkFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMV0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9QUklNQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfUFJJTUFSWV9JR05PUkFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMl0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1BSSU1BUllfSUdOT1JBQkxFXywKKyAgICAgICAgICAgICAgICAgICAgbnVsbCk7CisKKyAgICAgICAgLy8gVUNPTF9GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzNdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1NFQ09OREFSWV9JR05PUkFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bNF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfU0VDT05EQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfVEVSVElBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzVdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfVEVSVElBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzZdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfVkFSSUFCTEU7CisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzddID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9WQVJJQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s4XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9WQVJJQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfTk9OX1ZBUklBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzldID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9OT05fVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfTk9OX1ZBUklBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzEwXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9OT05fVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX0lNUExJQ0lUXyk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfSU1QTElDSVQKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTFdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9JTVBMSUNJVF8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9JTVBMSUNJVAorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxMl0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfSU1QTElDSVRfLAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX1RSQUlMSU5HXyk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfVFJBSUxJTkcKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTNdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9UUkFJTElOR18sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9UUkFJTElORworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxNF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfVFJBSUxJTkdfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxNF0ubV9saW1pdENFXworICAgICAgICAgICAgICAgICA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfU1BFQ0lBTF9NSU5fIDw8IDI0OworCisgICAgICAgIFJVTEVTX09QVElPTlNfID0gbmV3IFRva2VuT3B0aW9uWzE5XTsKKyAgICAgICAgU3RyaW5nIG9wdGlvbltdID0geyJub24taWdub3JhYmxlIiwgInNoaWZ0ZWQifTsKKyAgICAgICAgaW50IHZhbHVlW10gPSB7UnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuTk9OX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNISUZURURffTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bMF0gPSBuZXcgVG9rZW5PcHRpb24oImFsdGVybmF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQUxURVJOQVRFX0hBTkRMSU5HXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBvcHRpb24gPSBuZXcgU3RyaW5nWzFdOworICAgICAgICBvcHRpb25bMF0gPSAiMiI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFsxXTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzFdID0gbmV3IFRva2VuT3B0aW9uKCJiYWNrd2FyZHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkZSRU5DSF9DT0xMQVRJT05fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCB2YWx1ZSk7CisgICAgICAgIFN0cmluZyBvZmZvbm9wdGlvbltdID0gbmV3IFN0cmluZ1syXTsKKyAgICAgICAgb2Zmb25vcHRpb25bMF0gPSAib2ZmIjsKKyAgICAgICAgb2Zmb25vcHRpb25bMV0gPSAib24iOworICAgICAgICBpbnQgb2Zmb252YWx1ZVtdID0gbmV3IGludFsyXTsKKyAgICAgICAgb2Zmb252YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9GRl87CisgICAgICAgIG9mZm9udmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzJdID0gbmV3IFRva2VuT3B0aW9uKCJjYXNlTGV2ZWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfTEVWRUxfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmb25vcHRpb24sIG9mZm9udmFsdWUpOworICAgICAgICBvcHRpb24gPSBuZXcgU3RyaW5nWzNdOworICAgICAgICBvcHRpb25bMF0gPSAibG93ZXIiOworICAgICAgICBvcHRpb25bMV0gPSAidXBwZXIiOworICAgICAgICBvcHRpb25bMl0gPSAib2ZmIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzNdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLkxPV0VSX0ZJUlNUXzsKKyAgICAgICAgdmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bM10gPSBuZXcgVG9rZW5PcHRpb24oImNhc2VGaXJzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQ0FTRV9GSVJTVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bNF0gPSBuZXcgVG9rZW5PcHRpb24oIm5vcm1hbGl6YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5OT1JNQUxJWkFUSU9OX01PREVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bNV0gPSBuZXcgVG9rZW5PcHRpb24oImhpcmFnYW5hUSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkhJUkFHQU5BX1FVQVRFUk5BUllfTU9ERV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmb25vcHRpb24sIG9mZm9udmFsdWUpOworICAgICAgICBvcHRpb24gPSBuZXcgU3RyaW5nWzVdOworICAgICAgICBvcHRpb25bMF0gPSAiMSI7CisgICAgICAgIG9wdGlvblsxXSA9ICIyIjsKKyAgICAgICAgb3B0aW9uWzJdID0gIjMiOworICAgICAgICBvcHRpb25bM10gPSAiNCI7CisgICAgICAgIG9wdGlvbls0XSA9ICJJIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzVdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfOworICAgICAgICB2YWx1ZVsxXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNFQ09OREFSWV87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVEVSVElBUllfOworICAgICAgICB2YWx1ZVszXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlFVQVRFUk5BUllfOworICAgICAgICB2YWx1ZVs0XSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLklERU5USUNBTF87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzZdID0gbmV3IFRva2VuT3B0aW9uKCJzdHJlbmd0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5TVFJFTkdUSF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1s3XSA9IG5ldyBUb2tlbk9wdGlvbigidmFyaWFibGUgdG9wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1s4XSA9IG5ldyBUb2tlbk9wdGlvbigicmVhcnJhbmdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBvcHRpb24gPSBuZXcgU3RyaW5nWzNdOworICAgICAgICBvcHRpb25bMF0gPSAiMSI7CisgICAgICAgIG9wdGlvblsxXSA9ICIyIjsKKyAgICAgICAgb3B0aW9uWzJdID0gIjMiOworICAgICAgICB2YWx1ZSA9IG5ldyBpbnRbM107CisgICAgICAgIHZhbHVlWzBdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuUFJJTUFSWV87CisgICAgICAgIHZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0VDT05EQVJZXzsKKyAgICAgICAgdmFsdWVbMl0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5URVJUSUFSWV87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzldID0gbmV3IFRva2VuT3B0aW9uKCJiZWZvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCB2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzEwXSA9IG5ldyBUb2tlbk9wdGlvbigidG9wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBTdHJpbmcgZmlyc3RsYXN0b3B0aW9uW10gPSBuZXcgU3RyaW5nWzddOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMF0gPSAicHJpbWFyeSI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvblsxXSA9ICJzZWNvbmRhcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMl0gPSAidGVydGlhcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bM10gPSAidmFyaWFibGUiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNF0gPSAicmVndWxhciI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvbls1XSA9ICJpbXBsaWNpdCI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvbls2XSA9ICJ0cmFpbGluZyI7CisKKyAgICAgICAgaW50IGZpcnN0bGFzdHZhbHVlW10gPSBuZXcgaW50WzddOworICAgICAgICBBcnJheXMuZmlsbChmaXJzdGxhc3R2YWx1ZSwgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuUFJJTUFSWV8pOworCisgICAgICAgIFJVTEVTX09QVElPTlNfWzExXSA9IG5ldyBUb2tlbk9wdGlvbigiZmlyc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RsYXN0b3B0aW9uLCBmaXJzdGxhc3R2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzEyXSA9IG5ldyBUb2tlbk9wdGlvbigibGFzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdGxhc3RvcHRpb24sIGZpcnN0bGFzdHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bMTNdID0gbmV3IFRva2VuT3B0aW9uKCJvcHRpbWl6ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bMTRdID0gbmV3IFRva2VuT3B0aW9uKCJzdXBwcmVzc0NvbnRyYWN0aW9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bMTVdID0gbmV3IFRva2VuT3B0aW9uKCJ1bmRlZmluZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE2XSA9IG5ldyBUb2tlbk9wdGlvbigic2NyaXB0T3JkZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE3XSA9IG5ldyBUb2tlbk9wdGlvbigiY2hhcnNldG5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE4XSA9IG5ldyBUb2tlbk9wdGlvbigiY2hhcnNldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGRhdGEgbWVtYmVycworICAgICAqLworICAgIHByaXZhdGUgVG9rZW4gbV91dGlsVG9rZW5fID0gbmV3IFRva2VuKCk7CisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV9VQ0FDb2xFSXRlcl8KKyAgICAgICAgICAgICAgICAgICAgICA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDRUJ1ZmZlcl9bXSA9IG5ldyBpbnRbMl07CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQXNzZW1ibGVzIHRoZSB0b2tlbiBsaXN0CisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiBydWxlcyBzeW50YXggZmFpbHMKKyAgICAgKi8KKyAgICBpbnQgYXNzZW1ibGVUb2tlbkxpc3QoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFRva2VuIGxhc3RUb2tlbiA9IG51bGw7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfID0gVE9LRU5fVU5TRVRfOworICAgICAgICBpbnQgc291cmNlbGltaXQgPSBtX3NvdXJjZV8ubGVuZ3RoKCk7CisgICAgICAgIGludCBleHBhbmROZXh0ID0gMDsKKworICAgICAgICB3aGlsZSAobV9jdXJyZW50XyA8IHNvdXJjZWxpbWl0KSB7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8gPSAwOworICAgICAgICAgICAgaWYgKHBhcnNlTmV4dFRva2VuKGxhc3RUb2tlbiA9PSBudWxsKSA8IDApIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHJlYWNoZWQgdGhlIGVuZAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciBzcGVjcyA9IG1fcGFyc2VkVG9rZW5fLm1fZmxhZ3NfOworICAgICAgICAgICAgYm9vbGVhbiB2YXJpYWJsZVRvcCA9ICgoc3BlY3MgJiBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS18pICE9IDApOworICAgICAgICAgICAgYm9vbGVhbiB0b3AgPSAoKHNwZWNzICYgVE9LRU5fVE9QX01BU0tfKSAhPSAwKTsKKyAgICAgICAgICAgIGludCBsYXN0U3RyZW5ndGggPSBUT0tFTl9VTlNFVF87CisgICAgICAgICAgICBpZiAobGFzdFRva2VuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsYXN0U3RyZW5ndGggPSBsYXN0VG9rZW4ubV9zdHJlbmd0aF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgICAgICAvLyA0IExvb2t1cCBlYWNoIHNvdXJjZSBpbiB0aGUgQ2hhcnNUb1Rva2VuIG1hcCwgYW5kIGZpbmQgYQorICAgICAgICAgICAgLy8gc291cmNldG9rZW4KKyAgICAgICAgICAgIFRva2VuIHNvdXJjZVRva2VuID0gKFRva2VuKW1faGFzaFRhYmxlXy5nZXQobV91dGlsVG9rZW5fKTsKKyAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtZWFucyB0aGF0IHJ1bGVzIGhhdmVuJ3Qgc3RhcnRlZCBwcm9wZXJseQorICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fc291cmNlXy50b1N0cmluZygpLCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gIDYgT3RoZXJ3aXNlICh3aGVuIHJlbGF0aW9uICE9IHJlc2V0KQorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHNvdXJjZVRva2VuIGlzIG51bGwsIGNyZWF0ZSBuZXcgb25lCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9zb3VyY2VfID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZWZpeF8gPSBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeExlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgcmV2ZXJzZQorICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9leHBDRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgICAgICBtX2hhc2hUYWJsZV8ucHV0KHNvdXJjZVRva2VuLCBzb3VyY2VUb2tlbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb3VsZCBoYXZlIGZpc2hlZCBvdXQgYSByZXNldCBoZXJlCisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8KKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbiAhPSBzb3VyY2VUb2tlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJlbW92ZSBzb3VyY2VUb2tlbiBmcm9tIHdoZXJlIGl0IHdhcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX25leHRfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfLm1fcHJldmlvdXNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9sYXN0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfLm1fbmV4dF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA9IG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfOworICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8gPSBsYXN0VG9rZW4ubV9saXN0SGVhZGVyXzsKKworICAgICAgICAgICAgICAgIC8vIDEuICBGaW5kIHRoZSBzdHJvbmdlc3Qgc3RyZW5ndGggaW4gZWFjaCBsaXN0LCBhbmQgc2V0CisgICAgICAgICAgICAgICAgLy8gc3Ryb25nZXN0UCBhbmQgc3Ryb25nZXN0TiBhY2NvcmRpbmdseSBpbiB0aGUgaGVhZGVycy4KKyAgICAgICAgICAgICAgICBpZiAobGFzdFN0cmVuZ3RoID09IFRPS0VOX1JFU0VUXworICAgICAgICAgICAgICAgICAgICB8fCBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgTEFTVCBpcyBhIHJlc2V0IGluc2VydCBzb3VyY2VUb2tlbiBpbiB0aGUgbGlzdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2xhc3RfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHdlIG5lZWQgdG8gZmluZCBhIHBsYWNlIGZvciB1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHdlJ2xsIGdldCBpbiBmcm9udCBvZiB0aGUgc2FtZSBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PSBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfLm1fcHJldmlvdXNfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGFzdFRva2VuLm1fbmV4dF8ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IGxhc3RUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fbmV4dF8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9uZXh0Xy5tX3ByZXZpb3VzXyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2xhc3RfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IGxhc3RUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfID0gbGFzdFRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fbmV4dF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlICh3aGVuIExBU1QgaXMgbm90IGEgcmVzZXQpCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHBvbGFyaXR5IChMQVNUKSA9PSBwb2xhcml0eShyZWxhdGlvbiksIGluc2VydAorICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2VUb2tlbiBhZnRlciBMQVNULCBvdGhlcndpc2UgaW5zZXJ0IGJlZm9yZS4KKyAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBpbnNlcnRpbmcgYWZ0ZXIgb3IgYmVmb3JlLCBzZWFyY2ggdG8gdGhlIG5leHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gd2l0aCB0aGUgc2FtZSBzdHJlbmd0aCBpbiB0aGF0IGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgLy8gKFRoaXMgaXMgY2FsbGVkIHBvc3Rwb25lIGluc2VydGlvbikuCisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiAhPSBsYXN0VG9rZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4ubV9wb2xhcml0eV8gPT0gc291cmNlVG9rZW4ubV9wb2xhcml0eV8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGFzdFRva2VuLm1fbmV4dF8gIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBsYXN0VG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4gPSBsYXN0VG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBsYXN0VG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9sYXN0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfID0gbGFzdFRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fbmV4dF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsYXN0VG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBsYXN0VG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuID0gbGFzdFRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfID0gbGFzdFRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9wcmV2aW91c18ubV9uZXh0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IGxhc3RUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gcmVwZWF0ZWQgb25lIHRoaW5nIHR3aWNlIGluIHJ1bGVzLCBzdGF5IHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJvbmdlciBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RTdHJlbmd0aCA8IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPSBsYXN0U3RyZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHRva2VuIHdhcyBhIHZhcmlhYmxlIHRvcCwgd2UncmUgZ29ubmEgcHV0IGl0IGluCisgICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlVG9wID09IHRydWUgJiYgbV92YXJpYWJsZVRvcF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZVRvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBUcmVhdCB0aGUgZXhwYW5zaW9ucy4KKyAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIGV4cGFuc2lvbnM6IGV4cGxpY2l0ICh4IC8geSkgYW5kCisgICAgICAgICAgICAgICAgLy8gcmVzZXQgYmFzZWQgcHJvcGFnYXRpbmcgZXhwYW5zaW9ucworICAgICAgICAgICAgICAgIC8vICgmYWJjICogZCAqIGUgPD0+ICZhYiAqIGQgLyBjICogZSAvIGMpCisgICAgICAgICAgICAgICAgLy8gaWYgYm90aCBvZiB0aGVtIGFyZSBpbiBlZmZlY3QgZm9yIGEgdG9rZW4sIHRoZXkgYXJlIGNvbWJpbmVkLgorICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9leHBhbnNpb25fID0gbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgICAgICAgIGlmIChleHBhbmROZXh0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPT0gUnVsZUJhc2VkQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmltYXJ5IHN0cmVuZ3RoIGtpbGxzIG9mZiB0aGUgaW1wbGljaXQgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE5leHQgPSAwOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2VUb2tlbi5tX2V4cGFuc2lvbl8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBleHBhbnNpb24sIGltcGxpY2l0IGlzIGp1c3QgYWRkZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHRva2VuCisgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9IGV4cGFuZE5leHQ7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSBpcyBib3RoIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBleHBhbnNpb24uCisgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBhIGNvbWJpbmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGV4cGFuZE5leHQgJiAweEZGRkZGRjsKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBleHBhbmROZXh0ID4+PiAyNDsKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpemUgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgc2l6ZSkpOworICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25PZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKG1fc291cmNlXy5zdWJzdHJpbmcoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fKSk7CisgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9IChzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXykgPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gc2l6ZSArIG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXzsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgLy8gaWYgdGhlIHByZXZpb3VzIHRva2VuIHdhcyBhIHJlc2V0IGJlZm9yZSwgdGhlIHN0cmVuZ3RoIG9mIHRoaXMKKyAgICAgICAgICAgICAgIC8vIHRva2VuIG11c3QgbWF0Y2ggdGhlIHN0cmVuZ3RoIG9mIGJlZm9yZS4gT3RoZXJ3aXNlIHdlIGhhdmUgYW4KKyAgICAgICAgICAgICAgIC8vIHVuZGVmaW5lZCBzaXR1YXRpb24uCisgICAgICAgICAgICAgICAvLyBJbiBvdGhlciB3b3Jkcywgd2UgY3VycmVudGx5IGhhdmUgYSBjbHVkZ2Ugd2hpY2ggd2UgdXNlIHRvCisgICAgICAgICAgICAgICAvLyByZXByZXNlbnQgJmEgPj4geC4gVGhpcyBpcyB3cml0dGVuIGFzICZbYmVmb3JlIDJdYSA8PCB4LgorICAgICAgICAgICAgICAgaWYoKGxhc3RUb2tlbi5tX2ZsYWdzXyAmIFRPS0VOX0JFRk9SRV8pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICBpbnQgYmVmb3JlU3RyZW5ndGggPSAobGFzdFRva2VuLm1fZmxhZ3NfICYgVE9LRU5fQkVGT1JFXykgLSAxOworICAgICAgICAgICAgICAgICAgIGlmKGJlZm9yZVN0cmVuZ3RoICE9IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9zb3VyY2VfLnRvU3RyaW5nKCksIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbiAhPSBudWxsICYmIGxhc3RTdHJlbmd0aCA9PSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHByZXZpb3VzIHRva2VuIHdhcyBhbHNvIGEgcmVzZXQsIHRoaXMgbWVhbnMgdGhhdAorICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHR3byBjb25zZWN1dGl2ZSByZXNldHMgYW5kIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBwcmV2aW91cyBvbmUgaWYgZW1wdHkKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fcmVzdWx0TGVuZ3RoXyA+IDAgJiYgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF8gLSAxXS5tX2ZpcnN0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3Jlc3VsdExlbmd0aF8gLS07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlc2V0LCBidXQgaXQgbWlnaHQgc3RpbGwgYmUgc29tZXdoZXJlIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyB0YWlsb3JpbmcsIGluIHNob3J0ZXIgZm9ybQorICAgICAgICAgICAgICAgICAgICBpbnQgc2VhcmNoQ2hhcnNMZW4gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXzsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHNlYXJjaENoYXJzTGVuID4gMSAmJiBzb3VyY2VUb2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hDaGFyc0xlbiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtleSA9IHNlYXJjaENoYXJzTGVuIDw8IDI0IHwgY2hhcnNPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gc2VhcmNoQ2hhcnNMZW4gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IChUb2tlbiltX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE5leHQgPSAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gc2VhcmNoQ2hhcnNMZW4pIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNlYXJjaENoYXJzTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKHNwZWNzICYgVE9LRU5fQkVGT1JFXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodG9wID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSdyZSBkb2luZyBiZWZvcmUgJiB0aGVyZSBpcyBubyBpbmRpcmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoID0gKHNwZWNzICYgVE9LRU5fQkVGT1JFXykgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgYmVmb3JlIHRoYXQgaXMgYWxyZWFkeSBvcmRlcmVkIGluIHRoZSBVQ0EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIHNvIHdlIG5lZWQgdG8gZ2V0IHRoZSBwcmV2aW91cyB3aXRoIGdvb2Qgc3RyZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPiBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlcmUsIGVpdGhlciB3ZSBoaXQgdGhlIHN0cmVuZ3RoIG9yIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPT0gc3RyZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHN0YXJ0IG9mIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX3Jlc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gd2UgaGl0IE5VTEwsIHdlIHNob3VsZCBiZSBkb2luZyB0aGUgZWxzZSBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX3Jlc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBnZXRWaXJnaW5CZWZvcmUoc291cmNlVG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGdldFZpcmdpbkJlZm9yZShzb3VyY2VUb2tlbiwgc3RyZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBib3RoIGJlZm9yZSBhbmQgaW5kaXJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID0gbmV3IFRva2VuTGlzdEhlYWRlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGRvIHNsaWdodGx5IG1vcmUgd29yay4gd2UgbmVlZCB0byBnZXQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlQ0UgdXNpbmcgdGhlIGludmVyc2UgVUNBICYgZ2V0UHJldmlvdXMuIFRoZSBuZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBib3VuZCBpcyBub3Qgc2V0LCBhbmQgd2lsbCBiZSBkZWNpZGVkIGluIHVjb2xfYmxkCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RyZW5ndGggPSAoc3BlY3MgJiBUT0tFTl9CRUZPUkVfKSAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmFzZUNFID0gSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dLm1fc3RhcnRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmFzZUNvbnRDRSA9IElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dLm1fc3RhcnRDb250Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNlW10gPSBuZXcgaW50WzJdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGJhc2VDRSA+Pj4gMjQgPj0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NSU5fKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGJhc2VDRSA+Pj4gMjQgPD0gIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUFYXykpIHsgLyogaW1wbGljaXRzIC0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbWFyeSA9IGJhc2VDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAoYmFzZUNvbnRDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18pID4+IDE2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYXcgPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0UmF3RnJvbUltcGxpY2l0KHByaW1hcnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmltYXJ5Q0UgPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0SW1wbGljaXRGcm9tUmF3KHJhdy0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZVswXSA9IHByaW1hcnlDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCAweDA1MDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VbMV0gPSAocHJpbWFyeUNFIDw8IDE2KSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS18gfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSW52ZXJzZVVDQSBpbnZ1Y2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52dWNhLmdldEludmVyc2VQcmV2Q0UoYmFzZUNFLCBiYXNlQ29udENFLCBzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8gPSBjZVswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfID0gY2VbMV07CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfID0gMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE5leHQgPSBpbml0QVJlc2V0KDAsIHNvdXJjZVRva2VuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyA1IElmIHRoZSByZWxhdGlvbiBpcyBhIHJlc2V0OgorICAgICAgICAgICAgICAgIC8vIElmIHNvdXJjZVRva2VuIGlzIG51bGwKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgbmV3IGxpc3QsIGNyZWF0ZSBuZXcgc291cmNlVG9rZW4sIG1ha2UgdGhlIGJhc2VDRQorICAgICAgICAgICAgICAgIC8vIGZyb20gc291cmNlLCBwdXQgdGhlIHNvdXJjZVRva2VuIGluIExpc3RIZWFkZXIgb2YgdGhlIG5ldworICAgICAgICAgICAgICAgIC8vIGxpc3QKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyAzIENvbnNpZGVyIGVhY2ggaXRlbTogcmVsYXRpb24sIHNvdXJjZSwgYW5kIGV4cGFuc2lvbjoKKyAgICAgICAgICAgICAgICAgICAgLy8gZS5nLiAuLi48IHggLyB5IC4uLgorICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBjb252ZXJ0IGFsbCBleHBhbnNpb25zIGludG8gbm9ybWFsIGZvcm0uCisgICAgICAgICAgICAgICAgICAgIC8vIEV4YW1wbGVzOgorICAgICAgICAgICAgICAgICAgICAvLyBJZiAieHkiIGRvZXNuJ3Qgb2NjdXIgZWFybGllciBpbiB0aGUgbGlzdCBvciBpbiB0aGUgVUNBLAorICAgICAgICAgICAgICAgICAgICAvLyBjb252ZXJ0ICZ4eSAqIGMgKiBkICogLi4uIGludG8gJnggKiBjL3kgKiBkICogLi4uCisgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHJlc2V0IHZhbHVlcyBjYW4gbmV2ZXIgaGF2ZSBleHBhbnNpb25zLCBhbHRob3VnaAorICAgICAgICAgICAgICAgICAgICAvLyB0aGV5IGNhbiBjYXVzZSB0aGUgdmVyeSBuZXh0IGl0ZW0gdG8gaGF2ZSBvbmUuIFRoZXkgbWF5CisgICAgICAgICAgICAgICAgICAgIC8vIGJlIGNvbnRyYWN0aW9ucywgaWYgdGhleSBhcmUgZm91bmQgZWFybGllciBpbiB0aGUgbGlzdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvcCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5zdWJzdHJpbmcobV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXykpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgQ0UgPSBjb2xlaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gdGhlIGNoYXJhY3RlciBpbiB0aGUgZnVsbCBydWxlIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGFuZCA9IGNvbGVpdGVyLmdldE9mZnNldCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBTZWNvbmRDRSA9IGNvbGVpdGVyLm5leHQoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ0UgJiAweEZGRkZGRjNGOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKFNlY29uZENFKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU2Vjb25kQ0U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9pbmRpcmVjdF8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gaW5pdEFSZXNldChleHBhbmQsIHNvdXJjZVRva2VuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gdG9wID09IFRSVUUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmRpcmVjdEJvdW5kYXJpZXMgaWIgPSBJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9zdGFydENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9zdGFydENvbnRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fbGltaXRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fbGltaXRDb250Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE5leHQgPSBpbml0QVJlc2V0KDAsIHNvdXJjZVRva2VuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsgLy8gcmVzZXQgdG8gc29tZXRoaW5nIGFscmVhZHkgaW4gcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgdG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gNyBBZnRlciBhbGwgdGhpcywgc2V0IExBU1QgdG8gcG9pbnQgdG8gc291cmNlVG9rZW4sIGFuZCBnb3RvCisgICAgICAgICAgICAvLyBzdGVwIDMuCisgICAgICAgICAgICBsYXN0VG9rZW4gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3Jlc3VsdExlbmd0aF8gPiAwCisgICAgICAgICAgICAmJiBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoXyAtIDFdLm1fZmlyc3RfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fcmVzdWx0TGVuZ3RoXyAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9yZXN1bHRMZW5ndGhfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW5kIHRocm93cyBhIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHBhcmFtIHJ1bGVzIGNvbGxhdGlvbiBydWxlIHRoYXQgZmFpbGVkCisgICAgICogQHBhcmFtIG9mZnNldCBmYWlsZWQgb2Zmc2V0IGluIHJ1bGVzCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbiB3aXRoIGZhaWx1cmUgaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHRocm93UGFyc2VFeGNlcHRpb24oU3RyaW5nIHJ1bGVzLCBpbnQgb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gZm9yIHByZS1jb250ZXh0CisgICAgICAgIFN0cmluZyBwcmVjb250ZXh0ID0gcnVsZXMuc3Vic3RyaW5nKDAsIG9mZnNldCk7CisgICAgICAgIFN0cmluZyBwb3N0Y29udGV4dCA9IHJ1bGVzLnN1YnN0cmluZyhvZmZzZXQsIHJ1bGVzLmxlbmd0aCgpKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9yID0gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJzZSBlcnJvciBvY2N1cnJlZCBpbiBydWxlIGF0IG9mZnNldCAiKTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKG9mZnNldCk7CisgICAgICAgIGVycm9yLmFwcGVuZCgiXG4gYWZ0ZXIgdGhlIHByZWZpeCBcIiIpOworICAgICAgICBlcnJvci5hcHBlbmQocHJlY29udGV4dCk7CisgICAgICAgIGVycm9yLmFwcGVuZCgiXCIgYmVmb3JlIHRoZSBzdWZmaXggXCIiKTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKHBvc3Rjb250ZXh0KTsKKyAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKGVycm9yLnRvU3RyaW5nKCksIG9mZnNldCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGRvU2V0VG9wKCkgeworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweEZGRkUpOworICAgICAgICBJbmRpcmVjdEJvdW5kYXJpZXMgaWIgPQorICAgICAgICAgICAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4X107CisgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKGliLm1fc3RhcnRDRV8gPj4gMTYpKTsKKyAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikoaWIubV9zdGFydENFXyAmIDB4RkZGRikpOworICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gMzsKKyAgICAgICAgaWYgKElORElSRUNUX0JPVU5EQVJJRVNfW21fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLm1fc3RhcnRDb250Q0VfID09IDApIHsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0ubV9zdGFydENvbnRDRV8gPj4gMTYpKTsKKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0ubV9zdGFydENvbnRDRV8gJiAweEZGRkYpKTsKKyAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSAyOworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSA1OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNDaGFyTmV3TGluZShjaGFyIGMpIHsKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgMHgwMDBBOiAvKiBMRiAqLworICAgICAgICBjYXNlIDB4MDAwRDogLyogQ1IgKi8KKyAgICAgICAgY2FzZSAweDAwMEM6IC8qIEZGICovCisgICAgICAgIGNhc2UgMHgwMDg1OiAvKiBORUwgKi8KKyAgICAgICAgY2FzZSAweDIwMjg6IC8qIExTICovCisgICAgICAgIGNhc2UgMHgyMDI5OiAvKiBQUyAqLworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBuZXh0IHRva2VuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnRvZnJ1bGVzCisgICAgICogICAgICAgICAgICBmbGFnIGluZGljYXRpbmcgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBydWxlcworICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgcnVsZXMKKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgICAgICAgdGhyb3duIHdoZW4gcnVsZSBwYXJzaW5nIGZhaWxzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcGFyc2VOZXh0VG9rZW4oYm9vbGVhbiBzdGFydG9mcnVsZXMpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gcGFyc2luZyBwYXJ0CisgICAgICAgIGJvb2xlYW4gdmFyaWFibGV0b3AgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiB0b3AgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBpbmNoYXJzID0gdHJ1ZTsKKyAgICAgICAgYm9vbGVhbiBpbnF1b3RlID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gd2FzaW5xdW90ZSA9IGZhbHNlOworICAgICAgICBieXRlIGJlZm9yZSA9IDA7CisgICAgICAgIGJvb2xlYW4gaXNlc2NhcGVkID0gZmFsc2U7CisgICAgICAgIGludCAvKm5ld2NoYXJzbGVuID0gMCwqLyBuZXdleHRlbnNpb25sZW4gPSAwOworICAgICAgICBpbnQgLypjaGFyc29mZnNldCA9IDAsKi8gZXh0ZW5zaW9ub2Zmc2V0ID0gMDsKKyAgICAgICAgaW50IG5ld3N0cmVuZ3RoID0gVE9LRU5fVU5TRVRfOworCisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSAwOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8gPSAwOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeExlbl8gPSAwOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gMDsKKworICAgICAgICBpbnQgbGltaXQgPSBtX3J1bGVzXy5sZW5ndGgoKTsKKyAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBsaW1pdCkgeworICAgICAgICAgICAgY2hhciBjaCA9IG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50Xyk7CisgICAgICAgICAgICBpZiAoaW5xdW90ZSkgeworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMjcpIHsgLy8gJ1wnJworICAgICAgICAgICAgICAgICAgICBpbnF1b3RlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHx8IGluY2hhcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3ZXh0ZW5zaW9ubGVuID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChpc2VzY2FwZWQpIHsKKyAgICAgICAgICAgICAgICBpc2VzY2FwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gMCAmJiBtX2N1cnJlbnRfICE9IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld2V4dGVuc2lvbmxlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0ID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNldHMgdGhlIHN0cmVuZ3RoIGZvciB0aGlzIGVudHJ5CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0QgOiAvLyAnPScKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLklERU5USUNBTDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyQyA6IC8vICcsJworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RhcnQgd2l0aCBzdHJlbmd0aCwgd2UnbGwgcmVzZXQgdG8gdG9wCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRvZnJ1bGVzID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKFRPS0VOX1JFU0VUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuVEVSVElBUlk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0IgOiAvLyAnOycKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlNFQ09OREFSWTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzQyA6IC8vICc8JworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RhcnQgd2l0aCBzdHJlbmd0aCwgd2UnbGwgcmVzZXQgdG8gdG9wCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRvZnJ1bGVzID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKFRPS0VOX1JFU0VUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGlzLCBkbyBhIHNjYW4gdG8gdmVyaWZ5IHdoZXRoZXIgdGhpcyBpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5vdGhlciBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50XyArIDEpID09IDB4MDAzQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50XyArIDEpID09IDB4MDAzQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOyAvLyB0aHJlZSBpbiBhIHJvdyEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5URVJUSUFSWTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHR3byBpbiBhIHJvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlNFQ09OREFSWTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8ganVzdCBvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlBSSU1BUlk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjYgOiAvLyAnJicKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gVE9LRU5fUkVTRVRfOyAvLyBQYXR0ZXJuRW50cnk6OlJFU0VUID0gMAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDViIDogLy8gJ1snCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvcHRpb25zIC0gcmVhZCBhbiBvcHRpb24sIGFuYWx5emUgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3B0aW9uRW5kXyA9IG1fcnVsZXNfLmluZGV4T2YoMHgwMDVkLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX29wdGlvbkVuZF8gIT0gLTEpIHsgLy8gJ10nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSByZXN1bHQgPSByZWFkQW5kU2V0T3B0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyA9IG1fb3B0aW9uRW5kXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdCAmIFRPS0VOX1RPUF9NQVNLXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZm9yZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIGJlZm9yZSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmRpcmVjdGlvbiBsaWtlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJyZbYmVmb3JlIDJdW2ZpcnN0IHJlZ3VsYXJdPGInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweDAwMmQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKChyZXN1bHQgJiBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1JFU0VUXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweEZGRkYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKHJlc3VsdCAmIFRPS0VOX0JFRk9SRV8pICE9IDApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUgPSAoYnl0ZSkocmVzdWx0ICYgVE9LRU5fQkVGT1JFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyRiA6IC8vICcvJworICAgICAgICAgICAgICAgICAgICAgICAgd2FzaW5xdW90ZSA9IGZhbHNlOyAvLyBpZiB3ZSB3ZXJlIGNvcHlpbmcgc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMsIHdlIHdhbnQgdG8gc3RvcCBub3cKKyAgICAgICAgICAgICAgICAgICAgICAgIGluY2hhcnMgPSBmYWxzZTsgLy8gd2UncmUgbm93IHByb2Nlc3NpbmcgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwNUMgOiAvLyBiYWNrIHNsYXNoIGZvciBlc2NhcGVkIGNoYXJzCisgICAgICAgICAgICAgICAgICAgICAgICBpc2VzY2FwZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIGEgcXVvdGUsIHdlJ3JlIGdvbm5hIHN0YXJ0IGNvcHlpbmcKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjcgOiAvLydcJycKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBpcyBpbGxlZ2FsIHVudGlsIHdlIGhhdmUgYSBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW5xdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jaGFycykgeyAvLyB3ZSdyZSBkb2luZyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc2lucXVvdGUgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gLSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB3ZSdyZSBkb2luZyBhbiBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKG1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfIC0gbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gbmV3ZXh0ZW5zaW9ubGVuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3YXNpbnF1b3RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgwMDI3KSB7IC8vIGNvcHkgdGhlIGRvdWJsZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnF1b3RlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgLy8gJ0AnIGlzIGZyZW5jaCBvbmx5IGlmIHRoZSBzdHJlbmd0aCBpcyBub3QgY3VycmVudGx5IHNldAorICAgICAgICAgICAgICAgICAgICAvLyBpZiBpdCBpcywgaXQncyBqdXN0IGEgcmVndWxhciBjaGFyYWN0ZXIgaW4gY29sbGF0aW9uCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDQwIDogLy8gJ0AnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vcHRpb25zXy5tX2lzRnJlbmNoQ29sbGF0aW9uXyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDA3QyA6IC8vfAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtZWFucyB3ZSBoYXZlIGFjdHVhbGx5IGJlZW4gcmVhZGluZyBwcmVmaXggcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Ugd2FudCB0byBzdG9yZSByZWFkIGNoYXJhY3RlcnMgdG8gdGhlIHByZWZpeCBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgY29udGludWUgcmVhZGluZyB0aGUgY2hhcmFjdGVycyAocHJvcGVyIHdheQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd291bGQgYmUgdG8gcmVzdGFydCByZWFkaW5nIHRoZSBjaGFycywgYnV0IGluIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhc2Ugd2Ugd291bGQgaGF2ZSB0byBjb21wbGljYXRlIHRoZSB0b2tlbiBoYXNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBJIGRvIG5vdCBpbnRlbmQgdG8gcGxheSB3aXRoLiBJbnN0ZWFkLCB3ZSB3aWxsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkbyBwcmVmaXhlcyB3aGVuIHByZWZpeGVzIGFyZSBkdWUgKGJlZm9yZSBhZGRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cykuCisgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeExlbl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl87CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jaGFycykgeyAvLyB3ZSdyZSBkb2luZyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc2lucXVvdGUgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwcmVmaXggPSBtX3NvdXJjZV8uc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyAtIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQocHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc2lucXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgd2hpdGVzcGFjZSBiZXR3ZWVuICd8JyBhbmQgdGhlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyMzogLy8gJyMnIC8vIHRoaXMgaXMgYSBjb21tZW50LCBza2lwIGV2ZXJ5dGhpbmcgdGhyb3VnaCB0aGUgZW5kIG9mIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKCFpc0NoYXJOZXdMaW5lKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjE6IC8vICchJyAvLyBpZ25vcmluZyBqYXZhIHNldCB0aGFpIHJlb3JkZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxDaGFyKGNoKSAmJiAoaW5xdW90ZSA9PSBmYWxzZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMDAgJiYgbV9jdXJyZW50XyArIDEgPT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXysrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld2V4dGVuc2lvbmxlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHdhc2lucXVvdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gMHgyNykgeworICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5kIHRoZSBuZXh0IHBhcnNlIHRva2VuCisgICAgICogQHBhcmFtIG5ld3N0cmVuZ3RoIG5ldyBzdHJlbmd0aAorICAgICAqIEByZXR1cm4gb2Zmc2V0IGluIHJ1bGVzLCAtMSBmb3IgZW5kIG9mIHJ1bGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZG9FbmRQYXJzZU5leHRUb2tlbihpbnQgbmV3c3RyZW5ndGgsIC8qaW50IG5ld2NoYXJzbGVuLCovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRvcCwgLyppbnQgY2hhcnNvZmZzZXQsKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHRlbnNpb25vZmZzZXQsIGludCBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZhcmlhYmxldG9wLCBpbnQgYmVmb3JlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDAgJiYgdG9wID09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfID0gbmV3c3RyZW5ndGg7CisgICAgICAgIC8vbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBjaGFyc29mZnNldDsKKyAgICAgICAgLy9tX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IG5ld2NoYXJzbGVuOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbk9mZnNldF8gPSBleHRlbnNpb25vZmZzZXQ7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXyA9IG5ld2V4dGVuc2lvbmxlbjsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9mbGFnc18gPSAoY2hhcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZhcmlhYmxldG9wID8gVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfIDogMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICh0b3AgPyBUT0tFTl9UT1BfTUFTS18gOiAwKSB8IGJlZm9yZSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRva2VuIGJlZm9yZSB0aGlzIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gc291cmNldG9rZW4KKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICogQHJldHVybiB0aGUgdG9rZW4gYmVmb3JlIHNvdXJjZSB0b2tlbgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVsZXMgaGF2ZSB0aGUgd3Jvbmcgc3ludGF4CisgICAgICovCisgICAgcHJpdmF0ZSBUb2tlbiBnZXRWaXJnaW5CZWZvcmUoVG9rZW4gc291cmNldG9rZW4sIGludCBzdHJlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIHRoaXMgaXMgYSB2aXJnaW4gYmVmb3JlIC0gd2UgbmVlZCB0byBmaXNoIHRoZSBhbmNob3IgZnJvbSB0aGUgVUNBCisgICAgICAgIGlmIChzb3VyY2V0b2tlbiAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gc291cmNldG9rZW4ubV9zb3VyY2VfICYgMHhGRkZGRkY7CisgICAgICAgICAgICBtX1VDQUNvbEVJdGVyXy5zZXRUZXh0KG1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyAxKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX1VDQUNvbEVJdGVyXy5zZXRUZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyArIDEpKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBiYXNlY2UgPSBtX1VDQUNvbEVJdGVyXy5uZXh0KCkgJiAweEZGRkZGRjNGOworICAgICAgICBpbnQgYmFzZWNvbnRjZSA9IG1fVUNBQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgaWYgKGJhc2Vjb250Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgYmFzZWNvbnRjZSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY2ggPSAwOworCisKKyAgICAgICAgaWYoKGJhc2VjZSA+Pj4gMjQgPj0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NSU5fKQorICAgICAgICAgICAgICAgICYmIChiYXNlY2UgPj4+IDI0IDw9ICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pKSB7IC8qIGltcGxpY2l0cyAtICovCisKKyAgICAgICAgICAgIGludCBwcmltYXJ5ID0gYmFzZWNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IChiYXNlY29udGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykgPj4gMTY7CisgICAgICAgICAgICBpbnQgcmF3ID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldFJhd0Zyb21JbXBsaWNpdChwcmltYXJ5KTsKKyAgICAgICAgICAgIGNoID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldENvZGVQb2ludEZyb21SYXcocmF3LTEpOworICAgICAgICAgICAgaW50IHByaW1hcnlDRSA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21SYXcocmF3LTEpOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzBdID0gcHJpbWFyeUNFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IDB4MDUwNTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1sxXSA9IChwcmltYXJ5Q0UgPDwgMTYpICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworCisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoJ1x1RkZGRScpOworICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhciljaCk7CisgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gMjsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fKys7CisKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQpCisgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgc291cmNldG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChtX3V0aWxUb2tlbl8pOworCisgICAgICAgICAgICBpZihzb3VyY2V0b2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID0gbmV3IFRva2VuTGlzdEhlYWRlcigpOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8KKyAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxDRUJ1ZmZlcl9bMF0gJiAweEZGRkZGRjNGOworICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihtX3V0aWxDRUJ1ZmZlcl9bMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfCisgICAgICAgICAgICAgICAgICAgID0gbV91dGlsQ0VCdWZmZXJfWzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICBzb3VyY2V0b2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgIGluaXRBUmVzZXQoLTEsIHNvdXJjZXRva2VuKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGVsc2UgeworCisgICAgICAgICAgICAvLyBmaXJzdCBjZSBhbmQgc2Vjb25kIGNlIG1fdXRpbENFQnVmZmVyXworICAgICAgICAgICAgaW50IGludnBvcyA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXy5nZXRJbnZlcnNlUHJldkNFKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWNlLCBiYXNlY29udGNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZW5ndGgsIG1fdXRpbENFQnVmZmVyXyk7CisgICAgICAgICAgICAvLyB3ZSBnb3QgdGhlIHByZXZpb3VzIENFLiBOb3cgd2UgbmVlZCB0byBzZWUgaWYgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgorICAgICAgICAgICAgLy8gdGhlIHR3byBDRXMgaXMgcmVhbGx5IG9mIHRoZSByZXF1ZXN0ZWQgc3RyZW5ndGguCisgICAgICAgICAgICAvLyBpZiBpdCdzIGEgYmlnZ2VyIGRpZmZlcmVuY2UgKHdlIGFza2VkIGZvciBzZWNvbmRhcnkgYW5kIGdvdCBwcmltYXJ5KSwgd2UKKyAgICAgICAgICAgIC8vIG5lZWQgdG8gbW9kaWZ5IHRoZSBDRS4KKyAgICAgICAgICAgIGlmKENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXy5nZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZShiYXNlY2UsIGJhc2Vjb250Y2UsIG1fdXRpbENFQnVmZmVyX1swXSwgbV91dGlsQ0VCdWZmZXJfWzFdKSA8IHN0cmVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gYWRqdXN0IHRoZSBzdHJlbmd0aAorICAgICAgICAgICAgICAgIC8vIG5vdyB3ZSBhcmUgaW4gdGhlIHNpdHVhdGlvbiB3aGVyZSBvdXIgYmFzZUNFIHNob3VsZCBhY3R1YWxseSBiZSBtb2RpZmllZCBpbgorICAgICAgICAgICAgICAgIC8vIG9yZGVyIHRvIGdldCB0aGUgQ0UgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGlmKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMF0gPSBiYXNlY2UgLSAweDAyMDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gc3RyZW5ndGggPT0gVUNPTF9URVJUSUFSWQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMF0gPSBiYXNlY2UgLSAweDAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihiYXNlY29udGNlKSkgeworICAgICAgICAgICAgICAgICAgICBpZihzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1sxXSA9IGJhc2Vjb250Y2UgLSAweDAyMDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHN0cmVuZ3RoID09IFVDT0xfVEVSVElBUlkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1sxXSA9IGJhc2Vjb250Y2UgLSAweDAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisvKgorICAgICAgICAgICAgLy8gdGhlIGNvZGUgYmVsb3cgcmVsaWVzIG9uIGdldHRpbmcgYSBjb2RlIHBvaW50IGZyb20gdGhlIGludmVyc2UgdGFibGUsIGluIG9yZGVyIHRvIGJlCisgICAgICAgICAgICAvLyBhYmxlIHRvIG1lcmdlIHRoZSBzaXR1YXRpb25zIGxpa2UgJnggPCA5ICZbYmVmb3JlIDFdYSA8IGQuIFRoaXMgd29uJ3Qgd29yazoKKyAgICAgICAgICAgIC8vIDEuIFRoZXJlIGFyZSBtYW55IGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSB0aGUgc2FtZSBDRQorICAgICAgICAgICAgLy8gMi4gVGhlIENFIHRvIGNvZGVwb2ludCB0YWJsZSAodGhpbmdzIHBvaW50ZWQgdG8gYnkgQ0VUYWJsZVszKmludlBvcysyXSBhcmUgYnJva2VuLgorICAgICAgICAgICAgLy8gQWxzbywgaW4gY2FzZSB3aGVuIHRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgc3RyZW5ndGggYmVmb3JlIGFuIGVsZW1lbnQsIHdlIGhhdmUgdG8gYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBvbmUuIEZvciBleGFtcGxlLCAmW2JlZm9yZSAyXWEgPDwgeCB3b24ndCByZXN1bHQgaW4geCA8PCBhLCBiZWNhdXNlIHRoZSBlbGVtZW50CisgICAgICAgICAgICAvLyBiZWZvcmUgYSBpcyBhIHByaW1hcnkgZGlmZmVyZW5jZS4KKyAgICAgICAgICAgIGNoID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfLm1fdGFibGVfWzMgKiBpbnZwb3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDJdOworICAgICAgICAgICAgaWYgKChjaCAmICBJTlZFUlNFX1NJWkVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggJiBJTlZFUlNFX09GRlNFVF9NQVNLXzsKKyAgICAgICAgICAgICAgICBjaCA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXy5tX2NvbnRpbnVhdGlvbnNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpY2gpOworICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF8gLSAxOworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSAxOworCisgICAgICAgICAgICAvLyBXZSBnb3QgYW4gVUNBIGJlZm9yZS4gSG93ZXZlciwgdGhpcyBtaWdodCBoYXZlIGJlZW4gdGFpbG9yZWQuCisgICAgICAgICAgICAvLyBleGFtcGxlOgorICAgICAgICAgICAgLy8gJlx1MzBjYSA9IFx1MzA2YQorICAgICAgICAgICAgLy8gJltiZWZvcmUgM11cdTMwNmE8PDxcdTMwNmF8XHUzMDlkCisKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgICAgIHNvdXJjZXRva2VuID0gKFRva2VuKW1faGFzaFRhYmxlXy5nZXQobV91dGlsVG9rZW5fKTsKKyovCisKKyAgICAgICAgICAgIC8vIGhlcmUgaXMgaG93IGl0IHNob3VsZCBiZS4gVGhlIHNpdHVhdGlvbiBzdWNoIGFzICZbYmVmb3JlIDFdYSA8IHgsIHNob3VsZCBiZQorICAgICAgICAgICAgLy8gcmVzb2x2ZWQgZXhhY3RseSBhcyBpZiB3ZSB3cm90ZSAmYSA+IHguCisgICAgICAgICAgICAvLyB0aGVyZWZvcmUsIEkgZG9uJ3QgcmVhbGx5IGNhcmUgaWYgdGhlIFVDQSB2YWx1ZSBiZWZvcmUgYSBoYXMgYmVlbiBjaGFuZ2VkLgorICAgICAgICAgICAgLy8gSG93ZXZlciwgSSBkbyBjYXJlIGlmIHRoZSBzdHJlbmd0aCBiZXR3ZWVuIG15IGVsZW1lbnQgYW5kIHRoZSBwcmV2aW91cyBlbGVtZW50CisgICAgICAgICAgICAvLyBpcyBiaWdnZXIgdGhlbiBJIHdhbnRlZC4gU28sIGlmIENFIDwgYmFzZUNFIGFuZCBJIHdhbnRlZCAmW2JlZm9yZSAyXSwgdGhlbiBpJ2xsCisgICAgICAgICAgICAvLyBoYXZlIHRvIGNvbnN0cnVjdCB0aGUgYmFzZSBDRS4KKworICAgICAgICAgICAgLy8gaWYgd2UgZm91bmQgYSB0YWlsb3JlZCB0aGluZywgd2UgaGF2ZSB0byB1c2UgdGhlIFVDQSB2YWx1ZSBhbmQKKyAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBhIG5ldyByZXNldCB0b2tlbiB3aXRoIGNvbnN0cnVjdGVkIG5hbWUKKyAgICAgICAgICAgIC8vaWYgKHNvdXJjZXRva2VuICE9IG51bGwgJiYgc291cmNldG9rZW4ubV9zdHJlbmd0aF8gIT0gVE9LRU5fUkVTRVRfKSB7CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIHRvIHdoaWNoIHdlIHdhbnQgdG8gYW5jaG9yIGlzIGFscmVhZHkgdGFpbG9yZWQuCisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjb25zdHJ1Y3QgYSBuZXcgdG9rZW4gd2hpY2ggd2lsbCBiZSB0aGUgYW5jaG9yIHBvaW50CisgICAgICAgICAgICAgICAgLy9tX3NvdXJjZV8uc2V0Q2hhckF0KG1fZXh0cmFDdXJyZW50XyAtIDEsICdcdUZGRkUnKTsKKyAgICAgICAgICAgICAgICAvL21fc291cmNlXy5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIC8vbV9leHRyYUN1cnJlbnRfICsrOworICAgICAgICAgICAgICAgIC8vbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICAgICAgLy8gZ3JhYiBiZWZvcmUKKyAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyAtPSAxMDsKKyAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArPSAxMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyKCk7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV91dGlsQ0VCdWZmZXJfWzBdICYgMHhGRkZGRkYzRjsKKyAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24obV91dGlsQ0VCdWZmZXJfWzFdKSkgeworICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbENFQnVmZmVyX1sxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IGZhbHNlOworICAgICAgICAgICAgICAgIHNvdXJjZXRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgaW5pdEFSZXNldCgtMSwgc291cmNldG9rZW4pOworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNvdXJjZXRva2VuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb2Nlc3NpbmcgRGVzY3JpcHRpb24uCisgICAgICogMS4gQnVpbGQgYSBtX2xpc3RIZWFkZXJfLiBFYWNoIGxpc3QgaGFzIGEgaGVhZGVyLCB3aGljaCBjb250YWlucyB0d28gbGlzdHMKKyAgICAgKiAocG9zaXRpdmUgYW5kIG5lZ2F0aXZlKSwgYSByZXNldCB0b2tlbiwgYSBiYXNlQ0UsIG5leHRDRSwgYW5kCisgICAgICogcHJldmlvdXNDRS4gVGhlIGxpc3RzIGFuZCByZXNldCBtYXkgYmUgbnVsbC4KKyAgICAgKiAyLiBBcyB5b3UgcHJvY2VzcywgeW91IGtlZXAgYSBMQVNUIHBvaW50ZXIgdGhhdCBwb2ludHMgdG8gdGhlIGxhc3QgdG9rZW4KKyAgICAgKiB5b3UgaGFuZGxlZC4KKyAgICAgKiBAcGFyYW0gZXhwYW5kIHN0cmluZyBvZmZzZXQsIC0xIGZvciBudWxsIHN0cmluZ3MKKyAgICAgKiBAcGFyYW0gdGFyZ2V0VG9rZW4gdG9rZW4gdG8gdXBkYXRlCisgICAgICogQHJldHVybiBleHBhbmRuZXh0IG9mZnNldAorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVsZXMgc3ludGF4IGZhaWxlZAorICAgICAqLworICAgIHByaXZhdGUgaW50IGluaXRBUmVzZXQoaW50IGV4cGFuZCwgVG9rZW4gdGFyZ2V0VG9rZW4pIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKG1fcmVzdWx0TGVuZ3RoXyA9PSBtX2xpc3RIZWFkZXJfLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIHRoaXMgd29uJ3Qgd29yaywgYXMgd2Ugc3RvcmUgYWRkcmVzc2VzIG9mIGxocyBpbgorICAgICAgICAgICAgLy8gdG9rZW4KKyAgICAgICAgICAgIFRva2VuTGlzdEhlYWRlciB0ZW1wW10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyW21fcmVzdWx0TGVuZ3RoXyA8PCAxXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9saXN0SGVhZGVyXywgMCwgdGVtcCwgMCwgbV9yZXN1bHRMZW5ndGhfICsgMSk7CisgICAgICAgICAgICBtX2xpc3RIZWFkZXJfID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICAvLyBkbyB0aGUgcmVzZXQgdGhpbmcKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgIHRhcmdldFRva2VuLm1fc291cmNlXyA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgIHRhcmdldFRva2VuLm1fZXhwYW5zaW9uXyA9IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgLy8ga2VlcCB0aGUgZmxhZ3MgYXJvdW5kIHNvIHRoYXQgd2Uga25vdyBhYm91dCBiZWZvcmUKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9mbGFnc18gPSBtX3BhcnNlZFRva2VuXy5tX2ZsYWdzXzsKKworICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfICE9IDApIHsKKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfIC0gMSk7CisgICAgICAgIH0KKworICAgICAgICB0YXJnZXRUb2tlbi5tX3ByZWZpeF8gPSAwOworICAgICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBhbHNvIGhhbmRsZSByZXZlcnNlCisgICAgICAgIHRhcmdldFRva2VuLm1fcG9sYXJpdHlfID0gVE9LRU5fUE9MQVJJVFlfUE9TSVRJVkVfOworICAgICAgICB0YXJnZXRUb2tlbi5tX3N0cmVuZ3RoXyA9IFRPS0VOX1JFU0VUXzsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9uZXh0XyA9IG51bGw7CisgICAgICAgIHRhcmdldFRva2VuLm1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICB0YXJnZXRUb2tlbi5tX2V4cENFTGVuZ3RoXyA9IDA7CisgICAgICAgIHRhcmdldFRva2VuLm1fbGlzdEhlYWRlcl8gPSBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX107CisgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2ZpcnN0XyA9IG51bGw7CisgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2xhc3RfID0gbnVsbDsKKyAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fZmlyc3RfID0gbnVsbDsKKyAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbGFzdF8gPSBudWxsOworICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9yZXNldF8gPSB0YXJnZXRUb2tlbjsKKworICAgICAgICAvKiAzIENvbnNpZGVyIGVhY2ggaXRlbTogcmVsYXRpb24sIHNvdXJjZSwgYW5kIGV4cGFuc2lvbjoKKyAgICAgICAgICogZS5nLiAuLi48IHggLyB5IC4uLgorICAgICAgICAgKiBGaXJzdCBjb252ZXJ0IGFsbCBleHBhbnNpb25zIGludG8gbm9ybWFsIGZvcm0uIEV4YW1wbGVzOgorICAgICAgICAgKiBJZiAieHkiIGRvZXNuJ3Qgb2NjdXIgZWFybGllciBpbiB0aGUgbGlzdCBvciBpbiB0aGUgVUNBLCBjb252ZXJ0CisgICAgICAgICAqICZ4eSAqIGMgKiBkICogLi4uIGludG8gJnggKiBjL3kgKiBkICogLi4uCisgICAgICAgICAqIE5vdGU6IHJlc2V0IHZhbHVlcyBjYW4gbmV2ZXIgaGF2ZSBleHBhbnNpb25zLCBhbHRob3VnaCB0aGV5IGNhbgorICAgICAgICAgKiBjYXVzZSB0aGUgdmVyeSBuZXh0IGl0ZW0gdG8gaGF2ZSBvbmUuIFRoZXkgbWF5IGJlIGNvbnRyYWN0aW9ucywgaWYKKyAgICAgICAgICogdGhleSBhcmUgZm91bmQgZWFybGllciBpbiB0aGUgbGlzdC4KKyAgICAgICAgICovCisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpZiAoZXhwYW5kID4gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGV4cGFuc2lvbgorICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID4gMSkgeworICAgICAgICAgICAgICAgIHRhcmdldFRva2VuLm1fc291cmNlXyA9ICgoZXhwYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAoKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyAtIGV4cGFuZCkgPDwgMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHBhbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX3Jlc3VsdExlbmd0aF8gKys7CisgICAgICAgIG1faGFzaFRhYmxlXy5wdXQodGFyZ2V0VG9rZW4sIHRhcmdldFRva2VuKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYW4gY2hhcmFjdGVyIGlzIHNwZWNpYWwKKyAgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBzcGVjaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1NwZWNpYWxDaGFyKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKGNoIDw9IDB4MDAyRiAmJiBjaCA+PSAweDAwMjApIHx8IChjaCA8PSAweDAwM0YgJiYgY2ggPj0gMHgwMDNBKQorICAgICAgICAgICAgICAgfHwgKGNoIDw9IDB4MDA2MCAmJiBjaCA+PSAweDAwNUIpCisgICAgICAgICAgICAgICB8fCAoY2ggPD0gMHgwMDdFICYmIGNoID49IDB4MDA3RCkgfHwgY2ggPT0gMHgwMDdCOworICAgIH0KKworICAgIHByaXZhdGUKKyAgICBVbmljb2RlU2V0IHJlYWRBbmRTZXRVbmljb2RlU2V0KFN0cmluZyBzb3VyY2UsIGludCBzdGFydCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgd2hpbGUoc291cmNlLmNoYXJBdChzdGFydCkgIT0gJ1snKSB7IC8qIGFkdmFuY2Ugd2hpbGUgd2UgZmluZCB0aGUgZmlyc3QgJ1snICovCisgICAgICAgIHN0YXJ0Kys7CisgICAgICB9CisgICAgICAvLyBub3cgd2UgbmVlZCB0byBnZXQgYSBiYWxhbmNlZCBzZXQgb2YgJ1tdJy4gVGhlIHByb2JsZW0gaXMgdGhhdCBhIHNldCBjYW4gaGF2ZQorICAgICAgLy8gbWFueSwgYW5kICplbmQgcG9pbnQgdG8gdGhlIGZpcnN0IGNsb3NpbmcgJ1snCisgICAgICBpbnQgbm9PcGVuQnJhY2VzID0gMTsKKyAgICAgIGludCBjdXJyZW50ID0gMTsgLy8gc2tpcCB0aGUgb3BlbmluZyBicmFjZQorICAgICAgd2hpbGUoc3RhcnQrY3VycmVudCA8IHNvdXJjZS5sZW5ndGgoKSAmJiBub09wZW5CcmFjZXMgIT0gMCkgeworICAgICAgICBpZihzb3VyY2UuY2hhckF0KHN0YXJ0K2N1cnJlbnQpID09ICdbJykgeworICAgICAgICAgIG5vT3BlbkJyYWNlcysrOworICAgICAgICB9IGVsc2UgaWYoc291cmNlLmNoYXJBdChzdGFydCtjdXJyZW50KSA9PSAnXScpIHsgLy8gY2xvc2luZyBicmFjZQorICAgICAgICAgIG5vT3BlbkJyYWNlcy0tOworICAgICAgICB9CisgICAgICAgIGN1cnJlbnQrKzsKKyAgICAgIH0KKyAgICAgIC8vaW50IG5leHRCcmFjZSA9IC0xOworCisgICAgICBpZihub09wZW5CcmFjZXMgIT0gMCB8fCAoLypuZXh0QnJhY2UgPSovIHNvdXJjZS5pbmRleE9mKCJdIiwgc3RhcnQrY3VycmVudCkgLyonXScqLykgPT0gLTEpIHsKKyAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgc3RhcnQpOworICAgICAgfQorICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIHN0YXJ0K2N1cnJlbnQpKTsgLy91c2V0X29wZW5QYXR0ZXJuKHN0YXJ0LCBjdXJyZW50KTsKKyAgICB9CisKKworICAgIC8qKiBpbiBDLCBvcHRpb25hcmcgaXMgcGFzc2VkIGJ5IHJlZmVyZW5jZSB0byBmdW5jdGlvbi4KKyAgICAgKiAgV2UgdXNlIGEgcHJpdmF0ZSBpbnQgdG8gc2ltdWxhdGUgdGhpcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX29wdGlvbmFyZ18gPSAwOworCisgICAgcHJpdmF0ZSBpbnQgcmVhZE9wdGlvbihTdHJpbmcgcnVsZXMsIGludCBzdGFydCwgaW50IG9wdGlvbmVuZCkKKyAgICB7CisgICAgICAgIG1fb3B0aW9uYXJnXyA9IDA7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCBSVUxFU19PUFRJT05TXy5sZW5ndGgpIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBSVUxFU19PUFRJT05TX1tpXS5tX25hbWVfOworICAgICAgICAgICAgaW50IG9wdGlvbmxlbmd0aCA9IG9wdGlvbi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChydWxlcy5sZW5ndGgoKSA+IHN0YXJ0ICsgb3B0aW9ubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgb3B0aW9uLmVxdWFsc0lnbm9yZUNhc2UocnVsZXMuc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyBvcHRpb25sZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGlmIChvcHRpb25lbmQgLSBzdGFydCA+IG9wdGlvbmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBtX29wdGlvbmFyZ18gPSBzdGFydCArIG9wdGlvbmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgb2YgdGhlIG9wdGlvbnMsIHNraXAgc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fb3B0aW9uYXJnXyA8IG9wdGlvbmVuZCAmJiBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShydWxlcy5jaGFyQXQobV9vcHRpb25hcmdfKSkpCisgICAgICAgICAgICAgICAgICAgIHsgICAvLyBlYXQgd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgICAgICAgICAgbV9vcHRpb25hcmdfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSArKzsKKyAgICAgICAgfQorICAgICAgICBpZihpID09IFJVTEVTX09QVElPTlNfLmxlbmd0aCkgeworICAgICAgICAgICAgaSA9IC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZWFkcyBhbmQgc2V0IGNvbGxhdGlvbiBvcHRpb25zCisgICAgICogQHJldHVybiBUT0tFTl9TVUNDRVNTIGlmIG9wdGlvbiBpcyBzZXQgY29ycmVjdCwgMCBvdGhlcndpc2UKKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIG9wdGlvbnMgaW4gcnVsZXMgYXJlIHdyb25nCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlIHJlYWRBbmRTZXRPcHRpb24oKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGludCBzdGFydCA9IG1fY3VycmVudF8gKyAxOyAvLyBza2lwIG9wZW5pbmcgJ1snCisgICAgICAgIGludCBpID0gcmVhZE9wdGlvbihtX3J1bGVzXywgc3RhcnQsIG1fb3B0aW9uRW5kXyk7CisKKyAgICAgICAgaW50IG9wdGlvbmFyZyA9IG1fb3B0aW9uYXJnXzsKKworICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpIDwgNykgeworICAgICAgICAgICAgaWYgKG9wdGlvbmFyZyAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWJuYW1lID0gUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zX1tqXTsKKyAgICAgICAgICAgICAgICAgICAgIGludCBzaXplID0gb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5sZW5ndGgoKSA+IHNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJuYW1lLmVxdWFsc0lnbm9yZUNhc2UobV9ydWxlc18uc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hcmcsIHNpemUpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wdGlvbnMobV9vcHRpb25zXywgUlVMRVNfT1BUSU9OU19baV0ubV9hdHRyaWJ1dGVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc19bal0pOworICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaSA9PSA3KSB7IC8vIHZhcmlhYmxlIHRvcAorICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS18gfCBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaSA9PSA4KSB7IC8vIHJlYXJhbmdlCisgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpID09IDkpIHsgLy8gYmVmb3JlCisgICAgICAgICAgICBpZiAob3B0aW9uYXJnICE9IDApIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc18ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN1Ym5hbWUgPSBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfW2pdOworICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBvcHRpb25hcmcgKyBzdWJuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcnVsZXNfLmxlbmd0aCgpID4gc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1Ym5hbWUuZXF1YWxzSWdub3JlQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ydWxlc18uc3Vic3RyaW5nKG9wdGlvbmFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hcmcgKyBzdWJuYW1lLmxlbmd0aCgpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGJ5dGUpKFRPS0VOX1NVQ0NFU1NfTUFTS18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzX1tqXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgb3B0aW9uYXJnKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpID09IDEwKSB7ICAvLyB0b3AsIHdlIGFyZSBnb2luZyB0byBoYXZlIGFuIGFycmF5IHdpdGgKKyAgICAgICAgICAgIC8vIHN0cnVjdHVyZXMgb2YgbGltaXQgQ0VzIGluZGV4IHRvIHRoaXMgYXJyYXkgd2lsbCBiZQorICAgICAgICAgICAgLy8gc3JjLT5wYXJzZWRUb2tlbi5pbmRpcmVjdEluZGV4CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gMDsKKyAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfIHwgVE9LRU5fVE9QX01BU0tfOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGkgPCAxMykgeyAvLyBmaXJzdCwgbGFzdAorICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfLmxlbmd0aDsgaiArKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdWJuYW1lID0gUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zX1tqXTsKKyAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IG9wdGlvbmFyZyArIHN1Ym5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKG1fcnVsZXNfLmxlbmd0aCgpID4gc2l6ZQorICAgICAgICAgICAgICAgICAgICAmJiBzdWJuYW1lLmVxdWFsc0lnbm9yZUNhc2UobV9ydWxlc18uc3Vic3RyaW5nKG9wdGlvbmFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IChjaGFyKShpIC0gMTAgKyAoaiA8PCAxKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfIHwgVE9LRU5fVE9QX01BU0tfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihpID09IDEzIHx8IGkgPT0gMTQpIHsgLy8gY29weSBhbmQgcmVtb3ZlIGFyZSBoYW5kbGVkIGJlZm9yZSBub3JtYWxpemF0aW9uCisgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIG1vdmUgZW5kIGhlcmUKKyAgICAgICAgICAgIGludCBub09wZW5CcmFjZXMgPSAxOworICAgICAgICAgICAgbV9jdXJyZW50XysrOyAvLyBza2lwIG9wZW5pbmcgYnJhY2UKKyAgICAgICAgICAgIHdoaWxlKG1fY3VycmVudF8gPCBtX3NvdXJjZV8ubGVuZ3RoKCkgJiYgbm9PcGVuQnJhY2VzICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZihtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pID09ICdbJykgeworICAgICAgICAgICAgICAgICAgbm9PcGVuQnJhY2VzKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50XykgPT0gJ10nKSB7IC8vIGNsb3NpbmcgYnJhY2UKKyAgICAgICAgICAgICAgICAgIG5vT3BlbkJyYWNlcy0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX29wdGlvbkVuZF8gPSBtX2N1cnJlbnRfLTE7CisgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187IC8vIHdlIHdpbGwgbmV2ZXIgcmVhY2ggaGVyZS4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29sbGF0aW9uIG9wdGlvbgorICAgICAqIEBwYXJhbSBvcHRpb25zZXQgb3B0aW9uIHNldCB0byBzZXQKKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHR5cGUgdG8gc2V0CisgICAgICogQHBhcmFtIHZhbHVlIGF0dHJpYnV0ZSB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRPcHRpb25zKE9wdGlvblNldCBvcHRpb25zZXQsIGludCBhdHRyaWJ1dGUsIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5ISVJBR0FOQV9RVUFURVJOQVJZX01PREVfIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9pc0hpcmFnYW5hNF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuRlJFTkNIX0NPTExBVElPTl8gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2lzRnJlbmNoQ29sbGF0aW9uXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQUxURVJOQVRFX0hBTkRMSU5HXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNISUZURURfKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfRklSU1RfIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9jYXNlRmlyc3RfID0gdmFsdWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5DQVNFX0xFVkVMXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNDYXNlTGV2ZWxfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5OT1JNQUxJWkFUSU9OX01PREVfIDoKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2RlY29tcG9zaXRpb25fID0gdmFsdWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5TVFJFTkdUSF8gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX3N0cmVuZ3RoXyA9IHZhbHVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdCA6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgIFVuaWNvZGVTZXQgZ2V0VGFpbG9yZWRTZXQoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGJvb2xlYW4gc3RhcnRPZlJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgVW5pY29kZVNldCB0YWlsb3JlZCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuOworICAgICAgICBDYW5vbmljYWxJdGVyYXRvciBpdCA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcigiIik7CisKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF8gPSBUT0tFTl9VTlNFVF87CisgICAgICAgIGludCBzb3VyY2VsaW1pdCA9IG1fc291cmNlXy5sZW5ndGgoKTsKKyAgICAgICAgLy9pbnQgZXhwYW5kTmV4dCA9IDA7CisKKyAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBzb3VyY2VsaW1pdCkgeworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8gPSAwOworICAgICAgICBpZiAocGFyc2VOZXh0VG9rZW4oc3RhcnRPZlJ1bGVzKSA8IDApIHsKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBzdGFydE9mUnVsZXMgPSBmYWxzZTsKKyAgICAgICAgLy8gVGhlIGlkZWEgaXMgdG8gdG9rZW5pemUgdGhlIHJ1bGUgc2V0LiBGb3IgZWFjaCBub24tcmVzZXQgdG9rZW4sCisgICAgICAgIC8vIHdlIGFkZCBhbGwgdGhlIGNhbm9uaWNhbHkgZXF1aXZhbGVudCBGQ0Qgc2VxdWVuY2VzCisgICAgICAgICAgICBpZihtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICBpdC5zZXRTb3VyY2UobV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XywKKyAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyttX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXykpOworICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUocGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5xdWlja0NoZWNrKHBhdHRlcm4sIE5vcm1hbGl6ZXIuRkNELDApICE9IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhaWxvcmVkLmFkZChwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFpbG9yZWQ7CisgICAgfQorCisgICAgZmluYWwgcHJpdmF0ZSB2b2lkIGV4dHJhY3RTZXRzRnJvbVJ1bGVzKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgIGludCBvcHRpb25OdW1iZXIgPSAtMTsKKyAgICAgIGludCBzZXRTdGFydCA9IDA7CisgICAgICBpbnQgaSA9IDA7CisgICAgICB3aGlsZShpIDwgcnVsZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYocnVsZXMuY2hhckF0KGkpID09IDB4MDA1QikgeworICAgICAgICAgIG9wdGlvbk51bWJlciA9IHJlYWRPcHRpb24ocnVsZXMsIGkrMSwgcnVsZXMubGVuZ3RoKCkpOworICAgICAgICAgIHNldFN0YXJ0ID0gbV9vcHRpb25hcmdfOworICAgICAgICAgIGlmKG9wdGlvbk51bWJlciA9PSAxMykgeyAvKiBjb3B5IC0gcGFydHMgb2YgVUNBIHRvIHRhaWxvcmluZyAqLworICAgICAgICAgICAgVW5pY29kZVNldCBuZXdTZXQgPSByZWFkQW5kU2V0VW5pY29kZVNldChydWxlcywgc2V0U3RhcnQpOworICAgICAgICAgICAgICBpZihtX2NvcHlTZXRfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2NvcHlTZXRfID0gbmV3U2V0OworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29weVNldF8uYWRkQWxsKG5ld1NldCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uTnVtYmVyID09IDE0KSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IG5ld1NldCA9IHJlYWRBbmRTZXRVbmljb2RlU2V0KHJ1bGVzLCBzZXRTdGFydCk7CisgICAgICAgICAgICAgIGlmKG1fcmVtb3ZlU2V0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9yZW1vdmVTZXRfID0gbmV3U2V0OworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1fcmVtb3ZlU2V0Xy5hZGRBbGwobmV3U2V0KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpKys7CisgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2QzOTMwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEKQEAgLTAsMCArMSwxMDM4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorKiA8cD5Db2xsYXRvciBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIHN0cmluZyBjb21wYXJpc29uLiBBIGNvbmNyZXRlCisqIHN1YmNsYXNzLCBSdWxlQmFzZWRDb2xsYXRvciwgYWxsb3dzIGN1c3RvbWl6YXRpb24gb2YgdGhlIGNvbGxhdGlvbgorKiBvcmRlcmluZyBieSB0aGUgdXNlIG9mIHJ1bGUgc2V0cy48L3A+CisqCisqIDxwPkZvbGxvd2luZyB0aGUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnPlVuaWNvZGUKKyogQ29uc29ydGl1bTwvYT4ncyBzcGVjaWZpY2F0aW9ucyBmb3IgdGhlCisqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTAvIj4gVW5pY29kZSBDb2xsYXRpb24KKyogQWxnb3JpdGhtIChVQ0EpPC9hPiwgdGhlcmUgYXJlIDUgZGlmZmVyZW50IGxldmVscyBvZiBzdHJlbmd0aCB1c2VkCisqIGluIGNvbXBhcmlzb25zOgorKgorKiA8dWw+CisqIDxsaT5QUklNQVJZIHN0cmVuZ3RoOiBUeXBpY2FsbHksIHRoaXMgaXMgdXNlZCB0byBkZW5vdGUgZGlmZmVyZW5jZXMgYmV0d2VlbgorKiAgICAgYmFzZSBjaGFyYWN0ZXJzIChmb3IgZXhhbXBsZSwgImEiICZsdDsgImIiKS4KKyogICAgIEl0IGlzIHRoZSBzdHJvbmdlc3QgZGlmZmVyZW5jZS4gRm9yIGV4YW1wbGUsIGRpY3Rpb25hcmllcyBhcmUgZGl2aWRlZAorKiAgICAgaW50byBkaWZmZXJlbnQgc2VjdGlvbnMgYnkgYmFzZSBjaGFyYWN0ZXIuCisqIDxsaT5TRUNPTkRBUlkgc3RyZW5ndGg6IEFjY2VudHMgaW4gdGhlIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5CisqICAgICBkaWZmZXJlbmNlcyAoZm9yIGV4YW1wbGUsICJhcyIgJmx0OyAiJmFncmF2ZTtzIiAmbHQ7ICJhdCIpLiBPdGhlcgorKiAgICAgZGlmZmVyZW5jZXMKKyogICAgIGJldHdlZW4gbGV0dGVycyBjYW4gYWxzbyBiZSBjb25zaWRlcmVkIHNlY29uZGFyeSBkaWZmZXJlbmNlcywgZGVwZW5kaW5nCisqICAgICBvbiB0aGUgbGFuZ3VhZ2UuIEEgc2Vjb25kYXJ5IGRpZmZlcmVuY2UgaXMgaWdub3JlZCB3aGVuIHRoZXJlIGlzIGEKKyogICAgIHByaW1hcnkgZGlmZmVyZW5jZSBhbnl3aGVyZSBpbiB0aGUgc3RyaW5ncy4KKyogPGxpPlRFUlRJQVJZIHN0cmVuZ3RoOiBVcHBlciBhbmQgbG93ZXIgY2FzZSBkaWZmZXJlbmNlcyBpbiBjaGFyYWN0ZXJzIGFyZQorKiAgICAgZGlzdGluZ3Vpc2hlZCBhdCB0ZXJ0aWFyeSBzdHJlbmd0aCAoZm9yIGV4YW1wbGUsICJhbyIgJmx0OyAiQW8iICZsdDsKKyogICAgICJhJm9ncmF2ZTsiKS4gSW4gYWRkaXRpb24sIGEgdmFyaWFudCBvZiBhIGxldHRlciBkaWZmZXJzIGZyb20gdGhlIGJhc2UKKyogICAgIGZvcm0gb24gdGhlIHRlcnRpYXJ5IHN0cmVuZ3RoIChzdWNoIGFzICJBIiBhbmQgIiYjOTM5ODsiKS4gQW5vdGhlcgorKiAgICAgZXhhbXBsZSBpcyB0aGUKKyogICAgIGRpZmZlcmVuY2UgYmV0d2VlbiBsYXJnZSBhbmQgc21hbGwgS2FuYS4gQSB0ZXJ0aWFyeSBkaWZmZXJlbmNlIGlzIGlnbm9yZWQKKyogICAgIHdoZW4gdGhlcmUgaXMgYSBwcmltYXJ5IG9yIHNlY29uZGFyeSBkaWZmZXJlbmNlIGFueXdoZXJlIGluIHRoZSBzdHJpbmdzLgorKiA8bGk+UVVBVEVSTkFSWSBzdHJlbmd0aDogV2hlbiBwdW5jdHVhdGlvbiBpcyBpZ25vcmVkCisqICAgICA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9Db25jZXB0cy5odG1sI0lnbm9yaW5nX1B1bmN0dWF0aW9uIj4KKyogICAgIChzZWUgSWdub3JpbmcgUHVuY3R1YXRpb25zIGluIHRoZSB1c2VyIGd1aWRlKTwvYT4gYXQgUFJJTUFSWSB0byBURVJUSUFSWQorKiAgICAgc3RyZW5ndGgsIGFuIGFkZGl0aW9uYWwgc3RyZW5ndGggbGV2ZWwgY2FuCisqICAgICBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdvcmRzIHdpdGggYW5kIHdpdGhvdXQgcHVuY3R1YXRpb24gKGZvciBleGFtcGxlLAorKiAgICAgImFiIiAmbHQ7ICJhLWIiICZsdDsgImFCIikuCisqICAgICBUaGlzIGRpZmZlcmVuY2UgaXMgaWdub3JlZCB3aGVuIHRoZXJlIGlzIGEgUFJJTUFSWSwgU0VDT05EQVJZIG9yIFRFUlRJQVJZCisqICAgICBkaWZmZXJlbmNlLiBUaGUgUVVBVEVSTkFSWSBzdHJlbmd0aCBzaG91bGQgb25seSBiZSB1c2VkIGlmIGlnbm9yaW5nCisqICAgICBwdW5jdHVhdGlvbiBpcyByZXF1aXJlZC4KKyogPGxpPklERU5USUNBTCBzdHJlbmd0aDoKKyogICAgIFdoZW4gYWxsIG90aGVyIHN0cmVuZ3RocyBhcmUgZXF1YWwsIHRoZSBJREVOVElDQUwgc3RyZW5ndGggaXMgdXNlZCBhcyBhCisqICAgICB0aWVicmVha2VyLiBUaGUgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlcyBvZiB0aGUgTkZEIGZvcm0gb2YgZWFjaCBzdHJpbmcKKyogICAgIGFyZSBjb21wYXJlZCwganVzdCBpbiBjYXNlIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UuCisqICAgICBGb3IgZXhhbXBsZSwgSGVicmV3IGNhbnRlbGxhdGlvbiBtYXJrcyBhcmUgb25seSBkaXN0aW5ndWlzaGVkIGF0IHRoaXMKKyogICAgIHN0cmVuZ3RoLiBUaGlzIHN0cmVuZ3RoIHNob3VsZCBiZSB1c2VkIHNwYXJpbmdseSwgYXMgb25seSBjb2RlIHBvaW50CisqICAgICB2YWx1ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBzdHJpbmdzIGlzIGFuIGV4dHJlbWVseSByYXJlIG9jY3VycmVuY2UuCisqICAgICBVc2luZyB0aGlzIHN0cmVuZ3RoIHN1YnN0YW50aWFsbHkgZGVjcmVhc2VzIHRoZSBwZXJmb3JtYW5jZSBmb3IgYm90aAorKiAgICAgY29tcGFyaXNvbiBhbmQgY29sbGF0aW9uIGtleSBnZW5lcmF0aW9uIEFQSXMuIFRoaXMgc3RyZW5ndGggYWxzbworKiAgICAgaW5jcmVhc2VzIHRoZSBzaXplIG9mIHRoZSBjb2xsYXRpb24ga2V5LgorKiA8L3VsPgorKgorKiBVbmxpa2UgdGhlIEpESywgSUNVNEoncyBDb2xsYXRvciBkZWFscyBvbmx5IHdpdGggMiBkZWNvbXBvc2l0aW9uIG1vZGVzLAorKiB0aGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gbW9kZSBhbmQgb25lIHRoYXQgZG9lcyBub3QgdXNlIGFueSBkZWNvbXBvc2l0aW9uLgorKiBUaGUgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIG1vZGUsIGphdmEudGV4dC5Db2xsYXRvci5GVUxMX0RFQ09NUE9TSVRJT04KKyogaXMgbm90IHN1cHBvcnRlZCBoZXJlLiBJZiB0aGUgY2Fub25pY2FsCisqIGRlY29tcG9zaXRpb24gbW9kZSBpcyBzZXQsIHRoZSBDb2xsYXRvciBoYW5kbGVzIHVuLW5vcm1hbGl6ZWQgdGV4dCBwcm9wZXJseSwKKyogcHJvZHVjaW5nIHRoZSBzYW1lIHJlc3VsdHMgYXMgaWYgdGhlIHRleHQgd2VyZSBub3JtYWxpemVkIGluIE5GRC4gSWYKKyogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gaXMgdHVybmVkIG9mZiwgaXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0bworKiBlbnN1cmUgdGhhdCBhbGwgdGV4dCBpcyBhbHJlYWR5IGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlZm9yZSBwZXJmb3JtaW5nCisqIGEgY29tcGFyaXNvbiBvciBiZWZvcmUgZ2V0dGluZyBhIENvbGxhdGlvbktleS48L3A+CisqCisqIDxwPkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2xsYXRpb24gc2VydmljZSBzZWUgdGhlCisqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0ludHJvLmh0bWwiPnVzZXJzCisqIGd1aWRlPC9hPi48L3A+CisqCisqIDxwPkV4YW1wbGVzIG9mIHVzZQorKiA8cHJlPgorKiAvLyBHZXQgdGhlIENvbGxhdG9yIGZvciBVUyBFbmdsaXNoIGFuZCBzZXQgaXRzIHN0cmVuZ3RoIHRvIFBSSU1BUlkKKyogQ29sbGF0b3IgdXNDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisqIHVzQ29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisqIGlmICh1c0NvbGxhdG9yLmNvbXBhcmUoImFiYyIsICJBQkMiKSA9PSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZ3MgYXJlIGVxdWl2YWxlbnQiKTsKKyogfQorKgorKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIGNvbXBhcmUgdHdvIHN0cmluZ3MgdXNpbmcgdGhlCisqIENvbGxhdG9yIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisqCisqIC8vIENvbXBhcmUgdHdvIHN0cmluZ3MgaW4gdGhlIGRlZmF1bHQgbG9jYWxlCisqIENvbGxhdG9yIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworKiBteUNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oTk9fREVDT01QT1NJVElPTik7CisqIGlmIChteUNvbGxhdG9yLmNvbXBhcmUoIiZhZ3JhdmU7JiM5Mjt1MDMyNSIsICJhJiM5Mjt1MDMyNSYjNzY4OyIpICE9IDApIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJmFncmF2ZTsmIzkyO3UwMzI1IGlzIG5vdCBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aG91dCBkZWNvbXBvc2l0aW9uIik7CisqICAgICBteUNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworKiAgICAgaWYgKG15Q29sbGF0b3IuY29tcGFyZSgiJmFncmF2ZTsmIzkyO3UwMzI1IiwgImEmIzkyO3UwMzI1JiM3Njg7IikgIT0gMCkgeworKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3I6ICZhZ3JhdmU7JiM5Mjt1MDMyNSBzaG91bGQgYmUgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGggZGVjb21wb3NpdGlvbiIpOworKiAgICAgfQorKiAgICAgZWxzZSB7CisqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCImYWdyYXZlOyYjOTI7dTAzMjUgaXMgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGggZGVjb21wb3NpdGlvbiIpOworKiAgICAgfQorKiB9CisqIGVsc2UgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvcjogJmFncmF2ZTsmIzkyO3UwMzI1IHNob3VsZCBiZSBub3QgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGhvdXQgZGVjb21wb3NpdGlvbiIpOworKiB9CisqIDwvcHJlPgorKiA8L3A+CisqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyogQHNlZSBDb2xsYXRpb25LZXkKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHN0YWJsZSBJQ1UgMi44CisqLworcHVibGljIGFic3RyYWN0IGNsYXNzIENvbGxhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciwgQ2xvbmVhYmxlCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFN0cm9uZ2VzdCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4gVHlwaWNhbGx5IHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzCisgICAgICogYmV0d2VlbiBiYXNlIGNoYXJhY3RlcnMuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBQUklNQVJZID0gMDsKKworICAgIC8qKgorICAgICAqIFNlY29uZCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeSBkaWZmZXJlbmNlcy4KKyAgICAgKiBPdGhlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkKKyAgICAgKiBkaWZmZXJlbmNlcywgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EQVJZID0gMTsKKworICAgIC8qKgorICAgICAqIFRoaXJkIGxldmVsIGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlIGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworICAgICAqIHN0cmVuZ3RoIGxldmVsLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZQorICAgICAqIGZvcm0gb24gdGhlIHRlcnRpYXJ5IGxldmVsLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBURVJUSUFSWSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBGb3VydGggbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuCisgICAgICogV2hlbiBwdW5jdHVhdGlvbiBpcyBpZ25vcmVkCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ29uY2VwdHMuaHRtbCNJZ25vcmluZ19QdW5jdHVhdGlvbiI+CisgICAgICogKHNlZSBJZ25vcmluZyBQdW5jdHVhdGlvbnMgaW4gdGhlIHVzZXIgZ3VpZGUpPC9hPiBhdCBQUklNQVJZIHRvIFRFUlRJQVJZCisgICAgICogc3RyZW5ndGgsIGFuIGFkZGl0aW9uYWwgc3RyZW5ndGggbGV2ZWwgY2FuCisgICAgICogYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB3b3JkcyB3aXRoIGFuZCB3aXRob3V0IHB1bmN0dWF0aW9uLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBRVUFURVJOQVJZID0gMzsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNtYWxsZXN0IENvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBXaGVuIGFsbCBvdGhlciBzdHJlbmd0aHMgYXJlIGVxdWFsLAorICAgICAqIHRoZSBJREVOVElDQUwgc3RyZW5ndGggaXMgdXNlZCBhcyBhIHRpZWJyZWFrZXIuIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQKKyAgICAgKiB2YWx1ZXMgb2YgdGhlIE5GRCBmb3JtIG9mIGVhY2ggc3RyaW5nIGFyZSBjb21wYXJlZCwganVzdCBpbiBjYXNlIHRoZXJlCisgICAgICogaXMgbm8gZGlmZmVyZW5jZS4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogTm90ZSB0aGlzIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIEpESydzCisgICAgICogPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IElERU5USUNBTCA9IDE1OworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhIEFQSXMgb25seS4gIEl0CisgICAgICogc2hvdWxkIG5vdCBiZSB1c2VkLCBJREVOVElDQUwgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4gIElDVSdzCisgICAgICogY29sbGF0aW9uIGRvZXMgbm90IHN1cHBvcnQgSmF2YSdzIEZVTExfREVDT01QT1NJVElPTiBtb2RlLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlVMTF9ERUNPTVBPU0lUSU9OID0gSURFTlRJQ0FMOworCisgICAgLyoqCisgICAgICogPHA+RGVjb21wb3NpdGlvbiBtb2RlIHZhbHVlLiBXaXRoIE5PX0RFQ09NUE9TSVRJT04gc2V0LCBTdHJpbmdzCisgICAgICogd2lsbCBub3QgYmUgZGVjb21wb3NlZCBmb3IgY29sbGF0aW9uLiBUaGlzIGlzIHRoZSBkZWZhdWx0CisgICAgICogZGVjb21wb3NpdGlvbiBzZXR0aW5nIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkIGJ5IHRoZSBsb2NhbGUKKyAgICAgKiB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+IHRoaXMgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIEpESydzLjwvcD4KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTk9fREVDT01QT1NJVElPTiA9IDE2OworCisgICAgLyoqCisgICAgICogPHA+RGVjb21wb3NpdGlvbiBtb2RlIHZhbHVlLiBXaXRoIENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIHNldCwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNhbm9uaWNhbCB2YXJpYW50cyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQKKyAgICAgKiB3aWxsIGJlIGRlY29tcG9zZWQgZm9yIGNvbGxhdGlvbi48L3A+CisgICAgICoKKyAgICAgKiA8cD5DQU5PTklDQUxfREVDT01QT1NJVElPTiBjb3JyZXNwb25kcyB0byBOb3JtYWxpemF0aW9uIEZvcm0gRCBhcworICAgICAqIGRlc2NyaWJlZCBpbiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyI+CisgICAgICogVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICMxNTwvYT4uCisgICAgICogPC9wPgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OID0gMTc7CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhpcyBDb2xsYXRvcidzIHN0cmVuZ3RoIHByb3BlcnR5LiBUaGUgc3RyZW5ndGggcHJvcGVydHkKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudAorICAgICAqIGR1cmluZyBjb21wYXJpc29uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoZSBkZWZhdWx0IHN0cmVuZ3RoIGZvciB0aGUgQ29sbGF0b3IgaXMgVEVSVElBUlksIHVubGVzcyBzcGVjaWZpZWQKKyAgICAgKiBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXdTdHJlbmd0aCB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZQorICAgICAqICAgICAgICAgICAgICAgIG9mIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkKKyAgICB7CisgICAgICAgIGlmICgobmV3U3RyZW5ndGggIT0gUFJJTUFSWSkgJiYKKyAgICAgICAgICAgIChuZXdTdHJlbmd0aCAhPSBTRUNPTkRBUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gVEVSVElBUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gUVVBVEVSTkFSWSkgJiYKKyAgICAgICAgICAgIChuZXdTdHJlbmd0aCAhPSBJREVOVElDQUwpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmNvcnJlY3QgY29tcGFyaXNvbiBsZXZlbC4iKTsKKyAgICAgICAgfQorICAgICAgICBtX3N0cmVuZ3RoXyA9IG5ld1N0cmVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIG9mIHRoaXMgQ29sbGF0b3IuICBTZXR0aW5nIHRoaXMKKyAgICAgKiBkZWNvbXBvc2l0aW9uIHByb3BlcnR5IHdpdGggQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gYWxsb3dzIHRoZQorICAgICAqIENvbGxhdG9yIHRvIGhhbmRsZSB1bi1ub3JtYWxpemVkIHRleHQgcHJvcGVybHksIHByb2R1Y2luZyB0aGUKKyAgICAgKiBzYW1lIHJlc3VsdHMgYXMgaWYgdGhlIHRleHQgd2VyZSBub3JtYWxpemVkLiBJZgorICAgICAqIE5PX0RFQ09NUE9TSVRJT04gaXMgc2V0LCBpdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvCisgICAgICogaW5zdXJlIHRoYXQgYWxsIHRleHQgaXMgYWxyZWFkeSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWZvcmUKKyAgICAgKiBhIGNvbXBhcmlzb24gb3IgYmVmb3JlIGdldHRpbmcgYSBDb2xsYXRpb25LZXkuIEFkanVzdGluZworICAgICAqIGRlY29tcG9zaXRpb24gbW9kZSBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGJldHdlZW4gZmFzdGVyIGFuZAorICAgICAqIG1vcmUgY29tcGxldGUgY29sbGF0aW9uIGJlaGF2aW9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNpbmNlIGEgZ3JlYXQgbWFueSBvZiB0aGUgd29ybGQncyBsYW5ndWFnZXMgZG8gbm90IHJlcXVpcmUKKyAgICAgKiB0ZXh0IG5vcm1hbGl6YXRpb24sIG1vc3QgbG9jYWxlcyBzZXQgTk9fREVDT01QT1NJVElPTiBhcyB0aGUKKyAgICAgKiBkZWZhdWx0IGRlY29tcG9zaXRpb24gbW9kZS48L3A+CisgICAgICoKKyAgICAgKiBUaGUgZGVmYXVsdCBkZWNvbXBvc2l0b24gbW9kZSBmb3IgdGhlIENvbGxhdG9yIGlzCisgICAgICogTk9fREVDT01QT1NJVE9OLCB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZSBieSB0aGUgbG9jYWxlIHVzZWQKKyAgICAgKiB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBnZXREZWNvbXBvc2l0aW9uIGZvciBhIGRlc2NyaXB0aW9uIG9mIGRlY29tcG9zaXRpb24KKyAgICAgKiBtb2RlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZWNvbXBvc2l0aW9uIHRoZSBuZXcgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBub3QgYSB2YWxpZAorICAgICAqICAgICAgICAgICAgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY29tcG9zaXRpb24oaW50IGRlY29tcG9zaXRpb24pCisgICAgeworICAgICAgICBpZiAoKGRlY29tcG9zaXRpb24gIT0gTk9fREVDT01QT1NJVElPTikgJiYKKyAgICAgICAgICAgIChkZWNvbXBvc2l0aW9uICE9IENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiV3JvbmcgZGVjb21wb3NpdGlvbiBtb2RlLiIpOworICAgICAgICB9CisgICAgICAgIG1fZGVjb21wb3NpdGlvbl8gPSBkZWNvbXBvc2l0aW9uOworICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgbG9jYWxlIGlzIGRldGVybWluZWQgYnkgamF2YS51dGlsLkxvY2FsZS5nZXREZWZhdWx0KCkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSAoZm9yIGV4YW1wbGUsIGVuX1VTKSBpZiBpdAorICAgICAqICAgICAgICAgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgdGhlIGRlZmF1bHQgVUNBIGNvbGxhdG9yCisgICAgICogICAgICAgICB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZSNnZXREZWZhdWx0KCkKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShMb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lIHRoZSBjb2xsYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBjb2xsYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgdGhyb3dzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgfQorCisgICAgLy8gYmVnaW4gcmVnaXN0cnkgc3R1ZmYKKworICAgIC8qKgorICAgICAqIEEgZmFjdG9yeSB1c2VkIHdpdGggcmVnaXN0ZXJGYWN0b3J5IHRvIHJlZ2lzdGVyIG11bHRpcGxlIGNvbGxhdG9ycyBhbmQgcHJvdmlkZQorICAgICAqIGRpc3BsYXkgbmFtZXMgZm9yIHRoZW0uICBJZiBzdGFuZGFyZCBsb2NhbGUgZGlzcGxheSBuYW1lcyBhcmUgc3VmZmljaWVudCwgCisgICAgICogQ29sbGF0b3IgaW5zdGFuY2VzIG1heSBiZSByZWdpc3RlcmVkIGluc3RlYWQuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgdGhlIGRlZmF1bHQgQVBJIGZvciBDb2xsYXRvckZhY3RvcnkgdXNlcworICAgICAqIFVMb2NhbGUgaW5zdGVhZCBvZiBMb2NhbGUuICBJbnN0ZWFkIG9mIG92ZXJyaWRpbmcgY3JlYXRlQ29sbGF0b3IoTG9jYWxlKSwKKyAgICAgKiBuZXcgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZSBjcmVhdGVDb2xsYXRvcihVTG9jYWxlKS4gIE5vdGUgdGhhdAorICAgICAqIG9uZSBvZiB0aGVzZSB0d28gbWV0aG9kcyA8Yj5NVVNUPC9iPiBiZSBvdmVycmlkZGVuIG9yIGVsc2UgYW4gaW5maW5pdGUKKyAgICAgKiBsb29wIHdpbGwgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBDb2xsYXRvckZhY3RvcnkgeworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBmYWN0b3J5IHdpbGwgYmUgdmlzaWJsZS4gIERlZmF1bHQgaXMgdHJ1ZS4KKyAgICAgICAgICogSWYgbm90IHZpc2libGUsIHRoZSBsb2NhbGVzIHN1cHBvcnRlZCBieSB0aGlzIGZhY3Rvcnkgd2lsbCBub3QKKyAgICAgICAgICogYmUgbGlzdGVkIGJ5IGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICAgICAqCisgICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGZhY3RvcnkgaXMgdmlzaWJsZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIHZpc2libGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbGxhdG9yLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogPGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZQorICAgICAgICAgKiB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGNyZWF0ZUNvbGxhdG9yKExvY2FsZSkuCisgICAgICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBjb2xsYXRvciBpcyB0byBiZSBjcmVhdGVkLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIGNvbGxhdG9yLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBDb2xsYXRvciBjcmVhdGVDb2xsYXRvcihVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbGxhdG9yKGxvYy50b0xvY2FsZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbGxhdG9yLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogPHA+PGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZQorICAgICAgICAgKiBjcmVhdGVDb2xsYXRvcihVTG9jYWxlKSBpbnN0ZWFkIG9mIHRoaXMgbWV0aG9kLCBhbmQgaW5oZXJpdCB0aGlzCisgICAgICAgICAqIG1ldGhvZCdzIGltcGxlbWVudGF0aW9uLiAgVGhpcyBtZXRob2QgaXMgbm8gbG9uZ2VyIGFic3RyYWN0CisgICAgICAgICAqIGFuZCBpbnN0ZWFkIGRlbGVnYXRlcyB0byBjcmVhdGVDb2xsYXRvcihVTG9jYWxlKS4KKyAgICAgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIGNvbGxhdG9yIGlzIHRvIGJlIGNyZWF0ZWQuCisgICAgICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgY29sbGF0b3IuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgIHB1YmxpYyBDb2xsYXRvciBjcmVhdGVDb2xsYXRvcihMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ29sbGF0b3IoVUxvY2FsZS5mb3JMb2NhbGUobG9jKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgZGlzcGxheUxvY2FsZS4KKyAgICAgICAgICogSWYgb2JqZWN0TG9jYWxlIGlzIG5vdCB2aXNpYmxlIG9yIG5vdCBkZWZpbmVkIGJ5IHRoZSBmYWN0b3J5LCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIGlkZW50aWZ5aW5nIHRoZSBjb2xsYXRvcgorICAgICAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb2xsYXRvciBzaG91bGQgYmUgbG9jYWxpemVkCisgICAgICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoTG9jYWxlIG9iamVjdExvY2FsZSwgTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShVTG9jYWxlLmZvckxvY2FsZShvYmplY3RMb2NhbGUpLCBVTG9jYWxlLmZvckxvY2FsZShkaXNwbGF5TG9jYWxlKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgZGlzcGxheUxvY2FsZS4KKyAgICAgICAgICogSWYgb2JqZWN0TG9jYWxlIGlzIG5vdCB2aXNpYmxlIG9yIG5vdCBkZWZpbmVkIGJ5IHRoZSBmYWN0b3J5LCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSB0aGUgbG9jYWxlIGlkZW50aWZ5aW5nIHRoZSBjb2xsYXRvcgorICAgICAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb2xsYXRvciBzaG91bGQgYmUgbG9jYWxpemVkCisgICAgICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBvYmplY3RMb2NhbGUsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICAgICAgaWYgKHZpc2libGUoKSkgeworICAgICAgICAgICAgICAgIFNldCBzdXBwb3J0ZWQgPSBnZXRTdXBwb3J0ZWRMb2NhbGVJRHMoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG9iamVjdExvY2FsZS5nZXRCYXNlTmFtZSgpOworICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWQuY29udGFpbnMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdExvY2FsZS5nZXREaXNwbGF5TmFtZShkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYW4gdW5tb2RpZmlhYmxlIGNvbGxlY3Rpb24gb2YgdGhlIGxvY2FsZSBuYW1lcyBkaXJlY3RseSAKKyAgICAgICAgICogc3VwcG9ydGVkIGJ5IHRoaXMgZmFjdG9yeS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHJldHVybiB0aGUgc2V0IG9mIHN1cHBvcnRlZCBsb2NhbGUgSURzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBTZXQgZ2V0U3VwcG9ydGVkTG9jYWxlSURzKCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIENvbGxhdG9yRmFjdG9yeSgpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTZXJ2aWNlU2hpbSB7CisgICAgICAgIGFic3RyYWN0IENvbGxhdG9yIGdldEluc3RhbmNlKFVMb2NhbGUgbCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3Rlckluc3RhbmNlKENvbGxhdG9yIGMsIFVMb2NhbGUgbCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3RlckZhY3RvcnkoQ29sbGF0b3JGYWN0b3J5IGYpOworICAgICAgICBhYnN0cmFjdCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGspOworICAgICAgICBhYnN0cmFjdCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCk7IC8vIFRPRE8gcmVtb3ZlCisgICAgICAgIGFic3RyYWN0IFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBhYnN0cmFjdCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBvbCwgVUxvY2FsZSBkbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFNlcnZpY2VTaGltIHNoaW07CisgICAgcHJpdmF0ZSBzdGF0aWMgU2VydmljZVNoaW0gZ2V0U2hpbSgpIHsKKyAgICAgICAgLy8gTm90ZTogdGhpcyBpbnN0YW50aWF0aW9uIGlzIHNhZmUgb24gbG9vc2UtbWVtb3J5LW1vZGVsIGNvbmZpZ3VyYXRpb25zCisgICAgICAgIC8vIGRlc3BpdGUgbGFjayBvZiBzeW5jaHJvbml6YXRpb24sIHNpbmNlIHRoZSBzaGltIGluc3RhbmNlIGhhcyBubyBzdGF0ZS0tCisgICAgICAgIC8vIGl0J3MgYWxsIGluIHRoZSBjbGFzcyBpbml0LiAgVGhlIHdvcnN0IHByb2JsZW0gaXMgd2UgbWlnaHQgaW5zdGFudGlhdGUKKyAgICAgICAgLy8gdHdvIHNoaW0gaW5zdGFuY2VzLCBidXQgdGhleSdsbCBzaGFyZSB0aGUgc2FtZSBzdGF0ZSBzbyB0aGF0J3Mgb2suCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudGV4dC5Db2xsYXRvclNlcnZpY2VTaGltIik7CisgICAgICAgICAgICAgICAgc2hpbSA9IChTZXJ2aWNlU2hpbSljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgICAgIGlmKERFQlVHKXsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHJldHVybiBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlIGlmIGl0IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgT3RoZXJ3aXNlIGlmIHRoZXJlIGlzIG5vIENvbGxhdG9yCisgICAgICogICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbG9jYWxlLCBhIGRlZmF1bHQgVUNBIGNvbGxhdG9yIHdpbGwKKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICAgICAqIEBzZWUgamF2YS51dGlsLlJlc291cmNlQnVuZGxlCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIC8vIGZldGNoaW5nIGZyb20gc2VydmljZSBjYWNoZSBpcyBmYXN0ZXIgdGhhbiBpbnN0YW50aWF0aW9uCisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsCisgICAgICogICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAgICAgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKFVMb2NhbGUpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjb2xsYXRvciBhcyB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIHByb3ZpZGVkIGxvY2FsZS4gIFRoZQorICAgICAqIGNvbGxhdG9yIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYWZ0ZXIgaXQgaXMgcmVnaXN0ZXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0aGUgY29sbGF0b3IgdG8gcmVnaXN0ZXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgaXMgdGhlIGRlZmF1bHQgY29sbGF0b3IKKyAgICAgKiBAcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhlIHJlZ2lzdGVyZWQgY29sbGF0b3IuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQ29sbGF0b3IgY29sbGF0b3IsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkucmVnaXN0ZXJJbnN0YW5jZShjb2xsYXRvciwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIGNvbGxhdG9yIGZhY3RvcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmFjdG9yeSB0aGUgZmFjdG9yeSB0byByZWdpc3RlcgorICAgICAqIEByZXR1cm4gYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGUgcmVnaXN0ZXJlZCBmYWN0b3J5LgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgcmVnaXN0ZXJGYWN0b3J5KENvbGxhdG9yRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkucmVnaXN0ZXJGYWN0b3J5KGZhY3RvcnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBjb2xsYXRvciBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgdXNpbmcgcmVnaXN0ZXJJbnN0YW5jZS4KKyAgICAgKiBAcGFyYW0gcmVnaXN0cnlLZXkgdGhlIG9iamVjdCBwcmV2aW91c2x5IHJldHVybmVkIGJ5IHJlZ2lzdGVySW5zdGFuY2UuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2xsYXRvciB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltLnVucmVnaXN0ZXIocmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIGxvY2FsZXMsIGFzIExvY2FsZSBvYmplY3RzLCBmb3Igd2hpY2ggY29sbGF0b3JzCisgICAgICogYXJlIGluc3RhbGxlZC4gIE5vdGUgdGhhdCBMb2NhbGUgb2JqZWN0cyBkbyBub3Qgc3VwcG9ydCBSRkMgMzA2Ni4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgaW4gd2hpY2ggY29sbGF0b3JzIGFyZSBpbnN0YWxsZWQuCisgICAgICogVGhpcyBsaXN0IGluY2x1ZGVzIGFueSB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkLCBpbiBhZGRpdGlvbiB0bworICAgICAqIHRob3NlIHRoYXQgYXJlIGluc3RhbGxlZCB3aXRoIElDVTRKLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgLy8gVE9ETyBtYWtlIHRoaXMgd3JhcCBnZXRBdmFpbGFibGVVTG9jYWxlcyBsYXRlcgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW0uZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIGxvY2FsZXMsIGFzIFVMb2NhbGUgb2JqZWN0cywgZm9yIHdoaWNoIGNvbGxhdG9ycworICAgICAqIGFyZSBpbnN0YWxsZWQuICBVTG9jYWxlIG9iamVjdHMgc3VwcG9ydCBSRkMgMzA2Ni4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGxvY2FsZXMgaW4gd2hpY2ggY29sbGF0b3JzIGFyZSBpbnN0YWxsZWQuCisgICAgICogVGhpcyBsaXN0IGluY2x1ZGVzIGFueSB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkLCBpbiBhZGRpdGlvbiB0bworICAgICAqIHRob3NlIHRoYXQgYXJlIGluc3RhbGxlZCB3aXRoIElDVTRKLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0aGlzIHNlcnZpY2UuICBUaGlzIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAgKiB0aGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKiBAc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEtFWVdPUkRTID0geyAiY29sbGF0aW9uIiB9OworCisgICAgLyoqCisgICAgICogVGhlIHJlc291cmNlIG5hbWUgZm9yIHRoaXMgc2VydmljZS4gIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgc2FtZSBhcworICAgICAqIHRoZSBrZXl3b3JkIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTT1VSQ0UgPSAiY29sbGF0aW9ucyI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIGJhc2UgbmFtZSBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAqICpzaW5jZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJBU0UgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBhbGwgcG9zc2libGUga2V5d29yZHMgdGhhdCBhcmUgcmVsZXZhbnQgdG8KKyAgICAgKiBjb2xsYXRpb24uIEF0IHRoaXMgcG9pbnQsIHRoZSBvbmx5IHJlY29nbml6ZWQga2V5d29yZCBmb3IgdGhpcworICAgICAqIHNlcnZpY2UgaXMgImNvbGxhdGlvbiIuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB2YWxpZCBjb2xsYXRpb24ga2V5d29yZHMuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZFZhbHVlcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBLRVlXT1JEUzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBrZXl3b3JkLCByZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHZhbHVlcyBmb3IKKyAgICAgKiB0aGF0IGtleXdvcmQgdGhhdCBhcmUgY3VycmVudGx5IGluIHVzZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCBvbmUgb2YgdGhlIGtleXdvcmRzIHJldHVybmVkIGJ5IGdldEtleXdvcmRzLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBnZXRLZXl3b3JkVmFsdWVzKFN0cmluZyBrZXl3b3JkKSB7CisgICAgICAgIGlmICgha2V5d29yZC5lcXVhbHMoS0VZV09SRFNbMF0pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGtleXdvcmQ6ICIgKyBrZXl3b3JkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0S2V5d29yZFZhbHVlcyhCQVNFLCBSRVNPVVJDRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUgZm9yIHRoZSBnaXZlbgorICAgICAqIHJlcXVlc3RlZCBsb2NhbGUsIHdpdGggcmVzcGVjdCB0byBnaXZlbiBrZXl3b3JkLCBmb3IgdGhlCisgICAgICogY29sbGF0aW9uIHNlcnZpY2UuICBJZiB0d28gbG9jYWxlcyByZXR1cm4gdGhlIHNhbWUgcmVzdWx0LCB0aGVuCisgICAgICogY29sbGF0b3JzIGluc3RhbnRpYXRlZCBmb3IgdGhlc2UgbG9jYWxlcyB3aWxsIGJlaGF2ZQorICAgICAqIGVxdWl2YWxlbnRseS4gIFRoZSBjb252ZXJzZSBpcyBub3QgYWx3YXlzIHRydWU7IHR3byBjb2xsYXRvcnMKKyAgICAgKiBtYXkgaW4gZmFjdCBiZSBlcXVpdmFsZW50LCBidXQgcmV0dXJuIGRpZmZlcmVudCByZXN1bHRzLCBkdWUgdG8KKyAgICAgKiBpbnRlcm5hbCBkZXRhaWxzLiAgVGhlIHJldHVybiByZXN1bHQgaGFzIG5vIG90aGVyIG1lYW5pbmcgdGhhbgorICAgICAqIHRoYXQgc3RhdGVkIGFib3ZlLCBhbmQgaW1wbGllcyBub3RoaW5nIGFzIHRvIHRoZSByZWxhdGlvbnNoaXAKKyAgICAgKiBiZXR3ZWVuIHRoZSB0d28gbG9jYWxlcy4gIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBieQorICAgICAqIGFwcGxpY2F0aW9ucyB3aG8gd2lzaCB0byBjYWNoZSBjb2xsYXRvcnMsIG9yIG90aGVyd2lzZSByZXVzZQorICAgICAqIGNvbGxhdG9ycyB3aGVuIHBvc3NpYmxlLiAgVGhlIGZ1bmN0aW9uYWwgZXF1aXZhbGVudCBtYXkgY2hhbmdlCisgICAgICogb3ZlciB0aW1lLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlIDxhCisgICAgICogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2xvY2FsZS5odG1sI3NlcnZpY2VzIj4KKyAgICAgKiBMb2NhbGVzIGFuZCBTZXJ2aWNlczwvYT4gc2VjdGlvbiBvZiB0aGUgSUNVIFVzZXIgR3VpZGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgYXMgZW51bWVyYXRlZCBieQorICAgICAqIGdldEtleXdvcmRzLgorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEBwYXJhbSBpc0F2YWlsYWJsZSBJZiBub24tbnVsbCwgaXNBdmFpbGFibGVbMF0gd2lsbCByZWNlaXZlIGFuZAorICAgICAqIG91dHB1dCBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgd2FzCisgICAgICogJ2F2YWlsYWJsZScgdG8gdGhlIGNvbGxhdGlvbiBzZXJ2aWNlLiBUaGUgbG9jYWxlIGlzIGRlZmluZWQgYXMKKyAgICAgKiAnYXZhaWxhYmxlJyBpZiBpdCBwaHlzaWNhbGx5IGV4aXN0cyB3aXRoaW4gdGhlIGNvbGxhdGlvbiBsb2NhbGUKKyAgICAgKiBkYXRhLiAgSWYgbm9uLW51bGwsIGlzQXZhaWxhYmxlIG11c3QgaGF2ZSBsZW5ndGggPj0gMS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGtleXdvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSkgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQVNFLCBSRVNPVVJDRSwga2V5d29yZCwgbG9jSUQsIGlzQXZhaWxhYmxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUgZm9yIHRoZSBnaXZlbgorICAgICAqIHJlcXVlc3RlZCBsb2NhbGUsIHdpdGggcmVzcGVjdCB0byBnaXZlbiBrZXl3b3JkLCBmb3IgdGhlCisgICAgICogY29sbGF0aW9uIHNlcnZpY2UuCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgYXMgZW51bWVyYXRlZCBieQorICAgICAqIGdldEtleXdvcmRzLgorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAqIEBzZWUgI2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50KFN0cmluZyxVTG9jYWxlLGJvb2xlYW5bXSkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGtleXdvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGtleXdvcmQsIGxvY0lELCBudWxsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgZGlzcGxheUxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIGNvbGxhdG9yJ3MgZGlzcGxheSBuYW1lCisgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoTG9jYWxlIG9iamVjdExvY2FsZSwgTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLmZvckxvY2FsZShvYmplY3RMb2NhbGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlLmZvckxvY2FsZShkaXNwbGF5TG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjb2xsYXRvciBmb3IgdGhlIG9iamVjdExvY2FsZSwgbG9jYWxpemVkIGZvciB0aGUgZGlzcGxheUxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIGNvbGxhdG9yJ3MgZGlzcGxheSBuYW1lCisgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9iamVjdExvY2FsZSwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0RGlzcGxheU5hbWUob2JqZWN0TG9jYWxlLCBkaXNwbGF5TG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yCisgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoTG9jYWxlIG9iamVjdExvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuZm9yTG9jYWxlKG9iamVjdExvY2FsZSksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yCisgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9iamVjdExvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldERpc3BsYXlOYW1lKG9iamVjdExvY2FsZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhpcyBDb2xsYXRvcidzIHN0cmVuZ3RoIHByb3BlcnR5LiBUaGUgc3RyZW5ndGggcHJvcGVydHkKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoaXMgQ29sbGF0b3IncyBjdXJyZW50IHN0cmVuZ3RoIHByb3BlcnR5LgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U3RyZW5ndGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc3RyZW5ndGhfOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEdldCB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIG9mIHRoaXMgQ29sbGF0b3IuIERlY29tcG9zaXRpb24gbW9kZQorICAgICAqIGRldGVybWluZXMgaG93IFVuaWNvZGUgY29tcG9zZWQgY2hhcmFjdGVycyBhcmUgaGFuZGxlZC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXREZWNvbXBvc2l0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RlY29tcG9zaXRpb25fOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcworICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiAgICAgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIHNvdXJjZSBvciB0YXJnZXQgaXMKKyAgICAgKiAgICAgICAgICAgIG5vdCBvZiB0aGUgY2xhc3MgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3Qgc291cmNlLCBPYmplY3QgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgaWYgKCEoc291cmNlIGluc3RhbmNlb2YgU3RyaW5nKSB8fCAhKHRhcmdldCBpbnN0YW5jZW9mIFN0cmluZykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkFyZ3VtZW50cyBoYXZlIHRvIGJlIG9mIHR5cGUgU3RyaW5nIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbXBhcmUoKFN0cmluZylzb3VyY2UsIChTdHJpbmcpdGFyZ2V0KTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNvbXBhcmluZyB0aGUgZXF1YWxpdHkgb2YgdHdvIHRleHQgU3RyaW5ncyB1c2luZworICAgICAqIHRoaXMgQ29sbGF0b3IncyBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nIHRvIGJlIGNvbXBhcmVkLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBzdHJpbmcgdG8gYmUgY29tcGFyZWQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbCBhY2NvcmRpbmcgdG8gdGhlIGNvbGxhdGlvbgorICAgICAqICAgICAgICAgcnVsZXMsIG90aGVyd2lzZSBmYWxzZS4KKyAgICAgKiBAc2VlICNjb21wYXJlCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjb21wYXJlKHNvdXJjZSwgdGFyZ2V0KSA9PSAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYW4gVW5pY29kZVNldCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgY2hhcmFjdGVycyBhbmQgc2VxdWVuY2VzCisgICAgICogdGFpbG9yZWQgaW4gdGhpcyBjb2xsYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgcG9pbnRlciB0byBhIFVuaWNvZGVTZXQgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZQorICAgICAqICAgICAgICAgY29kZSBwb2ludHMgYW5kIHNlcXVlbmNlcyB0aGF0IG1heSBzb3J0IGRpZmZlcmVudGx5IHRoYW4KKyAgICAgKiAgICAgICAgIGluIHRoZSBVQ0EuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFpbG9yZWRTZXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KDAsIDB4MTBGRkZGKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlcyB0aGUgc291cmNlIHRleHQgU3RyaW5nIHRvIHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcgYWNjb3JkaW5nIHRvCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVHJhbnNmb3JtcyB0aGUgU3RyaW5nIGludG8gYSBDb2xsYXRpb25LZXkgc3VpdGFibGUgZm9yIGVmZmljaWVudAorICAgICAqIHJlcGVhdGVkIGNvbXBhcmlzb24uICBUaGUgcmVzdWx0aW5nIGtleSBkZXBlbmRzIG9uIHRoZSBjb2xsYXRvcidzCisgICAgICogcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogPC9wPgorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0aW9uS2V5IGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzIENvbGxhdG9yJ3MKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBydWxlcy4gSWYgdGhlIHNvdXJjZSBTdHJpbmcgaXMgbnVsbCwgYSBudWxsCisgICAgICogICAgICAgICBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgI2dldFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNpbXBsZXIgZm9ybSBvZiBhIENvbGxhdGlvbktleSBmb3IgdGhlIFN0cmluZyBzb3VyY2UgZm9sbG93aW5nCisgICAgICogdGhlIHJ1bGVzIG9mIHRoaXMgQ29sbGF0b3IgYW5kIHN0b3JlcyB0aGUgcmVzdWx0IGludG8gdGhlIHVzZXIgcHJvdmlkZWQgCisgICAgICogYXJndW1lbnQga2V5LiAKKyAgICAgKiBJZiBrZXkgaGFzIGEgaW50ZXJuYWwgYnl0ZSBhcnJheSBvZiBsZW5ndGggdGhhdCdzIHRvbyBzbWFsbCBmb3IgdGhlIAorICAgICAqIHJlc3VsdCwgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBncm93biB0byB0aGUgZXhhY3QgcmVxdWlyZWQgCisgICAgICogc2l6ZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IFN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgUmF3Q29sbGF0aW9uS2V5ICAKKyAgICAgKiBAcmV0dXJuIElmIGtleSBpcyBudWxsLCBhIG5ldyBpbnN0YW5jZSBvZiBSYXdDb2xsYXRpb25LZXkgd2lsbCBiZSAKKyAgICAgKiAgICAgICAgIGNyZWF0ZWQgYW5kIHJldHVybmVkLCBvdGhlcndpc2UgdGhlIHVzZXIgcHJvdmlkZWQga2V5IHdpbGwgYmUgCisgICAgICogICAgICAgICByZXR1cm5lZC4KKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleSAKKyAgICAgKiBAc2VlIFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBSYXdDb2xsYXRpb25LZXkgZ2V0UmF3Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSBrZXkpOworCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIFZhcmlhYmxlIHRvcCBpcyBhIHR3byBieXRlIHByaW1hcnkgdmFsdWUgd2hpY2ggY2F1c2VzIGFsbCB0aGUgY29kZXBvaW50cyAKKyAgICAgKiB3aXRoIHByaW1hcnkgdmFsdWVzIHRoYXQgYXJlIGxlc3Mgb3IgZXF1YWwgdGhhbiB0aGUgdmFyaWFibGUgdG9wIHRvIGJlIAorICAgICAqIHNoaWZ0ZWQgd2hlbiBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2V0IHRvIFNISUZURUQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIHZhcmlhYmxlIHRvcCB0byBhIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlIG9mIGEgc3RyaW5nIHN1cHBsaWVkLgorICAgICAqIDwvcD4gCisgICAgICogQHBhcmFtIHZhclRvcCBvbmUgb3IgbW9yZSAoaWYgY29udHJhY3Rpb24pIGNoYXJhY3RlcnMgdG8gd2hpY2ggdGhlIAorICAgICAqICAgICAgICAgICAgICAgdmFyaWFibGUgdG9wIHNob3VsZCBiZSBzZXQKKyAgICAgKiBAcmV0dXJuIGEgaW50IHZhbHVlIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0b3AgaW4gdXBwZXIgMTYKKyAgICAgKiAgICAgICAgIGJpdHMuIExvd2VyIDE2IGJpdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgdmFyVG9wIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgdmFsaWQgdmFyaWFibGUgdG9wIGVsZW1lbnQuIEEgdmFyaWFibGUgdG9wIGVsZW1lbnQgaXMgCisgICAgICogICAgICAgICAgICBpbnZhbGlkIHdoZW4gaXQgaXMgYSBjb250cmFjdGlvbiB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZQorICAgICAqICAgICAgICAgICAgQ29sbGF0aW9uIG9yZGVyIG9yIHdoZW4gdGhlIFBSSU1BUlkgc3RyZW5ndGggY29sbGF0aW9uIAorICAgICAqICAgICAgICAgICAgZWxlbWVudCBmb3IgdGhlIHZhcmlhYmxlIHRvcCBoYXMgbW9yZSB0aGFuIHR3byBieXRlcworICAgICAqIEBzZWUgI2dldFZhcmlhYmxlVG9wCisgICAgICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvciNzZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHNldFZhcmlhYmxlVG9wKFN0cmluZyB2YXJUb3ApOworICAgIAorICAgIC8qKiAKKyAgICAgKiBHZXRzIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4gCisgICAgICogTG93ZXIgMTYgYml0cyBhcmUgdW5kZWZpbmVkIGFuZCBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4KKyAgICAgKiBAc2VlICNzZXRWYXJpYWJsZVRvcAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VmFyaWFibGVUb3AoKTsKKyAgICAKKyAgICAvKiogCisgICAgICogU2V0cyB0aGUgdmFyaWFibGUgdG9wIHRvIGEgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUgc3VwcGxpZWQuCisgICAgICogVmFyaWFibGUgdG9wIGlzIHNldCB0byB0aGUgdXBwZXIgMTYgYml0cy4gCisgICAgICogTG93ZXIgMTYgYml0cyBhcmUgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gdmFyVG9wIENvbGxhdGlvbiBlbGVtZW50IHZhbHVlLCBhcyByZXR1cm5lZCBieSBzZXRWYXJpYWJsZVRvcCBvciAKKyAgICAgKiAgICAgICAgICAgICAgIGdldFZhcmlhYmxlVG9wCisgICAgICogQHNlZSAjZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlICNzZXRWYXJpYWJsZVRvcAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldFZhcmlhYmxlVG9wKGludCB2YXJUb3ApOworCisgICAgLyoqIAorICAgICAqIEdldCB0aGUgdmVyc2lvbiBvZiB0aGlzIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2ZXJzaW9uIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBWZXJzaW9uSW5mbyBnZXRWZXJzaW9uKCk7CisgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBHZXQgdGhlIFVDQSB2ZXJzaW9uIG9mIHRoaXMgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFZlcnNpb25JbmZvIGdldFVDQVZlcnNpb24oKTsKKyAgICAgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEVtcHR5IGRlZmF1bHQgY29uc3RydWN0b3IgdG8gbWFrZSBqYXZhZG9jcyBoYXBweQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHByb3RlY3RlZCBDb2xsYXRvcigpCisgICAgeworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fc3RyZW5ndGhfID0gVEVSVElBUlk7CisKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2RlY29tcG9zaXRpb25fID0gQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImNvbGxhdG9yIik7CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBlbmQgcmVnaXN0cnkgc3R1ZmYKKworICAgIC8vIC0tLS0tLS0tIEJFR0lOIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbG9jYWxlIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoaXMgb2JqZWN0LCBvciBudWxsLgorICAgICAqIFRoaXMgbWF5IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWxlIHJlcXVlc3RlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoaXMgb2JqZWN0J3MgY3JlYXRpb24uICBGb3IgZXhhbXBsZSwgaWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQKKyAgICAgKiBmb3IgbG9jYWxlIDx0dD5lbl9VU19DQUxJRk9STklBPC90dD4sIHRoZSBhY3R1YWwgZGF0YSBtYXkgYmUKKyAgICAgKiBkcmF3biBmcm9tIDx0dD5lbjwvdHQ+ICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLCBhbmQKKyAgICAgKiA8dHQ+ZW5fVVM8L3R0PiBtYXkgYmUgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIHRoYXQgZXhpc3RzICh0aGUKKyAgICAgKiA8aT52YWxpZDwvaT4gbG9jYWxlKS4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVIDMuMDsgSUNVIDIuOAorICAgICAqIGNvbnRhaW5zIGEgcGFydGlhbCBwcmV2aWV3IGltcGxlbWVudGF0aW9uLiAgVGhlICogPGk+YWN0dWFsPC9pPgorICAgICAqIGxvY2FsZSBpcyByZXR1cm5lZCBjb3JyZWN0bHksIGJ1dCB0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSBpcworICAgICAqIG5vdCwgaW4gbW9zdCBjYXNlcy4KKyAgICAgKiBAcGFyYW0gdHlwZSB0eXBlIG9mIGluZm9ybWF0aW9uIHJlcXVlc3RlZCwgZWl0aGVyIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEV9IG9yIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFfS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgPGk+dHlwZTwvaT4sIG9yIG51bGwgaWYKKyAgICAgKiB0aGlzIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVUxvY2FsZSBnZXRMb2NhbGUoVUxvY2FsZS5UeXBlIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVUxvY2FsZS5BQ1RVQUxfTE9DQUxFID8KKyAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlIDogdGhpcy52YWxpZExvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmJjOTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JSZWFkZXIuamF2YQpAQCAtMCwwICsxLDY2MiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VCaW5hcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSW52ZXJzZVVDQTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yLlVDQUNvbnN0YW50czsKKworLyoqCisqIDxwPkludGVybmFsIHJlYWRlciBjbGFzcyBmb3IgSUNVIGRhdGEgZmlsZSB1Y2EuaWN1IGNvbnRhaW5pbmcgCisqIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSBkYXRhLjwvcD4gCisqIDxwPlRoaXMgY2xhc3Mgc2ltcGx5IHJlYWRzIHVjYS5pY3UsIGF1dGhlbnRpY2F0ZXMgdGhhdCBpdCBpcyBhIHZhbGlkCisqIElDVSBkYXRhIGZpbGUgYW5kIHNwbGl0IGl0cyBjb250ZW50cyB1cCBpbnRvIGJsb2NrcyBvZiBkYXRhIGZvciB1c2UgaW4KKyogPGEgaHJlZj1Db2xsYXRvci5odG1sPmNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I8L2E+LgorKiA8L3A+IAorKiA8cD51Y2EuaWN1IHdoaWNoIGlzIGluIGJpZy1lbmRpYW4gZm9ybWF0IGlzIGphcmVkIHRvZ2V0aGVyIHdpdGggdGhpcyAKKyogcGFja2FnZS48L3A+CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgQXByaWwgMTggMjAwMgorKiBAZHJhZnQgMi4yCisqLworCitmaW5hbCBjbGFzcyBDb2xsYXRvclJlYWRlcgoreyAgICAgICAgICAKKyAgICBzdGF0aWMgY2hhcltdIHJlYWQoUnVsZUJhc2VkQ29sbGF0b3IgcmJjLCBVQ0FDb25zdGFudHMgdWNhYykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VjYWRhdGEuaWN1Iik7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIDkwMDAwKTsKKyAgICAgICAgQ29sbGF0b3JSZWFkZXIgcmVhZGVyID0gbmV3IENvbGxhdG9yUmVhZGVyKGIpOworICAgICAgICBjaGFyW10gcmVzdWx0ID0gcmVhZGVyLnJlYWRJbXAocmJjLCB1Y2FjKTsKKyAgICAgICAgYi5jbG9zZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBpbml0UkJDKFJ1bGVCYXNlZENvbGxhdG9yIHJiYywgYnl0ZVtdIGRhdGEpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGZpbmFsIGludCBNSU5fQklOQVJZX0RBVEFfU0laRV8gPSAoNDIgKyAyNSkgPDwgMjsKKyAgICAgICAgCisgICAgICAgIElucHV0U3RyZWFtIGkgPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZGF0YSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGkpOworICAgICAgICBDb2xsYXRvclJlYWRlciByZWFkZXIgPSBuZXcgQ29sbGF0b3JSZWFkZXIoYiwgZmFsc2UpOworICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiBNSU5fQklOQVJZX0RBVEFfU0laRV8pIHsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkSW1wKHJiYywgbnVsbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZWFkZXIucmVhZEhlYWRlcihyYmMpOworICAgICAgICAgICAgcmVhZGVyLnJlYWRPcHRpb25zKHJiYyk7CisgICAgICAgICAgICAvLyBkdXBsaWNhdGluZyBVQ0FfJ3MgZGF0YQorICAgICAgICAgICAgcmJjLnNldFdpdGhVQ0FUYWJsZXMoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgSW52ZXJzZVVDQSBnZXRJbnZlcnNlVUNBKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgSW52ZXJzZVVDQSByZXN1bHQgPSBudWxsOworICAgICAgICBJbnB1dFN0cmVhbSBpID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvaW52dWNhLmljdSIpOworLy8gICAgICAgIHRyeSAgICB7CisvLyAgICAgICAgICAgIFN0cmluZyBpbnZkYXQgPSAiL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pbnZ1Y2EuaWN1IjsKKy8vICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oaW52ZGF0KTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIDExMDAwMCk7CisgICAgICAgICAgICByZXN1bHQgPSBDb2xsYXRvclJlYWRlci5yZWFkSW52ZXJzZVVDQShiKTsKKyAgICAgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgICAgIGkuY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisvLyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworLy8gICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgY29sbGF0b3IgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRvclJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICB0aGlzKGlucHV0U3RyZWFtLCB0cnVlKTsKKyAgICAgICAgLyoKKyAgICAgICAgYnl0ZVtdIFVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lEXywgVUNBX0FVVEhFTlRJQ0FURV8pOworICAgICAgICAvLyB3ZWl2OiBjaGVjayB0aGF0IHdlIGhhdmUgdGhlIGNvcnJlY3QgVW5pY29kZSB2ZXJzaW9uIGluIAorICAgICAgICAvLyBiaW5hcnkgZmlsZXMKKyAgICAgICAgVmVyc2lvbkluZm8gVUNEVmVyc2lvbiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYoVW5pY29kZVZlcnNpb25bMF0gIT0gVUNEVmVyc2lvbi5nZXRNYWpvcigpIAorICAgICAgICB8fCBVbmljb2RlVmVyc2lvblsxXSAhPSBVQ0RWZXJzaW9uLmdldE1pbm9yKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihXUk9OR19VTklDT0RFX1ZFUlNJT05fRVJST1JfKTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcHMuaWN1IGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAcGFyYW0gcmVhZElDVUhlYWRlciBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSBJQ1UgaGVhZGVyIGhhcyB0byBiZSByZWFkCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByaXZhdGUgQ29sbGF0b3JSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIGJvb2xlYW4gcmVhZElDVUhlYWRlcikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChyZWFkSUNVSGVhZGVyKSB7CisgICAgICAgICAgICBieXRlW10gVW5pY29kZVZlcnNpb24gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDQV9BVVRIRU5USUNBVEVfKTsKKyAgICAgICAgICAgIC8vIHdlaXY6IGNoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgY29ycmVjdCBVbmljb2RlIHZlcnNpb24gaW4gCisgICAgICAgICAgICAvLyBiaW5hcnkgZmlsZXMKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIFVDRFZlcnNpb24gPSBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgICAgICAgICBpZihVbmljb2RlVmVyc2lvblswXSAhPSBVQ0RWZXJzaW9uLmdldE1ham9yKCkgCisgICAgICAgICAgICB8fCBVbmljb2RlVmVyc2lvblsxXSAhPSBVQ0RWZXJzaW9uLmdldE1pbm9yKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oV1JPTkdfVU5JQ09ERV9WRVJTSU9OX0VSUk9SXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgfQorICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBoZWFkZXIgc3RyZWFtIG9mIGRhdGEgcGFzc2VkIGluIGFzIGFyZ3VtZW50cyBpbnRvIAorICAgICogbWVhbmluZ2Z1bCBDb2xsYXRvciBkYXRhLgorICAgICogQHBhcmFtIHJiYyBSdWxlQmFzZWRDb2xsYXRvciB0byBwb3B1bGF0ZSB3aXRoIGhlYWRlciBpbmZvcm1hdGlvbgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkSGVhZGVyKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3NpemVfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgLy8gYWxsIHRoZSBvZmZzZXRzIGFyZSBpbiBieXRlcworICAgICAgICAgIC8vIHRvIGdldCB0aGUgYWRkcmVzcyBhZGQgdG8gdGhlIGhlYWRlciBhZGRyZXNzIGFuZCBjYXN0IHByb3Blcmx5IAorICAgICAgICAgIC8vIERlZmF1bHQgb3B0aW9ucyBpbnQgb3B0aW9ucworICAgICAgICBtX2hlYWRlclNpemVfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgLy8gc3RhcnQgb2Ygb3B0aW9ucworICAgICAgICBpbnQgcmVhZGNvdW50ID0gODsgLy8gZm9yIHNpemUgYW5kIGhlYWRlcnNpemUKKyAgICAgICAgLy8gc3RydWN0dXJlIHdoaWNoIGhvbGRzIHZhbHVlcyBmb3IgaW5kaXJlY3QgcG9zaXRpb25pbmcgYW5kIGltcGxpY2l0IAorICAgICAgICAvLyByYW5nZXMKKyAgICAgICAgICBpbnQgVUNBQ29uc3QgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIC8vIHRoaXMgb25lIGlzIG5lZWRlZCBvbmx5IGZvciBVQ0EsIHRvIGNvcHkgdGhlIGFwcHJvcHJpYXRlIAorICAgICAgICAvLyBjb250cmFjdGlvbnMKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXAoNCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyg0KTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gY29uc3QgdWludDhfdCAqbWFwcGluZ1Bvc2l0aW9uOyAKKyAgICAgICAgICBpbnQgbWFwcGluZyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIHVpbnQzMl90ICpleHBhbnNpb247IAorICAgICAgICAgIHJiYy5tX2V4cGFuc2lvbk9mZnNldF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgCisgICAgICAgICAgLy8gVUNoYXIgKmNvbnRyYWN0aW9uSW5kZXg7ICAgICAKKyAgICAgICAgICByYmMubV9jb250cmFjdGlvbk9mZnNldF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgCisgICAgICAgICAgLy8gdWludDMyX3QgKmNvbnRyYWN0aW9uQ0VzOworICAgICAgICAgIGludCBjb250cmFjdGlvbkNFID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7ICAgCisgICAgICAgICAgLy8gbmVlZGVkIGZvciB2YXJpb3VzIGNsb3N1cmVzIGludCBjb250cmFjdGlvblNpemUgCisgICAgICAgICAgaW50IGNvbnRyYWN0aW9uU2l6ZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAgCisgICAgICAgICAgLy8gYXJyYXkgb2YgbGFzdCBjb2xsYXRpb24gZWxlbWVudCBpbiBleHBhbnNpb24KKyAgICAgICAgICBpbnQgZXhwYW5zaW9uRW5kQ0UgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgIAorICAgICAgICAgIC8vIGFycmF5IG9mIG1heGltdW0gZXhwYW5zaW9uIHNpemUgY29ycmVzcG9uZGluZyB0byB0aGUgZXhwYW5zaW9uCisgICAgICAgIC8vIGNvbGxhdGlvbiBlbGVtZW50cyB3aXRoIGxhc3QgZWxlbWVudCBpbiBleHBhbnNpb25FbmRDRQorICAgICAgICAgIGludCBleHBhbnNpb25FbmRDRU1heFNpemUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgICAgIAorICAgICAgICAgIC8vIHNpemUgb2YgZW5kRXhwYW5zaW9uQ0UgaW50IGV4cGFuc2lvbkVuZENFU2l6ZQorICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAKKyAgICAgICAgICAvLyBoYXNoIHRhYmxlIG9mIHVuc2FmZSBjb2RlIHBvaW50cyAKKyAgICAgICAgICBpbnQgdW5zYWZlID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7ICAgICAgICAgICAgCisgICAgICAgICAgLy8gaGFzaCB0YWJsZSBvZiBmaW5hbCBjb2RlIHBvaW50cyBpbiBjb250cmFjdGlvbnMuCisgICAgICAgICAgaW50IGNvbnRyYWN0aW9uRW5kID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gaW50IENFY291bnQgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICAgIC8vIGlzIGphbW9TcGVjaWFsCisgICAgICAgICAgcmJjLm1faXNKYW1vU3BlY2lhbF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJvb2xlYW4oKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOyAKKyAgICAgICAgLy8gcGFkZGluZworICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoMyk7CisgICAgICAgIHJlYWRjb3VudCArPSAzOworICAgICAgICByYmMubV92ZXJzaW9uXyA9IHJlYWRWZXJzaW9uKG1fZGF0YUlucHV0U3RyZWFtXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9VQ0FfdmVyc2lvbl8gPSByZWFkVmVyc2lvbihtX2RhdGFJbnB1dFN0cmVhbV8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fVUNEX3ZlcnNpb25fID0gcmVhZFZlcnNpb24obV9kYXRhSW5wdXRTdHJlYW1fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gYnl0ZSBjaGFyc2V0TmFtZVtdID0gbmV3IGJ5dGVbMzJdOyAvLyBmb3IgY2hhcnNldCBDRXMKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDMyKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDMyOworICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNTYpOyAvLyBmb3IgZnV0dXJlIHVzZQorICAgICAgICByZWFkY291bnQgKz0gNTY7IAorICAgICAgICBpZiAobV9oZWFkZXJTaXplXyA8IHJlYWRjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogSGVhZGVyIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKG1faGVhZGVyU2l6ZV8gLSByZWFkY291bnQpOworICAgICAgICAKKyAgICAgICAgICBpZiAocmJjLm1fY29udHJhY3Rpb25PZmZzZXRfID09IDApIHsgLy8gY29udHJhY3Rpb24gY2FuIGJlIG51bGwKKyAgICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfID0gbWFwcGluZzsKKyAgICAgICAgICAgICAgY29udHJhY3Rpb25DRSA9IG1hcHBpbmc7CisgICAgICAgICAgfQorICAgICAgICBtX29wdGlvblNpemVfID0gcmJjLm1fZXhwYW5zaW9uT2Zmc2V0XyAtIG1faGVhZGVyU2l6ZV87CisgICAgICAgICAgbV9leHBhbnNpb25TaXplXyA9IHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyAtIHJiYy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAgICAgbV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPSBjb250cmFjdGlvbkNFIC0gcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgICAgIG1fY29udHJhY3Rpb25DRVNpemVfID0gbWFwcGluZyAtIGNvbnRyYWN0aW9uQ0U7CisgICAgICAgICAgbV90cmllU2l6ZV8gPSBleHBhbnNpb25FbmRDRSAtIG1hcHBpbmc7CisgICAgICAgICAgbV9leHBhbnNpb25FbmRDRVNpemVfID0gZXhwYW5zaW9uRW5kQ0VNYXhTaXplIC0gZXhwYW5zaW9uRW5kQ0U7CisgICAgICAgICAgbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplXyA9IHVuc2FmZSAtIGV4cGFuc2lvbkVuZENFTWF4U2l6ZTsKKyAgICAgICAgICBtX3Vuc2FmZVNpemVfID0gY29udHJhY3Rpb25FbmQgLSB1bnNhZmU7CisgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gPSBtX3NpemVfIC0gVUNBQ29uc3Q7IC8vIFVDQSB2YWx1ZSwgd2lsbCBiZSBoYW5kbGVkIGxhdGVyCisgICAgICAgIC8vIHRyZWF0IGl0IGFzIG5vcm1hbCBjb2xsYXRvciBmaXJzdAorICAgICAgICAvLyBmb3Igbm9ybWFsIGNvbGxhdG9yIHRoZXJlIGlzIG5vIFVDQSBjb250cmFjdGlvbgorICAgICAgICBtX2NvbnRyYWN0aW9uRW5kU2l6ZV8gPSBtX3NpemVfIC0gY29udHJhY3Rpb25FbmQ7ICAgIAorICAgICAgICAKKyAgICAgICAgICByYmMubV9jb250cmFjdGlvbk9mZnNldF8gPj49IDE7IC8vIGNhc3RpbmcgdG8gaW50cworICAgICAgICAgIHJiYy5tX2V4cGFuc2lvbk9mZnNldF8gPj49IDI7IC8vIGNhc3RpbmcgdG8gY2hhcnMKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZCBhbmQgYnJlYWsgdXAgdGhlIGNvbGxhdGlvbiBvcHRpb25zIHBhc3NlZCBpbiB0aGUgc3RyZWFtIG9mIGRhdGEKKyAgICAgKiBhbmQgdXBkYXRlIHRoZSBhcmd1bWVudCBDb2xsYXRvciB3aXRoIHRoZSByZXN1bHRzCisgICAgICogQHBhcmFtIHJiYyBSdWxlQmFzZWRDb2xsYXRvciB0byBwb3B1bGF0ZQorICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT3B0aW9ucyhSdWxlQmFzZWRDb2xsYXRvciByYmMpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IHJlYWRjb3VudCA9IDA7CisgICAgICAgIHJiYy5tX2RlZmF1bHRWYXJpYWJsZVRvcFZhbHVlXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkgPT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TSElGVEVEXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0Q2FzZUZpcnN0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0SXNDYXNlTGV2ZWxfID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIGludCB2YWx1ZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBpZiAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKSB7CisgICAgICAgICAgICB2YWx1ZSA9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFsdWUgPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OOworICAgICAgICB9CisgICAgICAgIHJiYy5tX2RlZmF1bHREZWNvbXBvc2l0aW9uXyA9IHZhbHVlOworICAgICAgICByYmMubV9kZWZhdWx0U3RyZW5ndGhfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc0hpcmFnYW5hNF8gPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdElzTnVtZXJpY0NvbGxhdGlvbl8gPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwKDYwKTsgLy8gcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAgcmVhZGNvdW50ICs9IDYwOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKG1fb3B0aW9uU2l6ZV8gLSByZWFkY291bnQpOworICAgICAgICBpZiAobV9vcHRpb25TaXplXyA8IHJlYWRjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogT3B0aW9uIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzIGludG8gCisgICAgKiBtZWFuaW5nZnVsIENvbGxhdG9yIGRhdGEuCisgICAgKiBAcGFyYW0gcmJjIFJ1bGVCYXNlZENvbGxhdG9yIHRvIHBvcHVsYXRlCisgICAgKiBAcGFyYW0gVUNBQ29uc3Qgb2JqZWN0IHRvIGZpbGwgdXAgd2l0aCBVQ0EgY29uc3RhbnRzIGlmIHdlIGFyZSByZWFkaW5nIAorICAgICogICAgICAgICAgICAgICAgIHRoZSBVQ0EgY29sbGF0b3IsIGlmIG5vdCB1c2UgYSBudWxsCisgICAgKiBAcmV0dXJuIFVDQUNvbnRyYWN0aW9ucyBhcnJheSBmaWxsZWQgdXAgd2l0aCB0aGUgVUNBIGNvbnRyYWN0aW9ucyBpZiB3ZQorICAgICogICAgICAgICAgICAgICAgICAgICAgICBhcmUgcmVhZGluZyB0aGUgVUNBIGNvbGxhdG9yCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIHRoZXJlJ3MgYSBkYXRhIGVycm9yLgorICAgICogQGRyYWZ0IDIuMgorICAgICovCisgICAgcHJpdmF0ZSBjaGFyW10gcmVhZEltcChSdWxlQmFzZWRDb2xsYXRvciByYmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FDb25zdGFudHMgVUNBQ29uc3QpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICByZWFkSGVhZGVyKHJiYyk7CisgICAgICAgIC8vIGhlYWRlciBzaXplIGhhcyBiZWVuIGNoZWNrZWQgYnkgcmVhZEhlYWRlcgorICAgICAgICBpbnQgcmVhZGNvdW50ID0gbV9oZWFkZXJTaXplXzsgCisgICAgICAgIC8vIG9wdGlvbiBzaXplIGhhcyBiZWVuIGNoZWNrZWQgYnkgcmVhZE9wdGlvbnMKKyAgICAgICAgcmVhZE9wdGlvbnMocmJjKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IG1fb3B0aW9uU2l6ZV87CisgICAgICAgIG1fZXhwYW5zaW9uU2l6ZV8gPj49IDI7CisgICAgICAgIHJiYy5tX2V4cGFuc2lvbl8gPSBuZXcgaW50W21fZXhwYW5zaW9uU2l6ZV9dOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZXhwYW5zaW9uU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgIHJiYy5tX2V4cGFuc2lvbl9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSAobV9leHBhbnNpb25TaXplXyA8PCAyKTsKKyAgICAgICAgaWYgKG1fY29udHJhY3Rpb25JbmRleFNpemVfID4gMCkgeyAKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25JbmRleFNpemVfID4+PSAxOworICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25JbmRleF8gPSBuZXcgY2hhclttX2NvbnRyYWN0aW9uSW5kZXhTaXplX107CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fY29udHJhY3Rpb25JbmRleFNpemVfOyBpICsrKSB7CisgICAgICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25JbmRleF9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlYWRjb3VudCArPSAobV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPDwgMSk7CisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uQ0VTaXplXyA+Pj0gMjsKKyAgICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uQ0VfID0gbmV3IGludFttX2NvbnRyYWN0aW9uQ0VTaXplX107CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fY29udHJhY3Rpb25DRVNpemVfOyBpICsrKSB7CisgICAgICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25DRV9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVhZGNvdW50ICs9IChtX2NvbnRyYWN0aW9uQ0VTaXplXyA8PCAyKTsKKyAgICAgICAgfQorICAgICAgICByYmMubV90cmllXyA9IG5ldyBJbnRUcmllKG1fZGF0YUlucHV0U3RyZWFtXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5EYXRhTWFuaXB1bGF0ZS5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgaWYgKCFyYmMubV90cmllXy5pc0xhdGluMUxpbmVhcigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkRhdGEgY29ycnVwdGVkLCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIkNvbGxhdG9yIFRyaWVzIGV4cGVjdGVkIHRvIGhhdmUgbGluZWFyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJsYXRpbiBvbmUgZGF0YSBhcnJheXMiKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gcmJjLm1fdHJpZV8uZ2V0U2VyaWFsaXplZERhdGFTaXplKCk7CisgICAgICAgIG1fZXhwYW5zaW9uRW5kQ0VTaXplXyA+Pj0gMjsKKyAgICAgICAgcmJjLm1fZXhwYW5zaW9uRW5kQ0VfID0gbmV3IGludFttX2V4cGFuc2lvbkVuZENFU2l6ZV9dOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZXhwYW5zaW9uRW5kQ0VTaXplXzsgaSArKykgeworICAgICAgICAgICAgcmJjLm1fZXhwYW5zaW9uRW5kQ0VfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gKG1fZXhwYW5zaW9uRW5kQ0VTaXplXyA8PCAyKTsKKyAgICAgICAgcmJjLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IG5ldyBieXRlW21fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV9dOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgIHJiYy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplXzsKKyAgICAgICAgcmJjLm1fdW5zYWZlXyA9IG5ldyBieXRlW21fdW5zYWZlU2l6ZV9dOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fdW5zYWZlU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgIHJiYy5tX3Vuc2FmZV9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gbV91bnNhZmVTaXplXzsKKyAgICAgICAgaWYgKFVDQUNvbnN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHdlIGFyZSByZWFkaW5nIHRoZSBVQ0EKKyAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHkgdGhlIFVDQSBvZmZzZXQgaW4gYW55IGNvbGxhdG9yIGRhdGEgaXMgbm90IDAgYW5kCisgICAgICAgICAgICAvLyBvbmx5IHJlZmVycyB0byB0aGUgVUNBIGRhdGEKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25FbmRTaXplXyAtPSBtX1VDQVZhbHVlc1NpemVfOyAgICAgICAKKyAgICAgICAgfQorICAgICAgICByYmMubV9jb250cmFjdGlvbkVuZF8gPSBuZXcgYnl0ZVttX2NvbnRyYWN0aW9uRW5kU2l6ZV9dOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fY29udHJhY3Rpb25FbmRTaXplXzsgaSArKykgeworICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25FbmRfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IG1fY29udHJhY3Rpb25FbmRTaXplXzsKKyAgICAgICAgaWYgKFVDQUNvbnN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGludCByZWFkVUNBQ29uc3Rjb3VudCA9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfU0VDT05EQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9QUklNQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1BSSU1BUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1ZBUklBQkxFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9WQVJJQUJMRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVkFSSUFCTEVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9WQVJJQUJMRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX05PTl9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfTk9OX1ZBUklBQkxFX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX05PTl9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9OT05fVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlJFU0VUX1RPUF9WQUxVRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUkVTRVRfVE9QX1ZBTFVFX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9JTVBMSUNJVF9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfSU1QTElDSVRfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfSU1QTElDSVRfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfSU1QTElDSVRfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1RSQUlMSU5HX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9UUkFJTElOR19bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9UUkFJTElOR19bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9UUkFJTElOR19bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsgCisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1RPUF9NSU5fID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfSU1QTElDSVRfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9JTVBMSUNJVF9NQVhfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1RSQUlMSU5HX01JTl8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfVFJBSUxJTkdfTUFYXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9TUEVDSUFMX01JTl8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfU1BFQ0lBTF9NQVhfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0c2l6ZSA9IChtX1VDQVZhbHVlc1NpemVfIC0gcmVhZFVDQUNvbnN0Y291bnQpID4+IDE7CisgICAgICAgICAgICBjaGFyIHJlc3VsdFtdID0gbmV3IGNoYXJbcmVzdWx0c2l6ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlYWRjb3VudCArPSBtX1VDQVZhbHVlc1NpemVfOworICAgICAgICAgICAgaWYgKHJlYWRjb3VudCAhPSBtX3NpemVfKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogRGF0YSBmaWxlIHNpemUgZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlYWRjb3VudCAhPSBtX3NpemVfKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBEYXRhIGZpbGUgc2l6ZSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkcyBpbiB0aGUgaW52ZXJzZSB1Y2EgZGF0YQorICAgICAqIEBwYXJhbSBpbnB1dCBpbnB1dCBzdHJlYW0gd2l0aCB0aGUgaW52ZXJzZSB1Y2EgZGF0YQorICAgICAqIEByZXR1cm4gYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludmVyc2UgdWNhIGRhdGEKKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSAKKyAgICAgKiAgICAgICAgICAgIGludmVyc2UgdWNhCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSW52ZXJzZVVDQSByZWFkSW52ZXJzZVVDQSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGlucHV0U3RyZWFtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAgYnl0ZVtdIFVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX0lEXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlZFUlNFX1VDQV9BVVRIRU5USUNBVEVfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvLyB3ZWl2OiBjaGVjayB0aGF0IHdlIGhhdmUgdGhlIGNvcnJlY3QgVW5pY29kZSB2ZXJzaW9uIGluIAorICAgICAgICAvLyBiaW5hcnkgZmlsZXMKKyAgICAgICAgVmVyc2lvbkluZm8gVUNEVmVyc2lvbiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYoVW5pY29kZVZlcnNpb25bMF0gIT0gVUNEVmVyc2lvbi5nZXRNYWpvcigpIAorICAgICAgICB8fCBVbmljb2RlVmVyc2lvblsxXSAhPSBVQ0RWZXJzaW9uLmdldE1pbm9yKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihXUk9OR19VTklDT0RFX1ZFUlNJT05fRVJST1JfKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EgcmVzdWx0ID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EoKTsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7ICAgICAgICAKKyAgICAgICAgaW5wdXQucmVhZEludCgpOyAvLyBieXRlc2l6ZQorICAgICAgICBpbnQgdGFibGVzaXplID0gaW5wdXQucmVhZEludCgpOyAvLyBpbiBpbnQgc2l6ZQorICAgICAgICBpbnQgY29udHNpemUgPSBpbnB1dC5yZWFkSW50KCk7ICAvLyBpbiBjaGFyIHNpemUKKyAgICAgICAgaW5wdXQucmVhZEludCgpOyAvLyB0YWJsZSBpbiBieXRlcworICAgICAgICBpbnB1dC5yZWFkSW50KCk7IC8vIGNvbnRzIGluIGJ5dGVzCisgICAgICAgIHJlc3VsdC5tX1VDQV92ZXJzaW9uXyA9IHJlYWRWZXJzaW9uKGlucHV0KTsKKyAgICAgICAgaW5wdXQuc2tpcEJ5dGVzKDgpOyAvLyBza2lwIHBhZGRpbmcKKyAgICAgICAgCisgICAgICAgIGludCBzaXplID0gdGFibGVzaXplICogMzsgLy8gb25lIGNvbHVtbiBmb3IgZWFjaCBzdHJlbmd0aAorICAgICAgICByZXN1bHQubV90YWJsZV8gPSBuZXcgaW50W3NpemVdOworICAgICAgICByZXN1bHQubV9jb250aW51YXRpb25zXyA9IG5ldyBjaGFyW2NvbnRzaXplXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgcmVzdWx0Lm1fdGFibGVfW2ldID0gaW5wdXQucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5tX2NvbnRpbnVhdGlvbnNfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkcyBmb3VyIGJ5dGVzIGZyb20gdGhlIGlucHV0IGFuZCByZXR1cm5zIGEgVmVyc2lvbkluZm8KKyAgICAgKiBvYmplY3QuIFVzZSBpdCB0byByZWFkIGRpZmZlcmVudCBjb2xsYXRvciB2ZXJzaW9ucy4KKyAgICAgKiBAcGFyYW0gaW5wdXQgYWxyZWFkeSBpbnN0YW50aWF0ZWQgRGF0YUlucHV0U3RyZWFtLCBwb3NpdGlvbmVkIAorICAgICAqICAgICAgICAgICAgICBhdCB0aGUgc3RhcnQgb2YgZm91ciB2ZXJzaW9uIGJ5dGVzCisgICAgICogQHJldHVybiBhIHJlYWR5IFZlcnNpb25JbmZvIG9iamVjdAorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgIAorICAgICAqICAgICAgICAgICAgdmVyc2lvbiBieXRlcworICAgICAqLworICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgVmVyc2lvbkluZm8gcmVhZFZlcnNpb24oRGF0YUlucHV0U3RyZWFtIGlucHV0KSAKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgYnl0ZVtdIHZlcnNpb24gPSBuZXcgYnl0ZVs0XTsKKyAgICAgICAgdmVyc2lvblswXSA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHZlcnNpb25bMV0gPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICB2ZXJzaW9uWzJdID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgdmVyc2lvblszXSA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIAorICAgICAgICBWZXJzaW9uSW5mbyByZXN1bHQgPSAKKyAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAoaW50KXZlcnNpb25bMF0sIChpbnQpdmVyc2lvblsxXSwgCisgICAgICAgICAgICAoaW50KXZlcnNpb25bMl0sIChpbnQpdmVyc2lvblszXSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZSB1Y2EgZGF0YSBmb3JtYXQgdmVyc2lvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgVUNBX0FVVEhFTlRJQ0FURV8gCisgICAgICAgICAgICAgICAgPSBuZXcgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB2ZXJzaW9uWzFdID49IERBVEFfRk9STUFUX1ZFUlNJT05fWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb28gaGFyc2ggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJiYgdmVyc2lvblsxXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bMl0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJiYgdmVyc2lvblszXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1szXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZSB1Y2EgZGF0YSBmb3JtYXQgdmVyc2lvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgSU5WRVJTRV9VQ0FfQVVUSEVOVElDQVRFXyAKKyAgICAgICAgICAgICAgICA9IG5ldyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9WRVJTSU9OX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmVyc2lvblsxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID49IElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX1ZFUlNJT05fWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgIAorICAgIC8qKgorICAgICogRGF0YSBpbnB1dCBzdHJlYW0gZm9yIHVjYS5pY3UgCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBtX2RhdGFJbnB1dFN0cmVhbV87CisgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IHZlcnNpb24gYW5kIGlkIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfVkVSU0lPTl9bXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGJ5dGUpMHgyLCAoYnl0ZSkweDIsIChieXRlKTB4MCwgKGJ5dGUpMHgwfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NTUsIChieXRlKTB4NDMsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDZmLCAoYnl0ZSkweDZjfTsKKyAgICAvKioKKyAgICAqIEludmVyc2UgVUNBIGZpbGUgZm9ybWF0IHZlcnNpb24gYW5kIGlkIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgSU5WRVJTRV9VQ0FfREFUQV9GT1JNQVRfVkVSU0lPTl9bXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGJ5dGUpMHgyLCAoYnl0ZSkweDEsIChieXRlKTB4MCwgKGJ5dGUpMHgwfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NDksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg2ZSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg3NiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDQzfTsKKyAgICAvKioKKyAgICAqIENvcnJ1cHRlZCBlcnJvciBzdHJpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1JSVVBURURfREFUQV9FUlJPUl8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBjb3JydXB0ZWQgaW4gQ29sbGF0aW9uIGRhdGEgZmlsZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogV3JvbmcgdW5pY29kZSB2ZXJzaW9uIGVycm9yIHN0cmluZworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFdST05HX1VOSUNPREVfVkVSU0lPTl9FUlJPUl8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5pY29kZSB2ZXJzaW9uIGluIGJpbmFyeSBpbWFnZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IFVuaWNvZGUgdmVyc2lvbiI7CisKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGV4cGFuc2lvbiB0YWJsZSBpbiBieXRlcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZXhwYW5zaW9uU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb250cmFjdGlvbiBpbmRleCB0YWJsZSBpbiBieXRlcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY29udHJhY3Rpb25JbmRleFNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgY29udHJhY3Rpb24gdGFibGUgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2NvbnRyYWN0aW9uQ0VTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBUcmllIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90cmllU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiB0aGF0IGVuZCB3aXRoIGFuIGV4cGFuc2lvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4cGFuc2lvbkVuZENFU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWF4aW11bSBzaXplIG9mIAorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50cyB0aGF0IGVuZCB3aXRoIGEgcGFydGljdWxhciBleHBhbnNpb24gQ0UgY29ycmVzcG9uZGluZworICAgICAqIHRvIHRoZSBvbmVzIGluIGV4cGFuc2lvbkVuZENFCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBvcHRpb24gdGFibGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uCisgICAgICogb3B0aW9ucworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fb3B0aW9uU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgd2hvbGUgZGF0YSBmaWxlIG1pbnVzaW5nIHRoZSBJQ1UgaGVhZGVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBjb2xsYXRpb24gZGF0YSBoZWFkZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2hlYWRlclNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlICJVbnNhZmUiIAorICAgICAqIGNvZGVwb2ludHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Vuc2FmZVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgY29kZXBvaW50cyB0aGF0IGVuZHMKKyAgICAgKiB3aXRoIGEgY29udHJhY3Rpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2NvbnRyYWN0aW9uRW5kU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBVQ0EgY29udHJhY3Rpb24gaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX1VDQVZhbHVlc1NpemVfOworICAgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yU2VydmljZVNoaW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yU2VydmljZVNoaW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTJmNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JTZXJ2aWNlU2hpbS5qYXZhCkBAIC0wLDAgKzEsMTM1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTG9jYWxlS2V5RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuQ29sbGF0b3JGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworCitmaW5hbCBjbGFzcyBDb2xsYXRvclNlcnZpY2VTaGltIGV4dGVuZHMgQ29sbGF0b3IuU2VydmljZVNoaW0geworCisgICAgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAvLyB1c2Ugc2VydmljZSBjYWNoZSwgaXQncyBmYXN0ZXIgdGhhbiBpbnN0YW50aWF0aW9uCisvLyAgICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworLy8gICAgICAgICAgICAgIHJldHVybiBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobG9jYWxlKTsKKy8vICAgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgVUxvY2FsZVtdIGFjdHVhbExvYyA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICAgICAgQ29sbGF0b3IgY29sbCA9IChDb2xsYXRvcilzZXJ2aWNlLmdldChsb2NhbGUsIGFjdHVhbExvYyk7CisgICAgICAgICAgICBpZiAoY29sbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvY2F0ZSBDb2xsYXRvciBkYXRhIiwgIiIsICIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbGwgPSAoQ29sbGF0b3IpIGNvbGwuY2xvbmUoKTsKKyAgICAgICAgICAgIGNvbGwuc2V0TG9jYWxlKGFjdHVhbExvY1swXSwgYWN0dWFsTG9jWzBdKTsgLy8gc2VydmljZXMgbWFrZSBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIGFjdHVhbCAmIHZhbGlkCisgICAgICAgICAgICByZXR1cm4gY29sbDsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9CisKKyAgICBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDb2xsYXRvciBjb2xsYXRvciwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoY29sbGF0b3IsIGxvY2FsZSk7CisgICAgfQorCisgICAgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShDb2xsYXRvckZhY3RvcnkgZikgeworICAgICAgICBjbGFzcyBDRmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgICAgICAgICAgQ29sbGF0b3JGYWN0b3J5IGRlbGVnYXRlOworCisgICAgICAgICAgICBDRmFjdG9yeShDb2xsYXRvckZhY3RvcnkgZikgeworICAgICAgICAgICAgICAgIHN1cGVyKGYudmlzaWJsZSgpKTsgCisgICAgICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGY7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgbG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGNvbGwgPSBkZWxlZ2F0ZS5jcmVhdGVDb2xsYXRvcihsb2MpOworICAgICAgICAgICAgICAgIHJldHVybiBjb2xsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICAgICAgICAgIFVMb2NhbGUgb2JqZWN0TG9jYWxlID0gbmV3IFVMb2NhbGUoaWQpOworICAgICAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXREaXNwbGF5TmFtZShvYmplY3RMb2NhbGUsIGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0U3VwcG9ydGVkTG9jYWxlSURzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IENGYWN0b3J5KGYpKTsKKyAgICB9CisKKyAgICBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IHJlZ2lzdHJ5S2V5KSB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KXJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICAvLyBUT0RPIHJld3JpdGUgdGhpcyB0byBqdXN0IHdyYXAgZ2V0QXZhaWxhYmxlVUxvY2FsZXMgbGF0ZXIKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9iamVjdExvY2FsZSwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIFN0cmluZyBpZCA9IG9iamVjdExvY2FsZS5nZXROYW1lKCk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERpc3BsYXlOYW1lKGlkLCBkaXNwbGF5TG9jYWxlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBDU2VydmljZSgpIHsKKyAgICAgICAgICAgIHN1cGVyKCJDb2xsYXRvciIpOworCisgICAgICAgICAgICBjbGFzcyBDb2xsYXRvckZhY3RvcnkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgeworICAgICAgICAgICAgICAgIENvbGxhdG9yRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgdWxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHVsb2MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5yZWdpc3RlckZhY3RvcnkobmV3IENvbGxhdG9yRmFjdG9yeSgpKTsKKyAgICAgICAgICAgIG1hcmtEZWZhdWx0KCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZURlZmF1bHQoS2V5IGtleSwgU3RyaW5nW10gYWN0dWFsSURSZXR1cm4pIHsKKyAgICAgICAgICAgIGlmIChhY3R1YWxJRFJldHVybiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsSURSZXR1cm5bMF0gPSAicm9vdCI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoVUxvY2FsZS5ST09UKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIElDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG5ldyBDU2VydmljZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG9zZWRDaGFySXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG9zZWRDaGFySXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyNTUzZmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlZENoYXJJdGVyLmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKKworLyoqCisgKiA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IGlzIGFuIGl0ZXJhdG9yIGNsYXNzIHRoYXQgcmV0dXJucyBhbGwKKyAqIG9mIHRoZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgc3RhbmRhcmQsIGFsb25nCisgKiB3aXRoIHRoZWlyIGRlY29tcG9zZWQgZm9ybXMuICBUaGlzIGlzIG9mdGVuIHVzZWZ1bCB3aGVuIGJ1aWxkaW5nCisgKiBkYXRhIHRhYmxlcyAoPGk+ZS5nLjwvaT4gY29sbGF0aW9uIHRhYmxlcykgd2hpY2ggbmVlZCB0byB0cmVhdCBjb21wb3NlZAorICogYW5kIGRlY29tcG9zZWQgY2hhcmFjdGVycyBlcXVpdmFsZW50bHkuCisgKiA8cD4KKyAqIEZvciBleGFtcGxlLCBpbWFnaW5lIHRoYXQgeW91IGhhdmUgYnVpbHQgYSBjb2xsYXRpb24gdGFibGUgd2l0aCBvcmRlcmluZworICogcnVsZXMgZm9yIHRoZSB7QGxpbmsgTm9ybWFsaXplciNERUNPTVAgY2Fub25pY2FsbHkgZGVjb21wb3NlZH0gZm9ybXMgb2YgYWxsCisgKiBjaGFyYWN0ZXJzIHVzZWQgaW4gYSBwYXJ0aWN1bGFyIGxhbmd1YWdlLiAgV2hlbiB5b3UgcHJvY2VzcyBpbnB1dCB0ZXh0IHVzaW5nCisgKiB0aGlzIHRhYmxlLCB0aGUgdGV4dCBtdXN0IGZpcnN0IGJlIGRlY29tcG9zZWQgc28gdGhhdCBpdCBtYXRjaGVzIHRoZSBmb3JtCisgKiB1c2VkIGluIHRoZSB0YWJsZS4gIFRoaXMgY2FuIGltcG9zZSBhIHBlcmZvcm1hbmNlIHBlbmFsdHkgdGhhdCBtYXkgYmUKKyAqIHVuYWNjZXB0YWJsZSBpbiBzb21lIHNpdHVhdGlvbnMuCisgKiA8cD4KKyAqIFlvdSBjYW4gYXZvaWQgdGhpcyBwcm9ibGVtIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGNvbGxhdGlvbiB0YWJsZSBjb250YWlucworICogcnVsZXMgZm9yIGJvdGggdGhlIGRlY29tcG9zZWQgPGk+YW5kPC9pPiBjb21wb3NlZCB2ZXJzaW9ucyBvZiBlYWNoIGNoYXJhY3Rlci4KKyAqIFRvIGRvIHNvLCB1c2UgYSA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgb2YgdGhlCisgKiBjb21wb3NlZCBjaGFyYWN0ZXJzIGluIFVuaWNvZGUuICBJZiB0aGUgZGVjb21wb3NpdGlvbiBmb3IgdGhhdCBjaGFyYWN0ZXIKKyAqIGNvbnNpc3RzIHNvbGVseSBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGxpc3RlZCBpbiB5b3VyIHJ1bGVzZXQsIHlvdSBjYW4KKyAqIGFkZCBhIG5ldyBydWxlIGZvciB0aGUgY29tcG9zZWQgY2hhcmFjdGVyIHRoYXQgbWFrZXMgaXQgZXF1aXZhbGVudCB0bworICogaXRzIGRlY29tcG9zaXRpb24gc2VxdWVuY2UuCisgKiA8cD4KKyAqIE5vdGUgdGhhdCA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IGl0ZXJhdGVzIG92ZXIgYSA8ZW0+c3RhdGljPC9lbT4gdGFibGUKKyAqIG9mIHRoZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGluIFVuaWNvZGUuICBJZiB5b3Ugd2FudCB0byBpdGVyYXRlIG92ZXIgdGhlCisgKiBjb21wb3NlZCBjaGFyYWN0ZXJzIGluIGEgcGFydGljdWxhciBzdHJpbmcsIHVzZSB7QGxpbmsgTm9ybWFsaXplcn0gaW5zdGVhZC4KKyAqIDxwPgorICogV2hlbiBjb25zdHJ1Y3RpbmcgYSA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IHRoZXJlIGlzIG9uZQorICogb3B0aW9uYWwgZmVhdHVyZSB0aGF0IHlvdSBjYW4gZW5hYmxlIG9yIGRpc2FibGU6CisgKiA8dWw+CisgKiAgIDxsaT57QGxpbmsgTm9ybWFsaXplciNJR05PUkVfSEFOR1VMfSAtIERvIG5vdCBpdGVyYXRlIG92ZXIgdGhlIEhhbmd1bAorICogICAgICAgICAgY2hhcmFjdGVycyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBKYW1vIGRlY29tcG9zaXRpb25zLgorICogICAgICAgICAgVGhpcyBvcHRpb24gaXMgb2ZmIGJ5IGRlZmF1bHQgKDxpPmkuZS48L2k+IEhhbmd1bCBwcm9jZXNzaW5nIGlzIGVuYWJsZWQpCisgKiAgICAgICAgICBzaW5jZSB0aGUgVW5pY29kZSBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBIYW5ndWwgdG8gSmFtbyAKKyAqICAgICAgICAgIGlzIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uCisgKiA8L3VsPgorICogPHA+CisgKiA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IGlzIGN1cnJlbnRseSBiYXNlZCBvbiB2ZXJzaW9uIDIuMS44IG9mIHRoZQorICogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZyIgdGFyZ2V0PSJ1bmljb2RlIj5Vbmljb2RlIFN0YW5kYXJkPC9hPi4KKyAqIEl0IHdpbGwgYmUgdXBkYXRlZCBhcyBsYXRlciB2ZXJzaW9ucyBvZiBVbmljb2RlIGFyZSByZWxlYXNlZC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAqLworLy8vQ0xPVkVSOk9GRgorcHVibGljIGZpbmFsIGNsYXNzIENvbXBvc2VkQ2hhckl0ZXIgeworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRoYXQgaW5kaWNhdGVzIHRoZSBpdGVyYXRpb24gaGFzIGNvbXBsZXRlZC4KKyAgICAgKiB7QGxpbmsgI25leHR9IHJldHVybnMgdGhpcyB2YWx1ZSB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgKiBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgIGNoYXIgRE9ORSA9IChjaGFyKSBOb3JtYWxpemVyLkRPTkU7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4uICBUaGUgaXRlcmF0b3Igd2lsbCByZXR1cm4KKyAgICAgKiBhbGwgVW5pY29kZSBjaGFyYWN0ZXJzIHdpdGggY2Fub25pY2FsIGRlY29tcG9zaXRpb25zLCBpbmNsdWRpbmcgS29yZWFuCisgICAgICogSGFuZ3VsIGNoYXJhY3RlcnMuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBDb21wb3NlZENoYXJJdGVyKCkgeworICAgICAgICBjb21wYXQgPSBmYWxzZTsKKyAgICAgICAgb3B0aW9ucyA9MDsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5vbi1kZWZhdWx0IDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gd2l0aCBvcHRpb25hbCBiZWhhdmlvci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgIDx0dD5mYWxzZTwvdHQ+IGZvciBjYW5vbmljYWwgZGVjb21wb3NpdGlvbnMgb25seTsKKyAgICAgKiAgICAgICAgICAgICAgICAgIDx0dD50cnVlPC90dD4gZm9yIGJvdGggY2Fub25pY2FsIGFuZCBjb21wYXRpYmlsaXR5CisgICAgICogICAgICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgT3B0aW9uYWwgZGVjb21wb3NpdGlvbiBmZWF0dXJlcy4gIEN1cnJlbnRseSwgdGhlIG9ubHkKKyAgICAgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBvcHRpb24gaXMge0BsaW5rIE5vcm1hbGl6ZXIjSUdOT1JFX0hBTkdVTH0sIHdoaWNoCisgICAgICogICAgICAgICAgICAgICAgICBjYXVzZXMgdGhpcyA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IG5vdCB0byBpdGVyYXRlCisgICAgICogICAgICAgICAgICAgICAgICBvdmVyIHRoZSBIYW5ndWwgY2hhcmFjdGVycyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZworICAgICAqICAgICAgICAgICAgICAgICAgSmFtbyBkZWNvbXBvc2l0aW9ucy4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIENvbXBvc2VkQ2hhckl0ZXIoYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMuY29tcGF0ID0gY29tcGF0OworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlcmUgYW55IHByZWNvbXBvc2VkIFVuaWNvZGUgY2hhcmFjdGVycyBub3QgeWV0IHJldHVybmVkCisgICAgICogYnkge0BsaW5rICNuZXh0fS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKyAgICAgICAgaWYgKG5leHRDaGFyID09IE5vcm1hbGl6ZXIuRE9ORSkgIHsKKyAgICAgICAgICAgIGZpbmROZXh0Q2hhcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXh0Q2hhciAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgcHJlY29tcG9zZWQgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICogUmVwZWF0ZWQgY2FsbHMgdG8gPHR0Pm5leHQ8L3R0PiByZXR1cm4gYWxsIG9mIHRoZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGRlZmluZWQKKyAgICAgKiBieSBVbmljb2RlLCBpbiBhc2NlbmRpbmcgb3JkZXIuICBBZnRlciBhbGwgcHJlY29tcG9zZWQgY2hhcmFjdGVycyBoYXZlCisgICAgICogYmVlbiByZXR1cm5lZCwge0BsaW5rICNoYXNOZXh0fSB3aWxsIHJldHVybiA8dHQ+ZmFsc2U8L3R0PiBhbmQgZnVydGhlciBjYWxscworICAgICAqIHRvIDx0dD5uZXh0PC90dD4gd2lsbCByZXR1cm4ge0BsaW5rICNET05FfS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGNoYXIgbmV4dCgpIHsKKyAgICAgICAgaWYgKG5leHRDaGFyID09IE5vcm1hbGl6ZXIuRE9ORSkgIHsKKyAgICAgICAgICAgIGZpbmROZXh0Q2hhcigpOworICAgICAgICB9CisgICAgICAgIGN1ckNoYXIgPSBuZXh0Q2hhcjsKKyAgICAgICAgbmV4dENoYXIgPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgIHJldHVybiAoY2hhcikgY3VyQ2hhcjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVW5pY29kZSBkZWNvbXBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBkZWNvbXBvc2l0aW9uIG9mIHRoZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXIgbW9zdAorICAgICAqIHJlY2VudGx5IHJldHVybmVkIGJ5IHtAbGluayAjbmV4dH0uICBUaGUgcmVzdWx0aW5nIGRlY29tcG9zaXRpb24gaXMKKyAgICAgKiBhZmZlY3RlZCBieSB0aGUgc2V0dGluZ3Mgb2YgdGhlIG9wdGlvbnMgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkZWNvbXBvc2l0aW9uKCkgeworICAgICAgICAvLyB0aGUgZGVjb21wb3NpdGlvbiBidWZmZXIgY29udGFpbnMgdGhlIGRlY29tcG9zaXRpb24gb2YgCisgICAgICAgIC8vIGN1cnJlbnQgY2hhciBzbyBqdXN0IHJldHVybiBpdAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZWNvbXBCdWYsMCwgYnVmTGVuKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGZpbmROZXh0Q2hhcigpIHsKKyAgICAgICAgaW50IGM9Y3VyQ2hhcisxOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICBpZihjIDwgMHhGRkZGKXsKKyAgICAgICAgICAgICAgIGJ1ZkxlbiA9IE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oYyxjb21wYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcEJ1ZiwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBCdWYubGVuZ3RoKTsKKyAgICAgICAgICAgICAgIGlmKGJ1Zkxlbj4wKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGN1ckNoYXIgY2FuIGJlIGRlY29tcG9zZWQuLi4gc28gaXQgaXMgYSBjb21wb3NlZCBjaGFyCisgICAgICAgICAgICAgICAgICAgIC8vIGNhY2hlIHRoZSByZXN1bHQgICAgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGMrKzsKKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBjPU5vcm1hbGl6ZXIuRE9ORTsKKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbmV4dENoYXI9YzsgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBvcHRpb25zOworICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXQ7CisgICAgcHJpdmF0ZSBjaGFyW10gZGVjb21wQnVmID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZMZW49MDsKKyAgICBwcml2YXRlIGludCBjdXJDaGFyID0gMDsKKyAgICBwcml2YXRlIGludCBuZXh0Q2hhciA9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAKKworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNWUwN2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG91bmRUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGNvbXBvc2VkIG9mIHR3byBvciBtb3JlIG90aGVyCisgKiB0cmFuc2xpdGVyYXRvciBvYmplY3RzIGxpbmtlZCB0b2dldGhlci4gIEZvciBleGFtcGxlLCBpZiBvbmUKKyAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIGZyb20gc2NyaXB0IEEgdG8gc2NyaXB0IEIsIGFuZAorICogYW5vdGhlciB0cmFuc2xpdGVyYXRlcyBmcm9tIHNjcmlwdCBCIHRvIHNjcmlwdCBDLCB0aGUgdHdvIG1heSBiZQorICogY29tYmluZWQgdG8gZm9ybSBhIG5ldyB0cmFuc2xpdGVyYXRvciBmcm9tIEEgdG8gQy4KKyAqCisgKiA8cD5Db21wb3NlZCB0cmFuc2xpdGVyYXRvcnMgbWF5IG5vdCBiZWhhdmUgYXMgZXhwZWN0ZWQuICBGb3IKKyAqIGV4YW1wbGUsIGludmVyc2VzIG1heSBub3QgY29tYmluZSB0byBmb3JtIHRoZSBpZGVudGl0eQorICogdHJhbnNsaXRlcmF0b3IuICBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIHtAbGluaworICogVHJhbnNsaXRlcmF0b3J9IGZvciBkZXRhaWxzLgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvcltdIHRyYW5zOworCisgICAgcHJpdmF0ZSBpbnQgbnVtQW5vbnltb3VzUkJUcyA9IDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yIGdpdmVuIGFuIGFycmF5IG9mCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGFycmF5IG9mIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgb2YgYW55CisgICAgICogbGVuZ3RoLCBpbmNsdWRpbmcgemVybyBvciBvbmUsIGhvd2V2ZXIsIHVzZWZ1bCBjb21wb3VuZAorICAgICAqIHRyYW5zbGl0ZXJhdG9ycyBoYXZlIGF0IGxlYXN0IHR3byBjb21wb25lbnRzLgorICAgICAqIEBwYXJhbSB0cmFuc2xpdGVyYXRvcnMgYXJyYXkgb2YgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+CisgICAgICogb2JqZWN0cworICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlci4gIEFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgICAgICogPHR0PmZpbHRlci5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+ZmFsc2U8L3R0PiB3aWxsIG5vdCBiZQorICAgICAqIGFsdGVyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIDx0dD5maWx0ZXI8L3R0PiBpcworICAgICAqIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgaXMgYXBwbGllZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvcltdIHRyYW5zbGl0ZXJhdG9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihqb2luSURzKHRyYW5zbGl0ZXJhdG9ycyksIGZpbHRlcik7CisgICAgICAgIHRyYW5zID0gbmV3IFRyYW5zbGl0ZXJhdG9yW3RyYW5zbGl0ZXJhdG9ycy5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRyYW5zbGl0ZXJhdG9ycywgMCwgdHJhbnMsIDAsIHRyYW5zLmxlbmd0aCk7CisgICAgICAgIGNvbXB1dGVNYXhpbXVtQ29udGV4dExlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IgZ2l2ZW4gYW4gYXJyYXkgb2YKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMuICBUaGUgYXJyYXkgb2YgdHJhbnNsaXRlcmF0b3JzIG1heSBiZSBvZiBhbnkKKyAgICAgKiBsZW5ndGgsIGluY2x1ZGluZyB6ZXJvIG9yIG9uZSwgaG93ZXZlciwgdXNlZnVsIGNvbXBvdW5kCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmUgYXQgbGVhc3QgdHdvIGNvbXBvbmVudHMuCisgICAgICogQHBhcmFtIHRyYW5zbGl0ZXJhdG9ycyBhcnJheSBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBvYmplY3RzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2xpdGVyYXRvcnMpIHsKKyAgICAgICAgdGhpcyh0cmFuc2xpdGVyYXRvcnMsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIElEIGNvbXBvdW5kIElECisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBlaXRoZXIgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCBvciBUcmFuc2xpdGVyYXRvci5SRVZFUlNFCisgICAgICogQHBhcmFtIGZpbHRlciBhIGdsb2JhbCBmaWx0ZXIgZm9yIHRoaXMgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBvciBudWxsCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHN1cGVyKElELCBmaWx0ZXIpOworICAgICAgICBpbml0KElELCBkaXJlY3Rpb24sIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3Igd2l0aCBubyBmaWx0ZXIuCisgICAgICogQHBhcmFtIElEIGNvbXBvdW5kIElECisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBlaXRoZXIgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCBvciBUcmFuc2xpdGVyYXRvci5SRVZFUlNFCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uKSB7CisgICAgICAgIHRoaXMoSUQsIGRpcmVjdGlvbiwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBmb3J3YXJkIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yIHdpdGggbm8gZmlsdGVyLgorICAgICAqIEBwYXJhbSBJRCBjb21wb3VuZCBJRAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCkgeworICAgICAgICB0aGlzKElELCBGT1JXQVJELCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgZm9yIFRyYW5zbGl0ZXJhdG9yIGZyb20gYSB2ZWN0b3Igb2YKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmaXhpbmcgdXAgdGhlCisgICAgICogSUQuCisgICAgICovCisgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihWZWN0b3IgbGlzdCkgeworICAgICAgICB0aGlzKGxpc3QsIDApOworICAgIH0KKworICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVmVjdG9yIGxpc3QsIGludCBudW1Bbm9ueW1vdXNSQlRzKSB7CisgICAgICAgIHN1cGVyKCIiLCBudWxsKTsKKyAgICAgICAgdHJhbnMgPSBudWxsOworICAgICAgICBpbml0KGxpc3QsIEZPUldBUkQsIGZhbHNlKTsKKyAgICAgICAgdGhpcy5udW1Bbm9ueW1vdXNSQlRzID0gbnVtQW5vbnltb3VzUkJUczsKKyAgICAgICAgLy8gYXNzdW1lIGNhbGxlciB3aWxsIGZpeHVwIElECisgICAgfQorCisgICAgLyoqCisgICAgICogRmluaXNoIGNvbnN0cnVjdGluZyBhIHRyYW5zbGl0ZXJhdG9yOiBvbmx5IHRvIGJlIGNhbGxlZCBieQorICAgICAqIGNvbnN0cnVjdG9ycy4gIEJlZm9yZSBjYWxsaW5nIGluaXQoKSwgc2V0IHRyYW5zIGFuZCBmaWx0ZXIgdG8gTlVMTC4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIGNvbnRhaW5pbmcgJzsnLXNlcGFyYXRlZCBlbnRyaWVzCisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBlaXRoZXIgRk9SV0FSRCBvciBSRVZFUlNFCisgICAgICogQHBhcmFtIGlkU3BsaXRQb2ludCB0aGUgaW5kZXggaW50byBpZCBhdCB3aGljaCB0aGUKKyAgICAgKiBzcGxpdFRyYW5zIHNob3VsZCBiZSBpbnNlcnRlZCwgaWYgdGhlcmUgaXMgb25lLCBvcgorICAgICAqIC0xIGlmIHRoZXJlIGlzIG5vbmUuCisgICAgICogQHBhcmFtIHNwbGl0VHJhbnMgYSB0cmFuc2xpdGVyYXRvciB0byBiZSBpbnNlcnRlZAorICAgICAqIGJlZm9yZSB0aGUgZW50cnkgYXQgb2Zmc2V0IGlkU3BsaXRQb2ludCBpbiB0aGUgaWQgc3RyaW5nLiAgTWF5IGJlCisgICAgICogTlVMTCB0byBpbnNlcnQgbm8gZW50cnkuCisgICAgICogQHBhcmFtIGZpeFJldmVyc2VJRCBpZiBUUlVFLCB0aGVuIHJlY29uc3RydWN0IHRoZSBJRCBvZiByZXZlcnNlCisgICAgICogZW50cmllcyBieSBjYWxsaW5nIGdldElEKCkgb2YgY29tcG9uZW50IGVudHJpZXMuICBTb21lIGNvbnN0cnVjdG9ycworICAgICAqIGRvIG5vdCByZXF1aXJlIHRoaXMgYmVjYXVzZSB0aGV5IGFwcGx5IGEgZmFjYWRlIElEIGFueXdheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdChTdHJpbmcgaWQsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZpeFJldmVyc2VJRCkgeworICAgICAgICAvLyBhc3NlcnQodHJhbnMgPT0gMCk7CisKKyAgICAgICAgVmVjdG9yIGxpc3QgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIFVuaWNvZGVTZXRbXSBjb21wb3VuZEZpbHRlciA9IG5ldyBVbmljb2RlU2V0WzFdOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVnZW5JRCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKCFUcmFuc2xpdGVyYXRvcklEUGFyc2VyLnBhcnNlQ29tcG91bmRJRChpZCwgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICByZWdlbklELCBsaXN0LCBjb21wb3VuZEZpbHRlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgSUQgIiArIGlkKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuaW5zdGFudGlhdGVMaXN0KGxpc3QpOworCisgICAgICAgIGluaXQobGlzdCwgZGlyZWN0aW9uLCBmaXhSZXZlcnNlSUQpOworCisgICAgICAgIGlmIChjb21wb3VuZEZpbHRlclswXSAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXRGaWx0ZXIoY29tcG91bmRGaWx0ZXJbMF0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluaXNoIGNvbnN0cnVjdGluZyBhIHRyYW5zbGl0ZXJhdG9yOiBvbmx5IHRvIGJlIGNhbGxlZCBieQorICAgICAqIGNvbnN0cnVjdG9ycy4gIEJlZm9yZSBjYWxsaW5nIGluaXQoKSwgc2V0IHRyYW5zIGFuZCBmaWx0ZXIgdG8gTlVMTC4KKyAgICAgKiBAcGFyYW0gbGlzdCBhIHZlY3RvciBvZiB0cmFuc2xpdGVyYXRvciBvYmplY3RzIHRvIGJlIGFkb3B0ZWQuICBJdAorICAgICAqIHNob3VsZCBOT1QgYmUgZW1wdHkuICBUaGUgbGlzdCBzaG91bGQgYmUgaW4gZGVjbGFyZWQgb3JkZXIuICBUaGF0CisgICAgICogaXMsIGl0IHNob3VsZCBiZSBpbiB0aGUgRk9SV0FSRCBvcmRlcjsgaWYgZGlyZWN0aW9uIGlzIFJFVkVSU0UgdGhlbgorICAgICAqIHRoZSBsaXN0IG9yZGVyIHdpbGwgYmUgcmV2ZXJzZWQuCisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBlaXRoZXIgRk9SV0FSRCBvciBSRVZFUlNFCisgICAgICogQHBhcmFtIGZpeFJldmVyc2VJRCBpZiBUUlVFLCB0aGVuIHJlY29uc3RydWN0IHRoZSBJRCBvZiByZXZlcnNlCisgICAgICogZW50cmllcyBieSBjYWxsaW5nIGdldElEKCkgb2YgY29tcG9uZW50IGVudHJpZXMuICBTb21lIGNvbnN0cnVjdG9ycworICAgICAqIGRvIG5vdCByZXF1aXJlIHRoaXMgYmVjYXVzZSB0aGV5IGFwcGx5IGEgZmFjYWRlIElEIGFueXdheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdChWZWN0b3IgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZml4UmV2ZXJzZUlEKSB7CisgICAgICAgIC8vIGFzc2VydCh0cmFucyA9PSAwKTsKKworICAgICAgICAvLyBBbGxvY2F0ZSBhcnJheQorICAgICAgICBpbnQgY291bnQgPSBsaXN0LnNpemUoKTsKKyAgICAgICAgdHJhbnMgPSBuZXcgVHJhbnNsaXRlcmF0b3JbY291bnRdOworCisgICAgICAgIC8vIE1vdmUgdGhlIHRyYW5zbGl0ZXJhdG9ycyBmcm9tIHRoZSB2ZWN0b3IgaW50byBhbiBhcnJheS4KKyAgICAgICAgLy8gUmV2ZXJzZSB0aGUgb3JkZXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGogPSAoZGlyZWN0aW9uID09IEZPUldBUkQpID8gaSA6IGNvdW50IC0gMSAtIGk7CisgICAgICAgICAgICB0cmFuc1tpXSA9IChUcmFuc2xpdGVyYXRvcikgbGlzdC5lbGVtZW50QXQoaik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgZGlyZWN0aW9uIGlzIFVUUkFOU19SRVZFUlNFIHRoZW4gd2UgbWF5IG5lZWQgdG8gZml4IHRoZQorICAgICAgICAvLyBJRC4KKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBSRVZFUlNFICYmIGZpeFJldmVyc2VJRCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG5ld0lEID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBuZXdJRC5hcHBlbmQoSURfREVMSU0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdJRC5hcHBlbmQodHJhbnNbaV0uZ2V0SUQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRJRChuZXdJRC50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbXB1dGVNYXhpbXVtQ29udGV4dExlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgSURzIG9mIHRoZSBnaXZlbiBsaXN0IG9mIHRyYW5zbGl0ZXJhdG9ycywgY29uY2F0ZW5hdGVkCisgICAgICogd2l0aCAnOycgZGVsaW1pdGluZyB0aGVtLiAgRXF1aXZhbGVudCB0byB0aGUgcGVybGlzaCBleHByZXNzaW9uCisgICAgICogam9pbignOycsIG1hcCgkXy5nZXRJRCgpLCB0cmFuc2xpdGVyYXRvcnMpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBqb2luSURzKFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNsaXRlcmF0b3JzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBpZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zbGl0ZXJhdG9ycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgaWQuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZC5hcHBlbmQodHJhbnNsaXRlcmF0b3JzW2ldLmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB0cmFuc2xpdGVyYXRvcnMgaW4gdGhpcyBjaGFpbi4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiB0cmFuc2xpdGVyYXRvcnMgaW4gdGhpcyBjaGFpbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvdW50KCkgeworICAgICAgICByZXR1cm4gdHJhbnMubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRyYW5zbGl0ZXJhdG9yIGF0IHRoZSBnaXZlbiBpbmRleCBpbiB0aGlzIGNoYWluLgorICAgICAqIEBwYXJhbSBpbmRleCBpbmRleCBpbnRvIGNoYWluLCBmcm9tIDAgdG8gPGNvZGU+Z2V0Q291bnQoKSAtIDE8L2NvZGU+CisgICAgICogQHJldHVybiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZ2l2ZW4gaW5kZXgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0VHJhbnNsaXRlcmF0b3IoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiB0cmFuc1tpbmRleF07CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGMgdG8gYnVmLCB1bmxlc3MgYnVmIGlzIGVtcHR5IG9yIGJ1ZiBhbHJlYWR5IGVuZHMgaW4gYy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIF9zbWFydEFwcGVuZChTdHJpbmdCdWZmZXIgYnVmLCBjaGFyIGMpIHsKKyAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSAwICYmCisgICAgICAgICAgICBidWYuY2hhckF0KGJ1Zi5sZW5ndGgoKSAtIDEpICE9IGMpIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBUcmFuc2xpdGVyYXRvcjoKKyAgICAgKiBDcmVhdGUgYSBydWxlIHN0cmluZyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gY3JlYXRlRnJvbVJ1bGVzKCkKKyAgICAgKiB0byByZWNyZWF0ZSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiBUUlVFIHRoZW4gY29udmVydCB1bnByaW50YWJsZQorICAgICAqIGNoYXJhY3RlciB0byB0aGVpciBoZXggZXNjYXBlIHJlcHJlc2VudGF0aW9ucywgXFx1eHh4eCBvcgorICAgICAqIFxcVXh4eHh4eHh4LiAgVW5wcmludGFibGUgY2hhcmFjdGVycyBhcmUgdGhvc2Ugb3RoZXIgdGhhbgorICAgICAqIFUrMDAwQSwgVSswMDIwLi5VKzAwN0UuCisgICAgICogQHJldHVybiB0aGUgcnVsZSBzdHJpbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAvLyBXZSBkbyBOT1QgY2FsbCB0b1J1bGVzKCkgb24gb3VyIGNvbXBvbmVudCB0cmFuc2xpdGVyYXRvcnMsIGluCisgICAgICAgIC8vIGdlbmVyYWwuICBJZiB3ZSBoYXZlIHNldmVyYWwgcnVsZS1iYXNlZCB0cmFuc2xpdGVyYXRvcnMsIHRoaXMKKyAgICAgICAgLy8geWllbGRzIGEgY29uY2F0ZW5hdGlvbiBvZiB0aGUgcnVsZXMgLS0gbm90IHdoYXQgd2Ugd2FudC4gIFdlIGRvCisgICAgICAgIC8vIGhhbmRsZSBjb21wb3VuZCBSQlQgdHJhbnNsaXRlcmF0b3JzIHNwZWNpYWxseSAtLSB0aG9zZSBmb3Igd2hpY2gKKyAgICAgICAgLy8gY29tcG91bmRSQlRJbmRleCA+PSAwLiAgRm9yIHRoZSB0cmFuc2xpdGVyYXRvciBhdCBjb21wb3VuZFJCVEluZGV4LAorICAgICAgICAvLyB3ZSBkbyBjYWxsIHRvUnVsZXMoKSByZWN1cnNpdmVseS4KKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGVzU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAobnVtQW5vbnltb3VzUkJUcyA+PSAxICYmIGdldEZpbHRlcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGFyZSBhIGNvbXBvdW5kIFJCVCBhbmQgaWYgd2UgaGF2ZSBhIGdsb2JhbAorICAgICAgICAgICAgLy8gZmlsdGVyLCB0aGVuIGVtaXQgaXQgYXQgdGhlIHRvcC4KKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmFwcGVuZCgiOjoiKS5hcHBlbmQoZ2V0RmlsdGVyKCkudG9QYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSkuYXBwZW5kKElEX0RFTElNKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlOworCisgICAgICAgICAgICAvLyBBbm9ueW1vdXMgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3JzIChpbmxpbmUgcnVsZXMgYW5kCisgICAgICAgICAgICAvLyA6OkJFR0lOLzo6RU5EIGJsb2NrcykgYXJlIGdpdmVuIElEcyB0aGF0IGJlZ2luIHdpdGgKKyAgICAgICAgICAgIC8vICIlUGFzcyI6IHVzZSB0b1J1bGVzKCkgdG8gd3JpdGUgYWxsIHRoZSBydWxlcyB0byB0aGUgb3V0cHV0CisgICAgICAgICAgICAvLyAoYW5kIGluc2VydCAiOjpOdWxsOyIgaWYgd2UgaGF2ZSB0d28gaW4gYSByb3cpCisgICAgICAgICAgICBpZiAodHJhbnNbaV0uZ2V0SUQoKS5zdGFydHNXaXRoKCIlUGFzcyIpKSB7CisgICAgICAgICAgICAgICAgcnVsZSA9IHRyYW5zW2ldLnRvUnVsZXMoZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIGlmIChudW1Bbm9ueW1vdXNSQlRzID4gMSAmJiBpID4gMCAmJiB0cmFuc1tpIC0gMV0uZ2V0SUQoKS5zdGFydHNXaXRoKCIlUGFzcyIpKQorICAgICAgICAgICAgICAgICAgICBydWxlID0gIjo6TnVsbDsiICsgcnVsZTsKKworICAgICAgICAgICAgLy8gd2UgYWxzbyB1c2UgdG9SdWxlcygpIG9uIENvbXBvdW5kVHJhbnNsaXRlcmF0b3JzICh3aGljaCB3ZQorICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGJ5IGxvb2tpbmcgZm9yIGEgc2VtaWNvbG9uIGluIHRoZSBJRCktLSB0aGlzIGdldHMKKyAgICAgICAgICAgIC8vIHRoZSBsaXN0IG9mIHRoZWlyIGNoaWxkIHRyYW5zbGl0ZXJhdG9ycyBvdXRwdXQgaW4gdGhlIHJpZ2h0CisgICAgICAgICAgICAvLyBmb3JtYXQKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNbaV0uZ2V0SUQoKS5pbmRleE9mKCc7JykgPj0gMCkgeworICAgICAgICAgICAgICAgIHJ1bGUgPSB0cmFuc1tpXS50b1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKworICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5dGhpbmcgZWxzZSwgdXNlIGJhc2VUb1J1bGVzKCkKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcnVsZSA9IHRyYW5zW2ldLmJhc2VUb1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9zbWFydEFwcGVuZChydWxlc1NvdXJjZSwgJ1xuJyk7CisgICAgICAgICAgICBydWxlc1NvdXJjZS5hcHBlbmQocnVsZSk7CisgICAgICAgICAgICBfc21hcnRBcHBlbmQocnVsZXNTb3VyY2UsIElEX0RFTElNKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZXNTb3VyY2UudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSB0aGlzCisgICAgICogVHJhbnNsaXRlcmF0b3IsIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2Ygb3VyIGZpbHRlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzZXQuYWRkQWxsKHRyYW5zW2ldLmdldFNvdXJjZVNldCgpKTsKKyAgICAgICAgICAgIC8vIFRha2UgdGhlIGV4YW1wbGUgb2YgSGlyYWdhbmEtTGF0aW4uICBUaGlzIGlzIHJlYWxseQorICAgICAgICAgICAgLy8gSGlyYWdhbmEtS2F0YWthbmE7IEthdGFrYW5hLUxhdGluLiAgVGhlIHNvdXJjZSBzZXQgb2YKKyAgICAgICAgICAgIC8vIHRoZXNlIHR3byBpcyByb3VnaGx5IFs6SGlyYWdhbmE6XSBhbmQgWzpLYXRha2FuYTpdLgorICAgICAgICAgICAgLy8gQnV0IHRoZSBzb3VyY2Ugc2V0IGZvciB0aGUgZW50aXJlIHRyYW5zbGl0ZXJhdG9yIGlzCisgICAgICAgICAgICAvLyBhY3R1YWxseSBbOkhpcmFnYW5hOl0gT05MWSAtLSB0aGF0IGlzLCB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vIG5vbi1lbXB0eSBzb3VyY2Ugc2V0LgorCisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgaGV1cmlzdGljLCBhbmQgbm90IDEwMCUgcmVsaWFibGUuCisgICAgICAgICAgICBpZiAoIXNldC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBnZW5lcmF0ZWQgYXMKKyAgICAgKiByZXBsYWNlbWVudCB0ZXh0IGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFyZ2V0U2V0KCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGhldXJpc3RpYywgYW5kIG5vdCAxMDAlIHJlbGlhYmxlLgorICAgICAgICAgICAgc2V0LmFkZEFsbCh0cmFuc1tpXS5nZXRUYXJnZXRTZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvKiBDYWxsIGVhY2ggdHJhbnNsaXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBzdGFydCB2YWx1ZSBhbmQKKyAgICAgICAgICogaW5pdGlhbCBjdXJzb3IgaW5kZXgsIGJ1dCB3aXRoIHRoZSBsaW1pdCBpbmRleCBhcyBtb2RpZmllZAorICAgICAgICAgKiBieSBwcmVjZWRpbmcgdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGN1cnNvciBpbmRleCBtdXN0IGJlCisgICAgICAgICAqIHJlc2V0IGZvciBlYWNoIHRyYW5zbGl0ZXJhdG9yIHRvIGdpdmUgZWFjaCBhIGNoYW5jZSB0bworICAgICAgICAgKiB0cmFuc2xpdGVyYXRlIHRoZSB0ZXh0LiAgVGhlIGluaXRpYWwgY3Vyc29yIGluZGV4IGlzIGtub3duCisgICAgICAgICAqIHRvIHN0aWxsIHBvaW50IHRvIHRoZSBzYW1lIHBsYWNlIGFmdGVyIGVhY2ggdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgICogaXMgY2FsbGVkIGJlY2F1c2UgZWFjaCB0cmFuc2xpdGVyYXRvciB3aWxsIG5vdCBjaGFuZ2UgdGhlCisgICAgICAgICAqIHRleHQgYmV0d2VlbiBzdGFydCBhbmQgdGhlIGluaXRpYWwgdmFsdWUgb2YgY3Vyc29yLgorICAgICAgICAgKgorICAgICAgICAgKiBJTVBPUlRBTlQ6IEFmdGVyIHRoZSBmaXJzdCB0cmFuc2xpdGVyYXRvciwgZWFjaCBzdWJzZXF1ZW50CisgICAgICAgICAqIHRyYW5zbGl0ZXJhdG9yIG9ubHkgZ2V0cyB0byB0cmFuc2xpdGVyYXRlIHRleHQgY29tbWl0dGVkIGJ5CisgICAgICAgICAqIHByZWNlZGluZyB0cmFuc2xpdGVyYXRvcnM7IHRoYXQgaXMsIHRoZSBjdXJzb3IgKG91dHB1dAorICAgICAgICAgKiB2YWx1ZSkgb2YgdHJhbnNsaXRlcmF0b3IgaSBiZWNvbWVzIHRoZSBsaW1pdCAoaW5wdXQgdmFsdWUpCisgICAgICAgICAqIG9mIHRyYW5zbGl0ZXJhdG9yIGkrMS4gIEZpbmFsbHksIHRoZSBvdmVyYWxsIGxpbWl0IGlzIGZpeGVkCisgICAgICAgICAqIHVwIGJlZm9yZSB3ZSByZXR1cm4uCisgICAgICAgICAqCisgICAgICAgICAqIEFzc3VtcHRpb25zIHdlIG1ha2UgaGVyZToKKyAgICAgICAgICogKDEpIGNvbnRleHRTdGFydCA8PSBzdGFydCA8PSBsaW1pdCA8PSBjb250ZXh0TGltaXQgPD0gdGV4dC5sZW5ndGgoKQorICAgICAgICAgKiAoMikgc3RhcnQgPD0gc3RhcnQnIDw9IGxpbWl0JyAgO2N1cnNvciBkb2Vzbid0IG1vdmUgYmFjaworICAgICAgICAgKiAoMykgc3RhcnQgPD0gbGltaXQnICAgICAgICAgICAgO3RleHQgYmVmb3JlIGN1cnNvciB1bmNoYW5nZWQKKyAgICAgICAgICogLSBzdGFydCcgaXMgdGhlIHZhbHVlIG9mIHN0YXJ0IGFmdGVyIGNhbGxpbmcgaGFuZGxlS1QKKyAgICAgICAgICogLSBsaW1pdCcgaXMgdGhlIHZhbHVlIG9mIGxpbWl0IGFmdGVyIGNhbGxpbmcgaGFuZGxlS1QKKyAgICAgICAgICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEV4YW1wbGU6IDMgdHJhbnNsaXRlcmF0b3JzLiAgVGhpcyBleGFtcGxlIGlsbHVzdHJhdGVzIHRoZQorICAgICAgICAgKiBtZWNoYW5pY3Mgd2UgbmVlZCB0byBpbXBsZW1lbnQuICBDLCBTLCBhbmQgTCBhcmUgdGhlIGNvbnRleHRTdGFydCwKKyAgICAgICAgICogc3RhcnQsIGFuZCBsaW1pdC4gIGdsIGlzIHRoZSBnbG9iYWxMaW1pdC4gIGNvbnRleHRMaW1pdCBpcworICAgICAgICAgKiBlcXVhbCB0byBsaW1pdCB0aHJvdWdob3V0LgorICAgICAgICAgKgorICAgICAgICAgKiAxLiBoLXUsIGNoYW5nZXMgaGV4IHRvIFVuaWNvZGUKKyAgICAgICAgICoKKyAgICAgICAgICogICAgNCAgNyAgYSAgZCAgMCAgICAgIDQgIDcgIGEKKyAgICAgICAgICogICAgYWJjL3UwMDYxL3UgICAgPT4gIGFiY2EvdQorICAgICAgICAgKiAgICBDICBTICAgICAgIEwgICAgICAgQyAgIFMgTCAgIGdsPWYtPmEKKyAgICAgICAgICoKKyAgICAgICAgICogMi4gdXB1cCwgY2hhbmdlcyAieCIgdG8gIlhYIgorICAgICAgICAgKgorICAgICAgICAgKiAgICA0ICA3ICBhICAgICAgIDQgIDcgIGEKKyAgICAgICAgICogICAgYWJjYS91ICAgID0+ICBhYmNBQS91CisgICAgICAgICAqICAgIEMgIFNMICAgICAgICAgQyAgICBTCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICBMICAgIGdsPWEtPmIKKyAgICAgICAgICogMy4gdS1oLCBjaGFuZ2VzIFVuaWNvZGUgdG8gaGV4CisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgICAgICAgIDQgIDcgIGEgIGQgIDAgIDMKKyAgICAgICAgICogICAgYWJjQUEvdSAgICA9PiAgYWJjL3UwMDQxL3UwMDQxL3UKKyAgICAgICAgICogICAgQyAgUyBMICAgICAgICAgQyAgICAgICAgICAgICAgUworICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMICAgZ2w9Yi0+MTUKKyAgICAgICAgICogNC4gcmV0dXJuCisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgIGQgIDAgIDMKKyAgICAgICAgICogICAgYWJjL3UwMDQxL3UwMDQxL3UKKyAgICAgICAgICogICAgQyBTIEwKKyAgICAgICAgICovCisKKyAgICAgICAgaWYgKHRyYW5zLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQ7CisgICAgICAgICAgICByZXR1cm47IC8vIFNob3J0IGNpcmN1aXQgZm9yIGVtcHR5IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9ycworICAgICAgICB9CisKKyAgICAgICAgLy8gY29tcG91bmRMaW1pdCBpcyB0aGUgbGltaXQgdmFsdWUgZm9yIHRoZSBlbnRpcmUgY29tcG91bmQKKyAgICAgICAgLy8gb3BlcmF0aW9uLiAgV2Ugb3ZlcndyaXRlIGluZGV4LmxpbWl0IHdpdGggdGhlIHByZXZpb3VzCisgICAgICAgIC8vIGluZGV4LnN0YXJ0LiAgQWZ0ZXIgZWFjaCB0cmFuc2xpdGVyYXRpb24sIHdlIHVwZGF0ZQorICAgICAgICAvLyBjb21wb3VuZExpbWl0IGZvciBpbnNlcnRpb25zIG9yIGRlbGV0aW9ucyB0aGF0IGhhdmUgaGFwcGVuZWQuCisgICAgICAgIGludCBjb21wb3VuZExpbWl0ID0gaW5kZXgubGltaXQ7CisKKyAgICAgICAgLy8gY29tcG91bmRTdGFydCBpcyB0aGUgc3RhcnQgZm9yIHRoZSBlbnRpcmUgY29tcG91bmQKKyAgICAgICAgLy8gb3BlcmF0aW9uLgorICAgICAgICBpbnQgY29tcG91bmRTdGFydCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgIGludCBkZWx0YSA9IDA7IC8vIGRlbHRhIGluIGxlbmd0aAorCisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBudWxsOworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3J7IiArIGdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jcmVtZW50YWwgPyAifWk6IElOPSIgOiAifTogSU49IikpOworICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEdpdmUgZWFjaCB0cmFuc2xpdGVyYXRvciBhIGNyYWNrIGF0IHRoZSBydW4gb2YgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGF0IHRoZSB0b3Agb2YgdGhlIG1ldGhvZCBmb3IgbW9yZSBkZXRhaWwuCisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW5kZXguc3RhcnQgPSBjb21wb3VuZFN0YXJ0OyAvLyBSZXNldCBzdGFydAorICAgICAgICAgICAgaW50IGxpbWl0ID0gaW5kZXgubGltaXQ7CisKKyAgICAgICAgICAgIGlmIChpbmRleC5zdGFydCA9PSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgIC8vIFNob3J0IGNpcmN1aXQgZm9yIGVtcHR5IHJhbmdlCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29tcG91bmRUcmFuc2xpdGVyYXRvclsiICsgaSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLi4iICsgKHRyYW5zLmxlbmd0aC0xKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jcmVtZW50YWwgPyAiXWk6ICIgOiAiXTogIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgaW5kZXgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKE5PVEhJTkcgVE8gRE8pIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3JbIiArIGkgKyAiPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNbaV0uZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jcmVtZW50YWwgPyAiXWk6ICIgOiAiXTogIikpOworICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cmFuc1tpXS5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGluY3JlbWVudGFsKTsKKworICAgICAgICAgICAgLy8gSW4gYSBwcm9wZXJseSB3cml0dGVuIHRyYW5zbGl0ZXJhdG9yLCBzdGFydCA9PSBsaW1pdCBhZnRlcgorICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIHJldHVybnMgd2hlbiBpbmNyZW1lbnRhbCBpcyBmYWxzZS4KKyAgICAgICAgICAgIC8vIENhdGNoIGNhc2VzIHdoZXJlIHRoZSBzdWJjbGFzcyBkb2Vzbid0IGRvIHRoaXMsIGFuZCB0aHJvdworICAgICAgICAgICAgLy8gYW4gZXhjZXB0aW9uLiAgKEp1c3QgcGlubmluZyBzdGFydCB0byBsaW1pdCBpcyBhIGJhZCBpZGVhLAorICAgICAgICAgICAgLy8gYmVjYXVzZSB3aGF0J3MgcHJvYmFibHkgaGFwcGVuaW5nIGlzIHRoYXQgdGhlIHN1YmNsYXNzCisgICAgICAgICAgICAvLyBpc24ndCB0cmFuc2xpdGVyYXRpbmcgYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCwgYW5kIGl0IHNob3VsZAorICAgICAgICAgICAgLy8gaW4gbm9uLWluY3JlbWVudGFsIG1vZGUuKQorICAgICAgICAgICAgaWYgKCFpbmNyZW1lbnRhbCAmJiBpbmRleC5zdGFydCAhPSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJFUlJPUjogSW5jb21wbGV0ZSBub24taW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uIGJ5ICIgKyB0cmFuc1tpXS5nZXRJRCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpOworICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBDdW11bGF0aXZlIGRlbHRhIGZvciBpbnNlcnRpb25zL2RlbGV0aW9ucworICAgICAgICAgICAgZGVsdGEgKz0gaW5kZXgubGltaXQgLSBsaW1pdDsKKworICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGluY3JlbWVudGFsIGNhc2UsIG9ubHkgYWxsb3cgc3Vic2VxdWVudAorICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdG9ycyB0byBtb2RpZnkgd2hhdCBoYXMgYWxyZWFkeSBiZWVuCisgICAgICAgICAgICAgICAgLy8gY29tcGxldGVseSBwcm9jZXNzZWQgYnkgcHJpb3IgdHJhbnNsaXRlcmF0b3JzLiAgSW4gdGhlCisgICAgICAgICAgICAgICAgLy8gbm9uLWluY3JtZW50YWwgY2FzZSwgYWxsb3cgZWFjaCB0cmFuc2xpdGVyYXRvciB0bworICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIGVudGlyZSB0ZXh0LgorICAgICAgICAgICAgICAgIGluZGV4LmxpbWl0ID0gaW5kZXguc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb21wb3VuZExpbWl0ICs9IGRlbHRhOworCisgICAgICAgIC8vIFN0YXJ0IGlzIGdvb2Qgd2hlcmUgaXQgaXMgLS0gd2hlcmUgdGhlIGxhc3QgdHJhbnNsaXRlcmF0b3IgbGVmdAorICAgICAgICAvLyBpdC4gIExpbWl0IG5lZWRzIHRvIGJlIHB1dCBiYWNrIHdoZXJlIGl0IHdhcywgbW9kdWxvCisgICAgICAgIC8vIGFkanVzdG1lbnRzIGZvciBkZWxldGlvbnMvaW5zZXJ0aW9ucy4KKyAgICAgICAgaW5kZXgubGltaXQgPSBjb21wb3VuZExpbWl0OworCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3J7IiArIGdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAoaW5jcmVtZW50YWwgPyAifWk6IE9VVD0iIDogIn06IE9VVD0iKSk7CisgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhbmQgc2V0IHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgY29udGV4dCByZXF1aXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIFRoaXMgaXMgPGVtPnByZWNlZGluZzwvZW0+IGNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXB1dGVNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgaW50IG1heCA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IGxlbiA9IHRyYW5zW2ldLmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobGVuID4gbWF4KSB7CisgICAgICAgICAgICAgICAgbWF4ID0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKG1heCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ3VycmVuY3lGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0N1cnJlbmN5Rm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk0MWRmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0N1cnJlbmN5Rm9ybWF0LmphdmEKQEAgLTAsMCArMSw2MyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMjAsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3lBbW91bnQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlbXBvcmFyeSBpbnRlcm5hbCBjb25jcmV0ZSBzdWJjbGFzcyBvZiBNZWFzdXJlRm9ybWF0IGltcGxlbWVudGluZworICogcGFyc2luZyBhbmQgZm9ybWF0dGluZyBvZiBDdXJyZW5jeUFtb3VudCBvYmplY3RzLiAgVGhpcyBjbGFzcyBpcworICogbGlrZWx5IHRvIGJlIHJlZGVzaWduZWQgYW5kIHJld3JpdHRlbiBpbiB0aGUgbmVhciBmdXR1cmUuCisgKgorICogPHA+VGhpcyBjbGFzcyBjdXJyZW50bHkgZGVsZWdhdGVzIHRvIERlY2ltYWxGb3JtYXQgZm9yIHBhcnNpbmcgYW5kCisgKiBmb3JtYXR0aW5nLgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0CisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKi8KK2NsYXNzIEN1cnJlbmN5Rm9ybWF0IGV4dGVuZHMgTWVhc3VyZUZvcm1hdCB7CisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtOTMxNjc5MzYzNjkyNTA0NjM0TDsKKyAgICAKKyAgICBwcml2YXRlIE51bWJlckZvcm1hdCBmbXQ7CisKKyAgICBwdWJsaWMgQ3VycmVuY3lGb3JtYXQoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIEZvcm1hdC5mb3JtYXQoKS4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uKQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBvYmosIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQgY3VycmVuY3kgPSAoQ3VycmVuY3lBbW91bnQpIG9iajsKKyAgICAgICAgICAgIGZtdC5zZXRDdXJyZW5jeShjdXJyZW5jeS5nZXRDdXJyZW5jeSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmbXQuZm9ybWF0KGN1cnJlbmN5LmdldE51bWJlcigpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCB0eXBlOiAiICsgb2JqLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIEZvcm1hdC5wYXJzZU9iamVjdCgpLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNwYXJzZU9iamVjdChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbikKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmbXQucGFyc2VDdXJyZW5jeShzb3VyY2UsIHBvcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2MWEwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwxMTY2IEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0OworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBEYXRlRm9ybWF0IGlzIGFuIGFic3RyYWN0IGNsYXNzIGZvciBkYXRlL3RpbWUgZm9ybWF0dGluZyBzdWJjbGFzc2VzIHdoaWNoCisgKiBmb3JtYXRzIGFuZCBwYXJzZXMgZGF0ZXMgb3IgdGltZSBpbiBhIGxhbmd1YWdlLWluZGVwZW5kZW50IG1hbm5lci4KKyAqIFRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBzdWJjbGFzcywgc3VjaCBhcyBTaW1wbGVEYXRlRm9ybWF0LCBhbGxvd3MgZm9yCisgKiBmb3JtYXR0aW5nIChpLmUuLCBkYXRlIC0+IHRleHQpLCBwYXJzaW5nICh0ZXh0IC0+IGRhdGUpLCBhbmQKKyAqIG5vcm1hbGl6YXRpb24uICBUaGUgZGF0ZSBpcyByZXByZXNlbnRlZCBhcyBhIDxjb2RlPkRhdGU8L2NvZGU+IG9iamVjdCBvcgorICogYXMgdGhlIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAsIDAwOjAwOjAwIEdNVC4KKyAqCisgKiA8cD5EYXRlRm9ybWF0IHByb3ZpZGVzIG1hbnkgY2xhc3MgbWV0aG9kcyBmb3Igb2J0YWluaW5nIGRlZmF1bHQgZGF0ZS90aW1lCisgKiBmb3JtYXR0ZXJzIGJhc2VkIG9uIHRoZSBkZWZhdWx0IG9yIGEgZ2l2ZW4gbG9hY2xlIGFuZCBhIG51bWJlciBvZiBmb3JtYXR0aW5nCisgKiBzdHlsZXMuIFRoZSBmb3JtYXR0aW5nIHN0eWxlcyBpbmNsdWRlIEZVTEwsIExPTkcsIE1FRElVTSwgYW5kIFNIT1JULiBNb3JlCisgKiBkZXRhaWwgYW5kIGV4YW1wbGVzIG9mIHVzaW5nIHRoZXNlIHN0eWxlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIG1ldGhvZAorICogZGVzY3JpcHRpb25zLgorICoKKyAqIDxwPkRhdGVGb3JtYXQgaGVscHMgeW91IHRvIGZvcm1hdCBhbmQgcGFyc2UgZGF0ZXMgZm9yIGFueSBsb2NhbGUuCisgKiBZb3VyIGNvZGUgY2FuIGJlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZSBjb252ZW50aW9ucyBmb3IKKyAqIG1vbnRocywgZGF5cyBvZiB0aGUgd2Vlaywgb3IgZXZlbiB0aGUgY2FsZW5kYXIgZm9ybWF0OiBsdW5hciB2cy4gc29sYXIuCisgKgorICogPHA+VG8gZm9ybWF0IGEgZGF0ZSBmb3IgdGhlIGN1cnJlbnQgTG9jYWxlLCB1c2Ugb25lIG9mIHRoZQorICogc3RhdGljIGZhY3RvcnkgbWV0aG9kczoKKyAqIDxwcmU+CisgKiAgbXlTdHJpbmcgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmZvcm1hdChteURhdGUpOworICogPC9wcmU+CisgKiA8cD5JZiB5b3UgYXJlIGZvcm1hdHRpbmcgbXVsdGlwbGUgbnVtYmVycywgaXQgaXMKKyAqIG1vcmUgZWZmaWNpZW50IHRvIGdldCB0aGUgZm9ybWF0IGFuZCB1c2UgaXQgbXVsdGlwbGUgdGltZXMgc28gdGhhdAorICogdGhlIHN5c3RlbSBkb2Vzbid0IGhhdmUgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICogbGFuZ3VhZ2UgYW5kIGNvdW50cnkgY29udmVudGlvbnMgbXVsdGlwbGUgdGltZXMuCisgKiA8cHJlPgorICogIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICogIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICogICAgb3V0cHV0LnByaW50bG4oZGYuZm9ybWF0KG15RGF0ZVtpXSkgKyAiOyAiKTsKKyAqICB9CisgKiA8L3ByZT4KKyAqIDxwPlRvIGZvcm1hdCBhIG51bWJlciBmb3IgYSBkaWZmZXJlbnQgTG9jYWxlLCBzcGVjaWZ5IGl0IGluIHRoZQorICogY2FsbCB0byBnZXREYXRlSW5zdGFuY2UoKS4KKyAqIDxwcmU+CisgKiAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLkZSQU5DRSk7CisgKiA8L3ByZT4KKyAqIDxwPllvdSBjYW4gdXNlIGEgRGF0ZUZvcm1hdCB0byBwYXJzZSBhbHNvLgorICogPHByZT4KKyAqICBteURhdGUgPSBkZi5wYXJzZShteVN0cmluZyk7CisgKiA8L3ByZT4KKyAqIDxwPlVzZSBnZXREYXRlSW5zdGFuY2UgdG8gZ2V0IHRoZSBub3JtYWwgZGF0ZSBmb3JtYXQgZm9yIHRoYXQgY291bnRyeS4KKyAqIFRoZXJlIGFyZSBvdGhlciBzdGF0aWMgZmFjdG9yeSBtZXRob2RzIGF2YWlsYWJsZS4KKyAqIFVzZSBnZXRUaW1lSW5zdGFuY2UgdG8gZ2V0IHRoZSB0aW1lIGZvcm1hdCBmb3IgdGhhdCBjb3VudHJ5LgorICogVXNlIGdldERhdGVUaW1lSW5zdGFuY2UgdG8gZ2V0IGEgZGF0ZSBhbmQgdGltZSBmb3JtYXQuIFlvdSBjYW4gcGFzcyBpbiAKKyAqIGRpZmZlcmVudCBvcHRpb25zIHRvIHRoZXNlIGZhY3RvcnkgbWV0aG9kcyB0byBjb250cm9sIHRoZSBsZW5ndGggb2YgdGhlCisgKiByZXN1bHQ7IGZyb20gU0hPUlQgdG8gTUVESVVNIHRvIExPTkcgdG8gRlVMTC4gVGhlIGV4YWN0IHJlc3VsdCBkZXBlbmRzCisgKiBvbiB0aGUgbG9jYWxlLCBidXQgZ2VuZXJhbGx5OgorICogPHVsPjxsaT5TSE9SVCBpcyBjb21wbGV0ZWx5IG51bWVyaWMsIHN1Y2ggYXMgMTIuMTMuNTIgb3IgMzozMHBtCisgKiA8bGk+TUVESVVNIGlzIGxvbmdlciwgc3VjaCBhcyBKYW4gMTIsIDE5NTIKKyAqIDxsaT5MT05HIGlzIGxvbmdlciwgc3VjaCBhcyBKYW51YXJ5IDEyLCAxOTUyIG9yIDM6MzA6MzJwbQorICogPGxpPkZVTEwgaXMgcHJldHR5IGNvbXBsZXRlbHkgc3BlY2lmaWVkLCBzdWNoIGFzCisgKiBUdWVzZGF5LCBBcHJpbCAxMiwgMTk1MiBBRCBvciAzOjMwOjQycG0gUFNULgorICogPC91bD4KKyAqCisgKiA8cD5Zb3UgY2FuIGFsc28gc2V0IHRoZSB0aW1lIHpvbmUgb24gdGhlIGZvcm1hdCBpZiB5b3Ugd2lzaC4KKyAqIElmIHlvdSB3YW50IGV2ZW4gbW9yZSBjb250cm9sIG92ZXIgdGhlIGZvcm1hdCBvciBwYXJzaW5nLAorICogKG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIG1vcmUgY29udHJvbCksCisgKiB5b3UgY2FuIHRyeSBjYXN0aW5nIHRoZSBEYXRlRm9ybWF0IHlvdSBnZXQgZnJvbSB0aGUgZmFjdG9yeSBtZXRob2RzCisgKiB0byBhIFNpbXBsZURhdGVGb3JtYXQuIFRoaXMgd2lsbCB3b3JrIGZvciB0aGUgbWFqb3JpdHkKKyAqIG9mIGNvdW50cmllczsganVzdCByZW1lbWJlciB0byBwdXQgaXQgaW4gYSB0cnkgYmxvY2sgaW4gY2FzZSB5b3UKKyAqIGVuY291bnRlciBhbiB1bnVzdWFsIG9uZS4KKyAqCisgKiA8cD5Zb3UgY2FuIGFsc28gdXNlIGZvcm1zIG9mIHRoZSBwYXJzZSBhbmQgZm9ybWF0IG1ldGhvZHMgd2l0aAorICogUGFyc2VQb3NpdGlvbiBhbmQgRmllbGRQb3NpdGlvbiB0bworICogYWxsb3cgeW91IHRvCisgKiA8dWw+PGxpPnByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcuCisgKiA8bGk+YWxpZ24gYW55IHBhcnRpY3VsYXIgZmllbGQsIG9yIGZpbmQgb3V0IHdoZXJlIGl0IGlzIGZvciBzZWxlY3Rpb24KKyAqIG9uIHRoZSBzY3JlZW4uCisgKiA8L3VsPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIERhdGUgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIHNlcGFyYXRlIAorICogZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LiAKKyAqCisgKiBAc2VlICAgICAgICAgIFVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBEYXRlRm9ybWF0IGV4dGVuZHMgVUZvcm1hdCB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsZW5kYXIgdGhhdCA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiB1c2VzIHRvIHByb2R1Y2UgdGhlIHRpbWUgZmllbGQKKyAgICAgKiB2YWx1ZXMgbmVlZGVkIHRvIGltcGxlbWVudCBkYXRlIGFuZCB0aW1lIGZvcm1hdHRpbmcuICBTdWJjbGFzc2VzIHNob3VsZAorICAgICAqIGluaXRpYWxpemUgdGhpcyB0byBhIGNhbGVuZGFyIGFwcHJvcHJpYXRlIGZvciB0aGUgbG9jYWxlIGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoaXMgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhciBjYWxlbmRhcjsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgZm9ybWF0dGVyIHRoYXQgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gdXNlcyB0byBmb3JtYXQgbnVtYmVycworICAgICAqIGluIGRhdGVzIGFuZCB0aW1lcy4gIFN1YmNsYXNzZXMgc2hvdWxkIGluaXRpYWxpemUgdGhpcyB0byBhIG51bWJlciBmb3JtYXQKKyAgICAgKiBhcHByb3ByaWF0ZSBmb3IgdGhlIGxvY2FsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIE51bWJlckZvcm1hdCBudW1iZXJGb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNFUkF9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQV9GSUVMRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAneScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSX0ZJRUxEID0gMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdNJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01PTlRIfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USF9GSUVMRCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnZCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVRFfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVRFX0ZJRUxEID0gMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdrJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJfT0ZfREFZfSBmaWVsZC4KKyAgICAgKiBIT1VSX09GX0RBWTFfRklFTEQgaXMgdXNlZCBmb3IgdGhlIG9uZS1iYXNlZCAyNC1ob3VyIGNsb2NrLgorICAgICAqIEZvciBleGFtcGxlLCAyMzo1OSArIDAxOjAwIHJlc3VsdHMgaW4gMjQ6NTkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkxX0ZJRUxEID0gNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdIJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJfT0ZfREFZfSBmaWVsZC4KKyAgICAgKiBIT1VSX09GX0RBWTBfRklFTEQgaXMgdXNlZCBmb3IgdGhlIHplcm8tYmFzZWQgMjQtaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMjM6NTkgKyAwMTowMCByZXN1bHRzIGluIDAwOjU5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZMF9GSUVMRCA9IDU7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnbScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNSU5VVEV9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURV9GSUVMRCA9IDY7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAncycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNTRUNPTkR9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORF9GSUVMRCA9IDc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnUycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNSUxMSVNFQ09ORH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQgPSA4OworCisgICAgLyoqCisgICAgICogQWxpYXMgZm9yIEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxELgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjAgdXNlIEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxELgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EX0ZJRUxEID0gRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS30gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfRklFTEQgPSA5OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0QnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9ZRUFSX0ZJRUxEID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRicgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS19JTl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQgPSAxMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd3JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1dFRUtfT0ZfWUVBUn0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSX0ZJRUxEID0gMTI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnVycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX01PTlRIfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIX0ZJRUxEID0gMTM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnYScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNBTV9QTX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE1fRklFTEQgPSAxNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdoJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIxX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSBvbmUtYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAxMjozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMV9GSUVMRCA9IDE1OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUn0gZmllbGQuCisgICAgICogSE9VUjBfRklFTEQgaXMgdXNlZCBmb3IgdGhlIHplcm8tYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAwMDozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMF9GSUVMRCA9IDE2OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3onIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWk9ORV9PRkZTRVR9IGFuZAorICAgICAqIHtAbGluayBDYWxlbmRhciNEU1RfT0ZGU0VUfSBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfRklFTEQgPSAxNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdZJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1lFQVJfV09ZfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSX1dPWV9GSUVMRCA9IDE4OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjRE9XX0xPQ0FMfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1dfTE9DQUxfRklFTEQgPSAxOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd1JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0VYVEVOREVEX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVYVEVOREVEX1lFQVJfRklFTEQgPSAyMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdnJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0pVTElBTl9EQVl9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpVTElBTl9EQVlfRklFTEQgPSAyMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdBJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTExJU0VDT05EU19JTl9EQVl9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EU19JTl9EQVlfRklFTEQgPSAyMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdaJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRJTUVaT05FX1JGQ19GSUVMRCA9IDIzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3YnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWk9ORV9PRkZTRVR9IGFuZAorICAgICAqIHtAbGluayBDYWxlbmRhciNEU1RfT0ZGU0VUfSBmaWVsZHMuICBUaGlzIGRpc3BsYXlzIHRoZSBnZW5lcmljIHpvbmUKKyAgICAgKiBuYW1lLCBpZiBhdmFpbGFibGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUSU1FWk9ORV9HRU5FUklDX0ZJRUxEID0gMjQ7CisgCisKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnYycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS30gZmllbGQuIAorICAgICAqIFRoaXMgZGlzcGxheXMgdGhlIHN0YW5kIGFsb25lIGRheSBuYW1lLCBpZiBhdmFpbGFibGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVEFOREFMT05FX0RBWV9GSUVMRCA9IDI1OworICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdMJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01PTlRIfSBmaWVsZC4gIAorICAgICAqIFRoaXMgZGlzcGxheXMgdGhlIHN0YW5kIGFsb25lIG1vbnRoIG5hbWUsIGlmIGF2YWlsYWJsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNUQU5EQUxPTkVfTU9OVEhfRklFTEQgPSAyNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnUScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNT05USH0gZmllbGQuICAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBxdWFydGVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUVVBUlRFUl9GSUVMRCA9IDI3OworICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdxJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01PTlRIfSBmaWVsZC4gIAorICAgICAqIFRoaXMgZGlzcGxheXMgdGhlIHN0YW5kIGFsb25lIHF1YXJ0ZXIsIGlmIGF2YWlsYWJsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNUQU5EQUxPTkVfUVVBUlRFUl9GSUVMRCA9IDI4OworICAgIAorICAgIC8qKgorICAgICAqIE51bWJlciBvZiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9ycyBmb3IgRGF0ZUZvcm1hdC4KKyAgICAgKiBWYWxpZCBzZWxlY3RvcnMgcmFuZ2UgZnJvbSAwIHRvIEZJRUxEX0NPVU5ULTEuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRklFTERfQ09VTlQgPSAyOTsgLy8gbXVzdCA9PSBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMubGVuZ3RoKCkKKworICAgIC8vIFByb2NsYWltIHNlcmlhbCBjb21wYXRpYmlsaXR5IHdpdGggMS4xIEZDUworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDcyMTgzMjIzMDY2NDk5NTM3ODhMOworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIEZvcm1hdC4KKyAgICAgKiBGb3JtYXRzIGEgdGltZSBvYmplY3QgaW50byBhIHRpbWUgc3RyaW5nLiBFeGFtcGxlcyBvZiB0aW1lIG9iamVjdHMKKyAgICAgKiBhcmUgYSB0aW1lIHZhbHVlIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgYW5kIGEgRGF0ZSBvYmplY3QuCisgICAgICogQHBhcmFtIG9iaiBtdXN0IGJlIGEgTnVtYmVyIG9yIGEgRGF0ZSBvciBhIENhbGVuZGFyLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIHRpbWUgc3RyaW5nLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCB0aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZmllbGRQb3NpdGlvbiBrZWVwcyB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkCisgICAgICogd2l0aGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICogT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuIEZvcgorICAgICAqIGV4YW1wbGUsIGdpdmVuIGEgdGltZSB0ZXh0ICIxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVCIsCisgICAgICogaWYgdGhlIGdpdmVuIGZpZWxkUG9zaXRpb24gaXMgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCB0aGUKKyAgICAgKiBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiAwIGFuZCA0LCByZXNwZWN0aXZlbHkuCisgICAgICogTm90aWNlIHRoYXQgaWYgdGhlIHNhbWUgdGltZSBmaWVsZCBhcHBlYXJzCisgICAgICogbW9yZSB0aGFuIG9uY2UgaW4gYSBwYXR0ZXJuLCB0aGUgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCBmb3IgdGhlIGZpcnN0CisgICAgICogb2NjdXJlbmNlIG9mIHRoYXQgdGltZSBmaWVsZC4gRm9yIGluc3RhbmNlLCBmb3JtYXR0aW5nIGEgRGF0ZSB0bworICAgICAqIHRoZSB0aW1lIHN0cmluZyAiMSBQTSBQRFQgKFBhY2lmaWMgRGF5bGlnaHQgVGltZSkiIHVzaW5nIHRoZSBwYXR0ZXJuCisgICAgICogImggYSB6ICh6enp6KSIgYW5kIHRoZSBhbGlnbm1lbnQgZmllbGQgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgKiB0aGUgYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogNSBhbmQgOCwgcmVzcGVjdGl2ZWx5LCBmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGUgdGltZXpvbmUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlciAneicuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZ0J1ZmZlciBmb3JtYXQoT2JqZWN0IG9iaiwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIENhbGVuZGFyKQorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCggKENhbGVuZGFyKW9iaiwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKQorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCggKERhdGUpb2JqLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uICk7CisgICAgICAgIGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIE51bWJlcikKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIG5ldyBEYXRlKCgoTnVtYmVyKW9iaikubG9uZ1ZhbHVlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uICk7CisgICAgICAgIGVsc2UgCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW5ub3QgZm9ybWF0IGdpdmVuIE9iamVjdCBhcyBhIERhdGUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgZGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gY2FsIGEgQ2FsZW5kYXIgc2V0IHRvIHRoZSBkYXRlIGFuZCB0aW1lIHRvIGJlIGZvcm1hdHRlZAorICAgICAqIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBEYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBkYXRlIGEgRGF0ZSB0byBiZSBmb3JtYXR0ZWQgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gdGhlIHN0cmluZyBidWZmZXIgZm9yIHRoZSByZXR1cm5pbmcgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZmllbGRQb3NpdGlvbiBrZWVwcyB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkCisgICAgICogd2l0aGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICogT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuIEZvcgorICAgICAqIGV4YW1wbGUsIGdpdmVuIGEgdGltZSB0ZXh0ICIxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVCIsCisgICAgICogaWYgdGhlIGdpdmVuIGZpZWxkUG9zaXRpb24gaXMgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCB0aGUKKyAgICAgKiBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiAwIGFuZCA0LCByZXNwZWN0aXZlbHkuCisgICAgICogTm90aWNlIHRoYXQgaWYgdGhlIHNhbWUgdGltZSBmaWVsZCBhcHBlYXJzCisgICAgICogbW9yZSB0aGFuIG9uY2UgaW4gYSBwYXR0ZXJuLCB0aGUgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCBmb3IgdGhlIGZpcnN0CisgICAgICogb2NjdXJlbmNlIG9mIHRoYXQgdGltZSBmaWVsZC4gRm9yIGluc3RhbmNlLCBmb3JtYXR0aW5nIGEgRGF0ZSB0bworICAgICAqIHRoZSB0aW1lIHN0cmluZyAiMSBQTSBQRFQgKFBhY2lmaWMgRGF5bGlnaHQgVGltZSkiIHVzaW5nIHRoZSBwYXR0ZXJuCisgICAgICogImggYSB6ICh6enp6KSIgYW5kIHRoZSBhbGlnbm1lbnQgZmllbGQgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgKiB0aGUgYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogNSBhbmQgOCwgcmVzcGVjdGl2ZWx5LCBmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGUgdGltZXpvbmUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlciAneicuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoRGF0ZSBkYXRlLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgLy8gVXNlIG91ciBDYWxlbmRhciBvYmplY3QKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChjYWxlbmRhciwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIERhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHRpbWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCBuZXcgU3RyaW5nQnVmZmVyKDY0KSxuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgQSBEYXRlLCBvciBudWxsIGlmIHRoZSBpbnB1dCBjb3VsZCBub3QgYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICBQYXJzZUV4Y2VwdGlvbiAgSWYgdGhlIGdpdmVuIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIHJlc3VsdCA9IHBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA9PSAwKSAvLyBJQ1U0SgorICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbnBhcnNlYWJsZSBkYXRlOiBcIiIgKyB0ZXh0ICsgIlwiIiAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmdldEVycm9ySW5kZXgoKSk7IC8vIElDVTRKCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcGFyc2UgcG9zaXRpb24uCisgICAgICogRm9yIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQKKyAgICAgKiBpbnRvIGEgQ2FsZW5kYXIgdGhhdCBpcyBlcXVpdmFsZW50IHRvIERhdGUoODM3MDM5OTI4MDQ2KS4gIFRoZQorICAgICAqIGNhbGxlciBzaG91bGQgY2xlYXIgdGhlIGNhbGVuZGFyIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLAorICAgICAqIHVubGVzcyBleGlzdGluZyBmaWVsZCBpbmZvcm1hdGlvbiBpcyB0byBiZSBrZXB0LgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBpbnRvIHdoaWNoIHBhcnNlZCBkYXRhIHdpbGwgYmUgc3RvcmVkLgorICAgICAqICAgICAgICAgICAgICBJbiBnZW5lcmFsLCB0aGlzIHNob3VsZCBiZSBjbGVhcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgbWV0aG9kLiAgSWYgdGhpcyBwYXJzZSBmYWlscywgdGhlIGNhbGVuZGFyIG1heSBzdGlsbAorICAgICAqICAgICAgICAgICAgICBoYXZlIGJlZW4gbW9kaWZpZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLiAgRm9yCisgICAgICogZXhhbXBsZSwgYSB0aW1lIHRleHQgIjA3LzEwLzk2IDQ6NSBQTSwgUERUIiB3aWxsIGJlIHBhcnNlZCBpbnRvIGEgRGF0ZQorICAgICAqIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuCisgICAgICoKKyAgICAgKiA8cD4gQnkgZGVmYXVsdCwgcGFyc2luZyBpcyBsZW5pZW50OiBJZiB0aGUgaW5wdXQgaXMgbm90IGluIHRoZSBmb3JtIHVzZWQKKyAgICAgKiBieSB0aGlzIG9iamVjdCdzIGZvcm1hdCBtZXRob2QgYnV0IGNhbiBzdGlsbCBiZSBwYXJzZWQgYXMgYSBkYXRlLCB0aGVuCisgICAgICogdGhlIHBhcnNlIHN1Y2NlZWRzLiAgQ2xpZW50cyBtYXkgaW5zaXN0IG9uIHN0cmljdCBhZGhlcmVuY2UgdG8gdGhlCisgICAgICogZm9ybWF0IGJ5IGNhbGxpbmcgc2V0TGVuaWVudChmYWxzZSkuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRMZW5pZW50KGJvb2xlYW4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2FsZW5kYXIuY2xlYXIoKTsKKyAgICAgICAgcGFyc2UodGV4dCwgY2FsZW5kYXIsIHBvcyk7CisgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBzdGFydCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIG9jY3VycyBpZiB0aGUgY2FsZW5kYXIgaXMgbm9uLWxlbmllbnQgYW5kIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgLy8gYW4gb3V0LW9mLXJhbmdlIGZpZWxkLiAgV2UgZG9uJ3Qga25vdyB3aGljaCBmaWVsZCB3YXMKKyAgICAgICAgICAgICAgICAvLyBpbGxlZ2FsIHNvIHdlIHNldCB0aGUgZXJyb3IgaW5kZXggdG8gdGhlIHN0YXJ0LgorICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBpbnRvIGFuIE9iamVjdC4gIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHNpbXBseQorICAgICAqIGNhbGxzIHBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwYXJzZU9iamVjdCAoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBmdWxsIHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgbG9uZyBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkcgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIG1lZGl1bSBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FRElVTSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igc2hvcnQgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZGVmYXVsdCBzdHlsZSBwYXR0ZXJuLiAgSXRzIHZhbHVlIGlzIE1FRElVTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUID0gTUVESVVNOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KC0xLCBERUZBVUxULCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShpbnQgc3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KC0xLCBzdHlsZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KERFRkFVTFQsIC0xLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KHN0eWxlLCAtMSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChzdHlsZSwgLTEsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChzdHlsZSwgLTEsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoREVGQVVMVCwgREVGQVVMVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZQorICAgICAqIGZvcm1hdHRpbmcgc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSB0aGUgZ2l2ZW4gZGF0ZSBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGVzCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSB0aGUgZ2l2ZW4gZGF0ZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdAorICAgICAgICBnZXREYXRlVGltZUluc3RhbmNlKGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUoYUxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZXMKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQKKyAgICAgICAgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgZGVmYXVsdCBkYXRlL3RpbWUgZm9ybWF0dGVyIHRoYXQgdXNlcyB0aGUgU0hPUlQgc3R5bGUgZm9yIGJvdGggdGhlCisgICAgICogZGF0ZSBhbmQgdGhlIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShTSE9SVCwgU0hPUlQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNhbGVuZGFyIHRvIGJlIHVzZWQgYnkgdGhpcyBkYXRlIGZvcm1hdC4gIEluaXRpYWxseSwgdGhlIGRlZmF1bHQKKyAgICAgKiBjYWxlbmRhciBmb3IgdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IGxvY2FsZSBpcyB1c2VkLgorICAgICAqIEBwYXJhbSBuZXdDYWxlbmRhciB0aGUgbmV3IENhbGVuZGFyIHRvIGJlIHVzZWQgYnkgdGhlIGRhdGUgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXIoQ2FsZW5kYXIgbmV3Q2FsZW5kYXIpCisgICAgeworICAgICAgICB0aGlzLmNhbGVuZGFyID0gbmV3Q2FsZW5kYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2FsZW5kYXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBjYWxlbmRhciBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhciBnZXRDYWxlbmRhcigpCisgICAgeworICAgICAgICByZXR1cm4gY2FsZW5kYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIG51bWJlciBmb3JtYXR0ZXIuCisgICAgICogQHBhcmFtIG5ld051bWJlckZvcm1hdCB0aGUgZ2l2ZW4gbmV3IE51bWJlckZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0IG5ld051bWJlckZvcm1hdCkKKyAgICB7CisgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0ID0gbmV3TnVtYmVyRm9ybWF0OworICAgICAgICAvKkluIG9yZGVyIHRvIHBhcnNlIFN0cmluZyBsaWtlICIxMS4xMC4yMDAxIiB0byBEYXRlVGltZSBjb3JyZWN0bHkgCisgICAgICAgICAgaW4gTG9jYWxlKCJmciIsIkNIIikgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBmb3JtYXR0ZXIgd2hpY2ggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyIHVzZXMgdG8KKyAgICAgKiBmb3JtYXQgYW5kIHBhcnNlIGEgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVyRm9ybWF0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIGZvciB0aGUgY2FsZW5kYXIgb2YgdGhpcyBEYXRlRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gbmV3IHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lWm9uZShUaW1lWm9uZSB6b25lKQorICAgIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZVpvbmUoem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWUgem9uZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNhbGVuZGFyIG9mIERhdGVGb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFRpbWVab25lIGdldFRpbWVab25lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRUaW1lWm9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgd2hldGhlciBvciBub3QgZGF0ZS90aW1lIHBhcnNpbmcgaXMgdG8gYmUgbGVuaWVudC4gIFdpdGgKKyAgICAgKiBsZW5pZW50IHBhcnNpbmcsIHRoZSBwYXJzZXIgbWF5IHVzZSBoZXVyaXN0aWNzIHRvIGludGVycHJldCBpbnB1dHMgdGhhdAorICAgICAqIGRvIG5vdCBwcmVjaXNlbHkgbWF0Y2ggdGhpcyBvYmplY3QncyBmb3JtYXQuICBXaXRoIHN0cmljdCBwYXJzaW5nLAorICAgICAqIGlucHV0cyBtdXN0IG1hdGNoIHRoaXMgb2JqZWN0J3MgZm9ybWF0LgorICAgICAqIEBwYXJhbSBsZW5pZW50IHdoZW4gdHJ1ZSwgcGFyc2luZyBpcyBsZW5pZW50CisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI3NldExlbmllbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMZW5pZW50KGJvb2xlYW4gbGVuaWVudCkKKyAgICB7CisgICAgICAgIGNhbGVuZGFyLnNldExlbmllbnQobGVuaWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVsbCB3aGV0aGVyIGRhdGUvdGltZSBwYXJzaW5nIGlzIHRvIGJlIGxlbmllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMZW5pZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5pc0xlbmllbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLy8gdHVybiBvZmYgY29kZSBjb3ZlcmFnZSBzaW5jZSBhbGwgc3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5oYXNoQ29kZSgpOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgRGF0ZUZvcm1hdCBvdGhlciA9IChEYXRlRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiAoY2FsZW5kYXIuaXNFcXVpdmFsZW50VG8ob3RoZXIuY2FsZW5kYXIpICYmCisgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LmVxdWFscyhvdGhlci5udW1iZXJGb3JtYXQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICBEYXRlRm9ybWF0IG90aGVyID0gKERhdGVGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisgICAgICAgIG90aGVyLmNhbGVuZGFyID0gKENhbGVuZGFyKSBjYWxlbmRhci5jbG9uZSgpOworICAgICAgICBvdGhlci5udW1iZXJGb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBudW1iZXJGb3JtYXQuY2xvbmUoKTsKKyAgICAgICAgcmV0dXJuIG90aGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBEYXRlRm9ybWF0IHdpdGggdGhlIGdpdmVuIHRpbWUgYW5kL29yIGRhdGUgc3R5bGUgaW4gdGhlIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgYSB2YWx1ZSBmcm9tIDAgdG8gMyBpbmRpY2F0aW5nIHRoZSB0aW1lIGZvcm1hdCwKKyAgICAgKiBvciAtMSB0byBpbmRpY2F0ZSBubyBkYXRlCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBhIHZhbHVlIGZyb20gMCB0byAzIGluZGljYXRpbmcgdGhlIHRpbWUgZm9ybWF0LAorICAgICAqIG9yIC0xIHRvIGluZGljYXRlIG5vIHRpbWUKKyAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgZm9yIHRoZSBmb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBEYXRlRm9ybWF0IGdldChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvYykgeworICAgICAgICBpZiAodGltZVN0eWxlIDwgLTEgfHwgdGltZVN0eWxlID4gMykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCB0aW1lIHN0eWxlICIgKyB0aW1lU3R5bGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkYXRlU3R5bGUgPCAtMSB8fCBkYXRlU3R5bGUgPiAzKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGRhdGUgc3R5bGUgIiArIGRhdGVTdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IHJlc3VsdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jKTsKKwkgICAgcmVzdWx0LnNldExvY2FsZShjYWwuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKSwKKwkJCSAgICAgY2FsLmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpKTsKKwkgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIHJlcXVpcmVzIHNlcGFyYXRlIHJ1biB3aXRoIG5vIGRhdGEsIHNvIHNraXAKKyAgICAgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTS9kL3l5IGg6bW0gYSIpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQoKSB7fQorCisgICAgLy9+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgc3RhdGljIGludGVyZmFjZSBmb3IgY3JlYXRpbmcgY3VzdG9uIERhdGVGb3JtYXRzIGZvciBkaWZmZXJlbnQKKyAgICAvLyB0eXBlcyBvZiBDYWxlbmRhcnMuCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgZGF0ZVN0eWxlLCAtMSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgLTEsIGxvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldFRpbWVJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCAtMSwgdGltZVN0eWxlLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0VGltZUluc3RhbmNlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIC0xLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgYW5kIHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXREYXRlVGltZUluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gY2FsLmdldERhdGVUaW1lRm9ybWF0KGRhdGVTdHlsZSwgdGltZVN0eWxlLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGFuZCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0RGF0ZVRpbWVJbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbC5nZXREYXRlVGltZUZvcm1hdChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZShDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBTSE9SVCwgU0hPUlQsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIFNIT1JULCBTSE9SVCwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZShDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGNhbCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFRpbWVJbnN0YW5jZShjYWwsIHRpbWVTdHlsZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNGU1ODRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDE5MTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UZXh0VHJpZU1hcDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Tb2Z0Q2FjaGU7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBpcyBhIHB1YmxpYyBjbGFzcyBmb3IgZW5jYXBzdWxhdGluZworICogbG9jYWxpemFibGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSwgc3VjaCBhcyB0aGUgbmFtZXMgb2YgdGhlCisgKiBtb250aHMsIHRoZSBuYW1lcyBvZiB0aGUgZGF5cyBvZiB0aGUgd2VlaywgYW5kIHRoZSB0aW1lIHpvbmUgZGF0YS4KKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBib3RoIHVzZQorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IHRvIGVuY2Fwc3VsYXRlIHRoaXMgaW5mb3JtYXRpb24uCisgKgorICogPHA+CisgKiBUeXBpY2FsbHkgeW91IHNob3VsZG4ndCB1c2UgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGRpcmVjdGx5LgorICogUmF0aGVyLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIHRoZQorICogPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gY2xhc3MncyBmYWN0b3J5IG1ldGhvZHM6IDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sCisgKiA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvciA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPi4KKyAqIFRoZXNlIG1ldGhvZHMgYXV0b21hdGljYWxseSBjcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yCisgKiB0aGUgZm9ybWF0dGVyIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8uIEFmdGVyIHRoZQorICogZm9ybWF0dGVyIGlzIGNyZWF0ZWQsIHlvdSBtYXkgbW9kaWZ5IGl0cyBmb3JtYXQgcGF0dGVybiB1c2luZyB0aGUKKyAqIDxjb2RlPnNldFBhdHRlcm48L2NvZGU+IG1ldGhvZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGNyZWF0aW5nIGZvcm1hdHRlcnMgdXNpbmcgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMsCisgKiBzZWUge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogSWYgeW91IGRlY2lkZSB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggYSBzcGVjaWZpYworICogZm9ybWF0IHBhdHRlcm4gZm9yIGEgc3BlY2lmaWMgbG9jYWxlLCB5b3UgY2FuIGRvIHNvIHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChhUGF0dGVybiwgbmV3IERhdGVGb3JtYXRTeW1ib2xzKGFMb2NhbGUpKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdHMgYXJlIGNsb25hYmxlLiBXaGVuIHlvdSBvYnRhaW4KKyAqIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCwgZmVlbCBmcmVlIHRvIG1vZGlmeSB0aGUKKyAqIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEuIEZvciBpbnN0YW5jZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsb2NhbGl6ZWQKKyAqIGRhdGUtdGltZSBmb3JtYXQgcGF0dGVybiBjaGFyYWN0ZXJzIHdpdGggdGhlIG9uZXMgdGhhdCB5b3UgZmVlbCBlYXN5CisgKiB0byByZW1lbWJlci4gT3IgeW91IGNhbiBjaGFuZ2UgdGhlIHJlcHJlc2VudGF0aXZlIGNpdGllcworICogdG8geW91ciBmYXZvcml0ZSBvbmVzLgorICoKKyAqIDxwPgorICogTmV3IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBzdWJjbGFzc2VzIG1heSBiZSBhZGRlZCB0byBzdXBwb3J0CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGFkZGl0aW9uYWwgbG9jYWxlcy4KKworICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBDaGVuLUxpZWggSHVhbmcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisKKyAgICAvLyBUT0RPIG1ha2Ugc3VyZSBsb2NhbCBwYXR0ZXJuIGNoYXIgc3RyaW5nIGlzIDE4IGNoYXJhY3RlcnMgbG9uZywKKyAgICAvLyB0aGF0IGlzLCB0aGF0IGl0IGVuY29tcGFzc2VzIHRoZSBuZXcgJ3UnIGNoYXIgZm9yCisgICAgLy8gRVhURU5ERURfWUVBUi4gIFR3byBvcHRpb25zOiAxLiBNYWtlIHN1cmUgcmVzb3VyY2UgZGF0YSBpcworICAgIC8vIGNvcnJlY3Q7IDIuIE1ha2UgY29kZSBhZGQgaW4gJ3UnIGF0IGVuZCBpZiBsZW4gPT0gMTcuCisKKyAgICAvLyBDb25zdGFudHMgZm9yIGNvbnRleHQKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgY29udGV4dC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgY29udGV4dC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQUxPTkUgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGNvbnRleHQuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEVF9DT05URVhUX0NPVU5UID0gMjsKKworICAgIC8vIENvbnN0YW50cyBmb3Igd2lkdGgKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCQlJFVklBVEVEID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdJREUgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHdpZHRoLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XID0gMjsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERUX1dJRFRIX0NPVU5UID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEoVUxvY2FsZS5nZXREZWZhdWx0KCksICIiKTsgLy8gVE9ETzogdHlwZT8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0IGJ5IGxvYWRpbmcgZm9ybWF0IGRhdGEgZnJvbQorICAgICAqIHJlc291cmNlcyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgIiIpOyAvLyBUT0RPOiB0eXBlPworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqCisgICAgICogQHRocm93cyAgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIGlmIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgIGZvdW5kIG9yIGNhbm5vdCBiZSBsb2FkZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBpbml0aWFsaXplRGF0YShsb2NhbGUsICIiKTsgLy8gVE9ETzogdHlwZT8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFcmEgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBRCIgYW5kICJCQyIuICBBbiBhcnJheSBvZiAyIHN0cmluZ3MsCisgICAgICogaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5CQzwvY29kZT4gYW5kIDxjb2RlPkNhbGVuZGFyLkFEPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIGVyYXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBFcmEgbmFtZSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFubm8gRG9taW5pIiBhbmQgIkJlZm9yZSBDaHJpc3QiLiAgQW4gYXJyYXkgb2YgMiBzdHJpbmdzLAorICAgICAqIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQkM8L2NvZGU+IGFuZCA8Y29kZT5DYWxlbmRhci5BRDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBlcmFOYW1lc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOYXJyb3cgZXJhIG5hbWVzLiBGb3IgZXhhbXBsZTogIkEiIGFuZCAiQiIuIEFuIGFycmF5IG9mIDIgc3RyaW5ncywKKyAgICAgKiBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLkJDPC9jb2RlPiBhbmQgPGNvZGU+Q2FsZW5kYXIuQUQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbmFycm93RXJhc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIE1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgMTMgc3RyaW5ncyAoc29tZSBjYWxlbmRhcnMgaGF2ZSAxMyBtb250aHMpLCBpbmRleGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4sIDxjb2RlPkNhbGVuZGFyLkZFQlJVQVJZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHNob3J0TW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogTmFycm93IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSiIsICJGIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIG5hcnJvd01vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFN0YW5kYWxvbmUgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lTW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuICBBbiBhcnJheSBvZgorICAgICAqIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVNob3J0TW9udGhzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBuYXJyb3cgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKIiwgIkYiLCBldGMuICBBbiBhcnJheSBvZgorICAgICAqIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZU5hcnJvd01vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+d2Vla2RheXNbMF08L2NvZGU+IGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyB3ZWVrZGF5c1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c2hvcnRXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHNob3J0V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBOYXJyb3cgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlMiLCAiTSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPm5hcnJvd1dlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgbmFycm93V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c3RhbmRhbG9uZVdlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVdlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIG5hcnJvdyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiUyIsICJNIiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiA4IHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogVGhlIGVsZW1lbnQgPGNvZGU+c3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogQU0gYW5kIFBNIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAyIHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQU08L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkNhbGVuZGFyLlBNPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIGFtcG1zW10gPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEFiYnJldmlhdGVkIHF1YXJ0ZXIgbmFtZXMuIEZvciBleGFtcGxlOiAiUTEiLCAiUTIiLCAiUTMiLCAiUTQiLiBBbiBhcnJheQorICAgICAqIG9mIDQgc3RyaW5ncyBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzaG9ydFF1YXJ0ZXJzW10gPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEZ1bGwgcXVhcnRlciBuYW1lcy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsICIzcmQgUXVhcnRlciIsCisgICAgICogIjR0aCBRdWFydGVyIi4gQW4gYXJyYXkgb2YgNCBzdHJpbmdzLCBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBxdWFydGVyc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIGFiYnJldmlhdGVkIHF1YXJ0ZXIgbmFtZXMuIEZvciBleGFtcGxlOiAiUTEiLCAiUTIiLCAiUTMiLCAiUTQiLiBBbiBhcnJheQorICAgICAqIG9mIDQgc3RyaW5ncyBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lU2hvcnRRdWFydGVyc1tdID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIGZ1bGwgcXVhcnRlciBuYW1lcy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsICIzcmQgUXVhcnRlciIsCisgICAgICogIjR0aCBRdWFydGVyIi4gQW4gYXJyYXkgb2YgNCBzdHJpbmdzLCBpbmRleGVkIGJ5IHRoZSBtb250aCBkaXZpZGVkIGJ5IDMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzdGFuZGFsb25lUXVhcnRlcnNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgbmFtZXMgb2YgdGltZSB6b25lcyBpbiB0aGlzIGxvY2FsZS4gIFRoaXMgaXMgYQorICAgICAqIHR3by1kaW1lbnNpb25hbCBhcnJheSBvZiBzdHJpbmdzIG9mIHNpemUgPGVtPm48L2VtPiBieSA8ZW0+bTwvZW0+LAorICAgICAqIHdoZXJlIDxlbT5tPC9lbT4gaXMgYXQgbGVhc3QgNSBhbmQgdXAgdG8gOC4gIEVhY2ggb2YgdGhlIDxlbT5uPC9lbT4gcm93cyBpcyBhbgorICAgICAqIGVudHJ5IGNvbnRhaW5pbmcgdGhlIGxvY2FsaXplZCBuYW1lcyBmb3IgYSBzaW5nbGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEVhY2ggc3VjaCByb3cgY29udGFpbnMgKHdpdGggPGNvZGU+aTwvY29kZT4gcmFuZ2luZyBmcm9tCisgICAgICogMC4uPGVtPm48L2VtPi0xKToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzBdPC9jb2RlPiAtIHRpbWUgem9uZSBJRDwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzFdPC9jb2RlPiAtIGxvbmcgbmFtZSBvZiB6b25lIGluIHN0YW5kYXJkCisgICAgICogdGltZTwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzJdPC9jb2RlPiAtIHNob3J0IG5hbWUgb2Ygem9uZSBpbgorICAgICAqIHN0YW5kYXJkIHRpbWU8L2xpPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVszXTwvY29kZT4gLSBsb25nIG5hbWUgb2Ygem9uZSBpbiBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZTwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzRdPC9jb2RlPiAtIHNob3J0IG5hbWUgb2Ygem9uZSBpbiBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZTwvbGk+CisgICAgICogPGxpPlRoZSByZW1haW5kZXIgdmFyaWVzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXJlIGlzIGRhdGEgCisgICAgICogb24gY2l0eSBuYW1lIG9yIGdlbmVyaWMgdGltZS4gIFRoZSBjaXR5IG5hbWUsIGlmIGF2YWlsYWJsZSwgY29tZXMKKyAgICAgKiBmaXJzdC4gIFRoZSBsb25nIGFuZCBzaG9ydCBnZW5lcmljIHRpbWVzLCBpZiBhdmFpbGFibGUsIGNvbWUgbmV4dCwKKyAgICAgKiBpbiB0aGF0IG9yZGVyLiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSAobSkgY2FuIGJlIGV4YW1pbmVkIHRvIAorICAgICAqIGRldGVybWluZSB3aGljaCBvcHRpb25hbCBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUuPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIFRoZSB6b25lIElEIGlzIDxlbT5ub3Q8L2VtPiBsb2NhbGl6ZWQ7IGl0IGNvcnJlc3BvbmRzIHRvIHRoZSBJRAorICAgICAqIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHN5c3RlbSB0aW1lIHpvbmUgb2JqZWN0LiAgQWxsIG90aGVyIGVudHJpZXMKKyAgICAgKiBhcmUgbG9jYWxpemVkIG5hbWVzLiAgSWYgYSB6b25lIGRvZXMgbm90IGltcGxlbWVudCBkYXlsaWdodCBzYXZpbmdzCisgICAgICogdGltZSwgdGhlIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBuYW1lcyBhcmUgaWdub3JlZC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgIHByaXZhdGUgU3RyaW5nIHpvbmVTdHJpbmdzW11bXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBVbmxvY2FsaXplZCBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXJzLiBGb3IgZXhhbXBsZTogJ3knLCAnZCcsIGV0Yy4KKyAgICAgKiBBbGwgbG9jYWxlcyB1c2UgdGhlIHNhbWUgdW5sb2NhbGl6ZWQgcGF0dGVybiBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgIHBhdHRlcm5DaGFycyA9ICJHeU1ka0htc1NFREZ3V2FoS3pZZXVnQVp2Y0xRcSI7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGUsIGEgbG9jYWxlIG1heQorICAgICAqIHdpc2ggdG8gdXNlICd1JyByYXRoZXIgdGhhbiAneScgdG8gcmVwcmVzZW50IHllYXJzIGluIGl0cyBkYXRlIGZvcm1hdAorICAgICAqIHBhdHRlcm4gc3RyaW5ncy4KKyAgICAgKiBUaGlzIHN0cmluZyBtdXN0IGJlIGV4YWN0bHkgMTggY2hhcmFjdGVycyBsb25nLCB3aXRoIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBjaGFyYWN0ZXJzIGRlc2NyaWJlZCBieSA8Y29kZT5EYXRlRm9ybWF0LkVSQV9GSUVMRDwvY29kZT4sCisgICAgICogPGNvZGU+RGF0ZUZvcm1hdC5ZRUFSX0ZJRUxEPC9jb2RlPiwgZXRjLiAgVGh1cywgaWYgdGhlIHN0cmluZyB3ZXJlCisgICAgICogIlh6Li4uIiwgdGhlbiBsb2NhbGl6ZWQgcGF0dGVybnMgd291bGQgdXNlICdYJyBmb3IgZXJhIGFuZCAneicgZm9yIHllYXIuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSBudWxsOworCisgICAgLyogdXNlIHNlcmlhbFZlcnNpb25VSUQgZnJvbSBKREsgMS4xLjQgZm9yIGludGVyb3BlcmFiaWxpdHkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNTk4Nzk3MzU0NTU0OTQyNDcwMkw7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXJhcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcGFyYW0gbmV3RXJhcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVyYXMoU3RyaW5nW10gbmV3RXJhcykgeworICAgICAgICBlcmFzID0gZHVwbGljYXRlKG5ld0VyYXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgZXJhIG5hbWUgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBbm5vIERvbWluaSIgYW5kICJCZWZvcmUgQ2hyaXN0Ii4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFOYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFOYW1lcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBlcmEgbmFtZSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFubm8gRG9taW5pIiBhbmQgIkJlZm9yZSBDaHJpc3QiLgorICAgICAqIEBwYXJhbSBuZXdFcmFOYW1lcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RXJhTmFtZXMoU3RyaW5nW10gbmV3RXJhTmFtZXMpIHsKKyAgICAgICAgZXJhTmFtZXMgPSBkdXBsaWNhdGUobmV3RXJhTmFtZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldE1vbnRocygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShtb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEBwYXJhbSBjb250ZXh0ICAgIFRoZSBtb250aCBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb3IgdGhlIHJldHVybmVkIG1vbnRoIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldE1vbnRocyhpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBbXSByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG1vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHNob3J0TW9udGhzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG5hcnJvd01vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgU1RBTkRBTE9ORSA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzdGFuZGFsb25lU2hvcnRNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZU5hcnJvd01vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShyZXR1cm5WYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld01vbnRocyB0aGUgbmV3IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9udGhzKFN0cmluZ1tdIG5ld01vbnRocykgeworICAgICAgICBtb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3TW9udGhzIHRoZSBuZXcgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICBUaGUgZm9ybWF0dGluZyBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb2YgdGhlIG1vbnRoIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVy4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbnRocyhTdHJpbmdbXSBuZXdNb250aHMsIGludCBjb250ZXh0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7CisgICAgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIG1vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHNob3J0TW9udGhzID0gZHVwbGljYXRlKG5ld01vbnRocyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIG5hcnJvd01vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBzaG9ydCBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydE1vbnRocygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShzaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0TW9udGhzIHRoZSBuZXcgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydE1vbnRocyhTdHJpbmdbXSBuZXdTaG9ydE1vbnRocykgeworICAgICAgICBzaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShuZXdTaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0V2Vla2RheXMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUod2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1bmRheSIsICJNb25kYXkiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgd2Vla2RheSBzdHJpbmdzLiBVc2UgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuIHRvIGluZGV4IHRoZSByZXN1bHQgYXJyYXkuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgRm9ybWF0dGluZyBjb250ZXh0LCBlaXRoZXIgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgV2lkdGggb2Ygc3RyaW5ncyB0byBiZSByZXR1cm5lZCwgZWl0aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgV0lERSwgQUJCUkVWSUFURUQsIG9yIE5BUlJPVworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFdlZWtkYXlzKGludCBjb250ZXh0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nIFtdIHJldHVyblZhbHVlID0gbnVsbDsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7CisgICAgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gd2Vla2RheXM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzaG9ydFdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG5hcnJvd1dlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVNob3J0V2Vla2RheXM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHJldHVyblZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdXZWVrZGF5cyBUaGUgbmV3IHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICAgVGhlIGZvcm1hdHRpbmcgY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgIFRoZSB3aWR0aCBvZiB0aGUgc3RyaW5ncywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZWl0aGVyIFdJREUsIEFCQlJFVklBVEVELCBvciBOQVJST1cuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRXZWVrZGF5cyhTdHJpbmdbXSBuZXdXZWVrZGF5cywgaW50IGNvbnRleHQsIGludCB3aWR0aCkgeworICAgICAgICBzd2l0Y2ggKGNvbnRleHQpIHsKKyAgICAgICAgICAgY2FzZSBGT1JNQVQgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgd2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHNob3J0V2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICBuYXJyb3dXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQU5EQUxPTkUgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3V2Vla2RheXMgdGhlIG5ldyB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFdlZWtkYXlzKFN0cmluZ1tdIG5ld1dlZWtkYXlzKSB7CisgICAgICAgIHdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKHNob3J0V2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1biIsICJNb24iLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0V2Vla2RheXMgdGhlIG5ldyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0V2Vla2RheXMoU3RyaW5nW10gbmV3U2hvcnRXZWVrZGF5cykgeworICAgICAgICBzaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1Nob3J0V2Vla2RheXMpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHF1YXJ0ZXIgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICBUaGUgcXVhcnRlciBjb250ZXh0LCBGT1JNQVQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBAcGFyYW0gd2lkdGggICAgICBUaGUgd2lkdGggb3IgdGhlIHJldHVybmVkIHF1YXJ0ZXIgc3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgIGVpdGhlciBXSURFIG9yIEFCQlJFVklBVEVELiBUaGVyZSBhcmUgbm8gTkFSUk9XIHF1YXJ0ZXJzLgorICAgICAqIEByZXR1cm4gdGhlIHF1YXJ0ZXIgc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRRdWFydGVycyhpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBbXSByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHF1YXJ0ZXJzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc2hvcnRRdWFydGVyczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVF1YXJ0ZXJzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVNob3J0UXVhcnRlcnM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVzogCisgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHJldHVyblZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHF1YXJ0ZXIgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICIxc3QgUXVhcnRlciIsICIybmQgUXVhcnRlciIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3UXVhcnRlcnMgdGhlIG5ldyBxdWFydGVyIHN0cmluZ3MuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgVGhlIGZvcm1hdHRpbmcgY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgVGhlIHdpZHRoIG9mIHRoZSBxdWFydGVyIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgICBlaXRoZXIgV0lERSBvciBBQkJSRVZJQVRFRC4gVGhlcmUgYXJlIG5vIE5BUlJPVyBxdWFydGVycy4KKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFF1YXJ0ZXJzKFN0cmluZ1tdIG5ld1F1YXJ0ZXJzLCBpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICBxdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc2hvcnRRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIC8vbmFycm93UXVhcnRlcnMgPSBkdXBsaWNhdGUobmV3UXVhcnRlcnMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVNob3J0UXVhcnRlcnMgPSBkdXBsaWNhdGUobmV3UXVhcnRlcnMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICAvL3N0YW5kYWxvbmVOYXJyb3dRdWFydGVycyA9IGR1cGxpY2F0ZShuZXdRdWFydGVycyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0QW1QbVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUoYW1wbXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgYW1wbSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFNIiBhbmQgIlBNIi4KKyAgICAgKiBAcGFyYW0gbmV3QW1wbXMgdGhlIG5ldyBhbXBtIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QW1QbVN0cmluZ3MoU3RyaW5nW10gbmV3QW1wbXMpIHsKKyAgICAgICAgYW1wbXMgPSBkdXBsaWNhdGUobmV3QW1wbXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXVtdIGdldFpvbmVTdHJpbmdzKCkgeworICAgICAgICBTdHJpbmdbXVtdIHN0cmluZ3MgPSB6b25lU3RyaW5nczsKKyAgICAgICAgaWYoc3RyaW5ncyA9PSBudWxsKXsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGVmYXVsdCB6b25lIHN0cmluZ3MKKyAgICAgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSBnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCk7CisgICAgICAgICAgICBzdHJpbmdzID0gemlpLnR6U3RyaW5nczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZHVwbGljYXRlKHN0cmluZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAcGFyYW0gbmV3Wm9uZVN0cmluZ3MgdGhlIG5ldyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFpvbmVTdHJpbmdzKFN0cmluZ1tdW10gbmV3Wm9uZVN0cmluZ3MpIHsKKyAgICAgICAgem9uZVN0cmluZ3MgPSBkdXBsaWNhdGUobmV3Wm9uZVN0cmluZ3MpOworICAgICAgICAvLyBuZWVkIHRvIHVwZGF0ZSBsb2NhbCB6b25lIGl0ZW0gaW5mbworICAgICAgICBsb2NhbFpvbmVJdGVtSW5mbyA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcobG9jYWxQYXR0ZXJuQ2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbFBhdHRlcm5DaGFycyB0aGUgbmV3IGxvY2FsaXplZCBkYXRlLXRpbWUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoU3RyaW5nIG5ld0xvY2FsUGF0dGVybkNoYXJzKSB7CisgICAgICAgIGxvY2FsUGF0dGVybkNoYXJzID0gbmV3TG9jYWxQYXR0ZXJuQ2hhcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIG90aGVyID0gKERhdGVGb3JtYXRTeW1ib2xzKXN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBjb3B5TWVtYmVycyh0aGlzLCBvdGhlcik7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaGFzaENvZGUuCisgICAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCBoYXNoY29kZSA9IDA7CisgICAgICAgIGhhc2hjb2RlIF49IHJlcXVlc3RlZExvY2FsZS50b1N0cmluZygpLmhhc2hDb2RlKCk7CisgICAgICAgIFN0cmluZ1tdW10gdHpTdHJpbmdzID0gem9uZVN0cmluZ3M7CisgICAgICAgIGlmICh0elN0cmluZ3MgPT0gbnVsbCl7CisgICAgICAgICAgICBab25lSXRlbUluZm8gemlpID0gZ2V0RGVmYXVsdFpvbmVJdGVtSW5mbygpOworICAgICAgICAgICAgdHpTdHJpbmdzID0gemlpLnR6U3RyaW5nczsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdHpTdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIAlmb3IgKGludCBqID0gMDsgaiA8IHR6U3RyaW5nc1tpXS5sZW5ndGg7IGorKykgeworICAgICAgICAJCWlmICh0elN0cmluZ3NbaV1bal0gIT0gbnVsbCkgeworICAgICAgICAgICAgCQloYXNoY29kZSBePSB0elN0cmluZ3NbaV1bal0uaGFzaENvZGUoKTsKKyAgICAgICAgCQl9CisgICAgICAgIAl9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc2hjb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgdGhhdCA9IChEYXRlRm9ybWF0U3ltYm9scykgb2JqOworICAgICAgICByZXR1cm4gKFV0aWxpdHkuYXJyYXlFcXVhbHMoZXJhcywgdGhhdC5lcmFzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoZXJhTmFtZXMsIHRoYXQuZXJhTmFtZXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhtb250aHMsIHRoYXQubW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc2hvcnRNb250aHMsIHRoYXQuc2hvcnRNb250aHMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhuYXJyb3dNb250aHMsIHRoYXQubmFycm93TW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZU1vbnRocywgdGhhdC5zdGFuZGFsb25lTW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZVNob3J0TW9udGhzLCB0aGF0LnN0YW5kYWxvbmVTaG9ydE1vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMsIHRoYXQuc3RhbmRhbG9uZU5hcnJvd01vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHdlZWtkYXlzLCB0aGF0LndlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc2hvcnRXZWVrZGF5cywgdGhhdC5zaG9ydFdlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMobmFycm93V2Vla2RheXMsIHRoYXQubmFycm93V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lV2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZVdlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZVNob3J0V2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZVNob3J0V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lTmFycm93V2Vla2RheXMsIHRoYXQuc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoYW1wbXMsIHRoYXQuYW1wbXMpCisgICAgICAgICAgICAgICAgJiYgYXJyYXlPZkFycmF5RXF1YWxzKHpvbmVTdHJpbmdzLCB0aGF0LnpvbmVTdHJpbmdzKQorICAgICAgICAgICAgICAgIC8vIGdldERpcGxheU5hbWUgbWFwcyBkZXByZWNhdGVkIGNvdW50cnkgYW5kIGxhbmd1YWdlIGNvZGVzIHRvIHRoZSBjdXJyZW50IG9uZXMKKyAgICAgICAgICAgICAgICAvLyB0b28gYmFkIHRoZXJlIGlzIG5vIHdheSB0byBnZXQgdGhlIGN1cnJlbnQgY29kZXMhCisgICAgICAgICAgICAgICAgLy8gSSB0aG91Z2h0IGNhbm9saWNhbGl6ZSgpIHdvdWxkIG1hcCB0aGUgY29kZXMgYnV0IC4uIGFsYXMhIGl0IGRvZXNuJ3QuCisgICAgICAgICAgICAgICAgJiYgcmVxdWVzdGVkTG9jYWxlLmdldERpc3BsYXlOYW1lKCkuZXF1YWxzKHRoYXQucmVxdWVzdGVkTG9jYWxlLmdldERpc3BsYXlOYW1lKCkpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhsb2NhbFBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQubG9jYWxQYXR0ZXJuQ2hhcnMpKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBkZWZpbmluZyB0aW1lem9uZSBvZmZzZXRzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDYwKjYwKjEwMDA7CisgICAgLyoqCisgICAgICogCisgICAgICogQHBhcmFtIGRlc2lyZWRMb2NhbGUKKyAgICAgKiBAcGFyYW0gdHlwZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVEYXRhKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgU3RyaW5nIHR5cGUpCisgICAgeworICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEoZGVzaXJlZExvY2FsZSwgdHlwZSk7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGRlc2lyZWRMb2NhbGUsIGNhbERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIAorICAgICAqIEBwYXJhbSBkZXNpcmVkTG9jYWxlCisgICAgICogQHBhcmFtIGNhbERhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIENhbGVuZGFyRGF0YSBjYWxEYXRhKQorICAgIHsKKworICAgICAgICAvLyBGSVhNRTogY2FjaGUgb25seSBSZXNvdXJjZUJ1bmRsZS4gSGVuY2UgZXZlcnkgdGltZSwgd2lsbCBkbworICAgICAgICAvLyBnZXRPYmplY3QoKS4gVGhpcyB3b24ndCBiZSBuZWNlc3NhcnkgaWYgdGhlIFJlc291cmNlIGl0c2VsZgorICAgICAgICAvLyBpcyBjYWNoZWQuCisgICAgICAgIGVyYXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5PVEU6IHNpbmNlIHRoZSBhYm92ZSBjb2RlIGFzc3VtZXMgdGhhdCBhYmJyZXZpYXRlZAorICAgICAgICAvLyBlcmEgbmFtZXMgZXhpc3QsIHdlIG1ha2UgdGhlIHNhbWUgYXNzdW1wdGlvbiBoZXJlIHRvby4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5hcnJvd0VyYXMgPSBjYWxEYXRhLmdldEVyYXMoIm5hcnJvdyIpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbmFycm93RXJhcyA9IGNhbERhdGEuZ2V0RXJhcygiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAid2lkZSIpOworICAgICAgICBzaG9ydE1vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICBuYXJyb3dNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgIm5hcnJvdyIpOworICAgICAgICB9IAorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJzdGFuZC1hbG9uZSIsICJuYXJyb3ciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgIG5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgIndpZGUiKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJ3aWRlIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gbFdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAid2lkZSIpOworICAgICAgICB3ZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHdlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobFdlZWtkYXlzLCAwLCB3ZWVrZGF5cywgMSwgbFdlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nW10gc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgc2hvcnRXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHNob3J0V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzV2Vla2RheXMsIDAsIHNob3J0V2Vla2RheXMsIDEsIHNXZWVrZGF5cy5sZW5ndGgpOworCisgICAgICAgIFN0cmluZyBbXSBuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJuYXJyb3ciKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBuYXJyb3dXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIG5hcnJvd1dlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobldlZWtkYXlzLCAwLCBuYXJyb3dXZWVrZGF5cywgMSwgbldlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNhV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAid2lkZSIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lV2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lV2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzYVdlZWtkYXlzLCAwLCBzdGFuZGFsb25lV2Vla2RheXMsIDEsIHNhV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBTdHJpbmcgW10gc3NXZWVrZGF5cyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHNzV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJzdGFuZC1hbG9uZSIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgc3RhbmRhbG9uZVNob3J0V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lU2hvcnRXZWVrZGF5c1swXSA9ICIiOyAgLy8gMS1iYXNlZAorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNzV2Vla2RheXMsIDAsIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLCAxLCBzc1dlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHNuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzbldlZWtkYXlzLCAwLCBzdGFuZGFsb25lTmFycm93V2Vla2RheXMsIDEsIHNuV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBhbXBtcyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIkFtUG1NYXJrZXJzIik7CisgICAgICAgIAorICAgICAgICBxdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgIndpZGUiKTsKKyAgICAgICAgc2hvcnRRdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgc3RhbmRhbG9uZVF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAic3RhbmQtYWxvbmUiLCAid2lkZSIpOworICAgICAgICB9IAorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgc3RhbmRhbG9uZVF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAiZm9ybWF0IiwgIndpZGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVTaG9ydFF1YXJ0ZXJzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgicXVhcnRlcnMiLCAic3RhbmQtYWxvbmUiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRRdWFydGVycyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoInF1YXJ0ZXJzIiwgImZvcm1hdCIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisgICAgICAgIAorLyogIFRIRSBGT0xMT1dJTkcgRE9FU04nVCBXT1JLOyBBIENPVU5UUlkgTE9DQUxFIFdJVEggT05FIFpPTkUgQkxPQ0tTIFRIRSBMQU5HVUFHRSBMT0NBTEUKKyAgICAgICAgLy8gVGhlc2UgcmVhbGx5IGRvIHVzZSByYiBhbmQgbm90IGNhbERhdGEKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGRlc2lyZWRMb2NhbGUpOworICAgICAgICAvLyBoYWNrIGFyb3VuZCBjbGFzcyBjYXN0IHByb2JsZW0KKyAgICAgICAgLy8gem9uZVN0cmluZ3MgPSAoU3RyaW5nW11bXSlyYi5nZXRPYmplY3QoInpvbmVTdHJpbmdzIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVPYmplY3QgPSByYi5nZXQoInpvbmVTdHJpbmdzIik7CisgICAgICAgIHpvbmVTdHJpbmdzID0gbmV3IFN0cmluZ1t6b25lT2JqZWN0LmdldFNpemUoKV1bXTsKKyAgICAgICAgZm9yKGludCBpID0wOyBpPCB6b25lT2JqZWN0LmdldFNpemUoKTsgaSsrKXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVBcnIgPSB6b25lT2JqZWN0LmdldChpKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSBuZXcgU3RyaW5nW3pvbmVBcnIuZ2V0U2l6ZSgpXTsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHpvbmVBcnIuZ2V0U2l6ZSgpOyBqKyspeworICAgICAgICAgICAgICAgIHN0cmluZ3Nbal09em9uZUFyci5nZXQoaikuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB6b25lU3RyaW5nc1tpXSA9IHN0cmluZ3M7CisgICAgICAgIH0KKyovICAgICAgICAKKyAgICAgICAgcmVxdWVzdGVkTG9jYWxlID0gZGVzaXJlZExvY2FsZTsKKyAgICAgCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBkZXNpcmVkTG9jYWxlKTsKKyAgICAgICAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSByYi5nZXRTdHJpbmcoImxvY2FsUGF0dGVybkNoYXJzIik7CisKKyAgICAgICAgLy8gVE9ETzogb2J0YWluIGNvcnJlY3QgYWN0dWFsL3ZhbGlkIGxvY2FsZSBsYXRlcgorICAgICAgICBVTG9jYWxlIHVsb2MgPSByYi5nZXRVTG9jYWxlKCk7CisgICAgICAgIHNldExvY2FsZSh1bG9jLCB1bG9jKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGFycmF5T2ZBcnJheUVxdWFscyhPYmplY3RbXVtdIGFhMSwgT2JqZWN0W11bXWFhMikgeworICAgICAgICBpZiAoYWExID09IGFhMikgeyAvLyBib3RoIGFyZSBudWxsCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWExID09IG51bGwgfHwgYWEyID09IG51bGwpIHsgLy8gb25lIGlzIG51bGwgYW5kIHRoZSBvdGhlciBpcyBub3QKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWExLmxlbmd0aCAhPSBhYTIubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBlcXVhbCA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWExLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBlcXVhbCA9IFV0aWxpdHkuYXJyYXlFcXVhbHMoYWExW2ldLCBhYTJbaV0pOworICAgICAgICAgICAgaWYgKCFlcXVhbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBlcXVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZUZvcm1hdC4KKyAgICAgKiBHZXRzIHRoZSBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSB6aWQgVGhlIHRpbWUgem9uZSBJRAorICAgICAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHpvbmUgc3RyaW5nCisgICAgICogQHJldHVybiBUaGUgem9uZSBzdHJpbmcsIG9yIG51bGwgaWYgbm90IGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBTdHJpbmcgZ2V0Wm9uZVN0cmluZyhTdHJpbmcgemlkLCBpbnQgdHlwZSkgeworICAgICAgICAvLyBUcnkgbG9jYWwgem9uZSBpdGVtIGluZm8gZmlyc3QKKyAgICAgICAgU3RyaW5nIHpvbmVTdHJpbmcgPSBnZXRab25lU3RyaW5nKGdldExvY2FsWm9uZUl0ZW1JbmZvKCksIHppZCwgdHlwZSk7CisgICAgICAgIGlmICh6b25lU3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGluZm8KKyAgICAgICAgICAgIHpvbmVTdHJpbmcgPSBnZXRab25lU3RyaW5nKGdldERlZmF1bHRab25lSXRlbUluZm8oKSwgemlkLCB0eXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gem9uZVN0cmluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB6b25lIHN0cmluZyBmcm9tIHRoZSBzcGVjaWZpZWQgem9uZSBpdGVtIGluZm8KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lU3RyaW5nKFpvbmVJdGVtSW5mbyB6aW5mbywgU3RyaW5nIHppZCwgaW50IHR5cGUpIHsKKyAgICAgICAgaWYgKHppbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gKFN0cmluZ1tdKXppbmZvLnR6aWRNYXAuZ2V0KHppZCk7CisgICAgICAgIGlmIChuYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBnZXQgbmFtZSBmb3IgdGhlIHR5cGUKKyAgICAgICAgICAgIGludCBpbmRleCA9IC0xOworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfU1RBTkRBUkQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSAxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9TSE9SVF9TVEFOREFSRDoKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfREFZTElHSFQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSAzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9TSE9SVF9EQVlMSUdIVDoKKyAgICAgICAgICAgICAgICBpbmRleCA9IDQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0VYRU1QTEFSX0NJVFk6CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSA2IHx8IG5hbWVzLmxlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX0xPTkdfR0VORVJJQzoKKyAgICAgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSA2OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRJTUVaT05FX1NIT1JUX0dFTkVSSUM6CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGluZGV4IDwgbmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW2luZGV4XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBjbGFzcyBab25lSXRlbXsKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICBpbnQgdHlwZTsKKyAgICAgICAgU3RyaW5nIHppZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZWZvcm1hdAorICAgICAqIEdldHMgdGhlIFpvbmVJdGVtIGluc3RhbmNlIHdoaWNoIGhhcyB6b25lIHN0cmluZ3MKKyAgICAgKiB3aGljaCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB3aGljaCBjb250YWlucyBhIHpvbmUgc3RyaW5nCisgICAgICogQHBhcmFtIHN0YXJ0IFRoZSBzdGFydCBwb3NpdGlvbiBvZiB6b25lIHN0cmluZyBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gQSBab25JdGVtIGluc3RhbmNlIGZvciB0aGUgbG9uZ2VzdCBtYXRjaGluZyB6b25lCisgICAgICogc3RyaW5nLgorICAgICAqLworICAgIFpvbmVJdGVtIGZpbmRab25lSURUeXBlVmFsdWUoU3RyaW5nIHRleHQsIGludCBzdGFydCl7CisgICAgICAgIFpvbmVJdGVtIGl0ZW0gPSBudWxsOworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCkgLSBzdGFydDsKKyAgICAgICAgaWYgKGxhc3Rab25lSXRlbSAhPSBudWxsICYmIHRleHRMZW5ndGggPT0gbGFzdFpvbmVJdGVtLnZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAodGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LCBsYXN0Wm9uZUl0ZW0udmFsdWUsIDAsIHRleHRMZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgaXRlbSA9IG5ldyBab25lSXRlbSgpOworICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9IGxhc3Rab25lSXRlbS50eXBlOworICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBsYXN0Wm9uZUl0ZW0udmFsdWU7CisgICAgICAgICAgICAgICAgaXRlbS56aWQgPSBsYXN0Wm9uZUl0ZW0uemlkOworICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgWm9uZUl0ZW1JbmZvIHppbmZvID0gZ2V0TG9jYWxab25lSXRlbUluZm8oKTsKKyAgICAgICAgaWYgKHppbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhlIHpvbmUgc3RyaW5nIGluIGxvY2FsWm9uZUl0ZW1JbmZvIGZpcnN0CisgICAgICAgICAgICBpdGVtID0gKFpvbmVJdGVtKXppbmZvLnR6U3RyaW5nTWFwLmdldCh0ZXh0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBsb29rIHVwIHRoZSB6b25lIHN0cmluZyBpbiBkZWZhdWx0IFpvbmVJdGVtSW5mbyBmb3IgdGhlIGxvY2FsZQorICAgICAgICB6aW5mbyA9IGdldERlZmF1bHRab25lSXRlbUluZm8oKTsKKyAgICAgICAgWm9uZUl0ZW0gaXRlbUZvckxvY2FsZSA9IChab25lSXRlbSl6aW5mby50elN0cmluZ01hcC5nZXQodGV4dCwgc3RhcnQpOworICAgICAgICBpZiAoaXRlbUZvckxvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSB3YW50IHRvIHVzZSBsb25nZXIgbWF0Y2gKKyAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwgfHwgaXRlbUZvckxvY2FsZS52YWx1ZS5sZW5ndGgoKSA+IGl0ZW0udmFsdWUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpdGVtID0gaXRlbUZvckxvY2FsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVtICE9IG51bGwgJiYgdGV4dExlbmd0aCA9PSBpdGVtLnZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAvLyBjbG9uZSB0aGUgbGFzdCBtYXRjaCBmb3IgbmV4dCB0aW1lCisgICAgICAgICAgICAvLyBvbmx5IHdoZW4gdGhlIHN1YnN0cmluZyBjb21wbGV0ZWx5IG1hdGNoZXMKKyAgICAgICAgICAgIC8vIHdpdGggdGhlIHZhbHVlIHJlc29sdmVkCisgICAgICAgICAgICBsYXN0Wm9uZUl0ZW0gPSBuZXcgWm9uZUl0ZW0oKTsKKyAgICAgICAgICAgIGxhc3Rab25lSXRlbS50eXBlID0gaXRlbS50eXBlOworICAgICAgICAgICAgbGFzdFpvbmVJdGVtLnZhbHVlID0gaXRlbS52YWx1ZTsKKyAgICAgICAgICAgIGxhc3Rab25lSXRlbS56aWQgPSBpdGVtLnppZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIGhvbGRzIHpvbmUgc3RyaW5ncyBhbmQgc2VhcmNoYWJsZSBpbmRpY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIFpvbmVJdGVtSW5mbyB7CisgICAgICAgIFN0cmluZ1tdW10gdHpTdHJpbmdzOworICAgICAgICBIYXNoTWFwIHR6aWRNYXA7CisgICAgICAgIFRleHRUcmllTWFwIHR6U3RyaW5nTWFwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgY2FjaGUgZm9yIFpvbmVJdGVtSW5mbyBvYmplY3RzLCBzaGFyZWQgYnkgY2xhc3MgaW5zdGFuY2VzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNvZnRDYWNoZSB6b25lSXRlbUluZm9DYWNoZSA9IG5ldyBTb2Z0Q2FjaGUoKTsKKworICAgIC8qKgorICAgICAqIEEgWm9uZUl0ZW1JbmZvIGluc3RhbmNlIHdoaWNoIGhvbGRzIGN1c3RvbSB0aW1lem9uZSBzdHJpbmdzCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgWm9uZUl0ZW1JbmZvIGxvY2FsWm9uZUl0ZW1JbmZvOworCisgICAgLyoqCisgICAgICogU2luZ2xlIGVudHJ5IGNhY2hlIGZvciBmaW5kWm9uZVR5cGVWYWx1ZSgpCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgWm9uZUl0ZW0gbGFzdFpvbmVJdGVtOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgWm9uZUl0ZW1JbmZvIGluc3RhbmNlIGZvciB0aGUgbG9jYWxlIHVzZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogSWYgaXQgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXcgb25lIGFuZCByZWdpc3RlciBpbiB0aGUgc3RhdGljIGNhY2hlLgorICAgICAqLworICAgIHByaXZhdGUgWm9uZUl0ZW1JbmZvIGdldERlZmF1bHRab25lSXRlbUluZm8oKSB7CisgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSAoWm9uZUl0ZW1JbmZvKXpvbmVJdGVtSW5mb0NhY2hlLmdldChyZXF1ZXN0ZWRMb2NhbGUpOworICAgICAgICBpZiAoemlpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB6aWk7CisgICAgICAgIH0KKyAgICAgICAgemlpID0gZ2V0Wm9uZUl0ZW1JbmZvKGdldERlZmF1bHRab25lU3RyaW5ncyhyZXF1ZXN0ZWRMb2NhbGUpKTsKKyAgICAgICAgLy8gQWRkIGZhbGxiYWNrIGRpc3BsYXkgbmFtZXMKKyAgICAgICAgU3RyaW5nW10gem9uZUlEcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpvbmVJRHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCBvID0gemlpLnR6aWRNYXAuZ2V0KHpvbmVJRHNbaV0pOworICAgICAgICAgICAgaWYgKG8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIEFscmVhZHkgaGFzIG5hbWVzCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soem9uZUlEc1tpXSwgbnVsbCwgcmVxdWVzdGVkTG9jYWxlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgICAgICAgICAgc3RyaW5nc1s1XSA9IHZhbHVlOworICAgICAgICAgICAgICAgIHppaS50emlkTWFwLnB1dCh6b25lSURzW2ldLCBzdHJpbmdzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBab25lSXRlbSBpdGVtID0gbmV3IFpvbmVJdGVtKCk7CisgICAgICAgICAgICAgICAgaXRlbS56aWQgPSB6b25lSURzW2ldOworICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPSBUSU1FWk9ORV9FWEVNUExBUl9DSVRZOworICAgICAgICAgICAgICAgIHppaS50elN0cmluZ01hcC5wdXQoaXRlbS52YWx1ZSwgaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgem9uZUl0ZW1JbmZvQ2FjaGUucHV0KHJlcXVlc3RlZExvY2FsZSwgemlpKTsKKyAgICAgICAgcmV0dXJuIHppaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBhcnJheSBvZiB6b25lIHN0cmluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gZ2V0RGVmYXVsdFpvbmVTdHJpbmdzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIEFycmF5TGlzdCB0bXBMaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBIYXNoU2V0IHRtcFNldCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGZvciAoVUxvY2FsZSB0ZW1wTG9jYWxlID0gbG9jYWxlOyB0ZW1wTG9jYWxlICE9IG51bGw7IHRlbXBMb2NhbGUgPSB0ZW1wTG9jYWxlLmdldEZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgdGVtcExvY2FsZSk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB6b25lU3RyaW5nc0J1bmRsZSA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soInpvbmVTdHJpbmdzIik7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgem9uZVN0cmluZ3NCdW5kbGUuZ2V0U2l6ZSgpOyBpKyspeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHpvbmVUYWJsZSA9IHpvbmVTdHJpbmdzQnVuZGxlLmdldChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gVXRpbGl0eS5yZXBsYWNlQWxsKHpvbmVUYWJsZS5nZXRLZXkoKSwgIjoiLCAiLyIpOworICAgICAgICAgICAgICAgIC8vIGhhY2sgZm9yIHRoZSByb290IHpvbmUgc3RyaW5ncworICAgICAgICAgICAgICAgIGlmKGtleS5sZW5ndGgoKSA9PSAwfHwgem9uZVRhYmxlLmdldFR5cGUoKSAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5UQUJMRSl7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodG1wU2V0LmNvbnRhaW5zKGtleSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gb25seSBhZGQgaWYgd2UgZG9uJ3QgaGF2ZSBhbHJlYWR5CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFN0cmluZ1s4XTsKKyAgICAgICAgICAgICAgICBzdHJpbmdzWzBdID0ga2V5OworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbMV0gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKExPTkdfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1syXSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soU0hPUlRfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1szXSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soTE9OR19EQVlMSUdIVCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgdGhlIGV4Y2VwdGlvbiAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmdzWzRdID0gem9uZVRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhTSE9SVF9EQVlMSUdIVCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vICB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjaXR5ID0gem9uZVRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhFWEVNUExBUl9DSVRZKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s1XSA9IFpvbmVNZXRhLmRpc3BsYXlGYWxsYmFjayhrZXksIGNpdHksIHRlbXBMb2NhbGUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s2XSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soTE9OR19HRU5FUklDKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s3XSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soU0hPUlRfR0VORVJJQyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgdGhlIGV4Y2VwdGlvbiAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0bXBMaXN0LmFkZChzdHJpbmdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXVtdIGFycmF5ID0gbmV3IFN0cmluZ1t0bXBMaXN0LnNpemUoKV1bOF07CisgICAgICAgIHRtcExpc3QudG9BcnJheShhcnJheSk7CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBhcnJheSBvZiB6b25lIHN0cmluZ3MgZm9yIHRoZSBjdXN0b20gem9uZSBzdHJpbmdzCisgICAgICovCisgICAgcHJpdmF0ZSBab25lSXRlbUluZm8gZ2V0TG9jYWxab25lSXRlbUluZm8oKSB7CisgICAgICAgIGlmIChsb2NhbFpvbmVJdGVtSW5mbyA9PSBudWxsICYmIHpvbmVTdHJpbmdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsWm9uZUl0ZW1JbmZvID0gZ2V0Wm9uZUl0ZW1JbmZvKHpvbmVTdHJpbmdzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9jYWxab25lSXRlbUluZm87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBab25lSXRlbUluZm8gaW5zdGFuY2UgZnJvbSB0aGUgYXJyYXkgb2YgdGltZSB6b25lCisgICAgICogc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFpvbmVJdGVtSW5mbyBnZXRab25lSXRlbUluZm8oU3RyaW5nW11bXSBzdHJpbmdzKSB7CisgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSBuZXcgWm9uZUl0ZW1JbmZvKCk7CisgICAgICAgIHppaS50elN0cmluZ3MgPSBzdHJpbmdzOworICAgICAgICB6aWkudHppZE1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHppaS50elN0cmluZ01hcCA9IG5ldyBUZXh0VHJpZU1hcCh0cnVlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgemlkID0gc3RyaW5nc1tpXVswXTsKKyAgICAgICAgICAgIGlmICh6aWQgIT0gbnVsbCAmJiB6aWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgemlpLnR6aWRNYXAucHV0KHppZCwgc3RyaW5nc1tpXSk7CisgICAgICAgICAgICAgICAgaW50IG5hbWVDb3VudCA9IHN0cmluZ3NbaV0ubGVuZ3RoIDwgOCA/IHN0cmluZ3NbaV0ubGVuZ3RoIDogODsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IG5hbWVDb3VudDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmdzW2ldW2pdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcCB6b25lU3RyaW5ncyBhcnJheSBpbmRleCB0byB0aW1lem9uZSBuYW1lIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfTE9OR19TVEFOREFSRDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfU0hPUlRfU1RBTkRBUkQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfREFZTElHSFQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX0RBWUxJR0hUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lQ291bnQgPT0gNiB8fCBuYW1lQ291bnQgPT0gOCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfRVhFTVBMQVJfQ0lUWTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfTE9OR19HRU5FUklDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNvdW50ID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfR0VORVJJQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gVElNRVpPTkVfU0hPUlRfR0VORVJJQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX0dFTkVSSUM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5ldmVyIG9jY3VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBab25lSXRlbSBpdGVtID0gbmV3IFpvbmVJdGVtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnppZCA9IHppZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBzdHJpbmdzW2ldW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHppaS50elN0cmluZ01hcC5wdXQoc3RyaW5nc1tpXVtqXSwgaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHppaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBzYXZlIHRoZSBpbnB1dCBsb2NhbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgcmVxdWVzdGVkTG9jYWxlOyAKKyAKKyAgICAvKioKKyAgICAgKiBUaGUgdHJhbnNsYXRpb24gdHlwZSBvZiB0aGUgdHJhbnNsYXRlZCB6b25lIHN0cmluZ3MKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgICBTSE9SVF9HRU5FUklDICA9ICJzZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIT1JUX1NUQU5EQVJEID0gInNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hPUlRfREFZTElHSFQgPSAic2QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT05HX0dFTkVSSUMgICA9ICJsZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPTkdfU1RBTkRBUkQgID0gImxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9OR19EQVlMSUdIVCAgPSAibGQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEVNUExBUl9DSVRZICA9ICJlYyI7CisgICAgLyoqCisgICAgICogVGhlIHRyYW5zbGF0aW9uIHR5cGUgb2YgdGhlIHRyYW5zbGF0ZWQgem9uZSBzdHJpbmdzCisgICAgICogQGludGVybmFsIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICAgc3RhdGljIGZpbmFsIGludCAgIFRJTUVaT05FX1NIT1JUX0dFTkVSSUMgID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX1NIT1JUX1NUQU5EQVJEID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX1NIT1JUX0RBWUxJR0hUID0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfR0VORVJJQyAgID0gMywKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfU1RBTkRBUkQgID0gNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0xPTkdfREFZTElHSFQgID0gNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0VYRU1QTEFSX0NJVFkgID0gNiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRJTUVaT05FX0NPVU5UICAgICAgICAgID0gNzsKKworICAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZUZvcm1hdAorICAgICAqIEdldHMgdGhlIGluZGV4IGZvciB0aGUgZ2l2ZW4gdGltZSB6b25lIElEIHRvIG9idGFpbiB0aGUgdGltZXpvbmUKKyAgICAgKiBzdHJpbmdzIGZvciBmb3JtYXR0aW5nLiBUaGUgdGltZSB6b25lIElEIGlzIGp1c3QgZm9yIHByb2dyYW1tYXRpYworICAgICAqIGxvb2t1cC4gTk9UIExPQ0FMSVpFRCEhIQorICAgICAqIEBwYXJhbSBJRCB0aGUgZ2l2ZW4gdGltZSB6b25lIElELgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBnaXZlbiB0aW1lIHpvbmUgSUQuICBSZXR1cm5zIC0xIGlmCisgICAgICogdGhlIGdpdmVuIHRpbWUgem9uZSBJRCBjYW4ndCBiZSBsb2NhdGVkIGluIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lCisgICAgICovCisgICAgZmluYWwgaW50IGdldFpvbmVJbmRleChTdHJpbmcgSUQpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IF9nZXRab25lSW5kZXgoSUQpOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gRG8gYSBzZWFyY2ggdGhyb3VnaCB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgZm9yIHRoZSBnaXZlbiBJRAorICAgICAgICBpbnQgbiA9IFpvbmVNZXRhLmNvdW50RXF1aXZhbGVudElEcyhJRCk7CisgICAgICAgIGlmIChuID4gMSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBlcXVpdklEID0gWm9uZU1ldGEuZ2V0RXF1aXZhbGVudElEKElELCBpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWl2SUQuZXF1YWxzKElEKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZXF1aXZSZXN1bHQgPSBfZ2V0Wm9uZUluZGV4KGVxdWl2SUQpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXF1aXZSZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVxdWl2UmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBnaXZlbiBJRC4gIERvIE5PVCBkbyBhbiBlcXVpdmFsZW5jeSBzZWFyY2guCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgX2dldFpvbmVJbmRleChTdHJpbmcgSUQpCisgICAgeworICAgICAgICBmb3IgKGludCBpbmRleD0wOyBpbmRleDx6b25lU3RyaW5ncy5sZW5ndGg7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChJRC5lcXVhbHNJZ25vcmVDYXNlKHpvbmVTdHJpbmdzW2luZGV4XVswXSkpIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIGFuIGFycmF5IG9mIFN0cmluZ3MuCisgICAgICogQHBhcmFtIHNyY0FycmF5IHRoZSBzb3VyY2UgYXJyYXkgdG8gYmUgY2xvbmVkLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBnaXZlbiBzb3VyY2UgYXJyYXkuCisgICAgICogQHJldHVybiBhIGNsb25lZCBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZ1tdIGR1cGxpY2F0ZShTdHJpbmdbXSBzcmNBcnJheSkKKyAgICB7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pc3JjQXJyYXkuY2xvbmUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZ1tdW10gZHVwbGljYXRlKFN0cmluZ1tdW10gc3JjQXJyYXkpCisgICAgeworICAgICAgICBTdHJpbmdbXVtdIGFDb3B5ID0gbmV3IFN0cmluZ1tzcmNBcnJheS5sZW5ndGhdW107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjQXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhQ29weVtpXSA9IGR1cGxpY2F0ZShzcmNBcnJheVtpXSk7CisgICAgICAgIHJldHVybiBhQ29weTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbG9uZXMgYWxsIHRoZSBkYXRhIG1lbWJlcnMgZnJvbSB0aGUgc291cmNlIERhdGVGb3JtYXRTeW1ib2xzIHRvCisgICAgICogdGhlIHRhcmdldCBEYXRlRm9ybWF0U3ltYm9scy4gVGhpcyBpcyBvbmx5IGZvciBzdWJjbGFzc2VzLgorICAgICAqIEBwYXJhbSBzcmMgdGhlIHNvdXJjZSBEYXRlRm9ybWF0U3ltYm9scy4KKyAgICAgKiBAcGFyYW0gZHN0IHRoZSB0YXJnZXQgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGNvcHlNZW1iZXJzKERhdGVGb3JtYXRTeW1ib2xzIHNyYywgRGF0ZUZvcm1hdFN5bWJvbHMgZHN0KQorICAgIHsKKyAgICAgICAgZHN0LmVyYXMgPSBkdXBsaWNhdGUoc3JjLmVyYXMpOworICAgICAgICBkc3QuZXJhTmFtZXMgPSBkdXBsaWNhdGUoc3JjLmVyYU5hbWVzKTsKKyAgICAgICAgZHN0Lm1vbnRocyA9IGR1cGxpY2F0ZShzcmMubW9udGhzKTsKKyAgICAgICAgZHN0LnNob3J0TW9udGhzID0gZHVwbGljYXRlKHNyYy5zaG9ydE1vbnRocyk7CisgICAgICAgIGRzdC5uYXJyb3dNb250aHMgPSBkdXBsaWNhdGUoc3JjLm5hcnJvd01vbnRocyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lTW9udGhzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lTW9udGhzKTsKKyAgICAgICAgZHN0LnN0YW5kYWxvbmVTaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZVNob3J0TW9udGhzKTsKKyAgICAgICAgZHN0LnN0YW5kYWxvbmVOYXJyb3dNb250aHMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVOYXJyb3dNb250aHMpOworICAgICAgICBkc3Qud2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLndlZWtkYXlzKTsKKyAgICAgICAgZHN0LnNob3J0V2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLnNob3J0V2Vla2RheXMpOworICAgICAgICBkc3QubmFycm93V2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLm5hcnJvd1dlZWtkYXlzKTsKKyAgICAgICAgZHN0LnN0YW5kYWxvbmVXZWVrZGF5cyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZVdlZWtkYXlzKTsKKyAgICAgICAgZHN0LnN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lU2hvcnRXZWVrZGF5cyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyk7CisgICAgICAgIGRzdC5hbXBtcyA9IGR1cGxpY2F0ZShzcmMuYW1wbXMpOworICAgICAgICBpZiAoc3JjLnpvbmVTdHJpbmdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRzdC56b25lU3RyaW5ncyA9IGR1cGxpY2F0ZShzcmMuem9uZVN0cmluZ3MpOworICAgICAgICB9CisgICAgICAgIGRzdC5yZXF1ZXN0ZWRMb2NhbGUgPSBuZXcgVUxvY2FsZShzcmMucmVxdWVzdGVkTG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBkc3QubG9jYWxQYXR0ZXJuQ2hhcnMgPSBuZXcgU3RyaW5nIChzcmMubG9jYWxQYXR0ZXJuQ2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0aGUgdHdvIGFycmF5cyBvZiBTdHJpbmcuCisgICAgICogQHBhcmFtIGN1cnJlbnQgdGhpcyBTdHJpbmcgYXJyYXkuCisgICAgICogQHBhcmFtIG90aGVyIHRoYXQgU3RyaW5nIGFycmF5LgorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBlcXVhbHMoU3RyaW5nW10gY3VycmVudCwgU3RyaW5nW10gb3RoZXIpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSBjdXJyZW50Lmxlbmd0aDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgICAgICBpZiAoIWN1cnJlbnRbaV0uZXF1YWxzKG90aGVyW2ldKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgKi8KKworICAgIC8vfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB7QGxpbmsgRGF0ZUZvcm1hdFN5bWJvbHN9IG9iamVjdCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGZvcm1hdCBhCisgICAgICogY2FsZW5kYXIgc3lzdGVtJ3MgZGF0ZXMgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFdoZW4gY3JlYXRpbmcgYSBuZXcgQ2FsZW5kYXIgc3ViY2xhc3MsIHlvdSBtdXN0IGNyZWF0ZSB0aGUKKyAgICAgKiB7QGxpbmsgUmVzb3VyY2VCdW5kbGUgUmVzb3VyY2VCdW5kbGV9CisgICAgICogY29udGFpbmluZyBpdHMge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzIERhdGVGb3JtYXRTeW1ib2xzfSBpbiBhIHNwZWNpZmljIHBsYWNlLgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIncyBmdWxseS1zcGVjaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lLCB3aXRoICIucmVzb3VyY2VzIiBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIG5hbWUKKyAgICAgKiAoanVzdCBiZWZvcmUgdGhlIGNsYXNzIG5hbWUpIGFuZCAiU3ltYm9scyIgYXBwZW5kZWQgdG8gdGhlIGVuZC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJ1bmRsZSBjb3JyZXNwb25kaW5nIHRvICJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIgorICAgICAqIGlzICJjb20uaWJtLmljdS5pbXBsLmRhdGEuSGVicmV3Q2FsZW5kYXJTeW1ib2xzIi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaXRoaW4gdGhlIFJlc291cmNlQnVuZGxlLCB0aGlzIG1ldGhvZCBzZWFyY2hlcyBmb3IgZml2ZSBrZXlzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGF5TmFtZXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkLiAgRXZlbiB0aG91Z2gKKyAgICAgKiAgICAgIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBzdGFydHMgd2l0aCA8Y29kZT5TVU5EQVk8L2NvZGU+ID0gMSwKKyAgICAgKiAgICAgIFRoaXMgYXJyYXkgaXMgMC1iYXNlZDsgdGhlIG5hbWUgZm9yIFN1bmRheSBnb2VzIGluIHRoZQorICAgICAqICAgICAgZmlyc3QgcG9zaXRpb24sIGF0IGluZGV4IDAuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBkYXkgbmFtZXMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZQorICAgICAqICAgICAgZGVmYXVsdCA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkRheUFiYnJldmlhdGlvbnM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIGFiYnJldmlhdGVkIGRheSBuYW1lcyBjb3JyZXNwb25kaW5nCisgICAgICogICAgICB0byB0aGUgdmFsdWVzIGluIHRoZSAiRGF5TmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIkRheU5hbWVzIgorICAgICAqICAgICAgdmFsdWVzIGFyZSB1c2VkIGluc3RlYWQuICBJZiBuZWl0aGVyIGtleSBpcyBmb3VuZCwKKyAgICAgKiAgICAgIHRoZSBkYXkgYWJicmV2aWF0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIGRlZmF1bHQKKyAgICAgKiAgICAgIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5Nb250aE5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIG1vbnRoIG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5Nb250aEFiYnJldmlhdGlvbnM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIGFiYnJldmlhdGVkIGRheSBuYW1lcyBjb3JyZXNwb25kaW5nCisgICAgICogICAgICB0byB0aGUgdmFsdWVzIGluIHRoZSAiTW9udGhOYW1lcyIgYXJyYXkuICBJZiB0aGlzIGtleQorICAgICAqICAgICAgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsIHRoZSAiTW9udGhOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+RXJhczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZXJhIG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKiA8L3VsPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICAgICAgVGhlIGNhbGVuZGFyIHN5c3RlbSB3aG9zZSBkYXRlIGZvcm1hdCBzeW1ib2xzIGFyZSBkZXNpcmVkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgICAgVGhlIGxvY2FsZSB3aG9zZSBzeW1ib2xzIGFyZSBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0U3ltYm9scyNEYXRlRm9ybWF0U3ltYm9scyhqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgY2FsLmdldFR5cGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB7QGxpbmsgRGF0ZUZvcm1hdFN5bWJvbHN9IG9iamVjdCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGZvcm1hdCBhCisgICAgICogY2FsZW5kYXIgc3lzdGVtJ3MgZGF0ZXMgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFdoZW4gY3JlYXRpbmcgYSBuZXcgQ2FsZW5kYXIgc3ViY2xhc3MsIHlvdSBtdXN0IGNyZWF0ZSB0aGUKKyAgICAgKiB7QGxpbmsgUmVzb3VyY2VCdW5kbGUgUmVzb3VyY2VCdW5kbGV9CisgICAgICogY29udGFpbmluZyBpdHMge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzIERhdGVGb3JtYXRTeW1ib2xzfSBpbiBhIHNwZWNpZmljIHBsYWNlLgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIncyBmdWxseS1zcGVjaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lLCB3aXRoICIucmVzb3VyY2VzIiBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIG5hbWUKKyAgICAgKiAoanVzdCBiZWZvcmUgdGhlIGNsYXNzIG5hbWUpIGFuZCAiU3ltYm9scyIgYXBwZW5kZWQgdG8gdGhlIGVuZC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJ1bmRsZSBjb3JyZXNwb25kaW5nIHRvICJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIgorICAgICAqIGlzICJjb20uaWJtLmljdS5pbXBsLmRhdGEuSGVicmV3Q2FsZW5kYXJTeW1ib2xzIi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaXRoaW4gdGhlIFJlc291cmNlQnVuZGxlLCB0aGlzIG1ldGhvZCBzZWFyY2hlcyBmb3IgZml2ZSBrZXlzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGF5TmFtZXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkLiAgRXZlbiB0aG91Z2gKKyAgICAgKiAgICAgIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBzdGFydHMgd2l0aCA8Y29kZT5TVU5EQVk8L2NvZGU+ID0gMSwKKyAgICAgKiAgICAgIFRoaXMgYXJyYXkgaXMgMC1iYXNlZDsgdGhlIG5hbWUgZm9yIFN1bmRheSBnb2VzIGluIHRoZQorICAgICAqICAgICAgZmlyc3QgcG9zaXRpb24sIGF0IGluZGV4IDAuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBkYXkgbmFtZXMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZQorICAgICAqICAgICAgZGVmYXVsdCA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkRheUFiYnJldmlhdGlvbnM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIGFiYnJldmlhdGVkIGRheSBuYW1lcyBjb3JyZXNwb25kaW5nCisgICAgICogICAgICB0byB0aGUgdmFsdWVzIGluIHRoZSAiRGF5TmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIkRheU5hbWVzIgorICAgICAqICAgICAgdmFsdWVzIGFyZSB1c2VkIGluc3RlYWQuICBJZiBuZWl0aGVyIGtleSBpcyBmb3VuZCwKKyAgICAgKiAgICAgIHRoZSBkYXkgYWJicmV2aWF0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIGRlZmF1bHQKKyAgICAgKiAgICAgIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5Nb250aE5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIG1vbnRoIG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5Nb250aEFiYnJldmlhdGlvbnM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIGFiYnJldmlhdGVkIGRheSBuYW1lcyBjb3JyZXNwb25kaW5nCisgICAgICogICAgICB0byB0aGUgdmFsdWVzIGluIHRoZSAiTW9udGhOYW1lcyIgYXJyYXkuICBJZiB0aGlzIGtleQorICAgICAqICAgICAgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsIHRoZSAiTW9udGhOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+RXJhczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZXJhIG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKiA8L3VsPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICAgICAgVGhlIGNhbGVuZGFyIHN5c3RlbSB3aG9zZSBkYXRlIGZvcm1hdCBzeW1ib2xzIGFyZSBkZXNpcmVkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgICAgVGhlIHVsb2NhbGUgd2hvc2Ugc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciBjYWwsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGxvY2FsZSwgY2FsLmdldFR5cGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFyaWFudCBvZiBEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciwgTG9jYWxlKSB0aGF0IHRha2VzIHRoZSBDYWxlbmRhciBjbGFzcworICAgICAqIGluc3RlYWQgb2YgYSBDYWxhbmRhciBpbnN0YW5jZS4KKyAgICAgKiBAc2VlICNEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciwgTG9jYWxlKQorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhDbGFzcyBjYWxlbmRhckNsYXNzLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoY2FsZW5kYXJDbGFzcywgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFyaWFudCBvZiBEYXRlRm9ybWF0U3ltYm9scyhDYWxlbmRhciwgVUxvY2FsZSkgdGhhdCB0YWtlcyB0aGUgQ2FsZW5kYXIgY2xhc3MKKyAgICAgKiBpbnN0ZWFkIG9mIGEgQ2FsYW5kYXIgaW5zdGFuY2UuCisgICAgICogQHNlZSAjRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIExvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhDbGFzcyBjYWxlbmRhckNsYXNzLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBjYWxlbmRhckNsYXNzLmdldE5hbWUoKTsKKyAgICAgICAgaW50IGxhc3REb3QgPSBmdWxsTmFtZS5sYXN0SW5kZXhPZignLicpOworICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZnVsbE5hbWUuc3Vic3RyaW5nKGxhc3REb3QrMSk7CisgICAgICAgIFN0cmluZyBjYWxUeXBlID0gVXRpbGl0eS5yZXBsYWNlQWxsKGNsYXNzTmFtZSwgIkNhbGVuZGFyIiwgIiIpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIAorICAgICAgICBpbml0aWFsaXplRGF0YShsb2NhbGUsIGNhbFR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZldGNoIGEgY3VzdG9tIGNhbGVuZGFyJ3MgRGF0ZUZvcm1hdFN5bWJvbHMgb3V0IG9mIHRoZSBnaXZlbiByZXNvdXJjZQorICAgICAqIGJ1bmRsZS4gIFN5bWJvbHMgdGhhdCBhcmUgbm90IG92ZXJyaWRkZW4gYXJlIGluaGVyaXRlZCBmcm9tIHRoZQorICAgICAqIGRlZmF1bHQgRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHNlZSBEYXRlRm9ybWF0U3ltYm9scyNEYXRlRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhSZXNvdXJjZUJ1bmRsZSBidW5kbGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhidW5kbGUsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZldGNoIGEgY3VzdG9tIGNhbGVuZGFyJ3MgRGF0ZUZvcm1hdFN5bWJvbHMgb3V0IG9mIHRoZSBnaXZlbiByZXNvdXJjZQorICAgICAqIGJ1bmRsZS4gIFN5bWJvbHMgdGhhdCBhcmUgbm90IG92ZXJyaWRkZW4gYXJlIGluaGVyaXRlZCBmcm9tIHRoZQorICAgICAqIGRlZmF1bHQgRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHNlZSBEYXRlRm9ybWF0U3ltYm9scyNEYXRlRm9ybWF0U3ltYm9scworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKFJlc291cmNlQnVuZGxlIGJ1bmRsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEobG9jYWxlLCAKKyAgICAgICAgICAgIG5ldyBDYWxlbmRhckRhdGEoKElDVVJlc291cmNlQnVuZGxlKWJ1bmRsZSwgbnVsbCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIFJlc291cmNlQnVuZGxlIGNvbnRhaW5pbmcgdGhlIGRhdGUgZm9ybWF0IGluZm9ybWF0aW9uIGZvcgorICAgICAqIGEgc3BlY2lmaWVkIGNhbGVuZGFyIHN1YmNsYXNzIGluIGEgZ2l2ZW4gbG9jYWxlLgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIncyBmdWxseS1zcGVjaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lLCB3aXRoICIucmVzb3VyY2VzIiBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIG5hbWUKKyAgICAgKiAoanVzdCBiZWZvcmUgdGhlIGNsYXNzIG5hbWUpIGFuZCAiU3ltYm9scyIgYXBwZW5kZWQgdG8gdGhlIGVuZC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJ1bmRsZSBjb3JyZXNwb25kaW5nIHRvICJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIgorICAgICAqIGlzICJjb20uaWJtLmljdS5pbXBsLmRhdGEuSGVicmV3Q2FsZW5kYXJTeW1ib2xzIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFJlc291cmNlQnVuZGxlIGdldERhdGVGb3JtYXRCdW5kbGUoQ2xhc3MgY2FsZW5kYXJDbGFzcywgTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRlRm9ybWF0QnVuZGxlKGNhbGVuZGFyQ2xhc3MsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgUmVzb3VyY2VCdW5kbGUgY29udGFpbmluZyB0aGUgZGF0ZSBmb3JtYXQgaW5mb3JtYXRpb24gZm9yCisgICAgICogYSBzcGVjaWZpZWQgY2FsZW5kYXIgc3ViY2xhc3MgaW4gYSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSBuYW1lIGlzIGJhc2VkIG9uIHRoZSBjYWxlbmRhcidzIGZ1bGx5LXNwZWNpZmllZAorICAgICAqIGNsYXNzIG5hbWUsIHdpdGggIi5yZXNvdXJjZXMiIGluc2VydGVkIGF0IHRoZSBlbmQgb2YgdGhlIHBhY2thZ2UgbmFtZQorICAgICAqIChqdXN0IGJlZm9yZSB0aGUgY2xhc3MgbmFtZSkgYW5kICJTeW1ib2xzIiBhcHBlbmRlZCB0byB0aGUgZW5kLgorICAgICAqIEZvciBleGFtcGxlLCB0aGUgYnVuZGxlIGNvcnJlc3BvbmRpbmcgdG8gImNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXIiCisgICAgICogaXMgImNvbS5pYm0uaWN1LmltcGwuZGF0YS5IZWJyZXdDYWxlbmRhclN5bWJvbHMiLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENsYXNzIGNhbGVuZGFyQ2xhc3MsIFVMb2NhbGUgbG9jYWxlKQorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgdGhlIGNhbGVuZGFyJ3MgY2xhc3MgbmFtZSwgd2hpY2ggd2UncmUgZ29pbmcgdG8gdXNlIHRvIGNvbnN0cnVjdCB0aGUKKyAgICAgICAgLy8gcmVzb3VyY2UgYnVuZGxlIG5hbWUuCisgICAgICAgIFN0cmluZyBmdWxsTmFtZSA9IGNhbGVuZGFyQ2xhc3MuZ2V0TmFtZSgpOworICAgICAgICBpbnQgbGFzdERvdCA9IGZ1bGxOYW1lLmxhc3RJbmRleE9mKCcuJyk7CisgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBmdWxsTmFtZS5zdWJzdHJpbmcobGFzdERvdCsxKTsKKworICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9IGNsYXNzTmFtZSArICJTeW1ib2xzIjsKKworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCBsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgLy8gY292ZXJhZ2UgcmVxdWlyZXMgdGVzdCB3aXRob3V0IGRhdGEsIHNvIHNraXAKKyAgICAgICAgICAgIC8vaWYgKCEoY2FsIGluc3RhbmNlb2YgR3JlZ29yaWFuQ2FsZW5kYXIpKSB7CisgICAgICAgICAgICBpZiAoIShHcmVnb3JpYW5DYWxlbmRhci5jbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGNhbGVuZGFyQ2xhc3MpKSkgeworICAgICAgICAgICAgICAgIC8vIE9rIGZvciBzeW1ib2xzIHRvIGJlIG1pc3NpbmcgZm9yIGEgR3JlZ29yaWFuIGNhbGVuZGFyLCBidXQKKyAgICAgICAgICAgICAgICAvLyBub3QgZm9yIGFueSBvdGhlciB0eXBlLgorICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhcmlhbnQgb2YgZ2V0RGF0ZUZvcm1hdEJ1bmRsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEudXRpbC5Mb2NhbGUpIHRoYXQgdGFrZXMKKyAgICAgKiBhIENhbGVuZGFyIGluc3RhbmNlIGluc3RlYWQgb2YgYSBDYWxlbmRhciBjbGFzcy4KKyAgICAgKiBAc2VlICNnZXREYXRlRm9ybWF0QnVuZGxlKGphdmEubGFuZy5DbGFzcywgamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldERhdGVGb3JtYXRCdW5kbGUoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKQorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVGb3JtYXRCdW5kbGUoY2FsLmdldENsYXNzKCksIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWYXJpYW50IG9mIGdldERhdGVGb3JtYXRCdW5kbGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLnV0aWwuTG9jYWxlKSB0aGF0IHRha2VzCisgICAgICogYSBDYWxlbmRhciBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEgQ2FsZW5kYXIgY2xhc3MuCisgICAgICogQHNlZSAjZ2V0RGF0ZUZvcm1hdEJ1bmRsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldERhdGVGb3JtYXRCdW5kbGUoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRlRm9ybWF0QnVuZGxlKGNhbC5nZXRDbGFzcygpLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSAqIDxpPmFjdHVhbDwvaT4KKyAgICAgKiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUgaXMKKyAgICAgKiBub3QsIGluIG1vc3QgY2FzZXMuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgICAgIHJldHVybiB0eXBlID09IFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSA/CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA6IHRoaXMudmFsaWRMb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSB0aGlzCisgICAgICogb2JqZWN0LiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsCisgICAgICogYm90aCBhcmd1bWVudHMgc2hvdWxkIGJlIHNldCB0byBudWxsLiAgT3RoZXJ3aXNlLCBuZWl0aGVyCisgICAgICogc2hvdWxkIGJlIG51bGwuICBUaGUgYWN0dWFsIGxvY2FsZSBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIG9yCisgICAgICogbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZAorICAgICAqIGZvciB1c2UgYnkgZmFjdG9yaWVzIG9yIG90aGVyIGVudGl0aWVzIHRoYXQgY3JlYXRlIG9iamVjdHMgb2YKKyAgICAgKiB0aGlzIGNsYXNzLgorICAgICAqIEBwYXJhbSB2YWxpZCB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UKKyAgICAgKiBkYXRhLCBvciBudWxsCisgICAgICogQHBhcmFtIGFjdHVhbCB0aGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzCisgICAgICogb2JqZWN0LCBvciBudWxsCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSB2YWxpZCwgVUxvY2FsZSBhY3R1YWwpIHsKKyAgICAgICAgLy8gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdG8gYW4gYXNzZXJ0aW9uIGxhdGVyCisgICAgICAgIGlmICgodmFsaWQgPT0gbnVsbCkgIT0gKGFjdHVhbCA9PSBudWxsKSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgLy8gQW5vdGhlciBjaGVjayB3ZSBjb3VsZCBkbyBpcyB0aGF0IHRoZSBhY3R1YWwgbG9jYWxlIGlzIGF0CisgICAgICAgIC8vIHRoZSBzYW1lIGxldmVsIG9yIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLgorICAgICAgICB0aGlzLnZhbGlkTG9jYWxlID0gdmFsaWQ7CisgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZSBkYXRhLCBvciBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHZhbGlkTG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QsIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisKKyAgICAvLyAtLS0tLS0tLSBFTkQgVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmI3YmEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxNTc3IEBACisvLyMjaGVhZGVyCisvLyNpZm5kZWYgRk9VTkRBVElPTgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEdvb2dsZSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwNi8wOS8xNSAxODowOToyNCAkCisgKiAkUmV2aXNpb246IDEuOSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5CaXRTZXQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCisvL2ltcG9ydCBvcmcudW5pY29kZS5jbGRyLnV0aWwuVXRpbGl0eTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUGF0dGVyblRva2VuaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5GcmVlemFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgZmxleGlibGUgZ2VuZXJhdGlvbiBvZiBkYXRlIGZvcm1hdCBwYXR0ZXJucywgbGlrZSAieXktTU0tZGQiLiBUaGUgdXNlciBjYW4gYnVpbGQgdXAgdGhlIGdlbmVyYXRvcgorICogYnkgYWRkaW5nIHN1Y2Nlc3NpdmUgcGF0dGVybnMuIE9uY2UgdGhhdCBpcyBkb25lLCBhIHF1ZXJ5IGNhbiBiZSBtYWRlIHVzaW5nIGEgInNrZWxldG9uIiwgd2hpY2ggaXMgYSBwYXR0ZXJuIHdoaWNoIGp1c3QKKyAqIGluY2x1ZGVzIHRoZSBkZXNpcmVkIGZpZWxkcyBhbmQgbGVuZ3Rocy4gVGhlIGdlbmVyYXRvciB3aWxsIHJldHVybiB0aGUgImJlc3QgZml0IiBwYXR0ZXJuIGNvcnJlc3BvbmRpbmcgdG8gdGhhdCBza2VsZXRvbi4KKyAqIDxwPlRoZSBtYWluIG1ldGhvZCBwZW9wbGUgd2lsbCB1c2UgaXMgZ2V0QmVzdFBhdHRlcm4oU3RyaW5nIHNrZWxldG9uKSwKKyAqIHNpbmNlIG5vcm1hbGx5IHRoaXMgY2xhc3MgaXMgcHJlLWJ1aWx0IHdpdGggZGF0YSBmcm9tIGEgcGFydGljdWxhciBsb2NhbGUuIEhvd2V2ZXIsIGdlbmVyYXRvcnMgY2FuIGJlIGJ1aWx0IGRpcmVjdGx5IGZyb20gb3RoZXIgZGF0YSBhcyB3ZWxsLgorICogPHA+PGk+SXNzdWU6IG1heSBiZSB1c2VmdWwgdG8gYWxzbyBoYXZlIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIGZpZWxkcyBpbiBhIHBhdHRlcm4sIGluIG9yZGVyLCBzaW5jZSB3ZSBoYXZlIHRoYXQgaW50ZXJuYWxseS4KKyAqIFRoYXQgd291bGQgYmUgdXNlZnVsIGZvciBnZXR0aW5nIHRoZSBVSSBvcmRlciBvZiBmaWVsZCBlbGVtZW50cy48L2k+CisgKiBAZHJhZnQgSUNVIDMuNgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgaW1wbGVtZW50cyBGcmVlemFibGUsIENsb25lYWJsZSB7CisgICAgLy8gZGVidWdnaW5nIGZsYWdzCisgICAgLy9zdGF0aWMgYm9vbGVhbiBTSE9XX0RJU1RBTkNFID0gZmFsc2U7CisgICAgLy8gVE9ETyBhZGQgaGFjayB0byBmaXggbW9udGhzIGZvciBDSkssIGFzIHBlciBidWcgMTA5OQorICAgIC8vIGh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vbG9jYWxlLWJ1Z3MvaW5jb21pbmc/ZmluZGlkPTEwOTkKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgZW1wdHkgZ2VuZXJhdG9yLCB0byBiZSBjb25zdHJ1Y3RlZCB3aXRoIGFkZCguLi4pIGV0Yy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIG5ld0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBPbmx5IGZvciB1c2UgYnkgc3ViY2xhc3NlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcigpIHsgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZmxleGlibGUgZ2VuZXJhdG9yIGFjY29yZGluZyB0byBkYXRhIGZvciBhIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBmbGV4aWJsZSBnZW5lcmF0b3IgYWNjb3JkaW5nIHRvIGRhdGEgZm9yIGEgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSB1TG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIHVMb2NhbGUpIHsKKyAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdCA9IG5ldyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IoKTsKKyAgICAgICAgUGF0dGVybkluZm8gcmV0dXJuSW5mbyA9IG5ldyBQYXR0ZXJuSW5mbygpOworICAgICAgICBTdHJpbmcgaGFja1BhdHRlcm4gPSBudWxsOworICAgICAgICAvLyBmaXJzdCBsb2FkIHdpdGggdGhlIElDVSBwYXR0ZXJucworICAgICAgICBmb3IgKGludCBpID0gRGF0ZUZvcm1hdC5GVUxMOyBpIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsraSkgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShpLCB1TG9jYWxlKTsKKyAgICAgICAgICAgIHJlc3VsdC5hZGQoZGYudG9QYXR0ZXJuKCksIGZhbHNlLCByZXR1cm5JbmZvKTsKKyAgICAgICAgICAgIGRmID0gKFNpbXBsZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGksIHVMb2NhbGUpOworICAgICAgICAgICAgcmVzdWx0LmFkZChkZi50b1BhdHRlcm4oKSwgZmFsc2UsIHJldHVybkluZm8pOworICAgICAgICAgICAgLy8gSEFDSyBmb3IgaGg6c3MKKyAgICAgICAgICAgIGlmIChpID09IERhdGVGb3JtYXQuTUVESVVNKSB7CisgICAgICAgICAgICAgICAgaGFja1BhdHRlcm4gPSBkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgcmIgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS5pYm0uaWN1LmltcGwuZGF0YS5EYXRlRGF0YSRNeURhdGVSZXNvdXJjZXMiLCB1TG9jYWxlKTsKKyAgICAgICAgLy9SZXNvdXJjZUJ1bmRsZSByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhLkRhdGVEYXRhJE15RGF0ZVJlc291cmNlcyIsIFVMb2NhbGUuRlJFTkNILnRvTG9jYWxlKCkpOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGVuID0gcmIuZ2V0S2V5cygpOyBlbi5oYXNNb3JlRWxlbWVudHMoKTspIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBlbi5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcmIuZ2V0U3RyaW5nKGtleSk7CisgICAgICAgICAgICBTdHJpbmcgW10ga2V5UGFydHMgPSBrZXkuc3BsaXQoIi8iKTsKKyAgICAgICAgICAgIGlmIChrZXlQYXJ0c1swXS5lcXVhbHMoInBhdHRlcm4iKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQodmFsdWUsIGZhbHNlLCByZXR1cm5JbmZvKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAgKGtleVBhcnRzWzBdLmVxdWFscygiYXBwZW5kIikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0QXBwZW5kSXRlbUZvcm1hdHMoZ2V0QXBwZW5kRm9ybWF0TnVtYmVyKGtleVBhcnRzWzFdKSwgdmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIGlmICAoa2V5UGFydHNbMF0uZXF1YWxzKCJmaWVsZCIpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldEFwcGVuZEl0ZW1OYW1lcyhnZXRBcHBlbmROYW1lTnVtYmVyKGtleVBhcnRzWzFdKSwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBhc3N1bWUgaXQgaXMgYWx3YXlzIGJpZyBlbmRpYW4gKG9rIGZvciBDTERSIHJpZ2h0IG5vdykKKyAgICAgICAgLy8gc29tZSBsYW5ndWFnZXMgZGlkbid0IGFkZCBtbTpzcyBvciBISDptbSwgc28gcHV0IGluIGEgaGFjayB0byBjb21wdXRlIHRoYXQgZnJvbSB0aGUgc2hvcnQgdGltZS4KKyAgICAgICAgaWYgKGhhY2tQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhhY2tUaW1lcyhyZXN1bHQsIHJldHVybkluZm8sIGhhY2tQYXR0ZXJuKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc2V0IHRoZSBkYXRldGltZSBwYXR0ZXJuLiBUaGlzIGlzIHVnbHkgY29kZSAtLSB0aGVyZSBzaG91bGQgYmUgYSBwdWJsaWMgaW50ZXJmYWNlIGZvciB0aGlzCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHVMb2NhbGUpOworICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEodUxvY2FsZSwgY2FsLmdldFR5cGUoKSk7CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0gY2FsRGF0YS5nZXQoIkRhdGVUaW1lUGF0dGVybnMiKS5nZXRTdHJpbmdBcnJheSgpOworICAgICAgICByZXN1bHQuc2V0RGF0ZVRpbWVGb3JtYXQocGF0dGVybnNbOF0pOworICAgICAgICAKKyAgICAgICAgLy8gZGVjaW1hbCBwb2ludCBmb3Igc2Vjb25kcworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHModUxvY2FsZSk7CisgICAgICAgIHJlc3VsdC5zZXREZWNpbWFsKFN0cmluZy52YWx1ZU9mKGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBoYWNrVGltZXMoRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdCwgUGF0dGVybkluZm8gcmV0dXJuSW5mbywgU3RyaW5nIGhhY2tQYXR0ZXJuKSB7CisgICAgICAgIHJlc3VsdC5mcC5zZXQoaGFja1BhdHRlcm4pOworICAgICAgICBTdHJpbmcgbW1zcyA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgLy8gdG8gZ2V0IG1tOnNzLCB3ZSBzdHJpcCBhbGwgYnV0IG1tIGxpdGVyYWwgc3MKKyAgICAgICAgYm9vbGVhbiBnb3RNbSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5mcC5pdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSByZXN1bHQuZnAuaXRlbXMuZ2V0KGkpOworICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ290TW0pIHsKKyAgICAgICAgICAgICAgICAgICAgbW1zcyArPSByZXN1bHQuZnAucXVvdGVMaXRlcmFsKGl0ZW0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gaXRlbS50b1N0cmluZygpLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ20nKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdE1tID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbW1zcyArPSBpdGVtOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJ3MnKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghZ290TW0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWlsZWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtbXNzICs9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQobW1zcywgZmFsc2UsIHJldHVybkluZm8pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdvdE1tIHx8IGNoID09ICd6JyB8fCBjaCA9PSAnWicgfHwgY2ggPT0gJ3YnIHx8IGNoID09ICdWJykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gZmFpbGVkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHRvIGdldCBoaDptbSwgd2Ugc3RyaXAgKGxpdGVyYWwgc3MpIGFuZCAobGl0ZXJhbCBTKQorICAgICAgICAvLyB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBtYXJrIHRoZSBzdHVmZiB3ZSB3YW50IHRvIG51a2UsIHRoZW4gcmVtb3ZlIGl0IGluIGEgc2Vjb25kIHBhc3MuCisgICAgICAgIEJpdFNldCB2YXJpYWJsZXMgPSBuZXcgQml0U2V0KCk7CisgICAgICAgIEJpdFNldCBudWtlID0gbmV3IEJpdFNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5mcC5pdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSByZXN1bHQuZnAuaXRlbXMuZ2V0KGkpOworICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgdmFyaWFibGVzLnNldChpKTsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gaXRlbS50b1N0cmluZygpLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ3MnIHx8IGNoID09ICdTJykgeworICAgICAgICAgICAgICAgICAgICBudWtlLnNldChpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGktMTsgaiA+PSAwOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZXMuZ2V0KGopKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51a2Uuc2V0KGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyBoaG1tID0gZ2V0RmlsdGVyZWRQYXR0ZXJuKHJlc3VsdC5mcCwgbnVrZSk7CisgICAgICAgIHJlc3VsdC5hZGQoaGhtbSwgZmFsc2UsIHJldHVybkluZm8pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RmlsdGVyZWRQYXR0ZXJuKEZvcm1hdFBhcnNlciBmcCwgQml0U2V0IG51a2UpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcC5pdGVtcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKG51a2UuZ2V0KGkpKSBjb250aW51ZTsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtID0gZnAuaXRlbXMuZ2V0KGkpOworICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gZnAucXVvdGVMaXRlcmFsKGl0ZW0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCArPSBpdGVtLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEFwcGVuZE5hbWVOdW1iZXIoU3RyaW5nIHN0cmluZykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENMRFJfRklFTERfTkFNRS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKENMRFJfRklFTERfTkFNRVtpXS5lcXVhbHMoc3RyaW5nKSkgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0QXBwZW5kRm9ybWF0TnVtYmVyKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDTERSX0ZJRUxEX0FQUEVORC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKENMRFJfRklFTERfQVBQRU5EW2ldLmVxdWFscyhzdHJpbmcpKSByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJlc3QgcGF0dGVybiBtYXRjaGluZyB0aGUgaW5wdXQgc2tlbGV0b24uIEl0IGlzIGd1YXJhbnRlZWQgdG8KKyAgICAgKiBoYXZlIGFsbCBvZiB0aGUgZmllbGRzIGluIHRoZSBza2VsZXRvbi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc2tlbGV0b24KKyAgICAgKiAgICAgICAgICAgIFRoZSBza2VsZXRvbiBpcyBhIHBhdHRlcm4gY29udGFpbmluZyBvbmx5IHRoZSB2YXJpYWJsZSBmaWVsZHMuCisgICAgICogICAgICAgICAgICBGb3IgZXhhbXBsZSwgIk1NTWRkIiBhbmQgIm1taGgiIGFyZSBza2VsZXRvbnMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJlc3RQYXR0ZXJuKFN0cmluZyBza2VsZXRvbikgeworICAgICAgICAvL2lmICghaXNDb21wbGV0ZSkgY29tcGxldGUoKTsKKyAgICAgICAgY3VycmVudC5zZXQoc2tlbGV0b24sIGZwKTsKKyAgICAgICAgU3RyaW5nIGJlc3QgPSBnZXRCZXN0UmF3KGN1cnJlbnQsIC0xLCBfZGlzdGFuY2VJbmZvKTsKKyAgICAgICAgaWYgKF9kaXN0YW5jZUluZm8ubWlzc2luZ0ZpZWxkTWFzayA9PSAwICYmIF9kaXN0YW5jZUluZm8uZXh0cmFGaWVsZE1hc2sgPT0gMCkgeworICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIGdvb2QgaXRlbS4gQWRqdXN0IHRoZSBmaWVsZCB0eXBlcworICAgICAgICAgICAgcmV0dXJuIGFkanVzdEZpZWxkVHlwZXMoYmVzdCwgY3VycmVudCwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGludCBuZWVkZWRGaWVsZHMgPSBjdXJyZW50LmdldEZpZWxkTWFzaygpOworICAgICAgICAvLyBvdGhlcndpc2UgYnJlYWsgdXAgYnkgZGF0ZSBhbmQgdGltZS4KKyAgICAgICAgU3RyaW5nIGRhdGVQYXR0ZXJuID0gZ2V0QmVzdEFwcGVuZGluZyhuZWVkZWRGaWVsZHMgJiBEQVRFX01BU0spOworICAgICAgICBTdHJpbmcgdGltZVBhdHRlcm4gPSBnZXRCZXN0QXBwZW5kaW5nKG5lZWRlZEZpZWxkcyAmIFRJTUVfTUFTSyk7CisgICAgICAgIAorICAgICAgICBpZiAoZGF0ZVBhdHRlcm4gPT0gbnVsbCkgcmV0dXJuIHRpbWVQYXR0ZXJuID09IG51bGwgPyAiIiA6IHRpbWVQYXR0ZXJuOworICAgICAgICBpZiAodGltZVBhdHRlcm4gPT0gbnVsbCkgcmV0dXJuIGRhdGVQYXR0ZXJuOworICAgICAgICByZXR1cm4gTWVzc2FnZUZvcm1hdC5mb3JtYXQoZ2V0RGF0ZVRpbWVGb3JtYXQoKSwgbmV3IE9iamVjdFtde2RhdGVQYXR0ZXJuLCB0aW1lUGF0dGVybn0pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQYXR0ZXJuSW5mbyBzdXBwbGllcyBvdXRwdXQgcGFyYW1ldGVycyBmb3IgYWRkKC4uLikuIEl0IGlzIHVzZWQgYmVjYXVzZQorICAgICAqIEphdmEgZG9lc24ndCBoYXZlIHJlYWwgb3V0cHV0IHBhcmFtZXRlcnMuIEl0IGlzIHRyZWF0ZWQgbGlrZSBhIHN0cnVjdCAoZWcKKyAgICAgKiBQb2ludCksIHNvIGFsbCBmaWVsZHMgYXJlIHB1YmxpYy4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGF0dGVybkluZm8geyAvLyBzdHJ1Y3QgZm9yIHJldHVybiBpbmZvcm1hdGlvbgorICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPSyA9IDA7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVNFX0NPTkZMSUNUID0gMTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTkZMSUNUID0gMjsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3RhdHVzOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjb25mbGljdGluZ1BhdHRlcm47CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogU2ltcGxlIGNvbnN0cnVjdG9yLCBzaW5jZSB0aGlzIGlzIHRyZWF0ZWQgbGlrZSBhIHN0cnVjdC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUGF0dGVybkluZm8oKSB7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIGZyb21IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiaGV4LWFueSIpOworICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgYSBwYXR0ZXJuIHRvIHRoZSBnZW5lcmF0b3IuIElmIHRoZSBwYXR0ZXJuIGhhcyB0aGUgc2FtZSBza2VsZXRvbiBhcworICAgICAqIGFuIGV4aXN0aW5nIHBhdHRlcm4sIGFuZCB0aGUgb3ZlcnJpZGUgcGFyYW1ldGVyIGlzIHNldCwgdGhlbiB0aGUgcHJldmlvdXMKKyAgICAgKiB2YWx1ZSBpcyBvdmVycmlkZW4uIE90aGVyd2lzZSwgdGhlIHByZXZpb3VzIHZhbHVlIGlzIHJldGFpbmVkLiBJbiBlaXRoZXIKKyAgICAgKiBjYXNlLCB0aGUgY29uZmxpY3RpbmcgaW5mb3JtYXRpb24gaXMgcmV0dXJuZWQgaW4gUGF0dGVybkluZm8uCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHNpbmdsZS1maWVsZCBwYXR0ZXJucyAobGlrZSAiTU1NIikgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQsIGFuZAorICAgICAqIGRvbid0IG5lZWQgdG8gYmUgYWRkZWQgZXhwbGljaXRseSEKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gb3ZlcnJpZGUKKyAgICAgKiAgICAgICAgICAgIHdoZW4gZXhpc3RpbmcgdmFsdWVzIGFyZSB0byBiZSBvdmVycmlkZGVuIHVzZSB0cnVlLCBvdGhlcndpc2UKKyAgICAgKiAgICAgICAgICAgIHVzZSBmYWxzZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgYWRkKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIG92ZXJyaWRlLCBQYXR0ZXJuSW5mbyByZXR1cm5JbmZvKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGlmIChwYXR0ZXJuLmluZGV4T2YoIlxcdSIpID49IDApIHsKKyAgICAgICAgICAgIFN0cmluZyBvbGRQYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBmcm9tSGV4LnRyYW5zbGl0ZXJhdGUocGF0dGVybik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIG1hdGNoZXIgPSBuZXcgRGF0ZVRpbWVNYXRjaGVyKCkuc2V0KHBhdHRlcm4sIGZwKTsKKyAgICAgICAgU3RyaW5nIGJhc2VQYXR0ZXJuID0gbWF0Y2hlci5nZXRCYXNlUGF0dGVybigpOworICAgICAgICBTdHJpbmcgcHJldmlvdXNQYXR0ZXJuV2l0aFNhbWVCYXNlID0gKFN0cmluZyliYXNlUGF0dGVybl9wYXR0ZXJuLmdldChiYXNlUGF0dGVybik7CisgICAgICAgIGlmIChwcmV2aW91c1BhdHRlcm5XaXRoU2FtZUJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuSW5mby5zdGF0dXMgPSBQYXR0ZXJuSW5mby5CQVNFX0NPTkZMSUNUOworICAgICAgICAgICAgcmV0dXJuSW5mby5jb25mbGljdGluZ1BhdHRlcm4gPSBwcmV2aW91c1BhdHRlcm5XaXRoU2FtZUJhc2U7CisgICAgICAgICAgICBpZiAoIW92ZXJyaWRlKSByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IChTdHJpbmcpc2tlbGV0b24ycGF0dGVybi5nZXQobWF0Y2hlcik7CisgICAgICAgIGlmIChwcmV2aW91c1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybkluZm8uc3RhdHVzID0gUGF0dGVybkluZm8uQ09ORkxJQ1Q7CisgICAgICAgICAgICByZXR1cm5JbmZvLmNvbmZsaWN0aW5nUGF0dGVybiA9IHByZXZpb3VzVmFsdWU7CisgICAgICAgICAgICBpZiAoIW92ZXJyaWRlKSByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm5JbmZvLnN0YXR1cyA9IFBhdHRlcm5JbmZvLk9LOworICAgICAgICByZXR1cm5JbmZvLmNvbmZsaWN0aW5nUGF0dGVybiA9ICIiOworICAgICAgICBza2VsZXRvbjJwYXR0ZXJuLnB1dChtYXRjaGVyLCBwYXR0ZXJuKTsKKyAgICAgICAgYmFzZVBhdHRlcm5fcGF0dGVybi5wdXQoYmFzZVBhdHRlcm4sIHBhdHRlcm4pOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0byByZXR1cm4gYSB1bmlxdWUgc2tlbGV0b24gZnJvbSBhIGdpdmVuIHBhdHRlcm4uIEZvciBleGFtcGxlLAorICAgICAqIGJvdGggIk1NTS1kZCIgYW5kICJkZC9NTU0iIHByb2R1Y2UgdGhlIHNrZWxldG9uICJNTU1kZCIuCisgICAgICogCisgICAgICogQHBhcmFtIHBhdHRlcm4KKyAgICAgKiAgICAgICAgICAgIElucHV0IHBhdHRlcm4sIHN1Y2ggYXMgImRkL01NTSIKKyAgICAgKiBAcmV0dXJuIHNrZWxldG9uLCBzdWNoIGFzICJNTU1kZCIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2tlbGV0b24oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7IC8vIHN5bmNocm9uaXplZCBzaW5jZSBhIGdldHRlciBtdXN0IGJlIHRocmVhZC1zYWZlCisgICAgICAgICAgICBjdXJyZW50LnNldChwYXR0ZXJuLCBmcCk7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdG8gcmV0dXJuIGEgdW5pcXVlIGJhc2Ugc2tlbGV0b24gZnJvbSBhIGdpdmVuIHBhdHRlcm4uIFRoaXMgaXMKKyAgICAgKiB0aGUgc2FtZSBhcyB0aGUgc2tlbGV0b24sIGV4Y2VwdCB0aGF0IGRpZmZlcmVuY2VzIGluIGxlbmd0aCBhcmUgbWluaW1pemVkCisgICAgICogc28gYXMgdG8gb25seSBwcmVzZXJ2ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHN0cmluZyBhbmQgbnVtZXJpYyBmb3JtLiBTbworICAgICAqIGZvciBleGFtcGxlLCBib3RoICJNTU0tZGQiIGFuZCAiZC9NTU0iIHByb2R1Y2UgdGhlIHNrZWxldG9uICJNTU1kIgorICAgICAqIChub3RpY2UgdGhlIHNpbmdsZSBkKS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcGF0dGVybgorICAgICAqICAgICAgICAgICAgSW5wdXQgcGF0dGVybiwgc3VjaCBhcyAiZGQvTU1NIgorICAgICAqIEByZXR1cm4gc2tlbGV0b24sIHN1Y2ggYXMgIk1NTWRkIgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCYXNlU2tlbGV0b24oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7IC8vIHN5bmNocm9uaXplZCBzaW5jZSBhIGdldHRlciBtdXN0IGJlIHRocmVhZC1zYWZlCisgICAgICAgICAgICBjdXJyZW50LnNldChwYXR0ZXJuLCBmcCk7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudC5nZXRCYXNlUGF0dGVybigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGxpc3Qgb2YgYWxsIHRoZSBza2VsZXRvbnMgKGluIGNhbm9uaWNhbCBmb3JtKSBmcm9tIHRoaXMgY2xhc3MsCisgICAgICogYW5kIHRoZSBwYXR0ZXJucyB0aGF0IHRoZXkgbWFwIHRvLgorICAgICAqIAorICAgICAqIEBwYXJhbSByZXN1bHQKKyAgICAgKiAgICAgICAgICAgIGFuIG91dHB1dCBNYXAgaW4gd2hpY2ggdG8gcGxhY2UgdGhlIG1hcHBpbmcgZnJvbSBza2VsZXRvbiB0bworICAgICAqICAgICAgICAgICAgcGF0dGVybi4gSWYgeW91IHdhbnQgdG8gc2VlIHRoZSBpbnRlcm5hbCBvcmRlciBiZWluZyB1c2VkLAorICAgICAqICAgICAgICAgICAgc3VwcGx5IGEgTGlua2VkSGFzaE1hcC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIG51bGwsIHRoZW4gYQorICAgICAqICAgICAgICAgICAgTGlua2VkSGFzaE1hcCBpcyBhbGxvY2F0ZWQuCisgICAgICogICAgICAgICAgICA8cD4KKyAgICAgKiAgICAgICAgICAgIDxpPklzc3VlOiBhbiBhbHRlcm5hdGUgQVBJIHdvdWxkIGJlIHRvIGp1c3QgcmV0dXJuIGEgbGlzdCBvZgorICAgICAqICAgICAgICAgICAgdGhlIHNrZWxldG9ucywgYW5kIHRoZW4gaGF2ZSBhIHNlcGFyYXRlIHJvdXRpbmUgdG8gZ2V0IGZyb20KKyAgICAgKiAgICAgICAgICAgIHNrZWxldG9uIHRvIHBhdHRlcm4uPC9pPgorICAgICAqIEByZXR1cm4gdGhlIGlucHV0IE1hcCBjb250YWluaW5nIHRoZSB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFNrZWxldG9ucyhNYXAgcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHNrZWxldG9uMnBhdHRlcm4ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIGl0ZW0gPSAoRGF0ZVRpbWVNYXRjaGVyKSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IChTdHJpbmcpIHNrZWxldG9uMnBhdHRlcm4uZ2V0KGl0ZW0pOworICAgICAgICAgICAgaWYgKENBTk9OSUNBTF9TRVQuY29udGFpbnMocGF0dGVybikpIGNvbnRpbnVlOworICAgICAgICAgICAgcmVzdWx0LnB1dChpdGVtLnRvU3RyaW5nKCksIHBhdHRlcm4pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGxpc3Qgb2YgYWxsIHRoZSBiYXNlIHNrZWxldG9ucyAoaW4gY2Fub25pY2FsIGZvcm0pIGZyb20gdGhpcyBjbGFzcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNldCBnZXRCYXNlU2tlbGV0b25zKFNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICByZXN1bHQuYWRkQWxsKGJhc2VQYXR0ZXJuX3BhdHRlcm4ua2V5U2V0KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGp1c3RzIHRoZSBmaWVsZCB0eXBlcyAod2lkdGggYW5kIHN1YnR5cGUpIG9mIGEgcGF0dGVybiB0byBtYXRjaCB3aGF0IGlzCisgICAgICogaW4gYSBza2VsZXRvbi4gVGhhdCBpcywgaWYgeW91IHN1cHBseSBhIHBhdHRlcm4gbGlrZSAiZC1NIEg6bSIsIGFuZCBhCisgICAgICogc2tlbGV0b24gb2YgIk1NTU1kZGhobW0iLCB0aGVuIHRoZSBpbnB1dCBwYXR0ZXJuIGlzIGFkanVzdGVkIHRvIGJlCisgICAgICogImRkLU1NTU0gaGg6bW0iLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSB0byBnZXQgdGhlIGJlc3QgbWF0Y2ggZm9yIHRoZQorICAgICAqIGlucHV0IHNrZWxldG9uLCBidXQgY2FuIGFsc28gYmUgdXNlZCBleHRlcm5hbGx5LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuCisgICAgICogICAgICAgICAgICBpbnB1dCBwYXR0ZXJuCisgICAgICogQHBhcmFtIHNrZWxldG9uCisgICAgICogQHJldHVybiBwYXR0ZXJuIGFkanVzdGVkIHRvIG1hdGNoIHRoZSBza2VsZXRvbiBmaWVsZHMgd2lkdGhzIGFuZAorICAgICAqICAgICAgICAgc3VidHlwZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHJlcGxhY2VGaWVsZFR5cGVzKFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgc2tlbGV0b24pIHsKKyAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7IC8vIHN5bmNocm9uaXplZCBzaW5jZSBhIGdldHRlciBtdXN0IGJlIHRocmVhZC1zYWZlCisgICAgICAgICAgICByZXR1cm4gYWRqdXN0RmllbGRUeXBlcyhwYXR0ZXJuLCBjdXJyZW50LnNldChza2VsZXRvbiwgZnApLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGRhdGUgdGltZSBmb3JtYXQgaXMgYSBtZXNzYWdlIGZvcm1hdCBwYXR0ZXJuIHVzZWQgdG8gY29tcG9zZSBkYXRlIGFuZAorICAgICAqIHRpbWUgcGF0dGVybnMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzICJ7MH0gezF9Iiwgd2hlcmUgezB9IHdpbGwgYmUgcmVwbGFjZWQKKyAgICAgKiBieSB0aGUgZGF0ZSBwYXR0ZXJuIGFuZCB7MX0gd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgdGltZSBwYXR0ZXJuLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgaXMgdXNlZCB3aGVuIHRoZSBpbnB1dCBza2VsZXRvbiBjb250YWlucyBib3RoIGRhdGUgYW5kIHRpbWUgZmllbGRzLAorICAgICAqIGJ1dCB0aGVyZSBpcyBub3QgYSBjbG9zZSBtYXRjaCBhbW9uZyB0aGUgYWRkZWQgcGF0dGVybnMuIEZvciBleGFtcGxlLAorICAgICAqIHN1cHBvc2UgdGhhdCB0aGlzIG9iamVjdCB3YXMgY3JlYXRlZCBieSBhZGRpbmcgImRkLU1NTSIgYW5kICJoaDptbSIsIGFuZAorICAgICAqIGl0cyBkYXRldGltZUZvcm1hdCBpcyB0aGUgZGVmYXVsdCAiezB9IHsxfSIuIFRoZW4gaWYgdGhlIGlucHV0IHNrZWxldG9uCisgICAgICogaXMgIk1NTWRobW0iLCB0aGVyZSBpcyBub3QgYW4gZXhhY3QgbWF0Y2gsIHNvIHRoZSBpbnB1dCBza2VsZXRvbiBpcworICAgICAqIGJyb2tlbiB1cCBpbnRvIHR3byBjb21wb25lbnRzICJNTU1kIiBhbmQgImhtbSIuIFRoZXJlIGFyZSBjbG9zZSBtYXRjaGVzCisgICAgICogZm9yIHRob3NlIHR3byBza2VsZXRvbnMsIHNvIHRoZSByZXN1bHQgaXMgcHV0IHRvZ2V0aGVyIHdpdGggdGhpcyBwYXR0ZXJuLAorICAgICAqIHJlc3VsdGluZyBpbiAiZC1NTU0gaDptbSIuCisgICAgICogCisgICAgICogQHBhcmFtIGRhdGVUaW1lRm9ybWF0CisgICAgICogICAgICAgICAgICBtZXNzYWdlIGZvcm1hdCBwYXR0ZXJuLCBoZXJlIHswfSB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBkYXRlCisgICAgICogICAgICAgICAgICBwYXR0ZXJuIGFuZCB7MX0gd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgdGltZSBwYXR0ZXJuLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGF0ZVRpbWVGb3JtYXQoU3RyaW5nIGRhdGVUaW1lRm9ybWF0KSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIHRoaXMuZGF0ZVRpbWVGb3JtYXQgPSBkYXRlVGltZUZvcm1hdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGVyIGNvcnJlc3BvbmRpbmcgdG8gc2V0RGF0ZVRpbWVGb3JtYXQuCisgICAgICogCisgICAgICogQHJldHVybiBwYXR0ZXJuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERhdGVUaW1lRm9ybWF0KCkgeworICAgICAgICByZXR1cm4gZGF0ZVRpbWVGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBkZWNpbWFsIHZhbHVlIGlzIHVzZWQgaW4gZm9ybWF0dGluZyBmcmFjdGlvbnMgb2Ygc2Vjb25kcy4gSWYgdGhlCisgICAgICogc2tlbGV0b24gY29udGFpbnMgZnJhY3Rpb25hbCBzZWNvbmRzLCB0aGVuIHRoaXMgaXMgdXNlZCB3aXRoIHRoZQorICAgICAqIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhhdCB0aGUgaW5wdXQgcGF0dGVybiBpcworICAgICAqICJoaG1tc3NTU1NTIiwgYW5kIHRoZSBiZXN0IG1hdGNoaW5nIHBhdHRlcm4gaW50ZXJuYWxseSBpcyAiSDptbTpzcyIsIGFuZAorICAgICAqIHRoZSBkZWNpbWFsIHN0cmluZyBpcyAiLCIuIFRoZW4gdGhlIHJlc3VsdGluZyBwYXR0ZXJuIGlzIG1vZGlmaWVkIHRvIGJlCisgICAgICogIkg6bW06c3MsU1NTUyIKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGVjaW1hbAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbChTdHJpbmcgZGVjaW1hbCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICB0aGlzLmRlY2ltYWwgPSBkZWNpbWFsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0ZXIgY29ycmVzcG9uZGluZyB0byBzZXREZWNpbWFsLgorICAgICAqIEByZXR1cm4gc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRlY2ltYWwgcG9pbnQKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVjaW1hbCgpIHsKKyAgICAgICAgcmV0dXJuIGRlY2ltYWw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlZHVuZGFudCBwYXR0ZXJucyBhcmUgdGhvc2Ugd2hpY2ggaWYgcmVtb3ZlZCwgbWFrZSBubyBkaWZmZXJlbmNlIGluIHRoZQorICAgICAqIHJlc3VsdGluZyBnZXRCZXN0UGF0dGVybiB2YWx1ZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRoZW0sIHRvCisgICAgICogaGVscCBjaGVjayB0aGUgY29uc2lzdGVuY3kgb2YgdGhlIHBhdHRlcm5zIHVzZWQgdG8gYnVpbGQgdGhpcyBnZW5lcmF0b3IuCisgICAgICogCisgICAgICogQHBhcmFtIG91dHB1dAorICAgICAqICAgICAgICAgICAgc3RvcmVzIHRoZSByZWR1bmRhbnQgcGF0dGVybnMgdGhhdCBhcmUgcmVtb3ZlZC4gVG8gZ2V0IHRoZXNlCisgICAgICogICAgICAgICAgICBpbiBpbnRlcm5hbCBvcmRlciwgc3VwcGx5IGEgTGlua2VkSGFzaFNldC4gSWYgbnVsbCwgYQorICAgICAqICAgICAgICAgICAgY29sbGVjdGlvbiBpcyBhbGxvY2F0ZWQuCisgICAgICogQHJldHVybiB0aGUgY29sbGVjdGlvbiB3aXRoIGFkZGVkIGVsZW1lbnRzLgorICAgICAqIEBkZXByZWNhdGVkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbGxlY3Rpb24gZ2V0UmVkdW5kYW50cyhDb2xsZWN0aW9uIG91dHB1dCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsgLy8gc3luY2hyb25pemVkIHNpbmNlIGEgZ2V0dGVyIG11c3QgYmUgdGhyZWFkLXNhZmUKKyAgICAgICAgICAgIGlmIChvdXRwdXQgPT0gbnVsbCkgb3V0cHV0ID0gbmV3IExpbmtlZEhhc2hTZXQoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBza2VsZXRvbjJwYXR0ZXJuLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBEYXRlVGltZU1hdGNoZXIgY3VycmVudCA9IChEYXRlVGltZU1hdGNoZXIpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IChTdHJpbmcpIHNrZWxldG9uMnBhdHRlcm4uZ2V0KGN1cnJlbnQpOworICAgICAgICAgICAgICAgIGlmIChDQU5PTklDQUxfU0VULmNvbnRhaW5zKHBhdHRlcm4pKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBza2lwTWF0Y2hlciA9IGN1cnJlbnQ7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gZ2V0QmVzdFBhdHRlcm4oY3VycmVudC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHJpYWwuZXF1YWxzKHBhdHRlcm4pKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dC5hZGQocGF0dGVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZhbHNlKSB7IC8vIG9yZGVyZWQKKyAgICAgICAgICAgICAgICBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgcmVzdWx0cyA9IG5ldyBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBQYXR0ZXJuSW5mbyBwaW5mbyA9IG5ldyBQYXR0ZXJuSW5mbygpOworICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBza2VsZXRvbjJwYXR0ZXJuLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIGN1cnJlbnQgPSAoRGF0ZVRpbWVNYXRjaGVyKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gKFN0cmluZykgc2tlbGV0b24ycGF0dGVybi5nZXQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChDQU5PTklDQUxfU0VULmNvbnRhaW5zKHBhdHRlcm4pKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy9za2lwTWF0Y2hlciA9IGN1cnJlbnQ7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0cmlhbCA9IHJlc3VsdHMuZ2V0QmVzdFBhdHRlcm4oY3VycmVudC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWFsLmVxdWFscyhwYXR0ZXJuKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuYWRkKHBhdHRlcm4sIGZhbHNlLCBwaW5mbyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb3V0cHV0OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEZpZWxkIG51bWJlcnMsIHVzZWQgZm9yIEFwcGVuZEl0ZW0gZnVuY3Rpb25zCisgICAgCisgICAgLyoqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgRVJBID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFlFQVIgPSAxOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFFVQVJURVIgPSAyOyAKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IE1PTlRIID0gMzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFdFRUtfT0ZfWUVBUiA9IDQ7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgV0VFS19PRl9NT05USCA9IDU7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgV0VFS0RBWSA9IDY7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgREFZID0gNzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IERBWV9PRl9ZRUFSID0gODsgCisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IDk7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgREFZUEVSSU9EID0gMTA7CisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBIT1VSID0gMTE7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgTUlOVVRFID0gMTI7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgU0VDT05EID0gMTM7IAorICAgIAorICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBpbnQgRlJBQ1RJT05BTF9TRUNPTkQgPSAxNDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgaW50IFpPTkUgPSAxNTsgCisgICAgCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIGludCBUWVBFX0xJTUlUID0gMTY7CisgICAgCisgICAgLyoqCisgICAgICogQW4gQXBwZW5kSXRlbSBmb3JtYXQgaXMgYSBwYXR0ZXJuIHVzZWQgdG8gYXBwZW5kIGEgZmllbGQgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBnb29kIG1hdGNoLiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IHRoZSBpbnB1dCBza2VsZXRvbiBpcyAiR3l5eXlNTU1kIiwKKyAgICAgKiBhbmQgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgcGF0dGVybiBpbnRlcm5hbGx5LCBidXQgdGhlcmUgaXMgYSBwYXR0ZXJuCisgICAgICogbWF0Y2hpbmcgInl5eXlNTU1kIiwgc2F5ICJkLU1NLXl5eXkiLiBUaGVuIHRoYXQgcGF0dGVybiBpcyB1c2VkLCBwbHVzIHRoZQorICAgICAqIEcuIFRoZSB3YXkgdGhlc2UgdHdvIGFyZSBjb25qb2luZWQgaXMgYnkgdXNpbmcgdGhlIEFwcGVuZEl0ZW1Gb3JtYXQgZm9yIEcKKyAgICAgKiAoZXJhKS4gU28gaWYgdGhhdCB2YWx1ZSBpcywgc2F5ICJ7MH0sIHsxfSIgdGhlbiB0aGUgZmluYWwgcmVzdWx0aW5nCisgICAgICogcGF0dGVybiBpcyAiZC1NTS15eXl5LCBHIi4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBhcmUgYWN0dWFsbHkgdGhyZWUgYXZhaWxhYmxlIHZhcmlhYmxlczogezB9IGlzIHRoZSBwYXR0ZXJuIHNvIGZhciwKKyAgICAgKiB7MX0gaXMgdGhlIGVsZW1lbnQgd2UgYXJlIGFkZGluZywgYW5kIHsyfSBpcyB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudC4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIHJlZmxlY3RzIHRoZSB3YXkgdGhhdCB0aGUgQ0xEUiBkYXRhIGlzIG9yZ2FuaXplZC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiAgICAgICAgICAgIHN1Y2ggYXMgRVJBCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogICAgICAgICAgICBwYXR0ZXJuLCBzdWNoIGFzICJ7MH0sIHsxfSIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFwcGVuZEl0ZW1Gb3JtYXRzKGludCBmaWVsZCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGFwcGVuZEl0ZW1Gb3JtYXRzW2ZpZWxkXSA9IHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0ZXIgY29ycmVzcG9uZGluZyB0byBzZXRBcHBlbmRJdGVtRm9ybWF0cy4gVmFsdWVzIGJlbG93IDAgb3IgYXQgb3IKKyAgICAgKiBhYm92ZSBUWVBFX0xJTUlUIGFyZSBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmllbGQKKyAgICAgKiBAcmV0dXJuIGFwcGVuZCBwYXR0ZXJuIGZvciBmaWVsZAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRBcHBlbmRJdGVtRm9ybWF0cyhpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZEl0ZW1Gb3JtYXRzW2ZpZWxkXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbmFtZXMgb2YgZmllbGRzLCBlZyAiZXJhIiBpbiBFbmdsaXNoIGZvciBFUkEuIFRoZXNlIGFyZSBvbmx5CisgICAgICogdXNlZCBpZiB0aGUgY29ycmVzcG9uZGluZyBBcHBlbmRJdGVtRm9ybWF0IGlzIHVzZWQsIGFuZCBpZiBpdCBjb250YWlucyBhCisgICAgICogezJ9IHZhcmlhYmxlLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgcmVmbGVjdHMgdGhlIHdheSB0aGF0IHRoZSBDTERSIGRhdGEgaXMgb3JnYW5pemVkLgorICAgICAqIAorICAgICAqIEBwYXJhbSBmaWVsZAorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QXBwZW5kSXRlbU5hbWVzKGludCBmaWVsZCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGFwcGVuZEl0ZW1OYW1lc1tmaWVsZF0gPSB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGVyIGNvcnJlc3BvbmRpbmcgdG8gc2V0QXBwZW5kSXRlbU5hbWVzLiBWYWx1ZXMgYmVsb3cgMCBvciBhdCBvciBhYm92ZQorICAgICAqIFRZUEVfTElNSVQgYXJlIGlsbGVnYWwgYXJndW1lbnRzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBmaWVsZAorICAgICAqIEByZXR1cm4gbmFtZSBmb3IgZmllbGQKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXBwZW5kSXRlbU5hbWVzKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gYXBwZW5kSXRlbU5hbWVzW2ZpZWxkXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2tlbGV0b24gY29udGFpbnMgYSBzaW5nbGUgZmllbGQKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc2tlbGV0b24KKyAgICAgKiBAcmV0dXJuIHRydWUgb3Igbm90CisgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTaW5nbGVGaWVsZChTdHJpbmcgc2tlbGV0b24pIHsKKyAgICAgICAgY2hhciBmaXJzdCA9IHNrZWxldG9uLmNoYXJBdCgwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBza2VsZXRvbi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc2tlbGV0b24uY2hhckF0KGkpICE9IGZpcnN0KSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIGZvciBGcmVlemFibGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJvemVuKCkgeworICAgICAgICByZXR1cm4gZnJvemVuOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBmb3IgRnJlZXphYmxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpIHsKKyAgICAgICAgZnJvemVuID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIGZvciBGcmVlemFibGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmVBc1RoYXdlZCgpIHsKKyAgICAgICAgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIHJlc3VsdCA9IChEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IpICh0aGlzLmNsb25lKCkpOworICAgICAgICBmcm96ZW4gPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgcmVzdWx0ID0gKERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcikgKHN1cGVyLmNsb25lKCkpOworICAgICAgICAgICAgcmVzdWx0LnNrZWxldG9uMnBhdHRlcm4gPSAoVHJlZU1hcCkgc2tlbGV0b24ycGF0dGVybi5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmJhc2VQYXR0ZXJuX3BhdHRlcm4gPSAoVHJlZU1hcCkgYmFzZVBhdHRlcm5fcGF0dGVybi5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZEl0ZW1Gb3JtYXRzID0gKFN0cmluZ1tdKSBhcHBlbmRJdGVtRm9ybWF0cy5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZEl0ZW1OYW1lcyA9IChTdHJpbmdbXSkgYXBwZW5kSXRlbU5hbWVzLmNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuY3VycmVudCA9IG5ldyBEYXRlVGltZU1hdGNoZXIoKTsKKyAgICAgICAgICAgIHJlc3VsdC5mcCA9IG5ldyBGb3JtYXRQYXJzZXIoKTsKKyAgICAgICAgICAgIHJlc3VsdC5fZGlzdGFuY2VJbmZvID0gbmV3IERpc3RhbmNlSW5mbygpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQuZnJvemVuID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgY2xhc3MgZm9yIEZvcm1hdFBhcnNlci4gSW1tdXRhYmxlIGNsYXNzLgorICAgICAqIEBkZXByZWNhdGVkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBWYXJpYWJsZUZpZWxkIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc3RyaW5nOworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgdmFyaWFibGUgZmllbGQKKyAgICAgICAgICogQHBhcmFtIHN0cmluZworICAgICAgICAgKiBAZGVwcmVjYXRlZAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBWYXJpYWJsZUZpZWxkKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgdGhlIGludGVybmFsIHJlc3VsdHMKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDbGFzcyBwcm92aWRpbmcgZGF0ZSBmb3JtYXR0aW5nCisgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGNsYXNzIEZvcm1hdFBhcnNlciB7CisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IFBhdHRlcm5Ub2tlbml6ZXIgdG9rZW5pemVyID0gbmV3IFBhdHRlcm5Ub2tlbml6ZXIoKQorICAgICAgICAuc2V0U3ludGF4Q2hhcmFjdGVycyhuZXcgVW5pY29kZVNldCgiW2EtekEtWl0iKSkKKyAgICAgICAgLy8uc2V0RXNjYXBlQ2hhcmFjdGVycyhuZXcgVW5pY29kZVNldCgiW15cXHUwMDIwLVxcdTAwN0VdIikpIC8vIFdBUk5JTkc6IERhdGVGb3JtYXQgZG9lc24ndCBhY2NlcHQgXFx1WFhYWAorICAgICAgICAuc2V0VXNpbmdRdW90ZSh0cnVlKTsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IGl0ZW1zID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRm9ybWF0UGFyc2VyIHNldChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgICAgICBpdGVtcy5jbGVhcigpOworICAgICAgICAgICAgaWYgKHN0cmluZy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gdGhpczsKKyAgICAgICAgICAgIHRva2VuaXplci5zZXRQYXR0ZXJuKHN0cmluZyk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHZhcmlhYmxlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGludCBzdGF0dXMgPSB0b2tlbml6ZXIubmV4dChidWZmZXIpOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gUGF0dGVyblRva2VuaXplci5ET05FKSBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFBhdHRlcm5Ub2tlbml6ZXIuU1lOVEFYKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZS5sZW5ndGgoKSAhPSAwICYmIGJ1ZmZlci5jaGFyQXQoMCkgIT0gdmFyaWFibGUuY2hhckF0KDApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRWYXJpYWJsZSh2YXJpYWJsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUuYXBwZW5kKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkVmFyaWFibGUodmFyaWFibGUpOworICAgICAgICAgICAgICAgICAgICBpdGVtcy5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFkZFZhcmlhYmxlKHZhcmlhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgYWRkVmFyaWFibGUoU3RyaW5nQnVmZmVyIHZhcmlhYmxlKSB7CisgICAgICAgICAgICBpZiAodmFyaWFibGUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGl0ZW1zLmFkZChuZXcgVmFyaWFibGVGaWVsZCh2YXJpYWJsZS50b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgdmFyaWFibGUuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiogUmV0dXJuIGEgY29sbGVjdGlvbiBvZiBmaWVsZHMuIFRoZXNlIHdpbGwgYmUgYSBtaXh0dXJlIG9mIFN0cmluZ3MgYW5kIFZhcmlhYmxlRmllbGRzLiBBbnkgImEiIHZhcmlhYmxlIGZpZWxkIGlzIHJlbW92ZWQuCisgICAgICAgICAqIEBwYXJhbSBvdXRwdXQgTGlzdCB0byBhcHBlbmQgdGhlIGl0ZW1zIHRvLiBJZiBudWxsLCBpcyBhbGxvY2F0ZWQgYXMgYW4gQXJyYXlMaXN0LgorICAgICAgICAgKiBAcmV0dXJuIGxpc3QKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgTGlzdCBnZXRWYXJpYWJsZUZpZWxkcyhMaXN0IG91dHB1dCkgeworICAgICAgICAgICAgaWYgKG91dHB1dCA9PSBudWxsKSBvdXRwdXQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICBtYWluOgorICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtcy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFZhcmlhYmxlRmllbGQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gaXRlbS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHMuY2hhckF0KDApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2Nhc2UgJ1EnOiBjb250aW51ZSBtYWluOyAvLyBIQUNLCisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdhJzogY29udGludWUgbWFpbjsgLy8gcmVtb3ZlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQuYWRkKHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4ob3V0cHV0KTsKKyAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHdoaWNoIGlzIGEgY29uY2F0ZW5hdGlvbiBvZiBhbGwgdGhlIHZhcmlhYmxlIGZpZWxkcworICAgICAgICAgKiBAZGVwcmVjYXRlZAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFyaWFibGVGaWVsZFN0cmluZygpIHsKKyAgICAgICAgICAgIExpc3QgbGlzdCA9IGdldFZhcmlhYmxlRmllbGRzKG51bGwpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBsaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBtb2RpZmlhYmxlIGxpc3Qgd2hpY2ggaXMgYSBtaXh0dXJlIG9mIFN0cmluZ3MgYW5kIFZhcmlhYmxlRmllbGRzLCBpbiB0aGUgb3JkZXIgZm91bmQgZHVyaW5nIHBhcnNpbmcuCisgICAgICAgICAqIEByZXR1cm4gbW9kaWZpYWJsZSBsaXN0IG9mIGl0ZW1zLgorICAgICAgICAgKiBAZGVwcmVjYXRlZAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBMaXN0IGdldEl0ZW1zKCkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiogUHJvdmlkZSBkaXNwbGF5IGZvcm0gb2YgZm9ybWF0dGVkIGlucHV0CisgICAgICAgICAqIEByZXR1cm4gcHJpbnRhYmxlIG91dHB1dCBzdHJpbmcKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKDAsIGl0ZW1zLnNpemUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBQcm92aWRlIGRpc3BsYXkgZm9ybSBvZiBmb3JtYXR0ZWQgaW5wdXQKKyAgICAgICAgICogQHBhcmFtIHN0YXJ0IGl0ZW0gdG8gc3RhcnQgZnJvbQorICAgICAgICAgKiBAcGFyYW0gbGltaXQgbGFzdCBpdGVtICsxCisgICAgICAgICAqIEByZXR1cm4gcHJpbnRhYmxlIG91dHB1dCBzdHJpbmcKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlbXMuZ2V0KGkpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgbWV0aG9kIDxwPgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgaXQgaGFzIGEgbWl4dHVyZSBvZiBkYXRlIGFuZCB0aW1lIGZpZWxkcworICAgICAgICAgKiBAcmV0dXJuIHRydWUgb3IgZmFsc2UKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNEYXRlQW5kVGltZUZpZWxkcygpIHsKKyAgICAgICAgICAgIGludCBmb3VuZE1hc2sgPSAwOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGl0ZW1zLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFZhcmlhYmxlRmllbGQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBnZXRUeXBlKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICBmb3VuZE1hc2sgfD0gMSA8PCB0eXBlOyAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIGlzRGF0ZSA9IChmb3VuZE1hc2sgJiBEQVRFX01BU0spICE9IDA7CisgICAgICAgICAgICBib29sZWFuIGlzVGltZSA9IChmb3VuZE1hc2sgJiBUSU1FX01BU0spICE9IDA7CisgICAgICAgICAgICByZXR1cm4gaXNEYXRlICYmIGlzVGltZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIHJvdXRpbmUKKyAgICAgICAgICogQHBhcmFtIHZhbHVlCisgICAgICAgICAqIEBwYXJhbSByZXN1bHQKKyAgICAgICAgICogQHJldHVybiBsaXN0CisgICAgICAgICAqIEBkZXByZWNhdGVkCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIExpc3QgZ2V0QXV0b1BhdHRlcm5zKFN0cmluZyB2YWx1ZSwgTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgaW50IGZpZWxkQ291bnQgPSAwOworICAgICAgICAgICAgaW50IG1pbkZpZWxkID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICBpbnQgbWF4RmllbGQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtcy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGdldFR5cGUoaXRlbSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWluRmllbGQgPiB0eXBlKSBtaW5GaWVsZCA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4RmllbGQgPCB0eXBlKSBtYXhGaWVsZCA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBaT05FIHx8IHR5cGUgPT0gREFZUEVSSU9EIHx8IHR5cGUgPT0gV0VFS0RBWSkgcmV0dXJuIHJlc3VsdDsgLy8gc2tpcCBhbnl0aGluZyB3aXRoIHpvbmVzICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIGlmIHRoZXJlIGFyZSBhbnkgZnVubnkgZmllbGRzLCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaWVsZENvdW50IDwgMykgcmV0dXJuIHJlc3VsdDsgLy8gc2tpcAorICAgICAgICAgICAgLy8gdHJpbSBmcm9tIHN0YXJ0CisgICAgICAgICAgICAvLyB0cmltIGZpcnN0IGZpZWxkIElGIHRoZXJlIGFyZSBubyBsZXR0ZXJzIGFyb3VuZCBpdAorICAgICAgICAgICAgLy8gYW5kIGl0IGlzIGVpdGhlciB0aGUgbWluIG9yIHRoZSBtYXggZmllbGQKKyAgICAgICAgICAgIC8vIGZpcnN0IGZpZWxkIGlzIGVpdGhlciAwIG9yIDEKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgaXRlbSA9IGl0ZW1zLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFZhcmlhYmxlRmllbGQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBnZXRUeXBlKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBtaW5GaWVsZCAmJiB0eXBlICE9IG1heEZpZWxkKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHByZXZpb3VzSXRlbSA9IGl0ZW1zLmdldCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbHBoYS5jb250YWluc1NvbWUocHJldmlvdXNJdGVtLnRvU3RyaW5nKCkpKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBpKzE7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IGl0ZW1zLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG5leHRJdGVtID0gaXRlbXMuZ2V0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXRlbSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbHBoYS5jb250YWluc1NvbWUobmV4dEl0ZW0udG9TdHJpbmcoKSkpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7IC8vIG90aGVyd2lzZSBza2lwIG92ZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0b1N0cmluZyhzdGFydCwgaXRlbXMuc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG5vdyB0cmltIGZyb20gZW5kCisgICAgICAgICAgICBmb3IgKGludCBpID0gaXRlbXMuc2l6ZSgpLTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdGVtcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBWYXJpYWJsZUZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT0gbWluRmllbGQgJiYgdHlwZSAhPSBtYXhGaWVsZCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGlmIChpIDwgaXRlbXMuc2l6ZSgpIC0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHByZXZpb3VzSXRlbSA9IGl0ZW1zLmdldChpdGVtcy5zaXplKCkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbHBoYS5jb250YWluc1NvbWUocHJldmlvdXNJdGVtLnRvU3RyaW5nKCkpKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gaS0xOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG5leHRJdGVtID0gaXRlbXMuZ2V0KGVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEl0ZW0gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxwaGEuY29udGFpbnNTb21lKG5leHRJdGVtLnRvU3RyaW5nKCkpKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtLTsgLy8gb3RoZXJ3aXNlIHNraXAgb3ZlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHRvU3RyaW5nKDAsIGVuZCsxKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBhbHBoYSA9IG5ldyBVbmljb2RlU2V0KCJbOmFscGhhYmV0aWM6XSIpOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgZ2V0VHlwZShPYmplY3QgaXRlbSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBpdGVtLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpbnQgY2Fub25pY2FsSW5kZXggPSBnZXRDYW5vbmljYWxJbmRleChzKTsKKyAgICAgICAgICAgIGlmIChjYW5vbmljYWxJbmRleCA8IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGZpZWxkOlx0IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB0eXBlID0gdHlwZXNbY2Fub25pY2FsSW5kZXhdWzFdOworICAgICAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiAgcHJvZHVjZSBhIHF1b3RlZCBsaXRlcmFsCisgICAgICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgICAgICogQHJldHVybiBzdHJpbmcgd2l0aCBxdW90ZWQgbGl0ZXJhbHMKKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IHF1b3RlTGl0ZXJhbChTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gdG9rZW5pemVyLnF1b3RlTGl0ZXJhbChzdHJpbmcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogU2ltcGxlIGNvbnN0cnVjdG9yLCBzaW5jZSB0aGlzIGlzIHRyZWF0ZWQgbGlrZSBhIHN0cnVjdC4KKyAgICAgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRm9ybWF0UGFyc2VyKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YgorICAgICAgICB9CisgICAgfQorICAgIC8vID09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT0KKyAgICAKKyAgICBwcml2YXRlIFRyZWVNYXAgc2tlbGV0b24ycGF0dGVybiA9IG5ldyBUcmVlTWFwKCk7IC8vIGl0ZW1zIGFyZSBpbiBwcmlvcml0eSBvcmRlcgorICAgIHByaXZhdGUgVHJlZU1hcCBiYXNlUGF0dGVybl9wYXR0ZXJuID0gbmV3IFRyZWVNYXAoKTsgLy8gaXRlbXMgYXJlIGluIHByaW9yaXR5IG9yZGVyCisgICAgcHJpdmF0ZSBTdHJpbmcgZGVjaW1hbCA9ICI/IjsKKyAgICBwcml2YXRlIFN0cmluZyBkYXRlVGltZUZvcm1hdCA9ICJ7MH0gezF9IjsKKyAgICBwcml2YXRlIFN0cmluZ1tdIGFwcGVuZEl0ZW1Gb3JtYXRzID0gbmV3IFN0cmluZ1tUWVBFX0xJTUlUXTsKKyAgICBwcml2YXRlIFN0cmluZ1tdIGFwcGVuZEl0ZW1OYW1lcyA9IG5ldyBTdHJpbmdbVFlQRV9MSU1JVF07CisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRZUEVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgYXBwZW5kSXRlbUZvcm1hdHNbaV0gPSAiezB9IFx1MjUxQ3syfTogezF9XHUyNTI0IjsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW1OYW1lc1tpXSA9ICJGIiArIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGF0ZVRpbWVNYXRjaGVyIGN1cnJlbnQgPSBuZXcgRGF0ZVRpbWVNYXRjaGVyKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRm9ybWF0UGFyc2VyIGZwID0gbmV3IEZvcm1hdFBhcnNlcigpOworICAgIHByaXZhdGUgdHJhbnNpZW50IERpc3RhbmNlSW5mbyBfZGlzdGFuY2VJbmZvID0gbmV3IERpc3RhbmNlSW5mbygpOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gaXNDb21wbGV0ZSA9IGZhbHNlOworICAgIHByaXZhdGUgdHJhbnNpZW50IERhdGVUaW1lTWF0Y2hlciBza2lwTWF0Y2hlciA9IG51bGw7IC8vIG9ubHkgdXNlZCB0ZW1wb3JhcmlseSwgZm9yIGludGVybmFsIHB1cnBvc2VzCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBmcm96ZW4gPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05BTF9NQVNLID0gMTw8RlJBQ1RJT05BTF9TRUNPTkQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFQ09ORF9BTkRfRlJBQ1RJT05BTF9NQVNLID0gKDE8PFNFQ09ORCkgfCAoMTw8RlJBQ1RJT05BTF9TRUNPTkQpOworICAgIAorICAgIHByaXZhdGUgdm9pZCBjaGVja0Zyb3plbigpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgZnJvemVuIG9iamVjdCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFdlIG9ubHkgZ2V0IGNhbGxlZCBoZXJlIGlmIHdlIGZhaWxlZCB0byBmaW5kIGFuIGV4YWN0IHNrZWxldG9uLiBXZSBoYXZlIGJyb2tlbiBpdCBpbnRvIGRhdGUgKyB0aW1lLCBhbmQgbG9vayBmb3IgdGhlIHBpZWNlcy4KKyAgICAgKiBJZiB3ZSBmYWlsIHRvIGZpbmQgYSBjb21wbGV0ZSBza2VsZXRvbiwgd2UgY29tcG9zZSBpbiBhIGxvb3AgdW50aWwgd2UgaGF2ZSBhbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRCZXN0QXBwZW5kaW5nKGludCBtaXNzaW5nRmllbGRzKSB7CisgICAgICAgIFN0cmluZyByZXN1bHRQYXR0ZXJuID0gbnVsbDsKKyAgICAgICAgaWYgKG1pc3NpbmdGaWVsZHMgIT0gMCkgeworICAgICAgICAgICAgcmVzdWx0UGF0dGVybiA9IGdldEJlc3RSYXcoY3VycmVudCwgbWlzc2luZ0ZpZWxkcywgX2Rpc3RhbmNlSW5mbyk7CisgICAgICAgICAgICByZXN1bHRQYXR0ZXJuID0gYWRqdXN0RmllbGRUeXBlcyhyZXN1bHRQYXR0ZXJuLCBjdXJyZW50LCBmYWxzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChfZGlzdGFuY2VJbmZvLm1pc3NpbmdGaWVsZE1hc2sgIT0gMCkgeyAvLyBwcmVjb25kaXRpb246IEVWRVJZIHNpbmdsZSBmaWVsZCBtdXN0IHdvcmshCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBoYWNrIGZvciBTU1MuIElmIHdlIGFyZSBtaXNzaW5nIFNTUywgYW5kIHdlIGhhZCBzcyBidXQgZm91bmQgaXQsIHJlcGxhY2UgdGhlIHMgZmllbGQgYWNjb3JkaW5nIHRvIHRoZSAKKyAgICAgICAgICAgICAgICAvLyBudW1iZXIgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgaWYgKChfZGlzdGFuY2VJbmZvLm1pc3NpbmdGaWVsZE1hc2sgJiBTRUNPTkRfQU5EX0ZSQUNUSU9OQUxfTUFTSykgPT0gRlJBQ1RJT05BTF9NQVNLCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAobWlzc2luZ0ZpZWxkcyAmIFNFQ09ORF9BTkRfRlJBQ1RJT05BTF9NQVNLKSA9PSBTRUNPTkRfQU5EX0ZSQUNUSU9OQUxfTUFTSykgeworICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXR0ZXJuID0gYWRqdXN0RmllbGRUeXBlcyhyZXN1bHRQYXR0ZXJuLCBjdXJyZW50LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgX2Rpc3RhbmNlSW5mby5taXNzaW5nRmllbGRNYXNrICY9IH5GUkFDVElPTkFMX01BU0s7IC8vIHJlbW92ZSBiaXQKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBzdGFydGluZ01hc2sgPSBfZGlzdGFuY2VJbmZvLm1pc3NpbmdGaWVsZE1hc2s7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBnZXRCZXN0UmF3KGN1cnJlbnQsIF9kaXN0YW5jZUluZm8ubWlzc2luZ0ZpZWxkTWFzaywgX2Rpc3RhbmNlSW5mbyk7CisgICAgICAgICAgICAgICAgdGVtcCA9IGFkanVzdEZpZWxkVHlwZXModGVtcCwgY3VycmVudCwgZmFsc2UpOworICAgICAgICAgICAgICAgIGludCBmb3VuZE1hc2sgPSBzdGFydGluZ01hc2sgJiB+X2Rpc3RhbmNlSW5mby5taXNzaW5nRmllbGRNYXNrOworICAgICAgICAgICAgICAgIGludCB0b3BGaWVsZCA9IGdldFRvcEJpdE51bWJlcihmb3VuZE1hc2spOworICAgICAgICAgICAgICAgIHJlc3VsdFBhdHRlcm4gPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChnZXRBcHBlbmRGb3JtYXQodG9wRmllbGQpLCBuZXcgT2JqZWN0W117cmVzdWx0UGF0dGVybiwgdGVtcCwgZ2V0QXBwZW5kTmFtZSh0b3BGaWVsZCl9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0UGF0dGVybjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0QXBwZW5kTmFtZShpbnQgZm91bmRNYXNrKSB7CisgICAgICAgIHJldHVybiAiJyIgKyBhcHBlbmRJdGVtTmFtZXNbZm91bmRNYXNrXSArICInIjsKKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0QXBwZW5kRm9ybWF0KGludCBmb3VuZE1hc2spIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZEl0ZW1Gb3JtYXRzW2ZvdW5kTWFza107CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBjdXJyZW50MgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBhZGp1c3RTZWNvbmRzKERhdGVUaW1lTWF0Y2hlciBjdXJyZW50MikgeworICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZm91bmRNYXNrCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFRvcEJpdE51bWJlcihpbnQgZm91bmRNYXNrKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGZvdW5kTWFzayAhPSAwKSB7CisgICAgICAgICAgICBmb3VuZE1hc2sgPj4+PSAxOworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wbGV0ZSgpIHsKKyAgICAgICAgUGF0dGVybkluZm8gcGF0dGVybkluZm8gPSBuZXcgUGF0dGVybkluZm8oKTsKKyAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgZXZlcnkgdmFsaWQgZmllbGQgb2NjdXJzIG9uY2UsIHdpdGggYSAiZGVmYXVsdCIgbGVuZ3RoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ0FOT05JQ0FMX0lURU1TLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSAoY2hhcil0eXBlc1tpXVswXTsKKyAgICAgICAgICAgIGFkZChTdHJpbmcudmFsdWVPZihDQU5PTklDQUxfSVRFTVNbaV0pLCBmYWxzZSwgcGF0dGVybkluZm8pOworICAgICAgICB9CisgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOworICAgIH0KKyAgICB7CisgICAgICAgIGNvbXBsZXRlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGdldEJlc3RSYXcoRGF0ZVRpbWVNYXRjaGVyIHNvdXJjZSwgaW50IGluY2x1ZGVNYXNrLCBEaXN0YW5jZUluZm8gbWlzc2luZ0ZpZWxkcykgeworLy8gICAgICBpZiAoU0hPV19ESVNUQU5DRSkgU3lzdGVtLm91dC5wcmludGxuKCJTZWFyY2hpbmcgZm9yOiAiICsgc291cmNlLnBhdHRlcm4gCisvLyAgICAgICsgIiwgbWFzazogIiArIHNob3dNYXNrKGluY2x1ZGVNYXNrKSk7CisgICAgICAgIGludCBiZXN0RGlzdGFuY2UgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgU3RyaW5nIGJlc3RQYXR0ZXJuID0gIiI7CisgICAgICAgIERpc3RhbmNlSW5mbyB0ZW1wSW5mbyA9IG5ldyBEaXN0YW5jZUluZm8oKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHNrZWxldG9uMnBhdHRlcm4ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgRGF0ZVRpbWVNYXRjaGVyIHRyaWFsID0gKERhdGVUaW1lTWF0Y2hlcikgaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKHRyaWFsLmVxdWFscyhza2lwTWF0Y2hlcikpIGNvbnRpbnVlOworICAgICAgICAgICAgaW50IGRpc3RhbmNlID0gc291cmNlLmdldERpc3RhbmNlKHRyaWFsLCBpbmNsdWRlTWFzaywgdGVtcEluZm8pOworLy8gICAgICAgICAgaWYgKFNIT1dfRElTVEFOQ0UpIFN5c3RlbS5vdXQucHJpbnRsbigiXHREaXN0YW5jZTogIiArIHRyaWFsLnBhdHRlcm4gKyAiOlx0IiAKKy8vICAgICAgICAgICsgZGlzdGFuY2UgKyAiLFx0bWlzc2luZyBmaWVsZHM6ICIgKyB0ZW1wSW5mbyk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBiZXN0RGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICBiZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgICAgICBiZXN0UGF0dGVybiA9IChTdHJpbmcpIHNrZWxldG9uMnBhdHRlcm4uZ2V0KHRyaWFsKTsKKyAgICAgICAgICAgICAgICBtaXNzaW5nRmllbGRzLnNldFRvKHRlbXBJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPT0gMCkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJlc3RQYXR0ZXJuOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZml4RnJhY3Rpb25hbFNlY29uZHMgVE9ETworICAgICAqIAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGFkanVzdEZpZWxkVHlwZXMoU3RyaW5nIHBhdHRlcm4sIERhdGVUaW1lTWF0Y2hlciBpbnB1dFJlcXVlc3QsIGJvb2xlYW4gZml4RnJhY3Rpb25hbFNlY29uZHMpIHsKKyAgICAgICAgZnAuc2V0KHBhdHRlcm4pOworICAgICAgICBTdHJpbmdCdWZmZXIgbmV3UGF0dGVybiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGZwLmdldEl0ZW1zKCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKGZwLnF1b3RlTGl0ZXJhbCgoU3RyaW5nKWl0ZW0pKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZpZWxkID0gKChWYXJpYWJsZUZpZWxkKSBpdGVtKS5zdHJpbmc7CisgICAgICAgICAgICAgICAgaW50IGNhbm9uaWNhbEluZGV4ID0gZ2V0Q2Fub25pY2FsSW5kZXgoZmllbGQpOworICAgICAgICAgICAgICAgIGlmIChjYW5vbmljYWxJbmRleCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIGRvbid0IGFkanVzdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IHR5cGVzW2Nhbm9uaWNhbEluZGV4XVsxXTsKKyAgICAgICAgICAgICAgICBpZiAoZml4RnJhY3Rpb25hbFNlY29uZHMgJiYgdHlwZSA9PSBTRUNPTkQpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld0ZpZWxkID0gaW5wdXRSZXF1ZXN0Lm9yaWdpbmFsW0ZSQUNUSU9OQUxfU0VDT05EXTsKKyAgICAgICAgICAgICAgICAgICAgZmllbGQgPSBmaWVsZCArIGRlY2ltYWwgKyBuZXdGaWVsZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0UmVxdWVzdC50eXBlW3R5cGVdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld0ZpZWxkID0gaW5wdXRSZXF1ZXN0Lm9yaWdpbmFsW3R5cGVdOworICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxseSB3ZSBqdXN0IHJlcGxhY2UgdGhlIGZpZWxkLiBIb3dldmVyIEhPVVIgaXMgc3BlY2lhbDsgd2Ugb25seSBjaGFuZ2UgdGhlIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBIT1VSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCA9IG5ld0ZpZWxkOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLmxlbmd0aCgpICE9IG5ld0ZpZWxkLmxlbmd0aCgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IGZpZWxkLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbmV3RmllbGQubGVuZ3RoKCk7IGkgPiAwOyAtLWkpIGZpZWxkICs9IGM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3UGF0dGVybi5hcHBlbmQoZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vaWYgKFNIT1dfRElTVEFOQ0UpIFN5c3RlbS5vdXQucHJpbnRsbigiXHRSYXc6ICIgKyBwYXR0ZXJuKTsKKyAgICAgICAgcmV0dXJuIG5ld1BhdHRlcm4udG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisvLyAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwZWF0KFN0cmluZyBzLCBpbnQgY291bnQpIHsKKy8vICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8gIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworLy8gIHJlc3VsdC5hcHBlbmQocyk7CisvLyAgfQorLy8gIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKy8vICB9CisgICAgCisgICAgLyoqCisgICAgICogaW50ZXJuYWwgcm91dGluZQorICAgICAqIEBwYXJhbSBwYXR0ZXJuCisgICAgICogQHJldHVybiBmaWVsZCB2YWx1ZQorICAgICAqIEBkZXByZWNhdGVkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRGaWVsZHMoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgZnAuc2V0KHBhdHRlcm4pOworICAgICAgICBTdHJpbmdCdWZmZXIgbmV3UGF0dGVybiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGZwLmdldEl0ZW1zKCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKGZwLnF1b3RlTGl0ZXJhbCgoU3RyaW5nKWl0ZW0pKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmV3UGF0dGVybi5hcHBlbmQoInsiICsgZ2V0TmFtZShpdGVtLnRvU3RyaW5nKCkpICsgIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3UGF0dGVybi50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd01hc2soaW50IG1hc2spIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICIiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRZUEVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgaWYgKChtYXNrICYgKDE8PGkpKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0ICs9ICIgfCAiOworICAgICAgICAgICAgcmVzdWx0ICs9IEZJRUxEX05BTUVbaV0gKyAiICI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nW10gQ0xEUl9GSUVMRF9BUFBFTkQgPSB7CisgICAgICAgICJFcmEiLCAiWWVhciIsICJRdWFydGVyIiwgIk1vbnRoIiwgIldlZWsiLCAiKiIsICJEYXktT2YtV2VlayIsIAorICAgICAgICAiRGF5IiwgIioiLCAiKiIsICIqIiwgCisgICAgICAgICJIb3VyIiwgIk1pbnV0ZSIsICJTZWNvbmQiLCAiKiIsICJUaW1lem9uZSIKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZ1tdIENMRFJfRklFTERfTkFNRSA9IHsKKyAgICAgICAgImVyYSIsICJ5ZWFyIiwgInF1YXJ0ZXIiLCAibW9udGgiLCAid2VlayIsICIqIiwgIndlZWtkYXkiLCAKKyAgICAgICAgImRheSIsICIqIiwgIioiLCAiZGF5cGVyaW9kIiwgCisgICAgICAgICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAiKiIsICJ6b25lIgorICAgIH07CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVyYSIsICJZZWFyIiwgIlF1YXJ0ZXIiLCAiTW9udGgiLCAiV2Vla19pbl9ZZWFyIiwgIldlZWtfaW5fTW9udGgiLCAiV2Vla2RheSIsIAorICAgICAgICAiRGF5IiwgIkRheV9PZl9ZZWFyIiwgIkRheV9vZl9XZWVrX2luX01vbnRoIiwgIkRheXBlcmlvZCIsIAorICAgICAgICAiSG91ciIsICJNaW51dGUiLCAiU2Vjb25kIiwgIkZyYWN0aW9uYWxfU2Vjb25kIiwgIlpvbmUiCisgICAgfTsKKyAgICAKKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmdbXSBDQU5PTklDQUxfSVRFTVMgPSB7CisgICAgICAgICJHIiwgInkiLCAiUSIsICJNIiwgInciLCAiVyIsICJlIiwgCisgICAgICAgICJkIiwgIkQiLCAiRiIsIAorICAgICAgICAiSCIsICJtIiwgInMiLCAiUyIsICJ2IgorICAgIH07CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU2V0IENBTk9OSUNBTF9TRVQgPSBuZXcgSGFzaFNldChBcnJheXMuYXNMaXN0KENBTk9OSUNBTF9JVEVNUykpOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBwcml2YXRlIGludCAKKyAgICBEQVRFX01BU0sgPSAoMTw8REFZUEVSSU9EKSAtIDEsCisgICAgVElNRV9NQVNLID0gKDE8PFRZUEVfTElNSVQpIC0gMSAtIERBVEVfTUFTSzsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgcHJpdmF0ZSBpbnQgLy8gbnVtYmVycyBhcmUgY2hvc2VuIHRvIGV4cHJlc3MgJ2Rpc3RhbmNlJworICAgIERFTFRBID0gMHgxMCwKKyAgICBOVU1FUklDID0gMHgxMDAsCisgICAgTk9ORSA9IDAsCisgICAgTkFSUk9XID0gLTB4MTAwLAorICAgIFNIT1JUID0gLTB4MTAxLAorICAgIExPTkcgPSAtMHgxMDIsCisgICAgRVhUUkFfRklFTEQgPSAgIDB4MTAwMDAsCisgICAgTUlTU0lOR19GSUVMRCA9IDB4MTAwMDsKKyAgICAKKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgcykgeworICAgICAgICBpbnQgaSA9IGdldENhbm9uaWNhbEluZGV4KHMpOworICAgICAgICBTdHJpbmcgbmFtZSA9IEZJRUxEX05BTUVbdHlwZXNbaV1bMV1dOworICAgICAgICBpbnQgc3VidHlwZSA9IHR5cGVzW2ldWzJdOworICAgICAgICBib29sZWFuIHN0cmluZyA9IHN1YnR5cGUgPCAwOworICAgICAgICBpZiAoc3RyaW5nKSBzdWJ0eXBlID0gLXN1YnR5cGU7CisgICAgICAgIGlmIChzdWJ0eXBlIDwgMCkgbmFtZSArPSAiOlMiOworICAgICAgICBlbHNlIG5hbWUgKz0gIjpOIjsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIGludCBnZXRDYW5vbmljYWxJbmRleChTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludFtdIHJvdyA9IHR5cGVzW2ldOworICAgICAgICAgICAgaWYgKHJvd1swXSAhPSBjaCkgY29udGludWU7CisgICAgICAgICAgICBpZiAocm93WzNdID4gbGVuKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChyb3dbcm93Lmxlbmd0aC0xXSA8IGxlbikgY29udGludWU7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIGludFtdW10gdHlwZXMgPSB7CisgICAgICAgIC8vIHRoZSBvcmRlciBoZXJlIG1ha2VzIGEgZGlmZmVyZW5jZSBvbmx5IHdoZW4gc2VhcmNoaW5nIGZvciBzaW5nbGUgZmllbGQuCisgICAgICAgIC8vIGZvcm1hdCBpczoKKyAgICAgICAgLy8gcGF0dGVybiBjaGFyYWN0ZXIsIG1haW4gdHlwZSwgd2VpZ2h0LCBtaW4gbGVuZ3RoLCB3ZWlnaHQKKyAgICAgICAgeydHJywgRVJBLCBTSE9SVCwgMSwgM30sCisgICAgICAgIHsnRycsIEVSQSwgTE9ORywgNH0sCisgICAgICAgIAorICAgICAgICB7J3knLCBZRUFSLCBOVU1FUklDLCAxLCAyMH0sCisgICAgICAgIHsnWScsIFlFQVIsIE5VTUVSSUMgKyBERUxUQSwgMSwgMjB9LAorICAgICAgICB7J3UnLCBZRUFSLCBOVU1FUklDICsgMipERUxUQSwgMSwgMjB9LAorICAgICAgICAKKyAgICAgICAgeydRJywgUVVBUlRFUiwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIHsnUScsIFFVQVJURVIsIFNIT1JULCAzfSwKKyAgICAgICAgeydRJywgUVVBUlRFUiwgTE9ORywgNH0sCisgICAgICAgIAorICAgICAgICB7J00nLCBNT05USCwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIHsnTScsIE1PTlRILCBTSE9SVCwgM30sCisgICAgICAgIHsnTScsIE1PTlRILCBMT05HLCA0fSwKKyAgICAgICAgeydNJywgTU9OVEgsIE5BUlJPVywgNX0sCisgICAgICAgIHsnTCcsIE1PTlRILCBOVU1FUklDICsgREVMVEEsIDEsIDJ9LAorICAgICAgICB7J0wnLCBNT05USCwgU0hPUlQgLSBERUxUQSwgM30sCisgICAgICAgIHsnTCcsIE1PTlRILCBMT05HIC0gREVMVEEsIDR9LAorICAgICAgICB7J0wnLCBNT05USCwgTkFSUk9XIC0gREVMVEEsIDV9LAorICAgICAgICAKKyAgICAgICAgeyd3JywgV0VFS19PRl9ZRUFSLCBOVU1FUklDLCAxLCAyfSwKKyAgICAgICAgeydXJywgV0VFS19PRl9NT05USCwgTlVNRVJJQyArIERFTFRBLCAxfSwKKyAgICAgICAgCisgICAgICAgIHsnZScsIFdFRUtEQVksIE5VTUVSSUMgKyBERUxUQSwgMSwgMn0sCisgICAgICAgIHsnZScsIFdFRUtEQVksIFNIT1JUIC0gREVMVEEsIDN9LAorICAgICAgICB7J2UnLCBXRUVLREFZLCBMT05HIC0gREVMVEEsIDR9LAorICAgICAgICB7J2UnLCBXRUVLREFZLCBOQVJST1cgLSBERUxUQSwgNX0sCisgICAgICAgIHsnRScsIFdFRUtEQVksIFNIT1JULCAxLCAzfSwKKyAgICAgICAgeydFJywgV0VFS0RBWSwgTE9ORywgNH0sCisgICAgICAgIHsnRScsIFdFRUtEQVksIE5BUlJPVywgNX0sCisgICAgICAgIHsnYycsIFdFRUtEQVksIE5VTUVSSUMgKyAyKkRFTFRBLCAxLCAyfSwKKyAgICAgICAgeydjJywgV0VFS0RBWSwgU0hPUlQgLSAyKkRFTFRBLCAzfSwKKyAgICAgICAgeydjJywgV0VFS0RBWSwgTE9ORyAtIDIqREVMVEEsIDR9LAorICAgICAgICB7J2MnLCBXRUVLREFZLCBOQVJST1cgLSAyKkRFTFRBLCA1fSwKKyAgICAgICAgCisgICAgICAgIHsnZCcsIERBWSwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIHsnRCcsIERBWV9PRl9ZRUFSLCBOVU1FUklDICsgREVMVEEsIDEsIDN9LAorICAgICAgICB7J0YnLCBEQVlfT0ZfV0VFS19JTl9NT05USCwgTlVNRVJJQyArIDIqREVMVEEsIDF9LAorICAgICAgICB7J2cnLCBEQVksIE5VTUVSSUMgKyAzKkRFTFRBLCAxLCAyMH0sIC8vIHJlYWxseSBpbnRlcm5hbCB1c2UsIHNvIHdlIGRvbid0IGNhcmUKKyAgICAgICAgCisgICAgICAgIHsnYScsIERBWVBFUklPRCwgU0hPUlQsIDF9LAorICAgICAgICAKKyAgICAgICAgeydIJywgSE9VUiwgTlVNRVJJQyArIDEwKkRFTFRBLCAxLCAyfSwgLy8gMjQgaG91cgorICAgICAgICB7J2snLCBIT1VSLCBOVU1FUklDICsgMTEqREVMVEEsIDEsIDJ9LAorICAgICAgICB7J2gnLCBIT1VSLCBOVU1FUklDLCAxLCAyfSwgLy8gMTIgaG91cgorICAgICAgICB7J0snLCBIT1VSLCBOVU1FUklDICsgREVMVEEsIDEsIDJ9LAorICAgICAgICAKKyAgICAgICAgeydtJywgTUlOVVRFLCBOVU1FUklDLCAxLCAyfSwKKyAgICAgICAgCisgICAgICAgIHsncycsIFNFQ09ORCwgTlVNRVJJQywgMSwgMn0sCisgICAgICAgIHsnUycsIEZSQUNUSU9OQUxfU0VDT05ELCBOVU1FUklDICsgREVMVEEsIDEsIDEwMDB9LAorICAgICAgICB7J0EnLCBTRUNPTkQsIE5VTUVSSUMgKyAyKkRFTFRBLCAxLCAxMDAwfSwKKyAgICAgICAgCisgICAgICAgIHsndicsIFpPTkUsIFNIT1JUIC0gMipERUxUQSwgMX0sCisgICAgICAgIHsndicsIFpPTkUsIExPTkcgLSAyKkRFTFRBLCA0fSwKKyAgICAgICAgeyd6JywgWk9ORSwgU0hPUlQsIDEsIDN9LAorICAgICAgICB7J3onLCBaT05FLCBMT05HLCA0fSwKKyAgICAgICAgeydaJywgWk9ORSwgU0hPUlQgLSBERUxUQSwgMSwgM30sCisgICAgICAgIHsnWicsIFpPTkUsIExPTkcgLSBERUxUQSwgNH0sCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBEYXRlVGltZU1hdGNoZXIgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgLy9wcml2YXRlIFN0cmluZyBwYXR0ZXJuID0gbnVsbDsKKyAgICAgICAgcHJpdmF0ZSBpbnRbXSB0eXBlID0gbmV3IGludFtUWVBFX0xJTUlUXTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBvcmlnaW5hbCA9IG5ldyBTdHJpbmdbVFlQRV9MSU1JVF07CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gYmFzZU9yaWdpbmFsID0gbmV3IFN0cmluZ1tUWVBFX0xJTUlUXTsKKyAgICAgICAgCisgICAgICAgIC8vIGp1c3QgZm9yIHRlc3Rpbmc7IGZpeCB0byBtYWtlIG11bHRpLXRocmVhZGVkIGxhdGVyCisgICAgICAgIC8vIHByaXZhdGUgc3RhdGljIEZvcm1hdFBhcnNlciBmcCA9IG5ldyBGb3JtYXRQYXJzZXIoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBUWVBFX0xJTUlUOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxbaV0ubGVuZ3RoKCkgIT0gMCkgcmVzdWx0LmFwcGVuZChvcmlnaW5hbFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXRCYXNlUGF0dGVybigpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRZUEVfTElNSVQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChiYXNlT3JpZ2luYWxbaV0ubGVuZ3RoKCkgIT0gMCkgcmVzdWx0LmFwcGVuZChiYXNlT3JpZ2luYWxbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBEYXRlVGltZU1hdGNoZXIgc2V0KFN0cmluZyBwYXR0ZXJuLCBGb3JtYXRQYXJzZXIgZnApIHsKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuLmluZGV4T2YoIlxcdSIpID49IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb2xkUGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgICAgICAgICAgcGF0dGVybiA9IGZyb21IZXgudHJhbnNsaXRlcmF0ZShwYXR0ZXJuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVFlQRV9MSU1JVDsgKytpKSB7CisgICAgICAgICAgICAgICAgdHlwZVtpXSA9IE5PTkU7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxbaV0gPSAiIjsKKyAgICAgICAgICAgICAgICBiYXNlT3JpZ2luYWxbaV0gPSAiIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZwLnNldChwYXR0ZXJuKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBmcC5nZXRWYXJpYWJsZUZpZWxkcyhuZXcgQXJyYXlMaXN0KCkpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGQgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNoYXJBdCgwKSA9PSAnYScpIGNvbnRpbnVlOyAvLyBza2lwIGRheSBwZXJpb2QsIHNwZWNpYWwgY2FzcworICAgICAgICAgICAgICAgIGludCBjYW5vbmljYWxJbmRleCA9IGdldENhbm9uaWNhbEluZGV4KGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZmllbGQ6XHQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmaWVsZCArICJcdCBpbiAiICsgcGF0dGVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IHR5cGVzW2Nhbm9uaWNhbEluZGV4XTsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZVZhbHVlID0gcm93WzFdOworICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbFt0eXBlVmFsdWVdLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29uZmxpY3RpbmcgZmllbGRzOlx0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3JpZ2luYWxbdHlwZVZhbHVlXSArICIsICIgKyBmaWVsZCArICJcdCBpbiAiICsgcGF0dGVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9yaWdpbmFsW3R5cGVWYWx1ZV0gPSBmaWVsZDsKKyAgICAgICAgICAgICAgICBjaGFyIHJlcGVhdENoYXIgPSAoY2hhcilyb3dbMF07CisgICAgICAgICAgICAgICAgaW50IHJlcGVhdENvdW50ID0gcm93WzNdOworICAgICAgICAgICAgICAgIGlmIChyZXBlYXRDb3VudCA+IDMpIHJlcGVhdENvdW50ID0gMzsgLy8gaGFjayB0byBkaXNjYXJkIGRpZmZlcmVuY2VzCisgICAgICAgICAgICAgICAgaWYgKCJHRXp2USIuaW5kZXhPZihyZXBlYXRDaGFyKSA+PSAwKSByZXBlYXRDb3VudCA9IDE7CisgICAgICAgICAgICAgICAgYmFzZU9yaWdpbmFsW3R5cGVWYWx1ZV0gPSBVdGlsaXR5LnJlcGVhdChTdHJpbmcudmFsdWVPZihyZXBlYXRDaGFyKSxyZXBlYXRDb3VudCk7CisgICAgICAgICAgICAgICAgaW50IHN1YlR5cGVWYWx1ZSA9IHJvd1syXTsKKyAgICAgICAgICAgICAgICBpZiAoc3ViVHlwZVZhbHVlID4gMCkgc3ViVHlwZVZhbHVlICs9IGZpZWxkLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHR5cGVbdHlwZVZhbHVlXSA9IChieXRlKSBzdWJUeXBlVmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIAorICAgICAgICAgKi8KKyAgICAgICAgaW50IGdldEZpZWxkTWFzaygpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0eXBlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHR5cGVbaV0gIT0gMCkgcmVzdWx0IHw9ICgxPDxpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiAKKyAgICAgICAgICovCisgICAgICAgIHZvaWQgZXh0cmFjdEZyb20oRGF0ZVRpbWVNYXRjaGVyIHNvdXJjZSwgaW50IGZpZWxkTWFzaykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0eXBlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKChmaWVsZE1hc2sgJiAoMTw8aSkpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZVtpXSA9IHNvdXJjZS50eXBlW2ldOworICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFtpXSA9IHNvdXJjZS5vcmlnaW5hbFtpXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0eXBlW2ldID0gTk9ORTsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxbaV0gPSAiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBnZXREaXN0YW5jZShEYXRlVGltZU1hdGNoZXIgb3RoZXIsIGludCBpbmNsdWRlTWFzaywgRGlzdGFuY2VJbmZvIGRpc3RhbmNlSW5mbykgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBkaXN0YW5jZUluZm8uY2xlYXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBteVR5cGUgPSAoaW5jbHVkZU1hc2sgJiAoMTw8aSkpID09IDAgPyAwIDogdHlwZVtpXTsKKyAgICAgICAgICAgICAgICBpbnQgb3RoZXJUeXBlID0gb3RoZXIudHlwZVtpXTsKKyAgICAgICAgICAgICAgICBpZiAobXlUeXBlID09IG90aGVyVHlwZSkgY29udGludWU7IC8vIGlkZW50aWNhbCAobWF5YmUgYm90aCB6ZXJvKSBhZGQgMAorICAgICAgICAgICAgICAgIGlmIChteVR5cGUgPT0gMCkgeyAvLyBhbmQgb3RoZXIgaXMgbm90CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBFWFRSQV9GSUVMRDsKKyAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2VJbmZvLmFkZEV4dHJhKGkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3RoZXJUeXBlID09IDApIHsgLy8gYW5kIG1pbmUgaXMgbm90CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBNSVNTSU5HX0ZJRUxEOworICAgICAgICAgICAgICAgICAgICBkaXN0YW5jZUluZm8uYWRkTWlzc2luZyhpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gTWF0aC5hYnMobXlUeXBlIC0gb3RoZXJUeXBlKTsgLy8gc3F1YXJlIG9mIG1pc21hdGNoCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIERhdGVUaW1lTWF0Y2hlciB0aGF0ID0gKERhdGVUaW1lTWF0Y2hlcikgbzsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3JpZ2luYWwubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgY29tcCA9IG9yaWdpbmFsW2ldLmNvbXBhcmVUbyh0aGF0Lm9yaWdpbmFsW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcCAhPSAwKSByZXR1cm4gLWNvbXA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIGlmIChvdGhlciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBEYXRlVGltZU1hdGNoZXIgdGhhdCA9IChEYXRlVGltZU1hdGNoZXIpIG90aGVyOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcmlnaW5hbC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghb3JpZ2luYWxbaV0uZXF1YWxzKHRoYXQub3JpZ2luYWxbaV0pKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcmlnaW5hbC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCBePSBvcmlnaW5hbFtpXS5oYXNoQ29kZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRGlzdGFuY2VJbmZvIHsKKyAgICAgICAgaW50IG1pc3NpbmdGaWVsZE1hc2s7CisgICAgICAgIGludCBleHRyYUZpZWxkTWFzazsKKyAgICAgICAgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgICAgIG1pc3NpbmdGaWVsZE1hc2sgPSBleHRyYUZpZWxkTWFzayA9IDA7CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIAorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCBzZXRUbyhEaXN0YW5jZUluZm8gb3RoZXIpIHsKKyAgICAgICAgICAgIG1pc3NpbmdGaWVsZE1hc2sgPSBvdGhlci5taXNzaW5nRmllbGRNYXNrOworICAgICAgICAgICAgZXh0cmFGaWVsZE1hc2sgPSBvdGhlci5leHRyYUZpZWxkTWFzazsKKyAgICAgICAgfQorICAgICAgICB2b2lkIGFkZE1pc3NpbmcoaW50IGZpZWxkKSB7CisgICAgICAgICAgICBtaXNzaW5nRmllbGRNYXNrIHw9ICgxPDxmaWVsZCk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBhZGRFeHRyYShpbnQgZmllbGQpIHsKKyAgICAgICAgICAgIGV4dHJhRmllbGRNYXNrIHw9ICgxPDxmaWVsZCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAibWlzc2luZ0ZpZWxkTWFzazogIiArIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5zaG93TWFzayhtaXNzaW5nRmllbGRNYXNrKQorICAgICAgICAgICAgKyAiLCBleHRyYUZpZWxkTWFzazogIiArIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5zaG93TWFzayhleHRyYUZpZWxkTWFzayk7CisgICAgICAgIH0KKyAgICB9Cit9CisvLyNlbmRpZgorLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzgwMjg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNDkxMiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkU3RyaW5nOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3lBbW91bnQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IHRoYXQgZm9ybWF0cyBkZWNpbWFsIG51bWJlcnMuIEl0IGhhcyBhIHZhcmlldHkgb2YKKyAqIGZlYXR1cmVzIGRlc2lnbmVkIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcGFyc2UgYW5kIGZvcm1hdCBudW1iZXJzIGluIGFueQorICogbG9jYWxlLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgV2VzdGVybiwgQXJhYmljLCBvciBJbmRpYyBkaWdpdHMuICBJdCBhbHNvCisgKiBzdXBwb3J0cyBkaWZmZXJlbnQgZmxhdm9ycyBvZiBudW1iZXJzLCBpbmNsdWRpbmcgaW50ZWdlcnMgKCIxMjMiKSwKKyAqIGZpeGVkLXBvaW50IG51bWJlcnMgKCIxMjMuNCIpLCBzY2llbnRpZmljIG5vdGF0aW9uICgiMS4yM0U0IiksIHBlcmNlbnRhZ2VzCisgKiAoIjEyJSIpLCBhbmQgY3VycmVuY3kgYW1vdW50cyAoIiQxMjMiKS4gIEFsbCBvZiB0aGVzZSBmbGF2b3JzIGNhbiBiZSBlYXNpbHkKKyAqIGxvY2FsaXplZC4KKyAqCisgKiA8cD48c3Ryb25nPlRoaXMgaXMgYW4gZW5oYW5jZWQgdmVyc2lvbiBvZiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBvcgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogPHA+VG8gb2J0YWluIGEge0BsaW5rIE51bWJlckZvcm1hdH0gZm9yIGEgc3BlY2lmaWMgbG9jYWxlIChpbmNsdWRpbmcgdGhlCisgKiBkZWZhdWx0IGxvY2FsZSkgY2FsbCBvbmUgb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPidzIGZhY3RvcnkgbWV0aG9kcyBzdWNoCisgKiBhcyB7QGxpbmsgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlfS4gRG8gbm90IGNhbGwgdGhlIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBjb25zdHJ1Y3RvcnMgZGlyZWN0bHksIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHNpbmNlIHRoZQorICoge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzIG1heSByZXR1cm4gc3ViY2xhc3NlcyBvdGhlciB0aGFuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gSWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZSBmb3JtYXQgb2JqZWN0LCBkbworICogc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAqIGlmIChmIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICogICAgICgoRGVjaW1hbEZvcm1hdCkgZikuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD48c3Ryb25nPkV4YW1wbGUgVXNhZ2U8L3N0cm9uZz4KKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPHN0cm9uZz4vLyBQcmludCBvdXQgYSBudW1iZXIgdXNpbmcgdGhlIGxvY2FsaXplZCBudW1iZXIsIGN1cnJlbmN5LAorICogLy8gYW5kIHBlcmNlbnQgZm9ybWF0IGZvciBlYWNoIGxvY2FsZTwvc3Ryb25nPgorICogTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgKiBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNC41NjsKKyAqIE51bWJlckZvcm1hdCBmb3JtYXQ7CisgKiBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGT1JNQVQiKTsKKyAqICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAqICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmxlbmd0aCgpID09IDApIHsKKyAqICAgICAgICAgICAgLy8gU2tpcCBsYW5ndWFnZS1vbmx5IGxvY2FsZXMKKyAqICAgICAgICAgICAgY29udGludWU7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICogICAgICAgICBzd2l0Y2ggKGopIHsKKyAqICAgICAgICAgY2FzZSAwOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgY2FzZSAxOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICBkZWZhdWx0OgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3JtYXQgaXMgYSBEZWNpbWFsRm9ybWF0CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6ICIgKyAoKERlY2ltYWxGb3JtYXQpIGZvcm1hdCkudG9QYXR0ZXJuKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIgKyBmb3JtLmZvcm1hdChteU51bWJlcikpOworICogICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIC0+ICIgKyBmb3JtYXQucGFyc2UoZm9ybS5mb3JtYXQobXlOdW1iZXIpKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgfQorICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8aDQ+UGF0dGVybnM8L2g0PgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY29uc2lzdHMgb2YgYSA8ZW0+cGF0dGVybjwvZW0+IGFuZCBhIHNldCBvZgorICogPGVtPnN5bWJvbHM8L2VtPi4gIFRoZSBwYXR0ZXJuIG1heSBiZSBzZXQgZGlyZWN0bHkgdXNpbmcKKyAqIHtAbGluayAjYXBwbHlQYXR0ZXJufSwgb3IgaW5kaXJlY3RseSB1c2luZyBvdGhlciBBUEkgbWV0aG9kcyB3aGljaAorICogbWFuaXB1bGF0ZSBhc3BlY3RzIG9mIHRoZSBwYXR0ZXJuLCBzdWNoIGFzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyCisgKiBkaWdpdHMuICBUaGUgc3ltYm9scyBhcmUgc3RvcmVkIGluIGEge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfQorICogb2JqZWN0LiAgV2hlbiB1c2luZyB0aGUge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzLCB0aGUKKyAqIHBhdHRlcm4gYW5kIHN5bWJvbHMgYXJlIHJlYWQgZnJvbSBJQ1UncyBsb2NhbGUgZGF0YS4KKyAqIAorICogPGg0PlNwZWNpYWwgUGF0dGVybiBDaGFyYWN0ZXJzPC9oND4KKyAqCisgKiA8cD5NYW55IGNoYXJhY3RlcnMgaW4gYSBwYXR0ZXJuIGFyZSB0YWtlbiBsaXRlcmFsbHk7IHRoZXkgYXJlIG1hdGNoZWQgZHVyaW5nCisgKiBwYXJzaW5nIGFuZCBvdXRwdXQgdW5jaGFuZ2VkIGR1cmluZyBmb3JtYXR0aW5nLiAgU3BlY2lhbCBjaGFyYWN0ZXJzLCBvbiB0aGUKKyAqIG90aGVyIGhhbmQsIHN0YW5kIGZvciBvdGhlciBjaGFyYWN0ZXJzLCBzdHJpbmdzLCBvciBjbGFzc2VzIG9mIGNoYXJhY3RlcnMuCisgKiBGb3IgZXhhbXBsZSwgdGhlICcjJyBjaGFyYWN0ZXIgaXMgcmVwbGFjZWQgYnkgYSBsb2NhbGl6ZWQgZGlnaXQuICBPZnRlbiB0aGUKKyAqIHJlcGxhY2VtZW50IGNoYXJhY3RlciBpcyB0aGUgc2FtZSBhcyB0aGUgcGF0dGVybiBjaGFyYWN0ZXI7IGluIHRoZSBVLlMuIGxvY2FsZSwKKyAqIHRoZSAnLCcgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5ICcsJy4gIEhvd2V2ZXIsIHRoZSByZXBsYWNlbWVudCBpcworICogc3RpbGwgaGFwcGVuaW5nLCBhbmQgaWYgdGhlIHN5bWJvbHMgYXJlIG1vZGlmaWVkLCB0aGUgZ3JvdXBpbmcgY2hhcmFjdGVyCisgKiBjaGFuZ2VzLiAgU29tZSBzcGVjaWFsIGNoYXJhY3RlcnMgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgZm9ybWF0dGVyIGJ5CisgKiB0aGVpciBwcmVzZW5jZTsgZm9yIGV4YW1wbGUsIGlmIHRoZSBwZXJjZW50IGNoYXJhY3RlciBpcyBzZWVuLCB0aGVuIHRoZQorICogdmFsdWUgaXMgbXVsdGlwbGllZCBieSAxMDAgYmVmb3JlIGJlaW5nIGRpc3BsYXllZC4KKyAqCisgKiA8cD5UbyBpbnNlcnQgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBhIHBhdHRlcm4gYXMgYSBsaXRlcmFsLCB0aGF0IGlzLCB3aXRob3V0CisgKiBhbnkgc3BlY2lhbCBtZWFuaW5nLCB0aGUgY2hhcmFjdGVyIG11c3QgYmUgcXVvdGVkLiAgVGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucyB0bworICogdGhpcyB3aGljaCBhcmUgbm90ZWQgYmVsb3cuCisgKgorICogPHA+VGhlIGNoYXJhY3RlcnMgbGlzdGVkIGhlcmUgYXJlIHVzZWQgaW4gbm9uLWxvY2FsaXplZCBwYXR0ZXJucy4gIExvY2FsaXplZAorICogcGF0dGVybnMgdXNlIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgdGFrZW4gZnJvbSB0aGlzIGZvcm1hdHRlcidzCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdCBpbnN0ZWFkLCBhbmQgdGhlc2UgY2hhcmFjdGVycyBsb3NlCisgKiB0aGVpciBzcGVjaWFsIHN0YXR1cy4gIFR3byBleGNlcHRpb25zIGFyZSB0aGUgY3VycmVuY3kgc2lnbiBhbmQgcXVvdGUsIHdoaWNoCisgKiBhcmUgbm90IGxvY2FsaXplZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTAgc3VtbWFyeT0iQ2hhcnQgc2hvd2luZyBzeW1ib2wsCisgKiAgbG9jYXRpb24sIGxvY2FsaXplZCwgYW5kIG1lYW5pbmcuIj4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlN5bWJvbAorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2F0aW9uCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TG9jYWxpemVkPworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1lYW5pbmcKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPjA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGlnaXQKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjEtOTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgICcxJyB0aHJvdWdoICc5JyBpbmRpY2F0ZSByb3VuZGluZy4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPkA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ObworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFNpZ25pZmljYW50IGRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4jPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0LCB6ZXJvIHNob3dzIGFzIGFic2VudAorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LjwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EZWNpbWFsIHNlcGFyYXRvciBvciBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+LTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NaW51cyBzaWduCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4sPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkdyb3VwaW5nIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+RTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5TZXBhcmF0ZXMgbWFudGlzc2EgYW5kIGV4cG9uZW50IGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KzwvY29kZT4KKyAqICAgICA8dGQ+RXhwb25lbnQKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUHJlZml4IHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+OzwvY29kZT4KKyAqICAgICA8dGQ+U3VicGF0dGVybiBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JTwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TXVsdGlwbHkgYnkgMTAwIGFuZCBzaG93IGFzIHBlcmNlbnRhZ2UKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPiYjOTI7dTIwMzA8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMDAgYW5kIHNob3cgYXMgcGVyIG1pbGxlCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4mIzE2NDs8L2NvZGU+ICg8Y29kZT4mIzkyO3UwMEE0PC9jb2RlPikKKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5DdXJyZW5jeSBzaWduLCByZXBsYWNlZCBieSBjdXJyZW5jeSBzeW1ib2wuICBJZgorICogICAgICAgICBkb3VibGVkLCByZXBsYWNlZCBieSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHN5bWJvbC4KKyAqICAgICAgICAgSWYgcHJlc2VudCBpbiBhIHBhdHRlcm4sIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICAgICAgICBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+JzwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5Vc2VkIHRvIHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHByZWZpeCBvciBzdWZmaXgsCisgKiAgICAgICAgIGZvciBleGFtcGxlLCA8Y29kZT4iJyMnIyI8L2NvZGU+IGZvcm1hdHMgMTIzIHRvCisgKiAgICAgICAgIDxjb2RlPiIjMTIzIjwvY29kZT4uICBUbyBjcmVhdGUgYSBzaW5nbGUgcXVvdGUKKyAqICAgICAgICAgaXRzZWxmLCB1c2UgdHdvIGluIGEgcm93OiA8Y29kZT4iIyBvJydjbG9jayI8L2NvZGU+LgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KjwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeCBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBQYWQgZXNjYXBlLCBwcmVjZWRlcyBwYWQgY2hhcmFjdGVyCisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGF0dGVybiBjb250YWlucyBhIHBvc3RpdmUgYW5kIG5lZ2F0aXZlCisgKiBzdWJwYXR0ZXJuLCBmb3IgZXhhbXBsZSwgIiMsIyMwLjAwOygjLCMjMC4wMCkiLiAgRWFjaCBzdWJwYXR0ZXJuIGhhcyBhCisgKiBwcmVmaXgsIGEgbnVtZXJpYyBwYXJ0LCBhbmQgYSBzdWZmaXguICBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4gaXMgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduIHByZWZpeGVkIHRvIHRoZQorICogcG9zaXRpdmUgc3VicGF0dGVybi4gVGhhdCBpcywgIjAuMDAiIGFsb25lIGlzIGVxdWl2YWxlbnQgdG8gIjAuMDA7LTAuMDAiLiAgSWYgdGhlcmUKKyAqIGlzIGFuIGV4cGxpY2l0IG5lZ2F0aXZlIHN1YnBhdHRlcm4sIGl0IHNlcnZlcyBvbmx5IHRvIHNwZWNpZnkgdGhlIG5lZ2F0aXZlCisgKiBwcmVmaXggYW5kIHN1ZmZpeDsgdGhlIG51bWJlciBvZiBkaWdpdHMsIG1pbmltYWwgZGlnaXRzLCBhbmQgb3RoZXIKKyAqIGNoYXJhY3RlcmlzdGljcyBhcmUgaWdub3JlZCBpbiB0aGUgbmVnYXRpdmUgc3VicGF0dGVybi4gVGhhdCBtZWFucyB0aGF0CisgKiAiIywjIzAuMCM7KCMpIiBoYXMgcHJlY2lzZWx5IHRoZSBzYW1lIHJlc3VsdCBhcyAiIywjIzAuMCM7KCMsIyMwLjAjKSIuCisgKgorICogPHA+VGhlIHByZWZpeGVzLCBzdWZmaXhlcywgYW5kIHZhcmlvdXMgc3ltYm9scyB1c2VkIGZvciBpbmZpbml0eSwgZGlnaXRzLAorICogdGhvdXNhbmRzIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycywgZXRjLiBtYXkgYmUgc2V0IHRvIGFyYml0cmFyeQorICogdmFsdWVzLCBhbmQgdGhleSB3aWxsIGFwcGVhciBwcm9wZXJseSBkdXJpbmcgZm9ybWF0dGluZy4gIEhvd2V2ZXIsIGNhcmUgbXVzdAorICogYmUgdGFrZW4gdGhhdCB0aGUgc3ltYm9scyBhbmQgc3RyaW5ncyBkbyBub3QgY29uZmxpY3QsIG9yIHBhcnNpbmcgd2lsbCBiZQorICogdW5yZWxpYWJsZS4gIEZvciBleGFtcGxlLCBlaXRoZXIgdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlcyBvciB0aGUKKyAqIHN1ZmZpeGVzIG11c3QgYmUgZGlzdGluY3QgZm9yIHtAbGluayAjcGFyc2V9IHRvIGJlIGFibGUKKyAqIHRvIGRpc3Rpbmd1aXNoIHBvc2l0aXZlIGZyb20gbmVnYXRpdmUgdmFsdWVzLiAgQW5vdGhlciBleGFtcGxlIGlzIHRoYXQgdGhlCisgKiBkZWNpbWFsIHNlcGFyYXRvciBhbmQgdGhvdXNhbmRzIHNlcGFyYXRvciBzaG91bGQgYmUgZGlzdGluY3QgY2hhcmFjdGVycywgb3IKKyAqIHBhcnNpbmcgd2lsbCBiZSBpbXBvc3NpYmxlLgorICoKKyAqIDxwPlRoZSA8ZW0+Z3JvdXBpbmcgc2VwYXJhdG9yPC9lbT4gaXMgYSBjaGFyYWN0ZXIgdGhhdCBzZXBhcmF0ZXMgY2x1c3RlcnMgb2YKKyAqIGludGVnZXIgZGlnaXRzIHRvIG1ha2UgbGFyZ2UgbnVtYmVycyBtb3JlIGxlZ2libGUuICBJdCBjb21tb25seSB1c2VkIGZvcgorICogdGhvdXNhbmRzLCBidXQgaW4gc29tZSBsb2NhbGVzIGl0IHNlcGFyYXRlcyB0ZW4tdGhvdXNhbmRzLiAgVGhlIDxlbT5ncm91cGluZworICogc2l6ZTwvZW0+IGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHN1Y2ggYXMgMworICogZm9yICIxMDAsMDAwLDAwMCIgb3IgNCBmb3IgIjEgMDAwMCAwMDAwIi4gVGhlcmUgYXJlIGFjdHVhbGx5IHR3byBkaWZmZXJlbnQKKyAqIGdyb3VwaW5nIHNpemVzOiBPbmUgdXNlZCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGludGVnZXIgZGlnaXRzLCB0aGUKKyAqIDxlbT5wcmltYXJ5IGdyb3VwaW5nIHNpemU8L2VtPiwgYW5kIG9uZSB1c2VkIGZvciBhbGwgb3RoZXJzLCB0aGUKKyAqIDxlbT5zZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZTwvZW0+LiAgSW4gbW9zdCBsb2NhbGVzIHRoZXNlIGFyZSB0aGUgc2FtZSwgYnV0CisgKiBzb21ldGltZXMgdGhleSBhcmUgZGlmZmVyZW50LiBGb3IgZXhhbXBsZSwgaWYgdGhlIHByaW1hcnkgZ3JvdXBpbmcgaW50ZXJ2YWwKKyAqIGlzIDMsIGFuZCB0aGUgc2Vjb25kYXJ5IGlzIDIsIHRoZW4gdGhpcyBjb3JyZXNwb25kcyB0byB0aGUgcGF0dGVybgorICogIiMsIyMsIyMwIiwgYW5kIHRoZSBudW1iZXIgMTIzNDU2Nzg5IGlzIGZvcm1hdHRlZCBhcyAiMTIsMzQsNTYsNzg5Ii4gIElmIGEKKyAqIHBhdHRlcm4gY29udGFpbnMgbXVsdGlwbGUgZ3JvdXBpbmcgc2VwYXJhdG9ycywgdGhlIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QKKyAqIG9uZSBhbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciBkZWZpbmVzIHRoZSBwcmltYXJ5IGdyb3VwaW5nIHNpemUsIGFuZCB0aGUKKyAqIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QgdHdvIGRlZmluZXMgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiBBbGwgb3RoZXJzCisgKiBhcmUgaWdub3JlZCwgc28gIiMsIyMsIyMjLCMjIyMiID09ICIjIyMsIyMjLCMjIyMiID09ICIjIywjLCMjIywjIyMjIi4KKyAqCisgKiA8cD5JbGxlZ2FsIHBhdHRlcm5zLCBzdWNoIGFzICIjLiMuIyIgb3IgIiMuIyMjLCMjIyIsIHdpbGwgY2F1c2UKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIHRocm93IGFuIHtAbGluayBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb259CisgKiB3aXRoIGEgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgcHJvYmxlbS4KKyAqCisgKiA8aDQ+UGF0dGVybiBCTkY8L2g0PgorICoKKyAqIDxwcmU+CisgKiBwYXR0ZXJuICAgIDo9IHN1YnBhdHRlcm4gKCc7JyBzdWJwYXR0ZXJuKT8KKyAqIHN1YnBhdHRlcm4gOj0gcHJlZml4PyBudW1iZXIgZXhwb25lbnQ/IHN1ZmZpeD8KKyAqIG51bWJlciAgICAgOj0gKGludGVnZXIgKCcuJyBmcmFjdGlvbik/KSB8IHNpZ0RpZ2l0cworICogcHJlZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBzdWZmaXggICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gc3BlY2lhbENoYXJhY3RlcnMKKyAqIGludGVnZXIgICAgOj0gJyMnKiAnMCcqICcwJworICogZnJhY3Rpb24gICA6PSAnMCcqICcjJyoKKyAqIHNpZ0RpZ2l0cyAgOj0gJyMnKiAnQCcgJ0AnKiAnIycqCisgKiBleHBvbmVudCAgIDo9ICdFJyAnKyc/ICcwJyogJzAnCisgKiBwYWRTcGVjICAgIDo9ICcqJyBwYWRDaGFyCisgKiBwYWRDaGFyICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gcXVvdGUKKyAqICYjMzI7CisgKiBOb3RhdGlvbjoKKyAqICAgWCogICAgICAgMCBvciBtb3JlIGluc3RhbmNlcyBvZiBYCisgKiAgIFg/ICAgICAgIDAgb3IgMSBpbnN0YW5jZXMgb2YgWAorICogICBYfFkgICAgICBlaXRoZXIgWCBvciBZCisgKiAgIEMuLkQgICAgIGFueSBjaGFyYWN0ZXIgZnJvbSBDIHVwIHRvIEQsIGluY2x1c2l2ZQorICogICBTLVQgICAgICBjaGFyYWN0ZXJzIGluIFMsIGV4Y2VwdCB0aG9zZSBpbiBUCisgKiA8L3ByZT4KKyAqIFRoZSBmaXJzdCBzdWJwYXR0ZXJuIGlzIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBUaGUgc2Vjb25kIChvcHRpb25hbCkKKyAqIHN1YnBhdHRlcm4gaXMgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgKiAKKyAqIDxwPk5vdCBpbmRpY2F0ZWQgaW4gdGhlIEJORiBzeW50YXggYWJvdmU6CisgKgorICogPHVsPjxsaT5UaGUgZ3JvdXBpbmcgc2VwYXJhdG9yICcsJyBjYW4gb2NjdXIgaW5zaWRlIHRoZSBpbnRlZ2VyIGFuZAorICogc2lnRGlnaXRzIGVsZW1lbnRzLCBiZXR3ZWVuIGFueSB0d28gcGF0dGVybiBjaGFyYWN0ZXJzIG9mIHRoYXQKKyAqIGVsZW1lbnQsIGFzIGxvbmcgYXMgdGhlIGludGVnZXIgb3Igc2lnRGlnaXRzIGVsZW1lbnQgaXMgbm90CisgKiBmb2xsb3dlZCBieSB0aGUgZXhwb25lbnQgZWxlbWVudC4KKyAqCisgKiA8bGk+PGZvbnQgY29sb3I9cmVkIGZhY2U9aGVsdmV0aWNhPjxzdHJvbmc+TkVXPC9zdHJvbmc+PC9mb250PgorICogICAgIFR3byBncm91cGluZyBpbnRlcnZhbHMgYXJlIHJlY29nbml6ZWQ6IFRoYXQgYmV0d2VlbiB0aGUKKyAqICAgICBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3QgZ3JvdXBpbmcgc3ltYm9sLCBhbmQgdGhhdAorICogICAgIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgZ3JvdXBpbmcgc3ltYm9scy4gVGhlc2UKKyAqICAgICBpbnRlcnZhbHMgYXJlIGlkZW50aWNhbCBpbiBtb3N0IGxvY2FsZXMsIGJ1dCBpbiBzb21lCisgKiAgICAgbG9jYWxlcyB0aGV5IGRpZmZlci4gRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiAgICAgJnF1b3Q7IywjIywjIyMmcXVvdDsgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBhcworICogICAgICZxdW90OzEyLDM0LDU2LDc4OSZxdW90Oy48L2xpPgorICogCisgKiA8bGk+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBUaGUgcGFkIHNwZWNpZmllciA8Y29kZT5wYWRTcGVjPC9jb2RlPiBtYXkgYXBwZWFyIGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIGFmdGVyIHRoZSBzdWZmaXgsIG9yIG5vdCBhdCBhbGwuCisgKgorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogSW4gcGxhY2Ugb2YgJzAnLCB0aGUgZGlnaXRzICcxJyB0aHJvdWdoICc5JyBtYXkgYmUgdXNlZCB0bworICogaW5kaWNhdGUgYSByb3VuZGluZyBpbmNyZW1lbnQuCisgKiA8L3VsPgorICoKKyAqIDxoND5QYXJzaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBwYXJzZXMgYWxsIFVuaWNvZGUgY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudAorICogZGVjaW1hbCBkaWdpdHMsIGFzIGRlZmluZWQgYnkge0BsaW5rIFVDaGFyYWN0ZXIjZGlnaXR9LiAgSW4gYWRkaXRpb24sCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBhbHNvIHJlY29nbml6ZXMgYXMgZGlnaXRzIHRoZSB0ZW4gY29uc2VjdXRpdmUKKyAqIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCB0aGUgbG9jYWxpemVkIHplcm8gZGlnaXQgZGVmaW5lZCBpbiB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgRHVyaW5nIGZvcm1hdHRpbmcsIHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfS1iYXNlZCBkaWdpdHMgYXJlIG91dHB1dC4KKyAqCisgKiA8cD5EdXJpbmcgcGFyc2luZywgZ3JvdXBpbmcgc2VwYXJhdG9ycyBhcmUgaWdub3JlZC4KKyAqCisgKiA8cD5JZiB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IGZhaWxzIHRvIHBhcnNlCisgKiBhIHN0cmluZywgaXQgcmV0dXJucyA8Y29kZT5udWxsPC9jb2RlPiBhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbgorICogdW5jaGFuZ2VkLiAgVGhlIGNvbnZlbmllbmNlIG1ldGhvZCB7QGxpbmsgI3BhcnNlKFN0cmluZyl9CisgKiBpbmRpY2F0ZXMgcGFyc2UgZmFpbHVyZSBieSB0aHJvd2luZyBhIHtAbGluayBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb259LgorICoKKyAqIDxoND5Gb3JtYXR0aW5nPC9oND4KKyAqCisgKiA8cD5Gb3JtYXR0aW5nIGlzIGd1aWRlZCBieSBzZXZlcmFsIHBhcmFtZXRlcnMsIGFsbCBvZiB3aGljaCBjYW4gYmUKKyAqIHNwZWNpZmllZCBlaXRoZXIgdXNpbmcgYSBwYXR0ZXJuIG9yIHVzaW5nIHRoZSBBUEkuICBUaGUgZm9sbG93aW5nCisgKiBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGZvcm1hdHMgdGhhdCBkbyBub3QgdXNlIDxhIGhyZWY9IiNzY2kiPnNjaWVudGlmaWMKKyAqIG5vdGF0aW9uPC9hPiBvciA8YSBocmVmPSIjc2lnZGlnIj5zaWduaWZpY2FudCBkaWdpdHM8L2E+LgorICoKKyAqIDx1bD48bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgaW50ZWdlciBkaWdpdHMgZXhjZWVkcyB0aGUKKyAqIDxlbT5tYXhpbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gb25seSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgc2hvd24uICBGb3IgZXhhbXBsZSwgMTk5NyBpcyBmb3JtYXR0ZWQgYXMgIjk3IiBpZiB0aGUKKyAqIG1heGltdW0gaW50ZWdlciBkaWdpdHMgaXMgc2V0IHRvIDIuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gbGVhZGluZyB6ZXJvcyBhcmUgYWRkZWQuICBGb3IKKyAqIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICIwMTk5NyIgaWYgdGhlIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAqIGlzIHNldCB0byA1LgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBmcmFjdGlvbiBkaWdpdHMgZXhjZWVkcyB0aGUgPGVtPm1heGltdW0KKyAqIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIGhhbGYtZXZlbiByb3VuZGluZyBpdCBwZXJmb3JtZWQgdG8gdGhlCisgKiBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTIiCisgKiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgMi4gIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQKKyAqIGJ5IHNwZWNpZnlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgYW5kIGEgcm91bmRpbmcgbW9kZS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIHRyYWlsaW5nIHplcm9zIGFyZSBhZGRlZC4KKyAqIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTI1MCIgaWYgdGhlIG1pbWltdW0gZnJhY3Rpb24KKyAqIGRpZ2l0cyBpcyBzZXQgdG8gNC4KKyAqCisgKiA8bGk+VHJhaWxpbmcgZnJhY3Rpb25hbCB6ZXJvcyBhcmUgbm90IGRpc3BsYXllZCBpZiB0aGV5IG9jY3VyCisgKiA8ZW0+ajwvZW0+IHBvc2l0aW9ucyBhZnRlciB0aGUgZGVjaW1hbCwgd2hlcmUgPGVtPmo8L2VtPiBpcyBsZXNzCisgKiB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gRm9yIGV4YW1wbGUsIDAuMTAwMDQgaXMKKyAqIGZvcm1hdHRlZCBhcyAiMC4xIiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgZm91ciBvciBsZXNzLgorICogPC91bD4KKyAqIAorICogPHA+PHN0cm9uZz5TcGVjaWFsIFZhbHVlczwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPk5hTjwvY29kZT4gaXMgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyLCB0eXBpY2FsbHkKKyAqIDxjb2RlPiYjOTI7dUZGRkQ8L2NvZGU+LiAgVGhpcyBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgVGhpcyBpcyB0aGUgb25seSB2YWx1ZSBmb3Igd2hpY2gKKyAqIHRoZSBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIG5vdCB1c2VkLgorICoKKyAqIDxwPkluZmluaXR5IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3UyMjFFPC9jb2RlPiwgd2l0aCB0aGUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzCisgKiBhcHBsaWVkLiAgVGhlIGluZmluaXR5IGNoYXJhY3RlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QuCisgKgorICogPGEgbmFtZT0ic2NpIj48aDQ+U2NpZW50aWZpYyBOb3RhdGlvbjwvaDQ+PC9hPgorICoKKyAqIDxwPk51bWJlcnMgaW4gc2NpZW50aWZpYyBub3RhdGlvbiBhcmUgZXhwcmVzc2VkIGFzIHRoZSBwcm9kdWN0IG9mIGEgbWFudGlzc2EKKyAqIGFuZCBhIHBvd2VyIG9mIHRlbiwgZm9yIGV4YW1wbGUsIDEyMzQgY2FuIGJlIGV4cHJlc3NlZCBhcyAxLjIzNCB4IDEwPHN1cD4zPC9zdXA+LiBUaGUKKyAqIG1hbnRpc3NhIGlzIHR5cGljYWxseSBpbiB0aGUgaGFsZi1vcGVuIGludGVydmFsIFsxLjAsIDEwLjApIG9yIHNvbWV0aW1lcyBbMC4wLCAxLjApLAorICogYnV0IGl0IG5lZWQgbm90IGJlLiAgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgYXJiaXRyYXJ5IG1hbnRpc3Nhcy4KKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNhbiBiZSBpbnN0cnVjdGVkIHRvIHVzZSBzY2llbnRpZmljCisgKiBub3RhdGlvbiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybi4gIEluIGEgcGF0dGVybiwgdGhlIGV4cG9uZW50CisgKiBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZGlnaXQgY2hhcmFjdGVycyBpbmRpY2F0ZXMKKyAqIHNjaWVudGlmaWMgbm90YXRpb24uICBFeGFtcGxlOiAiMC4jIyNFMCIgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQgYXMKKyAqICIxLjIzNEUzIi4KKyAqCisgKiA8dWw+CisgKiA8bGk+VGhlIG51bWJlciBvZiBkaWdpdCBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBleHBvbmVudCBjaGFyYWN0ZXIgZ2l2ZXMgdGhlCisgKiBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0IGNvdW50LiAgVGhlcmUgaXMgbm8gbWF4aW11bS4gIE5lZ2F0aXZlIGV4cG9uZW50cyBhcmUKKyAqIGZvcm1hdHRlZCB1c2luZyB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24sIDxlbT5ub3Q8L2VtPiB0aGUgcHJlZml4IGFuZCBzdWZmaXgKKyAqIGZyb20gdGhlIHBhdHRlcm4uICBUaGlzIGFsbG93cyBwYXR0ZXJucyBzdWNoIGFzICIwLiMjI0UwIG0vcyIuICBUbyBwcmVmaXgKKyAqIHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGEgbG9jYWxpemVkIHBsdXMgc2lnbiwgc3BlY2lmeSAnKycgYmV0d2VlbiB0aGUKKyAqIGV4cG9uZW50IGFuZCB0aGUgZGlnaXRzOiAiMC4jIyNFKzAiIHdpbGwgcHJvZHVjZSBmb3JtYXRzICIxRSsxIiwgIjFFKzAiLAorICogIjFFLTEiLCBldGMuICAoSW4gbG9jYWxpemVkIHBhdHRlcm5zLCB1c2UgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24gcmF0aGVyIHRoYW4KKyAqICcrJy4pCisgKgorICogPGxpPlRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBhY2hpZXZlZCBieSBhZGp1c3RpbmcgdGhlCisgKiBleHBvbmVudC4gIEV4YW1wbGU6IDAuMDAxMjMgZm9ybWF0dGVkIHdpdGggIjAwLiMjI0UwIiB5aWVsZHMgIjEyLjNFLTQiLiAgVGhpcworICogb25seSBoYXBwZW5zIGlmIHRoZXJlIGlzIG5vIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhlcmUgaXMgYQorICogbWF4aW11bSwgdGhlbiB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLgorICoKKyAqIDxsaT5UaGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMsIGlmIHByZXNlbnQsIHNwZWNpZmllcyB0aGUgZXhwb25lbnQKKyAqIGdyb3VwaW5nLiAgVGhlIG1vc3QgY29tbW9uIHVzZSBvZiB0aGlzIGlzIHRvIGdlbmVyYXRlIDxlbT5lbmdpbmVlcmluZworICogbm90YXRpb248L2VtPiwgaW4gd2hpY2ggdGhlIGV4cG9uZW50IGlzIGEgbXVsdGlwbGUgb2YgdGhyZWUsIGUuZy4sCisgKiAiIyMwLiMjI0UwIi4gIFRoZSBudW1iZXIgMTIzNDUgaXMgZm9ybWF0dGVkIHVzaW5nICIjIzAuIyMjI0UwIiBhcyAiMTIuMzQ1RTMiLgorICoKKyAqIDxsaT5XaGVuIHVzaW5nIHNjaWVudGlmaWMgbm90YXRpb24sIHRoZSBmb3JtYXR0ZXIgY29udHJvbHMgdGhlCisgKiBkaWdpdCBjb3VudHMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzIGxvZ2ljLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgbGltaXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIG1hbnRpc3NhOyBpdCBkb2VzIG5vdCBhZmZlY3QKKyAqIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwgMTIzNDUgZm9ybWF0dGVkIHdpdGggIiMjMC4jI0UwIiBpcyAiMTIuM0UzIi4KKyAqIFNlZSB0aGUgc2VjdGlvbiBvbiBzaWduaWZpY2FudCBkaWdpdHMgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiA8bGk+VGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgZGV0ZXJtaW5lZCBhcworICogZm9sbG93czogSWYgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyBmYWxzZSwgdGhlbiB0aGUKKyAqIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyBvbmUsIGFuZCB0aGUgbWF4aW11bQorICogbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyB0aGUgc3VtIG9mIHRoZSA8ZW0+bWluaW11bQorICogaW50ZWdlcjwvZW0+IGFuZCA8ZW0+bWF4aW11bSBmcmFjdGlvbjwvZW0+IGRpZ2l0cywgYW5kIGlzCisgKiB1bmFmZmVjdGVkIGJ5IHRoZSBtYXhpbXVtIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBzdW0gaXMgemVybywKKyAqIHRoZW4gYWxsIHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgc2hvd24uICBJZgorICogYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLCB0aGVuIHRoZSBzaWduaWZpY2FudCBkaWdpdAorICogY291bnRzIGFyZSBzcGVjaWZpZWQgYnkgZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCkgYW5kCisgKiBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKS4gIEluIHRoaXMgY2FzZSwgdGhlIG51bWJlciBvZgorICogaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLCBhbmQgdGhlcmUgaXMgbm8gZXhwb25lbnQgZ3JvdXBpbmcuCisgKgorICogPGxpPkV4cG9uZW50aWFsIHBhdHRlcm5zIG1heSBub3QgY29udGFpbiBncm91cGluZyBzZXBhcmF0b3JzLgorICogPC91bD4KKyAqCisgKiA8YSBuYW1lPSJzaWdkaWciPjxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFNpZ25pZmljYW50IERpZ2l0czwvaDQ+PC9hPgorICoKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGhhcyB0d28gd2F5cyBvZiBjb250cm9sbGluZyBob3cgbWFueQorICogZGlnaXRzIGFyZSBzaG93czogKGEpIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIG9yIChiKSBpbnRlZ2VyIGFuZAorICogZnJhY3Rpb24gZGlnaXQgY291bnRzLiAgSW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZQorICogZGVzY3JpYmVkIGFib3ZlLiAgV2hlbiBhIGZvcm1hdHRlciBpcyB1c2luZyBzaWduaWZpY2FudCBkaWdpdHMKKyAqIGNvdW50cywgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgaXMgbm90IHNwZWNpZmllZAorICogZGlyZWN0bHksIGFuZCB0aGUgZm9ybWF0dGVyIHNldHRpbmdzIGZvciB0aGVzZSBjb3VudHMgYXJlIGlnbm9yZWQuCisgKiBJbnN0ZWFkLCB0aGUgZm9ybWF0dGVyIHVzZXMgaG93ZXZlciBtYW55IGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgYXJlIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cy4gIEV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTMgY2VsbHBhZGRpbmc9MD4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlBhdHRlcm4KKyAqICAgICA8dGggYWxpZ249bGVmdD5NaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TnVtYmVyCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+T3V0cHV0IG9mIGZvcm1hdCgpCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4xMjM0NQorICogICAgIDx0ZD48Y29kZT4xMjMwMDwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAQDwvY29kZT4KKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjAuMTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MC4xMjM8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+My4xNDE1OQorICogICAgIDx0ZD48Y29kZT4zLjE0MjwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAIyM8L2NvZGU+CisgKiAgICAgPHRkPjIKKyAqICAgICA8dGQ+NAorICogICAgIDx0ZD4xLjIzMDA0CisgKiAgICAgPHRkPjxjb2RlPjEuMjM8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDx1bD4KKyAqIDxsaT5TaWduaWZpY2FudCBkaWdpdCBjb3VudHMgbWF5IGJlIGV4cHJlc3NlZCB1c2luZyBwYXR0ZXJucyB0aGF0CisgKiBzcGVjaWZ5IGEgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlc2UKKyAqIGFyZSBpbmRpY2F0ZWQgYnkgdGhlIDxjb2RlPidAJzwvY29kZT4gYW5kIDxjb2RlPicjJzwvY29kZT4KKyAqIGNoYXJhY3RlcnMuICBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGlzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICogZGlnaXRzIGlzIHRoZSBudW1iZXIgb2YgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXJzIHBsdXMgdGhlIG51bWJlcgorICogb2YgPGNvZGU+JyMnPC9jb2RlPiBjaGFyYWN0ZXJzIGZvbGxvd2luZyBvbiB0aGUgcmlnaHQuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBwYXR0ZXJuIDxjb2RlPiJAQEAiPC9jb2RlPiBpbmRpY2F0ZXMgZXhhY3RseSAzCisgKiBzaWduaWZpY2FudCBkaWdpdHMuICBUaGUgcGF0dGVybiA8Y29kZT4iQCMjIjwvY29kZT4gaW5kaWNhdGVzIGZyb20KKyAqIDEgdG8gMyBzaWduaWZpY2FudCBkaWdpdHMuICBUcmFpbGluZyB6ZXJvIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAqIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBhcmUgc3VwcHJlc3NlZCBhZnRlciB0aGUgbWluaW11bSBudW1iZXIgb2YKKyAqIHNpZ25pZmljYW50IGRpZ2l0cyBoYXZlIGJlZW4gc2hvd24uICBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4KKyAqIDxjb2RlPiJAIyMiPC9jb2RlPiBmb3JtYXRzIHRoZSBudW1iZXIgMC4xMjAzIGFzCisgKiA8Y29kZT4iMC4xMiI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBhIHBhdHRlcm4gdXNlcyBzaWduaWZpY2FudCBkaWdpdHMsIGl0IG1heSBub3QgY29udGFpbiBhCisgKiBkZWNpbWFsIHNlcGFyYXRvciwgbm9yIHRoZSA8Y29kZT4nMCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLgorICogUGF0dGVybnMgc3VjaCBhcyA8Y29kZT4iQDAwIjwvY29kZT4gb3IgPGNvZGU+IkAuIyMjIjwvY29kZT4gYXJlCisgKiBkaXNhbGxvd2VkLgorICoKKyAqIDxsaT5BbnkgbnVtYmVyIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBtYXkgYmUgcHJlcGVuZGVkIHRvCisgKiB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXIuICBUaGVzZSBoYXZlIG5vCisgKiBlZmZlY3Qgb24gdGhlIG1pbmltdW0gYW5kIG1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50cywgYnV0CisgKiBtYXkgYmUgdXNlZCB0byBwb3NpdGlvbiBncm91cGluZyBzZXBhcmF0b3JzLiAgRm9yIGV4YW1wbGUsCisgKiA8Y29kZT4iIywjQCMiPC9jb2RlPiBpbmRpY2F0ZXMgYSBtaW5pbXVtIG9mIG9uZSBzaWduaWZpY2FudCBkaWdpdHMsCisgKiBhIG1heGltdW0gb2YgdHdvIHNpZ25pZmljYW50IGRpZ2l0cywgYW5kIGEgZ3JvdXBpbmcgc2l6ZSBvZiB0aHJlZS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZW5hYmxlIHNpZ25pZmljYW50IGRpZ2l0cyBmb3JtYXR0aW5nLCB1c2UgYSBwYXR0ZXJuCisgKiBjb250YWluaW5nIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLiAgQWx0ZXJuYXRpdmVseSwKKyAqIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHRydWUpfS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZGlzYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEKKyAqIHBhdHRlcm4gdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4KKyAqIGNoYXJhY3Rlci4gQWx0ZXJuYXRpdmVseSwgY2FsbCB7QGxpbmsgI3NldFNpZ25pZmljYW50RGlnaXRzVXNlZAorICogc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGZhbHNlKX0uCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGhhcyBubyBlZmZlY3Qgb24gcGFyc2luZy4KKyAqCisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXRzIG1heSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24uIFN1Y2gKKyAqIHBhdHRlcm5zIGFyZSBlcXVpdmFsZW50IHRvIGEgbm9ybWFsIGV4cG9uZW50aWFsIHBhdHRlcm4gd2l0aCBhIG1pbmltdW0gYW5kCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXQgY291bnQgb2Ygb25lLCBhIG1pbmltdW0gZnJhY3Rpb24gZGlnaXQgY291bnQgb2YKKyAqIDxjb2RlPmdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4sIGFuZCBhIG1heGltdW0gZnJhY3Rpb24gZGlnaXQKKyAqIGNvdW50IG9mIDxjb2RlPmdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4uIEZvciBleGFtcGxlLCB0aGUKKyAqIHBhdHRlcm4gPGNvZGU+IkBAIyMjRTAiPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvIDxjb2RlPiIwLjAjIyNFMCI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBzaWduZmljYW50IGRpZ2l0cyBhcmUgaW4gdXNlLCB0aGVuIHRoZSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhIHRoZSBBUEksIGFyZSBpZ25vcmVkLiAgSWYgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgbm90IGluIHVzZSwgdGhlbiB0aGUgc2lnbmZpY2FudCBkaWdpdCBjb3VudHMsIGFzIHNldCB2aWEKKyAqIHRoZSBBUEksIGFyZSBpZ25vcmVkLgorICoKKyAqIDwvdWw+CisgKiAKKyAqIDxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFBhZGRpbmc8L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHBhZGRpbmcgdGhlIHJlc3VsdCBvZgorICoge0BsaW5rICNmb3JtYXR9IHRvIGEgc3BlY2lmaWMgd2lkdGguICBQYWRkaW5nIG1heSBiZSBzcGVjaWZpZWQgZWl0aGVyCisgKiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybiBzeW50YXguICBJbiBhIHBhdHRlcm4gdGhlIHBhZCBlc2NhcGUKKyAqIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcGFkIGNoYXJhY3RlciwgY2F1c2VzIHBhZGRpbmcgdG8gYmUgcGFyc2VkCisgKiBhbmQgZm9ybWF0dGVkLiAgVGhlIHBhZCBlc2NhcGUgY2hhcmFjdGVyIGlzICcqJyBpbiB1bmxvY2FsaXplZCBwYXR0ZXJucywgYW5kCisgKiBjYW4gYmUgbG9jYWxpemVkIHVzaW5nIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRQYWRFc2NhcGV9LiAgRm9yCisgKiBleGFtcGxlLCA8Y29kZT4iJCp4IywjIzAuMDAiPC9jb2RlPiBmb3JtYXRzIDEyMyB0byA8Y29kZT4iJHh4MTIzLjAwIjwvY29kZT4sCisgKiBhbmQgMTIzNCB0byA8Y29kZT4iJDEsMjM0LjAwIjwvY29kZT4uCisgKgorICogPHVsPgorICogPGxpPldoZW4gcGFkZGluZyBpcyBpbiBlZmZlY3QsIHRoZSB3aWR0aCBvZiB0aGUgcG9zaXRpdmUgc3VicGF0dGVybiwKKyAqIGluY2x1ZGluZyBwcmVmaXggYW5kIHN1ZmZpeCwgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IHdpZHRoLiAgRm9yIGV4YW1wbGUsIGluCisgKiB0aGUgcGF0dGVybiA8Y29kZT4iKiAjMCBvJydjbG9jayI8L2NvZGU+LCB0aGUgZm9ybWF0IHdpZHRoIGlzIDEwLgorICoKKyAqIDxsaT5UaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cyAoSmF2YSA8Y29kZT5jaGFyPC9jb2RlPnMpLgorICoKKyAqIDxsaT5Tb21lIHBhcmFtZXRlcnMgd2hpY2ggdXN1YWxseSBkbyBub3QgbWF0dGVyIGhhdmUgbWVhbmluZyB3aGVuIHBhZGRpbmcgaXMKKyAqIHVzZWQsIGJlY2F1c2UgdGhlIHBhdHRlcm4gd2lkdGggaXMgc2lnbmlmaWNhbnQgd2l0aCBwYWRkaW5nLiAgSW4gdGhlIHBhdHRlcm4KKyAqICIqICMjLCMjLCMsIyMwLiMjIiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxNC4gIFRoZSBpbml0aWFsIGNoYXJhY3RlcnMgIiMjLCMjLCIKKyAqIGRvIG5vdCBhZmZlY3QgdGhlIGdyb3VwaW5nIHNpemUgb3IgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cywgYnV0IHRoZXkgZG8gYWZmZWN0CisgKiB0aGUgZm9ybWF0IHdpZHRoLgorICoKKyAqIDxsaT5QYWRkaW5nIG1heSBiZSBpbnNlcnRlZCBhdCBvbmUgb2YgZm91ciBsb2NhdGlvbnM6IGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIG9yIGFmdGVyIHRoZSBzdWZmaXguICBJZiBwYWRkaW5nIGlzCisgKiBzcGVjaWZpZWQgaW4gYW55IG90aGVyIGxvY2F0aW9uLCB7QGxpbmsgI2FwcGx5UGF0dGVybn0gdGhyb3dzIGFuIHtAbGluaworICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufS4gIElmIHRoZXJlIGlzIG5vIHByZWZpeCwgYmVmb3JlIHRoZQorICogcHJlZml4IGFuZCBhZnRlciB0aGUgcHJlZml4IGFyZSBlcXVpdmFsZW50LCBsaWtld2lzZSBmb3IgdGhlIHN1ZmZpeC4KKyAqCisgKiA8bGk+V2hlbiBzcGVjaWZpZWQgaW4gYSBwYXR0ZXJuLCB0aGUgMTYtYml0IDxjb2RlPmNoYXI8L2NvZGU+IGltbWVkaWF0ZWx5CisgKiBmb2xsb3dpbmcgdGhlIHBhZCBlc2NhcGUgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuIFRoaXMgbWF5IGJlIGFueSBjaGFyYWN0ZXIsCisgKiBpbmNsdWRpbmcgYSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyLiBUaGF0IGlzLCB0aGUgcGFkIGVzY2FwZQorICogPGVtPmVzY2FwZXM8L2VtPiB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlci4gSWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGFmdGVyCisgKiB0aGUgcGFkIGVzY2FwZSwgdGhlbiB0aGUgcGF0dGVybiBpcyBpbGxlZ2FsLgorICoKKyAqIDwvdWw+CisgKgorICogPHA+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiA8c3Ryb25nPlJvdW5kaW5nPC9zdHJvbmc+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgcm91bmRpbmcgdG8gYSBzcGVjaWZpYyBpbmNyZW1lbnQuICBGb3IKKyAqIGV4YW1wbGUsIDEyMzAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCA1MCBpcyAxMjUwLiAgMS4yMzQgcm91bmRlZCB0byB0aGUKKyAqIG5lYXJlc3QgMC42NSBpcyAxLjMuICBUaGUgcm91bmRpbmcgaW5jcmVtZW50IG1heSBiZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgQVBJCisgKiBvciBpbiBhIHBhdHRlcm4uICBUbyBzcGVjaWZ5IGEgcm91bmRpbmcgaW5jcmVtZW50IGluIGEgcGF0dGVybiwgaW5jbHVkZSB0aGUKKyAqIGluY3JlbWVudCBpbiB0aGUgcGF0dGVybiBpdHNlbGYuICAiIywjNTAiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZgorICogNTAuICAiIywjIzAuMDUiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZiAwLjA1LgorICoKKyAqIDx1bD4KKyAqIDxsaT5Sb3VuZGluZyBvbmx5IGFmZmVjdHMgdGhlIHN0cmluZyBwcm9kdWNlZCBieSBmb3JtYXR0aW5nLiAgSXQgZG9lcworICogbm90IGFmZmVjdCBwYXJzaW5nIG9yIGNoYW5nZSBhbnkgbnVtZXJpY2FsIHZhbHVlcy4KKyAqCisgKiA8bGk+QSA8ZW0+cm91bmRpbmcgbW9kZTwvZW0+IGRldGVybWluZXMgaG93IHZhbHVlcyBhcmUgcm91bmRlZDsgc2VlIHRoZQorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbH0gZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAqIG1vZGVzLiAgUm91bmRpbmcgaW5jcmVtZW50cyBzcGVjaWZpZWQgaW4gcGF0dGVybnMgdXNlIHRoZSBkZWZhdWx0IG1vZGUsCisgKiB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTn0uCisgKgorICogPGxpPlNvbWUgbG9jYWxlcyB1c2Ugcm91bmRpbmcgaW4gdGhlaXIgY3VycmVuY3kgZm9ybWF0cyB0byByZWZsZWN0IHRoZQorICogc21hbGxlc3QgY3VycmVuY3kgZGVub21pbmF0aW9uLgorICoKKyAqIDxsaT5JbiBhIHBhdHRlcm4sIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgc3BlY2lmeSByb3VuZGluZywgYnV0IG90aGVyd2lzZQorICogYmVoYXZlIGlkZW50aWNhbGx5IHRvIGRpZ2l0ICcwJy4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gIE11bHRpcGxlCisgKiB0aHJlYWRzIHNob3VsZCBub3QgYWNjZXNzIG9uZSBmb3JtYXR0ZXIgY29uY3VycmVudGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBhbmQgc3ltYm9scworICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuIFRoaXMgaXMgYSBjb252ZW5pZW50IHdheSB0byBvYnRhaW4gYQorICAgICAqIERlY2ltYWxGb3JtYXQgd2hlbiBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBub3QgdGhlIG1haW4gY29uY2Vybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gc3RhbmRhcmQgZm9ybWF0cyBmb3IgYSBnaXZlbiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzCisgICAgICogb24gTnVtYmVyRm9ybWF0IHN1Y2ggYXMgZ2V0TnVtYmVySW5zdGFuY2UuIFRoZXNlIGZhY3RvcmllcyB3aWxsCisgICAgICogcmV0dXJuIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHN1Yi1jbGFzcyBvZiBOdW1iZXJGb3JtYXQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdCgpIHsKKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgVUxvY2FsZSBkZWYgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBnZXRQYXR0ZXJuKGRlZiwgMCk7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICB0aGlzLnN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZGVmKTsKKyAgICAgICAgc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoZGVmKSk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBmYWxzZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHRoZSBzeW1ib2xzCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4gVGhpcyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIG9idGFpbiBhCisgICAgICogRGVjaW1hbEZvcm1hdCB3aGVuIGludGVybmF0aW9uYWxpemF0aW9uIGlzIG5vdCB0aGUgbWFpbiBjb25jZXJuLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuIGxvY2FsZSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcyBnZXROdW1iZXJJbnN0YW5jZS4gVGhlc2UgZmFjdG9yaWVzIHdpbGwKKyAgICAgKiByZXR1cm4gdGhlIG1vc3QgYXBwcm9wcmlhdGUgc3ViLWNsYXNzIG9mIE51bWJlckZvcm1hdCBmb3IgYSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBBIG5vbi1sb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIHBhdHRlcm4gaXMgaW52YWxpZC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldE51bWJlckluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0Q3VycmVuY3lJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldFBlcmNlbnRJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICBVTG9jYWxlIGRlZiA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0aGlzLnN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZGVmKTsKKyAgICAgICAgc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoZGVmKSk7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgc3ltYm9scy4KKyAgICAgKiBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuIHlvdSBuZWVkIHRvIGNvbXBsZXRlbHkgY3VzdG9taXplIHRoZQorICAgICAqIGJlaGF2aW9yIG9mIHRoZSBmb3JtYXQuCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzCisgICAgICogZ2V0SW5zdGFuY2Ugb3IgZ2V0Q3VycmVuY3lJbnN0YW5jZS4gSWYgeW91IG5lZWQgb25seSBtaW5vciBhZGp1c3RtZW50cworICAgICAqIHRvIGEgc3RhbmRhcmQgZm9ybWF0LCB5b3UgY2FuIG1vZGlmeSB0aGUgZm9ybWF0IHJldHVybmVkIGJ5CisgICAgICogYSBOdW1iZXJGb3JtYXQgZmFjdG9yeSBtZXRob2QuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHN5bWJvbHMgdGhlIHNldCBvZiBzeW1ib2xzIHRvIGJlIHVzZWQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMpIHsKKyAgICAgICAgLy8gQWx3YXlzIGFwcGx5UGF0dGVybiBhZnRlciB0aGUgc3ltYm9scyBhcmUgc2V0CisgICAgICAgIHRoaXMuc3ltYm9scyA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgc3ltYm9scy5jbG9uZSgpOworICAgICAgICBzZXRDdXJyZW5jeUZvclN5bWJvbHMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKCBwYXR0ZXJuLCBmYWxzZSApOworICAgIH0KKworCS8qKgorCSAqIEBzdGFibGUgSUNVIDIuMAorCSAqLworCXB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisJCQlGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKwkJcmV0dXJuIGZvcm1hdChudW1iZXIsIHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgZmFsc2UpOworCX0KKwkKKwkvLyBbU3BhcmsvQ0RMXSBUaGUgYWN0dWFsIG1ldGhvZCB0byBmb3JtYXQgbnVtYmVyLiBJZiBib29sZWFuIHZhbHVlCisJLy8gcGFyc2VBdHRyID09IHRydWUsIHRoZW4gYXR0cmlidXRlIGluZm9ybWF0aW9uIHdpbGwgYmUgcmVjb3JkZWQuCisJcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisJCQlGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24sIGJvb2xlYW4gcGFyc2VBdHRyKSAKKyAgICB7CisgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleCgwKTsKKyAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleCgwKTsKKworICAgICAgICBpZiAoRG91YmxlLmlzTmFOKG51bWJlcikpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldE5hTigpKTsKKwkJCS8vIFtTcGFyay9DRExdIEFkZCBhdHRyaWJ1dGUgZm9yIE5hTiBoZXJlLgorCQkJLy8gcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldE5hTigpKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJYWRkQXR0cmlidXRlKEZpZWxkLklOVEVHRVIsIHJlc3VsdC5sZW5ndGgoKQorCQkJCQkJLSBzeW1ib2xzLmdldE5hTigpLmxlbmd0aCgpLCByZXN1bHQubGVuZ3RoKCkpOworCQkJfQorLy8jZW5kaWYKKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCAwLCAwKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBEZXRlY3Rpbmcgd2hldGhlciBhIGRvdWJsZSBpcyBuZWdhdGl2ZSBpcyBlYXN5IHdpdGggdGhlIGV4Y2VwdGlvbiBvZgorICAgICAgICAgKiB0aGUgdmFsdWUgLTAuMC4gIFRoaXMgaXMgYSBkb3VibGUgd2hpY2ggaGFzIGEgemVybyBtYW50aXNzYSAoYW5kCisgICAgICAgICAqIGV4cG9uZW50KSwgYnV0IGEgbmVnYXRpdmUgc2lnbiBiaXQuICBJdCBpcyBzZW1hbnRpY2FsbHkgZGlzdGluY3QgZnJvbQorICAgICAgICAgKiBhIHplcm8gd2l0aCBhIHBvc2l0aXZlIHNpZ24gYml0LCBhbmQgdGhpcyBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQKKyAgICAgICAgICogdG8gY2VydGFpbiBraW5kcyBvZiBjb21wdXRhdGlvbnMuICBIb3dldmVyLCBpdCdzIGEgbGl0dGxlIHRyaWNreSB0bworICAgICAgICAgKiBkZXRlY3QsIHNpbmNlICgtMC4wID09IDAuMCkgYW5kICEoLTAuMCA8IDAuMCkuICBIb3cgdGhlbiwgeW91IG1heQorICAgICAgICAgKiBhc2ssIGRvZXMgaXQgYmVoYXZlIGRpc3RpbmN0bHkgZnJvbSArMC4wPyAgV2VsbCwgMS8oLTAuMCkgPT0KKyAgICAgICAgICogLUluZmluaXR5LiAgUHJvcGVyIGRldGVjdGlvbiBvZiAtMC4wIGlzIG5lZWRlZCB0byBkZWFsIHdpdGggdGhlCisgICAgICAgICAqIGlzc3VlcyByYWlzZWQgYnkgYnVncyA0MTA2NjU4LCA0MTA2NjY3LCBhbmQgNDE0NzcwNi4gIExpdSA3LzYvOTguCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUgPSAobnVtYmVyIDwgMC4wKSB8fCAobnVtYmVyID09IDAuMCAmJiAxL251bWJlciA8IDAuMCk7CisgICAgICAgIGlmIChpc05lZ2F0aXZlKSBudW1iZXIgPSAtbnVtYmVyOworCisgICAgICAgIC8vIERvIHRoaXMgQkVGT1JFIGNoZWNraW5nIHRvIHNlZSBpZiB2YWx1ZSBpcyBpbmZpbml0ZSEKKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgbnVtYmVyICo9IG11bHRpcGxpZXI7CisKKyAgICAgICAgLy8gQXBwbHkgcm91bmRpbmcgYWZ0ZXIgbXVsdGlwbGllcgorICAgICAgICBpZiAocm91bmRpbmdEb3VibGUgPiAwLjApIHsKKyAgICAgICAgICAgIC8vIG51bWJlciA9IHJvdW5kaW5nRG91YmxlCisgICAgICAgICAgICAvLyAgKiByb3VuZChudW1iZXIgLyByb3VuZGluZ0RvdWJsZSwgcm91bmRpbmdNb2RlLCBpc05lZ2F0aXZlKTsKKyAgICAgICAgICAgIGRvdWJsZSBuZXdOdW1iZXIgPSByb3VuZChudW1iZXIsIHJvdW5kaW5nRG91YmxlLCByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwsIHJvdW5kaW5nTW9kZSwgaXNOZWdhdGl2ZSk7CisgICAgICAgICAgICBpZiAobmV3TnVtYmVyID09IDAuMCAmJiBudW1iZXIgIT0gbmV3TnVtYmVyKSBpc05lZ2F0aXZlID0gZmFsc2U7IC8vIGlmIHdlIHRvdWNoZWQgaXQsIHRoZW4gbWFrZSB6ZXJvIGJlIHplcm8uCisgICAgICAgICAgICBudW1iZXIgPSBuZXdOdW1iZXI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoRG91YmxlLmlzSW5maW5pdGUobnVtYmVyKSkKKyAgICAgICAgeworICAgICAgICAJaW50IHByZWZpeExlbiA9IGFwcGVuZEFmZml4KHJlc3VsdCwgaXNOZWdhdGl2ZSwgdHJ1ZSwgcGFyc2VBdHRyKTsKKworICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBpbmZpbml0eSBoZXJlLgorCQkJcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldEluZmluaXR5KCkpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCWlmIChwYXJzZUF0dHIpIHsKKwkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuSU5URUdFUiwgcmVzdWx0Lmxlbmd0aCgpCisJCQkJCQktIHN5bWJvbHMuZ2V0SW5maW5pdHkoKS5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCX0KKy8vI2VuZGlmCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3VmZml4TGVuID0gYXBwZW5kQWZmaXgocmVzdWx0LCBpc05lZ2F0aXZlLCBmYWxzZSwgcGFyc2VBdHRyKTsKKworICAgICAgICAgICAgYWRkUGFkZGluZyhyZXN1bHQsIGZpZWxkUG9zaXRpb24sIHByZWZpeExlbiwgc3VmZml4TGVuKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbihmYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmICFhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSk7CisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgaXNOZWdhdGl2ZSwgZmFsc2UsCisJCQkJCXBhcnNlQXR0cik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJvdW5kIGEgZG91YmxlIHZhbHVlIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHRoZSBnaXZlbgorICAgICAqIHJvdW5kaW5nIGluY3JlbWVudCwgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBtb2RlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcm91bmRpbmcgdmFsdWUvcm91bmRpbmdJbmMgdG8gdGhlIG5lYXJlc3QKKyAgICAgKiBpbnRlZ2VyLCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIG1vZGUsIGFuZCByZXR1cm5pbmcgdGhhdAorICAgICAqIGludGVnZXIgKiByb3VuZGluZ0luYy4KKyAgICAgKiBOb3RlIHRoaXMgaXMgY2hhbmdlZCBmcm9tIHRoZSB2ZXJzaW9uIGluIDIuNCwgc2luY2UgZGl2aXNpb24gb2YgZG91YmxlcworICAgICAqIGhhdmUgaW5hY2N1cmFjaWVzLiBqaXR0ZXJidWcgMTg3MS4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIHRvIGJlIHJvdW5kZWQKKyAgICAgKiBAcGFyYW0gcm91bmRpbmdJbmMgdGhlIHJvdW5kaW5nIGluY3JlbWVudAorICAgICAqIEBwYXJhbSByb3VuZGluZ0luY1JlY2lwcm9jYWwgaWYgbm9uLXplcm8sIGlzIHRoZSAKKyAgICAgKiBAcGFyYW0gbW9kZSBhIEJpZ0RlY2ltYWwgcm91bmRpbmcgbW9kZQorICAgICAqIEBwYXJhbSBpc05lZ2F0aXZlIHRydWUgaWYgdGhlIG51bWJlciB0byBiZSByb3VuZGVkIGlzIG5lZ2F0aXZlCisgICAgICogQHJldHVybiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIHJvdW5kZWQgcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZG91YmxlIHJvdW5kKGRvdWJsZSBudW1iZXIsIGRvdWJsZSByb3VuZGluZ0luYywgCisgICAgCQlkb3VibGUgcm91bmRpbmdJbmNSZWNpcHJvY2FsLCBpbnQgbW9kZSwgYm9vbGVhbiBpc05lZ2F0aXZlKSB7CisgICAgCQorICAgIAlkb3VibGUgZGl2ID0gcm91bmRpbmdJbmNSZWNpcHJvY2FsID09IDAuMCAKKyAgICAJCT8gbnVtYmVyIC8gcm91bmRpbmdJbmMKKyAgICAJICAgIDogbnVtYmVyICogcm91bmRpbmdJbmNSZWNpcHJvY2FsOworICAgIAkKKyAgICAJLy8gZG8gdGhlIGFic29sdXRlIGNhc2VzIGZpcnN0CisgICAgCQorICAgIAlzd2l0Y2ggKG1vZGUpIHsKKyAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0NFSUxJTkc6CisgICAgCQlkaXYgPSAoaXNOZWdhdGl2ZSA/IE1hdGguZmxvb3IoZGl2ICsgZXBzaWxvbikgOiBNYXRoLmNlaWwoZGl2IC0gZXBzaWxvbikpOworICAgIAkJYnJlYWs7CisgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9GTE9PUjoKKyAgICAJCWRpdiA9IChpc05lZ2F0aXZlID8gTWF0aC5jZWlsKGRpdiAtIGVwc2lsb24pIDogTWF0aC5mbG9vcihkaXYgKyBlcHNpbG9uKSk7CisgICAgCQlicmVhazsKKyAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0RPV046CisgICAgCQlkaXYgPSAoTWF0aC5mbG9vcihkaXYgKyBlcHNpbG9uKSk7CisgICAgCQlicmVhazsKKyAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX1VQOgorICAgIAkJZGl2ID0gKE1hdGguY2VpbChkaXYgLSBlcHNpbG9uKSk7CisgICAgCQlicmVhazsKKyAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZOgorICAgIAkJaWYgKGRpdiAhPSBNYXRoLmZsb29yKGRpdikpIHsKKyAgICAJCQl0aHJvdyBuZXcgQXJpdGhtZXRpY0V4Y2VwdGlvbigiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgICAgCQl9CisgICAgCQlyZXR1cm4gbnVtYmVyOworICAgIAlkZWZhdWx0OgorICAgIAkJCisgICAgCQkvLyBIYW5kbGUgY29tcGxleCBjYXNlcywgd2hlcmUgdGhlIGNob2ljZSBkZXBlbmRzIG9uIHRoZSBjbG9zZXIgdmFsdWUuCisgICAgCQkKKyAgICAJCS8vIFdlIGZpZ3VyZSBvdXQgdGhlIGRpc3RhbmNlcyB0byB0aGUgdHdvIHBvc3NpYmxlIHZhbHVlcywgY2VpbGluZyBhbmQgZmxvb3IuCisgICAgCQkvLyBXZSB0aGVuIGdvIGZvciB0aGUgZGlmZiB0aGF0IGlzIHNtYWxsZXIuCisgICAgCQkvLyBPbmx5IGlmIHRoZXkgYXJlIGVxdWFsIGRvZXMgdGhlIG1vZGUgbWF0dGVyLgorCSAgICAJCQorCSAgICAJZG91YmxlIGNlaWwgPSBNYXRoLmNlaWwoZGl2KTsKKwkgICAgCWRvdWJsZSBjZWlsZGlmZiA9IGNlaWwgLSBkaXY7IC8vIChjZWlsICogcm91bmRpbmdJbmMpIC0gbnVtYmVyOworCSAgICAJZG91YmxlIGZsb29yID0gTWF0aC5mbG9vcihkaXYpOworCSAgICAJZG91YmxlIGZsb29yZGlmZiA9IGRpdiAtIGZsb29yOyAvLyBudW1iZXIgLSAoZmxvb3IgKiByb3VuZGluZ0luYyk7CisJICAgIAkKKwkgICAgCS8vIE5vdGUgdGhhdCB0aGUgZGlmZiB2YWx1ZXMgd2VyZSB0aG9zZSBtYXBwZWQgYmFjayB0byB0aGUgIm5vcm1hbCIgc3BhY2UKKwkgICAgCS8vIGJ5IHVzaW5nIHRoZSByb3VuZGluZ0luYy4gSSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGUgb3JpZ2luYWwgYXV0aG9yIG9mIHRoZSBjb2RlCisJICAgIAkvLyBidXQgc3VzcGVjdCB0aGF0IHRoYXQgd2FzIHRvIHByb2R1Y2UgYmV0dGVyIHJlc3VsdCBpbiBlZGdlIGNhc2VzIGJlY2F1c2Ugb2YgbWFjaGluZQorCSAgICAJLy8gcHJlY2lzaW9uLCByYXRoZXIgdGhhbiBzaW1wbHkgdXNpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2Vlbiwgc2F5LCBjZWlsIGFuZCBkaXYuCisJICAgIAkvLyBIb3dldmVyLCBpdCBkaWRuJ3Qgd29yayBpbiBhbGwgY2FzZXMuIEFtIHRyeWluZyBpbnN0ZWFkIHVzaW5nIGFuIGVwc2lsb24gdmFsdWUuCisJICAgIAkKKwkgICAgCXN3aXRjaCAobW9kZSkgeworCSAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjoKKwkgICAgCQkvLyBXZSBzaG91bGQgYmUgYWJsZSB0byBqdXN0IHJldHVybiBNYXRoLnJpbnQoYSksIGJ1dCB0aGlzCisJICAgIAkJLy8gZG9lc24ndCB3b3JrIGluIHNvbWUgVk1zLgorCSAgICAJCS8vIGlmIG9uZSBpcyBzbWFsbGVyIHRoYW4gdGhlIG90aGVyLCB0YWtlIHRoZSBjb3JyZXNwb25kaW5nIHNpZGUKKwkgICAgCQlpZiAoZmxvb3JkaWZmICsgZXBzaWxvbiA8IGNlaWxkaWZmKSB7CisJICAgIAkJCWRpdiA9IGZsb29yOworCSAgICAJCX0gZWxzZSBpZiAoY2VpbGRpZmYgKyBlcHNpbG9uIDwgZmxvb3JkaWZmKSB7CisJICAgIAkJCWRpdiA9IGNlaWw7CisJICAgIAkJfSBlbHNlIHsgLy8gdGhleSBhcmUgZXF1YWwsIHNvIHdlIHdhbnQgdG8gcm91bmQgdG8gd2hpY2hldmVyIGlzIGV2ZW4KKwkgICAgCQkJZG91YmxlIHRlc3RGbG9vciA9IGZsb29yIC8gMjsKKwkgICAgCQkJZGl2ID0gKHRlc3RGbG9vciA9PSBNYXRoLmZsb29yKHRlc3RGbG9vcikpID8gZmxvb3IgOiBjZWlsOworCSAgICAJCX0KKwkgICAgCQlicmVhazsKKwkgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9IQUxGX0RPV046CisJICAgIAkJZGl2ID0gKChmbG9vcmRpZmYgPD0gY2VpbGRpZmYgKyBlcHNpbG9uKSA/IGZsb29yIDogY2VpbCk7CisJICAgIAkJYnJlYWs7CisJICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUDoKKwkgICAgCQlkaXYgPSAoKGNlaWxkaWZmIDw9IGZsb29yZGlmZiArIGVwc2lsb24pID8gY2VpbCA6IGZsb29yKTsKKwkgICAgCQlicmVhazsKKwkgICAgCWRlZmF1bHQ6CisJICAgIAkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByb3VuZGluZyBtb2RlOiAiICsgbW9kZSk7CisJICAgIAl9CisgICAgCX0KKyAgICAJbnVtYmVyID0gcm91bmRpbmdJbmNSZWNpcHJvY2FsID09IDAuMAorICAgIAkJPyBkaXYgKiByb3VuZGluZ0luYworICAgIAkJOiBkaXYgLyByb3VuZGluZ0luY1JlY2lwcm9jYWw7CisgICAgCXJldHVybiBudW1iZXI7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGRvdWJsZSBlcHNpbG9uID0gMC4wMDAwMDAwMDAwMTsKKworCS8qKgorCSAqIEBzdGFibGUgSUNVIDIuMAorCSAqLworCS8vIFtTcGFyay9DRExdIERlbGVnYXRlIHRvIGZvcm1hdF9sb25nX1N0cmluZ0J1ZmZlcl9GaWVsZFBvc2l0aW9uX2Jvb2xlYW4KKwlwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKwkJCUZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworCQlyZXR1cm4gZm9ybWF0KG51bWJlciwgcmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBmYWxzZSk7CisJfQorCisJcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLCBib29sZWFuIHBhcnNlQXR0cikgCisgICAgeworICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgLy8gSWYgd2UgYXJlIHRvIGRvIHJvdW5kaW5nLCB3ZSBuZWVkIHRvIG1vdmUgaW50byB0aGUgQmlnRGVjaW1hbAorICAgICAgICAvLyBkb21haW4gaW4gb3JkZXIgdG8gZG8gZGl2aWRlL211bHRpcGx5IGNvcnJlY3RseS4KKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoQmlnRGVjaW1hbC52YWx1ZU9mKG51bWJlciksIHJlc3VsdCwgZmllbGRQb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUgPSAobnVtYmVyIDwgMCk7CisgICAgICAgIGlmIChpc05lZ2F0aXZlKSBudW1iZXIgPSAtbnVtYmVyOworCisgICAgICAgIC8vIEluIGdlbmVyYWwsIGxvbmcgdmFsdWVzIGFsd2F5cyByZXByZXNlbnQgcmVhbCBmaW5pdGUgbnVtYmVycywgc28KKyAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBmb3IgKy8tIEluZmluaXR5IG9yIE5hTi4gIEhvd2V2ZXIsIHRoZXJlCisgICAgICAgIC8vIGlzIG9uZSBjYXNlIHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCBvZjogIFRoZSBtdWx0aXBsaWVyIGNhbiBwdXNoCisgICAgICAgIC8vIGEgbnVtYmVyIG5lYXIgTUlOX1ZBTFVFIG9yIE1BWF9WQUxVRSBvdXRzaWRlIHRoZSBsZWdhbCByYW5nZS4gIFdlCisgICAgICAgIC8vIGNoZWNrIGZvciB0aGlzIGJlZm9yZSBtdWx0aXBseWluZywgYW5kIGlmIGl0IGhhcHBlbnMgd2UgdXNlIEJpZ0ludGVnZXIKKyAgICAgICAgLy8gaW5zdGVhZC4KKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgeworICAgICAgICAgICAgYm9vbGVhbiB0b29CaWcgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChudW1iZXIgPCAwKSB7IC8vIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIG51bWJlciA9PSBMb25nLk1JTl9WQUxVRQorICAgICAgICAgICAgICAgIGxvbmcgY3V0b2ZmID0gTG9uZy5NSU5fVkFMVUUgLyBtdWx0aXBsaWVyOworICAgICAgICAgICAgICAgIHRvb0JpZyA9IChudW1iZXIgPCBjdXRvZmYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb25nIGN1dG9mZiA9IExvbmcuTUFYX1ZBTFVFIC8gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICB0b29CaWcgPSAobnVtYmVyID4gY3V0b2ZmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0b29CaWcpIHsKKwkJCQkvLyBbU3BhcmsvQ0RMXSBVc2UKKwkJCQkvLyBmb3JtYXRfQmlnSW50ZWdlcl9TdHJpbmdCdWZmZXJfRmllbGRQb3NpdGlvbl9ib29sZWFuIGluc3RlYWQKKwkJCQkvLyBwYXJzZUF0dHIgaXMgdXNlZCB0byBqdWRnZSB3aGV0aGVyIHRvIHN5bnRoZXNpemUgYXR0cmlidXRlcy4KKwkJCQlyZXR1cm4gZm9ybWF0KAorCQkJCQkJQmlnSW50ZWdlci52YWx1ZU9mKGlzTmVnYXRpdmUgPyAtbnVtYmVyIDogbnVtYmVyKSwKKwkJCQkJCXJlc3VsdCwgZmllbGRQb3NpdGlvbiwgcGFyc2VBdHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG51bWJlciAqPSBtdWx0aXBsaWVyOworICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgcHJlY2lzaW9uKHRydWUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBpc05lZ2F0aXZlLCB0cnVlLCBwYXJzZUF0dHIpOworICAgICAgICB9CisgICAgfQorCisJLyoqCisJICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBGb3JtYXQgYQorCSAqIEJpZ0ludGVnZXIgbnVtYmVyLgorCSAqIAorCSAqIEBzdGFibGUgSUNVIDIuMAorCSAqLworCXB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisJCXJldHVybiBmb3JtYXQobnVtYmVyLCByZXN1bHQsIGZpZWxkUG9zaXRpb24sIGZhbHNlKTsKKwl9CisKKwkvLyBbU3BhcmsvQ0RMXSAKKwlwcml2YXRlIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisJCQlGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24sIGJvb2xlYW4gcGFyc2VBdHRyKSB7CisgICAgICAgIC8vIElmIHdlIGFyZSB0byBkbyByb3VuZGluZywgd2UgbmVlZCB0byBtb3ZlIGludG8gdGhlIEJpZ0RlY2ltYWwKKyAgICAgICAgLy8gZG9tYWluIGluIG9yZGVyIHRvIGRvIGRpdmlkZS9tdWx0aXBseSBjb3JyZWN0bHkuCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KG5ldyBCaWdEZWNpbWFsKG51bWJlciksIHJlc3VsdCwgZmllbGRQb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIubXVsdGlwbHkoQmlnSW50ZWdlci52YWx1ZU9mKG11bHRpcGxpZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgYXJlIGd1YXJhbnRlZWQgYSBub25uZWdhdGl2ZSBmaW5pdGUKKyAgICAgICAgLy8gbnVtYmVyLgorICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgcHJlY2lzaW9uKHRydWUpKTsKKwkJCXJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBudW1iZXIuc2lnbnVtKCkgPCAwLCBmYWxzZSwJcGFyc2VBdHRyKTsKKyAgICAgICAgfQorICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnRGVjaW1hbCBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworCQlyZXR1cm4gZm9ybWF0KG51bWJlciwgcmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBmYWxzZSk7CisJfQorCQorCXByaXZhdGUgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisJCQlTdHJpbmdCdWZmZXIgcmVzdWx0LCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24sIGJvb2xlYW4gcGFyc2VBdHRyKSB7CisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5tdWx0aXBseShqYXZhLm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKG11bHRpcGxpZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIuZGl2aWRlKHJvdW5kaW5nSW5jcmVtZW50LCAwLCByb3VuZGluZ01vZGUpCisgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShyb3VuZGluZ0luY3JlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgcHJlY2lzaW9uKGZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIXVzZUV4cG9uZW50aWFsTm90YXRpb24gJiYgIWFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpKTsKKwkJCXJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBudW1iZXIuc2lnbnVtKCkgPCAwLCBmYWxzZSwJcGFyc2VBdHRyKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorLy8jZW5kaWYKKyAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnRGVjaW1hbCBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnRGVjaW1hbCBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIC8qIFRoaXMgbWV0aG9kIGlzIGp1c3QgYSBjb3B5IG9mIHRoZSBjb3JyZXNwb25kaW5nIGphdmEubWF0aC5CaWdEZWNpbWFsCisgICAgICAgICAqIG1ldGhvZCBmb3Igbm93LiAgSXQgaXNuJ3QgdmVyeSBlZmZpY2llbnQgc2luY2UgaXQgbXVzdCBjcmVhdGUgYQorICAgICAgICAgKiBjb252ZXJzaW9uIG9iamVjdCB0byBkbyBtYXRoIG9uIHRoZSByb3VuZGluZyBpbmNyZW1lbnQuICBJbiB0aGUKKyAgICAgICAgICogZnV0dXJlIHdlIG1heSB0cnkgdG8gY2xlYW4gdGhpcyB1cCwgb3IgZXZlbiBiZXR0ZXIsIGxpbWl0IG91ciBzdXBwb3J0CisgICAgICAgICAqIHRvIGp1c3Qgb25lIGZsYXZvciBvZiBCaWdEZWNpbWFsLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLm11bHRpcGx5KEJpZ0RlY2ltYWwudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgIT0gbnVsbCkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLmRpdmlkZShyb3VuZGluZ0luY3JlbWVudElDVSwgMCwgcm91bmRpbmdNb2RlKQorICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHkocm91bmRpbmdJbmNyZW1lbnRJQ1UpOworICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbihmYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmICFhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSk7CisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgbnVtYmVyLnNpZ251bSgpIDwgMCwgZmFsc2UpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBhIGdyb3VwaW5nIHNlcGFyYXRvciBiZWxvbmdzIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLCBiYXNlZCBvbiB3aGV0aGVyIGdyb3VwaW5nIGlzIGluIHVzZSBhbmQgdGhlIHZhbHVlcyBvZgorICAgICAqIHRoZSBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgZ3JvdXBpbmcgaW50ZXJ2YWwuCisgICAgICogQHBhcmFtIHBvcyB0aGUgbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIHRoZSByaWdodCBvZgorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uLiAgWmVybyBpbmRpY2F0ZXMgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZQorICAgICAqIHJpZ2h0bW9zdCBpbnRlZ2VyIGRpZ2l0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIGdyb3VwaW5nIGNoYXJhY3RlciBiZWxvbmdzIGF0IHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzR3JvdXBpbmdQb3NpdGlvbihpbnQgcG9zKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIGlmIChpc0dyb3VwaW5nVXNlZCgpICYmIChwb3MgPiAwKSAmJiAoZ3JvdXBpbmdTaXplID4gMCkpIHsKKyAgICAgICAgICAgIGlmICgoZ3JvdXBpbmdTaXplMiA+IDApICYmIChwb3MgPiBncm91cGluZ1NpemUpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKChwb3MgLSBncm91cGluZ1NpemUpICUgZ3JvdXBpbmdTaXplMikgPT0gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcG9zICUgZ3JvdXBpbmdTaXplID09IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gZGlzcGxheSwgb3IgdGhlIHRvdGFsCisgICAgICogbnVtYmVyIG9mIGRpZ2l0cyBmb3Igc2lnbmlmaWNhbnQgZGlnaXQgZm9ybWF0cyBhbmQgZXhwb25lbnRpYWwKKyAgICAgKiBmb3JtYXRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZWNpc2lvbihib29sZWFuIGlzSW50ZWdyYWwpIHsKKyAgICAgICAgaWYgKGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCk7CisgICAgICAgIH0gZWxzZSBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBpc0ludGVncmFsID8gMCA6IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxldGUgdGhlIGZvcm1hdHRpbmcgb2YgYSBmaW5pdGUgbnVtYmVyLiAgT24gZW50cnksIHRoZSBkaWdpdExpc3QgbXVzdAorICAgICAqIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBjb3JyZWN0IGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzdWJmb3JtYXQoU3RyaW5nQnVmZmVyIHJlc3VsdCwgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUsIGJvb2xlYW4gaXNJbnRlZ2VyKXsKKwkJcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIGlzTmVnYXRpdmUsIGlzSW50ZWdlciwgZmFsc2UpOworCX0KKworCXByaXZhdGUgU3RyaW5nQnVmZmVyIHN1YmZvcm1hdChTdHJpbmdCdWZmZXIgcmVzdWx0LAorCQkJRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLCBib29sZWFuIGlzTmVnYXRpdmUsIGJvb2xlYW4gaXNJbnRlZ2VyLAorCQkJYm9vbGVhbiBwYXJzZUF0dHIpIAorICAgIHsKKyAgICAgICAgLy8gTk9URTogVGhpcyBpc24ndCByZXF1aXJlZCBhbnltb3JlIGJlY2F1c2UgRGlnaXRMaXN0IHRha2VzIGNhcmUgb2YgdGhpcy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gIC8vIFRoZSBuZWdhdGl2ZSBvZiB0aGUgZXhwb25lbnQgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcKKyAgICAgICAgLy8gIC8vIHplcm9zIGJldHdlZW4gdGhlIGRlY2ltYWwgYW5kIHRoZSBmaXJzdCBub24temVybyBkaWdpdCwgZm9yCisgICAgICAgIC8vICAvLyBhIHZhbHVlIDwgMC4xIChlLmcuLCBmb3IgMC4wMDEyMywgLWZFeHBvbmVudCA9PSAyKS4gIElmIHRoaXMKKyAgICAgICAgLy8gIC8vIGlzIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMsIHRoZW4gd2UgaGF2ZSBhbiB1bmRlcmZsb3cKKyAgICAgICAgLy8gIC8vIGZvciB0aGUgcHJpbnRlZCByZXByZXNlbnRhdGlvbi4gIFdlIHJlY29nbml6ZSB0aGlzIGhlcmUgYW5kIHNldAorICAgICAgICAvLyAgLy8gdGhlIERpZ2l0TGlzdCByZXByZXNlbnRhdGlvbiB0byB6ZXJvIGluIHRoaXMgc2l0dWF0aW9uLgorICAgICAgICAvLworICAgICAgICAvLyAgaWYgKC1kaWdpdExpc3QuZGVjaW1hbEF0ID49IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKQorICAgICAgICAvLyAgeworICAgICAgICAvLyAgICAgIGRpZ2l0TGlzdC5jb3VudCA9IDA7CisgICAgICAgIC8vICB9CisKKyAgICAgICAgaW50IGk7CisgICAgICAgIGNoYXIgemVybyA9IHN5bWJvbHMuZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgIGludCB6ZXJvRGVsdGEgPSB6ZXJvIC0gJzAnOyAvLyAnMCcgaXMgdGhlIERpZ2l0TGlzdCByZXByZXNlbnRhdGlvbiBvZiB6ZXJvCisgICAgICAgIGNoYXIgZ3JvdXBpbmcgPSBpc0N1cnJlbmN5Rm9ybWF0ID8KKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5nZXRNb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgIGNoYXIgZGVjaW1hbCA9IGlzQ3VycmVuY3lGb3JtYXQgPworICAgICAgICAgICAgc3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSA6CisgICAgICAgICAgICBzeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgYm9vbGVhbiB1c2VTaWdEaWcgPSBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKTsKKyAgICAgICAgaW50IG1heEludERpZyA9IGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCk7CisgICAgICAgIGludCBtaW5JbnREaWcgPSBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworCisgICAgICAgIC8qIFBlciBidWcgNDE0NzcwNiwgRGVjaW1hbEZvcm1hdCBtdXN0IHJlc3BlY3QgdGhlIHNpZ24gb2YgbnVtYmVycyB3aGljaAorICAgICAgICAgKiBmb3JtYXQgYXMgemVyby4gIFRoaXMgYWxsb3dzIHNlbnNpYmxlIGNvbXB1dGF0aW9ucyBhbmQgcHJlc2VydmVzCisgICAgICAgICAqIHJlbGF0aW9ucyBzdWNoIGFzIHNpZ251bSgxL3gpID0gc2lnbnVtKHgpLCB3aGVyZSB4IGlzICtJbmZpbml0eSBvcgorICAgICAgICAgKiAtSW5maW5pdHkuICBQcmlvciB0byB0aGlzIGZpeCwgd2UgYWx3YXlzIGZvcm1hdHRlZCB6ZXJvIHZhbHVlcyBhcyBpZgorICAgICAgICAgKiB0aGV5IHdlcmUgcG9zaXRpdmUuICBMaXUgNy82Lzk4LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGRpZ2l0TGlzdC5pc1plcm8oKSkKKyAgICAgICAgeworICAgICAgICAgICAgZGlnaXRMaXN0LmRlY2ltYWxBdCA9IDA7IC8vIE5vcm1hbGl6ZQorICAgICAgICB9CisKKyAgICAgICAgaW50IHByZWZpeExlbiA9IGFwcGVuZEFmZml4KHJlc3VsdCwgaXNOZWdhdGl2ZSwgdHJ1ZSwgcGFyc2VBdHRyKTsKKworICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleCgtMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoLTEpOworICAgICAgICAgICAgfQorCisJCQkvLyBbU3BhcmsvQ0RMXQorCQkJLy8gdGhlIGJlZ2luIGluZGV4IG9mIGludGVnZXIgcGFydAorCQkJLy8gdGhlIGVuZCBpbmRleCBvZiBpbnRlZ2VyIHBhcnQKKwkJCS8vIHRoZSBiZWdpbiBpbmRleCBvZiBmcmFjdGlvbmFsIHBhcnQKKwkJCWludCBpbnRCZWdpbiA9IHJlc3VsdC5sZW5ndGgoKTsKKwkJCWludCBpbnRFbmQgPSAtMTsKKwkJCWludCBmcmFjQmVnaW4gPSAtMTsKKworICAgICAgICAgICAgaW50IG1pbkZyYWNEaWcgPSAwOworICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgIG1heEludERpZyA9IG1pbkludERpZyA9IDE7CisgICAgICAgICAgICAgICAgbWluRnJhY0RpZyA9IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWluRnJhY0RpZyA9IGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgICAgICAgICAgICAgIGlmIChtYXhJbnREaWcgPiBNQVhfU0NJRU5USUZJQ19JTlRFR0VSX0RJR0lUUykgeworICAgICAgICAgICAgICAgICAgICBtYXhJbnREaWcgPSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4SW50RGlnIDwgbWluSW50RGlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhJbnREaWcgPSBtaW5JbnREaWc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1heEludERpZyA+IG1pbkludERpZykgeworICAgICAgICAgICAgICAgICAgICBtaW5JbnREaWcgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKworICAgICAgICAgICAgLy8gTWluaW11bSBpbnRlZ2VyIGRpZ2l0cyBhcmUgaGFuZGxlZCBpbiBleHBvbmVudGlhbCBmb3JtYXQgYnkKKyAgICAgICAgICAgIC8vIGFkanVzdGluZyB0aGUgZXhwb25lbnQuICBGb3IgZXhhbXBsZSwgMC4wMTIzNCB3aXRoIDMgbWluaW11bQorICAgICAgICAgICAgLy8gaW50ZWdlciBkaWdpdHMgaXMgIjEyMy40RS00Ii4KKworICAgICAgICAgICAgLy8gTWF4aW11bSBpbnRlZ2VyIGRpZ2l0cyBhcmUgaW50ZXJwcmV0ZWQgYXMgaW5kaWNhdGluZyB0aGUKKyAgICAgICAgICAgIC8vIHJlcGVhdGluZyByYW5nZS4gIFRoaXMgaXMgdXNlZnVsIGZvciBlbmdpbmVlcmluZyBub3RhdGlvbiwgaW4KKyAgICAgICAgICAgIC8vIHdoaWNoIHRoZSBleHBvbmVudCBpcyByZXN0cmljdGVkIHRvIGEgbXVsdGlwbGUgb2YgMy4gIEZvcgorICAgICAgICAgICAgLy8gZXhhbXBsZSwgMC4wMTIzNCB3aXRoIDMgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cyBpcyAiMTIuMzRlLTMiLgorICAgICAgICAgICAgLy8gSWYgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cyBhcmUgZGVmaW5lZCBhbmQgYXJlIGxhcmdlciB0aGFuCisgICAgICAgICAgICAvLyBtaW5pbXVtIGludGVnZXIgZGlnaXRzLCB0aGVuIG1pbmltdW0gaW50ZWdlciBkaWdpdHMgYXJlCisgICAgICAgICAgICAvLyBpZ25vcmVkLgorCisgICAgICAgICAgICBpbnQgZXhwb25lbnQgPSBkaWdpdExpc3QuZGVjaW1hbEF0OworICAgICAgICAgICAgaWYgKG1heEludERpZyA+IDEgJiYgbWF4SW50RGlnICE9IG1pbkludERpZykgeworICAgICAgICAgICAgICAgIC8vIEEgZXhwb25lbnQgaW5jcmVtZW50IGlzIGRlZmluZWQ7IGFkanVzdCB0byBpdC4KKyAgICAgICAgICAgICAgICBleHBvbmVudCA9IChleHBvbmVudCA+IDApID8gKGV4cG9uZW50IC0gMSkgLyBtYXhJbnREaWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGV4cG9uZW50IC8gbWF4SW50RGlnKSAtIDE7CisgICAgICAgICAgICAgICAgZXhwb25lbnQgKj0gbWF4SW50RGlnOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBObyBleHBvbmVudCBpbmNyZW1lbnQgaXMgZGVmaW5lZDsgdXNlIG1pbmltdW0gaW50ZWdlciBkaWdpdHMuCisgICAgICAgICAgICAgICAgLy8gSWYgbm9uZSBpcyBzcGVjaWZpZWQsIGFzIGluICIjRTAiLCBnZW5lcmF0ZSAxIGludGVnZXIgZGlnaXQuCisgICAgICAgICAgICAgICAgZXhwb25lbnQgLT0gKG1pbkludERpZyA+IDAgfHwgbWluRnJhY0RpZyA+IDApCisgICAgICAgICAgICAgICAgICAgID8gbWluSW50RGlnIDogMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2Ugbm93IG91dHB1dCBhIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cywgYW5kIG1vcmUgaWYgdGhlcmUKKyAgICAgICAgICAgIC8vIGFyZSBtb3JlIGRpZ2l0cywgdXAgdG8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gIFdlCisgICAgICAgICAgICAvLyBwbGFjZSB0aGUgZGVjaW1hbCBwb2ludCBhZnRlciB0aGUgImludGVnZXIiIGRpZ2l0cywgd2hpY2gKKyAgICAgICAgICAgIC8vIGFyZSB0aGUgZmlyc3QgKGRlY2ltYWxBdCAtIGV4cG9uZW50KSBkaWdpdHMuCisgICAgICAgICAgICBpbnQgbWluaW11bURpZ2l0cyA9IG1pbkludERpZyArIG1pbkZyYWNEaWc7CisgICAgICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIGhhbmRsZWQgc3BlY2lhbGx5IGlmIHRoZSBudW1iZXIKKyAgICAgICAgICAgIC8vIGlzIHplcm8sIHNpbmNlIHRoZW4gdGhlcmUgbWF5IGJlIG5vIGRpZ2l0cy4KKyAgICAgICAgICAgIGludCBpbnRlZ2VyRGlnaXRzID0gZGlnaXRMaXN0LmlzWmVybygpID8gbWluSW50RGlnIDoKKyAgICAgICAgICAgICAgICBkaWdpdExpc3QuZGVjaW1hbEF0IC0gZXhwb25lbnQ7CisgICAgICAgICAgICBpbnQgdG90YWxEaWdpdHMgPSBkaWdpdExpc3QuY291bnQ7CisgICAgICAgICAgICBpZiAobWluaW11bURpZ2l0cyA+IHRvdGFsRGlnaXRzKSB0b3RhbERpZ2l0cyA9IG1pbmltdW1EaWdpdHM7CisgICAgICAgICAgICBpZiAoaW50ZWdlckRpZ2l0cyA+IHRvdGFsRGlnaXRzKSB0b3RhbERpZ2l0cyA9IGludGVnZXJEaWdpdHM7CisKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPHRvdGFsRGlnaXRzOyArK2kpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gaW50ZWdlckRpZ2l0cykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkJCS8vIFtTcGFyay9DRExdIEFkZCBhdHRyaWJ1dGUgZm9yIGludGVnZXIgcGFydAorCQkJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJCQlpbnRFbmQgPSByZXN1bHQubGVuZ3RoKCk7CisJCQkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuSU5URUdFUiwgaW50QmVnaW4sIHJlc3VsdC5sZW5ndGgoKSk7CisJCQkJCX0KKy8vI2VuZGlmCisJCQkJCXJlc3VsdC5hcHBlbmQoZGVjaW1hbCk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBkZWNpbWFsIHNlcGFyYXRvcgorCQkJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJCQkvLyBMZW5ndGggb2YgZGVjaW1hbCBzZXBhcmF0b3IgaXMgMS4KKwkJCQkJCWludCBkZWNpbWFsU2VwYXJhdG9yQmVnaW4gPSByZXN1bHQubGVuZ3RoKCkgLSAxOworCQkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SLAorCQkJCQkJCQlkZWNpbWFsU2VwYXJhdG9yQmVnaW4sIHJlc3VsdC5sZW5ndGgoKSk7CisJCQkJCQlmcmFjQmVnaW4gPSByZXN1bHQubGVuZ3RoKCk7CisJCQkJCX0KKy8vI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5GUkFDVElPTl9GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoaSA8IGRpZ2l0TGlzdC5jb3VudCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoZGlnaXRMaXN0LmRpZ2l0c1tpXSArIHplcm9EZWx0YSkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICB6ZXJvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9Gb3IgSUNVIGNvbXBhdGliaWxpdHkgYW5kIGZvcm1hdCAwIHRvIDBFMCB3aXRoIHBhdHRlcm4gIiNFMCIgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgaWYgKGRpZ2l0TGlzdC5pc1plcm8oKSAmJiAodG90YWxEaWdpdHMgPT0wKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEVuZEluZGV4KCkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRCZWdpbkluZGV4KCkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJLy8gW1NwYXJrL0NETF0gQ2FsY3VhdGUgdGhlIGVuZCBpbmRleCBvZiBpbnRlZ2VyIHBhcnQgYW5kIGZyYWN0aW9uYWwKKwkJCS8vIHBhcnQgaWYgdGhleSBhcmUgbm90IHByb3Blcmx5IHByb2Nlc3NlZCB5ZXQuCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJaWYgKGludEVuZCA8IDApIHsKKwkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLklOVEVHRVIsIGludEJlZ2luLCByZXN1bHQubGVuZ3RoKCkpOworCQkJCX0KKwkJCQlpZiAoZnJhY0JlZ2luID4gMCkgeworCQkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuRlJBQ1RJT04sIGZyYWNCZWdpbiwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCQl9CisJCQl9CisvLyNlbmRpZgorCisgICAgICAgICAgICAvLyBUaGUgZXhwb25lbnQgaXMgb3V0cHV0IHVzaW5nIHRoZSBwYXR0ZXJuLXNwZWNpZmllZCBtaW5pbXVtCisgICAgICAgICAgICAvLyBleHBvbmVudCBkaWdpdHMuICBUaGVyZSBpcyBubyBtYXhpbXVtIGxpbWl0IHRvIHRoZSBleHBvbmVudAorICAgICAgICAgICAgLy8gZGlnaXRzLCBzaW5jZSB0cnVuY2F0aW5nIHRoZSBleHBvbmVudCB3b3VsZCByZXN1bHQgaW4gYW4KKyAgICAgICAgICAgIC8vIHVuYWNjZXB0YWJsZSBpbmFjY3VyYWN5LgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCkpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCS8vIFtTcGFyay9DRExdIEZvciBleHBvbmVudCBzeW1ib2wsIGFkZCBhbiBhdHRyaWJ1dGUuCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkVYUE9ORU5UX1NZTUJPTCwgcmVzdWx0Lmxlbmd0aCgpCisJCQkJCQktIHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKS5sZW5ndGgoKSwgcmVzdWx0CisJCQkJCQkubGVuZ3RoKCkpOworCQkJfQorLy8jZW5kaWYKKyAgICAgICAgICAgIC8vIEZvciB6ZXJvIHZhbHVlcywgd2UgZm9yY2UgdGhlIGV4cG9uZW50IHRvIHplcm8uICBXZQorICAgICAgICAgICAgLy8gbXVzdCBkbyB0aGlzIGhlcmUsIGFuZCBub3QgZWFybGllciwgYmVjYXVzZSB0aGUgdmFsdWUKKyAgICAgICAgICAgIC8vIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGludGVnZXIgZGlnaXQgY291bnQgYWJvdmUuCisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmlzWmVybygpKSBleHBvbmVudCA9IDA7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbmVnYXRpdmVFeHBvbmVudCA9IGV4cG9uZW50IDwgMDsKKyAgICAgICAgICAgIGlmIChuZWdhdGl2ZUV4cG9uZW50KSB7CisgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAtZXhwb25lbnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldE1pbnVzU2lnbigpKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQkJLy8gW1NwYXJrL0NETF0gSWYgZXhwb25lbnQgaGFzIHNpZ24sIHRoZW4gYWRkIGFuIGV4cG9uZW50IHNpZ24KKwkJCQkvLyBhdHRyaWJ1dGUuCisJCQkJaWYgKHBhcnNlQXR0cikgeworCQkJCQkvLyBMZW5ndGggb2YgZXhwb25lbnQgc2lnbiBpcyAxLgorCQkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuRVhQT05FTlRfU0lHTiwgcmVzdWx0Lmxlbmd0aCgpIC0gMSwKKwkJCQkJCQlyZXN1bHQubGVuZ3RoKCkpOworCQkJCX0KKy8vI2VuZGlmCisJCQl9IGVsc2UgaWYgKGV4cG9uZW50U2lnbkFsd2F5c1Nob3duKSB7CisJCQkJcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldFBsdXNTaWduKCkpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYW4gcGx1cyBzaWduIGF0dHJpYnV0ZS4KKwkJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJCS8vIExlbmd0aCBvZiBleHBvbmVudCBzaWduIGlzIDEuCisJCQkJCWludCBleHBTaWduQmVnaW4gPSByZXN1bHQubGVuZ3RoKCkgLSAxOworCQkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuRVhQT05FTlRfU0lHTiwgZXhwU2lnbkJlZ2luLCByZXN1bHQKKwkJCQkJCQkubGVuZ3RoKCkpOworCQkJCX0KKy8vI2VuZGlmCisJCQl9CisJCQlpbnQgZXhwQmVnaW4gPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KGV4cG9uZW50KTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgZXhwRGlnID0gbWluRXhwb25lbnREaWdpdHM7CisgICAgICAgICAgICAgICAgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24gJiYgZXhwRGlnIDwgMSkgeworICAgICAgICAgICAgICAgICAgICBleHBEaWcgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGk9ZGlnaXRMaXN0LmRlY2ltYWxBdDsgaTxleHBEaWc7ICsraSkgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGRpZ2l0TGlzdC5kZWNpbWFsQXQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChpIDwgZGlnaXRMaXN0LmNvdW50KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShkaWdpdExpc3QuZGlnaXRzW2ldICsgemVyb0RlbHRhKSA6IHplcm8pOworICAgICAgICAgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCS8vIFtTcGFyay9DRExdIEFkZCBhdHRyaWJ1dGUgZm9yIGV4cG9uZW50IHBhcnQuCisJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkVYUE9ORU5ULCBleHBCZWdpbiwgcmVzdWx0Lmxlbmd0aCgpKTsKKwkJCX0KKy8vI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisJCQkvLyBbU3BhcmsvQ0RMXSBSZWNvcmQgdGhlIGludGVnZXIgc3RhcnQgaW5kZXguCisJCQlpbnQgaW50QmVnaW4gPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHNpZ0NvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBtaW5TaWdEaWcgPSBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgIGludCBtYXhTaWdEaWcgPSBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgIGlmICghdXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgbWluU2lnRGlnID0gMDsKKyAgICAgICAgICAgICAgICBtYXhTaWdEaWcgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT3V0cHV0IHRoZSBpbnRlZ2VyIHBvcnRpb24uICBIZXJlICdjb3VudCcgaXMgdGhlIHRvdGFsCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgd2Ugd2lsbCBkaXNwbGF5LCBpbmNsdWRpbmcgYm90aAorICAgICAgICAgICAgLy8gbGVhZGluZyB6ZXJvcyByZXF1aXJlZCB0byBzYXRpc2Z5IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzLAorICAgICAgICAgICAgLy8gYW5kIGFjdHVhbCBkaWdpdHMgcHJlc2VudCBpbiB0aGUgbnVtYmVyLgorICAgICAgICAgICAgaW50IGNvdW50ID0gdXNlU2lnRGlnID8KKyAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBkaWdpdExpc3QuZGVjaW1hbEF0KSA6IG1pbkludERpZzsKKyAgICAgICAgICAgIGlmIChkaWdpdExpc3QuZGVjaW1hbEF0ID4gMCAmJiBjb3VudCA8IGRpZ2l0TGlzdC5kZWNpbWFsQXQpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIGlzIHNtYWxsZXIKKyAgICAgICAgICAgIC8vIHRoYW4gdGhlIHJlYWwgbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBpcyBzbywgd2UKKyAgICAgICAgICAgIC8vIG91dHB1dCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgbWF4IGludGVnZXIgZGlnaXRzLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICAgICAvLyB0aGUgdmFsdWUgMTk5NyBwcmludGVkIHdpdGggMiBtYXggaW50ZWdlciBkaWdpdHMgaXMganVzdCAiOTciLgorCisgICAgICAgICAgICBpbnQgZGlnaXRJbmRleCA9IDA7IC8vIEluZGV4IGludG8gZGlnaXRMaXN0LmZEaWdpdHNbXQorICAgICAgICAgICAgaWYgKGNvdW50ID4gbWF4SW50RGlnICYmIG1heEludERpZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgY291bnQgPSBtYXhJbnREaWc7CisgICAgICAgICAgICAgICAgZGlnaXRJbmRleCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQgLSBjb3VudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHNpemVCZWZvcmVJbnRlZ2VyUGFydCA9IHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaT1jb3VudC0xOyBpPj0wOyAtLWkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBkaWdpdExpc3QuZGVjaW1hbEF0ICYmIGRpZ2l0SW5kZXggPCBkaWdpdExpc3QuY291bnQgJiYKKyAgICAgICAgICAgICAgICAgICAgc2lnQ291bnQgPCBtYXhTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGEgcmVhbCBkaWdpdAorICAgICAgICAgICAgICAgICAgICBieXRlIGQgPSBkaWdpdExpc3QuZGlnaXRzW2RpZ2l0SW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpKGQgKyB6ZXJvRGVsdGEpKTsKKyAgICAgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGEgemVybyAobGVhZGluZyBvciB0cmFpbGluZykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ0NvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBncm91cGluZyBzZXBhcmF0b3IgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgIGlmIChpc0dyb3VwaW5nUG9zaXRpb24oaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChncm91cGluZyk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgZ3JvdXBpbmcgc2VwYXJhdG9yIGF0dHJpYnV0ZSBoZXJlLgorCQkJCQlpZiAocGFyc2VBdHRyKSB7CisJCQkJCQkvLyBMZW5ndGggb2YgZ3JvdXBpbmcgc2VwYXJhdG9yIGlzIDEuCisJCQkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuR1JPVVBJTkdfU0VQQVJBVE9SLAorCQkJCQkJCQlyZXN1bHQubGVuZ3RoKCkgLSAxLCByZXN1bHQubGVuZ3RoKCkpOworCQkJCQl9CisvLyNlbmRpZgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGFueSBwcmludGFibGUgZnJhY3Rpb25hbAorICAgICAgICAgICAgLy8gZGlnaXRzLiAgSWYgd2UndmUgdXNlZCB1cCB0aGUgZGlnaXRzIHdlIGtub3cgdGhlcmUgYXJlbid0LgorICAgICAgICAgICAgYm9vbGVhbiBmcmFjdGlvblByZXNlbnQgPSAoIWlzSW50ZWdlciAmJiBkaWdpdEluZGV4IDwgZGlnaXRMaXN0LmNvdW50KSB8fAorICAgICAgICAgICAgICAgICh1c2VTaWdEaWcgPyAoc2lnQ291bnQgPCBtaW5TaWdEaWcpIDogKGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpID4gMCkpOworCisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBmcmFjdGlvbiBwcmVzZW50LCBhbmQgd2UgaGF2ZW4ndCBwcmludGVkIGFueQorICAgICAgICAgICAgLy8gaW50ZWdlciBkaWdpdHMsIHRoZW4gcHJpbnQgYSB6ZXJvLiAgT3RoZXJ3aXNlIHdlIHdvbid0IHByaW50CisgICAgICAgICAgICAvLyBfYW55XyBkaWdpdHMsIGFuZCB3ZSB3b24ndCBiZSBhYmxlIHRvIHBhcnNlIHRoaXMgc3RyaW5nLgorICAgICAgICAgICAgaWYgKCFmcmFjdGlvblByZXNlbnQgJiYgcmVzdWx0Lmxlbmd0aCgpID09IHNpemVCZWZvcmVJbnRlZ2VyUGFydCkKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCS8vIFtTcGFyay9DRExdIEFkZCBhdHRyaWJ1dGUgZm9yIGludGVnZXIgcGFydC4KKwkJCWlmIChwYXJzZUF0dHIpIHsKKwkJCQlhZGRBdHRyaWJ1dGUoRmllbGQuSU5URUdFUiwgaW50QmVnaW4sIHJlc3VsdC5sZW5ndGgoKSk7CisJCQl9CisvLyNlbmRpZgorICAgICAgICAgICAgLy8gT3V0cHV0IHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpZiB3ZSBhbHdheXMgZG8gc28uCisgICAgICAgICAgICBpZiAoZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duIHx8IGZyYWN0aW9uUHJlc2VudCkKKwkJCXsKKwkJCQlyZXN1bHQuYXBwZW5kKGRlY2ltYWwpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCQkvLyBbU3BhcmsvQ0RMXSBBZGQgYXR0cmlidXRlIGZvciBkZWNpbWFsIHNlcGFyYXRvcgorCQkJCWlmIChwYXJzZUF0dHIpIHsKKwkJCQkJYWRkQXR0cmlidXRlKEZpZWxkLkRFQ0lNQUxfU0VQQVJBVE9SLCByZXN1bHQubGVuZ3RoKCkgLSAxLAorCQkJCQkJCXJlc3VsdC5sZW5ndGgoKSk7CisJCQkJfQorLy8jZW5kaWYKKwkJCX0KKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5GUkFDVElPTl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisJCQkvLyBbU3BhcmsvQ0RMXSBSZWNvcmQgdGhlIGJlZ2luIGluZGV4IG9mIGZyYWN0aW9uIHBhcnQuCisJCQlpbnQgZnJhY0JlZ2luID0gcmVzdWx0Lmxlbmd0aCgpOworCisgICAgICAgICAgICBjb3VudCA9IHVzZVNpZ0RpZyA/IEludGVnZXIuTUFYX1ZBTFVFIDogZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICBpZiAodXNlU2lnRGlnICYmIChzaWdDb3VudCA9PSBtYXhTaWdEaWcgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaWdDb3VudCA+PSBtaW5TaWdEaWcgJiYgZGlnaXRJbmRleCA9PSBkaWdpdExpc3QuY291bnQpKSkgeworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgd2UgZXNjYXBlIGZyb20gdGhlIGxvb3AuICBXZSBlc2NhcGUKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSBvdXRwdXQgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzCisgICAgICAgICAgICAgICAgLy8gKHNwZWNpZmllZCBpbiB0aGUgZm9yIGV4cHJlc3Npb24gYWJvdmUpLiAgV2UgYWxzbworICAgICAgICAgICAgICAgIC8vIHN0b3Agd2hlbiB3ZSd2ZSBvdXRwdXQgdGhlIG1pbmltdW0gZGlnaXRzIGFuZAorICAgICAgICAgICAgICAgIC8vIGVpdGhlcjogd2UgaGF2ZSBhbiBpbnRlZ2VyLCBzbyB0aGVyZSBpcyBubworICAgICAgICAgICAgICAgIC8vIGZyYWN0aW9uYWwgc3R1ZmYgdG8gZGlzcGxheSwgb3Igd2UncmUgb3V0IG9mCisgICAgICAgICAgICAgICAgLy8gc2lnbmlmaWNhbnQgZGlnaXRzLgorICAgICAgICAgICAgICAgIGlmICghdXNlU2lnRGlnICYmIGkgPj0gZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGlzSW50ZWdlciB8fCBkaWdpdEluZGV4ID49IGRpZ2l0TGlzdC5jb3VudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGxlYWRpbmcgZnJhY3Rpb25hbCB6ZXJvcy4gIFRoZXNlIGFyZSB6ZXJvcworICAgICAgICAgICAgICAgIC8vIHRoYXQgY29tZSBhZnRlciB0aGUgZGVjaW1hbCBidXQgYmVmb3JlIGFueQorICAgICAgICAgICAgICAgIC8vIHNpZ25pZmljYW50IGRpZ2l0cy4gIFRoZXNlIGFyZSBvbmx5IG91dHB1dCBpZgorICAgICAgICAgICAgICAgIC8vIGFicyhudW1iZXIgYmVpbmcgZm9ybWF0dGVkKSA8IDEuMC4KKyAgICAgICAgICAgICAgICBpZiAoLTEtaSA+IChkaWdpdExpc3QuZGVjaW1hbEF0LTEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIGRpZ2l0LCBpZiB3ZSBoYXZlIGFueSBwcmVjaXNpb24gbGVmdCwgb3IgYQorICAgICAgICAgICAgICAgIC8vIHplcm8gaWYgd2UgZG9uJ3QuICBXZSBkb24ndCB3YW50IHRvIG91dHB1dCBub2lzZSBkaWdpdHMuCisgICAgICAgICAgICAgICAgaWYgKCFpc0ludGVnZXIgJiYgZGlnaXRJbmRleCA8IGRpZ2l0TGlzdC5jb3VudCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKShkaWdpdExpc3QuZGlnaXRzW2RpZ2l0SW5kZXgrK10gKyB6ZXJvRGVsdGEpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlYWNoIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICAgICAgICAgICAgICAgIC8vIGRpZ2l0cywgb3IgaWYgd2Ugb3V0cHV0IGFsbCB0aGUgcmVhbCBkaWdpdHMgYW5kCisgICAgICAgICAgICAgICAgLy8gcmVhY2ggdGhlIG1pbmltdW0sIHRoZW4gd2UgYXJlIGRvbmUuCisgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnRGlnICYmCisgICAgICAgICAgICAgICAgICAgIChzaWdDb3VudCA9PSBtYXhTaWdEaWcgfHwKKyAgICAgICAgICAgICAgICAgICAgIChkaWdpdEluZGV4ID09IGRpZ2l0TGlzdC5jb3VudCAmJiBzaWdDb3VudCA+PSBtaW5TaWdEaWcpKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKwkJCS8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorCQkJaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKwkJCQlmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisJCQl9CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkJLy8gW1NwYXJrL0NETF0gQWRkIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpZiBuZWNlc3NhcnkuCisJCQlpZiAocGFyc2VBdHRyICYmIChkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gfHwgZnJhY3Rpb25QcmVzZW50KSkgeworCQkJCWFkZEF0dHJpYnV0ZShGaWVsZC5GUkFDVElPTiwgZnJhY0JlZ2luLCByZXN1bHQubGVuZ3RoKCkpOworCQkJfQorLy8jZW5kaWYKKwkJfQorCisJCWludCBzdWZmaXhMZW4gPSBhcHBlbmRBZmZpeChyZXN1bHQsIGlzTmVnYXRpdmUsIGZhbHNlLCBwYXJzZUF0dHIpOworCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBwcmVmaXhMZW4sIHN1ZmZpeExlbik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gW05FV10KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgYWRkUGFkZGluZyhTdHJpbmdCdWZmZXIgcmVzdWx0LCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByZWZpeExlbiwgaW50IHN1ZmZpeExlbikgeworICAgICAgICBpZiAoZm9ybWF0V2lkdGggPiAwKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gZm9ybWF0V2lkdGggLSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobGVuID4gMCkgeworICAgICAgICAgICAgICAgIGNoYXJbXSBwYWRkaW5nID0gbmV3IGNoYXJbbGVuXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1tpXSA9IHBhZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3dpdGNoIChwYWRQb3NpdGlvbikgeworICAgICAgICAgICAgICAgIGNhc2UgUEFEX0FGVEVSX1BSRUZJWDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydChwcmVmaXhMZW4sIHBhZGRpbmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBBRF9CRUZPUkVfUFJFRklYOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KDAsIHBhZGRpbmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBBRF9CRUZPUkVfU1VGRklYOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KHJlc3VsdC5sZW5ndGgoKSAtIHN1ZmZpeExlbiwgcGFkZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFEX0FGVEVSX1NVRkZJWDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1BSRUZJWCB8fAorICAgICAgICAgICAgICAgICAgICBwYWRQb3NpdGlvbiA9PSBQQURfQUZURVJfUFJFRklYKSB7CisgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChmaWVsZFBvc2l0aW9uLmdldEJlZ2luSW5kZXgoKSArIGxlbik7CisgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoZmllbGRQb3NpdGlvbi5nZXRFbmRJbmRleCgpICsgbGVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFBhcnNlIHRoZSBnaXZlbiBzdHJpbmcsIHJldHVybmluZyBhIDxjb2RlPk51bWJlcjwvY29kZT4gb2JqZWN0IHRvCisgICAgICogcmVwcmVzZW50IHRoZSBwYXJzZWQgdmFsdWUuICA8Y29kZT5Eb3VibGU8L2NvZGU+IG9iamVjdHMgYXJlIHJldHVybmVkIHRvCisgICAgICogcmVwcmVzZW50IG5vbi1pbnRlZ3JhbCB2YWx1ZXMgd2hpY2ggY2Fubm90IGJlIHN0b3JlZCBpbiBhCisgICAgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uICBUaGVzZSBhcmUgPGNvZGU+TmFOPC9jb2RlPiwgaW5maW5pdHksCisgICAgICogLWluZmluaXR5LCBhbmQgLTAuMC4gIElmIHtAbGluayAjaXNQYXJzZUJpZ0RlY2ltYWwoKX0gaXMgZmFsc2UgKHRoZQorICAgICAqIGRlZmF1bHQpLCBhbGwgb3RoZXIgdmFsdWVzIGFyZSByZXR1cm5lZCBhcyA8Y29kZT5Mb25nPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgb3IgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdmFsdWVzLAorICAgICAqIGluIHRoYXQgb3JkZXIgb2YgcHJlZmVyZW5jZS4gSWYge0BsaW5rICNpc1BhcnNlQmlnRGVjaW1hbCgpfSBpcyB0cnVlLAorICAgICAqIGFsbCBvdGhlciB2YWx1ZXMgYXJlIHJldHVybmVkIGFzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHZhbHVzZS4KKyAgICAgKiBJZiB0aGUgcGFyc2UgZmFpbHMsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBkZWZpbmVzIHRoZSBwb3NpdGlvbiB3aGVyZSBwYXJzaW5nIGlzIHRvIGJlZ2luLAorICAgICAqIGFuZCB1cG9uIHJldHVybiwgdGhlIHBvc2l0aW9uIHdoZXJlIHBhcnNpbmcgbGVmdCBvZmYuICBJZiB0aGUgcG9zaXRpb24KKyAgICAgKiBoYXMgbm90IGNoYW5nZWQgdXBvbiByZXR1cm4sIHRoZW4gcGFyc2luZyBmYWlsZWQuCisgICAgICogQHJldHVybiBhIDxjb2RlPk51bWJlcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIHBhcnNlZCB2YWx1ZSBvcgorICAgICAqIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBwYXJzZSBmYWlsZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKyAgICAgICByZXR1cm4gKE51bWJlcikgcGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZXMgdGV4dCBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYXMgYSBDdXJyZW5jeUFtb3VudC4gIFVubGlrZQorICAgICAqIHRoZSBwYXJzZSgpIG1ldGhvZCwgdGhpcyBtZXRob2Qgd2lsbCBhdHRlbXB0IHRvIHBhcnNlIGEgZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IG5hbWUsIHNlYXJjaGluZyBmb3IgYSBtYXRjaCBvZiB0aGlzIG9iamVjdCdzIGxvY2FsZSdzCisgICAgICogY3VycmVuY3kgZGlzcGxheSBuYW1lcywgb3IgZm9yIGEgMy1sZXR0ZXIgSVNPIGN1cnJlbmN5IGNvZGUuCisgICAgICogVGhpcyBtZXRob2Qgd2lsbCBmYWlsIGlmIHRoaXMgZm9ybWF0IGlzIG5vdCBhIGN1cnJlbmN5IGZvcm1hdCwKKyAgICAgKiB0aGF0IGlzLCBpZiBpdCBkb2VzIG5vdCBjb250YWluIHRoZSBjdXJyZW5jeSBwYXR0ZXJuIHN5bWJvbAorICAgICAqIChVKzAwQTQpIGluIGl0cyBwcmVmaXggb3Igc3VmZml4LgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwb3MgaW5wdXQtb3V0cHV0IHBvc2l0aW9uOyBvbiBpbnB1dCwgdGhlIHBvc2l0aW9uIHdpdGhpbgorICAgICAqIHRleHQgdG8gbWF0Y2g7IG11c3QgaGF2ZSAwIDw9IHBvcy5nZXRJbmRleCgpIDwgdGV4dC5sZW5ndGgoKTsKKyAgICAgKiBvbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBtYXRjaGVkIGNoYXJhY3Rlci4gSWYKKyAgICAgKiB0aGUgcGFyc2UgZmFpbHMsIHRoZSBwb3NpdGlvbiBpbiB1bmNoYW5nZWQgdXBvbiBvdXRwdXQuCisgICAgICogQHJldHVybiBhIEN1cnJlbmN5QW1vdW50LCBvciBudWxsIHVwb24gZmFpbHVyZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIEN1cnJlbmN5QW1vdW50IHBhcnNlQ3VycmVuY3koU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiAoQ3VycmVuY3lBbW91bnQpIHBhcnNlKHRleHQsIHBvcywgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBnaXZlbiB0ZXh0IGFzIGVpdGhlciBhIE51bWJlciBvciBhIEN1cnJlbmN5QW1vdW50LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBpbnB1dC1vdXRwdXQgcG9zaXRpb247IG9uIGlucHV0LCB0aGUKKyAgICAgKiBwb3NpdGlvbiB3aXRoaW4gdGV4dCB0byBtYXRjaDsgbXVzdCBoYXZlIDAgPD0gcG9zLmdldEluZGV4KCkgPAorICAgICAqIHRleHQubGVuZ3RoKCk7IG9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IG1hdGNoZWQKKyAgICAgKiBjaGFyYWN0ZXIuIElmIHRoZSBwYXJzZSBmYWlscywgdGhlIHBvc2l0aW9uIGluIHVuY2hhbmdlZCB1cG9uCisgICAgICogb3V0cHV0LgorICAgICAqIEBwYXJhbSBwYXJzZUN1cnJlbmN5IGlmIHRydWUsIGEgQ3VycmVuY3lBbW91bnQgaXMgcGFyc2VkIGFuZAorICAgICAqIHJldHVybmVkOyBvdGhlcndpc2UgYSBOdW1iZXIgaXMgcGFyc2VkIGFuZCByZXR1cm5lZAorICAgICAqIEByZXR1cm4gYSBOdW1iZXIgb3IgQ3VycmVuY3lBbW91bnQgb3IgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGJvb2xlYW4gcGFyc2VDdXJyZW5jeSkgeworICAgICAgICBpbnQgYmFja3VwOworICAgICAgICBpbnQgaSA9IGJhY2t1cCA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBIYW5kbGUgTmFOIGFzIGEgc3BlY2lhbCBjYXNlOgorCisgICAgICAgIC8vIFNraXAgcGFkZGluZyBjaGFyYWN0ZXJzLCBpZiBhcm91bmQgcHJlZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgKHBhZFBvc2l0aW9uID09IFBBRF9CRUZPUkVfUFJFRklYIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9QUkVGSVgpKSB7CisgICAgICAgICAgICBpID0gc2tpcFBhZGRpbmcodGV4dCwgaSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRleHQucmVnaW9uTWF0Y2hlcyhpLCBzeW1ib2xzLmdldE5hTigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHN5bWJvbHMuZ2V0TmFOKCkubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICBpICs9IHN5bWJvbHMuZ2V0TmFOKCkubGVuZ3RoKCk7CisgICAgICAgICAgICAvLyBTa2lwIHBhZGRpbmcgY2hhcmFjdGVycywgaWYgYXJvdW5kIHN1ZmZpeAorICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiAocGFkUG9zaXRpb24gPT0gUEFEX0JFRk9SRV9TVUZGSVggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9TVUZGSVgpKSB7CisgICAgICAgICAgICAgICAgaSA9IHNraXBQYWRkaW5nKHRleHQsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKERvdWJsZS5OYU4pOworICAgICAgICB9CisKKyAgICAgICAgLy8gTmFOIHBhcnNlIGZhaWxlZDsgc3RhcnQgb3ZlcgorICAgICAgICBpID0gYmFja3VwOworCisgICAgICAgIGJvb2xlYW5bXSBzdGF0dXMgPSBuZXcgYm9vbGVhbltTVEFUVVNfTEVOR1RIXTsKKyAgICAgICAgQ3VycmVuY3lbXSBjdXJyZW5jeSA9IHBhcnNlQ3VycmVuY3kgPyBuZXcgQ3VycmVuY3lbMV0gOiBudWxsOworICAgICAgICBpZiAoIXN1YnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGRpZ2l0TGlzdCwgZmFsc2UsIHN0YXR1cywgY3VycmVuY3kpKSB7CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGJhY2t1cCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIE51bWJlciBuID0gbnVsbDsKKworICAgICAgICAvLyBIYW5kbGUgaW5maW5pdHkKKyAgICAgICAgaWYgKHN0YXR1c1tTVEFUVVNfSU5GSU5JVEVdKSB7CisgICAgICAgICAgICBuID0gbmV3IERvdWJsZShzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhbmRsZSAtMC4wCisgICAgICAgIGVsc2UgaWYgKCFzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSAmJiBkaWdpdExpc3QuaXNaZXJvKCkpIHsKKyAgICAgICAgICAgIG4gPSBuZXcgRG91YmxlKC0wLjApOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBEbyBhcyBtdWNoIG9mIHRoZSBtdWx0aXBsaWVyIGNvbnZlcnNpb24gYXMgcG9zc2libGUgd2l0aG91dAorICAgICAgICAgICAgLy8gbG9zaW5nIGFjY3VyYWN5LgorICAgICAgICAgICAgaW50IG11bHQgPSBtdWx0aXBsaWVyOyAvLyBEb24ndCBtb2RpZnkgdGhpcy5tdWx0aXBsaWVyCisgICAgICAgICAgICB3aGlsZSAobXVsdCAlIDEwID09IDApIHsKKyAgICAgICAgICAgICAgICAtLWRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgbXVsdCAvPSAxMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSGFuZGxlIGludGVncmFsIHZhbHVlcworICAgICAgICAgICAgaWYgKCFwYXJzZUJpZ0RlY2ltYWwgJiYgbXVsdCA9PSAxICYmIGRpZ2l0TGlzdC5pc0ludGVncmFsKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBoYWNrIHF1aWNrIGxvbmcKKyAgICAgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmRlY2ltYWxBdCA8IDEyKSB7IC8vIHF1aWNrIGNoZWNrIGZvciBsb25nCisgICAgICAgICAgICAgICAgICAgIGxvbmcgbCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdExpc3QuY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG54IDwgZGlnaXRMaXN0LmNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGwgKiAxMCArIChjaGFyKWRpZ2l0TGlzdC5kaWdpdHNbbngrK10gLSAnMCc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobngrKyA8IGRpZ2l0TGlzdC5kZWNpbWFsQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwgPSAtbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuID0gbmV3IExvbmcobCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQmlnSW50ZWdlciBiaWcgPSBkaWdpdExpc3QuZ2V0QmlnSW50ZWdlcihzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSk7CisgICAgICAgICAgICAgICAgICAgIG4gPSAoYmlnLmJpdExlbmd0aCgpIDwgNjQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgIChOdW1iZXIpIG5ldyBMb25nKGJpZy5sb25nVmFsdWUoKSkgOiAoTnVtYmVyKSBiaWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBIYW5kbGUgbm9uLWludGVncmFsIHZhbHVlcyBvciB0aGUgY2FzZSB3aGVyZSBwYXJzZUJpZ0RlY2ltYWwgaXMgc2V0CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBCaWdEZWNpbWFsIGJpZyA9IGRpZ2l0TGlzdC5nZXRCaWdEZWNpbWFsSUNVKHN0YXR1c1tTVEFUVVNfUE9TSVRJVkVdKTsKKyAgICAgICAgICAgICAgICBuID0gYmlnOworICAgICAgICAgICAgICAgIGlmIChtdWx0ICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IGJpZy5kaXZpZGUoQmlnRGVjaW1hbC52YWx1ZU9mKG11bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3NlbWJsZSBpbnRvIEN1cnJlbmN5QW1vdW50IGlmIG5lY2Vzc2FyeQorICAgICAgICByZXR1cm4gcGFyc2VDdXJyZW5jeSA/IChPYmplY3QpIG5ldyBDdXJyZW5jeUFtb3VudChuLCBjdXJyZW5jeVswXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoT2JqZWN0KSBuOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfSU5GSU5JVEUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfUE9TSVRJVkUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfTEVOR1RIICAgPSAyOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZSB0aGUgZ2l2ZW4gdGV4dCBpbnRvIGEgbnVtYmVyLiAgVGhlIHRleHQgaXMgcGFyc2VkIGJlZ2lubmluZyBhdAorICAgICAqIHBhcnNlUG9zaXRpb24sIHVudGlsIGFuIHVucGFyc2VhYmxlIGNoYXJhY3RlciBpcyBzZWVuLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgdG8gcGFyc2UuCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gVGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRvIGJlaW5nIHBhcnNpbmcuICBVcG9uCisgICAgICogcmV0dXJuLCB0aGUgZmlyc3QgdW5wYXJzZWFibGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBkaWdpdHMgVGhlIERpZ2l0TGlzdCB0byBzZXQgdG8gdGhlIHBhcnNlZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gaXNFeHBvbmVudCBJZiB0cnVlLCBwYXJzZSBhbiBleHBvbmVudC4gIFRoaXMgbWVhbnMgbm8KKyAgICAgKiBpbmZpbml0ZSB2YWx1ZXMgYW5kIGludGVnZXIgb25seS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFVwb24gcmV0dXJuIGNvbnRhaW5zIGJvb2xlYW4gc3RhdHVzIGZsYWdzIGluZGljYXRpbmcKKyAgICAgKiB3aGV0aGVyIHRoZSB2YWx1ZSB3YXMgaW5maW5pdGUgYW5kIHdoZXRoZXIgaXQgd2FzIHBvc2l0aXZlLgorICAgICAqIEBwYXJhbSBjdXJyZW5jeSByZXR1cm4gdmFsdWUgZm9yIHBhcnNlZCBjdXJyZW5jeSwgZm9yIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBwYXJzaW5nIG1vZGUsIG9yIG51bGwgZm9yIG5vcm1hbCBwYXJzaW5nLiBJbiBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBhbnkgY3VycmVuY3kgaXMgcGFyc2VkLCBub3QganVzdCB0aGUKKyAgICAgKiBjdXJyZW5jeSB0aGF0IHRoaXMgZm9ybWF0dGVyIGlzIHNldCB0by4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gc3VicGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICBEaWdpdExpc3QgZGlnaXRzLCBib29sZWFuIGlzRXhwb25lbnQsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdGF0dXNbXSwgQ3VycmVuY3kgY3VycmVuY3lbXSkKKyAgICB7CisgICAgICAgIGludCBwb3NpdGlvbiA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKyAgICAgICAgaW50IG9sZFN0YXJ0ID0gcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpOworCisgICAgICAgIC8vIE1hdGNoIHBhZGRpbmcgYmVmb3JlIHByZWZpeAorICAgICAgICBpZiAoZm9ybWF0V2lkdGggPiAwICYmIHBhZFBvc2l0aW9uID09IFBBRF9CRUZPUkVfUFJFRklYKSB7CisgICAgICAgICAgICBwb3NpdGlvbiA9IHNraXBQYWRkaW5nKHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1hdGNoIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlczsgcHJlZmVyIGxvbmdlc3QgbWF0Y2guCisgICAgICAgIGludCBwb3NNYXRjaCA9IGNvbXBhcmVBZmZpeCh0ZXh0LCBwb3NpdGlvbiwgZmFsc2UsIHRydWUsIGN1cnJlbmN5KTsKKyAgICAgICAgaW50IG5lZ01hdGNoID0gY29tcGFyZUFmZml4KHRleHQsIHBvc2l0aW9uLCB0cnVlLCB0cnVlLCBjdXJyZW5jeSk7CisgICAgICAgIGlmIChwb3NNYXRjaCA+PSAwICYmIG5lZ01hdGNoID49IDApIHsKKyAgICAgICAgICAgIGlmIChwb3NNYXRjaCA+IG5lZ01hdGNoKSB7CisgICAgICAgICAgICAgICAgbmVnTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobmVnTWF0Y2ggPiBwb3NNYXRjaCkgeworICAgICAgICAgICAgICAgIHBvc01hdGNoID0gLTE7CisgICAgICAgICAgICB9ICAKKyAgICAgICAgfQorICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgcG9zaXRpb24gKz0gcG9zTWF0Y2g7CisgICAgICAgIH0gZWxzZSBpZiAobmVnTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgcG9zaXRpb24gKz0gbmVnTWF0Y2g7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocG9zaXRpb24pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gTWF0Y2ggcGFkZGluZyBhZnRlciBwcmVmaXgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiBwYWRQb3NpdGlvbiA9PSBQQURfQUZURVJfUFJFRklYKSB7CisgICAgICAgICAgICBwb3NpdGlvbiA9IHNraXBQYWRkaW5nKHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByb2Nlc3MgZGlnaXRzIG9yIEluZiwgZmluZCBkZWNpbWFsIHBvc2l0aW9uCisgICAgICAgIHN0YXR1c1tTVEFUVVNfSU5GSU5JVEVdID0gZmFsc2U7CisgICAgICAgIGlmICghaXNFeHBvbmVudCAmJiB0ZXh0LnJlZ2lvbk1hdGNoZXMocG9zaXRpb24sc3ltYm9scy5nZXRJbmZpbml0eSgpLDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMuZ2V0SW5maW5pdHkoKS5sZW5ndGgoKSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IHN5bWJvbHMuZ2V0SW5maW5pdHkoKS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHN0YXR1c1tTVEFUVVNfSU5GSU5JVEVdID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIG5vdyBoYXZlIGEgc3RyaW5nIG9mIGRpZ2l0cywgcG9zc2libHkgd2l0aCBncm91cGluZyBzeW1ib2xzLAorICAgICAgICAgICAgLy8gYW5kIGRlY2ltYWwgcG9pbnRzLiAgV2Ugd2FudCB0byBwcm9jZXNzIHRoZXNlIGludG8gYSBEaWdpdExpc3QuCisgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHB1dCBhIGJ1bmNoIG9mIGxlYWRpbmcgemVyb3MgaW50byB0aGUgRGlnaXRMaXN0CisgICAgICAgICAgICAvLyB0aG91Z2gsIHNvIHdlIGtlZXAgdHJhY2sgb2YgdGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNpbWFsIHBvaW50LAorICAgICAgICAgICAgLy8gcHV0IG9ubHkgc2lnbmlmaWNhbnQgZGlnaXRzIGludG8gdGhlIERpZ2l0TGlzdCwgYW5kIGFkanVzdCB0aGUKKyAgICAgICAgICAgIC8vIGV4cG9uZW50IGFzIG5lZWRlZC4KKworICAgICAgICAgICAgZGlnaXRzLmRlY2ltYWxBdCA9IGRpZ2l0cy5jb3VudCA9IDA7CisgICAgICAgICAgICBjaGFyIHplcm8gPSBzeW1ib2xzLmdldFplcm9EaWdpdCgpOworICAgICAgICAgICAgY2hhciBkZWNpbWFsID0gaXNDdXJyZW5jeUZvcm1hdCA/CisgICAgICAgICAgICBzeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIDogc3ltYm9scy5nZXREZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBjaGFyIGdyb3VwaW5nID0gc3ltYm9scy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworICAgICAgICAgICAgU3RyaW5nIGV4cG9uZW50U2VwID0gc3ltYm9scy5nZXRFeHBvbmVudFNlcGFyYXRvcigpOworICAgICAgICAgICAgYm9vbGVhbiBzYXdEZWNpbWFsID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIHNhd0V4cG9uZW50ID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIHNhd0RpZ2l0ID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgZXhwb25lbnQgPSAwOyAvLyBTZXQgdG8gdGhlIGV4cG9uZW50IHZhbHVlLCBpZiBhbnkKKyAgICAgICAgICAgIGludCBkaWdpdCA9IDA7CisKKyAgICAgICAgICAgIC8vIHN0cmljdCBwYXJzaW5nCisgICAgICAgICAgICBib29sZWFuIHN0cmljdFBhcnNlID0gaXNQYXJzZVN0cmljdCgpOworICAgICAgICAgICAgYm9vbGVhbiBzdHJpY3RGYWlsID0gZmFsc2U7IC8vIGRpZCB3ZSBleGl0IHdpdGggYSBzdHJpY3QgcGFyc2UgZmFpbHVyZT8KKyAgICAgICAgICAgIGJvb2xlYW4gbGVhZGluZ1plcm8gPSBmYWxzZTsgLy8gZGlkIHdlIHNlZSBhIGxlYWRpbmcgemVybz8KKyAgICAgICAgICAgIGludCBsYXN0R3JvdXAgPSAtMTsgLy8gd2hlcmUgZGlkIHdlIGxhc3Qgc2VlIGEgZ3JvdXBpbmcgc2VwYXJhdG9yPworICAgICAgICAgICAgaW50IHByZXZHcm91cCA9IC0xOyAvLyB3aGVyZSBkaWQgd2Ugc2VlIHRoZSBncm91cGluZyBzZXBhcmF0b3IgYmVmb3JlIHRoYXQ/CisgICAgICAgICAgICBpbnQgZ3MyID0gZ3JvdXBpbmdTaXplMiA9PSAwID8gZ3JvdXBpbmdTaXplIDogZ3JvdXBpbmdTaXplMjsKKworICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byB0cmFjayBkaWdpdENvdW50IG91cnNlbHZlcywgYmVjYXVzZSBkaWdpdHMuY291bnQgd2lsbAorICAgICAgICAgICAgLy8gcGluIHdoZW4gdGhlIG1heGltdW0gYWxsb3dhYmxlIGRpZ2l0cyBpcyByZWFjaGVkLgorICAgICAgICAgICAgaW50IGRpZ2l0Q291bnQgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYmFja3VwID0gLTE7CisgICAgICAgICAgICBmb3IgKDsgcG9zaXRpb24gPCB0ZXh0Lmxlbmd0aCgpOyArK3Bvc2l0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmNoYXJBdChwb3NpdGlvbik7CisKKyAgICAgICAgICAgICAgICAvKiBXZSByZWNvZ25pemUgYWxsIGRpZ2l0IHJhbmdlcywgbm90IG9ubHkgdGhlIExhdGluIGRpZ2l0IHJhbmdlCisgICAgICAgICAgICAgICAgICogJzAnLi4nOScuICBXZSBkbyBzbyBieSB1c2luZyB0aGUgVUNoYXJhY3Rlci5kaWdpdCgpIG1ldGhvZCwKKyAgICAgICAgICAgICAgICAgKiB3aGljaCBjb252ZXJ0cyBhIHZhbGlkIFVuaWNvZGUgZGlnaXQgdG8gdGhlIHJhbmdlIDAuLjkuCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBUaGUgY2hhcmFjdGVyICdjaCcgbWF5IGJlIGEgZGlnaXQuICBJZiBzbywgcGxhY2UgaXRzIHZhbHVlCisgICAgICAgICAgICAgICAgICogZnJvbSAwIHRvIDkgaW4gJ2RpZ2l0Jy4gIEZpcnN0IHRyeSB1c2luZyB0aGUgbG9jYWxlIGRpZ2l0LAorICAgICAgICAgICAgICAgICAqIHdoaWNoIG1heSBvciBNQVkgTk9UIGJlIGEgc3RhbmRhcmQgVW5pY29kZSBkaWdpdCByYW5nZS4gIElmCisgICAgICAgICAgICAgICAgICogdGhpcyBmYWlscywgdHJ5IHVzaW5nIHRoZSBzdGFuZGFyZCBVbmljb2RlIGRpZ2l0IHJhbmdlcyBieQorICAgICAgICAgICAgICAgICAqIGNhbGxpbmcgVUNoYXJhY3Rlci5kaWdpdCgpLiAgSWYgdGhpcyBhbHNvIGZhaWxzLCBkaWdpdCB3aWxsCisgICAgICAgICAgICAgICAgICogaGF2ZSBhIHZhbHVlIG91dHNpZGUgdGhlIHJhbmdlIDAuLjkuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgZGlnaXQgPSBjaCAtIHplcm87CisgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCB8fCBkaWdpdCA+IDkpIGRpZ2l0ID0gVUNoYXJhY3Rlci5kaWdpdChjaCwgMTApOworCisgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID09IDApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBDYW5jZWwgb3V0IGJhY2t1cCBzZXR0aW5nIChzZWUgZ3JvdXBpbmcgaGFuZGxlciBiZWxvdykKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmljdFBhcnNlICYmIGJhY2t1cCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tbWEgZm9sbG93ZWQgYnkgZGlnaXQsIHNvIGdyb3VwIGJlZm9yZSBjb21tYSBpcyBhIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kYXJ5IGdyb3VwLiAgSWYgdGhlcmUgd2FzIGEgZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhhdCwgdGhlIGdyb3VwIG11c3QgPT0gdGhlIHNlY29uZGFyeSBncm91cAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoLCBlbHNlIGl0IGNhbiBiZSA8PSB0aGUgdGhlIHNlY29uZGFyeSBncm91cAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChsYXN0R3JvdXAgIT0gLTEgJiYgYmFja3VwIC0gbGFzdEdyb3VwIC0gMSAhPSBnczIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3RHcm91cCA9PSAtMSAmJiBwb3NpdGlvbiAtIG9sZFN0YXJ0IC0gMSA+IGdzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZHcm91cCA9IGxhc3RHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHcm91cCA9IGJhY2t1cDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAtMTsgLy8gRG8gdGhpcyBCRUZPUkUgY29udGludWUgc3RhdGVtZW50IGJlbG93ISEhCisgICAgICAgICAgICAgICAgICAgIHNhd0RpZ2l0ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgbGVhZGluZyB6ZXJvcworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRzLmNvdW50ID09IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2F3RGVjaW1hbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSAmJiAhaXNFeHBvbmVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGxvdyBsZWFkaW5nIHplcm9zIGluIGV4cG9uZW50cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVhZGluZ1plcm8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ1plcm8gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbGVhZGluZyB6ZXJvcyBpbiBpbnRlZ2VyIHBhcnQgb2YgbnVtYmVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIHNlZW4gdGhlIGRlY2ltYWwsIGJ1dCBubyBzaWduaWZpY2FudCBkaWdpdHMgeWV0LAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhY2NvdW50IGZvciBsZWFkaW5nIHplcm9zIGJ5IGRlY3JlbWVudGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0cy5kZWNpbWFsQXQgaW50byBuZWdhdGl2ZSB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAtLWRpZ2l0cy5kZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2RpZ2l0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHMuYXBwZW5kKChjaGFyKShkaWdpdCArICcwJykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRpZ2l0ID4gMCAmJiBkaWdpdCA8PSA5KSAvLyBbc2ljXSBkaWdpdD09MCBoYW5kbGVkIGFib3ZlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaWN0UGFyc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkaW5nWmVybykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvIGJlZm9yZSBhIGRpZ2l0IGlzIGFuIGVycm9yIHdpdGggc3RyaWN0IHBhcnNpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3RGYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYWNrdXAgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGxhc3RHcm91cCAhPSAtMSAmJiBiYWNrdXAgLSBsYXN0R3JvdXAgLSAxICE9IGdzMikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3RHcm91cCA9PSAtMSAmJiBwb3NpdGlvbiAtIG9sZFN0YXJ0IC0gMSA+IGdzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0RmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2R3JvdXAgPSBsYXN0R3JvdXA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEdyb3VwID0gYmFja3VwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgc2F3RGlnaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICArK2RpZ2l0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0cy5hcHBlbmQoKGNoYXIpKGRpZ2l0ICsgJzAnKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gQ2FuY2VsIG91dCBiYWNrdXAgc2V0dGluZyAoc2VlIGdyb3VwaW5nIGhhbmRsZXIgYmVsb3cpCisgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNFeHBvbmVudCAmJiBjaCA9PSBkZWNpbWFsKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmljdFBhcnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFja3VwICE9IC0xIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3RHcm91cCAhPSAtMSAmJiBwb3NpdGlvbiAtIGxhc3RHcm91cCAhPSBncm91cGluZ1NpemUgLSAxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIG9ubHkgcGFyc2luZyBpbnRlZ2Vycywgb3IgaWYgd2UgQUxSRUFEWSBzYXcgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY2ltYWwsIHRoZW4gZG9uJ3QgcGFyc2UgdGhpcyBvbmUuCisgICAgICAgICAgICAgICAgICAgIGlmIChpc1BhcnNlSW50ZWdlck9ubHkoKSB8fCBzYXdEZWNpbWFsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGlnaXRzLmRlY2ltYWxBdCA9IGRpZ2l0Q291bnQ7IC8vIE5vdCBkaWdpdHMuY291bnQhCisgICAgICAgICAgICAgICAgICAgIHNhd0RlY2ltYWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVybyA9IGZhbHNlOyAvLyBhIHNpbmdsZSBsZWFkaW5nIHplcm8gYmVmb3JlIGEgZGVjaW1hbCBpcyBvaworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNFeHBvbmVudCAmJiBjaCA9PSBncm91cGluZyAmJiBpc0dyb3VwaW5nVXNlZCgpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNhd0RlY2ltYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCghc2F3RGlnaXQgfHwgYmFja3VwICE9IC0xKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYWRpbmcgZ3JvdXAsIG9yIHR3byBncm91cCBzZXBhcmF0b3JzIGluIGEgcm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0RmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGdyb3VwaW5nIGNoYXJhY3RlcnMsIGlmIHdlIGFyZSB1c2luZyB0aGVtLCBidXQgcmVxdWlyZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZXkgYmUgZm9sbG93ZWQgYnkgYSBkaWdpdC4gIE90aGVyd2lzZSB3ZSBiYWNrdXAgYW5kCisgICAgICAgICAgICAgICAgICAgIC8vIHJlcHJvY2VzcyB0aGVtLgorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBwb3NpdGlvbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzRXhwb25lbnQgJiYgIXNhd0V4cG9uZW50ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLCBleHBvbmVudFNlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZXhwb25lbnRTZXAubGVuZ3RoKCkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2Ugc2lnbiwgaWYgcHJlc2VudAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIG5lZ0V4cCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gcG9zaXRpb24gKyBleHBvbmVudFNlcC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSBzeW1ib2xzLmdldFBsdXNTaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gc3ltYm9scy5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ0V4cCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBEaWdpdExpc3QgZXhwb25lbnREaWdpdHMgPSBuZXcgRGlnaXRMaXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50RGlnaXRzLmNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2l0ID0gdGV4dC5jaGFyQXQocG9zKSAtIHplcm87CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPCAwIHx8IGRpZ2l0ID4gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW4ndCBwYXJzZSAiWzFFMF0iIHdoZW4gcGF0dGVybiBpcyAiMC4jIyNFMDtbMC4jIyNFMF0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG91bGQgdXBkYXRlIHJlYXNzaWduIHRoZSB2YWx1ZSBvZiAnY2gnIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogIGRpZ2l0ID0gQ2hhcmFjdGVyLmRpZ2l0KGNoLCAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IFVDaGFyYWN0ZXIuZGlnaXQodGV4dC5jaGFyQXQocG9zKSwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID49IDAgJiYgZGlnaXQgPD0gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50RGlnaXRzLmFwcGVuZCgoY2hhcikoZGlnaXQgKyAnMCcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChleHBvbmVudERpZ2l0cy5jb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmVyIHN0cmljdCBwYXJzZSB1bnRpbCB3ZSBrbm93IHdlIGhhdmUgYSBib25hLWZpZGUgZXhwb25lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpY3RQYXJzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYWNrdXAgIT0gLTEgfHwgbGFzdEdyb3VwICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50RGlnaXRzLmRlY2ltYWxBdCA9IGV4cG9uZW50RGlnaXRzLmNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAoaW50KSBleHBvbmVudERpZ2l0cy5nZXRMb25nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmVnRXhwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAtZXhwb25lbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvczsgLy8gQWR2YW5jZSBwYXN0IHRoZSBleHBvbmVudAorICAgICAgICAgICAgICAgICAgICAgICAgc2F3RXhwb25lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdoZXRoZXIgd2UgZmFpbCBvciBzdWNjZWVkLCB3ZSBleGl0IHRoaXMgbG9vcAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYmFja3VwICE9IC0xKSBwb3NpdGlvbiA9IGJhY2t1cDsKKworICAgICAgICAgICAgaWYgKHN0cmljdFBhcnNlICYmICFzYXdEZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RHcm91cCAhPSAtMSAmJiBwb3NpdGlvbiAtIGxhc3RHcm91cCAhPSBncm91cGluZ1NpemUgKyAxKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmljdEZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdHJpY3RGYWlsKSB7CisgICAgICAgICAgICAgICAgLy8gb25seSBzZXQgd2l0aCBzdHJpY3RQYXJzZSBhbmQgYSBsZWFkaW5nIHplcm8gZXJyb3IKKyAgICAgICAgICAgICAgICAvLyBsZWFkaW5nIHplcm9zIGFyZSBhbiBlcnJvciB3aXRoIHN0cmljdCBwYXJzaW5nIGV4Y2VwdAorICAgICAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IGJlZm9yZSBub25kaWdpdCAoZXhjZXB0IGdyb3VwIHNlcGFyYXRvciAKKyAgICAgICAgICAgICAgICAvLyBmb2xsb3dlZCBieSBkaWdpdCksIG9yIGVuZCBvZiB0ZXh0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleChwb3NpdGlvbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gZGVjaW1hbCBwb2ludCB3ZSBoYXZlIGFuIGludGVnZXIKKyAgICAgICAgICAgIGlmICghc2F3RGVjaW1hbCkgZGlnaXRzLmRlY2ltYWxBdCA9IGRpZ2l0Q291bnQ7IC8vIE5vdCBkaWdpdHMuY291bnQhCisKKyAgICAgICAgICAgIC8vIEFkanVzdCBmb3IgZXhwb25lbnQsIGlmIGFueQorICAgICAgICAgICAgZGlnaXRzLmRlY2ltYWxBdCArPSBleHBvbmVudDsKKworICAgICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgdGV4dCBzdHJpbmcgd2FzIHJlY29nbml6ZWQuICBGb3IgZXhhbXBsZSwgcGFyc2UKKyAgICAgICAgICAgIC8vICJ4IiB3aXRoIHBhdHRlcm4gIiMwLjAwIiAocmV0dXJuIGluZGV4IGFuZCBlcnJvciBpbmRleCBib3RoIDApCisgICAgICAgICAgICAvLyBwYXJzZSAiJCIgd2l0aCBwYXR0ZXJuICIkIzAuMDAiLiAocmV0dXJuIGluZGV4IDAgYW5kIGVycm9yIGluZGV4CisgICAgICAgICAgICAvLyAxKS4KKyAgICAgICAgICAgIGlmICghc2F3RGlnaXQgJiYgZGlnaXRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KG9sZFN0YXJ0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwYWRkaW5nIGJlZm9yZSBzdWZmaXgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiBwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1NVRkZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VmZml4ZXM7IHByZWZlciBsb25nZXN0IG1hdGNoLgorICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgcG9zTWF0Y2ggPSBjb21wYXJlQWZmaXgodGV4dCwgcG9zaXRpb24sIGZhbHNlLCBmYWxzZSwgY3VycmVuY3kpOworICAgICAgICB9CisgICAgICAgIGlmIChuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBuZWdNYXRjaCA9IGNvbXBhcmVBZmZpeCh0ZXh0LCBwb3NpdGlvbiwgdHJ1ZSwgZmFsc2UsIGN1cnJlbmN5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCAmJiBuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBpZiAocG9zTWF0Y2ggPiBuZWdNYXRjaCkgeworICAgICAgICAgICAgICAgIG5lZ01hdGNoID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID4gcG9zTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBwb3NNYXRjaCA9IC0xOworICAgICAgICAgICAgfSAgCisgICAgICAgIH0KKworICAgICAgICAvLyBGYWlsIGlmIG5laXRoZXIgb3IgYm90aAorICAgICAgICBpZiAoKHBvc01hdGNoID49IDApID09IChuZWdNYXRjaCA+PSAwKSkgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHBvc2l0aW9uICs9IChwb3NNYXRjaD49MCA/IHBvc01hdGNoIDogbmVnTWF0Y2gpOworCisgICAgICAgIC8vIE1hdGNoIHBhZGRpbmcgYWZ0ZXIgc3VmZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgcGFkUG9zaXRpb24gPT0gUEFEX0FGVEVSX1NVRkZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBvc2l0aW9uKTsKKworICAgICAgICBzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSA9IChwb3NNYXRjaCA+PSAwKTsKKworICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IG9sZFN0YXJ0KSB7CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocG9zaXRpb24pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YXJ0aW5nIGF0IHBvc2l0aW9uLCBhZHZhbmNlIHBhc3QgYSBydW4gb2YgcGFkIGNoYXJhY3RlcnMsIGlmIGFueS4KKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgcG9zaXRpb24gdGhhdCBpcyBub3QgYSBwYWQKKyAgICAgKiBjaGFyYWN0ZXIuICBSZXN1bHQgaXMgPj0gcG9zaXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgc2tpcFBhZGRpbmcoU3RyaW5nIHRleHQsIGludCBwb3NpdGlvbikgeworICAgICAgICB3aGlsZSAocG9zaXRpb24gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHQuY2hhckF0KHBvc2l0aW9uKSA9PSBwYWQpIHsKKyAgICAgICAgICAgICsrcG9zaXRpb247CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG1hdGNoZWQgYnkgdGhlIGdpdmVuIGFmZml4LCBvciAtMSBpZiBub25lLgorICAgICAqIFJ1bnMgb2Ygd2hpdGUgc3BhY2UgaW4gdGhlIGFmZml4LCBtYXRjaCBydW5zIG9mIHdoaXRlIHNwYWNlIGluCisgICAgICogdGhlIGlucHV0LiAgUGF0dGVybiB3aGl0ZSBzcGFjZSBhbmQgaW5wdXQgd2hpdGUgc3BhY2UgYXJlCisgICAgICogZGV0ZXJtaW5lZCBkaWZmZXJlbnRseTsgc2VlIGNvZGUuCisgICAgICogQHBhcmFtIHRleHQgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBwb3Mgb2Zmc2V0IGludG8gaW5wdXQgYXQgd2hpY2ggdG8gYmVnaW4gbWF0Y2hpbmcKKyAgICAgKiBAcGFyYW0gaXNOZWdhdGl2ZQorICAgICAqIEBwYXJhbSBpc1ByZWZpeAorICAgICAqIEBwYXJhbSBjdXJyZW5jeSByZXR1cm4gdmFsdWUgZm9yIHBhcnNlZCBjdXJyZW5jeSwgZm9yIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBwYXJzaW5nIG1vZGUsIG9yIG51bGwgZm9yIG5vcm1hbCBwYXJzaW5nLiBJbiBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBhbnkgY3VycmVuY3kgaXMgcGFyc2VkLCBub3QganVzdCB0aGUKKyAgICAgKiBjdXJyZW5jeSB0aGF0IHRoaXMgZm9ybWF0dGVyIGlzIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiBpbnB1dCB0aGF0IG1hdGNoZXMsIG9yIC0xIGlmIG1hdGNoIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb21wYXJlQWZmaXgoU3RyaW5nIHRleHQsIGludCBwb3MsIGJvb2xlYW4gaXNOZWdhdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1ByZWZpeCwgQ3VycmVuY3lbXSBjdXJyZW5jeSkgeworICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCB8fCBjdXJyZW5jeUNob2ljZSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNvbXBsZXhBZmZpeChpc05lZ2F0aXZlID8gbmVnUHJlZml4UGF0dGVybiA6IHBvc1ByZWZpeFBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgcG9zLCBjdXJyZW5jeSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ29tcGxleEFmZml4KGlzTmVnYXRpdmUgPyBuZWdTdWZmaXhQYXR0ZXJuIDogcG9zU3VmZml4UGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LCBwb3MsIGN1cnJlbmN5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1ByZWZpeCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVTaW1wbGVBZmZpeChpc05lZ2F0aXZlID8gbmVnYXRpdmVQcmVmaXggOiBwb3NpdGl2ZVByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlU2ltcGxlQWZmaXgoaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlU3VmZml4IDogcG9zaXRpdmVTdWZmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsIHBvcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBtYXRjaGVkIGJ5IHRoZSBnaXZlbiBhZmZpeCwgb3IgLTEgaWYgbm9uZS4KKyAgICAgKiBSdW5zIG9mIHdoaXRlIHNwYWNlIGluIHRoZSBhZmZpeCwgbWF0Y2ggcnVucyBvZiB3aGl0ZSBzcGFjZSBpbgorICAgICAqIHRoZSBpbnB1dC4gIFBhdHRlcm4gd2hpdGUgc3BhY2UgYW5kIGlucHV0IHdoaXRlIHNwYWNlIGFyZQorICAgICAqIGRldGVybWluZWQgZGlmZmVyZW50bHk7IHNlZSBjb2RlLgorICAgICAqIEBwYXJhbSBhZmZpeCBwYXR0ZXJuIHN0cmluZywgdGFrZW4gYXMgYSBsaXRlcmFsCisgICAgICogQHBhcmFtIGlucHV0IGlucHV0IHRleHQKKyAgICAgKiBAcGFyYW0gcG9zIG9mZnNldCBpbnRvIGlucHV0IGF0IHdoaWNoIHRvIGJlZ2luIG1hdGNoaW5nCisgICAgICogQHJldHVybiBsZW5ndGggb2YgaW5wdXQgdGhhdCBtYXRjaGVzLCBvciAtMSBpZiBtYXRjaCBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVTaW1wbGVBZmZpeChTdHJpbmcgYWZmaXgsIFN0cmluZyBpbnB1dCwgaW50IHBvcykgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhZmZpeC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChhZmZpeCwgaSk7CisgICAgICAgICAgICBpbnQgbGVuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgYSBwYXR0ZXJuIGxpa2U6IFx1MjAwRiBcdTAwMjAKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgYW5kIGlucHV0IHRleHQgbGlrZTogXHUyMDBGIFx1MDAyMAorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBVKzIwMEYgYW5kIFUrMDAyMCBhcmUgUnVsZVdoaXRlU3BhY2UgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAvLyBVKzAwMjAgaXMgVVdoaXRlU3BhY2UuICBTbyB3ZSBoYXZlIHRvIGZpcnN0IGRvIGEgZGlyZWN0CisgICAgICAgICAgICAgICAgLy8gbWF0Y2ggb2YgdGhlIHJ1biBvZiBSVUxFIHdoaXRlc3BhY2UgaW4gdGhlIHBhdHRlcm4sCisgICAgICAgICAgICAgICAgLy8gdGhlbiBtYXRjaCBhbnkgZXh0cmEgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICBib29sZWFuIGxpdGVyYWxNYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBpbnB1dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoaW5wdXQsIHBvcykgPT0gYykgeworICAgICAgICAgICAgICAgICAgICBsaXRlcmFsTWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBpICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gYWZmaXgubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQoYWZmaXgsIGkpOworICAgICAgICAgICAgICAgICAgICBsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciBydW4gaW4gYWZmaXgKKyAgICAgICAgICAgICAgICBpID0gc2tpcFJ1bGVXaGl0ZVNwYWNlKGFmZml4LCBpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcnVuIGluIGlucHV0IHRleHQKKyAgICAgICAgICAgICAgICAvLyBNdXN0IHNlZSBhdCBsZWFzdCBvbmUgd2hpdGUgc3BhY2UgY2hhciBpbiBpbnB1dCwKKyAgICAgICAgICAgICAgICAvLyB1bmxlc3Mgd2UndmUgYWxyZWFkeSBtYXRjaGVkIHNvbWUgY2hhcmFjdGVycyBsaXRlcmFsbHkuCisgICAgICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICAgICAgcG9zID0gc2tpcFVXaGl0ZVNwYWNlKGlucHV0LCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gcyAmJiAhbGl0ZXJhbE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPCBpbnB1dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoaW5wdXQsIHBvcykgPT0gYykgeworICAgICAgICAgICAgICAgICAgICBpICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3MgLSBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBydW4gb2YgemVybyBvciBtb3JlIGlzUnVsZVdoaXRlU3BhY2UoKSBjaGFyYWN0ZXJzIGF0CisgICAgICogcG9zIGluIHRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNraXBSdWxlV2hpdGVTcGFjZShTdHJpbmcgdGV4dCwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBydW4gb2YgemVybyBvciBtb3JlIGlzVVdoaXRlU3BhY2UoKSBjaGFyYWN0ZXJzIGF0IHBvcworICAgICAqIGluIHRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNraXBVV2hpdGVTcGFjZShTdHJpbmcgdGV4dCwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggbWF0Y2hlZCBieSB0aGUgZ2l2ZW4gYWZmaXgsIG9yIC0xIGlmIG5vbmUuCisgICAgICogQHBhcmFtIGFmZml4UGF0IHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHRleHQgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBwb3Mgb2Zmc2V0IGludG8gaW5wdXQgYXQgd2hpY2ggdG8gYmVnaW4gbWF0Y2hpbmcKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgcmV0dXJuIHZhbHVlIGZvciBwYXJzZWQgY3VycmVuY3ksIGZvciBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBvciBudWxsIGZvciBub3JtYWwgcGFyc2luZy4gSW4gZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgYW55IGN1cnJlbmN5IGlzIHBhcnNlZCwgbm90IGp1c3QgdGhlCisgICAgICogY3VycmVuY3kgdGhhdCB0aGlzIGZvcm1hdHRlciBpcyBzZXQgdG8uCisgICAgICogQHJldHVybiBsZW5ndGggb2YgaW5wdXQgdGhhdCBtYXRjaGVzLCBvciAtMSBpZiBtYXRjaCBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNvbXBsZXhBZmZpeChTdHJpbmcgYWZmaXhQYXQsIFN0cmluZyB0ZXh0LCBpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3lbXSBjdXJyZW5jeSkgeworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhZmZpeFBhdC5sZW5ndGgoKSAmJiBwb3MgPj0gMDsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBhZmZpeFBhdC5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IGFmZml4UGF0LmluZGV4T2YoUVVPVEUsIGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqKzE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqID4gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbWF0Y2godGV4dCwgcG9zLCBhZmZpeFBhdC5zdWJzdHJpbmcoaSwgaikpOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpPGFmZml4UGF0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXhQYXQuY2hhckF0KGkpPT1RVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IG1hdGNoKHRleHQsIHBvcywgUVVPVEUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIGFnYWluCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW50ZXJtaW5hdGVkIHF1b3RlOyBzaG91bGQgYmUgY2F1Z2h0IGJ5IGFwcGx5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlIENVUlJFTkNZX1NJR046CisgICAgICAgICAgICAgICAgLy8gSWYgY3VycmVuY3kgIT0gbnVsbCwgdGhlbiBwZXJmb3JtIGdlbmVyaWMgY3VycmVuY3kgbWF0Y2hpbmcuCisgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBkbyBjdXJyZW5jeSBjaG9pY2UgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAvL2Fzc2VydChjdXJyZW5jeSAhPSBudWxsIHx8CisgICAgICAgICAgICAgICAgLy8gICAgICAgKGdldEN1cnJlbmN5KCkgIT0gbnVsbCAmJiBjdXJyZW5jeUNob2ljZSAhPSBudWxsKSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbnRsID0gaTxhZmZpeFBhdC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBhZmZpeFBhdC5jaGFyQXQoaSkgPT0gQ1VSUkVOQ1lfU0lHTjsKKworICAgICAgICAgICAgICAgIC8vIFBhcnNlIGdlbmVyaWMgY3VycmVuY3kgLS0gYW55dGhpbmcgZm9yIHdoaWNoIHdlCisgICAgICAgICAgICAgICAgLy8gaGF2ZSBhIGRpc3BsYXkgbmFtZSwgb3IgYW55IDMtbGV0dGVyIElTTyBjb2RlLgorICAgICAgICAgICAgICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSBkaXNwbGF5IG5hbWUgZm9yIG91ciBsb2NhbGU7IGZpcnN0CisgICAgICAgICAgICAgICAgICAgIC8vIGRldGVybWluZSBvdXIgbG9jYWxlLgorICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBnZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICAgICAgICAgICAgICBpZiAodWxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhcHBseVBhdHRlcm4gaGFzIGJlZW4gY2FsbGVkOyB1c2UgdGhlIHN5bWJvbHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHVsb2MgPSBzeW1ib2xzLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gRGVsZWdhdGUgcGFyc2Ugb2YgZGlzcGxheSBuYW1lID0+IElTTyBjb2RlIHRvIEN1cnJlbmN5CisgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpc28gPSBDdXJyZW5jeS5wYXJzZSh1bG9jLCB0ZXh0LCBwcG9zKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiBwYXJzZSBzdWNjZWVkcywgcG9wdWxhdGUgY3VycmVuY3lbMF0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVswXSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGlzbyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnRsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIGdldEN1cnJlbmN5KCkuZ2V0Q3VycmVuY3lDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zID0gbmV3IFBhcnNlUG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBuID0gKi9jdXJyZW5jeUNob2ljZS5wYXJzZSh0ZXh0LCBwcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IChwcG9zLmdldEluZGV4KCkgPT0gcG9zKSA/IC0xIDogcHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0UGVyY2VudCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fTUlOVVM6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0TWludXNTaWduKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIGMpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgaSA9IHNraXBSdWxlV2hpdGVTcGFjZShhZmZpeFBhdCwgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciBhdCB0ZXh0W3Bvc10gYW5kIHJldHVybiB0aGUgaW5kZXggb2YgdGhlCisgICAgICogbmV4dCBjaGFyYWN0ZXIgdXBvbiBzdWNjZXNzLiAgUmV0dXJuIC0xIG9uIGZhaWx1cmUuICBJZgorICAgICAqIGlzUnVsZVdoaXRlU3BhY2UoY2gpIHRoZW4gbWF0Y2ggYSBydW4gb2Ygd2hpdGUgc3BhY2UgaW4gdGV4dC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IG1hdGNoKFN0cmluZyB0ZXh0LCBpbnQgcG9zLCBpbnQgY2gpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgLy8gQWR2YW5jZSBvdmVyIHJ1biBvZiB3aGl0ZSBzcGFjZSBpbiBpbnB1dCB0ZXh0CisgICAgICAgICAgICAvLyBNdXN0IHNlZSBhdCBsZWFzdCBvbmUgd2hpdGUgc3BhY2UgY2hhciBpbiBpbnB1dAorICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICBwb3MgPSBza2lwVVdoaXRlU3BhY2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gcykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChwb3MgPj0gMCAmJiBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKSA9PSBjaCkgPworICAgICAgICAgICAgKHBvcyArIFVURjE2LmdldENoYXJDb3VudChjaCkpIDogLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWF0Y2ggYSBzdHJpbmcgYXQgdGV4dFtwb3NdIGFuZCByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBuZXh0CisgICAgICogY2hhcmFjdGVyIHVwb24gc3VjY2Vzcy4gIFJldHVybiAtMSBvbiBmYWlsdXJlLiAgTWF0Y2ggYSBydW4gb2YKKyAgICAgKiB3aGl0ZSBzcGFjZSBpbiBzdHIgd2l0aCBhIHJ1biBvZiB3aGl0ZSBzcGFjZSBpbiB0ZXh0LgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWF0Y2goU3RyaW5nIHRleHQsIGludCBwb3MsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHN0ci5sZW5ndGgoKSAmJiBwb3MgPj0gMDsgKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIHBvcyA9IG1hdGNoKHRleHQsIHBvcywgY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgIGkgPSBza2lwUnVsZVdoaXRlU3BhY2Uoc3RyLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogQHJldHVybiBkZXNpcmVkIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGRvbid0IGFsbG93IG11bHRpcGxlIHJlZmVyZW5jZXMKKyAgICAgICAgICAgIHJldHVybiAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVjaW1hbCBmb3JtYXQgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0LiAgVGhlCisgICAgICogZm9ybWF0IHVzZXMgYSBjb3B5IG9mIHRoZSBwcm92aWRlZCBzeW1ib2xzLgorICAgICAqIEBwYXJhbSBuZXdTeW1ib2xzIGRlc2lyZWQgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgbmV3U3ltYm9scykgeworICAgICAgICBzeW1ib2xzID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBuZXdTeW1ib2xzLmNsb25lKCk7CisgICAgICAgIHNldEN1cnJlbmN5Rm9yU3ltYm9scygpOworICAgICAgICBleHBhbmRBZmZpeGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXBkYXRlIHRoZSBjdXJyZW5jeSBvYmplY3QgdG8gbWF0Y2ggdGhlIHN5bWJvbHMuICBUaGlzIG1ldGhvZAorICAgICAqIGlzIHVzZWQgb25seSB3aGVuIHRoZSBjYWxsZXIgaGFzIHBhc3NlZCBpbiBhIHN5bWJvbHMgb2JqZWN0CisgICAgICogdGhhdCBtYXkgbm90IGJlIHRoZSBkZWZhdWx0IG9iamVjdCBmb3IgaXRzIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCkgeworICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgVXBkYXRlIHRoZSBhZmZpeCBzdHJpbmdzIGFjY3JvZGluZyB0byBzeW1ib2xzIGluIG9yZGVyIHRvIGtlZXAKKyAgICAgICAgICB0aGUgYWZmaXggc3RyaW5ncyB1cCB0byBkYXRlLgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8vIFdpdGggdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgQ3VycmVuY3kgb2JqZWN0LCB0aGUgY3VycmVuY3kKKyAgICAgICAgLy8gc3ltYm9scyBpbiB0aGUgREZTIG9iamVjdCBhcmUgaWdub3JlZC4gIEZvciBiYWNrd2FyZAorICAgICAgICAvLyBjb21wYXRpYmlsaXR5LCB3ZSBjaGVjayBhbnkgZXhwbGljaXRseSBzZXQgREZTIG9iamVjdC4gIElmIGl0CisgICAgICAgIC8vIGlzIGEgZGVmYXVsdCBzeW1ib2xzIG9iamVjdCBmb3IgaXRzIGxvY2FsZSwgd2UgY2hhbmdlIHRoZQorICAgICAgICAvLyBjdXJyZW5jeSBvYmplY3QgdG8gb25lIGZvciB0aGF0IGxvY2FsZS4gIElmIGl0IGlzIGN1c3RvbSwKKyAgICAgICAgLy8gd2Ugc2V0IHRoZSBjdXJyZW5jeSB0byBudWxsLgorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZWYgPQorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bWJvbHMuZ2V0TG9jYWxlKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKHN5bWJvbHMuZ2V0Q3VycmVuY3lTeW1ib2woKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgZGVmLmdldEN1cnJlbmN5U3ltYm9sKCkpICYmCisgICAgICAgICAgICBzeW1ib2xzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpLmVxdWFscygKKyAgICAgICAgICAgICAgICBkZWYuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkpKSB7CisgICAgICAgICAgICBzZXRDdXJyZW5jeShDdXJyZW5jeS5nZXRJbnN0YW5jZShzeW1ib2xzLmdldExvY2FsZSgpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXRDdXJyZW5jeShudWxsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc2l0aXZlUHJlZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIHBvc2l0aXZlUHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVByZWZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgIHBvc2l0aXZlUHJlZml4ID0gbmV3VmFsdWU7CisgICAgICAgIHBvc1ByZWZpeFBhdHRlcm4gPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmVnYXRpdmVQcmVmaXggKCkgeworICAgICAgICByZXR1cm4gbmVnYXRpdmVQcmVmaXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMsICgkMTIzKSAod2l0aCBuZWdhdGl2ZSBzdWZmaXgpLCBzRnItMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IG5ld1ZhbHVlOworICAgICAgICBuZWdQcmVmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiBwb3NpdGl2ZVN1ZmZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBwb3NpdGl2ZVN1ZmZpeCA9IG5ld1ZhbHVlOworICAgICAgICBwb3NTdWZmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMyUsICgkMTIzKSAod2l0aCBwb3NpdGl2ZSBzdWZmaXhlcykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlU3VmZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIG5lZ2F0aXZlU3VmZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBuZWdhdGl2ZVN1ZmZpeCA9IG5ld1ZhbHVlOworICAgICAgICBuZWdTdWZmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TXVsdGlwbGllciAoKSB7CisgICAgICAgIHJldHVybiBtdWx0aXBsaWVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKiBGb3IgYSBwZXJjZW50YWdlLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIiUiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAuCisgICAgICogKEZvciBBcmFiaWMsIHVzZSBhcmFiaWMgcGVyY2VudCBzeW1ib2wpLgorICAgICAqIEZvciBhIHBlcm1pbGwsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiXHUyMDMxIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwMC4KKyAgICAgKiA8UD5FeGFtcGxlczogd2l0aCAxMDAsIDEuMjMgLT4gIjEyMyIsIGFuZCAiMTIzIiAtPiAxLjIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TXVsdGlwbGllciAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgbXVsdGlwbGllcjogIiArIG5ld1ZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBtdWx0aXBsaWVyID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgaW5jcmVtZW50LgorICAgICAqIEByZXR1cm4gQSBwb3NpdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHJvdW5kaW5nCisgICAgICogaXMgbm90IGluIGVmZmVjdC4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgamF2YS5tYXRoLkJpZ0RlY2ltYWwgZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSB7CisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSA9PSBudWxsKSByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHJvdW5kaW5nSW5jcmVtZW50SUNVLnRvQmlnRGVjaW1hbCgpOworICAgIH0KKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIEJpZ0RlY2ltYWwgZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSB7CisvLyMjICAgIAlpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisvLyMjICAgICAgICByZXR1cm4gbmV3IEJpZ0RlY2ltYWwocm91bmRpbmdJbmNyZW1lbnRJQ1UudG9TdHJpbmcoKSk7CisvLyMjICAgIH0KKy8vI2VuZGlmCisgICAgCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwoMC4wKTwvY29kZT4gdG8gZGlzYWJsZSByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvdW5kaW5nSW5jcmVtZW50KGphdmEubWF0aC5CaWdEZWNpbWFsIG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzZXRSb3VuZGluZ0luY3JlbWVudCgoQmlnRGVjaW1hbCludWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldFJvdW5kaW5nSW5jcmVtZW50KG5ldyBCaWdEZWNpbWFsKG5ld1ZhbHVlKSk7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwoMC4wKTwvY29kZT4gdG8gZGlzYWJsZSByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ0luY3JlbWVudChCaWdEZWNpbWFsIG5ld1ZhbHVlKSB7CisgICAgICAgIGludCBpID0gbmV3VmFsdWUgPT0gbnVsbAorICAgICAgICAgICAgPyAwIDogbmV3VmFsdWUuY29tcGFyZVRvKEJpZ0RlY2ltYWwuWkVSTyk7CisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByb3VuZGluZyBpbmNyZW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICBzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChuZXdWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciAwLjAgdG8gZGlzYWJsZQorICAgICAqIHJvdW5kaW5nLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPm5ld1ZhbHVlPC9jb2RlPiBpcyA8IDAuMAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Um91bmRpbmdJbmNyZW1lbnQoZG91YmxlIG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8IDAuMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByb3VuZGluZyBpbmNyZW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICByb3VuZGluZ0RvdWJsZSA9IG5ld1ZhbHVlOworICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOworICAgICAgICBpZiAobmV3VmFsdWUgPT0gMC4wZCkgeworICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoKEJpZ0RlY2ltYWwpbnVsbCk7ICAgICAgIAkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlID0gbmV3VmFsdWU7CisgICAgICAgICAgICBpZiAocm91bmRpbmdEb3VibGUgPCAxLjBkKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJhd1JvdW5kZWRSZWNpcHJvY2FsID0gMS4wZC9yb3VuZGluZ0RvdWJsZTsKKyAgICAgICAgICAgICAgICBzZXRSb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwocmF3Um91bmRlZFJlY2lwcm9jYWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChuZXcgQmlnRGVjaW1hbChuZXdWYWx1ZSkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgc2V0Um91bmRpbmdEb3VibGVSZWNpcHJvY2FsKGRvdWJsZSByYXdSb3VuZGVkUmVjaXByb2NhbCkgeworICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSBNYXRoLnJpbnQocmF3Um91bmRlZFJlY2lwcm9jYWwpOworICAgICAgICBpZiAoTWF0aC5hYnMocmF3Um91bmRlZFJlY2lwcm9jYWwgLSByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwpID4gcm91bmRpbmdJbmNyZW1lbnRFcHNpbG9uKSB7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgcm91bmRpbmdJbmNyZW1lbnRFcHNpbG9uID0gMC4wMDAwMDAwMDE7CisgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbiA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VQPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Um91bmRpbmdNb2RlKCkgeworICAgICAgICByZXR1cm4gcm91bmRpbmdNb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIG1vZGUuICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzIHRoZSByb3VuZGluZworICAgICAqIGluY3JlbWVudCBpcyBncmVhdGVyIHRoYW4gemVyby4KKyAgICAgKiBAcGFyYW0gcm91bmRpbmdNb2RlIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVVA8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kaW5nTW9kZTwvY29kZT4KKyAgICAgKiBpcyB1bnJlY29nbml6ZWQuCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ01vZGUoaW50IHJvdW5kaW5nTW9kZSkgeworICAgICAgICBpZiAocm91bmRpbmdNb2RlIDwgQmlnRGVjaW1hbC5ST1VORF9VUAorICAgICAgICAgICAgfHwgcm91bmRpbmdNb2RlID4gQmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByb3VuZGluZyBtb2RlOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcm91bmRpbmdNb2RlKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJvdW5kaW5nTW9kZSA9IHJvdW5kaW5nTW9kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogR2V0IHRoZSB3aWR0aCB0byB3aGljaCB0aGUgb3V0cHV0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPiBpcyBwYWRkZWQuCisgICAgICogVGhlIHdpZHRoIGlzIGNvdW50ZWQgaW4gMTYtYml0IGNvZGUgdW5pdHMuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoLCBvciB6ZXJvIGlmIG5vIHBhZGRpbmcgaXMgaW4gZWZmZWN0CisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdFdpZHRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHdpZHRoIHRvIHdoaWNoIHRoZSBvdXRwdXQgb2YgPGNvZGU+Zm9ybWF0KCk8L2NvZGU+IGlzIHBhZGRlZC4KKyAgICAgKiBUaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKiBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIgcGFkZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSB3aWR0aCB0aGUgd2lkdGggdG8gd2hpY2ggdG8gcGFkIHRoZSByZXN1bHQgb2YKKyAgICAgKiA8Y29kZT5mb3JtYXQoKTwvY29kZT4sIG9yIHplcm8gdG8gZGlzYWJsZSBwYWRkaW5nCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+d2lkdGg8L2NvZGU+IGlzIDwgMAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdFdpZHRoKGludCB3aWR0aCkgeworICAgICAgICBpZiAod2lkdGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGZvcm1hdCB3aWR0aCIpOworICAgICAgICB9CisgICAgICAgIGZvcm1hdFdpZHRoID0gd2lkdGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIHRvIHRoZSBmb3JtYXQgd2lkdGguICBUaGUgZGVmYXVsdCBpcyAnICcuCisgICAgICogQHJldHVybiB0aGUgcGFkIGNoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGFkQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gcGFkOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCB0byB0aGUgZm9ybWF0IHdpZHRoLiAgSWYgcGFkZGluZworICAgICAqIGlzIG5vdCBlbmFibGVkLCB0aGVuIHRoaXMgd2lsbCB0YWtlIGVmZmVjdCBpZiBwYWRkaW5nIGlzIGxhdGVyCisgICAgICogZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gcGFkQ2hhciB0aGUgcGFkIGNoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkQ2hhcmFjdGVyKGNoYXIgcGFkQ2hhcikgeworICAgICAgICBwYWQgPSBwYWRDaGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCB0YWtlIHBsYWNlLiAgVGhpcyBpcyB0aGUgbG9jYXRpb24KKyAgICAgKiBhdCB3aGljaCBwYWRkaW5nIHdpbGwgYmUgaW5zZXJ0ZWQgaWYgdGhlIHJlc3VsdCBvZiA8Y29kZT5mb3JtYXQoKTwvY29kZT4KKyAgICAgKiBpcyBzaG9ydGVyIHRoYW4gdGhlIGZvcm1hdCB3aWR0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYWQgcG9zaXRpb24sIG9uZSBvZiA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4sCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1BSRUZJWDwvY29kZT4sIDxjb2RlPlBBRF9CRUZPUkVfU1VGRklYPC9jb2RlPiwgb3IKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfU1VGRklYPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFBhZFBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gcGFkUG9zaXRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFkZGluZyB3aWxsIHRha2UgcGxhY2UuICBUaGlzIGlzIHRoZSBsb2NhdGlvbgorICAgICAqIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCBiZSBpbnNlcnRlZCBpZiB0aGUgcmVzdWx0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPgorICAgICAqIGlzIHNob3J0ZXIgdGhhbiB0aGUgZm9ybWF0IHdpZHRoLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyBwYWRkaW5nIGlzCisgICAgICogZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gcGFkUG9zIHRoZSBwYWQgcG9zaXRpb24sIG9uZSBvZiA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4sCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1BSRUZJWDwvY29kZT4sIDxjb2RlPlBBRF9CRUZPUkVfU1VGRklYPC9jb2RlPiwgb3IKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfU1VGRklYPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGFkIHBvc2l0aW9uIGluCisgICAgICogdW5yZWNvZ25pemVkCisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkUG9zaXRpb24oaW50IHBhZFBvcykgeworICAgICAgICBpZiAocGFkUG9zIDwgUEFEX0JFRk9SRV9QUkVGSVggfHwgcGFkUG9zID4gUEFEX0FGVEVSX1NVRkZJWCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBwYWQgcG9zaXRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBwYWRQb3NpdGlvbiA9IHBhZFBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHNjaWVudGlmaWMgbm90YXRpb24gaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgZm9ybWF0cyBhbmQgcGFyc2VzIHNjaWVudGlmaWMgbm90YXRpb24KKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1NjaWVudGlmaWNOb3RhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHVzZUV4cG9uZW50aWFsTm90YXRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB3aGV0aGVyIG9yIG5vdCBzY2llbnRpZmljIG5vdGF0aW9uIGlzIHVzZWQuICBXaGVuIHNjaWVudGlmaWMgbm90YXRpb24KKyAgICAgKiBpcyB1c2VkLCB0aGUgZWZmZWN0aXZlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIDw9IDguICBJZiB0aGUKKyAgICAgKiBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBzZXQgdG8gbW9yZSB0aGFuIDgsIHRoZSBlZmZlY3RpdmUKKyAgICAgKiBtYXhpbXVtIHdpbGwgYmUgMS4gIFRoaXMgYWxsb3dzIHRoaXMgY2FsbCB0byBnZW5lcmF0ZSBhICdkZWZhdWx0JyBzY2llbnRpZmljCisgICAgICogbnVtYmVyIGZvcm1hdCB3aXRob3V0IGFkZGl0aW9uYWwgY2hhbmdlcy4KKyAgICAgKiBAcGFyYW0gdXNlU2NpZW50aWZpYyB0cnVlIGlmIHRoaXMgb2JqZWN0IGZvcm1hdHMgYW5kIHBhcnNlcyBzY2llbnRpZmljCisgICAgICogbm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjaWVudGlmaWNOb3RhdGlvbihib29sZWFuIHVzZVNjaWVudGlmaWMpIHsKKyAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IHVzZVNjaWVudGlmaWM7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSBleHBvbmVudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJ5dGUgZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluRXhwb25lbnREaWdpdHM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bi4gIFRoaXMgaGFzIG5vCisgICAgICogZWZmZWN0IHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gbWluRXhwRGlnIGEgdmFsdWUgPj0gMSBpbmRpY2F0aW5nIHRoZSBmZXdlc3QgZXhwb25lbnQgZGlnaXRzCisgICAgICogdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+bWluRXhwRGlnPC9jb2RlPiA8IDEKKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1FeHBvbmVudERpZ2l0cyhieXRlIG1pbkV4cERpZykgeworICAgICAgICBpZiAobWluRXhwRGlnIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXhwb25lbnQgZGlnaXRzIG11c3QgYmUgPj0gMSIpOworICAgICAgICB9CisgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID0gbWluRXhwRGlnOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZXhwb25lbnQgc2lnbiBpcyBhbHdheXMgc2hvd24uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIgdGhlCisgICAgICogbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkgbmVnYXRpdmUKKyAgICAgKiBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duKCkgeworICAgICAgICByZXR1cm4gZXhwb25lbnRTaWduQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB3aGV0aGVyIHRoZSBleHBvbmVudCBzaWduIGlzIGFsd2F5cyBzaG93bi4gIFRoaXMgaGFzIG5vIGVmZmVjdAorICAgICAqIHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gZXhwU2lnbkFsd2F5cyB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIKKyAgICAgKiB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkKKyAgICAgKiBuZWdhdGl2ZSBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duKGJvb2xlYW4gZXhwU2lnbkFsd2F5cykgeworICAgICAgICBleHBvbmVudFNpZ25BbHdheXNTaG93biA9IGV4cFNpZ25BbHdheXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI3NldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdTaXplIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgZ3JvdXBpbmdTaXplID0gKGJ5dGUpbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZS4gSW4gc29tZSBsb2NhbGVzIG9uZQorICAgICAqIGdyb3VwaW5nIGludGVydmFsIGlzIHVzZWQgZm9yIHRoZSBsZWFzdCBzaWduaWZpY2FudCBpbnRlZ2VyCisgICAgICogZGlnaXRzICh0aGUgcHJpbWFyeSBncm91cGluZyBzaXplKSwgYW5kIGFub3RoZXIgaXMgdXNlZCBmb3IgYWxsCisgICAgICogb3RoZXJzICh0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUpLiAgQSBmb3JtYXR0ZXIgc3VwcG9ydGluZyBhCisgICAgICogc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUgd2lsbCByZXR1cm4gYSBwb3NpdGl2ZSBpbnRlZ2VyIHVuZXF1YWwKKyAgICAgKiB0byB0aGUgcHJpbWFyeSBncm91cGluZyBzaXplIHJldHVybmVkIGJ5CisgICAgICogPGNvZGU+Z2V0R3JvdXBpbmdTaXplKCk8L2NvZGU+LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5CisgICAgICogZ3JvdXBpbmcgc2l6ZSBpcyA0LCBhbmQgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplIGlzIDIsIHRoZW4KKyAgICAgKiB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBmb3JtYXRzIGFzICIxLDIzLDQ1LDY3ODkiLCBhbmQgdGhlIHBhdHRlcm4KKyAgICAgKiBhcHBlYXJzIGFzICIjLCMjLCMjIzAiLgorICAgICAqIFtORVddCisgICAgICogQHJldHVybiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUsIG9yIGEgdmFsdWUgbGVzcyB0aGFuCisgICAgICogb25lIGlmIHRoZXJlIGlzIG5vbmUKKyAgICAgKiBAc2VlICNzZXRTZWNvbmRhcnlHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemUyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuIElmIHNldCB0byBhIHZhbHVlIGxlc3MgdGhhbiAxLAorICAgICAqIHRoZW4gc2Vjb25kYXJ5IGdyb3VwaW5nIGlzIHR1cm5lZCBvZmYsIGFuZCB0aGUgcHJpbWFyeSBncm91cGluZworICAgICAqIHNpemUgaXMgdXNlZCBmb3IgYWxsIGludGVydmFscywgbm90IGp1c3QgdGhlIGxlYXN0IHNpZ25pZmljYW50LgorICAgICAqIFtORVddCisgICAgICogQHNlZSAjZ2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0R3JvdXBpbmdVc2VkCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGdyb3VwaW5nU2l6ZTIgPSAoYnl0ZSluZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIGdldCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpdGggaW50ZWdlcnMuCisgICAgICogKFRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aWxsIGFsd2F5cyBhcHBlYXIgd2l0aCBkZWNpbWFscy4pCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqCisgICAgICogPHA+VGhpcyBvbmx5IGFmZmVjdHMgZm9ybWF0dGluZywgYW5kIG9ubHkgd2hlcmUKKyAgICAgKiB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIGUuZy4sCisgICAgICogaWYgdHJ1ZSwgIDM0NTYuMDAgLT4gIjMsNDU2LiIKKyAgICAgKiBpZiBmYWxzZSwgMzQ1Ni4wMCAtPiAiMzQ1NiIKKyAgICAgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIHBhcnNpbmcuICBJZiB5b3Ugd2FudCBwYXJzaW5nIHRvIHN0b3AgYXQgdGhlIGRlY2ltYWwKKyAgICAgKiBwb2ludCwgdXNlIHNldFBhcnNlSW50ZWdlck9ubHkuCisgICAgICoKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gPSBuZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBvdmVycmlkZTsgbm8gY2hhbmdlIGluIHNlbWFudGljcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBvdGhlciA9IChEZWNpbWFsRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIuc3ltYm9scyA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgc3ltYm9scy5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIuZGlnaXRMaXN0ID0gbmV3IERpZ2l0TGlzdCgpOyAvLyBmaXggZm9yIEpCIzUzNTgKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUT0RPOiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciB3ZSBzaGFyZSBhIHNpbmdsZSBjb3B5CisgICAgICAgICAgICAgKiBvZiBEaWdpdExpc3QgYnkgbXVsdGlwbGUgY2xvbmVkIGNvcGllcy4gIGZvcm1hdC9zdWJmb3JtYXQKKyAgICAgICAgICAgICAqIGFyZSBkZXNpZ25lZCB0byB1c2UgYSBzaW5nbGUgaW5zdGFuY2UsIGJ1dCBwYXJzZS9zdWJwYXJzZQorICAgICAgICAgICAgICogaW1wbGVtZW50YXRpb24gaXMgbm90LiAKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghc3VwZXIuZXF1YWxzKG9iaikpIHJldHVybiBmYWxzZTsgLy8gc3VwZXIgZG9lcyBjbGFzcyBjaGVjaworCisgICAgICAgIERlY2ltYWxGb3JtYXQgb3RoZXIgPSAoRGVjaW1hbEZvcm1hdCkgb2JqOworICAgICAgICAvKiBBZGQgdGhlIGNvbXBhcmlzb24gb2YgdGhlIGZvdXIgbmV3IGFkZGVkIGZpZWxkcyAsdGhleSBhcmUKKyAgICAgICAgICogcG9zUHJlZml4UGF0dGVybiwgcG9zU3VmZml4UGF0dGVybiwgbmVnUHJlZml4UGF0dGVybiwgbmVnU3VmZml4UGF0dGVybi4KKyAgICAgICAgICogW1JpY2hhcmQvR0NMXQorICAgICAgICAgKi8KKyAgICAgICAgcmV0dXJuIChwb3NQcmVmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgZXF1YWxzKHBvc1ByZWZpeFBhdHRlcm4sIG90aGVyLnBvc1ByZWZpeFBhdHRlcm4pKQorICAgICAgICAgICAgJiYgKHBvc1N1ZmZpeFBhdHRlcm4gIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICBlcXVhbHMocG9zU3VmZml4UGF0dGVybiwgb3RoZXIucG9zU3VmZml4UGF0dGVybikpCisgICAgICAgICAgICAmJiAobmVnUHJlZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIGVxdWFscyhuZWdQcmVmaXhQYXR0ZXJuLCBvdGhlci5uZWdQcmVmaXhQYXR0ZXJuKSkKKyAgICAgICAgICAgICYmIChuZWdTdWZmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgZXF1YWxzKG5lZ1N1ZmZpeFBhdHRlcm4sIG90aGVyLm5lZ1N1ZmZpeFBhdHRlcm4pKQorICAgICAgICAgICAgJiYgbXVsdGlwbGllciA9PSBvdGhlci5tdWx0aXBsaWVyCisgICAgICAgICAgICAmJiBncm91cGluZ1NpemUgPT0gb3RoZXIuZ3JvdXBpbmdTaXplCisgICAgICAgICAgICAmJiBncm91cGluZ1NpemUyID09IG90aGVyLmdyb3VwaW5nU2l6ZTIKKyAgICAgICAgICAgICYmIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biA9PSBvdGhlci5kZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24KKyAgICAgICAgICAgICYmIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPT0gb3RoZXIudXNlRXhwb25lbnRpYWxOb3RhdGlvbgorICAgICAgICAgICAgJiYgKCF1c2VFeHBvbmVudGlhbE5vdGF0aW9uIHx8CisgICAgICAgICAgICAgICAgbWluRXhwb25lbnREaWdpdHMgPT0gb3RoZXIubWluRXhwb25lbnREaWdpdHMpCisgICAgICAgICAgICAmJiB1c2VTaWduaWZpY2FudERpZ2l0cyA9PSBvdGhlci51c2VTaWduaWZpY2FudERpZ2l0cworICAgICAgICAgICAgJiYgKCF1c2VTaWduaWZpY2FudERpZ2l0cyB8fAorICAgICAgICAgICAgICAgIG1pblNpZ25pZmljYW50RGlnaXRzID09IG90aGVyLm1pblNpZ25pZmljYW50RGlnaXRzICYmCisgICAgICAgICAgICAgICAgbWF4U2lnbmlmaWNhbnREaWdpdHMgPT0gb3RoZXIubWF4U2lnbmlmaWNhbnREaWdpdHMpCisgICAgICAgICAgICAmJiBzeW1ib2xzLmVxdWFscyhvdGhlci5zeW1ib2xzKTsKKyAgICB9CisgICAgLy9tZXRob2QgdG8gdW5xdW90ZSB0aGUgc3RyaW5ncyBhbmQgY29tcGFyZQorICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbHMoU3RyaW5nIHBhdDEsIFN0cmluZyBwYXQyKXsKKyAgICAgICAgLy9mYXN0IHBhdGgKKyAgICAgICAgaWYocGF0MS5lcXVhbHMocGF0MikpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVucXVvdGUocGF0MSkuZXF1YWxzKHVucXVvdGUocGF0MikpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyB1bnF1b3RlKFN0cmluZyBwYXQpeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwYXQubGVuZ3RoKCkpOworICAgICAgICBpbnQgaT0wOworICAgICAgICB3aGlsZShpPHBhdC5sZW5ndGgoKSl7CisgICAgICAgICAgICBjaGFyIGNoID0gcGF0LmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYoY2ghPVFVT1RFKXsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorLy8gICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUb1N0cmluZyhTdHJpbmdCdWZmZXIgYnVmKSB7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJcbnBvc1ByZWZpeFBhdHRlcm46ICciICsgcG9zUHJlZml4UGF0dGVybiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInBvc2l0aXZlUHJlZml4OiAnIiArIHBvc2l0aXZlUHJlZml4ICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgicG9zU3VmZml4UGF0dGVybjogJyIgKyBwb3NTdWZmaXhQYXR0ZXJuICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgicG9zaXRpdmVTdWZmaXg6ICciICsgcG9zaXRpdmVTdWZmaXggKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJuZWdQcmVmaXhQYXR0ZXJuOiAnIiArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5mb3JtYXQxRm9yU291cmNlKG5lZ1ByZWZpeFBhdHRlcm4pICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnYXRpdmVQcmVmaXg6ICciICsgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UobmVnYXRpdmVQcmVmaXgpICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnU3VmZml4UGF0dGVybjogJyIgKyBuZWdTdWZmaXhQYXR0ZXJuICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnYXRpdmVTdWZmaXg6ICciICsgbmVnYXRpdmVTdWZmaXggKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtdWx0aXBsaWVyOiAnIiArIG11bHRpcGxpZXIgKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJncm91cGluZ1NpemU6ICciICsgZ3JvdXBpbmdTaXplICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiZ3JvdXBpbmdTaXplMjogJyIgKyBncm91cGluZ1NpemUyICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duOiAnIiArIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInVzZUV4cG9uZW50aWFsTm90YXRpb246ICciICsgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm1pbkV4cG9uZW50RGlnaXRzOiAnIiArIG1pbkV4cG9uZW50RGlnaXRzICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgidXNlU2lnbmlmaWNhbnREaWdpdHM6ICciICsgdXNlU2lnbmlmaWNhbnREaWdpdHMgKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtaW5TaWduaWZpY2FudERpZ2l0czogJyIgKyBtaW5TaWduaWZpY2FudERpZ2l0cyArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm1heFNpZ25pZmljYW50RGlnaXRzOiAnIiArIG1heFNpZ25pZmljYW50RGlnaXRzICsgIidcbiIpOyAgICAgICAgICAgCisvLyAgICAgICAgICBidWYuYXBwZW5kKCJzeW1ib2xzOiAnIiArIHN5bWJvbHMgKyAiJyIpOworLy8gICAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuaGFzaENvZGUoKSAqIDM3ICsgcG9zaXRpdmVQcmVmaXguaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogU3ludGhlc2l6ZXMgYSBwYXR0ZXJuIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBvZiB0aGlzIEZvcm1hdCBvYmplY3QuCisgICAgICogQHNlZSAjYXBwbHlQYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiB0b1BhdHRlcm4oIGZhbHNlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ludGhlc2l6ZXMgYSBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50CisgICAgICogc3RhdGUgb2YgdGhpcyBGb3JtYXQgb2JqZWN0LgorICAgICAqIEBzZWUgI2FwcGx5UGF0dGVybgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gdG9QYXR0ZXJuKCB0cnVlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwYW5kIHRoZSBhZmZpeCBwYXR0ZXJuIHN0cmluZ3MgaW50byB0aGUgZXhwYW5kZWQgYWZmaXggc3RyaW5ncy4gIElmIGFueQorICAgICAqIGFmZml4IHBhdHRlcm4gc3RyaW5nIGlzIG51bGwsIGRvIG5vdCBleHBhbmQgaXQuICBUaGlzIG1ldGhvZCBzaG91bGQgYmUKKyAgICAgKiBjYWxsZWQgYW55IHRpbWUgdGhlIHN5bWJvbHMgb3IgdGhlIGFmZml4IHBhdHRlcm5zIGNoYW5nZSBpbiBvcmRlciB0byBrZWVwCisgICAgICogdGhlIGV4cGFuZGVkIGFmZml4IHN0cmluZ3MgdXAgdG8gZGF0ZS4KKyAgICAgKi8KKyAgICAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kQWZmaXhlcygpIHsKKyAgICAgICAgLy8gZXhwYW5kQWZmaXgoKSB3aWxsIHNldCBjdXJyZW5jeUNob2ljZSB0byBhIG5vbi1udWxsIHZhbHVlIGlmCisgICAgICAgIC8vIGFwcHJvcHJpYXRlIEFORCBpZiBpdCBpcyBudWxsLgorICAgICAgICBjdXJyZW5jeUNob2ljZSA9IG51bGw7CisKKyAgICAgICAgLy8gUmV1c2Ugb25lIFN0cmluZ0J1ZmZlciBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChwb3NQcmVmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KHBvc1ByZWZpeFBhdHRlcm4sIGJ1ZmZlciwgZmFsc2UpOworICAgICAgICAgICAgcG9zaXRpdmVQcmVmaXggPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocG9zU3VmZml4UGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbmRBZmZpeChwb3NTdWZmaXhQYXR0ZXJuLCBidWZmZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHBvc2l0aXZlU3VmZml4ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZ1ByZWZpeFBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgZXhwYW5kQWZmaXgobmVnUHJlZml4UGF0dGVybiwgYnVmZmVyLCBmYWxzZSk7CisgICAgICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGlmIChuZWdTdWZmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KG5lZ1N1ZmZpeFBhdHRlcm4sIGJ1ZmZlciwgZmFsc2UpOworICAgICAgICAgICAgbmVnYXRpdmVTdWZmaXggPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGFuZCBhbiBhZmZpeCBwYXR0ZXJuIGludG8gYW4gYWZmaXggc3RyaW5nLiAgQWxsIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgcGF0dGVybiBhcmUgbGl0ZXJhbCB1bmxlc3MgYnJhY2tldGVkIGJ5IFFVT1RFcy4gIFRoZQorICAgICAqIGZvbGxvd2luZyBjaGFyYWN0ZXJzIG91dHNpZGUgUVVPVEUgYXJlIHJlY29nbml6ZWQ6CisgICAgICogUEFUVEVSTl9QRVJDRU5ULCBQQVRURVJOX1BFUl9NSUxMRSwgUEFUVEVSTl9NSU5VUywgYW5kCisgICAgICogQ1VSUkVOQ1lfU0lHTi4gIElmIENVUlJFTkNZX1NJR04gaXMgZG91YmxlZCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAgKiBhbiBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHNpZ24uICBBbnkgb3RoZXIgY2hhcmFjdGVyIG91dHNpZGUKKyAgICAgKiBRVU9URSByZXByZXNlbnRzIGl0c2VsZi4gIFF1b3RlZCB0ZXh0IG11c3QgYmUgd2VsbC1mb3JtZWQuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHR3byBkaXN0aW5jdCB3YXlzLiAgRmlyc3QsIGl0IGlzIHVzZWQgdG8gZXhwYW5kCisgICAgICogdGhlIHN0b3JlZCBhZmZpeCBwYXR0ZXJucyBpbnRvIGFjdHVhbCBhZmZpeGVzLiAgRm9yIHRoaXMgdXNhZ2UsIGRvRm9ybWF0CisgICAgICogbXVzdCBiZSBmYWxzZS4gIFNlY29uZCwgaXQgaXMgdXNlZCB0byBleHBhbmQgdGhlIHN0b3JlZCBhZmZpeCBwYXR0ZXJucworICAgICAqIGdpdmVuIGEgc3BlY2lmaWMgbnVtYmVyIChkb0Zvcm1hdCA9PSB0cnVlKSwgZm9yIHRob3NlIHJhcmUgY2FzZXMgaW4KKyAgICAgKiB3aGljaCBhIGN1cnJlbmN5IGZvcm1hdCByZWZlcmVuY2VzIGEgQ2hvaWNlRm9ybWF0IChlLmcuLCBlbl9JTiBkaXNwbGF5CisgICAgICogbmFtZSBmb3IgSU5SKS4gIFRoZSBudW1iZXIgaXRzZWxmIGlzIHRha2VuIGZyb20gZGlnaXRMaXN0LgorICAgICAqCisgICAgICogV2hlbiB1c2VkIGluIHRoZSBmaXJzdCB3YXksIHRoaXMgbWV0aG9kIGhhcyBhIHNpZGUgZWZmZWN0OiBJdCBzZXRzCisgICAgICogY3VycmVuY3lDaG9pY2UgdG8gYSBDaG9pY2VGb3JtYXQgb2JqZWN0LCBpZiB0aGUgY3VycmVuY3kncyBkaXNwbGF5IG5hbWUKKyAgICAgKiBpbiB0aGlzIGxvY2FsZSBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuICh2ZXJ5IHJhcmUpLiAgSXQgb25seSBkb2VzIHRoaXMKKyAgICAgKiBpZiBjdXJyZW5jeUNob2ljZSBpcyBudWxsIHRvIHN0YXJ0IHdpdGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgbm9uLW51bGwsIHBvc3NpYmx5IGVtcHR5IHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIGEgc2NyYXRjaCBTdHJpbmdCdWZmZXI7IGl0cyBjb250ZW50cyB3aWxsIGJlIGxvc3QKKyAgICAgKiBAcGFyYW0gZG9Gb3JtYXQgaWYgZmFsc2UsIHRoZW4gdGhlIHBhdHRlcm4gd2lsbCBiZSBleHBhbmRlZCwgYW5kIGlmIGEKKyAgICAgKiBjdXJyZW5jeSBzeW1ib2wgaXMgZW5jb3VudGVyZWQgdGhhdCBleHBhbmRzIHRvIGEgQ2hvaWNlRm9ybWF0LCB0aGUKKyAgICAgKiBjdXJyZW5jeUNob2ljZSBtZW1iZXIgdmFyaWFibGUgd2lsbCBiZSBpbml0aWFsaXplZCBpZiBpdCBpcyBudWxsLiAgSWYKKyAgICAgKiBkb0Zvcm1hdCBpcyB0cnVlLCB0aGVuIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgY3VycmVuY3lDaG9pY2UgaGFzIGJlZW4KKyAgICAgKiBjcmVhdGVkLCBhbmQgaXQgd2lsbCBiZSB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUgaW4gZGlnaXRMaXN0LgorICAgICAqIEByZXR1cm4gdGhlIGV4cGFuZGVkIGVxdWl2YWxlbnQgb2YgcGF0dGVybgorICAgICAqLworICAgIC8vQnVnIDQyMTIwNzIgW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgdm9pZCBleHBhbmRBZmZpeChTdHJpbmcgcGF0dGVybiwgU3RyaW5nQnVmZmVyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb0Zvcm1hdCkgeworICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBqID0gcGF0dGVybi5pbmRleE9mKFFVT1RFLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChRVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpID0gaisxOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA+IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocGF0dGVybi5zdWJzdHJpbmcoaSwgaikpOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpPHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChpKT09UVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhZ2FpbgorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVudGVybWluYXRlZCBxdW90ZTsgc2hvdWxkIGJlIGNhdWdodCBieSBhcHBseQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSBDVVJSRU5DWV9TSUdOOgorICAgICAgICAgICAgICAgIC8vIEFzIG9mIElDVSAyLjIgd2UgdXNlIHRoZSBjdXJyZW5jeSBvYmplY3QsIGFuZAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGUgY3VycmVuY3kgc3ltYm9scyBpbiB0aGUgREZTLCB1bmxlc3MKKyAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGEgbnVsbCBjdXJyZW5jeSBvYmplY3QuICBUaGlzIG9jY3VycyBpZgorICAgICAgICAgICAgICAgIC8vIHJlc3VycmVjdGluZyBhIHByZS0yLjIgb2JqZWN0IG9yIGlmIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgLy8gc2V0cyBhIGN1c3RvbSBERlMuCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbnRsID0gaTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KGkpID09IENVUlJFTkNZX1NJR047CisgICAgICAgICAgICAgICAgaWYgKGludGwpIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgY3VycmVuY3kgPSBnZXRDdXJyZW5jeSgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaW50bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0Nob2ljZUZvcm1hdFtdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gY3VycmVuY3kuZ2V0TmFtZShzeW1ib2xzLmdldFVMb2NhbGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5LlNZTUJPTF9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaG9pY2VGb3JtYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ2hvaWNlRm9ybWF0WzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHdvIG1vZGVzIGhlcmU6IElmIGRvRm9ybWF0IGlzIGZhbHNlLCB3ZSBzZXQgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjdXJyZW5jeUNob2ljZS4gIElmIGRvRm9ybWF0IGlzIHRydWUsIHdlIHVzZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGNyZWF0ZWQgY3VycmVuY3lDaG9pY2UgdG8gZm9ybWF0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGluIGRpZ2l0TGlzdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRvRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW5jeSBpcyBoYW5kbGVkIGJ5IGEgQ2hvaWNlRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHdlJ3JlIG5vdCBnb2luZyB0byB1c2UgdGhlIGV4cGFuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm5zLiAgSW5zdGFudGlhdGUgdGhlIENob2ljZUZvcm1hdCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVuY3lDaG9pY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lDaG9pY2UgPSBuZXcgQ2hvaWNlRm9ybWF0KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIGFsbW9zdCByZXR1cm4gbnVsbCBvciAiIiBoZXJlLCBzaW5jZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhwYW5kZWQgYWZmaXhlcyBhcmUgYWxtb3N0IG5vdCB1c2VkIGF0IGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIHNpdHVhdGlvbi4gIEhvd2V2ZXIsIG9uZSBtZXRob2QgLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9QYXR0ZXJuKCkgLS0gc3RpbGwgZG9lcyB1c2UgdGhlIGV4cGFuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmZml4ZXMsIGluIG9yZGVyIHRvIHNldCB1cCBhIHBhZGRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybi4gIFdlIHVzZSB0aGUgQ1VSUkVOQ1lfU0lHTiBhcyBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsYWNlaG9sZGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gU3RyaW5nLnZhbHVlT2YoQ1VSUkVOQ1lfU0lHTik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsgLy8gaWdub3JlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeUNob2ljZS5mb3JtYXQoZGlnaXRMaXN0LmdldERvdWJsZSgpLCBidWZmZXIsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnRsID8gc3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKQorICAgICAgICAgICAgICAgICAgICAgICAgOiBzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSQ0VOVDoKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRQZXJjZW50KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSX01JTExFOgorICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9NSU5VUzoKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYW4gYWZmaXggdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gaXNOZWdhdGl2ZQorICAgICAqIEBwYXJhbSBpc1ByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgaW50IGFwcGVuZEFmZml4KFN0cmluZ0J1ZmZlciBidWYsIGJvb2xlYW4gaXNOZWdhdGl2ZSwKKwkJCWJvb2xlYW4gaXNQcmVmaXgsIGJvb2xlYW4gcGFyc2VBdHRyKSB7CisgICAgICAgIGlmIChjdXJyZW5jeUNob2ljZSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgYWZmaXhQYXQgPSBudWxsOworICAgICAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICAgICAgYWZmaXhQYXQgPSBpc05lZ2F0aXZlID8gbmVnUHJlZml4UGF0dGVybiA6IHBvc1ByZWZpeFBhdHRlcm47CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1N1ZmZpeFBhdHRlcm4gOiBwb3NTdWZmaXhQYXR0ZXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFmZml4QnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZXhwYW5kQWZmaXgoYWZmaXhQYXQsIGFmZml4QnVmLCB0cnVlKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYWZmaXhCdWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gYWZmaXhCdWYubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgYWZmaXggPSBudWxsOworICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgIGFmZml4ID0gaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlUHJlZml4IDogcG9zaXRpdmVQcmVmaXg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhZmZpeCA9IGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVN1ZmZpeCA6IHBvc2l0aXZlU3VmZml4OworICAgICAgICB9CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQkvLyBbU3BhcmsvQ0RMXSBJbnZva2UgZm9ybWF0QWZmaXgyQXR0cmlidXRlIHRvIGFkZCBhdHRyaWJ1dGVzIGZvciBhZmZpeAorCQlpZiAocGFyc2VBdHRyKSB7CisJCQlpbnQgb2Zmc2V0ID0gYWZmaXguaW5kZXhPZihzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCkpOworCQkJaWYgKC0xID09IG9mZnNldCkgeworCQkJCW9mZnNldCA9IGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRQZXJjZW50KCkpOworCQkJCWlmKC0xID09IG9mZnNldCkgeworCQkJCQlvZmZzZXQgPSAwOworCQkJCX0KKwkJCX0KKwkJCWZvcm1hdEFmZml4MkF0dHJpYnV0ZShhZmZpeCwgYnVmLmxlbmd0aCgpICsgb2Zmc2V0LCBidWYubGVuZ3RoKCkKKwkJCQkJKyBhZmZpeC5sZW5ndGgoKSk7CisJCX0KKy8vI2VuZGlmCisgICAgICAgIGJ1Zi5hcHBlbmQoYWZmaXgpOworICAgICAgICByZXR1cm4gYWZmaXgubGVuZ3RoKCk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorCS8qCisJICogW1NwYXJrL0NETF0gVGhpcyBpcyBhIG5ld2x5IGFkZGVkIG1ldGhvZCwgdXNlZCB0byBhZGQgYXR0cmlidXRlcyBmb3IKKwkgKiBwcmVmaXggYW5kIHN1ZmZpeC4KKwkgKi8KKwlwcml2YXRlIHZvaWQgZm9ybWF0QWZmaXgyQXR0cmlidXRlKFN0cmluZyBhZmZpeCwgaW50IGJlZ2luLCBpbnQgZW5kKSB7CisJCS8vIFtTcGFyay9DRExdIEl0IGlzIHRoZSBpbnZva2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoYXQsIGJlZm9yZQorCQkvLyB0aGUgaW52b2NhdGlvbiBvZgorCQkvLyB0aGlzIG1ldGhvZCwgYXR0cmlidXRlcyBpcyBub3QgbnVsbC4KKwkJLy8gaWYoIGF0dHJpYnV0ZXMgPT0gbnVsbCApIHJldHVybjsKKwkJaWYgKGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpKSA+IC0xKSB7CisJCQlhZGRBdHRyaWJ1dGUoRmllbGQuQ1VSUkVOQ1ksIGJlZ2luLCBlbmQpOworCQl9IGVsc2UgaWYgKGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRNaW51c1NpZ24oKSkgPiAtMSkgeworCQkJYWRkQXR0cmlidXRlKEZpZWxkLlNJR04sIGJlZ2luLCBlbmQpOworCQl9IGVsc2UgaWYgKGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRQZXJjZW50KCkpID4gLTEpIHsKKwkJCWFkZEF0dHJpYnV0ZShGaWVsZC5QRVJDRU5ULCBiZWdpbiwgZW5kKTsKKwkJfSBlbHNlIGlmIChhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0UGVyTWlsbCgpKSA+IC0xKSB7CisJCQlhZGRBdHRyaWJ1dGUoRmllbGQuUEVSTUlMTEUsIGJlZ2luLCBlbmQpOworCQl9CisJfQorLy8jZW5kaWYKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkvKgorCSAqIFtTcGFyay9DRExdIFVzZSB0aGlzIG1ldGhvZCB0byBhZGQgYXR0cmlidXRlLgorCSAqLworCXByaXZhdGUgdm9pZCBhZGRBdHRyaWJ1dGUoRmllbGQgZmllbGQsIGludCBiZWdpbiwgaW50IGVuZCkgeworCQlGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKGZpZWxkKTsKKwkJcG9zLnNldEJlZ2luSW5kZXgoYmVnaW4pOworCQlwb3Muc2V0RW5kSW5kZXgoZW5kKTsKKwkJYXR0cmlidXRlcy5hZGQocG9zKTsKKwl9CisvLyNlbmRpZgorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIEZvcm1hdCB0aGUgb2JqZWN0IHRvIGFuIGF0dHJpYnV0ZWQgc3RyaW5nLCBhbmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIGl0ZXJhdG9yCisgICAgICogT3ZlcnJpZGVzIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworCS8vIFtTcGFyay9DRExdIAorCXB1YmxpYyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcihPYmplY3Qgb2JqKSB7CisJCWlmICghKG9iaiBpbnN0YW5jZW9mIE51bWJlcikpCisJCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisJCU51bWJlciBudW1iZXIgPSAoTnVtYmVyKSBvYmo7CisJCVN0cmluZ0J1ZmZlciB0ZXh0ID0gbnVsbDsKKwkJYXR0cmlidXRlcy5jbGVhcigpOworCQlpZiAob2JqIGluc3RhbmNlb2YgQmlnSW50ZWdlcikgeworCQkJdGV4dCA9IGZvcm1hdCgoQmlnSW50ZWdlcikgbnVtYmVyLCBuZXcgU3RyaW5nQnVmZmVyKCksCisJCQkJCW5ldyBGaWVsZFBvc2l0aW9uKDApLCB0cnVlKTsKKwkJfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBqYXZhLm1hdGguQmlnRGVjaW1hbCkgeworCQkJdGV4dCA9IGZvcm1hdCgoamF2YS5tYXRoLkJpZ0RlY2ltYWwpIG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorCQkJCQluZXcgRmllbGRQb3NpdGlvbigwKSwgdHJ1ZSk7CisJCX0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRG91YmxlKSB7CisJCQl0ZXh0ID0gZm9ybWF0KG51bWJlci5kb3VibGVWYWx1ZSgpLCBuZXcgU3RyaW5nQnVmZmVyKCksCisJCQkJCW5ldyBGaWVsZFBvc2l0aW9uKDApLCB0cnVlKTsKKwkJfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBJbnRlZ2VyIHx8IG9iaiBpbnN0YW5jZW9mIExvbmcpIHsKKwkJCXRleHQgPSBmb3JtYXQobnVtYmVyLmxvbmdWYWx1ZSgpLCBuZXcgU3RyaW5nQnVmZmVyKCksCisJCQkJCW5ldyBGaWVsZFBvc2l0aW9uKDApLCB0cnVlKTsKKwkJfQorCQorCQlBdHRyaWJ1dGVkU3RyaW5nIGFzID0gbmV3IEF0dHJpYnV0ZWRTdHJpbmcodGV4dC50b1N0cmluZygpKTsKKwkKKwkJLy8gYWRkIE51bWJlckZvcm1hdCBmaWVsZCBhdHRyaWJ1dGVzIHRvIHRoZSBBdHRyaWJ1dGVkU3RyaW5nCisJCWZvciAoaW50IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5zaXplKCk7IGkrKykgeworCQkJRmllbGRQb3NpdGlvbiBwb3MgPSAoRmllbGRQb3NpdGlvbikgYXR0cmlidXRlcy5nZXQoaSk7CisJCQlGb3JtYXQuRmllbGQgYXR0cmlidXRlID0gcG9zLmdldEZpZWxkQXR0cmlidXRlKCk7CisJCQlhcy5hZGRBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyaWJ1dGUsIHBvcy5nZXRCZWdpbkluZGV4KCksIHBvcworCQkJCQkuZ2V0RW5kSW5kZXgoKSk7CisJCX0KKwkKKwkJLy8gcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBmcm9tIEF0dHJpYnV0ZWRTdHJpbmcKKwkJcmV0dXJuIGFzLmdldEl0ZXJhdG9yKCk7CisJfQorLy8jZW5kaWYKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYW4gYWZmaXggcGF0dGVybiB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLiAgTG9jYWxpemUgdW5xdW90ZWQKKyAgICAgKiBzcGVjaWFscy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kQWZmaXhQYXR0ZXJuKFN0cmluZ0J1ZmZlciBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUsIGJvb2xlYW4gaXNQcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxvY2FsaXplZCkgeworICAgICAgICBTdHJpbmcgYWZmaXhQYXQgPSBudWxsOworICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1ByZWZpeFBhdHRlcm4gOiBwb3NQcmVmaXhQYXR0ZXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYWZmaXhQYXQgPSBpc05lZ2F0aXZlID8gbmVnU3VmZml4UGF0dGVybiA6IHBvc1N1ZmZpeFBhdHRlcm47CisgICAgICAgIH0KKworICAgICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgbnVsbCBhZmZpeCBwYXR0ZXJuLCB3ZSB1c2UgdGhlIGFmZml4IGl0c2VsZi4KKyAgICAgICAgaWYgKGFmZml4UGF0ID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBhZmZpeCA9IG51bGw7CisgICAgICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgICAgICBhZmZpeCA9IGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVByZWZpeCA6IHBvc2l0aXZlUHJlZml4OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhZmZpeCA9IGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVN1ZmZpeCA6IHBvc2l0aXZlU3VmZml4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gdGhpcyBjcnVkZWx5IGZvciBub3c6ICBXcmFwIGV2ZXJ5dGhpbmcgaW4gcXVvdGVzLgorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChRVU9URSk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8YWZmaXgubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBhZmZpeC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGNoID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoUVVPVEUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFsb2NhbGl6ZWQpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYWZmaXhQYXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGksIGo7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxhZmZpeFBhdC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IGFmZml4UGF0LmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgICAgICAgICAgY2FzZSBRVU9URToKKyAgICAgICAgICAgICAgICAgICAgaiA9IGFmZml4UGF0LmluZGV4T2YoUVVPVEUsIGkrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChqIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWFsZm9ybWVkIGFmZml4IHBhdHRlcm46ICIgKyBhZmZpeFBhdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChhZmZpeFBhdC5zdWJzdHJpbmcoaSwgaisxKSk7CisgICAgICAgICAgICAgICAgICAgIGkgPSBqOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSX01JTExFOgorICAgICAgICAgICAgICAgICAgICBjaCA9IHN5bWJvbHMuZ2V0UGVyTWlsbCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSQ0VOVDoKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX01JTlVTOgorICAgICAgICAgICAgICAgICAgICBjaCA9IHN5bWJvbHMuZ2V0TWludXNTaWduKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2NoZWNrIGlmIGNoYXIgaXMgc2FtZSBhcyBhbnkgb3RoZXIgc3ltYm9sCisgICAgICAgICAgICAgICAgaWYoY2g9PXN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpIHx8CisgICAgICAgICAgICAgICAgICAgY2g9PXN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSApeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoUVVPVEUpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIERvZXMgdGhlIHJlYWwgd29yayBvZiBnZW5lcmF0aW5nIGEgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciB6ZXJvID0gbG9jYWxpemVkID8gc3ltYm9scy5nZXRaZXJvRGlnaXQoKSA6IFBBVFRFUk5fWkVST19ESUdJVDsKKyAgICAgICAgY2hhciBkaWdpdCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0RGlnaXQoKSA6IFBBVFRFUk5fRElHSVQ7CisgICAgICAgIGNoYXIgc2lnRGlnaXQgPSAwOworICAgICAgICBib29sZWFuIHVzZVNpZ0RpZyA9IGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpOworICAgICAgICBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICBzaWdEaWdpdCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0U2lnbmlmaWNhbnREaWdpdCgpIDogUEFUVEVSTl9TSUdOSUZJQ0FOVF9ESUdJVDsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGdyb3VwID0gbG9jYWxpemVkID8gc3ltYm9scy5nZXRHcm91cGluZ1NlcGFyYXRvcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBQQVRURVJOX0dST1VQSU5HX1NFUEFSQVRPUjsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCByb3VuZGluZ0RlY2ltYWxQb3MgPSAwOyAvLyBQb3Mgb2YgZGVjaW1hbCBpbiByb3VuZGluZ0RpZ2l0cworICAgICAgICBTdHJpbmcgcm91bmRpbmdEaWdpdHMgPSBudWxsOworICAgICAgICBpbnQgcGFkUG9zID0gKGZvcm1hdFdpZHRoID4gMCkgPyBwYWRQb3NpdGlvbiA6IC0xOworICAgICAgICBTdHJpbmcgcGFkU3BlYyA9IChmb3JtYXRXaWR0aCA+IDApCisgICAgICAgICAgICA/IG5ldyBTdHJpbmdCdWZmZXIoMikuCisgICAgICAgICAgICAgICAgYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0UGFkRXNjYXBlKCkgOiBQQVRURVJOX1BBRF9FU0NBUEUpLgorICAgICAgICAgICAgICAgIGFwcGVuZChwYWQpLnRvU3RyaW5nKCkKKyAgICAgICAgICAgIDogbnVsbDsKKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKyAgICAgICAgICAgIGkgPSByb3VuZGluZ0luY3JlbWVudElDVS5zY2FsZSgpOworICAgICAgICAgICAgcm91bmRpbmdEaWdpdHMgPSByb3VuZGluZ0luY3JlbWVudElDVS5tb3ZlUG9pbnRSaWdodChpKS50b1N0cmluZygpOworICAgICAgICAgICAgcm91bmRpbmdEZWNpbWFsUG9zID0gcm91bmRpbmdEaWdpdHMubGVuZ3RoKCkgLSBpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IHBhcnQ9MDsgcGFydDwyOyArK3BhcnQpIHsKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBwYXJ0U3RhcnQgPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAocGFkUG9zID09IFBBRF9CRUZPUkVfUFJFRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIFVzZSBvcmlnaW5hbCBzeW1ib2xzIHJlYWQgZnJvbSByZXNvdXJjZXMgaW4gcGF0dGVybgorICAgICAgICAgICAgICogZWcuIHVzZSAiXHUwMEE0IiBpbnN0ZWFkIG9mICIkIiBpbiBMb2NhbGUuVVMgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBhcHBlbmRBZmZpeFBhdHRlcm4ocmVzdWx0LCBwYXJ0IT0wLCB0cnVlLCBsb2NhbGl6ZWQpOworICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQUZURVJfUFJFRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBzdWIwU3RhcnQgPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgZyA9IGlzR3JvdXBpbmdVc2VkKCkgPyBNYXRoLm1heCgwLCBncm91cGluZ1NpemUpIDogMDsKKyAgICAgICAgICAgIGlmIChnID4gMCAmJiBncm91cGluZ1NpemUyID4gMCAmJiBncm91cGluZ1NpemUyICE9IGdyb3VwaW5nU2l6ZSkgeworICAgICAgICAgICAgICAgIGcgKz0gZ3JvdXBpbmdTaXplMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYXhEaWcgPSAwLCBtaW5EaWcgPSAwLCBtYXhTaWdEaWcgPSAwOworICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpOworICAgICAgICAgICAgICAgIG1heERpZyA9IG1heFNpZ0RpZyA9IGdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICAgICAgICAgIG1heERpZyA9IGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgICAgIGlmIChtYXhEaWcgPiBNQVhfU0NJRU5USUZJQ19JTlRFR0VSX0RJR0lUUykgeworICAgICAgICAgICAgICAgICAgICBtYXhEaWcgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gTWF0aC5tYXgobWF4RGlnLCBnKzEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSBNYXRoLm1heChNYXRoLm1heChnLCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGluZ0RlY2ltYWxQb3MpICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IG1heERpZzsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGlmICghdXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiBpPG1heERpZyAmJgorICAgICAgICAgICAgICAgICAgICBpc0dyb3VwaW5nUG9zaXRpb24oaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChncm91cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICNALEAjIyMgICAobWF4U2lnRGlnID09IDUsIG1pblNpZ0RpZyA9PSAyKQorICAgICAgICAgICAgICAgICAgICAvLyAgNjUgNDMyMSAgICgxLWJhc2VkIHBvcywgY291bnQgZnJvbSB0aGUgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIC8vIFVzZSAjIGlmIHBvcyA+IG1heFNpZ0RpZyBvciAxIDw9IHBvcyA8PSAobWF4U2lnRGlnIC0gbWluU2lnRGlnKQorICAgICAgICAgICAgICAgICAgICAvLyBVc2UgQCBpZiAobWF4U2lnRGlnIC0gbWluU2lnRGlnKSA8IHBvcyA8PSBtYXhTaWdEaWcKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgobWF4U2lnRGlnID49IGkgJiYgaSA+IChtYXhTaWdEaWcgLSBtaW5EaWcpKSA/IHNpZ0RpZ2l0IDogZGlnaXQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3VuZGluZ0RpZ2l0cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gcm91bmRpbmdEZWNpbWFsUG9zIC0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gMCAmJiBwb3MgPCByb3VuZGluZ0RpZ2l0cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIChyb3VuZGluZ0RpZ2l0cy5jaGFyQXQocG9zKSAtICcwJyArIHplcm8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGk8PW1pbkRpZyA/IHplcm8gOiBkaWdpdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiAwIHx8IGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bikgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJvdW5kaW5nRGVjaW1hbFBvczsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocm91bmRpbmdEaWdpdHMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgcG9zIDwgcm91bmRpbmdEaWdpdHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zIDwgMCA/IHplcm8gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikgKHJvdW5kaW5nRGlnaXRzLmNoYXJBdChwb3MpIC0gJzAnICsgemVybykpOworICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGk8Z2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgPyB6ZXJvIDogZGlnaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYobG9jYWxpemVkICl7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRFeHBvbmVudFNlcGFyYXRvcigpICk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoUEFUVEVSTl9FWFBPTkVOVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChleHBvbmVudFNpZ25BbHdheXNTaG93bikgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0UGx1c1NpZ24oKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTl9QTFVTX1NJR04pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTxtaW5FeHBvbmVudERpZ2l0czsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhZFNwZWMgIT0gbnVsbCAmJiAhdXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgICAgIGludCBhZGQgPSBmb3JtYXRXaWR0aCAtIHJlc3VsdC5sZW5ndGgoKSArIHN1YjBTdGFydAorICAgICAgICAgICAgICAgICAgICAtICgocGFydCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICA/IHBvc2l0aXZlUHJlZml4Lmxlbmd0aCgpICsgcG9zaXRpdmVTdWZmaXgubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiBuZWdhdGl2ZVByZWZpeC5sZW5ndGgoKSArIG5lZ2F0aXZlU3VmZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYWRkID4gMCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KHN1YjBTdGFydCwgZGlnaXQpOworICAgICAgICAgICAgICAgICAgICArK21heERpZzsKKyAgICAgICAgICAgICAgICAgICAgLS1hZGQ7CisgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYWRkIGEgZ3JvdXBpbmcgc2VwYXJhdG9yIGlmIHdlIGhhdmUgYXQgbGVhc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gMiBhZGRpdGlvbmFsIGNoYXJhY3RlcnMgdG8gYmUgYWRkZWQsIHNvIHdlIGRvbid0CisgICAgICAgICAgICAgICAgICAgIC8vIGVuZCB1cCB3aXRoICIsIyMjIi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGFkZD4xICYmIGlzR3JvdXBpbmdQb3NpdGlvbihtYXhEaWcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KHN1YjBTdGFydCwgZ3JvdXApOworICAgICAgICAgICAgICAgICAgICAgICAgLS1hZGQ7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFkUG9zID09IFBBRF9CRUZPUkVfU1VGRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIFVzZSBvcmlnaW5hbCBzeW1ib2xzIHJlYWQgZnJvbSByZXNvdXJjZXMgaW4gcGF0dGVybgorICAgICAgICAgICAgICogZWcuIHVzZSAiXHUwMEE0IiBpbnN0ZWFkIG9mICIkIiBpbiBMb2NhbGUuVVMgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBhcHBlbmRBZmZpeFBhdHRlcm4ocmVzdWx0LCBwYXJ0IT0wLCBmYWxzZSwgbG9jYWxpemVkKTsKKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0FGVEVSX1NVRkZJWCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFydCA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlU3VmZml4LmVxdWFscyhwb3NpdGl2ZVN1ZmZpeCkgJiYKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVQcmVmaXguZXF1YWxzKCBQQVRURVJOX01JTlVTICsgcG9zaXRpdmVQcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobG9jYWxpemVkID8gc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBVFRFUk5fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBwYXR0ZXJuIHRvIHRoaXMgRm9ybWF0IG9iamVjdC4gIEEgcGF0dGVybiBpcyBhCisgICAgICogc2hvcnQtaGFuZCBzcGVjaWZpY2F0aW9uIGZvciB0aGUgdmFyaW91cyBmb3JtYXR0aW5nIHByb3BlcnRpZXMuCisgICAgICogVGhlc2UgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBjaGFuZ2VkIGluZGl2aWR1YWxseSB0aHJvdWdoIHRoZQorICAgICAqIHZhcmlvdXMgc2V0dGVyIG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogVGhlcmUgaXMgbm8gbGltaXQgdG8gaW50ZWdlciBkaWdpdHMgYXJlIHNldAorICAgICAqIGJ5IHRoaXMgcm91dGluZSwgc2luY2UgdGhhdCBpcyB0aGUgdHlwaWNhbCBlbmQtdXNlciBkZXNpcmU7CisgICAgICogdXNlIHNldE1heGltdW1JbnRlZ2VyIGlmIHlvdSB3YW50IHRvIHNldCBhIHJlYWwgdmFsdWUuCisgICAgICogRm9yIG5lZ2F0aXZlIG51bWJlcnMsIHVzZSBhIHNlY29uZCBwYXR0ZXJuLCBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24KKyAgICAgKiA8UD5FeGFtcGxlICIjLCMwMC4wIyIgLT4gMSwyMzQuNTYKKyAgICAgKiA8UD5UaGlzIG1lYW5zIGEgbWluaW11bSBvZiAyIGludGVnZXIgZGlnaXRzLCAxIGZyYWN0aW9uIGRpZ2l0LCBhbmQKKyAgICAgKiBhIG1heGltdW0gb2YgMiBmcmFjdGlvbiBkaWdpdHMuCisgICAgICogPHA+RXhhbXBsZTogIiMsIzAwLjAjOygjLCMwMC4wIykiIGZvciBuZWdhdGl2ZXMgaW4gcGFyZW50aGVzZXMuCisgICAgICogPHA+SW4gbmVnYXRpdmUgcGF0dGVybnMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvdW50cyBhcmUgaWdub3JlZDsKKyAgICAgKiB0aGVzZSBhcmUgcHJlc3VtZWQgdG8gYmUgc2V0IGluIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybiggU3RyaW5nIHBhdHRlcm4gKSB7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBUaGUgcGF0dGVybgorICAgICAqIGlzIGFzc3VtZWQgdG8gYmUgaW4gYSBsb2NhbGl6ZWQgbm90YXRpb24uIEEgcGF0dGVybiBpcyBhCisgICAgICogc2hvcnQtaGFuZCBzcGVjaWZpY2F0aW9uIGZvciB0aGUgdmFyaW91cyBmb3JtYXR0aW5nIHByb3BlcnRpZXMuCisgICAgICogVGhlc2UgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBjaGFuZ2VkIGluZGl2aWR1YWxseSB0aHJvdWdoIHRoZQorICAgICAqIHZhcmlvdXMgc2V0dGVyIG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogVGhlcmUgaXMgbm8gbGltaXQgdG8gaW50ZWdlciBkaWdpdHMgYXJlIHNldAorICAgICAqIGJ5IHRoaXMgcm91dGluZSwgc2luY2UgdGhhdCBpcyB0aGUgdHlwaWNhbCBlbmQtdXNlciBkZXNpcmU7CisgICAgICogdXNlIHNldE1heGltdW1JbnRlZ2VyIGlmIHlvdSB3YW50IHRvIHNldCBhIHJlYWwgdmFsdWUuCisgICAgICogRm9yIG5lZ2F0aXZlIG51bWJlcnMsIHVzZSBhIHNlY29uZCBwYXR0ZXJuLCBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24KKyAgICAgKiA8UD5FeGFtcGxlICIjLCMwMC4wIyIgLT4gMSwyMzQuNTYKKyAgICAgKiA8UD5UaGlzIG1lYW5zIGEgbWluaW11bSBvZiAyIGludGVnZXIgZGlnaXRzLCAxIGZyYWN0aW9uIGRpZ2l0LCBhbmQKKyAgICAgKiBhIG1heGltdW0gb2YgMiBmcmFjdGlvbiBkaWdpdHMuCisgICAgICogPHA+RXhhbXBsZTogIiMsIzAwLjAjOygjLCMwMC4wIykiIGZvciBuZWdhdGl2ZXMgaW4gcGFyYW50aGVzZXMuCisgICAgICogPHA+SW4gbmVnYXRpdmUgcGF0dGVybnMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvdW50cyBhcmUgaWdub3JlZDsKKyAgICAgKiB0aGVzZSBhcmUgcHJlc3VtZWQgdG8gYmUgc2V0IGluIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybiggU3RyaW5nIHBhdHRlcm4gKSB7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgdHJ1ZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRG9lcyB0aGUgcmVhbCB3b3JrIG9mIGFwcGx5aW5nIGEgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIGxvY2FsaXplZCkgeworICAgICAgICBjaGFyIHplcm9EaWdpdCAgICAgICAgID0gUEFUVEVSTl9aRVJPX0RJR0lUOyAvLyAnMCcKKyAgICAgICAgY2hhciBzaWdEaWdpdCAgICAgICAgICA9IFBBVFRFUk5fU0lHTklGSUNBTlRfRElHSVQ7IC8vICdAJworICAgICAgICBjaGFyIGdyb3VwaW5nU2VwYXJhdG9yID0gUEFUVEVSTl9HUk9VUElOR19TRVBBUkFUT1I7CisgICAgICAgIGNoYXIgZGVjaW1hbFNlcGFyYXRvciAgPSBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SOworICAgICAgICBjaGFyIHBlcmNlbnQgICAgICAgICAgID0gUEFUVEVSTl9QRVJDRU5UOworICAgICAgICBjaGFyIHBlck1pbGwgICAgICAgICAgID0gUEFUVEVSTl9QRVJfTUlMTEU7CisgICAgICAgIGNoYXIgZGlnaXQgICAgICAgICAgICAgPSBQQVRURVJOX0RJR0lUOyAvLyAnIycKKyAgICAgICAgY2hhciBzZXBhcmF0b3IgICAgICAgICA9IFBBVFRFUk5fU0VQQVJBVE9SOworICAgICAgICBTdHJpbmcgZXhwb25lbnQgICAgICAgID0gU3RyaW5nLnZhbHVlT2YoUEFUVEVSTl9FWFBPTkVOVCk7CisgICAgICAgIGNoYXIgcGx1cyAgICAgICAgICAgICAgPSBQQVRURVJOX1BMVVNfU0lHTjsKKyAgICAgICAgY2hhciBwYWRFc2NhcGUgICAgICAgICA9IFBBVFRFUk5fUEFEX0VTQ0FQRTsKKyAgICAgICAgY2hhciBtaW51cyAgICAgICAgICAgICA9IFBBVFRFUk5fTUlOVVM7IC8vQnVnIDQyMTIwNzIgW1JpY2hhcmQvR0NMXQorICAgICAgICBpZiAobG9jYWxpemVkKSB7CisgICAgICAgICAgICB6ZXJvRGlnaXQgICAgICAgICA9IHN5bWJvbHMuZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgICAgICBzaWdEaWdpdCAgICAgICAgICA9IHN5bWJvbHMuZ2V0U2lnbmlmaWNhbnREaWdpdCgpOworICAgICAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPSBzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yICA9IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgcGVyY2VudCAgICAgICAgICAgPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgIHBlck1pbGwgICAgICAgICAgID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICBkaWdpdCAgICAgICAgICAgICA9IHN5bWJvbHMuZ2V0RGlnaXQoKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciAgICAgICAgID0gc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBleHBvbmVudCAgICAgICAgICA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIHBsdXMgICAgICAgICAgICAgID0gc3ltYm9scy5nZXRQbHVzU2lnbigpOworICAgICAgICAgICAgcGFkRXNjYXBlICAgICAgICAgPSBzeW1ib2xzLmdldFBhZEVzY2FwZSgpOworICAgICAgICAgICAgbWludXMgICAgICAgICAgICAgPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOyAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgfQorICAgICAgICBjaGFyIG5pbmVEaWdpdCA9IChjaGFyKSAoemVyb0RpZ2l0ICsgOSk7CisKKyAgICAgICAgYm9vbGVhbiBnb3ROZWdhdGl2ZSA9IGZhbHNlOworCisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAvLyBQYXJ0IDAgaXMgdGhlIHBvc2l0aXZlIHBhdHRlcm4uICBQYXJ0IDEsIGlmIHByZXNlbnQsIGlzIHRoZSBuZWdhdGl2ZQorICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICBmb3IgKGludCBwYXJ0PTA7IHBhcnQ8MiAmJiBwb3M8cGF0dGVybi5sZW5ndGgoKTsgKytwYXJ0KSB7CisgICAgICAgICAgICAvLyBUaGUgc3VicGFydCByYW5nZXMgZnJvbSAwIHRvIDQ6IDA9cGF0dGVybiBwcm9wZXIsIDE9cHJlZml4LAorICAgICAgICAgICAgLy8gMj1zdWZmaXgsIDM9cHJlZml4IGluIHF1b3RlLCA0PXN1ZmZpeCBpbiBxdW90ZS4gIFN1YnBhcnQgMCBpcworICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGUgcHJlZml4IGFuZCBzdWZmaXgsIGFuZCBjb25zaXN0cyBvZiBwYXR0ZXJuCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiAgSW4gdGhlIHByZWZpeCBhbmQgc3VmZml4LCBwZXJjZW50LCBwZXJtaWxsZSwgYW5kCisgICAgICAgICAgICAvLyBjdXJyZW5jeSBzeW1ib2xzIGFyZSByZWNvZ25pemVkIGFuZCB0cmFuc2xhdGVkLgorICAgICAgICAgICAgaW50IHN1YnBhcnQgPSAxLCBzdWIwU3RhcnQgPSAwLCBzdWIwTGltaXQgPSAwLCBzdWIyTGltaXQgPSAwOworCisgICAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0aGF0IHdlIGRvbid0IGNoYW5nZSBhbnkgZmllbGRzIG9mIHRoaXMgb2JqZWN0CisgICAgICAgICAgICAvLyBwcmVtYXR1cmVseS4gIFdlIHNldCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBmb3IgdGhlIG11bHRpcGxpZXIsCisgICAgICAgICAgICAvLyBncm91cGluZywgZXRjLiwgYW5kIHRoZW4gb25seSBjaGFuZ2UgdGhlIGFjdHVhbCBvYmplY3QgZmllbGRzIGlmCisgICAgICAgICAgICAvLyBldmVyeXRoaW5nIHBhcnNlcyBjb3JyZWN0bHkuICBUaGlzIGFsc28gbGV0cyB1cyByZWdpc3RlcgorICAgICAgICAgICAgLy8gdGhlIGRhdGEgZnJvbSBwYXJ0IDAgYW5kIGlnbm9yZSB0aGUgcGFydCAxLCBleGNlcHQgZm9yIHRoZQorICAgICAgICAgICAgLy8gcHJlZml4IGFuZCBzdWZmaXguCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcHJlZml4ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN1ZmZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBkZWNpbWFsUG9zID0gLTE7CisgICAgICAgICAgICBpbnQgbXVsdGlwbGllciA9IDE7CisgICAgICAgICAgICBpbnQgZGlnaXRMZWZ0Q291bnQgPSAwLCB6ZXJvRGlnaXRDb3VudCA9IDAsIGRpZ2l0UmlnaHRDb3VudCA9IDAsIHNpZ0RpZ2l0Q291bnQgPSAwOworICAgICAgICAgICAgYnl0ZSBncm91cGluZ0NvdW50ID0gLTE7CisgICAgICAgICAgICBieXRlIGdyb3VwaW5nQ291bnQyID0gLTE7CisgICAgICAgICAgICBpbnQgcGFkUG9zID0gLTE7CisgICAgICAgICAgICBjaGFyIHBhZENoYXIgPSAwOworICAgICAgICAgICAgaW50IGluY3JlbWVudFBvcyA9IC0xOworICAgICAgICAgICAgbG9uZyBpbmNyZW1lbnRWYWwgPSAwOworICAgICAgICAgICAgYnl0ZSBleHBEaWdpdHMgPSAtMTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwU2lnbkFsd2F5cyA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBpc0N1cnJlbmN5ID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIFRoZSBhZmZpeCBpcyBlaXRoZXIgdGhlIHByZWZpeCBvciB0aGUgc3VmZml4LgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFmZml4ID0gcHJlZml4OworCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisKKyAgICAgICAgUEFSVExPT1A6CisgICAgICAgICAgICBmb3IgKDsgcG9zIDwgcGF0dGVybi5sZW5ndGgoKTsgKytwb3MpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHN1YnBhcnQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IC8vIFBhdHRlcm4gcHJvcGVyIHN1YnBhcnQgKGJldHdlZW4gcHJlZml4ICYgc3VmZml4KQorICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSBkaWdpdHMsIGRlY2ltYWwsIGFuZCBncm91cGluZyBjaGFyYWN0ZXJzLiAgV2UKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVjb3JkIGZpdmUgcGllY2VzIG9mIGluZm9ybWF0aW9uLiAgV2UgZXhwZWN0IHRoZSBkaWdpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gb2NjdXIgaW4gdGhlIHBhdHRlcm4gIyMjIzAwLjAwIyMjIywgYW5kIHdlIHJlY29yZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGxlZnQgZGlnaXRzLCB6ZXJvIChjZW50cmFsKSBkaWdpdHMsIGFuZCByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdHMuICBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIHJlY29yZGVkIChzaG91bGQgYmUgc29tZXdoZXJlIHdpdGhpbiB0aGUgZmlyc3QgdHdvIGJsb2NrcworICAgICAgICAgICAgICAgICAgICAvLyBvZiBjaGFyYWN0ZXJzKSwgYXMgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZWNpbWFsIHBvaW50LAorICAgICAgICAgICAgICAgICAgICAvLyBpZiBhbnkgKHNob3VsZCBiZSBpbiB0aGUgemVybyBkaWdpdHMpLiAgSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgICAgICAgICAgICAgLy8gZGVjaW1hbCBwb2ludCwgdGhlbiB0aGVyZSBzaG91bGQgYmUgbm8gcmlnaHQgZGlnaXRzLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gZGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6ZXJvRGlnaXRDb3VudCA+IDAgfHwgc2lnRGlnaXRDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2RpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytkaWdpdExlZnRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cGluZ0NvdW50ID49IDAgJiYgZGVjaW1hbFBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2dyb3VwaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNoID49IHplcm9EaWdpdCAmJiBjaCA8PSBuaW5lRGlnaXQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPT0gc2lnRGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdFJpZ2h0Q291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJVbmV4cGVjdGVkICciICsgY2ggKyAnXCcnLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSBzaWdEaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2lnRGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyt6ZXJvRGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gemVyb0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGluY3JlbWVudFBvcyA8IHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRWYWwgKj0gMTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpbmNyZW1lbnRQb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRQb3MgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudFZhbCArPSBjaCAtIHplcm9EaWdpdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdDb3VudCA+PSAwICYmIGRlY2ltYWxQb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytncm91cGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IGdyb3VwaW5nU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIExvY2FsaXplZCBwYXR0ZXJuIGxpa2UgIidGci4gJyMnIyMwLjA1OydGci4tJyMnIyMwLjA1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAoTG9jYWxlPSJDSCIsIGdyb3VwaW5nU2VwYXJhdG9yID09IFFVT1RFKSAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gUVVPVEUgJiYgKHBvcysxKSA8IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFmdGVyID0gcGF0dGVybi5jaGFyQXQocG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGFmdGVyID09IGRpZ2l0IHx8IChhZnRlciA+PSB6ZXJvRGlnaXQgJiYgYWZ0ZXIgPD0gbmluZURpZ2l0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIG9yIHR3byBxdW90ZXMsIHdoaWNoIGlzIGEgcXVvdGUgbGl0ZXJhbC4gIFRoYXQgaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIGZpcnN0IHF1b3RlIGluICdkbycgb3IgbycnY2xvY2suCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZnRlciA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDM7IC8vIHF1b3RlZCBwcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ID0gMjsgLy8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXggPSBzdWZmaXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBvcy0tOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWNpbWFsUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIkdyb3VwaW5nIHNlcGFyYXRvciBhZnRlciBkZWNpbWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50MiA9IGdyb3VwaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBkZWNpbWFsU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJNdWx0aXBsZSBkZWNpbWFsIHNlcGFyYXRvcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaW5jb3Jwb3JhdGUgdGhlIGRpZ2l0UmlnaHRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIGl0IGlzIGlsbGVnYWwgZm9yIHRoaXMgdG8gYmUgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LiAgV2UgY2hlY2sgcGF0dGVybiBzeW50YXggYmVsb3cuCisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCBleHBvbmVudCwgMCwgZXhwb25lbnQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cERpZ2l0cyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTXVsdGlwbGUgZXhwb25lbnRpYWwgc3ltYm9scyIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdDb3VudCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiR3JvdXBpbmcgc2VwYXJhdG9yIGluIGV4cG9uZW50aWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyArPSBleHBvbmVudC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcG9zaXRpdmUgcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcGF0dGVybi5jaGFyQXQocG9zKSA9PSBwbHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cFNpZ25BbHdheXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGxvb2thaGVhZCB0byBwYXJzZSBvdXQgdGhlIGV4cG9uZW50aWFsIHBhcnQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybiwgdGhlbiBqdW1wIGludG8gc3VmZml4IHN1YnBhcnQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwRGlnaXRzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MpID09IHplcm9EaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2V4cERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEuIFJlcXVpcmUgYXQgbGVhc3Qgb25lIG1hbnRpc3NhIHBhdHRlcm4gZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAyLiBEaXNhbGxvdyAiIysgQCIgaW4gbWFudGlzc2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzLiBSZXF1aXJlIGF0IGxlYXN0IG9uZSBleHBvbmVudCBwYXR0ZXJuIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCkgPCAxICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2lnRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudCkgPCAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2lnRGlnaXRDb3VudCA+IDAgJiYgZGlnaXRMZWZ0Q291bnQgPiAwKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBEaWdpdHMgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTWFsZm9ybWVkIGV4cG9uZW50aWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDI7IC8vIHN1ZmZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeCA9IHN1ZmZpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBvcy0tOyAvLyBiYWNrdXA6IGZvcigpIHdpbGwgaW5jcmVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IC8vIFByZWZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgY2FzZSAyOiAvLyBTdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSBwcmVmaXggLyBzdWZmaXggY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHVucXVvdGVkIGNoYXJhY3RlcnMgc2VlbiBpbiBwcmVmaXggb3Igc3VmZml4CisgICAgICAgICAgICAgICAgICAgIC8vIHN1YnBhcnQuCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBTZXZlcmFsIHN5bnRheCBjaGFyYWN0ZXJzIGltcGxpY2l0bHkgYmVnaW5zIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IHN1YnBhcnQgaWYgd2UgYXJlIGluIHRoZSBwcmVmaXg7IG90aGVyd2lzZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGV5IGFyZSBpbGxlZ2FsIGlmIHVucXVvdGVkLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gZGlnaXQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IGdyb3VwaW5nU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9PSBkZWNpbWFsU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY2ggPj0gemVyb0RpZ2l0ICYmIGNoIDw9IG5pbmVEaWdpdCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IHNpZ0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbnkgb2YgdGhlc2UgY2hhcmFjdGVycyBpbXBsaWNpdGx5IGJlZ2lucyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5leHQgc3VicGFydCBpZiB3ZSBhcmUgaW4gdGhlIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMSkgeyAvLyBwcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgPSAwOyAvLyBwYXR0ZXJuIHByb3BlciBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViMFN0YXJ0ID0gcG9zLS07IC8vIFJlcHJvY2VzcyB0aGlzIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIExvY2FsaXplZCBwYXR0ZXJuIGxpa2UgIidGci4gJyMnIyMwLjA1OydGci4tJyMnIyMwLjA1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExvY2FsZT0iQ0giLCBncm91cGluZ1NlcGFyYXRvciA9PSBRVU9URSkgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgb3IgdHdvIHF1b3Rlcywgd2hpY2ggaXMgYSBxdW90ZSBsaXRlcmFsLiAgVGhhdCBpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBmaXJzdCBxdW90ZSBpbiAnZG8nIG9yIG8nJ2Nsb2NrLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MrMSkgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCArPSAyOyAvLyBvcGVuIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJVbnF1b3RlZCBzcGVjaWFsIGNoYXJhY3RlciAnIiArIGNoICsgJ1wnJywgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gQ1VSUkVOQ1lfU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGxvb2thaGVhZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbmN5IHNpZ24gaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvdWJsZWQgb3Igbm90LgorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb3VibGVkID0gKHBvcyArIDEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcyArIDEpID09IENVUlJFTkNZX1NJR047CisgICAgICAgICAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICAgICAgICAgVG8gbWVldCB0aGUgbmVlZCBvZiBleHBhbmRBZmZpeChTdHJpbmcsIFN0aXJuZ0J1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvdWJsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsgLy8gU2tpcCBvdmVyIHRoZSBkb3VibGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7IC8vIGFwcGVuZCB0d286IG9uZSBoZXJlLCBvbmUgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVuY3kgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgZmlyc3QgcXVvdGUgaW4gJ2RvJyBvciBvJydjbG9jay4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MrMSk9PVFVT1RFKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOyAvLyBhcHBlbmQgdHdvOiBvbmUgaGVyZSwgb25lIGJlbG93CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ICs9IDI7IC8vIG9wZW4gcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gc2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBhbGxvdyBzZXBhcmF0b3JzIGluIHRoZSBwcmVmaXgsIGFuZCBkb24ndCBhbGxvdworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VwYXJhdG9ycyBpbiB0aGUgc2Vjb25kIHBhdHRlcm4gKHBhcnQgPT0gMSkuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicGFydCA9PSAxIHx8IHBhcnQgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiVW5xdW90ZWQgc3BlY2lhbCBjaGFyYWN0ZXIgJyIgKyBjaCArICdcJycsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc3ViMkxpbWl0ID0gcG9zKys7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBQQVJUTE9PUDsgLy8gR28gdG8gbmV4dCBwYXJ0CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gcGVyY2VudCB8fCBjaCA9PSBwZXJNaWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXh0IGhhbmRsZSBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBhcHBlbmRlZCBkaXJlY3RseS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIlRvbyBtYW55IHBlcmNlbnQvcGVybWlsbGUgY2hhcmFjdGVycyIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciA9IChjaCA9PSBwZXJjZW50KSA/IDEwMCA6IDEwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIG5vbi1sb2NhbGl6ZWQgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2ggPT0gcGVyY2VudCkgPyBQQVRURVJOX1BFUkNFTlQgOiBQQVRURVJOX1BFUl9NSUxMRTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gbWludXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gbm9uLWxvY2FsaXplZCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IFBBVFRFUk5fTUlOVVM7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHBhZEVzY2FwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJNdWx0aXBsZSBwYWQgc3BlY2lmaWVycyIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwb3MrMSkgPT0gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiSW52YWxpZCBwYWQgc3BlY2lmaWVyIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwYWRQb3MgPSBwb3MrKzsgLy8gQWR2YW5jZSBwYXN0IHBhZCBjaGFyCisgICAgICAgICAgICAgICAgICAgICAgICBwYWRDaGFyID0gcGF0dGVybi5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzogLy8gUHJlZml4IHN1YnBhcnQsIGluIHF1b3RlCisgICAgICAgICAgICAgICAgY2FzZSA0OiAvLyBTdWZmaXggc3VicGFydCwgaW4gcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSB3aXRoaW4gcXVvdGVzIGluZGljYXRlcyBlaXRoZXIgdGhlIGNsb3NpbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgb3IgdHdvIHF1b3Rlcywgd2hpY2ggaXMgYSBxdW90ZSBsaXRlcmFsLiAgVGhhdCBpcywKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgc2Vjb25kIHF1b3RlIGluICdkbycgb3IgJ2RvbicndCcuCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKzEpID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgLT0gMjsgLy8gY2xvc2UgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogSW4gSUNVIDIuMiB0aGVyZSB3YXMgY29kZSBoZXJlIHRvIHBhcnNlIHF1b3RlZAorICAgICAgICAgICAgICAgICAgICAvLyBwZXJjZW50IGFuZCBwZXJtaWxsZSBjaGFyYWN0ZXJzIF93aXRoaW4gcXVvdGVzXyBhbmQgZ2l2ZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGVtIHNwZWNpYWwgbWVhbmluZy4gIFRoaXMgaXMgaW5jb3JyZWN0LCBzaW5jZSBxdW90ZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcmUgbGl0ZXJhbHMgd2l0aG91dCBzcGVjaWFsIG1lYW5pbmcuCisgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3VicGFydCA9PSAzIHx8IHN1YnBhcnQgPT0gNCkgeworICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiVW50ZXJtaW5hdGVkIHF1b3RlIiwgcGF0dGVybik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWIwTGltaXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWIyTGltaXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHN1YjJMaW1pdCA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIEhhbmRsZSBwYXR0ZXJucyB3aXRoIG5vICcwJyBwYXR0ZXJuIGNoYXJhY3Rlci4gIFRoZXNlIHBhdHRlcm5zCisgICAgICAgICAgICAgKiBhcmUgbGVnYWwsIGJ1dCBtdXN0IGJlIHJlY29kaWZpZWQgdG8gbWFrZSBzZW5zZS4gICIjIy4jIyMiIC0+CisgICAgICAgICAgICAgKiAiIzAuIyMjIi4gICIuIyMjIiAtPiAiLjAjIyIuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogV2UgYWxsb3cgcGF0dGVybnMgb2YgdGhlIGZvcm0gIiMjIyMiIHRvIHByb2R1Y2UgYSB6ZXJvRGlnaXRDb3VudAorICAgICAgICAgICAgICogb2YgemVybyAoZ290IHRoYXQ/KTsgYWx0aG91Z2ggdGhpcyBzZWVtcyBsaWtlIGl0IG1pZ2h0IG1ha2UgaXQKKyAgICAgICAgICAgICAqIHBvc3NpYmxlIGZvciBmb3JtYXQoKSB0byBwcm9kdWNlIGVtcHR5IHN0cmluZ3MsIGZvcm1hdCgpIGNoZWNrcworICAgICAgICAgICAgICogZm9yIHRoaXMgY29uZGl0aW9uIGFuZCBvdXRwdXRzIGEgemVybyBkaWdpdCBpbiB0aGlzIHNpdHVhdGlvbi4KKyAgICAgICAgICAgICAqIEhhdmluZyBhIHplcm9EaWdpdENvdW50IG9mIHplcm8geWllbGRzIGEgbWluaW11bSBpbnRlZ2VyIGRpZ2l0cworICAgICAgICAgICAgICogb2YgemVybywgd2hpY2ggYWxsb3dzIHByb3BlciByb3VuZC10cmlwIHBhdHRlcm5zLiAgV2UgZG9uJ3Qgd2FudAorICAgICAgICAgICAgICogIiMiIHRvIGJlY29tZSAiIzAiIHdoZW4gdG9QYXR0ZXJuKCkgaXMgY2FsbGVkIChldmVuIHRob3VnaCB0aGF0J3MKKyAgICAgICAgICAgICAqIHdoYXQgaXQgcmVhbGx5IGlzLCBzZW1hbnRpY2FsbHkpLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoemVyb0RpZ2l0Q291bnQgPT0gMCAmJiBzaWdEaWdpdENvdW50ID09IDAgJiYKKyAgICAgICAgICAgICAgICBkaWdpdExlZnRDb3VudCA+IDAgJiYgZGVjaW1hbFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlICIjIyMuIyMjIiBhbmQgIiMjIy4iIGFuZCAiLiMjIyIKKyAgICAgICAgICAgICAgICBpbnQgbiA9IGRlY2ltYWxQb3M7CisgICAgICAgICAgICAgICAgaWYgKG4gPT0gMCkgKytuOyAvLyBIYW5kbGUgIi4jIyMiCisgICAgICAgICAgICAgICAgZGlnaXRSaWdodENvdW50ID0gZGlnaXRMZWZ0Q291bnQgLSBuOworICAgICAgICAgICAgICAgIGRpZ2l0TGVmdENvdW50ID0gbiAtIDE7CisgICAgICAgICAgICAgICAgemVyb0RpZ2l0Q291bnQgPSAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBEbyBzeW50YXggY2hlY2tpbmcgb24gdGhlIGRpZ2l0cywgZGVjaW1hbCBwb2ludHMsIGFuZCBxdW90ZXMuCisgICAgICAgICAgICBpZiAoKGRlY2ltYWxQb3MgPCAwICYmIGRpZ2l0UmlnaHRDb3VudCA+IDAgJiYgc2lnRGlnaXRDb3VudCA9PSAwKSB8fAorICAgICAgICAgICAgICAgIChkZWNpbWFsUG9zID49IDAgJiYKKyAgICAgICAgICAgICAgICAgKHNpZ0RpZ2l0Q291bnQgPiAwIHx8CisgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zIDwgZGlnaXRMZWZ0Q291bnQgfHwKKyAgICAgICAgICAgICAgICAgIGRlY2ltYWxQb3MgPiAoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCkpKSB8fAorICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnQgPT0gMCB8fCBncm91cGluZ0NvdW50MiA9PSAwIHx8CisgICAgICAgICAgICAgICAgKHNpZ0RpZ2l0Q291bnQgPiAwICYmIHplcm9EaWdpdENvdW50ID4gMCkgfHwKKyAgICAgICAgICAgICAgICBzdWJwYXJ0ID4gMikgeyAvLyBzdWJwYXJ0ID4gMiA9PSB1bm1hdGNoZWQgcXVvdGUKKyAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIk1hbGZvcm1lZCBwYXR0ZXJuIiwgcGF0dGVybik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBwYWQgaXMgYXQgbGVnYWwgcG9zaXRpb24gYmVmb3JlIG9yIGFmdGVyIGFmZml4LgorICAgICAgICAgICAgaWYgKHBhZFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBwYWRQb3MgPSBQQURfQkVGT1JFX1BSRUZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZFBvcysyID09IHN1YjBTdGFydCkgeworICAgICAgICAgICAgICAgICAgICBwYWRQb3MgPSBQQURfQUZURVJfUFJFRklYOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFkUG9zID09IHN1YjBMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBwYWRQb3MgPSBQQURfQkVGT1JFX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZFBvcysyID09IHN1YjJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBwYWRQb3MgPSBQQURfQUZURVJfU1VGRklYOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiSWxsZWdhbCBwYWQgcG9zaXRpb24iLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwYXJ0ID09IDApIHsKKyAgICAgICAgICAgICAgICAvLyBTZXQgbmVnYXRpdmUgYWZmaXhlcyB0ZW1wb3JhcmlseSB0byBtYXRjaCB0aGUgcG9zaXRpdmUKKyAgICAgICAgICAgICAgICAvLyBhZmZpeGVzLiAgRml4IHRoaXMgdXAgbGF0ZXIgYWZ0ZXIgcHJvY2Vzc2luZyBib3RoIHBhcnRzLgorICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBwb3NQcmVmaXhQYXR0ZXJuID0gbmVnUHJlZml4UGF0dGVybiA9IHByZWZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHBvc1N1ZmZpeFBhdHRlcm4gPSBuZWdTdWZmaXhQYXR0ZXJuID0gc3VmZml4LnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgICAgICB1c2VFeHBvbmVudGlhbE5vdGF0aW9uID0gKGV4cERpZ2l0cyA+PSAwKTsKKyAgICAgICAgICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgICAgICAgICBtaW5FeHBvbmVudERpZ2l0cyA9IGV4cERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgZXhwb25lbnRTaWduQWx3YXlzU2hvd24gPSBleHBTaWduQWx3YXlzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpc0N1cnJlbmN5Rm9ybWF0ID0gaXNDdXJyZW5jeTsKKyAgICAgICAgICAgICAgICBpbnQgZGlnaXRUb3RhbENvdW50ID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAvLyBUaGUgZWZmZWN0aXZlRGVjaW1hbFBvcyBpcyB0aGUgcG9zaXRpb24gdGhlIGRlY2ltYWwgaXMgYXQgb3IKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSBhdCBpZiB0aGVyZSBpcyBubyBkZWNpbWFsLiAgTm90ZSB0aGF0IGlmCisgICAgICAgICAgICAgICAgLy8gZGVjaW1hbFBvczwwLCB0aGVuIGRpZ2l0VG90YWxDb3VudCA9PSBkaWdpdExlZnRDb3VudCArCisgICAgICAgICAgICAgICAgLy8gemVyb0RpZ2l0Q291bnQuCisgICAgICAgICAgICAgICAgaW50IGVmZmVjdGl2ZURlY2ltYWxQb3MgPSBkZWNpbWFsUG9zID49IDAgPyBkZWNpbWFsUG9zIDogZGlnaXRUb3RhbENvdW50OworICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlU2lnRGlnID0gKHNpZ0RpZ2l0Q291bnQgPiAwKTsKKyAgICAgICAgICAgICAgICBzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQodXNlU2lnRGlnKTsKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgICAgIHNldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cyhzaWdEaWdpdENvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKHNpZ0RpZ2l0Q291bnQgKyBkaWdpdFJpZ2h0Q291bnQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBtaW5JbnQgPSBlZmZlY3RpdmVEZWNpbWFsUG9zIC0gZGlnaXRMZWZ0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKG1pbkludCk7CisgICAgICAgICAgICAgICAgICAgIC8qVXBwZXIgbGltaXQgb24gaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXRzIGZvciBhIEphdmEgZG91YmxlCisgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyh1c2VFeHBvbmVudGlhbE5vdGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICA/IGRpZ2l0TGVmdENvdW50ICsgbWluSW50IDogRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGRlY2ltYWxQb3MgPj0gMAorICAgICAgICAgICAgICAgICAgICAgICAgPyAoZGlnaXRUb3RhbENvdW50IC0gZGVjaW1hbFBvcykgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGRlY2ltYWxQb3MgPj0gMAorICAgICAgICAgICAgICAgICAgICAgICAgPyAoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCAtIGRlY2ltYWxQb3MpIDogMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldEdyb3VwaW5nVXNlZChncm91cGluZ0NvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgdGhpcy5ncm91cGluZ1NpemUgPSAoZ3JvdXBpbmdDb3VudCA+IDApID8gZ3JvdXBpbmdDb3VudCA6IDA7CisgICAgICAgICAgICAgICAgdGhpcy5ncm91cGluZ1NpemUyID0gKGdyb3VwaW5nQ291bnQyID4gMCAmJiBncm91cGluZ0NvdW50MiAhPSBncm91cGluZ0NvdW50KQorICAgICAgICAgICAgICAgICAgICA/IGdyb3VwaW5nQ291bnQyIDogMDsKKyAgICAgICAgICAgICAgICB0aGlzLm11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICAgICAgICAgIHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihkZWNpbWFsUG9zID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlY2ltYWxQb3MgPT0gZGlnaXRUb3RhbENvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAocGFkUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zaXRpb24gPSBwYWRQb3M7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gc3ViMExpbWl0IC0gc3ViMFN0YXJ0OyAvLyB0byBiZSBmaXhlZCB1cCBiZWxvdworICAgICAgICAgICAgICAgICAgICBwYWQgPSBwYWRDaGFyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGluY3JlbWVudFZhbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEJpZ0RlY2ltYWwgc2NhbGUgY2Fubm90IGJlIG5lZ2F0aXZlIChldmVuIHRob3VnaAorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1ha2VzIHBlcmZlY3Qgc2Vuc2UpLCBzbyB3ZSBuZWVkIHRvIGhhbmRsZSB0aGlzLgorICAgICAgICAgICAgICAgICAgICBpbnQgc2NhbGUgPSBpbmNyZW1lbnRQb3MgLSBlZmZlY3RpdmVEZWNpbWFsUG9zOworICAgICAgICAgICAgICAgICAgICByb3VuZGluZ0luY3JlbWVudElDVSA9CisgICAgICAgICAgICAgICAgICAgIAlCaWdEZWNpbWFsLnZhbHVlT2YoaW5jcmVtZW50VmFsLCBzY2FsZSA+IDAgPyBzY2FsZSA6IDApOworICAgICAgICAgICAgICAgICAgICBpZiAoc2NhbGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGluZ0luY3JlbWVudElDVSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnRJQ1UubW92ZVBvaW50UmlnaHQoLXNjYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzZXRSb3VuZGluZ0RvdWJsZSgpOworICAgICAgICAgICAgICAgICAgICByb3VuZGluZ01vZGUgPSBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZXRSb3VuZGluZ0luY3JlbWVudCgoQmlnRGVjaW1hbCludWxsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBuZWdQcmVmaXhQYXR0ZXJuID0gcHJlZml4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgbmVnU3VmZml4UGF0dGVybiA9IHN1ZmZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGdvdE5lZ2F0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qQnVnIDQxNDAwMDkKKyAgICAgICAgICBQcm9jZXNzIHRoZSBlbXB0eSBwYXR0ZXJuCisgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAocGF0dGVybi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBwb3NQcmVmaXhQYXR0ZXJuID0gcG9zU3VmZml4UGF0dGVybiA9ICIiOworICAgICAgICAgICAgc2V0TWluaW11bUludGVnZXJEaWdpdHMoMCk7CisgICAgICAgICAgICBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhET1VCTEVfSU5URUdFUl9ESUdJVFMpOworICAgICAgICAgICAgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDApOworICAgICAgICAgICAgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKERPVUJMRV9GUkFDVElPTl9ESUdJVFMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gbmVnYXRpdmUgcGF0dGVybiwgb3IgaWYgdGhlIG5lZ2F0aXZlIHBhdHRlcm4gaXMKKyAgICAgICAgLy8gaWRlbnRpY2FsIHRvIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLCB0aGVuIHByZXBlbmQgdGhlIG1pbnVzIHNpZ24gdG8gdGhlCisgICAgICAgIC8vIHBvc2l0aXZlIHBhdHRlcm4gdG8gZm9ybSB0aGUgbmVnYXRpdmUgcGF0dGVybi4KKyAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAoIWdvdE5lZ2F0aXZlIHx8CisgICAgICAgICAgICAobmVnUHJlZml4UGF0dGVybi5lcXVhbHMocG9zUHJlZml4UGF0dGVybikKKyAgICAgICAgICAgICAmJiBuZWdTdWZmaXhQYXR0ZXJuLmVxdWFscyhwb3NTdWZmaXhQYXR0ZXJuKSkpIHsKKyAgICAgICAgICAgIG5lZ1N1ZmZpeFBhdHRlcm4gPSBwb3NTdWZmaXhQYXR0ZXJuOworICAgICAgICAgICAgbmVnUHJlZml4UGF0dGVybiA9IFBBVFRFUk5fTUlOVVMgKyBwb3NQcmVmaXhQYXR0ZXJuOworICAgICAgICB9CisgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICBVcGRhdGUgdGhlIGFmZml4IHN0cmluZ3MgYWNjcm9kaW5nIHRvIHN5bWJvbHMgaW4gb3JkZXIgdG8ga2VlcAorICAgICAgICAgIHRoZSBhZmZpeCBzdHJpbmdzIHVwIHRvIGRhdGUuCisgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBleHBhbmRBZmZpeGVzKCk7CisKKyAgICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSB0aGUgYWN0dWFsIHByZWZpeCBhbmQgc3VmZml4LCBmaXggdXAgZm9ybWF0V2lkdGgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCkgeworICAgICAgICAgICAgZm9ybWF0V2lkdGggKz0gcG9zaXRpdmVQcmVmaXgubGVuZ3RoKCkgKyBwb3NpdGl2ZVN1ZmZpeC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2V0TG9jYWxlKG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENlbnRyYWxpemVzIHRoZSBzZXR0aW5nIG9mIHRoZSByb3VuZGluZ0RvdWJsZSBhbmQgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsLgorICAgICAqLworCXByaXZhdGUgdm9pZCBzZXRSb3VuZGluZ0RvdWJsZSgpIHsKKwkJaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVID09IG51bGwpIHsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlID0gMC4wZDsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlUmVjaXByb2NhbCA9IDAuMGQ7CQkJCisJCX0gZWxzZSB7CisJCQlyb3VuZGluZ0RvdWJsZSA9IHJvdW5kaW5nSW5jcmVtZW50SUNVLmRvdWJsZVZhbHVlKCk7CisJCQlzZXRSb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwoQmlnRGVjaW1hbC5PTkUuZGl2aWRlKHJvdW5kaW5nSW5jcmVtZW50SUNVLEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOKS5kb3VibGVWYWx1ZSgpKTsKKwkJfQorCX0KKworICAgIHByaXZhdGUgdm9pZCBwYXR0ZXJuRXJyb3IoU3RyaW5nIG1zZywgU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihtc2cgKyAiIGluIHBhdHRlcm4gXCIiICsgcGF0dGVybiArICciJyk7CisgICAgfQorCisgICAgLypSZXdyaXRlIHRoZSBmb2xsb3dpbmcgNCAic2V0IiBtZXRob2RzCisgICAgICBVcHBlciBsaW1pdCBvbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgZm9yIGEgSmF2YSBkb3VibGUgCisgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgb3ZlcnJpZGUgbGltaXRzIHRoZSBpbnRlZ2VyIGRpZ2l0IGNvdW50IHRvIDMwOS4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBzdXBlci5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhNYXRoLm1pbihuZXdWYWx1ZSwgRE9VQkxFX0lOVEVHRVJfRElHSVRTKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG92ZXJyaWRlIGxpbWl0cyB0aGUgaW50ZWdlciBkaWdpdCBjb3VudCB0byAzMDkuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgc3VwZXIuc2V0TWluaW11bUludGVnZXJEaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9JTlRFR0VSX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQuIFRoaXMgdmFsdWUgaGFzIG5vIGVmZmVjdCB1bmxlc3MgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkKKyAgICAgKiByZXR1cm5zIHRydWUuCisgICAgICogQHJldHVybiB0aGUgZmV3ZXN0IHNpZ25pZmljYW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1pblNpZ25pZmljYW50RGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQuIFRoaXMgdmFsdWUgaGFzIG5vIGVmZmVjdCB1bmxlc3MgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkKKyAgICAgKiByZXR1cm5zIHRydWUuCisgICAgICogQHJldHVybiB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtYXhTaWduaWZpY2FudERpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiAgSWYgPGNvZGU+bWluPC9jb2RlPiBpcyBsZXNzIHRoYW4gb25lIHRoZW4gaXQgaXMgc2V0CisgICAgICogdG8gb25lLiAgSWYgdGhlIG1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50IGlzIGxlc3MgdGhhbgorICAgICAqIDxjb2RlPm1pbjwvY29kZT4sIHRoZW4gaXQgaXMgc2V0IHRvIDxjb2RlPm1pbjwvY29kZT4uIFRoaXMKKyAgICAgKiB2YWx1ZSBoYXMgbm8gZWZmZWN0IHVubGVzcyBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSByZXR1cm5zIHRydWUuCisgICAgICogQHBhcmFtIG1pbiB0aGUgZmV3ZXN0IHNpZ25pZmljYW50IGRpZ2l0cyB0byBiZSBzaG93biAKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoaW50IG1pbikgeworICAgICAgICBpZiAobWluIDwgMSkgeworICAgICAgICAgICAgbWluID0gMTsgICAKKyAgICAgICAgfQorICAgICAgICAvLyBwaW4gbWF4IHNpZyBkaWcgdG8gPj0gbWluCisgICAgICAgIGludCBtYXggPSBNYXRoLm1heChtYXhTaWduaWZpY2FudERpZ2l0cywgbWluKTsKKyAgICAgICAgbWluU2lnbmlmaWNhbnREaWdpdHMgPSBtaW47CisgICAgICAgIG1heFNpZ25pZmljYW50RGlnaXRzID0gbWF4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyB0aGF0IHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQuICBJZiA8Y29kZT5tYXg8L2NvZGU+IGlzIGxlc3MgdGhhbiBvbmUgdGhlbiBpdCBpcyBzZXQKKyAgICAgKiB0byBvbmUuICBJZiB0aGUgbWluaW11bSBzaWduaWZpY2FudCBkaWdpdHMgY291bnQgaXMgZ3JlYXRlcgorICAgICAqIHRoYW4gPGNvZGU+bWF4PC9jb2RlPiwgdGhlbiBpdCBpcyBzZXQgdG8gPGNvZGU+bWF4PC9jb2RlPi4gVGhpcworICAgICAqIHZhbHVlIGhhcyBubyBlZmZlY3QgdW5sZXNzIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHJldHVybnMgdHJ1ZS4KKyAgICAgKiBAcGFyYW0gbWF4IHRoZSBtb3N0IHNpZ25pZmljYW50IGRpZ2l0cyB0byBiZSBzaG93biAKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoaW50IG1heCkgeworICAgICAgICBpZiAobWF4IDwgMSkgeworICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgfQorICAgICAgICAvLyBwaW4gbWluIHNpZyBkaWcgdG8gMS4ubWF4CisgICAgICAgIGludCBtaW4gPSBNYXRoLm1pbihtaW5TaWduaWZpY2FudERpZ2l0cywgbWF4KTsKKyAgICAgICAgbWluU2lnbmlmaWNhbnREaWdpdHMgPSBtaW47CisgICAgICAgIG1heFNpZ25pZmljYW50RGlnaXRzID0gbWF4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBzaWduaWZpY2FudCBkaWdpdHMgYXJlIGluIHVzZSBvciBmYWxzZSBpZgorICAgICAqIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0IGNvdW50cyBhcmUgaW4gdXNlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzaWduaWZpY2FudCBkaWdpdHMgYXJlIGluIHVzZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpIHsKKyAgICAgICAgcmV0dXJuIHVzZVNpZ25pZmljYW50RGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBzaWduaWZpY2FudCBkaWdpdHMgYXJlIGluIHVzZSwgb3IgaW50ZWdlciBhbmQKKyAgICAgKiBmcmFjdGlvbiBkaWdpdCBjb3VudHMgYXJlIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gdXNlU2lnbmlmaWNhbnREaWdpdHMgdHJ1ZSB0byB1c2Ugc2lnbmlmaWNhbnQgZGlnaXRzLCBvcgorICAgICAqIGZhbHNlIHRvIHVzZSBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdCBjb3VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQoYm9vbGVhbiB1c2VTaWduaWZpY2FudERpZ2l0cykgeworICAgICAgICB0aGlzLnVzZVNpZ25pZmljYW50RGlnaXRzID0gdXNlU2lnbmlmaWNhbnREaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0IHVzZWQgdG8gZGlzcGxheSBjdXJyZW5jeQorICAgICAqIGFtb3VudHMuICBUaGlzIHRha2VzIGVmZmVjdCBpbW1lZGlhdGVseSwgaWYgdGhpcyBmb3JtYXQgaXMgYQorICAgICAqIGN1cnJlbmN5IGZvcm1hdC4gIElmIHRoaXMgZm9ybWF0IGlzIG5vdCBhIGN1cnJlbmN5IGZvcm1hdCwgdGhlbgorICAgICAqIHRoZSBjdXJyZW5jeSBvYmplY3QgaXMgdXNlZCBpZiBhbmQgd2hlbiB0aGlzIG9iamVjdCBiZWNvbWVzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQgdGhyb3VnaCB0aGUgYXBwbGljYXRpb24gb2YgYSBuZXcgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gdGhlQ3VycmVuY3kgbmV3IGN1cnJlbmN5IG9iamVjdCB0byB1c2UuICBNdXN0IG5vdCBiZQorICAgICAqIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q3VycmVuY3koQ3VycmVuY3kgdGhlQ3VycmVuY3kpIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGEgY3VycmVuY3kgZm9ybWF0LCB0aGVuIG1vZGlmeSBvdXIgYWZmaXhlcyB0bworICAgICAgICAvLyBlbmNvZGUgdGhlIGN1cnJlbmN5IHN5bWJvbCBmb3IgdGhlIGdpdmVuIGN1cnJlbmN5IGluIG91cgorICAgICAgICAvLyBsb2NhbGUsIGFuZCBhZGp1c3QgdGhlIGRlY2ltYWwgZGlnaXRzIGFuZCByb3VuZGluZyBmb3IgdGhlCisgICAgICAgIC8vIGdpdmVuIGN1cnJlbmN5LgorCisgICAgICAgIHN1cGVyLnNldEN1cnJlbmN5KHRoZUN1cnJlbmN5KTsKKyAgICAgICAgaWYgKHRoZUN1cnJlbmN5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgU3RyaW5nIHMgPSB0aGVDdXJyZW5jeS5nZXROYW1lKHN5bWJvbHMuZ2V0VUxvY2FsZSgpLAorICAgICAgICAgICAgICAgICAgICBDdXJyZW5jeS5TWU1CT0xfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgaXNDaG9pY2VGb3JtYXQpOworICAgICAgICAgICAgICAgIHN5bWJvbHMuc2V0Q3VycmVuY3lTeW1ib2wocyk7CisgICAgICAgICAgICAgICAgc3ltYm9scy5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2wodGhlQ3VycmVuY3kuZ2V0Q3VycmVuY3lDb2RlKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzQ3VycmVuY3lGb3JtYXQpIHsKKyAgICAgICAgICAgIGlmICh0aGVDdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQodGhlQ3VycmVuY3kuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGQgPSB0aGVDdXJyZW5jeS5nZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgICAgICBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoZCk7CisgICAgICAgICAgICAgICAgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhwYW5kQWZmaXhlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVuY3kgaW4gZWZmZWN0IGZvciB0aGlzIGZvcm1hdHRlci4gIFN1YmNsYXNzZXMKKyAgICAgKiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgYXMgbmVlZGVkLiAgVW5saWtlIGdldEN1cnJlbmN5KCksCisgICAgICogdGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIHJldHVybiBudWxsLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBDdXJyZW5jeSBnZXRFZmZlY3RpdmVDdXJyZW5jeSgpIHsKKyAgICAgICAgQ3VycmVuY3kgYyA9IGdldEN1cnJlbmN5KCk7CisgICAgICAgIGlmIChjID09IG51bGwpIHsKKyAgICAgICAgICAgIGMgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShzeW1ib2xzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG92ZXJyaWRlIGxpbWl0cyB0aGUgZnJhY3Rpb24gZGlnaXQgY291bnQgdG8gMzQwLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgc3VwZXIuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKE1hdGgubWluKG5ld1ZhbHVlLCBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGZyYWN0aW9uIGRpZ2l0IGNvdW50IHRvIDM0MC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhNYXRoLm1pbihuZXdWYWx1ZSwgRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IG1ldGhvZCByZXR1cm5zIEJpZ0RlY2ltYWwuCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICogQHBhcmFtIHZhbHVlIHRydWUgaWYge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBtZXRob2QgcmV0dXJucworICAgICAqIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFyc2VCaWdEZWNpbWFsKGJvb2xlYW4gdmFsdWUpIHsKKyAgICAJcGFyc2VCaWdEZWNpbWFsID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIHJldHVybnMgQmlnRGVjaW1hbC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBtZXRob2QgcmV0dXJucyBCaWdEZWNpbWFsLgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzUGFyc2VCaWdEZWNpbWFsKCkgeworICAgIAlyZXR1cm4gcGFyc2VCaWdEZWNpbWFsOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwlwcml2YXRlIHZvaWQgd3JpdGVPYmplY3QoT2JqZWN0T3V0cHV0U3RyZWFtIHN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKy8vIERvdWcsIGRvIHdlIG5lZWQgdGhpcyBhbnltb3JlPworLy8gICAgICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnQgPSByb3VuZGluZ0luY3JlbWVudElDVS50b0JpZ0RlY2ltYWwoKTsKKy8vICAgICAgICAgICAgfQorCQkKKyAgICAgICAgICAgIHN0cmVhbS5kZWZhdWx0V3JpdGVPYmplY3QoKTsKKwl9CisvLyNlbmRpZgorCQkKKyAgICAvKioKKyAgICAgKiBGaXJzdCwgcmVhZCB0aGUgZGVmYXVsdCBzZXJpYWxpemFibGUgZmllbGRzIGZyb20gdGhlIHN0cmVhbS4gIFRoZW4KKyAgICAgKiBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLCBpbmRpY2F0aW5nIHRoYXQKKyAgICAgKiB0aGUgc3RyZWFtIHdhcyB3cml0dGVuIGJ5IEpESyAxLjEsIGluaXRpYWxpemUgPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4KKyAgICAgKiB0byBmYWxzZSwgc2luY2UgaXQgd2FzIG5vdCBwcmVzZW50IGluIEpESyAxLjEuCisgICAgICogRmluYWxseSwgc2V0IHNlcmlhbFZlcnNpb25PblN0cmVhbSBiYWNrIHRvIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgc28gdGhhdAorICAgICAqIGRlZmF1bHQgc2VyaWFsaXphdGlvbiB3aWxsIHdvcmsgcHJvcGVybHkgaWYgdGhpcyBvYmplY3QgaXMgc3RyZWFtZWQgb3V0IGFnYWluLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIC8qQnVnIDQxODU3NjEgdmFsaWRhdGUgZmllbGRzCisgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gY2hlY2sgdGhlIG1heGltdW0gY291bnRzIGJlY2F1c2UgTnVtYmVyRm9ybWF0CisgICAgICAgIC8vIC5yZWFkT2JqZWN0IGhhcyBhbHJlYWR5IGVuc3VyZWQgdGhhdCB0aGUgbWF4aW11bSBpcyBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgIC8vIG1pbmltdW0gY291bnQuCisgICAgICAgIC8qQ29tbWVudGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgdmVyc2lvbiwgYW5kIHJlc2VydmVkIGZvciBmdXJ0aGVyIHVzZQorICAgICAgICBpZiAoZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSA+IERPVUJMRV9JTlRFR0VSX0RJR0lUUyB8fAorICAgICAgICAgICAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9iamVjdEV4Y2VwdGlvbigiRGlnaXQgY291bnQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0qLworICAgICAgICAvKiBUcnVuY2F0ZSB0aGUgbWF4aW11bUludGVnZXJEaWdpdHMgdG8gRE9VQkxFX0lOVEVHRVJfRElHSVRTIGFuZCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICogdG8gRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUworICAgICAgICAgKi8KKyAgICAgICAgaWYgKGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgPiBET1VCTEVfSU5URUdFUl9ESUdJVFMpIHsKKyAgICAgICAgICAgICBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhET1VCTEVfSU5URUdFUl9ESUdJVFMpOworICAgICAgICB9CisgICAgICAgIGlmIChnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA+IERPVUJMRV9GUkFDVElPTl9ESUdJVFMpIHsKKyAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhET1VCTEVfRlJBQ1RJT05fRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMikgeworICAgICAgICAgICAgZXhwb25lbnRTaWduQWx3YXlzU2hvd24gPSBmYWxzZTsKKyAgICAgICAgICAgIHNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQobnVsbCk7CisgICAgICAgICAgICBzZXRSb3VuZGluZ0RvdWJsZSgpOworICAgICAgICAgICAgcm91bmRpbmdNb2RlID0gQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU47CisgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IDA7CisgICAgICAgICAgICBwYWQgPSAnICc7CisgICAgICAgICAgICBwYWRQb3NpdGlvbiA9IFBBRF9CRUZPUkVfUFJFRklYOworICAgICAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDEpIHsKKyAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgaGF2ZSBleHBvbmVudGlhbCBmaWVsZHMKKyAgICAgICAgICAgICAgICB1c2VFeHBvbmVudGlhbE5vdGF0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDMpIHsKKyAgICAgICAgICAgIC8vIFZlcnNpb25zIHByaW9yIHRvIDMgZG8gbm90IHN0b3JlIGEgY3VycmVuY3kgb2JqZWN0LgorICAgICAgICAgICAgLy8gQ3JlYXRlIG9uZSB0byBtYXRjaCB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAgICAgICAgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCk7CisgICAgICAgIH0KKyAgICAgICAgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisgICAgICAgIGRpZ2l0TGlzdCA9IG5ldyBEaWdpdExpc3QoKTsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50ICE9IG51bGwpIHsKKyAgICAgICAgCXNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQobmV3IEJpZ0RlY2ltYWwocm91bmRpbmdJbmNyZW1lbnQpKTsKKyAgICAgICAgCXNldFJvdW5kaW5nRG91YmxlKCk7CisgICAgICAgIH0gICAKKy8vI2VuZGlmCisgICAgfQorCisKKwlwcml2YXRlIHZvaWQgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChCaWdEZWNpbWFsIHZhbHVlKSB7CisJCXJvdW5kaW5nSW5jcmVtZW50SUNVID0gdmFsdWU7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQlyb3VuZGluZ0luY3JlbWVudCA9IHZhbHVlID09IG51bGwgPyBudWxsIDogdmFsdWUudG9CaWdEZWNpbWFsKCk7CisvLyNlbmRpZgorCX0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIElOU1RBTkNFIFZBUklBQkxFUworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGlnaXRMaXN0IGRpZ2l0TGlzdCA9IG5ldyBEaWdpdExpc3QoKTsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHByZWZpeCB3aGVuIGZvcm1hdHRpbmcgcG9zaXRpdmUgbnVtYmVycywgZS5nLiAiKyIuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UG9zaXRpdmVQcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgcG9zaXRpdmVQcmVmaXggPSAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHN1ZmZpeCB3aGVuIGZvcm1hdHRpbmcgcG9zaXRpdmUgbnVtYmVycy4KKyAgICAgKiBUaGlzIGlzIG9mdGVuIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQb3NpdGl2ZVN1ZmZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBwb3NpdGl2ZVN1ZmZpeCA9ICIiOworCisgICAgLyoqCisgICAgICogVGhlIHN5bWJvbCB1c2VkIGFzIGEgcHJlZml4IHdoZW4gZm9ybWF0dGluZyBuZWdhdGl2ZSBudW1iZXJzLCBlLmcuICItIi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROZWdhdGl2ZVByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBuZWdhdGl2ZVByZWZpeCA9ICItIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHN1ZmZpeCB3aGVuIGZvcm1hdHRpbmcgbmVnYXRpdmUgbnVtYmVycy4KKyAgICAgKiBUaGlzIGlzIG9mdGVuIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROZWdhdGl2ZVN1ZmZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBuZWdhdGl2ZVN1ZmZpeCA9ICIiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggcGF0dGVybiBmb3Igbm9uLW5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+LgorICAgICAqCisgICAgICogPHA+VGhpcyBwYXR0ZXJuIGlzIGV4cGFuZGVkIGJ5IHRoZSBtZXRob2QgPGNvZGU+ZXhwYW5kQWZmaXgoKTwvY29kZT4gdG8KKyAgICAgKiA8Y29kZT5wb3NpdGl2ZVByZWZpeDwvY29kZT4gdG8gdXBkYXRlIHRoZSBsYXR0ZXIgdG8gcmVmbGVjdCBjaGFuZ2VzIGluCisgICAgICogPGNvZGU+c3ltYm9sczwvY29kZT4uICBJZiB0aGlzIHZhcmlhYmxlIGlzIDxjb2RlPm51bGw8L2NvZGU+IHRoZW4KKyAgICAgKiA8Y29kZT5wb3NpdGl2ZVByZWZpeDwvY29kZT4gaXMgdGFrZW4gYXMgYSBsaXRlcmFsIHZhbHVlIHRoYXQgZG9lcyBub3QKKyAgICAgKiBjaGFuZ2Ugd2hlbiA8Y29kZT5zeW1ib2xzPC9jb2RlPiBjaGFuZ2VzLiAgVGhpcyB2YXJpYWJsZSBpcyBhbHdheXMKKyAgICAgKiA8Y29kZT5udWxsPC9jb2RlPiBmb3IgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBvbGRlciB0aGFuCisgICAgICogc3RyZWFtIHZlcnNpb24gMiByZXN0b3JlZCBmcm9tIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICAvL1tSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIFN0cmluZyBwb3NQcmVmaXhQYXR0ZXJuOworCisgICAgLyoqCisgICAgICogVGhlIHN1ZmZpeCBwYXR0ZXJuIGZvciBub24tbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5wb3NpdGl2ZVN1ZmZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zU3VmZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggcGF0dGVybiBmb3IgbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5uZWdhdGl2ZVByZWZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgbmVnUHJlZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBzdWZmaXggcGF0dGVybiBmb3IgbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5uZWdhdGl2ZVN1ZmZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgbmVnU3VmZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIEZvcm1hdHRlciBmb3IgQ2hvaWNlRm9ybWF0LWJhc2VkIGN1cnJlbmN5IG5hbWVzLiAgSWYgdGhpcyBmaWVsZAorICAgICAqIGlzIG5vdCBudWxsLCB0aGVuIGRlbGVnYXRlIHRvIGl0IHRvIGZvcm1hdCBjdXJyZW5jeSBzeW1ib2xzLgorICAgICAqIEBzaW5jZSBJQ1UgMi42CisgICAgICovCisgICAgcHJpdmF0ZSBDaG9pY2VGb3JtYXQgY3VycmVuY3lDaG9pY2U7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNdWx0aXBsaWVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgIG11bHRpcGxpZXIgPSAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gZ3JvdXBpbmcgc2VwYXJhdG9ycyBpbiB0aGUgaW50ZWdlcgorICAgICAqIHBvcnRpb24gb2YgYSBudW1iZXIuICBNdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGlmCisgICAgICogPGNvZGU+TnVtYmVyRm9ybWF0Lmdyb3VwaW5nVXNlZDwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBncm91cGluZ1NpemUgPSAzOyAgLy8gaW52YXJpYW50LCA+IDAgaWYgdXNlVGhvdXNhbmRzCisKKyAgICAvKioKKyAgICAgKiBUaGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuICBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgSGluZGkKKyAgICAgKiBudW1lcmFscywgd2hpY2ggdXNlIGEgcHJpbWFyeSBncm91cGluZyBvZiAzIGFuZCBhIHNlY29uZGFyeQorICAgICAqIGdyb3VwaW5nIG9mIDIsIGUuZy4sICIxMiwzNCw1NjciLiAgSWYgdGhpcyB2YWx1ZSBpcyBsZXNzIHRoYW4KKyAgICAgKiAxLCB0aGVuIHNlY29uZGFyeSBncm91cGluZyBpcyBlcXVhbCB0byB0aGUgcHJpbWFyeSBncm91cGluZy4KKyAgICAgKiBbTkVXXQorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBncm91cGluZ1NpemUyID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCBmb3JjZXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHRvIGFsd2F5cyBhcHBlYXIgaW4gYSBmb3JtYXR0ZWQKKyAgICAgKiBudW1iZXIsIGV2ZW4gaWYgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGlzIHplcm8uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIG9iamVjdCByZXByZXNlbnRzIGEgY3VycmVuY3kgZm9ybWF0LiAgVGhpcyBkZXRlcm1pbmVzCisgICAgICogd2hldGhlciB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgb25lLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gaXNDdXJyZW5jeUZvcm1hdCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0IHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogSXQgY29udGFpbnMgdGhlIHN5bWJvbHMgdXNlZCB0byBmb3JtYXQgbnVtYmVycywgZS5nLiB0aGUgZ3JvdXBpbmcgc2VwYXJhdG9yLAorICAgICAqIGRlY2ltYWwgc2VwYXJhdG9yLCBhbmQgc28gb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICovCisgICAgcHJpdmF0ZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbnVsbDsgLy8gTElVIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworCisgICAgLyoqCisgICAgICogVHJ1ZSB0byB1c2Ugc2lnbmlmaWNhbnQgZGlnaXRzIHJhdGhlciB0aGFuIGludGVnZXIgYW5kIGZyYWN0aW9uCisgICAgICogZGlnaXQgY291bnRzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiB1c2VTaWduaWZpY2FudERpZ2l0cyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyB0byBzaG93LiAgTXVzdCBiZSA+PSAxCisgICAgICogYW5kIDw9IG1heFNpZ25pZmljYW50RGlnaXRzLiAgSWdub3JlZCB1bmxlc3MKKyAgICAgKiB1c2VTaWduaWZpY2FudERpZ2l0cyA9PSB0cnVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1pblNpZ25pZmljYW50RGlnaXRzID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdG8gc2hvdy4gIE11c3QgYmUgPj0KKyAgICAgKiBtaW5TaWduZmljYW50RGlnaXRzLiAgSWdub3JlZCB1bmxlc3MgdXNlU2lnbmlmaWNhbnREaWdpdHMgPT0KKyAgICAgKiB0cnVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1heFNpZ25pZmljYW50RGlnaXRzID0gNjsKKworICAgIC8qKgorICAgICAqIFRydWUgdG8gZm9yY2UgdGhlIHVzZSBvZiBleHBvbmVudGlhbCAoaS5lLiBzY2llbnRpZmljKSBub3RhdGlvbiB3aGVuIGZvcm1hdHRpbmcKKyAgICAgKiBudW1iZXJzLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCB0aGUgSkRLIDEuMiBwdWJsaWMgQVBJIHByb3ZpZGVzIG5vIHdheSB0byBzZXQgdGhpcyBmaWVsZCwKKyAgICAgKiBldmVuIHRob3VnaCBpdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIGFuZCB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiBUaGUgaW50ZW50IGlzIHRoYXQgdGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBBUEkgaW4gdGhlIGZ1dHVyZS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gdXNlRXhwb25lbnRpYWxOb3RhdGlvbjsgIC8vIE5ld2x5IHBlcnNpc3RlbnQgaW4gSkRLIDEuMgorCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyB1c2VkIHRvIGRpc3BsYXkgdGhlIGV4cG9uZW50IHdoZW4gYSBudW1iZXIgaXMKKyAgICAgKiBmb3JtYXR0ZWQgaW4gZXhwb25lbnRpYWwgbm90YXRpb24uICBUaGlzIGZpZWxkIGlzIGlnbm9yZWQgaWYKKyAgICAgKiA8Y29kZT51c2VFeHBvbmVudGlhbE5vdGF0aW9uPC9jb2RlPiBpcyBub3QgdHJ1ZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhlIEpESyAxLjIgcHVibGljIEFQSSBwcm92aWRlcyBubyB3YXkgdG8gc2V0IHRoaXMgZmllbGQsCisgICAgICogZXZlbiB0aG91Z2ggaXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlIHN0cmVhbSBmb3JtYXQuCisgICAgICogVGhlIGludGVudCBpcyB0aGF0IHRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgQVBJIGluIHRoZSBmdXR1cmUuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlICAgIG1pbkV4cG9uZW50RGlnaXRzOyAgICAgICAvLyBOZXdseSBwZXJzaXN0ZW50IGluIEpESyAxLjIKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBJZiB0cnVlLCB0aGUgZXhwb25lbnQgaXMgYWx3YXlzIHByZWZpeGVkIHdpdGggZWl0aGVyIHRoZSBwbHVzCisgICAgICogc2lnbiBvciB0aGUgbWludXMgc2lnbi4gIE90aGVyd2lzZSwgb25seSBuZWdhdGl2ZSBleHBvbmVudHMgYXJlCisgICAgICogcHJlZml4ZWQgd2l0aCB0aGUgbWludXMgc2lnbi4gIFRoaXMgaGFzIG5vIGVmZmVjdCB1bmxlc3MKKyAgICAgKiA8Y29kZT51c2VFeHBvbmVudGlhbE5vdGF0aW9uPC9jb2RlPiBpcyB0cnVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZXhwb25lbnRTaWduQWx3YXlzU2hvd24gPSBmYWxzZTsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHZhbHVlIHRvIHdoaWNoIG51bWJlcnMgYXJlIHJvdW5kZWQgZHVyaW5nIGZvcm1hdHRpbmcuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpZiB0aGUgcm91bmRpbmcgaW5jcmVtZW50IGlzIDAuMDUsIHRoZW4gMTMuMzcxIHdvdWxkIGJlIGZvcm1hdHRlZCBhcworICAgICAqIDEzLjM1MCwgYXNzdW1pbmcgMyBmcmFjdGlvbiBkaWdpdHMuICBIYXMgdGhlIHZhbHVlIDxjb2RlPm51bGw8L2NvZGU+IGlmCisgICAgICogcm91bmRpbmcgaXMgbm90IGluIGVmZmVjdCwgb3IgYSBwb3NpdGl2ZSB2YWx1ZSBpZiByb3VuZGluZyBpcyBpbiBlZmZlY3QuCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgLy8gTm90ZTogdGhpcyBpcyBrZXB0IGluIHN5bmMgd2l0aCByb3VuZGluZ0luY3JlbWVudElDVS4KKyAgICAvLyBpdCBpcyBvbmx5IGtlcHQgYXJvdW5kIHRvIGF2b2lkIGEgY29udmVyc2lvbiB3aGVuIGZvcm1hdHRpbmcgYSBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgIHByaXZhdGUgamF2YS5tYXRoLkJpZ0RlY2ltYWwgcm91bmRpbmdJbmNyZW1lbnQgPSBudWxsOworLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgdmFsdWUgdG8gd2hpY2ggbnVtYmVycyBhcmUgcm91bmRlZCBkdXJpbmcgZm9ybWF0dGluZy4gIEZvciBleGFtcGxlLAorICAgICAqIGlmIHRoZSByb3VuZGluZyBpbmNyZW1lbnQgaXMgMC4wNSwgdGhlbiAxMy4zNzEgd291bGQgYmUgZm9ybWF0dGVkIGFzCisgICAgICogMTMuMzUwLCBhc3N1bWluZyAzIGZyYWN0aW9uIGRpZ2l0cy4gIEhhcyB0aGUgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4gaWYKKyAgICAgKiByb3VuZGluZyBpcyBub3QgaW4gZWZmZWN0LCBvciBhIHBvc2l0aXZlIHZhbHVlIGlmIHJvdW5kaW5nIGlzIGluIGVmZmVjdC4KKyAgICAgKiBEZWZhdWx0IHZhbHVlIDxjb2RlPm51bGw8L2NvZGU+LgorICAgICAqIFdBUk5JTkc6IHRoZSByb3VuZGluZ0luY3JlbWVudCB2YWx1ZSBpcyB0aGUgb25lIHNlcmlhbGl6ZWQuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IEJpZ0RlY2ltYWwgcm91bmRpbmdJbmNyZW1lbnRJQ1UgPSBudWxsOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgYXMgYSBkb3VibGUuICBJZiB0aGlzIHZhbHVlIGlzIDw9IDAsIHRoZW4gbm8KKyAgICAgKiByb3VuZGluZyBpcyBkb25lLiAgVGhpcyB2YWx1ZSBpcworICAgICAqIDxjb2RlPnJvdW5kaW5nSW5jcmVtZW50SUNVLmRvdWJsZVZhbHVlKCk8L2NvZGU+LiAgRGVmYXVsdCB2YWx1ZSAwLjAuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlIHJvdW5kaW5nRG91YmxlID0gMC4wOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIElmIHRoZSByb3VuZGluZ0RvdWJsZSBpcyB0aGUgcmVjaXByb2NhbCBvZiBhbiBpbnRlZ2VyICh0aGUgbW9zdCBjb21tb24gY2FzZSEpLAorICAgICAqIHRoaXMgaXMgc2V0IHRvIGJlIHRoYXQgaW50ZWdlci4gT3RoZXJ3aXNlIGl0IGlzIDAuMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBkb3VibGUgcm91bmRpbmdEb3VibGVSZWNpcHJvY2FsID0gMC4wOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSByb3VuZGluZyBtb2RlLiAgVGhpcyB2YWx1ZSBjb250cm9scyBhbnkgcm91bmRpbmcgb3BlcmF0aW9ucyB3aGljaAorICAgICAqIG9jY3VyIHdoZW4gYXBwbHlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgb3Igd2hlbiByZWR1Y2luZyB0aGUgbnVtYmVyIG9mCisgICAgICogZnJhY3Rpb24gZGlnaXRzIHRvIHNhdGlzZnkgYSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cyBsaW1pdC4gIFRoZSB2YWx1ZQorICAgICAqIG1heSBhc3N1bWUgYW55IG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiByb3VuZGluZyBtb2RlIHZhbHVlcy4KKyAgICAgKiBEZWZhdWx0IHZhbHVlIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcm91bmRpbmdNb2RlID0gQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU47CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHBhZGRlZCBmb3JtYXQgd2lkdGgsIG9yIHplcm8gaWYgdGhlcmUgaXMgbm8gcGFkZGluZy4gIE11c3QKKyAgICAgKiBiZSA+PSAwLiAgRGVmYXVsdCB2YWx1ZSB6ZXJvLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmb3JtYXRXaWR0aCA9IDA7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCB0aGUgcmVzdWx0IG9mIGZvcm1hdCB0bworICAgICAqIDxjb2RlPmZvcm1hdFdpZHRoPC9jb2RlPiwgaWYgcGFkZGluZyBpcyBpbiBlZmZlY3QuICBEZWZhdWx0IHZhbHVlICcgJy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHBhZCA9ICcgJzsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgcG9zaXRpb24gaW4gdGhlIHN0cmluZyBhdCB3aGljaCB0aGUgPGNvZGU+cGFkPC9jb2RlPiBjaGFyYWN0ZXIKKyAgICAgKiB3aWxsIGJlIGluc2VydGVkLCBpZiBwYWRkaW5nIGlzIGluIGVmZmVjdC4gIE11c3QgaGF2ZSBhIHZhbHVlIGZyb20KKyAgICAgKiA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4gdG8gPGNvZGU+UEFEX0FGVEVSX1NVRkZJWDwvY29kZT4uCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgaW50IHBhZFBvc2l0aW9uID0gUEFEX0JFRk9SRV9QUkVGSVg7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gdG8gcmV0dXJuIEJpZ0RlY2ltYWwKKyAgICAgKiByYXRoZXIgdGhhbiBMb25nLCBEb3VibGUgb3IgQmlnRGVjaW1hbCBleGNlcHQgc3BlY2lhbCB2YWx1ZXMuCisgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBpbnRyb2R1Y2VkIGZvciBKMlNFIDUgY29tcGF0aWJpbGl0eSBzdXBwb3J0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSUNVIDMuNgorICAgICAqIEBzZWUgI3NldFBhcnNlQmlnRGVjaW1hbChib29sZWFuKQorICAgICAqIEBzZWUgI2lzUGFyc2VCaWdEZWNpbWFsKCkKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VCaWdEZWNpbWFsID0gZmFsc2U7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgY3VycmVudFNlcmlhbFZlcnNpb24gPSAzOworCisgICAgLyoqCisgICAgICogVGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj4wPC9iPiAoZGVmYXVsdCk6IHZlcnNpb25zIGJlZm9yZSBKREsgMS4yCisgICAgICogPGxpPjxiPjE8L2I+OiB2ZXJzaW9uIGZyb20gSkRLIDEuMiBhbmQgbGF0ZXIsIHdoaWNoIGluY2x1ZGVzIHRoZSB0d28gbmV3IGZpZWxkcworICAgICAqICAgICAgPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4gYW5kIDxjb2RlPm1pbkV4cG9uZW50RGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8bGk+PGI+MjwvYj46IHZlcnNpb24gb24gQWxwaGFXb3Jrcywgd2hpY2ggYWRkcyByb3VuZGluZ01vZGUsIGZvcm1hdFdpZHRoLAorICAgICAqICAgICAgcGFkLCBwYWRQb3NpdGlvbiwgZXhwb25lbnRTaWduQWx3YXlzU2hvd24sIHJvdW5kaW5nSW5jcmVtZW50LgorICAgICAqIDxsaT48Yj4zPC9iPjogSUNVIDIuMi4gIEFkZHMgY3VycmVuY3kgb2JqZWN0LgorICAgICAqIDwvdWw+CisgICAgICogQHNlcmlhbCAqLworICAgIHByaXZhdGUgaW50IHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ09OU1RBTlRTCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29uc3RhbnQgZm9yIDxjb2RlPmdldFBhZFBvc2l0aW9uKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPnNldFBhZFBvc2l0aW9uKCk8L2NvZGU+IHNwZWNpZnlpbmcgcGFkIGNoYXJhY3RlcnMgaW5zZXJ0ZWQgYmVmb3JlCisgICAgICogdGhlIHByZWZpeC4KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBRF9CRUZPUkVfUFJFRklYID0gMDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb25zdGFudCBmb3IgPGNvZGU+Z2V0UGFkUG9zaXRpb24oKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+c2V0UGFkUG9zaXRpb24oKTwvY29kZT4gc3BlY2lmeWluZyBwYWQgY2hhcmFjdGVycyBpbnNlcnRlZCBhZnRlcgorICAgICAqIHRoZSBwcmVmaXguCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFEX0FGVEVSX1BSRUZJWCAgPSAxOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGJlZm9yZQorICAgICAqIHRoZSBzdWZmaXguCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQkVGT1JFX1NVRkZJWCA9IDI7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29uc3RhbnQgZm9yIDxjb2RlPmdldFBhZFBvc2l0aW9uKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPnNldFBhZFBvc2l0aW9uKCk8L2NvZGU+IHNwZWNpZnlpbmcgcGFkIGNoYXJhY3RlcnMgaW5zZXJ0ZWQgYWZ0ZXIKKyAgICAgKiB0aGUgc3VmZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBRF9BRlRFUl9TVUZGSVggID0gMzsKKworICAgIC8vIENvbnN0YW50cyBmb3IgY2hhcmFjdGVycyB1c2VkIGluIHByb2dyYW1tYXRpYyAodW5sb2NhbGl6ZWQpIHBhdHRlcm5zLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9aRVJPX0RJR0lUICAgICAgICAgPSAnMCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX0dST1VQSU5HX1NFUEFSQVRPUiA9ICcsJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fREVDSU1BTF9TRVBBUkFUT1IgID0gJy4nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9ESUdJVCAgICAgICAgICAgICAgPSAnIyc7CisgICAgICAgICAgICBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1NJR05JRklDQU5UX0RJR0lUICA9ICdAJzsKKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fRVhQT05FTlQgICAgICAgICAgID0gJ0UnOyAvLyBbTkVXXQorICAgICAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9QTFVTX1NJR04gICAgICAgICAgPSAnKyc7IC8vIFtORVddCisKKyAgICAvLyBBZmZpeAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9QRVJfTUlMTEUgICAgICAgICAgPSAnXHUyMDMwJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUEVSQ0VOVCAgICAgICAgICAgID0gJyUnOworICAgICAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9QQURfRVNDQVBFICAgICAgICAgPSAnKic7IC8vIFtORVddCisgICAgLypCdWcgNDIxMjA3MgorICAgICAgVG8gbWVldCB0aGUgbmVlZCBvZiBleHBhbmRBZmZpeChTdHJpbmcsIFN0aXJuZ0J1ZmZlcikKKyAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9NSU5VUyAgICAgICAgICAgICAgPSAnLSc7IC8vW1JpY2hhcmQvR0NMXQorCisgICAgLy8gT3RoZXIgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1NFUEFSQVRPUiAgICAgICAgICA9ICc7JzsKKworICAgIC8vIFBhZCBlc2NhcGUgaXMgcGFja2FnZSBwcml2YXRlIHRvIGFsbG93IGFjY2VzcyBieSBEZWNpbWFsRm9ybWF0U3ltYm9scy4KKyAgICAvLyBBbHNvIHBsdXMgc2lnbi4gIEFsc28gZXhwb25lbnQuCisKKyAgICAvKioKKyAgICAgKiBUaGUgQ1VSUkVOQ1lfU0lHTiBpcyB0aGUgc3RhbmRhcmQgVW5pY29kZSBzeW1ib2wgZm9yIGN1cnJlbmN5LiAgSXQKKyAgICAgKiBpcyB1c2VkIGluIHBhdHRlcm5zIGFuZCBzdWJzdGl0dWVkIHdpdGggZWl0aGVyIHRoZSBjdXJyZW5jeSBzeW1ib2wsCisgICAgICogb3IgaWYgaXQgaXMgZG91YmxlZCwgd2l0aCB0aGUgaW50ZXJuYXRpb25hbCBjdXJyZW5jeSBzeW1ib2wuICBJZiB0aGUKKyAgICAgKiBDVVJSRU5DWV9TSUdOIGlzIHNlZW4gaW4gYSBwYXR0ZXJuLCB0aGVuIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcworICAgICAqIHJlcGxhY2VkIHdpdGggdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqCisgICAgICogVGhlIENVUlJFTkNZX1NJR04gaXMgbm90IGxvY2FsaXplZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIENVUlJFTkNZX1NJR04gPSAnXHUwMEE0JzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUVVPVEUgPSAnXCcnOworICAgIAorICAgIC8qIFVwcGVyIGxpbWl0IG9uIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0cyBmb3IgYSBKYXZhIGRvdWJsZQorICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgRE9VQkxFX0lOVEVHRVJfRElHSVRTICA9IDMwOTsKKyAgICBzdGF0aWMgZmluYWwgaW50IERPVUJMRV9GUkFDVElPTl9ESUdJVFMgPSAzNDA7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIHNvbWVvbmUgdHVybnMgb24gc2NpZW50aWZpYyBtb2RlLCB3ZSBhc3N1bWUgdGhhdCBtb3JlIHRoYW4gdGhpcworICAgICAqIG51bWJlciBvZiBkaWdpdHMgaXMgZHVlIHRvIGZsaXBwaW5nIGZyb20gc29tZSBvdGhlciBtb2RlIHRoYXQgZGlkbid0CisgICAgICogcmVzdHJpY3QgdGhlIG1heGltdW0sIGFuZCBzbyB3ZSBmb3JjZSAxIGludGVnZXIgZGlnaXQuICBXZSBkb24ndCBib3RoZXIKKyAgICAgKiB0byB0cmFjayBhbmQgc2VlIGlmIHNvbWVvbmUgaXMgdXNpbmcgZXhwb25lbnRpYWwgbm90YXRpb24gd2l0aCBtb3JlIHRoYW4KKyAgICAgKiB0aGlzIG51bWJlciwgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSBhbnl3YXksIGFuZCB0aGlzIGlzIGp1c3QgdG8gbWFrZSBzdXJlCisgICAgICogdGhhdCBzb21lb25lIHR1cm5pbmcgb24gc2NpZW50aWZpYyBtb2RlIHdpdGggZGVmYXVsdCBzZXR0aW5ncyBkb2Vzbid0CisgICAgICogZW5kIHVwIHdpdGggbG90cyBvZiB6ZXJvZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfU0NJRU5USUZJQ19JTlRFR0VSX0RJR0lUUyA9IDg7CisKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMJLy8gd2UncmUgbm90IGNvbXBhdGlibGUgd2l0aCBvdGhlciB2ZXJzaW9ucywgc2luY2Ugd2UgaGF2ZSBubyBqYXZhLm1hdGguQmlnRGVjaW1hbCBmaWVsZAorLy8jIwlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyOworLy8jZWxzZQorICAgIC8vIFByb2NsYWltIEpESyAxLjEgc2VyaWFsIGNvbXBhdGliaWxpdHkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gODY0NDEzMzc2NTUxNDY1MDE4TDsKKy8vI2VuZGlmCisgICAgcHJpdmF0ZSBBcnJheUxpc3QgYXR0cmlidXRlcyA9IG5ldyBBcnJheUxpc3QoKTsKK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3YjlmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMTAxOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS50ZXh0LkNob2ljZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIHNldCBvZiBzeW1ib2xzIChzdWNoIGFzIHRoZSBkZWNpbWFsIHNlcGFyYXRvciwgdGhlCisgKiBncm91cGluZyBzZXBhcmF0b3IsIGFuZCBzbyBvbikgbmVlZGVkIGJ5IDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIGZvcm1hdAorICogbnVtYmVycy4gPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY3JlYXRlcyBmb3IgaXRzZWxmIGFuIGluc3RhbmNlIG9mCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gZnJvbSBpdHMgbG9jYWxlIGRhdGEuICBJZiB5b3UgbmVlZCB0bworICogY2hhbmdlIGFueSBvZiB0aGVzZSBzeW1ib2xzLCB5b3UgY2FuIGdldCB0aGUKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QgZnJvbSB5b3VyIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBhbmQgbW9kaWZ5IGl0LgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPi48L3N0cm9uZz4KKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzCisgKiBAYXV0aG9yICAgICAgIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworCitmaW5hbCBwdWJsaWMgY2xhc3MgRGVjaW1hbEZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBDbG9uZWFibGUsIFNlcmlhbGl6YWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIGluaXRpYWxpemUoIFVMb2NhbGUuZ2V0RGVmYXVsdCgpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyggTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgaW5pdGlhbGl6ZSggVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyggVUxvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgIGluaXRpYWxpemUoIGxvY2FsZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0WmVyb0RpZ2l0KCkgeworICAgICAgICByZXR1cm4gemVyb0RpZ2l0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uCisgICAgICogQHBhcmFtIHplcm9EaWdpdCB0aGUgemVybyBjaGFyYWN0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0WmVyb0RpZ2l0KGNoYXIgemVyb0RpZ2l0KSB7CisgICAgICAgIHRoaXMuemVyb0RpZ2l0ID0gemVyb0RpZ2l0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IGEgc2lnbmlmaWNhbnQgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIHNpZ25pZmljYW50IGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0U2lnbmlmaWNhbnREaWdpdCgpIHsKKyAgICAgICAgcmV0dXJuIHNpZ0RpZ2l0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IGEgc2lnbmlmaWNhbnQgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBzaWdEaWdpdCB0aGUgc2lnbmlmaWNhbnQgZGlnaXQgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaWduaWZpY2FudERpZ2l0KGNoYXIgc2lnRGlnaXQpIHsKKyAgICAgICAgdGhpcy5zaWdEaWdpdCA9IHNpZ0RpZ2l0OworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aG91c2FuZHMgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB0aG91c2FuZHMgc2VwYXJhdG9yLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBncm91cGluZ1NlcGFyYXRvciB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIgZ3JvdXBpbmdTZXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5ncm91cGluZ1NlcGFyYXRvciA9IGdyb3VwaW5nU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcGFyYW0gZGVjaW1hbFNlcGFyYXRvciB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yKGNoYXIgZGVjaW1hbFNlcGFyYXRvcikgeworICAgICAgICB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBlck1pbGwoKSB7CisgICAgICAgIHJldHVybiBwZXJNaWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyTWlsbCB0aGUgbWlsbGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJNaWxsKGNoYXIgcGVyTWlsbCkgeworICAgICAgICB0aGlzLnBlck1pbGwgPSBwZXJNaWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBlcmNlbnQoKSB7CisgICAgICAgIHJldHVybiBwZXJjZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyY2VudCB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJjZW50KGNoYXIgcGVyY2VudCkgeworICAgICAgICB0aGlzLnBlcmNlbnQgPSBwZXJjZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gZGlnaXQgdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGlnaXQoY2hhciBkaWdpdCkgeworICAgICAgICB0aGlzLmRpZ2l0ID0gZGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybiBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGF0dGVyblNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm5TZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHBhdHRlcm5TZXBhcmF0b3IgdGhlIHBhdHRlcm4gc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdHRlcm5TZXBhcmF0b3IoY2hhciBwYXR0ZXJuU2VwYXJhdG9yKSB7CisgICAgICAgIHRoaXMucGF0dGVyblNlcGFyYXRvciA9IHBhdHRlcm5TZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBJbmZpbml0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgLy9CdWcgNDE5NDE3MyBbUmljaGFyZC9HQ0xdCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluZmluaXR5KCkgeworICAgICAgICByZXR1cm4gaW5maW5pdHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gaW5maW5pdHkgdGhlIEluZmluaXR5IFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZmluaXR5KFN0cmluZyBpbmZpbml0eSkgeworICAgICAgICB0aGlzLmluZmluaXR5ID0gaW5maW5pdHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgICAvL0J1ZyA0MTk0MTczIFtSaWNoYXJkL0dDTF0KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hTigpIHsKKyAgICAgICAgcmV0dXJuIE5hTjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIFN0cmluZyB1c2VkIHRvIHJlcHJlc2VudCBOYU4uIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gTmFOIHRoZSBOYU4gU3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFOKFN0cmluZyBOYU4pIHsKKyAgICAgICAgdGhpcy5OYU4gPSBOYU47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgbWludXMgc2lnbi4gSWYgbm8gZXhwbGljaXQKKyAgICAgKiBuZWdhdGl2ZSBmb3JtYXQgaXMgc3BlY2lmaWVkLCBvbmUgaXMgZm9ybWVkIGJ5IHByZWZpeGluZworICAgICAqIG1pbnVzU2lnbiB0byB0aGUgcG9zaXRpdmUgZm9ybWF0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbnVzIHNpZ24gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0TWludXNTaWduKCkgeworICAgICAgICByZXR1cm4gbWludXNTaWduOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbWludXNTaWduIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbnVzU2lnbihjaGFyIG1pbnVzU2lnbikgeworICAgICAgICB0aGlzLm1pbnVzU2lnbiA9IG1pbnVzU2lnbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHJldHVybiB0aGUgbG9jYWwgY3VycmVuY3kgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lTeW1ib2woKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbmN5U3ltYm9sOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpCisgICAgeworICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnRsQ3VycmVuY3lTeW1ib2w7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKFN0cmluZyBjdXJyZW5jeSkKKyAgICB7CisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbmN5IHN5bWJvbCwgZm9yIEpESyAxLjQgY29tcGF0aWJpbGl0eSBvbmx5LgorICAgICAqIElDVSBjbGllbnRzIHNob3VsZCB1c2UgdGhlIEN1cnJlbmN5IEFQSSBkaXJlY3RseS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW5jeSB1c2VkLCBvciBudWxsCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiBjdXJyZW5jeTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSUNVIGRvZXMgbm90IHVzZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9yIHRoZSAKKyAgICAgKiBjdXJyZW5jeSBhbnkgbW9yZS4gIFRoaXMgQVBJIGlzIHByZXNlbnQKKyAgICAgKiBmb3IgQVBJIGNvbXBhdGliaWxpdHkgb25seS4KKyAgICAgKgorICAgICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBjdXJyZW5jeSBzeW1ib2wgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW5jeSdzIHN5bWJvbAorICAgICAqIGluIHRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scycgbG9jYWxlLCBhbmQgdGhlIGludGVybmF0aW9uYWwgY3VycmVuY3kKKyAgICAgKiBzeW1ib2wgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW5jeSdzIElTTyA0MjE3IGN1cnJlbmN5IGNvZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIG5ldyBjdXJyZW5jeSB0byBiZSB1c2VkCisgICAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5jdXJyZW5jeTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgI3NldEN1cnJlbmN5U3ltYm9sCisgICAgICogQHNlZSAjc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5KEN1cnJlbmN5IGN1cnJlbmN5KSB7CisgICAgICAgIGlmIChjdXJyZW5jeSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnJlbmN5ID0gY3VycmVuY3k7CisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5LmdldFN5bWJvbChsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqIEByZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gbW9uZXRhcnlTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3I7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIEFQSSBmb3IgTnVtYmVyRm9ybWF0CisgICAgICogQHJldHVybiBTdHJpbmcgY3VycmVuY3kgcGF0dGVybiBzdHJpbmcJCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgU3RyaW5nIGdldEN1cnJlbmN5UGF0dGVybigpeworICAgICAgICByZXR1cm4gY3VycmVuY3lQYXR0ZXJuOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqIEBwYXJhbSBzZXAgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcihjaGFyIHNlcCkKKyAgICB7CisgICAgICAgIG1vbmV0YXJ5U2VwYXJhdG9yID0gc2VwOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqIEBwYXJhbSBzZXAgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcihjaGFyIHNlcCkKKyAgICB7CisgICAgICAgIG1vbmV0YXJ5R3JvdXBpbmdTZXBhcmF0b3IgPSBzZXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG1hbnRpc3NhIGZyb20gdGhlIGV4cG9uZW50LgorICAgICAqIEV4YW1wbGVzOiAieDEwXiIgZm9yIDEuMjN4MTBeNCwgIkUiIGZvciAxLjIzRTQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGV4cG9uZW50IHN5bWJvbCwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMKKyAgICAgKiBhbmQgZm9ybWF0dGVkIHN0cmluZ3MKKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhwb25lbnRTZXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV4cG9uZW50U2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHRoZSBtYW50aXNzYSBmcm9tIHRoZSBleHBvbmVudC4KKyAgICAgKiBFeGFtcGxlczogIngxMF4iIGZvciAxLjIzeDEwXjQsICJFIiBmb3IgMS4yM0U0LgorICAgICAqIEBwYXJhbSBleHAgdGhlIGxvY2FsaXplZCBleHBvbmVudCBzeW1ib2wsIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zCisgICAgICogYW5kIGZvcm1hdHRlZCBzdHJpbmdzCisgICAgICogQHNlZSAjZ2V0RXhwb25lbnRTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFeHBvbmVudFNlcGFyYXRvcihTdHJpbmcgZXhwKQorICAgIHsKKyAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IgPSBleHA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgbG9jYWxpemVkIHBsdXMgc2lnbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBwbHVzIHNpZ24sIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zIGFuZCBmb3JtYXR0ZWQKKyAgICAgKiBzdHJpbmdzCisgICAgICogQHNlZSAjc2V0UGx1c1NpZ24KKyAgICAgKiBAc2VlICNzZXRNaW51c1NpZ24KKyAgICAgKiBAc2VlICNnZXRNaW51c1NpZ24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQbHVzU2lnbigpIHsKKyAgICAgICAgcmV0dXJuIHBsdXNTaWduOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgICAgICogQHBhcmFtIHBsdXMgdGhlIHBsdXMgc2lnbiwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMgYW5kIGZvcm1hdHRlZAorICAgICAqIHN0cmluZ3MKKyAgICAgKiBAc2VlICNnZXRQbHVzU2lnbgorICAgICAqIEBzZWUgI3NldE1pbnVzU2lnbgorICAgICAqIEBzZWUgI2dldE1pbnVzU2lnbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBsdXNTaWduKGNoYXIgcGx1cykgeworICAgICAgICBwbHVzU2lnbiA9IHBsdXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIG51bWJlcnMgb3V0IHRvIGEgc3BlY2lmaWVkIHdpZHRoLiAgVGhpcworICAgICAqIGlzIG5vdCB0aGUgcGFkIGNoYXJhY3RlciBpdHNlbGY7IHJhdGhlciwgaXQgaXMgdGhlIHNwZWNpYWwgcGF0dGVybgorICAgICAqIGNoYXJhY3RlciA8ZW0+cHJlY2VkaW5nPC9lbT4gdGhlIHBhZCBjaGFyYWN0ZXIuICBJbiB0aGUgcGF0dGVybgorICAgICAqICIqXyMsIyMwIiwgJyonIGlzIHRoZSBwYWQgZXNjYXBlLCBhbmQgJ18nIGlzIHRoZSBwYWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciAKKyAgICAgKiBAc2VlICNzZXRQYWRFc2NhcGUKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGFkRXNjYXBlKCkgeworICAgICAgICByZXR1cm4gcGFkRXNjYXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCBudW1iZXJzIG91dCB0byBhIHNwZWNpZmllZCB3aWR0aC4gIFRoaXMgaXMKKyAgICAgKiBub3QgdGhlIHBhZCBjaGFyYWN0ZXIgaXRzZWxmOyByYXRoZXIsIGl0IGlzIHRoZSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogPGVtPnByZWNlZGluZzwvZW0+IHRoZSBwYWQgY2hhcmFjdGVyLiAgSW4gdGhlIHBhdHRlcm4gIipfIywjIzAiLCAnKicgaXMKKyAgICAgKiB0aGUgcGFkIGVzY2FwZSwgYW5kICdfJyBpcyB0aGUgcGFkIGNoYXJhY3Rlci4KKyAgICAgKiBAc2VlICNnZXRQYWRFc2NhcGUKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkRXNjYXBlKGNoYXIgYykgeworICAgICAgICBwYWRFc2NhcGUgPSBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgLy8gb3RoZXIgZmllbGRzIGFyZSBiaXQtY29waWVkCisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgZXF1YWxzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHJldHVybiB0cnVlOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBvdGhlciA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgb2JqOworICAgICAgICByZXR1cm4gKHplcm9EaWdpdCA9PSBvdGhlci56ZXJvRGlnaXQgJiYKKyAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPT0gb3RoZXIuZ3JvdXBpbmdTZXBhcmF0b3IgJiYKKyAgICAgICAgZGVjaW1hbFNlcGFyYXRvciA9PSBvdGhlci5kZWNpbWFsU2VwYXJhdG9yICYmCisgICAgICAgIHBlcmNlbnQgPT0gb3RoZXIucGVyY2VudCAmJgorICAgICAgICBwZXJNaWxsID09IG90aGVyLnBlck1pbGwgJiYKKyAgICAgICAgZGlnaXQgPT0gb3RoZXIuZGlnaXQgJiYKKyAgICAgICAgbWludXNTaWduID09IG90aGVyLm1pbnVzU2lnbiAmJgorICAgICAgICBwYXR0ZXJuU2VwYXJhdG9yID09IG90aGVyLnBhdHRlcm5TZXBhcmF0b3IgJiYKKyAgICAgICAgaW5maW5pdHkuZXF1YWxzKG90aGVyLmluZmluaXR5KSAmJgorICAgICAgICBOYU4uZXF1YWxzKG90aGVyLk5hTikgJiYKKyAgICAgICAgY3VycmVuY3lTeW1ib2wuZXF1YWxzKG90aGVyLmN1cnJlbmN5U3ltYm9sKSAmJgorICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wuZXF1YWxzKG90aGVyLmludGxDdXJyZW5jeVN5bWJvbCkgJiYKKyAgICAgICAgcGFkRXNjYXBlID09IG90aGVyLnBhZEVzY2FwZSAmJiAvLyBbTkVXXQorICAgICAgICBwbHVzU2lnbiA9PSBvdGhlci5wbHVzU2lnbiAmJiAvLyBbTkVXXQorICAgICAgICBleHBvbmVudFNlcGFyYXRvci5lcXVhbHMob3RoZXIuZXhwb25lbnRTZXBhcmF0b3IpICYmIC8vIFtORVddCisgICAgICAgIG1vbmV0YXJ5U2VwYXJhdG9yID09IG90aGVyLm1vbmV0YXJ5U2VwYXJhdG9yKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gemVyb0RpZ2l0OworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyBncm91cGluZ1NlcGFyYXRvcjsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDM3ICsgZGVjaW1hbFNlcGFyYXRvcjsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIHN5bWJvbHMgZnJvbSB0aGUgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqIE5vdGU6IFRoZSBvcmdhbml6YXRpb24gb2YgTG9jYWxlRWxlbWVudHMgYmFkbHkgbmVlZHMgdG8gYmUKKyAgICAgKiBjbGVhbmVkIHVwLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplKCBVTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGUudG9Mb2NhbGUoKTsKKyAgICAgICAgdGhpcy51bG9jYWxlID0gbG9jYWxlOworCisgICAgICAgIC8qIHRyeSB0aGUgY2FjaGUgZmlyc3QgKi8KKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0gKFN0cmluZ1tdW10pIGNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIFN0cmluZ1tdIG51bWJlckVsZW1lbnRzOworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7ICAvKiBjYWNoZSBtaXNzICovCisgICAgICAgICAgICBkYXRhID0gbmV3IFN0cmluZ1sxXVtdOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgICAgICBkYXRhWzBdID0gcmIuZ2V0U3RyaW5nQXJyYXkoIk51bWJlckVsZW1lbnRzIik7CisgICAgICAgICAgICAvKiB1cGRhdGUgY2FjaGUgKi8KKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgZGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgbnVtYmVyRWxlbWVudHMgPSBkYXRhWzBdOworICAgICAgICAKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgciA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuCisgICAgICAgICAgICBnZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICAKKyAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIGFjdHVhbCBhbmQgdmFsaWQgbG9jYWxlIGNvcnJlY3RseS4KKyAgICAgICAgVUxvY2FsZSB1bG9jID0gci5nZXRVTG9jYWxlKCk7CisgICAgICAgIHNldExvY2FsZSh1bG9jLCB1bG9jKTsKKworICAgIC8vIHtkbGZ9IGNsZWFuIHVwIGJlbG93IG5vdyB0aGF0IHdlIGhhdmUgb3VyIG93biByZXNvdXJjZSBkYXRhCisgICAgICAgIGRlY2ltYWxTZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1swXS5jaGFyQXQoMCk7CisgICAgICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMV0uY2hhckF0KDApOworICAgICAgICAvLyBUZW1wb3JhcnkgaGFjayB0byBzdXBwb3J0IG9sZCBKREsgMS4xIHJlc291cmNlcworLy8gICAgICAgIHBhdHRlcm5TZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1syXS5sZW5ndGgoKSA+IDAgPworLy8gICAgICAgICAgICBudW1iZXJFbGVtZW50c1syXS5jaGFyQXQoMCkgOiAnOyc7CisgICAgICAgIHBhdHRlcm5TZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1syXS5jaGFyQXQoMCk7CisgICAgICAgIHBlcmNlbnQgPSBudW1iZXJFbGVtZW50c1szXS5jaGFyQXQoMCk7CisgICAgICAgIHplcm9EaWdpdCA9IG51bWJlckVsZW1lbnRzWzRdLmNoYXJBdCgwKTsgLy9kaWZmZXJlbnQgZm9yIEFyYWJpYyxldGMuCisgICAgICAgIGRpZ2l0ID0gbnVtYmVyRWxlbWVudHNbNV0uY2hhckF0KDApOworICAgICAgICBtaW51c1NpZ24gPSBudW1iZXJFbGVtZW50c1s2XS5jaGFyQXQoMCk7CisgICAgICAgIAorICAgICAgICAvLyBUZW1wb3JhcnkgaGFjayB0byBzdXBwb3J0IEpESyB2ZXJzaW9ucyBiZWZvcmUgMS4xLjYgKD8pCisvLyAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50cy5sZW5ndGggPj0gOSA/CisvLyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzddIDogRGVjaW1hbEZvcm1hdC5QQVRURVJOX0VYUE9ORU5UOworLy8gICAgICAgIHBlck1pbGwgPSBudW1iZXJFbGVtZW50cy5sZW5ndGggPj0gOSA/CisvLyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzhdLmNoYXJBdCgwKSA6ICdcdTIwMzAnOworLy8gICAgICAgIGluZmluaXR5ICA9IG51bWJlckVsZW1lbnRzLmxlbmd0aCA+PSAxMCA/CisvLyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzldIDogIlx1MjIxZSI7CisvLyAgICAgICAgTmFOID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDExID8KKy8vICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbMTBdIDogIlx1ZmZmZCI7CisgICAgICAgIGV4cG9uZW50U2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbN107CisgICAgICAgIHBlck1pbGwgPSBudW1iZXJFbGVtZW50c1s4XS5jaGFyQXQoMCk7CisgICAgICAgIGluZmluaXR5ID0gbnVtYmVyRWxlbWVudHNbOV07CisgICAgICAgIE5hTiA9IG51bWJlckVsZW1lbnRzWzEwXTsKKyAgICAgICAgCisgICAgICAgIHBsdXNTaWduICA9bnVtYmVyRWxlbWVudHNbMTFdLmNoYXJBdCgwKTsKKyAgICAgICAgcGFkRXNjYXBlID0gRGVjaW1hbEZvcm1hdC5QQVRURVJOX1BBRF9FU0NBUEU7CisgICAgICAgIHNpZ0RpZ2l0ICA9IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9TSUdOSUZJQ0FOVF9ESUdJVDsKKyAgICAgICAgCisgICAgICAgIC8vIE9idGFpbiBjdXJyZW5jeSBkYXRhIGZyb20gdGhlIGN1cnJlbmN5IEFQSS4gIFRoaXMgaXMgc3RyaWN0bHkKKyAgICAgICAgLy8gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk7IHdlIGRvbid0IHVzZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAgICAvLyBmb3IgY3VycmVuY3kgZGF0YSBhbnltb3JlLgorICAgICAgICBTdHJpbmcgY3Vycm5hbWUgPSBudWxsOworICAgICAgICBjdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wgPSBjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCA9IG5ldyBib29sZWFuWzFdOworICAgICAgICAgICAgY3Vycm5hbWUgPSBjdXJyZW5jeS5nZXROYW1lKGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5LlNZTUJPTF9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaG9pY2VGb3JtYXQpOworICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIENob2ljZUZvcm1hdCBjdXJyZW5jeSwgdGhlbiBmb3JtYXQgYW4KKyAgICAgICAgICAgIC8vIGFyYml0cmFyeSB2YWx1ZTsgcGljayBzb21ldGhpbmcgIT0gMTsgbW9yZSBjb21tb24uCisgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGlzQ2hvaWNlRm9ybWF0WzBdCisgICAgICAgICAgICAgICAgPyBuZXcgQ2hvaWNlRm9ybWF0KGN1cnJuYW1lKS5mb3JtYXQoMi4wKQorICAgICAgICAgICAgICAgIDogY3Vycm5hbWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wgPSAiWFhYIjsKKyAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sID0gIlx1MDBBNCI7IC8vICdPWCcgY3VycmVuY3kgc3ltYm9sCisgICAgICAgIH0KKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjdXJyZW5jeSBkZWNpbWFsLCB1c2UgaXQuCisgICAgICAgIG1vbmV0YXJ5U2VwYXJhdG9yID0gZGVjaW1hbFNlcGFyYXRvcjsKKyAgICAgICAgbW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvciA9IGdyb3VwaW5nU2VwYXJhdG9yOworICAgICAgICBDdXJyZW5jeSBjdXJyID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgaWYoY3VyciE9bnVsbCl7CisgICAgICAgICAgICBTdHJpbmcgY3VycmVuY3lDb2RlID0gY3Vyci5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgICAgIGlmKGN1cnJlbmN5Q29kZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLyogQW4gZXhwbGljaXQgY3VycmVuY3kgd2FzIHJlcXVlc3RlZCAqLworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlc291cmNlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbmN5ID0gcmVzb3VyY2UuZ2V0V2l0aEZhbGxiYWNrKCJDdXJyZW5jaWVzIik7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9IGN1cnJlbmN5LmdldFdpdGhGYWxsYmFjayhjdXJyZW5jeUNvZGUpOworICAgICAgICAgICAgICAgICAgICBpZihjdXJyZW5jeS5nZXRTaXplKCk+MikgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSBjdXJyZW5jeS5nZXQoMik7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVBhdHRlcm4gPSBjdXJyZW5jeS5nZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IGN1cnJlbmN5LmdldFN0cmluZygxKS5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yID0gY3VycmVuY3kuZ2V0U3RyaW5nKDIpLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICAvKiBlbHNlIEFuIGV4cGxpY2l0IGN1cnJlbmN5IHdhcyByZXF1ZXN0ZWQgYW5kIGlzIHVua25vd24gb3IgbG9jYWxlIGRhdGEgaXMgbWFsZm9ybWVkLiAqLworICAgICAgICAgICAgICAgICAgICAvKiBkZWNpbWFsIGZvcm1hdCBBUEkgd2lsbCBnZXQgdGhlIGNvcnJlY3QgdmFsdWUgbGF0ZXIgb24uICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogZWxzZSBubyBjdXJyZW5jeSBrZXl3b3JkIHVzZWQuICovCisgICAgICAgIH0KKyAgICAgICAgLy9tb25ldGFyeVNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzExXS5jaGFyQXQoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhZCB0aGUgZGVmYXVsdCBzZXJpYWxpemFibGUgZmllbGRzLCB0aGVuIGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4KKyAgICAgKiBpcyBsZXNzIHRoYW4gMSwgaW5pdGlhbGl6ZSA8Y29kZT5tb25ldGFyeVNlcGFyYXRvcjwvY29kZT4gdG8gYmUKKyAgICAgKiB0aGUgc2FtZSBhcyA8Y29kZT5kZWNpbWFsU2VwYXJhdG9yPC9jb2RlPiBhbmQgPGNvZGU+ZXhwb25lbnRpYWw8L2NvZGU+CisgICAgICogdG8gYmUgJ0UnLgorICAgICAqIEZpbmFsbHksIHNldCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gYmFjayB0byB0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIHNvIHRoYXQKKyAgICAgKiBkZWZhdWx0IHNlcmlhbGl6YXRpb24gd2lsbCB3b3JrIHByb3Blcmx5IGlmIHRoaXMgb2JqZWN0IGlzIHN0cmVhbWVkIG91dCBhZ2Fpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gVE9ETzogaXQgbG9va3MgdG8gbWUge2RsZn0gdGhhdCB0aGUgc2VyaWFsaXphdGlvbiBjb2RlIHdhcyBuZXZlciB1cGRhdGVkCisgICAgICAgIC8vIHRvIGhhbmRsZSB0aGUgYWN0dWFsL3ZhbGlkIHVsb2NhbGUgZmllbGRzLgorCisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgZGF0YSBmb3IgdGhlc2Ugb2xkIHNlcmlhbGl6ZWQgZm9ybXMgYW55IG1vcmUKKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDEpIHsKKyAgICAgICAgICAgIC8vIERpZG4ndCBoYXZlIG1vbmV0YXJ5U2VwYXJhdG9yIG9yIGV4cG9uZW50aWFsIGZpZWxkOworICAgICAgICAgICAgLy8gdXNlIGRlZmF1bHRzLgorICAgICAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yOworICAgICAgICAgICAgZXhwb25lbnRpYWwgPSAnRSc7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDIpIHsKKyAgICAgICAgICAgIHBhZEVzY2FwZSA9IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9QQURfRVNDQVBFOworICAgICAgICAgICAgcGx1c1NpZ24gPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fUExVU19TSUdOOworICAgICAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IgPSBTdHJpbmcudmFsdWVPZihleHBvbmVudGlhbCk7CisgICAgICAgICAgICAvLyBBbHRob3VnaCB3ZSByZWFkIHRoZSBleHBvbmVudGlhbCBmaWVsZCBvbiBzdHJlYW0gdG8gY3JlYXRlIHRoZQorICAgICAgICAgICAgLy8gZXhwb25lbnRTZXBhcmF0b3IsIHdlIGRvbid0IGRvIHRoZSByZXZlcnNlLCBzaW5jZSBzY2llbnRpZmljCisgICAgICAgICAgICAvLyBub3RhdGlvbiBpc24ndCBzdXBwb3J0ZWQgYnkgdGhlIG9sZCBjbGFzc2VzLCBldmVuIHRob3VnaCB0aGUKKyAgICAgICAgICAgIC8vIHN5bWJvbCBpcyB0aGVyZS4KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDMpIHsKKyAgICAgICAgICAgIC8vIFJlc3VycmVjdGVkIG9iamVjdHMgZnJvbSBvbGQgc3RyZWFtcyB3aWxsIGhhdmUgbm8KKyAgICAgICAgICAgIC8vIGxvY2FsZS4gIFRoZXJlIGlzIG5vIDEwMCUgZml4IGZvciB0aGlzLiAgQQorICAgICAgICAgICAgLy8gOTAlIGZpeCBpcyB0byBjb25zdHJ1Y3QgYSBtYXBwaW5nIG9mIGRhdGEgYmFjayB0bworICAgICAgICAgICAgLy8gbG9jYWxlLCBwZXJoYXBzIGEgaGFzaCBvZiBhbGwgb3VyIG1lbWJlcnMuICBUaGlzIGlzCisgICAgICAgICAgICAvLyBleHBlbnNpdmUgYW5kIGRvZXNuJ3Qgc2VlbSB3b3J0aCBpdC4KKyAgICAgICAgICAgIGxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDQpIHsKKyAgICAgICAgICAgIC8vIHVzZSBzYW1lIGRlZmF1bHQgYmVoYXZpb3IgYXMgZm9yIHZlcnNpb25zIHdpdGggbm8gTG9jYWxlCisgICAgICAgICAgICB1bG9jYWxlID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKTsKKyAgICAgICAgfQkJICAgCisJCWlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCA1KSB7CisJCQkvLyB1c2UgdGhlIHNhbWUgb25lIGZvciBncm91cGluZ1NlcGFyYXRvcgorCQkJbW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvciA9IGdyb3VwaW5nU2VwYXJhdG9yOworICAgICAgICB9CisgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisJLy8gcmVjcmVhdGUKKwljdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGludGxDdXJyZW5jeVN5bWJvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0WmVyb0RpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICB6ZXJvRGlnaXQ7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZ3JvdXBpbmdTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgZGVjaW1hbCBzaWduLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldERlY2ltYWxTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGRlY2ltYWxTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgbWlsbGUgcGVyY2VudCBzaWduLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFBlck1pbGwKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIHBlck1pbGw7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgcGVyY2VudCBzaWduLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQZXJjZW50CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwZXJjZW50OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldERpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBkaWdpdDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciBhIHNpZ25pZmljYW50IGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRTaWduaWZpY2FudERpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBzaWdEaWdpdDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICAgICAqIGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQYXR0ZXJuU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwYXR0ZXJuU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRJbmZpbml0eQorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgaW5maW5pdHk7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgTmFOLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROYU4KKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIE5hTjsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW51c1NpZ24KKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIG1pbnVzU2lnbjsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3ksIGUuZy4gIiQiLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRDdXJyZW5jeVN5bWJvbAorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgY3VycmVuY3lTeW1ib2w7CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3ksIGUuZy4gIlVTRCIuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbAorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgaW50bEN1cnJlbmN5U3ltYm9sOworCisgICAgLyoqCisgICAgICogVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGN1cnJlbmN5IHZhbHVlcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBtb25ldGFyeVNlcGFyYXRvcjsgLy8gRmllbGQgbmV3IGluIEpESyAxLjEuNgorCisgICAgLyoqCisgICAgICogVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGN1cnJlbmN5IHZhbHVlcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgbW9uZXRhcnlHcm91cGluZ1NlcGFyYXRvcjsgLy8gRmllbGQgbmV3IGluIEpESyAxLjEuNgorCisgICAgLyoqCisgICAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIGRpc3Rpbmd1aXNoIHRoZSBleHBvbmVudCBpbiBhIG51bWJlciBmb3JtYXR0ZWQKKyAgICAgKiBpbiBleHBvbmVudGlhbCBub3RhdGlvbiwgZS5nLiAnRScgZm9yIGEgbnVtYmVyIHN1Y2ggYXMgIjEuMjNFNDUiLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCB0aGlzIGZpZWxkIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkgPGNvZGU+ZXhwb25lbnRTZXBhcmF0b3I8L2NvZGU+LgorICAgICAqIEl0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZXhwb25lbnRpYWw7ICAgICAgIC8vIEZpZWxkIG5ldyBpbiBKREsgMS4xLjYKKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbWFudGlzc2EgZnJvbSB0aGUgZXhwb25lbnQuCisgICAgICogRXhhbXBsZXM6ICJ4MTBeIiBmb3IgMS4yM3gxMF40LCAiRSIgZm9yIDEuMjNFNC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBzdXBlcnNlZGVzIHRoZSA8Y29kZT5leHBvbmVudGlhbDwvY29kZT4gZmllbGQuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBleHBvbmVudFNlcGFyYXRvcjsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gaW5kaWNhdGUgYSBwYWRkaW5nIGNoYXJhY3RlciBpbiBhIGZvcm1hdCwKKyAgICAgKiBlLmcuLCAnKicgaW4gYSBwYXR0ZXJuIHN1Y2ggYXMgIiQqXyMsIyMwLjAwIi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgcGFkRXNjYXBlOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBpbmRpY2F0ZSBhIHBsdXMgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgcGx1c1NpZ247CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQuICBTZXQgdG8gdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUgZm9yIG9iamVjdHMgcmVzdXJyZWN0ZWQgZnJvbSBvbGQgc3RyZWFtcy4KKyAgICAgKiBAc2luY2UgSUNVIDIuMgorICAgICAqLworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSByZXF1ZXN0ZWQgVUxvY2FsZS4gIFdlIGtlZXAgdGhlIG9sZCBsb2NhbGUgZm9yIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eS4KKyAgICAgKiBAc2luY2UgSURVIDMuMgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB1bG9jYWxlOworCisgICAgLy8gUHJvY2xhaW0gSkRLIDEuMSBGQ1MgY29tcGF0aWJpbGl0eQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU3NzI3OTYyNDMzOTczNTAzMDBMOworCisgICAgLy8gVGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS41CisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS42LCB3aGljaCBpbmNsdWRlcyB0d28gbmV3IGZpZWxkczoKKyAgICAvLyAgICAgbW9uZXRhcnlTZXBhcmF0b3IgYW5kIGV4cG9uZW50aWFsLgorICAgIC8vIC0gMiBmb3IgdmVyc2lvbiBmcm9tIEFscGhhV29ya3MsIHdoaWNoIGluY2x1ZGVzIDMgbmV3IGZpZWxkczoKKyAgICAvLyAgICAgcGFkRXNjYXBlLCBleHBvbmVudFNlcGFyYXRvciwgYW5kIHBsdXNTaWduLgorICAgIC8vIC0gMyBmb3IgSUNVIDIuMiwgd2hpY2ggaW5jbHVkZXMgdGhlIGxvY2FsZSBmaWVsZAorICAgIC8vIC0gNCBmb3IgSUNVIDMuMiwgd2hpY2ggaW5jbHVkZXMgdGhlIFVMb2NhbGUgZmllbGQKKyAgICAvLyAtIDUgZm9yIElDVSAzLjYsIHdoaWNoIGluY2x1ZGVzIHRoZSBtb25ldGFyeUdyb3VwaW5nU2VwYXJhdG9yIGZpZWxkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gNTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXNjcmliZXMgdGhlIHZlcnNpb24gb2YgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IHByZXNlbnQgb24gdGhlIHN0cmVhbS4KKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+MDwvYj4gKG9yIHVuaW5pdGlhbGl6ZWQpOiB2ZXJzaW9ucyBwcmlvciB0byBKREsgMS4xLjYuCisgICAgICoKKyAgICAgKiA8bGk+PGI+MTwvYj46IFZlcnNpb25zIHdyaXR0ZW4gYnkgSkRLIDEuMS42IG9yIGxhdGVyLCB3aGljaCBpbmNsdWRlcworICAgICAqICAgICAgdHdvIG5ldyBmaWVsZHM6IDxjb2RlPm1vbmV0YXJ5U2VwYXJhdG9yPC9jb2RlPiBhbmQgPGNvZGU+ZXhwb25lbnRpYWw8L2NvZGU+LgorICAgICAqIDxsaT48Yj4yPC9iPjogVmVyc2lvbiBmb3IgQWxwaGFXb3Jrcy4gIEFkZHMgcGFkRXNjYXBlLCBleHBvbmVudFNlcGFyYXRvciwKKyAgICAgKiAgICAgIGFuZCBwbHVzU2lnbi4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCBhIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiwgdGhlIG1vc3QgcmVjZW50IGZvcm1hdAorICAgICAqIChjb3JyZXNwb25kaW5nIHRvIHRoZSBoaWdoZXN0IGFsbG93YWJsZSA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+KQorICAgICAqIGlzIGFsd2F5cyB3cml0dGVuLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLyoqCisgICAgICogY2FjaGUgdG8gaG9sZCB0aGUgTnVtYmVyRWxlbWVudHMgb2YgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworICAgIAorICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBjdXJyZW5jeVBhdHRlcm4gPSBudWxsOworICAgIAorICAgIC8vIC0tLS0tLS0tIEJFR0lOIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbG9jYWxlIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoaXMgb2JqZWN0LCBvciBudWxsLgorICAgICAqIFRoaXMgbWF5IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWxlIHJlcXVlc3RlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoaXMgb2JqZWN0J3MgY3JlYXRpb24uICBGb3IgZXhhbXBsZSwgaWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQKKyAgICAgKiBmb3IgbG9jYWxlIDx0dD5lbl9VU19DQUxJRk9STklBPC90dD4sIHRoZSBhY3R1YWwgZGF0YSBtYXkgYmUKKyAgICAgKiBkcmF3biBmcm9tIDx0dD5lbjwvdHQ+ICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLCBhbmQKKyAgICAgKiA8dHQ+ZW5fVVM8L3R0PiBtYXkgYmUgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIHRoYXQgZXhpc3RzICh0aGUKKyAgICAgKiA8aT52YWxpZDwvaT4gbG9jYWxlKS4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVIDMuMDsgSUNVIDIuOAorICAgICAqIGNvbnRhaW5zIGEgcGFydGlhbCBwcmV2aWV3IGltcGxlbWVudGF0aW9uLiAgVGhlICogPGk+YWN0dWFsPC9pPgorICAgICAqIGxvY2FsZSBpcyByZXR1cm5lZCBjb3JyZWN0bHksIGJ1dCB0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSBpcworICAgICAqIG5vdCwgaW4gbW9zdCBjYXNlcy4KKyAgICAgKiBAcGFyYW0gdHlwZSB0eXBlIG9mIGluZm9ybWF0aW9uIHJlcXVlc3RlZCwgZWl0aGVyIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEV9IG9yIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFfS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgPGk+dHlwZTwvaT4sIG9yIG51bGwgaWYKKyAgICAgKiB0aGlzIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVUxvY2FsZSBnZXRMb2NhbGUoVUxvY2FsZS5UeXBlIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVUxvY2FsZS5BQ1RVQUxfTE9DQUxFID8KKyAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlIDogdGhpcy52YWxpZExvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIG5vdCBzZXJpYWxpemVkLCByZWNvbnN0cnVjdGVkIGZyb20gaW50bEN1cnJlbmN5Q29kZQorICAgIHByaXZhdGUgdHJhbnNpZW50IEN1cnJlbmN5IGN1cnJlbmN5OworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY29tcERhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY29tcERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWI3YzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjb21wRGF0YS5qYXZhCkBAIC0wLDAgKzEsNzQ1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiA+IFRISVMgRklMRSBXQVMgTUFDSElORSBHRU5FUkFURUQgPAorKiA+ICAgICAgIERPIE5PVCBFRElUIEJZIEhBTkQgICAgICAgPAorKiA+ICAgICAgUlVOIFRPT0wgVE8gUkVHRU5FUkFURSAgICAgPAorKiBUb29sOiBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIKKyogQ3JlYXRpb24gZGF0ZTogVHVlIEp1bCAxOCAxMTowNToyOCBQRFQgMjAwMAorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworY2xhc3MgRGVjb21wRGF0YSB7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ0FOT05JQ0FMID0gMjE3NTQ7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUEFUID0gMTExNzc7CisgICAgc3RhdGljIGZpbmFsIGludCBERUNPTVBfTUFTSyA9IDMyNzY3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX1JFQ1VSU0UgPSAzMjc2ODsKKyAgICBzdGF0aWMgZmluYWwgc2hvcnQgQkFTRSA9IDA7CisKKyAgICBzdGF0aWMgZmluYWwgQ29tcGFjdENoYXJBcnJheSBvZmZzZXRzID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoCisgICAgICAgICJcMDAwXHUwODAwXHVBNUE1XDAwNVwwMDAgQGBcdTAwODBcdTAwQTBcdTAwQzBcdTAwRTBcMDAwXHUwMTAwXHUwMTIwXHUwMTQwIisKKyAgICAgICAgIlx1MDE2MFx1MDE4MFwwMDBcMDAwXDAwMFx1MDFBMFx1MDFDMFx1MDFFMFwwMDBcMDAwXHUwMjAwXHUwMjIwXHUwMjQwXHUwMjYwIisKKyAgICAgICAgIlx1MDI4MFx1MDJBMFx1MDJDMFx1MDJFMFx1MDMwMFx1MDMyMFwwMDBcMDAwXHUwMzQwXHUwMzYwXHVBNUE1XDAwNFwwMDAiKworICAgICAgICAiXHUwMzgwXHVBNUE1XDAwNFwwMDBcdTAzQTBcMDAwXHUwM0MwXDAwMFwwMDBcdTAzRTBcdUE1QTVcMDIyXDAwMFx1MDQwMCIrCisgICAgICAgICJcdTA0MjBcMDAwXDAwMFwwMDBcdTA0NDBcMDAwXDAwMFx1MDQ2MFx1MDQ4MFx1QTVBNVwwMDdcMDAwXHUwNEEwXDAwMFx1MDRDMCIrCisgICAgICAgICJcMDAwXHUwNEUwXDAwMFwwMDBcMDAwXHUwNTAwXDAwMFwwMDBcMDAwXHUwNTIwXDAwMFwwMDBcMDAwXHUwNTQwXDAwMFwwMDAiKworICAgICAgICAiXDAwMFx1MDU2MFwwMDBcMDAwXHUwNTgwXDAwMFwwMDBcMDAwXHUwNUEwXHUwNUMwXDAwMFx1MDVFMFwwMDBcdTA2MDBcdTA2MjAiKworICAgICAgICAiXHUwNjQwXHUwNjYwXDAwMFwwMDBcMDAwXHUwNjgwXHVBNUE1blwwMDBcdTA2QTBcdTA2QzBcdTA2RTBcdTA3MDBcdTA3MjAiKworICAgICAgICAiXHUwNzQwXHUwNzYwXHUwNzgwXHUwN0EwXHUwN0MwXHUwN0UwXHUwODAwXHUwODIwXHUwODQwXHUwODYwXHUwODgwXHUwOEEwIisKKyAgICAgICAgIlx1MDhDMFx1MDhFMFx1MDkwMFx1MDkyMFx1MDk0MFwwMDBcMDAwXHUwOTYwXHUwOTgwXHUwOUEwXHUwOUMwXHUwOUUwXHUwQTAwIisKKyAgICAgICAgIlx1MEEyMFwwMDBcdTBBNDBcdTBBNjBcdTBBODBcdTBBQTBcdTBBQzBcdTBBRTBcMDAwXHUwQjAwXDAwMFx1MEIyMFx1QTVBNSIrCisgICAgICAgICJcMDExXDAwMFx1MEI0MFx1MEI2MFx1MEI4MFx1MEJBMFx1MEJDMFx1QTVBNUxcMDAwXHUwQkUwXDAwMFwwMDBcdTBDMDAiKworICAgICAgICAiXHUwQzIwXHUwQzQwXHUwQzYwXHUwQzgwXHUwQ0EwXHUwQ0MwXHUwQ0UwXDAwMFx1MEQwMFx1MEQyMFx1MEQ0MFx1MEQ2MCIrCisgICAgICAgICJcdTBEODBcdTBEQTBcdTBEQzBcdTBERTBcMDAwXHUwRTAwXHUwRTIwXHUwRTQwXHUwRTYwXDAwMFwwMDBcMDAwXHUwRTgwIisKKyAgICAgICAgIlx1MEVBMFx1MEVDMFx1MEVFMFx1MEYwMFx1MEYyMFx1MEY0MFx1MEY2MFx1MEY4MFx1MEZBMFx1MEZDMFx1MEZFMFx1MTAwMCIrCisgICAgICAgICJcdTEwMjBcdTEwNDBcdTEwNjBcdUE1QTVcdTA2MjhcMDAwXHUxMDgwXHUxMEEwXHUxMEMwXHUxMEUwXHUxMTAwXHUxMTIwIisKKyAgICAgICAgIlx1MTE0MFx1MTE2MFx1MTE4MFx1MTFBMFx1QTVBNVwwMDZcMDAwXHUxMUMwXHUxMUUwXHUxMjAwXHUxMjIwXHUxMjQwXHUxMjYwIisKKyAgICAgICAgIlx1MTI4MFx1MTJBMFx1MTJDMFx1MTJFMFx1MTMwMFx1MTMyMFx1MTM0MFx1MTM2MFx1MTM4MFx1MTNBMFx1MTNDMFx1MTNFMCIrCisgICAgICAgICJcdTE0MDBcdTE0MjBcdTE0NDBcdTE0NjBcdTE0ODBcdTE0QTBcMDAwXHUxNEMwXHUxNEUwXHUxNTAwXHUxNTIwXHUxNTQwIisKKyAgICAgICAgIlx1MTU2MFx1MTU4MFx1MTVBMFx1MTVDMFx1MTVFMFx1MTYwMFx1MTYyMFx1MTY0MFx1MTY2MFx1MTY4MCIKKyAgICAgICAgLAorICAgICAgICAiXDAwMFx1MTZBMFx1QTVBNSBcMDAwXDAwNVx1QTVBNVwwMDdcMDAwXDAxMlwwMDBcMDIxXHVBNUE1XDAwNFwwMDBcMDI2IisKKyAgICAgICAgIlwwMDBcMDAwXDAzNSEmLVwwMDBcMDAwMjk9XDAwMENPW1wwMDBcdTJCQUVcdTJCQjZcdTJCQkVcdTJCQzZcdTJCQ0VcdTJCRDYiKworICAgICAgICAiXDAwMFx1MkJERVx1MkJFNlx1MkJFRVx1MkJGNlx1MkJGRVx1MkMwNlx1MkMwRVx1MkMxNlx1MkMxRVwwMDBcdTJDMjZcdTJDMkUiKworICAgICAgICAiXHUyQzM2XHUyQzNFXHUyQzQ2XHUyQzRFXDAwMFwwMDBcdTJDNTZcdTJDNUVcdTJDNjZcdTJDNkVcdTJDNzZcMDAwXDAwMCIrCisgICAgICAgICJcdTJDN0VcdTJDODZcdTJDOEVcdTJDOTZcdTJDOUVcdTJDQTZcMDAwXHUyQ0FFXHUyQ0I2XHUyQ0JFXHUyQ0M2XHUyQ0NFIisKKyAgICAgICAgIlx1MkNENlx1MkNERVx1MkNFNlx1MkNFRVwwMDBcdTJDRjZcdTJDRkVcdTJEMDZcdTJEMEVcdTJEMTZcdTJEMUVcMDAwXDAwMCIrCisgICAgICAgICJcdTJEMjZcdTJEMkVcdTJEMzZcdTJEM0VcdTJENDZcMDAwXHUyRDRFXHUyRDU2XHUyRDVFXHUyRDY2XHUyRDZFXHUyRDc2IisKKyAgICAgICAgIlx1MkQ3RVx1MkQ4Nlx1MkQ4RVx1MkQ5Nlx1MkQ5RVx1MkRBNlx1MkRBRVx1MkRCNlx1MkRCRVx1MkRDNlx1MkRDRVwwMDAiKworICAgICAgICAiXDAwMFx1MkRENlx1MkRERVx1MkRFNlx1MkRFRVx1MkRGNlx1MkRGRVx1MkUwNlx1MkUwRVx1MkUxNlx1MkUxRVx1MkUyNiIrCisgICAgICAgICJcdTJFMkVcdTJFMzZcdTJFM0VcdTJFNDZcdTJFNEVcdTJFNTZcdTJFNUVcdTJFNjZcdTJFNkVcMDAwXDAwMFx1MkU3Nlx1MkU3RSIrCisgICAgICAgICJcdTJFODZcdTJFOEVcdTJFOTZcdTJFOUVcdTJFQTZcdTJFQUVcdTJFQjZcMDAwZm5cdTJFQkVcdTJFQzZcdTJFQ0VcdTJFRDYiKworICAgICAgICAiXDAwMFx1MkVERVx1MkVFNlx1MkVFRVx1MkVGNlx1MkVGRVx1MkYwNnZ+XDAwMFwwMDBcdTJGMEVcdTJGMTZcdTJGMUVcdTJGMjYiKworICAgICAgICAiXHUyRjJFXHUyRjM2XHUwMDg2XDAwMFwwMDBcdTJGM0VcdTJGNDZcdTJGNEVcdTJGNTZcdTJGNUVcdTJGNjZcMDAwXDAwMCIrCisgICAgICAgICJcdTJGNkVcdTJGNzZcdTJGN0VcdTJGODZcdTJGOEVcdTJGOTZcdTJGOUVcdTJGQTZcdTJGQUVcdTJGQjZcdTJGQkVcdTJGQzYiKworICAgICAgICAiXHUyRkNFXHUyRkQ2XHUyRkRFXHUyRkU2XHUyRkVFXHUyRkY2XDAwMFwwMDBcdTJGRkVcdTMwMDZcdTMwMEVcdTMwMTZcdTMwMUUiKworICAgICAgICAiXHUzMDI2XHUzMDJFXHUzMDM2XHUzMDNFXHUzMDQ2XHUzMDRFXHUzMDU2XHUzMDVFXHUzMDY2XHUzMDZFXHUzMDc2XHUzMDdFIisKKyAgICAgICAgIlx1MzA4Nlx1MzA4RVx1MzA5Nlx1MzA5RVx1MzBBNlx1MzBBRVx1MDA4RFx1MzBCNlx1MzBCRVx1QTVBNVwwMTVcMDAwXHUzMEM2IisKKyAgICAgICAgIlx1MzBDRVx1QTVBNVwwMjNcMDAwXHUwMDkzXHUwMDlGXHUwMEFCXHUwMEI2XHUwMEJFXHUwMEM2XHUwMENFXHUwMEQ2XHUwMERFIisKKyAgICAgICAgIlx1MzBENlx1MzBERVx1MzBFNlx1MzBFRVx1MzBGNlx1MzBGRVx1MzEwNlx1MzEwRVx1MzExN1x1MzEyM1x1MzEyRlx1MzEzQiIrCisgICAgICAgICJcdTMxNDdcdTMxNTNcdTMxNUZcdTMxNkJcMDAwXHUzMTc3XHUzMTgzXHUzMThGXHUzMTlCXHUzMUE2XHUzMUFFXDAwMFwwMDAiKworICAgICAgICAiXHUzMUI2XHUzMUJFXHUzMUM2XHUzMUNFXHUzMUQ2XHUzMURFXHUzMUU3XHUzMUYzXHUzMUZFXHUzMjA2XHUzMjBFXHUwMDkyIisKKyAgICAgICAgIlx1MDA5RVx1MDBBQVx1MzIxNlx1MzIxRVwwMDBcMDAwXHUzMjI2XHUzMjJFXHUzMjM3XHUzMjQzXHUzMjRFXHUzMjU2XHUzMjVFIisKKyAgICAgICAgIlx1MzI2Nlx1MzI2RVx1MzI3Nlx1MzI3RVx1MzI4Nlx1MzI4RVx1MzI5Nlx1MzI5RVx1MzJBNlx1MzJBRVx1MzJCNlx1MzJCRSIrCisgICAgICAgICJcdTMyQzZcdTMyQ0VcdTMyRDZcdTMyREVcdTMyRTZcdTMyRUVcdTMyRjZcdTMyRkVcdTMzMDZcdTMzMEVcdTMzMTZcdTMzMUUiKworICAgICAgICAiXHUzMzI2XHUzMzJFXHUzMzM2XHUzMzNFXHUzMzQ2XDAwMFwwMDBcdTMzNEVcdTMzNTZcdUE1QTVcMDA2XDAwMFx1MzM1RSIrCisgICAgICAgICJcdTMzNjZcdTMzNkVcdTMzNzZcdTMzN0ZcdTMzOEJcdTMzOTdcdTMzQTNcdTMzQUVcdTMzQjZcdTMzQkZcdTMzQ0JcdTMzRDYiKworICAgICAgICAiXHUzM0RFXHVBNUE1XDAzNFwwMDBcdTAwRTVcdTAwRTlxXHUwMEVEXHUwMEYxXHUwMEY1XHUwMEY5XHUwMEZEXHUwMTAxIisKKyAgICAgICAgIlx1QTVBNVwwMzdcMDAwXHUwMTA2XHUwMTBFXHUwMTE2XHUwMTFFXHUwMTI2XHUwMTJFXDAwMFwwMDBcdTAxMzV9XHUwMDhEIisKKyAgICAgICAgIlx1MDEzOVx1MDEzRFx1QTVBNVwwMzNcMDAwXHUzM0U1XHUzM0U5XDAwMFx1MzNFRFx1MzNGMlx1QTVBNS9cMDAwXHUzM0Y5IisKKyAgICAgICAgIlx1QTVBNVwwMDVcMDAwXHUwMTQyXDAwMFwwMDBcMDAwXHUzM0ZEXHVBNUE1XDAwNVwwMDAmXHVCNDAyXHUzNDBBXHUzNDExIisKKyAgICAgICAgIlx1MzQxNlx1MzQxRVx1MzQyNlwwMDBcdTM0MkVcMDAwXHUzNDM2XHUzNDNFXHUzNDQ3XHVBNUE1XDAzMVwwMDBcdTM0NTIiKworICAgICAgICAiXHUzNDVBXHUzNDYyXHUzNDZBXHUzNDcyXHUzNDdBXHUzNDgzXHVBNUE1XDAzMVwwMDBcdTM0OEVcdTM0OTZcdTM0OUVcdTM0QTYiKworICAgICAgICAiXHUzNEFFXDAwMFx1MDE0OVx1MDE0RFx1MDE1MVx1QjRCNlx1QjRCRVx1MDE1NVx1MDE1OVx1QTVBNVwwMzFcMDAwXHUwMTVEIisKKyAgICAgICAgIlx1MDE2MVx1MDE2NVx1QTVBNVwwMTVcMDAwXHUzNEM2XHUzNENFXDAwMFx1MzRENlwwMDBcMDAwXDAwMFx1MzRERVx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1MzRFNlx1MzRFRVx1MzRGNlx1QTVBNVwwMTJcMDAwXHUzNEZFXHVBNUE1XDAzN1wwMDBcdTM1MDZcdUE1QTUiKworICAgICAgICAiXDAyNlwwMDBcdTM1MEVcdTM1MTZcMDAwXHUzNTFFXDAwMFwwMDBcMDAwXHUzNTI2XHVBNUE1XDAwNFwwMDBcdTM1MkVcdTM1MzYiKworICAgICAgICAiXHUzNTNFXHVBNUE1XDAyN1wwMDBcdTM1NDZcdTM1NEVcdUE1QTVcMDExXDAwMFx1MzU1Nlx1MzU1RVx1QTVBNVwwMTVcMDAwIisKKyAgICAgICAgIlx1MzU2Nlx1MzU2RVx1MzU3Nlx1MzU3RVwwMDBcMDAwXHUzNTg2XHUzNThFXDAwMFwwMDBcdTM1OTZcdTM1OUVcdTM1QTYiKworICAgICAgICAiXHUzNUFFXHUzNUI2XHUzNUJFXDAwMFwwMDBcdTM1QzZcdTM1Q0VcdTM1RDZcdTM1REVcdTM1RTZcdTM1RUVcMDAwXDAwMCIrCisgICAgICAgICJcdTM1RjZcdTM1RkVcdTM2MDZcdTM2MEVcdTM2MTZcdTM2MUVcdTM2MjZcdTM2MkVcdTM2MzZcdTM2M0VcdTM2NDZcdTM2NEUiKworICAgICAgICAiXDAwMFwwMDBcdTM2NTZcdTM2NUVcdUE1QTVcMDE1XDAwMFx1MDE2QVx1QTVBNVwwMzJcMDAwXHUzNjY2XHUzNjZFXHUzNjc2IisKKyAgICAgICAgIlx1MzY3RVx1MzY4Nlx1QTVBNS5cMDAwXHUwMTcyXHUwMTdBXHUwMTgyXHUwMThBXHVBNUE1XDAwN1wwMDBcdTM2OEVcMDAwIisKKyAgICAgICAgIlx1MzY5Nlx1QTVBNVwwMjBcMDAwXHUzNjlFXHVBNUE1XDAyNVwwMDBcdTM2QTZcdUE1QTVcMDA3XDAwMFx1MzZBRVwwMDAiKworICAgICAgICAiXDAwMFx1MzZCNlx1QTVBNSNcMDAwXHUzNkJFXHUzNkM2XHUzNkNFXHUzNkQ2XHUzNkRFXHUzNkU2XHUzNkVFXHUzNkY2IisKKyAgICAgICAgIlx1QTVBNVwwMTNcMDAwXHUzNkZFXHUzNzA2XHVBNUE1XDAxN1wwMDBcdTM3MEVcdTM3MTZcMDAwXHUzNzFFXHVBNUE1XDAyMyIrCisgICAgICAgICJcMDAwXHUzNzI2XDAwMFwwMDBcdTM3MkVcdUE1QTVcMDQyXDAwMFx1MzczNlx1MzczRVx1Mzc0NlwwMDBcMDAwXHUzNzRFIisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUzNzU2XDAwMFwwMDBcdTM3NUVcdTM3NjZcdUE1QTVcMDE3XDAwMFx1Mzc2RVx1Mzc3Nlx1QTVBNSIrCisgICAgICAgICJcMDI2XDAwMFx1Mzc3RVx1QTVBNVwwMjVcMDAwXHUzNzg2XHUzNzhFXHUzNzk2XHVBNUE1XDAzM1wwMDBcdTM3OUVcdUE1QTUiKworICAgICAgICAiXDAyN1wwMDBcdTM3QTZcdUE1QTVcMDA2XDAwMFx1MzdBRVx1MzdCNlwwMDBcdTM3QkVcdTM3QzdcdUE1QTVcMDM2XDAwMCIrCisgICAgICAgICJcdTM3RDJcdTM3REFcdTM3RTJcdUE1QTUtXDAwMFx1MzdFQVwwMDBcdTM3RjJcdTM3RkJcdTM4MDZcdUE1QTVcMDI0XDAwMCIrCisgICAgICAgICJcdTAxOTJcdUE1QTVcMDM3XDAwMFx1MDE5QVx1QTVBNShcMDAwXHUwMUEyXHUwMUFBXHVBNUE1XDAxNlwwMDBcdTAxQjEiKworICAgICAgICAiXHVBNUE1XDAyNlwwMDBcdTM4MEVcdUE1QTVcMDExXDAwMFx1MzgxNlx1QTVBNVwwMDRcMDAwXHUzODFFXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHUzODI2XHVBNUE1XDAwNFwwMDBcdTM4MkVcdUE1QTVcMDE0XDAwMFx1MzgzNlx1QTVBNVwwMTFcMDAwXHUzODNFIisKKyAgICAgICAgIlwwMDBcdTM4NDZcdTM4NEVcdTAxQjdcdTM4NTZcdTAxQzNcdUE1QTVcMDA3XDAwMFx1Mzg1RVx1QTVBNVwwMjFcMDAwXHUzODY2IisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUzODZFXHVBNUE1XDAwNFwwMDBcdTM4NzZcdUE1QTVcMDA0XDAwMFx1Mzg3RVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1Mzg4Nlx1QTVBNVwwMTRcMDAwXHUzODhFXHVBNUE1XDAxNFwwMDBcdTM4OTZcdUE1QTVcMDMxXDAwMFx1Mzg5RSIrCisgICAgICAgICJcdTM4QTZcdTM4QUVcdTM4QjZcdTM4QkVcdTM4QzZcdTM4Q0VcdTM4RDZcdTM4REZcdTM4RUJcdTM4RjZcdTM4RkVcdTM5MDYiKworICAgICAgICAiXHUzOTBFXHUzOTE2XHUzOTFFXHUzOTI2XHUzOTJFXHUzOTM2XHUzOTNFXHUzOTQ3XHUzOTUzXHUzOTVGXHUzOTZCXHUzOTc2IisKKyAgICAgICAgIlx1Mzk3RVx1Mzk4Nlx1Mzk4RVx1Mzk5N1x1MzlBM1x1MzlBRVx1MzlCNlx1MzlCRVx1MzlDNlx1MzlDRVx1MzlENlx1MzlERSIrCisgICAgICAgICJcdTM5RTZcdTM5RUVcdTM5RjZcdTM5RkVcdTNBMDZcdTNBMEVcdTNBMTZcdTNBMUVcdTNBMjZcdTNBMkZcdTNBM0JcdTNBNDYiKworICAgICAgICAiXHUzQTRFXHUzQTU2XHUzQTVFXHUzQTY2XHUzQTZFXHUzQTc2XHUzQTdFXHUzQTg3XHUzQTkzXHUzQTlFXHUzQUE2XHUzQUFFIisKKyAgICAgICAgIlx1M0FCNlx1M0FCRVx1M0FDNlx1M0FDRVx1M0FENlx1M0FERVx1M0FFNlx1M0FFRVx1M0FGNlx1M0FGRVx1M0IwNlx1M0IwRSIrCisgICAgICAgICJcdTNCMTZcdTNCMUVcdTNCMjZcdTNCMkZcdTNCM0JcdTNCNDdcdTNCNTNcdTNCNUZcdTNCNkJcdTNCNzdcdTNCODNcdTNCOEUiKworICAgICAgICAiXHUzQjk2XHUzQjlFXHUzQkE2XHUzQkFFXHUzQkI2XHUzQkJFXHUzQkM2XHUzQkNGXHUzQkRCXHUzQkU2XHUzQkVFXHUzQkY2IisKKyAgICAgICAgIlx1M0JGRVx1M0MwNlx1M0MwRVx1M0MxN1x1M0MyM1x1M0MyRlx1M0MzQlx1M0M0N1x1M0M1M1x1M0M1RVx1M0M2Nlx1M0M2RSIrCisgICAgICAgICJcdTNDNzZcdTNDN0VcdTNDODZcdTNDOEVcdTNDOTZcdTNDOUVcdTNDQTZcdTNDQUVcdTNDQjZcdTNDQkVcdTNDQzZcdTNDQ0YiKworICAgICAgICAiXHUzQ0RCXHUzQ0U3XHUzQ0YzXHUzQ0ZFXHUzRDA2XHUzRDBFXHUzRDE2XHUzRDFFXHUzRDI2XHUzRDJFXHUzRDM2XHUzRDNFIisKKyAgICAgICAgIlx1M0Q0Nlx1M0Q0RVx1M0Q1Nlx1M0Q1RVx1M0Q2Nlx1M0Q2RVx1M0Q3Nlx1M0Q3RVx1M0Q4Nlx1M0Q4RVx1M0Q5Nlx1M0Q5RSIrCisgICAgICAgICJcdTNEQTZcdTNEQUVcdTNEQjZcdTNEQkVcdTNEQzZcdTNEQ0VcdTNERDZcdTNEREVcdTNERTZcdTAxQ0VcdUJERUVcdUE1QTUiKworICAgICAgICAiXDAwNFwwMDBcdTNERjZcdTNERkVcdTNFMDZcdTNFMEVcdTNFMTdcdTNFMjNcdTNFMkZcdTNFM0JcdTNFNDdcdTNFNTNcdTNFNUYiKworICAgICAgICAiXHUzRTZCXHUzRTc3XHUzRTgzXHUzRThGXHUzRTlCXHUzRUE3XHUzRUIzXHUzRUJGXHUzRUNCXHUzRUQ3XHUzRUUzXHUzRUVGIisKKyAgICAgICAgIlx1M0VGQlx1M0YwNlx1M0YwRVx1M0YxNlx1M0YxRVx1M0YyNlx1M0YyRVx1M0YzN1x1M0Y0M1x1M0Y0Rlx1M0Y1Qlx1M0Y2NyIrCisgICAgICAgICJcdTNGNzNcdTNGN0ZcdTNGOEJcdTNGOTdcdTNGQTNcdTNGQUVcdTNGQjZcdTNGQkVcdTNGQzZcdTNGQ0VcdTNGRDZcdTNGREUiKworICAgICAgICAiXHUzRkU2XHUzRkVGXHUzRkZCXHU0MDA3XHU0MDEzXHU0MDFGXHU0MDJCXHU0MDM3XHU0MDQzXHU0MDRGXHU0MDVCXHU0MDY3IisKKyAgICAgICAgIlx1NDA3M1x1NDA3Rlx1NDA4Qlx1NDA5N1x1NDBBM1x1NDBBRlx1NDBCQlx1NDBDN1x1NDBEM1x1NDBERVx1NDBFNlx1NDBFRSIrCisgICAgICAgICJcdTQwRjZcdTQwRkZcdTQxMEJcdTQxMTdcdTQxMjNcdTQxMkZcdTQxM0JcdTQxNDdcdTQxNTNcdTQxNUZcdTQxNkJcdTQxNzYiKworICAgICAgICAiXHU0MTdFXHU0MTg2XHU0MThFXHU0MTk2XHU0MTlFXHU0MUE2XHU0MUFFXHVBNUE1XDAwNlwwMDBcdTQxQjZcdTQxQkVcdTQxQzciKworICAgICAgICAiXHU0MUQzXHU0MURGXHU0MUVCXHU0MUY3XHU0MjAzXHU0MjBFXHU0MjE2XHU0MjFGXHU0MjJCXHU0MjM3XHU0MjQzXHU0MjRGIisKKyAgICAgICAgIlx1NDI1Qlx1NDI2Nlx1NDI2RVx1NDI3N1x1NDI4M1x1NDI4Rlx1NDI5QlwwMDBcMDAwXHU0MkE2XHU0MkFFXHU0MkI3XHU0MkMzIisKKyAgICAgICAgIlx1NDJDRlx1NDJEQlwwMDBcMDAwXHU0MkU2XHU0MkVFXHU0MkY3XHU0MzAzXHU0MzBGXHU0MzFCXHU0MzI3XHU0MzMzXHU0MzNFIisKKyAgICAgICAgIlx1NDM0Nlx1NDM0Rlx1NDM1Qlx1NDM2N1x1NDM3M1x1NDM3Rlx1NDM4Qlx1NDM5Nlx1NDM5RVx1NDNBN1x1NDNCM1x1NDNCRiIrCisgICAgICAgICJcdTQzQ0JcdTQzRDdcdTQzRTNcdTQzRUVcdTQzRjZcdTQzRkZcdTQ0MEJcdTQ0MTdcdTQ0MjNcdTQ0MkZcdTQ0M0JcdTQ0NDYiKworICAgICAgICAiXHU0NDRFXHU0NDU3XHU0NDYzXHU0NDZGXHU0NDdCXDAwMFwwMDBcdTQ0ODZcdTQ0OEVcdTQ0OTdcdTQ0QTNcdTQ0QUZcdTQ0QkIiKworICAgICAgICAiXDAwMFwwMDBcdTQ0QzZcdTQ0Q0VcdTQ0RDdcdTQ0RTNcdTQ0RUZcdTQ0RkJcdTQ1MDdcdTQ1MTNcMDAwXHU0NTFFXDAwMCIrCisgICAgICAgICJcdTQ1MjdcMDAwXHU0NTMzXDAwMFx1NDUzRlx1NDU0QVx1NDU1Mlx1NDU1Qlx1NDU2N1x1NDU3M1x1NDU3Rlx1NDU4Qlx1NDU5NyIrCisgICAgICAgICJcdTQ1QTJcdTQ1QUFcdTQ1QjNcdTQ1QkZcdTQ1Q0JcdTQ1RDdcdTQ1RTNcdTQ1RUZcdTQ1RkFcdTQ2MDJcdTQ2MEFcdTQ2MTIiKworICAgICAgICAiXHU0NjFBXHU0NjIyXHU0NjJBXHU0NjMyXHU0NjNBXHU0NjQyXHU0NjRBXHU0NjUyXHU0NjVBXHU0NjYyXDAwMFwwMDBcdTQ2NkIiKworICAgICAgICAiXHU0Njc3XHU0NjgwXHU0Njk0XHU0NkE4XHU0NkJDXHU0NkQwXHU0NkU0XHU0NkZCXHU0NzA3XHU0NzEwXHU0NzI0XHU0NzM4IisKKyAgICAgICAgIlx1NDc0Q1x1NDc2MFx1NDc3NFx1NDc4Qlx1NDc5N1x1NDdBMFx1NDdCNFx1NDdDOFx1NDdEQ1x1NDdGMFx1NDgwNFx1NDgxQiIrCisgICAgICAgICJcdTQ4MjdcdTQ4MzBcdTQ4NDRcdTQ4NThcdTQ4NkNcdTQ4ODBcdTQ4OTRcdTQ4QUJcdTQ4QjdcdTQ4QzBcdTQ4RDRcdTQ4RTgiKworICAgICAgICAiXHU0OEZDXHU0OTEwXHU0OTI0XHU0OTNCXHU0OTQ3XHU0OTUwXHU0OTY0XHU0OTc4XHU0OThDXHU0OUEwXHU0OUI0XHU0OUNBIisKKyAgICAgICAgIlx1NDlEMlx1NDlEQlx1NDlFNlx1NDlFRlwwMDBcdTQ5RkFcdTRBMDNcdTRBMEVcdTRBMTZcdTRBMUVcdTRBMjZcdTRBMkUiKworICAgICAgICAiXHUwMUQ2XHU0QTM1XHUwMUQ2XHUwMURFXHVDQTNBXHU0QTQzXHU0QTRFXHU0QTU3XDAwMFx1NEE2Mlx1NEE2Qlx1NEE3NiIrCisgICAgICAgICJcdTRBN0VcdTRBODZcdTRBOEVcdTRBOTZcdUNBOUVcdUNBQTZcdUNBQUVcdTRBQjZcdTRBQkVcdTRBQzdcdTRBRDNcMDAwIisKKyAgICAgICAgIlwwMDBcdTRBREVcdTRBRTdcdTRBRjJcdTRBRkFcdTRCMDJcdTRCMEFcMDAwXHVDQjEyXHVDQjFBXHVDQjIyXHU0QjJBXHU0QjMyIisKKyAgICAgICAgIlx1NEIzQlx1NEI0N1x1NEI1Mlx1NEI1QVx1NEI2Mlx1NEI2Qlx1NEI3Nlx1NEI3RVx1NEI4Nlx1NEI4RVx1NEI5Nlx1Q0I5RSIrCisgICAgICAgICJcdUNCQTZcdTRCQURcMDAwXDAwMFx1NEJCM1x1NEJCRVx1NEJDN1wwMDBcdTRCRDJcdTRCREJcdTRCRTZcdTRCRUVcdTRCRjYiKworICAgICAgICAiXHU0QkZFXHU0QzA2XHVDQzBEXHUwMUU2XDAwMFx1Q0MxMVx1Q0MxNVx1QTVBNVwwMTFcMDA1XHVBNUE1XDAwNlwwMDBcdTAxRUQiKworICAgICAgICAiXHVBNUE1XDAwNVwwMDBcdTAxRjJcdUE1QTVcMDE0XDAwMFx1MDFGOVx1MDFGRVx1MDFGQlx1QTVBNVwwMTBcMDAwXDAwNSIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcdTAyMDZcdTAyMEZcMDAwXHUwMjFBXHUwMjIzXHVBNUE1XDAwNFwwMDBcdTAyMkVcMDAwXHUwMjM2IisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUwMjNFXHUwMjQ2XHVBNUE1JlwwMDBcdTAyNERcMDAwXDAwMFwwMDBJXHUwMjUxXHUwMjU1XHUwMjU5IisKKyAgICAgICAgIlx1MDI1RFx1MDI2MVx1MDI2NVx1MDI2OVx1MDI2RFx1MDI3MVx1MDI3NVx1MDA4OVx1MDI0RDlcMDM1IUlcdTAyNTFcdTAyNTUiKworICAgICAgICAiXHUwMjU5XHUwMjVEXHUwMjYxXHUwMjY1XHUwMjY5XHUwMjZEXHUwMjcxXHUwMjc1XHVBNUE1XDAzMVwwMDBcdTAyN0FcdUE1QTUiKworICAgICAgICAiXDAyN1wwMDBcdTAyODNcdTAyOEZcdTAyOTlcdTAyOUVcMDAwXHUwMkE3XHUwMkIzXHUwMkJEXDAwMFx1MDJDMlx1MDJDOSIrCisgICAgICAgICJcdTAyQ0RcdTAyQ0RcdTAyQ0RcdTAwRTVcdTAyRDFlZXV9XDAwMFx1MDBDRFx1MDJENlwwMDBcMDAwXHUwMkREXHUwMkUxIisKKyAgICAgICAgIlx1MDI3OVx1MDI3OVx1MDI3OVwwMDBcMDAwXHUwMkU2XHUwMkVGXHUwMkZBXDAwMFx1MDA5NVwwMDBcdTRDMTlcMDAwXHUwMDk1IisKKyAgICAgICAgIlwwMDBcdTRDMURcdTRDMjJcdTAzMDFcdTAyOTlcMDAwXHUwMzA1XHUwMkYxXHUwMkM1XDAwMFx1MDJFOT1cdTAzMDlcdTAzMEQiKworICAgICAgICAiXHUwMzExXHUwMzE1bVx1QTVBNVwwMzFcMDAwXHUwMzFCXHUwMzI3XHUwMzMzXHUwMzNGXHUwMzRCXHUwMzU3XHUwMzYzIisKKyAgICAgICAgIlx1MDM2Rlx1MDM3Qlx1MDM4N1x1MDM5M1x1MDM5RkJlXHUwM0FBXHUwM0IzXHUwM0JFXHUwM0MxXHUwM0M2XHUwM0NGXHUwM0Q4IisKKyAgICAgICAgIlx1MDNFRVx1MDNGMVx1MDNGNlx1MDNGRnVcdTAyOTlcdTAwOTFcdTAyRTltXHUwNDBBXHUwNDEzXHUwNDFFXHUwNDIxXHUwNDI2IisKKyAgICAgICAgIlx1MDQyRlx1MDQzOFx1MDQ0RVx1MDEzOVx1MDQ1Nlx1MDQ1Rn1cdTAyODlcdTAwQTlcdTA0NjlcdUE1QTVcMDMyXDAwMCIrCisgICAgICAgICJcdTRDMkFcdTRDMzJcdUE1QTVcMDIyXDAwMFx1NEMzQVx1QTVBNVwwMzZcMDAwXHU0QzQyXHU0QzRBXHU0QzUyXHVBNUE1IisKKyAgICAgICAgIlwwMjRcMDAwXHU0QzVBXHVBNUE1XDAwNFwwMDBcdTRDNjJcMDAwXDAwMFx1NEM2QVx1QTVBNVwwMjdcMDAwXHU0QzcyXDAwMCIrCisgICAgICAgICJcdTRDN0FcdUE1QTVcMDA1XDAwMFx1MDQ2RVx1MDQ3N1wwMDBcdTA0ODJcdTA0OEJcdUE1QTVcMDIwXDAwMFx1NEM4MlwwMDAiKworICAgICAgICAiXDAwMFx1NEM4QVwwMDBcMDAwXHU0QzkyXDAwMFx1NEM5QVx1QTVBNVwwMjZcMDAwXHU0Q0EyXDAwMFx1NENBQVx1QTVBNSIrCisgICAgICAgICJcMDEyXDAwMFx1NENCMlx1NENCQVx1NENDMlx1NENDQVx1NENEMlwwMDBcMDAwXHU0Q0RBXHU0Q0UyXDAwMFwwMDBcdTRDRUEiKworICAgICAgICAiXHU0Q0YyXHVBNUE1XDAwNlwwMDBcdTRDRkFcdTREMDJcMDAwXDAwMFx1NEQwQVx1NEQxMlwwMDBcMDAwXHU0RDFBXHU0RDIyIisKKyAgICAgICAgIlx1QTVBNVwwNDJcMDAwXHU0RDJBXHU0RDMyXHU0RDNBXHU0RDQyXHVBNUE1XDAyMFwwMDBcdTRENEFcdTRENTJcdTRENUEiKworICAgICAgICAiXHU0RDYyXHVBNUE1XDAwNlwwMDBcdTRENkFcdTRENzJcdTREN0FcdTREODJcdUE1QTVcMDMzXDAwMFx1NEQ4OVx1NEQ4RCIrCisgICAgICAgICJcdUE1QTVcMDI1XDAwMDlcMDM1IUlcdTAyNTFcdTAyNTVcdTAyNTlcdTAyNURcdTAyNjFcdTA0OTZcdTA0OUVcdTA0QTYiKworICAgICAgICAiXHUwNEFFXHUwNEI2XHUwNEJFXHUwNEM2XHUwNENFXHUwNEQ2XHUwNERFXHUwNEU2XHUwNEVGXHUwNEZCXHUwNTA3XHUwNTEzIisKKyAgICAgICAgIlx1MDUxRlx1MDUyQlx1MDUzN1x1MDU0M1x1MDU0Rlx1MDU1OFx1MDU2Q1x1MDU4MFx1MDU5NFx1MDVBOFx1MDVCQ1x1MDVEMCIrCisgICAgICAgICJcdTA1RTRcdTA1RjhcdTA2MENcdTA2MjBcdTA2MzZcdTA2M0VcdTA2NDZcdTA2NEVcdTA2NTZcdTA2NUVcdTA2NjZcdTA2NkUiKworICAgICAgICAiXHUwNjc2XHUwNjdGXHUwNjhCXHUwNjk3XHUwNkEzXHUwNkFGXHUwNkJCXHUwNkM3XHUwNkQzXHUwNkRGXHUwNkVCXHUwNkY3IisKKyAgICAgICAgIlx1MDcwM1x1MDcwRlx1MDcxQlx1MDcyN1x1MDczM1x1MDczRlx1MDc0Qlx1MDc1N1x1MDc2M1x1MDc2Rlx1MDc3Qlx1MDc4NyIrCisgICAgICAgICJcdTA3OTNcdTA3OUZcdTA3QUJcdTA3QjdcdTA3QzNcdTA3Q0ZcdTA3REJcdTA3RTdcdTA3RjNcdTA3RkZcdTA4MEJcdTA4MTciKworICAgICAgICAiXHUwODIzXHUwODJGXHUwODM5XHUwMzAxXHUwMjk5XHUwMDkxXHUwMkYxXHUwMkM1XHUwODNEXHUwMkNEZWlcdTA4NDF1IisKKyAgICAgICAgIlx1MDJFOVx1MDBDRFx1MDg0NVx1MDJERFx1MDJFMVx1MDI3OVx1MDJFNVx1MDJFRFx1MDg0OVx1MDNDMVx1MDg0RFx1MDNGMSIrCisgICAgICAgICJcdTA4NTFcdTAwOTVcMDIxXHUwNzExXHUwMjg5XHUwMEE5XHUwMzA1XHUwNzQxXHUwMkM5XHUwMEU1bXFcdTA3N0R9XHUwNDY5IisKKyAgICAgICAgIlx1MDA4OT1cdTA3QjlcdTA3QzVcdTAwRURcdTAwOERcdTA3RTlcdTAyQjlcdTA0MjFcdTAwRkRcdTAxMzlcdTAxMDFcdTAwQTEiKworICAgICAgICAiXHUwMjREXHVBNUE1NFwwMDBcdTA4NTVcdUE1QTVcMDIzXDAwMFx1MDg1OVx1QTVBNVwwMTRcMDAwXHUwODVEXHUwODYxIisKKyAgICAgICAgIlx1MDg2NVx1MDg2OVx1MDg2RFx1MDg3MVx1MDg3NVx1MDg3OVx1MDg3RFx1MDg4MVx1MDg4NVx1MDg4OVx1MDg4RFx1MDg5MSIrCisgICAgICAgICJcdTA4OTVcdTA4OTlcdTA4OURcdTA4QTFcdTA4QTVcdTA4QTlcdTA4QURcdTA4QjFcdTA4QjVcdTA4QjlcdTA4QkRcdTA4QzEiKworICAgICAgICAiXHUwOEM1XHUwOEM5XHUwOENEXHUwOEQxXHUwOEQ1XHUwOEQ5XHUwOEREXHUwOEUxXHUwOEU1XHUwOEU5XHUwOEVEXHUwOEYxIisKKyAgICAgICAgIlx1MDhGNVx1MDhGOVx1MDhGRFx1MDkwMVx1MDkwNVx1MDkwOVx1MDkwRFx1MDkxMVx1MDkxNVx1MDkxOVx1MDkxRFx1MDkyMSIrCisgICAgICAgICJcdTA5MjVcdTA5MjlcdTA5MkRcdTA5MzFcdTA5MzVcdTA5MzlcdTA5M0RcdTA5NDFcdTA5NDVcdTA5NDlcdTA5NERcdTA5NTEiKworICAgICAgICAiXHUwOTU1XHUwOTU5XHUwOTVEXHUwOTYxXHUwOTY1XHUwOTY5XHUwOTZEXHUwOTcxXHUwOTc1XHUwOTc5XHUwOTdEXHUwOTgxIisKKyAgICAgICAgIlx1MDk4NVx1MDk4OVx1MDk4RFx1MDk5MVx1MDk5NVx1MDk5OVx1MDk5RFx1MDlBMVx1MDlBNVx1MDlBOVx1MDlBRFx1MDlCMSIrCisgICAgICAgICJcdTA5QjVcdTA5QjlcdTA5QkRcdTA5QzFcdTA5QzVcdTA5QzlcdTA5Q0RcdTA5RDFcdTA5RDVcdTA5RDlcdTA5RERcdTA5RTEiKworICAgICAgICAiXHUwOUU1XHUwOUU5XHUwOUVEXHUwOUYxXHUwOUY1XHUwOUY5XHUwOUZEXHUwQTAxXHUwQTA1XHUwQTA5XHUwQTBEXHUwQTExIisKKyAgICAgICAgIlx1MEExNVx1MEExOVx1MEExRFx1MEEyMVx1MEEyNVx1MEEyOVx1MEEyRFx1MEEzMVx1MEEzNVx1MEEzOVx1MEEzRFx1MEE0MSIrCisgICAgICAgICJcdTBBNDVcdTBBNDlcdTBBNERcdTBBNTFcdTBBNTVcdTBBNTlcdTBBNURcdTBBNjFcdTBBNjVcdTBBNjlcdTBBNkRcdTBBNzEiKworICAgICAgICAiXHUwQTc1XHUwQTc5XHUwQTdEXHUwQTgxXHUwQTg1XHUwQTg5XHUwQThEXHUwQTkxXHUwQTk1XHUwQTk5XHUwQTlEXHUwQUExIisKKyAgICAgICAgIlx1MEFBNVx1MEFBOVx1MEFBRFx1MEFCMVx1MEFCNVx1MEFCOVx1MEFCRFx1MEFDMVx1MEFDNVx1MEFDOVx1MEFDRFx1MEFEMSIrCisgICAgICAgICJcdTBBRDVcdTBBRDlcdTBBRERcdTBBRTFcdTBBRTVcdTBBRTlcdTBBRURcdTBBRjFcdTBBRjVcdTBBRjlcdTBBRkRcdTBCMDEiKworICAgICAgICAiXHUwQjA1XHUwQjA5XHUwQjBEXHUwQjExXHUwQjE1XHUwQjE5XHUwQjFEXHUwQjIxXHUwQjI1XHUwQjI5XHUwQjJEXHUwQjMxIisKKyAgICAgICAgIlx1MEIzNVx1MEIzOVx1MEIzRFx1MEI0MVx1MEI0NVx1MEI0OVx1MEI0RFx1MEI1MVx1MEI1NVx1MEI1OVx1MEI1RFx1MEI2MSIrCisgICAgICAgICJcdTBCNjVcdTBCNjlcdTBCNkRcdTBCNzFcdTBCNzVcdTBCNzlcdTBCN0RcdTBCODFcdTBCODVcdTBCODlcdTBCOERcdTBCOTEiKworICAgICAgICAiXHUwQjk1XHUwQjk5XHUwQjlEXHUwQkExXHUwQkE1XHUwQkE5XHUwQkFEXHUwQkIxXHVBNUE1XDAxMlwwMDBcMDA1XHVBNUE1IisKKyAgICAgICAgIjVcMDAwXHUwQkI1XDAwMFx1MDhCOVx1MEJCOVx1MEJCRFx1QTVBNVwwMjFcMDAwXHU0RDkyXDAwMFx1NEQ5QVwwMDBcdTREQTIiKworICAgICAgICAiXDAwMFx1NERBQVwwMDBcdTREQjJcMDAwXHU0REJBXDAwMFx1NERDMlwwMDBcdTREQ0FcMDAwXHU0REQyXDAwMFx1NEREQSIrCisgICAgICAgICJcMDAwXHU0REUyXDAwMFx1NERFQVwwMDBcMDAwXHU0REYyXDAwMFx1NERGQVwwMDBcdTRFMDJcdUE1QTVcMDA2XDAwMFx1NEUwQSIrCisgICAgICAgICJcdTRFMTJcMDAwXHU0RTFBXHU0RTIyXDAwMFx1NEUyQVx1NEUzMlwwMDBcdTRFM0FcdTRFNDJcMDAwXHU0RTRBXHU0RTUyIisKKyAgICAgICAgIlx1QTVBNVwwMjZcMDAwXHU0RTVBXHVBNUE1XDAwNlwwMDBcdTBCQzJcdTBCQ0FcMDAwXHU0RTYyXHVBNUE1XDAxNVwwMDAiKworICAgICAgICAiXHU0RTZBXDAwMFx1NEU3MlwwMDBcdTRFN0FcMDAwXHU0RTgyXDAwMFx1NEU4QVwwMDBcdTRFOTJcMDAwXHU0RTlBXDAwMCIrCisgICAgICAgICJcdTRFQTJcMDAwXHU0RUFBXDAwMFx1NEVCMlwwMDBcdTRFQkFcMDAwXHU0RUMyXDAwMFwwMDBcdTRFQ0FcMDAwXHU0RUQyIisKKyAgICAgICAgIlwwMDBcdTRFREFcdUE1QTVcMDA2XDAwMFx1NEVFMlx1NEVFQVwwMDBcdTRFRjJcdTRFRkFcMDAwXHU0RjAyXHU0RjBBXDAwMCIrCisgICAgICAgICJcdTRGMTJcdTRGMUFcMDAwXHU0RjIyXHU0RjJBXHVBNUE1XDAyNlwwMDBcdTRGMzJcMDAwXDAwMFx1NEYzQVx1NEY0Mlx1NEY0QSIrCisgICAgICAgICJcdTRGNTJcMDAwXDAwMFwwMDBcdTRGNUFcdUE1QTVcMDIyXDAwMFx1MEJEMVx1MEJENVx1MEJEOVx1MEJERFx1MEJFMVx1MEJFNSIrCisgICAgICAgICJcdTBCRTlcdTBCRURcdTBCRjFcdTBCRjVcdTBCRjlcdTBCRkRcdTBDMDFcdTBDMDVcdTBDMDlcdTBDMERcdTBDMTFcdTBDMTUiKworICAgICAgICAiXHUwQzE5XHUwQzFEXHUwQzIxXHUwQzI1XHUwQzI5XHUwQzJEXHUwQzMxXHUwQzM1XHUwQzM5XHUwQzNEXHUwQzQxXHUwQzQ1IisKKyAgICAgICAgIlx1MEM0OVx1MEM0RFx1MEM1MVx1MEM1NVx1MEM1OVx1MEM1RFx1MEM2MVx1MEM2NVx1MEM2OVx1MEM2RFx1MEM3MVx1MEM3NSIrCisgICAgICAgICJcdTBDNzlcdTBDN0RcdTBDODFcdTBDODVcdTBDODlcdTBDOERcdTBDOTFcdTBDOTVcdTBDOTlcdTBDOURcdTBDQTFcdTBDQTUiKworICAgICAgICAiXHUwQ0E5XHUwQ0FEXHUwQ0IxXHUwQ0I1XHUwQ0I5XHUwQ0JEXHUwQ0MxXHUwQ0M1XHUwQ0M5XHUwQ0NEXHUwQ0QxXHUwQ0Q1IisKKyAgICAgICAgIlx1MENEOVx1MENERFx1MENFMVx1MENFNVx1MENFOVx1MENFRFx1MENGMVx1MENGNVx1MENGOVx1MENGRFx1MEQwMVx1MEQwNSIrCisgICAgICAgICJcdTBEMDlcdTBEMERcdTBEMTFcdTBEMTVcdTBEMTlcdTBEMURcdTBEMjFcdTBEMjVcdTBEMjlcdTBEMkRcdTBEMzFcdTBEMzUiKworICAgICAgICAiXHUwRDM5XHUwRDNEXHUwRDQxXHUwRDQ1XDAwMFwwMDBcMDAwXHUwODVEXHUwODc1XHUwRDQ5XHUwRDREXHUwRDUxXHUwRDU1IisKKyAgICAgICAgIlx1MEQ1OVx1MEQ1RFx1MDg2RFx1MEQ2MVx1MEQ2NVx1MEQ2OVx1MEQ2RFx1MDg3RFx1MEQ3M1x1MEQ3Rlx1MEQ4Qlx1MEQ5NyIrCisgICAgICAgICJcdTBEQTNcdTBEQUZcdTBEQkJcdTBEQzdcdTBERDNcdTBEREZcdTBERUJcdTBERjdcdTBFMDNcdTBFMEZcdTBFMThcdTBFMkMiKworICAgICAgICAiXHUwRTQwXHUwRTU0XHUwRTY4XHUwRTdDXHUwRTkwXHUwRUE0XHUwRUI4XHUwRUNDXHUwRUUwXHUwRUY0XHUwRjA4XHUwRjFDIisKKyAgICAgICAgIlx1MEYzMFwwMDBcMDAwXDAwMFx1MEY0N1x1MEY1M1x1MEY1Rlx1MEY2Qlx1MEY3N1x1MEY4M1x1MEY4Rlx1MEY5Qlx1MEZBNyIrCisgICAgICAgICJcdTBGQjNcdTBGQkZcdTBGQ0JcdTBGRDdcdTBGRTNcdTBGRUZcdTBGRkJcdTEwMDdcdTEwMTNcdTEwMUZcdTEwMkJcdTEwMzciKworICAgICAgICAiXHUxMDQzXHUxMDRGXHUxMDVCXHUxMDY3XHUxMDczXHUxMDdGXHUxMDhCXHUxMDk3XHUxMEEzXHUxMEFGXHUxMEJCXHUxMEM3IisKKyAgICAgICAgIlx1MTBEM1x1MTBERlx1MTBFQlx1QTVBNVwwMzRcMDAwXHUwQkQxXHUwQkREXHUwQkU5XHUwQkYxXHUwQzExXHUwQzE1XHUwQzIxIisKKyAgICAgICAgIlx1MEMyOVx1MEMyRFx1MEMzNVx1MEMzOVx1MEMzRFx1MEM0MVx1MEM0NVx1MEUxRVx1MEUzMlx1MEU0Nlx1MEU1QVx1MEU2RSIrCisgICAgICAgICJcdTBFODJcdTBFOTZcdTBFQUFcdTBFQkVcdTBFRDJcdTBFRTZcdTBFRkFcdTBGMEVcdTBDNDZcdUE1QTVcMDA0XDAwMFx1MDg1RCIrCisgICAgICAgICJcdTA4NzVcdTBENDlcdTBENERcdTBGNzlcdTBGODVcdTBGOTFcdTA4ODlcdTBGQTlcdTA4QjlcdTA5ODFcdTA5QjFcdTA5QUQiKworICAgICAgICAiXHUwOTg1XHUwQUY1XHUwOEQ5XHUwOTc5XHUxMDE1XHUxMDIxXHUxMDJEXHUxMDM5XHUxMDQ1XHUxMDUxXHUxMDVEXHUxMDY5IisKKyAgICAgICAgIlx1MTBGNVx1MTBGOVx1MDhGMVx1MTBGRFx1MTEwMVx1MTEwNVx1MTEwOVx1MTEwRFx1MTBENVx1MTExMVx1MTExNVx1MEQ1MSIrCisgICAgICAgICJcdTBENTVcdTBENTlcdTExMTlcdTExMURcdTExMjFcdTExMjVcdTEwOERcdTEwOTlcdTEwQTVcdTEwQjFcdTEwQkRcdTExMjkiKworICAgICAgICAiXHVBNUE1XDAxN1wwMDBcdTExMkVcdTExMzZcdTExM0VcdTExNDZcdTExNEVcdTExNTZcdTExNUVcdTExNjZcdTExNkVcdTExNzciKworICAgICAgICAiXHUxMTgzXHUxMThGXHVBNUE1XDAwNFwwMDBcdTExOTlcdTExOURcdTExQTFcdTExQTVcdTExQTlcdTExQURcdTExQjFcdTExQjUiKworICAgICAgICAiXHUxMUI5XHUxMUJEXHUxMUMxXHUxMUM1XHUxMUM5XHUxMUNEXHUxMUQxXHUxMUQ1XHUxMUQ5XHUxMUREXHUxMUUxXHUxMUU1IisKKyAgICAgICAgIlx1MTFFOVx1MTFFRFx1MTFGMVx1MTFGNVx1MTFGOVx1MTFGRFx1MTIwMVx1MTIwNVx1MTIwOVx1MTIwRFx1MTIxMVx1MTIxNSIrCisgICAgICAgICJcdTEyMTlcdTEyMURcdTEyMjFcdTEyMjVcdTEyMjlcdTEyMkRcdTEyMzFcdTEyMzVcdTEyMzlcdTEyM0RcdTEyNDFcdTEyNDUiKworICAgICAgICAiXHUxMjQ5XHUxMjREXHUxMjUxXDAwMFx1MTI1NFx1MTI2Q1x1MTI4MFx1MTI5Qlx1MTJBNFx1MTJCRlx1MTJDQlx1MTJENCIrCisgICAgICAgICJcdTEyRjBcdTEzMDdcdTEzMTNcdTEzMUZcdTEzMjhcdTEzM0NcdTEzNTBcdTEzNjRcdTEzNzhcdTEzOENcdTEzQTBcdTEzQjQiKworICAgICAgICAiXHUxM0QyXHUxM0Q4XHUxM0Y0XHUxNDEwXHUxM0UwXHUxNDI4XHUxNDQ0XHUxNDYwXHUxNDc3XHUxNDgzXHUxNDhDXHUxNEEwIisKKyAgICAgICAgIlx1MTRCNFx1MTRDQ1x1MTRFN1x1MTRGM1x1MTRGQ1x1MTUxM1x1MTUxRlx1MTQzQVx1MTUyQVx1MTUzM1x1MTUzRlx1MTU0OCIrCisgICAgICAgICJcdTE1NjRcdTE1NzhcdTE1OTBcdTE1QUNcdTE1QzNcdTE1Q0ZcdTE1RDhcdTE1RjRcdTE2MDhcdTE2MjdcdTE2MzBcdTE2NEIiKworICAgICAgICAiXHUxNjU0XHUxNjZCXHUxNjc0XHUxNjg4XHUxNkEwXHUxNkI0XHUxNkNDXHUxNkUyXHUxNkU4XHUxNzAzXHUxNzBGXHUxNzE4IisKKyAgICAgICAgIlx1MTcyRlx1MTczQlx1MTc0N1x1MTc1MFx1MTc2OFx1MTc3RVx1MTc4NFx1MTdBM1x1MTdBQ1x1MTNGQ1x1MTdDNFx1MTdEQiIrCisgICAgICAgICJcdTE3RTdcdTE3RjBcdTE4MDZcdTE4MENcdTE4MjBcdTE4M0FcdTE4NDBcdTE0MUJcdTE4NUVcdTE4NjZcdTE4NkVcdTE4NzYiKworICAgICAgICAiXHUxODdFXHUxODg2XHUxODhFXHUxODk2XHUxODlFXHUxOEE2XHUxOEFGXHUxOEJCXHUxOEM3XHUxOEQzXHUxOERGXHUxOEVCIisKKyAgICAgICAgIlx1MThGN1x1MTkwM1x1MTkwRlx1MTkxQlx1MTkyN1x1MTkzM1x1MTkzRlx1MTk0Qlx1MTk1N1x1MTk2M1x1MTk2RVx1MTk3NiIrCisgICAgICAgICJcdTE5N0ZcdTE5OEFcdTE5OTJcdUE1QTVcMDA0XDAwMFx1MTk5QVx1MTlBMlx1MTlBQVx1MTlCMlx1MTlCOFx1MTlDRVx1MTlENiIrCisgICAgICAgICJcdTE5REVcdTE5RTZcdTE5RUVcdTE5RjZcdTAyRkVcdTE5RkVcdTFBMDdcdTFBMTBcdTFBMjZcdTFBMkVcdTFBMzZcdTFBM0UiKworICAgICAgICAiXHUxQTQ2XHUxQTRFXHUxQTU2XHUxQTVGXHUxQTZCXHUxQTc3XHUxQTgzXHUxQThFXHUxQTk2XHUxQTlFXHUxQUE2XHUxQUFFIisKKyAgICAgICAgIlx1MUFCNlx1MUFCRVx1MUFDNlx1MUFDRVx1MUFENlx1MUFERlx1MUFFQlx1MUFFMlx1MUFGN1x1MUIwM1x1MUIwRlx1MUIwNiIrCisgICAgICAgICJcdTFCMUJcdTFCMjdcdTFCMzBcdTE5NjZcdTFCNDdcdTFCNTNcdTFCNUZcdTFCNkJcdTFCNzRcdTFCOENcdTFCQUFcdTAwOEEiKworICAgICAgICAiXHUxQkIyXHUxQkJBXHUxQkMyXHUxQkNBXHUxQkQyXHUxQkRBXHUxQkUyXHUxQkVBXHUxQkYyXHUxQkZBXHUxQzAyXHUxQzBBIisKKyAgICAgICAgIlx1MUMxMlx1MUMxQVx1MUMyMlx1MUMyQVx1MUMzMFx1MUM0Nlx1MUM0RVx1MUM1Nlx1MUM1Q1x1MUM3M1x1MUM3RVx1MUM4NiIrCisgICAgICAgICJcdTFDOEVcdTFDOTZcdTFDOUVcdTFDQTZcdTFDQUVcdTFDQjZcdTFBOTJcdTFDQkVcdTFDQzdcdTFDRDJcdTFDREFcdTFDRTMiKworICAgICAgICAiXHUxQ0VGXHUxQ0ZBXHUxRDAwXHUxRDE3XHUxRDIyXHUxRDJBXHUxRDMyXHUxRDNBXDAwMFwwMDBcdTFENDJcdTFENEFcdTFENTIiKworICAgICAgICAiXHUxRDVBXHUxRDYyXHUxRDZBXHUxRDcyXHUxRDdBXHUxRDgyXHUxRDhCXHUxRDk3XHUxREEzXHUxREFGXHUxREJCXHUxREM3IisKKyAgICAgICAgIlx1MUREM1x1MURERlx1MURFQlx1MURGN1x1MUUwM1x1MUUwRlx1MUUxQlx1MUUyN1x1MUUzM1x1MUUzRlx1MUU0Qlx1MUU1NyIrCisgICAgICAgICJcdTFFNjNcdTFFNkZcdTFFN0JcdTFFODdcMDAwXHU0RjYxXHU0RjY1XHU0RjY5XHU0RjZEXHU0RjcxXHU0Rjc1XHU0Rjc5IisKKyAgICAgICAgIlx1NEY3RFx1NEY4MVx1NEY4NVx1NEY4OVx1NEY4RFx1NEY5MVx1NEY5NVx1NEY5OVx1NEY5RFx1NEZBMVx1NEZBNVx1NEZBOSIrCisgICAgICAgICJcdTRGQURcdTRGQjFcdTRGQjVcdTRGQjlcdTRGQkRcdTRGQzFcdTRGQzVcdTRGQzlcdTRGQ0RcdTRGRDFcdTRGRDVcdTRGRDkiKworICAgICAgICAiXHU0RkREXHU0RkUxXHU0RkU1XHU0RkU5XHU0RkVEXHU0RkYxXHU0RkY1XHU0RkY5XHU0RkZEXHU1MDAxXHU1MDA1XHU1MDA5IisKKyAgICAgICAgIlx1NTAwRFx1NTAxMVx1NTAxNVx1NTAxOVx1NTAxRFx1NTAyMVx1NTAyNVx1NTAyOVx1NTAyRFx1NTAzMVx1NTAzNVx1NTAzOSIrCisgICAgICAgICJcdTUwM0RcdTUwNDFcdTUwNDVcdTUwNDlcdTUwNERcdTUwNTFcdTUwNTVcdTUwNTlcdTUwNURcdTUwNjFcdTUwNjVcdTUwNjkiKworICAgICAgICAiXHU1MDZEXHU1MDcxXHU1MDc1XHU1MDc5XHU1MDdEXHU1MDgxXHU1MDg1XHU1MDg5XHU1MDhEXHU1MDkxXHU1MDk1XHU1MDk5IisKKyAgICAgICAgIlx1NTA5RFx1NTBBMVx1NTBBNVx1NTBBOVx1NTBBRFx1NTBCMVx1NTBCNVx1NTBCOVx1NTBCRFx1NTBDMVx1NTBDNVx1NTBDOSIrCisgICAgICAgICJcdTUwQ0RcdTUwRDFcdTUwRDVcdTUwRDlcdTUwRERcdTUwRTFcdTUwRTVcdTUwRTlcdTUwRURcdTUwRjFcdTUwRjVcdTUwRjkiKworICAgICAgICAiXHU1MEZEXHU1MTAxXHU1MTA1XHU1MTA5XHU1MTBEXHU1MTExXHU1MTE1XHU1MTE5XHU1MTFEXHU1MTIxXHU1MTI1XHU1MTI5IisKKyAgICAgICAgIlx1NTEyRFx1NTEzMVx1NTEzNVx1NTEzOVx1NTEzRFx1NTE0MVx1NTE0NVx1NTE0OVx1NTE0RFx1NTE1MVx1NTE1NVx1NTE1OSIrCisgICAgICAgICJcdTUxNURcdTUxNjFcdTUxNjVcdTUxNjlcdTUxNkRcdTUxNzFcdTUxNzVcdTUxNzlcdTUxN0RcdTUxODFcdTUxODVcdTUxODkiKworICAgICAgICAiXHU1MThEXHU1MTkxXHU1MTk1XHU1MTk5XHU1MTlEXHU1MUExXHU1MUE1XHU1MUE5XHU1MUFEXHU1MUIxXHU1MUI1XHU1MUI5IisKKyAgICAgICAgIlx1NTFCRFx1NTFDMVx1NTFDNVx1NTFDOVx1NTFDRFx1NTFEMVx1NTFENVx1NTFEOVx1NTFERFx1NTFFMVx1NTFFNVx1NTFFOSIrCisgICAgICAgICJcdTUxRURcdTUxRjFcdTUxRjVcdTUxRjlcdTUxRkRcdTUyMDFcdTUyMDVcdTUyMDlcdTUyMERcdTUyMTFcdTUyMTVcdTUyMTkiKworICAgICAgICAiXHU1MjFEXHU1MjIxXHU1MjI1XHU1MjI5XHU1MjJEXHU1MjMxXHU1MjM1XHU1MjM5XHU1MjNEXHU1MjQxXHU1MjQ1XHU1MjQ5IisKKyAgICAgICAgIlx1NTI0RFx1NTI1MVx1NTI1NVx1NTI1OVx1NTI1RFx1NTI2MVx1NTI2NVx1NTI2OVx1NTI2RFx1NTI3MVx1NTI3NVx1NTI3OSIrCisgICAgICAgICJcdTUyN0RcdTUyODFcdTUyODVcdTUyODlcdTUyOERcdTUyOTFcdTUyOTVcdTUyOTlcdTUyOURcdTUyQTFcdTUyQTVcdTUyQTkiKworICAgICAgICAiXHU1MkFEXHU1MkIxXHU1MkI1XHU1MkI5XHU1MkJEXHU1MkMxXHU1MkM1XHU1MkM5XHU1MkNEXHU1MkQxXHU1MkQ1XHU1MkQ5IisKKyAgICAgICAgIlx1NTJERFx1NTJFMVx1NTJFNVx1NTJFOVx1NTJFRFx1NTJGMVx1NTJGNVx1NTJGOVx1NTJGRFx1NTMwMVx1NTMwNVx1NTMwOSIrCisgICAgICAgICJcdTUzMERcdTUzMTFcdTUzMTVcdTUzMTlcdTUzMURcdTUzMjFcdTUzMjVcdTUzMjlcdTUzMkRcdTUzMzFcdTUzMzVcdTUzMzkiKworICAgICAgICAiXHU1MzNEXHU1MzQxXHU1MzQ1XHU1MzQ5XHU1MzREXHU1MzUxXHU1MzU1XHU1MzU5XHU1MzVEXHU1MzYxXHU1MzY1XHU1MzY5IisKKyAgICAgICAgIlx1NTM2RFx1NTM3MVx1NTM3NVx1NTM3OVx1NTM3RFx1NTM4MVx1NTM4NVx1NTM4OVx1NTM4RFx1NTM5MVx1NTM5NVwwMDAiKworICAgICAgICAiXDAwMFx1NTM5OVwwMDBcdTUzOURcMDAwXDAwMFx1NTNBMVx1NTNBNVx1NTNBOVx1NTNBRFx1NTNCMVx1NTNCNVx1NTNCOSIrCisgICAgICAgICJcdTUzQkRcdTUzQzFcdTUzQzVcMDAwXHU1M0M5XDAwMFx1NTNDRFwwMDBcMDAwXHU1M0QxXHU1M0Q1XDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlx1NTNEOVx1NTNERFx1NTNFMVx1NTNFNVx1QTVBNVwwMjJcMDAwXHUxRTkyXHUxRTlBXHUxRUEyXHUxRTk3XHUxRUFCXHUxRUI2IisKKyAgICAgICAgIlx1MUVCNlx1QTVBNVwwMTRcMDAwXHUxRUJFXHUxRUM2XHUxRUNFXHUxRUQ2XHUxRURFXHVBNUE1XDAwNVwwMDBcdTUzRUEiKworICAgICAgICAiXDAwMFx1NTNGMlx1MUVFNVx1MDMwOVx1MDMxNVx1MUVFOVx1MUVFRFx1MUVGMVx1MUVGNVx1MUVGOVx1MUVGRFx1MDI2NSIrCisgICAgICAgICJcdTUzRkFcdTU0MDJcdTU0MEJcdTU0MTdcdTU0MjJcdTU0MkFcdTU0MzJcdTU0M0FcdTU0NDJcdTU0NEFcdTU0NTJcdTU0NUEiKworICAgICAgICAiXHU1NDYyXDAwMFx1NTQ2QVx1NTQ3Mlx1NTQ3QVx1NTQ4Mlx1NTQ4QVwwMDBcdTU0OTJcMDAwXHU1NDlBXHU1NEEyXDAwMCIrCisgICAgICAgICJcdTU0QUFcdTU0QjJcMDAwXHU1NEJBXHU1NEMyXHU1NENBXHU1NEQyXHU1NERBXHU1NEUyXHU1NEVBXHU1NEYyXHU1NEZBIisKKyAgICAgICAgIlx1MUYwMlx1MUYwOVx1MUYwOVx1QTVBNVwwMDRcdTFGMERcdUE1QTVcMDA0XHUxRjExXHVBNUE1XDAwNFx1MUYxNVx1QTVBNSIrCisgICAgICAgICJcMDA0XHUxRjE5XHVBNUE1XDAwNFx1MUYxRFx1QTVBNVwwMDRcdTFGMjFcdUE1QTVcMDA0XHUxRjI1XHVBNUE1XDAwNFx1MUYyOSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUxRjJEXHVBNUE1XDAwNFx1MUYzMVx1QTVBNVwwMDRcdTFGMzVcdUE1QTVcMDA0XHUxRjM5XHUxRjNEIisKKyAgICAgICAgIlx1MUYzRFx1MUY0MVx1MUY0MVx1MUY0NVx1MUY0NVx1MUY0OVx1MUY0OVx1MUY0RFx1MUY0RFx1MUY1MVx1MUY1MVx1QTVBNSIrCisgICAgICAgICJcMDA0XHUxRjU1XHVBNUE1XDAwNFx1MUY1OVx1QTVBNVwwMDRcdTFGNURcdUE1QTVcMDA0XHUxRjYxXHUxRjY1XHUxRjY1IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTFGNjlcdTFGNkVcdTFGNkVcdUE1QTVcMDA0XHUxRjc1XHVBNUE1XDAwNFx1MUY3OVx1MUY3RFx1MUY3RCIrCisgICAgICAgICJcdTFGODJcdTFGODJcdUE1QTUhXDAwMFx1QTVBNVwwMDRcdTFGODlcdTAxODFcdTAxODFcdTFGOERcdTFGOERcdTFGOTEiKworICAgICAgICAiXHUxRjkxXHUwMTgyXHUxRjk1XHUxRjk1XHUxRjk5XHUxRjk5XHUxRjlEXHUxRjlEXHVBNUE1XDAwNFx1MUZBMVx1MUZBNSIrCisgICAgICAgICJcdTFGQTVcdTFGQUJcdTFGQUJcdTFGQjdcdTFGQjdcdTFGQzNcdTFGQzNcdTFGQ0ZcdTFGQ0ZcdTFGREJcdTFGREJcdTFGRTciKworICAgICAgICAiXHUxRkU3XHUxRkYzXHUxRkYzXHUxRkYzXHUxRkZGXHUxRkZGXHUxRkZGXHVBNUE1XDAwNFx1MjAwOVx1MjAwRlx1MjAxQiIrCisgICAgICAgICJcdTIwMjdcdTFGRkZcdTIwMzNcdTIwM0VcdTIwNDZcdTIwNEVcdTIwNTZcdTIwNUVcdTIwNjZcdTIwNkVcdTIwNzZcdTIwN0UiKworICAgICAgICAiXHUyMDg2XHUyMDhFXHUyMDk2XHUyMDlFXHUyMEE2XHUyMEFFXHUyMEI2XHUyMEJFXHUyMEM2XHUyMEMyXHUyMENFXHUyMEQ2IisKKyAgICAgICAgIlx1MjBERVx1MjBFNlx1MjBFRVx1MjBGNlx1MjBGRVx1MjEwNlx1MjEwRVx1MjExNlx1MjExRVx1MjEyNlx1MjEyRVx1MjEzNiIrCisgICAgICAgICJcdTIxM0VcdTIxNDZcdTIxNEVcdTIxNTZcdTIxNUVcdTIxNjZcdTIxNkVcdTIxNzZcdTIxN0VcdTIxODZcdTIxOEVcdTIxOTYiKworICAgICAgICAiXHUyMTlFXHUyMUE2XHUyMUFFXHUyMUI2XHUyMUJFXHUyMUM2XHUyMUNFXHUyMUQ2XHUyMURFXHUyMUU2XHUyMUVFXHUyMUY2IisKKyAgICAgICAgIlx1MjFGRVx1MjIwNlx1MjIwRVx1MjIxNlx1MjIxRVx1MjIyNlx1MjIyRVx1MjIzNlx1MjBDQVx1MjBEMlx1MjIzRVx1MjI0NiIrCisgICAgICAgICJcdTIwMkVcdTIyNEVcdTIyNTZcdTIyNUVcdTIyNjZcdTIyNkVcdTIyNzZcdTIyN0VcdTIyODZcdTIyOEVcdTIyOTZcdTIwQkEiKworICAgICAgICAiXHUyMjlFXHUyMkE2XHUyMjMyXHUyMkFFXHUyMjlBXHUyMkI2XHUyMkJFXHUyMkM2XHUyMkNGXHUyMkRCXHUyMkU3XHUyMkYzIisKKyAgICAgICAgIlx1MjJGRlx1MjMwQlx1MjMxN1x1MjMyM1x1MjAyN1x1MjMyRlx1MUZGRlx1MjAzM1x1MjMzQVx1MjM0Mlx1MjA1Nlx1MjM0QSIrCisgICAgICAgICJcdTIwNUVcdTIwNjZcdTIzNTJcdTIzNUFcdTIwODZcdTIzNjJcdTIwOEVcdTIwOTZcdTIzNkFcdTIzNzJcdTIwQTZcdTIzN0EiKworICAgICAgICAiXHUyMEFFXHUyMEI2XHUyMTk2XHUyMTlFXHUyMUI2XHUyMUJFXHUyMUM2XHUyMUU2XHUyMUVFXHUyMUY2XHUyMUZFXHUyMjFFIisKKyAgICAgICAgIlx1MjIyNlx1MjIyRVx1MjM4Mlx1MjIzRVx1MjM4QVx1MjM5Mlx1MjI2Nlx1MjM5QVx1MjI2RVx1MjI3Nlx1MjJDNlx1MjNBMiIrCisgICAgICAgICJcdTIzQUFcdTIyMzJcdTIzQjJcdTIyQUVcdTIyOUFcdTIwMEZcdTIwMUJcdTIzQkJcdTIwMjdcdTIzQzdcdTIwM0VcdTIwNDYiKworICAgICAgICAiXHUyMDRFXHUyMDU2XHUyM0QyXHUyMDZFXHUyMDc2XHUyMDdFXHUyMDg2XHUyM0RBXHUyMEE2XHUyMEJFXHUyMEM2XHUyMEMyIisKKyAgICAgICAgIlx1MjBDRVx1MjBENlx1MjBFNlx1MjBFRVx1MjBGNlx1MjBGRVx1MjEwNlx1MjEwRVx1MjNFMlx1MjExNlx1MjExRVx1MjEyNiIrCisgICAgICAgICJcdTIxMkVcdTIxMzZcdTIxM0VcdTIxNEVcdTIxNTZcdTIxNUVcdTIxNjZcdTIxNkVcdTIxNzZcdTIxN0VcdTIxODZcdTIxOEUiKworICAgICAgICAiXHUyMUE2XHUyMUFFXHUyMUNFXHUyMUQ2XHUyMURFXHUyMUU2XHUyMUVFXHUyMjA2XHUyMjBFXHUyMjE2XHUyMjFFXHUyM0VBIisKKyAgICAgICAgIlx1MjIzNlx1MjBDQVx1MjBEMlx1MjIzRVx1MjI0RVx1MjI1Nlx1MjI1RVx1MjI2Nlx1MjNGMlx1MjI3RVx1MjI4Nlx1MjNGQSIrCisgICAgICAgICJcdTIwQkFcdTIyOUVcdTIyQTZcdTIyMzJcdTIyN0FcdTIwMjdcdTIzQzdcdTIwNTZcdTIzRDJcdTIwODZcdTIzREFcdTIwQTYiKworICAgICAgICAiXHUyNDAyXHUyMTA2XHUyNDBBXHUyNDEyXHUyNDFBXHUyMUU2XHUyMUVFXHUyMjFFXHUyMjY2XHUyM0YyXHUyMjMyXHUyMjdBIisKKyAgICAgICAgIlx1MjQyM1x1MjQyRlx1MjQzQlx1MjQ0Nlx1MjQ0RVx1MjQ1Nlx1MjQ1RVx1MjQ2Nlx1MjQ2RVx1MjQ3Nlx1MjQ3RVx1MjQ4NiIrCisgICAgICAgICJcdTI0OEVcdTI0OTZcdTIwMjJcdTI0OUVcdTIwMTZcdTI0QTZcdTIyQUFcdTI0QUVcdTI0QjZcdTI0QkVcdTI0QzZcdTI0Q0UiKworICAgICAgICAiXHUyNEQ2XHUyNERFXHUyNDEyXHUyNEU2XHUyNEVFXHUyNEY2XHUyNEZFXHUyNDQ2XHUyNDRFXHUyNDU2XHUyNDVFXHUyNDY2IisKKyAgICAgICAgIlx1MjQ2RVx1MjQ3Nlx1MjQ3RVx1MjQ4Nlx1MjQ4RVx1MjQ5Nlx1MjAyMlx1MjQ5RVx1MjAxNlx1MjRBNlx1MjJBQVx1MjRBRSIrCisgICAgICAgICJcdTI0QjZcdTI0QkVcdTI0QzZcdTI0Q0VcdTI0RDZcdTI0REVcdTI0MTJcdTI0RTZcdTI0RUVcdTI0RjZcdTI0RkVcdTI0Q0UiKworICAgICAgICAiXHUyNEQ2XHUyNERFXHUyNDEyXHUyNDBBXHUyNDFBXHUyMTQ2XHUyMEVFXHUyMEY2XHUyMEZFXHUyNENFXHUyNEQ2XHUyNERFIisKKyAgICAgICAgIlx1MjE0Nlx1MjE0RVx1MjUwNlx1MjUwNlx1QTVBNVwwMjJcMDAwXHUyNTBGXHUyNTFCXHUyNTFCXHUyNTI3XHUyNTMzXHUyNTNGIisKKyAgICAgICAgIlx1MjU0Qlx1MjU1N1x1MjBDN1x1MjBDN1x1MjU2M1x1MjU2Rlx1MjU3Qlx1MjU4N1x1MjU5M1x1MjU5Rlx1MjU5Rlx1MjVBQiIrCisgICAgICAgICJcdTI1QjdcdTI1QjdcdTI1QzNcdTI1QzNcdTI1Q0ZcdTI1REJcdTI1REJcdTI1RTdcdTI1RjNcdTI1RjNcdTI1RkZcdTI1RkYiKworICAgICAgICAiXHUyNjBCXHUyNjE3XHUyNjE3XHUyNjIzXHUyNjIzXHUyNjJGXHUyNjNCXHUyNjQ3XHUyNjUzXHUyNjUzXHUyNjVGXHUyNjZCIisKKyAgICAgICAgIlx1MjY3N1x1MjY4M1x1MjY4Rlx1MjY4Rlx1MjY5Qlx1MjZBN1x1MjZCM1x1MjZCRlx1MjZDQlx1MjZEN1x1MjZEN1x1MjZFMyIrCisgICAgICAgICJcdTI2RTNcdTI2RUZcdTI2RUZcdTI2RkJcdTIwQ0JcdTI3MDdcdTI3MTNcdTIyMzdcdTIwRDNcdTI3MUZcMDAwXDAwMFx1MjcyQiIrCisgICAgICAgICJcdTI3MzdcdTI3NDNcdTI3NEZcdTI3NUJcdTI3NjdcdTI3NjdcdTI3NzNcdTI3N0ZcdTI3OEJcdTI3OTdcdTI3OTdcdTI3QTMiKworICAgICAgICAiXHUyN0FGXHUyN0JCXHUyN0M3XHUyN0QzXHUyN0RGXHUyN0VCXHUyN0Y3XHUyODAzXHUyODBGXHUyODFCXHUyODI3XHUyODMzIisKKyAgICAgICAgIlx1MjgzRlx1Mjg0Qlx1Mjg1N1x1MjI5Rlx1Mjg2M1x1Mjg2Rlx1Mjg3Qlx1Mjg4N1x1Mjg5M1x1MjY5Qlx1MjZCM1x1Mjg5RiIrCisgICAgICAgICJcdTI4QUJcdTI4QjdcdTI4QzNcdTI4Q0ZcdTI4REJcdTI4Q0ZcdTI4QjdcdTI4RTdcdTI4RjNcdTI4RkZcdTI5MEJcdTI5MTciKworICAgICAgICAiXHUyOERCXHUyNjQ3XHUyNUNGXHUyOTIzXHUyOTJGXHVBNUE1KFwwMDBcdTI5M0JcdTI5NDdcdTI5NTBcdTI5NjRcdTI5NzgiKworICAgICAgICAiXHUyOThDXHUyOUEwXHUyOUI0XHUyOUM4XHUyOURGXHUyOUU4XHUyQTM0XHVBNUE1XDAyNFwwMDBcdTAxRkFcdTJBNTlcdTJBNUQiKworICAgICAgICAiXHUyQTYxXHUyQTYxXHUwMjcxXHUwMjc1XHUyQTY1XHUyQTY5XHUyQTZEXHUyQTcxXHUyQTc1XHUyQTc5XHUyQTdEXHUyQTgxIisKKyAgICAgICAgIlx1MkE4NVx1MkE4OVx1MkE4RFx1MkE5MVx1MkE5NVx1MkE5OVx1QTVBNVwwMDRcMDAwXHVBNUE1XDAwNFx1MDIzNlx1MkE2MSIrCisgICAgICAgICJcdTJBNjFcdTJBNjFcdTJBOURcdTJBQTFcdTAxRjlcMDAwXHUyQUE1XHUyQUE5XHUwMjNEXHUwMjJEXHUyQTU5XHUwMjcxIisKKyAgICAgICAgIlx1MDI3NVx1MkE2NVx1MkE2OVx1MkE2RFx1MkE3MVx1MkFBRFx1MkFCMVx1MkFCNVx1MDI2NVx1MkFCOVx1MkFCRFx1MkFDMSIrCisgICAgICAgICJcdTAyNkRcMDAwXHUyQUM1XHUyQUM5XHUyQUNEXHUyQUQxXHVBNUE1XDAwNFwwMDBcdTJBRDZcdTJBREVcdTIyQ0VcMDAwIisKKyAgICAgICAgIlx1MjJEQVwwMDBcdTIyRTZcdTI0MjJcdTIyRjJcdTI0MkVcdTIyRkVcdTI0M0FcdTIzMEFcdTJBRTZcdTJBRUVcdTJBRjYiKworICAgICAgICAiXHUyQUZEXHUyQjAyXHUyQjAyXHUyQjBBXHUyQjBBXHUyQjEyXHUyQjEyXHUyQjFBXHUyQjFBXHVBNUE1XDAwNFx1MUZBQSIrCisgICAgICAgICJcdTAxNzFcdTAxNzFcdUE1QTVcMDA0XHUyMDNEXHUyQjIxXHUyQjIxXHVBNUE1XDAwNFx1MjA2RFx1QTVBNVwwMDRcdTIwOUQiKworICAgICAgICAiXHVBNUE1XDAwNFx1MjAxNVx1QTVBNVwwMDRcdTIwMjFcdUE1QTVcMDA0XHUyMDUxXHUyOTg1XHUyOTg1XHUyMkI1XHUyMkI1IisKKyAgICAgICAgIlx1MjJCRFx1MjJCRFx1MjMyOVx1MjMyOVx1QTVBNVwwMDRcdTIwRURcdUE1QTVcMDA0XHUyNDExXHVBNUE1XDAwNFx1MjEwRCIrCisgICAgICAgICJcdUE1QTVcMDA0XHUyMTFEXHVBNUE1XDAwNFx1MjEzRFx1QTVBNVwwMDRcdTIxNERcdUE1QTVcMDA0XHUyMTU1XHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTIxNjVcdUE1QTVcMDA0XHUyMTc1XHVBNUE1XDAwNFx1MjFBNVx1QTVBNVwwMDRcdTIxQzVcdUE1QTVcMDA0XHUyMUU5IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTIwMkRcdUE1QTVcMDA0XHUyMjREXHVBNUE1XDAwNFx1MjI3RFx1MDE3OVx1MDE3OVx1MUZBNVx1MUZBNSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUwMTg5XHUyQjI3XHUyQjI3XHUyQjMzXHUyQjMzXHUyQjNGXHUyQjNGXHUyQTQ2XHUyQTQ2XHVBNUE1IisKKyAgICAgICAgIlwwMDRcMDAwXHUwMjJEXHUyQjQ5XHUyQUFEXHUyQUM5XHUyQUNEXHUyQUIxXHUyQjREXHUwMjcxXHUwMjc1XHUyQUI1XHUwMjY1IisKKyAgICAgICAgIlx1MkE5RFx1MkFCOVx1MDFGOVx1MDI4NVx1MDI0RDlcMDM1IUlcdTAyNTFcdTAyNTVcdTAyNTlcdTAyNURcdTAyNjFcdTJBQTkiKworICAgICAgICAiXHUyQUE1XHUyQUJEXHUwMjZEXHUyQUMxXHUwMjNEXHUyQUQxXHUwODM5XHUwMzAxXHUwMjk5XHUwMDkxXHUwMkYxXHUwMkM1IisKKyAgICAgICAgIlx1MDgzRFx1MDJDRGVpXHUwODQxdVx1MDJFOVx1MDBDRFx1MDg0NVx1MDJERFx1MDJFMVx1MDI3OVx1MDJFNVx1MDJFRCIrCisgICAgICAgICJcdTA4NDlcdTAzQzFcdTA4NERcdTAzRjFcdTA4NTFcdTAwOTVcdTJCNTFcdTJBQzVcdTJCNTVcdTJCNTlcdTJBNjFcdTJCNUQiKworICAgICAgICAiXDAyMVx1MDcxMVx1MDI4OVx1MDBBOVx1MDMwNVx1MDc0MVx1MDJDOVx1MDBFNW1xXHUwNzdEfVx1MDQ2OVx1MDA4OT1cdTA3QjkiKworICAgICAgICAiXHUwN0M1XHUwMEVEXHUwMDhEXHUwN0U5XHUwMkI5XHUwNDIxXHUwMEZEXHUwMTM5XHUwMTAxXHUwMEExXHUyQTY1XHUyQjYxIisKKyAgICAgICAgIlx1MkE2OVx1MkI2NVwwMDBcMDAwXHUyQjY5XHUyQThEXHUyQTkxXHUyQUExXHUyQjZEXHUxMjUxXHUxMjc5XHUxNUY5XHUyQjcxIisKKyAgICAgICAgIlx1MTYxOVx1MTJDRFx1MkI3NVx1MTNBNVx1MTc1RFx1MTMzMVx1MTI2MVx1MTE5OVx1MTE5RFx1MTFBMVx1MTFBNVx1MTFBOSIrCisgICAgICAgICJcdTExQURcdTExQjFcdTExQjVcdTExQjlcdTExQkRcdTExQzFcdTExQzVcdTExQzlcdTExQ0RcdTExRDFcdTExRDVcdTExRDkiKworICAgICAgICAiXHUxMUREXHUxMUUxXHUxMUU1XHUxMUU5XHUxMUVEXHUxMUYxXHUxMUY1XHUxMUY5XHUxMUZEXHUxMjAxXHUxMjA1XHUxMjA5IisKKyAgICAgICAgIlx1MTIwRFx1MTIxMVx1MTIxNVx1MTIxOVx1MTIxRFx1MTIyMVx1MTIyNVx1MTIyOVx1MTIyRFx1MTIzMVx1MTIzNVx1MTIzOSIrCisgICAgICAgICJcdTEyM0RcdTEyNDFcdTEyNDVcdTEyODVcdTBCQzVcdTBCQ0RcdTBDOURcdTBCRDFcdTBCRDVcdTBCRDlcdTBCRERcdTBCRTEiKworICAgICAgICAiXHUwQkU1XHUwQkU5XHUwQkVEXHUwQkYxXHUwQkY1XHUwQkY5XHUwQkZEXHUwQzAxXHUwQzA1XHUwQzA5XHUwQzBEXHUwQzExIisKKyAgICAgICAgIlx1MEMxNVx1MEMxOVx1MEMxRFx1MEMyMVx1MEMyNVx1MEMyOVx1MEMyRFx1MEMzMVx1MEMzNVx1MEMzOVx1MEMzRFx1MEM0MSIrCisgICAgICAgICJcdTBDNDVcMDAwXDAwMFwwMDBcdTBDNDlcdTBDNERcdTBDNTFcdTBDNTVcdTBDNTlcdTBDNURcMDAwXDAwMFx1MEM2MVx1MEM2NSIrCisgICAgICAgICJcdTBDNjlcdTBDNkRcdTBDNzFcdTBDNzVcMDAwXDAwMFx1MEM3OVx1MEM3RFx1MEM4MVx1MEM4NVx1MEM4OVx1MEM4RFwwMDAiKworICAgICAgICAiXDAwMFx1MEM5MVx1MEM5NVx1MEM5OVwwMDBcMDAwXDAwMFx1MkI3OVx1MkI3RFx1MkI4MVwwMjZcdTJCODVcdTJCODlcdTJCOEQiKworICAgICAgICAiXDAwMFx1MkI5MVx1MkI5NVx1MkI5OVx1MkI5RFx1MkJBMVx1MkJBNVx1MkJBOVx1QTVBNVwwMjFcMDAwIgorICAgICAgICApOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb250ZW50cyA9IAorICAgICAgICAiXHVGRkZGICBcdTAzMDhhIFx1MDMwNDIzIFx1MDMwMVx1MDNCQyBcdTAzMjcxbzFcdTIwNDQ0MVx1MjA0NDIzXHUyMDQ0IisKKyAgICAgICAgIjRJSmlqTFx1MDBCN2xcdTAwQjdcdTAyQkNuc0RaXHUwMzBDRHpcdTAzMENkelx1MDMwQ0xKTGpsak5KTmpuamhcdTAyNjYiKworICAgICAgICAiclx1MDI3OVx1MDI3Qlx1MDI4MXd5IFx1MDMwNiBcdTAzMDcgXHUwMzBBIFx1MDMyOCBcdTAzMDMgXHUwMzBCXHUwMjYzIisKKyAgICAgICAgInhcdTAyOTUgXHUwMzQ1XHUwM0IyXHUwM0I4XHUwM0E1XHUwM0M2XHUwM0MwXHUwM0JBXHUwM0MxXHUwM0MyXHUwNTY1XHUwNTgyIisKKyAgICAgICAgIlx1MDYyN1x1MDY3NFx1MDY0OFx1MDY3NFx1MDZDN1x1MDY3NFx1MDY0QVx1MDY3NFx1MEU0RFx1MEUzMlx1MEVDRFx1MEVCMiIrCisgICAgICAgICJcdTBFQUJcdTBFOTlcdTBFQUJcdTBFQTFcdTBGMEJcdTBGQjJcdTBGNzFcdTBGODBcdTBGQjNcdTBGNzFcdTBGODBhXHUwMkJFIisKKyAgICAgICAgIiBcdTAzMTMgXHUwMzQyIFx1MDMxNFx1MjAxMCBcdTAzMzMuLi5cdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzUiKworICAgICAgICAiXHUyMDM1XHUyMDM1XHUyMDM1XHUyMDM1ISEgXHUwMzA1PyEhPzA1Njc4OStcdTIyMTI9KClSc2EvY2Evc0NcdTAwQjBDIisKKyAgICAgICAgImMvb2MvdVx1MDE5MFx1MDBCMEZnSFx1MDEyN05vUFFTTVRFTFRNQmVcdTA1RDBcdTA1RDFcdTA1RDJcdTA1RDMxXHUyMDQ0IisKKyAgICAgICAgIjMyXHUyMDQ0MzFcdTIwNDQ1Mlx1MjA0NDUzXHUyMDQ0NTRcdTIwNDQ1MVx1MjA0NDY1XHUyMDQ0NjFcdTIwNDQ4M1x1MjA0NCIrCisgICAgICAgICI4NVx1MjA0NDg3XHUyMDQ0OElJSUlJSVZWSVZJSVZJSUlcMDAwSVhYSVhJSWlpaWlpaXZ2aXZpaXZpaWlcMDAwaXh4aXgiKworICAgICAgICAiaWltXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJFXHUyMjJFXHUyMjJFXHUyMjJFXHUyMjJFMTAxMTEyIisKKyAgICAgICAgIjEzMTQxNTE2MTcxODE5MjAoMSkoMikoMykoNCkoNSkoNikoNykoOCkoOSkoMTApXDAwMCgxMSlcMDAwKDEyKVwwMDAoMSIrCisgICAgICAgICIzKVwwMDAoMTQpXDAwMCgxNSlcMDAwKDE2KVwwMDAoMTcpXDAwMCgxOClcMDAwKDE5KVwwMDAoMjApXDAwMDEuMi4zLjQiKworICAgICAgICAiLjUuNi43LjguOS4xMC4xMS4xMi4xMy4xNC4xNS4xNi4xNy4xOC4xOS4yMC4oYSkoYikoYykoZCkoZSkoZikoZykoaCkoIisKKyAgICAgICAgImkpKGopKGspKGwpKG0pKG4pKG8pKHApKHEpKHIpKHMpKHQpKHUpKHYpKHcpKHgpKHkpKHopQUdLT1VXWVx1NkJDRFx1OUY5RiIrCisgICAgICAgICJcdTRFMDBcdTRFMjhcdTRFMzZcdTRFM0ZcdTRFNTlcdTRFODVcdTRFOENcdTRFQTBcdTRFQkFcdTUxM0ZcdTUxNjVcdTUxNkIiKworICAgICAgICAiXHU1MTgyXHU1MTk2XHU1MUFCXHU1MUUwXHU1MUY1XHU1MjAwXHU1MjlCXHU1MkY5XHU1MzE1XHU1MzFBXHU1MzM4XHU1MzQxIisKKyAgICAgICAgIlx1NTM1Q1x1NTM2OVx1NTM4Mlx1NTNCNlx1NTNDOFx1NTNFM1x1NTZEN1x1NTcxRlx1NThFQlx1NTkwMlx1NTkwQVx1NTkxNSIrCisgICAgICAgICJcdTU5MjdcdTU5NzNcdTVCNTBcdTVCODBcdTVCRjhcdTVDMEZcdTVDMjJcdTVDMzhcdTVDNkVcdTVDNzFcdTVEREJcdTVERTUiKworICAgICAgICAiXHU1REYxXHU1REZFXHU1RTcyXHU1RTdBXHU1RTdGXHU1RUY0XHU1RUZFXHU1RjBCXHU1RjEzXHU1RjUwXHU1RjYxXHU1RjczIisKKyAgICAgICAgIlx1NUZDM1x1NjIwOFx1NjIzNlx1NjI0Qlx1NjUyRlx1NjUzNFx1NjU4N1x1NjU5N1x1NjVBNFx1NjVCOVx1NjVFMFx1NjVFNSIrCisgICAgICAgICJcdTY2RjBcdTY3MDhcdTY3MjhcdTZCMjBcdTZCNjJcdTZCNzlcdTZCQjNcdTZCQ0JcdTZCRDRcdTZCREJcdTZDMEZcdTZDMTQiKworICAgICAgICAiXHU2QzM0XHU3MDZCXHU3MjJBXHU3MjM2XHU3MjNCXHU3MjNGXHU3MjQ3XHU3MjU5XHU3MjVCXHU3MkFDXHU3Mzg0XHU3Mzg5IisKKyAgICAgICAgIlx1NzREQ1x1NzRFNlx1NzUxOFx1NzUxRlx1NzUyOFx1NzUzMFx1NzU4Qlx1NzU5Mlx1NzY3Nlx1NzY3RFx1NzZBRVx1NzZCRiIrCisgICAgICAgICJcdTc2RUVcdTc3REJcdTc3RTJcdTc3RjNcdTc5M0FcdTc5QjhcdTc5QkVcdTdBNzRcdTdBQ0JcdTdBRjlcdTdDNzNcdTdDRjgiKworICAgICAgICAiXHU3RjM2XHU3RjUxXHU3RjhBXHU3RkJEXHU4MDAxXHU4MDBDXHU4MDEyXHU4MDMzXHU4MDdGXHU4MDg5XHU4MUUzXHU4MUVBIisKKyAgICAgICAgIlx1ODFGM1x1ODFGQ1x1ODIwQ1x1ODIxQlx1ODIxRlx1ODI2RVx1ODI3Mlx1ODI3OFx1ODY0RFx1ODY2Qlx1ODg0MFx1ODg0QyIrCisgICAgICAgICJcdTg4NjNcdTg5N0VcdTg5OEJcdTg5RDJcdThBMDBcdThDMzdcdThDNDZcdThDNTVcdThDNzhcdThDOURcdThENjRcdThENzAiKworICAgICAgICAiXHU4REIzXHU4RUFCXHU4RUNBXHU4RjlCXHU4RkIwXHU4RkI1XHU5MDkxXHU5MTQ5XHU5MUM2XHU5MUNDXHU5MUQxXHU5NTc3IisKKyAgICAgICAgIlx1OTU4MFx1OTYxQ1x1OTZCNlx1OTZCOVx1OTZFOFx1OTc1MVx1OTc1RVx1OTc2Mlx1OTc2OVx1OTdDQlx1OTdFRFx1OTdGMyIrCisgICAgICAgICJcdTk4MDFcdTk4QThcdTk4REJcdTk4REZcdTk5OTZcdTk5OTlcdTk5QUNcdTlBQThcdTlBRDhcdTlBREZcdTlCMjVcdTlCMkYiKworICAgICAgICAiXHU5QjMyXHU5QjNDXHU5QjVBXHU5Q0U1XHU5RTc1XHU5RTdGXHU5RUE1XHU5RUJCXHU5RUMzXHU5RUNEXHU5RUQxXHU5RUY5IisKKyAgICAgICAgIlx1OUVGRFx1OUYwRVx1OUYxM1x1OUYyMFx1OUYzQlx1OUY0QVx1OUY1Mlx1OUY4RFx1OUY5Q1x1OUZBMFx1MzAxMlx1NTM0NCIrCisgICAgICAgICJcdTUzNDUgXHUzMDk5IFx1MzA5QVx1MTEwMFx1MTEwMVx1MTFBQVx1MTEwMlx1MTFBQ1x1MTFBRFx1MTEwM1x1MTEwNFx1MTEwNSIrCisgICAgICAgICJcdTExQjBcdTExQjFcdTExQjJcdTExQjNcdTExQjRcdTExQjVcdTExMUFcdTExMDZcdTExMDdcdTExMDhcdTExMjFcdTExMDkiKworICAgICAgICAiXHUxMTBBXHUxMTBCXHUxMTBDXHUxMTBEXHUxMTBFXHUxMTBGXHUxMTEwXHUxMTExXHUxMTEyXHUxMTYxXHUxMTYyXHUxMTYzIisKKyAgICAgICAgIlx1MTE2NFx1MTE2NVx1MTE2Nlx1MTE2N1x1MTE2OFx1MTE2OVx1MTE2QVx1MTE2Qlx1MTE2Q1x1MTE2RFx1MTE2RVx1MTE2RiIrCisgICAgICAgICJcdTExNzBcdTExNzFcdTExNzJcdTExNzNcdTExNzRcdTExNzVcdTExNjBcdTExMTRcdTExMTVcdTExQzdcdTExQzhcdTExQ0MiKworICAgICAgICAiXHUxMUNFXHUxMUQzXHUxMUQ3XHUxMUQ5XHUxMTFDXHUxMUREXHUxMURGXHUxMTFEXHUxMTFFXHUxMTIwXHUxMTIyXHUxMTIzIisKKyAgICAgICAgIlx1MTEyN1x1MTEyOVx1MTEyQlx1MTEyQ1x1MTEyRFx1MTEyRVx1MTEyRlx1MTEzMlx1MTEzNlx1MTE0MFx1MTE0N1x1MTE0QyIrCisgICAgICAgICJcdTExRjFcdTExRjJcdTExNTdcdTExNThcdTExNTlcdTExODRcdTExODVcdTExODhcdTExOTFcdTExOTJcdTExOTRcdTExOUUiKworICAgICAgICAiXHUxMUExXHU0RTA5XHU1NkRCXHU0RTBBXHU0RTJEXHU0RTBCXHU3NTMyXHU0RTE5XHU0RTAxXHU1OTI5XHU1NzMwKFx1MTEwMCIrCisgICAgICAgICIpKFx1MTEwMikoXHUxMTAzKShcdTExMDUpKFx1MTEwNikoXHUxMTA3KShcdTExMDkpKFx1MTEwQikoXHUxMTBDKShcdTExMEUiKworICAgICAgICAiKShcdTExMEYpKFx1MTExMCkoXHUxMTExKShcdTExMTIpKFx1MTEwMFx1MTE2MSlcMDAwKFx1MTEwMlx1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMDNcdTExNjEpXDAwMChcdTExMDVcdTExNjEpXDAwMChcdTExMDZcdTExNjEpXDAwMChcdTExMDdcdTExNjEpXDAwMCIrCisgICAgICAgICIoXHUxMTA5XHUxMTYxKVwwMDAoXHUxMTBCXHUxMTYxKVwwMDAoXHUxMTBDXHUxMTYxKVwwMDAoXHUxMTBFXHUxMTYxKVwwMDAiKworICAgICAgICAiKFx1MTEwRlx1MTE2MSlcMDAwKFx1MTExMFx1MTE2MSlcMDAwKFx1MTExMVx1MTE2MSlcMDAwKFx1MTExMlx1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMENcdTExNkUpXDAwMChcdTRFMDApKFx1NEU4QykoXHU0RTA5KShcdTU2REIpKFx1NEU5NCkoXHU1MTZEKShcdTRFMDMiKworICAgICAgICAiKShcdTUxNkIpKFx1NEU1RCkoXHU1MzQxKShcdTY3MDgpKFx1NzA2QikoXHU2QzM0KShcdTY3MjgpKFx1OTFEMSkoXHU1NzFGIisKKyAgICAgICAgIikoXHU2NUU1KShcdTY4MkEpKFx1NjcwOSkoXHU3OTNFKShcdTU0MEQpKFx1NzI3OSkoXHU4Q0ExKShcdTc5NUQpKFx1NTJCNCIrCisgICAgICAgICIpKFx1NEVFMykoXHU1NDdDKShcdTVCNjYpKFx1NzZFMykoXHU0RjAxKShcdThDQzcpKFx1NTM1NCkoXHU3OTZEKShcdTRGMTEiKworICAgICAgICAiKShcdTgxRUEpKFx1ODFGMylcdTc5RDhcdTc1MzdcdTkwNjlcdTUxMkFcdTUzNzBcdTZDRThcdTk4MDVcdTUxOTlcdTZCNjMiKworICAgICAgICAiXHU1REU2XHU1M0YzXHU1MzNCXHU1Qjk3XHU1OTFDMVx1NjcwODJcdTY3MDgzXHU2NzA4NFx1NjcwODVcdTY3MDg2XHU2NzA4IisKKyAgICAgICAgIjdcdTY3MDg4XHU2NzA4OVx1NjcwODEwXHU2NzA4MTFcdTY3MDgxMlx1NjcwOFx1MzBBMlx1MzBBNFx1MzBBNlx1MzBBOCIrCisgICAgICAgICJcdTMwQUFcdTMwQUJcdTMwQURcdTMwQUZcdTMwQjFcdTMwQjNcdTMwQjVcdTMwQjdcdTMwQjlcdTMwQkJcdTMwQkRcdTMwQkYiKworICAgICAgICAiXHUzMEMxXHUzMEM0XHUzMEM2XHUzMEM4XHUzMENBXHUzMENCXHUzMENDXHUzMENEXHUzMENFXHUzMENGXHUzMEQyXHUzMEQ1IisKKyAgICAgICAgIlx1MzBEOFx1MzBEQlx1MzBERVx1MzBERlx1MzBFMFx1MzBFMVx1MzBFMlx1MzBFNFx1MzBFNlx1MzBFOFx1MzBFOVx1MzBFQSIrCisgICAgICAgICJcdTMwRUJcdTMwRUNcdTMwRURcdTMwRUZcdTMwRjBcdTMwRjFcdTMwRjJcdTMwQTJcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQzgiKworICAgICAgICAiXDAwMFx1MzBBMlx1MzBFQlx1MzBENVx1MzBBMVwwMDBcdTMwQTJcdTMwRjNcdTMwRDhcdTMwOUFcdTMwQTJcMDAwXHUzMEEyIisKKyAgICAgICAgIlx1MzBGQ1x1MzBFQlx1MzBBNFx1MzBDQlx1MzBGM1x1MzBBRlx1MzA5OVwwMDBcdTMwQTRcdTMwRjNcdTMwQzFcdTMwQTYiKworICAgICAgICAiXHUzMEE5XHUzMEYzXHUzMEE4XHUzMEI5XHUzMEFGXHUzMEZDXHUzMEM4XHUzMDk5XDAwMFx1MzBBOFx1MzBGQ1x1MzBBQiIrCisgICAgICAgICJcdTMwRkNcMDAwXHUzMEFBXHUzMEYzXHUzMEI5XHUzMEFBXHUzMEZDXHUzMEUwXHUzMEFCXHUzMEE0XHUzMEVBXHUzMEFCIisKKyAgICAgICAgIlx1MzBFOVx1MzBDM1x1MzBDOFwwMDBcdTMwQUJcdTMwRURcdTMwRUFcdTMwRkNcMDAwXHUzMEFCXHUzMDk5XHUzMEVEXHUzMEYzIisKKyAgICAgICAgIlwwMDBcdTMwQUJcdTMwOTlcdTMwRjNcdTMwREVcMDAwXHUzMEFEXHUzMDk5XHUzMEFCXHUzMDk5XDAwMFx1MzBBRFx1MzA5OSIrCisgICAgICAgICJcdTMwQ0JcdTMwRkNcMDAwXHUzMEFEXHUzMEU1XHUzMEVBXHUzMEZDXDAwMFx1MzBBRFx1MzA5OVx1MzBFQlx1MzBCRlx1MzA5OSIrCisgICAgICAgICJcdTMwRkNcMDAwXHUzMEFEXHUzMEVEXHUzMEFEXHUzMEVEXHUzMEFGXHUzMDk5XHUzMEU5XHUzMEUwXDAwMFx1MzBBRFx1MzBFRCIrCisgICAgICAgICJcdTMwRTFcdTMwRkNcdTMwQzhcdTMwRUJcMDAwXHUzMEFEXHUzMEVEXHUzMEVGXHUzMEMzXHUzMEM4XDAwMFx1MzBBRlx1MzA5OSIrCisgICAgICAgICJcdTMwRTlcdTMwRTBcdTMwQzhcdTMwRjNcMDAwXHUzMEFGXHUzMEVCXHUzMEJCXHUzMDk5XHUzMEE0XHUzMEVEXDAwMFx1MzBBRiIrCisgICAgICAgICJcdTMwRURcdTMwRkNcdTMwQ0RcMDAwXHUzMEIxXHUzMEZDXHUzMEI5XHUzMEIzXHUzMEVCXHUzMENBXHUzMEIzXHUzMEZDIisKKyAgICAgICAgIlx1MzBEQlx1MzA5QVwwMDBcdTMwQjVcdTMwQTRcdTMwQUZcdTMwRUJcMDAwXHUzMEI1XHUzMEYzXHUzMEMxXHUzMEZDXHUzMEUwIisKKyAgICAgICAgIlwwMDBcdTMwQjdcdTMwRUFcdTMwRjNcdTMwQUZcdTMwOTlcMDAwXHUzMEJCXHUzMEYzXHUzMEMxXHUzMEJCXHUzMEYzXHUzMEM4IisKKyAgICAgICAgIlx1MzBCRlx1MzA5OVx1MzBGQ1x1MzBCOVwwMDBcdTMwQzZcdTMwOTlcdTMwQjdcdTMwQzhcdTMwOTlcdTMwRUJcdTMwQ0EiKworICAgICAgICAiXHUzMENFXHUzMENFXHUzMEMzXHUzMEM4XHUzMENGXHUzMEE0XHUzMEM0XHUzMENGXHUzMDlBXHUzMEZDXHUzMEJCXHUzMEYzIisKKyAgICAgICAgIlx1MzBDOFwwMDBcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQzRcMDAwXHUzMENGXHUzMDk5XHUzMEZDXHUzMEVDXHUzMEVCXDAwMCIrCisgICAgICAgICJcdTMwRDJcdTMwOUFcdTMwQTJcdTMwQjlcdTMwQzhcdTMwRUJcMDAwXHUzMEQyXHUzMDlBXHUzMEFGXHUzMEVCXDAwMFx1MzBEMiIrCisgICAgICAgICJcdTMwOUFcdTMwQjNcdTMwRDJcdTMwOTlcdTMwRUJcdTMwRDVcdTMwQTFcdTMwRTlcdTMwQzNcdTMwQzhcdTMwOTlcMDAwIisKKyAgICAgICAgIlx1MzBENVx1MzBBM1x1MzBGQ1x1MzBDOFwwMDBcdTMwRDVcdTMwOTlcdTMwQzNcdTMwQjdcdTMwQTdcdTMwRUJcMDAwXHUzMEQ1IisKKyAgICAgICAgIlx1MzBFOVx1MzBGM1x1MzBEOFx1MzBBRlx1MzBCRlx1MzBGQ1x1MzBFQlwwMDBcdTMwRDhcdTMwOUFcdTMwQkRcdTMwRDgiKworICAgICAgICAiXHUzMDlBXHUzMENCXHUzMEQyXDAwMFx1MzBEOFx1MzBFQlx1MzBDNFx1MzBEOFx1MzA5QVx1MzBGM1x1MzBCOVwwMDBcdTMwRDgiKworICAgICAgICAiXHUzMDlBXHUzMEZDXHUzMEI3XHUzMDk5XDAwMFx1MzBEOFx1MzA5OVx1MzBGQ1x1MzBCRlwwMDBcdTMwREJcdTMwOUFcdTMwQTQiKworICAgICAgICAiXHUzMEYzXHUzMEM4XDAwMFx1MzBEQlx1MzA5OVx1MzBFQlx1MzBDOFwwMDBcdTMwREJcdTMwRjNcdTMwREJcdTMwOUFcdTMwRjMiKworICAgICAgICAiXHUzMEM4XHUzMDk5XDAwMFx1MzBEQlx1MzBGQ1x1MzBFQlx1MzBEQlx1MzBGQ1x1MzBGM1x1MzBERVx1MzBBNFx1MzBBRiIrCisgICAgICAgICJcdTMwRURcMDAwXHUzMERFXHUzMEE0XHUzMEVCXHUzMERFXHUzMEMzXHUzMENGXHUzMERFXHUzMEVCXHUzMEFGXHUzMERFIisKKyAgICAgICAgIlx1MzBGM1x1MzBCN1x1MzBFN1x1MzBGM1wwMDBcdTMwREZcdTMwQUZcdTMwRURcdTMwRjNcMDAwXHUzMERGXHUzMEVBXHUzMERGIisKKyAgICAgICAgIlx1MzBFQVx1MzBDRlx1MzA5OVx1MzBGQ1x1MzBFQlwwMDBcdTMwRTFcdTMwQUJcdTMwOTlcdTMwRTFcdTMwQUJcdTMwOTkiKworICAgICAgICAiXHUzMEM4XHUzMEYzXDAwMFx1MzBFNFx1MzBGQ1x1MzBDOFx1MzA5OVwwMDBcdTMwRTRcdTMwRkNcdTMwRUJcdTMwRTZcdTMwQTIiKworICAgICAgICAiXHUzMEYzXHUzMEVBXHUzMEMzXHUzMEM4XHUzMEVCXDAwMFx1MzBFQVx1MzBFOVx1MzBFQlx1MzBEMlx1MzA5QVx1MzBGQyIrCisgICAgICAgICJcMDAwXHUzMEVCXHUzMEZDXHUzMEQ1XHUzMDk5XHUzMEVCXDAwMFx1MzBFQ1x1MzBFMFx1MzBFQ1x1MzBGM1x1MzBDOFx1MzBCMSIrCisgICAgICAgICJcdTMwOTlcdTMwRjNcMDAwMFx1NzBCOTFcdTcwQjkyXHU3MEI5M1x1NzBCOTRcdTcwQjk1XHU3MEI5Nlx1NzBCOTdcdTcwQjkiKworICAgICAgICAiOFx1NzBCOTlcdTcwQjkxMFx1NzBCOTExXHU3MEI5MTJcdTcwQjkxM1x1NzBCOTE0XHU3MEI5MTVcdTcwQjkxNlx1NzBCOSIrCisgICAgICAgICIxN1x1NzBCOTE4XHU3MEI5MTlcdTcwQjkyMFx1NzBCOTIxXHU3MEI5MjJcdTcwQjkyM1x1NzBCOTI0XHU3MEI5aFBhZGEiKworICAgICAgICAiQVViYXJvVnBjXHU1RTczXHU2MjEwXHU2NjJEXHU1NDhDXHU1OTI3XHU2QjYzXHU2NjBFXHU2Q0JCXHU2ODJBXHU1RjBGIisKKyAgICAgICAgIlx1NEYxQVx1NzkzRVwwMDBwQW5BXHUwM0JDQW1Ba0FLQkdCY2Fsa2NhbFwwMDBwRm5GXHUwM0JDRlx1MDNCQ2dtZ2tnSCIrCisgICAgICAgICJ6a0h6TUh6R0h6VEh6XHUwM0JDbG1sZGxrbGZtbm1cdTAzQkNtbW1jbWttbW0yY20ya20ybW0zY20za20zbVx1MjIxNXMiKworICAgICAgICAibVx1MjIxNXMyXDAwMGtQYU1QYUdQYXJhZHJhZFx1MjIxNXNcMDAwcmFkXHUyMjE1czJcMDAwcHNcdTAzQkNzbXNwVm5WIisKKyAgICAgICAgIlx1MDNCQ1ZtVmtWTVZwV25XXHUwM0JDV21Xa1dNV2tcdTAzQTlNXHUwM0E5YS5tLlwwMDBCcWNjY2RDXHUyMjE1a2dcMDAwIisKKyAgICAgICAgIkNvLmRCR3loYUhQaW5LS0tNa3RsbmxvZ2x4bWJtaWxtb2xQSHAubS5cMDAwUFBNUFJzclN2V2IxXHU2NUU1Mlx1NjVFNSIrCisgICAgICAgICIzXHU2NUU1NFx1NjVFNTVcdTY1RTU2XHU2NUU1N1x1NjVFNThcdTY1RTU5XHU2NUU1MTBcdTY1RTUxMVx1NjVFNTEyXHU2NUU1IisKKyAgICAgICAgIjEzXHU2NUU1MTRcdTY1RTUxNVx1NjVFNTE2XHU2NUU1MTdcdTY1RTUxOFx1NjVFNTE5XHU2NUU1MjBcdTY1RTUyMVx1NjVFNSIrCisgICAgICAgICIyMlx1NjVFNTIzXHU2NUU1MjRcdTY1RTUyNVx1NjVFNTI2XHU2NUU1MjdcdTY1RTUyOFx1NjVFNTI5XHU2NUU1MzBcdTY1RTUiKworICAgICAgICAiMzFcdTY1RTVmZmZpZmxmZmxzdFx1MDU3NFx1MDU3Nlx1MDU3NFx1MDU2NVx1MDU3NFx1MDU2Qlx1MDU3RVx1MDU3Nlx1MDU3NCIrCisgICAgICAgICJcdTA1NkRcdTA1RTJcdTA1RDRcdTA1REJcdTA1RENcdTA1RERcdTA1RThcdTA1RUFcdTA1RDBcdTA1RENcdTA2NzFcdTA2N0IiKworICAgICAgICAiXHUwNjdFXHUwNjgwXHUwNjdBXHUwNjdGXHUwNjc5XHUwNkE0XHUwNkE2XHUwNjg0XHUwNjgzXHUwNjg2XHUwNjg3XHUwNjhEIisKKyAgICAgICAgIlx1MDY4Q1x1MDY4RVx1MDY4OFx1MDY5OFx1MDY5MVx1MDZBOVx1MDZBRlx1MDZCM1x1MDZCMVx1MDZCQVx1MDZCQlx1MDZENSIrCisgICAgICAgICJcdTA2NTRcdTA2QzFcdTA2QkVcdTA2RDJcdTA2RDJcdTA2NTRcdTA2QURcdTA2QzZcdTA2QzhcdTA2Q0JcdTA2QzVcdTA2QzkiKworICAgICAgICAiXHUwNkQwXHUwNjQ5XHUwNjRBXHUwNjU0XHUwNjI3XHUwNjRBXHUwNjU0XHUwNkQ1XHUwNjRBXHUwNjU0XHUwNjQ4XHUwNjRBIisKKyAgICAgICAgIlx1MDY1NFx1MDZDN1x1MDY0QVx1MDY1NFx1MDZDNlx1MDY0QVx1MDY1NFx1MDZDOFx1MDY0QVx1MDY1NFx1MDZEMFx1MDY0QSIrCisgICAgICAgICJcdTA2NTRcdTA2NDlcdTA2Q0NcdTA2NEFcdTA2NTRcdTA2MkNcdTA2NEFcdTA2NTRcdTA2MkRcdTA2NEFcdTA2NTRcdTA2NDUiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNjRBXHUwNjI4XHUwNjJDXHUwNjI4XHUwNjJEXHUwNjI4XHUwNjJFXHUwNjI4XHUwNjQ1XHUwNjI4IisKKyAgICAgICAgIlx1MDY0OVx1MDYyOFx1MDY0QVx1MDYyQVx1MDYyQ1x1MDYyQVx1MDYyRFx1MDYyQVx1MDYyRVx1MDYyQVx1MDY0NVx1MDYyQSIrCisgICAgICAgICJcdTA2NDlcdTA2MkFcdTA2NEFcdTA2MkJcdTA2MkNcdTA2MkJcdTA2NDVcdTA2MkJcdTA2NDlcdTA2MkJcdTA2NEFcdTA2MkMiKworICAgICAgICAiXHUwNjJEXHUwNjJDXHUwNjQ1XHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjJDXHUwNjJFXHUwNjJEXHUwNjJFXHUwNjQ1XHUwNjMzIisKKyAgICAgICAgIlx1MDYyQ1x1MDYzM1x1MDYyRFx1MDYzM1x1MDYyRVx1MDYzM1x1MDY0NVx1MDYzNVx1MDYyRFx1MDYzNVx1MDY0NVx1MDYzNiIrCisgICAgICAgICJcdTA2MkNcdTA2MzZcdTA2MkRcdTA2MzZcdTA2MkVcdTA2MzZcdTA2NDVcdTA2MzdcdTA2MkRcdTA2MzdcdTA2NDVcdTA2MzgiKworICAgICAgICAiXHUwNjQ1XHUwNjM5XHUwNjJDXHUwNjM5XHUwNjQ1XHUwNjNBXHUwNjJDXHUwNjNBXHUwNjQ1XHUwNjQxXHUwNjJDXHUwNjQxIisKKyAgICAgICAgIlx1MDYyRFx1MDY0MVx1MDYyRVx1MDY0MVx1MDY0NVx1MDY0MVx1MDY0OVx1MDY0MVx1MDY0QVx1MDY0Mlx1MDYyRFx1MDY0MiIrCisgICAgICAgICJcdTA2NDVcdTA2NDJcdTA2NDlcdTA2NDJcdTA2NEFcdTA2NDNcdTA2MjdcdTA2NDNcdTA2MkNcdTA2NDNcdTA2MkRcdTA2NDMiKworICAgICAgICAiXHUwNjJFXHUwNjQzXHUwNjQ0XHUwNjQzXHUwNjQ1XHUwNjQzXHUwNjQ5XHUwNjQzXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjQ0IisKKyAgICAgICAgIlx1MDYyRFx1MDY0NFx1MDYyRVx1MDY0NFx1MDY0NVx1MDY0NFx1MDY0OVx1MDY0NFx1MDY0QVx1MDY0NVx1MDYyQ1x1MDY0NSIrCisgICAgICAgICJcdTA2NDVcdTA2NDVcdTA2NDlcdTA2NDZcdTA2MkNcdTA2NDZcdTA2MkRcdTA2NDZcdTA2MkVcdTA2NDZcdTA2NDVcdTA2NDYiKworICAgICAgICAiXHUwNjQ5XHUwNjQ2XHUwNjRBXHUwNjQ3XHUwNjJDXHUwNjQ3XHUwNjQ1XHUwNjQ3XHUwNjQ5XHUwNjQ3XHUwNjRBXHUwNjRBIisKKyAgICAgICAgIlx1MDYyRFx1MDY0QVx1MDYyRVx1MDY0QVx1MDY0OVx1MDYzMFx1MDY3MFx1MDYzMVx1MDY3MFx1MDY0OVx1MDY3MCBcdTA2NEMiKworICAgICAgICAiXHUwNjUxIFx1MDY0RFx1MDY1MSBcdTA2NEVcdTA2NTEgXHUwNjRGXHUwNjUxIFx1MDY1MFx1MDY1MSBcdTA2NTFcdTA2NzAiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNjMxXHUwNjRBXHUwNjU0XHUwNjMyXHUwNjRBXHUwNjU0XHUwNjQ2XHUwNjI4XHUwNjMxXHUwNjI4IisKKyAgICAgICAgIlx1MDYzMlx1MDYyOFx1MDY0Nlx1MDYyQVx1MDYzMVx1MDYyQVx1MDYzMlx1MDYyQVx1MDY0Nlx1MDYyQlx1MDYzMVx1MDYyQiIrCisgICAgICAgICJcdTA2MzJcdTA2MkJcdTA2NDZcdTA2NDVcdTA2MjdcdTA2NDZcdTA2MzFcdTA2NDZcdTA2MzJcdTA2NDZcdTA2NDZcdTA2NEEiKworICAgICAgICAiXHUwNjMxXHUwNjRBXHUwNjMyXHUwNjRBXHUwNjQ2XHUwNjRBXHUwNjU0XHUwNjJFXHUwNjRBXHUwNjU0XHUwNjQ3XHUwNjI4IisKKyAgICAgICAgIlx1MDY0N1x1MDYyQVx1MDY0N1x1MDYzNVx1MDYyRVx1MDY0NFx1MDY0N1x1MDY0Nlx1MDY0N1x1MDY0N1x1MDY3MFx1MDYyQiIrCisgICAgICAgICJcdTA2NDdcdTA2MzNcdTA2NDdcdTA2MzRcdTA2NDVcdTA2MzRcdTA2NDdcdTA2NDBcdTA2NEVcdTA2NTFcdTA2NDBcdTA2NEYiKworICAgICAgICAiXHUwNjUxXHUwNjQwXHUwNjUwXHUwNjUxXHUwNjM3XHUwNjQ5XHUwNjM3XHUwNjRBXHUwNjM5XHUwNjQ5XHUwNjM5XHUwNjRBIisKKyAgICAgICAgIlx1MDYzQVx1MDY0OVx1MDYzQVx1MDY0QVx1MDYzM1x1MDY0OVx1MDYzM1x1MDY0QVx1MDYzNFx1MDY0OVx1MDYzNFx1MDY0QSIrCisgICAgICAgICJcdTA2MkRcdTA2NDlcdTA2MkNcdTA2NDlcdTA2MkVcdTA2NDlcdTA2MzVcdTA2NDlcdTA2MzVcdTA2NEFcdTA2MzZcdTA2NDkiKworICAgICAgICAiXHUwNjM2XHUwNjRBXHUwNjM0XHUwNjJDXHUwNjM0XHUwNjJEXHUwNjM0XHUwNjJFXHUwNjM0XHUwNjMxXHUwNjMzXHUwNjMxIisKKyAgICAgICAgIlx1MDYzNVx1MDYzMVx1MDYzNlx1MDYzMVx1MDYyN1x1MDY0Qlx1MDYyQVx1MDYyQ1x1MDY0NVx1MDYyQVx1MDYyRFx1MDYyQyIrCisgICAgICAgICJcdTA2MkFcdTA2MkRcdTA2NDVcdTA2MkFcdTA2MkVcdTA2NDVcdTA2MkFcdTA2NDVcdTA2MkNcdTA2MkFcdTA2NDVcdTA2MkQiKworICAgICAgICAiXHUwNjJBXHUwNjQ1XHUwNjJFXHUwNjJEXHUwNjQ1XHUwNjRBXHUwNjJEXHUwNjQ1XHUwNjQ5XHUwNjMzXHUwNjJEXHUwNjJDIisKKyAgICAgICAgIlx1MDYzM1x1MDYyQ1x1MDYyRFx1MDYzM1x1MDYyQ1x1MDY0OVx1MDYzM1x1MDY0NVx1MDYyRFx1MDYzM1x1MDY0NVx1MDYyQyIrCisgICAgICAgICJcdTA2MzNcdTA2NDVcdTA2NDVcdTA2MzVcdTA2MkRcdTA2MkRcdTA2MzVcdTA2NDVcdTA2NDVcdTA2MzRcdTA2MkRcdTA2NDUiKworICAgICAgICAiXHUwNjM0XHUwNjJDXHUwNjRBXHUwNjM0XHUwNjQ1XHUwNjJFXHUwNjM0XHUwNjQ1XHUwNjQ1XHUwNjM2XHUwNjJEXHUwNjQ5IisKKyAgICAgICAgIlx1MDYzNlx1MDYyRVx1MDY0NVx1MDYzN1x1MDY0NVx1MDYyRFx1MDYzN1x1MDY0NVx1MDY0NVx1MDYzN1x1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2MzlcdTA2MkNcdTA2NDVcdTA2MzlcdTA2NDVcdTA2NDVcdTA2MzlcdTA2NDVcdTA2NDlcdTA2M0FcdTA2NDVcdTA2NDUiKworICAgICAgICAiXHUwNjNBXHUwNjQ1XHUwNjRBXHUwNjNBXHUwNjQ1XHUwNjQ5XHUwNjQxXHUwNjJFXHUwNjQ1XHUwNjQyXHUwNjQ1XHUwNjJEIisKKyAgICAgICAgIlx1MDY0Mlx1MDY0NVx1MDY0NVx1MDY0NFx1MDYyRFx1MDY0NVx1MDY0NFx1MDYyRFx1MDY0QVx1MDY0NFx1MDYyRFx1MDY0OSIrCisgICAgICAgICJcdTA2NDRcdTA2MkNcdTA2MkNcdTA2NDRcdTA2MkVcdTA2NDVcdTA2NDRcdTA2NDVcdTA2MkRcdTA2NDVcdTA2MkRcdTA2MkMiKworICAgICAgICAiXHUwNjQ1XHUwNjJEXHUwNjRBXHUwNjQ1XHUwNjJDXHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjQ1XHUwNjQ1XHUwNjJDXHUwNjJFIisKKyAgICAgICAgIlx1MDY0N1x1MDY0NVx1MDYyQ1x1MDY0N1x1MDY0NVx1MDY0NVx1MDY0Nlx1MDYyRFx1MDY0NVx1MDY0Nlx1MDYyRFx1MDY0OSIrCisgICAgICAgICJcdTA2NDZcdTA2MkNcdTA2NDVcdTA2NDZcdTA2MkNcdTA2NDlcdTA2NDZcdTA2NDVcdTA2NEFcdTA2NDZcdTA2NDVcdTA2NDkiKworICAgICAgICAiXHUwNjRBXHUwNjQ1XHUwNjQ1XHUwNjI4XHUwNjJFXHUwNjRBXHUwNjJBXHUwNjJDXHUwNjRBXHUwNjJBXHUwNjJDXHUwNjQ5IisKKyAgICAgICAgIlx1MDYyQVx1MDYyRVx1MDY0QVx1MDYyQVx1MDYyRVx1MDY0OVx1MDYyQVx1MDY0NVx1MDY0QVx1MDYyQVx1MDY0NVx1MDY0OSIrCisgICAgICAgICJcdTA2MkNcdTA2NDVcdTA2NEFcdTA2MkNcdTA2MkRcdTA2NDlcdTA2MkNcdTA2NDVcdTA2NDlcdTA2MzNcdTA2MkVcdTA2NDkiKworICAgICAgICAiXHUwNjM1XHUwNjJEXHUwNjRBXHUwNjM0XHUwNjJEXHUwNjRBXHUwNjM2XHUwNjJEXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjRBIisKKyAgICAgICAgIlx1MDY0NFx1MDY0NVx1MDY0QVx1MDY0QVx1MDYyQ1x1MDY0QVx1MDY0QVx1MDY0NVx1MDY0QVx1MDY0NVx1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2NDJcdTA2NDVcdTA2NEFcdTA2NDZcdTA2MkRcdTA2NEFcdTA2MzlcdTA2NDVcdTA2NEFcdTA2NDNcdTA2NDVcdTA2NEEiKworICAgICAgICAiXHUwNjQ2XHUwNjJDXHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjQ1XHUwNjQzXHUwNjQ1XHUwNjQ1IisKKyAgICAgICAgIlx1MDYyQ1x1MDYyRFx1MDY0QVx1MDYyRFx1MDYyQ1x1MDY0QVx1MDY0NVx1MDYyQ1x1MDY0QVx1MDY0MVx1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2MjhcdTA2MkRcdTA2NEFcdTA2MzNcdTA2MkVcdTA2NEFcdTA2NDZcdTA2MkNcdTA2NEFcdTA2MzVcdTA2NDRcdTA2RDIiKworICAgICAgICAiXHUwNjQyXHUwNjQ0XHUwNkQyXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjQ3XDAwMFx1MDYyN1x1MDY0M1x1MDYyOFx1MDYzMSIrCisgICAgICAgICJcMDAwXHUwNjQ1XHUwNjJEXHUwNjQ1XHUwNjJGXDAwMFx1MDYzNVx1MDY0NFx1MDYzOVx1MDY0NVwwMDBcdTA2MzFcdTA2MzMiKworICAgICAgICAiXHUwNjQ4XHUwNjQ0XDAwMFx1MDYzOVx1MDY0NFx1MDY0QVx1MDY0N1wwMDBcdTA2NDhcdTA2MzNcdTA2NDRcdTA2NDVcMDAwIisKKyAgICAgICAgIlx1MDYzNVx1MDY0NFx1MDY0OVx1MDYzNVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2NDRcdTA2NDcgXHUwNjM5XHUwNjQ0IisKKyAgICAgICAgIlx1MDY0QVx1MDY0NyBcdTA2NDhcdTA2MzNcdTA2NDRcdTA2NDVcMDAwXHUwNjJDXHUwNjQ0IFx1MDYyQ1x1MDY0NFx1MDYyNyIrCisgICAgICAgICJcdTA2NDRcdTA2NDdcMDAwXHUyMDE0XHUyMDEzX3t9XHUzMDE0XHUzMDE1XHUzMDEwXHUzMDExXHUzMDBBXHUzMDBCXHUzMDA4IisKKyAgICAgICAgIlx1MzAwOVx1MzAwQ1x1MzAwRFx1MzAwRVx1MzAwRixcdTMwMDE7OiMmKi08PlwxMzQkJUAgXHUwNjRCXHUwNjQwXHUwNjRCIisKKyAgICAgICAgIlx1MDY0MFx1MDY1MSBcdTA2NTJcdTA2NDBcdTA2NTJcdTA2MjFcdTA2MjdcdTA2NTNcdTA2MjdcdTA2NTRcdTA2NDhcdTA2NTQiKworICAgICAgICAiXHUwNjI3XHUwNjU1XHUwNjI5XHUwNjQ0XHUwNjI3XHUwNjUzXHUwNjQ0XHUwNjI3XHUwNjU0XHUwNjQ0XHUwNjI3XHUwNjU1IisKKyAgICAgICAgIlwwNDInW11eYHx+XHUzMDAyXHUzMEZCXHUzMEE1XHUzMEUzXHUwMEEyXHUwMEEzXHUwMEFDXHUwMEE2XHUwMEE1XHUyMEE5IisKKyAgICAgICAgIlx1MjUwMlx1MjE5MFx1MjE5MVx1MjE5Mlx1MjE5M1x1MjVBMFx1MjVDQkFcdTAzMDBBXHUwMzAxQVx1MDMwMkFcdTAzMDMiKworICAgICAgICAiQVx1MDMwOEFcdTAzMEFDXHUwMzI3RVx1MDMwMEVcdTAzMDFFXHUwMzAyRVx1MDMwOElcdTAzMDBJXHUwMzAxSVx1MDMwMiIrCisgICAgICAgICJJXHUwMzA4Tlx1MDMwM09cdTAzMDBPXHUwMzAxT1x1MDMwMk9cdTAzMDNPXHUwMzA4VVx1MDMwMFVcdTAzMDFVXHUwMzAyIisKKyAgICAgICAgIlVcdTAzMDhZXHUwMzAxYVx1MDMwMGFcdTAzMDFhXHUwMzAyYVx1MDMwM2FcdTAzMDhhXHUwMzBBY1x1MDMyN2VcdTAzMDAiKworICAgICAgICAiZVx1MDMwMWVcdTAzMDJlXHUwMzA4aVx1MDMwMGlcdTAzMDFpXHUwMzAyaVx1MDMwOG5cdTAzMDNvXHUwMzAwb1x1MDMwMSIrCisgICAgICAgICJvXHUwMzAyb1x1MDMwM29cdTAzMDh1XHUwMzAwdVx1MDMwMXVcdTAzMDJ1XHUwMzA4eVx1MDMwMXlcdTAzMDhBXHUwMzA0IisKKyAgICAgICAgImFcdTAzMDRBXHUwMzA2YVx1MDMwNkFcdTAzMjhhXHUwMzI4Q1x1MDMwMWNcdTAzMDFDXHUwMzAyY1x1MDMwMkNcdTAzMDciKworICAgICAgICAiY1x1MDMwN0NcdTAzMENjXHUwMzBDRFx1MDMwQ2RcdTAzMENFXHUwMzA0ZVx1MDMwNEVcdTAzMDZlXHUwMzA2RVx1MDMwNyIrCisgICAgICAgICJlXHUwMzA3RVx1MDMyOGVcdTAzMjhFXHUwMzBDZVx1MDMwQ0dcdTAzMDJnXHUwMzAyR1x1MDMwNmdcdTAzMDZHXHUwMzA3IisKKyAgICAgICAgImdcdTAzMDdHXHUwMzI3Z1x1MDMyN0hcdTAzMDJoXHUwMzAySVx1MDMwM2lcdTAzMDNJXHUwMzA0aVx1MDMwNElcdTAzMDYiKworICAgICAgICAiaVx1MDMwNklcdTAzMjhpXHUwMzI4SVx1MDMwN0pcdTAzMDJqXHUwMzAyS1x1MDMyN2tcdTAzMjdMXHUwMzAxbFx1MDMwMSIrCisgICAgICAgICJMXHUwMzI3bFx1MDMyN0xcdTAzMENsXHUwMzBDTlx1MDMwMW5cdTAzMDFOXHUwMzI3blx1MDMyN05cdTAzMENuXHUwMzBDIisKKyAgICAgICAgIk9cdTAzMDRvXHUwMzA0T1x1MDMwNm9cdTAzMDZPXHUwMzBCb1x1MDMwQlJcdTAzMDFyXHUwMzAxUlx1MDMyN3JcdTAzMjciKworICAgICAgICAiUlx1MDMwQ3JcdTAzMENTXHUwMzAxc1x1MDMwMVNcdTAzMDJzXHUwMzAyU1x1MDMyN3NcdTAzMjdTXHUwMzBDc1x1MDMwQyIrCisgICAgICAgICJUXHUwMzI3dFx1MDMyN1RcdTAzMEN0XHUwMzBDVVx1MDMwM3VcdTAzMDNVXHUwMzA0dVx1MDMwNFVcdTAzMDZ1XHUwMzA2IisKKyAgICAgICAgIlVcdTAzMEF1XHUwMzBBVVx1MDMwQnVcdTAzMEJVXHUwMzI4dVx1MDMyOFdcdTAzMDJ3XHUwMzAyWVx1MDMwMnlcdTAzMDIiKworICAgICAgICAiWVx1MDMwOFpcdTAzMDF6XHUwMzAxWlx1MDMwN3pcdTAzMDdaXHUwMzBDelx1MDMwQ09cdTAzMUJvXHUwMzFCVVx1MDMxQiIrCisgICAgICAgICJ1XHUwMzFCQVx1MDMwQ2FcdTAzMENJXHUwMzBDaVx1MDMwQ09cdTAzMENvXHUwMzBDVVx1MDMwQ3VcdTAzMENVXHUwMzA4IisKKyAgICAgICAgIlx1MDMwNHVcdTAzMDhcdTAzMDRVXHUwMzA4XHUwMzAxdVx1MDMwOFx1MDMwMVVcdTAzMDhcdTAzMEN1XHUwMzA4XHUwMzBDIisKKyAgICAgICAgIlVcdTAzMDhcdTAzMDB1XHUwMzA4XHUwMzAwQVx1MDMwOFx1MDMwNGFcdTAzMDhcdTAzMDRBXHUwMzA3XHUwMzA0YVx1MDMwNyIrCisgICAgICAgICJcdTAzMDRcdTAwQzZcdTAzMDRcdTAwRTZcdTAzMDRHXHUwMzBDZ1x1MDMwQ0tcdTAzMENrXHUwMzBDT1x1MDMyOG9cdTAzMjgiKworICAgICAgICAiT1x1MDMyOFx1MDMwNG9cdTAzMjhcdTAzMDRcdTAxQjdcdTAzMENcdTAyOTJcdTAzMENqXHUwMzBDR1x1MDMwMWdcdTAzMDEiKworICAgICAgICAiTlx1MDMwMG5cdTAzMDBBXHUwMzBBXHUwMzAxYVx1MDMwQVx1MDMwMVx1MDBDNlx1MDMwMVx1MDBFNlx1MDMwMVx1MDBEOCIrCisgICAgICAgICJcdTAzMDFcdTAwRjhcdTAzMDFBXHUwMzBGYVx1MDMwRkFcdTAzMTFhXHUwMzExRVx1MDMwRmVcdTAzMEZFXHUwMzExZVx1MDMxMSIrCisgICAgICAgICJJXHUwMzBGaVx1MDMwRklcdTAzMTFpXHUwMzExT1x1MDMwRm9cdTAzMEZPXHUwMzExb1x1MDMxMVJcdTAzMEZyXHUwMzBGIisKKyAgICAgICAgIlJcdTAzMTFyXHUwMzExVVx1MDMwRnVcdTAzMEZVXHUwMzExdVx1MDMxMVNcdTAzMjZzXHUwMzI2VFx1MDMyNnRcdTAzMjYiKworICAgICAgICAiSFx1MDMwQ2hcdTAzMENBXHUwMzA3YVx1MDMwN0VcdTAzMjdlXHUwMzI3T1x1MDMwOFx1MDMwNG9cdTAzMDhcdTAzMDRPIisKKyAgICAgICAgIlx1MDMwM1x1MDMwNG9cdTAzMDNcdTAzMDRPXHUwMzA3b1x1MDMwN09cdTAzMDdcdTAzMDRvXHUwMzA3XHUwMzA0WVx1MDMwNCIrCisgICAgICAgICJ5XHUwMzA0XHUwMzAwXHUwMzAxXHUwMzEzXHUwMzA4XHUwMzAxXHUwMkI5O1x1MDBBOFx1MDMwMVx1MDM5MVx1MDMwMVx1MDBCNyIrCisgICAgICAgICJcdTAzOTVcdTAzMDFcdTAzOTdcdTAzMDFcdTAzOTlcdTAzMDFcdTAzOUZcdTAzMDFcdTAzQTVcdTAzMDFcdTAzQTlcdTAzMDEiKworICAgICAgICAiXHUwM0I5XHUwMzA4XHUwMzAxXHUwMzk5XHUwMzA4XHUwM0E1XHUwMzA4XHUwM0IxXHUwMzAxXHUwM0I1XHUwMzAxXHUwM0I3IisKKyAgICAgICAgIlx1MDMwMVx1MDNCOVx1MDMwMVx1MDNDNVx1MDMwOFx1MDMwMVx1MDNCOVx1MDMwOFx1MDNDNVx1MDMwOFx1MDNCRlx1MDMwMSIrCisgICAgICAgICJcdTAzQzVcdTAzMDFcdTAzQzlcdTAzMDFcdTAzRDJcdTAzMDFcdTAzRDJcdTAzMDhcdTA0MTVcdTAzMDBcdTA0MTVcdTAzMDgiKworICAgICAgICAiXHUwNDEzXHUwMzAxXHUwNDA2XHUwMzA4XHUwNDFBXHUwMzAxXHUwNDE4XHUwMzAwXHUwNDIzXHUwMzA2XHUwNDE4XHUwMzA2IisKKyAgICAgICAgIlx1MDQzOFx1MDMwNlx1MDQzNVx1MDMwMFx1MDQzNVx1MDMwOFx1MDQzM1x1MDMwMVx1MDQ1Nlx1MDMwOFx1MDQzQVx1MDMwMSIrCisgICAgICAgICJcdTA0MzhcdTAzMDBcdTA0NDNcdTAzMDZcdTA0NzRcdTAzMEZcdTA0NzVcdTAzMEZcdTA0MTZcdTAzMDZcdTA0MzZcdTAzMDYiKworICAgICAgICAiXHUwNDEwXHUwMzA2XHUwNDMwXHUwMzA2XHUwNDEwXHUwMzA4XHUwNDMwXHUwMzA4XHUwNDE1XHUwMzA2XHUwNDM1XHUwMzA2IisKKyAgICAgICAgIlx1MDREOFx1MDMwOFx1MDREOVx1MDMwOFx1MDQxNlx1MDMwOFx1MDQzNlx1MDMwOFx1MDQxN1x1MDMwOFx1MDQzN1x1MDMwOCIrCisgICAgICAgICJcdTA0MThcdTAzMDRcdTA0MzhcdTAzMDRcdTA0MThcdTAzMDhcdTA0MzhcdTAzMDhcdTA0MUVcdTAzMDhcdTA0M0VcdTAzMDgiKworICAgICAgICAiXHUwNEU4XHUwMzA4XHUwNEU5XHUwMzA4XHUwNDJEXHUwMzA4XHUwNDREXHUwMzA4XHUwNDIzXHUwMzA0XHUwNDQzXHUwMzA0IisKKyAgICAgICAgIlx1MDQyM1x1MDMwOFx1MDQ0M1x1MDMwOFx1MDQyM1x1MDMwQlx1MDQ0M1x1MDMwQlx1MDQyN1x1MDMwOFx1MDQ0N1x1MDMwOCIrCisgICAgICAgICJcdTA0MkJcdTAzMDhcdTA0NEJcdTAzMDhcdTA2MjdcdTA2NTNcdTA2MjdcdTA2NTRcdTA2NDhcdTA2NTRcdTA2MjdcdTA2NTUiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNkQ1XHUwNjU0XHUwNkMxXHUwNjU0XHUwNkQyXHUwNjU0XHUwOTI4XHUwOTNDXHUwOTMwXHUwOTNDIisKKyAgICAgICAgIlx1MDkzM1x1MDkzQ1x1MDkxNVx1MDkzQ1x1MDkxNlx1MDkzQ1x1MDkxN1x1MDkzQ1x1MDkxQ1x1MDkzQ1x1MDkyMVx1MDkzQyIrCisgICAgICAgICJcdTA5MjJcdTA5M0NcdTA5MkJcdTA5M0NcdTA5MkZcdTA5M0NcdTA5QzdcdTA5QkVcdTA5QzdcdTA5RDdcdTA5QTFcdTA5QkMiKworICAgICAgICAiXHUwOUEyXHUwOUJDXHUwOUFGXHUwOUJDXHUwQTMyXHUwQTNDXHUwQTM4XHUwQTNDXHUwQTE2XHUwQTNDXHUwQTE3XHUwQTNDIisKKyAgICAgICAgIlx1MEExQ1x1MEEzQ1x1MEEyQlx1MEEzQ1x1MEI0N1x1MEI1Nlx1MEI0N1x1MEIzRVx1MEI0N1x1MEI1N1x1MEIyMVx1MEIzQyIrCisgICAgICAgICJcdTBCMjJcdTBCM0NcdTBCOTJcdTBCRDdcdTBCQzZcdTBCQkVcdTBCQzdcdTBCQkVcdTBCQzZcdTBCRDdcdTBDNDZcdTBDNTYiKworICAgICAgICAiXHUwQ0JGXHUwQ0Q1XHUwQ0M2XHUwQ0Q1XHUwQ0M2XHUwQ0Q2XHUwQ0M2XHUwQ0MyXHUwQ0M2XHUwQ0MyXHUwQ0Q1XHUwRDQ2IisKKyAgICAgICAgIlx1MEQzRVx1MEQ0N1x1MEQzRVx1MEQ0Nlx1MEQ1N1x1MEREOVx1MERDQVx1MEREOVx1MERDRlx1MEREOVx1MERDRlx1MERDQSIrCisgICAgICAgICJcdTBERDlcdTBEREZcdTBGNDJcdTBGQjdcdTBGNENcdTBGQjdcdTBGNTFcdTBGQjdcdTBGNTZcdTBGQjdcdTBGNUJcdTBGQjciKworICAgICAgICAiXHUwRjQwXHUwRkI1XHUwRjcxXHUwRjcyXHUwRjcxXHUwRjc0XHUwRkIyXHUwRjgwXHUwRkIzXHUwRjgwXHUwRjcxXHUwRjgwIisKKyAgICAgICAgIlx1MEY5Mlx1MEZCN1x1MEY5Q1x1MEZCN1x1MEZBMVx1MEZCN1x1MEZBNlx1MEZCN1x1MEZBQlx1MEZCN1x1MEY5MFx1MEZCNSIrCisgICAgICAgICJcdTEwMjVcdTEwMkVBXHUwMzI1YVx1MDMyNUJcdTAzMDdiXHUwMzA3Qlx1MDMyM2JcdTAzMjNCXHUwMzMxYlx1MDMzMUMiKworICAgICAgICAiXHUwMzI3XHUwMzAxY1x1MDMyN1x1MDMwMURcdTAzMDdkXHUwMzA3RFx1MDMyM2RcdTAzMjNEXHUwMzMxZFx1MDMzMURcdTAzMjciKworICAgICAgICAiZFx1MDMyN0RcdTAzMkRkXHUwMzJERVx1MDMwNFx1MDMwMGVcdTAzMDRcdTAzMDBFXHUwMzA0XHUwMzAxZVx1MDMwNFx1MDMwMSIrCisgICAgICAgICJFXHUwMzJEZVx1MDMyREVcdTAzMzBlXHUwMzMwRVx1MDMyN1x1MDMwNmVcdTAzMjdcdTAzMDZGXHUwMzA3Zlx1MDMwN0ciKworICAgICAgICAiXHUwMzA0Z1x1MDMwNEhcdTAzMDdoXHUwMzA3SFx1MDMyM2hcdTAzMjNIXHUwMzA4aFx1MDMwOEhcdTAzMjdoXHUwMzI3IisKKyAgICAgICAgIkhcdTAzMkVoXHUwMzJFSVx1MDMzMGlcdTAzMzBJXHUwMzA4XHUwMzAxaVx1MDMwOFx1MDMwMUtcdTAzMDFrXHUwMzAxSyIrCisgICAgICAgICJcdTAzMjNrXHUwMzIzS1x1MDMzMWtcdTAzMzFMXHUwMzIzbFx1MDMyM0xcdTAzMjNcdTAzMDRsXHUwMzIzXHUwMzA0TFx1MDMzMSIrCisgICAgICAgICJsXHUwMzMxTFx1MDMyRGxcdTAzMkRNXHUwMzAxbVx1MDMwMU1cdTAzMDdtXHUwMzA3TVx1MDMyM21cdTAzMjNOXHUwMzA3IisKKyAgICAgICAgIm5cdTAzMDdOXHUwMzIzblx1MDMyM05cdTAzMzFuXHUwMzMxTlx1MDMyRG5cdTAzMkRPXHUwMzAzXHUwMzAxb1x1MDMwMyIrCisgICAgICAgICJcdTAzMDFPXHUwMzAzXHUwMzA4b1x1MDMwM1x1MDMwOE9cdTAzMDRcdTAzMDBvXHUwMzA0XHUwMzAwT1x1MDMwNFx1MDMwMSIrCisgICAgICAgICJvXHUwMzA0XHUwMzAxUFx1MDMwMXBcdTAzMDFQXHUwMzA3cFx1MDMwN1JcdTAzMDdyXHUwMzA3Ulx1MDMyM3JcdTAzMjMiKworICAgICAgICAiUlx1MDMyM1x1MDMwNHJcdTAzMjNcdTAzMDRSXHUwMzMxclx1MDMzMVNcdTAzMDdzXHUwMzA3U1x1MDMyM3NcdTAzMjNTIisKKyAgICAgICAgIlx1MDMwMVx1MDMwN3NcdTAzMDFcdTAzMDdTXHUwMzBDXHUwMzA3c1x1MDMwQ1x1MDMwN1NcdTAzMjNcdTAzMDdzXHUwMzIzIisKKyAgICAgICAgIlx1MDMwN1RcdTAzMDd0XHUwMzA3VFx1MDMyM3RcdTAzMjNUXHUwMzMxdFx1MDMzMVRcdTAzMkR0XHUwMzJEVVx1MDMyNCIrCisgICAgICAgICJ1XHUwMzI0VVx1MDMzMHVcdTAzMzBVXHUwMzJEdVx1MDMyRFVcdTAzMDNcdTAzMDF1XHUwMzAzXHUwMzAxVVx1MDMwNFx1MDMwOCIrCisgICAgICAgICJ1XHUwMzA0XHUwMzA4Vlx1MDMwM3ZcdTAzMDNWXHUwMzIzdlx1MDMyM1dcdTAzMDB3XHUwMzAwV1x1MDMwMXdcdTAzMDEiKworICAgICAgICAiV1x1MDMwOHdcdTAzMDhXXHUwMzA3d1x1MDMwN1dcdTAzMjN3XHUwMzIzWFx1MDMwN3hcdTAzMDdYXHUwMzA4eFx1MDMwOCIrCisgICAgICAgICJZXHUwMzA3eVx1MDMwN1pcdTAzMDJ6XHUwMzAyWlx1MDMyM3pcdTAzMjNaXHUwMzMxelx1MDMzMWhcdTAzMzF0XHUwMzA4IisKKyAgICAgICAgIndcdTAzMEF5XHUwMzBBXHUwMTdGXHUwMzA3QVx1MDMyM2FcdTAzMjNBXHUwMzA5YVx1MDMwOUFcdTAzMDJcdTAzMDFhXHUwMzAyIisKKyAgICAgICAgIlx1MDMwMUFcdTAzMDJcdTAzMDBhXHUwMzAyXHUwMzAwQVx1MDMwMlx1MDMwOWFcdTAzMDJcdTAzMDlBXHUwMzAyXHUwMzAzIisKKyAgICAgICAgImFcdTAzMDJcdTAzMDNBXHUwMzIzXHUwMzAyYVx1MDMyM1x1MDMwMkFcdTAzMDZcdTAzMDFhXHUwMzA2XHUwMzAxQVx1MDMwNiIrCisgICAgICAgICJcdTAzMDBhXHUwMzA2XHUwMzAwQVx1MDMwNlx1MDMwOWFcdTAzMDZcdTAzMDlBXHUwMzA2XHUwMzAzYVx1MDMwNlx1MDMwMyIrCisgICAgICAgICJBXHUwMzIzXHUwMzA2YVx1MDMyM1x1MDMwNkVcdTAzMjNlXHUwMzIzRVx1MDMwOWVcdTAzMDlFXHUwMzAzZVx1MDMwM0UiKworICAgICAgICAiXHUwMzAyXHUwMzAxZVx1MDMwMlx1MDMwMUVcdTAzMDJcdTAzMDBlXHUwMzAyXHUwMzAwRVx1MDMwMlx1MDMwOWVcdTAzMDIiKworICAgICAgICAiXHUwMzA5RVx1MDMwMlx1MDMwM2VcdTAzMDJcdTAzMDNFXHUwMzIzXHUwMzAyZVx1MDMyM1x1MDMwMklcdTAzMDlpXHUwMzA5IisKKyAgICAgICAgIklcdTAzMjNpXHUwMzIzT1x1MDMyM29cdTAzMjNPXHUwMzA5b1x1MDMwOU9cdTAzMDJcdTAzMDFvXHUwMzAyXHUwMzAxTyIrCisgICAgICAgICJcdTAzMDJcdTAzMDBvXHUwMzAyXHUwMzAwT1x1MDMwMlx1MDMwOW9cdTAzMDJcdTAzMDlPXHUwMzAyXHUwMzAzb1x1MDMwMiIrCisgICAgICAgICJcdTAzMDNPXHUwMzIzXHUwMzAyb1x1MDMyM1x1MDMwMk9cdTAzMUJcdTAzMDFvXHUwMzFCXHUwMzAxT1x1MDMxQlx1MDMwMCIrCisgICAgICAgICJvXHUwMzFCXHUwMzAwT1x1MDMxQlx1MDMwOW9cdTAzMUJcdTAzMDlPXHUwMzFCXHUwMzAzb1x1MDMxQlx1MDMwM09cdTAzMUIiKworICAgICAgICAiXHUwMzIzb1x1MDMxQlx1MDMyM1VcdTAzMjN1XHUwMzIzVVx1MDMwOXVcdTAzMDlVXHUwMzFCXHUwMzAxdVx1MDMxQlx1MDMwMSIrCisgICAgICAgICJVXHUwMzFCXHUwMzAwdVx1MDMxQlx1MDMwMFVcdTAzMUJcdTAzMDl1XHUwMzFCXHUwMzA5VVx1MDMxQlx1MDMwM3VcdTAzMUIiKworICAgICAgICAiXHUwMzAzVVx1MDMxQlx1MDMyM3VcdTAzMUJcdTAzMjNZXHUwMzAweVx1MDMwMFlcdTAzMjN5XHUwMzIzWVx1MDMwOXlcdTAzMDkiKworICAgICAgICAiWVx1MDMwM3lcdTAzMDNcdTAzQjFcdTAzMTNcdTAzQjFcdTAzMTRcdTAzQjFcdTAzMTNcdTAzMDBcdTAzQjFcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwM0IxXHUwMzEzXHUwMzAxXHUwM0IxXHUwMzE0XHUwMzAxXHUwM0IxXHUwMzEzXHUwMzQyXHUwM0IxXHUwMzE0XHUwMzQyIisKKyAgICAgICAgIlx1MDM5MVx1MDMxM1x1MDM5MVx1MDMxNFx1MDM5MVx1MDMxM1x1MDMwMFx1MDM5MVx1MDMxNFx1MDMwMFx1MDM5MVx1MDMxMyIrCisgICAgICAgICJcdTAzMDFcdTAzOTFcdTAzMTRcdTAzMDFcdTAzOTFcdTAzMTNcdTAzNDJcdTAzOTFcdTAzMTRcdTAzNDJcdTAzQjVcdTAzMTMiKworICAgICAgICAiXHUwM0I1XHUwMzE0XHUwM0I1XHUwMzEzXHUwMzAwXHUwM0I1XHUwMzE0XHUwMzAwXHUwM0I1XHUwMzEzXHUwMzAxXHUwM0I1IisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM5NVx1MDMxM1x1MDM5NVx1MDMxNFx1MDM5NVx1MDMxM1x1MDMwMFx1MDM5NVx1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzOTVcdTAzMTNcdTAzMDFcdTAzOTVcdTAzMTRcdTAzMDFcdTAzQjdcdTAzMTNcdTAzQjdcdTAzMTRcdTAzQjdcdTAzMTMiKworICAgICAgICAiXHUwMzAwXHUwM0I3XHUwMzE0XHUwMzAwXHUwM0I3XHUwMzEzXHUwMzAxXHUwM0I3XHUwMzE0XHUwMzAxXHUwM0I3XHUwMzEzIisKKyAgICAgICAgIlx1MDM0Mlx1MDNCN1x1MDMxNFx1MDM0Mlx1MDM5N1x1MDMxM1x1MDM5N1x1MDMxNFx1MDM5N1x1MDMxM1x1MDMwMFx1MDM5NyIrCisgICAgICAgICJcdTAzMTRcdTAzMDBcdTAzOTdcdTAzMTNcdTAzMDFcdTAzOTdcdTAzMTRcdTAzMDFcdTAzOTdcdTAzMTNcdTAzNDJcdTAzOTciKworICAgICAgICAiXHUwMzE0XHUwMzQyXHUwM0I5XHUwMzEzXHUwM0I5XHUwMzE0XHUwM0I5XHUwMzEzXHUwMzAwXHUwM0I5XHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDNCOVx1MDMxM1x1MDMwMVx1MDNCOVx1MDMxNFx1MDMwMVx1MDNCOVx1MDMxM1x1MDM0Mlx1MDNCOVx1MDMxNFx1MDM0MiIrCisgICAgICAgICJcdTAzOTlcdTAzMTNcdTAzOTlcdTAzMTRcdTAzOTlcdTAzMTNcdTAzMDBcdTAzOTlcdTAzMTRcdTAzMDBcdTAzOTlcdTAzMTMiKworICAgICAgICAiXHUwMzAxXHUwMzk5XHUwMzE0XHUwMzAxXHUwMzk5XHUwMzEzXHUwMzQyXHUwMzk5XHUwMzE0XHUwMzQyXHUwM0JGXHUwMzEzIisKKyAgICAgICAgIlx1MDNCRlx1MDMxNFx1MDNCRlx1MDMxM1x1MDMwMFx1MDNCRlx1MDMxNFx1MDMwMFx1MDNCRlx1MDMxM1x1MDMwMVx1MDNCRiIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzOUZcdTAzMTNcdTAzOUZcdTAzMTRcdTAzOUZcdTAzMTNcdTAzMDBcdTAzOUZcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwMzlGXHUwMzEzXHUwMzAxXHUwMzlGXHUwMzE0XHUwMzAxXHUwM0M1XHUwMzEzXHUwM0M1XHUwMzE0XHUwM0M1XHUwMzEzIisKKyAgICAgICAgIlx1MDMwMFx1MDNDNVx1MDMxNFx1MDMwMFx1MDNDNVx1MDMxM1x1MDMwMVx1MDNDNVx1MDMxNFx1MDMwMVx1MDNDNVx1MDMxMyIrCisgICAgICAgICJcdTAzNDJcdTAzQzVcdTAzMTRcdTAzNDJcdTAzQTVcdTAzMTRcdTAzQTVcdTAzMTRcdTAzMDBcdTAzQTVcdTAzMTRcdTAzMDEiKworICAgICAgICAiXHUwM0E1XHUwMzE0XHUwMzQyXHUwM0M5XHUwMzEzXHUwM0M5XHUwMzE0XHUwM0M5XHUwMzEzXHUwMzAwXHUwM0M5XHUwMzE0IisKKyAgICAgICAgIlx1MDMwMFx1MDNDOVx1MDMxM1x1MDMwMVx1MDNDOVx1MDMxNFx1MDMwMVx1MDNDOVx1MDMxM1x1MDM0Mlx1MDNDOVx1MDMxNCIrCisgICAgICAgICJcdTAzNDJcdTAzQTlcdTAzMTNcdTAzQTlcdTAzMTRcdTAzQTlcdTAzMTNcdTAzMDBcdTAzQTlcdTAzMTRcdTAzMDBcdTAzQTkiKworICAgICAgICAiXHUwMzEzXHUwMzAxXHUwM0E5XHUwMzE0XHUwMzAxXHUwM0E5XHUwMzEzXHUwMzQyXHUwM0E5XHUwMzE0XHUwMzQyXHUwM0IxIisKKyAgICAgICAgIlx1MDMwMFx1MDNCMVx1MDMwMVx1MDNCNVx1MDMwMFx1MDNCNVx1MDMwMVx1MDNCN1x1MDMwMFx1MDNCN1x1MDMwMVx1MDNCOSIrCisgICAgICAgICJcdTAzMDBcdTAzQjlcdTAzMDFcdTAzQkZcdTAzMDBcdTAzQkZcdTAzMDFcdTAzQzVcdTAzMDBcdTAzQzVcdTAzMDFcdTAzQzkiKworICAgICAgICAiXHUwMzAwXHUwM0M5XHUwMzAxXHUwM0IxXHUwMzEzXHUwMzQ1XHUwM0IxXHUwMzE0XHUwMzQ1XHUwM0IxXHUwMzEzXHUwMzAwIisKKyAgICAgICAgIlx1MDM0NVwwMDBcdTAzQjFcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwM0IxXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDNCMSIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwM0IxXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNCMVx1MDMxNFx1MDM0Mlx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwMzkxXHUwMzEzXHUwMzQ1XHUwMzkxXHUwMzE0XHUwMzQ1XHUwMzkxXHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDM5MSIrCisgICAgICAgICJcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwMzkxXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDM5MVx1MDMxNFx1MDMwMVx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwMzkxXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDM5MVx1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzQjdcdTAzMTMiKworICAgICAgICAiXHUwMzQ1XHUwM0I3XHUwMzE0XHUwMzQ1XHUwM0I3XHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzNDVcMDAwXHUwM0I3XHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQjciKworICAgICAgICAiXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzOTdcdTAzMTNcdTAzNDVcdTAzOTciKworICAgICAgICAiXHUwMzE0XHUwMzQ1XHUwMzk3XHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDM5N1x1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzOTciKworICAgICAgICAiXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDM5N1x1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzOTdcdTAzMTNcdTAzNDJcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDM5N1x1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzNDVcdTAzQzlcdTAzMTRcdTAzNDVcdTAzQzkiKworICAgICAgICAiXHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDNDOVx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzMDFcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDNDOVx1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0M5XHUwMzE0IisKKyAgICAgICAgIlx1MDM0Mlx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzNDVcdTAzQTlcdTAzMTRcdTAzNDVcdTAzQTlcdTAzMTNcdTAzMDAiKworICAgICAgICAiXHUwMzQ1XDAwMFx1MDNBOVx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwM0E5IisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0E5XHUwMzE0XHUwMzQyXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzQjFcdTAzMDZcdTAzQjFcdTAzMDRcdTAzQjFcdTAzMDBcdTAzNDVcdTAzQjFcdTAzNDVcdTAzQjFcdTAzMDEiKworICAgICAgICAiXHUwMzQ1XHUwM0IxXHUwMzQyXHUwM0IxXHUwMzQyXHUwMzQ1XHUwMzkxXHUwMzA2XHUwMzkxXHUwMzA0XHUwMzkxXHUwMzAwIisKKyAgICAgICAgIlx1MDM5MVx1MDMwMVx1MDM5MVx1MDM0NVx1MDNCOVx1MDBBOFx1MDM0Mlx1MDNCN1x1MDMwMFx1MDM0NVx1MDNCN1x1MDM0NSIrCisgICAgICAgICJcdTAzQjdcdTAzMDFcdTAzNDVcdTAzQjdcdTAzNDJcdTAzQjdcdTAzNDJcdTAzNDVcdTAzOTVcdTAzMDBcdTAzOTVcdTAzMDEiKworICAgICAgICAiXHUwMzk3XHUwMzAwXHUwMzk3XHUwMzAxXHUwMzk3XHUwMzQ1XHUxRkJGXHUwMzAwXHUxRkJGXHUwMzAxXHUxRkJGXHUwMzQyIisKKyAgICAgICAgIlx1MDNCOVx1MDMwNlx1MDNCOVx1MDMwNFx1MDNCOVx1MDMwOFx1MDMwMFx1MDNCOVx1MDMwOFx1MDMwMVx1MDNCOVx1MDM0MiIrCisgICAgICAgICJcdTAzQjlcdTAzMDhcdTAzNDJcdTAzOTlcdTAzMDZcdTAzOTlcdTAzMDRcdTAzOTlcdTAzMDBcdTAzOTlcdTAzMDFcdTFGRkUiKworICAgICAgICAiXHUwMzAwXHUxRkZFXHUwMzAxXHUxRkZFXHUwMzQyXHUwM0M1XHUwMzA2XHUwM0M1XHUwMzA0XHUwM0M1XHUwMzA4XHUwMzAwIisKKyAgICAgICAgIlx1MDNDNVx1MDMwOFx1MDMwMVx1MDNDMVx1MDMxM1x1MDNDMVx1MDMxNFx1MDNDNVx1MDM0Mlx1MDNDNVx1MDMwOFx1MDM0MiIrCisgICAgICAgICJcdTAzQTVcdTAzMDZcdTAzQTVcdTAzMDRcdTAzQTVcdTAzMDBcdTAzQTVcdTAzMDFcdTAzQTFcdTAzMTRcdTAwQThcdTAzMDAiKworICAgICAgICAiXHUwMEE4XHUwMzAxYFx1MDNDOVx1MDMwMFx1MDM0NVx1MDNDOVx1MDM0NVx1MDNDOVx1MDMwMVx1MDM0NVx1MDNDOVx1MDM0MiIrCisgICAgICAgICJcdTAzQzlcdTAzNDJcdTAzNDVcdTAzOUZcdTAzMDBcdTAzOUZcdTAzMDFcdTAzQTlcdTAzMDBcdTAzQTlcdTAzMDFcdTAzQTkiKworICAgICAgICAiXHUwMzQ1XHUwMEI0XHUyMDAyXHUyMDAzXHUwM0E5S0FcdTAzMEFcdTIxOTBcdTAzMzhcdTIxOTJcdTAzMzhcdTIxOTRcdTAzMzgiKworICAgICAgICAiXHUyMUQwXHUwMzM4XHUyMUQ0XHUwMzM4XHUyMUQyXHUwMzM4XHUyMjAzXHUwMzM4XHUyMjA4XHUwMzM4XHUyMjBCXHUwMzM4IisKKyAgICAgICAgIlx1MjIyM1x1MDMzOFx1MjIyNVx1MDMzOFx1MjIzQ1x1MDMzOFx1MjI0M1x1MDMzOFx1MjI0NVx1MDMzOFx1MjI0OFx1MDMzOCIrCisgICAgICAgICI9XHUwMzM4XHUyMjYxXHUwMzM4XHUyMjREXHUwMzM4PFx1MDMzOD5cdTAzMzhcdTIyNjRcdTAzMzhcdTIyNjVcdTAzMzgiKworICAgICAgICAiXHUyMjcyXHUwMzM4XHUyMjczXHUwMzM4XHUyMjc2XHUwMzM4XHUyMjc3XHUwMzM4XHUyMjdBXHUwMzM4XHUyMjdCXHUwMzM4IisKKyAgICAgICAgIlx1MjI4Mlx1MDMzOFx1MjI4M1x1MDMzOFx1MjI4Nlx1MDMzOFx1MjI4N1x1MDMzOFx1MjJBMlx1MDMzOFx1MjJBOFx1MDMzOCIrCisgICAgICAgICJcdTIyQTlcdTAzMzhcdTIyQUJcdTAzMzhcdTIyN0NcdTAzMzhcdTIyN0RcdTAzMzhcdTIyOTFcdTAzMzhcdTIyOTJcdTAzMzgiKworICAgICAgICAiXHUyMkIyXHUwMzM4XHUyMkIzXHUwMzM4XHUyMkI0XHUwMzM4XHUyMkI1XHUwMzM4XHUzMDA4XHUzMDA5XHUzMDRCXHUzMDk5IisKKyAgICAgICAgIlx1MzA0RFx1MzA5OVx1MzA0Rlx1MzA5OVx1MzA1MVx1MzA5OVx1MzA1M1x1MzA5OVx1MzA1NVx1MzA5OVx1MzA1N1x1MzA5OSIrCisgICAgICAgICJcdTMwNTlcdTMwOTlcdTMwNUJcdTMwOTlcdTMwNURcdTMwOTlcdTMwNUZcdTMwOTlcdTMwNjFcdTMwOTlcdTMwNjRcdTMwOTkiKworICAgICAgICAiXHUzMDY2XHUzMDk5XHUzMDY4XHUzMDk5XHUzMDZGXHUzMDk5XHUzMDZGXHUzMDlBXHUzMDcyXHUzMDk5XHUzMDcyXHUzMDlBIisKKyAgICAgICAgIlx1MzA3NVx1MzA5OVx1MzA3NVx1MzA5QVx1MzA3OFx1MzA5OVx1MzA3OFx1MzA5QVx1MzA3Qlx1MzA5OVx1MzA3Qlx1MzA5QSIrCisgICAgICAgICJcdTMwNDZcdTMwOTlcdTMwOURcdTMwOTlcdTMwQUJcdTMwOTlcdTMwQURcdTMwOTlcdTMwQUZcdTMwOTlcdTMwQjFcdTMwOTkiKworICAgICAgICAiXHUzMEIzXHUzMDk5XHUzMEI1XHUzMDk5XHUzMEI3XHUzMDk5XHUzMEI5XHUzMDk5XHUzMEJCXHUzMDk5XHUzMEJEXHUzMDk5IisKKyAgICAgICAgIlx1MzBCRlx1MzA5OVx1MzBDMVx1MzA5OVx1MzBDNFx1MzA5OVx1MzBDNlx1MzA5OVx1MzBDOFx1MzA5OVx1MzBDRlx1MzA5OSIrCisgICAgICAgICJcdTMwQ0ZcdTMwOUFcdTMwRDJcdTMwOTlcdTMwRDJcdTMwOUFcdTMwRDVcdTMwOTlcdTMwRDVcdTMwOUFcdTMwRDhcdTMwOTkiKworICAgICAgICAiXHUzMEQ4XHUzMDlBXHUzMERCXHUzMDk5XHUzMERCXHUzMDlBXHUzMEE2XHUzMDk5XHUzMEVGXHUzMDk5XHUzMEYwXHUzMDk5IisKKyAgICAgICAgIlx1MzBGMVx1MzA5OVx1MzBGMlx1MzA5OVx1MzBGRFx1MzA5OVx1OEM0OFx1NjZGNFx1OEVDQVx1OENDOFx1NkVEMVx1NEUzMiIrCisgICAgICAgICJcdTUzRTVcdTlGOUNcdTlGOUNcdTU5NTFcdTkxRDFcdTU1ODdcdTU5NDhcdTYxRjZcdTc2NjlcdTdGODVcdTg2M0ZcdTg3QkEiKworICAgICAgICAiXHU4OEY4XHU5MDhGXHU2QTAyXHU2RDFCXHU3MEQ5XHU3M0RFXHU4NDNEXHU5MTZBXHU5OUYxXHU0RTgyXHU1Mzc1XHU2QjA0IisKKyAgICAgICAgIlx1NzIxQlx1ODYyRFx1OUUxRVx1NUQ1MFx1NkZFQlx1ODVDRFx1ODk2NFx1NjJDOVx1ODFEOFx1ODgxRlx1NUVDQVx1NjcxNyIrCisgICAgICAgICJcdTZENkFcdTcyRkNcdTkwQ0VcdTRGODZcdTUxQjdcdTUyREVcdTY0QzRcdTZBRDNcdTcyMTBcdTc2RTdcdTgwMDFcdTg2MDYiKworICAgICAgICAiXHU4NjVDXHU4REVGXHU5NzMyXHU5QjZGXHU5REZBXHU3ODhDXHU3OTdGXHU3REEwXHU4M0M5XHU5MzA0XHU5RTdGXHU4QUQ2IisKKyAgICAgICAgIlx1NThERlx1NUYwNFx1N0M2MFx1ODA3RVx1NzI2Mlx1NzhDQVx1OENDMlx1OTZGN1x1NThEOFx1NUM2Mlx1NkExM1x1NkREQSIrCisgICAgICAgICJcdTZGMEZcdTdEMkZcdTdFMzdcdTk2RkJcdTUyRDJcdTgwOEJcdTUxRENcdTUxQ0NcdTdBMUNcdTdEQkVcdTgzRjFcdTk2NzUiKworICAgICAgICAiXHU4QjgwXHU2MkNGXHU2QTAyXHU4QUZFXHU0RTM5XHU1QkU3XHU2MDEyXHU3Mzg3XHU3NTcwXHU1MzE3XHU3OEZCXHU0RkJGIisKKyAgICAgICAgIlx1NUZBOVx1NEUwRFx1NkNDQ1x1NjU3OFx1N0QyMlx1NTNDM1x1NTg1RVx1NzcwMVx1ODQ0OVx1OEFBQVx1NkJCQVx1OEZCMCIrCisgICAgICAgICJcdTZDODhcdTYyRkVcdTgyRTVcdTYzQTBcdTc1NjVcdTRFQUVcdTUxNjlcdTUxQzlcdTY4ODFcdTdDRTdcdTgyNkZcdThBRDIiKworICAgICAgICAiXHU5MUNGXHU1MkY1XHU1NDQyXHU1OTczXHU1RUVDXHU2NUM1XHU2RkZFXHU3OTJBXHU5NUFEXHU5QTZBXHU5RTk3XHU5RUNFIisKKyAgICAgICAgIlx1NTI5Qlx1NjZDNlx1NkI3N1x1OEY2Mlx1NUU3NFx1NjE5MFx1NjIwMFx1NjQ5QVx1NkYyM1x1NzE0OVx1NzQ4OVx1NzlDQSIrCisgICAgICAgICJcdTdERjRcdTgwNkZcdThGMjZcdTg0RUVcdTkwMjNcdTkzNEFcdTUyMTdcdTUyQTNcdTU0QkRcdTcwQzhcdTg4QzJcdThBQUEiKworICAgICAgICAiXHU1RUM5XHU1RkY1XHU2MzdCXHU2QkFFXHU3QzNFXHU3Mzc1XHU0RUU0XHU1NkY5XHU1QkU3XHU1REJBXHU2MDFDXHU3M0IyIisKKyAgICAgICAgIlx1NzQ2OVx1N0Y5QVx1ODA0Nlx1OTIzNFx1OTZGNlx1OTc0OFx1OTgxOFx1NEY4Qlx1NzlBRVx1OTFCNFx1OTZCOFx1NjBFMSIrCisgICAgICAgICJcdTRFODZcdTUwREFcdTVCRUVcdTVDM0ZcdTY1OTlcdTZBMDJcdTcxQ0VcdTc2NDJcdTg0RkNcdTkwN0NcdTlGOERcdTY2ODgiKworICAgICAgICAiXHU5NjJFXHU1Mjg5XHU2NzdCXHU2N0YzXHU2RDQxXHU2RTlDXHU3NDA5XHU3NTU5XHU3ODZCXHU3RDEwXHU5ODVFXHU1MTZEIisKKyAgICAgICAgIlx1NjIyRVx1OTY3OFx1NTAyQlx1NUQxOVx1NkRFQVx1OEYyQVx1NUY4Qlx1NjE0NFx1NjgxN1x1NzM4N1x1OTY4Nlx1NTIyOSIrCisgICAgICAgICJcdTU0MEZcdTVDNjVcdTY2MTNcdTY3NEVcdTY4QThcdTZDRTVcdTc0MDZcdTc1RTJcdTdGNzlcdTg4Q0ZcdTg4RTFcdTkxQ0MiKworICAgICAgICAiXHU5NkUyXHU1MzNGXHU2RUJBXHU1NDFEXHU3MUQwXHU3NDk4XHU4NUZBXHU5NkEzXHU5QzU3XHU5RTlGXHU2Nzk3XHU2RENCIisKKyAgICAgICAgIlx1ODFFOFx1N0FDQlx1N0IyMFx1N0M5Mlx1NzJDMFx1NzA5OVx1OEI1OFx1NEVDMFx1ODMzNlx1NTIzQVx1NTIwN1x1NUVBNiIrCisgICAgICAgICJcdTYyRDNcdTdDRDZcdTVCODVcdTZEMUVcdTY2QjRcdThGM0JcdTg4NENcdTk2NERcdTg5OEJcdTVFRDNcdTUxNDBcdTU1QzAiKworICAgICAgICAiXHU1ODVBXHU2Njc0XHU1MURFXHU3MzJBXHU3NkNBXHU3OTNDXHU3OTVFXHU3OTY1XHU3OThGXHU5NzU2XHU3Q0JFXHU3RkJEIisKKyAgICAgICAgIlx1ODYxMlx1OEFGOFx1OTAzOFx1OTBGRFx1OThFRlx1OThGQ1x1OTkyOFx1OURCNFx1MDVEOVx1MDVCNFx1MDVGMlx1MDVCNyIrCisgICAgICAgICJcdTA1RTlcdTA1QzFcdTA1RTlcdTA1QzJcdTA1RTlcdTA1QkNcdTA1QzFcdTA1RTlcdTA1QkNcdTA1QzJcdTA1RDBcdTA1QjciKworICAgICAgICAiXHUwNUQwXHUwNUI4XHUwNUQwXHUwNUJDXHUwNUQxXHUwNUJDXHUwNUQyXHUwNUJDXHUwNUQzXHUwNUJDXHUwNUQ0XHUwNUJDIisKKyAgICAgICAgIlx1MDVENVx1MDVCQ1x1MDVENlx1MDVCQ1x1MDVEOFx1MDVCQ1x1MDVEOVx1MDVCQ1x1MDVEQVx1MDVCQ1x1MDVEQlx1MDVCQyIrCisgICAgICAgICJcdTA1RENcdTA1QkNcdTA1REVcdTA1QkNcdTA1RTBcdTA1QkNcdTA1RTFcdTA1QkNcdTA1RTNcdTA1QkNcdTA1RTRcdTA1QkMiKworICAgICAgICAiXHUwNUU2XHUwNUJDXHUwNUU3XHUwNUJDXHUwNUU4XHUwNUJDXHUwNUU5XHUwNUJDXHUwNUVBXHUwNUJDXHUwNUQ1XHUwNUI5IisKKyAgICAgICAgIlx1MDVEMVx1MDVCRlx1MDVEQlx1MDVCRlx1MDVFNFx1MDVCRiIKKyAgICA7CisKKyAgICBzdGF0aWMgZmluYWwgQ29tcGFjdEJ5dGVBcnJheSBjYW5vbkNsYXNzID0gbmV3IENvbXBhY3RCeXRlQXJyYXkoCisgICAgICAgICJcMDAwXHUwMjAwXHVBNUE1XDAwNlwwMDBcdTAwODBcMDAwXDAwMFx1MDEwMFwwMDBcdTAxODBcdTAyMDBcdTAyODBcdTAzMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXHUwMzgwXHVBNUE1XDAwNFx1MDQwMFx1MDQ4MFx1MDUwMFx1MDQ4MFx1MDQ4MFx1MDU4MFx1MDYwMCIrCisgICAgICAgICJcdTA2ODBcdTA3MDBcdTA3ODBcdTA4MDBcdUE1QTVcMDE2XDAwMFx1MDg4MFwwMDBcdTA5MDBcdUE1QTVcMDE3XDAwMFx1MDk4MCIrCisgICAgICAgICJcdUE1QTVcMDM2XDAwMFx1MEEwMFx1MEE4MFx1QTVBNVx1MDE5NFwwMDBcdTBCMDBcdUE1QTVcMDA1XDAwMFx1MEI4MFwwMDAiKworICAgICAgICAiXDAwMFwwMDAiCisgICAgICAgICwKKyAgICAgICAgIlwwMDBcdTBDMDBcdUE1ODBcdTAwQTVcdTE1RTZcdUU4QTVcdTA0RENcdUU4RDhcdUE1MDVcdURDQ0FcdUNBQTVcdTA0REMiKworICAgICAgICAiXHVDQUNBXHVBNTBCXHVEQ0E1XHUwNTAxXHVBNTA0XHVEQ0E1XHUwOEU2XHVGMEU2XHVEQ0RDXHVEQ0U2XHVFNkU2XHVEQ0RDIisKKyAgICAgICAgIlx1QTUxMVx1MDBFQVx1RUFFOVx1QTUyMFx1MDBBNVx1MDRFNlx1QTU4QVx1MDBEQ1x1QTUwNFx1RTZEQ1x1RTZFNlx1RTZERSIrCisgICAgICAgICJcdURDQTVcdTA2RTZcdTAwQTVcdTA1RENcdUU2RTZcdURDRTZcdUU2REVcdUU0RTZcdTBBMEJcdTBDMERcdTBFMEZcdTEwMTEiKworICAgICAgICAiXHUxMjEzXDAyNFx1MTUxNlwwMjdcMDMwXHUxOTAwXHVFNkE1XHU4NjAwXHUxQjFDXHUxRDFFXHUxRjIwXHUyMTIyXHVFNkU2IisKKyAgICAgICAgIlx1RENBNVx1MUEwMFx1MjNBNVx1NjUwMFx1QTUwN1x1RTYwMFx1MDBBNVx1MDRFNlx1RENFNlwwMDBcdUU2RTZcdTAwREMiKworICAgICAgICAiXHVFNkU2XHVEQ0E1XHUyMzAwXHUyNEE1XHUxRTAwXHVFNkRDXHVFNkU2XHVEQ0U2XHVFNkRDXHVEQ0RDXHVFNkRDXHVEQ0U2IisKKyAgICAgICAgIlx1RENFNlx1RTZFNlx1RENFNlx1RENFNlx1RENFNlx1RENFNlx1RTZBNVx1NzEwMFx1MDdBNVx1MTAwMFx1MDkwMFwwMDAiKworICAgICAgICAiXHVFNkRDXHVFNkU2XHVBNTY3XDAwN1x1QTUxMFwwMTFcdUE1N0ZcMDExXHVBNTdGXDAxMVx1QTUwN1RcdTVCQTVcdTczMDAiKworICAgICAgICAiXHUwOUE1XHU2RDAwXHU2NzY3XHUwOUE1XHUwRDAwXHVBNTA0XHU2QkE1XHU2QzAwXHU3Njc2XHVBNTBFXHUwMEE1XHUwNDdBIisKKyAgICAgICAgIlx1QTU0Q1x1MDBEQ1x1RENBNVx1MUIwMFx1REMwMFx1REMwMFx1RDhBNVx1MzcwMFx1ODE4Mlx1MDA4NFx1QTUwNVx1MDBBNSIrCisgICAgICAgICJcdTA0ODJcMDAwXHU4MjAwXHVFNkU2XHUwOTAwXHVFNkU2XHVBNTNFXHUwMERDXHVBNTcwXDAwN1wwMTFcdUE1OThcMDExIisKKyAgICAgICAgIlx1QTU1Nlx1MDBFNFx1QTVBNlx1MDBFNlx1RTYwMVx1MDFBNVx1MDRFNlx1MDEwMVx1MDFFNlx1RTZBNVx1MDQwMFx1RTZBNSIrCisgICAgICAgICJcdTQ4MDBcdURBRTRcdUU4REVcdUUwRTBcdUE1NjlcMDEwXHUwOEE1XHU4MzAwXHUxQUE1XHU4MTAwXHVBNTA0XHVFNkE1IisKKyAgICAgICAgIlx1NUMwMCIKKyAgICAgICAgKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xM2UwODc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5TdGFjazsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisKKy8qKgorICogQSBzdWJjbGFzcyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHRoYXQgYWRkcyB0aGUgYWJpbGl0eSB0byB1c2UgYSBkaWN0aW9uYXJ5CisgKiB0byBmdXJ0aGVyIHN1YmRpdmlkZSByYW5nZXMgb2YgdGV4dCBiZXlvbmQgd2hhdCBpcyBwb3NzaWJsZSB1c2luZyBqdXN0IHRoZQorICogc3RhdGUtdGFibGUtYmFzZWQgYWxnb3JpdGhtLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLCB0byBoYW5kbGUKKyAqIHdvcmQgYW5kIGxpbmUgYnJlYWtpbmcgaW4gVGhhaSwgd2hpY2ggZG9lc24ndCB1c2Ugc3BhY2VzIGJldHdlZW4gd29yZHMuICBUaGUKKyAqIHN0YXRlLXRhYmxlLWJhc2VkIGFsZ29yaXRobSB1c2VkIGJ5IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGlzIHVzZWQgdG8gZGl2aWRlCisgKiB1cCB0ZXh0IGFzIGZhciBhcyBwb3NzaWJsZSwgYW5kIHRoZW4gY29udGlndW91cyByYW5nZXMgb2YgbGV0dGVycyBhcmUKKyAqIHJlcGVhdGVkbHkgY29tcGFyZWQgYWdhaW5zdCBhIGxpc3Qgb2Yga25vd24gd29yZHMgKGkuZS4sIHRoZSBkaWN0aW9uYXJ5KQorICogdG8gZGl2aWRlIHRoZW0gdXAgaW50byB3b3Jkcy4KKyAqCisgKiBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIHVzZXMgdGhlIHNhbWUgcnVsZSBsYW5ndWFnZSBhcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCwKKyAqIGJ1dCBhZGRzIG9uZSBtb3JlIHNwZWNpYWwgc3Vic3RpdHV0aW9uIG5hbWU6IF9kaWN0aW9uYXJ5Xy4gIFRoaXMgc3Vic3RpdHV0aW9uCisgKiBuYW1lIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2hhcmFjdGVycyBpbiB3b3JkcyBpbiB0aGUgZGljdGlvbmFyeS4gIFRoZSBpZGVhIGlzIHRoYXQKKyAqIGlmIHRoZSBpdGVyYXRvciBwYXNzZXMgb3ZlciBhIGNodW5rIG9mIHRleHQgdGhhdCBpbmNsdWRlcyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzCisgKiBpbiBhIHJvdyB0aGF0IGFyZSBpbmNsdWRlZCBpbiBfZGljdGlvbmFyeV8sIGl0IGdvZXMgYmFjayB0aHJvdWdoIHRoYXQgcmFuZ2UgYW5kCisgKiBkZXJpdmVzIGFkZGl0aW9uYWwgYnJlYWsgcG9zaXRpb25zIChpZiBwb3NzaWJsZSkgdXNpbmcgdGhlIGRpY3Rpb25hcnkuCisgKgorICogRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciBpcyBhbHNvIGNvbnN0cnVjdGVkIHdpdGggdGhlIGZpbGVuYW1lIG9mIGEgZGljdGlvbmFyeQorICogZmlsZS4gIEl0IHVzZXMgQ2xhc3MuZ2V0UmVzb3VyY2UoKSB0byBsb2NhdGUgdGhlIGRpY3Rpb25hcnkgZmlsZS4gIFRoZQorICogZGljdGlvbmFyeSBmaWxlIGlzIGluIGEgc2VyaWFsaXplZCBiaW5hcnkgZm9ybWF0LiAgV2UgaGF2ZSBhIHZlcnkgcHJpbWl0aXZlIChhbmQKKyAqIHNsb3cpIEJ1aWxkRGljdGlvbmFyeUZpbGUgdXRpbGl0eSBmb3IgY3JlYXRpbmcgZGljdGlvbmFyeSBmaWxlcywgYnV0IGFyZW4ndAorICogY3VycmVudGx5IG1ha2luZyBpdCBwdWJsaWMuICBDb250YWN0IHVzIGZvciBoZWxwLgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciBleHRlbmRzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogYSBsaXN0IG9mIGtub3duIHdvcmRzIHRoYXQgaXMgdXNlZCB0byBkaXZpZGUgdXAgY29udGlndW91cyByYW5nZXMgb2YgbGV0dGVycywKKyAgICAgKiBzdG9yZWQgaW4gYSBjb21wcmVzc2VkLCBpbmRleGVkLCBmb3JtYXQgdGhhdCBvZmZlcnMgZmFzdCBhY2Nlc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIEJyZWFrRGljdGlvbmFyeSBkaWN0aW9uYXJ5OworCisgICAgLyoqCisgICAgICogYSBsaXN0IG9mIGZsYWdzIGluZGljYXRpbmcgd2hpY2ggY2hhcmFjdGVyIGNhdGVnb3JpZXMgYXJlIGNvbnRhaW5lZCBpbgorICAgICAqIHRoZSBkaWN0aW9uYXJ5IGZpbGUgKHRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggcmFuZ2VzIG9mIGNoYXJhY3RlcnMKKyAgICAgKiB0byBhcHBseSB0aGUgZGljdGlvbmFyeSB0bykKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW5bXSBjYXRlZ29yeUZsYWdzOworCisKKyAgICAvKioKKyAgICAgKiB3aGVuIGEgcmFuZ2Ugb2YgY2hhcmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJlYWsKKyAgICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUsIHByZXZlbnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0aW9uYXJ5IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAgKiBsZWF2ZXMgdGhpcyByYW5nZSBvZiB0ZXh0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBjYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8qKgorICAgICAqIGlmIGNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZlcnMgdG8KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwb3NpdGlvbkluQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIHZhcmlhYmxlIG5hbWUgZm9yIGNoYXJhY3RlcnMgaW4gd29yZHMgaW4gZGljdGlvbmFyeQorICAgICAqLworIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBydWxlcyBTYW1lIGFzIHRoZSBydWxlcyBwYXJhbWV0ZXIgb24gUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgKiBleGNlcHQgZm9yIHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgIl9kaWN0aW9uYXJ5XyIuICBUaGlzIHBhcmFtZXRlciBpcyBqdXN0CisgICAgICogcGFzc2VkIHRocm91Z2ggdG8gUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gZGljdGlvbmFyeVN0cmVhbSB0aGUgc3RyZWFtIGNvbnRhaW5pbmcgdGhlIGRpY3Rpb25hcnkgZGF0YQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yKFN0cmluZyBydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBkaWN0aW9uYXJ5U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzdXBlcihydWxlcyk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBuZXcgQnJlYWtEaWN0aW9uYXJ5KGRpY3Rpb25hcnlTdHJlYW0pOworICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERpY3Rpb25hckJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIHByZWNvbXBpbGVkIHJ1bGVzLgorICAgICAqIEBwYXJhbSBjb21waWxlZFJ1bGVzIGFuIGlucHV0IHN0cmVhbSBjb250YWluaW5nIHRoZSBiaW5hcnkgKGZsYXR0ZW5lZCkgY29tcGlsZWQgcnVsZXMuCisgICAgICogQHBhcmFtIGRpY3Rpb25hcnlTdHJlYW0gYW4gaW5wdXQgc3RyZWFtIGNvbnRhaW5pbmcgdGhlIGRpY3Rpb25hcnkgZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yKElucHV0U3RyZWFtIGNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGRpY3Rpb25hcnlTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgZlJEYXRhID0gUkJCSURhdGFXcmFwcGVyLmdldChjb21waWxlZFJ1bGVzKTsgICAvLyBJbml0IHRoZSBSQkJJIHBhcnQgb2YgdGhpcyBpdGVyYXRvci4KKyAgICAgICBkaWN0aW9uYXJ5ID0gbmV3IEJyZWFrRGljdGlvbmFyeShkaWN0aW9uYXJ5U3RyZWFtKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgIAorCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCkgeworICAgICAgICBzdXBlci5zZXRUZXh0KG5ld1RleHQpOworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50ID0gMDsKKyAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgZkRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICByZXR1cm4gc3VwZXIuZmlyc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBlbmRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgZkRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICByZXR1cm4gc3VwZXIubGFzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBvbmUgc3RlcCBiYWNrd2FyZHMuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyBpZiB3ZSBoYXZlIGNhY2hlZCBicmVhayBwb3NpdGlvbnMgYW5kIHdlJ3JlIHN0aWxsIGluIHRoZSByYW5nZQorICAgICAgICAvLyBjb3ZlcmVkIGJ5IHRoZW0sIGp1c3QgbW92ZSBvbmUgc3RlcCBiYWNrd2FyZCBpbiB0aGUgY2FjaGUKKyAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zICE9IG51bGwgJiYgcG9zaXRpb25JbkNhY2hlID4gMCkgeworICAgICAgICAgICAgLS1wb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV07CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UsIGR1bXAgdGhlIGNhY2hlIGFuZCB1c2UgdGhlIGluaGVyaXRlZCBwcmV2aW91cygpIG1ldGhvZCB0byBtb3ZlCisgICAgICAgIC8vIGJhY2t3YXJkLiAgVGhpcyBtYXkgZmlsbCB1cCB0aGUgY2FjaGUgd2l0aCBuZXcgYnJlYWsgcG9zaXRpb25zLCBpbiB3aGljaAorICAgICAgICAvLyBjYXNlIHdlIGhhdmUgdG8gbWFyayBvdXIgcG9zaXRpb24gaW4gdGhlIGNhY2hlLiBJZiBpdCBkb2Vzbid0LCB1c2UgbmV4dCgpCisgICAgICAgIC8vIHRvIG1vdmUgZm9yd2FyZCB1bnRpbCB3ZSBoaXQgb3IgcGFzcyB0aGUgY3VycmVudCBwb3NpdGlvbi4gVGhpcyAqd2lsbCogZmlsbAorICAgICAgICAvLyB0aGUgY2FjaGUuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdXBlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA8IG9mZnNldCkgeworICAgICAgICAgICAgICAgIGludCBuZXh0UmVzdWx0ID0gbmV4dCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChuZXh0UmVzdWx0ID49IG9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uCisgICAgICogYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZyb20KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgIm9mZnNldCIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgdGV4dCk7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBubyBjYWNoZWQgYnJlYWsgcG9zaXRpb25zLCBvciAib2Zmc2V0IiBpcyBvdXRzaWRlIHRoZQorICAgICAgICAvLyByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwgd2UgY2FuIGp1c3QgY2FsbCB0aGUgaW5oZXJpdGVkIHJvdXRpbmUKKyAgICAgICAgLy8gKHdoaWNoIHdpbGwgZXZlbnR1YWxseSBjYWxsIG90aGVyIHJvdXRpbmVzIGluIHRoaXMgY2xhc3MgdGhhdCBtYXkKKyAgICAgICAgLy8gcmVmcmVzaCB0aGUgY2FjaGUpCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyA9PSBudWxsIHx8IG9mZnNldCA8PSBjYWNoZWRCcmVha1Bvc2l0aW9uc1swXSB8fAorICAgICAgICAgICAgICAgIG9mZnNldCA+IGNhY2hlZEJyZWFrUG9zaXRpb25zW2NhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDFdKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIucHJlY2VkaW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbiB0aGUgb3RoZXIgaGFuZCwgaWYgIm9mZnNldCIgaXMgd2l0aGluIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwKKyAgICAgICAgLy8gdGhlbiBhbGwgd2UgaGF2ZSB0byBkbyBpcyBzZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgbGFzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBiZWZvcmUgIm9mZnNldCIKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICAgICAgd2hpbGUgKHBvc2l0aW9uSW5DYWNoZSA8IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICYmIG9mZnNldCA+IGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pCisgICAgICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICAtLXBvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFyY2hpbmcgZm9yd2FyZCBmcm9tCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyICJvZmZzZXQiCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBjaGVja09mZnNldChvZmZzZXQsIHRleHQpOworCisgICAgICAgIC8vIGlmIHdlIGhhdmUgbm8gY2FjaGVkIGJyZWFrIHBvc2l0aW9ucywgb3IgaWYgIm9mZnNldCIgaXMgb3V0c2lkZSB0aGUKKyAgICAgICAgLy8gcmFuZ2UgY292ZXJlZCBieSB0aGUgY2FjaGUsIHRoZW4gZHVtcCB0aGUgY2FjaGUgYW5kIGNhbGwgb3VyCisgICAgICAgIC8vIGluaGVyaXRlZCBmb2xsb3dpbmcoKSBtZXRob2QuICBUaGlzIHdpbGwgY2FsbCBvdGhlciBtZXRob2RzIGluIHRoaXMKKyAgICAgICAgLy8gY2xhc3MgdGhhdCBtYXkgcmVmcmVzaCB0aGUgY2FjaGUuCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyA9PSBudWxsIHx8IG9mZnNldCA8IGNhY2hlZEJyZWFrUG9zaXRpb25zWzBdIHx8CisgICAgICAgICAgICAgICAgb2Zmc2V0ID49IGNhY2hlZEJyZWFrUG9zaXRpb25zW2NhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDFdKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuZm9sbG93aW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbiB0aGUgb3RoZXIgaGFuZCwgaWYgIm9mZnNldCIgaXMgd2l0aGluIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZQorICAgICAgICAvLyBjYWNoZSwgdGhlbiBqdXN0IHNlYXJjaCB0aGUgY2FjaGUgZm9yIHRoZSBmaXJzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBhZnRlciAib2Zmc2V0IgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgICAgICAgICB3aGlsZSAocG9zaXRpb25JbkNhY2hlIDwgY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgJiYgb2Zmc2V0ID49IGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pCisgICAgICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gCisgICAgICogCisgICAgICogVE9ETzogIG5vdCBzdXBwb3J0ZWQgd2l0aCBkaWN0aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgIHB1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1cygpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IAorICAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgVGhlIHZhbHVlcyBhcHBlYXIgaW4gdGhlIHJ1bGUgc291cmNlCisgICAgICogd2l0aGluIGJyYWNrZXRzLCB7MTIzfSwgZm9yIGV4YW1wbGUuICBUaGUgZGVmYXVsdCBzdGF0dXMgdmFsdWUgZm9yIHJ1bGVzCisgICAgICogdGhhdCBkbyBub3QgZXhwbGljaXRseSBwcm92aWRlIG9uZSBpcyB6ZXJvLgorICAgICAqIDxwPgorICAgICAqIFRPRE86IG5vdCBzdXBwb3J0ZWQgZm9yIGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3IuIAorICAgICAqCisgICAgICogQHBhcmFtIGZpbGxJbkFycmF5IGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLiAgCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZCAKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgYXJyYXkgaXMgdG9vIHNtYWxsLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdWxlU3RhdHVzVmVjKGludFtdIGZpbGxJbkFycmF5KSB7CisgICAgICAgIGlmIChmaWxsSW5BcnJheSAhPSBudWxsICYmIGZpbGxJbkFycmF5Lmxlbmd0aD49MSkgeyAgCisgICAgICAgICAgICBmaWxsSW5BcnJheVswXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIGZvciBuZXh0KCkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVOZXh0KCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBubyBjYWNoZWQgYnJlYWsgcG9zaXRpb25zLCBvciBpZiB3ZSd2ZSBqdXN0IG1vdmVkCisgICAgICAgIC8vIG9mZiB0aGUgZW5kIG9mIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwgd2UgaGF2ZSB0byBkdW1wCisgICAgICAgIC8vIGFuZCBwb3NzaWJseSByZWdlbmVyYXRlIHRoZSBjYWNoZQorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgPT0gbnVsbCB8fCBwb3NpdGlvbkluQ2FjaGUgPT0gY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoIC0gMSkgeworCisgICAgICAgICAgICAvLyBzdGFydCBieSB1c2luZyB0aGUgaW5oZXJpdGVkIGhhbmRsZU5leHQoKSB0byBmaW5kIGEgdGVudGF0aXZlIHJldHVybgorICAgICAgICAgICAgLy8gdmFsdWUuICAgZGljdGlvbmFyeUNoYXJDb3VudCB0ZWxscyB1cyBob3cgbWFueSBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHdlIHBhc3NlZCBvdmVyIG9uIG91ciB3YXkgdG8gdGhlIHRlbnRhdGl2ZSByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGludCBzdGFydFBvcyA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdXBlci5oYW5kbGVOZXh0KCk7CisKKyAgICAgICAgICAgIC8vIGlmIHdlIHBhc3NlZCBvdmVyIG1vcmUgdGhhbiBvbmUgZGljdGlvbmFyeSBjaGFyYWN0ZXIsIHRoZW4gd2UgdXNlCisgICAgICAgICAgICAvLyBkaXZpZGVVcERpY3Rpb25hcnlSYW5nZSgpIHRvIHJlZ2VuZXJhdGUgdGhlIGNhY2hlZCBicmVhayBwb3NpdGlvbnMKKyAgICAgICAgICAgIC8vIGZvciB0aGUgbmV3IHJhbmdlCisgICAgICAgICAgICBpZiAoZkRpY3Rpb25hcnlDaGFyQ291bnQgPiAxICYmIHJlc3VsdCAtIHN0YXJ0UG9zID4gMSkgeworICAgICAgICAgICAgICAgIGRpdmlkZVVwRGljdGlvbmFyeVJhbmdlKHN0YXJ0UG9zLCByZXN1bHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHRoZSB2YWx1ZSB3ZSBnb3QgYmFjayBmcm9tIHRoZSBpbmhlcml0ZWQgZnVjdGlvbgorICAgICAgICAgICAgLy8gaXMgb3VyIHJldHVybiB2YWx1ZSwgYW5kIHdlIGNhbiBkdW1wIHRoZSBjYWNoZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgY2FjaGUgb2YgYnJlYWsgcG9zaXRpb25zIGhhcyBiZWVuIHJlZ2VuZXJhdGVkIChvciBleGlzdGVkIGFsbAorICAgICAgICAvLyBhbG9uZyksIHRoZW4ganVzdCBhZHZhbmNlIHRvIHRoZSBuZXh0IGJyZWFrIHBvc2l0aW9uIGluIHRoZSBjYWNoZQorICAgICAgICAvLyBhbmQgcmV0dXJuIGl0CisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICArK3Bvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXTsKKyAgICAgICAgfQorICAgICAgICBBc3NlcnQuYXNzcnQoZmFsc2UpOworICAgICAgICByZXR1cm4gLTk5OTk7ICAgLy8gU0hPVUxEIE5FVkVSIEdFVCBIRVJFIQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgaW1wbGVtZW50cyB0aGUgZGljdGlvbmFyeS1iYXNlZAorICAgICAqIGFsZ29yaXRobS4gIEdpdmVuIHRoZSBlbmRwb2ludHMgb2YgYSByYW5nZSBvZiB0ZXh0LCBpdCB1c2VzIHRoZQorICAgICAqIGRpY3Rpb25hcnkgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgb2YgYW55IGJvdW5kYXJpZXMgaW4gdGhpcworICAgICAqIHJhbmdlLiAgSXQgc3RvcmVzIGFsbCB0aGUgYm91bmRhcnkgcG9zaXRpb25zIGl0IGRpc2NvdmVycyBpbgorICAgICAqIGNhY2hlZEJyZWFrUG9zaXRpb25zIHNvIHRoYXQgd2Ugb25seSBoYXZlIHRvIGRvIHRoaXMgd29yayBvbmNlCisgICAgICogZm9yIGVhY2ggdGltZSB3ZSBlbnRlciB0aGUgcmFuZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRpdmlkZVVwRGljdGlvbmFyeVJhbmdlKGludCBzdGFydFBvcywgaW50IGVuZFBvcykgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIC8vIHRoZSByYW5nZSB3ZSdyZSBkaXZpZGluZyBtYXkgYmVnaW4gb3IgZW5kIHdpdGggbm9uLWRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAvLyAoaS5lLiwgZm9yIGxpbmUgYnJlYWtpbmcsIHdlIG1heSBoYXZlIGxlYWRpbmcgb3IgdHJhaWxpbmcgcHVuY3R1YXRpb24KKyAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBrZXB0IHdpdGggdGhlIHdvcmQpLiAgU2VlayBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICAgIC8vIHJhbmdlIHRvIHRoZSBmaXJzdCBkaWN0aW9uYXJ5IGNoYXJhY3RlcgorICAgICAgICB0ZXh0LnNldEluZGV4KHN0YXJ0UG9zKTsKKyAgICAgICAgaW50IGMgPSBDSUN1cnJlbnQzMih0ZXh0KTsKKyAgICAgICAgd2hpbGUgKGlzRGljdGlvbmFyeUNoYXIoYykgPT0gZmFsc2UpIHsgIAorICAgICAgICAgICAgYyA9IENJTmV4dDMyKHRleHQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXG5EaXZpZGluZyB1cCByYW5nZSBmcm9tICIgKyAodGV4dC5nZXRJbmRleCgpICsgMSkgKyAiIHRvICIgKyBlbmRQb3MpOworCisgICAgICAgIC8vIGluaXRpYWxpemUuICBXZSBtYWludGFpbiB0d28gc3RhY2tzOiBjdXJyZW50QnJlYWtQb3NpdGlvbnMgY29udGFpbnMKKyAgICAgICAgLy8gdGhlIGxpc3Qgb2YgYnJlYWsgcG9zaXRpb25zIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBpZiB3ZSBzdWNjZXNzZnVsbHkKKyAgICAgICAgLy8gZmluaXNoIHRyYXZlcnNpbmcgdGhlIHdob2xlIHJhbmdlIG5vdy4gIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgbGlzdHMKKyAgICAgICAgLy8gYWxsIG90aGVyIHBvc3NpYmxlIHdvcmQgZW5kcyB3ZSd2ZSBwYXNzZWQgYWxvbmcgdGhlIHdheS4gIChXaGVuZXZlcgorICAgICAgICAvLyB3ZSByZWFjaCBhbiBlcnJvciBbYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgY2FuJ3QgYmVnaW4gYW55IHdvcmQKKyAgICAgICAgLy8gaW4gdGhlIGRpY3Rpb25hcnldLCB3ZSBiYWNrIHVwLCBwb3NzaWJseSBkZWxldGUgc29tZSBicmVha3MgZnJvbQorICAgICAgICAvLyBjdXJyZW50QnJlYWtQb3NpdGlvbnMsIG1vdmUgYSBicmVhayBmcm9tIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMKKyAgICAgICAgLy8gdG8gY3VycmVudEJyZWFrUG9zaXRpb25zLCBhbmQgc3RhcnQgb3ZlciBmcm9tIHRoZXJlLiAgVGhpcyBwcm9jZXNzCisgICAgICAgIC8vIGNvbnRpbnVlcyBpbiB0aGlzIHdheSB1bnRpbCB3ZSBlaXRoZXIgc3VjY2Vzc2Z1bGx5IG1ha2UgaXQgYWxsIHRoZSB3YXkKKyAgICAgICAgLy8gYWNyb3NzIHRoZSByYW5nZSwgb3IgZXhoYXVzdCBhbGwgb2Ygb3VyIGNvbWJpbmF0aW9ucyBvZiBicmVhaworICAgICAgICAvLyBwb3NpdGlvbnMuKQorICAgICAgICBTdGFjayBjdXJyZW50QnJlYWtQb3NpdGlvbnMgPSBuZXcgU3RhY2soKTsKKyAgICAgICAgU3RhY2sgcG9zc2libGVCcmVha1Bvc2l0aW9ucyA9IG5ldyBTdGFjaygpOworICAgICAgICBWZWN0b3Igd3JvbmdCcmVha1Bvc2l0aW9ucyA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0aGUgZGljdGlvbmFyeSBpcyBpbXBsZW1lbnRlZCBhcyBhIHRyaWUsIHdoaWNoIGlzIHRyZWF0ZWQgYXMgYSBzdGF0ZQorICAgICAgICAvLyBtYWNoaW5lLiAgLTEgcmVwcmVzZW50cyB0aGUgZW5kIG9mIGEgbGVnYWwgd29yZC4gIEV2ZXJ5IHdvcmQgaW4gdGhlCisgICAgICAgIC8vIGRpY3Rpb25hcnkgaXMgcmVwcmVzZW50ZWQgYnkgYSBwYXRoIGZyb20gdGhlIHJvb3Qgbm9kZSB0byAtMS4gIEEgcGF0aAorICAgICAgICAvLyB0aGF0IGVuZHMgaW4gc3RhdGUgMCBpcyBhbiBpbGxlZ2FsIGNvbWJpbmF0aW9uIG9mIGNoYXJhY3RlcnMuCisgICAgICAgIGludCBzdGF0ZSA9IDA7CisKKyAgICAgICAgLy8gdGhlc2UgdHdvIHZhcmlhYmxlcyBhcmUgdXNlZCBmb3IgZXJyb3IgaGFuZGxpbmcuICBXZSBrZWVwIHRyYWNrIG9mIHRoZQorICAgICAgICAvLyBmYXJ0aGVzdCB3ZSd2ZSBnb3R0ZW4gdGhyb3VnaCB0aGUgcmFuZ2UgYmVpbmcgZGl2aWRlZCwgYW5kIHRoZSBjb21iaW5hdGlvbgorICAgICAgICAvLyBvZiBicmVha3MgdGhhdCBnb3QgdXMgdGhhdCBmYXIuICBJZiB3ZSB1c2UgdXAgYWxsIHBvc3NpYmxlIGJyZWFrCisgICAgICAgIC8vIGNvbWJpbmF0aW9ucywgdGhlIHRleHQgY29udGFpbnMgYW4gZXJyb3Igb3IgYSB3b3JkIHRoYXQncyBub3QgaW4gdGhlCisgICAgICAgIC8vIGRpY3Rpb25hcnkuICBJbiB0aGlzIGNhc2UsIHdlICJibGVzcyIgdGhlIGJyZWFrIHBvc2l0aW9ucyB0aGF0IGdvdCB1cyB0aGUKKyAgICAgICAgLy8gZmFydGhlc3QgYXMgcmVhbCBicmVhayBwb3NpdGlvbnMsIGFuZCB0aGVuIHN0YXJ0IG92ZXIgZnJvbSBzY3JhdGNoIHdpdGgKKyAgICAgICAgLy8gdGhlIGNoYXJhY3RlciB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCisgICAgICAgIGludCBmYXJ0aGVzdEVuZFBvaW50ID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICBTdGFjayBiZXN0QnJlYWtQb3NpdGlvbnMgPSBudWxsOworCisgICAgICAgIC8vIGluaXRpYWxpemUgKHdlIGFsd2F5cyBleGl0IHRoZSBsb29wIHdpdGggYSBicmVhayBzdGF0ZW1lbnQpCisgICAgICAgIGMgPSBDSUN1cnJlbnQzMih0ZXh0KTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKy8vU3lzdGVtLm91dC5wcmludCgiYyA9ICIgKyBJbnRlZ2VyLnRvU3RyaW5nKGMsIDE2KSArICIsIHBvcyA9ICIgKyB0ZXh0LmdldEluZGV4KCkpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBjYW4gdHJhbnNpdGlvbiB0byBzdGF0ZSAiLTEiIGZyb20gb3VyIGN1cnJlbnQgc3RhdGUsIHdlJ3JlCisgICAgICAgICAgICAvLyBvbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBsZWdhbCB3b3JkLiAgUHVzaCB0aGF0IHBvc2l0aW9uIG9udG8KKyAgICAgICAgICAgIC8vIHRoZSBwb3NzaWJsZS1icmVhay1wb3NpdGlvbnMgc3RhY2sKKyAgICAgICAgICAgIGlmIChkaWN0aW9uYXJ5LmF0KHN0YXRlLCAwKSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgbmV3IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8gaW4gdGhlIGRpY3Rpb25hcnkKKyAgICAgICAgICAgIC8vICAgIFRoZXJlIHdpbGwgYmUgbm8gc3VwcGxlbWVudGFyaWVzIGhlcmUgYmVjYXVzZSB0aGUgVGhhaSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAvLyAgICAgZG9lcyBub3QgaW5jbHVkZSBhbnkuICBUaGlzIGNvZGUgaXMgZ29pbmcgYXdheSBzb29uLCBub3Qgd29ydGgKKyAgICAgICAgICAgIC8vICAgICBmaXhpbmcuCisgICAgICAgICAgICBzdGF0ZSA9IChkaWN0aW9uYXJ5LmF0KHN0YXRlLCAoY2hhciljKSkgJiAweEZGRkY7ICAvLyBUT0RPOiBmaXggc3VwcGxlbWVudGFyaWVzCisvL1N5c3RlbS5vdXQucHJpbnQoIiwgc3RhdGUgPSAiICsgc3RhdGUpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIHdlJ3JlIHNpdHRpbmcgb24gY2F1c2VzIHVzIHRvIHRyYW5zaXRpb24gdG8KKyAgICAgICAgICAgIC8vIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlLCB0aGVuIGl0IHdhcyBhIG5vbi1kaWN0aW9uYXJ5IGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gYW5kIHdlJ3ZlIHN1Y2Nlc3NmdWxseSB0cmF2ZXJzZWQgdGhlIHdob2xlIHJhbmdlLiAgRHJvcCBvdXQKKyAgICAgICAgICAgIC8vIG9mIHRoZSBsb29wLgorICAgICAgICAgICAgaWYgKHN0YXRlID09IC8qLTEqLyAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciB3ZSdyZSBzaXR0aW5nIG9uIGNhdXNlcyB1cyB0byB0cmFuc2l0aW9uIHRvCisgICAgICAgICAgICAvLyB0aGUgZXJyb3Igc3RhdGUsIG9yIGlmIHdlJ3ZlIGdvbmUgb2ZmIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICAgICAgICAvLyB3aXRob3V0IHRyYW5zaXRpb25pbmcgdG8gdGhlICJlbmQgb2Ygd29yZCIgc3RhdGUsIHdlJ3ZlIGhpdAorICAgICAgICAgICAgLy8gYW4gZXJyb3IuLi4KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlID09IDAgfHwgdGV4dC5nZXRJbmRleCgpID49IGVuZFBvcykgeworCisgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyB0aGUgZmFydGhlc3Qgd2UndmUgZ290dGVuLCB0YWtlIG5vdGUgb2YgaXQgaW4KKyAgICAgICAgICAgICAgICAvLyBjYXNlIHRoZXJlJ3MgYW4gZXJyb3IgaW4gdGhlIHRleHQKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5nZXRJbmRleCgpID4gZmFydGhlc3RFbmRQb2ludCkgeworICAgICAgICAgICAgICAgICAgICBmYXJ0aGVzdEVuZFBvaW50ID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICBiZXN0QnJlYWtQb3NpdGlvbnMgPSAoU3RhY2spKGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5jbG9uZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB3cm9uZ0JyZWFrUG9zaXRpb25zIGlzIGEgbGlzdCBvZiBhbGwgYnJlYWsgcG9zaXRpb25zIHdlJ3ZlIHRyaWVkIHN0YXJ0aW5nCisgICAgICAgICAgICAgICAgLy8gdGhhdCBkaWRuJ3QgYWxsb3cgdXMgdG8gdHJhdmVyc2UgYWxsIHRoZSB3YXkgdGhyb3VnaCB0aGUgdGV4dC4gIEV2ZXJ5IHRpbWUKKyAgICAgICAgICAgICAgICAvLyB3ZSBwb3AgYSBicmVhayBwb3NpdGlvbiBvZmYgb2YgY3VycmVudEJyZWFrUG9zaXRpb25zLCB3ZSBwdXQgaXQgaW50bworICAgICAgICAgICAgICAgIC8vIHdyb25nQnJlYWtQb3NpdGlvbnMgdG8gYXZvaWQgdHJ5aW5nIGl0IGFnYWluIGxhdGVyLiAgSWYgd2UgbWFrZSBpdCB0byB0aGlzCisgICAgICAgICAgICAgICAgLy8gc3BvdCwgd2UncmUgZWl0aGVyIGdvaW5nIHRvIGJhY2sgdXAgdG8gYSBicmVhayBpbiBwb3NzaWJsZUJyZWFrUG9zaXRpb25zCisgICAgICAgICAgICAgICAgLy8gYW5kIHRyeSBzdGFydGluZyBvdmVyIGZyb20gdGhlcmUsIG9yIHdlJ3ZlIGV4aGF1c3RlZCBhbGwgcG9zc2libGUgYnJlYWsKKyAgICAgICAgICAgICAgICAvLyBwb3NpdGlvbnMgYW5kIGFyZSBnb2luZyB0byBkbyB0aGUgZmFsbGJhY2sgcHJvY2VkdXJlLiAgVGhpcyBsb29wIHByZXZlbnRzCisgICAgICAgICAgICAgICAgLy8gdXMgZnJvbSBtZXNzaW5nIHdpdGggYW55dGhpbmcgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucyB0aGF0IGRpZG4ndCB3b3JrIGFzCisgICAgICAgICAgICAgICAgLy8gYSBzdGFydGluZyBwb2ludCB0aGUgbGFzdCB0aW1lIHdlIHRyaWVkIGl0ICh0aGlzIGlzIHRvIHByZXZlbnQgYSBidW5jaCBvZgorICAgICAgICAgICAgICAgIC8vIHJlcGV0aXRpdmUgY2hlY2tzIGZyb20gc2xvd2luZyBkb3duIHNvbWUgZXh0cmVtZSBjYXNlcykKKyAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBJbnRlZ2VyIG5ld1N0YXJ0aW5nU3BvdCA9IG51bGw7CisgICAgICAgICAgICAgICAgd2hpbGUgKCFwb3NzaWJsZUJyZWFrUG9zaXRpb25zLmlzRW1wdHkoKSAmJiB3cm9uZ0JyZWFrUG9zaXRpb25zLmNvbnRhaW5zKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMucGVlaygpKSkgeworICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIHVzZWQgdXAgYWxsIHBvc3NpYmxlIGJyZWFrLXBvc2l0aW9uIGNvbWJpbmF0aW9ucywgdGhlcmUncworICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yIG9yIGFuIHVua25vd24gd29yZCBpbiB0aGUgdGV4dC4gIEluIHRoaXMgY2FzZSwgd2Ugc3RhcnQKKyAgICAgICAgICAgICAgICAvLyBvdmVyLCB0cmVhdGluZyB0aGUgZmFydGhlc3QgY2hhcmFjdGVyIHdlJ3ZlIHJlYWNoZWQgYXMgdGhlIGJlZ2lubmluZworICAgICAgICAgICAgICAgIC8vIG9mIHRoZSByYW5nZSwgYW5kICJibGVzc2luZyIgdGhlIGJyZWFrIHBvc2l0aW9ucyB0aGF0IGdvdCB1cyB0aGF0CisgICAgICAgICAgICAgICAgLy8gZmFyIGFzIHJlYWwgYnJlYWsgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiZXN0QnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zID0gYmVzdEJyZWFrUG9zaXRpb25zOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhcnRoZXN0RW5kUG9pbnQgPCBlbmRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGZhcnRoZXN0RW5kUG9pbnQgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKChJbnRlZ2VyKShjdXJyZW50QnJlYWtQb3NpdGlvbnMucGVlaygpKSkuaW50VmFsdWUoKSAhPSB0ZXh0LmdldEluZGV4KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHRleHQuZ2V0SW5kZXgoKSAhPSBzdGFydFBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wdXNoKG5ldyBJbnRlZ2VyKHRleHQuZ2V0SW5kZXgoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQ0lOZXh0MzIodGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0aWxsIGhhdmUgbW9yZSBicmVhayBwb3NpdGlvbnMgd2UgY2FuIHRyeSwgdGhlbiBwcm9tb3RlIHRoZQorICAgICAgICAgICAgICAgIC8vIGxhc3QgYnJlYWsgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucyBpbnRvIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywKKyAgICAgICAgICAgICAgICAvLyBhbmQgZ2V0IHJpZCBvZiBhbGwgZW50cmllcyBpbiBjdXJyZW50QnJlYWtQb3NpdGlvbnMgdGhhdCBjb21lIGFmdGVyCisgICAgICAgICAgICAgICAgLy8gaXQuICBUaGVuIGJhY2sgdXAgdG8gdGhhdCBwb3NpdGlvbiBhbmQgc3RhcnQgb3ZlciBmcm9tIHRoZXJlIChpLmUuLAorICAgICAgICAgICAgICAgIC8vIHRyZWF0IHRoYXQgcG9zaXRpb24gYXMgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyB3b3JkKQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyIHRlbXAgPSAoSW50ZWdlcilwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICAgICAgICAgICAgICBPYmplY3QgdGVtcDIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkgJiYgdGVtcC5pbnRWYWx1ZSgpIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlciljdXJyZW50QnJlYWtQb3NpdGlvbnMucGVlaygpKS5pbnRWYWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wMiA9IGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyb25nQnJlYWtQb3NpdGlvbnMuYWRkRWxlbWVudCh0ZW1wMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2godGVtcCk7CisgICAgICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoKChJbnRlZ2VyKWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wZWVrKCkpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHJlLXN5bmMgImMiIGZvciB0aGUgbmV4dCBnby1yb3VuZCwgYW5kIGRyb3Agb3V0IG9mIHRoZSBsb29wIGlmCisgICAgICAgICAgICAgICAgLy8gd2UndmUgbWFkZSBpdCBvZmYgdGhlIGVuZCBvZiB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICBjID0gQ0lDdXJyZW50MzIodGV4dCk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAwOworICAgICAgICAgICAgICAgIGlmICh0ZXh0LmdldEluZGV4KCkgPj0gZW5kUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgZGlkbid0IGhpdCBhbnkgZXhjZXB0aW9uYWwgY29uZGl0aW9ucyBvbiB0aGlzIGxhc3QgaXRlcmF0aW9uLAorICAgICAgICAgICAgLy8ganVzdCBhZHZhbmNlIHRvIHRoZSBuZXh0IGNoYXJhY3RlciBhbmQgbG9vcAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYyA9IENJTmV4dDMyKHRleHQpOworICAgICAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50KCIsIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgPSB7ICIpOyBmb3IgKGludCBpID0gMDsgaSA8IHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMuc2l6ZSgpOyBpKyspIFN5c3RlbS5vdXQucHJpbnQocG9zc2libGVCcmVha1Bvc2l0aW9ucy5lbGVtZW50QXQoaSkgKyAiICIpOyBTeXN0ZW0ub3V0LnByaW50KCJ9Iik7CisvL1N5c3RlbS5vdXQucHJpbnQoIiwgY3VycmVudEJyZWFrUG9zaXRpb25zID0geyAiKTsgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpOyBpKyspIFN5c3RlbS5vdXQucHJpbnQoY3VycmVudEJyZWFrUG9zaXRpb25zLmVsZW1lbnRBdChpKSArICIgIik7IFN5c3RlbS5vdXQucHJpbnRsbigifSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZHVtcCB0aGUgbGFzdCBicmVhayBwb3NpdGlvbiBpbiB0aGUgbGlzdCwgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgYWN0dWFsCisgICAgICAgIC8vIGVuZCBvZiB0aGUgcmFuZ2UgKHdoaWNoIG1heSBiZSB0aGUgc2FtZSBjaGFyYWN0ZXIsIG9yIG1heSBiZSBmdXJ0aGVyIG9uCisgICAgICAgIC8vIGJlY2F1c2UgdGhlIHJhbmdlIGFjdHVhbGx5IGVuZGVkIHdpdGggbm9uLWRpY3Rpb25hcnkgY2hhcmFjdGVycyB3ZSB3YW50IHRvCisgICAgICAgIC8vIGtlZXAgd2l0aCB0aGUgd29yZCkKKyAgICAgICAgaWYgKCFjdXJyZW50QnJlYWtQb3NpdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucG9wKCk7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIoZW5kUG9zKSk7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgcmVndWxhciBhcnJheSB0byBob2xkIHRoZSBicmVhayBwb3NpdGlvbnMgYW5kIGNvcHkKKyAgICAgICAgLy8gdGhlIGJyZWFrIHBvc2l0aW9ucyBmcm9tIHRoZSBzdGFjayB0byB0aGUgYXJyYXkgKGluIGFkZGl0aW9uLAorICAgICAgICAvLyBvdXIgc3RhcnRpbmcgcG9zaXRpb24gZ29lcyBpbnRvIHRoaXMgYXJyYXkgYXMgYSBicmVhayBwb3NpdGlvbikuCisgICAgICAgIC8vIFRoaXMgYXJyYXkgYmVjb21lcyB0aGUgY2FjaGUgb2YgYnJlYWsgcG9zaXRpb25zIHVzZWQgYnkgbmV4dCgpCisgICAgICAgIC8vIGFuZCBwcmV2aW91cygpLCBzbyB0aGlzIGlzIHdoZXJlIHdlIGFjdHVhbGx5IHJlZnJlc2ggdGhlIGNhY2hlLgorICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG5ldyBpbnRbY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKSArIDFdOworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9uc1swXSA9IHN0YXJ0UG9zOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9uc1tpICsgMV0gPSAoKEludGVnZXIpY3VycmVudEJyZWFrUG9zaXRpb25zLmVsZW1lbnRBdChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGlnaXRMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODY5MThjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhCkBAIC0wLDAgKzEsODAwIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CisKKy8qKgorICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBoYW5kbGVzIHRoZSB0cmFuc2NvZGluZyBiZXR3ZWVuIG51bWVyaWMgdmFsdWVzIGFuZAorICogc3RyaW5ncyBvZiBjaGFyYWN0ZXJzLiAgSXQgb25seSByZXByZXNlbnRzIG5vbi1uZWdhdGl2ZSBudW1iZXJzLiAgVGhlCisgKiBkaXZpc2lvbiBvZiBsYWJvciBiZXR3ZWVuIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gYW5kCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBpcyB0aGF0IDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gaGFuZGxlcyB0aGUgcmFkaXgKKyAqIDEwIHJlcHJlc2VudGF0aW9uIGlzc3VlcyBhbmQgbnVtZXJpYyBjb252ZXJzaW9uLCBpbmNsdWRpbmcgcm91bmRpbmc7CisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBoYW5kbGVzIHRoZSBsb2NhbGUtc3BlY2lmaWMgaXNzdWVzIHN1Y2ggYXMKKyAqIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSByZXByZXNlbnRhdGlvbiwgZGlnaXQgZ3JvdXBpbmcsIGRlY2ltYWwgcG9pbnQsCisgKiBjdXJyZW5jeSwgYW5kIHNvIG9uLgorICoKKyAqIDxwPkEgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBpcyBhIHJlcHJlc2VudGF0aW9uIG9mIGEgZmluaXRlIG51bWVyaWMgdmFsdWUuCisgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IG9iamVjdHMgZG8gbm90IHJlcHJlc2VudCA8Y29kZT5OYU48L2NvZGU+IG9yIGluZmluaXRlCisgKiB2YWx1ZXMuICBBIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gdmFsdWUgY2FuIGJlIGNvbnZlcnRlZCB0byBhCisgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRob3V0IGxvc3Mgb2YgcHJlY2lzaW9uLiAgQ29udmVyc2lvbiB0byBvdGhlcgorICogbnVtZXJpYyBmb3JtYXRzIG1heSBpbnZvbHZlIGxvc3Mgb2YgcHJlY2lzaW9uLCBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljCisgKiB2YWx1ZS4KKyAqCisgKiA8cD5UaGUgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiByZXByZXNlbnRhdGlvbiBjb25zaXN0cyBvZiBhIHN0cmluZyBvZgorICogY2hhcmFjdGVycywgd2hpY2ggYXJlIHRoZSBkaWdpdHMgcmFkaXggMTAsIGZyb20gJzAnIHRvICc5Jy4gIEl0IGFsc28gaGFzIGEKKyAqIGJhc2UgMTAgZXhwb25lbnQgYXNzb2NpYXRlZCB3aXRoIGl0LiAgVGhlIHZhbHVlIHJlcHJlc2VudGVkIGJ5IGEKKyAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gb2JqZWN0IGNhbiBiZSBjb21wdXRlZCBieSBtdWxpdHBseWluZyB0aGUgZnJhY3Rpb24KKyAqIDxlbT5mPC9lbT4sIHdoZXJlIDAgPD0gPGVtPmY8L2VtPiA8IDEsIGRlcml2ZWQgYnkgcGxhY2luZyBhbGwgdGhlIGRpZ2l0cyBvZgorICogdGhlIGxpc3QgdG8gdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsIHBvaW50LCBieSAxMF5leHBvbmVudC4KKyAqCisgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgRGVjaW1hbEZvcm1hdAorICogQHNlZSBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0CisgKiBAc2VlIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0CisgKiBAdmVyc2lvbiAgICAgIDEuMTggMDgvMTIvOTgKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQWxhbiBMaXUKKyAqICovCitmaW5hbCBjbGFzcyBEaWdpdExpc3QgeworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgaW4gYW4gSUVFRSA3NTQgZG91YmxlLCB0aGF0CisgICAgICogaXMsIGluIGEgSmF2YSBkb3VibGUuICBUaGlzIG11c3Qgbm90IGJlIGluY3JlYXNlZCwgb3IgZ2FyYmFnZSBkaWdpdHMKKyAgICAgKiB3aWxsIGJlIGdlbmVyYXRlZCwgYW5kIHNob3VsZCBub3QgYmUgZGVjcmVhc2VkLCBvciBhY2N1cmFjeSB3aWxsIGJlIGxvc3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0xPTkdfRElHSVRTID0gMTk7IC8vID09IExvbmcudG9TdHJpbmcoTG9uZy5NQVhfVkFMVUUpLmxlbmd0aCgpCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREJMX0RJRyA9IDE3OworCisgICAgLyoqCisgICAgICogVGhlc2UgZGF0YSBtZW1iZXJzIGFyZSBpbnRlbnRpb25hbGx5IHB1YmxpYyBhbmQgY2FuIGJlIHNldCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZSByZXByZXNlbnRlZCBpcyBnaXZlbiBieSBwbGFjaW5nIHRoZSBkZWNpbWFsIHBvaW50IGJlZm9yZQorICAgICAqIGRpZ2l0c1tkZWNpbWFsQXRdLiAgSWYgZGVjaW1hbEF0IGlzIDwgMCwgdGhlbiBsZWFkaW5nIHplcm9zIGJldHdlZW4KKyAgICAgKiB0aGUgZGVjaW1hbCBwb2ludCBhbmQgdGhlIGZpcnN0IG5vbnplcm8gZGlnaXQgYXJlIGltcGxpZWQuICBJZiBkZWNpbWFsQXQKKyAgICAgKiBpcyA+IGNvdW50LCB0aGVuIHRyYWlsaW5nIHplcm9zIGJldHdlZW4gdGhlIGRpZ2l0c1tjb3VudC0xXSBhbmQgdGhlCisgICAgICogZGVjaW1hbCBwb2ludCBhcmUgaW1wbGllZC4KKyAgICAgKgorICAgICAqIEVxdWl2YWxlbnRseSwgdGhlIHJlcHJlc2VudGVkIHZhbHVlIGlzIGdpdmVuIGJ5IGYgKiAxMF5kZWNpbWFsQXQuICBIZXJlCisgICAgICogZiBpcyBhIHZhbHVlIDAuMSA8PSBmIDwgMSBhcnJpdmVkIGF0IGJ5IHBsYWNpbmcgdGhlIGRpZ2l0cyBpbiBEaWdpdHMgdG8KKyAgICAgKiB0aGUgcmlnaHQgb2YgdGhlIGRlY2ltYWwuCisgICAgICoKKyAgICAgKiBEaWdpdExpc3QgaXMgbm9ybWFsaXplZCwgc28gaWYgaXQgaXMgbm9uLXplcm8sIGZpZ2l0c1swXSBpcyBub24temVyby4gIFdlCisgICAgICogZG9uJ3QgYWxsb3cgZGVub3JtYWxpemVkIG51bWJlcnMgYmVjYXVzZSBvdXIgZXhwb25lbnQgaXMgZWZmZWN0aXZlbHkgb2YKKyAgICAgKiB1bmxpbWl0ZWQgbWFnbml0dWRlLiAgVGhlIGNvdW50IHZhbHVlIGNvbnRhaW5zIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAgICAgKiBkaWdpdHMgcHJlc2VudCBpbiBkaWdpdHNbXS4KKyAgICAgKgorICAgICAqIFplcm8gaXMgcmVwcmVzZW50ZWQgYnkgYW55IERpZ2l0TGlzdCB3aXRoIGNvdW50ID09IDAgb3Igd2l0aCBlYWNoIGRpZ2l0c1tpXQorICAgICAqIGZvciBhbGwgaSA8PSBjb3VudCA9PSAnMCcuCisgICAgICovCisgICAgcHVibGljIGludCBkZWNpbWFsQXQgPSAwOworICAgIHB1YmxpYyBpbnQgY291bnQgPSAwOworICAgIHB1YmxpYyBieXRlW10gZGlnaXRzID0gbmV3IGJ5dGVbTUFYX0xPTkdfRElHSVRTXTsKKworICAgIHByaXZhdGUgZmluYWwgdm9pZCBlbnN1cmVDYXBhY2l0eShpbnQgZGlnaXRDYXBhY2l0eSwgaW50IGRpZ2l0c1RvQ29weSkgeworICAgICAgICBpZiAoZGlnaXRDYXBhY2l0eSA+IGRpZ2l0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBuZXdEaWdpdHMgPSBuZXcgYnl0ZVtkaWdpdENhcGFjaXR5ICogMl07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRpZ2l0cywgMCwgbmV3RGlnaXRzLCAwLCBkaWdpdHNUb0NvcHkpOworICAgICAgICAgICAgZGlnaXRzID0gbmV3RGlnaXRzOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHJlcHJlc2VudGVkIG51bWJlciBpcyB6ZXJvLgorICAgICAqLworICAgIGJvb2xlYW4gaXNaZXJvKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSBpZiAoZGlnaXRzW2ldICE9ICcwJykgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKy8vIFVudXNlZCBhcyBvZiBJQ1UgMi42IC0gYWxhbgorLy8gICAgLyoqCisvLyAgICAgKiBDbGVhcnMgb3V0IHRoZSBkaWdpdHMuCisvLyAgICAgKiBVc2UgYmVmb3JlIGFwcGVuZGluZyB0aGVtLgorLy8gICAgICogVHlwaWNhbGx5LCB5b3Ugc2V0IGEgc2VyaWVzIG9mIGRpZ2l0cyB3aXRoIGFwcGVuZCwgdGhlbiBhdCB0aGUgcG9pbnQKKy8vICAgICAqIHlvdSBoaXQgdGhlIGRlY2ltYWwgcG9pbnQsIHlvdSBzZXQgbXlEaWdpdExpc3QuZGVjaW1hbEF0ID0gbXlEaWdpdExpc3QuY291bnQ7CisvLyAgICAgKiB0aGVuIGdvIG9uIGFwcGVuZGluZyBkaWdpdHMuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyB2b2lkIGNsZWFyICgpIHsKKy8vICAgICAgICBkZWNpbWFsQXQgPSAwOworLy8gICAgICAgIGNvdW50ID0gMDsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZHMgZGlnaXRzIHRvIHRoZSBsaXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZCAoaW50IGRpZ2l0KSB7CisgICAgICAgIGVuc3VyZUNhcGFjaXR5KGNvdW50KzEsIGNvdW50KTsKKyAgICAgICAgZGlnaXRzW2NvdW50KytdID0gKGJ5dGUpIGRpZ2l0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHJvdXRpbmUgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXQgbGlzdAorICAgICAqIElmIChjb3VudCA9PSAwKSB0aGlzIHRocm93cyBhIE51bWJlckZvcm1hdEV4Y2VwdGlvbiwgd2hpY2gKKyAgICAgKiBtaW1pY3MgTG9uZy5wYXJzZUxvbmcoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgZG91YmxlIGdldERvdWJsZSgpIHsKKyAgICAgICAgaWYgKGNvdW50ID09IDApIHJldHVybiAwLjA7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcihjb3VudCk7CisgICAgICAgIHRlbXAuYXBwZW5kKCcuJyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgdGVtcC5hcHBlbmQoKGNoYXIpKGRpZ2l0c1tpXSkpOworICAgICAgICB0ZW1wLmFwcGVuZCgnRScpOworICAgICAgICB0ZW1wLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGRlY2ltYWxBdCkpOworICAgICAgICByZXR1cm4gRG91YmxlLnZhbHVlT2YodGVtcC50b1N0cmluZygpKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAvLyBsb25nIHZhbHVlID0gTG9uZy5wYXJzZUxvbmcodGVtcC50b1N0cmluZygpKTsKKyAgICAgICAgLy8gcmV0dXJuICh2YWx1ZSAqIE1hdGgucG93KDEwLCBkZWNpbWFsQXQgLSBjb3VudCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgcm91dGluZSB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBkaWdpdCBsaXN0LgorICAgICAqIElmIChjb3VudCA9PSAwKSB0aGlzIHJldHVybnMgMCwgdW5saWtlIExvbmcucGFyc2VMb25nKCkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGxvbmcgZ2V0TG9uZygpIHsKKyAgICAgICAgLy8gZm9yIG5vdywgc2ltcGxlIGltcGxlbWVudGF0aW9uOyBsYXRlciwgZG8gcHJvcGVyIElFRUUgbmF0aXZlIHN0dWZmCisKKyAgICAgICAgaWYgKGNvdW50ID09IDApIHJldHVybiAwOworCisgICAgICAgIC8vIFdlIGhhdmUgdG8gY2hlY2sgZm9yIHRoaXMsIGJlY2F1c2UgdGhpcyBpcyB0aGUgb25lIE5FR0FUSVZFIHZhbHVlCisgICAgICAgIC8vIHdlIHJlcHJlc2VudC4gIElmIHdlIHRyaWVkIHRvIGp1c3QgcGFzcyB0aGUgZGlnaXRzIG9mZiB0byBwYXJzZUxvbmcsCisgICAgICAgIC8vIHdlJ2QgZ2V0IGEgcGFyc2UgZmFpbHVyZS4KKyAgICAgICAgaWYgKGlzTG9uZ01JTl9WQUxVRSgpKSByZXR1cm4gTG9uZy5NSU5fVkFMVUU7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKGNvdW50KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNpbWFsQXQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgdGVtcC5hcHBlbmQoKGkgPCBjb3VudCkgPyAoY2hhcikoZGlnaXRzW2ldKSA6ICcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIExvbmcucGFyc2VMb25nKHRlbXAudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhpcworICAgICAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4uICBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgdGhpcyBvYmplY3QgY29udGFpbnMKKyAgICAgKiBhbiBpbnRlZ3JhbCB2YWx1ZTsgaWYgbm90LCBpdCB3aWxsIHJldHVybiBhbiBpbmNvcnJlY3QgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gaXNQb3NpdGl2ZSBkZXRlcm1pbmVzIHRoZSBzaWduIG9mIHRoZSByZXR1cm5lZCByZXN1bHQKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBhcyBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIEJpZ0ludGVnZXIgZ2V0QmlnSW50ZWdlcihib29sZWFuIGlzUG9zaXRpdmUpIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gQmlnSW50ZWdlci52YWx1ZU9mKDApOworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJpbmdSZXAgPSBuZXcgU3RyaW5nQnVmZmVyKGNvdW50KTsKKyAgICAgICAgICAgIGlmICghaXNQb3NpdGl2ZSkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy0nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgoY2hhcikgZGlnaXRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkID0gZGVjaW1hbEF0OworICAgICAgICAgICAgd2hpbGUgKGQtLSA+IGNvdW50KSB7CisgICAgICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHN0cmluZ1JlcC50b1N0cmluZygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBsZW4gPSBkZWNpbWFsQXQgPiBjb3VudCA/IGRlY2ltYWxBdCA6IGNvdW50OworICAgICAgICAgICAgaWYgKCFpc1Bvc2l0aXZlKSB7CisgICAgICAgICAgICAgICAgbGVuICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyW10gdGV4dCA9IG5ldyBjaGFyW2xlbl07CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICBpZiAoIWlzUG9zaXRpdmUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0WzBdID0gJy0nOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0W2krMV0gPSAoY2hhcilkaWdpdHNbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG4gPSBjb3VudCsxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dFtpXSA9IChjaGFyKWRpZ2l0c1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbiA9IGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IG47IGkgPCB0ZXh0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdGV4dFtpXSA9ICcwJzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobmV3IFN0cmluZyh0ZXh0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmdSZXAoYm9vbGVhbiBpc1Bvc2l0aXZlKSB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuICIwIjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZ1JlcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQrMSk7CisgICAgICAgIGlmICghaXNQb3NpdGl2ZSkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnLScpOworICAgICAgICB9CisgICAgICAgIGludCBkID0gZGVjaW1hbEF0OworICAgICAgICBpZiAoZCA8IDApIHsKKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy4nKTsKKyAgICAgICAgICAgIHdoaWxlIChkIDwgMCkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICArK2Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChkID09IGkpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcuJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKChjaGFyKSBkaWdpdHNbaV0pOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkLS0gPiBjb3VudCkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnMCcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmdSZXAudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisvLyNpZm5kZWYgRk9VTkRBVElPTiAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGlzCisgICAgICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPi4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBpc1Bvc2l0aXZlIGRldGVybWluZXMgdGhlIHNpZ24gb2YgdGhlIHJldHVybmVkIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgamF2YS5tYXRoLkJpZ0RlY2ltYWwgZ2V0QmlnRGVjaW1hbChib29sZWFuIGlzUG9zaXRpdmUpIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigwKTsKKyAgICAgICByZXR1cm4gbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKGdldFN0cmluZ1JlcChpc1Bvc2l0aXZlKSk7CisgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiA8Y29kZT5JQ1UgQmlnRGVjaW1hbDwvY29kZT4gcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhpcworICAgICAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4uCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gaXNQb3NpdGl2ZSBkZXRlcm1pbmVzIHRoZSBzaWduIG9mIHRoZSByZXR1cm5lZCByZXN1bHQKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBnZXRCaWdEZWNpbWFsSUNVKGJvb2xlYW4gaXNQb3NpdGl2ZSkgeworICAgICAgICBpZiAoaXNaZXJvKCkpIHJldHVybiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigwKTsKKyAgICAgICByZXR1cm4gbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChnZXRTdHJpbmdSZXAoaXNQb3NpdGl2ZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGlzIG9iamVjdHMgcmVwcmVzZW50ZWQgdmFsdWUgaXMgYW4gaW50ZWdlci4KKyAgICAgKiBbYm5mXQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcmVwcmVzZW50ZWQgdmFsdWUgb2YgdGhpcyBvYmplY3QgaXMgYW4gaW50ZWdlcgorICAgICAqLworICAgIGJvb2xlYW4gaXNJbnRlZ3JhbCgpIHsKKyAgICAgICAgLy8gVHJpbSB0cmFpbGluZyB6ZXJvcy4gIFRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSByZXByZXNlbnRlZCB2YWx1ZS4KKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCAmJiBkaWdpdHNbY291bnQgLSAxXSA9PSAoYnl0ZSknMCcpIC0tY291bnQ7CisgICAgICAgIHJldHVybiBjb3VudCA9PSAwIHx8IGRlY2ltYWxBdCA+PSBjb3VudDsKKyAgICB9CisKKy8vIFVudXNlZCBhcyBvZiBJQ1UgMi42IC0gYWxhbgorLy8gICAgLyoqCisvLyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0IGNhbiBmaXQgaW50bworLy8gICAgICogYSBsb25nLgorLy8gICAgICovCisvLyAgICBib29sZWFuIGZpdHNJbnRvTG9uZyhib29sZWFuIGlzUG9zaXRpdmUpCisvLyAgICB7CisvLyAgICAgICAgLy8gRmlndXJlIG91dCBpZiB0aGUgcmVzdWx0IHdpbGwgZml0IGluIGEgbG9uZy4gIFdlIGhhdmUgdG8KKy8vICAgICAgICAvLyBmaXJzdCBsb29rIGZvciBub256ZXJvIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludDsKKy8vICAgICAgICAvLyB0aGVuIGNoZWNrIHRoZSBzaXplLiAgSWYgdGhlIGRpZ2l0IGNvdW50IGlzIDE4IG9yIGxlc3MsIHRoZW4KKy8vICAgICAgICAvLyB0aGUgdmFsdWUgY2FuIGRlZmluaXRlbHkgYmUgcmVwcmVzZW50ZWQgYXMgYSBsb25nLiAgSWYgaXQgaXMgMTkKKy8vICAgICAgICAvLyB0aGVuIGl0IG1heSBiZSB0b28gbGFyZ2UuCisvLworLy8gICAgICAgIC8vIFRyaW0gdHJhaWxpbmcgemVyb3MuICBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgcmVwcmVzZW50ZWQgdmFsdWUuCisvLyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCAmJiBkaWdpdHNbY291bnQgLSAxXSA9PSAoYnl0ZSknMCcpIC0tY291bnQ7CisvLworLy8gICAgICAgIGlmIChjb3VudCA9PSAwKSB7CisvLyAgICAgICAgICAgIC8vIFBvc2l0aXZlIHplcm8gZml0cyBpbnRvIGEgbG9uZywgYnV0IG5lZ2F0aXZlIHplcm8gY2FuIG9ubHkKKy8vICAgICAgICAgICAgLy8gYmUgcmVwcmVzZW50ZWQgYXMgYSBkb3VibGUuIC0gYnVnIDQxNjI4NTIKKy8vICAgICAgICAgICAgcmV0dXJuIGlzUG9zaXRpdmU7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICBpZiAoZGVjaW1hbEF0IDwgY291bnQgfHwgZGVjaW1hbEF0ID4gTUFYX0xPTkdfRElHSVRTKSByZXR1cm4gZmFsc2U7CisvLworLy8gICAgICAgIGlmIChkZWNpbWFsQXQgPCBNQVhfTE9OR19ESUdJVFMpIHJldHVybiB0cnVlOworLy8KKy8vICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGhhdmUgZGVjaW1hbEF0ID09IGNvdW50LCBhbmQgY291bnQgPT0gTUFYX0xPTkdfRElHSVRTLgorLy8gICAgICAgIC8vIFRoZSBudW1iZXIgd2lsbCBvdmVyZmxvdyBpZiBpdCBpcyBsYXJnZXIgdGhhbiA5MjIzMzcyMDM2ODU0Nzc1ODA3CisvLyAgICAgICAgLy8gb3Igc21hbGxlciB0aGFuIC05MjIzMzcyMDM2ODU0Nzc1ODA4LgorLy8gICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKQorLy8gICAgICAgIHsKKy8vICAgICAgICAgICAgYnl0ZSBkaWcgPSBkaWdpdHNbaV0sIG1heCA9IExPTkdfTUlOX1JFUFtpXTsKKy8vICAgICAgICAgICAgaWYgKGRpZyA+IG1heCkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgICBpZiAoZGlnIDwgbWF4KSByZXR1cm4gdHJ1ZTsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGZpcnN0IGNvdW50IGRpZ2l0cyBtYXRjaC4gIElmIGRlY2ltYWxBdCBpcyBsZXNzCisvLyAgICAgICAgLy8gdGhhbiBjb3VudCwgdGhlbiB0aGUgcmVtYWluaW5nIGRpZ2l0cyBhcmUgemVybywgYW5kIHdlIHJldHVybiB0cnVlLgorLy8gICAgICAgIGlmIChjb3VudCA8IGRlY2ltYWxBdCkgcmV0dXJuIHRydWU7CisvLworLy8gICAgICAgIC8vIE5vdyB3ZSBoYXZlIGEgcmVwcmVzZW50YXRpb24gb2YgTG9uZy5NSU5fVkFMVUUsIHdpdGhvdXQgdGhlIGxlYWRpbmcKKy8vICAgICAgICAvLyBuZWdhdGl2ZSBzaWduLiAgSWYgdGhpcyByZXByZXNlbnRzIGEgcG9zaXRpdmUgdmFsdWUsIHRoZW4gaXQgZG9lcworLy8gICAgICAgIC8vIG5vdCBmaXQ7IG90aGVyd2lzZSBpdCBmaXRzLgorLy8gICAgICAgIHJldHVybiAhaXNQb3NpdGl2ZTsKKy8vICAgIH0KKworLy8gVW51c2VkIGFzIG9mIElDVSAyLjYgLSBhbGFuCisvLyAgICAvKioKKy8vICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb3VibGUgdmFsdWUuCisvLyAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBmaXhlZC1wb2ludCBub3RhdGlvbi4KKy8vICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkOyBtdXN0IG5vdCBiZSBJbmYsIC1JbmYsIE5hbiwKKy8vICAgICAqIG9yIGEgdmFsdWUgPD0gMC4KKy8vICAgICAqIEBwYXJhbSBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgVGhlIG1vc3QgZnJhY3Rpb25hbCBkaWdpdHMgd2hpY2ggc2hvdWxkCisvLyAgICAgKiBiZSBjb252ZXJ0ZWQuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChkb3VibGUgc291cmNlLCBpbnQgbWF4aW11bUZyYWN0aW9uRGlnaXRzKQorLy8gICAgeworLy8gICAgICAgIHNldChzb3VyY2UsIG1heGltdW1GcmFjdGlvbkRpZ2l0cywgdHJ1ZSk7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gZG91YmxlIHZhbHVlLgorICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGJvdGggZml4ZWQtcG9pbnQgYW5kIGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkOyBtdXN0IG5vdCBiZSBJbmYsIC1JbmYsIE5hbiwKKyAgICAgKiBvciBhIHZhbHVlIDw9IDAuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZnJhY3Rpb25hbCBvciB0b3RhbCBkaWdpdHMgd2hpY2ggc2hvdWxkCisgICAgICogYmUgY29udmVydGVkLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXQoZG91YmxlIHNvdXJjZSwgaW50IG1heGltdW1EaWdpdHMsIGJvb2xlYW4gZml4ZWRQb2ludCkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gMCkgc291cmNlID0gMDsKKyAgICAgICAgLy8gR2VuZXJhdGUgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZm9ybSBERERERCwgREREREQuREREREQsIG9yCisgICAgICAgIC8vIERERERERSsvLURERERELgorICAgICAgICBTdHJpbmcgcmVwID0gRG91YmxlLnRvU3RyaW5nKHNvdXJjZSk7CisKKyAgICAgICAgc2V0KHJlcCwgTUFYX0xPTkdfRElHSVRTKTsKKworICAgICAgICBpZiAoZml4ZWRQb2ludCkgeworICAgICAgICAgICAgLy8gVGhlIG5lZ2F0aXZlIG9mIHRoZSBleHBvbmVudCByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgbGVhZGluZworICAgICAgICAgICAgLy8gemVyb3MgYmV0d2VlbiB0aGUgZGVjaW1hbCBhbmQgdGhlIGZpcnN0IG5vbi16ZXJvIGRpZ2l0LCBmb3IKKyAgICAgICAgICAgIC8vIGEgdmFsdWUgPCAwLjEgKGUuZy4sIGZvciAwLjAwMTIzLCAtZGVjaW1hbEF0ID09IDIpLiAgSWYgdGhpcworICAgICAgICAgICAgLy8gaXMgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cywgdGhlbiB3ZSBoYXZlIGFuIHVuZGVyZmxvdworICAgICAgICAgICAgLy8gZm9yIHRoZSBwcmludGVkIHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgICAgaWYgKC1kZWNpbWFsQXQgPiBtYXhpbXVtRGlnaXRzKSB7CisgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoLWRlY2ltYWxBdCA9PSBtYXhpbXVtRGlnaXRzKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZFJvdW5kVXAoMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgICAgICAgICArK2RlY2ltYWxBdDsKKyAgICAgICAgICAgICAgICAgICAgZGlnaXRzWzBdID0gKGJ5dGUpJzEnOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZWxzZSBmYWxsIHRocm91Z2gKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVsaW1pbmF0ZSB0cmFpbGluZyB6ZXJvcy4KKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMSAmJiBkaWdpdHNbY291bnQgLSAxXSA9PSAnMCcpCisgICAgICAgICAgICAtLWNvdW50OworCisgICAgICAgIC8vIEVsaW1pbmF0ZSBkaWdpdHMgYmV5b25kIG1heGltdW0gZGlnaXRzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgICAgLy8gUm91bmQgdXAgaWYgYXBwcm9wcmlhdGUuCisgICAgICAgIHJvdW5kKGZpeGVkUG9pbnQgPyAobWF4aW11bURpZ2l0cyArIGRlY2ltYWxBdCkgOiBtYXhpbXVtRGlnaXRzID09IDAgPyAtMSA6IG1heGltdW1EaWdpdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmb3JtIERERERELCBERERERC5ERERERCwKKyAgICAgKiBvciBEREREREUrLy1ERERERCwgc2V0IHRoaXMgb2JqZWN0J3MgdmFsdWUgdG8gaXQuICBJZ25vcmUKKyAgICAgKiBhbnkgbGVhZGluZyAnLScuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldChTdHJpbmcgcmVwLCBpbnQgbWF4Q291bnQpIHsKKyAgICAgICAgZGVjaW1hbEF0ID0gLTE7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgaW50IGV4cG9uZW50ID0gMDsKKyAgICAgICAgLy8gTnVtYmVyIG9mIHplcm9zIGJldHdlZW4gZGVjaW1hbCBwb2ludCBhbmQgZmlyc3Qgbm9uLXplcm8gZGlnaXQgYWZ0ZXIKKyAgICAgICAgLy8gZGVjaW1hbCBwb2ludCwgZm9yIG51bWJlcnMgPCAxLgorICAgICAgICBpbnQgbGVhZGluZ1plcm9zQWZ0ZXJEZWNpbWFsID0gMDsKKyAgICAgICAgYm9vbGVhbiBub25aZXJvRGlnaXRTZWVuID0gZmFsc2U7CisgICAgICAgIC8vIFNraXAgb3ZlciBsZWFkaW5nICctJworICAgICAgICBpbnQgaT0wOworICAgICAgICBpZiAocmVwLmNoYXJBdChpKSA9PSAnLScpIHsKKyAgICAgICAgICAgICsraTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgaSA8IHJlcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSByZXAuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgZGVjaW1hbEF0ID0gY291bnQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIC8vIEludGVnZXIucGFyc2VJbnQgZG9lc24ndCBoYW5kbGUgbGVhZGluZyAnKycgc2lnbnMKKyAgICAgICAgICAgICAgICBpZiAocmVwLmNoYXJBdChpKSA9PSAnKycpIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBleHBvbmVudCA9IEludGVnZXIudmFsdWVPZihyZXAuc3Vic3RyaW5nKGkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA8IG1heENvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKCFub25aZXJvRGlnaXRTZWVuKSB7CisgICAgICAgICAgICAgICAgICAgIG5vblplcm9EaWdpdFNlZW4gPSAoYyAhPSAnMCcpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW5vblplcm9EaWdpdFNlZW4gJiYgZGVjaW1hbEF0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2xlYWRpbmdaZXJvc0FmdGVyRGVjaW1hbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChub25aZXJvRGlnaXRTZWVuKSB7CisgICAgICAgICAgICAgICAgICAgIGVuc3VyZUNhcGFjaXR5KGNvdW50KzEsIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgZGlnaXRzW2NvdW50KytdID0gKGJ5dGUpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlY2ltYWxBdCA9PSAtMSkgeworICAgICAgICAgICAgZGVjaW1hbEF0ID0gY291bnQ7CisgICAgICAgIH0KKyAgICAgICAgZGVjaW1hbEF0ICs9IGV4cG9uZW50IC0gbGVhZGluZ1plcm9zQWZ0ZXJEZWNpbWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRydW5jYXRpbmcgdGhlIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBnaXZlbiBudW1iZXIKKyAgICAgKiBvZiBkaWdpdHMgd2lsbCByZXN1bHQgaW4gYW4gaW5jcmVtZW50IHRvIHRoZSBsYXN0IGRpZ2l0LiAgVGhpcworICAgICAqIG1ldGhvZCBpbXBsZW1lbnRzIGhhbGYtZXZlbiByb3VuZGluZywgdGhlIGRlZmF1bHQgcm91bmRpbmcgbW9kZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIHRoZSBudW1iZXIgb2YgZGlnaXRzIHRvIGtlZXAsIGZyb20gMCB0bworICAgICAqIDxjb2RlPmNvdW50LTE8L2NvZGU+LiAgSWYgMCwgdGhlbiBhbGwgZGlnaXRzIGFyZSByb3VuZGVkIGF3YXksIGFuZAorICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiBhIG9uZSBzaG91bGQgYmUgZ2VuZXJhdGVkIChlLmcuLCBmb3JtYXR0aW5nCisgICAgICogMC4wOSB3aXRoICIjLiMiKS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgZGlnaXQgPGNvZGU+bWF4aW11bURpZ2l0cy0xPC9jb2RlPiBzaG91bGQgYmUKKyAgICAgKiBpbmNyZW1lbnRlZAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBzaG91bGRSb3VuZFVwKGludCBtYXhpbXVtRGlnaXRzKSB7CisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGJvb2xlYW4gaW5jcmVtZW50ID0gZmFsc2U7CisgICAgICAgIC8vIEltcGxlbWVudCBJRUVFIGhhbGYtZXZlbiByb3VuZGluZworICAgICAgICAvKkJ1ZyA0MjQzMTA4CisgICAgICAgICAgZm9ybWF0KDAuMCkgZ2l2ZXMgIjAuMSIgaWYgcHJlY2VkZWQgYnkgcGFyc2UoIjk5Ljk5IikgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA8IGNvdW50KSB7CisgICAgICAgICAgICBpZiAoZGlnaXRzW21heGltdW1EaWdpdHNdID4gJzUnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzXSA9PSAnNScgKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT1tYXhpbXVtRGlnaXRzKzE7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRzW2ldICE9ICcwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG1heGltdW1EaWdpdHMgPiAwICYmIChkaWdpdHNbbWF4aW11bURpZ2l0cy0xXSAlIDIgIT0gMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJvdW5kIHRoZSByZXByZXNlbnRhdGlvbiB0byB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGRpZ2l0cy4KKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIHRvIGJlIHNob3duLgorICAgICAqIFVwb24gcmV0dXJuLCBjb3VudCB3aWxsIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBtYXhpbXVtRGlnaXRzLgorICAgICAqIFRoaXMgbm93IHBlcmZvcm1zIHJvdW5kaW5nIHdoZW4gbWF4aW11bURpZ2l0cyBpcyAwLCBmb3JtZXJseSBpdCBkaWQgbm90LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJvdW5kKGludCBtYXhpbXVtRGlnaXRzKSB7ICAgICAgICAKKyAgICAgICAgLy8gRWxpbWluYXRlIGRpZ2l0cyBiZXlvbmQgbWF4aW11bSBkaWdpdHMgdG8gYmUgZGlzcGxheWVkLgorICAgICAgICAvLyBSb3VuZCB1cCBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgLy8gW2JuZl0gcmV3cml0dGVuIHRvIGZpeCA0MTc5ODE4CisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzID49IDAgJiYgbWF4aW11bURpZ2l0cyA8IGNvdW50KSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkUm91bmRVcChtYXhpbXVtRGlnaXRzKSkgeworICAgICAgICAgICAgICAgIC8vIFJvdW5kaW5nIHVwIGludm9sdmVzIGluY3JlbWVudGluZyBkaWdpdHMgZnJvbSBMU0QgdG8gTVNELgorICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgY2FzZXMgdGhpcyBpcyBzaW1wbGUsIGJ1dCBpbiBhIHdvcnN0IGNhc2Ugc2l0dWF0aW9uCisgICAgICAgICAgICAgICAgLy8gKDk5OTkuLjk5KSB3ZSBoYXZlIHRvIGFkanVzdCB0aGUgZGVjaW1hbEF0IHZhbHVlLgorICAgICAgICAgICAgICAgIGZvciAoOzspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAtLW1heGltdW1EaWdpdHM7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhbGwgOSdzLCBzbyB3ZSBpbmNyZW1lbnQgdG8gYSBzaW5nbGUgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIG9uZSBhbmQgYWRqdXN0IHRoZSBleHBvbmVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2l0c1swXSA9IChieXRlKSAnMSc7CisgICAgICAgICAgICAgICAgICAgICAgICArK2RlY2ltYWxBdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1EaWdpdHMgPSAwOyAvLyBBZGp1c3QgdGhlIGNvdW50CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICsrZGlnaXRzW21heGltdW1EaWdpdHNdOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRzW21heGltdW1EaWdpdHNdIDw9ICc5JykgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0c1ttYXhpbXVtRGlnaXRzXSA9ICcwJzsgLy8gVW5uZWNlc3Nhcnkgc2luY2Ugd2UnbGwgdHJ1bmNhdGUgdGhpcworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK21heGltdW1EaWdpdHM7IC8vIEluY3JlbWVudCBmb3IgdXNlIGFzIGNvdW50CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCA9IG1heGltdW1EaWdpdHM7CisgICAgICAgICAgICAvKkJ1ZyA0MjE3NjYxIERlY2ltYWxGb3JtYXQgZm9ybWF0cyAxLjAwMSB0byAiMS4wMCIgaW5zdGVhZCBvZiAiMSIKKyAgICAgICAgICAgICAgRWxpbWluYXRlIHRyYWlsaW5nIHplcm9zLiBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAqLworICAgICAgICAgICAgd2hpbGUgKGNvdW50ID4gMSAmJiBkaWdpdHNbY291bnQtMV0gPT0gJzAnKSB7CisgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgIH0gLy9bUmljaGFyZC9HQ0xdCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHJvdXRpbmUgdG8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXQgbGlzdCBmcm9tIGEgbG9uZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChsb25nIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHNldChzb3VyY2UsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBsb25nIHZhbHVlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkOyBtdXN0IGJlID49IDAgb3IgPT0KKyAgICAgKiBMb25nLk1JTl9WQUxVRS4KKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBkaWdpdHMgd2hpY2ggc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBJZiBtYXhpbXVtRGlnaXRzIGlzIGxvd2VyIHRoYW4gdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMKKyAgICAgKiBpbiBzb3VyY2UsIHRoZSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHJvdW5kZWQuICBJZ25vcmVkIGlmIDw9IDAuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGxvbmcgc291cmNlLCBpbnQgbWF4aW11bURpZ2l0cykKKyAgICB7CisgICAgICAgIC8vIFRoaXMgbWV0aG9kIGRvZXMgbm90IGV4cGVjdCBhIG5lZ2F0aXZlIG51bWJlci4gSG93ZXZlciwKKyAgICAgICAgLy8gInNvdXJjZSIgY2FuIGJlIGEgTG9uZy5NSU5fVkFMVUUgKC05MjIzMzcyMDM2ODU0Nzc1ODA4KSwKKyAgICAgICAgLy8gaWYgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgaXMgYSBMb25nLk1JTl9WQUxVRS4gIEluIHRoYXQKKyAgICAgICAgLy8gY2FzZSwgaXQgd2lsbCBiZSBmb3JtYXR0ZWQgYXMgLUxvbmcuTUlOX1ZBTFVFLCBhIG51bWJlcgorICAgICAgICAvLyB3aGljaCBpcyBvdXRzaWRlIHRoZSBsZWdhbCByYW5nZSBvZiBhIGxvbmcsIGJ1dCB3aGljaCBjYW4KKyAgICAgICAgLy8gYmUgcmVwcmVzZW50ZWQgYnkgRGlnaXRMaXN0LgorICAgICAgICAvLyBbTkVXXSBGYXN0ZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaWYgKHNvdXJjZSA8PSAwKSB7CisgICAgICAgICAgICBpZiAoc291cmNlID09IExvbmcuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgZGVjaW1hbEF0ID0gY291bnQgPSBNQVhfTE9OR19ESUdJVFM7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShMT05HX01JTl9SRVAsIDAsIGRpZ2l0cywgMCwgY291bnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgZGVjaW1hbEF0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBsZWZ0ID0gTUFYX0xPTkdfRElHSVRTOworICAgICAgICAgICAgaW50IHJpZ2h0OworICAgICAgICAgICAgd2hpbGUgKHNvdXJjZSA+IDApIHsKKyAgICAgICAgICAgICAgICBkaWdpdHNbLS1sZWZ0XSA9IChieXRlKSAoKChsb25nKSAnMCcpICsgKHNvdXJjZSAlIDEwKSk7CisgICAgICAgICAgICAgICAgc291cmNlIC89IDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVjaW1hbEF0ID0gTUFYX0xPTkdfRElHSVRTLWxlZnQ7CisgICAgICAgICAgICAvLyBEb24ndCBjb3B5IHRyYWlsaW5nIHplcm9zCisgICAgICAgICAgICAvLyB3ZSBhcmUgZ3VhcmFudGVlZCB0aGF0IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBub24temVybyBkaWdpdCwKKyAgICAgICAgICAgIC8vIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgbG93ZXIgYm91bmRzCisgICAgICAgICAgICBmb3IgKHJpZ2h0ID0gTUFYX0xPTkdfRElHSVRTIC0gMTsgZGlnaXRzW3JpZ2h0XSA9PSAoYnl0ZSkgJzAnOyAtLXJpZ2h0KSB7fQorICAgICAgICAgICAgY291bnQgPSByaWdodCAtIGxlZnQgKyAxOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkaWdpdHMsIGxlZnQsIGRpZ2l0cywgMCwgY291bnQpOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPiAwKSByb3VuZChtYXhpbXVtRGlnaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gQmlnSW50ZWdlciB2YWx1ZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChCaWdJbnRlZ2VyIHNvdXJjZSwgaW50IG1heGltdW1EaWdpdHMpIHsKKyAgICAgICAgU3RyaW5nIHN0cmluZ0RpZ2l0cyA9IHNvdXJjZS50b1N0cmluZygpOworCisgICAgICAgIGNvdW50ID0gZGVjaW1hbEF0ID0gc3RyaW5nRGlnaXRzLmxlbmd0aCgpOworCisgICAgICAgIC8vIERvbid0IGNvcHkgdHJhaWxpbmcgemVyb3MKKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMSAmJiBzdHJpbmdEaWdpdHMuY2hhckF0KGNvdW50IC0gMSkgPT0gJzAnKSAtLWNvdW50OworCisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBpZiAoc3RyaW5nRGlnaXRzLmNoYXJBdCgwKSA9PSAnLScpIHsKKyAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgIC0tZGVjaW1hbEF0OworICAgICAgICB9CisKKyAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQsIDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGRpZ2l0c1tpXSA9IChieXRlKSBzdHJpbmdEaWdpdHMuY2hhckF0KGkgKyBvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPiAwKSByb3VuZChtYXhpbXVtRGlnaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QgdGhhdCBzZXRzIHRoaXMgZGlnaXQgbGlzdCB0byByZXByZXNlbnQgdGhlCisgICAgICogZ2l2ZW4gdmFsdWUuICBUaGUgdmFsdWUgaXMgZ2l2ZW4gYXMgYSBTdHJpbmcgb2YgdGhlIGZvcm1hdAorICAgICAqIHJldHVybmVkIGJ5IEJpZ0RlY2ltYWwuCisgICAgICogQHBhcmFtIHN0cmluZ0RpZ2l0cyB2YWx1ZSB0byBiZSByZXByZXNlbnRlZCB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBzeW50YXgsIGV4cHJlc3NlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbjogLT9cZCouP1xkKgorICAgICAqIE11c3Qgbm90IGJlIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBkaWdpdHMgd2hpY2ggc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBJZiBtYXhpbXVtRGlnaXRzIGlzIGxvd2VyIHRoYW4gdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMKKyAgICAgKiBpbiBzb3VyY2UsIHRoZSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHJvdW5kZWQuICBJZ25vcmVkIGlmIDw9IDAuCisgICAgICogQHBhcmFtIGZpeGVkUG9pbnQgSWYgdHJ1ZSwgdGhlbiBtYXhpbXVtRGlnaXRzIGlzIHRoZSBtYXhpbXVtCisgICAgICogZnJhY3Rpb25hbCBkaWdpdHMgdG8gYmUgY29udmVydGVkLiAgSWYgZmFsc2UsIHRvdGFsIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0QmlnRGVjaW1hbERpZ2l0cyhTdHJpbmcgc3RyaW5nRGlnaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpIHsKKy8vfCAgICAgICAgLy8gRmluZCB0aGUgZmlyc3Qgbm9uLXplcm8gZGlnaXQsIHRoZSBkZWNpbWFsLCBhbmQgdGhlIGxhc3Qgbm9uLXplcm8gZGlnaXQuCisvL3wgICAgICAgIGludCBmaXJzdD0tMSwgbGFzdD1zdHJpbmdEaWdpdHMubGVuZ3RoKCktMSwgZGVjaW1hbD0tMTsKKy8vfCAgICAgICAgZm9yIChpbnQgaT0wOyAoZmlyc3Q8MCB8fCBkZWNpbWFsPDApICYmIGk8PWxhc3Q7ICsraSkgeworLy98ICAgICAgICAgICAgY2hhciBjID0gc3RyaW5nRGlnaXRzLmNoYXJBdChpKTsKKy8vfCAgICAgICAgICAgIGlmIChjID09ICcuJykgeworLy98ICAgICAgICAgICAgICAgIGRlY2ltYWwgPSBpOworLy98ICAgICAgICAgICAgfSBlbHNlIGlmIChmaXJzdCA8IDAgJiYgKGMgPj0gJzEnICYmIGMgPD0gJzknKSkgeworLy98ICAgICAgICAgICAgICAgIGZpcnN0ID0gaTsKKy8vfCAgICAgICAgICAgIH0KKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGlmIChmaXJzdCA8IDApIHsKKy8vfCAgICAgICAgICAgIGNsZWFyKCk7CisvL3wgICAgICAgICAgICByZXR1cm47CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG5vbi16ZXJvIGRpZ2l0LCBzbyB0aGUKKy8vfCAgICAgICAgLy8gZm9sbG93aW5nIGxvb3AgaXMgc2FmZS4KKy8vfCAgICAgICAgZm9yICg7OykgeworLy98ICAgICAgICAgICAgY2hhciBjID0gc3RyaW5nRGlnaXRzLmNoYXJBdChsYXN0KTsKKy8vfCAgICAgICAgICAgIGlmIChjICE9ICcwJyAmJiBjICE9ICcuJykgeworLy98ICAgICAgICAgICAgICAgIGJyZWFrOworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICAgICAgLS1sYXN0OworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgaWYgKGRlY2ltYWwgPCAwKSB7CisvL3wgICAgICAgICAgICBkZWNpbWFsID0gc3RyaW5nRGlnaXRzLmxlbmd0aCgpOworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgY291bnQgPSBsYXN0IC0gZmlyc3Q7CisvL3wgICAgICAgIGlmIChkZWNpbWFsIDwgZmlyc3QgfHwgZGVjaW1hbCA+IGxhc3QpIHsKKy8vfCAgICAgICAgICAgICsrY291bnQ7CisvL3wgICAgICAgIH0KKy8vfCAgICAgICAgZGVjaW1hbEF0ID0gZGVjaW1hbCAtIGZpcnN0OworLy98ICAgICAgICBpZiAoZGVjaW1hbEF0IDwgMCkgeworLy98ICAgICAgICAgICAgKytkZWNpbWFsQXQ7CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCwgMCk7CisvL3wgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworLy98ICAgICAgICAgICAgZGlnaXRzW2ldID0gKGJ5dGUpIHN0cmluZ0RpZ2l0cy5jaGFyQXQoZmlyc3QrKyk7CisvL3wgICAgICAgICAgICBpZiAoZmlyc3QgPT0gZGVjaW1hbCkgeworLy98ICAgICAgICAgICAgICAgICsrZmlyc3Q7CisvL3wgICAgICAgICAgICB9CisvL3wgICAgICAgIH0KKworICAgICAgICAvLyBUaGUgbWF4RGlnaXRzIGhlcmUgY291bGQgYWxzbyBiZSBJbnRlZ2VyLk1BWF9WQUxVRQorICAgICAgICBzZXQoc3RyaW5nRGlnaXRzLCBzdHJpbmdEaWdpdHMubGVuZ3RoKCkpOworCisgICAgICAgIC8vIEVsaW1pbmF0ZSBkaWdpdHMgYmV5b25kIG1heGltdW0gZGlnaXRzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgICAgLy8gUm91bmQgdXAgaWYgYXBwcm9wcmlhdGUuCisgICAgLy8ge2RsZn0gU29tZSBjYWxsZXJzIGRlcGVuZCBvbiBwYXNzaW5nICcwJyB0byByb3VuZCB0byBtZWFuICdkb24ndCByb3VuZCcsIGJ1dAorICAgIC8vIHJhdGhlciB0aGFuIHBhc3MgdGhhdCBpbmZvcm1hdGlvbiBleHBsaWNpdGx5LCB3ZSByZWx5IG9uIHNvbWUgbWFnaWMgd2l0aCBtYXhpbXVtRGlnaXRzCisgICAgLy8gYW5kIGRlY2ltYWxBdC4gIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgbm8gZ29vZCwgYmVjYXVzZSB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgbWF4aW11bURpZ2l0cworICAgIC8vIGlzIHplcm8gYW5kIHdlIGRvIHdhbnQgdG8gcm91bmQsIGUuZy4gQmlnRGVjaW1hbCB2YWx1ZXMgLTEgPCB4IDwgMS4gIFNvIHNpbmNlIHJvdW5kCisgICAgLy8gY2hhbmdlZCB0byBwZXJmb3JtIHJvdW5kaW5nIHdoZW4gdGhlIGFyZ3VtZW50IGlzIDAsIHdlIG5vdyBmb3JjZSB0aGUgYXJndW1lbnQKKyAgICAvLyB0byAtMSBpbiB0aGUgc2l0dWF0aW9ucyB3aGVyZSBpdCBtYXR0ZXJzLgorICAgICAgICByb3VuZChmaXhlZFBvaW50ID8gKG1heGltdW1EaWdpdHMgKyBkZWNpbWFsQXQpIDogbWF4aW11bURpZ2l0cyA9PSAwID8gLTEgOiBtYXhpbXVtRGlnaXRzKTsKKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIEJpZ0RlY2ltYWwgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChqYXZhLm1hdGguQmlnRGVjaW1hbCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpIHsKKyAgICAgICAgc2V0QmlnRGVjaW1hbERpZ2l0cyhzb3VyY2UudG9TdHJpbmcoKSwgbWF4aW11bURpZ2l0cywgZml4ZWRQb2ludCk7CisgICAgfQorLy8jZW5kaWYKKworICAgIC8qCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIEJpZ0RlY2ltYWwgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4aW11bURpZ2l0cywgYm9vbGVhbiBmaXhlZFBvaW50KSB7CisgICAgICAgIHNldEJpZ0RlY2ltYWxEaWdpdHMoc291cmNlLnRvU3RyaW5nKCksIG1heGltdW1EaWdpdHMsIGZpeGVkUG9pbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERpZ2l0TGlzdCByZXByZXNlbnRzIExvbmcuTUlOX1ZBTFVFOworICAgICAqIGZhbHNlLCBvdGhlcndpc2UuICBUaGlzIGlzIHJlcXVpcmVkIHNvIHRoYXQgZ2V0TG9uZygpIHdvcmtzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0xvbmdNSU5fVkFMVUUoKQorICAgIHsKKyAgICAgICAgaWYgKGRlY2ltYWxBdCAhPSBjb3VudCB8fCBjb3VudCAhPSBNQVhfTE9OR19ESUdJVFMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGRpZ2l0c1tpXSAhPSBMT05HX01JTl9SRVBbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBMT05HX01JTl9SRVA7CisKKyAgICBzdGF0aWMKKyAgICB7CisgICAgICAgIC8vIFN0b3JlIHRoZSByZXByZXNlbnRhdGlvbiBvZiBMT05HX01JTiB3aXRob3V0IHRoZSBsZWFkaW5nICctJworICAgICAgICBTdHJpbmcgcyA9IExvbmcudG9TdHJpbmcoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICBMT05HX01JTl9SRVAgPSBuZXcgYnl0ZVtNQVhfTE9OR19ESUdJVFNdOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBNQVhfTE9OR19ESUdJVFM7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgTE9OR19NSU5fUkVQW2ldID0gKGJ5dGUpcy5jaGFyQXQoaSArIDEpOworICAgICAgICB9CisgICAgfQorCisvLyBVbnVzZWQgLS0gQWxhbiAyMDAzLTA1CisvLyAgICAvKioKKy8vICAgICAqIFJldHVybiB0aGUgZmxvb3Igb2YgdGhlIGxvZyBiYXNlIDEwIG9mIGEgZ2l2ZW4gZG91YmxlLgorLy8gICAgICogVGhpcyBtZXRob2QgY29tcGVuc2F0ZXMgZm9yIGluYWNjdXJhY2llcyB3aGljaCBhcmlzZSBuYXR1cmFsbHkgd2hlbgorLy8gICAgICogY29tcHV0aW5nIGxvZ3MsIGFuZCBhbHdheXMgZ2l2ZSB0aGUgY29ycmVjdCB2YWx1ZS4gIFRoZSBwYXJhbWV0ZXIKKy8vICAgICAqIG11c3QgYmUgcG9zaXRpdmUgYW5kIGZpbml0ZS4KKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxvZzEwKGRvdWJsZSBkKQorLy8gICAgeworLy8gICAgICAgIC8vIFRoZSByZWFzb24gdGhpcyByb3V0aW5lIGlzIG5lZWRlZCBpcyB0aGF0IHNpbXBseSB0YWtpbmcgdGhlCisvLyAgICAgICAgLy8gbG9nIGFuZCBkaXZpZGluZyBieSBsb2cxMCB5aWVsZHMgYSByZXN1bHQgd2hpY2ggbWF5IGJlIG9mZgorLy8gICAgICAgIC8vIGJ5IDEgZHVlIHRvIHJvdW5kaW5nIGVycm9ycy4gIEZvciBleGFtcGxlLCB0aGUgbmFpdmUgbG9nMTAKKy8vICAgICAgICAvLyBvZiAxLjBlMzAwIHRha2VuIHRoaXMgd2F5IGlzIDI5OSwgcmF0aGVyIHRoYW4gMzAwLgorLy8gICAgICAgIGRvdWJsZSBsb2cxMCA9IE1hdGgubG9nKGQpIC8gTE9HMTA7CisvLyAgICAgICAgaW50IGlsb2cxMCA9IChpbnQpTWF0aC5mbG9vcihsb2cxMCk7CisvLyAgICAgICAgLy8gUG9zaXRpdmUgbG9ncyBjb3VsZCBiZSB0b28gc21hbGwsIGUuZy4gMC45OSBpbnN0ZWFkIG9mIDEuMAorLy8gICAgICAgIGlmIChsb2cxMCA+IDAgJiYgZCA+PSBNYXRoLnBvdygxMCwgaWxvZzEwICsgMSkpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICArK2lsb2cxMDsKKy8vICAgICAgICB9CisvLyAgICAgICAgLy8gTmVnYXRpdmUgbG9ncyBjb3VsZCBiZSB0b28gYmlnLCBlLmcuIC0wLjk5IGluc3RlYWQgb2YgLTEuMAorLy8gICAgICAgIGVsc2UgaWYgKGxvZzEwIDwgMCAmJiBkIDwgTWF0aC5wb3coMTAsIGlsb2cxMCkpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICAtLWlsb2cxMDsKKy8vICAgICAgICB9CisvLyAgICAgICAgcmV0dXJuIGlsb2cxMDsKKy8vICAgIH0KKy8vCisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgTE9HMTAgPSBNYXRoLmxvZygxMC4wKTsKKworICAgIC8vIChUaGUgZm9sbG93aW5nIGJvaWxlcnBsYXRlIG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub3QgY2FsbGVkLAorICAgIC8vIGFuZCBjYW5ub3QgYmUgY2FsbGVkIGJ5IHRlc3RzIHNpbmNlIHRoaXMgY2xhc3MgaXMKKyAgICAvLyBwYWNrYWdlLXByaXZhdGUuICBUaGUgbWV0aG9kcyBtYXkgYmUgdXNlZnVsIGluIHRoZSBmdXR1cmUsIHNvCisgICAgLy8gd2UgZG8gbm90IGRlbGV0ZSB0aGVtLiAgMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIGVxdWFsaXR5IHRlc3QgYmV0d2VlbiB0d28gZGlnaXQgbGlzdHMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIERpZ2l0TGlzdCkpICAgICAgICAgLy8gKDEpIHNhbWUgb2JqZWN0PworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBEaWdpdExpc3Qgb3RoZXIgPSAoRGlnaXRMaXN0KSBvYmo7CisgICAgICAgIGlmIChjb3VudCAhPSBvdGhlci5jb3VudCB8fAorICAgICAgICBkZWNpbWFsQXQgIT0gb3RoZXIuZGVjaW1hbEF0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgICAgICBpZiAoZGlnaXRzW2ldICE9IG90aGVyLmRpZ2l0c1tpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyB0aGUgaGFzaCBjb2RlIGZvciB0aGUgZGlnaXQgbGlzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgaGFzaGNvZGUgPSBkZWNpbWFsQXQ7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorICAgICAgICAgICAgaGFzaGNvZGUgPSBoYXNoY29kZSAqIDM3ICsgZGlnaXRzW2ldOworCisgICAgICAgIHJldHVybiBoYXNoY29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuICIwIjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIjAuIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSBidWYuYXBwZW5kKChjaGFyKWRpZ2l0c1tpXSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIngxMF4iKTsKKyAgICAgICAgYnVmLmFwcGVuZChkZWNpbWFsQXQpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0VzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjllNGNjMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0VzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDExLzE5LzIwMDEgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGNvbnZlcnRzIFVuaWNvZGUgY2hhcmFjdGVycyB0byBhbiBlc2NhcGUKKyAqIGZvcm0uICBFeGFtcGxlcyBvZiBlc2NhcGUgZm9ybXMgYXJlICJVKzRFMDEiIGFuZCAiJiN4MTBGRkZGOyIuCisgKiBFc2NhcGUgZm9ybXMgaGF2ZSBhIHByZWZpeCBhbmQgc3VmZml4LCBlaXRoZXIgb2Ygd2hpY2ggbWF5IGJlCisgKiBlbXB0eSwgYSByYWRpeCwgdHlwaWNhbGx5IDE2IG9yIDEwLCBhIG1pbmltdW0gZGlnaXQgY291bnQsCisgKiB0eXBpY2FsbHkgMSwgNCwgb3IgOCwgYW5kIGEgYm9vbGVhbiB0aGF0IHNwZWNpZmllcyB3aGV0aGVyCisgKiBzdXBwbGVtZW50YWwgY2hhcmFjdGVycyBhcmUgaGFuZGxlZCBhcyAzMi1iaXQgY29kZSBwb2ludHMgb3IgYXMgdHdvCisgKiAxNi1iaXQgY29kZSB1bml0cy4gIE1vc3QgZXNjYXBlIGZvcm1zIGhhbmRsZSAzMi1iaXQgY29kZSBwb2ludHMsCisgKiBidXQgc29tZSwgc3VjaCBhcyB0aGUgSmF2YSBmb3JtLCBpbnRlbnRpb25hbGx5IGJyZWFrIHRoZW0gaW50byB0d28KKyAqIHN1cnJvZ2F0ZSBwYWlycywgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgKgorICogPHA+U29tZSBlc2NhcGUgZm9ybXMgYWN0dWFsbHkgaGF2ZSB0d28gZGlmZmVyZW50IHBhdHRlcm5zLCBvbmUgZm9yCisgKiBCTVAgY2hhcmFjdGVycyAoMC4uRkZGRikgYW5kIG9uZSBmb3Igc3VwcGxlbWVudHMgKD5GRkZGKS4gIFRvCisgKiBoYW5kbGUgdGhpcywgYSBzZWNvbmQgRXNjYXBlVHJhbnNsaXRlcmF0b3IgbWF5IGJlIGRlZmluZWQgdGhhdAorICogc3BlY2lmaWVzIHRoZSBwYXR0ZXJuIHRvIGJlIHByb2R1Y2VkIGZvciBzdXBwbGVtZW50YWxzLiAgQW4gZXhhbXBsZQorICogb2YgYSBmb3JtIHRoYXQgcmVxdWlyZXMgdGhpcyBpcyB0aGUgQyBmb3JtLCB3aGljaCB1c2VzICJcXHVGRkZGIgorICogZm9yIEJNUCBjaGFyYWN0ZXJzIGFuZCAiXFxVMDAxMEZGRkYiIGZvciBzdXBwbGVtZW50YWxzLgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgcGFja2FnZSBwcml2YXRlLiAgSXQgcmVnaXN0ZXJzIHNldmVyYWwgc3RhbmRhcmQKKyAqIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbSB3aGljaCBhcmUgdGhlbiBhY2Nlc3NlZCB2aWEgdGhlaXIgSURzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgRXNjYXBlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IG9mIHRoZSBlc2NhcGUgZm9ybTsgbWF5IGJlIGVtcHR5LCBidXQgdXN1YWxseSBpc24ndC4KKyAgICAgKiBNYXkgbm90IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4OworCisgICAgLyoqCisgICAgICogVGhlIHByZWZpeCBvZiB0aGUgZXNjYXBlIGZvcm07IG9mdGVuIGVtcHR5LiAgTWF5IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN1ZmZpeDsKKworICAgIC8qKgorICAgICAqIFRoZSByYWRpeCB0byBkaXNwbGF5IHRoZSBudW1iZXIgaW4uICBUeXBpY2FsbHkgMTYgb3IgMTAuICBNdXN0CisgICAgICogYmUgaW4gdGhlIHJhbmdlIDIgdG8gMzYuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcmFkaXg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLiAgVHlwaWNhbGx5IDEsIDQsIG9yIDguICBWYWx1ZXMKKyAgICAgKiBsZXNzIHRoYW4gMSBhcmUgZXF1aXZhbGVudCB0byAxLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1pbkRpZ2l0czsKKworICAgIC8qKgorICAgICAqIElmIHRydWUsIHN1cHBsZW1lbnRhbHMgYXJlIGhhbmRsZWQgYXMgMzItYml0IGNvZGUgcG9pbnRzLiAgSWYKKyAgICAgKiBmYWxzZSwgdGhleSBhcmUgaGFuZGxlZCBhcyB0d28gMTYtYml0IGNvZGUgdW5pdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGdyb2tTdXBwbGVtZW50YWxzOworCisgICAgLyoqCisgICAgICogVGhlIGZvcm0gdG8gYmUgdXNlZCBmb3Igc3VwcGxlbWVudGFscy4gIElmIHRoaXMgaXMgbnVsbCB0aGVuCisgICAgICogdGhlIHNhbWUgZm9ybSBpcyB1c2VkIGZvciBCTVAgY2hhcmFjdGVycyBhbmQgc3VwcGxlbWVudGFscy4gIElmCisgICAgICogdGhpcyBpcyBub3QgbnVsbCBhbmQgaWYgZ3Jva1N1cHBsZW1lbnRhbHMgaXMgdHJ1ZSB0aGVuIHRoZQorICAgICAqIHByZWZpeCwgc3VmZml4LCByYWRpeCwgYW5kIG1pbkRpZ2l0cyBvZiB0aGlzIG9iamVjdCBhcmUgdXNlZAorICAgICAqIGZvciBzdXBwbGVtZW50YWxzLgorICAgICAqLworICAgIHByaXZhdGUgRXNjYXBlVHJhbnNsaXRlcmF0b3Igc3VwcGxlbWVudGFsSGFuZGxlcjsKKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVycyBzdGFuZGFyZCB2YXJpYW50cyB3aXRoIHRoZSBzeXN0ZW0uICBDYWxsZWQgYnkKKyAgICAgKiBUcmFuc2xpdGVyYXRvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIC8vIFVuaWNvZGU6ICJVKzEwRkZGRiIgaGV4LCBtaW49NCwgbWF4PTYKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L1VuaWNvZGUiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L1VuaWNvZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlUrIiwgIiIsIDE2LCA0LCB0cnVlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBKYXZhOiAiXFx1RkZGRiIgaGV4LCBtaW49NCwgbWF4PTQKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L0phdmEiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L0phdmEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcdSIsICIiLCAxNiwgNCwgZmFsc2UsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIEM6ICJcXHVGRkZGIiBoZXgsIG1pbj00LCBtYXg9NDsgXFxVMDAxMEZGRkYgaGV4LCBtaW49OCwgbWF4PTgKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L0MiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L0MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcdSIsICIiLCAxNiwgNCwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCIiLCAiXFxVIiwgIiIsIDE2LCA4LCB0cnVlLCBudWxsKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gWE1MOiAiJiN4MTBGRkZGOyIgaGV4LCBtaW49MSwgbWF4PTYKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L1hNTCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvWE1MIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImI3giLCAiOyIsIDE2LCAxLCB0cnVlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gWE1MMTA6ICImMTExNDExMTsiIGRlYywgbWluPTEsIG1heD03IChub3QgcmVhbGx5ICJBbnktSGV4IikKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L1hNTDEwIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9YTUwxMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJiMiLCAiOyIsIDEwLCAxLCB0cnVlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gUGVybDogIlxceHsyNjNBfSIgaGV4LCBtaW49MSwgbWF4PTYKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4L1BlcmwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L1BlcmwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxceHsiLCAifSIsIDE2LCAxLCB0cnVlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gR2VuZXJpYworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHUiLCAiIiwgMTYsIDQsIGZhbHNlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBlc2NhcGUgdHJhbnNsaXRlcmF0b3Igd2l0aCB0aGUgZ2l2ZW4gSUQgYW5kCisgICAgICogcGFyYW1ldGVycy4gIFNlZSB0aGUgY2xhc3MgbWVtYmVyIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgRXNjYXBlVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBTdHJpbmcgcHJlZml4LCBTdHJpbmcgc3VmZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYWRpeCwgaW50IG1pbkRpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGdyb2tTdXBwbGVtZW50YWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIHN1cHBsZW1lbnRhbEhhbmRsZXIpIHsKKyAgICAgICAgc3VwZXIoSUQsIG51bGwpOworICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDsKKyAgICAgICAgdGhpcy5zdWZmaXggPSBzdWZmaXg7CisgICAgICAgIHRoaXMucmFkaXggPSByYWRpeDsKKyAgICAgICAgdGhpcy5taW5EaWdpdHMgPSBtaW5EaWdpdHM7CisgICAgICAgIHRoaXMuZ3Jva1N1cHBsZW1lbnRhbHMgPSBncm9rU3VwcGxlbWVudGFsczsKKyAgICAgICAgdGhpcy5zdXBwbGVtZW50YWxIYW5kbGVyID0gc3VwcGxlbWVudGFsSGFuZGxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zLnN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBwb3MubGltaXQ7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocHJlZml4KTsKKyAgICAgICAgaW50IHByZWZpeExlbiA9IHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgYm9vbGVhbiByZWRvUHJlZml4ID0gZmFsc2U7CisKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gZ3Jva1N1cHBsZW1lbnRhbHMgPyB0ZXh0LmNoYXIzMkF0KHN0YXJ0KSA6IHRleHQuY2hhckF0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBjaGFyTGVuID0gZ3Jva1N1cHBsZW1lbnRhbHMgPyBVVEYxNi5nZXRDaGFyQ291bnQoYykgOiAxOworCisgICAgICAgICAgICBpZiAoKGMgJiAweEZGRkYwMDAwKSAhPSAwICYmIHN1cHBsZW1lbnRhbEhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzdXBwbGVtZW50YWxIYW5kbGVyLnByZWZpeCk7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIoYnVmLCBjLCBzdXBwbGVtZW50YWxIYW5kbGVyLnJhZGl4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBsZW1lbnRhbEhhbmRsZXIubWluRGlnaXRzKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHN1cHBsZW1lbnRhbEhhbmRsZXIuc3VmZml4KTsKKyAgICAgICAgICAgICAgICByZWRvUHJlZml4ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlZG9QcmVmaXgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwcmVmaXgpOworICAgICAgICAgICAgICAgICAgICByZWRvUHJlZml4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aChwcmVmaXhMZW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZE51bWJlcihidWYsIGMsIHJhZGl4LCBtaW5EaWdpdHMpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3VmZml4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBzdGFydCArIGNoYXJMZW4sIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHN0YXJ0ICs9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGxpbWl0ICs9IGJ1Zi5sZW5ndGgoKSAtIGNoYXJMZW47CisgICAgICAgIH0KKworICAgICAgICBwb3MuY29udGV4dExpbWl0ICs9IGxpbWl0IC0gcG9zLmxpbWl0OworICAgICAgICBwb3MubGltaXQgPSBsaW1pdDsKKyAgICAgICAgcG9zLnN0YXJ0ID0gc3RhcnQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRnVuY3Rpb25SZXBsYWNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRnVuY3Rpb25SZXBsYWNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmNjZmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9GdW5jdGlvblJlcGxhY2VyLmphdmEKQEAgLTAsMCArMSw4NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDItMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiAgIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDEvMTQvMjAwMiAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogQSByZXBsYWNlciB0aGF0IGNhbGxzIGEgdHJhbnNsaXRlcmF0b3IgdG8gZ2VuZXJhdGUgaXRzIG91dHB1dCB0ZXh0LgorICogVGhlIGlucHV0IHRleHQgdG8gdGhlIHRyYW5zbGl0ZXJhdG9yIGlzIHRoZSBvdXRwdXQgb2YgYW5vdGhlcgorICogVW5pY29kZVJlcGxhY2VyIG9iamVjdC4gIFRoYXQgaXMsIHRoaXMgcmVwbGFjZXIgd3JhcHMgYW5vdGhlcgorICogcmVwbGFjZXIgd2l0aCBhIHRyYW5zbGl0ZXJhdG9yLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBGdW5jdGlvblJlcGxhY2VyIGltcGxlbWVudHMgVW5pY29kZVJlcGxhY2VyIHsKKworICAgIC8qKgorICAgICAqIFRoZSB0cmFuc2xpdGVyYXRvci4gIE11c3Qgbm90IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdDsKKworICAgIC8qKgorICAgICAqIFRoZSByZXBsYWNlciBvYmplY3QuICBUaGlzIGdlbmVyYXRlcyB0ZXh0IHRoYXQgaXMgdGhlbgorICAgICAqIHByb2Nlc3NlZCBieSAndHJhbnNsaXQnLiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVSZXBsYWNlciByZXBsYWNlcjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlcGxhY2VyIHRoYXQgdGFrZXMgdGhlIG91dHB1dCBvZiB0aGUgZ2l2ZW4KKyAgICAgKiByZXBsYWNlciwgcGFzc2VzIGl0IHRocm91Z2ggdGhlIGdpdmVuIHRyYW5zbGl0ZXJhdG9yLCBhbmQgZW1pdHMKKyAgICAgKiB0aGUgcmVzdWx0IGFzIG91dHB1dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRnVuY3Rpb25SZXBsYWNlcihUcmFuc2xpdGVyYXRvciB0aGVUcmFuc2xpdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgdGhlUmVwbGFjZXIpIHsKKyAgICAgICAgdHJhbnNsaXQgPSB0aGVUcmFuc2xpdDsKKyAgICAgICAgcmVwbGFjZXIgPSB0aGVSZXBsYWNlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIGludCByZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJzb3IpIHsKKworICAgICAgICAvLyBGaXJzdCBkZWxlZ2F0ZSB0byBzdWJvcmRpbmF0ZSByZXBsYWNlcgorICAgICAgICBpbnQgbGVuID0gcmVwbGFjZXIucmVwbGFjZSh0ZXh0LCBzdGFydCwgbGltaXQsIGN1cnNvcik7CisgICAgICAgIGxpbWl0ID0gc3RhcnQgKyBsZW47CisKKyAgICAgICAgLy8gTm93IHRyYW5zbGl0ZXJhdGUKKyAgICAgICAgbGltaXQgPSB0cmFuc2xpdC50cmFuc2xpdGVyYXRlKHRleHQsIHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgcmV0dXJuIGxpbWl0IC0gc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SZXBsYWNlclBhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZSA9IG5ldyBTdHJpbmdCdWZmZXIoIiYiKTsKKyAgICAgICAgcnVsZS5hcHBlbmQodHJhbnNsaXQuZ2V0SUQoKSk7CisgICAgICAgIHJ1bGUuYXBwZW5kKCIoICIpOworICAgICAgICBydWxlLmFwcGVuZChyZXBsYWNlci50b1JlcGxhY2VyUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICBydWxlLmFwcGVuZCgiICkiKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IG91dHB1dCBieSB0aGlzIG9iamVjdAorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgb3V0cHV0IGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRSZXBsYWNlbWVudFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIHRvVW5pb25Uby5hZGRBbGwodHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCkpOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0lETkEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0lETkEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODY3MTE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvSUROQS5qYXZhCkBAIC0wLDAgKzEsOTY1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKgorICogSUROQSBBUEkgaW1wbGVtZW50cyB0aGUgSUROQSBwcm90b2NvbCBhcyBkZWZpbmVkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNDkwLnR4dCI+SUROQSBSRkM8L2E+LgorICogVGhlIGRyYWZ0IGRlZmluZXMgMiBvcGVyYXRpb25zOiBUb0FTQ0lJIGFuZCBUb1VuaWNvZGUuIERvbWFpbiBsYWJlbHMgCisgKiBjb250YWluaW5nIG5vbi1BU0NJSSBjb2RlIHBvaW50cyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJvY2Vzc2VkIGJ5CisgKiBUb0FTQ0lJIG9wZXJhdGlvbiBiZWZvcmUgcGFzc2luZyBpdCB0byByZXNvbHZlciBsaWJyYXJpZXMuIERvbWFpbiBuYW1lcworICogdGhhdCBhcmUgb2J0YWluZWQgZnJvbSByZXNvbHZlciBsaWJyYXJpZXMgYXJlIHJlcXVpcmVkIHRvIGJlIHByb2Nlc3NlZCBieQorICogVG9Vbmljb2RlIG9wZXJhdGlvbiBiZWZvcmUgZGlzcGxheWluZyB0aGUgZG9tYWluIG5hbWUgdG8gdGhlIHVzZXIuCisgKiBJRE5BIHJlcXVpcmVzIHRoYXQgaW1wbGVtZW50YXRpb25zIHByb2Nlc3MgaW5wdXQgc3RyaW5ncyB3aXRoIAorICogPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ5MS50eHQiPk5hbWVwcmVwPC9hPiwgCisgKiB3aGljaCBpcyBhIHByb2ZpbGUgb2YgPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ1NC50eHQiPlN0cmluZ3ByZXA8L2E+ICwgCisgKiBhbmQgdGhlbiB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzM0OTIudHh0Ij5QdW55Y29kZTwvYT4uIAorICogSW1wbGVtZW50YXRpb25zIG9mIElETkEgTVVTVCBmdWxseSBpbXBsZW1lbnQgTmFtZXByZXAgYW5kIFB1bnljb2RlOyAKKyAqIG5laXRoZXIgTmFtZXByZXAgbm9yIFB1bnljb2RlIGFyZSBvcHRpb25hbC4KKyAqIFRoZSBpbnB1dCBhbmQgb3V0cHV0IG9mIFRvQVNDSUkgYW5kIFRvVW5pY29kZSBvcGVyYXRpb25zIGFyZSBVbmljb2RlIAorICogYW5kIGFyZSBkZXNpZ25lZCB0byBiZSBjaGFpbmFibGUsIGkuZS4sIGFwcGx5aW5nIFRvQVNDSUkgb3IgVG9Vbmljb2RlIG9wZXJhdGlvbnMKKyAqIG11bHRpcGxlIHRpbWVzIHRvIGFuIGlucHV0IHN0cmluZyB3aWxsIHlpZWxkIHRoZSBzYW1lIHJlc3VsdCBhcyBhcHBseWluZyB0aGUgb3BlcmF0aW9uCisgKiBvbmNlLgorICogVG9Vbmljb2RlKFRvVW5pY29kZShUb1VuaWNvZGUuLi4oVG9Vbmljb2RlKHN0cmluZykpKSkgPT0gVG9Vbmljb2RlKHN0cmluZykgCisgKiBUb0FTQ0lJKFRvQVNDSUkoVG9BU0NJSS4uLihUb0FTQ0lJKHN0cmluZykpKSA9PSBUb0FTQ0lJKHN0cmluZykuCisgKiAKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSUROQSB7CisKKyAgICAvKiBJRE5BIEFDRSBQcmVmaXggaXMgInhuLS0iICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIEFDRV9QUkVGSVggPSBuZXcgY2hhcltdeyAweDAwNzgsMHgwMDZFLDB4MDAyZCwweDAwMmQgfSA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFDRV9QUkVGSVhfTEVOR1RIICA9IDQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0xBQkVMX0xFTkdUSCAgID0gNjM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiAgICAgICAgICAgICA9IDB4MDAyRDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9BICAgICAgICAgID0gMHgwMDQxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX1ogICAgICAgICAgPSAweDAwNUE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPV0VSX0NBU0VfREVMVEEgICA9IDB4MDAyMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9TVE9QICAgICAgICAgID0gMHgwMDJFOworCisgICAgLyoqIAorICAgICAqIE9wdGlvbiB0byBwcm9oaWJpdCBwcm9jZXNzaW5nIG9mIHVuYXNzaWduZWQgY29kZXBvaW50cyBpbiB0aGUgaW5wdXQgYW5kCisgICAgICogZG8gbm90IGNoZWNrIGlmIHRoZSBpbnB1dCBjb25mb3JtcyB0byBTVEQtMyBBU0NJSSBydWxlcy4KKyAgICAgKiAKKyAgICAgKiBAc2VlICAjY29udmVydFRvQVNDSUkgI2NvbnZlcnRUb1VuaWNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUICAgICAgICAgICAgID0gMHgwMDAwOworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gYWxsb3cgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGVwb2ludHMgaW4gdGhlIGlucHV0CisgICAgICogCisgICAgICogQHNlZSAgI2NvbnZlcnRUb0FTQ0lJICNjb252ZXJ0VG9Vbmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxMT1dfVU5BU1NJR05FRCAgICA9IDB4MDAwMTsKKyAgICAvKiogCisgICAgICogT3B0aW9uIHRvIGNoZWNrIGlmIGlucHV0IGNvbmZvcm1zIHRvIFNURC0zIEFTQ0lJIHJ1bGVzCisgICAgICogCisgICAgICogQHNlZSAjY29udmVydFRvQVNDSUkgI2NvbnZlcnRUb1VuaWNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVU0VfU1REM19SVUxFUyAgICAgID0gMHgwMDAyOworICAgIAorICAgIC8vIHN0YXRpYyBmaW5hbCBzaW5nbGV0b24gb2JqZWN0IHRoYXQgaXMgaW5pdGlhbGl6ZWQKKyAgICAvLyBhdCBjbGFzcyBpbml0aWFsaXphdGlvbiB0aW1lLCBoZW5jZSBndWFyYW50ZWVkIHRvCisgICAgLy8gYmUgaW5pdGlhbGl6ZWQgYW5kIHRocmVhZCBzYWZlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSUROQSBzaW5nbGV0b24gID0gbmV3IElETkEoKTsKKyAgICAKKyAgICAvLyBUaGUgTmFtZVByZXAgcHJvZmlsZSBvYmplY3QKKyAgICBwcml2YXRlIFN0cmluZ1ByZXAgbmFtZVByZXA7CisgICAgCisgICAgLyogcHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbnN0cnVjdGlvbiBvZiB0aGUgb2JqZWN0ICovCisgICAgcHJpdmF0ZSBJRE5BKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdWlkbmEuc3BwIik7CisgICAgICAgICAgIG5hbWVQcmVwID0gbmV3IFN0cmluZ1ByZXAoc3RyZWFtKTsKKyAgICAgICAgICAgc3RyZWFtLmNsb3NlKCk7CisgICAgICAgIH1jYXRjaCAoSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUudG9TdHJpbmcoKSwiIiwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzdGFydHNXaXRoUHJlZml4KFN0cmluZ0J1ZmZlciBzcmMpeworICAgICAgICBib29sZWFuIHN0YXJ0c1dpdGhQcmVmaXggPSB0cnVlOworCisgICAgICAgIGlmKHNyYy5sZW5ndGgoKSA8IEFDRV9QUkVGSVhfTEVOR1RIKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDsgaTxBQ0VfUFJFRklYX0xFTkdUSDtpKyspeworICAgICAgICAgICAgaWYodG9BU0NJSUxvd2VyKHNyYy5jaGFyQXQoaSkpICE9IEFDRV9QUkVGSVhbaV0peworICAgICAgICAgICAgICAgIHN0YXJ0c1dpdGhQcmVmaXggPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhcnRzV2l0aFByZWZpeDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIHRvQVNDSUlMb3dlcihjaGFyIGNoKXsKKyAgICAgICAgaWYoQ0FQSVRBTF9BIDw9IGNoICYmIGNoIDw9IENBUElUQUxfWil7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpKGNoICsgTE9XRVJfQ0FTRV9ERUxUQSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ0J1ZmZlciB0b0FTQ0lJTG93ZXIoU3RyaW5nQnVmZmVyIHNyYyl7CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzcmMubGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKHRvQVNDSUlMb3dlcihzcmMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShTdHJpbmdCdWZmZXIgczEsIFN0cmluZ0J1ZmZlciBzMil7CisgICAgICAgIGNoYXIgYzEsYzI7CisgICAgICAgIGludCByYzsKKyAgICAgICAgZm9yKGludCBpID0wOy8qIG5vIGNvbmRpdGlvbiAqLztpKyspIHsKKyAgICAgICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2ggKi8KKyAgICAgICAgICAgIGlmKGkgPT0gczEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYzEgPSBzMS5jaGFyQXQoaSk7CisgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBDYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gKi8KKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIHJjPXRvQVNDSUlMb3dlcihjMSktdG9BU0NJSUxvd2VyKGMyKTsKKyAgICAgICAgICAgICAgICBpZihyYyE9MCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFNlcGFyYXRvckluZGV4KGNoYXJbXSBzcmMsaW50IHN0YXJ0LCBpbnQgbGltaXQpeworICAgICAgICBmb3IoOyBzdGFydDxsaW1pdDtzdGFydCsrKXsKKyAgICAgICAgICAgIGlmKGlzTGFiZWxTZXBhcmF0b3Ioc3JjW3N0YXJ0XSkpeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB3ZSBoYXZlIG5vdCBmb3VuZCB0aGUgc2VwYXJhdG9yIGp1c3QgcmV0dXJuIGxlbmd0aAorICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFNlcGFyYXRvckluZGV4KFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyKXsKKyAgICAgICAgaW50IGN1cnJlbnRJbmRleCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgaW50IHNlcGFyYXRvckluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0KCkpIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoaXNMYWJlbFNlcGFyYXRvcihjaCkpeworICAgICAgICAgICAgICAgIHNlcGFyYXRvckluZGV4ID0gaXRlci5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGl0ZXIuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VwYXJhdG9ySW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gcmVzZXQgaW5kZXgKKyAgICAgICAgaXRlci5zZXRJbmRleChjdXJyZW50SW5kZXgpOworICAgICAgICAvLyB3ZSBoYXZlIG5vdCBmb3VuZCB0aGUgc2VwYXJhdG9yIGp1c3QgcmV0dXJuIHRoZSBsZW5ndGgKKyAgICAgICAKKyAgICB9CisgICAgKi8KKyAgICAKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNMREhDaGFyKGludCBjaCl7CisgICAgICAgIC8vIGhpZ2ggcnVubmVyIGNhc2UKKyAgICAgICAgaWYoY2g+MHgwMDdBKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvL1tcXHUwMDJEIFxcdTAwMzAtXFx1MDAzOSBcXHUwMDQxLVxcdTAwNUEgXFx1MDA2MS1cXHUwMDdBXQorICAgICAgICBpZiggKGNoPT0weDAwMkQpIHx8IAorICAgICAgICAgICAgKDB4MDAzMCA8PSBjaCAmJiBjaCA8PSAweDAwMzkpIHx8CisgICAgICAgICAgICAoMHgwMDQxIDw9IGNoICYmIGNoIDw9IDB4MDA1QSkgfHwKKyAgICAgICAgICAgICgweDAwNjEgPD0gY2ggJiYgY2ggPD0gMHgwMDdBKQorICAgICAgICAgICl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFzY2VydGFpbiBpZiB0aGUgZ2l2ZW4gY29kZSBwb2ludCBpcyBhIGxhYmVsIHNlcGFyYXRvciBhcyAKKyAgICAgKiBkZWZpbmVkIGJ5IHRoZSBJRE5BIFJGQworICAgICAqIAorICAgICAqIEBwYXJhbSBjaCBUaGUgY29kZSBwb2ludCB0byBiZSBhc2NlcnRhaW5lZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhciBpcyBhIGxhYmVsIHNlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNMYWJlbFNlcGFyYXRvcihpbnQgY2gpeworICAgICAgICBzd2l0Y2goY2gpeworICAgICAgICAgICAgY2FzZSAweDAwMmU6CisgICAgICAgICAgICBjYXNlIDB4MzAwMjoKKyAgICAgICAgICAgIGNhc2UgMHhGRjBFOgorICAgICAgICAgICAgY2FzZSAweEZGNjE6CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogQVNDSUkgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFN0cmluZyBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICByZXR1cm4gY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBBU0NJSSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFN0cmluZ0J1ZmZlciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIEFTQ0lJIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgVUNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgYm9vbGVhbltdIGNhc2VGbGFncyA9IG51bGw7CisgICAgCisgICAgICAgIC8vIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIGFzY2lpIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0FTQ0lJICA9IHRydWU7CisgICAgICAgIC8vIGFzc3VtZSB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBMREggY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzTERIID0gdHJ1ZTsgCisKKyAgICAgICAgLy9nZXQgdGhlIG9wdGlvbnMKKyAgICAgICAgYm9vbGVhbiB1c2VTVEQzQVNDSUlSdWxlcyA9ICgob3B0aW9ucyAmIFVTRV9TVEQzX1JVTEVTKSAhPSAwKTsKKyAgICAgICAgaW50IGNoOworICAgICAgICAvLyBzdGVwIDEKKyAgICAgICAgd2hpbGUoKGNoID0gc3JjLm5leHQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaD4gMHg3Zil7CisgICAgICAgICAgICAgICAgc3JjSXNBU0NJSSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBmYWlsUG9zID0gLTE7CisgICAgICAgIHNyYy5zZXRUb1N0YXJ0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0ID0gbnVsbDsKKyAgICAgICAgLy8gc3RlcCAyIGlzIHBlcmZvcm1lZCBvbmx5IGlmIHRoZSBzb3VyY2UgY29udGFpbnMgbm9uIEFTQ0lJCisgICAgICAgIGlmKCFzcmNJc0FTQ0lJKXsKKyAgICAgICAgICAgIC8vIHN0ZXAgMgorICAgICAgICAgICAgcHJvY2Vzc091dCA9IHNpbmdsZXRvbi5uYW1lUHJlcC5wcmVwYXJlKHNyYywgb3B0aW9ucyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgcHJvY2Vzc091dCA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHBvTGVuID0gcHJvY2Vzc091dC5sZW5ndGgoKTsKKyAgICAgICAgCisgICAgICAgIGlmKHBvTGVuPT0wKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkZvdW5kIHplcm8gbGVuZ3RoIGxhYmxlIGFmdGVyIE5hbWVQcmVwLiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIHJlc2V0IHRoZSB2YXJpYWJsZSB0byB2ZXJpZnkgaWYgb3V0cHV0IG9mIHByZXBhcmUgaXMgQVNDSUkgb3Igbm90CisgICAgICAgIHNyY0lzQVNDSUkgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgLy8gc3RlcCAzICYgNAorICAgICAgICBmb3IoaW50IGo9MDtqPHBvTGVuO2orKyApeworICAgICAgICAgICAgY2g9cHJvY2Vzc091dC5jaGFyQXQoaik7CisgICAgICAgICAgICBpZihjaCA+IDB4N0YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKGlzTERIQ2hhcihjaCk9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAvLyBoZXJlIHdlIGRvIG5vdCBhc3NlbWJsZSBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyB0aGF0IExESCBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIC8vIGFyZSBpbiB0aGUgQVNDSUkgcmFuZ2Ugb25seQorICAgICAgICAgICAgICAgIHNyY0lzTERIID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZmFpbFBvcyA9IGo7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYodXNlU1REM0FTQ0lJUnVsZXMgPT0gdHJ1ZSl7CisgICAgICAgICAgICAvLyB2ZXJpZnkgM2EgYW5kIDNiCisgICAgICAgICAgICBpZiggc3JjSXNMREggPT0gZmFsc2UgLyogc291cmNlIGNvbnRhaW5zIHNvbWUgbm9uLUxESCBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gIEhZUEhFTiAKKyAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdChwcm9jZXNzT3V0Lmxlbmd0aCgpLTEpID09IEhZUEhFTil7CisKKyAgICAgICAgICAgICAgICAvKiBwb3B1bGF0ZSB0aGUgcGFyc2VFcnJvciBzdHJ1Y3QgKi8KKyAgICAgICAgICAgICAgICBpZihzcmNJc0xESD09ZmFsc2UpeworICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiggIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWxQb3M+MCkgPyAoZmFpbFBvcy0xKSA6IGZhaWxQb3MpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKHByb2Nlc3NPdXQuY2hhckF0KDApID09IEhZUEhFTil7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb0xlbj4wKSA/IHBvTGVuLTEgOiBwb0xlbik7CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoc3JjSXNBU0NJSSl7CisgICAgICAgICAgICBkZXN0ID0gIHByb2Nlc3NPdXQ7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLy8gc3RlcCA1IDogdmVyaWZ5IHRoZSBzZXF1ZW5jZSBkb2VzIG5vdCBiZWdpbiB3aXRoIEFDRSBwcmVmaXgKKyAgICAgICAgICAgIGlmKCFzdGFydHNXaXRoUHJlZml4KHByb2Nlc3NPdXQpKXsKKworICAgICAgICAgICAgICAgIC8vc3RlcCA2OiBlbmNvZGUgdGhlIHNlcXVlbmNlIHdpdGggcHVueWNvZGUKKyAgICAgICAgICAgICAgICBjYXNlRmxhZ3MgPSBuZXcgYm9vbGVhbltwb0xlbl07CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcHVueW91dCA9IFB1bnljb2RlLmVuY29kZShwcm9jZXNzT3V0LGNhc2VGbGFncyk7CisKKyAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IGFsbCBjb2RlcG9pbnRzIHRvIGxvd2VyIGNhc2UgQVNDSUkKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbG93ZXJPdXQgPSB0b0FTQ0lJTG93ZXIocHVueW91dCk7CisKKyAgICAgICAgICAgICAgICAvL1N0ZXAgNzogcHJlcGVuZCB0aGUgQUNFIHByZWZpeAorICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kKEFDRV9QUkVGSVgsMCxBQ0VfUFJFRklYX0xFTkdUSCk7CisgICAgICAgICAgICAgICAgLy9TdGVwIDY6IGNvcHkgdGhlIGNvbnRlbnRzIGluIGIyIGludG8gZGVzdAorICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kKGxvd2VyT3V0KTsKKyAgICAgICAgICAgIH1lbHNleworCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIEFDRSBQcmVmaXguIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkFDRV9QUkVGSVhfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGRlc3QubGVuZ3RoKCkgPiBNQVhfTEFCRUxfTEVOR1RIKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBsYWJlbHMgaW4gdGhlIGlucHV0IGFyZSB0b28gbG9uZy4gTGVuZ3RoID4gNjQuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkxBQkVMX1RPT19MT05HX0VSUk9SLGRlc3QudG9TdHJpbmcoKSwwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiBjb21wbGV0ZSBkb21haW4gbmFtZXMsIGUuZzogInd3dy5leGFtcGxlLmNvbSIuIAorICAgICAqIEl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhpcyBvcGVyYXRpb24gY2FuIGZhaWwuIElmIGl0IGZhaWxzLCB0aGVuIHRoZSBpbnB1dCAKKyAgICAgKiBkb21haW4gbmFtZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBJbnRlcm5hdGlvbmFsaXplZCBEb21haW4gTmFtZSBhbmQgdGhlIGFwcGxpY2F0aW9uCisgICAgICogc2hvdWxkIGhhdmUgbWV0aG9kcyBkZWZpbmVkIHRvIGRlYWwgd2l0aCB0aGUgZmFpbHVyZS4KKyAgICAgKiAKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub0FTQ0lJKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRJRE5Ub0FTQ0lJKHNyYy5nZXRUZXh0KCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBJRE5Ub0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICogSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIG9wZXJhdGlvbiBjYW4gZmFpbC4gSWYgaXQgZmFpbHMsIHRoZW4gdGhlIGlucHV0IAorICAgICAqIGRvbWFpbiBuYW1lIGNhbm5vdCBiZSB1c2VkIGFzIGFuIEludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lIGFuZCB0aGUgYXBwbGljYXRpb24KKyAgICAgKiBzaG91bGQgaGF2ZSBtZXRob2RzIGRlZmluZWQgdG8gZGVhbCB3aXRoIHRoZSBmYWlsdXJlLgorICAgICAqIAorICAgICAqIDxiPk5vdGU6PC9iPiBJRE5BIFJGQyBzcGVjaWZpZXMgdGhhdCBhIGNvbmZvcm1hbnQgYXBwbGljYXRpb24gc2hvdWxkIGRpdmlkZSBhIGRvbWFpbiBuYW1lCisgICAgICogaW50byBzZXBhcmF0ZSBsYWJlbHMsIGRlY2lkZSB3aGV0aGVyIHRvIGFwcGx5IGFsbG93VW5hc3NpZ25lZCBhbmQgdXNlU1REM0FTQ0lJUnVsZXMgb24gZWFjaCwgCisgICAgICogYW5kIHRoZW4gY29udmVydC4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciB0aGF0IGxldmVsIG9mIGdyYW51bGFyaXR5LiBUaGUgb3B0aW9ucyBvbmNlICAKKyAgICAgKiBzZXQgd2lsbCBhcHBseSB0byBhbGwgbGFiZWxzIGluIHRoZSBkb21haW4gbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIGEgU3RyaW5nQnVmZmVyIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9BU0NJSShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoc3JjLnRvU3RyaW5nKCksIG9wdGlvbnMpOyAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBJRE5Ub0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICogSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIG9wZXJhdGlvbiBjYW4gZmFpbC4gSWYgaXQgZmFpbHMsIHRoZW4gdGhlIGlucHV0IAorICAgICAqIGRvbWFpbiBuYW1lIGNhbm5vdCBiZSB1c2VkIGFzIGFuIEludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lIGFuZCB0aGUgYXBwbGljYXRpb24KKyAgICAgKiBzaG91bGQgaGF2ZSBtZXRob2RzIGRlZmluZWQgdG8gZGVhbCB3aXRoIHRoZSBmYWlsdXJlLgorICAgICAqIAorICAgICAqIDxiPk5vdGU6PC9iPiBJRE5BIFJGQyBzcGVjaWZpZXMgdGhhdCBhIGNvbmZvcm1hbnQgYXBwbGljYXRpb24gc2hvdWxkIGRpdmlkZSBhIGRvbWFpbiBuYW1lCisgICAgICogaW50byBzZXBhcmF0ZSBsYWJlbHMsIGRlY2lkZSB3aGV0aGVyIHRvIGFwcGx5IGFsbG93VW5hc3NpZ25lZCBhbmQgdXNlU1REM0FTQ0lJUnVsZXMgb24gZWFjaCwgCisgICAgICogYW5kIHRoZW4gY29udmVydC4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciB0aGF0IGxldmVsIG9mIGdyYW51bGFyaXR5LiBUaGUgb3B0aW9ucyBvbmNlICAKKyAgICAgKiBzZXQgd2lsbCBhcHBseSB0byBhbGwgbGFiZWxzIGluIHRoZSBkb21haW4gbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9BU0NJSShTdHJpbmcgc3JjLGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKworICAgICAgICBjaGFyW10gc3JjQXJyID0gc3JjLnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZXBJbmRleD0wOworICAgICAgICBpbnQgb2xkU2VwSW5kZXg9MDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgLy9tYWtlIHN1cmUgdGhpcyBpcyBub3QgYSByb290IGxhYmVsIHNlcGFyYXRvci4KKyAgICAgICAgICAgIGlmKCEobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXg9PXNyY0Fyci5sZW5ndGgpKXsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaW5jcmVtZW50IHRoZSBzZXBJbmRleCB0byBza2lwIHBhc3QgdGhlIHNlcGFyYXRvcgorICAgICAgICAgICAgc2VwSW5kZXgrKzsKKyAgICAgICAgICAgIG9sZFNlcEluZGV4ID0gc2VwSW5kZXg7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKUZVTExfU1RPUCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvVW5pY29kZSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogVW5pY29kZSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGZvciBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBVbmljb2RlIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZm9yIGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBTdHJpbmdCdWZmZXIgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9Vbmljb2RlKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBVbmljb2RlIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZm9yIGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBib29sZWFuW10gY2FzZUZsYWdzID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIC8vIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIGFzY2lpIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0FTQ0lJICA9IHRydWU7CisgICAgICAgIC8vIGFzc3VtZSB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBMREggY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzTERIID0gdHJ1ZTsgCisgICAgICAgIAorICAgICAgICAvL2dldCB0aGUgb3B0aW9ucworICAgICAgICBib29sZWFuIHVzZVNURDNBU0NJSVJ1bGVzID0gKChvcHRpb25zICYgVVNFX1NURDNfUlVMRVMpICE9IDApOworICAgICAgICAKKyAgICAgICAgaW50IGZhaWxQb3MgPSAtMTsKKyAgICAgICAgaW50IGNoOworICAgICAgICBpbnQgc2F2ZUluZGV4ID0gc3JjLmdldEluZGV4KCk7CisgICAgICAgIC8vIHN0ZXAgMTogZmluZCBvdXQgaWYgYWxsIHRoZSBjb2RlcG9pbnRzIGluIHNyYyBhcmUgQVNDSUkgIAorICAgICAgICB3aGlsZSgoY2g9c3JjLm5leHQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaD4weDdGKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZigoc3JjSXNMREggPSBpc0xESENoYXIoY2gpKT09ZmFsc2UpeworICAgICAgICAgICAgICAgIGZhaWxQb3MgPSBzcmMuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgcHJvY2Vzc091dDsKKyAgICAgICAgCisgICAgICAgIGlmKHNyY0lzQVNDSUkgPT0gZmFsc2UpeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBzdGVwIDI6IHByb2Nlc3MgdGhlIHN0cmluZworICAgICAgICAgICAgICAgIHNyYy5zZXRJbmRleChzYXZlSW5kZXgpOworICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBzaW5nbGV0b24ubmFtZVByZXAucHJlcGFyZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICB9IGNhdGNoIChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcihzcmMuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vanVzdCBwb2ludCB0byBzb3VyY2UKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBuZXcgU3RyaW5nQnVmZmVyKHNyYy5nZXRUZXh0KCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE86CisgICAgICAgIC8vIFRoZSBSRkMgc3RhdGVzIHRoYXQgCisgICAgICAgIC8vIDxxdW90ZT4KKyAgICAgICAgLy8gVG9Vbmljb2RlIG5ldmVyIGZhaWxzLiBJZiBhbnkgc3RlcCBmYWlscywgdGhlbiB0aGUgb3JpZ2luYWwgaW5wdXQKKyAgICAgICAgLy8gaXMgcmV0dXJuZWQgaW1tZWRpYXRlbHkgaW4gdGhhdCBzdGVwLgorICAgICAgICAvLyA8L3F1b3RlPgorICAgICAgICAKKyAgICAgICAgLy9zdGVwIDM6IHZlcmlmeSBBQ0UgUHJlZml4CisgICAgICAgIGlmKHN0YXJ0c1dpdGhQcmVmaXgocHJvY2Vzc091dCkpeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGRlY29kZU91dCA9IG51bGw7CisKKyAgICAgICAgICAgIC8vc3RlcCA0OiBSZW1vdmUgdGhlIEFDRSBQcmVmaXgKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gcHJvY2Vzc091dC5zdWJzdHJpbmcoQUNFX1BSRUZJWF9MRU5HVEgscHJvY2Vzc091dC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIC8vc3RlcCA1OiBEZWNvZGUgdXNpbmcgcHVueWNvZGUKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGVjb2RlT3V0ID0gUHVueWNvZGUuZGVjb2RlKG5ldyBTdHJpbmdCdWZmZXIodGVtcCksY2FzZUZsYWdzKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZGVjb2RlT3V0ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvL3N0ZXAgNjpBcHBseSB0b0FTQ0lJCisgICAgICAgICAgICBpZiAoZGVjb2RlT3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BU0NJSU91dCA9IGNvbnZlcnRUb0FTQ0lJKGRlY29kZU91dCwgb3B0aW9ucyk7CisgICAgCisgICAgICAgICAgICAgICAgLy9zdGVwIDc6IHZlcmlmeQorICAgICAgICAgICAgICAgIGlmKGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShwcm9jZXNzT3V0LCB0b0FTQ0lJT3V0KSAhPTApeworLy8gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSB2ZXJpZmljYXRpb24gc3RlcCBwcmVzY3JpYmVkIGJ5IHRoZSBSRkMgMzQ5MSBmYWlsZWQiLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVkVSSUZJQ0FUSU9OX0VSUk9SKTsgCisgICAgICAgICAgICAgICAgICAgIGRlY29kZU91dCA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvL3N0ZXAgODogcmV0dXJuIG91dHB1dCBvZiBzdGVwIDUKKyAgICAgICAgICAgICBpZiAoZGVjb2RlT3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZU91dDsKKyAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorLy8gICAgICAgIH1lbHNleworLy8gICAgICAgICAgICAvLyB2ZXJpZnkgdGhhdCBTVEQzIEFTQ0lJIHJ1bGVzIGFyZSBzYXRpc2ZpZWQKKy8vICAgICAgICAgICAgaWYodXNlU1REM0FTQ0lJUnVsZXMgPT0gdHJ1ZSl7CisvLyAgICAgICAgICAgICAgICBpZiggc3JjSXNMREggPT0gZmFsc2UgLyogc291cmNlIGNvbnRhaW5zIHNvbWUgbm9uLUxESCBjaGFyYWN0ZXJzICovCisvLyAgICAgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gIEhZUEhFTiAKKy8vICAgICAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdChwcm9jZXNzT3V0Lmxlbmd0aCgpLTEpID09IEhZUEhFTil7CisvLyAgICAKKy8vICAgICAgICAgICAgICAgICAgICBpZihzcmNJc0xESD09ZmFsc2UpeworLy8gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgU1REIDMgQVNDSUkgcnVsZXMiLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWxQb3M+MCkgPyAoZmFpbFBvcy0xKSA6IGZhaWxQb3MpOworLy8gICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHByb2Nlc3NPdXQuY2hhckF0KDApID09IEhZUEhFTil7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwwKTsKKy8vICAgICAgICAgCisvLyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQudG9TdHJpbmcoKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQubGVuZ3RoKCkpOworLy8gICAgCisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIC8vIGp1c3QgcmV0dXJuIHRoZSBzb3VyY2UKKy8vICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoc3JjLmdldFRleHQoKSk7CisvLyAgICAgICAgfSAgCisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcihzcmMuZ2V0VGV4dCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBJRE5Ub1VuaWNvZGUgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gY29tcGxldGUgZG9tYWluIG5hbWVzLCBlLmc6ICJ3d3cuZXhhbXBsZS5jb20iLiAKKyAgICAgKgorICAgICAqIDxiPk5vdGU6PC9iPiBJRE5BIFJGQyBzcGVjaWZpZXMgdGhhdCBhIGNvbmZvcm1hbnQgYXBwbGljYXRpb24gc2hvdWxkIGRpdmlkZSBhIGRvbWFpbiBuYW1lCisgICAgICogaW50byBzZXBhcmF0ZSBsYWJlbHMsIGRlY2lkZSB3aGV0aGVyIHRvIGFwcGx5IGFsbG93VW5hc3NpZ25lZCBhbmQgdXNlU1REM0FTQ0lJUnVsZXMgb24gZWFjaCwgCisgICAgICogYW5kIHRoZW4gY29udmVydC4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciB0aGF0IGxldmVsIG9mIGdyYW51bGFyaXR5LiBUaGUgb3B0aW9ucyBvbmNlICAKKyAgICAgKiBzZXQgd2lsbCBhcHBseSB0byBhbGwgbGFiZWxzIGluIHRoZSBkb21haW4gbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRJRE5Ub1VuaWNvZGUoc3JjLmdldFRleHQoKSwgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICoKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBTdHJpbmdCdWZmZXIgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKHNyYy50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBJRE5Ub1VuaWNvZGUgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gY29tcGxldGUgZG9tYWluIG5hbWVzLCBlLmc6ICJ3d3cuZXhhbXBsZS5jb20iLiAKKyAgICAgKgorICAgICAqIDxiPk5vdGU6PC9iPiBJRE5BIFJGQyBzcGVjaWZpZXMgdGhhdCBhIGNvbmZvcm1hbnQgYXBwbGljYXRpb24gc2hvdWxkIGRpdmlkZSBhIGRvbWFpbiBuYW1lCisgICAgICogaW50byBzZXBhcmF0ZSBsYWJlbHMsIGRlY2lkZSB3aGV0aGVyIHRvIGFwcGx5IGFsbG93VW5hc3NpZ25lZCBhbmQgdXNlU1REM0FTQ0lJUnVsZXMgb24gZWFjaCwgCisgICAgICogYW5kIHRoZW4gY29udmVydC4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciB0aGF0IGxldmVsIG9mIGdyYW51bGFyaXR5LiBUaGUgb3B0aW9ucyBvbmNlICAKKyAgICAgKiBzZXQgd2lsbCBhcHBseSB0byBhbGwgbGFiZWxzIGluIHRoZSBkb21haW4gbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBzcmNBcnIgPSBzcmMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlcEluZGV4PTA7CisgICAgICAgIGludCBvbGRTZXBJbmRleD0wOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgc2VwSW5kZXggPSBnZXRTZXBhcmF0b3JJbmRleChzcmNBcnIsc2VwSW5kZXgsc3JjQXJyLmxlbmd0aCk7CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBuZXcgU3RyaW5nKHNyY0FycixvbGRTZXBJbmRleCxzZXBJbmRleC1vbGRTZXBJbmRleCk7CisgICAgICAgICAgICBpZihsYWJlbC5sZW5ndGgoKT09MCAmJiBzZXBJbmRleCE9c3JjQXJyLmxlbmd0aCApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkZvdW5kIHplcm8gbGVuZ3RoIGxhYmxlIGFmdGVyIE5hbWVQcmVwLiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxhYmVsKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydFRvVW5pY29kZShpdGVyLG9wdGlvbnMpKTsKKyAgICAgICAgICAgIGlmKHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgc2VwSW5kZXggdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IKKyAgICAgICAgICAgIHNlcEluZGV4Kys7CisgICAgICAgICAgICBvbGRTZXBJbmRleCA9c2VwSW5kZXg7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKUZVTExfU1RPUCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gSUROIHN0cmluZ3MgZm9yIGVxdWl2YWxlbmNlLgorICAgICAqIFRoaXMgZnVuY3Rpb24gc3BsaXRzIHRoZSBkb21haW4gbmFtZXMgaW50byBsYWJlbHMgYW5kIGNvbXBhcmVzIHRoZW0uCisgICAgICogQWNjb3JkaW5nIHRvIElETiBSRkMsIHdoZW5ldmVyIHR3byBsYWJlbHMgYXJlIGNvbXBhcmVkLCB0aGV5IGFyZSAKKyAgICAgKiBjb25zaWRlcmVkIGVxdWFsIGlmIGFuZCBvbmx5IGlmIHRoZWlyIEFTQ0lJIGZvcm1zIChvYnRhaW5lZCBieSAKKyAgICAgKiBhcHBseWluZyB0b0FTQ0lJKSBtYXRjaCB1c2luZyBhbiBjYXNlLWluc2Vuc2l0aXZlIEFTQ0lJIGNvbXBhcmlzb24uCisgICAgICogVHdvIGRvbWFpbiBuYW1lcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGFuZCBvbmx5IGlmIGFsbCBsYWJlbHMgCisgICAgICogbWF0Y2ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGxhYmVsIHNlcGFyYXRvcnMgbWF0Y2guCisgICAgICogCisgICAgICogQHBhcmFtIHMxICAgICAgICBGaXJzdCBJRE4gc3RyaW5nIGFzIFN0cmluZ0J1ZmZlcgorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIElETiBzdHJpbmcgYXMgU3RyaW5nQnVmZmVyCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIDAgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLCA+IDAgaWYgczEgPiBzMiBhbmQgPCAwIGlmIHMxIDwgczIKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gIFRPRE86IG9wdGltaXplCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShTdHJpbmdCdWZmZXIgczEsIFN0cmluZ0J1ZmZlciBzMiwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGlmKHMxPT1udWxsIHx8IHMyID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT25lIG9mIHRoZSBzb3VyY2UgYnVmZmVycyBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHMxT3V0ID0gY29udmVydElETlRvQVNDSUkoczEudG9TdHJpbmcoKSxvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIudG9TdHJpbmcoKSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlQVNDSUkoczFPdXQsczJPdXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBJRE4gc3RyaW5ncyBmb3IgZXF1aXZhbGVuY2UuCisgICAgICogVGhpcyBmdW5jdGlvbiBzcGxpdHMgdGhlIGRvbWFpbiBuYW1lcyBpbnRvIGxhYmVscyBhbmQgY29tcGFyZXMgdGhlbS4KKyAgICAgKiBBY2NvcmRpbmcgdG8gSUROIFJGQywgd2hlbmV2ZXIgdHdvIGxhYmVscyBhcmUgY29tcGFyZWQsIHRoZXkgYXJlIAorICAgICAqIGNvbnNpZGVyZWQgZXF1YWwgaWYgYW5kIG9ubHkgaWYgdGhlaXIgQVNDSUkgZm9ybXMgKG9idGFpbmVkIGJ5IAorICAgICAqIGFwcGx5aW5nIHRvQVNDSUkpIG1hdGNoIHVzaW5nIGFuIGNhc2UtaW5zZW5zaXRpdmUgQVNDSUkgY29tcGFyaXNvbi4KKyAgICAgKiBUd28gZG9tYWluIG5hbWVzIGFyZSBjb25zaWRlcmVkIGEgbWF0Y2ggaWYgYW5kIG9ubHkgaWYgYWxsIGxhYmVscyAKKyAgICAgKiBtYXRjaCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgbGFiZWwgc2VwYXJhdG9ycyBtYXRjaC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gczEgICAgICAgIEZpcnN0IElETiBzdHJpbmcgCisgICAgICogQHBhcmFtIHMyICAgICAgICBTZWNvbmQgSUROIHN0cmluZworICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiAwIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbCwgPiAwIGlmIHMxID4gczIgYW5kIDwgMCBpZiBzMSA8IHMyCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihzMT09bnVsbCB8fCBzMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMxLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIsIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHMxT3V0LHMyT3V0KTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gSUROIHN0cmluZ3MgZm9yIGVxdWl2YWxlbmNlLgorICAgICAqIFRoaXMgZnVuY3Rpb24gc3BsaXRzIHRoZSBkb21haW4gbmFtZXMgaW50byBsYWJlbHMgYW5kIGNvbXBhcmVzIHRoZW0uCisgICAgICogQWNjb3JkaW5nIHRvIElETiBSRkMsIHdoZW5ldmVyIHR3byBsYWJlbHMgYXJlIGNvbXBhcmVkLCB0aGV5IGFyZSAKKyAgICAgKiBjb25zaWRlcmVkIGVxdWFsIGlmIGFuZCBvbmx5IGlmIHRoZWlyIEFTQ0lJIGZvcm1zIChvYnRhaW5lZCBieSAKKyAgICAgKiBhcHBseWluZyB0b0FTQ0lJKSBtYXRjaCB1c2luZyBhbiBjYXNlLWluc2Vuc2l0aXZlIEFTQ0lJIGNvbXBhcmlzb24uCisgICAgICogVHdvIGRvbWFpbiBuYW1lcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGFuZCBvbmx5IGlmIGFsbCBsYWJlbHMgCisgICAgICogbWF0Y2ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGxhYmVsIHNlcGFyYXRvcnMgbWF0Y2guCisgICAgICogCisgICAgICogQHBhcmFtIHMxICAgICAgICBGaXJzdCBJRE4gc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIElETiBzdHJpbmcgYXMgVUNoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwsID4gMCBpZiBpMSA+IGkyIGFuZCA8IDAgaWYgaTEgPCBpMgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFVDaGFyYWN0ZXJJdGVyYXRvciBzMSwgVUNoYXJhY3Rlckl0ZXJhdG9yIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMS5nZXRUZXh0KCksIG9wdGlvbnMpOworICAgICAgICBTdHJpbmdCdWZmZXIgczJPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMi5nZXRUZXh0KCksIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHMxT3V0LHMyT3V0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Mb3dlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzEzYTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIHRvTG93ZXIoKQorICogY2FzZSBtYXBwaW5nLgorICovCitjbGFzcyBMb3dlcmNhc2VUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yeworCisgICAgLyoqCisgICAgICogUGFja2FnZSBhY2Nlc3NpYmxlIElELgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgX0lEID0gIkFueS1Mb3dlciI7CisgICAgCisgICAgLy8gVE9ETzogQWRkIHZhcmlhbnRzIGZvciB0ciwgYXosIGx0LCBkZWZhdWx0ID0gZGVmYXVsdCBsb2NhbGUKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb3dlcmNhc2VUcmFuc2xpdGVyYXRvcihVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTG93ZXIiLCAiVXBwZXIiLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFVMb2NhbGUgbG9jYWxlOworCisgICAgcHJpdmF0ZSBVQ2FzZVByb3BzIGNzcDsKKyAgICBwcml2YXRlIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcmVzdWx0OworICAgIHByaXZhdGUgaW50W10gbG9jQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisKKyAgICBwdWJsaWMgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgbG9jYWxlID0gbG9jOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3NwPVVDYXNlUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNzcD1udWxsOworICAgICAgICB9CisgICAgICAgIGl0ZXI9bmV3IFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yKCk7CisgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBsb2NDYWNoZVswXT0wOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpZihjc3A9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9mZnNldHMuc3RhcnQgPj0gb2Zmc2V0cy5saW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IAorCisgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgaW50IGMsIGRlbHRhOworCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKworICAgICAgICBpdGVyLnNldEluZGV4KG9mZnNldHMuc3RhcnQpOworICAgICAgICBpdGVyLnNldExpbWl0KG9mZnNldHMubGltaXQpOworICAgICAgICBpdGVyLnNldENvbnRleHRMaW1pdHMob2Zmc2V0cy5jb250ZXh0U3RhcnQsIG9mZnNldHMuY29udGV4dExpbWl0KTsKKyAgICAgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICBjPWNzcC50b0Z1bGxMb3dlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICBpZihpdGVyLmRpZFJlYWNoTGltaXQoKSAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbiB0cmllZCB0byBsb29rIGJleW9uZCB0aGUgY29udGV4dCBsaW1pdAorICAgICAgICAgICAgICAgIC8vIHdhaXQgZm9yIG1vcmUgaW5wdXQKKyAgICAgICAgICAgICAgICBvZmZzZXRzLnN0YXJ0PWl0ZXIuZ2V0Q2FzZU1hcENQU3RhcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgICAgICAvKiBjIG1hcHBlZCB0byBpdHNlbGYsIG5vIGNoYW5nZSAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKiByZXBsYWNlIGJ5IHRoZSBtYXBwaW5nIHN0cmluZyAqLworICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgZGVsdGE9aXRlci5yZXBsYWNlKFVURjE2LnZhbHVlT2YoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihkZWx0YSE9MCkgeworICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVhc3VyZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVhc3VyZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzYjc1M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9NZWFzdXJlRm9ybWF0LmphdmEKQEAgLTAsMCArMSw1NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMjAsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogQSBmb3JtYXR0ZXIgZm9yIE1lYXN1cmUgb2JqZWN0cy4gIFRoaXMgaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KKyAqCisgKiA8cD5UbyBmb3JtYXQgb3IgcGFyc2UgYSBNZWFzdXJlIG9iamVjdCwgZmlyc3QgY3JlYXRlIGEgZm9ybWF0dGVyCisgKiBvYmplY3QgdXNpbmcgYSBNZWFzdXJlRm9ybWF0IGZhY3RvcnkgbWV0aG9kLiAgVGhlbiB1c2UgdGhhdAorICogb2JqZWN0J3MgZm9ybWF0IGFuZCBwYXJzZSBtZXRob2RzLgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5VRm9ybWF0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAzLjAKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lYXN1cmVGb3JtYXQgZXh0ZW5kcyBVRm9ybWF0IHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03MTgyMDIxNDAxNzAxNzc4MjQwTDsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBNZWFzdXJlRm9ybWF0KCkge307CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgZm9ybWF0dGVyIGZvciBDdXJyZW5jeUFtb3VudCBvYmplY3RzIGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIGRlc2lyZWQgbG9jYWxlCisgICAgICogQHJldHVybiBhIGZvcm1hdHRlciBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE1lYXN1cmVGb3JtYXQgZ2V0Q3VycmVuY3lGb3JtYXQoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDdXJyZW5jeUZvcm1hdChsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGZvcm1hdHRlciBmb3IgQ3VycmVuY3lBbW91bnQgb2JqZWN0cyBpbiB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZm9ybWF0dGVyIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTWVhc3VyZUZvcm1hdCBnZXRDdXJyZW5jeUZvcm1hdCgpIHsKKyAgICAgICAgcmV0dXJuIGdldEN1cnJlbmN5Rm9ybWF0KFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM4MjdhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDE3MTYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDYsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcHJvdmlkZXMgYSBtZWFucyB0byBwcm9kdWNlIGNvbmNhdGVuYXRlZAorICogbWVzc2FnZXMgaW4gbGFuZ3VhZ2UtbmV1dHJhbCB3YXkuIFVzZSB0aGlzIHRvIGNvbnN0cnVjdCBtZXNzYWdlcworICogZGlzcGxheWVkIGZvciBlbmQgdXNlcnMuCisgKgorICogPHA+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB0YWtlcyBhIHNldCBvZiBvYmplY3RzLCBmb3JtYXRzIHRoZW0sIHRoZW4KKyAqIGluc2VydHMgdGhlIGZvcm1hdHRlZCBzdHJpbmdzIGludG8gdGhlIHBhdHRlcm4gYXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGRpZmZlcnMgZnJvbSB0aGUgb3RoZXIgPGNvZGU+Rm9ybWF0PC9jb2RlPgorICogY2xhc3NlcyBpbiB0aGF0IHlvdSBjcmVhdGUgYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBvYmplY3Qgd2l0aCBvbmUKKyAqIG9mIGl0cyBjb25zdHJ1Y3RvcnMgKG5vdCB3aXRoIGEgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IHN0eWxlIGZhY3RvcnkKKyAqIG1ldGhvZCkuIFRoZSBmYWN0b3J5IG1ldGhvZHMgYXJlbid0IG5lY2Vzc2FyeSBiZWNhdXNlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgKiBpdHNlbGYgZG9lc24ndCBpbXBsZW1lbnQgbG9jYWxlIHNwZWNpZmljIGJlaGF2aW9yLiBBbnkgbG9jYWxlIHNwZWNpZmljCisgKiBiZWhhdmlvciBpcyBkZWZpbmVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgeW91IHByb3ZpZGUgYXMgd2VsbCBhcyB0aGUKKyAqIHN1YmZvcm1hdHMgdXNlZCBmb3IgaW5zZXJ0ZWQgYXJndW1lbnRzLgorICoKKyAqIDxoND48YSBuYW1lPSJwYXR0ZXJucyI+UGF0dGVybnMgYW5kIFRoZWlyIEludGVycHJldGF0aW9uPC9hPjwvaDQ+CisgKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdXNlcyBwYXR0ZXJucyBvZiB0aGUgZm9sbG93aW5nIGZvcm06CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPGk+TWVzc2FnZUZvcm1hdFBhdHRlcm46PC9pPgorICogICAgICAgICA8aT5TdHJpbmc8L2k+CisgKiAgICAgICAgIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuPC9pPiA8aT5Gb3JtYXRFbGVtZW50PC9pPiA8aT5TdHJpbmc8L2k+CisgKgorICogPGk+Rm9ybWF0RWxlbWVudDo8L2k+CisgKiAgICAgICAgIHsgPGk+QXJndW1lbnRJbmRleDwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gLCA8aT5Gb3JtYXRTdHlsZTwvaT4gfQorICoKKyAqIDxpPkZvcm1hdFR5cGU6IG9uZSBvZiA8L2k+CisgKiAgICAgICAgIG51bWJlciBkYXRlIHRpbWUgY2hvaWNlCisgKgorICogPGk+Rm9ybWF0U3R5bGU6PC9pPgorICogICAgICAgICBzaG9ydAorICogICAgICAgICBtZWRpdW0KKyAqICAgICAgICAgbG9uZworICogICAgICAgICBmdWxsCisgKiAgICAgICAgIGludGVnZXIKKyAqICAgICAgICAgY3VycmVuY3kKKyAqICAgICAgICAgcGVyY2VudAorICogICAgICAgICA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICoKKyAqIDxpPlN0cmluZzo8L2k+CisgKiAgICAgICAgIDxpPlN0cmluZ1BhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPiA8aT5TdHJpbmdQYXJ0PC9pPgorICoKKyAqIDxpPlN0cmluZ1BhcnQ6PC9pPgorICogICAgICAgICAnJworICogICAgICAgICAnIDxpPlF1b3RlZFN0cmluZzwvaT4gJworICogICAgICAgICA8aT5VbnF1b3RlZFN0cmluZzwvaT4KKyAqCisgKiA8aT5TdWJmb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4gPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8L2k+CisgKgorICogPGk+U3ViRm9ybWF0UGF0dGVyblBhcnQ6PC9pPgorICogICAgICAgICAnIDxpPlF1b3RlZFBhdHRlcm48L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPgorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3RyaW5nPC9pPiwgPGNvZGU+IicnIjwvY29kZT4gcmVwcmVzZW50cyBhIHNpbmdsZQorICogcXVvdGUuIEEgPGk+UXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXM7IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZSByZW1vdmVkLgorICogQW4gPGk+VW5xdW90ZWRTdHJpbmc8L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlcyBhbmQgbGVmdCBjdXJseSBicmFja2V0cy4gVGh1cywgYSBzdHJpbmcgdGhhdAorICogc2hvdWxkIHJlc3VsdCBpbiB0aGUgZm9ybWF0dGVkIG1lc3NhZ2UgIid7MH0nIiBjYW4gYmUgd3JpdHRlbiBhcworICogPGNvZGU+IicnJ3snMH0nJyI8L2NvZGU+IG9yIDxjb2RlPiInJyd7MH0nJyciPC9jb2RlPi4KKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4sIGRpZmZlcmVudCBydWxlcyBhcHBseS4KKyAqIEEgPGk+UXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyBidXQgdGhlIHN1cnJvdW5kaW5nIHNpbmdsZSBxdW90ZXMgYXJlCisgKiA8c3Ryb25nPm5vdDwvc3Ryb25nPiByZW1vdmVkLCBzbyB0aGV5IG1heSBiZSBpbnRlcnByZXRlZCBieSB0aGUKKyAqIHN1YmZvcm1hdC4gRm9yIGV4YW1wbGUsIDxjb2RlPiJ7MSxudW1iZXIsJCcjJywjI30iPC9jb2RlPiB3aWxsCisgKiBwcm9kdWNlIGEgbnVtYmVyIGZvcm1hdCB3aXRoIHRoZSBwb3VuZC1zaWduIHF1b3RlZCwgd2l0aCBhIHJlc3VsdAorICogc3VjaCBhczogIiQjMzEsNDUiLgorICogQW4gPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMsIGJ1dCBjdXJseSBicmFjZXMgd2l0aGluIGl0IG11c3QgYmUgYmFsYW5jZWQuCisgKiBGb3IgZXhhbXBsZSwgPGNvZGU+ImFiIHswfSBkZSI8L2NvZGU+IGFuZCA8Y29kZT4iYWIgJ30nIGRlIjwvY29kZT4KKyAqIGFyZSB2YWxpZCBzdWJmb3JtYXQgcGF0dGVybnMsIGJ1dCA8Y29kZT4iYWIgezAnfScgZGUiPC9jb2RlPiBhbmQKKyAqIDxjb2RlPiJhYiB9IGRlIjwvY29kZT4gYXJlIG5vdC4KKyAqIDxwPgorICogPGRsPjxkdD48Yj5XYXJuaW5nOjwvYj48ZGQ+VGhlIHJ1bGVzIGZvciB1c2luZyBxdW90ZXMgd2l0aGluIG1lc3NhZ2UKKyAqIGZvcm1hdCBwYXR0ZXJucyB1bmZvcnR1bmF0ZWx5IGhhdmUgc2hvd24gdG8gYmUgc29tZXdoYXQgY29uZnVzaW5nLgorICogSW4gcGFydGljdWxhciwgaXQgaXNuJ3QgYWx3YXlzIG9idmlvdXMgdG8gbG9jYWxpemVycyB3aGV0aGVyIHNpbmdsZQorICogcXVvdGVzIG5lZWQgdG8gYmUgZG91YmxlZCBvciBub3QuIE1ha2Ugc3VyZSB0byBpbmZvcm0gbG9jYWxpemVycyBhYm91dAorICogdGhlIHJ1bGVzLCBhbmQgdGVsbCB0aGVtIChmb3IgZXhhbXBsZSwgYnkgdXNpbmcgY29tbWVudHMgaW4gcmVzb3VyY2UKKyAqIGJ1bmRsZSBzb3VyY2UgZmlsZXMpIHdoaWNoIHN0cmluZ3Mgd2lsbCBiZSBwcm9jZXNzZWQgYnkgTWVzc2FnZUZvcm1hdC4KKyAqIE5vdGUgdGhhdCBsb2NhbGl6ZXJzIG1heSBuZWVkIHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRyYW5zbGF0ZWQKKyAqIHN0cmluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHZlcnNpb24gZG9lc24ndCBoYXZlIHRoZW0uCisgKiA8YnI+Tm90ZSBhbHNvIHRoYXQgdGhlIHNpbXBsZXN0IHdheSB0byBhdm9pZCB0aGUgcHJvYmxlbSBpcyB0bworICogdXNlIHRoZSByZWFsIGFwb3N0cm9waGUgKHNpbmdsZSBxdW90ZSkgY2hhcmFjdGVyIFx1MjAxOSAoJykgZm9yCisgKiBodW1hbi1yZWFkYWJsZSB0ZXh0LCBhbmQgdG8gdXNlIHRoZSBBU0NJSSBhcG9zdHJvcGhlIChcdTAwMjcgJyApCisgKiBvbmx5IGluIHByb2dyYW0gc3ludGF4LCBsaWtlIHF1b3RpbmcgaW4gTWVzc2FnZUZvcm1hdC4KKyAqIFNlZSB0aGUgYW5ub3RhdGlvbnMgZm9yIFUrMDAyNyBBcG9zdHJvcGhlIGluIFRoZSBVbmljb2RlIFN0YW5kYXJkLjwvcD4KKyAqIDwvZGw+CisgKiA8cD4KKyAqIFRoZSA8aT5Bcmd1bWVudEluZGV4PC9pPiB2YWx1ZSBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdyaXR0ZW4KKyAqIHVzaW5nIHRoZSBkaWdpdHMgJzAnIHRocm91Z2ggJzknLCBhbmQgcmVwcmVzZW50cyBhbiBpbmRleCBpbnRvIHRoZQorICogPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcworICogb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgKiA8cD4KKyAqIFRoZSA8aT5Gb3JtYXRUeXBlPC9pPiBhbmQgPGk+Rm9ybWF0U3R5bGU8L2k+IHZhbHVlcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIGEgPGNvZGU+Rm9ybWF0PC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50LiBUaGUgZm9sbG93aW5nCisgKiB0YWJsZSBzaG93cyBob3cgdGhlIHZhbHVlcyBtYXAgdG8gRm9ybWF0IGluc3RhbmNlcy4gQ29tYmluYXRpb25zIG5vdAorICogc2hvd24gaW4gdGhlIHRhYmxlIGFyZSBpbGxlZ2FsLiBBIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IG11c3QKKyAqIGJlIGEgdmFsaWQgcGF0dGVybiBzdHJpbmcgZm9yIHRoZSBGb3JtYXQgc3ViY2xhc3MgdXNlZC4KKyAqIDxwPgorICogPHRhYmxlIGJvcmRlcj0xPgorICogICAgPHRyPgorICogICAgICAgPHRoPkZvcm1hdCBUeXBlCisgKiAgICAgICA8dGg+Rm9ybWF0IFN0eWxlCisgKiAgICAgICA8dGg+U3ViZm9ybWF0IENyZWF0ZWQKKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZCBjb2xzcGFuPTI+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj01Pjxjb2RlPm51bWJlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48aT4obm9uZSk8L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5pbnRlZ2VyPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmN1cnJlbmN5PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5wZXJjZW50PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IERlY2ltYWxGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGdldExvY2FsZSgpKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPmRhdGU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPnRpbWU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+Y2hvaWNlPC9jb2RlPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IENob2ljZUZvcm1hdChzdWJmb3JtYXRQYXR0ZXJuKTwvY29kZT4KKyAqIDwvdGFibGU+CisgKiA8cD4KKyAqCisgKiA8aDQ+VXNhZ2UgSW5mb3JtYXRpb248L2g0PgorICoKKyAqIDxwPgorICogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB1c2FnZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIGFyZ3VtZW50cyA9IHsKKyAqICAgICBuZXcgSW50ZWdlcig3KSwKKyAqICAgICBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSksCisgKiAgICAgImEgZGlzdHVyYmFuY2UgaW4gdGhlIEZvcmNlIgorICogfTsKKyAqCisgKiBTdHJpbmcgcmVzdWx0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoCisgKiAgICAgIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAqICAgICBhcmd1bWVudHMpOworICoKKyAqIDxlbT5vdXRwdXQ8L2VtPjogQXQgMTI6MzAgUE0gb24gSnVsIDMsIDIwNTMsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlCisgKiAgICAgICAgICAgaW4gdGhlIEZvcmNlIG9uIHBsYW5ldCA3LgorICoKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVHlwaWNhbGx5LCB0aGUgbWVzc2FnZSBmb3JtYXQgd2lsbCBjb21lIGZyb20gcmVzb3VyY2VzLCBhbmQgdGhlCisgKiBhcmd1bWVudHMgd2lsbCBiZSBkeW5hbWljYWxseSBzZXQgYXQgcnVudGltZS4KKyAqCisgKiA8cD4KKyAqIEV4YW1wbGUgMjoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDMpLCAiTXlEaXNrIn07CisgKgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgKiAgICAgIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9IGZpbGUocykuIik7CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAwIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEgZmlsZShzKS4KKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMSwyNzMgZmlsZShzKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogRm9yIG1vcmUgc29waGlzdGljYXRlZCBwYXR0ZXJucywgeW91IGNhbiB1c2UgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IHRvIGdldAorICogb3V0cHV0IHN1Y2ggYXM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0uIik7CisgKiBkb3VibGVbXSBmaWxlbGltaXRzID0gezAsMSwyfTsKKyAqIFN0cmluZ1tdIGZpbGVwYXJ0ID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICogQ2hvaWNlRm9ybWF0IGZpbGVmb3JtID0gbmV3IENob2ljZUZvcm1hdChmaWxlbGltaXRzLCBmaWxlcGFydCk7CisgKiBmb3JtLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBmaWxlZm9ybSk7CisgKgorICogT2JqZWN0W10gdGVzdEFyZ3MgPSB7bmV3IExvbmcoMTIzNzMpLCAiTXlEaXNrIn07CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyBubyBmaWxlcy4KKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgb25lIGZpbGUuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGVzLgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGVpdGhlciBkbyB0aGlzIHByb2dyYW1tYXRpY2FsbHksIGFzIGluIHRoZSBhYm92ZSBleGFtcGxlLAorICogb3IgYnkgdXNpbmcgYSBwYXR0ZXJuIChzZWUKKyAqIHtAbGluayBDaG9pY2VGb3JtYXR9CisgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbikgYXMgaW46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBmb3JtLmFwcGx5UGF0dGVybigKKyAqICAgICJUaGVyZSB7MCxjaG9pY2UsMCNhcmUgbm8gZmlsZXN8MSNpcyBvbmUgZmlsZXwxJmx0O2FyZSB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9LiIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQXMgd2Ugc2VlIGFib3ZlLCB0aGUgc3RyaW5nIHByb2R1Y2VkCisgKiBieSBhIDxjb2RlPkNob2ljZUZvcm1hdDwvY29kZT4gaW4gPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gaXMgdHJlYXRlZCBzcGVjaWFsbHk7CisgKiBvY2N1cmFuY2VzIG9mICd7JyBhcmUgdXNlZCB0byBpbmRpY2F0ZWQgc3ViZm9ybWF0cywgYW5kIGNhdXNlIHJlY3Vyc2lvbi4KKyAqIElmIHlvdSBjcmVhdGUgYm90aCBhIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+CisgKiBwcm9ncmFtbWF0aWNhbGx5IChpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzdHJpbmcgcGF0dGVybnMpLCB0aGVuIGJlIGNhcmVmdWwgbm90IHRvCisgKiBwcm9kdWNlIGEgZm9ybWF0IHRoYXQgcmVjdXJzZXMgb24gaXRzZWxmLCB3aGljaCB3aWxsIGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisgKiA8cD4KKyAqIFdoZW4gYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFyc2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzdHJpbmcsIHRoZSBsYXN0IG1hdGNoCisgKiB3aWxsIGJlIHRoZSBmaW5hbCByZXN1bHQgb2YgdGhlIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLG51bWJlciwjLiMjfSwgezAsbnVtYmVyLCMuI30iKTsKKyAqIE9iamVjdFtdIG9ianMgPSB7bmV3IERvdWJsZSgzLjE0MTUpfTsKKyAqIFN0cmluZyByZXN1bHQgPSBtZi5mb3JtYXQoIG9ianMgKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzICIzLjE0LCAzLjEiCisgKiBvYmpzID0gbnVsbDsKKyAqIG9ianMgPSBtZi5wYXJzZShyZXN1bHQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIG9ianMgbm93IGVxdWFscyB7bmV3IERvdWJsZSgzLjEpfQorICogPC9wcmU+CisgKiA8cD4KKyAqIExpa2V3aXNlLCBwYXJzaW5nIHdpdGggYSBNZXNzYWdlRm9ybWF0IG9iamVjdCB1c2luZyBwYXR0ZXJucyBjb250YWluaW5nCisgKiBtdWx0aXBsZSBvY2N1cmFuY2VzIG9mIHRoZSBzYW1lIGFyZ3VtZW50IHdvdWxkIHJldHVybiB0aGUgbGFzdCBtYXRjaC4gIEZvcgorICogZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfSwgezB9LCB7MH0iKTsKKyAqIFN0cmluZyBmb3JQYXJzaW5nID0gIngsIHksIHoiOworICogT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvclBhcnNpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzIHtuZXcgU3RyaW5nKCJ6Iil9CisgKiA8L3ByZT4KKyAqCisgKiA8aDQ+PGEgbmFtZT0ic3luY2hyb25pemF0aW9uIj5TeW5jaHJvbml6YXRpb248L2E+PC9oND4KKyAqCisgKiA8cD4KKyAqIE1lc3NhZ2UgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4KKyAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4KKyAqIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQKKyAqIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIEZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQHNlZSAgICAgICAgICBDaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0IGV4dGVuZHMgVUZvcm1hdCB7CisKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDcxMzYyMTI1NDU4NDczNzg2NTFMOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgdGhlCisgICAgICogc3BlY2lmaWVkIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzLnVsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQKKyAgICAgKiBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTWVzc2FnZUZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgYW5kCisgICAgICogcGF0dGVybi4KKyAgICAgKiBUaGUgY29uc3RydWN0b3IgZmlyc3Qgc2V0cyB0aGUgbG9jYWxlLCB0aGVuIHBhcnNlcyB0aGUgcGF0dGVybiBhbmQKKyAgICAgKiBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBpdC4KKyAgICAgKiBQYXR0ZXJucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb24gYXJlIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiA8YSBocmVmPSIjcGF0dGVybnMiPmNsYXNzIGRlc2NyaXB0aW9uPC9hPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBNZXNzYWdlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLnVsb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc2V0TG9jYWxlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMuCisgICAgICogVGhpcyBhZmZlY3RzIHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHtAbGluayAjYXBwbHlQYXR0ZXJuIGFwcGx5UGF0dGVybn0KKyAgICAgKiBhbmQge0BsaW5rICN0b1BhdHRlcm4gdG9QYXR0ZXJufSBtZXRob2RzIGFzIHdlbGwgYXMgdG8gdGhlCisgICAgICogPGNvZGU+Zm9ybWF0PC9jb2RlPiBhbmQKKyAgICAgKiB7QGxpbmsgI2Zvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IgZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcn0gbWV0aG9kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLyogU2F2ZSB0aGUgcGF0dGVybiwgYW5kIHRoZW4gcmVhcHBseSBzbyB0aGF0ICovCisgICAgICAgIC8qIHdlIHBpY2sgdXAgYW55IGNoYW5nZXMgaW4gbG9jYWxlIHNwZWNpZmljICovCisgICAgICAgIC8qIGVsZW1lbnRzICovCisgICAgICAgIFN0cmluZyBleGlzdGluZ1BhdHRlcm4gPSB0b1BhdHRlcm4oKTsgICAgICAgICAgICAgICAgICAgICAgIC8qaWJtLjM1NTAqLworICAgICAgICB0aGlzLnVsb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGFwcGx5UGF0dGVybihleGlzdGluZ1BhdHRlcm4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qaWJtLjM1NTAqLworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvY2FsZSB0aGF0J3MgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZS50b0xvY2FsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvY2FsZSB0aGF0J3MgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBhdHRlcm4gdXNlZCBieSB0aGlzIG1lc3NhZ2UgZm9ybWF0LgorICAgICAqIFRoZSBtZXRob2QgcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZCBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzCisgICAgICogZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyW10gc2VnbWVudHMgPSBuZXcgU3RyaW5nQnVmZmVyWzRdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHNlZ21lbnRzW2ldID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHBhcnQgPSAwOworICAgICAgICAgICAgaW50IGZvcm1hdE51bWJlciA9IDA7CisgICAgICAgICAgICBib29sZWFuIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBicmFjZVN0YWNrID0gMDsKKyAgICAgICAgICAgIG1heE9mZnNldCA9IC0xOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxIDwgcGF0dGVybi5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHBhdHRlcm4uY2hhckF0KGkrMSkgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7ICAvLyBoYW5kbGUgZG91YmxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9ICFpblF1b3RlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICd7JyAmJiAhaW5RdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlICBpZiAoaW5RdW90ZSkgeyAgLy8ganVzdCBjb3B5IHF1b3RlcyBpbiBwYXJ0cworICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICcsJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0IDwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0ICs9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNbcGFydF0uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYnJhY2VTdGFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnJhY2VTdGFjayA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFrZUZvcm1hdChpLCBmb3JtYXROdW1iZXIsIHNlZ21lbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXROdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1icmFjZVN0YWNrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXCcnOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gsIHNvIHdlIGtlZXAgcXVvdGVzIGluIG90aGVyIHBhcnRzCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnJhY2VTdGFjayA9PSAwICYmIHBhcnQgIT0gMCkgeworICAgICAgICAgICAgICAgIG1heE9mZnNldCA9IC0xOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVubWF0Y2hlZCBicmFjZXMgaW4gdGhlIHBhdHRlcm4uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBzZWdtZW50c1swXS50b1N0cmluZygpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGZvcm1hdC4KKyAgICAgKiBUaGUgc3RyaW5nIGlzIGNvbnN0cnVjdGVkIGZyb20gaW50ZXJuYWwgaW5mb3JtYXRpb24gYW5kIHRoZXJlZm9yZQorICAgICAqIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGVxdWFsIHRoZSBwcmV2aW91c2x5IGFwcGxpZWQgcGF0dGVybi4gCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcGF0dGVybiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIC8vIGxhdGVyLCBtYWtlIHRoaXMgbW9yZSBleHRlbnNpYmxlCisgICAgICAgIGludCBsYXN0T2Zmc2V0ID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyArK2kpIHsKKyAgICAgICAgICAgIGNvcHlBbmRGaXhRdW90ZXMocGF0dGVybiwgbGFzdE9mZnNldCwgb2Zmc2V0c1tpXSxyZXN1bHQpOworICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldHNbaV07CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd7Jyk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGFyZ3VtZW50TnVtYmVyc1tpXSk7CisgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZywgc3RyaW5nIGZvcm1hdAorICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UodWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLGN1cnJlbmN5Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLHBlcmNlbnQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UodWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIsaW50ZWdlciIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIsIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChEZWNpbWFsRm9ybWF0KWZvcm1hdHNbaV0pLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0gaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLGRhdGUiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLHNob3J0Iik7CisvLyBUaGlzIGNvZGUgd2lsbCBuZXZlciBiZSBleGVjdXRlZCBbYWxhbl0KKy8vICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULHVsb2NhbGUpKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLG1lZGl1bSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSxsb25nIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLGZ1bGwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLHRpbWUiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLHNob3J0Iik7CisvLyBUaGlzIGNvZGUgd2lsbCBuZXZlciBiZSBleGVjdXRlZCBbYWxhbl0KKy8vICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULHVsb2NhbGUpKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLG1lZGl1bSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsdGltZSxsb25nIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLGZ1bGwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSwiICsgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdHNbaV0pLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0gaW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsY2hvaWNlLCIgKyAoKENob2ljZUZvcm1hdClmb3JtYXRzW2ldKS50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vcmVzdWx0LmFwcGVuZCgiLCB1bmtub3duIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CisgICAgICAgIH0KKyAgICAgICAgY29weUFuZEZpeFF1b3RlcyhwYXR0ZXJuLCBsYXN0T2Zmc2V0LCBwYXR0ZXJuLmxlbmd0aCgpLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAgKiBtZXRob2RzLiBUaGUgaW5kaWNlcyBvZiBlbGVtZW50cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPgorICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGFyZ3VtZW50IGluZGljZXMgdXNlZCBpbiB0aGUgcHJldmlvdXNseSBzZXQKKyAgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiB0aHVzIGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICAqIGJ5IHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIG5ldyBmb3JtYXQgaXMgdXNlZAorICAgICAqIGZvciBhbGwgc3VjaCBmb3JtYXQgZWxlbWVudHMuIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIG5vdCB1c2VkCisgICAgICogZm9yIGFueSBmb3JtYXQgZWxlbWVudCBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBuZXcgZm9ybWF0IGlzIGlnbm9yZWQuIElmIGZld2VyIGZvcm1hdHMgYXJlIHByb3ZpZGVkCisgICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZm9ybWF0cyBmb3IgYXJndW1lbnQgaW5kaWNlcyBsZXNzCisgICAgICogdGhhbiA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4gYXJlIHJlcGxhY2VkLgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgaW50IGogPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICBpZiAoaiA8IG5ld0Zvcm1hdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1tpXSA9IG5ld0Zvcm1hdHNbal07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBmb3JtYXRzIHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUKKyAgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiBjb3JyZXNwb25kcyB0bworICAgICAqIHRoZSBvcmRlciBvZiBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIDxwPgorICAgICAqIElmIG1vcmUgZm9ybWF0cyBhcmUgcHJvdmlkZWQgdGhhbiBuZWVkZWQgYnkgdGhlIHBhdHRlcm4gc3RyaW5nLAorICAgICAqIHRoZSByZW1haW5pbmcgb25lcyBhcmUgaWdub3JlZC4gSWYgZmV3ZXIgZm9ybWF0cyBhcmUgcHJvdmlkZWQKKyAgICAgKiB0aGFuIG5lZWRlZCwgdGhlbiBvbmx5IHRoZSBmaXJzdCA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4KKyAgICAgKiBmb3JtYXRzIGFyZSByZXBsYWNlZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICAqIHtAbGluayAjc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCBzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4fQorICAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvCisgICAgICogdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkIGJ5CisgICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHMoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgICBpbnQgcnVuc1RvQ29weSA9IG5ld0Zvcm1hdHMubGVuZ3RoOworICAgICAgICBpZiAocnVuc1RvQ29weSA+IG1heE9mZnNldCArIDEpIHsKKyAgICAgICAgICAgIHJ1bnNUb0NvcHkgPSBtYXhPZmZzZXQgKyAxOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVuc1RvQ29weTsgaSsrKSB7CisgICAgICAgICAgICBmb3JtYXRzW2ldID0gbmV3Rm9ybWF0c1tpXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgd2l0aGluIHRoZQorICAgICAqIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nIHRoYXQgdXNlIHRoZSBnaXZlbiBhcmd1bWVudAorICAgICAqIGluZGV4LgorICAgICAqIFRoZSBhcmd1bWVudCBpbmRleCBpcyBwYXJ0IG9mIHRoZSBmb3JtYXQgZWxlbWVudCBkZWZpbml0aW9uIGFuZAorICAgICAqIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAgKiB0byB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQKKyAgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogSWYgdGhlIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIG5ldyBmb3JtYXQgaXMgdXNlZCBmb3IgYWxsIHN1Y2gKKyAgICAgKiBmb3JtYXQgZWxlbWVudHMuIElmIHRoZSBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdAorICAgICAqIGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJndW1lbnRJbmRleCB0aGUgYXJndW1lbnQgaW5kZXggZm9yIHdoaWNoIHRvIHVzZSB0aGUgbmV3IGZvcm1hdAorICAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIG5ldyBmb3JtYXQgdG8gdXNlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KGludCBhcmd1bWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IG1heE9mZnNldDsgaisrKSB7CisgICAgICAgICAgICBpZiAoYXJndW1lbnROdW1iZXJzW2pdID09IGFyZ3VtZW50SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2pdID0gbmV3Rm9ybWF0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50IHdpdGggdGhlIGdpdmVuCisgICAgICogZm9ybWF0IGVsZW1lbnQgaW5kZXggd2l0aGluIHRoZSBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgZm9ybWF0IGVsZW1lbnQgaW5kZXggaXMgdGhlIHplcm8tYmFzZWQgbnVtYmVyIG9mIHRoZSBmb3JtYXQKKyAgICAgKiBlbGVtZW50IGNvdW50aW5nIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICAqIHtAbGluayAjc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4IHNldEZvcm1hdEJ5QXJndW1lbnRJbmRleH0KKyAgICAgKiBtZXRob2QsIHdoaWNoIGFjY2Vzc2VzIGZvcm1hdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgYXJndW1lbnQKKyAgICAgKiBpbmRleCB0aGV5IHNwZWNpZnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0RWxlbWVudEluZGV4IHRoZSBpbmRleCBvZiBhIGZvcm1hdCBlbGVtZW50IHdpdGhpbiB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBmb3JtYXRFbGVtZW50SW5kZXggaXMgZXF1YWwgdG8gb3IKKyAgICAgKiAgICAgICAgICAgIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0RWxlbWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgIGZvcm1hdHNbZm9ybWF0RWxlbWVudEluZGV4XSA9IG5ld0Zvcm1hdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAgKiBtZXRob2RzLiBUaGUgaW5kaWNlcyBvZiBlbGVtZW50cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkKKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudCBpbmRpY2VzIHVzZWQgaW4gdGhlIHByZXZpb3VzbHkgc2V0CisgICAgICogcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHJldHVybmVkIGFycmF5IHRodXMgY29ycmVzcG9uZHMgdG8KKyAgICAgKiB0aGUgb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkCisgICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIGZvcm1hdCB1c2VkIGZvciB0aGUgbGFzdCBzdWNoCisgICAgICogZm9ybWF0IGVsZW1lbnQgaXMgcmV0dXJuZWQgaW4gdGhlIGFycmF5LiBJZiBhbiBhcmd1bWVudCBpbmRleAorICAgICAqIGlzIG5vdCB1c2VkIGZvciBhbnkgZm9ybWF0IGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuCisgICAgICogbnVsbCBpcyByZXR1cm5lZCBpbiB0aGUgYXJyYXkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBhcmd1bWVudHMgd2l0aGluIHRoZSBwYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIGludCBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudE51bWJlcnNbaV0gPiBtYXhpbXVtQXJndW1lbnROdW1iZXIpIHsKKyAgICAgICAgICAgICAgICBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRm9ybWF0W10gcmVzdWx0QXJyYXkgPSBuZXcgRm9ybWF0W21heGltdW1Bcmd1bWVudE51bWJlciArIDFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgcmVzdWx0QXJyYXlbYXJndW1lbnROdW1iZXJzW2ldXSA9IGZvcm1hdHNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZvcm1hdHMgdXNlZCBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUKKyAgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgY29ycmVzcG9uZHMgdG8KKyAgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0J3MgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgICoge0BsaW5rICNnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4IGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXh9CisgICAgICogbWV0aG9kLCB3aGljaCBhc3N1bWVzIGFuIG9yZGVyIG9mIGZvcm1hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8KKyAgICAgKiB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQgYnkKKyAgICAgKiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRm9ybWF0W10gZ2V0Rm9ybWF0cygpIHsKKyAgICAgICAgRm9ybWF0W10gcmVzdWx0QXJyYXkgPSBuZXcgRm9ybWF0W21heE9mZnNldCArIDFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZvcm1hdHMsIDAsIHJlc3VsdEFycmF5LCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICAqIHBhdHRlcm4sIHdpdGggZm9ybWF0IGVsZW1lbnRzIHJlcGxhY2VkIGJ5IHRoZSBmb3JtYXR0ZWQgb2JqZWN0cywgdG8gdGhlCisgICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgdGV4dCBzdWJzdGl0dXRlZCBmb3IgdGhlIGluZGl2aWR1YWwgZm9ybWF0IGVsZW1lbnRzIGlzIGRlcml2ZWQgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IHN1YmZvcm1hdCBvZiB0aGUgZm9ybWF0IGVsZW1lbnQgYW5kIHRoZQorICAgICAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gZWxlbWVudCBhdCB0aGUgZm9ybWF0IGVsZW1lbnQncyBhcmd1bWVudCBpbmRleAorICAgICAqIGFzIGluZGljYXRlZCBieSB0aGUgZmlyc3QgbWF0Y2hpbmcgbGluZSBvZiB0aGUgZm9sbG93aW5nIHRhYmxlLiBBbgorICAgICAqIGFyZ3VtZW50IGlzIDxpPnVuYXZhaWxhYmxlPC9pPiBpZiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGlzCisgICAgICogPGNvZGU+bnVsbDwvY29kZT4gb3IgaGFzIGZld2VyIHRoYW4gYXJndW1lbnRJbmRleCsxIGVsZW1lbnRzLgorICAgICAqIDxwPgorICAgICAqIDx0YWJsZSBib3JkZXI9MT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRoPlN1YmZvcm1hdAorICAgICAqICAgICAgIDx0aD5Bcmd1bWVudAorICAgICAqICAgICAgIDx0aD5Gb3JtYXR0ZWQgVGV4dAorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICAqICAgICAgIDx0ZD48aT51bmF2YWlsYWJsZTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+InsiICsgYXJndW1lbnRJbmRleCArICJ9IjwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+Im51bGwiPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQ8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCkuaW5kZXhPZigneycpID49IDAgPzxicj4KKyAgICAgKiAgICAgICAgICAgKG5ldyBNZXNzYWdlRm9ybWF0KHN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpLCBnZXRMb2NhbGUoKSkpLmZvcm1hdChhcmd1bWVudCkgOgorICAgICAqICAgICAgICAgICBzdWJmb3JtYXQuZm9ybWF0KGFyZ3VtZW50KTwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxjb2RlPiE9IG51bGw8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIE51bWJlcjwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBEYXRlPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5TSE9SVCwgZ2V0TG9jYWxlKCkpLmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIFN0cmluZzwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQ8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPmFyZ3VtZW50LnRvU3RyaW5nKCk8L2NvZGU+CisgICAgICogPC90YWJsZT4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG5vbi1udWxsLCBhbmQgcmVmZXJzIHRvCisgICAgICogPGNvZGU+RmllbGQuQVJHVU1FTlQ8L2NvZGU+LCB0aGUgbG9jYXRpb24gb2YgdGhlIGZpcnN0IGZvcm1hdHRlZAorICAgICAqIHN0cmluZyB3aWxsIGJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGFyZ3VtZW50cyBhbiBhcnJheSBvZiBvYmplY3RzIHRvIGJlIGZvcm1hdHRlZCBhbmQgc3Vic3RpdHV0ZWQuCisgICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICAqIEBwYXJhbSBwb3MgT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwgaWYgZGVzaXJlZC4KKyAgICAgKiAgICAgICAgICAgIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAgKiAgICAgICAgICAgIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgaXMgbm90IG9mIHRoZSB0eXBlCisgICAgICogICAgICAgICAgICBleHBlY3RlZCBieSB0aGUgZm9ybWF0IGVsZW1lbnQocykgdGhhdCB1c2UgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZ0J1ZmZlciBmb3JtYXQoT2JqZWN0W10gYXJndW1lbnRzLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChhcmd1bWVudHMsIHJlc3VsdCwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTWVzc2FnZUZvcm1hdCB3aXRoIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCB1c2VzIGl0CisgICAgICogdG8gZm9ybWF0IHRoZSBnaXZlbiBhcmd1bWVudHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxibG9ja3F1b3RlPgorICAgICAqICAgICA8Y29kZT4obmV3IHtAbGluayAjTWVzc2FnZUZvcm1hdChTdHJpbmcpIE1lc3NhZ2VGb3JtYXR9KHBhdHRlcm4pKS57QGxpbmsgI2Zvcm1hdChqYXZhLmxhbmcuT2JqZWN0W10sIGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uKSBmb3JtYXR9KGFyZ3VtZW50cywgbmV3IFN0cmluZ0J1ZmZlcigpLCBudWxsKS50b1N0cmluZygpPC9jb2RlPgorICAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQsCisgICAgICogICAgICAgICAgICBvciBpZiBhbiBhcmd1bWVudCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheQorICAgICAqICAgICAgICAgICAgaXMgbm90IG9mIHRoZSB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKQorICAgICAqICAgICAgICAgICAgdGhhdCB1c2UgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBPYmplY3RbXSBhcmd1bWVudHMpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB0ZW1wID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisgICAgICAgIHJldHVybiB0ZW1wLmZvcm1hdChhcmd1bWVudHMpOworICAgIH0KKworICAgIC8vIE92ZXJyaWRlcworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICAqIHBhdHRlcm4sIHdpdGggZm9ybWF0IGVsZW1lbnRzIHJlcGxhY2VkIGJ5IHRoZSBmb3JtYXR0ZWQgb2JqZWN0cywgdG8gdGhlCisgICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8YmxvY2txdW90ZT4KKyAgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fSgoT2JqZWN0W10pIGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpPC9jb2RlPgorICAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICAqIEBwYXJhbSByZXN1bHQgd2hlcmUgdGV4dCBpcyBhcHBlbmRlZC4KKyAgICAgKiBAcGFyYW0gcG9zIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsIGlmIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgICogICAgICAgICAgICA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IGlzIG5vdCBvZiB0aGUgdHlwZQorICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gc3ViZm9ybWF0KChPYmplY3RbXSkgYXJndW1lbnRzLCByZXN1bHQsIHBvcyk7CisgICAgfQorCisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgQVBJIGluIEpESyB0aGF0IHdlIG5lZWQgdG8gaW1wbGVtZW50CisvLyAgICAvKioKKy8vICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgaW5zZXJ0cyB0aGVtIGludG8gdGhlCisvLyAgICAgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPidzIHBhdHRlcm4sIHByb2R1Y2luZyBhbgorLy8gICAgICogPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAqIFlvdSBjYW4gdXNlIHRoZSByZXR1cm5lZCA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+CisvLyAgICAgKiB0byBidWlsZCB0aGUgcmVzdWx0aW5nIFN0cmluZywgYXMgd2VsbCBhcyB0byBkZXRlcm1pbmUgaW5mb3JtYXRpb24KKy8vICAgICAqIGFib3V0IHRoZSByZXN1bHRpbmcgU3RyaW5nLgorLy8gICAgICogPHA+CisvLyAgICAgKiBUaGUgdGV4dCBvZiB0aGUgcmV0dXJuZWQgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBpcworLy8gICAgICogdGhlIHNhbWUgdGhhdCB3b3VsZCBiZSByZXR1cm5lZCBieQorLy8gICAgICogPGJsb2NrcXVvdGU+CisvLyAgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fShhcmd1bWVudHMsIG5ldyBTdHJpbmdCdWZmZXIoKSwgbnVsbCkudG9TdHJpbmcoKTwvY29kZT4KKy8vICAgICAqIDwvYmxvY2txdW90ZT4KKy8vICAgICAqIDxwPgorLy8gICAgICogSW4gYWRkaXRpb24sIHRoZSA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGNvbnRhaW5zIGF0CisvLyAgICAgKiBsZWFzdCBhdHRyaWJ1dGVzIGluZGljYXRpbmcgd2hlcmUgdGV4dCB3YXMgZ2VuZXJhdGVkIGZyb20gYW4KKy8vICAgICAqIGFyZ3VtZW50IGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5LiBUaGUga2V5cyBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBvZgorLy8gICAgICogdHlwZSA8Y29kZT5NZXNzYWdlRm9ybWF0LkZpZWxkPC9jb2RlPiwgdGhlaXIgdmFsdWVzIGFyZQorLy8gICAgICogPGNvZGU+SW50ZWdlcjwvY29kZT4gb2JqZWN0cyBpbmRpY2F0aW5nIHRoZSBpbmRleCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPgorLy8gICAgICogYXJyYXkgb2YgdGhlIGFyZ3VtZW50IGZyb20gd2hpY2ggdGhlIHRleHQgd2FzIGdlbmVyYXRlZC4KKy8vICAgICAqIDxwPgorLy8gICAgICogVGhlIGF0dHJpYnV0ZXMvdmFsdWUgZnJvbSB0aGUgdW5kZXJseWluZyA8Y29kZT5Gb3JtYXQ8L2NvZGU+CisvLyAgICAgKiBpbnN0YW5jZXMgdGhhdCA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB1c2VzIHdpbGwgYWxzbyBiZQorLy8gICAgICogcGxhY2VkIGluIHRoZSByZXN1bHRpbmcgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBub3Qgb25seSBmaW5kIHdoZXJlIGFuIGFyZ3VtZW50IGlzIHBsYWNlZCBpbiB0aGUKKy8vICAgICAqIHJlc3VsdGluZyBTdHJpbmcsIGJ1dCBhbHNvIHdoaWNoIGZpZWxkcyBpdCBjb250YWlucyBpbiB0dXJuLgorLy8gICAgICoKKy8vICAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorLy8gICAgICogQHJldHVybiBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgZGVzY3JpYmluZyB0aGUgZm9ybWF0dGVkIHZhbHVlLgorLy8gICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGlzIG51bGwuCisvLyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKy8vICAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKy8vICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorLy8gICAgICovCisvLyAgICBwdWJsaWMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IoT2JqZWN0IGFyZ3VtZW50cykgeworLy8gICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisvLyAgICAgICAgQXJyYXlMaXN0IGl0ZXJhdG9ycyA9IG5ldyBBcnJheUxpc3QoKTsKKy8vCisvLyAgICAgICAgaWYgKGFyZ3VtZW50cyA9PSBudWxsKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKy8vICAgICAgICAgICAgICAgICAgICJmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIG11c3QgYmUgcGFzc2VkIG5vbi1udWxsIG9iamVjdCIpOworLy8gICAgICAgIH0KKy8vICAgICAgICBzdWJmb3JtYXQoKE9iamVjdFtdKSBhcmd1bWVudHMsIHJlc3VsdCwgbnVsbCwgaXRlcmF0b3JzKTsKKy8vICAgICAgICBpZiAoaXRlcmF0b3JzLnNpemUoKSA9PSAwKSB7CisvLyAgICAgICAgICAgIHJldHVybiBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoIiIpOworLy8gICAgICAgIH0KKy8vICAgICAgICByZXR1cm4gY3JlYXRlQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yKAorLy8gICAgICAgICAgICAgICAgICAgICAoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yW10paXRlcmF0b3JzLnRvQXJyYXkoCisvLyAgICAgICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3JbaXRlcmF0b3JzLnNpemUoKV0pKTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogPHA+Q2F2ZWF0czogVGhlIHBhcnNlIG1heSBmYWlsIGluIGEgbnVtYmVyIG9mIGNpcmN1bXN0YW5jZXMuCisgICAgICogRm9yIGV4YW1wbGU6CisgICAgICogPHVsPgorICAgICAqIDxsaT5JZiBvbmUgb2YgdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgcGF0dGVybi4KKyAgICAgKiA8bGk+SWYgdGhlIGZvcm1hdCBvZiBhbiBhcmd1bWVudCBsb3NlcyBpbmZvcm1hdGlvbiwgc3VjaCBhcworICAgICAqICAgICB3aXRoIGEgY2hvaWNlIGZvcm1hdCB3aGVyZSBhIGxhcmdlIG51bWJlciBmb3JtYXRzIHRvICJtYW55Ii4KKyAgICAgKiA8bGk+RG9lcyBub3QgeWV0IGhhbmRsZSByZWN1cnNpb24gKHdoZXJlCisgICAgICogICAgIHRoZSBzdWJzdGl0dXRlZCBzdHJpbmdzIGNvbnRhaW4ge259IHJlZmVyZW5jZXMuKQorICAgICAqIDxsaT5XaWxsIG5vdCBhbHdheXMgZmluZCBhIG1hdGNoIChvciB0aGUgY29ycmVjdCBtYXRjaCkKKyAgICAgKiAgICAgaWYgc29tZSBwYXJ0IG9mIHRoZSBwYXJzZSBpcyBhbWJpZ3VvdXMuCisgICAgICogICAgIEZvciBleGFtcGxlLCBpZiB0aGUgcGF0dGVybiAiezF9LHsyfSIgaXMgdXNlZCB3aXRoIHRoZQorICAgICAqICAgICBzdHJpbmcgYXJndW1lbnRzIHsiYSxiIiwgImMifSwgaXQgd2lsbCBmb3JtYXQgYXMgImEsYixjIi4KKyAgICAgKiAgICAgV2hlbiB0aGUgcmVzdWx0IGlzIHBhcnNlZCwgaXQgd2lsbCByZXR1cm4geyJhIiwgImIsYyJ9LgorICAgICAqIDxsaT5JZiBhIHNpbmdsZSBhcmd1bWVudCBpcyBwYXJzZWQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHN0cmluZywKKyAgICAgKiAgICAgdGhlbiB0aGUgbGF0ZXIgcGFyc2Ugd2lucy4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gdGhlIHBhcnNlIGZhaWxzLCB1c2UgUGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkgdG8gZmluZCBvdXQKKyAgICAgKiB3aGVyZSBpbiB0aGUgc3RyaW5nIGRpZCB0aGUgcGFyc2luZyBmYWlsZWQuICBUaGUgcmV0dXJuZWQgZXJyb3IKKyAgICAgKiBpbmRleCBpcyB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBzdWItcGF0dGVybnMgdGhhdCB0aGUgc3RyaW5nCisgICAgICogaXMgY29tcGFyaW5nIHdpdGguICBGb3IgZXhhbXBsZSwgaWYgdGhlIHBhcnNpbmcgc3RyaW5nICJBQUEgezB9IEJCQiIKKyAgICAgKiBpcyBjb21wYXJpbmcgYWdhaW5zdCB0aGUgcGF0dGVybiAiQUFEIHswfSBCQkIiLCB0aGUgZXJyb3IgaW5kZXggaXMKKyAgICAgKiAwLiBXaGVuIGFuIGVycm9yIG9jY3VycywgdGhlIGNhbGwgdG8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC4KKyAgICAgKiBJZiB0aGUgc291cmNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W10gcGFyc2UoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBPYmplY3RbXSBlbXB0eSA9IHt9OworICAgICAgICAgICAgcmV0dXJuIGVtcHR5OworICAgICAgICB9CisKKyAgICAgICAgaW50IG1heGltdW1Bcmd1bWVudE51bWJlciA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgaWYgKGFyZ3VtZW50TnVtYmVyc1tpXSA+IG1heGltdW1Bcmd1bWVudE51bWJlcikgeworICAgICAgICAgICAgICAgIG1heGltdW1Bcmd1bWVudE51bWJlciA9IGFyZ3VtZW50TnVtYmVyc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSByZXN1bHRBcnJheSA9IG5ldyBPYmplY3RbbWF4aW11bUFyZ3VtZW50TnVtYmVyICsgMV07CisKKyAgICAgICAgaW50IHBhdHRlcm5PZmZzZXQgPSAwOworICAgICAgICBpbnQgc291cmNlT2Zmc2V0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7ICsraSkgeworICAgICAgICAgICAgLy8gbWF0Y2ggdXAgdG8gZm9ybWF0CisgICAgICAgICAgICBpbnQgbGVuID0gb2Zmc2V0c1tpXSAtIHBhdHRlcm5PZmZzZXQ7CisgICAgICAgICAgICBpZiAobGVuID09IDAgfHwgcGF0dGVybi5yZWdpb25NYXRjaGVzKHBhdHRlcm5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgc291cmNlT2Zmc2V0LCBsZW4pKSB7CisgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0ICs9IGxlbjsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IGxlbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbGVhdmUgaW5kZXggYXMgaXMgdG8gc2lnbmFsIGVycm9yCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG5vdyB1c2UgZm9ybWF0CisgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXSA9PSBudWxsKSB7ICAgLy8gc3RyaW5nIGZvcm1hdAorICAgICAgICAgICAgICAgIC8vIGlmIGF0IGVuZCwgdXNlIGxvbmdlc3QgcG9zc2libGUgbWF0Y2gKKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgdXNlcyBmaXJzdCBtYXRjaCB0byBpbnRlcnZlbmluZyBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBkb2VzIE5PVCByZWN1cnNpdmVseSB0cnkgYWxsIHBvc3NpYmlsaXRpZXMKKyAgICAgICAgICAgICAgICBpbnQgdGVtcExlbmd0aCA9IChpICE9IG1heE9mZnNldCkgPyBvZmZzZXRzW2krMV0gOiBwYXR0ZXJuLmxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgaW50IG5leHQ7CisgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm5PZmZzZXQgPj0gdGVtcExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlLmluZGV4T2YoIHBhdHRlcm4uc3Vic3RyaW5nKHBhdHRlcm5PZmZzZXQsdGVtcExlbmd0aCksIHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5leHQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBsZWF2ZSBpbmRleCBhcyBpcyB0byBzaWduYWwgZXJyb3IKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyVmFsdWU9IHNvdXJjZS5zdWJzdHJpbmcoc291cmNlT2Zmc2V0LG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0clZhbHVlLmVxdWFscygieyIrYXJndW1lbnROdW1iZXJzW2ldKyJ9IikpCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRBcnJheVthcmd1bWVudE51bWJlcnNbaV1dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2Uuc3Vic3RyaW5nKHNvdXJjZU9mZnNldCxuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0ID0gbmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlbXBTdGF0dXMuc2V0SW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheVthcmd1bWVudE51bWJlcnNbaV1dCisgICAgICAgICAgICAgICAgICAgID0gZm9ybWF0c1tpXS5wYXJzZU9iamVjdChzb3VyY2UsdGVtcFN0YXR1cyk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBTdGF0dXMuZ2V0SW5kZXgoKSA9PSBzb3VyY2VPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxlYXZlIGluZGV4IGFzIGlzIHRvIHNpZ25hbCBlcnJvcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2VPZmZzZXQgPSB0ZW1wU3RhdHVzLmdldEluZGV4KCk7IC8vIHVwZGF0ZQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBsZW4gPSBwYXR0ZXJuLmxlbmd0aCgpIC0gcGF0dGVybk9mZnNldDsKKyAgICAgICAgaWYgKGxlbiA9PSAwIHx8IHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwYXR0ZXJuT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgc291cmNlT2Zmc2V0LCBsZW4pKSB7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc291cmNlT2Zmc2V0ICsgbGVuKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbGVhdmUgaW5kZXggYXMgaXMgdG8gc2lnbmFsIGVycm9yCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHByb2R1Y2UgYW4gb2JqZWN0CisgICAgICogYXJyYXkuCisgICAgICogVGhlIG1ldGhvZCBtYXkgbm90IHVzZSB0aGUgZW50aXJlIHRleHQgb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgICogb24gbWVzc2FnZSBwYXJzaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4gd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nCisgICAgICogICAgICAgICAgICBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgT2JqZWN0W10gcmVzdWx0ID0gcGFyc2Uoc291cmNlLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgIC8vIHVuY2hhbmdlZCwgcmV0dXJuZWQgb2JqZWN0IGlzIG51bGwKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiTWVzc2FnZUZvcm1hdCBwYXJzZSBlcnJvciEiLCBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gYSBzdHJpbmcgdG8gcHJvZHVjZSBhbiBvYmplY3QgYXJyYXkuCisgICAgICogPHA+CisgICAgICogVGhlIG1ldGhvZCBhdHRlbXB0cyB0byBwYXJzZSB0ZXh0IHN0YXJ0aW5nIGF0IHRoZSBpbmRleCBnaXZlbiBieQorICAgICAqIDxjb2RlPnBvczwvY29kZT4uCisgICAgICogSWYgcGFyc2luZyBzdWNjZWVkcywgdGhlbiB0aGUgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyB1cGRhdGVkCisgICAgICogdG8gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB1c2VkIChwYXJzaW5nIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgICogdXNlIGFsbCBjaGFyYWN0ZXJzIHVwIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZyksIGFuZCB0aGUgcGFyc2VkCisgICAgICogb2JqZWN0IGFycmF5IGlzIHJldHVybmVkLiBUaGUgdXBkYXRlZCA8Y29kZT5wb3M8L2NvZGU+IGNhbiBiZSB1c2VkIHRvCisgICAgICogaW5kaWNhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgbmV4dCBjYWxsIHRvIHRoaXMgbWV0aG9kLgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyBub3QKKyAgICAgKiBjaGFuZ2VkLCB0aGUgZXJyb3IgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyBzZXQgdG8gdGhlIGluZGV4IG9mCisgICAgICogdGhlIGNoYXJhY3RlciB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBudWxsIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBtZXRob2QgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyAgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEEgPGNvZGU+U3RyaW5nPC9jb2RlPiwgcGFydCBvZiB3aGljaCBzaG91bGQgYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBwb3MgQSA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBvYmplY3Qgd2l0aCBpbmRleCBhbmQgZXJyb3IKKyAgICAgKiAgICAgICAgICAgIGluZGV4IGluZm9ybWF0aW9uIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPk9iamVjdDwvY29kZT4gYXJyYXkgcGFyc2VkIGZyb20gdGhlIHN0cmluZy4gSW4gY2FzZSBvZgorICAgICAqICAgICAgICAgZXJyb3IsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPnBvczwvY29kZT4gaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBwYXJzZShzb3VyY2UsIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBpbnN0YW5jZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG90aGVyID0gKE1lc3NhZ2VGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisKKyAgICAgICAgLy8gY2xvbmUgYXJyYXlzLiBDYW4ndCBkbyB3aXRoIHV0aWxpdHkgYmVjYXVzZSBvZiBidWcgaW4gQ2xvbmVhYmxlCisgICAgICAgIG90aGVyLmZvcm1hdHMgPSAoRm9ybWF0W10pIGZvcm1hdHMuY2xvbmUoKTsgLy8gc2hhbGxvdyBjbG9uZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvcm1hdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXRzW2ldICE9IG51bGwpCisgICAgICAgICAgICAgICAgb3RoZXIuZm9ybWF0c1tpXSA9IChGb3JtYXQpZm9ybWF0c1tpXS5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIC8vIGZvciBwcmltaXRpdmVzIG9yIGltbXV0YWJsZXMsIHNoYWxsb3cgY2xvbmUgaXMgZW5vdWdoCisgICAgICAgIG90aGVyLm9mZnNldHMgPSAoaW50W10pIG9mZnNldHMuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIuYXJndW1lbnROdW1iZXJzID0gKGludFtdKSBhcmd1bWVudE51bWJlcnMuY2xvbmUoKTsKKworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byBtZXNzYWdlIGZvcm1hdCBvYmplY3RzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBNZXNzYWdlRm9ybWF0IG90aGVyID0gKE1lc3NhZ2VGb3JtYXQpIG9iajsKKyAgICAgICAgcmV0dXJuIChtYXhPZmZzZXQgPT0gb3RoZXIubWF4T2Zmc2V0CisgICAgICAgICAgICAgICAgJiYgcGF0dGVybi5lcXVhbHMob3RoZXIucGF0dGVybikKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5Lm9iamVjdEVxdWFscyh1bG9jYWxlLCBvdGhlci51bG9jYWxlKSAgIC8vIGRvZXMgbnVsbCBjaGVjaworICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMob2Zmc2V0cyxvdGhlci5vZmZzZXRzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoYXJndW1lbnROdW1iZXJzLG90aGVyLmFyZ3VtZW50TnVtYmVycykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKGZvcm1hdHMsb3RoZXIuZm9ybWF0cykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIG1lc3NhZ2UgZm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gcGF0dGVybi5oYXNoQ29kZSgpOyAvLyBlbm91Z2ggZm9yIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgQVBJIGluIEpESyB0aGF0IHdlIG5lZWQgdG8gaW1wbGVtZW50CisvLyAgICAvKioKKy8vICAgICAqIERlZmluZXMgY29uc3RhbnRzIHRoYXQgYXJlIHVzZWQgYXMgYXR0cmlidXRlIGtleXMgaW4gdGhlCisvLyAgICAgKiA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IHJldHVybmVkCisvLyAgICAgKiBmcm9tIDxjb2RlPk1lc3NhZ2VGb3JtYXQuZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisvLyAgICAgKiBAZHJhZnQgSUNVIDMuMAorLy8gICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmllbGQgZXh0ZW5kcyBGb3JtYXQuRmllbGQgeworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIENyZWF0ZXMgYSBGaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKy8vICAgICAgICAgKgorLy8gICAgICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZQorLy8gICAgICAgICAqLworLy8gICAgICAgIHByb3RlY3RlZCBGaWVsZChTdHJpbmcgbmFtZSkgeworLy8gICAgICAgICAgICBzdXBlcihuYW1lKTsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIFJlc29sdmVzIGluc3RhbmNlcyBiZWluZyBkZXNlcmlhbGl6ZWQgdG8gdGhlIHByZWRlZmluZWQgY29uc3RhbnRzLgorLy8gICAgICAgICAqCisvLyAgICAgICAgICogQHRocm93cyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uIGlmIHRoZSBjb25zdGFudCBjb3VsZCBub3QgYmUKKy8vICAgICAgICAgKiAgICAgICAgIHJlc29sdmVkLgorLy8gICAgICAgICAqIEByZXR1cm4gcmVzb2x2ZWQgTWVzc2FnZUZvcm1hdC5GaWVsZCBjb25zdGFudAorLy8gICAgICAgICAqLworLy8gICAgICAgIHByb3RlY3RlZCBPYmplY3QgcmVhZFJlc29sdmUoKSB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgIT0gTWVzc2FnZUZvcm1hdC5GaWVsZC5jbGFzcykgeworLy8gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oInN1YmNsYXNzIGRpZG4ndCBjb3JyZWN0bHkgaW1wbGVtZW50IHJlYWRSZXNvbHZlIik7CisvLyAgICAgICAgICAgIH0KKy8vCisvLyAgICAgICAgICAgIHJldHVybiBBUkdVTUVOVDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vCisvLyAgICAgICAgLy8gVGhlIGNvbnN0YW50cworLy8gICAgICAgIC8vCisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIENvbnN0YW50IGlkZW50aWZ5aW5nIGEgcG9ydGlvbiBvZiBhIG1lc3NhZ2UgdGhhdCB3YXMgZ2VuZXJhdGVkCisvLyAgICAgICAgICogZnJvbSBhbiBhcmd1bWVudCBwYXNzZWQgaW50byA8Y29kZT5mb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAgICAgKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgd2lsbCBiZSBhbiA8Y29kZT5JbnRlZ2VyPC9jb2RlPgorLy8gICAgICAgICAqIGluZGljYXRpbmcgdGhlIGluZGV4IGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IG9mIHRoZQorLy8gICAgICAgICAqIGFyZ3VtZW50IGZyb20gd2hpY2ggdGhlIHRleHQgd2FzIGdlbmVyYXRlZC4KKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwdWJsaWMgZmluYWwgc3RhdGljIEZpZWxkIEFSR1VNRU5UID0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkKCJtZXNzYWdlIGFyZ3VtZW50IGZpZWxkIik7CisvLyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgdG8gdXNlIGZvciBmb3JtYXR0aW5nIG51bWJlcnMgYW5kIGRhdGVzLgorICAgICAqIFRoaXMgaXMgbm8gbG9uZ2VyIHVzZWQsIGFuZCBoZXJlIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSB0byB1c2UgZm9yIGZvcm1hdHRpbmcgbnVtYmVycyBhbmQgZGF0ZXMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB1bG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyB0aGF0IHRoZSBmb3JtYXR0ZWQgdmFsdWVzIGFyZSB0byBiZSBwbHVnZ2VkIGludG8uICBJbiBvdGhlciB3b3JkcywgdGhpcworICAgICAqIGlzIHRoZSBwYXR0ZXJuIHN1cHBsaWVkIG9uIGNvbnN0cnVjdGlvbiB3aXRoIGFsbCBvZiB0aGUge30gZXhwcmVzc2lvbnMgdGFrZW4gb3V0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuID0gIiI7CisKKyAgICAvKiogVGhlIGluaXRpYWxseSBleHBlY3RlZCBudW1iZXIgb2Ygc3ViZm9ybWF0cyBpbiB0aGUgZm9ybWF0ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSVRJQUxfRk9STUFUUyA9IDEwOworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgZm9ybWF0dGVycywgd2hpY2ggYXJlIHVzZWQgdG8gZm9ybWF0IHRoZSBhcmd1bWVudHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgRm9ybWF0W10gZm9ybWF0cyA9IG5ldyBGb3JtYXRbSU5JVElBTF9GT1JNQVRTXTsKKworICAgIC8qKgorICAgICAqIFRoZSBwb3NpdGlvbnMgd2hlcmUgdGhlIHJlc3VsdHMgb2YgZm9ybWF0dGluZyBlYWNoIGFyZ3VtZW50IGFyZSB0byBiZSBpbnNlcnRlZAorICAgICAqIGludG8gdGhlIHBhdHRlcm4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gb2Zmc2V0cyA9IG5ldyBpbnRbSU5JVElBTF9GT1JNQVRTXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhcmd1bWVudCBudW1iZXJzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBmb3JtYXR0ZXIuICAoVGhlIGZvcm1hdHRlcnMgYXJlIHN0b3JlZAorICAgICAqIGluIHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBwYXR0ZXJuLCBub3QgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBhcmd1bWVudHMKKyAgICAgKiBhcmUgc3BlY2lmaWVkLikKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBhcmd1bWVudE51bWJlcnMgPSBuZXcgaW50W0lOSVRJQUxfRk9STUFUU107CisKKyAgICAvKioKKyAgICAgKiBPbmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiA8Y29kZT5vZmZzZXRzPC9jb2RlPi4gIENhbiBhbHNvIGJlIHRob3VnaHQgb2YKKyAgICAgKiBhcyB0aGUgaW5kZXggb2YgdGhlIGhpZ2hlc3QtbnVtYmVyZWQgZWxlbWVudCBpbiA8Y29kZT5vZmZzZXRzPC9jb2RlPiB0aGF0IGlzIGJlaW5nIHVzZWQuCisgICAgICogQWxsIG9mIHRoZXNlIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYmVpbmcgdXNlZCBhcyA8Y29kZT5vZmZzZXRzPC9jb2RlPgorICAgICAqIGRvZXMsIGFuZCBzbyB0aGlzIHZhcmlhYmxlIHN1ZmZpY2VzIHRvIHRlbGwgdXMgaG93IG1hbnkgZW50cmllcyBhcmUgaW4gYWxsIG9mIHRoZW0uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1heE9mZnNldCA9IC0xOworCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgcm91dGluZSB1c2VkIGJ5IGZvcm1hdC4gSWYgPGNvZGU+Y2hhcmFjdGVySXRlcmF0b3JzPC9jb2RlPiBpcworICAgICAqIG5vbi1udWxsLCBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3Igd2lsbCBiZSBjcmVhdGVkIGZyb20gdGhlCisgICAgICogc3ViZm9ybWF0cyBhcyBuZWNlc3NhcnkuIElmIDxjb2RlPmNoYXJhY3Rlckl0ZXJhdG9yczwvY29kZT4gaXMgbnVsbAorICAgICAqIGFuZCA8Y29kZT5mcDwvY29kZT4gaXMgbm9uLW51bGwgYW5kIGlkZW50aWZpZXMKKyAgICAgKiA8Y29kZT5GaWVsZC5NRVNTQUdFX0FSR1VNRU5UPC9jb2RlPiwgdGhlIGxvY2F0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IHJlcGxhY2VkIGFyZ3VtZW50IHdpbGwgYmUgc2V0IGluIGl0LgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgICogICAgICAgICAgICA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IGlzIG5vdCBvZiB0aGUgdHlwZQorICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHN1YmZvcm1hdChPYmplY3RbXSBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZnAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyosIExpc3QgY2hhcmFjdGVySXRlcmF0b3JzKi8pIHsKKyAgICAgICAgLy8gbm90ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIGEgZmFzdCBzdWJzdHJpbmcgJiBpbmRleC4KKyAgICAgICAgLy8gaWYgdGhpcyBpcyBub3QgdHJ1ZSwgd291bGQgYmUgYmV0dGVyIHRvIGFwcGVuZCBjaGFycyBvbmUgYnkgb25lLgorICAgICAgICBpbnQgbGFzdE9mZnNldCA9IDA7CisgICAgICAgIGludCBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZyhsYXN0T2Zmc2V0LCBvZmZzZXRzW2ldKSk7CisgICAgICAgICAgICBsYXN0T2Zmc2V0ID0gb2Zmc2V0c1tpXTsKKyAgICAgICAgICAgIGludCBhcmd1bWVudE51bWJlciA9IGFyZ3VtZW50TnVtYmVyc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudHMgPT0gbnVsbCB8fCBhcmd1bWVudE51bWJlciA+PSBhcmd1bWVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieyIgKyBhcmd1bWVudE51bWJlciArICJ9Iik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbnQgYXJnUmVjdXJzaW9uID0gKChyZWN1cnNpb25Qcm90ZWN0aW9uID4+IChhcmd1bWVudE51bWJlcioyKSkgJiAweDMpOworICAgICAgICAgICAgaWYgKGZhbHNlKSB7IC8vIGlmIChhcmdSZWN1cnNpb24gPT0gMyl7CisgICAgICAgICAgICAgICAgLy8gcHJldmVudCBsb29wISEhCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXHVGRkZEJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIE9iamVjdCBvYmogPSBhcmd1bWVudHNbYXJndW1lbnROdW1iZXJdOworICAgICAgICAgICAgICAgIFN0cmluZyBhcmcgPSBudWxsOworICAgICAgICAgICAgICAgIEZvcm1hdCBzdWJGb3JtYXR0ZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhcmcgPSAibnVsbCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gZm9ybWF0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkZvcm1hdHRlciBpbnN0YW5jZW9mIENob2ljZUZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gZm9ybWF0c1tpXS5mb3JtYXQob2JqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcuaW5kZXhPZigneycpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXR0ZXIgPSBuZXcgTWVzc2FnZUZvcm1hdChhcmcsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IGFyZ3VtZW50czsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0IG51bWJlciBpZiBjYW4KKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKHVsb2NhbGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3JtYXQgYSBEYXRlIGlmIGNhbgorICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXR0ZXIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIHVsb2NhbGUpOy8vZml4CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnID0gKFN0cmluZykgb2JqOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnID0gb2JqLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmcgPT0gbnVsbCkgYXJnID0gIm51bGwiOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgYXJlIGluIHR3byBzdGF0ZXMsIGVpdGhlciBzdWJGb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAvLyBpcyBub24tbnVsbCBpbmRpY2F0aW5nIHdlIHNob3VsZCBmb3JtYXQgb2JqIHVzaW5nIGl0LAorICAgICAgICAgICAgICAgIC8vIG9yIGFyZyBpcyBub24tbnVsbCBhbmQgd2Ugc2hvdWxkIHVzZSBpdCBhcyB0aGUgdmFsdWUuCisKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBBUEkgaW4gSkRLIHRoYXQgd2UgbmVlZCB0byBpbXBsZW1lbnQKKy8vICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJJdGVyYXRvcnMgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgIC8vIElmIGNoYXJhY3Rlckl0ZXJhdG9ycyBpcyBub24tbnVsbCwgaXQgaW5kaWNhdGVzIHdlIG5lZWQKKy8vICAgICAgICAgICAgICAgICAgICAvLyB0byBnZXQgdGhlIENoYXJhY3Rlckl0ZXJhdG9yIGZyb20gdGhlIGNoaWxkIGZvcm1hdHRlci4KKy8vICAgICAgICAgICAgICAgICAgICBpZiAobGFzdCAhPSByZXN1bHQubGVuZ3RoKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVySXRlcmF0b3JzLmFkZCgKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcihyZXN1bHQuc3Vic3RyaW5nCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3QpKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXN1bHQubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgIGlmIChzdWJGb3JtYXR0ZXIgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3Igc3ViSXRlcmF0b3IgPQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdHRlci5mb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yKG9iaik7CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQocmVzdWx0LCBzdWJJdGVyYXRvcik7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0ICE9IHJlc3VsdC5sZW5ndGgoKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVySXRlcmF0b3JzLmFkZCgKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViSXRlcmF0b3IsIEZpZWxkLkFSR1VNRU5ULAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKGFyZ3VtZW50TnVtYmVyKSkpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHJlc3VsdC5sZW5ndGgoKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBudWxsOworLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBpZiAoYXJnICE9IG51bGwgJiYgYXJnLmxlbmd0aCgpID4gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGFyZyk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlckl0ZXJhdG9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBGaWVsZC5BUkdVTUVOVCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoYXJndW1lbnROdW1iZXIpKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXN1bHQubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkZvcm1hdHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBzdWJGb3JtYXR0ZXIuZm9ybWF0KG9iaik7CisgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOyAvLyBVc2VsZXNzPyBbYWxhbl0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcmcpOworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEpESyBBUEkgd2UgbmVlZCB0byBpbXBsZW1lbnQuCisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCAmJiBmcCAhPSBudWxsICYmIEZpZWxkLkFSR1VNRU5ULmVxdWFscygKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwLmdldEZpZWxkQXR0cmlidXRlKCkpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGZwLnNldEJlZ2luSW5kZXgobGFzdCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGZwLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nKGxhc3RPZmZzZXQsIHBhdHRlcm4ubGVuZ3RoKCkpKTsKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBKREsgQVBJIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorLy8gICAgICAgIGlmIChjaGFyYWN0ZXJJdGVyYXRvcnMgIT0gbnVsbCAmJiBsYXN0ICE9IHJlc3VsdC5sZW5ndGgoKSkgeworLy8gICAgICAgICAgICBjaGFyYWN0ZXJJdGVyYXRvcnMuYWRkKGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3Vic3RyaW5nKGxhc3QpKSk7CisvLyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEpESyBBUEkgd2UgbmVlZCB0byBpbXBsZW1lbnQuCisvLyAgICAvKioKKy8vICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBhcHBlbmQgYWxsIHRoZSBjaGFyYWN0ZXJzIGluCisvLyAgICAgKiA8Y29kZT5pdGVyYXRvcjwvY29kZT4gdG8gdGhlIFN0cmluZ0J1ZmZlciA8Y29kZT5yZXN1bHQ8L2NvZGU+LgorLy8gICAgICovCisvLyAgICBwcml2YXRlIHZvaWQgYXBwZW5kKFN0cmluZ0J1ZmZlciByZXN1bHQsIENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKSB7CisvLyAgICAgICAgaWYgKGl0ZXJhdG9yLmZpcnN0KCkgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworLy8gICAgICAgICAgICBjaGFyIGFDaGFyOworLy8KKy8vICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdGVyYXRvci5maXJzdCgpKTsKKy8vICAgICAgICAgICAgd2hpbGUgKChhQ2hhciA9IGl0ZXJhdG9yLm5leHQoKSkgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworLy8gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhQ2hhcik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0eXBlTGlzdCA9CisgICAgICAgIHsiIiwgIm51bWJlciIsICJkYXRlIiwgInRpbWUiLCAiY2hvaWNlIiwgInNwZWxsb3V0IiwgIm9yZGluYWwiLCAiZHVyYXRpb24ifTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgIFRZUEVfRU1QVFkgPSAwLAorICAgICAgICBUWVBFX05VTUJFUiA9IDEsCisgICAgICAgIFRZUEVfREFURSA9IDIsCisgICAgICAgIFRZUEVfVElNRSA9IDMsCisgICAgICAgIFRZUEVfQ0hPSUNFID0gNCwKKyAgICAgICAgVFlQRV9TUEVMTE9VVCA9IDUsCisgICAgICAgIFRZUEVfT1JESU5BTCA9IDYsCisgICAgICAgIFRZUEVfRFVSQVRJT04gPSA3OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbW9kaWZpZXJMaXN0ID0KKyAgICAgICAgeyIiLCAiY3VycmVuY3kiLCAicGVyY2VudCIsICJpbnRlZ2VyIn07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIE1PRElGSUVSX0VNUFRZID0gMCwKKyAgICAgICAgTU9ESUZJRVJfQ1VSUkVOQ1kgPSAxLAorICAgICAgICBNT0RJRklFUl9QRVJDRU5UID0gMiwKKyAgICAgICAgTU9ESUZJRVJfSU5URUdFUiA9IDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBkYXRlTW9kaWZpZXJMaXN0ID0KKyAgICAgICAgeyIiLCAic2hvcnQiLCAibWVkaXVtIiwgImxvbmciLCAiZnVsbCJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEQVRFX01PRElGSUVSX0VNUFRZID0gMCwKKyAgICAgICAgREFURV9NT0RJRklFUl9TSE9SVCA9IDEsCisgICAgICAgIERBVEVfTU9ESUZJRVJfTUVESVVNID0gMiwKKyAgICAgICAgREFURV9NT0RJRklFUl9MT05HID0gMywKKyAgICAgICAgREFURV9NT0RJRklFUl9GVUxMID0gNDsKKworICAgIHByaXZhdGUgdm9pZCBtYWtlRm9ybWF0KGludCBwb3NpdGlvbiwgaW50IG9mZnNldE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXJbXSBzZWdtZW50cykKKyAgICB7CisgICAgICAgIC8vIGdldCB0aGUgYXJndW1lbnQgbnVtYmVyCisgICAgICAgIGludCBhcmd1bWVudE51bWJlcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFyZ3VtZW50TnVtYmVyID0gSW50ZWdlci5wYXJzZUludChzZWdtZW50c1sxXS50b1N0cmluZygpKTsgLy8gYWx3YXlzIHVubG9jYWxpemVkIQorICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FuJ3QgcGFyc2UgYXJndW1lbnQgbnVtYmVyICIgKyBzZWdtZW50c1sxXSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3VtZW50TnVtYmVyIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibmVnYXRpdmUgYXJndW1lbnQgbnVtYmVyICIgKyBhcmd1bWVudE51bWJlcik7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNpemUgZm9ybWF0IGluZm9ybWF0aW9uIGFycmF5cyBpZiBuZWNlc3NhcnkKKyAgICAgICAgaWYgKG9mZnNldE51bWJlciA+PSBmb3JtYXRzLmxlbmd0aCkgeworICAgICAgICAgICAgaW50IG5ld0xlbmd0aCA9IGZvcm1hdHMubGVuZ3RoICogMjsKKyAgICAgICAgICAgIEZvcm1hdFtdIG5ld0Zvcm1hdHMgPSBuZXcgRm9ybWF0W25ld0xlbmd0aF07CisgICAgICAgICAgICBpbnRbXSBuZXdPZmZzZXRzID0gbmV3IGludFtuZXdMZW5ndGhdOworICAgICAgICAgICAgaW50W10gbmV3QXJndW1lbnROdW1iZXJzID0gbmV3IGludFtuZXdMZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmb3JtYXRzLCAwLCBuZXdGb3JtYXRzLCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob2Zmc2V0cywgMCwgbmV3T2Zmc2V0cywgMCwgbWF4T2Zmc2V0ICsgMSk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGFyZ3VtZW50TnVtYmVycywgMCwgbmV3QXJndW1lbnROdW1iZXJzLCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgICAgIGZvcm1hdHMgPSBuZXdGb3JtYXRzOworICAgICAgICAgICAgb2Zmc2V0cyA9IG5ld09mZnNldHM7CisgICAgICAgICAgICBhcmd1bWVudE51bWJlcnMgPSBuZXdBcmd1bWVudE51bWJlcnM7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9sZE1heE9mZnNldCA9IG1heE9mZnNldDsKKyAgICAgICAgbWF4T2Zmc2V0ID0gb2Zmc2V0TnVtYmVyOworICAgICAgICBvZmZzZXRzW29mZnNldE51bWJlcl0gPSBzZWdtZW50c1swXS5sZW5ndGgoKTsKKyAgICAgICAgYXJndW1lbnROdW1iZXJzW29mZnNldE51bWJlcl0gPSBhcmd1bWVudE51bWJlcjsKKworICAgICAgICAvLyBub3cgZ2V0IHRoZSBmb3JtYXQKKyAgICAgICAgRm9ybWF0IG5ld0Zvcm1hdCA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoZmluZEtleXdvcmQoc2VnbWVudHNbMl0udG9TdHJpbmcoKSwgdHlwZUxpc3QpKSB7CisgICAgICAgIGNhc2UgVFlQRV9FTVBUWToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfTlVNQkVSOgorICAgICAgICAgICAgc3dpdGNoIChmaW5kS2V5d29yZChzZWdtZW50c1szXS50b1N0cmluZygpLCBtb2RpZmllckxpc3QpKSB7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX0VNUFRZOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTU9ESUZJRVJfQ1VSUkVOQ1k6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UodWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTU9ESUZJRVJfSU5URUdFUjoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogLy8gcGF0dGVybgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyh1bG9jYWxlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX0RBVEU6CisgICAgICAgICAgICBzd2l0Y2ggKGZpbmRLZXl3b3JkKHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIGRhdGVNb2RpZmllckxpc3QpKSB7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRU1QVFk6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9TSE9SVDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9NRURJVU06CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9MT05HOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRlVMTDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChzZWdtZW50c1szXS50b1N0cmluZygpLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfVElNRToKKyAgICAgICAgICAgIHN3aXRjaCAoZmluZEtleXdvcmQoc2VnbWVudHNbM10udG9TdHJpbmcoKSwgZGF0ZU1vZGlmaWVyTGlzdCkpIHsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9FTVBUWToKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX1NIT1JUOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX01FRElVTToKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX0xPTkc6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9GVUxMOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9DSE9JQ0U6CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBDaG9pY2VGb3JtYXQoc2VnbWVudHNbM10udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIG1heE9mZnNldCA9IG9sZE1heE9mZnNldDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hvaWNlIFBhdHRlcm4gaW5jb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX1NQRUxMT1VUOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgcmJuZiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXNldCA9IHNlZ21lbnRzWzNdLnRvU3RyaW5nKCkudHJpbSgpOworICAgICAgICAgICAgICAgIGlmIChydWxlc2V0Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJibmYuc2V0RGVmYXVsdFJ1bGVTZXQocnVsZXNldCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXJuIGludmFsaWQgcnVsZXNldAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IHJibmY7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9PUkRJTkFMOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCByYm5mID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCh1bG9jYWxlLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSBzZWdtZW50c1szXS50b1N0cmluZygpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYm5mLnNldERlZmF1bHRSdWxlU2V0KHJ1bGVzZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBpbnZhbGlkIHJ1bGVzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSByYm5mOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfRFVSQVRJT046CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHJibmYgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVsb2NhbGUsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSBzZWdtZW50c1szXS50b1N0cmluZygpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYm5mLnNldERlZmF1bHRSdWxlU2V0KHJ1bGVzZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBpbnZhbGlkIHJ1bGVzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSByYm5mOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbWF4T2Zmc2V0ID0gb2xkTWF4T2Zmc2V0OworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidW5rbm93biBmb3JtYXQgdHlwZSBhdCAiKTsKKyAgICAgICAgfQorICAgICAgICBmb3JtYXRzW29mZnNldE51bWJlcl0gPSBuZXdGb3JtYXQ7CisgICAgICAgIHNlZ21lbnRzWzFdLnNldExlbmd0aCgwKTsgICAvLyB0aHJvdyBhd2F5IG90aGVyIHNlZ21lbnRzCisgICAgICAgIHNlZ21lbnRzWzJdLnNldExlbmd0aCgwKTsKKyAgICAgICAgc2VnbWVudHNbM10uc2V0TGVuZ3RoKDApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBmaW5kS2V5d29yZChTdHJpbmcgcywgU3RyaW5nW10gbGlzdCkgeworICAgICAgICBzID0gcy50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAocy5lcXVhbHMobGlzdFtpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgY29weUFuZEZpeFF1b3RlcyhTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBlbmQsIFN0cmluZ0J1ZmZlciB0YXJnZXQpIHsKKyAgICAgICAgLy8gYWRkZWQgJ2dvdExCJyBsb2dpYyBmcm9tIElDVTRDIC0gcXVlc3Rpb25hYmxlIFthbGFuXQorICAgICAgICBib29sZWFuIGdvdExCID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAneycpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCIneyciKTsKKyAgICAgICAgICAgICAgICBnb3RMQiA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICd9JykgeworICAgICAgICAgICAgICAgIGlmIChnb3RMQikgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgZ290TEIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCInfSciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCInJyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFmdGVyIHJlYWRpbmcgYW4gb2JqZWN0IGZyb20gdGhlIGlucHV0IHN0cmVhbSwgZG8gYSBzaW1wbGUgdmVyaWZpY2F0aW9uCisgICAgICogdG8gbWFpbnRhaW4gY2xhc3MgaW52YXJpYW50cy4KKyAgICAgKiBAdGhyb3dzIEludmFsaWRPYmplY3RFeGNlcHRpb24gaWYgdGhlIG9iamVjdHMgcmVhZCBmcm9tIHRoZSBzdHJlYW0gaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgaW4uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgYm9vbGVhbiBpc1ZhbGlkID0gbWF4T2Zmc2V0ID49IC0xCisgICAgICAgICAgICAgICAgJiYgZm9ybWF0cy5sZW5ndGggPiBtYXhPZmZzZXQKKyAgICAgICAgICAgICAgICAmJiBvZmZzZXRzLmxlbmd0aCA+IG1heE9mZnNldAorICAgICAgICAgICAgICAgICYmIGFyZ3VtZW50TnVtYmVycy5sZW5ndGggPiBtYXhPZmZzZXQ7CisgICAgICAgIGlmIChpc1ZhbGlkKSB7CisgICAgICAgICAgICBpbnQgbGFzdE9mZnNldCA9IHBhdHRlcm4ubGVuZ3RoKCkgKyAxOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1heE9mZnNldDsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKG9mZnNldHNbaV0gPCAwKSB8fCAob2Zmc2V0c1tpXSA+IGxhc3RPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldHNbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaXNWYWxpZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkNvdWxkIG5vdCByZWNvbnN0cnVjdCBNZXNzYWdlRm9ybWF0IGZyb20gY29ycnVwdCBzdHJlYW0uIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdWxvY2FsZSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNJTkdMRV9RVU9URSA9ICdcJyc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJMWV9CUkFDRV9MRUZUID0gJ3snOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSTFlfQlJBQ0VfUklHSFQgPSAnfSc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfSU5JVElBTCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX1NJTkdMRV9RVU9URSA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX0lOX1FVT1RFID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfTVNHX0VMRU1FTlQgPSAzOworCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dGVybiBpbnRvIGEgc3RhbmRhcmQKKyAgICAgKiBwYXR0ZXJuLiAgU3RhbmRhcmQgcGF0dGVybnMgdHJlYXQgYWxsIGFwb3N0cm9waGVzIGFzCisgICAgICogcXVvdGVzLCB3aGljaCBpcyBwcm9ibGVtYXRpYyBpbiBzb21lIGxhbmd1YWdlcywgZS5nLiAKKyAgICAgKiBGcmVuY2gsIHdoZXJlIGFwb3N0cm9waGUgaXMgY29tbW9ubHkgdXNlZC4gIFRoaXMgdXRpbGl0eQorICAgICAqIGFzc3VtZXMgdGhhdCBvbmx5IGFuIHVucGFpcmVkIGFwb3N0cm9waGUgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICogYSBicmFjZSBpcyBhIHRydWUgcXVvdGUuICBPdGhlciB1bnBhaXJlZCBhcG9zdHJvcGhlcyBhcmUgcGFpcmVkLAorICAgICAqIGFuZCB0aGUgcmVzdWx0aW5nIHN0YW5kYXJkIHBhdHRlcm4gc3RyaW5nIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogPHA+PGI+Tm90ZTwvYj4gaXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdCB0aGUgcmV0dXJuZWQgcGF0dGVybgorICAgICAqIGlzIGluZGVlZCBhIHZhbGlkIHBhdHRlcm4uICBUaGUgb25seSBlZmZlY3QgaXMgdG8gY29udmVydAorICAgICAqIGJldHdlZW4gcGF0dGVybnMgaGF2aW5nIGRpZmZlcmVudCBxdW90aW5nIHNlbWFudGljcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dHRlcm4gdG8gY29udmVydAorICAgICAqIEByZXR1cm4gdGhlIHN0YW5kYXJkIGVxdWl2YWxlbnQgb2YgdGhlIG9yaWdpbmFsIHBhdHRlcm4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1dG9RdW90ZUFwb3N0cm9waGUoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0dGVybi5sZW5ndGgoKSoyKTsKKyAgICAgICAgaW50IHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgaW50IGJyYWNlQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMCwgaiA9IHBhdHRlcm4ubGVuZ3RoKCk7IGkgPCBqOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBTVEFURV9JTklUSUFMOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX1NJTkdMRV9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX01TR19FTEVNRU5UOworICAgICAgICAgICAgICAgICAgICArK2JyYWNlQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU1RBVEVfU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX1JJR0hUOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTVEFURV9JTl9RVU9URToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNUQVRFX01TR19FTEVNRU5UOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICAgKyticmFjZUNvdW50OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX1JJR0hUOgorICAgICAgICAgICAgICAgICAgICBpZiAoLS1icmFjZUNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiAvLyBOZXZlciBoYXBwZW5zLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICAvLyBFbmQgb2Ygc2NhbgorICAgICAgICBpZiAoc3RhdGUgPT0gU1RBVEVfU0lOR0xFX1FVT1RFIHx8IHN0YXRlID09IFNUQVRFX0lOX1FVT1RFKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1NDA3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YQpAQCAtMCwwICsxLDEzMzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworaW1wb3J0IGphdmEudGV4dC4qOworCisvKioKKyAqIEEgY2xhc3MgcmVwcmVzbnRpbmcgYSBzaW5nbGUgcnVsZSBpbiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdC4gIEEgcnVsZQorICogaW5zZXJ0cyBpdHMgdGV4dCBpbnRvIHRoZSByZXN1bHQgc3RyaW5nIGFuZCB0aGVuIHBhc3NlcyBjb250cm9sIHRvIGl0cworICogc3Vic3RpdHV0aW9ucywgd2hpY2ggZG8gdGhlIHNhbWUgdGhpbmcuCisgKi8KK2ZpbmFsIGNsYXNzIE5GUnVsZSB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FR0FUSVZFX05VTUJFUl9SVUxFID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhbiBpbXByb3BlciBmcmFjdGlvbiAoeC54KSBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU1QUk9QRVJfRlJBQ1RJT05fUlVMRSA9IC0yOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYSBwcm9wZXIgZnJhY3Rpb24gKDAueCkgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBST1BFUl9GUkFDVElPTl9SVUxFID0gLTM7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhIG1hc3RlciBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFTVEVSX1JVTEUgPSAtNDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgYmFzZVZhbHVlOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyByYWRpeCAodGhlIHJhZGl4IHRvIHRoZSBwb3dlciBvZiB0aGUgZXhwb25lbnQgZXF1YWxzCisgICAgICogdGhlIHJ1bGUncyBkaXZpc29yKQorICAgICAqLworICAgIHByaXZhdGUgaW50IHJhZGl4ID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGV4cG9uZW50ICh0aGUgcmFkeCByYXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uc250CisgICAgICogZXF1YWxzIHRoZSBydWxlJ3MgZGl2aXNvcikKKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IGV4cG9uZW50ID0gMDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgcnVsZSB0ZXh0LiAgV2hlbiBmb3JtYXR0aW5nIGEgbnVtYmVyLCB0aGUgcnVsZSdzIHRleHQKKyAgICAgKiBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHQgc3RyaW5nLCBhbmQgdGhlbiB0aGUgdGV4dCBmcm9tIGFueQorICAgICAqIHN1YnN0aXR1dGlvbnMgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHJ1bGVUZXh0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgZmlyc3Qgc3Vic3RpdHV0aW9uICh0aGUgb25lIHdpdGggdGhlIGxvd2VyIG9mZnNldAorICAgICAqIGludG8gdGhlIHJ1bGUgdGV4dCkKKyAgICAgKi8KKyAgICBwcml2YXRlIE5GU3Vic3RpdHV0aW9uIHN1YjEgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyBzZWNvbmQgc3Vic3RpdHV0aW9uICh0aGUgb25lIHdpdGggdGhlIGhpZ2hlciBvZmZzZXQKKyAgICAgKiBpbnRvIHRoZSBydWxlIHRleHQpCisgICAgICovCisgICAgcHJpdmF0ZSBORlN1YnN0aXR1dGlvbiBzdWIyID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoaXMgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBydWxlcyBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24gcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUocykuCisgICAgICogQHBhcmFtIG93bmVyIFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoZSBuZXcgcnVsZShzKS4KKyAgICAgKiBAcGFyYW0gcHJlZGVjZXNzb3IgVGhlIHJ1bGUgdGhhdCBwcmVjZWRlcyB0aGUgbmV3IG9uZShzKSBpbiAib3duZXIiJ3MKKyAgICAgKiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IG93bnMgdGhlCisgICAgICogcnVsZSBzZXQgdGhhdCBvd25zIHRoZSBuZXcgcnVsZShzKQorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgTkZSdWxlLCBvciBhbiBhcnJheSBvZiBORlJ1bGVzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgbWFrZVJ1bGVzKFN0cmluZyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0ICAgICAgICAgICAgIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcnNPd25lcikgeworICAgICAgICAvLyB3ZSBrbm93IHdlJ3JlIG1ha2luZyBhdCBsZWFzdCBvbmUgcnVsZSwgc28gZ28gYWhlYWQgYW5kCisgICAgICAgIC8vIG5ldyBpdCB1cCBhbmQgaW5pdGlhbGl6ZSBpdHMgYmFzZXZhbHVlIGFuZCBkaXZpc29yCisgICAgICAgIC8vICh0aGlzIGFsc28gc3RyaXBzIHRoZSBydWxlIGRlc2NyaXB0b3IsIGlmIGFueSwgb2ZmIHRoZQorICAgICAgICAvLyBkZXNjcmlwdG9uIHN0cmluZykKKyAgICAgICAgTkZSdWxlIHJ1bGUxID0gbmV3IE5GUnVsZShvd25lcnNPd25lcik7CisgICAgICAgIGRlc2NyaXB0aW9uID0gcnVsZTEucGFyc2VSdWxlRGVzY3JpcHRvcihkZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gY2hlY2sgdGhlIGRlc2NyaXB0aW9uIHRvIHNlZSB3aGV0aGVyIHRoZXJlJ3MgdGV4dCBlbmNsb3NlZAorICAgICAgICAvLyBpbiBicmFja2V0cworICAgICAgICBpbnQgYnJhY2sxID0gZGVzY3JpcHRpb24uaW5kZXhPZigiWyIpOworICAgICAgICBpbnQgYnJhY2syID0gZGVzY3JpcHRpb24uaW5kZXhPZigiXSIpOworCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0IGNvbnRhaW4gYSBtYXRjaGVkIHBhaXIgb2YgYnJhY2tldHMsCisgICAgICAgIC8vIG9yIGlmIGl0J3Mgb2YgYSB0eXBlIHRoYXQgZG9lc24ndCByZWNvZ25pemUgYnJhY2tldGVkIHRleHQsCisgICAgICAgIC8vIHRoZW4gbGVhdmUgdGhlIGRlc2NyaXB0aW9uIGFsb25lLCBpbml0aWFsaXplIHRoZSBydWxlJ3MKKyAgICAgICAgLy8gcnVsZSB0ZXh0IGFuZCBzdWJzdGl0dXRpb25zLCBhbmQgcmV0dXJuIHRoYXQgcnVsZQorICAgICAgICBpZiAoYnJhY2sxID09IC0xIHx8IGJyYWNrMiA9PSAtMSB8fCBicmFjazEgPiBicmFjazIKKyAgICAgICAgICAgIHx8IHJ1bGUxLmdldEJhc2VWYWx1ZSgpID09IFBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICB8fCBydWxlMS5nZXRCYXNlVmFsdWUoKSA9PSBORUdBVElWRV9OVU1CRVJfUlVMRSkgeworICAgICAgICAgICAgcnVsZTEucnVsZVRleHQgPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIHJ1bGUxLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgICAgICAgICAgcmV0dXJuIHJ1bGUxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXMgY29udGFpbiBhIG1hdGNoZWQgcGFpciBvZiBicmFja2V0cywKKyAgICAgICAgICAgIC8vIHRoZW4gaXQncyByZWFsbHkgc2hvcnRoYW5kIGZvciB0d28gcnVsZXMgKHdpdGggb25lIGV4Y2VwdGlvbikKKyAgICAgICAgICAgIE5GUnVsZSBydWxlMiA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2J1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAgICAgLy8gd2UnbGwgYWN0dWFsbHkgb25seSBzcGxpdCB0aGUgcnVsZSBpbnRvIHR3byBydWxlcyBpZiBpdHMKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiBpdHMgZGl2aXNvciAob3IgaXQncyBvbmUKKyAgICAgICAgICAgIC8vIG9mIHRoZSBzcGVjaWFsIHJ1bGVzKQorICAgICAgICAgICAgaWYgKChydWxlMS5iYXNlVmFsdWUgPiAwCisgICAgICAgICAgICAgICAgICYmIHJ1bGUxLmJhc2VWYWx1ZSAlIChNYXRoLnBvdyhydWxlMS5yYWRpeCwgcnVsZTEuZXhwb25lbnQpKSA9PSAwKQorICAgICAgICAgICAgICAgIHx8IHJ1bGUxLmJhc2VWYWx1ZSA9PSBJTVBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgfHwgcnVsZTEuYmFzZVZhbHVlID09IE1BU1RFUl9SVUxFKSB7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBwYXNzZXMgdGhhdCB0ZXN0LCBuZXcgdXAgdGhlIHNlY29uZCBydWxlLiAgSWYgdGhlCisgICAgICAgICAgICAgICAgLy8gcnVsZSBzZXQgYm90aCBydWxlcyB3aWxsIGJlbG9uZyB0byBpcyBhIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgICAgICAvLyBzZXQsIHRoZXkgYm90aCBoYXZlIHRoZSBzYW1lIGJhc2UgdmFsdWU7IG90aGVyd2lzZSwKKyAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIG9yaWdpbmFsIHJ1bGUncyBiYXNlIHZhbHVlICgicnVsZTEiIGFjdHVhbGx5CisgICAgICAgICAgICAgICAgLy8gZ29lcyBTRUNPTkQgaW4gdGhlIHJ1bGUgc2V0J3MgcnVsZSBsaXN0KQorICAgICAgICAgICAgICAgIHJ1bGUyID0gbmV3IE5GUnVsZShvd25lcnNPd25lcik7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUxLmJhc2VWYWx1ZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUyLmJhc2VWYWx1ZSA9IHJ1bGUxLmJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFvd25lci5pc0ZyYWN0aW9uU2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcnVsZTEuYmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGJlZ2FuIHdpdGggIngueCIgYW5kIGNvbnRhaW5zIGJyYWNrZXRlZAorICAgICAgICAgICAgICAgIC8vIHRleHQsIGl0IGRlc2NyaWJlcyBib3RoIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlIGFuZAorICAgICAgICAgICAgICAgIC8vIHRoZSBwcm9wZXIgZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUxLmJhc2VWYWx1ZSA9PSBJTVBST1BFUl9GUkFDVElPTl9SVUxFKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUyLmJhc2VWYWx1ZSA9IFBST1BFUl9GUkFDVElPTl9SVUxFOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdhbiB3aXRoICJ4LjAiIGFuZCBjb250YWlucyBicmFja2V0ZWQKKyAgICAgICAgICAgICAgICAvLyB0ZXh0LCBpdCBkZXNjcmliZXMgYm90aCB0aGUgbWFzdGVyIHJ1bGUgYW5kIHRoZQorICAgICAgICAgICAgICAgIC8vIGltcHJvcGVyIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChydWxlMS5iYXNlVmFsdWUgPT0gTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZTIuYmFzZVZhbHVlID0gcnVsZTEuYmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICBydWxlMS5iYXNlVmFsdWUgPSBJTVBST1BFUl9GUkFDVElPTl9SVUxFOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGJvdGggcnVsZXMgaGF2ZSB0aGUgc2FtZSByYWRpeCBhbmQgZXhwb25lbnQgKGkuZS4sIHRoZQorICAgICAgICAgICAgICAgIC8vIHNhbWUgZGl2aXNvcikKKyAgICAgICAgICAgICAgICBydWxlMi5yYWRpeCA9IHJ1bGUxLnJhZGl4OworICAgICAgICAgICAgICAgIHJ1bGUyLmV4cG9uZW50ID0gcnVsZTEuZXhwb25lbnQ7CisKKyAgICAgICAgICAgICAgICAvLyBydWxlMidzIHJ1bGUgdGV4dCBvbWl0cyB0aGUgc3R1ZmYgaW4gYnJhY2tldHM6IGluaXRhbGl6ZQorICAgICAgICAgICAgICAgIC8vIGl0cyBydWxlIHRleHQgYW5kIHN1YnN0aXR1dGlvbnMgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgYnJhY2sxKSk7CisgICAgICAgICAgICAgICAgaWYgKGJyYWNrMiArIDEgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoYnJhY2syICsgMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBydWxlMi5ydWxlVGV4dCA9IHNidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBydWxlMi5leHRyYWN0U3Vic3RpdHV0aW9ucyhvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcnVsZTEncyB0ZXh0IGluY2x1ZGVzIHRoZSB0ZXh0IGluIHRoZSBicmFja2V0cyBidXQgb21pdHMKKyAgICAgICAgICAgIC8vIHRoZSBicmFja2V0cyB0aGVtc2VsdmVzOiBpbml0aWFsaXplIF9pdHNfIHJ1bGUgdGV4dCBhbmQKKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgIHNidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIGJyYWNrMSkpOworICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGJyYWNrMSArIDEsIGJyYWNrMikpOworICAgICAgICAgICAgaWYgKGJyYWNrMiArIDEgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhicmFjazIgKyAxKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydWxlMS5ydWxlVGV4dCA9IHNidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHJ1bGUxLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBvbmx5IGhhdmUgb25lIHJ1bGUsIHJldHVybiBpdDsgaWYgd2UgaGF2ZSB0d28sIHJldHVybgorICAgICAgICAgICAgLy8gYSB0d28tZWxlbWVudCBhcnJheSBjb250YWluaW5nIHRoZW0gKG5vdGljZSB0aGF0IHJ1bGUyIGdvZXMKKyAgICAgICAgICAgIC8vIEJFRk9SRSBydWxlMSBpbiB0aGUgbGlzdDogaW4gYWxsIGNhc2VzLCBydWxlMiBPTUlUUyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGVyaWFsIGluIHRoZSBicmFja2V0cyBhbmQgcnVsZTEgSU5DTFVERVMgdGhlIG1hdGVyaWFsCisgICAgICAgICAgICAvLyBpbiB0aGUgYnJhY2tldHMpCisgICAgICAgICAgICBpZiAocnVsZTIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBydWxlMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBORlJ1bGVbXSB7IHJ1bGUyLCBydWxlMSB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTm9taW5hbCBjb25zdHJ1Y3RvciBmb3IgTkZSdWxlLiAgTW9zdCBvZiB0aGUgd29yayBvZiBjb25zdHJ1Y3RpbmcKKyAgICAgKiBhbiBORlJ1bGUgaXMgYWN0dWFsbHkgcGVyZm9ybWVkIGJ5IG1ha2VSdWxlcygpLgorICAgICAqLworICAgIHB1YmxpYyBORlJ1bGUoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcikgeworICAgICAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgcnVsZSdzIHJ1bGUgZGVzY3JpcHRvciAoaS5lLiwgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBhbmQvb3Igb3RoZXIgdG9rZW5zIHRoYXQgcHJlY2VkZSB0aGUgcnVsZSdzIHJ1bGUgdGV4dAorICAgICAqIGluIHRoZSBkZXNjcmlwdGlvbikgYW5kIHNldHMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLCByYWRpeCwgYW5kCisgICAgICogZXhwb25lbnQgYWNjb3JkaW5nIHRvIHRoZSBkZXNjcmlwdG9yLiAgKElmIHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0CisgICAgICogaW5jbHVkZSBhIHJ1bGUgZGVzY3JpcHRvciwgdGhlbiB0aGlzIGZ1bmN0aW9uIHNldHMgZXZlcnl0aGluZyB0bworICAgICAqIGRlZmF1bHQgdmFsdWVzIGFuZCB0aGUgcnVsZSBzZXQgc2V0cyB0aGUgcnVsZSdzIHJlYWwgYmFzZSB2YWx1ZSkuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBydWxlJ3MgZGVzY3JpcHRpb24KKyAgICAgKiBAcmV0dXJuIElmICJkZXNjcmlwdGlvbiIgaW5jbHVkZWQgYSBydWxlIGRlc2NyaXB0b3IsIHRoaXMgaXMKKyAgICAgKiAiZGVzY3JpcHRpb24iIHdpdGggdGhlIGRlc2NyaXB0b3IgYW5kIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICogc3RyaXBwZWQgb2ZmLiAgT3RoZXJ3aXNlOyBpdCdzICJkZXNjcmlwdG9yIiB1bmNoYW5nZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXJzZVJ1bGVEZXNjcmlwdG9yKFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBTdHJpbmcgZGVzY3JpcHRvcjsKKworICAgICAgICAvLyB0aGUgZGVzY3JpcHRpb24gY29uc2lzdHMgb2YgYSBydWxlIGRlc2NyaXB0b3IgYW5kIGEgcnVsZSBib2R5LAorICAgICAgICAvLyBzZXBhcmF0ZWQgYnkgYSBjb2xvbi4gIFRoZSBydWxlIGRlc2NyaXB0b3IgaXMgb3B0aW9uYWwuICBJZgorICAgICAgICAvLyBpdCdzIG9taXR0ZWQsIGp1c3Qgc2V0IHRoZSBiYXNlIHZhbHVlIHRvIDAuCisgICAgICAgIGludCBwID0gZGVzY3JpcHRpb24uaW5kZXhPZigiOiIpOworICAgICAgICBpZiAocCA9PSAtMSkgeworICAgICAgICAgICAgc2V0QmFzZVZhbHVlKDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gY29weSB0aGUgZGVzY3JpcHRvciBvdXQgaW50byBpdHMgb3duIHN0cmluZyBhbmQgc3RyaXAgaXQsCisgICAgICAgICAgICAvLyBhbG9uZyB3aXRoIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlLCBvdXQgb2YgdGhlIG9yaWdpbmFsCisgICAgICAgICAgICAvLyBkZXNjcmlwdGlvbgorICAgICAgICAgICAgZGVzY3JpcHRvciA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBwKTsKKyAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkgJiYgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoZGVzY3JpcHRpb24uY2hhckF0KHApKSkKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhwKTsKKworICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgdG8gc2VlIGlmIHRoZSBydWxlIGRlc2NyaXB0b3IgbWF0Y2hlcyB0aGUgdG9rZW4KKyAgICAgICAgICAgIC8vIGZvciBvbmUgb2YgdGhlIHNwZWNpYWwgcnVsZXMuICBJZiBpdCBkb2VzLCBzZXQgdGhlIGJhc2UKKyAgICAgICAgICAgIC8vIHZhbHVlIHRvIHRoZSBjb3JyZWN0IGlkZW50ZmllciB2YWx1ZQorICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCIteCIpKSB7CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKE5FR0FUSVZFX05VTUJFUl9SVUxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCJ4LngiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShJTVBST1BFUl9GUkFDVElPTl9SVUxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCIwLngiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShQUk9QRVJfRlJBQ1RJT05fUlVMRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmVxdWFscygieC4wIikpIHsKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoTUFTVEVSX1JVTEUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBkZXNjcmlwdG9yIGJlZ2lucyB3aXRoIGEgZGlnaXQsIGl0J3MgYSBkZXNjcmlwdG9yCisgICAgICAgICAgICAvLyBmb3IgYSBub3JtYWwgcnVsZQorICAgICAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5jaGFyQXQoMCkgPj0gJzAnICYmIGRlc2NyaXB0b3IuY2hhckF0KDApIDw9ICc5JykgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wVmFsdWUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgcCA9IDA7CisgICAgICAgICAgICAgICAgY2hhciBjID0gJyAnOworCisgICAgICAgICAgICAgICAgLy8gYmVnaW4gcGFyc2luZyB0aGUgZGVzY3JpcHRvcjogY29weSBkaWdpdHMKKyAgICAgICAgICAgICAgICAvLyBpbnRvICJ0ZW1wVmFsdWUiLCBza2lwIHBlcmlvZHMsIGNvbW1hcywgYW5kIHNwYWNlcywKKyAgICAgICAgICAgICAgICAvLyBzdG9wIG9uIGEgc2xhc2ggb3IgPiBzaWduIChvciBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcpLAorICAgICAgICAgICAgICAgIC8vIGFuZCB0aHJvdyBhbiBleGNlcHRpb24gb24gYW55IG90aGVyIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRvci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBjID0gZGVzY3JpcHRvci5jaGFyQXQocCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFZhbHVlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICcvJyB8fCBjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykgfHwgYyA9PSAnLCcgfHwgYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGluIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB0ZW1wVmFsdWUgbm93IGNvbnRhaW5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIHJ1bGUncyBiYXNlIHZhbHVlIHdpdGggdGhlIHB1bmN0dWF0aW9uIHN0cmlwcGVkIG91dC4KKyAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIGFjY29yZGluZ2x5CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKExvbmcucGFyc2VMb25nKHRlbXBWYWx1ZS50b1N0cmluZygpKSk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdG9wcGVkIHRoZSBwcmV2aW91cyBsb29wIG9uIGEgc2xhc2gsIHdlJ3JlCisgICAgICAgICAgICAgICAgLy8gbm93IHBhcnNpbmcgdGhlIHJ1bGUncyByYWRpeC4gIEFnYWluLCBhY2N1bXVsYXRlIGRpZ2l0cworICAgICAgICAgICAgICAgIC8vIGluIHRlbXBWYWx1ZSwgc2tpcCBwdW5jdHVhdGlvbiwgc3RvcCBvbiBhID4gbWFyaywgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIG9uIGFueXRoaW5nIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFZhbHVlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0b3IubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBkZXNjcmlwdG9yLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWYWx1ZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykgfHwgYyA9PSAnLCcgfHwgYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGlzIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVtcFZhbHVlIG5vdyBjb250YWluJ3MgdGhlIHJ1bGUncyByYWRpeC4gIFNldCBpdAorICAgICAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmdseSwgYW5kIHJlY2FsY3VsYXRlIHRoZSBydWxlJ3MgZXhwb25lbnQKKyAgICAgICAgICAgICAgICAgICAgcmFkaXggPSBJbnRlZ2VyLnBhcnNlSW50KHRlbXBWYWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhZGl4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGUgY2FuJ3QgaGF2ZSByYWRpeCBvZiAwIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSBleHBlY3RlZEV4cG9uZW50KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RvcHBlZCB0aGUgcHJldmlvdXMgbG9vcCBvbiBhID4gc2lnbiwgdGhlbiBjb250aW51ZQorICAgICAgICAgICAgICAgIC8vIGZvciBhcyBsb25nIGFzIHdlIHN0aWxsIHNlZSA+IHNpZ25zLiAgRm9yIGVhY2ggb25lLAorICAgICAgICAgICAgICAgIC8vIGRlY3JlbWVudCB0aGUgZXhwb25lbnQgKHVubGVzcyB0aGUgZXhwb25lbnQgaXMgYWxyZWFkeSAwKS4KKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBzZWUgYW5vdGhlciBjaGFyYWN0ZXIgYmVmb3JlIHJlYWNoaW5nIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVzY3JpcHRvciwgdGhhdCdzIGFsc28gYSBzeW50YXggZXJyb3IuCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRvci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGRlc2NyaXB0b3IuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nICYmIGV4cG9uZW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZXhwb25lbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGluIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgaWYgdGhlIHJ1bGUgYm9keSBiZWdpbnMgd2l0aCBhbiBhcG9zdHJvcGhlLCBzdHJpcCBpdCBvZmYKKyAgICAgICAgLy8gKHRoaXMgaXMgZ2VuZXJhbGx5IHVzZWQgdG8gcHV0IHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAvLyBhIHJ1bGUncyBydWxlIHRleHQpCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA+IDAgJiYgZGVzY3JpcHRpb24uY2hhckF0KDApID09ICdcJycpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB3aXRoIGFsbCB0aGUgc3R1ZmYgd2UndmUganVzdCB3YWRlZCB0aHJvdWdoCisgICAgICAgIC8vIHN0cmlwcGVkIG9mZiB0aGUgZnJvbnQuICBJdCBub3cgY29udGFpbnMganVzdCB0aGUgcnVsZSBib2R5LgorICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgdGhlIHJ1bGUncyBydWxlIHRleHQgZm9yIHRoZSBzdWJzdGl0dXRpb24gdG9rZW5zLAorICAgICAqIGNyZWF0ZXMgdGhlIHN1YnN0aXR1dGlvbnMsIGFuZCByZW1vdmVzIHRoZSBzdWJzdGl0dXRpb24gdG9rZW5zCisgICAgICogZnJvbSB0aGUgcnVsZSdzIHJ1bGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gb3duZXIgVGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBydWxlCisgICAgICogQHBhcmFtIHByZWRlY2Vzc29yIFRoZSBydWxlIHByZXNlZGluZyB0aGlzIG9uZSBpbiAib3duZXJzIiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZEZvcm1hdCB0aGF0IG93bnMgdGhpcyBydWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4dHJhY3RTdWJzdGl0dXRpb25zKE5GUnVsZVNldCAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXJzT3duZXIpIHsKKyAgICAgICAgc3ViMSA9IGV4dHJhY3RTdWJzdGl0dXRpb24ob3duZXIsIHByZWRlY2Vzc29yLCBvd25lcnNPd25lcik7CisgICAgICAgIHN1YjIgPSBleHRyYWN0U3Vic3RpdHV0aW9uKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciB0aGUgZmlyc3Qgc3Vic3RpdHV0aW9uIHRva2VuLAorICAgICAqIGNyZWF0ZXMgYSBzdWJzdGl0dXRpb24gYmFzZWQgb24gaXQsIGFuZCByZW1vdmVzIHRoZSB0b2tlbiBmcm9tCisgICAgICogdGhlIHJ1bGUncyBydWxlIHRleHQuCisgICAgICogQHBhcmFtIG93bmVyIFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoaXMgcnVsZQorICAgICAqIEBwYXJhbSBwcmVkZWNlc3NvciBUaGUgcnVsZSBwcmVjZWRpbmcgdGhpcyBvbmUgaW4gdGhlIHJ1bGUgc2V0J3MKKyAgICAgKiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IG93bnMgdGhpcyBydWxlCisgICAgICogQHJldHVybiBUaGUgbmV3bHktY3JlYXRlZCBzdWJzdGl0dXRpb24uICBUaGlzIGlzIG5ldmVyIG51bGw7IGlmCisgICAgICogdGhlIHJ1bGUgdGV4dCBkb2Vzbid0IGNvbnRhaW4gYW55IHN1YnN0aXR1dGlvbiB0b2tlbnMsIHRoaXMgd2lsbAorICAgICAqIGJlIGEgTnVsbFN1YnN0aXR1dGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIE5GU3Vic3RpdHV0aW9uIGV4dHJhY3RTdWJzdGl0dXRpb24oTkZSdWxlU2V0ICAgICAgICAgICAgIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcnNPd25lcikgeworICAgICAgICBORlN1YnN0aXR1dGlvbiByZXN1bHQgPSBudWxsOworICAgICAgICBpbnQgc3ViU3RhcnQ7CisgICAgICAgIGludCBzdWJFbmQ7CisKKyAgICAgICAgLy8gc2VhcmNoIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YKKyAgICAgICAgLy8gYSBzdWJzdGl0dXRpb24gdG9rZW4KKyAgICAgICAgc3ViU3RhcnQgPSBpbmRleE9mQW55KG5ldyBTdHJpbmdbXSB7ICI8PCIsICI8JSIsICI8IyIsICI8MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPj4iLCAiPiUiLCAiPiMiLCAiPjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj0lIiwgIj0jIiwgIj0wIiB9ICk7CisKKyAgICAgICAgLy8gaWYgd2UgZGlkbid0IGZpbmQgb25lLCBjcmVhdGUgYSBudWxsIHN1YnN0aXR1dGlvbiBwb3NpdGlvbmVkCisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIHJ1bGUgdGV4dAorICAgICAgICBpZiAoc3ViU3RhcnQgPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBORlN1YnN0aXR1dGlvbi5tYWtlU3Vic3RpdHV0aW9uKHJ1bGVUZXh0Lmxlbmd0aCgpLCB0aGlzLCBwcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyLCBvd25lcnNPd25lciwgIiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc3BlY2lhbC1jYXNlIHRoZSAiPj4+IiB0b2tlbiwgc2luY2Ugc2VhcmNoaW5nIGZvciB0aGUgPiBhdCB0aGUKKyAgICAgICAgLy8gZW5kIHdpbGwgYWN0dWFsbHkgZmluZCB0aGUgPiBpbiB0aGUgbWlkZGxlCisgICAgICAgIGlmIChydWxlVGV4dC5zdWJzdHJpbmcoc3ViU3RhcnQpLnN0YXJ0c1dpdGgoIj4+PiIpKSB7CisgICAgICAgICAgICBzdWJFbmQgPSBzdWJTdGFydCArIDI7CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGVuZHMgd2l0aCB0aGUgc2FtZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGl0IGJlZ2FuIHdpdGgKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGVUZXh0LmNoYXJBdChzdWJTdGFydCk7CisgICAgICAgICAgICBzdWJFbmQgPSBydWxlVGV4dC5pbmRleE9mKGMsIHN1YlN0YXJ0ICsgMSk7CisgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yICc8JWZvbzw8JworICAgICAgICAgICAgaWYgKGMgPT0gJzwnICYmIHN1YkVuZCAhPSAtMSAmJiBzdWJFbmQgPCBydWxlVGV4dC5sZW5ndGgoKSAtIDEgJiYgcnVsZVRleHQuY2hhckF0KHN1YkVuZCsxKSA9PSBjKSB7CisgICAgICAgICAgICAgICAgLy8gb3JkaW5hbHMgdXNlICI9IywjIzA9PSVhYmJyZXY9IiBhcyB0aGVpciBydWxlLiAgTm90aWNlIHRoYXQgdGhlICc9PScgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgICAgIC8vIG9jY3VycyBiZWNhdXNlIG9mIHRoZSBqdXh0YXBvc2l0aW9uIG9mIHR3byBkaWZmZXJlbnQgcnVsZXMuICBUaGUgY2hlY2sgZm9yICc8JyBpcyBhIGhhY2sKKyAgICAgICAgICAgICAgICAvLyB0byBnZXQgYXJvdW5kIHRoaXMuICBIYXZpbmcgdGhlIGR1cGxpY2F0ZSBhdCB0aGUgZnJvbnQgd291bGQgY2F1c2UgcHJvYmxlbXMgd2l0aAorICAgICAgICAgICAgICAgIC8vIHJ1bGVzIGxpa2UgIjw8JSIgdG8gZm9ybWF0LCBzYXksIHBlcmNlbnRzLi4uCisgICAgICAgICAgICAgICAgKytzdWJFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIHRoZSBlbmQgb2YgdGhlIHRva2VuIChpLmUuLCBpZiB3ZSdyZSBvbiBhIHNpbmdsZSwKKyAgICAgICAgLy8gdW5tYXRjaGVkIHRva2VuIGNoYXJhY3RlciksIGNyZWF0ZSBhIG51bGwgc3Vic3RpdHV0aW9uIHBvc2l0aW9uZWQKKyAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgcnVsZQorICAgICAgICBpZiAoc3ViRW5kID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihydWxlVGV4dC5sZW5ndGgoKSwgdGhpcywgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lciwgb3duZXJzT3duZXIsICIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIGdldCBoZXJlLCB3ZSBoYXZlIGEgcmVhbCBzdWJzdGl0dXRpb24gdG9rZW4gKG9yIGF0IGxlYXN0CisgICAgICAgIC8vIHNvbWUgdGV4dCBib3VuZGVkIGJ5IHN1YnN0aXR1dGlvbiB0b2tlbiBjaGFyYWN0ZXJzKS4gIFVzZQorICAgICAgICAvLyBtYWtlU3Vic3RpdHV0aW9uKCkgdG8gY3JlYXRlIHRoZSByaWdodCBraW5kIG9mIHN1YnN0aXR1dGlvbgorICAgICAgICByZXN1bHQgPSBORlN1YnN0aXR1dGlvbi5tYWtlU3Vic3RpdHV0aW9uKHN1YlN0YXJ0LCB0aGlzLCBwcmVkZWNlc3Nvciwgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXJzT3duZXIsIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWJTdGFydCwgc3ViRW5kICsgMSkpOworCisgICAgICAgIC8vIHJlbW92ZSB0aGUgc3Vic3RpdHV0aW9uIGZyb20gdGhlIHJ1bGUgdGV4dAorICAgICAgICBydWxlVGV4dCA9IHJ1bGVUZXh0LnN1YnN0cmluZygwLCBzdWJTdGFydCkgKyBydWxlVGV4dC5zdWJzdHJpbmcoc3ViRW5kICsgMSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUsIGFuZCBjYXVzZXMgdGhlIHJhZGl4IGFuZCBleHBvbmVudAorICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZC4gIFRoaXMgaXMgdXNlZCBkdXJpbmcgY29uc3RydWN0aW9uIHdoZW4gd2UKKyAgICAgKiBkb24ndCBrbm93IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSB1bnRpbCBhZnRlciBpdCdzIGJlZW4KKyAgICAgKiBjb25zdHJ1Y3RlZC4gIEl0IHNob3VsZCBub3QgYmUgdXNlZCBhdCBhbnkgb3RoZXIgdGltZS4KKyAgICAgKiBAcGFyYW0gVGhlIG5ldyBiYXNlIHZhbHVlIGZvciB0aGUgcnVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRCYXNlVmFsdWUobG9uZyBuZXdCYXNlVmFsdWUpIHsKKyAgICAgICAgLy8gc2V0IHRoZSBiYXNlIHZhbHVlCisgICAgICAgIGJhc2VWYWx1ZSA9IG5ld0Jhc2VWYWx1ZTsKKworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgc3BlY2lhbCBydWxlLCByZWNhbGN1bGF0ZSB0aGUgcmFkaXggYW5kIGV4cG9uZW50CisgICAgICAgIC8vICh0aGUgcmFkaXggYWx3YXlzIGRlZmF1bHRzIHRvIDEwOyBpZiBpdCdzIHN1cHBvc2VkIHRvIGJlIHNvbWV0aGluZworICAgICAgICAvLyBlbHNlLCBpdCdzIGNsZWFuZWQgdXAgYnkgdGhlIGNhbGxlciBhbmQgdGhlIGV4cG9uZW50IGlzCisgICAgICAgIC8vIHJlY2FsY3VsYXRlZCBhZ2Fpbi0tIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgZG9lcyB0aGlzIGlzCisgICAgICAgIC8vIE5GUnVsZS5wYXJzZVJ1bGVEZXNjcmlwdG9yKCkgKQorICAgICAgICBpZiAoYmFzZVZhbHVlID49IDEpIHsKKyAgICAgICAgICAgIHJhZGl4ID0gMTA7CisgICAgICAgICAgICBleHBvbmVudCA9IGV4cGVjdGVkRXhwb25lbnQoKTsKKworICAgICAgICAgICAgLy8gdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBvbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIHJ1bGUgd2hvc2UKKyAgICAgICAgICAgIC8vIGRlc2NyaXB0aW9uIGRpZG4ndCBzcGVjaWZ5IGEgYmFzZSB2YWx1ZS4gIFRoaXMgbWVhbnMgaXQKKyAgICAgICAgICAgIC8vIGhhcyBzdWJzdGl0dXRpb25zLCBhbmQgc29tZSBzdWJzdGl0dXRpb25zIGhvbGQgb24gdG8gY29waWVzCisgICAgICAgICAgICAvLyBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuICBGaXggdGhlaXIgY29waWVzIG9mIHRoZSBkaXZpc29yLgorICAgICAgICAgICAgaWYgKHN1YjEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN1YjEuc2V0RGl2aXNvcihyYWRpeCwgZXhwb25lbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN1YjIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN1YjIuc2V0RGl2aXNvcihyYWRpeCwgZXhwb25lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIGEgc3BlY2lhbCBydWxlLCBpdHMgcmFkaXggYW5kIGV4cG9uZW50IGFyZSBiYXNpY2FsbHkKKyAgICAgICAgICAgIC8vIGlnbm9yZWQuICBTZXQgdGhlbSB0byAic2FmZSIgZGVmYXVsdCB2YWx1ZXMKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhZGl4ID0gMTA7CisgICAgICAgICAgICBleHBvbmVudCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNhbGN1bGF0ZXMgdGhlIHJ1bGUncyBleHBvbmVudCBiYXNlZCBvbiBpdHMgcmFkaXggYW5kIGJhc2UKKyAgICAgKiB2YWx1ZS4gIFRoaXMgd2lsbCBiZSB0aGUgaGlnaGVzdCBwb3dlciB0aGUgcmFkaXggY2FuIGJlIHJhaXNlZCB0bworICAgICAqIGFuZCBzdGlsbCBwcm9kdWNlIGEgcmVzdWx0IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IGV4cGVjdGVkRXhwb25lbnQoKSB7CisgICAgICAgIC8vIHNpbmNlIHRoZSBsb2cgb2YgMCwgb3IgdGhlIGxvZyBiYXNlIDAgb2Ygc29tZXRoaW5nLCBjYXVzZXMgYW4KKyAgICAgICAgLy8gZXJyb3IsIGRlY2xhcmUgdGhlIGV4cG9uZW50IGluIHRoZXNlIGNhc2VzIHRvIGJlIDAgKHdlIGFsc28KKyAgICAgICAgLy8gZGVhbCB3aXRoIHRoZSBzcGVjaWFsLXJ1bGUgaWRlbnRpZmllcnMgaGVyZSkKKyAgICAgICAgaWYgKHJhZGl4ID09IDAgfHwgYmFzZVZhbHVlIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBnZXQgcm91bmRpbmcgZXJyb3IgaW4gc29tZSBjYXNlcy0tIGZvciBleGFtcGxlLCBsb2cgMTAwMCAvIGxvZyAxMAorICAgICAgICAvLyBnaXZlcyB1cyAxLjk5OTk5OTk5OTYgaW5zdGVhZCBvZiAyLiAgVGhlIGV4dHJhIGxvZ2ljIGhlcmUgaXMgdG8gdGFrZQorICAgICAgICAvLyB0aGF0IGludG8gYWNjb3VudAorICAgICAgICBzaG9ydCB0ZW1wUmVzdWx0ID0gKHNob3J0KShNYXRoLmxvZyhiYXNlVmFsdWUpIC8gTWF0aC5sb2cocmFkaXgpKTsKKyAgICAgICAgaWYgKE1hdGgucG93KHJhZGl4LCB0ZW1wUmVzdWx0ICsgMSkgPD0gYmFzZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3J0KSh0ZW1wUmVzdWx0ICsgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciBhbnkgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBzdHJpbmdzIEFuIGFycmF5IG9mIHN0cmluZ3MgdG8gc2VhcmNoIHRoZSBydWxlJ3MgcnVsZQorICAgICAqIHRleHQgZm9yCisgICAgICogQHJldHVybiBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IG1hdGNoIGluIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogKGkuZS4sIHRoZSBmaXJzdCBzdWJzdHJpbmcgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQgdGhhdCBtYXRjaGVzCisgICAgICogX2FueV8gb2YgdGhlIHN0cmluZ3MgaW4gInN0cmluZ3MiKS4gIElmIG5vbmUgb2YgdGhlIHN0cmluZ3MgaW4KKyAgICAgKiAic3RyaW5ncyIgaXMgZm91bmQgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgaW5kZXhPZkFueShTdHJpbmdbXSBzdHJpbmdzKSB7CisgICAgICAgIGludCBwb3M7CisgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBwb3MgPSBydWxlVGV4dC5pbmRleE9mKHN0cmluZ3NbaV0pOworICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSAmJiAocmVzdWx0ID09IC0xIHx8IHBvcyA8IHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gcnVsZXMgZm9yIGVxdWFsaXR5LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBydWxlIHRvIGNvbXBhcmUgdGhpcyBvbmUgYWdhaW5zdAorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgdHdvIHJ1bGVzIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICBpZiAodGhhdCBpbnN0YW5jZW9mIE5GUnVsZSkgeworICAgICAgICAgICAgTkZSdWxlIHRoYXQyID0gKE5GUnVsZSl0aGF0OworCisgICAgICAgICAgICByZXR1cm4gYmFzZVZhbHVlID09IHRoYXQyLmJhc2VWYWx1ZQorICAgICAgICAgICAgICAgICYmIHJhZGl4ID09IHRoYXQyLnJhZGl4CisgICAgICAgICAgICAgICAgJiYgZXhwb25lbnQgPT0gdGhhdDIuZXhwb25lbnQKKyAgICAgICAgICAgICAgICAmJiBydWxlVGV4dC5lcXVhbHModGhhdDIucnVsZVRleHQpCisgICAgICAgICAgICAgICAgJiYgc3ViMS5lcXVhbHModGhhdDIuc3ViMSkKKyAgICAgICAgICAgICAgICAmJiBzdWIyLmVxdWFscyh0aGF0Mi5zdWIyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJ1bGUuICBUaGlzIHdvbid0CisgICAgICogbmVjZXNzYXJpbHkgYmUgdGhlIHNhbWUgYXMgdGhlIGRlc2NyaXB0aW9uIHRoYXQgdGhpcyBydWxlCisgICAgICogd2FzIGNyZWF0ZWQgd2l0aCwgYnV0IGl0IHdpbGwgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIHN0YXJ0IHdpdGggdGhlIHJ1bGUgZGVzY3JpcHRvci4gIFNwZWNpYWwtY2FzZSB0aGUgc3BlY2lhbCBydWxlcworICAgICAgICBpZiAoYmFzZVZhbHVlID09IE5FR0FUSVZFX05VTUJFUl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIteDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIngueDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IFBST1BFUl9GUkFDVElPTl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIwLng6ICIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGJhc2VWYWx1ZSA9PSBNQVNURVJfUlVMRSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieC4wOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvciBhIG5vcm1hbCBydWxlLCB3cml0ZSBvdXQgaXRzIGJhc2UgdmFsdWUsIGFuZCBpZiB0aGUgcmFkaXggaXMKKyAgICAgICAgLy8gc29tZXRoaW5nIG90aGVyIHRoYW4gMTAsIHdyaXRlIG91dCB0aGUgcmFkaXggKHdpdGggdGhlIHByZWNlZGluZworICAgICAgICAvLyBzbGFzaCwgb2YgY291cnNlKS4gIFRoZW4gY2FsY3VsYXRlIHRoZSBleHBlY3RlZCBleHBvbmVudCBhbmQgaWYKKyAgICAgICAgLy8gaWYgaXNuJ3QgdGhlIHNhbWUgYXMgdGhlIGFjdHVhbCBleHBvbmVudCwgd3JpdGUgYW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gbnVtYmVyIG9mID4gc2lnbnMuICBGaW5hbGx5LCB0ZXJtaW5hdGUgdGhlIHdob2xlIHRoaW5nIHdpdGgKKyAgICAgICAgLy8gYSBjb2xvbi4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZy52YWx1ZU9mKGJhc2VWYWx1ZSkpOworICAgICAgICAgICAgaWYgKHJhZGl4ICE9IDEwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nLnZhbHVlT2YocmFkaXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBudW1DYXJldHMgPSBleHBlY3RlZEV4cG9uZW50KCkgLSBleHBvbmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2FyZXRzOyBpKyspCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnPicpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBydWxlIHRleHQgYmVnaW5zIHdpdGggYSBzcGFjZSwgd3JpdGUgYW4gYXBvc3Ryb3BoZQorICAgICAgICAvLyAod2hpdGVzcGFjZSBhZnRlciB0aGUgcnVsZSBkZXNjcmlwdG9yIGlzIGlnbm9yZWQ7IHRoZQorICAgICAgICAvLyBhcG9zdHJvcGhlIGlzIHVzZWQgdG8gbWFrZSB0aGUgd2hpdGVzcGFjZSBzaWduaWZpY2FudCkKKyAgICAgICAgaWYgKHJ1bGVUZXh0LnN0YXJ0c1dpdGgoIiAiKSAmJiAoc3ViMSA9PSBudWxsIHx8IHN1YjEuZ2V0UG9zKCkgIT0gMCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlwnIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3csIHdyaXRlIHRoZSBydWxlJ3MgcnVsZSB0ZXh0LCBpbnNlcnRpbmcgYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uIHRva2VucyBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlVGV4dENvcHkgPSBuZXcgU3RyaW5nQnVmZmVyKHJ1bGVUZXh0KTsKKyAgICAgICAgcnVsZVRleHRDb3B5Lmluc2VydChzdWIyLmdldFBvcygpLCBzdWIyLnRvU3RyaW5nKCkpOworICAgICAgICBydWxlVGV4dENvcHkuaW5zZXJ0KHN1YjEuZ2V0UG9zKCksIHN1YjEudG9TdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVRleHRDb3B5LnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vIGFuZCBmaW5hbGx5LCB0b3AgdGhlIHdob2xlIHRoaW5nIG9mZiB3aXRoIGEgc2VtaWNvbG9uIGFuZAorICAgICAgICAvLyByZXR1cm4gdGhlIHJlc3VsdAorICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICogQHJldHVybiBUaGUgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgbG9uZyBnZXRCYXNlVmFsdWUoKSB7CisgICAgICAgIHJldHVybiBiYXNlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcnVsZSdzIGRpdmlzb3IgKHRoZSB2YWx1ZSB0aGF0IGNvdHJvbHMgdGhlIGJlaGF2aW9yCisgICAgICogb2YgaXRzIHN1YnN0aXR1dGlvbnMpCisgICAgICogQHJldHVybiBUaGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldERpdmlzb3IoKSB7CisgICAgICAgIHJldHVybiBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgbnVtYmVyLCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0aW5nIHRleHQgaW50bworICAgICAqIHRvSW5zZXJ0SW50by4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dCBzaG91bGQKKyAgICAgKiBiZSBpbnNlcnRlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0YW50IHRleHQKKyAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb0Zvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBmaXJzdCwgaW5zZXJ0IHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGludG8gdG9JbnNlcnRJbnRvIGF0IHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcG9zaXRpb24sIHRoZW4gaW5zZXJ0IHRoZSByZXN1bHRzIG9mIHRoZSBzdWJzdGl0dXRpb25zCisgICAgICAgIC8vIGludG8gdGhlIHJpZ2h0IHBsYWNlcyBpbiB0b0luc2VydEludG8gKG5vdGljZSB3ZSBkbyB0aGUKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9ucyBpbiByZXZlcnNlIG9yZGVyIHNvIHRoYXQgdGhlIG9mZnNldHMgZG9uJ3QgZ2V0CisgICAgICAgIC8vIG1lc3NlZCB1cCkKKyAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MsIHJ1bGVUZXh0KTsKKyAgICAgICAgc3ViMi5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICAgICAgc3ViMS5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBudW1iZXIsIGFuZCBpbnNlcnRzIHRoZSByZXN1bHRpbmcgdGV4dCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2hlcmUgdGhlIHJlc3VsdGFudCB0ZXh0IHNob3VsZAorICAgICAqIGJlIGluc2VydGVkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dAorICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvRm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gZmlyc3QsIGluc2VydCB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBpbnRvIHRvSW5zZXJ0SW50byBhdCB0aGUKKyAgICAgICAgLy8gc3BlY2lmaWVkIHBvc2l0aW9uLCB0aGVuIGluc2VydCB0aGUgcmVzdWx0cyBvZiB0aGUgc3Vic3RpdHV0aW9ucworICAgICAgICAvLyBpbnRvIHRoZSByaWdodCBwbGFjZXMgaW4gdG9JbnNlcnRJbnRvCisgICAgICAgIC8vIFthZ2Fpbiwgd2UgaGF2ZSB0d28gY29waWVzIG9mIHRoaXMgcm91dGluZSB0aGF0IGRvIHRoZSBzYW1lIHRoaW5nCisgICAgICAgIC8vIHNvIHRoYXQgd2UgZG9uJ3Qgc2FjcmlmaWNlIHByZWNpc2lvbiBpbiBhIGxvbmcgYnkgY2FzdGluZyBpdAorICAgICAgICAvLyB0byBhIGRvdWJsZV0KKyAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MsIHJ1bGVUZXh0KTsKKyAgICAgICAgc3ViMi5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICAgICAgc3ViMS5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IHRoZSBvd25pbmcgcnVsZSBzZXQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gaW52b2tlIHRoZQorICAgICAqIHJvbGxiYWNrIHJ1bGUgKGkuZS4sIHdoZXRoZXIgdGhpcyBydWxlIG9yIHRoZSBvbmUgdGhhdCBwcmVjZWRlcworICAgICAqIGl0IGluIHRoZSBydWxlIHNldCdzIGxpc3Qgc2hvdWxkIGJlIHVzZWQgdG8gZm9ybWF0IHRoZSBudW1iZXIpCisgICAgICogQHBhcmFtIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBydWxlIHNldCBzaG91bGQgdXNlIHRoZSBydWxlIHRoYXQgcHJlY2VkZXMKKyAgICAgKiB0aGlzIG9uZSBpbiBpdHMgbGlzdDsgZmFsc2UgaWYgaXQgc2hvdWxkIHVzZSB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzaG91bGRSb2xsQmFjayhkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIHdlIHJvbGwgYmFjayBpZiB0aGUgcnVsZSBjb250YWlucyBhIG1vZHVsdXMgc3Vic3RpdHV0aW9uLAorICAgICAgICAvLyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MKKyAgICAgICAgLy8gZGl2aXNvciwgYW5kIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBpcyBOT1QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiBpdHMgZGl2aXNvcgorICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9uIGhhZAorICAgICAgICAvLyAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTsKKyAgICAgICAgLy8gdGhhdCBleHBhbmRzIGludG8KKyAgICAgICAgLy8gICAgMTAwOiA8PCBodW5kcmVkOworICAgICAgICAvLyAgICAxMDE6IDw8IGh1bmRyZWQgPj47CisgICAgICAgIC8vIGludGVybmFsbHkuICBCdXQgd2hlbiB3ZSdyZSBmb3JtYXR0aW5nIDIwMCwgaWYgd2UgdXNlIHRoZSBydWxlCisgICAgICAgIC8vIGF0IDEwMSwgd2hpY2ggd291bGQgbm9ybWFsbHkgYXBwbHksIHdlIGdldCAidHdvIGh1bmRyZWQgemVybyIuCisgICAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2Ugcm9sbCBiYWNrIGFuZCB1c2UgdGhlIHJ1bGUgYXQgMTAwIGluc3RlYWQuCisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxvZ2ljIHRoYXQgbWFrZXMgdGhpcyBoYXBwZW46IHRoZSBydWxlIGF0IDEwMSBoYXMKKyAgICAgICAgLy8gYSBtb2R1bHVzIHN1YnN0aXR1dGlvbiwgaXRzIGJhc2UgdmFsdWUgaXNuJ3QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiAxMDAsIGFuZCB0aGUgdmFsdWUgd2UncmUgdHJ5aW5nIHRvIGZvcm1hdCBfaXNfIGFuIGV2ZW4KKyAgICAgICAgLy8gbXVsdGlwbGUgb2YgMTAwLiAgVGhpcyBpcyBjYWxsZWQgdGhlICJyb2xsYmFjayBydWxlLiIKKyAgICAgICAgaWYgKChzdWIxLmlzTW9kdWx1c1N1YnN0aXR1dGlvbigpKSB8fCAoc3ViMi5pc01vZHVsdXNTdWJzdGl0dXRpb24oKSkpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVtYmVyICUgTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KSkgPT0gMAorICAgICAgICAgICAgICAgICYmIChiYXNlVmFsdWUgJSBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpKSAhPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBzdHJpbmcgd2l0aCB0aGlzIHJ1bGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBPbiBlbnRyeSwgdGhlIHZhbHVlIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQgdG8KKyAgICAgKiBiZSAwLiBPbiBleGl0LCB0aGlzIGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIG5vdCBjb25zdW1lZCBieSBtYXRjaGluZyB0aGUgdGV4dCBhZ2FpbnN0IHRoaXMgcnVsZQorICAgICAqIChpZiB0aGlzIHJ1bGUgZG9lc24ndCBtYXRjaCB0aGUgdGV4dCBhdCBhbGwsIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAqIGlmIGxlZnQgdW5jaGFuZ2VkIChwcmVzdW1hYmx5IGF0IDApIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucworICAgICAqIG5ldyBMb25nKDApKS4KKyAgICAgKiBAcGFyYW0gaXNGcmFjdGlvblJ1bGUgVHJ1ZSBpZiB0aGlzIHJ1bGUgaXMgY29udGFpbmVkIHdpdGhpbiBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQuICBUaGlzIGlzIG9ubHkgdXNlZCBpZiB0aGUgcnVsZSBoYXMgbm8KKyAgICAgKiBzdWJzdGl0dXRpb25zLgorICAgICAqIEByZXR1cm4gSWYgdGhpcyBydWxlIG1hdGNoZWQgdGhlIHRleHQsIHRoaXMgaXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICogY29tYmluZWQgYXBwcm9wcmlhdGVseSB3aXRoIHRoZSByZXN1bHRzIG9mIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbnMuCisgICAgICogSWYgbm90aGluZyBtYXRjaGVkLCB0aGlzIGlzIG5ldyBMb25nKDApIGFuZCB0aGUgcGFyc2UgcG9zaXRpb24gaXMKKyAgICAgKiBsZWZ0IHVuY2hhbmdlZC4gIFRoZSByZXN1bHQgd2lsbCBiZSBhbiBpbnN0YW5jZSBvZiBMb25nIGlmIHRoZQorICAgICAqIHJlc3VsdCBpcyBhbiBpbnRlZ2VyIGFuZCBEb3VibGUgb3RoZXJ3aXNlLiAgVGhlIHJlc3VsdCBpcyBuZXZlciBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBib29sZWFuIGlzRnJhY3Rpb25SdWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCkgeworCisgICAgICAgIC8vIGludGVybmFsbHkgd2Ugb3BlcmF0ZSBvbiBhIGNvcHkgb2YgdGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgICAgLy8gKGJlY2F1c2Ugd2UncmUgZ29pbmcgdG8gY2hhbmdlIGl0KSBhbmQgdXNlIG91ciBvd24gUGFyc2VQb3NpdGlvbgorICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyB3b3JrVGV4dCA9IG5ldyBTdHJpbmcodGV4dCk7CisKKyAgICAgICAgLy8gY2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBzdWJzdGl0dXRpb24KKyAgICAgICAgLy8gbWF0Y2hlcyB0aGUgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcgYmVpbmcKKyAgICAgICAgLy8gcGFyc2VkLiAgSWYgaXQgZG9lcywgc3RyaXAgdGhhdCBvZmYgdGhlIGZyb250IG9mIHdvcmtUZXh0OworICAgICAgICAvLyBvdGhlcndpc2UsIGR1bXAgb3V0IHdpdGggYSBtaXNtYXRjaAorICAgICAgICB3b3JrVGV4dCA9IHN0cmlwUHJlZml4KHdvcmtUZXh0LCBydWxlVGV4dC5zdWJzdHJpbmcoMCwgc3ViMS5nZXRQb3MoKSksIHBwKTsKKyAgICAgICAgaW50IHByZWZpeExlbmd0aCA9IHRleHQubGVuZ3RoKCkgLSB3b3JrVGV4dC5sZW5ndGgoKTsKKworICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKSA9PSAwICYmIHN1YjEuZ2V0UG9zKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIFBhcnNlUG9zaXRpb24gZG9lc24ndCBoYXZlIGVycm9yIGluZGV4IGluIDEuMS54CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocHAuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoaXMgaXMgdGhlIGZ1biBwYXJ0LiAgVGhlIGJhc2ljIGd1dHMgb2YgdGhlIHJ1bGUtbWF0Y2hpbmcKKyAgICAgICAgLy8gbG9naWMgaXMgbWF0Y2hUb0RlbGltaXRlcigpLCB3aGljaCBpcyBjYWxsZWQgdHdpY2UuICBUaGUgZmlyc3QKKyAgICAgICAgLy8gdGltZSBpdCBzZWFyY2hlcyB0aGUgaW5wdXQgc3RyaW5nIGZvciB0aGUgcnVsZSB0ZXh0IEJFVFdFRU4KKyAgICAgICAgLy8gdGhlIHN1YnN0aXR1dGlvbnMgYW5kIHRyaWVzIHRvIG1hdGNoIHRoZSBpbnRlcnZlbmluZyB0ZXh0CisgICAgICAgIC8vIGluIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZmlyc3Qgc3Vic3RpdHV0aW9uLiAgSWYgdGhhdAorICAgICAgICAvLyBzdWNjZWVkcywgaXQgdGhlbiBjYWxscyBpdCBhZ2FpbiwgdGhpcyB0aW1lIHRvIGxvb2sgZm9yIHRoZQorICAgICAgICAvLyBydWxlIHRleHQgYWZ0ZXIgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24gYW5kIHRvIG1hdGNoIHRoZQorICAgICAgICAvLyBpbnRlcnZlbmluZyBpbnB1dCB0ZXh0IGFnYWluc3QgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vIEZvciBleGFtcGxlLCBzYXkgd2UgaGF2ZSBhIHJ1bGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vICAgIGZpcnN0IDw8IG1pZGRsZSA+PiBsYXN0OworICAgICAgICAvLyBhbmQgaW5wdXQgdGV4dCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgLy8gICAgZmlyc3Qgb25lIG1pZGRsZSB0d28gbGFzdAorICAgICAgICAvLyBGaXJzdCB3ZSB1c2Ugc3RyaXBQcmVmaXgoKSB0byBtYXRjaCAiZmlyc3QgIiBpbiBib3RoIHBsYWNlcyBhbmQKKyAgICAgICAgLy8gc3RyaXAgaXQgb2ZmIHRoZSBmcm9udCwgbGVhdmluZworICAgICAgICAvLyAgICBvbmUgbWlkZGxlIHR3byBsYXN0CisgICAgICAgIC8vIFRoZW4gd2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSB0byBtYXRjaCAiIG1pZGRsZSAiIGFuZCB0cnkgdG8KKyAgICAgICAgLy8gbWF0Y2ggIm9uZSIgYWdhaW5zdCBhIHN1YnN0aXR1dGlvbi4gIElmIGl0J3Mgc3VjY2Vzc2Z1bCwgd2Ugbm93CisgICAgICAgIC8vIGhhdmUKKyAgICAgICAgLy8gICAgdHdvIGxhc3QKKyAgICAgICAgLy8gV2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSBhIHNlY29uZCB0aW1lIHRvIG1hdGNoICIgbGFzdCIgYW5kCisgICAgICAgIC8vIHRyeSB0byBtYXRjaCAidHdvIiBhZ2FpbnN0IGEgc3Vic3RpdHV0aW9uLiAgSWYgInR3byIgbWF0Y2hlcworICAgICAgICAvLyB0aGUgc3Vic3RpdHV0aW9uLCB3ZSBoYXZlIGEgc3VjY2Vzc2Z1bCBwYXJzZS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gU2luY2UgaXQncyBwb3NzaWJsZSBpbiBtYW55IGNhc2VzIHRvIGZpbmQgbXVsdGlwbGUgaW5zdGFuY2VzCisgICAgICAgIC8vIG9mIGVhY2ggb2YgdGhlc2UgcGllY2VzIG9mIHJ1bGUgdGV4dCBpbiB0aGUgaW5wdXQgc3RyaW5nLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIHRyeSBhbGwgdGhlIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZQorICAgICAgICAvLyBsb2NhdGlvbnMuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gcHJlbWF0dXJlbHkgZGVjbGFyaW5nIGEgbWlzbWF0Y2gsCisgICAgICAgIC8vIGFuZCBtYWtlcyBzdXJlIHdlIG1hdGNoIGFzIG11Y2ggaW5wdXQgdGV4dCBhcyB3ZSBjYW4uCisgICAgICAgIGludCBoaWdoV2F0ZXJNYXJrID0gMDsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGRvdWJsZSB0ZW1wQmFzZVZhbHVlID0gTWF0aC5tYXgoMCwgYmFzZVZhbHVlKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBvdXIgcGFydGlhbCBwYXJzZSByZXN1bHQgc3RhcnRzIG91dCBhcyB0aGlzIHJ1bGUncyBiYXNlCisgICAgICAgICAgICAvLyB2YWx1ZS4gIElmIGl0IGZpbmRzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyB3aWxsIGNvbXBvc2UgdGhpcyBpbiBzb21lIHdheSB3aXRoIHdoYXQgaXQgZ2V0cyBiYWNrIGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBzdWJzdGl0dXRpb24sIGdpdmluZyB1cyBhIG5ldyBwYXJ0aWFsIHBhcnNlIHJlc3VsdAorICAgICAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgICAgICBkb3VibGUgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQsIHN0YXJ0LCB0ZW1wQmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIxLmdldFBvcygpLCBzdWIyLmdldFBvcygpKSwgcHAsIHN1YjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJCb3VuZCkuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3Igd2VyZSB0cnlpbmcgdG8gbWF0Y2ggYQorICAgICAgICAgICAgLy8gbnVsbCBzdWJzdGl0dXRpb24pLCBwcCBpcyBub3cgcG9pbnRpbmcgYXQgdGhlIGZpcnN0IHVubWF0Y2hlZAorICAgICAgICAgICAgLy8gY2hhcmFjdGVyLiAgVGFrZSBub3RlIG9mIHRoYXQsIGFuZCB0cnkgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyBvbiB0aGUgaW5wdXQgdGV4dCBhZ2FpbgorICAgICAgICAgICAgaWYgKHBwLmdldEluZGV4KCkgIT0gMCB8fCBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwcC5nZXRJbmRleCgpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0MiA9IHdvcmtUZXh0LnN1YnN0cmluZyhwcC5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgICAgICAgICAgLy8gdGhlIHNlY29uZCBtYXRjaFRvRGVsaW1pdGVyKCkgd2lsbCBjb21wb3NlIG91ciBwcmV2aW91cworICAgICAgICAgICAgICAgIC8vIHBhcnRpYWwgcmVzdWx0IHdpdGggd2hhdGV2ZXIgaXQgZ2V0cyBiYWNrIGZyb20gaXRzCisgICAgICAgICAgICAgICAgLy8gc3Vic3RpdHV0aW9uIGlmIHRoZXJlJ3MgYSBzdWNjZXNzZnVsIG1hdGNoLCBnaXZpbmcgdXMKKyAgICAgICAgICAgICAgICAvLyBhIHJlYWwgcmVzdWx0CisgICAgICAgICAgICAgICAgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQyLCAwLCBwYXJ0aWFsUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIyLmdldFBvcygpKSwgcHAyLCBzdWIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyQm91bmQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBzdWNjZXNzZnVsIG1hdGNoIG9uIHRoaXMgc2Vjb25kCisgICAgICAgICAgICAgICAgLy8gbWF0Y2hUb0RlbGltaXRlcigpIGNhbGwsIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrCisgICAgICAgICAgICAgICAgLy8gYW5kIHJlc3VsdCAoaWYgbmVjZXNzYXJ5KQorICAgICAgICAgICAgICAgIGlmIChwcDIuZ2V0SW5kZXgoKSAhPSAwIHx8IHN1YjIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeExlbmd0aCArIHBwLmdldEluZGV4KCkgKyBwcDIuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsgPSBwcmVmaXhMZW5ndGggKyBwcC5nZXRJbmRleCgpICsgcHAyLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJ0aWFsUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gcHAyLmdldEVycm9ySW5kZXgoKSArIHN1YjEuZ2V0UG9zKCkgKyBwcC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHRlbXApOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gc3ViMS5nZXRQb3MoKSArIHBwLmdldEVycm9ySW5kZXgoKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAodGVtcCA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCh0ZW1wKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBrZWVwIHRyeWluZyB0byBtYXRjaCB0aGluZ3MgdW50aWwgdGhlIG91dGVyIG1hdGNoVG9EZWxpbWl0ZXIoKQorICAgICAgICAgICAgLy8gY2FsbCBmYWlscyB0byBtYWtlIGEgbWF0Y2ggKGVhY2ggdGltZSwgaXQgcGlja3MgdXAgd2hlcmUgaXQKKyAgICAgICAgICAgIC8vIGxlZnQgb2ZmIHRoZSBwcmV2aW91cyB0aW1lKQorICAgICAgICB9IHdoaWxlIChzdWIxLmdldFBvcygpICE9IHN1YjIuZ2V0UG9zKCkgJiYgcHAuZ2V0SW5kZXgoKSA+IDAgJiYgcHAuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICA8IHdvcmtUZXh0Lmxlbmd0aCgpICYmIHBwLmdldEluZGV4KCkgIT0gc3RhcnQpOworCisgICAgICAgIC8vIHVwZGF0ZSB0aGUgY2FsbGVyJ3MgUGFyc2VQb3NpdGlvbiB3aXRoIG91ciBoaWdoLXdhdGVyIG1hcmsKKyAgICAgICAgLy8gKGkuZS4sIGl0IG5vdyBwb2ludHMgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIGRpZG4ndCBtYXRjaC0tIHRoZSBQYXJzZVBvc2l0aW9uIGlzIHRoZXJlZm9yZSB1bmNoYW5nZWQgaWYKKyAgICAgICAgLy8gd2UgZGlkbid0IG1hdGNoIGFueXRoaW5nKQorICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGhpZ2hXYXRlck1hcmspOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgLy8gICAgICAgIGlmIChoaWdoV2F0ZXJNYXJrID4gMCkgeworICAgICAgICAvLyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCgwKTsKKyAgICAgICAgLy8gICAgICAgIH0KKworICAgICAgICAvLyB0aGlzIGlzIGEgaGFjayBmb3Igb25lIHVudXN1YWwgY29uZGl0aW9uOiBOb3JtYWxseSwgd2hldGhlciB0aGlzCisgICAgICAgIC8vIHJ1bGUgYmVsb25nIHRvIGEgZnJhY3Rpb24gcnVsZSBzZXQgb3Igbm90IGlzIGhhbmRsZWQgYnkgaXRzCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMuICBCdXQgaWYgdGhhdCBydWxlIEhBUyBOTyBzdWJzdGl0dXRpb25zLCB0aGVuCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4gIEJ5IGRlZmluaXRpb24sIGlmIHRoZSBtYXRjaGluZworICAgICAgICAvLyBydWxlIGluIGEgZnJhY3Rpb24gcnVsZSBzZXQgaGFzIG5vIHN1YnN0aXR1dGlvbnMsIGl0cyBudW1lcmF0b3IKKyAgICAgICAgLy8gaXMgMSwgYW5kIHNvIHRoZSByZXN1bHQgaXMgdGhlIHJlY2lwcm9jYWwgb2YgaXRzIGJhc2UgdmFsdWUuCisgICAgICAgIGlmIChpc0ZyYWN0aW9uUnVsZSAmJiBoaWdoV2F0ZXJNYXJrID4gMCAmJiBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAxIC8gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBMb25nIGlmIHBvc3NpYmxlLCBvciBhcyBhIERvdWJsZQorICAgICAgICBpZiAocmVzdWx0ID09IChsb25nKXJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IHBhcnNlKCkgdG8gbWF0Y2ggdGhlIHRleHQgYmVpbmcgcGFyc2VkCisgICAgICogYWdhaW5zdCBhIHBvc3NpYmxlIHByZWZpeCBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICogbWF0Y2hlcyBjaGFyYWN0ZXJzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIHRvIGNoYXJhY3RlcnMgZnJvbSB0aGUgcHJvc3BlY3RpdmUgcHJlZml4LiAgSWYgdGhleSBtYXRjaCwgcHAgaXMKKyAgICAgKiB1cGRhdGVkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IG1hdGNoZWQsIGFuZCB0aGUgcmVzdWx0IGlzCisgICAgICogdGhlIHVucGFyc2VkIHBhcnQgb2YgdGhlIHN0cmluZy4gIElmIHRoZXkgZG9uJ3QgbWF0Y2gsIHRoZSB3aG9sZQorICAgICAqIHN0cmluZyBpcyByZXR1cm5lZCwgYW5kIHBwIGlzIGxlZnQgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB0byBtYXRjaCBhZ2FpbnN0CisgICAgICogQHBhcmFtIHBwIE9uIGVudHJ5LCBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvIGJlIDAuICBPbiBleGl0LCBwb2ludHMKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlciAoYXNzdW1pbmcgdGhlIHdob2xlIHByZWZpeCBtYXRjaGVkKSwKKyAgICAgKiBvciBpcyB1bmNoYW5nZWQgKGlmIHRoZSB3aG9sZSBwcmVmaXggZGlkbid0IG1hdGNoKS4KKyAgICAgKiBAcmV0dXJuIElmIHRoaW5ncyBtYXRjaCwgdGhpcyBpcyB0aGUgdW5wYXJzZWQgcGFydCBvZiAidGV4dCI7CisgICAgICogaWYgdGhleSBkaWRuJ3QgbWF0Y2gsIHRoaXMgaXMgInRleHQiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN0cmlwUHJlZml4KFN0cmluZyB0ZXh0LCBTdHJpbmcgcHJlZml4LCBQYXJzZVBvc2l0aW9uIHBwKSB7CisgICAgICAgIC8vIGlmIHRoZSBwcmVmaXggdGV4dCBpcyBlbXB0eSwgZHVtcCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZworICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB1c2UgcHJlZml4TGVuZ3RoKCkgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAgICAgLy8gInRleHQiIGFnYWluc3QgInByZWZpeCIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tICJ0ZXh0IiB0aGF0IG1hdGNoZWQgKG9yIDAgaWYKKyAgICAgICAgICAgIC8vIHdlIGRpZG4ndCBtYXRjaCB0aGUgd2hvbGUgcHJlZml4KQorICAgICAgICAgICAgaW50IHBmbCA9IHByZWZpeExlbmd0aCh0ZXh0LCBwcmVmaXgpOworICAgICAgICAgICAgaWYgKHBmbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCwgdXBkYXRlIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4IG9mZiBvZiAidGV4dCIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwcC5nZXRJbmRleCgpICsgcGZsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcocGZsKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSBzdWNjZXNzZnVsIG1hdGNoLCBsZWF2ZSBldmVyeXRoaW5nIGFsb25lCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlZCBieSBwYXJzZSgpIHRvIG1hdGNoIGEgc3Vic3RpdHV0aW9uIGFuZCBhbnkgZm9sbG93aW5nIHRleHQuCisgICAgICogInRleHQiIGlzIHNlYXJjaGVkIGZvciBpbnN0YW5jZXMgb2YgImRlbGltaXRlciIuICBGb3IgZWFjaCBpbnN0YW5jZQorICAgICAqIG9mIGRlbGltaXRlciwgdGhlIGludGVydmVuaW5nIHRleHQgaXMgdGVzdGVkIHRvIHNlZSB3aGV0aGVyIGl0CisgICAgICogbWF0Y2hlcyB0aGUgc3Vic3RpdHV0aW9uLiAgVGhlIGxvbmdlc3QgbWF0Y2ggd2lucy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIEBwYXJhbSBzdGFydFBvcyBUaGUgcG9zaXRpb24gaW4gInRleHQiIHdoZXJlIHdlIHNob3VsZCBzdGFydCBsb29raW5nCisgICAgICogZm9yICJkZWxpbWl0ZXIiLgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgQSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCAob2Z0ZW4gdGhlIHJ1bGUncyBiYXNlIHZhbHVlKSwKKyAgICAgKiB3aGljaCBpcyBjb21iaW5lZCB3aXRoIHRoZSByZXN1bHQgZnJvbSBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlbGltaXRlciBUaGUgc3RyaW5nIHRvIHNlYXJjaCAidGV4dCIgZm9yLgorICAgICAqIEBwYXJhbSBwcCBJZ25vcmVkIGFuZCBwcmVzdW1lZCB0byBiZSAwIG9uIGVudHJ5LiAgSWYgdGhlcmUncyBhIG1hdGNoLAorICAgICAqIG9uIGV4aXQgdGhpcyB3aWxsIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzdWIgSWYgd2UgZmluZCAiZGVsaW1pdGVyIiBpbiAidGV4dCIsIHRoaXMgc3Vic3RpdHV0aW9uIGlzIHVzZWQKKyAgICAgKiB0byBtYXRjaCB0aGUgdGV4dCBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyBhbmQgdGhlCisgICAgICogcG9zaXRpb24gb2YgImRlbGltaXRlci4iICAoSWYgImRlbGltaXRlciIgaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbgorICAgICAqIHRoaXMgZnVuY3Rpb24ganVzdCBtYXRjaGVzIGFnYWluc3QgdGhpcyBzdWJzdGl0dXRpb24gYW5kIHVwZGF0ZXMKKyAgICAgKiBldmVyeXRoaW5nIGFjY29yZGluZ2x5LikKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24sIGl0IHdpbGwgb25seQorICAgICAqIGNvbnNpZGVyIHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMgbG93ZXIgdGhhbiB0aGlzIHZhbHVlLgorICAgICAqIEByZXR1cm4gSWYgdGhlcmUncyBhIG1hdGNoLCB0aGlzIGlzIHRoZSByZXN1bHQgb2YgY29tcG9zaW5nCisgICAgICogYmFzZVZhbHVlIHdpdGggdGhlIHJlc3VsdCBvZiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uLiAgT3RoZXJ3aXNlLAorICAgICAqIHRoaXMgaXMgbmV3IExvbmcoMCkuICBJdCdzIG5ldmVyIG51bGwuICBJZiB0aGUgcmVzdWx0IGlzIGFuIGludGVnZXIsCisgICAgICogdGhpcyB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmc7IG90aGVyd2lzZSwgaXQncyBhbiBpbnN0YW5jZSBvZgorICAgICAqIERvdWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE51bWJlciBtYXRjaFRvRGVsaW1pdGVyKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnRQb3MsIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVsaW1pdGVyLCBQYXJzZVBvc2l0aW9uIHBwLCBORlN1YnN0aXR1dGlvbiBzdWIsIGRvdWJsZSB1cHBlckJvdW5kKSB7CisgICAgICAgIC8vIGlmICJkZWxpbWl0ZXIiIGNvbnRhaW5zIHJlYWwgKGkuZS4sIG5vbi1pZ25vcmFibGUpIHRleHQsIHNlYXJjaAorICAgICAgICAvLyBpdCBmb3IgImRlbGltaXRlciIgYmVnaW5uaW5nIGF0ICJzdGFydCIuICBJZiB0aGF0IHN1Y2NlZWRzLCB0aGVuCisgICAgICAgIC8vIHVzZSAic3ViIidzIGRvUGFyc2UoKSBtZXRob2QgdG8gbWF0Y2ggdGhlIHRleHQgYmVmb3JlIHRoZQorICAgICAgICAvLyBpbnN0YW5jZSBvZiAiZGVsaW1pdGVyIiB3ZSBqdXN0IGZvdW5kLgorICAgICAgICBpZiAoIWFsbElnbm9yYWJsZShkZWxpbWl0ZXIpKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHRlbXBQUCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQ7CisKKyAgICAgICAgICAgIC8vIHVzZSBmaW5kVGV4dCgpIHRvIHNlYXJjaCBmb3IgImRlbGltaXRlciIuICBJdCByZXR1cm5zIGEgdHdvLQorICAgICAgICAgICAgLy8gZWxlbWVudCBhcnJheTogZWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2gsIGFuZAorICAgICAgICAgICAgLy8gZWxlbWVudCAxIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IG1hdGNoZWQKKyAgICAgICAgICAgIC8vICJkZWxpbWl0ZXIiLgorICAgICAgICAgICAgaW50W10gdGVtcCA9IGZpbmRUZXh0KHRleHQsIGRlbGltaXRlciwgc3RhcnRQb3MpOworICAgICAgICAgICAgaW50IGRQb3MgPSB0ZW1wWzBdOworICAgICAgICAgICAgaW50IGRMZW4gPSB0ZW1wWzFdOworCisgICAgICAgICAgICAvLyBpZiBmaW5kVGV4dCgpIHN1Y2NlZWRlZCwgaXNvbGF0ZSB0aGUgdGV4dCBwcmVjZWRpbmcgdGhlCisgICAgICAgICAgICAvLyBtYXRjaCwgYW5kIHVzZSAic3ViIiB0byBtYXRjaCB0aGF0IHRleHQKKyAgICAgICAgICAgIHdoaWxlIChkUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3ViVGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIGRQb3MpOworICAgICAgICAgICAgICAgIGlmIChzdWJUZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2Uoc3ViVGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3Vic3RpdHV0aW9uIGNvdWxkIG1hdGNoIGFsbCB0aGUgdGV4dCB1cCB0bworICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBmb3VuZCAiZGVsaW1pdGVyIiwgdGhlbiB0aGlzIGZ1bmN0aW9uIGhhcworICAgICAgICAgICAgICAgICAgICAvLyBhIHN1Y2Nlc3NmdWwgbWF0Y2guICBCdW1wIHRoZSBjYWxsZXIncyBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAvLyB0byBwb2ludCB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgbWF0Y2hlcyAiZGVsaW1pdGVyIiwgYW5kIHJldHVybiB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBmcm9tIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRJbmRleCgpID09IGRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEluZGV4KGRQb3MgKyBkTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRFcnJvckluZGV4KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0RXJyb3JJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBtYXRjaCB0aGUgc3Vic3RpdHV0aW9uLCBzZWFyY2ggZm9yIGFub3RoZXIKKyAgICAgICAgICAgICAgICAvLyBjb3B5IG9mICJkZWxpbWl0ZXIiIGluICJ0ZXh0IiBhbmQgcmVwZWF0IHRoZSBsb29wIGlmCisgICAgICAgICAgICAgICAgLy8gd2UgZmluZCBpdAorICAgICAgICAgICAgICAgIHRlbXBQUC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gZmluZFRleHQodGV4dCwgZGVsaW1pdGVyLCBkUG9zICsgZExlbik7CisgICAgICAgICAgICAgICAgZFBvcyA9IHRlbXBbMF07CisgICAgICAgICAgICAgICAgZExlbiA9IHRlbXBbMV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRoaXMgd2FzIGFuIHVuc3VjY2Vzc2Z1bCBtYXRjaCwgYW5kIHdlCisgICAgICAgICAgICAvLyBsZWF2ZSBwcCB1bmNoYW5nZWQgYW5kIHJldHVybiAwCisgICAgICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKworICAgICAgICAgICAgLy8gaWYgImRlbGltaXRlciIgaXMgZW1wdHksIG9yIGNvbnNpc3RzIG9ubHkgb2YgaWdub3JhYmxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIChpLmUuLCBpcyBzZW1hbnRpY2FsbHkgZW1wdHkpLCB0aHdlIHdlIG9idmlvdXNseSBjYW4ndCBzZWFyY2gKKyAgICAgICAgICAgIC8vIGZvciAiZGVsaW1pdGVyIi4gIEluc3RlYWQsIGp1c3QgdXNlICJzdWIiIHRvIHBhcnNlIGFzIG11Y2ggb2YKKyAgICAgICAgICAgIC8vICJ0ZXh0IiBhcyBwb3NzaWJsZS4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFBQID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBOdW1iZXIgcmVzdWx0ID0gbmV3IExvbmcoMCk7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAgICAgLy8gdHJ5IHRvIG1hdGNoIHRoZSB3aG9sZSBzdHJpbmcgYWdhaW5zdCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2UodGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLmxlbmllbnRQYXJzZUVuYWJsZWQoKSk7CisgICAgICAgICAgICBpZiAodGVtcFBQLmdldEluZGV4KCkgIT0gMCB8fCBzdWIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSdzIGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3IgaXQncyBhIG51bGwKKyAgICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24pLCB1cGRhdGUgcHAgdG8gcG9pbnQgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIHdlIGRpZG4ndCBtYXRjaCwgYW5kIHBhc3MgdGhlIHJlc3VsdCBmcm9tCisgICAgICAgICAgICAgICAgLy8gc3ViLmRvUGFyc2UoKSBvbiB0aHJvdWdoIHRvIHRoZSBjYWxsZXIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBSZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIGlmIHdlIGdldCB0byBoZXJlLCB0aGVuIG5vdGhpbmcgbWF0Y2hlZCwgc28gd2UgcmV0dXJuCisgICAgICAgICAgICAvLyAwIGFuZCBsZWF2ZSBwcCBhbG9uZQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgc3RyaXBQcmVmaXgoKSB0byBtYXRjaCBjaGFyYWN0ZXJzLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlCisgICAgICogaXMgb2ZmLCB0aGlzIGp1c3QgY2FsbHMgc3RhcnRzV2l0aCgpLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uLAorICAgICAqIHRoaXMgZnVuY3Rpb24gdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3JzIHRvIG1hdGNoIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgc3RyaW5ncyAob25seSBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbgorICAgICAqIGRldGVybWluaW5nIHdoZXRoZXIgdGhlcmUncyBhIG1hdGNoKS4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgYmVpbmcgdGVzdGVkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB3ZSdyZSBob3BpbmcgdG8gc2VlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiBvZiAic3RyIgorICAgICAqIEByZXR1cm4gSWYgInByZWZpeCIgaXMgZm91bmQgYXQgdGhlIGJlZ2lubmluZyBvZiAic3RyIiwgdGhpcworICAgICAqIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiAic3RyIiB0aGF0IHdlcmUgbWF0Y2hlZCAodGhpcworICAgICAqIGlzbid0IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgInByZWZpeCIgd2hlbiBtYXRjaGluZworICAgICAqIHRleHQgd2l0aCBhIGNvbGxhdG9yKS4gIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIHRoaXMgaXMgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmVmaXhMZW5ndGgoU3RyaW5nIHN0ciwgU3RyaW5nIHByZWZpeCkgeworICAgICAgICAvLyBpZiB3ZSdyZSBsb29raW5nIGZvciBhbiBlbXB0eSBwcmVmaXgsIGl0IG9idmlvdXNseSBtYXRjaGVzCisgICAgICAgIC8vIHplcm8gY2hhcmFjdGVycy4gIEp1c3QgZ28gYWhlYWQgYW5kIHJldHVybiAwLgorICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gZ28gdGhyb3VnaCBhbGwgdGhpcyBncmllZiBpZiB3ZSdyZSBpbiBsZW5pZW50LXBhcnNlIG1vZGUKKyAgICAgICAgaWYgKGZvcm1hdHRlci5sZW5pZW50UGFyc2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZm9ybWF0dGVyJ3MgY29sbGF0b3IgYW5kIHVzZSBpdCB0byBjcmVhdGUgdHdvCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMsIG9uZSBvdmVyIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBvdmVyIHRoZSBwcmVmaXggKHJpZ2h0IG5vdywgd2UnbGwgdGhyb3cgYW4KKyAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBpZiB0aGUgY29sbGF0b3Igd2UgZ2V0IGJhY2sgZnJvbSB0aGUgZm9ybWF0dGVyCisgICAgICAgICAgICAvLyBpc24ndCBhIFJ1bGVCYXNlZENvbGxhdG9yLCBiZWNhdXNlIFJ1bGVCYXNlZENvbGxhdG9yIGRlZmluZXMKKyAgICAgICAgICAgIC8vIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b2VyIHByb3RvY29sLiAgSG9wZWZ1bGx5LCB0aGlzCisgICAgICAgICAgICAvLyB3aWxsIGNoYW5nZSBzb21lZGF5LikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBQcmV2aW91cyBjb2RlIHdhcyBtYXRjaGluZyAiZmlmdHktIiBhZ2FpbnN0ICIgZmlmdHkiIGFuZCBsZWF2aW5nCisgICAgICAgICAgICAvLyB0aGUgbnVtYmVyICIgZmlmdHktNyIgdG8gcGFyc2UgYXMgNDMgKDUwIC0gNykuCisgICAgICAgICAgICAvLyBBbHNvIGl0IHNlZW1zIHRoYXQgaWYgd2UgY29uc3VtZSB0aGUgZW50aXJlIHByZWZpeCwgdGhhdCdzIG9rIGV2ZW4KKyAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGNvbnN1bWVkIHRoZSBlbnRpcmUgc3RyaW5nLCBzbyBJIHN3aXRjaGVkIHRoZSBsb2dpYyB0bworICAgICAgICAgICAgLy8gcmVmbGVjdCB0aGlzLgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZm9ybWF0dGVyLmdldENvbGxhdG9yKCk7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igc3RySXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByZWZpeEl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IocHJlZml4KTsKKworICAgICAgICAgICAgLy8gbWF0Y2ggY29sbGF0aW9uIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0cmluZ3MKKyAgICAgICAgICAgIGludCBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICBpbnQgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworCisgICAgICAgICAgICB3aGlsZSAob1ByZWZpeCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBvdmVyIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgPT0gMCAmJiBvU3RyICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHNraXAgb3ZlciBpZ25vcmFibGUgY2hhcmFjdGVycyBpbiB0aGUgcHJlZml4CisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1ByZWZpeCkgPT0gMCAmJiBvUHJlZml4ICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHNraXBwaW5nIG92ZXIgaWdub3JhYmxlcyBicm91Z2h0IHRvIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcHJlZml4LCB3ZSBESUQgbWF0Y2g6IGRyb3Agb3V0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaWYgKG9QcmVmaXggPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBza2lwcGluZyBvdmVyIGlnbm9yYWJsZXMgYnJvdWdodCB1cyB0byB0aGUgZW5kCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCBzdHJpbmcsIHdlIGRpZG4ndCBtYXRjaCBhbmQgcmV0dXJuIDAKKyAgICAgICAgICAgICAgICBpZiAob1N0ciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG1hdGNoIGNvbGxhdGlvbiBlbGVtZW50cyBmcm9tIHRoZSB0d28gc3RyaW5ncworICAgICAgICAgICAgICAgIC8vIChjb25zaWRlcmluZyBvbmx5IHByaW1hcnkgZGlmZmVyZW5jZXMpLiAgSWYgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgYSBtaXNtYXRjaCwgZHVtcCBvdXQgYW5kIHJldHVybiAwCisgICAgICAgICAgICAgICAgaWYgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5T3JkZXIob1ByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gZWFjaCBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBhbmQgbG9vcCAod2UgZHJvcCBvdXQgb2YgdGhlIGxvb3Agd2hlbiB3ZSBleGhhdXN0CisgICAgICAgICAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzIGluIHRoZSBwcmVmaXgpCisKKyAgICAgICAgICAgICAgICBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3ZSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBqZGsgMS4xIGFueSBsb25nZXIKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgaWYgKG9TdHIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIC0tcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIEpESyAxLjItc3BlY2lmaWMgQVBJIGNhbGwKKyAgICAgICAgICAgICAgLy8gcmV0dXJuIHN0ckl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IGZvciAxLjItc3BlY2lmaWMgY29kZSkKKworICAgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGhhdmUgYSBzdWNjZXNzZnVsIG1hdGNoLiAgTm93IHdlCisgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZmluZCBvdXQgSE9XIE1BTlkgY2hhcmFjdGVycyBmcm9tIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgIC8vIG1hdGNoZWQgdGhlIHByZWZpeCAodGhlcmUgaXNuJ3QgbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lCisgICAgICAgICAgICAgIC8vIG1hcHBpbmcgYmV0d2VlbiBjb2xsYXRpb24gZWxlbWVudHMgYW5kIGNoYXJhY3RlcnMpLgorICAgICAgICAgICAgICAvLyBJbiBKREsgMS4yLCB0aGVyZSdzIGEgc2ltcGxlIGdldE9mZnNldCgpIGNhbGwgd2UgY2FuIHVzZS4KKyAgICAgICAgICAgICAgLy8gSW4gSkRLIDEuMSwgb24gdGhlIG90aGVyIGhhbmQsIHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBzb21lCisgICAgICAgICAgICAgIC8vIHVnbHkgY29udG9ydGlvbnMuICBGaXJzdCwgdXNlIHRoZSBjb2xsYXRvciB0byBjb21wYXJlIHRoZQorICAgICAgICAgICAgICAvLyBzYW1lIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIHByZWZpeCBhbmQgdGFyZ2V0IHN0cmluZy4KKyAgICAgICAgICAgICAgLy8gSWYgdGhleSdyZSBlcXVhbCwgd2UncmUgZG9uZS4KKyAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoKCkgPj0gcHJlZml4Lmxlbmd0aCgpCisgICAgICAgICAgICAgICYmIGNvbGxhdG9yLmVxdWFscyhzdHIuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgoKSksIHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIGlmIHRoZXkncmUgbm90IGVxdWFsLCB0aGVuIHdlIGhhdmUgdG8gY29tcGFyZSBzdWNjZXNzaXZlbHkKKyAgICAgICAgICAgICAgLy8gbGFyZ2VyIGFuZCBsYXJnZXIgc3Vic3RyaW5ncyBvZiB0aGUgdGFyZ2V0IHN0cmluZyB1bnRpbCB3ZQorICAgICAgICAgICAgICAvLyBnZXQgdG8gb25lIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZml4LiAgQXQgdGhhdCBwb2ludCwgd2Uga25vdworICAgICAgICAgICAgICAvLyBob3cgbWFueSBjaGFyYWN0ZXJzIG1hdGNoZWQgdGhlIHByZWZpeCwgYW5kIHdlIGNhbiByZXR1cm4uCisgICAgICAgICAgICAgIGludCBwID0gMTsKKyAgICAgICAgICAgICAgd2hpbGUgKHAgPD0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5lcXVhbHMoc3RyLnN1YnN0cmluZygwLCBwKSwgcHJlZml4KSkgeworICAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBTSE9VTEtEIE5FVkVSIEdFVCBIRVJFISEhCisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIC8vIElmIGxlbmllbnQgcGFyc2luZyBpcyB0dXJuZWQgb2ZmLCBmb3JnZXQgYWxsIHRoYXQgY3JhcCBhYm92ZS4KKyAgICAgICAgICAgIC8vIEp1c3QgdXNlIFN0cmluZy5zdGFydHNXaXRoKCkgYW5kIGJlIGRvbmUgd2l0aCBpdC4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2hlcyBhIHN0cmluZyBmb3IgYW5vdGhlciBzdHJpbmcuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb2ZmLAorICAgICAqIHRoaXMganVzdCBjYWxscyBpbmRleE9mKCkuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb24sIHRoaXMgZnVuY3Rpb24KKyAgICAgKiB1c2VzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0byBtYXRjaCBjaGFyYWN0ZXJzLCBhbmQgb25seQorICAgICAqIHByaW1hcnktb3JkZXIgZGlmZmVyZW5jZXMgYXJlIHNpZ25pZmljYW50IGluIGRldGVybWluaW5nIHdoZXRoZXIKKyAgICAgKiB0aGVyZSdzIGEgbWF0Y2guCisgICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBrZXkgVGhlIHN0cmluZyB0byBzZWFyY2ggInN0ciIgZm9yCisgICAgICogQHJldHVybiBBIHR3by1lbGVtZW50IGFycmF5IG9mIGludHMuICBFbGVtZW50IDAgaXMgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIG1hdGNoLCBvciAtMSBpZiB0aGVyZSB3YXMgbm8gbWF0Y2guICBFbGVtZW50IDEgaXMgdGhlCisgICAgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gInN0ciIgdGhhdCBtYXRjaGVkICh3aGljaCBpc24ndCBuZWNlc3NhcmlseQorICAgICAqIHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgImtleSIpCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBmaW5kVGV4dChTdHJpbmcgc3RyLCBTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBmaW5kVGV4dChzdHIsIGtleSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgYSBzdHJpbmcgZm9yIGFub3RoZXIgc3RyaW5nLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9mZiwKKyAgICAgKiB0aGlzIGp1c3QgY2FsbHMgaW5kZXhPZigpLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9uLCB0aGlzIGZ1bmN0aW9uCisgICAgICogdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgdG8gbWF0Y2ggY2hhcmFjdGVycywgYW5kIG9ubHkKKyAgICAgKiBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAgICogdGhlcmUncyBhIG1hdGNoLgorICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBzZWFyY2gKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBzdHJpbmcgdG8gc2VhcmNoICJzdHIiIGZvcgorICAgICAqIEBwYXJhbSBzdGFydGluZ0F0IFRoZSBpbmRleCBpbnRvICJzdHIiIHdoZXJlIHRoZSBzZWFyY2ggaXMgdG8KKyAgICAgKiBiZWdpbgorICAgICAqIEByZXR1cm4gQSB0d28tZWxlbWVudCBhcnJheSBvZiBpbnRzLiAgRWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBtYXRjaCwgb3IgLTEgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLiAgRWxlbWVudCAxIGlzIHRoZQorICAgICAqIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluICJzdHIiIHRoYXQgbWF0Y2hlZCAod2hpY2ggaXNuJ3QgbmVjZXNzYXJpbHkKKyAgICAgKiB0aGUgc2FtZSBhcyB0aGUgbGVuZ3RoIG9mICJrZXkiKQorICAgICAqLworICAgIHByaXZhdGUgaW50W10gZmluZFRleHQoU3RyaW5nIHN0ciwgU3RyaW5nIGtleSwgaW50IHN0YXJ0aW5nQXQpIHsKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoaXMgaXMgZWFzeToganVzdCBjYWxsCisgICAgICAgIC8vIFN0cmluZy5pbmRleE9mKCkgYW5kIHdlJ3JlIGRvbmUKKyAgICAgICAgaWYgKCFmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGludFtdIHsgc3RyLmluZGV4T2Yoa2V5LCBzdGFydGluZ0F0KSwga2V5Lmxlbmd0aCgpIH07CisKKyAgICAgICAgICAgIC8vIGJ1dCBpZiBsZW5pZW50IHBhcnNpbmcgaXMgdHVybmVkIE9OLCB3ZSd2ZSBnb3Qgc29tZSB3b3JrCisgICAgICAgICAgICAvLyBhaGVhZCBvZiB1cworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IG9mIDEuMi1zcGVjaWZpYyBjb2RlKQorCisgICAgICAgICAgICAvLyBpbiBKREsgMS4yLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJvdmlkZXMgdXMgd2l0aCBhbgorICAgICAgICAgICAgLy8gQVBJIHRvIG1hcCBiZXR3ZWVuIGNoYXJhY3RlciBvZmZzZXRzIGFuZCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgICAgICAgIC8vIGFuZCB3ZSBjYW4gZG8gdGhpcyBieSBtYXJjaGluZyB0aHJvdWdoIHRoZSBzdHJpbmcgY29tcGFyaW5nCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudHMuICBXZSBjYW4ndCBkbyB0aGF0IGluIEpESyAxLjEuICBJbnN0ZWQsCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGdvIHRocm91Z2ggdGhpcyBob3JyaWJsZSBzbG93IG1lc3M6CisgICAgICAgICAgICBpbnQgcCA9IHN0YXJ0aW5nQXQ7CisgICAgICAgICAgICBpbnQga2V5TGVuID0gMDsKKworICAgICAgICAgICAgLy8gYmFzaWNhbGx5IGp1c3QgaXNvbGF0ZSBzbWFsbGVyIGFuZCBzbWFsbGVyIHN1YnN0cmluZ3Mgb2YKKyAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyaW5nIChlYWNoIHJ1bm5pbmcgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gYW5kIHdpdGggdGhlIGZpcnN0IG9uZSBydW5uaW5nIGZyb20gc3RhcnRpbmdBdCB0byB0aGUgZW5kKQorICAgICAgICAgICAgLy8gYW5kIHRoZW4gdXNlIHByZWZpeExlbmd0aCgpIHRvIHNlZSBpZiB0aGUgc2VhcmNoIGtleSBpcyBhdAorICAgICAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiBlYWNoIHN1YnN0cmluZy4gIFRoaXMgaXMgZXhjcnVjaWF0aW5nbHkKKyAgICAgICAgICAgIC8vIHNsb3csIGJ1dCBpdCB3aWxsIGxvY2F0ZSB0aGUga2V5IGFuZCB0ZWxsIHVzZSBob3cgbG9uZyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGNoaW5nIHRleHQgd2FzLgorICAgICAgICAgICAgd2hpbGUgKHAgPCBzdHIubGVuZ3RoKCkgJiYga2V5TGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBrZXlMZW4gPSBwcmVmaXhMZW5ndGgoc3RyLnN1YnN0cmluZyhwKSwga2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5TGVuICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IHAsIGtleUxlbiB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGRpZG4ndCBmaW5kIGl0LiAgUmV0dXJuIC0xIGZvciB0aGUKKyAgICAgICAgICAgIC8vIGxvY2F0aW9uLiAgVGhlIGxlbmd0aCBzaG91bGQgYmUgaWdub3JlZCwgYnV0IHNldCBpdCB0byAwLAorICAgICAgICAgICAgLy8gd2hpY2ggc2hvdWxkIGJlICJzYWZlIgorICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IC0xLCAwIH07CisKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8gSkRLIDEuMiB2ZXJzaW9uIG9mIHRoaXMgcm91dGluZQorICAgICAgICAgICAgLy9SdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilmb3JtYXR0ZXIuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBzdHJJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBrZXlJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGtleSk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQga2V5U3RhcnQgPSAtMTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL3N0ci5zZXRPZmZzZXQoc3RhcnRpbmdBdCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy9pbnQgb0tleSA9IGtleUl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy93aGlsZSAob0tleSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLyAgICB3aGlsZSAob1N0ciAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSICYmCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9TdHIpID09IDApCisgICAgICAgICAgICAvLyAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIHdoaWxlIChvS2V5ICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgJiYKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob0tleSkgPT0gMCkKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgaWYgKG9TdHIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy8gICAgfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIGlmIChvS2V5ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICBpZiAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvU3RyKSA9PQorICAgICAgICAgICAgLy8gICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9LZXkpKSB7CisgICAgICAgICAgICAvLyAgICAgICAga2V5U3RhcnQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gICAgICAgIG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgIGlmIChrZXlTdGFydCAhPSAtMSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlTdGFydCA9IC0xOworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlJdGVyLnJlc2V0KCk7CisgICAgICAgICAgICAvLyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vaWYgKG9LZXkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgcmV0dXJuIG5ldyBpbnRbXSB7IGtleVN0YXJ0LCBzdHJJdGVyLmdldE9mZnNldCgpIC0ga2V5U3RhcnQgfTsKKyAgICAgICAgICAgIC8vfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdG8gc2VlIHdoZXRoZXIgYSBzdHJpbmcgY29uc2lzdHMgZW50aXJlbHkgb2YgaWdub3JhYmxlCisgICAgICogY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gdGVzdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBpcyBlbXB0eSBvZiBjb25zaXN0cyBlbnRpcmVseSBvZgorICAgICAqIGNoYXJhY3RlcnMgdGhhdCB0aGUgbnVtYmVyIGZvcm1hdHRlcidzIGNvbGxhdG9yIHNheXMgYXJlCisgICAgICogaWdub3JhYmxlIGF0IHRoZSBwcmltYXJ5LW9yZGVyIGxldmVsLiAgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhbGxJZ25vcmFibGUoU3RyaW5nIHN0cikgeworICAgICAgICAvLyBpZiB0aGUgc3RyaW5nIGlzIGVtcHR5LCB3ZSBjYW4ganVzdCByZXR1cm4gdHJ1ZQorICAgICAgICBpZiAoc3RyLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvbiwgd2FsayB0aHJvdWdoIHRoZSBzdHJpbmcgd2l0aAorICAgICAgICAvLyBhIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGFuZCBtYWtlIHN1cmUgZWFjaCBjb2xsYXRpb24KKyAgICAgICAgLy8gZWxlbWVudCBpcyAwIChpZ25vcmFibGUpIGF0IHRoZSBwcmltYXJ5IGxldmVsCisgICAgICAgIGlmIChmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikoZm9ybWF0dGVyLmdldENvbGxhdG9yKCkpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKworICAgICAgICAgICAgaW50IG8gPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlIChvICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIKKyAgICAgICAgICAgICAgICAgICAmJiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG8pID09IDApIHsKKyAgICAgICAgICAgICAgICBvID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbyA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMKKyAgICAgICAgICAgIC8vIGFuIGlnbm9yYWJsZSBjaGFyYWN0ZXI6IHJldHVybiB0cnVlIG9ubHkgaWYgdGhlIHN0cmluZyBpcyBlbXB0eQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYmE4MjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEKQEAgLTAsMCArMSw3ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEEgY29sbGVjdGlvbiBvZiBydWxlcyB1c2VkIGJ5IGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvIGZvcm1hdCBhbmQKKyAqIHBhcnNlIG51bWJlcnMuICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgYSBSdWxlU2V0IHRvIHNlbGVjdCBhbgorICogYXBwcm9wcmlhdGUgcnVsZSBmb3IgZm9ybWF0dGluZyBhIHBhcnRpY3VsYXIgbnVtYmVyIGFuZCBkaXNwYXRjaAorICogY29udHJvbCB0byBpdCwgYW5kIHRvIGFyYml0cmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBydWxlcyB3aGVuIHBhcnNpbmcKKyAqIGEgbnVtYmVyLgorICovCisKK2ZpbmFsIGNsYXNzIE5GUnVsZVNldCB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgc2V0J3MgcmVndWxhciBydWxlcworICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIG5lZ2F0aXZlTnVtYmVyUnVsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBmcmFjdGlvbiBydWxlczogZWxlbWVudCAwIGlzIHRoZSBwcm9wZXIgZnJhY3Rpb24KKyAgICAgKiAoMC54KSBydWxlLCBlbGVtZW50IDEgaXMgdGhlIGltcHJvcGVyIGZyYWN0aW9uICh4LngpIHJ1bGUsIGFuZAorICAgICAqIGVsZW1lbnQgMiBpcyB0aGUgbWFzdGVyICh4LjApIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGVbXSBmcmFjdGlvblJ1bGVzID0gbmV3IE5GUnVsZVszXTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuICBBIGZyYWN0aW9uIHJ1bGUgc2V0CisgICAgICogaXMgYSBydWxlIHNldCB0aGF0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYQorICAgICAqIG51bWJlci4gIEl0IGlzIGNhbGxlZCBmcm9tIGEgPj4gc3Vic3RpdHV0aW9uIGluIGFub3RoZXIgcnVsZSBzZXQncworICAgICAqIGZyYWN0aW9uIHJ1bGUsIGFuZCBpcyBvbmx5IGNhbGxlZCB1cG9uIHRvIGZvcm1hdCB2YWx1ZXMgYmV0d2VlbgorICAgICAqIDAgYW5kIDEuICBBIGZyYWN0aW9uIHJ1bGUgc2V0IGhhcyBkaWZmZXJlbnQgcnVsZS1zZWxlY3Rpb24KKyAgICAgKiBiZWhhdmlvciB0aGFuIGEgcmVndWxhciBydWxlIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNGcmFjdGlvblJ1bGVTZXQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIHRvIGxpbWl0IHJlY3Vyc2lvbiBmb3IgYmFkIHJ1bGUgc2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZWN1cnNpb25Db3VudCA9IDA7CisKKyAgICAvKioKKyAgICAgICogTGltaXQgb2YgcmVjdXJzaW9uLgorICAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkVDVVJTSU9OX0xJTUlUID0gNTA7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoKKyAgICAgKiBDb25zdHJ1Y3RzIGEgcnVsZSBzZXQuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9ucyBBbiBhcnJheSBvZiBTdHJpbmdzIHJlcHJlc2VudGluZyBydWxlIHNldAorICAgICAqIGRlc2NyaXB0aW9ucy4gIE9uIGV4aXQsIHRoaXMgcnVsZSBzZXQncyBlbnRyeSBpbiB0aGUgYXJyYXkgd2lsbAorICAgICAqIGhhdmUgYmVlbiBzdHJpcHBlZCBvZiBpdHMgcnVsZSBzZXQgbmFtZSBhbmQgYW55IHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBpbnRvICJkZXNjcmlwdGlvbnMiIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgcnVsZSB0byBiZSBjb25zdHJ1Y3RlZAorICAgICAqLworICAgIHB1YmxpYyBORlJ1bGVTZXQoU3RyaW5nW10gZGVzY3JpcHRpb25zLCBpbnQgaW5kZXgpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbnNbaW5kZXhdOworCisgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCBhIHJ1bGUgc2V0IG5hbWUgKHRoZSBydWxlIHNldAorICAgICAgICAvLyBuYW1lIGNhbiBiZSBvbWl0dGVkIGluIGZvcm1hdHRlciBkZXNjcmlwdGlvbnMgdGhhdCBjb25zaXN0CisgICAgICAgIC8vIG9mIG9ubHkgb25lIHJ1bGUgc2V0KSwgY29weSBpdCBvdXQgaW50byBvdXIgIm5hbWUiIG1lbWJlcgorICAgICAgICAvLyBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJyUnKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gZGVzY3JpcHRpb24uaW5kZXhPZignOicpOworICAgICAgICAgICAgaWYgKHBvcyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGUgc2V0IG5hbWUgZG9lc24ndCBlbmQgaW4gY29sb24iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckF0KCsrcG9zKSkpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKTsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNbaW5kZXhdID0gZGVzY3JpcHRpb247CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHJ1bGUgc2V0IG5hbWUsIGl0cworICAgICAgICAvLyBuYW1lIGlzICIlZGVmYXVsdCIKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5hbWUgPSAiJWRlZmF1bHQiOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbGwgb2YgdGhlIG90aGVyIG1lbWJlcnMgb2YgTkZSdWxlU2V0IGFyZSBpbml0aWFsaXplZAorICAgICAgICAvLyBieSBwYXJzZVJ1bGVzKCkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgdGhlIHN1Ym9yZGluYXRlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY29uc3RydWN0b3IKKyAgICAgKiBhZnRlciBhbGwgdGhlIHJ1bGUgc2V0cyBoYXZlIGJlZW4gY3JlYXRlZCB0byBhY3R1YWxseSBwYXJzZQorICAgICAqIHRoZSBkZXNjcmlwdGlvbiBhbmQgYnVpbGQgcnVsZXMgZnJvbSBpdC4gIFNpbmNlIGFueSBydWxlIHNldAorICAgICAqIGNhbiByZWZlciB0byBhbnkgb3RoZXIgcnVsZSBzZXQsIHdlIGhhdmUgdG8gaGF2ZSBjcmVhdGVkIGFsbCBvZgorICAgICAqIHRoZW0gYmVmb3JlIHdlIGNhbiBjcmVhdGUgYW55dGhpbmcgZWxzZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhpcyBydWxlIHNldAorICAgICAqIEBwYXJhbSBvd25lciBUaGUgZm9ybWF0dGVyIHRoYXQgb3ducyB0aGlzIHJ1bGUgc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2VSdWxlcyhTdHJpbmcgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXIpIHsKKyAgICAgICAgLy8gc3RhcnQgYnkgY3JlYXRpbmcgYSBWZWN0b3Igd2hvc2UgZWxlbWVudHMgYXJlIFN0cmluZ3MgY29udGFpbmluZworICAgICAgICAvLyB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBydWxlcyAob25lIHJ1bGUgcGVyIGVsZW1lbnQpLiAgVGhlIHJ1bGVzCisgICAgICAgIC8vIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAodGhlcmUncyBubyBlc2NhcGUgZmFjaWxpdHk6IEFMTAorICAgICAgICAvLyBzZW1pY29sb25zIGFyZSBydWxlIGRlbGltaXRlcnMpCisgICAgICAgIFZlY3RvciBydWxlRGVzY3JpcHRpb25zID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGludCBvbGRQID0gMDsKKyAgICAgICAgaW50IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc7Jyk7CisgICAgICAgIHdoaWxlIChvbGRQICE9IC0xKSB7CisgICAgICAgICAgICBpZiAocCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMuYWRkRWxlbWVudChkZXNjcmlwdGlvbi5zdWJzdHJpbmcob2xkUCwgcCkpOworICAgICAgICAgICAgICAgIG9sZFAgPSBwICsgMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG9sZFAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBydWxlRGVzY3JpcHRpb25zLmFkZEVsZW1lbnQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKG9sZFApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkUCA9IHA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwID0gZGVzY3JpcHRpb24uaW5kZXhPZignOycsIHAgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBnbyBiYWNrIHRocm91Z2ggYW5kIGJ1aWxkIGEgdmVjdG9yIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzCisgICAgICAgIC8vICh0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGlzbid0IG5lY2Vzc2FyaWx5CisgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgcnVsZXMtLSBzb21lIGRlc2NyaXB0aW9ucyBtYXkgZXhwZW5kIGludG8gdHdvIHJ1bGVzKQorICAgICAgICBWZWN0b3IgdGVtcFJ1bGVzID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHdlIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bGUgYmVmb3JlIHRoZSBvbmUgd2UncmUgY3VycmVudGx5IHdvcmtpbmcKKyAgICAgICAgLy8gb24gc29sZWx5IHRvIHN1cHBvcnQgPj4+IHN1YnN0aXR1dGlvbnMKKyAgICAgICAgTkZSdWxlIHByZWRlY2Vzc29yID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlRGVzY3JpcHRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAvLyBtYWtlUnVsZXMgKGEgZmFjdG9yeSBtZXRob2Qgb24gTkZSdWxlKSB3aWxsIHJldHVybiBlaXRoZXIKKyAgICAgICAgICAgIC8vIGEgc2luZ2xlIHJ1bGUgb3IgYW4gYXJyYXkgb2YgcnVsZXMuICBFaXRoZXIgd2F5LCBhZGQgdGhlbQorICAgICAgICAgICAgLy8gdG8gb3VyIHJ1bGUgdmVjdG9yCisgICAgICAgICAgICBPYmplY3QgdGVtcCA9IE5GUnVsZS5tYWtlUnVsZXMoKFN0cmluZylydWxlRGVzY3JpcHRpb25zLmVsZW1lbnRBdChpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBwcmVkZWNlc3Nvciwgb3duZXIpOworCisgICAgICAgICAgICBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZSkgeworICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHRlbXApOworICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yID0gKE5GUnVsZSl0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZVtdKSB7CisgICAgICAgICAgICAgICAgTkZSdWxlW10gcnVsZXNUb0FkZCA9IChORlJ1bGVbXSl0ZW1wOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBydWxlc1RvQWRkLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHJ1bGVzVG9BZGRbal0pOworICAgICAgICAgICAgICAgICAgICBwcmVkZWNlc3NvciA9IHJ1bGVzVG9BZGRbal07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIG5vdyB3ZSBjYW4gYmFnIHRoZSBkZXNjcmlwdGlvbiBsaXN0CisgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMgPSBudWxsOworCisgICAgICAgIC8vIGZvciBydWxlcyB0aGF0IGRpZG4ndCBzcGVjaWZ5IGEgYmFzZSB2YWx1ZSwgdGhlaXIgYmFzZSB2YWx1ZXMKKyAgICAgICAgLy8gd2VyZSBpbml0aWFsaXplZCB0byAwLiAgTWFrZSBhbm90aGVyIHBhc3MgdGhyb3VnaCB0aGUgbGlzdCBhbmQKKyAgICAgICAgLy8gc2V0IGFsbCB0aG9zZSBydWxlcycgYmFzZSB2YWx1ZXMuICBXZSBhbHNvIHJlbW92ZSBhbnkgc3BlY2lhbAorICAgICAgICAvLyBydWxlcyBmcm9tIHRoZSBsaXN0IGFuZCBwdXQgdGhlbSBpbnRvIHRoZWlyIG93biBtZW1iZXIgdmFyaWFibGVzCisgICAgICAgIGxvbmcgZGVmYXVsdEJhc2VWYWx1ZSA9IDA7CisKKyAgICAgICAgLy8gKHRoaXMgaXNuJ3QgYSBmb3IgbG9vcCBiZWNhdXNlIHdlIG1pZ2h0IGJlIGRlbGV0aW5nIGl0ZW1zIGZyb20KKyAgICAgICAgLy8gdGhlIHZlY3Rvci0tIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIG9ubHkgaW5jcmVtZW50IGkgd2hlbgorICAgICAgICAvLyB3ZSBfZGlkbid0XyBkZWxldGUgYXl0aGluZyBmcm9tIHRoZSB2ZWN0b3IpCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCB0ZW1wUnVsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBORlJ1bGUgcnVsZSA9IChORlJ1bGUpdGVtcFJ1bGVzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgc3dpdGNoICgoaW50KXJ1bGUuZ2V0QmFzZVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgaXMgMCwgZmlsbCBpbiBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAvLyBiYXNlIHZhbHVlICh0aGlzIHdpbGwgYmUgMSBwbHVzIHRoZSBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAvLyBydWxlJ3MgYmFzZSB2YWx1ZSBmb3IgcmVndWxhciBydWxlIHNldHMsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGFzIHRoZSBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgaW4gZnJhY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBydWxlIHNldHMpCisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBydWxlLnNldEJhc2VWYWx1ZShkZWZhdWx0QmFzZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0ZyYWN0aW9uUnVsZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWZhdWx0QmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgY29weSBpdCBpbnRvIGl0cyBvd24KKyAgICAgICAgICAgICAgICAvLyBkYXRhIG1lbWJlciBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGxpc3QKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5ORUdBVElWRV9OVU1CRVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1iZXJSdWxlID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFOgorICAgICAgICAgICAgICAgICAgICBmcmFjdGlvblJ1bGVzWzBdID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBwcm9wZXIgZnJhY3Rpb24gcnVsZSwgY29weSBpdCBpbnRvIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZWxlbWVudCBvZiBmcmFjdGlvblJ1bGVzCisgICAgICAgICAgICAgICAgY2FzZSBORlJ1bGUuUFJPUEVSX0ZSQUNUSU9OX1JVTEU6CisgICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uUnVsZXNbMV0gPSBydWxlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZXMucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIG1hc3RlciBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5NQVNURVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25SdWxlc1syXSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQncyBhIHJlZ3VsYXIgcnVsZSB0aGF0IGFscmVhZHkga25vd3MgaXRzIGJhc2UgdmFsdWUsCisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBydWxlcyBhcmUgaW4gb3JkZXIsIGFuZCB1cGRhdGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBiYXNlIHZhbHVlIGZvciB0aGUgbmV4dCBydWxlCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPCBkZWZhdWx0QmFzZVZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSdWxlcyBhcmUgbm90IGluIG9yZGVyLCBiYXNlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5nZXRCYXNlVmFsdWUoKSArICIgPCAiICsgZGVmYXVsdEJhc2VWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJhc2VWYWx1ZSA9IHJ1bGUuZ2V0QmFzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrZGVmYXVsdEJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2UgY2FuIGNvcHkgdGhlIHJ1bGVzIGZyb20gdGhlIHZlY3RvciBpbnRvIGEKKyAgICAgICAgLy8gZml4ZWQtbGVuZ3RoIGFycmF5CisgICAgICAgIHJ1bGVzID0gbmV3IE5GUnVsZVt0ZW1wUnVsZXMuc2l6ZSgpXTsKKyAgICAgICAgdGVtcFJ1bGVzLmNvcHlJbnRvKChPYmplY3RbXSlydWxlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmxhZ3MgdGhpcyBydWxlIHNldCBhcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyBmdW5jdGlvbiBpcworICAgICAqIGNhbGxlZCBkdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBwcm9jZXNzIG9uY2Ugd2Uga25vdyB0aGlzIHJ1bGUKKyAgICAgKiBzZXQgaXMgYSBmcmFjdGlvbiBydWxlIHNldC4gIFdlIGRvbid0IGtub3cgYSBydWxlIHNldCBpcyBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQgdW50aWwgd2Ugc2VlIGl0IHVzZWQgc29tZXdoZXJlLiAgVGhpcyBmdW5jdGlvbgorICAgICAqIGlzIG5vdCBhZCBtdXN0IG5vdCBiZSBjYWxsZWQgYXQgYW55IHRpbWUgb3RoZXIgdGhhbiBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbWFrZUludG9GcmFjdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIGlzRnJhY3Rpb25SdWxlU2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gcnVsZSBzZXRzIGZvciBlcXVhbGl0eS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgcnVsZSBzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBydWxlIHNldHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBpZiBkaWZmZXJlbnQgY2xhc3NlcywgdGhleSdyZSBub3QgZXF1YWwKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIE5GUnVsZVNldCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgY29tcGFyZSB0aGUgbWVtYmVycyBvbmUgYnkgb25lLi4uCisgICAgICAgICAgICBORlJ1bGVTZXQgdGhhdDIgPSAoTkZSdWxlU2V0KXRoYXQ7CisKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHModGhhdDIubmFtZSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKG5lZ2F0aXZlTnVtYmVyUnVsZSwgdGhhdDIubmVnYXRpdmVOdW1iZXJSdWxlKQorICAgICAgICB8fCAhVXRpbGl0eS5vYmplY3RFcXVhbHMoZnJhY3Rpb25SdWxlc1swXSwgdGhhdDIuZnJhY3Rpb25SdWxlc1swXSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKGZyYWN0aW9uUnVsZXNbMV0sIHRoYXQyLmZyYWN0aW9uUnVsZXNbMV0pCisgICAgICAgIHx8ICFVdGlsaXR5Lm9iamVjdEVxdWFscyhmcmFjdGlvblJ1bGVzWzJdLCB0aGF0Mi5mcmFjdGlvblJ1bGVzWzJdKQorICAgICAgICB8fCBydWxlcy5sZW5ndGggIT0gdGhhdDIucnVsZXMubGVuZ3RoCisgICAgICAgICAgICAgICAgfHwgaXNGcmFjdGlvblJ1bGVTZXQgIT0gdGhhdDIuaXNGcmFjdGlvblJ1bGVTZXQpIHsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLi4udGhlbiBjb21wYXJlIHRoZSBydWxlIGxpc3RzLi4uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlc1tpXS5lcXVhbHModGhhdDIucnVsZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLmFuZCBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRuZXkncmUgZXF1YWwKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgcnVsZSBzZXQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgYSBydWxlIHNldC4gIFRoaXMgd29uJ3QKKyAgICAgKiBuZWNlc3NhcmlseSBiZSB0aGUgc2FtZSBkZXNjcmlwdGlvbiB0aGF0IHRoZSBydWxlIHNldCB3YXMKKyAgICAgKiBjb25zdHJ1Y3RlZCB3aXRoLCBidXQgaXQgd2lsbCBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyB0aGUgcnVsZSBzZXQgbmFtZSBnb2VzIGZpcnN0Li4uCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmFtZSArICI6XG4iKTsKKworICAgICAgICAvLyBmb2xsb3dlZCBieSB0aGUgcmVndWxhciBydWxlcy4uLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIHJ1bGVzW2ldLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvbGxvd2VkIGJ5IHRoZSBzcGVjaWFsIHJ1bGVzIChpZiB0aGV5IGV4aXN0KQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgbmVnYXRpdmVOdW1iZXJSdWxlLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJhY3Rpb25SdWxlc1swXSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIGZyYWN0aW9uUnVsZXNbMF0udG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgZnJhY3Rpb25SdWxlc1sxXS50b1N0cmluZygpICsgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZyYWN0aW9uUnVsZXNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAgICIgKyBmcmFjdGlvblJ1bGVzWzJdLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNheXMgd2hldGhlciB0aGlzIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0OyBmYWxzZSBpZiBpdCBpc24ndAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJhY3Rpb25TZXQoKSB7CisgICAgICAgIHJldHVybiBpc0ZyYWN0aW9uUnVsZVNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1B1YmxpYygpIHsKKyAgICByZXR1cm4gIW5hbWUuc3RhcnRzV2l0aCgiJSUiKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBsb25nLiAgU2VsZWN0cyBhbiBhcHByb3ByaWF0ZSBydWxlIGFuZCBkaXNwYXRjaGVzCisgICAgICogY29udHJvbCB0byBpdC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHQgaXMgdG8gYmUgcGxhY2VkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHQgb2YKKyAgICAgKiB0aGlzIG9wZXJhdGlvbiBpcyB0byBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kTm9ybWFsUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRvdWJsZS4gIFNlbGVjdHMgYW4gYXBwcm9wcmlhdGUgcnVsZSBhbmQgZGlzcGF0Y2hlcworICAgICAqIGNvbnRyb2wgdG8gaXQuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEBwYXJhbSB0b0luc2VydEludG8gVGhlIHN0cmluZyB3aGVyZSB0aGUgcmVzdWx0IGlzIHRvIGJlIHBsYWNlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0IG9mCisgICAgICogdGhpcyBvcGVyYXRpb24gaXMgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VsZWN0cyBhbiBhcHJvcHJpYXRlIHJ1bGUgZm9yIGZvcm1hdHRpbmcgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgaXQKKyAgICAgKi8KKyAgICBwcml2YXRlIE5GUnVsZSBmaW5kUnVsZShkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUgbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUsIHdlIHByZXRlbmQgaXQncyBhCisgICAgICAgIC8vIHBvc2l0aXZlIG51bWJlcikKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIGlmIChuZWdhdGl2ZU51bWJlclJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZWdhdGl2ZU51bWJlclJ1bGU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWJlciA9IC1udW1iZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzbid0IGFuIGludGVnZXIsIHdlIHVzZSBvbmUgZiB0aGUgZnJhY3Rpb24gcnVsZXMuLi4KKyAgICAgICAgaWYgKG51bWJlciAhPSBNYXRoLmZsb29yKG51bWJlcikpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgYmV0d2VlbiAwIGFuZCAxLCByZXR1cm4gdGhlIHByb3BlcgorICAgICAgICAgICAgLy8gZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgaWYgKG51bWJlciA8IDEgJiYgZnJhY3Rpb25SdWxlc1sxXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWN0aW9uUnVsZXNbMV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICBlbHNlIGlmIChmcmFjdGlvblJ1bGVzWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhY3Rpb25SdWxlc1swXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZXJlJ3MgYSBtYXN0ZXIgcnVsZSwgdXNlIGl0IHRvIGZvcm1hdCB0aGUgbnVtYmVyCisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworCisgICAgICAgIC8vIGFuZCBpZiB3ZSBoYXZlbid0IHlldCByZXR1cm5lZCBhIHJ1bGUsIHVzZSBmaW5kTm9ybWFsUnVsZSgpCisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFwcGxpY2FibGUgcnVsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZpbmROb3JtYWxSdWxlKChsb25nKU1hdGgucm91bmQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgdmFsdWUgcGFzc2VkIHRvIGZpbmRSdWxlKCkgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBmaW5kUnVsZSgpCisgICAgICogdXNlcyB0aGlzIGZ1bmN0aW9uIHRvIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgcnVsZS4gIFRoZSByZXN1bHQgd2lsbAorICAgICAqIGdlbmVyYWxseSBiZSB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgICAgICogdG8gdGhlIG51bWJlci4gIFRoZXJlIGlzIG9uZSBleGNlcHRpb24gdG8gdGhpczogSWYgdGhhdCBydWxlIGhhcworICAgICAqIHR3byBzdWJzdGl0dXRpb25zIGFuZCBhIGJhc2UgdmFsdWUgdGhhdCBpcyBub3QgYW4gZXZlbiBtdWx0aXBsZSBvZgorICAgICAqIGl0cyBkaXZpc29yLCBhbmQgdGhlIG51bWJlciBpdHNlbGYgSVMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzCisgICAgICogZGl2aXNvciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgdGhlIHJ1bGUgdGhhdCBwcmVjZWRlZCB0aGUgb3JpZ2luYWwKKyAgICAgKiByZXN1bHQgaW4gdGhlIHJ1bGUgbGlzdC4gIChUaGlzIGJlaGF2aW9yIGlzIGtub3duIGFzIHRoZSAicm9sbGJhY2sKKyAgICAgKiBydWxlIiwgYW5kIGlzIHVzZWQgdG8gaGFuZGxlIG9wdGlvbmFsIHRleHQ6IGEgcnVsZSB3aXRoIG9wdGlvbmFsCisgICAgICogdGV4dCBpcyByZXByZXNlbnRlZCBpbnRlcm5hbGx5IGFzIHR3byBydWxlcywgYW5kIHRoZSByb2xsYmFjayBydWxlCisgICAgICogc2VsZWN0cyBhcHByb3ByaWF0ZSBiZXR3ZWVuIHRoZW0uICBUaGlzIGF2b2lkcyB0aGluZ3MgbGlrZSAidHdvCisgICAgICogaHVuZHJlZCB6ZXJvIi4pCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdG8gdXNlIHRvIGZvcm1hdCB0aGlzIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIGZpbmROb3JtYWxSdWxlKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgLy8gdG8gZmluZCB0aGUgcnVsZSAod2Ugc2hvdWxkIG9ubHkgZ28gaW50byB0aGlzIGNsYXVzZSBpZiB0aGUKKyAgICAgICAgLy8gdmFsdWUgaXMgMCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IG9uZSwgcHJldGVuZCB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlKQorICAgICAgICBpZiAobnVtYmVyIDwgMCkgeworICAgICAgICAgICAgaWYgKG5lZ2F0aXZlTnVtYmVyUnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlTnVtYmVyUnVsZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbnVtYmVyID0gLW51bWJlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBwcmVjZWRpbmcgdHdvIGNoZWNrcywgZXZlbiB0aG91Z2ggd2UKKyAgICAgICAgLy8gZG8gdGhlbSBpbiBmaW5kUnVsZSgpLCBiZWNhdXNlIHRoZSB2ZXJzaW9uIG9mIGZvcm1hdCgpIHRoYXQKKyAgICAgICAgLy8gdGFrZXMgYSBsb25nIGJ5cGFzc2VzIGZpbmRSdWxlKCkgYW5kIGdvZXMgc3RyYWlnaHQgdG8gdGhpcworICAgICAgICAvLyBmdW5jdGlvbi4gIFRoaXMgZnVuY3Rpb24gZG9lcyBza2lwIHRoZSBmcmFjdGlvbiBydWxlcyBzaW5jZQorICAgICAgICAvLyB3ZSBrbm93IHRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIChpdCBhbHNvIHNraXBzIHRoZSBtYXN0ZXIKKyAgICAgICAgLy8gcnVsZSwgc2luY2UgaXQncyBjb25zaWRlcmVkIGEgZnJhY3Rpb24gcnVsZS4gIFNraXBwaW5nIHRoZQorICAgICAgICAvLyBtYXN0ZXIgcnVsZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gaG93IHdlIGF2b2lkIGluZmluaXRlCisgICAgICAgIC8vIHJlY3Vyc2lvbikKKworICAgICAgICAvLyBiaW5hcnktc2VhcmNoIHRoZSBydWxlIGxpc3QgZm9yIHRoZSBhcHBsaWNhYmxlIHJ1bGUKKyAgICAgICAgLy8gKGEgcnVsZSBpcyB1c2VkIGZvciBhbGwgdmFsdWVzIGZyb20gaXRzIGJhc2UgdmFsdWUgdG8KKyAgICAgICAgLy8gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUpCisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IHJ1bGVzLmxlbmd0aDsKKyAgICBpZiAoaGkgPiAwKSB7CisgICAgICAgIHdoaWxlIChsbyA8IGhpKSB7CisgICAgICAgIGludCBtaWQgPSAobG8gKyBoaSkgLyAyOworICAgICAgICBpZiAocnVsZXNbbWlkXS5nZXRCYXNlVmFsdWUoKSA9PSBudW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlc1ttaWRdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJ1bGVzW21pZF0uZ2V0QmFzZVZhbHVlKCkgPiBudW1iZXIpIHsKKyAgICAgICAgICAgIGhpID0gbWlkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG8gPSBtaWQgKyAxOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGhpID09IDApIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlRoZSBydWxlIHNldCAiICsgbmFtZSArICIgY2Fubm90IGZvcm1hdCB0aGUgdmFsdWUgIiArIG51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgTkZSdWxlIHJlc3VsdCA9IHJ1bGVzW2hpIC0gMV07CisKKyAgICAgICAgLy8gdXNlIHNob3VsZFJvbGxCYWNrKCkgdG8gc2VlIHdoZXRoZXIgd2UgbmVlZCB0byBpbnZva2UgdGhlCisgICAgICAgIC8vIHJvbGxiYWNrIHJ1bGUgKHNlZSBzaG91bGRSb2xsQmFjaygpJ3MgZG9jdW1lbnRhdGlvbiBmb3IKKyAgICAgICAgLy8gYW4gZXhwbGFuYXRpb24gb2YgdGhlIHJvbGxiYWNrIHJ1bGUpLiAgSWYgd2UgZG8sIHJvbGwgYmFjaworICAgICAgICAvLyBvbmUgcnVsZSBhbmQgcmV0dXJuIHRoYXQgb25lIGluc3RlYWQgb2YgdGhlIG9uZSB3ZSdkIG5vcm1hbGx5CisgICAgICAgIC8vIHJldHVybgorICAgICAgICBpZiAocmVzdWx0LnNob3VsZFJvbGxCYWNrKG51bWJlcikpIHsKKyAgICAgICAgaWYgKGhpID09IDEpIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGUgcnVsZSBzZXQgIiArIG5hbWUgKyAiIGNhbm5vdCByb2xsIGJhY2sgZnJvbSB0aGUgcnVsZSAnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBydWxlc1toaSAtIDJdOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8vIGVsc2UgdXNlIHRoZSBtYXN0ZXIgcnVsZQorICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkKKyAgICAgKiBmaW5kUnVsZSgpIHRvIHNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBydWxlIGZvciBmb3JtYXR0aW5nCisgICAgICogdGhlIG51bWJlci4gIEJhc2ljYWxseSwgdGhlIGJhc2UgdmFsdWUgb2YgZWFjaCBydWxlIGluIHRoZSBydWxlCisgICAgICogc2V0IGlzIHRyZWF0ZWQgYXMgdGhlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uICBXaGljaGV2ZXIKKyAgICAgKiBkZW5vbWluYXRvciBjYW4gcHJvZHVjZSB0aGUgZnJhY3Rpb24gY2xvc2VzdCBpbiB2YWx1ZSB0byB0aGUKKyAgICAgKiBudW1iZXIgcGFzc2VkIGluIGlzIHRoZSByZXN1bHQuICBJZiB0aGVyZSdzIGEgdGllLCB0aGUgZWFybGllcgorICAgICAqIG9uZSBpbiB0aGUgbGlzdCB3aW5zLiAgKElmIHRoZXJlIGFyZSB0d28gcnVsZXMgaW4gYSByb3cgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGJhc2UgdmFsdWUsIHRoZSBmaXJzdCBvbmUgaXMgdXNlZCB3aGVuIHRoZSBudW1lcmF0b3Igb2YgdGhlCisgICAgICogZnJhY3Rpb24gd291bGQgYmUgMSwgYW5kIHRoZSBzZWNvbmQgcnVsZSBpcyB1c2VkIHRoZSByZXN0IG9mIHRoZQorICAgICAqIHRpbWUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAgICAgKiBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEpCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0IHRoaXMgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGUgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoZG91YmxlIG51bWJlcikgeworICAgICAgICAvLyB0aGUgb2J2aW91cyB3YXkgdG8gZG8gdGhpcyAobXVsdGlwbHkgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZAorICAgICAgICAvLyBieSBlYWNoIHJ1bGUncyBiYXNlIHZhbHVlIHVudGlsIHlvdSBnZXQgYW4gaW50ZWdyYWwgcmVzdWx0KQorICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYmVjYXVzZSBvZiByb3VuZGluZyBlcnJvci4gIFRoaXMgbWV0aG9kIGlzIG1vcmUKKyAgICAgICAgLy8gYWNjdXJhdGUKKworICAgICAgICAvLyBmaW5kIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcworICAgICAgICAvLyBhbmQgbXVsdGlwbHkgdGhpcyBieSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4gIFRoaXMgaXMKKyAgICAgICAgLy8gYWxsIHRoZSBwcmVjaXNpb24gd2UgbmVlZCwgYW5kIHdlIGNhbiBkbyBhbGwgb2YgdGhlIHJlc3QKKyAgICAgICAgLy8gb2YgdGhlIG1hdGggdXNpbmcgaW50ZWdlciBhcml0aG1ldGljCisgICAgICAgIGxvbmcgbGVhc3RDb21tb25NdWx0aXBsZSA9IHJ1bGVzWzBdLmdldEJhc2VWYWx1ZSgpOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsZWFzdENvbW1vbk11bHRpcGxlID0gbGNtKGxlYXN0Q29tbW9uTXVsdGlwbGUsIHJ1bGVzW2ldLmdldEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIG51bWVyYXRvciA9IChsb25nKShNYXRoLnJvdW5kKG51bWJlciAqIGxlYXN0Q29tbW9uTXVsdGlwbGUpKTsKKworICAgICAgICAvLyBmb3IgZWFjaCBydWxlLCBkbyB0aGUgZm9sbG93aW5nLi4uCisgICAgICAgIGxvbmcgdGVtcERpZmZlcmVuY2U7CisgICAgICAgIGxvbmcgZGlmZmVyZW5jZSA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2lubmVyID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gIm51bWVyYXRvciIgaXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gaXMgdGhlCisgICAgICAgICAgICAvLyBkZW5vbWluYXRvciBpcyB0aGUgTENELiAgVGhlIG51bWVyYXRvciBpZiB0aGUgdGhlIHJ1bGUncworICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZSBpcyB0aGUgZGVub21pYXRvciBpcyAibnVtZXJhdG9yIiB0aW1lcyB0aGUKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgZGl2aWRlZCBieXRoZSBMQ0QuICBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZgorICAgICAgICAgICAgLy8gdGhhdCdzIGFuIGludGVnZXIsIGFuZCBpZiBub3QsIGhvdyBjbG9zZSBpdCBpcyB0byBiZWluZworICAgICAgICAgICAgLy8gYW4gaW50ZWdlci4KKyAgICAgICAgICAgIHRlbXBEaWZmZXJlbmNlID0gbnVtZXJhdG9yICogcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgJSBsZWFzdENvbW1vbk11bHRpcGxlOworCisgICAgICAgICAgICAvLyBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiB0aGUgYWJvdmUgY2FsY3VsYXRpb246IHdlIHdhbnQKKyAgICAgICAgICAgIC8vIHRoZSBudW1lcmF0b3IncyBkaXN0YW5jZSBmcm9tIHRoZSBDTE9TRVNUIG11bHRpcGxlCisgICAgICAgICAgICAvLyBvZiB0aGUgTENECisgICAgICAgICAgICBpZiAobGVhc3RDb21tb25NdWx0aXBsZSAtIHRlbXBEaWZmZXJlbmNlIDwgdGVtcERpZmZlcmVuY2UpIHsKKyAgICAgICAgICAgICAgICB0ZW1wRGlmZmVyZW5jZSA9IGxlYXN0Q29tbW9uTXVsdGlwbGUgLSB0ZW1wRGlmZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhcyBjbG9zZSBhcyB3ZSd2ZSBjb21lLCBrZWVwIHRyYWNrIG9mIGhvdyBjbG9zZQorICAgICAgICAgICAgLy8gdGhhdCBpcywgYW5kIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcnVsZSB0aGF0IGRpZCBpdC4gIElmCisgICAgICAgICAgICAvLyB3ZSd2ZSBzY29yZWQgYSBkaXJlY3QgaGl0LCB3ZSBkb24ndCBoYXZlIHRvIGxvb2sgYXQgYW55IG1vcmUKKyAgICAgICAgICAgIC8vIHJ1bGVzCisgICAgICAgICAgICBpZiAodGVtcERpZmZlcmVuY2UgPCBkaWZmZXJlbmNlKSB7CisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZSA9IHRlbXBEaWZmZXJlbmNlOworICAgICAgICAgICAgICAgIHdpbm5lciA9IGk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBzdWNjZXNzaXZlIHJ1bGVzIHRoYXQgYm90aCBoYXZlIHRoZSB3aW5uaW5nIGJhc2UKKyAgICAgICAgLy8gdmFsdWUsIHRoZW4gdGhlIGZpcnN0IG9uZSAodGhlIG9uZSB3ZSBmb3VuZCBhYm92ZSkgaXMgdXNlZCBpZgorICAgICAgICAvLyB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxIGFuZCB0aGUgc2Vjb25kIG9uZSBpcyB1c2VkIGlmCisgICAgICAgIC8vIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIGFueXRoaW5nIGVsc2UgKHRoaXMgbGV0cyB1cworICAgICAgICAvLyBkbyB0aGluZ3MgbGlrZSAib25lIHRoaXJkIi8idHdvIHRoaXJkcyIgd2l0aG91dCBoYXZlaW5nIHRvIGRlZmluZQorICAgICAgICAvLyBhIHdob2xlIGJ1bmNoIG9mIGV4dHJhIHJ1bGUgc2V0cykKKyAgICAgICAgaWYgKHdpbm5lciArIDEgPCBydWxlcy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBydWxlc1t3aW5uZXIgKyAxXS5nZXRCYXNlVmFsdWUoKSA9PSBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA8IDEKKyAgICAgICAgICAgICAgICAgICAgfHwgTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA+PSAyKSB7CisgICAgICAgICAgICAgICAgKyt3aW5uZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCByZXR1cm4gdGhlIHdpbm5pbmcgcnVsZQorICAgICAgICByZXR1cm4gcnVsZXNbd2lubmVyXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgeCBhbmQgeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGxjbShsb25nIHgsIGxvbmcgeSkgeworICAgICAgICAvLyBiaW5hcnkgZ2NkIGFsZ29yaXRobSBmcm9tIEtudXRoLCAiVGhlIEFydCBvZiBDb21wdXRlciBQcm9ncmFtbWluZywiCisgICAgICAgIC8vIHZvbC4gMiwgMXN0IGVkLiwgcHAuIDI5OC0yOTkKKyAgICAgICAgbG9uZyB4MSA9IHg7CisgICAgICAgIGxvbmcgeTEgPSB5OworCisgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgIHdoaWxlICgoeDEgJiAxKSA9PSAwICYmICh5MSAmIDEpID09IDApIHsKKyAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICB4MSA+Pj0gMTsKKyAgICAgICAgICAgIHkxID4+PSAxOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0OworICAgICAgICBpZiAoKHgxICYgMSkgPT0gMSkgeworICAgICAgICAgICAgdCA9IC15MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHQgPSB4MTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICh0ICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlICgodCAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ID4+PSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHQgPiAwKSB7CisgICAgICAgICAgICAgICAgeDEgPSB0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB5MSA9IC10OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdCA9IHgxIC0geTE7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBnY2QgPSB4MSA8PCBwMjsKKworICAgICAgICAvLyB4ICogeSA9PSBnY2QoeCwgeSkgKiBsY20oeCwgeSkKKyAgICAgICAgcmV0dXJuIHggLyBnY2QgKiB5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIGEgc3RyaW5nLiAgTWF0Y2hlcyB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZCBhZ2FpbnN0IGVhY2gKKyAgICAgKiBvZiBpdHMgcnVsZXMgKHdpdGggYSBiYXNlIHZhbHVlIGxlc3MgdGhhbiB1cHBlckJvdW5kKSBhbmQgcmV0dXJucworICAgICAqIHRoZSB2YWx1ZSBwcm9kdWNlZCBieSB0aGUgcnVsZSB0aGF0IG1hdGNoZWQgdGhlIG1vc3QgY2hhcmN0ZXJzCisgICAgICogaW4gdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBpbml0aWFsIHBvc2l0aW9uIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQKKyAgICAgKiB0byBiZSAwLiAgT24gZXhpdCwgdGhpcyBvYmplY3QgaGFzIGJlZW4gdXBkYXRlZCB0byBwb2ludCB0byB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIgcG9zaXRpb24gdGhpcyBydWxlIHNldCBkaWRuJ3QgY29uc3VtZS4KKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBMaW1pdHMgdGhlIHJ1bGVzIHRoYXQgY2FuIGJlIGFsbG93ZWQgdG8gbWF0Y2guCisgICAgICogT25seSBydWxlcyB3aG9zZSBiYXNlIHZhbHVlcyBhcmUgc3RyaWN0bHkgbGVzcyB0aGFuIHVwcGVyQm91bmQKKyAgICAgKiBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1lcmljYWwgcmVzdWx0IG9mIHBhcnNpbmcgdGhpcyBzdHJpbmcuICBUaGlzIHdpbGwKKyAgICAgKiBiZSB0aGUgbWF0Y2hpbmcgcnVsZSdzIGJhc2UgdmFsdWUsIGNvbXBvc2VkIGFwcHJvcHJpYXRlbHkgd2l0aAorICAgICAqIHRoZSByZXN1bHRzIG9mIG1hdGNoaW5nIGFueSBvZiBpdHMgc3Vic3RpdHV0aW9ucy4gIFRoZSBvYmplY3QKKyAgICAgKiB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmcgaWYgaXQncyBhbiBpbnRlZ3JhbCB2YWx1ZTsgb3RoZXJ3aXNlLAorICAgICAqIGl0IHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgRG91YmxlLiAgVGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucworICAgICAqIGEgdmFsaWQgb2JqZWN0OiBJZiBub3RoaW5nIG1hdGNoZWQgdGhlIGlucHV0IHN0cmluZyBhdCBhbGwsCisgICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5ldyBMb25nKDApLCBhbmQgdGhlIHBhcnNlIHBvc2l0aW9uIGlzCisgICAgICogbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgdXBwZXJCb3VuZCkgeworICAgICAgICAvLyB0cnkgbWF0Y2hpbmcgZWFjaCBydWxlIGluIHRoZSBydWxlIHNldCBhZ2FpbnN0IHRoZSB0ZXh0IGJlaW5nCisgICAgICAgIC8vIHBhcnNlZC4gIFdoaWNoZXZlciBvbmUgbWF0Y2hlcyB0aGUgbW9zdCBjaGFyYWN0ZXJzIGlzIHRoZSBvbmUKKyAgICAgICAgLy8gdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSB3ZSByZXR1cm4uCisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGR1bXAgb3V0IGlmIHRoZXJlJ3Mgbm8gdGV4dCB0byBwYXJzZQorICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RhcnQgYnkgdHJ5aW5nIHRoZSBuZWhhdGl2ZSBudW1iZXIgcnVsZSAoaWYgdGhlcmUgaXMgb25lKQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBuZWdhdGl2ZU51bWJlclJ1bGUuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBmYWxzZSwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlbiB0cnkgZWFjaCBvZiB0aGUgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gZnJhY3Rpb25SdWxlc1tpXS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIGdvIHRocm91Z2ggdGhlIHJlZ3VsYXIgcnVsZXMgb25lIGF0IGEgdGltZS4gIFdlIHN0YXJ0CisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgYmVjYXVzZSB3ZSB3YW50IHRvIHRyeSBtYXRjaGluZyB0aGUgbW9zdAorICAgICAgICAvLyBzaWdpZmljYW50IHJ1bGUgZmlyc3QgKHRoaXMgaGVscHMgZW5zdXJlIHRoYXQgd2UgcGFyc2UKKyAgICAgICAgLy8gImZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCBzaXgiIGFzCisgICAgICAgIC8vICIoZml2ZSB0aG91c2FuZCkgKHRocmVlIGh1bmRyZWQpIChzaXgpIiByYXRoZXIgdGhhbgorICAgICAgICAvLyAiKChmaXZlIHRob3VzYW5kIHRocmVlKSBodW5kcmVkKSAoc2l4KSIpLiAgU2tpcCBydWxlcyB3aG9zZQorICAgICAgICAvLyBiYXNlIHZhbHVlcyBhcmUgaGlnaGVyIHRoYW4gdGhlIHVwcGVyIGJvdW5kIChhZ2FpbiwgdGhpcyBoZWxwcworICAgICAgICAvLyBsaW1pdCBhbWJpZ3VpdHkgYnkgbWFraW5nIHN1cmUgdGhlIHJ1bGVzIHRoYXQgbWF0Y2ggYSBydWxlJ3MKKyAgICAgICAgLy8gYXJlIGxlc3Mgc2lnbmlmaWNhbnQgdGhhbiB0aGUgcnVsZSBjb250YWluaW5nIHRoZSBzdWJzdGl0dXRpb25zKS8KKyAgICAgICAgZm9yIChpbnQgaSA9IHJ1bGVzLmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQgJiYgcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgPj0gdXBwZXJCb3VuZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZXNbaV0uZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBpc0ZyYWN0aW9uUnVsZVNldCwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgdXBkYXRlIHRoZSBwYXJzZSBwb3N0aW9uIHdlIHdlcmUgcGFzc2VkIHRvIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBmaXJzdCBjaGFyYWN0ZXIgd2UgZGlkbid0IHVzZSwgYW5kIHJldHVybiB0aGUgcmVzdWx0IHRoYXQKKyAgICAgICAgLy8gY3BvcnJlc3BvbmRzIHRvIHRoYXQgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBlcnJvci1pbmRleCBBUEkgb24gUGFyc2VQb3NpdGlvbiBpc24ndCB0aGVyZSBpbiAxLjEueAorLy8gICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgoaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GU3Vic3RpdHV0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NTFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCkBAIC0wLDAgKzEsMTkzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC4qOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE5GU3Vic3RpdHV0aW9uIChhYnN0cmFjdCBiYXNlIGNsYXNzKQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgZGVmaW5pbmcgcHJvdG9jb2wgZm9yIHN1YnN0aXR1dGlvbnMuICBBIHN1YnN0aXR1dGlvbgorICogaXMgYSBzZWN0aW9uIG9mIGEgcnVsZSB0aGF0IGluc2VydHMgdGV4dCBpbnRvIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgKiBiYXNlZCBvbiBzb21lIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKi8KK2Fic3RyYWN0IGNsYXNzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlIHJ1bGUgdGhhdCBvd25zIGl0CisgICAgICovCisgICAgaW50IHBvczsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LCBvciBudWxsLgorICAgICAqIChFaXRoZXIgdGhpcyBvciBudW1iZXJGb3JtYXQgaGFzIHRvIGJlIG5vbi1udWxsLikKKyAgICAgKi8KKyAgICBORlJ1bGVTZXQgcnVsZVNldCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgRGVjaW1hbEZvcm1hdCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LAorICAgICAqIG9yIG51bGwuICAoRWl0aGVyIHRoaXMgb3IgcnVsZVNldCBoYXMgdG8gYmUgbm9uLW51bGwuKQorICAgICAqLworICAgIERlY2ltYWxGb3JtYXQgbnVtYmVyRm9ybWF0ID0gbnVsbDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIGRlc2NyaXB0aW9uLCBjcmVhdGVzIHRoZSByaWdodCBraW5kIG9mIHN1YnN0aXR1dGlvbiwKKyAgICAgKiBhbmQgaW5pdGlhbGl6ZXMgaXQgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQuCisgICAgICogQHBhcmFtIHJ1bGUgVGhlIHJ1bGUgY29udGFpbmluZyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBydWxlUHJlZGVjZXNzb3IgVGhlIHJ1bGUgcHJlY2VkaW5nIHRoZSBvbmUgdGhhdCBjb250YWlucworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlIHNldCdzIHJ1bGUgbGlzdCAodGhpcyBpcyB1c2VkCisgICAgICogb25seSBmb3IgPj4+IHN1YnN0aXR1dGlvbnMpLgorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhpcworICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IHVsdGltYXRlbHkgb3ducworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB0byBwYXJzZSB0byBidWlsZCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogKHRoaXMgaXMganVzdCB0aGUgc3Vic3RyaW5nIG9mIHRoZSBydWxlJ3MgZGVzY3JpcHRpb24gY29udGFpbmluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gaXRzZWxmKQorICAgICAqIEByZXR1cm4gQSBuZXcgc3Vic3RpdHV0aW9uIGNvbnN0cnVjdGVkIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE5GU3Vic3RpdHV0aW9uIG1ha2VTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSBydWxlUHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGlzIGVtcHR5LCByZXR1cm4gYSBOdW1tU3Vic3RpdHV0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE51bGxTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoZGVzY3JpcHRpb24uY2hhckF0KDApKSB7CisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJzwnLi4uCisgICAgICAgIGNhc2UgJzwnOgorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBydWxlIGlzIGEgbmVnYXRpdmUgbnVtYmVyCisgICAgICAgICAgICAvLyBydWxlCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI8PCBub3QgYWxsb3dlZCBpbiBuZWdhdGl2ZS1udW1iZXIgcnVsZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUsIHJldHVybiBhbgorICAgICAgICAgICAgLy8gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEludGVncmFsUGFydFN1YnN0aXR1dGlvbihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uCisgICAgICAgICAgICAvLyBydWxlIHNldCwgcmV0dXJuIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJhdG9yU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXRCYXNlVmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZ2V0RGVmYXVsdFJ1bGVTZXQoKSwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTXVsdGlwbGllclN1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJz4nLi4uCisgICAgICAgIGNhc2UgJz4nOgorICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgcmV0dXJuCisgICAgICAgICAgICAvLyBhbiBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBmcmFjdGlvbiBydWxlLCByZXR1cm4gYQorICAgICAgICAgICAgLy8gRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24KKyAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLklNUFJPUEVSX0ZSQUNUSU9OX1JVTEUKKyAgICAgICAgICAgICAgICAgICAgIHx8IHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLlBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5NQVNURVJfUlVMRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgc2V0IG93bmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIj4+IG5vdCBhbGxvd2VkIGluIGZyYWN0aW9uIHJ1bGUgc2V0Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTW9kdWx1c1N1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2R1bHVzU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAnPScsIGFsd2F5cyByZXR1cm4gYQorICAgICAgICAgICAgLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgIGNhc2UgJz0nOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTYW1lVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gYW5kIGlmIGl0J3MgYW55dGhpbmcgZWxzZSwgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2UgY29uc3RydWN0b3IgZm9yIHN1YnN0aXR1dGlvbnMuICBUaGlzIGNvbnN0cnVjdG9yIHNldHMgdXAgdGhlCisgICAgICogZmllbGRzIHdoaWNoIGFyZSBjb21tb24gdG8gYWxsIHN1YnN0aXR1dGlvbnMuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIG93bmluZyBydWxlJ3MgcnVsZQorICAgICAqIHRleHQKKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGZvcm1hdHRlciBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3IgKGkuZS4sIHRoZSB0ZXh0CisgICAgICogaW5zaWRlIHRoZSB0b2tlbiBjaGFyYWN0ZXJzKQorICAgICAqLworICAgIE5GU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHBhcmVudCBydWxlCisgICAgICAgIHRoaXMucG9zID0gcG9zOworCisgICAgICAgIC8vIHRoZSBkZXNjcmlwdGlvbiBzaG91bGQgYmVnaW4gYW5kIGVuZCB3aXRoIHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICAgICAgLy8gSWYgaXQgZG9lc24ndCB0aGF0J3MgYSBzeW50YXggZXJyb3IuICBPdGhlcndpc2UsCisgICAgICAgIC8vIG1ha2VTdWJzdGl0dXRpb24oKSB3YXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBuZWVkZWQgdG8ga25vdworICAgICAgICAvLyBhYm91dCB0aGVzZSBjaGFyYWN0ZXJzLCBzbyBzdHJpcCB0aGVtIG9mZgorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPj0gMiAmJiBkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gZGVzY3JpcHRpb24uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDEsIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gd2FzIGp1c3QgdHdvIHBhaXJlZCB0b2tlbiBjaGFyYWN0ZXJzCisgICAgICAgIC8vIChpLmUuLCAiPDwiIG9yICI+PiIpLCBpdCB1c2VzIHRoZSBydWxlIHNldCBpdCBiZWxvbmdzIHRvIHRvCisgICAgICAgIC8vIGZvcm1hdCBpdHMgcmVzdWx0CisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGNvbnRhaW5zIGEgcnVsZSBzZXQgbmFtZSwgdGhhdCdzIHRoZSBydWxlCisgICAgICAgIC8vIHNldCB3ZSB1c2UgdG8gZm9ybWF0IHRoZSByZXN1bHQ6IGdldCBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgLy8gbmFtZXMgcnVsZSBzZXQKKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24uY2hhckF0KDApID09ICclJykgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0ID0gZm9ybWF0dGVyLmZpbmRSdWxlU2V0KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAwIG9yICMsIHRyZWF0IGl0IGFzIGEKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBwYXR0ZXJuLCBhbmQgaW5pdGlhbGl6ZSBhIERlY2ltYWxGb3JtYXQgd2l0aAorICAgICAgICAvLyB0aGF0IHBhdHRlcm4gKHRoZW4gc2V0IGl0IHRvIHVzZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgICAgLy8gYmVsb25naW5nIHRvIG91ciBmb3JtYXR0ZXIpCisgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnIycgfHwgZGVzY3JpcHRpb24uY2hhckF0KDApID09ICcwJykgeworICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhmb3JtYXR0ZXIuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gaXMgIj4+PiIsIHRoaXMgc3Vic3RpdHV0aW9uIGJ5cGFzc2VzIHRoZQorICAgICAgICAvLyB1c3VhbCBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBhbHdheXMgdXNlcyB0aGUgcnVsZSB0aGF0IHByZWNlZGVzCisgICAgICAgIC8vIGl0IGluIGl0cyBvd24gcnVsZSBzZXQncyBydWxlIGxpc3QgKHRoaXMgaXMgdXNlZCBmb3IgcGxhY2UtdmFsdWUKKyAgICAgICAgLy8gbm90YXRpb25zOiBmb3JtYXRzIHdoZXJlIHlvdSB3YW50IHRvIHNlZSBhIHBhcnRpY3VsYXIgcGFydCBvZgorICAgICAgICAvLyBhIG51bWJlciBldmVuIHdoZW4gaXQncyAwKQorICAgICAgICBlbHNlIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJz4nKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OyAvLyB3YXMgbnVsbCwgdGhhaSBydWxlcyBhZGRlZCB0byBjb250cm9sIHNwYWNlCisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbmQgb2YgdGhlIGRlc2NyaXB0aW9uIGlzIG5vbmUgb2YgdGhlc2UgdGhpbmdzLCBpdCdzIGEgc3ludGF4IGVycm9yCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQncyB0aGUgc3Vic3RpdHV0aW9uJ3MgZGl2aXNvci4gIFVzZWQgYnkgTkZSdWxlLnNldEJhc2VWYWx1ZSgpLgorICAgICAqIEEgbm8tb3AgZm9yIGFsbCBzdWJzdGl0dXRpb25zIGV4Y2VwdCBtdWx0aXBsaWVyIGFuZCBtb2R1bHVzCisgICAgICogc3Vic3RpdHV0aW9ucy4KKyAgICAgKiBAcGFyYW0gcmFkaXggVGhlIHJhZGl4IG9mIHRoZSBkaXZpc29yCisgICAgICogQHBhcmFtIGV4cG9uZW50IFRoZSBleHBvbmVudCBvZiB0aGUgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgLy8gYSBuby1vcCBmb3IgYWxsIHN1YnN0aXR1dGlvbnMgZXhjZXB0IG11bHRpcGxpZXIgYW5kIG1vZHVsdXMgc3Vic3RpdHV0aW9ucworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHR3byBzdWJzdGl0dXRpb25zIGZvciBlcXVhbGl0eQorICAgICAqIEBwYXJhbSBUaGUgc3Vic3RpdHV0aW9uIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG8KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBjb21wYXJlIGNsYXNzIGFuZCBhbGwgb2YgdGhlIGZpZWxkcyBhbGwgc3Vic3RpdHV0aW9ucyBoYXZlCisgICAgICAgIC8vIGluIGNvbW1vbgorICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpID09IHRoYXQuZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgTkZTdWJzdGl0dXRpb24gdGhhdDIgPSAoTkZTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIHBvcyA9PSB0aGF0Mi5wb3MKKyAgICAgICAgICAgICAgICAmJiAocnVsZVNldCA9PSBudWxsID8gdGhhdDIucnVsZVNldCA9PSBudWxsIDogdHJ1ZSkgLy8gY2FuJ3QgY29tcGFyZSB0cmVlIHN0cnVjdHVyZSwgbm8gLmVxdWFscyBvciByZWN1cnNlCisgICAgICAgICAgICAgICAgJiYgKG51bWJlckZvcm1hdCA9PSBudWxsID8gKHRoYXQyLm51bWJlckZvcm1hdCA9PSBudWxsKSA6IG51bWJlckZvcm1hdC5lcXVhbHModGhhdDIubnVtYmVyRm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3Vic3RpdHV0aW9uLiAgVGhpcyBtaWdodAorICAgICAqIG5vdCBiZSBpZGVudGljYWwgdG8gdGhlIGRlc2NyaXB0aW9uIGl0IHdhcyBjcmVhdGVkIGZyb20sIGJ1dAorICAgICAqIGl0J2xsIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIC8vIHVzZSB0b2tlbkNoYXIoKSB0byBnZXQgdGhlIGNoYXJhY3RlciBhdCB0aGUgYmVnaW5uaW5nIGFuZAorICAgICAgICAvLyBlbmQgb2YgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbi4gIEluIGJldHdlZW4gdGhlbSB3aWxsIGdvCisgICAgICAgIC8vIGVpdGhlciB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQgaXQgdXNlcywgb3IgdGhlIHBhdHRlcm4gb2YKKyAgICAgICAgLy8gdGhlIERlY2ltYWxGb3JtYXQgaXQgdXNlcworICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gdG9rZW5DaGFyKCkgKyBydWxlU2V0LmdldE5hbWUoKSArIHRva2VuQ2hhcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRva2VuQ2hhcigpICsgbnVtYmVyRm9ybWF0LnRvUGF0dGVybigpICsgdG9rZW5DaGFyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLCBmb3JtYXRzIGl0IHVzaW5nCisgICAgICogZWl0aGVyIHJ1bGVTZXQgb3IgZGVjaW1hbEZvcm1hdCwgYW5kIGluc2VydHMgdGhlIHJlc3VsdCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdlIGluc2VydCB0aGUgcmVzdWx0IGludG8KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIG93bmluZyBydWxlJ3MKKyAgICAgKiBydWxlIHRleHQgYmVnaW5zICh0aGlzIHZhbHVlIGlzIGFkZGVkIHRvIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBwb3NpdGlvbiB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGVyZSB0byBpbnNlcnQgdGhlIG5ldyB0ZXh0KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHBlcmZvcm0gYSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIHRoYXQgaXMgZGVwZW5kZW50CisgICAgICAgICAgICAvLyBvbiB0aGUgdHlwZSBvZiBzdWJzdGl0dXRpb24gdGhpcyBpcywgdGhlbiBqdXN0IGNhbGwgaXRzCisgICAgICAgICAgICAvLyBydWxlIHNldCdzIGZvcm1hdCgpIG1ldGhvZCB0byBmb3JtYXQgdGhlIHJlc3VsdAorICAgICAgICAgICAgbG9uZyBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBvciBwZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIChwcmVzZXJ2aW5nCisgICAgICAgICAgICAvLyB0aGUgcmVzdWx0J3MgZnJhY3Rpb25hbCBwYXJ0IGlmIHRoZSBmb3JtYXR0ZXIgaXQgc2V0CisgICAgICAgICAgICAvLyB0byBzaG93IGl0KSwgdGhlbiB1c2UgdGhhdCBmb3JtYXR0ZXIncyBmb3JtYXQoKSBtZXRob2QKKyAgICAgICAgICAgIC8vIHRvIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyVG9Gb3JtYXQgPSB0cmFuc2Zvcm1OdW1iZXIoKGRvdWJsZSludW1iZXIpOworICAgICAgICAgICAgaWYgKG51bWJlckZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyVG9Gb3JtYXQgPSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBhbiBpbnRlZ2VyLCBmcm9tIGhlcmUgb24gb3V0IHdlIHdvcmsgaW4gaW50ZWdlcgorICAgICAgICAvLyBzcGFjZSAoc2F2aW5nIHRpbWUgYW5kIG1lbW9yeSBhbmQgcHJlc2VydmluZyBhY2N1cmFjeSkKKyAgICAgICAgaWYgKG51bWJlclRvRm9ybWF0ID09IE1hdGguZmxvb3IobnVtYmVyVG9Gb3JtYXQpICYmIHJ1bGVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoKGxvbmcpbnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzbid0IGFuIGludGVnZXIsIHRoZW4gY2FsbCBlaXRoZXIgb3VyIHJ1bGUgc2V0J3MKKyAgICAgICAgICAgIC8vIGZvcm1hdCgpIG1ldGhvZCBvciBvdXIgRGVjaW1hbEZvcm1hdCdzIGZvcm1hdCgpIG1ldGhvZCB0bworICAgICAgICAgICAgLy8gZm9ybWF0IHRoZSByZXN1bHQKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zICsgdGhpcy5wb3MsIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBwZXJmb3JtIHNvbWUga2luZCBvZgorICAgICAqIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlci4gIFRoZSByZXN1bHQgb2YgdGhpcyBvcGVyYXRpb24KKyAgICAgKiBpcyBmb3JtYXR0ZWQgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgdGhhdCB0aGlzCisgICAgICogc3Vic3RpdHV0aW9uIHJlZmVycyB0bywgYW5kIHRoZSByZXN1bHQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0CisgICAgICogc3RyaW5nLgorICAgICAqIEBwYXJhbSBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBvcHJlcmF0aW9uIG9uIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpOworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIHBlcmZvcm0gc29tZSBraW5kIG9mCisgICAgICogbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLiAgVGhlIHJlc3VsdCBvZiB0aGlzIG9wZXJhdGlvbgorICAgICAqIGlzIGZvcm1hdHRlZCB1c2luZyB0aGUgcnVsZSBzZXQgb3IgRGVjaW1hbEZvcm1hdCB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gcmVmZXJzIHRvLCBhbmQgdGhlIHJlc3VsdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHQKKyAgICAgKiBzdHJpbmcuCisgICAgICogQHBhcmFtIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUaGUgcmVzdWx0IG9mIHBlcmZvcm1pbmcgdGhlIG9wcmVyYXRpb24gb24gdGhlIG51bWJlcgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgYSBzdHJpbmcgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgYmVsb25naW5nCisgICAgICogdG8gdGhpcyBzdWJzdGl0dXRpb24uICBJZiB0aGVyZSdzIGEgbWF0Y2gsIGEgbWF0aGVtYXRpY2FsCisgICAgICogb3BlcmF0aW9uICh0aGUgaW52ZXJzZSBvZiB0aGUgb25lIHVzZWQgaW4gZm9ybWF0dGluZykgaXMKKyAgICAgKiBwZXJmb3JtZWQgb24gdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2UgYW5kIHRoZSB2YWx1ZSBwYXNzZWQgaW4KKyAgICAgKiBhbmQgcmV0dXJuZWQgYXMgdGhlIHJlc3VsdC4gIFRoZSBwYXJzZSBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvCisgICAgICogcG9pbnQgdG8gdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gT24gZW50cnksIGlnbm9yZWQsIGJ1dCBhc3N1bWVkIHRvIGJlIDAuCisgICAgICogT24gZXhpdCwgdGhpcyBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQKKyAgICAgKiBjaGFyYWN0ZXIgKG9yIDAgaWYgdGhlIHN1YnN0aXR1dGlvbiBkaWRuJ3QgbWF0Y2gpCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBBIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHRoYXQgc2hvdWxkIGJlCisgICAgICogY29tYmluZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoaXMgcGFyc2UKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIHNlYXJjaGluZyB0aGUgcnVsZSBzZXQgZm9yIGEgcnVsZQorICAgICAqIG1hdGNoaW5nIHRoZSBzdHJpbmcgcGFzc2VkIGluLCBvbmx5IHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMKKyAgICAgKiBsb3dlciB0aGFuIHRoaXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiBAcGFyYW0gbGVuaWVudFBhcnNlIElmIHRydWUgYW5kIG1hdGNoaW5nIGFnYWluc3QgcnVsZXMgZmFpbHMsCisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB3aWxsIGFsc28gdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFnYWluc3QKKyAgICAgKiBudW1lcmFscyB1c2luZyBhIGRlZmF1bHQtY29zdHJ1Y3RlZCBOdW1iZXJGb3JtYXQuICBJZiBmYWxzZSwKKyAgICAgKiBubyBleHRyYSB3b3JrIGlzIGRvbmUuICAoVGhpcyB2YWx1ZSBpcyBmYWxzZSB3aGVuZXZlciB0aGUKKyAgICAgKiBmb3JtYXR0ZXIgaXNuJ3QgaW4gbGVuaWVudC1wYXJzZSBtb2RlLCBidXQgaXMgYWxzbyBmYWxzZQorICAgICAqIHVuZGVyIHNvbWUgY29uZGl0aW9ucyBldmVuIHdoZW4gdGhlIGZvcm1hdHRlciBfaXNfIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlLikKKyAgICAgKiBAcmV0dXJuIElmIHRoZXJlJ3MgYSBtYXRjaCwgdGhpcyBpcyB0aGUgcmVzdWx0IG9mIGNvbXBvc2luZworICAgICAqIGJhc2VWYWx1ZSB3aXRoIHdoYXRldmVyIHdhcyByZXR1cm5lZCBmcm9tIG1hdGNoaW5nIHRoZQorICAgICAqIGNoYXJhY3RlcnMuICBUaGlzIHdpbGwgYmUgZWl0aGVyIGEgTG9uZyBvciBhIERvdWJsZS4gIElmIHRoZXJlJ3MKKyAgICAgKiBubyBtYXRjaCB0aGlzIGlzIG5ldyBMb25nKDApIChub3QgbnVsbCksIGFuZCBwYXJzZVBvc2l0aW9uCisgICAgICogaXMgbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAvLyBmaWd1cmUgb3V0IHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgYSBydWxlIGNhbiBoYXZlIGFuZCBtYXRjaAorICAgICAgICAvLyB0aGUgdGV4dCBiZWluZyBwYXJzZWQgKHRoaXMgdmFyaWVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZgorICAgICAgICAvLyBzdWJzdGl0dXRpb25zOiBtdWx0aXBsaWVyLCBtb2R1bHVzLCBhbmQgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgLy8gcmVzdHJpY3QgdGhlIHNlYXJjaCB0byBydWxlcyB3aXRoIGJhc2UgdmFsdWVzIGxvd2VyIHRoYW4gdGhlaXIKKyAgICAgICAgLy8gb3duOyBzYW1lLXZhbHVlIHN1YnN0aXR1dGlvbnMgbGVhdmUgdGhlIHVwcGVyIGJvdW5kIHdoZXJldmVyCisgICAgICAgIC8vIGl0IHdhcywgYW5kIHRoZSBvdGhlcnMgYWxsb3cgYW55IHJ1bGUgdG8gbWF0Y2gKKyAgICAgICAgdXBwZXJCb3VuZCA9IGNhbGNVcHBlckJvdW5kKHVwcGVyQm91bmQpOworCisgICAgICAgIC8vIHVzZSBvdXIgcnVsZSBzZXQgdG8gcGFyc2UgdGhlIHRleHQuICBJZiB0aGF0IGZhaWxzIGFuZAorICAgICAgICAvLyBsZW5pZW50IHBhcnNpbmcgaXMgZW5hYmxlZCAodGhpcyBpcyBhbHdheXMgZmFsc2UgaWYgdGhlCisgICAgICAgIC8vIGZvcm1hdHRlcidzIGxlbmllbnQtcGFyc2luZyBtb2RlIGlzIG9mZiwgYnV0IGl0IG1heSBhbHNvCisgICAgICAgIC8vIGJlIGZhbHNlIGV2ZW4gd2hlbiB0aGUgZm9ybWF0dGVyJ3MgbGVuaWVudC1wYXJzZSBtb2RlIGlzCisgICAgICAgIC8vIG9uKSwgdGhlbiBhbHNvIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHVzaW5nIGEgZGVmYXVsdC0KKyAgICAgICAgLy8gY29uc3RydWN0ZWQgTnVtYmVyRm9ybWF0CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBydWxlU2V0LnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIHVwcGVyQm91bmQpOworICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiAhcnVsZVNldC5pc0ZyYWN0aW9uU2V0KCkgJiYgcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLm9yIHVzZSBvdXIgRGVjaW1hbEZvcm1hdCB0byBwYXJzZSB0aGUgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVtcFJlc3VsdCA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgc3VjY2Vzc2Z1bCwgd2UndmUgYWxyZWFkeSBhZHZhbmNlZCB0aGUgY2FsbGVyJ3MKKyAgICAgICAgLy8gcGFyc2UgcG9zaXRpb24gKHRoaXMgaXMgdGhlIG9uZSBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgaGF2ZSBvbmUKKyAgICAgICAgLy8gb2YgaXRzIG93bikuICBEZXJpdmUgYSBwYXJzZSByZXN1bHQgYW5kIHJldHVybiBpdCBhcyBhIExvbmcsCisgICAgICAgIC8vIGlmIHBvc3NpYmxlLCBvciBhIERvdWJsZQorICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSB0ZW1wUmVzdWx0LmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgIC8vIGNvbXBvc2VSdWxlVmFsdWUoKSBwcm9kdWNlcyBhIGZ1bGwgcGFyc2UgcmVzdWx0IGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBmcm9tCisgICAgICAgICAgICAvLyB0aGUgY2FsbGVyICh0aGlzIGlzIGVpdGhlciB0aGUgb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICAgICAgICAvLyBvciB0aGUgcGFydGlhbCByZXN1bHQgb2J0YWluZWQgZnJvbSBjb21wb3NpbmcgdGhlCisgICAgICAgICAgICAvLyBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUgd2l0aCBpdHMgb3RoZXIgc3Vic3RpdHV0aW9uJ3MKKyAgICAgICAgICAgIC8vIHBhcnNlIHJlc3VsdCkgYW5kIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBvYnRhaW5lZCBieQorICAgICAgICAgICAgLy8gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbiAod2hpY2ggd2lsbCBiZSB0aGUgc2FtZSB2YWx1ZQorICAgICAgICAgICAgLy8gdGhlIGNhbGxlciB3b3VsZCBnZXQgYnkgcGFyc2luZyBqdXN0IHRoaXMgcGFydCBvZiB0aGUKKyAgICAgICAgICAgIC8vIHRleHQgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQucGFyc2UoKSApLiAgSG93IHRoZSB0d28KKyAgICAgICAgICAgIC8vIHZhbHVlcyBhcmUgdXNlZCB0byBkZXJpdmUgdGhlIGZ1bGwgcGFyc2UgcmVzdWx0IGRlcGVuZHMKKyAgICAgICAgICAgIC8vIG9uIHRoZSB0eXBlcyBvZiBzdWJzdGl0dXRpb25zOiBGb3IgYSByZWd1bGFyIHJ1bGUsIHRoZQorICAgICAgICAgICAgLy8gdWx0aW1hdGUgcmVzdWx0IGlzIGl0cyBtdWx0aXBsaWVyIHN1YnN0aXR1dGlvbidzIHJlc3VsdAorICAgICAgICAgICAgLy8gdGltZXMgdGhlIHJ1bGUncyBkaXZpc29yIChvciB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIHBsdXMKKyAgICAgICAgICAgIC8vIHRoZSBtb2R1bHVzIHN1YnN0aXR1dGlvbidzIHJlc3VsdCAod2hpY2ggd2lsbCBhY3R1YWxseQorICAgICAgICAgICAgLy8gc3VwZXJzZWRlIHBhcnQgb2YgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKS4gIEZvciBhIG5lZ2F0aXZlLQorICAgICAgICAgICAgLy8gbnVtYmVyIHJ1bGUsIHRoZSByZXN1bHQgaXMgdGhlIG5lZ2F0aXZlIG9mIGl0cyBzdWJzdGl0dXRpb24ncworICAgICAgICAgICAgLy8gcmVzdWx0LiAgRm9yIGEgZnJhY3Rpb24gcnVsZSwgaXQncyB0aGUgc3VtIG9mIGl0cyB0d28KKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiByZXN1bHRzLiAgRm9yIGEgcnVsZSBpbiBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gaXQncyB0aGUgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbidzIHJlc3VsdCBkaXZpZGVkIGJ5CisgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuICBSZXN1bHRzIGZyb20gc2FtZS12YWx1ZSBzdWJzdGl0dXRpb25zCisgICAgICAgICAgICAvLyBwcm9wYWdhdGUgYmFjayB1cGFyZCwgYW5kIG51bGwgc3Vic3RpdHV0aW9ucyBkb24ndCBhZmZlY3QKKyAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuCisgICAgICAgICAgICByZXN1bHQgPSBjb21wb3NlUnVsZVZhbHVlKHJlc3VsdCwgYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgVU5zdWNjZXNzZnVsLCByZXR1cm4gMAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRlbXBSZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXJpdmVzIGEgbmV3IHZhbHVlIGZyb20gdGhlIHR3byB2YWx1ZXMgcGFzc2VkIGluLiAgVGhlIHR3byB2YWx1ZXMKKyAgICAgKiBhcmUgdHlwaWNhbGx5IGVpdGhlciB0aGUgYmFzZSB2YWx1ZXMgb2YgdHdvIHJ1bGVzICh0aGUgb25lIGNvbnRhaW5pbmcKKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uIGFuZCB0aGUgb25lIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24pIG9yIHBhcnRpYWwKKyAgICAgKiBwYXJzZSByZXN1bHRzIGRlcml2ZWQgaW4gc29tZSBvdGhlciB3YXkuICBUaGUgb3BlcmF0aW9uIGlzIGdlbmVyYWxseQorICAgICAqIHRoZSBpbnZlcnNlIG9mIHRoZSBvcGVyYXRpb24gcGVyZm9ybWVkIGJ5IHRyYW5zZm9ybU51bWJlcigpLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHByb2R1Y2VkIGJ5IG1hdGNoaW5nIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgdmFsdWUgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBieSB0aGUgcnVsZSB0aGF0IG93bnMgaXQKKyAgICAgKiBAcmV0dXJuIEEgdGhpcmQgdmFsdWUgZGVyaXZlZCBmcm9tIHRoZSBvdGhlciB0d28sIHJlcHJlc2VudGluZyBhCisgICAgICogcGFydGlhbCBwYXJzZSByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIGFuIHVwcGVyIGJvdW5kIHdoZW4gc2VhcmNoaW5nIGZvciBhIHJ1bGUgdGhhdCBtYXRjaGVzCisgICAgICogdGhpcyBzdWJzdGl0dXRpb24uICBSdWxlcyB3aXRoIGJhc2UgdmFsdWVzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbAorICAgICAqIHRvIHVwcGVyQm91bmQgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyLWJvdW5kIHNldHRpbmcuICBUaGUgbmV3CisgICAgICogdXBwZXIgYm91bmQgY2FuJ3QgYmUgYW55IGhpZ2hlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqIEByZXR1cm4gVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFBvcygpIHsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgdXNlZCBpbiB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZgorICAgICAqIHN1YnN0aXR1dGlvbnMgb2YgdGhpcyB0eXBlLiAgVXNlZCBieSB0b1N0cmluZygpLgorICAgICAqIEByZXR1cm4gVGhpcyBzdWJzdGl0dXRpb24ncyB0b2tlbiBjaGFyYWN0ZXIuCisgICAgICovCisgICAgYWJzdHJhY3QgY2hhciB0b2tlbkNoYXIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGlzIGEgbnVsbCBzdWJzdGl0dXRpb24uICAoV2UgZGlkbid0IGRvIHRoaXMKKyAgICAgKiB3aXRoIGluc3RhbmNlb2YgcGFydGlhbGx5IGJlY2F1c2UgaXQgY2F1c2VzIHNvdXJjZSBmaWxlcyB0bworICAgICAqIHByb2xpZmVyYXRlIGFuZCBwYXJ0aWFsbHkgYmVjYXVzZSB3ZSBoYXZlIHRvIHBvcnQgdGhpcyB0byBDKysuKQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBOdWxsU3Vic3RpdHV0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNOdWxsU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgYSBtb2R1bHVzIHN1YnN0aXR1dGlvbi4gIChXZSBkaWRuJ3QgZG8gdGhpcworICAgICAqIHdpdGggaW5zdGFuY2VvZiBwYXJ0aWFsbHkgYmVjYXVzZSBpdCBjYXVzZXMgc291cmNlIGZpbGVzIHRvCisgICAgICogcHJvbGlmZXJhdGUgYW5kIHBhcnRpYWxseSBiZWNhdXNlIHdlIGhhdmUgdG8gcG9ydCB0aGlzIHRvIEMrKy4pCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIE1vZHVsdXNTdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZHVsdXNTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IHBhc3NlcyB0aGUgdmFsdWUgcGFzc2VkIHRvIGl0IHRocm91Z2ggdW5jaGFuZ2VkLgorICogUmVwcmVzZW50ZWQgYnkgPT0gaW4gcnVsZSBkZXNjcmlwdGlvbnMuCisgKi8KK2NsYXNzIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFNhbWVWYWx1ZVN1YnN0dXRpb24uICBUaGlzIGZ1bmN0aW9uIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLCBidXQgaXQgcGVyZm9ybXMgYSBjaGVjayB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gZG9lc24ndCBjYWxsIHRoZSBydWxlIHNldCB0aGF0IG93bnMgaXQsIHNpbmNlIHRoYXQKKyAgICAgKiB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi4KKyAgICAgKi8KKyAgICBTYW1lVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI9PSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI9PSBpcyBub3QgYSBsZWdhbCB0b2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zICJudW1iZXIiIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuICJudW1iZXIiCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyAibnVtYmVyIiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiAibnVtYmVyIgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgbmV3UnVsZVZhbHVlIGFuZCBpZ25vcmVzIG9sZFJ1bGVWYWx1ZS4gKFRoZSB2YWx1ZSB3ZSBnb3QKKyAgICAgKiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIHZhbHVlIG9mIHRoZSBydWxlCisgICAgICogdGhhdCBvd25zIHRoZSBzdWJzdGl0dXRpb24uKQorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHJlc3VsdGluZyBmcm9tIG1hdGNoaW5nIHRoZSBzdWJzdGl0dWlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhlCisgICAgICogc3Vic3RpdHV0aW9uLgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYW1lVmFsdWVTdWJzdGl0dXRpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHVwcGVyIGJvdW5kLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyIGJvdW5kLgorICAgICAqIEByZXR1cm4gb2xkVXBwZXJCb3VuZAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIG9sZFVwcGVyQm91bmQ7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIGlzID0uCisgICAgICogQHJldHVybiAnPScKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc9JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTXVsdGlwbGllclN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBkaXZpZGVzIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5IHRoZSBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHF1b3RpZW50LiAgUmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gbm9ybWFsCisgKiBydWxlcy4KKyAqLworY2xhc3MgTXVsdGlwbGllclN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uLgorICAgICAqLworICAgIGRvdWJsZSBkaXZpc29yOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uLiAgVGhpcyB1c2VzIHRoZSBzdXBlcmNsYXNzCisgICAgICogY29uc3RydWN0b3IgdG8gaW5pdGlhbGl6ZSBtb3N0IG1lbWJlcnMsIGJ1dCB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIGFsc28gbWFpbnRhaW5zIGl0cyBvd24gY29weSBvZiBpdHMgcnVsZSdzIGRpdmlzb3IuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHJ1bGUncyBydWxlIHRleHQKKyAgICAgKiBAcGFyYW0gZGl2aXNvciBUaGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHJ1bGVTZXQgVGhlIHJ1bGVTZXQgdGhpcyBzdWJzdGl0dXRpb24gdXNlcyB0byBmb3JtYXQgaXRzIHJlc3VsdAorICAgICAqIEBmb3JtYXR0ZXIgVGhlIGZvcm1hdHRlciB0aGF0IG93bnMgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGRlc2NyaWJpbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGl2aXNvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgdGhpcworICAgICAgICAvLyBzdWJzdGl0dXRpb24uICBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFjay1wb2ludGVyIHRvIHRoZQorICAgICAgICAvLyBydWxlLCB3ZSBrZWVwIGEgY29weSBvZiB0aGUgZGl2aXNvcgorICAgICAgICB0aGlzLmRpdmlzb3IgPSBkaXZpc29yOworCisgICAgaWYgKGRpdmlzb3IgPT0gMCkgeyAvLyB0aGlzIHdpbGwgY2F1c2UgcmVjdXJzaW9uCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGJhZCBkaXZpc29yICgiICsgZGl2aXNvciArICIpICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgcG9zKSArIAorICAgICAgICAgICAgICAgICAgICAgIiB8ICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKSk7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHN1YnN0aXR1dGlvbidzIGRpdmlzb3IgYmFzZWQgb24gdGhlIHZhbHVlcyBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHJhZGl4IFRoZSByYWRpeCBvZiB0aGUgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGRpdmlzb3IgMCIpOworICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBdWdtZW50cyB0aGUgc3VwZXJjbGFzcydzIGVxdWFscygpIGZ1bmN0aW9uIGJ5IGNvbXBhcmluZyBkaXZpc29ycy4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgc3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWFsCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE11bHRpcGxpZXJTdWJzdGl0dXRpb24gdGhhdDIgPSAoTXVsdGlwbGllclN1YnN0aXR1dGlvbil0aGF0OworCisgICAgICAgICAgICByZXR1cm4gZGl2aXNvciA9PSB0aGF0Mi5kaXZpc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCByZXR1cm5zIHRoZSBxdW90aWVudC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gIm51bWJlciIgZGl2aWRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIChsb25nKU1hdGguZmxvb3IobnVtYmVyIC8gZGl2aXNvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgcmV0dXJucyB0aGUgcXVvdGllbnQuCisgICAgICogVGhpcyBpcyBhbiBpbnRlZ3JhbCBxdW90aWVudCBpZiB3ZSdyZSBmaWxsaW5nIGluIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiB1c2luZyBhbm90aGVyIHJ1bGUgc2V0LCBidXQgaXQncyB0aGUgZnVsbCBxdW90aWVudCAoaW50ZWdyYWwgYW5kCisgICAgICogZnJhY3Rpb25hbCBwYXJ0cykgaWYgd2UncmUgZmlsbGluZyBpbiB0aGUgc3Vic3RpdHV0aW9uIHVzaW5nCisgICAgICogYSBEZWNpbWFsRm9ybWF0LiAgKFRoaXMgYWxsb3dzIHRoaW5ncyBzdWNoIGFzICIxLjIgbWlsbGlvbiIuKQorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIGRpdmlkZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICBpZiAocnVsZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyIC8gZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlciAvIGRpdmlzb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIG5ld1J1bGVWYWx1ZSB0aW1lcyB0aGUgZGl2aXNvci4gIElnbm9yZXMgb2xkUnVsZVZhbHVlLgorICAgICAqIChUaGUgcmVzdWx0IG9mIG1hdGNoaW5nIGEgPDwgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBvZiB0aGUgcnVsZSB0aGF0IGNvbnRhaW5zIGl0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAqIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3UnVsZVZhbHVlICogZGl2aXNvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBkb3duIHRvIHRoZSBydWxlJ3MgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRpdmlzb3I7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgbXVsdGlwbGllciBzdWJzdGl0dXRpb24gaXMgJmx0Oy4KKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNb2R1bHVzU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGRpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIGl0cyBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHJlbWFpbmRlci4gIFJlcHJlc2VudGVkIGJ5ICImZ3Q7Jmd0OyIgaW4gYQorICogcmVndWxhciBydWxlLgorICovCitjbGFzcyBNb2R1bHVzU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGl2aXNvciBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBkb3VibGUgZGl2aXNvcjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB0aGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0CisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZS4gIE90aGVyd2lzZSwgbnVsbC4KKyAgICAgKi8KKyAgICBORlJ1bGUgcnVsZVRvVXNlOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNb2R1bHVzU3Vic3R1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBtZW1iZXJzLCBhIE1vZHVsdXNTdWJzdGl0dXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIGRpdmlzb3Igb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQsIGFuZCBtYXkgYWxzbyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBydWxlCisgICAgICogdGhhdCBwcmVjZWRlcyB0aGUgcnVsZSBjb250YWluaW5nIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlCisgICAgICogc2V0J3MgcnVsZSBsaXN0LgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIGl0cyBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogQHBhcmFtIGRpdmlzb3IgVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIHJ1bGVQcmVkZWNlc3NvciBUaGUgcnVsZSB0aGF0IHByZWNlZGVzIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBydWxlIGluIGl0cyBydWxlIHNldCdzIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGZvciB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIE1vZHVsdXNTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaXZpc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgY29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIHRoaXMKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uOiByYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsCisgICAgICAgIC8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBkaXZpc29yCisgICAgICAgIHRoaXMuZGl2aXNvciA9IGRpdmlzb3I7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IgKCIgKyBkaXZpc29yICsgIikgIisgZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHBvcykgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgfCAiICsgZGVzY3JpcHRpb24uc3Vic3RyaW5nKHBvcykpOworICAgIH0KKworICAgICAgICAvLyB0aGUgPj4+IHRva2VuIGRvZXNuJ3QgYWx0ZXIgaG93IHRoaXMgc3Vic3RpdHVpb24gY2FsY3VsYXRlcyB0aGUKKyAgICAgICAgLy8gdmFsdWVzIGl0IHVzZXMgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcsIGJ1dCBpdCBjaGFuZ2VzCisgICAgICAgIC8vIHdoYXQncyBkb25lIHdpdGggdGhhdCB2YWx1ZSBhZnRlciBpdCdzIG9idGFpbmVkOiA+Pj4gc2hvcnQtCisgICAgICAgIC8vIGNpcmN1aXRzIHRoZSBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBnb2VzIHN0cmFpZ2h0IHRvIHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcnVsZSB0byBmb3JtYXQgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZQorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+Pj4iKSkgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gcnVsZVByZWRlY2Vzc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIHRoZSBzdWJzdGl0dXRpb24ncyBkaXZpc29yIGNvbmZvcm0gdG8gdGhhdCBvZiB0aGUgcnVsZQorICAgICAqIHRoYXQgb3ducyBpdC4gIFVzZWQgd2hlbiB0aGUgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGFmdGVyIGNyZWF0aW9uLgorICAgICAqIEBwYXJhbSByYWRpeCBUaGUgcmFkaXggb2YgdGhlIGRpdnNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IiKTsKKyAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQXVnbWVudHMgdGhlIGluaGVyaXRlZCBlcXVhbHMoKSBmdW5jdGlvbiBieSBjb21wYXJpbmcgZGl2aXNvcnMgYW5kCisgICAgICogcnVsZVRvVXNlLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBvdGhlciBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICBpZiAoc3VwZXIuZXF1YWxzKHRoYXQpKSB7CisgICAgICAgICAgICBNb2R1bHVzU3Vic3RpdHV0aW9uIHRoYXQyID0gKE1vZHVsdXNTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIGRpdmlzb3IgPT0gdGhhdDIuZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwganVzdCB1c2UgdGhlIGluaGVyaXRlZCB2ZXJzaW9uCisgICAgICAgIC8vIG9mIHRoaXMgZnVuY3Rpb24gKHdoaWNoIHVzZXMgZWl0aGVyIGEgcnVsZSBzZXQgb3IgYSBEZWNpbWFsRm9ybWF0CisgICAgICAgIC8vIHRvIGZvcm1hdCBpdHMgc3Vic3RpdHV0aW9uIHZhbHVlKQorICAgICAgICBpZiAocnVsZVRvVXNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN1cGVyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworCisgICAgICAgIC8vIGEgPj4+IHN1YnN0aXR1dGlvbiBnb2VzIHN0cmFpZ2h0IHRvIGEgcGFydGljdWxhciBydWxlIHRvCisgICAgICAgIC8vIGZvcm1hdCB0aGUgc3Vic3RpdHV0aW9uIHZhbHVlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXNuJ3QgYSA+Pj4gc3Vic3RpdHV0aW9uLCBqdXN0IHVzZSB0aGUgaW5oZXJpdGVkIHZlcnNpb24KKyAgICAgICAgLy8gb2YgdGhpcyBmdW5jdGlvbiAod2hpY2ggdXNlcyBlaXRoZXIgYSBydWxlIHNldCBvciBhIERlY2ltYWxGb3JtYXQKKyAgICAgICAgLy8gdG8gZm9ybWF0IGl0cyBzdWJzdGl0dXRpb24gdmFsdWUpCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gYSA+Pj4gc3Vic3RpdHV0aW9uIGdvZXMgc3RyYWlnaHQgdG8gYSBwYXJ0aWN1bGFyIHJ1bGUgdG8KKyAgICAgICAgLy8gZm9ybWF0IHRoZSBzdWJzdGl0dXRpb24gdmFsdWUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZSBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kCisgICAgICogcmV0dXJucyB0aGUgcmVtYWluZGVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIG1vZCBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAobG9uZylNYXRoLmZsb29yKG51bWJlciAlIGRpdmlzb3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZAorICAgICAqIHJldHVybnMgdGhlIHJlbWFpbmRlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiBtb2QgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyICUgZGl2aXNvcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJZiB0aGlzIGlzIGEgJmd0OyZndDsmZ3Q7IHN1YnN0aXR1dGlvbiwgbWF0Y2ggb25seSBhZ2FpbnN0IHJ1bGVUb1VzZS4KKyAgICAgKiBPdGhlcndpc2UsIHVzZSB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gSWdub3JlZCBvbiBlbnRyeSwgdXBkYXRlZCBvbiBleGl0IHRvIHBvaW50IHRvCisgICAgICogdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZyB0aGlzCisgICAgICogcm91dGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwgd2UgY2FuIGp1c3QgdXNlIHRoZQorICAgICAgICAvLyBpbmhlcml0ZWQgcGFyc2UoKSByb3V0aW5lIHRvIGRvIHRoZSBwYXJzaW5nCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGJ1dCBpZiBpdCBJUyBhID4+PiBzdWJzdGl0dXRpb24sIHdlIGhhdmUgdG8gZG8gaXQgaGVyZTogd2UKKyAgICAgICAgLy8gdXNlIHRoZSBzcGVjaWZpYyBydWxlJ3MgZG9QYXJzZSgpIG1ldGhvZCwgYW5kIHRoZW4gd2UgaGF2ZSB0bworICAgICAgICAvLyBkbyBzb21lIG9mIHRoZSBvdGhlciB3b3JrIG9mIE5GUnVsZVNldC5wYXJzZSgpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdCA9IHJ1bGVUb1VzZS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKworICAgICAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IHRlbXBSZXN1bHQuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBvc2VSdWxlVmFsdWUocmVzdWx0LCBiYXNlVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZylyZXN1bHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yIHRoYXQgaXRzIGxlc3MKKyAgICAgKiB0aGFuIG9yIGVxdWFsIHRvIG9sZFJ1bGVWYWx1ZSwgcGx1cyBuZXdSdWxlVmFsdWUuICAoVGhlIHJlc3VsdAorICAgICAqIGlzIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gcGx1cyB0aGUKKyAgICAgKiBiYXNlIHZhbHVlb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUgc3Vic3RpdHV0aW9uLCBidXQgaWYgdGhlCisgICAgICogb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlIGlzbid0IGFuIGV2ZW4gbXVsdGlwbGUgb2YgaXRzIGRpdmlzb3IsCisgICAgICogd2UgaGF2ZSB0byByb3VuZCBpdCBkb3duIHRvIGEgbXVsdGlwbGUgb2YgdGhlIGRpdmlzb3IsIG9yIHdlCisgICAgICogZ2V0IHVud2FudGVkIGRpZ2l0cyBpbiB0aGUgcmVzdWx0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBjb250YWluaW5nIHRoZQorICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBwZXIgYm91bmQgZG93biB0byB0aGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgSWdub3JlZAorICAgICAqIEByZXR1cm4gVGhlIG93bmluZyBydWxlJ3MgZHZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gZGl2aXNvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZS4gIFRoaXMgX2lzXyBhIE1vZHVsdXNTdWJzdGl0dXRpb24uCisgICAgICogQHJldHVybiB0cnVlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2R1bHVzU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIG9mIGEgTW9kdWx1c1N1YnN0aXR1dGlvbiBpcyAmZ3Q7LgorICAgICAqIEByZXR1cm4gJyZndDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPic7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEludGVncmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LiAgVGhpcyBpcworICogcmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gYSBmcmFjdGlvbiBydWxlLgorICovCitjbGFzcyBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGNhbGxzCisgICAgICogdGhlIHN1cGVyY2xhc3MgY29uc3RydWN0b3IuCisgICAgICovCisgICAgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgc3VwZXIocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQuIChGb3IgYSBsb25nLCB0aGF0J3MganVzdCB0aGUKKyAgICAgKiBudW1iZXIgdW5jaGFuZ2VkLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiB1bmNoYW5nZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIGludGVncmFsIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuIGZsb29yKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gYW5kIHRoZQorICAgICAqIG93bmluZyBydWxlJ3MgYmFzZSB2YWx1ZS4gIChUaGUgb3duaW5nIHJ1bGUsIGF0IGJlc3QsIGhhcyBhbgorICAgICAqIGludGVncmFsLXBhcnQgc3Vic3RpdHV0aW9uIGFuZCBhIGZyYWN0aW9uYWwtcGFydCBzdWJzdGl0dXRpb24sCisgICAgICogc28gd2UgY2FuIHNhZmVseSBqdXN0IGFkZCB0aGVtLikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHBhcnRpYWwgcmVzdWx0IG9mIHRoZSBwYXJzZSBwcmlvciB0bworICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gb2xkUnVsZVZhbHVlICsgbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbiBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gc2V0cyB0aGUgdXBwZXIgYm91bmQgYmFjayB1cCBzbyBhbGwKKyAgICAgKiBwb3RlbnRpYWxseSBtYXRjaGluZyBydWxlcyBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uJ3MgdG9rZW4gY2hhcmFjdGVyIGlzICZsdDsKKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYSBudW1iZXIuICBUaGlzIGlzCisgKiByZXByZXNlbnRlZCBieSAmZ3Q7Jmd0OyBpbiBhIGZyYWN0aW9uIHJ1bGUuCisgKi8KK2NsYXNzIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiB0cnVlIGlmIHRoaXMgc3Vic3RpdHV0aW9uIHNob3VsZCBoYXZlIHRoZSBkZWZhdWx0ICJieSBkaWdpdHMiCisgICAgICogYmVoYXZpb3IsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBieURpZ2l0cyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiB3ZSBhdXRvbWF0aWNhbGx5IGluc2VydCBzcGFjZXMgdG8gc2VwYXJhdGUgbmFtZXMgb2YgZGlnaXRzCisgICAgICogc2V0IHRvIGZhbHNlIGJ5ICc+Pj4nIGluIGZyYWN0aW9uIHJ1bGVzLCB1c2VkIGJ5IFRoYWkuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHVzZVNwYWNlcyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRoYXQgdGhpcworICAgICAqIG9iamVjdCB3aWxsIHNob3cgaW4gImJ5IGRpZ2l0cyIgbW9kZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhERUNJTUFMRElHSVRTID0gMTg7IC8vIDgKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24uICBUaGlzIG9iamVjdCBrZWVwcyBhIGZsYWcKKyAgICAgKiB0ZWxsaW5nIHdoZXRoZXIgaXQgc2hvdWxkIGZvcm1hdCBieSBkaWdpdHMgb3Igbm90LiAgSW4gYWRkaXRpb24sCisgICAgICogaXQgbWFya3MgdGhlIHJ1bGUgc2V0IGl0IGNhbGxzIChpZiBhbnkpIGFzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICovCisgICAgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworLy8gICAgYm9vbGVhbiBjaGV2cm9uID0gZGVzY3JpcHRpb24uc3RhcnRzV2l0aCgiPj4iKSB8fCBydWxlU2V0ID09IHRoaXMucnVsZVNldDsKKy8vICAgICAgaWYgKGNoZXZyb24gfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+PiIpIHx8IGRlc2NyaXB0aW9uLmVxdWFscygiPj4+IikgfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKyAgICAgICAgICAgIGJ5RGlnaXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5lcXVhbHMoIj4+PiIpKSB7CisgICAgICAgICAgICAgIHVzZVNwYWNlcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0Lm1ha2VJbnRvRnJhY3Rpb25SdWxlU2V0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIElmIGluICJieSBkaWdpdHMiIG1vZGUsIGZpbGxzIGluIHRoZSBzdWJzdGl0dXRpb24gb25lIGRlY2ltYWwgZGlnaXQKKyAgICAgKiBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBzdWJzdGl0dXRpb24uCisgICAgICogT3RoZXJ3aXNlLCB1c2VzIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBvd25pbmcgcnVsZSdzIHJ1bGUgdGV4dCBpbgorICAgICAqIHRvSW5zZXJ0SW50bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGluICJieURpZ2l0cyIgbW9kZSwganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1N1YnN0aXR1dGlvbigpIHJvdXRpbmUKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gaWYgd2UncmUgaW4gImJ5RGlnaXRzIiBtb2RlLCB0cmFuc2Zvcm0gdGhlIHZhbHVlIGludG8gYW4gaW50ZWdlcgorICAgICAgICAvLyBieSBtb3ZpbmcgdGhlIGRlY2ltYWwgcG9pbnQgZWlnaHQgcGxhY2VzIHRvIHRoZSByaWdodCBhbmQKKyAgICAgICAgLy8gcHVsbGluZyBkaWdpdHMgb2ZmIHRoZSByaWdodCBvbmUgYXQgYSB0aW1lLCBmb3JtYXR0aW5nIGVhY2ggZGlnaXQKKyAgICAgICAgLy8gYXMgYW4gaW50ZWdlciB1c2luZyB0aGlzIHN1YnN0aXR1dGlvbidzIG93bmluZyBydWxlIHNldAorICAgICAgICAvLyAodGhpcyBpcyBzbG93ZXIsIGJ1dCBtb3JlIGFjY3VyYXRlLCB0aGFuIGRvaW5nIGl0IGZyb20gdGhlCisgICAgICAgIC8vIG90aGVyIGVuZCkKKyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICBpbnQgbnVtYmVyVG9Gb3JtYXQgPSAoaW50KU1hdGgucm91bmQodHJhbnNmb3JtTnVtYmVyKG51bWJlcikgKiBNYXRoLnBvdygKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIE1BWERFQ0lNQUxESUdJVFMpKTsKKy8vICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gKGxvbmcpTWF0aC5yb3VuZCh0cmFuc2Zvcm1OdW1iZXIobnVtYmVyKSAqIE1hdGgucG93KDEwLCBNQVhERUNJTUFMRElHSVRTKSk7CisKKyAgICAgICAgLy8ganVzdCBwcmludCB0byBzdHJpbmcgYW5kIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgRGlnaXRMaXN0IGRsID0gbmV3IERpZ2l0TGlzdCgpOworICAgICAgICBkbC5zZXQobnVtYmVyLCAyMCwgdHJ1ZSk7CisKKyAgICAgICAgICAgIC8vIHRoaXMgZmxhZyBrZWVwcyB1cyBmcm9tIGZvcm1hdHRpbmcgdHJhaWxpbmcgemVyb3MuICBJdCBzdGFydHMKKyAgICAgICAgICAgIC8vIG91dCBmYWxzZSBiZWNhdXNlIHdlJ3JlIHB1bGxpbmcgZnJvbSB0aGUgcmlnaHQsIGFuZCBzd2l0Y2hlcworICAgICAgICAgICAgLy8gdG8gdHJ1ZSB0aGUgZmlyc3QgdGltZSB3ZSBlbmNvdW50ZXIgYSBub24temVybyBkaWdpdAorLy8gICAgICAgICAgICAgIGJvb2xlYW4gZG9aZXJvcyA9IGZhbHNlOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjbGFzczogIiArIGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibnVtYmVyOiAiICsgbnVtYmVyICsgIiB0cmFuc2Zvcm1lZDogIiArIHRyYW5zZm9ybU51bWJlcihudW1iZXIpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZm9ybWF0dGluZyAiICsgbnVtYmVyVG9Gb3JtYXQpOworLy8gICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYREVDSU1BTERJR0lUUzsgaSsrKSB7CisvLyAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IChpbnQpKG51bWJlclRvRm9ybWF0ICUgMTApOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAjOiAnIiArIG51bWJlclRvRm9ybWF0ICsgIiciICsgIiBkaWdpdCAnIiArIGRpZ2l0ICsgIiciKTsKKy8vICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ICE9IDAgfHwgZG9aZXJvcykgeworLy8gICAgICAgICAgICAgICAgICAgICAgaWYgKGRvWmVyb3MgJiYgdXNlU3BhY2VzKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgJyAnKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICAgIGRvWmVyb3MgPSB0cnVlOworLy8gICAgICAgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoZGlnaXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworLy8gICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgIG51bWJlclRvRm9ybWF0IC89IDEwOworLy8gICAgICAgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHBhZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoZGwuY291bnQgPiBNYXRoLm1heCgwLCBkbC5kZWNpbWFsQXQpKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdChkbC5kaWdpdHNbLS1kbC5jb3VudF0gLSAnMCcsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkbC5kZWNpbWFsQXQgPCAwKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdCgwLCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKyAgICAgICAgKytkbC5kZWNpbWFsQXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIsIHdoaWNoIHdpbGwgYWx3YXlzIGJlCisgICAgICogemVybyBpZiBpdCdzIGEgbG9uZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAwCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHJldHVybiBudW1iZXIgLSBmbG9vcihudW1iZXIpCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyIC0gTWF0aC5mbG9vcihudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgaW4gImJ5IGRpZ2l0cyIgbW9kZSwgcGFyc2VzIHRoZSBzdHJpbmcgYXMgaWYgaXQgd2VyZSBhIHN0cmluZworICAgICAqIG9mIGluZGl2aWR1YWwgZGlnaXRzOyBvdGhlcndpc2UsIHVzZXMgdGhlIHN1cGVyY2xhc3MgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIElnbm9yZWQgb24gZW50cnksIGJ1dCB1cGRhdGVkIG9uIGV4aXQgdG8gcG9pbnQKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgVGhlIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHByaW9yIHRvIGVudGVyaW5nIHRoaXMKKyAgICAgKiBmdW5jdGlvbgorICAgICAqIEBwYXJhbSB1cHBlckJvdW5kIE9ubHkgY29uc2lkZXIgcnVsZXMgd2l0aCBiYXNlIHZhbHVlcyBsb3dlciB0aGFuCisgICAgICogdGhpcyB3aGVuIGZpbGxpbmcgaW4gdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBsZW5pZW50UGFyc2UgSWYgdHJ1ZSwgdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFzIG51bWVyYWxzIGlmCisgICAgICogbWF0Y2hpbmcgYXMgd29yZHMgZG9lc24ndCB3b3JrCisgICAgICogQHJldHVybiBJZiB0aGUgbWF0Y2ggd2FzIHN1Y2Nlc3NmdWwsIHRoZSBjdXJyZW50IHBhcnRpYWwgcGFyc2UKKyAgICAgKiByZXN1bHQ7IG90aGVyd2lzZSBuZXcgTG9uZygwKS4gIFRoZSByZXN1bHQgaXMgZWl0aGVyIGEgTG9uZyBvcgorICAgICAqIGEgRG91YmxlLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBpbiBieURpZ2l0cyBtb2RlLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1BhcnNlKCkKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCAwLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGlmIHdlIEFSRSBpbiBieURpZ2l0cyBtb2RlLCBwYXJzZSB0aGUgdGV4dCBvbmUgZGlnaXQgYXQgYSB0aW1lCisgICAgICAgIC8vIHVzaW5nIHRoaXMgc3Vic3RpdHV0aW9uJ3Mgb3duaW5nIHJ1bGUgc2V0ICh3ZSBkbyB0aGlzIGJ5IHNldHRpbmcKKyAgICAgICAgLy8gdXBwZXJCb3VuZCB0byAxMCB3aGVuIGNhbGxpbmcgZG9QYXJzZSgpICkgdW50aWwgd2UgcmVhY2gKKyAgICAgICAgLy8gbm9ubWF0Y2hpbmcgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBkaWdpdDsKKy8vICAgICAgICAgICAgICBkb3VibGUgcDEwID0gMC4xOworCisvLyAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworLy8gICAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEwKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICBpZiAobGVuaWVudFBhcnNlICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSA9PSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICB9CisKKy8vICAgICAgICAgICAgICAgICAgaWYgKHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZGlnaXQgKiBwMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwMTAgLz0gMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworLy8gICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrVGV4dC5jaGFyQXQoMCkgPT0gJyAnKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgIH0KKworCisgICAgICAgIERpZ2l0TGlzdCBkbCA9IG5ldyBEaWdpdExpc3QoKTsKKyAgICAgICAgICAgIHdoaWxlICh3b3JrVGV4dC5sZW5ndGgoKSA+IDAgJiYgd29ya1Bvcy5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgIGRpZ2l0ID0gcnVsZVNldC5wYXJzZSh3b3JrVGV4dCwgd29ya1BvcywgMTApLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiB3b3JrUG9zLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgZGwuYXBwZW5kKCcwJytkaWdpdCk7CisKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyB3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtUZXh0ID0gd29ya1RleHQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gZGwuY291bnQgPT0gMCA/IDAgOiBkbC5nZXREb3VibGUoKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gY29tcG9zZVJ1bGVWYWx1ZShyZXN1bHQsIGJhc2VWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoZSB0d28gcGFydGlhbCBwYXJzZSByZXN1bHRzLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwcmlvciB0byBjYWxsaW5nCisgICAgICogdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlICsgb2xkUnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3QgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOyAgIC8vIHRoaXMgdmFsdWUgaXMgaWdub3JlZAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIGZvciBhIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGlzICZndDsuCisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAvKioKKyAgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGZvcm1hdHMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIuCisgICogVGhpcyBzdWJzdGl0aW9uIGlzIHJlcHJlc2VudGVkIGJ5ICZndDsmZ3Q7IGluIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuCisgICovCitjbGFzcyBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24uICBUaGlzIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKG51bWJlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmFicyhudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWRkdGl2ZSBpbnZlcnNlIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24gKHRoaXMgc3VwZXJzZWRlcyB0aGUgZWFybGllciBwYXJ0aWFsIHJlc3VsdCkKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZworICAgICAqIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBAcmV0dXJuIC1uZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gLW5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBiZWNrIHVwIHRvIGNvbnNpZGVyIGFsbCBydWxlcworICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQuCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYW4gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbiBpcyAmZ3Q7CisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IG11bHRpcGxpZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgKHdoaWNoIGlzCisgKiBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdCBhbmQKKyAqIGZvcm1hdHMgdGhlIHJlc3VsdC4gIEl0IGlzIHJlcHJlc2VudGVkIGJ5ICZsdDsmbHQ7IGluIHRoZSBydWxlcworICogaW4gYSBmcmFjdGlvbiBydWxlIHNldC4KKyAqLworY2xhc3MgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVub21pbmF0b3Igb2YgdGhlIGZyYWN0aW9uIHdlJ3JlIGZpbmRpbmcgdGhlIG51bWVyYXRvciBmb3IuCisgICAgICogKFRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbi4pCisgICAgICovCisgICAgZG91YmxlIGRlbm9taW5hdG9yOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB3ZSBmb3JtYXQgbGVhZGluZyB6ZXJvcyAodGhpcyBpcyBhIGhhY2sgZm9yIEhlYnJldyBzcGVsbG91dCkKKyAgICAgKi8KKyAgICBib29sZWFuIHdpdGhaZXJvczsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTnVtYmVyYXRvclN1YnN0aXR1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBmaWVsZHMsIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGtlZXBzIHRyYWNrIG9mIGEgZGVub21pbmF0b3IsIHdoaWNoCisgICAgICogaXMgbWVyZWx5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBOdW1lcmF0b3JTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlbm9taW5hdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBmaXhkZXNjKGRlc2NyaXB0aW9uKSk7CisKKyAgICAgICAgLy8gdGhpcyBzdWJzdGl0dXRpb24ncyBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAgICAvLyBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsIHdlIGNvcHkgaXRzCisgICAgICAgIC8vIGJhc2UgdmFsdWUgaGVyZQorICAgICAgICB0aGlzLmRlbm9taW5hdG9yID0gZGVub21pbmF0b3I7CisgICAgICAgIAorICAgICAgICB0aGlzLndpdGhaZXJvcyA9IGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmcgZml4ZGVzYyhTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpIAorICAgICAgICAgICAgPyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCxkZXNjcmlwdGlvbi5sZW5ndGgoKS0xKSAKKyAgICAgICAgICAgIDogZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGVzdHMgdHdvIE51bWVyYXRvclN1YnN0aXR1dGlvbnMgZm9yIGVxdWFsaXR5CisgICAgICogQHBhcmFtIHRoYXQgVGhlIG90aGVyIE51bWVyYXRvclN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIG9iamVjdHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE51bWVyYXRvclN1YnN0aXR1dGlvbiB0aGF0MiA9IChOdW1lcmF0b3JTdWJzdGl0dXRpb24pdGhhdDsKKyAgICAgICAgICAgIHJldHVybiBkZW5vbWluYXRvciA9PSB0aGF0Mi5kZW5vbWluYXRvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgU3RyaW5nIHMgPSB0b0luc2VydEludG8udG9TdHJpbmcoKTsKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcyAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBsZWFkaW5nIHplcm9zIGluIHRoZSBkZWNpbWFsIGV4cGFuc2lvbiB0aGVuIGVtaXQgdGhlbQorICAgICAgICAgICAgbG9uZyBuZiA9IChsb25nKW51bWJlclRvRm9ybWF0OworICAgICAgICAgICAgaW50IGxlbiA9IHRvSW5zZXJ0SW50by5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlICgobmYgKj0gMTApIDwgZGVub21pbmF0b3IpIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KDAsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zICs9IHRvSW5zZXJ0SW50by5sZW5ndGgoKSAtIGxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYW4gaW50ZWdlciwgZnJvbSBoZXJlIG9uIG91dCB3ZSB3b3JrIGluIGludGVnZXIKKyAgICAgICAgLy8gc3BhY2UgKHNhdmluZyB0aW1lIGFuZCBtZW1vcnkgYW5kIHByZXNlcnZpbmcgYWNjdXJhY3kpCisgICAgICAgIGlmIChudW1iZXJUb0Zvcm1hdCA9PSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KSAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KChsb25nKW51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpc24ndCBhbiBpbnRlZ2VyLCB0aGVuIGNhbGwgZWl0aGVyIG91ciBydWxlIHNldCdzCisgICAgICAgICAgICAvLyBmb3JtYXQoKSBtZXRob2Qgb3Igb3VyIERlY2ltYWxGb3JtYXQncyBmb3JtYXQoKSBtZXRob2QgdG8KKyAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlclRvRm9ybWF0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHRpbWVzIHRoZSBkZW5vbWluYXRvci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBudW1iZXIgKiBkZW5vbWluYXRvcgorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIgKiBkZW5vbWluYXRvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB0aW1lcyB0aGUgZGVub21pbmF0b3IuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gbnVtYmVyICogZGVub21pbmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlciAqIGRlbm9taW5hdG9yKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERpc3BhdGNoZXMgdG8gdGhlIGluaGVyaXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBtYWtlcworICAgICAqIHN1cmUgdGhhdCBsZW5pZW50UGFyc2UgaXMgb2ZmLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCB0byBkbyB0aGUgcGFyc2luZyBoZXJlLAorICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byB0dXJuIGxlbmllbnQgcGFyc2luZyBvZmYtLSBpZiB3ZSBsZWF2ZSBpdCBvbiwKKyAgICAgICAgLy8gaXQgU0VSSU9VU0xZIG1lc3NlcyB1cCB0aGUgYWxnb3JpdGhtCisKKyAgICAgICAgLy8gaWYgd2l0aFplcm9zIGlzIHRydWUsIHdlIG5lZWQgdG8gY291bnQgdGhlIHplcm9zCisgICAgICAgIC8vIGFuZCB1c2UgdGhhdCB0byBhZGp1c3QgdGhlIHBhcnNlIHJlc3VsdAorICAgICAgICBpbnQgemVyb0NvdW50ID0gMDsKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgaW50IGRpZ2l0OworCisgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgd29ya1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEpLmludFZhbHVlKCk7IC8vIHBhcnNlIHplcm8gb3Igbm90aGluZyBhdCBhbGwKKyAgICAgICAgICAgICAgICBpZiAod29ya1Bvcy5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZmFpbGVkLCBlaXRoZXIgdGhlcmUgd2VyZSBubyBtb3JlIHplcm9zLCBvciB0aGUgbnVtYmVyIHdhcyBmb3JtYXR0ZWQgd2l0aCBkaWdpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHdheSwgd2UncmUgZG9uZQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICArK3plcm9Db3VudDsKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcod29ya1Bvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsgLy8gYXJyZ2ghCisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gd2UndmUgcGFyc2VkIG9mZiB0aGUgemVyb3MsIG5vdyBsZXQncyBwYXJzZSB0aGUgcmVzdCBmcm9tIG91ciBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIE51bWJlciByZXN1bHQgPSAgc3VwZXIuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCB3aXRoWmVyb3MgPyAxIDogYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBmYWxzZSk7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgLy8gYW55IGJhc2UgdmFsdWUgd2lsbCBkbyBpbiB0aGlzIGNhc2UuICBpcyB0aGVyZSBhIHdheSB0bworICAgICAgICAgICAgLy8gZm9yY2UgdGhpcyB0byBub3QgYm90aGVyIHRyeWluZyBhbGwgdGhlIGJhc2UgdmFsdWVzPworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb21wdXRlIHRoZSAnZWZmZWN0aXZlJyBiYXNlIGFuZCBwcmVzY2FsZSB0aGUgdmFsdWUgZG93bgorICAgICAgICAgICAgbG9uZyBuID0gcmVzdWx0LmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBkID0gMTsKKyAgICAgICAgICAgIGludCBwb3cgPSAwOworICAgICAgICAgICAgd2hpbGUgKGQgPD0gbikgeworICAgICAgICAgICAgICAgIGQgKj0gMTA7CisgICAgICAgICAgICAgICAgKytwb3c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBub3cgYWRkIHRoZSB6ZXJvcworICAgICAgICAgICAgd2hpbGUgKHplcm9Db3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBkICo9IDEwOworICAgICAgICAgICAgICAgIC0temVyb0NvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCBpcyBub3cgb3VyIHRydWUgZGVub21pbmF0b3IKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBEb3VibGUobi8oZG91YmxlKWQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uIGJ5IHRoZSBwYXJ0aWFsCisgICAgICogcGFyc2UgcmVzdWx0LgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAvIG9sZFJ1bGVWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY29tcG9zZVJ1bGVWYWx1ZShkb3VibGUgbmV3UnVsZVZhbHVlLCBkb3VibGUgb2xkUnVsZVZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXdSdWxlVmFsdWUgLyBvbGRSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBlciBib3VuZCBkb3duIHRvIHRoaXMgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiBkZW5vbWluYXRvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYSBOdW1lcmF0b3JTdWJzdGl0dXRpb24gaXMgJmx0OworICAgICAqIEByZXR1cm4gJyZsdDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPCc7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE51bGxTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHdoaWNoIGRvZXMgbm90aGluZy4gIFRoaXMgY2xhc3MgZXhpc3RzIGp1c3QgdG8gc2ltcGxpZnkKKyAqIHRoZSBsb2dpYyBpbiBzb21lIG90aGVyIHJvdXRpbmVzIHNvIHRoYXQgdGhleSBkb24ndCBoYXZlIHRvIHdvcnJ5CisgKiBhYm91dCBob3cgbWFueSBzdWJzdGl0dXRpb25zIGEgcnVsZSBoYXMuCisgKi8KK2NsYXNzIE51bGxTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBOdWxsU3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGRlbGVnYXRlcyB0byB0aGUgc3VwZXJjbGFzcworICAgICAqIGNvbnN0cnVjdG9yLCBidXQgdGhlIG9ubHkgdmFsdWUgd2UgcmVhbGx5IGNhcmUgYWJvdXQgaXMgdGhlIHBvc2l0aW9uLgorICAgICAqLworICAgIE51bGxTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE9ubHkgY2hlY2tzIGZvciBjbGFzcyBlcXVhbGl0eQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXF1YWxzKHRoYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE51bGxTdWJzdGl0dXRpb25zIGRvbid0IHNob3cgdXAgaW4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24KKyAgICAgKiBvZiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFydGlhbCBwYXJzZSByZXN1bHQgdW5jaGFuZ2VkCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCwgYm9vbGVhbiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgaWYgKGJhc2VWYWx1ZSA9PSAobG9uZyliYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZyliYXNlVmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBEb3VibGUoYmFzZVZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlICh0aGlzIF9pc18gYSBOdWxsU3Vic3RpdHV0aW9uKS4KKyAgICAgKiBAcmV0dXJuIHRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc051bGxTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnICc7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjU2N2NlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBuYW1lIHRvIGNoYXJhY3RlciBtYXBwaW5nLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgY2hhciBvcGVuRGVsaW1pdGVyOworICAgIGNoYXIgY2xvc2VEZWxpbWl0ZXI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJOYW1lLUFueSI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5fUEFUICAgID0gIlxcTn57fiI7CisgICAgc3RhdGljIGZpbmFsIGNoYXIgICBPUEVOX0RFTElNICA9ICdcXCc7IC8vIGZpcnN0IGNoYXIgb2YgT1BFTl9QQVQKKyAgICBzdGF0aWMgZmluYWwgY2hhciAgIENMT1NFX0RFTElNID0gJ30nOworICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgU1BBQ0UgICAgICAgPSAnICc7CisKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IoVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoX0lELCBmaWx0ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworCisgICAgICAgIGludCBtYXhMZW4gPSBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldE1heENoYXJOYW1lTGVuZ3RoKCkgKyAxOyAvLyBhbGxvdyBmb3IgdGVtcG9yYXJ5IHRyYWlsaW5nIHNwYWNlCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKG1heExlbik7CisKKyAgICAgICAgLy8gR2V0IHRoZSBsZWdhbCBjaGFyYWN0ZXIgc2V0CisgICAgICAgIFVuaWNvZGVTZXQgbGVnYWwgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldENoYXJOYW1lQ2hhcmFjdGVycyhsZWdhbCk7CisKKyAgICAgICAgaW50IGN1cnNvciA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisKKyAgICAgICAgLy8gTW9kZXM6CisgICAgICAgIC8vIDAgLSBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAvLyAxIC0gYWZ0ZXIgb3BlbiBkZWxpbWl0ZXIKKyAgICAgICAgaW50IG1vZGUgPSAwOworICAgICAgICBpbnQgb3BlblBvcyA9IC0xOyAvLyBvcGVuIGRlbGltIGNhbmRpZGF0ZSBwb3MKKyAgICAgICAgCisgICAgICAgIGludCBjOworICAgICAgICB3aGlsZSAoY3Vyc29yIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGMgPSB0ZXh0LmNoYXIzMkF0KGN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICAgICAgY2FzZSAwOiAvLyBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIGlmIChjID09IE9QRU5fREVMSU0pIHsgLy8gcXVpY2sgY2hlY2sgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgaW50IGkgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihPUEVOX1BBVCwgdGV4dCwgY3Vyc29yLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOiAvLyBhZnRlciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGxlZ2FsIGNoYXJzLiAgSWYgXHMrIGlzIGZvdW5kLCBjb252ZXJ0IGl0CisgICAgICAgICAgICAgICAgLy8gdG8gYSBzaW5nbGUgc3BhY2UuICBJZiBjbG9zZURlbGltaXRlciBpcyBmb3VuZCwgZXhpdAorICAgICAgICAgICAgICAgIC8vIHRoZSBsb29wLiAgSWYgYW55IG90aGVyIGNoYXJhY3RlciBpcyBmb3VuZCwgZXhpdCB0aGUKKyAgICAgICAgICAgICAgICAvLyBsb29wLiAgSWYgdGhlIGxpbWl0IGlzIHJlYWNoZWQsIGV4aXQgdGhlIGxvb3AuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ29udmVydCBccysgPT4gU1BBQ0UuICBUaGlzIGFzc3VtZXMgdGhlcmUgYXJlIG5vCisgICAgICAgICAgICAgICAgLy8gcnVucyBvZiA+MSBzcGFjZSBjaGFyYWN0ZXJzIGluIG5hbWVzLgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5jaGFyQXQobmFtZS5sZW5ndGgoKS0xKSAhPSBTUEFDRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5hcHBlbmQoU1BBQ0UpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHRvbyBsb25nIHRoZW4gYWJvcnQuICBtYXhMZW4gaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gbWF4TGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gQ0xPU0VfREVMSU0pIHsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0cmFpbGluZyBzcGFjZSwgaWYgYW55CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmNoYXJBdChsZW4tMSkgPT0gU1BBQ0UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKC0tbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGMgPSBVQ2hhcmFjdGVyLmdldENoYXJGcm9tRXh0ZW5kZWROYW1lKG5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rdXAgc3VjY2VlZGVkCisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChVVEYxNi5nZXRDaGFyQ291bnQoQ0xPU0VfREVMSU0pID09IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yKys7IC8vIGFkdmFuY2Ugb3ZlciBDTE9TRV9ERUxJTQorCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShvcGVuUG9zLCBjdXJzb3IsIHN0cik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBpbmRpY2VzIGZvciB0aGUgY2hhbmdlIGluIHRoZSBsZW5ndGggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcuICBEbyBub3QgYXNzdW1lIHRoYXQgc3RyLmxlbmd0aCgpID09CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAxLCBpbiBjYXNlIG9mIHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBjdXJzb3IgLSBvcGVuUG9zIC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yIC09IGRlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQoY3Vyc29yID09IG9wZW5Qb3MgKyBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsb29rdXAgZmFpbGVkLCB3ZSBsZWF2ZSB0aGluZ3MgYXMtaXMgYW5kCisgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIHN3aXRjaCB0byBtb2RlIDAgYW5kIGNvbnRpbnVlLgorICAgICAgICAgICAgICAgICAgICBtb2RlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IC0xOyAvLyBjbG9zZSBvZmYgY2FuZGlkYXRlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGVnYWwuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKG5hbWUsIGMpOworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnbyBwYXN0IHRoZSBsb25nZXN0IHBvc3NpYmxlIG5hbWUgdGhlbiBhYm9ydC4KKyAgICAgICAgICAgICAgICAgICAgLy8gbWF4TGVuIGluY2x1ZGVzIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+PScuCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID49IG1heExlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAtLWN1cnNvcjsgLy8gQmFja3VwIGFuZCByZXByb2Nlc3MgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnNvciArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIG9mZnNldHMubGltaXQ7CisgICAgICAgIG9mZnNldHMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgLy8gSW4gaW5jcmVtZW50YWwgbW9kZSwgb25seSBhZHZhbmNlIHRoZSBjdXJzb3IgdXAgdG8gdGhlIGxhc3QKKyAgICAgICAgLy8gb3BlbiBkZWxpbWl0ZXIgY2FuZGlkYXRlLgorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gKGlzSW5jcmVtZW50YWwgJiYgb3BlblBvcyA+PSAwKSA/IG9wZW5Qb3MgOiBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjVmOWNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw2MzIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDA2LzA4LzAxICAgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2ZpbmFsIGNsYXNzIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG5vcm1hbGl6YXRpb24gbW9kZSBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgb3B0aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgInVuc2FmZSBzdGFydCIgY2hhcmFjdGVycy4gIFRoZXNlIGFyZSBjaGFyYWN0ZXJzCisgICAgICogd2l0aCBjYz09MCBidXQgd2hpY2ggbWF5IGludGVyYWN0IHdpdGggcHJldmlvdXMgY2hhcmFjdGVycy4gIFdlCisgICAgICogZWZmZWN0aXZlbHkgY29uc2lkZXIgdGhlc2UgdG8gYmUgY2MhPTAsIGZvciBvdXIgcHVycG9zZXMuCisgICAgICoKKyAgICAgKiBGcm9tIGh0dHA6Ly93d3cubWFjY2hpYXRvLmNvbS91dGMvTkZVbnNhZmVTdGFydC0zLjEuMWRYLnR4dAorICAgICAqIEdlbmVyYXRlZCBpbiB1bmljb2RldG9vbHMsIE5GU2tpcHBhYmxlCisgICAgICoKKyAgICAgKi8KKyAgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBVTlNBRkVfU1RBUlRTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBTS0lQUEFCTEVTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEID0gMCwgQyA9IDEsIEtEPSAyLCBLQyA9IDM7CisgICAgCisgICAgLy8gSW5zdGFuY2UgZGF0YSwgc2ltcGx5IHBvaW50ZXIgdG8gb25lIG9mIHRoZSBzZXRzIGJlbG93CisgICAgZmluYWwgVW5pY29kZVNldCB1bnNhZmVTdGFydDsKKyAgICBmaW5hbCBVbmljb2RlU2V0IHNraXBwYWJsZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GS0MiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktTkZLRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIk5GS0MiLCAiTkZLRCIsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkID0gbmV3IFN0cmluZ0J1ZmZlcigiTkYiKTsKKyAgICAgICAgaW50IGNob2ljZSA9IDA7CisgICAgICAgIGlmKG09PU5vcm1hbGl6ZXIuTkZDKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiQyIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEM7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLQyl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktDIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0M7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZEKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiRCIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEQ7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLRCl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktEIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qaWYgKG0uY29tcGF0KCkpIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnSycpOworICAgICAgICAgICAgY2hvaWNlIHw9IEtEOworICAgICAgICB9CisgICAgICAgIGlmIChtLmNvbXBvc2UoKSkgeworICAgICAgICAgICAgaWQuYXBwZW5kKCdDJyk7CisgICAgICAgICAgICBjaG9pY2UgfD0gQzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnRCcpOworICAgICAgICB9Ki8KKyAgICAgICAgcmV0dXJuIG5ldyBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoaWQudG9TdHJpbmcoKSwgbSwgY2hvaWNlLCBvcHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBOb3JtYWxpemVyLk1vZGUgbSwgaW50IHN0YXJ0Q2hvaWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICBtb2RlID0gbTsKKyAgICAgICAgb3B0aW9ucyA9IG9wdDsKKyAgICAgICAgaWYgKFVOU0FGRV9TVEFSVFNbc3RhcnRDaG9pY2VdID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRTdGF0aWNzKHN0YXJ0Q2hvaWNlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiB1c2UgYnVpbHQtaW4gcHJvcGVydGllcyBkYXRhIHJhdGhlciB0aGFuIGhhcmRjb2RlZCBzZXRzOyBzZWUgSUNVNEMKKyAgICAgICAgdW5zYWZlU3RhcnQgPSBVTlNBRkVfU1RBUlRTW3N0YXJ0Q2hvaWNlXTsKKyAgICAgICAgc2tpcHBhYmxlID0gU0tJUFBBQkxFU1tzdGFydENob2ljZV07CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgcmV0dXJuOworCisgICAgICAgIGludCBvdmVyYWxsRGVsdGEgPSAwOworICAgICAgICAgICAgCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCB0aGUgc3RyaW5nIGxvb2tpbmcgZm9yIHNhZmUgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gV2hlbmV2ZXIgeW91IGhpdCBvbmUgbm9ybWFsaXplIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBsYXN0CisgICAgICAgIC8vIHNhZmUgY2hhcmFjdGVyIHVwIHRvIGp1c3QgYmVmb3JlIHRoZSBuZXh0IHNhZmUgY2hhcmFjdGVyCisgICAgICAgIC8vIEFsc28sIGlmIHlvdSBoaXQgdGhlIGVuZCBhbmQgd2UgYXJlIG5vdCBpbiBpbmNyZW1lbnRhbCBtb2RlLAorICAgICAgICAvLyBkbyB0byBlbmQuCisgICAgICAgICAgICAKKyAgICAgICAgLy8gVE9ETzogZml4IGZvciBzdXJyb2dhdGVzCisgICAgICAgIC8vIFRPRE86IGFkZCBRdWlja0NoZWNrLCBzbyB3ZSByYXJlbHkgY29udmVydCBPSyBzdHVmZgorICAgICAgICAgICAgCisgICAgICAgIGludCBsYXN0U2FmZSA9IHN0YXJ0OyAvLyBnbyBiYWNrIHRvIHN0YXJ0IGluIGFueSBldmVudAorICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCsxOyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY3ApID09IDAgJiYgIXVuc2FmZVN0YXJ0LmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGksIG51bGwpOworICAgICAgICAgICAgICAgIGkgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgb3ZlcmFsbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgIGxhc3RTYWZlID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGxpbWl0LCBudWxsKTsKKyAgICAgICAgICAgIG92ZXJhbGxEZWx0YSArPSBkZWx0YTsKKyAgICAgICAgICAgIGxhc3RTYWZlID0gbGltaXQgKyBkZWx0YTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSBpbmNyZW1lbnRhbCwgc28gYWNjZXB0IHRoZSBsYXN0IGNoYXJhY3RlcnMgSUYgdGhleSB0dXJuIGludG8gc2tpcHBhYmxlcworICAgICAgICAgICAgaW50IGRlbHRhID0gY29udmVydCh0ZXh0LCBsYXN0U2FmZSwgbGltaXQsIHNraXBwYWJsZSk7CisgICAgICAgICAgICBpZiAoZGVsdGEgIT0gSW50ZWdlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICBvdmVyYWxsRGVsdGEgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGFzdFNhZmUgPSBsaW1pdCArIGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IG92ZXJhbGxEZWx0YTsKKyAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBvdmVyYWxsRGVsdGE7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBsYXN0U2FmZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIHJhbmdlIGZyb20gbGFzdFNhZmUgdG8gbGltaXQuCisgICAgICogQHBhcmFtIHZlcmlmeSBJZiBub24tbnVsbCwgY2hlY2sgdG8gc2VlIHRoYXQgYWxsIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgYXJlIGluIGl0LiBJZiBub3QsCisgICAgICogYWJvcnQgdGhlIGNvbnZlcnNpb24gYW5kIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRS4KKyAgICAgKiBAcmV0dXJuIHJldHVybiB0aGUgZGVsdGEgaW4gbGVuZ3RoIChuZXcgLSBvbGQpLCBvciBJbnRlZ2VyLk1JTl9WQUxVRSBpZiB0aGUgdmVyaWZ5IGFib3J0ZWQuCisgICAgICovCisgICAgaW50IGNvbnZlcnQoUmVwbGFjZWFibGUgdGV4dCwgaW50IGxhc3RTYWZlLCBpbnQgbGltaXQsIFVuaWNvZGVTZXQgdmVyaWZ5KSB7ICAgICAgICAKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInQ6ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuaGV4KHRleHQudG9TdHJpbmcoKSkgKyAiLCBzOiAiICsgbGFzdFNhZmUgKyAiLCBsOiAiICsgbGltaXQpOworCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIGxhc3RTYWZlOworICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA8IGxlbikgeworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuXTsgLy8gcmFyZSwgYW5kIHdlIGRvbid0IGNhcmUgaWYgd2UgZ3JvdyB0b28gbGFyZ2UKKyAgICAgICAgfQorICAgICAgICB0ZXh0LmdldENoYXJzKGxhc3RTYWZlLCBsaW1pdCwgYnVmZmVyLCAwKTsKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gbmV3IFN0cmluZyhidWZmZXIsIDAsIGxlbik7IC8vIFRPRE86IGZpeCBub3JtYWxpemVyIHRvIHRha2UgY2hhcltdCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCwgbW9kZSk7CisgICAgICAgIAorICAgICAgICAvLyB2ZXJpZnkgT0ssIGlmIHNwZWNpZmllZAorICAgICAgICBpZiAodmVyaWZ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gc2tpcCA9ICFza2lwcGFibGUuY29udGFpbnNBbGwob3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoc2tpcCA/ICIgIFNLSVA6ICIgOiAiTk9TS0lQOiAiKSAKKyAgICAgICAgICAgICAgICAgICAgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGlucHV0KSAKKyAgICAgICAgICAgICAgICAgICAgKyAiID0+ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNraXApIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoaW5wdXQpKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICB0ZXh0LnJlcGxhY2UobGFzdFNhZmUsIGxpbWl0LCBvdXRwdXQpOworICAgICAgICByZXR1cm4gb3V0cHV0Lmxlbmd0aCgpIC0gbGVuOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNoYXIgYnVmZmVyW10gPSBuZXcgY2hhclszMF07CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBzdGF0aWNzIGZvciB0aGUgZ2l2ZW4gbW9kZS4gIFRoaXMgaXMgc2xvdywgc28gd2UKKyAgICAgKiBkZWZlciBpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGluaXRTdGF0aWNzKGludCBzdGFydENob2ljZSkgeworICAgICAgICBzd2l0Y2ggKHN0YXJ0Q2hvaWNlKSB7CisgICAgICAgIGNhc2UgRDoKKyAgICAgICAgICBVTlNBRkVfU1RBUlRTW0RdID0gbmV3IFVuaWNvZGVTZXQoIltcdTBGNzNcdTBGNzVcdTBGODFdIiwgZmFsc2UpOworICAgICAgICAgIFNLSVBQQUJMRVNbRF0gPSBuZXcgVW5pY29kZVNldCgKKyAgICAgICAgICAgICAgIlteXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2XFx1MDBEOS1cXHUwMEREIgorICAgICAgICAgICAgKyAiXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOS1cXHUwMEZEIgorICAgICAgICAgICAgKyAiXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwXFx1MDEzNC1cXHUwMTM3IgorICAgICAgICAgICAgKyAiXFx1MDEzOS1cXHUwMTNFXFx1MDE0My1cXHUwMTQ4XFx1MDE0Qy1cXHUwMTUxXFx1MDE1NC1cXHUwMTY1IgorICAgICAgICAgICAgKyAiXFx1MDE2OC1cXHUwMTdFXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMFxcdTAxQ0QtXFx1MDFEQyIKKyAgICAgICAgICAgICsgIlxcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGMFxcdTAxRjRcXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICAgKyAiXFx1MDIxRVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMzAwLVxcdTAzNEVcXHUwMzUwLVxcdTAzNkYiCisgICAgICAgICAgICArICJcXHUwMzc0XFx1MDM3RVxcdTAzODUtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzOTBcXHUwM0FBLSIKKyAgICAgICAgICAgICsgIlxcdTAzQjBcXHUwM0NBLVxcdTAzQ0VcXHUwM0QzXFx1MDNENFxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDciCisgICAgICAgICAgICArICJcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOVxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDIgorICAgICAgICAgICAgKyAiLVxcdTA0NUVcXHUwNDc2XFx1MDQ3N1xcdTA0ODMtXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC0iCisgICAgICAgICAgICArICJcXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLVxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLSIKKyAgICAgICAgICAgICsgIlxcdTA0RjVcXHUwNEY4XFx1MDRGOVxcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzQiCisgICAgICAgICAgICArICJcXHUwNUM1XFx1MDVDN1xcdTA2MTAtXFx1MDYxNVxcdTA2MjItXFx1MDYyNlxcdTA2NEItXFx1MDY1RSIKKyAgICAgICAgICAgICsgIlxcdTA2NzBcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTQiCisgICAgICAgICAgICArICJcXHUwNkU3XFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwN0VCLSIKKyAgICAgICAgICAgICsgIlxcdTA3RjNcXHUwOTI5XFx1MDkzMVxcdTA5MzRcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgiCisgICAgICAgICAgICArICItXFx1MDk1RlxcdTA5QkNcXHUwOUNCLVxcdTA5Q0RcXHUwOURDXFx1MDlERFxcdTA5REZcXHUwQTMzIgorICAgICAgICAgICAgKyAiXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQyIKKyAgICAgICAgICAgICsgIlxcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjVDXFx1MEI1RFxcdTBCOTRcXHUwQkNBLVxcdTBCQ0QiCisgICAgICAgICAgICArICJcXHUwQzQ4XFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MENCQ1xcdTBDQzBcXHUwQ0M3XFx1MENDOFxcdTBDQ0EiCisgICAgICAgICAgICArICJcXHUwQ0NCXFx1MENDRFxcdTBENEEtXFx1MEQ0RFxcdTBEQ0FcXHUwRERBXFx1MEREQy1cXHUwRERFIgorICAgICAgICAgICAgKyAiXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCOFxcdTBFQjlcXHUwRUM4LVxcdTBFQ0IiCisgICAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgICArICJcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3NlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLSIKKyAgICAgICAgICAgICsgIlxcdTBGODRcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOSIKKyAgICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyXFx1MTdERCIKKyAgICAgICAgICAgICsgIlxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMzRcXHUxQjQ0XFx1MUI2Qi0iCisgICAgICAgICAgICArICJcXHUxQjczXFx1MURDMC1cXHUxRENBXFx1MURGRS1cXHUxRTk5XFx1MUU5QlxcdTFFQTAtXFx1MUVGOSIKKyAgICAgICAgICAgICsgIlxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RCIKKyAgICAgICAgICAgICsgIlxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtIgorICAgICAgICAgICAgKyAiXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMxLVxcdTFGQzRcXHUxRkM2LVxcdTFGRDMiCisgICAgICAgICAgICArICJcXHUxRkQ2LVxcdTFGREJcXHUxRkRELVxcdTFGRUZcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkQiCisgICAgICAgICAgICArICJcXHUyMDAwXFx1MjAwMVxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUZcXHUyMTI2IgorICAgICAgICAgICAgKyAiXFx1MjEyQVxcdTIxMkJcXHUyMTlBXFx1MjE5QlxcdTIxQUVcXHUyMUNELVxcdTIxQ0ZcXHUyMjA0XFx1MjIwOSIKKyAgICAgICAgICAgICsgIlxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyNDFcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwXFx1MjI2MiIKKyAgICAgICAgICAgICsgIlxcdTIyNkQtXFx1MjI3MVxcdTIyNzRcXHUyMjc1XFx1MjI3OFxcdTIyNzlcXHUyMjgwXFx1MjI4MVxcdTIyODQiCisgICAgICAgICAgICArICJcXHUyMjg1XFx1MjI4OFxcdTIyODlcXHUyMkFDLVxcdTIyQUZcXHUyMkUwLVxcdTIyRTNcXHUyMkVBLSIKKyAgICAgICAgICAgICsgIlxcdTIyRURcXHUyMzI5XFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDRDXFx1MzA0RVxcdTMwNTAiCisgICAgICAgICAgICArICJcXHUzMDUyXFx1MzA1NFxcdTMwNTZcXHUzMDU4XFx1MzA1QVxcdTMwNUNcXHUzMDVFXFx1MzA2MFxcdTMwNjIiCisgICAgICAgICAgICArICJcXHUzMDY1XFx1MzA2N1xcdTMwNjlcXHUzMDcwXFx1MzA3MVxcdTMwNzNcXHUzMDc0XFx1MzA3NlxcdTMwNzciCisgICAgICAgICAgICArICJcXHUzMDc5XFx1MzA3QVxcdTMwN0NcXHUzMDdEXFx1MzA5NFxcdTMwOTlcXHUzMDlBXFx1MzA5RVxcdTMwQUMiCisgICAgICAgICAgICArICJcXHUzMEFFXFx1MzBCMFxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkUiCisgICAgICAgICAgICArICJcXHUzMEMwXFx1MzBDMlxcdTMwQzVcXHUzMEM3XFx1MzBDOVxcdTMwRDBcXHUzMEQxXFx1MzBEM1xcdTMwRDQiCisgICAgICAgICAgICArICJcXHUzMEQ2XFx1MzBEN1xcdTMwRDlcXHUzMERBXFx1MzBEQ1xcdTMwRERcXHUzMEY0XFx1MzBGNy1cXHUzMEZBIgorICAgICAgICAgICAgKyAiXFx1MzBGRVxcdUE4MDZcXHVBQzAwLVxcdUQ3QTNcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICAgICsgIlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNVxcdUZBMjZcXHVGQTJBLVxcdUZBMkQiCisgICAgICAgICAgICArICJcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjFELVxcdUZCMUZcXHVGQjJBLVxcdUZCMzYiCisgICAgICAgICAgICArICJcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtIgorICAgICAgICAgICAgKyAiXFx1RkI0RVxcdUZFMjAtXFx1RkUyM1xcVTAwMDEwQTBEXFxVMDAwMTBBMEZcXFUwMDAxMEEzOC1cXFUwMDAxMCIKKyAgICAgICAgICAgICsgIkEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMUQyNDItXFxVMDAwMUQyNDRcXFUwMDAyIgorICAgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQzoKKyAgICAgICAgICBVTlNBRkVfU1RBUlRTW0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXFx1MDlCRVxcdTA5RDdcXHUwQjNFXFx1MEI1NlxcdTBCNTdcXHUwQkJFXFx1MEJEN1xcdTBDQzJcXHUwQ0Q1IgorICAgICAgICAgICAgKyAiXFx1MENENlxcdTBEM0VcXHUwRDU3XFx1MERDRlxcdTBEREZcXHUwRjczXFx1MEY3NVxcdTBGODFcXHUxMDJFIgorICAgICAgICAgICAgKyAiXFx1MTE2MS1cXHUxMTc1XFx1MTFBNy1cXHUxMUMyXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQThcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDZcXHUwMEQ4LSIKKyAgICAgICAgICAgICsgIlxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkRcXHUwMEZGLSIKKyAgICAgICAgICAgICsgIlxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjFcXHUwMTI0IgorICAgICAgICAgICAgKyAiXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTM5XFx1MDEzQVxcdTAxM0RcXHUwMTNFXFx1MDE0MyIKKyAgICAgICAgICAgICsgIlxcdTAxNDRcXHUwMTQ3XFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTRcXHUwMTU1XFx1MDE1OC0iCisgICAgICAgICAgICArICJcXHUwMTVEXFx1MDE2MFxcdTAxNjFcXHUwMTY0XFx1MDE2NVxcdTAxNjgtXFx1MDE3MVxcdTAxNzQtIgorICAgICAgICAgICAgKyAiXFx1MDE3RlxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjBcXHUwMUI3XFx1MDFDRC1cXHUwMURDXFx1MDFERSIKKyAgICAgICAgICAgICsgIi1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGNFxcdTAxRjVcXHUwMUY4LVxcdTAxRkJcXHUwMjAwLSIKKyAgICAgICAgICAgICsgIlxcdTAyMUJcXHUwMjFFXFx1MDIxRlxcdTAyMjYtXFx1MDIzM1xcdTAyOTJcXHUwMzAwLVxcdTAzNEUiCisgICAgICAgICAgICArICJcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3RVxcdTAzODdcXHUwMzkxXFx1MDM5NVxcdTAzOTdcXHUwMzk5IgorICAgICAgICAgICAgKyAiXFx1MDM5RlxcdTAzQTFcXHUwM0E1XFx1MDNBOVxcdTAzQUNcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3IgorICAgICAgICAgICAgKyAiXFx1MDNCOVxcdTAzQkZcXHUwM0MxXFx1MDNDNVxcdTAzQzktXFx1MDNDQlxcdTAzQ0VcXHUwM0QyXFx1MDQwNiIKKyAgICAgICAgICAgICsgIlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4XFx1MDQxQVxcdTA0MUVcXHUwNDIzXFx1MDQyN1xcdTA0MkIiCisgICAgICAgICAgICArICJcXHUwNDJEXFx1MDQzMFxcdTA0MzNcXHUwNDM1LVxcdTA0MzhcXHUwNDNBXFx1MDQzRVxcdTA0NDNcXHUwNDQ3IgorICAgICAgICAgICAgKyAiXFx1MDQ0QlxcdTA0NERcXHUwNDU2XFx1MDQ3NFxcdTA0NzVcXHUwNDgzLVxcdTA0ODZcXHUwNEQ4XFx1MDREOSIKKyAgICAgICAgICAgICsgIlxcdTA0RThcXHUwNEU5XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzUiCisgICAgICAgICAgICArICJcXHUwNUM3XFx1MDYxMC1cXHUwNjE1XFx1MDYyMlxcdTA2MjNcXHUwNjI3XFx1MDY0OFxcdTA2NEEtIgorICAgICAgICAgICAgKyAiXFx1MDY1RVxcdTA2NzBcXHUwNkMxXFx1MDZEMlxcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNCIKKyAgICAgICAgICAgICsgIlxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3RUItIgorICAgICAgICAgICAgKyAiXFx1MDdGM1xcdTA5MjhcXHUwOTMwXFx1MDkzM1xcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OCIKKyAgICAgICAgICAgICsgIi1cXHUwOTVGXFx1MDlCQ1xcdTA5QkVcXHUwOUM3XFx1MDlDRFxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYiCisgICAgICAgICAgICArICJcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEIgorICAgICAgICAgICAgKyAiXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3XFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjkyIgorICAgICAgICAgICAgKyAiXFx1MEJCRVxcdTBCQzZcXHUwQkM3XFx1MEJDRFxcdTBCRDdcXHUwQzQ2XFx1MEM0RFxcdTBDNTVcXHUwQzU2IgorICAgICAgICAgICAgKyAiXFx1MENCQ1xcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwRDNFIgorICAgICAgICAgICAgKyAiXFx1MEQ0NlxcdTBENDdcXHUwRDREXFx1MEQ1N1xcdTBEQ0FcXHUwRENGXFx1MEREOVxcdTBERENcXHUwRERGIgorICAgICAgICAgICAgKyAiXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCOFxcdTBFQjlcXHUwRUM4LVxcdTBFQ0IiCisgICAgICAgICAgICArICJcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTciCisgICAgICAgICAgICArICJcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3NlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLSIKKyAgICAgICAgICAgICsgIlxcdTBGODRcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOSIKKyAgICAgICAgICAgICsgIlxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTEwMC1cXHUxMTEyXFx1MTE2MS0iCisgICAgICAgICAgICArICJcXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMlxcdTE3RERcXHUxOEE5IgorICAgICAgICAgICAgKyAiXFx1MTkzOS1cXHUxOTNCXFx1MUExN1xcdTFBMThcXHUxQjM0XFx1MUI0NFxcdTFCNkItXFx1MUI3MyIKKyAgICAgICAgICAgICsgIlxcdTFEQzAtXFx1MURDQVxcdTFERkUtXFx1MUUwM1xcdTFFMEEtXFx1MUUwRlxcdTFFMTItXFx1MUUxQiIKKyAgICAgICAgICAgICsgIlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtXFx1MUU1M1xcdTFFNTgtXFx1MUU3RCIKKyAgICAgICAgICAgICsgIlxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5OVxcdTFFQTAtXFx1MUVGMyIKKyAgICAgICAgICAgICsgIlxcdTFFRjYtXFx1MUVGOVxcdTFGMDAtXFx1MUYxMVxcdTFGMThcXHUxRjE5XFx1MUYyMC1cXHUxRjMxIgorICAgICAgICAgICAgKyAiXFx1MUYzOFxcdTFGMzlcXHUxRjQwXFx1MUY0MVxcdTFGNDhcXHUxRjQ5XFx1MUY1MFxcdTFGNTFcXHUxRjU5IgorICAgICAgICAgICAgKyAiXFx1MUY2MC1cXHUxRjcxXFx1MUY3My1cXHUxRjc1XFx1MUY3N1xcdTFGNzlcXHUxRjdCLVxcdTFGN0QiCisgICAgICAgICAgICArICJcXHUxRjgwXFx1MUY4MVxcdTFGODhcXHUxRjg5XFx1MUY5MFxcdTFGOTFcXHUxRjk4XFx1MUY5OVxcdTFGQTAiCisgICAgICAgICAgICArICJcXHUxRkExXFx1MUZBOFxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkJcXHUxRkJDXFx1MUZCRVxcdTFGQkYiCisgICAgICAgICAgICArICJcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCXFx1MUZDQ1xcdTFGRDNcXHUxRkRCXFx1MUZFM1xcdTFGRUIiCisgICAgICAgICAgICArICJcXHUxRkVFXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOVxcdTFGRkItXFx1MUZGRVxcdTIwMDBcXHUyMDAxIgorICAgICAgICAgICAgKyAiXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFRlxcdTIxMjZcXHUyMTJBXFx1MjEyQiIKKyAgICAgICAgICAgICsgIlxcdTIxOTBcXHUyMTkyXFx1MjE5NFxcdTIxRDBcXHUyMUQyXFx1MjFENFxcdTIyMDNcXHUyMjA4XFx1MjIwQiIKKyAgICAgICAgICAgICsgIlxcdTIyMjNcXHUyMjI1XFx1MjIzQ1xcdTIyNDNcXHUyMjQ1XFx1MjI0OFxcdTIyNERcXHUyMjYxXFx1MjI2NCIKKyAgICAgICAgICAgICsgIlxcdTIyNjVcXHUyMjcyXFx1MjI3M1xcdTIyNzZcXHUyMjc3XFx1MjI3QS1cXHUyMjdEXFx1MjI4MlxcdTIyODMiCisgICAgICAgICAgICArICJcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItIgorICAgICAgICAgICAgKyAiXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MkFEQ1xcdTMwMkEtXFx1MzAyRlxcdTMwNDZcXHUzMDRCXFx1MzA0RCIKKyAgICAgICAgICAgICsgIlxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OVxcdTMwNUJcXHUzMDVEXFx1MzA1RiIKKyAgICAgICAgICAgICsgIlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MlxcdTMwNzVcXHUzMDc4XFx1MzA3QiIKKyAgICAgICAgICAgICsgIlxcdTMwOTlcXHUzMDlBXFx1MzA5RFxcdTMwQTZcXHUzMEFCXFx1MzBBRFxcdTMwQUZcXHUzMEIxXFx1MzBCMyIKKyAgICAgICAgICAgICsgIlxcdTMwQjVcXHUzMEI3XFx1MzBCOVxcdTMwQkJcXHUzMEJEXFx1MzBCRlxcdTMwQzFcXHUzMEM0XFx1MzBDNiIKKyAgICAgICAgICAgICsgIlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDVcXHUzMEQ4XFx1MzBEQlxcdTMwRUYtXFx1MzBGMlxcdTMwRkQiCisgICAgICAgICAgICArICJcXHVBODA2XFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDXFx1QUNBOFxcdUFDQzQiCisgICAgICAgICAgICArICJcXHVBQ0UwXFx1QUNGQ1xcdUFEMThcXHVBRDM0XFx1QUQ1MFxcdUFENkNcXHVBRDg4XFx1QURBNFxcdUFEQzAiCisgICAgICAgICAgICArICJcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjhcXHVBRTg0XFx1QUVBMFxcdUFFQkMiCisgICAgICAgICAgICArICJcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwXFx1QUY5Q1xcdUFGQjgiCisgICAgICAgICAgICArICJcXHVBRkQ0XFx1QUZGMFxcdUIwMENcXHVCMDI4XFx1QjA0NFxcdUIwNjBcXHVCMDdDXFx1QjA5OFxcdUIwQjQiCisgICAgICAgICAgICArICJcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUNcXHVCMTc4XFx1QjE5NFxcdUIxQjAiCisgICAgICAgICAgICArICJcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0XFx1QjI5MFxcdUIyQUMiCisgICAgICAgICAgICArICJcXHVCMkM4XFx1QjJFNFxcdUIzMDBcXHVCMzFDXFx1QjMzOFxcdUIzNTRcXHVCMzcwXFx1QjM4Q1xcdUIzQTgiCisgICAgICAgICAgICArICJcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTBcXHVCNDZDXFx1QjQ4OFxcdUI0QTQiCisgICAgICAgICAgICArICJcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4XFx1QjU4NFxcdUI1QTAiCisgICAgICAgICAgICArICJcXHVCNUJDXFx1QjVEOFxcdUI1RjRcXHVCNjEwXFx1QjYyQ1xcdUI2NDhcXHVCNjY0XFx1QjY4MFxcdUI2OUMiCisgICAgICAgICAgICArICJcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDRcXHVCNzYwXFx1Qjc3Q1xcdUI3OTgiCisgICAgICAgICAgICArICJcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDXFx1Qjg3OFxcdUI4OTQiCisgICAgICAgICAgICArICJcXHVCOEIwXFx1QjhDQ1xcdUI4RThcXHVCOTA0XFx1QjkyMFxcdUI5M0NcXHVCOTU4XFx1Qjk3NFxcdUI5OTAiCisgICAgICAgICAgICArICJcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzhcXHVCQTU0XFx1QkE3MFxcdUJBOEMiCisgICAgICAgICAgICArICJcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwXFx1QkI2Q1xcdUJCODgiCisgICAgICAgICAgICArICJcXHVCQkE0XFx1QkJDMFxcdUJCRENcXHVCQkY4XFx1QkMxNFxcdUJDMzBcXHVCQzRDXFx1QkM2OFxcdUJDODQiCisgICAgICAgICAgICArICJcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkNcXHVCRDQ4XFx1QkQ2NFxcdUJEODAiCisgICAgICAgICAgICArICJcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0XFx1QkU2MFxcdUJFN0MiCisgICAgICAgICAgICArICJcXHVCRTk4XFx1QkVCNFxcdUJFRDBcXHVCRUVDXFx1QkYwOFxcdUJGMjRcXHVCRjQwXFx1QkY1Q1xcdUJGNzgiCisgICAgICAgICAgICArICJcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjBcXHVDMDNDXFx1QzA1OFxcdUMwNzQiCisgICAgICAgICAgICArICJcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4XFx1QzE1NFxcdUMxNzAiCisgICAgICAgICAgICArICJcXHVDMThDXFx1QzFBOFxcdUMxQzRcXHVDMUUwXFx1QzFGQ1xcdUMyMThcXHVDMjM0XFx1QzI1MFxcdUMyNkMiCisgICAgICAgICAgICArICJcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTRcXHVDMzMwXFx1QzM0Q1xcdUMzNjgiCisgICAgICAgICAgICArICJcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDXFx1QzQ0OFxcdUM0NjQiCisgICAgICAgICAgICArICJcXHVDNDgwXFx1QzQ5Q1xcdUM0QjhcXHVDNEQ0XFx1QzRGMFxcdUM1MENcXHVDNTI4XFx1QzU0NFxcdUM1NjAiCisgICAgICAgICAgICArICJcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDhcXHVDNjI0XFx1QzY0MFxcdUM2NUMiCisgICAgICAgICAgICArICJcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwXFx1QzczQ1xcdUM3NTgiCisgICAgICAgICAgICArICJcXHVDNzc0XFx1Qzc5MFxcdUM3QUNcXHVDN0M4XFx1QzdFNFxcdUM4MDBcXHVDODFDXFx1QzgzOFxcdUM4NTQiCisgICAgICAgICAgICArICJcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkNcXHVDOTE4XFx1QzkzNFxcdUM5NTAiCisgICAgICAgICAgICArICJcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0XFx1Q0EzMFxcdUNBNEMiCisgICAgICAgICAgICArICJcXHVDQTY4XFx1Q0E4NFxcdUNBQTBcXHVDQUJDXFx1Q0FEOFxcdUNBRjRcXHVDQjEwXFx1Q0IyQ1xcdUNCNDgiCisgICAgICAgICAgICArICJcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjBcXHVDQzBDXFx1Q0MyOFxcdUNDNDQiCisgICAgICAgICAgICArICJcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4XFx1Q0QyNFxcdUNENDAiCisgICAgICAgICAgICArICJcXHVDRDVDXFx1Q0Q3OFxcdUNEOTRcXHVDREIwXFx1Q0RDQ1xcdUNERThcXHVDRTA0XFx1Q0UyMFxcdUNFM0MiCisgICAgICAgICAgICArICJcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTRcXHVDRjAwXFx1Q0YxQ1xcdUNGMzgiCisgICAgICAgICAgICArICJcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDXFx1RDAxOFxcdUQwMzQiCisgICAgICAgICAgICArICJcXHVEMDUwXFx1RDA2Q1xcdUQwODhcXHVEMEE0XFx1RDBDMFxcdUQwRENcXHVEMEY4XFx1RDExNFxcdUQxMzAiCisgICAgICAgICAgICArICJcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDhcXHVEMUY0XFx1RDIxMFxcdUQyMkMiCisgICAgICAgICAgICArICJcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwXFx1RDMwQ1xcdUQzMjgiCisgICAgICAgICAgICArICJcXHVEMzQ0XFx1RDM2MFxcdUQzN0NcXHVEMzk4XFx1RDNCNFxcdUQzRDBcXHVEM0VDXFx1RDQwOFxcdUQ0MjQiCisgICAgICAgICAgICArICJcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0NcXHVENEU4XFx1RDUwNFxcdUQ1MjAiCisgICAgICAgICAgICArICJcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0XFx1RDYwMFxcdUQ2MUMiCisgICAgICAgICAgICArICJcXHVENjM4XFx1RDY1NFxcdUQ2NzBcXHVENjhDXFx1RDZBOFxcdUQ2QzRcXHVENkUwXFx1RDZGQ1xcdUQ3MTgiCisgICAgICAgICAgICArICJcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTJcXHVGQTE1IgorICAgICAgICAgICAgKyAiLVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC0iCisgICAgICAgICAgICArICJcXHVGQTZBXFx1RkE3MC1cXHVGQUQ5XFx1RkIxRC1cXHVGQjFGXFx1RkIyQS1cXHVGQjM2XFx1RkIzOC0iCisgICAgICAgICAgICArICJcXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCNEVcXHVGRTIwIgorICAgICAgICAgICAgKyAiLVxcdUZFMjNcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0FcXFUwMDAxMEEzRiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJcXFUwMDAxRDE3Qi0iCisgICAgICAgICAgICArICJcXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQURcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtEOgorICAgICAgICAgIFVOU0FGRV9TVEFSVFNbS0RdID0gbmV3IFVuaWNvZGVTZXQoIltcdTBGNzNcdTBGNzVcdTBGODFcdUZGOUUtXHVGRjlGXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0tEXSA9IG5ldyBVbmljb2RlU2V0KAorICAgICAgICAgICAgICAiW15cXHUwMEEwXFx1MDBBOFxcdTAwQUFcXHUwMEFGXFx1MDBCMi1cXHUwMEI1XFx1MDBCOC1cXHUwMEJBIgorICAgICAgICAgICAgKyAiXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICAgKyAiXFx1MDBEOS1cXHUwMEREXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2IgorICAgICAgICAgICAgKyAiXFx1MDBGOS1cXHUwMEZEXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwIgorICAgICAgICAgICAgKyAiXFx1MDEzMi1cXHUwMTM3XFx1MDEzOS1cXHUwMTQwXFx1MDE0My1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICAgKyAiXFx1MDE1NC1cXHUwMTY1XFx1MDE2OC1cXHUwMTdGXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMCIKKyAgICAgICAgICAgICsgIlxcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGNVxcdTAxRjgtXFx1MDIxQiIKKyAgICAgICAgICAgICsgIlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDJCMC1cXHUwMkI4XFx1MDJEOC1cXHUwMkREIgorICAgICAgICAgICAgKyAiXFx1MDJFMC1cXHUwMkU0XFx1MDMwMC1cXHUwMzRFXFx1MDM1MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0EiCisgICAgICAgICAgICArICJcXHUwMzdFXFx1MDM4NC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtXFx1MDNCMCIKKyAgICAgICAgICAgICsgIlxcdTAzQ0EtXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDBcXHUwNDAxXFx1MDQwM1xcdTA0MDdcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOSIKKyAgICAgICAgICAgICsgIlxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDLVxcdTA0NUVcXHUwNDc2XFx1MDQ3N1xcdTA0ODMiCisgICAgICAgICAgICArICItXFx1MDQ4NlxcdTA0QzFcXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENlxcdTA0RDdcXHUwNERBLSIKKyAgICAgICAgICAgICsgIlxcdTA0REZcXHUwNEUyLVxcdTA0RTdcXHUwNEVBLVxcdTA0RjVcXHUwNEY4XFx1MDRGOVxcdTA1ODciCisgICAgICAgICAgICArICJcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwIgorICAgICAgICAgICAgKyAiLVxcdTA2MTVcXHUwNjIyLVxcdTA2MjZcXHUwNjRCLVxcdTA2NUVcXHUwNjcwXFx1MDY3NS1cXHUwNjc4IgorICAgICAgICAgICAgKyAiXFx1MDZDMFxcdTA2QzJcXHUwNkQzXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFNyIKKyAgICAgICAgICAgICsgIlxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi1cXHUwN0YzIgorICAgICAgICAgICAgKyAiXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICAgICsgIlxcdTA5NUZcXHUwOUJDXFx1MDlDQi1cXHUwOUNEXFx1MDlEQ1xcdTA5RERcXHUwOURGXFx1MEEzM1xcdTBBMzYiCisgICAgICAgICAgICArICJcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0NcXHUwQjQ4IgorICAgICAgICAgICAgKyAiXFx1MEI0Qi1cXHUwQjREXFx1MEI1Q1xcdTBCNURcXHUwQjk0XFx1MEJDQS1cXHUwQkNEXFx1MEM0OCIKKyAgICAgICAgICAgICsgIlxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDQkNcXHUwQ0MwXFx1MENDN1xcdTBDQzhcXHUwQ0NBXFx1MENDQiIKKyAgICAgICAgICAgICsgIlxcdTBDQ0RcXHUwRDRBLVxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERVxcdTBFMzMiCisgICAgICAgICAgICArICJcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOFxcdTBFQjlcXHUwRUM4LSIKKyAgICAgICAgICAgICsgIlxcdTBFQ0JcXHUwRURDXFx1MEVERFxcdTBGMENcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOSIKKyAgICAgICAgICAgICsgIlxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3RFxcdTBGODAiCisgICAgICAgICAgICArICItXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5IgorICAgICAgICAgICAgKyAiXFx1MEZDNlxcdTEwMjZcXHUxMDM3XFx1MTAzOVxcdTEwRkNcXHUxMzVGXFx1MTcxNFxcdTE3MzRcXHUxN0QyIgorICAgICAgICAgICAgKyAiXFx1MTdERFxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFCMzRcXHUxQjQ0XFx1MUI2QiIKKyAgICAgICAgICAgICsgIi1cXHUxQjczXFx1MUQyQy1cXHUxRDJFXFx1MUQzMC1cXHUxRDNBXFx1MUQzQy1cXHUxRDREXFx1MUQ0Ri0iCisgICAgICAgICAgICArICJcXHUxRDZBXFx1MUQ3OFxcdTFEOUItXFx1MURDQVxcdTFERkUtXFx1MUU5QlxcdTFFQTAtXFx1MUVGOSIKKyAgICAgICAgICAgICsgIlxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RCIKKyAgICAgICAgICAgICsgIlxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtIgorICAgICAgICAgICAgKyAiXFx1MUZCNFxcdTFGQjYtXFx1MUZDNFxcdTFGQzYtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGREQtIgorICAgICAgICAgICAgKyAiXFx1MUZFRlxcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTEiCisgICAgICAgICAgICArICJcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRlxcdTIwMzNcXHUyMDM0XFx1MjAzNlxcdTIwMzdcXHUyMDNDIgorICAgICAgICAgICAgKyAiXFx1MjAzRVxcdTIwNDctXFx1MjA0OVxcdTIwNTdcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LSIKKyAgICAgICAgICAgICsgIlxcdTIwOEVcXHUyMDkwLVxcdTIwOTRcXHUyMEE4XFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtIgorICAgICAgICAgICAgKyAiXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTUiCisgICAgICAgICAgICArICJcXHUyMTE2XFx1MjExOS1cXHUyMTFEXFx1MjEyMC1cXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4IgorICAgICAgICAgICAgKyAiXFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTMxXFx1MjEzMy1cXHUyMTM5XFx1MjEzQi1cXHUyMTQwIgorICAgICAgICAgICAgKyAiXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGXFx1MjE5QVxcdTIxOUJcXHUyMUFFXFx1MjFDRC0iCisgICAgICAgICAgICArICJcXHUyMUNGXFx1MjIwNFxcdTIyMDlcXHUyMjBDXFx1MjIyNFxcdTIyMjZcXHUyMjJDXFx1MjIyRFxcdTIyMkYiCisgICAgICAgICAgICArICJcXHUyMjMwXFx1MjI0MVxcdTIyNDRcXHUyMjQ3XFx1MjI0OVxcdTIyNjBcXHUyMjYyXFx1MjI2RC1cXHUyMjcxIgorICAgICAgICAgICAgKyAiXFx1MjI3NFxcdTIyNzVcXHUyMjc4XFx1MjI3OVxcdTIyODBcXHUyMjgxXFx1MjI4NFxcdTIyODVcXHUyMjg4IgorICAgICAgICAgICAgKyAiXFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFM1xcdTIyRUEtXFx1MjJFRFxcdTIzMjkiCisgICAgICAgICAgICArICJcXHUyMzJBXFx1MjQ2MC1cXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBRENcXHUyRDZGIgorICAgICAgICAgICAgKyAiXFx1MkU5RlxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNiIKKyAgICAgICAgICAgICsgIlxcdTMwMzgtXFx1MzAzQVxcdTMwNENcXHUzMDRFXFx1MzA1MFxcdTMwNTJcXHUzMDU0XFx1MzA1NlxcdTMwNTgiCisgICAgICAgICAgICArICJcXHUzMDVBXFx1MzA1Q1xcdTMwNUVcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzAiCisgICAgICAgICAgICArICJcXHUzMDcxXFx1MzA3M1xcdTMwNzRcXHUzMDc2XFx1MzA3N1xcdTMwNzlcXHUzMDdBXFx1MzA3Q1xcdTMwN0QiCisgICAgICAgICAgICArICJcXHUzMDk0XFx1MzA5OS1cXHUzMDlDXFx1MzA5RVxcdTMwOUZcXHUzMEFDXFx1MzBBRVxcdTMwQjBcXHUzMEIyIgorICAgICAgICAgICAgKyAiXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQVxcdTMwQkNcXHUzMEJFXFx1MzBDMFxcdTMwQzJcXHUzMEM1IgorICAgICAgICAgICAgKyAiXFx1MzBDN1xcdTMwQzlcXHUzMEQwXFx1MzBEMVxcdTMwRDNcXHUzMEQ0XFx1MzBENlxcdTMwRDdcXHUzMEQ5IgorICAgICAgICAgICAgKyAiXFx1MzBEQVxcdTMwRENcXHUzMEREXFx1MzBGNFxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHUzMEZGXFx1MzEzMSIKKyAgICAgICAgICAgICsgIi1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGXFx1MzIwMC1cXHUzMjFFXFx1MzIyMC1cXHUzMjQzXFx1MzI1MC0iCisgICAgICAgICAgICArICJcXHUzMjdFXFx1MzI4MC1cXHUzMkZFXFx1MzMwMC1cXHUzM0ZGXFx1QTgwNlxcdUFDMDAtXFx1RDdBMyIKKyAgICAgICAgICAgICsgIlxcdUY5MDAtXFx1RkEwRFxcdUZBMTBcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjIiCisgICAgICAgICAgICArICJcXHVGQTI1XFx1RkEyNlxcdUZBMkEtXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZBNzAtXFx1RkFEOSIKKyAgICAgICAgICAgICsgIlxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQyIKKyAgICAgICAgICAgICsgIlxcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy0iCisgICAgICAgICAgICArICJcXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZDXFx1RkUxMC0iCisgICAgICAgICAgICArICJcXHVGRTE5XFx1RkUyMC1cXHVGRTIzXFx1RkUzMC1cXHVGRTQ0XFx1RkU0Ny1cXHVGRTUyXFx1RkU1NC0iCisgICAgICAgICAgICArICJcXHVGRTY2XFx1RkU2OC1cXHVGRTZCXFx1RkU3MC1cXHVGRTcyXFx1RkU3NFxcdUZFNzYtXFx1RkVGQyIKKyAgICAgICAgICAgICsgIlxcdUZGMDEtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZENyIKKyAgICAgICAgICAgICsgIlxcdUZGREEtXFx1RkZEQ1xcdUZGRTAtXFx1RkZFNlxcdUZGRTgtXFx1RkZFRVxcVTAwMDEwQTBEXFxVMDAwMTAiCisgICAgICAgICAgICArICJBMEZcXFUwMDAxMEEzOC1cXFUwMDAxMEEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjkiCisgICAgICAgICAgICArICJcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQyNDItXFxVMDAwMUQyNDRcXFUwMDAxRDQwMC1cXFUwMDAxRDQ1NFxcVTAwMDFENDU2LVxcVTAwMDFENDlDIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0OUVcXFUwMDAxRDQ5RlxcVTAwMDFENEEyXFxVMDAwMUQ0QTVcXFUwMDAxRDRBNlxcVTAwMDFENCIKKyAgICAgICAgICAgICsgIkE5LVxcVTAwMDFENEFDXFxVMDAwMUQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxRDRCQlxcVTAwMDFENEJELSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENEMzXFxVMDAwMUQ0QzUtXFxVMDAwMUQ1MDVcXFUwMDAxRDUwNy1cXFUwMDAxRDUwQVxcVTAwMDEiCisgICAgICAgICAgICArICJENTBELVxcVTAwMDFENTE0XFxVMDAwMUQ1MTYtXFxVMDAwMUQ1MUNcXFUwMDAxRDUxRS1cXFUwMDAxRDUzOSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTNCLVxcVTAwMDFENTNFXFxVMDAwMUQ1NDAtXFxVMDAwMUQ1NDRcXFUwMDAxRDU0NlxcVTAwMDEiCisgICAgICAgICAgICArICJENTRBLVxcVTAwMDFENTUwXFxVMDAwMUQ1NTItXFxVMDAwMUQ2QTVcXFUwMDAxRDZBOC1cXFUwMDAxRDdDQiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEN0NFLVxcVTAwMDFEN0ZGXFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtDOgorICAgICAgICAgIFVOU0FGRV9TVEFSVFNbS0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXFx1MDlCRVxcdTA5RDdcXHUwQjNFXFx1MEI1NlxcdTBCNTdcXHUwQkJFXFx1MEJEN1xcdTBDQzJcXHUwQ0Q1IgorICAgICAgICAgICAgKyAiXFx1MENENlxcdTBEM0VcXHUwRDU3XFx1MERDRlxcdTBEREZcXHUwRjczXFx1MEY3NVxcdTBGODFcXHUxMDJFIgorICAgICAgICAgICAgKyAiXFx1MTE2MS1cXHUxMTc1XFx1MTFBNy1cXHUxMUMyXFx1MzEzM1xcdTMxMzVcXHUzMTM2XFx1MzEzQS0iCisgICAgICAgICAgICArICJcXHUzMTNGXFx1MzE0Ri1cXHUzMTYzXFx1RkY5RVxcdUZGOUZcXHVGRkEzXFx1RkZBNVxcdUZGQTZcXHVGRkFBIgorICAgICAgICAgICAgKyAiLVxcdUZGQUZcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLSIKKyAgICAgICAgICAgICsgIlxcdUZGRENdIiwgZmFsc2UpOworICAgICAgICAgIFNLSVBQQUJMRVNbS0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjUiCisgICAgICAgICAgICArICJcXHUwMEI4LVxcdTAwQkFcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDYiCisgICAgICAgICAgICArICJcXHUwMEQ4LVxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkQiCisgICAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjEiCisgICAgICAgICAgICArICJcXHUwMTI0XFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTMyXFx1MDEzM1xcdTAxMzlcXHUwMTNBIgorICAgICAgICAgICAgKyAiXFx1MDEzRC1cXHUwMTQwXFx1MDE0M1xcdTAxNDRcXHUwMTQ3LVxcdTAxNDlcXHUwMTRDLVxcdTAxNTEiCisgICAgICAgICAgICArICJcXHUwMTU0XFx1MDE1NVxcdTAxNTgtXFx1MDE1RFxcdTAxNjBcXHUwMTYxXFx1MDE2NFxcdTAxNjVcXHUwMTY4IgorICAgICAgICAgICAgKyAiLVxcdTAxNzFcXHUwMTc0LVxcdTAxN0ZcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwXFx1MDFCNyIKKyAgICAgICAgICAgICsgIlxcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFMVxcdTAxRTYtXFx1MDFFQlxcdTAxRjEtXFx1MDFGNSIKKyAgICAgICAgICAgICsgIlxcdTAxRjgtXFx1MDFGQlxcdTAyMDAtXFx1MDIxQlxcdTAyMUVcXHUwMjFGXFx1MDIyNi1cXHUwMjMzIgorICAgICAgICAgICAgKyAiXFx1MDI5MlxcdTAyQjAtXFx1MDJCOFxcdTAyRDgtXFx1MDJERFxcdTAyRTAtXFx1MDJFNFxcdTAzMDAtIgorICAgICAgICAgICAgKyAiXFx1MDM0RVxcdTAzNTAtXFx1MDM2RlxcdTAzNzRcXHUwMzdBXFx1MDM3RVxcdTAzODRcXHUwMzg1XFx1MDM4NyIKKyAgICAgICAgICAgICsgIlxcdTAzOTFcXHUwMzk1XFx1MDM5N1xcdTAzOTlcXHUwMzlGXFx1MDNBMVxcdTAzQTVcXHUwM0E5XFx1MDNBQyIKKyAgICAgICAgICAgICsgIlxcdTAzQUVcXHUwM0IxXFx1MDNCNVxcdTAzQjdcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS0iCisgICAgICAgICAgICArICJcXHUwM0NCXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjRcXHUwM0Y1IgorICAgICAgICAgICAgKyAiXFx1MDNGOVxcdTA0MDZcXHUwNDEwXFx1MDQxM1xcdTA0MTUtXFx1MDQxOFxcdTA0MUFcXHUwNDFFXFx1MDQyMyIKKyAgICAgICAgICAgICsgIlxcdTA0MjdcXHUwNDJCXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQVxcdTA0M0UiCisgICAgICAgICAgICArICJcXHUwNDQzXFx1MDQ0N1xcdTA0NEJcXHUwNDREXFx1MDQ1NlxcdTA0NzRcXHUwNDc1XFx1MDQ4My1cXHUwNDg2IgorICAgICAgICAgICAgKyAiXFx1MDREOFxcdTA0RDlcXHUwNEU4XFx1MDRFOVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMSIKKyAgICAgICAgICAgICsgIlxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MTVcXHUwNjIyXFx1MDYyM1xcdTA2MjciCisgICAgICAgICAgICArICJcXHUwNjQ4XFx1MDY0QS1cXHUwNjVFXFx1MDY3MFxcdTA2NzUtXFx1MDY3OFxcdTA2QzFcXHUwNkQyIgorICAgICAgICAgICAgKyAiXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RUQiCisgICAgICAgICAgICArICJcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdFQi1cXHUwN0YzXFx1MDkyOFxcdTA5MzBcXHUwOTMzIgorICAgICAgICAgICAgKyAiXFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LVxcdTA5NUZcXHUwOUJDXFx1MDlCRSIKKyAgICAgICAgICAgICsgIlxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQyIKKyAgICAgICAgICAgICsgIlxcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQ1xcdTBBQ0RcXHUwQjNDXFx1MEIzRVxcdTBCNDciCisgICAgICAgICAgICArICJcXHUwQjREXFx1MEI1NlxcdTBCNTdcXHUwQjVDXFx1MEI1RFxcdTBCOTJcXHUwQkJFXFx1MEJDNlxcdTBCQzciCisgICAgICAgICAgICArICJcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQ0JDXFx1MENCRlxcdTBDQzIiCisgICAgICAgICAgICArICJcXHUwQ0M2XFx1MENDQVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBEM0VcXHUwRDQ2XFx1MEQ0N1xcdTBENEQiCisgICAgICAgICAgICArICJcXHUwRDU3XFx1MERDQVxcdTBEQ0ZcXHUwREQ5XFx1MEREQ1xcdTBEREZcXHUwRTMzXFx1MEUzOC1cXHUwRTNBIgorICAgICAgICAgICAgKyAiXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQyIKKyAgICAgICAgICAgICsgIlxcdTBFRERcXHUwRjBDXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjQzXFx1MEY0RCIKKyAgICAgICAgICAgICsgIlxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGN0RcXHUwRjgwLVxcdTBGODQiCisgICAgICAgICAgICArICJcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzYiCisgICAgICAgICAgICArICJcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5XFx1MTBGQ1xcdTExMDAtXFx1MTExMlxcdTExNjEtIgorICAgICAgICAgICAgKyAiXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REXFx1MThBOSIKKyAgICAgICAgICAgICsgIlxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUIzNFxcdTFCNDRcXHUxQjZCLVxcdTFCNzMiCisgICAgICAgICAgICArICJcXHUxRDJDLVxcdTFEMkVcXHUxRDMwLVxcdTFEM0FcXHUxRDNDLVxcdTFENERcXHUxRDRGLVxcdTFENkEiCisgICAgICAgICAgICArICJcXHUxRDc4XFx1MUQ5Qi1cXHUxRENBXFx1MURGRS1cXHUxRTAzXFx1MUUwQS1cXHUxRTBGXFx1MUUxMi0iCisgICAgICAgICAgICArICJcXHUxRTFCXFx1MUUyMC1cXHUxRTI3XFx1MUUyQS1cXHUxRTQxXFx1MUU0NC1cXHUxRTUzXFx1MUU1OC0iCisgICAgICAgICAgICArICJcXHUxRTdEXFx1MUU4MC1cXHUxRTg3XFx1MUU4RS1cXHUxRTkxXFx1MUU5Ni1cXHUxRTlCXFx1MUVBMC0iCisgICAgICAgICAgICArICJcXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOFxcdTFGMTlcXHUxRjIwLSIKKyAgICAgICAgICAgICsgIlxcdTFGMzFcXHUxRjM4XFx1MUYzOVxcdTFGNDBcXHUxRjQxXFx1MUY0OFxcdTFGNDlcXHUxRjUwXFx1MUY1MSIKKyAgICAgICAgICAgICsgIlxcdTFGNTlcXHUxRjYwLVxcdTFGNzFcXHUxRjczLVxcdTFGNzVcXHUxRjc3XFx1MUY3OVxcdTFGN0ItIgorICAgICAgICAgICAgKyAiXFx1MUY3RFxcdTFGODBcXHUxRjgxXFx1MUY4OFxcdTFGODlcXHUxRjkwXFx1MUY5MVxcdTFGOThcXHUxRjk5IgorICAgICAgICAgICAgKyAiXFx1MUZBMFxcdTFGQTFcXHUxRkE4XFx1MUZBOVxcdTFGQjNcXHUxRkI2XFx1MUZCQi1cXHUxRkMxXFx1MUZDMyIKKyAgICAgICAgICAgICsgIlxcdTFGQzZcXHUxRkM5XFx1MUZDQi1cXHUxRkNGXFx1MUZEM1xcdTFGREJcXHUxRkRELVxcdTFGREYiCisgICAgICAgICAgICArICJcXHUxRkUzXFx1MUZFQlxcdTFGRUQtXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOVxcdTFGRkItIgorICAgICAgICAgICAgKyAiXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC1cXHUyMDI2XFx1MjAyRiIKKyAgICAgICAgICAgICsgIlxcdTIwMzNcXHUyMDM0XFx1MjAzNlxcdTIwMzdcXHUyMDNDXFx1MjAzRVxcdTIwNDctXFx1MjA0OVxcdTIwNTciCisgICAgICAgICAgICArICJcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMDkwLVxcdTIwOTRcXHUyMEE4IgorICAgICAgICAgICAgKyAiXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFRlxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtIgorICAgICAgICAgICAgKyAiXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTVcXHUyMTE2XFx1MjExOS1cXHUyMTFEXFx1MjEyMC0iCisgICAgICAgICAgICArICJcXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTMxIgorICAgICAgICAgICAgKyAiXFx1MjEzMy1cXHUyMTM5XFx1MjEzQi1cXHUyMTQwXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My1cXHUyMTdGIgorICAgICAgICAgICAgKyAiXFx1MjE5MFxcdTIxOTJcXHUyMTk0XFx1MjFEMFxcdTIxRDJcXHUyMUQ0XFx1MjIwM1xcdTIyMDhcXHUyMjBCIgorICAgICAgICAgICAgKyAiXFx1MjIyM1xcdTIyMjVcXHUyMjJDXFx1MjIyRFxcdTIyMkZcXHUyMjMwXFx1MjIzQ1xcdTIyNDNcXHUyMjQ1IgorICAgICAgICAgICAgKyAiXFx1MjI0OFxcdTIyNERcXHUyMjYxXFx1MjI2NFxcdTIyNjVcXHUyMjcyXFx1MjI3M1xcdTIyNzZcXHUyMjc3IgorICAgICAgICAgICAgKyAiXFx1MjI3QS1cXHUyMjdEXFx1MjI4MlxcdTIyODNcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMiIKKyAgICAgICAgICAgICsgIlxcdTIyQThcXHUyMkE5XFx1MjJBQlxcdTIyQjItXFx1MjJCNVxcdTIzMjlcXHUyMzJBXFx1MjQ2MC0iCisgICAgICAgICAgICArICJcXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBRENcXHUyRDZGXFx1MkU5RlxcdTJFRjNcXHUyRjAwIgorICAgICAgICAgICAgKyAiLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNlxcdTMwMzgtXFx1MzAzQVxcdTMwNDYiCisgICAgICAgICAgICArICJcXHUzMDRCXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OVxcdTMwNUIiCisgICAgICAgICAgICArICJcXHUzMDVEXFx1MzA1RlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MlxcdTMwNzUiCisgICAgICAgICAgICArICJcXHUzMDc4XFx1MzA3QlxcdTMwOTktXFx1MzA5RFxcdTMwOUZcXHUzMEE2XFx1MzBBQlxcdTMwQURcXHUzMEFGIgorICAgICAgICAgICAgKyAiXFx1MzBCMVxcdTMwQjNcXHUzMEI1XFx1MzBCN1xcdTMwQjlcXHUzMEJCXFx1MzBCRFxcdTMwQkZcXHUzMEMxIgorICAgICAgICAgICAgKyAiXFx1MzBDNFxcdTMwQzZcXHUzMEM4XFx1MzBDRlxcdTMwRDJcXHUzMEQ1XFx1MzBEOFxcdTMwREJcXHUzMEVGLSIKKyAgICAgICAgICAgICsgIlxcdTMwRjJcXHUzMEZEXFx1MzBGRlxcdTMxMzEtXFx1MzE4RVxcdTMxOTItXFx1MzE5RlxcdTMyMDAtIgorICAgICAgICAgICAgKyAiXFx1MzIxRVxcdTMyMjAtXFx1MzI0M1xcdTMyNTAtXFx1MzI3RVxcdTMyODAtXFx1MzJGRVxcdTMzMDAtIgorICAgICAgICAgICAgKyAiXFx1MzNGRlxcdUE4MDZcXHVBQzAwXFx1QUMxQ1xcdUFDMzhcXHVBQzU0XFx1QUM3MFxcdUFDOENcXHVBQ0E4IgorICAgICAgICAgICAgKyAiXFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2Q1xcdUFEODhcXHVBREE0IgorICAgICAgICAgICAgKyAiXFx1QURDMFxcdUFERENcXHVBREY4XFx1QUUxNFxcdUFFMzBcXHVBRTRDXFx1QUU2OFxcdUFFODRcXHVBRUEwIgorICAgICAgICAgICAgKyAiXFx1QUVCQ1xcdUFFRDhcXHVBRUY0XFx1QUYxMFxcdUFGMkNcXHVBRjQ4XFx1QUY2NFxcdUFGODBcXHVBRjlDIgorICAgICAgICAgICAgKyAiXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MFxcdUIwN0NcXHVCMDk4IgorICAgICAgICAgICAgKyAiXFx1QjBCNFxcdUIwRDBcXHVCMEVDXFx1QjEwOFxcdUIxMjRcXHVCMTQwXFx1QjE1Q1xcdUIxNzhcXHVCMTk0IgorICAgICAgICAgICAgKyAiXFx1QjFCMFxcdUIxQ0NcXHVCMUU4XFx1QjIwNFxcdUIyMjBcXHVCMjNDXFx1QjI1OFxcdUIyNzRcXHVCMjkwIgorICAgICAgICAgICAgKyAiXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NFxcdUIzNzBcXHVCMzhDIgorICAgICAgICAgICAgKyAiXFx1QjNBOFxcdUIzQzRcXHVCM0UwXFx1QjNGQ1xcdUI0MThcXHVCNDM0XFx1QjQ1MFxcdUI0NkNcXHVCNDg4IgorICAgICAgICAgICAgKyAiXFx1QjRBNFxcdUI0QzBcXHVCNERDXFx1QjRGOFxcdUI1MTRcXHVCNTMwXFx1QjU0Q1xcdUI1NjhcXHVCNTg0IgorICAgICAgICAgICAgKyAiXFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OFxcdUI2NjRcXHVCNjgwIgorICAgICAgICAgICAgKyAiXFx1QjY5Q1xcdUI2QjhcXHVCNkQ0XFx1QjZGMFxcdUI3MENcXHVCNzI4XFx1Qjc0NFxcdUI3NjBcXHVCNzdDIgorICAgICAgICAgICAgKyAiXFx1Qjc5OFxcdUI3QjRcXHVCN0QwXFx1QjdFQ1xcdUI4MDhcXHVCODI0XFx1Qjg0MFxcdUI4NUNcXHVCODc4IgorICAgICAgICAgICAgKyAiXFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQ1xcdUI5NThcXHVCOTc0IgorICAgICAgICAgICAgKyAiXFx1Qjk5MFxcdUI5QUNcXHVCOUM4XFx1QjlFNFxcdUJBMDBcXHVCQTFDXFx1QkEzOFxcdUJBNTRcXHVCQTcwIgorICAgICAgICAgICAgKyAiXFx1QkE4Q1xcdUJBQThcXHVCQUM0XFx1QkFFMFxcdUJBRkNcXHVCQjE4XFx1QkIzNFxcdUJCNTBcXHVCQjZDIgorICAgICAgICAgICAgKyAiXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMFxcdUJDNENcXHVCQzY4IgorICAgICAgICAgICAgKyAiXFx1QkM4NFxcdUJDQTBcXHVCQ0JDXFx1QkNEOFxcdUJDRjRcXHVCRDEwXFx1QkQyQ1xcdUJENDhcXHVCRDY0IgorICAgICAgICAgICAgKyAiXFx1QkQ4MFxcdUJEOUNcXHVCREI4XFx1QkRENFxcdUJERjBcXHVCRTBDXFx1QkUyOFxcdUJFNDRcXHVCRTYwIgorICAgICAgICAgICAgKyAiXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNFxcdUJGNDBcXHVCRjVDIgorICAgICAgICAgICAgKyAiXFx1QkY3OFxcdUJGOTRcXHVCRkIwXFx1QkZDQ1xcdUJGRThcXHVDMDA0XFx1QzAyMFxcdUMwM0NcXHVDMDU4IgorICAgICAgICAgICAgKyAiXFx1QzA3NFxcdUMwOTBcXHVDMEFDXFx1QzBDOFxcdUMwRTRcXHVDMTAwXFx1QzExQ1xcdUMxMzhcXHVDMTU0IgorICAgICAgICAgICAgKyAiXFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOFxcdUMyMzRcXHVDMjUwIgorICAgICAgICAgICAgKyAiXFx1QzI2Q1xcdUMyODhcXHVDMkE0XFx1QzJDMFxcdUMyRENcXHVDMkY4XFx1QzMxNFxcdUMzMzBcXHVDMzRDIgorICAgICAgICAgICAgKyAiXFx1QzM2OFxcdUMzODRcXHVDM0EwXFx1QzNCQ1xcdUMzRDhcXHVDM0Y0XFx1QzQxMFxcdUM0MkNcXHVDNDQ4IgorICAgICAgICAgICAgKyAiXFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQ1xcdUM1MjhcXHVDNTQ0IgorICAgICAgICAgICAgKyAiXFx1QzU2MFxcdUM1N0NcXHVDNTk4XFx1QzVCNFxcdUM1RDBcXHVDNUVDXFx1QzYwOFxcdUM2MjRcXHVDNjQwIgorICAgICAgICAgICAgKyAiXFx1QzY1Q1xcdUM2NzhcXHVDNjk0XFx1QzZCMFxcdUM2Q0NcXHVDNkU4XFx1QzcwNFxcdUM3MjBcXHVDNzNDIgorICAgICAgICAgICAgKyAiXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMFxcdUM4MUNcXHVDODM4IgorICAgICAgICAgICAgKyAiXFx1Qzg1NFxcdUM4NzBcXHVDODhDXFx1QzhBOFxcdUM4QzRcXHVDOEUwXFx1QzhGQ1xcdUM5MThcXHVDOTM0IgorICAgICAgICAgICAgKyAiXFx1Qzk1MFxcdUM5NkNcXHVDOTg4XFx1QzlBNFxcdUM5QzBcXHVDOURDXFx1QzlGOFxcdUNBMTRcXHVDQTMwIgorICAgICAgICAgICAgKyAiXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNFxcdUNCMTBcXHVDQjJDIgorICAgICAgICAgICAgKyAiXFx1Q0I0OFxcdUNCNjRcXHVDQjgwXFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JGMFxcdUNDMENcXHVDQzI4IgorICAgICAgICAgICAgKyAiXFx1Q0M0NFxcdUNDNjBcXHVDQzdDXFx1Q0M5OFxcdUNDQjRcXHVDQ0QwXFx1Q0NFQ1xcdUNEMDhcXHVDRDI0IgorICAgICAgICAgICAgKyAiXFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOFxcdUNFMDRcXHVDRTIwIgorICAgICAgICAgICAgKyAiXFx1Q0UzQ1xcdUNFNThcXHVDRTc0XFx1Q0U5MFxcdUNFQUNcXHVDRUM4XFx1Q0VFNFxcdUNGMDBcXHVDRjFDIgorICAgICAgICAgICAgKyAiXFx1Q0YzOFxcdUNGNTRcXHVDRjcwXFx1Q0Y4Q1xcdUNGQThcXHVDRkM0XFx1Q0ZFMFxcdUNGRkNcXHVEMDE4IgorICAgICAgICAgICAgKyAiXFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQ1xcdUQwRjhcXHVEMTE0IgorICAgICAgICAgICAgKyAiXFx1RDEzMFxcdUQxNENcXHVEMTY4XFx1RDE4NFxcdUQxQTBcXHVEMUJDXFx1RDFEOFxcdUQxRjRcXHVEMjEwIgorICAgICAgICAgICAgKyAiXFx1RDIyQ1xcdUQyNDhcXHVEMjY0XFx1RDI4MFxcdUQyOUNcXHVEMkI4XFx1RDJENFxcdUQyRjBcXHVEMzBDIgorICAgICAgICAgICAgKyAiXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMFxcdUQzRUNcXHVENDA4IgorICAgICAgICAgICAgKyAiXFx1RDQyNFxcdUQ0NDBcXHVENDVDXFx1RDQ3OFxcdUQ0OTRcXHVENEIwXFx1RDRDQ1xcdUQ0RThcXHVENTA0IgorICAgICAgICAgICAgKyAiXFx1RDUyMFxcdUQ1M0NcXHVENTU4XFx1RDU3NFxcdUQ1OTBcXHVENUFDXFx1RDVDOFxcdUQ1RTRcXHVENjAwIgorICAgICAgICAgICAgKyAiXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNFxcdUQ2RTBcXHVENkZDIgorICAgICAgICAgICAgKyAiXFx1RDcxOFxcdUQ3MzRcXHVENzUwXFx1RDc2Q1xcdUQ3ODhcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICAgICsgIlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNVxcdUZBMjZcXHVGQTJBLVxcdUZBMkQiCisgICAgICAgICAgICArICJcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTciCisgICAgICAgICAgICArICJcXHVGQjFELVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzIgorICAgICAgICAgICAgKyAiXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItIgorICAgICAgICAgICAgKyAiXFx1RkRDN1xcdUZERjAtXFx1RkRGQ1xcdUZFMTAtXFx1RkUxOVxcdUZFMjAtXFx1RkUyM1xcdUZFMzAtIgorICAgICAgICAgICAgKyAiXFx1RkU0NFxcdUZFNDctXFx1RkU1MlxcdUZFNTQtXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtIgorICAgICAgICAgICAgKyAiXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjAxLVxcdUZGQkVcXHVGRkMyLVxcdUZGQzciCisgICAgICAgICAgICArICJcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcXHVGRkUwLVxcdUZGRTYiCisgICAgICAgICAgICArICJcXHVGRkU4LVxcdUZGRUVcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTBBM0EiCisgICAgICAgICAgICArICJcXFUwMDAxMEEzRlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQUQiCisgICAgICAgICAgICArICJcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMUQ0MDAtIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0NTRcXFUwMDAxRDQ1Ni1cXFUwMDAxRDQ5Q1xcVTAwMDFENDlFXFxVMDAwMUQ0OUZcXFUwMDAxRCIKKyAgICAgICAgICAgICsgIjRBMlxcVTAwMDFENEE1XFxVMDAwMUQ0QTZcXFUwMDAxRDRBOS1cXFUwMDAxRDRBQ1xcVTAwMDFENEFFLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENEI5XFxVMDAwMUQ0QkJcXFUwMDAxRDRCRC1cXFUwMDAxRDRDM1xcVTAwMDFENEM1LVxcVTAwMDEiCisgICAgICAgICAgICArICJENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxRDUwRC1cXFUwMDAxRDUxNFxcVTAwMDFENTE2LSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzlcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRVxcVTAwMDEiCisgICAgICAgICAgICArICJENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDFENTUyLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENkE1XFxVMDAwMUQ2QTgtXFxVMDAwMUQ3Q0JcXFUwMDAxRDdDRS1cXFUwMDAxRDdGRlxcVTAwMDIiCisgICAgICAgICAgICArICJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDlmYTc0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YQpAQCAtMCwwICsxLDI4MTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogVW5pY29kZSBOb3JtYWxpemF0aW9uIAorICoKKyAqIDxoMj5Vbmljb2RlIG5vcm1hbGl6YXRpb24gQVBJPC9oMj4KKyAqCisgKiA8Y29kZT5ub3JtYWxpemU8L2NvZGU+IHRyYW5zZm9ybXMgVW5pY29kZSB0ZXh0IGludG8gYW4gZXF1aXZhbGVudCBjb21wb3NlZCBvcgorICogZGVjb21wb3NlZCBmb3JtLCBhbGxvd2luZyBmb3IgZWFzaWVyIHNvcnRpbmcgYW5kIHNlYXJjaGluZyBvZiB0ZXh0LgorICogPGNvZGU+bm9ybWFsaXplPC9jb2RlPiBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgbm9ybWFsaXphdGlvbiBmb3JtcyBkZXNjcmliZWQgaW4KKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIiB0YXJnZXQ9InVuaWNvZGUiPgorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUgJm1kYXNoOyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICoKKyAqIENoYXJhY3RlcnMgd2l0aCBhY2NlbnRzIG9yIG90aGVyIGFkb3JubWVudHMgY2FuIGJlIGVuY29kZWQgaW4KKyAqIHNldmVyYWwgZGlmZmVyZW50IHdheXMgaW4gVW5pY29kZS4gIEZvciBleGFtcGxlLCB0YWtlIHRoZSBjaGFyYWN0ZXIgQS1hY3V0ZS4KKyAqIEluIFVuaWNvZGUsIHRoaXMgY2FuIGJlIGVuY29kZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyICh0aGUKKyAqICJjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwQzEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgKiA8L3A+CisgKgorICogb3IgYXMgdHdvIHNlcGFyYXRlIGNoYXJhY3RlcnMgKHRoZSAiZGVjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwNDEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQQorICogICAgICAwMzAxICAgIENPTUJJTklORyBBQ1VURSBBQ0NFTlQKKyAqIDwvcD4KKyAqCisgKiBUbyBhIHVzZXIgb2YgeW91ciBwcm9ncmFtLCBob3dldmVyLCBib3RoIG9mIHRoZXNlIHNlcXVlbmNlcyBzaG91bGQgYmUKKyAqIHRyZWF0ZWQgYXMgdGhlIHNhbWUgInVzZXItbGV2ZWwiIGNoYXJhY3RlciAiQSB3aXRoIGFjdXRlIGFjY2VudCIuICBXaGVuIHlvdSAKKyAqIGFyZSBzZWFyY2hpbmcgb3IgY29tcGFyaW5nIHRleHQsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZXNlIHR3byBzZXF1ZW5jZXMgYXJlIAorICogdHJlYXRlZCBlcXVpdmFsZW50bHkuICBJbiBhZGRpdGlvbiwgeW91IG11c3QgaGFuZGxlIGNoYXJhY3RlcnMgd2l0aCBtb3JlIHRoYW4KKyAqIG9uZSBhY2NlbnQuICBTb21ldGltZXMgdGhlIG9yZGVyIG9mIGEgY2hhcmFjdGVyJ3MgY29tYmluaW5nIGFjY2VudHMgaXMKKyAqIHNpZ25pZmljYW50LCB3aGlsZSBpbiBvdGhlciBjYXNlcyBhY2NlbnQgc2VxdWVuY2VzIGluIGRpZmZlcmVudCBvcmRlcnMgYXJlCisgKiByZWFsbHkgZXF1aXZhbGVudC4KKyAqCisgKiBTaW1pbGFybHksIHRoZSBzdHJpbmcgImZmaSIgY2FuIGJlIGVuY29kZWQgYXMgdGhyZWUgc2VwYXJhdGUgbGV0dGVyczoKKyAqCisgKiA8cD4KKyAqICAgICAgMDA2NiAgICBMQVRJTiBTTUFMTCBMRVRURVIgRgorICogICAgICAwMDY2ICAgIExBVElOIFNNQUxMIExFVFRFUiBGCisgKiAgICAgIDAwNjkgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAqIDxccD4KKyAqCisgKiBvciBhcyB0aGUgc2luZ2xlIGNoYXJhY3RlcgorICoKKyAqIDxwPgorICogICAgICBGQjAzICAgIExBVElOIFNNQUxMIExJR0FUVVJFIEZGSQorICogPFxwPgorICoKKyAqIFRoZSBmZmkgbGlnYXR1cmUgaXMgbm90IGEgZGlzdGluY3Qgc2VtYW50aWMgY2hhcmFjdGVyLCBhbmQgc3RyaWN0bHkgc3BlYWtpbmcKKyAqIGl0IHNob3VsZG4ndCBiZSBpbiBVbmljb2RlIGF0IGFsbCwgYnV0IGl0IHdhcyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eQorICogd2l0aCBleGlzdGluZyBjaGFyYWN0ZXIgc2V0cyB0aGF0IGFscmVhZHkgcHJvdmlkZWQgaXQuICBUaGUgVW5pY29kZSBzdGFuZGFyZAorICogaWRlbnRpZmllcyBzdWNoIGNoYXJhY3RlcnMgYnkgZ2l2aW5nIHRoZW0gImNvbXBhdGliaWxpdHkiIGRlY29tcG9zaXRpb25zCisgKiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHNlbWFudGljIGNoYXJhY3RlcnMuICBXaGVuIHNvcnRpbmcgYW5kIHNlYXJjaGluZywgeW91CisgKiB3aWxsIG9mdGVuIHdhbnQgdG8gdXNlIHRoZXNlIG1hcHBpbmdzLgorICoKKyAqIDxjb2RlPm5vcm1hbGl6ZTwvY29kZT4gaGVscHMgc29sdmUgdGhlc2UgcHJvYmxlbXMgYnkgdHJhbnNmb3JtaW5nIHRleHQgaW50byAKKyAqIHRoZSBjYW5vbmljYWwgY29tcG9zZWQgYW5kIGRlY29tcG9zZWQgZm9ybXMgYXMgc2hvd24gaW4gdGhlIGZpcnN0IGV4YW1wbGUgCisgKiBhYm92ZS4gSW4gYWRkaXRpb24sIHlvdSBjYW4gaGF2ZSBpdCBwZXJmb3JtIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbnMgc28gCisgKiB0aGF0IHlvdSBjYW4gdHJlYXQgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzIHRoZSBzYW1lIGFzIHRoZWlyIGVxdWl2YWxlbnRzLgorICogRmluYWxseSwgPGNvZGU+bm9ybWFsaXplPC9jb2RlPiByZWFycmFuZ2VzIGFjY2VudHMgaW50byB0aGUgcHJvcGVyIGNhbm9uaWNhbAorICogb3JkZXIsIHNvIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGFjY2VudCByZWFycmFuZ2VtZW50IG9uIHlvdXIKKyAqIG93bi4KKyAqCisgKiBGb3JtIEZDRCwgIkZhc3QgQyBvciBEIiwgaXMgYWxzbyBkZXNpZ25lZCBmb3IgY29sbGF0aW9uLgorICogSXQgYWxsb3dzIHRvIHdvcmsgb24gc3RyaW5ncyB0aGF0IGFyZSBub3QgbmVjZXNzYXJpbHkgbm9ybWFsaXplZAorICogd2l0aCBhbiBhbGdvcml0aG0gKGxpa2UgaW4gY29sbGF0aW9uKSB0aGF0IHdvcmtzIHVuZGVyICJjYW5vbmljYWwgY2xvc3VyZSIsIAorICogaS5lLiwgaXQgdHJlYXRzIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGRlY29tcG9zZWQgZXF1aXZhbGVudHMgdGhlIAorICogc2FtZS4KKyAqCisgKiBJdCBpcyBub3QgYSBub3JtYWxpemF0aW9uIGZvcm0gYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm92aWRlIGZvciB1bmlxdWVuZXNzIG9mIAorICogcmVwcmVzZW50YXRpb24uIE11bHRpcGxlIHN0cmluZ3MgbWF5IGJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgKHRoZWlyIE5GRHMgCisgKiBhcmUgaWRlbnRpY2FsKSBhbmQgbWF5IGFsbCBjb25mb3JtIHRvIEZDRCB3aXRob3V0IGJlaW5nIGlkZW50aWNhbCB0aGVtc2VsdmVzLgorICoKKyAqIFRoZSBmb3JtIGlzIGRlZmluZWQgc3VjaCB0aGF0IHRoZSAicmF3IGRlY29tcG9zaXRpb24iLCB0aGUgcmVjdXJzaXZlIAorICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgZWFjaCBjaGFyYWN0ZXIsIHJlc3VsdHMgaW4gYSBzdHJpbmcgdGhhdCBpcyAKKyAqIGNhbm9uaWNhbGx5IG9yZGVyZWQuIFRoaXMgbWVhbnMgdGhhdCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIGZvciAKKyAqIGFzIGxvbmcgYXMgdGhlaXIgZGVjb21wb3NpdGlvbnMgZG8gbm90IG5lZWQgY2Fub25pY2FsIHJlb3JkZXJpbmcuCisgKgorICogSXRzIGFkdmFudGFnZSBmb3IgYSBwcm9jZXNzIGxpa2UgY29sbGF0aW9uIGlzIHRoYXQgYWxsIE5GRCBhbmQgbW9zdCBORkMgdGV4dHMKKyAqIC0gYW5kIG1hbnkgdW5ub3JtYWxpemVkIHRleHRzIC0gYWxyZWFkeSBjb25mb3JtIHRvIEZDRCBhbmQgZG8gbm90IG5lZWQgdG8gYmUgCisgKiBub3JtYWxpemVkIChORkQpIGZvciBzdWNoIGEgcHJvY2Vzcy4gVGhlIEZDRCBxdWljayBjaGVjayB3aWxsIHJldHVybiBZRVMgZm9yIAorICogbW9zdCBzdHJpbmdzIGluIHByYWN0aWNlLgorICoKKyAqIG5vcm1hbGl6ZShGQ0QpIG1heSBiZSBpbXBsZW1lbnRlZCB3aXRoIE5GRC4KKyAqCisgKiBGb3IgbW9yZSBkZXRhaWxzIG9uIEZDRCBzZWUgdGhlIGNvbGxhdGlvbiBkZXNpZ24gZG9jdW1lbnQ6CisgKiBodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL35jaGVja291dH4vaWN1aHRtbC9kZXNpZ24vY29sbGF0aW9uL0lDVV9jb2xsYXRpb25fZGVzaWduLmh0bQorICoKKyAqIElDVSBjb2xsYXRpb24gcGVyZm9ybXMgZWl0aGVyIE5GRCBvciBGQ0Qgbm9ybWFsaXphdGlvbiBhdXRvbWF0aWNhbGx5IGlmIAorICogbm9ybWFsaXphdGlvbiBpcyB0dXJuZWQgb24gZm9yIHRoZSBjb2xsYXRvciBvYmplY3QuIEJleW9uZCBjb2xsYXRpb24gYW5kIAorICogc3RyaW5nIHNlYXJjaCwgbm9ybWFsaXplZCBzdHJpbmdzIG1heSBiZSB1c2VmdWwgZm9yIHN0cmluZyBlcXVpdmFsZW5jZSAKKyAqIGNvbXBhcmlzb25zLCB0cmFuc2xpdGVyYXRpb24vdHJhbnNjcmlwdGlvbiwgdW5pcXVlIHJlcHJlc2VudGF0aW9ucywgZXRjLgorICoKKyAqIFRoZSBXM0MgZ2VuZXJhbGx5IHJlY29tbWVuZHMgdG8gZXhjaGFuZ2UgdGV4dHMgaW4gTkZDLgorICogTm90ZSBhbHNvIHRoYXQgbW9zdCBsZWdhY3kgY2hhcmFjdGVyIGVuY29kaW5ncyB1c2Ugb25seSBwcmVjb21wb3NlZCBmb3JtcyBhbmQKKyAqIG9mdGVuIGRvIG5vdCBlbmNvZGUgYW55IGNvbWJpbmluZyBtYXJrcyBieSB0aGVtc2VsdmVzLiBGb3IgY29udmVyc2lvbiB0byBzdWNoCisgKiBjaGFyYWN0ZXIgZW5jb2RpbmdzIHRoZSBVbmljb2RlIHRleHQgbmVlZHMgdG8gYmUgbm9ybWFsaXplZCB0byBORkMuCisgKiBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcywgc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIEFubmV4LgorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIE5vcm1hbGl6ZXIgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgZGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZmZXJTdGFydCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYnVmZmVyUG9zICAgPSAwOworICAgIHByaXZhdGUgaW50IGJ1ZmZlckxpbWl0ID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIHRlbGxzIHVzIHdoYXQgdGhlIGJpdHMgaW4gdGhlICJtb2RlIiBvYmplY3QgbWVhbi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUX0JJVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9CSVQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QT1NFX0JJVCA9IDQ7CisgICAgCisgICAgLy8gVGhlIGlucHV0IHRleHQgYW5kIG91ciBwb3NpdGlvbiBpbiBpdAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yICB0ZXh0OworICAgIHByaXZhdGUgTW9kZSAgICAgICAgICAgICAgICBtb2RlID0gTkZDOworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBvcHRpb25zID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4OworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBuZXh0SW5kZXg7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9ucyBiaXQgc2V0IHZhbHVlIHRvIHNlbGVjdCBVbmljb2RlIDMuMiBub3JtYWxpemF0aW9uCisgICAgICogKGV4Y2VwdCBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMpLgorICAgICAqIEF0IG1vc3Qgb25lIFVuaWNvZGUgdmVyc2lvbiBjYW4gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfM18yPTB4MjA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBpbmRpY2F0aW5nIHRoYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogVGhpcyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMge0BsaW5rIFVDaGFyYWN0ZXJJdGVyYXRvciNET05FfS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudHMgZm9yIG5vcm1hbGl6YXRpb24gbW9kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbW9kZVZhbHVlOworICAgICAgICBwcml2YXRlIE1vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBtb2RlVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgaW50IHNyY0xlbiA9IChzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgICAgIGludCBkZXN0TGVuID0gKGRlc3RMaW1pdCAtIGRlc3RTdGFydCk7CisgICAgICAgICAgICBpZiggc3JjTGVuID4gZGVzdExlbiApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3JjTGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsc3JjU3RhcnQsZGVzdCxkZXN0U3RhcnQsc3JjTGVuKTsKKyAgICAgICAgICAgIHJldHVybiBzcmNMZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemUoICAgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gc3JjOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWluQygpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzcmMsaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dNYXliZSxVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpZihhbGxvd01heWJlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5POworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBObyBkZWNvbXBvc2l0aW9uL2NvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5PTkUgPSBuZXcgTW9kZSgxKTsKKworICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBORkQgPSBuZXcgTkZETW9kZSgyKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORkRNb2RlIGV4dGVuZHMgTW9kZSB7CisgICAgICAgIHByaXZhdGUgTkZETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cmFpbENDLG54KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NlKHNyYyxmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwucXVpY2tDaGVjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywgc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkRfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYyx0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAgICAgICAgICAgCisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0QgPSBuZXcgTkZLRE1vZGUoMyk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZLRE1vZGUgZXh0ZW5kcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBORktETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIHRyYWlsQ0MsIG54KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKCBTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zZShzcmMsdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORktEKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktEX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYywgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgTkZDID0gbmV3IE5GQ01vZGUoNCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZDTW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY29tcG9zZSggc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG54KTsKKyAgICAgICAgfQorICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gY29tcG9zZShzcmMsIGZhbHNlLCBvcHRpb25zKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0RnJvbUluZGV4ZXNBcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GQ19OT19NQVlCRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2VHJ1ZVN0YXJ0ZXIoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNOZXh0Qm91bmRhcnkgZ2V0TmV4dEJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc05leHRUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkMpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkNfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5DT01CSU5FU19BTll8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5RQ19ORkMgJiBOb3JtYWxpemVySW1wbC5RQ19BTllfTk8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0gCisgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgbm9ybWFsaXphdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBERUZBVUxUID0gTkZDOyAKKyAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0MgPW5ldyBORktDTW9kZSg1KTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORktDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZLQ01vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBzdXBlcih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywgIHNyY1N0YXJ0LHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULCBueCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wb3NlKHNyYywgdHJ1ZSwgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNQcmV2Qm91bmRhcnkgZ2V0UHJldkJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc1ByZXZUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dFRydWVTdGFydGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCkgeworICAgICAgICAgICAgcmV0dXJuIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0MpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuQ09NQklORVNfQU5ZfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplckltcGwuUUNfTkZLQyAmIE5vcm1hbGl6ZXJJbXBsLlFDX0FOWV9OTykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAKKyAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiAiRmFzdCBDIG9yIEQiIGZvcm0uIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgRkNEID0gbmV3IEZDRE1vZGUoNik7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRkNETW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgRkNETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLm1ha2VGQ0Qoc3JjLCBzcmNTdGFydCxzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsIG54KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlRkNEKHNyYywgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLk1JTl9XSVRIX0xFQURfQ0M7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2TkZEU2FmZSgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY2hlY2tGQ0Qoc3JjLHN0YXJ0LGxpbWl0LG54KSA/IFlFUyA6IE5POworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIC8qIEZDRDogc2tpcHBhYmxlIGlmIGxlYWQgY2M9PTAgYW5kIHRyYWlsIGNjPD0xICovCisgICAgICAgICAgICByZXR1cm4gKE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGMpPjEpOworICAgICAgICB9ICAgCisgICAgfTsKKworICAgIAorICAgIC8qKgorICAgICAqIE51bGwgb3BlcmF0aW9uIGZvciB1c2Ugd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30KKyAgICAgKiBhbmQgdGhlIHN0YXRpYyB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZC4gIFRoaXMgdmFsdWUgdGVsbHMKKyAgICAgKiB0aGUgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB0byBkbyBub3RoaW5nIGJ1dCByZXR1cm4gdW5wcm9jZXNzZWQgY2hhcmFjdGVycworICAgICAqIGZyb20gdGhlIHVuZGVybHlpbmcgU3RyaW5nIG9yIENoYXJhY3Rlckl0ZXJhdG9yLiAgSWYgeW91IGhhdmUgY29kZSB3aGljaAorICAgICAqIHJlcXVpcmVzIHJhdyB0ZXh0IGF0IHNvbWUgdGltZXMgYW5kIG5vcm1hbGl6ZWQgdGV4dCBhdCBvdGhlcnMsIHlvdSBjYW4KKyAgICAgKiB1c2UgPHR0Pk5PX09QPC90dD4gZm9yIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCByYXcgdGV4dCwgcmF0aGVyCisgICAgICogdGhhbiBoYXZpbmcgYSBzZXBhcmF0ZSBjb2RlIHBhdGggdGhhdCBieXBhc3NlcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+CisgICAgICogYWx0b2dldGhlci4KKyAgICAgKiA8cD4KKyAgICAgKiBAc2VlICNzZXRNb2RlCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuOC4gVXNlIE5vbWFsaXplci5OT05FCisgICAgICogQHNlZSAjTk9ORQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBOT19PUCA9IE5PTkU7CisKKyAgICAvKioKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICBVc2VkIHdpdGggdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBvcGVyYXRpb24gdG8gYmUgCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIDxwPgorICAgICAqIElmIGFsbCBvcHRpb25hbCBmZWF0dXJlcyAoPGk+ZS5nLjwvaT4ge0BsaW5rICNJR05PUkVfSEFOR1VMfSkgYXJlIHR1cm5lZAorICAgICAqIG9mZiwgdGhpcyBvcGVyYXRpb24gcHJvZHVjZXMgb3V0cHV0IHRoYXQgaXMgaW4KKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvPlVuaWNvZGUgQ2Fub25pY2FsIAorICAgICAqIEZvcm08L2E+CisgICAgICogPGI+QzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpZXIuTkZDCisgICAgICogQHNlZSAjTkZDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0UgPSBORkM7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9sbG93ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLgorICAgICAqIFVzZWQgd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSAKKyAgICAgKiBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LQzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0MKKyAgICAgKiBAc2VlICNORktDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0VfQ09NUEFUID0gTkZLQzsKKworICAgIC8qKgorICAgICAqIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9CisgICAgICogbWV0aG9kIHRvIGRldGVybWluZSB0aGUgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbGwgb3B0aW9uYWwgZmVhdHVyZXMgKDxpPmUuZy48L2k+IHtAbGluayAjSUdOT1JFX0hBTkdVTH0pIGFyZSB0dXJuZWQKKyAgICAgKiBvZmYsIHRoaXMgb3BlcmF0aW9uIHByb2R1Y2VzIG91dHB1dCB0aGF0IGlzIGluCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1Lz5Vbmljb2RlIENhbm9uaWNhbCAKKyAgICAgKiBGb3JtPC9hPgorICAgICAqIDxiPkQ8L2I+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi44LiBVc2UgTm9ybWFsaXplci5ORkQKKyAgICAgKiBAc2VlICNORkQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgREVDT01QID0gTkZEOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfQorICAgICAqIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LRDwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0QKKyAgICAgKiBAc2VlICNORktECisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIERFQ09NUF9DT01QQVQgPSBORktEOworCisgICAgLyoqCisgICAgICogT3B0aW9uIHRvIGRpc2FibGUgSGFuZ3VsL0phbW8gY29tcG9zaXRpb24gYW5kIGRlY29tcG9zaXRpb24uCisgICAgICogVGhpcyBvcHRpb24gYXBwbGllcyB0byBLb3JlYW4gdGV4dCwKKyAgICAgKiB3aGljaCBjYW4gYmUgcmVwcmVzZW50ZWQgZWl0aGVyIGluIHRoZSBKYW1vIGFscGhhYmV0IG9yIGluIEhhbmd1bAorICAgICAqIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSByZWFsbHkganVzdCB0d28gb3IgdGhyZWUgSmFtbyBjb21iaW5lZAorICAgICAqIGludG8gb25lIHZpc3VhbCBnbHlwaC4gIFNpbmNlIEphbW8gdGFrZXMgdXAgbW9yZSBzdG9yYWdlIHNwYWNlIHRoYW4KKyAgICAgKiBIYW5ndWwsIGFwcGxpY2F0aW9ucyB0aGF0IHByb2Nlc3Mgb25seSBIYW5ndWwgdGV4dCBtYXkgd2lzaCB0byB0dXJuCisgICAgICogdGhpcyBvcHRpb24gb24gd2hlbiBkZWNvbXBvc2luZyB0ZXh0LgorICAgICAqIDxwPgorICAgICAqIFRoZSBVbmljb2RlIHN0YW5kYXJkIHRyZWF0ZXMgSGFuZ3VsIHRvIEphbW8gY29udmVyc2lvbiBhcyBhCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIHNvIHRoaXMgb3B0aW9uIG11c3QgYmUgdHVybmVkIDxiPm9mZjwvYj4gaWYgeW91CisgICAgICogd2lzaCB0byB0cmFuc2Zvcm0gc3RyaW5ncyBpbnRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyIgdGFyZ2V0PSJ1bmljb2RlIj4KKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE9wdGlvbgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFRoaXMgb3B0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFRPRE86IGNoZWNrIHdpdGggUmFtCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFX0hBTkdVTCA9IDB4MDAwMTsKKyAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXN1bHQgdmFsdWVzIGZvciBxdWlja0NoZWNrKCkuCisgICAgICogRm9yIGRldGFpbHMgc2VlIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAxNS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFF1aWNrQ2hlY2tSZXN1bHR7CisgICAgICAgIHByaXZhdGUgaW50IHJlc3VsdFZhbHVlOworICAgICAgICBwcml2YXRlIFF1aWNrQ2hlY2tSZXN1bHQoaW50IHZhbHVlKSB7CisgICAgICAgICAgICByZXN1bHRWYWx1ZT12YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIHRoYXQgc3RyaW5nIGlzIG5vdCBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTk8gPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgwKTsKKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIEluZGljYXRlcyB0aGF0IHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgWUVTID0gbmV3IFF1aWNrQ2hlY2tSZXN1bHQoMSk7CisKKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIGl0IGNhbm5vdCBiZSBkZXRlcm1pbmVkIGlmIHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCAKKyAgICAgKiBmb3JtYXQgd2l0aG91dCBmdXJ0aGVyIHRob3JvdWdoIGNoZWNrcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTUFZQkUgPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPcHRpb24gYml0IGZvciBjb21wYXJlOgorICAgICAqIENhc2Ugc2Vuc2l0aXZlbHkgY29tcGFyZSB0aGUgc3RyaW5ncworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9ERUZBVUxUID0gIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQ7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBCb3RoIGlucHV0IHN0cmluZ3MgYXJlIGFzc3VtZWQgdG8gZnVsZmlsbCBGQ0QgY29uZGl0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlBVVF9JU19GQ0QgICAgPSAgICAgIDB4MjAwMDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE9wdGlvbiBiaXQgZm9yIGNvbXBhcmU6CisgICAgICogUGVyZm9ybSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9JR05PUkVfQ0FTRSAgPSAgICAgMHgxMDAwMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBDb21wYXJlIHN0cmluZ3MgaW4gY29kZSBwb2ludCBvcmRlciBpbnN0ZWFkIG9mIGNvZGUgdW5pdCBvcmRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIgPSAweDgwMDA7CisgICAgCisgICAgLyoqIAorICAgICAqIE9wdGlvbiB2YWx1ZSBmb3IgY2FzZSBmb2xkaW5nOiBleGNsdWRlIHRoZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkgCisgICAgICogYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMb3dlc3Qtb3JkZXIgYml0IG51bWJlciBvZiBjb21wYXJlKCkgb3B0aW9ucyBiaXRzIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiBub3JtYWxpemF0aW9uIG9wdGlvbnMgYml0cy4KKyAgICAgKgorICAgICAqIFRoZSBvcHRpb25zIHBhcmFtZXRlciBmb3IgY29tcGFyZSgpIHVzZXMgbW9zdCBiaXRzIGZvcgorICAgICAqIGl0c2VsZiBhbmQgZm9yIHZhcmlvdXMgY29tcGFyaXNvbiBhbmQgZm9sZGluZyBmbGFncy4KKyAgICAgKiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXRzLCBob3dldmVyLCBhcmUgc2hpZnRlZCBkb3duIGFuZCBwYXNzZWQgb24KKyAgICAgKiB0byB0aGUgbm9ybWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiAoVGhhdCBpcywgZnJvbSBjb21wYXJlKC4uLiwgb3B0aW9ucywgLi4uKSwKKyAgICAgKiBvcHRpb25zPj5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUKKyAgICAgKiBpbnRlcm5hbCBub3JtYWxpemF0aW9uIGZ1bmN0aW9ucy4pCisgICAgICoKKyAgICAgKiBAc2VlICNjb21wYXJlCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQgID0gMjA7CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IG9iamVjdCBmb3IgaXRlcmF0aW5nIG92ZXIgdGhlCisgICAgICogbm9ybWFsaXplZCBmb3JtIG9mIGEgZ2l2ZW4gc3RyaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc3RyICBUaGUgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0IEFueSBvcHRpb25hbCBmZWF0dXJlcyB0byBiZSBlbmFibGVkLgorICAgICAqICAgICAgICAgICAgQ3VycmVudGx5IHRoZSBvbmx5IGF2YWlsYWJsZSBvcHRpb24gaXMge0BsaW5rICNVTklDT0RFXzNfMn0uCisgICAgICogICAgICAgICAgICBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgIHN0YW5kYXJkIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtcywgdXNlIDAgZm9yIHRoaXMgYXJndW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0KSB7CisgICAgICAgIHRoaXMudGV4dCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzdHIpOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOyAKKyAgICAgICAgdGhpcy5vcHRpb25zPW9wdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgdGhlIGdpdmVuIHRleHQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGl0ZXIgIFRoZSBpbnB1dCB0ZXh0IHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdCBBbnkgb3B0aW9uYWwgZmVhdHVyZXMgdG8gYmUgZW5hYmxlZC4KKyAgICAgKiAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSBhdmFpbGFibGUgb3B0aW9uIGlzIHtAbGluayAjVU5JQ09ERV8zXzJ9LgorICAgICAqICAgICAgICAgICAgSWYgeW91IHdhbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlCisgICAgICogICAgICAgICAgICBzdGFuZGFyZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdCkgeworICAgICAgICB0aGlzLnRleHQgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3IpaXRlci5jbG9uZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBvYmplY3QgZm9yIGl0ZXJhdGluZyBvdmVyIHRoZQorICAgICAqIG5vcm1hbGl6ZWQgZm9ybSBvZiB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gaXRlciAgVGhlIGlucHV0IHRleHQgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoaXMudGV4dCAgICAgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHRoaXMubW9kZSAgICAgPSBtb2RlOworICAgICAgICAgICAgdGhpcy5vcHRpb25zICA9IG9wdGlvbnM7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lcyB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0LiAgQWxsIHByb3BlcnRpZXMgb2YgdGhpcworICAgICAqIG9iamVjdCBhcmUgZHVwbGljYXRlZCBpbiB0aGUgbmV3IG9iamVjdCwgaW5jbHVkaW5nIHRoZSBjbG9uaW5nIG9mIGFueQorICAgICAqIHtAbGluayBDaGFyYWN0ZXJJdGVyYXRvcn0gdGhhdCB3YXMgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3RvcgorICAgICAqIG9yIHRvIHtAbGluayAjc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvcikgc2V0VGV4dH0uCisgICAgICogSG93ZXZlciwgdGhlIHRleHQgc3RvcmFnZSB1bmRlcmx5aW5nCisgICAgICogdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IGlzIG5vdCBkdXBsaWNhdGVkIHVubGVzcyB0aGUKKyAgICAgKiBpdGVyYXRvcidzIDx0dD5jbG9uZTwvdHQ+IG1ldGhvZCBkb2VzIHNvLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOb3JtYWxpemVyIGNvcHkgPSAoTm9ybWFsaXplcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIGNvcHkudGV4dCA9IChVQ2hhcmFjdGVySXRlcmF0b3IpIHRleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIC8vY2xvbmUgdGhlIGludGVybmFsIGJ1ZmZlcgorICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29weS5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwwLGNvcHkuYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY29weTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdGF0aWMgVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgICBUaGUgY29tcG9zZWQgc3RyaW5nICAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gY29tcG9zZShzdHIsY29tcGF0LDApOyAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICBUaGUgb25seSByZWNvZ25pemVkIG9wdGlvbiBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgIFRoZSBjb21wb3NlZCBzdHJpbmcgICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltzdHIubGVuZ3RoKCkqTUFYX0JVRl9TSVpFX0NPTVBPU0VdOworICAgICAgICBpbnQgZGVzdFNpemU9MDsKKyAgICAgICAgY2hhcltdIHNyYyA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywwLHNyYy5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsMCxkZXN0Lmxlbmd0aCxvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltkZXN0U2l6ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgY2hhciBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgbm9ybWFsaXplZCB0ZXh0LgorICAgICAqIEBwYXJhbSBjb21wYXQgSWYgdHJ1ZSB0aGUgY2hhciBhcnJheSB3aWxsIGJlIGNvbXBvc2VkIGFjY29kaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GS0MgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsIHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGFyZ2V0Lmxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIAorICAgICAqICAgICAgICAgICAgIHJlcXVpcmVkIGxlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAgCisgICAgICovICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc291cmNlLGNoYXJbXSB0YXJnZXQsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmNvbXBvc2Uoc291cmNlLDAsc291cmNlLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyxueCk7CisgICAgICAgIGlmKGxlbmd0aDw9dGFyZ2V0Lmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgIFN0YXJ0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgIExpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gZGVzdCAgICAgIFRoZSBjaGFyIGJ1ZmZlciB0byBmaWxsIGluCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBTdGFydCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyICAKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IEVuZCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgY29tcG9zZWQgYWNjb2RpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZDIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0YXJnZXQubGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoIAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKi8gICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKworICAgICAgICAvKiByZXNldCBvcHRpb25zIGJpdHMgdGhhdCBzaG91bGQgb25seSBiZSBzZXQgaGVyZSBvciBpbnNpZGUgY29tcG9zZSgpICovCisgICAgICAgIG9wdGlvbnMmPX4oTm9ybWFsaXplckltcGwuT1BUSU9OU19TRVRTX01BU0t8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVR8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QT1NFX0NPTlRJR1VPVVMpOworCisgICAgICAgIGlmKGNvbXBhdCkgeworICAgICAgICAgICAgb3B0aW9uc3w9Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywgbngpOworICAgICAgICBpZihsZW5ndGg8PShkZXN0TGltaXQtZGVzdFN0YXJ0KSkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGX1NJWkVfQ09NUE9TRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUZfU0laRV9ERUNPTVBPU0UgPSAzOworICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIFRoZSBzdHJpbmcgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSBjb21wYXQgICAgSWYgdHJ1ZSB0aGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBkZWNvbXBvc2VkIHN0cmluZyAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gZGVjb21wb3NlKHN0cixjb21wYXQsMCk7ICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICBUaGUgc3RyaW5nIHRvIGRlY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgcnVsZXMuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiBTdHJpbmcgVGhlIGRlY29tcG9zZWQgc3RyaW5nIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgCisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3RyLmxlbmd0aCgpKk1BWF9CVUZfU0laRV9ERUNPTVBPU0VdOworICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGRlc3RTaXplPTA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3RyLnRvQ2hhckFycmF5KCksMCxzdHIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLCBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2Rlc3RTaXplXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wb3NlIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSB0YXJnZXQgQSBjaGFyIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBub3JtYWxpemVkIHRleHQuCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgdGhhbgorICAgICAqICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBsZW5ndGggICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwwLHRhcmdldC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LHRyYWlsQ0MsbngpOworICAgICAgICBpZihsZW5ndGg8PXRhcmdldC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgdG8gYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG1vZGUuCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgY2hhciBhcnJheSB0byBjb21wb3NlLgorICAgICAqIEBwYXJhbSBzcmNTdGFydCAgU3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBzcmNMaW1pdCAgTGltaXQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBkZXN0ICAgICAgVGhlIGNoYXIgYnVmZmVyIHRvIGZpbGwgaW4KKyAgICAgKiBAcGFyYW0gZGVzdFN0YXJ0IFN0YXJ0IGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgIAorICAgICAqIEBwYXJhbSBkZXN0TGltaXQgRW5kIGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIKKyAgICAgKiBAcGFyYW0gY29tcGF0IElmIHRydWUgdGhlIGNoYXIgYXJyYXkgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZEIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCx0aGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSB0YXJnZXQgY2FwYWNpdHkgaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAgICAgdGhlIHJlcXVpcmVkIGxlbmd0aCAgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRlY29tcG9zZShjaGFyW10gc3JjLGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLG54KTsKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG1ha2VGQ0QoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgc3JjTGVuID0gc3JjLmxlbmd0aCgpOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW01BWF9CVUZfU0laRV9ERUNPTVBPU0Uqc3JjTGVuXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5tYWtlRkNEKHNyYy50b0NoYXJBcnJheSgpLDAsc3JjTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LDAsZGVzdC5sZW5ndGgsbngpOworICAgICAgICAgICAgaWYobGVuZ3RoIDw9IGRlc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVzdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZXMgYSA8dHQ+U3RyaW5nPC90dD4gdXNpbmcgdGhlIGdpdmVuIG5vcm1hbGl6YXRpb24gb3BlcmF0aW9uLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpcyB7QGxpbmsgI1VOSUNPREVfM18yfS4KKyAgICAgKiBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgdGhlIGlucHV0IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgdGhlIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuCisgICAgICogQHJldHVybiBTdHJpbmcgICB0aGUgbm9ybWFsaXplZCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5ub3JtYWxpemUoc3RyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIG5vcm1hbGl6ZWQgYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG5vcm1hbGl6YXRpb24gCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgICBUaGUgc3RyaW5nIHRvIG5vcm1hbGl6ZS4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlOyBvbmUgb2YgTm9ybWFsaXplci5OT05FLCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEByZXR1cm4gdGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHNyYyxNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzcmMsIG1vZGUsIDApOyAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uIAorICAgICAqIG1vZGUgYW5kIG9wdGlvbnMuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgY2hhciBhcnJheSB0byBub3JtYWxpemUuCisgICAgICogQHBhcmFtIHRhcmdldCBBIGNoYXIgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGU7IG9uZSBvZiBOb3JtYWxpemVyLk5PTkUsIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELCBOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplci5ORktDLCAKKyAgICAgKiAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgCisgICAgICogICAgICAgICAgICAgICAgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBNb2RlICBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgbGVuZ3RoID0gbm9ybWFsaXplKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCxtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgaWYobGVuZ3RoPD10YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHNyY1N0YXJ0ICBTdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHNyY0xpbWl0ICBMaW1pdCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGRlc3QgICAgICBUaGUgY2hhciBidWZmZXIgdG8gZmlsbCBpbgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgU3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAgCisgICAgICogQHBhcmFtIGRlc3RMaW1pdCBFbmQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgVGhlIG5vcm1hbGl6YXRpb24gbW9kZTsgb25lIG9mIE5vcm1hbGl6ZXIuTk9ORSwgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ERUZBVUxUCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuIAorICAgICAqIEByZXR1cm4gaW50ICAgICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIAorICAgICAqICAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgIAorICAgICAqLyAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCBsZW5ndGggPSBtb2RlLm5vcm1hbGl6ZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgVGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICogQHNlZSAjVU5JQ09ERV8zXzIKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoaW50IGNoYXIzMiwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVpbmllbmNlIG1ldGhvZCB0byBub3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBub3JtYWxpemVkIHN0cmluZworICAgICAqIEBzZWUgI1VOSUNPREVfM18yICAgICAgICAgICAgICAgIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIC8vIFRPRE86IGFjdHVhbGx5IGRvIHRoZSBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZ3V0cyBvZiBOb3JtYWxpemVyIGFyZSAKKyAgICAvLyB1cGdyYWRlZCAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZShpbnQgY2hhcjMyLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNoYXIzMiksIG1vZGUsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgUmV0dXJuIGNvZGUgdG8gc3BlY2lmeSBpZiB0aGUgdGV4dCBpcyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvciBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKCBTdHJpbmcgc291cmNlLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2UudG9DaGFyQXJyYXkoKSwwLHNvdXJjZS5sZW5ndGgoKSx0cnVlLG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAgCisgICAgICogQHJldHVybiAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplci5ZRVMsIE5vcm1hbGl6ZXIuTk8gb3IgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayggU3RyaW5nIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZS50b0NoYXJBcnJheSgpLDAsc291cmNlLmxlbmd0aCgpLHRydWUsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEFycmF5IG9mIGNoYXJhY3RlcnMgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIGluIGEgCisgICAgICogICAgICAgICAgICAgICAgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbW9kZSAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQyxOb3JtYWxpemVyLk5GS0QpCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIKKyAgICAgKiBAcmV0dXJuICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yIE5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdHJ1ZSwgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtaW5nIHF1aWNrIGNoZWNrIG9uIGEgc3RyaW5nLCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGUgc3RyaW5nIGlzIAorICAgICAqIGluIGEgcGFydGljdWxhciBub3JtYWxpemF0aW9uIGZvcm1hdC4KKyAgICAgKiBUaHJlZSB0eXBlcyBvZiByZXN1bHQgY2FuIGJlIHJldHVybmVkIE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogTm9ybWFsaXplci5NQVlCRS4gUmVzdWx0IE5vcm1hbGl6ZXIuWUVTIGluZGljYXRlcyB0aGF0IHRoZSBhcmd1bWVudAorICAgICAqIHN0cmluZyBpcyBpbiB0aGUgZGVzaXJlZCBub3JtYWxpemVkIGZvcm1hdCwgTm9ybWFsaXplci5OTyBkZXRlcm1pbmVzIHRoYXQKKyAgICAgKiBhcmd1bWVudCBzdHJpbmcgaXMgbm90IGluIHRoZSBkZXNpcmVkIG5vcm1hbGl6ZWQgZm9ybWF0LiBBIAorICAgICAqIE5vcm1hbGl6ZXIuTUFZQkUgcmVzdWx0IGluZGljYXRlcyB0aGF0IGEgbW9yZSB0aG9yb3VnaCBjaGVjayBpcyByZXF1aXJlZCwgCisgICAgICogdGhlIHVzZXIgbWF5IGhhdmUgdG8gcHV0IHRoZSBzdHJpbmcgaW4gaXRzIG5vcm1hbGl6ZWQgZm9ybSBhbmQgY29tcGFyZSAKKyAgICAgKiB0aGUgcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIHN0YXJ0ICAgICB0aGUgc3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgdGhlIGxpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UgaXQgaXMgZXF1YWwgdG8gdGhlIGxlbmd0aAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgbm9ybWFsaXphdGlvbiBmb3JtYXQgKE5vcm1hbGl6ZXIuTkZDLE5vcm1hbGl6ZXIuTkZELCAgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzb3VyY2UsaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeyAgICAgICAKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2Usc3RhcnQsbGltaXQsdHJ1ZSxOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKSk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIG1ldGhvZHMgKGZvciBub3cpCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0IGlmIGEgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIFRoaXMgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgdG8gc291cmNlLmVxdWFscyhub3JtYWxpemUoc291cmNlLCBtb2RlKSkuCisgICAgICoKKyAgICAgKiBVbmxpa2UgcXVpY2tDaGVjaygpLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYSBkZWZpbml0aXZlIHJlc3VsdCwKKyAgICAgKiBuZXZlciBhICJtYXliZSIuCisgICAgICogRm9yIE5GRCwgTkZLRCwgYW5kIEZDRCwgYm90aCBmdW5jdGlvbnMgd29yayBleGFjdGx5IHRoZSBzYW1lLgorICAgICAqIEZvciBORkMgYW5kIE5GS0Mgd2hlcmUgcXVpY2tDaGVjayBtYXkgcmV0dXJuICJtYXliZSIsIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAqIHBlcmZvcm0gZnVydGhlciB0ZXN0cyB0byBhcnJpdmUgYXQgYSB0cnVlL2ZhbHNlIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgdG8gc2VlIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgIGl0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgICAgIFRoZSBzdHJhcnQgaW5kZXggaW4gdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgVGhlIGxpbWl0IGluZGV4IGluIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGluIHRoZQorICAgICAqICAgICAgICAgIm1vZGUiIG5vcm1hbGl6YXRpb24gZm9ybQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05vcm1hbGl6ZWQoY2hhcltdIHNyYyxpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gKG1vZGUucXVpY2tDaGVjayhzcmMsc3RhcnQsbGltaXQsZmFsc2UsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpPT1ZRVMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBNZXRob2QKKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIHRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgY2hlY2tlZCB0byBzZWUgaWYgaXQgaXMgCisgICAgICogICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgT3B0aW9ucyBmb3IgdXNlIHdpdGggZXhjbHVzaW9uIHNldCBhbiB0YWlsb3JlZCBOb3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvbmx5IG9wdGlvbiB0aGF0IGlzIGN1cnJlbnRseSByZWNvZ25pemVkIGlzIFVOSUNPREVfM18yICAgCisgICAgICogQHNlZSAjaXNOb3JtYWxpemVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTm9ybWFsaXplZChTdHJpbmcgc3RyLCBNb2RlIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiAobW9kZS5xdWlja0NoZWNrKHN0ci50b0NoYXJBcnJheSgpLDAsc3RyLmxlbmd0aCgpLGZhbHNlLE5vcm1hbGl6ZXJJbXBsLmdldE5YKG9wdGlvbnMpKT09WUVTKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgTWV0aG9kCisgICAgICogQHBhcmFtIGNoYXIzMiAgICB0aGUgaW5wdXQgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIHRvIHNlZSBpZiBpdCBpcyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkCisgICAgICogQHBhcmFtIG1vZGUgICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIgICAgCisgICAgICoKKyAgICAgKiBAc2VlICNpc05vcm1hbGl6ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKGludCBjaGFyMzIsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaXNOb3JtYWxpemVkKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKgorICAgICAqIENhbm9uaWNhbCBlcXVpdmFsZW5jZSBiZXR3ZWVuIHR3byBzdHJpbmdzIGlzIGRlZmluZWQgYXMgdGhlaXIgbm9ybWFsaXplZAorICAgICAqIGZvcm1zIChORkQgb3IgTkZDKSBiZWluZyBpZGVudGljYWwuCisgICAgICogVGhpcyBmdW5jdGlvbiBjb21wYXJlcyBzdHJpbmdzIGluY3JlbWVudGFsbHkgaW5zdGVhZCBvZiBub3JtYWxpemluZworICAgICAqIChhbmQgb3B0aW9uYWxseSBjYXNlLWZvbGRpbmcpIGJvdGggc3RyaW5ncyBlbnRpcmVseSwKKyAgICAgKiBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseS4KKyAgICAgKgorICAgICAqIEJ1bGsgbm9ybWFsaXphdGlvbiBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgc3RyaW5ncyBkbyBub3QgZnVsZmlsbCB0aGUgCisgICAgICogRkNEIGNvbmRpdGlvbnMuIE9ubHkgaW4gdGhpcyBjYXNlLCBhbmQgb25seSBpZiB0aGUgc3RyaW5ncyBhcmUgcmVsYXRpdmVseSAKKyAgICAgKiBsb25nLCBpcyBtZW1vcnkgYWxsb2NhdGVkIHRlbXBvcmFyaWx5LgorICAgICAqIEZvciBGQ0Qgc3RyaW5ncyBhbmQgc2hvcnQgbm9uLUZDRCBzdHJpbmdzIHRoZXJlIGlzIG5vIG1lbW9yeSBhbGxvY2F0aW9uLgorICAgICAqCisgICAgICogU2VtYW50aWNhbGx5LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIHN0cmNtcFtDb2RlUG9pbnRPcmRlcl0oZm9sZENhc2UoTkZEKHMxKSksIGZvbGRDYXNlKE5GRChzMikpKQorICAgICAqIHdoZXJlIGNvZGUgcG9pbnQgb3JkZXIgYW5kIGZvbGRDYXNlIGFyZSBhbGwgb3B0aW9uYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgICAgICAgIEZpcnN0IHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMxU3RhcnQgICBzdGFydCBpbmRleCBvZiBzb3VyY2UKKyAgICAgKiBAcGFyYW0gczFMaW1pdCAgIGxpbWl0IG9mIHRoZSBzb3VyY2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMyU3RhcnQgICBzdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHMyTGltaXQgICBsaW1pdCBvZiB0aGUgc291cmNlCisgICAgICogCisgICAgICogQHBhcmFtIG9wdGlvbnMgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogICAtIEZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBvcHRpb25zOgorICAgICAqICAgICBDYXNlLXNlbnNpdGl2ZSBjb21wYXJpc29uIGluIGNvZGUgdW5pdCBvcmRlciwgYW5kIHRoZSBpbnB1dCBzdHJpbmdzCisgICAgICogICAgIGFyZSBxdWljay1jaGVja2VkIGZvciBGQ0QuCisgICAgICoKKyAgICAgKiAgIC0gSU5QVVRfSVNfRkNECisgICAgICogICAgIFNldCBpZiB0aGUgY2FsbGVyIGtub3dzIHRoYXQgYm90aCBzMSBhbmQgczIgZnVsZmlsbCB0aGUgRkNEIAorICAgICAqICAgICBjb25kaXRpb25zLklmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKgorICAgICAqIEByZXR1cm4gPDAgb3IgMCBvciA+MCBhcyB1c3VhbCBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCisgICAgICoKKyAgICAgKiBAc2VlICNub3JtYWxpemUKKyAgICAgKiBAc2VlICNGQ0QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsIGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaW50ZXJuYWxDb21wYXJlKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMiwgczJTdGFydCwgczJMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgIAorICAgICAgICByZXR1cm4gY29tcGFyZShzMS50b0NoYXJBcnJheSgpLDAsczEubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgIHMyLnRvQ2hhckFycmF5KCksMCxzMi5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShjaGFyW10gczEsIGNoYXJbXSBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUoczEsMCxzMS5sZW5ndGgsczIsMCxzMi5sZW5ndGgsb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgICB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlCisgICAgICogQHBhcmFtIGNoYXIzMmIgICAgdGhlIHNlY29uZCBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgQSBiaXQgc2V0IG9mIG9wdGlvbnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGludCBjaGFyMzJhLCBpbnQgY2hhcjMyYixpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gY29tcGFyZShVVEYxNi52YWx1ZU9mKGNoYXIzMmEpLCBVVEYxNi52YWx1ZU9mKGNoYXIzMmIpLCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgIHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGJlIGNoZWNrZWQgYWdhaW5zdAorICAgICAqIEBwYXJhbSBzdHIyICAgICAgdGhlIHNlY29uZCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gVE9ETzogYWN0dWFsbHkgZG8gdGhlIG9wdGltaXphdGlvbiB3aGVuIHRoZSBndXRzIG9mIE5vcm1hbGl6ZXIgYXJlIAorICAgIC8vIHVwZ3JhZGVkIC0taGFzIGp1c3QgZHVtYiBpbXBsZW1lbnRhdGlvbiBmb3Igbm93CisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShpbnQgY2hhcjMyYSwgU3RyaW5nIHN0cjIsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKFVURjE2LnZhbHVlT2YoY2hhcjMyYSksIHN0cjIsIG9wdGlvbnMpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENvbmNhdGVuYXRlIG5vcm1hbGl6ZWQgc3RyaW5ncywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBhcyB3ZWxsLgorICAgICAqCisgICAgICogSWYgYm90aCB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0IHN0cmluZ3MgYXJlIGluCisgICAgICogdGhlIG5vcm1hbGl6YXRpb24gZm9ybSBhY2NvcmRpbmcgdG8gIm1vZGUiLAorICAgICAqIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgICAgZGVzdD1ub3JtYWxpemUobGVmdCtyaWdodCwgbW9kZSkKKyAgICAgKiA8L2NvZGU+CisgICAgICoKKyAgICAgKiBXaXRoIHRoZSBpbnB1dCBzdHJpbmdzIGFscmVhZHkgYmVpbmcgbm9ybWFsaXplZCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgdXNlIG5leHQoKSBhbmQgcHJldmlvdXMoKQorICAgICAqIHRvIGZpbmQgdGhlIGFkamFjZW50IGVuZCBwaWVjZXMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICogT25seSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGVzZSBlbmQgcGllY2VzIHdpbGwgYmUgbm9ybWFsaXplZCBhbmQKKyAgICAgKiB0aGVuIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSByZW1haW5pbmcgcGFydHMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbGxvd2VkIHRvIGhhdmUgZGVzdD09bGVmdCB0byBhdm9pZCBjb3B5aW5nIHRoZSBlbnRpcmUgbGVmdCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBMZWZ0IHNvdXJjZSBhcnJheSwgbWF5IGJlIHNhbWUgYXMgZGVzdC4KKyAgICAgKiBAcGFyYW0gbGVmdFN0YXJ0IHN0YXJ0IGluIHRoZSBsZWZ0IGFycmF5LgorICAgICAqIEBwYXJhbSBsZWZ0TGltaXQgbGltaXQgaW4gdGhlIGxlZnQgYXJyYXkgKD09bGVuZ3RoKQorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2UgYXJyYXkuCisgICAgICogQHBhcmFtIHJpZ2h0U3RhcnQgc3RhcnQgaW4gdGhlIHJpZ2h0IGFycmF5LgorICAgICAqIEBwYXJhbSByaWdodExpbWl0IGxpbWl0IGluIHRoZSByaWdodCBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIGRlc3QgVGhlIG91dHB1dCBidWZmZXI7IGNhbiBiZSBudWxsIGlmIGRlc3RTdGFydD09ZGVzdExpbWl0PT0wIAorICAgICAqICAgICAgICAgICAgICBmb3IgcHVyZSBwcmVmbGlnaHRpbmcuCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBzdGFydCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXkKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IGxpbWl0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIG1vZGUgVGhlIG5vcm1hbGl6YXRpb24gbW9kZS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIExlbmd0aCBvZiBvdXRwdXQgKG51bWJlciBvZiBjaGFycykgd2hlbiBzdWNjZXNzZnVsIG9yIAorICAgICAqICAgICAgICAgIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hvc2UgbWVzc2FnZSBoYXMgdGhlIHN0cmluZyAKKyAgICAgKiAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBkZXN0aW5hdGlvbiBjYXBhY2l0eSByZXF1aXJlZC4gCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLyogQ29uY2F0ZW5hdGlvbiBvZiBub3JtYWxpemVkIHN0cmluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29uY2F0ZW5hdGUoY2hhcltdIGxlZnQsICBpbnQgbGVmdFN0YXJ0LCAgaW50IGxlZnRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gcmlnaHQsIGludCByaWdodFN0YXJ0LCBpbnQgcmlnaHRMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsICBpbnQgZGVzdFN0YXJ0LCAgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI7CisgICAgICAgIAorICAgICAgICBpbnQgbGVmdEJvdW5kYXJ5LCByaWdodEJvdW5kYXJ5LCBkZXN0TGVuZ3RoOworICAgIAorICAgICAgICBpZihkZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjaGVjayBmb3Igb3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRlc3RpbmF0aW9uICovCisgICAgICAgIGlmIChyaWdodCA9PSBkZXN0ICYmIHJpZ2h0U3RhcnQgPCBkZXN0TGltaXQgJiYgZGVzdFN0YXJ0IDwgcmlnaHRMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigib3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRzdCByYW5nZXMiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBhbGxvdyBsZWZ0PT1kZXN0ICovCisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIElucHV0OiBsZWZ0WzAuLmxlZnRMZW5ndGhbICsgcmlnaHRbMC4ucmlnaHRMZW5ndGhbCisgICAgICAgICAqCisgICAgICAgICAqIEZpbmQgbm9ybWFsaXphdGlvbi1zYWZlIGJvdW5kYXJpZXMgbGVmdEJvdW5kYXJ5IGFuZCByaWdodEJvdW5kYXJ5CisgICAgICAgICAqIGFuZCBjb3B5IHRoZSBlbmQgcGFydHMgdG9nZXRoZXI6CisgICAgICAgICAqIGJ1ZmZlcj1sZWZ0W2xlZnRCb3VuZGFyeS4ubGVmdExlbmd0aFsgKyByaWdodFswLi5yaWdodEJvdW5kYXJ5WworICAgICAgICAgKgorICAgICAgICAgKiBkZXN0PWxlZnRbMC4ubGVmdEJvdW5kYXJ5WyArCisgICAgICAgICAqICAgICAgbm9ybWFsaXplKGJ1ZmZlcikgKworICAgICAgICAgKiAgICAgIHJpZ2h0W3JpZ2h0Qm91bmRhcnkuLnJpZ2h0TGVuZ3RoWworICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGVuZCBvZiB0aGUgbGVmdCBzdHJpbmcKKyAgICAgICAgICogYW5kIGNvcHkgdGhlIGVuZCBwYXJ0IGludG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxlZnQsIGxlZnRTdGFydCwgbGVmdExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpdGVyLnNldEluZGV4KGl0ZXIuZ2V0TGVuZ3RoKCkpOyAvKiBlbmQgb2YgbGVmdCBzdHJpbmcgKi8KKyAgICAgICAgY2hhcltdIGJ1ZmZlcj1uZXcgY2hhclsxMDBdOworICAgICAgICBpbnQgYnVmZmVyTGVuZ3RoOworICAgICAgICBidWZmZXJMZW5ndGg9cHJldmlvdXMoaXRlciwgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCxtb2RlLGZhbHNlLG51bGwsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBsZWZ0Qm91bmRhcnk9aXRlci5nZXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIGxlZnQgc3RyaW5nOiB3ZSBrbm93IHRoZSBib3VuZGFyeSBhbHJlYWR5ICovCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxlZnQsbGVmdEJvdW5kYXJ5LGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmlnaHQgc3RyaW5nCisgICAgICAgICAqIGFuZCBjb25jYXRlbmF0ZSB0aGUgYmVnaW5uaW5nIHBhcnQgdG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHJpZ2h0LCByaWdodFN0YXJ0LCByaWdodExpbWl0KTsKKyAgICAgICAgCisgICAgICAgIHJpZ2h0Qm91bmRhcnk9bmV4dChpdGVyLGJ1ZmZlcixidWZmZXJMZW5ndGgsIGJ1ZmZlci5sZW5ndGgtYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSwgZmFsc2UsbnVsbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIHJpZ2h0IHN0cmluZzogd2Uga25vdyB0aGUgYm91bmRhcnkgYWxyZWFkeSAqLworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyaWdodCxyaWdodEJvdW5kYXJ5LGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyTGVuZ3RoLHJpZ2h0Qm91bmRhcnkpOworICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyTGVuZ3RoKz1yaWdodEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb3B5IGxlZnRbMC4ubGVmdEJvdW5kYXJ5WyB0byBkZXN0ICovCisgICAgICAgIGlmKGxlZnQhPWRlc3QgJiYgbGVmdEJvdW5kYXJ5PjAgJiYgKGRlc3RMaW1pdCk+MCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWZ0LDAsZGVzdCwwLCBNYXRoLm1pbihsZWZ0Qm91bmRhcnksZGVzdExpbWl0KSk7IAorICAgICAgICB9CisgICAgICAgIGRlc3RMZW5ndGg9bGVmdEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSB0aGUgbm9ybWFsaXphdGlvbiBvZiB0aGUgYnVmZmVyIHRvIGRlc3QgKi8KKyAgICAgICAgaWYoZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGgrPU5vcm1hbGl6ZXIubm9ybWFsaXplKGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aCxkZXN0TGltaXQsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdExlbmd0aCs9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLCAwLCBidWZmZXJMZW5ndGgsbnVsbCwwLDAsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSByaWdodFtyaWdodEJvdW5kYXJ5Li5yaWdodExlbmd0aFsgdG8gZGVzdCAqLworICAgICAgICByaWdodFN0YXJ0Kz1yaWdodEJvdW5kYXJ5OworICAgICAgICBpbnQgcmlnaHRMZW5ndGg9KHJpZ2h0TGltaXQtcmlnaHRTdGFydCk7CisgICAgICAgIGlmKHJpZ2h0TGVuZ3RoPjAgJiYgZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmlnaHQscmlnaHRTdGFydCxkZXN0LGRlc3RMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHJpZ2h0TGVuZ3RoLGRlc3RMZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgZGVzdExlbmd0aCs9cmlnaHRMZW5ndGg7CisgICAgICAgIAorICAgICAgICBpZihkZXN0TGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhkZXN0TGVuZ3RoKSk7CisgICAgICAgIH0gIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25jYXRlbmF0ZSBub3JtYWxpemVkIHN0cmluZ3MsIG1ha2luZyBzdXJlIHRoYXQgdGhlIHJlc3VsdCBpcyBub3JtYWxpemVkCisgICAgICogYXMgd2VsbC4KKyAgICAgKgorICAgICAqIElmIGJvdGggdGhlIGxlZnQgYW5kIHRoZSByaWdodCBzdHJpbmdzIGFyZSBpbgorICAgICAqIHRoZSBub3JtYWxpemF0aW9uIGZvcm0gYWNjb3JkaW5nIHRvICJtb2RlIiwKKyAgICAgKiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZQorICAgICAqCisgICAgICogPGNvZGU+CisgICAgICogICAgIGRlc3Q9bm9ybWFsaXplKGxlZnQrcmlnaHQsIG1vZGUpCisgICAgICogPC9jb2RlPgorICAgICAqCisgICAgICogRm9yIGRldGFpbHMgc2VlIGNvbmNhdGVuYXRlIAorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShjaGFyW10gbGVmdCwgY2hhcltdIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCtyaWdodC5sZW5ndGgpKiBNQVhfQlVGX1NJWkVfREVDT01QT1NFXTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBjb25jYXRlbmF0ZShsZWZ0LCAgMCwgbGVmdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQsIDAsIHJpZ2h0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsMCwgcmVzdWx0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9cmVzdWx0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHJlc3VsdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uY2F0ZW5hdGUgbm9ybWFsaXplZCBzdHJpbmdzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZSByZXN1bHQgaXMgbm9ybWFsaXplZAorICAgICAqIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiBJZiBib3RoIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQgc3RyaW5ncyBhcmUgaW4KKyAgICAgKiB0aGUgbm9ybWFsaXphdGlvbiBmb3JtIGFjY29yZGluZyB0byAibW9kZSIsCisgICAgICogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKgorICAgICAqIDxjb2RlPgorICAgICAqICAgICBkZXN0PW5vcm1hbGl6ZShsZWZ0K3JpZ2h0LCBtb2RlKQorICAgICAqIDwvY29kZT4KKyAgICAgKgorICAgICAqIEZvciBkZXRhaWxzIHNlZSBjb25jYXRlbmF0ZQorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShTdHJpbmcgbGVmdCwgU3RyaW5nIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCgpK3JpZ2h0Lmxlbmd0aCgpKSogTUFYX0JVRl9TSVpFX0RFQ09NUE9TRV07CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gY29uY2F0ZW5hdGUobGVmdC50b0NoYXJBcnJheSgpLCAwLCBsZWZ0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnRvQ2hhckFycmF5KCksMCwgcmlnaHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCAgICAgICAgICAgICAwLCByZXN1bHQubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUsIG9wdGlvbnMpOworICAgICAgICAgICAgaWYobGVuZ3RoPD1yZXN1bHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcocmVzdWx0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSBjb2RlIHBvaW50IHdob3NlIGNsb3N1cmUgc2V0IGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEBwYXJhbSBkZXN0IFRoZSBjaGFyIGFycmF5IHRvIHJlY2l2ZSB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ19ORktDX0Nsb3N1cmUoaW50IGMsY2hhcltdIGRlc3QpIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZDX05GS0NfQ2xvc3VyZShjLGRlc3QpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSB0aGUgY29kZSBwb2ludCB3aG9zZSBjbG9zdXJlIHNldCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RkNfTkZLQ19DbG9zdXJlKGludCBjKSB7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbMTBdOworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBnZXRGQ19ORktDX0Nsb3N1cmUoYyxkZXN0KTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSXRlcmF0aW9uIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQtPgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgICAgIGlmKGJ1ZmZlclBvczxidWZmZXJMaW1pdCB8fCBuZXh0Tm9ybWFsaXplKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRDb2RlUG9pbnRBdChidWZmZXJQb3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dCBhbmQgYWR2YW5jZQorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGVuZAorICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQgfHwgIG5leHROb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zKTsKKyAgICAgICAgICAgIGJ1ZmZlclBvcys9KGM+MHhGRkZGKSA/IDIgOiAxOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQgYW5kIGRlY3JlbWVudAorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGJlZ2lubmluZworICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgaWYoYnVmZmVyUG9zPjAgfHwgcHJldmlvdXNOb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zLTEpOworICAgICAgICAgICAgYnVmZmVyUG9zLT0oYz4weEZGRkYpID8gMiA6IDE7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaW5kZXggdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gc2V0SW5kZXhPbmx5KHN0YXJ0SW5kZXgpKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleCgwKTsKKyAgICAgICAgY3VycmVudEluZGV4PW5leHRJbmRleD0wOworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgdGV4dCB0aGF0IGlzIGJlaW5nIG5vcm1hbGl6ZWQsCisgICAgICogd2l0aG91dCBhbnkgaW1tZWRpYXRlIG5vcm1hbGl6YXRpb24uCisgICAgICogQWZ0ZXIgc2V0SW5kZXhPbmx5KCksIGdldEluZGV4KCkgd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5kZXggdGhhdCBpcworICAgICAqIHNwZWNpZmllZCBoZXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4T25seShpbnQgaW5kZXgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleChpbmRleCk7CisgICAgICAgIGN1cnJlbnRJbmRleD1uZXh0SW5kZXg9aW5kZXg7IC8vIHZhbGlkYXRlcyBpbmRleAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcyBiZWluZyBub3JtYWxpemVkCisgICAgICogYW5kIHJldHVybiB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgYXQgdGhhdCBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gVGhpcyBtZXRob2Qgc2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIDxlbT5pbnB1dDwvZW0+IHRleHQsCisgICAgICogd2hpbGUge0BsaW5rICNuZXh0fSBhbmQge0BsaW5rICNwcmV2aW91c30gaXRlcmF0ZSB0aHJvdWdoIGNoYXJhY3RlcnMKKyAgICAgKiBpbiB0aGUgbm9ybWFsaXplZCA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZAorICAgICAqIGJ5IDx0dD5uZXh0PC90dD4gYW5kIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kCisgICAgICogcmV0dXJuZWQgZnJvbSA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGl0ZXJhdGluZworICAgICAqICAgICAgICAgICAgZm9yd2FyZCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAge0BsaW5rICNnZXRCZWdpbkluZGV4fSBvciBncmVhdGVyIHRoYW4ge0BsaW5rICNnZXRFbmRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjIKKyAgICAgKiBAb2Jzb2xldGUgSUNVIDMuMgorICAgICAqLworICAgICAvLy9DTE9WRVI6T0ZGCisgICAgIHB1YmxpYyBpbnQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgICBzZXRJbmRleE9ubHkoaW5kZXgpOworICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgfQorICAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMi4gVXNlIHN0YXJ0SW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNzdGFydEluZGV4CisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gIFRoaXMgaXMgdGhlIGVuZCBpbmRleAorICAgICAqIG9mIHRoZSA8dHQ+Q2hhcmFjdGVySXRlcmF0b3I8L3R0PiBvciB0aGUgbGVuZ3RoIG9mIHRoZSA8dHQ+U3RyaW5nPC90dD4KKyAgICAgKiBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBpcyBpdGVyYXRpbmcKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yLiBVc2UgZW5kSW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNlbmRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgIHJldHVybiBlbmRJbmRleCgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbm9ybWFsaXplZCB0ZXh0LT4gIFRoaXMgcmVzZXRzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyJ3M8L3R0PiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LT4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBmaXJzdCgpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dC0+ICBUaGlzIHJlc2V0cworICAgICAqIHRoZSA8dHQ+Tm9ybWFsaXplcidzPC90dD4gcG9zaXRpb24gdG8gYmUganVzdCBiZWZvcmUgdGhlCisgICAgICogdGhlIGlucHV0IHRleHQgY29ycmVzcG9uZGluZyB0byB0aGF0IG5vcm1hbGl6ZWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIHRleHQuc2V0VG9MaW1pdCgpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4PXRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2xlYXJCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcworICAgICAqIGJlaW5nIG5vcm1hbGl6ZWQuICBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaW4gYXBwbGljYXRpb25zIHN1Y2ggYXMKKyAgICAgKiBzZWFyY2hpbmcsIHdoZXJlIHlvdSBuZWVkIHRvIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBpbgorICAgICAqIHRoZSBpbnB1dCB0ZXh0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBnaXZlbiBub3JtYWxpemVkIG91dHB1dCBjaGFyYWN0ZXIuCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFRoaXMgbWV0aG9kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSA8ZW0+aW5wdXQ8L2VtPiwgd2hpbGUKKyAgICAgKiB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBpdGVyYXRlIHRocm91Z2ggY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZQorICAgICAqIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZCBieSA8dHQ+bmV4dDwvdHQ+IGFuZAorICAgICAqIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kIHJldHVybmVkIGZyb20KKyAgICAgKiA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV4dEluZGV4OworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHN0YXJ0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGluZGV4IG9mIHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQtPiAgVGhpcyBpcyB0aGUgZW5kIGluZGV4CisgICAgICogb2YgdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IG9yIHRoZSBsZW5ndGggb2YgdGhlIDx0dD5TdHJpbmc8L3R0PgorICAgICAqIG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGlzIGl0ZXJhdGluZworICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBlbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0TGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3BlcnR5IGFjY2VzcyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLyoqCisgICAgICogU2V0IHRoZSBub3JtYWxpemF0aW9uIG1vZGUgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPklmIHRoZSBub3JtYWxpemF0aW9uIG1vZGUgaXMgY2hhbmdlZCB3aGlsZSBpdGVyYXRpbmcKKyAgICAgKiBvdmVyIGEgc3RyaW5nLCBjYWxscyB0byB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBtYXkKKyAgICAgKiByZXR1cm4gcHJldmlvdXNseSBidWZmZXJzIGNoYXJhY3RlcnMgaW4gdGhlIG9sZCBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiB1bnRpbCB0aGUgaXRlcmF0aW9uIGlzIGFibGUgdG8gcmUtc3luYyBhdCB0aGUgbmV4dCBiYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gY2FsbCB7QGxpbmsgI3NldFRleHQgc2V0VGV4dCgpfSwge0BsaW5rICNmaXJzdH0sCisgICAgICoge0BsaW5rICNsYXN0fSwgZXRjLiBhZnRlciBjYWxsaW5nIDx0dD5zZXRNb2RlPC90dD4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIG5ld01vZGUgdGhlIG5ldyBtb2RlIGZvciB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4uCisgICAgICogVGhlIHN1cHBvcnRlZCBtb2RlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqICA8bGk+e0BsaW5rICNDT01QT1NFfSAgICAgICAgLSBVbmljb2RlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aWlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4KKyAgICAgKiAgPGxpPntAbGluayAjQ09NUE9TRV9DT01QQVR9IC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpaW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbHdlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI0RFQ09NUH0gICAgICAgICAtIFVuaWNvZGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24KKyAgICAgKiAgPGxpPntAbGluayAjREVDT01QX0NPTVBBVH0gIC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI05PX09QfSAgICAgICAgICAtIERvIG5vdGhpbmcgYnV0IHJldHVybiBjaGFyYWN0ZXJzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dCB0ZXh0LgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kZShNb2RlIG5ld01vZGUpIHsKKyAgICAgICAgbW9kZSA9IG5ld01vZGU7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFzaWMgb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgTW9kZSBnZXRNb2RlKCkgeworICAgICAgICByZXR1cm4gbW9kZTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+J3Mgb3BlcmF0aW9uLgorICAgICAqIE9wdGlvbnMgZG8gbm90IGNoYW5nZSB0aGUgYmFzaWMgY29tcG9zaXRpb24gb3IgZGVjb21wb3NpdGlvbiBvcGVyYXRpb24KKyAgICAgKiB0aGF0IGlzIGJlaW5nIHBlcmZvcm1lZCAsIGJ1dCB0aGV5IGNvbnRyb2wgd2hldGhlcgorICAgICAqIGNlcnRhaW4gb3B0aW9uYWwgcG9ydGlvbnMgb2YgdGhlIG9wZXJhdGlvbiBhcmUgZG9uZS4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpczoKKyAgICAgKiA8cD4KKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+e0BsaW5rICNVTklDT0RFXzNfMn0gLSBVc2UgTm9ybWFsaXphdGlvbiBjb25mb3JtaW5nIHRvIFVuaWNvZGUgdmVyc2lvbiAzLjIuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gICBvcHRpb24gIHRoZSBvcHRpb24gd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0LgorICAgICAqIEBwYXJhbSAgIHZhbHVlICAgdGhlIG5ldyBzZXR0aW5nIGZvciB0aGUgb3B0aW9uLiAgVXNlIDx0dD50cnVlPC90dD4gdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHR1cm4gdGhlIG9wdGlvbiBvbiBhbmQgPHR0PmZhbHNlPC90dD4gdG8gdHVybiBpdCBvZmYuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRPcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbixib29sZWFuIHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgb3B0aW9ucyB8PSBvcHRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvcHRpb25zICY9ICh+b3B0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYW4gb3B0aW9uIGlzIHR1cm5lZCBvbiBvciBvZmYuCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0T3B0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPcHRpb24oaW50IG9wdGlvbikgeworICAgICAgICBpZigob3B0aW9ucyAmIG9wdGlvbikhPTApIHsKKyAgICAgICAgICAgIHJldHVybiAxIDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHBhcmFtIGZpbGxJbiB0aGUgY2hhciBidWZmZXIgdG8gZmlsbCB0aGUgVVRGLTE2IHVuaXRzLgorICAgICAqICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAqICAgICAgICAgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAc2VlICAgI2dldExlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFRleHQoZmlsbEluKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRMZW5ndGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gYXMgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRUZXh0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB3aWxsIGl0ZXJhdGUuCisgICAgICogVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQgdGV4dC0+CisgICAgICogQHBhcmFtIG5ld1RleHQgICBUaGUgbmV3IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nQnVmZmVyIG5ld1RleHQpIHsKKyAgICAgICAgCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBuZXdJdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld1RleHQpOworICAgICAgICBpZiAobmV3SXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICB9ICAKKyAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KGNoYXJbXSBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyBuZXdUZXh0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3VGV4dCk7CisgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNvdWxkIG5vdCBjcmVhdGUgYSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0gIAorICAgICAgICB0ZXh0ID0gbmV3SXRlcjsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IHdpbGwgaXRlcmF0ZS4KKyAgICAgKiBUaGUgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChVQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCkgeyAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKW5ld1RleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICB9Y2F0Y2goQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNsb25lIHRoZSBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIHV0aWxpdHkgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorCisgICAgLyogYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgICAgICAgICAgICAgCisgICAgLyoKKyAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgZ2V0IG5vcm0zMgorICAgICAqIHJldHVybiAwIGlmIHRoZSBjaGFyYWN0ZXIgaXMgPG1pbkMKKyAgICAgKiBpZiBjMiE9MCB0aGVuIChjMiwgYykgaXMgYSBzdXJyb2dhdGUgcGFpciAocmV2ZXJzZWQgLSBjMiBpcyBmaXJzdCAKKyAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljICBsb25nIGdldFByZXZOb3JtMzIoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjaD0wOworICAgICAgICAvKiBuZWVkIHNyYy5oYXNQcmV2aW91cygpICovCisgICAgICAgIGlmKChjaD1zcmMucHJldmlvdXMoKSkgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGNoYXJzWzBdPShjaGFyKWNoOworICAgICAgICBjaGFyc1sxXT0wOworICAgIAorICAgICAgICAvKiBjaGVjayBmb3IgYSBzdXJyb2dhdGUgYmVmb3JlIGdldHRpbmcgbm9ybTMyIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIAorICAgICAgICAgKiBwcmVkZWNyZW1lbnQgZnVydGhlciAqLworICAgICAgICBpZihjaGFyc1swXTxtaW5DKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjaGFyc1swXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMF0pOworICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoYXJzWzBdKSB8fCAoc3JjLmdldEluZGV4KCk9PTApKSB7CisgICAgICAgICAgICAvKiB1bnBhaXJlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIGNoYXJzWzFdPShjaGFyKXNyYy5jdXJyZW50KCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaGFyc1sxXT0oY2hhcilzcmMucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMV0pOworICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgIC8qIGFsbCBzdXJyb2dhdGUgcGFpcnMgd2l0aCB0aGlzIGxlYWQgc3Vycm9nYXRlIGhhdmUgaXJyZWxldmFudCAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm0zMiBtdXN0IGJlIGEgc3Vycm9nYXRlIHNwZWNpYWwgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLGNoYXJzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIHNlY29uZCBzdXJyb2dhdGUsIHVuZG8gdGhlIGMyPXNyYy5wcmV2aW91cygpIG1vdmVtZW50ICovCisgICAgICAgICAgICBzcmMubW92ZUluZGV4KCAxKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIElzUHJldkJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ByZXZCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSXNQcmV2TkZEU2FmZSBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiBmb3IgTkYqRDoKKyAgICAgICAgICogcmVhZCBiYWNrd2FyZHMgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0UHJldk5vcm0zMihzcmMsIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrJiBOb3JtYWxpemVySW1wbC5RQ19NQVNLKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc1ByZXZUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyAob3IgaXRzIGRlY29tcG9zaXRpb24gCisgICAgICAgICAqIGJlZ2lucyB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgICAgICAgICAgbG9uZyBub3JtMzI7IAorICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wUUNNYXNrPShjY09yUUNNYXNrPDwyKSYweGY7IC8qZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXRQcmV2Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFza3xkZWNvbXBRQ01hc2ssIGNoYXJzKTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc1RydWVTdGFydGVyKG5vcm0zMixjY09yUUNNYXNrLGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRQcmV2aW91c0l0ZXJhdGlvbkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzUHJldkJvdW5kYXJ5IG9iaiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKm1hc2sqLyBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gc3RhcnRJbmRleCkgeworICAgICAgICBjaGFyW10gY2hhcnM9bmV3IGNoYXJbMl07CisgICAgICAgIGJvb2xlYW4gaXNCb3VuZGFyeTsKKyAgICAKKyAgICAgICAgLyogZmlsbCB0aGUgYnVmZmVyIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMgKi8KKyAgICAgICAgc3RhcnRJbmRleFswXSA9IGJ1ZmZlci5sZW5ndGg7CisgICAgICAgIGNoYXJzWzBdPTA7CisgICAgICAgIHdoaWxlKHNyYy5nZXRJbmRleCgpPjAgJiYgY2hhcnNbMF0hPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpc0JvdW5kYXJ5PW9iai5pc1ByZXZCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGFsd2F5cyB3cml0ZSB0aGlzIGNoYXJhY3RlciB0byB0aGUgZnJvbnQgb2YgdGhlIGJ1ZmZlciAqLworICAgICAgICAgICAgLyogbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0aGUgYnVmZmVyICovCisgICAgICAgICAgICBpZihzdGFydEluZGV4WzBdIDwgKGNoYXJzWzFdPT0wID8gMSA6IDIpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBncm93IHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSBjdXJyZW50IGJ1ZmZlciBjb250ZW50cyB1cCAqLworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sbmV3QnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QnVmLmxlbmd0aC0oYnVmZmVyLmxlbmd0aC1zdGFydEluZGV4WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5sZW5ndGgtc3RhcnRJbmRleFswXSk7CisgICAgICAgICAgICAgICAgLy9hZGp1c3QgdGhlIHN0YXJ0SW5kZXgKKyAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdKz1uZXdCdWYubGVuZ3RoLWJ1ZmZlci5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnVmZmVyPW5ld0J1ZjsKKyAgICAgICAgICAgICAgICBuZXdCdWY9bnVsbDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBidWZmZXJbLS1zdGFydEluZGV4WzBdXT1jaGFyc1swXTsKKyAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyWy0tc3RhcnRJbmRleFswXV09Y2hhcnNbMV07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzdG9wIGlmIHRoaXMganVzdC1jb3BpZWQgY2hhcmFjdGVyIGlzIGEgYm91bmRhcnkgKi8KKyAgICAgICAgICAgIGlmKGlzQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXIubGVuZ3RoLXN0YXJ0SW5kZXhbMF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBwcmV2aW91cyhVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9Ob3JtYWxpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworCisgICAgICAgIElzUHJldkJvdW5kYXJ5IGlzUHJldmlvdXNCb3VuZGFyeTsKKyAgICAgICAgaW50IGRlc3RMZW5ndGgsIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2s7CisgICAgICAgIAorICAgICAgICBpbnQgYyxjMjsKKyAgICAgICAgCisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdC1kZXN0U3RhcnQ7CisgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgIHBOZWVkZWRUb05vcm1hbGl6ZVswXT1mYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNQcmV2aW91c0JvdW5kYXJ5ID0gbW9kZS5nZXRQcmV2Qm91bmRhcnkoKTsKKworICAgICAgICBpZihpc1ByZXZpb3VzQm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGlmKChjPXNyYy5wcmV2aW91cygpKT49MCkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPSBzcmMucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPShjaGFyKWM7IC8vIHRyYWlsIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSB0byBiZSB3cml0dGVuIGJlbG93IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9YzI7IAorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMF07CisgICAgICAgIGludFtdIHN0YXJ0SW5kZXg9IG5ldyBpbnRbMV07CisgICAgICAgIGJ1ZmZlckxlbmd0aD1maW5kUHJldmlvdXNJdGVyYXRpb25Cb3VuZGFyeShzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZXZpb3VzQm91bmRhcnksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluQywgbWFzayxidWZmZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCk7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdK2J1ZmZlckxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsMCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RTdGFydCxkZXN0TGltaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGp1c3QgY29weSB0aGUgc291cmNlIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlcixzdGFydEluZGV4WzBdLGRlc3QsMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyTGVuZ3RoPGRlc3RDYXBhY2l0eSkgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJMZW5ndGggOiBkZXN0Q2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgIAorICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICB9CisKKyAKKyAgICAKKyAgICAvKiBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgLyoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBuZXh0LWl0ZXJhdGlvbiBib3VuZGFyeQorICAgICAqIGlmIGMyIT0wIHRoZW4gKGMsIGMyKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIGJvb2xlYW4gaXNOZXh0Qm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjaGFycyk7CisgICAgfSAgIAorICAgIC8qCisgICAgICogcmVhZCBmb3J3YXJkIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogYWx3YXlzIHJlYWRzIGNvbXBsZXRlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIC8qdW5zaWduZWQqLyBnZXROZXh0Tm9ybTMyKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgIC8qIG5lZWQgc3JjLmhhc05leHQoKSB0byBiZSB0cnVlICovCisgICAgICAgIGNoYXJzWzBdPXNyYy5uZXh0KCk7CisgICAgICAgIGNoYXJzWzFdPTA7CisgICAgCisgICAgICAgIGlmKGNoYXJzWzBdPG1pbkMpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoKGNoYXIpY2hhcnNbMF0pOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcnNbMF0pKSB7CisgICAgICAgICAgICBpZihzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLmN1cnJlbnQoKSkpKSB7CisgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgxKTsgLyogc2tpcCB0aGUgYzIgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBpcnJlbGV2YW50IGRhdGEgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm9ybTMyIG11c3QgYmUgYSBzdXJyb2dhdGUgc3BlY2lhbCAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLChjaGFyKWNoYXJzWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBmb3IgTkYqRDoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRORkRTYWZlIGltcGxlbWVudHMgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTmV4dEJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBjY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0TmV4dE5vcm0zMihzcmMsbWluQyxjY09yUUNNYXNrLGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNjT3JRQ01hc2smTm9ybWFsaXplckltcGwuUUNfTUFTSyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBmb3IgTkYqQzoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgKG9yIGl0cyBkZWNvbXBvc2l0aW9uIGJlZ2lucyAKKyAgICAgKiB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzTmV4dEJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc05leHRCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGNoYXJzKSB7CisgICAgICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2s7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tcFFDTWFzaz0oY2NPclFDTWFzazw8MikmMHhmOyAvKmRlY29tcG9zaXRpb24gcXVpY2sgY2hlY2sgbWFzayovCisgICAgICAgICAgICBub3JtMzI9Z2V0TmV4dE5vcm0zMihzcmMsIG1pbkMsIGNjT3JRQ01hc2t8ZGVjb21wUUNNYXNrLCBjaGFycyk7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNUcnVlU3RhcnRlcihub3JtMzIsIGNjT3JRQ01hc2ssIGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmROZXh0SXRlcmF0aW9uQm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc05leHRCb3VuZGFyeSBvYmosIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyKSB7CisgICAgICAgIGludFtdIGNoYXJzID0gbmV3IGludFsyXTsKKyAgICAgICAgaW50IGJ1ZmZlckluZGV4ID0wOworICAgICAgICAKKyAgICAgICAgaWYoc3JjLmN1cnJlbnQoKT09VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8qIGdldCBvbmUgY2hhcmFjdGVyIGFuZCBpZ25vcmUgaXRzIHByb3BlcnRpZXMgKi8KKyAgICAgICAgY2hhcnNbMF09c3JjLm5leHQoKTsKKyAgICAgICAgYnVmZmVyWzBdPShjaGFyKWNoYXJzWzBdOworICAgICAgICBidWZmZXJJbmRleD0xOworICAgICAgICAKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXJzWzBdKSYmIAorICAgICAgICAgICBzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLm5leHQoKSkpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzFdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KC0xKTsgLyogYmFjayBvdXQgdGhlIG5vbi10cmFpbC1zdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBnZXQgYWxsIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHVudGlsIHdlIHNlZSBhIGJvdW5kYXJ5ICovCisgICAgICAgIC8qIGNoZWNraW5nIGhhc05leHQoKSBpbnN0ZWFkIG9mIGMhPURPTkUgb24gdGhlIG9mZi1jaGFuY2UgdGhhdCBVK2ZmZmYgCisgICAgICAgICAqIGlzIHBhcnQgb2YgdGhlIHN0cmluZyAqLworICAgICAgICB3aGlsZSggc3JjLmN1cnJlbnQoKSE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGlmKG9iai5pc05leHRCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKSkgeworICAgICAgICAgICAgICAgIC8qIGJhY2sgb3V0IHRoZSBsYXRlc3QgbW92ZW1lbnQgdG8gc3RvcCBhdCB0aGUgYm91bmRhcnkgKi8KKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KGNoYXJzWzFdPT0wID8gLTEgOiAtMik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGJ1ZmZlckluZGV4KyhjaGFyc1sxXT09MCA/IDEgOiAyKTw9YnVmZmVyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMF07CisgICAgICAgICAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCAgICAqMl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLDAsbmV3QnVmLDAsYnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBuZXdCdWY7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1swXTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2hhcnNbMV0hPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1sxXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXJJbmRleDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5leHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvTm9ybWFsaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBJc05leHRCb3VuZGFyeSBpc05leHRCb3VuZGFyeTsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBtYXNrOworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50IGMsYzI7CisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsKKyAgICAgICAgaW50IGRlc3RMZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYocE5lZWRlZFRvTm9ybWFsaXplIT1udWxsKSB7CisgICAgICAgICAgICBwTmVlZGVkVG9Ob3JtYWxpemVbMF09ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNOZXh0Qm91bmRhcnkgPSBtb2RlLmdldE5leHRCb3VuZGFyeSgpOworICAgICAgICAKKyAgICAgICAgaWYoaXNOZXh0Qm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGM9c3JjLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0gc3JjLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhciljMjsgLy8gdHJhaWwgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIHRvIGJlIHdyaXR0ZW4gYmVsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5tb3ZlSW5kZXgoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJbXSBidWZmZXI9bmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50W10gc3RhcnRJbmRleCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBidWZmZXJMZW5ndGg9ZmluZE5leHRJdGVyYXRpb25Cb3VuZGFyeShzcmMsaXNOZXh0Qm91bmRhcnksIG1pbkMsIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9bW9kZS5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhidWZmZXIsc3RhcnRJbmRleFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IGNvcHkgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsMCxkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihidWZmZXJMZW5ndGgsZGVzdENhcGFjaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgIH0gCisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJCdWZmZXIoKSB7CisgICAgICAgIGJ1ZmZlckxpbWl0PWJ1ZmZlclN0YXJ0PWJ1ZmZlclBvcz0wOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIG5leHROb3JtYWxpemUoKSB7CisgICAgICAgIAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KG5leHRJbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGJ1ZmZlckxpbWl0PW5leHQodGV4dCxidWZmZXIsYnVmZmVyU3RhcnQsYnVmZmVyLmxlbmd0aCxtb2RlLHRydWUsbnVsbCxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBuZXh0SW5kZXg9dGV4dC5nZXRJbmRleCgpOworICAgICAgICByZXR1cm4gKGJ1ZmZlckxpbWl0PjApOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuICAgICBwcmV2aW91c05vcm1hbGl6ZSgpIHsKKworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBuZXh0SW5kZXg9Y3VycmVudEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgIGJ1ZmZlckxpbWl0PXByZXZpb3VzKHRleHQsYnVmZmVyLGJ1ZmZlclN0YXJ0LGJ1ZmZlci5sZW5ndGgsbW9kZSx0cnVlLG51bGwsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGN1cnJlbnRJbmRleD10ZXh0LmdldEluZGV4KCk7CisgICAgICAgIGJ1ZmZlclBvcyA9IGJ1ZmZlckxpbWl0OworICAgICAgICByZXR1cm4gYnVmZmVyTGltaXQ+MDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29kZVBvaW50QXQoaW50IGluZGV4KSB7CisgICAgICAgIGlmKCBVVEYxNi5pc1N1cnJvZ2F0ZShidWZmZXJbaW5kZXhdKSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGJ1ZmZlcltpbmRleF0pKSB7CisgICAgICAgICAgICAgICAgaWYoKGluZGV4KzEpPGJ1ZmZlckxpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgrMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2luZGV4KzFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYnVmZmVyW2luZGV4XSkpIHsKKyAgICAgICAgICAgICAgICBpZihpbmRleD4wICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgtMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleC0xXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXJbaW5kZXhdOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgQVBJCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMsIE1vZGUgbW9kZSkgeworICAgICAgICByZXR1cm4gbW9kZS5pc05GU2tpcHBhYmxlKGMpOworICAgIH0gICAgCisKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGludGVybmFsQ29tcGFyZShjaGFyW10gczEsIGludCBzMVN0YXJ0LGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCxpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBmY2QxICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIGNoYXJbXSBmY2QyICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIAorICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIGlmKCAgICBzMT09bnVsbCB8fCBzMVN0YXJ0PDAgfHwgczFMaW1pdDwwIHx8IAorICAgICAgICAgICAgICAgczI9PW51bGwgfHwgczJTdGFydDwwIHx8IHMyTGltaXQ8MCB8fAorICAgICAgICAgICAgICAgczFMaW1pdDxzMVN0YXJ0IHx8IHMyTGltaXQ8czJTdGFydAorICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBVbmljb2RlU2V0IG54PU5vcm1hbGl6ZXJJbXBsLmdldE5YKChpbnQpKG9wdGlvbnM+Pk5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQpKTsKKyAgICAgICAgb3B0aW9uc3w9IE5vcm1hbGl6ZXJJbXBsLkNPTVBBUkVfRVFVSVY7CisgICAgICAgIHJlc3VsdD0wOworCisgICAgICAgIC8qCisgICAgICAgICAqIFVBWCAjMjEgQ2FzZSBNYXBwaW5ncywgYXMgZml4ZWQgZm9yIFVuaWNvZGUgdmVyc2lvbiA0CisgICAgICAgICAqIChzZWUgSml0dGVyYnVnIDIwMjEpLCBkZWZpbmVzIGEgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoIGFzCisgICAgICAgICAqCisgICAgICAgICAqIEEgc3RyaW5nIFggaXMgYSBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2gKKyAgICAgICAgICogZm9yIGEgc3RyaW5nIFkgaWYgYW5kIG9ubHkgaWYKKyAgICAgICAgICogTkZEKHRvQ2FzZWZvbGQoTkZEKFgpKSkgPSBORkQodG9DYXNlZm9sZChORkQoWSkpKQorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgYmV0dGVyIHBlcmZvcm1hbmNlLCB3ZSBjaGVjayBmb3IgRkNEIChvciBsZXQgdGhlIGNhbGxlciB0ZWxsIHVzIHRoYXQKKyAgICAgICAgICogYm90aCBzdHJpbmdzIGFyZSBpbiBGQ0QpIGZvciB0aGUgaW5uZXIgbm9ybWFsaXphdGlvbi4KKyAgICAgICAgICogQmFzaWNOb3JtYWxpemVyVGVzdDo6RmluZEZvbGRGQ0RFeGNlcHRpb25zKCkgbWFrZXMgc3VyZSB0aGF0CisgICAgICAgICAqIGNhc2UtZm9sZGluZyBwcmVzZXJ2ZXMgdGhlIEZDRC1uZXNzIG9mIGEgc3RyaW5nLgorICAgICAgICAgKiBUaGUgb3V0ZXIgbm9ybWFsaXphdGlvbiBpcyB0aGVuIG9ubHkgcGVyZm9ybWVkIGJ5IE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZCgpCisgICAgICAgICAqIHdoZW4gdGhlcmUgaXMgYSBkaWZmZXJlbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBFeGNlcHRpb246IFdoZW4gdXNpbmcgdGhlIFR1cmtpYyBjYXNlLWZvbGRpbmcgb3B0aW9uLCB3ZSBkbyBwZXJmb3JtCisgICAgICAgICAqIGZ1bGwgTkZEIGZpcnN0LiBUaGlzIGlzIGJlY2F1c2UgaW4gdGhlIFR1cmtpYyBjYXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgICogd2l0aCAwMDQ5IGNhcGl0YWwgSSBvciAwMDY5IHNtYWxsIGkgZm9sZCBkaWZmZXJlbnRseSB3aGV0aGVyIHRoZXkKKyAgICAgICAgICogYXJlIGZpcnN0IGRlY29tcG9zZWQgb3Igbm90LCBzbyBhbiBGQ0QgY2hlY2sgLSBhIGNoZWNrIG9ubHkgZm9yCisgICAgICAgICAqIGNhbm9uaWNhbCBvcmRlciAtIGlzIG5vdCBzdWZmaWNpZW50LgorICAgICAgICAgKi8KKyAgICAgICAgaWYoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA+MCApIHsKKyAgICAgICAgICAgIG1vZGU9Tm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICBvcHRpb25zJj1+IE5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbW9kZT1Ob3JtYWxpemVyLkZDRDsKKyAgICAgICAgfQorICAgICAgICBpZigob3B0aW9ucyYgTm9ybWFsaXplci5JTlBVVF9JU19GQ0QpPT0wKSB7CisgICAgICAgICAgICBjaGFyW10gZGVzdDsKKyAgICAgICAgICAgIGludCBmY2RMZW4xLCBmY2RMZW4yOworICAgICAgICAgICAgYm9vbGVhbiBpc0ZDRDEsIGlzRkNEMjsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiBzMSBhbmQvb3IgczIgZnVsZmlsbCB0aGUgRkNEIGNvbmRpdGlvbnMKKyAgICAgICAgICAgIGlzRkNEMT0gTm9ybWFsaXplci5ZRVM9PW1vZGUucXVpY2tDaGVjayhzMSwgczFTdGFydCwgczFMaW1pdCwgdHJ1ZSwgbngpOworICAgICAgICAgICAgaXNGQ0QyPSBOb3JtYWxpemVyLllFUz09bW9kZS5xdWlja0NoZWNrKHMyLCBzMlN0YXJ0LCBzMkxpbWl0LCB0cnVlLCBueCk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSUNVIDIuNCBoYWQgYSBmdXJ0aGVyIG9wdGltaXphdGlvbjoKKyAgICAgICAgICAgICAqIElmIGJvdGggc3RyaW5ncyB3ZXJlIG5vdCBpbiBGQ0QsIHRoZW4gdGhleSB3ZXJlIGJvdGggTkZEJ2VkLAorICAgICAgICAgICAgICogYW5kIHRoZSBDT01QQVJFX0VRVUlWIG9wdGlvbiB3YXMgdHVybmVkIG9mZi4KKyAgICAgICAgICAgICAqIEl0IGlzIG5vdCBlbnRpcmVseSBjbGVhciB0aGF0IHRoaXMgaXMgdmFsaWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgICAgICAgICogZGVmaW5pdGlvbiBvZiB0aGUgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoLgorICAgICAgICAgICAgICogVGhlcmVmb3JlLCBJQ1UgMi42IHJlbW92ZXMgdGhhdCBvcHRpbWl6YXRpb24uCisgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYoIWlzRkNEMSkgeworICAgICAgICAgICAgICAgIGZjZExlbjE9bW9kZS5ub3JtYWxpemUoczEsIDAsIHMxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDEsIDAsIGZjZDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoZmNkTGVuMT5mY2QxLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0PW5ldyBjaGFyW2ZjZExlbjFdOworICAgICAgICAgICAgICAgICAgICBmY2RMZW4xPW1vZGUubm9ybWFsaXplKCBzMSwgMCwgczEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LCAwLCBkZXN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICBzMT1kZXN0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMxPWZjZDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHMxTGltaXQ9ZmNkTGVuMTsKKyAgICAgICAgICAgICAgICBzMVN0YXJ0PTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCFpc0ZDRDIpIHsKKyAgICAgICAgICAgICAgICBmY2RMZW4yPW1vZGUubm9ybWFsaXplKHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDIsMCxmY2QyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihmY2RMZW4yPmZjZDIubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3Q9bmV3IGNoYXJbZmNkTGVuMl07CisgICAgICAgICAgICAgICAgICAgIGZjZExlbjI9bW9kZS5ub3JtYWxpemUoIHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICAgICAgICAgIHMyPWRlc3Q7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgczI9ZmNkMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgczJMaW1pdD1mY2RMZW4yOworICAgICAgICAgICAgICAgIHMyU3RhcnQ9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZChzMSwgczFTdGFydCwgczFMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczIsIHMyU3RhcnQsIHMyTGltaXQsIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogRmV0Y2hlcyB0aGUgVW5pY29kZSB2ZXJzaW9uIGJ1cm5lZCBpbnRvIHRoZSBOb3JtYWxpemF0aW9uIGRhdGEgZmlsZQorICAgICAqIEByZXR1cm4gVmVyc2lvbkluZm8gdmVyc2lvbiBpbmZvcm1hdGlvbiBvZiB0aGUgbm9ybWFsaXplcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRVbmljb2RlVmVyc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdWxsVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYTQyZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgbGVhdmVzIHRleHQgdW5jaGFuZ2VkLgorICogQGludGVybmFsCisgKi8KK2NsYXNzIE51bGxUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMjAwMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogUGFja2FnZSBhY2Nlc3NpYmxlIElEcyBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIFNIT1JUX0lEID0gIk51bGwiOworICAgIHN0YXRpYyBTdHJpbmcgX0lEICAgICAgPSAiQW55LU51bGwiOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBOdWxsVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViYmEzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQpAQCAtMCwwICsxLDE2NTIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5QW1vdW50OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGlzIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgbnVtYmVyCisgKiBmb3JtYXRzLiBUaGlzIGNsYXNzIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcKKyAqIG51bWJlcnMuIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gYWxzbyBwcm92aWRlcyBtZXRob2RzIGZvciBkZXRlcm1pbmluZworICogd2hpY2ggbG9jYWxlcyBoYXZlIG51bWJlciBmb3JtYXRzLCBhbmQgd2hhdCB0aGVpciBuYW1lcyBhcmUuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBvcgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogPHA+CisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGhlbHBzIHlvdSB0byBmb3JtYXQgYW5kIHBhcnNlIG51bWJlcnMgZm9yIGFueSBsb2NhbGUuCisgKiBZb3VyIGNvZGUgY2FuIGJlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZSBjb252ZW50aW9ucyBmb3IKKyAqIGRlY2ltYWwgcG9pbnRzLCB0aG91c2FuZHMtc2VwYXJhdG9ycywgb3IgZXZlbiB0aGUgcGFydGljdWxhciBkZWNpbWFsCisgKiBkaWdpdHMgdXNlZCwgb3Igd2hldGhlciB0aGUgbnVtYmVyIGZvcm1hdCBpcyBldmVuIGRlY2ltYWwuCisgKgorICogPHA+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIHRoZSBjdXJyZW50IExvY2FsZSwgdXNlIG9uZSBvZiB0aGUgZmFjdG9yeQorICogY2xhc3MgbWV0aG9kczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqICBteVN0cmluZyA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdChteU51bWJlcik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIElmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICogZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICAgb3V0cHV0LnByaW50bG4obmYuZm9ybWF0KG15TnVtYmVyW2ldKSArICI7ICIpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIGEgZGlmZmVyZW50IExvY2FsZSwgc3BlY2lmeSBpdCBpbiB0aGUKKyAqIGNhbGwgdG8gPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+LgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGFsc28gdXNlIGEgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0byBwYXJzZSBudW1iZXJzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogbXlOdW1iZXIgPSBuZi5wYXJzZShteVN0cmluZyk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFVzZSA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gb3IgPGNvZGU+Z2V0TnVtYmVySW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5vcm1hbCBudW1iZXIgZm9ybWF0LiBVc2UgPGNvZGU+Z2V0SW50ZWdlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgYW4KKyAqIGludGVnZXIgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEN1cnJlbmN5SW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIGN1cnJlbmN5IG51bWJlciBmb3JtYXQuIEFuZCB1c2UgPGNvZGU+Z2V0UGVyY2VudEluc3RhbmNlPC9jb2RlPiB0byBnZXQgYQorICogZm9ybWF0IGZvciBkaXNwbGF5aW5nIHBlcmNlbnRhZ2VzLiBXaXRoIHRoaXMgZm9ybWF0LCBhIGZyYWN0aW9uIGxpa2UKKyAqIDAuNTMgaXMgZGlzcGxheWVkIGFzIDUzJS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBjb250cm9sIHRoZSBkaXNwbGF5IG9mIG51bWJlcnMgd2l0aCBzdWNoIG1ldGhvZHMgYXMKKyAqIDxjb2RlPnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCBldmVuIG1vcmUgY29udHJvbCBvdmVyIHRoZSBmb3JtYXQgb3IgcGFyc2luZywKKyAqIG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIG1vcmUgY29udHJvbCwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4geW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4uIFRoaXMgd2lsbCB3b3JrIGZvciB0aGUgdmFzdCBtYWpvcml0eQorICogb2YgbG9jYWxlczsganVzdCByZW1lbWJlciB0byBwdXQgaXQgaW4gYSA8Y29kZT50cnk8L2NvZGU+IGJsb2NrIGluIGNhc2UgeW91CisgKiBlbmNvdW50ZXIgYW4gdW51c3VhbCBvbmUuCisgKgorICogPHA+CisgKiBOdW1iZXJGb3JtYXQgaXMgZGVzaWduZWQgc3VjaCB0aGF0IHNvbWUgY29udHJvbHMKKyAqIHdvcmsgZm9yIGZvcm1hdHRpbmcgYW5kIG90aGVycyB3b3JrIGZvciBwYXJzaW5nLiAgVGhlIGZvbGxvd2luZyBpcworICogdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGZvciBlYWNoIHRoZXNlIGNvbnRyb2wgbWV0aG9kcywKKyAqIDxwPgorICogc2V0UGFyc2VJbnRlZ2VyT25seSA6IG9ubHkgYWZmZWN0cyBwYXJzaW5nLCBlLmcuCisgKiBpZiB0cnVlLCAgIjM0NTYuNzgiIC0+IDM0NTYgKGFuZCBsZWF2ZXMgdGhlIHBhcnNlIHBvc2l0aW9uIGp1c3QgYWZ0ZXIgJzYnKQorICogaWYgZmFsc2UsICIzNDU2Ljc4IiAtPiAzNDU2Ljc4IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyICc4JykKKyAqIFRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgZm9ybWF0dGluZy4gIElmIHlvdSB3YW50IHRvIG5vdCBzaG93IGEgZGVjaW1hbCBwb2ludAorICogd2hlcmUgdGhlcmUgbWlnaHQgYmUgbm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LCB1c2UKKyAqIHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biBvbiBEZWNpbWFsRm9ybWF0LgorICogPHA+CisgKiBZb3UgY2FuIGFsc28gdXNlIGZvcm1zIG9mIHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gYW5kIDxjb2RlPmZvcm1hdDwvY29kZT4KKyAqIG1ldGhvZHMgd2l0aCA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBhbmQgPGNvZGU+RmllbGRQb3NpdGlvbjwvY29kZT4gdG8KKyAqIGFsbG93IHlvdSB0bzoKKyAqIDx1bD4KKyAqIDxsaT4gcHJvZ3Jlc3NpdmVseSBwYXJzZSB0aHJvdWdoIHBpZWNlcyBvZiBhIHN0cmluZworICogPGxpPiBhbGlnbiB0aGUgZGVjaW1hbCBwb2ludCBhbmQgb3RoZXIgYXJlYXMKKyAqIDwvdWw+CisgKiBGb3IgZXhhbXBsZSwgeW91IGNhbiBhbGlnbiBudW1iZXJzIGluIHR3byB3YXlzOgorICogPG9sPgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIGEgbW9ub3NwYWNlZCBmb250IHdpdGggc3BhY2luZyBmb3IgYWxpZ25tZW50LAorICogICAgICB5b3UgY2FuIHBhc3MgdGhlIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IGluIHlvdXIgZm9ybWF0IGNhbGwsIHdpdGgKKyAqICAgICAgPGNvZGU+ZmllbGQ8L2NvZGU+ID0gPGNvZGU+SU5URUdFUl9GSUVMRDwvY29kZT4uIE9uIG91dHB1dCwKKyAqICAgICAgPGNvZGU+Z2V0RW5kSW5kZXg8L2NvZGU+IHdpbGwgYmUgc2V0IHRvIHRoZSBvZmZzZXQgYmV0d2VlbiB0aGUKKyAqICAgICAgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIGludGVnZXIgYW5kIHRoZSBkZWNpbWFsLiBBZGQKKyAqICAgICAgKGRlc2lyZWRTcGFjZUNvdW50IC0gZ2V0RW5kSW5kZXgpIHNwYWNlcyBhdCB0aGUgZnJvbnQgb2YgdGhlIHN0cmluZy4KKyAqCisgKiA8bGk+IElmIHlvdSBhcmUgdXNpbmcgcHJvcG9ydGlvbmFsIGZvbnRzLAorICogICAgICBpbnN0ZWFkIG9mIHBhZGRpbmcgd2l0aCBzcGFjZXMsIG1lYXN1cmUgdGhlIHdpZHRoCisgKiAgICAgIG9mIHRoZSBzdHJpbmcgaW4gcGl4ZWxzIGZyb20gdGhlIHN0YXJ0IHRvIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPi4KKyAqICAgICAgVGhlbiBtb3ZlIHRoZSBwZW4gYnkKKyAqICAgICAgKGRlc2lyZWRQaXhlbFdpZHRoIC0gd2lkdGhUb0FsaWdubWVudFBvaW50KSBiZWZvcmUgZHJhd2luZyB0aGUgdGV4dC4KKyAqICAgICAgSXQgYWxzbyB3b3JrcyB3aGVyZSB0aGVyZSBpcyBubyBkZWNpbWFsLCBidXQgcG9zc2libHkgYWRkaXRpb25hbAorICogICAgICBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQsIGUuZy4sIHdpdGggcGFyZW50aGVzZXMgaW4gbmVnYXRpdmUKKyAqICAgICAgbnVtYmVyczogIigxMikiIGZvciAtMTIuCisgKiA8L29sPgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICogPHA+CisgKiBOdW1iZXIgZm9ybWF0cyBhcmUgZ2VuZXJhbGx5IG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSAKKyAqIHNlcGFyYXRlIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LiAKKyAqIDxwPgorICoKKyAqIDxoND5EZWNpbWFsRm9ybWF0PC9oND4KKyAqIDxwPkRlY2ltYWxGb3JtYXQgaXMgdGhlIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIE51bWJlckZvcm1hdCwgYW5kIHRoZQorICogTnVtYmVyRm9ybWF0IEFQSSBpcyBlc3NlbnRpYWxseSBhbiBhYnN0cmFjdGlvbiBmcm9tIERlY2ltYWxGb3JtYXQncyBBUEkuCisgKiBSZWZlciB0byBEZWNpbWFsRm9ybWF0IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgQVBJLjwvcD4KKyAqCisgKiBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogc2VlICAgICAgICAgIGphdmEudGV4dC5DaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBIZWxlbmEgU2hpaAorICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBOdW1iZXJGb3JtYXQgZXh0ZW5kcyBVRm9ybWF0IHsKKworICAgIC8vIENvbnN0YW50cyB1c2VkIGJ5IGZhY3RvcnkgbWV0aG9kcyB0byBzcGVjaWZ5IGEgc3R5bGUgb2YgZm9ybWF0LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1CRVJTVFlMRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZU1RZTEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQRVJDRU5UU1RZTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDU1RZTEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSU1RZTEUgPSA0OworCisgICAgLyoqCisgICAgICogRmllbGQgY29uc3RhbnQgdXNlZCB0byBjb25zdHJ1Y3QgYSBGaWVsZFBvc2l0aW9uIG9iamVjdC4gU2lnbmlmaWVzIHRoYXQKKyAgICAgKiB0aGUgcG9zaXRpb24gb2YgdGhlIGludGVnZXIgcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIGNvbnN0YW50IHVzZWQgdG8gY29uc3RydWN0IGEgRmllbGRQb3NpdGlvbiBvYmplY3QuIFNpZ25pZmllcyB0aGF0CisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIGEgZm9ybWF0dGVkIG51bWJlciBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRmllbGRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX0ZJRUxEID0gMTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGFuIG9iamVjdC4gIENoYW5nZTogcmVjb2duaXplcyA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICBpZiAobnVtYmVyIGluc3RhbmNlb2YgTG9uZykgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoKExvbmcpbnVtYmVyKS5sb25nVmFsdWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBCaWdJbnRlZ2VyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChCaWdJbnRlZ2VyKSBudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChqYXZhLm1hdGguQmlnRGVjaW1hbCkgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworLy8jZW5kaWYKKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCkgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIEN1cnJlbmN5QW1vdW50KSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChDdXJyZW5jeUFtb3VudCludW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCgoTnVtYmVyKW51bWJlcikuZG91YmxlVmFsdWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBmb3JtYXQgZ2l2ZW4gT2JqZWN0IGFzIGEgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwYXJzZVBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlcixuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKDE5KTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgZm9ybWF0KG51bWJlciwgYnVmLCBwb3MpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBmb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBmb3JtYXQgYW4gSUNVIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQ3VycmVuY3lBbW91bnQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoQ3VycmVuY3lBbW91bnQgY3VyckFtdCkgeworICAgICAgICByZXR1cm4gZm9ybWF0KGN1cnJBbXQsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOyAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOworLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQ3VycmVuY3lBbW91bnQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChDdXJyZW5jeUFtb3VudCBjdXJyQW10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24gLS0gc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAgICAgICAgQ3VycmVuY3kgc2F2ZSA9IGdldEN1cnJlbmN5KCksIGN1cnIgPSBjdXJyQW10LmdldEN1cnJlbmN5KCk7CisgICAgICAgIGJvb2xlYW4gc2FtZSA9IGN1cnIuZXF1YWxzKHNhdmUpOworICAgICAgICBpZiAoIXNhbWUpIHNldEN1cnJlbmN5KGN1cnIpOworICAgICAgICBmb3JtYXQoY3VyckFtdC5nZXROdW1iZXIoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgaWYgKCFzYW1lKSBzZXRDdXJyZW5jeShzYXZlKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIExvbmcgaWYgcG9zc2libGUgKGUuZy4sIHdpdGhpbiB0aGUgcmFuZ2UgW0xvbmcuTUlOX1ZBTFVFLAorICAgICAqIExvbmcuTUFYX1ZBTFVFXSBhbmQgd2l0aCBubyBkZWNpbWFscyksIG90aGVyd2lzZSBhIERvdWJsZS4KKyAgICAgKiBJZiBJbnRlZ2VyT25seSBpcyBzZXQsIHdpbGwgc3RvcCBhdCBhIGRlY2ltYWwKKyAgICAgKiBwb2ludCAob3IgZXF1aXZhbGVudDsgZS5nLiwgZm9yIHJhdGlvbmFsIG51bWJlcnMgIjEgMi8zIiwgd2lsbCBzdG9wCisgICAgICogYWZ0ZXIgdGhlIDEpLgorICAgICAqIERvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbjsgaWYgbm8gb2JqZWN0IGNhbiBiZSBwYXJzZWQsIGluZGV4IGlzCisgICAgICogdW5jaGFuZ2VkIQorICAgICAqIEBzZWUgI2lzUGFyc2VJbnRlZ2VyT25seQorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNwYXJzZU9iamVjdChTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHByb2R1Y2UgYSBudW1iZXIuCisgICAgICogVGhlIG1ldGhvZCBtaWdodCBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgQSBTdHJpbmcgd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBIE51bWJlciBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZyAKKyAgICAgKiBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzZWUgI2Zvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIC8vQnVnIDQzNzUzOTkgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBOdW1iZXIgcmVzdWx0ID0gcGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbnBhcnNlYWJsZSBudW1iZXI6IFwiIiArIHRleHQgKyAnIicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGdpdmVuIHN0cmluZyBhcyBhIEN1cnJlbmN5QW1vdW50LiAgVW5saWtlCisgICAgICogdGhlIHBhcnNlKCkgbWV0aG9kLCB0aGlzIG1ldGhvZCB3aWxsIGF0dGVtcHQgdG8gcGFyc2UgYSBnZW5lcmljCisgICAgICogY3VycmVuY3kgbmFtZSwgc2VhcmNoaW5nIGZvciBhIG1hdGNoIG9mIHRoaXMgb2JqZWN0J3MgbG9jYWxlJ3MKKyAgICAgKiBjdXJyZW5jeSBkaXNwbGF5IG5hbWVzLCBvciBmb3IgYSAzLWxldHRlciBJU08gY3VycmVuY3kgY29kZS4KKyAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGZhaWwgaWYgdGhpcyBmb3JtYXQgaXMgbm90IGEgY3VycmVuY3kgZm9ybWF0LAorICAgICAqIHRoYXQgaXMsIGlmIGl0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGN1cnJlbmN5IHBhdHRlcm4gc3ltYm9sCisgICAgICogKFUrMDBBNCkgaW4gaXRzIHByZWZpeCBvciBzdWZmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBvcyBpbnB1dC1vdXRwdXQgcG9zaXRpb247IG9uIGlucHV0LCB0aGUgcG9zaXRpb24gd2l0aGluCisgICAgICogdGV4dCB0byBtYXRjaDsgbXVzdCBoYXZlIDAgPD0gcG9zLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOworICAgICAqIG9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyLiBJZgorICAgICAqIHRoZSBwYXJzZSBmYWlscywgdGhlIHBvc2l0aW9uIGluIHVuY2hhbmdlZCB1cG9uIG91dHB1dC4KKyAgICAgKiBAcmV0dXJuIGEgQ3VycmVuY3lBbW91bnQsIG9yIG51bGwgdXBvbiBmYWlsdXJlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgQ3VycmVuY3lBbW91bnQgcGFyc2VDdXJyZW5jeShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvbmx5IC0tIHN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgICAgICAgIE51bWJlciBuID0gcGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgcmV0dXJuIG4gPT0gbnVsbCA/IG51bGwgOiBuZXcgQ3VycmVuY3lBbW91bnQobiwgZ2V0RWZmZWN0aXZlQ3VycmVuY3koKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZm9ybWF0IHdpbGwgcGFyc2UgbnVtYmVycyBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEZvciBleGFtcGxlIGluIHRoZSBFbmdsaXNoIGxvY2FsZSwgd2l0aCBQYXJzZUludGVnZXJPbmx5IHRydWUsIHRoZQorICAgICAqIHN0cmluZyAiMTIzNC4iIHdvdWxkIGJlIHBhcnNlZCBhcyB0aGUgaW50ZWdlciB2YWx1ZSAxMjM0IGFuZCBwYXJzaW5nCisgICAgICogd291bGQgc3RvcCBhdCB0aGUgIi4iIGNoYXJhY3Rlci4gIFRoZSBkZWNpbWFsIHNlcGFyYXRvciBhY2NlcHRlZAorICAgICAqIGJ5IHRoZSBwYXJzZSBvcGVyYXRpb24gaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBzdWJjbGFzcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB3aWxsIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1BhcnNlSW50ZWdlck9ubHkoKSB7CisgICAgICAgIHJldHVybiBwYXJzZUludGVnZXJPbmx5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBvciBub3QgbnVtYmVycyBzaG91bGQgYmUgcGFyc2VkIGFzIGludGVnZXJzIG9ubHkuCisgICAgICogQHBhcmFtIHZhbHVlIHRydWUgaWYgdGhpcyBzaG91bGQgcGFyc2UgaW50ZWdlcnMgb25seQorICAgICAqIEBzZWUgI2lzUGFyc2VJbnRlZ2VyT25seQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhcnNlSW50ZWdlck9ubHkoYm9vbGVhbiB2YWx1ZSkgeworICAgICAgICBwYXJzZUludGVnZXJPbmx5ID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHN0cmljdCBwYXJzaW5nIGlzIGluIGVmZmVjdC4gIFdoZW4gdGhpcyBpcyB0cnVlLCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgY29uZGl0aW9ucyBjYXVzZSBhIHBhcnNlIGZhaWx1cmUgKGV4YW1wbGVzIHVzZSB0aGUgcGF0dGVybiAiIywjIzAuIyIpOjx1bD4KKyAgICAgKiA8bGk+TGVhZGluZyB6ZXJvczxicj4KKyAgICAgKiAnMDAnLCAnMDEyMycgZmFpbCB0aGUgcGFyc2UsIGJ1dCAnMCcgYW5kICcwLjAwMScgcGFzczwvbGk+CisgICAgICogPGxpPkxlYWRpbmcgb3IgZG91YmxlZCBncm91cGluZyBzZXBhcmF0b3JzPGJyPgorICAgICAqICcsMTIzJyBhbmQgJzEsLDIzNCIgZmFpbDwvbGk+CisgICAgICogPGxpPkdyb3VwcyBvZiBpbmNvcnJlY3QgbGVuZ3RoIHdoZW4gZ3JvdXBpbmcgaXMgdXNlZDxicj4KKyAgICAgKiAnMSwyMycgYW5kICcxMjM0LDU2NycgZmFpbCwgYnV0ICcxMjM0JyBwYXNzZXM8L2xpPgorICAgICAqIDxsaT5Hcm91cGluZyBzZXBhcmF0b3JzIHVzZWQgaW4gbnVtYmVycyBmb2xsb3dlZCBieSBleHBvbmVudHM8YnI+CisgICAgICogJzEsMjM0RTUnIGZhaWxzLCBidXQgJzEyMzRFNScgYW5kICcxLDIzNEUnIHBhc3MgKCdFJyBpcyBub3QgYW4gZXhwb25lbnQgd2hlbgorICAgICAqIG5vdCBmb2xsb3dlZCBieSBhIG51bWJlcik8L2xpPgorICAgICAqIDwvdWw+CisgICAgICogV2hlbiBzdHJpY3QgcGFyc2luZyBpcyBvZmYsIGxlYWRpbmcgemVyb3MgYW5kIGFsbCBncm91cGluZyBzZXBhcmF0b3JzIGFyZSBpZ25vcmVkLgorICAgICAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHZhbHVlIFRydWUgdG8gZW5hYmxlIHN0cmljdCBwYXJzaW5nLiAgRGVmYXVsdCBpcyBmYWxzZS4KKyAgICAgKiBAc2VlICNpc1BhcnNlU3RyaWN0CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJzZVN0cmljdChib29sZWFuIHZhbHVlKSB7CisgICAgICAgIHBhcnNlU3RyaWN0ID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgc3RyaWN0IHBhcnNpbmcgaXMgaW4gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdHJpY3QgcGFyc2luZyBpcyBpbiBlZmZlY3QKKyAgICAgKiBAc2VlICNzZXRQYXJzZVN0cmljdAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNQYXJzZVN0cmljdCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlU3RyaWN0OworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT0gTG9jYWxlIFN0dWZmID09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBUaGUgZGVmYXVsdCBmb3JtYXQgaXMgb25lIG9mIHRoZSBzdHlsZXMgcHJvdmlkZWQgYnkgdGhlIG90aGVyCisgICAgICogZmFjdG9yeSBtZXRob2RzOiBnZXROdW1iZXJJbnN0YW5jZSwgZ2V0SW50ZWdlckluc3RhbmNlLAorICAgICAqIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgaW50ZWdlciB2YWx1ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAvL0J1ZyA0NDA4MDY2IFtSaWNoYXJkL0dDTF0KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnRlZ2VySW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgbnVtYmVyIGZvcm1hdCBpcyBuZWVkZWQKKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgaW50ZWdlciB2YWx1ZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgQ1VSUkVOQ1lTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgcGVyY2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBQRVJDRU5UU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm5zIGEgc2NpZW50aWZpYyBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBzY2llbnRpZmljIG51bWJlciBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRTY2llbnRpZmljSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm5zIGEgc2NpZW50aWZpYyBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBzY2llbnRpZmljIG51bWJlciBmb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvLyA9PT09PSBGYWN0b3J5IHN0dWZmID09PT09CisgICAgLyoqCisgICAgICogQSBOdW1iZXJGb3JtYXRGYWN0b3J5IGlzIHVzZWQgdG8gcmVnaXN0ZXIgbmV3IG51bWJlciBmb3JtYXRzLiAgVGhlIGZhY3RvcnkKKyAgICAgKiBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYW55IG9mIHRoZSBwcmVkZWZpbmVkIGZvcm1hdHMgZm9yIGVhY2ggbG9jYWxlIGl0CisgICAgICogc3VwcG9ydHMuICBXaGVuIHJlZ2lzdGVyZWQsIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzIGV4dGVuZCBvciBvdmVycmlkZSB0aGUKKyAgICAgKiBsb2NhbGVzIGFscmVhZHkgc3VwcG9ydGVkIGJ5IElDVS4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gYXMgb2YgSUNVNEogMy4yLCB0aGUgZGVmYXVsdCBBUEkgZm9yIE51bWJlckZvcm1hdEZhY3RvcnkgdXNlcworICAgICAqIFVMb2NhbGUgaW5zdGVhZCBvZiBMb2NhbGUuICBJbnN0ZWFkIG9mIG92ZXJyaWRpbmcgY3JlYXRlRm9ybWF0KExvY2FsZSwgaW50KSwKKyAgICAgKiBuZXcgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZSBjcmVhdGVGYWN0b3J5KFVMb2NhbGUsIGludCkuICBOb3RlIHRoYXQKKyAgICAgKiBvbmUgb2YgdGhlc2UgdHdvIG1ldGhvZHMgPGI+TVVTVDwvYj4gYmUgb3ZlcnJpZGRlbiBvciBlbHNlIGFuIGluZmluaXRlCisgICAgICogbG9vcCB3aWxsIG9jY3VyLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBOdW1iZXJGb3JtYXRGYWN0b3J5IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhIGRlZmF1bHQgbnVtYmVyIGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfTlVNQkVSID0gTlVNQkVSU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhIGN1cnJlbmN5IGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfQ1VSUkVOQ1kgPSBDVVJSRU5DWVNUWUxFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZm9ybWF0IHJlcXVlc3RpbmcgYSBwZXJjZW50IGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfUEVSQ0VOVCA9IFBFUkNFTlRTVFlMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVmFsdWUgcGFzc2VkIHRvIGZvcm1hdCByZXF1ZXN0aW5nIGEgc2NpZW50aWZpYyBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX1NDSUVOVElGSUMgPSBTQ0lFTlRJRklDU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhbiBpbnRlZ2VyIGZvcm1hdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfSU5URUdFUiA9IElOVEVHRVJTVFlMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZmFjdG9yeSBpcyB2aXNpYmxlLiAgRGVmYXVsdCBpcyB0cnVlLgorICAgICAgICAgKiBJZiBub3QgdmlzaWJsZSwgdGhlIGxvY2FsZXMgc3VwcG9ydGVkIGJ5IHRoaXMgZmFjdG9yeSB3aWxsIG5vdAorICAgICAgICAgKiBiZSBsaXN0ZWQgYnkgZ2V0QXZhaWxhYmxlTG9jYWxlcy4gIFRoaXMgdmFsdWUgbXVzdCBub3QgY2hhbmdlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGZhY3RvcnkgaXMgdmlzaWJsZS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIHB1YmxpYyBib29sZWFuIHZpc2libGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhbiBpbW11dGFibGUgY29sbGVjdGlvbiBvZiB0aGUgbG9jYWxlIG5hbWVzIGRpcmVjdGx5IAorICAgICAgICAgKiBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5LgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBzdXBwb3J0ZWQgbG9jYWxlIG5hbWVzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgICBwdWJsaWMgYWJzdHJhY3QgU2V0IGdldFN1cHBvcnRlZExvY2FsZU5hbWVzKCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBudW1iZXIgZm9ybWF0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4gIElmIHRoZSBsb2NhbGUgaXMgc3VwcG9ydGVkLCBidXQKKyAgICAgICAgICogdGhlIHR5cGUgaXMgbm90IHByb3ZpZGVkIGJ5IHRoaXMgc2VydmljZSwgcmV0dXJuIG51bGwuICBPdGhlcndpc2UKKyAgICAgICAgICogcmV0dXJuIGFuIGFwcHJvcHJpYXRlIGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC4KKyAgICAgICAgICogPGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgaW1wbGVtZW50YXRpb25zIHNob3VsZCBvdmVycmlkZQorICAgICAgICAgKiB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGNyZWF0ZUZvcm1hdChMb2NhbGUsIGludCkuCisgICAgICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBmb3JtYXQKKyAgICAgICAgICogQHBhcmFtIGZvcm1hdFR5cGUgdGhlIHR5cGUgb2YgZm9ybWF0CisgICAgICAgICAqIEByZXR1cm4gdGhlIE51bWJlckZvcm1hdCwgb3IgbnVsbC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChVTG9jYWxlIGxvYywgaW50IGZvcm1hdFR5cGUpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtYXQobG9jLnRvTG9jYWxlKCksIGZvcm1hdFR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBudW1iZXIgZm9ybWF0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgSWYgdGhlIGxvY2FsZQorICAgICAgICAgKiBpcyBub3Qgc3VwcG9ydGVkLCByZXR1cm4gbnVsbC4gIElmIHRoZSBsb2NhbGUgaXMgc3VwcG9ydGVkLCBidXQKKyAgICAgICAgICogdGhlIHR5cGUgaXMgbm90IHByb3ZpZGVkIGJ5IHRoaXMgc2VydmljZSwgcmV0dXJuIG51bGwuICBPdGhlcndpc2UKKyAgICAgICAgICogcmV0dXJuIGFuIGFwcHJvcHJpYXRlIGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC4KKyAgICAgICAgICogPGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgY3JlYXRlRm9ybWF0KFVMb2NhbGUsIGludCkgc2hvdWxkIGJlCisgICAgICAgICAqIG92ZXJyaWRkZW4gaW5zdGVhZCBvZiB0aGlzIG1ldGhvZC4gIFRoaXMgbWV0aG9kIGlzIG5vIGxvbmdlciAKKyAgICAgICAgICogYWJzdHJhY3QgYW5kIGRlbGVnYXRlcyB0byB0aGF0IG1ldGhvZC4KKyAgICAgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB3aGljaCB0byBjcmVhdGUgdGhlIGZvcm1hdAorICAgICAgICAgKiBAcGFyYW0gZm9ybWF0VHlwZSB0aGUgdHlwZSBvZiBmb3JtYXQKKyAgICAgICAgICogQHJldHVybiB0aGUgTnVtYmVyRm9ybWF0LCBvciBudWxsLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KExvY2FsZSBsb2MsIGludCBmb3JtYXRUeXBlKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlRm9ybWF0KFVMb2NhbGUuZm9yTG9jYWxlKGxvYyksIGZvcm1hdFR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIE51bWJlckZvcm1hdEZhY3RvcnkoKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIE51bWJlckZvcm1hdEZhY3RvcnkgdGhhdCBzdXBwb3J0cyBhIHNpbmdsZSBsb2NhbGUuICBJdCBjYW4gYmUgdmlzaWJsZSBvciBpbnZpc2libGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IGV4dGVuZHMgTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgIGZpbmFsIFNldCBsb2NhbGVOYW1lczsKKyAgICAgICAgZmluYWwgYm9vbGVhbiB2aXNpYmxlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHRoaXMobG9jYWxlLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkoTG9jYWxlIGxvY2FsZSwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgICAgICBsb2NhbGVOYW1lcyA9IENvbGxlY3Rpb25zLnNpbmdsZXRvbihVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLmdldEJhc2VOYW1lKCkpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICB0aGlzKGxvY2FsZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KFVMb2NhbGUgbG9jYWxlLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIGxvY2FsZU5hbWVzID0gQ29sbGVjdGlvbnMuc2luZ2xldG9uKGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiB2aXNpYmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU2V0IGdldFN1cHBvcnRlZExvY2FsZU5hbWVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZU5hbWVzOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2hpbSBzbyB3ZSBjYW4gYnVpbGQgd2l0aG91dCBzZXJ2aWNlIGNvZGUKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0U2hpbSB7CisgICAgICAgIGFic3RyYWN0IExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3RlckZhY3RvcnkoTnVtYmVyRm9ybWF0RmFjdG9yeSBmKTsKKyAgICAgICAgYWJzdHJhY3QgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrKTsKKyAgICAgICAgYWJzdHJhY3QgTnVtYmVyRm9ybWF0IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgbCwgaW50IGspOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdFNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXRTaGltIGdldFNoaW0oKSB7CisgICAgICAgIC8vIE5vdGU6IHRoaXMgaW5zdGFudGlhdGlvbiBpcyBzYWZlIG9uIGxvb3NlLW1lbW9yeS1tb2RlbCBjb25maWd1cmF0aW9ucworICAgICAgICAvLyBkZXNwaXRlIGxhY2sgb2Ygc3luY2hyb25pemF0aW9uLCBzaW5jZSB0aGUgc2hpbSBpbnN0YW5jZSBoYXMgbm8gc3RhdGUtLQorICAgICAgICAvLyBpdCdzIGFsbCBpbiB0aGUgY2xhc3MgaW5pdC4gIFRoZSB3b3JzdCBwcm9ibGVtIGlzIHdlIG1pZ2h0IGluc3RhbnRpYXRlCisgICAgICAgIC8vIHR3byBzaGltIGluc3RhbmNlcywgYnV0IHRoZXknbGwgc2hhcmUgdGhlIHNhbWUgc3RhdGUgc28gdGhhdCdzIG9rLgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0U2VydmljZVNoaW0iKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKE51bWJlckZvcm1hdFNoaW0pY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBuZXcgTnVtYmVyRm9ybWF0RmFjdG9yeS4gIFRoZSBmYWN0b3J5IGlzIGFkb3B0ZWQgYnkKKyAgICAgKiB0aGUgc2VydmljZSBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQuICBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEKKyAgICAgKiBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gZmFjdG9yeSB0aGUgZmFjdG9yeSB0byByZWdpc3RlcgorICAgICAqIEByZXR1cm4gYSBrZXkgd2l0aCB3aGljaCB0byB1bnJlZ2lzdGVyIHRoZSBmYWN0b3J5CisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciB0aGUgZmFjdG9yeSBvciBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkgKG9idGFpbmVkIGZyb20KKyAgICAgKiByZWdpc3Rlckluc3RhbmNlIG9yIHJlZ2lzdGVyRmFjdG9yeSkuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IGEga2V5IG9idGFpbmVkIGZyb20gcmVnaXN0ZXJGYWN0b3J5CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3Qgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5S2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaGltLnVucmVnaXN0ZXIocmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIC8vID09PT09IEVuZCBvZiBmYWN0b3J5IHN0dWZmID09PT09CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbWF4aW11bUludGVnZXJEaWdpdHMgKiAzNyArIG1heEZyYWN0aW9uRGlnaXRzOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzLiAgVHdvIE51bWJlckZvcm1hdHMgYXJlIGVxdWFsIGlmIHRoZXkgYXJlIG9mIHRoZSBzYW1lIGNsYXNzCisgICAgICogYW5kIHRoZSBzZXR0aW5ncyAoZ3JvdXBpbmdVc2VkLCBwYXJzZUludGVnZXJPbmx5LCBtYXhpbXVtSW50ZWdlckRpZ2l0cywgZXRjLgorICAgICAqIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgZXF1YWwgdG8gdGhpcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBOdW1iZXJGb3JtYXQgb3RoZXIgPSAoTnVtYmVyRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAgICAgICAgJiYgbWluaW11bUludGVnZXJEaWdpdHMgPT0gb3RoZXIubWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgICAgICAgICYmIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5taW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIGdyb3VwaW5nVXNlZCA9PSBvdGhlci5ncm91cGluZ1VzZWQKKyAgICAgICAgICAgICYmIHBhcnNlSW50ZWdlck9ubHkgPT0gb3RoZXIucGFyc2VJbnRlZ2VyT25seQorICAgICAgICAgICAgJiYgcGFyc2VTdHJpY3QgPT0gb3RoZXIucGFyc2VTdHJpY3Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIE51bWJlckZvcm1hdCBvdGhlciA9IChOdW1iZXJGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGlzIGZvcm1hdC4gRm9yIGV4YW1wbGUsIGluIHRoZQorICAgICAqIGVuX1VTIGxvY2FsZSwgd2l0aCBncm91cGluZyBvbiwgdGhlIG51bWJlciAxMjM0NTY3IHdpbGwgYmUgZm9ybWF0dGVkCisgICAgICogYXMgIjEsMjM0LDU2NyIuIFRoZSBncm91cGluZyBzZXBhcmF0b3IgYXMgd2VsbCBhcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwCisgICAgICogaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgaXMgZGV0ZXJtaW5lZCBieSBzdWJjbGFzc2VzIG9mIE51bWJlckZvcm1hdC4KKyAgICAgKiBHcm91cGluZyBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZAorICAgICAqIEBzZWUgI3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzR3JvdXBpbmdVc2VkKCkgeworICAgICAgICByZXR1cm4gZ3JvdXBpbmdVc2VkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBvciBub3QgZ3JvdXBpbmcgd2lsbCBiZSB1c2VkIGluIHRoaXMgZm9ybWF0LiAgR3JvdXBpbmcKKyAgICAgKiBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAc2VlICNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0cnVlIHRvIHVzZSBncm91cGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1VzZWQoYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICBncm91cGluZ1VzZWQgPSBuZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA0MCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzIHZhbHVlIGlzIGV4Y2VlZGVkIGlzCisgICAgICogc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtYXhpbXVtSW50ZWdlckRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtaW5pbXVtSW50ZWdlckRpZ2l0cywgdGhlbiBtaW5pbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWF4aW11bUludGVnZXJEaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMpCisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uIHRoZQorICAgICAqIGxlZnQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0IHRoaXMKKyAgICAgKiBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1pbmltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoaXMgbXVzdCBiZSA8PSBtYXhpbXVtSW50ZWdlckRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWluaW11bUludGVnZXJEaWdpdHMgaXMgbW9yZSB0aGFuIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWF4aW11bUludGVnZXJEaWdpdHMsIHRoZW4gbWF4aW11bUludGVnZXJEaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMpCisgICAgICAgICAgICBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9IG1pbmltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbgorICAgICAqIHBvcnRpb24gb2YgYSBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAzLCB3aGljaCBzdWJjbGFzc2VzCisgICAgICogY2FuIG92ZXJyaWRlLiAgV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzCisgICAgICogdmFsdWUgaXMgZXhjZWVkZWQgaXMgc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIAorICAgICAqIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAgCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtYXhpbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWF4aW11bUZyYWN0aW9uRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBUaGUgY29uY3JldGUgc3ViY2xhc3MgbWF5IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gTWF0aC5tYXgoMCxuZXdWYWx1ZSk7CisgICAgICAgIGlmIChtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMpCisgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBtYXhpbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIHdoaWNoIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlLgorICAgICAqIFdoZW4gZm9ybWF0dGluZywgaWYgdGhpcyB2YWx1ZSBpcyBub3QgcmVhY2hlZCwgbnVtYmVycyBhcmUgcGFkZGVkIG9uCisgICAgICogdGhlIHJpZ2h0IHdpdGggdGhlIGxvY2FsZS1zcGVjaWZpYyAnMCcgY2hhcmFjdGVyIHRvIGVuc3VyZSBhdCBsZWFzdAorICAgICAqIHRoaXMgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluaW11bUZyYWN0aW9uRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGlzIG11c3QgYmUgPD0gbWF4aW11bUZyYWN0aW9uRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgZXhjZWVkcyB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1heGltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiAgU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWF4aW11bUZyYWN0aW9uRGlnaXRzIDwgbWluaW11bUZyYWN0aW9uRGlnaXRzKQorICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gbWluaW11bUZyYWN0aW9uRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHksIGlmIHRoaXMgZm9ybWF0IGlzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQuICBJZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsIHRoZW4KKyAgICAgKiB0aGUgY3VycmVuY3kgb2JqZWN0IGlzIHVzZWQgaWYgYW5kIHdoZW4gdGhpcyBvYmplY3QgYmVjb21lcyBhCisgICAgICogY3VycmVuY3kgZm9ybWF0LgorICAgICAqIEBwYXJhbSB0aGVDdXJyZW5jeSBuZXcgY3VycmVuY3kgb2JqZWN0IHRvIHVzZS4gIE1heSBiZSBudWxsIGZvcgorICAgICAqIHNvbWUgc3ViY2xhc3Nlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeShDdXJyZW5jeSB0aGVDdXJyZW5jeSkgeworICAgICAgICBjdXJyZW5jeSA9IHRoZUN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyBtYXkgYmUgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiBjdXJyZW5jeTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVuY3kgaW4gZWZmZWN0IGZvciB0aGlzIGZvcm1hdHRlci4gIFN1YmNsYXNzZXMKKyAgICAgKiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgYXMgbmVlZGVkLiAgVW5saWtlIGdldEN1cnJlbmN5KCksCisgICAgICogdGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIHJldHVybiBudWxsLgorICAgICAqIEByZXR1cm4gYSBub24tbnVsbCBDdXJyZW5jeQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBDdXJyZW5jeSBnZXRFZmZlY3RpdmVDdXJyZW5jeSgpIHsKKyAgICAgICAgQ3VycmVuY3kgYyA9IGdldEN1cnJlbmN5KCk7CisgICAgICAgIGlmIChjID09IG51bGwpIHsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBpZiAodWxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdWxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IEN1cnJlbmN5LmdldEluc3RhbmNlKHVsb2MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLyBIb29rIGZvciBzZXJ2aWNlCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworLy8gICAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworLy8gICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnN0YW5jZShkZXNpcmVkTG9jYWxlLCBjaG9pY2UpOworLy8gICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAvLyBUT0RPOiBzaGltcyBtdXN0IGNhbGwgc2V0TG9jYWxlKCkgb24gb2JqZWN0IHRoZXkgY3JlYXRlCisvLyAgICAgICAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5jcmVhdGVJbnN0YW5jZShkZXNpcmVkTG9jYWxlLCBjaG9pY2UpOworLy8gICAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmNyZWF0ZUluc3RhbmNlKGRlc2lyZWRMb2NhbGUsIGNob2ljZSk7CisgICAgfQorCisgICAgLy8gW05FV10KKyAgICBzdGF0aWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGdldFBhdHRlcm4oZGVzaXJlZExvY2FsZSwgY2hvaWNlKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhkZXNpcmVkTG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIC8vIEhlcmUgd2UgYXNzdW1lIHRoYXQgdGhlIGxvY2FsZSBwYXNzZWQgaW4gaXMgaW4gdGhlIGNhbm9uaWNhbAorICAgICAgICAvLyBmb3JtLCBlLmc6IHB0X1BUX0BjdXJyZW5jeT1QVEUgbm90IHB0X1BUX1BSRUVVUk8KKyAgICAgICAgaWYoY2hvaWNlID09IENVUlJFTkNZU1RZTEUpeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzeW1ib2xzLmdldEN1cnJlbmN5UGF0dGVybigpOworICAgICAgICAgICAgaWYodGVtcCE9bnVsbCl7CisgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigibG9jOiAiICsgZGVzaXJlZExvY2FsZSArICIgY2hvaWNlOiAiICsgY2hvaWNlICsgIiBwYXQ6ICIgKyBwYXR0ZXJuICsgIiBzeW06ICIgKyBzeW1ib2xzICsgIiByZXN1bHQ6ICIgKyBmb3JtYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgICAgIEFkZCBjb2RlcyBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgLS0gdGhpcyBpcyBhbG1vc3QgY2VydGFpbmx5IG5vdCB0aGUgd2F5IHdlIHdhbnQKKyAgICAgICAgLy8gdG8gZG8gdGhpcy4gIGFsaXUgMS82LzIwMDQKKyAgICAgICAgaWYgKGNob2ljZSA9PSBJTlRFR0VSU1RZTEUpIHsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgICAgICBmb3JtYXQuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiB0aGUgYWN0dWFsIGxvY2FsZSBvZiB0aGUgKnBhdHRlcm4qIG1heSBkaWZmZXIgZnJvbSB0aGF0CisgICAgICAgIC8vIGZvciB0aGUgKnN5bWJvbHMqLiAgRm9yIG5vdywgd2UgdXNlIHRoZSBkYXRhIGZvciB0aGUgc3ltYm9scy4KKyAgICAgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgICAgICBVTG9jYWxlIHZhbGlkID0gc3ltYm9scy5nZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICBVTG9jYWxlIGFjdHVhbCA9IHN5bWJvbHMuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSk7CisgICAgICAgIGZvcm1hdC5zZXRMb2NhbGUodmFsaWQsIGFjdHVhbCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZm9ybWF0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUgYW5kIGNob2ljZS4KKyAgICAgKiBAcGFyYW0gZm9yTG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGNob2ljZSB0aGUgcGF0dGVybiBmb3JtYXQuCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybgorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjQgc3ViY2xhc3NlcnMgc2hvdWxkIG92ZXJyaWRlIGdldFBhdHRlcm4oVUxvY2FsZSwgaW50KSBpbnN0ZWFkIG9mIHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgU3RyaW5nIGdldFBhdHRlcm4oTG9jYWxlIGZvckxvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICByZXR1cm4gZ2V0UGF0dGVybihVTG9jYWxlLmZvckxvY2FsZShmb3JMb2NhbGUpLCBjaG9pY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUgYW5kIGNob2ljZS4KKyAgICAgKiBAcGFyYW0gZm9yTG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGNob2ljZSB0aGUgcGF0dGVybiBmb3JtYXQuCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBTdHJpbmcgZ2V0UGF0dGVybihVTG9jYWxlIGZvckxvY2FsZSwgaW50IGNob2ljZSkgeworCisgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgY29kZSB0YWtlcyBjYXJlIG9mIGEgZmV3IGNhc2VzIHdoZXJlIHRoZQorICAgICAgICAgKiByZXNvdXJjZSBkYXRhIGluIHRoZSB1bmRlcmx5aW5nIEpESyBsYWdzIHRoZSBuZXcgZmVhdHVyZXMKKyAgICAgICAgICogd2UgaGF2ZSBhZGRlZCB0byBJQ1U0Sjogc2NpZW50aWZpYyBub3RhdGlvbiwgcm91bmRpbmcsIGFuZAorICAgICAgICAgKiBzZWNvbmRhcnkgZ3JvdXBpbmcuCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGRldGVjdCB0aGVzZSBjYXNlcyBoZXJlIGFuZCByZXR1cm4gdmFyaW91cyBoYXJkLWNvZGVkCisgICAgICAgICAqIHJlc291cmNlIGRhdGEuICBUaGlzIGlzIHRoZSBzaW1wbGVzdCBzb2x1dGlvbiBmb3Igbm93LCBidXQKKyAgICAgICAgICogaXQgaXMgbm90IGEgZ29vZCBsb25nLXRlcm0gbWVjaGFuaXNtLgorICAgICAgICAgKiAKKyAgICAgICAgICogV2Ugc2hvdWxkIHJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSBkYXRhLWRyaXZlbiBtZWNoYW5pc20KKyAgICAgICAgICogdGhhdCByZWFkcyB0aGUgYnVuZGxlIGNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50cworICAgICAgICAgKiBhbmQgcGFyc2VzIGFuIGV4Y2VwdGlvbiB0YWJsZSB0aGF0IG92ZXJyaWRlcyB0aGUgc3RhbmRhcmQKKyAgICAgICAgICogZGF0YSBhdCBqYXZhLnRleHQucmVzb3VyY2UuTG9jYWxlRWxlbWVudHMqLmphdmEuCisgICAgICAgICAqIEFsdGVybmF0aXZlbHksIHdlIHNob3VsZCBjcmVhdGUgb3VyIG93biBjb3B5IG9mIHRoZQorICAgICAgICAgKiByZXNvdXJjZSBkYXRhLCBhbmQgdXNlIHRoYXQgZXhjbHVzaXZlbHkuCisgICAgICAgICAqLworCisgICAgICAgIC8vIFRFTVBPUkFSWSwgdW50aWwgd2UgZ2V0IHNjaWVudGlmaWMgcGF0dGVybnMgaW50byB0aGUgbWFpbgorICAgICAgICAvLyByZXNvdXJjZXM6ICBSZXRyaWV2ZSBzY2llbnRpZmljIHBhdHRlcm5zIGZyb20gb3VyIHJlc291cmNlcy4KKyAgICAgICAgaWYgKGNob2ljZSA9PSBTQ0lFTlRJRklDU1RZTEUpIHsKKyAgICAgICAgICAgIC8vIFRlbXBvcmFyaWx5IGhhcmQgY29kZTsgcmV0cmlldmUgZnJvbSByZXNvdXJjZSBsYXRlcgorICAgICAgICAgICAgLypGb3IgSUNVIGNvbXBhdGliaWxpdHkgW1JpY2hhcmQvR0NMXSovCisgICAgICAgICAgICByZXR1cm4gIiNFMCI7CisgICAgICAgICAgICAvLyByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEJhc2VTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKVtTQ0lFTlRJRklDU1RZTEVdOworICAgICAgICB9CisgICAgICAgIC8vIFRFTVBPUkFSWTogVXNlIHJvdW5kaW5nIGZvciBTd2lzcyBjdXJyZW5jeQorICAgICAgICAvL2lmIChjaG9pY2UgPT0gQ1VSUkVOQ1lTVFlMRSAmJgorICAgICAgICAvLyAgICBmb3JMb2NhbGUuZ2V0Q291bnRyeSgpLmVxdWFscygiQ0giKSkgeworICAgICAgICAvLyAgICByZXR1cm4gIidGci4gJyMsIyMwLjA1OydGci4tJyMsIyMwLjA1IjsKKyAgICAgICAgLy99CisgICAgICAgIC8vIFRFTVBPUkFSWTogU3BlY2lhbCBjYXNlIElOIG51bWJlciBmb3JtYXQKKyAgICAgICAgLy9pZiAoY2hvaWNlID09IE5VTUJFUlNUWUxFICYmCisgICAgICAgIC8vICAgIGZvckxvY2FsZS5nZXRDb3VudHJ5KCkuZXF1YWxzKCJJTiIpKSB7CisgICAgICAgIC8vICAgIHJldHVybiAiIywjIywjIzAuIyMjIjsKKyAgICAgICAgLy99CisKKyAgICAgICAgLy8ge2RsZn0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgZm9yTG9jYWxlKTsKKyAgICAgICAgU3RyaW5nW10gbnVtYmVyUGF0dGVybnMgPSByYi5nZXRTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKTsKKworICAgICAgICAvKiB7ZGxmfQorICAgICAgICAvLyBUcnkgdGhlIGNhY2hlIGZpcnN0CisgICAgICAgIFN0cmluZ1tdIG51bWJlclBhdHRlcm5zID0gKFN0cmluZ1tdKSBjYWNoZWRMb2NhbGVEYXRhLmdldChmb3JMb2NhbGUpOworICAgICAgICBpZiAobnVtYmVyUGF0dGVybnMgPT0gbnVsbCkgeworICAgICAgICAgICAgT3ZlcmxheUJ1bmRsZSByZXNvdXJjZSA9IG5ldyBPdmVybGF5QnVuZGxlKG5ldyBTdHJpbmdbXQorICAgICAgICAgICAgICAgIHsgImNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50cyIsIFJFU09VUkNFX0JBU0UgfSwgZm9yTG9jYWxlKTsKKyAgICAgICAgICAgIG51bWJlclBhdHRlcm5zID0gcmVzb3VyY2UuZ2V0U3RyaW5nQXJyYXkoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNhY2hlCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChmb3JMb2NhbGUsIG51bWJlclBhdHRlcm5zKTsgCisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvKkJ1ZyA0NDA4MDY2CisgICAgICAgICBBZGQgY29kZXMgZm9yIHRoZSBuZXcgbWV0aG9kIGdldEludGVnZXJJbnN0YW5jZSgpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaW50IGVudHJ5ID0gKGNob2ljZSA9PSBJTlRFR0VSU1RZTEUpID8gTlVNQkVSU1RZTEUgOiBjaG9pY2U7IC8vW1JpY2hhcmQvR0NMXQorICAgICAgICByZXR1cm4gbnVtYmVyUGF0dGVybnNbZW50cnldOyAvL1tSaWNoYXJkL0dDTF0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaXJzdCwgcmVhZCBpbiB0aGUgZGVmYXVsdCBzZXJpYWxpemFibGUgZGF0YS4KKyAgICAgKgorICAgICAqIFRoZW4sIGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEsIGluZGljYXRpbmcgdGhhdAorICAgICAqIHRoZSBzdHJlYW0gd2FzIHdyaXR0ZW4gYnkgSkRLIDEuMSwKKyAgICAgKiBzZXQgdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+CisgICAgICogdG8gYmUgZXF1YWwgdG8gdGhlIDxjb2RlPmJ5dGU8L2NvZGU+IGZpZWxkcyBzdWNoIGFzIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+LAorICAgICAqIHNpbmNlIHRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZpZWxkcyB3ZXJlIG5vdCBwcmVzZW50IGluIEpESyAxLjEuCisgICAgICogRmluYWxseSwgc2V0IHNlcmlhbFZlcnNpb25PblN0cmVhbSBiYWNrIHRvIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgc28gdGhhdAorICAgICAqIGRlZmF1bHQgc2VyaWFsaXphdGlvbiB3aWxsIHdvcmsgcHJvcGVybHkgaWYgdGhpcyBvYmplY3QgaXMgc3RyZWFtZWQgb3V0IGFnYWluLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBzZXJpYWxpemF0aW9uIGRhdGEgZm9yIHRoaXMgZm9ybWF0CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAvLyBEaWRuJ3QgaGF2ZSBhZGRpdGlvbmFsIGludCBmaWVsZHMsIHJlYXNzaWduIHRvIHVzZSB0aGVtLgorICAgICAgICAgICAgbWF4aW11bUludGVnZXJEaWdpdHMgPSBtYXhJbnRlZ2VyRGlnaXRzOworICAgICAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSBtaW5JbnRlZ2VyRGlnaXRzOworICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gbWF4RnJhY3Rpb25EaWdpdHM7CisgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBtaW5GcmFjdGlvbkRpZ2l0czsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgLypCdWcgNDE4NTc2MQorICAgICAgICAgIFZhbGlkYXRlIHRoZSBtaW4gYW5kIG1heCBmaWVsZHMgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB8fAorICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID4gbWF4aW11bUZyYWN0aW9uRGlnaXRzIHx8CisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA8IDAgfHwgbWluaW11bUZyYWN0aW9uRGlnaXRzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IHJhbmdlIGludmFsaWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSBvdXQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGRhdGEsIGFmdGVyIGZpcnN0IHNldHRpbmcKKyAgICAgKiB0aGUgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gdG8gYmUKKyAgICAgKiBlcXVhbCB0byB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAob3IgdG8gPGNvZGU+Qnl0ZS5NQVhfVkFMVUU8L2NvZGU+LCB3aGljaGV2ZXIgaXMgc21hbGxlciksIGZvciBjb21wYXRpYmlsaXR5CisgICAgICogd2l0aCB0aGUgSkRLIDEuMSB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChPYmplY3RPdXRwdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBtYXhJbnRlZ2VyRGlnaXRzID0gKG1heGltdW1JbnRlZ2VyRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWF4aW11bUludGVnZXJEaWdpdHM7CisgICAgICAgIG1pbkludGVnZXJEaWdpdHMgPSAobWluaW11bUludGVnZXJEaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltaW5pbXVtSW50ZWdlckRpZ2l0czsKKyAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHMgPSAobWF4aW11bUZyYWN0aW9uRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWF4aW11bUZyYWN0aW9uRGlnaXRzOworICAgICAgICBtaW5GcmFjdGlvbkRpZ2l0cyA9IChtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltaW5pbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0V3JpdGVPYmplY3QoKTsKKyAgICB9CisKKy8vIFVudXNlZCAtLSBBbGFuIDIwMDMtMDUKKy8vICAgIC8qKgorLy8gICAgICogQ2FjaGUgdG8gaG9sZCB0aGUgTnVtYmVyUGF0dGVybnMgb2YgYSBMb2NhbGUuCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgIEFkZCBGaWVsZCBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZSB0aGUgZ3JvdXBpbmcgKGkuZS4gdGhvdXNhbmRzKSBzZXBhcmF0b3IgaXMgdXNlZCB3aGVuCisgICAgICogZm9ybWF0dGluZyBhbmQgcGFyc2luZyBudW1iZXJzLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGdyb3VwaW5nVXNlZCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHNldCB0bworICAgICAqIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhJbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5taW5pbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgdXNlZCBpbnN0ZWFkLgorICAgICAqIFdoZW4gd3JpdGluZyB0byBhIHN0cmVhbSwgPGNvZGU+bWluSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlICAgIG1pbkludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyBzZXQgdG8KKyAgICAgKiA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhGcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyB1c2VkIGluc3RlYWQuCisgICAgICogV2hlbiB3cml0aW5nIHRvIGEgc3RyZWFtLCA8Y29kZT5taW5GcmFjdGlvbkRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWluRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIGZvcm1hdCB3aWxsIHBhcnNlIG51bWJlcnMgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VJbnRlZ2VyT25seSA9IGZhbHNlOworCisgICAgLy8gbmV3IGZpZWxkcyBmb3IgMS4yLiAgYnl0ZSBpcyB0b28gc21hbGwgZm9yIGludGVnZXIgZGlnaXRzLgorCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgLyoqCisgICAgICogQ3VycmVuY3kgb2JqZWN0IHVzZWQgdG8gZm9ybWF0IGN1cnJlbmNpZXMuICBTdWJjbGFzc2VzIG1heQorICAgICAqIGlnbm9yZSB0aGlzIGlmIHRoZXkgYXJlIG5vdCBjdXJyZW5jeSBmb3JtYXRzLiAgVGhpcyB3aWxsIGJlCisgICAgICogbnVsbCB1bmxlc3MgYSBzdWJjbGFzcyBzZXRzIGl0IHRvIGEgbm9uLW51bGwgdmFsdWUuCisgICAgICogQHNpbmNlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwcml2YXRlIEN1cnJlbmN5IGN1cnJlbmN5OworCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBEZXNjcmliZXMgdGhlIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBwcmVzZW50IG9uIHRoZSBzdHJlYW0uCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChvciB1bmluaXRpYWxpemVkKTogdGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiAgICAgSW4gdGhpcyB2ZXJzaW9uLCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcworICAgICAqICAgICA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gd2VyZSBub3QgcHJlc2VudCwgYW5kIHRoZSA8Y29kZT5ieXRlPC9jb2RlPgorICAgICAqICAgICBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhJbnRlZ2VyRGlnaXRzPC9jb2RlPiBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogPGxpPjxiPjE8L2I+OiB0aGUgSkRLIDEuMiB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LiAgVGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgKiAgICAgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gYXJlIGlnbm9yZWQsCisgICAgICogICAgIGFuZCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAgICAgYXJlIHVzZWQgaW5zdGVhZC4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4sIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiAoY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPikKKyAgICAgKiBpcyBhbHdheXMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vIFJlbW92ZWQgImltcGxlbWVudHMgQ2xvbmVhYmxlIiBjbGF1c2UuICBOZWVkcyB0byB1cGRhdGUgc2VyaWFsaXphdGlvbgorICAgIC8vIElEIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yMzA4NDYwMTI1NzMzNzEzOTQ0TDsKKworICAgIC8qKgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLiAgUHVibGljIGZvciBjb21wYXRpYmlseSB3aXRoIEpESyB3aGljaCBsZXRzIHRoZQorICAgICAqIGNvbXBpbGVyIGdlbmVyYXRlIGEgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgZXZlbiB0aG91Z2ggdGhpcyBpcworICAgICAqIGFuIGFic3RyYWN0IGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoKSB7CisgICAgfQorCisgICAgLy8gbmV3IGluIElDVTRKIDMuNgorICAgIHByaXZhdGUgYm9vbGVhbiBwYXJzZVN0cmljdDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiBbU3BhcmsvQ0RMXSBUaGUgaW5zdGFuY2VzIG9mIHRoaXMgaW5uZXIgY2xhc3MgYXJlIHVzZWQgYXMgYXR0cmlidXRlIGtleXMgYW5kIHZhbHVlcworICAgICAqIGluIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciB0aGF0CisgICAgICogTnVtYmVyRm9ybWF0LmZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IoKSBtZXRob2QgcmV0dXJucy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyBwdWJsaWMgY29uc3RydWN0b3IgdG8gdGhpcyBjbGFzcywgdGhlIG9ubHkgaW5zdGFuY2VzIGFyZSB0aGUKKyAgICAgKiBjb25zdGFudHMgZGVmaW5lZCBoZXJlLgorICAgICAqIDxwPgorICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmllbGQgZXh0ZW5kcyBGb3JtYXQuRmllbGQgeworICAgICAgICAvLyBnZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNDUxNjI3Mzc0OTkyOTM4NTg0Mkw7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFNJR04gPSBuZXcgRmllbGQoInNpZ24iKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIElOVEVHRVIgPSBuZXcgRmllbGQoImludGVnZXIiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIEZSQUNUSU9OID0gbmV3IEZpZWxkKCJmcmFjdGlvbiIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgRVhQT05FTlQgPSBuZXcgRmllbGQoImV4cG9uZW50Iik7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGaWVsZCBFWFBPTkVOVF9TSUdOID0gbmV3IEZpZWxkKCJleHBvbmVudCBzaWduIik7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDMuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGaWVsZCBFWFBPTkVOVF9TWU1CT0wgPSBuZXcgRmllbGQoImV4cG9uZW50IHN5bWJvbCIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgREVDSU1BTF9TRVBBUkFUT1IgPSBuZXcgRmllbGQoImRlY2ltYWwgc2VwYXJhdG9yIik7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmllbGQgR1JPVVBJTkdfU0VQQVJBVE9SID0gbmV3IEZpZWxkKCJncm91cGluZyBzZXBhcmF0b3IiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFBFUkNFTlQgPSBuZXcgRmllbGQoInBlcmNlbnQiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIFBFUk1JTExFID0gbmV3IEZpZWxkKCJwZXIgbWlsbGUiKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZpZWxkIENVUlJFTkNZID0gbmV3IEZpZWxkKCJjdXJyZW5jeSIpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIE51bWJlckZvcm1hdC5GaWVsZCB3aXRoIHRoZSBnaXZlbiBmaWVsZAorICAgICAgICAgKiBuYW1lLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBGaWVsZChTdHJpbmcgZmllbGROYW1lKSB7CisgICAgICAgICAgICBzdXBlcihmaWVsZE5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIHNlcml6YWxpemF0aW9uIG1ldGhvZCByZXNvbHZlIGluc3RhbmNlcyB0byB0aGUgY29uc3RhbnQKKyAgICAgICAgICogTnVtYmVyRm9ybWF0LkZpZWxkIHZhbHVlcworICAgICAgICAgKiBAc3RhYmxlIElDVSAzLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgcmVhZFJlc29sdmUoKSB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKElOVEVHRVIuZ2V0TmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5URUdFUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoRlJBQ1RJT04uZ2V0TmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRlJBQ1RJT047CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKEVYUE9ORU5ULmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEVYUE9ORU5UOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhFWFBPTkVOVF9TSUdOLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEVYUE9ORU5UX1NJR047CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKEVYUE9ORU5UX1NZTUJPTC5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBFWFBPTkVOVF9TWU1CT0w7CisgICAgICAgICAgICBpZiAodGhpcy5nZXROYW1lKCkuZXF1YWxzKENVUlJFTkNZLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIENVUlJFTkNZOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhERUNJTUFMX1NFUEFSQVRPUi5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBERUNJTUFMX1NFUEFSQVRPUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoR1JPVVBJTkdfU0VQQVJBVE9SLmdldE5hbWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEdST1VQSU5HX1NFUEFSQVRPUjsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoUEVSQ0VOVC5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBQRVJDRU5UOworICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpLmVxdWFscyhQRVJNSUxMRS5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBQRVJNSUxMRTsKKyAgICAgICAgICAgIGlmICh0aGlzLmdldE5hbWUoKS5lcXVhbHMoU0lHTi5nZXROYW1lKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBTSUdOOworCisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9iamVjdEV4Y2VwdGlvbigiQW4gaW52YWxpZCBvYmplY3QuIik7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0U2VydmljZVNoaW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdFNlcnZpY2VTaGltLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4MjI5OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdFNlcnZpY2VTaGltLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLktleTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTG9jYWxlS2V5RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC5OdW1iZXJGb3JtYXRGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworY2xhc3MgTnVtYmVyRm9ybWF0U2VydmljZVNoaW0gZXh0ZW5kcyBOdW1iZXJGb3JtYXQuTnVtYmVyRm9ybWF0U2hpbSB7CisKKyAgICBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE5GRmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgICAgICBwcml2YXRlIE51bWJlckZvcm1hdEZhY3RvcnkgZGVsZWdhdGU7CisKKyAgICAgICAgTkZGYWN0b3J5KE51bWJlckZvcm1hdEZhY3RvcnkgZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGRlbGVnYXRlLnZpc2libGUoKSA/IFZJU0lCTEUgOiBJTlZJU0lCTEUpOworCisgICAgICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVzS2V5KGtleSkpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGVLZXkgbGtleSA9IChMb2NhbGVLZXkpa2V5OworICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbGtleS5jYW5vbmljYWxMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICBpbnQga2luZCA9IGxrZXkua2luZCgpOworCisgICAgICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IGRlbGVnYXRlLmNyZWF0ZUZvcm1hdChsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldEtleShrZXksIG51bGwsIHRoaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXRTdXBwb3J0ZWRMb2NhbGVOYW1lcygpOworICAgICAgICB9CisgICAgfQorCisgICAgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBORkZhY3RvcnkoZmFjdG9yeSkpOworICAgIH0KKworICAgIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpcmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIE51bWJlckZvcm1hdCBjcmVhdGVJbnN0YW5jZShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIGludCBjaG9pY2UpIHsKKworICAgIC8vIHVzZSBzZXJ2aWNlIGNhY2hlCisvLyAgICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworLy8gICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQuY3JlYXRlSW5zdGFuY2UoZGVzaXJlZExvY2FsZSwgY2hvaWNlKTsKKy8vICAgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlW10gYWN0dWFsTG9jID0gbmV3IFVMb2NhbGVbMV07CisgICAgICAgIGlmIChkZXNpcmVkTG9jYWxlLmVxdWFscyhVTG9jYWxlLlJPT1QpKSB7CisgICAgICAgICAgICBkZXNpcmVkTG9jYWxlID0gVUxvY2FsZS5ST09UOworICAgICAgICB9CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSAoTnVtYmVyRm9ybWF0KXNlcnZpY2UuZ2V0KGRlc2lyZWRMb2NhbGUsIGNob2ljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTG9jKTsKKyAgICAgICAgaWYgKGZtdCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJVbmFibGUgdG8gY29uc3RydWN0IE51bWJlckZvcm1hdCIsICIiLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgZm10ID0gKE51bWJlckZvcm1hdClmbXQuY2xvbmUoKTsKKworICAgICAgICBVTG9jYWxlIHVsb2MgPSBhY3R1YWxMb2NbMF07CisgICAgICAgIGZtdC5zZXRMb2NhbGUodWxvYywgdWxvYyk7IC8vIHNlcnZpY2VzIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBhY3R1YWwgJiB2YWxpZAorICAgICAgICByZXR1cm4gZm10OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE5GU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBORlNlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiTnVtYmVyRm9ybWF0Iik7CisKKyAgICAgICAgICAgIGNsYXNzIFJCTnVtYmVyRm9ybWF0RmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlckZvcm1hdC5jcmVhdGVJbnN0YW5jZShsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJGYWN0b3J5KG5ldyBSQk51bWJlckZvcm1hdEZhY3RvcnkoKSk7CisgICAgICAgICAgICBtYXJrRGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIElDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG5ldyBORlNlcnZpY2UoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1B1bnljb2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9QdW55Y29kZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjOTk5NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9QdW55Y29kZS5qYXZhCkBAIC0wLDAgKzEsNDc2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIFBvcnRlZCBjb2RlIGZyb20gSUNVIHB1bnljb2RlLmMgCisgKiBAYXV0aG9yIHJhbQorICovCisKKy8qIFBhY2thZ2UgUHJpdmF0ZSBjbGFzcyAqLworZmluYWwgY2xhc3MgUHVueWNvZGUgeworCisgICAgLyogUHVueWNvZGUgcGFyYW1ldGVycyBmb3IgQm9vdHN0cmluZyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCQVNFICAgICAgICAgICA9IDM2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUTUlOICAgICAgICAgICA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRNQVggICAgICAgICAgID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNLRVcgICAgICAgICAgID0gMzg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERBTVAgICAgICAgICAgID0gNzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX0JJQVMgICA9IDcyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX04gICAgICA9IDB4ODA7CisgICAgCisgICAgLyogIkJhc2ljIiBVbmljb2RlL0FTQ0lJIGNvZGUgcG9pbnRzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiAgICAgICAgID0gMHgyZDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMSU1JVEVSICAgICAgPSBIWVBIRU47CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFpFUk8gICAgICAgICAgID0gMHgzMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTklORSAgICAgICAgICAgPSAweDM5OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTUFMTF9BICAgICAgICA9IDB4NjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNNQUxMX1ogICAgICAgID0gMHg3YTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9BICAgICAgPSAweDQxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX1ogICAgICA9IDB4NWE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9DUF9DT1VOVCAgID0gMjAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVSU5UX01BR0lDICAgICA9IDB4ODAwMDAwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBVTE9OR19NQUdJQyAgID0gMHg4MDAwMDAwMDAwMDAwMDAwTDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRhcHRCaWFzKGludCBkZWx0YSwgaW50IGxlbmd0aCwgYm9vbGVhbiBmaXJzdFRpbWUpeworICAgICAgICBpZihmaXJzdFRpbWUpeworICAgICAgICAgICAgZGVsdGEgLz1EQU1QOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGRlbHRhIC89ICAyOworICAgICAgICB9CisgICAgICAgIGRlbHRhICs9IGRlbHRhL2xlbmd0aDsKKworICAgICAgICBpbnQgY291bnQ9MDsKKyAgICAgICAgZm9yKDsgZGVsdGE+KChCQVNFLVRNSU4pKlRNQVgpLzI7IGNvdW50Kz1CQVNFKSB7CisgICAgICAgICAgICBkZWx0YS89KEJBU0UtVE1JTik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY291bnQrKCgoQkFTRS1UTUlOKzEpKmRlbHRhKS8oZGVsdGErU0tFVykpOyAgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIGJhc2ljVG9EaWdpdFtdIGNvbnRhaW5zIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZQorICAgICAqIHBvaW50IChmb3IgdXNlIGluIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaW4gdGhlIHJhbmdlIDAgdG8KKyAgICAgKiBCQVNFLTEsIG9yIC0xIGlmIGIgaXMgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdICAgIGJhc2ljVG9EaWdpdD0gbmV3IGludFtdeworICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsCisgICAgICAgIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgIDAsICAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwKKyAgICAgICAgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMQorICAgIH07CisKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBhc2NpaUNhc2VNYXAoY2hhciBiLCBib29sZWFuIHVwcGVyY2FzZSkgeworICAgICAgICBpZih1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgIGlmKFNNQUxMX0E8PWIgJiYgYjw9U01BTExfWikgeworICAgICAgICAgICAgICAgIGItPShTTUFMTF9BLUNBUElUQUxfQSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZihDQVBJVEFMX0E8PWIgJiYgYjw9Q0FQSVRBTF9aKSB7CisgICAgICAgICAgICAgICAgYis9KFNNQUxMX0EtQ0FQSVRBTF9BKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9ICAgIAorICAgIC8vL0NMT1ZFUjpPTgorICAgIC8qKgorICAgICAqIGRpZ2l0VG9CYXNpYygpIHJldHVybnMgdGhlIGJhc2ljIGNvZGUgcG9pbnQgd2hvc2UgdmFsdWUKKyAgICAgKiAod2hlbiB1c2VkIGZvciByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGQsIHdoaWNoIG11c3QgYmUgaW4gdGhlCisgICAgICogcmFuZ2UgMCB0byBCQVNFLTEuIFRoZSBsb3dlcmNhc2UgZm9ybSBpcyB1c2VkIHVubGVzcyB0aGUgdXBwZXJjYXNlIGZsYWcgaXMKKyAgICAgKiBub256ZXJvLCBpbiB3aGljaCBjYXNlIHRoZSB1cHBlcmNhc2UgZm9ybSBpcyB1c2VkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZGlnaXRUb0Jhc2ljKGludCBkaWdpdCwgYm9vbGVhbiB1cHBlcmNhc2UpIHsKKyAgICAgICAgLyogIDAuLjI1IG1hcCB0byBBU0NJSSBhLi56IG9yIEEuLlogKi8KKyAgICAgICAgLyogMjYuLjM1IG1hcCB0byBBU0NJSSAwLi45ICAgICAgICAgKi8KKyAgICAgICAgaWYoZGlnaXQ8MjYpIHsKKyAgICAgICAgICAgIGlmKHVwcGVyY2FzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcikoQ0FQSVRBTF9BK2RpZ2l0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKShTTUFMTF9BK2RpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoKFpFUk8tMjYpK2RpZ2l0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBVbmljb2RlIHRvIFB1bnljb2RlLgorICAgICAqIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBub3QgY29udGFpbiBzaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZXMuCisgICAgICogVGhlIG91dHB1dCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5IG9mIEFTQ0lJIGNvZGUgcG9pbnRzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gY2FzZUZsYWdzCisgICAgICogQHJldHVybgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBlbmNvZGUoU3RyaW5nQnVmZmVyIHNyYywgYm9vbGVhbltdIGNhc2VGbGFncykgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgCisgICAgICAgIGludFtdIGNwQnVmZmVyID0gbmV3IGludFtNQVhfQ1BfQ09VTlRdOworICAgICAgICBpbnQgbiwgZGVsdGEsIGhhbmRsZWRDUENvdW50LCBiYXNpY0xlbmd0aCwgZGVzdExlbmd0aCwgYmlhcywgaiwgbSwgcSwgaywgdCwgc3JjQ1BDb3VudDsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAgICAgaW50IHNyY0xlbmd0aCA9IHNyYy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IE1BWF9DUF9DT1VOVDsKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltkZXN0Q2FwYWNpdHldOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvKgorICAgICAgICAgKiBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzIGFuZAorICAgICAgICAgKiBjb252ZXJ0IGV4dGVuZGVkIG9uZXMgdG8gVVRGLTMyIGluIGNwQnVmZmVyIChjYXNlRmxhZyBpbiBzaWduIGJpdCk6CisgICAgICAgICAqLworICAgICAgICBzcmNDUENvdW50PWRlc3RMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgIGZvcihqPTA7IGo8c3JjTGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGlmKHNyY0NQQ291bnQ9PU1BWF9DUF9DT1VOVCkgeworICAgICAgICAgICAgICAgIC8qIHRvbyBtYW55IGlucHV0IGNvZGUgcG9pbnRzICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9c3JjLmNoYXJBdChqKTsKKyAgICAgICAgICAgIGlmKGlzQmFzaWMoYykpIHsKKyAgICAgICAgICAgICAgICBpZihkZXN0TGVuZ3RoPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBjcEJ1ZmZlcltzcmNDUENvdW50KytdPTA7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aF09CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlRmxhZ3MhPW51bGwgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzY2lpQ2FzZU1hcCgoY2hhciljLCBjYXNlRmxhZ3Nbal0pIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2Rlc3RMZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG49KChjYXNlRmxhZ3MhPW51bGwgJiYgY2FzZUZsYWdzW2pdKT8gMSA6IDApPDwzMUw7CisgICAgICAgICAgICAgICAgaWYoIVVURjE2LmlzU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIG58PWM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiAoaisxKTxzcmNMZW5ndGggJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmMuY2hhckF0KGorMSkpKSB7CisgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG58PVVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KGMsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBlcnJvcjogdW5tYXRjaGVkIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXIgZm91bmQiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcEJ1ZmZlcltzcmNDUENvdW50KytdPW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBGaW5pc2ggdGhlIGJhc2ljIHN0cmluZyAtIGlmIGl0IGlzIG5vdCBlbXB0eSAtIHdpdGggYSBkZWxpbWl0ZXIuICovCisgICAgICAgIGJhc2ljTGVuZ3RoPWRlc3RMZW5ndGg7CisgICAgICAgIGlmKGJhc2ljTGVuZ3RoPjApIHsKKyAgICAgICAgICAgIGlmKGRlc3RMZW5ndGg8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgZGVzdFtkZXN0TGVuZ3RoXT1ERUxJTUlURVI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2Rlc3RMZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBoYW5kbGVkQ1BDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBiZWVuIGhhbmRsZWQKKyAgICAgICAgICogYmFzaWNMZW5ndGggaXMgdGhlIG51bWJlciBvZiBiYXNpYyBjb2RlIHBvaW50cworICAgICAgICAgKiBkZXN0TGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcnMgdGhhdCBoYXZlIGJlZW4gb3V0cHV0CisgICAgICAgICAqLworCisgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIHN0YXRlOiAqLworICAgICAgICBuPUlOSVRJQUxfTjsKKyAgICAgICAgZGVsdGE9MDsKKyAgICAgICAgYmlhcz1JTklUSUFMX0JJQVM7CisKKyAgICAgICAgLyogTWFpbiBlbmNvZGluZyBsb29wOiAqLworICAgICAgICBmb3IoaGFuZGxlZENQQ291bnQ9YmFzaWNMZW5ndGg7IGhhbmRsZWRDUENvdW50PHNyY0NQQ291bnQ7IC8qIG5vIG9wICovKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuIGhhbmRsZWQgYWxyZWFkeS4KKyAgICAgICAgICAgICAqIEZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZToKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yKG09MHg3ZmZmZmZmZiwgaj0wOyBqPHNyY0NQQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIHE9Y3BCdWZmZXJbal0mMHg3ZmZmZmZmZjsgLyogcmVtb3ZlIGNhc2UgZmxhZyBmcm9tIHRoZSBzaWduIGJpdCAqLworICAgICAgICAgICAgICAgIGlmKG48PXEgJiYgcTxtKSB7CisgICAgICAgICAgICAgICAgICAgIG09cTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJbmNyZWFzZSBkZWx0YSBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzCisgICAgICAgICAgICAgKiA8bixpPiBzdGF0ZSB0byA8bSwwPiwgYnV0IGd1YXJkIGFnYWluc3Qgb3ZlcmZsb3c6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKG0tbj4oMHg3ZmZmZmZmZi1NQVhfQ1BfQ09VTlQtZGVsdGEpLyhoYW5kbGVkQ1BDb3VudCsxKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlbHRhKz0obS1uKSooaGFuZGxlZENQQ291bnQrMSk7CisgICAgICAgICAgICBuPW07CisKKyAgICAgICAgICAgIC8qIEVuY29kZSBhIHNlcXVlbmNlIG9mIHNhbWUgY29kZSBwb2ludHMgbiAqLworICAgICAgICAgICAgZm9yKGo9MDsgajxzcmNDUENvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBxPWNwQnVmZmVyW2pdJjB4N2ZmZmZmZmY7IC8qIHJlbW92ZSBjYXNlIGZsYWcgZnJvbSB0aGUgc2lnbiBiaXQgKi8KKyAgICAgICAgICAgICAgICBpZihxPG4pIHsKKyAgICAgICAgICAgICAgICAgICAgKytkZWx0YTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYocT09bikgeworICAgICAgICAgICAgICAgICAgICAvKiBSZXByZXNlbnQgZGVsdGEgYXMgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlcjogKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yKHE9ZGVsdGEsIGs9QkFTRTsgLyogbm8gY29uZGl0aW9uICovOyBrKz1CQVNFKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qKiBSQU06IGNvbW1lbnQgb3V0IHRoZSBvbGQgY29kZSBmb3IgY29uZm9ybWFuY2Ugd2l0aCBkcmFmdC1pZXRmLWlkbi1wdW55Y29kZS0wMy50eHQgICAKKworICAgICAgICAgICAgICAgICAgICAgICAgdD1rLWJpYXM7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0PVRNSU47CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYodD5UTUFYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdD1UTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB0PWstYmlhczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHQ8VE1JTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ9VE1JTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihrPj0oYmlhcytUTUFYKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ9VE1BWDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYocTx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RMZW5ndGg8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0TGVuZ3RoKytdPWRpZ2l0VG9CYXNpYyh0KyhxLXQpJShCQVNFLXQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBxPShxLXQpLyhCQVNFLXQpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYoZGVzdExlbmd0aDxkZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aCsrXT1kaWdpdFRvQmFzaWMocSwgKGNwQnVmZmVyW2pdPDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiaWFzPWFkYXB0QmlhcyhkZWx0YSwgaGFuZGxlZENQQ291bnQrMSwoaGFuZGxlZENQQ291bnQ9PWJhc2ljTGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIGRlbHRhPTA7CisgICAgICAgICAgICAgICAgICAgICsraGFuZGxlZENQQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICArK2RlbHRhOworICAgICAgICAgICAgKytuOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoZGVzdCwgMCwgZGVzdExlbmd0aCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNCYXNpYyhpbnQgY2gpeworICAgICAgICByZXR1cm4gKGNoIDwgSU5JVElBTF9OKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNCYXNpY1VwcGVyQ2FzZShpbnQgY2gpeworICAgICAgICByZXR1cm4oIENBUElUQUxfQTw9Y2ggJiYgY2ggPj0gQ0FQSVRBTF9aKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1N1cnJvZ2F0ZShpbnQgY2gpeworICAgICAgICByZXR1cm4gKCgoY2gpJjB4ZmZmZmY4MDApPT0weGQ4MDApOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBQdW55Y29kZSB0byBVbmljb2RlLgorICAgICAqIFRoZSBVbmljb2RlIHN0cmluZyB3aWxsIGJlIGF0IG1vc3QgYXMgbG9uZyBhcyB0aGUgUHVueWNvZGUgc3RyaW5nLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gY2FzZUZsYWdzCisgICAgICogQHJldHVybgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBkZWNvZGUoU3RyaW5nQnVmZmVyIHNyYywgYm9vbGVhbltdIGNhc2VGbGFncykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaW50IHNyY0xlbmd0aCA9IHNyYy5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG4sIGRlc3RMZW5ndGgsIGksIGJpYXMsIGJhc2ljTGVuZ3RoLCBqLCBpbiwgb2xkaSwgdywgaywgZGlnaXQsIHQsCisgICAgICAgICAgICAgICAgZGVzdENQQ291bnQsIGZpcnN0U3VwcGxlbWVudGFyeUluZGV4LCBjcExlbmd0aDsKKyAgICAgICAgY2hhciBiOworICAgICAgICBpbnQgZGVzdENhcGFjaXR5ID0gTUFYX0NQX0NPVU5UOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW2Rlc3RDYXBhY2l0eV07CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czoKKyAgICAgICAgICogTGV0IGJhc2ljTGVuZ3RoIGJlIHRoZSBudW1iZXIgb2YgaW5wdXQgY29kZSBwb2ludHMKKyAgICAgICAgICogYmVmb3JlIHRoZSBsYXN0IGRlbGltaXRlciwgb3IgMCBpZiB0aGVyZSBpcyBub25lLAorICAgICAgICAgKiB0aGVuIGNvcHkgdGhlIGZpcnN0IGJhc2ljTGVuZ3RoIGNvZGUgcG9pbnRzIHRvIHRoZSBvdXRwdXQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB0d28gZm9sbG93aW5nIGxvb3BzIGl0ZXJhdGUgYmFja3dhcmQuCisgICAgICAgICAqLworICAgICAgICBmb3Ioaj1zcmNMZW5ndGg7IGo+MDspIHsKKyAgICAgICAgICAgIGlmKHNyYy5jaGFyQXQoLS1qKT09REVMSU1JVEVSKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGVzdExlbmd0aD1iYXNpY0xlbmd0aD1kZXN0Q1BDb3VudD1qOworCisgICAgICAgIHdoaWxlKGo+MCkgeworICAgICAgICAgICAgYj1zcmMuY2hhckF0KC0taik7CisgICAgICAgICAgICBpZighaXNCYXNpYyhiKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihqPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgIGRlc3Rbal09IGI7CisKKyAgICAgICAgICAgICAgICBpZihjYXNlRmxhZ3MhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZUZsYWdzW2pdPWlzQmFzaWNVcHBlckNhc2UoYik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgc3RhdGU6ICovCisgICAgICAgIG49SU5JVElBTF9OOworICAgICAgICBpPTA7CisgICAgICAgIGJpYXM9SU5JVElBTF9CSUFTOworICAgICAgICBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleD0xMDAwMDAwMDAwOworCisgICAgICAgIC8qCisgICAgICAgICAqIE1haW4gZGVjb2RpbmcgbG9vcDoKKyAgICAgICAgICogU3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55CisgICAgICAgICAqIGJhc2ljIGNvZGUgcG9pbnRzIHdlcmUgY29waWVkOyBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG90aGVyd2lzZS4KKyAgICAgICAgICovCisgICAgICAgIGZvcihpbj1iYXNpY0xlbmd0aD4wID8gYmFzaWNMZW5ndGgrMSA6IDA7IGluPHNyY0xlbmd0aDsgLyogbm8gb3AgKi8pIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBpbiBpcyB0aGUgaW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRvIGJlIGNvbnN1bWVkLCBhbmQKKyAgICAgICAgICAgICAqIGRlc3RDUENvdW50IGlzIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIG91dHB1dCBhcnJheS4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBEZWNvZGUgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlciBpbnRvIGRlbHRhLAorICAgICAgICAgICAgICogd2hpY2ggZ2V0cyBhZGRlZCB0byBpLiAgVGhlIG92ZXJmbG93IGNoZWNraW5nIGlzIGVhc2llcgorICAgICAgICAgICAgICogaWYgd2UgaW5jcmVhc2UgaSBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nCisgICAgICAgICAgICAgKiB2YWx1ZSBhdCB0aGUgZW5kIHRvIG9idGFpbiBkZWx0YS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZm9yKG9sZGk9aSwgdz0xLCBrPUJBU0U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgays9QkFTRSkgeworICAgICAgICAgICAgICAgIGlmKGluPj1zcmNMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZGlnaXQ9YmFzaWNUb0RpZ2l0W3NyYy5jaGFyQXQoaW4rKykgJiAweEZGXTsKKyAgICAgICAgICAgICAgICBpZihkaWdpdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkludmFsaWQgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaWdpdD4oMHg3ZmZmZmZmZi1pKS93KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaSs9ZGlnaXQqdzsKKyAgICAgICAgICAgICAgICB0PWstYmlhczsKKyAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgdD1UTUlOOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihrPj0oYmlhcytUTUFYKSkgeworICAgICAgICAgICAgICAgICAgICB0PVRNQVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGRpZ2l0PHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYodz4weDdmZmZmZmZmLyhCQVNFLXQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHcqPUJBU0UtdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIE1vZGlmaWNhdGlvbiBmcm9tIHNhbXBsZSBjb2RlOgorICAgICAgICAgICAgICogSW5jcmVtZW50cyBkZXN0Q1BDb3VudCBoZXJlLAorICAgICAgICAgICAgICogd2hlcmUgbmVlZGVkIGluc3RlYWQgb2YgaW4gZm9yKCkgbG9vcCB0YWlsLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICArK2Rlc3RDUENvdW50OworICAgICAgICAgICAgYmlhcz1hZGFwdEJpYXMoaS1vbGRpLCBkZXN0Q1BDb3VudCwgKG9sZGk9PTApKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGkgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gKGluY3JlbWVudGVkKSBkZXN0Q1BDb3VudCB0byAwLAorICAgICAgICAgICAgICogaW5jcmVtZW50aW5nIG4gZWFjaCB0aW1lLCBzbyB3ZSdsbCBmaXggdGhhdCBub3c6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKGkvZGVzdENQQ291bnQ+KDB4N2ZmZmZmZmYtbikpIHsKKyAgICAgICAgICAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG4rPWkvZGVzdENQQ291bnQ7CisgICAgICAgICAgICBpJT1kZXN0Q1BDb3VudDsKKyAgICAgICAgICAgIC8qIG5vdCBuZWVkZWQgZm9yIFB1bnljb2RlOiAqLworICAgICAgICAgICAgLyogaWYgKGRlY29kZV9kaWdpdChuKSA8PSBCQVNFKSByZXR1cm4gcHVueWNvZGVfaW52YWxpZF9pbnB1dDsgKi8KKworICAgICAgICAgICAgaWYobj4weDEwZmZmZiB8fCBpc1N1cnJvZ2F0ZShuKSkgeworICAgICAgICAgICAgICAgIC8qIFVuaWNvZGUgY29kZSBwb2ludCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJbnNlcnQgbiBhdCBwb3NpdGlvbiBpIG9mIHRoZSBvdXRwdXQ6ICovCisgICAgICAgICAgICBjcExlbmd0aD1VVEYxNi5nZXRDaGFyQ291bnQobik7CisgICAgICAgICAgICBpZigoZGVzdExlbmd0aCtjcExlbmd0aCk8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgaW50IGNvZGVVbml0SW5kZXg7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEhhbmRsZSBpbmRleGVzIHdoZW4gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBhcmUgcHJlc2VudC4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIEluIGFsbW9zdCBhbGwgY2FzZXMsIHRoZXJlIHdpbGwgYmUgb25seSBCTVAgY29kZSBwb2ludHMgYmVmb3JlIGkKKyAgICAgICAgICAgICAgICAgKiBhbmQgZXZlbiBpbiB0aGUgZW50aXJlIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGhhbmRsZWQgd2l0aCB0aGUgc2FtZSBlZmZpY2llbmN5IGFzIHdpdGggVVRGLTMyLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogT25seSB0aGUgcmFyZSBjYXNlcyB3aXRoIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgYXJlIGhhbmRsZWQKKyAgICAgICAgICAgICAgICAgKiBtb3JlIHNsb3dseSAtIGJ1dCBub3QgdG9vIGJhZCBzaW5jZSB0aGlzIGlzIGFuIGluc2VydGlvbiBhbnl3YXkuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYoaTw9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29kZVVuaXRJbmRleD1pOworICAgICAgICAgICAgICAgICAgICBpZihjcExlbmd0aD4xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleD1jb2RlVW5pdEluZGV4OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgKytmaXJzdFN1cHBsZW1lbnRhcnlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChkZXN0LCAwLCBkZXN0TGVuZ3RoLCBjb2RlVW5pdEluZGV4LCBpLWNvZGVVbml0SW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHVzZSB0aGUgVUNoYXIgaW5kZXggY29kZVVuaXRJbmRleCBpbnN0ZWFkIG9mIHRoZSBjb2RlIHBvaW50IGluZGV4IGkgKi8KKyAgICAgICAgICAgICAgICBpZihjb2RlVW5pdEluZGV4PGRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkZXN0LCBjb2RlVW5pdEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGNvZGVVbml0SW5kZXgrY3BMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNhc2VGbGFncyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjYXNlRmxhZ3MsIGNvZGVVbml0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFncywgY29kZVVuaXRJbmRleCtjcExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjcExlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAsIGluc2VydCBvbmUgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09KGNoYXIpbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciwgaW5zZXJ0IHR3byBjb2RlIHVuaXRzICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09VVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShuKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtjb2RlVW5pdEluZGV4KzFdPVVURjE2LmdldFRyYWlsU3Vycm9nYXRlKG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjYXNlRmxhZ3MhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQ2FzZSBvZiBsYXN0IGNoYXJhY3RlciBkZXRlcm1pbmVzIHVwcGVyY2FzZSBmbGFnOiAqLworICAgICAgICAgICAgICAgICAgICBjYXNlRmxhZ3NbY29kZVVuaXRJbmRleF09aXNCYXNpY1VwcGVyQ2FzZShzcmMuY2hhckF0KGluLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY3BMZW5ndGg9PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFnc1tjb2RlVW5pdEluZGV4KzFdPWZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdExlbmd0aCs9Y3BMZW5ndGg7CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZChkZXN0LCAwLCBkZXN0TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjZkNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUXVhbnRpZmllci5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworY2xhc3MgUXVhbnRpZmllciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIHByaXZhdGUgVW5pY29kZU1hdGNoZXIgbWF0Y2hlcjsKKworICAgIHByaXZhdGUgaW50IG1pbkNvdW50OworCisgICAgcHJpdmF0ZSBpbnQgbWF4Q291bnQ7CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGNvdW50IGEgcXVhbnRpZmllciBjYW4gaGF2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVggPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKworICAgIHB1YmxpYyBRdWFudGlmaWVyKFVuaWNvZGVNYXRjaGVyIHRoZU1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZU1pbkNvdW50LCBpbnQgdGhlTWF4Q291bnQpIHsKKyAgICAgICAgaWYgKHRoZU1hdGNoZXIgPT0gbnVsbCB8fCBtaW5Db3VudCA8IDAgfHwgbWF4Q291bnQgPCAwIHx8IG1pbkNvdW50ID4gbWF4Q291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVyID0gdGhlTWF0Y2hlcjsKKyAgICAgICAgbWluQ291bnQgPSB0aGVNaW5Db3VudDsKKyAgICAgICAgbWF4Q291bnQgPSB0aGVNYXhDb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBvZmZzZXRbMF07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG1heENvdW50KSB7CisgICAgICAgICAgICBpbnQgcG9zID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgaW50IG0gPSBtYXRjaGVyLm1hdGNoZXModGV4dCwgb2Zmc2V0LCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG0gPT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBvZmZzZXRbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgb2Zmc2V0IGhhcyBub3QgbW92ZWQgd2UgaGF2ZSBhIHplcm8td2lkdGggbWF0Y2guCisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgbWF0Y2hpbmcgaXQgaW5maW5pdGVseS4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpbmNyZW1lbnRhbCAmJiBtID09IFVfUEFSVElBTF9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBvZmZzZXRbMF0gPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ID49IG1pbkNvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gVV9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXRbMF0gPSBzdGFydDsKKyAgICAgICAgcmV0dXJuIFVfTUlTTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICBpZiAobWluQ291bnQgPT0gMCkgeworICAgICAgICAgICAgaWYgKG1heENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgnPycpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1heENvdW50ID09IE1BWCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcqJykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgICAgICAgIH0gZWxzZSBpZiAobWluQ291bnQgPT0gMSAmJiBtYXhDb3VudCA9PSBNQVgpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcrJykudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7Jyk7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWluQ291bnQpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcsJyk7CisgICAgICAgIGlmIChtYXhDb3VudCAhPSBNQVgpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWF4Q291bnQpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBVbmljb2RlTWF0Y2hlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICByZXR1cm4gKG1pbkNvdW50ID09IDApIHx8IG1hdGNoZXIubWF0Y2hlc0luZGV4VmFsdWUodik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgVW5pb24gdGhlIHNldCBvZiBhbGwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QgaW50byB0aGUgZ2l2ZW4KKyAgICAgKiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHJldHVybnMgYSByZWZlcmVuY2UgdG8gdG9VbmlvblRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpZiAobWF4Q291bnQgPiAwKSB7CisgICAgICAgICAgICBtYXRjaGVyLmFkZE1hdGNoU2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSURhdGFXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI0YzBmYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsNTE3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKKworLyoqCisqIDxwPkludGVybmFsIGNsYXNzIHVzZWQgZm9yIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3JzPC9wPgorKiA8cD5UaGlzIGNsYXNzIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZSBkYXRhLCBhcworKiBpdCBpcyBzdG9yZWQgaW4gYSAuYnJrIGZpbGUuICAKKyogQGludGVybmFsCisqIAorKi8KK2ZpbmFsIGNsYXNzIFJCQklEYXRhV3JhcHBlciB7CisgICAgLy8KKyAgICAvLyBUaGVzZSBmaWVsZHMgYXJlIHRoZSByZWFkeS10by11c2UgY29tcGlsZWQgcnVsZSBkYXRhLCBhcworICAgIC8vICAgcmVhZCBmcm9tIHRoZSBmaWxlLgorICAgIC8vCisgICAgUkJCSURhdGFIZWFkZXIgZkhlYWRlcjsKKyAgICBzaG9ydCAgICAgICAgICBmRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlJUYWJsZVtdOworICAgIHNob3J0ICAgICAgICAgIGZTRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlNSVGFibGVbXTsKKyAgICBDaGFyVHJpZSAgICAgICBmVHJpZTsKKyAgICBTdHJpbmcgICAgICAgICBmUnVsZVNvdXJjZTsKKyAgICBpbnQgICAgICAgICAgICBmU3RhdHVzVGFibGVbXTsKKyAgICAKKyAgICAvLworICAgIC8vIEluZGV4ZXMgdG8gZmllbGRzIGluIHRoZSBJQ1U0QyBzdHlsZSBiaW5hcnkgZm9ybSBvZiB0aGUgUkJCSSBEYXRhIEhlYWRlcgorICAgIC8vICAgVXNlZCBieSB0aGUgcnVsZSBjb21waWxlciB3aGVuIGZsYXR0ZW5pbmcgdGhlIGRhdGEuCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1NJWkUgICAgICAgICAgID0gMjQ7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9NQUdJQyAgICAgICAgICA9IDA7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GT1JNQVRWRVJTSU9OICA9IDE7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9MRU5HVEggICAgICAgICA9IDI7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9DQVRDT1VOVCAgICAgICA9IDM7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GVEFCTEUgICAgICAgICA9IDQ7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9GVEFCTEVMRU4gICAgICA9IDU7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9SVEFCTEUgICAgICAgICA9IDY7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9SVEFCTEVMRU4gICAgICA9IDc7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TRlRBQkxFICAgICAgICA9IDg7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TRlRBQkxFTEVOICAgICA9IDk7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TUlRBQkxFICAgICAgICA9IDEwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfU1JUQUJMRUxFTiAgICAgPSAxMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1RSSUUgICAgICAgICAgID0gMTI7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9UUklFTEVOICAgICAgICA9IDEzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfUlVMRVNPVVJDRSAgICAgPSAxNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgIERIX1JVTEVTT1VSQ0VMRU4gID0gMTU7CisgICAgZmluYWwgc3RhdGljIGludCAgICBESF9TVEFUVVNUQUJMRSAgICA9IDE2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgREhfU1RBVFVTVEFCTEVMRU4gPSAxNzsKKyAgICAKKyAgICAKKyAgICAvLyBJbmRleCBvZmZzZXRzIHRvIHRoZSBmaWVsZHMgaW4gYSBzdGF0ZSB0YWJsZSByb3cuCisgICAgLy8gICAgQ29ycmVzcG9uZHMgdG8gc3RydWN0IFJCQklTdGF0ZVRhYmxlUm93IGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8gICAKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgQUNDRVBUSU5HICA9IDA7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIExPT0tBSEVBRCAgPSAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBUQUdJRFggICAgID0gMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkVTRVJWRUQgICA9IDM7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIE5FWFRTVEFURVMgPSA0OworICAgIAorICAgIC8vIEluZGV4IG9mZnNldHMgdG8gaGVhZGVyIGZpZWxkcyBvZiBhIHN0YXRlIHRhYmxlCisgICAgLy8gICAgIHN0cnVjdCBSQkJJU3RhdGVUYWJsZSB7Li4uICAgaW4gdGhlIEMgdmVyc2lvbi4KKyAgICAvLworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBOVU1TVEFURVMgID0gMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XTEVOICAgICA9IDI7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIEZMQUdTICAgICAgPSA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBSRVNFUlZFRF8yID0gNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XX0RBVEEgICA9IDg7CisgICAgCisgICAgLy8gIEJpdCBzZWxlY3RvcnMgZm9yIHRoZSAiRkxBR1MiIGZpZWxkIG9mIHRoZSBzdGF0ZSB0YWJsZSBoZWFkZXIKKyAgICAvLyAgICAgZW51bSBSQkJJU3RhdGVUYWJsZUZsYWdzIGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkJCSV9MT09LQUhFQURfSEFSRF9CUkVBSyA9IDE7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIFJCQklfQk9GX1JFUVVJUkVEICAgICAgICAgPSAyOyAgCisgICAgCisgICAgLy8gIEdldHRlcnMgZm9yIGZpZWxkcyBmcm9tIHRoZSBzdGF0ZSB0YWJsZSBoZWFkZXIKKyAgICAvLworICAgIGZpbmFsIHN0YXRpYyBpbnQgICBnZXROdW1TdGF0ZXMoc2hvcnQgIHRhYmxlW10pIHsKKyAgICAgICAgaW50ICBoaSA9IHRhYmxlW05VTVNUQVRFU107CisgICAgICAgIGludCAgbG8gPSB0YWJsZVtOVU1TVEFURVMrMV07CisgICAgICAgIGludCAgdmFsID0gKGhpPDwxNikgKyAobG8mMHgwMDAwZmZmZik7CisgICAgICAgIHJldHVybiB2YWw7CisgICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRhIEhlYWRlci4gIEEgc3RydWN0LWxpa2UgY2xhc3Mgd2l0aCB0aGUgZmllbGRzIGZyb20gdGhlIFJCQkkgZGF0YSBmaWxlIGhlYWRlci4KKyAgICAgKi8KKyAgICBmaW5hbCBzdGF0aWMgY2xhc3MgUkJCSURhdGFIZWFkZXIgeworICAgICAgICBpbnQgICAgICAgICBmTWFnaWM7ICAgICAgICAgLy8gID09IDB4YmxhMCAKKyAgICAgICAgaW50ICAgICAgICAgZlZlcnNpb247ICAgICAgIC8vICA9PSAxIChmb3IgSUNVIDMuMiBhbmQgZWFybGllci4gCisgICAgICAgIGJ5dGVbXSAgICAgIGZGb3JtYXRWZXJzaW9uOyAvLyAgRm9yIElDVSAzLjQgYW5kIGxhdGVyLgorICAgICAgICBpbnQgICAgICAgICBmTGVuZ3RoOyAgICAgICAgLy8gIFRvdGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0aGlzIFJCQkkgRGF0YSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIGluY2x1ZGluZyBhbGwgc2VjdGlvbnMsIG5vdCBqdXN0IHRoZSBoZWFkZXIuIAorICAgICAgICBpbnQgICAgICAgICBmQ2F0Q291bnQ7ICAgICAgLy8gIE51bWJlciBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4gCisKKyAgICAgICAgLy8gIAorICAgICAgICAvLyAgT2Zmc2V0cyBhbmQgc2l6ZXMgb2YgZWFjaCBvZiB0aGUgc3Vic2VjdGlvbnMgd2l0aGluIHRoZSBSQkJJIGRhdGEuIAorICAgICAgICAvLyAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBSQkJJRGF0YUhlYWRlci4gCisgICAgICAgIC8vICBBbGwgc2l6ZXMgYXJlIGluIGJ5dGVzLiAKKyAgICAgICAgLy8gIAorICAgICAgICBpbnQgICAgICAgICBmRlRhYmxlOyAgICAgICAgIC8vICBmb3J3YXJkIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuIAorICAgICAgICBpbnQgICAgICAgICBmRlRhYmxlTGVuOworICAgICAgICBpbnQgICAgICAgICBmUlRhYmxlOyAgICAgICAgIC8vICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gCisgICAgICAgIGludCAgICAgICAgIGZSVGFibGVMZW47CisgICAgICAgIGludCAgICAgICAgIGZTRlRhYmxlOyAgICAgICAgLy8gIHNhZmUgcG9pbnQgZm9yd2FyZCB0cmFuc2l0aW9uIHRhYmxlIAorICAgICAgICBpbnQgICAgICAgICBmU0ZUYWJsZUxlbjsKKyAgICAgICAgaW50ICAgICAgICAgZlNSVGFibGU7ICAgICAgICAvLyAgc2FmZSBwb2ludCByZXZlcnNlIHRyYW5zaXRpb24gdGFibGUgCisgICAgICAgIGludCAgICAgICAgIGZTUlRhYmxlTGVuOworICAgICAgICBpbnQgICAgICAgICBmVHJpZTsgICAgICAgICAgIC8vICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAKKyAgICAgICAgaW50ICAgICAgICAgZlRyaWVMZW47CisgICAgICAgIGludCAgICAgICAgIGZSdWxlU291cmNlOyAgICAgLy8gIE9mZnNldCB0byB0aGUgc291cmNlIGZvciBmb3IgdGhlIGJyZWFrIAorICAgICAgICBpbnQgICAgICAgICBmUnVsZVNvdXJjZUxlbjsgIC8vICAgIHJ1bGVzLiAgU3RvcmVkIFVDaGFyICouIAorICAgICAgICBpbnQgICAgICAgICBmU3RhdHVzVGFibGU7ICAgIC8vIE9mZnNldCB0byB0aGUgdGFibGUgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIAorICAgICAgICBpbnQgICAgICAgICBmU3RhdHVzVGFibGVMZW47CisKKyAgICAgICAgcHVibGljIFJCQklEYXRhSGVhZGVyKCkgeworICAgICAgICAgICAgZk1hZ2ljID0gMDsKKyAgICAgICAgICAgIGZGb3JtYXRWZXJzaW9uID0gbmV3IGJ5dGVbNF07CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUkJCSSBTdGF0ZSBUYWJsZSBJbmRleGluZyBGdW5jdGlvbi4gIEdpdmVuIGEgc3RhdGUgbnVtYmVyLCByZXR1cm4gdGhlCisgICAgICogYXJyYXkgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBzdGF0ZSB0YWJsZSByb3cgZm9yIHRoYXQgc3RhdGUuCisgICAgICogCisgICAgICovCisgICAgaW50IGdldFJvd0luZGV4KGludCBzdGF0ZSl7CisgICAgICAgIHJldHVybiBST1dfREFUQSArIHN0YXRlICogKGZIZWFkZXIuZkNhdENvdW50ICsgNCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBUcmllRm9sZGluZ0Z1bmMgaW1wbGVtZW50cyAgVHJpZS5EYXRhTWFuaXB1bGF0ZSB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgZGF0YSkgeworICAgICAgICAgICAgaWYgKChkYXRhICYgMHg4MDAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEgJiAweDdmZmY7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBUcmllRm9sZGluZ0Z1bmMgIGZUcmllRm9sZGluZ0Z1bmMgPSBuZXcgVHJpZUZvbGRpbmdGdW5jKCk7CisgCisgICAgCisgICAgUkJCSURhdGFXcmFwcGVyKCkgeworICAgIH0KKworICAgIHN0YXRpYyBSQkJJRGF0YVdyYXBwZXIgZ2V0KFN0cmluZyBuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBTdHJpbmcgIGZ1bGxOYW1lID0gImRhdGEvIiArIG5hbWU7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShmdWxsTmFtZSk7CisgICAgICAgIHJldHVybiBnZXQoaXMpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqICBHZXQgYW4gUkJCSURhdGFXcmFwcGVyIGZyb20gYW4gSW5wdXRTdHJlYW0gb250byBhIHByZS1jb21waWxlZCBzZXQKKyAgICAgKiAgb2YgUkJCSSBydWxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgUkJCSURhdGFXcmFwcGVyIGdldChJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIAorICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZGlzID0gbmV3IERhdGFJbnB1dFN0cmVhbShuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcykpOworICAgICAgICBSQkJJRGF0YVdyYXBwZXIgVGhpcyA9IG5ldyBSQkJJRGF0YVdyYXBwZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIFNlZWsgcGFzdCB0aGUgSUNVIGRhdGEgaGVhZGVyLgorICAgICAgICAvLyAgIFRPRE86ICB2ZXJpZnkgdGhhdCB0aGUgaGVhZGVyIGxvb2tzIGdvb2QuCisgICAgICAgIGRpcy5za2lwKDB4ODApOworICAgICAgICAKKyAgICAgICAgLy8gUmVhZCBpbiB0aGUgUkJCSSBkYXRhIGhlYWRlci4uLgorICAgICAgICBUaGlzLmZIZWFkZXIgPSBuZXcgIFJCQklEYXRhSGVhZGVyKCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mTWFnaWMgICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlZlcnNpb24gICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGb3JtYXRWZXJzaW9uWzBdID0gKGJ5dGUpIChUaGlzLmZIZWFkZXIuZlZlcnNpb24gPj4gMjQpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bMV0gPSAoYnl0ZSkgKFRoaXMuZkhlYWRlci5mVmVyc2lvbiA+PiAxNik7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRm9ybWF0VmVyc2lvblsyXSA9IChieXRlKSAoVGhpcy5mSGVhZGVyLmZWZXJzaW9uID4+IDgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bM10gPSAoYnl0ZSkgKFRoaXMuZkhlYWRlci5mVmVyc2lvbik7CisgICAgICAgIFRoaXMuZkhlYWRlci5mTGVuZ3RoICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkNhdENvdW50ICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGVGFibGUgICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRlRhYmxlTGVuICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlJUYWJsZSAgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZSVGFibGVMZW4gICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU0ZUYWJsZSAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlNGVGFibGVMZW4gICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTUlRhYmxlICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU1JUYWJsZUxlbiAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlRyaWUgICAgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZUcmllTGVuICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlJ1bGVTb3VyY2VMZW4gID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZSAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU3RhdHVzVGFibGVMZW4gPSBkaXMucmVhZEludCgpOworICAgICAgICBkaXMuc2tpcCg2ICogNCk7ICAgIC8vIHVpbnQzMl90ICBmUmVzZXJ2ZWRbNl07CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYgKFRoaXMuZkhlYWRlci5mTWFnaWMgIT0gMHhiMWEwIHx8IAorICAgICAgICAgICAgICAgICEgKFRoaXMuZkhlYWRlci5mVmVyc2lvbiA9PSAxICB8fCAgICAgICAgIC8vIElDVSAzLjIgYW5kIGVhcmxpZXIKKyAgICAgICAgICAgICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bMF0gPT0gMykgICAvLyBJQ1UgMy40CisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiQnJlYWsgSXRlcmF0b3IgUnVsZSBEYXRhIE1hZ2ljIE51bWJlciBJbmNvcnJlY3QsIG9yIHVuc3VwcG9ydGVkIGRhdGEgdmVyc2lvbi4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQ3VycmVudCBwb3NpdGlvbiBpbiBpbnB1dCBzdHJlYW0uICAKKyAgICAgICAgaW50IHBvcyA9IDI0ICogNDsgICAgIC8vIG9mZnNldCBvZiBlbmQgb2YgaGVhZGVyLCB3aGljaCBoYXMgMjQgZmllbGRzLCBhbGwgaW50MzJfdCAoNCBieXRlcykKKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgaW4gdGhlIEZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZSBhcyBhbiBhcnJheSBvZiBzaG9ydHMuCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICAvLyAgIFF1aWNrIFNhbml0eSBDaGVjaworICAgICAgICBpZiAoVGhpcy5mSGVhZGVyLmZGVGFibGUgPCBwb3MgfHwgVGhpcy5mSGVhZGVyLmZGVGFibGUgPiBUaGlzLmZIZWFkZXIuZkxlbmd0aCkgeworICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiQnJlYWsgaXRlcmF0b3IgUnVsZSBkYXRhIGNvcnJ1cHQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gICAgU2tpcCBvdmVyIGFueSBwYWRkaW5nIHByZWNlZGluZyB0aGlzIHRhYmxlCisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mRlRhYmxlIC0gcG9zKTsKKyAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZGVGFibGU7CisgICAgICAgIAorICAgICAgICBUaGlzLmZGVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZGVGFibGVMZW4gLyAyXTsKKyAgICAgICAgZm9yICggaT0wOyBpPFRoaXMuZkZUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mRlRhYmxlW2ldID0gZGlzLnJlYWRTaG9ydCgpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIGluIHRoZSBSZXZlcnNlIHN0YXRlIHRhYmxlCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICAvLyBTa2lwIG92ZXIgYW55IHBhZGRpbmcgaW4gdGhlIGZpbGUKKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZSVGFibGUgLSBwb3MpOworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlJUYWJsZTsKKyAgICAgICAgCisgICAgICAgIC8vIENyZWF0ZSAmIGZpbGwgdGhlIHRhYmxlIGl0c2VsZi4KKyAgICAgICAgVGhpcy5mUlRhYmxlID0gbmV3IHNob3J0W1RoaXMuZkhlYWRlci5mUlRhYmxlTGVuIC8gMl07CisgICAgICAgIGZvciAoaT0wOyBpPFRoaXMuZlJUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mUlRhYmxlW2ldID0gZGlzLnJlYWRTaG9ydCgpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIGluIHRoZSBTYWZlIEZvcndhcmQgc3RhdGUgdGFibGUKKyAgICAgICAgLy8gCisgICAgICAgIGlmIChUaGlzLmZIZWFkZXIuZlNGVGFibGVMZW4gPiAwKSB7CisgICAgICAgICAgICAvLyBTa2lwIG92ZXIgYW55IHBhZGRpbmcgaW4gdGhlIGZpbGUKKyAgICAgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mU0ZUYWJsZSAtIHBvcyk7CisgICAgICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlNGVGFibGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENyZWF0ZSAmIGZpbGwgdGhlIHRhYmxlIGl0c2VsZi4KKyAgICAgICAgICAgIFRoaXMuZlNGVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZTRlRhYmxlTGVuIC8gMl07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZTRlRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgVGhpcy5mU0ZUYWJsZVtpXSA9IGRpcy5yZWFkU2hvcnQoKTsgCisgICAgICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gUmVhZCBpbiB0aGUgU2FmZSBSZXZlcnNlIHN0YXRlIHRhYmxlCisgICAgICAgIC8vIAorICAgICAgICBpZiAoVGhpcy5mSGVhZGVyLmZTUlRhYmxlTGVuID4gMCkgeworICAgICAgICAgICAgLy8gU2tpcCBvdmVyIGFueSBwYWRkaW5nIGluIHRoZSBmaWxlCisgICAgICAgICAgICBkaXMuc2tpcChUaGlzLmZIZWFkZXIuZlNSVGFibGUgLSBwb3MpOworICAgICAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZTUlRhYmxlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgJiBmaWxsIHRoZSB0YWJsZSBpdHNlbGYuCisgICAgICAgICAgICBUaGlzLmZTUlRhYmxlID0gbmV3IHNob3J0W1RoaXMuZkhlYWRlci5mU1JUYWJsZUxlbiAvIDJdOworICAgICAgICAgICAgZm9yIChpPTA7IGk8VGhpcy5mU1JUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFRoaXMuZlNSVGFibGVbaV0gPSBkaXMucmVhZFNob3J0KCk7IAorICAgICAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFVuc2VyaWFsaXplIHRoZSBDaGFyYWN0ZXIgY2F0ZWdvcmllcyBUUklFCisgICAgICAgIC8vICAgICBCZWNhdXNlIHdlIGNhbid0IGJlIGFic29sdXRlbHkgY2VydGFpbiB3aGVyZSB0aGUgVHJpZSBkZXNlcmlhbGl6ZSB3aWxsCisgICAgICAgIC8vICAgICBsZWF2ZSB0aGUgaW5wdXQgc3RyZWFtLCBsZWF2ZSBwb3NpdGlvbiB1bmNoYW5nZWQuCisgICAgICAgIC8vICAgICBUaGUgc2VlayB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgaXRlbSBmb2xsb3dpbmcgdGhlIFRSSUUgd2lsbCBnZXQgdXMKKyAgICAgICAgLy8gICAgIGJhY2sgaW4gc3luYy4KKyAgICAgICAgLy8KKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZUcmllIC0gcG9zKTsgICAgIC8vIHNlZWsgaW5wdXQgc3RyZWFtIGZyb20gZW5kIG9mIHByZXZpb3VzIHNlY3Rpb24gdG8KKyAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZUcmllOyAgICAgICAgICAgICAgIC8vICAgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0cmllCisgICAgCisgICAgICAgIGRpcy5tYXJrKFRoaXMuZkhlYWRlci5mVHJpZUxlbisxMDApOyAgICAvLyBNYXJrIHBvc2l0aW9uIG9mIHN0YXJ0IG9mIFRSSUUgaW4gdGhlIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYW5kIHRlbGwgSmF2YSB0byBrZWVwIHRoZSBtYXJrIHZhbGlkIHNvIGxvbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBhcyB3ZSBkb24ndCBnbyBtb3JlIHRoYW4gMTAwIGJ5dGVzIHBhc3QgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGFzdCB0aGUgZW5kIG9mIHRoZSBUUklFLgorICAgIAorICAgICAgICBUaGlzLmZUcmllID0gbmV3IENoYXJUcmllKGRpcywgZlRyaWVGb2xkaW5nRnVuYyk7ICAvLyBEZXNlcmlhbGl6ZSB0aGUgVFJJRSwgbGVhdmluZyBpbnB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHN0cmVhbSBhdCBhbiB1bmtub3duIHBvc2l0aW9uLCBwcmVjZWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGFkZGluZyBiZXR3ZWVuIFRSSUUgYW5kIGZvbGxvd2luZyBzZWN0aW9uLgorICAgIAorICAgICAgICBkaXMucmVzZXQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBpbnB1dCBzdHJlYW0gYmFjayB0byBtYXJrZWQgcG9zaXRpb24gYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIHN0YXJ0IG9mIHRoZSBzZXJpYWxpemVkIFRSSUUuICBOb3cgb3VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICJwb3MiIHZhcmlhYmxlIGFuZCB0aGUgaW5wdXQgc3RyZWFtIGFyZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBhZ3JlZW1lbnQuCisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIHRoZSBSdWxlIFN0YXR1cyBUYWJsZQorICAgICAgICAvLworICAgICAgICBpZiAocG9zID4gVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBpdGVyYXRvciBSdWxlIGRhdGEgY29ycnVwdCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mU3RhdHVzVGFibGUgLSBwb3MpOworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlN0YXR1c1RhYmxlOworICAgICAgICBUaGlzLmZTdGF0dXNUYWJsZSA9IG5ldyBpbnRbVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZUxlbiAvIDRdOworICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZTdGF0dXNUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgVGhpcy5mU3RhdHVzVGFibGVbaV0gPSBkaXMucmVhZEludCgpOyAKKyAgICAgICAgICAgIHBvcyArPSA0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBQdXQgdGhlIGJyZWFrIHJ1bGUgc291cmNlIGludG8gYSBTdHJpbmcKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKHBvcyA+IFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBpdGVyYXRvciBSdWxlIGRhdGEgY29ycnVwdCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZSAtIHBvcyk7CisgICAgICAgIHBvcyA9IFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcihUaGlzLmZIZWFkZXIuZlJ1bGVTb3VyY2VMZW4gLyAyKTsKKyAgICAgICAgZm9yIChpPTA7IGk8VGhpcy5mSGVhZGVyLmZSdWxlU291cmNlTGVuOyBpKz0yKSB7CisgICAgICAgICAgICBzYi5hcHBlbmQoZGlzLnJlYWRDaGFyKCkpOyAKKyAgICAgICAgICAgIHBvcyArPSAyOworICAgICAgICB9CisgICAgICAgIFRoaXMuZlJ1bGVTb3VyY2UgPSBzYi50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgaWYgKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZkRlYnVnRW52IT1udWxsICYmIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZkRlYnVnRW52LmluZGV4T2YoImRhdGEiKT49MCkgeworICAgICAgICAgICAgVGhpcy5kdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFRoaXM7CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIC8qKiBEZWJ1ZyBmdW5jdGlvbiB0byBkaXNwbGF5IHRoZSBicmVhayBpdGVyYXRvciBkYXRhLiAgCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgZHVtcCgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSQkJJIERhdGEgV3JhcHBlciBkdW1wIC4uLiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIFN0YXRlIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmRlRhYmxlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZXZlcnNlIFN0YXRlIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmUlRhYmxlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIFNhZmUgUG9pbnRzIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmU0ZUYWJsZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmV2ZXJzZSBTYWZlIFBvaW50cyBUYWJsZSIpOworICAgICAgICBkdW1wVGFibGUoZlNSVGFibGUpOworICAgICAgICAKKyAgICAgICAgZHVtcENoYXJDYXRlZ29yaWVzKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU291cmNlIFJ1bGVzOiAiICsgZlJ1bGVTb3VyY2UpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqIEZpeGVkIHdpZHRoIGludC10by1zdHJpbmcgY29udmVyc2lvbi4gICAKKyAgICAgKiAgQGludGVybmFsCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaW50VG9TdHJpbmcoaW50IG4sIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKHdpZHRoKTsgICAKKyAgICAgICAgZGVzdC5hcHBlbmQobik7CisgICAgICAgIHdoaWxlIChkZXN0Lmxlbmd0aCgpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgZGVzdC5pbnNlcnQoMCwgJyAnKTsgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKiogRml4ZWQgd2lkdGggaW50LXRvLXN0cmluZyBjb252ZXJzaW9uLiAgIAorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBpbnRUb0hleFN0cmluZyhpbnQgbiwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciAgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIod2lkdGgpOyAgIAorICAgICAgICBkZXN0LmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKG4pKTsKKyAgICAgICAgd2hpbGUgKGRlc3QubGVuZ3RoKCkgPCB3aWR0aCkgeworICAgICAgICAgICBkZXN0Lmluc2VydCgwLCAnICcpOyAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKiBEdW1wIGEgc3RhdGUgdGFibGUuICAoQSBmdWxsIHNldCBvZiBSQkJJIHJ1bGVzIGhhcyA0IHN0YXRlIHRhYmxlcy4pICAqLworICAgIHByaXZhdGUgdm9pZCBkdW1wVGFibGUoc2hvcnQgdGFibGVbXSkgeworICAgICAgICBpZiAodGFibGUgPT0gbnVsbCkgICB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgLS0gbnVsbCAtLSAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBuOworICAgICAgICAgICAgaW50IHN0YXRlOworICAgICAgICAgICAgU3RyaW5nIGhlYWRlciA9ICIgUm93ICBBY2MgTG9vayAgVGFnIjsKKyAgICAgICAgICAgIGZvciAobj0wOyBuPGZIZWFkZXIuZkNhdENvdW50OyBuKyspIHsKKyAgICAgICAgICAgICAgICBoZWFkZXIgKz0gaW50VG9TdHJpbmcobiwgNSk7ICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihoZWFkZXIpOworICAgICAgICAgICAgZm9yIChuPTA7IG48aGVhZGVyLmxlbmd0aCgpOyBuKyspIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCItIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIGZvciAoc3RhdGU9MDsgc3RhdGU8IGdldE51bVN0YXRlcyh0YWJsZSk7IHN0YXRlKyspIHsKKyAgICAgICAgICAgICAgICBkdW1wUm93KHRhYmxlLCBzdGF0ZSk7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEdW1wIChmb3IgZGVidWcpIGEgc2luZ2xlIHJvdyBvZiBhbiBSQkJJIHN0YXRlIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlCisgICAgICogQHBhcmFtIHN0YXRlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBSb3coc2hvcnQgdGFibGVbXSwgaW50ICAgc3RhdGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKGZIZWFkZXIuZkNhdENvdW50KjUgKyAyMCk7CisgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHN0YXRlLCA0KSk7CisgICAgICAgIGludCByb3cgPSBnZXRSb3dJbmRleChzdGF0ZSk7CisgICAgICAgIGlmICh0YWJsZVtyb3crQUNDRVBUSU5HXSAhPSAwKSB7CisgICAgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytBQ0NFUFRJTkddLCA1KSk7IAorICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICBkZXN0LmFwcGVuZCgiICAgICAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFibGVbcm93K0xPT0tBSEVBRF0gIT0gMCkgeworICAgICAgICAgICAgZGVzdC5hcHBlbmQoaW50VG9TdHJpbmcodGFibGVbcm93K0xPT0tBSEVBRF0sIDUpKTsgCisgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKCIgICAgICIpOworICAgICAgICB9CisgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytUQUdJRFhdLCA1KSk7IAorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY29sPTA7IGNvbDxmSGVhZGVyLmZDYXRDb3VudDsgY29sKyspIHsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytORVhUU1RBVEVTK2NvbF0sIDUpKTsgICAKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkZXN0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBDaGFyQ2F0ZWdvcmllcygpIHsKKyAgICAgICAgaW50IG4gPSBmSGVhZGVyLmZDYXRDb3VudDsKKyAgICAgICAgU3RyaW5nICAgY2F0U3RyaW5nc1tdID0gbmV3ICBTdHJpbmdbbisxXTsKKyAgICAgICAgaW50ICAgICAgcmFuZ2VTdGFydCA9IDA7CisgICAgICAgIGludCAgICAgIHJhbmdlRW5kID0gMDsKKyAgICAgICAgaW50ICAgICAgbGFzdENhdCA9IC0xOworICAgICAgICBpbnQgICAgICBjaGFyMzI7CisgICAgICAgIGludCAgICAgIGNhdGVnb3J5OworICAgICAgICBpbnQgICAgICBsYXN0TmV3bGluZVtdID0gbmV3IGludFtuKzFdOworICAgICAgICAKKyAgICAgICAgZm9yIChjYXRlZ29yeSA9IDA7IGNhdGVnb3J5IDw9IGZIZWFkZXIuZkNhdENvdW50OyBjYXRlZ29yeSArKykgeworICAgICAgICAgICAgY2F0U3RyaW5nc1tjYXRlZ29yeV0gPSAiIjsgICAKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ2hhcmFjdGVyIENhdGVnb3JpZXMiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBmb3IgKGNoYXIzMiA9IDA7IGNoYXIzMjw9MHgxMGZmZmY7IGNoYXIzMisrKSB7CisgICAgICAgICAgICBjYXRlZ29yeSA9IGZUcmllLmdldENvZGVQb2ludFZhbHVlKGNoYXIzMik7CisgICAgICAgICAgICBjYXRlZ29yeSAmPSB+MHg0MDAwOyAgICAgICAgICAgIC8vIE1hc2sgb2ZmIGRpY3Rpb25hcnkgYml0LgorICAgICAgICAgICAgaWYgKGNhdGVnb3J5IDwgMCB8fCBjYXRlZ29yeSA+IGZIZWFkZXIuZkNhdENvdW50KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciwgYmFkIGNhdGVnb3J5ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNhdGVnb3J5KSArIAorICAgICAgICAgICAgICAgICAgICAgICAgIiBmb3IgY2hhciAiICsgSW50ZWdlci50b0hleFN0cmluZyhjaGFyMzIpKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT0gbGFzdENhdCApIHsKKyAgICAgICAgICAgICAgICByYW5nZUVuZCA9IGNoYXIzMjsgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RDYXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2F0U3RyaW5nc1tsYXN0Q2F0XS5sZW5ndGgoKSA+IGxhc3ROZXdsaW5lW2xhc3RDYXRdICsgNzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROZXdsaW5lW2xhc3RDYXRdID0gY2F0U3RyaW5nc1tsYXN0Q2F0XS5sZW5ndGgoKSArIDEwOworICAgICAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiXG4gICAgICAgIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJhbmdlU3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2VFbmQgIT0gcmFuZ2VTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiLSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJhbmdlRW5kKTsgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0Q2F0ID0gY2F0ZWdvcnk7CisgICAgICAgICAgICAgICAgcmFuZ2VTdGFydCA9IHJhbmdlRW5kID0gY2hhcjMyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZVN0YXJ0KTsKKyAgICAgICAgaWYgKHJhbmdlRW5kICE9IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIi0iICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZUVuZCk7ICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoY2F0ZWdvcnkgPSAwOyBjYXRlZ29yeSA8PSBmSGVhZGVyLmZDYXRDb3VudDsgY2F0ZWdvcnkgKyspIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoaW50VG9TdHJpbmcoY2F0ZWdvcnksIDUpICsgIiAgIiArIGNhdFN0cmluZ3NbY2F0ZWdvcnldKTsgICAKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHMgPSAiY2hhciI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzID0gYXJnc1swXTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJCQklEYXRhV3JhcHBlci5tYWluKCIgKyBzICsgIikgIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdmVyc2lvbmVkTmFtZSA9IElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi8iKyBzICsgIi5icmsiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJCQklEYXRhV3JhcHBlciBUaGlzID0gUkJCSURhdGFXcmFwcGVyLmdldCh2ZXJzaW9uZWROYW1lKTsKKyAgICAgICAgICAgIFRoaXMuZHVtcCgpOworICAgICAgICB9CisgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICB9CisgICAgICAgICAgIAorICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSU5vZGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklOb2RlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWQ5NjZkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklOb2RlLmphdmEKQEAgLTAsMCArMSwzNDggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ09QWVJJR0hUOgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKKworLyoqCisgKiAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIG5vZGUgaW4gdGhlIHBhcnNlIHRyZWUgY3JlYXRlZCBieSB0aGUgUkJCSSBSdWxlIGNvbXBpbGVyLgorICogQGludGVybmFsCisgKgorICovCitjbGFzcyBSQkJJTm9kZSB7CisKKyAgICAKKyAvLyAgIGVudW0gTm9kZVR5cGUgeworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIHNldFJlZiA9IDA7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgdXNldCA9IDE7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgdmFyUmVmID0gMjsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBsZWFmQ2hhciA9IDM7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgbG9va0FoZWFkID0gNDsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICB0YWcgPSA1OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIGVuZE1hcmsgPSA2OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wU3RhcnQgPSA3OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wQ2F0ID0gODsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBvcE9yID0gOTsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBvcFN0YXIgPSAxMDsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBvcFBsdXMgPSAxMTsKKyAgICAgc3RhdGljIGZpbmFsIGludCAgICBvcFF1ZXN0aW9uID0gMTI7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgb3BCcmVhayA9IDEzOworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wUmV2ZXJzZSA9IDE0OworICAgICBzdGF0aWMgZmluYWwgaW50ICAgIG9wTFBhcmVuID0gMTU7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgbm9kZVR5cGVMaW1pdCA9IDE2OyAgICAvLyAgRm9yIEFzc2VydGlvbiBjaGVja2luZyBvbmx5LgorICAgICAKKyAgICAgc3RhdGljIFN0cmluZyBbXSAgbm9kZVR5cGVOYW1lcyA9IHsKKyAgICAgICAgICJzZXRSZWYiLAorICAgICAgICAgInVzZXQiLAorICAgICAgICAgInZhclJlZiIsCisgICAgICAgICAibGVhZkNoYXIiLAorICAgICAgICAgImxvb2tBaGVhZCIsCisgICAgICAgICAidGFnIiwKKyAgICAgICAgICJlbmRNYXJrIiwKKyAgICAgICAgICJvcFN0YXJ0IiwKKyAgICAgICAgICJvcENhdCIsCisgICAgICAgICAib3BPciIsCisgICAgICAgICAib3BTdGFyIiwKKyAgICAgICAgICJvcFBsdXMiLAorICAgICAgICAgIm9wUXVlc3Rpb24iLAorICAgICAgICAgIm9wQnJlYWsiLAorICAgICAgICAgIm9wUmV2ZXJzZSIsCisgICAgICAgICAib3BMUGFyZW4iCit9OworCisvLyAgICBlbnVtIE9wUHJlY2VkZW5jZSB7ICAgICAgCisgICAgc3RhdGljIGZpbmFsIGludCAgICBwcmVjWmVybyAgID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50ICAgIHByZWNTdGFydCAgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgICAgcHJlY0xQYXJlbiA9IDI7CisgICAgc3RhdGljIGZpbmFsIGludCAgICBwcmVjT3BPciAgID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50ICAgIHByZWNPcENhdCAgPSA0OworICAgICAgICAKKyAgICBpbnQgICAgICAgICAgZlR5cGU7ICAgLy8gZW51bSBOb2RlVHlwZQorICAgIFJCQklOb2RlICAgICAgZlBhcmVudDsKKyAgICBSQkJJTm9kZSAgICAgIGZMZWZ0Q2hpbGQ7CisgICAgUkJCSU5vZGUgICAgICBmUmlnaHRDaGlsZDsKKyAgICBVbmljb2RlU2V0ICAgIGZJbnB1dFNldDsgICAgICAgICAgIC8vIEZvciB1c2V0IG5vZGVzIG9ubHkuCisgICAgaW50ICAgICAgICAgIGZQcmVjZWRlbmNlID0gcHJlY1plcm87ICAgLy8gZW51bSBPcFByZWNlZGVuY2UsIEZvciBiaW5hcnkgb3BzIG9ubHkuCisgICAgCisgICAgU3RyaW5nICAgICAgIGZUZXh0OyAgICAgICAgICAgICAgICAgLy8gVGV4dCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbm9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIE1heSBiZSBsYXppbHkgZXZhbHVhdGVkIHdoZW4gKGlmKSBuZWVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGZvciBzb21lIG5vZGUgdHlwZXMuCisgICAgaW50ICAgICAgICAgICBmRmlyc3RQb3M7ICAgICAgICAgICAgLy8gUG9zaXRpb24gaW4gdGhlIHJ1bGUgc291cmNlIHN0cmluZyBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGZpcnN0IHRleHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSWYgdGhlcmUncyBhIGxlZnQgY2hpbGQsIHRoaXMgd2lsbCBiZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYXMgdGhhdCBjaGlsZCdzIGxlZnQgcG9zLgorICAgIGludCAgICAgICAgICAgZkxhc3RQb3M7ICAgICAgICAgICAgIC8vICBMYXN0IHBvc2l0aW9uIGluIHRoZSBydWxlIHNvdXJjZSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICBvZiBhbnkgdGV4dCBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIElmIHRoZXJlJ3MgYSByaWdodCBjaGlsZCwgdGhpcyB3aWxsIGJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgYXMgdGhhdCBjaGlsZCdzIGxhc3QgcG9zdGlvbi4KKworICAgIGJvb2xlYW4gICAgICBmTnVsbGFibGU7ICAgICAgICAgICAgLy8gIFNlZSBBaG8gREZBIHRhYmxlIGdlbmVyYXRpb24gYWxnb3JpdGhtCisgICAgaW50ICAgICAgICAgICBmVmFsOyAgICAgICAgICAgICAgICAgLy8gRm9yIGxlYWZDaGFyIG5vZGVzLCB0aGUgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBWYWx1ZXMgYXJlIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjb3JyZXNwb25kcyB0byBjb2x1bW5zIGluIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4KKworICAgIGJvb2xlYW4gICAgICBmTG9va0FoZWFkRW5kOyAgICAgICAgLy8gRm9yIGVuZE1hcmsgbm9kZXMsIHNldCBUUlVFIGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBtYXJraW5nIHRoZSBlbmQgb2YgYSBsb29rLWFoZWFkIHJ1bGUuCisKKyAgICBTZXQgICAgICAgICAgIGZGaXJzdFBvc1NldDsgICAgICAgICAvLyBTZWUgQWhvIERGQSB0YWJsZSBnZW5lcmF0aW9uIGFsZ29yaXRobQorICAgIFNldCAgICAgICAgICAgZkxhc3RQb3NTZXQ7ICAgICAgICAgIC8vIFNlZSBBaG8uICAgICAgIAorICAgIFNldCAgICAgICAgICAgZkZvbGxvd1BvczsgICAgICAgICAgIC8vIFNlZSBBaG8uCisgICAgCisgICAgaW50ICAgICAgICAgICBmU2VyaWFsTnVtOyAgICAgICAgICAgLy8gIERlYnVnZ2luZyBhaWRzLiAgRWFjaCBub2RlIGdldHMgYSB1bmlxdWUgc2VyaWFsIG51bWJlci4KKyAgICBzdGF0aWMgaW50ICAgIGdMYXN0U2VyaWFsOworCisgICAgUkJCSU5vZGUoaW50IHQpIHsKKyAgICAgICAgQXNzZXJ0LmFzc3J0KHQ8bm9kZVR5cGVMaW1pdCk7CisgICAgICAgIGZTZXJpYWxOdW0gICAgPSArK2dMYXN0U2VyaWFsOworICAgICAgICBmVHlwZSAgICAgICAgID0gdDsKKworICAgICAgICBmRmlyc3RQb3NTZXQgID0gbmV3IEhhc2hTZXQoKTsgCisgICAgICAgIGZMYXN0UG9zU2V0ICAgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBmRm9sbG93UG9zICAgID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYgICAgICAodD09b3BDYXQpICAgIHtmUHJlY2VkZW5jZSA9IHByZWNPcENhdDt9CisgICAgICAgIGVsc2UgaWYgKHQ9PW9wT3IpICAgICB7ZlByZWNlZGVuY2UgPSBwcmVjT3BPcjt9CisgICAgICAgIGVsc2UgaWYgKHQ9PW9wU3RhcnQpICB7ZlByZWNlZGVuY2UgPSBwcmVjU3RhcnQ7fQorICAgICAgICBlbHNlIGlmICh0PT1vcExQYXJlbikge2ZQcmVjZWRlbmNlID0gcHJlY0xQYXJlbjt9CisgICAgICAgIGVsc2UgZlByZWNlZGVuY2UgICA9IHByZWNaZXJvOworICAgIH0KKworCisgICAgUkJCSU5vZGUoUkJCSU5vZGUgb3RoZXIpICB7CisgICAgICAgIGZTZXJpYWxOdW0gICA9ICsrZ0xhc3RTZXJpYWw7CisgICAgICAgIGZUeXBlICAgICAgICA9IG90aGVyLmZUeXBlOworICAgICAgICBmSW5wdXRTZXQgICAgPSBvdGhlci5mSW5wdXRTZXQ7CisgICAgICAgIGZQcmVjZWRlbmNlICA9IG90aGVyLmZQcmVjZWRlbmNlOworICAgICAgICBmVGV4dCAgICAgICAgPSBvdGhlci5mVGV4dDsKKyAgICAgICAgZkZpcnN0UG9zICAgID0gb3RoZXIuZkZpcnN0UG9zOworICAgICAgICBmTGFzdFBvcyAgICAgPSBvdGhlci5mTGFzdFBvczsKKyAgICAgICAgZk51bGxhYmxlICAgID0gb3RoZXIuZk51bGxhYmxlOworICAgICAgICBmVmFsICAgICAgICAgPSBvdGhlci5mVmFsOworICAgICAgICBmRmlyc3RQb3NTZXQgPSBuZXcgSGFzaFNldChvdGhlci5mRmlyc3RQb3NTZXQpOworICAgICAgICBmTGFzdFBvc1NldCAgPSBuZXcgSGFzaFNldChvdGhlci5mTGFzdFBvc1NldCk7CisgICAgICAgIGZGb2xsb3dQb3MgICA9IG5ldyBIYXNoU2V0KG90aGVyLmZGb2xsb3dQb3MpOworICAgIH0KKworCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICAgICAgIGNsb25lVHJlZSAgICAgTWFrZSBhIGNvcHkgb2YgdGhlIHN1YnRyZWUgcm9vdGVkIGF0IHRoaXMgbm9kZS4KKy8vICAgICAgICAgICAgICAgICAgICAgIERpc2NhcmQgYW55IHZhcmlhYmxlIHJlZmVyZW5jZXMgZW5jb3VudGVyZWQgYWxvbmcgdGhlIHdheSwKKy8vICAgICAgICAgICAgICAgICAgICAgIGFuZCByZXBsYWNlIHdpdGggY29waWVzIG9mIHRoZSB2YXJpYWJsZSdzIGRlZmluaXRpb25zLgorLy8gICAgICAgICAgICAgICAgICAgICAgVXNlZCB0byByZXBsaWNhdGUgdGhlIGV4cHJlc3Npb24gdW5kZXJuZWF0aCB2YXJpYWJsZQorLy8gICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcyBpbiBwcmVwYXJhdGlvbiBmb3IgZ2VuZXJhdGluZyB0aGUgREZBIHRhYmxlcy4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBSQkJJTm9kZSBjbG9uZVRyZWUoKSB7CisgICAgICAgIFJCQklOb2RlICAgIG47CisKKyAgICAgICAgaWYgKGZUeXBlID09IFJCQklOb2RlLnZhclJlZikgeworICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIHZhcmlhYmxlIHJlZmVyZW5jZSwgc2tpcCBvdmVyIGl0CisgICAgICAgICAgICAvLyAgIGFuZCBjbG9uZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgdmFyaWFibGUgaW5zdGVhZC4KKyAgICAgICAgICAgIG4gPSBmTGVmdENoaWxkLmNsb25lVHJlZSgpOworICAgICAgICB9IGVsc2UgaWYgKGZUeXBlID09IFJCQklOb2RlLnVzZXQpIHsKKyAgICAgICAgICAgIG4gPSB0aGlzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbiA9IG5ldyBSQkJJTm9kZSh0aGlzKTsKKyAgICAgICAgICAgIGlmIChmTGVmdENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuLmZMZWZ0Q2hpbGQgICAgICAgICAgPSBmTGVmdENoaWxkLmNsb25lVHJlZSgpOworICAgICAgICAgICAgICAgIG4uZkxlZnRDaGlsZC5mUGFyZW50ID0gbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbi5mUmlnaHRDaGlsZCAgICAgICAgICA9IGZSaWdodENoaWxkLmNsb25lVHJlZSgpOworICAgICAgICAgICAgICAgIG4uZlJpZ2h0Q2hpbGQuZlBhcmVudCA9IG47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG47CisgICAgfQorCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICAgICAgZmxhdHRlblZhcmlhYmxlcyAgIFdhbGsgYSBwYXJzZSB0cmVlLCByZXBsYWNpbmcgYW55IHZhcmlhYmxlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcyB3aXRoIGEgY29weSBvZiB0aGUgdmFyaWFibGUncyBkZWZpbml0aW9uLgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIEFzaWRlIGZyb20gdmFyaWFibGVzLCB0aGUgdHJlZSBpcyBub3QgY2hhbmdlZC4KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIHRoZSByb290IG9mIHRoZSB0cmVlLiAgSWYgdGhlIHJvb3Qgd2FzIG5vdCBhIHZhcmlhYmxlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlLCBpdCByZW1haW5zIHVuY2hhbmdlZCAtIHRoZSByb290IHdlIHN0YXJ0ZWQgd2l0aAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHRoZSByb290IHdlIHJldHVybi4gIElmLCBob3dldmVyLCB0aGUgcm9vdCB3YXMgYSB2YXJpYWJsZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSwgdGhlIHJvb3Qgb2YgdGhlIG5ld2x5IGNsb25lZCByZXBsYWNlbWVudCB0cmVlIHdpbGwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBiZSByZXR1cm5lZCwgYW5kIHRoZSBvcmlnaW5hbCB0cmVlIGRlbGV0ZWQuCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gd29ya3MgYnkgcmVjdXJzaXZlbHkgd2Fsa2luZyB0aGUgdHJlZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgZG9pbmcgYW55dGhpbmcgdW50aWwgYSB2YXJpYWJsZSByZWZlcmVuY2UgaXMKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCwgdGhlbiBjYWxsaW5nIGNsb25lVHJlZSgpIGF0IHRoYXQgcG9pbnQuICBBbnkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgcmVmZXJlbmNlcyBhcmUgaGFuZGxlZCBieSBjbG9uZVRyZWUoKSwgbm90IGhlcmUuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgUkJCSU5vZGUgZmxhdHRlblZhcmlhYmxlcygpIHsKKyAgICAgICAgaWYgKGZUeXBlID09IHZhclJlZikgeworICAgICAgICAgICAgUkJCSU5vZGUgcmV0Tm9kZSA9IGZMZWZ0Q2hpbGQuY2xvbmVUcmVlKCk7CisgICAgICAgICAgICAvLyBkZWxldGUgdGhpczsKKyAgICAgICAgICAgIHJldHVybiByZXROb2RlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZMZWZ0Q2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkxlZnRDaGlsZCA9IGZMZWZ0Q2hpbGQuZmxhdHRlblZhcmlhYmxlcygpOworICAgICAgICAgICAgZkxlZnRDaGlsZC5mUGFyZW50ICA9IHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSaWdodENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZSaWdodENoaWxkID0gZlJpZ2h0Q2hpbGQuZmxhdHRlblZhcmlhYmxlcygpOworICAgICAgICAgICAgZlJpZ2h0Q2hpbGQuZlBhcmVudCA9IHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgICAgZmxhdHRlblNldHMgICAgV2FsayB0aGUgcGFyc2UgdHJlZSwgcmVwbGFjaW5nIGFueSBub2RlcyBvZiB0eXBlIHNldFJlZgorLy8gICAgICAgICAgICAgICAgICAgICB3aXRoIGEgY29weSBvZiB0aGUgZXhwcmVzc2lvbiB0cmVlIGZvciB0aGUgc2V0LiAgQSBzZXQncworLy8gICAgICAgICAgICAgICAgICAgICBlcXVpdmFsZW50IGV4cHJlc3Npb24gdHJlZSBpcyBwcmVjb21wdXRlZCBhbmQgc2F2ZWQgYXMKKy8vICAgICAgICAgICAgICAgICAgICAgdGhlIGxlZnQgY2hpbGQgb2YgdGhlIHVzZXQgbm9kZS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB2b2lkIGZsYXR0ZW5TZXRzKCkgeworICAgICAgICBBc3NlcnQuYXNzcnQoZlR5cGUgIT0gc2V0UmVmKTsKKworICAgICAgICBpZiAoZkxlZnRDaGlsZCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZkxlZnRDaGlsZC5mVHlwZT09c2V0UmVmKSB7CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgc2V0UmVmTm9kZSA9IGZMZWZ0Q2hpbGQ7CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgdXNldE5vZGUgICA9IHNldFJlZk5vZGUuZkxlZnRDaGlsZDsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSByZXBsVHJlZSAgID0gdXNldE5vZGUuZkxlZnRDaGlsZDsKKyAgICAgICAgICAgICAgICBmTGVmdENoaWxkICAgICAgICAgID0gcmVwbFRyZWUuY2xvbmVUcmVlKCk7CisgICAgICAgICAgICAgICAgZkxlZnRDaGlsZC5mUGFyZW50ICA9IHRoaXM7CisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmTGVmdENoaWxkLmZsYXR0ZW5TZXRzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlJpZ2h0Q2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZSaWdodENoaWxkLmZUeXBlPT1zZXRSZWYpIHsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSBzZXRSZWZOb2RlID0gZlJpZ2h0Q2hpbGQ7CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgdXNldE5vZGUgICA9IHNldFJlZk5vZGUuZkxlZnRDaGlsZDsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSByZXBsVHJlZSAgID0gdXNldE5vZGUuZkxlZnRDaGlsZDsKKyAgICAgICAgICAgICAgICBmUmlnaHRDaGlsZCAgICAgICAgICAgPSByZXBsVHJlZS5jbG9uZVRyZWUoKTsKKyAgICAgICAgICAgICAgICBmUmlnaHRDaGlsZC5mUGFyZW50ICA9IHRoaXM7CisgICAgICAgICAgICAgICAgLy8gZGVsZXRlIHNldFJlZk5vZGU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZSaWdodENoaWxkLmZsYXR0ZW5TZXRzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICAgICBmaW5kTm9kZXMoKSAgICAgTG9jYXRlIGFsbCB0aGUgbm9kZXMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLCBzdGFydGluZworLy8gICAgICAgICAgICAgICAgICAgICAgIGF0IHRoZSBzcGVjaWZpZWQgcm9vdC4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB2b2lkICAgZmluZE5vZGVzKExpc3QgZGVzdCwgaW50IGtpbmQpIHsKKyAgICAgICAgaWYgKGZUeXBlID09IGtpbmQpIHsKKyAgICAgICAgICAgIGRlc3QuYWRkKHRoaXMpOworICAgICAgICB9CisgICAgICAgIGlmIChmTGVmdENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZMZWZ0Q2hpbGQuZmluZE5vZGVzKGRlc3QsIGtpbmQpOworICAgICAgICB9CisgICAgICAgIGlmIChmUmlnaHRDaGlsZCAhPSBudWxsKSB7CisgICAgICAgICAgICBmUmlnaHRDaGlsZC5maW5kTm9kZXMoZGVzdCwga2luZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgICBwcmludC4gICAgICAgICBQcmludCBvdXQgYSBzaW5nbGUgbm9kZSwgZm9yIGRlYnVnZ2luZy4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyB2b2lkIHByaW50Tm9kZShSQkJJTm9kZSBuKSB7CisKKyAgICAgICAgaWYgKG49PW51bGwpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQgKCIgLS0gbnVsbCAtLVxuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludCggbi5mU2VyaWFsTnVtLCAxMCk7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludFN0cmluZyhub2RlVHlwZU5hbWVzW24uZlR5cGVdLCAxMSk7CisgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChuLmZQYXJlbnQ9PW51bGw/IDAgICAgIDogbi5mUGFyZW50LmZTZXJpYWxOdW0sIDExKTsKKyAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KG4uZkxlZnRDaGlsZD09bnVsbD8gMCAgOiBuLmZMZWZ0Q2hpbGQuZlNlcmlhbE51bSwgMTEpOworICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQobi5mUmlnaHRDaGlsZD09bnVsbD8gMCA6IG4uZlJpZ2h0Q2hpbGQuZlNlcmlhbE51bSwgMTIpOworICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQobi5mRmlyc3RQb3MsIDEyKTsKKyAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KG4uZlZhbCwgNyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChuLmZUeXBlID09IHZhclJlZikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiICsgbi5mVGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsKKyAgICB9CisgCisKKyAgICAvLyBQcmludCBhIFN0cmluZyBpbiBhIGZpeGVkIGZpZWxkIHNpemUuCisgICAgLy8gRGVidWdnaW5nIGZ1bmN0aW9uLgorICAgIHN0YXRpYyB2b2lkIHByaW50U3RyaW5nKFN0cmluZyBzLCBpbnQgbWluV2lkdGgpCisgICAgeworICAgICAgICBmb3IgKGludCBpPW1pbldpZHRoOyBpPDA7IGkrKykgeworICAgICAgICAgICAgLy8gbmVnYXRpdmUgd2lkdGggbWVhbnMgcGFkIGxlYWRpbmcgc3BhY2VzLCBub3QgZml4ZWQgd2lkdGguCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCcgJyk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT1zLmxlbmd0aCgpOyBpPG1pbldpZHRoOyBpKyspIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoJyAnKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMpOworICAgIH0KKyAgICAKKyAgICAgLy8KKyAgICAgLy8gIFByaW50IGFuIGludCBpbiBhIGZpeGVkIHNpemUgZmllbGQuCisgICAgIC8vICBEZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgIC8vCisgICAgIHN0YXRpYyB2b2lkIHByaW50SW50KGludCBpLCBpbnQgbWluV2lkdGgpIHsKKyAgICAgICAgIFN0cmluZyBzID0gSW50ZWdlci50b1N0cmluZyhpKTsKKyAgICAgICAgIHByaW50U3RyaW5nKHMsIE1hdGgubWF4KG1pbldpZHRoLCBzLmxlbmd0aCgpKzEpKTsKKyAgICAgfQorICAgICAKKyAgICAgc3RhdGljIHZvaWQgcHJpbnRIZXgoaW50IGksIGludCBtaW5XaWR0aCkgeworICAgICAgICAgU3RyaW5nIHMgPSBJbnRlZ2VyLnRvU3RyaW5nKGksIDE2KTsKKyAgICAgICAgIFN0cmluZyBsZWFkaW5nWmVyb2VzID0gIjAwMDAwIi5zdWJzdHJpbmcoMCwgTWF0aC5tYXgoMCwgNS1zLmxlbmd0aCgpKSk7CisgICAgICAgICBzID0gbGVhZGluZ1plcm9lcytzOworICAgICAgICAgcHJpbnRTdHJpbmcocywgbWluV2lkdGgpOworICAgICB9CisgCisKKyAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAvLworICAgICAvLyAgICAgICAgcHJpbnQuICAgICAgICAgUHJpbnQgb3V0IHRoZSB0cmVlIG9mIG5vZGVzIHJvb3RlZCBhdCAidGhpcyIKKyAgICAgLy8KKyAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZvaWQgcHJpbnRUcmVlKGJvb2xlYW4gcHJpbnRIZWFkaW5nKSB7CisgICAgICAgIGlmIChwcmludEhlYWRpbmcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIFNlcmlhbCAgICAgICB0eXBlICAgICBQYXJlbnQgIExlZnRDaGlsZCAgUmlnaHRDaGlsZCAgICBwb3NpdGlvbiAgdmFsdWUiKTsKKyAgICAgICAgfQorICAgICAgICBwcmludE5vZGUodGhpcyk7CisgICAgICAgICAgICAvLyBPbmx5IGR1bXAgdGhlIGRlZmluaXRpb24gdW5kZXIgYSB2YXJpYWJsZSByZWZlcmVuY2UgaWYgYXNrZWQgdG8uCisgICAgICAgICAgICAvLyBVbmNvbmRpdGluYWxseSBkdW1wIGNoaWxkcmVuIG9mIGFsbCBvdGhlciBub2RlIHR5cGVzLgorICAgICAgICAgICAgaWYgKGZUeXBlICE9IHZhclJlZikgeworICAgICAgICAgICAgICAgIGlmIChmTGVmdENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZkxlZnRDaGlsZC5wcmludFRyZWUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZlJpZ2h0Q2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmUmlnaHRDaGlsZC5wcmludFRyZWUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTBiZmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzMwIEBACisvLworLy8gICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKy8vICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLworLy8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKKworY2xhc3MgUkJCSVJ1bGVCdWlsZGVyIHsKKyAgICAvLyAgIFRoaXMgaXMgdGhlIG1haW4gY2xhc3MgZm9yIGJ1aWxkaW5nIChjb21waWxpbmcpIGJyZWFrIHJ1bGVzIGludG8gdGhlIHRhYmxlcworICAgIC8vICAgIHJlcXVpcmVkIGJ5IHRoZSBydW50aW1lIFJCQkkgZW5naW5lLgorICAgIC8vCisgICAgCisgICAgU3RyaW5nIGZEZWJ1Z0VudjsgICAgICAgICAgICAgIC8vIGNvbnRyb2xzIGRlYnVnIHRyYWNlIG91dHB1dAorICAgIFN0cmluZyBmUnVsZXM7ICAgICAgICAgICAgICAgICAvLyBUaGUgcnVsZSBzdHJpbmcgdGhhdCB3ZSBhcmUgY29tcGlsaW5nCisgICAgUkJCSVJ1bGVTY2FubmVyIGZTY2FubmVyOyAgICAgIC8vIFRoZSBzY2FubmVyLgorCisgICAgCisgICAgLy8KKyAgICAvLyAgVGhlcmUgYXJlIGZvdXIgc2VwYXJhdGUgcGFyc2UgdHJlZXMgZ2VuZXJhdGVkLCBvbmUgZm9yIGVhY2ggb2YgdGhlCisgICAgLy8gICAgZm9yd2FyZCBydWxlcywgcmV2ZXJzZSBydWxlcywgc2FmZSBmb3J3YXJkIHJ1bGVzIGFuZCBzYWZlIHJldmVyc2UgcnVsZXMuCisgICAgLy8gIFRoaXMgYXJyYXkgcmVmZXJlbmNlcyB0aGUgcm9vdCBvZiBlYWNoIG9mIHRoZSB0cmVlcy4KKyAgICAvLyAgCisgICAgUkJCSU5vZGVbXSAgICAgICAgIGZUcmVlUm9vdHMgPSBuZXcgUkJCSU5vZGVbNF07CisgICAgc3RhdGljIGZpbmFsIGludCAgIGZGb3J3YXJkVHJlZSA9IDA7ICAvLyBJbmRleGVzIGludG8gdGhlIGFib3ZlIGZUcmVlUm9vdHMgYXJyYXkKKyAgICBzdGF0aWMgZmluYWwgaW50ICAgZlJldmVyc2VUcmVlID0gMTsgIC8vICAgZm9yIGVhY2ggb2YgdGhlIHRyZWVzLgorICAgIHN0YXRpYyBmaW5hbCBpbnQgICBmU2FmZUZ3ZFRyZWUgPSAyOyAgLy8gICAoaW4gQywgdGhlc2UgYXJlIHBvaW50ZXIgdmFyaWFibGVzIGFuZAorICAgIHN0YXRpYyBmaW5hbCBpbnQgICBmU2FmZVJldlRyZWUgPSAzOyAgLy8gICAgdGhlcmUgaXMgbm8gYXJyYXkuKQorICAgIGludCBmRGVmYXVsdFRyZWUgPSBmRm9yd2FyZFRyZWU7ICAgICAgLy8gRm9yIHJ1bGVzIG5vdCBxdWFsaWZpZWQgd2l0aCBhICEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIHRyZWUgdG8gd2hpY2ggdGhleSBiZWxvbmcgdG8uCisKKyAgICBib29sZWFuIGZDaGFpblJ1bGVzOyAgICAgICAgICAgICAgICAgIC8vIFRydWUgZm9yIGNoYWluZWQgVW5pY29kZSBUUiBzdHlsZSBydWxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbHNlIGZvciB0cmFkaXRpb25hbCByZWdleHAgcnVsZXMuCisKKyAgICBib29sZWFuIGZMQkNNTm9DaGFpbjsgICAgICAgICAgICAgICAgIC8vIFRydWU6ICBzdXBwcmVzcyBjaGFpbmluZyBvZiBydWxlcyBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjaGFycyB3aXRoIExpbmVCcmVhayBwcm9wZXJ0eSA9PSBDTS4KKworICAgIGJvb2xlYW4gZkxvb2tBaGVhZEhhcmRCcmVhazsgICAgICAgICAgLy8gVHJ1ZTogIExvb2sgYWhlYWQgbWF0Y2hlcyBjYXVzZSBhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1tZWRpYXRlIGJyZWFrLCBubyBjb250aW51aW5nIGZvciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvbmdlc3QgbWF0Y2guCisKKyAgICBSQkJJU2V0QnVpbGRlciBmU2V0QnVpbGRlcjsgICAgICAgICAgIC8vIFNldCBhbmQgQ2hhcmFjdGVyIENhdGVnb3J5IGJ1aWxkZXIuCisgICAgTGlzdCBmVVNldE5vZGVzOyAgICAgICAgICAgICAgICAgICAgICAvLyBWZWN0b3Igb2YgYWxsIHVzZXQgbm9kZXMuCisgICAgUkJCSVRhYmxlQnVpbGRlciBmRm9yd2FyZFRhYmxlczsgICAgICAvLyBTdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcworICAgIFJCQklUYWJsZUJ1aWxkZXIgZlJldmVyc2VUYWJsZXM7CisgICAgUkJCSVRhYmxlQnVpbGRlciBmU2FmZUZ3ZFRhYmxlczsKKyAgICBSQkJJVGFibGVCdWlsZGVyIGZTYWZlUmV2VGFibGVzOworCisgICAgLy8KKyAgICAvLyBTdGF0dXMge3RhZ30gdmFsdWVzLiAgIFRoZXNlIHN0cnVjdHVyZXMgYXJlIGNvbW1vbiB0byBhbGwgb2YgdGhlIHJ1bGUgc2V0cyAoRm9yd2FyZCwgUmV2ZXJzZSwgZXRjLikuCisgICAgLy8KKyAgICBNYXAgZlN0YXR1c1NldHMgPSBuZXcgSGFzaE1hcCgpOyAgICAgIC8vIFN0YXR1cyB2YWx1ZSBzZXRzIGVuY291bnRlcmVkIHNvIGZhci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBNYXAgS2V5IGlzIHRoZSBzZXQgb2YgdmFsdWVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIE1hcCBWYWx1ZSBpcyB0aGUgcnVudGltZSBhcnJheSBpbmRleC4KKworICAgIExpc3QgZlJ1bGVTdGF0dXNWYWxzOyAgICAgICAgICAgICAgICAgLy8gTGlzdCBvZiBJbnRlZ2VyIG9iamVjdHMuICBIYXMgc2FtZSBsYXlvdXQgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHJ1bnRpbWUgYXJyYXkgb2Ygc3RhdHVzICh0YWcpIHZhbHVlcyAtIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIG51bWJlciBvZiB2YWx1ZXMgaW4gZ3JvdXAgMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIGZpcnN0IHN0YXR1cyB2YWx1ZSBpbiBncm91cCAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgMm5kIHN0YXR1cyB2YWx1ZSBpbiBncm91cCAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgbnVtYmVyIG9mIHZhbHVlcyBpbiBncm91cCAyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgZmlyc3Qgc3RhdHVzIHZhbHVlIGluIGdyb3VwIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBldGMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vIEVycm9yIGNvZGVzIGZyb20gSUNVNEMuCisgICAgLy8gICAgdXNpbmcgdGhlc2Ugc2ltcGxpZmllZCB0aGUgcG9ydGluZywgYW5kIGNvbnNvbGlkYXRlZCB0aGUKKyAgICAvLyAgICBjcmVhdGlvbiBvZiBKYXZhIGV4Y2VwdGlvbnMKKyAgICAvLworICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfRVJST1JfU1RBUlQgPSAweDEwMjAwOworICAgIC8qKjwgU3RhcnQgb2YgY29kZXMgaW5kaWNhdGluZyBCcmVhayBJdGVyYXRvciBmYWlsdXJlcyAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfSU5URVJOQUxfRVJST1IgPSAweDEwMjAxOworICAgIC8qKjwgQW4gaW50ZXJuYWwgZXJyb3IgKGJ1Zykgd2FzIGRldGVjdGVkLiAgICAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfSEVYX0RJR0lUU19FWFBFQ1RFRCA9IDB4MTAyMDI7CisgICAgLyoqPCBIZXggZGlnaXRzIGV4cGVjdGVkIGFzIHBhcnQgb2YgYSBlc2NhcGVkIGNoYXIgaW4gYSBydWxlLiAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfU0VNSUNPTE9OX0VYUEVDVEVEID0gMHgxMDIwMzsKKyAgICAvKio8IE1pc3NpbmcgJzsnIGF0IHRoZSBlbmQgb2YgYSBSQkJJIHJ1bGUuICAgICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX1JVTEVfU1lOVEFYID0gMHgxMDIwNDsKKyAgICAvKio8IFN5bnRheCBlcnJvciBpbiBSQkJJIHJ1bGUuICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX1VOQ0xPU0VEX1NFVCA9IDB4MTAyMDU7CisgICAgLyoqPCBVbmljb2RlU2V0IHdpdGluZyBhbiBSQkJJIHJ1bGUgbWlzc2luZyBhIGNsb3NpbmcgJ10nLiAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX0FTU0lHTl9FUlJPUiA9IDB4MTAyMDY7CisgICAgLyoqPCBTeW50YXggZXJyb3IgaW4gUkJCSSBydWxlIGFzc2lnbm1lbnQgc3RhdGVtZW50LiAgICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19WQVJJQUJMRV9SRURGSU5JVElPTiA9IDB4MTAyMDc7CisgICAgLyoqPCBSQkJJIHJ1bGUgJFZhcmlhYmxlIHJlZGVmaW5lZC4gICAgICAgICAgICAgICAgICAgICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19NSVNNQVRDSEVEX1BBUkVOID0gMHgxMDIwODsKKyAgICAvKio8IE1pcy1tYXRjaGVkIHBhcmVudGhlc2VzIGluIGFuIFJCQkkgcnVsZS4gICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX05FV19MSU5FX0lOX1FVT1RFRF9TVFJJTkcgPSAweDEwMjA5OworICAgIC8qKjwgTWlzc2luZyBjbG9zaW5nIHF1b3RlIGluIGFuIFJCQkkgcnVsZS4gICAgICAgICAgICAqLworICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgVV9CUktfVU5ERUZJTkVEX1ZBUklBQkxFID0gMHgxMDIwYTsKKyAgICAvKio8IFVzZSBvZiBhbiB1bmRlZmluZWQgJFZhcmlhYmxlIGluIGFuIFJCQkkgcnVsZS4gICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX0lOSVRfRVJST1IgPSAweDEwMjBiOworICAgIC8qKjwgSW5pdGlhbGl6YXRpb24gZmFpbHVyZS4gIFByb2JhYmxlIG1pc3NpbmcgSUNVIERhdGEuICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19SVUxFX0VNUFRZX1NFVCA9IDB4MTAyMGM7CisgICAgLyoqPCBSdWxlIGNvbnRhaW5zIGFuIGVtcHR5IFVuaWNvZGUgU2V0LiAgICAgICAgICAgICAgICovCisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19VTlJFQ09HTklaRURfT1BUSU9OID0gMHgxMDIwZDsKKyAgICAvKio8ICEhb3B0aW9uIGluIFJCQkkgcnVsZXMgbm90IHJlY29nbml6ZWQuICAgICAgICAgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX01BTEZPUk1FRF9SVUxFX1RBRyA9IDB4MTAyMGU7CisgICAgLyoqPCBUaGUge25ubn0gdGFnIG9uIGEgcnVsZSBpcyBtYWwgZm9ybWVkICAgICAgICAgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBVX0JSS19NQUxGT1JNRURfU0VUID0gMHgxMDIwZjsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVfQlJLX0VSUk9SX0xJTUlUID0gMHgxMDIxMDsKKyAgICAvKio8IFRoaXMgbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgdmFsdWUgdG8gaW5kaWNhdGUgdGhlIGxpbWl0IGZvciBCcmVhayBJdGVyYXRvciBmYWlsdXJlcyAqLworCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBDb25zdHJ1Y3Rvci4KKyAgICAvLworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklSdWxlQnVpbGRlcihTdHJpbmcgcnVsZXMpCisgICAgeworICAgICAgICBmRGVidWdFbnYgICAgICAgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIlVfUkJCSURFQlVHIik7CisgICAgICAgIGZSdWxlcyAgICAgICAgICA9IHJ1bGVzOworICAgICAgICBmVVNldE5vZGVzICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGZSdWxlU3RhdHVzVmFscyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZlNjYW5uZXIgICAgICAgID0gbmV3IFJCQklSdWxlU2Nhbm5lcih0aGlzKTsKKyAgICAgICAgZlNldEJ1aWxkZXIgICAgID0gbmV3IFJCQklTZXRCdWlsZGVyKHRoaXMpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gICBmbGF0dGVuRGF0YSgpIC0gIENvbGxlY3QgdXAgdGhlIGNvbXBpbGVkIFJCQkkgcnVsZSBkYXRhIGFuZCBwdXQgaXQgaW50bworICAgIC8vICAgICAgICAgICAgICAgICAgICB0aGUgZm9ybWF0IGZvciBzYXZpbmcgaW4gSUNVIGRhdGEgZmlsZXMsCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgU2VlIHRoZSBJQ1U0QyBmaWxlIGNvbW1vbi9yYmlkYXRhLmggZm9yIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24uCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgZmluYWwgaW50IGFsaWduOChpbnQgaSkKKyAgICB7CisgICAgICAgIHJldHVybiAoaSArIDcpICYgMHhmZmZmZmZmODsKKyAgICB9CisKKyAgICB2b2lkIGZsYXR0ZW5EYXRhKE91dHB1dFN0cmVhbSBvcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YU91dHB1dFN0cmVhbSBkb3MgPSBuZXcgRGF0YU91dHB1dFN0cmVhbShvcyk7CisgICAgICAgIGludCBpOworCQorICAgICAgICAvLyAgUmVtb3ZlIGNvbW1lbnRzIGFuZCB3aGl0ZXNwYWNlIGZyb20gdGhlIHJ1bGVzIHRvIG1ha2UgaXQgc21hbGxlci4KKyAgICAgICAgU3RyaW5nIHN0cmlwcGVkUnVsZXMgPSBSQkJJUnVsZVNjYW5uZXIuc3RyaXBSdWxlcyhmUnVsZXMpOworCQorICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNpemUgb2YgZWFjaCBzZWN0aW9uIGluIHRoZSBkYXRhIGluIGJ5dGVzLgorICAgICAgICAvLyAgIFNpemVzIGhlcmUgYXJlIHBhZGRlZCB1cCB0byBhIG11bHRpcGxlIG9mIDggZm9yIGJldHRlciBtZW1vcnkgYWxpZ25tZW50LgorICAgICAgICAvLyAgIFNlY3Rpb25zIHNpemVzIGFjdHVhbGx5IHN0b3JlZCBpbiB0aGUgaGVhZGVyIGFyZSBmb3IgdGhlIGFjdHVhbCBkYXRhCisgICAgICAgIC8vICAgICB3aXRob3V0IHRoZSBwYWRkaW5nLgorICAgICAgICAvLworICAgICAgICBpbnQgaGVhZGVyU2l6ZSAgICAgICA9IDI0ICogNDsgICAgIC8vIGFsaWduOChzaXplb2YoUkJCSURhdGFIZWFkZXIpKTsKKyAgICAgICAgaW50IGZvcndhcmRUYWJsZVNpemUgPSBhbGlnbjgoZkZvcndhcmRUYWJsZXMuZ2V0VGFibGVTaXplKCkpOworICAgICAgICBpbnQgcmV2ZXJzZVRhYmxlU2l6ZSA9IGFsaWduOChmUmV2ZXJzZVRhYmxlcy5nZXRUYWJsZVNpemUoKSk7CisgICAgICAgIGludCBzYWZlRndkVGFibGVTaXplID0gYWxpZ244KGZTYWZlRndkVGFibGVzLmdldFRhYmxlU2l6ZSgpKTsKKyAgICAgICAgaW50IHNhZmVSZXZUYWJsZVNpemUgPSBhbGlnbjgoZlNhZmVSZXZUYWJsZXMuZ2V0VGFibGVTaXplKCkpOworICAgICAgICBpbnQgdHJpZVNpemUgICAgICAgICA9IGFsaWduOChmU2V0QnVpbGRlci5nZXRUcmllU2l6ZSgpKTsKKyAgICAgICAgaW50IHN0YXR1c1RhYmxlU2l6ZSAgPSBhbGlnbjgoZlJ1bGVTdGF0dXNWYWxzLnNpemUoKSAqIDQpOworICAgICAgICBpbnQgcnVsZXNTaXplICAgICAgICA9IGFsaWduOCgoc3RyaXBwZWRSdWxlcy5sZW5ndGgoKSkgKiAyKTsKKyAgICAgICAgaW50IHRvdGFsU2l6ZSAgICAgICAgPSBoZWFkZXJTaXplICsgZm9yd2FyZFRhYmxlU2l6ZSArIHJldmVyc2VUYWJsZVNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzYWZlRndkVGFibGVTaXplICsgc2FmZVJldlRhYmxlU2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXR1c1RhYmxlU2l6ZSArIHRyaWVTaXplICsgcnVsZXNTaXplOworICAgICAgICBpbnQgb3V0cHV0UG9zID0gMDsgICAgICAgICAgICAgICAvLyBUcmFjayBzdHJlYW0gcG9zaXRpb24sIHN0YXJ0aW5nIGZyb20gUkJCSURhdGFIZWFkZXIuCisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gV3JpdGUgb3V0IGFuIElDVSBEYXRhIEhlYWRlcgorICAgICAgICAvLyAgIFRPRE86ICBhY3R1YWxseSBjcmVhdGUgYSByZWFsIGhlYWRlciwgcmF0aGVyIHRoYW4ganVzdCBhIHBsYWNlaG9sZGVyLgorICAgICAgICAvLyAgICAgICAgICAgVGhlIGVtcHR5IHBsYWNlaG9sZGVyIGlzIG9rIGZvciBjb21waWxlLWFuZC1nbyBmcm9tIHdpdGhpbiBJQ1U0Si4KKyAgICAgICAgLy8gICAgICAgICAgIFJlcGxpY2F0aW5nIHRoZSBJQ1U0QyBnZW5icmsgdG9vbCBmb3IgYnVpbGRpbmcgLmJyayByZXNvdXJjZXMgd291bGQgbmVlZCBhIHJlYWwgaGVhZGVyLgorICAgICAgICAvLworICAgICAgICBieXRlW10gSUNVRGF0YUhlYWRlciA9IG5ldyBieXRlWzB4ODBdOworICAgICAgICBkb3Mud3JpdGUoSUNVRGF0YUhlYWRlcik7CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBSQkJJRGF0YUhlYWRlcgorICAgICAgICAvLworICAgICAgICBpbnRbXSBoZWFkZXIgPSBuZXcgaW50W1JCQklEYXRhV3JhcHBlci5ESF9TSVpFXTsgICAgICAgICAgICAgICAgIC8vIHNpemVvZiBzdHJ1Y3QgUkJCSURhdGFIZWFkZXIKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9NQUdJQ10gICAgICAgICA9IDB4YjFhMDsKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9GT1JNQVRWRVJTSU9OXSA9IDB4MDMwMTAwMDA7ICAgICAgICAgICAvLyB1aW50OF90IGZGb3JtYXRWZXJzaW9uWzRdOworICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX0xFTkdUSF0gICAgICAgID0gdG90YWxTaXplOyAgICAgICAgICAgIC8vIGZMZW5ndGgsIHRoZSB0b3RhbCBzaXplIG9mIGFsbCBydWxlIHNlY3Rpb25zLgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX0NBVENPVU5UXSAgICAgID0gZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKTsgLy8gZkNhdENvdW50LgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX0ZUQUJMRV0gICAgICAgID0gaGVhZGVyU2l6ZTsgICAgICAgICAgIC8vIGZGVGFibGUKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9GVEFCTEVMRU5dICAgICA9IGZvcndhcmRUYWJsZVNpemU7ICAgICAvLyBmVGFibGVMZW4KKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9SVEFCTEVdICAgICAgICA9IGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfRlRBQkxFXSArIGZvcndhcmRUYWJsZVNpemU7IC8vIGZSVGFibGUKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9SVEFCTEVMRU5dICAgICA9IHJldmVyc2VUYWJsZVNpemU7ICAgICAvLyBmUlRhYmxlTGVuCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU0ZUQUJMRV0gICAgICAgPSBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1JUQUJMRV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyByZXZlcnNlVGFibGVTaXplOyAvLyBmU1RhYmxlCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU0ZUQUJMRUxFTl0gICAgPSBzYWZlRndkVGFibGVTaXplOyAgICAgLy8gZlNUYWJsZUxlbgorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1NSVEFCTEVdICAgICAgID0gaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TRlRBQkxFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNhZmVGd2RUYWJsZVNpemU7IC8vIGZTUlRhYmxlCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU1JUQUJMRUxFTl0gICAgPSBzYWZlUmV2VGFibGVTaXplOyAgICAgLy8gZlNSVGFibGVMZW4KKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9UUklFXSAgICAgICAgICA9IGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfU1JUQUJMRV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzYWZlUmV2VGFibGVTaXplOyAvLyBmVHJpZQorICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1RSSUVMRU5dICAgICAgID0gZlNldEJ1aWxkZXIuZ2V0VHJpZVNpemUoKTsgLy8gZlRyaWVMZW4KKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9TVEFUVVNUQUJMRV0gICA9IGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfVFJJRV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1RSSUVMRU5dOworICAgICAgICBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1NUQVRVU1RBQkxFTEVOXSA9IHN0YXR1c1RhYmxlU2l6ZTsgLy8gZlN0YXR1c1RhYmxlTGVuCisgICAgICAgIGhlYWRlcltSQkJJRGF0YVdyYXBwZXIuREhfUlVMRVNPVVJDRV0gICAgPSBoZWFkZXJbUkJCSURhdGFXcmFwcGVyLkRIX1NUQVRVU1RBQkxFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXR1c1RhYmxlU2l6ZTsKKyAgICAgICAgaGVhZGVyW1JCQklEYXRhV3JhcHBlci5ESF9SVUxFU09VUkNFTEVOXSA9IHN0cmlwcGVkUnVsZXMubGVuZ3RoKCkgKiAyOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaGVhZGVyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3Mud3JpdGVJbnQoaGVhZGVyW2ldKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSA0OworICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBhY3R1YWwgc3RhdGUgdGFibGVzLgorICAgICAgICBzaG9ydFtdIHRhYmxlRGF0YTsKKyAgICAgICAgdGFibGVEYXRhID0gZkZvcndhcmRUYWJsZXMuZXhwb3J0VGFibGUoKTsKKyAgICAgICAgQXNzZXJ0LmFzc3J0KG91dHB1dFBvcyA9PSBoZWFkZXJbNF0pOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGFibGVEYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3Mud3JpdGVTaG9ydCh0YWJsZURhdGFbaV0pOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDI7CisgICAgICAgIH0KKworICAgICAgICB0YWJsZURhdGEgPSBmUmV2ZXJzZVRhYmxlcy5leHBvcnRUYWJsZSgpOworICAgICAgICBBc3NlcnQuYXNzcnQob3V0cHV0UG9zID09IGhlYWRlcls2XSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YWJsZURhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGRvcy53cml0ZVNob3J0KHRhYmxlRGF0YVtpXSk7CisgICAgICAgICAgICBvdXRwdXRQb3MgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIEFzc2VydC5hc3NydChvdXRwdXRQb3MgPT0gaGVhZGVyWzhdKTsKKyAgICAgICAgdGFibGVEYXRhID0gZlNhZmVGd2RUYWJsZXMuZXhwb3J0VGFibGUoKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHRhYmxlRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZG9zLndyaXRlU2hvcnQodGFibGVEYXRhW2ldKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSAyOworICAgICAgICB9CisKKyAgICAgICAgQXNzZXJ0LmFzc3J0KG91dHB1dFBvcyA9PSBoZWFkZXJbMTBdKTsKKyAgICAgICAgdGFibGVEYXRhID0gZlNhZmVSZXZUYWJsZXMuZXhwb3J0VGFibGUoKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHRhYmxlRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZG9zLndyaXRlU2hvcnQodGFibGVEYXRhW2ldKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSAyOworICAgICAgICB9CisKKyAgICAgICAgLy8gd3JpdGUgb3V0IHRoZSBUcmllIHRhYmxlCisgICAgICAgIEFzc2VydC5hc3NydChvdXRwdXRQb3MgPT0gaGVhZGVyWzEyXSk7CisgICAgICAgIGZTZXRCdWlsZGVyLnNlcmlhbGl6ZVRyaWUob3MpOworICAgICAgICBvdXRwdXRQb3MgKz0gaGVhZGVyWzEzXTsKKyAgICAgICAgd2hpbGUgKG91dHB1dFBvcyAlIDggIT0gMCkgeyAvLyBwYWQgdG8gYW4gOCBieXRlIGJvdW5kYXJ5CisgICAgICAgICAgICBkb3Mud3JpdGUoMCk7CisgICAgICAgICAgICBvdXRwdXRQb3MgKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgc3RhdHVzIHt0YWd9IHRhYmxlLgorICAgICAgICBBc3NlcnQuYXNzcnQob3V0cHV0UG9zID09IGhlYWRlclsxNl0pOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZlJ1bGVTdGF0dXNWYWxzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBJbnRlZ2VyIHZhbCA9IChJbnRlZ2VyKSBmUnVsZVN0YXR1c1ZhbHMuZ2V0KGkpOworICAgICAgICAgICAgZG9zLndyaXRlSW50KHZhbC5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgIG91dHB1dFBvcyArPSA0OworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKG91dHB1dFBvcyAlIDggIT0gMCkgeyAvLyBwYWQgdG8gYW4gOCBieXRlIGJvdW5kYXJ5CisgICAgICAgICAgICBkb3Mud3JpdGUoMCk7CisgICAgICAgICAgICBvdXRwdXRQb3MgKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgc3RyaXBwZWQgcnVsZXMgKHJ1bGVzIHdpdGggZXh0cmEgc3BhY2VzIHJlbW92ZWQKKyAgICAgICAgLy8gICBUaGVzZSBnbyBsYXN0IGluIHRoZSBkYXRhIGFyZWEsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdCBsYXN0IGluIHRoZSBoZWFkZXIuCisgICAgICAgIEFzc2VydC5hc3NydChvdXRwdXRQb3MgPT0gaGVhZGVyWzE0XSk7CisgICAgICAgIGRvcy53cml0ZUNoYXJzKHN0cmlwcGVkUnVsZXMpOworICAgICAgICBvdXRwdXRQb3MgKz0gc3RyaXBwZWRSdWxlcy5sZW5ndGgoKSAqIDI7CisgICAgICAgIHdoaWxlIChvdXRwdXRQb3MgJSA4ICE9IDApIHsgLy8gcGFkIHRvIGFuIDggYnl0ZSBib3VuZGFyeQorICAgICAgICAgICAgZG9zLndyaXRlKDApOworICAgICAgICAgICAgb3V0cHV0UG9zICs9IDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBjb21waWxlUnVsZXMgICAgICAgICAgY29tcGlsZSBzb3VyY2UgcnVsZXMsIHBsYWNpbmcgdGhlIGNvbXBpbGVkIGZvcm0gaW50byBhIG91dHB1dCBzdHJlYW0KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb21waWxlZCBmb3JtIGlzIGlkZW50aWNhbCB0byB0aGF0IGZyb20gSUNVNEMgKEJpZyBFbmRpYW4pLgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3RhdGljIHZvaWQgY29tcGlsZVJ1bGVzKFN0cmluZyBydWxlcywgT3V0cHV0U3RyZWFtIG9zKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgdGhlIGlucHV0IHJ1bGVzLCBnZW5lcmF0ZSBhIHBhcnNlIHRyZWUsIHN5bWJvbCB0YWJsZSwKKyAgICAgICAgLy8gYW5kIGxpc3Qgb2YgYWxsIFVuaWNvZGUgU2V0cyByZWZlcmVuY2VkIGJ5IHRoZSBydWxlcy4KKyAgICAgICAgLy8KKyAgICAgICAgUkJCSVJ1bGVCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgUkJCSVJ1bGVCdWlsZGVyKHJ1bGVzKTsKKyAgICAgICAgYnVpbGRlci5mU2Nhbm5lci5wYXJzZSgpOworCisgICAgICAgIC8vCisgICAgICAgIC8vIFVuaWNvZGVTZXQgcHJvY2Vzc2luZy4KKyAgICAgICAgLy8gICAgTXVuZ2UgdGhlIFVuaWNvZGUgU2V0cyB0byBjcmVhdGUgYSBzZXQgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMuCisgICAgICAgIC8vICAgIEdlbmVyYXRlIHRoZSBtYXBwaW5nIHRhYmxlcyAoVFJJRSkgZnJvbSBpbnB1dCAzMi1iaXQgY2hhcmFjdGVycyB0bworICAgICAgICAvLyAgICB0aGUgY2hhcmFjdGVyIGNhdGVnb3JpZXMuCisgICAgICAgIC8vCisgICAgICAgIGJ1aWxkZXIuZlNldEJ1aWxkZXIuYnVpbGQoKTsKKworICAgICAgICAvLworICAgICAgICAvLyAgIEdlbmVyYXRlIHRoZSBERkEgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4KKyAgICAgICAgLy8KKyAgICAgICAgYnVpbGRlci5mRm9yd2FyZFRhYmxlcyA9IG5ldyBSQkJJVGFibGVCdWlsZGVyKGJ1aWxkZXIsIGZGb3J3YXJkVHJlZSk7CisgICAgICAgIGJ1aWxkZXIuZlJldmVyc2VUYWJsZXMgPSBuZXcgUkJCSVRhYmxlQnVpbGRlcihidWlsZGVyLCBmUmV2ZXJzZVRyZWUpOworICAgICAgICBidWlsZGVyLmZTYWZlRndkVGFibGVzID0gbmV3IFJCQklUYWJsZUJ1aWxkZXIoYnVpbGRlciwgZlNhZmVGd2RUcmVlKTsKKyAgICAgICAgYnVpbGRlci5mU2FmZVJldlRhYmxlcyA9IG5ldyBSQkJJVGFibGVCdWlsZGVyKGJ1aWxkZXIsIGZTYWZlUmV2VHJlZSk7CisgICAgICAgIGJ1aWxkZXIuZkZvcndhcmRUYWJsZXMuYnVpbGQoKTsKKyAgICAgICAgYnVpbGRlci5mUmV2ZXJzZVRhYmxlcy5idWlsZCgpOworICAgICAgICBidWlsZGVyLmZTYWZlRndkVGFibGVzLmJ1aWxkKCk7CisgICAgICAgIGJ1aWxkZXIuZlNhZmVSZXZUYWJsZXMuYnVpbGQoKTsKKyAgICAgICAgaWYgKGJ1aWxkZXIuZkRlYnVnRW52ICE9IG51bGwKKyAgICAgICAgICAgICAgICAmJiBidWlsZGVyLmZEZWJ1Z0Vudi5pbmRleE9mKCJzdGF0ZXMiKSA+PSAwKSB7CisgICAgICAgICAgICBidWlsZGVyLmZGb3J3YXJkVGFibGVzLnByaW50UnVsZVN0YXR1c1RhYmxlKCk7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyAgIFBhY2thZ2UgdXAgdGhlIGNvbXBpbGVkIGRhdGEsIHdyaXRpbmcgaXQgdG8gYW4gb3V0cHV0IHN0cmVhbQorICAgICAgICAvLyAgICAgIGluIHRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIElDVTRDIHJ1bnRpbWUgZm9ybWF0LgorICAgICAgICAvLworICAgICAgICBidWlsZGVyLmZsYXR0ZW5EYXRhKG9zKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJUnVsZVBhcnNlVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlUGFyc2VUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhOGU5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJUnVsZVBhcnNlVGFibGUuamF2YQpAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwKKyAqIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKyAKKy8qKgorICogR2VuZXJhdGVkIEphdmEgRmlsZS4gIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisgKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHN0YXRlIHRhYmxlIGZvciB0aGUgSUNVIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IKKyAqIHJ1bGUgcGFyc2VyLgorICogSXQgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBQZXJsIHNjcmlwdCAicmJiaWNzdC5wbCIgZnJvbQorICogdGhlIHJ1bGUgcGFyc2VyIHN0YXRlIGRlZmluaXRpb25zIGZpbGUgInJiYmlycHQudHh0Ii4KKyAqIEBpbnRlcm5hbCAKKyAqCisgKi8KK2NsYXNzIFJCQklSdWxlUGFyc2VUYWJsZQoreworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9DaGVja1ZhckRlZiA9IDE7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0RvdEFueSA9IDI7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0VuZEFzc2lnbiA9IDM7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0VuZE9mUnVsZSA9IDQ7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0VuZFZhcmlhYmxlTmFtZSA9IDU7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0V4aXQgPSA2OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9FeHByQ2F0T3BlcmF0b3IgPSA3OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9FeHByRmluaXNoZWQgPSA4OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9FeHByT3JPcGVyYXRvciA9IDk7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0V4cHJSUGFyZW4gPSAxMDsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvRXhwclN0YXJ0ID0gMTE7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb0xQYXJlbiA9IDEyOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9OT1AgPSAxMzsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvT3B0aW9uRW5kID0gMTQ7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb09wdGlvblN0YXJ0ID0gMTU7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1JldmVyc2VEaXIgPSAxNjsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvUnVsZUNoYXIgPSAxNzsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvUnVsZUVycm9yID0gMTg7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1J1bGVFcnJvckFzc2lnbkV4cHIgPSAxOTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvU2NhblVuaWNvZGVTZXQgPSAyMDsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvU2xhc2ggPSAyMTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvU3RhcnRBc3NpZ24gPSAyMjsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGRvU3RhcnRUYWdWYWx1ZSA9IDIzOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9TdGFydFZhcmlhYmxlTmFtZSA9IDI0OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9UYWdEaWdpdCA9IDI1OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9UYWdFeHBlY3RlZEVycm9yID0gMjY7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1RhZ1ZhbHVlID0gMjc7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1VuYXJ5T3BQbHVzID0gMjg7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBkb1VuYXJ5T3BRdWVzdGlvbiA9IDI5OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9VbmFyeU9wU3RhciA9IDMwOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQgZG9WYXJpYWJsZU5hbWVFeHBlY3RlZEVyciA9IDMxOworIAorICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfZGVmYXVsdCA9IDI1NTsKKyAgICAgc3RhdGljIGZpbmFsIHNob3J0IGtSdWxlU2V0X2RpZ2l0X2NoYXIgPSAxMjg7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9lb2YgPSAyNTI7CisgICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBrUnVsZVNldF9lc2NhcGVkID0gMjU0OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfbmFtZV9jaGFyID0gMTI5OworICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfbmFtZV9zdGFydF9jaGFyID0gMTMwOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfcnVsZV9jaGFyID0gMTMxOworICAgICBzdGF0aWMgZmluYWwgc2hvcnQga1J1bGVTZXRfd2hpdGVfc3BhY2UgPSAxMzI7CisKKworICAgc3RhdGljIGNsYXNzIFJCQklSdWxlVGFibGVFbGVtZW50IHsgCisgICAgICBzaG9ydCAgICAgIGZBY3Rpb247IAorICAgICAgc2hvcnQgICAgICBmQ2hhckNsYXNzOyAKKyAgICAgIHNob3J0ICAgICAgZk5leHRTdGF0ZTsgCisgICAgICBzaG9ydCAgICAgIGZQdXNoU3RhdGU7IAorICAgICAgYm9vbGVhbiAgICBmTmV4dENoYXI7ICAKKyAgICAgIFN0cmluZyAgICAgZlN0YXRlTmFtZTsgCisgICAgICBSQkJJUnVsZVRhYmxlRWxlbWVudChzaG9ydCBhLCBpbnQgY2MsIGludCBucywgaW50IHBzLCBib29sZWFuIG5jLCBTdHJpbmcgc24pIHsgIAorICAgICAgZkFjdGlvbiA9IGE7IAorICAgICAgZkNoYXJDbGFzcyA9IChzaG9ydCljYzsgCisgICAgICBmTmV4dFN0YXRlID0gKHNob3J0KW5zOyAKKyAgICAgIGZQdXNoU3RhdGUgPSAoc2hvcnQpcHM7IAorICAgICAgZk5leHRDaGFyICA9IG5jOyAKKyAgICAgIGZTdGF0ZU5hbWUgPSBzbjsgCisgICB9IAorICAgfSAKKyAgCisgICAgc3RhdGljIFJCQklSdWxlVGFibGVFbGVtZW50W10gZ1J1bGVQYXJzZVN0YXRlVGFibGUgPSB7IAorICAgICAgIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMCwgMCwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICAwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJTdGFydCwgMjU0LCAyMSwgOCwgZmFsc2UsICAgInN0YXJ0IikgICAgIC8vICAxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCAxLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwclN0YXJ0LCckJywgIDgwLCA5MCwgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJyEnLCAgMTEsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJzsnLCAgMSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjUyLCAwLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJTdGFydCwgMjU1LCAyMSwgOCwgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FbmRPZlJ1bGUsJzsnLCAgMSwwLCAgdHJ1ZSwgICAiYnJlYWstcnVsZS1lbmQiKSAgICAgLy8gIDggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDgsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgOSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlRXJyb3IsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDEwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwnIScsICAxMywwLCAgdHJ1ZSwgICAicmV2LW9wdGlvbiIpICAgICAvLyAgMTEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUmV2ZXJzZURpciwgMjU1LCAyMCwgOCwgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMTIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvT3B0aW9uU3RhcnQsIDEzMCwgMTUsMCwgIHRydWUsICAgIm9wdGlvbi1zY2FuMSIpICAgICAvLyAgMTMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUnVsZUVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAxNCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEyOSwgMTUsMCwgIHRydWUsICAgIm9wdGlvbi1zY2FuMiIpICAgICAvLyAgMTUgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvT3B0aW9uRW5kLCAyNTUsIDE3LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAxNiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJzsnLCAgMSwwLCAgdHJ1ZSwgICAib3B0aW9uLXNjYW4zIikgICAgIC8vICAxNyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgMTcsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMTggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUnVsZUVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAxOSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByU3RhcnQsIDI1NSwgMjEsIDgsIGZhbHNlLCAgICJyZXZlcnNlLXJ1bGUiKSAgICAgLy8gIDIwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1J1bGVDaGFyLCAyNTQsIDMwLDAsICB0cnVlLCAgICJ0ZXJtIikgICAgIC8vICAyMSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgMjEsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMjIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUnVsZUNoYXIsIDEzMSwgMzAsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMjMgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCdbJywgIDg2LCAzMCwgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMjQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTFBhcmVuLCcoJywgIDIxLCAzMCwgdHJ1ZSwgICBudWxsICkgICAgIC8vICAyNSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsJyQnLCAgODAsIDI5LCBmYWxzZSwgICBudWxsICkgICAgIC8vICAyNiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9Eb3RBbnksJy4nLCAgMzAsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMjcgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvUnVsZUVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAyOCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9DaGVja1ZhckRlZiwgMjU1LCAzMCwwLCAgZmFsc2UsICAgInRlcm0tdmFyLXJlZiIpICAgICAvLyAgMjkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDMwLDAsICB0cnVlLCAgICJleHByLW1vZCIpICAgICAvLyAgMzAgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVW5hcnlPcFN0YXIsJyonLCAgMzUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMzEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVW5hcnlPcFBsdXMsJysnLCAgMzUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMzIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVW5hcnlPcFF1ZXN0aW9uLCc/JywgIDM1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDMzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMjU1LCAzNSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMzQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAyNTQsIDIxLDAsICBmYWxzZSwgICAiZXhwci1jb250IikgICAgIC8vICAzNSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgMzUsMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgMzYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAxMzEsIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICAzNyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJ1snLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDM4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnKCcsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgMzkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCckJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA0MCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJy4nLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDQxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnLycsICA0NywwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNDIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCd7JywgIDU5LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDQzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJPck9wZXJhdG9yLCd8JywgIDIxLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDQ0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJSUGFyZW4sJyknLCAgMjU1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDQ1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJGaW5pc2hlZCwgMjU1LCAyNTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDQ2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1NsYXNoLCcvJywgIDQ5LDAsICB0cnVlLCAgICJsb29rLWFoZWFkIikgICAgIC8vICA0NyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDQ4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwgMjU0LCAyMSwwLCAgZmFsc2UsICAgImV4cHItY29udC1uby1zbGFzaCIpICAgICAvLyAgNDkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDM1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDUwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwgMTMxLCAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNTEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCdbJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA1MiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJygnLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDUzIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnJCcsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNTQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCcuJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA1NSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByT3JPcGVyYXRvciwnfCcsICAyMSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA1NiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByUlBhcmVuLCcpJywgIDI1NSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA1NyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByRmluaXNoZWQsIDI1NSwgMjU1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA1OCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgNTksMCwgIHRydWUsICAgInRhZy1vcGVuIikgICAgIC8vICA1OSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9TdGFydFRhZ1ZhbHVlLCAxMjgsIDYyLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2MCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9UYWdFeHBlY3RlZEVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2MSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgNjYsMCwgIHRydWUsICAgInRhZy12YWx1ZSIpICAgICAvLyAgNjIgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCd9JywgIDY2LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2MyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9UYWdEaWdpdCwgMTI4LCA2MiwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA2NCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9UYWdFeHBlY3RlZEVycm9yLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA2NSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEzMiwgNjYsMCwgIHRydWUsICAgInRhZy1jbG9zZSIpICAgICAvLyAgNjYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVGFnVmFsdWUsJ30nLCAgNjksMCwgIHRydWUsICAgbnVsbCApICAgICAvLyAgNjcgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvVGFnRXhwZWN0ZWRFcnJvciwgMjU1LCA5NSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNjggCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCAyNTQsIDIxLDAsICBmYWxzZSwgICAiZXhwci1jb250LW5vLXRhZyIpICAgICAvLyAgNjkgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvTk9QLCAxMzIsIDY5LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDcwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwgMTMxLCAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNzEgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCdbJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA3MiAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJygnLCAgMjEsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDczIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJDYXRPcGVyYXRvciwnJCcsICAyMSwwLCAgZmFsc2UsICAgbnVsbCApICAgICAvLyAgNzQgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvRXhwckNhdE9wZXJhdG9yLCcuJywgIDIxLDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA3NSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeHByQ2F0T3BlcmF0b3IsJy8nLCAgNDcsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDc2IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJPck9wZXJhdG9yLCd8JywgIDIxLDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDc3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJSUGFyZW4sJyknLCAgMjU1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDc4IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0V4cHJGaW5pc2hlZCwgMjU1LCAyNTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDc5IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1N0YXJ0VmFyaWFibGVOYW1lLCckJywgIDgyLDAsICB0cnVlLCAgICJzY2FuLXZhci1uYW1lIikgICAgIC8vICA4MCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDgxIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMwLCA4NCwwLCAgdHJ1ZSwgICAic2Nhbi12YXItc3RhcnQiKSAgICAgLy8gIDgyIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1ZhcmlhYmxlTmFtZUV4cGVjdGVkRXJyLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA4MyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDEyOSwgODQsMCwgIHRydWUsICAgInNjYW4tdmFyLWJvZHkiKSAgICAgLy8gIDg0IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0VuZFZhcmlhYmxlTmFtZSwgMjU1LCAyNTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDg1IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1NjYW5Vbmljb2RlU2V0LCdbJywgIDI1NSwwLCAgdHJ1ZSwgICAic2Nhbi11bmljb2RlLXNldCIpICAgICAvLyAgODYgCisgICAgICwgbmV3IFJCQklSdWxlVGFibGVFbGVtZW50KGRvU2NhblVuaWNvZGVTZXQsJ3AnLCAgMjU1LDAsICB0cnVlLCAgIG51bGwgKSAgICAgLy8gIDg3IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1NjYW5Vbmljb2RlU2V0LCdQJywgIDI1NSwwLCAgdHJ1ZSwgICBudWxsICkgICAgIC8vICA4OCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDI1NSwgOTUsMCwgIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDg5IAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb05PUCwgMTMyLCA5MCwwLCAgdHJ1ZSwgICAiYXNzaWduLW9yLXJ1bGUiKSAgICAgLy8gIDkwIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb1N0YXJ0QXNzaWduLCc9JywgIDIxLCA5MywgdHJ1ZSwgICBudWxsICkgICAgIC8vICA5MSAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9OT1AsIDI1NSwgMjksIDgsIGZhbHNlLCAgIG51bGwgKSAgICAgLy8gIDkyIAorICAgICAsIG5ldyBSQkJJUnVsZVRhYmxlRWxlbWVudChkb0VuZEFzc2lnbiwnOycsICAxLDAsICB0cnVlLCAgICJhc3NpZ24tZW5kIikgICAgIC8vICA5MyAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9SdWxlRXJyb3JBc3NpZ25FeHByLCAyNTUsIDk1LDAsICBmYWxzZSwgICBudWxsICkgICAgIC8vICA5NCAKKyAgICAgLCBuZXcgUkJCSVJ1bGVUYWJsZUVsZW1lbnQoZG9FeGl0LCAyNTUsIDk1LDAsICB0cnVlLCAgICJlcnJvckRlYXRoIikgICAgIC8vICA5NSAKKyB9OworfSAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlU2Nhbm5lci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVJ1bGVTY2FubmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGYwOWMwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklSdWxlU2Nhbm5lci5qYXZhCkBAIC0wLDAgKzEsMTA4OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwKKyAqIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAgKiAgVGhpcyBjbGFzcyBpcyBwYXJ0IG9mIHRoZSBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yIHJ1bGUgY29tcGlsZXIuCisgICogIEl0IHNjYW5zIHRoZSBydWxlcyBhbmQgYnVpbGRzIHRoZSBwYXJzZSB0cmVlLgorICAqICBUaGVyZSBpcyBubyBwdWJsaWMgQVBJIGhlcmUuCisgICogIEBpbnRlcm5hbAorICAqLworY2xhc3MgUkJCSVJ1bGVTY2FubmVyIHsKKyAgICAKKyAgICBwcml2YXRlICBmaW5hbCBpbnQgICAga1N0YWNrU2l6ZSA9IDEwMDsgICAgICAgICAgICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgc3RhdGUgc3RhY2sgZm9yCisgICAgLy8gICBydWxlcyBwYXJzaW5nLiAgQ29ycmVzcG9uZHMgcm91Z2hseQorICAgIC8vICAgdG8gdGhlIGRlcHRoIG9mIHBhcmVudGhlc2VzIG5lc3RpbmcKKyAgICAvLyAgIHRoYXQgaXMgYWxsb3dlZCBpbiB0aGUgcnVsZXMuCisgICAgCisgICAgc3RhdGljIGNsYXNzIFJCQklSdWxlQ2hhciB7CisgICAgICAgIGludCAgICAgICAgICAgICBmQ2hhcjsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgIGZFc2NhcGVkOworICAgIH0KKworCisKK1JCQklSdWxlQnVpbGRlciAgICAgICAgICAgICAgIGZSQjsgICAgICAgICAgICAgIC8vIFRoZSBydWxlIGJ1aWxkZXIgdGhhdCB3ZSBhcmUgcGFydCBvZi4KKworaW50ICAgICAgICAgICAgICAgICAgICAgICBmU2NhbkluZGV4OyAgICAgICAgLy8gSW5kZXggb2YgY3VycmVudCBjaGFyYWN0ZXIgYmVpbmcgcHJvY2Vzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpbiB0aGUgcnVsZSBpbnB1dCBzdHJpbmcuCitpbnQgICAgICAgICAgICAgICAgICAgICAgIGZOZXh0SW5kZXg7ICAgICAgICAvLyBJbmRleCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIsIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG5vdCB5ZXQgc2Nhbm5lZC4KK2Jvb2xlYW4gICAgICAgICAgICAgICAgICBmUXVvdGVNb2RlOyAgICAgICAgLy8gU2NhbiBpcyBpbiBhICdxdW90ZWQgcmVnaW9uJworaW50ICAgICAgICAgICAgICAgICAgICAgICBmTGluZU51bTsgICAgICAgICAgLy8gTGluZSBudW1iZXIgaW4gaW5wdXQgZmlsZS4KK2ludCAgICAgICAgICAgICAgICAgICAgICAgZkNoYXJOdW07ICAgICAgICAgIC8vIENoYXIgcG9zaXRpb24gd2l0aGluIHRoZSBsaW5lLgoraW50ICAgICAgICAgICAgICAgICAgICAgICBmTGFzdENoYXI7ICAgICAgICAgLy8gUHJldmlvdXMgY2hhciwgbmVlZGVkIHRvIGNvdW50IENSLUxGCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBhcyBhIHNpbmdsZSBsaW5lLCBub3QgdHdvLgorCitSQkJJUnVsZUNoYXIgICAgICAgICAgICAgIGZDID0gbmV3IFJCQklSdWxlQ2hhcigpOyAgICAvLyBDdXJyZW50IGNoYXIgZm9yIHBhcnNlIHN0YXRlIG1hY2hpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHByb2Nlc3NpbmcuCitTdHJpbmcgICAgICAgICAgICAgICAgICAgIGZWYXJOYW1lOyAgICAgICAgICAvLyAkdmFyaWFibGVOYW1lLCB2YWxpZCB3aGVuIHdlJ3ZlIGp1c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHNjYW5uZWQgb25lLgorCisKK3Nob3J0ICBmU3RhY2tbXSA9IG5ldyBzaG9ydFtrU3RhY2tTaXplXTsgIC8vIFN0YXRlIHN0YWNrLCBob2xkcyBzdGF0ZSBwdXNoZXMKK2ludCAgICAgICAgICAgICAgICAgICAgICAgZlN0YWNrUHRyOyAgICAgICAgICAgLy8gIGFuZCBwb3BzIGFzIHNwZWNpZmllZCBpbiB0aGUgc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICB0cmFuc2l0aW9uIHJ1bGVzLgorCitSQkJJTm9kZSAgZk5vZGVTdGFja1tdID0gbmV3IFJCQklOb2RlW2tTdGFja1NpemVdOyAvLyBOb2RlIHN0YWNrLCBob2xkcyBub2RlcyBjcmVhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGR1cmluZyB0aGUgcGFyc2Ugb2YgYSBydWxlCitpbnQgICAgICAgICAgICAgICAgICAgICAgICBmTm9kZVN0YWNrUHRyOworCisKK2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgIGZSZXZlcnNlUnVsZTsgICAgIC8vIFRydWUgaWYgdGhlIHJ1bGUgY3VycmVudGx5IGJlaW5nIHNjYW5uZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgaXMgYSByZXZlcnNlIGRpcmVjdGlvbiBydWxlIChpZiBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBzdGFydHMgd2l0aCBhICchJykKKworYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgZkxvb2tBaGVhZFJ1bGU7ICAgLy8gVHJ1ZSBpZiB0aGUgcnVsZSBpbmNsdWRlcyBhICcvJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgc29tZXdoZXJlIHdpdGhpbiBpdC4KKworUkJCSVN5bWJvbFRhYmxlICAgICAgICAgICAgICBmU3ltYm9sVGFibGU7ICAgICAvLyBzeW1ib2wgdGFibGUsIGhvbGRzIGRlZmluaXRpb25zIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAkdmFyaWFibGUgc3ltYm9scy4KKworSGFzaE1hcCAgICAgICAgICAgICAgICAgZlNldFRhYmxlID0gbmV3IEhhc2hNYXAoKTsgICAgICAgIC8vIFVuaWNvY29kZVNldCBoYXNoIHRhYmxlLCBob2xkcyBpbmRleGVzIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgc2V0cyBjcmVhdGVkIHdoaWxlIHBhcnNpbmcgcnVsZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBUaGUga2V5IGlzIHRoZSBzdHJpbmcgdXNlZCBmb3IgY3JlYXRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHRoZSBzZXQuCisKK1VuaWNvZGVTZXQgICAgICBmUnVsZVNldHNbXSA9IG5ldyBVbmljb2RlU2V0WzEwXTsgICAgLy8gVW5pY29kZSBTZXRzIHRoYXQgYXJlIG5lZWRlZCBkdXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgdGhlIHNjYW5uaW5nIG9mIFJCQkkgcnVsZXMuICBUaGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgaW5kaWNpZXMgZm9yIHRoZXNlIGFyZSBhc3NpZ25lZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgcGVybCBzY3JpcHQgdGhhdCBidWlsZHMgdGhlIHN0YXRlIHRhYmxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgU2VlIHJiYmlycHQuaC4KKworaW50ICAgICAgICAgICAgICAgICAgICAgICAgZlJ1bGVOdW07ICAgICAgICAgLy8gQ291bnRzIGVhY2ggcnVsZSBhcyBpdCBpcyBzY2FubmVkLgorCitpbnQgICAgICAgICAgICAgICAgICAgICAgICBmT3B0aW9uU3RhcnQ7ICAgICAvLyBJbnB1dCBpbmRleCBvZiBzdGFydCBvZiBhICEhb3B0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBrZXl3b3JkLCB3aGlsZSBiZWluZyBzY2FubmVkLgorCisgICAgCisKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBnUnVsZVNldF9ydWxlX2NoYXJfcGF0dGVybiAgICAgICA9ICJbXltcXHB7Wn1cXHUwMDIwLVxcdTAwN2ZdLVtcXHB7TH1dLVtcXHB7Tn1dXSI7CisgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcgZ1J1bGVTZXRfbmFtZV9jaGFyX3BhdHRlcm4gICAgICAgPSAiW19cXHB7TH1cXHB7Tn1dIjsKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBnUnVsZVNldF9kaWdpdF9jaGFyX3BhdHRlcm4gICAgICA9ICJbMC05XSI7CisgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcgZ1J1bGVTZXRfbmFtZV9zdGFydF9jaGFyX3BhdHRlcm4gPSAiW19cXHB7TH1dIjsKKyAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyBnUnVsZVNldF93aGl0ZV9zcGFjZV9wYXR0ZXJuICAgICA9ICJbXFxwe1BhdHRlcm5fV2hpdGVfU3BhY2V9XSI7CisgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcga0FueSA9ICAiYW55IjsKKworICAgIAorIAorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgQ29uc3RydWN0b3IuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSQkJJUnVsZVNjYW5uZXIoUkJCSVJ1bGVCdWlsZGVyIHJiKQoreworICAgIGZSQiAgICAgICAgICAgICAgICAgPSByYjsKKyAgICBmTGluZU51bSAgICAgICAgICAgID0gMTsKKworICAgIC8vCisgICAgLy8gIFNldCB1cCB0aGUgY29uc3RhbnQgVW5pY29kZSBTZXRzLgorICAgIC8vICAgICBOb3RlOiAgVGhlc2UgY291bGQgYmUgbWFkZSBzdGF0aWMgYW5kIHNoYXJlZCBhbW9uZworICAgIC8vICAgICAgICAgICAgYWxsIGluc3RhbmNlcyBvZiBSQkJJUnVsZVNjYW5uZXJzLiAKKyAgICBmUnVsZVNldHNbUkJCSVJ1bGVQYXJzZVRhYmxlLmtSdWxlU2V0X3J1bGVfY2hhci0xMjhdICAgICAgID0gbmV3IFVuaWNvZGVTZXQoZ1J1bGVTZXRfcnVsZV9jaGFyX3BhdHRlcm4pOworICAgIGZSdWxlU2V0c1tSQkJJUnVsZVBhcnNlVGFibGUua1J1bGVTZXRfd2hpdGVfc3BhY2UtMTI4XSAgICAgPSBuZXcgVW5pY29kZVNldChnUnVsZVNldF93aGl0ZV9zcGFjZV9wYXR0ZXJuKTsgIAorICAgIGZSdWxlU2V0c1tSQkJJUnVsZVBhcnNlVGFibGUua1J1bGVTZXRfbmFtZV9jaGFyLTEyOF0gICAgICAgPSBuZXcgVW5pY29kZVNldChnUnVsZVNldF9uYW1lX2NoYXJfcGF0dGVybik7CisgICAgZlJ1bGVTZXRzW1JCQklSdWxlUGFyc2VUYWJsZS5rUnVsZVNldF9uYW1lX3N0YXJ0X2NoYXItMTI4XSA9IG5ldyBVbmljb2RlU2V0KGdSdWxlU2V0X25hbWVfc3RhcnRfY2hhcl9wYXR0ZXJuKTsKKyAgICBmUnVsZVNldHNbUkJCSVJ1bGVQYXJzZVRhYmxlLmtSdWxlU2V0X2RpZ2l0X2NoYXItMTI4XSAgICAgID0gbmV3IFVuaWNvZGVTZXQoZ1J1bGVTZXRfZGlnaXRfY2hhcl9wYXR0ZXJuKTsKKworICAgIGZTeW1ib2xUYWJsZSA9IG5ldyBSQkJJU3ltYm9sVGFibGUodGhpcywgcmIuZlJ1bGVzKTsKKyB9CisKKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICBkb1BhcnNlQWN0aW9uICAgICAgICBEbyBzb21lIGFjdGlvbiBkdXJpbmcgcnVsZSBwYXJzaW5nLgorLy8gICAgICAgICAgICAgICAgICAgICAgIENhbGxlZCBieSB0aGUgcGFyc2Ugc3RhdGUgbWFjaGluZS4KKy8vICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25zIGJ1aWxkIHRoZSBwYXJzZSB0cmVlIGFuZCBVbmljb2RlIFNldHMsCisvLyAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1haW50YWluIHRoZSBwYXJzZSBzdGFjayBmb3IgbmVzdGVkIGV4cHJlc3Npb25zLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbGVhbiBkb1BhcnNlQWN0aW9ucyhpbnQgYWN0aW9uKSAgCit7CisgICAgUkJCSU5vZGUgbiAgICAgICA9IG51bGw7CisKKyAgICBib29sZWFuICAgcmV0dXJuVmFsID0gdHJ1ZTsKKworICAgIHN3aXRjaCAoYWN0aW9uKSB7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4cHJTdGFydDoKKyAgICAgICAgcHVzaE5ld05vZGUoUkJCSU5vZGUub3BTdGFydCk7CisgICAgICAgIGZSdWxlTnVtKys7CisgICAgICAgIGJyZWFrOworCisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4cHJPck9wZXJhdG9yOgorICAgICAgICB7CisgICAgICAgICAgICBmaXhPcFN0YWNrKFJCQklOb2RlLnByZWNPcENhdCk7CisgICAgICAgICAgICBSQkJJTm9kZSAgb3BlcmFuZE5vZGUgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHItLV07CisgICAgICAgICAgICBSQkJJTm9kZSAgb3JOb2RlICAgICAgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcE9yKTsKKyAgICAgICAgICAgIG9yTm9kZS5mTGVmdENoaWxkICAgICA9IG9wZXJhbmROb2RlOworICAgICAgICAgICAgb3BlcmFuZE5vZGUuZlBhcmVudCAgID0gb3JOb2RlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FeHByQ2F0T3BlcmF0b3I6CisgICAgICAgIC8vIGNvbmNhdGVuYXRpb24gb3BlcmF0b3IuCisgICAgICAgIC8vIEZvciB0aGUgaW1wbGljaXQgY29uY2F0ZW5hdGlvbiBvZiBhZGphY2VudCB0ZXJtcyBpbiBhbiBleHByZXNzaW9uIHRoYXQgYXJlCisgICAgICAgIC8vICAgbm90IHNlcGFyYXRlZCBieSBhbnkgb3RoZXIgb3BlcmF0b3IuICBBY3Rpb24gaXMgaW52b2tlZCBiZXR3ZWVuIHRoZQorICAgICAgICAvLyAgIGFjdGlvbnMgZm9yIHRoZSB0d28gdGVybXMuCisgICAgICAgIHsKKyAgICAgICAgICAgIGZpeE9wU3RhY2soUkJCSU5vZGUucHJlY09wQ2F0KTsKKyAgICAgICAgICAgIFJCQklOb2RlICBvcGVyYW5kTm9kZSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ci0tXTsKKyAgICAgICAgICAgIFJCQklOb2RlICBjYXROb2RlICAgICA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLm9wQ2F0KTsKKyAgICAgICAgICAgIGNhdE5vZGUuZkxlZnRDaGlsZCAgICA9IG9wZXJhbmROb2RlOworICAgICAgICAgICAgb3BlcmFuZE5vZGUuZlBhcmVudCAgID0gY2F0Tm9kZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvTFBhcmVuOgorICAgICAgICAvLyBPcGVuIFBhcmVuLgorICAgICAgICAvLyAgIFRoZSBvcGVuUGFyZW4gbm9kZSBpcyBhIGR1bW15IG9wZXJhdGlvbiB0eXBlIHdpdGggYSBsb3cgcHJlY2VkZW5jZSwKKyAgICAgICAgLy8gICAgIHdoaWNoIGhhcyB0aGUgYWZmZWN0IG9mIGVuc3VyaW5nIHRoYXQgYW55IHJlYWwgYmluYXJ5IG9wIHRoYXQKKyAgICAgICAgLy8gICAgIGZvbGxvd3Mgd2l0aGluIHRoZSBwYXJlbnMgYmluZHMgbW9yZSB0aWdodGx5IHRvIHRoZSBvcGVyYW5kcyB0aGFuCisgICAgICAgIC8vICAgICBzdHVmZiBvdXRzaWRlIG9mIHRoZSBwYXJlbnMuCisgICAgICAgIHB1c2hOZXdOb2RlKFJCQklOb2RlLm9wTFBhcmVuKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0V4cHJSUGFyZW46CisgICAgICAgIGZpeE9wU3RhY2soUkJCSU5vZGUucHJlY0xQYXJlbik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9OT1A6CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TdGFydEFzc2lnbjoKKyAgICAgICAgLy8gV2UndmUganVzdCBzY2FubmVkICIkdmFyaWFibGUgPSAiCisgICAgICAgIC8vIFRoZSB0b3Agb2YgdGhlIG5vZGUgc3RhY2sgaGFzIHRoZSAkdmFyaWFibGUgcmVmIG5vZGUuCisKKyAgICAgICAgLy8gU2F2ZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIFJIUyB0ZXh0IGluIHRoZSBTdGFydEV4cHJlc3Npb24gbm9kZQorICAgICAgICAvLyAgIHRoYXQgcHJlY2VkZXMgdGhlICR2YXJpYWJsZVJlZmVyZW5jZSBub2RlIG9uIHRoZSBzdGFjay4KKyAgICAgICAgLy8gICBUaGlzIHdpbGwgZXZlbnR1YWxseSBiZSB1c2VkIHdoZW4gc2F2aW5nIHRoZSBmdWxsICR2YXJpYWJsZSByZXBsYWNlbWVudAorICAgICAgICAvLyAgIHRleHQgYXMgYSBzdHJpbmcuCisgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHItMV07CisgICAgICAgIG4uZkZpcnN0UG9zID0gZk5leHRJbmRleDsgICAgICAgICAgICAgIC8vIG1vdmUgcGFzdCB0aGUgJz0nCisKKyAgICAgICAgLy8gUHVzaCBhIG5ldyBzdGFydC1vZi1leHByZXNzaW9uIG5vZGU7IG5lZWRlZCB0byBrZWVwIHBhcnNlIG9mIHRoZQorICAgICAgICAvLyAgIFJIUyBleHByZXNzaW9uIGhhcHB5LgorICAgICAgICBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcFN0YXJ0KTsKKyAgICAgICAgYnJlYWs7CisKKworCisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0VuZEFzc2lnbjoKKyAgICAgICAgeworICAgICAgICAgICAgLy8gV2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgYW4gYXNzaWduZW1lbnQgc3RhdGVtZW50LgorICAgICAgICAgICAgLy8gICBDdXJyZW50IHNjYW4gY2hhciBpcyB0aGUgJzsnIHRoYXQgdGVybWluYXRlcyB0aGUgYXNzaWdubWVudC4KKworICAgICAgICAgICAgLy8gVGVybWluYXRlIGV4cHJlc3Npb24sIGxlYXZlcyBleHByZXNzaW9uIHBhcnNlIHRyZWUgcm9vdGVkIGluIFRPUyBub2RlLgorICAgICAgICAgICAgZml4T3BTdGFjayhSQkJJTm9kZS5wcmVjU3RhcnQpOworCisgICAgICAgICAgICBSQkJJTm9kZSBzdGFydEV4cHJOb2RlICA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0ci0yXTsKKyAgICAgICAgICAgIFJCQklOb2RlIHZhclJlZk5vZGUgICAgID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLTFdOworICAgICAgICAgICAgUkJCSU5vZGUgUkhTRXhwck5vZGUgICAgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdOworCisgICAgICAgICAgICAvLyBTYXZlIG9yaWdpbmFsIHRleHQgb2YgcmlnaHQgc2lkZSBvZiBhc3NpZ25tZW50LCBleGNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nICc7JworICAgICAgICAgICAgLy8gIGluIHRoZSByb290IG9mIHRoZSBub2RlIGZvciB0aGUgcmlnaHQtaGFuZC1zaWRlIGV4cHJlc3Npb24uCisgICAgICAgICAgICBSSFNFeHByTm9kZS5mRmlyc3RQb3MgPSBzdGFydEV4cHJOb2RlLmZGaXJzdFBvczsKKyAgICAgICAgICAgIFJIU0V4cHJOb2RlLmZMYXN0UG9zICA9IGZTY2FuSW5kZXg7CisgICAgICAgICAgICAvLyBmUkIuZlJ1bGVzLmV4dHJhY3RCZXR3ZWVuKFJIU0V4cHJOb2RlLmZGaXJzdFBvcywgUkhTRXhwck5vZGUuZkxhc3RQb3MsIFJIU0V4cHJOb2RlLmZUZXh0KTsKKyAgICAgICAgICAgIFJIU0V4cHJOb2RlLmZUZXh0ID0gZlJCLmZSdWxlcy5zdWJzdHJpbmcoUkhTRXhwck5vZGUuZkZpcnN0UG9zLCBSSFNFeHByTm9kZS5mTGFzdFBvcyk7IAorCisgICAgICAgICAgICAvLyBFeHByZXNzaW9uIHBhcnNlIHRyZWUgYmVjb21lcyBsLiBjaGlsZCBvZiB0aGUgJHZhcmlhYmxlIHJlZmVyZW5jZSBub2RlLgorICAgICAgICAgICAgdmFyUmVmTm9kZS5mTGVmdENoaWxkID0gUkhTRXhwck5vZGU7CisgICAgICAgICAgICBSSFNFeHByTm9kZS5mUGFyZW50ICAgPSB2YXJSZWZOb2RlOworCisgICAgICAgICAgICAvLyBNYWtlIGEgc3ltYm9sIHRhYmxlIGVudHJ5IGZvciB0aGUgJHZhcmlhYmxlUmVmIG5vZGUuCisgICAgICAgICAgICBmU3ltYm9sVGFibGUuYWRkRW50cnkodmFyUmVmTm9kZS5mVGV4dCwgdmFyUmVmTm9kZSk7CisgCisgICAgICAgICAgICAvLyBDbGVhbiB1cCB0aGUgc3RhY2suCisgICAgICAgICAgICBmTm9kZVN0YWNrUHRyLT0zOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvRW5kT2ZSdWxlOgorICAgICAgICB7CisgICAgICAgIGZpeE9wU3RhY2soUkJCSU5vZGUucHJlY1N0YXJ0KTsgICAgICAvLyBUZXJtaW5hdGUgZXhwcmVzc2lvbiwgbGVhdmVzIGV4cHJlc3Npb24KKworICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInJ0cmVlIikgPj0gMCkge3ByaW50Tm9kZVN0YWNrKCJlbmQgb2YgcnVsZSIpO30KKyAgICAgICAgQXNzZXJ0LmFzc3J0KGZOb2RlU3RhY2tQdHIgPT0gMSk7CisKKyAgICAgICAgLy8gSWYgdGhpcyBydWxlIGluY2x1ZGVzIGEgbG9vay1haGVhZCAnLycsIGFkZCBhIGVuZE1hcmsgbm9kZSB0byB0aGUKKyAgICAgICAgLy8gICBleHByZXNzaW9uIHRyZWUuCisgICAgICAgIGlmIChmTG9va0FoZWFkUnVsZSkgeworICAgICAgICAgICAgUkJCSU5vZGUgIHRoaXNSdWxlICAgICAgID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIFJCQklOb2RlICBlbmROb2RlICAgICAgICA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLmVuZE1hcmspOworICAgICAgICAgICAgUkJCSU5vZGUgIGNhdE5vZGUgICAgICAgID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BDYXQpOworICAgICAgICAgICAgZk5vZGVTdGFja1B0ciAtPSAyOworICAgICAgICAgICAgY2F0Tm9kZS5mTGVmdENoaWxkICAgICAgID0gdGhpc1J1bGU7CisgICAgICAgICAgICBjYXROb2RlLmZSaWdodENoaWxkICAgICAgPSBlbmROb2RlOworICAgICAgICAgICAgZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXSA9IGNhdE5vZGU7CisgICAgICAgICAgICBlbmROb2RlLmZWYWwgICAgICAgICAgICAgPSBmUnVsZU51bTsKKyAgICAgICAgICAgIGVuZE5vZGUuZkxvb2tBaGVhZEVuZCAgICA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBBbGwgcnVsZSBleHByZXNzaW9ucyBhcmUgT1JlZCB0b2dldGhlci4KKyAgICAgICAgLy8gVGhlICc7JyB0aGF0IHRlcm1pbmF0ZXMgYW4gZXhwcmVzc2lvbiByZWFsbHkganVzdCBmdW5jdGlvbnMgYXMgYSAnfCcgd2l0aAorICAgICAgICAvLyAgIGEgbG93IG9wZXJhdG9yIHByZWRlZGVuY2UuCisgICAgICAgIC8vCisgICAgICAgIC8vIEVhY2ggb2YgdGhlIGZvdXIgc2V0cyBvZiBydWxlcyBhcmUgY29sbGVjdGVkIHNlcGFyYXRlbHkuCisgICAgICAgIC8vICAoZm9yd2FyZCwgcmV2ZXJzZSwgc2FmZV9mb3J3YXJkLCBzYWZlX3JldmVyc2UpCisgICAgICAgIC8vICBPUiB0aGlzIHJ1bGUgaW50byB0aGUgYXBwcm9wcmlhdGUgZ3JvdXAgb2YgdGhlbS4KKyAgICAgICAgLy8KKyAgICAgICAgCisgICAgICAgIGludCBkZXN0UnVsZXMgPSAoZlJldmVyc2VSdWxlPyBmUkIuZlJldmVyc2VUcmVlIDogZlJCLmZEZWZhdWx0VHJlZSk7CisKKyAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW2Rlc3RSdWxlc10gIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgdGhlIGZpcnN0IHJ1bGUgZW5jb3VudGVkLgorICAgICAgICAgICAgLy8gT1IgcHJldmlvdXMgc3R1ZmYgIChmcm9tICpkZXN0UnVsZXMpCisgICAgICAgICAgICAvLyB3aXRoIHRoZSBjdXJyZW50IHJ1bGUgZXhwcmVzc2lvbiAob24gdGhlIE5vZGUgU3RhY2spCisgICAgICAgICAgICAvLyAgd2l0aCB0aGUgcmVzdWx0aW5nIE9SIGV4cHJlc3Npb24gZ29pbmcgdG8gKmRlc3RSdWxlcworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIFJCQklOb2RlICB0aGlzUnVsZSAgICAgICAgPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdOworICAgICAgICAgICAgUkJCSU5vZGUgIHByZXZSdWxlcyAgICAgICA9IGZSQi5mVHJlZVJvb3RzW2Rlc3RSdWxlc107CisgICAgICAgICAgICBSQkJJTm9kZSAgb3JOb2RlICAgICAgICAgID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BPcik7CisgICAgICAgICAgICBvck5vZGUuZkxlZnRDaGlsZCAgICAgICAgID0gcHJldlJ1bGVzOworICAgICAgICAgICAgcHJldlJ1bGVzLmZQYXJlbnQgICAgICAgICA9IG9yTm9kZTsKKyAgICAgICAgICAgIG9yTm9kZS5mUmlnaHRDaGlsZCAgICAgICAgPSB0aGlzUnVsZTsKKyAgICAgICAgICAgIHRoaXNSdWxlLmZQYXJlbnQgICAgICAgICAgPSBvck5vZGU7CisgICAgICAgICAgICBmUkIuZlRyZWVSb290c1tkZXN0UnVsZXNdID0gb3JOb2RlOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgcnVsZSBlbmNvdW50ZXJlZCAoZm9yIHRoaXMgZGlyZWN0aW9uKS4KKyAgICAgICAgICAgIC8vIEp1c3QgbW92ZSBpdHMgcGFyc2UgdHJlZSBmcm9tIHRoZSBzdGFjayB0byAqZGVzdFJ1bGVzLgorICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZGVzdFJ1bGVzXSA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07ICAgICAgIAorICAgICAgICB9CisgICAgICAgIGZSZXZlcnNlUnVsZSAgID0gZmFsc2U7ICAgLy8gaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBuZXh0IHJ1bGUuCisgICAgICAgIGZMb29rQWhlYWRSdWxlID0gZmFsc2U7CisgICAgICAgIGZOb2RlU3RhY2tQdHIgID0gMDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9SdWxlRXJyb3I6CisgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19SVUxFX1NZTlRBWCk7CisgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICBicmVhazsKKworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9WYXJpYWJsZU5hbWVFeHBlY3RlZEVycjoKKyAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX1JVTEVfU1lOVEFYKTsKKyAgICAgICAgYnJlYWs7CisKKworICAgIC8vCisgICAgLy8gIFVuYXJ5IG9wZXJhbmRzICArID8gKgorICAgIC8vICAgIFRoZXNlIGFsbCBhcHBlYXIgYWZ0ZXIgdGhlIG9wZXJhbmQgdG8gd2hpY2ggdGhleSBhcHBseS4KKyAgICAvLyAgICBXaGVuIHdlIGhpdCBvbmUsIHRoZSBvcGVyYW5kIChtYXkgYmUgYSB3aG9sZSBzdWIgZXhwcmVzc2lvbikKKyAgICAvLyAgICB3aWxsIGJlIG9uIHRoZSB0b3Agb2YgdGhlIHN0YWNrLgorICAgIC8vICAgIFVuYXJ5IE9wZXJhdG9yIGJlY29tZXMgVE9TLCB3aXRoIHRoZSBvbGQgVE9TIGFzIGl0cyBvbmUgY2hpbGQuCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9VbmFyeU9wUGx1czoKKyAgICAgICAgeworICAgICAgICAgICAgUkJCSU5vZGUgIG9wZXJhbmROb2RlID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLS1dOworICAgICAgICAgICAgUkJCSU5vZGUgIHBsdXNOb2RlICAgID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BQbHVzKTsKKyAgICAgICAgICAgIHBsdXNOb2RlLmZMZWZ0Q2hpbGQgICA9IG9wZXJhbmROb2RlOworICAgICAgICAgICAgb3BlcmFuZE5vZGUuZlBhcmVudCAgID0gcGx1c05vZGU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1VuYXJ5T3BRdWVzdGlvbjoKKyAgICAgICAgeworICAgICAgICAgICAgUkJCSU5vZGUgIG9wZXJhbmROb2RlID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLS1dOworICAgICAgICAgICAgUkJCSU5vZGUgIHFOb2RlICAgICAgID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BRdWVzdGlvbik7CisgICAgICAgICAgICBxTm9kZS5mTGVmdENoaWxkICAgICAgPSBvcGVyYW5kTm9kZTsKKyAgICAgICAgICAgIG9wZXJhbmROb2RlLmZQYXJlbnQgICA9IHFOb2RlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9VbmFyeU9wU3RhcjoKKyAgICAgICAgeworICAgICAgICAgICAgUkJCSU5vZGUgIG9wZXJhbmROb2RlID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLS1dOworICAgICAgICAgICAgUkJCSU5vZGUgIHN0YXJOb2RlICAgID0gcHVzaE5ld05vZGUoUkJCSU5vZGUub3BTdGFyKTsKKyAgICAgICAgICAgIHN0YXJOb2RlLmZMZWZ0Q2hpbGQgICA9IG9wZXJhbmROb2RlOworICAgICAgICAgICAgb3BlcmFuZE5vZGUuZlBhcmVudCAgID0gc3Rhck5vZGU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1J1bGVDaGFyOgorICAgICAgICAvLyBBICJSdWxlIENoYXJhY3RlciIgaXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBhIGxpdGVyYWwgcGFydAorICAgICAgICAvLyBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uLiAgTGlrZSBhLCBiIGFuZCBjIGluIHRoZSBleHByZXNzaW9uICIoYWJjKikgfCBbOkw6XSIKKyAgICAgICAgLy8gVGhlc2UgYXJlIHByZXR0eSB1bmNvbW1vbiBpbiBicmVhayBydWxlczsgdGhlIHRlcm1zIGFyZSBtb3JlIGNvbW1vbmx5CisgICAgICAgIC8vICBzZXRzLiAgVG8ga2VlcCB0aGluZ3MgdW5pZm9ybSwgdHJlYXQgdGhlc2UgY2hhcmFjdGVycyBsaWtlIGFzCisgICAgICAgIC8vIHNldHMgdGhhdCBqdXN0IGhhcHBlbiB0byBjb250YWluIG9ubHkgb25lIGNoYXJhY3Rlci4KKyAgICAgICAgeworICAgICAgICAgICAgbiA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLnNldFJlZik7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChuZXcgU3RyaW5nQnVmZmVyKCkuYXBwZW5kKChjaGFyKWZDLmZDaGFyKSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGZpbmRTZXRGb3IocywgbiwgbnVsbCk7CisgICAgICAgICAgICBuLmZGaXJzdFBvcyA9IGZTY2FuSW5kZXg7CisgICAgICAgICAgICBuLmZMYXN0UG9zICA9IGZOZXh0SW5kZXg7CisgICAgICAgICAgICBuLmZUZXh0ICAgICA9IGZSQi5mUnVsZXMuc3Vic3RyaW5nKG4uZkZpcnN0UG9zLCBuLmZMYXN0UG9zKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb0RvdEFueToKKyAgICAgICAgLy8gc2Nhbm5lZCBhICIuIiwgbWVhbmluZyBtYXRjaCBhbnkgc2luZ2xlIGNoYXJhY3Rlci4KKyAgICAgICAgeworICAgICAgICAgICAgbiA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLnNldFJlZik7CisgICAgICAgICAgICBmaW5kU2V0Rm9yKGtBbnksIG4sIG51bGwpOworICAgICAgICAgICAgbi5mRmlyc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICAgICAgbi5mTGFzdFBvcyAgPSBmTmV4dEluZGV4OworICAgICAgICAgICAgbi5mVGV4dCAgICAgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhuLmZGaXJzdFBvcywgbi5mTGFzdFBvcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TbGFzaDoKKyAgICAgICAgLy8gU2Nhbm5lZCBhICcvJywgd2hpY2ggaWRlbnRpZmllcyBhIGxvb2stYWhlYWQgYnJlYWsgcG9zaXRpb24gaW4gYSBydWxlLgorICAgICAgICBuID0gcHVzaE5ld05vZGUoUkJCSU5vZGUubG9va0FoZWFkKTsKKyAgICAgICAgbi5mVmFsICAgICAgPSBmUnVsZU51bTsKKyAgICAgICAgbi5mRmlyc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICBuLmZMYXN0UG9zICA9IGZOZXh0SW5kZXg7CisgICAgICAgIG4uZlRleHQgICAgID0gZlJCLmZSdWxlcy5zdWJzdHJpbmcobi5mRmlyc3RQb3MsIG4uZkxhc3RQb3MpOworICAgICAgICBmTG9va0FoZWFkUnVsZSA9IHRydWU7CisgICAgICAgIGJyZWFrOworCisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1N0YXJ0VGFnVmFsdWU6CisgICAgICAgIC8vIFNjYW5uZWQgYSAneycsIHRoZSBvcGVuaW5nIGRlbGltaXRlciBmb3IgYSB0YWcgdmFsdWUgd2l0aGluIGEgcnVsZS4KKyAgICAgICAgbiA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLnRhZyk7CisgICAgICAgIG4uZlZhbCAgICAgID0gMDsKKyAgICAgICAgbi5mRmlyc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICBuLmZMYXN0UG9zICA9IGZOZXh0SW5kZXg7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9UYWdEaWdpdDoKKyAgICAgICAgLy8gSnVzdCBzY2FubmVkIGEgZGVjaW1hbCBkaWdpdCB0aGF0J3MgcGFydCBvZiBhIHRhZyB2YWx1ZQorICAgICAgICB7CisgICAgICAgICAgICBuID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIGludCB2ID0gQ2hhcmFjdGVyLmRpZ2l0KChjaGFyKWZDLmZDaGFyLCAxMCk7CisgICAgICAgICAgICBuLmZWYWwgPSBuLmZWYWwqMTAgKyB2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvVGFnVmFsdWU6CisgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdOworICAgICAgICBuLmZMYXN0UG9zID0gZk5leHRJbmRleDsKKyAgICAgICAgbi5mVGV4dCAgICA9IGZSQi5mUnVsZXMuc3Vic3RyaW5nKG4uZkZpcnN0UG9zLCBuLmZMYXN0UG9zKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb1RhZ0V4cGVjdGVkRXJyb3I6CisgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19NQUxGT1JNRURfUlVMRV9UQUcpOworICAgICAgICByZXR1cm5WYWwgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJCQklSdWxlUGFyc2VUYWJsZS5kb09wdGlvblN0YXJ0OgorICAgICAgICAvLyBTY2FubmluZyBhICEhb3B0aW9uLiAgIEF0IHRoZSBzdGFydCBvZiBzdHJpbmcuCisgICAgICAgIGZPcHRpb25TdGFydCA9IGZTY2FuSW5kZXg7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9PcHRpb25FbmQ6CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHQgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhmT3B0aW9uU3RhcnQsIGZTY2FuSW5kZXgpOyAgCisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiY2hhaW4iKSkgeworICAgICAgICAgICAgICAgIGZSQi5mQ2hhaW5SdWxlcyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIkxCQ01Ob0NoYWluIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkxCQ01Ob0NoYWluID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiZm9yd2FyZCIpKSB7CisgICAgICAgICAgICAgICAgZlJCLmZEZWZhdWx0VHJlZSAgID0gZlJCLmZGb3J3YXJkVHJlZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygicmV2ZXJzZSIpKSB7CisgICAgICAgICAgICAgICAgZlJCLmZEZWZhdWx0VHJlZSAgID0gZlJCLmZSZXZlcnNlVHJlZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygic2FmZV9mb3J3YXJkIikpIHsKKyAgICAgICAgICAgICAgICBmUkIuZkRlZmF1bHRUcmVlICAgPSBmUkIuZlNhZmVGd2RUcmVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCJzYWZlX3JldmVyc2UiKSkgeworICAgICAgICAgICAgICAgIGZSQi5mRGVmYXVsdFRyZWUgICA9IGZSQi5mU2FmZVJldlRyZWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoImxvb2tBaGVhZEhhcmRCcmVhayIpKSB7CisgICAgICAgICAgICAgICAgZlJCLmZMb29rQWhlYWRIYXJkQnJlYWsgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfVU5SRUNPR05JWkVEX09QVElPTik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9SZXZlcnNlRGlyOgorICAgICAgICBmUmV2ZXJzZVJ1bGUgPSB0cnVlOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvU3RhcnRWYXJpYWJsZU5hbWU6CisgICAgICAgIG4gPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS52YXJSZWYpOworICAgICAgICBuLmZGaXJzdFBvcyA9IGZTY2FuSW5kZXg7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9FbmRWYXJpYWJsZU5hbWU6CisgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdOworICAgICAgICBpZiAobj09bnVsbCB8fCBuLmZUeXBlICE9IFJCQklOb2RlLnZhclJlZikgeworICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG4uZkxhc3RQb3MgPSBmU2NhbkluZGV4OworICAgICAgICBuLmZUZXh0ICAgID0gZlJCLmZSdWxlcy5zdWJzdHJpbmcobi5mRmlyc3RQb3MrMSwgbi5mTGFzdFBvcyk7CisgICAgICAgIC8vIExvb2sgdGhlIG5ld2x5IHNjYW5uZWQgbmFtZSB1cCBpbiB0aGUgc3ltYm9sIHRhYmxlCisgICAgICAgIC8vICAgSWYgdGhlcmUncyBhbiBlbnRyeSwgc2V0IHRoZSBsLiBjaGlsZCBvZiB0aGUgdmFyIHJlZiB0byB0aGUgcmVwbGFjZW1lbnQgZXhwcmVzc2lvbi4KKyAgICAgICAgLy8gICAoV2UgYWxzbyBwYXNzIHRocm91Z2ggaGVyZSB3aGVuIHNjYW5uaW5nIGFzc2lnbm1lbnRzLCBidXQgbm8gaGFybSBpcyBkb25lLCBvdGhlcgorICAgICAgICAvLyAgICB0aGFuIGEgc2xpZ2h0IHdhc3RlZCBlZmZvcnQgdGhhdCBzZWVtcyBoYXJkIHRvIGF2b2lkLiAgTG9va3VwIHdpbGwgYmUgbnVsbCkKKyAgICAgICAgbi5mTGVmdENoaWxkID0gZlN5bWJvbFRhYmxlLmxvb2t1cE5vZGUobi5mVGV4dCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9DaGVja1ZhckRlZjoKKyAgICAgICAgbiA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgIGlmIChuLmZMZWZ0Q2hpbGQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX1VOREVGSU5FRF9WQVJJQUJMRSk7CisgICAgICAgICAgICByZXR1cm5WYWwgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvRXhwckZpbmlzaGVkOgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvUnVsZUVycm9yQXNzaWduRXhwcjoKKyAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0FTU0lHTl9FUlJPUik7CisgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUkJCSVJ1bGVQYXJzZVRhYmxlLmRvRXhpdDoKKyAgICAgICAgcmV0dXJuVmFsID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSQkJJUnVsZVBhcnNlVGFibGUuZG9TY2FuVW5pY29kZVNldDoKKyAgICAgICAgc2NhblNldCgpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19JTlRFUk5BTF9FUlJPUik7CisgICAgICAgIHJldHVyblZhbCA9IGZhbHNlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbDsKK30KKworCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gIEVycm9yICAgICAgICAgVGhyb3cgYW5kIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpbiByZXNwb25zZSB0byBhIHJ1bGUgcGFyc2UgZXJyb3IuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIGVycm9yKGludCBlKSAgeworICAgIFN0cmluZyBzID0gIkVycm9yICIgKyBlICsgIiBhdCBsaW5lICIgKyBmTGluZU51bSArICIgY29sdW1uICIgKyBmQ2hhck51bTsKKyAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXggPSBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHMpOworICAgIHRocm93IGV4OworICAgIAorIH0KKyAKKworCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gIGZpeE9wU3RhY2sgICBUaGUgcGFyc2Ugc3RhY2sgaG9sZHMgcGFydGlhbGx5IGFzc2VtYmxlZCBjaHVua3Mgb2YgdGhlIHBhcnNlIHRyZWUuCisvLyAgICAgICAgICAgICAgIEFuIGVudHJ5IG9uIHRoZSBzdGFjayBtYXkgYmUgYXMgc21hbGwgYXMgYSBzaW5nbGUgc2V0UmVmIG5vZGUsCisvLyAgICAgICAgICAgICAgIG9yIGFzIGxhcmdlIGFzIHRoZSBwYXJzZSB0cmVlCisvLyAgICAgICAgICAgICAgIGZvciBhbiBlbnRpcmUgZXhwcmVzc2lvbiAodGhpcyB3aWxsIGJlIHRoZSBvbmUgaXRlbSBsZWZ0IG9uIHRoZSBzdGFjaworLy8gICAgICAgICAgICAgICB3aGVuIHRoZSBwYXJzaW5nIG9mIGFuIFJCQkkgcnVsZSBjb21wbGV0ZXMuCisvLworLy8gICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgYmluYXJ5IG9wZXJhdG9yIGlzIGVuY291bnRlcmVkLgorLy8gICAgICAgICAgICAgICBJdCBsb29rcyBiYWNrIHVwIHRoZSBzdGFjayBmb3Igb3BlcmF0b3JzIHRoYXQgYXJlIG5vdCB5ZXQgYXNzb2NpYXRlZAorLy8gICAgICAgICAgICAgICB3aXRoIGEgcmlnaHQgb3BlcmFuZCwgYW5kIGlmIHRoZSBwcmVjZWRlbmNlIG9mIHRoZSBzdGFja2VkIG9wZXJhdG9yID49CisvLyAgICAgICAgICAgICAgIHRoZSBwcmVjZWRlbmNlIG9mIHRoZSBjdXJyZW50IG9wZXJhdG9yLCBiaW5kcyB0aGUgb3BlcmFuZCBsZWZ0LAorLy8gICAgICAgICAgICAgICB0byB0aGUgcHJldmlvdXNseSBlbmNvdW50ZXJlZCBvcGVyYXRvci4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgZml4T3BTdGFjayhpbnQgcCkgIHsKKyAgICBSQkJJTm9kZSBuOworICAgIC8vIHByaW50Tm9kZVN0YWNrKCJlbnRlcmluZyBmaXhPcFN0YWNrKCkiKTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIG4gPSBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHItMV07ICAgLy8gYW4gb3BlcmF0b3Igbm9kZQorICAgICAgICBpZiAobi5mUHJlY2VkZW5jZSA9PSAwKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJSQkJJUnVsZVNjYW5uZXIuZml4T3BTdGFjaywgYmFkIG9wZXJhdG9yIG5vZGUiKTsKKyAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19JTlRFUk5BTF9FUlJPUik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAobi5mUHJlY2VkZW5jZSA8IHAgfHwgbi5mUHJlY2VkZW5jZSA8PSBSQkJJTm9kZS5wcmVjTFBhcmVuKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9zdCByZWNlbnQgb3BlcmFuZCBnb2VzIHdpdGggdGhlIGN1cnJlbnQgb3BlcmF0b3IsCisgICAgICAgICAgICAvLyAgIG5vdCB3aXRoIHRoZSBwcmV2aW91c2x5IHN0YWNrZWQgb25lLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFN0YWNrIG9wZXJhdG9yIGlzIGEgYmluYXJ5IG9wICAoICd8JyBvciBjb25jYXRlbmF0aW9uKQorICAgICAgICAgICAgLy8gICBUT1Mgb3BlcmFuZCBiZWNvbWVzIHJpZ2h0IGNoaWxkIG9mIHRoaXMgb3BlcmF0b3IuCisgICAgICAgICAgICAvLyAgIFJlc3VsdGluZyBzdWJleHByZXNzaW9uIGJlY29tZXMgdGhlIFRPUyBvcGVyYW5kLgorICAgICAgICAgICAgbi5mUmlnaHRDaGlsZCA9IGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07CisgICAgICAgICAgICBmTm9kZVN0YWNrW2ZOb2RlU3RhY2tQdHJdLmZQYXJlbnQgPSBuOworICAgICAgICAgICAgZk5vZGVTdGFja1B0ci0tOworICAgICAgICAvLyBwcmludE5vZGVTdGFjaygibG9vcGluZyBpbiBmaXhPcFN0YWNrKCkgICAiKTsKKyAgICB9CisKKyAgICBpZiAocCA8PSBSQkJJTm9kZS5wcmVjTFBhcmVuKSB7CisgICAgICAgIC8vIFNjYW4gaXMgYXQgYSByaWdodCBwYXJlbiBvciBlbmQgb2YgZXhwcmVzc2lvbi4KKyAgICAgICAgLy8gIFRoZSBzY2FubmVkIGl0ZW0gbXVzdCBtYXRjaCB0aGUgc3RhY2ssIG9yIGVsc2UgdGhlcmUgd2FzIGFuIGVycm9yLgorICAgICAgICAvLyAgRGlzY2FyZCB0aGUgbGVmdCBwYXJlbiAob3Igc3RhcnQgZXhwcikgbm9kZSBmcm9tIHRoZSBzdGFjaywKKyAgICAgICAgICAgIC8vICBsZWF2aW5nIHRoZSBjb21wbGV0ZWQgKHN1YilleHByZXNzaW9uIGFzIFRPUy4KKyAgICAgICAgICAgIGlmIChuLmZQcmVjZWRlbmNlICE9IHApIHsKKyAgICAgICAgICAgICAgICAvLyBSaWdodCBwYXJlbiBlbmNvdW50ZXJlZCBtYXRjaGVkIHN0YXJ0IG9mIGV4cHJlc3Npb24gbm9kZSwgb3IKKyAgICAgICAgICAgICAgICAvLyBlbmQgb2YgZXhwcmVzc2lvbiBtYXRjaGVkIHdpdGggYSBsZWZ0IHBhcmVuIG5vZGUuCisgICAgICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX01JU01BVENIRURfUEFSRU4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyLTFdID0gZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXTsKKyAgICAgICAgICAgIGZOb2RlU3RhY2tQdHItLTsKKyAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgbm93LWRpc2NhcmRlZCBMUGFyZW4gb3IgU3RhcnQgbm9kZS4KKyAgICAgICAgICAgIC8vIGRlbGV0ZSBuOworICAgIH0KKyAgICAvLyBwcmludE5vZGVTdGFjaygibGVhdmluZyBmaXhPcFN0YWNrKCkiKTsKK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICAgICBSQkJJU2V0VGFibGVFbCAgIGlzIGFuIGVudHJ5IGluIHRoZSBoYXNoIHRhYmxlIG9mIFVuaWNvZGVTZXRzIHRoYXQgaGF2ZQorLy8gICAgICAgICAgICAgICAgICAgICAgICBiZWVuIGVuY291bnRlcmVkLiAgVGhlIHZhbCBOb2RlIHdpbGwgYmUgb2Ygbm9kZXR5cGUgdXNldAorLy8gICAgICAgICAgICAgICAgICAgICAgICBhbmQgY29udGFpbiBwb2ludGVycyB0byB0aGUgYWN0dWFsIFVuaWNvZGVTZXRzLgorLy8gICAgICAgICAgICAgICAgICAgICAgICBUaGUgS2V5IGlzIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBpbml0aWFsaXppbmcgdGhlIHNldC4KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBoYXNoIHRhYmxlIGlzIHVzZWQgdG8gYXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlCisvLyAgICAgICAgICAgICAgICAgICAgICAgIHVubmFtZWQgKG5vdCAkdmFyIHJlZmVyZW5jZXMpIFVuaWNvZGVTZXRzLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIGNsYXNzIFJCQklTZXRUYWJsZUVsIHsKKyAgICBTdHJpbmcgICAgICAgICBrZXk7CisgICAgUkJCSU5vZGUgICAgICAgdmFsOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgZmluZFNldEZvciAgICBnaXZlbiBhIFN0cmluZywKKy8vICAgICAgICAgICAgICAgICAgLSBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIFVuaWNvZGUgU2V0ICAodXNldCBub2RlKQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZSBvbmUgaWYgbmVjZXNzYXJ5KQorLy8gICAgICAgICAgICAgICAgICAtIFNldCBmTGVmdENoaWxkIG9mIHRoZSBjYWxsZXIncyBub2RlIChzaG91bGQgYmUgYSBzZXRSZWYgbm9kZSkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSB1c2V0IG5vZGUKKy8vICAgICAgICAgICAgICAgICBNYWludGFpbiBhIGhhc2ggdGFibGUgb2YgdXNldCBub2Rlcywgc28gdGhlIHNhbWUgb25lIGlzIGFsd2F5cyB1c2VkCisvLyAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBzYW1lIHN0cmluZy4KKy8vICAgICAgICAgICAgICAgICBJZiBhICJ0byBhZG9wdCIgc2V0IGlzIHByb3ZpZGVkIGFuZCB3ZSBoYXZlbid0IHNlZW4gdGhpcyBrZXkgYmVmb3JlLAorLy8gICAgICAgICAgICAgICAgICAgIGFkZCB0aGUgcHJvdmlkZWQgc2V0IHRvIHRoZSBoYXNoIHRhYmxlLgorLy8gICAgICAgICAgICAgICAgIElmIHRoZSBzdHJpbmcgaXMgb25lICgzMiBiaXQpIGNoYXIgaW4gbGVuZ3RoLCB0aGUgc2V0IGNvbnRhaW5zCisvLyAgICAgICAgICAgICAgICAgICAganVzdCBvbmUgZWxlbWVudCB3aGljaCBpcyB0aGUgY2hhciBpbiBxdWVzdGlvbi4KKy8vICAgICAgICAgICAgICAgICBJZiB0aGUgc3RyaW5nIGlzICJhbnkiLCByZXR1cm4gYSBzZXQgY29udGFpbmluZyBhbGwgY2hhcnMuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIGZpbmRTZXRGb3IoU3RyaW5nIHMsIFJCQklOb2RlIG5vZGUsIFVuaWNvZGVTZXQgc2V0VG9BZG9wdCkgeworCisgICAgUkJCSVNldFRhYmxlRWwgICBlbDsKKworICAgIC8vIEZpcnN0IGNoZWNrIHdoZXRoZXIgd2UndmUgYWxyZWFkeSBjYWNoZWQgYSBzZXQgZm9yIHRoaXMgc3RyaW5nLgorICAgIC8vIElmIHNvLCBqdXN0IHVzZSB0aGUgY2FjaGVkIHNldCBpbiB0aGUgbmV3IG5vZGUuCisgICAgLy8gICBkZWxldGUgYW55IHNldCBwcm92aWRlZCBieSB0aGUgY2FsbGVyLCBzaW5jZSB3ZSBvd24gaXQuCisgICAgZWwgPSAoUkJCSVNldFRhYmxlRWwpZlNldFRhYmxlLmdldChzKTsKKyAgICBpZiAoZWwgIT0gbnVsbCkgeworICAgICAgICBub2RlLmZMZWZ0Q2hpbGQgPSBlbC52YWw7CisgICAgICAgIEFzc2VydC5hc3NydChub2RlLmZMZWZ0Q2hpbGQuZlR5cGUgPT0gUkJCSU5vZGUudXNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBIYXZlbid0IHNlZW4gdGhpcyBzZXQgYmVmb3JlLgorICAgIC8vIElmIHRoZSBjYWxsZXIgZGlkbid0IHByb3ZpZGUgdXMgd2l0aCBhIHByZWJ1aWx0IHNldCwKKyAgICAvLyAgIGNyZWF0ZSBhIG5ldyBVbmljb2RlU2V0IG5vdy4KKyAgICBpZiAoc2V0VG9BZG9wdCA9PSBudWxsKSB7CisgICAgICAgIGlmIChzLmVxdWFscyhrQW55KSkgeworICAgICAgICAgICAgc2V0VG9BZG9wdCA9IG5ldyBVbmljb2RlU2V0KDB4MDAwMDAwLCAweDEwZmZmZik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgMCk7CisgICAgICAgICAgICBzZXRUb0Fkb3B0ID0gbmV3IFVuaWNvZGVTZXQoYywgYyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLworICAgIC8vIE1ha2UgYSBuZXcgdXNldCBub2RlIHRvIHJlZmVyIHRvIHRoaXMgVW5pY29kZVNldAorICAgIC8vIFRoaXMgbmV3IHVzZXQgbm9kZSBiZWNvbWVzIHRoZSBjaGlsZCBvZiB0aGUgY2FsbGVyJ3Mgc2V0UmVmZXJlbmNlIG5vZGUuCisgICAgLy8KKyAgICBSQkJJTm9kZSB1c2V0Tm9kZSAgICA9IG5ldyBSQkJJTm9kZShSQkJJTm9kZS51c2V0KTsKKyAgICB1c2V0Tm9kZS5mSW5wdXRTZXQgICA9IHNldFRvQWRvcHQ7CisgICAgdXNldE5vZGUuZlBhcmVudCAgICAgPSBub2RlOworICAgIG5vZGUuZkxlZnRDaGlsZCAgICAgID0gdXNldE5vZGU7CisgICAgdXNldE5vZGUuZlRleHQgPSBzOworCisKKyAgICAvLworICAgIC8vIEFkZCB0aGUgbmV3IHVzZXQgbm9kZSB0byB0aGUgbGlzdCBvZiBhbGwgdXNldCBub2Rlcy4KKyAgICAvLworICAgIGZSQi5mVVNldE5vZGVzLmFkZCh1c2V0Tm9kZSk7CisKKworICAgIC8vCisgICAgLy8gQWRkIHRoZSBuZXcgc2V0IHRvIHRoZSBzZXQgaGFzaCB0YWJsZS4KKyAgICAvLworICAgIGVsICAgICA9IG5ldyBSQkJJU2V0VGFibGVFbCgpOworICAgIGVsLmtleSA9IHM7CisgICAgZWwudmFsID0gdXNldE5vZGU7CisgICAgZlNldFRhYmxlLnB1dChlbC5rZXksIGVsKTsKKworICAgIHJldHVybjsKK30KKworCisKKy8vCisvLyAgQXNzb3J0ZWQgVW5pY29kZSBjaGFyYWN0ZXIgY29uc3RhbnRzLgorLy8gICAgIE51bWVyaWMgYmVjYXVzZSB0aGVyZSBpcyBubyBwb3J0YWJsZSB3YXkgdG8gZW50ZXIgdGhlbSBhcyBsaXRlcmFscy4KKy8vICAgICAoVGhpbmsgRUJDRElDKS4KKy8vCitzdGF0aWMgZmluYWwgaW50ICAgICAgIGNoTkVMICAgICAgID0gMHg4NTsgICAgICAvLyAgICBORUwgbmV3bGluZSB2YXJpYW50CitzdGF0aWMgZmluYWwgaW50ICAgICAgIGNoTFMgICAgICAgID0gMHgyMDI4OyAgICAvLyAgICBVbmljb2RlIExpbmUgU2VwYXJhdG9yCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gIHN0cmlwUnVsZXMgICAgUmV0dXJuIGEgcnVsZXMgc3RyaW5nIHdpdGhvdXQgdW5uZWNlc3NhcnkKKy8vICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGF0aWMgU3RyaW5nIHN0cmlwUnVsZXMoU3RyaW5nIHJ1bGVzKSB7CisgICAgU3RyaW5nQnVmZmVyIHN0cmlwcGVkUnVsZXMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50IHJ1bGVzTGVuZ3RoID0gcnVsZXMubGVuZ3RoKCk7CisgICAgZm9yIChpbnQgaWR4ID0gMDsgaWR4IDwgcnVsZXNMZW5ndGg7ICkgeworICAgICAgICBjaGFyIGNoID0gcnVsZXMuY2hhckF0KGlkeCsrKTsKKyAgICAgICAgaWYgKGNoID09ICcjJykgeworICAgICAgICAgICAgd2hpbGUgKGlkeCA8IHJ1bGVzTGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgY2ggIT0gJ1xyJyAmJiBjaCAhPSAnXG4nICYmIGNoICE9IGNoTkVMKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gcnVsZXMuY2hhckF0KGlkeCsrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGNoKSkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RyaXBwZWRSdWxlcy5hcHBlbmQoY2gpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdHJpcHBlZFJ1bGVzLnRvU3RyaW5nKCk7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gIG5leHRDaGFyTEwgICAgTG93IExldmVsIE5leHQgQ2hhciBmcm9tIHJ1bGUgaW5wdXQgc291cmNlLgorLy8gICAgICAgICAgICAgICAgR2V0IGEgY2hhciBmcm9tIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXRlcmF0b3IsCisvLyAgICAgICAgICAgICAgICBrZWVwIHRyYWNrIG9mIGlucHV0IHBvc2l0aW9uIGZvciBlcnJvciByZXBvcnRpbmcuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitpbnQgIG5leHRDaGFyTEwoKSAgeworICAgIGludCAgY2g7CisKKyAgICBpZiAoZk5leHRJbmRleCA+PSBmUkIuZlJ1bGVzLmxlbmd0aCgpKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgY2ggICAgICAgICA9IFVURjE2LmNoYXJBdChmUkIuZlJ1bGVzLCBmTmV4dEluZGV4KTsKKyAgICBmTmV4dEluZGV4ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChmUkIuZlJ1bGVzLCBmTmV4dEluZGV4LCAxKTsKKworICAgIGlmIChjaCA9PSAnXHInIHx8CisgICAgICAgIGNoID09IGNoTkVMIHx8CisgICAgICAgIGNoID09IGNoTFMgICB8fAorICAgICAgICBjaCA9PSAnXG4nICYmIGZMYXN0Q2hhciAhPSAnXHInKSB7CisgICAgICAgIC8vIENoYXJhY3RlciBpcyBzdGFydGluZyBhIG5ldyBsaW5lLiAgQnVtcCB1cCB0aGUgbGluZSBudW1iZXIsIGFuZAorICAgICAgICAvLyAgcmVzZXQgdGhlIGNvbHVtbiB0byAwLgorICAgICAgICBmTGluZU51bSsrOworICAgICAgICBmQ2hhck51bT0wOworICAgICAgICBpZiAoZlF1b3RlTW9kZSkgeworICAgICAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX05FV19MSU5FX0lOX1FVT1RFRF9TVFJJTkcpOworICAgICAgICAgICAgZlF1b3RlTW9kZSA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvLyBDaGFyYWN0ZXIgaXMgbm90IHN0YXJ0aW5nIGEgbmV3IGxpbmUuICBFeGNlcHQgaW4gdGhlIGNhc2Ugb2YgYQorICAgICAgICAvLyAgIExGIGZvbGxvd2luZyBhIENSLCBpbmNyZW1lbnQgdGhlIGNvbHVtbiBwb3NpdGlvbi4KKyAgICAgICAgaWYgKGNoICE9ICdcbicpIHsKKyAgICAgICAgICAgIGZDaGFyTnVtKys7CisgICAgICAgIH0KKyAgICB9CisgICAgZkxhc3RDaGFyID0gY2g7CisgICAgcmV0dXJuIGNoOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBuZXh0Q2hhciAgICAgZm9yIHJ1bGVzIHNjYW5uaW5nLiAgQXQgdGhpcyBsZXZlbCwgd2UgaGFuZGxlIHN0cmlwcGluZworLy8gICAgICAgICAgICAgICAgb3V0IGNvbW1lbnRzIGFuZCBwcm9jZXNzaW5nIGJhY2tzbGFzaCBjaGFyYWN0ZXIgZXNjYXBlcy4KKy8vICAgICAgICAgICAgICAgIFRoZSByZXN0IG9mIHRoZSBydWxlcyBncmFtbWFyIGlzIGhhbmRsZWQgYXQgdGhlIG5leHQgbGV2ZWwgdXAuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgbmV4dENoYXIoUkJCSVJ1bGVDaGFyIGMpIHsKKworICAgIC8vIFVuaWNvZGUgQ2hhcmFjdGVyIGNvbnN0YW50cyBuZWVkZWQgZm9yIHRoZSBwcm9jZXNzaW5nIGRvbmUgYnkgbmV4dENoYXIoKSwKKyAgICAvLyAgIGluIGhleCBiZWNhdXNlIGxpdGVyYWxzIHdvbnQgd29yayBvbiBFQkNESUMgbWFjaGluZXMuCisKKyAgICBmU2NhbkluZGV4ID0gZk5leHRJbmRleDsKKyAgICBjLmZDaGFyICAgID0gbmV4dENoYXJMTCgpOworICAgIGMuZkVzY2FwZWQgPSBmYWxzZTsKKworICAgIC8vCisgICAgLy8gIGNoZWNrIGZvciAnJyBzZXF1ZW5jZS4KKyAgICAvLyAgVGhlc2UgYXJlIHJlY29nbml6ZWQgaW4gYWxsIGNvbnRleHRzLCB3aGV0aGVyIGluIHF1b3RlZCB0ZXh0IG9yIG5vdC4KKyAgICAvLworICAgIGlmIChjLmZDaGFyID09ICdcJycpIHsKKyAgICAgICAgaWYgKFVURjE2LmNoYXJBdChmUkIuZlJ1bGVzLCBmTmV4dEluZGV4KSA9PSAnXCcnKSB7CisgICAgICAgICAgICBjLmZDaGFyICAgID0gbmV4dENoYXJMTCgpOyAgICAgICAgLy8gZ2V0IG5leHRDaGFyIG9mZmljaWFsbHkgc28gY2hhcmFjdGVyIGNvdW50cworICAgICAgICAgICAgYy5mRXNjYXBlZCA9IHRydWU7ICAgICAgICAgICAgICAgIC8vICAgc3RheSBjb3JyZWN0LgorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLy8gU2luZ2xlIHF1b3RlLCBieSBpdHNlbGYuCisgICAgICAgICAgICAvLyAgIFRvZ2dsZSBxdW90aW5nIG1vZGUuCisgICAgICAgICAgICAvLyAgIFJldHVybiBlaXRoZXIgJygnICBvciAnKScsIGJlY2F1c2UgcXVvdGVzIGNhdXNlIGEgZ3JvdXBpbmcgb2YgdGhlIHF1b3RlZCB0ZXh0LgorICAgICAgICAgICAgZlF1b3RlTW9kZSA9ICFmUXVvdGVNb2RlOworICAgICAgICAgICAgaWYgKGZRdW90ZU1vZGUgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIGMuZkNoYXIgPSAnKCc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGMuZkNoYXIgPSAnKSc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjLmZFc2NhcGVkID0gZmFsc2U7ICAgICAgLy8gVGhlIHBhcmVuIHRoYXQgd2UgcmV0dXJuIGlzIG5vdCBlc2NhcGVkLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGZRdW90ZU1vZGUpIHsKKyAgICAgICAgYy5mRXNjYXBlZCA9IHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8vIFdlIGFyZSBub3QgaW4gYSAncXVvdGVkIHJlZ2lvbicgb2YgdGhlIHNvdXJjZS4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGMuZkNoYXIgPT0gJyMnKSB7CisgICAgICAgICAgICAvLyBTdGFydCBvZiBhIGNvbW1lbnQuICBDb25zdW1lIHRoZSByZXN0IG9mIGl0LgorICAgICAgICAgICAgLy8gIFRoZSBuZXctbGluZSBjaGFyIHRoYXQgdGVybWluYXRlcyB0aGUgY29tbWVudCBpcyBhbHdheXMgcmV0dXJuZWQuCisgICAgICAgICAgICAvLyAgSXQgd2lsbCBiZSB0cmVhdGVkIGFzIHdoaXRlLXNwYWNlLCBhbmQgc2VydmVzIHRvIGJyZWFrIHVwIGFueXRoaW5nCisgICAgICAgICAgICAvLyAgICB0aGF0IG1pZ2h0IG90aGVyd2lzZSBpbmNvcnJlY3RseSBjbHVtcCB0b2dldGhlciB3aXRoIGEgY29tbWVudCBpbgorICAgICAgICAgICAgLy8gICAgdGhlIG1pZGRsZSAoYSB2YXJpYWJsZSBuYW1lLCBmb3IgZXhhbXBsZS4pCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgYy5mQ2hhciA9IG5leHRDaGFyTEwoKTsKKyAgICAgICAgICAgICAgICBpZiAoYy5mQ2hhciA9PSAoaW50KS0xIHx8ICAvLyBFT0YKKyAgICAgICAgICAgICAgICAgICAgYy5mQ2hhciA9PSAnXHInICAgICB8fAorICAgICAgICAgICAgICAgICAgICBjLmZDaGFyID09ICdcbicgICAgIHx8CisgICAgICAgICAgICAgICAgICAgIGMuZkNoYXIgPT0gY2hORUwgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgYy5mQ2hhciA9PSBjaExTKSAgICAgICB7YnJlYWs7fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjLmZDaGFyID09IChpbnQpLTEpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vCisgICAgICAgIC8vICBjaGVjayBmb3IgYmFja3NsYXNoIGVzY2FwZWQgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gIFVzZSBTdHJpbmcudW5lc2NhcGVBdCgpIHRvIGhhbmRsZSB0aGVtLgorICAgICAgICAvLworICAgICAgICBpZiAoYy5mQ2hhciA9PSAnXFwnKSB7CisgICAgICAgICAgICBjLmZFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGludCBbXSB1bmVzY2FwZUluZGV4ID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHVuZXNjYXBlSW5kZXhbMF0gPSBmTmV4dEluZGV4OworICAgICAgICAgICAgYy5mQ2hhciA9IFV0aWxpdHkudW5lc2NhcGVBdChmUkIuZlJ1bGVzLCB1bmVzY2FwZUluZGV4KTsKKyAgICAgICAgICAgIGlmICh1bmVzY2FwZUluZGV4WzBdID09IGZOZXh0SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfSEVYX0RJR0lUU19FWFBFQ1RFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZDaGFyTnVtICs9IHVuZXNjYXBlSW5kZXhbMF0tZk5leHRJbmRleDsKKyAgICAgICAgICAgIGZOZXh0SW5kZXggPSB1bmVzY2FwZUluZGV4WzBdOworICAgICAgICB9CisgICAgfQorICAgIC8vIHB1dGMoYy5mQ2hhciwgc3Rkb3V0KTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgUGFyc2UgUkJCSSBydWxlcy4gICBUaGUgc3RhdGUgbWFjaGluZSBmb3IgcnVsZXMgcGFyc2luZyBpcyBoZXJlLgorLy8gICAgICAgICAgICAgICAgICAgICAgVGhlIHN0YXRlIHRhYmxlcyBhcmUgaGFuZC13cml0dGVuIGluIHRoZSBmaWxlIHJiYmlycHQudHh0LAorLy8gICAgICAgICAgICAgICAgICAgICAgYW5kIGNvbnZlcnRlZCB0byB0aGUgZm9ybSB1c2VkIGhlcmUgYnkgYSBwZXJsCisvLyAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQgcmJiaWNzdC5wbAorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIHBhcnNlKCkgIHsKKyAgICBpbnQgICAgICBzdGF0ZTsKKyAgICBSQkJJUnVsZVBhcnNlVGFibGUuUkJCSVJ1bGVUYWJsZUVsZW1lbnQgICAgdGFibGVFbDsKKworCisgICAgc3RhdGUgPSAxOworICAgIG5leHRDaGFyKGZDKTsKKyAgICAvLworICAgIC8vIE1haW4gbG9vcCBmb3IgdGhlIHJ1bGUgcGFyc2luZyBzdGF0ZSBtYWNoaW5lLgorICAgIC8vICAgUnVucyBvbmNlIHBlciBzdGF0ZSB0cmFuc2l0aW9uLgorICAgIC8vICAgRWFjaCB0aW1lIHRocm91Z2ggb3B0aW9uYWxseSBwZXJmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSB0YWJsZSwKKyAgICAvLyAgICAgIC0gYW4gYWR2YW5jZSB0byB0aGUgdGhlIG5leHQgaW5wdXQgY2hhcgorICAgIC8vICAgICAgLSBhbiBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkLgorICAgIC8vICAgICAgLSBwdXNoaW5nIG9yIHBvcHBpbmcgYSBzdGF0ZSB0by9mcm9tIHRoZSBsb2NhbCBzdGF0ZSByZXR1cm4gc3RhY2suCisgICAgLy8KKyAgICBmb3IgKDs7KSB7CisgICAgICAgIC8vIFF1aXQgaWYgc3RhdGUgPT0gMC4gIFRoaXMgaXMgdGhlIG5vcm1hbCB3YXkgdG8gZXhpdCB0aGUgc3RhdGUgbWFjaGluZS4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKHN0YXRlID09IDApIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgc3RhdGUgdGFibGUgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlIGlucHV0IGNoYXIgZnJvbSB0aGUgcnVsZSwgb3IgdGhlCisgICAgICAgIC8vICAgIGNsYXNzIG9mIHRoZSBpbnB1dCBjaGFyYWN0ZXIuICBTdGFydCB3aXRoIHRoZSBmaXJzdCB0YWJsZSByb3cgZm9yIHRoaXMKKyAgICAgICAgLy8gICAgc3RhdGUsIHRoZW4gbGluZWFybHkgc2NhbiBmb3J3YXJkIHVudGlsIHdlIGZpbmQgYSByb3cgdGhhdCBtYXRjaGVzIHRoZQorICAgICAgICAvLyAgICBjaGFyYWN0ZXIuICBUaGUgbGFzdCByb3cgZm9yIGVhY2ggc3RhdGUgYWx3YXlzIG1hdGNoZXMgYWxsIGNoYXJhY3RlcnMsIHNvCisgICAgICAgIC8vICAgIHRoZSBzZWFyY2ggd2lsbCBzdG9wIHRoZXJlLCBpZiBub3QgYmVmb3JlLgorICAgICAgICAvLworICAgICAgICB0YWJsZUVsID0gUkJCSVJ1bGVQYXJzZVRhYmxlLmdSdWxlUGFyc2VTdGF0ZVRhYmxlW3N0YXRlXTsKKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigic2NhbiIpPj0wKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyLCBsaW5lLCBjb2wgPSAoXCciICsgKGNoYXIpZkMuZkNoYXIgKyAiXCcsICIgKyBmTGluZU51bSArICIsICIgKyBmQ2hhck51bSArCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHN0YXRlID0gIiArIHRhYmxlRWwuZlN0YXRlTmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgdGFibGVSb3c9c3RhdGU7IDt0YWJsZVJvdysrKSB7ICAgLy8gbG9vcCBvdmVyIHRoZSBzdGF0ZSB0YWJsZSByb3dzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0YXRlLgorICAgICAgICAgICAgdGFibGVFbCA9IFJCQklSdWxlUGFyc2VUYWJsZS5nUnVsZVBhcnNlU3RhdGVUYWJsZVt0YWJsZVJvd107CisgICAgICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInNjYW4iKT49MCkgeyBTeXN0ZW0ub3V0LnByaW50KCIuIik7fQorICAgICAgICAgICAgaWYgKHRhYmxlRWwuZkNoYXJDbGFzcyA8IDEyNyAmJiBmQy5mRXNjYXBlZCA9PSBmYWxzZSAmJiAgIHRhYmxlRWwuZkNoYXJDbGFzcyA9PSBmQy5mQ2hhcikgeworICAgICAgICAgICAgICAgIC8vIFRhYmxlIHJvdyBzcGVjaWZpZWQgYW4gaW5kaXZpZHVhbCBjaGFyYWN0ZXIsIG5vdCBhIHNldCwgYW5kCisgICAgICAgICAgICAgICAgLy8gICB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIG5vdCBlc2NhcGVkLCBhbmQKKyAgICAgICAgICAgICAgICAvLyAgIHRoZSBpbnB1dCBjaGFyYWN0ZXIgbWF0Y2hlZCBpdC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gMjU1KSB7CisgICAgICAgICAgICAgICAgLy8gVGFibGUgcm93IHNwZWNpZmllZCBkZWZhdWx0LCBtYXRjaCBhbnl0aGluZyBjaGFyYWN0ZXIgY2xhc3MuCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGFibGVFbC5mQ2hhckNsYXNzID09IDI1NCAmJiBmQy5mRXNjYXBlZCkgIHsKKyAgICAgICAgICAgICAgICAvLyBUYWJsZSByb3cgc3BlY2lmaWVkICJlc2NhcGVkIiBhbmQgdGhlIGNoYXIgd2FzIGVzY2FwZWQuCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGFibGVFbC5mQ2hhckNsYXNzID09IDI1MyAmJiBmQy5mRXNjYXBlZCAmJgorICAgICAgICAgICAgICAgIChmQy5mQ2hhciA9PSAweDUwIHx8IGZDLmZDaGFyID09IDB4NzAgKSkgIHsKKyAgICAgICAgICAgICAgICAvLyBUYWJsZSByb3cgc3BlY2lmaWVkICJlc2NhcGVkIFAiIGFuZCB0aGUgY2hhciBpcyBlaXRoZXIgJ3AnIG9yICdQJy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0YWJsZUVsLmZDaGFyQ2xhc3MgPT0gMjUyICYmIGZDLmZDaGFyID09IChpbnQpLTEpICB7CisgICAgICAgICAgICAgICAgLy8gVGFibGUgcm93IHNwZWNpZmllZCBlb2YgYW5kIHdlIGhpdCBlb2Ygb24gdGhlIGlucHV0LgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVFbC5mQ2hhckNsYXNzID49IDEyOCAmJiB0YWJsZUVsLmZDaGFyQ2xhc3MgPCAyNDAgJiYgICAgIC8vIFRhYmxlIHNwZWNzIGEgY2hhciBjbGFzcyAmJgorICAgICAgICAgICAgICAgIGZDLmZFc2NhcGVkID09IGZhbHNlICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNoYXIgaXMgbm90IGVzY2FwZWQgJiYKKyAgICAgICAgICAgICAgICBmQy5mQ2hhciAhPSAoaW50KS0xKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjaGFyIGlzIG5vdCBFT0YKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHVuaXNldCA9IGZSdWxlU2V0c1t0YWJsZUVsLmZDaGFyQ2xhc3MtMTI4XTsKKyAgICAgICAgICAgICAgICBpZiAodW5pc2V0LmNvbnRhaW5zKGZDLmZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUYWJsZSByb3cgc3BlY2lmaWVkIGEgY2hhcmFjdGVyIGNsYXNzLCBvciBzZXQgb2YgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAgICAgLy8gICBhbmQgdGhlIGN1cnJlbnQgY2hhciBtYXRjaGVzIGl0LgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJzY2FuIik+PTApIHsgU3lzdGVtLm91dC5wcmludGxuKCIiKTt9CisgICAgICAgIC8vCisgICAgICAgIC8vIFdlJ3ZlIGZvdW5kIHRoZSByb3cgb2YgdGhlIHN0YXRlIHRhYmxlIHRoYXQgbWF0Y2hlcyB0aGUgY3VycmVudCBpbnB1dAorICAgICAgICAvLyAgIGNoYXJhY3RlciBmcm9tIHRoZSBydWxlcyBzdHJpbmcuCisgICAgICAgIC8vIFBlcmZvcm0gYW55IGFjdGlvbiBzcGVjaWZpZWQgIGJ5IHRoaXMgcm93IGluIHRoZSBzdGF0ZSB0YWJsZS4KKyAgICAgICAgaWYgKGRvUGFyc2VBY3Rpb25zKHRhYmxlRWwuZkFjdGlvbikgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIC8vIEJyZWFrIG91dCBvZiB0aGUgc3RhdGUgbWFjaGluZSBsb29wIGlmIHRoZQorICAgICAgICAgICAgLy8gICB0aGUgYWN0aW9uIHNpZ25hbGxlZCBzb21lIGtpbmQgb2YgZXJyb3IsIG9yCisgICAgICAgICAgICAvLyAgIHRoZSBhY3Rpb24gd2FzIHRvIGV4aXQsIG9jY3VycyBvbiBub3JtYWwgZW5kLW9mLXJ1bGVzLWlucHV0LgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGFibGVFbC5mUHVzaFN0YXRlICE9IDApIHsKKyAgICAgICAgICAgIGZTdGFja1B0cisrOworICAgICAgICAgICAgaWYgKGZTdGFja1B0ciA+PSBrU3RhY2tTaXplKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSQkJJUnVsZVNjYW5uZXIucGFyc2UoKSAtIHN0YXRlIHN0YWNrIG92ZXJmbG93LiIpOworICAgICAgICAgICAgICAgIGVycm9yKFJCQklSdWxlQnVpbGRlci5VX0JSS19JTlRFUk5BTF9FUlJPUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3RhY2tbZlN0YWNrUHRyXSA9IHRhYmxlRWwuZlB1c2hTdGF0ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0YWJsZUVsLmZOZXh0Q2hhcikgeworICAgICAgICAgICAgbmV4dENoYXIoZkMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gR2V0IHRoZSBuZXh0IHN0YXRlIGZyb20gdGhlIHRhYmxlIGVudHJ5LCBvciBmcm9tIHRoZQorICAgICAgICAvLyAgIHN0YXRlIHN0YWNrIGlmIHRoZSBuZXh0IHN0YXRlIHdhcyBzcGVjaWZpZWQgYXMgInBvcCIuCisgICAgICAgIGlmICh0YWJsZUVsLmZOZXh0U3RhdGUgIT0gMjU1KSB7CisgICAgICAgICAgICBzdGF0ZSA9IHRhYmxlRWwuZk5leHRTdGF0ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXRlID0gZlN0YWNrW2ZTdGFja1B0cl07CisgICAgICAgICAgICBmU3RhY2tQdHItLTsKKyAgICAgICAgICAgIGlmIChmU3RhY2tQdHIgPCAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSQkJJUnVsZVNjYW5uZXIucGFyc2UoKSAtIHN0YXRlIHN0YWNrIHVuZGVyZmxvdy4iKTsKKyAgICAgICAgICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfSU5URVJOQUxfRVJST1IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKyAgICAvLworICAgIC8vIElmIHRoZXJlIHdlcmUgTk8gdXNlciBzcGVjaWZpZWQgcmV2ZXJzZSBydWxlcywgc2V0IHVwIHRoZSBlcXVpdmFsZW50IG9mICIuKjsiCisgICAgLy8KKyAgICBpZiAoZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZSZXZlcnNlVHJlZV0gPT0gbnVsbCkgeworICAgICAgICBmUkIuZlRyZWVSb290c1tSQkJJUnVsZUJ1aWxkZXIuZlJldmVyc2VUcmVlXSAgPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5vcFN0YXIpOworICAgICAgICBSQkJJTm9kZSAgb3BlcmFuZCA9IHB1c2hOZXdOb2RlKFJCQklOb2RlLnNldFJlZik7CisgICAgICAgIGZpbmRTZXRGb3Ioa0FueSwgb3BlcmFuZCwgbnVsbCk7CisgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mUmV2ZXJzZVRyZWVdLmZMZWZ0Q2hpbGQgPSBvcGVyYW5kOworICAgICAgICBvcGVyYW5kLmZQYXJlbnQgID0gZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZSZXZlcnNlVHJlZV07CisgICAgICAgIGZOb2RlU3RhY2tQdHIgLT0gMjsKKyAgICB9CisKKworICAgIC8vCisgICAgLy8gUGFyc2luZyBvZiB0aGUgaW5wdXQgUkJCSSBydWxlcyBpcyBjb21wbGV0ZS4KKyAgICAvLyBXZSBub3cgaGF2ZSBhIHBhcnNlIHRyZWUgZm9yIHRoZSBydWxlIGV4cHJlc3Npb25zCisgICAgLy8gYW5kIGEgbGlzdCBvZiBhbGwgVW5pY29kZVNldHMgdGhhdCBhcmUgcmVmZXJlbmNlZC4KKyAgICAvLworICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigic3ltYm9scyIpPj0wKSB7CisgICAgICAgIGZTeW1ib2xUYWJsZS5yYmJpU3ltdGFibGVQcmludCgpOworICAgICAgICB9CisgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJwdHJlZSIpPj0wKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wbGV0ZWQgRm9yd2FyZCBSdWxlcyBQYXJzZSBUcmVlLi4uIik7CisgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mRm9yd2FyZFRyZWVdLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkNvbXBsZXRlZCBSZXZlcnNlIFJ1bGVzIFBhcnNlIFRyZWUuLi4iKTsKKyAgICAgICAgZlJCLmZUcmVlUm9vdHNbUkJCSVJ1bGVCdWlsZGVyLmZSZXZlcnNlVHJlZV0ucHJpbnRUcmVlKHRydWUpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ29tcGxldGVkIFNhZmUgUG9pbnQgRm9yd2FyZCBSdWxlcyBQYXJzZSBUcmVlLi4uIik7CisgICAgICAgIGlmIChmUkIuZlRyZWVSb290c1tSQkJJUnVsZUJ1aWxkZXIuZlNhZmVGd2RUcmVlXSA9PSBudWxsKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgLS0gbnVsbCAtLSAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mU2FmZUZ3ZFRyZWVdLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ29tcGxldGVkIFNhZmUgUG9pbnQgUmV2ZXJzZSBSdWxlcyBQYXJzZSBUcmVlLi4uIik7CisgICAgICAgIGlmIChmUkIuZlRyZWVSb290c1tSQkJJUnVsZUJ1aWxkZXIuZlNhZmVSZXZUcmVlXSA9PSBudWxsKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgLS0gbnVsbCAtLSAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW1JCQklSdWxlQnVpbGRlci5mU2FmZVJldlRyZWVdLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICBwcmludE5vZGVTdGFjayAgICAgZm9yIGRlYnVnZ2luZy4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIHByaW50Tm9kZVN0YWNrKFN0cmluZyB0aXRsZSkgeworICAgIGludCBpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbih0aXRsZSArICIuICBEdW1waW5nIG5vZGUgc3RhY2suLi5cbiIpOworICAgIGZvciAoaT1mTm9kZVN0YWNrUHRyOyBpPjA7IGktLSkge2ZOb2RlU3RhY2tbaV0ucHJpbnRUcmVlKHRydWUpO30KK30KKworCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgcHVzaE5ld05vZGUgICBjcmVhdGUgYSBuZXcgUkJCSU5vZGUgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGFuZCBwdXNoIGl0CisvLyAgICAgICAgICAgICAgICBvbnRvIHRoZSBzdGFjayBvZiBub2Rlcy4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUkJCSU5vZGUgIHB1c2hOZXdOb2RlKGludCAgbm9kZVR5cGUpICB7CisgICAgZk5vZGVTdGFja1B0cisrOworICAgIGlmIChmTm9kZVN0YWNrUHRyID49IGtTdGFja1NpemUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSQkJJUnVsZVNjYW5uZXIucHVzaE5ld05vZGUgLSBzdGFjayBvdmVyZmxvdy4iKTsKKyAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX0lOVEVSTkFMX0VSUk9SKTsKKyAgICB9CisgICAgZk5vZGVTdGFja1tmTm9kZVN0YWNrUHRyXSA9IG5ldyBSQkJJTm9kZShub2RlVHlwZSk7CisgICAgcmV0dXJuIGZOb2RlU3RhY2tbZk5vZGVTdGFja1B0cl07Cit9CisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICBzY2FuU2V0ICAgIENvbnN0cnVjdCBhIFVuaWNvZGVTZXQgZnJvbSB0aGUgdGV4dCBhdCB0aGUgY3VycmVudCBzY2FuCisvLyAgICAgICAgICAgICBwb3NpdGlvbi4gIEFkdmFuY2UgdGhlIHNjYW4gcG9zaXRpb24gdG8gdGhlIGZpcnN0IGNoYXJhY3RlcgorLy8gICAgICAgICAgICAgYWZ0ZXIgdGhlIHNldC4KKy8vCisvLyAgICAgICAgICAgICBBIG5ldyBSQkJJIHNldHJlZiBub2RlIHJlZmVycmluZyB0byB0aGUgc2V0IGlzIHB1c2hlZCBvbnRvIHRoZSBub2RlCisvLyAgICAgICAgICAgICBzdGFjay4KKy8vCisvLyAgICAgICAgICAgICBUaGUgc2NhbiBwb3NpdGlvbiBpcyBub3JtYWxseSB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc3RhdGUgbWFjaGluZQorLy8gICAgICAgICAgICAgdGhhdCBjb250cm9scyBydWxlIHBhcnNpbmcuICBVbmljb2RlU2V0cywgaG93ZXZlciwgYXJlIHBhcnNlZCBieQorLy8gICAgICAgICAgICAgdGhlIFVuaWNvZGVTZXQgY29uc3RydWN0b3IsIG5vdCBieSB0aGUgUkJCSSBydWxlIHBhcnNlci4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBzY2FuU2V0KCkgIHsKKyAgICBVbmljb2RlU2V0ICAgICB1c2V0ID0gbnVsbDsKKyAgICBpbnQgICAgICAgICAgICBzdGFydFBvczsKKyAgICBQYXJzZVBvc2l0aW9uICBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihmU2NhbkluZGV4KTsKKyAgICBpbnQgICAgICAgICAgICBpOworCisgICAgc3RhcnRQb3MgPSBmU2NhbkluZGV4OworICAgIHRyeSB7CisgICAgICAgIHVzZXQgPSBuZXcgVW5pY29kZVNldChmUkIuZlJ1bGVzLCBwb3MsIGZTeW1ib2xUYWJsZSwgVW5pY29kZVNldC5JR05PUkVfU1BBQ0UpOworICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7ICAgICAgICAgLy8gVE9ETzogIGNhdGNoIGZld2VyIGV4Y2VwdGlvbiB0eXBlcy4KKyAgICAgICAgLy8gUmVwYWNrYWdlIFVuaWNvZGVTZXQgZXJyb3JzIGFzIFJCQkkgcnVsZSBidWlsZGVyIGVycm9ycywgd2l0aCBsb2NhdGlvbiBpbmZvLgorICAgICAgICBlcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfTUFMRk9STUVEX1NFVCk7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHNldCBjb250YWlucyBhdCBsZWFzdCBvbmUgY29kZSBwb2ludC4KKyAgICAvLworICAgIGlmICh1c2V0LmlzRW1wdHkoKSkgeworICAgICAgICAvLyBUaGlzIHNldCBpcyBlbXB0eS4KKyAgICAgICAgLy8gIE1ha2UgaXQgYW4gZXJyb3IsIGJlY2F1c2UgaXQgYWxtb3N0IGNlcnRhaW5seSBpcyBub3Qgd2hhdCB0aGUgdXNlciB3YW50ZWQuCisgICAgICAgIC8vICBBbHNvLCBhdm9pZHMgaGF2aW5nIHRvIHRoaW5rIGFib3V0IGNvcm5lciBjYXNlcyBpbiB0aGUgdHJlZSBtYW5pcHVsYXRpb24gY29kZQorICAgICAgICAvLyAgIHRoYXQgb2NjdXJzIGxhdGVyIG9uLgorICAgICAgICAvLyAgVE9ETzogIHRoaXMgc2hvdWxkbid0IGJlIGFuIGVycm9yOyBpdCBkb2VzIGhhcHBlbi4KKyAgICAgICAgZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX1JVTEVfRU1QVFlfU0VUKTsKKyAgICB9CisKKworICAgIC8vIEFkdmFuY2UgdGhlIFJCQkkgcGFyc2UgcG9zdGlvbiBvdmVyIHRoZSBVbmljb2RlU2V0IHBhdHRlcm4uCisgICAgLy8gICBEb24ndCBqdXN0IHNldCBmU2NhbkluZGV4IGJlY2F1c2UgdGhlIGxpbmUvY2hhciBwb3NpdGlvbnMgbWFpbnRhaW5lZAorICAgIC8vICAgZm9yIGVycm9yIHJlcG9ydGluZyB3b3VsZCBiZSB0aHJvd24gb2ZmLgorICAgIGkgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIGlmIChmTmV4dEluZGV4ID49IGkpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG5leHRDaGFyTEwoKTsKKyAgICB9CisKKyAgICAgICAgUkJCSU5vZGUgICAgICAgICBuOworCisgICAgICAgIG4gPSBwdXNoTmV3Tm9kZShSQkJJTm9kZS5zZXRSZWYpOworICAgICAgICBuLmZGaXJzdFBvcyA9IHN0YXJ0UG9zOworICAgICAgICBuLmZMYXN0UG9zICA9IGZOZXh0SW5kZXg7CisgICAgICAgIG4uZlRleHQgPSBmUkIuZlJ1bGVzLnN1YnN0cmluZyhuLmZGaXJzdFBvcywgbi5mTGFzdFBvcyk7CisgICAgICAgIC8vICBmaW5kU2V0Rm9yKCkgc2VydmVzIHNldmVyYWwgcHVycG9zZXMgaGVyZToKKyAgICAgICAgLy8gICAgIC0gQWRvcHRzIHN0b3JhZ2UgZm9yIHRoZSBVbmljb2RlU2V0LCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZy4KKyAgICAgICAgLy8gICAgIC0gTWFudGFpbnMgY29sbGVjdGlvbiBvZiBhbGwgc2V0cyBpbiB1c2UsIG5lZWRlZCBsYXRlciBmb3IgZXN0YWJsaXNoaW5nCisgICAgICAgIC8vICAgICAgICAgIGNoYXJhY3RlciBjYXRlZ29yaWVzIGZvciBydW4gdGltZSBlbmdpbmUuCisgICAgICAgIC8vICAgICAtIEVsaW1pbmF0ZXMgbXVsaXRpcGxlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBzZXQuCisgICAgICAgIC8vICAgICAtIENyZWF0ZXMgYSBuZXcgdXNldCBub2RlIGlmIG5lY2Vzc2FyeSAoaWYgdGhpcyBpc24ndCBhIGR1cGxpY2F0ZS4pCisgICAgICAgIGZpbmRTZXRGb3Iobi5mVGV4dCwgbiwgdXNldCk7CisgICAgfQorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklTZXRCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJU2V0QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllZTA1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJU2V0QnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsNTcyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LAorICogSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWVCdWlsZGVyOworCisvLworLy8gIFJCQklTZXRCdWlsZGVyICAgSGFuZGxlcyBwcm9jZXNzaW5nIG9mIFVuaWNvZGUgU2V0cyBmcm9tIFJCQkkgcnVsZXMKKy8vICAgICAgICAgICAgICAgICAgIChwYXJ0IG9mIHRoZSBydWxlIGJ1aWxkaW5nIHByb2Nlc3MuKQorLy8KKy8vICAgICAgU3RhcnRpbmcgd2l0aCB0aGUgcnVsZXMgcGFyc2UgdHJlZSBmcm9tIHRoZSBzY2FubmVyLAorLy8KKy8vICAgICAgICAgICAgICAgICAgIC0gIEVudW1lcmF0ZSB0aGUgc2V0IG9mIFVuaWNvZGVTZXRzIHRoYXQgYXJlIHJlZmVyZW5jZWQKKy8vICAgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBSQkJJIHJ1bGVzLgorLy8gICAgICAgICAgICAgICAgICAgLSAgY29tcHV0ZSBhIHNldCBvZiBub24tb3ZlcmxhcHBpbmcgY2hhcmFjdGVyIHJhbmdlcworLy8gICAgICAgICAgICAgICAgICAgICAgd2l0aCBhbGwgY2hhcmFjdGVycyB3aXRoaW4gYSByYW5nZSBiZWxvbmdpbmcgdG8gdGhlIHNhbWUKKy8vICAgICAgICAgICAgICAgICAgICAgIHNldCBvZiBpbnB1dCB1bmlvY2RlIHNldHMuCisvLyAgICAgICAgICAgICAgICAgICAtICBEZXJpdmUgYSBzZXQgb2Ygbm9uLW92ZXJsYXBwaW5nIFVuaWNvZGVTZXQgKGxpa2UgdGhpbmdzKQorLy8gICAgICAgICAgICAgICAgICAgICAgdGhhdCB3aWxsIGNvcnJlc3BvbmQgdG8gY29sdW1ucyBpbiB0aGUgc3RhdGUgdGFibGUgZm9yCisvLyAgICAgICAgICAgICAgICAgICAgICB0aGUgUkJCSSBleGVjdXRpb24gZW5naW5lLiAgQWxsIGNoYXJhY3RlcnMgd2l0aGluIG9uZQorLy8gICAgICAgICAgICAgICAgICAgICAgb2YgdGhlc2Ugc2V0cyBiZWxvbmcgdG8gdGhlIHNhbWUgc2V0IG9mIHRoZSBvcmlnaW5hbAorLy8gICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldHMgZnJvbSB0aGUgdXNlcidzIHJ1bGVzLgorLy8gICAgICAgICAgICAgICAgICAgLSAgY29uc3RydWN0IHRoZSB0cmllIHRhYmxlIHRoYXQgbWFwcyBpbnB1dCBjaGFyYWN0ZXJzCisvLyAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgaW5kZXggb2YgdGhlIG1hdGNoaW5nIG5vbi1vdmVybGFwcGluZyBzZXQgb2Ygc2V0IGZyb20KKy8vICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBzdGVwLgorLy8KK2NsYXNzIFJCQklTZXRCdWlsZGVyIHsKKyAgICBzdGF0aWMgY2xhc3MgUmFuZ2VEZXNjcmlwdG9yICB7CisgICAgICAgICAgIGludCAgICAgICAgICAgICAgICBmU3RhcnRDaGFyOyAgICAgIC8vIFN0YXJ0IG9mIHJhbmdlLCB1bmljb2RlIDMyIGJpdCB2YWx1ZS4KKyAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgIGZFbmRDaGFyOyAgICAgICAgLy8gRW5kIG9mIHJhbmdlLCB1bmljb2RlIDMyIGJpdCB2YWx1ZS4KKyAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgIGZOdW07ICAgICAgICAgICAgLy8gcnVudGltZS1tYXBwZWQgaW5wdXQgdmFsdWUgZm9yIHRoaXMgcmFuZ2UuCisgICAgICAgICAgIExpc3QgICAgICAgICAgICAgICBmSW5jbHVkZXNTZXRzOyAgIC8vIHZlY3RvciBvZiB0aGUgdGhlIG9yaWdpbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIFVuaWNvZGUgc2V0cyB0aGF0IGluY2x1ZGUgdGhpcyByYW5nZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIChDb250YWlucyBwdHJzIHRvIHVzZXQgbm9kZXMpCisgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IgICBmTmV4dDsgICAgICAgICAgIC8vIE5leHQgUmFuZ2VEZXNjcmlwdG9yIGluIHRoZSBsaW5rZWQgbGlzdC4KKworICAgICAgICAgICAgUmFuZ2VEZXNjcmlwdG9yKCkgeworICAgICAgICAgICAgICAgIGZJbmNsdWRlc1NldHMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFJhbmdlRGVzY3JpcHRvcihSYW5nZURlc2NyaXB0b3Igb3RoZXIpIHsKKyAgICAgICAgICAgICAgICBmU3RhcnRDaGFyID0gb3RoZXIuZlN0YXJ0Q2hhcjsKKyAgICAgICAgICAgICAgICBmRW5kQ2hhciAgID0gb3RoZXIuZkVuZENoYXI7CisgICAgICAgICAgICAgICAgZk51bSAgICAgICA9IG90aGVyLmZOdW07CisgICAgICAgICAgICAgICAgZkluY2x1ZGVzU2V0cyA9IG5ldyBBcnJheUxpc3Qob3RoZXIuZkluY2x1ZGVzU2V0cyk7CisgICAgICAgICAgICB9CisgCisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICAgICAgICBSYW5nZURlc3JpcHRvcjo6c3BsaXQoKQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgdm9pZCBzcGxpdChpbnQgd2hlcmUpIHsKKyAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQod2hlcmU+ZlN0YXJ0Q2hhciAmJiB3aGVyZTw9ZkVuZENoYXIpOworICAgICAgICAgICAgICAgIFJhbmdlRGVzY3JpcHRvciBuciA9IG5ldyBSYW5nZURlc2NyaXB0b3IodGhpcyk7CisgCisgICAgICAgICAgICAgICAgLy8gIFJhbmdlRGVzY3JpcHRvciBjb3B5IGNvbnN0cnVjdG9yIGNvcGllcyBhbGwgZmllbGRzLgorICAgICAgICAgICAgICAgIC8vICBPbmx5IG5lZWQgdG8gdXBkYXRlIHRob3NlIHRoYXQgYXJlIGRpZmZlcmVudCBhZnRlciB0aGUgc3BsaXQuCisgICAgICAgICAgICAgICAgbnIuZlN0YXJ0Q2hhciA9IHdoZXJlOworICAgICAgICAgICAgICAgIHRoaXMuZkVuZENoYXIgPSB3aGVyZS0xOworICAgICAgICAgICAgICAgIG5yLmZOZXh0ICAgICAgPSB0aGlzLmZOZXh0OworICAgICAgICAgICAgICAgIHRoaXMuZk5leHQgICAgPSBucjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiAgZkluY2x1ZGVzU2V0cyBpcyBub3QgdXBkYXRlZC4gIENoZWNrIGl0IG91dC4KKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIFByb2JhYmx5IGJlY2F1c2UgdGhleSBoYXZlbid0IGJlZW4gcG9wdWxhdGVkIHlldCwgCisgICAgICAgICAgICAgICAgLy8gICAgICAgICBidXQgc3RpbGwgc2xvcHB5LgorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgICAgICAgIFJhbmdlRGVzY3JpcHRvcjo6c2V0RGljdGlvbmFyeUZsYWcKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICAgICAgICBDaGFyYWN0ZXIgQ2F0ZWdvcnkgTnVtYmVycyB0aGF0IGluY2x1ZGUgY2hhcmFjdGVycyBmcm9tCisgICAgICAgICAgICAvLyAgICAgICAgICB0aGUgb3JpZ2luYWwgVW5pY29kZSBTZXQgbmFtZWQgImRpY3Rpb25hcnkiIGhhdmUgYml0IDE0CisgICAgICAgICAgICAvLyAgICAgICAgICBzZXQgdG8gMS4gIFRoZSBSQkJJIHJ1bnRpbWUgZW5naW5lIHVzZXMgdGhpcyB0byB0cmlnZ2VyCisgICAgICAgICAgICAvLyAgICAgICAgICB1c2Ugb2YgdGhlIHdvcmQgZGljdGlvbmFyeS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGxvb2tzIHRocm91Z2ggdGhlIFVuaWNvZGUgU2V0cyB0aGF0IGl0CisgICAgICAgICAgICAvLyAgICAgICAgICAodGhlIHJhbmdlKSBpbmNsdWRlcywgYW5kIHNldHMgdGhlIGJpdCBpbiBmTnVtIHdoZW4KKyAgICAgICAgICAgIC8vICAgICAgICAgICJkaWN0aW9uYXJ5IiBpcyBhbW9uZyB0aGVtLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgICAgICAgIFRPRE86ICBhIGZhc3RlciB3YXkgd291bGQgYmUgdG8gZmluZCB0aGUgc2V0IG5vZGUgZm9yCisgICAgICAgICAgICAvLyAgICAgICAgICAiZGljdGlvbmFyeSIganVzdCBvbmNlLCByYXRoZXIgdGhhbiBsb29raW5nIGl0CisgICAgICAgICAgICAvLyAgICAgICAgICB1cCBieSBuYW1lIGV2ZXJ5IHRpbWUuCisgICAgICAgICAgICAvLyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgdm9pZCBzZXREaWN0aW9uYXJ5RmxhZygpIHsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTx0aGlzLmZJbmNsdWRlc1NldHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHVzZXROb2RlICAgID0gKFJCQklOb2RlKWZJbmNsdWRlc1NldHMuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgICAgICAgICAgc2V0TmFtZSA9ICIiOworICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICAgc2V0UmVmID0gdXNldE5vZGUuZlBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNldFJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSB2YXJSZWYgPSBzZXRSZWYuZlBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJSZWYgIT0gbnVsbCAgJiYgIHZhclJlZi5mVHlwZSA9PSBSQkJJTm9kZS52YXJSZWYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXROYW1lID0gdmFyUmVmLmZUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXROYW1lLmVxdWFscygiZGljdGlvbmFyeSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZOdW0gfD0gMHg0MDAwOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAKKyAgICBSQkJJUnVsZUJ1aWxkZXIgICAgICAgZlJCOyAgICAgICAgICAgICAvLyBUaGUgUkJCSSBSdWxlIENvbXBpbGVyIHRoYXQgb3ducyB1cy4KKyAgICBSYW5nZURlc2NyaXB0b3IgICAgICAgZlJhbmdlTGlzdDsgICAgICAvLyBIZWFkIG9mIHRoZSBsaW5rZWQgbGlzdCBvZiBSYW5nZURlc2NyaXB0b3JzCisKKyAgICBJbnRUcmllQnVpbGRlciAgICAgICAgZlRyaWU7ICAgICAgICAgICAvLyBUaGUgbWFwcGluZyBUUklFIHRoYXQgaXMgdGhlIGVuZCByZXN1bHQgb2YgcHJvY2Vzc2luZworICAgIGludCAgICAgICAgICAgICAgICAgIGZUcmllU2l6ZTsgICAgICAgIC8vICB0aGUgVW5pY29kZSBTZXRzLgorCisgICAgLy8gR3JvdXBzIGNvcnJlc3BvbmQgdG8gY2hhcmFjdGVyIGNhdGVnb3JpZXMgLQorICAgIC8vICAgICAgIGdyb3VwcyBvZiByYW5nZXMgdGhhdCBhcmUgaW4gdGhlIHNhbWUgb3JpZ2luYWwgVW5pY29kZVNldHMuCisgICAgLy8gICAgICAgZkdyb3VwQ291bnQgaXMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHVzZWQgZ3JvdXAuCisgICAgLy8gICAgICAgZkdyb3VwQ291bnQrMSBpcyBhbHNvIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgUkJCSSBzdGF0ZSB0YWJsZSBiZWluZyBjb21waWxlZC4KKyAgICAvLyAgICAgICBTdGF0ZSB0YWJsZSBjb2x1bW4gMCBpcyBub3QgdXNlZC4gIENvbHVtbiAxIGlzIGZvciBlbmQtb2YtaW5wdXQuCisgICAgLy8gICAgICAgY29sdW1uIDIgaXMgZm9yIGdyb3VwIDAuICBGdW5ueSBjb3VudGluZy4KKyAgICBpbnQgICAgICAgICAgICAgICAgZkdyb3VwQ291bnQ7CisKKyAgICBib29sZWFuICAgICAgICAgICAgIGZTYXdCT0Y7CisgICAgCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICAgICAgIFJCQklTZXRCdWlsZGVyIENvbnN0cnVjdG9yCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklTZXRCdWlsZGVyKFJCQklSdWxlQnVpbGRlciByYikKKyAgICB7CisgICAgICAgIGZSQiAgICAgICAgICAgICA9IHJiOworICAgIH0KKworCisgICAgCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgICBidWlsZCAgICAgICAgICBCdWlsZCB0aGUgbGlzdCBvZiBub24tb3ZlcmxhcHBpbmcgY2hhcmFjdGVyIHJhbmdlcworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgVW5pY29kZSBTZXRzLgorICAgICAgICAvLworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB2b2lkIGJ1aWxkKCkgeworICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHVzZXROb2RlOworICAgICAgICAgICAgUmFuZ2VEZXNjcmlwdG9yIHJsUmFuZ2U7CisKKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInVzZXRzIik+PTApIHtwcmludFNldHMoKTt9CisKKyAgICAgICAgICAgIC8vICBJbml0aWFsaXplIHRoZSBwcm9jZXNzIGJ5IGNyZWF0aW5nIGEgc2luZ2xlIHJhbmdlIGVuY29tcGFzc2luZyBhbGwgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gIHRoYXQgaXMgaW4gbm8gc2V0cy4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBmUmFuZ2VMaXN0ICAgICAgICAgICAgICAgPSBuZXcgUmFuZ2VEZXNjcmlwdG9yKCk7IAorICAgICAgICAgICAgZlJhbmdlTGlzdC5mU3RhcnRDaGFyICAgID0gMDsKKyAgICAgICAgICAgIGZSYW5nZUxpc3QuZkVuZENoYXIgICAgICA9IDB4MTBmZmZmOworCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gIEZpbmQgdGhlIHNldCBvZiBub24tb3ZlcmxhcHBpbmcgcmFuZ2VzIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBJdGVyYXRvciAgbmkgPSBmUkIuZlVTZXROb2Rlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKG5pLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHVzZXROb2RlID0gKFJCQklOb2RlKW5pLm5leHQoKTsKKyAKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0ICAgICAgaW5wdXRTZXQgICAgICAgICAgICAgPSB1c2V0Tm9kZS5mSW5wdXRTZXQ7CisgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgaW5wdXRTZXRSYW5nZUNvdW50ICAgPSBpbnB1dFNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgaW5wdXRTZXRSYW5nZUluZGV4ICAgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmxSYW5nZSAgICAgICAgICAgICAgPSBmUmFuZ2VMaXN0OworCisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXRTZXRSYW5nZUluZGV4ID49IGlucHV0U2V0UmFuZ2VDb3VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgaW5wdXRTZXRSYW5nZUJlZ2luICA9IGlucHV0U2V0LmdldFJhbmdlU3RhcnQoaW5wdXRTZXRSYW5nZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgaW5wdXRTZXRSYW5nZUVuZCAgICA9IGlucHV0U2V0LmdldFJhbmdlRW5kKGlucHV0U2V0UmFuZ2VJbmRleCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBvdmVyIHJhbmdlcyBmcm9tIHRoZSByYW5nZSBsaXN0IHRoYXQgYXJlIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAgICAgLy8gICBiZWxvdyB0aGUgY3VycmVudCByYW5nZSBmcm9tIHRoZSBpbnB1dCB1bmljb2RlIHNldC4KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHJsUmFuZ2UuZkVuZENoYXIgPCBpbnB1dFNldFJhbmdlQmVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJsUmFuZ2UgPSBybFJhbmdlLmZOZXh0OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBmcm9tIHRoZSByYW5nZSBsaXN0IGlzIGJlZm9yZSB3aXRoCisgICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBmcm9tIHRoZSB1bmljb2RlIHNldCwgc3BsaXQgdGhlIHJhbmdlIGxpc3QgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgLy8gICBpbiB0d28sIHdpdGggb25lIHBhcnQgYmVpbmcgYmVmb3JlICh3aG9sbHkgb3V0c2lkZSBvZikgdGhlIHVuaWNvZGUgc2V0CisgICAgICAgICAgICAgICAgICAgIC8vICAgYW5kIHRoZSBvdGhlciBjb250YWluaW5nIHRoZSByZXN0LgorICAgICAgICAgICAgICAgICAgICAvLyAgIFRoZW4gY29udGludWUgdGhlIGxvb3A7IHRoZSBwb3N0LXNwbGl0IGN1cnJlbnQgcmFuZ2Ugd2lsbCB0aGVuIGJlIHNraXBwZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgIG92ZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJsUmFuZ2UuZlN0YXJ0Q2hhciA8IGlucHV0U2V0UmFuZ2VCZWdpbikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmxSYW5nZS5zcGxpdChpbnB1dFNldFJhbmdlQmVnaW4pOworICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gU2FtZSB0aGluZyBhdCB0aGUgZW5kIG9mIHRoZSByYW5nZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgZnJvbSB0aGUgcmFuZ2UgbGlzdCBkb2Vzbid0IGNvaW5jaWRlIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgZW5kIG9mIHRoZSByYW5nZSBmcm9tIHRoZSB1bmljb2RlIHNldCwgc3BsaXQgdGhlIHJhbmdlIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gICByYW5nZSBpbiB0d28uICBUaGUgZmlyc3QgcGFydCBvZiB0aGUgc3BsaXQgcmFuZ2Ugd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAvLyAgIHdob2xseSBpbnNpZGUgdGhlIFVuaWNvZGUgc2V0LgorICAgICAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mRW5kQ2hhciA+IGlucHV0U2V0UmFuZ2VFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJsUmFuZ2Uuc3BsaXQoaW5wdXRTZXRSYW5nZUVuZCsxKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY3VycmVudCBybFJhbmdlIGlzIG5vdyBlbnRpcmVseSB3aXRoaW4gdGhlIFVuaWNvZGVTZXQgcmFuZ2UuCisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIHVuaWNvZGUgc2V0IHRvIHRoZSBsaXN0IG9mIHNldHMgZm9yIHRoaXMgcmxSYW5nZQorICAgICAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mSW5jbHVkZXNTZXRzLmluZGV4T2YodXNldE5vZGUpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBybFJhbmdlLmZJbmNsdWRlc1NldHMuYWRkKHVzZXROb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciByYW5nZXMgdGhhdCB3ZSBhcmUgZmluaXNoZWQgd2l0aC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0U2V0UmFuZ2VFbmQgPT0gcmxSYW5nZS5mRW5kQ2hhcikgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRTZXRSYW5nZUluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmxSYW5nZSA9IHJsUmFuZ2UuZk5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZlJCLmZEZWJ1Z0VudiE9bnVsbCAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInJhbmdlIik+PTApIHsgcHJpbnRSYW5nZXMoKTt9CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgR3JvdXAgdGhlIGFib3ZlIHJhbmdlcywgd2l0aCBlYWNoIGdyb3VwIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUKKyAgICAgICAgICAgIC8vICAgIHJhbmdlcyB0aGF0IGFyZSBpbiBleGFjdGx5IHRoZSBzYW1lIHNldCBvZiBvcmlnaW5hbCBVbmljb2RlU2V0cy4KKyAgICAgICAgICAgIC8vICAgIFRoZSBncm91cHMgYXJlIG51bWJlcmVkLCBhbmQgdGhlc2UgZ3JvdXAgbnVtYmVycyBhcmUgdGhlIHNldCBvZgorICAgICAgICAgICAgLy8gICAgaW5wdXQgc3ltYm9scyByZWNvZ25pemVkIGJ5IHRoZSBydW4tdGltZSBzdGF0ZSBtYWNoaW5lLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIE51bWJlcmluZzogIyAwICAoc3RhdGUgdGFibGUgY29sdW1uIDApIGlzIHVudXNlZC4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIyAxICBpcyByZXNlcnZlZCAtIHRhYmxlIGNvbHVtbiAxIGlzIGZvciBlbmQtb2YtaW5wdXQKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIyAyICBpcyByZXNlcnZlZCAtIHRhYmxlIGNvbHVtbiAyIGlzIGZvciBiZWdpbm5pbmctaW4taW5wdXQKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIyAzICBpcyB0aGUgZmlyc3QgcmFuZ2UgbGlzdC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IgcmxTZWFyY2hSYW5nZTsKKyAgICAgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgIGZvciAocmxTZWFyY2hSYW5nZT1mUmFuZ2VMaXN0OyBybFNlYXJjaFJhbmdlICE9IHJsUmFuZ2U7IHJsU2VhcmNoUmFuZ2U9cmxTZWFyY2hSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mSW5jbHVkZXNTZXRzLmVxdWFscyhybFNlYXJjaFJhbmdlLmZJbmNsdWRlc1NldHMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBybFJhbmdlLmZOdW0gPSBybFNlYXJjaFJhbmdlLmZOdW07CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmxSYW5nZS5mTnVtID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZkdyb3VwQ291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIHJsUmFuZ2UuZk51bSA9IGZHcm91cENvdW50KzI7IAorICAgICAgICAgICAgICAgICAgICBybFJhbmdlLnNldERpY3Rpb25hcnlGbGFnKCk7CisgICAgICAgICAgICAgICAgICAgIGFkZFZhbFRvU2V0cyhybFJhbmdlLmZJbmNsdWRlc1NldHMsIGZHcm91cENvdW50KzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSGFuZGxlIGlucHV0IHNldHMgdGhhdCBjb250YWluIHRoZSBzcGVjaWFsIHN0cmluZyB7ZW9mfS4KKyAgICAgICAgICAgIC8vICAgQ29sdW1uIDEgb2YgdGhlIHN0YXRlIHRhYmxlIGlzIHJlc2VydmVkIGZvciBFT0Ygb24gaW5wdXQuCisgICAgICAgICAgICAvLyAgIENvbHVtbiAyIGlzIHJlc2VydmVkIGZvciBiZWZvcmUtdGhlLXN0YXJ0LWlucHV0LgorICAgICAgICAgICAgLy8gICAgICAgICAgICAoVGhpcyBjb2x1bW4gY2FuIGJlIG9wdGltaXplZCBhd2F5IGxhdGVyIGlmIHRoZXJlIGFyZSBubyBydWxlCisgICAgICAgICAgICAvLyAgICAgICAgICAgICByZWZlcmVuY2VzIHRvIHtib2Z9LikKKyAgICAgICAgICAgIC8vICAgQWRkIHRoaXMgY29sdW1uIHZhbHVlICgxIG9yIDIpIHRvIHRoZSBlcXVpdmFsZW50IGV4cHJlc3Npb24KKyAgICAgICAgICAgIC8vICAgICBzdWJ0cmVlIGZvciBlYWNoIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyB0aGUgc3RyaW5nIHtlb2Z9CisgICAgICAgICAgICAvLyAgIEJlY2F1c2Uge2JvZn0gYW5kIHtlb2Z9IGFyZSBub3QgYSBjaGFyYWN0ZXJzIGluIHRoZSBub3JtYWwgc2Vuc2UsCisgICAgICAgICAgICAvLyAgIHRoZXkgZG9lc24ndCBhZmZlY3QgdGhlIGNvbXB1dGF0aW9uIG9mIHJhbmdlcyBvciBUUklFLgorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgZW9mU3RyaW5nID0gImVvZiI7CisgICAgICAgICAgICBTdHJpbmcgYm9mU3RyaW5nID0gImJvZiI7CisKKyAgICAgICAgICAgIG5pID0gZlJCLmZVU2V0Tm9kZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChuaS5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICB1c2V0Tm9kZSA9IChSQkJJTm9kZSApbmkubmV4dCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgICAgICBpbnB1dFNldCA9IHVzZXROb2RlLmZJbnB1dFNldDsKKyAgICAgICAgICAgICAgICBpZiAoaW5wdXRTZXQuY29udGFpbnMoZW9mU3RyaW5nKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRWYWxUb1NldCh1c2V0Tm9kZSwgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbnB1dFNldC5jb250YWlucyhib2ZTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFZhbFRvU2V0KHVzZXROb2RlLCAyKTsKKyAgICAgICAgICAgICAgICAgICAgZlNhd0JPRiA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoInJncm91cCIpPj0wKSB7cHJpbnRSYW5nZUdyb3VwcygpO30KKyAgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICAmJiBmUkIuZkRlYnVnRW52LmluZGV4T2YoImVzZXRzIik+PTApIHtwcmludFNldHMoKTt9CisKKworICAgICAgICAgICAgLy9JbnRUcmllQnVpbGRlcihpbnQgYWxpYXNkYXRhW10sIGludCBtYXhkYXRhbGVuZ3RoLCAKKyAgICAgICAgICAgIC8vICAgICAgICBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgbGVhZHVuaXR2YWx1ZSwgCisgICAgICAgICAgICAvLyAgICAgICAgYm9vbGVhbiBsYXRpbjFsaW5lYXIpCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZUcmllID0gbmV3IEludFRyaWVCdWlsZGVyKG51bGwsICAgLy8gICBEYXRhIGFycmF5ICAodXRyaWUgd2lsbCBhbGxvY2F0ZSBvbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMDAsICAvLyAgIE1heCBEYXRhIExlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgLy8gICBJbml0aWFsIHZhbHVlIGZvciBhbGwgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAgIC8vICAgTGVhZCBTdXJyb2dhdGUgdW5pdCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOyAgIC8vICAgS2VlcCBMYXRpbiAxIGluIHNlcGFyYXRlbHkuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgIGZUcmllLnNldFJhbmdlKHJsUmFuZ2UuZlN0YXJ0Q2hhciwgcmxSYW5nZS5mRW5kQ2hhcisxLCBybFJhbmdlLmZOdW0sIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBSQkJJRGF0YU1hbmlwdWxhdGUgIEEgbGl0dGxlIGludGVybmFsIGNsYXNzIG5lZWRlZCBvbmx5IHRvIHdyYXAgb2YgdGhlIAorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgZ2V0Rm9sZGVkVmFsdWUoKSBmdW5jdGlvbiBuZWVkZWQgZm9yIFRyaWUgdGFibGUgY3JlYXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBSQkJJRGF0YU1hbmlwdWxhdGUgaW1wbGVtZW50cyBJbnRUcmllQnVpbGRlci5EYXRhTWFuaXB1bGF0ZSB7CisgICAgICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRlZFZhbHVlKGludCBzdGFydCwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgICAgIGludCAgdmFsdWU7CisgICAgICAgICAgICAgICAgaW50ICBsaW1pdDsKKyAgICAgICAgICAgICAgICBib29sZWFuIFtdIGluQmxvY2taZXJvID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbGltaXQgPSBzdGFydCArIDB4NDAwOworICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZlRyaWUuZ2V0VmFsdWUoc3RhcnQsIGluQmxvY2taZXJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluQmxvY2taZXJvWzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBJbnRUcmllQnVpbGRlci5EQVRBX0JMT0NLX0xFTkdUSDsgIAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZmZzZXQgfCAweDA4MDAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUkJCSURhdGFNYW5pcHVsYXRlIGRtID0gbmV3IFJCQklEYXRhTWFuaXB1bGF0ZSgpOworICAgICAgICAKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgICBnZXRUcmllU2l6ZSgpICAgIFJldHVybiB0aGUgc2l6ZSB0aGF0IHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VyaWFsaXplIHRoZSBUcmllLgorICAgICAgICAvLworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIGludCBnZXRUcmllU2l6ZSgpICB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIFRoZSB0cmllIHNlcmlhbGl6ZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBkYXRhIHdyaXR0ZW4uCisgICAgICAgICAgICAgICAgLy8gICAgbnVsbCBvdXRwdXQgc3RyZWFtIHNheXMgZ2l2ZSBzaXplIG9ubHksIGRvbid0IGFjdHVhbGx5IHdyaXRlIGFueXRoaW5nLgorICAgICAgICAgICAgICAgIHNpemUgPSBmVHJpZS5zZXJpYWxpemUobnVsbCwgdHJ1ZSwgZG0gKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQgKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICB9CisKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgIHNlcmlhbGl6ZVRyaWUoKSAgIFdyaXRlIHRoZSBzZXJpYWxpemVkIHRyaWUgdG8gYW4gb3V0cHV0IHN0cmVhbQorICAgICAgICAvLworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHZvaWQgc2VyaWFsaXplVHJpZShPdXRwdXRTdHJlYW0gb3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICBmVHJpZS5zZXJpYWxpemUob3MsIHRydWUsIGRtICk7CisgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgYWRkVmFsVG9TZXRzICAgICBBZGQgYSBydW50aW1lLW1hcHBlZCBpbnB1dCB2YWx1ZSB0byBlYWNoIHVzZXQgZnJvbSBhCisgICAgICAgIC8vICAgICAgbGlzdCBvZiB1c2V0IG5vZGVzLiAodmFsIGNvcnJlc3BvbmRzIHRvIGEgc3RhdGUgdGFibGUgY29sdW1uLikKKyAgICAgICAgLy8gICAgICBGb3IgZWFjaCBvZiB0aGUgb3JpZ2luYWwgVW5pY29kZSBzZXRzIC0gd2hpY2ggY29ycmVzcG9uZAorICAgICAgICAvLyAgICAgIGRpcmVjdGx5IHRvIHVzZXQgbm9kZXMgLSBhIGxvZ2ljYWxseSBlcXVpdmFsZW50IGV4cHJlc3Npb24KKyAgICAgICAgLy8gICAgICBpcyBjb25zdHJ1Y3RlZCBpbiB0ZXJtcyBvZiB0aGUgcmVtYXBwZWQgcnVudGltZSBpbnB1dAorICAgICAgICAvLyAgICAgIHN5bWJvbCBzZXQuICBUaGlzIGZ1bmN0aW9uIGFkZHMgb25lIHJ1bnRpbWUgaW5wdXQgc3ltYm9sIHRvCisgICAgICAgIC8vICAgICAgYSBsaXN0IG9mIHNldHMuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgVGhlICJsb2dpY2FsbHkgZXF1aXZhbGVudCBleHByZXNzaW9uIiBpcyB0aGUgdHJlZSBmb3IgYW4KKyAgICAgICAgLy8gICAgICBvci1pbmcgdG9nZXRoZXIgb2YgYWxsIG9mIHRoZSBzeW1ib2xzIHRoYXQgZ28gaW50byB0aGUgc2V0LgorICAgICAgICAvLworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB2b2lkICBhZGRWYWxUb1NldHMoTGlzdCBzZXRzLCBpbnQgdmFsKSB7CisgICAgICAgICAgICBpbnQgICAgICAgaXg7CisKKyAgICAgICAgICAgIGZvciAoaXg9MDsgaXg8c2V0cy5zaXplKCk7IGl4KyspIHsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSB1c2V0Tm9kZSA9IChSQkJJTm9kZSApc2V0cy5nZXQoaXgpOworICAgICAgICAgICAgICAgIGFkZFZhbFRvU2V0KHVzZXROb2RlLCB2YWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCAgYWRkVmFsVG9TZXQoUkJCSU5vZGUgdXNldE5vZGUsIGludCB2YWwpIHsKKyAgICAgICAgICAgIFJCQklOb2RlIGxlYWZOb2RlID0gbmV3IFJCQklOb2RlKFJCQklOb2RlLmxlYWZDaGFyKTsKKyAgICAgICAgICAgIGxlYWZOb2RlLmZWYWwgPSB2YWw7CisgICAgICAgICAgICBpZiAodXNldE5vZGUuZkxlZnRDaGlsZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdXNldE5vZGUuZkxlZnRDaGlsZCA9IGxlYWZOb2RlOworICAgICAgICAgICAgICAgIGxlYWZOb2RlLmZQYXJlbnQgICAgPSB1c2V0Tm9kZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGFscmVhZHkgaW5wdXQgc3ltYm9scyBwcmVzZW50IGZvciB0aGlzIHNldC4KKyAgICAgICAgICAgICAgICAvLyBTZXQgdXAgYW4gT1Igbm9kZSwgd2l0aCB0aGUgcHJldmlvdXMgc3R1ZmYgYXMgdGhlIGxlZnQgY2hpbGQKKyAgICAgICAgICAgICAgICAvLyAgIGFuZCB0aGUgbmV3IHZhbHVlIGFzIHRoZSByaWdodCBjaGlsZC4KKyAgICAgICAgICAgICAgICBSQkJJTm9kZSBvck5vZGUgPSBuZXcgUkJCSU5vZGUoUkJCSU5vZGUub3BPcik7CisgICAgICAgICAgICAgICAgb3JOb2RlLmZMZWZ0Q2hpbGQgID0gdXNldE5vZGUuZkxlZnRDaGlsZDsKKyAgICAgICAgICAgICAgICBvck5vZGUuZlJpZ2h0Q2hpbGQgPSBsZWFmTm9kZTsKKyAgICAgICAgICAgICAgICBvck5vZGUuZkxlZnRDaGlsZC5mUGFyZW50ICA9IG9yTm9kZTsKKyAgICAgICAgICAgICAgICBvck5vZGUuZlJpZ2h0Q2hpbGQuZlBhcmVudCA9IG9yTm9kZTsKKyAgICAgICAgICAgICAgICB1c2V0Tm9kZS5mTGVmdENoaWxkID0gb3JOb2RlOworICAgICAgICAgICAgICAgIG9yTm9kZS5mUGFyZW50ID0gdXNldE5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgICBnZXROdW1DaGFyQ2F0ZWdvcmllcworICAgICAgICAvLworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBpbnQgIGdldE51bUNoYXJDYXRlZ29yaWVzKCkgIHsKKyAgICAgICAgICAgIHJldHVybiBmR3JvdXBDb3VudCArIDM7CisgICAgICAgIH0KKworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgICBzYXdCT0YKKyAgICAgICAgLy8KKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgYm9vbGVhbiAgc2F3Qk9GKCkgIHsKKyAgICAgICAgICAgIHJldHVybiBmU2F3Qk9GOworICAgICAgICB9CisKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgICAgZ2V0Rmlyc3RDaGFyICAgICAgR2l2ZW4gYSBydW50aW1lIFJCQkkgY2hhcmFjdGVyIGNhdGVnb3J5LCBmaW5kCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZmlyc3QgVUNoYXIzMiB0aGF0IGlzIGluIHRoZSBzZXQgb2YgY2hhcnMgCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgY2F0ZWdvcnkuCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIGludCAgZ2V0Rmlyc3RDaGFyKGludCBjYXRlZ29yeSkgIHsKKyAgICAgICAgICAgIFJhbmdlRGVzY3JpcHRvciAgIHJsUmFuZ2U7CisgICAgICAgICAgICBpbnQgICAgICAgICAgICByZXRWYWwgPSAtMTsKKyAgICAgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgIGlmIChybFJhbmdlLmZOdW0gPT0gY2F0ZWdvcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0VmFsID0gcmxSYW5nZS5mU3RhcnRDaGFyOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV0VmFsOworICAgICAgICB9CisKKworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgICBwcmludFJhbmdlcyAgICAgICAgQSBkZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcCBvdXQgYWxsIG9mIHRoZSByYW5nZSBkZWZpbml0aW9ucy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgIHZvaWQgcHJpbnRSYW5nZXMoKSB7CisgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IgICAgICAgcmxSYW5nZTsKKyAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgaTsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cbiBOb25vdmVybGFwcGluZyBSYW5nZXMgLi4uXG4iKTsKKyAgICAgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiICsgcmxSYW5nZS5mTnVtICsgIiAgICIgKyAoaW50KXJsUmFuZ2UuZlN0YXJ0Q2hhciArICItIiArIChpbnQpcmxSYW5nZS5mRW5kQ2hhcik7CisKKyAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTxybFJhbmdlLmZJbmNsdWRlc1NldHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgdXNldE5vZGUgICAgPSAoUkJCSU5vZGUgKXJsUmFuZ2UuZkluY2x1ZGVzU2V0cy5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyAgICAgICAgIHNldE5hbWUgPSAiYW5vbiI7CisgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlICAgICAgIHNldFJlZiA9IHVzZXROb2RlLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXRSZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgdmFyUmVmID0gc2V0UmVmLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFyUmVmICE9IG51bGwgICYmICB2YXJSZWYuZlR5cGUgPT0gUkJCSU5vZGUudmFyUmVmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TmFtZSA9IHZhclJlZi5mVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHNldE5hbWUpOyBTeXN0ZW0ub3V0LnByaW50KCIgICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgICAgcHJpbnRSYW5nZUdyb3VwcyAgICAgQSBkZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdW1wIG91dCBhbGwgb2YgdGhlIHJhbmdlIGdyb3Vwcy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgdm9pZCBwcmludFJhbmdlR3JvdXBzKCkgeworICAgICAgICAgICAgUmFuZ2VEZXNjcmlwdG9yICAgICAgIHJsUmFuZ2U7CisgICAgICAgICAgICBSYW5nZURlc2NyaXB0b3IgICAgICAgdFJhbmdlOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBpOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBsYXN0UHJpbnRlZEdyb3VwTnVtID0gMDsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5SYW5nZXMgZ3JvdXBlZCBieSBVbmljb2RlIFNldCBNZW1iZXJzaGlwLi4uXG4iKTsKKyAgICAgICAgICAgIGZvciAocmxSYW5nZSA9IGZSYW5nZUxpc3Q7IHJsUmFuZ2UhPW51bGw7IHJsUmFuZ2U9cmxSYW5nZS5mTmV4dCkgeworICAgICAgICAgICAgICAgIGludCBncm91cE51bSA9IHJsUmFuZ2UuZk51bSAmIDB4YmZmZjsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOdW0gPiBsYXN0UHJpbnRlZEdyb3VwTnVtKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RQcmludGVkR3JvdXBOdW0gPSBncm91cE51bTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwTnVtPDEwKSB7U3lzdGVtLm91dC5wcmludCgiICIpO30KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChncm91cE51bSArICIgIik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKChybFJhbmdlLmZOdW0gJiAweDQwMDApICE9IDApIHsgU3lzdGVtLm91dC5wcmludCgiIDxESUNUPiAiKTt9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8cmxSYW5nZS5mSW5jbHVkZXNTZXRzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICB1c2V0Tm9kZSAgICA9IChSQkJJTm9kZSApcmxSYW5nZS5mSW5jbHVkZXNTZXRzLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyAgICAgICAgIHNldE5hbWUgPSAiYW5vbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICBzZXRSZWYgPSB1c2V0Tm9kZS5mUGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldFJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUgdmFyUmVmID0gc2V0UmVmLmZQYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhclJlZiAhPSBudWxsICAmJiAgdmFyUmVmLmZUeXBlID09IFJCQklOb2RlLnZhclJlZikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXROYW1lID0gdmFyUmVmLmZUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc2V0TmFtZSk7IFN5c3RlbS5vdXQucHJpbnQoIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKHRSYW5nZSA9IHJsUmFuZ2U7IHRSYW5nZSAhPSBudWxsOyB0UmFuZ2UgPSB0UmFuZ2UuZk5leHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0UmFuZ2UuZk51bSA9PSBybFJhbmdlLmZOdW0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSsrICUgNSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgICIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEhleCgoaW50KXRSYW5nZS5mU3RhcnRDaGFyLCAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SGV4KChpbnQpdFJhbmdlLmZFbmRDaGFyLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgICBwcmludFNldHMgICAgICAgICAgQSBkZWJ1Z2dpbmcgZnVuY3Rpb24uCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcCBvdXQgYWxsIG9mIHRoZSBzZXQgZGVmaW5pdGlvbnMuCisgICAgICAgIC8vCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICB2b2lkIHByaW50U2V0cygpIHsKKyAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICBpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cblVuaWNvZGUgU2V0cyBMaXN0XG4tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZlJCLmZVU2V0Tm9kZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICAgdXNldE5vZGU7CisgICAgICAgICAgICAgICAgUkJCSU5vZGUgICAgICAgIHNldFJlZjsKKyAgICAgICAgICAgICAgICBSQkJJTm9kZSAgICAgICAgdmFyUmVmOworICAgICAgICAgICAgICAgIFN0cmluZyAgICAgICAgICBzZXROYW1lOworCisgICAgICAgICAgICAgICAgdXNldE5vZGUgPSAoUkJCSU5vZGUgKWZSQi5mVVNldE5vZGVzLmdldChpKTsKKworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludCgiICIgKyBpICsgIiAgICIpOworICAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KDIsIGkpOworICAgICAgICAgICAgICAgIHNldE5hbWUgPSAiYW5vbnltb3VzIjsKKyAgICAgICAgICAgICAgICBzZXRSZWYgPSB1c2V0Tm9kZS5mUGFyZW50OworICAgICAgICAgICAgICAgIGlmIChzZXRSZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB2YXJSZWYgPSBzZXRSZWYuZlBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhclJlZiAhPSBudWxsICAmJiAgdmFyUmVmLmZUeXBlID09IFJCQklOb2RlLnZhclJlZikgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0TmFtZSA9IHZhclJlZi5mVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICIgKyBzZXROYW1lKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHVzZXROb2RlLmZUZXh0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgICAgICAgICAgICAgIGlmICh1c2V0Tm9kZS5mTGVmdENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdXNldE5vZGUuZkxlZnRDaGlsZC5wcmludFRyZWUodHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKyAgICAgICAgfQorIAorCisgICAgCisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJU3ltYm9sVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklTeW1ib2xUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0MTA0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJU3ltYm9sVGFibGUuamF2YQpAQCAtMCwwICsxLDIyMSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworCitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCitjbGFzcyBSQkJJU3ltYm9sVGFibGUgaW1wbGVtZW50cyBTeW1ib2xUYWJsZXsKKyAgICAKKyAgICBTdHJpbmcgICAgICAgICAgICAgICBmUnVsZXM7CisgICAgSGFzaE1hcCAgICAgICAgICAgICAgZkhhc2hUYWJsZTsKKyAgICBSQkJJUnVsZVNjYW5uZXIgICAgICBmUnVsZVNjYW5uZXI7CisKKyAgICAvLyBUaGVzZSBuZXh0IHR3byBmaWVsZHMgYXJlIHBhcnQgb2YgdGhlIG1lY2hhbmlzbSBmb3IgcGFzc2luZyByZWZlcmVuY2VzIHRvCisgICAgLy8gICBhbHJlYWR5LWNvbnN0cnVjdGVkIFVuaWNvZGVTZXRzIGJhY2sgdG8gdGhlIFVuaWNvZGVTZXQgY29uc3RydWN0b3IKKyAgICAvLyAgIHdoZW4gdGhlIHBhdHRlcm4gaW5jbHVkZXMgJHZhcmlhYmxlIHJlZmVyZW5jZXMuCisgICAgU3RyaW5nICAgICAgICAgICAgICAgZmZmZlN0cmluZzsKKyAgICBVbmljb2RlU2V0ICAgICAgICAgICBmQ2FjaGVkU2V0TG9va3VwOworICAgIAorICAgIAorICAgIAorICAgIHN0YXRpYyBjbGFzcyBSQkJJU3ltYm9sVGFibGVFbnRyeSAgeyAKKyAgICAgICAgU3RyaW5nICAgICAgICAgIGtleTsKKyAgICAgICAgUkJCSU5vZGUgICAgICAgIHZhbDsKKyAgICAgICAgIH07CisKKworICAgIAorIFJCQklTeW1ib2xUYWJsZShSQkJJUnVsZVNjYW5uZXIgcnMsIFN0cmluZyBydWxlcykgeworICAgICBmUnVsZXMgICAgICAgPSBydWxlczsKKyAgICAgZlJ1bGVTY2FubmVyID0gcnM7CisgICAgIGZIYXNoVGFibGUgICA9IG5ldyBIYXNoTWFwKCk7CisgICAgIGZmZmZTdHJpbmcgICA9ICJcdWZmZmYiOworfQorCisKKworCisvLworLy8gIFJCQklTeW1ib2xUYWJsZTo6bG9va3VwICAgICAgIFRoaXMgZnVuY3Rpb24gZnJvbSB0aGUgYWJzdHJhY3Qgc3ltYm9sIHRhYmxlIGludGVmYWNlCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3MgdXAgYSB2YXJpYWJsZSBuYW1lIGFuZCByZXR1cm5zIGEgVW5pY29kZVN0cmluZworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5pbmcgdGhlIHN1YnN0aXR1dGlvbiB0ZXh0LgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFyaWFibGUgbmFtZSBkb2VzIE5PVCBpbmNsdWRlIHRoZSBsZWFkaW5nICQuCisvLworcHVibGljIGNoYXJbXSAgbG9va3VwKFN0cmluZyBzKSAKK3sKKyAgICBSQkJJU3ltYm9sVGFibGVFbnRyeSAgZWw7CisgICAgUkJCSU5vZGUgICAgICAgICAgICAgIHZhclJlZk5vZGU7CisgICAgUkJCSU5vZGUgICAgICAgICAgICAgIGV4cHJOb2RlOworICAgIAorICAgIFJCQklOb2RlICAgICAgICAgICAgICB1c2V0Tm9kZTsKKyAgICBTdHJpbmcgICAgICAgICAgICAgICAgcmV0U3RyaW5nOworIAorICAgIGVsID0gKFJCQklTeW1ib2xUYWJsZUVudHJ5KWZIYXNoVGFibGUuZ2V0KHMpOworICAgIGlmIChlbCA9PSBudWxsKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vIFdhbGsgdGhyb3VnaCBhbnkgY2hhaW4gb2YgdmFyaWFibGUgYXNzaWdubWVudHMgdGhhdCB1bHRpbWF0ZWx5IHJlc29sdmUgdG8gYSBTZXQgUmVmLgorICAgIHZhclJlZk5vZGUgPSBlbC52YWw7CisgICAgd2hpbGUgKHZhclJlZk5vZGUuZkxlZnRDaGlsZC5mVHlwZSA9PSBSQkJJTm9kZS52YXJSZWYpIHsKKyAgICAgICAgdmFyUmVmTm9kZSA9IHZhclJlZk5vZGUuZkxlZnRDaGlsZDsKKyAgICB9CisgICAgCisgICAgZXhwck5vZGUgICA9IHZhclJlZk5vZGUuZkxlZnRDaGlsZDsgICAgIC8vIFJvb3Qgbm9kZSBvZiBleHByZXNzaW9uIGZvciB2YXJpYWJsZQorICAgIGlmIChleHByTm9kZS5mVHlwZSA9PSBSQkJJTm9kZS5zZXRSZWYpIHsKKyAgICAgICAgLy8gVGhlICR2YXJpYWJsZSByZWZlcnMgdG8gYSBzaW5nbGUgVW5pY29kZVNldAorICAgICAgICAvLyAgIHJldHVybiB0aGUgZmZmZlN0cmluZywgd2hpY2ggd2lsbCBzdWJzZXF1ZW50bHkgYmUgaW50ZXJwcmV0ZWQgYXMgYQorICAgICAgICAvLyAgIHN0YW5kLWluIGNoYXJhY3RlciBmb3IgdGhlIHNldCBieSBSQkJJU3ltYm9sVGFibGU6Omxvb2t1cE1hdGNoZXIoKQorICAgICAgICB1c2V0Tm9kZSA9IGV4cHJOb2RlLmZMZWZ0Q2hpbGQ7CisgICAgICAgIGZDYWNoZWRTZXRMb29rdXAgPSB1c2V0Tm9kZS5mSW5wdXRTZXQ7CisgICAgICAgIHJldFN0cmluZyA9IGZmZmZTdHJpbmc7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8vIFRoZSB2YXJpYWJsZSByZWZlcnMgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4ganVzdCBhIHNldC4KKyAgICAgICAgLy8gVGhpcyBpcyBhbiBlcnJvciBpbiB0aGUgcnVsZXMgYmVpbmcgY29tcGlsZWQuICAkVmFyaWFibGVzIGluc2lkZSBvZiBVbmljb2RlU2V0cworICAgICAgICAvLyAgIG11c3QgcmVmZXIgb25seSB0byBhbm90aGVyIHNldCwgbm90IHRvIHNvbWUgcmFuZG9tIG5vbi1zZXQgZXhwcmVzc2lvbi4KKyAgICAgICAgLy8gICBOb3RlOiAgc2luZ2xlIGNoYXJhY3RlcnMgYXJlIHJlcHJlc2VudGVkIGFzIHNldHMsIHNvIHRoZXkgYXJlIG9rLgorICAgICAgICBmUnVsZVNjYW5uZXIuZXJyb3IoUkJCSVJ1bGVCdWlsZGVyLlVfQlJLX01BTEZPUk1FRF9TRVQpOworICAgICAgICByZXRTdHJpbmcgPSBleHByTm9kZS5mVGV4dDsKKyAgICAgICAgZkNhY2hlZFNldExvb2t1cCA9IG51bGw7CisgICAgfQorICAgIHJldHVybiByZXRTdHJpbmcudG9DaGFyQXJyYXkoKTsKK30KKworCisKKy8vCisvLyAgUkJCSVN5bWJvbFRhYmxlOjpsb29rdXBNYXRjaGVyICAgVGhpcyBmdW5jdGlvbiBmcm9tIHRoZSBhYnN0cmFjdCBzeW1ib2wgdGFibGUKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UgbWFwcyBhIHNpbmdsZSBzdGFuZC1pbiBjaGFyYWN0ZXIgdG8gYQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgdG8gYSBVbmljb2RlIFNldC4gICBUaGUgVW5pY29kZSBTZXQgY29kZSB1c2VzIHRoaXMKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWNoYW5pc20gdG8gZ2V0IGFsbCByZWZlcmVuY2VzIHRvIHRoZSBzYW1lICR2YXJpYWJsZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgdG8gcmVmZXIgdG8gYSBzaW5nbGUgY29tbW9uIFVuaWNvZGUgU2V0IGluc3RhbmNlLgorLy8KKy8vICAgIFRoaXMgaW1wbGVtZW50YXRpb24gY2hlYXRzIGEgbGl0dGxlLCBhbmQgZG9lcyBub3QgbWFpbnRhaW4gYSBtYXAgb2Ygc3RhbmQtaW4gY2hhcnMKKy8vICAgIHRvIHNldHMuICBJbnN0ZWFkLCBpdCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCAgdGhlIFVuaWNvZGVTZXQKKy8vICAgIGNvbnN0cnVjdG9yIHdpbGwgYWx3YXlzIGNhbGwgdGhpcyBmdW5jdGlvbiByaWdodCBhZnRlciBjYWxsaW5nIGxvb2t1cCgpLAorLy8gICAgYW5kIHdlIGp1c3QgbmVlZCB0byByZW1lbWJlciB3aGF0IHNldCB0byByZXR1cm4gYmV0d2VlbiB0aGVzZSB0d28gY2FsbHMuCitwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpICAKK3sKKyAgICBVbmljb2RlU2V0IHJldFZhbCA9IG51bGw7CisgICAgaWYgKGNoID09IDB4ZmZmZikgeworICAgICAgICByZXRWYWwgPSBmQ2FjaGVkU2V0TG9va3VwOworICAgICAgICBmQ2FjaGVkU2V0TG9va3VwID0gbnVsbDsKKyAgICB9CisgICAgcmV0dXJuIHJldFZhbDsKK30KKworLy8KKy8vIFJCQklTeW1ib2xUYWJsZTo6cGFyc2VSZWZlcmVuY2UgICBUaGlzIGZ1bmN0aW9uIGZyb20gdGhlIGFic3RyYWN0IHN5bWJvbCB0YWJsZSBpbnRlcmZhY2UKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rcyBmb3IgYSAkdmFyaWFibGUgbmFtZSBpbiB0aGUgc291cmNlIHRleHQuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgZG9lcyBub3QgbG9vayBpdCB1cCwgb25seSBzY2FucyBmb3IgaXQuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaXMgdXNlZCBieSB0aGUgVW5pY29kZVNldCBwYXJzZXIuCisvLworcHVibGljIFN0cmluZyAgIHBhcnNlUmVmZXJlbmNlKCBTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgCit7CisgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgaW50IGkgPSBzdGFydDsKKyAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgd2hpbGUgKGkgPCBsaW1pdCkgeworICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgaWYgKChpPT1zdGFydCAmJiAhVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoYykpIHx8ICFVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGMpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICB9CisgICAgaWYgKGkgPT0gc3RhcnQpIHsgLy8gTm8gdmFsaWQgbmFtZSBjaGFycworICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyBJbmRpY2F0ZSBmYWlsdXJlIHdpdGggZW1wdHkgc3RyaW5nCisgICAgfQorICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICByZXN1bHQgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgaSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCisKKy8vCisvLyBSQkJJU3ltYm9sVGFibGU6Omxvb2t1cE5vZGUgICAgICBHaXZlbiBhIGtleSAoYSB2YXJpYWJsZSBuYW1lKSwgcmV0dXJuIHRoZQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBSQkJJIE5vZGUuICBJZiB0aGVyZSBpcyBubyBlbnRyeQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhYmxlIGZvciB0aGlzIG5hbWUsIHJldHVybiBOVUxMLgorLy8KK1JCQklOb2RlICAgICAgIGxvb2t1cE5vZGUoU3RyaW5nIGtleSkgeworCisgICAgUkJCSU5vZGUgICAgICAgICAgICAgIHJldE5vZGUgPSBudWxsOworICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5ICBlbDsKKworICAgIGVsID0gKFJCQklTeW1ib2xUYWJsZUVudHJ5KWZIYXNoVGFibGUuZ2V0KGtleSk7CisgICAgaWYgKGVsICE9IG51bGwpIHsKKyAgICAgICAgcmV0Tm9kZSA9IGVsLnZhbDsKKyAgICB9CisgICAgcmV0dXJuIHJldE5vZGU7Cit9CisKKworLy8KKy8vICAgIFJCQklTeW1ib2xUYWJsZTo6YWRkRW50cnkgICAgIEFkZCBhIG5ldyBlbnRyeSB0byB0aGUgc3ltYm9sIHRhYmxlLgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaWNhdGUgYW4gZXJyb3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMgLQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHdpbGwgb25seSBvY2N1ciBpbiB0aGUgY2FzZSBvZiBkdXBsaWNhdGUKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUgYXNzaWdubWVudHMuCisvLwordm9pZCAgIGFkZEVudHJ5ICAoU3RyaW5nIGtleSwgUkJCSU5vZGUgdmFsKSAgeworICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5IGU7CisgICAgZSA9IChSQkJJU3ltYm9sVGFibGVFbnRyeSApZkhhc2hUYWJsZS5nZXQoa2V5KTsKKyAgICBpZiAoZSAhPSBudWxsKSB7CisgICAgICAgIGZSdWxlU2Nhbm5lci5lcnJvcihSQkJJUnVsZUJ1aWxkZXIuVV9CUktfVkFSSUFCTEVfUkVERklOSVRJT04pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZSA9IG5ldyBSQkJJU3ltYm9sVGFibGVFbnRyeSgpOworICAgIGUua2V5ID0ga2V5OworICAgIGUudmFsID0gdmFsOworICAgIGZIYXNoVGFibGUucHV0KGUua2V5LCBlKTsKK30KKworCisKKworCisvLworLy8gIFJCQklTeW1ib2xUYWJsZTo6cHJpbnQgICAgRGVidWdnaW5nIGZ1bmN0aW9uLCBkdW1wIG91dCB0aGUgc3ltYm9sIHRhYmxlIGNvbnRlbnRzLgorLy8KK3ZvaWQgcmJiaVN5bXRhYmxlUHJpbnQoKSB7CisgICAgU3lzdGVtLm91dC5wcmludCgiVmFyaWFibGUgRGVmaW5pdGlvbnNcbiIgKworICAgICAgICAgICAiTmFtZSAgICAgICAgICAgICAgIE5vZGUgVmFsICAgICBTdHJpbmcgVmFsXG4iICsKKyAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCisgICAgaW50IHBvcyA9IC0xOworICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5IFtdIHN5bXMgPSBuZXcgUkJCSVN5bWJvbFRhYmxlRW50cnlbMF07CisgICAgQ29sbGVjdGlvbiAgdCA9IGZIYXNoVGFibGUudmFsdWVzKCk7CisgICAgc3ltcyA9IChSQkJJU3ltYm9sVGFibGVFbnRyeVtdKSAgdC50b0FycmF5KHN5bXMpOworICAgIAorICAgIGZvciAoaW50IGk9MDsgaTxzeW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5ICBzICAgPSBzeW1zW2ldOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIiArIHMua2V5ICsgIiAgIik7ICAgLy8gVE9ETzogIGZvcm1hdCBvdXRwdXQgaW50byBjb2x1bW5zLgorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICIgKyBzLnZhbCArICIgICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMudmFsLmZMZWZ0Q2hpbGQuZlRleHQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcbiIpOworICAgIH0KKworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5QYXJzZWQgVmFyaWFibGUgRGVmaW5pdGlvbnNcbiIpOworICAgIHBvcyA9IC0xOworICAgIGZvciAoaW50IGk9MDsgaTxzeW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIFJCQklTeW1ib2xUYWJsZUVudHJ5ICBzICAgPSBzeW1zW2ldOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMua2V5KTsKKyAgICAgICAgcy52YWwuZkxlZnRDaGlsZC5wcmludFRyZWUodHJ1ZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgfQorfQorICAgIAorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVRhYmxlQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSVRhYmxlQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyM2M5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQkJJVGFibGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwxMDUwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQXNzZXJ0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKKworLy8KKy8vICBjbGFzcyBSQkJJVGFibGVCdWlsZGVyIGlzIHBhcnQgb2YgdGhlIFJCQkkgcnVsZSBjb21waWxlci4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgIEl0IGJ1aWxkcyB0aGUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZSB1c2VkIGJ5IHRoZSBSQkJJIHJ1bnRpbWUKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIGV4cHJlc3Npb24gc3ludGF4IHRyZWUgZ2VuZXJhdGVkIGJ5IHRoZSBydWxlIHNjYW5uZXIuCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjbGFzcyBpcyBwYXJ0IG9mIHRoZSBSQkJJIGltcGxlbWVudGF0aW9uIG9ubHkuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBUaGVyZSBpcyBubyB1c2VyLXZpc2libGUgcHVibGljIEFQSSBoZXJlLgorLy8KK2NsYXNzIFJCQklUYWJsZUJ1aWxkZXIgeworICAgIAorICAgIAorICAgIAorICAgIC8vCisgICAgLy8gIFJCQklTdGF0ZURlc2NyaXB0b3IgLSBUaGUgREZBIGlzIGluaXRpYWxseSBjb25zdHJ1Y3RlZCBhcyBhIHNldCBvZiB0aGVzZSBkZXNjcmlwdG9ycywKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIG9uZSBmb3IgZWFjaCBzdGF0ZS4KKyAgICBzdGF0aWMgY2xhc3MgUkJCSVN0YXRlRGVzY3JpcHRvciB7CisgICAgICAgIGJvb2xlYW4gICAgICBmTWFya2VkOworICAgICAgICBpbnQgICAgICAgICAgZkFjY2VwdGluZzsKKyAgICAgICAgaW50ICAgICAgICAgIGZMb29rQWhlYWQ7CisgICAgICAgIFNvcnRlZFNldCAgICBmVGFnVmFsczsKKyAgICAgICAgaW50ICAgICAgICAgIGZUYWdzSWR4OworICAgICAgICBTZXQgICAgICAgICAgZlBvc2l0aW9uczsgICAgICAgICAgICAgICAgIC8vIFNldCBvZiBwYXJzZSB0cmVlIHBvc2l0aW9ucyBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgd2l0aCB0aGlzIHN0YXRlLiAgVW5vcmRlcmVkIChpdCdzIGEgc2V0KS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBVVmVjdG9yIGNvbnRlbnRzIGFyZSBSQkJJTm9kZSAqCisKKyAgICAgICAgaW50W10gICAgICAgIGZEdHJhbjsgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbnMgb3V0IG9mIHRoaXMgc3RhdGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGluZGV4ZWQgYnkgaW5wdXQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNvbnRlbnRzIGlzIGludCBpbmRleCBvZiBkZXN0IHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGluIFJCQklUYWJsZUJ1aWxkZXIuZkRTdGF0ZXMKKworICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yKGludCBtYXhJbnB1dFN5bWJvbCkgeworICAgICAgICAgICAgZlRhZ1ZhbHMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgZlBvc2l0aW9ucyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBmRHRyYW4gPSBuZXcgaW50W21heElucHV0U3ltYm9sKzFdOyAgICAvLyBmRHRyYW4gbmVlZHMgdG8gYmUgcHJlLXNpemVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgSXQgaXMgaW5kZXhlZCBieSBpbnB1dCBzeW1ib2xzLCBhbmQgd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgaG9sZCAgdGhlIG5leHQgc3RhdGUgbnVtYmVyIGZvciBlYWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzeW1ib2wuCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSAgUkJCSVJ1bGVCdWlsZGVyICBmUkI7CisgICAgcHJpdmF0ZSAgaW50ICAgICAgICAgICAgIGZSb290SXg7ICAgICAgICAgICAgIC8vIFRoZSBhcnJheSBpbmRleCBpbnRvIFJCQklSdWxlQnVpbGRlci5mVHJlZVJvb3RzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGZvciB0aGUgcGFyc2UgdHJlZSB0byBvcGVyYXRlIG9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBUb28gYmFkIEphdmEgY2FuJ3QgZG8gaW5kaXJlY3Rpb24gbW9yZSBlYXNpbHkhCisKKyAgICBwcml2YXRlICBMaXN0ICAgICAgICAgICAgIGZEU3RhdGVzOyAgICAgICAvLyAgRCBzdGF0ZXMgKEFobydzIHRlcm1pbm9sb2d5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgSW5kZXggaXMgc3RhdGUgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBDb250ZW50cyBhcmUgUkJCSVN0YXRlRGVzY3JpcHRvciBwb2ludGVycy4KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBDb25zdHJ1Y3RvciAgICBmb3IgUkJCSVRhYmxlQnVpbGRlci4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgICByb290Tm9kZSBpcyBhbiBpbmRleCBpbnRvIHRoZSBhcnJheSBvZiByb290IG5vZGVzIHRoYXQgaXMgaGVsZCBieQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3ZlcmFsbCBSQkJJUnVsZUJ1aWxkZXIuCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFJCQklUYWJsZUJ1aWxkZXIoUkJCSVJ1bGVCdWlsZGVyIHJiLCAgaW50IHJvb3ROb2RlSXgpICB7CisgICAgICAgICAgIGZSb290SXggICAgID0gcm9vdE5vZGVJeDsKKyAgICAgICAgICAgZlJCICAgICAgICAgPSByYjsKKyAgICAgICAgICAgZkRTdGF0ZXMgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIH0KKworCisKKyAKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIFJCQklUYWJsZUJ1aWxkZXI6OmJ1aWxkICAtICBUaGlzIGlzIHRoZSBtYWluIGZ1bmN0aW9uIGZvciBidWlsZGluZyB0aGUgREZBIHN0YXRlIHRyYW5zdGlvbgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlIGZyb20gdGhlIFJCQkkgcnVsZXMgcGFyc2UgdHJlZS4KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkICBidWlsZCgpIHsKKyAgICAgICAgICAgLy8gSWYgdGhlcmUgd2VyZSBubyBydWxlcywganVzdCByZXR1cm4uICBUaGlzIHNpdHVhdGlvbiBjYW4gZWFzaWx5IGFyaXNlCisgICAgICAgICAgIC8vICAgZm9yIHRoZSByZXZlcnNlIHJ1bGVzLgorICAgICAgICAgICBpZiAoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF09PW51bGwpIHsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIFdhbGsgdGhyb3VnaCB0aGUgdHJlZSwgcmVwbGFjaW5nIGFueSByZWZlcmVuY2VzIHRvICR2YXJpYWJsZXMgd2l0aCBhIGNvcHkgb2YgdGhlCisgICAgICAgICAgIC8vICAgcGFyc2UgdHJlZSBmb3IgdGhlIHN1YnN0aXRpb24gZXhwcmVzc2lvbi4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0gPSBmUkIuZlRyZWVSb290c1tmUm9vdEl4XS5mbGF0dGVuVmFyaWFibGVzKCk7CisgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigiZnRyZWUiKT49MCkgeworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQYXJzZSB0cmVlIGFmdGVyIGZsYXR0ZW5pbmcgdmFyaWFibGUgcmVmZXJlbmNlcy4iKTsKKyAgICAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdLnByaW50VHJlZSh0cnVlKTsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIElmIHRoZSBydWxlcyBjb250YWluZWQgYW55IHJlZmVyZW5jZXMgdG8ge2JvZn0gCisgICAgICAgICAgIC8vICAgYWRkIGEge2JvZn0gPGNhdD4gPGZvcm1lciByb290IG9mIHRyZWU+IHRvIHRoZQorICAgICAgICAgICAvLyAgIHRyZWUuICBNZWFucyB0aGF0IGFsbCBtYXRjaGVzIG11c3Qgc3RhcnQgb3V0IHdpdGggdGhlIAorICAgICAgICAgICAvLyAgIHtib2Z9IGZha2UgY2hhcmFjdGVyLgorICAgICAgICAgICAvLyAKKyAgICAgICAgICAgaWYgKGZSQi5mU2V0QnVpbGRlci5zYXdCT0YoKSkgeworICAgICAgICAgICAgICAgUkJCSU5vZGUgYm9mVG9wICAgID0gbmV3IFJCQklOb2RlKFJCQklOb2RlLm9wQ2F0KTsKKyAgICAgICAgICAgICAgIFJCQklOb2RlIGJvZkxlYWYgICA9IG5ldyBSQkJJTm9kZShSQkJJTm9kZS5sZWFmQ2hhcik7CisgICAgICAgICAgICAgICBib2ZUb3AuZkxlZnRDaGlsZCAgPSBib2ZMZWFmOworICAgICAgICAgICAgICAgYm9mVG9wLmZSaWdodENoaWxkID0gZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF07CisgICAgICAgICAgICAgICBib2ZMZWFmLmZQYXJlbnQgICAgPSBib2ZUb3A7CisgICAgICAgICAgICAgICBib2ZMZWFmLmZWYWwgICAgICAgPSAyOyAgICAgIC8vIFJlc2VydmVkIHZhbHVlIGZvciB7Ym9mfS4KKyAgICAgICAgICAgICAgIGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdID0gYm9mVG9wOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gQWRkIGEgdW5pcXVlIHJpZ2h0LWVuZCBtYXJrZXIgdG8gdGhlIGV4cHJlc3Npb24uCisgICAgICAgICAgIC8vICAgQXBwZWFycyBhcyBhIGNhdC1ub2RlLCBsZWZ0IGNoaWxkIGJlaW5nIHRoZSBvcmlnaW5hbCB0cmVlLAorICAgICAgICAgICAvLyAgIHJpZ2h0IGNoaWxkIGJlaW5nIHRoZSBlbmQgbWFya2VyLgorICAgICAgICAgICAvLworICAgICAgICAgICBSQkJJTm9kZSBjbiA9IG5ldyBSQkJJTm9kZShSQkJJTm9kZS5vcENhdCk7CisgICAgICAgICAgIGNuLmZMZWZ0Q2hpbGQgPSBmUkIuZlRyZWVSb290c1tmUm9vdEl4XTsKKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZlBhcmVudCA9IGNuOworICAgICAgICAgICBjbi5mUmlnaHRDaGlsZCA9IG5ldyBSQkJJTm9kZShSQkJJTm9kZS5lbmRNYXJrKTsKKyAgICAgICAgICAgY24uZlJpZ2h0Q2hpbGQuZlBhcmVudCA9IGNuOworICAgICAgICAgICBmUkIuZlRyZWVSb290c1tmUm9vdEl4XSA9IGNuOworCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vICBSZXBsYWNlIGFsbCByZWZlcmVuY2VzIHRvIFVuaWNvZGVTZXRzIHdpdGggdGhlIHRyZWUgZm9yIHRoZSBlcXVpdmFsZW50CisgICAgICAgICAgIC8vICAgICAgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZmxhdHRlblNldHMoKTsKKyAgICAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJzdHJlZSIpPj0wKSB7CisgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnNlIHRyZWUgYWZ0ZXIgZmxhdHRlbmluZyBVbmljb2RlIFNldCByZWZlcmVuY2VzLiIpOworICAgICAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0ucHJpbnRUcmVlKHRydWUpOworICAgICAgICAgICB9CisKKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGZ1bmN0aW9ucyBudWxsYWJsZSwgZmlyc3Rwb3MsIGxhc3Rwb3MgYW5kIGZvbGxvd3BvcyBvbgorICAgICAgICAgICAvLyBub2RlcyBpbiB0aGUgcGFyc2UgdHJlZS4KKyAgICAgICAgICAgLy8gICAgU2VlIHRoZSBhbG9ncml0aG0gZGVzY3JpcHRpb24gaW4gQWhvLgorICAgICAgICAgICAvLyAgICBVbmRlcnN0YW5kaW5nIGhvdyB0aGlzIHdvcmtzIGJ5IGxvb2tpbmcgYXQgdGhlIGNvZGUgYWxvbmUgd2lsbCBiZQorICAgICAgICAgICAvLyAgICAgICBuZWFybHkgaW1wb3NzaWJsZS4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgY2FsY051bGxhYmxlKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdKTsKKyAgICAgICAgICAgY2FsY0ZpcnN0UG9zKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdKTsKKyAgICAgICAgICAgY2FsY0xhc3RQb3MoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0pOworICAgICAgICAgICBjYWxjRm9sbG93UG9zKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdKTsKKyAgICAgICAgICAgaWYgKGZSQi5mRGVidWdFbnYhPW51bGwgJiYgZlJCLmZEZWJ1Z0Vudi5pbmRleE9mKCJwb3MiKT49MCkgeworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKyAgICAgICAgICAgICAgIHByaW50UG9zU2V0cyhmUkIuZlRyZWVSb290c1tmUm9vdEl4XSk7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyAgRm9yICJjaGFpbmVkIiBydWxlcywgbW9kaWZ5IHRoZSBmb2xsb3dQb3Mgc2V0cworICAgICAgICAgICAvLworICAgICAgICAgICBpZiAoZlJCLmZDaGFpblJ1bGVzKSB7CisgICAgICAgICAgICAgICBjYWxjQ2hhaW5lZEZvbGxvd1BvcyhmUkIuZlRyZWVSb290c1tmUm9vdEl4XSk7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLworICAgICAgICAgICAvLyAgQk9GIChzdGFydCBvZiBpbnB1dCkgdGVzdCBmaXh1cC4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgaWYgKGZSQi5mU2V0QnVpbGRlci5zYXdCT0YoKSkgeworICAgICAgICAgICAgICAgYm9mRml4dXAoKTsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIEJ1aWxkIHRoZSBERkEgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZXMuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGJ1aWxkU3RhdGVUYWJsZSgpOworICAgICAgICAgICBmbGFnQWNjZXB0aW5nU3RhdGVzKCk7CisgICAgICAgICAgIGZsYWdMb29rQWhlYWRTdGF0ZXMoKTsKKyAgICAgICAgICAgZmxhZ1RhZ2dlZFN0YXRlcygpOworCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZ2xvYmFsIHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHt0YWd9IHZhbHVlcworICAgICAgICAgICAvLyBUaGUgcnVsZSBidWlsZGVyIGhhcyBhIGdsb2JhbCB2ZWN0b3Igb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IGFyZSBjb21tb24KKyAgICAgICAgICAgLy8gICAgZm9yIGFsbCB0YWJsZXMuICBNZXJnZSB0aGUgb25lcyBmcm9tIHRoaXMgdGFibGUgaW50byB0aGUgZ2xvYmFsIHNldC4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgbWVyZ2VSdWxlU3RhdHVzVmFscygpOworCisgICAgICAgICAgIGlmIChmUkIuZkRlYnVnRW52IT1udWxsICYmIGZSQi5mRGVidWdFbnYuaW5kZXhPZigic3RhdGVzIik+PTApIHtwcmludFN0YXRlcygpO307CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgY2FsY051bGxhYmxlLiAgICBJbXBvc3NpYmxlIHRvIGV4cGxhaW4gc3VjY2luY3RseS4gIFNlZSBBaG8sIHNlY3Rpb24gMy45CisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCBjYWxjTnVsbGFibGUoUkJCSU5vZGUgbikgeworICAgICAgICAgICBpZiAobiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUuc2V0UmVmIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmVuZE1hcmsgKSB7CisgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgbm9uLWVtcHR5IGxlYWYgbm9kZSB0eXBlcy4KKyAgICAgICAgICAgICAgIG4uZk51bGxhYmxlID0gZmFsc2U7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKworICAgICAgICAgICBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5sb29rQWhlYWQgfHwgbi5mVHlwZSA9PSBSQkJJTm9kZS50YWcpIHsKKyAgICAgICAgICAgICAgIC8vIExvb2thaGVhZCBtYXJrZXIgbm9kZS4gIEl0J3MgYSBsZWFmLCBzbyBubyByZWN1cnNpb24gb24gY2hpbGRyZW4uCisgICAgICAgICAgICAgICAvLyBJdCdzIG51bGxhYmxlIGJlY2F1c2UgaXQgZG9lcyBub3QgbWF0Y2ggYW55IGxpdGVyYWwgdGV4dCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0uCisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKworCisgICAgICAgICAgIC8vIFRoZSBub2RlIGlzIG5vdCBhIGxlYWYuCisgICAgICAgICAgIC8vICBDYWxjdWxhdGUgbnVsbGFibGUgb24gaXRzIGNoaWxkcmVuLgorICAgICAgICAgICBjYWxjTnVsbGFibGUobi5mTGVmdENoaWxkKTsKKyAgICAgICAgICAgY2FsY051bGxhYmxlKG4uZlJpZ2h0Q2hpbGQpOworCisgICAgICAgICAgIC8vIEFwcGx5IGZ1bmN0aW9ucyBmcm9tIHRhYmxlIDMuNDAgaW4gQWhvCisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wT3IpIHsKKyAgICAgICAgICAgICAgIG4uZk51bGxhYmxlID0gbi5mTGVmdENoaWxkLmZOdWxsYWJsZSB8fCBuLmZSaWdodENoaWxkLmZOdWxsYWJsZTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wQ2F0KSB7CisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IG4uZkxlZnRDaGlsZC5mTnVsbGFibGUgJiYgbi5mUmlnaHRDaGlsZC5mTnVsbGFibGU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcFN0YXIgfHwgbi5mVHlwZSA9PSBSQkJJTm9kZS5vcFF1ZXN0aW9uKSB7CisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICBuLmZOdWxsYWJsZSA9IGZhbHNlOworICAgICAgICAgICB9CisgICAgICAgfQorCisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBjYWxjRmlyc3RQb3MuICAgIEltcG9zc2libGUgdG8gZXhwbGFpbiBzdWNjaW5jdGx5LiAgU2VlIEFobywgc2VjdGlvbiAzLjkKKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkIGNhbGNGaXJzdFBvcyhSQkJJTm9kZSBuKSB7CisgICAgICAgICAgIGlmIChuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgfQorICAgICAgICAgICBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5sZWFmQ2hhciAgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUuZW5kTWFyayAgIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmxvb2tBaGVhZCB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS50YWcpIHsKKyAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBub24tZW1wdHkgbGVhZiBub2RlIHR5cGVzLgorICAgICAgICAgICAgICAgbi5mRmlyc3RQb3NTZXQuYWRkKG4pOworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8gVGhlIG5vZGUgaXMgbm90IGEgbGVhZi4KKyAgICAgICAgICAgLy8gIENhbGN1bGF0ZSBmaXJzdFBvcyBvbiBpdHMgY2hpbGRyZW4uCisgICAgICAgICAgIGNhbGNGaXJzdFBvcyhuLmZMZWZ0Q2hpbGQpOworICAgICAgICAgICBjYWxjRmlyc3RQb3Mobi5mUmlnaHRDaGlsZCk7CisKKyAgICAgICAgICAgLy8gQXBwbHkgZnVuY3Rpb25zIGZyb20gdGFibGUgMy40MCBpbiBBaG8KKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUub3BPcikgeworICAgICAgICAgICAgICAgbi5mRmlyc3RQb3NTZXQuYWRkQWxsKG4uZkxlZnRDaGlsZC5mRmlyc3RQb3NTZXQpOworICAgICAgICAgICAgICAgbi5mRmlyc3RQb3NTZXQuYWRkQWxsKG4uZlJpZ2h0Q2hpbGQuZkZpcnN0UG9zU2V0KTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wQ2F0KSB7CisgICAgICAgICAgICAgICBuLmZGaXJzdFBvc1NldC5hZGRBbGwobi5mTGVmdENoaWxkLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgICAgICBpZiAobi5mTGVmdENoaWxkLmZOdWxsYWJsZSkgeworICAgICAgICAgICAgICAgICAgIG4uZkZpcnN0UG9zU2V0LmFkZEFsbChuLmZSaWdodENoaWxkLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSBpZiAobi5mVHlwZSA9PSBSQkJJTm9kZS5vcFN0YXIgfHwKKyAgICAgICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5vcFF1ZXN0aW9uIHx8CisgICAgICAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUub3BQbHVzKSB7CisgICAgICAgICAgICAgICBuLmZGaXJzdFBvc1NldC5hZGRBbGwobi5mTGVmdENoaWxkLmZGaXJzdFBvc1NldCk7CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBjYWxjTGFzdFBvcy4gICAgSW1wb3NzaWJsZSB0byBleHBsYWluIHN1Y2NpbmN0bHkuICBTZWUgQWhvLCBzZWN0aW9uIDMuOQorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgY2FsY0xhc3RQb3MoUkJCSU5vZGUgbikgeworICAgICAgICAgICBpZiAobiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUubGVhZkNoYXIgIHx8CisgICAgICAgICAgICAgICBuLmZUeXBlID09IFJCQklOb2RlLmVuZE1hcmsgICB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5sb29rQWhlYWQgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUudGFnKSB7CisgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgbm9uLWVtcHR5IGxlYWYgbm9kZSB0eXBlcy4KKyAgICAgICAgICAgICAgIG4uZkxhc3RQb3NTZXQuYWRkKG4pOworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8gVGhlIG5vZGUgaXMgbm90IGEgbGVhZi4KKyAgICAgICAgICAgLy8gIENhbGN1bGF0ZSBsYXN0UG9zIG9uIGl0cyBjaGlsZHJlbi4KKyAgICAgICAgICAgY2FsY0xhc3RQb3Mobi5mTGVmdENoaWxkKTsKKyAgICAgICAgICAgY2FsY0xhc3RQb3Mobi5mUmlnaHRDaGlsZCk7CisKKyAgICAgICAgICAgLy8gQXBwbHkgZnVuY3Rpb25zIGZyb20gdGFibGUgMy40MCBpbiBBaG8KKyAgICAgICAgICAgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUub3BPcikgeworICAgICAgICAgICAgICAgbi5mTGFzdFBvc1NldC5hZGRBbGwobi5mTGVmdENoaWxkLmZMYXN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIG4uZkxhc3RQb3NTZXQuYWRkQWxsKG4uZlJpZ2h0Q2hpbGQuZkxhc3RQb3NTZXQpOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgaWYgKG4uZlR5cGUgPT0gUkJCSU5vZGUub3BDYXQpIHsKKyAgICAgICAgICAgICAgIG4uZkxhc3RQb3NTZXQuYWRkQWxsKG4uZlJpZ2h0Q2hpbGQuZkxhc3RQb3NTZXQpOworICAgICAgICAgICAgICAgaWYgKG4uZlJpZ2h0Q2hpbGQuZk51bGxhYmxlKSB7CisgICAgICAgICAgICAgICAgICAgbi5mTGFzdFBvc1NldC5hZGRBbGwobi5mTGVmdENoaWxkLmZMYXN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wU3RhciAgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5vcFF1ZXN0aW9uIHx8CisgICAgICAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUub3BQbHVzKSB7CisgICAgICAgICAgICAgICBuLmZMYXN0UG9zU2V0LmFkZEFsbChuLmZMZWZ0Q2hpbGQuZkxhc3RQb3NTZXQpOworICAgICAgICAgICB9CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgY2FsY0ZvbGxvd1Bvcy4gICAgSW1wb3NzaWJsZSB0byBleHBsYWluIHN1Y2NpbmN0bHkuICBTZWUgQWhvLCBzZWN0aW9uIDMuOQorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgY2FsY0ZvbGxvd1BvcyhSQkJJTm9kZSBuKSB7CisgICAgICAgICAgIGlmIChuID09IG51bGwgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUubGVhZkNoYXIgfHwKKyAgICAgICAgICAgICAgIG4uZlR5cGUgPT0gUkJCSU5vZGUuZW5kTWFyaykgeworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgY2FsY0ZvbGxvd1BvcyhuLmZMZWZ0Q2hpbGQpOworICAgICAgICAgICBjYWxjRm9sbG93UG9zKG4uZlJpZ2h0Q2hpbGQpOworCisgICAgICAgICAgIC8vIEFobyBydWxlICMxCisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wQ2F0KSB7CisgICAgICAgICAgICAgICBSQkJJTm9kZSBpOyAgIC8vIGlzICdpJyBpbiBBaG8ncyBkZXNjcmlwdGlvbgorCisgICAgICAgICAgICAgICBTZXQgTGFzdFBvc09mTGVmdENoaWxkID0gbi5mTGVmdENoaWxkLmZMYXN0UG9zU2V0OworCisgICAgICAgICAgICAgICBJdGVyYXRvciBpeCA9IExhc3RQb3NPZkxlZnRDaGlsZC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgd2hpbGUgKGl4Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgIGkgPSAoUkJCSU5vZGUgKWl4Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICBpLmZGb2xsb3dQb3MuYWRkQWxsKG4uZlJpZ2h0Q2hpbGQuZkZpcnN0UG9zU2V0KTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vIEFobyBydWxlICMyCisgICAgICAgICAgIGlmIChuLmZUeXBlID09IFJCQklOb2RlLm9wU3RhciB8fAorICAgICAgICAgICAgICAgbi5mVHlwZSA9PSBSQkJJTm9kZS5vcFBsdXMpIHsKKyAgICAgICAgICAgICAgIFJCQklOb2RlICAgaTsgIC8vIGFnYWluLCBuIGFuZCBpIGFyZSB0aGUgbmFtZXMgZnJvbSBBaG8ncyBkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgIEl0ZXJhdG9yICAgaXggPSBuLmZMYXN0UG9zU2V0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICB3aGlsZSAoaXguaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgaSA9IChSQkJJTm9kZSkgaXgubmV4dCgpOworICAgICAgICAgICAgICAgICAgIGkuZkZvbGxvd1Bvcy5hZGRBbGwobi5mRmlyc3RQb3NTZXQpOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgIH0KKworCisKKyAgICAgICB9CisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgY2FsY0NoYWluZWRGb2xsb3dQb3MuICAgIE1vZGlmeSB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGVkIGZvbGxvd1BvcyBzZXRzCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gaW1wbGVtZW50IHJ1bGUgY2hhaW5pbmcuICBOT1QgZGVzY3JpYmVkIGJ5IEFobworICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgY2FsY0NoYWluZWRGb2xsb3dQb3MoUkJCSU5vZGUgdHJlZSkgeworCisgICAgICAgICAgIExpc3QgICAgICAgIGVuZE1hcmtlck5vZGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICBMaXN0ICAgICAgICBsZWFmTm9kZXMgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgICAgICAgICAgLy8gZ2V0IGEgbGlzdCBvZiBhbGwgZW5kbWFya2VyIG5vZGVzLgorICAgICAgICAgICB0cmVlLmZpbmROb2RlcyhlbmRNYXJrZXJOb2RlcywgUkJCSU5vZGUuZW5kTWFyayk7CisKKyAgICAgICAgICAgLy8gZ2V0IGEgbGlzdCBhbGwgbGVhZiBub2RlcworICAgICAgICAgICB0cmVlLmZpbmROb2RlcyhsZWFmTm9kZXMsIFJCQklOb2RlLmxlYWZDaGFyKTsKKworICAgICAgICAgICAvLyBHZXQgYWxsIG5vZGVzIHRoYXQgY2FuIGJlIHRoZSBzdGFydCBhIG1hdGNoLCB3aGljaCBpcyBGaXJzdFBvc2l0aW9uKCkKKyAgICAgICAgICAgLy8gb2YgdGhlIHBvcnRpb24gb2YgdGhlIHRyZWUgY29ycmVzcG9uZGluZyB0byB1c2VyLXdyaXR0ZW4gcnVsZXMuCisgICAgICAgICAgIC8vIFNlZSB0aGUgdHJlZSBkZXNjcmlwdGlvbiBpbiBib2ZGaXh1cCgpLgorICAgICAgICAgICBSQkJJTm9kZSB1c2VyUnVsZVJvb3QgPSB0cmVlOworICAgICAgICAgICBpZiAoZlJCLmZTZXRCdWlsZGVyLnNhd0JPRigpKSB7CisgICAgICAgICAgICAgICB1c2VyUnVsZVJvb3QgPSB0cmVlLmZMZWZ0Q2hpbGQuZlJpZ2h0Q2hpbGQ7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgQXNzZXJ0LmFzc3J0KHVzZXJSdWxlUm9vdCAhPSBudWxsKTsKKyAgICAgICAgICAgU2V0IG1hdGNoU3RhcnROb2RlcyA9IHVzZXJSdWxlUm9vdC5mRmlyc3RQb3NTZXQ7CisKKworICAgICAgICAgICAvLyBJdGVyYXRhdGUgb3ZlciBhbGwgbGVhZiBub2RlcywKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgSXRlcmF0b3IgIGVuZE5vZGVJeCA9IGxlYWZOb2Rlcy5pdGVyYXRvcigpOworCisgICAgICAgICAgIHdoaWxlIChlbmROb2RlSXguaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICBSQkJJTm9kZSB0Tm9kZSAgID0gKFJCQklOb2RlKWVuZE5vZGVJeC5uZXh0KCk7CisgICAgICAgICAgICAgICBSQkJJTm9kZSBlbmROb2RlID0gbnVsbDsKKworICAgICAgICAgICAgICAgLy8gSWRlbnRpZnkgbGVhZiBub2RlcyB0aGF0IGNvcnJlc3BvbmQgdG8gb3ZlcmFsbCBydWxlIG1hdGNoIHBvc2l0aW9ucy4KKyAgICAgICAgICAgICAgIC8vICAgVGhlc2UgaW5jbHVkZSBhbiBlbmRNYXJrZXJOb2RlIGluIHRoZWlyIGZvbGxvd1BvcyBzZXRzLgorICAgICAgICAgICAgICAgSXRlcmF0b3IgaSA9IGVuZE1hcmtlck5vZGVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICB3aGlsZSAoaS5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSBlbmRNYXJrZXJOb2RlID0gKFJCQklOb2RlKWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgIGlmICh0Tm9kZS5mRm9sbG93UG9zLmNvbnRhaW5zKGVuZE1hcmtlck5vZGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGVuZE5vZGUgPSB0Tm9kZTsKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYgKGVuZE5vZGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgIC8vIG5vZGUgd2Fzbid0IGFuIGVuZCBub2RlLiAgVHJ5IGFnYWluIHdpdGggdGhlIG5leHQuCisgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBhIG5vZGUgdGhhdCBjYW4gZW5kIGEgbWF0Y2guCisKKyAgICAgICAgICAgICAgIC8vIExpbmUgQnJlYWsgU3BlY2lmaWMgaGFjazogIElmIHRoaXMgbm9kZSdzIHZhbCBjb3JyZXNwb25kIHRvIHRoZSAkQ00gY2hhciBjbGFzcywKKyAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbid0IGNoYWluIGZyb20gaXQuCisgICAgICAgICAgICAgICAvLyBUT0RPOiAgQWRkIHJ1bGUgc3ludGF4IGZvciB0aGlzIGJlaGF2aW9yLCBnZXQgc3BlY2lmaWNzIG91dCBvZiBoZXJlIGFuZAorICAgICAgICAgICAgICAgLy8gICAgICAgIGludG8gdGhlIHJ1bGUgZmlsZS4KKyAgICAgICAgICAgICAgIGlmIChmUkIuZkxCQ01Ob0NoYWluKSB7CisgICAgICAgICAgICAgICAgICAgaW50IGMgPSB0aGlzLmZSQi5mU2V0QnVpbGRlci5nZXRGaXJzdENoYXIoZW5kTm9kZS5mVmFsKTsKKyAgICAgICAgICAgICAgICAgICBpZiAoYyAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAvLyBjID09IC0xIG9jY3VycyB3aXRoIHNldHMgY29udGFpbmluZyBvbmx5IHRoZSB7ZW9mfSBtYXJrZXIgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgICBpbnQgY0xCUHJvcCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuTElORV9CUkVBSyk7CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJQcm9wID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICAgICAvLyBOb3cgaXRlcmF0ZSBvdmVyIHRoZSBub2RlcyB0aGF0IGNhbiBzdGFydCBhIG1hdGNoLCBsb29raW5nIGZvciBvbmVzCisgICAgICAgICAgICAgICAvLyAgIHdpdGggdGhlIHNhbWUgY2hhciBjbGFzcyBhcyBvdXIgZW5kaW5nIG5vZGUuCisgICAgICAgICAgICAgICBSQkJJTm9kZSBzdGFydE5vZGU7CisgICAgICAgICAgICAgICBJdGVyYXRvciAgc3RhcnROb2RlSXggPSBtYXRjaFN0YXJ0Tm9kZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgIHdoaWxlIChzdGFydE5vZGVJeC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICBzdGFydE5vZGUgPSAoUkJCSU5vZGUgKXN0YXJ0Tm9kZUl4Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnROb2RlLmZUeXBlICE9IFJCQklOb2RlLmxlYWZDaGFyKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgIGlmIChlbmROb2RlLmZWYWwgPT0gc3RhcnROb2RlLmZWYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGVuZCB2YWwgKGNoYXJhY3RlciBjbGFzcykgb2Ygb25lIHBvc3NpYmxlIG1hdGNoIGlzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHNhbWUgYXMgdGhlIHN0YXJ0IG9mIGFub3RoZXIuCisKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGFsbCBub2RlcyBmcm9tIHRoZSBmb2xsb3dQb3Mgb2YgdGhlIHN0YXJ0IG5vZGUgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgIC8vICBmb2xsb3dQb3Mgc2V0IG9mIHRoZSBlbmQgbm9kZSwgd2hpY2ggd2lsbCBoYXZlIHRoZSBlZmZlY3Qgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gIGxldHRpbmcgbWF0Y2hlcyB0cmFuc2l0aW9uIGZyb20gYSBtYXRjaCBzdGF0ZSBhdCBlbmROb2RlCisgICAgICAgICAgICAgICAgICAgICAgIC8vICB0byB0aGUgc2Vjb25kIGNoYXIgb2YgYSBtYXRjaCBzdGFydGluZyB3aXRoIHN0YXJ0Tm9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgZW5kTm9kZS5mRm9sbG93UG9zLmFkZEFsbChzdGFydE5vZGUuZkZvbGxvd1Bvcyk7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGJvZkZpeHVwLiAgICBGaXh1cCBmb3Igc3RhdGUgdGFibGVzIHRoYXQgaW5jbHVkZSB7Ym9mfSBiZWdpbm5pbmcgb2YgaW5wdXQgdGVzdGluZy4KKyAgICAgICAvLyAgICAgICAgICAgICAgICBEbyBhbiBzd2l6emxlIHNpbWlsYXIgdG8gY2hhaW5pbmcsIG1vZGlmeWluZyB0aGUgZm9sbG93UG9zIHNldCBvZgorICAgICAgIC8vICAgICAgICAgICAgICAgIHRoZSBib2ZOb2RlIHRvIGluY2x1ZGUgdGhlIGZvbGxvd1BvcyBub2RlcyBmcm9tIG90aGVyIHtib3R9IG5vZGVzCisgICAgICAgLy8gICAgICAgICAgICAgICAgc2NhdHRlcmVkIHRocm91Z2ggdGhlIHRyZWUuCisgICAgICAgLy8KKyAgICAgICAvLyAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGhhcyBtdWNoIGluIGNvbW1vbiB3aXRoIGNhbGNDaGFpbmVkRm9sbG93UG9zKCkuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCBib2ZGaXh1cCgpIHsKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gICBUaGUgcGFyc2UgdHJlZSBsb29rcyBsaWtlIHRoaXMgLi4uCisgICAgICAgICAgIC8vICAgICAgICAgZlRyZWUgcm9vdCAgLS0uICAgICAgIDxjYXQ+CisgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgIFwgICAKKyAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNhdD4gICA8I2VuZCBub2RlPgorICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgIFwgICAKKyAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICA8Ym9mTm9kZT4gICByZXN0CisgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRyZWUKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gICAgV2Ugd2lsbCBiZSBhZGRpbmcgdGhpbmdzIHRvIHRoZSBmb2xsb3dQb3Mgc2V0IG9mIHRoZSA8Ym9mTm9kZT4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgUkJCSU5vZGUgIGJvZk5vZGUgPSBmUkIuZlRyZWVSb290c1tmUm9vdEl4XS5mTGVmdENoaWxkLmZMZWZ0Q2hpbGQ7CisgICAgICAgICAgIEFzc2VydC5hc3NydChib2ZOb2RlLmZUeXBlID09IFJCQklOb2RlLmxlYWZDaGFyKTsKKyAgICAgICAgICAgQXNzZXJ0LmFzc3J0KGJvZk5vZGUuZlZhbCA9PSAyKTsKKworICAgICAgICAgICAvLyBHZXQgYWxsIG5vZGVzIHRoYXQgY2FuIGJlIHRoZSBzdGFydCBhIG1hdGNoIG9mIHRoZSB1c2VyLXdyaXR0ZW4gcnVsZXMKKyAgICAgICAgICAgLy8gIChleGNsdWRpbmcgdGhlIGZha2UgYm9mTm9kZSkKKyAgICAgICAgICAgLy8gIFdlIHdhbnQgdGhlIG5vZGVzIHRoYXQgY2FuIHN0YXJ0IGEgbWF0Y2ggaW4gdGhlCisgICAgICAgICAgIC8vICAgICBwYXJ0IGxhYmVsZWQgInJlc3Qgb2YgdHJlZSIKKyAgICAgICAgICAgLy8gCisgICAgICAgICAgIFNldCBtYXRjaFN0YXJ0Tm9kZXMgPSBmUkIuZlRyZWVSb290c1tmUm9vdEl4XS5mTGVmdENoaWxkLmZSaWdodENoaWxkLmZGaXJzdFBvc1NldDsKKyAgICAgICAgICAgSXRlcmF0b3Igc3RhcnROb2RlSXQgPSBtYXRjaFN0YXJ0Tm9kZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgd2hpbGUgKHN0YXJ0Tm9kZUl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgUkJCSU5vZGUgc3RhcnROb2RlID0gKFJCQklOb2RlKXN0YXJ0Tm9kZUl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgIGlmIChzdGFydE5vZGUuZlR5cGUgIT0gUkJCSU5vZGUubGVhZkNoYXIpIHsKKyAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgaWYgKHN0YXJ0Tm9kZS5mVmFsID09IGJvZk5vZGUuZlZhbCkgeworICAgICAgICAgICAgICAgICAgIC8vICBXZSBmb3VuZCBhIGxlYWYgbm9kZSBjb3JyZXNwb25kaW5nIHRvIGEge2JvZn0gdGhhdCB3YXMKKyAgICAgICAgICAgICAgICAgICAvLyAgICBleHBsaWNpdGx5IHdyaXR0ZW4gaW50byBhIHJ1bGUuCisgICAgICAgICAgICAgICAgICAgLy8gIEFkZCBldmVyeXRoaW5nIGZyb20gdGhlIGZvbGxvd1BvcyBzZXQgb2YgdGhpcyBub2RlIHRvIHRoZQorICAgICAgICAgICAgICAgICAgIC8vICAgIGZvbGxvd1BvcyBzZXQgb2YgdGhlIGZha2UgYm9mTm9kZSBhdCB0aGUgc3RhcnQgb2YgdGhlIHRyZWUuCisgICAgICAgICAgICAgICAgICAgLy8gIAorICAgICAgICAgICAgICAgICAgIGJvZk5vZGUuZkZvbGxvd1Bvcy5hZGRBbGwoc3RhcnROb2RlLmZGb2xsb3dQb3MpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBidWlsZFN0YXRlVGFibGUoKSAgICBEZXRlcm1pbmUgdGhlIHNldCBvZiBydW50aW1lIERGQSBzdGF0ZXMgYW5kIHRoZQorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiB0YWJsZXMgZm9yIHRoZXNlIHN0YXRlcywgYnkgdGhlIGFsZ29yaXRobQorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgb2YgZmlnLiAzLjQ0IGluIEFoby4KKyAgICAgICAvLworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgTW9zdCBvZiB0aGUgY29tbWVudHMgYXJlIHF1b3RlcyBvZiBBaG8ncyBwc3VlZG8tY29kZS4KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkIGJ1aWxkU3RhdGVUYWJsZSgpIHsKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gQWRkIGEgZHVtbXkgc3RhdGUgMCAtIHRoZSBzdG9wIHN0YXRlLiAgTm90IGZyb20gQWhvLgorICAgICAgICAgICBpbnQgICAgICBsYXN0SW5wdXRTeW1ib2wgPSBmUkIuZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKSAtIDE7CisgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3IgZmFpbFN0YXRlID0gbmV3IFJCQklTdGF0ZURlc2NyaXB0b3IobGFzdElucHV0U3ltYm9sKTsKKyAgICAgICAgICAgZkRTdGF0ZXMuYWRkKGZhaWxTdGF0ZSk7CisKKyAgICAgICAgICAgLy8gaW5pdGlhbGx5LCB0aGUgb25seSB1bm1hcmtlZCBzdGF0ZSBpbiBEc3RhdGVzIGlzIGZpcnN0cG9zKHJvb3QpLAorICAgICAgICAgICAvLyAgICAgICB3aGVyZSB0b290IGlzIHRoZSByb290IG9mIHRoZSBzeW50YXggdHJlZSBmb3IgKHIpIzsKKyAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBpbml0aWFsU3RhdGUgPSBuZXcgUkJCSVN0YXRlRGVzY3JpcHRvcihsYXN0SW5wdXRTeW1ib2wpOworICAgICAgICAgICBpbml0aWFsU3RhdGUuZlBvc2l0aW9ucy5hZGRBbGwoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZkZpcnN0UG9zU2V0KTsKKyAgICAgICAgICAgZkRTdGF0ZXMuYWRkKGluaXRpYWxTdGF0ZSk7CisKKyAgICAgICAgICAgLy8gd2hpbGUgdGhlcmUgaXMgYW4gdW5tYXJrZWQgc3RhdGUgVCBpbiBEc3RhdGVzIGRvIGJlZ2luCisgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3IgVCA9IG51bGw7CisgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgIHR4OworICAgICAgICAgICAgICAgZm9yICh0eD0xOyB0eDxmRFN0YXRlcy5zaXplKCk7IHR4KyspIHsKKyAgICAgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIHRlbXAgID0gKFJCQklTdGF0ZURlc2NyaXB0b3IgKWZEU3RhdGVzLmdldCh0eCk7CisgICAgICAgICAgICAgICAgICAgaWYgKHRlbXAuZk1hcmtlZCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICBUID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYgKFQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAvLyBtYXJrIFQ7CisgICAgICAgICAgICAgICBULmZNYXJrZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCBpbnB1dCBzeW1ib2wgYSBkbyBiZWdpbgorICAgICAgICAgICAgICAgaW50ICBhOworICAgICAgICAgICAgICAgZm9yIChhID0gMTsgYTw9bGFzdElucHV0U3ltYm9sOyBhKyspIHsKKyAgICAgICAgICAgICAgICAgICAvLyBsZXQgVSBiZSB0aGUgc2V0IG9mIHBvc2l0aW9ucyB0aGF0IGFyZSBpbiBmb2xsb3dwb3MocCkKKyAgICAgICAgICAgICAgICAgICAvLyAgICBmb3Igc29tZSBwb3NpdGlvbiBwIGluIFQKKyAgICAgICAgICAgICAgICAgICAvLyAgICBzdWNoIHRoYXQgdGhlIHN5bWJvbCBhdCBwb3NpdGlvbiBwIGlzIGE7CisgICAgICAgICAgICAgICAgICAgU2V0ICAgICAgICBVID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICBSQkJJTm9kZSAgIHA7CisgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgICBwaXQgPSBULmZQb3NpdGlvbnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICB3aGlsZSAocGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICBwID0gKFJCQklOb2RlIClwaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHAuZlR5cGUgPT0gUkJCSU5vZGUubGVhZkNoYXIpICYmICAocC5mVmFsID09IGEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBVLmFkZEFsbChwLmZGb2xsb3dQb3MpOworICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgLy8gaWYgVSBpcyBub3QgZW1wdHkgYW5kIG5vdCBpbiBEU3RhdGVzIHRoZW4KKyAgICAgICAgICAgICAgICAgICBpbnQgIHV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICBib29sZWFuICAgIFVpbkRzdGF0ZXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICBpZiAoVSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydChVLnNpemUoKSA+IDApOworICAgICAgICAgICAgICAgICAgICAgICBpbnQgIGl4OworICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGl4PTA7IGl4PGZEU3RhdGVzLnNpemUoKTsgaXgrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciB0ZW1wMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAyID0gKFJCQklTdGF0ZURlc2NyaXB0b3IgKWZEU3RhdGVzLmdldChpeCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVS5lcXVhbHModGVtcDIuZlBvc2l0aW9ucykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVICA9IHRlbXAyLmZQb3NpdGlvbnM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXggPSBpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaW5Ec3RhdGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBVIGFzIGFuIHVubWFya2VkIHN0YXRlIHRvIERzdGF0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVaW5Ec3RhdGVzKQorICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIG5ld1N0YXRlID0gbmV3IFJCQklTdGF0ZURlc2NyaXB0b3IobGFzdElucHV0U3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlLmZQb3NpdGlvbnMgPSBVOworICAgICAgICAgICAgICAgICAgICAgICAgICAgZkRTdGF0ZXMuYWRkKG5ld1N0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHV4ID0gZkRTdGF0ZXMuc2l6ZSgpLTE7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAvLyBEdHJhbltULCBhXSA6PSBVOworICAgICAgICAgICAgICAgICAgICAgICBULmZEdHJhblthXSA9IHV4OworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIGZsYWdBY2NlcHRpbmdTdGF0ZXMgICAgSWRlbnRpZnkgYWNjZXB0aW5nIHN0YXRlcy4KKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgRmlyc3QgZ2V0IGEgbGlzdCBvZiBhbGwgb2YgdGhlIGVuZCBtYXJrZXIgbm9kZXMuCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFRoZW4sIGZvciBlYWNoIHN0YXRlIHMsCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzIGNvbnRhaW5zIG9uZSBvZiB0aGUgZW5kIG1hcmtlciBub2RlcyBpbiBpdHMgbGlzdCBvZiB0cmVlIHBvc2l0aW9ucyB0aGVuCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyBpcyBhbiBhY2NlcHRpbmcgc3RhdGUuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgdm9pZCAgICAgZmxhZ0FjY2VwdGluZ1N0YXRlcygpIHsKKyAgICAgICAgICAgTGlzdCAgICAgICAgZW5kTWFya2VyTm9kZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgIFJCQklOb2RlICAgIGVuZE1hcmtlcjsKKyAgICAgICAgICAgaW50ICAgICBpOworICAgICAgICAgICBpbnQgICAgIG47CisKKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZmluZE5vZGVzKGVuZE1hcmtlck5vZGVzLCBSQkJJTm9kZS5lbmRNYXJrKTsKKworICAgICAgICAgICBmb3IgKGk9MDsgaTxlbmRNYXJrZXJOb2Rlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgZW5kTWFya2VyID0gKFJCQklOb2RlKWVuZE1hcmtlck5vZGVzLmdldChpKTsKKyAgICAgICAgICAgICAgIGZvciAobj0wOyBuPGZEU3RhdGVzLnNpemUoKTsgbisrKSB7CisgICAgICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBzZCA9IChSQkJJU3RhdGVEZXNjcmlwdG9yIClmRFN0YXRlcy5nZXQobik7CisgICAgICAgICAgICAgICAgICAgLy9pZiAoc2QuZlBvc2l0aW9ucy5pbmRleE9mKGVuZE1hcmtlcikgPj0gMCkgeworICAgICAgICAgICAgICAgICAgIGlmIChzZC5mUG9zaXRpb25zLmNvbnRhaW5zKGVuZE1hcmtlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gQW55IG5vbi16ZXJvIHZhbHVlIGZvciBmQWNjZXB0aW5nIG1lYW5zIHRoaXMgaXMgYW4gYWNjZXB0aW5nIG5vZGUuCisgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBpcyB3aGF0IHdpbGwgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIgYXMgdGhlIGJyZWFrIHN0YXR1cy4KKyAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm8gb3RoZXIgdmFsdWUgd2FzIHNwZWNpZmllZCwgZm9yY2UgaXQgdG8gLTEuCisKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNkLmZBY2NlcHRpbmc9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXRlIGhhc24ndCBiZWVuIG1hcmtlZCBhcyBhY2NlcHRpbmcgeWV0LiAgRG8gaXQgbm93LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2QuZkFjY2VwdGluZyA9IGVuZE1hcmtlci5mVmFsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNkLmZBY2NlcHRpbmcgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkLmZBY2NlcHRpbmcgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2QuZkFjY2VwdGluZz09LTEgJiYgZW5kTWFya2VyLmZWYWwgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQm90aCBsb29rYWhlYWQgYW5kIG5vbi1sb29rYWhlYWQgYWNjZXB0aW5nIGZvciB0aGlzIHN0YXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmF2b3IgdGhlIGxvb2stYWhlYWQuICBFeHBlZGllbnQgZm9yIGxpbmUgYnJlYWsuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAgbmVlZCBhIG1vcmUgZWxlZ2FudCByZXNvbHV0aW9uIGZvciBjb25mbGljdGluZyBydWxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNkLmZBY2NlcHRpbmcgPSBlbmRNYXJrZXIuZlZhbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGljaXQgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHNkLmZBY2NlcHRpbmcgYWxyZWFkeSBoYWQgYSB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgLTEsIGxlYXZlIGl0IGJlLgorCisgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbmQgbWFya2VyIG5vZGUgaXMgZnJvbSBhIGxvb2stYWhlYWQgcnVsZSwgc2V0CisgICAgICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIGZMb29rQWhlYWQgZmllbGQgb3IgdGhpcyBzdGF0ZSBhbHNvLgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kTWFya2VyLmZMb29rQWhlYWRFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICBkb24ndCBjaGFuZ2UgdmFsdWUgaWYgYWxyZWFkeSBzZXQ/CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAgYWxsb3cgZm9yIG1vcmUgdGhhbiBvbmUgYWN0aXZlIGxvb2stYWhlYWQgcnVsZSBpbiBlbmdpbmUuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgTWFrZSB2YWx1ZSBoZXJlIGFuIGluZGV4IHRvIGEgc2lkZSBhcnJheSBpbiBlbmdpbmU/CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZC5mTG9va0FoZWFkID0gc2QuZkFjY2VwdGluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICAgZmxhZ0xvb2tBaGVhZFN0YXRlcyAgIFZlcnkgc2ltaWxhciB0byBmbGFnQWNjZXB0aW5nU3RhdGVzLCBhYm92ZS4KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2b2lkICAgICBmbGFnTG9va0FoZWFkU3RhdGVzKCkgeworICAgICAgICAgICBMaXN0ICAgICAgICBsb29rQWhlYWROb2RlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgUkJCSU5vZGUgICAgbG9va0FoZWFkTm9kZTsKKyAgICAgICAgICAgaW50ICAgICBpOworICAgICAgICAgICBpbnQgICAgIG47CisKKyAgICAgICAgICAgZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0uZmluZE5vZGVzKGxvb2tBaGVhZE5vZGVzLCBSQkJJTm9kZS5sb29rQWhlYWQpOworICAgICAgICAgICBmb3IgKGk9MDsgaTxsb29rQWhlYWROb2Rlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgbG9va0FoZWFkTm9kZSA9IChSQkJJTm9kZSApbG9va0FoZWFkTm9kZXMuZ2V0KGkpOworCisgICAgICAgICAgICAgICBmb3IgKG49MDsgbjxmRFN0YXRlcy5zaXplKCk7IG4rKykgeworICAgICAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3Igc2QgPSAoUkJCSVN0YXRlRGVzY3JpcHRvciApZkRTdGF0ZXMuZ2V0KG4pOworICAgICAgICAgICAgICAgICAgIGlmIChzZC5mUG9zaXRpb25zLmNvbnRhaW5zKGxvb2tBaGVhZE5vZGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHNkLmZMb29rQWhlYWQgPSBsb29rQWhlYWROb2RlLmZWYWw7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgfQorCisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICAgZmxhZ1RhZ2dlZFN0YXRlcworICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZvaWQgICAgIGZsYWdUYWdnZWRTdGF0ZXMoKSB7CisgICAgICAgICAgIExpc3QgICAgICAgIHRhZ05vZGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICBSQkJJTm9kZSAgICB0YWdOb2RlOworICAgICAgICAgICBpbnQgICAgIGk7CisgICAgICAgICAgIGludCAgICAgbjsKKworICAgICAgICAgICBmUkIuZlRyZWVSb290c1tmUm9vdEl4XS5maW5kTm9kZXModGFnTm9kZXMsIFJCQklOb2RlLnRhZyk7CisgICAgICAgICAgIGZvciAoaT0wOyBpPHRhZ05vZGVzLnNpemUoKTsgaSsrKSB7ICAgICAgICAgICAgICAgICAgIC8vIEZvciBlYWNoIHRhZyBub2RlIHQgKGFsbCBvZiAnZW0pCisgICAgICAgICAgICAgICB0YWdOb2RlID0gKFJCQklOb2RlICl0YWdOb2Rlcy5nZXQoaSk7CisKKyAgICAgICAgICAgICAgIGZvciAobj0wOyBuPGZEU3RhdGVzLnNpemUoKTsgbisrKSB7ICAgICAgICAgICAgICAvLyAgICBGb3IgZWFjaCBzdGF0ZSAgcyAocm93IGluIHRoZSBzdGF0ZSB0YWJsZSkKKyAgICAgICAgICAgICAgICAgICBSQkJJU3RhdGVEZXNjcmlwdG9yIHNkID0gKFJCQklTdGF0ZURlc2NyaXB0b3IgKWZEU3RhdGVzLmdldChuKTsKKyAgICAgICAgICAgICAgICAgICBpZiAoc2QuZlBvc2l0aW9ucy5jb250YWlucyh0YWdOb2RlKSkgeyAgICAgICAvLyAgICAgICBpZiAgcyBpbmNsdWRlIHRoZSB0YWcgbm9kZSB0CisgICAgICAgICAgICAgICAgICAgICAgIHNkLmZUYWdWYWxzLmFkZChuZXcgSW50ZWdlcih0YWdOb2RlLmZWYWwpKTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gIG1lcmdlUnVsZVN0YXR1c1ZhbHMKKyAgICAgICAvLworICAgICAgIC8vICAgICAgQWxsb2NhdGUgcG9zaXRpb25zIGluIHRoZSAgZ2xvYmFsIGFycmF5IG9mIHJ1bGUgc3RhdHVzIHt0YWd9IHZhbHVlcworICAgICAgIC8vCisgICAgICAgLy8gICAgICBUaGUgUkJCSSBydW50aW1lIHVzZXMgYW4gYXJyYXkgb2Yge3NldHMgb2Ygc3RhdHVzIHZhbHVlc30gdGhhdCBjYW4KKyAgICAgICAvLyAgICAgIGJlIHJldHVybmVkIGZvciBib3VuZGFyaWVzLiAgRWFjaCBhY2NlcHRpbmcgc3RhdGUgdGhhdCBoYXMgbm9uLXplcm8KKyAgICAgICAvLyAgICAgIHN0YXR1cyBpbmNsdWRlcyBhbiBpbmRleCBpbnRvIHRoaXMgYXJyYXkuICBUaGUgZm9ybWF0IG9mIHRoZSBhcnJheQorICAgICAgIC8vICAgICAgaXMgCisgICAgICAgLy8gICAgICAgICAgIE51bSBvZiBzdGF0dXMgdmFsdWVzIGluIGdyb3VwIDEKKyAgICAgICAvLyAgICAgICAgICAgICAgc3RhdHVzIHZhbAorICAgICAgIC8vICAgICAgICAgICAgICBzdGF0dXMgdmFsCisgICAgICAgLy8gICAgICAgICAgICAgIC4uLgorICAgICAgIC8vICAgICAgICAgICBOdW0gb2Ygc3RhdHVzIHZhbHMgaW4gZ3JvdXAgMgorICAgICAgIC8vICAgICAgICAgICAgICBzdGF0dXMgdmFsCisgICAgICAgLy8gICAgICAgICAgICAgIHN0YXR1cyB2YWwKKyAgICAgICAvLyAgICAgICAgICAgICAgLi4uCisgICAgICAgLy8gICAgICAgICAgIGV0Yy4KKyAgICAgICAvLworICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHZvaWQgIG1lcmdlUnVsZVN0YXR1c1ZhbHMoKSB7CisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vICBUaGUgYmFzaWMgb3V0bGluZSBvZiB3aGF0IGhhcHBlbnMgaGVyZSBpcyB0aGlzLi4uCisgICAgICAgICAgIC8vCisgICAgICAgICAgIC8vICAgIGZvciBlYWNoIHN0YXRlIGluIHRoaXMgc3RhdGUgdGFibGUKKyAgICAgICAgICAgLy8gICAgICAgaWYgdGhlIHN0YXR1cyB0YWcgbGlzdCBmb3IgdGhpcyBzdGF0ZSBpcyBpbiB0aGUgZ2xvYmFsIHN0YXR1c2VzIGxpc3QKKyAgICAgICAgICAgLy8gICAgICAgICAgIHJlY29yZCB3aGVyZSBhbmQKKyAgICAgICAgICAgLy8gICAgICAgICAgIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgc3RhdGUKKyAgICAgICAgICAgLy8gICAgICAgZWxzZQorICAgICAgICAgICAvLyAgICAgICAgICAgYWRkIHRoZSB0YWcgbGlzdCBmb3IgdGhpcyBzdGF0ZSB0byB0aGUgZ2xvYmFsIGxpc3QuCisgICAgICAgICAgIC8vCisgICAgICAgICAgIGludCBpOworICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgCisgICAgICAgICAgIC8vIFByZS1sb2FkIGEgc2luZ2xlIHRhZyBvZiB7MH0gaW50byB0aGUgdGFibGUuCisgICAgICAgICAgIC8vICAgV2Ugd2lsbCBuZWVkIHRoaXMgYXMgYSBkZWZhdWx0LCBmb3IgcnVsZSBzZXRzIHdpdGggbm8gZXhwbGljaXQgdGFnZ2luZywKKyAgICAgICAgICAgLy8gICBvciB3aXRoIGV4cGxpY2l0IHRhZ2dpbmcgb2YgezB9LgorICAgICAgICAgICBpZiAoZlJCLmZSdWxlU3RhdHVzVmFscy5zaXplKCkgPT0gMCkgeyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBmUkIuZlJ1bGVTdGF0dXNWYWxzLmFkZChuZXcgSW50ZWdlcigxKSk7ICAgIC8vIE51bSBvZiBzdGF0dXNlcyBpbiBncm91cAorICAgICAgICAgICAgICAgZlJCLmZSdWxlU3RhdHVzVmFscy5hZGQobmV3IEludGVnZXIoMCkpOyAgICAvLyAgIGFuZCBvdXIgc2luZ2xlIHN0YXR1cyBvZiB6ZXJvCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIFNvcnRlZFNldCBzMCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICAgICBJbnRlZ2VyIGl6ZXJvID0gbmV3IEludGVnZXIoMCk7CisgICAgICAgICAgICAgICBmUkIuZlN0YXR1c1NldHMucHV0KHMwLCBpemVybyk7CisgICAgICAgICAgICAgICBTb3J0ZWRTZXQgczEgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgczEuYWRkKGl6ZXJvKTsKKyAgICAgICAgICAgICAgIGZSQi5mU3RhdHVzU2V0cy5wdXQoczAsIGl6ZXJvKTsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIC8vICAgIEZvciBlYWNoIHN0YXRlLCBjaGVjayB3aGV0aGVyIHRoZSBzdGF0ZSdzIHN0YXR1cyB0YWcgdmFsdWVzIGFyZQorICAgICAgICAgICAvLyAgICAgICBhbHJlYWR5IGVudGVyZWQgaW50byB0aGUgc3RhdHVzIHZhbHVlcyBhcnJheSwgYW5kIGFkZCB0aGVtIGlmIG5vdC4KKyAgICAgICAgICAgZm9yIChuPTA7IG48ZkRTdGF0ZXMuc2l6ZSgpOyBuKyspIHsKKyAgICAgICAgICAgICAgIFJCQklTdGF0ZURlc2NyaXB0b3Igc2QgPSAoUkJCSVN0YXRlRGVzY3JpcHRvciApZkRTdGF0ZXMuZ2V0KG4pOworICAgICAgICAgICAgICAgU2V0IHN0YXR1c1ZhbHMgPSBzZC5mVGFnVmFsczsKKyAgICAgICAgICAgICAgIEludGVnZXIgYXJyYXlJbmRleEkgPSAoSW50ZWdlcilmUkIuZlN0YXR1c1NldHMuZ2V0KHN0YXR1c1ZhbHMpOworICAgICAgICAgICAgICAgaWYgKGFycmF5SW5kZXhJID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBlbmNvdW50ZXIgb2YgdGhpcyBzZXQgb2Ygc3RhdHVzIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAvLyAgIEFkZCB0aGVtIHRvIHRoZSBzdGF0dXNTZXRzIG1hcCwgVGhpcyBtYXAgYXNzb2NpYXRlcworICAgICAgICAgICAgICAgICAgIC8vICAgdGhlIHNldCBvZiBzdGF0dXMgdmFsdWVzIHdpdGggYW4gaW5kZXggaW4gdGhlIHJ1bnRpbWUgc3RhdHVzIAorICAgICAgICAgICAgICAgICAgIC8vICAgdmFsdWVzIGFycmF5LgorICAgICAgICAgICAgICAgICAgIGFycmF5SW5kZXhJID0gbmV3IEludGVnZXIoZlJCLmZSdWxlU3RhdHVzVmFscy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgIGZSQi5mU3RhdHVzU2V0cy5wdXQoc3RhdHVzVmFscywgYXJyYXlJbmRleEkpOworICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgbmV3IHNldCBvZiBzdGF0dXMgdmFsdWVzIHRvIHRoZSB2ZWN0b3Igb2YgdmFsdWVzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAvLyAgIHdpbGwgZXZlbnR1YWxseSBiZWNvbWUgdGhlIGFycmF5IHVzZWQgYnkgdGhlIHJ1bnRpbWUgZW5naW5lLgorICAgICAgICAgICAgICAgICAgIGZSQi5mUnVsZVN0YXR1c1ZhbHMuYWRkKG5ldyBJbnRlZ2VyKHN0YXR1c1ZhbHMuc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdGF0dXNWYWxzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICBmUkIuZlJ1bGVTdGF0dXNWYWxzLmFkZChpdC5uZXh0KCkpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAvLyBTYXZlIHRoZSBydW50aW1lIGFycmF5IGluZGV4IGJhY2sgaW50byB0aGUgc3RhdGUgZGVzY3JpcHRvci4KKyAgICAgICAgICAgICAgIHNkLmZUYWdzSWR4ID0gYXJyYXlJbmRleEkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgfSAgICAgICAgICAKKyAgICAgICB9CisKKworCisKKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgcHJpbnRQb3NTZXRzICAgRGVidWcgZnVuY3Rpb24uICBEdW1wIE51bGxhYmxlLCBmaXJzdHBvcywgbGFzdHBvcyBhbmQgZm9sbG93cG9zCisgICAgICAgLy8gICAgICAgICAgICAgICAgIGZvciBlYWNoIG5vZGUgaW4gdGhlIHRyZWUuCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgdm9pZCBwcmludFBvc1NldHMoUkJCSU5vZGUgbikgeworICAgICAgICAgICBpZiAobj09bnVsbCkgeworICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICB9CisgICAgICAgICAgIFJCQklOb2RlLnByaW50Tm9kZShuKTsKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgTnVsbGFibGU6ICAiICsgbi5mTnVsbGFibGUpOworCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgICAgIGZpcnN0cG9zOiAgIik7CisgICAgICAgICAgIHByaW50U2V0KG4uZkZpcnN0UG9zU2V0KTsKKworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICBsYXN0cG9zOiAgICIpOworICAgICAgICAgICBwcmludFNldChuLmZMYXN0UG9zU2V0KTsKKworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICBmb2xsb3dwb3M6ICIpOworICAgICAgICAgICBwcmludFNldChuLmZGb2xsb3dQb3MpOworCisgICAgICAgICAgIHByaW50UG9zU2V0cyhuLmZMZWZ0Q2hpbGQpOworICAgICAgICAgICBwcmludFBvc1NldHMobi5mUmlnaHRDaGlsZCk7CisgICAgICAgfQorICAgICAgIAorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgZ2V0VGFibGVTaXplKCkgICAgQ2FsY3VsYXRlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBydW50aW1lIGZvcm0gb2YgdGhpcworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4KKyAgICAgICAvLworICAgICAgIC8vICAgICAgICAgIE5vdGU6ICBSZWZlciB0byBjb21tb24vcmJiaWRhdGEuaCBmcm9tIElDVTRDIGZvciB0aGUgZGVjbGFyYXRpb25zCisgICAgICAgLy8gICAgICAgICAgICAgICAgIG9mIHRoZSBzdHJ1Y3R1cmVzIGJlaW5nIG1hdGNoZWQgYnkgdGhpcyBjYWxjdWxhdGlvbi4KKyAgICAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBpbnQgIGdldFRhYmxlU2l6ZSgpICB7CisgICAgICAgICAgIGludCAgICBzaXplID0gMDsKKyAgICAgICAgICAgaW50ICAgIG51bVJvd3M7CisgICAgICAgICAgIGludCAgICBudW1Db2xzOworICAgICAgICAgICBpbnQgICAgcm93U2l6ZTsKKworICAgICAgICAgICBpZiAoZlJCLmZUcmVlUm9vdHNbZlJvb3RJeF0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgIH0KKworICAgICAgICAgICBzaXplICAgID0gLypzaXplb2YoUkJCSVN0YXRlVGFibGUpIC0gNCAqLyAxNjsgICAgLy8gVGhlIGhlYWRlciwgd2l0aCBubyByb3dzIHRvIHRoZSB0YWJsZS4KKworICAgICAgICAgICBudW1Sb3dzID0gZkRTdGF0ZXMuc2l6ZSgpOworICAgICAgICAgICBudW1Db2xzID0gZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCk7CisKKyAgICAgICAgICAgLy8gIE5vdGUgIFRoZSBkZWNsYXJhdGlvbiBvZiBSQkJJU3RhdGVUYWJsZVJvdyBpcyBmb3IgYSB0YWJsZSBvZiB0d28gY29sdW1ucy4KKyAgICAgICAgICAgLy8gICAgICAgIFRoZXJlZm9yZSB3ZSBzdWJ0cmFjdCB0d28gZnJvbSBudW1Db2xzIHdoZW4gZGV0ZXJtaW5pbmcKKyAgICAgICAgICAgLy8gICAgICAgIGhvdyBtdWNoIHN0b3JhZ2UgdG8gYWRkIHRvIGEgcm93IGZvciB0aGUgdG90YWwgY29sdW1ucy4KKyAgICAgICAgICAgLy8gcm93U2l6ZSA9IHNpemVvZihSQkJJU3RhdGVUYWJsZVJvdykgKyBzaXplb2YodWludDE2X3QpKihudW1Db2xzLTIpOworICAgICAgICAgICByb3dTaXplID0gOCArIDIqbnVtQ29sczsKKyAgICAgICAgICAgc2l6ZSAgICs9IG51bVJvd3MgKiByb3dTaXplOworICAgICAgICAgICB3aGlsZSAoc2l6ZSAlIDggPiAwKSB7ICAgIC8vIFNpemUgbXVzdCBiZSBtdWx0aXBsZSBvZiA4IGJ5dGVzIGluIHNpemUuCisgICAgICAgICAgICAgICBzaXplKys7CisgICAgICAgICAgIH0KKworICAgICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICAgICB9CisKKworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vCisgICAgICAgLy8gICBleHBvcnRUYWJsZSgpICAgIGV4cG9ydCB0aGUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZSBpbiB0aGUgSUNVNEMgZm9ybWF0LgorICAgICAgIC8vCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIE1vc3Qgb2YgdGhlIHRhYmxlIGlzIDE2IGJpdCBzaG9ydHMuICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMKKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgdGhlIHdob2xlIHRoaW5nIGFzIGFuIGFycmF5IG9mIHNob3J0cy4KKyAgICAgICAvLworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgYXJyYXkgbXVzdCBiZSByb3VuZGVkIHVwIHRvIGEgbXVsdGlwbGUgb2YKKyAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgOCBieXRlcy4KKyAgICAgICAvLworICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBTZWUgc3RydWN0IFJCQklTdGF0ZVRhYmxlIGluIElDVTRDLCBjb21tb24vcmJiaWRhdGEuaAorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHNob3J0IFtdIGV4cG9ydFRhYmxlKCkgeworICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgc3RhdGU7CisgICAgICAgICAgIGludCAgICAgICAgICAgICAgICBjb2w7CisKKyAgICAgICAgICAgaWYgKGZSQi5mVHJlZVJvb3RzW2ZSb290SXhdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgIHJldHVybiBuZXcgc2hvcnRbMF07CisgICAgICAgICAgIH0KKworICAgICAgICAgICBBc3NlcnQuYXNzcnQoZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCkgPCAweDdmZmYgJiYKKyAgICAgICAgICAgICAgIGZEU3RhdGVzLnNpemUoKSA8IDB4N2ZmZik7IAorCisgICAgICAgICAgIGludCBudW1TdGF0ZXMgPSBmRFN0YXRlcy5zaXplKCk7CisgICAgCisgICAgICAgICAgIC8vIFNpemUgb2YgdGFibGUgc2l6ZSBpbiBzaG9ydHMuCisgICAgICAgICAgIC8vICB0aGUgIjQiIGlzIHRoZSBzaXplIG9mIHN0cnVjdCBSQkJJU3RhdGVUYWJsZVJvdywgdGhlIHJvdyBoZWFkZXIgcGFydCBvbmx5LgorICAgICAgICAgICBpbnQgcm93TGVuID0gNCArIGZSQi5mU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpOworICAgICAgICAgICBpbnQgdGFibGVTaXplID0gZ2V0VGFibGVTaXplKCkgLyAyOworCisgICAgICAgICAgIAorICAgICAgICAgICBzaG9ydCBbXSB0YWJsZSA9IG5ldyBzaG9ydFt0YWJsZVNpemVdOworICAgICAgICAgICAKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gRmlsbCBpbiB0aGUgaGVhZGVyIGZpZWxkcy4KKyAgICAgICAgICAgLy8gICAgICBBbm5veWluZyBiZWNhdXNlIHRoZXkgcmVhbGx5IHdhbnQgdG8gYmUgaW50cywgbm90IHNob3J0cy4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gUkJCSVN0YXRlVGFibGUuZk51bVN0YXRlcworICAgICAgICAgICB0YWJsZVtSQkJJRGF0YVdyYXBwZXIuTlVNU1RBVEVTXSAgID0gKHNob3J0KShudW1TdGF0ZXMgPj4+IDE2KTsKKyAgICAgICAgICAgdGFibGVbUkJCSURhdGFXcmFwcGVyLk5VTVNUQVRFUysxXSA9IChzaG9ydCkobnVtU3RhdGVzICYgMHgwMDAwZmZmZik7CisKKyAgICAgICAgICAgLy8gUkJCSVN0YXRlVGFibGUuZlJvd0xlbgorICAgICAgICAgICB0YWJsZVtSQkJJRGF0YVdyYXBwZXIuUk9XTEVOXSAgID0gKHNob3J0KShyb3dMZW4gPj4+IDE2KTsKKyAgICAgICAgICAgdGFibGVbUkJCSURhdGFXcmFwcGVyLlJPV0xFTisxXSA9IChzaG9ydCkocm93TGVuICYgMHgwMDAwZmZmZik7CisgICAgICAgICAgIAorICAgICAgICAgICAvLyBSQkJJU3RhdGVUYWJsZS5mRmxhZ3MKKyAgICAgICAgICAgaW50IGZsYWdzID0gMDsKKyAgICAgICAgICAgaWYgKGZSQi5mTG9va0FoZWFkSGFyZEJyZWFrKSB7CisgICAgICAgICAgICAgICBmbGFncyAgfD0gUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUs7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKGZSQi5mU2V0QnVpbGRlci5zYXdCT0YoKSkgeworICAgICAgICAgICAgICAgZmxhZ3MgIHw9IFJCQklEYXRhV3JhcHBlci5SQkJJX0JPRl9SRVFVSVJFRDsKKyAgICAgICAgICAgfQorICAgICAgICAgICB0YWJsZVtSQkJJRGF0YVdyYXBwZXIuRkxBR1NdICAgPSAoc2hvcnQpKGZsYWdzID4+PiAxNik7CisgICAgICAgICAgIHRhYmxlW1JCQklEYXRhV3JhcHBlci5GTEFHUysxXSA9IChzaG9ydCkoZmxhZ3MgJiAweDAwMDBmZmZmKTsKKyAgICAgICAgICAgCisgICAgICAgICAgIGludCBudW1DaGFyQ2F0ZWdvcmllcyA9IGZSQi5mU2V0QnVpbGRlci5nZXROdW1DaGFyQ2F0ZWdvcmllcygpOworICAgICAgICAgICBmb3IgKHN0YXRlPTA7IHN0YXRlPG51bVN0YXRlczsgc3RhdGUrKykgeworICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBzZCA9IChSQkJJU3RhdGVEZXNjcmlwdG9yIClmRFN0YXRlcy5nZXQoc3RhdGUpOworICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgIHJvdyA9IDggKyBzdGF0ZSpyb3dMZW47CisgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQgKC0zMjc2OCA8IHNkLmZBY2NlcHRpbmcgJiYgc2QuZkFjY2VwdGluZyA8PSAzMjc2Nyk7CisgICAgICAgICAgICAgICBBc3NlcnQuYXNzcnQgKC0zMjc2OCA8IHNkLmZMb29rQWhlYWQgJiYgc2QuZkxvb2tBaGVhZCA8PSAzMjc2Nyk7CisgICAgICAgICAgICAgICB0YWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9IChzaG9ydClzZC5mQWNjZXB0aW5nOworICAgICAgICAgICAgICAgdGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkxPT0tBSEVBRF0gPSAoc2hvcnQpc2QuZkxvb2tBaGVhZDsKKyAgICAgICAgICAgICAgIHRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5UQUdJRFhdICAgID0gKHNob3J0KXNkLmZUYWdzSWR4OworICAgICAgICAgICAgICAgZm9yIChjb2w9MDsgY29sPG51bUNoYXJDYXRlZ29yaWVzOyBjb2wrKykgeworICAgICAgICAgICAgICAgICAgIHRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY29sXSA9IChzaG9ydClzZC5mRHRyYW5bY29sXTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgICAgICByZXR1cm4gdGFibGU7CisgICAgICAgfQorCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgcHJpbnRTZXQgICAgRGVidWcgZnVuY3Rpb24uICAgUHJpbnQgdGhlIGNvbnRlbnRzIG9mIGEgc2V0IG9mIE5vZGVzCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgdm9pZCBwcmludFNldChDb2xsZWN0aW9uIHMpIHsKKyAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgIFJCQklOb2RlIG4gPSAoUkJCSU5vZGUpaXQubmV4dCgpOworICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQobi5mU2VyaWFsTnVtLCA4KTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICB9CisgICAgICAgCisKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLworICAgICAgIC8vICAgcHJpbnRTdGF0ZXMgICAgRGVidWcgRnVuY3Rpb24uICBEdW1wIHRoZSBmdWxseSBjb25zdHJ1Y3RlZCBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLgorICAgICAgIC8vCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIHZvaWQgcHJpbnRTdGF0ZXMoKSB7CisgICAgICAgICAgIGludCAgICAgYzsgICAgLy8gaW5wdXQgImNoYXJhY3RlciIKKyAgICAgICAgICAgaW50ICAgICBuOyAgICAvLyBzdGF0ZSBudW1iZXIKKworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJzdGF0ZSB8ICAgICAgICAgICBpIG4gcCB1IHQgICAgIHMgeSBtIGIgbyBsIHMgXG4iKTsKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgfCBBY2MgIExBICAgIFRhZyIpOworICAgICAgICAgICBmb3IgKGM9MDsgYzxmUkIuZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKTsgYysrKSB7CisgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludCgoaW50KWMsIDMpOworICAgICAgICAgICB9CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgIHwtLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgZm9yIChjPTA7IGM8ZlJCLmZTZXRCdWlsZGVyLmdldE51bUNoYXJDYXRlZ29yaWVzKCk7IGMrKykgeworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLS0tIik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4iKTsKKworICAgICAgICAgICBmb3IgKG49MDsgbjxmRFN0YXRlcy5zaXplKCk7IG4rKykgeworICAgICAgICAgICAgICAgUkJCSVN0YXRlRGVzY3JpcHRvciBzZCA9IChSQkJJU3RhdGVEZXNjcmlwdG9yKWZEU3RhdGVzLmdldChuKTsKKyAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KG4sIDUpOworICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIHwgIik7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KHNkLmZBY2NlcHRpbmcsIDMpOworICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQoc2QuZkxvb2tBaGVhZCwgNCk7CisgICAgICAgICAgICAgICBSQkJJTm9kZS5wcmludEludChzZC5mVGFnc0lkeCwgNik7CisgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIik7CisgICAgICAgICAgICAgICBmb3IgKGM9MDsgYzxmUkIuZlNldEJ1aWxkZXIuZ2V0TnVtQ2hhckNhdGVnb3JpZXMoKTsgYysrKSB7CisgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQoc2QuZkR0cmFuW2NdLCAzKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cbiIpOworICAgICAgIH0KKyAgICAgICAKKworCisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8KKyAgICAgICAvLyAgIHByaW50UnVsZVN0YXR1c1RhYmxlICAgIERlYnVnIEZ1bmN0aW9uLiAgRHVtcCB0aGUgY29tbW9uIHJ1bGUgc3RhdHVzIHRhYmxlCisgICAgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgdm9pZCBwcmludFJ1bGVTdGF0dXNUYWJsZSgpIHsKKyAgICAgICAgICAgaW50ICB0aGlzUmVjb3JkID0gMDsKKyAgICAgICAgICAgaW50ICBuZXh0UmVjb3JkID0gMDsKKyAgICAgICAgICAgaW50ICAgICAgaTsKKyAgICAgICAgICAgTGlzdCAgdGJsID0gZlJCLmZSdWxlU3RhdHVzVmFsczsKKworICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJpbmRleCB8ICB0YWdzIFxuIik7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIi0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCisgICAgICAgICAgIHdoaWxlIChuZXh0UmVjb3JkIDwgdGJsLnNpemUoKSkgeworICAgICAgICAgICAgICAgdGhpc1JlY29yZCA9IG5leHRSZWNvcmQ7CisgICAgICAgICAgICAgICBuZXh0UmVjb3JkID0gdGhpc1JlY29yZCArICgoSW50ZWdlcil0YmwuZ2V0KHRoaXNSZWNvcmQpKS5pbnRWYWx1ZSgpICsgMTsKKyAgICAgICAgICAgICAgIFJCQklOb2RlLnByaW50SW50KHRoaXNSZWNvcmQsIDcpOworICAgICAgICAgICAgICAgZm9yIChpPXRoaXNSZWNvcmQrMTsgaTxuZXh0UmVjb3JkOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICBpbnQgdmFsID0gKChJbnRlZ2VyKXRibC5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgUkJCSU5vZGUucHJpbnRJbnQodmFsLCA3KTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuIik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cbiIpOworICAgICAgIH0KKyAgICAgICAKKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GQ2hpbmVzZVBvc3RQcm9jZXNzb3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZDaGluZXNlUG9zdFByb2Nlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxODU0Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GQ2hpbmVzZVBvc3RQcm9jZXNzb3IuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEEgcG9zdC1wcm9jZXNzb3IgZm9yIENoaW5lc2UgdGV4dC4KKyAqLworZmluYWwgY2xhc3MgUkJORkNoaW5lc2VQb3N0UHJvY2Vzc29yIGV4dGVuZHMgUkJORlBvc3RQcm9jZXNzb3IgeworICAgIHByaXZhdGUgTkZSdWxlU2V0IGxhc3RSdWxlU2V0OworICAgIHByaXZhdGUgYm9vbGVhbiBsb25nRm9ybTsKKyAgICBwcml2YXRlIGludCBmb3JtYXQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBydWxlc2V0TmFtZXMgPSB7CisgICAgICAgICIldHJhZGl0aW9uYWwiLCAiJXNpbXBsaWZpZWQiLCAiJWFjY291bnRpbmciLCAiJXRpbWUiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIHJvdXRpbmUgZm9yIHRoaXMgaW5zdGFuY2UsIGNhbGxlZCBvbmNlCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgZmlyc3QgY29uc3RydWN0aW9uIGFuZCBuZXZlciBhZ2Fpbi4gIAorICAgICAqLworICAgIHZvaWQgaW5pdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmcgcnVsZXMpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXb3JrIHJvdXRpbmUuICBQb3N0IHByb2Nlc3MgdGhlIG91dHB1dCwgd2hpY2ggd2FzIGdlbmVyYXRlZCBieSB0aGUKKyAgICAgKiBydWxlc2V0IHdpdGggdGhlIGdpdmVuIG5hbWUuCisgICAgICovCisgICAgdm9pZCBwcm9jZXNzKFN0cmluZ0J1ZmZlciBidWYsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgICAgIC8vIG1hcmtlcnMgZGVwZW5kIG9uIHdoYXQgcnVsZSBzZXQgd2UgYXJlIHVzaW5nCisKKyAgICAgICAgaWYgKHJ1bGVTZXQgIT0gbGFzdFJ1bGVTZXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcnVsZVNldC5nZXROYW1lKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzZXROYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChydWxlc2V0TmFtZXNbaV0uZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9IGk7CisgICAgICAgICAgICAgICAgICAgIGxvbmdGb3JtID0gaSA9PSAxIHx8IGkgPT0gMzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGxvbmdGb3JtKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwiKiIpOyBpICE9IC0xOyBpID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwgIioiLCBpKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5kZWxldGUoaSwgaSsxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZyBESUFOID0gIlx1OWVkZSI7IC8vIGRlY2ltYWwgcG9pbnQKKworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG1hcmtlcnMgPSB7CisgICAgICAgICAgICB7ICJcdTg0MmMiLCAiXHU1MTA0IiwgIlx1NTE0NiIsICJcdTMwMDciIH0sIC8vIG1hcmtlciBjaGFycywgbGFzdCBjaGFyIGlzIHRoZSAnemVybycKKyAgICAgICAgICAgIHsgIlx1NGUwNyIsICJcdTRlYmYiLCAiXHU1MTQ2IiwgIlx1MzAwNyIgfSwKKyAgICAgICAgICAgIHsgIlx1ODQyYyIsICJcdTUxMDQiLCAiXHU1MTQ2IiwgIlx1OTZmNiIgfQorICAgICAgICAgICAgLy8gbmVlZCBtYXJrZXJzIGZvciB0aW1lPworICAgICAgICB9OworCisgICAgICAgIC8vIHJlbW92ZSB1bndhbnRlZCBsaW5ncworICAgICAgICAvLyBhICcwJyAobGluZykgd2l0aCAqIG1pZ2h0IGJlIHJlbW92ZWQKKyAgICAgICAgLy8gbWFyayBvZmYgMTAsMDAwICdjaHVua3MnLCBtYXJrZXJzIGFyZSBaLCBZLCBXICh6aGFvLCB5aWksIGFuZCB3YW4pCisgICAgICAgIC8vIGFscmVhZHksIHdlIGF2b2lkIHR3byBsaW5ncyBpbiB0aGUgc2FtZSBjaHVuayAtLSBsaW5nIHdpdGhvdXQgKiB3aW5zCisgICAgICAgIC8vIG5vdywganVzdCBuZWVkICB0byBhdm9pZCBvcHRpb25hbCBsaW5ncyBpbiBhZGphY2VudCBjaHVua3MKKyAgICAgICAgLy8gcHJvY2VzcyByaWdodCB0byBsZWZ0CisKKyAgICAgICAgLy8gZGVjaXNpb24gbWF0cml4OgorICAgICAgICAvLyBzdGF0ZSwgc2l0dWF0aW9uCisgICAgICAgIC8vICAgICBzdGF0ZSAgICAgICAgIG5vbmUgICAgICAgb3B0LiAgICAgICAgICByZXEuCisgICAgICAgIC8vICAgICAtLS0tLSAgICAgICAgIC0tLS0gICAgICAgLS0tLSAgICAgICAgICAtLS0tCisgICAgICAgIC8vIG5vbmUgdG8gcmlnaHQgICAgIG5vbmUgICAgICAgb3B0LiAgICAgICAgICByZXEuICAKKyAgICAgICAgLy8gb3B0LiB0byByaWdodCAgICAgbm9uZSAgIGNsZWFyLCBub25lICBjbGVhciByaWdodCwgcmVxLgorICAgICAgICAvLyByZXEuIHRvIHJpZ2h0ICAgICBub25lICAgY2xlYXIsIG5vbmUgICAgICAgcmVxLgorCisgICAgICAgIC8vIG1hcmsgY2h1bmtzIHdpdGggJ3wnIGZvciBjb252ZW5pZW5jZQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdbXSBtID0gbWFya2Vyc1tmb3JtYXRdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtLmxlbmd0aC0xOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IFV0aWxpdHkuaW5kZXhPZihidWYsIG1baV0pOworICAgICAgICAgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQobittW2ldLmxlbmd0aCgpLCAnfCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCB4ID0gVXRpbGl0eS5pbmRleE9mKGJ1ZiwgRElBTik7CisgICAgICAgIGlmICh4ID09IC0xKSB7CisgICAgICAgICAgICB4ID0gYnVmLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGludCBzID0gMDsgLy8gMCA9IG5vbmUgdG8gcmlnaHQsIDEgPSBvcHQuIHRvIHJpZ2h0LCAyID0gcmVxLiB0byByaWdodAorICAgICAgICBpbnQgbiA9IC0xOyAvLyBwcmV2aW91cyBvcHRpb25hbCBsaW5nCisgICAgICAgIFN0cmluZyBsaW5nID0gbWFya2Vyc1tmb3JtYXRdWzNdOworICAgICAgICB3aGlsZSAoeCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbSA9IFV0aWxpdHkubGFzdEluZGV4T2YoYnVmLCAifCIsIHgpOworICAgICAgICAgICAgaW50IG5uID0gVXRpbGl0eS5sYXN0SW5kZXhPZihidWYsIGxpbmcsIHgpOworICAgICAgICAgICAgaW50IG5zID0gMDsKKyAgICAgICAgICAgIGlmIChubiA+IG0pIHsKKyAgICAgICAgICAgICAgICBucyA9IChubiA+IDAgJiYgYnVmLmNoYXJBdChubi0xKSAhPSAnKicpID8gMiA6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4ID0gbSAtIDE7CisKKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IG11Y2ggc2ltcGxlciwgYnV0IGxlYXZlIHRoaXMgdmVyYm9zZSBmb3Igbm93IHNvIGl0J3MgZWFzaWVyIHRvIGZvbGxvdworICAgICAgICAgICAgc3dpdGNoIChzKjMrbnMpIHsKKyAgICAgICAgICAgIGNhc2UgMDogLyogbm9uZSwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsgLy8gcmVkdW5kYW50CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOiAvKiBub25lLCBvcHQuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSBubjsgLy8gcmVtZW1iZXIgb3B0aW9uYWwgbGluZyB0byByaWdodAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOiAvKiBub25lLCByZXEuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzogLyogb3B0Liwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDQ6IC8qIG9wdC4sIG9wdC4gKi8KKyAgICAgICAgICAgICAgICBidWYuZGVsZXRlKG5uLTEsIG5uK2xpbmcubGVuZ3RoKCkpOyAvLyBkZWxldGUgY3VycmVudCBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IDA7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OiAvKiBvcHQuLCByZXEuICovCisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShuLTEsIG4rbGluZy5sZW5ndGgoKSk7IC8vIGRlbGV0ZSBwcmV2aW91cyBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNjogLyogcmVxLiwgbm9uZSAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDc6IC8qIHJlcS4sIG9wdC4gKi8KKyAgICAgICAgICAgICAgICBidWYuZGVsZXRlKG5uLTEsIG5uK2xpbmcubGVuZ3RoKCkpOyAvLyBkZWxldGUgY3VycmVudCBvcHRpb25hbCBsaW5nCisgICAgICAgICAgICAgICAgcyA9IDA7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA4OiAvKiByZXEuLCByZXEuICovCisgICAgICAgICAgICAgICAgcyA9IG5zOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaSA9IGJ1Zi5sZW5ndGgoKTsgLS1pID49IDA7KSB7CisgICAgICAgICAgICBjaGFyIGMgPSBidWYuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJyonIHx8IGMgPT0gJ3wnKSB7CisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShpLCBpKzEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORlBvc3RQcm9jZXNzb3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1YTYzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIFBvc3QgcHJvY2Vzc29yIGZvciBSQk5GIG91dHB1dC4KKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBSQk5GUG9zdFByb2Nlc3NvciB7CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6YXRpb24gcm91dGluZSBmb3IgdGhpcyBpbnN0YW5jZSwgY2FsbGVkIG9uY2UKKyAgICAgKiBpbW1lZGlhdGVseSBhZnRlciBmaXJzdCBjb25zdHJ1Y3Rpb24gYW5kIG5ldmVyIGFnYWluLgorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgdGhlIGZvcm1hdHRlciB0aGF0IHdpbGwgYmUgdXNpbmcgdGhpcyBwb3N0LXByb2Nlc3NvcgorICAgICAqIEBwYXJhbSB0aGUgc3BlY2lhbCBydWxlcyBmb3IgdGhpcyBwb3N0LXByb2Nlc29yCisgICAgICovCisgICAgdm9pZCBpbml0KFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsIFN0cmluZyBydWxlcykgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFdvcmsgcm91dGluZS4gIFBvc3QgcHJvY2VzcyB0aGUgb3V0cHV0LCB3aGljaCB3YXMgZ2VuZXJhdGVkIGJ5IHRoZQorICAgICAqIHJ1bGVzZXQgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKyAgICAgKiBAcGFyYW0gb3V0cHV0IHRoZSBvdXRwdXQgb2YgdGhlIG1haW4gUkJORiBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJ1bGVTZXQgdGhlIHJ1bGUgc2V0IG9yaWdpbmFsbHkgaW52b2tlZCB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0CisgICAgICovCisgICAgdm9pZCBwcm9jZXNzKFN0cmluZ0J1ZmZlciBvdXRwdXQsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmF3Q29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SYXdDb2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTViNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmF3Q29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSwxMDIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CeXRlQXJyYXlXcmFwcGVyOworCisvKioKKyAqIDxwPgorICogU2ltcGxlIGNsYXNzIHdyYXBwZXIgdG8gc3RvcmUgdGhlIGludGVybmFsIGJ5dGUgcmVwcmVzZW50YXRpb24gb2YgYSAKKyAqIENvbGxhdGlvbktleS4gVW5saWtlIHRoZSBDb2xsYXRpb25LZXksIHRoaXMgY2xhc3MgZG8gbm90IGNvbnRhaW4gaW5mb3JtYXRpb24gCisgKiBvbiB0aGUgc291cmNlIHN0cmluZyB0aGUgc29ydCBvcmRlciByZXByZXNlbnRzLiBSYXdDb2xsYXRpb25LZXkgaXMgbXV0YWJsZSAKKyAqIGFuZCB1c2VycyBjYW4gcmV1c2UgaXRzIG9iamVjdHMgd2l0aCB0aGUgbWV0aG9kIGluIAorICogUnVsZUJhc2VkQ29sbGF0b3IuZ2V0UmF3Q29sbGF0aW9uS2V5KC4uKS4KKyAqIDwvcD4KKyAqIDxwPgorICogUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9uIENvbGxhdGlvbktleSBmb3IgYSBkZXRhaWwgZGVzY3JpcHRpb24KKyAqIG9uIHRoZSBpbnRlcm5hbCBieXRlIHJlcHJlc2VudGF0aW9uLiBOb3RlIHRoZSBpbnRlcm5hbCBieXRlIHJlcHJlc2VudGF0aW9uIAorICogaXMgYWx3YXlzIG51bGwtdGVybWluYXRlZC4KKyAqIDwvcD4gCisgKiA8Y29kZT4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIFN0cmluZyBzdHJbXSA9IHsuLi4uLn07CisgKiBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICogUmF3Q29sbGF0aW9uS2V5IGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoMTI4KTsKKyAqIGZvciAoaW50IGkgPSAwOyBpICZsdDsgc3RyLmxlbmd0aDsgaSArKykgeworICogICAgIGNvbGxhdG9yLmdldFJhd0NvbGxhdGlvbktleShzdHJbaV0sIGtleSk7CisgKiAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGgga2V5LmJ5dGVzCisgKiB9CisgKiA8L2NvZGU+CisgKiA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENvbXBhcmlzb24gYmV0d2VlbiBSYXdDb2xsYXRpb25LZXlzIGNyZWF0ZWQgYnkgCisgKiBkaWZmZXJlbnQgQ29sbGF0b3JzIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cy4gIAorICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIENvbGxhdG9yLjwvcD4KKyAqIEBzdGFibGUgSUNVIDIuOAorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQHNlZSBDb2xsYXRpb25LZXkKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJhd0NvbGxhdGlvbktleSBleHRlbmRzIEJ5dGVBcnJheVdyYXBwZXIKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciwgaW50ZXJuYWwgYnl0ZSBhcnJheSBpcyBudWxsIGFuZCBpdHMgc2l6ZSBzZXQgdG8gMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KCkgCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJhd0NvbGxhdGlvbktleSBjcmVhdGVkIHdpdGggYW4gZW1wdHkgaW50ZXJuYWwgYnl0ZSBhcnJheSBvZiBsZW5ndGggCisgICAgICogY2FwYWNpdHkuIFNpemUgb2YgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBzZXQgdG8gMC4KKyAgICAgKiBAcGFyYW0gY2FwYWNpdHkgbGVuZ3RoIG9mIGludGVybmFsIGJ5dGUgYXJyYXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KGludCBjYXBhY2l0eSkgCisgICAgeworICAgICAgICBieXRlcyA9IG5ldyBieXRlW2NhcGFjaXR5XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSYXdDb2xsYXRpb25LZXkgY3JlYXRlZCwgYWRvcHRpbmcgYnl0ZXMgYXMgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkuCisgICAgICogU2l6ZSBvZiB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB3aWxsIGJlIHNldCB0byAwLgorICAgICAqIEBwYXJhbSBieXRlcyBieXRlIGFycmF5IHRvIGJlIGFkb3B0ZWQgYnkgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleShieXRlW10gYnl0ZXMpIAorICAgIHsKKyAgICAgICAgdGhpcy5ieXRlcyA9IGJ5dGVzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSYXdDb2xsYXRpb25LZXkgZnJvbSBhIGJ5dGUgYXJyYXkgYW5kIHNpemUuCisgICAgICogQHBhcmFtIGJ5dGVzVG9BZG9wdCB0aGUgYnl0ZSBhcnJheSB0byBhZG9wdAorICAgICAqIEBwYXJhbSBzaXplIHRoZSBsZW5ndGggb2YgdmFsaWQgZGF0YSBpbiB0aGUgYnl0ZSBhcnJheQorICAgICAqIEB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBieXRlc1RvQWRvcHQgPT0gbnVsbCBhbmQgc2l6ZSAhPSAwLCBvcgorICAgICAqIHNpemUgPCAwLCBvciBzaXplID4gYnl0ZXNUb0Fkb3B0Lmxlbmd0aC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5KGJ5dGVbXSBieXRlc1RvQWRvcHQsIGludCBzaXplKSAKKyAgICB7CisgICAgICAgIHN1cGVyKGJ5dGVzVG9BZG9wdCwgc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIFJhd0NvbGxhdGlvbktleSB0byBhbm90aGVyLCB3aGljaCBtdXN0IG5vdCBiZSBudWxsLiAgVGhpcyBvdmVycmlkZXMKKyAgICAgKiB0aGUgaW5oZXJpdGVkIGltcGxlbWVudGF0aW9uIHRvIGVuc3VyZSB0aGUgcmV0dXJuZWQgdmFsdWVzIGFyZSAtMSwgMCwgb3IgMS4KKyAgICAgKiBAcGFyYW0gcmhzIHRoZSBSYXdDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIC0xLCAwLCBvciAxIGFzIHRoaXMgY29tcGFyZXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IKKyAgICAgKiBncmVhdGVyIHRoYW4gcmhzLgorICAgICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIHRoZSBvdGhlciBvYmplY3QgaXMgbm90IGEgUmF3Q29sbGF0aW9uS2V5LgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHJocykgeworICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIuY29tcGFyZVRvKChSYXdDb2xsYXRpb25LZXkpcmhzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCA8IDAgPyAtMSA6IHJlc3VsdCA9PSAwID8gMCA6IDE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVtb3ZlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlbW92ZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2QwMjAwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlbW92ZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCByZW1vdmVzIGNoYXJhY3RlcnMuICBUaGlzIGlzIHVzZWZ1bCBpbiBjb25qdW5jdGlvbgorICogd2l0aCBhIGZpbHRlci4KKyAqLworY2xhc3MgUmVtb3ZlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBJRCBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgX0lEID0gIkFueS1SZW1vdmUiOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbW92ZVRyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJSZW1vdmUiLCAiTnVsbCIsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFJlbW92ZVRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICBzdXBlcihfSUQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4LCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIC8vIE91ciBjYWxsZXIgKGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSkgaGFzIGFscmVhZHkgbmFycm93ZWQgdXMKKyAgICAgICAgLy8gdG8gYW4gdW5maWx0ZXJlZCBydW4uICBEZWxldGUgaXQuCisgICAgICAgIHRleHQucmVwbGFjZShpbmRleC5zdGFydCwgaW5kZXgubGltaXQsICIiKTsKKyAgICAgICAgaW50IGxlbiA9IGluZGV4LmxpbWl0IC0gaW5kZXguc3RhcnQ7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCAtPSBsZW47CisgICAgICAgIGluZGV4LmxpbWl0IC09IGxlbjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YmYyNzQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YQpAQCAtMCwwICsxLDE4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gaXMgYW4gaW50ZXJmYWNlIHJlcHJlc2VudGluZyBhCisgKiBzdHJpbmcgb2YgY2hhcmFjdGVycyB0aGF0IHN1cHBvcnRzIHRoZSByZXBsYWNlbWVudCBvZiBhIHJhbmdlIG9mCisgKiBpdHNlbGYgd2l0aCBhIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycy4gIEl0IGlzIHVzZWQgYnkgQVBJcyB0aGF0CisgKiBjaGFuZ2UgYSBwaWVjZSBvZiB0ZXh0IHdoaWxlIHJldGFpbmluZyBtZXRhZGF0YS4gIE1ldGFkYXRhIGlzIGRhdGEKKyAqIG90aGVyIHRoYW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSBjaGFyMzJBdCgpLiAgT25lCisgKiBleGFtcGxlIG9mIG1ldGFkYXRhIGlzIHN0eWxlIGF0dHJpYnV0ZXM7IGFub3RoZXIgaXMgYW4gZWRpdAorICogaGlzdG9yeSwgbWFya2luZyBlYWNoIGNoYXJhY3RlciB3aXRoIGFuIGF1dGhvciBhbmQgcmV2aXNpb24gbnVtYmVyLgorICoKKyAqIDxwPkFuIGltcGxpY2l0IGFzcGVjdCBvZiB0aGUgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSSBpcyB0aGF0CisgKiBkdXJpbmcgYSByZXBsYWNlIG9wZXJhdGlvbiwgbmV3IGNoYXJhY3RlcnMgdGFrZSBvbiB0aGUgbWV0YWRhdGEgb2YKKyAqIHRoZSBvbGQgY2hhcmFjdGVycy4gIEZvciBleGFtcGxlLCBpZiB0aGUgc3RyaW5nICJ0aGUgPGI+Ym9sZDwvYj4KKyAqIGZvbnQiIGhhcyByYW5nZSAoNCwgOCkgcmVwbGFjZWQgd2l0aCAic3Ryb25nIiwgdGhlbiBpdCBiZWNvbWVzICJ0aGUKKyAqIDxiPnN0cm9uZzwvYj4gZm9udCIuCisgKgorICogPHA+PGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IHNwZWNpZmllcyByYW5nZXMgdXNpbmcgYSBzdGFydAorICogb2Zmc2V0IGFuZCBhIGxpbWl0IG9mZnNldC4gIFRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRodXMgc3BlY2lmaWVkCisgKiBpbmNsdWRlcyB0aGUgY2hhcmFjdGVycyBhdCBvZmZzZXQgc3RhcnQuLmxpbWl0LTEuICBUaGF0IGlzLCB0aGUKKyAqIHN0YXJ0IG9mZnNldCBpcyBpbmNsdXNpdmUsIGFuZCB0aGUgbGltaXQgb2Zmc2V0IGlzIGV4Y2x1c2l2ZS4KKyAqCisgKiA8cD48Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gYWxzbyBpbmNsdWRlcyBBUEkgdG8gYWNjZXNzIGNoYXJhY3RlcnMKKyAqIGluIHRoZSBzdHJpbmc6IDxjb2RlPmxlbmd0aCgpPC9jb2RlPiwgPGNvZGU+Y2hhckF0KCk8L2NvZGU+LAorICogPGNvZGU+Y2hhcjMyQXQoKTwvY29kZT4sIGFuZCA8Y29kZT5leHRyYWN0QmV0d2VlbigpPC9jb2RlPi4KKyAqCisgKiA8cD5Gb3IgYSBzdWJjbGFzcyB0byBzdXBwb3J0IG1ldGFkYXRhLCB0eXBpY2FsIGJlaGF2aW9yIG9mCisgKiA8Y29kZT5yZXBsYWNlKCk8L2NvZGU+IGlzIHRoZSBmb2xsb3dpbmc6CisgKiA8dWw+CisgKiAgIDxsaT5TZXQgdGhlIG1ldGFkYXRhIG9mIHRoZSBuZXcgdGV4dCB0byB0aGUgbWV0YWRhdGEgb2YgdGhlIGZpcnN0CisgKiAgIGNoYXJhY3RlciByZXBsYWNlZDwvbGk+CisgKiAgIDxsaT5JZiBubyBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCwgdXNlIHRoZSBtZXRhZGF0YSBvZiB0aGUKKyAqICAgcHJldmlvdXMgY2hhcmFjdGVyPC9saT4KKyAqICAgPGxpPklmIHRoZXJlIGlzIG5vIHByZXZpb3VzIGNoYXJhY3RlciAoaS5lLiBzdGFydCA9PSAwKSwgdXNlIHRoZQorICogICBmb2xsb3dpbmcgY2hhcmFjdGVyPC9saT4KKyAqICAgPGxpPklmIHRoZXJlIGlzIG5vIGZvbGxvd2luZyBjaGFyYWN0ZXIgKGkuZS4gdGhlIHJlcGxhY2VhYmxlIHdhcworICogICBlbXB0eSksIHVzZSBkZWZhdWx0IG1ldGFkYXRhPGJyPgorICogICA8bGk+SWYgdGhlIGNvZGUgcG9pbnQgVStGRkZGIGlzIHNlZW4sIGl0IHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcworICogICBhIHNwZWNpYWwgbWFya2VyIGhhdmluZyBubyBtZXRhZGF0YTxsaT4KKyAqICAgPC9saT4KKyAqIDwvdWw+CisgKiBJZiB0aGlzIGlzIG5vdCB0aGUgYmVoYXZpb3IsIHRoZSBzdWJjbGFzcyBzaG91bGQgZG9jdW1lbnQgYW55IGRpZmZlcmVuY2VzLgorICogCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGludGVyZmFjZSBSZXBsYWNlYWJsZSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8gCisgICAgaW50IGxlbmd0aCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgMTYtYml0IGNvZGUgdW5pdCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGludG8gdGhlIHRleHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDE2LWJpdCBjb2RlIHVuaXQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjaGFyIGNoYXJBdChpbnQgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIDMyLWJpdCBjb2RlIHBvaW50IGF0IHRoZSBnaXZlbiAxNi1iaXQgb2Zmc2V0IGludG8KKyAgICAgKiB0aGUgdGV4dC4gIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiAgSWYgdGhlIG9mZnNldCBvZiBhIGxlYWRpbmcgb3IKKyAgICAgKiB0cmFpbGluZyBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZQorICAgICAqIGNvZGUgcG9pbnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqCisgICAgICogPHA+TW9zdCBzdWJjbGFzc2VzIGNhbiByZXR1cm4KKyAgICAgKiA8Y29kZT5jb20uaWJtLmljdS50ZXh0LlVURjE2LmNoYXJBdCh0aGlzLCBvZmZzZXQpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA8Y29kZT5sZW5ndGgoKTwvY29kZT4tMQorICAgICAqIGluY2x1c2l2ZQorICAgICAqIEByZXR1cm4gMzItYml0IGNvZGUgcG9pbnQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgY2hhcmFjdGVycyBmcm9tIHRoaXMgb2JqZWN0IGludG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogY2hhcmFjdGVyIGFycmF5LiAgVGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5zcmNTdGFydDwvY29kZT47IHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQKKyAgICAgKiBpbmRleCA8Y29kZT5zcmNMaW1pdC0xPC9jb2RlPiAodGh1cyB0aGUgdG90YWwgbnVtYmVyIG9mCisgICAgICogY2hhcmFjdGVycyB0byBiZSBjb3BpZWQgaXMgPGNvZGU+c3JjTGltaXQtc3JjU3RhcnQ8L2NvZGU+KS4gVGhlCisgICAgICogY2hhcmFjdGVycyBhcmUgY29waWVkIGludG8gdGhlIHN1YmFycmF5IG9mIDxjb2RlPmRzdDwvY29kZT4KKyAgICAgKiBzdGFydGluZyBhdCBpbmRleCA8Y29kZT5kc3RTdGFydDwvY29kZT4gYW5kIGVuZGluZyBhdCBpbmRleAorICAgICAqIDxjb2RlPmRzdFN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIDE8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggdG8gY29weSwgaW5jbHVzaXZlOyA8Y29kZT4wCisgICAgICogPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZW5kaW5nIGluZGV4IHRvIGNvcHksIGV4Y2x1c2l2ZTsKKyAgICAgKiA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHBhcmFtIGRzdFN0YXJ0IHRoZSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqCisgICAgICogPHA+U3ViY2xhc3NlcyBtdXN0IGVuc3VyZSB0aGF0IGlmIHRoZSB0ZXh0IGJldHdlZW4gc3RhcnQgYW5kCisgICAgICogbGltaXQgaXMgZXF1YWwgdG8gdGhlIHJlcGxhY2VtZW50IHRleHQsIHRoYXQgcmVwbGFjZSBoYXMgbm8KKyAgICAgKiBlZmZlY3QuIFRoYXQgaXMsIGFueSBtZXRhZGF0YQorICAgICAqIHNob3VsZCBiZSB1bmFmZmVjdGVkLiBJbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBhcmUgZW5jb3VyYWdlZCB0bworICAgICAqIGNoZWNrIGZvciBpbml0aWFsIGFuZCB0cmFpbGluZyBpZGVudGljYWwgY2hhcmFjdGVycywgYW5kIG1ha2UgYQorICAgICAqIHNtYWxsZXIgcmVwbGFjZW1lbnQgaWYgcG9zc2libGUuIFRoaXMgd2lsbCBwcmVzZXJ2ZSBhcyBtdWNoCisgICAgICogbWV0YWRhdGEgYXMgcG9zc2libGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+CisgICAgICogdG8gPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpOworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbXVzdCBlbnN1cmUgdGhhdCBpZiB0aGUgdGV4dCBiZXR3ZWVuIHN0YXJ0IGFuZAorICAgICAqIGxpbWl0IGlzIGVxdWFsIHRvIHRoZSByZXBsYWNlbWVudCB0ZXh0LCB0aGF0IHJlcGxhY2UgaGFzIG5vCisgICAgICogZWZmZWN0LiBUaGF0IGlzLCBhbnkgbWV0YWRhdGEKKyAgICAgKiBzaG91bGQgYmUgdW5hZmZlY3RlZC4gSW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgYXJlIGVuY291cmFnZWQgdG8KKyAgICAgKiBjaGVjayBmb3IgaW5pdGlhbCBhbmQgdHJhaWxpbmcgaWRlbnRpY2FsIGNoYXJhY3RlcnMsIGFuZCBtYWtlIGEKKyAgICAgKiBzbWFsbGVyIHJlcGxhY2VtZW50IGlmIHBvc3NpYmxlLiBUaGlzIHdpbGwgcHJlc2VydmUgYXMgbXVjaAorICAgICAqIG1ldGFkYXRhIGFzIHBvc3NpYmxlLgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgKiB0byA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHBhcmFtIGNoYXJzU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCBpbnRvIDxjb2RlPmNoYXJzPC9jb2RlPiwKKyAgICAgKiBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFyc0xlbiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgPGNvZGU+Y2hhcnM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICBpbnQgY2hhcnNTdGFydCwgaW50IGNoYXJzTGVuKTsKKyAgICAvLyBOb3RlOiBXZSB1c2UgbGVuZ3RoIHJhdGhlciB0aGFuIGxpbWl0IHRvIGNvbmZvcm0gdG8gU3RyaW5nQnVmZmVyCisgICAgLy8gYW5kIFN5c3RlbS5hcnJheWNvcHkuCisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3QsIHJldGFpbmluZyBtZXRhZGF0YS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1cGxpY2F0ZSBvciByZW9yZGVyIHN1YnN0cmluZ3MuCisgICAgICogVGhlIGRlc3RpbmF0aW9uIGluZGV4IG11c3Qgbm90IG92ZXJsYXAgdGhlIHNvdXJjZSByYW5nZS4KKyAgICAgKiBJZiA8Y29kZT5oYXNNZXRhRGF0YSgpPC9jb2RlPiByZXR1cm5zIGZhbHNlLCBzdWJjbGFzc2VzCisgICAgICogbWF5IHVzZSB0aGUgbmFpdmUgaW1wbGVtZW50YXRpb246CisgICAgICoKKyAgICAgKiA8cHJlPiBjaGFyW10gdGV4dCA9IG5ldyBjaGFyW2xpbWl0IC0gc3RhcnRdOworICAgICAqIGdldENoYXJzKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCk7CisgICAgICogcmVwbGFjZShkZXN0LCBkZXN0LCB0ZXh0LCAwLCBsaW1pdCAtIHN0YXJ0KTs8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9CisgICAgICogbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9CisgICAgICogbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBpbmRleC4gIFRoZSBjaGFyYWN0ZXJzIGZyb20KKyAgICAgKiA8Y29kZT5zdGFydC4ubGltaXQtMTwvY29kZT4gd2lsbCBiZSBjb3BpZWQgdG8gPGNvZGU+ZGVzdDwvY29kZT4uCisgICAgICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIG1heSBhc3N1bWUgdGhhdCA8Y29kZT5kZXN0IDw9IHN0YXJ0IHx8CisgICAgICogZGVzdCA+PSBsaW1pdDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgb2JqZWN0IGNvbnRhaW5zIG1ldGFkYXRhLiAgSWYgYQorICAgICAqIFJlcGxhY2VhYmxlIG9iamVjdCBoYXMgbWV0YWRhdGEsIGNhbGxzIHRvIHRoZSBSZXBsYWNlYWJsZSBBUEkKKyAgICAgKiBtdXN0IGJlIG1hZGUgc28gYXMgdG8gcHJlc2VydmUgbWV0YWRhdGEuICBJZiBpdCBkb2VzIG5vdCwgY2FsbHMKKyAgICAgKiB0byB0aGUgUmVwbGFjZWFibGUgQVBJIG1heSBiZSBvcHRpbWl6ZWQgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgY29udGFpbnMgbWV0YWRhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBib29sZWFuIGhhc01ldGFEYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Zjg2ZTcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yLmphdmEKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1ZmViMDQKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIEltcGxlbWVudGF0aW9uIG9mIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yLCBpdGVyYXRlcyBvdmVyIGEgUmVwbGFjZWFibGUuCisqICAgSmF2YSBwb3J0IG9mIGNhc2V0cm4uY3BwL3V0cmFuc19yZXBfY2FzZUNvbnRleHRJdGVyYXRvcigpLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIG9mIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yLCBpdGVyYXRlcyBvdmVyIGEgUmVwbGFjZWFibGUuCisgKiBTZWUgY2FzZXRybi5jcHAvdXRyYW5zX3JlcF9jYXNlQ29udGV4dEl0ZXJhdG9yKCkuCisgKiBTZWUgYWxzbyBVQ2hhcmFjdGVyLlN0cmluZ0NvbnRleHRJdGVyYXRvci4KKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvciBpbXBsZW1lbnRzIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yIHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gcmVwIFJlcGxhY2VhYmxlIHRvIGl0ZXJhdGUgb3Zlci4gCisgICAgICovCisgICAgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IoKSB7CisgICAgICAgIHRoaXMucmVwPW51bGw7CisgICAgICAgIGxpbWl0PWNwU3RhcnQ9Y3BMaW1pdD1pbmRleD1jb250ZXh0U3RhcnQ9Y29udGV4dExpbWl0PTA7CisgICAgICAgIGRpcj0wOworICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSB0ZXh0IGZvciBpdGVyYXRpb24uCisgICAgICogQHBhcmFtIHJlcCBJdGVyYXRpb24gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFJlcGxhY2VhYmxlIHJlcCkgeworICAgICAgICB0aGlzLnJlcD1yZXA7CisgICAgICAgIGxpbWl0PWNvbnRleHRMaW1pdD1yZXAubGVuZ3RoKCk7CisgICAgICAgIGNwU3RhcnQ9Y3BMaW1pdD1pbmRleD1jb250ZXh0U3RhcnQ9MDsKKyAgICAgICAgZGlyPTA7CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGluZGV4IHdoZXJlIG5leHRDYXNlTWFwQ1AoKSBpcyB0byBzdGFydCBpdGVyYXRpbmcuCisgICAgICogQHBhcmFtIGluZGV4IEl0ZXJhdGlvbiBzdGFydCBpbmRleCBmb3IgbmV4dENhc2VNYXBDUCgpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICBjcFN0YXJ0PWNwTGltaXQ9aW5kZXg7CisgICAgICAgIHRoaXMuaW5kZXg9MDsKKyAgICAgICAgZGlyPTA7CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGluZGV4IG9mIHdoZXJlIHRoZSBjb2RlIHBvaW50IGN1cnJlbnRseSBiZWluZyBjYXNlLW1hcHBlZCBzdGFydHMuCisgICAgICogQHJldHVybiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENhc2VNYXBDUFN0YXJ0KCkgeworICAgICAgICByZXR1cm4gY3BTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBsaW1pdCBmb3IgbmV4dENhc2VNYXBDUCgpIHRvIGFuIGluZGV4IHdpdGhpbiB0aGUgc3RyaW5nLgorICAgICAqIElmIHRoZSBsaW1pdCBwYXJhbWV0ZXIgaXMgbmVnYXRpdmUgb3IgcGFzdCB0aGUgc3RyaW5nLCB0aGVuIHRoZQorICAgICAqIHN0cmluZyBsZW5ndGggaXMgcmVzdG9yZWQgYXMgdGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsaW0gVGhlIGl0ZXJhdGlvbiBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMaW1pdChpbnQgbGltKSB7CisgICAgICAgIGlmKDA8PWxpbSAmJiBsaW08PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgbGltaXQ9bGltOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGltaXQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0YXJ0IGFuZCBsaW1pdCBpbmRleGVzIGZvciBjb250ZXh0IGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcGFyYW0gY29udGV4dFN0YXJ0IFN0YXJ0IG9mIGNvbnRleHQgZm9yIG5leHQoKS4KKyAgICAgKiBAcGFyYW0gY29udGV4dExpbWl0IExpbWl0IG9mIGNvbnRleHQgZm9yIG5leHQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250ZXh0TGltaXRzKGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGltaXQpIHsKKyAgICAgICAgaWYoY29udGV4dFN0YXJ0PDApIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dFN0YXJ0PTA7CisgICAgICAgIH0gZWxzZSBpZihjb250ZXh0U3RhcnQ8PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0U3RhcnQ9Y29udGV4dFN0YXJ0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0U3RhcnQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGlmKGNvbnRleHRMaW1pdDx0aGlzLmNvbnRleHRTdGFydCkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9dGhpcy5jb250ZXh0U3RhcnQ7CisgICAgICAgIH0gZWxzZSBpZihjb250ZXh0TGltaXQ8PXJlcC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9Y29udGV4dExpbWl0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQ9cmVwLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlIGZvcndhcmQgdGhyb3VnaCB0aGUgc3RyaW5nIHRvIGZldGNoIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiB0byBiZSBjYXNlLW1hcHBlZCwgYW5kIHNldCB0aGUgY29udGV4dCBpbmRleGVzIGZvciBpdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG5leHQgY29kZSBwb2ludCB0byBiZSBjYXNlLW1hcHBlZCwgb3IgPDAgd2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0Q2FzZU1hcENQKCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaWYoY3BMaW1pdDxsaW1pdCkgeworICAgICAgICAgICAgY3BTdGFydD1jcExpbWl0OworICAgICAgICAgICAgYz1yZXAuY2hhcjMyQXQoY3BMaW1pdCk7CisgICAgICAgICAgICBjcExpbWl0Kz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBieSBpdHMgY2FzZSBtYXBwaW5nLAorICAgICAqIGFuZCB1cGRhdGUgdGhlIGluZGV4ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBSZXBsYWNlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGRlbHRhIGZvciB0aGUgY2hhbmdlIG9mIHRoZSB0ZXh0IGxlbmd0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJlcGxhY2UoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaW50IGRlbHRhPXRleHQubGVuZ3RoKCktKGNwTGltaXQtY3BTdGFydCk7CisgICAgICAgIHJlcC5yZXBsYWNlKGNwU3RhcnQsIGNwTGltaXQsIHRleHQpOworICAgICAgICBjcExpbWl0Kz1kZWx0YTsKKyAgICAgICAgbGltaXQrPWRlbHRhOworICAgICAgICBjb250ZXh0TGltaXQrPWRlbHRhOworICAgICAgICByZXR1cm4gZGVsdGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlkIGZvcndhcmQgY29udGV4dCBpdGVyYXRpb24gd2l0aCBuZXh0KCkgcmVhY2ggdGhlIGl0ZXJhdGlvbiBsaW1pdD8KKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4gdmFsdWUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZGlkUmVhY2hMaW1pdCgpIHsKKyAgICAgICAgcmV0dXJuIHJlYWNoZWRMaW1pdDsKKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnQgVUNhc2VQcm9wcy5Db250ZXh0SXRlcmF0b3IKKyAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgZGlyKSB7CisgICAgICAgIGlmKGRpcj4wKSB7CisgICAgICAgICAgICAvKiByZXNldCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIHRoaXMuZGlyPTE7CisgICAgICAgICAgICBpbmRleD1jcExpbWl0OworICAgICAgICB9IGVsc2UgaWYoZGlyPDApIHsKKyAgICAgICAgICAgIC8qIHJlc2V0IGZvciBiYWNrd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIHRoaXMuZGlyPS0xOworICAgICAgICAgICAgaW5kZXg9Y3BTdGFydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG5vdCBhIHZhbGlkIGRpcmVjdGlvbgorICAgICAgICAgICAgdGhpcy5kaXI9MDsKKyAgICAgICAgICAgIGluZGV4PTA7CisgICAgICAgIH0KKyAgICAgICAgcmVhY2hlZExpbWl0PWZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgaW50IGM7CisKKyAgICAgICAgaWYoZGlyPjApIHsKKyAgICAgICAgICAgIGlmKGluZGV4PGNvbnRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIGM9cmVwLmNoYXIzMkF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBpbmRleCs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBmb3J3YXJkIGNvbnRleHQgaXRlcmF0aW9uIHJlYWNoZWQgdGhlIGxpbWl0CisgICAgICAgICAgICAgICAgcmVhY2hlZExpbWl0PXRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZihkaXI8MCAmJiBpbmRleD5jb250ZXh0U3RhcnQpIHsKKyAgICAgICAgICAgIGM9cmVwLmNoYXIzMkF0KGluZGV4LTEpOworICAgICAgICAgICAgaW5kZXgtPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvLyB2YXJpYWJsZXMKKyAgICBwcm90ZWN0ZWQgUmVwbGFjZWFibGUgcmVwOworICAgIHByb3RlY3RlZCBpbnQgaW5kZXgsIGxpbWl0LCBjcFN0YXJ0LCBjcExpbWl0LCBjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdDsKKyAgICBwcm90ZWN0ZWQgaW50IGRpcjsgLy8gMD1pbml0aWFsIHN0YXRlICA+MD1mb3J3YXJkICA8MD1iYWNrd2FyZAorICAgIHByb3RlY3RlZCBib29sZWFuIHJlYWNoZWRMaW1pdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiNjY2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIDxjb2RlPlJlcGxhY2VhYmxlU3RyaW5nPC9jb2RlPiBpcyBhbiBhZGFwdGVyIGNsYXNzIHRoYXQgaW1wbGVtZW50cyB0aGUKKyAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkgYXJvdW5kIGFuIG9yZGluYXJ5IDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgKgorICogPHA+PGVtPk5vdGU6PC9lbT4gVGhpcyBjbGFzcyBkb2VzIG5vdCBzdXBwb3J0IGF0dHJpYnV0ZXMgYW5kIGlzIG5vdAorICogaW50ZW5kZWQgZm9yIGdlbmVyYWwgdXNlLiAgTW9zdCBjbGllbnRzIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQKKyAqIHtAbGluayBSZXBsYWNlYWJsZX0gaW4gdGhlaXIgdGV4dCByZXByZXNlbnRhdGlvbiBjbGFzcy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAc2VlIFJlcGxhY2VhYmxlCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFJlcGxhY2VhYmxlU3RyaW5nIGltcGxlbWVudHMgUmVwbGFjZWFibGUgeworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIGJ1ZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgb2JqZWN0IHdpdGggdGhlIGdpdmVuIGluaXRpYWwgY29udGVudHMuCisgICAgICogQHBhcmFtIHN0ciBpbml0aWFsIGNvbnRlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlU3RyaW5nKFN0cmluZyBzdHIpIHsKKyAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBvYmplY3QgdXNpbmcgPGNvZGU+YnVmPC9jb2RlPiBmb3IgaW50ZXJuYWwKKyAgICAgKiBzdG9yYWdlLiAgVGhlIGNvbnRlbnRzIG9mIDxjb2RlPmJ1ZjwvY29kZT4gYXQgdGhlIHRpbWUgb2YKKyAgICAgKiBjb25zdHJ1Y3Rpb24gYXJlIHVzZWQgYXMgdGhlIGluaXRpYWwgY29udGVudHMuICA8ZW0+Tm90ZSEKKyAgICAgKiBNb2RpZmljYXRpb25zIHRvIDxjb2RlPmJ1ZjwvY29kZT4gd2lsbCBtb2RpZnkgdGhpcyBvYmplY3QsIGFuZAorICAgICAqIHZpY2UgdmVyc2EuPC9lbT4KKyAgICAgKiBAcGFyYW0gYnVmIG9iamVjdCB0byBiZSB1c2VkIGFzIGludGVybmFsIHN0b3JhZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVTdHJpbmcoU3RyaW5nQnVmZmVyIGJ1ZikgeworICAgICAgICB0aGlzLmJ1ZiA9IGJ1ZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgZW1wdHkgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVN0cmluZygpIHsKKyAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY29udGVudHMgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICAgICAqIEByZXR1cm4gc3RyaW5nIGNvbnRlbnRzIG9mIHRoaXMgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc3Vic3RyaW5nKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHJldHVybiBidWYuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBjb250YWluZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8gCisgICAgcHVibGljIGludCBsZW5ndGgoKSB7CisgICAgICAgIHJldHVybiBidWYubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIGluIHRoaXMgb2JqZWN0LgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICogQHBhcmFtIG9mZnNldCBvZmZzZXQgaW50byB0aGUgY29udGVudHMsIGZyb20gMCB0bworICAgICAqIDxjb2RlPmxlbmd0aCgpPC9jb2RlPiAtIDEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjaGFyQXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gYnVmLmNoYXJBdChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgMzItYml0IGNvZGUgcG9pbnQgYXQgdGhlIGdpdmVuIDE2LWJpdCBvZmZzZXQgaW50bworICAgICAqIHRoZSB0ZXh0LiAgVGhpcyBhc3N1bWVzIHRoZSB0ZXh0IGlzIHN0b3JlZCBhcyAxNi1iaXQgY29kZSB1bml0cworICAgICAqIHdpdGggc3Vycm9nYXRlIHBhaXJzIGludGVybWl4ZWQuICBJZiB0aGUgb2Zmc2V0IG9mIGEgbGVhZGluZyBvcgorICAgICAqIHRyYWlsaW5nIGNvZGUgdW5pdCBvZiBhIHN1cnJvZ2F0ZSBwYWlyIGlzIGdpdmVuLCByZXR1cm4gdGhlCisgICAgICogY29kZSBwb2ludCBvZiB0aGUgc3Vycm9nYXRlIHBhaXIuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDMyLWJpdCBjb2RlIHBvaW50IG9mIHRleHQgYXQgZ2l2ZW4gb2Zmc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjaGFyMzJBdChpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBVVEYxNi5jaGFyQXQoYnVmLCBvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvcGllcyBjaGFyYWN0ZXJzIGZyb20gdGhpcyBvYmplY3QgaW50byB0aGUgZGVzdGluYXRpb24KKyAgICAgKiBjaGFyYWN0ZXIgYXJyYXkuICBUaGUgZmlyc3QgY2hhcmFjdGVyIHRvIGJlIGNvcGllZCBpcyBhdCBpbmRleAorICAgICAqIDxjb2RlPnNyY1N0YXJ0PC9jb2RlPjsgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIGJlIGNvcGllZCBpcyBhdAorICAgICAqIGluZGV4IDxjb2RlPnNyY0xpbWl0LTE8L2NvZGU+ICh0aHVzIHRoZSB0b3RhbCBudW1iZXIgb2YKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIGJlIGNvcGllZCBpcyA8Y29kZT5zcmNMaW1pdC1zcmNTdGFydDwvY29kZT4pLiBUaGUKKyAgICAgKiBjaGFyYWN0ZXJzIGFyZSBjb3BpZWQgaW50byB0aGUgc3ViYXJyYXkgb2YgPGNvZGU+ZHN0PC9jb2RlPgorICAgICAqIHN0YXJ0aW5nIGF0IGluZGV4IDxjb2RlPmRzdFN0YXJ0PC9jb2RlPiBhbmQgZW5kaW5nIGF0IGluZGV4CisgICAgICogPGNvZGU+ZHN0U3RhcnQgKyAoc3JjTGltaXQtc3JjU3RhcnQpIC0gMTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCB0byBjb3B5LCBpbmNsdXNpdmU7IDxjb2RlPjAKKyAgICAgKiA8PSBzdGFydCA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIHNyY0xpbWl0IHRoZSBlbmRpbmcgaW5kZXggdG8gY29weSwgZXhjbHVzaXZlOworICAgICAqIDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZHN0IHRoZSBkZXN0aW5hdGlvbiBhcnJheS4KKyAgICAgKiBAcGFyYW0gZHN0U3RhcnQgdGhlIHN0YXJ0IG9mZnNldCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCkgeworICAgICAgICBVdGlsaXR5LmdldENoYXJzKGJ1Ziwgc3JjU3RhcnQsIHNyY0xpbWl0LCBkc3QsIGRzdFN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzIHdpdGggbmV3IGNoYXJhY3RlcnMuCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSB0ZXh0IG5ldyB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4gdG8KKyAgICAgKiA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgYnVmLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIGEgc3Vic3RyaW5nIG9mIHRoaXMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHRleHQuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIHRleHQgdG8gcmVwbGFjZSBjaGFyYWN0ZXJzIDxjb2RlPnN0YXJ0PC9jb2RlPgorICAgICAqIHRvIDxjb2RlPmxpbWl0IC0gMTwvY29kZT4KKyAgICAgKiBAcGFyYW0gY2hhcnNTdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4IGludG8gPGNvZGU+Y2hhcnM8L2NvZGU+LAorICAgICAqIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydCA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzTGVuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvZiA8Y29kZT5jaGFyczwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJzU3RhcnQsIGludCBjaGFyc0xlbikgeworICAgICAgICBidWYuZGVsZXRlKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGJ1Zi5pbnNlcnQoc3RhcnQsIGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29weSBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCwgcmV0YWluaW5nIGF0dHJpYnV0ZSAob3V0LW9mLWJhbmQpCisgICAgICogaW5mb3JtYXRpb24uICBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1cGxpY2F0ZSBvciByZW9yZGVyIHN1YnN0cmluZ3MuCisgICAgICogVGhlIGRlc3RpbmF0aW9uIGluZGV4IG11c3Qgbm90IG92ZXJsYXAgdGhlIHNvdXJjZSByYW5nZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9CisgICAgICogbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9CisgICAgICogbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBpbmRleC4gIFRoZSBjaGFyYWN0ZXJzIGZyb20KKyAgICAgKiA8Y29kZT5zdGFydC4ubGltaXQtMTwvY29kZT4gd2lsbCBiZSBjb3BpZWQgdG8gPGNvZGU+ZGVzdDwvY29kZT4uCisgICAgICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIG1heSBhc3N1bWUgdGhhdCA8Y29kZT5kZXN0IDw9IHN0YXJ0IHx8CisgICAgICogZGVzdCA+PSBsaW1pdDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGRlc3QpIHsKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHN0YXJ0ID49IDAgJiYgc3RhcnQgPD0gYnVmLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltsaW1pdCAtIHN0YXJ0XTsKKyAgICAgICAgZ2V0Q2hhcnMoc3RhcnQsIGxpbWl0LCB0ZXh0LCAwKTsKKyAgICAgICAgcmVwbGFjZShkZXN0LCBkZXN0LCB0ZXh0LCAwLCBsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBSZXBsYWNlYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc01ldGFEYXRhKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3OTY2MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMzc3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKKworCisvKioKKyAqIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IgCisgKiBUaGlzIGlzIGEgcG9ydCBvZiB0aGUgQysrIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBJQ1U0Qy4KKyAqIAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGV4dGVuZHMgQnJlYWtJdGVyYXRvciB7CisKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29uc3RydWN0b3JzICYgRmFjdG9yaWVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIC8qKiAKKyAgICAgKiBAaW50ZXJuYWwgCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBhIHByZWNvbXBpbGVkIHNldCBvZiBydWxlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZ2V0SW5zdGFuY2VGcm9tQ29tcGlsZWRSdWxlcyhJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAgVGhpcyA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisgICAgICAgIFRoaXMuZlJEYXRhID0gUkJCSURhdGFXcmFwcGVyLmdldChpcyk7CisgICAgICAgIHJldHVybiBUaGlzOyAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBvdGhlcikgeworICAgICAgICAvLyBUT0RPOiBjaGVjayB0eXBlcy4KKyAgICAgICAgZlJEYXRhID0gb3RoZXIuZlJEYXRhOworICAgICAgICBpZiAoZlRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHQgPSAoQ2hhcmFjdGVySXRlcmF0b3IpKG90aGVyLmZUZXh0LmNsb25lKCkpOyAgIAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFN0cmluZyBydWxlcykgIHsKKyAgICAgICAgaW5pdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIHJ1bGVPUyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIGNvbXBpbGVSdWxlcyhydWxlcywgcnVsZU9TKTsKKyAgICAgICAgICAgIGJ5dGUgW10gcnVsZUJBID0gcnVsZU9TLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBydWxlSVMgPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0ocnVsZUJBKTsKKyAgICAgICAgICAgIGZSRGF0YSA9IFJCQklEYXRhV3JhcHBlci5nZXQocnVsZUlTKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gQW4gSU8gZXhjZXB0aW9uIGNhbiBvbmx5IGFycml2ZSBoZXJlIGlmIHRoZXJlIGlzIGEgYnVnIGluIHRoZSBSQkJJIFJ1bGUgY29tcGlsZXIsCisgICAgICAgICAgICAvLyAgY2F1c2luZyBib2d1cyBjb21waWxlZCBydWxlcyB0byBiZSBwcm9kdWNlZCwgYnV0IHdpdGggbm8gY29tcGlsZSBlcnJvciByYWlzZWQuCisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiBydGUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBydWxlIGNvbXBpbGF0aW9uIGludGVybmFsIGVycm9yOiIpOworLy8jZWxzZQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiBydGUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBydWxlIGNvbXBpbGF0aW9uIGludGVybmFsIGVycm9yOiIsIGUpOworLy8jZW5kaWYKKyAgICAgICAgICAgIHRocm93IHJ0ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQm9pbGVycGxhdGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yIGFzIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByZXN1bHQgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcih0aGlzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUKKyAgICAgKiBydWxlcywgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBvdGhlciA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSB0aGF0OworICAgICAgICAgICAgaWYgKGZSRGF0YSAhPSBvdGhlci5mUkRhdGEgJiYgKGZSRGF0YSA9PSBudWxsIHx8IG90aGVyLmZSRGF0YSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmUkRhdGEgIT0gbnVsbCAmJiBvdGhlci5mUkRhdGEgIT0gbnVsbCAmJiAKKyAgICAgICAgICAgICAgICAgICAgKCFmUkRhdGEuZlJ1bGVTb3VyY2UuZXF1YWxzKG90aGVyLmZSRGF0YS5mUnVsZVNvdXJjZSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgJiYgb3RoZXIuZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgb3RoZXIuZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmVGV4dC5lcXVhbHMob3RoZXIuZlRleHQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gKHJ1bGVzKSB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yLgorICAgICAqIChJbiBJQ1U0QywgdGhlIHNhbWUgZnVuY3Rpb24gaXMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZXMoKSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgICByZXRTdHIgPSBudWxsOworICAgICAgICBpZiAoZlJEYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldFN0ciA9ICBmUkRhdGEuZlJ1bGVTb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFN0cjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUkRhdGEuZlJ1bGVTb3VyY2UuaGFzaENvZGUoKTsgCisgICAgfQorCisgICAgCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3IgIndvcmRzIiB0aGF0IGRvIG5vdCBmaXQgaW50byBhbnkgb2Ygb3RoZXIgY2F0ZWdvcmllcy4gCisgICAgICogSW5jbHVkZXMgc3BhY2VzIGFuZCBtb3N0IHB1bmN0dWF0aW9uLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBpcyBhIGRyYWZ0IEFQSSBhbmQgbWlnaHQgY2hhbmdlIGluIGEgZnV0dXJlIHJlbGVhc2Ugb2YgSUNVLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdPUkRfTk9ORSAgICAgICAgICAgPSAwOworCisgICAgLyoqCisgICAgICogVXBwZXIgYm91bmQgZm9yIHRhZ3MgZm9yIHVuY2F0ZWdvcml6ZWQgd29yZHMuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OT05FX0xJTUlUICAgICA9IDEwMDsKKworICAgIC8qKgorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywgbG93ZXIgbGltaXQuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OVU1CRVIgICAgICAgICA9IDEwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsIHVwcGVyIGxpbWl0LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OVU1CRVJfTElNSVQgICA9IDIwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIHRoYXQgY29udGFpbiBsZXR0ZXJzLCBleGNsdWRpbmcKKyAgICAgKiBoaXJhZ2FuYSwga2F0YWthbmEgb3IgaWRlb2dyYXBoaWMgY2hhcmFjdGVycywgbG93ZXIgbGltaXQuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9MRVRURVIgICAgICAgICA9IDIwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIGNvbnRhaW5pbmcgbGV0dGVycywgdXBwZXIgbGltaXQgCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0xFVFRFUl9MSU1JVCAgID0gMzAwOworCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgY29udGFpbmluZyBrYW5hIGNoYXJhY3RlcnMsIGxvd2VyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0tBTkEgICAgICAgICAgID0gMzAwOworCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgY29udGFpbmluZyBrYW5hIGNoYXJhY3RlcnMsIHVwcGVyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0tBTkFfTElNSVQgICAgID0gNDAwOworCisgICAgLyoqCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGxvd2VyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0lERU8gICAgICAgICAgID0gNDAwOworCisgICAgLyoqCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIHVwcGVyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0lERU9fTElNSVQgICAgID0gNTAwOworCisgICAKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgIFNUQVJUX1NUQVRFID0gMTsgICAgIC8vIFRoZSBzdGF0ZSBudW1iZXIgb2YgdGhlIHN0YXJ0aW5nIHN0YXRlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBTVE9QX1NUQVRFICA9IDA7ICAgICAvLyBUaGUgc3RhdGUtdHJhbnNpdGlvbiB2YWx1ZSBpbmRpY2F0aW5nICJzdG9wIgorICAgIAorICAgIC8vIFJCQklSdW5Nb2RlIC0gdGhlIHN0YXRlIG1hY2hpbmUgcnVucyBhbiBleHRyYSBpdGVyYXRpb24gYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kCisgICAgLy8gICAgICAgICAgICAgICBvZiB1c2VyIHRleHQuICBBIHZhcmlhYmxlIHdpdGggdGhpcyBlbnVtIHR5cGUga2VlcHMgdHJhY2sgb2Ygd2hlcmUgd2UKKyAgICAvLyAgICAgICAgICAgICAgIGFyZS4gIFRoZSBzdGF0ZSBtYWNoaW5lIG9ubHkgZmV0Y2hlcyB1c2VyIHRleHQgaW5wdXQgd2hpbGUgaW4gUlVOIG1vZGUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX1NUQVJUICA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX1JVTiAgICA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBSQkJJX0VORCAgID0gMjsKKworICAgIC8qKgorICAgICAqIFRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhyb3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciAgIGZUZXh0ID0gbmV3IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIik7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIFJCQklEYXRhV3JhcHBlciAgICAgZlJEYXRhOworICAgIAorICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4gCisgICAgICogIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisgICAgCisgICAgLyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuICBOb3JtYWwgUkJCSSBpdGVyYXRvcnMgZG9uJ3QgdXNlIGl0LCBhbHRob3VnaCB0aGUgY29kZQorICAgICAqICAgZm9yIHVwZGF0aW5nIGl0IGlzIGxpdmUuICBEaWN0aW9uYXJ5IEJhc2VkIGJyZWFrIGl0ZXJhdG9ycyAoYSBzdWJjbGFzcworICAgICAqICAgb2YgdXMpIGFjY2VzcyB0aGlzIGZpZWxkIGRpcmVjdGx5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgICBwcm90ZWN0ZWQgaW50IGZEaWN0aW9uYXJ5Q2hhckNvdW50OworICAgIAorICAgIC8qKgorICAgICAqIERlYnVnZ2luZyBmbGFnLiAgVHJhY2Ugb3BlcmF0aW9uIG9mIHN0YXRlIG1hY2hpbmUgd2hlbiB0cnVlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiAgICAgICBmVHJhY2U7CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogRHVtcCB0aGUgY29udGVudHMgb2YgdGhlIHN0YXRlIHRhYmxlIGFuZCBjaGFyYWN0ZXIgY2xhc3NlcyBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4KKyAgICAgKiBGb3IgZGVidWdnaW5nIG9ubHkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZHVtcCgpIHsKKyAgICAgICAgdGhpcy5mUkRhdGEuZHVtcCgpOyAgIAorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZGVidWdJbml0RG9uZSA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0KCkgeworICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudCAgPSAwOworCisgCisgICAgICAgIGlmIChkZWJ1Z0luaXREb25lID09IGZhbHNlKSB7CisgICAgICAgICAgICBTdHJpbmcgZGVidWdFbnYgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIlVfUkJCSURFQlVHIik7CisgICAgICAgICAgICBpZiAoZGVidWdFbnYhPW51bGwgJiYgZGVidWdFbnYuaW5kZXhPZigidHJhY2UiKT49MCkgeworICAgICAgICAgICAgICAgIGZUcmFjZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWJ1Z0luaXREb25lID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgY29tcGlsZVJ1bGVzKFN0cmluZyBydWxlcywgT3V0cHV0U3RyZWFtIHJ1bGVCaW5hcnkpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFJCQklSdWxlQnVpbGRlci5jb21waWxlUnVsZXMocnVsZXMsIHJ1bGVCaW5hcnkpOworICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisgICAgICAgIGZUZXh0LmZpcnN0KCk7CisgICAgICAgIHJldHVybiBmVGV4dC5nZXRJbmRleCgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBlbmRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCAgPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJJ20gbm90IHN1cmUgd2h5LCBidXQgdC5sYXN0KCkgcmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGNoYXJhY3RlciwKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAoSXQncyBzbyBhIGxvb3AgbGlrZSBmb3IocD1pdC5sYXN0KCk7IHAhPURPTkU7IHA9aXQucHJldmlvdXMoKSkgLi4uCisgICAgICAgIC8vICAgICB3aWxsIHdvcmsgY29ycmVjdGx5LikKKworCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IGZhbHNlOworICAgICAgICBpbnQgcG9zID0gZlRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgZlRleHQuc2V0SW5kZXgocG9zKTsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoaW50IG4pIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnQoKTsKKyAgICAgICAgd2hpbGUgKG4gPiAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgICAgICAtLW47CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKG4gPCAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgKytuOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICByZXR1cm4gaGFuZGxlTmV4dCgpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgc2l0dGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCByZXR1cm4gRE9ORQorICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCB8fCBjdXJyZW50KCkgPT0gZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCAgPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlJEYXRhLmZTUlRhYmxlICE9IG51bGwgfHwgZlJEYXRhLmZTRlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVQcmV2aW91cyhmUkRhdGEuZlJUYWJsZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbGQgcnVsZSBzeW50YXgKKyAgICAgICAgLy8gc2V0IHRoaW5ncyB1cC4gIGhhbmRsZVByZXZpb3VzKCkgd2lsbCBiYWNrIHVzIHVwIHRvIHNvbWUgdmFsaWQKKyAgICAgICAgLy8gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uICh3ZSBiYWNrIG91ciBpbnRlcm5hbAorICAgICAgICAvLyBpdGVyYXRvciB1cCBvbmUgc3RlcCB0byBwcmV2ZW50IGhhbmRsZVByZXZpb3VzKCkgZnJvbSByZXR1cm5pbmcKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24pLCBidXQgbm90IG5lY2Vzc2FyaWx5IHRoZSBsYXN0IG9uZSBiZWZvcmUKKyAgICAgICAgLy8gd2hlcmUgd2Ugc3RhcnRlZAorCisgICAgICAgIGludCAgICAgICBzdGFydCA9IGN1cnJlbnQoKTsKKworICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICBpbnQgICAgICAgbGFzdFJlc3VsdCAgICA9IGhhbmRsZVByZXZpb3VzKGZSRGF0YS5mUlRhYmxlKTsKKyAgICAgICAgaWYgKGxhc3RSZXN1bHQgPT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBsYXN0UmVzdWx0ID0gZlRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgobGFzdFJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgaW50ICAgICAgIHJlc3VsdCAgICAgICAgPSBsYXN0UmVzdWx0OworICAgICAgICBpbnQgICAgICAgbGFzdFRhZyAgICAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICBicmVha1RhZ1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgLy8gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhlIGtub3duIGJyZWFrIHBvc2l0aW9uIHVudGlsIHdlIHBhc3Mgb3VyCisgICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50LiAgVGhlIGxhc3QgYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzdGFydGluZworICAgICAgICAvLyBwb2ludCBpcyBvdXIgcmV0dXJuIHZhbHVlCisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCByZXN1bHQgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RSZXN1bHQgICAgID0gcmVzdWx0OworICAgICAgICAgICAgbGFzdFRhZyAgICAgICAgPSBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKyAgICAgICAgICAgIGJyZWFrVGFnVmFsaWQgID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZMYXN0QnJlYWtUYWcgd2FudHMgdG8gaGF2ZSB0aGUgdmFsdWUgZm9yIHNlY3Rpb24gb2YgdGV4dCBwcmVjZWRpbmcKKyAgICAgICAgLy8gdGhlIHJlc3VsdCBwb3NpdGlvbiB0aGF0IHdlIGFyZSB0byByZXR1cm4gKGluIGxhc3RSZXN1bHQuKSAgSWYKKyAgICAgICAgLy8gdGhlIGJhY2t3YXJkcyBydWxlcyBvdmVyc2hvdCBhbmQgdGhlIGFib3ZlIGxvb3AgaGFkIHRvIGRvIHR3byBvciBtb3JlCisgICAgICAgIC8vIGhhbmRsZU5leHQoKXMgdG8gbW92ZSB1cCB0byB0aGUgZGVzaXJlZCByZXR1cm4gcG9zaXRpb24sIHdlIHdpbGwgaGF2ZSBhIHZhbGlkCisgICAgICAgIC8vIHRhZyB2YWx1ZS4gQnV0LCBpZiBoYW5kbGVQcmV2aW91cygpIHRvb2sgdXMgdG8gZXhhY3RseSB0aGUgY29ycmVjdCByZXN1bHQgcG9zaXRvbiwKKyAgICAgICAgLy8gd2Ugd29udCBoYXZlIGEgdGFnIHZhbHVlIGZvciB0aGF0IHBvc2l0aW9uLCB3aGljaCBpcyBvbmx5IHNldCBieSBoYW5kbGVOZXh0KCkuCisKKyAgICAgICAgLy8gc2V0IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byBiZSB0aGUgbGFzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBiZWZvcmUgd2hlcmUgd2Ugc3RhcnRlZCwgYW5kIHRoZW4gcmV0dXJuIHRoYXQgdmFsdWUKKyAgICAgICAgZlRleHQuc2V0SW5kZXgobGFzdFJlc3VsdCk7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IGxhc3RUYWc7ICAgICAgIC8vIGZvciB1c2UgYnkgZ2V0UnVsZVN0YXR1cygpCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IGJyZWFrVGFnVmFsaWQ7CisgICAgICAgIHJldHVybiBsYXN0UmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBpZiB0aGUgb2Zmc2V0IHBhc3NlZCBpbiBpcyBhbHJlYWR5IHBhc3QgdGhlIGVuZCBvZiB0aGUgdGV4dCwKKyAgICAgICAgLy8ganVzdCByZXR1cm4gRE9ORTsgaWYgaXQncyBiZWZvcmUgdGhlIGJlZ2lubmluZywgcmV0dXJuIHRoZQorICAgICAgICAvLyB0ZXh0J3Mgc3RhcnRpbmcgb2Zmc2V0CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IG9mZnNldCA+PSBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICBsYXN0KCk7CisgICAgICAgICAgICByZXR1cm4gbmV4dCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG9mZnNldCA8IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZpcnN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UsIHNldCBvdXIgaW50ZXJuYWwgaXRlcmF0aW9uIHBvc2l0aW9uICh0ZW1wb3JhcmlseSkKKyAgICAgICAgLy8gdG8gdGhlIHBvc2l0aW9uIHBhc3NlZCBpbi4gIElmIHRoaXMgaXMgdGhlIF9iZWdpbm5pbmdfIHBvc2l0aW9uLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IHVzZSBuZXh0KCkgdG8gZ2V0IG91ciByZXR1cm4gdmFsdWUKKworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKworICAgICAgICBpZiAoZlJEYXRhLmZTUlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIFNhZmUgUG9pbnQgUmV2ZXJzZSBydWxlcyBleGlzdC4KKyAgICAgICAgICAgIC8vICAgVGhpcyBhbGxvd3MgdXMgdG8gdXNlIHRoZSBvcHRpbXVtIGFsZ29yaXRobS4KKyAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgICAgICAvLyBtb3ZlIGZvcndhcmQgb25lIGNvZGVwb2ludCB0byBwcmVwYXJlIGZvciBtb3ZpbmcgYmFjayB0byBhCisgICAgICAgICAgICAvLyBzYWZlIHBvaW50LgorICAgICAgICAgICAgLy8gdGhpcyBoYW5kbGVzIG9mZnNldCBiZWluZyBiZXR3ZWVuIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIC8vIGhhbmRsZVByZXZpb3VzIHdpbGwgbW92ZSBtb3N0IG9mIHRoZSB0aW1lIHRvIDwgMSBib3VuZGFyeSBhd2F5CisgICAgICAgICAgICBoYW5kbGVQcmV2aW91cyhmUkRhdGEuZlNSVGFibGUpOworICAgICAgICAgICAgcmVzdWx0ID0gbmV4dCgpOworICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGlmIChmUkRhdGEuZlNGVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm8gU2FmZSBwb2ludCByZXZlcnNlIHRhYmxlLCBidXQgdGhlcmUgaXMgYSBzYWZlIHB0IGZvcndhcmQgdGFibGUuCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAgICAgLy8gaGFuZGxlIG5leHQgd2lsbCBnaXZlIHJlc3VsdCA+PSBvZmZzZXQKKyAgICAgICAgICAgIGhhbmRsZU5leHQoZlJEYXRhLmZTRlRhYmxlKTsKKyAgICAgICAgICAgIC8vIHByZXZpb3VzIHdpbGwgZ2l2ZSByZXN1bHQgMCBvciAxIGJvdW5kYXJ5IGF3YXkgZnJvbSBvZmZzZXQsCisgICAgICAgICAgICAvLyBtb3N0IG9mIHRoZSB0aW1lCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvCisgICAgICAgICAgICBpbnQgb2xkcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChvbGRyZXN1bHQgPiBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGRyZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZHJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBoYXZlIHRvIHN5bmMgdXAgZmlyc3QuICBVc2UgaGFuZGxlUHJldmlvdXMoKSB0byBiYWNrCisgICAgICAgIC8vIHVzIHVwIHRvIGEga25vd24gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gKGlmCisgICAgICAgIC8vIHdlIGNhbiBkZXRlcm1pbmUgdGhhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGEgYnJlYWsgcG9zaXRpb24sCisgICAgICAgIC8vIHdlIGRvbid0IGJhY2sgdXAgYXQgYWxsKS4gIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIGxhc3QgYnJlYWsKKyAgICAgICAgLy8gcG9zaXRpb24gYXQgb3IgYmVmb3JlIG91ciBzdGFydGluZyBwb3NpdGlvbi4gIEFkdmFuY2UgZm9yd2FyZAorICAgICAgICAvLyBmcm9tIGhlcmUgdW50aWwgd2UndmUgcGFzc2VkIHRoZSBzdGFydGluZyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvbgorICAgICAgICAvLyB3ZSBzdG9wIG9uIHdpbGwgYmUgdGhlIGZpcnN0IGJyZWFrIHBvc2l0aW9uIGFmdGVyIHRoZSBzcGVjaWZpZWQgb25lLgorICAgICAgICAvLyBvbGQgcnVsZSBzeW50YXgKKworICAgICAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAob2Zmc2V0ID09IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZU5leHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworCisgICAgICAgIHdoaWxlIChyZXN1bHQgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmIHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIC8vIGlmIHRoZSBvZmZzZXQgcGFzc2VkIGluIGlzIGFscmVhZHkgcGFzdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LAorICAgICAgICAvLyBqdXN0IHJldHVybiBET05FOyBpZiBpdCdzIGJlZm9yZSB0aGUgYmVnaW5uaW5nLCByZXR1cm4gdGhlCisKKyAgICAgICAgLy8gdGV4dCdzIHN0YXJ0aW5nIG9mZnNldAorICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCB8fCBvZmZzZXQgPiBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAvLyByZXR1cm4gQnJlYWtJdGVyYXRvcjo6RE9ORTsKKyAgICAgICAgICAgIHJldHVybiBsYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAob2Zmc2V0IDwgZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmlyc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIHN0YXJ0IGJ5IHVwZGF0aW5nIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgICAgLy8gcG9zaXRpb24gc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIsIHdlIGNhbiBqdXN0IHVzZSBwcmV2aW91cygpCisgICAgICAgIC8vIHRvIGNhcnJ5IG91dCB0aGlzIG9wZXJhdGlvbgorCisgICAgICAgIGludCAgcmVzdWx0OworICAgICAgICBpZiAoZlJEYXRhLmZTRlRhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vLyB0b2RvIHN5bndlZQorICAgICAgICAgICAgLy8gbmV3IHJ1bGUgc3ludGF4CisgICAgICAgICAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICAgICAgLy8gbW92ZSBiYWNrd2FyZHMgb25lIGNvZGVwb2ludCB0byBwcmVwYXJlIGZvciBtb3ZpbmcgZm9yd2FyZHMgdG8gYQorICAgICAgICAgICAgLy8gc2FmZSBwb2ludC4KKyAgICAgICAgICAgIC8vIHRoaXMgaGFuZGxlcyBvZmZzZXQgYmVpbmcgYmV0d2VlbiBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAgICAgICBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAgICAgaGFuZGxlTmV4dChmUkRhdGEuZlNGVGFibGUpOworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPj0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSRGF0YS5mU1JUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBiYWNrdXAgcGxhbiBpZiBmb3J3YXJkIHNhZmUgdGFibGUgaXMgbm90IGF2YWlsYWJsZQorICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIC8vIGhhbmRsZSBwcmV2aW91cyB3aWxsIGdpdmUgcmVzdWx0IDw9IG9mZnNldAorICAgICAgICAgICAgaGFuZGxlUHJldmlvdXMoZlJEYXRhLmZTUlRhYmxlKTsKKworICAgICAgICAgICAgLy8gbmV4dCB3aWxsIGdpdmUgcmVzdWx0IDAgb3IgMSBib3VuZGFyeSBhd2F5IGZyb20gb2Zmc2V0LAorICAgICAgICAgICAgLy8gbW9zdCBvZiB0aGUgdGltZQorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0bworICAgICAgICAgICAgaW50IG9sZHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlIChvbGRyZXN1bHQgPCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkcmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gb2xkIHJ1bGUgc3ludGF4CisgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB1bmxlc3MgYmVnaW4gPD0gb2Zmc2V0IDwgZW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgdm9pZCBjaGVja09mZnNldChpbnQgb2Zmc2V0LCBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCB0ZXh0LmdldEJlZ2luSW5kZXgoKSB8fCBvZmZzZXQgPiB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm9mZnNldCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKyAgICB9CisKKworLyoqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQKKyAqIG9yIGFmdGVyICJvZmZzZXQiLgorICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGJvb2xlYW4gaXNCb3VuZGFyeShpbnQgb2Zmc2V0KSB7CisgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBmVGV4dCk7CisgICAgCisgICAgLy8gdGhlIGJlZ2lubmluZyBpbmRleCBvZiB0aGUgaXRlcmF0b3IgaXMgYWx3YXlzIGEgYm91bmRhcnkgcG9zaXRpb24gYnkgZGVmaW5pdGlvbgorICAgIGlmIChvZmZzZXQgPT0gZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgIGZpcnN0KCk7ICAgICAgIC8vIEZvciBzaWRlIGVmZmVjdHMgb24gY3VycmVudCBwb3NpdGlvbiwgdGFnIHZhbHVlcy4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKG9mZnNldCA9PSBmVGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgIGxhc3QoKTsgICAgICAgLy8gRm9yIHNpZGUgZWZmZWN0cyBvbiBjdXJyZW50IHBvc2l0aW9uLCB0YWcgdmFsdWVzLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBvdGhlcndpc2UsIHdlIGNhbiB1c2UgZm9sbG93aW5nKCkgb24gdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgc3BlY2lmaWVkCisgICAgLy8gb25lIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGUgcG9zaXRpb24gd2UgZ2V0IGJhY2sgaXMgdGhlIG9uZSB0aGUgdXNlcgorICAgIC8vIHNwZWNpZmllZAorICAgIAorICAgIC8vIHJldHVybiBmb2xsb3dpbmcob2Zmc2V0IC0gMSkgPT0gb2Zmc2V0OworICAgIC8vIFRPRE86ICBjaGVjayB3aGV0aGVyIGl0IGlzIHNhZmUgdG8gcmV2ZXJ0IHRvIHRoZSBzaW1wbGVyIG9mZnNldC0xIGNvZGUKKyAgICAvLyAgICAgICAgIFRoZSBzYWZlIHJ1bGVzIG1heSB0YWtlIGNhcmUgb2YgdW5wYWlyZWQgc3Vycm9nYXRlcyBvay4KKyAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgIENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgaW50ICBwb3MgPSBmVGV4dC5nZXRJbmRleCgpOworICAgIGJvb2xlYW4gcmVzdWx0ID0gZm9sbG93aW5nKHBvcykgPT0gb2Zmc2V0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKgorICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgcmV0dXJuIChmVGV4dCAhPSBudWxsKSA/IGZUZXh0LmdldEluZGV4KCkgOiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgfQorCisKKworcHJpdmF0ZSB2b2lkIG1ha2VSdWxlU3RhdHVzVmFsaWQoKSB7CisgICAgaWYgKGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9PSBmYWxzZSkgeworICAgICAgICAvLyAgTm8gY2FjaGVkIHN0YXR1cyBpcyBhdmFpbGFibGUuCisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IGN1cnJlbnQoKSA9PSBmVGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIC8vICBBdCBzdGFydCBvZiB0ZXh0LCBvciB0aGVyZSBpcyBubyB0ZXh0LiAgU3RhdHVzIGlzIGFsd2F5cyB6ZXJvLgorICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggPSAwOworICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICBOb3QgYXQgc3RhcnQgb2YgdGV4dC4gIEZpbmQgc3RhdHVzIHRoZSB0ZWRpb3VzIHdheS4KKyAgICAgICAgICAgIGludCBwYSA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICBpbnQgcGIgPSBuZXh0KCk7CisgICAgICAgICAgICBBc3NlcnQuYXNzcnQgKHBhID09IHBiKTsKKyAgICAgICAgfQorICAgICAgICBBc3NlcnQuYXNzcnQoZkxhc3RTdGF0dXNJbmRleFZhbGlkID09IHRydWUpOworICAgICAgICBBc3NlcnQuYXNzcnQoZkxhc3RSdWxlU3RhdHVzSW5kZXggPj0gMCAgJiYgIGZMYXN0UnVsZVN0YXR1c0luZGV4IDwgZlJEYXRhLmZTdGF0dXNUYWJsZS5sZW5ndGgpOworICAgIH0KK30KKworCisvKioKKyAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBUaGUgdmFsdWVzIGFwcGVhciBpbiB0aGUgcnVsZSBzb3VyY2UKKyAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgRm9yIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUgcnVsZSBhcHBsaWVzLAorICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIHBvc3NpYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgKiA8cD4KKyAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzLCBvbmx5IHRoZSB3b3JkIGJyZWFrCisgKiBpdGVyYXRvciBwcm92aWRlcyBzdGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICogY2xhc3MgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwgYW5kIGFsbG93IGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRlcnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisgKiBtb3JlLiAgQ2FsbCA8Y29kZT5nZXRSdWxlU3RhdHVzPC9jb2RlPiBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8Y29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvciAKKyAqIGFueSBvdGhlciBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgKiA8cD4KKyAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgKgorICogQGRyYWZ0IElDVSAzLjAKKyAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgKi8KKworcHVibGljIGludCAgZ2V0UnVsZVN0YXR1cygpIHsKKyAgICBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisgICAgLy8gICBTdGF0dXMgcmVjb3JkcyBoYXZlIHRoaXMgZm9ybToKKyAgICAvLyAgICAgICAgICAgQ291bnQgTiAgICAgICAgIDwtLSAgZkxhc3RSdWxlU3RhdHVzSW5kZXggcG9pbnRzIGhlcmUuCisgICAgLy8gICAgICAgICAgIFN0YXR1cyB2YWwgMAorICAgIC8vICAgICAgICAgICBTdGF0dXMgdmFsIDEKKyAgICAvLyAgICAgICAgICAgICAgLi4uCisgICAgLy8gICAgICAgICAgIFN0YXR1cyB2YWwgTi0xICA8LS0gIHRoZSB2YWx1ZSB3ZSBuZWVkIHRvIHJldHVybgorICAgIC8vICAgVGhlIHN0YXR1cyB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuCisgICAgLy8gICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxhc3QgKGxhcmdlc3QpIG9mIHRoZSBhcnJheSBvZiBzdGF0dXMgdmFsdWVzLgorICAgIGludCAgaWR4ID0gZkxhc3RSdWxlU3RhdHVzSW5kZXggKyBmUkRhdGEuZlN0YXR1c1RhYmxlW2ZMYXN0UnVsZVN0YXR1c0luZGV4XTsKKyAgICBpbnQgIHRhZ1ZhbCA9IGZSRGF0YS5mU3RhdHVzVGFibGVbaWR4XTsKKworICAgIHJldHVybiB0YWdWYWw7Cit9CisKKworCisvKioKKyAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCAKKyAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgVGhlIHZhbHVlcyBhcHBlYXIgaW4gdGhlIHJ1bGUgc291cmNlCisgKiB3aXRoaW4gYnJhY2tldHMsIHsxMjN9LCBmb3IgZXhhbXBsZS4gIFRoZSBkZWZhdWx0IHN0YXR1cyB2YWx1ZSBmb3IgcnVsZXMKKyAqIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgcHJvdmlkZSBvbmUgaXMgemVyby4KKyAqIDxwPgorICogVGhlIHN0YXR1cyB2YWx1ZXMgdXNlZCBieSB0aGUgc3RhbmRhcmQgSUNVIGJyZWFrIHJ1bGVzIGFyZSBkZWZpbmVkCisgKiBhcyBwdWJsaWMgY29uc3RhbnRzIGluIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuCisgKiA8cD4KKyAqIElmIHRoZSBzaXplICBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGguICBObyBleGNlcHRpb24KKyAqICB3aWxsIGJlIHRocm93bi4KKyAqCisgKiBAcGFyYW0gZmlsbEluQXJyYXkgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuICAKKyAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQgCisgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCB0aGF0IHRoZSBhcnJheSBpcyB0b28gc21hbGwsIHRoZSByZXR1cm4gdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICogQGRyYWZ0IElDVSAzLjAKKyAqIEBwcm92aXNpb25hbCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgKi8KK3B1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1c1ZlYyhpbnRbXSBmaWxsSW5BcnJheSkgeworICAgIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKyAgICBpbnQgbnVtU3RhdHVzVmFscyA9IGZSRGF0YS5mU3RhdHVzVGFibGVbZkxhc3RSdWxlU3RhdHVzSW5kZXhdOworICAgIGlmIChmaWxsSW5BcnJheSAhPSBudWxsKSB7ICAKKyAgICAgICAgaW50IG51bVRvQ29weSA9IE1hdGgubWluKG51bVN0YXR1c1ZhbHMsIGZpbGxJbkFycmF5Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxudW1Ub0NvcHk7IGkrKykgeworICAgICAgICAgICAgZmlsbEluQXJyYXlbaV0gPSBmUkRhdGEuZlN0YXR1c1RhYmxlW2ZMYXN0UnVsZVN0YXR1c0luZGV4ICsgaSArIDFdOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudW1TdGF0dXNWYWxzOworIH0KKworCisvKioKKyAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuICBUaGlzIHZlcnNpb24KKyAqIG9mIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjdHVhbCBDaGFyYWN0ZXJJdGVyYXRvciB3ZSdyZSB1c2luZyBpbnRlcm5hbGx5LgorICogQ2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoaXMgaXRlcmF0b3IgY2FuIGhhdmUgdW5kZWZpbmVkIGNvbnNlcXVlbmNlcy4gIElmCisgKiB5b3UgbmVlZCB0byBjaGFuZ2UgaXQsIGNsb25lIGl0IGZpcnN0LgorICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGZUZXh0OworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgZlRleHQgPSBuZXdUZXh0OworICAgICAgICB0aGlzLmZpcnN0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnRyb2wgZGVidWcsIHRyYWNlIGFuZCBkdW1wIG9wdGlvbnMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBTdHJpbmcgZkRlYnVnRW52ID0gU3lzdGVtLmdldFByb3BlcnR5KCJVX1JCQklERUJVRyIpOworCisgICAgCisgICAgLy8gMzIgYml0IENoYXIgdmFsdWUgcmV0dXJuZWQgZnJvbSB3aGVuIGFuIGl0ZXJhdG9yIGhhcyBydW4gb3V0IG9mIHJhbmdlLgorICAgIC8vICAgICBQb3NpdGl2ZSB2YWx1ZSBzbyBmYXN0IGNhc2UgKG5vdCBlbmQsIG5vdCBzdXJyb2dhdGUpIGNhbiBiZSBjaGVja2VkCisgICAgLy8gICAgIHdpdGggYSBzaW5nbGUgdGVzdC4KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lfRE9ORTMyID0gMHg3ZmZmZmZmZjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlIHRoZSBpdGVyYXRvciBmb3J3YXJkIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQsIGFuZCByZXR1cm4gdGhhdCBjb2RlIHBvaW50LAorICAgICAqICAgbGVhdmluZyB0aGUgaXRlcmF0b3IgcG9zaXRpb25lZCBhdCBjaGFyIHJldHVybmVkLgorICAgICAqICAgRm9yIFN1cHBsZW1lbnRhcnkgY2hhcnMsIHRoZSBpdGVyYXRvciBpcyBsZWZ0IHBvc2l0aW9uZWQgYXQgdGhlIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaSAgVGhlIGNoYXJhY3RlciBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gICAgVGhlIG5leHQgY29kZSBwb2ludC4KKyAgICAgKi8KKyAgICAgc3RhdGljIGludCBDSU5leHQzMihDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBhdCBhIHN1cnJvZ2F0ZSBwYWlyLCBtb3ZlIHRvIHRoZSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgLy8gICB3aGljaCBsZWF2ZXMgaXQgaW4gcG9zaXRvbiBmb3IgdW5kZXJseWluZyBpdGVyYXRvcidzIG5leHQoKSB0byB3b3JrLgorICAgICAgICBpbnQgYz0gY2kuY3VycmVudCgpOworICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYgYzw9VVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBjID0gY2kubmV4dCgpOyAgIAorICAgICAgICAgICAgaWYgKGM8VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSB8fCBjPlVURjE2LlRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgIGMgPSBjaS5wcmV2aW91cygpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIEJNUCBjaGFycywgdGhpcyBuZXh0KCkgaXMgdGhlIHJlYWwgZGVhbC4KKyAgICAgICAgYyA9IGNpLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIElmIHdlIG1pZ2h0IGhhdmUgYSBsZWFkIHN1cnJvZ2F0ZSwgd2UgbmVlZCB0byBwZWFrIGFoZWFkIHRvIGdldCB0aGUgdHJhaWwgCisgICAgICAgIC8vICBldmVuIHRob3VnaCB3ZSBkb24ndCB3YW50IHRvIHJlYWxseSBiZSBwb3NpdGlvbmVkIHRoZXJlLgorICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGMgPSBDSU5leHRUcmFpbDMyKGNpLCBjKTsgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGMgPj0gVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYgYyAhPSBDSV9ET05FMzIpIHsKKyAgICAgICAgICAgIC8vIFdlIGdvdCBhIHN1cHBsZW1lbnRhcnkgY2hhci4gIEJhY2sgdGhlIGl0ZXJhdG9yIHVwIHRvIHRoZSBwb3N0aW9uCisgICAgICAgICAgICAvLyBvZiB0aGUgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICAgICBjaS5wcmV2aW91cygpOyAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgfQorCisgICAgCisgICAgLy8gT3V0LW9mLWxpbmUgcG9ydGlvbiBvZiB0aGUgaW4tbGluZSBOZXh0MzIgY29kZS4KKyAgICAvLyBUaGUgY2FsbCBzaXRlIGRvZXMgYW4gaW5pdGlhbCBjaS5uZXh0KCkgYW5kIGNhbGxzIHRoaXMgZnVuY3Rpb24KKyAgICAvLyAgICBpZiB0aGUgMTYgYml0IHZhbHVlIGl0IGdldHMgaXMgPj0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFLgorICAgIC8vIE5PVEU6ICB3ZSBsZWF2ZSB0aGUgdW5kZXJseWluZyBjaGFyIGl0ZXJhdG9yIHBvc2l0aW9uZWQgaW4gdGhlCisgICAgLy8gICAgICAgIG1pZGRsZSBvZiBhIHN1cnJvYWdlIHBhaXIuICBjaS5uZXh0KCkgd2lsbCB3b3JrIGNvcnJlY3RseQorICAgIC8vICAgICAgICBmcm9tIHRoZXJlLCBidXQgdGhlIGNpLmdldEluZGV4KCkgd2lsbCBiZSB3cm9uZywgYW5kIG5lZWRzCisgICAgLy8gICAgICAgIGFkanVzdG1lbnQuCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IENJTmV4dFRyYWlsMzIoQ2hhcmFjdGVySXRlcmF0b3IgY2ksIGludCBsZWFkKSB7CisgICAgICAgIGludCByZXRWYWwgPSBsZWFkOworICAgICAgICBpZiAobGVhZCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIGNoYXIgIGNUcmFpbCA9IGNpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNUcmFpbCkpIHsKKyAgICAgICAgICAgICAgICByZXRWYWwgPSAoKGxlYWQgIC0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSA8PCAxMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjVHJhaWwgLSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNpLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobGVhZCA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGNpLmdldEluZGV4KCkgPj0gY2kuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9IENJX0RPTkUzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0VmFsOworICAgIH0KKyAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lQcmV2aW91czMyKENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgICAgIGlmIChjaS5nZXRJbmRleCgpIDw9IGNpLmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIENJX0RPTkUzMjsgICAKKyAgICAgICAgfQorICAgICAgICBjaGFyIHRyYWlsID0gY2kucHJldmlvdXMoKTsKKyAgICAgICAgaW50IHJldFZhbCA9IHRyYWlsOworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkgJiYgY2kuZ2V0SW5kZXgoKT5jaS5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IGNpLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgcmV0VmFsID0gKCgoaW50KWxlYWQgIC0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSA8PCAxMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoKGludCl0cmFpbCAtIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNpLm5leHQoKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorICAgCisgICAgc3RhdGljIGludCBDSUN1cnJlbnQzMihDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICBjaGFyICBsZWFkICAgPSBjaS5jdXJyZW50KCk7CisgICAgICAgIGludCAgIHJldFZhbCA9IGxlYWQ7CisgICAgICAgIGlmIChyZXRWYWwgPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiByZXRWYWw7ICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgaW50ICB0cmFpbCA9IChpbnQpY2kubmV4dCgpOworICAgICAgICAgICAgY2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKXRyYWlsKSkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9ICgobGVhZCAgLSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIDw8IDEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYWlsIC0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZWFkID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2kuZ2V0SW5kZXgoKSA+PSBjaS5nZXRFbmRJbmRleCgpKSAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0VmFsID0gQ0lfRE9ORTMyOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9CisgICAgCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgICAgIGhhbmRsZU5leHQodm9pZCkgICAgQWxsIGZvcndhcmQgaXRlcmF0aW9uIHZlY3RvcnMgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RFOiAgVGhpcyBmdW5jdGlvbiBpcyBvdmVycmlkZGVuIGJ5IHRoZSBkaWN0aW9uYXJ5IGJhc2UgYnJlYWsgaXRlcmF0b3IuCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIGxldmVsIEFQSSBmdW5jdGlvbnMgZ28gdG8gdGhlIGRiYmkgaW1wbGVtZW50YXRpb24KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHRoZSBicmVhayBpdGVyYXRvciB0eXBlIGlzIGRiYmkuCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgREJCSSBpbXBsZW1lbnRhdGlvbiBzb21ldGltZXMgZXhwbGljaXRseSBjYWxscyBiYWNrIHRvIGhlcmUsIAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0cyBpbmhlcml0ZWQgaGFuZGxlTmV4dCgpLgorICAgIC8vICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBpbnQgaGFuZGxlTmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZU5leHQoZlJEYXRhLmZGVGFibGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBTdGF0ZSBNYWNoaW5lIEVuZ2luZSBmb3IgbW92aW5nIGZvcndhcmQgaXMgaGVyZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBoZWFydCBvZiB0aGUgUkJCSSBydW4gdGltZSBlbmdpbmUuCisgICAgICogCisgICAgICogQHBhcmFtIHN0YXRlVGFibGUKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgaXRlcmF0b3IgcG9zaXRpb24KKyAgICAgKiAKKyAgICAgKiBBIG5vdGUgb24gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIGFuZCB0aGUgcG9zaXRpb24gb2YgdW5kZXJseWluZworICAgICAqIEphdmEgQ2hhcmFjdGVySXRlcmF0b3I6ICAgTm9ybWFsbHksIGEgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIHBvc2l0aW9uZWQgYXQKKyAgICAgKiB0aGUgY2hhciBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJ5IG5leHQoKS4gIFdpdGhpbiB0aGlzIGZ1bmN0aW9uLCB3aGVuCisgICAgICogYSBzdXBwbGVtZW50YXJ5IGNoYXIgaXMgYmVpbmcgcHJvY2Vzc2VkLCB0aGUgY2hhciBpdGVyYXRvciBpcyBsZWZ0CisgICAgICogc2l0dGluZyBvbiB0aGUgdHJhaWwgc3Vycm9nYXRlLCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjb2RlIHBvaW50LgorICAgICAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gZXZlcnl3aGVyZSBlbHNlLCB3aGVyZSBhbiBpdGVyYXRvciBhbHdheXMKKyAgICAgKiBwb2ludHMgYXQgdGhlIGxlYWQgc3Vycm9nYXRlIG9mIGEgc3VwcGxlbWVudGFyeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBoYW5kbGVOZXh0KHNob3J0IHN0YXRlVGFibGVbXSkgeworICAgICAgICBpbnQgICAgICAgICAgICAgICBzdGF0ZTsKKyAgICAgICAgc2hvcnQgICAgICAgICAgICAgY2F0ZWdvcnkgICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgbW9kZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgcm93OworICAgICAgICBpbnQgICAgICAgICAgICAgICBjOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRUYWdJZHggPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICByZXN1bHQgICAgICAgICAgPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBpbml0aWFsUG9zaXRpb24gPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQgPSAwOworICAgICAgICBib29sZWFuICAgICAgICAgIGxvb2tBaGVhZEhhcmRCcmVhayA9IAorICAgICAgICAgICAgKHN0YXRlVGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTKzFdICYgUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUspICE9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBOZXh0ICAgcG9zICAgICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vIG1hdHRlciB3aGF0LCBoYW5kbGVOZXh0IGFsd2F5IGNvcnJlY3RseSBzZXRzIHRoZSBicmVhayB0YWcgdmFsdWUuCisgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisKKyAgICAgICAgLy8gaWYgd2UncmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LCByZXR1cm4gRE9ORS4KKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gMDsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdXAgdGhlIHN0YXJ0aW5nIGNoYXIKKyAgICAgICAgaW5pdGlhbFBvc2l0aW9uID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmVzdWx0ICAgICAgICAgID0gaW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjICAgICAgICAgICAgICAgPSBmVGV4dC5jdXJyZW50KCk7CisgICAgICAgIGlmIChjID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgYyA9IENJTmV4dFRyYWlsMzIoZlRleHQsIGMpOworICAgICAgICAgICAgaWYgKGMgPT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggPSAwOworICAgICAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoZSBzdGF0ZSBtYWNoaW5lCisgICAgICAgIHN0YXRlICAgICAgICAgICA9IFNUQVJUX1NUQVRFOworICAgICAgICByb3cgICAgICAgICAgICAgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOyAKKyAgICAgICAgY2F0ZWdvcnkgICAgICAgID0gMzsKKyAgICAgICAgbW9kZSAgICAgICAgICAgID0gUkJCSV9SVU47CisgICAgICAgIGlmICgoc3RhdGVUYWJsZVtSQkJJRGF0YVdyYXBwZXIuRkxBR1MrMV0gJiBSQkJJRGF0YVdyYXBwZXIuUkJCSV9CT0ZfUkVRVUlSRUQpICE9IDApIHsKKyAgICAgICAgICAgIGNhdGVnb3J5ID0gMjsKKyAgICAgICAgICAgIG1vZGUgICAgID0gUkJCSV9TVEFSVDsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gbG9vcCB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9yIHRyYW5zaXRpb24gdG8gc3RhdGUgMAorICAgICAgICB3aGlsZSAoc3RhdGUgIT0gU1RPUF9TVEFURSkgeworICAgICAgICAgICAgaWYgKGMgPT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2YgaW5wdXQgc3RyaW5nLgorICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfRU5EKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBydW4gdGhlIGxvb3Agb25lIGxhc3QgdGltZSB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgc2V0IHRvIHRoZSBwc2V1ZG8ge2VvZn0gdmFsdWUuIE5vdyBpdCBpcyB0aW1lCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVuY29uZGl0aW9uYWxseSBiYWlsIG91dC4KKworICAgICAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aXRoIGEgcGVuZGluZworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vay1haGVhZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIGxvb2stYWhlYWQgY29uZGl0aW9uIGhhZCBiZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtZXQsIGFuZCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBtYXRjaCBhdCB0aGUgLyBwb3NpdGlvbiBmcm9tIHRoZSBsb29rLWFoZWFkIHJ1bGUuCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IGxvb2thaGVhZFRhZ0lkeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IGluaXRpYWxQb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiBlbmQsIG5vIG1hdGNoIGZvdW5kLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW92ZSBmb3J3YXJkIG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgoaW5pdGlhbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUnVuIHRoZSBsb29wIG9uZSBsYXN0IHRpbWUgd2l0aCB0aGUgZmFrZSBlbmQtb2YtaW5wdXQgY2hhcmFjdGVyIGNhdGVnb3J5CisgICAgICAgICAgICAgICAgbW9kZSA9IFJCQklfRU5EOworICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gR2V0IHRoZSBjaGFyIGNhdGVnb3J5LiAgQW4gaW5jb21pbmcgY2F0ZWdvcnkgb2YgMSBvciAyIG1lbnMgdGhhdAorICAgICAgICAgICAgLy8gICAgICB3ZSBhcmUgcHJlc2V0IGZvciBkb2luZyB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBpbnB1dCwgYW5kCisgICAgICAgICAgICAvLyAgICAgIHRoYXQgd2Ugc2hvdWxkbid0IGdldCBhIGNhdGVnb3J5IGZyb20gYW4gYWN0dWFsIHRleHQgaW5wdXQgY2hhcmFjdGVyLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgY3VycmVudCBjaGFyYWN0ZXIncyBjaGFyYWN0ZXIgY2F0ZWdvcnksIHdoaWNoIHRlbGxzIHVzCisgICAgICAgICAgICAgICAgLy8gd2hpY2ggY29sdW1uIGluIHRoZSBzdGF0ZSB0YWJsZSB0byBsb29rIGF0LgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAoc2hvcnQpIGZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgZGljdGlvbmFyeSBiaXQgaW4gdGhlIGNoYXJhY3RlcidzIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIC8vICAgIENvdW50ZXIgaXMgb25seSB1c2VkIGJ5IGRpY3Rpb25hcnkgYmFzZWQgaXRlcmF0b3JzIChzdWJjbGFzc2VzKS4KKyAgICAgICAgICAgICAgICAvLyAgICBDaGFycyB0aGF0IG5lZWQgdG8gYmUgaGFuZGxlZCBieSBhIGRpY3Rpb25hcnkgaGF2ZSBhIGZsYWcgYml0IHNldAorICAgICAgICAgICAgICAgIC8vICAgIGluIHRoZWlyIGNhdGVnb3J5IHZhbHVlcy4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICgoY2F0ZWdvcnkgJiAweDQwMDApICE9IDApICB7CisgICAgICAgICAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIC8vICBBbmQgb2ZmIHRoZSBkaWN0aW9uYXJ5IGZsYWcgYml0LgorICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSAmPSB+MHg0MDAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgICAgIiArICBSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoZlRleHQuZ2V0SW5kZXgoKSwgNSkpOyAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFJCQklEYXRhV3JhcHBlci5pbnRUb0hleFN0cmluZyhjLCAxMCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoc3RhdGUsNykgKyBSQkJJRGF0YVdyYXBwZXIuaW50VG9TdHJpbmcoY2F0ZWdvcnksNikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBsb29rIHVwIGEgc3RhdGUgdHJhbnNpdGlvbiBpbiB0aGUgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIC8vICAgICBzdGF0ZSA9IHJvdy0+Zk5leHRTdGF0ZVtjYXRlZ29yeV07CisgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLk5FWFRTVEFURVMgKyBjYXRlZ29yeV07CisgICAgICAgICAgICByb3cgICA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7ICAKKworICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuICAKKyAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBiZWdpbm5pbmctb2YtaW5wdXQgbG9vcCBpdGVyYXRpb24sIGRvbid0IGFkdmFuY2UuCisgICAgICAgICAgICAvLyAgICBUaGUgbmV4dCBpdGVyYXRpb24gd2lsbCBiZSBwcm9jZXNzaW5nIHRoZSBmaXJzdCByZWFsIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgYyA9IChpbnQpZlRleHQubmV4dCgpOyAKKyAgICAgICAgICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IENJTmV4dFRyYWlsMzIoZlRleHQsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gUkJCSV9TVEFSVCkgeworICAgICAgICAgICAgICAgICAgICBtb2RlID0gUkJCSV9SVU47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBNYXRjaCBmb3VuZCwgY29tbW9uIGNhc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChjID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICYmIGMgIT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpdGVyYXRvciBoYXMgYmVlbiBsZWZ0IGluIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpci4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgc3RhcnQgb2YgaXQuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vICBSZW1lbWJlciB0aGUgYnJlYWsgc3RhdHVzICh0YWcpIHZhbHVlcy4KKyAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLlRBR0lEWF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkU3RhdHVzICE9IDAKKyAgICAgICAgICAgICAgICAgICAgJiYgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSBsb29rYWhlYWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTG9va2FoZWFkIG1hdGNoIGlzIGNvbXBsZXRlZC4gIFNldCB0aGUgcmVzdWx0IGFjY29yZGluZ2x5LCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAvLyBpZiBubyBvdGhlciBydWxlIGhhcyBtYXRjaGVkIGZ1cnRoZXIgaW4gdGhlIG1lYW4gdGltZS4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgICAgICAgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gbG9va2FoZWFkVGFnSWR4OworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG1ha2UgYSBzdGFuZGFsb25lIGhhcmQgYnJlYWsgaW4gYSBydWxlIHdvcmsuCisgICAgICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRIYXJkQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gTG9vay1haGVhZCBjb21wbGV0ZWQsIGJ1dCBvdGhlciBydWxlcyBtYXkgbWF0Y2ggZnVydGhlci4gIENvbnRpbnVlIG9uLgorICAgICAgICAgICAgICAgICAgICAvLyAgIFRPRE86ICBqdW5rIHRoaXMgZmVhdHVyZT8gIEkgZG9uJ3QgdGhpbmsgaXQncyB1c2VkIGFueXdoZXJlLgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChjPj1VVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJiBjIT1DSV9ET05FMzIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGl0ZXJhdG9yIGhhcyBiZWVuIGxlZnQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBiZWdpbm5pbmcgIG9mIGl0LgorICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRSZXN1bHQtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXTsKKyAgICAgICAgICAgICAgICBsb29rYWhlYWRUYWdJZHggPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5UQUdJRFhdOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5BQ0NFUFRJTkddICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoaXMgaXMgYW4gYWNjZXB0aW5nIHN0YXRlLCBhbnkgaW4tcHJvZ3Jlc3MgbG9vay1haGVhZCBtYXRjaAorICAgICAgICAgICAgICAgIC8vICAgaXMgbm8gbG9uZ2VyIHJlbGF2YW50LiAgQ2xlYXIgb3V0IHRoZSBwZW5kaW5nIGxvb2thaGVhZCBzdGF0dXMuCisgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gMDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgIH0gICAgICAgIC8vIEVuZCBvZiBzdGF0ZSBtYWNoaW5lIG1haW4gbG9vcAorCisgICAgICAgIC8vIFRoZSBzdGF0ZSBtYWNoaW5lIGlzIGRvbmUuICBDaGVjayB3aGV0aGVyIGl0IGZvdW5kIGEgbWF0Y2guLi4KKworICAgICAgICAvLyBJZiB0aGUgaXRlcmF0b3IgZmFpbGVkIHRvIGFkdmFuY2UgaW4gdGhlIG1hdGNoIGVuZ2luZSwgZm9yY2UgaXQgYWhlYWQgYnkgb25lLgorICAgICAgICAvLyAgIChUaGlzIHJlYWxseSBpbmRpY2F0ZXMgYSBkZWZlY3QgaW4gdGhlIGJyZWFrIHJ1bGVzLiAgVGhleSBzaG91bGQgYWx3YXlzIG1hdGNoCisgICAgICAgIC8vICAgIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIuKQorICAgICAgICBpZiAocmVzdWx0ID09IGluaXRpYWxQb3NpdGlvbikgeworICAgICAgICAgICAgcmVzdWx0ID0gZlRleHQuc2V0SW5kZXgoaW5pdGlhbFBvc2l0aW9uKTsKKyAgICAgICAgICAgIENJTmV4dDMyKGZUZXh0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBMZWF2ZSB0aGUgaXRlcmF0b3IgYXQgb3VyIHJlc3VsdCBwb3NpdGlvbi4KKyAgICAgICAgLy8gICAod2UgbWF5IGhhdmUgYWR2YW5jZWQgYmV5b25kIHRoZSBsYXN0IGFjY2VwdGluZyBwb3NpdGlvbiBjaGFzaW5nIGFmdGVyCisgICAgICAgIC8vICAgIGxvbmdlciBtYXRjaGVzIHRoYXQgbmV2ZXIgY29tcGxldGVkLikKKyAgICAgICAgZlRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXN1bHQgPSAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIAorICAgIAorICAgIHByaXZhdGUgaW50IGhhbmRsZVByZXZpb3VzKHNob3J0IHN0YXRlVGFibGVbXSkgeworICAgICAgICBpbnQgICAgICAgICAgICBzdGF0ZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgY2F0ZWdvcnkgICAgICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgICAgICAgICAgbW9kZTsKKyAgICAgICAgaW50ICAgICAgICAgICAgcm93OyAgICAgICAgCisgICAgICAgIGludCAgICAgICAgICAgIGM7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbiAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgIGxvb2tBaGVhZEhhcmRCcmVhayA9IAorICAgICAgICAgICAgKHN0YXRlVGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTKzFdICYgUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUspICE9IDA7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgc3RhdGVUYWJsZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBoYW5kbGVQcmV2aW91cygpIG5ldmVyIGdldHMgdGhlIHJ1bGUgc3RhdHVzLgorICAgICAgICAvLyBGbGFnIHRoZSBzdGF0dXMgYXMgaW52YWxpZDsgaWYgdGhlIHVzZXIgZXZlciBhc2tzIGZvciBzdGF0dXMsIHdlIHdpbGwgbmVlZAorICAgICAgICAvLyB0byBiYWNrIHVwLCB0aGVuIHJlLWZpbmQgdGhlIGJyZWFrIHBvc2l0aW9uIHVzaW5nIGhhbmRsZU5leHQoKSwgd2hpY2ggZG9lcworICAgICAgICAvLyBnZXQgdGhlIHN0YXR1cyB2YWx1ZS4KKyAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gZmFsc2U7CisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgIAorICAgICAgICAvLyBzZXQgdXAgdGhlIHN0YXJ0aW5nIGNoYXIKKyAgICAgICAgaW5pdGlhbFBvc2l0aW9uID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmVzdWx0ICAgICAgICAgID0gaW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjICAgICAgICAgICAgICAgPSBDSVByZXZpb3VzMzIoZlRleHQpOworICAgICAgICAKKyAgICAgICAgLy8gU2V0IHVwIHRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgc3RhdGUgbWFjaGluZQorICAgICAgICBzdGF0ZSA9IFNUQVJUX1NUQVRFOworICAgICAgICByb3cgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOworICAgICAgICBjYXRlZ29yeSA9IDM7ICAgLy8gVE9ETzogIG9ic29sZXRlPyAgZnJvbSB0aGUgb2xkIHN0YXJ0L3J1biBtb2RlIHNjaGVtZT8KKyAgICAgICAgbW9kZSAgICAgPSBSQkJJX1JVTjsKKyAgICAgICAgaWYgKChzdGF0ZVRhYmxlW1JCQklEYXRhV3JhcHBlci5GTEFHUysxXSAmIFJCQklEYXRhV3JhcHBlci5SQkJJX0JPRl9SRVFVSVJFRCkgIT0gMCkgeworICAgICAgICAgICAgY2F0ZWdvcnkgPSAyOworICAgICAgICAgICAgbW9kZSAgICAgPSBSQkJJX1NUQVJUOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBQcmV2ICAgcG9zICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGxvb3AgdW50aWwgd2UgcmVhY2ggdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBvciB0cmFuc2l0aW9uIHRvIHN0YXRlIDAKKyAgICAgICAgLy8KKyAgICAgICAgbWFpbkxvb3A6IGZvciAoOzspIHsKKyAgICAgICAgICAgIGlubmVyQmxvY2s6IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBDSV9ET05FMzIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2YgaW5wdXQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBSQkJJX0VORCB8fCBmUkRhdGEuZkhlYWRlci5mVmVyc2lvbiA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgb2xkIChJQ1UgMy4yIGFuZCBlYXJsaWVyKSBmb3JtYXQgZGF0YSB3aGljaAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3Qgc3VwcG9ydCBleHBsaWNpdCBzdXBwb3J0IGZvciBtYXRjaGluZyB7ZW9mfSwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYWxyZWFkeSBkb25lIHRoZSB7ZW9mfSBpdGVyYXRpb24uICBOb3cgaXMgdGhlIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHVuY29uZGl0aW9uYWxseSBiYWlsIG91dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb29rYWhlYWRSZXN1bHQgPCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aXRoIGEgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIGxvb2stYWhlYWQgY29uZGl0aW9uIGhhZCBiZWVuIG1ldCwgYW5kIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICB0aGUgbWF0Y2ggYXQgdGhlIC8gcG9zaXRpb24gZnJvbSB0aGUgbG9vay1haGVhZCBydWxlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gaW5pdGlhbFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiBzdGFydCwgbm8gbWF0Y2ggZm91bmQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBvbmUgcG9zaXRpb24gKHRvd2FyZHMgdGhlIHN0YXJ0LCBzaW5jZSB3ZSBhcmUgZG9pbmcgcHJldmlvdXMuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KGluaXRpYWxQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBSQkJJX0VORDsKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBSQkJJX1JVTikgeworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIHVwIHRoZSBjdXJyZW50IGNoYXJhY3RlcidzIGNhdGVnb3J5LCB3aGljaCB0ZWxscyB1cworICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjb2x1bW4gaW4gdGhlIHN0YXRlIHRhYmxlIHRvIGxvb2sgYXQuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gKHNob3J0KSBmUkRhdGEuZlRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgZGljdGlvbmFyeSBiaXQgaW4gdGhlIGNoYXJhY3RlcidzIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgICAgICAvLyAgICBDb3VudGVyIGlzIG9ubHkgdXNlZCBieSBkaWN0aW9uYXJ5IGJhc2VkIGl0ZXJhdG9ycyAoc3ViY2xhc3NlcykuCisgICAgICAgICAgICAgICAgICAgIC8vICAgIENoYXJzIHRoYXQgbmVlZCB0byBiZSBoYW5kbGVkIGJ5IGEgZGljdGlvbmFyeSBoYXZlIGEgZmxhZyBiaXQgc2V0CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGluIHRoZWlyIGNhdGVnb3J5IHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgaWYgKChjYXRlZ29yeSAmIDB4NDAwMCkgIT0gMCkgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgQW5kIG9mZiB0aGUgZGljdGlvbmFyeSBmbGFnIGJpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ICY9IH4weDQwMDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgICAgIiArIGZUZXh0LmdldEluZGV4KCkgKyAiICAgIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgweDIwIDw9IGMgJiYgYyA8IDB4N2YpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIiArIGMgKyAiICAiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgIiArIHN0YXRlICsgIiAgIiArIGNhdGVnb3J5ICsgIiAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gU3RhdGUgVHJhbnNpdGlvbiAtIG1vdmUgbWFjaGluZSB0byBpdHMgbmV4dCBzdGF0ZQorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY2F0ZWdvcnldOworICAgICAgICAgICAgICAgIHJvdyA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggZm91bmQsIGNvbW1vbiBjYXNlLCBjb3VsZCBoYXZlIGxvb2thaGVhZCBzbyB3ZSBtb3ZlCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIHRvIGNoZWNrIGl0CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXR1cyAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSBsb29rYWhlYWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvb2thaGVhZCBtYXRjaCBpcyBjb21wbGV0ZWQuIFNldCB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmdseSwgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIG5vIG90aGVyIHJ1bGUgaGFzIG1hdGNoZWQgZnVydGhlciBpbiB0aGUgbWVhbgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBtYWtlIGEgc3RhbmRhbG9uZSBoYXJkIGJyZWFrIGluIGEgcnVsZSB3b3JrLgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9va0FoZWFkSGFyZEJyZWFrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rLWFoZWFkIGNvbXBsZXRlZCwgYnV0IG90aGVyIHJ1bGVzIG1heSBtYXRjaCBmdXJ0aGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGludWUgb24uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBqdW5rIHRoaXMgZmVhdHVyZT8gIEkgZG9uJ3QgdGhpbmsgdGhhdCBpdCdzIHVzZWQgYW55d2hlcmUuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBpbm5lckJsb2NrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIEhpdCBhIHBvc3NpYmxlIGxvb2stYWhlYWQgbWF0Y2guIFdlIGFyZSBhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlICcvJy4gUmVtZW1iZXIgdGhpcyBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkUmVzdWx0ID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW5uZXJCbG9jazsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIG5vdCBsb29rYWhlYWQuLi4KKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwbGFpbiAobm9uLWxvb2stYWhlYWQpIGFjY2VwdGluZyBzdGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFsb29rQWhlYWRIYXJkQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIG91dCBhbnkgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBpZiBub3QgZG9pbmcgdGhlIGxvb2tBaGVhZEhhcmRCcmVhayBvcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIG5lZWRzIHRvIGZvcmNlIGEgYnJlYWsgbm8gbWF0dGVyIHdoYXQgaXMgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG1hdGNoLCBpLmUuIHdlIGNhbid0IGFiYW5kb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgcGFydGlhbGx5IGNvbXBsZXRlZCBsb29rLWFoZWFkIG1hdGNoIGJlY2F1c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWUgb3RoZXIgcnVsZSBtYXRjaGVkIGZ1cnRoZXIgdGhhbiB0aGUgJy8nIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbG9vay1haGVhZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7IAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAvLyBlbmQgb2YgaW5uZXJCbG9jay4gICJicmVhayBpbm5lckJsb2NrIiBpbiBhYm92ZSBjb2RlIGNvbWVzIG91dCBoZXJlLgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhdGUgPT0gU1RPUF9TVEFURSkgeworICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBsb29wIGV4aXQgaXMgaGVyZQorICAgICAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8vIHRoZW4gbW92ZSBpdGVyYXRvciBwb3NpdGlvbiBiYWNrd2FyZHMgb25lIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfUlVOKSB7CisgICAgICAgICAgICAgICAgYyA9IENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFJCQklfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFJCQklfUlVOOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB9ICAgLy8gRW5kIG9mIHRoZSBtYWluIGxvb3AuCisgICAgICAgIAorICAgICAgICAvLyBUaGUgc3RhdGUgbWFjaGluZSBpcyBkb25lLiAgQ2hlY2sgd2hldGhlciBpdCBmb3VuZCBhIG1hdGNoLi4uCisgICAgICAgIC8vCisgICAgICAgIC8vIElmIHRoZSBpdGVyYXRvciBmYWlsZWQgdG8gYWR2YW5jZSBpbiB0aGUgbWF0Y2ggZW5naW5lLCBmb3JjZSBpdCBhaGVhZCBieSBvbmUuCisgICAgICAgIC8vICAgKFRoaXMgcmVhbGx5IGluZGljYXRlcyBhIGRlZmVjdCBpbiB0aGUgYnJlYWsgcnVsZXMuICBUaGV5IHNob3VsZCBhbHdheXMgbWF0Y2gKKyAgICAgICAgLy8gICAgYXQgbGVhc3Qgb25lIGNoYXJhY3Rlci4pCisgICAgICAgIGlmIChyZXN1bHQgPT0gaW5pdGlhbFBvc2l0aW9uKSB7CisgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5zZXRJbmRleChpbml0aWFsUG9zaXRpb24pOworICAgICAgICAgICAgQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIGlmIChmVHJhY2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0ID0gIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisKKworCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vICBpc0RpY3Rpb25hcnlDaGFyICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwCisgICAgCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBjaGFycy4KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQKKyAgICAKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAKKyAgICAvLworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGJvb2xlYW4gaXNEaWN0aW9uYXJ5Q2hhcihpbnQgYykgeworICAgIAorICAgICAgICBzaG9ydCAgY2F0ZWdvcnkgPSAoc2hvcnQpIGZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIChjYXRlZ29yeSAmIDB4NDAwMCkgIT0gMDsKKyAgICAKKyAgICB9CisKK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRDb2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZjFmNjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDQ2NzggQEAKKy8vIyNoZWFkZXIKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCitpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKKy8vI2Vsc2UKKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5CeXRlQnVmZmVyOworLy8jZW5kaWYKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQk9DVTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURlYnVnOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbXBsaWNpdENFR2VuZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW50VHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisgKiA8cD5SdWxlQmFzZWRDb2xsYXRvciBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENvbGxhdG9yLiBJdCBhbGxvd3MKKyAqIGN1c3RvbWl6YXRpb24gb2YgdGhlIENvbGxhdG9yIHZpYSB1c2VyLXNwZWNpZmllZCBydWxlIHNldHMuCisgKiBSdWxlQmFzZWRDb2xsYXRvciBpcyBkZXNpZ25lZCB0byBiZSBmdWxseSBjb21wbGlhbnQgdG8gdGhlIDxhCisgKiBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUKKyAqIENvbGxhdGlvbiBBbGdvcml0aG0gKFVDQSk8L2E+IGFuZCBjb25mb3JtcyB0byBJU08gMTQ2NTEuPC9wPgorICoKKyAqIDxwPlVzZXJzIGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHJlYWQgPGEKKyAqIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0ludHJvLmh0bWwiPgorICogdGhlIHVzZXJzIGd1aWRlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uCisgKiBzZXJ2aWNlIGJlZm9yZSB1c2luZyB0aGlzIGNsYXNzLjwvcD4KKyAqCisgKiA8cD5DcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciBmcm9tIGEgbG9jYWxlIGJ5IGNhbGxpbmcgdGhlCisgKiBnZXRJbnN0YW5jZShMb2NhbGUpIGZhY3RvcnkgbWV0aG9kIGluIHRoZSBiYXNlIGNsYXNzIENvbGxhdG9yLgorICogQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlKSBjcmVhdGVzIGEgUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0CisgKiBiYXNlZCBvbiB0aGUgY29sbGF0aW9uIHJ1bGVzIGRlZmluZWQgYnkgdGhlIGFyZ3VtZW50IGxvY2FsZS4gIElmIGEKKyAqIGN1c3RvbWl6ZWQgY29sbGF0aW9uIG9yZGVyaW5nIGFyIGF0dHJpYnV0ZXMgaXMgcmVxdWlyZWQsIHVzZSB0aGUKKyAqIFJ1bGVCYXNlZENvbGxhdG9yKFN0cmluZykgY29uc3RydWN0b3Igd2l0aCB0aGUgYXBwcm9wcmlhdGUKKyAqIHJ1bGVzLiBUaGUgY3VzdG9taXplZCBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIGJhc2UgaXRzIG9yZGVyaW5nIG9uCisgKiBVQ0EsIHdoaWxlIHJlLWFkanVzdGluZyB0aGUgYXR0cmlidXRlcyBhbmQgb3JkZXJzIG9mIHRoZSBjaGFyYWN0ZXJzCisgKiBpbiB0aGUgc3BlY2lmaWVkIHJ1bGUgYWNjb3JkaW5nbHkuPC9wPgorICoKKyAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIHByb3ZpZGVzIGNvcnJlY3QgY29sbGF0aW9uIG9yZGVycyBmb3IgbW9zdAorICogbG9jYWxlcyBzdXBwb3J0ZWQgaW4gSUNVLiBJZiBzcGVjaWZpYyBkYXRhIGZvciBhIGxvY2FsZSBpcyBub3QKKyAqIGF2YWlsYWJsZSwgdGhlIG9yZGVycyBldmVudHVhbGx5IGZhbGxzIGJhY2sgdG8gdGhlIDxhCisgKiBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+VUNBIGNvbGxhdGlvbgorICogb3JkZXIgPC9hPi48L3A+CisgKgorICogPHA+Rm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2xsYXRpb24gcnVsZSBzeW50YXggYW5kIGRldGFpbHMKKyAqIGFib3V0IGN1c3RvbWl6YXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0N1c3RvbWl6YXRpb24uaHRtbCI+CisgKiBDb2xsYXRpb24gY3VzdG9taXphdGlvbjwvYT4gc2VjdGlvbiBvZiB0aGUgdXNlcidzIGd1aWRlLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhhdCB0aGVyZSBhcmUgc29tZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisgKiB0aGUgQ29sbGF0aW9uIHJ1bGUgc3ludGF4IHVzZWQgaW4gSmF2YSBhbmQgSUNVNEo6CisgKgorICogPHVsPgorICogPGxpPkFjY29yZGluZyB0byB0aGUgSkRLIGRvY3VtZW50YXRpb246CisgKiA8aT4KKyAqIDxwPgorICogTW9kaWZpZXIgJyEnIDogVHVybnMgb24gVGhhaS9MYW8gdm93ZWwtY29uc29uYW50IHN3YXBwaW5nLiBJZiB0aGlzIHJ1bGUKKyAqIGlzIGluIGZvcmNlIHdoZW4gYSBUaGFpIHZvd2VsIG9mIHRoZSByYW5nZSAmIzkyO1UwRTQwLSYjOTI7VTBFNDQgcHJlY2VkZXMgYQorICogVGhhaSBjb25zb25hbnQgb2YgdGhlIHJhbmdlICYjOTI7VTBFMDEtJiM5MjtVMEUyRSBPUiBhIExhbyB2b3dlbCBvZiB0aGUKKyAqIHJhbmdlICYjOTI7VTBFQzAtJiM5MjtVMEVDNCBwcmVjZWRlcyBhIExhbyBjb25zb25hbnQgb2YgdGhlIHJhbmdlCisgKiAmIzkyO1UwRTgxLSYjOTI7VTBFQUUgdGhlbiB0aGUKKyAqIHZvd2VsIGlzIHBsYWNlZCBhZnRlciB0aGUgY29uc29uYW50IGZvciBjb2xsYXRpb24gcHVycG9zZXMuCisgKiA8L3A+CisgKiA8cD4KKyAqIElmIGEgcnVsZSBpcyB3aXRob3V0IHRoZSBtb2RpZmllciAnIScsIHRoZSBUaGFpL0xhbyB2b3dlbC1jb25zb25hbnQKKyAqIHN3YXBwaW5nIGlzIG5vdCB0dXJuZWQgb24uCisgKiA8L3A+CisgKiA8L2k+CisgKiA8cD4KKyAqIElDVTRKJ3MgUnVsZUJhc2VkQ29sbGF0b3IgZG9lcyBub3Qgc3VwcG9ydCB0dXJuaW5nIG9mZiB0aGUgVGhhaS9MYW8KKyAqIHZvd2VsLWNvbnNvbmFudCBzd2FwcGluZywgc2luY2UgdGhlIFVDQSBjbGVhcmx5IHN0YXRlcyB0aGF0IGl0IGhhcyB0byBiZQorICogc3VwcG9ydGVkIHRvIGVuc3VyZSBhIGNvcnJlY3Qgc29ydGluZyBvcmRlci4gSWYgYSAnIScgaXMgZW5jb3VudGVyZWQsIGl0IGlzCisgKiBpZ25vcmVkLgorICogPC9wPgorICogPGxpPkFzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYmFzZSBjbGFzcyBDb2xsYXRvciwKKyAqICAgICBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gbW9kZSBpcyBub3Qgc3VwcG9ydGVkLgorICogPC91bD4KKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPgorICogPC9wPgorICogPHA+CisgKiBDcmVhdGluZyBDdXN0b21pemVkIFJ1bGVCYXNlZENvbGxhdG9yczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFN0cmluZyBzaW1wbGUgPSAiJmFtcDsgYSAmbHQ7IGIgJmx0OyBjICZsdDsgZCI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBzaW1wbGVDb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihzaW1wbGUpOworICoKKyAqIFN0cmluZyBub3J3ZWdpYW4gPSAiJmFtcDsgYSAsIEEgJmx0OyBiICwgQiAmbHQ7IGMgLCBDICZsdDsgZCAsIEQgJmx0OyBlICwgRSAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiJmx0OyBmICwgRiAmbHQ7IGcgLCBHICZsdDsgaCAsIEggJmx0OyBpICwgSSAmbHQ7IGogLCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiSiAmbHQ7IGsgLCBLICZsdDsgbCAsIEwgJmx0OyBtICwgTSAmbHQ7IG4gLCBOICZsdDsgIgorICogICAgICAgICAgICAgICAgICAgICsgIm8gLCBPICZsdDsgcCAsIFAgJmx0OyBxICwgUSAmbHQgciAsIFIgJmx0IHMgLCBTICZsdDsgIgorICogICAgICAgICAgICAgICAgICAgICsgInQgLCBUICZsdDsgdSAsIFUgJmx0OyB2ICwgViAmbHQ7IHcgLCBXICZsdDsgeCAsIFggIgorICogICAgICAgICAgICAgICAgICAgICsgIiZsdDsgeSAsIFkgJmx0OyB6ICwgWiAmbHQ7ICYjOTI7dTAwRTUgPSBhJiM5Mjt1MDMwQSAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiLCAmIzkyO3UwMEM1ID0gQSYjOTI7dTAzMEEgOyBhYSAsIEFBICZsdDsgJiM5Mjt1MDBFNiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiLCAmIzkyO3UwMEM2ICZsdDsgJiM5Mjt1MDBGOCAsICYjOTI7dTAwRDgiOworICogUnVsZUJhc2VkQ29sbGF0b3Igbm9yd2VnaWFuQ29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iobm9yd2VnaWFuKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIENvbmNhdGVuYXRpbmcgcnVsZXMgdG8gY29tYmluZSA8Y29kZT5Db2xsYXRvcjwvY29kZT5zOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gQ3JlYXRlIGFuIGVuX1VTIENvbGxhdG9yIG9iamVjdAorICogUnVsZUJhc2VkQ29sbGF0b3IgZW5fVVNDb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikKKyAqICAgICBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIsICIiKSk7CisgKiAvLyBDcmVhdGUgYSBkYV9ESyBDb2xsYXRvciBvYmplY3QKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGRhX0RLQ29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpCisgKiAgICAgQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZGEiLCAiREsiLCAiIikpOworICogLy8gQ29tYmluZSB0aGUgdHdvCisgKiAvLyBGaXJzdCwgZ2V0IHRoZSBjb2xsYXRpb24gcnVsZXMgZnJvbSBlbl9VU0NvbGxhdG9yCisgKiBTdHJpbmcgZW5fVVNSdWxlcyA9IGVuX1VTQ29sbGF0b3IuZ2V0UnVsZXMoKTsKKyAqIC8vIFNlY29uZCwgZ2V0IHRoZSBjb2xsYXRpb24gcnVsZXMgZnJvbSBkYV9ES0NvbGxhdG9yCisgKiBTdHJpbmcgZGFfREtSdWxlcyA9IGRhX0RLQ29sbGF0b3IuZ2V0UnVsZXMoKTsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG5ld0NvbGxhdG9yID0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNSdWxlcyArIGRhX0RLUnVsZXMpOworICogLy8gbmV3Q29sbGF0b3IgaGFzIHRoZSBjb21iaW5lZCBydWxlcworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogTWFraW5nIGNoYW5nZXMgdG8gYW4gZXhpc3RpbmcgUnVsZUJhc2VkQ29sbGF0b3IgdG8gY3JlYXRlIGEgbmV3CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT4gb2JqZWN0LCBieSBhcHBlbmRpbmcgY2hhbmdlcyB0byB0aGUgZXhpc3RpbmcgcnVsZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIENyZWF0ZSBhIG5ldyBDb2xsYXRvciBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIHJ1bGVzCisgKiBTdHJpbmcgYWRkUnVsZXMgPSAiJmFtcDsgQyAmbHQ7IGNoLCBjSCwgQ2gsIENIIjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0b3IgPQorICogICAgIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihlbl9VU0NvbGxhdG9yICsgYWRkUnVsZXMpOworICogLy8gbXlDb2xsYXRvciBjb250YWlucyB0aGUgbmV3IHJ1bGVzCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBIb3cgdG8gY2hhbmdlIHRoZSBvcmRlciBvZiBub24tc3BhY2luZyBhY2NlbnRzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gb2xkIHJ1bGUgd2l0aCBtYWluIGFjY2VudHMKKyAqIFN0cmluZyBvbGRSdWxlcyA9ICI9ICYjOTI7dTAzMDEgOyAmIzkyO3UwMzAwIDsgJiM5Mjt1MDMwMiA7ICYjOTI7dTAzMDggIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMyNyA7ICYjOTI7dTAzMDMgOyAmIzkyO3UwMzA0IDsgJiM5Mjt1MDMwNSAiCisgKiAgICAgICAgICAgICAgICAgKyAiOyAmIzkyO3UwMzA2IDsgJiM5Mjt1MDMwNyA7ICYjOTI7dTAzMDkgOyAmIzkyO3UwMzBBICIKKyAqICAgICAgICAgICAgICAgICArICI7ICYjOTI7dTAzMEIgOyAmIzkyO3UwMzBDIDsgJiM5Mjt1MDMwRCA7ICYjOTI7dTAzMEUgIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMwRiA7ICYjOTI7dTAzMTAgOyAmIzkyO3UwMzExIDsgJiM5Mjt1MDMxMiAiCisgKiAgICAgICAgICAgICAgICAgKyAiJmx0OyBhICwgQSA7IGFlLCBBRSA7ICYjOTI7dTAwZTYgLCAmIzkyO3UwMGM2ICIKKyAqICAgICAgICAgICAgICAgICArICImbHQ7IGIgLCBCICZsdDsgYywgQyAmbHQ7IGUsIEUgJmFtcDsgQyAmbHQ7IGQgLCBEIjsKKyAqIC8vIGNoYW5nZSB0aGUgb3JkZXIgb2YgYWNjZW50IGNoYXJhY3RlcnMKKyAqIFN0cmluZyBhZGRPbiA9ICImYW1wOyAmIzkyO3UwMzAwIDsgJiM5Mjt1MDMwOCA7ICYjOTI7dTAzMDIiOworICogUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihvbGRSdWxlcyArIGFkZE9uKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFB1dHRpbmcgaW4gYSBuZXcgcHJpbWFyeSBvcmRlcmluZyBiZWZvcmUgdGhlIGRlZmF1bHQgc2V0dGluZywKKyAqIGUuZy4gc29ydCBFbmdsaXNoIGNoYXJhY3RlcnMgYmVmb3JlIG9yIGFmdGVyIEphcGFuZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEphcGFuZXNlCisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBnZXQgZW5fVVMgQ29sbGF0b3IgcnVsZXMKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGVuX1VTQ29sbGF0b3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAqIC8vIGFkZCBhIGZldyBKYXBhbmVzZSBjaGFyYWN0ZXJzIHRvIHNvcnQgYmVmb3JlIEVuZ2xpc2ggY2hhcmFjdGVycworICogLy8gc3VwcG9zZSB0aGUgbGFzdCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBmaXJzdCBiYXNlIGxldHRlciAnYScgaW4KKyAqIC8vIHRoZSBFbmdsaXNoIGNvbGxhdGlvbiBydWxlIGlzICYjOTI7dTIyMTIKKyAqIFN0cmluZyBqYVN0cmluZyA9ICImICYjOTI7dTIyMTIgJmx0ICYjOTI7dTMwNDEsICYjOTI7dTMwNDIgJmx0ICYjOTI7dTMwNDMsICIKKyAqICAgICAgICAgICAgICAgICAgICsgIiYjOTI7dTMwNDQiOworICogUnVsZUJhc2VkQ29sbGF0b3IgbXlKYXBhbmVzZUNvbGxhdG9yCisgKiAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNDb2xsYXRvci5nZXRSdWxlcygpICsgamFTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUnVsZUJhc2VkQ29sbGF0b3IgZXh0ZW5kcyBDb2xsYXRvcgoreyAgIAorICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIHRoZSBhcmd1bWVudCBydWxlcyBmb3IKKyAgICAgKiBjdXN0b21pemF0aW9uLiBUaGUgY29sbGF0b3Igd2lsbCBiZSBiYXNlZCBvbiBVQ0EsCisgICAgICogd2l0aCB0aGUgYXR0cmlidXRlcyBhbmQgcmUtb3JkZXJpbmcgb2YgdGhlIGNoYXJhY3RlcnMgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIGFyZ3VtZW50IHJ1bGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIHVzZXIgZ3VpZGUncyBzZWN0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ3VzdG9taXphdGlvbi5odG1sIj4KKyAgICAgKiBDb2xsYXRpb24gQ3VzdG9taXphdGlvbjwvYT4gZm9yIGRldGFpbHMgb24gdGhlIHJ1bGUgc3ludGF4LgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcnVsZXMgdGhlIGNvbGxhdGlvbiBydWxlcyB0byBidWlsZCB0aGUgY29sbGF0aW9uIHRhYmxlIGZyb20uCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBhbmQgSU9FeGNlcHRpb24gdGhyb3duLiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24KKyAgICAgKiAgICAgICAgICAgIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkIHN5bnRheC4gSU9FeGNlcHRpb24KKyAgICAgKiAgICAgICAgICAgIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgcmVhZGluZyBpbnRlcm5hbCBkYXRhLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcgcnVsZXMpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIGlmIChydWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uIHJ1bGVzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGluaXQocnVsZXMpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDbG9uZXMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJlc3VsdCA9IChSdWxlQmFzZWRDb2xsYXRvcilzdXBlci5jbG9uZSgpOworICAgICAgICBpZiAobGF0aW5PbmVDRXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5tX3JlYWxsb2NMYXRpbk9uZUNFc18gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIHNpbmNlIGFsbCBjb2xsYXRpb24gZGF0YSBpbiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgZG8gbm90IGNoYW5nZQorICAgICAgICAvLyB3ZSBjYW4gc2FmZWx5IGFzc2lnbiB0aGUgcmVzdWx0LmZpZWxkcyB0byB0aGlzIGNvbGxhdG9yCisgICAgICAgIHJlc3VsdC5pbml0VXRpbGl0eShmYWxzZSk7ICAvLyBsZXQgdGhlIG5ldyBjbG9uZSBoYXZlIHRoZWlyIG93biB1dGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRvcnMKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBTdHJpbmcuCisgICAgICogQHNlZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBUaGUgc291cmNlIGl0ZXJhdG9yJ3MgaW50ZWdyaXR5IHdpbGwgYmUgcHJlc2VydmVkIHNpbmNlIGEgbmV3IGNvcHkKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS4KKyAgICAgKiBAc2VlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlKQorICAgIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgbmV3c291cmNlID0gKENoYXJhY3Rlckl0ZXJhdG9yKXNvdXJjZS5jbG9uZSgpOworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihuZXdzb3VyY2UsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBVQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogVGhlIHNvdXJjZSBpdGVyYXRvcidzIGludGVncml0eSB3aWxsIGJlIHByZXNlcnZlZCBzaW5jZSBhIG5ldyBjb3B5CisgICAgICogd2lsbCBiZSBjcmVhdGVkIGZvciB1c2UuCisgICAgICogQHNlZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UsIHRoaXMpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgdG8gYmUgb24gb3Igb2ZmLgorICAgICAqIFdoZW4gdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSBpcyB0dXJuZWQgb24sIHRoZSBjb2xsYXRvcgorICAgICAqIHBvc2l0aW9ucyBIaXJhZ2FuYSBjaGFyYWN0ZXJzIGJlZm9yZSBhbGwgbm9uLWlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluCisgICAgICogUVVBVEVSTkFSWSBzdHJlbmd0aC4gVGhpcyBpcyB0byBwcm9kdWNlIGEgY29ycmVjdCBKSVMgY29sbGF0aW9uIG9yZGVyLAorICAgICAqIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gS2F0YWthbmEgIGFuZCBIaXJhZ2FuYSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHRvIGJlIG9uLCBmYWxzZQorICAgICAqICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0CisgICAgICogQHNlZSAjaXNIaXJhZ2FuYVF1YXRlcm5hcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBmbGFnOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisgICAgICogQHNlZSAjaXNIaXJhZ2FuYVF1YXRlcm5hcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIG1faXNIaXJhZ2FuYTRfID0gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHNvcnQgYmVmb3JlIGxvd2VyY2FzZQorICAgICAqIGNoYXJhY3RlcnMgb3IgdmljZSB2ZXJzYSwgaW4gc3RyZW5ndGggVEVSVElBUlkuIFRoZSBkZWZhdWx0CisgICAgICogbW9kZSBpcyBmYWxzZSwgYW5kIHNvIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIHNvcnQgYmVmb3JlIHVwcGVyY2FzZQorICAgICAqIGNoYXJhY3RlcnMuCisgICAgICogSWYgdHJ1ZSwgc29ydCB1cHBlciBjYXNlIGNoYXJhY3RlcnMgZmlyc3QuCisgICAgICogQHBhcmFtIHVwcGVyZmlyc3QgdHJ1ZSB0byBzb3J0IHVwcGVyY2FzZSBjaGFyYWN0ZXJzIGJlZm9yZQorICAgICAqICAgICAgICAgICAgICAgICAgIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBmYWxzZSB0byBzb3J0IGxvd2VyY2FzZQorICAgICAqICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMgYmVmb3JlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzCisgICAgICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzVXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuIHVwcGVyZmlyc3QpCisgICAgeworICAgICAgICBpZiAodXBwZXJmaXJzdCkgeworICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXykgeworICAgICAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY2FzZUZpcnN0XyA9IEF0dHJpYnV0ZVZhbHVlLk9GRl87CisgICAgICAgIH0KKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG9yZGVycyBvZiBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzIHRvIHNvcnQgYmVmb3JlIHVwcGVyIGNhc2VkCisgICAgICogY2hhcmFjdGVycywgaW4gc3RyZW5ndGggVEVSVElBUlkuIFRoZSBkZWZhdWx0CisgICAgICogbW9kZSBpcyBmYWxzZS4KKyAgICAgKiBJZiB0cnVlIGlzIHNldCwgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHdpbGwgc29ydCBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzCisgICAgICogYmVmb3JlIHRoZSB1cHBlciBjYXNlZCBvbmVzLgorICAgICAqIE90aGVyd2lzZSwgaWYgZmFsc2UgaXMgc2V0LCB0aGUgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBpZ25vcmUgY2FzZQorICAgICAqIHByZWZlcmVuY2VzLgorICAgICAqIEBwYXJhbSBsb3dlcmZpcnN0IHRydWUgZm9yIHNvcnRpbmcgbG93ZXIgY2FzZWQgY2hhcmFjdGVycyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICB1cHBlciBjYXNlZCBjaGFyYWN0ZXJzLCBmYWxzZSB0byBpZ25vcmUgY2FzZQorICAgICAqICAgICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzLgorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNpc1VwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0VXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRDYXNlRmlyc3REZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbiBsb3dlcmZpcnN0KQorICAgIHsKKyAgICAgICAgaWYgKGxvd2VyZmlyc3QpIHsKKyAgICAgICAgICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gQXR0cmlidXRlVmFsdWUuTE9XRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNhc2UgZmlyc3QgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuKSBhbmQgc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbikgZm9yIG1vcmUKKyAgICAgKiBkZXRhaWxzLgorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNpc1VwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbikKKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdChib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldENhc2VGaXJzdERlZmF1bHQoKQorICAgIHsKKyAgICAgICAgaWYobV9jYXNlRmlyc3RfICE9IG1fZGVmYXVsdENhc2VGaXJzdF8pIHsKKyAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhbHRlcm5hdGUgaGFuZGxpbmcgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRBbHRlcm5hdGVIYW5kbGluZyhib29sZWFuKSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChib29sZWFuKQorICAgICAqIEBzZWUgI2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQoKQorICAgIHsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjYXNlIGxldmVsIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0Q2FzZUxldmVsKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsKGJvb2xlYW4pCisgICAgICogQHNlZSAjaXNDYXNlTGV2ZWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXNlTGV2ZWxEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIG1faXNDYXNlTGV2ZWxfID0gbV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24KKyAgICAgKiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldERlY29tcG9zaXRpb24oaW50KSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uKGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNvbXBvc2l0aW9uRGVmYXVsdCgpCisgICAgeworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKG1fZGVmYXVsdERlY29tcG9zaXRpb25fKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgRnJlbmNoIGNvbGxhdGlvbiBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZworICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuKSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI2lzRnJlbmNoQ29sbGF0aW9uCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdCgpCisgICAgeworICAgICAgICBpZihtX2lzRnJlbmNoQ29sbGF0aW9uXyAhPSBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl8pIHsKKyAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29sbGF0aW9uIHN0cmVuZ3RoIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyB0aGUKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRTdHJlbmd0aChpbnQpIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgoaW50KQorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RyZW5ndGhEZWZhdWx0KCkKKyAgICB7CisgICAgICAgIHNldFN0cmVuZ3RoKG1fZGVmYXVsdFN0cmVuZ3RoXyk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdG8gc2V0IG51bWVyaWMgY29sbGF0aW9uIHRvIGl0cyBkZWZhdWx0IHZhbHVlLgorICAgICAqIFdoZW4gbnVtZXJpYyBjb2xsYXRpb24gaXMgdHVybmVkIG9uLCB0aGlzIENvbGxhdG9yIGdlbmVyYXRlcyBhIGNvbGxhdGlvbiAKKyAgICAgKiBrZXkgZm9yIHRoZSBudW1lcmljIHZhbHVlIG9mIHN1YnN0cmluZ3Mgb2YgZGlnaXRzLiBUaGlzIGlzIGEgd2F5IHRvIGdldCAKKyAgICAgKiAnMTAwJyB0byBzb3J0IEFGVEVSICcyJworICAgICAqIEBzZWUgI2dldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TnVtZXJpY0NvbGxhdGlvbkRlZmF1bHQoKQorICAgIHsKKyAgICAgICAgc2V0TnVtZXJpY0NvbGxhdGlvbihtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbW9kZSBmb3IgdGhlIGRpcmVjdGlvbiBvZiBTRUNPTkRBUlkgd2VpZ2h0cyB0byBiZSB1c2VkIGluCisgICAgICogRnJlbmNoIGNvbGxhdGlvbi4KKyAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggdHJlYXRzIFNFQ09OREFSWSB3ZWlnaHRzIGluIHRoZSBvcmRlcgorICAgICAqIHRoZXkgYXBwZWFyLgorICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgU0VDT05EQVJZIHdlaWdodHMgd2lsbCBiZSBzb3J0ZWQgYmFja3dhcmRzLgorICAgICAqIFNlZSB0aGUgc2VjdGlvbiBvbgorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbCI+CisgICAgICogRnJlbmNoIGNvbGxhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byBzZXQgdGhlIEZyZW5jaCBjb2xsYXRpb24gb24sIGZhbHNlIHRvIHNldCBpdCBvZmYKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAc2VlICNpc0ZyZW5jaENvbGxhdGlvbgorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbkRlZmF1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGcmVuY2hDb2xsYXRpb24oYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgaWYobV9pc0ZyZW5jaENvbGxhdGlvbl8gIT0gZmxhZykgeworICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0ZyZW5jaENvbGxhdGlvbl8gPSBmbGFnOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGZvciBRVUFURVJOQVJZIHN0cmVuZ3RoIHRvIGJlIGVpdGhlcgorICAgICAqIHNoaWZ0ZWQgb3Igbm9uLWlnbm9yYWJsZS4KKyAgICAgKiBTZWUgdGhlIFVDQSBkZWZpbml0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8jVmFyaWFibGVfV2VpZ2h0aW5nIj4KKyAgICAgKiBBbHRlcm5hdGUgV2VpZ2h0aW5nPC9hPi4KKyAgICAgKiBUaGlzIGF0dHJpYnV0ZSB3aWxsIG9ubHkgYmUgZWZmZWN0aXZlIHdoZW4gUVVBVEVSTkFSWSBzdHJlbmd0aCBpcyBzZXQuCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgbW9kZSBpcyBmYWxzZSwgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiBOT05fSUdOT1JBQkxFIG1vZGUgaW4gVUNBLiBJbiB0aGUgTk9OLUlHTk9SQUJMRSBtb2RlLCB0aGUKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIHRyZWF0cyBhbGwgdGhlIGNvZGVwb2ludHMgd2l0aCBub24taWdub3JhYmxlCisgICAgICogcHJpbWFyeSB3ZWlnaHRzIGluIHRoZSBzYW1lIHdheS4KKyAgICAgKiBJZiB0aGUgbW9kZSBpcyBzZXQgdG8gdHJ1ZSwgdGhlIGJlaGF2aW91ciBjb3JyZXNwb25kcyB0byBTSElGVEVEIGRlZmluZWQKKyAgICAgKiBpbiBVQ0EsIHRoaXMgY2F1c2VzIGNvZGVwb2ludHMgd2l0aCBQUklNQVJZIG9yZGVycyB0aGF0IGFyZSBlcXVhbCBvcgorICAgICAqIGJlbG93IHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgdG8gYmUgaWdub3JlZCBpbiBQUklNQVJZIG9yZGVyIGFuZAorICAgICAqIG1vdmVkIHRvIHRoZSBRVUFURVJOQVJZIG9yZGVyLgorICAgICAqIEBwYXJhbSBzaGlmdGVkIHRydWUgaWYgU0hJRlRFRCBiZWhhdmlvdXIgZm9yIGFsdGVybmF0ZSBoYW5kbGluZyBpcworICAgICAqICAgICAgICBkZXNpcmVkLCBmYWxzZSBmb3IgdGhlIE5PTl9JR05PUkFCTEUgYmVoYXZpb3VyLgorICAgICAqIEBzZWUgI2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4gc2hpZnRlZCkKKyAgICB7CisgICAgICAgIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfID0gc2hpZnRlZDsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFdoZW4gY2FzZSBsZXZlbCBpcyBzZXQgdG8gdHJ1ZSwgYW4gYWRkaXRpb25hbCB3ZWlnaHQgaXMgZm9ybWVkCisgICAgICogYmV0d2VlbiB0aGUgU0VDT05EQVJZIGFuZCBURVJUSUFSWSB3ZWlnaHQsIGtub3duIGFzIHRoZSBjYXNlIGxldmVsLgorICAgICAqIFRoZSBjYXNlIGxldmVsIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggbGFyZ2UgYW5kIHNtYWxsIEphcGFuZXNlIEthbmEKKyAgICAgKiBjaGFyYWN0ZXJzLiBDYXNlIGxldmVsIGNvdWxkIGFsc28gYmUgdXNlZCBpbiBvdGhlciBzaXR1YXRpb25zLgorICAgICAqIEZvciBleGFtcGxlIHRvIGRpc3Rpbmd1aXNoIGNlcnRhaW4gUGlueWluIGNoYXJhY3RlcnMuCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIG1lYW5zIHRoZSBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQuCisgICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBjYXNlIGxldmVsIGFyZSBhZmZlY3RlZCBieSB0aGUgY2FzZSBmaXJzdAorICAgICAqIG1vZGUuIEEgc2ltcGxlIHdheSB0byBpZ25vcmUgYWNjZW50IGRpZmZlcmVuY2VzIGluIGEgc3RyaW5nIGlzIHRvIHNldAorICAgICAqIHRoZSBzdHJlbmd0aCB0byBQUklNQVJZIGFuZCBlbmFibGUgY2FzZSBsZXZlbC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBzZWN0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAgICAgKiBjYXNlIGxldmVsPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSBpZiBjYXNlIGxldmVsIHNvcnRpbmcgaXMgcmVxdWlyZWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBzZWUgI3NldENhc2VMZXZlbERlZmF1bHQKKyAgICAgKiBAc2VlICNpc0Nhc2VMZXZlbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhc2VMZXZlbChib29sZWFuIGZsYWcpCisgICAgeworICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXdTdHJlbmd0aCB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGhEZWZhdWx0CisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZQorICAgICAqICAgICAgICAgICAgICBvZiBQUklNQVJZLCBTRUNPTkRBUlksIFRFUlRJQVJZLCBRVUFURVJOQVJZIG9yIElERU5USUNBTC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aChpbnQgbmV3U3RyZW5ndGgpCisgICAgeworICAgICAgICBzdXBlci5zZXRTdHJlbmd0aChuZXdTdHJlbmd0aCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIFZhcmlhYmxlIHRvcCBpcyBhIHR3byBieXRlIHByaW1hcnkgdmFsdWUgd2hpY2ggY2F1c2VzIGFsbCB0aGUgY29kZXBvaW50cyAKKyAgICAgKiB3aXRoIHByaW1hcnkgdmFsdWVzIHRoYXQgYXJlIGxlc3Mgb3IgZXF1YWwgdGhhbiB0aGUgdmFyaWFibGUgdG9wIHRvIGJlIAorICAgICAqIHNoaWZ0ZWQgd2hlbiBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2V0IHRvIFNISUZURUQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIHZhcmlhYmxlIHRvcCB0byBhIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlIG9mIGEgc3RyaW5nIHN1cHBsaWVkLgorICAgICAqIDwvcD4gCisgICAgICogQHBhcmFtIHZhclRvcCBvbmUgb3IgbW9yZSAoaWYgY29udHJhY3Rpb24pIGNoYXJhY3RlcnMgdG8gd2hpY2ggdGhlIAorICAgICAqICAgICAgICAgICAgICAgdmFyaWFibGUgdG9wIHNob3VsZCBiZSBzZXQKKyAgICAgKiBAcmV0dXJuIGEgaW50IHZhbHVlIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0b3AgaW4gdXBwZXIgMTYKKyAgICAgKiAgICAgICAgIGJpdHMuIExvd2VyIDE2IGJpdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgdmFyVG9wIGFyZ3VtZW50IGlzIG5vdCAKKyAgICAgKiAgICAgICAgICAgIGEgdmFsaWQgdmFyaWFibGUgdG9wIGVsZW1lbnQuIEEgdmFyaWFibGUgdG9wIGVsZW1lbnQgaXMgCisgICAgICogICAgICAgICAgICBpbnZhbGlkIHdoZW4gCisgICAgICogICAgICAgICAgICA8dWw+CisgICAgICogICAgICAgICAgICA8bGk+aXQgaXMgYSBjb250cmFjdGlvbiB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZQorICAgICAqICAgICAgICAgICAgICAgIENvbGxhdGlvbiBvcmRlcgorICAgICAqICAgICAgICAgICAgPGxpPndoZW4gdGhlIFBSSU1BUlkgc3RyZW5ndGggY29sbGF0aW9uIGVsZW1lbnQgZm9yIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICB2YXJpYWJsZSB0b3AgaGFzIG1vcmUgdGhhbiB0d28gYnl0ZXMKKyAgICAgKiAgICAgICAgICAgIDxsaT53aGVuIHRoZSB2YXJUb3AgYXJndW1lbnQgaXMgbnVsbCBvciB6ZXJvIGluIGxlbmd0aC4KKyAgICAgKiAgICAgICAgICAgIDwvdWw+CisgICAgICogQHNlZSAjZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2V0VmFyaWFibGVUb3AoU3RyaW5nIHZhclRvcCkKKyAgICB7CisgICAgICAgIGlmICh2YXJUb3AgPT0gbnVsbCB8fCB2YXJUb3AubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICJWYXJpYWJsZSB0b3AgYXJndW1lbnQgc3RyaW5nIGNhbiBub3QgYmUgbnVsbCBvciB6ZXJvIGluIGxlbmd0aC4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9zcmNVdGlsSXRlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgaW5pdFV0aWxpdHkodHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dCh2YXJUb3ApOworICAgICAgICBpbnQgY2UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gaGVyZSB3ZSBjaGVjayBpZiB3ZSBoYXZlIGNvbnN1bWVkIGFsbCBjaGFyYWN0ZXJzIAorICAgICAgICAvLyB5b3UgY2FuIHB1dCBpbiBlaXRoZXIgb25lIGNoYXJhY3RlciBvciBhIGNvbnRyYWN0aW9uCisgICAgICAgIC8vIHlvdSBzaG91bGRuJ3QgcHV0IG1vcmUuLi4gCisgICAgICAgIGlmIChtX3NyY1V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdmFyVG9wLmxlbmd0aCgpIAorICAgICAgICAgICAgfHwgY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICJWYXJpYWJsZSB0b3AgYXJndW1lbnQgc3RyaW5nIGlzIGEgY29udHJhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdCAiCisgICAgICAgICAgICArICJpbiB0aGUgQ29sbGF0aW9uIG9yZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBuZXh0Q0UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgaWYgKChuZXh0Q0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgCisgICAgICAgICAgICAmJiAoIWlzQ29udGludWF0aW9uKG5leHRDRSkgfHwgKG5leHRDRSAmIENFX1BSSU1BUllfTUFTS18pICE9IDApKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiVmFyaWFibGUgdG9wIGFyZ3VtZW50IHN0cmluZyBjYW4gb25seSBoYXZlIGEgc2luZ2xlIGNvbGxhdGlvbiAiCisgICAgICAgICAgICAgICAgKyAiZWxlbWVudCB0aGF0IGhhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdHdvIFBSSU1BUlkgc3RyZW5ndGggIgorICAgICAgICAgICAgICAgICsgImJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fdmFyaWFibGVUb3BWYWx1ZV8gPSAoY2UgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBjZSAmIENFX1BSSU1BUllfTUFTS187CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBTZXRzIHRoZSB2YXJpYWJsZSB0b3AgdG8gYSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZSBzdXBwbGllZC4KKyAgICAgKiBWYXJpYWJsZSB0b3AgaXMgc2V0IHRvIHRoZSB1cHBlciAxNiBiaXRzLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSBpZ25vcmVkLgorICAgICAqIEBwYXJhbSB2YXJUb3AgQ29sbGF0aW9uIGVsZW1lbnQgdmFsdWUsIGFzIHJldHVybmVkIGJ5IHNldFZhcmlhYmxlVG9wIG9yIAorICAgICAqICAgICAgICAgICAgICAgZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRWYXJpYWJsZVRvcChpbnQgdmFyVG9wKQorICAgIHsKKyAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9ICh2YXJUb3AgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byB0dXJuIG51bWVyaWMgY29sbGF0aW9uIG9uIGFuZCBmYWxzZSB0byB0dXJuIGl0IG9mZgorICAgICAqIEBzZWUgI2dldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWVyaWNDb2xsYXRpb24oYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgLy8gc29ydCBzdWJzdHJpbmdzIG9mIGRpZ2l0cyBhcyBudW1iZXJzCisgICAgICAgIG1faXNOdW1lcmljQ29sbGF0aW9uXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29sbGF0aW9uIHJ1bGVzIGZvciB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEVxdWl2YWxlbnQgdG8gU3RyaW5nIGdldFJ1bGVzKFJ1bGVPcHRpb24uRlVMTF9SVUxFUykuCisgICAgICogQHJldHVybiByZXR1cm5zIHRoZSBjb2xsYXRpb24gcnVsZXMKKyAgICAgKiBAc2VlICNnZXRSdWxlcyhib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UnVsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcnVsZXNfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGN1cnJlbnQgcnVsZXMuIFRoZSBhcmd1bWVudCBkZWZpbmVzIHdoZXRoZXIgZnVsbCBydWxlcyAKKyAgICAgKiAoVUNBICsgdGFpbG9yZWQpIHJ1bGVzIGFyZSByZXR1cm5lZCBvciBqdXN0IHRoZSB0YWlsb3JpbmcuIAorICAgICAqIEBwYXJhbSBmdWxscnVsZXMgdHJ1ZSBpZiB0aGUgcnVsZXMgdGhhdCBkZWZpbmVzIHRoZSBmdWxsIHNldCBvZiAKKyAgICAgKiAgICAgICAgY29sbGF0aW9uIG9yZGVyIGlzIHJlcXVpcmVkLCBvdGhlcndpc2UgZmFsc2UgZm9yIHJldHVybmluZyBvbmx5IAorICAgICAqICAgICAgICB0aGUgdGFpbG9yZWQgcnVsZXMKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHJ1bGVzIHRoYXQgZGVmaW5lcyB0aGlzIENvbGxhdG9yLgorICAgICAqIEBzZWUgI2dldFJ1bGVzKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVzKGJvb2xlYW4gZnVsbHJ1bGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFmdWxscnVsZXMpIHsKKyAgICAgICAgICAgIHJldHVybiBtX3J1bGVzXzsKKyAgICAgICAgfQorICAgICAgICAvLyB0YWtlIHRoZSBVQ0EgcnVsZXMgYW5kIGFwcGVuZCByZWFsIHJ1bGVzIGF0IHRoZSBlbmQgCisgICAgICAgIHJldHVybiBVQ0FfLm1fcnVsZXNfLmNvbmNhdChtX3J1bGVzXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHNlcXVlbmNlcworICAgICAqIHRhaWxvcmVkIGluIHRoaXMgY29sbGF0b3IuCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBVbmljb2RlU2V0IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUKKyAgICAgKiAgICAgICAgIGNvZGUgcG9pbnRzIGFuZCBzZXF1ZW5jZXMgdGhhdCBtYXkgc29ydCBkaWZmZXJlbnRseSB0aGFuCisgICAgICogICAgICAgICBpbiB0aGUgVUNBLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbgorICAgICAqICAgICAgICAgICAgaW52YWxpZCBzeW50YXguIElPRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFpbG9yZWRTZXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlciBzcmMgPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihnZXRSdWxlcygpKTsKKyAgICAgICAgICAgcmV0dXJuIHNyYy5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJBIHRhaWxvcmluZyBydWxlIHNob3VsZCBub3QgIiArCisgICAgICAgICAgICAgICAgImhhdmUgZXJyb3JzLiBTb21ldGhpbmcgaXMgcXVpdGUgd3JvbmchIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIGNvbnRDb250ZXh0IHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cmFjdGlvbnM7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwYW5zaW9uczsKKyAgICAgICAgVW5pY29kZVNldCByZW1vdmVkQ29udHJhY3Rpb25zOworICAgICAgICBib29sZWFuIGFkZFByZWZpeGVzOyAgICAgICAKKyAgICAgICAgY29udENvbnRleHQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCwgVW5pY29kZVNldCBjb250cmFjdGlvbnMsIFVuaWNvZGVTZXQgZXhwYW5zaW9ucywgCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCByZW1vdmVkQ29udHJhY3Rpb25zLCBib29sZWFuIGFkZFByZWZpeGVzKSB7CisgICAgICAgICAgICB0aGlzLmNvbGwgPSBjb2xsOworICAgICAgICAgICAgdGhpcy5jb250cmFjdGlvbnMgPSBjb250cmFjdGlvbnM7CisgICAgICAgICAgICB0aGlzLmV4cGFuc2lvbnMgPSBleHBhbnNpb25zOworICAgICAgICAgICAgdGhpcy5yZW1vdmVkQ29udHJhY3Rpb25zID0gcmVtb3ZlZENvbnRyYWN0aW9uczsKKyAgICAgICAgICAgIHRoaXMuYWRkUHJlZml4ZXMgPSBhZGRQcmVmaXhlczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQKKyAgICBhZGRTcGVjaWFsKGNvbnRDb250ZXh0IGMsIFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCBDRSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgb2Zmc2V0ID0gKENFICYgMHhGRkZGRkYpIC0gYy5jb2xsLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgICBpbnQgbmV3Q0UgPSBjLmNvbGwubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAvLyB3ZSBtaWdodCBoYXZlIGEgY29udHJhY3Rpb24gdGhhdCBlbmRzIGZyb20gcHJldmlvdXMgbGV2ZWwKKyAgICAgICAgaWYobmV3Q0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIGlmKGlzU3BlY2lhbChDRSkgJiYgZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXyAKKyAgICAgICAgICAgICAgICAgICAgJiYgaXNTcGVjaWFsKG5ld0NFKSAmJiBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXyAKKyAgICAgICAgICAgICAgICAgICAgJiYgYy5hZGRQcmVmaXhlcykgeworICAgICAgICAgICAgICAgIGFkZFNwZWNpYWwoYywgYnVmZmVyLCBuZXdDRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihidWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaWYoYy5jb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjLmNvbnRyYWN0aW9ucy5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjLmV4cGFuc2lvbnMgIT0gbnVsbCAmJiBpc1NwZWNpYWwoQ0UpICYmIGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0VYUEFOU0lPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIG9mZnNldCsrOworICAgICAgICAvLyBjaGVjayB3aGV0aGVyIHdlJ3JlIGRvaW5nIGNvbnRyYWN0aW9uIG9yIHByZWZpeAorICAgICAgICBpZihnZXRUYWcoQ0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXyAmJiBjLmFkZFByZWZpeGVzKSB7CisgICAgICAgICAgICB3aGlsZShjLmNvbGwubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGIuZGVsZXRlKDAsIGIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGIuYXBwZW5kKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgbmV3Q0UgPSBjLmNvbGwubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIGIuaW5zZXJ0KDAsIGMuY29sbC5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pOworICAgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbChuZXdDRSkgJiYgKGdldFRhZyhuZXdDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18gfHwgZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfU1BFQ19QUk9DX1RBR18pKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFNwZWNpYWwoYywgYiwgbmV3Q0UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGMuY29udHJhY3Rpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuY29udHJhY3Rpb25zLmFkZChiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKGMuZXhwYW5zaW9ucyAhPSBudWxsICYmIGlzU3BlY2lhbChuZXdDRSkgJiYgZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoYi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pIHsKKyAgICAgICAgICAgIHdoaWxlKGMuY29sbC5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgYi5kZWxldGUoMCwgYi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgYi5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBuZXdDRSA9IGMuY29sbC5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYi5hcHBlbmQoYy5jb2xsLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKG5ld0NFKSAmJiAoZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXyB8fCBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXykpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkU3BlY2lhbChjLCBiLCBuZXdDRSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoYy5jb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5jb250cmFjdGlvbnMuYWRkKGIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoYy5leHBhbnNpb25zICE9IG51bGwgJiYgaXNTcGVjaWFsKG5ld0NFKSAmJiBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9FWFBBTlNJT05fVEFHXykgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5leHBhbnNpb25zLmFkZChiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9mZnNldCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUKKyAgICB2b2lkIHByb2Nlc3NTcGVjaWFscyhjb250Q29udGV4dCBjKSAKKyAgICB7CisgICAgICAgIGludCBpbnRlcm5hbEJ1ZmZlclNpemUgPSA1MTI7CisgICAgICAgIFRyaWVJdGVyYXRvciB0cmllaXRlcmF0b3IgCisgICAgICAgID0gbmV3IFRyaWVJdGVyYXRvcihjLmNvbGwubV90cmllXyk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHRyaWVpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBlbGVtZW50LnN0YXJ0OworICAgICAgICAgICAgaW50IGxpbWl0ID0gZWxlbWVudC5saW1pdDsKKyAgICAgICAgICAgIGludCBDRSA9IGVsZW1lbnQudmFsdWU7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgY29udHJhY3Rpb24gPSBuZXcgU3RyaW5nQnVmZmVyKGludGVybmFsQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGlzU3BlY2lhbChDRSkpIHsKKyAgICAgICAgICAgICAgICBpZigoKGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX1NQRUNfUFJPQ19UQUdfICYmIGMuYWRkUHJlZml4ZXMpIHx8IGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBzdXBwcmVzc2VkIGNvbnRyYWN0aW9ucywgd2UgZG9uJ3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YW50IHRvIGFkZCB0aGVtLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYoYy5yZW1vdmVkQ29udHJhY3Rpb25zICE9IG51bGwgJiYgYy5yZW1vdmVkQ29udHJhY3Rpb25zLmNvbnRhaW5zKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzdGFydCBvdXIgY29udHJhY3Rpb24gZnJvbSBtaWRkbGUsIHNpbmNlIHdlIGRvbid0IGtub3cgaWYgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgZ3JvdyB0b3dhcmQgcmlnaHQgb3IgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb24uYXBwZW5kKChjaGFyKSBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTcGVjaWFsKGMsIGNvbnRyYWN0aW9uLCBDRSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGMuZXhwYW5zaW9ucyAhPSBudWxsICYmIGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0VYUEFOU0lPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMuZXhwYW5zaW9ucy5hZGQoc3RhcnQrKyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB1bmljb2RlIHNldHMgY29udGFpbmluZyBjb250cmFjdGlvbnMgYW5kL29yIGV4cGFuc2lvbnMgb2YgYSBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjb250cmFjdGlvbnMgaWYgbm90IG51bGwsIHNldCB0byBjb250YWluIGNvbnRyYWN0aW9ucworICAgICAqIEBwYXJhbSBleHBhbnNpb25zIGlmIG5vdCBudWxsLCBzZXQgdG8gY29udGFpbiBleHBhbnNpb25zCisgICAgICogQHBhcmFtIGFkZFByZWZpeGVzIGFkZCB0aGUgcHJlZml4IGNvbnRleHR1YWwgZWxlbWVudHMgdG8gY29udHJhY3Rpb25zCisgICAgICogQHRocm93cyBFeGNlcHRpb24gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZAorICAgIGdldENvbnRyYWN0aW9uc0FuZEV4cGFuc2lvbnMoVW5pY29kZVNldCBjb250cmFjdGlvbnMsIFVuaWNvZGVTZXQgZXhwYW5zaW9ucywKKyAgICAgICAgICAgIGJvb2xlYW4gYWRkUHJlZml4ZXMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBpZihjb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgY29udHJhY3Rpb25zLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoZXhwYW5zaW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbnNpb25zLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJ1bGVzTGVuID0gMDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gZ2V0UnVsZXMoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIgc3JjID0gbmV3IENvbGxhdGlvblJ1bGVQYXJzZXIocnVsZXMpOworICAgICAgICAgICAgY29udENvbnRleHQgYyA9IG5ldyBjb250Q29udGV4dChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLCAKKyAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25zLCBleHBhbnNpb25zLCBzcmMubV9yZW1vdmVTZXRfLCBhZGRQcmVmaXhlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEFkZCB0aGUgVUNBIGNvbnRyYWN0aW9ucworICAgICAgICAgICAgcHJvY2Vzc1NwZWNpYWxzKGMpOworICAgICAgICAgICAgLy8gVGhpcyBpcyBjb2xsYXRvciBzcGVjaWZpYy4gQWRkIGNvbnRyYWN0aW9ucyBmcm9tIGEgY29sbGF0b3IKKyAgICAgICAgICAgIGMuY29sbCA9IHRoaXM7CisgICAgICAgICAgICBjLnJlbW92ZWRDb250cmFjdGlvbnMgPSAgbnVsbDsKKyAgICAgICAgICAgIHByb2Nlc3NTcGVjaWFscyhjKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0IGEgQ29sbGF0aW9uIGtleSBmb3IgdGhlIGFyZ3VtZW50IFN0cmluZyBzb3VyY2UgZnJvbSB0aGlzCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEdlbmVyYWwgcmVjb21tZW5kYXRpb246IDxicj4KKyAgICAgKiBJZiBjb21wYXJpc29uIGFyZSB0byBiZSBkb25lIHRvIHRoZSBzYW1lIFN0cmluZyBtdWx0aXBsZSB0aW1lcywgaXQgd291bGQKKyAgICAgKiBiZSBtb3JlIGVmZmljaWVudCB0byBnZW5lcmF0ZSBDb2xsYXRpb25LZXlzIGZvciB0aGUgU3RyaW5ncyBhbmQgdXNlCisgICAgICogQ29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB0aGUgY29tcGFyaXNvbnMuCisgICAgICogSWYgdGhlIGVhY2ggU3RyaW5ncyBhcmUgY29tcGFyZWQgdG8gb25seSBvbmNlLCB1c2luZyB0aGUgbWV0aG9kCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZykgd2lsbCBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGFuIGV4cGxhbmF0aW9uIGFib3V0IENvbGxhdGlvbktleXMuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgU3RyaW5nIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBjb2xsYXRpb24ga2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzCisgICAgICogICAgICAgICBSdWxlQmFzZWRDb2xsYXRvcidzIGNvbGxhdGlvbiBydWxlcy4gSWYgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiAgICAgICAgIG51bGwsIGEgbnVsbCBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgI2dldFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfID0gZ2V0UmF3Q29sbGF0aW9uS2V5KHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsUmF3Q29sbGF0aW9uS2V5Xyk7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KHNvdXJjZSwgbV91dGlsUmF3Q29sbGF0aW9uS2V5Xyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNpbXBsZXIgZm9ybSBvZiBhIENvbGxhdGlvbktleSBmb3IgdGhlIFN0cmluZyBzb3VyY2UgZm9sbG93aW5nCisgICAgICogdGhlIHJ1bGVzIG9mIHRoaXMgQ29sbGF0b3IgYW5kIHN0b3JlcyB0aGUgcmVzdWx0IGludG8gdGhlIHVzZXIgcHJvdmlkZWQgCisgICAgICogYXJndW1lbnQga2V5LiAKKyAgICAgKiBJZiBrZXkgaGFzIGEgaW50ZXJuYWwgYnl0ZSBhcnJheSBvZiBsZW5ndGggdGhhdCdzIHRvbyBzbWFsbCBmb3IgdGhlIAorICAgICAqIHJlc3VsdCwgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBncm93biB0byB0aGUgZXhhY3QgcmVxdWlyZWQgCisgICAgICogc2l6ZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IFN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgUmF3Q29sbGF0aW9uS2V5ICAKKyAgICAgKiBAcGFyYW0ga2V5IG91dHB1dCBSYXdDb2xsYXRpb25LZXkgdG8gc3RvcmUgcmVzdWx0cworICAgICAqIEByZXR1cm4gSWYga2V5IGlzIG51bGwsIGEgbmV3IGluc3RhbmNlIG9mIFJhd0NvbGxhdGlvbktleSB3aWxsIGJlIAorICAgICAqICAgICAgICAgY3JlYXRlZCBhbmQgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgdXNlciBwcm92aWRlZCBrZXkgd2lsbCBiZSAKKyAgICAgKiAgICAgICAgIHJldHVybmVkLgorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleSAKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzZWUgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleSBnZXRSYXdDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0cmVuZ3RoID0gZ2V0U3RyZW5ndGgoKTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTBfID0gbV9pc0Nhc2VMZXZlbF87CisgICAgICAgIG1fdXRpbENvbXBhcmUxXyA9IHRydWU7CisgICAgICAgIG1fdXRpbENvbXBhcmUyXyA9IHN0cmVuZ3RoID49IFNFQ09OREFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTNfID0gc3RyZW5ndGggPj0gVEVSVElBUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmU0XyA9IHN0cmVuZ3RoID49IFFVQVRFUk5BUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmU1XyA9IHN0cmVuZ3RoID09IElERU5USUNBTDsKKworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MF8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gPSAwOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50NV8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDBfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQxXyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50Ml8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDNfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQ0XyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50NV8gPSAwOworICAgICAgICBib29sZWFuIGRvRnJlbmNoID0gbV9pc0ZyZW5jaENvbGxhdGlvbl8gJiYgbV91dGlsQ29tcGFyZTJfOworICAgICAgICAvLyBUT0RPOiBVQ09MX0NPTU1PTl9CT1Q0IHNob3VsZCBiZSBhIGZ1bmN0aW9uIG9mIHFTaGlmdGVkLgorICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIHFTaGlmdGVkLCB3ZSBkb24ndCBuZWVkIHRvIHNldCBVQ09MX0NPTU1PTl9CT1Q0IHNvCisgICAgICAgIC8vIGhpZ2guCisgICAgICAgIGludCBjb21tb25Cb3R0b200ID0gKChtX3ZhcmlhYmxlVG9wVmFsdWVfID4+PiA4KSArIDEpICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICBieXRlIGhpcmFnYW5hNCA9IDA7CisgICAgICAgIGlmIChtX2lzSGlyYWdhbmE0XyAmJiBtX3V0aWxDb21wYXJlNF8pIHsKKyAgICAgICAgICAgIC8vIGFsbG9jYXRlIG9uZSBtb3JlIHNwYWNlIGZvciBoaXJhZ2FuYSwgdmFsdWUgZm9yIGhpcmFnYW5hCisgICAgICAgICAgICBoaXJhZ2FuYTQgPSAoYnl0ZSljb21tb25Cb3R0b200OworICAgICAgICAgICAgY29tbW9uQm90dG9tNCArKzsKKyAgICAgICAgfQorCisgICAgICAgIGludCBib3R0b21Db3VudDQgPSAweEZGIC0gY29tbW9uQm90dG9tNDsKKyAgICAgICAgLy8gSWYgd2UgbmVlZCB0byBub3JtYWxpemUsIHdlJ2xsIGRvIGl0IGFsbCBhdCBvbmNlIGF0IHRoZSBiZWdpbm5pbmchCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNV8gJiYgTm9ybWFsaXplci5xdWlja0NoZWNrKHNvdXJjZSwgTm9ybWFsaXplci5ORkQsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykgeworICAgICAgICAgICAgLy8gaWYgaXQgaXMgaWRlbnRpY2FsIHN0cmVuZ3RoLCB3ZSBoYXZlIHRvIG5vcm1hbGl6ZSB0aGUgc3RyaW5nIHRvCisgICAgICAgICAgICAvLyBORkQgc28gdGhhdCBpdCB3aWxsIGJlIGFwcGVuZGVkIGNvcnJlY3RseSB0byB0aGUgZW5kIG9mIHRoZSBzb3J0CisgICAgICAgICAgICAvLyBrZXkKKyAgICAgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHNvdXJjZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGdldERlY29tcG9zaXRpb24oKSAhPSBOT19ERUNPTVBPU0lUSU9OCisgICAgICAgICAgICAmJiBOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLkZDRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAvLyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHN0cmVuZ3RoLCBpZiBkZWNvbXBvc2l0aW9uIGlzIG9uLCBGQ0QgaXMKKyAgICAgICAgICAgIC8vIGVub3VnaCBmb3IgdXMgdG8gd29yayBvbi4KKyAgICAgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSxOb3JtYWxpemVyLkZDRCk7CisgICAgICAgIH0KKyAgICAgICAgZ2V0U29ydEtleUJ5dGVzKHNvdXJjZSwgZG9GcmVuY2gsIGhpcmFnYW5hNCwgY29tbW9uQm90dG9tNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUNvdW50NCk7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAga2V5ID0gbmV3IFJhd0NvbGxhdGlvbktleSgpOworICAgICAgICB9CisgICAgICAgIGdldFNvcnRLZXkoc291cmNlLCBkb0ZyZW5jaCwgY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0LCBrZXkpOworICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGFuIHVwcGVyY2FzZSBjaGFyYWN0ZXIgaXMgc29ydGVkIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBsb3dlcmNhc2UgY2hhcmFjdGVyLgorICAgICAqIFNlZSBzZXRDYXNlRmlyc3QoYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0VXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzTG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRDYXNlRmlyc3REZWZhdWx0CisgICAgICogQHJldHVybiB0cnVlIGlmIHVwcGVyIGNhc2VkIGNoYXJhY3RlcnMgYXJlIHNvcnRlZCBiZWZvcmUgbG93ZXIgY2FzZWQKKyAgICAgKiAgICAgICAgIGNoYXJhY3RlcnMsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc1VwcGVyQ2FzZUZpcnN0KCkKKyAgICAgeworICAgICAgICByZXR1cm4gKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pOworICAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGEgbG93ZXJjYXNlIGNoYXJhY3RlciBpcyBzb3J0ZWQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogU2VlIHNldENhc2VGaXJzdChib29sZWFuKSBmb3IgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAcmV0dXJuIHRydWUgbG93ZXIgY2FzZWQgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJlZm9yZSB1cHBlciBjYXNlZAorICAgICAqICAgICAgICAgY2hhcmFjdGVycywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMb3dlckNhc2VGaXJzdCgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGJlaGF2aW91ciBpcyB0aGUgVUNBIGRlZmluZWQgU0hJRlRFRCBvcgorICAgICAqIE5PTl9JR05PUkFCTEUuCisgICAgICogSWYgcmV0dXJuIHZhbHVlIGlzIHRydWUsIHRoZW4gdGhlIGFsdGVybmF0ZSBoYW5kbGluZyBhdHRyaWJ1dGUgZm9yIHRoZQorICAgICAqIENvbGxhdG9yIGlzIFNISUZURUQuIE90aGVyd2lzZSBpZiByZXR1cm4gdmFsdWUgaXMgZmFsc2UsIHRoZW4gdGhlCisgICAgICogYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBmb3IgdGhlIENvbGxhdG9yIGlzIE5PTl9JR05PUkFCTEUKKyAgICAgKiBTZWUgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdEZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBjYXNlIGxldmVsIGlzIHNldCB0byB0cnVlLgorICAgICAqIFNlZSBzZXRDYXNlTGV2ZWwoYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHJldHVybiB0aGUgY2FzZSBsZXZlbCBtb2RlCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsRGVmYXVsdAorICAgICAqIEBzZWUgI2lzQ2FzZUxldmVsCisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsKGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDYXNlTGV2ZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNDYXNlTGV2ZWxfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBGcmVuY2ggQ29sbGF0aW9uIGlzIHNldCB0byB0cnVlLgorICAgICAqIFNlZSBzZXRGcmVuY2hDb2xsYXRpb24oYm9vbGVhbikgZm9yIGRldGFpbHMuCisgICAgICogQHJldHVybiB0cnVlIGlmIEZyZW5jaCBDb2xsYXRpb24gaXMgc2V0IHRvIHRydWUsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbihib29sZWFuKQorICAgICAqIEBzZWUgI3NldEZyZW5jaENvbGxhdGlvbkRlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAgcHVibGljIGJvb2xlYW4gaXNGcmVuY2hDb2xsYXRpb24oKQorICAgICB7CisgICAgICAgICByZXR1cm4gbV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHNldCBvbi4KKyAgICAgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHJldHVybiBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIG9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0CisgICAgICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNIaXJhZ2FuYVF1YXRlcm5hcnkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNIaXJhZ2FuYTRfOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBHZXRzIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4gCisgICAgICogTG93ZXIgMTYgYml0cyBhcmUgdW5kZWZpbmVkIGFuZCBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgb2YgYSBDb2xsYXRvci4KKyAgICAgKiBAc2VlICNzZXRWYXJpYWJsZVRvcAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VmFyaWFibGVUb3AoKQorICAgIHsKKyAgICAgICAgICByZXR1cm4gbV92YXJpYWJsZVRvcFZhbHVlXyA8PCAxNjsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIE1ldGhvZCB0byByZXRyaWV2ZSB0aGUgbnVtZXJpYyBjb2xsYXRpb24gdmFsdWUuCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHNlZSAjc2V0TnVtZXJpY0NvbGxhdGlvbgorICAgICAqIEBzZWUgI3NldE51bWVyaWNDb2xsYXRpb25EZWZhdWx0CisgICAgICogQHJldHVybiB0cnVlIGlmIG51bWVyaWMgY29sbGF0aW9uIGlzIHR1cm5lZCBvbiwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0TnVtZXJpY0NvbGxhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc051bWVyaWNDb2xsYXRpb25fOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdHMuCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0cyBhcmUgZXF1YWwgaWYgdGhleSBoYXZlIHRoZSBzYW1lIGNvbGxhdGlvbgorICAgICAqIHJ1bGVzIGFuZCB0aGUgc2FtZSBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBvYmogdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGJlIGNvbXBhcmVkIHRvLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yIGhhcyBleGFjdGx5IHRoZSBzYW1lCisgICAgICogICAgICAgICBjb2xsYXRpb24gYmVoYXZpb3VyIGFzIG9iaiwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBzdXBlciBkb2VzIGNsYXNzIGNoZWNrCisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG90aGVyID0gKFJ1bGVCYXNlZENvbGxhdG9yKW9iajsKKyAgICAgICAgLy8gYWxsIG90aGVyIG5vbi10cmFuc2llbnQgaW5mb3JtYXRpb24gaXMgYWxzbyBjb250YWluZWQgaW4gcnVsZXMuCisgICAgICAgIGlmIChnZXRTdHJlbmd0aCgpICE9IG90aGVyLmdldFN0cmVuZ3RoKCkKKyAgICAgICAgICAgICAgIHx8IGdldERlY29tcG9zaXRpb24oKSAhPSBvdGhlci5nZXREZWNvbXBvc2l0aW9uKCkKKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1fY2FzZUZpcnN0XyAhPSBtX2Nhc2VGaXJzdF8KKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1fY2FzZVN3aXRjaF8gIT0gbV9jYXNlU3dpdGNoXworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICB8fCBvdGhlci5tX2lzQ2FzZUxldmVsXyAhPSBtX2lzQ2FzZUxldmVsXworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9pc0ZyZW5jaENvbGxhdGlvbl8gIT0gbV9pc0ZyZW5jaENvbGxhdGlvbl8KKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1faXNIaXJhZ2FuYTRfICE9IG1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBydWxlcyA9IG1fcnVsZXNfID09IG90aGVyLm1fcnVsZXNfOworICAgICAgICBpZiAoIXJ1bGVzICYmIChtX3J1bGVzXyAhPSBudWxsICYmIG90aGVyLm1fcnVsZXNfICE9IG51bGwpKSB7CisgICAgICAgICAgICBydWxlcyA9IG1fcnVsZXNfLmVxdWFscyhvdGhlci5tX3J1bGVzXyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFydWxlcyB8fCAhSUNVRGVidWcuZW5hYmxlZCgiY29sbGF0aW9uIikpIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlczsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9hZGRpdGlvbjNfICE9IG90aGVyLm1fYWRkaXRpb24zXworICAgICAgICAgICAgICAgICAgfHwgbV9ib3R0b20zXyAhPSBvdGhlci5tX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICB8fCBtX2JvdHRvbUNvdW50M18gIT0gb3RoZXIubV9ib3R0b21Db3VudDNfCisgICAgICAgICAgICAgICAgICB8fCBtX2NvbW1vbjNfICE9IG90aGVyLm1fY29tbW9uM18KKyAgICAgICAgICAgICAgICAgIHx8IG1faXNTaW1wbGUzXyAhPSBvdGhlci5tX2lzU2ltcGxlM18KKyAgICAgICAgICAgICAgICAgIHx8IG1fbWFzazNfICE9IG90aGVyLm1fbWFzazNfCisgICAgICAgICAgICAgICAgICB8fCBtX21pbkNvbnRyYWN0aW9uRW5kXyAhPSBvdGhlci5tX21pbkNvbnRyYWN0aW9uRW5kXworICAgICAgICAgICAgICAgICAgfHwgbV9taW5VbnNhZmVfICE9IG90aGVyLm1fbWluVW5zYWZlXworICAgICAgICAgICAgICAgICAgfHwgbV90b3AzXyAhPSBvdGhlci5tX3RvcDNfCisgICAgICAgICAgICAgICAgICB8fCBtX3RvcENvdW50M18gIT0gb3RoZXIubV90b3BDb3VudDNfCisgICAgICAgICAgICAgICAgICB8fCAhQXJyYXlzLmVxdWFscyhtX3Vuc2FmZV8sIG90aGVyLm1fdW5zYWZlXykpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1fdHJpZV8uZXF1YWxzKG90aGVyLm1fdHJpZV8pKSB7CisgICAgICAgICAgICAvLyB3ZSBzaG91bGQgdXNlIHRoZSB0cmllIGl0ZXJhdG9yIGhlcmUsIGJ1dCB0aGVuIHRoaXMgcGFydCBpcworICAgICAgICAgICAgLy8gb25seSB1c2VkIGluIHRoZSB0ZXN0LgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFOyBpID49IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIC0tKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCB2ID0gbV90cmllXy5nZXRDb2RlUG9pbnRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpbnQgb3RoZXJ2ID0gb3RoZXIubV90cmllXy5nZXRDb2RlUG9pbnRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpZiAodiAhPSBvdGhlcnYpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG1hc2sgPSB2ICYgKENFX1RBR19NQVNLXyB8IENFX1NQRUNJQUxfRkxBR18pOworICAgICAgICAgICAgICAgICAgICBpZiAobWFzayA9PSAob3RoZXJ2ICYgMHhmZjAwMDAwMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gMHhmZmZmZmY7CisgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnYgJj0gMHhmZmZmZmY7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFzayA9PSAweGYxMDAwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSAobV9leHBhbnNpb25PZmZzZXRfIDw8IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVydiAtPSAob3RoZXIubV9leHBhbnNpb25PZmZzZXRfIDw8IDQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWFzayA9PSAweGYyMDAwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSBtX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnYgLT0gb3RoZXIubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBvdGhlcnYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChBcnJheXMuZXF1YWxzKG1fY29udHJhY3Rpb25DRV8sIG90aGVyLm1fY29udHJhY3Rpb25DRV8pCisgICAgICAgICAgICAmJiBBcnJheXMuZXF1YWxzKG1fY29udHJhY3Rpb25FbmRfLCBvdGhlci5tX2NvbnRyYWN0aW9uRW5kXykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9jb250cmFjdGlvbkluZGV4Xywgb3RoZXIubV9jb250cmFjdGlvbkluZGV4XykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9leHBhbnNpb25fLCBvdGhlci5tX2V4cGFuc2lvbl8pCisgICAgICAgICAgICAmJiBBcnJheXMuZXF1YWxzKG1fZXhwYW5zaW9uRW5kQ0VfLCBvdGhlci5tX2V4cGFuc2lvbkVuZENFXykpIHsKKyAgICAgICAgICAgIC8vIG5vdCBjb21wYXJpbmcgcGFkZGluZ3MKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgIGlmIChtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0KKyAgICAgICAgICAgICAgICAgICAgICE9IG90aGVyLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgaGFzaCBjb2RlIGZvciB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEByZXR1cm4gdGhlIHVuaXF1ZSBoYXNoIGNvZGUgZm9yIHRoaXMgQ29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IGdldFJ1bGVzKCk7CisgICAgICAgIGlmIChydWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBydWxlcyA9ICIiOworICAgICAgICB9CisgICAgICAgIHJldHVybiBydWxlcy5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGUgY29sbGF0aW9uIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlIGZvciB0aGlzCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBHZW5lcmFsIHJlY29tbWVuZGF0aW9uOiA8YnI+CisgICAgICogSWYgY29tcGFyaXNvbiBhcmUgdG8gYmUgZG9uZSB0byB0aGUgc2FtZSBTdHJpbmcgbXVsdGlwbGUgdGltZXMsIGl0IHdvdWxkCisgICAgICogYmUgbW9yZSBlZmZpY2llbnQgdG8gZ2VuZXJhdGUgQ29sbGF0aW9uS2V5cyBmb3IgdGhlIFN0cmluZ3MgYW5kIHVzZQorICAgICAqIENvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3IgdGhlIGNvbXBhcmlzb25zLgorICAgICAqIElmIHNwZWVkIHBlcmZvcm1hbmNlIGlzIGNyaXRpY2FsIGFuZCBvYmplY3QgaW5zdGFudGlhdGlvbiBpcyB0byBiZSAKKyAgICAgKiByZWR1Y2VkLCBmdXJ0aGVyIG9wdGltaXphdGlvbiBtYXkgYmUgYWNoaWV2ZWQgYnkgZ2VuZXJhdGluZyBhIHNpbXBsZXIgCisgICAgICoga2V5IG9mIHRoZSBmb3JtIFJhd0NvbGxhdGlvbktleSBhbmQgcmV1c2luZyB0aGlzIFJhd0NvbGxhdGlvbktleSAKKyAgICAgKiBvYmplY3Qgd2l0aCB0aGUgbWV0aG9kIFJ1bGVCYXNlZENvbGxhdG9yLmdldFJhd0NvbGxhdGlvbktleS4gSW50ZXJuYWwgCisgICAgICogYnl0ZSByZXByZXNlbnRhdGlvbiBjYW4gYmUgZGlyZWN0bHkgYWNjZXNzZWQgdmlhIFJhd0NvbGxhdGlvbktleSBhbmQKKyAgICAgKiBzdG9yZWQgZm9yIGZ1dHVyZSB1c2UuIExpa2UgQ29sbGF0aW9uS2V5LCBSYXdDb2xsYXRpb25LZXkgcHJvdmlkZXMgYQorICAgICAqIG1ldGhvZCBSYXdDb2xsYXRpb25LZXkuY29tcGFyZVRvIGZvciBrZXkgY29tcGFyaXNvbnMuCisgICAgICogSWYgdGhlIGVhY2ggU3RyaW5ncyBhcmUgY29tcGFyZWQgdG8gb25seSBvbmNlLCB1c2luZyB0aGUgbWV0aG9kCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZykgd2lsbCBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGxlbmd0aCBvZiBhbnkgbGVhZGluZyBwb3J0aW9uIHRoYXQgaXMgZXF1YWwKKyAgICAgICAgaW50IG9mZnNldCA9IGdldEZpcnN0VW5tYXRjaGVkT2Zmc2V0KHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgLy9yZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgIGlmKGxhdGluT25lVXNlXykgeworICAgICAgICAgIGlmICgob2Zmc2V0IDwgc291cmNlLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgJiYgc291cmNlLmNoYXJBdChvZmZzZXQpID4gRU5ET0ZMQVRJTk9ORVJBTkdFXykgCisgICAgICAgICAgICAgIHx8IChvZmZzZXQgPCB0YXJnZXQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgICAmJiB0YXJnZXQuY2hhckF0KG9mZnNldCkgPiBFTkRPRkxBVElOT05FUkFOR0VfKSkgeyAKKyAgICAgICAgICAgICAgLy8gc291cmNlIG9yIHRhcmdldCBzdGFydCB3aXRoIG5vbi1sYXRpbi0xCisgICAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlVXNlTGF0aW4xKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXQpOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGlubmVyIGludGVyZmFjZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSB2YWx1ZXMgdG8gYmUgdXNlZCB3aGVuIHNldHRpbmcgdGhlIENvbGxhdG9yIG9wdGlvbnMKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ZXJmYWNlIEF0dHJpYnV0ZVZhbHVlCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICogU2VlIGluZGl2aWR1YWwgYXR0cmlidXRlIGZvciBkZXRhaWxzIG9uIGl0cyBkZWZhdWx0IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBERUZBVUxUXyA9IC0xOworICAgICAgICAvKioKKyAgICAgICAgICogUHJpbWFyeSBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgUFJJTUFSWV8gPSBDb2xsYXRvci5QUklNQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogU2Vjb25kYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTRUNPTkRBUllfID0gQ29sbGF0b3IuU0VDT05EQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogVGVydGlhcnkgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFRFUlRJQVJZXyA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmYXVsdCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9TVFJFTkdUSF8gPSBDb2xsYXRvci5URVJUSUFSWTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIHVzZSBmb3Igc3RyZW5ndGggY2hlY2tzIGluIENvbGxhdGlvbiBlbGVtZW50cworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBDRV9TVFJFTkdUSF9MSU1JVF8gPSBDb2xsYXRvci5URVJUSUFSWSArIDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBRdWF0ZXJuYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBRVUFURVJOQVJZXyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJZGVudGljYWwgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IElERU5USUNBTF8gPSBDb2xsYXRvci5JREVOVElDQUw7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnRlcm5hbCB1c2UgZm9yIHN0cmVuZ3RoIGNoZWNrcworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTVFJFTkdUSF9MSU1JVF8gPSBDb2xsYXRvci5JREVOVElDQUwgKyAxOworICAgICAgICAvKioKKyAgICAgICAgICogVHVybiB0aGUgZmVhdHVyZSBvZmYgLSB3b3JrcyBmb3IgRlJFTkNIX0NPTExBVElPTiwgQ0FTRV9MRVZFTCwKKyAgICAgICAgICogSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFIGFuZCBERUNPTVBPU0lUSU9OX01PREUKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgT0ZGXyA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogVHVybiB0aGUgZmVhdHVyZSBvbiAtIHdvcmtzIGZvciBGUkVOQ0hfQ09MTEFUSU9OLCBDQVNFX0xFVkVMLAorICAgICAgICAgKiBISVJBR0FOQV9RVUFURVJOQVJZX01PREUgYW5kIERFQ09NUE9TSVRJT05fTU9ERQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBPTl8gPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBBTFRFUk5BVEVfSEFORExJTkcuIEFsdGVybmF0ZSBoYW5kbGluZyB3aWxsIGJlIHNoaWZ0ZWQKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRFRF8gPSAyMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBBTFRFUk5BVEVfSEFORExJTkcuIEFsdGVybmF0ZSBoYW5kbGluZyB3aWxsIGJlIG5vbgorICAgICAgICAgKiBpZ25vcmFibGUKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0lHTk9SQUJMRV8gPSAyMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkIGZvciBDQVNFX0ZJUlNUIC0gbG93ZXIgY2FzZSBzb3J0cyBiZWZvcmUgdXBwZXIgY2FzZQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMT1dFUl9GSVJTVF8gPSAyNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVwcGVyIGNhc2Ugc29ydHMgYmVmb3JlIGxvd2VyIGNhc2UKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJfRklSU1RfID0gMjU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgYXR0cmlidXRlIHZhbHVlcworICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMSU1JVF8gPSAyOTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGVzIHRoYXQgY29sbGF0aW9uIHNlcnZpY2UgdW5kZXJzdGFuZHMuIEFsbCB0aGUgYXR0cmlidXRlcyBjYW4KKyAgICAgKiB0YWtlIERFRkFVTFQgdmFsdWUsIGFzIHdlbGwgYXMgdGhlIHZhbHVlcyBzcGVjaWZpYyB0byBlYWNoIG9uZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ZXJmYWNlIEF0dHJpYnV0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgZGlyZWN0aW9uIG9mIHNlY29uZGFyeSB3ZWlnaHRzIC0gdXNlZCBpbiBGcmVuY2guCisgICAgICAgICAqIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBPTiwgd2hpY2ggcmVzdWx0cyBpbiBzZWNvbmRhcnkgd2VpZ2h0cyBiZWluZworICAgICAgICAgKiBjb25zaWRlcmVkIGJhY2t3YXJkcyBhbmQgT0ZGIHdoaWNoIHRyZWF0cyBzZWNvbmRhcnkgd2VpZ2h0cyBpbiB0aGUKKyAgICAgICAgICogb3JkZXIgdGhleSBhcHBlYXIuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IEZSRU5DSF9DT0xMQVRJT05fID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMuIEFjY2VwdGFibGUgdmFsdWVzIGFyZQorICAgICAgICAgKiBOT05fSUdOT1JBQkxFIChkZWZhdWx0KSB3aGljaCB0cmVhdHMgYWxsIHRoZSBjb2RlcG9pbnRzIHdpdGgKKyAgICAgICAgICogbm9uLWlnbm9yYWJsZSBwcmltYXJ5IHdlaWdodHMgaW4gdGhlIHNhbWUgd2F5LCBhbmQgU0hJRlRFRCB3aGljaAorICAgICAgICAgKiBjYXVzZXMgY29kZXBvaW50cyB3aXRoIHByaW1hcnkgd2VpZ2h0cyB0aGF0IGFyZSBlcXVhbCBvciBiZWxvdyB0aGUKKyAgICAgICAgICogdmFyaWFibGUgdG9wIHZhbHVlIHRvIGJlIGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQgdG8gdGhlCisgICAgICAgICAqIHF1YXRlcm5hcnkgbGV2ZWwuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IEFMVEVSTkFURV9IQU5ETElOR18gPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQ29udHJvbHMgdGhlIG9yZGVyaW5nIG9mIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMuIEFjY2VwdGFibGUKKyAgICAgICAgICogdmFsdWVzIGFyZSBPRkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycworICAgICAgICAgKiBpbiBhY2NvcmRhbmNlIHRvIHRoZWlyIHRlcnRpYXJ5IHdlaWdodHMsIFVQUEVSX0ZJUlNUIHdoaWNoIGZvcmNlcworICAgICAgICAgKiB1cHBlciBjYXNlIGxldHRlcnMgdG8gc29ydCBiZWZvcmUgbG93ZXIgY2FzZSBsZXR0ZXJzLCBhbmQKKyAgICAgICAgICogTE9XRVJfRklSU1Qgd2hpY2ggZG9lcyB0aGUgb3Bwb3NpdGUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENBU0VfRklSU1RfID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnRyb2xzIHdoZXRoZXIgYW4gZXh0cmEgY2FzZSBsZXZlbCAocG9zaXRpb25lZCBiZWZvcmUgdGhlIHRoaXJkCisgICAgICAgICAqIGxldmVsKSBpcyBnZW5lcmF0ZWQgb3Igbm90LiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgT0ZGIChkZWZhdWx0KSwKKyAgICAgICAgICogd2hlbiBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQsIGFuZCBPTiB3aGljaCBjYXVzZXMgdGhlIGNhc2UKKyAgICAgICAgICogbGV2ZWwgdG8gYmUgZ2VuZXJhdGVkLiBDb250ZW50cyBvZiB0aGUgY2FzZSBsZXZlbCBhcmUgYWZmZWN0ZWQgYnkKKyAgICAgICAgICogdGhlIHZhbHVlIG9mIENBU0VfRklSU1QgYXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIGFjY2VudAorICAgICAgICAgKiBkaWZmZXJlbmNlcyBpbiBhIHN0cmluZyBpcyB0byBzZXQgdGhlIHN0cmVuZ3RoIHRvIFBSSU1BUlkgYW5kCisgICAgICAgICAqIGVuYWJsZSBjYXNlIGxldmVsLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBDQVNFX0xFVkVMXyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSBub3JtYWxpemF0aW9uIGNoZWNrIGFuZCBuZWNlc3NhcnkKKyAgICAgICAgICogbm9ybWFsaXphdGlvbnMgYXJlIHBlcmZvcm1lZC4gV2hlbiBzZXQgdG8gT0ZGIChkZWZhdWx0KSBubworICAgICAgICAgKiBub3JtYWxpemF0aW9uIGNoZWNrIGlzIHBlcmZvcm1lZC4gVGhlIGNvcnJlY3RuZXNzIG9mIHRoZSByZXN1bHQgaXMKKyAgICAgICAgICogZ3VhcmFudGVlZCBvbmx5IGlmIHRoZSBpbnB1dCBkYXRhIGlzIGluIHNvLWNhbGxlZCBGQ0QgZm9ybSAoc2VlCisgICAgICAgICAqIHVzZXJzIG1hbnVhbCBmb3IgbW9yZSBpbmZvKS4gV2hlbiBzZXQgdG8gT04sIGFuIGluY3JlbWVudGFsIGNoZWNrCisgICAgICAgICAqIGlzIHBlcmZvcm1lZCB0byBzZWUgd2hldGhlciB0aGUgaW5wdXQgZGF0YSBpcyBpbiB0aGUgRkNEIGZvcm0uIElmCisgICAgICAgICAqIHRoZSBkYXRhIGlzIG5vdCBpbiB0aGUgRkNEIGZvcm0sIGluY3JlbWVudGFsIE5GRCBub3JtYWxpemF0aW9uIGlzCisgICAgICAgICAqIHBlcmZvcm1lZC4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9STUFMSVpBVElPTl9NT0RFXyA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RyZW5ndGggYXR0cmlidXRlLiBDYW4gYmUgZWl0aGVyIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksCisgICAgICAgICAqIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLiBUaGUgdXN1YWwgc3RyZW5ndGggZm9yIG1vc3QgbG9jYWxlcworICAgICAgICAgKiAoZXhjZXB0IEphcGFuZXNlKSBpcyB0ZXJ0aWFyeS4gUXVhdGVybmFyeSBzdHJlbmd0aCBpcyB1c2VmdWwgd2hlbgorICAgICAgICAgKiBjb21iaW5lZCB3aXRoIHNoaWZ0ZWQgc2V0dGluZyBmb3IgYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBhbmQKKyAgICAgICAgICogZm9yIEpJUyB4IDQwNjEgY29sbGF0aW9uLCB3aGVuIGl0IGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgorICAgICAgICAgKiBLYXRha2FuYSAgYW5kIEhpcmFnYW5hICh0aGlzIGlzIGFjaGlldmVkIGJ5IHNldHRpbmcgdGhlCisgICAgICAgICAqIEhJUkFHQU5BX1FVQVRFUk5BUlkgbW9kZSB0byBvbi4gT3RoZXJ3aXNlLCBxdWF0ZXJuYXJ5IGxldmVsIGlzCisgICAgICAgICAqIGFmZmVjdGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluIHRoZQorICAgICAgICAgKiBzdHJpbmcuIElkZW50aWNhbCBzdHJlbmd0aCBpcyByYXJlbHkgdXNlZnVsLCBhcyBpdCBhbW91bnRzIHRvCisgICAgICAgICAqIGNvZGVwb2ludHMgb2YgdGhlIE5GRCBmb3JtIG9mIHRoZSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNUUkVOR1RIXyA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUgcG9zaXRpb25zIEhpcmFnYW5hIGJlZm9yZSBhbGwKKyAgICAgICAgICogbm9uLWlnbm9yYWJsZXMgb24gcXVhdGVybmFyeSBsZXZlbC4gVGhpcyBpcyBhIHNuZWFreSB3YXkgdG8gcHJvZHVjZQorICAgICAgICAgKiBKSVMgc29ydCBvcmRlci4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFXyA9IDY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBdHRyaWJ1dGUgY291bnQKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRfID0gNzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEYXRhTWFuaXB1bGF0ZSBzaW5nbGV0b24KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgRGF0YU1hbmlwdWxhdGUgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlCisgICAgeworICAgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIG1ldGhvZCBjYWxsZWQgdG8gcGFyc2UgYSBsZWFkIHN1cnJvZ2F0ZSdzIGNlIGZvciB0aGUgb2Zmc2V0CisgICAgICAgICAqIHRvIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZSBkYXRhLgorICAgICAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgb2YgdGhlIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBmb3IgdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCBjZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGlzU3BlY2lhbChjZSkgJiYgZ2V0VGFnKGNlKSA9PSBDRV9TVVJST0dBVEVfVEFHXykgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2UgJiAweEZGRkZGRik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgc2luZ2xldG9uIG9iamVjdAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRhTWFuaXB1bGF0ZSBnZXRJbnN0YW5jZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2luc3RhbmNlXyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9pbnN0YW5jZV8gPSAgbmV3IERhdGFNYW5pcHVsYXRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9pbnN0YW5jZV87CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2luZ2xldG9uIGluc3RhbmNlCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBEYXRhTWFuaXB1bGF0ZSBtX2luc3RhbmNlXzsKKworICAgICAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogcHJpdmF0ZSB0byBwcmV2ZW50IGluaXRpYWxpemF0aW9uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIERhdGFNYW5pcHVsYXRlKCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVUNBQ29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFVDQUNvbnN0YW50cworICAgIHsKKyAgICAgICAgIGludCBGSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAvLyAweDAwMDAwMDAwCisgICAgICAgICBpbnQgTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgLy8gMHgwMDAwMDAwMAorICAgICAgICAgaW50IEZJUlNUX1BSSU1BUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgIC8vIDB4MDAwMDg3MDUKKyAgICAgICAgIGludCBGSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAvLyAweDAwMDAwMDAwCisgICAgICAgICBpbnQgTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgLy8gMHgwMDAwMDUwMAorICAgICAgICAgaW50IExBU1RfUFJJTUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgIC8vIDB4MDAwMEREMDUKKyAgICAgICAgIGludCBGSVJTVF9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAgICAvLyAweDA1MDcwNTA1CisgICAgICAgICBpbnQgTEFTVF9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAgICAgLy8gMHgxM0NGMDUwNQorICAgICAgICAgaW50IEZJUlNUX05PTl9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgIC8vIDB4MTYyMDA1MDUKKyAgICAgICAgIGludCBMQVNUX05PTl9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgICAvLyAweDc2N0MwNTA1CisgICAgICAgICBpbnQgUkVTRVRfVE9QX1ZBTFVFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgICAgLy8gMHg5RjAwMDMwMworICAgICAgICAgaW50IEZJUlNUX0lNUExJQ0lUX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBMQVNUX0lNUExJQ0lUX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBGSVJTVF9UUkFJTElOR19bXSA9IG5ldyBpbnRbMl07CisgICAgICAgICBpbnQgTEFTVF9UUkFJTElOR19bXSA9IG5ldyBpbnRbMl07CisgICAgICAgICBpbnQgUFJJTUFSWV9UT1BfTUlOXzsKKyAgICAgICAgIGludCBQUklNQVJZX0lNUExJQ0lUX01JTl87IC8vIDB4RTgwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX0lNUExJQ0lUX01BWF87IC8vIDB4RjAwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1RSQUlMSU5HX01JTl87IC8vIDB4RTgwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1RSQUlMSU5HX01BWF87IC8vIDB4RjAwMDAwMDAKKyAgICAgICAgIGludCBQUklNQVJZX1NQRUNJQUxfTUlOXzsgLy8gMHhFODAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfU1BFQ0lBTF9NQVhfOyAvLyAweEYwMDAwMDAwCisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfRklSU1RfVEFJTE9SRURfID0gKGJ5dGUpMHgwNDsKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0NPTU1PTl8gPSAoYnl0ZSkweDA1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF8yXyA9IDB4ODY7IC8vIGludCBmb3IgdW5zaWduZXNzCisgICAgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NXzJfID0gQllURV9DT01NT05fOworICAgIC8qKgorICAgICAqIENhc2Ugc3RyZW5ndGggbWFzaworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0FTRV9CSVRfTUFTS18gPSAweEMwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX1NISUZUXyA9IDI0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX01BU0tfID0gMHgwRjAwMDAwMDsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ0lBTF9GTEFHXyA9IDB4RjAwMDAwMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgdGhhdCBpcyB0YWlsb3JlZCBhbmQgZG9lc24ndCBzdGFydCBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TVVJST0dBVEVfVEFHXyA9IDU7CisgICAgLyoqCisgICAgICogTWFzayB0byBnZXQgdGhlIHByaW1hcnkgc3RyZW5ndGggb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9QUklNQVJZX01BU0tfID0gMHhGRkZGMDAwMDsKKyAgICAvKioKKyAgICAgKiBNYXNrIHRvIGdldCB0aGUgc2Vjb25kYXJ5IHN0cmVuZ3RoIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU0VDT05EQVJZX01BU0tfID0gMHhGRjAwOworICAgIC8qKgorICAgICAqIE1hc2sgdG8gZ2V0IHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX1RFUlRJQVJZX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBQcmltYXJ5IHN0cmVuZ3RoIHNoaWZ0CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9QUklNQVJZX1NISUZUXyA9IDE2OworICAgIC8qKgorICAgICAqIFNlY29uZGFyeSBzdHJlbmd0aCBzaGlmdAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU0VDT05EQVJZX1NISUZUXyA9IDg7CisgICAgLyoqCisgICAgICogQ29udGludWF0aW9uIG1hcmtlcgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVElOVUFUSU9OX01BUktFUl8gPSAweEMwOworCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb2xsYXRvciByYXcgZGF0YSBoZWFkZXJzIGFuZCBvcHRpb25zIGJlZm9yZSB0aGUgZXhwYW5zaW9uCisgICAgICogZGF0YS4gVGhpcyBpcyB1c2VkIHdoZW4gZXhwYW5zaW9uIGNlcyBhcmUgdG8gYmUgcmV0cmlldmVkLiBJQ1U0QyB1c2VzCisgICAgICogdGhlIGV4cGFuc2lvbiBvZmZzZXQgc3RhcnRpbmcgZnJvbSBVQ29sbGF0b3IuVUNvbEhlYWRlciwgaGVuY2UgSUNVNEoKKyAgICAgKiB3aWxsIGhhdmUgdG8gbWludXMgdGhhdCBvZmYgdG8gZ2V0IHRoZSByaWdodCBleHBhbnNpb24gY2Ugb2Zmc2V0LiBJbgorICAgICAqIG51bWJlciBvZiBpbnRzLgorICAgICAqLworICAgIGludCBtX2V4cGFuc2lvbk9mZnNldF87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb2xsYXRvciByYXcgZGF0YSBoZWFkZXJzLCBvcHRpb25zIGFuZCBleHBhbnNpb25zIGJlZm9yZQorICAgICAqIGNvbnRyYWN0aW9uIGRhdGEuIFRoaXMgaXMgdXNlZCB3aGVuIGNvbnRyYWN0aW9uIGNlcyBhcmUgdG8gYmUgcmV0cmlldmVkLgorICAgICAqIElDVTRDIHVzZXMgY29udHJhY3Rpb24gb2Zmc2V0IHN0YXJ0aW5nIGZyb20gVUNvbGxhdG9yLlVDb2xIZWFkZXIsIGhlbmNlCisgICAgICogSUNVNEogd2lsbCBoYXZlIHRvIG1pbnVzIHRoYXQgb2ZmIHRvIGdldCB0aGUgcmlnaHQgY29udHJhY3Rpb24gY2UKKyAgICAgKiBvZmZzZXQuIEluIG51bWJlciBvZiBjaGFycy4KKyAgICAgKi8KKyAgICBpbnQgbV9jb250cmFjdGlvbk9mZnNldF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgSmFtbyBpcyBzcGVjaWFsCisgICAgICovCisgICAgYm9vbGVhbiBtX2lzSmFtb1NwZWNpYWxfOworCisgICAgLy8gQ29sbGF0b3Igb3B0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBpbnQgbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgaW50IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgaW50IG1fZGVmYXVsdERlY29tcG9zaXRpb25fOworICAgIGludCBtX2RlZmF1bHRTdHJlbmd0aF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc0hpcmFnYW5hNF87CisgICAgYm9vbGVhbiBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSB2YXJpYWJsZSB0b3AKKyAgICAgKi8KKyAgICBpbnQgbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgZm9yIHNwZWNpYWwgSGlyYWdhbmEKKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNIaXJhZ2FuYTRfOworICAgIC8qKgorICAgICAqIENhc2Ugc29ydGluZyBjdXN0b21pemF0aW9uCisgICAgICovCisgICAgaW50IG1fY2FzZUZpcnN0XzsKKyAgICAvKioKKyAgICAgKiBOdW1lcmljIGNvbGxhdGlvbiBvcHRpb24KKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNOdW1lcmljQ29sbGF0aW9uXzsKKworICAgIC8vIGVuZCBDb2xsYXRvciBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFeHBhbnNpb24gdGFibGUKKyAgICAgKi8KKyAgICBpbnQgbV9leHBhbnNpb25fW107CisgICAgLyoqCisgICAgICogQ29udHJhY3Rpb24gaW5kZXggdGFibGUKKyAgICAgKi8KKyAgICBjaGFyIG1fY29udHJhY3Rpb25JbmRleF9bXTsKKyAgICAvKioKKyAgICAgKiBDb250cmFjdGlvbiBDRSB0YWJsZQorICAgICAqLworICAgIGludCBtX2NvbnRyYWN0aW9uQ0VfW107CisgICAgLyoqCisgICAgICogRGF0YSB0cmllCisgICAgICovCisgICAgSW50VHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICAqIFRhYmxlIHRvIHN0b3JlIGFsbCBjb2xsYXRpb24gZWxlbWVudHMgdGhhdCBhcmUgdGhlIGxhc3QgZWxlbWVudCBvZiBhbgorICAgICAqIGV4cGFuc2lvbi4gVGhpcyBpcyBmb3IgdXNlIGluIFN0cmluZ1NlYXJjaC4KKyAgICAgKi8KKyAgICBpbnQgbV9leHBhbnNpb25FbmRDRV9bXTsKKyAgICAvKioKKyAgICAgKiBUYWJsZSB0byBzdG9yZSB0aGUgbWF4aW11bSBzaXplIG9mIGFueSBleHBhbnNpb25zIHRoYXQgZW5kIHdpdGggdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjb2xsYXRpb24gZWxlbWVudCBpbiBtX2V4cGFuc2lvbkVuZENFXy4gRm9yIHVzZSBpbgorICAgICAqIFN0cmluZ1NlYXJjaCB0b28KKyAgICAgKi8KKyAgICBieXRlIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tdOworICAgIC8qKgorICAgICAqIEhldXJpc3RpYyB0YWJsZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBvbiB3aGV0aGVyIGEgY2hhciBjaGFyYWN0ZXIgaXMKKyAgICAgKiBjb25zaWRlcmVkICJ1bnNhZmUiLiAiVW5zYWZlIiBjaGFyYWN0ZXIgYXJlIGNvbWJpbmluZyBtYXJrcyBvciB0aG9zZQorICAgICAqIGJlbG9uZ2luZyB0byBzb21lIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGZyb20gdGhlIG9mZnNldCAxIG9ud2FyZHMuCisgICAgICogRS5nLiBpZiAiQUJDIiBpcyB0aGUgb25seSBjb250cmFjdGlvbiwgdGhlbiAnQicgYW5kICdDJyBhcmUgY29uc2lkZXJlZAorICAgICAqIHVuc2FmZS4gSWYgd2UgaGF2ZSBhbm90aGVyIGNvbnRyYWN0aW9uICJaQSIgd2l0aCB0aGUgb25lIGFib3ZlLCB0aGVuCisgICAgICogJ0EnLCAnQicsICdDJyBhcmUgInVuc2FmZSIgYnV0ICdaJyBpcyBub3QuCisgICAgICovCisgICAgYnl0ZSBtX3Vuc2FmZV9bXTsKKyAgICAvKioKKyAgICAgKiBUYWJsZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBvbiB3aGV0aGVyIGEgY29kZXBvaW50IGNhbiBvY2N1ciBhcyB0aGUgbGFzdAorICAgICAqIGNoYXJhY3RlciBpbiBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgYnl0ZSBtX2NvbnRyYWN0aW9uRW5kX1tdOworICAgIC8qKgorICAgICAqIE9yaWdpbmFsIGNvbGxhdGlvbiBydWxlcworICAgICAqLworICAgIFN0cmluZyBtX3J1bGVzXzsKKyAgICAvKioKKyAgICAgKiBUaGUgc21hbGxlc3QgInVuc2FmZSIgY29kZXBvaW50CisgICAgICovCisgICAgY2hhciBtX21pblVuc2FmZV87CisgICAgLyoqCisgICAgICogVGhlIHNtYWxsZXN0IGNvZGVwb2ludCB0aGF0IGNvdWxkIGJlIHRoZSBlbmQgb2YgYSBjb250cmFjdGlvbgorICAgICAqLworICAgIGNoYXIgbV9taW5Db250cmFjdGlvbkVuZF87CisgICAgLyoqCisgICAgICogR2VuZXJhbCB2ZXJzaW9uIG9mIHRoZSBjb2xsYXRvcgorICAgICAqLworICAgIFZlcnNpb25JbmZvIG1fdmVyc2lvbl87CisgICAgLyoqCisgICAgICogVUNBIHZlcnNpb24KKyAgICAgKi8KKyAgICBWZXJzaW9uSW5mbyBtX1VDQV92ZXJzaW9uXzsKKyAgICAvKioKKyAgICAgKiBVQ0QgdmVyc2lvbgorICAgICAqLworICAgIFZlcnNpb25JbmZvIG1fVUNEX3ZlcnNpb25fOworCisgICAgLyoqCisgICAgICogVW5pY29kZURhdGEudHh0IHByb3BlcnR5IG9iamVjdAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBSdWxlQmFzZWRDb2xsYXRvciBVQ0FfOworICAgIC8qKgorICAgICAqIFVDQSBDb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgVUNBQ29uc3RhbnRzIFVDQV9DT05TVEFOVFNfOworICAgIC8qKgorICAgICAqIFRhYmxlIGZvciBVQ0EgYW5kIGJ1aWxkZXIgdXNlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgVUNBX0NPTlRSQUNUSU9OU19bXTsKKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gVUNBX0lOSVRfQ09NUExFVEU7CisKKyAgICAvKioKKyAgICAgKiBJbXBsaWNpdCBnZW5lcmF0b3IKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgSW1wbGljaXRDRUdlbmVyYXRvciBpbXBDRUdlbl87CisvLyAgICAvKioKKy8vICAgICAqIEltcGxpY2l0IGNvbnN0YW50cworLy8gICAgICovCisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0JBU0VfQllURV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0xJTUlUX0JZVEVfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF80QllURV9CT1VOREFSWV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1RfTVVMVElQTElFUl87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1QyX01VTFRJUExJRVJfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF9CQVNFXzNCWVRFXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfQkFTRV80QllURV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IEJZVEVTX1RPX0FWT0lEXyA9IDM7CisvLyAgICBzdGF0aWMgZmluYWwgaW50IE9USEVSX0NPVU5UXyA9IDI1NiAtIEJZVEVTX1RPX0FWT0lEXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DT1VOVF8gPSBPVEhFUl9DT1VOVF8gLyAyOworLy8gICAgLyoqCisvLyAgICAgKiBSb29tIGZvciBpbnRlcnZlbmluZywgd2l0aG91dCBleHBhbmRpbmcgdG8gNSBieXRlcworLy8gICAgICovCisvLyAgICBzdGF0aWMgZmluYWwgaW50IExBU1RfQ09VTlQyXyA9IE9USEVSX0NPVU5UXyAvIDIxOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF8zQllURV9DT1VOVF8gPSAxOworLy8gICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgU09SVF9MRVZFTF9URVJNSU5BVE9SXyA9IDE7CisKKy8vICBUaGVzZSBhcmUgdmFsdWVzIGZyb20gVUNBIHJlcXVpcmVkIGZvcgorLy8gIGltcGxpY2l0IGdlbmVyYXRpb24gYW5kIHN1cHJlc3Npbmcgc29ydCBrZXkgY29tcHJlc3Npb24KKy8vICB0aGV5IHNob3VsZCByZWd1bGFybHkgYmUgaW4gdGhlIFVDQSwgYnV0IGlmIG9uZQorLy8gIGlzIHJ1bm5pbmcgd2l0aG91dCBVQ0EsIGl0IGNvdWxkIGJlIGEgcHJvYmxlbQorICAgICBzdGF0aWMgZmluYWwgaW50IG1heFJlZ3VsYXJQcmltYXJ5ICA9IDB4QTA7CisgICAgIHN0YXRpYyBmaW5hbCBpbnQgbWluSW1wbGljaXRQcmltYXJ5ID0gMHhFMDsKKyAgICAgc3RhdGljIGZpbmFsIGludCBtYXhJbXBsaWNpdFByaW1hcnkgPSAweEU0OworCisKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIGNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhYmFzZQorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgLy8gdGFrZSBwYWlucyB0byBsZXQgc3RhdGljIGNsYXNzIGluaXQgc3VjY2VlZCwgb3RoZXJ3aXNlIHRoZSBjbGFzcyBpdHNlbGYgd29uJ3QgZXhpc3QgYW5kCisgICAgICAgIC8vIGNsaWVudHMgd2lsbCBnZXQgYSBOb0NsYXNzRGVmRm91bmRFeGNlcHRpb24uICBJbnN0ZWFkLCBtYWtlIHRoZSBjb25zdHJ1Y3RvcnMgZmFpbCBpZgorICAgICAgICAvLyB3ZSBjYW4ndCBsb2FkIHRoZSBVQ0EgZGF0YS4KKworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBpVUNBXyA9IG51bGw7CisgICAgICAgIFVDQUNvbnN0YW50cyBpVUNBX0NPTlNUQU5UU18gPSBudWxsOworICAgICAgICBjaGFyIGlVQ0FfQ09OVFJBQ1RJT05TX1tdID0gbnVsbDsKKyAgICAgICAgSW1wbGljaXRDRUdlbmVyYXRvciBpaW1wQ0VHZW5fID0gbnVsbDsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vICEhISBub3RlIHdoYXQncyBnb2luZyBvbiBoZXJlLi4uCisgICAgICAgICAgICAvLyBldmVuIHRob3VnaCB0aGUgc3RhdGljIGluaXQgb2YgdGhlIGNsYXNzIGlzIG5vdCB5ZXQgY29tcGxldGUsIHdlCisgICAgICAgICAgICAvLyBpbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MuICBTbyB3ZSdkIGJldHRlciBiZSBzdXJlIHRoYXQKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRpb24gZG9lc24ndCByZWx5IG9uIHRoZSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gdGhhdCdzCisgICAgICAgICAgICAvLyBub3QgY29tcGxldGUgeWV0IQorICAgICAgICAgICAgaVVDQV8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKTsKKyAgICAgICAgICAgIGlVQ0FfQ09OU1RBTlRTXyA9IG5ldyBVQ0FDb25zdGFudHMoKTsKKyAgICAgICAgICAgIGlVQ0FfQ09OVFJBQ1RJT05TXyA9IENvbGxhdG9yUmVhZGVyLnJlYWQoaVVDQV8sIGlVQ0FfQ09OU1RBTlRTXyk7CisKKyAgICAgICAgICAgIC8vIGNhbGxlZCBiZWZvcmUgZG9pbmcgY2Fub25pY2FsIGNsb3N1cmUgZm9yIHRoZSBVQ0EuCisgICAgICAgICAJaWltcENFR2VuXyA9IG5ldyBJbXBsaWNpdENFR2VuZXJhdG9yKG1pbkltcGxpY2l0UHJpbWFyeSwgbWF4SW1wbGljaXRQcmltYXJ5KTsKKyAgICAgICAgICAgIC8vaWltcENFR2VuXyA9IG5ldyBJbXBsaWNpdENFR2VuZXJhdG9yKGlVQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl8sIGlVQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pOworICAgICAgICAgICAgaVVDQV8uaW5pdCgpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCBVTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgaVVDQV8ubV9ydWxlc18gPSAoU3RyaW5nKXJiLmdldE9iamVjdCgiVUNBUnVsZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KQorICAgICAgICB7CisvLyAgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworLy8gICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKworICAgICAgICBVQ0FfID0gaVVDQV87CisgICAgICAgIFVDQV9DT05TVEFOVFNfID0gaVVDQV9DT05TVEFOVFNfOworICAgICAgICBVQ0FfQ09OVFJBQ1RJT05TXyA9IGlVQ0FfQ09OVFJBQ1RJT05TXzsKKyAgICAgICAgaW1wQ0VHZW5fID0gaWltcENFR2VuXzsKKworICAgICAgICBVQ0FfSU5JVF9DT01QTEVURSA9IHRydWU7CisgICAgfQorCisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGNoZWNrVUNBKCkgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChVQ0FfSU5JVF9DT01QTEVURSAmJiBVQ0FfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvbGxhdG9yIFVDQSBkYXRhIHVuYXZhaWxhYmxlIiwgIiIsICIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UHJpdmF0ZSBjb250cnVjdG9yIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAqIFB1YmxpYyBhY2Nlc3MgdG8gY3JlYXRpbmcgQ29sbGF0b3JzIGlzIGhhbmRsZWQgYnkgdGhlIEFQSQorICAgICogQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSBvciBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcgcnVsZXMpLgorICAgICogPC9wPgorICAgICogPHA+CisgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNvbnN0cnVjdHMgdGhlIFVDQSBjb2xsYXRvciBpbnRlcm5hbGx5CisgICAgKiA8L3A+CisgICAgKi8KKyAgICBSdWxlQmFzZWRDb2xsYXRvcigpCisgICAgeworICAgICAgICBjaGVja1VDQSgpOworICAgICAgICBpbml0VXRpbGl0eShmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3JzIGEgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSB0aGUgYXJndW1lbnQgbG9jYWxlLgorICAgICAqIElmIG5vIHJlc291cmNlIGJ1bmRsZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGxvY2FsZSwgVUNBIGlzIHVzZWQKKyAgICAgKiBpbnN0ZWFkLgorICAgICAqIEBwYXJhbSBsb2NhbGUKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRDb2xsYXRvcihVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgaW5pdFV0aWxpdHkoZmFsc2UpOworICAgICAgICBpZiAocmIgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBVc2Uga2V5d29yZHMsIGlmIHN1cHBsaWVkIGZvciBsb29rdXAKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29sbGtleSA9IGxvY2FsZS5nZXRLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIpOworICAgICAgICAgICAgICAgICAgaWYoY29sbGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgY29sbGtleSA9IHJiLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRpb25zL2RlZmF1bHQgd2lsbCBhbHdheXMgZ2l2ZSBhIHN0cmluZyBiYWNrCisgICAgICAgICAgICAgICAgLy8ga2V5d29yZCBmb3IgdGhlIHJlYWwgY29sbGF0aW9uIGRhdGEKKyAgICAgICAgICAgICAgICAvLyBpZiAiY29sbGF0aW9ucy9jb2xsa2V5IiB3aWxsIHJldHVybiBudWxsIGlmIGNvbGxrZXkgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBlbGVtZW50cyA9IHJiLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy8iICsgY29sbGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIGFjdHVhbCAmIHZhbGlkIGxvY2FsZSBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gcmIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgICAgICAgICAgICAgbV9ydWxlc18gPSBlbGVtZW50cy5nZXRTdHJpbmcoIlNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gZWxlbWVudHMuZ2V0KCIlJUNvbGxhdGlvbkJpbiIpLmdldEJpbmFyeSgpOworICAgICAgICAgICAgICAgICAgICAvLyAlJUNvbGxhdGlvbkJpbgorICAgICAgICAgICAgICAgICAgICBpZihidWYhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAvLyAgICAgbV9ydWxlc18gPSAoU3RyaW5nKXJ1bGVzWzFdWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBtYXBbXSA9IGJ1Zi5hcnJheSgpOworICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3JSZWFkZXIuaW5pdFJCQyh0aGlzLCBtYXApOworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gaW5wdXQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShtYXApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvclJlYWRlciByZWFkZXIgPSBuZXcgQ29sbGF0b3JSZWFkZXIoaW5wdXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXAubGVuZ3RoID4gTUlOX0JJTkFSWV9EQVRBX1NJWkVfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWQodGhpcywgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZEhlYWRlcih0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZE9wdGlvbnModGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVwbGljYXRpbmcgVUNBXydzIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaXRoVUNBVGFibGVzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgd2UgaGF2ZSByZWFkIGluIHRoZSBjb2xsYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgYmluYXJ5IGltYWdlIGhhcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJpZ2h0IFVDQSBhbmQgb3RoZXIgdmVyc2lvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtX1VDQV92ZXJzaW9uXy5lcXVhbHMoVUNBXy5tX1VDQV92ZXJzaW9uXykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICFtX1VDRF92ZXJzaW9uXy5lcXVhbHMoVUNBXy5tX1VDRF92ZXJzaW9uXykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0KG1fcnVsZXNfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbml0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdWUgdG8gcmVzb3VyY2UgcmVkaXJlY3Rpb24gSUNVTGlzdFJlc291cmNlQnVuZGxlIGRvZXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZSBtaXNzaW5nIHJlc291cmNlIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBnZXQgcmVzb3VyY2UgZm9yIGNvbnN0cnVjdGluZyBSdWxlQmFzZWRDb2xsYXRvciIsImNvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50c18iK2xvY2FsZS50b1N0cmluZygpLCAiJSVDb2xsYXRpb25CaW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdChtX3J1bGVzXyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIC8vIGlmIGZhaWxlZCB1c2UgVUNBLgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldFdpdGhVQ0FEYXRhKCk7CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIHRhYmxlcyBpbiBVQ0EuIE5vdGUgb3B0aW9ucyBub3QgdGFrZW4KKyAgICAgKiBjYXJlIG9mIGhlcmUuCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRXaXRoVUNBVGFibGVzKCkKKyAgICB7CisgICAgICAgIG1fY29udHJhY3Rpb25PZmZzZXRfID0gVUNBXy5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgbV9leHBhbnNpb25PZmZzZXRfID0gVUNBXy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAgIG1fZXhwYW5zaW9uXyA9IFVDQV8ubV9leHBhbnNpb25fOworICAgICAgICBtX2NvbnRyYWN0aW9uSW5kZXhfID0gVUNBXy5tX2NvbnRyYWN0aW9uSW5kZXhfOworICAgICAgICBtX2NvbnRyYWN0aW9uQ0VfID0gVUNBXy5tX2NvbnRyYWN0aW9uQ0VfOworICAgICAgICBtX3RyaWVfID0gVUNBXy5tX3RyaWVfOworICAgICAgICBtX2V4cGFuc2lvbkVuZENFXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRV87CisgICAgICAgIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfOworICAgICAgICBtX3Vuc2FmZV8gPSBVQ0FfLm1fdW5zYWZlXzsKKyAgICAgICAgbV9jb250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fY29udHJhY3Rpb25FbmRfOworICAgICAgICBtX21pblVuc2FmZV8gPSBVQ0FfLm1fbWluVW5zYWZlXzsKKyAgICAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fbWluQ29udHJhY3Rpb25FbmRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIGFsbCBvcHRpb25zIGFuZCB0YWJsZXMgaW4gVUNBLgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0V2l0aFVDQURhdGEoKQorICAgIHsKKyAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gdHJ1ZTsKKworICAgICAgICBtX2FkZGl0aW9uM18gPSBVQ0FfLm1fYWRkaXRpb24zXzsKKyAgICAgICAgbV9ib3R0b20zXyA9IFVDQV8ubV9ib3R0b20zXzsKKyAgICAgICAgbV9ib3R0b21Db3VudDNfID0gVUNBXy5tX2JvdHRvbUNvdW50M187CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IFVDQV8ubV9jYXNlRmlyc3RfOworICAgICAgICBtX2Nhc2VTd2l0Y2hfID0gVUNBXy5tX2Nhc2VTd2l0Y2hfOworICAgICAgICBtX2NvbW1vbjNfID0gVUNBXy5tX2NvbW1vbjNfOworICAgICAgICBtX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IFVDQV8ubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgIHNldERlY29tcG9zaXRpb24oVUNBXy5nZXREZWNvbXBvc2l0aW9uKCkpOworICAgICAgICBtX2RlZmF1bHRDYXNlRmlyc3RfID0gVUNBXy5tX2RlZmF1bHRDYXNlRmlyc3RfOworICAgICAgICBtX2RlZmF1bHREZWNvbXBvc2l0aW9uXyA9IFVDQV8ubV9kZWZhdWx0RGVjb21wb3NpdGlvbl87CisgICAgICAgIG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFVDQV8ubV9kZWZhdWx0SXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBtX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSBVQ0FfLm1fZGVmYXVsdElzQ2FzZUxldmVsXzsKKyAgICAgICAgbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fID0gVUNBXy5tX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIG1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IFVDQV8ubV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICBtX2RlZmF1bHRTdHJlbmd0aF8gPSBVQ0FfLm1fZGVmYXVsdFN0cmVuZ3RoXzsKKyAgICAgICAgbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV8gPSBVQ0FfLm1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fID0gVUNBXy5tX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgICAgICBtX2V4cGFuc2lvbk9mZnNldF8gPSBVQ0FfLm1fZXhwYW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBVQ0FfLm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IFVDQV8ubV9pc0Nhc2VMZXZlbF87CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gVUNBXy5tX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBVQ0FfLm1faXNIaXJhZ2FuYTRfOworICAgICAgICBtX2lzSmFtb1NwZWNpYWxfID0gVUNBXy5tX2lzSmFtb1NwZWNpYWxfOworICAgICAgICBtX2lzU2ltcGxlM18gPSBVQ0FfLm1faXNTaW1wbGUzXzsKKyAgICAgICAgbV9tYXNrM18gPSBVQ0FfLm1fbWFzazNfOworICAgICAgICBtX21pbkNvbnRyYWN0aW9uRW5kXyA9IFVDQV8ubV9taW5Db250cmFjdGlvbkVuZF87CisgICAgICAgIG1fbWluVW5zYWZlXyA9IFVDQV8ubV9taW5VbnNhZmVfOworICAgICAgICBtX3J1bGVzXyA9IFVDQV8ubV9ydWxlc187CisgICAgICAgIHNldFN0cmVuZ3RoKFVDQV8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIG1fdG9wM18gPSBVQ0FfLm1fdG9wM187CisgICAgICAgIG1fdG9wQ291bnQzXyA9IFVDQV8ubV90b3BDb3VudDNfOworICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gVUNBXy5tX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBtX2lzTnVtZXJpY0NvbGxhdGlvbl8gPSBVQ0FfLm1faXNOdW1lcmljQ29sbGF0aW9uXzsKKyAgICAgICAgc2V0V2l0aFVDQVRhYmxlcygpOworICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHdoZXRoZXIgYSBjaGFyIGNoYXJhY3RlciBpcyBwb3RlbnRpYWxseSAidW5zYWZlIiBmb3IgdXNlIGFzIGEKKyAgICAgKiBjb2xsYXRpb24gc3RhcnRpbmcgcG9pbnQuICJVbnNhZmUiIGNoYXJhY3RlcnMgYXJlIGNvbWJpbmluZyBtYXJrcyBvcgorICAgICAqIHRob3NlIGJlbG9uZ2luZyB0byBzb21lIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGZyb20gdGhlIG9mZnNldCAxIG9ud2FyZHMuCisgICAgICogRS5nLiBpZiAiQUJDIiBpcyB0aGUgb25seSBjb250cmFjdGlvbiwgdGhlbiAnQicgYW5kCisgICAgICogJ0MnIGFyZSBjb25zaWRlcmVkIHVuc2FmZS4gSWYgd2UgaGF2ZSBhbm90aGVyIGNvbnRyYWN0aW9uICJaQSIgd2l0aAorICAgICAqIHRoZSBvbmUgYWJvdmUsIHRoZW4gJ0EnLCAnQicsICdDJyBhcmUgInVuc2FmZSIgYnV0ICdaJyBpcyBub3QuCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBkZXRlcm1pbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyB1bnNhZmUsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIGZpbmFsIGJvb2xlYW4gaXNVbnNhZmUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IG1fbWluVW5zYWZlXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPj0gKEhFVVJJU1RJQ19TSVpFXyA8PCBIRVVSSVNUSUNfU0hJRlRfKSkgeworICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkgCisgICAgICAgICAgICAgICAgfHwgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAvLyAgVHJhaWwgc3Vycm9nYXRlIGFyZSBhbHdheXMgY29uc2lkZXJlZCB1bnNhZmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCAmPSBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS187CisgICAgICAgICAgICBjaCArPSBIRVVSSVNUSUNfT1ZFUkZMT1dfT0ZGU0VUXzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdmFsdWUgPSBtX3Vuc2FmZV9bY2ggPj4gSEVVUklTVElDX1NISUZUX107CisgICAgICAgIHJldHVybiAoKHZhbHVlID4+IChjaCAmIEhFVVJJU1RJQ19NQVNLXykpICYgMSkgIT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHByb3hpbWF0ZSBkZXRlcm1pbmF0aW9uIGlmIGEgY2hhciBjaGFyYWN0ZXIgaXMgYXQgYSBjb250cmFjdGlvbiBlbmQuCisgICAgICogR3VhcmFudGVlZCB0byBiZSB0cnVlIGlmIGEgY2hhcmFjdGVyIGlzIGF0IHRoZSBlbmQgb2YgYSBjb250cmFjdGlvbiwKKyAgICAgKiBvdGhlcndpc2UgaXQgaXMgbm90IGRldGVybWluaXN0aWMuCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBiZSBkZXRlcm1pbmVkCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uRW5kKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgbV9taW5Db250cmFjdGlvbkVuZF8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaCA+PSAoSEVVUklTVElDX1NJWkVfIDw8IEhFVVJJU1RJQ19TSElGVF8pKSB7CisgICAgICAgICAgICBjaCAmPSBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS187CisgICAgICAgICAgICBjaCArPSBIRVVSSVNUSUNfT1ZFUkZMT1dfT0ZGU0VUXzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdmFsdWUgPSBtX2NvbnRyYWN0aW9uRW5kX1tjaCA+PiBIRVVSSVNUSUNfU0hJRlRfXTsKKyAgICAgICAgcmV0dXJuICgodmFsdWUgPj4gKGNoICYgSEVVUklTVElDX01BU0tfKSkgJiAxKSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSB0YWcgb2YgYSBzcGVjaWFsIGNlCisgICAgICogQHBhcmFtIGNlIGNlIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRhZyBvZiBjZQorICAgICAqLworICAgIHN0YXRpYyBpbnQgZ2V0VGFnKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBDRV9UQUdfTUFTS18pID4+IENFX1RBR19TSElGVF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tpbmcgaWYgY2UgaXMgc3BlY2lhbAorICAgICAqIEBwYXJhbSBjZSB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjZSBpcyBzcGVjaWFsCisgICAgICovCisgICAgc3RhdGljIGJvb2xlYW4gaXNTcGVjaWFsKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBDRV9TUEVDSUFMX0ZMQUdfKSA9PSBDRV9TUEVDSUFMX0ZMQUdfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaXMgYSBjb250aW51YXRpb24KKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjZSBpcyBhIGNvbnRpbnVhdGlvbgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQ29udGludWF0aW9uKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSCisgICAgICAgICAgICAgICAgICAgICAgICYmIChjZSAmIENFX0NPTlRJTlVBVElPTl9UQUdfKSA9PSBDRV9DT05USU5VQVRJT05fVEFHXzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHNtYWxsZXN0IG5hdHVyYWwgdW5zYWZlIG9yIGNvbnRyYWN0aW9uIGVuZCBjaGFyIGNoYXJhY3RlciBiZWZvcmUKKyAgICAgKiB0YWlsb3JpbmcuCisgICAgICogVGhpcyBpcyBhIGNvbWJpbmluZyBtYXJrLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX01JTl9IRVVSSVNUSUNfID0gMHgzMDA7CisgICAgLyoqCisgICAgICogSGV1cmlzdGljIHRhYmxlIHRhYmxlIHNpemUuIFNpemUgaXMgMzIgYnl0ZXMsIDEgYml0IGZvciBlYWNoCisgICAgICogbGF0aW4gMSBjaGFyLCBhbmQgc29tZSBwb3dlciBvZiB0d28gZm9yIGhhc2hpbmcgdGhlIHJlc3Qgb2YgdGhlIGNoYXJzLgorICAgICAqIFNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfU0laRV8gPSAxMDU2OworICAgIC8qKgorICAgICAqIE1hc2sgdmFsdWUgZG93biB0byAic29tZSBwb3dlciBvZiB0d28iIC0gMSwKKyAgICAgKiBudW1iZXIgb2YgYml0cywgbm90IG51bSBvZiBieXRlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19PVkVSRkxPV19NQVNLXyA9IDB4MWZmZjsKKyAgICAvKioKKyAgICAgKiBVbnNhZmUgY2hhcmFjdGVyIHNoaWZ0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFVVJJU1RJQ19TSElGVF8gPSAzOworICAgIC8qKgorICAgICAqIFVuc2FmZSBjaGFyYWN0ZXIgYWRkaXRpb24gZm9yIGNoYXJhY3RlciB0b28gbGFyZ2UsIGl0IGhhcyB0byBiZSBmb2xkZWQKKyAgICAgKiB0aGVuIGluY3JlbWVudGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSEVVUklTVElDX09WRVJGTE9XX09GRlNFVF8gPSAyNTY7CisgICAgLyoqCisgICAgICogTWFzayB2YWx1ZSB0byBnZXQgb2Zmc2V0IGluIGhldXJpc3RpYyB0YWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19NQVNLXyA9IDc7CisKKyAgICBwcml2YXRlIGludCBtX2Nhc2VTd2l0Y2hfOworICAgIHByaXZhdGUgaW50IG1fY29tbW9uM187CisgICAgcHJpdmF0ZSBpbnQgbV9tYXNrM187CisgICAgLyoqCisgICAgICogV2hlbiBzd2l0Y2hpbmcgY2FzZSwgd2UgbmVlZCB0byBhZGQgb3Igc3VidHJhY3QgZGlmZmVyZW50IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uM187CisgICAgLyoqCisgICAgICogVXBwZXIgcmFuZ2Ugd2hlbiBjb21wcmVzc2luZworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9wM187CisgICAgLyoqCisgICAgICogVXBwZXIgcmFuZ2Ugd2hlbiBjb21wcmVzc2luZworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fYm90dG9tM187CisgICAgcHJpdmF0ZSBpbnQgbV90b3BDb3VudDNfOworICAgIHByaXZhdGUgaW50IG1fYm90dG9tQ291bnQzXzsKKyAgICAvKioKKyAgICAgKiBDYXNlIGZpcnN0IGNvbnN0YW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVNFX1NXSVRDSF8gPSAweEMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19DQVNFX1NXSVRDSF8gPSAwOworICAgIC8qKgorICAgICAqIENhc2UgbGV2ZWwgY29uc3RhbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DQVNFXyA9IDB4M0Y7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0tFRVBfQ0FTRV8gPSAweEZGOworICAgIC8qKgorICAgICAqIENhc2Ugc3RyZW5ndGggbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DQVNFX01BU0tfM18gPSAweEZGOworICAgIC8qKgorICAgICAqIFNvcnRrZXkgc2l6ZSBmYWN0b3IuIFZhbHVlcyBjYW4gYmUgY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgUFJPUE9SVElPTl8yXyA9IDAuNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgUFJPUE9SVElPTl8zXyA9IDAuNjY3OworCisgICAgLy8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUgVUNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYW4gZW51bSB0aGF0IGxpc3RzIG1hZ2ljIHNwZWNpYWwgYnl0ZSB2YWx1ZXMgZnJvbSB0aGUKKyAgICAgKiBmcmFjdGlvbmFsIFVDQQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9aRVJPXyA9IDB4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfTEVWRUxfU0VQQVJBVE9SXyA9IChieXRlKTB4MDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1NPUlRLRVlfR0xVRV8gPSAoYnl0ZSkweDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9TSElGVF9QUkVGSVhfID0gKGJ5dGUpMHgwMzsKKyAgICAvKnByaXZhdGUqLyBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1VOU0hJRlRFRF9NSU5fID0gQllURV9TSElGVF9QUkVGSVhfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9GSVJTVF9VQ0FfID0gQllURV9DT01NT05fOworICAgIHN0YXRpYyBmaW5hbCBieXRlIENPREFOX1BMQUNFSE9MREVSID0gMHgyNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfTEFTVF9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0ZJUlNUX05PTl9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1VOU0hJRlRFRF9NQVhfID0gKGJ5dGUpMHhGRjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxfMl8gPSBDT01NT05fVE9QXzJfIC0gQ09NTU9OX0JPVFRPTV8yXyAtIDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT0ZGXyA9IDB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT05fID0gMHg0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9PRkZfM18gPSAweDg1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fVE9QX0NBU0VfU1dJVENIX0xPV0VSXzNfID0gMHg0NTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9VUFBFUl8zXyA9IDB4QzU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9CT1RUT01fM18gPSAweDA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NX0NBU0VfU1dJVENIX1VQUEVSXzNfID0gMHg4NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9MT1dFUl8zXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTU1PTl9CT1RUT01fM187CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPUF9DT1VOVF8yXyA9IChpbnQpKFBST1BPUlRJT05fMl8gKiBUT1RBTF8yXyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJPVFRPTV9DT1VOVF8yXyA9IFRPVEFMXzJfIC0gVE9QX0NPVU5UXzJfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fMl8gPSBDT01NT05fQk9UVE9NXzJfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fVVBQRVJfRklSU1RfM18gPSAweEM1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fTk9STUFMXzNfID0gQ09NTU9OX0JPVFRPTV8zXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OXzRfID0gKGJ5dGUpMHhGRjsKKworCisKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIHNpemUgcmVxdWlyZWQgZm9yIHRoZSBiaW5hcnkgY29sbGF0aW9uIGRhdGEgaW4gYnl0ZXMuCisgICAgICogU2l6ZSBvZiBVQ0EgaGVhZGVyICsgc2l6ZSBvZiBvcHRpb25zIHRvIDQgYnl0ZXMKKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5fQklOQVJZX0RBVEFfU0laRV8gPSAoNDIgKyAyNSkgPDwgMjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgY29sbGF0b3IgaXMgdG8gZ2VuZXJhdGUgb25seSBzaW1wbGUgdGVydGlhcmllcyBmb3IgZmFzdCBwYXRoCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNTaW1wbGUzXzsKKworICAgIC8qKgorICAgICAqIEZyZW5jaCBjb2xsYXRpb24gc29ydGluZyBmbGFnCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNGcmVuY2hDb2xsYXRpb25fOworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyBpZiBzaGlmdGVkIGlzIHJlcXVlc3RlZCBmb3IgUXVhdGVybmFyeSBhbHRlcm5hdGUKKyAgICAgKiBoYW5kbGluZy4gSWYgdGhpcyBpcyBub3QgdHJ1ZSwgdGhlIGRlZmF1bHQgZm9yIGFsdGVybmF0ZSBoYW5kbGluZyB3aWxsCisgICAgICogYmUgbm9uLWlnbm9yYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgLyoqCisgICAgICogRXh0cmEgY2FzZSBsZXZlbCBmb3Igc29ydGluZworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzQ2FzZUxldmVsXzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfID0gMTI4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfMV8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8gPDwgMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzJfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzNfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFX0NBU0VfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8gPj4gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzRfID0gU09SVF9CVUZGRVJfSU5JVF9TSVpFXzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DT05USU5VQVRJT05fVEFHXyA9IDB4QzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS18gPSAweEZGRkZGRjNGOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfUkVTRVRfVE9QX1ZBTFVFXyA9IDB4OUYwMDAzMDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05FWFRfVE9QX1ZBTFVFXyA9IDB4RTg5NjAzMDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFNPUlRfQ0FTRV9CWVRFX1NUQVJUXyA9IChieXRlKTB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0NBU0VfU0hJRlRfU1RBUlRfID0gKGJ5dGUpNzsKKworICAgIC8qKgorICAgICAqIENFIGJ1ZmZlciBzaXplCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0JVRkZFUl9TSVpFXyA9IDUxMjsKKworICAgIC8vIHZhcmlhYmxlcyBmb3IgTGF0aW4tMSBwcm9jZXNzaW5nCisgICAgYm9vbGVhbiBsYXRpbk9uZVVzZV8gICAgICAgID0gZmFsc2U7CisgICAgYm9vbGVhbiBsYXRpbk9uZVJlZ2VuVGFibGVfID0gZmFsc2U7CisgICAgYm9vbGVhbiBsYXRpbk9uZUZhaWxlZF8gICAgID0gZmFsc2U7CisKKyAgICBpbnQgbGF0aW5PbmVUYWJsZUxlbl8gPSAwOworICAgIGludCBsYXRpbk9uZUNFc19bXSA9IG51bGw7CisgICAgLyoqCisgICAgICogQnVuY2ggb2YgdXRpbGl0eSBpdGVyYXRvcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvciBtX3NyY1V0aWxJdGVyXzsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3NyY1V0aWxDb2xFSXRlcl87CisgICAgcHJpdmF0ZSBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IgbV90Z3RVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV90Z3RVdGlsQ29sRUl0ZXJfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgY29tcGFyaXNvbiBmbGFncworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlMF87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmUxXzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTJfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlM187CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmU0XzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTVfOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgYnl0ZSBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMwX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczFfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzMl9bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMzX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczRfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzNV9bXTsKKyAgICBwcml2YXRlIFJhd0NvbGxhdGlvbktleSBtX3V0aWxSYXdDb2xsYXRpb25LZXlfOworCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDBfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQxXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50Ml87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDNfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQ0XzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50NV87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQwXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDFfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50Ml87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQzXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDRfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50NV87CisKKyAgICBwcml2YXRlIGludCBtX3V0aWxGcmVuY2hTdGFydF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsRnJlbmNoRW5kXzsKKworICAgIC8qKgorICAgICAqIFByZXBhcmluZyB0aGUgQ0UgYnVmZmVycy4gd2lsbCBiZSBmaWxsZWQgZHVyaW5nIHRoZSBwcmltYXJ5IHBoYXNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ0VCdWZmZXJfW107CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ0VCdWZmZXJfW107CisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICBwcml2YXRlIGludCBtX3RndFV0aWxDRUJ1ZmZlclNpemVfOworCisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ29udE9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ29udE9mZnNldF87CisKKyAgICBwcml2YXRlIGludCBtX3NyY1V0aWxPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fdGd0VXRpbE9mZnNldF87CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBzZXRXaXRoVUNBRGF0YSgpOworICAgICAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlciBidWlsZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcihydWxlcyk7CisgICAgICAgIGJ1aWxkZXIuc2V0UnVsZXModGhpcyk7CisgICAgICAgIG1fcnVsZXNfID0gcnVsZXM7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgaW5pdFV0aWxpdHkoZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGludCBjb21wYXJlUmVndWxhcihTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGlmIChtX3NyY1V0aWxJdGVyXyA9PSBudWxsKSB7CisgICAgICAgICAgICBpbml0VXRpbGl0eSh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworICAgICAgICAvLyBzZXR0aW5nIHVwIHRoZSBjb2xsYXRvciBwYXJhbWV0ZXJzCisgICAgICAgIG1fdXRpbENvbXBhcmUwXyA9IG1faXNDYXNlTGV2ZWxfOworICAgICAgICBtX3V0aWxDb21wYXJlMV8gPSB0cnVlOworICAgICAgICBtX3V0aWxDb21wYXJlMl8gPSBzdHJlbmd0aCA+PSBTRUNPTkRBUlk7CisgICAgICAgIG1fdXRpbENvbXBhcmUzXyA9IHN0cmVuZ3RoID49IFRFUlRJQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlNF8gPSBzdHJlbmd0aCA+PSBRVUFURVJOQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlNV8gPSBzdHJlbmd0aCA9PSBJREVOVElDQUw7CisgICAgICAgIGJvb2xlYW4gZG9GcmVuY2ggPSBtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiBtX3V0aWxDb21wYXJlMl87CisgICAgICAgIGJvb2xlYW4gZG9TaGlmdDQgPSBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAmJiBtX3V0aWxDb21wYXJlNF87CisgICAgICAgIGJvb2xlYW4gZG9IaXJhZ2FuYTQgPSBtX2lzSGlyYWdhbmE0XyAmJiBtX3V0aWxDb21wYXJlNF87CisKKyAgICAgICAgaWYgKGRvSGlyYWdhbmE0ICYmIGRvU2hpZnQ0KSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlc3ViID0gc291cmNlLnN1YnN0cmluZyhvZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldHN1YiA9IHRhcmdldC5zdWJzdHJpbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQnlTb3J0S2V5cyhzb3VyY2VzdWIsIHRhcmdldHN1Yik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBsb3dlc3QgcHJpbWFyeSB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIGlnbm9yZWQgaWYgc2hpZnRlZAorICAgICAgICBpbnQgbG93ZXN0cHZhbHVlID0gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX3ZhcmlhYmxlVG9wVmFsdWVfIDw8IDE2IDogMDsKKyAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gZG9QcmltYXJ5Q29tcGFyZShkb0hpcmFnYW5hNCwgbG93ZXN0cHZhbHVlLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwgb2Zmc2V0KTsKKyAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gPT0gLTEKKyAgICAgICAgICAgICYmIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPT0gLTEpIHsKKyAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBjZWJ1ZmZlciBpcyBjbGVhcmVkIHdoZW4gd2UgaGF2ZSBkZXRlcm1pbmVkIHRoYXQKKyAgICAgICAgICAgIC8vIGVpdGhlciBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCBvciB2aWNlIHZlcnNhLCB0aGUgcmV0dXJuCisgICAgICAgICAgICAvLyByZXN1bHQgaXMgdGhlIGNvbXBhcmlzb24gcmVzdWx0IGFuZCBub3QgdGhlIGhpcmFnYW5hIHJlc3VsdAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoaXJhZ2FuYXJlc3VsdCA9IHJlc3VsdDsKKworICAgICAgICBpZiAobV91dGlsQ29tcGFyZTJfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkb1NlY29uZGFyeUNvbXBhcmUoZG9GcmVuY2gpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBkb2luZyB0aGUgY2FzZSBiaXQKKyAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUwXykgeworICAgICAgICAgICAgcmVzdWx0ID0gZG9DYXNlQ29tcGFyZSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBUZXJ0aWFyeSBsZXZlbAorICAgICAgICBpZiAobV91dGlsQ29tcGFyZTNfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBkb1RlcnRpYXJ5Q29tcGFyZSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChkb1NoaWZ0NCkgeyAgLy8gY2hlY2tRdWFkCisgICAgICAgICAgICByZXN1bHQgPSBkb1F1YXRlcm5hcnlDb21wYXJlKGxvd2VzdHB2YWx1ZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRvSGlyYWdhbmE0ICYmIGhpcmFnYW5hcmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGZpbmUgb24gcXVhdGVybmFyaWVzLCB3ZSBtaWdodCBiZSBkaWZmZXJlbnQKKyAgICAgICAgICAgIC8vIG9uIEhpcmFnYW5hLiBUaGlzLCBob3dldmVyLCBtaWdodCBmYWlsIHVzIGluIHNoaWZ0ZWQuCisgICAgICAgICAgICByZXR1cm4gaGlyYWdhbmFyZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBGb3IgSURFTlRJQ0FMIGNvbXBhcmlzb25zLCB3ZSB1c2UgYSBiaXR3aXNlIGNoYXJhY3RlciBjb21wYXJpc29uCisgICAgICAgIC8vIGFzIGEgdGllYnJlYWtlciBpZiBhbGwgZWxzZSBpcyBlcXVhbC4KKyAgICAgICAgLy8gR2V0dGluZyBoZXJlICBzaG91bGQgYmUgcXVpdGUgcmFyZSAtIHN0cmluZ3MgYXJlIG5vdCBpZGVudGljYWwgLQorICAgICAgICAvLyB0aGF0IGlzIGNoZWNrZWQgZmlyc3QsIGJ1dCBjb21wYXJlZCA9PSB0aHJvdWdoIGFsbCBvdGhlciBjaGVja3MuCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNV8pIHsKKyAgICAgICAgICAgIHJldHVybiBkb0lkZW50aWNhbENvbXBhcmUoc291cmNlLCB0YXJnZXQsIG9mZnNldCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgMiBieXRlcyBvZiBwcmltYXJ5IG9yZGVyIGFuZCBhZGRzIGl0IHRvIHRoZSBwcmltYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvCisgICAgICogICAgICAgICAgYSBjb250aW51YXRpb24gY2UKKyAgICAgKiBAcGFyYW0gZG9TaGlmdCBmbGFnIGluZGljYXRpbmcgaWYgY2UgaXMgdG8gYmUgc2hpZnRlZAorICAgICAqIEBwYXJhbSBsZWFkUHJpbWFyeSBsZWFkIHByaW1hcnkgdXNlZCBmb3IgY29tcHJlc3Npb24KKyAgICAgKiBAcGFyYW0gY29tbW9uQm90dG9tNCBjb21tb24gYnl0ZSB2YWx1ZSBmb3IgUXVhdGVybmFyeQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgYnl0ZSB2YWx1ZSBmb3IgUXVhdGVybmFyeQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBsZWFkIHByaW1hcnkgZm9yIGNvbXByZXNzaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9QcmltYXJ5Qnl0ZXMoaW50IGNlLCBib29sZWFuIG5vdElzQ29udGludWF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9TaGlmdCwgaW50IGxlYWRQcmltYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0KQorICAgIHsKKworICAgICAgICBpbnQgcDIgPSAoY2UgPj49IDE2KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW4gaW50cyBmb3IgdW5zaWduZWQKKyAgICAgICAgaW50IHAxID0gY2UgPj4+IDg7ICAvLyBjb21wYXJpc29uCisgICAgICAgIGlmIChkb1NoaWZ0KSB7CisgICAgICAgICAgICBpZiAobV91dGlsQ291bnQ0XyA+IDApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQgKyBib3R0b21Db3VudDQpKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfIC09IGJvdHRvbUNvdW50NDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGRlYWxpbmcgd2l0aCBhIHZhcmlhYmxlIGFuZCB3ZSdyZSB0cmVhdGluZyB0aGVtIGFzIHNoaWZ0ZWQKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzaGlmdGVkIGlnbm9yYWJsZQorICAgICAgICAgICAgaWYgKHAxICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNoZWNrIHRoaXMgc2luY2Ugd2UgY291bGQgYmUgaW4gY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHAyICE9IDApIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBOb3RlOiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSB0YWJsZSBpcyB3ZWxsIGJ1aWx0CisgICAgICAgICAgICAvLyBpLmUuIG5vdCBoYXZpbmcgMCBieXRlcyB3aGVyZSB0aGV5IGFyZSBub3Qgc3VwcG9zZWQgdG8gYmUuCisgICAgICAgICAgICAvLyBVc3VhbGx5LCB3ZSdsbCBoYXZlIG5vbi16ZXJvIHByaW1hcnkxICYgcHJpbWFyeTIsIGV4Y2VwdAorICAgICAgICAgICAgLy8gaW4gY2FzZXMgb2YgTGF0aW5PbmUgYW5kIGZyaWVuZHMsIHdoZW4gcHJpbWFyeTIgd2lsbCBiZQorICAgICAgICAgICAgLy8gcmVndWxhciBhbmQgc2ltcGxlIHNvcnRrZXkgY2FsYworICAgICAgICAgICAgaWYgKHAxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWRQcmltYXJ5ID09IHAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWRQcmltYXJ5ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHAxID4gbGVhZFByaW1hcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQllURV9VTlNISUZURURfTUFYXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEJZVEVfVU5TSElGVEVEX01JTl8pKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgYnl0ZXIsIG5vdCBjb21wcmVzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkUHJpbWFyeSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwMSA8IEJZVEVfRklSU1RfTk9OX0xBVElOX1BSSU1BUllfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocDEgPiBtYXhSZWd1bGFyUHJpbWFyeQorICAgICAgICAgICAgICAgICAgICAvLz4gKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFX1swXQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHAxIDwgbWluSW1wbGljaXRQcmltYXJ5CisgICAgICAgICAgICAgICAgICAgIC8vPCAoUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfWzBdCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+PiAyNCkKKyAgICAgICAgICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgY29tcHJlc3NpYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBjb21wcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gcDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWF0aW9uLCBhZGQgcHJpbWFyeSB0byB0aGUga2V5LCBubyBjb21wcmVzc2lvbgorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAyICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlYWRQcmltYXJ5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNlY29uZGFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBzZWNvbmRhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRvciBpZiBmcmVuY2ggc29ydCBpcyB0byBiZSBwZXJmb3JtZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9TZWNvbmRhcnlCeXRlcyhpbnQgY2UsIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb0ZyZW5jaCkKKyAgICB7CisgICAgICAgIGludCBzID0gKGNlID4+PSA4KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW50IGZvciBjb21wYXJpc29uCisgICAgICAgIGlmIChzICE9IDApIHsKKyAgICAgICAgICAgIGlmICghZG9GcmVuY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbXByZXNzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfICYmIG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPiBDT01NT05fMl8pIHsgLy8gbm90IG5lY2Vzc2FyeSBmb3IgNHRoIGxldmVsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gVE9QX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8gLSBUT1BfQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXMpOworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIHNwZWNpYWwgaGFuZGxpbmcgZm9yIEZyZW5jaCBzZWNvbmRhcmllcworICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnZXQgY29udGludWF0aW9uIGVsZW1lbnRzIGFuZCBkbyBpbnRlcm1lZGlhdGUKKyAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUKKyAgICAgICAgICAgICAgICAgIC8vIGFiYzFjMmMzZGUgd2l0aCBmcmVuY2ggc2Vjb25kYXJpZXMgbmVlZCB0byBiZSBlZGMxYzJjM2JhCisgICAgICAgICAgICAgICAgICAvLyBOT1QgZWRjM2MyYzFiYQorICAgICAgICAgICAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV2ZXJzZSBzZWNvbmRhcmllcyBmcm9tIGZyZW5jaFN0YXJ0UHRyIHVwIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJlbmNoRW5kUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZUJ1ZmZlcihtX3V0aWxCeXRlczJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxGcmVuY2hTdGFydF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbEZyZW5jaFN0YXJ0XyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEZyZW5jaFN0YXJ0XyAgPSBtX3V0aWxCeXRlc0NvdW50Ml8gLSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRnJlbmNoRW5kXyA9IG1fdXRpbEJ5dGVzQ291bnQyXyAtIDE7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXZlcnNlIHRoZSBhcmd1bWVudCBidWZmZXIKKyAgICAgKiBAcGFyYW0gYnVmZmVyIHRvIHJldmVyc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmV2ZXJzZUJ1ZmZlcihieXRlIGJ1ZmZlcltdKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV91dGlsRnJlbmNoU3RhcnRfOworICAgICAgICBpbnQgZW5kID0gbV91dGlsRnJlbmNoRW5kXzsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7CisgICAgICAgICAgICBieXRlIGIgPSBidWZmZXJbc3RhcnRdOworICAgICAgICAgICAgYnVmZmVyW3N0YXJ0ICsrXSA9IGJ1ZmZlcltlbmRdOworICAgICAgICAgICAgYnVmZmVyW2VuZCAtLV0gPSBiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBjYXNlIHNoaWZ0aW5nIGJ5dGUgaWYgcmVxdWlyZWQKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0IHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY2FzZXNoaWZ0IHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9DYXNlU2hpZnQoaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGlmIChjYXNlc2hpZnQgID09IDApIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBhcHBlbmQobV91dGlsQnl0ZXMwXywgbV91dGlsQnl0ZXNDb3VudDBfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0NBU0VfQllURV9TVEFSVF8pOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfICsrOworICAgICAgICAgICAgY2FzZXNoaWZ0ID0gU09SVF9DQVNFX1NISUZUX1NUQVJUXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FzZXNoaWZ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIHRoZSBjYXNpbmcgc29ydAorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludHMgZm9yIGVhc3kgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvCisgICAgICogICAgICAgICAgYSBjb250aW51YXRpb24gY2UKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0CisgICAgICogQHJldHVybiB0aGUgbmV3IHZhbHVlIG9mIGNhc2Ugc2hpZnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb0Nhc2VCeXRlcyhpbnQgdGVydGlhcnksIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCk7CisKKyAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uICYmIHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIGJ5dGUgY2FzZWJpdHMgPSAoYnl0ZSkodGVydGlhcnkgJiAweEMwKTsKKyAgICAgICAgICAgIGlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhc2ViaXRzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKDEgPDwgKC0tIGNhc2VzaGlmdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBiaXQKKyAgICAgICAgICAgICAgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCAtIDEpOworICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA2KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYXNlYml0cyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF9bbV91dGlsQnl0ZXNDb3VudDBfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gMSA8PCAoLS0gY2FzZXNoaWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kIGJpdAorICAgICAgICAgICAgICAgICAgICBjYXNlc2hpZnQgPSBkb0Nhc2VTaGlmdChjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczBfW21fdXRpbEJ5dGVzQ291bnQwXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA3KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZXNoaWZ0IC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjYXNlc2hpZnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGVydGlhcnkgYnl0ZSBhbmQgYWRkcyBpdCB0byB0aGUgdGVydGlhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludCBmb3IgZWFzeSBjb21wYXJpc29uCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5Qnl0ZXMoaW50IHRlcnRpYXJ5LCBib29sZWFuIG5vdElzQ29udGludWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgY29tcHJlc3Npb24gY29kZS4KKyAgICAgICAgICAgIC8vIHNlcXVlbmNlIHNpemUgY2hlY2sgaXMgaW5jbHVkZWQgaW4gdGhlIGlmIGNsYXVzZQorICAgICAgICAgICAgaWYgKHRlcnRpYXJ5ID09IG1fY29tbW9uM18gJiYgbm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBjb21tb24zID0gbV9jb21tb24zXyAmIExBU1RfQllURV9NQVNLXzsKKyAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zICYmIG1fY29tbW9uM18gPT0gQ09NTU9OX05PUk1BTF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSArPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlcnRpYXJ5IDw9IGNvbW1vbjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbW1vbjNfID09IENPTU1PTl9VUFBFUl9GSVJTVF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSAtPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQzXyA+IG1fdG9wQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18gLSBtX3RvcENvdW50M18pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyAtPSBtX3RvcENvdW50M187CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKG1fdXRpbENvdW50M18gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50M18gPiBtX2JvdHRvbUNvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfICsgbV9ib3R0b21Db3VudDNfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV9ib3R0b21Db3VudDNfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDNfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDNfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLCBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSl0ZXJ0aWFyeSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgUXVhdGVybmFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBRdWF0ZXJuYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaXNDb2RlUG9pbnRIaXJhZ2FuYSBmbGFnIGluZGljYXRvciBpZiB0aGUgcHJldmlvdXMgY29kZXBvaW50CisgICAgICogICAgICAgICAgd2UgZGVhbHQgd2l0aCB3YXMgSGlyYWdhbmEKKyAgICAgKiBAcGFyYW0gY29tbW9uQm90dG9tNCBzbWFsbGVzdCBjb21tb24gUXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGJvdHRvbUNvdW50NCBzbWFsbGVzdCBRdWF0ZXJuYXJ5IGJ5dGUKKyAgICAgKiBAcGFyYW0gaGlyYWdhbmE0IGhpcmFnYW5hIFF1YXRlcm5hcnkgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1F1YXRlcm5hcnlCeXRlcyhib29sZWFuIGlzQ29kZVBvaW50SGlyYWdhbmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGhpcmFnYW5hNCkKKyAgICB7CisgICAgICAgIGlmIChpc0NvZGVQb2ludEhpcmFnYW5hKSB7IC8vIFRoaXMgd2FzIEhpcmFnYW5hLCBuZWVkIHRvIG5vdGUgaXQKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDRfID4gMCkgeyAvLyBDbG9zZSB0aGlzIHBhcnQKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJvdHRvbUNvdW50NCkpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50NF8gLT0gYm90dG9tQ291bnQ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXJhZ2FuYTQpOyAvLyBBZGQgdGhlIEhpcmFnYW5hCisgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIFRoaXMgd2Fzbid0IEhpcmFnYW5hLCBzbyB3ZSBjYW4gY29udGludWUgYWRkaW5nIHN0dWZmCisgICAgICAgICAgICBtX3V0aWxDb3VudDRfICsrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgYXJndW1lbnQgc3RyaW5nIGZvciBhbGwgY2VzLgorICAgICAqIFNwbGl0IHRoZSBjZXMgaW50byB0aGVpciByZWxldmFudCBwcmltYXJpZXMsIHNlY29uZGFyaWVzIGV0Yy4KKyAgICAgKiBAcGFyYW0gc291cmNlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdG9yIGlmIHNwZWNpYWwgaGFuZGxpbmcgb2YgRnJlbmNoIGhhcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAqIEBwYXJhbSBoaXJhZ2FuYTQgb2Zmc2V0IGZvciBIaXJhZ2FuYSBxdWF0ZXJuYXJ5CisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGdldFNvcnRLZXlCeXRlcyhTdHJpbmcgc291cmNlLCBib29sZWFuIGRvRnJlbmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBoaXJhZ2FuYTQsIGludCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvdHRvbUNvdW50NCkKKworICAgIHsKKyAgICAgICAgaWYgKG1fc3JjVXRpbEl0ZXJfID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRVdGlsaXR5KHRydWUpOworICAgICAgICB9CisgICAgICAgIGludCBiYWNrdXBEZWNvbXBvc2l0aW9uID0gZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOyAvLyBoYXZlIHRvIHJldmVydCB0byBiYWNrdXAgbGF0ZXIKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UpOworICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3NyY1V0aWxJdGVyXyk7CisgICAgICAgIG1fdXRpbEZyZW5jaFN0YXJ0XyA9IC0xOworICAgICAgICBtX3V0aWxGcmVuY2hFbmRfID0gLTE7CisKKyAgICAgICAgLy8gc2NyaXB0b3JkZXIgbm90IGltcGxlbWVudGVkIHlldAorICAgICAgICAvLyBjb25zdCB1aW50OF90ICpzY3JpcHRPcmRlciA9IGNvbGwtPnNjcmlwdE9yZGVyOworCisgICAgICAgIGJvb2xlYW4gZG9TaGlmdCA9IGZhbHNlOworICAgICAgICBib29sZWFuIG5vdElzQ29udGludWF0aW9uID0gZmFsc2U7CisKKyAgICAgICAgaW50IGxlYWRQcmltYXJ5ID0gMDsgLy8gaW50IGZvciBlYXNpZXIgY29tcGFyaXNvbgorICAgICAgICBpbnQgY2FzZVNoaWZ0ID0gMDsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGNlID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5vdElzQ29udGludWF0aW9uID0gIWlzQ29udGludWF0aW9uKGNlKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGlmIChub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0T3JkZXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeTEgPSBzY3JpcHRPcmRlcltwcmltYXJ5MV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgIGJvb2xlYW4gaXNQcmltYXJ5Qnl0ZUlnbm9yYWJsZSA9IChjZSAmIENFX1BSSU1BUllfTUFTS18pID09IDA7CisgICAgICAgICAgICAvLyBhY3R1YWxseSB3ZSBjYW4ganVzdCBjaGVjayB0aGF0IHRoZSBmaXJzdCBieXRlIGlzIDAKKyAgICAgICAgICAgIC8vIGdlbmVyYXRpb24gc3R1ZmZzIHRoZSBvcmRlciBsZWZ0IGZpcnN0CisgICAgICAgICAgICBib29sZWFuIGlzU21hbGxlclRoYW5WYXJpYWJsZVRvcCA9IChjZSA+Pj4gQ0VfUFJJTUFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9IG1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgICAgICBkb1NoaWZ0ID0gKG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKG5vdElzQ29udGludWF0aW9uICYmIGlzU21hbGxlclRoYW5WYXJpYWJsZVRvcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSAvLyBwcmltYXJ5IGJ5dGUgbm90IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8ICghbm90SXNDb250aW51YXRpb24gJiYgZG9TaGlmdCkpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAoZG9TaGlmdCAmJiBpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSk7CisgICAgICAgICAgICBpZiAoZG9TaGlmdCAmJiBpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSB7CisgICAgICAgICAgICAgICAgLy8gYW1lbmRtZW50IHRvIHRoZSBVQ0Egc2F5cyB0aGF0IHByaW1hcnkgaWdub3JhYmxlcyBhbmQgb3RoZXIKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmFibGVzIHNob3VsZCBiZSByZW1vdmVkIGlmIGZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZQorICAgICAgICAgICAgICAgIC8vIHBvaW50CisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugd2VyZSBzaGlmdGVkIGFuZCB3ZSBnb3QgYW4gaWdub3JhYmxlIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBjb21wbGV0ZWx5IGlnbm9yZSBpdAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVhZFByaW1hcnkgPSBkb1ByaW1hcnlCeXRlcyhjZSwgbm90SXNDb250aW51YXRpb24sIGRvU2hpZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5LCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21Db3VudDQpOworICAgICAgICAgICAgaWYgKGRvU2hpZnQpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgICAgICAgICBkb1NlY29uZGFyeUJ5dGVzKGNlLCBub3RJc0NvbnRpbnVhdGlvbiwgZG9GcmVuY2gpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgdCA9IGNlICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgaWYgKCFub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgIHQgPSBjZSAmIENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS187CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8gJiYgKCFpc1ByaW1hcnlCeXRlSWdub3JhYmxlIHx8IG1fdXRpbENvbXBhcmUyXykpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyB0aGUgY2FzZSBsZXZlbCBpZiB3ZSBuZWVkIHRvIGRvIGl0LiBXZSBkb24ndCB3YW50IHRvIGNhbGN1bGF0ZQorICAgICAgICAgICAgICAgIC8vIGNhc2UgbGV2ZWwgZm9yIHByaW1hcnkgaWdub3JhYmxlcyBpZiB3ZSBoYXZlIG9ubHkgcHJpbWFyeSBzdHJlbmd0aCBhbmQgY2FzZSBsZXZlbAorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSB3b3VsZCBicmVhayB3ZWxsIGZvcm1lZG5lc3Mgb2YgQ0VzIAorICAgICAgICAgICAgICAgIGNhc2VTaGlmdCA9IGRvQ2FzZUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uLCBjYXNlU2hpZnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgdCBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ICY9IG1fbWFzazNfOworCisgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTNfKSB7CisgICAgICAgICAgICAgICAgZG9UZXJ0aWFyeUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU0XyAmJiBub3RJc0NvbnRpbnVhdGlvbikgeyAvLyBjb21wYXJlIHF1YWQKKyAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnlCeXRlcyhtX3NyY1V0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25Cb3R0b200LCBib3R0b21Db3VudDQsIGhpcmFnYW5hNCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2V0RGVjb21wb3NpdGlvbihiYWNrdXBEZWNvbXBvc2l0aW9uKTsgLy8gcmV2ZXJ0cyB0byBvcmlnaW5hbAorICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAvLyBvbmUgbGFzdCByb3VuZCBvZiBjaGVja3MKKyAgICAgICAgICAgIHJldmVyc2VCdWZmZXIobV91dGlsQnl0ZXMyXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcm9tIHRoZSBpbmRpdmlkdWFsIHN0cmVuZ3RoIGJ5dGUgcmVzdWx0cyB0aGUgZmluYWwgY29tcGFjdCBzb3J0a2V5CisgICAgICogd2lsbCBiZSBjYWxjdWxhdGVkLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0aW5nIHRoYXQgc3BlY2lhbCBoYW5kbGluZyBvZiBGcmVuY2ggaGFzIHRvCisgICAgICogICAgICAgICAgICAgICAgICBiZSBkb25lCisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGtleSBvdXRwdXQgUmF3Q29sbGF0aW9uS2V5IHRvIHN0b3JlIHJlc3VsdHMsIGtleSBjYW5ub3QgYmUgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBnZXRTb3J0S2V5KFN0cmluZyBzb3VyY2UsIGJvb2xlYW4gZG9GcmVuY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tbW9uQm90dG9tNCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIC8vIHdlIGhhdmUgZG9uZSBhbGwgdGhlIENFJ3MsIG5vdyBsZXQncyBwdXQgdGhlbSB0b2dldGhlciB0byBmb3JtCisgICAgICAgIC8vIGEga2V5CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgICAgIGRvU2Vjb25kYXJ5KGRvRnJlbmNoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhZGRpbmcgY2FzZSBsZXZlbCBzaG91bGQgYmUgaW5kZXBlbmRlbnQgb2Ygc2Vjb25kYXJ5IGxldmVsCisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8pIHsKKyAgICAgICAgICAgIGRvQ2FzZSgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlM18pIHsKKyAgICAgICAgICAgIGRvVGVydGlhcnkoKTsKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlNF8pIHsKKyAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnkoY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0KTsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTVfKSB7CisgICAgICAgICAgICAgICAgICAgIGRvSWRlbnRpY2FsKHNvdXJjZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKTApOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisKKyAgICAgICAga2V5LnNldChtX3V0aWxCeXRlczFfLCAwLCBtX3V0aWxCeXRlc0NvdW50MV8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2tzIHRoZSBGcmVuY2ggYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9GcmVuY2goKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3V0aWxCeXRlc0NvdW50Ml87IGkgKyspIHsKKyAgICAgICAgICAgIGJ5dGUgcyA9IG1fdXRpbEJ5dGVzMl9bbV91dGlsQnl0ZXNDb3VudDJfIC0gaSAtIDFdOworICAgICAgICAgICAgLy8gVGhpcyBpcyBjb21wcmVzc2lvbiBjb2RlLgorICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfKSB7CisgICAgICAgICAgICAgICAgKysgbV91dGlsQ291bnQyXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHRoZSB1bnNpZ25lZCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICBpZiAoKHMgJiBMQVNUX0JZVEVfTUFTS18pID4gQ09NTU9OXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgbmVjZXNzYXJ5IGZvciA0dGggbGV2ZWwuCisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IFRPUF9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX1RPUF8yXyAtIFRPUF9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX1RPUF8yXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAobV91dGlsQ291bnQyXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50Ml8gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgcyk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50Ml8gPiBCT1RUT01fQ09VTlRfMl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSBzZWNvbmRhcnkgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0b3IgdGhhdCBGcmVuY2ggaGFzIHRvIGJlIGhhbmRsZWQgc3BlY2lhbGx5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGRvU2Vjb25kYXJ5KGJvb2xlYW4gZG9GcmVuY2gpCisgICAgeworICAgICAgICBpZiAobV91dGlsQ291bnQyXyA+IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEJPVFRPTV9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICB9CisKKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKworICAgICAgICBpZiAoZG9GcmVuY2gpIHsgLy8gZG8gdGhlIHJldmVyc2UgY29weQorICAgICAgICAgICAgZG9GcmVuY2goKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fdXRpbEJ5dGVzQ291bnQyXykgeworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzMl8sIDAsIG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgbV91dGlsQnl0ZXNDb3VudDJfKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50Ml87CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZWFzZSBidWZmZXIgc2l6ZQorICAgICAqIEBwYXJhbSBidWZmZXIgYXJyYXkgb2YgYnl0ZXMKKyAgICAgKiBAcGFyYW0gc2l6ZSBvZiB0aGUgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSBpbmNyZW1lbnRzaXplIHNpemUgdG8gaW5jcmVhc2UKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGluY3JlYXNlKGJ5dGUgYnVmZmVyW10sIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5jcmVtZW50c2l6ZSkKKyAgICB7CisgICAgICAgIGJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVtidWZmZXIubGVuZ3RoICsgaW5jcmVtZW50c2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCByZXN1bHQsIDAsIHNpemUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEluY3JlYXNlIGJ1ZmZlciBzaXplCisgICAgICogQHBhcmFtIGJ1ZmZlciBhcnJheSBvZiBpbnRzCisgICAgICogQHBhcmFtIHNpemUgb2YgdGhlIGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50c2l6ZSBzaXplIHRvIGluY3JlYXNlCisgICAgICogQHJldHVybiB0aGUgbmV3IGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGluY3JlYXNlKGludCBidWZmZXJbXSwgaW50IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluY3JlbWVudHNpemUpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0W10gPSBuZXcgaW50W2J1ZmZlci5sZW5ndGggKyBpbmNyZW1lbnRzaXplXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIHJlc3VsdCwgMCwgc2l6ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFjdHMgdGhlIGNhc2UgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9DYXNlKCkKKyAgICB7CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50MF8pIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzMF8sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MF8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDBfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSB0ZXJ0aWFyeSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5KCkKKyAgICB7CisgICAgICAgIGlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgICAgaWYgKG1fY29tbW9uM18gIT0gQ09NTU9OX0JPVFRPTV8zXykgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDNfID49IG1fdG9wQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV90b3AzXyAtIG1fdG9wQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV90b3BDb3VudDNfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX3RvcDNfIC0gbV91dGlsQ291bnQzXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDNfID4gbV9ib3R0b21Db3VudDNfKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9ib3R0b21Db3VudDNfKSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyAtPSBtX2JvdHRvbUNvdW50M187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fYm90dG9tM18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDNfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgaWYgKG1fdXRpbEJ5dGVzMV8ubGVuZ3RoIDw9IG1fdXRpbEJ5dGVzQ291bnQxXyArIG1fdXRpbEJ5dGVzQ291bnQzXykgeworICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGluY3JlYXNlKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18pOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV91dGlsQnl0ZXMzXywgMCwgbV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50M187CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFjdHMgdGhlIHF1YXRlcm5hcnkgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9RdWF0ZXJuYXJ5KGludCBjb21tb25ib3R0b200LCBpbnQgYm90dG9tY291bnQ0KQorICAgIHsKKyAgICAgICAgaWYgKG1fdXRpbENvdW50NF8gPiAwKSB7CisgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbWNvdW50NCkgeworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbmJvdHRvbTQgKyBib3R0b21jb3VudDQpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyAtPSBib3R0b21jb3VudDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbmJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICB9CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50NF8pIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzNF8sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlYWxzIHdpdGggdGhlIGlkZW50aWNhbCBzb3J0LgorICAgICAqIEFwcGVuZHMgdGhlIEJPQ1NVIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBzdHJpbmcgdG8gdGhlIGVuZHMgb2YgdGhlCisgICAgICogYnl0ZSBidWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb0lkZW50aWNhbChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgaW50IGlzaXplID0gQk9DVS5nZXRDb21wcmVzc2lvbkxlbmd0aChzb3VyY2UpOworICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgaXNpemUpIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIGlzaXplKTsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gPSBCT0NVLmNvbXByZXNzKHNvdXJjZSwgbV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcnMgaW4gc291cmNlIGFuZCB0YXJnZXQuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW9uIG9yIGEKKyAgICAgKiBjb21iaW5pbmcgc2VxdWVuY2UsIGlmIHRoZSBmaXJzdCBkaWZmZXJlbmNlIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3VjaCBhCisgICAgICogc2VxdWVuY2UuCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IG9mIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVycyBpbiBzb3VyY2UgYW5kIHRhcmdldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRGaXJzdFVubWF0Y2hlZE9mZnNldChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBzbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdGxlbmd0aCA9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG1pbmxlbmd0aCA9IHNsZW5ndGg7CisgICAgICAgIGlmIChtaW5sZW5ndGggPiB0bGVuZ3RoKSB7CisgICAgICAgICAgICBtaW5sZW5ndGggPSB0bGVuZ3RoOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBtaW5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBzb3VyY2UuY2hhckF0KHJlc3VsdCkgPT0gdGFyZ2V0LmNoYXJBdChyZXN1bHQpKSB7CisgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA+IDApIHsKKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIGFuIGlkZW50aWNhbCBwb3J0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHR3bworICAgICAgICAgICAgLy8gc3RyaW5ncy4gSWYgdGhlIGlkZW50aWNhbCBwb3J0aW9uIGVuZHMgd2l0aGluIGEgY29udHJhY3Rpb24gb3IgYQorICAgICAgICAgICAgLy8gY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZSwgYmFjayB1cCB0byB0aGUgc3RhcnQgb2YgdGhhdAorICAgICAgICAgICAgLy8gc2VxdWVuY2UuCisgICAgICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgICAgIGNoYXIgdGNoYXIgPSAwOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChyZXN1bHQpOyAvLyBmaXJzdCBkaWZmZXJpbmcgY2hhcnMKKyAgICAgICAgICAgICAgICB0Y2hhciA9IHRhcmdldC5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChtaW5sZW5ndGggLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRjaGFyID0gc2NoYXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNsZW5ndGggPT0gdGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc2xlbmd0aCA8IHRsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGNoYXIgPSB0YXJnZXQuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzY2hhciA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNVbnNhZmUoc2NoYXIpIHx8IGlzVW5zYWZlKHRjaGFyKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RvcHBlZCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24gb3IgY29tYmluaW5nCisgICAgICAgICAgICAgICAgLy8gc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgLy8gTG9vayBiYWNrd2FyZHMgZm9yIHRoZSBwYXJ0IG9mIHRoZSBzdHJpbmcgZm9yIHRoZSBzdGFydCBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgIC8vIEl0IGRvZXNuJ3QgbWF0dGVyIHdoaWNoIHN0cmluZyB3ZSBzY2FuLCBzaW5jZSB0aGV5IGFyZSB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGluIHRoaXMgcmVnaW9uLgorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAocmVzdWx0ID4gMCAmJiBpc1Vuc2FmZShzb3VyY2UuY2hhckF0KHJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZGluZyBhbiBieXRlIHRvIGFuIGFycmF5IG9mIGJ5dGVzIGFuZCBpbmNyZWFzZXMgaXQgaWYgd2UgcnVuIG91dCBvZgorICAgICAqIHNwYWNlCisgICAgICogQHBhcmFtIGFycmF5IG9mIGJ5dGUgYXJyYXlzCisgICAgICogQHBhcmFtIGFwcGVuZGluZGV4IGluZGV4IGluIHRoZSBieXRlIGFycmF5IHRvIGFwcGVuZAorICAgICAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIGFycmF5IGlmIGFycmF5IHNpemUgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyB2YWx1ZSwgb3RoZXJ3aXNlCisgICAgICogICAgICAgICBhIGJpZ2dlciBhcnJheSB3aWxsIGJlIGNyZWF0ZWQgYW5kIHJldHVybmVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGFwcGVuZChieXRlIGFycmF5W10sIGludCBhcHBlbmRpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgdmFsdWUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgYXJyYXlbYXBwZW5kaW5kZXhdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhcnJheSA9IGluY3JlYXNlKGFycmF5LCBhcHBlbmRpbmRleCwgU09SVF9CVUZGRVJfSU5JVF9TSVpFXyk7CisgICAgICAgICAgICBhcnJheVthcHBlbmRpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHRyaWNrIHN0cmluZyBjb21wYXJlIGZ1bmN0aW9uIHRoYXQgZ29lcyBpbiBhbmQgdXNlcyBzb3J0a2V5cworICAgICAqIHRvIGNvbXBhcmUuIEl0IGlzIHVzZWQgd2hlbiBjb21wYXJlIGdldHMgaW4gdHJvdWJsZSBhbmQgbmVlZHMgdG8gYmFpbAorICAgICAqIG91dC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHRhcmdldCB0ZXh0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGNvbXBhcmVCeVNvcnRLZXlzKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpCisKKyAgICB7CisgICAgICAgIG1fdXRpbFJhd0NvbGxhdGlvbktleV8gPSBnZXRSYXdDb2xsYXRpb25LZXkoc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfKTsKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgaXMgdmVyeSBzZWxkb20gY2FsbGVkCisgICAgICAgIFJhd0NvbGxhdGlvbktleSB0YXJnZXRrZXkgPSBnZXRSYXdDb2xsYXRpb25LZXkodGFyZ2V0LCBudWxsKTsKKyAgICAgICAgcmV0dXJuIG1fdXRpbFJhd0NvbGxhdGlvbktleV8uY29tcGFyZVRvKHRhcmdldGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgdGhlIHByaW1hcnkgY29tcGFyaXNvbnMsIGFuZCBmaWxscyB1cCB0aGUgQ0UgYnVmZmVyIGF0IHRoZQorICAgICAqIHNhbWUgdGltZS4KKyAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIHRvZ2dsZXMgYmV0d2VlbiB0aGUgY29tcGFyaXNvbiByZXN1bHQgYW5kIHRoZSBoaXJhZ2FuYQorICAgICAqIHJlc3VsdC4gSWYgZWl0aGVyIHRoZSBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCBvciB2aWNlIHZlcnNhLCB0aGUKKyAgICAgKiByZXR1cm4gcmVzdWx0IGlzIHRoZSBjb21wYXJpc29uIHJlc3VsdCwgaWUgMSBvciAtMSwgZnVydGhlcm1vcmUgdGhlCisgICAgICogY2VidWZmZXJzIHdpbGwgYmUgY2xlYXJlZCB3aGVuIHRoYXQgaGFwcGVucy4gSWYgdGhlIHByaW1hcnkgY29tcGFyaXNvbnMKKyAgICAgKiBhcmUgZXF1YWwsIHdlJ2xsIGhhdmUgdG8gY29udGludWUgd2l0aCBzZWNvbmRhcnkgY29tcGFyaXNvbi4gSW4gdGhpcyBjYXNlCisgICAgICogdGhlIGNlYnVmZmVyIHdpbGwgbm90IGJlIGNsZWFyZWQgYW5kIHRoZSByZXR1cm4gcmVzdWx0IHdpbGwgYmUgdGhlCisgICAgICogaGlyYWdhbmEgcmVzdWx0LgorICAgICAqIEBwYXJhbSBkb0hpcmFnYW5hNCBmbGFnIGluZGljYXRvciB0aGF0IEhpcmFnYW5hIFF1YXRlcm5hcnkgaGFzIHRvIGJlCisgICAgICogICAgICAgICAgICAgICAgICBvYnNlcnZlZAorICAgICAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzaGlmdGVkCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGV4dCB0byBzdGFydCB0aGUgY29tcGFyaXNvbgorICAgICAqIEByZXR1cm4gY29tcGFyaW9uIHJlc3VsdCBpZiBhIHByaW1hcnkgZGlmZmVyZW5jZSBpcyBmb3VuZCwgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgaGlyYWdhbmEgcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9QcmltYXJ5Q29tcGFyZShib29sZWFuIGRvSGlyYWdhbmE0LCBpbnQgbG93ZXN0cHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHRvZmZzZXQpCisKKyAgICB7CisgICAgICAgIC8vIFByZXBhcmluZyB0aGUgY29udGV4dCBvYmplY3RzIGZvciBpdGVyYXRpbmcgb3ZlciBzdHJpbmdzCisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsKKyAgICAgICAgbV9zcmNVdGlsQ29sRUl0ZXJfLnNldFRleHQobV9zcmNVdGlsSXRlcl8sIHRleHRvZmZzZXQpOworICAgICAgICBtX3RndFV0aWxJdGVyXy5zZXRUZXh0KHRhcmdldCk7CisgICAgICAgIG1fdGd0VXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdGd0VXRpbEl0ZXJfLCB0ZXh0b2Zmc2V0KTsKKworICAgICAgICAvLyBOb24gc2hpZnRlZCBwcmltYXJ5IHByb2Nlc3NpbmcgaXMgcXVpdGUgc2ltcGxlCisgICAgICAgIGlmICghbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pIHsKKyAgICAgICAgICAgIGludCBoaXJhZ2FuYXJlc3VsdCA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBzb3JkZXIgPSAwOworICAgICAgICAgICAgICAgIC8vIFdlIGZldGNoIENFcyB1bnRpbCB3ZSBoaXQgYSBub24gaWdub3JhYmxlIHByaW1hcnkgb3IgZW5kLgorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gYXBwZW5kKG1fc3JjVXRpbENFQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8sIHNvcmRlcik7CisgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHNvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKTsKKworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSAwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gbV90Z3RVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJfID0gYXBwZW5kKG1fdGd0VXRpbENFQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8sIHRvcmRlcik7CisgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHRvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggcHJpbWFyaWVzIGFyZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVyZSBhcmUgbm8gbW9yZSBDRXMsIHdlIGFkdmFuY2UgdG8gdGhlIG5leHQgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIGVpdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1ttX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW21fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW21fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZG9IaXJhZ2FuYTQgJiYgaGlyYWdhbmFyZXN1bHQgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9zcmNVdGlsQ29sRUl0ZXJfLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENvbEVJdGVyXy5tX2lzQ29kZVBvaW50SGlyYWdhbmFfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlyYWdhbmFyZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpcmFnYW5hcmVzdWx0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHdvIHByaW1hcmllcyBhcmUgZGlmZmVyZW50LCB3ZSBhcmUgZG9uZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5kUHJpbWFyeUNvbXBhcmUoc29yZGVyLCB0b3JkZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG5vIHByaW1hcnkgZGlmZmVyZW5jZS4uLiBkbyB0aGUgcmVzdCBmcm9tIHRoZSBidWZmZXJzCisgICAgICAgICAgICByZXR1cm4gaGlyYWdhbmFyZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIHNoaWZ0ZWQgLSBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgcHJvY2Vzc2luZyA6KQorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgc29yZGVyID0gZ2V0UHJpbWFyeVNoaWZ0ZWRDb21wYXJlQ0UobV9zcmNVdGlsQ29sRUl0ZXJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlc3RwdmFsdWUsIHRydWUpOworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBnZXRQcmltYXJ5U2hpZnRlZENvbXBhcmVDRShtX3RndFV0aWxDb2xFSXRlcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuZFByaW1hcnlDb21wYXJlKHNvcmRlciwgdG9yZGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IC8vIG5vIHByaW1hcnkgZGlmZmVyZW5jZS4uLiBkbyB0aGUgcmVzdCBmcm9tIHRoZSBidWZmZXJzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyB1c2VkIG9ubHkgZm9yIHByaW1hcnkgc3RyZW5ndGggd2hlbiB3ZSBrbm93IHRoYXQgc29yZGVyIGlzCisgICAgICogYWxyZWFkeSBkaWZmZXJlbnQgZnJvbSB0b3JkZXIuCisgICAgICogQ29tcGFyZXMgc29yZGVyIGFuZCB0b3JkZXIsIHJldHVybnMgLTEgaWYgc29yZGVyIGlzIGxlc3MgdGhhbiB0b3JkZXIuCisgICAgICogQ2xlYXJzIHRoZSBjZWJ1ZmZlciBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAqIEBwYXJhbSBzb3JkZXIgc291cmNlIHN0cmVuZ3RoIG9yZGVyCisgICAgICogQHBhcmFtIHRvcmRlciB0YXJnZXQgc3RyZW5ndGggb3JkZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21wYXJpc29uIHJlc3VsdCBvZiBzb3JkZXIgYW5kIHRvcmRlcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGVuZFByaW1hcnlDb21wYXJlKGludCBzb3JkZXIsIGludCB0b3JkZXIpCisgICAgeworICAgICAgICAvLyBpZiB3ZSByZWFjaCBoZXJlLCB0aGUgY2Ugb2Zmc2V0IGFjY2Vzc2VkIGlzIHRoZSBsYXN0IGNlCisgICAgICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBidWZmZXIKKyAgICAgICAgYm9vbGVhbiBpc1NvdXJjZU51bGxPcmRlciA9IChtX3NyY1V0aWxDRUJ1ZmZlcl9bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUik7CisgICAgICAgIGJvb2xlYW4gaXNUYXJnZXROdWxsT3JkZXIgPSAobV90Z3RVdGlsQ0VCdWZmZXJfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOworICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID0gLTE7CisgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSAtMTsKKyAgICAgICAgaWYgKGlzU291cmNlTnVsbE9yZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzVGFyZ2V0TnVsbE9yZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgc2lnbgorICAgICAgICBzb3JkZXIgPj4+PSBDRV9QUklNQVJZX1NISUZUXzsKKyAgICAgICAgdG9yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisgICAgICAgIGlmIChzb3JkZXIgPCB0b3JkZXIpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBuZXh0IHByaW1hcnkgc2hpZnRlZCB2YWx1ZSBhbmQgZmlsbHMgdXAgY2VidWZmZXIgd2l0aCB0aGUKKyAgICAgKiBuZXh0IG5vbi1pZ25vcmFibGUgY2UuCisgICAgICogQHBhcmFtIGNvbGVpdGVyIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGRvSGlyYWdhbmE0IGZsYWcgaW5kaWNhdG9yIGlmIGhpcmFnYW5hIHF1YXRlcm5hcnkgaXMgdG8gYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVkCisgICAgICogQHBhcmFtIGxvd2VzdHB2YWx1ZSBsb3dlc3QgcHJpbWFyeSBzaGlmdGVkIHZhbHVlIHRoYXQgd2lsbCBub3QgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVkCisgICAgICogQHJldHVybiByZXN1bHQgbmV4dCBtb2RpZmllZCBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG93ZXN0cHZhbHVlLCBib29sZWFuIGlzU3JjKQorCisgICAgeworICAgICAgICBib29sZWFuIHNoaWZ0ZWQgPSBmYWxzZTsKKyAgICAgICAgaW50IHJlc3VsdCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgIGludCBjZWJ1ZmZlcltdID0gbV9zcmNVdGlsQ0VCdWZmZXJfOworICAgICAgICBpbnQgY2VidWZmZXJzaXplID0gbV9zcmNVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICAgICAgaWYgKCFpc1NyYykgeworICAgICAgICAgICAgY2VidWZmZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl87CisgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgPSBtX3RndFV0aWxDRUJ1ZmZlclNpemVfOworICAgICAgICB9CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICByZXN1bHQgPSBjb2xlaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgICAgICB8fCAoc2hpZnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSkgeworICAgICAgICAgICAgICAgIC8vIFVDQSBhbWVuZG1lbnQgLSBpZ25vcmUgaWdub3JhYmxlcyB0aGF0IGZvbGxvdyBzaGlmdGVkIGNvZGUKKyAgICAgICAgICAgICAgICAvLyBwb2ludHMKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzQ29udGludWF0aW9uKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIHByaW1hcnkgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VydmUgaW50ZXJlc3RpbmcgY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7IC8vIEp1c3QgbG93ZXIgbGV2ZWwgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGlmICghc2hpZnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeyAvLyByZWd1bGFyCisgICAgICAgICAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyID0gYXBwZW5kKGNlYnVmZmVyLCBjZWJ1ZmZlcnNpemUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICY9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzU3JjKSB7CisgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlcl8gPSBjZWJ1ZmZlcjsKKyAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gPSBjZWJ1ZmZlcnNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlcl8gPSBjZWJ1ZmZlcjsKKyAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSBjZWJ1ZmZlcnNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ICY9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kaW5nIGFuIGludCB0byBhbiBhcnJheSBvZiBpbnRzIGFuZCBpbmNyZWFzZXMgaXQgaWYgd2UgcnVuIG91dCBvZgorICAgICAqIHNwYWNlCisgICAgICogQHBhcmFtIGFycmF5IG9mIGludCBhcnJheXMKKyAgICAgKiBAcGFyYW0gYXBwZW5kaW5kZXggaW5kZXggYXQgd2hpY2ggdmFsdWUgd2lsbCBiZSBhcHBlbmRlZAorICAgICAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIGFycmF5IGlmIHNpemUgaXMgbm90IGluY3JlYXNlZCwgb3RoZXJ3aXNlIGEgbmV3IGFycmF5IHdpbGwgYmUKKyAgICAgKiAgICAgICAgIHJldHVybmVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gYXBwZW5kKGludCBhcnJheVtdLCBpbnQgYXBwZW5kaW5kZXgsIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChhcHBlbmRpbmRleCArIDEgPj0gYXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBhcnJheSA9IGluY3JlYXNlKGFycmF5LCBhcHBlbmRpbmRleCwgQ0VfQlVGRkVSX1NJWkVfKTsKKyAgICAgICAgfQorICAgICAgICBhcnJheVthcHBlbmRpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgc2Vjb25kYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdGVzIGlmIEZyZW5jaCBvcmRlcmluZyBpcyB0byBiZSBkb25lCisgICAgICogQHJldHVybiB0aGUgc2Vjb25kYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9TZWNvbmRhcnlDb21wYXJlKGJvb2xlYW4gZG9GcmVuY2gpCisgICAgeworICAgICAgICAvLyBub3csIHdlJ3JlIGdvbm5hIHJlZXhhbWluZSBjb2xsZWN0ZWQgQ0VzCisgICAgICAgIGlmICghZG9GcmVuY2gpIHsgLy8gbm9ybWFsCisgICAgICAgICAgICBpbnQgc29mZnNldCA9IDA7CisgICAgICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIHdoaWxlIChzb3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBDRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIHdoaWxlICh0b3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBDRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIGRvIHRoZSBGcmVuY2gKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fdGd0VXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fc3JjVXRpbE9mZnNldF8gPSBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMjsKKyAgICAgICAgICAgIG1fdGd0VXRpbE9mZnNldF8gPSBtX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMjsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IHNvcmRlciA9IGdldFNlY29uZGFyeUZyZW5jaENFKHRydWUpOworICAgICAgICAgICAgICAgIGludCB0b3JkZXIgPSBnZXRTZWNvbmRhcnlGcmVuY2hDRShmYWxzZSk7CisgICAgICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3NyY1V0aWxPZmZzZXRfIDwgMCAmJiBtX3RndFV0aWxPZmZzZXRfIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3NyY1V0aWxPZmZzZXRfID49IDAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9zcmNVdGlsQ0VCdWZmZXJfW21fc3JjVXRpbE9mZnNldF9dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlcyB0aGUgbmV4dCBzZWNvbmRhcnkgZnJlbmNoIENFLgorICAgICAqIEBwYXJhbSBpc1NyYyBmbGFnIGluZGljYXRvciBpZiB3ZSBhcmUgY2FsY3VsYXRpbmcgdGhlIHNyYyBjZXMKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBuZXh0IG1vZGlmaWVkIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0U2Vjb25kYXJ5RnJlbmNoQ0UoYm9vbGVhbiBpc1NyYykKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICBpbnQgb2Zmc2V0ID0gbV9zcmNVdGlsT2Zmc2V0XzsKKyAgICAgICAgaW50IGNvbnRpbnVhdGlvbm9mZnNldCA9IG1fc3JjVXRpbENvbnRPZmZzZXRfOworICAgICAgICBpbnQgY2VidWZmZXJbXSA9IG1fc3JjVXRpbENFQnVmZmVyXzsKKyAgICAgICAgaWYgKCFpc1NyYykgeworICAgICAgICAgICAgb2Zmc2V0ID0gbV90Z3RVdGlsT2Zmc2V0XzsKKyAgICAgICAgICAgIGNvbnRpbnVhdGlvbm9mZnNldCA9IG1fdGd0VXRpbENvbnRPZmZzZXRfOworICAgICAgICAgICAgY2VidWZmZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl87CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUKKyAgICAgICAgICAgICAgICAmJiBvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlvbm9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2VidWZmZXJbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXNDb250aW51YXRpb24oY2VidWZmZXJbb2Zmc2V0IC0tXSkpeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGlzLCBzb3JkZXIgaXMgYXQgdGhlIHN0YXJ0IG9mIGNvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBhbmQgb2Zmc2V0IHBvaW50cyBiZWZvcmUgdGhhdAorICAgICAgICAgICAgICAgIGlmIChpc0NvbnRpbnVhdGlvbihjZWJ1ZmZlcltvZmZzZXQgKyAxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSBvZmZzZXQgZm9yIGxhdGVyCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2VidWZmZXJbb2Zmc2V0ICsrXTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ29udGludWF0aW9uKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBmaW5pc2hlZCB3aXRoIHRoaXMgY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIHBvaW50ZXIgdG8gYmVmb3JlIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgICAgICBjb250aW51YXRpb25vZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgJj0gQ0VfU0VDT05EQVJZX01BU0tfOyAvLyByZW1vdmUgY29udGludWF0aW9uIGJpdAorICAgICAgICB9CisgICAgICAgIGlmIChpc1NyYykgeworICAgICAgICAgICAgbV9zcmNVdGlsT2Zmc2V0XyA9IG9mZnNldDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbnRPZmZzZXRfID0gY29udGludWF0aW9ub2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV90Z3RVdGlsT2Zmc2V0XyA9IG9mZnNldDsKKyAgICAgICAgICAgIG1fdGd0VXRpbENvbnRPZmZzZXRfID0gY29udGludWF0aW9ub2Zmc2V0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG9lcyBjYXNlIHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHJldHVybiB0aGUgY2FzZSBzdHJlbmd0aCBjb21wYXJpc29uIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvQ2FzZUNvbXBhcmUoKQorICAgIHsKKyAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgd2hpbGUgKChzb3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24oc29yZGVyKSAmJiAoKHNvcmRlciAmIENFX1BSSU1BUllfTUFTS18pICE9IDAgfHwgbV91dGlsQ29tcGFyZTJfID09IHRydWUpKSB7CisgICAgICAgICAgICAgICAgCS8vIHByaW1hcnkgaWdub3JhYmxlcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgb24gdGhlIGNhc2UgbGV2ZWwgd2hlbiB0aGUgc3RyZW5ndGggaXMgcHJpbWFyeQorICAgICAgICAgICAgICAgIAkvLyBvdGhlcndpc2UsIHRoZSBDRXMgc3RvcCBiZWluZyB3ZWxsLWZvcm1lZAorICAgICAgICAgICAgICAgICAgICBzb3JkZXIgJj0gQ0VfQ0FTRV9NQVNLXzNfOworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoKHRvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKCFpc0NvbnRpbnVhdGlvbih0b3JkZXIpICYmICgodG9yZGVyICYgQ0VfUFJJTUFSWV9NQVNLXykgIT0gMCB8fCBtX3V0aWxDb21wYXJlMl8gPT0gdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAJLy8gcHJpbWFyeSBpZ25vcmFibGVzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBvbiB0aGUgY2FzZSBsZXZlbCB3aGVuIHRoZSBzdHJlbmd0aCBpcyBwcmltYXJ5CisgICAgICAgICAgICAgICAgCS8vIG90aGVyd2lzZSwgdGhlIENFcyBzdG9wIGJlaW5nIHdlbGwtZm9ybWVkCisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9DQVNFX01BU0tfM187CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKyAgICAgICAgICAgIHRvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKyAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcgZW5kIG9mIHN0cmluZ3MKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEb2VzIHRlcnRpYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisgICAgICogQHJldHVybiB0aGUgdGVydGlhcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb1RlcnRpYXJ5Q29tcGFyZSgpCisgICAgeworICAgICAgICBpbnQgc29mZnNldCA9IDA7CisgICAgICAgIGludCB0b2Zmc2V0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgaW50IHRvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICB3aGlsZSAoKHNvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIHNvcmRlciA9IG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0ICsrXSAmIG1fbWFzazNfOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24oc29yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoKHRvcmRlciAmIENFX1JFTU9WRV9DQVNFXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIHRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXSAmIG1fbWFzazNfOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24odG9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc29yZGVyID09IHRvcmRlcikgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIChzb3JkZXIgPCB0b3JkZXIpID8gLTEgOiAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgcXVhdGVybmFyeSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorICAgICAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzaGlmdGVkCisgICAgICogQHJldHVybiB0aGUgcXVhdGVybmFyeSBzdHJlbmd0aCBjb21wYXJpc29uIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvUXVhdGVybmFyeUNvbXBhcmUoaW50IGxvd2VzdHB2YWx1ZSkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gc1NoaWZ0ZWQgPSB0cnVlOworICAgICAgICBib29sZWFuIHRTaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgd2hpbGUgKHNvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgICAgIHx8IChpc0NvbnRpbnVhdGlvbihzb3JkZXIpICYmICFzU2hpZnRlZCkpIHsKKyAgICAgICAgICAgICAgICBzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKHNvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzU2hpZnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoc29yZGVyLCBsb3dlc3RwdmFsdWUpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChzb3JkZXIgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAvLyBub24gY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgIHNvcmRlciA9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICAgICAgICAgIHNTaGlmdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzU2hpZnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc29yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisgICAgICAgICAgICB3aGlsZSAodG9yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUKKyAgICAgICAgICAgICAgICAgICAgfHwgKGlzQ29udGludWF0aW9uKHRvcmRlcikgJiYgIXRTaGlmdGVkKSkgeworICAgICAgICAgICAgICAgIHRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXTsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250aW51YXRpb24odG9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRTaGlmdGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZCh0b3JkZXIsIGxvd2VzdHB2YWx1ZSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHRvcmRlciAmIENFX1BSSU1BUllfTUFTS18pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBjb250aW51YXRpb24KKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgICAgICAgICAgdFNoaWZ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRTaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3JkZXIgPj4+PSBDRV9QUklNQVJZX1NISUZUXzsKKworICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdID09CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgZnVuY3Rpb24uIERvZXMgYnl0ZSBsZXZlbCBzdHJpbmcgY29tcGFyZS4gVXNlZCBieSBzdHJjb2xsIGlmCisgICAgICogc3RyZW5ndGggPT0gaWRlbnRpY2FsIGFuZCBzdHJpbmdzIGFyZSBvdGhlcndpc2UgZXF1YWwuIFRoaXMgaXMgYSByYXJlCisgICAgICogY2FzZS4gQ29tcGFyaXNvbiBtdXN0IGJlIGRvbmUgb24gTkZEIG5vcm1hbGl6ZWQgc3RyaW5ncy4gRkNEIGlzIG5vdCBnb29kCisgICAgICogZW5vdWdoLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dAorICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dAorICAgICAqIEBwYXJhbSBvZmZzZXQgb2YgdGhlIGZpcnN0IGRpZmZlcmVuY2UgaW4gdGhlIHRleHQgc3RyaW5ncworICAgICAqIEBwYXJhbSBub3JtYWxpemUgZmxhZyBpbmRpY2F0aW5nIGlmIHdlIGFyZSB0byBub3JtYWxpemUgdGhlIHRleHQgYmVmb3JlCisgICAgICogICAgICAgICAgICAgIGNvbXBhcmlzb24KKyAgICAgKiBAcmV0dXJuIDEgaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQsIC0xIGxlc3MgdGhhbiBhbmQgMCBpZiBlcXVhbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZG9JZGVudGljYWxDb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBib29sZWFuIG5vcm1hbGl6ZSkKKworICAgIHsKKyAgICAgICAgaWYgKG5vcm1hbGl6ZSkgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzb3VyY2UsIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzb3VyY2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0YXJnZXQsIE5vcm1hbGl6ZXIuTkZELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGFyZ2V0LCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRvU3RyaW5nQ29tcGFyZShzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyBzdHJpbmcgZm9yIHRoZWlyIGNvZGVwb2ludCBvcmRlci4KKyAgICAgKiBUaGlzIGNvbXBhcmlzb24gaGFuZGxlcyBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgcGxhY2UgdGhlbSBhZnRlciB0aGUKKyAgICAgKiBhbGwgbm9uIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dAorICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dAorICAgICAqIEBwYXJhbSBvZmZzZXQgc3RhcnQgb2Zmc2V0IGZvciBjb21wYXJpc29uCisgICAgICogQHJldHVybiAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LCAtMSBsZXNzIHRoYW4gYW5kIDAgaWYgZXF1YWxzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRvU3RyaW5nQ29tcGFyZShTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQpCisgICAgeworICAgICAgICAvLyBjb21wYXJlIGlkZW50aWNhbCBwcmVmaXhlcyAtIHRoZXkgZG8gbm90IG5lZWQgdG8gYmUgZml4ZWQgdXAKKyAgICAgICAgY2hhciBzY2hhciA9IDA7CisgICAgICAgIGNoYXIgdGNoYXIgPSAwOworICAgICAgICBpbnQgc2xlbmd0aCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW5ndGggPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgIGludCBtaW5sZW5ndGggPSBNYXRoLm1pbihzbGVuZ3RoLCB0bGVuZ3RoKTsKKyAgICAgICAgd2hpbGUgKG9mZnNldCA8IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgc2NoYXIgPSBzb3VyY2UuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICB0Y2hhciA9IHRhcmdldC5jaGFyQXQob2Zmc2V0ICsrKTsKKyAgICAgICAgICAgIGlmIChzY2hhciAhPSB0Y2hhcikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjaGFyID09IHRjaGFyICYmIG9mZnNldCA9PSBtaW5sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChzbGVuZ3RoID4gbWlubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGxlbmd0aCA+IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gIGlmIGJvdGggdmFsdWVzIGFyZSBpbiBvciBhYm92ZSB0aGUgc3Vycm9nYXRlIHJhbmdlLCBGaXggdGhlbSB1cC4KKyAgICAgICAgaWYgKHNjaGFyID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgJiYgdGNoYXIgPj0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBzY2hhciA9IGZpeHVwVVRGMTYoc2NoYXIpOworICAgICAgICAgICAgdGNoYXIgPSBmaXh1cFVURjE2KHRjaGFyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyCisgICAgICAgIHJldHVybiAoc2NoYXIgPCB0Y2hhcikgPyAtMSA6IDE7IC8vIHNjaGFyIGFuZCB0Y2hhciBoYXMgdG8gYmUgZGlmZmVyZW50CisgICAgfQorCisgICAgLyoqCisgICAgICogUm90YXRlIHN1cnJvZ2F0ZXMgdG8gdGhlIHRvcCB0byBnZXQgY29kZSBwb2ludCBvcmRlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgZml4dXBVVEYxNihjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoID49IDB4ZTAwMCkgeworICAgICAgICAgICAgY2ggLT0gMHg4MDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjaCArPSAweDIwMDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgY2FzZSBkYXRhIG1lbWJlcnMgYW5kIGNvbXByZXNzaW9uIHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpCisgICAgeworICAgICAgICBpZiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXykgeworICAgICAgICAgICAgbV9jYXNlU3dpdGNoXyA9IENBU0VfU1dJVENIXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fY2FzZVN3aXRjaF8gPSBOT19DQVNFX1NXSVRDSF87CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9pc0Nhc2VMZXZlbF8gfHwgbV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLk9GRl8pIHsKKyAgICAgICAgICAgIG1fbWFzazNfID0gQ0VfUkVNT1ZFX0NBU0VfOworICAgICAgICAgICAgbV9jb21tb24zXyA9IENPTU1PTl9OT1JNQUxfM187CisgICAgICAgICAgICBtX2FkZGl0aW9uM18gPSBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09GRl87CisgICAgICAgICAgICBtX3RvcDNfID0gQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9PRkZfM187CisgICAgICAgICAgICBtX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV8zXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbWFzazNfID0gQ0VfS0VFUF9DQVNFXzsKKyAgICAgICAgICAgIG1fYWRkaXRpb24zXyA9IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT05fOworICAgICAgICAgICAgaWYgKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pIHsKKyAgICAgICAgICAgICAgICBtX2NvbW1vbjNfID0gQ09NTU9OX1VQUEVSX0ZJUlNUXzNfOworICAgICAgICAgICAgICAgIG1fdG9wM18gPSBDT01NT05fVE9QX0NBU0VfU1dJVENIX1VQUEVSXzNfOworICAgICAgICAgICAgICAgIG1fYm90dG9tM18gPSBDT01NT05fQk9UVE9NX0NBU0VfU1dJVENIX1VQUEVSXzNfOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbW1vbjNfID0gQ09NTU9OX05PUk1BTF8zXzsKKyAgICAgICAgICAgICAgICBtX3RvcDNfID0gQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9MT1dFUl8zXzsKKyAgICAgICAgICAgICAgICBtX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9MT1dFUl8zXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCB0aGUgY29tcHJlc3Npb24gdmFsdWVzCisgICAgICAgIGludCB0b3RhbDMgPSBtX3RvcDNfIC0gQ09NTU9OX0JPVFRPTV8zXyAtIDE7CisgICAgICAgIC8vIHdlIG11bHRpbHBseSBkb3VibGUgd2l0aCBpbnQsIGJ1dCBuZWVkIG9ubHkgaW50CisgICAgICAgIG1fdG9wQ291bnQzXyA9IChpbnQpKFBST1BPUlRJT05fM18gKiB0b3RhbDMpOworICAgICAgICBtX2JvdHRvbUNvdW50M18gPSB0b3RhbDMgLSBtX3RvcENvdW50M187CisKKyAgICAgICAgaWYgKCFtX2lzQ2FzZUxldmVsXyAmJiBnZXRTdHJlbmd0aCgpID09IEF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXworICAgICAgICAgICAgJiYgIW1faXNGcmVuY2hDb2xsYXRpb25fICYmICFtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXykgeworICAgICAgICAgICAgbV9pc1NpbXBsZTNfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1faXNTaW1wbGUzXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFtX2lzQ2FzZUxldmVsXyAmJiBnZXRTdHJlbmd0aCgpIDw9IEF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXyAmJiAhbV9pc051bWVyaWNDb2xsYXRpb25fCisgICAgICAgICAgJiYgIW1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfICYmICFsYXRpbk9uZUZhaWxlZF8pIHsKKyAgICAgICAgICBpZihsYXRpbk9uZUNFc18gPT0gbnVsbCB8fCBsYXRpbk9uZVJlZ2VuVGFibGVfKSB7CisgICAgICAgICAgICBpZihzZXRVcExhdGluT25lKCkpIHsgLy8gaWYgd2Ugc3VjY2VlZCBpbiBidWlsZGluZyBsYXRpbjEgdGFibGUsIHdlJ2xsIHVzZSBpdAorICAgICAgICAgICAgICBsYXRpbk9uZVVzZV8gPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgbGF0aW5PbmVVc2VfID0gZmFsc2U7CisgICAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gZmFsc2U7CisgICAgICAgICAgfSBlbHNlIHsgLy8gbGF0aW4xVGFibGUgZXhpc3RzIGFuZCBpdCBkb2Vzbid0IG5lZWQgdG8gYmUgcmVnZW5lcmF0ZWQsIGp1c3QgdXNlIGl0CisgICAgICAgICAgICBsYXRpbk9uZVVzZV8gPSB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsYXRpbk9uZVVzZV8gPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgZm9yIChtX21pblVuc2FmZV8gPSAwOyBtX21pblVuc2FmZV8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOworICAgICAgICAgICAgIG1fbWluVW5zYWZlXyArKykgeworICAgICAgICAgICAgLy8gRmluZCB0aGUgc21hbGxlc3QgdW5zYWZlIGNoYXIuCisgICAgICAgICAgICBpZiAoaXNVbnNhZmUobV9taW5VbnNhZmVfKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChtX21pbkNvbnRyYWN0aW9uRW5kXyA9IDA7CisgICAgICAgICAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOworICAgICAgICAgICAgIG1fbWluQ29udHJhY3Rpb25FbmRfICsrKSB7CisgICAgICAgICAgICAvLyBGaW5kIHRoZSBzbWFsbGVzdCBjb250cmFjdGlvbi1lbmRpbmcgY2hhci4KKyAgICAgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uRW5kKG1fbWluQ29udHJhY3Rpb25FbmRfKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgIHNldFN0cmVuZ3RoKG1fZGVmYXVsdFN0cmVuZ3RoXyk7CisgICAgICAgIHNldERlY29tcG9zaXRpb24obV9kZWZhdWx0RGVjb21wb3NpdGlvbl8pOworICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyA9IG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgbV9pc0Nhc2VMZXZlbF8gPSBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgICAgIG1fY2FzZUZpcnN0XyA9IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgICAgIG1faXNIaXJhZ2FuYTRfID0gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgICAgICBtX2lzTnVtZXJpY0NvbGxhdGlvbl8gPSBtX2RlZmF1bHRJc051bWVyaWNDb2xsYXRpb25fOworICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSBmYWxzZTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqICBJbml0aWFsaXplcyB1dGlsaXR5IGl0ZXJhdG9ycyBhbmQgYnl0ZSBidWZmZXIgdXNlZCBieSBjb21wYXJlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXRVdGlsaXR5KGJvb2xlYW4gYWxsb2NhdGUpIHsKKyAgICAgICAgaWYgKGFsbG9jYXRlKSB7CisgICAgICAgICAgICBpZiAobV9zcmNVdGlsSXRlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fc3JjVXRpbEl0ZXJfID0gbmV3IFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobV9zcmNVdGlsSXRlcl8sIHRoaXMpOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbEl0ZXJfID0gbmV3IFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobV90Z3RVdGlsSXRlcl8sIHRoaXMpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfQ0FTRV9dOyAvLyBjYXNlCisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8xX107IC8vIHByaW1hcnkKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gbmV3IGJ5dGVbU09SVF9CVUZGRVJfSU5JVF9TSVpFXzJfXTsgLy8gc2Vjb25kYXJ5CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8zX107IC8vIHRlcnRpYXJ5CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV80X107ICAvLyBRdWF0ZXJuYXJ5CisgICAgICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfU0laRV9dOworICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX1NJWkVfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fc3JjVXRpbEl0ZXJfID0gbnVsbDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxJdGVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8gPSBudWxsOworICAgICAgICAgICAgbV91dGlsQnl0ZXMwXyA9IG51bGw7CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gbnVsbDsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBudWxsOworICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IG51bGw7CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gbnVsbDsKKyAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyXyA9IG51bGw7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlcl8gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ29uc3RzIGZvciBMYXRpbi0xIHNwZWNpYWwgcHJvY2Vzc2luZworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFTkRPRkxBVElOT05FUkFOR0VfID0gMHhGRjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5PTkVUQUJMRUxFTl8gICA9IChFTkRPRkxBVElOT05FUkFOR0VfKzUwKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQkFJTF9PVVRfQ0VfICAgICAgICA9IDB4RkYwMDAwMDA7CisKKyAgICAgLyoqCisgICAgICogR2VuZXJhdGUgbGF0aW4tMSB0YWJsZXMKKyAgICAgKi8KKworICAgIHByaXZhdGUgY2xhc3Mgc2hpZnRWYWx1ZXMgeworICAgICAgICBpbnQgcHJpbVNoaWZ0ID0gMjQ7CisgICAgICAgIGludCBzZWNTaGlmdCA9IDI0OworICAgICAgICBpbnQgdGVyU2hpZnQgPSAyNDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQKKyAgICBhZGRMYXRpbk9uZUVudHJ5KGNoYXIgY2gsIGludCBDRSwgc2hpZnRWYWx1ZXMgc2gpIHsKKyAgICAgIGludCBwcmltYXJ5MSA9IDAsIHByaW1hcnkyID0gMCwgc2Vjb25kYXJ5ID0gMCwgdGVydGlhcnkgPSAwOworICAgICAgYm9vbGVhbiByZXZlcnNlU2Vjb25kYXJ5ID0gZmFsc2U7CisgICAgICBpZighaXNDb250aW51YXRpb24oQ0UpKSB7CisgICAgICAgIHRlcnRpYXJ5ID0gKChDRSAmIG1fbWFzazNfKSk7CisgICAgICAgIHRlcnRpYXJ5IF49IG1fY2FzZVN3aXRjaF87CisgICAgICAgIHJldmVyc2VTZWNvbmRhcnkgPSB0cnVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGVydGlhcnkgPSAoYnl0ZSkoKENFICYgQ0VfUkVNT1ZFX0NPTlRJTlVBVElPTl9NQVNLXykpOworICAgICAgICB0ZXJ0aWFyeSAmPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgIHJldmVyc2VTZWNvbmRhcnkgPSBmYWxzZTsKKyAgICAgIH0KKworICAgICAgc2Vjb25kYXJ5ID0gKChDRSA+Pj49IDgpICYgTEFTVF9CWVRFX01BU0tfKTsKKyAgICAgIHByaW1hcnkyID0gICgoQ0UgPj4+PSA4KSAmIExBU1RfQllURV9NQVNLXyk7CisgICAgICBwcmltYXJ5MSA9ICAoQ0UgPj4+IDgpOworCisgICAgICBpZihwcmltYXJ5MSAhPSAwKSB7CisgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gfD0gKHByaW1hcnkxIDw8IHNoLnByaW1TaGlmdCk7CisgICAgICAgIHNoLnByaW1TaGlmdCAtPSA4OworICAgICAgfQorICAgICAgaWYocHJpbWFyeTIgIT0gMCkgeworICAgICAgICBpZihzaC5wcmltU2hpZnQgPCAwKSB7CisgICAgICAgICAgbGF0aW5PbmVDRXNfW2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGF0aW5PbmVDRXNfW2NoXSB8PSAocHJpbWFyeTIgPDwgc2gucHJpbVNoaWZ0KTsKKyAgICAgICAgc2gucHJpbVNoaWZ0IC09IDg7CisgICAgICB9CisgICAgICBpZihzZWNvbmRhcnkgIT0gMCkgeworICAgICAgICBpZihyZXZlcnNlU2Vjb25kYXJ5ICYmIG1faXNGcmVuY2hDb2xsYXRpb25fKSB7IC8vIHJldmVyc2Ugc2Vjb25kYXJ5CisgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA+Pj49IDg7IC8vIG1ha2Ugc3BhY2UgZm9yIHNlY29uZGFyeQorICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gfD0gKHNlY29uZGFyeSA8PCAyNCk7CisgICAgICAgIH0gZWxzZSB7IC8vIG5vcm1hbCBjYXNlCisgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSB8PSAoc2Vjb25kYXJ5IDw8IHNoLnNlY1NoaWZ0KTsKKyAgICAgICAgfQorICAgICAgICBzaC5zZWNTaGlmdCAtPSA4OworICAgICAgfQorICAgICAgaWYodGVydGlhcnkgIT0gMCkgeworICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gfD0gKHRlcnRpYXJ5IDw8IHNoLnRlclNoaWZ0KTsKKyAgICAgICAgc2gudGVyU2hpZnQgLT0gODsKKyAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQKKyAgICByZXNpemVMYXRpbk9uZVRhYmxlKGludCBuZXdTaXplKSB7CisgICAgICAgIGludCBuZXdUYWJsZVtdID0gbmV3IGludFszKm5ld1NpemVdOworICAgICAgICBpbnQgc2l6ZVRvQ29weSA9ICgobmV3U2l6ZTxsYXRpbk9uZVRhYmxlTGVuXyk/bmV3U2l6ZTpsYXRpbk9uZVRhYmxlTGVuXyk7CisgICAgICAgIC8vdXBydl9tZW1zZXQobmV3VGFibGUsIDAsIG5ld1NpemUqc2l6ZW9mKHVpbnQzMl90KSozKTsgLy8gYXV0b21hdGljYWxseSBjbGVhcmVkLgorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxhdGluT25lQ0VzXywgMCwgbmV3VGFibGUsIDAsIHNpemVUb0NvcHkpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxhdGluT25lQ0VzXywgbGF0aW5PbmVUYWJsZUxlbl8sIG5ld1RhYmxlLCBuZXdTaXplLCBzaXplVG9Db3B5KTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsYXRpbk9uZUNFc18sIDIqbGF0aW5PbmVUYWJsZUxlbl8sIG5ld1RhYmxlLCAyKm5ld1NpemUsIHNpemVUb0NvcHkpOworICAgICAgICBsYXRpbk9uZVRhYmxlTGVuXyA9IG5ld1NpemU7CisgICAgICAgIGxhdGluT25lQ0VzXyA9IG5ld1RhYmxlOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBzZXRVcExhdGluT25lKCkgeworICAgICAgaWYobGF0aW5PbmVDRXNfID09IG51bGwgfHwgbV9yZWFsbG9jTGF0aW5PbmVDRXNfKSB7CisgICAgICAgIGxhdGluT25lQ0VzXyA9IG5ldyBpbnRbMypMQVRJTk9ORVRBQkxFTEVOX107CisgICAgICAgIGxhdGluT25lVGFibGVMZW5fID0gTEFUSU5PTkVUQUJMRUxFTl87CisgICAgICAgIG1fcmVhbGxvY0xhdGluT25lQ0VzXyA9IGZhbHNlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgQXJyYXlzLmZpbGwobGF0aW5PbmVDRXNfLCAwKTsKKyAgICAgIH0KKyAgICAgIGlmKG1fQ29udEluZm9fID09IG51bGwpIHsKKyAgICAgICAgbV9Db250SW5mb18gPSBuZXcgQ29udHJhY3Rpb25JbmZvKCk7CisgICAgICB9CisgICAgICBjaGFyIGNoID0gMDsKKyAgICAgIC8vU3RyaW5nQnVmZmVyIHNDaCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgIC8vQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ID0gZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNDaC50b1N0cmluZygpKTsKKyAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdCA9IGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisKKyAgICAgIHNoaWZ0VmFsdWVzIHMgPSBuZXcgc2hpZnRWYWx1ZXMoKTsKKyAgICAgIGludCBDRSA9IDA7CisgICAgICBjaGFyIGNvbnRyYWN0aW9uT2Zmc2V0ID0gRU5ET0ZMQVRJTk9ORVJBTkdFXysxOworCisgICAgICBmb3IoY2ggPSAwOyBjaCA8PSBFTkRPRkxBVElOT05FUkFOR0VfOyBjaCsrKSB7CisgICAgICAgIHMucHJpbVNoaWZ0ID0gMjQ7IHMuc2VjU2hpZnQgPSAyNDsgcy50ZXJTaGlmdCA9IDI0OworICAgICAgICBpZihjaCA8IDB4MTAwKSB7CisgICAgICAgICAgQ0UgPSBtX3RyaWVfLmdldExhdGluMUxpbmVhclZhbHVlKGNoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBDRSA9IG1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICBpZihDRSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgQ0UgPSBVQ0FfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoIWlzU3BlY2lhbChDRSkpIHsKKyAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNoLCBDRSwgcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc3dpdGNoIChSdWxlQmFzZWRDb2xsYXRvci5nZXRUYWcoQ0UpKSB7CisgICAgICAgICAgY2FzZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgY2FzZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRElHSVRfVEFHXzoKKyAgICAgICAgICAgIC8vc0NoLmRlbGV0ZSgwLCBzQ2gubGVuZ3RoKCkpOworICAgICAgICAgICAgLy9zQ2guYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIC8vaXQuc2V0VGV4dChzQ2gudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpdC5zZXRUZXh0KFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIHdoaWxlKChDRSA9IGl0Lm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICBpZihzLnByaW1TaGlmdCA8IDAgfHwgcy5zZWNTaGlmdCA8IDAgfHwgcy50ZXJTaGlmdCA8IDApIHsKKyAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY2hdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY2gsIENFLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAvLyBoZXJlIGlzIHRoZSB0cmljaworICAgICAgICAgICAgLy8gRjIgaXMgY29udHJhY3Rpb24uIFdlIGRvIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIgdG8gY29udHJhY3Rpb25zCisgICAgICAgICAgICAvLyBidXQgaGF2ZSB0d28gaW5kaWNlcywgb25lIGluIHRoZSByZWFsIGNvbnRyYWN0aW9uIHRhYmxlIGFuZCB0aGUKKyAgICAgICAgICAgIC8vIG90aGVyIHRvIHdoZXJlIHdlIHN0dWZmZWQgdGhpbmdzLiBUaGlzIGhvcGVzIHRoYXQgd2UgZG9uJ3QgaGF2ZQorICAgICAgICAgICAgLy8gbWFueSBjb250cmFjdGlvbnMgKHRoaXMgc2hvdWxkIHdvcmsgZm9yIGxhdGluLTEgdGFibGVzKS4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoKENFICYgMHgwMEZGRjAwMCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaW50IFVDaGFyT2Zmc2V0ID0gKENFICYgMHhGRkZGRkYpIC0gbV9jb250cmFjdGlvbk9mZnNldF87IC8vZ2V0Q29udHJhY3Rpb25PZmZzZXQoQ0UpXQorCisgICAgICAgICAgICAgIENFIHw9IChjb250cmFjdGlvbk9mZnNldCAmIDB4RkZGKSA8PCAxMjsgLy8gaW5zZXJ0IHRoZSBvZmZzZXQgaW4gbGF0aW4tMSB0YWJsZQorCisgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gPSBDRTsKKyAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA9IENFOworICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBDRTsKKworICAgICAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBqdW1wIGludG8gY29udHJhY3Rpb24gdGFibGUsIHBpY2sgdGhlIGVsZW1lbnRzCisgICAgICAgICAgICAgIC8vIGFuZCB1c2UgdGhlbQorICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAvL0NFID0gKihjb250cmFjdGlvbkNFcyArIChVQ2hhck9mZnNldCAtIGNvbnRyYWN0aW9uSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgIENFID0gbV9jb250cmFjdGlvbkNFX1tVQ2hhck9mZnNldF07CisgICAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwoQ0UpIAorICAgICAgICAgICAgICAgICAgICAgJiYgZ2V0VGFnKENFKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGk7ICAgIC8qIGdlbmVyYWwgY291bnRlciAqLworICAgICAgICAgICAgICAgICAgICAvL3VpbnQzMl90ICpDRU9mZnNldCA9ICh1aW50MzJfdCAqKWltYWdlK2dldEV4cGFuc2lvbk9mZnNldChDRSk7IC8qIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9ICgoQ0UgJiAweEZGRkZGMCkgPj4gNCkgLSBtX2V4cGFuc2lvbk9mZnNldF87IC8vaXQuZ2V0RXhwYW5zaW9uT2Zmc2V0KHRoaXMsIENFKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBDRSAmIDB4RjsgLy8gZ2V0RXhwYW5zaW9uQ291bnQoQ0UpOworICAgICAgICAgICAgICAgICAgICAvL0NFID0gKkNFT2Zmc2V0Kys7CisgICAgICAgICAgICAgICAgICAgIGlmKHNpemUgIT0gMCkgeyAvKiBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbiwgd2UgZG9uJ3QgdGVybWluYXRlICovCisgICAgICAgICAgICAgICAgICAgICAgZm9yKGkgPSAwOyBpPHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYocy5wcmltU2hpZnQgPCAwIHx8IHMuc2VjU2hpZnQgPCAwIHx8IHMudGVyU2hpZnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0LCBtX2V4cGFuc2lvbl9bb2Zmc2V0K2ldLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8qIGVsc2UsIHdlIGRvICovCisgICAgICAgICAgICAgICAgICAgICAgd2hpbGUobV9leHBhbnNpb25fW29mZnNldF0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYocy5wcmltU2hpZnQgPCAwIHx8IHMuc2VjU2hpZnQgPCAwIHx8IHMudGVyU2hpZnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0LCBtX2V4cGFuc2lvbl9bb2Zmc2V0KytdLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25PZmZzZXQrKzsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZighaXNTcGVjaWFsKENFKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRMYXRpbk9uZUVudHJ5KGNvbnRyYWN0aW9uT2Zmc2V0KyssIENFLCBzKTsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdGlvbk9mZnNldCsrOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgVUNoYXJPZmZzZXQrKzsKKyAgICAgICAgICAgICAgICAgIHMucHJpbVNoaWZ0ID0gMjQ7IHMuc2VjU2hpZnQgPSAyNDsgcy50ZXJTaGlmdCA9IDI0OworICAgICAgICAgICAgICAgICAgaWYoY29udHJhY3Rpb25PZmZzZXQgPT0gbGF0aW5PbmVUYWJsZUxlbl8pIHsgLy8gd2UgbmVlZCB0byByZWFsbG9jYXRlCisgICAgICAgICAgICAgICAgICAgcmVzaXplTGF0aW5PbmVUYWJsZSgyKmxhdGluT25lVGFibGVMZW5fKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSB3aGlsZShtX2NvbnRyYWN0aW9uSW5kZXhfW1VDaGFyT2Zmc2V0XSAhPSAweEZGRkYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICAvLyBjb21wYWN0IHRhYmxlCisgICAgICBpZihjb250cmFjdGlvbk9mZnNldCA8IGxhdGluT25lVGFibGVMZW5fKSB7CisgICAgICAgIHJlc2l6ZUxhdGluT25lVGFibGUoY29udHJhY3Rpb25PZmZzZXQpOworICAgICAgfQorICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBjbGFzcyBDb250cmFjdGlvbkluZm8geworICAgICAgICBpbnQgaW5kZXg7CisgICAgfQorCisgICAgQ29udHJhY3Rpb25JbmZvIG1fQ29udEluZm9fOworCisgICAgcHJpdmF0ZSBpbnQKKyAgICBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKGludCBzdHJlbmd0aCwgaW50IENFLCBTdHJpbmcgcykgeworICAgIC8vaW50IHN0cmVuZ3RoLCBpbnQgQ0UsIFN0cmluZyBzLCBJbnRlZ2VyIGluZCkgeworICAgICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7CisgICAgICAvL2NvbnN0IFVDaGFyICpVQ2hhck9mZnNldCA9IChVQ2hhciAqKWNvbGwtPmltYWdlK2dldENvbnRyYWN0T2Zmc2V0KENFJjB4RkZGKTsKKyAgICAgIGludCBVQ2hhck9mZnNldCA9IChDRSAmIDB4RkZGKSAtIG1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgaW50IG9mZnNldCA9IDE7CisgICAgICBpbnQgbGF0aW5PbmVPZmZzZXQgPSAoQ0UgJiAweDAwRkZGMDAwKSA+Pj4gMTI7CisgICAgICBjaGFyIHNjaGFyID0gMCwgdGNoYXIgPSAwOworCisgICAgICBmb3IoOzspIHsKKyAgICAgICAgLyoKKyAgICAgICAgaWYobGVuID09IC0xKSB7CisgICAgICAgICAgaWYoc1sqaW5kZXhdID09IDApIHsgLy8gZW5kIG9mIHN0cmluZworICAgICAgICAgICAgcmV0dXJuKGNvbGwtPmxhdGluT25lQ0VzW3N0cmVuZ3RoKmNvbGwtPmxhdGluT25lVGFibGVMZW4rbGF0aW5PbmVPZmZzZXRdKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2NoYXIgPSBzWyppbmRleF07CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAqLworICAgICAgICAgIGlmKG1fQ29udEluZm9fLmluZGV4ID09IGxlbikgeworICAgICAgICAgICAgcmV0dXJuKGxhdGluT25lQ0VzX1tzdHJlbmd0aCpsYXRpbk9uZVRhYmxlTGVuXytsYXRpbk9uZU9mZnNldF0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzY2hhciA9IHMuY2hhckF0KG1fQ29udEluZm9fLmluZGV4KTsKKyAgICAgICAgICB9CisgICAgICAgIC8vfQorCisgICAgICAgIHdoaWxlKHNjaGFyID4gKHRjaGFyID0gbV9jb250cmFjdGlvbkluZGV4X1tVQ2hhck9mZnNldCtvZmZzZXRdLyoqKFVDaGFyT2Zmc2V0K29mZnNldCkqLykpIHsgLyogc2luY2UgdGhlIGNvbnRyYWN0aW9uIGNvZGVwb2ludHMgc2hvdWxkIGJlIG9yZGVyZWQsIHdlIHNraXAgYWxsIHRoYXQgYXJlIHNtYWxsZXIgKi8KKyAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzY2hhciA9PSB0Y2hhcikgeworICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4Kys7CisgICAgICAgICAgcmV0dXJuKGxhdGluT25lQ0VzX1tzdHJlbmd0aCpsYXRpbk9uZVRhYmxlTGVuXytsYXRpbk9uZU9mZnNldCtvZmZzZXRdKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICBpZihzY2hhciAgPiBFTkRPRkxBVElOT05FUkFOR0VfIC8qJiAweEZGMDAqLykgeworICAgICAgICAgICAgcmV0dXJuIEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gc2tpcCBjb21wbGV0ZWx5IGlnbm9yYWJsZXMKKyAgICAgICAgICBpbnQgaXNaZXJvQ0UgPSBtX3RyaWVfLmdldExlYWRWYWx1ZShzY2hhcik7IC8vVVRSSUVfR0VUMzJfRlJPTV9MRUFEKGNvbGwtPm1hcHBpbmcsIHNjaGFyKTsKKyAgICAgICAgICBpZihpc1plcm9DRSA9PSAwKSB7IC8vIHdlIGhhdmUgdG8gaWdub3JlIGNvbXBsZXRlbHkgaWdub3JhYmxlcworICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXgrKzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIHJldHVybihsYXRpbk9uZUNFc19bc3RyZW5ndGgqbGF0aW5PbmVUYWJsZUxlbl8rbGF0aW5PbmVPZmZzZXRdKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIGZhc3Qgc3RyY29sbCwgZ2VhcmVkIHRvd2FyZHMgdGV4dCBpbiBMYXRpbi0xLgorICAgICAqIEl0IHN1cHBvcnRzIGNvbnRyYWN0aW9ucyBvZiBzaXplIHR3bywgRnJlbmNoIHNlY29uZGFyaWVzCisgICAgICogYW5kIGNhc2Ugc3dpdGNoaW5nLiBZb3UgY2FuIHVzZSBpdCB3aXRoIHN0cmVuZ3RocyBwcmltYXJ5CisgICAgICogdG8gdGVydGlhcnkuIEl0IGRvZXMgbm90IHN1cHBvcnQgc2hpZnRlZCBhbmQgY2FzZSBsZXZlbC4KKyAgICAgKiBJdCByZWxpZXMgb24gdGhlIHRhYmxlIGJ1aWxkIGJ5IHNldHVwTGF0aW4xVGFibGUuIElmIGl0CisgICAgICogZG9lc24ndCB1bmRlcnN0YW5kIHNvbWV0aGluZywgaXQgd2lsbCBnbyB0byB0aGUgcmVndWxhcgorICAgICAqIHN0cmNvbGwuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQKKyAgICBjb21wYXJlVXNlTGF0aW4xKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCBzdGFydE9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBzTGVuID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdExlbiA9IHRhcmdldC5sZW5ndGgoKTsKKworICAgICAgICBpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworCisgICAgICAgIGludCBzSW5kZXggPSBzdGFydE9mZnNldCwgdEluZGV4ID0gc3RhcnRPZmZzZXQ7CisgICAgICAgIGNoYXIgc0NoYXIgPSAwLCB0Q2hhciA9IDA7CisgICAgICAgIGludCBzT3JkZXI9MCwgdE9yZGVyPTA7CisKKyAgICAgICAgYm9vbGVhbiBlbmRPZlNvdXJjZSA9IGZhbHNlOworCisgICAgICAgIC8vdWludDMyX3QgKmVsZW1lbnRzID0gY29sbC0+bGF0aW5PbmVDRXM7CisKKyAgICAgICAgYm9vbGVhbiBoYXZlQ29udHJhY3Rpb25zID0gZmFsc2U7IC8vIGlmIHdlIGhhdmUgY29udHJhY3Rpb25zIGluIG91ciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW5ub3QgZG8gRnJlbmNoIHNlY29uZGFyeQorCisgICAgICAgIGludCBvZmZzZXQgPSBsYXRpbk9uZVRhYmxlTGVuXzsKKworICAgICAgICAvLyBEbyB0aGUgcHJpbWFyeSBsZXZlbAorICAgIHByaW1Mb29wOgorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICB3aGlsZShzT3JkZXI9PTApIHsgLy8gdGhpcyBsb29wIHNraXBzIHByaW1hcnkgaWdub3JhYmxlcworICAgICAgICAgICAgLy8gc09yZGVyPWdldE5leHRsYXRpbk9uZUNFKHNvdXJjZSk7CisgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KHNJbmRleCsrKTsgLy9bc0luZGV4KytdOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICBpZihzQ2hhciA+IEVORE9GTEFUSU5PTkVSQU5HRV8pIHsgLy8gaWYgd2UgZW5jb3VudGVyIG5vbi1sYXRpbi0xLCB3ZSBiYWlsIG91dAorICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUiIpOworICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNPcmRlciA9IGxhdGluT25lQ0VzX1tzQ2hhcl07CisgICAgICAgICAgICBpZihpc1NwZWNpYWwoc09yZGVyKSkgeyAvLyBpZiB3ZSBnb3QgYSBzcGVjaWFsCisgICAgICAgICAgICAgIC8vIHNwZWNpYWxzIGNhbiBiYXNpY2FsbHkgYmUgZWl0aGVyIGNvbnRyYWN0aW9ucyBvciBiYWlsLW91dCBzaWducy4gSWYgd2UgZ2V0IGFueXRoaW5nCisgICAgICAgICAgICAgIC8vIGVsc2UsIHdlJ2xsIGJhaWwgb3V0IGFueXdhc3kKKyAgICAgICAgICAgICAgaWYoZ2V0VGFnKHNPcmRlcikgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0NPTlRSQUNUSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHNJbmRleDsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDAsIHNPcmRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgICBoYXZlQ29udHJhY3Rpb25zID0gdHJ1ZTsgLy8gaWYgdGhlcmUgYXJlIGNvbnRyYWN0aW9ucywgd2UgY2Fubm90IGRvIEZyZW5jaCBzZWNvbmRhcnkKKyAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBhcmUgY29udHJhY3Rpb25zIGluIHRoZSB0YWJsZSwgYnV0IHdlIGFsd2F5cyB1c2UganVzdCBvbmUgY2hhciwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBhYmxlIHRvIGRvIEZyZW5jaC4gVGhpcyBzaG91bGQgYmUgY2hlY2tlZCBvdXQuCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikgLyo9PSBVQ09MX0JBSUxfT1VUX0NFKi8pIHsKKyAgICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUyIpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgd2hpbGUodE9yZGVyPT0wKSB7ICAvLyB0aGlzIGxvb3Agc2tpcHMgcHJpbWFyeSBpZ25vcmFibGVzCisgICAgICAgICAgICAvLyB0T3JkZXI9Z2V0TmV4dGxhdGluT25lQ0UodGFyZ2V0KTsKKyAgICAgICAgICAgIGlmKHRJbmRleD09dExlbikgeworICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgIGJyZWFrIHByaW1Mb29wOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KHRJbmRleCsrKTsgLy9bdEluZGV4KytdOworICAgICAgICAgICAgaWYodENoYXIgPiBFTkRPRkxBVElOT05FUkFOR0VfKSB7IC8vIGlmIHdlIGVuY291bnRlciBub24tbGF0aW4tMSwgd2UgYmFpbCBvdXQKKyAgICAgICAgICAgICAgLy9mcHJpbnRmKHN0ZGVyciwgIlIiKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVSZWd1bGFyKHNvdXJjZSwgdGFyZ2V0LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0T3JkZXIgPSBsYXRpbk9uZUNFc19bdENoYXJdOworICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHRPcmRlcikpIHsKKyAgICAgICAgICAgICAgLy8gSGFuZGxpbmcgc3BlY2lhbHMsIHNlZSB0aGUgY29tbWVudHMgZm9yIHNvdXJjZQorICAgICAgICAgICAgICBpZihnZXRUYWcodE9yZGVyKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXykgeworICAgICAgICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4ID0gdEluZGV4OworICAgICAgICAgICAgICAgIHRPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMCwgdE9yZGVyLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIHRJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIGhhdmVDb250cmFjdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbCh0T3JkZXIpLyo9PSBVQ09MX0JBSUxfT1VUX0NFKi8pIHsKKyAgICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUyIpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7IC8vIHNvdXJjZSBpcyBmaW5pc2hlZCwgYnV0IHRhcmdldCBpcyBub3QsIHNheSB0aGUgcmVzdWx0LgorICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeyAvLyBpZiB3ZSBoYXZlIHNhbWUgQ0VzLCB3ZSBjb250aW51ZSB0aGUgbG9vcAorICAgICAgICAgICAgc09yZGVyID0gMDsgdE9yZGVyID0gMDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBjb21wYXJlIGN1cnJlbnQgdG9wIGJ5dGVzCisgICAgICAgICAgICBpZigoKHNPcmRlcl50T3JkZXIpJjB4RkYwMDAwMDApIT0wKSB7CisgICAgICAgICAgICAgIC8vIHRvcCBieXRlcyBkaWZmZXIsIHJldHVybiBkaWZmZXJlbmNlCisgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAvLyBpbnN0ZWFkIG9mIHJldHVybiAoaW50MzJfdCkoc09yZGVyPj4yNCktKGludDMyX3QpKHRPcmRlcj4+MjQpOworICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSBtdXN0IHJldHVybiBlbnVtIHZhbHVlCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRvcCBieXRlcyBtYXRjaCwgY29udGludWUgd2l0aCBmb2xsb3dpbmcgYnl0ZXMKKyAgICAgICAgICAgIHNPcmRlcjw8PTg7CisgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGFmdGVyIHByaW1hcnkgbG9vcCwgd2UgZGVmaW5pdGVseSBrbm93IHRoZSBzaXplcyBvZiBzdHJpbmdzLAorICAgICAgICAvLyBzbyB3ZSBzZXQgaXQgYW5kIHVzZSBzaW1wbGVyIGxvb3AgZm9yIHNlY29uZGFyaWVzIGFuZCB0ZXJ0aWFyaWVzCisgICAgICAgIC8vc0xlbiA9IHNJbmRleDsgdExlbiA9IHRJbmRleDsKKyAgICAgICAgaWYoc3RyZW5ndGggPj0gU0VDT05EQVJZKSB7CisgICAgICAgICAgLy8gYWRqdXN0IHRoZSB0YWJsZSBiZWdnaW5pbmcKKyAgICAgICAgICAvL2xhdGluT25lQ0VzXyArPSBjb2xsLT5sYXRpbk9uZVRhYmxlTGVuOworICAgICAgICAgIGVuZE9mU291cmNlID0gZmFsc2U7CisKKyAgICAgICAgICBpZighbV9pc0ZyZW5jaENvbGxhdGlvbl8pIHsgLy8gbm9uIEZyZW5jaAorICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlzIGEgc2ltcGxpZmllZCBjb3B5IG9mIHByaW1hcnkgbG9vcAorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgd2hvbGUgc3RyaW5ncyBhcmUgbGF0aW4tMSwgc28gd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciB0aGF0LiBXZSBhbHNvIGtub3cgdGhhdCB3ZSBvbmx5IGhhdmUgY29udHJhY3Rpb25zIGFzCisgICAgICAgICAgICAvLyBzcGVjaWFscy4KKyAgICAgICAgICAgIC8vc0luZGV4ID0gMDsgdEluZGV4ID0gMDsKKyAgICAgICAgICAgIHNJbmRleCA9IHN0YXJ0T2Zmc2V0OyB0SW5kZXggPSBzdGFydE9mZnNldDsKKyAgICBzZWNMb29wOgorICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgIHdoaWxlKHNPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgICAgZW5kT2ZTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNDaGFyPXNvdXJjZS5jaGFyQXQoc0luZGV4KyspOyAvL1tzSW5kZXgrK107CisgICAgICAgICAgICAgICAgc09yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCtzQ2hhcl07CisgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXggPSBzSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHNPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMSwgc09yZGVyLCBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgICBpZih0SW5kZXg9PXRMZW4pIHsKKyAgICAgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHNlY0xvb3A7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdENoYXI9dGFyZ2V0LmNoYXJBdCh0SW5kZXgrKyk7IC8vW3RJbmRleCsrXTsKKyAgICAgICAgICAgICAgICB0T3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3RDaGFyXTsKKyAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwodE9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgdE9yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigxLCB0T3JkZXIsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIHRJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeworICAgICAgICAgICAgICAgIHNPcmRlciA9IDA7IHRPcmRlciA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc2VlIHByaW1hcnkgbG9vcCBmb3IgY29tbWVudHMgb24gdGhpcworICAgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhGRjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfSBlbHNlIHsgLy8gRnJlbmNoCisgICAgICAgICAgICBpZihoYXZlQ29udHJhY3Rpb25zKSB7IC8vIGlmIHdlIGhhdmUgY29udHJhY3Rpb25zLCB3ZSBoYXZlIHRvIGJhaWwgb3V0CisgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IHJlYWxseSBrbm93IGhvdyB0byBoYW5kbGUgdGhlbSBoZXJlCisgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRm9yIEZyZW5jaCwgd2UgZ28gYmFja3dhcmRzCisgICAgICAgICAgICBzSW5kZXggPSBzTGVuOyB0SW5kZXggPSB0TGVuOworICAgIHNlY0ZMb29wOgorICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgIHdoaWxlKHNPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHNJbmRleD09c3RhcnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KC0tc0luZGV4KTsgLy9bLS1zSW5kZXhdOworICAgICAgICAgICAgICAgIHNPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrc0NoYXJdOworICAgICAgICAgICAgICAgIC8vIGRvbid0IGV2ZW4gbG9vayBmb3IgY29udHJhY3Rpb25zCisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgICBpZih0SW5kZXg9PXN0YXJ0T2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICBicmVhayBzZWNGTG9vcDsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KC0tdEluZGV4KTsgLy9bLS10SW5kZXhdOworICAgICAgICAgICAgICAgIHRPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrdENoYXJdOworICAgICAgICAgICAgICAgIC8vIGRvbid0IGV2ZW4gbG9vayBmb3IgY29udHJhY3Rpb25zCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGlmKHNPcmRlciA9PSB0T3JkZXIpIHsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSAwOyB0T3JkZXIgPSAwOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHNlZSB0aGUgcHJpbWFyeSBsb29wIGZvciBjb21tZW50cworICAgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhGRjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgICAgICB0T3JkZXI8PD04OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYoc3RyZW5ndGggPj0gVEVSVElBUlkpIHsKKyAgICAgICAgICAvLyB0ZXJ0aWFyeSBsb29wIGlzIHRoZSBzYW1lIGFzIHNlY29uZGFyeSAoZXhjZXB0IG5vIEZyZW5jaCkKKyAgICAgICAgICBvZmZzZXQgKz0gbGF0aW5PbmVUYWJsZUxlbl87CisgICAgICAgICAgLy9zSW5kZXggPSAwOyB0SW5kZXggPSAwOworICAgICAgICAgIHNJbmRleCA9IHN0YXJ0T2Zmc2V0OyB0SW5kZXggPSBzdGFydE9mZnNldDsKKyAgICAgICAgICBlbmRPZlNvdXJjZSA9IGZhbHNlOworICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgd2hpbGUoc09yZGVyPT0wKSB7CisgICAgICAgICAgICAgIGlmKHNJbmRleD09c0xlbikgeworICAgICAgICAgICAgICAgIGVuZE9mU291cmNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzQ2hhcj1zb3VyY2UuY2hhckF0KHNJbmRleCsrKTsgLy9bc0luZGV4KytdOworICAgICAgICAgICAgICBzT3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3NDaGFyXTsKKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHNPcmRlcikpIHsKKyAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHNJbmRleDsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDIsIHNPcmRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAgICBzSW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUodE9yZGVyPT0wKSB7CisgICAgICAgICAgICAgIGlmKHRJbmRleD09dExlbikgeworICAgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLy8gaWYgYm90aCBzdHJpbmdzIGFyZSBhdCB0aGUgZW5kLCB0aGV5IGFyZSBlcXVhbAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgdENoYXI9dGFyZ2V0LmNoYXJBdCh0SW5kZXgrKyk7IC8vW3RJbmRleCsrXTsKKyAgICAgICAgICAgICAgdE9yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCt0Q2hhcl07CisgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbCh0T3JkZXIpKSB7CisgICAgICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXggPSB0SW5kZXg7CisgICAgICAgICAgICAgICAgdE9yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigyLCB0T3JkZXIsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgdEluZGV4ID0gbV9Db250SW5mb18uaW5kZXg7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeworICAgICAgICAgICAgICBzT3JkZXIgPSAwOyB0T3JkZXIgPSAwOworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhmZjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgICBpZihzT3JkZXIgPj4+IDggPCB0T3JkZXIgPj4+IDgpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHNPcmRlcjw8PTg7CisgICAgICAgICAgICAgIHRPcmRlcjw8PTg7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvKiogCisgICAgICogR2V0IHRoZSB2ZXJzaW9uIG9mIHRoaXMgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKSB7CisgICAgICAgIC8qIFJ1blRpbWUgdmVyc2lvbiAgKi8KKyAgICAgICAgaW50IHJ0VmVyc2lvbiA9IFZlcnNpb25JbmZvLlVDT0xfUlVOVElNRV9WRVJTSU9OLmdldE1ham9yKCk7CisgICAgICAgIC8qIEJ1aWxkZXIgdmVyc2lvbiovCisgICAgICAgIGludCBiZFZlcnNpb24gPSBtX3ZlcnNpb25fLmdldE1ham9yKCk7CisKKyAgICAgICAgLyogQ2hhcnNldCBWZXJzaW9uLiBOZWVkIHRvIGdldCB0aGUgdmVyc2lvbiBmcm9tIGNudiBmaWxlcworICAgICAgICAgKiBtYWtlY29udiBzaG91bGQgcG9wdWxhdGUgY252IGZpbGVzIHdpdGggdmVyc2lvbiBhbmQKKyAgICAgICAgICogYW4gYXBpIGhhcyB0byBiZSBwcm92aWRlZCBpbiB1Y252LmggdG8gb2J0YWluIHRoaXMgdmVyc2lvbgorICAgICAgICAgKi8KKyAgICAgICAgaW50IGNzVmVyc2lvbiA9IDA7CisKKyAgICAgICAgLyogY29tYmluZSB0aGUgdmVyc2lvbiBpbmZvICovCisgICAgICAgIGludCBjbWJWZXJzaW9uID0gKChydFZlcnNpb248PDExKSB8IChiZFZlcnNpb248PDYpIHwgKGNzVmVyc2lvbikpICYgMHhGRkZGOworICAgICAgICAKKyAgICAgICAgLyogVGFpbG9yaW5nIHJ1bGVzICovCisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShjbWJWZXJzaW9uPj44LCAKKyAgICAgICAgICAgICAgICBjbWJWZXJzaW9uICYgMHhGRiwgCisgICAgICAgICAgICAgICAgbV92ZXJzaW9uXy5nZXRNaW5vcigpLCAKKyAgICAgICAgICAgICAgICBVQ0FfLm1fVUNBX3ZlcnNpb25fLmdldE1ham9yKCkpOworCisvLyAgICAgICAgdmVyc2lvbkluZm9bMF0gPSAodWludDhfdCkoY21iVmVyc2lvbj4+OCk7CisvLyAgICAgICAgdmVyc2lvbkluZm9bMV0gPSAodWludDhfdCljbWJWZXJzaW9uOworLy8gICAgICAgIHZlcnNpb25JbmZvWzJdID0gY29sbC0+aW1hZ2UtPnZlcnNpb25bMV07CisvLyAgICAgICAgdmVyc2lvbkluZm9bM10gPSBjb2xsLT5VQ0EtPmltYWdlLT5VQ0FWZXJzaW9uWzBdOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogR2V0IHRoZSBVQ0EgdmVyc2lvbiBvZiB0aGlzIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2ZXJzaW9uIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRVQ0FWZXJzaW9uKCkgeworICAgICAgICByZXR1cm4gVUNBXy5tX1VDQV92ZXJzaW9uXzsKKyAgICB9CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIG1fcmVhbGxvY0xhdGluT25lQ0VzXzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2I4Y2Y0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTcyNiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8vaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworCisvKioKKyAqIDxwPkEgY2xhc3MgdGhhdCBmb3JtYXRzIG51bWJlcnMgYWNjb3JkaW5nIHRvIGEgc2V0IG9mIHJ1bGVzLiBUaGlzIG51bWJlciBmb3JtYXR0ZXIgaXMKKyAqIHR5cGljYWxseSB1c2VkIGZvciBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gd29yZHMgKGUuZy4sIDI1LDM0NzYgYXMKKyAqICZxdW90O3R3ZW50eS1maXZlIHRob3VzYW5kIHRocmVlIGh1bmRyZWQgc2V2ZW50eS1zaXgmcXVvdDsgb3IgJnF1b3Q7dmluZ3QtY2lucSBtaWxsZSB0cm9pcworICogY2VudHMgc29peGFudGUtc2VpemUmcXVvdDsgb3IKKyAqICZxdW90O2Z1bmZ1bmR6d2FuemlndGF1c2VuZGRyZWlodW5kZXJ0c2VjaHN1bmRzaWViemlnJnF1b3Q7KSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yCisgKiBvdGhlciBjb21wbGljYXRlZCBmb3JtYXR0aW5nIHRhc2tzLCBzdWNoIGFzIGZvcm1hdHRpbmcgYSBudW1iZXIgb2Ygc2Vjb25kcyBhcyBob3VycywKKyAqIG1pbnV0ZXMgYW5kIHNlY29uZHMgKGUuZy4sIDMsNzMwIGFzICZxdW90OzE6MDI6MTAmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UaGUgcmVzb3VyY2VzIGNvbnRhaW4gdGhyZWUgcHJlZGVmaW5lZCBmb3JtYXR0ZXJzIGZvciBlYWNoIGxvY2FsZTogc3BlbGxvdXQsIHdoaWNoCisgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgKDEyMyBpcyAmcXVvdDtvbmUgaHVuZHJlZCB0d2VudHktdGhyZWUmcXVvdDspOyBvcmRpbmFsLCB3aGljaAorICogYXBwZW5kcyBhbiBvcmRpbmFsIHN1ZmZpeCB0byB0aGUgZW5kIG9mIGEgbnVtZXJhbCAoMTIzIGlzICZxdW90OzEyM3JkJnF1b3Q7KTsgYW5kCisgKiBkdXJhdGlvbiwgd2hpY2ggc2hvd3MgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyAoMTIzIGlzCisgKiAmcXVvdDsyOjAzJnF1b3Q7KS4mbmJzcDsgVGhlIGNsaWVudCBjYW4gYWxzbyBkZWZpbmUgbW9yZSBzcGVjaWFsaXplZCA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD5zCisgKiBieSBzdXBwbHlpbmcgcHJvZ3JhbW1lci1kZWZpbmVkIHJ1bGUgc2V0cy48L3A+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGEgPHR0PlJ1bGVCYXNlZE51bWJlckZvcm1hdDwvdHQ+IGlzIHNwZWNpZmllZCBieSBhIHRleHR1YWwgZGVzY3JpcHRpb24KKyAqIHRoYXQgaXMgZWl0aGVyIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IgYXMgYSA8dHQ+U3RyaW5nPC90dD4gb3IgbG9hZGVkIGZyb20gYSByZXNvdXJjZQorICogYnVuZGxlLiBJbiBpdHMgc2ltcGxlc3QgZm9ybSwgdGhlIGRlc2NyaXB0aW9uIGNvbnNpc3RzIG9mIGEgc2VtaWNvbG9uLWRlbGltaXRlZCBsaXN0IG9mIDxlbT5ydWxlcy48L2VtPgorICogRWFjaCBydWxlIGhhcyBhIHN0cmluZyBvZiBvdXRwdXQgdGV4dCBhbmQgYSB2YWx1ZSBvciByYW5nZSBvZiB2YWx1ZXMgaXQgaXMgYXBwbGljYWJsZSB0by4KKyAqIEluIGEgdHlwaWNhbCBzcGVsbG91dCBydWxlIHNldCwgdGhlIGZpcnN0IHR3ZW50eSBydWxlcyBhcmUgdGhlIHdvcmRzIGZvciB0aGUgbnVtYmVycyBmcm9tCisgKiAwIHRvIDE5OjwvcD4KKyAqCisgKiA8cHJlPnplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7CisgKiB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47IHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuOzwvcHJlPgorICoKKyAqIDxwPkZvciBsYXJnZXIgbnVtYmVycywgd2UgY2FuIHVzZSB0aGUgcHJlY2VkaW5nIHNldCBvZiBydWxlcyB0byBmb3JtYXQgdGhlIG9uZXMgcGxhY2UsIGFuZAorICogd2Ugb25seSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTA6PC9wPgorICoKKyAqIDxwcmU+MjA6IHR3ZW50eVstJmd0OyZndDtdOworICogMzA6IHRoaXJ0eXstJmd0OyZndDtdOworICogNDA6IGZvcnR5Wy0mZ3Q7Jmd0O107CisgKiA1MDogZmlmdHlbLSZndDsmZ3Q7XTsKKyAqIDYwOiBzaXh0eVstJmd0OyZndDtdOworICogNzA6IHNldmVudHlbLSZndDsmZ3Q7XTsKKyAqIDgwOiBlaWdodHlbLSZndDsmZ3Q7XTsKKyAqIDkwOiBuaW5ldHlbLSZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5JbiB0aGVzZSBydWxlcywgdGhlIDxlbT5iYXNlIHZhbHVlPC9lbT4gaXMgc3BlbGxlZCBvdXQgZXhwbGljaXRseSBhbmQgc2V0IG9mZiBmcm9tIHRoZQorICogcnVsZSdzIG91dHB1dCB0ZXh0IHdpdGggYSBjb2xvbi4gVGhlIHJ1bGVzIGFyZSBpbiBhIHNvcnRlZCBsaXN0LCBhbmQgYSBydWxlIGlzIGFwcGxpY2FibGUKKyAqIHRvIGFsbCBudW1iZXJzIGZyb20gaXRzIG93biBiYXNlIHZhbHVlIHRvIG9uZSBsZXNzIHRoYW4gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUuIFRoZQorICogJnF1b3Q7Jmd0OyZndDsmcXVvdDsgdG9rZW4gaXMgY2FsbGVkIGEgPGVtPnN1YnN0aXR1dGlvbjwvZW0+IGFuZCB0ZWxscyB0aGUgZm9tYXR0ZXIgdG8KKyAqIGlzb2xhdGUgdGhlIG51bWJlcidzIG9uZXMgZGlnaXQsIGZvcm1hdCBpdCB1c2luZyB0aGlzIHNhbWUgc2V0IG9mIHJ1bGVzLCBhbmQgcGxhY2UgdGhlCisgKiByZXN1bHQgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSAmcXVvdDsmZ3Q7Jmd0OyZxdW90OyB0b2tlbi4gVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmCisgKiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwICh0aGUgaHlwaGVuIGlzIGEgbGl0ZXJhbCBoeXBoZW47IDI0CisgKiBpcyAmcXVvdDt0d2VudHktZm91ciwmcXVvdDsgbm90ICZxdW90O3R3ZW50eSBmb3VyJnF1b3Q7KS48L3A+CisgKgorICogPHA+Rm9yIGV2ZW4gbGFyZ2VyIG51bWJlcnMsIHdlIGNhbiBhY3R1YWxseSBsb29rIHVwIHNldmVyYWwgcGFydHMgb2YgdGhlIG51bWJlciBpbiB0aGUKKyAqIGxpc3Q6PC9wPgorICoKKyAqIDxwcmU+MTAwOiAmbHQ7Jmx0OyBodW5kcmVkWyAmZ3Q7Jmd0O107PC9wcmU+CisgKgorICogPHA+VGhlICZxdW90OyZsdDsmbHQ7JnF1b3Q7IHJlcHJlc2VudHMgYSBuZXcga2luZCBvZiBzdWJzdGl0dXRpb24uIFRoZSAmbHQ7Jmx0OyBpc29sYXRlcworICogdGhlIGh1bmRyZWRzIGRpZ2l0IChhbmQgYW55IGRpZ2l0cyB0byBpdHMgbGVmdCksIGZvcm1hdHMgaXQgdXNpbmcgdGhpcyBzYW1lIHJ1bGUgc2V0LCBhbmQKKyAqIHBsYWNlcyB0aGUgcmVzdWx0IHdoZXJlIHRoZSAmcXVvdDsmbHQ7Jmx0OyZxdW90OyB3YXMuIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YKKyAqICZndDsmZ3Q7IGhhcyBjaGFuZ2VkOiBpdCBub3cgcmVmZXJzIHRvIGJvdGggdGhlIHRlbnMgYW5kIHRoZSBvbmVzIGRpZ2l0cy4gVGhlIG1lYW5pbmcgb2YKKyAqIGJvdGggc3Vic3RpdHV0aW9ucyBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIGJhc2UgdmFsdWUgZGV0ZXJtaW5lcyB0aGUgcnVsZSdzIDxlbT5kaXZpc29yLDwvZW0+CisgKiB3aGljaCBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZSAodGhlIHVzZXIKKyAqIGNhbiBjaGFuZ2UgdGhpcykuIFRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbnMsIHRoZSBmb3JtYXR0ZXIgZGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nCisgKiBmb3JtYXR0ZWQgYnkgdGhlIGRpdmlzb3IuIFRoZSBpbnRlZ3JhbCBxdW90aWVudCBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlICZsdDsmbHQ7CisgKiBzdWJzdGl0dXRpb24sIGFuZCB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgJmd0OyZndDsgc3Vic3RpdHV0aW9uLiBUaGUgbWVhbmluZworICogb2YgdGhlIGJyYWNrZXRzIGNoYW5nZXMgc2ltaWxhcmx5OiB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nCisgKiBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuIFRoZSBydWxlcyBhcmUgYXBwbGllZCByZWN1cnNpdmVseSwgc28KKyAqIGlmIGEgc3Vic3RpdHV0aW9uIGlzIGZpbGxlZCBpbiB3aXRoIHRleHQgdGhhdCBpbmNsdWRlcyBhbm90aGVyIHN1YnN0aXR1dGlvbiwgdGhhdAorICogc3Vic3RpdHV0aW9uIGlzIGFsc28gZmlsbGVkIGluLjwvcD4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgY292ZXJzIHZhbHVlcyB1cCB0byA5OTksIGF0IHdoaWNoIHBvaW50IHdlIGFkZCBhbm90aGVyIHJ1bGU6PC9wPgorICoKKyAqIDxwcmU+MTAwMDogJmx0OyZsdDsgdGhvdXNhbmRbICZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5BZ2FpbiwgdGhlIG1lYW5pbmdzIG9mIHRoZSBicmFja2V0cyBhbmQgc3Vic3RpdHV0aW9uIHRva2VucyBzaGlmdCBiZWNhdXNlIHRoZSBydWxlJ3MKKyAqIGJhc2UgdmFsdWUgaXMgYSBoaWdoZXIgcG93ZXIgb2YgMTAsIGNoYW5naW5nIHRoZSBydWxlJ3MgZGl2aXNvci4gVGhpcyBydWxlIGNhbiBhY3R1YWxseSBiZQorICogdXNlZCBhbGwgdGhlIHdheSB1cCB0byA5OTksOTk5LiBUaGlzIGFsbG93cyB1cyB0byBmaW5pc2ggb3V0IHRoZSBydWxlcyBhcyBmb2xsb3dzOjwvcD4KKyAqCisgKiA8cHJlPjEsMDAwLDAwMDogJmx0OyZsdDsgbWlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMDogJmx0OyZsdDsgYmlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMCwwMDA6ICZsdDsmbHQ7IHRyaWxsaW9uWyAmZ3Q7Jmd0O107CisgKiAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6IE9VVCBPRiBSQU5HRSE7PC9wcmU+CisgKgorICogPHA+Q29tbWFzLCBwZXJpb2RzLCBhbmQgc3BhY2VzIGNhbiBiZSB1c2VkIGluIHRoZSBiYXNlIHZhbHVlcyB0byBpbXByb3ZlIGxlZ2liaWxpdHkgYW5kCisgKiBhcmUgaWdub3JlZCBieSB0aGUgcnVsZSBwYXJzZXIuIFRoZSBsYXN0IHJ1bGUgaW4gdGhlIGxpc3QgaXMgY3VzdG9tYXJpbHkgdHJlYXRlZCBhcyBhbgorICogJnF1b3Q7b3ZlcmZsb3cgcnVsZSwmcXVvdDsgYXBwbHlpbmcgdG8gZXZlcnl0aGluZyBmcm9tIGl0cyBiYXNlIHZhbHVlIG9uIHVwLCBhbmQgb2Z0ZW4gKGFzCisgKiBpbiB0aGlzIGV4YW1wbGUpIGJlaW5nIHVzZWQgdG8gcHJpbnQgb3V0IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZGVmYXVsdCByZXByZXNlbnRhdGlvbi4KKyAqIE5vdGljZSBhbHNvIHRoYXQgdGhlIHNpemUgb2YgdGhlIG1ham9yIGdyb3VwaW5ncyBpbiBsYXJnZSBudW1iZXJzIGlzIGNvbnRyb2xsZWQgYnkgdGhlCisgKiBzcGFjaW5nIG9mIHRoZSBydWxlczogYmVjYXVzZSBpbiBFbmdsaXNoIHdlIGdyb3VwIG51bWJlcnMgYnkgdGhvdXNhbmQsIHRoZSBoaWdoZXIgcnVsZXMKKyAqIGFyZSBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEsMDAwLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoZXNlIHJ1bGVzIGFjdHVhbGx5IHdvcmsgaW4gcHJhY3RpY2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKKyAqIEZvcm1hdHRpbmcgMjUsNDMwIHdpdGggdGhpcyBydWxlIHNldCB3b3VsZCB3b3JrIGxpa2UgdGhpczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYzMCI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+PHN0cm9uZz4mbHQ7Jmx0OyB0aG91c2FuZCAmZ3Q7Jmd0Ozwvc3Ryb25nPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bdGhlIHJ1bGUgd2hvc2UgYmFzZSB2YWx1ZSBpcyAxLDAwMCBpcyBhcHBsaWNhYmxlIHRvIDI1LDM0MF08L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIyMSI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjI1NyIgdmFsaWduPSJ0b3AiPjxzdHJvbmc+dHdlbnR5LSZndDsmZ3Q7PC9zdHJvbmc+IHRob3VzYW5kICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlsyNSwzNDAgb3ZlciAxLDAwMCBpcyAyNS4gVGhlIHJ1bGUgZm9yIDIwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LTxzdHJvbmc+Zml2ZTwvc3Ryb25nPiB0aG91c2FuZCAmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bMjUgbW9kIDEwIGlzIDUuIFRoZSBydWxlIGZvciA1IGlzICZxdW90O2ZpdmUuJnF1b3Q7PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMjEiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyNTciIHZhbGlnbj0idG9wIj50d2VudHktZml2ZSB0aG91c2FuZCA8c3Ryb25nPiZsdDsmbHQ7IGh1bmRyZWQgJmd0OyZndDs8L3N0cm9uZz48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMzQwIiB2YWxpZ249InRvcCI+WzI1LDM0MCBtb2QgMSwwMDAgaXMgMzQwLiBUaGUgcnVsZSBmb3IgMTAwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgPHN0cm9uZz50aHJlZTwvc3Ryb25nPiBodW5kcmVkICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgb3ZlciAxMDAgaXMgMy4gVGhlIHJ1bGUgZm9yIDMgaXMgJnF1b3Q7dGhyZWUuJnF1b3Q7XTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCA8c3Ryb25nPmZvcnR5PC9zdHJvbmc+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgbW9kIDEwMCBpcyA0MC4gVGhlIHJ1bGUgZm9yIDQwIGFwcGxpZXMuIFNpbmNlIDQwIGRpdmlkZXMKKyAqICAgICBldmVubHkgYnkgMTAsIHRoZSBoeXBoZW4gYW5kIHN1YnN0aXR1dGlvbiBpbiB0aGUgYnJhY2tldHMgYXJlIG9taXR0ZWQuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBhYm92ZSBzeW50YXggc3VmZmljZXMgb25seSB0byBmb3JtYXQgcG9zaXRpdmUgaW50ZWdlcnMuIFRvIGZvcm1hdCBuZWdhdGl2ZSBudW1iZXJzLAorICogd2UgYWRkIGEgc3BlY2lhbCBydWxlOjwvcD4KKyAqCisgKiA8cHJlPi14OiBtaW51cyAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIGlzIGNhbGxlZCBhIDxlbT5uZWdhdGl2ZS1udW1iZXIgcnVsZSw8L2VtPiBhbmQgaXMgaWRlbnRpZmllZCBieSAmcXVvdDsteCZxdW90OworICogd2hlcmUgdGhlIGJhc2UgdmFsdWUgd291bGQgYmUuIFRoaXMgcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBhbGwgbmVnYXRpdmUgbnVtYmVycy4gdGhlCisgKiAmZ3Q7Jmd0OyB0b2tlbiBoZXJlIG1lYW5zICZxdW90O2ZpbmQgdGhlIG51bWJlcidzIGFic29sdXRlIHZhbHVlLCBmb3JtYXQgaXQgd2l0aCB0aGVzZQorICogcnVsZXMsIGFuZCBwdXQgdGhlIHJlc3VsdCBoZXJlLiZxdW90OzwvcD4KKyAqCisgKiA8cD5XZSBhbHNvIGFkZCBhIHNwZWNpYWwgcnVsZSBjYWxsZWQgYSA8ZW0+ZnJhY3Rpb24gcnVsZSA8L2VtPmZvciBudW1iZXJzIHdpdGggZnJhY3Rpb25hbAorICogcGFydHM6PC9wPgorICoKKyAqIDxwcmU+eC54OiAmbHQ7Jmx0OyBwb2ludCAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgaXMgdXNlZCBmb3IgYWxsIHBvc2l0aXZlIG5vbi1pbnRlZ2VycyAobmVnYXRpdmUgbm9uLWludGVnZXJzIHBhc3MgdGhyb3VnaCB0aGUKKyAqIG5lZ2F0aXZlLW51bWJlciBydWxlIGZpcnN0IGFuZCB0aGVuIHRocm91Z2ggdGhpcyBydWxlKS4gSGVyZSwgdGhlICZsdDsmbHQ7IHRva2VuIHJlZmVycyB0bworICogdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQsIGFuZCB0aGUgJmd0OyZndDsgdG8gdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydC4gVGhlCisgKiBmcmFjdGlvbmFsIHBhcnQgaXMgZm9ybWF0dGVkIGFzIGEgc2VyaWVzIG9mIHNpbmdsZS1kaWdpdCBudW1iZXJzIChlLmcuLCAxMjMuNDU2IHdvdWxkIGJlCisgKiBmb3JtYXR0ZWQgYXMgJnF1b3Q7b25lIGh1bmRyZWQgdHdlbnR5LXRocmVlIHBvaW50IGZvdXIgZml2ZSBzaXgmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoaXMgcnVsZSBzeW50YXggaXMgYXBwbGllZCB0byB2YXJpb3VzIGxhbmd1YWdlcywgZXhhbWluZSB0aGUgcmVzb3VyY2UgZGF0YS48L3A+CisgKgorICogPHA+VGhlcmUgaXMgYWN0dWFsbHkgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGJ1aWx0IGludG8gdGhlIHJ1bGUgbGFuZ3VhZ2UgdGhhbiB0aGUKKyAqIGRlc2NyaXB0aW9uIGFib3ZlIHNob3dzLiBBIGZvcm1hdHRlciBtYXkgb3duIG11bHRpcGxlIHJ1bGUgc2V0cywgd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5CisgKiB0aGUgY2FsbGVyLCBhbmQgd2hpY2ggY2FuIHVzZSBlYWNoIG90aGVyIHRvIGZpbGwgaW4gdGhlaXIgc3Vic3RpdHV0aW9ucy4gU3Vic3RpdHV0aW9ucyBjYW4KKyAqIGFsc28gYmUgZmlsbGVkIGluIHdpdGggZGlnaXRzLCB1c2luZyBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LiBUaGVyZSBpcyBzeW50YXggdGhhdCBjYW4gYmUKKyAqIHVzZWQgdG8gYWx0ZXIgYSBydWxlJ3MgZGl2aXNvciBpbiB2YXJpb3VzIHdheXMuIEFuZCB0aGVyZSBpcyBwcm92aXNpb24gZm9yIG11Y2ggbW9yZQorICogZmxleGlibGUgZnJhY3Rpb24gaGFuZGxpbmcuIEEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUgc3ludGF4IGZvbGxvd3M6PC9wPgorICoKKyAqIDxocj4KKyAqCisgKiA8cD5UaGUgZGVzY3JpcHRpb24gb2YgYSA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD4ncyBiZWhhdmlvciBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSA8ZW0+cnVsZQorICogc2V0cy48L2VtPiBFYWNoIHJ1bGUgc2V0IGNvbnNpc3RzIG9mIGEgbmFtZSwgYSBjb2xvbiwgYW5kIGEgbGlzdCBvZiA8ZW0+cnVsZXMuPC9lbT4gQSBydWxlCisgKiBzZXQgbmFtZSBtdXN0IGJlZ2luIHdpdGggYSAlIHNpZ24uIFJ1bGUgc2V0cyB3aXRoIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIHNpbmdsZSAlIHNpZ24KKyAqIGFyZSA8ZW0+cHVibGljOjwvZW0+IHRoZSBjYWxsZXIgY2FuIHNwZWNpZnkgdGhhdCB0aGV5IGJlIHVzZWQgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzLgorICogUnVsZSBzZXRzIHdpdGggbmFtZXMgdGhhdCBiZWdpbiB3aXRoICUlIGFyZSA8ZW0+cHJpdmF0ZTo8L2VtPiB0aGV5IGV4aXN0IG9ubHkgZm9yIHRoZSB1c2UKKyAqIG9mIG90aGVyIHJ1bGUgc2V0cy4gSWYgYSBmb3JtYXR0ZXIgb25seSBoYXMgb25lIHJ1bGUgc2V0LCB0aGUgbmFtZSBtYXkgYmUgb21pdHRlZC48L3A+CisgKgorICogPHA+VGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHNwZWNpYWwgJnF1b3Q7cnVsZSBzZXQmcXVvdDsgbmFtZWQgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+LgorICogVGhlIGJvZHkgb2YgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+IGlzbid0IGEgc2V0IG9mIG51bWJlci1mb3JtYXR0aW5nIHJ1bGVzLCBidXQgYSA8dHQ+UnVsZUJhc2VkQ29sbGF0b3I8L3R0PgorICogZGVzY3JpcHRpb24gd2hpY2ggaXMgdXNlZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzIGZvciBsZW5pZW50IHBhcnNpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uCisgKiBvbiB0aGUgc3ludGF4LCBzZWUgPHR0PlJ1bGVCYXNlZENvbGxhdG9yPC90dD4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGxlbmllbnQgcGFyc2luZywKKyAqIHNlZSA8dHQ+c2V0TGVuaWVudFBhcnNlKCk8L3R0Pi4gPGVtPk5vdGU6PC9lbT4gc3ltYm9scyB0aGF0IGhhdmUgc3ludGFjdGljIG1lYW5pbmcKKyAqIGluIGNvbGxhdGlvbiBydWxlcywgc3VjaCBhcyAnJmFtcDsnLCBoYXZlIG5vIHBhcnRpY3VsYXIgbWVhbmluZyB3aGVuIGFwcGVhcmluZyBvdXRzaWRlCisgKiBvZiB0aGUgPHR0PmxlbmllbnQtcGFyc2U8L3R0PiBydWxlIHNldC48L3A+CisgKgorICogPHA+VGhlIGJvZHkgb2YgYSBydWxlIHNldCBjb25zaXN0cyBvZiBhbiBvcmRlcmVkLCBzZW1pY29sb24tZGVsaW1pdGVkIGxpc3Qgb2YgPGVtPnJ1bGVzLjwvZW0+CisgKiBJbnRlcm5hbGx5LCBldmVyeSBydWxlIGhhcyBhIGJhc2UgdmFsdWUsIGEgZGl2aXNvciwgcnVsZSB0ZXh0LCBhbmQgemVybywgb25lLCBvciB0d28gPGVtPnN1YnN0aXR1dGlvbnMuPC9lbT4KKyAqIFRoZXNlIHBhcmFtZXRlcnMgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGRlc2NyaXB0aW9uIHN5bnRheCwgd2hpY2ggY29uc2lzdHMgb2YgYSA8ZW0+cnVsZQorICogZGVzY3JpcHRvciw8L2VtPiBhIGNvbG9uLCBhbmQgYSA8ZW0+cnVsZSBib2R5LjwvZW0+PC9wPgorICoKKyAqIDxwPkEgcnVsZSBkZXNjcmlwdG9yIGNhbiB0YWtlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvcm1zICh0ZXh0IGluIDxlbT5pdGFsaWNzPC9lbT4gaXMgdGhlCisgKiBuYW1lIG9mIGEgdG9rZW4pOjwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT46PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+IHNwZWNpZmllcyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuIDxlbT5idjwvZW0+IGlzIGEgZGVjaW1hbAorICogICAgIG51bWJlciBleHByZXNzZWQgdXNpbmcgQVNDSUkgZGlnaXRzLiA8ZW0+YnY8L2VtPiBtYXkgY29udGFpbiBzcGFjZXMsIHBlcmlvZCwgYW5kIGNvbW1hcywKKyAqICAgICB3aGljaCBhcmUgaXJnbm9yZWQuIFRoZSBydWxlJ3MgZGl2aXNvciBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAqICAgICB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+LzxlbT5yYWQ8L2VtPjo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIHJ1bGUncyBkaXZpc29yIGlzIHRoZQorICogICAgIGhpZ2hlc3QgcG93ZXIgb2YgPGVtPnJhZDwvZW0+IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+Jmd0Ozo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVG8gY2FsY3VsYXRlIHRoZSBkaXZpc29yLAorICogICAgIGxldCB0aGUgcmFkaXggYmUgMTAsIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQgeWllbGRzIGEKKyAqICAgICByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgYmFzZSB2YWx1ZQorICogICAgIGRlY3JlYXNlcyB0aGUgZXhwb25lbnQgYnkgMS4gSWYgdGhlIGV4cG9uZW50IGlzIHBvc2l0aXZlIG9yIDAsIHRoZSBkaXZpc29yIGlzIHRoZSByYWRpeAorICogICAgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50OyBvdGhlcndpc2UsIHRoZSBkaXZpc29yIGlzIDEuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPi88ZW0+cmFkPC9lbT4mZ3Q7OjwvdGQ+CisgKiAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPiBzcGVjaWZpZXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBUbyBjYWxjdWxhdGUgdGhlIGRpdmlzb3IsCisgKiAgICAgbGV0IHRoZSByYWRpeCBiZSA8ZW0+cmFkPC9lbT4sIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQKKyAqICAgICB5aWVsZHMgYSByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgcmFkaXgKKyAqICAgICBkZWNyZWFzZXMgdGhlIGV4cG9uZW50IGJ5IDEuIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSBvciAwLCB0aGUgZGl2aXNvciBpcyB0aGUgcmFkaXgKKyAqICAgICByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbmVudDsgb3RoZXJ3aXNlLCB0aGUgZGl2aXNvciBpcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+LXg6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54Lng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGFuIDxlbT5pbXByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj4wLng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPnByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54LjA6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPm1hc3RlciBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+bm90aGluZzwvZW0+PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPklmIHRoZSBydWxlJ3MgcnVsZSBkZXNjcmlwdG9yIGlzIGxlZnQgb3V0LCB0aGUgYmFzZSB2YWx1ZSBpcyBvbmUgcGx1cyB0aGUKKyAqICAgICBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgKG9yIHplcm8gaWYgdGhpcyBpcyB0aGUgZmlyc3QgcnVsZSBpbiB0aGUgbGlzdCkgaW4gYSBub3JtYWwKKyAqICAgICBydWxlIHNldC4mbmJzcDsgSW4gYSBmcmFjdGlvbiBydWxlIHNldCwgdGhlIGJhc2UgdmFsdWUgaXMgdGhlIHNhbWUgYXMgdGhlIHByZWNlZGluZyBydWxlJ3MKKyAqICAgICBiYXNlIHZhbHVlLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPkEgcnVsZSBzZXQgbWF5IGJlIGVpdGhlciBhIHJlZ3VsYXIgcnVsZSBzZXQgb3IgYSA8ZW0+ZnJhY3Rpb24gcnVsZSBzZXQsPC9lbT4gZGVwZW5kaW5nCisgKiBvbiB3aGV0aGVyIGl0IGlzIHVzZWQgdG8gZm9ybWF0IGEgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCAob3IgdGhlIHdob2xlIG51bWJlcikgb3IgYQorICogbnVtYmVyJ3MgZnJhY3Rpb25hbCBwYXJ0LiBVc2luZyBhIHJ1bGUgc2V0IHRvIGZvcm1hdCBhIHJ1bGUncyBmcmFjdGlvbmFsIHBhcnQgbWFrZXMgaXQgYQorICogZnJhY3Rpb24gcnVsZSBzZXQuPC9wPgorICoKKyAqIDxwPldoaWNoIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgYSBudW1iZXIgaXMgZGVmaW5lZCBhY2NvcmRpbmcgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqIGFsZ29yaXRobXM6IElmIHRoZSBydWxlIHNldCBpcyBhIHJlZ3VsYXIgcnVsZSBzZXQsIGRvIHRoZSBmb2xsb3dpbmc6CisgKgorICogPHVsPgorICogICA8bGk+SWYgdGhlIHJ1bGUgc2V0IGluY2x1ZGVzIGEgbWFzdGVyIHJ1bGUgKGFuZCB0aGUgbnVtYmVyIHdhcyBwYXNzZWQgaW4gYXMgYSA8dHQ+ZG91YmxlPC90dD4pLAorICogICAgIHVzZSB0aGUgbWFzdGVyIHJ1bGUuJm5ic3A7IChJZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB3YXMgcGFzc2VkIGluIGFzIGEgPHR0Pmxvbmc8L3R0PiwKKyAqICAgICB0aGUgbWFzdGVyIHJ1bGUgaXMgaWdub3JlZC4pPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHVzZSB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBncmVhdGVyIHRoYW4gMSwgdXNlIHRoZSBpbXByb3BlciBmcmFjdGlvbgorICogICAgIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBiZXR3ZWVuIDAgYW5kIDEsIHVzZSB0aGUgcHJvcGVyIGZyYWN0aW9uCisgKiAgICAgcnVsZS48L2xpPgorICogICA8bGk+QmluYXJ5LXNlYXJjaCB0aGUgcnVsZSBsaXN0IGZvciB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgKiAgICAgdG8gdGhlIG51bWJlci4gSWYgdGhhdCBydWxlIGhhcyB0d28gc3Vic3RpdHV0aW9ucywgaXRzIGJhc2UgdmFsdWUgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUKKyAqICAgICBvZiBpdHMgZGl2aXNvciwgYW5kIHRoZSBudW1iZXIgPGVtPmlzPC9lbT4gYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IsIHVzZSB0aGUKKyAqICAgICBydWxlIHRoYXQgcHJlY2VkZXMgaXQgaW4gdGhlIHJ1bGUgbGlzdC4gT3RoZXJ3aXNlLCB1c2UgdGhlIHJ1bGUgaXRzZWxmLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIDxwPklmIHRoZSBydWxlIHNldCBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCBkbyB0aGUgZm9sbG93aW5nOgorICoKKyAqIDx1bD4KKyAqICAgPGxpPklnbm9yZSBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLjwvbGk+CisgKiAgIDxsaT5Gb3IgZWFjaCBydWxlIGluIHRoZSBsaXN0LCBtdWx0aXBseSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAqICAgICBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gS2VlcCB0cmFjayBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcmVzdWx0CisgKiAgICAgdGhlIG5lYXJlc3QgaW50ZWdlci48L2xpPgorICogICA8bGk+VXNlIHRoZSBydWxlIHRoYXQgcHJvZHVjZWQgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIHplcm8gaW4gdGhlIGFib3ZlIGNhbGN1bGF0aW9uLiBJbiB0aGUKKyAqICAgICBldmVudCBvZiBhIHRpZSBvciBhIGRpcmVjdCBoaXQsIHVzZSB0aGUgZmlyc3QgbWF0Y2hpbmcgcnVsZSBlbmNvdW50ZXJlZC4gKFRoZSBpZGVhIGhlcmUgaXMKKyAqICAgICB0byB0cnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhcyBhIHBvc3NpYmxlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uIFdoaWNoZXZlcgorICogICAgIGRlbm9taW5hdG9yIHByb2R1Y2VzIHRoZSBmcmFjdGlvbiBjbG9zZXN0IGluIHZhbHVlIHRvIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHdpbnMuKSBJZgorICogICAgIHRoZSBydWxlIGZvbGxvd2luZyB0aGUgbWF0Y2hpbmcgcnVsZSBoYXMgdGhlIHNhbWUgYmFzZSB2YWx1ZSwgdXNlIGl0IGlmIHRoZSBudW1lcmF0b3Igb2YKKyAqICAgICB0aGUgZnJhY3Rpb24gaXMgYW55dGhpbmcgb3RoZXIgdGhhbiAxOyBpZiB0aGUgbnVtZXJhdG9yIGlzIDEsIHVzZSB0aGUgb3JpZ2luYWwgbWF0Y2hpbmcKKyAqICAgICBydWxlLiAoVGhpcyBpcyB0byBhbGxvdyBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mIHRoZSBydWxlIHRleHQgd2l0aG91dCBhIGxvdCBvZiBleHRyYQorICogICAgIGhhc3NsZS4pPC9saT4KKyAqIDwvdWw+CisgKgorICogPHA+QSBydWxlJ3MgYm9keSBjb25zaXN0cyBvZiBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24uIFRoZSBydWxlCisgKiBtYXkgaW5jbHVkZSB6ZXJvLCBvbmUsIG9yIHR3byA8ZW0+c3Vic3RpdHV0aW9uIHRva2Vucyw8L2VtPiBhbmQgYSByYW5nZSBvZiB0ZXh0IGluCisgKiBicmFja2V0cy4gVGhlIGJyYWNrZXRzIGRlbm90ZSBvcHRpb25hbCB0ZXh0IChhbmQgbWF5IGFsc28gaW5jbHVkZSBvbmUgb3IgYm90aAorICogc3Vic3RpdHV0aW9ucykuIFRoZSBleGFjdCBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VucywgYW5kIHVuZGVyIHdoYXQgY29uZGl0aW9ucworICogb3B0aW9uYWwgdGV4dCBpcyBvbWl0dGVkLCBkZXBlbmQgb24gdGhlIHN5bnRheCBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGFuZCB0aGUgY29udGV4dC4KKyAqIFRoZSByZXN0IG9mIHRoZSB0ZXh0IGluIGEgcnVsZSBib2R5IGlzIGxpdGVyYWwgdGV4dCB0aGF0IGlzIG91dHB1dCB3aGVuIHRoZSBydWxlIG1hdGNoZXMKKyAqIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLjwvcD4KKyAqCisgKiA8cD5BIHN1YnN0aXR1dGlvbiB0b2tlbiBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIDxlbT50b2tlbiBjaGFyYWN0ZXIuPC9lbT4gVGhlIHRva2VuCisgKiBjaGFyYWN0ZXIgYW5kIHRoZSBjb250ZXh0IHRvZ2V0aGVyIHNwZWNpZnkgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUKKyAqIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuIEFuIG9wdGlvbmFsIDxlbT5zdWJzdGl0dXRpb24gZGVzY3JpcHRvciA8L2VtPnNwZWNpZmllcyBob3cgdGhlCisgKiB2YWx1ZSByZXN1bHRpbmcgZnJvbSB0aGF0IG9wZXJhdGlvbiBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbi4gVGhlIHBvc2l0aW9uIG9mCisgKiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGluIHRoZSBydWxlIGJvZHkgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzdWx0YW50IHRleHQgaW4KKyAqIHRoZSBvcmlnaW5hbCBydWxlIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGNoYXJhY3RlcnMgYXJlIGFzIGZvbGxvd3M6PC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+Jmd0OyZndDs8L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbm9ybWFsIHJ1bGU8L3RkPgorICogICAgIDx0ZD5EaXZpZGUgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kIGZvcm1hdCB0aGUgcmVtYWluZGVyPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+RmluZCB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlciBhbmQgZm9ybWF0IHRoZSByZXN1bHQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gZnJhY3Rpb24gb3IgbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Jc29sYXRlIHRoZSBudW1iZXIncyBmcmFjdGlvbmFsIHBhcnQgYW5kIGZvcm1hdCBpdC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gcnVsZSBpbiBmcmFjdGlvbiBydWxlIHNldDwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZndDsmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPkRpdmlkZSB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgZm9ybWF0IHRoZSByZW1haW5kZXIsCisgKiAgICAgICBidXQgYnlwYXNzIHRoZSBub3JtYWwgcnVsZS1zZWxlY3Rpb24gcHJvY2VzcyBhbmQganVzdCB1c2UgdGhlCisgKiAgICAgICBydWxlIHRoYXQgcHJlY2VkZXMgdGhpcyBvbmUgaW4gdGhpcyBydWxlIGxpc3QuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBvdGhlciBydWxlczwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZsdDsmbHQ7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5vcm1hbCBydWxlPC90ZD4KKyAqICAgICA8dGQ+RGl2aWRlIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCBmb3JtYXQgdGhlIHF1b3RpZW50PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGZyYWN0aW9uIG9yIG1hc3RlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+SXNvbGF0ZSB0aGUgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBhbmQgZm9ybWF0IGl0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBydWxlIGluIGZyYWN0aW9uIHJ1bGUgc2V0PC90ZD4KKyAqICAgICA8dGQ+TXVsdGlwbHkgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgYW5kIGZvcm1hdCB0aGUgcmVzdWx0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPj09PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBydWxlIHNldHM8L3RkPgorICogICAgIDx0ZD5Gb3JtYXQgdGhlIG51bWJlciB1bmNoYW5nZWQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj5bXTwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk9taXQgdGhlIG9wdGlvbmFsIHRleHQgaWYgdGhlIG51bWJlciBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvcjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBuZWdhdGl2ZS1udW1iZXIgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBpbXByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+T21pdCB0aGUgb3B0aW9uYWwgdGV4dCBpZiB0aGUgbnVtYmVyIGlzIGJldHdlZW4gMCBhbmQgMSAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4KKyAqICAgICB4LnggcnVsZSBhbmQgYSAwLnggcnVsZSk8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIHRoZSBudW1iZXIgaXMgYW4gaW50ZWdlciAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4geC54CisgKiAgICAgcnVsZSBhbmQgYW4geC4wIHJ1bGUpPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHJ1bGUgaW4gZnJhY3Rpb24gcnVsZSBzZXQ8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIG11bHRpcGx5aW5nIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIHlpZWxkcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciAoaS5lLiwgdGhlIHRleHQgYmV0d2VlbiB0aGUgdG9rZW4gY2hhcmFjdGVycykgbWF5IHRha2Ugb25lCisgKiBvZiB0aHJlZSBmb3Jtczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPmEgcnVsZSBzZXQgbmFtZTwvdGQ+CisgKiAgICAgPHRkPlBlcmZvcm0gdGhlIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlciwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0IHVzaW5nIHRoZQorICogICAgIG5hbWVkIHJ1bGUgc2V0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjQyIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY2IiB2YWxpZ249InRvcCI+YSBEZWNpbWFsRm9ybWF0IHBhdHRlcm48L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyBhCisgKiAgICAgRGVjaW1hbEZvcm1hdCB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybi4mbmJzcDsgVGhlIHBhdHRlcm4gbXVzdCBiZWdpbiB3aXRoIDAgb3IgIy48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPm5vdGhpbmc8L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyB0aGUgcnVsZQorICogICAgIHNldCBjb250YWluaW5nIHRoZSBjdXJyZW50IHJ1bGUsIGV4Y2VwdDo8dWw+CisgKiAgICAgICA8bGk+WW91IGNhbid0IGhhdmUgYW4gZW1wdHkgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3Igd2l0aCBhID09IHN1YnN0aXR1dGlvbi48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZndDsmZ3Q7IHN1YnN0aXR1dGlvbiBpbiBhIGZyYWN0aW9uIHJ1bGUsCisgKiAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0IG9uZSBkaWdpdCBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcnVsZS48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZsdDsmbHQ7IHN1YnN0aXR1dGlvbiBpbiBhIHJ1bGUgaW4gYQorICogICAgICAgICBmcmFjdGlvbiBydWxlIHNldCwgZm9ybWF0IHRoZSByZXN1bHQgdXNpbmcgdGhlIGRlZmF1bHQgcnVsZSBzZXQgZm9yIHRoaXMgZm9ybWF0dGVyLjwvbGk+CisgKiAgICAgPC91bD4KKyAqICAgICA8L3RkPgorICogICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5XaGl0ZXNwYWNlIGlzIGlnbm9yZWQgYmV0d2VlbiBhIHJ1bGUgc2V0IG5hbWUgYW5kIGEgcnVsZSBzZXQgYm9keSwgYmV0d2VlbiBhIHJ1bGUKKyAqIGRlc2NyaXB0b3IgYW5kIGEgcnVsZSBib2R5LCBvciBiZXR3ZWVuIHJ1bGVzLiBJZiBhIHJ1bGUgYm9keSBiZWdpbnMgd2l0aCBhbiBhcG9zdHJvcGhlLAorICogdGhlIGFwb3N0cm9waGUgaXMgaWdub3JlZCwgYnV0IGFsbCB0ZXh0IGFmdGVyIGl0IGJlY29tZXMgc2lnbmlmaWNhbnQgKHRoaXMgaXMgaG93IHlvdSBjYW4KKyAqIGhhdmUgYSBydWxlJ3MgcnVsZSB0ZXh0IGJlZ2luIHdpdGggd2hpdGVzcGFjZSkuIFRoZXJlIGlzIG5vIGVzY2FwZSBmdW5jdGlvbjogdGhlIHNlbWljb2xvbgorICogaXMgbm90IGFsbG93ZWQgaW4gcnVsZSBzZXQgbmFtZXMgb3IgaW4gcnVsZSB0ZXh0LCBhbmQgdGhlIGNvbG9uIGlzIG5vdCBhbGxvd2VkIGluIHJ1bGUgc2V0CisgKiBuYW1lcy4gVGhlIGNoYXJhY3RlcnMgYmVnaW5uaW5nIGEgc3Vic3RpdHV0aW9uIHRva2VuIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIHN1YnN0aXR1dGlvbiB0b2tlbi48L3A+CisgKgorICogPHA+U2VlIHRoZSByZXNvdXJjZSBkYXRhIGFuZCB0aGUgZGVtbyBwcm9ncmFtIGZvciBhbm5vdGF0ZWQgZXhhbXBsZXMgb2YgcmVhbCBydWxlIHNldHMKKyAqIHVzaW5nIHRoZXNlIGZlYXR1cmVzLjwvcD4KKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKiBAc2VlIE51bWJlckZvcm1hdAorICogQHNlZSBEZWNpbWFsRm9ybWF0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdCB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzY2NDI1Mjc2NTU3NTM5NTA2OEw7CisgICAgCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIHNwZWxsb3V0IGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQRUxMT1VUID0gMTsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGNvZGUgdGhhdCB0ZWxscyB0aGUgY29uc3RydWN0b3IgdG8gY3JlYXRlIGFuIG9yZGluYWwgZm9ybWF0dGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JESU5BTCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIGR1cmF0aW9uIGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERVUkFUSU9OID0gMzsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybWF0dGVyJ3MgcnVsZSBzZXRzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IE5GUnVsZVNldFtdIHJ1bGVTZXRzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgcG9pbnRlciB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoaXMgaXMgYWx3YXlzIGluY2x1ZGVkCisgICAgICogaW4gcnVsZVNldHMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgTkZSdWxlU2V0IGRlZmF1bHRSdWxlU2V0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBmb3JtYXR0ZXIncyBsb2NhbGUuICBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIERlY2ltYWxGb3JtYXRTeW1ib2xzIGFuZAorICAgICAqIENvbGxhdG9yIG9iamVjdHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBsb2NhbGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29sbGF0b3IgdG8gYmUgdXNlZCBpbiBsZW5pZW50IHBhcnNpbmcuICBUaGlzIHZhcmlhYmxlIGlzIGxhenktZXZhbHVhdGVkOgorICAgICAqIHRoZSBjb2xsYXRvciBpcyBhY3R1YWxseSBjcmVhdGVkIHRoZSBmaXJzdCB0aW1lIHRoZSBjbGllbnQgZG9lcyBhIHBhcnNlCisgICAgICogd2l0aCBsZW5pZW50LXBhcnNlIG1vZGUgdHVybmVkIG9uLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBhbnkgRGVjaW1hbEZvcm1hdCBvYmplY3RzIHRoaXMKKyAgICAgKiBmb3JtYXR0ZXIgdXNlcyBzaG91bGQgdXNlLiAgVGhpcyB2YXJpYWJsZSBpcyBsYXp5LWV2YWx1YXRlZDogaXQgaXNuJ3QKKyAgICAgKiBmaWxsZWQgaW4gaWYgdGhlIHJ1bGUgc2V0IG5ldmVyIHVzZXMgYSBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGVjaW1hbEZvcm1hdFN5bWJvbHMgPSBudWxsOworCisgICAgLyoqCisgICAgICogRmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uIG9yIG9mZi4gIE9mZiBieSBkZWZhdWx0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIGxlbmllbnQtcGFyc2UgcnVsZXMsIHRoZXkncmUgc3RvcmVkIGhlcmUgdW50aWwKKyAgICAgKiB0aGUgY29sbGF0b3IgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgbGVuaWVudFBhcnNlUnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIHBvc3QtcHJvY2VzcyBydWxlcywgdGhleSdyZSBzdG9yZWQgaGVyZSB1bnRpbAorICAgICAqIHBvc3QtcHJvY2Vzc2luZyBpcyByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgcG9zdFByb2Nlc3NSdWxlczsKKworICAgIC8qKgorICAgICAqIFBvc3QgcHJvY2Vzc29yIGxhemlseSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBwb3N0UHJvY2Vzc1J1bGVzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IFJCTkZQb3N0UHJvY2Vzc29yIHBvc3RQcm9jZXNzb3I7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6YXRpb25zIGZvciBydWxlIHNldCBuYW1lcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgcnVsZVNldERpc3BsYXlOYW1lczsKKworICAgIC8qKgorICAgICAqIFRoZSBwdWJsaWMgcnVsZSBzZXQgbmFtZXM7CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gcHVibGljUnVsZVNldE5hbWVzOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgID0gIElDVURlYnVnLmVuYWJsZWQoInJibmYiKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbG9jYWxpemF0aW9ucyBkYXRhIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMgYW5kIHRoZWlyIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzIGZvciBkaWZmZXJlbnQKKyAgICAgKiBsb2NhbGVzLiBUaGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgbmFtZXMKKyAgICAgKiBvZiB0aGUgcHVibGljIHJ1bGUgc2V0cy4gIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoaXMgYXJyYXkgaXMKKyAgICAgKiB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGVzZXQuICBUaGUgcmVtYWluaW5nIGVsZW1lbnRzIGluIHRoZQorICAgICAqIGxpc3QgYXJlIGFycmF5cyBvZiBsb2NhbGl6YXRpb25zIG9mIHRoZSBuYW1lcyBvZiB0aGUgcHVibGljCisgICAgICogcnVsZSBzZXRzLiAgRWFjaCBvZiB0aGVzZSBpcyBvbmUgbG9uZ2VyIHRoYW4gdGhlIGluaXRpYWwgYXJyYXksCisgICAgICogd2l0aCB0aGUgZmlyc3QgU3RyaW5nIGJlaW5nIHRoZSBVTG9jYWxlIElELCBhbmQgdGhlIHJlbWFpbmluZworICAgICAqIFN0cmluZ3MgYmVpbmcgdGhlIGxvY2FsaXphdGlvbnMgb2YgdGhlIHJ1bGUgc2V0IG5hbWVzLCBpbiB0aGUKKyAgICAgKiBzYW1lIG9yZGVyIGFzIHRoZSBpbml0aWFsIGFycmF5LgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsaXphdGlvbnMgYSBsaXN0IG9mIGxvY2FsaXphdGlvbnMgZm9yIHRoZSBydWxlIHNldAorICAgICAqIG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSwgd2hpY2ggZ292ZXJucyB3aGljaCBjaGFyYWN0ZXJzIGFyZSB1c2VkIGZvcgorICAgICAqIGZvcm1hdHRpbmcgdmFsdWVzIGluIG51bWVyYWxzLCBhbmQgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKGRlc2NyaXB0aW9uLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBzcGVjaWZpZWQgbG9jYWxlIHRvIGRldGVybWluZSB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIHVzZSB3aGVuIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMsIGFuZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzCisgICAgICogZm9yIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUsIHdoaWNoIGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIHdoaWNoIGNoYXJhY3RlcnMgYXJlIGVxdWl2YWxlbnQgaW4KKyAgICAgKiBsZW5pZW50IHBhcnNpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSBsb2NhbGl6YXRpb25zIGRhdGEgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHB1YmxpYworICAgICAqIHJ1bGUgc2V0cyBhbmQgdGhlaXIgbG9jYWxpemVkIGRpc3BsYXkgbmFtZXMgZm9yIGRpZmZlcmVudAorICAgICAqIGxvY2FsZXMuIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGFuIGFycmF5IG9mIHRoZSBuYW1lcworICAgICAqIG9mIHRoZSBwdWJsaWMgcnVsZSBzZXRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhpcyBhcnJheSBpcworICAgICAqIHRoZSBpbml0aWFsIGRlZmF1bHQgcnVsZXNldC4gIFRoZSByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlCisgICAgICogbGlzdCBhcmUgYXJyYXlzIG9mIGxvY2FsaXphdGlvbnMgb2YgdGhlIG5hbWVzIG9mIHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMuICBFYWNoIG9mIHRoZXNlIGlzIG9uZSBsb25nZXIgdGhhbiB0aGUgaW5pdGlhbCBhcnJheSwKKyAgICAgKiB3aXRoIHRoZSBmaXJzdCBTdHJpbmcgYmVpbmcgdGhlIFVMb2NhbGUgSUQsIGFuZCB0aGUgcmVtYWluaW5nCisgICAgICogU3RyaW5ncyBiZWluZyB0aGUgbG9jYWxpemF0aW9ucyBvZiB0aGUgcnVsZSBzZXQgbmFtZXMsIGluIHRoZQorICAgICAqIHNhbWUgb3JkZXIgYXMgdGhlIGluaXRpYWwgYXJyYXkuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdHRlcidzIGRlc2lyZWQgYmVoYXZpb3IuCisgICAgICogU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIHN5bnRheC4KKyAgICAgKiBAcGFyYW0gbG9jYWxpemF0aW9ucyBhIGxpc3Qgb2YgbG9jYWxpemF0aW9ucyBmb3IgdGhlIHJ1bGUgc2V0IG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIEEgdWxvY2FsZSB0aGF0IGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIGRldGVybWluZXMgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBsb2NhbGl6YXRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZyb20gYSBwcmVkZWZpbmVkIGRlc2NyaXB0aW9uLiAgVGhlIHNlbGVjdG9yCisgICAgICogY29kZSBjaG9vc2VkIGFtb25nIHRocmVlIHBvc3NpYmxlIHByZWRlZmluZWQgZm9ybWF0czogc3BlbGxvdXQsIG9yZGluYWwsCisgICAgICogYW5kIGR1cmF0aW9uLgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gZm9ybWF0IEEgc2VsZWN0b3IgY29kZSBzcGVjaWZ5aW5nIHdoaWNoIGtpbmQgb2YgZm9ybWF0dGVyIHRvIGNyZWF0ZSBmb3IgdGhhdAorICAgICAqIGxvY2FsZS4gIFRoZXJlIGFyZSB0aHJlZSBsZWdhbCB2YWx1ZXM6IFNQRUxMT1VULCB3aGljaCBjcmVhdGVzIGEgZm9ybWF0dGVyIHRoYXQKKyAgICAgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UsIE9SRElOQUwsIHdoaWNoIGF0dGFjaGVzCisgICAgICogYW4gb3JkaW5hbCBzdWZmaXggZnJvbSB0aGUgZGVzaXJlZCBsYW5ndWFnZSB0byB0aGUgZW5kIG9mIGEgbnVtYmVyIChlLmcuICIxMjNyZCIpLAorICAgICAqIGFuZCBEVVJBVElPTiwgd2hpY2ggZm9ybWF0cyBhIGR1cmF0aW9uIGluIHNlY29uZHMgYXMgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlIGxvY2FsZSwgaW50IGZvcm1hdCkgeworICAgICAgICB0aGlzKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGZvcm1hdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFRoZSBzZWxlY3RvcgorICAgICAqIGNvZGUgY2hvb3NlZCBhbW9uZyB0aHJlZSBwb3NzaWJsZSBwcmVkZWZpbmVkIGZvcm1hdHM6IHNwZWxsb3V0LCBvcmRpbmFsLAorICAgICAqIGFuZCBkdXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBmb3JtYXR0ZXIuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUgZm9yIHRoYXQKKyAgICAgKiBsb2NhbGUuICBUaGVyZSBhcmUgdGhyZWUgbGVnYWwgdmFsdWVzOiBTUEVMTE9VVCwgd2hpY2ggY3JlYXRlcyBhIGZvcm1hdHRlciB0aGF0CisgICAgICogc3BlbGxzIG91dCBhIHZhbHVlIGluIHdvcmRzIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlLCBPUkRJTkFMLCB3aGljaCBhdHRhY2hlcworICAgICAqIGFuIG9yZGluYWwgc3VmZml4IGZyb20gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UgdG8gdGhlIGVuZCBvZiBhIG51bWJlciAoZS5nLiAiMTIzcmQiKSwKKyAgICAgKiBhbmQgRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoVUxvY2FsZSBsb2NhbGUsIGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwgbG9jYWxlKTsKKworICAgICAgICAvLyBUT0RPOiBkZXRlcm1pbmUgY29ycmVjdCBhY3R1YWwvdmFsaWQgbG9jYWxlLiAgTm90ZSBhbWJpZ3VpdHkKKyAgICAgICAgLy8gaGVyZSAtLSBkbyBhY3R1YWwvdmFsaWQgcmVmZXIgdG8gcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMsCisgICAgICAgIC8vIG9yIENvbGxhdG9yPworICAgICAgICBVTG9jYWxlIHVsb2MgPSBidW5kbGUuZ2V0VUxvY2FsZSgpOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIiI7CisgICAgICAgIFN0cmluZ1tdW10gbG9jYWxpemF0aW9ucyA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYnVuZGxlLmdldFN0cmluZyhydWxlbmFtZXNbZm9ybWF0LTFdKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGxvY2IgPSBidW5kbGUuZ2V0KGxvY25hbWVzW2Zvcm1hdC0xXSk7CisgICAgICAgICAgICBsb2NhbGl6YXRpb25zID0gbmV3IFN0cmluZ1tsb2NiLmdldFNpemUoKV1bXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxpemF0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbnNbaV0gPSBsb2NiLmdldChpKS5nZXRTdHJpbmdBcnJheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gbWlnaHQgaGF2ZSBkZXNjcmlwdGlvbiBhbmQgbm8gbG9jYWxpemF0aW9ucywgb3Igbm8gZGVzY3JpcHRpb24uLi4KKyAgICAgICAgfQorCisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHJ1bGVuYW1lcyA9IHsKKyAgICAgICAgIlNwZWxsb3V0UnVsZXMiLCAiT3JkaW5hbFJ1bGVzIiwgIkR1cmF0aW9uUnVsZXMiLAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbG9jbmFtZXMgPSB7CisgICAgICAgICJTcGVsbG91dExvY2FsaXphdGlvbnMiLCAiT3JkaW5hbExvY2FsaXphdGlvbnMiLCAiRHVyYXRpb25Mb2NhbGl6YXRpb25zIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFVzZXMgdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUuCisgICAgICogVGhlcmUgYXJlIHRocmVlIGxlZ2FsIHZhbHVlczogU1BFTExPVVQsIHdoaWNoIGNyZWF0ZXMgYSBmb3JtYXR0ZXIgdGhhdCBzcGVsbHMKKyAgICAgKiBvdXQgYSB2YWx1ZSBpbiB3b3JkcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5neWFnZSwgT1JESU5BTCwgd2hpY2ggYXR0YWNoZXMKKyAgICAgKiBhbiBvcmRpbmFsIHN1ZmZpeCBmcm9tIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIHRvIGEgbnVtZXJhbCwgYW5kCisgICAgICogRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcyhVTG9jYWxlLmdldERlZmF1bHQoKSwgZm9ybWF0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEdXBsaWNhdGVzIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gUnVsZUJhc2VkTnVtYmVyRm9ybWF0cyBmb3IgZXF1YWxpdHkuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIGZvcm1hdHRlciB0byBjb21wYXJlIGFnYWluc3QgdGhpcyBvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gZm9ybWF0dGVycyBoYXZlIGlkZW50aWNhbCBiZWhhdmlvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgLy8gaWYgdGhlIG90aGVyIG9iamVjdCBpc24ndCBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCwgdGhhdCdzCisgICAgICAgIC8vIGFsbCB3ZSBuZWVkIHRvIGtub3cKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIFJ1bGVCYXNlZE51bWJlckZvcm1hdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNhc3QgdGhlIG90aGVyIG9iamVjdCdzIHBvaW50ZXIgdG8gYSBwb2ludGVyIHRvIGEKKyAgICAgICAgICAgIC8vIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQyID0gKFJ1bGVCYXNlZE51bWJlckZvcm1hdCl0aGF0OworCisgICAgICAgICAgICAvLyBjb21wYXJlIHRoZWlyIGxvY2FsZXMgYW5kIGxlbmllbnQtcGFyc2UgbW9kZXMKKyAgICAgICAgICAgIGlmICghbG9jYWxlLmVxdWFscyh0aGF0Mi5sb2NhbGUpIHx8IGxlbmllbnRQYXJzZSAhPSB0aGF0Mi5sZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoYXQgc3VjY2VlZHMsIHRoZW4gY29tcGFyZSB0aGVpciBydWxlIHNldCBsaXN0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzLmxlbmd0aCAhPSB0aGF0Mi5ydWxlU2V0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5lcXVhbHModGhhdDIucnVsZVNldHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNvbnRhaW5pbmcgYSBydWxlIHNldCB0aGF0IHdpbGwgcHJvZHVjZSBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqIHdpdGggaWRlbnRpY2FsIGJlaGF2aW9yIHRvIHRoaXMgb25lLiAgVGhpcyB3b24ndCBuZWNlc3NhcmlseSBiZSBpZGVudGljYWwKKyAgICAgKiB0byB0aGUgcnVsZSBzZXQgZGVzY3JpcHRpb24gdGhhdCB3YXMgb3JpZ2luYWxseSBwYXNzZWQgaW4sIGJ1dCB3aWxsIHByb2R1Y2UKKyAgICAgKiB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICAvLyBhY2N1bXVsYXRlIHRoZSBkZXNjcmlwdGlvbnMgb2YgYWxsIHRoZSBydWxlIHNldHMgaW4gYQorICAgICAgICAvLyBTdHJpbmdCdWZmZXIsIHRoZW4gY2FzdCBpdCB0byBhIFN0cmluZyBhbmQgcmV0dXJuIGl0CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVNldHNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdyaXRlcyB0aGlzIG9iamVjdCB0byBhIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gb3V0IFRoZSBzdHJlYW0gdG8gd3JpdGUgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtIG91dCkKKyAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICAvLyB3ZSBqdXN0IHdyaXRlIHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRvIHRoZSBzdHJlYW0sIHNvIHdlCisgICAgICAgIC8vIGhhdmUgYW4gaW1wbGVtZW50YXRpb24taW5kZXBlbmRlbnQgc3RyZWFtaW5nIGZvcm1hdAorICAgICAgICBvdXQud3JpdGVVVEYodGhpcy50b1N0cmluZygpKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KHRoaXMubG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkcyB0aGlzIG9iamVjdCBpbiBmcm9tIGEgc3RyZWFtLgorICAgICAqIEBwYXJhbSBpbiBUaGUgc3RyZWFtIHRvIHJlYWQgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKQorICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIC8vIHJlYWQgdGhlIGRlc2NyaXB0aW9uIGluIGZyb20gdGhlIHN0cmVhbQorICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBpbi5yZWFkVVRGKCk7CisgICAgICAgIFVMb2NhbGUgbG9jOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvYyA9IChVTG9jYWxlKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ1aWxkIGEgYnJhbmQtbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIHRoZSBkZXNjcmlwdGlvbiwKKyAgICAgICAgLy8gdGhlbiBzdGVhbCBpdHMgc3Vic3RydWN0dXJlLiAgVGhpcyBvYmplY3QncyBzdWJzdHJ1Y3R1cmUgYW5kCisgICAgICAgIC8vIHRoZSB0ZW1wb3JhcnkgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRyb3Agb24gdGhlIGZsb29yIGFuZAorICAgICAgICAvLyBnZXQgc3dlcHQgdXAgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChkZXNjcmlwdGlvbiwgbG9jKTsKKyAgICAgICAgcnVsZVNldHMgPSB0ZW1wLnJ1bGVTZXRzOworICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHRlbXAuZGVmYXVsdFJ1bGVTZXQ7CisgICAgICAgIHB1YmxpY1J1bGVTZXROYW1lcyA9IHRlbXAucHVibGljUnVsZVNldE5hbWVzOworICAgICAgICBkZWNpbWFsRm9ybWF0U3ltYm9scyA9IHRlbXAuZGVjaW1hbEZvcm1hdFN5bWJvbHM7CisgICAgICAgIGxvY2FsZSA9IHRlbXAubG9jYWxlOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHB1YmxpYyBBUEkgZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHJldHVybiBBIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFJ1bGVTZXROYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlwdWJsaWNSdWxlU2V0TmFtZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIHRoZXJlIGFyZSBsb2NhbGUtc3BlY2lmaWMgZGlzcGxheSBuYW1lcworICAgICAqIGZvciB0aGUgcnVsZSBzZXRzIGluIHRoaXMgZm9ybWF0dGVyLiAgSWYgdGhlcmUgYXJlIG5vIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzLCByZXR1cm4gbnVsbC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSB1bG9jYWxlcyBmb3Igd2hpY2ggdGhlcmUgaXMgcnVsZSBzZXQgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldFJ1bGVTZXREaXNwbGF5TmFtZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChydWxlU2V0RGlzcGxheU5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNldCBzID0gcnVsZVNldERpc3BsYXlOYW1lcy5rZXlTZXQoKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSAoU3RyaW5nW10pcy50b0FycmF5KG5ldyBTdHJpbmdbcy5zaXplKCldKTsKKyAgICAgICAgICAgIEFycmF5cy5zb3J0KGxvY2FsZXMsIFN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSKTsKKyAgICAgICAgICAgIFVMb2NhbGVbXSByZXN1bHQgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBuZXcgVUxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXROYW1lTGlzdEZvckxvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlICE9IG51bGwgJiYgcnVsZVNldERpc3BsYXlOYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsgbG9jYWxlLmdldEJhc2VOYW1lKCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldEJhc2VOYW1lKCkgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbG5hbWUgPSBsb2NhbGVOYW1lc1tpXTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gKFN0cmluZ1tdKXJ1bGVTZXREaXNwbGF5TmFtZXMuZ2V0KGxuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsbmFtZSA9IFVMb2NhbGUuZ2V0RmFsbGJhY2sobG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZXMgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGVzZSBhcmUgaW4gdGhlIHNhbWUgb3JkZXIKKyAgICAgKiBhcyB0aG9zZSByZXR1cm5lZCBieSBnZXRSdWxlU2V0TmFtZXMuICBUaGUgbG9jYWxlIGlzIG1hdGNoZWQgYWdhaW5zdCB0aGUgbG9jYWxlcyBmb3IKKyAgICAgKiB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcgbm9ybWFsIGZhbGxiYWNrIHJ1bGVzLiAgSWYgbm8gbG9jYWxlIG1hdGNoZXMsCisgICAgICogdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lcyBhcmUgcmV0dXJuZWQuICAoVGhlc2UgYXJlIHRoZSBpbnRlcm5hbCBydWxlIHNldCBuYW1lcyBtaW51cworICAgICAqIHRoZSBsZWFkaW5nICclJy4pCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgbG9jYWxlcyB0aGF0IGhhdmUgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQHNlZSAjZ2V0UnVsZVNldE5hbWVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIGlmIChuYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKW5hbWVzLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgbmFtZXMgPSBnZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbmFtZXNbaV0gPSBuYW1lc1tpXS5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcnVsZSBzZXQgZGlzcGxheSBuYW1lcyBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgZGlzcGxheSBuYW1lcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHNlZSAjZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSdWxlU2V0RGlzcGxheU5hbWVzKCkgeworICAgICAgICByZXR1cm4gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBydWxlIHNldCBkaXNwbGF5IG5hbWUgZm9yIHRoZSBwcm92aWRlZCBydWxlIHNldCBhbmQgbG9jYWxlLgorICAgICAqIFRoZSBsb2NhbGUgaXMgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsb2NhbGVzIGZvciB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcKKyAgICAgKiBub3JtYWwgZmFsbGJhY2sgcnVsZXMuICBJZiBubyBsb2NhbGUgbWF0Y2hlcywgdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWVzCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgcnVsZVNldE5hbWUgaXMgbm90IGEgdmFsaWQgcnVsZSBzZXQgbmFtZSBmb3IgdGhpcyBmb3JtYXQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVTZXREaXNwbGF5TmFtZShTdHJpbmcgcnVsZVNldE5hbWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZ1tdIHJzbmFtZXMgPSBwdWJsaWNSdWxlU2V0TmFtZXM7CisgICAgICAgIGZvciAoaW50IGl4ID0gMDsgaXggPCByc25hbWVzLmxlbmd0aDsgKytpeCkgeworICAgICAgICAgICAgaWYgKHJzbmFtZXNbaXhdLmVxdWFscyhydWxlU2V0TmFtZSkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW2l4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJzbmFtZXNbaXhdLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgcnVsZSBzZXQgbmFtZTogIiArIHJ1bGVTZXROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZSBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgc2V0IGluIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nLFVMb2NhbGUpCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nIHJ1bGVTZXROYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZyBydWxlU2V0KSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHJ1bGVTZXQuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3QgdXNlIGludGVybmFsIHJ1bGUgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIGZpbmRSdWxlU2V0KHJ1bGVTZXQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIChJZiB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0IHNwZWNpZmllcyBhIG1hc3RlciBbInguMCJdIHJ1bGUsIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBpZ25vcmVzIGl0LiAgQ29udmVydCB0aGUgbnVtYmVyIHRvIGEgZG91YmxlIGZpcnN0IGlmIHlvdSBuZWQgaXQuKSAgVGhpcworICAgICAqIGZ1bmN0aW9uIHByZXNlcnZlcyBhbGwgdGhlIHByZWNpc2lvbiBpbiB0aGUgbG9uZy0tIGl0IGRvZXNuJ3QgY29udmVydCBpdAorICAgICAqIHRvIGEgZG91YmxlLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmcgcnVsZVNldCkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChydWxlU2V0LnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IHVzZSBpbnRlcm5hbCBydWxlIHNldCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBmaW5kUnVsZVNldChydWxlU2V0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB1c2luZyB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4KKyAgICAgKiAoVGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGRlZmluZWQgaW4gdGhlIGRlc2NyaXB0aW9uLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0LgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIEEgU3RyaW5nQnVmZmVyIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uCisgICAgICogQHBhcmFtIGlnbm9yZSBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZXhhbWluZSBvciB1cGRhdGUgdGhlIGZpZWxkIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdG9BcHBlbmRUbworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBpZ25vcmUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBvbmUgb2YgdGhlIGluaGVyaXRlZCBmb3JtYXQoKSBtZXRob2RzLiAgU2luY2UgaXQgZG9lc24ndAorICAgICAgICAvLyBoYXZlIGEgd2F5IHRvIHNlbGVjdCB0aGUgcnVsZSBzZXQgdG8gdXNlLCBpdCBqdXN0IHVzZXMgdGhlCisgICAgICAgIC8vIGRlZmF1bHQgb25lCisgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKGZvcm1hdChudW1iZXIsIGRlZmF1bHRSdWxlU2V0KSk7CisgICAgICAgIHJldHVybiB0b0FwcGVuZFRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdXNpbmcgdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuCisgICAgICogKFRoZSBkZWZhdWx0IHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBkZWZpbmVkIGluIHRoZSBkZXNjcmlwdGlvbi4pCisgICAgICogKElmIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQgc3BlY2lmaWVzIGEgbWFzdGVyIFsieC4wIl0gcnVsZSwgdGhpcyBmdW5jdGlvbgorICAgICAqIGlnbm9yZXMgaXQuICBDb252ZXJ0IHRoZSBudW1iZXIgdG8gYSBkb3VibGUgZmlyc3QgaWYgeW91IG5lZCBpdC4pICBUaGlzCisgICAgICogZnVuY3Rpb24gcHJlc2VydmVzIGFsbCB0aGUgcHJlY2lzaW9uIGluIHRoZSBsb25nLS0gaXQgZG9lc24ndCBjb252ZXJ0IGl0CisgICAgICogdG8gYSBkb3VibGUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyBBIFN0cmluZ0J1ZmZlciB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGFwcGVuZGVkIHRvLgorICAgICAqIEBwYXJhbSBpZ25vcmUgVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGV4YW1pbmUgb3IgdXBkYXRlIHRoZSBmaWVsZCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRvQXBwZW5kVG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSkgeworICAgICAgICAvLyB0aGlzIGlzIG9uZSBvZiB0aGUgaW5oZXJpdGVkIGZvcm1hdCgpIG1ldGhvZHMuICBTaW5jZSBpdCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYSB3YXkgdG8gc2VsZWN0IHRoZSBydWxlIHNldCB0byB1c2UsIGl0IGp1c3QgdXNlcyB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCBvbmUKKyAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoZm9ybWF0KG51bWJlciwgZGVmYXVsdFJ1bGVTZXQpKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEltcGxlbWVudCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDoKKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICAvLyBURU1QT1JBUlk6CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLmRvdWJsZVZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBzcGVjZmllZCBzdHJpbmcsIGJlZ2lubmluZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBhY2NvcmRpbmcKKyAgICAgKiB0byB0aGlzIGZvcm1hdHRlcidzIHJ1bGVzLiAgVGhpcyB3aWxsIG1hdGNoIHRoZSBzdHJpbmcgYWdhaW5zdCBhbGwgb2YgdGhlCisgICAgICogZm9ybWF0dGVyJ3MgcHVibGljIHJ1bGUgc2V0cyBhbmQgcmV0dXJuIHRoZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb25nZXN0CisgICAgICogcGFyc2VhYmxlIHN1YnN0cmluZy4gIFRoaXMgZnVuY3Rpb24ncyBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSB0aGUgbGVuaWVudAorICAgICAqIHBhcnNlIG1vZGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIE9uIGVudHJ5LCBjb250YWlucyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIGluICJ0ZXh0IiB0byBleGFtaW5lLiAgT24gZXhpdCwgaGFzIGJlZW4gdXBkYXRlZCB0byBjb250YWluIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gInRleHQiIHRoYXQgd2Fzbid0IGNvbnN1bWVkIGJ5IHRoZSBwYXJzZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcGFyc2VkIHRleHQuICBUaGlzIHdpbGwgYmUgYW4KKyAgICAgKiBpbnN0YW5jZSBvZiBlaXRoZXIgTG9uZyBvciBEb3VibGUsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSByZXN1bHQgaGFzIGEKKyAgICAgKiBmcmFjdGlvbmFsIHBhcnQuCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworCisgICAgICAgIC8vIHBhcnNlUG9zaXRpb24gdGVsbHMgdXMgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4gIFdlIGNvcHkgdGhlCisgICAgICAgIC8vIHRleHQgaW4gdGhlIHN0cmluZyBmcm9tIGhlcmUgdG8gdGhlIGVuZCBpbnJvIGEgbmV3IHN0cmluZywKKyAgICAgICAgLy8gYW5kIGNyZWF0ZSBhIG5ldyBQYXJzZVBvc2l0aW9uIGFuZCByZXN1bHQgdmFyaWFibGUgdG8gdXNlCisgICAgICAgIC8vIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHBhcnNlIG9wZXJhdGlvbgorICAgICAgICBTdHJpbmcgd29ya2luZ1RleHQgPSB0ZXh0LnN1YnN0cmluZyhwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHdvcmtpbmdQb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29uc3VtZWQgaW4KKyAgICAgICAgLy8gdGhlIHZhcmlvdXMgdHJpYWxzLCBhbmQgdGhlIHJlc3VsdCB0aGF0IGNvcnJlc3BvbmRzIHRvIGl0CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24od29ya2luZ1Bvcy5nZXRJbmRleCgpKTsKKworICAgICAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIHB1YmxpYyBydWxlIHNldHMgKGJlZ2lubmluZyB3aXRoIHRoZSBkZWZhdWx0IG9uZSkKKyAgICAgICAgLy8gYW5kIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHdpdGggZWFjaCBvZiB0aGVtLiAgS2VlcCB0cmFjayBvZiB3aGljaAorICAgICAgICAvLyBvbmUgY29uc3VtZXMgdGhlIG1vc3QgY2hhcmFjdGVyczogdGhhdCdzIHRoZSBvbmUgdGhhdCBkZXRlcm1pbmVzCisgICAgICAgIC8vIHRoZSByZXN1bHQgd2UgcmV0dXJuCisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgLy8gc2tpcCBwcml2YXRlIHJ1bGUgc2V0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRyeSBwYXJzaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGUgcnVsZSBzZXQuICBJZiBpdCBnZXRzIHBhc3QgdGhlCisgICAgICAgICAgICAvLyBoaWdoLXdhdGVyIG1hcmssIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrIGFuZCB0aGUgcmVzdWx0CisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZVNldHNbaV0ucGFyc2Uod29ya2luZ1RleHQsIHdvcmtpbmdQb3MsIERvdWJsZS5NQVhfVkFMVUUpOworICAgICAgICAgICAgaWYgKHdvcmtpbmdQb3MuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRJbmRleCh3b3JraW5nUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoaXMgQVBJIG9uIFBhcnNlUG9zaXRpb24gZG9lc24ndCBleGlzdCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBpZiAod29ya2luZ1Bvcy5nZXRFcnJvckluZGV4KCkgPiBoaWdoV2F0ZXJNYXJrLmdldEVycm9ySW5kZXgoKSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRFcnJvckluZGV4KHdvcmtpbmdQb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB3ZSBtYW5hZ2UgdG8gdXNlIHVwIGFsbCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byB0cnkgYW55IG1vcmUgcnVsZSBzZXRzCisgICAgICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IHdvcmtpbmdUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmVzZXQgb3VyIGludGVybmFsIHBhcnNlIHBvc2l0aW9uIHRvIHRoZQorICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGFuZCB0cnkgYWdhaW4gd2l0aCB0aGUgbmV4dCBydWxlIHNldAorICAgICAgICAgICAgd29ya2luZ1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgaGlnaCB3YXRlciBtYXJrIHRvIG91ciBvcmlnaW5hbCBwYXJzZSBwb3NpdGlvbiBhbmQKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBBUEkgb24gUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGV4aXN0IGluIDEuMS54CisgICAgICAgIC8vICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFR1cm5zIGxlbmllbnQgcGFyc2UgbW9kZSBvbiBhbmQgb2ZmLgorICAgICAqCisgICAgICogV2hlbiBpbiBsZW5pZW50IHBhcnNlIG1vZGUsIHRoZSBmb3JtYXR0ZXIgdXNlcyBhIENvbGxhdG9yIGZvciBwYXJzaW5nIHRoZSB0ZXh0LgorICAgICAqIE9ubHkgcHJpbWFyeSBkaWZmZXJlbmNlcyBhcmUgdHJlYXRlZCBhcyBzaWduaWZpY2FudC4gIFRoaXMgbWVhbnMgdGhhdCBjYXNlCisgICAgICogZGlmZmVyZW5jZXMsIGFjY2VudCBkaWZmZXJlbmNlcywgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZiB0aGUgc2FtZSBsZXR0ZXIKKyAgICAgKiAoZS5nLiwgYWUgYW5kIGEtdW1sYXV0IGluIEdlcm1hbiksIGlnbm9yYWJsZSBjaGFyYWN0ZXJzLCBldGMuIGFyZSBpZ25vcmVkIGluCisgICAgICogbWF0Y2hpbmcgdGhlIHRleHQuICBJbiBtYW55IGNhc2VzLCBudW1lcmFscyB3aWxsIGJlIGFjY2VwdGVkIGluIHBsYWNlIG9mIHdvcmRzCisgICAgICogb3IgcGhyYXNlcyBhcyB3ZWxsLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGFsbCBvZiB0aGUgZm9sbG93aW5nIHdpbGwgY29ycmVjdGx5IHBhcnNlIGFzIDI1NSBpbiBFbmdsaXNoIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlOgorICAgICAqIDxicj4idHdvIGh1bmRyZWQgZmlmdHktZml2ZSIKKyAgICAgKiA8YnI+InR3byBodW5kcmVkIGZpZnR5IGZpdmUiCisgICAgICogPGJyPiJUV08gSFVORFJFRCBGSUZUWS1GSVZFIgorICAgICAqIDxicj4idHdvaHVuZHJlZGZpZnR5Zml2ZSIKKyAgICAgKiA8YnI+IjIgaHVuZHJlZCBmaWZ0eS01IgorICAgICAqCisgICAgICogVGhlIENvbGxhdG9yIHVzZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbG9jYWxlIHRoYXQgd2FzCisgICAgICogcGFzc2VkIHRvIHRoaXMgb2JqZWN0IG9uIGNvbnN0cnVjdGlvbi4gIFRoZSBkZXNjcmlwdGlvbiBwYXNzZWQgdG8gdGhpcyBvYmplY3QKKyAgICAgKiBvbiBjb25zdHJ1Y3Rpb24gbWF5IHN1cHBseSBhZGRpdGlvbmFsIGNvbGxhdGlvbiBydWxlcyB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUsIGVuYWJsaW5nIGFkZGl0aW9uYWwgZXF1aXZhbGVuY2VzCisgICAgICogKHN1Y2ggYXMgYWRkaW5nIG1vcmUgaWdub3JhYmxlIGNoYXJhY3RlcnMgb3IgcGVybWl0dGluZyBzcGVsbGVkLW91dCB2ZXJzaW9uIG9mCisgICAgICogc3ltYm9sczsgc2VlIHRoZSBkZW1vIHByb2dyYW0gZm9yIGV4YW1wbGVzKS4KKyAgICAgKgorICAgICAqIEl0J3MgaW1wb3J0YW50IHRvIGVtcGhhc2l6ZSB0aGF0IGV2ZW4gc3RyaWN0IHBhcnNpbmcgaXMgcmVsYXRpdmVseSBsZW5pZW50OiBpdAorICAgICAqIHdpbGwgYWNjZXB0IHNvbWUgdGV4dCB0aGF0IGl0IHdvbid0IHByb2R1Y2UgYXMgb3V0cHV0LiAgSW4gRW5nbGlzaCwgZm9yIGV4YW1wbGUsCisgICAgICogaXQgd2lsbCBjb3JyZWN0bHkgcGFyc2UgInR3byBodW5kcmVkIHplcm8iIGFuZCAiZmlmdGVlbiBodW5kcmVkIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIElmIHRydWUsIHR1cm5zIGxlbmllbnQtcGFyc2UgbW9kZSBvbjsgaWYgZmFsc2UsIHR1cm5zIGl0IG9mZi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudFBhcnNlTW9kZShib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgbGVuaWVudFBhcnNlID0gZW5hYmxlZDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBsZWF2aW5nIGxlbmllbnQtcGFyc2UgbW9kZSwgdGhyb3cgYXdheSB0aGUgY29sbGF0b3IKKyAgICAgICAgLy8gd2UndmUgYmVlbiB1c2luZworICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBsZW5pZW50LXBhcnNlIG1vZGUgaXMgdHVybmVkIG9uLiAgTGVuaWVudCBwYXJzaW5nIGlzIG9mZgorICAgICAqIGJ5IGRlZmF1bHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyB0dXJuZWQgb24uCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlbmllbnRQYXJzZUVuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBsZW5pZW50UGFyc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVsZSBzZXQgdG8gdXNlLiAgSWYgcnVsZVNldE5hbWUgaXMgbnVsbCwgcmVzZXQKKyAgICAgKiB0byB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBydWxlU2V0TmFtZSB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQsIG9yIG51bGwgdG8gcmVzZXQgdGhlIGluaXRpYWwgZGVmYXVsdC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlU2V0TmFtZSBpcyBub3QgdGhlIG5hbWUgb2YgYSBwdWJsaWMgcnVsZXNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWZhdWx0UnVsZVNldChTdHJpbmcgcnVsZVNldE5hbWUpIHsKKyAgICAgICAgaWYgKHJ1bGVTZXROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gZmluZFJ1bGVTZXQocHVibGljUnVsZVNldE5hbWVzWzBdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IG51bGw7CisgICAgICAgICAgICBpbnQgbiA9IHJ1bGVTZXRzLmxlbmd0aDsKKyAgICAgICAgd2hpbGUgKC0tbiA+PSAwKSB7CisgICAgICAgICAgaWYgKHJ1bGVTZXRzW25dLmlzUHVibGljKCkpIHsKKyAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbbl07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChydWxlU2V0TmFtZS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjYW5ub3QgdXNlIHByaXZhdGUgcnVsZSBzZXQ6ICIgKyBydWxlU2V0TmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IGZpbmRSdWxlU2V0KHJ1bGVTZXROYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGVmYXVsdCBydWxlIHNldCwgaWYgaXQgaXMgcHVibGljLCBlbHNlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREZWZhdWx0UnVsZVNldE5hbWUoKSB7CisgICAgICAgIGlmIChkZWZhdWx0UnVsZVNldCAhPSBudWxsICYmIGRlZmF1bHRSdWxlU2V0LmlzUHVibGljKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0UnVsZVNldC5nZXROYW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYWNrYWdlLWludGVybmFsIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuICBUaGUgZGVmYXVsdAorICAgICAqIHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBpbiB0aGUgZGVzY3JpcHRpb24sIG9yIHRoZSBvbmUKKyAgICAgKiBtb3N0IHJlY2VudGx5IHNldCBieSBzZXREZWZhdWx0UnVsZVNldC4KKyAgICAgKiBAcmV0dXJuIFRoZSBmb3JtYXR0ZXIncyBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqLworICAgIE5GUnVsZVNldCBnZXREZWZhdWx0UnVsZVNldCgpIHsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRSdWxlU2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbGxhdG9yIHRvIHVzZSBmb3IgbGVuaWVudCBwYXJzaW5nLiAgVGhlIGNvbGxhdG9yIGlzIGxhemlseSBjcmVhdGVkOgorICAgICAqIHRoaXMgZnVuY3Rpb24gY3JlYXRlcyBpdCB0aGUgZmlyc3QgdGltZSBpdCdzIGNhbGxlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2xsYXRvciB0byB1c2UgZm9yIGxlbmllbnQgcGFyc2luZywgb3IgbnVsbCBpZiBsZW5pZW50IHBhcnNpbmcKKyAgICAgKiBpcyB0dXJuZWQgb2ZmLgorICAgICAqLworICAgIENvbGxhdG9yIGdldENvbGxhdG9yKCkgeworICAgICAgICAvLyBsYXp5LWV2YXVsYXRlIHRoZSBjb2xsYXRvcgorICAgICAgICBpZiAoY29sbGF0b3IgPT0gbnVsbCAmJiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgZGVmYXVsdCBjb2xsYXRvciBiYXNlZCBvbiB0aGUgZm9ybWF0dGVyJ3MgbG9jYWxlLAorICAgICAgICAgICAgICAgIC8vIHRoZW4gcHVsbCBvdXQgdGhhdCBjb2xsYXRvcidzIHJ1bGVzLCBhcHBlbmQgYW55IGFkZGl0aW9uYWwKKyAgICAgICAgICAgICAgICAvLyBydWxlcyBzcGVjaWZpZWQgaW4gdGhlIGRlc2NyaXB0aW9uLCBhbmQgY3JlYXRlIGEgX25ld18KKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRvciBiYXNlZCBvbiB0aGUgY29tYmluYWl0b24gb2YgdGhvc2UgcnVsZXMKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0ZW1wID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gdGVtcC5nZXRSdWxlcygpICsgbGVuaWVudFBhcnNlUnVsZXM7CisKKyAgICAgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgaXQgbWVhbnMgd2UgaGF2ZSBhIG1hbGZvcm1lZCBzZXQgb2YKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXRpb24gcnVsZXMsIHdoaWNoIGhvcGVmdWxseSB3b24ndCBoYXBwZW4KKyAgICAgICAgICAgICAgICBpZihERUJVRyl7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyBvZmYsIHRoaXMgd2lsbCBiZSBudWxsCisgICAgICAgIC8vIChzZWUgc2V0TGVuaWVudFBhcnNlTW9kZSgpKQorICAgICAgICByZXR1cm4gY29sbGF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgYWxsIERlY2ltYWxGb3JtYXQKKyAgICAgKiBpbnN0YW5jZXMgb3duZWQgYnkgdGhpcyBmb3JtYXR0ZXIuICBUaGlzIG9iamVjdCBpcyBsYXppbHkgY3JlYXRlZDogdGhpcyBmdW5jdGlvbgorICAgICAqIGNyZWF0ZXMgaXQgdGhlIGZpcnN0IHRpbWUgaXQncyBjYWxsZWQuCisgICAgICogQHJldHVybiBUaGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgYWxsIERlY2ltYWxGb3JtYXQKKyAgICAgKiBpbnN0YW5jZXMgb3duZWQgYnkgdGhpcyBmb3JtYXR0ZXIuCisgICAgICovCisgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIC8vIGxhenktZXZhbHVhdGUgdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdC4gIFRoaXMgb2JqZWN0CisgICAgICAgIC8vIGlzIHNoYXJlZCBieSBhbGwgRGVjaW1hbEZvcm1hdCBpbnN0YW5jZXMgYmVsb25naW5nIHRvIHRoaXMKKyAgICAgICAgLy8gZm9ybWF0dGVyCisgICAgICAgIGlmIChkZWNpbWFsRm9ybWF0U3ltYm9scyA9PSBudWxsKSB7CisgICAgICAgICAgICBkZWNpbWFsRm9ybWF0U3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWNpbWFsRm9ybWF0U3ltYm9sczsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhpcyBleHRyYWN0cyB0aGUgc3BlY2lhbCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBydWxlIHNldHMgYmVmb3JlIHRoZQorICAgICAqIG1haW4gcGFyc2luZyBzdGFydHMuICBFeHRyYSB3aGl0ZXNwYWNlIG11c3QgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZAorICAgICAqIGZyb20gdGhlIGRlc2NyaXB0aW9uLiAgSWYgZm91bmQsIHRoZSBzcGVjaWFsIGluZm9ybWF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUKKyAgICAgKiBkZXNjcmlwdGlvbiBhbmQgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgZGVzY3JpcHRpb24gaXMgdW5jaGFuZ2VkIGFuZCBudWxsCisgICAgICogaXMgcmV0dXJuZWQuICBOb3RlOiB0aGUgdHJhaWxpbmcgc2VtaWNvbG9uIGF0IHRoZSBlbmQgb2YgdGhlIHNwZWNpYWwKKyAgICAgKiBydWxlcyBpcyBzdHJpcHBlZC4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gdGhlIHJibmYgZGVzY3JpcHRpb24gd2l0aCBleHRyYSB3aGl0ZXNwYWNlIHJlbW92ZWQKKyAgICAgKiBAcGFyYW0gc3BlY2lhbE5hbWUgdGhlIG5hbWUgb2YgdGhlIHNwZWNpYWwgcnVsZSB0ZXh0IHRvIGV4dHJhY3QKKyAgICAgKiBAcmV0dXJuIHRoZSBzcGVjaWFsIHJ1bGUgdGV4dCwgb3IgbnVsbCBpZiB0aGUgcnVsZSB3YXMgbm90IGZvdW5kCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZXh0cmFjdFNwZWNpYWwoU3RyaW5nQnVmZmVyIGRlc2NyaXB0aW9uLCBTdHJpbmcgc3BlY2lhbE5hbWUpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG51bGw7CisgICAgICAgIGludCBscCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjcmlwdGlvbiwgc3BlY2lhbE5hbWUpOworICAgICAgICBpZiAobHAgIT0gLTEpIHsKKyAgICAgICAgICAgIC8vIHdlJ3ZlIGdvdCB0byBtYWtlIHN1cmUgd2UncmUgbm90IGluIHRoZSBtaWRkbGUgb2YgYSBydWxlCisgICAgICAgICAgICAvLyAod2hlcmUgc3BlY2lhbE5hbWUgd291bGQgYWN0dWFsbHkgZ2V0IHRyZWF0ZWQgYXMKKyAgICAgICAgICAgIC8vIHJ1bGUgdGV4dCkKKyAgICAgICAgICAgIGlmIChscCA9PSAwIHx8IGRlc2NyaXB0aW9uLmNoYXJBdChscCAtIDEpID09ICc7JykgeworICAgICAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGFjdHVhbCBzcGVjaWFsCisgICAgICAgICAgICAgICAgLy8gcnVsZXMgKHRoZXJlIG1heSBiZSB3aGl0ZXNwYWNlIGJldHdlZW4gdGhlIG5hbWUgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHRva2VuIGluIHRoZSBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICBpbnQgbHBFbmQgPSBVdGlsaXR5LmluZGV4T2YoZGVzY3JpcHRpb24sICI7JSIsIGxwKTsKKworICAgICAgICAgICAgICAgIGlmIChscEVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBscEVuZCA9IGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMTsgLy8gbGF0ZXIgd2UgYWRkIDEgYmFjayB0byBnZXQgdGhlICclJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgbHBTdGFydCA9IGxwICsgc3BlY2lhbE5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxwU3RhcnQgPCBscEVuZCAmJgorICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi5jaGFyQXQobHBTdGFydCkpKSB7CisgICAgICAgICAgICAgICAgICAgICsrbHBTdGFydDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBjb3B5IG91dCB0aGUgc3BlY2lhbCBydWxlcworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhscFN0YXJ0LCBscEVuZCk7CisKKyAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIHNwZWNpYWwgcnVsZSBmcm9tIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmRlbGV0ZShscCwgbHBFbmQrMSk7IC8vIGRlbGV0ZSB0aGUgc2VtaWNvbG9uIGJ1dCBub3QgdGhlICclJworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIGRlc2NyaXB0aW9uIGFuZCB1c2VzIGl0IHRvIGJ1aWxkIGFsbCBvZgorICAgICAqIGludGVybmFsIGRhdGEgc3RydWN0dXJlcyB0aGF0IHRoZSBmb3JtYXR0ZXIgdXNlcyB0byBkbyBmb3JtYXR0aW5nCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBUaGlzIGlzIGVpdGhlciBwYXNzZWQgaW4gYnkgdGhlIGNhbGxlciBvciBsb2FkZWQgb3V0IG9mIGEgcmVzb3VyY2UKKyAgICAgKiBieSBvbmUgb2YgdGhlIGNvbnN0cnVjdG9ycywgYW5kIGlzIGluIHRoZSBkZXNjcmlwdGlvbiBmb3JtYXQgc3BlY2lmaWVkCisgICAgICogaW4gdGhlIGNsYXNzIGRvY3MuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgaW5pdExvY2FsaXphdGlvbnMobG9jYWxpemF0aW9ucyk7CisKKyAgICAgICAgLy8gc3RhcnQgYnkgc3RyaXBwaW5nIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gYWxsIHRoZSBydWxlcworICAgICAgICAvLyAodGhpcyBpcyBhbGwgdGhlIHdoaXRlc3BhY2UgZm9sbHdpbmcgZWFjaCBzZW1pY29sb24gaW4gdGhlCisgICAgICAgIC8vIGRlc2NyaXB0aW9uKS4gIFRoaXMgYWxsb3dzIHVzIHRvIGxvb2sgZm9yIHJ1bGUtc2V0IGJvdW5kYXJpZXMKKyAgICAgICAgLy8gYnkgc2VhcmNoaW5nIGZvciAiOyUiIHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IHdoaXRlc3BhY2UKKyAgICAgICAgLy8gYmV0d2VlbiB0aGUgOyBhbmQgdGhlICUKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc2NCdWYgPSBzdHJpcFdoaXRlc3BhY2UoZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGEgc2V0IG9mIGxlbmllbnQtcGFyc2UgcnVsZXMuICBJZiB0aGVyZQorICAgICAgICAvLyBpcywgcHVsbCB0aGVtIG91dCBpbnRvIG91ciB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSBmb3IgdGhlbSwKKyAgICAgICAgLy8gYW5kIGRlbGV0ZSB0aGVtIGZyb20gdGhlIGRlc2NyaXB0aW9uIGJlZm9yZSB0aGUgcmVhbCBkZXNjaXB0aW9uLQorICAgICAgICAvLyBwYXJzaW5nIGNvZGUgc2VlcyB0aGVtCisKKyAgICAgICAgbGVuaWVudFBhcnNlUnVsZXMgPSBleHRyYWN0U3BlY2lhbChkZXNjQnVmLCAiJSVsZW5pZW50LXBhcnNlOiIpOworICAgICAgICBwb3N0UHJvY2Vzc1J1bGVzID0gZXh0cmFjdFNwZWNpYWwoZGVzY0J1ZiwgIiUlcG9zdC1wcm9jZXNzOiIpOworCisgICAgICAgIC8vIHByZS1mbGlnaHQgcGFyc2luZyB0aGUgZGVzY3JpcHRpb24gYW5kIGNvdW50IHRoZSBudW1iZXIgb2YKKyAgICAgICAgLy8gcnVsZSBzZXRzICgiOyUiIG1hcmtzIHRoZSBlbmQgb2Ygb25lIHJ1bGUgc2V0IGFuZCB0aGUgYmVnaW5uaW5nCisgICAgICAgIC8vIG9mIHRoZSBuZXh0KQorICAgICAgICBpbnQgbnVtUnVsZVNldHMgPSAwOworICAgICAgICBmb3IgKGludCBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIpOyBwICE9IC0xOyBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIsIHApKSB7CisgICAgICAgICAgICArK251bVJ1bGVTZXRzOworICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgICAgICsrbnVtUnVsZVNldHM7CisKKyAgICAgICAgLy8gb3VyIHJ1bGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgYXBwcnByaWF0ZSBzaXplCisgICAgICAgIHJ1bGVTZXRzID0gbmV3IE5GUnVsZVNldFtudW1SdWxlU2V0c107CisKKyAgICAgICAgLy8gZGl2aWRlIHVwIHRoZSBkZXNjcmlwdGlvbnMgaW50byBpbmRpdmlkdWFsIHJ1bGUtc2V0IGRlc2NyaXB0aW9ucworICAgICAgICAvLyBhbmQgc3RvcmUgdGhlbSBpbiBhIHRlbXBvcmFyeSBhcnJheS4gIEF0IGVhY2ggc3RlcCwgd2UgYWxzbworICAgICAgICAvLyBuZXcgdXAgYSBydWxlIHNldCwgYnV0IGFsbCB0aGlzIGRvZXMgaXMgaW5pdGlhbGl6ZSBpdHMgbmFtZQorICAgICAgICAvLyBhbmQgcmVtb3ZlIGl0IGZyb20gaXRzIGRlc2NyaXB0aW9uLiAgV2UgY2FuJ3QgYWN0dWFsbHkgcGFyc2UKKyAgICAgICAgLy8gdGhlIHJlc3Qgb2YgdGhlIGRlc2NyaXB0aW9ucyBhbmQgZmluaXNoIGluaXRpYWxpemluZyBldmVyeXRoaW5nCisgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGF2ZSB0byBrbm93IHRoZSBuYW1lcyBhbmQgbG9jYXRpb25zIG9mIGFsbCB0aGUgcnVsZQorICAgICAgICAvLyBzZXRzIGJlZm9yZSB3ZSBjYW4gYWN0dWFsbHkgc2V0IGV2ZXJ5dGhpbmcgdXAKKyAgICAgICAgU3RyaW5nW10gcnVsZVNldERlc2NyaXB0aW9ucyA9IG5ldyBTdHJpbmdbbnVtUnVsZVNldHNdOworCisgICAgICAgIGludCBjdXJSdWxlU2V0ID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjQnVmLCAiOyUiKTsgcCAhPSAtMTsgcCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjQnVmLCAiOyUiLCBzdGFydCkpIHsKKyAgICAgICAgICAgIHJ1bGVTZXREZXNjcmlwdGlvbnNbY3VyUnVsZVNldF0gPSBkZXNjQnVmLnN1YnN0cmluZyhzdGFydCwgcCArIDEpOworICAgICAgICAgICAgcnVsZVNldHNbY3VyUnVsZVNldF0gPSBuZXcgTkZSdWxlU2V0KHJ1bGVTZXREZXNjcmlwdGlvbnMsIGN1clJ1bGVTZXQpOworICAgICAgICAgICAgKytjdXJSdWxlU2V0OworICAgICAgICAgICAgc3RhcnQgPSBwICsgMTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0RGVzY3JpcHRpb25zW2N1clJ1bGVTZXRdID0gZGVzY0J1Zi5zdWJzdHJpbmcoc3RhcnQpOworICAgICAgICBydWxlU2V0c1tjdXJSdWxlU2V0XSA9IG5ldyBORlJ1bGVTZXQocnVsZVNldERlc2NyaXB0aW9ucywgY3VyUnVsZVNldCk7CisKKyAgICAgICAgLy8gbm93IHdlIGNhbiB0YWtlIG5vdGUgb2YgdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQsIHdoaWNoCisgICAgICAgIC8vIGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBpbiB0aGUgZGVzY3JpcHRpb24gKGl0J3MgdGhlIGxhc3QKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gdGhlIGZpcnN0IHNvIHRoYXQgYSB1c2VyIGNhbiBjcmVhdGUgYSBuZXcgZm9ybWF0dGVyCisgICAgICAgIC8vIGZyb20gYW4gZXhpc3RpbmcgZm9ybWF0dGVyIGFuZCBjaGFuZ2UgaXRzIGRlZmF1bHQgYmV2aGFpb3IganVzdAorICAgICAgICAvLyBieSBhcHBlbmRpbmcgbW9yZSBydWxlIHNldHMgdG8gdGhlIGVuZCkKKworICAgICAgICAvLyB7ZGxmfSBJbml0aWFsaXphdGlvbiBvZiBhIGZyYWN0aW9uIHJ1bGUgc2V0IHJlcXVpcmVzIHRoZSBkZWZhdWx0IHJ1bGUKKyAgICAgICAgLy8gc2V0IHRvIGJlIGtub3duLiAgRm9yIHB1cnBvc2VzIG9mIGluaXRpYWxpemF0aW9uLCB0aGlzIGlzIGFsd2F5cyB0aGUKKyAgICAgICAgLy8gbGFzdCBwdWJsaWMgcnVsZSBzZXQsIG5vIG1hdHRlciB3aGF0IHRoZSBsb2NhbGl6YXRpb24gZGF0YSBzYXlzLgorICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW3J1bGVTZXRzLmxlbmd0aCAtIDFdOworICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2UgY2FuIGdvIGJhY2sgdGhyb3VnaCB0aGUgdGVtcG9yYXJ5IGRlc2NyaXB0aW9ucworICAgICAgICAvLyBsaXN0IGFuZCBmaW5pc2ggc2V0aW5nIHVwIHRoZSBzdWJzdHJ1Y3R1cmUgKGFuZCB3ZSB0aHJvdworICAgICAgICAvLyBhd2F5IHRoZSB0ZW1wb3JhcnkgZGVzY3JpcHRpb25zIGFzIHdlIGdvKQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBydWxlU2V0c1tpXS5wYXJzZVJ1bGVzKHJ1bGVTZXREZXNjcmlwdGlvbnNbaV0sIHRoaXMpOworICAgICAgICAgICAgcnVsZVNldERlc2NyaXB0aW9uc1tpXSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGhhdCB0aGUgcnVsZXMgYXJlIGluaXRpYWxpemVkLCB0aGUgJ3JlYWwnIGRlZmF1bHQgcnVsZQorICAgICAgICAvLyBzZXQgY2FuIGJlIGFkanVzdGVkIGJ5IHRoZSBsb2NhbGl6YXRpb24gZGF0YS4KKworICAgICAgICAvLyBjb3VudCB0aGUgbnVtYmVyIG9mIHB1YmxpYyBydWxlIHNldHMKKyAgICAgICAgLy8gKHB1YmxpYyBydWxlIHNldHMgaGF2ZSBuYW1lcyB0aGF0IGJlZ2luIHdpdGggJSBpbnN0ZWFkIG9mICUlKQorICAgICAgICBpbnQgcHVibGljUnVsZVNldENvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlU2V0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgICsrcHVibGljUnVsZVNldENvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcHJlcGFyZSBhbiBhcnJheSBvZiB0aGUgcHJvcGVyIHNpemUgYW5kIGNvcHkgdGhlIG5hbWVzIGludG8gaXQKKyAgICAgICAgU3RyaW5nW10gcHVibGljUnVsZVNldFRlbXAgPSBuZXcgU3RyaW5nW3B1YmxpY1J1bGVTZXRDb3VudF07CisgICAgICAgIHB1YmxpY1J1bGVTZXRDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgIHB1YmxpY1J1bGVTZXRUZW1wW3B1YmxpY1J1bGVTZXRDb3VudCsrXSA9IHJ1bGVTZXRzW2ldLmdldE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwdWJsaWNSdWxlU2V0TmFtZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gY29uZmlybSB0aGUgbmFtZXMsIGlmIGFueSBhcmVuJ3QgaW4gdGhlIHJ1bGVzLCB0aGF0J3MgYW4gZXJyb3IKKyAgICAgICAgICAgIC8vIGl0IGlzIG9rIGlmIHRoZSBydWxlcyBjb250YWluIHB1YmxpYyBydWxlIHNldHMgdGhhdCBhcmUgbm90IGluIHRoaXMgbGlzdAorICAgICAgICAgICAgbG9vcDogZm9yIChpbnQgaSA9IDA7IGkgPCBwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHB1YmxpY1J1bGVTZXROYW1lc1tpXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHB1YmxpY1J1bGVTZXRUZW1wLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmVxdWFscyhwdWJsaWNSdWxlU2V0VGVtcFtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxvb3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZGlkIG5vdCBmaW5kIHB1YmxpYyBydWxlIHNldDogIiArIG5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IGZpbmRSdWxlU2V0KHB1YmxpY1J1bGVTZXROYW1lc1swXSk7IC8vIG1pZ2h0IGJlIGRpZmZlcmVudAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVibGljUnVsZVNldE5hbWVzID0gcHVibGljUnVsZVNldFRlbXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSBsb2NhbGl6YXRpb25zIGFycmF5IGFuZCBjcmVhdGUgYSBNYXAgZnJvbSB0aGUgbG9jYWxlIHN0cmluZ3MgdG8KKyAgICAgKiB0aGUgbG9jYWxpemF0aW9uIGFycmF5cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdExvY2FsaXphdGlvbnMoU3RyaW5nW11bXSBsb2NhbGl6YXRpb25zKSB7CisgICAgICAgIGlmIChsb2NhbGl6YXRpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgIHB1YmxpY1J1bGVTZXROYW1lcyA9IChTdHJpbmdbXSlsb2NhbGl6YXRpb25zWzBdLmNsb25lKCk7CisKKyAgICAgICAgICAgIE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbG9jYWxpemF0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGRhdGEgPSBsb2NhbGl6YXRpb25zW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBkYXRhWzBdOworICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gbmV3IFN0cmluZ1tkYXRhLmxlbmd0aC0xXTsKKyAgICAgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHB1YmxpY1J1bGVTZXROYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicHVibGljIG5hbWUgbGVuZ3RoOiAiICsgcHVibGljUnVsZVNldE5hbWVzLmxlbmd0aCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAhPSBsb2NhbGl6ZWQgbmFtZXNbIiArIGkgKyAiXSBsZW5ndGg6ICIgKyBuYW1lcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGEsIDEsIG5hbWVzLCAwLCBuYW1lcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIG0ucHV0KGxvY2FsZSwgbmFtZXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldERpc3BsYXlOYW1lcyA9IG07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgaW5pdCgpIHRvIHN0cmlwIHdoaXRlc3BhY2UgYmV0d2VlbiBydWxlcyAoaS5lLiwKKyAgICAgKiBhZnRlciBzZW1pY29sb25zKS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGZvcm1hdHRlciBkZXNjcmlwdGlvbgorICAgICAqIEByZXR1cm4gVGhlIGRlc2NyaXB0aW9uIHdpdGggYWxsIHRoZSB3aGl0ZXNwYWNlIHRoYXQgZm9sbG93cyBzZW1pY29sb25zCisgICAgICogdGFrZW4gb3V0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHN0cmlwV2hpdGVzcGFjZShTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIG1ldGhvZCB0aGF0IGRlbGV0ZXMgY2hhcmFjdGVycyAod2h5PyEhKQorICAgICAgICAvLyBjcmVhdGUgYSBuZXcgU3RyaW5nQnVmZmVyIHRvIGNvcHkgdGhlIHRleHQgaW50bworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCB0aGUgY2hhcmFjdGVycy4uLgorICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICB3aGlsZSAoc3RhcnQgIT0gLTEgJiYgc3RhcnQgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gc2VlayB0byB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLi4uCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGRlc2NyaXB0aW9uLmNoYXJBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9pZiB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIHNlbWljb2xvbiwgc2tpcCBpdCBhbmQgY29udGludWUKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpICYmIGRlc2NyaXB0aW9uLmNoYXJBdChzdGFydCkgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbG9jYXRlIHRoZSBuZXh0IHNlbWljb2xvbiBpbiB0aGUgdGV4dCBhbmQgY29weSB0aGUgdGV4dCBmcm9tCisgICAgICAgICAgICAvLyBvdXIgY3VycmVudCBwb3NpdGlvbiB1cCB0byB0aGF0IHNlbWljb2xvbiBpbnRvIHRoZSByZXN1bHQKKyAgICAgICAgICAgIGludCBwOworICAgICAgICAgICAgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoJzsnLCBzdGFydCk7CisgICAgICAgICAgICBpZiAocCA9PSAtMSkgeworICAgICAgICAgICAgICAgIC8vIG9yIGlmIHdlIGRvbid0IGZpbmQgYSBzZW1pY29sb24sIGp1c3QgY29weSB0aGUgcmVzdCBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcgaW50byB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoc3RhcnQpKTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoc3RhcnQsIHAgKyAxKSk7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwICsgMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gd2hlbiB3ZSBnZXQgaGVyZSwgd2UndmUgc2Vla2VkIG9mZiB0aGUgZW5kIG9mIHRoZSBzcmluZywgYW5kCisgICAgICAgICAgICAvLyB3ZSB0ZXJtaW5hdGUgdGhlIGxvb3AgKHdlIGNvbnRpbnVlIHVudGlsICpzdGFydCogaXMgLTEgcmF0aGVyCisgICAgICAgICAgICAvLyB0aGFuIHVudGlsICpwKiBpcyAtMSwgYmVjYXVzZSBvdGhlcndpc2Ugd2UnZCBtaXNzIHRoZSBsYXN0CisgICAgICAgICAgICAvLyBydWxlIGluIHRoZSBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBPTkxZIERVUklORyBDT05TVFJVQ1RJT04gdG8gZmlsbCBpbiB0aGUKKyAgICAgKiBkZWZhdWx0UnVsZVNldCB2YXJpYWJsZSBvbmNlIHdlJ3ZlIHNldCB1cCBhbGwgdGhlIHJ1bGUgc2V0cy4KKyAgICAgKiBUaGUgZGVmYXVsdCBydWxlIHNldCBpcyB0aGUgbGFzdCBwdWJsaWMgcnVsZSBzZXQgaW4gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIChJdCdzIHRoZSBsYXN0IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBzbyB0aGF0IGEgY2FsbGVyIGNhbiBhcHBlbmQKKyAgICAgKiB0ZXh0IHRvIHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZm9ybWF0dGVyIGRlc2NyaXB0aW9uIHRvIGNoYW5nZSBpdHMKKyAgICAgKiBiZWhhdmlvci4pCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXREZWZhdWx0UnVsZVNldCgpIHsKKyAgICAgICAgLy8gc2VlayBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3QgdW50aWwgd2UgcmVhY2ggYSBydWxlIHNldAorICAgICAgICAvLyB3aG9zZSBuYW1lIERPRVNOJ1QgYmVnaW4gd2l0aCAlJS4gIFRoYXQncyB0aGUgZGVmYXVsdCBydWxlIHNldAorICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW3J1bGVTZXRzLmxlbmd0aCAtIDFdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQm90dGxlbmVjayB0aHJvdWdoIHdoaWNoIGFsbCB0aGUgcHVibGljIGZvcm1hdCgpIG1ldGhvZHMKKyAgICAgKiB0aGF0IHRha2UgYSBkb3VibGUgcGFzcy4gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGtub3cKKyAgICAgKiB3aGljaCBydWxlIHNldCB3ZSdyZSB1c2luZyB0byBkbyB0aGUgZm9ybWF0dGluZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0CisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIHJ1bGUgc2V0IHRvIHVzZSB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAqIEByZXR1cm4gVGhlIHRleHQgdGhhdCByZXN1bHRlZCBmcm9tIGZvcm1hdHRpbmcgdGhlIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGZvcm1hdChkb3VibGUgbnVtYmVyLCBORlJ1bGVTZXQgcnVsZVNldCkgeworICAgICAgICAvLyBhbGwgQVBJIGZvcm1hdCgpIHJvdXRpbmVzIHRoYXQgdGFrZSBhIGRvdWJsZSB2ZWN0b3IgdGhyb3VnaAorICAgICAgICAvLyBoZXJlLiAgQ3JlYXRlIGFuIGVtcHR5IHN0cmluZyBidWZmZXIgd2hlcmUgdGhlIHJlc3VsdCB3aWxsCisgICAgICAgIC8vIGJlIGJ1aWx0LCBhbmQgcGFzcyBpdCB0byB0aGUgcnVsZSBzZXQgKGFsb25nIHdpdGggYW4gaW5zZXJ0aW9uCisgICAgICAgIC8vIHBvc2l0aW9uIG9mIDAgYW5kIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkKSB0byB0aGUgcnVsZSBzZXQKKyAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyLCByZXN1bHQsIDApOworICAgICAgICBwb3N0UHJvY2VzcyhyZXN1bHQsIHJ1bGVTZXQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm90dGxlbmVjayB0aHJvdWdoIHdoaWNoIGFsbCB0aGUgcHVibGljIGZvcm1hdCgpIG1ldGhvZHMKKyAgICAgKiB0aGF0IHRha2UgYSBsb25nIHBhc3MuIEJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlLCB3ZSBrbm93CisgICAgICogd2hpY2ggcnVsZSBzZXQgd2UncmUgdXNpbmcgdG8gZG8gdGhlIGZvcm1hdHRpbmcuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdAorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCB0byB1c2UgdG8gZm9ybWF0IHRoZSBudW1iZXIKKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0IHRoYXQgcmVzdWx0ZWQgZnJvbSBmb3JtYXR0aW5nIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBmb3JtYXQobG9uZyBudW1iZXIsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgICAgIC8vIGFsbCBBUEkgZm9ybWF0KCkgcm91dGluZXMgdGhhdCB0YWtlIGEgZG91YmxlIHZlY3RvciB0aHJvdWdoCisgICAgICAgIC8vIGhlcmUuICBXZSBoYXZlIHRoZXNlIHR3byBpZGVudGljYWwgZnVuY3Rpb25zLS0gb25lIHRha2luZyBhCisgICAgICAgIC8vIGRvdWJsZSBhbmQgb25lIHRha2luZyBhIGxvbmctLSB0aGUgY291cGxlIGRpZ2l0cyBvZiBwcmVjaXNpb24KKyAgICAgICAgLy8gdGhhdCBsb25nIGhhcyBidXQgZG91YmxlIGRvZXNuJ3QgKGJvdGggdHlwZXMgYXJlIDggYnl0ZXMgbG9uZywKKyAgICAgICAgLy8gYnV0IGRvdWJsZSBoYXMgdG8gYm9ycm93IHNvbWUgb2YgdGhlIG1hbnRpc3NhIGJpdHMgdG8gaG9sZAorICAgICAgICAvLyB0aGUgZXhwb25lbnQpLgorICAgICAgICAvLyBDcmVhdGUgYW4gZW1wdHkgc3RyaW5nIGJ1ZmZlciB3aGVyZSB0aGUgcmVzdWx0IHdpbGwKKyAgICAgICAgLy8gYmUgYnVpbHQsIGFuZCBwYXNzIGl0IHRvIHRoZSBydWxlIHNldCAoYWxvbmcgd2l0aCBhbiBpbnNlcnRpb24KKyAgICAgICAgLy8gcG9zaXRpb24gb2YgMCBhbmQgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQpIHRvIHRoZSBydWxlIHNldAorICAgICAgICAvLyBmb3IgZm9ybWF0dGluZworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXIsIHJlc3VsdCwgMCk7CisgICAgICAgIHBvc3RQcm9jZXNzKHJlc3VsdCwgcnVsZVNldCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQb3N0LXByb2Nlc3MgdGhlIHJ1bGVzIGlmIHdlIGhhdmUgYSBwb3N0LXByb2Nlc3Nvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcG9zdFByb2Nlc3MoU3RyaW5nQnVmZmVyIHJlc3VsdCwgTkZSdWxlU2V0IHJ1bGVTZXQpIHsKKyAgICAgICAgaWYgKHBvc3RQcm9jZXNzUnVsZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHBvc3RQcm9jZXNzb3IgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGludCBpeCA9IHBvc3RQcm9jZXNzUnVsZXMuaW5kZXhPZigiOyIpOworICAgICAgICAgICAgICAgIGlmIChpeCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpeCA9IHBvc3RQcm9jZXNzUnVsZXMubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBwcENsYXNzTmFtZSA9IHBvc3RQcm9jZXNzUnVsZXMuc3Vic3RyaW5nKDAsIGl4KS50cmltKCk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZShwcENsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IgPSAoUkJORlBvc3RQcm9jZXNzb3IpY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IuaW5pdCh0aGlzLCBwb3N0UHJvY2Vzc1J1bGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlYnVnLCBwcmludCBpdCBvdXQKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb3VsZCBub3QgbG9jYXRlICIgKyBwcENsYXNzTmFtZSArICIsIGVycm9yICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBwb3N0UHJvY2Vzc1J1bGVzID0gbnVsbDsgLy8gZG9uJ3QgdHJ5IGFnYWluCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvc3RQcm9jZXNzb3IucHJvY2VzcyhyZXN1bHQsIHJ1bGVTZXQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmFtZWQgcnVsZSBzZXQuICBUaHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogaWYgdGhpcyBmb3JtYXR0ZXIgZG9lc24ndCBoYXZlIGEgcnVsZSBzZXQgd2l0aCB0aGF0IG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGRlc2lyZWQgcnVsZSBzZXQKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlIHNldCB3aXRoIHRoYXQgbmFtZQorICAgICAqLworICAgIE5GUnVsZVNldCBmaW5kUnVsZVNldChTdHJpbmcgbmFtZSkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChydWxlU2V0c1tpXS5nZXROYW1lKCkuZXF1YWxzKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5vIHJ1bGUgc2V0IG5hbWVkICIgKyBuYW1lKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmY2MGZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDY0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKKworLyoqCisgKiA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4gaXMgYSB0cmFuc2xpdGVyYXRvcgorICogdGhhdCByZWFkcyBhIHNldCBvZiBydWxlcyBpbiBvcmRlciB0byBkZXRlcm1pbmUgaG93IHRvIHBlcmZvcm0KKyAqIHRyYW5zbGF0aW9ucy4gUnVsZSBzZXRzIGFyZSBzdG9yZWQgaW4gcmVzb3VyY2UgYnVuZGxlcyBpbmRleGVkIGJ5CisgKiBuYW1lLiBSdWxlcyB3aXRoaW4gYSBydWxlIHNldCBhcmUgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMgKCc7JykuCisgKiBUbyBpbmNsdWRlIGEgbGl0ZXJhbCBzZW1pY29sb24sIHByZWZpeCBpdCB3aXRoIGEgYmFja3NsYXNoICgnXCcpLgorICogV2hpdGVzcGFjZSwgYXMgZGVmaW5lZCBieSA8Y29kZT5VQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpPC9jb2RlPiwKKyAqIGlzIGlnbm9yZWQuIElmIHRoZSBmaXJzdCBub24tYmxhbmsgY2hhcmFjdGVyIG9uIGEgbGluZSBpcyAnIycsCisgKiB0aGUgZW50aXJlIGxpbmUgaXMgaWdub3JlZCBhcyBhIGNvbW1lbnQuIDwvcD4KKyAqCisgKiA8cD5FYWNoIHNldCBvZiBydWxlcyBjb25zaXN0cyBvZiB0d28gZ3JvdXBzLCBvbmUgZm9yd2FyZCwgYW5kIG9uZQorICogcmV2ZXJzZS4gVGhpcyBpcyBhIGNvbnZlbnRpb24gdGhhdCBpcyBub3QgZW5mb3JjZWQ7IHJ1bGVzIGZvciBvbmUKKyAqIGRpcmVjdGlvbiBtYXkgYmUgb21pdHRlZCwgd2l0aCB0aGUgcmVzdWx0IHRoYXQgdHJhbnNsYXRpb25zIGluCisgKiB0aGF0IGRpcmVjdGlvbiB3aWxsIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSB0ZXh0LiBJbiBhZGRpdGlvbiwKKyAqIGJpZGlyZWN0aW9uYWwgZm9yd2FyZC1yZXZlcnNlIHJ1bGVzIG1heSBiZSBzcGVjaWZpZWQgZm9yCisgKiBzeW1tZXRyaWNhbCB0cmFuc2Zvcm1hdGlvbnMuPC9wPgorICoKKyAqIDxwPjxiPlJ1bGUgc3ludGF4PC9iPiA8L3A+CisgKgorICogPHA+UnVsZSBzdGF0ZW1lbnRzIHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6IDwvcD4KKyAqCisgKiA8ZGw+CisgKiAgICAgPGR0Pjxjb2RlPiRhbGVmbWFkZGE9XHUwNjIyOzwvY29kZT48L2R0PgorICogICAgIDxkZD48c3Ryb25nPlZhcmlhYmxlIGRlZmluaXRpb24uPC9zdHJvbmc+IFRoZSBuYW1lIG9uIHRoZQorICogICAgICAgICBsZWZ0IGlzIGFzc2lnbmVkIHRoZSB0ZXh0IG9uIHRoZSByaWdodC4gSW4gdGhpcyBleGFtcGxlLAorICogICAgICAgICBhZnRlciB0aGlzIHN0YXRlbWVudCwgaW5zdGFuY2VzIG9mIHRoZSBsZWZ0IGhhbmQgbmFtZSwKKyAqICAgICAgICAgJnF1b3Q7PGNvZGU+JGFsZWZtYWRkYTwvY29kZT4mcXVvdDssIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAqICAgICAgICAgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDYyMi4gVmFyaWFibGUgbmFtZXMgbXVzdCBiZWdpbgorICogICAgICAgICB3aXRoIGEgbGV0dGVyIGFuZCBjb25zaXN0IG9ubHkgb2YgbGV0dGVycywgZGlnaXRzLCBhbmQKKyAqICAgICAgICAgdW5kZXJzY29yZXMuIENhc2UgaXMgc2lnbmlmaWNhbnQuIER1cGxpY2F0ZSBuYW1lcyBjYXVzZQorICogICAgICAgICBhbiBleGNlcHRpb24gdG8gYmUgdGhyb3duLCB0aGF0IGlzLCB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiAgICAgICAgIHJlZGVmaW5lZC4gVGhlIHJpZ2h0IGhhbmQgc2lkZSBtYXkgY29udGFpbiB3ZWxsLWZvcm1lZAorICogICAgICAgICB0ZXh0IG9mIGFueSBsZW5ndGgsIGluY2x1ZGluZyBubyB0ZXh0IGF0IGFsbCAoJnF1b3Q7PGNvZGU+JGVtcHR5PTs8L2NvZGU+JnF1b3Q7KS4KKyAqICAgICAgICAgVGhlIHJpZ2h0IGhhbmQgc2lkZSBtYXkgY29udGFpbiBlbWJlZGRlZCA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPgorICogICAgICAgICBwYXR0ZXJucywgZm9yIGV4YW1wbGUsICZxdW90Ozxjb2RlPiRzb2Z0dm93ZWw9W2VpeUVJWV08L2NvZGU+JnF1b3Q7LjwvZGQ+CisgKiAgICAgPGRkPiZuYnNwOzwvZGQ+CisgKiAgICAgPGR0Pjxjb2RlPmFpJmd0OyRhbGVmbWFkZGE7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+Rm9yd2FyZCB0cmFuc2xhdGlvbiBydWxlLjwvc3Ryb25nPiBUaGlzIHJ1bGUKKyAqICAgICAgICAgc3RhdGVzIHRoYXQgdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aWxsIGJlIGNoYW5nZWQgdG8gdGhlCisgKiAgICAgICAgIHN0cmluZyBvbiB0aGUgcmlnaHQgd2hlbiBwZXJmb3JtaW5nIGZvcndhcmQKKyAqICAgICAgICAgdHJhbnNsaXRlcmF0aW9uLjwvZGQ+CisgKiAgICAgPGR0PiZuYnNwOzwvZHQ+CisgKiAgICAgPGR0Pjxjb2RlPmFpJmx0OyRhbGVmbWFkZGE7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+UmV2ZXJzZSB0cmFuc2xhdGlvbiBydWxlLjwvc3Ryb25nPiBUaGlzIHJ1bGUKKyAqICAgICAgICAgc3RhdGVzIHRoYXQgdGhlIHN0cmluZyBvbiB0aGUgcmlnaHQgd2lsbCBiZSBjaGFuZ2VkIHRvCisgKiAgICAgICAgIHRoZSBzdHJpbmcgb24gdGhlIGxlZnQgd2hlbiBwZXJmb3JtaW5nIHJldmVyc2UKKyAqICAgICAgICAgdHJhbnNsaXRlcmF0aW9uLjwvZGQ+CisgKiA8L2RsPgorICoKKyAqIDxkbD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmbHQ7Jmd0OyRhbGVmbWFkZGE7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+QmlkaXJlY3Rpb25hbCB0cmFuc2xhdGlvbiBydWxlLjwvc3Ryb25nPiBUaGlzCisgKiAgICAgICAgIHJ1bGUgc3RhdGVzIHRoYXQgdGhlIHN0cmluZyBvbiB0aGUgcmlnaHQgd2lsbCBiZSBjaGFuZ2VkCisgKiAgICAgICAgIHRvIHRoZSBzdHJpbmcgb24gdGhlIGxlZnQgd2hlbiBwZXJmb3JtaW5nIGZvcndhcmQKKyAqICAgICAgICAgdHJhbnNsaXRlcmF0aW9uLCBhbmQgdmljZSB2ZXJzYSB3aGVuIHBlcmZvcm1pbmcgcmV2ZXJzZQorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqIDwvZGw+CisgKgorICogPHA+VHJhbnNsYXRpb24gcnVsZXMgY29uc2lzdCBvZiBhIDxlbT5tYXRjaCBwYXR0ZXJuPC9lbT4gYW5kIGFuIDxlbT5vdXRwdXQKKyAqIHN0cmluZzwvZW0+LiBUaGUgbWF0Y2ggcGF0dGVybiBjb25zaXN0cyBvZiBsaXRlcmFsIGNoYXJhY3RlcnMsCisgKiBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGNvbnRleHQsIGFuZCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5CisgKiBjb250ZXh0LiBDb250ZXh0IGNoYXJhY3RlcnMsIGxpa2UgbGl0ZXJhbCBwYXR0ZXJuIGNoYXJhY3RlcnMsCisgKiBtdXN0IGJlIG1hdGNoZWQgaW4gdGhlIHRleHQgYmVpbmcgdHJhbnNsaXRlcmF0ZWQuIEhvd2V2ZXIsIHVubGlrZQorICogbGl0ZXJhbCBwYXR0ZXJuIGNoYXJhY3RlcnMsIHRoZXkgYXJlIG5vdCByZXBsYWNlZCBieSB0aGUgb3V0cHV0CisgKiB0ZXh0LiBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4gJnF1b3Q7PGNvZGU+YWJje2RlZn08L2NvZGU+JnF1b3Q7CisgKiBpbmRpY2F0ZXMgdGhlIGNoYXJhY3RlcnMgJnF1b3Q7PGNvZGU+ZGVmPC9jb2RlPiZxdW90OyBtdXN0IGJlCisgKiBwcmVjZWRlZCBieSAmcXVvdDs8Y29kZT5hYmM8L2NvZGU+JnF1b3Q7IGZvciBhIHN1Y2Nlc3NmdWwgbWF0Y2guCisgKiBJZiB0aGVyZSBpcyBhIHN1Y2Nlc3NmdWwgbWF0Y2gsICZxdW90Ozxjb2RlPmRlZjwvY29kZT4mcXVvdDsgd2lsbAorICogYmUgcmVwbGFjZWQsIGJ1dCBub3QgJnF1b3Q7PGNvZGU+YWJjPC9jb2RlPiZxdW90Oy4gVGhlIGZpbmFsICc8Y29kZT59PC9jb2RlPicKKyAqIGlzIG9wdGlvbmFsLCBzbyAmcXVvdDs8Y29kZT5hYmN7ZGVmPC9jb2RlPiZxdW90OyBpcyBlcXVpdmFsZW50IHRvCisgKiAmcXVvdDs8Y29kZT5hYmN7ZGVmfTwvY29kZT4mcXVvdDsuIEFub3RoZXIgZXhhbXBsZSBpcyAmcXVvdDs8Y29kZT57MTIzfTQ1NjwvY29kZT4mcXVvdDsKKyAqIChvciAmcXVvdDs8Y29kZT4xMjN9NDU2PC9jb2RlPiZxdW90OykgaW4gd2hpY2ggdGhlIGxpdGVyYWwKKyAqIHBhdHRlcm4gJnF1b3Q7PGNvZGU+MTIzPC9jb2RlPiZxdW90OyBtdXN0IGJlIGZvbGxvd2VkIGJ5ICZxdW90Ozxjb2RlPjQ1NjwvY29kZT4mcXVvdDsuCisgKiA8L3A+CisgKgorICogPHA+VGhlIG91dHB1dCBzdHJpbmcgb2YgYSBmb3J3YXJkIG9yIHJldmVyc2UgcnVsZSBjb25zaXN0cyBvZgorICogY2hhcmFjdGVycyB0byByZXBsYWNlIHRoZSBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycy4gSWYgdGhlCisgKiBvdXRwdXQgc3RyaW5nIGNvbnRhaW5zIHRoZSBjaGFyYWN0ZXIgJzxjb2RlPnw8L2NvZGU+JywgdGhpcyBpcworICogdGFrZW4gdG8gaW5kaWNhdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSA8ZW0+Y3Vyc29yPC9lbT4gYWZ0ZXIKKyAqIHJlcGxhY2VtZW50LiBUaGUgY3Vyc29yIGlzIHRoZSBwb2ludCBpbiB0aGUgdGV4dCBhdCB3aGljaCB0aGUKKyAqIG5leHQgcmVwbGFjZW1lbnQsIGlmIGFueSwgd2lsbCBiZSBhcHBsaWVkLiBUaGUgY3Vyc29yIGlzIHVzdWFsbHkKKyAqIHBsYWNlZCB3aXRoaW4gdGhlIHJlcGxhY2VtZW50IHRleHQ7IGhvd2V2ZXIsIGl0IGNhbiBhY3R1YWxseSBiZQorICogcGxhY2VkIGludG8gdGhlIHByZWNlbmRpbmcgb3IgZm9sbG93aW5nIGNvbnRleHQgYnkgdXNpbmcgdGhlCisgKiBzcGVjaWFsIGNoYXJhY3RlciAnPGNvZGU+QDwvY29kZT4nLiBFeGFtcGxlczo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgICAgPHA+PGNvZGU+YSB7Zm9vfSB6ICZndDsgfCBAIGJhcjsgIyBmb28gLSZndDsgYmFyLCBtb3ZlIGN1cnNvcgorICogICAgIGJlZm9yZSBhPGJyPgorICogICAgIHtmb299IHh5eiAmZ3Q7IGJhciBAQHw7ICMmbmJzcDtmb28gLSZndDsgYmFyLCBjdXJzb3IgYmV0d2VlbgorICogICAgIHkgYW5kIHo8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPjxiPlVuaWNvZGVTZXQ8L2I+PC9wPgorICoKKyAqIDxwPjxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHBhdHRlcm5zIG1heSBhcHBlYXIgYW55d2hlcmUgdGhhdAorICogbWFrZXMgc2Vuc2UuIFRoZXkgbWF5IGFwcGVhciBpbiB2YXJpYWJsZSBkZWZpbml0aW9ucy4KKyAqIENvbnRyYXJpd2lzZSwgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gcGF0dGVybnMgbWF5IHRoZW1zZWx2ZXMKKyAqIGNvbnRhaW4gdmFyaWFibGUgcmVmZXJlbmNlcywgc3VjaCBhcyAmcXVvdDs8Y29kZT4kYT1bYS16XTskbm90X2E9W14kYV08L2NvZGU+JnF1b3Q7LAorICogb3IgJnF1b3Q7PGNvZGU+JHJhbmdlPWEtejskbGw9WyRyYW5nZV08L2NvZGU+JnF1b3Q7LjwvcD4KKyAqCisgKiA8cD48Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBwYXR0ZXJucyBtYXkgYWxzbyBiZSBlbWJlZGRlZCBkaXJlY3RseQorICogaW50byBydWxlIHN0cmluZ3MuIFRodXMsIHRoZSBmb2xsb3dpbmcgdHdvIHJ1bGVzIGFyZSBlcXVpdmFsZW50OjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgICA8cD48Y29kZT4kdm93ZWw9W2FlaW91XTsgJHZvd2VsJmd0OycqJzsgIyBPbmUgd2F5IHRvIGRvIHRoaXM8YnI+CisgKiAgICAgW2FlaW91XSZndDsnKic7CisgKiAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IworICogICAgIEFub3RoZXIgd2F5PC9jb2RlPjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5TZWUge0BsaW5rIFVuaWNvZGVTZXR9IGZvciBtb3JlIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzLjwvcD4KKyAqCisgKiA8cD48Yj5TZWdtZW50czwvYj48L3A+CisgKgorICogPHA+U2VnbWVudHMgb2YgdGhlIGlucHV0IHN0cmluZyBjYW4gYmUgbWF0Y2hlZCBhbmQgY29waWVkIHRvIHRoZQorICogb3V0cHV0IHN0cmluZy4gVGhpcyBtYWtlcyBjZXJ0YWluIHNldHMgb2YgcnVsZXMgc2ltcGxlciBhbmQgbW9yZQorICogZ2VuZXJhbCwgYW5kIG1ha2VzIHJlb3JkZXJpbmcgcG9zc2libGUuIEZvciBleGFtcGxlOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgICA8cD48Y29kZT4oW2Etel0pICZndDsgJDEgJDE7CisgKiAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IworICogICAgIGRvdWJsZSBsb3dlcmNhc2UgbGV0dGVyczxicj4KKyAqICAgICAoWzpMdTpdKSAoWzpMbDpdKSAmZ3Q7ICQyICQxOyAjIHJldmVyc2Ugb3JkZXIgb2YgTHUtTGwgcGFpcnM8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPlRoZSBzZWdtZW50IG9mIHRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgY29waWVkIGlzIGRlbGltaXRlZCBieQorICogJnF1b3Q7PGNvZGU+KDwvY29kZT4mcXVvdDsgYW5kICZxdW90Ozxjb2RlPik8L2NvZGU+JnF1b3Q7LiBVcCB0bworICogbmluZSBzZWdtZW50cyBtYXkgYmUgZGVmaW5lZC4gU2VnbWVudHMgbWF5IG5vdCBvdmVybGFwLiBJbiB0aGUKKyAqIG91dHB1dCBzdHJpbmcsICZxdW90Ozxjb2RlPiQxPC9jb2RlPiZxdW90OyB0aHJvdWdoICZxdW90Ozxjb2RlPiQ5PC9jb2RlPiZxdW90OworICogcmVwcmVzZW50IHRoZSBpbnB1dCBzdHJpbmcgc2VnbWVudHMsIGluIGxlZnQtdG8tcmlnaHQgb3JkZXIgb2YKKyAqIGRlZmluaXRpb24uPC9wPgorICoKKyAqIDxwPjxiPkFuY2hvcnM8L2I+PC9wPgorICoKKyAqIDxwPlBhdHRlcm5zIGNhbiBiZSBhbmNob3JlZCB0byB0aGUgYmVnaW5uaW5nIG9yIHRoZSBlbmQgb2YgdGhlIHRleHQuIFRoaXMgaXMgZG9uZSB3aXRoIHRoZQorICogc3BlY2lhbCBjaGFyYWN0ZXJzICc8Y29kZT5ePC9jb2RlPicgYW5kICc8Y29kZT4kPC9jb2RlPicuIEZvciBleGFtcGxlOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PGNvZGU+XiBhJm5ic3A7Jm5ic3A7ICZndDsgJ0JFR19BJzsgJm5ic3A7Jm5ic3A7IyBtYXRjaCAnYScgYXQgc3RhcnQgb2YgdGV4dDxicj4KKyAqICAgJm5ic3A7IGEmbmJzcDsmbmJzcDsgJmd0OyAnQSc7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICMgbWF0Y2ggb3RoZXIgaW5zdGFuY2VzCisgKiAgIG9mICdhJzxicj4KKyAqICAgJm5ic3A7IHogJCAmZ3Q7ICdFTkRfWic7ICZuYnNwOyZuYnNwOyMgbWF0Y2ggJ3onIGF0IGVuZCBvZiB0ZXh0PGJyPgorICogICAmbmJzcDsgeiZuYnNwOyZuYnNwOyAmZ3Q7ICdaJzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIyBtYXRjaCBvdGhlciBpbnN0YW5jZXMKKyAqICAgb2YgJ3onPC9jb2RlPjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hdGNoIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCB1c2luZyBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+LgorICogVGhpcyBpcyBkb25lIGJ5IGluY2x1ZGluZyBhIHZpcnR1YWwgYW5jaG9yIGNoYXJhY3RlciAnPGNvZGU+JDwvY29kZT4nIGF0IHRoZSBlbmQgb2YgdGhlCisgKiBzZXQgcGF0dGVybi4gQWx0aG91Z2ggdGhpcyBpcyB1c3VhbGx5IHRoZSBtYXRjaCBjaGFmYWN0ZXIgZm9yIHRoZSBlbmQgYW5jaG9yLCB0aGUgc2V0IHdpbGwKKyAqIG1hdGNoIGVpdGhlciB0aGUgYmVnaW5uaW5nIG9yIHRoZSBlbmQgb2YgdGhlIHRleHQsIGRlcGVuZGluZyBvbiBpdHMgcGxhY2VtZW50LiBGb3IKKyAqIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48Y29kZT4keCA9IFthLXokXTsgJm5ic3A7Jm5ic3A7IyBtYXRjaCAnYScgdGhyb3VnaCAneicgT1IgYW5jaG9yPGJyPgorICogICAkeCAxJm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgMjsmbmJzcDsmbmJzcDsgIyBtYXRjaCAnMScgYWZ0ZXIgYS16IG9yIGF0IHRoZSBzdGFydDxicj4KKyAqICAgJm5ic3A7Jm5ic3A7IDMgJHggJmd0OyA0OyAmbmJzcDsmbmJzcDsjIG1hdGNoICczJyBiZWZvcmUgYS16IG9yIGF0IHRoZSBlbmQ8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPjxiPkV4YW1wbGU8L2I+IDwvcD4KKyAqCisgKiA8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgcnVsZXMgaWxsdXN0cmF0ZSBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZgorICogdGhlIHJ1bGUgbGFuZ3VhZ2UuIDwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMS48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hYmN7ZGVmfSZndDt4fHk8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5SdWxlIDIuPC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+eHl6Jmd0O3I8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5SdWxlIDMuPC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+eXomZ3Q7cTwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPkFwcGx5aW5nIHRoZXNlIHJ1bGVzIHRvIHRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+YWRlZmFiY2RlZno8L2NvZGU+JnF1b3Q7CisgKiB5aWVsZHMgdGhlIGZvbGxvd2luZyByZXN1bHRzOiA8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+fGFkZWZhYmNkZWZ6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+SW5pdGlhbCBzdGF0ZSwgbm8gcnVsZXMgbWF0Y2guIEFkdmFuY2UKKyAqICAgICAgICAgY3Vyc29yLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmF8ZGVmYWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlN0aWxsIG5vIG1hdGNoLiBSdWxlIDEgZG9lcyBub3QgbWF0Y2gKKyAqICAgICAgICAgYmVjYXVzZSB0aGUgcHJlY2VkaW5nIGNvbnRleHQgaXMgbm90IHByZXNlbnQuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YWR8ZWZhYmNkZWZ6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+U3RpbGwgbm8gbWF0Y2guIEtlZXAgYWR2YW5jaW5nIHVudGlsCisgKiAgICAgICAgIHRoZXJlIGlzIGEgbWF0Y2guLi48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGV8ZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj4uLi48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmfGFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj4uLi48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYXxiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj4uLi48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYWJ8Y2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj4uLi48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYWJjfGRlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5SdWxlIDEgbWF0Y2hlczsgcmVwbGFjZSAmcXVvdDs8Y29kZT5kZWY8L2NvZGU+JnF1b3Q7CisgKiAgICAgICAgIHdpdGggJnF1b3Q7PGNvZGU+eHk8L2NvZGU+JnF1b3Q7IGFuZCBiYWNrIHVwIHRoZSBjdXJzb3IKKyAqICAgICAgICAgdG8gYmVmb3JlIHRoZSAnPGNvZGU+eTwvY29kZT4nLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYmN4fHl6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+QWx0aG91Z2ggJnF1b3Q7PGNvZGU+eHl6PC9jb2RlPiZxdW90OyBpcworICogICAgICAgICBwcmVzZW50LCBydWxlIDIgZG9lcyBub3QgbWF0Y2ggYmVjYXVzZSB0aGUgY3Vyc29yIGlzCisgKiAgICAgICAgIGJlZm9yZSB0aGUgJzxjb2RlPnk8L2NvZGU+Jywgbm90IGJlZm9yZSB0aGUgJzxjb2RlPng8L2NvZGU+Jy4KKyAqICAgICAgICAgUnVsZSAzIGRvZXMgbWF0Y2guIFJlcGxhY2UgJnF1b3Q7PGNvZGU+eXo8L2NvZGU+JnF1b3Q7CisgKiAgICAgICAgIHdpdGggJnF1b3Q7PGNvZGU+cTwvY29kZT4mcXVvdDsuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YWRlZmFiY3hxfDwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZDsKKyAqICAgICAgICAgdHJhbnNsaXRlcmF0aW9uIGlzIGNvbXBsZXRlLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+VGhlIG9yZGVyIG9mIHJ1bGVzIGlzIHNpZ25pZmljYW50LiBJZiBtdWx0aXBsZSBydWxlcyBtYXkgbWF0Y2gKKyAqIGF0IHNvbWUgcG9pbnQsIHRoZSBmaXJzdCBtYXRjaGluZyBydWxlIGlzIGFwcGxpZWQuIDwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkIGFuZCByZXZlcnNlIHJ1bGVzIG1heSBoYXZlIGFuIGVtcHR5IG91dHB1dCBzdHJpbmcuCisgKiBPdGhlcndpc2UsIGFuIGVtcHR5IGxlZnQgb3IgcmlnaHQgaGFuZCBzaWRlIG9mIGFueSBzdGF0ZW1lbnQgaXMgYQorICogc3ludGF4IGVycm9yLiA8L3A+CisgKgorICogPHA+U2luZ2xlIHF1b3RlcyBhcmUgdXNlZCB0byBxdW90ZSBhbnkgY2hhcmFjdGVyIG90aGVyIHRoYW4gYQorICogZGlnaXQgb3IgbGV0dGVyLiBUbyBzcGVjaWZ5IGEgc2luZ2xlIHF1b3RlIGl0c2VsZiwgaW5zaWRlIG9yCisgKiBvdXRzaWRlIG9mIHF1b3RlcywgdXNlIHR3byBzaW5nbGUgcXVvdGVzIGluIGEgcm93LiBGb3IgZXhhbXBsZSwKKyAqIHRoZSBydWxlICZxdW90Ozxjb2RlPicmZ3Q7JyZndDtvJydjbG9jazwvY29kZT4mcXVvdDsgY2hhbmdlcyB0aGUKKyAqIHN0cmluZyAmcXVvdDs8Y29kZT4mZ3Q7PC9jb2RlPiZxdW90OyB0byB0aGUgc3RyaW5nICZxdW90Ozxjb2RlPm8nY2xvY2s8L2NvZGU+JnF1b3Q7LgorICogPC9wPgorICoKKyAqIDxwPjxiPk5vdGVzPC9iPiA8L3A+CisgKgorICogPHA+V2hpbGUgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBpcyBiZWluZyBidWlsdCwgaXQgY2hlY2tzIHRoYXQKKyAqIHRoZSBydWxlcyBhcmUgYWRkZWQgaW4gcHJvcGVyIG9yZGVyLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHJ1bGUKKyAqICZxdW90O2EmZ3Q7eCZxdW90OyBpcyBmb2xsb3dlZCBieSB0aGUgcnVsZSAmcXVvdDthYiZndDt5JnF1b3Q7LAorICogdGhlbiB0aGUgc2Vjb25kIHJ1bGUgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uIFRoZSByZWFzb24gaXMgdGhhdAorICogdGhlIHNlY29uZCBydWxlIGNhbiBuZXZlciBiZSB0cmlnZ2VyZWQsIHNpbmNlIHRoZSBmaXJzdCBydWxlCisgKiBhbHdheXMgbWF0Y2hlcyBhbnl0aGluZyBpdCBtYXRjaGVzLiBJbiBvdGhlciB3b3JkcywgdGhlIGZpcnN0CisgKiBydWxlIDxlbT5tYXNrczwvZW0+IHRoZSBzZWNvbmQgcnVsZS4gPC9wPgorICoKKyAqIDxwPkNvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTktMjAwMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+CisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAqLworcHVibGljIGNsYXNzIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgcHJpdmF0ZSBEYXRhIGRhdGE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyB0cmFuc2xpdGVyYXRvciBmcm9tIHRoZSBnaXZlbiBydWxlcy4KKyAgICAgKiBAcGFyYW0gcnVsZXMgcnVsZXMsIHNlcGFyYXRlZCBieSAnOycKKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgcnVsZXMgYXJlIG1hbGZvcm1lZAorICAgICAqIG9yIGRpcmVjdGlvbiBpcyBpbnZhbGlkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFN0cmluZyBydWxlcywgaW50IGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoSUQsIGZpbHRlcik7CisgICAgICAgIGlmIChkaXJlY3Rpb24gIT0gRk9SV0FSRCAmJiBkaXJlY3Rpb24gIT0gUkVWRVJTRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBkaXJlY3Rpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlciA9IG5ldyBUcmFuc2xpdGVyYXRvclBhcnNlcigpOworICAgICAgICBwYXJzZXIucGFyc2UocnVsZXMsIGRpcmVjdGlvbik7CisgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgIT0gMCB8fAorICAgICAgICAgICAgcGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIjo6SUQgYmxvY2tzIGlsbGVnYWwgaW4gUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgY29uc3RydWN0b3IiKTsKKyAgICAgICAgfQorCisgICAgICAgIGRhdGEgPSAoRGF0YSlwYXJzZXIuZGF0YVZlY3Rvci5nZXQoMCk7CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKGRhdGEucnVsZVNldC5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHJ1bGVzIGluIHRoZQorICAgICAqIDxjb2RlPkZPUldBUkQ8L2NvZGU+IGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gcnVsZXMgcnVsZXMsIHNlcGFyYXRlZCBieSAnOycKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlcyBhcmUgbWFsZm9ybWVkCisgICAgICogb3IgZGlyZWN0aW9uIGlzIGludmFsaWQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIHRoaXMoSUQsIHJ1bGVzLCBGT1JXQVJELCBudWxsKTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIERhdGEgZGF0YSwgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoSUQsIGZpbHRlcik7CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKGRhdGEucnVsZVNldC5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3luY2hyb25pemVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLyogV2Uga2VlcCBzdGFydCBhbmQgbGltaXQgZml4ZWQgdGhlIGVudGlyZSB0aW1lLAorICAgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgdGV4dCAtLSBsaW1pdCBtYXkgbW92ZSBudW1lcmljYWxseSBpZiB0ZXh0IGlzCisgICAgICAgICAqIGluc2VydGVkIG9yIHJlbW92ZWQuICBUaGUgY3Vyc29yIG1vdmVzIGZyb20gc3RhcnQgdG8gbGltaXQsIHdpdGgKKyAgICAgICAgICogcmVwbGFjZW1lbnRzIGhhcHBlbmluZyB1bmRlciBpdC4KKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZTogcnVsZXMgMS4gYWI+eHx5CisgICAgICAgICAqICAgICAgICAgICAgICAgIDIuIHljPnoKKyAgICAgICAgICoKKyAgICAgICAgICogfGVhYmNkICAgc3RhcnQgLSBubyBtYXRjaCwgYWR2YW5jZSBjdXJzb3IKKyAgICAgICAgICogZXxhYmNkICAgbWF0Y2ggcnVsZSAxIC0gY2hhbmdlIHRleHQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIGV4fHljZCAgIG1hdGNoIHJ1bGUgMiAtIGNoYW5nZSB0ZXh0ICYgYWRqdXN0IGN1cnNvcgorICAgICAgICAgKiBleHp8ZCAgICBubyBtYXRjaCwgYWR2YW5jZSBjdXJzb3IKKyAgICAgICAgICogZXh6ZHwgICAgZG9uZQorICAgICAgICAgKi8KKworICAgICAgICAvKiBBIHJ1bGUgbGlrZQorICAgICAgICAgKiAgIGE+YnxhCisgICAgICAgICAqIGNyZWF0ZXMgYW4gaW5maW5pdGUgbG9vcC4gVG8gcHJldmVudCB0aGF0LCB3ZSBwdXQgYW4gYXJiaXRyYXJ5CisgICAgICAgICAqIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0aGF0IHdlIHRha2UsIG9uZSB0aGF0IGlzCisgICAgICAgICAqIGhpZ2ggZW5vdWdoIHRoYXQgYW55IHJlYXNvbmFibGUgcnVsZXMgYXJlIG9rLCBidXQgbG93IGVub3VnaCB0bworICAgICAgICAgKiBwcmV2ZW50IGEgc2VydmVyIGZyb20gaGFuZ2luZy4gIFRoZSBsaW1pdCBpcyAxNiB0aW1lcyB0aGUKKyAgICAgICAgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgbiwgdW5sZXNzIG4gaXMgc28gbGFyZ2UgdGhhdCAxNm4gZXhjZWVkcyBhCisgICAgICAgICAqIHVpbnQzMl90LgorICAgICAgICAgKi8KKyAgICAgICAgaW50IGxvb3BDb3VudCA9IDA7CisgICAgICAgIGludCBsb29wTGltaXQgPSAoaW5kZXgubGltaXQgLSBpbmRleC5zdGFydCkgPDwgNDsKKyAgICAgICAgaWYgKGxvb3BMaW1pdCA8IDApIHsKKyAgICAgICAgICAgIGxvb3BMaW1pdCA9IDB4N0ZGRkZGRkY7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoaW5kZXguc3RhcnQgPCBpbmRleC5saW1pdCAmJgorICAgICAgICAgICAgICAgbG9vcENvdW50IDw9IGxvb3BMaW1pdCAmJgorICAgICAgICAgICAgICAgZGF0YS5ydWxlU2V0LnRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGluY3JlbWVudGFsKSkgeworICAgICAgICAgICAgKytsb29wQ291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHN0YXRpYyBjbGFzcyBEYXRhIHsKKyAgICAgICAgcHVibGljIERhdGEoKSB7CisgICAgICAgICAgICB2YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgcnVsZVNldCA9IG5ldyBUcmFuc2xpdGVyYXRpb25SdWxlU2V0KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUnVsZSB0YWJsZS4gIE1heSBiZSBlbXB0eS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRpb25SdWxlU2V0IHJ1bGVTZXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1hcCB2YXJpYWJsZSBuYW1lIChTdHJpbmcpIHRvIHZhcmlhYmxlIChjaGFyW10pLiAgQSB2YXJpYWJsZSBuYW1lCisgICAgICAgICAqIGNvcnJlc3BvbmRzIHRvIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzLCBzdG9yZWQgaW4gYSBjaGFyW10gYXJyYXkgaW4KKyAgICAgICAgICogdGhpcyBoYXNoLiAgT25lIG9yIG1vcmUgb2YgdGhlc2UgY2hhcnMgbWF5IGFsc28gY29ycmVzcG9uZCB0byBhCisgICAgICAgICAqIFVuaWNvZGVTZXQsIGluIHdoaWNoIGNhc2UgdGhlIGNoYXJhY3RlciBpbiB0aGUgY2hhcltdIGluIHRoaXMgaGFzaCBpcworICAgICAgICAgKiBhIHN0YW5kLWluOiBpdCBpcyBhbiBpbmRleCBmb3IgYSBzZWNvbmRhcnkgbG9va3VwIGluCisgICAgICAgICAqIGRhdGEudmFyaWFibGVzLiAgVGhlIHN0YW5kLWluIGFsc28gcmVwcmVzZW50cyB0aGUgVW5pY29kZVNldCBpbgorICAgICAgICAgKiB0aGUgc3RvcmVkIHJ1bGVzLgorICAgICAgICAgKi8KKyAgICAgICAgSGFzaHRhYmxlIHZhcmlhYmxlTmFtZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1hcCBjYXRlZ29yeSB2YXJpYWJsZSAoQ2hhcmFjdGVyKSB0byBVbmljb2RlTWF0Y2hlciBvciBVbmljb2RlUmVwbGFjZXIuCisgICAgICAgICAqIFZhcmlhYmxlcyB0aGF0IGNvcnJlc3BvbmQgdG8gYSBzZXQgb2YgY2hhcmFjdGVycyBhcmUgbWFwcGVkCisgICAgICAgICAqIGZyb20gdmFyaWFibGUgbmFtZSB0byBhIHN0YW5kLWluIGNoYXJhY3RlciBpbiBkYXRhLnZhcmlhYmxlTmFtZXMuCisgICAgICAgICAqIFRoZSBzdGFuZC1pbiB0aGVuIHNlcnZlcyBhcyBhIGtleSBpbiB0aGlzIGhhc2ggdG8gbG9va3VwIHRoZQorICAgICAgICAgKiBhY3R1YWwgVW5pY29kZVNldCBvYmplY3QuICBJbiBhZGRpdGlvbiwgdGhlIHN0YW5kLWluIGlzCisgICAgICAgICAqIHN0b3JlZCBpbiB0aGUgcnVsZSB0ZXh0IHRvIHJlcHJlc2VudCB0aGUgc2V0IG9mIGNoYXJhY3RlcnMuCisgICAgICAgICAqIHZhcmlhYmxlc1tpXSByZXByZXNlbnRzIGNoYXJhY3RlciAodmFyaWFibGVzQmFzZSArIGkpLgorICAgICAgICAgKi8KKyAgICAgICAgT2JqZWN0W10gdmFyaWFibGVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2hhcmFjdGVyIHRoYXQgcmVwcmVzZW50cyB2YXJpYWJsZXNbMF0uICBDaGFyYWN0ZXJzCisgICAgICAgICAqIHZhcmlhYmxlc0Jhc2UgdGhyb3VnaCB2YXJpYWJsZXNCYXNlICsKKyAgICAgICAgICogdmFyaWFibGVzLmxlbmd0aCAtIDEgcmVwcmVzZW50IFVuaWNvZGVTZXQgb2JqZWN0cy4KKyAgICAgICAgICovCisgICAgICAgIGNoYXIgdmFyaWFibGVzQmFzZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBVbmljb2RlTWF0Y2hlciByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gY2hhcmFjdGVyLCBvcgorICAgICAgICAgKiBudWxsIGlmIG5vbmUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgc3RhbmRJbikgeworICAgICAgICAgICAgaW50IGkgPSBzdGFuZEluIC0gdmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIHJldHVybiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgID8gKFVuaWNvZGVNYXRjaGVyKSB2YXJpYWJsZXNbaV0gOiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgVW5pY29kZVJlcGxhY2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIG51bGwgaWYgbm9uZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlUmVwbGFjZXIgbG9va3VwUmVwbGFjZXIoaW50IHN0YW5kSW4pIHsKKyAgICAgICAgICAgIGludCBpID0gc3RhbmRJbiAtIHZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICByZXR1cm4gKGkgPj0gMCAmJiBpIDwgdmFyaWFibGVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICA/IChVbmljb2RlUmVwbGFjZXIpIHZhcmlhYmxlc1tpXSA6IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IgYXMgc291cmNlIHJ1bGVzLgorICAgICAqIFRoZXNlIHJ1bGVzIHdpbGwgcHJvZHVjZSBhbiBlcXVpdmFsZW50IHRyYW5zbGl0ZXJhdG9yIGlmIHVzZWQKKyAgICAgKiB0byBjb25zdHJ1Y3QgYSBuZXcgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBvdGhlciB0aGFuCisgICAgICogVSswMDBBLCBVKzAwMjAuLlUrMDA3RS4KKyAgICAgKiBAcmV0dXJuIHJ1bGVzIHN0cmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SdWxlcyhib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIHJldHVybiBkYXRhLnJ1bGVTZXQudG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgYnkgdGhpcworICAgICAqIFRyYW5zbGl0ZXJhdG9yLCBpZ25vcmluZyB0aGUgZWZmZWN0IG9mIG91ciBmaWx0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgaGFuZGxlR2V0U291cmNlU2V0KCkgeworICAgICAgICByZXR1cm4gZGF0YS5ydWxlU2V0LmdldFNvdXJjZVRhcmdldFNldChmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIGdlbmVyYXRlZCBhcworICAgICAqIHJlcGxhY2VtZW50IHRleHQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYXJnZXRTZXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhLnJ1bGVTZXQuZ2V0U291cmNlVGFyZ2V0U2V0KHRydWUpOworICAgIH0KK30KKworLyoqCisgKiBSZXZpc2lvbiAxLjYxICAyMDA0LzAyLzI1IDAxOjI2OjIzICBhbGFuCisgKiBqaXR0ZXJidWcgMzUxNzogbWFrZSBjb25jcmV0ZSB0cmFuc2lsdGVyYXRvcnMgcGFja2FnZSBwcml2YXRlIGFuZCBAaW50ZXJuYWwKKyAqCisgKiBSZXZpc2lvbiAxLjYwICAyMDAzLzA2LzAzIDE4OjQ5OjM1ICBhbGFuCisgKiBqaXR0ZXJidWcgMjk1OTogdXBkYXRlIGNvcHlyaWdodCBkYXRlcyB0byBpbmNsdWRlIDIwMDMKKyAqCisgKiBSZXZpc2lvbiAxLjU5ICAyMDAzLzA1LzE0IDE5OjAzOjMwICBydmlzd2FuYWRoYQorICogaml0dGVyYnVnIDI4MzY6IGZpeCBjb21waWxlciB3YXJuaW5ncworICoKKyAqIFJldmlzaW9uIDEuNTggIDIwMDIvMTIvMDMgMTg6NTc6MzYgIGFsYW4KKyAqIGppdHRlcmJ1ZyAyMDg3OiBmaXggQCB0YWdzCisgKgorICogUmV2aXNpb24gMS41NyAgMjAwMi8wNy8yNiAyMToxMjozNiAgYWxhbgorICogaml0dGVyYnVnIDE5OTc6IHVzZSBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpIGluIHBhcnNlcnMKKyAqCisgKiBSZXZpc2lvbiAxLjU2ICAyMDAyLzA2LzI4IDE5OjE1OjUyICBhbGFuCisgKiBqaXR0ZXJidWcgMTQzNDogaW1wcm92ZSBtZXRob2QgbmFtZXM7IG1pbm9yIGNsZWFudXAKKyAqCisgKiBSZXZpc2lvbiAxLjU1ICAyMDAyLzA2LzI2IDE4OjEyOjM5ICBhbGFuCisgKiBqaXR0ZXJidWcgMTQzNDogaW5pdGlhbCBwdWJsaWMgaW1wbGVtZW50YXRpb24gb2YgZ2V0U291cmNlU2V0IGFuZCBnZXRUYXJnZXRTZXQKKyAqCisgKiBSZXZpc2lvbiAxLjU0ICAyMDAyLzAyLzI1IDIyOjQzOjU4ICByYW0KKyAqIE1vdmUgVXRpbGl0eSBjbGFzcyB0byBpY3UuaW1wbAorICoKKyAqIFJldmlzaW9uIDEuNTMgIDIwMDIvMDIvMTYgMDM6MDY6MTMgIE1vaGFuCisgKiBJQ1U0SiByZW9yZ2FuaXphdGlvbgorICoKKyAqIFJldmlzaW9uIDEuNTIgIDIwMDIvMDIvMDcgMDA6NTM6NTQgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxMjM0OiBtYWtlIG91dHB1dCBzaWRlIG9mIFJCVHMgb2JqZWN0LW9yaWVudGVkOyByZXdyaXRlIElEIHBhcnNlcnMgYW5kIG1vZHVsYXJpemUgdGhlbTsgaW1wbGVtZW50ICZBbnktTG93ZXIoKSBzdXBwb3J0CisgKgorICogUmV2aXNpb24gMS41MSAgMjAwMS8xMS8yOSAyMjozMToxOCAgYWxhbgorICogaml0dGVyYnVnIDE1NjA6IGFkZCBzb3VyY2Utc2V0IG1ldGhvZHMgYW5kIFRyYW5zbGl0ZXJhdG9yVXRpbGl0eSBjbGFzcworICoKKyAqIFJldmlzaW9uIDEuNTAgIDIwMDEvMTEvMjcgMjI6MDc6MzMgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxMzg5OiBpbmNvcnBvcmF0ZSBNYXJrJ3MgcmV2aWV3IGNvbW1lbnRzIC0gY29tbWVudHMgb25seQorICoKKyAqIFJldmlzaW9uIDEuNDkgIDIwMDEvMTAvMTAgMjA6MjY6MjcgIGFsYW4KKyAqIGppdHRlcmJ1ZyA4MTogaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBjb21wb3VuZCBmaWx0ZXJzIGluIElEcyBhbmQgOjpJRCBibG9ja3MKKyAqCisgKiBSZXZpc2lvbiAxLjQ4ICAyMDAxLzEwLzA1IDE4OjE1OjU0ICBhbGFuCisgKiBqaXR0ZXJidWcgNzQ6IGZpbmlzaCBwb3J0IG9mIFNvdXJjZS1UYXJnZXQvVmFyaWFudCBjb2RlIGluY2wuIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkgYW5kIHRlc3RzCisgKgorICogUmV2aXNpb24gMS40NyAgMjAwMS8xMC8wMyAwMDoxNDoyMiAgYWxhbgorICogaml0dGVyYnVnIDczOiBmaW5pc2ggcXVhbnRpZmllciBhbmQgc3VwcGxlbWVudGFsIGNoYXIgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuNDYgIDIwMDEvMDkvMjYgMTg6MDA6MDYgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2Nzogc3luYyBwYXJzZXIgd2l0aCBpY3U0YywgYWxsb3cgdW5saW1pdGVkLCBuZXN0ZWQgc2VnbWVudHMKKyAqCisgKiBSZXZpc2lvbiAxLjQ1ICAyMDAxLzA5LzI0IDE5OjU3OjE3ICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGltcGxlbWVudCB0b1BhdHRlcm4gaW4gVW5pY29kZVNldDsgdXBkYXRlIFVuaWNvZGVGaWx0ZXIuY29udGFpbnMgdG8gdGFrZSBhbiBpbnQ7IHVwZGF0ZSBVbmljb2RlU2V0IHRvIHN1cHBvcnQgY29kZSBwb2ludHMgdG8gVSsxMEZGRkYKKyAqCisgKiBSZXZpc2lvbiAxLjQ0ICAyMDAxLzA5LzIxIDIxOjI0OjA0ICBhbGFuCisgKiBqaXR0ZXJidWcgNjQ6IGFsbG93IDo6SUQgYmxvY2tzIGluIHJ1bGVzCisgKgorICogUmV2aXNpb24gMS40MyAgMjAwMS8wOS8xOSAxNzo0MzozNyAgYWxhbgorICogaml0dGVyYnVnIDYwOiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRvUnVsZXMoKQorICoKKyAqIFJldmlzaW9uIDEuNDIgIDIwMDEvMDIvMjAgMTc6NTk6NDAgIGFsYW40agorICogUmVtb3ZlIGJhY2tzbGFzaC11IGZyb20gbG9nCisgKgorICogUmV2aXNpb24gMS40MSAgMjAwMS8wMi8xNiAxODo1Mzo1NSAgYWxhbjRqCisgKiBIYW5kbGUgYmFja3NsYXNoLXUgZXNjYXBlcworICoKKyAqIFJldmlzaW9uIDEuNDAgIDIwMDEvMDIvMDMgMDA6NDY6MjEgIGFsYW40agorICogTG9hZCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBmaWxlcyBmcm9tIFVURjggZmlsZXMgaW5zdGVhZCBvZiBSZXNvdXJjZUJ1bmRsZXMKKyAqCisgKiBSZXZpc2lvbiAxLjM5ICAyMDAwLzA4LzMxIDE3OjExOjQyICBhbGFuNGoKKyAqIEltcGxlbWVudCBhbmNob3JzLgorICoKKyAqIFJldmlzaW9uIDEuMzggIDIwMDAvMDgvMzAgMjA6NDA6MzAgIGFsYW40agorICogSW1wbGVtZW50IGFuY2hvcnMuCisgKgorICogUmV2aXNpb24gMS4zNyAgMjAwMC8wNy8xMiAxNjozMTozNiAgYWxhbjRqCisgKiBTaW1wbGlmeSBsb29wIGxpbWl0IGxvZ2ljCisgKgorICogUmV2aXNpb24gMS4zNiAgMjAwMC8wNi8yOSAyMTo1OToyMyAgYWxhbjRqCisgKiBGaXggaGFuZGxpbmcgb2YgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gZmllbGRzCisgKgorICogUmV2aXNpb24gMS4zNSAgMjAwMC8wNi8yOCAyMDo0OTo1NCAgYWxhbjRqCisgKiBGaXggaGFuZGxpbmcgb2YgUG9zaXRpb25zIGZpZWxkcworICoKKyAqIFJldmlzaW9uIDEuMzQgIDIwMDAvMDYvMjggMjA6MzY6MzIgIGFsYW40agorICogQ2xlYW4gdXAgVHJhbnNsaXRlcmF0b3I6OlBvc2l0aW9uIC0gcmVuYW1lIHRlbXBvcmFyeSBuYW1lcworICoKKyAqIFJldmlzaW9uIDEuMzMgIDIwMDAvMDYvMjggMjA6MzE6NDMgIGFsYW40agorICogQ2xlYW4gdXAgVHJhbnNsaXRlcmF0b3I6OlBvc2l0aW9uIGFuZCByZW5hbWUgZmllbGRzIChyZWxhdGVkIHRvIGppdHRlcmJ1ZyA0NTApCisgKgorICogUmV2aXNpb24gMS4zMiAgMjAwMC8wNS8yNCAyMjoyMTowMCAgYWxhbjRqCisgKiBDb21wYWN0IFVuaWNvZGVTZXRzCisgKgorICogUmV2aXNpb24gMS4zMSAgMjAwMC8wNS8yMyAxNjo0ODoyNyAgYWxhbjRqCisgKiBGaXggZG9jOyByZW1vdmUgdW51c2VkIGF1dG8KKyAqCisgKiBSZXZpc2lvbiAxLjMwICAyMDAwLzA1LzE4IDIyOjQ5OjUxICBhbGFuCisgKiBVcGRhdGUgZG9jcworICoKKyAqIFJldmlzaW9uIDEuMjkgIDIwMDAvMDQvMjggMDA6MjU6NDIgIGFsYW4KKyAqIEltcHJvdmUgZXJyb3IgcmVwb3J0aW5nCisgKgorICogUmV2aXNpb24gMS4yOCAgMjAwMC8wNC8yNSAxNzozODowMCAgYWxhbgorICogTWlub3IgcGFyc2VyIGNsZWFudXAuCisgKgorICogUmV2aXNpb24gMS4yNyAgMjAwMC8wNC8yNSAwMTo0Mjo1OCAgYWxhbgorICogQWxsb3cgYXJiaXRyYXJ5IGxlbmd0aCB2YXJpYWJsZSB2YWx1ZXMuIENsZWFuIHVwIERhdGEgQVBJLiBVcGRhdGUgamF2YWRvY3MuCisgKgorICogUmV2aXNpb24gMS4yNiAgMjAwMC8wNC8yMiAwMToyNToxMCAgYWxhbgorICogQWRkIHN1cHBvcnQgZm9yIGN1cnNvciBwb3NpdGlvbmVyICdAJzsgdXBkYXRlIGphdmFkb2MKKyAqCisgKiBSZXZpc2lvbiAxLjI1ICAyMDAwLzA0LzIyIDAwOjA4OjQzICBhbGFuCisgKiBOYXJyb3cgcmFuZ2UgdG8gMjEgLSA3RSBmb3IgbWFuZGF0b3J5IHF1b3RpbmcuCisgKgorICogUmV2aXNpb24gMS4yNCAgMjAwMC8wNC8yMiAwMDowMzo1NCAgYWxhbgorICogRGlzYWxsb3cgdW5xdW90ZWQgc3BlY2lhbCBjaGFycy4gUmVwb3J0IG11bHRpcGxlIGVycm9ycyBhdCBvbmNlLgorICoKKyAqIFJldmlzaW9uIDEuMjMgIDIwMDAvMDQvMjEgMjI6MjM6NDAgIGFsYW4KKyAqIENsZWFuIHVwIHBhcnNlUmVmZXJlbmNlLiBQcmV2aW91cyBsb2cgc2hvdWxkIHJlYWQgJ2RlbGVnYXRlJywgbm90ICdkZWxldGUnLgorICoKKyAqIFJldmlzaW9uIDEuMjIgIDIwMDAvMDQvMjEgMjI6MTY6MjkgIGFsYW4KKyAqIERlbGV0ZSB2YXJpYWJsZSBuYW1lIHBhcnNpbmcgdG8gU3ltYm9sVGFibGUgaW50ZXJmYWNlIHRvIGNvbnNvbGlkYXRlIHBhcnNpbmcgY29kZS4KKyAqCisgKiBSZXZpc2lvbiAxLjIxICAyMDAwLzA0LzIxIDIxOjE2OjQwICBhbGFuCisgKiBNb2RpZnkgcnVsZSBzeW50YXgKKyAqCisgKiBSZXZpc2lvbiAxLjIwICAyMDAwLzA0LzE5IDE3OjM1OjIzICBhbGFuCisgKiBVcGRhdGUgamF2YWRvYzsgZml4IGNvbXBpbGUgZXJyb3IKKyAqCisgKiBSZXZpc2lvbiAxLjE5ICAyMDAwLzA0LzE5IDE2OjM0OjE4ICBhbGFuCisgKiBBZGQgc2VnbWVudCBzdXBwb3J0LgorICoKKyAqIFJldmlzaW9uIDEuMTggIDIwMDAvMDQvMTIgMjA6MTc6NDUgIGFsYW4KKyAqIERlbGVnYXRlIHJlcGxhY2Ugb3BlcmF0aW9uIHRvIHJ1bGUgb2JqZWN0CisgKgorICogUmV2aXNpb24gMS4xNyAgMjAwMC8wMy8xMCAwNDowNzoyMyAgam9obmYKKyAqIENvcHlyaWdodCB1cGRhdGUKKyAqCisgKiBSZXZpc2lvbiAxLjE2ICAyMDAwLzAyLzI0IDIwOjQ2OjQ5ICBsaXUKKyAqIEFkZCBpbmZpbml0ZSBsb29wIGNoZWNrCisgKgorICogUmV2aXNpb24gMS4xNSAgMjAwMC8wMi8xMCAwNzozNjoyNSAgam9obmYKKyAqIGZpeGVkIGltcG9ydHMgZm9yIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eQorICoKKyAqIFJldmlzaW9uIDEuMTQgIDIwMDAvMDIvMDMgMTg6MTg6NDIgIEFsYW4KKyAqIFVzZSBhcnJheSByYXRoZXIgdGhhbiBoYXNodGFibGUgZm9yIGNoYXItdG8tc2V0IG1hcAorICoKKyAqIFJldmlzaW9uIDEuMTMgIDIwMDAvMDEvMjcgMTg6NTk6MTkgIEFsYW4KKyAqIFVzZSBQb3NpdGlvbiByYXRoZXIgdGhhbiBpbnRbXSBhbmQgbW92ZSBhbGwgc3ViY2xhc3Mgb3ZlcnJpZGVzIHRvIG9uZSBtZXRob2QgKGhhbmRsZVRyYW5zbGl0ZXJhdGUpCisgKgorICogUmV2aXNpb24gMS4xMiAgMjAwMC8wMS8xOCAxNzo1MTowOSAgQWxhbgorICogUmVtb3ZlICJrZXlib2FyZCIgZnJvbSBtZXRob2QgbmFtZXMuIE1ha2UgbWF4aW11bSBjb250ZXh0IGEgZmllbGQgb2YgVHJhbnNsaXRlcmF0b3IsIGFuZCBoYXZlIHN1YmNsYXNzZXMgc2V0IGl0LgorICoKKyAqIFJldmlzaW9uIDEuMTEgIDIwMDAvMDEvMTggMDI6MzA6NDkgIEFsYW4KKyAqIEFkZCBKYW1vLUhhbmd1bCwgSGFuZ3VsLUphbW8sIGZpeCBydWxlcywgYWRkIGNvbXBvdW5kIElEIHN1cHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjEwICAyMDAwLzAxLzEzIDIzOjUzOjIzICBBbGFuCisgKiBGaXggYnVncyBmb3VuZCBkdXJpbmcgSUNVIHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjkgIDIwMDAvMDEvMTEgMDQ6MTI6MDYgIEFsYW4KKyAqIENsZWFudXAsIGVtYmVsbGlzaCBjb21tZW50cworICoKKyAqIFJldmlzaW9uIDEuOCAgMjAwMC8wMS8xMSAwMjoyNTowMyAgQWxhbgorICogUmV3cml0ZSBVbmljb2RlU2V0IGFuZCBSQlQgcGFyc2VycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlIGFuZCBuZXcgc3ludGF4CisgKgorICogUmV2aXNpb24gMS43ICAyMDAwLzAxLzA2IDAxOjM2OjM2ICBBbGFuCisgKiBBbGxvdyBzdHJpbmcgYXJyYXlzIGluIHJ1bGUgcmVzb3VyY2UgYnVuZGxlcworICoKKyAqIFJldmlzaW9uIDEuNiAgMjAwMC8wMS8wNCAyMTo0Mzo1NyAgQWxhbgorICogQWRkIHJ1bGUgaW5kZXhpbmcsIGFuZCBtb3ZlIG1hc2tpbmcgY2hlY2sgdG8gVHJhbnNsaXRlcmF0aW9uUnVsZVNldC4KKyAqCisgKiBSZXZpc2lvbiAxLjUgIDE5OTkvMTIvMjIgMDE6NDA6NTQgIEFsYW4KKyAqIENvbnNvbGlkYXRlIHJ1bGUgcGF0dGVybiBhbnRlQ29udGV4dCwga2V5LCBhbmQgcG9zdENvbnRleHQgaW50byBvbmUgc3RyaW5nLgorICoKKyAqIFJldmlzaW9uIDEuNCAgMTk5OS8xMi8yMiAwMTowNTo1NCAgQWxhbgorICogSW1wcm92ZSBtYXNraW5nIGNoZWNraW5nOyB0dXJuIGl0IG9mZiBieSBkZWZhdWx0LCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCisgKi8KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NDU1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NDU1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMzgwOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogQW4gaW50ZXJmYWNlIGRlZmluaW5nICBjb25zdGFudHMgZm9yIHRoZSBTdGFuZGFyZCBDb21wcmVzc2lvbiBTY2hlbWUKKyAqIGZvciBVbmljb2RlIChTQ1NVKSBhcyBvdXRsaW5lZCBpbiA8QQorICogSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbAorICogUmVwb3J0ICM2PC9BPi4KKyAqCisgKiBAYXV0aG9yIFN0ZXBoZW4gRi4gQm9vdGgKKyAqIEB2ZXJzaW9uIDEuMSAwNSBBdWcgOTkKKyAqIEB2ZXJzaW9uIDEuMCAyNiBKdWwgOTkKKyAqLworaW50ZXJmYWNlIFNDU1UKK3sKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gR2VuZXJpYyB3aW5kb3cgc2hpZnQKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBDT01QUkVTU0lPTk9GRlNFVCAgICAgICAgICAgPSAweDgwOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE51bWJlciBvZiB3aW5kb3dzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgTlVNV0lORE9XUyAgICAgICAgICAgICAgICAgID0gODsKKyAgICBmaW5hbCBzdGF0aWMgaW50IE5VTVNUQVRJQ1dJTkRPV1MgICAgICAgICAgICA9IDg7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5kaWNhdGVzIGEgd2luZG93IGluZGV4IGlzIGludmFsaWQKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBJTlZBTElEV0lORE9XICAgICAgICAgICAgICAgPSAtMTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbmRpY2F0ZXMgYSBjaGFyYWN0ZXIgZG9lc24ndCBleGlzdCBpbiBpbnB1dCAocGFzdCBlbmQgb2YgYnVmZmVyKQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IElOVkFMSURDSEFSICAgICAgICAgICAgICAgICA9IC0xOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENvbXByZXNzaW9uIG1vZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgU0lOR0xFQllURU1PREUgICAgICAgICAgICAgID0gMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVOSUNPREVNT0RFICAgICAgICAgICAgICAgICA9IDE7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTWF4aW11bSB2YWx1ZSBmb3IgYSB3aW5kb3cncyBpbmRleAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IE1BWElOREVYICAgICAgICAgICAgICAgICAgICA9IDB4RkY7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gUmVzZXJ2ZWQgaW5kZXggdmFsdWUgKGNoYXJhY3RlcnMgYmVsb25ncyB0byBmaXJzdCBibG9jaykKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBSRVNFUlZFRElOREVYICAgICAgICAgICAgICAgPSAweDAwOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEluZGljZXMgZm9yIHNjcmlwdHMgd2hpY2ggY3Jvc3MgYSBoYWxmLWJsb2NrIGJvdW5kYXJ5CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgTEFUSU5JTkRFWCAgICAgICAgICAgICAgICAgID0gMHhGOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IElQQUVYVEVOU0lPTklOREVYICAgICAgICAgICA9IDB4RkE7CisgICAgZmluYWwgc3RhdGljIGludCBHUkVFS0lOREVYICAgICAgICAgICAgICAgICAgPSAweEZCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgQVJNRU5JQU5JTkRFWCAgICAgICAgICAgICAgID0gMHhGQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEhJUkFHQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkQ7CisgICAgZmluYWwgc3RhdGljIGludCBLQVRBS0FOQUlOREVYICAgICAgICAgICAgICAgPSAweEZFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSEFMRldJRFRIS0FUQUtBTkFJTkRFWCAgICAgID0gMHhGRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBTaW5nbGUtYnl0ZSBtb2RlIHRhZ3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FWCAgICAgICAgICAgICAgICAgICAgPSAweDBCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1JFU0VSVkVEICAgICAgICAgICAgICAgICAgID0gMHgwQzsgIC8vIHJlc2VydmVkIHZhbHVlCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweDBFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRVUgICAgICAgICAgICAgICAgICAgID0gMHgwRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMCAgICAgICAgICAgICAgICAgICAgID0gMHgwMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTEgICAgICAgICAgICAgICAgICAgICA9IDB4MDI7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUyICAgICAgICAgICAgICAgICAgICAgPSAweDAzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMyAgICAgICAgICAgICAgICAgICAgID0gMHgwNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTQgICAgICAgICAgICAgICAgICAgICA9IDB4MDU7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU1ICAgICAgICAgICAgICAgICAgICAgPSAweDA2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNiAgICAgICAgICAgICAgICAgICAgID0gMHgwNzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTcgICAgICAgICAgICAgICAgICAgICA9IDB4MDg7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UwICAgICAgICAgICAgICAgICAgICA9IDB4MTA7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMSAgICAgICAgICAgICAgICAgICAgPSAweDExOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTIgICAgICAgICAgICAgICAgICAgID0gMHgxMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UzICAgICAgICAgICAgICAgICAgICA9IDB4MTM7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNCAgICAgICAgICAgICAgICAgICAgPSAweDE0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTUgICAgICAgICAgICAgICAgICAgID0gMHgxNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U2ICAgICAgICAgICAgICAgICAgICA9IDB4MTY7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNyAgICAgICAgICAgICAgICAgICAgPSAweDE3OworCisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMCAgICAgICAgICAgICAgICAgICAgPSAweDE4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTEgICAgICAgICAgICAgICAgICAgID0gMHgxOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUyICAgICAgICAgICAgICAgICAgICA9IDB4MUE7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMyAgICAgICAgICAgICAgICAgICAgPSAweDFCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTQgICAgICAgICAgICAgICAgICAgID0gMHgxQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU1ICAgICAgICAgICAgICAgICAgICA9IDB4MUQ7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNiAgICAgICAgICAgICAgICAgICAgPSAweDFFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTcgICAgICAgICAgICAgICAgICAgID0gMHgxRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBVbmljb2RlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UwICAgICAgICAgICAgICAgICAgICA9IDB4RTA7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMSAgICAgICAgICAgICAgICAgICAgPSAweEUxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTIgICAgICAgICAgICAgICAgICAgID0gMHhFMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UzICAgICAgICAgICAgICAgICAgICA9IDB4RTM7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNCAgICAgICAgICAgICAgICAgICAgPSAweEU0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTUgICAgICAgICAgICAgICAgICAgID0gMHhFNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U2ICAgICAgICAgICAgICAgICAgICA9IDB4RTY7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNyAgICAgICAgICAgICAgICAgICAgPSAweEU3OworCisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMCAgICAgICAgICAgICAgICAgICAgPSAweEU4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTEgICAgICAgICAgICAgICAgICAgID0gMHhFOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUyICAgICAgICAgICAgICAgICAgICA9IDB4RUE7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMyAgICAgICAgICAgICAgICAgICAgPSAweEVCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTQgICAgICAgICAgICAgICAgICAgID0gMHhFQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU1ICAgICAgICAgICAgICAgICAgICA9IDB4RUQ7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNiAgICAgICAgICAgICAgICAgICAgPSAweEVFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTcgICAgICAgICAgICAgICAgICAgID0gMHhFRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgVVFVT1RFVSAgICAgICAgICAgICAgICAgICAgID0gMHhGMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4RjE7CisgICAgZmluYWwgc3RhdGljIGludCBVUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweEYyOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENsYXNzIHZhcmlhYmxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBGb3Igd2luZG93IG9mZnNldCBtYXBwaW5nICovCisgICAgZmluYWwgc3RhdGljIGludCBbXSBzT2Zmc2V0VGFibGUgPSB7IAorICAgICAgICAvLyB0YWJsZSBnZW5lcmF0ZWQgYnkgQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvcgorICAgICAgICAweDAsIDB4ODAsIDB4MTAwLCAweDE4MCwgMHgyMDAsIDB4MjgwLCAweDMwMCwgMHgzODAsIDB4NDAwLAorICAgIDB4NDgwLCAweDUwMCwgMHg1ODAsIDB4NjAwLCAweDY4MCwgMHg3MDAsIDB4NzgwLCAweDgwMCwgMHg4ODAsCisgICAgMHg5MDAsIDB4OTgwLCAweGEwMCwgMHhhODAsIDB4YjAwLCAweGI4MCwgMHhjMDAsIDB4YzgwLCAweGQwMCwKKyAgICAweGQ4MCwgMHhlMDAsIDB4ZTgwLCAweGYwMCwgMHhmODAsIDB4MTAwMCwgMHgxMDgwLCAweDExMDAsCisgICAgMHgxMTgwLCAweDEyMDAsIDB4MTI4MCwgMHgxMzAwLCAweDEzODAsIDB4MTQwMCwgMHgxNDgwLAorICAgIDB4MTUwMCwgMHgxNTgwLCAweDE2MDAsIDB4MTY4MCwgMHgxNzAwLCAweDE3ODAsIDB4MTgwMCwKKyAgICAweDE4ODAsIDB4MTkwMCwgMHgxOTgwLCAweDFhMDAsIDB4MWE4MCwgMHgxYjAwLCAweDFiODAsCisgICAgMHgxYzAwLCAweDFjODAsIDB4MWQwMCwgMHgxZDgwLCAweDFlMDAsIDB4MWU4MCwgMHgxZjAwLAorICAgIDB4MWY4MCwgMHgyMDAwLCAweDIwODAsIDB4MjEwMCwgMHgyMTgwLCAweDIyMDAsIDB4MjI4MCwKKyAgICAweDIzMDAsIDB4MjM4MCwgMHgyNDAwLCAweDI0ODAsIDB4MjUwMCwgMHgyNTgwLCAweDI2MDAsCisgICAgMHgyNjgwLCAweDI3MDAsIDB4Mjc4MCwgMHgyODAwLCAweDI4ODAsIDB4MjkwMCwgMHgyOTgwLAorICAgIDB4MmEwMCwgMHgyYTgwLCAweDJiMDAsIDB4MmI4MCwgMHgyYzAwLCAweDJjODAsIDB4MmQwMCwKKyAgICAweDJkODAsIDB4MmUwMCwgMHgyZTgwLCAweDJmMDAsIDB4MmY4MCwgMHgzMDAwLCAweDMwODAsCisgICAgMHgzMTAwLCAweDMxODAsIDB4MzIwMCwgMHgzMjgwLCAweDMzMDAsIDB4MzM4MCwgMHhlMDAwLAorICAgIDB4ZTA4MCwgMHhlMTAwLCAweGUxODAsIDB4ZTIwMCwgMHhlMjgwLCAweGUzMDAsIDB4ZTM4MCwKKyAgICAweGU0MDAsIDB4ZTQ4MCwgMHhlNTAwLCAweGU1ODAsIDB4ZTYwMCwgMHhlNjgwLCAweGU3MDAsCisgICAgMHhlNzgwLCAweGU4MDAsIDB4ZTg4MCwgMHhlOTAwLCAweGU5ODAsIDB4ZWEwMCwgMHhlYTgwLAorICAgIDB4ZWIwMCwgMHhlYjgwLCAweGVjMDAsIDB4ZWM4MCwgMHhlZDAwLCAweGVkODAsIDB4ZWUwMCwKKyAgICAweGVlODAsIDB4ZWYwMCwgMHhlZjgwLCAweGYwMDAsIDB4ZjA4MCwgMHhmMTAwLCAweGYxODAsCisgICAgMHhmMjAwLCAweGYyODAsIDB4ZjMwMCwgMHhmMzgwLCAweGY0MDAsIDB4ZjQ4MCwgMHhmNTAwLAorICAgIDB4ZjU4MCwgMHhmNjAwLCAweGY2ODAsIDB4ZjcwMCwgMHhmNzgwLCAweGY4MDAsIDB4Zjg4MCwKKyAgICAweGY5MDAsIDB4Zjk4MCwgMHhmYTAwLCAweGZhODAsIDB4ZmIwMCwgMHhmYjgwLCAweGZjMDAsCisgICAgMHhmYzgwLCAweGZkMDAsIDB4ZmQ4MCwgMHhmZTAwLCAweGZlODAsIDB4ZmYwMCwgMHhmZjgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4YzAsIDB4MjUwLCAweDM3MCwKKyAgICAweDUzMCwgMHgzMDQwLCAweDMwYTAsIDB4ZmY2MCAgCisgICAgfTsKKworICAgIC8qKiBTdGF0aWMgY29tcHJlc3Npb24gd2luZG93IG9mZnNldHMgKi8KKyAgICBmaW5hbCBzdGF0aWMgaW50IFtdIHNPZmZzZXRzID0geworICAgICAgICAweDAwMDAsICAvLyBmb3IgcXVvdGluZyBzaW5nbGUtYnl0ZSBtb2RlIHRhZ3MKKyAgICAgICAgMHgwMDgwLCAgLy8gTGF0aW4tMSBTdXBwbGVtZW50CisgICAgICAgIDB4MDEwMCwgIC8vIExhdGluIEV4dGVuZGVkLUEKKyAgICAgICAgMHgwMzAwLCAgLy8gQ29tYmluaW5nIERpYWNyaXRpY2FsIE1hcmtzCisgICAgICAgIDB4MjAwMCwgIC8vIEdlbmVyYWwgUHVuY3R1YXRpb24KKyAgICAgICAgMHgyMDgwLCAgLy8gQ3VyZW5jeSBTeW1ib2xzCisgICAgICAgIDB4MjEwMCwgIC8vIExldHRlcmxpa2UgU3ltYm9scyBhbmQgTnVtYmVyIEZvcm1zCisgICAgICAgIDB4MzAwMCAgIC8vIENKSyBTeW1ib2xzIGFuZCBQdW5jdHVhdGlvbgorICAgIH07CisKK307CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TZWFyY2hJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0ZGU1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TZWFyY2hJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNzg4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogPHA+U2VhcmNoSXRlcmF0b3IgaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcyB0aGF0IGRlZmluZXMgYSBwcm90b2NvbAorICogZm9yIHRleHQgc2VhcmNoaW5nLiBTdWJjbGFzc2VzIHByb3ZpZGUgY29uY3JldGUgaW1wbGVtZW50YXRpb25zIG9mCisgKiB2YXJpb3VzIHNlYXJjaCBhbGdvcml0aG1zLiAgQSBjb25jcmV0ZSBzdWJjbGFzcywgU3RyaW5nU2VhcmNoLCBpcworICogcHJvdmlkZWQgdGhhdCBpbXBsZW1lbnRzIGxhbmd1YWdlLXNlbnNpdGl2ZSBwYXR0ZXJuIG1hdGNoaW5nIGJhc2VkCisgKiBvbiB0aGUgY29tcGFyaXNvbiBydWxlcyBkZWZpbmVkIGluIGEgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIG9iamVjdC4gSW5zdGFuY2VzIG9mIFNlYXJjaEl0ZXJhdG9yIG1haW50YWluIGEgY3VycmVudCBwb3NpdGlvbiBhbmQKKyAqIHNjYW4gb3ZlciB0aGUgdGFyZ2V0IHRleHQsIHJldHVybmluZyB0aGUgaW5kaWNlcyB3aGVyZSBhIG1hdGNoIGlzCisgKiBmb3VuZCBhbmQgdGhlIGxlbmd0aCBvZiBlYWNoIG1hdGNoLiBHZW5lcmFsbHksIHRoZSBzZXF1ZW5jZSBvZiBmb3J3YXJkIAorICogbWF0Y2hlcyB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gdGhlIHNlcXVlbmNlIG9mIGJhY2t3YXJkIG1hdGNoZXMuT25lCisgKiBjYXNlIHdoZXJlIHRoaXMgc3RhdGVtZW50IG1heSBub3QgaG9sZCBpcyB3aGVuIG5vbi1vdmVybGFwcGluZyBtb2RlIAorICogaXMgc2V0IG9uIGFuZCB0aGVyZSBhcmUgY29udGludW91cyByZXBldGl0aXZlIHBhdHRlcm5zIGluIHRoZSB0ZXh0LiAKKyAqIENvbnNpZGVyIHRoZSBjYXNlIHNlYXJjaGluZyBmb3IgcGF0dGVybiAiYWJhIiBpbiB0aGUgdGV4dCAKKyAqICJhYmFiYWJhYmEiLCBzZXR0aW5nIG92ZXJsYXBwaW5nIG1vZGUgb2ZmIHdpbGwgcHJvZHVjZSBmb3J3YXJkIG1hdGNoZXMKKyAqIGF0IG9mZnNldHMgMCwgNC4gSG93ZXZlciB3aGVuIGEgYmFja3dhcmRzIHNlYXJjaCBpcyBkb25lLCB0aGUKKyAqIHJlc3VsdHMgd2lsbCBiZSBhdCBvZmZzZXRzIDYgYW5kIDIuPC9wPgorICogCisgKiA8cD5JZiBtYXRjaGVzIHNlYXJjaGVkIGZvciBoYXZlIGJvdW5kYXJ5IHJlc3RyaWN0aW9ucy4gQnJlYWtJdGVyYXRvcnMgCisgKiBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIHZhbGlkIGJvdW5kYXJpZXMgb2Ygc3VjaCBhIG1hdGNoLiBPbmNlIGEgCisgKiBCcmVha0l0ZXJhdG9yIGlzIHNldCwgcG90ZW50aWFsIG1hdGNoZXMgd2lsbCBiZSB0ZXN0ZWQgYWdhaW5zdCB0aGUKKyAqIEJyZWFrSXRlcmF0b3IgdG8gZGV0ZXJtaW5lIGlmIHRoZSBib3VuZGFyaWVzIGFyZSB2YWxpZCBhbmQgdGhhdCBhbGwKKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHBvdGVudGlhbCBtYXRjaCBhcmUgZXF1aXZhbGVudCB0byB0aGUgcGF0dGVybiAKKyAqIHNlYXJjaGVkIGZvci4gRm9yIGV4YW1wbGUsIGxvb2tpbmcgZm9yIHRoZSBwYXR0ZXJuICJmb3giIGluIHRoZSB0ZXh0CisgKiAiZm94eSBmb3giIHdpbGwgcHJvZHVjZSBtYXRjaCByZXN1bHRzIGF0IG9mZnNldCAwIGFuZCA1IHdpdGggbGVuZ3RoIDMKKyAqIGlmIG5vIEJyZWFrSXRlcmF0b3JzIHdlcmUgc2V0LiBIb3dldmVyIGlmIGEgV29yZEJyZWFrSXRlcmF0b3IgaXMgc2V0LAorICogdGhlIG9ubHkgbWF0Y2ggdGhhdCB3b3VsZCBiZSBmb3VuZCB3aWxsIGJlIGF0IHRoZSBvZmZzZXQgNS4gU2luY2UsCisgKiB0aGUgU2VhcmNoSXRlcmF0b3IgZ3VhcmFudGVlcyB0aGF0IGlmIGEgQnJlYWtJdGVyYXRvciBpcyBzZXQsIGFsbCBpdHMKKyAqIG1hdGNoZXMgd2lsbCBtYXRjaCB0aGUgZ2l2ZW4gcGF0dGVybiBleGFjdGx5LCBhIHBvdGVudGlhbCBtYXRjaCB0aGF0IAorICogcGFzc2VzIHRoZSBCcmVha0l0ZXJhdG9yIG1pZ2h0IHN0aWxsIG5vdCBwcm9kdWNlIGEgdmFsaWQgbWF0Y2guIEZvciAKKyAqIGluc3RhbmNlIHRoZSBwYXR0ZXJuICJlIiB3aWxsIG5vdCBiZSBmb3VuZCBpbiB0aGUgc3RyaW5nIAorICogIiYjOTI7dTAwZTkiIChsYXRpbiBzbWFsbCBsZXR0ZXIgZSB3aXRoIGFjdXRlKSBpZiBhIAorICogQ2hhcmFjdGVyQnJlYWtJdGVyYXRvciBpcyB1c2VkLiBFdmVuIHRob3VnaCAiZSIgaXMKKyAqIGEgcGFydCBvZiB0aGUgY2hhcmFjdGVyICImIzkyO3UwMGU5IiBhbmQgdGhlIHBvdGVudGlhbCBtYXRjaCBhdAorICogb2Zmc2V0IDAgbGVuZ3RoIDEgcGFzc2VzIHRoZSBDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yIHRlc3QsICImIzkyO3UwMGU5IgorICogaXMgbm90IGVxdWl2YWxlbnQgdG8gImUiLCBoZW5jZSB0aGUgU2VhcmNoSXRlcmF0b3IgcmVqZWN0cyB0aGUgcG90ZW50aWFsCisgKiBtYXRjaC4gQnkgZGVmYXVsdCwgdGhlIFNlYXJjaEl0ZXJhdG9yCisgKiBkb2VzIG5vdCBpbXBvc2UgYW55IGJvdW5kYXJ5IHJlc3RyaWN0aW9uIG9uIHRoZSBtYXRjaGVzLCBpdCB3aWxsIAorICogcmV0dXJuIGFsbCByZXN1bHRzIHRoYXQgbWF0Y2ggdGhlIHBhdHRlcm4uIElsbHVzdHJhdGluZyB3aXRoIHRoZSAKKyAqIGFib3ZlIGV4YW1wbGUsICJlIiB3aWxsCisgKiBiZSBmb3VuZCBpbiB0aGUgc3RyaW5nICImIzkyO3UwMGU5IiBpZiBubyBCcmVha0l0ZXJhdG9yIGlzCisgKiBzcGVjaWZpZWQuPC9wPgorICogCisgKiA8cD5TZWFyY2hJdGVyYXRvciBhbHNvIHByb3ZpZGVzIGEgbWVhbnMgdG8gaGFuZGxlIG92ZXJsYXBwaW5nCisgKiBtYXRjaGVzIHZpYSB0aGUgQVBJIHNldE92ZXJsYXBwaW5nKGJvb2xlYW4pLiBGb3IgZXhhbXBsZSwgaWYKKyAqIG92ZXJsYXBwaW5nIG1vZGUgaXMgc2V0LCBzZWFyY2hpbmcgZm9yIHRoZSBwYXR0ZXJuICJhYmFiIiBpbiB0aGUKKyAqIHRleHQgImFiYWJhYiIgd2lsbCBtYXRjaCBhdCBwb3NpdGlvbnMgMCBhbmQgMiwgd2hlcmVhcyBpZgorICogb3ZlcmxhcHBpbmcgaXMgbm90IHNldCwgU2VhcmNoSXRlcmF0b3Igd2lsbCBvbmx5IG1hdGNoIGF0IHBvc2l0aW9uCisgKiAwLiBCeSBkZWZhdWx0LCBvdmVybGFwcGluZyBtb2RlIGlzIG5vdCBzZXQuPC9wPgorICogCisgKiA8cD5UaGUgQVBJcyBpbiBTZWFyY2hJdGVyYXRvciBhcmUgc2ltaWxhciB0byB0aGF0IG9mIG90aGVyIHRleHQKKyAqIGl0ZXJhdGlvbiBjbGFzc2VzIHN1Y2ggYXMgQnJlYWtJdGVyYXRvci4gVXNpbmcgdGhpcyBjbGFzcywgaXQgaXMKKyAqIGVhc3kgdG8gc2NhbiB0aHJvdWdoIHRleHQgbG9va2luZyBmb3IgYWxsIG9jY3VyYW5jZXMgb2YgYQorICogbWF0Y2guPC9wPgorICogPHA+CisgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgKiA8cHJlPgorICogU3RyaW5nIHRhcmdldCA9ICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGZveCI7CisgKiBTdHJpbmcgcGF0dGVybiA9ICJmb3giOworICogU2VhcmNoSXRlcmF0b3IgaXRlciA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGFyZ2V0KTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIuZmlyc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDE2IGFuZCA0MSB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGb3VuZCBtYXRjaCBhdCAiICsgcG9zICsgIiwgbGVuZ3RoIGlzICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIHRhcmdldCA9ICJhYmFiYWJhYmEiOworICogcGF0dGVybiA9ICJhYmEiOworICogaXRlci5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHBhdHRlcm4pKTsKKyAqIGl0ZXIuc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICogU3lzdGVtLm91dC5wcmludGxuKCJPdmVybGFwcGluZyBtb2RlIHNldCB0byBmYWxzZSIpOworICogU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmZpcnN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAwIGFuZCA0IHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQmFja3dhcmQgbWF0Y2hlcyBvZiBwYXR0ZXJuICIgKyBwYXR0ZXJuICsgIiBpbiB0ZXh0ICIKKyAqICAgICAgICAgICAgICAgICAgICArIHRleHQgKyAiOiAiKTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIubGFzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDYgYW5kIDIgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0ICIgKyBwb3MgKyAiLCBsZW5ndGggIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogU3lzdGVtLm91dC5wcmludGxuKCJPdmVybGFwcGluZyBtb2RlIHNldCB0byB0cnVlIik7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkluZGV4IHNldCB0byAyIik7CisgKiBpdGVyLnNldEluZGV4KDIpOworICogaXRlci5zZXRPdmVybGFwcGluZyh0cnVlKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiRm9yd2FyZCBtYXRjaGVzIG9mIHBhdHRlcm4gIiArIHBhdHRlcm4gKyAiIGluIHRleHQgIgorICogICAgICAgICAgICAgICAgICAgICsgdGV4dCArICI6ICIpOworICogZm9yIChpbnQgcG9zID0gaXRlci5maXJzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLm5leHQoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgMiwgNCBhbmQgNiB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQgIiArIHBvcyArICIsIGxlbmd0aCAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkluZGV4IHNldCB0byAyIik7CisgKiBpdGVyLnNldEluZGV4KDIpOworICogU3lzdGVtLm91dC5wcmludGxuKCJCYWNrd2FyZCBtYXRjaGVzIG9mIHBhdHRlcm4gIiArIHBhdHRlcm4gKyAiIGluIHRleHQgIgorICogICAgICAgICAgICAgICAgICAgICsgdGV4dCArICI6ICIpOworICogZm9yIChpbnQgcG9zID0gaXRlci5sYXN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIucHJldmlvdXMoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgMCB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQgIiArIHBvcyArICIsIGxlbmd0aCAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvcD4KKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyLCBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBCcmVha0l0ZXJhdG9yCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWFyY2hJdGVyYXRvciAKK3sKKyAgICAKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQgbWF0Y2hlcyBoYXZlIAorICAgICAqIGJlZW4gcmV0dXJuZWQsIGFuZCBieSBmaXJzdCgpIGFuZCBsYXN0KCkgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMgYXQgYWxsLgorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPTkUgPSAtMTsKKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBuZXh0IHNlYXJjaCB3aWxsIHN0YXJ0LgorICAgICAqIFRoaXMgbWV0aG9kIGNsZWFycyBhbnkgcHJldmlvdXMgbWF0Y2guCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBuZXh0IHNlYXJjaAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgYXJndW1lbnQgcG9zaXRpb24gaXMgb3V0CisgICAgICogICAgICAgICAgICBvZiB0aGUgdGFyZ2V0IHRleHQgcmFuZ2UuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgcG9zaXRpb24pIHsKKyAgICAgICAgaWYgKHBvc2l0aW9uIDwgdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkgCisgICAgICAgICAgICB8fCBwb3NpdGlvbiA+IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgInNldEluZGV4KGludCkgZXhwZWN0ZWQgcG9zaXRpb24gdG8gYmUgYmV0d2VlbiAiICsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSArICIgYW5kICIgKyB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIG1fc2V0T2Zmc2V0XyA9IHBvc2l0aW9uOworICAgICAgICBtX3Jlc2V0XyA9IGZhbHNlOworICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIERldGVybWluZXMgd2hldGhlciBvdmVybGFwcGluZyBtYXRjaGVzIGFyZSByZXR1cm5lZC4gU2VlIHRoZSBjbGFzcyAKKyAgICAgKiBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG92ZXJsYXBwaW5nIG1hdGNoZXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBkZWZhdWx0IHNldHRpbmcgb2YgdGhpcyBwcm9wZXJ0eSBpcyBmYWxzZQorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gYWxsb3dPdmVybGFwIGZsYWcgaW5kaWNhdG9yIGlmIG92ZXJsYXBwaW5nIG1hdGNoZXMgYXJlIGFsbG93ZWQKKyAgICAgKiBAc2VlICNpc092ZXJsYXBwaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0T3ZlcmxhcHBpbmcoYm9vbGVhbiBhbGxvd092ZXJsYXApCisgICAgeworICAgICAgICBtX2lzT3ZlcmxhcF8gPSBhbGxvd092ZXJsYXA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgQnJlYWtJdGVyYXRvciB0aGF0IGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIHBvaW50cyBhdCB3aGljaCAKKyAgICAgKiBtYXRjaGVzIGFyZSBkZXRlY3RlZC4KKyAgICAgKiBVc2luZyA8dHQ+bnVsbDwvdHQ+IGFzIHRoZSBwYXJhbWV0ZXIgaXMgbGVnYWw7IGl0IG1lYW5zIHRoYXQgYnJlYWsgCisgICAgICogZGV0ZWN0aW9uIHNob3VsZCBub3QgYmUgYXR0ZW1wdGVkLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEBwYXJhbSBicmVha2l0ZXIgQSBCcmVha0l0ZXJhdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHJlc3RyaWN0IHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHBvaW50cyBhdCB3aGljaCBtYXRjaGVzIGFyZSBkZXRlY3RlZC4KKyAgICAgKiBAc2VlICNnZXRCcmVha0l0ZXJhdG9yCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikgCisgICAgeworICAgICAgICBicmVha0l0ZXJhdG9yID0gYnJlYWtpdGVyOworICAgICAgICBpZiAoYnJlYWtJdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha0l0ZXJhdG9yLnNldFRleHQodGFyZ2V0VGV4dCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4gVGV4dCBpdGVyYXRpb24gd2lsbCB0aGVuIGJlZ2luIGF0IAorICAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgc3RyaW5nLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gCisgICAgICogcmV1c2UgYW4gaXRlcmF0b3IgdG8gc2VhcmNoIHdpdGhpbiBhIGRpZmZlcmVudCBib2R5IG9mIHRleHQuCisgICAgICogQHBhcmFtIHRleHQgbmV3IHRleHQgaXRlcmF0b3IgdG8gbG9vayBmb3IgbWF0Y2gsIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIHRleHQgaXMgbnVsbCBvciBoYXMKKyAgICAgKiAgICAgICAgICAgICAgIDAgbGVuZ3RoCisgICAgICogQHNlZSAjZ2V0VGFyZ2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGFyZ2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQpCisgICAgeworICAgICAgICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQuZ2V0RW5kSW5kZXgoKSA9PSB0ZXh0LmdldEluZGV4KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbnVsbCBvciBlbXB0eSB0ZXh0Iik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRhcmdldFRleHQgPSB0ZXh0OworICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICBtX3Jlc2V0XyA9IHRydWU7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IHRydWU7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dCh0YXJnZXRUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LgorICAgICAqIFRoaXMgY2FsbCByZXR1cm5zIGEgdmFsaWQgcmVzdWx0IG9ubHkgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gCisgICAgICoge0BsaW5rICNmaXJzdH0sIHtAbGluayAjbmV4dH0sIHtAbGluayAjcHJldmlvdXN9LCBvciB7QGxpbmsgI2xhc3R9LgorICAgICAqIEp1c3QgYWZ0ZXIgY29uc3RydWN0aW9uLCBvciBhZnRlciBhIHNlYXJjaGluZyBtZXRob2QgcmV0dXJucyAKKyAgICAgKiA8dHQ+RE9ORTwvdHQ+LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiA8dHQ+RE9ORTwvdHQ+LgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBVc2UgPHR0PmdldE1hdGNoTGVuZ3RoPC90dD4gdG8gZ2V0IHRoZSBsZW5ndGggb2YgdGhlIG1hdGNoZWQgdGV4dC4KKyAgICAgKiA8dHQ+Z2V0TWF0Y2hlZFRleHQ8L3R0PiB3aWxsIHJldHVybiB0aGUgc3VidGV4dCBpbiB0aGUgc2VhcmNoZWQgCisgICAgICogdGFyZ2V0IHRleHQgZnJvbSBpbmRleCBnZXRNYXRjaFN0YXJ0KCkgd2l0aCBsZW5ndGggZ2V0TWF0Y2hMZW5ndGgoKS4gCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gaW5kZXggdG8gYSBzdWJzdHJpbmcgd2l0aGluIHRoZSB0ZXh0IHN0cmluZyB0aGF0IGlzIGJlaW5nIAorICAgICAqICAgICAgICAgc2VhcmNoZWQuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1hdGNoU3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGFzdE1hdGNoU3RhcnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBpdGVyYXRvciBpcyBjdXJyZW50bHkKKyAgICAgKiBwb3NpdGlvbmVkLiAKKyAgICAgKiBJZiB0aGUgaXRlcmF0aW9uIGhhcyBnb25lIHBhc3QgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQsIG9yIHBhc3QgCisgICAgICogdGhlIGJlZ2lubmluZyBmb3IgYSBiYWNrd2FyZHMgc2VhcmNoLCB7QGxpbmsgI0RPTkV9IGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBpdGVyYXRvciBpcyBjdXJyZW50bHkgCisgICAgICogICAgICAgICBwb3NpdGlvbmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldEluZGV4KCk7CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIAorICAgICAqIFRoaXMgY2FsbCByZXR1cm5zIGEgdmFsaWQgcmVzdWx0IG9ubHkgYWZ0ZXIgYSBzdWNjZXNzZnVsCisgICAgICogY2FsbCB0byB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIAorICAgICAqIHtAbGluayAjbGFzdH0uCisgICAgICogSnVzdCBhZnRlciBjb25zdHJ1Y3Rpb24sIG9yIGFmdGVyIGEgc2VhcmNoaW5nIG1ldGhvZCByZXR1cm5zCisgICAgICogPHR0PkRPTkU8L3R0PiwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gMC4gU2VlIGdldE1hdGNoU3RhcnQoKSBmb3IgCisgICAgICogbW9yZSBkZXRhaWxzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIG1vc3QgcmVjZW50IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dCwgb3IgMCBpZiAKKyAgICAgKiAgICAgICAgIHRoZXJlIGlzIG5vIG1hdGNoLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1hdGNoTGVuZ3RoKCkgCisgICAgeworICAgICAgICByZXR1cm4gbWF0Y2hMZW5ndGg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIEJyZWFrSXRlcmF0b3IgdGhhdCBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBpbmRleGVzIGF0IHdoaWNoIAorICAgICAqIG1hdGNoZXMgYXJlIGRldGVjdGVkLiBUaGlzIHdpbGwgYmUgdGhlIHNhbWUgb2JqZWN0IHRoYXQgd2FzIHBhc3NlZCB0byAKKyAgICAgKiB0aGUgY29uc3RydWN0b3Igb3IgdG8gPGNvZGU+c2V0QnJlYWtJdGVyYXRvcjwvY29kZT4uCisgICAgICogSWYgdGhlIEJyZWFrSXRlcmF0b3IgaGFzIG5vdCBiZWVuIHNldCwgPHR0Pm51bGw8L3R0PiB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIFNlZSBzZXRCcmVha0l0ZXJhdG9yIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIEJyZWFrSXRlcmF0b3Igc2V0IHRvIHJlc3RyaWN0IGxvZ2ljIG1hdGNoZXMKKyAgICAgKiBAc2VlICNzZXRCcmVha0l0ZXJhdG9yCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJdGVyYXRvcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3I7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGFyZ2V0IHRleHQgdGhhdCBpcyBiZWluZyBzZWFyY2hlZC4KKyAgICAgKiBAcmV0dXJuIHRhcmdldCB0ZXh0IGJlaW5nIHNlYXJjaGVkLgorICAgICAqIEBzZWUgI3NldFRhcmdldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciBnZXRUYXJnZXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiB0YXJnZXRUZXh0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0ZXh0IHRoYXQgd2FzIG1hdGNoZWQgYnkgdGhlIG1vc3QgcmVjZW50IGNhbGwgdG8gCisgICAgICoge0BsaW5rICNmaXJzdH0sIHtAbGluayAjbmV4dH0sIHtAbGluayAjcHJldmlvdXN9LCBvciB7QGxpbmsgI2xhc3R9LiAKKyAgICAgKiBJZiB0aGUgaXRlcmF0b3IgaXMgbm90IHBvaW50aW5nIGF0IGEgdmFsaWQgbWF0Y2gsIGZvciBpbnN0YW5jZSBqdXN0IAorICAgICAqIGFmdGVyIGNvbnN0cnVjdGlvbiBvciBhZnRlciA8dHQ+RE9ORTwvdHQ+IGhhcyBiZWVuIHJldHVybmVkLCBhbiBlbXB0eSAKKyAgICAgKiBTdHJpbmcgd2lsbCBiZSByZXR1cm5lZC4gU2VlIGdldE1hdGNoU3RhcnQgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHJldHVybiB0aGUgc3Vic3RyaW5nIGluIHRoZSB0YXJnZXQgdGV4dCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRNYXRjaGVkVGV4dCgpIAorICAgIHsKKyAgICAgICAgaWYgKG1hdGNoTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gbV9sYXN0TWF0Y2hTdGFydF8gKyBtYXRjaExlbmd0aDsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKG1hdGNoTGVuZ3RoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICB3aGlsZSAodGFyZ2V0VGV4dC5nZXRJbmRleCgpIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRhcmdldFRleHQuY3VycmVudCgpKTsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobV9sYXN0TWF0Y2hTdGFydF8pOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vIG1pc2NlbGxhbmVvdXMgcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2VhcmNoIDxiPmZvcndhcmRzPC9iPiBpbiB0aGUgdGFyZ2V0IHRleHQgZm9yIHRoZSBuZXh0IHZhbGlkIG1hdGNoLAorICAgICAqIHN0YXJ0aW5nIHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBpdGVyYXRvciBwb3NpdGlvbi4gVGhlIGl0ZXJhdG9yIGlzIAorICAgICAqIGFkanVzdGVkIHNvIHRoYXQgaXRzIGN1cnJlbnQgaW5kZXgsIGFzIHJldHVybmVkIGJ5IHtAbGluayAjZ2V0SW5kZXh9LAorICAgICAqIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgbWF0Y2ggaWYgb25lIHdhcyBmb3VuZC4gSWYgYSBtYXRjaCBpcyAKKyAgICAgKiBmb3VuZCwgdGhlIGluZGV4IG9mIHRoZSBtYXRjaCBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIDx0dD5ET05FPC90dD4gaXMKKyAgICAgKiByZXR1cm5lZC4gIElmIG92ZXJsYXBwaW5nIG1vZGUgaXMgc2V0LCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmb3VuZCBtYXRjaAorICAgICAqIGNhbiBiZSBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBtYXRjaCwgaWYgYW55LgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBuZXh0IGZvcndhcmQgbWF0Y2ggYWZ0ZXIgdGhlIGN1cnJlbnQgCisgICAgICogICAgICAgICBpdGVyYXRvciBwb3NpdGlvbiwgb3IgCisgICAgICogICAgICAgICA8dHQ+RE9ORTwvdHQ+IGlmIHRoZXJlIGFyZSBubyBtb3JlIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICBpZiAobV9zZXRPZmZzZXRfICE9IERPTkUpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gbV9zZXRPZmZzZXRfOyAgICAKKyAgICAgICAgICAgIG1fc2V0T2Zmc2V0XyA9IERPTkU7ICAgIAorICAgICAgICB9CisgICAgICAgIGlmIChtX2lzRm9yd2FyZFNlYXJjaGluZ18pIHsKKyAgICAgICAgICAgIGlmICghbV9yZXNldF8gJiYgCisgICAgICAgICAgICAgICAgc3RhcnQgKyBtYXRjaExlbmd0aCA+PSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBub3QgZW5vdWdoIGNoYXJhY3RlcnMgdG8gbWF0Y2gKKyAgICAgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgICAgIG1fbGFzdE1hdGNoU3RhcnRfID0gRE9ORTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3Jlc2V0XyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gc3dpdGNoaW5nIGRpcmVjdGlvbi4gCisgICAgICAgICAgICAvLyBpZiBtYXRjaGVkSW5kZXggPT0gVVNFQVJDSF9ET05FLCBpdCBtZWFucyB0aGF0IGVpdGhlciBhIAorICAgICAgICAgICAgLy8gc2V0SW5kZXggaGFzIGJlZW4gY2FsbGVkIG9yIHRoYXQgcHJldmlvdXMgcmFuIG9mZiB0aGUgdGV4dAorICAgICAgICAgICAgLy8gc3RyaW5nLiB0aGUgaXRlcmF0b3Igd291bGQgaGF2ZSBiZWVuIHNldCB0byBvZmZzZXQgMCBpZiBhIAorICAgICAgICAgICAgLy8gbWF0Y2ggaXMgbm90IGZvdW5kLgorICAgICAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGFydCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgLy8gdGhlcmUncyBubyBuZWVkIHRvIHNldCB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV4dCBjYWxsIHRvIG5leHQgd2lsbCBzZXQgdGhlIG9mZnNldC4KKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzdGFydCA9PSBET05FKSB7CisgICAgICAgICAgICBzdGFydCA9IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtYXRjaExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIC8vIGlmIG1hdGNoIGxlbmd0aCBpcyAwIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbgorICAgICAgICAgICAgaWYgKG1faXNPdmVybGFwXykgeworICAgICAgICAgICAgICAgIHN0YXJ0ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gbWF0Y2hMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBoYW5kbGVOZXh0KHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIG1fbGFzdE1hdGNoU3RhcnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaCA8Yj5iYWNrd2FyZHM8L2I+IGluIHRoZSB0YXJnZXQgdGV4dCBmb3IgdGhlIG5leHQgdmFsaWQgbWF0Y2gsCisgICAgICogc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IGl0ZXJhdG9yIHBvc2l0aW9uLiBUaGUgaXRlcmF0b3IgaXMgCisgICAgICogYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkge0BsaW5rICNnZXRJbmRleH0sCisgICAgICogaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIGZvdW5kLiBJZiBhIG1hdGNoIGlzIAorICAgICAqIGZvdW5kLCB0aGUgaW5kZXggaXMgcmV0dXJuZWQsIG90aGVyd2lzZSA8dHQ+RE9ORTwvdHQ+IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiBvdmVybGFwcGluZyBtb2RlIGlzIHNldCwgdGhlIGVuZCBvZiB0aGUgZm91bmQgbWF0Y2ggY2FuIGJlIGFmdGVyIHRoZQorICAgICAqIGJlZ2lubmluZyBvZiB0aGUgcHJldmlvdXMgbWF0Y2gsIGlmIGFueS4KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggYWZ0ZXIgdGhlIGN1cnJlbnQgCisgICAgICogICAgICAgICBpdGVyYXRvciBwb3NpdGlvbiwgb3IgCisgICAgICogICAgICAgICA8dHQ+RE9ORTwvdHQ+IGlmIHRoZXJlIGFyZSBubyBtb3JlIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICBpZiAobV9zZXRPZmZzZXRfICE9IERPTkUpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gbV9zZXRPZmZzZXRfOyAgICAKKyAgICAgICAgICAgIG1fc2V0T2Zmc2V0XyA9IERPTkU7ICAgIAorICAgICAgICB9CisgICAgICAgIGlmIChtX3Jlc2V0XykgeworICAgICAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgICAgICBtX3Jlc2V0XyA9IGZhbHNlOworICAgICAgICAgICAgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtX2lzRm9yd2FyZFNlYXJjaGluZ18gPT0gdHJ1ZSkgeworICAgICAgICAgICAgLy8gc3dpdGNoaW5nIGRpcmVjdGlvbi4gCisgICAgICAgICAgICAvLyBpZiBtYXRjaGVkSW5kZXggPT0gVVNFQVJDSF9ET05FLCBpdCBtZWFucyB0aGF0IGVpdGhlciBhIAorICAgICAgICAgICAgLy8gc2V0SW5kZXggaGFzIGJlZW4gY2FsbGVkIG9yIHRoYXQgbmV4dCByYW4gb2ZmIHRoZSB0ZXh0CisgICAgICAgICAgICAvLyBzdHJpbmcuIHRoZSBpdGVyYXRvciB3b3VsZCBoYXZlIGJlZW4gc2V0IHRvIG9mZnNldCB0ZXh0TGVuZ3RoIGlmIAorICAgICAgICAgICAgLy8gYSBtYXRjaCBpcyBub3QgZm91bmQuCisgICAgICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChzdGFydCAhPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBub3QgZW5vdWdoIGNoYXJhY3RlcnMgdG8gbWF0Y2gKKyAgICAgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgICAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1fbGFzdE1hdGNoU3RhcnRfID0gaGFuZGxlUHJldmlvdXMoc3RhcnQpOworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG92ZXJsYXBwaW5nIHByb3BlcnR5IGhhcyBiZWVuIHNldC4KKyAgICAgKiBTZWUgc2V0T3ZlcmxhcHBpbmcoYm9vbGVhbikgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjc2V0T3ZlcmxhcHBpbmcKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG92ZXJsYXBwaW5nIHByb3BlcnR5IGhhcyBiZWVuIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPdmVybGFwcGluZygpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNPdmVybGFwXzsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIFJlc2V0cyB0aGUgc2VhcmNoIGl0ZXJhdGlvbi4gQWxsIHByb3BlcnRpZXMgd2lsbCBiZSByZXNldCB0byB0aGVpcgorICAgICAqIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhIGZvcndhcmQgaXRlcmF0aW9uIGlzIGluaXRpYXRlZCwgdGhlIG5leHQgc2VhcmNoIHdpbGwgYmVnaW4gYXQgdGhlCisgICAgICogc3RhcnQgb2YgdGhlIHRhcmdldCB0ZXh0LiBPdGhlcndpc2UsIGlmIGEgYmFja3dhcmRzIGl0ZXJhdGlvbiBpcyBpbml0aWF0ZWQsCisgICAgICogdGhlIG5leHQgc2VhcmNoIHdpbGwgYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIC8vIHJlc2V0IGlzIHNldHRpbmcgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzdHJpbmcgc2VhcmNoCisgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBtX2lzT3ZlcmxhcF8gPSBmYWxzZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNldF8gPSB0cnVlOworICAgICAgICBtX3NldE9mZnNldF8gPSBET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCA8Yj5mb3J3YXJkPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIAorICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGl0ZXJhdGlvbiB0byBiZWdpbiBhdCB0aGUgc3RhcnQgb2YgdGhlIAorICAgICAqIHRhcmdldCB0ZXh0IGFuZCBzZWFyY2hlcyBmb3J3YXJkIGZyb20gdGhlcmUuCisgICAgICogQHJldHVybiBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGZvcndhcmQgbWF0Y2gsIG9yIDxjb2RlPkRPTkU8L2NvZGU+IAorICAgICAqICAgICAgICAgICAgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZmlyc3QoKSAKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IHRydWU7CisgICAgICAgIHNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCA8Yj5mb3J3YXJkPC9iPiBtYXRjaCBpbiB0YXJnZXQgdGV4dCB0aGF0IAorICAgICAqIGlzIGF0IG9yIGFmdGVyIGFyZ3VtZW50IDx0dD5wb3NpdGlvbjwvdHQ+LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGluIHRoZSB0aGUgdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGZvcndhcmQgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZm9yd2FyZCBtYXRjaCwgb3IgPGNvZGU+RE9ORTwvY29kZT4gCisgICAgICogICAgICAgICBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjcHJlY2VkaW5nCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGZvbGxvd2luZyhpbnQgcG9zaXRpb24pIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgLy8gcG9zaXRpb24gY2hlY2tlZCBpbiB1c2VhcmNoX3NldE9mZnNldAorICAgICAgICBzZXRJbmRleChwb3NpdGlvbik7CisgICAgICAgIHJldHVybiBuZXh0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmJhY2t3YXJkPC9iPiBtYXRjaCBpbiB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgaXRlcmF0aW9uIHRvIGJlZ2luIGF0IHRoZSBlbmQgb2YgdGhlIAorICAgICAqIHRhcmdldCB0ZXh0IGFuZCBzZWFyY2hlcyBiYWNrd2FyZHMgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgZmlyc3QgYmFja3dhcmQgbWF0Y2gsIG9yIAorICAgICAqICAgICAgICAgPGNvZGU+RE9ORTwvY29kZT4gaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGxhc3QoKSAKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IGZhbHNlOworICAgICAgICBzZXRJbmRleCh0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpOworICAgICAgICByZXR1cm4gcHJldmlvdXMoKTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmJhY2t3YXJkczwvYj4gbWF0Y2ggaW4gdGFyZ2V0IAorICAgICAqIHRleHQgdGhhdCBlbmRzIGF0IG9yIGJlZm9yZSBhcmd1bWVudCA8dHQ+cG9zaXRpb248L3R0Pi4gCisgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgaXRlcmF0aW9uIHRvIGJlZ2luIGF0IHRoZSBhcmd1bWVudAorICAgICAqIHBvc2l0aW9uIGluZGV4IG9mIHRoZSB0YXJnZXQgdGV4dCBhbmQgc2VhcmNoZXMgYmFja3dhcmRzIGZyb20gdGhlcmUuCisgICAgICogQHJldHVybiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIGZpcnN0IGJhY2t3YXJkcyBtYXRjaCwgb3IgCisgICAgICogICAgICAgICA8Y29kZT5ET05FPC9jb2RlPiAKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgcHJlY2VkaW5nKGludCBwb3NpdGlvbikgCisgICAgeworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSBmYWxzZTsKKyAgICAgICAgLy8gcG9zaXRpb24gY2hlY2tlZCBpbiB1c2VhcmNoX3NldE9mZnNldAorICAgICAgICBzZXRJbmRleChwb3NpdGlvbik7CisgICAgICAgIHJldHVybiBwcmV2aW91cygpOyAgIAorICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGRlZmluZSB0aGUgYm91bmRhcmllcyBvZiBhIGxvZ2ljYWwgbWF0Y2guCisgICAgICogVGhpcyB2YWx1ZSBjYW4gYmUgYSBudWxsLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEBzZWUgI3NldEJyZWFrSXRlcmF0b3IoQnJlYWtJdGVyYXRvcikKKyAgICAgKiBAc2VlICNnZXRCcmVha0l0ZXJhdG9yCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIEJyZWFrSXRlcmF0b3IgYnJlYWtJdGVyYXRvcjsgCisKKyAgICAvKioKKyAgICAgKiBUYXJnZXQgdGV4dCBmb3Igc2VhcmNoaW5nLgorICAgICAqIEBzZWUgI3NldFRhcmdldChDaGFyYWN0ZXJJdGVyYXRvcikKKyAgICAgKiBAc2VlICNnZXRUYXJnZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0VGV4dDsKKyAgICAvKioKKyAgICAgKiBMZW5ndGggb2YgdGhlIG1vc3QgY3VycmVudCBtYXRjaCBpbiB0YXJnZXQgdGV4dC4gCisgICAgICogVmFsdWUgMCBpcyB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAgICAgKiBAc2VlICNzZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtYXRjaExlbmd0aDsKKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFByb3RlY3RlZCBjb25zdHJ1Y3RvciBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMuCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHdpdGggdGhlIGFyZ3VtZW50IHRhcmdldCB0ZXh0IGZvciBzZWFyY2hpbmcgCisgICAgICogYW5kIHNldHMgdGhlIEJyZWFrSXRlcmF0b3IuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgdGV4dAorICAgICAqIGFuZCBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCB0ZXh0IHRvIGJlIHNlYXJjaGVkLgorICAgICAqIEBwYXJhbSBicmVha2VyIEEge0BsaW5rIEJyZWFrSXRlcmF0b3J9IHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIAorICAgICAqICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMgb2YgYSBsb2dpY2FsIG1hdGNoLiBUaGlzIGFyZ3VtZW50IGNhbiBiZSBudWxsLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IgIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBTZWFyY2hJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXQsIEJyZWFrSXRlcmF0b3IgYnJlYWtlcikKKyAgICB7CisgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCAKKyAgICAgICAgICAgIHx8ICh0YXJnZXQuZ2V0RW5kSW5kZXgoKSAtIHRhcmdldC5nZXRCZWdpbkluZGV4KCkpID09IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWxsZWdhbCBhcmd1bWVudCB0YXJnZXQuICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCBvciBvZiBsZW5ndGggMCIpOworICAgICAgICB9CisgICAgICAgIHRhcmdldFRleHQgPSB0YXJnZXQ7CisgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBicmVha2VyOworICAgICAgICBpZiAoYnJlYWtJdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha0l0ZXJhdG9yLnNldFRleHQodGFyZ2V0KTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIG1fbGFzdE1hdGNoU3RhcnRfID0gRE9ORTsKKyAgICAgICAgbV9pc092ZXJsYXBfID0gZmFsc2U7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IHRydWU7CisgICAgICAgIG1fcmVzZXRfID0gdHJ1ZTsKKyAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsKKyAgICB9ICAgIAorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxlbmd0aCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBTdWJjbGFzc2VzJyBoYW5kbGVOZXh0KCkgYW5kIGhhbmRsZVByZXZpb3VzKCkgbWV0aG9kcyBzaG91bGQgY2FsbCB0aGlzIAorICAgICAqIGFmdGVyIHRoZXkgZmluZCBhIG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gICAgCisgICAgICogQHBhcmFtIGxlbmd0aCBuZXcgbGVuZ3RoIHRvIHNldAorICAgICAqIEBzZWUgI2hhbmRsZU5leHQKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHNldE1hdGNoTGVuZ3RoKGludCBsZW5ndGgpCisgICAgeworICAgICAgICBtYXRjaExlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBBYnN0cmFjdCBtZXRob2QgdGhhdCBzdWJjbGFzc2VzIG92ZXJyaWRlIHRvIHByb3ZpZGUgdGhlIG1lY2hhbmlzbSAKKyAgICAgKiBmb3IgZmluZGluZyB0aGUgbmV4dCA8Yj5mb3J3YXJkczwvYj4gbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiBUaGlzIAorICAgICAqIGFsbG93cyBkaWZmZXJlbnQgc3ViY2xhc3NlcyB0byBwcm92aWRlIGRpZmZlcmVudCBzZWFyY2ggYWxnb3JpdGhtcy4KKyAgICAgKiA8L3A+IAorICAgICAqIDxwPgorICAgICAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYWxsIHNldE1hdGNoTGVuZ3RoKGludCkgdG8KKyAgICAgKiBzZXQgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG1hdGNoLgorICAgICAqIFRoZSBpdGVyYXRvciBpcyBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IGluZGV4LCBhcyByZXR1cm5lZCBieSAKKyAgICAgKiB7QGxpbmsgI2dldEluZGV4fSwgaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIAorICAgICAqIGZvdW5kLiBJZiBhIG1hdGNoIGlzIG5vdCBmb3VuZCwgPHR0PkRPTkU8L3R0PiB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIDwvcD4gCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCBhdCB3aGljaCB0aGUgZm9yd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZHMgbWF0Y2ggaWYgZm91bmQsIERPTkUgCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRNYXRjaExlbmd0aChpbnQpCisgICAgICogQHNlZSAjaGFuZGxlUHJldmlvdXMoaW50KQorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW50IGhhbmRsZU5leHQoaW50IHN0YXJ0KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBBYnN0cmFjdCBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBvdmVycmlkZSB0byBwcm92aWRlIHRoZSBtZWNoYW5pc20gCisgICAgICogZm9yIGZpbmRpbmcgdGhlIG5leHQgPGI+YmFja3dhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIAorICAgICAqIFRoaXMgYWxsb3dzIGRpZmZlcmVudCAKKyAgICAgKiBzdWJjbGFzc2VzIHRvIHByb3ZpZGUgZGlmZmVyZW50IHNlYXJjaCBhbGdvcml0aG1zLiAKKyAgICAgKiA8L3A+IAorICAgICAqIDxwPgorICAgICAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYWxsIHNldE1hdGNoTGVuZ3RoKGludCkgdG8KKyAgICAgKiBzZXQgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG1hdGNoLgorICAgICAqIFRoZSBpdGVyYXRvciBpcyBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IGluZGV4LCBhcyByZXR1cm5lZCBieSAKKyAgICAgKiB7QGxpbmsgI2dldEluZGV4fSwgaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIAorICAgICAqIGZvdW5kLiBJZiBhIG1hdGNoIGlzIG5vdCBmb3VuZCwgPHR0PkRPTkU8L3R0PiB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIDwvcD4gCisgICAgICogQHBhcmFtIHN0YXJ0QXQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBiYWNrd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgYmFja3dhcmRzIG1hdGNoIGlmIGZvdW5kLCAKKyAgICAgKiAgICAgICAgIERPTkUgb3RoZXJ3aXNlCisgICAgICogQHNlZSAjc2V0TWF0Y2hMZW5ndGgoaW50KQorICAgICAqIEBzZWUgI2hhbmRsZU5leHQoaW50KQorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW50IGhhbmRsZVByZXZpb3VzKGludCBzdGFydEF0KTsKKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGbGFnIGluZGljYXRlcyBpZiB3ZSBhcmUgZG9pbmcgYSBmb3J3YXJkcyBzZWFyY2gKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0ZvcndhcmRTZWFyY2hpbmdfOworICAgIC8qKgorICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgb3ZlcmxhcHBpbmcgc2VhcmNoIGlzIHRvIGJlIGRvbmUuCisgICAgICogRS5nLiBsb29raW5nIGZvciAiYWEiIGluICJhYWEiIHdpbGwgeWllbGQgbWF0Y2hlcyBhdCBvZmZzZXQgMCBhbmQgMS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc092ZXJsYXBfOworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGVzIGlmIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgYSBzdHJpbmcgc2VhcmNoLgorICAgICAqIFRoaXMgaW5kaWNhdGVzIHRoYXQgd2UgYXJlIGluIGZvcndhcmQgc2VhcmNoIGFuZCBhdCB0aGUgc3RhcnQgb2YgbV90ZXh0LgorICAgICAqLyAKKyAgICBwcml2YXRlIGJvb2xlYW4gbV9yZXNldF87CisgICAgLyoqCisgICAgICogRGF0YSBtZW1iZXIgdG8gc3RvcmUgdXNlciBkZWZpbmVkIHBvc2l0aW9uIGluIHNldEluZGV4KCkuCisgICAgICogSWYgc2V0SW5kZXgoKSBpcyBub3QgY2FsbGVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgRE9ORS4KKyAgICAgKi8gCisgICAgcHJpdmF0ZSBpbnQgbV9zZXRPZmZzZXRfOworICAgIC8qKgorICAgICAqIE9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsYXN0IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9sYXN0TWF0Y2hTdGFydF87Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TaW1wbGVEYXRlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TaW1wbGVEYXRlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZlNGIwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YQpAQCAtMCwwICsxLDIwNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuWm9uZU1ldGE7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworCisvKioKKyAqIDxjb2RlPlNpbXBsZURhdGVGb3JtYXQ8L2NvZGU+IGlzIGEgY29uY3JldGUgY2xhc3MgZm9yIGZvcm1hdHRpbmcgYW5kCisgKiBwYXJzaW5nIGRhdGVzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBtYW5uZXIuIEl0IGFsbG93cyBmb3IgZm9ybWF0dGluZworICogKGRhdGUgLT4gdGV4dCksIHBhcnNpbmcgKHRleHQgLT4gZGF0ZSksIGFuZCBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPgorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gYWxsb3dzIHlvdSB0byBzdGFydCBieSBjaG9vc2luZworICogYW55IHVzZXItZGVmaW5lZCBwYXR0ZXJucyBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcuIEhvd2V2ZXIsIHlvdQorICogYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIGVpdGhlcgorICogPGNvZGU+Z2V0VGltZUluc3RhbmNlPC9jb2RlPiwgPGNvZGU+Z2V0RGF0ZUluc3RhbmNlPC9jb2RlPiwgb3IKKyAqIDxjb2RlPmdldERhdGVUaW1lSW5zdGFuY2U8L2NvZGU+IGluIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LiBFYWNoCisgKiBvZiB0aGVzZSBjbGFzcyBtZXRob2RzIGNhbiByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyIGluaXRpYWxpemVkCisgKiB3aXRoIGEgZGVmYXVsdCBmb3JtYXQgcGF0dGVybi4gWW91IG1heSBtb2RpZnkgdGhlIGZvcm1hdCBwYXR0ZXJuCisgKiB1c2luZyB0aGUgPGNvZGU+YXBwbHlQYXR0ZXJuPC9jb2RlPiBtZXRob2RzIGFzIGRlc2lyZWQuCisgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGVzZSBtZXRob2RzLCBzZWUKKyAqIHtAbGluayBEYXRlRm9ybWF0fS4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+VGltZSBGb3JtYXQgU3ludGF4Ojwvc3Ryb25nPgorICogPHA+CisgKiBUbyBzcGVjaWZ5IHRoZSB0aW1lIGZvcm1hdCB1c2UgYSA8ZW0+dGltZSBwYXR0ZXJuPC9lbT4gc3RyaW5nLgorICogSW4gdGhpcyBwYXR0ZXJuLCBhbGwgQVNDSUkgbGV0dGVycyBhcmUgcmVzZXJ2ZWQgYXMgcGF0dGVybiBsZXR0ZXJzLAorICogd2hpY2ggYXJlIGRlZmluZWQgYXMgdGhlIGZvbGxvd2luZzoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFN5bWJvbCAgIE1lYW5pbmcgICAgICAgICAgICAgICAgIFByZXNlbnRhdGlvbiAgICAgICAgRXhhbXBsZQorICogLS0tLS0tICAgLS0tLS0tLSAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tICAgICAgICAtLS0tLS0tCisgKiBHICAgICAgICBlcmEgZGVzaWduYXRvciAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIEFECisgKiB5JiN4MjAyMDsgICAgICAgeWVhciAgICAgICAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxOTk2CisgKiBZKiAgICAgICB5ZWFyICh3ZWVrIG9mIHllYXIpICAgICAoTnVtYmVyKSAgICAgICAgICAgIDE5OTcKKyAqIHUqICAgICAgIGV4dGVuZGVkIHllYXIgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgNDYwMQorICogTSAgICAgICAgbW9udGggaW4geWVhciAgICAgICAgICAgKFRleHQgJiBOdW1iZXIpICAgICBKdWx5ICYgMDcKKyAqIGQgICAgICAgIGRheSBpbiBtb250aCAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTAKKyAqIGggICAgICAgIGhvdXIgaW4gYW0vcG0gKDF+MTIpICAgIChOdW1iZXIpICAgICAgICAgICAgMTIKKyAqIEggICAgICAgIGhvdXIgaW4gZGF5ICgwfjIzKSAgICAgIChOdW1iZXIpICAgICAgICAgICAgMAorICogbSAgICAgICAgbWludXRlIGluIGhvdXIgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAzMAorICogcyAgICAgICAgc2Vjb25kIGluIG1pbnV0ZSAgICAgICAgKE51bWJlcikgICAgICAgICAgICA1NQorICogUyAgICAgICAgZnJhY3Rpb25hbCBzZWNvbmQgICAgICAgKE51bWJlcikgICAgICAgICAgICA5NzgKKyAqIEUgICAgICAgIGRheSBvZiB3ZWVrICAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgVHVlc2RheQorICogZSogICAgICAgZGF5IG9mIHdlZWsgKGxvY2FsIDF+NykgKE51bWJlcikgICAgICAgICAgICAyCisgKiBEICAgICAgICBkYXkgaW4geWVhciAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDE4OQorICogRiAgICAgICAgZGF5IG9mIHdlZWsgaW4gbW9udGggICAgKE51bWJlcikgICAgICAgICAgICAyICgybmQgV2VkIGluIEp1bHkpCisgKiB3ICAgICAgICB3ZWVrIGluIHllYXIgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI3CisgKiBXICAgICAgICB3ZWVrIGluIG1vbnRoICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDIKKyAqIGEgICAgICAgIGFtL3BtIG1hcmtlciAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgUE0KKyAqIGsgICAgICAgIGhvdXIgaW4gZGF5ICgxfjI0KSAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjQKKyAqIEsgICAgICAgIGhvdXIgaW4gYW0vcG0gKDB+MTEpICAgIChOdW1iZXIpICAgICAgICAgICAgMAorICogeiAgICAgICAgdGltZSB6b25lICAgICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBQYWNpZmljIFN0YW5kYXJkIFRpbWUKKyAqIFogICAgICAgIHRpbWUgem9uZSAoUkZDIDgyMikgICAgIChOdW1iZXIpICAgICAgICAgICAgLTA4MDAKKyAqIHYgICAgICAgIHRpbWUgem9uZSAoZ2VuZXJpYykgICAgIChUZXh0KSAgICAgICAgICAgICAgUGFjaWZpYyBUaW1lCisgKiBnKiAgICAgICBKdWxpYW4gZGF5ICAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI0NTEzMzQKKyAqIEEqICAgICAgIG1pbGxpc2Vjb25kcyBpbiBkYXkgICAgIChOdW1iZXIpICAgICAgICAgICAgNjk1NDAwMDAKKyAqICcgICAgICAgIGVzY2FwZSBmb3IgdGV4dCAgICAgICAgIChEZWxpbWl0ZXIpICAgICAgICAgJ0RhdGU9JworICogJycgICAgICAgc2luZ2xlIHF1b3RlICAgICAgICAgICAgKExpdGVyYWwpICAgICAgICAgICAnbycnY2xvY2snCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDx0dD48Yj4qPC9iPjwvdHQ+IFRoZXNlIGl0ZW1zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEphdmEncyBTaW1wbGVEYXRlRm9ybWF0Ljxicj4KKyAqIDx0dD48Yj4mI3gyMDIwOzwvYj48L3R0PiBJQ1UgaW50ZXJwcmV0cyBhIHNpbmdsZSAneScgZGlmZmVyZW50bHkgdGhhbiBKYXZhLjwvcD4KKyAqIDxwPgorICogVGhlIGNvdW50IG9mIHBhdHRlcm4gbGV0dGVycyBkZXRlcm1pbmUgdGhlIGZvcm1hdC4KKyAqIDxwPgorICogPHN0cm9uZz4oVGV4dCk8L3N0cm9uZz46IDQgb3IgbW9yZSBwYXR0ZXJuIGxldHRlcnMtLXVzZSBmdWxsIGZvcm0sCisgKiAmbHQ7IDQtLXVzZSBzaG9ydCBvciBhYmJyZXZpYXRlZCBmb3JtIGlmIG9uZSBleGlzdHMuCisgKiA8cD4KKyAqIDxzdHJvbmc+KE51bWJlcik8L3N0cm9uZz46IHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMuIFNob3J0ZXIKKyAqIG51bWJlcnMgYXJlIHplcm8tcGFkZGVkIHRvIHRoaXMgYW1vdW50LiBZZWFyIGlzIGhhbmRsZWQgc3BlY2lhbGx5OworICogdGhhdCBpcywgaWYgdGhlIGNvdW50IG9mICd5JyBpcyAyLCB0aGUgWWVhciB3aWxsIGJlIHRydW5jYXRlZCB0byAyIGRpZ2l0cy4KKyAqIChlLmcuLCBpZiAieXl5eSIgcHJvZHVjZXMgIjE5OTciLCAieXkiIHByb2R1Y2VzICI5NyIuKQorICogVW5saWtlIG90aGVyIGZpZWxkcywgZnJhY3Rpb25hbCBzZWNvbmRzIGFyZSBwYWRkZWQgb24gdGhlIHJpZ2h0IHdpdGggemVyby4KKyAqIDxwPgorICogPHN0cm9uZz4oVGV4dCAmIE51bWJlcik8L3N0cm9uZz46IDMgb3Igb3ZlciwgdXNlIHRleHQsIG90aGVyd2lzZSB1c2UgbnVtYmVyLgorICogPHA+CisgKiBBbnkgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybiB0aGF0IGFyZSBub3QgaW4gdGhlIHJhbmdlcyBvZiBbJ2EnLi4neiddCisgKiBhbmQgWydBJy4uJ1onXSB3aWxsIGJlIHRyZWF0ZWQgYXMgcXVvdGVkIHRleHQuIEZvciBpbnN0YW5jZSwgY2hhcmFjdGVycworICogbGlrZSAnOicsICcuJywgJyAnLCAnIycgYW5kICdAJyB3aWxsIGFwcGVhciBpbiB0aGUgcmVzdWx0aW5nIHRpbWUgdGV4dAorICogZXZlbiB0aGV5IGFyZSBub3QgZW1icmFjZWQgd2l0aGluIHNpbmdsZSBxdW90ZXMuCisgKiA8cD4KKyAqIEEgcGF0dGVybiBjb250YWluaW5nIGFueSBpbnZhbGlkIHBhdHRlcm4gbGV0dGVyIHdpbGwgcmVzdWx0IGluIGEgdGhyb3duCisgKiBleGNlcHRpb24gZHVyaW5nIGZvcm1hdHRpbmcgb3IgcGFyc2luZy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+RXhhbXBsZXMgVXNpbmcgdGhlIFVTIExvY2FsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIEZvcm1hdCBQYXR0ZXJuICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdAorICogLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLQorICogInl5eXkuTU0uZGQgRyAnYXQnIEhIOm1tOnNzIHZ2dnYiIC0+PiAgMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQYWNpZmljIFRpbWUKKyAqICJFRUUsIE1NTSBkLCAnJ3l5IiAgICAgICAgICAgICAgICAtPj4gIFdlZCwgSnVseSAxMCwgJzk2CisgKiAiaDptbSBhIiAgICAgICAgICAgICAgICAgICAgICAgICAgLT4+ICAxMjowOCBQTQorICogImhoICdvJydjbG9jaycgYSwgenp6eiIgICAgICAgICAgIC0+PiAgMTIgbydjbG9jayBQTSwgUGFjaWZpYyBEYXlsaWdodCBUaW1lCisgKiAiSzptbSBhLCB2dnYiICAgICAgICAgICAgICAgICAgICAgLT4+ICAwOjAwIFBNLCBQVAorICogInl5eXl5Lk1NTU1NLmRkIEdHRyBoaDptbSBhYWEiICAgIC0+PiAgMDE5OTYuSnVseS4xMCBBRCAxMjowOCBQTQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8c3Ryb25nPkNvZGUgU2FtcGxlOjwvc3Ryb25nPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogU2ltcGxlVGltZVpvbmUgcGR0ID0gbmV3IFNpbXBsZVRpbWVab25lKC04ICogNjAgKiA2MCAqIDEwMDAsICJQU1QiKTsKKyAqIHBkdC5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuQVBSSUwsIDEsIENhbGVuZGFyLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAqIHBkdC5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIC0xLCBDYWxlbmRhci5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgKiA8YnI+CisgKiAvLyBGb3JtYXQgdGhlIGN1cnJlbnQgdGltZS4KKyAqIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyCisgKiAgICAgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCAoInl5eXkuTU0uZGQgRyAnYXQnIGhoOm1tOnNzIGEgenp6Iik7CisgKiBEYXRlIGN1cnJlbnRUaW1lXzEgPSBuZXcgRGF0ZSgpOworICogU3RyaW5nIGRhdGVTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KGN1cnJlbnRUaW1lXzEpOworICogPGJyPgorICogLy8gUGFyc2UgdGhlIHByZXZpb3VzIHN0cmluZyBiYWNrIGludG8gYSBEYXRlLgorICogUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAqIERhdGUgY3VycmVudFRpbWVfMiA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBJbiB0aGUgZXhhbXBsZSwgdGhlIHRpbWUgdmFsdWUgPGNvZGU+Y3VycmVudFRpbWVfMjwvY29kZT4gb2J0YWluZWQgZnJvbQorICogcGFyc2luZyB3aWxsIGJlIGVxdWFsIHRvIDxjb2RlPmN1cnJlbnRUaW1lXzE8L2NvZGU+LiBIb3dldmVyLCB0aGV5IG1heSBub3QgYmUKKyAqIGVxdWFsIGlmIHRoZSBhbS9wbSBtYXJrZXIgJ2EnIGlzIGxlZnQgb3V0IGZyb20gdGhlIGZvcm1hdCBwYXR0ZXJuIHdoaWxlCisgKiB0aGUgImhvdXIgaW4gYW0vcG0iIHBhdHRlcm4gc3ltYm9sIGlzIHVzZWQuIFRoaXMgaW5mb3JtYXRpb24gbG9zcyBjYW4KKyAqIGhhcHBlbiB3aGVuIGZvcm1hdHRpbmcgdGhlIHRpbWUgaW4gUE0uCisgKgorICogPHA+CisgKiBXaGVuIHBhcnNpbmcgYSBkYXRlIHN0cmluZyB1c2luZyB0aGUgYWJicmV2aWF0ZWQgeWVhciBwYXR0ZXJuICgieXkiKSwKKyAqIFNpbXBsZURhdGVGb3JtYXQgbXVzdCBpbnRlcnByZXQgdGhlIGFiYnJldmlhdGVkIHllYXIKKyAqIHJlbGF0aXZlIHRvIHNvbWUgY2VudHVyeS4gIEl0IGRvZXMgdGhpcyBieSBhZGp1c3RpbmcgZGF0ZXMgdG8gYmUKKyAqIHdpdGhpbiA4MCB5ZWFycyBiZWZvcmUgYW5kIDIwIHllYXJzIGFmdGVyIHRoZSB0aW1lIHRoZSBTaW1wbGVEYXRlRm9ybWF0CisgKiBpbnN0YW5jZSBpcyBjcmVhdGVkLiBGb3IgZXhhbXBsZSwgdXNpbmcgYSBwYXR0ZXJuIG9mICJNTS9kZC95eSIgYW5kIGEKKyAqIFNpbXBsZURhdGVGb3JtYXQgaW5zdGFuY2UgY3JlYXRlZCBvbiBKYW4gMSwgMTk5NywgIHRoZSBzdHJpbmcKKyAqICIwMS8xMS8xMiIgd291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgSmFuIDExLCAyMDEyIHdoaWxlIHRoZSBzdHJpbmcgIjA1LzA0LzY0IgorICogd291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgTWF5IDQsIDE5NjQuCisgKiBEdXJpbmcgcGFyc2luZywgb25seSBzdHJpbmdzIGNvbnNpc3Rpbmcgb2YgZXhhY3RseSB0d28gZGlnaXRzLCBhcyBkZWZpbmVkIGJ5CisgKiB7QGxpbmsgamF2YS5sYW5nLkNoYXJhY3RlciNpc0RpZ2l0KGNoYXIpfSwgd2lsbCBiZSBwYXJzZWQgaW50byB0aGUgZGVmYXVsdAorICogY2VudHVyeS4KKyAqIEFueSBvdGhlciBudW1lcmljIHN0cmluZywgc3VjaCBhcyBhIG9uZSBkaWdpdCBzdHJpbmcsIGEgdGhyZWUgb3IgbW9yZSBkaWdpdAorICogc3RyaW5nLCBvciBhIHR3byBkaWdpdCBzdHJpbmcgdGhhdCBpc24ndCBhbGwgZGlnaXRzIChmb3IgZXhhbXBsZSwgIi0xIiksIGlzCisgKiBpbnRlcnByZXRlZCBsaXRlcmFsbHkuICBTbyAiMDEvMDIvMyIgb3IgIjAxLzAyLzAwMyIgYXJlIHBhcnNlZCwgdXNpbmcgdGhlCisgKiBzYW1lIHBhdHRlcm4sIGFzIEphbiAyLCAzIEFELiAgTGlrZXdpc2UsICIwMS8wMi8tMyIgaXMgcGFyc2VkIGFzIEphbiAyLCA0IEJDLgorICoKKyAqIDxwPgorICogSWYgdGhlIHllYXIgcGF0dGVybiBkb2VzIG5vdCBoYXZlIGV4YWN0bHkgdHdvICd5JyBjaGFyYWN0ZXJzLCB0aGUgeWVhciBpcworICogaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LCByZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgZGlnaXRzLiAgU28gdXNpbmcgdGhlCisgKiBwYXR0ZXJuICJNTS9kZC95eXl5IiwgIjAxLzExLzEyIiBwYXJzZXMgdG8gSmFuIDExLCAxMiBBLkQuCisgKgorICogPHA+CisgKiBXaGVuIG51bWVyaWMgZmllbGRzIGFidXQgb25lIGFub3RoZXIgZGlyZWN0bHksIHdpdGggbm8gaW50ZXJ2ZW5pbmcgZGVsaW1pdGVyCisgKiBjaGFyYWN0ZXJzLCB0aGV5IGNvbnN0aXR1dGUgYSBydW4gb2YgYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZHMuICBTdWNoIHJ1bnMgYXJlCisgKiBwYXJzZWQgc3BlY2lhbGx5LiAgRm9yIGV4YW1wbGUsIHRoZSBmb3JtYXQgIkhIbW1zcyIgcGFyc2VzIHRoZSBpbnB1dCB0ZXh0CisgKiAiMTIzNDU2IiB0byAxMjozNDo1NiwgcGFyc2VzIHRoZSBpbnB1dCB0ZXh0ICIxMjM0NSIgdG8gMToyMzo0NSwgYW5kIGZhaWxzIHRvCisgKiBwYXJzZSAiMTIzNCIuICBJbiBvdGhlciB3b3JkcywgdGhlIGxlZnRtb3N0IGZpZWxkIG9mIHRoZSBydW4gaXMgZmxleGlibGUsCisgKiB3aGlsZSB0aGUgb3RoZXJzIGtlZXAgYSBmaXhlZCB3aWR0aC4gIElmIHRoZSBwYXJzZSBmYWlscyBhbnl3aGVyZSBpbiB0aGUgcnVuLAorICogdGhlbiB0aGUgbGVmdG1vc3QgZmllbGQgaXMgc2hvcnRlbmVkIGJ5IG9uZSBjaGFyYWN0ZXIsIGFuZCB0aGUgZW50aXJlIHJ1biBpcworICogcGFyc2VkIGFnYWluLiBUaGlzIGlzIHJlcGVhdGVkIHVudGlsIGVpdGhlciB0aGUgcGFyc2Ugc3VjY2VlZHMgb3IgdGhlCisgKiBsZWZ0bW9zdCBmaWVsZCBpcyBvbmUgY2hhcmFjdGVyIGluIGxlbmd0aC4gIElmIHRoZSBwYXJzZSBzdGlsbCBmYWlscyBhdCB0aGF0CisgKiBwb2ludCwgdGhlIHBhcnNlIG9mIHRoZSBydW4gZmFpbHMuCisgKgorICogPHA+CisgKiBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8gbmFtZXMsIHVzZSBzdHJpbmdzIEdNVCtob3VyczptaW51dGVzIG9yCisgKiBHTVQtaG91cnM6bWludXRlcy4KKyAqCisgKiA8cD4KKyAqIFRoZSBjYWxlbmRhciBkZWZpbmVzIHdoYXQgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaywgdGhlIGZpcnN0IHdlZWsKKyAqIG9mIHRoZSB5ZWFyLCB3aGV0aGVyIGhvdXJzIGFyZSB6ZXJvIGJhc2VkIG9yIG5vdCAoMCB2cyAxMiBvciAyNCksIGFuZCB0aGUKKyAqIHRpbWUgem9uZS4gVGhlcmUgaXMgb25lIGNvbW1vbiBkZWNpbWFsIGZvcm1hdCB0byBoYW5kbGUgYWxsIHRoZSBudW1iZXJzOworICogdGhlIGRpZ2l0IGNvdW50IGlzIGhhbmRsZWQgcHJvZ3JhbW1hdGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIHBhdHRlcm4uCisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogRGF0ZSBmb3JtYXRzIGFyZSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUKKyAqIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scworICogQHNlZSAgICAgICAgICBEZWNpbWFsRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlRGF0ZUZvcm1hdCBleHRlbmRzIERhdGVGb3JtYXQgeworCisgICAgLy8gdGhlIG9mZmljaWFsIHNlcmlhbCB2ZXJzaW9uIElEIHdoaWNoIHNheXMgY3J5cHRpY2FsbHkKKyAgICAvLyB3aGljaCB2ZXJzaW9uIHdlJ3JlIGNvbXBhdGlibGUgd2l0aAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDQ3NzQ4ODE5NzA1NTg4NzUwMjRMOworCisgICAgLy8gdGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS4zCisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS40LCB3aGljaCBpbmNsdWRlcyBhIG5ldyBmaWVsZAorICAgIHN0YXRpYyBmaW5hbCBpbnQgY3VycmVudFNlcmlhbFZlcnNpb24gPSAxOworCisgICAgLyoqCisgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcmlhbGl6ZWQgZGF0YSBvbiB0aGUgc3RyZWFtLiAgUG9zc2libGUgdmFsdWVzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+MDwvYj4gb3Igbm90IHByZXNlbnQgb24gc3RyZWFtOiBKREsgMS4xLjMuICBUaGlzIHZlcnNpb24KKyAgICAgKiBoYXMgbm8gPGNvZGU+ZGVmYXVsdENlbnR1cnlTdGFydDwvY29kZT4gb24gc3RyZWFtLgorICAgICAqIDxsaT48Yj4xPC9iPiBKREsgMS4xLjQgb3IgbGF0ZXIuICBUaGlzIHZlcnNpb24gYWRkcworICAgICAqIDxjb2RlPmRlZmF1bHRDZW50dXJ5U3RhcnQ8L2NvZGU+LgorICAgICAqIDwvdWw+CisgICAgICogV2hlbiBzdHJlYW1pbmcgb3V0IHRoaXMgY2xhc3MsIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiBhbmQgdGhlIGhpZ2hlc3QgYWxsb3dhYmxlIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4KKyAgICAgKiBpcyB3cml0dGVuLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8qKgorICAgICAqIFRoZSBwYXR0ZXJuIHN0cmluZyBvZiB0aGlzIGZvcm1hdHRlci4gIFRoaXMgaXMgYWx3YXlzIGEgbm9uLWxvY2FsaXplZAorICAgICAqIHBhdHRlcm4uICBNYXkgbm90IGJlIG51bGwuICBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXR0ZXIgZm9yIHdlZWsgbmFtZXMsIG1vbnRoIG5hbWVzLAorICAgICAqIGV0Yy4gIE1heSBub3QgYmUgbnVsbC4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSBEYXRlRm9ybWF0U3ltYm9scworICAgICAqLworICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YTsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFVMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogV2UgbWFwIGRhdGVzIHdpdGggdHdvLWRpZ2l0IHllYXJzIGludG8gdGhlIGNlbnR1cnkgc3RhcnRpbmcgYXQKKyAgICAgKiA8Y29kZT5kZWZhdWx0Q2VudHVyeVN0YXJ0PC9jb2RlPiwgd2hpY2ggbWF5IGJlIGFueSBkYXRlLiAgTWF5CisgICAgICogbm90IGJlIG51bGwuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsxLjEuNAorICAgICAqLworICAgIHByaXZhdGUgRGF0ZSBkZWZhdWx0Q2VudHVyeVN0YXJ0OworCisgICAgdHJhbnNpZW50IHByaXZhdGUgaW50IGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgVGltZVpvbmUgcGFyc2VkVGltZVpvbmU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDYwICogNjAgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtaWxsaXNQZXJNaW51dGUgPSA2MCAqIDEwMDA7CisKKyAgICAvLyBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8gbmFtZXMsIHVzZSBzdHJpbmdzIEdNVCttaW51dGVzIGFuZAorICAgIC8vIEdNVC1taW51dGVzLiBGb3IgaW5zdGFuY2UsIGluIEZyYW5jZSB0aGUgdGltZSB6b25lIGlzIEdNVCs2MC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR01UX1BMVVMgPSAiR01UKyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdNVF9NSU5VUyA9ICJHTVQtIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR01UID0gIkdNVCI7CisKKyAgICAvLyBUaGlzIHByZWZpeCBpcyBkZXNpZ25lZCB0byBORVZFUiBNQVRDSCByZWFsIHRleHQsIGluIG9yZGVyIHRvCisgICAgLy8gc3VwcHJlc3MgdGhlIHBhcnNpbmcgb2YgbmVnYXRpdmUgbnVtYmVycy4gIEFkanVzdCBhcyBuZWVkZWQgKGlmCisgICAgLy8gdGhpcyBiZWNvbWVzIHZhbGlkIFVuaWNvZGUpLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTVVBQUkVTU19ORUdBVElWRV9QUkVGSVggPSAiXHVBQjAwIjsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIERhdGVUaW1lUGF0dGVybnMgb2YgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworCisgICAgLyoqCisgICAgICogSWYgdHJ1ZSwgdGhpcyBvYmplY3Qgc3VwcG9ydHMgZmFzdCBmb3JtYXR0aW5nIHVzaW5nIHRoZQorICAgICAqIHN1YkZvcm1hdCB2YXJpYW50IHRoYXQgdGFrZXMgYSBTdHJpbmdCdWZmZXIuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiB1c2VGYXN0Rm9ybWF0OworCisgICAgLyoqCisgICAgICogSWYgdHJ1ZSwgdGhpcyBvYmplY3Qgc3VwcG9ydHMgZmFzdCBudW1iZXIgZm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiB1c2VGYXN0WmVyb1BhZGRpbmdOdW1iZXI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgY2hhciB6ZXJvRGlnaXQ7CisgICAgcHJpdmF0ZSBjaGFyW10gZGVjaW1hbEJ1ZiA9IG5ldyBjaGFyWzEwXTsgLy8gMTAgZGlnaXQgaXMgZ29vZCBlbm91Z2ggdG8gc3RvcmUgSW50ZXJnZXIuTUFYX1ZBTFVFCisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZGVmYXVsdCBwYXR0ZXJuIGZvciB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZS4gIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoKSB7CisgICAgICAgIHRoaXMoU0hPUlQsIFNIT1JULCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBpbiB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZS4gIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgbG9jYWxlLgorICAgICAqIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBMb2NhbGUgbG9jKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBVTG9jYWxlLmZvckxvY2FsZShsb2MpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2MpCisgICAgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobG9jKTsKKyAgICAgICAgaW5pdGlhbGl6ZShsb2MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kCisgICAgICogbG9jYWxlLXNwZWNpZmljIHN5bWJvbCBkYXRhLgorICAgICAqIFdhcm5pbmc6IHVzZXMgZGVmYXVsdCBsb2NhbGUgZm9yIGRpZ2l0cyEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMocGF0dGVybiwgZm9ybWF0RGF0YSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4yCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEsIFVMb2NhbGUgbG9jKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhLmNsb25lKCk7CisKKyAgICAgICAgaW5pdGlhbGl6ZShsb2MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2thZ2UtcHJpdmF0ZSBjb25zdHJ1Y3RvciB0aGF0IGFsbG93cyBhIHN1YmNsYXNzIHRvIHNwZWNpZnkKKyAgICAgKiB3aGV0aGVyIGl0IHN1cHBvcnRzIGZhc3QgZm9ybWF0dGluZy4KKyAgICAgKgorICAgICAqIFRPRE8gbWFrZSB0aGlzIEFQSSBwdWJsaWMuCisgICAgICovCisgICAgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlRmFzdEZvcm1hdCkgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpIGZvcm1hdERhdGEuY2xvbmUoKTsKKyAgICAgICAgaW5pdGlhbGl6ZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIC8vIHRoaXMudXNlRmFzdEZvcm1hdCBpcyBzZXQgYnkgaW5pdGlhbGl6ZSgpOyBmaXggaXQgdXAgYWZ0ZXJ3YXJkcworICAgICAgICB0aGlzLnVzZUZhc3RGb3JtYXQgPSB1c2VGYXN0Rm9ybWF0OworICAgIH0KKworICAgIC8vIHRyeSBjYWNoaW5nCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBDQUNIRSA9IHRydWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBjYWNoZUFnZTsKKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIGhpZ2hDYWNoZVJlZjsKKworICAgIC8qIFBhY2thZ2UtcHJpdmF0ZSwgY2FsbGVkIGJ5IERhdGVGb3JtYXQgZmFjdG9yeSBtZXRob2RzICovCisgICAgU2ltcGxlRGF0ZUZvcm1hdChpbnQgdGltZVN0eWxlLCBpbnQgZGF0ZVN0eWxlLCBVTG9jYWxlIGxvYykgeworICAgICAgICAvLyB0cnkgYSBoaWdoIGxldmVsIGNhY2hlIGZpcnN0IQorCisgICAgICAgIE1hcCBtYXAgPSBudWxsOworICAgICAgICBTdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgaWYgKENBQ0hFKSB7CisgICAgICAgICAgICAvLyBhZ2UgdGVzdCBpcyBzbyB3ZSBkb24ndCBoYXZlIHRvIGNvbXB1dGUgdGhlIGNlbnR1cnkgc3RhcnQgYWxsIHRoZSB0aW1lLi4uIG9uY2UgYSBkYXkgaXMgZW5vdWdoLgorICAgICAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBpZiAoKCh0aW1lIC0gY2FjaGVBZ2UpIDwgMTAwMCo2MCo2MCoyNEwpICYmIGhpZ2hDYWNoZVJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbWFwID0gKE1hcCloaWdoQ2FjaGVSZWYuZ2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWFwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtYXAgPSBuZXcgSGFzaE1hcCgzKTsKKyAgICAgICAgICAgICAgICBoaWdoQ2FjaGVSZWYgPSBuZXcgU29mdFJlZmVyZW5jZShtYXApOworICAgICAgICAgICAgICAgIGNhY2hlQWdlID0gdGltZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGtleSA9IGxvYy50b1N0cmluZygpICsgdGltZVN0eWxlICsgZGF0ZVN0eWxlOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCB0YXJnZXQgPSAoU2ltcGxlRGF0ZUZvcm1hdCltYXAuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHsgLy8ga2luZG9mIHNrYW5reQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgIGlmICgiZW5fVVMyMiIuZXF1YWxzKGtleSkpCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5mb3VuZCBrZXk6ICIgKyBrZXkgKyAiIHBhdDogIiArIHRhcmdldC5wYXR0ZXJuICsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAiIGNhbDogIiArIHRhcmdldC5jYWxlbmRhciArICIgZm10OiAiICsgdGFyZ2V0Lm51bWJlckZvcm1hdCk7CisgICAgICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gdGFyZ2V0LnBhdHRlcm47CisgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gdGFyZ2V0LmZvcm1hdERhdGE7CisgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q2VudHVyeVN0YXJ0ID0gdGFyZ2V0LmRlZmF1bHRDZW50dXJ5U3RhcnQ7CisgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q2VudHVyeVN0YXJ0WWVhciA9IHRhcmdldC5kZWZhdWx0Q2VudHVyeVN0YXJ0WWVhcjsKKyAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyID0gKENhbGVuZGFyKXRhcmdldC5jYWxlbmRhci5jbG9uZSgpOworICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsgLy8gbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIGNhY2hlZAorICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0ID0gKE51bWJlckZvcm1hdCl0YXJnZXQubnVtYmVyRm9ybWF0LmNsb25lKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogdHJ5IHRoZSBjYWNoZSBmaXJzdCAqLworICAgICAgICBTdHJpbmdbXSBkYXRlVGltZVBhdHRlcm5zID0gKFN0cmluZ1tdKSBjYWNoZWRMb2NhbGVEYXRhLmdldChsb2MpOworICAgICAgICBpZiAoZGF0ZVRpbWVQYXR0ZXJucyA9PSBudWxsKSB7IC8qIGNhY2hlIG1pc3MgKi8KKyAgICAgICAgICAgIENhbGVuZGFyRGF0YSBjYWxEYXRhID0gbmV3IENhbGVuZGFyRGF0YShsb2MsIG51bGwpOyAvLyBUT0RPOiB0eXBlPworICAgICAgICAgICAgLy8gVE9ETzogZ2V0IGNvcnJlY3QgYWN0dWFsL3ZhbGlkIGxvY2FsZSBoZXJlCisgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBjYWxEYXRhLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgIHNldExvY2FsZSh1bG9jLCB1bG9jKTsKKworICAgICAgICAgICAgZGF0ZVRpbWVQYXR0ZXJucyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIkRhdGVUaW1lUGF0dGVybnMiKTsKKyAgICAgICAgICAgIC8qIHVwZGF0ZSBjYWNoZSAqLworICAgICAgICAgICAgY2FjaGVkTG9jYWxlRGF0YS5wdXQobG9jLCBkYXRlVGltZVBhdHRlcm5zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gZm9yIG5vdywganVzdCBhc3N1bWUgdGhpcyBpcyBjb3JyZWN0LCBzbyB3ZSBoYXZlIG5vbi1udWxsIGxvY2FsZSBpbmZvLgorICAgICAgICAvLyB3ZSBtYXkgaGF2ZSB0byBjYWNoZSB0aGUgcmVzdWx0IG9mIGNhbERhdGEuZ2V0VUxvY2FsZSB3aXRoIHRoZSBwYXR0ZXJuIHN0cmluZ3MKKyAgICAgICAgLy8gYW5kIHNldCB0aGUgbG9jYWxlIHdpdGggdGhhdC4KKyAgICAgICAgc2V0TG9jYWxlKGxvYywgbG9jKTsKKyAgICB9CisgICAgICAgIGZvcm1hdERhdGEgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobG9jKTsKKyAgICAgICAgaWYgKCh0aW1lU3R5bGUgPj0gMCkgJiYgKGRhdGVTdHlsZSA+PSAwKSkgeworICAgICAgICAgICAgT2JqZWN0W10gZGF0ZVRpbWVBcmdzID0ge2RhdGVUaW1lUGF0dGVybnNbdGltZVN0eWxlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlVGltZVBhdHRlcm5zW2RhdGVTdHlsZSArIDRdfTsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChkYXRlVGltZVBhdHRlcm5zWzhdLCBkYXRlVGltZUFyZ3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHRpbWVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICBwYXR0ZXJuID0gZGF0ZVRpbWVQYXR0ZXJuc1t0aW1lU3R5bGVdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRhdGVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICBwYXR0ZXJuID0gZGF0ZVRpbWVQYXR0ZXJuc1tkYXRlU3R5bGUgKyA0XTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5vIGRhdGUgb3IgdGltZSBzdHlsZSBzcGVjaWZpZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGluaXRpYWxpemUobG9jKTsKKworICAgICAgICBpZiAoQ0FDSEUpIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgIGlmICgiZW5fVVMyMiIuZXF1YWxzKGtleSkpCisgICAgICAgICAgICAvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxucmVnaXN0ZXIga2V5OiAiICsga2V5ICsgIiBwYXQ6ICIgKyB0aGlzLnBhdHRlcm4gKworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAiIGNhbDogIiArIHRoaXMuY2FsZW5kYXIgKyAiIGZtdDogIiArIHRoaXMubnVtYmVyRm9ybWF0KTsKKyAgICAgICAgICAgIG1hcC5wdXQoa2V5LCB0aGlzLmNsb25lKCkpOyAvLyBvayBpZiB3ZSBzdG9tcCBleGlzdGluZyB0YXJnZXQgZHVlIHRvIHRocmVhZGluZworICAgICAgICB9CisgICAgfQorCisgICAgLyogSW5pdGlhbGl6ZSBjYWxlbmRhciBhbmQgbnVtYmVyRm9ybWF0IGZpZWxkcyAqLworICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIC8vIHRpbWUgem9uZSBmb3JtYXR0aW5nCisgICAgICAgIGxvY2FsZSA9IGxvYzsKKworICAgICAgICAvLyBUaGUgZm9ybWF0IG9iamVjdCBtdXN0IGJlIGNvbnN0cnVjdGVkIHVzaW5nIHRoZSBzeW1ib2xzIGZvciB0aGlzIHpvbmUuCisgICAgICAgIC8vIEhvd2V2ZXIsIHRoZSBjYWxlbmRhciBzaG91bGQgdXNlIHRoZSBjdXJyZW50IGRlZmF1bHQgVGltZVpvbmUuCisgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgbG9jYWxlIHpvbmUgc3RyaW5ncywgdGhlbiB0aGUgem9uZQorICAgICAgICAvLyB3aWxsIGJlIGZvcm1hdHRlZCB1c2luZyBnZW5lcmljIEdNVCsvLUg6TU0gbm9tZW5jbGF0dXJlLgorICAgICAgICBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgbG9jKTsKKyAgICAgICAgLy8gVE9ETzogY29udmVydCB0byB1c2UgVUxvY2FsZSBBUElzIHdoZW4gd2UgZ2V0IHRvIHRoZSB0ZXh0IHBhY2thZ2UKKyAgICAgICAgbnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICB1c2VGYXN0WmVyb1BhZGRpbmdOdW1iZXIgPSBmYWxzZTsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvLyBkaWZmaWN1bHQgdG8gdGVzdCBmb3IgY2FzZSB3aGVyZSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UgZG9lcyBub3QKKyAgICAgICAgLy8gcmV0dXJuIGEgRGVjaW1hbEZvcm1hdAorICAgICAgICBpZiAobnVtYmVyRm9ybWF0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICAgKChEZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgICAgIHplcm9EaWdpdCA9ICgoRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgICAgICBpZiAobnVtYmVyRm9ybWF0LmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFscygiY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0IikpIHsKKyAgICAgICAgICAgICAgICB1c2VGYXN0WmVyb1BhZGRpbmdOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBudW1iZXJGb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsgLyogU28gdGhhdCBkZC5NTS55eSBjYW4gYmUgcGFyc2VkICovCisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMCk7IC8vIFRvIHByZXZlbnQgIkphbiAxLjAwLCAxOTk3LjAwIgorCisgICAgICAgIGluaXRpYWxpemVEZWZhdWx0Q2VudHVyeSgpOworCisgICAgICAgIC8vIEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IGZhc3QgZm9ybWF0dGluZyBpbiBTaW1wbGVEYXRlRm9ybWF0CisgICAgICAgIC8vIGl0c2VsZi4gIFRPRE8gYWRkIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgdG8gYWxsb3cgc3ViY2xhc3NlcworICAgICAgICAvLyB0byBzYXkgdGhhdCB0aGV5IGltcGxlbWVudCBmYXN0IGZvcm1hdHRpbmcuCisgICAgICAgIHVzZUZhc3RGb3JtYXQgPSAoZ2V0Q2xhc3MoKSA9PSBTaW1wbGVEYXRlRm9ybWF0LmNsYXNzKTsKKyAgICB9CisKKyAgICAvKiBJbml0aWFsaXplIHRoZSBmaWVsZHMgd2UgdXNlIHRvIGRpc2FtYmlndWF0ZSBhbWJpZ3VvdXMgeWVhcnMuIFNlcGFyYXRlCisgICAgICogc28gd2UgY2FuIGNhbGwgaXQgZnJvbSByZWFkT2JqZWN0KCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRpYWxpemVEZWZhdWx0Q2VudHVyeSgpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZSggbmV3IERhdGUoKSApOworICAgICAgICBjYWxlbmRhci5hZGQoIENhbGVuZGFyLllFQVIsIC04MCApOworICAgICAgICBwYXJzZUFtYmlndW91c0RhdGVzQXNBZnRlcihjYWxlbmRhci5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qIERlZmluZSBvbmUtY2VudHVyeSB3aW5kb3cgaW50byB3aGljaCB0byBkaXNhbWJpZ3VhdGUgZGF0ZXMgdXNpbmcKKyAgICAgKiB0d28tZGlnaXQgeWVhcnMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQW1iaWd1b3VzRGF0ZXNBc0FmdGVyKERhdGUgc3RhcnREYXRlKSB7CisgICAgICAgIGRlZmF1bHRDZW50dXJ5U3RhcnQgPSBzdGFydERhdGU7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoc3RhcnREYXRlKTsKKyAgICAgICAgZGVmYXVsdENlbnR1cnlTdGFydFllYXIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBiZWluZyBpbgorICAgICAqIHRvIGJlZ2luIG9uIHRoZSBkYXRlIHRoZSB1c2VyIHNwZWNpZmllcy4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXRlIER1cmluZyBwYXJzaW5nLCB0d28gZGlnaXQgeWVhcnMgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIHJhbmdlCisgICAgICogPGNvZGU+c3RhcnREYXRlPC9jb2RlPiB0byA8Y29kZT5zdGFydERhdGUgKyAxMDAgeWVhcnM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldDJEaWdpdFllYXJTdGFydChEYXRlIHN0YXJ0RGF0ZSkgeworICAgICAgICBwYXJzZUFtYmlndW91c0RhdGVzQXNBZnRlcihzdGFydERhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGJlZ2lubmluZyBkYXRlIG9mIHRoZSAxMDAteWVhciBwZXJpb2QgMi1kaWdpdCB5ZWFycyBhcmUgaW50ZXJwcmV0ZWQKKyAgICAgKiBhcyBiZWluZyB3aXRoaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgb2YgdGhlIDEwMC15ZWFyIHBlcmlvZCBpbnRvIHdoaWNoIHR3byBkaWdpdCB5ZWFycyBhcmUKKyAgICAgKiBwYXJzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBnZXQyRGlnaXRZZWFyU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBkZWZhdWx0Q2VudHVyeVN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBEYXRlRm9ybWF0LgorICAgICAqIDxwPkZvcm1hdHMgYSBkYXRlIG9yIHRpbWUsIHdoaWNoIGlzIHRoZSBzdGFuZGFyZCBtaWxsaXMKKyAgICAgKiBzaW5jZSBKYW51YXJ5IDEsIDE5NzAsIDAwOjAwOjAwIEdNVC4KKyAgICAgKiA8cD5FeGFtcGxlOiB1c2luZyB0aGUgVVMgbG9jYWxlOgorICAgICAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB6enoiIC0+PiAxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVAorICAgICAqIEBwYXJhbSBjYWwgdGhlIGNhbGVuZGFyIHdob3NlIGRhdGUtdGltZSB2YWx1ZSBpcyB0byBiZSBmb3JtYXR0ZWQgaW50byBhIGRhdGUtdGltZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB3aGVyZSB0aGUgbmV3IGRhdGUtdGltZSB0ZXh0IGlzIHRvIGJlIGFwcGVuZGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgZm9ybWF0dGluZyBwb3NpdGlvbi4gT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUtdGltZSBzdHJpbmcuCisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQ2FsZW5kYXIgY2FsLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICBpZiAoIXVzZUZhc3RGb3JtYXQpIHsKKyAgICAgICAgICAgIHJldHVybiBzbG93Rm9ybWF0KGNhbCwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluaXRpYWxpemUKKyAgICAgICAgcG9zLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIHBvcy5zZXRFbmRJbmRleCgwKTsKKworICAgICAgICAvLyBDYXJlZnVsOiBGb3IgYmVzdCBwZXJmb3JtYW5jZSwgbWluaW1pemUgdGhlIG51bWJlciBvZiBjYWxscworICAgICAgICAvLyB0byBTdHJpbmdCdWZmZXIuYXBwZW5kKCkgYnkgY29uc29saWRhdGluZyBhcHBlbmRzIHdoZW4KKyAgICAgICAgLy8gcG9zc2libGUuCisKKyAgICAgICAgaW50IGosIG4gPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoKGNoID49ICdhJyAmJiBjaCA8PSAneicpIHx8IChjaCA+PSAnQScgJiYgY2ggPD0gJ1onKSkgeworICAgICAgICAgICAgICAgIC8vIGNoIGlzIGEgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVyIHRvIGJlIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgLy8gYnkgc3ViRm9ybWF0KCk7IGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgaXQgaXMgcmVwZWF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgKGo9aSsxOyBqPG4gJiYgcGF0dGVybi5jaGFyQXQoaik9PWNoOyArK2opIHt9CisgICAgICAgICAgICAgICAgc3ViRm9ybWF0KHRvQXBwZW5kVG8sIGNoLCBqLWksIHRvQXBwZW5kVG8ubGVuZ3RoKCksIHBvcywgY2FsKTsKKyAgICAgICAgICAgICAgICBpID0gajsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBhbiBlbnRpcmUgcXVvdGVkIHN0cmluZywgaW5jbHVkZWQgZW1iZWRkZWQKKyAgICAgICAgICAgICAgICAvLyBkb3VibGVkIGFwb3N0cm9waGVzIChhcyBpbiAnbycnY2xvY2snKS4KKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBpKzE7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICArK2k7IC8vIGkgcG9pbnRzIGFmdGVyICcKKyAgICAgICAgICAgICAgICAgICAgaWYgKGk9PW4pIHsgLy8gdHJhaWxpbmcgJyAocGF0aG9sb2dpY2FsKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBmb3IgKGo9aTsgajxuICYmIHBhdHRlcm4uY2hhckF0KGopIT0nXCcnOyArK2opIHt9CisgICAgICAgICAgICAgICAgICAgIC8vIGogcG9pbnRzIHRvIG5leHQgJyBvciBFT1MKKworICAgICAgICAgICAgICAgICAgICBpZiAoaj09c3RhcnQpIHsgLy8gJycgb3V0c2lkZSBvZiBxdW90ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKCdcJycpOworICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIGFoZWFkIHRvIGRldGVjdCAnJyB3aXRoaW4gcXVvdGVzCisgICAgICAgICAgICAgICAgICAgIGludCBrID0gaiwgamogPSBqKzE7CisgICAgICAgICAgICAgICAgICAgIGlmIChqajxuICYmIHBhdHRlcm4uY2hhckF0KGpqKT09J1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgKytrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gYXBwZW5kIHRoaXMgcnVuLCBhbmQgaWYgdGhlcmUgaXMgJycgd2l0aGluCisgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlcywgYXBwZW5kIGEgdHJhaWxpbmcgJyBhcyB3ZWxsCisgICAgICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nKGksIGspKTsKKworICAgICAgICAgICAgICAgICAgICBpID0gamo7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGs9PWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdW5xdW90ZWQgbGl0ZXJhbCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0b0FwcGVuZFRvOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHNsb3dGb3JtYXQoQ2FsZW5kYXIgY2FsLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIC8vIEluaXRpYWxpemUKKyAgICAgICAgcG9zLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIHBvcy5zZXRFbmRJbmRleCgwKTsKKworICAgICAgICBib29sZWFuIGluUXVvdGUgPSBmYWxzZTsgLy8gdHJ1ZSB3aGVuIGJldHdlZW4gc2luZ2xlIHF1b3RlcworICAgICAgICBjaGFyIHByZXZDaCA9IDA7IC8vIHByZXZpb3VzIHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICAgIGludCBjb3VudCA9IDA7ICAvLyBudW1iZXIgb2YgdGltZSBwcmV2Q2ggcmVwZWF0ZWQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgLy8gVXNlIHN1YkZvcm1hdCgpIHRvIGZvcm1hdCBhIHJlcGVhdGVkIHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICAgICAgICAvLyB3aGVuIGEgZGlmZmVyZW50IHBhdHRlcm4gb3Igbm9uLXBhdHRlcm4gY2hhcmFjdGVyIGlzIHNlZW4KKyAgICAgICAgICAgIGlmIChjaCAhPSBwcmV2Q2ggJiYgY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0KHByZXZDaCwgY291bnQsIHRvQXBwZW5kVG8ubGVuZ3RoKCksIHBvcywgZm9ybWF0RGF0YSwgY2FsKSk7CisgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAvLyBDb25zZWN1dGl2ZSBzaW5nbGUgcXVvdGVzIGFyZSBhIHNpbmdsZSBxdW90ZSBsaXRlcmFsLAorICAgICAgICAgICAgICAgIC8vIGVpdGhlciBvdXRzaWRlIG9mIHF1b3RlcyBvciBiZXR3ZWVuIHF1b3RlcworICAgICAgICAgICAgICAgIGlmICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpICYmIHBhdHRlcm4uY2hhckF0KGkrMSkgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgnXCcnKTsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSAhaW5RdW90ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFpblF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICYmIChjaCA+PSAnYScgJiYgY2ggPD0gJ3onIHx8IGNoID49ICdBJyAmJiBjaCA8PSAnWicpKSB7CisgICAgICAgICAgICAgICAgLy8gY2ggaXMgYSBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXIgdG8gYmUgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAvLyBieSBzdWJGb3JtYXQoKTsgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBpcyByZXBlYXRlZAorICAgICAgICAgICAgICAgIHByZXZDaCA9IGNoOworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBBcHBlbmQgcXVvdGVkIGNoYXJhY3RlcnMgYW5kIHVucXVvdGVkIG5vbi1wYXR0ZXJuIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gRm9ybWF0IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHBhdHRlcm4sIGlmIGFueQorICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdChwcmV2Q2gsIGNvdW50LCB0b0FwcGVuZFRvLmxlbmd0aCgpLCBwb3MsIGZvcm1hdERhdGEsIGNhbCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0b0FwcGVuZFRvOworICAgIH0KKworICAgIC8vIE1hcCBpbmRleCBpbnRvIHBhdHRlcm4gY2hhcmFjdGVyIHN0cmluZyB0byBDYWxlbmRhciBmaWVsZCBudW1iZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBQQVRURVJOX0lOREVYX1RPX0NBTEVOREFSX0ZJRUxEID0KKyAgICB7CisgICAgICAgIC8qR3lNKi8gQ2FsZW5kYXIuRVJBLCBDYWxlbmRhci5ZRUFSLCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgLypka0gqLyBDYWxlbmRhci5EQVRFLCBDYWxlbmRhci5IT1VSX09GX0RBWSwgQ2FsZW5kYXIuSE9VUl9PRl9EQVksCisgICAgICAgIC8qbXNTKi8gQ2FsZW5kYXIuTUlOVVRFLCBDYWxlbmRhci5TRUNPTkQsIENhbGVuZGFyLk1JTExJU0VDT05ELAorICAgICAgICAvKkVERiovIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsCisgICAgICAgIC8qd1dhKi8gQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBDYWxlbmRhci5XRUVLX09GX01PTlRILCBDYWxlbmRhci5BTV9QTSwKKyAgICAgICAgLypoS3oqLyBDYWxlbmRhci5IT1VSLCBDYWxlbmRhci5IT1VSLCBDYWxlbmRhci5aT05FX09GRlNFVCwKKyAgICAgICAgLypZZXUqLyBDYWxlbmRhci5ZRUFSX1dPWSwgQ2FsZW5kYXIuRE9XX0xPQ0FMLCBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLAorICAgICAgICAvKmdBWiovIENhbGVuZGFyLkpVTElBTl9EQVksIENhbGVuZGFyLk1JTExJU0VDT05EU19JTl9EQVksIENhbGVuZGFyLlpPTkVfT0ZGU0VULAorICAgICAgICAvKnYqLyAgIENhbGVuZGFyLlpPTkVfT0ZGU0VULAorICAgICAgICAvKmMqLyAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLAorICAgICAgICAvKkwqLyAgIENhbGVuZGFyLk1PTlRILAorICAgICAgICAvKlFxKi8gIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5NT05USCwKKyAgICB9OworCisgICAgLy8gTWFwIGluZGV4IGludG8gcGF0dGVybiBjaGFyYWN0ZXIgc3RyaW5nIHRvIERhdGVGb3JtYXQgZmllbGQgbnVtYmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gUEFUVEVSTl9JTkRFWF9UT19EQVRFX0ZPUk1BVF9GSUVMRCA9IHsKKyAgICAgICAgLypHeU0qLyBEYXRlRm9ybWF0LkVSQV9GSUVMRCwgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0Lk1PTlRIX0ZJRUxELAorICAgICAgICAvKmRrSCovIERhdGVGb3JtYXQuREFURV9GSUVMRCwgRGF0ZUZvcm1hdC5IT1VSX09GX0RBWTFfRklFTEQsIERhdGVGb3JtYXQuSE9VUl9PRl9EQVkwX0ZJRUxELAorICAgICAgICAvKm1zUyovIERhdGVGb3JtYXQuTUlOVVRFX0ZJRUxELCBEYXRlRm9ybWF0LlNFQ09ORF9GSUVMRCwgRGF0ZUZvcm1hdC5GUkFDVElPTkFMX1NFQ09ORF9GSUVMRCwKKyAgICAgICAgLypFREYqLyBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0ZJRUxELCBEYXRlRm9ybWF0LkRBWV9PRl9ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxELAorICAgICAgICAvKndXYSovIERhdGVGb3JtYXQuV0VFS19PRl9ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0LldFRUtfT0ZfTU9OVEhfRklFTEQsIERhdGVGb3JtYXQuQU1fUE1fRklFTEQsCisgICAgICAgIC8qaEt6Ki8gRGF0ZUZvcm1hdC5IT1VSMV9GSUVMRCwgRGF0ZUZvcm1hdC5IT1VSMF9GSUVMRCwgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgICAgLypZZXUqLyBEYXRlRm9ybWF0LllFQVJfV09ZX0ZJRUxELCBEYXRlRm9ybWF0LkRPV19MT0NBTF9GSUVMRCwgRGF0ZUZvcm1hdC5FWFRFTkRFRF9ZRUFSX0ZJRUxELAorICAgICAgICAvKmdBWiovIERhdGVGb3JtYXQuSlVMSUFOX0RBWV9GSUVMRCwgRGF0ZUZvcm1hdC5NSUxMSVNFQ09ORFNfSU5fREFZX0ZJRUxELCBEYXRlRm9ybWF0LlRJTUVaT05FX1JGQ19GSUVMRCwKKyAgICAgICAgLyp2Ki8gICBEYXRlRm9ybWF0LlRJTUVaT05FX0dFTkVSSUNfRklFTEQsIAorICAgICAgICAvKmMqLyAgIERhdGVGb3JtYXQuU1RBTkRBTE9ORV9EQVlfRklFTEQsCisgICAgICAgIC8qTCovICAgRGF0ZUZvcm1hdC5TVEFOREFMT05FX01PTlRIX0ZJRUxELAorICAgICAgICAvKlEqLyAgIERhdGVGb3JtYXQuUVVBUlRFUl9GSUVMRCwKKyAgICAgICAgLypxKi8gICBEYXRlRm9ybWF0LlNUQU5EQUxPTkVfUVVBUlRFUl9GSUVMRCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogRm9ybWF0IGEgc2luZ2xlIGZpZWxkLCBnaXZlbiBpdHMgcGF0dGVybiBjaGFyYWN0ZXIuICBTdWJjbGFzc2VzIG1heQorICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGluIG9yZGVyIHRvIG1vZGlmeSBvciBhZGQgZm9ybWF0dGluZworICAgICAqIGNhcGFiaWxpdGllcy4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgY2ggaXMgcmVwZWF0ZWQgaW4gdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gYmVnaW5PZmZzZXQgdGhlIG9mZnNldCBvZiB0aGUgb3V0cHV0IHN0cmluZyBhdCB0aGUgc3RhcnQgb2YKKyAgICAgKiB0aGlzIGZpZWxkOyB1c2VkIHRvIHNldCBwb3Mgd2hlbiBhcHByb3ByaWF0ZQorICAgICAqIEBwYXJhbSBwb3MgcmVjZWl2ZXMgdGhlIHBvc2l0aW9uIG9mIGEgZmllbGQsIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgKiBAcGFyYW0gZm9ybWF0RGF0YSB0aGUgc3ltYm9scyBmb3IgdGhpcyBmb3JtYXR0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHN1YkZvcm1hdChjaGFyIGNoLCBpbnQgY291bnQsIGludCBiZWdpbk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcywgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwpCisgICAgICAgIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIE5vdGU6IGZvcm1hdERhdGEgaXMgaWdub3JlZAorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBzdWJGb3JtYXQoYnVmLCBjaCwgY291bnQsIGJlZ2luT2Zmc2V0LCBwb3MsIGNhbCk7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgYSBzaW5nbGUgZmllbGQ7IHVzZUZhc3RGb3JtYXQgdmFyaWFudC4gIFJldXNlcyBhCisgICAgICogU3RyaW5nQnVmZmVyIGZvciByZXN1bHRzIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTdHJpbmcgb24gdGhlCisgICAgICogaGVhcCBmb3IgZWFjaCBjYWxsLgorICAgICAqCisgICAgICogTk9URSBXZSBkb24ndCByZWFsbHkgbmVlZCB0aGUgYmVnaW5PZmZzZXQgcGFyYW1ldGVyLCBFWENFUFQgZm9yCisgICAgICogdGhlIG5lZWQgdG8gc3VwcG9ydCB0aGUgc2xvdyBzdWJGb3JtYXQgdmFyaWFudCAoYWJvdmUpIHdoaWNoCisgICAgICogaGFzIHRvIHBhc3MgaXQgaW4gdG8gdXMuCisgICAgICoKKyAgICAgKiBUT0RPIG1ha2UgdGhpcyBBUEkgcHVibGljCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzdWJGb3JtYXQoU3RyaW5nQnVmZmVyIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaCwgaW50IGNvdW50LCBpbnQgYmVnaW5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgZmluYWwgaW50IG1heEludENvdW50ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGZpbmFsIGludCBidWZzdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICBmaW5hbCBpbnQgcGF0dGVybkNoYXJJbmRleCA9IERhdGVGb3JtYXRTeW1ib2xzLnBhdHRlcm5DaGFycy5pbmRleE9mKGNoKTsKKyAgICAgICAgaWYgKHBhdHRlcm5DaGFySW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcGF0dGVybiBjaGFyYWN0ZXIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInIiArIGNoICsgIicgaW4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhwYXR0ZXJuKSArICciJyk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgZmllbGQgPSBQQVRURVJOX0lOREVYX1RPX0NBTEVOREFSX0ZJRUxEW3BhdHRlcm5DaGFySW5kZXhdOworICAgICAgICBpbnQgdmFsdWUgPSBjYWwuZ2V0KGZpZWxkKTsKKworICAgICAgICBzd2l0Y2ggKHBhdHRlcm5DaGFySW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOiAvLyAnRycgLSBFUkEKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSA1KSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLm5hcnJvd0VyYXNbdmFsdWVdKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY291bnQgPT0gNCkKKyAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5lcmFOYW1lc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLmVyYXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6IC8vICd5JyAtIFlFQVIKKyAgICAgICAgICAgIC8qIEFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiwgaWYgdGhlIG51bWJlciBvZiBwYXR0ZXJuIGxldHRlcnMgKCd5JykgaXMgMiwKKyAgICAgICAgICAgICAqIHRoZSB5ZWFyIGlzIHRydW5jYXRlZCB0byAyIGRpZ2l0czsgb3RoZXJ3aXNlIGl0IGlzIGludGVycHJldGVkIGFzIGEgbnVtYmVyLgorICAgICAgICAgICAgICogQnV0IHRoZSBvcmlnaW5hbCBjb2RlIHByb2Nlc3MgJ3knLCAneXknLCAneXl5JyBpbiB0aGUgc2FtZSB3YXkuIGFuZCBwcm9jZXNzCisgICAgICAgICAgICAgKiBwYXR0ZXJucyB3aXRoIDQgb3IgbW9yZSB0aGFuIDQgJ3knIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgd2F5LgorICAgICAgICAgICAgICogU28gSSBjaGFuZ2UgdGhlIGNvZGVzIHRvIG1lZXQgdGhlIHNwZWNpZmljYXRpb24uIFtSaWNoYXJkL0dDbF0KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgMiwgMik7IC8vIGNsaXAgMTk5NiB0byA5NgorICAgICAgICAgICAgZWxzZSAvL2NvdW50ID0gMSBvciBjb3VudCA+IDIKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIHZhbHVlLCBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjogLy8gJ00nIC0gTU9OVEgKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSA1KSAKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEubmFycm93TW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSA0KQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5tb250aHNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDMpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnNob3J0TW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSsxLCBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDogLy8gJ2snIC0gSE9VUl9PRl9EQVkgKDEuLjI0KQorICAgICAgICAgICAgaWYgKHZhbHVlID09IDApCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkhPVVJfT0ZfREFZKSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6IC8vICdTJyAtIEZSQUNUSU9OQUxfU0VDT05ECisgICAgICAgICAgICAvLyBGcmFjdGlvbmFsIHNlY29uZHMgbGVmdC1qdXN0aWZ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKE1hdGgubWluKDMsIGNvdW50KSk7CisgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKG1heEludENvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSArIDUwKSAvIDEwMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgKyA1KSAvIDEwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHAgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LmZvcm1hdCgobG9uZykgdmFsdWUsIGJ1ZiwgcCk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gMykgeworICAgICAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMoY291bnQgLSAzKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LmZvcm1hdCgwTCwgYnVmLCBwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OiAvLyAnRScgLSBEQVlfT0ZfV0VFSworICAgICAgICAgICAgaWYgKGNvdW50ID09IDUpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEubmFycm93V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY291bnQgPT0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEud2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgLy8gY291bnQgPD0gMywgdXNlIGFiYnJldmlhdGVkIGZvcm0gaWYgZXhpc3RzCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnNob3J0V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE0OiAvLyAnYScgLSBBTV9QTQorICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLmFtcG1zW3ZhbHVlXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNTogLy8gJ2gnIC0gSE9VUiAoMS4uMTIpCisgICAgICAgICAgICBpZiAodmFsdWUgPT0gMCkKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldExlYXN0TWF4aW11bShDYWxlbmRhci5IT1VSKSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OiAvLyAneicgLSBaT05FX09GRlNFVAorICAgICAgICBjYXNlIDI0OiAvLyAndicgLSBUSU1FWk9ORV9HRU5FUklDIAorICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgU3RyaW5nIHppZDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzPW51bGw7CisgICAgICAgICAgICAgICAgemlkID0gWm9uZU1ldGEuZ2V0Q2Fub25pY2FsSUQoY2FsLmdldFRpbWVab25lKCkuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0dlbmVyaWMgPSBwYXR0ZXJuQ2hhckluZGV4ID09IDI0OworICAgICAgICAgICAgICAgIGlmICh6aWQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybkNoYXJJbmRleCA9PSBUSU1FWk9ORV9HRU5FUklDX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA8IDQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX1NIT1JUX0dFTkVSSUMpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfTE9OR19HRU5FUklDKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA8IDQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9EQVlMSUdIVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfREFZTElHSFQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50IDwgNCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX1NIT1JUX1NUQU5EQVJEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfTE9OR19TVEFOREFSRCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXMgPT0gbnVsbCB8fCByZXMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBub3RlLCB0cjM1IGRvZXMgbm90IGRlc2NyaWJlIHRoZSBzcGVjaWFsIGNhc2UgZm9yICdubyBjb3VudHJ5JyAKKyAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50ZWQgYmVsb3csIHRoaXMgaXMgZnJvbSBkaXNjdXNzaW9uIHdpdGggTWFyaworICAgICAgICAgICAgICAgICAgICBpZiAoemlkID09IG51bGwgfHwgIWlzR2VuZXJpYyB8fCBab25lTWV0YS5nZXRDYW5vbmljYWxDb3VudHJ5KHppZCkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2Zmc2V0ID0gY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBab25lTWV0YS5kaXNwbGF5R01UKG9mZnNldCwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNpdHkgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9FWEVNUExBUl9DSVRZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IFpvbmVNZXRhLmRpc3BsYXlGYWxsYmFjayh6aWQsIGNpdHksIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfRVhFTVBMQVJfQ0lUWSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IFpvbmVNZXRhLmRpc3BsYXlGYWxsYmFjayh6aWQsIG51bGwsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYocmVzLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kR01UKGJ1ZiwgY2FsKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChyZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgMjM6IC8vICdaJyAtIFRJTUVaT05FX1JGQworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gJ3Nob3J0JyAoc3RhbmRhcmQgSmF2YSkgZm9ybSwgbXVzdCB1c2UgQVNDSUkgZGlnaXRzCisgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsPSAoY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSkgLyBtaWxsaXNQZXJNaW51dGU7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgc2lnbiA9ICcrJzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IC12YWw7CisgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gJy0nOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHZhbCA9ICh2YWwgLyA2MCkgKiAxMDAgKyAodmFsICUgNjApOyAvLyBtaW51dGVzID0+IEtLbW0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgICAgICAgICAgZmFzdFplcm9QYWRkaW5nTnVibWVyKGJ1ZiwgKGludCl2YWwsIDQsIDQsICcwJyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9uZyBmb3JtLCBsb2NhbGl6ZWQgR01UIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgLy8gbm90IGluIDMuNCBsb2NhbGUgZGF0YSwgbmVlZCB0byBhZGQsIHNvIHVzZSBzYW1lIGRlZmF1bHQgYXMgZm9yIGdlbmVyYWwgdGltZSB6b25lIG5hbWVzCisgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsID0gY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChab25lTWV0YS5kaXNwbGF5R01UKHZhbCwgbG9jYWxlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6IC8vICdjJyAtIFNUQU5EQUxPTkUgREFZCisgICAgICAgICAgICBpZiAoY291bnQgPT0gNSkgCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5c1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc3RhbmRhbG9uZVdlZWtkYXlzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lU2hvcnRXZWVrZGF5c1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIDEsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI2OiAvLyAnTCcgLSBTVEFOREFMT05FIE1PTlRICisgICAgICAgICAgICBpZiAoY291bnQgPT0gNSkgCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVOYXJyb3dNb250aHNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDQpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVNb250aHNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDMpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVTaG9ydE1vbnRoc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUrMSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI3OiAvLyAnUScgLSBRVUFSVEVSCisgICAgICAgICAgICBpZiAoY291bnQgPj0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEucXVhcnRlcnNbdmFsdWUvM10pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc2hvcnRRdWFydGVyc1t2YWx1ZS8zXSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCAodmFsdWUvMykrMSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OiAvLyAncScgLSBTVEFOREFMT05FIFFVQVJURVIKKyAgICAgICAgICAgIGlmIChjb3VudCA+PSA0KQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lUXVhcnRlcnNbdmFsdWUvM10pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc3RhbmRhbG9uZVNob3J0UXVhcnRlcnNbdmFsdWUvM10pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgKHZhbHVlLzMpKzEsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIGNhc2UgMzogLy8gJ2QnIC0gREFURQorICAgICAgICAgICAgLy8gY2FzZSA1OiAvLyAnSCcgLSBIT1VSX09GX0RBWSAoMC4uMjMpCisgICAgICAgICAgICAvLyBjYXNlIDY6IC8vICdtJyAtIE1JTlVURQorICAgICAgICAgICAgLy8gY2FzZSA3OiAvLyAncycgLSBTRUNPTkQKKyAgICAgICAgICAgIC8vIGNhc2UgMTA6IC8vICdEJyAtIERBWV9PRl9ZRUFSCisgICAgICAgICAgICAvLyBjYXNlIDExOiAvLyAnRicgLSBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICAgICAgLy8gY2FzZSAxMjogLy8gJ3cnIC0gV0VFS19PRl9ZRUFSCisgICAgICAgICAgICAvLyBjYXNlIDEzOiAvLyAnVycgLSBXRUVLX09GX01PTlRICisgICAgICAgICAgICAvLyBjYXNlIDE2OiAvLyAnSycgLSBIT1VSICgwLi4xMSkKKyAgICAgICAgICAgIC8vIGNhc2UgMTg6IC8vICdZJyAtIFlFQVJfV09ZCisgICAgICAgICAgICAvLyBjYXNlIDE5OiAvLyAnZScgLSBET1dfTE9DQUwKKyAgICAgICAgICAgIC8vIGNhc2UgMjA6IC8vICd1JyAtIEVYVEVOREVEX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMjE6IC8vICdnJyAtIEpVTElBTl9EQVkKKyAgICAgICAgICAgIC8vIGNhc2UgMjI6IC8vICdBJyAtIE1JTExJU0VDT05EU19JTl9EQVkKKworICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IC8vIHN3aXRjaCAocGF0dGVybkNoYXJJbmRleCkKKworICAgICAgICAvLyBTZXQgdGhlIEZpZWxkUG9zaXRpb24gKGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9ubHkpCisgICAgICAgIGlmIChwb3MuZ2V0QmVnaW5JbmRleCgpID09IHBvcy5nZXRFbmRJbmRleCgpICYmCisgICAgICAgICAgICBwb3MuZ2V0RmllbGQoKSA9PSBQQVRURVJOX0lOREVYX1RPX0RBVEVfRk9STUFUX0ZJRUxEW3BhdHRlcm5DaGFySW5kZXhdKSB7CisgICAgICAgICAgICBwb3Muc2V0QmVnaW5JbmRleChiZWdpbk9mZnNldCk7CisgICAgICAgICAgICBwb3Muc2V0RW5kSW5kZXgoYmVnaW5PZmZzZXQgKyBidWYubGVuZ3RoKCkgLSBidWZzdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kR01UKFN0cmluZ0J1ZmZlciBidWYsIENhbGVuZGFyIGNhbCl7CisgICAgICAgIGludCB2YWx1ZSA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKworICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKEdNVF9NSU5VUyk7CisgICAgICAgICAgICB2YWx1ZSA9IC12YWx1ZTsgLy8gc3VwcHJlc3MgdGhlICctJyBzaWduIGZvciB0ZXh0IGRpc3BsYXkuCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgYnVmLmFwcGVuZChHTVRfUExVUyk7CisgICAgICAgIH0KKworICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIChpbnQpKHZhbHVlL21pbGxpc1BlckhvdXIpLCAyLCAyKTsKKyAgICAgICAgYnVmLmFwcGVuZCgoY2hhcikweDAwM0EpIC8qJzonKi87CisgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgKGludCkoKHZhbHVlJW1pbGxpc1BlckhvdXIpL21pbGxpc1Blck1pbnV0ZSksIDIsIDIpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuIFJldHVybnMgbnVsbCBpZiB0aGUgdmFsdWUgb2YgYW4gYXJyYXkgaXMgZW1wdHksIG9yIGlmIHRoZQorICAgICAqIGluZGV4IGlzIG91dCBvZiBib3VuZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lQXJyYXlWYWx1ZShTdHJpbmdbXSB6cywgaW50IGl4KSB7CisgICAgICAgIGlmIChpeCA+PSAwICYmIGl4IDwgenMubGVuZ3RoKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0genNbaXhdOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsICYmIHJlc3VsdC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBoaWdoLXNwZWVkIG1ldGhvZC4gIFJldXNlcyBhIFN0cmluZ0J1ZmZlciBmb3IgcmVzdWx0cworICAgICAqIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTdHJpbmcgb24gdGhlIGhlYXAgZm9yIGVhY2ggY2FsbC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB6ZXJvUGFkZGluZ051bWJlcihTdHJpbmdCdWZmZXIgYnVmLCBpbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbkRpZ2l0cywgaW50IG1heERpZ2l0cykgeworICAgIAlpZiAodXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyKSB7CisgICAgCQlmYXN0WmVyb1BhZGRpbmdOdWJtZXIoYnVmLCB2YWx1ZSwgbWluRGlnaXRzLCBtYXhEaWdpdHMsIHplcm9EaWdpdCk7CisgICAgCQlyZXR1cm47CisgICAgCX0KKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhtaW5EaWdpdHMpOworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMobWF4RGlnaXRzKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LmZvcm1hdCh2YWx1ZSwgYnVmLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZhc3RlciBtZXRob2QuICBUaGlzIG1ldGhvZCBkb2VzIG5vdCB1c2UgTnVtYmVyRm9ybWF0CisgICAgICogdG8gZm9ybWF0IGRpZ2l0cy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmFzdFplcm9QYWRkaW5nTnVibWVyKFN0cmluZ0J1ZmZlciBidWYsIGludCB2YWx1ZSwKKyAgICAgICAgICAgIGludCBtaW5EaWdpdHMsIGludCBtYXhEaWdpdHMsIGNoYXIgemVybykgeworICAgIAl2YWx1ZSA9IHZhbHVlIDwgMCA/IC12YWx1ZSA6IHZhbHVlOyAvLz8/CisgICAgICAgIG1pbkRpZ2l0cyA9IG1pbkRpZ2l0cyA8IG1heERpZ2l0cyA/IG1pbkRpZ2l0cyA6IG1heERpZ2l0czsKKyAgICAgICAgaW50IGxpbWl0ID0gZGVjaW1hbEJ1Zi5sZW5ndGggPCBtYXhEaWdpdHMgPyBkZWNpbWFsQnVmLmxlbmd0aCA6IG1heERpZ2l0czsKKyAgICAgICAgaW50IGluZGV4ID0gbGltaXQgLSAxOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgZGVjaW1hbEJ1ZltpbmRleF0gPSAoY2hhcikoKHZhbHVlICUgMTApICsgemVybyk7CisgICAgICAgICAgICB2YWx1ZSAvPSAxMDsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwIHx8IHZhbHVlID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4LS07CisgICAgICAgIH0KKyAgICAgICAgaW50IHBhZGRpbmcgPSBtaW5EaWdpdHMgLSAobGltaXQgLSBpbmRleCk7CisgICAgICAgIGZvciAoOyBwYWRkaW5nID4gMDsgcGFkZGluZy0tKSB7CisgICAgICAgICAgICBkZWNpbWFsQnVmWy0taW5kZXhdID0gemVybzsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKGRlY2ltYWxCdWYsIGluZGV4LCBsaW1pdCAtIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgc3VwZXJjbGFzcyBtZXRob2QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0IG5ld051bWJlckZvcm1hdCkgeworICAgIAlzdXBlci5zZXROdW1iZXJGb3JtYXQobmV3TnVtYmVyRm9ybWF0KTsKKyAgICAgICAgaWYgKG5ld051bWJlckZvcm1hdCBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgIHplcm9EaWdpdCA9ICgoRGVjaW1hbEZvcm1hdCluZXdOdW1iZXJGb3JtYXQpLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgICAgICB1c2VGYXN0WmVyb1BhZGRpbmdOdW1iZXIgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyID0gZmFsc2U7CisgICAgICAgIH0gICAgCQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBudW1iZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHplcm9QYWRkaW5nTnVtYmVyKGxvbmcgdmFsdWUsIGludCBtaW5EaWdpdHMsIGludCBtYXhEaWdpdHMpCisgICAgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMobWluRGlnaXRzKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKG1heERpZ2l0cyk7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgY2hhcmFjdGVycyB0aGF0IGluZGljYXRlIG51bWVyaWMgZmllbGRzLiAgVGhlIGNoYXJhY3RlcgorICAgICAqIGF0IGluZGV4IDAgaXMgdHJlYXRlZCBzcGVjaWFsbHkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5VTUVSSUNfRk9STUFUX0NIQVJTID0gIk15dWRoSG1zU0RGd1drSyI7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZm9ybWF0IGNoYXJhY3Rlciwgb2NjdXJpbmcgY291bnQKKyAgICAgKiB0aW1lcywgcmVwcmVzZW50cyBhIG51bWVyaWMgZmllbGQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc051bWVyaWMoY2hhciBmb3JtYXRDaGFyLCBpbnQgY291bnQpIHsKKyAgICAgICAgaW50IGkgPSBOVU1FUklDX0ZPUk1BVF9DSEFSUy5pbmRleE9mKGZvcm1hdENoYXIpOworICAgICAgICByZXR1cm4gKGkgPiAwIHx8IChpID09IDAgJiYgY291bnQgPCAzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIERhdGVGb3JtYXQKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zKQorICAgIHsKKyAgICAgICAgaW50IHBvcyA9IHBhcnNlUG9zLmdldEluZGV4KCk7CisgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgYm9vbGVhbltdIGFtYmlndW91c1llYXIgPSB7IGZhbHNlIH07CisgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgLy8gaGFjaywgY2xlYXIgcGFyc2VkVGltZVpvbmUKKyAgICAgICAgcGFyc2VkVGltZVpvbmUgPSBudWxsOworCisgICAgICAgIC8vIEZvciBwYXJzaW5nIGFidXR0aW5nIG51bWVyaWMgZmllbGRzLiAnYWJ1dFBhdCcgaXMgdGhlCisgICAgICAgIC8vIG9mZnNldCBpbnRvICdwYXR0ZXJuJyBvZiB0aGUgZmlyc3Qgb2YgMiBvciBtb3JlIGFidXR0aW5nCisgICAgICAgIC8vIG51bWVyaWMgZmllbGRzLiAgJ2FidXRTdGFydCcgaXMgdGhlIG9mZnNldCBpbnRvICd0ZXh0JworICAgICAgICAvLyB3aGVyZSBwYXJzaW5nIHRoZSBmaWVsZHMgYmVnaW5zLiAnYWJ1dFBhc3MnIHN0YXJ0cyBvZmYgYXMgMAorICAgICAgICAvLyBhbmQgaW5jcmVtZW50cyBlYWNoIHRpbWUgd2UgdHJ5IHRvIHBhcnNlIHRoZSBmaWVsZHMuCisgICAgICAgIGludCBhYnV0UGF0ID0gLTE7IC8vIElmID49MCwgd2UgYXJlIGluIGEgcnVuIG9mIGFidXR0aW5nIG51bWVyaWMgZmllbGRzCisgICAgICAgIGludCBhYnV0U3RhcnQgPSAwOworICAgICAgICBpbnQgYWJ1dFBhc3MgPSAwOworICAgICAgICBib29sZWFuIGluUXVvdGUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSBhbHBoYWJldGljIGZpZWxkIGNoYXJhY3RlcnMuCisgICAgICAgICAgICBpZiAoIWluUXVvdGUgJiYgKGNoID49ICdBJyAmJiBjaCA8PSAnWicgfHwgY2ggPj0gJ2EnICYmIGNoIDw9ICd6JykpIHsKKyAgICAgICAgICAgICAgICBpbnQgZmllbGRQYXQgPSBpOworCisgICAgICAgICAgICAgICAgLy8gQ291bnQgdGhlIGxlbmd0aCBvZiB0aGlzIGZpZWxkIHNwZWNpZmllcgorICAgICAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGkrMSk8cGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChpKzEpID09IGNoKSB7CisgICAgICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoaXNOdW1lcmljKGNoLCBjb3VudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFidXRQYXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlcmUgaXMgYW4gYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZC4gIEZvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9zdCBmaWVsZHMgd2UgY2FuIGp1c3QgbG9vayBhdCB0aGUgbmV4dCBjaGFyYWN0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHRoZSAnbScgZmllbGQgaXMgZWl0aGVyIG51bWVyaWMgb3IgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlcGVuZGluZyBvbiB0aGUgY291bnQsIHNvIHdlIGhhdmUgdG8gbG9vayBhaGVhZCBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgZmllbGQuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGkrMSk8cGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWJ1dHRpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBuZXh0Q2ggPSBwYXR0ZXJuLmNoYXJBdChpKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrID0gTlVNRVJJQ19GT1JNQVRfQ0hBUlMuaW5kZXhPZihuZXh0Q2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGogPSBpKzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChqPHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KGopID09IG5leHRDaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFidXR0aW5nID0gKGotaSkgPCA0OyAvLyBuZXh0Q291bnQgPCAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1dHRpbmcgPSBrID4gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIHN0YXJ0IG9mIGEgc2V0IG9mIGFidXR0aW5nIG51bWVyaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWVsZHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFidXR0aW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFidXRQYXQgPSBmaWVsZFBhdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1dFN0YXJ0ID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnV0UGFzcyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWJ1dFBhdCA9IC0xOyAvLyBFbmQgb2YgYW55IGFidXR0aW5nIGZpZWxkcworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBmaWVsZHMgd2l0aGluIGEgcnVuIG9mIGFidXR0aW5nIG51bWVyaWMgZmllbGRzLiAgVGFrZQorICAgICAgICAgICAgICAgIC8vIHRoZSBwYXR0ZXJuICJISG1tc3MiIGFzIGFuIGV4YW1wbGUuIFdlIHdpbGwgdHJ5IHRvIHBhcnNlCisgICAgICAgICAgICAgICAgLy8gMi8yLzIgY2hhcmFjdGVycyBvZiB0aGUgaW5wdXQgdGV4dCwgdGhlbiBpZiB0aGF0IGZhaWxzLAorICAgICAgICAgICAgICAgIC8vIDEvMi8yLiAgV2Ugb25seSBhZGp1c3QgdGhlIHdpZHRoIG9mIHRoZSBsZWZ0bW9zdCBmaWVsZDsgdGhlCisgICAgICAgICAgICAgICAgLy8gb3RoZXJzIHJlbWFpbiBmaXhlZC4gIFRoaXMgYWxsb3dzICIxMjM0NTYiID0+IDEyOjM0OjU2LCBidXQKKyAgICAgICAgICAgICAgICAvLyAiMTIzNDUiID0+IDE6MjM6NDUuICBMaWtld2lzZSwgZm9yIHRoZSBwYXR0ZXJuICJ5eXl5TU1kZCIgd2UKKyAgICAgICAgICAgICAgICAvLyB0cnkgNC8yLzIsIDMvMi8yLCAyLzIvMiwgYW5kIGZpbmFsbHkgMS8yLzIuCisgICAgICAgICAgICAgICAgaWYgKGFidXRQYXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgcnVuIG9mIGFidXR0aW5nIGZpZWxkcywgdGhlbgorICAgICAgICAgICAgICAgICAgICAvLyBzaG9ydGVuIHRoaXMgZmllbGQgaW4gZWFjaCBwYXNzLiAgSWYgd2UgY2FuJ3Qgc2hvcnRlbgorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGZpZWxkIGFueSBtb3JlLCB0aGVuIHRoZSBwYXJzZSBvZiB0aGlzIHNldCBvZgorICAgICAgICAgICAgICAgICAgICAvLyBhYnV0dGluZyBudW1lcmljIGZpZWxkcyBoYXMgZmFpbGVkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRQYXQgPT0gYWJ1dFBhdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gYWJ1dFBhc3MrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEVycm9ySW5kZXgocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwb3MgPSBzdWJQYXJzZSh0ZXh0LCBwb3MsIGNoLCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZmFsc2UsIGFtYmlndW91c1llYXIsIGNhbCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhcnNlIGZhaWxzIGFueXdoZXJlIGluIHRoZSBydW4sIGJhY2sgdXAgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG9mIHRoZSBydW4gYW5kIHJldHJ5LgorICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGFidXRQYXQgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gYWJ1dFN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgbm9uLW51bWVyaWMgZmllbGRzIGFuZCBub24tYWJ1dHRpbmcgbnVtZXJpYworICAgICAgICAgICAgICAgIC8vIGZpZWxkcy4KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICAgICAgICAgIHBvcyA9IHN1YlBhcnNlKHRleHQsIHBvcywgY2gsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSwgYW1iaWd1b3VzWWVhciwgY2FsKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0RXJyb3JJbmRleChzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSGFuZGxlIGxpdGVyYWwgcGF0dGVybiBjaGFyYWN0ZXJzLiAgVGhlc2UgYXJlIGFueQorICAgICAgICAgICAgLy8gcXVvdGVkIGNoYXJhY3RlcnMgYW5kIG5vbi1hbHBoYWJldGljIHVucXVvdGVkCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICBhYnV0UGF0ID0gLTE7IC8vIEVuZCBvZiBhbnkgYWJ1dHRpbmcgZmllbGRzCisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcXVvdGVzLiAgVHdvIGNvbnNlY3V0aXZlIHF1b3RlcyBpcyBhIHF1b3RlCisgICAgICAgICAgICAgICAgLy8gbGl0ZXJhbCwgaW5zaWRlIG9yIG91dHNpZGUgb2YgcXVvdGVzLiAgT3RoZXJ3aXNlIGEKKyAgICAgICAgICAgICAgICAvLyBxdW90ZSBpbmRpY2F0ZXMgZW50cnkgb3IgZXhpdCBmcm9tIGEgcXVvdGVkIHJlZ2lvbi4KKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAvLyBNYXRjaCBhIHF1b3RlIGxpdGVyYWwgJycgd2l0aGluIE9SIG91dHNpZGUgb2YgcXVvdGVzCisgICAgICAgICAgICAgICAgICAgIGlmICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpICYmIHBhdHRlcm4uY2hhckF0KGkrMSk9PWNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7IC8vIFNraXAgb3ZlciBkb3VibGVkIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggYW5kIHRyZWF0IHF1b3RlIGFzIGEgbGl0ZXJhbAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW50ZXIgb3IgZXhpdCBxdW90ZWQgcmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBpblF1b3RlID0gIWluUXVvdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEEgcnVuIG9mIHdoaXRlIHNwYWNlIGluIHRoZSBwYXR0ZXJuIG1hdGNoZXMgYSBydW4KKyAgICAgICAgICAgICAgICAvLyBvZiB3aGl0ZSBzcGFjZSBpbiB0aGUgaW5wdXQgdGV4dC4KKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciBydW4gaW4gcGF0dGVybgorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKGkrMSk8cGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UocGF0dGVybi5jaGFyQXQoaSsxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciBydW4gaW4gaW5wdXQgdGV4dAorICAgICAgICAgICAgICAgICAgICBpbnQgcyA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBvczx0ZXh0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzVVdoaXRlU3BhY2UodGV4dC5jaGFyQXQocG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBzZWUgYXQgbGVhc3Qgb25lIHdoaXRlIHNwYWNlIGNoYXIgaW4gaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+IHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwb3M8dGV4dC5sZW5ndGgoKSAmJiB0ZXh0LmNoYXJBdChwb3MpPT1jaCkgeworICAgICAgICAgICAgICAgICAgICAvLyBNYXRjaCBhIGxpdGVyYWwKKyAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFdlIGZhbGwgdGhyb3VnaCB0byB0aGlzIHBvaW50IGlmIHRoZSBtYXRjaCBmYWlscworICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRFcnJvckluZGV4KHBvcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgZmllbGRzIG9mIENhbGVuZGFyIGhhdmUgYmVlbiBzZXQuICBDYWxlbmRhcgorICAgICAgICAvLyB3aWxsIGZpbGwgaW4gZGVmYXVsdCB2YWx1ZXMgZm9yIG1pc3NpbmcgZmllbGRzIHdoZW4gdGhlIHRpbWUKKyAgICAgICAgLy8gaXMgY29tcHV0ZWQuCisKKyAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgocG9zKTsKKworICAgICAgICAvLyBUaGlzIHBhcnQgaXMgYSBwcm9ibGVtOiAgV2hlbiB3ZSBjYWxsIHBhcnNlZERhdGUuYWZ0ZXIsIHdlIGNvbXB1dGUgdGhlIHRpbWUuCisgICAgICAgIC8vIFRha2UgdGhlIGRhdGUgQXByaWwgMyAyMDA0IGF0IDI6MzAgYW0uICBXaGVuIHRoaXMgaXMgZmlyc3Qgc2V0IHVwLCB0aGUgeWVhcgorICAgICAgICAvLyB3aWxsIGJlIHdyb25nIGlmIHdlJ3JlIHBhcnNpbmcgYSAyLWRpZ2l0IHllYXIgcGF0dGVybi4gIEl0IHdpbGwgYmUgMTkwNC4KKyAgICAgICAgLy8gQXByaWwgMyAxOTA0IGlzIGEgU3VuZGF5ICh1bmxpa2UgMjAwNCkgc28gaXQgaXMgdGhlIERTVCBvbnNldCBkYXkuICAyOjMwIGFtCisgICAgICAgIC8vIGlzIHRoZXJlZm9yZSBhbiAiaW1wb3NzaWJsZSIgdGltZSwgc2luY2UgdGhlIHRpbWUgZ29lcyBmcm9tIDE6NTkgdG8gMzowMCBhbQorICAgICAgICAvLyBvbiB0aGF0IGRheS4gIEl0IGlzIHRoZXJlZm9yZSBwYXJzZWQgb3V0IHRvIGZpZWxkcyBhcyAzOjMwIGFtLiAgVGhlbiB3ZQorICAgICAgICAvLyBhZGQgMTAwIHllYXJzLCBhbmQgZ2V0IEFwcmlsIDMgMjAwNCBhdCAzOjMwIGFtLiAgTm90ZSB0aGF0IEFwcmlsIDMgMjAwNCBpcworICAgICAgICAvLyBhIFNhdHVyZGF5LCBzbyBpdCBjYW4gaGF2ZSBhIDI6MzAgYW0gLS0gYW5kIGl0IHNob3VsZC4gW0xJVV0KKyAgICAgICAgLyoKKyAgICAgICAgICBEYXRlIHBhcnNlZERhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgIGlmKCBhbWJpZ3VvdXNZZWFyWzBdICYmICFwYXJzZWREYXRlLmFmdGVyKGRlZmF1bHRDZW50dXJ5U3RhcnQpICkgeworICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgMTAwKTsKKyAgICAgICAgICBwYXJzZWREYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGFib3ZlIGNvbmRpdGlvbiwgc2F2ZSBvZmYgdGhlIGZpZWxkcyBpbiBjYXNlIHdlIG5lZWQgdG8gcmVhZGp1c3QuCisgICAgICAgIC8vIFRoZSBwcm9jZWR1cmUgd2UgdXNlIGhlcmUgaXMgbm90IHBhcnRpY3VsYXJseSBlZmZpY2llbnQsIGJ1dCB0aGVyZSBpcyBubyBvdGhlcgorICAgICAgICAvLyB3YXkgdG8gZG8gdGhpcyBnaXZlbiB0aGUgQVBJIHJlc3RyaWN0aW9ucyBwcmVzZW50IGluIENhbGVuZGFyLiAgV2UgbWluaW1pemUKKyAgICAgICAgLy8gaW5lZmZpY2llbmN5IGJ5IG9ubHkgcGVyZm9ybWluZyB0aGlzIGNvbXB1dGF0aW9uIHdoZW4gaXQgbWlnaHQgYXBwbHksIHRoYXQgaXMsCisgICAgICAgIC8vIHdoZW4gdGhlIHR3by1kaWdpdCB5ZWFyIGlzIGVxdWFsIHRvIHRoZSBzdGFydCB5ZWFyLCBhbmQgdGh1cyBtaWdodCBmYWxsIGF0IHRoZQorICAgICAgICAvLyBmcm9udCBvciB0aGUgYmFjayBvZiB0aGUgZGVmYXVsdCBjZW50dXJ5LiAgVGhpcyBvbmx5IHdvcmtzIGJlY2F1c2Ugd2UgYWRqdXN0CisgICAgICAgIC8vIHRoZSB5ZWFyIGNvcnJlY3RseSB0byBzdGFydCB3aXRoIGluIG90aGVyIGNhc2VzIC0tIHNlZSBzdWJQYXJzZSgpLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGFtYmlndW91c1llYXJbMF0gfHwgcGFyc2VkVGltZVpvbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgYSBjb3B5IG9mIHRoZSBmaWVsZHMsIGFuZCB3ZSBuZWVkIHRvIGF2b2lkIHRyaWdnZXJpbmcgYSBjYWxsIHRvCisgICAgICAgICAgICAgICAgLy8gY29tcGxldGUoKSwgd2hpY2ggd2lsbCByZWNhbGN1bGF0ZSB0aGUgZmllbGRzLiAgU2luY2Ugd2UgY2FuJ3QgYWNjZXNzCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpZWxkc1tdIGFycmF5IGluIENhbGVuZGFyLCB3ZSBjbG9uZSB0aGUgZW50aXJlIG9iamVjdC4gIFRoaXMgd2lsbAorICAgICAgICAgICAgICAgIC8vIHN0b3Agd29ya2luZyBpZiBDYWxlbmRhci5jbG9uZSgpIGlzIGV2ZXIgcmV3cml0dGVuIHRvIGNhbGwgY29tcGxldGUoKS4KKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjb3B5ID0gKENhbGVuZGFyKWNhbC5jbG9uZSgpOworICAgICAgICAgICAgICAgIGlmIChhbWJpZ3VvdXNZZWFyWzBdKSB7IC8vIHRoZSB0d28tZGlnaXQgeWVhciA9PSB0aGUgZGVmYXVsdCBzdGFydCB5ZWFyCisgICAgICAgICAgICAgICAgICAgIERhdGUgcGFyc2VkRGF0ZSA9IGNvcHkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VkRGF0ZS5iZWZvcmUoZGVmYXVsdENlbnR1cnlTdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IHVzZSBhZGQgaGVyZSBiZWNhdXNlIHRoYXQgZG9lcyBhIGNvbXBsZXRlKCkgZmlyc3QuCisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyICsgMTAwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRUaW1lWm9uZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIFRpbWVab25lIHR6ID0gcGFyc2VkVGltZVpvbmU7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhbGVuZGFyIHJlcHJlc2VudHMgdGhlIHBhcnNlIGFzIGdtdCB0aW1lCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gdHVybiB0aGlzIGludG8gbG9jYWwgdGltZSwgc28gd2UgYWRkIHRoZSByYXcgb2Zmc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgYXNrIHRoZSB0aW1lem9uZSB0byBoYW5kbGUgdGhpcyBsb2NhbCB0aW1lCisgICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldHMgPSBuZXcgaW50WzJdOworICAgICAgICAgICAgICAgICAgICB0ei5nZXRPZmZzZXQoY29weS5nZXRUaW1lSW5NaWxsaXMoKSt0ei5nZXRSYXdPZmZzZXQoKSwgdHJ1ZSwgb2Zmc2V0cyk7CisKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5aT05FX09GRlNFVCwgb2Zmc2V0c1swXSk7CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgb2Zmc2V0c1sxXSk7CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBieSBDYWxlbmRhci5nZXRUaW1lKCkKKyAgICAgICAgLy8gaWYgYW55IGZpZWxkcyBhcmUgb3V0IG9mIHJhbmdlLCBlLmcuLCBNT05USCA9PSAxNy4KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBwYXJzZVBvcy5zZXRFcnJvckluZGV4KHBvcyk7CisgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIG1hdGNoIHRoZSB0ZXh0IGF0IGEgZ2l2ZW4gcG9zaXRpb24gYWdhaW5zdCBhbiBhcnJheSBvZgorICAgICAqIHN0cmluZ3MuICBTaW5jZSBtdWx0aXBsZSBzdHJpbmdzIGluIHRoZSBhcnJheSBtYXkgbWF0Y2ggKGZvcgorICAgICAqIGV4YW1wbGUsIGlmIHRoZSBhcnJheSBjb250YWlucyAiYSIsICJhYiIsIGFuZCAiYWJjIiwgYWxsIHdpbGwgbWF0Y2gKKyAgICAgKiB0aGUgaW5wdXQgc3RyaW5nICJhYmNkIikgdGhlIGxvbmdlc3QgbWF0Y2ggaXMgcmV0dXJuZWQuICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIHRoZSBnaXZlbiBmaWVsZCBvZiA8Y29kZT5jYWw8L2NvZGU+IGlzIHNldCB0byB0aGUgaW5kZXgKKyAgICAgKiBvZiB0aGUgYmVzdCBtYXRjaCwgaWYgdGhlcmUgaXMgb25lLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0aW1lIHRleHQgYmVpbmcgcGFyc2VkLgorICAgICAqIEBwYXJhbSBzdGFydCB3aGVyZSB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZGF0ZSBmaWVsZCBiZWluZyBwYXJzZWQuCisgICAgICogQHBhcmFtIGRhdGEgdGhlIHN0cmluZyBhcnJheSB0byBwYXJzZWQuCisgICAgICogQHJldHVybiB0aGUgbmV3IHN0YXJ0IHBvc2l0aW9uIGlmIG1hdGNoaW5nIHN1Y2NlZWRlZDsgYSBuZWdhdGl2ZQorICAgICAqIG51bWJlciBpbmRpY2F0aW5nIG1hdGNoaW5nIGZhaWx1cmUsIG90aGVyd2lzZS4gIEFzIGEgc2lkZSBlZmZlY3QsCisgICAgICogc2V0cyB0aGUgPGNvZGU+Y2FsPC9jb2RlPiBmaWVsZCA8Y29kZT5maWVsZDwvY29kZT4gdG8gdGhlIGluZGV4CisgICAgICogb2YgdGhlIGJlc3QgbWF0Y2gsIGlmIG1hdGNoaW5nIHN1Y2NlZWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1hdGNoU3RyaW5nKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBmaWVsZCwgU3RyaW5nW10gZGF0YSwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBpbnQgY291bnQgPSBkYXRhLmxlbmd0aDsKKworICAgICAgICBpZiAoZmllbGQgPT0gQ2FsZW5kYXIuREFZX09GX1dFRUspIGkgPSAxOworCisgICAgICAgIC8vIFRoZXJlIG1heSBiZSBtdWx0aXBsZSBzdHJpbmdzIGluIHRoZSBkYXRhW10gYXJyYXkgd2hpY2ggYmVnaW4gd2l0aAorICAgICAgICAvLyB0aGUgc2FtZSBwcmVmaXggKGUuZy4sIENlcnZlbiBhbmQgQ2VydmVuZWMgKEp1bmUgYW5kIEp1bHkpIGluIEN6ZWNoKS4KKyAgICAgICAgLy8gV2Uga2VlcCB0cmFjayBvZiB0aGUgbG9uZ2VzdCBtYXRjaCwgYW5kIHJldHVybiB0aGF0LiAgTm90ZSB0aGF0IHRoaXMKKyAgICAgICAgLy8gdW5mb3J0dW5hdGVseSByZXF1aXJlcyB1cyB0byB0ZXN0IGFsbCBhcnJheSBlbGVtZW50cy4KKyAgICAgICAgaW50IGJlc3RNYXRjaExlbmd0aCA9IDAsIGJlc3RNYXRjaCA9IC0xOworICAgICAgICBmb3IgKDsgaTxjb3VudDsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBkYXRhW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIC8vIEFsd2F5cyBjb21wYXJlIGlmIHdlIGhhdmUgbm8gbWF0Y2ggeWV0OyBvdGhlcndpc2Ugb25seSBjb21wYXJlCisgICAgICAgICAgICAgICAgLy8gYWdhaW5zdCBwb3RlbnRpYWxseSBiZXR0ZXIgbWF0Y2hlcyAobG9uZ2VyIHN0cmluZ3MpLgorICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPiBiZXN0TWF0Y2hMZW5ndGggJiYKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LCBkYXRhW2ldLCAwLCBsZW5ndGgpKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoTGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChiZXN0TWF0Y2ggPj0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkLCBiZXN0TWF0Y2gpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCArIGJlc3RNYXRjaExlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIG1hdGNoIHRoZSB0ZXh0IGF0IGEgZ2l2ZW4gcG9zaXRpb24gYWdhaW5zdCBhbiBhcnJheSBvZiBxdWFydGVyCisgICAgICogc3RyaW5ncy4gIFNpbmNlIG11bHRpcGxlIHN0cmluZ3MgaW4gdGhlIGFycmF5IG1heSBtYXRjaCAoZm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIGFycmF5IGNvbnRhaW5zICJhIiwgImFiIiwgYW5kICJhYmMiLCBhbGwgd2lsbCBtYXRjaAorICAgICAqIHRoZSBpbnB1dCBzdHJpbmcgImFiY2QiKSB0aGUgbG9uZ2VzdCBtYXRjaCBpcyByZXR1cm5lZC4gIEFzIGEgc2lkZQorICAgICAqIGVmZmVjdCwgdGhlIGdpdmVuIGZpZWxkIG9mIDxjb2RlPmNhbDwvY29kZT4gaXMgc2V0IHRvIHRoZSBpbmRleAorICAgICAqIG9mIHRoZSBiZXN0IG1hdGNoLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRpbWUgdGV4dCBiZWluZyBwYXJzZWQuCisgICAgICogQHBhcmFtIHN0YXJ0IHdoZXJlIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBkYXRlIGZpZWxkIGJlaW5nIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGF0YSB0aGUgc3RyaW5nIGFycmF5IHRvIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgc3RhcnQgcG9zaXRpb24gaWYgbWF0Y2hpbmcgc3VjY2VlZGVkOyBhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyIGluZGljYXRpbmcgbWF0Y2hpbmcgZmFpbHVyZSwgb3RoZXJ3aXNlLiAgQXMgYSBzaWRlIGVmZmVjdCwKKyAgICAgKiBzZXRzIHRoZSA8Y29kZT5jYWw8L2NvZGU+IGZpZWxkIDxjb2RlPmZpZWxkPC9jb2RlPiB0byB0aGUgaW5kZXgKKyAgICAgKiBvZiB0aGUgYmVzdCBtYXRjaCwgaWYgbWF0Y2hpbmcgc3VjY2VlZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbWF0Y2hRdWFydGVyU3RyaW5nKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBmaWVsZCwgU3RyaW5nW10gZGF0YSwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBpbnQgY291bnQgPSBkYXRhLmxlbmd0aDsKKworICAgICAgICAvLyBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgc3RyaW5ncyBpbiB0aGUgZGF0YVtdIGFycmF5IHdoaWNoIGJlZ2luIHdpdGgKKyAgICAgICAgLy8gdGhlIHNhbWUgcHJlZml4IChlLmcuLCBDZXJ2ZW4gYW5kIENlcnZlbmVjIChKdW5lIGFuZCBKdWx5KSBpbiBDemVjaCkuCisgICAgICAgIC8vIFdlIGtlZXAgdHJhY2sgb2YgdGhlIGxvbmdlc3QgbWF0Y2gsIGFuZCByZXR1cm4gdGhhdC4gIE5vdGUgdGhhdCB0aGlzCisgICAgICAgIC8vIHVuZm9ydHVuYXRlbHkgcmVxdWlyZXMgdXMgdG8gdGVzdCBhbGwgYXJyYXkgZWxlbWVudHMuCisgICAgICAgIGludCBiZXN0TWF0Y2hMZW5ndGggPSAwLCBiZXN0TWF0Y2ggPSAtMTsKKyAgICAgICAgZm9yICg7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGRhdGFbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAvLyBBbHdheXMgY29tcGFyZSBpZiB3ZSBoYXZlIG5vIG1hdGNoIHlldDsgb3RoZXJ3aXNlIG9ubHkgY29tcGFyZQorICAgICAgICAgICAgLy8gYWdhaW5zdCBwb3RlbnRpYWxseSBiZXR0ZXIgbWF0Y2hlcyAobG9uZ2VyIHN0cmluZ3MpLgorICAgICAgICAgICAgaWYgKGxlbmd0aCA+IGJlc3RNYXRjaExlbmd0aCAmJgorICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgZGF0YVtpXSwgMCwgbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIGJlc3RNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgYmVzdE1hdGNoTGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoYmVzdE1hdGNoID49IDApIHsKKyAgICAgICAgICAgIGNhbC5zZXQoZmllbGQsIGJlc3RNYXRjaCAqIDMpOworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgYmVzdE1hdGNoTGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBmaW5kIHRpbWUgem9uZSAndGV4dCcgbWF0Y2hlZCB6b25lU3RyaW5ncyBhbmQgc2V0IGNhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IHN1YlBhcnNlWm9uZVN0cmluZyhTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgY2hlY2sgZm9yIG5hbWVkIHRpbWUgem9uZXMgYnkgbG9va2luZyB0aHJvdWdoCisgICAgICAgIC8vIHRoZSBsb2NhbGUgZGF0YSBmcm9tIHRoZSBEYXRlRm9ybWF0Wm9uZURhdGEgc3RyaW5ncy4KKyAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisKKyAgICAgICAgLy8gb3B0aW1pemUgZm9yIGNhbGVuZGFyJ3MgY3VycmVudCB0aW1lIHpvbmUKKyAgICAgICAgVGltZVpvbmUgdHogPSBudWxsOworICAgICAgICBTdHJpbmcgemlkID0gbnVsbCwgdmFsdWUgPSBudWxsOworICAgICAgICBpbnQgdHlwZSA9IC0xOworCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzLlpvbmVJdGVtIGl0ZW0gPSBmb3JtYXREYXRhLmZpbmRab25lSURUeXBlVmFsdWUodGV4dCwgc3RhcnQpOworICAgICAgICBpZiAoaXRlbSAhPSBudWxsKSB7CisgICAgICAgICAgICB6aWQgPSBpdGVtLnppZDsKKyAgICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTsKKyAgICAgICAgICAgIHR5cGUgPSBpdGVtLnR5cGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoemlkICE9IG51bGwpIHsKKyAgICAgICAgICAgIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoemlkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHR6ICE9IG51bGwpIHsgLy8gTWF0Y2hlZCBhbnkgPworICAgICAgICAgICAgLy8gYWx3YXlzIHNldCB6b25lIG9mZnNldCwgbmVlZGVkIHRvIGdldCBjb3JyZWN0IGhvdXIgaW4gd2FsbCB0aW1lCisgICAgICAgICAgICAvLyB3aGVuIGNoZWNraW5nIGRheWxpZ2h0IHNhdmluZ3MKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIHR6LmdldFJhd09mZnNldCgpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX1NIT1JUX1NUQU5EQVJECisgICAgICAgICAgICAgICAgICAgIHx8IHR5cGUgPT0gRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfTE9OR19TVEFOREFSRCkgeworICAgICAgICAgICAgICAgIC8vIHN0YW5kYXJkIHRpbWUKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIDApOworICAgICAgICAgICAgICAgIHR6ID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9EQVlMSUdIVAorICAgICAgICAgICAgICAgICAgICB8fCB0eXBlID09IERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfREFZTElHSFQpIHsKKyAgICAgICAgICAgICAgICAvLyBkYXlsaWdodCB0aW1lCisgICAgICAgICAgICAgICAgLy8gdXNlIHRoZSBjb3JyZWN0IERTVCBTQVZJTkdTIGZvciB0aGUgem9uZS4KKyAgICAgICAgICAgICAgICAvLyBjYWwuc2V0KFVDQUxfRFNUX09GRlNFVCwgdHotPmdldERTVFNhdmluZ3MoKSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EU1RfT0ZGU0VULCBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgICAgICAgICB0eiA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGVpdGhlciBzdGFuZGFyZCBvciBkYXlsaWdodAorICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZmluaXNoIGdldHRpbmcgdGhlIGRhdGUsIHRoZW4gY29tcHV0ZSBkc3Qgb2Zmc2V0IGFzCisgICAgICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUKKyAgICAgICAgICAgICAgICBwYXJzZWRUaW1lWm9uZSA9IHR6OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCArIHZhbHVlLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGNvbXBsZXRlIGZhaWx1cmUKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIG1ldGhvZCB0aGF0IGNvbnZlcnRzIG9uZSBmaWVsZCBvZiB0aGUgaW5wdXQgc3RyaW5nIGludG8gYQorICAgICAqIG51bWVyaWMgZmllbGQgdmFsdWUgaW4gPGNvZGU+Y2FsPC9jb2RlPi4gIFJldHVybnMgLXN0YXJ0IChmb3IKKyAgICAgKiBQYXJzZVBvc2l0aW9uKSBpZiBmYWlsZWQuICBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0bworICAgICAqIG1vZGlmeSBvciBhZGQgcGFyc2luZyBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRpbWUgdGV4dCB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIHN0YXJ0IHdoZXJlIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogQHBhcmFtIGNoIHRoZSBwYXR0ZXJuIGNoYXJhY3RlciBmb3IgdGhlIGRhdGUgZmllbGQgdGV4dCB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBjb3VudCBvZiBhIHBhdHRlcm4gY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBvYmV5Q291bnQgaWYgdHJ1ZSwgdGhlbiB0aGUgbmV4dCBmaWVsZCBkaXJlY3RseSBhYnV0cyB0aGlzIG9uZSwKKyAgICAgKiBhbmQgd2Ugc2hvdWxkIHVzZSB0aGUgY291bnQgdG8ga25vdyB3aGVuIHRvIHN0b3AgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gYW1iaWd1b3VzWWVhciByZXR1cm4gcGFyYW1ldGVyOyB1cG9uIHJldHVybiwgaWYgYW1iaWd1b3VzWWVhclswXQorICAgICAqIGlzIHRydWUsIHRoZW4gYSB0d28tZGlnaXQgeWVhciB3YXMgcGFyc2VkIGFuZCBtYXkgbmVlZCB0byBiZSByZWFkanVzdGVkLgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzdGFydCBwb3NpdGlvbiBpZiBtYXRjaGluZyBzdWNjZWVkZWQ7IGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIgaW5kaWNhdGluZyBtYXRjaGluZyBmYWlsdXJlLCBvdGhlcndpc2UuICBBcyBhIHNpZGUgZWZmZWN0LAorICAgICAqIHNldCB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgPGNvZGU+Y2FsPC9jb2RlPiB3aXRoIHRoZSBwYXJzZWQKKyAgICAgKiB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHN1YlBhcnNlKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGNoYXIgY2gsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gb2JleUNvdW50LCBib29sZWFuIGFsbG93TmVnYXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gYW1iaWd1b3VzWWVhciwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgTnVtYmVyIG51bWJlciA9IG51bGw7CisgICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgIGludCBpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBpbnQgcGF0dGVybkNoYXJJbmRleCA9IERhdGVGb3JtYXRTeW1ib2xzLnBhdHRlcm5DaGFycy5pbmRleE9mKGNoKTsKKworICAgICAgICBpZiAocGF0dGVybkNoYXJJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBmaWVsZCA9IFBBVFRFUk5fSU5ERVhfVE9fQ0FMRU5EQVJfRklFTERbcGF0dGVybkNoYXJJbmRleF07CisKKyAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzcGFjZXMgaGVyZSwgc2tpcCBvdmVyIHRoZW0uICBJZiB3ZSBoaXQgdGhlIGVuZAorICAgICAgICAvLyBvZiB0aGUgc3RyaW5nLCB0aGVuIGZhaWwuCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA+PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIHN0YXJ0KTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcG9zLnNldEluZGV4KHN0YXJ0KTsKKworICAgICAgICAvLyBXZSBoYW5kbGUgYSBmZXcgc3BlY2lhbCBjYXNlcyBoZXJlIHdoZXJlIHdlIG5lZWQgdG8gcGFyc2UKKyAgICAgICAgLy8gYSBudW1iZXIgdmFsdWUuICBXZSBoYW5kbGUgZnVydGhlciwgbW9yZSBnZW5lcmljIGNhc2VzIGJlbG93LiAgV2UgbmVlZAorICAgICAgICAvLyB0byBoYW5kbGUgc29tZSBvZiB0aGVtIGhlcmUgYmVjYXVzZSBzb21lIGZpZWxkcyByZXF1aXJlIGV4dHJhIHByb2Nlc3Npbmcgb24KKyAgICAgICAgLy8gdGhlIHBhcnNlZCB2YWx1ZS4KKyAgICAgICAgaWYgKHBhdHRlcm5DaGFySW5kZXggPT0gNCAvKkhPVVJfT0ZfREFZMV9GSUVMRCovIHx8CisgICAgICAgICAgICBwYXR0ZXJuQ2hhckluZGV4ID09IDE1IC8qSE9VUjFfRklFTEQqLyB8fAorICAgICAgICAgICAgKHBhdHRlcm5DaGFySW5kZXggPT0gMiAvKk1PTlRIX0ZJRUxEKi8gJiYgY291bnQgPD0gMikgfHwKKyAgICAgICAgICAgIHBhdHRlcm5DaGFySW5kZXggPT0gMSB8fAorICAgICAgICAgICAgcGF0dGVybkNoYXJJbmRleCA9PSA4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIEl0IHdvdWxkIGJlIGdvb2QgdG8gdW5pZnkgdGhpcyB3aXRoIHRoZSBvYmV5Q291bnQgbG9naWMgYmVsb3csCisgICAgICAgICAgICAgICAgLy8gYnV0IHRoYXQncyBnb2luZyB0byBiZSBkaWZmaWN1bHQuCisgICAgICAgICAgICAgICAgaWYgKG9iZXlDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGFydCtjb3VudCkgPiB0ZXh0Lmxlbmd0aCgpKSByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gcGFyc2VJbnQodGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQrY291bnQpLCBwb3MsIGFsbG93TmVnYXRpdmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBudW1iZXIgPSBwYXJzZUludCh0ZXh0LCBwb3MsIGFsbG93TmVnYXRpdmUpOworICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAocGF0dGVybkNoYXJJbmRleCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgMDogLy8gJ0cnIC0gRVJBCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5FUkEsIGZvcm1hdERhdGEuZXJhTmFtZXMsIGNhbCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5FUkEsIGZvcm1hdERhdGEuZXJhcywgY2FsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIDE6IC8vICd5JyAtIFlFQVIKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgMyBvciBtb3JlIFlFQVIgcGF0dGVybiBjaGFyYWN0ZXJzLCB0aGlzIGluZGljYXRlcworICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIHllYXIgdmFsdWUgaXMgdG8gYmUgdHJlYXRlZCBsaXRlcmFsbHksIHdpdGhvdXQgYW55CisgICAgICAgICAgICAgICAgLy8gdHdvLWRpZ2l0IHllYXIgYWRqdXN0bWVudHMgKGUuZy4sIGZyb20gIjAxIiB0byAyMDAxKS4gIE90aGVyd2lzZQorICAgICAgICAgICAgICAgIC8vIHdlIG1hZGUgYWRqdXN0bWVudHMgdG8gcGxhY2UgdGhlIDItZGlnaXQgeWVhciBpbiB0aGUgcHJvcGVyCisgICAgICAgICAgICAgICAgLy8gY2VudHVyeSwgZm9yIHBhcnNlZCBzdHJpbmdzIGZyb20gIjAwIiB0byAiOTkiLiAgQW55IG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgIC8vIGlzIHRyZWF0ZWQgbGl0ZXJhbGx5OiAgIjIyNTAiLCAiLTEiLCAiMSIsICIwMDIiLgorICAgICAgICAgICAgICAgIC8qICd5eScgaXMgdGhlIG9ubHkgc3BlY2lhbCBjYXNlLCAneScgaXMgaW50ZXJwcmV0ZWQgYXMgbnVtYmVyLiBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMiAmJiAocG9zLmdldEluZGV4KCkgLSBzdGFydCkgPT0gMgorICAgICAgICAgICAgICAgICAgICAmJiBDaGFyYWN0ZXIuaXNEaWdpdCh0ZXh0LmNoYXJBdChzdGFydCkpCisgICAgICAgICAgICAgICAgICAgICYmIENoYXJhY3Rlci5pc0RpZ2l0KHRleHQuY2hhckF0KHN0YXJ0KzEpKSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXNzdW1lIGZvciBleGFtcGxlIHRoYXQgdGhlIGRlZmF1bHRDZW50dXJ5U3RhcnQgaXMgNi8xOC8xOTAzLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHR3by1kaWdpdCB5ZWFycyB3aWxsIGJlIGZvcmNlZCBpbnRvIHRoZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gNi8xOC8xOTAzIHRvIDYvMTcvMjAwMy4gIEFzIGEgcmVzdWx0LCB5ZWFycyAwMCwgMDEsIGFuZCAwMgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29ycmVzcG9uZCB0byAyMDAwLCAyMDAxLCBhbmQgMjAwMi4gIFllYXJzIDA0LCAwNSwgZXRjLiBjb3JyZXNwb25kCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byAxOTA0LCAxOTA1LCBldGMuICBJZiB0aGUgeWVhciBpcyAwMywgdGhlbiBpdCBpcyAyMDAzIGlmIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgZmllbGRzIHNwZWNpZnkgYSBkYXRlIGJlZm9yZSA2LzE4LCBvciAxOTAzIGlmIHRoZXkgc3BlY2lmeSBhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkYXRlIGFmdGVyd2FyZHMuICBBcyBhIHJlc3VsdCwgMDMgaXMgYW4gYW1iaWd1b3VzIHllYXIuICBBbGwgb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR3by1kaWdpdCB5ZWFycyBhcmUgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYW1iaWd1b3VzVHdvRGlnaXRZZWFyID0gZGVmYXVsdENlbnR1cnlTdGFydFllYXIgJSAxMDA7CisgICAgICAgICAgICAgICAgICAgICAgICBhbWJpZ3VvdXNZZWFyWzBdID0gdmFsdWUgPT0gYW1iaWd1b3VzVHdvRGlnaXRZZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gKGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyLzEwMCkqMTAwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPCBhbWJpZ3VvdXNUd29EaWdpdFllYXIgPyAxMDAgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNhc2UgMjogLy8gJ00nIC0gTU9OVEgKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPD0gMikgLy8gaS5lLiwgTSBvciBNTS4KKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FudCB0byBwYXJzZSB0aGUgbW9udGggaWYgaXQgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWxlIHBhdHRlcm4gdXNlcyBudW1lcmljIHN0eWxlOiBNIG9yIE1NLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdmFsdWUgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgPj0gMyAvLyBpLmUuLCBNTU0gb3IgTU1NTQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgY291bnQgPT0gNCBmaXJzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdTdGFydCA9IG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEubW9udGhzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGNvdW50ID09IDQgZmFpbGVkLCBub3cgdHJ5IGNvdW50ID09IDMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnNob3J0TW9udGhzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIDI2OiAvLyAnTCcgLSBTVEFORF9BTE9ORV9NT05USAorICAgICAgICAgICAgICAgIGlmIChjb3VudCA8PSAyKSAvLyBpLmUuLCBNIG9yIE1NLgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIHBhcnNlIHRoZSBtb250aCBpZiBpdCBpcyBhIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpbGUgcGF0dGVybiB1c2VzIG51bWVyaWMgc3R5bGU6IE0gb3IgTU0uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBbV2UgY29tcHV0ZWQgJ3ZhbHVlJyBhYm92ZS5dCisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCB2YWx1ZSAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCA+PSAzIC8vIGkuZS4sIE1NTSBvciBNTU1NCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXYW50IHRvIGJlIGFibGUgdG8gcGFyc2UgYm90aCBzaG9ydCBhbmQgbG9uZyBmb3Jtcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IGZpcnN0OgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld1N0YXJ0ID0gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5zdGFuZGFsb25lTW9udGhzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGNvdW50ID09IDQgZmFpbGVkLCBub3cgdHJ5IGNvdW50ID09IDMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnN0YW5kYWxvbmVTaG9ydE1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSA0OiAvLyAnaycgLSBIT1VSX09GX0RBWSAoMS4uMjQpCisgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5IT1VSX09GX0RBWSkrMSkgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDg6IC8vICdTJyAtIEZSQUNUSU9OQUxfU0VDT05ECisgICAgICAgICAgICAgICAgLy8gRnJhY3Rpb25hbCBzZWNvbmRzIGxlZnQtanVzdGlmeQorICAgICAgICAgICAgICAgIGkgPSBwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChpIDwgMykgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGEgPSAxOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA+IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgKj0gMTA7CisgICAgICAgICAgICAgICAgICAgICAgICBpLS07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgKyAoYT4+MSkpIC8gYTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNhc2UgOTogeyAvLyAnRScgLSBEQVlfT0ZfV0VFSworICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IChFRUVFKSBmaXJzdDoKKyAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS53ZWVrZGF5cywgY2FsKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBFRUVFIGZhaWxlZCwgbm93IHRyeSBFRUUKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5EQVlfT0ZfV0VFSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc2hvcnRXZWVrZGF5cywgY2FsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIDI1OiB7IC8vICdjJyAtIFNUQU5EX0FMT05FX0RBWV9PRl9XRUVLCisgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgLy8gVHJ5IGNvdW50ID09IDQgKGNjY2MpIGZpcnN0OgorICAgICAgICAgICAgICAgIGludCBuZXdTdGFydCA9IG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5EQVlfT0ZfV0VFSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnN0YW5kYWxvbmVXZWVrZGF5cywgY2FsKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjY2NjIGZhaWxlZCwgbm93IHRyeSBjY2MKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5EQVlfT0ZfV0VFSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc3RhbmRhbG9uZVNob3J0V2Vla2RheXMsIGNhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAxNDogLy8gJ2EnIC0gQU1fUE0KKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLkFNX1BNLCBmb3JtYXREYXRhLmFtcG1zLCBjYWwpOworICAgICAgICAgICAgY2FzZSAxNTogLy8gJ2gnIC0gSE9VUiAoMS4uMTIpCisgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBjYWwuZ2V0TGVhc3RNYXhpbXVtKENhbGVuZGFyLkhPVVIpKzEpIHZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDE3OiAvLyAneicgLSBaT05FX09GRlNFVAorICAgICAgICAgICAgY2FzZSAyMzogLy8gJ1onIC0gVElNRVpPTkVfUkZDCisgICAgICAgICAgICBjYXNlIDI0OiAvLyAndicgLSBUSU1FWk9ORV9HRU5FUklDCisgICAgICAgICAgICAgICAgLy8gRmlyc3QgdHJ5IHRvIHBhcnNlIGdlbmVyaWMgZm9ybXMgc3VjaCBhcyBHTVQtMDc6MDAuIERvIHRoaXMgZmlyc3QKKyAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIGxvY2FsaXplZCBEYXRlRm9ybWF0Wm9uZURhdGEgY29udGFpbnMgdGhlIHN0cmluZyAiR01UIgorICAgICAgICAgICAgICAgIC8vIGZvciBhIHpvbmU7IGluIHRoYXQgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBtYXRjaCB0aGUgZmlyc3QgdGhyZWUKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIG9mIEdNVCsvLUhIOk1NIGV0Yy4KKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCBzaWduID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDsKKworICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8ga25vd24gbmFtZXMsIGxvb2sgZm9yIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIGZvcm06CisgICAgICAgICAgICAgICAgICAgIC8vICAgIEdNVFsrLV1ob3VyczptaW51dGVzIG9yCisgICAgICAgICAgICAgICAgICAgIC8vICAgIEdNVFsrLV1oaG1tIG9yCisgICAgICAgICAgICAgICAgICAgIC8vICAgIEdNVC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCh0ZXh0Lmxlbmd0aCgpIC0gc3RhcnQpID49IEdNVC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LCBHTVQsIDAsIEdNVC5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EU1RfT0ZGU0VULCAwKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCArIEdNVC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeyAvLyB0cnktY2F0Y2ggZm9yICJHTVQiIG9ubHkgdGltZSB6b25lIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRleHQuY2hhckF0KHBvcy5nZXRJbmRleCgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcrJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIDAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGhvdXJzOm1pbnV0ZXMgb3IgaGhtbS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3QgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgdHpOdW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggdHpOdW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggcG9zLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuY2hhckF0KHBvcy5nZXRJbmRleCgpKSA9PSAnOicgKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaG91cnM6bWludXRlcyBjYXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHR6TnVtYmVyLmludFZhbHVlKCkgKiA2MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR6TnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCB0ek51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB0ek51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGhtbSBjYXNlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0ek51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBc3N1bWUgIi0yMyIuLiIrMjMiIHJlZmVycyB0byBob3Vycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG9mZnNldCA8IDI0ICYmIChwb3MuZ2V0SW5kZXgoKSAtIHN0KSA8PSAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICo9IDYwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0b2RvOiB0aGlzIGxvb2tzIHF1ZXN0aW9uYWJsZSwgc2hvdWxkIGhhdmUgbW9yZSBlcnJvciBjaGVja2luZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICUgMTAwICsgb2Zmc2V0IC8gMTAwICogNjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGZvciBmaW5hbCBwcm9jZXNzaW5nIGJlbG93IG9mICdvZmZzZXQnIGFuZCAnc2lnbicuCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgY2hlY2sgZm9yIG5hbWVkIHRpbWUgem9uZXMgYnkgbG9va2luZyB0aHJvdWdoCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbG9jYWxlIGRhdGEgZnJvbSB0aGUgRGF0ZUZvcm1hdFpvbmVEYXRhIHN0cmluZ3MuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXYW50IHRvIGJlIGFibGUgdG8gcGFyc2UgYm90aCBzaG9ydCBhbmQgbG9uZyBmb3Jtcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBzdWJQYXJzZVpvbmVTdHJpbmcodGV4dCwgc3RhcnQsIGNhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcyBhIGxhc3QgcmVzb3J0LCBsb29rIGZvciBudW1lcmljIHRpbWV6b25lcyBvZiB0aGUgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gWystXWhobW0gYXMgc3BlY2lmaWVkIGJ5IFJGQyA4MjIuICBUaGlzIGNvZGUgaXMgYWN0dWFsbHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgbGl0dGxlIG1vcmUgcGVybWlzc2l2ZSB0aGFuIFJGQyA4MjIuICBJdCB3aWxsIHRyeSB0byBkbworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXRzIGJlc3Qgd2l0aCBudW1iZXJzIHRoYXQgYXJlbid0IHN0cmljdGx5IDQgZGlnaXRzIGxvbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIyMjIzstIyMjIyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZm10LnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgdHpOdW1iZXIgPSBmbXQucGFyc2UoIHRleHQsIHBvcyApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHR6TnVtYmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OyAgIC8vIFdhc24ndCBhY3R1YWxseSBhIG51bWJlci4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHR6TnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBvZmZzZXQgPCAwICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXNzdW1lICItMjMiLi4iKzIzIiByZWZlcnMgdG8gaG91cnMuIExlbmd0aCBpbmNsdWRlcyBzaWduLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG9mZnNldCA8IDI0ICYmIChwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0KSA8PSAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG9mZnNldCAqIDYwOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG9mZnNldCAlIDEwMCArIG9mZnNldCAvIDEwMCAqIDYwOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIGZpbmFsIHByb2Nlc3NpbmcgYmVsb3cgb2YgJ29mZnNldCcgYW5kICdzaWduJy4KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIERvIHRoZSBmaW5hbCBwcm9jZXNzaW5nIGZvciBib3RoIG9mIHRoZSBhYm92ZSBjYXNlcy4gIFdlIG9ubHkKKyAgICAgICAgICAgICAgICAgICAgLy8gYXJyaXZlIGhlcmUgaWYgdGhlIGZvcm0gR01UKy8tLi4uIG9yIGFuIFJGQyA4MjIgZm9ybSB3YXMgc2Vlbi4KKworICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQgKHNpZ24gIT0gMCkgOiBzaWduOyAvLyBlbmFibGUgd2hlbiBndWFyYW50ZWVkIEpESyA+PSAxLjQKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICo9IG1pbGxpc1Blck1pbnV0ZSAqIHNpZ247CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbC5nZXRUaW1lWm9uZSgpLnVzZURheWxpZ2h0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgbWlsbGlzUGVySG91cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC09IG1pbGxpc1BlckhvdXI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIG9mZnNldCk7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgMjc6IC8vICdRJyAtIFFVQVJURVIKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPD0gMikgLy8gaS5lLiwgUSBvciBRUS4KKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IHdhbnQgdG8gcGFyc2UgdGhlIHF1YXJ0ZXIgaWYgaXQgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hpbGUgcGF0dGVybiB1c2VzIG51bWVyaWMgc3R5bGU6IFEgb3IgUVEuCisgICAgICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgKHZhbHVlIC0gMSkgKiAzKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50ID49IDMgLy8gaS5lLiwgUVFRIG9yIFFRUVEKKyAgICAgICAgICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IGZpcnN0OgorICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFF1YXJ0ZXJTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnF1YXJ0ZXJzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGNvdW50ID09IDQgZmFpbGVkLCBub3cgdHJ5IGNvdW50ID09IDMKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFF1YXJ0ZXJTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc2hvcnRRdWFydGVycywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgMjg6IC8vICdxJyAtIFNUQU5EQUxPTkUgUVVBUlRFUgorICAgICAgICAgICAgICAgIGlmIChjb3VudCA8PSAyKSAvLyBpLmUuLCBxIG9yIHFxLgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FudCB0byBwYXJzZSB0aGUgcXVhcnRlciBpZiBpdCBpcyBhIHN0cmluZworICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBwYXR0ZXJuIHVzZXMgbnVtZXJpYyBzdHlsZTogcSBvciBxcS4KKyAgICAgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCAodmFsdWUgLSAxKSAqIDMpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgPj0gMyAvLyBpLmUuLCBxcXEgb3IgcXFxcQorICAgICAgICAgICAgICAgICAgICAvLyBXYW50IHRvIGJlIGFibGUgdG8gcGFyc2UgYm90aCBzaG9ydCBhbmQgbG9uZyBmb3Jtcy4KKyAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IGNvdW50ID09IDQgZmlyc3Q6CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdTdGFydCA9IG1hdGNoUXVhcnRlclN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc3RhbmRhbG9uZVF1YXJ0ZXJzLCBjYWwpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGNvdW50ID09IDQgZmFpbGVkLCBub3cgdHJ5IGNvdW50ID09IDMKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFF1YXJ0ZXJTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc3RhbmRhbG9uZVNob3J0UXVhcnRlcnMsIGNhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gY2FzZSAzOiAvLyAnZCcgLSBEQVRFCisgICAgICAgICAgICAgICAgLy8gY2FzZSA1OiAvLyAnSCcgLSBIT1VSX09GX0RBWSAoMC4uMjMpCisgICAgICAgICAgICAgICAgLy8gY2FzZSA2OiAvLyAnbScgLSBNSU5VVEUKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDc6IC8vICdzJyAtIFNFQ09ORAorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTA6IC8vICdEJyAtIERBWV9PRl9ZRUFSCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxMTogLy8gJ0YnIC0gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDEyOiAvLyAndycgLSBXRUVLX09GX1lFQVIKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDEzOiAvLyAnVycgLSBXRUVLX09GX01PTlRICisgICAgICAgICAgICAgICAgLy8gY2FzZSAxNjogLy8gJ0snIC0gSE9VUiAoMC4uMTEpCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxODogLy8gJ1knIC0gWUVBUl9XT1kKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDE5OiAvLyAnZScgLSBET1dfTE9DQUwKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDIwOiAvLyAndScgLSBFWFRFTkRFRF9ZRUFSCisgICAgICAgICAgICAgICAgLy8gY2FzZSAyMTogLy8gJ2cnIC0gSlVMSUFOX0RBWQorICAgICAgICAgICAgICAgIC8vIGNhc2UgMjI6IC8vICdBJyAtIE1JTExJU0VDT05EU19JTl9EQVkKKworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSAiZ2VuZXJpYyIgZmllbGRzCisgICAgICAgICAgICAgICAgaWYgKG9iZXlDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGFydCtjb3VudCkgPiB0ZXh0Lmxlbmd0aCgpKSByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gcGFyc2VJbnQodGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQrY291bnQpLCBwb3MsIGFsbG93TmVnYXRpdmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBudW1iZXIgPSBwYXJzZUludCh0ZXh0LCBwb3MsIGFsbG93TmVnYXRpdmUpOworICAgICAgICAgICAgICAgIGlmIChudW1iZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkLCBudW1iZXIuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBpbnRlZ2VyIHVzaW5nIGZOdW1iZXJGb3JtYXQuICBUaGlzIG1ldGhvZCBpcyBzZW1hbnRpY2FsbHkKKyAgICAgKiBjb25zdCwgYnV0IGFjdHVhbGx5IG1heSBtb2RpZnkgZk51bWJlckZvcm1hdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE51bWJlciBwYXJzZUludChTdHJpbmcgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFsbG93TmVnYXRpdmUpIHsKKyAgICAgICAgU3RyaW5nIG9sZFByZWZpeCA9IG51bGw7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBudWxsOworICAgICAgICBpZiAoIWFsbG93TmVnYXRpdmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGYgPSAoRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQ7CisgICAgICAgICAgICAgICAgb2xkUHJlZml4ID0gZGYuZ2V0TmVnYXRpdmVQcmVmaXgoKTsKKyAgICAgICAgICAgICAgICBkZi5zZXROZWdhdGl2ZVByZWZpeChTVVBQUkVTU19ORUdBVElWRV9QUkVGSVgpOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUxKSB7fQorICAgICAgICB9CisgICAgICAgIE51bWJlciBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKGRmICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRmLnNldE5lZ2F0aXZlUHJlZml4KG9sZFByZWZpeCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xhdGUgYSBwYXR0ZXJuLCBtYXBwaW5nIGVhY2ggY2hhcmFjdGVyIGluIHRoZSBmcm9tIHN0cmluZyB0byB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBpbiB0aGUgdG8gc3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRyYW5zbGF0ZVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIFN0cmluZyBmcm9tLCBTdHJpbmcgdG8pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBpblF1b3RlID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChpblF1b3RlKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wnJykKKyAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1wnJykKKyAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjaSA9IGZyb20uaW5kZXhPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gdG8uY2hhckF0KGNpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3Qgd29ycnkgb24gdHJhbnNsYXRlcGF0dGVybiBpZiB0aGUgY2hhcmFjdGVyIGlzIG5vdCBsaXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG8gdGhlIHZhbGlkaXR5IGNoZWNrIGVsc2V3aGVyZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluUXVvdGUpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmZpbmlzaGVkIHF1b3RlIGluIHBhdHRlcm4iKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBhdHRlcm4gc3RyaW5nIGRlc2NyaWJpbmcgdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIGRlc2NyaWJpbmcgdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvTG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZVBhdHRlcm4ocGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLmxvY2FsUGF0dGVybkNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gdW5sb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdG8gdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pCisgICAgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICBzZXRMb2NhbGUobnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0byB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSB0cmFuc2xhdGVQYXR0ZXJuKHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5sb2NhbFBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMpOworICAgICAgICBzZXRMb2NhbGUobnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgZGF0YS4KKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSBhc3NvY2lhdGVkCisgICAgICogd2l0aCB0aGlzIGRhdGUtdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzIGdldERhdGVGb3JtYXRTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAoRGF0ZUZvcm1hdFN5bWJvbHMpZm9ybWF0RGF0YS5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBkYXRhLgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXRTeW1ib2xzIHRoZSBuZXcgc3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzIG5ld0Zvcm1hdFN5bWJvbHMpCisgICAgeworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpbmV3Rm9ybWF0U3ltYm9scy5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBhY2Nlc3MgdGhlIERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0U3ltYm9scyBnZXRTeW1ib2xzKCkgeworICAgICAgICByZXR1cm4gZm9ybWF0RGF0YTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBvdGhlciA9IChTaW1wbGVEYXRlRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICBvdGhlci5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhLmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gcGF0dGVybi5oYXNoQ29kZSgpOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBlcXVhbHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAoIXN1cGVyLmVxdWFscyhvYmopKSByZXR1cm4gZmFsc2U7IC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCB0aGF0ID0gKFNpbXBsZURhdGVGb3JtYXQpIG9iajsKKyAgICAgICAgcmV0dXJuIChwYXR0ZXJuLmVxdWFscyh0aGF0LnBhdHRlcm4pCisgICAgICAgICAgICAgICAgJiYgZm9ybWF0RGF0YS5lcXVhbHModGhhdC5mb3JtYXREYXRhKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgcmVhZE9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIC8vIGRvbid0IGhhdmUgb2xkIHNlcmlhbCBkYXRhIHRvIHRlc3Qgd2l0aAorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgLy8gZGlkbid0IGhhdmUgZGVmYXVsdENlbnR1cnlTdGFydCBmaWVsZAorICAgICAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRDZW50dXJ5KCk7CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZmlsbCBpbiBkZXBlbmRlbnQgdHJhbnNpZW50IGZpZWxkCisgICAgICAgICAgICBwYXJzZUFtYmlndW91c0RhdGVzQXNBZnRlcihkZWZhdWx0Q2VudHVyeVN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICAgICAgbG9jYWxlID0gZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMGZhNjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworCisvLyBOT1RFOiAgVGhpcyBjbGFzcyBpcyBpZGVudGljYWwgdG8gamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisvLyBpbiBKREsgMS4yLiAgSXQncyBjb3BpZWQgaGVyZSBiZWNhdXNlIHRoZSBKREsgMS4xIHZlcnNpb24gb2YKKy8vIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGhhcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGl0IGZyb20gd29ya2luZworLy8gcmlnaHQgd2l0aCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLiAgVGhpcyBjbGFzcyBpcyB1bm5lY2Vzc2FyeQorLy8gd2hlbiB1c2luZyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggSkRLIDEuMi4KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8Y29kZT5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gaW1wbGVtZW50cyB0aGUKKyAqIDxjb2RlPkNoYXJhY3Rlckl0ZXJhdGVyPC9jb2RlPiBwcm90b2NvbCBmb3IgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICogVGhlIDxjb2RlPlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBjbGFzcyBpdGVyYXRlcyBvdmVyIHRoZQorICogZW50aXJlIDxjb2RlPlN0cmluZzwvY29kZT4uCisgKgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICovCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvcgoreworICAgIHByaXZhdGUgU3RyaW5nIHRleHQ7CisgICAgcHJpdmF0ZSBpbnQgYmVnaW47CisgICAgcHJpdmF0ZSBpbnQgZW5kOworICAgIC8vIGludmFyaWFudDogYmVnaW4gPD0gcG9zIDw9IGVuZAorICAgIHByaXZhdGUgaW50IHBvczsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCBhbiBpbml0aWFsIGluZGV4IG9mIDAuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCkKKyAgICB7CisgICAgICAgIHRoaXModGV4dCwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgaW5pdGlhbCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24gICAgIAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHRleHQsIGludCBwb3MpCisgICAgeworICAgIHRoaXModGV4dCwgMCwgdGV4dC5sZW5ndGgoKSwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSBnaXZlbiBzdHJpbmcsIHdpdGggdGhlCisgICAgICogaW5kZXggc2V0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIGJlZ2luICBJbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgICogQHBhcmFtICBlbmQgICAgSW5kZXggb2YgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICogQHBhcmFtICBwb3MgICAgSW5pdGlhbCBpdGVyYXRvciBwb3NpdGlvbiAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyB0ZXh0LCBpbnQgYmVnaW4sIGludCBlbmQsIGludCBwb3MpIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKworICAgICAgICBpZiAoYmVnaW4gPCAwIHx8IGJlZ2luID4gZW5kIHx8IGVuZCA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3Vic3RyaW5nIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zIDwgYmVnaW4gfHwgcG9zID4gZW5kKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHBvc2l0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmJlZ2luID0gYmVnaW47CisgICAgICAgIHRoaXMuZW5kID0gZW5kOworICAgICAgICB0aGlzLnBvcyA9IHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGlzIGl0ZXJhdG9yIHRvIHBvaW50IHRvIGEgbmV3IHN0cmluZy4gIFRoaXMgcGFja2FnZS12aXNpYmxlCisgICAgICogbWV0aG9kIGlzIHVzZWQgYnkgb3RoZXIgamF2YS50ZXh0IGNsYXNzZXMgdGhhdCB3YW50IHRvIGF2b2lkIGFsbG9jYXRpbmcKKyAgICAgKiBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0cyBldmVyeSB0aW1lIHRoZWlyIHNldFRleHQgbWV0aG9kCisgICAgICogaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyIAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgIHRoaXMuYmVnaW4gPSAwOworICAgICAgICB0aGlzLmVuZCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIHRoaXMucG9zID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmZpcnN0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2ZpcnN0IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBmaXJzdCgpCisgICAgeworICAgICAgICBwb3MgPSBiZWdpbjsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmxhc3QoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjbGFzdCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgbGFzdCgpCisgICAgeworICAgICAgICBpZiAoZW5kICE9IGJlZ2luKSB7CisgICAgICAgICAgICBwb3MgPSBlbmQgLSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcG9zID0gZW5kOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3Iuc2V0SW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3Ijc2V0SW5kZXggCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwKQorICAgIHsKKyAgICBpZiAocCA8IGJlZ2luIHx8IHAgPiBlbmQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgaW5kZXgiKTsKKyAgICB9CisgICAgICAgIHBvcyA9IHA7CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5jdXJyZW50KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2N1cnJlbnQgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKQorICAgIHsKKyAgICAgICAgaWYgKHBvcyA+PSBiZWdpbiAmJiBwb3MgPCBlbmQpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLm5leHQoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjbmV4dCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgeworICAgICAgICBpZiAocG9zIDwgZW5kIC0gMSkgeworICAgICAgICAgICAgcG9zKys7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBvcyA9IGVuZDsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5wcmV2aW91cygpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNwcmV2aW91cyAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKQorICAgIHsKKyAgICAgICAgaWYgKHBvcyA+IGJlZ2luKSB7CisgICAgICAgICAgICBwb3MtLTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0QmVnaW5JbmRleCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBiZWdpbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEVuZEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEVuZEluZGV4IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRJbmRleCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iaiBpcyB0aGUgc2FtZSBhcyB0aGlzCisgICAgICogU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0OyBmYWxzZSBvdGhlcndpc2UuIAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikKKyAgICB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0aGF0ID0gKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSBvYmo7CisKKyAgICAgICAgaWYgKGhhc2hDb2RlKCkgIT0gdGhhdC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ZXh0LmVxdWFscyh0aGF0LnRleHQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvcyAhPSB0aGF0LnBvcyB8fCBiZWdpbiAhPSB0aGF0LmJlZ2luIHx8IGVuZCAhPSB0aGF0LmVuZCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGVzIGEgaGFzaGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZSAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGV4dC5oYXNoQ29kZSgpIF4gcG9zIF4gYmVnaW4gXiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzIAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBvdGhlcgorICAgICAgICAgICAgPSAoU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworfQorLy8vQ0xPVkVSOk9OCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdNYXRjaGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdNYXRjaGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWVmY2M0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ01hdGNoZXIuamF2YQpAQCAtMCwwICsxLDI4OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQW4gb2JqZWN0IHRoYXQgbWF0Y2hlcyBhIGZpeGVkIGlucHV0IHN0cmluZywgaW1wbGVtZW50aW5nIHRoZQorICogVW5pY29kZU1hdGNoZXIgQVBJLiAgVGhpcyBvYmplY3QgYWxzbyBpbXBsZW1lbnRzIHRoZQorICogVW5pY29kZVJlcGxhY2VyIEFQSSwgYWxsb3dpbmcgaXQgdG8gZW1pdCB0aGUgbWF0Y2hlZCB0ZXh0IGFzCisgKiBvdXRwdXQuICBTaW5jZSB0aGUgbWF0Y2ggdGV4dCBtYXkgY29udGFpbiBmbGV4aWJsZSBtYXRjaCBlbGVtZW50cywKKyAqIHN1Y2ggYXMgVW5pY29kZVNldHMsIHRoZSBlbWl0dGVkIHRleHQgaXMgbm90IHRoZSBtYXRjaCBwYXR0ZXJuLCBidXQKKyAqIGluc3RlYWQgYSBzdWJzdHJpbmcgb2YgdGhlIGFjdHVhbCBtYXRjaGVkIHRleHQuICBGb2xsb3dpbmcKKyAqIGNvbnZlbnRpb24sIHRoZSBvdXRwdXQgdGV4dCBpcyB0aGUgbGVmdG1vc3QgbWF0Y2ggc2VlbiB1cCB0byB0aGlzCisgKiBwb2ludC4KKyAqCisgKiBBIFN0cmluZ01hdGNoZXIgbWF5IHJlcHJlc2VudCBhIHNlZ21lbnQsIGluIHdoaWNoIGNhc2UgaXQgaGFzIGEKKyAqIHBvc2l0aXZlIHNlZ21lbnQgbnVtYmVyLiAgVGhpcyBhZmZlY3RzIGhvdyB0aGUgbWF0Y2hlciBjb252ZXJ0cworICogaXRzZWxmIHRvIGEgcGF0dGVybiBidXQgZG9lcyBub3Qgb3RoZXJ3aXNlIGFmZmVjdCBpdHMgZnVuY3Rpb24uCisgKgorICogQSBTdHJpbmdNYXRjaGVyIHRoYXQgaXMgbm90IGEgc2VnbWVudCBzaG91bGQgbm90IGJlIHVzZWQgYXMgYQorICogVW5pY29kZVJlcGxhY2VyLgorICovCitjbGFzcyBTdHJpbmdNYXRjaGVyIGltcGxlbWVudHMgVW5pY29kZU1hdGNoZXIsIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGV4dCB0byBiZSBtYXRjaGVkLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBTdGFydCBvZmZzZXQsIGluIHRoZSBtYXRjaCB0ZXh0LCBvZiB0aGUgPGVtPnJpZ2h0bW9zdDwvZW0+CisgICAgICogbWF0Y2guCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWF0Y2hTdGFydDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMaW1pdCBvZmZzZXQsIGluIHRoZSBtYXRjaCB0ZXh0LCBvZiB0aGUgPGVtPnJpZ2h0bW9zdDwvZW0+CisgICAgICogbWF0Y2guCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWF0Y2hMaW1pdDsKKworICAgIC8qKgorICAgICAqIFRoZSBzZWdtZW50IG51bWJlciwgMS1iYXNlZCwgb3IgMCBpZiBub3QgYSBzZWdtZW50LgorICAgICAqLworICAgIHByaXZhdGUgaW50IHNlZ21lbnROdW1iZXI7CisKKyAgICAvKioKKyAgICAgKiBDb250ZXh0IG9iamVjdCB0aGF0IG1hcHMgc3RhbmQtaW5zIHRvIG1hdGNoZXIgYW5kIHJlcGxhY2VyCisgICAgICogb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGhlU3RyaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQsIHBvc3NpYmx5IGNvbnRhaW5pbmcKKyAgICAgKiBzdGFuZC1pbnMgdGhhdCByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuCisgICAgICogQHBhcmFtIHNlZ21lbnROdW0gdGhlIHNlZ21lbnQgbnVtYmVyIGZyb20gMS4ubiwgb3IgMCBpZiB0aGlzIGlzCisgICAgICogbm90IGEgc2VnbWVudC4KKyAgICAgKiBAcGFyYW0gdGhlRGF0YSBjb250ZXh0IG9iamVjdCBtYXBwaW5nIHN0YW5kLWlucyB0bworICAgICAqIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ01hdGNoZXIoU3RyaW5nIHRoZVN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VnbWVudE51bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisgICAgICAgIHBhdHRlcm4gPSB0aGVTdHJpbmc7CisgICAgICAgIG1hdGNoU3RhcnQgPSBtYXRjaExpbWl0ID0gLTE7CisgICAgICAgIHNlZ21lbnROdW1iZXIgPSBzZWdtZW50TnVtOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHRoZSBnaXZlbgorICAgICAqIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIEBwYXJhbSB0aGVTdHJpbmcgdGhlIHBhdHRlcm4gdG8gYmUgbWF0Y2hlZCwgcG9zc2libHkgY29udGFpbmluZworICAgICAqIHN0YW5kLWlucyB0aGF0IHJlcHJlc2VudCBuZXN0ZWQgVW5pY29kZU1hdGNoZXIgb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZVN0cmluZyB0byBiZSBtYXRjaGVkCisgICAgICogQHBhcmFtIGxpbWl0IGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGVTdHJpbmcgdG8gYmUKKyAgICAgKiBtYXRjaGVkLgorICAgICAqIEBwYXJhbSBzZWdtZW50TnVtIHRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4sIG9yIDAgaWYgdGhpcyBpcworICAgICAqIG5vdCBhIHNlZ21lbnQuCisgICAgICogQHBhcmFtIHRoZURhdGEgY29udGV4dCBvYmplY3QgbWFwcGluZyBzdGFuZC1pbnMgdG8KKyAgICAgKiBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdNYXRjaGVyKFN0cmluZyB0aGVTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VnbWVudE51bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgdGhpcyh0aGVTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCksIHNlZ21lbnROdW0sIHRoZURhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBVbmljb2RlTWF0Y2hlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBOb3RlICgxKTogV2UgcHJvY2VzcyB0ZXh0IGluIDE2LWJpdCBjb2RlIHVuaXRzLCByYXRoZXIgdGhhbgorICAgICAgICAvLyAzMi1iaXQgY29kZSBwb2ludHMuICBUaGlzIHdvcmtzIGJlY2F1c2Ugc3RhbmQtaW5zIGFyZQorICAgICAgICAvLyBhbHdheXMgaW4gdGhlIEJNUCBhbmQgYmVjYXVzZSB3ZSBhcmUgZG9pbmcgYSBsaXRlcmFsIG1hdGNoCisgICAgICAgIC8vIG9wZXJhdGlvbiwgd2hpY2ggY2FuIGJlIGRvbmUgMTYtYml0cyBhdCBhIHRpbWUuCisgICAgICAgIGludCBpOworICAgICAgICBpbnRbXSBjdXJzb3IgPSBuZXcgaW50W10geyBvZmZzZXRbMF0gfTsKKyAgICAgICAgaWYgKGxpbWl0IDwgY3Vyc29yWzBdKSB7CisgICAgICAgICAgICAvLyBNYXRjaCBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgICAgICAgIGZvciAoaT1wYXR0ZXJuLmxlbmd0aCgpLTE7IGk+PTA7IC0taSkgeworICAgICAgICAgICAgICAgIGNoYXIga2V5Q2hhciA9IHBhdHRlcm4uY2hhckF0KGkpOyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgc3VibSA9IGRhdGEubG9va3VwTWF0Y2hlcihrZXlDaGFyKTsKKyAgICAgICAgICAgICAgICBpZiAoc3VibSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JbMF0gPiBsaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICAga2V5Q2hhciA9PSB0ZXh0LmNoYXJBdChjdXJzb3JbMF0pKSB7IC8vIE9LOyBzZWUgbm90ZSAoMSkgYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY3Vyc29yWzBdOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVfTUlTTUFUQ0g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgbSA9CisgICAgICAgICAgICAgICAgICAgICAgICBzdWJtLm1hdGNoZXModGV4dCwgY3Vyc29yLCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgICAgICAgICBpZiAobSAhPSBVX01BVENIKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgbWF0Y2ggcG9zaXRpb24sIGJ1dCBhZGp1c3QgZm9yIGEgbm9ybWFsCisgICAgICAgICAgICAvLyBmb3J3YXJkIHN0YXJ0LCBsaW1pdCwgYW5kIG9ubHkgaWYgYSBwcmlvciBtYXRjaCBkb2VzIG5vdAorICAgICAgICAgICAgLy8gZXhpc3QgLS0gd2Ugd2FudCB0aGUgcmlnaHRtb3N0IG1hdGNoLgorICAgICAgICAgICAgaWYgKG1hdGNoU3RhcnQgPCAwKSB7CisgICAgICAgICAgICAgICAgbWF0Y2hTdGFydCA9IGN1cnNvclswXSsxOworICAgICAgICAgICAgICAgIG1hdGNoTGltaXQgPSBvZmZzZXRbMF0rMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBjdXJzb3JbMF0gPT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgY29udGV4dCBsaW1pdCB3aXRob3V0IGEgbWlzbWF0Y2ggYW5kCisgICAgICAgICAgICAgICAgICAgIC8vIHdpdGhvdXQgY29tcGxldGluZyBvdXIgbWF0Y2guCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoYXIga2V5Q2hhciA9IHBhdHRlcm4uY2hhckF0KGkpOyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgc3VibSA9IGRhdGEubG9va3VwTWF0Y2hlcihrZXlDaGFyKTsKKyAgICAgICAgICAgICAgICBpZiAoc3VibSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IG5lZWQgdGhlIGN1cnNvciA8IGxpbWl0IGNoZWNrIGlmCisgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIGlzIHRydWUgKGJlY2F1c2UgaXQncyBkb25lIGFib3ZlKTsgZG8gbmVlZAorICAgICAgICAgICAgICAgICAgICAvLyBpdCBvdGhlcndpc2UuCisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JbMF0gPCBsaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICAga2V5Q2hhciA9PSB0ZXh0LmNoYXJBdChjdXJzb3JbMF0pKSB7IC8vIE9LOyBzZWUgbm90ZSAoMSkgYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICsrY3Vyc29yWzBdOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVfTUlTTUFUQ0g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgbSA9CisgICAgICAgICAgICAgICAgICAgICAgICBzdWJtLm1hdGNoZXModGV4dCwgY3Vyc29yLCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgICAgICAgICBpZiAobSAhPSBVX01BVENIKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgbWF0Y2ggcG9zaXRpb24KKyAgICAgICAgICAgIG1hdGNoU3RhcnQgPSBvZmZzZXRbMF07CisgICAgICAgICAgICBtYXRjaExpbWl0ID0gY3Vyc29yWzBdOworICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0WzBdID0gY3Vyc29yWzBdOworICAgICAgICByZXR1cm4gVV9NQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKHNlZ21lbnROdW1iZXIgPiAwKSB7IC8vIGkuZS4sIGlmIHRoaXMgaXMgYSBzZWdtZW50CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcoJyk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBrZXlDaGFyID0gcGF0dGVybi5jaGFyQXQoaSk7IC8vIE9LOyBzZWUgbm90ZSAoMSkgYWJvdmUKKyAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocmVzdWx0LCBrZXlDaGFyLCBmYWxzZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocmVzdWx0LCBtLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2VnbWVudE51bWJlciA+IDApIHsgLy8gaS5lLiwgaWYgdGhpcyBpcyBhIHNlZ21lbnQKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICAgICAgfQorICAgICAgICAvLyBGbHVzaCBxdW90ZUJ1ZiBvdXQgdG8gcmVzdWx0CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICBpZiAocGF0dGVybi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChwYXR0ZXJuLCAwKTsKKyAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9IGRhdGEubG9va3VwTWF0Y2hlcihjKTsKKyAgICAgICAgcmV0dXJuIChtID09IG51bGwpID8gKChjICYgMHhGRikgPT0gdikgOiBtLm1hdGNoZXNJbmRleFZhbHVlKHYpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGVNYXRjaGVyIEFQSS4gIFVuaW9uIHRoZSBzZXQgb2YgYWxsCisgICAgICogY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtYXRjaGVkIGJ5IHRoaXMgb2JqZWN0IGludG8gdGhlIGdpdmVuCisgICAgICogc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBzb3VyY2UgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZE1hdGNoU2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgaW50IGNoOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgaSk7CisgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtYXRjaGVyID0gZGF0YS5sb29rdXBNYXRjaGVyKGNoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0b1VuaW9uVG8uYWRkKGNoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWF0Y2hlci5hZGRNYXRjaFNldFRvKHRvVW5pb25Ubyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIGludCByZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJzb3IpIHsKKworICAgICAgICBpbnQgb3V0TGVuID0gMDsKKworICAgICAgICAvLyBDb3B5IHNlZ21lbnQgd2l0aCBvdXQtb2YtYmFuZCBkYXRhCisgICAgICAgIGludCBkZXN0ID0gbGltaXQ7CisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBubyBtYXRjaCwgdGhhdCBtZWFucyB0aGF0IGEgcXVhbnRpZmllcgorICAgICAgICAvLyBtYXRjaGVkIHplcm8tbGVuZ3RoLiAgRS5nLiwgeCAoYSkqIHkgbWF0Y2hlZCAieHkiLgorICAgICAgICBpZiAobWF0Y2hTdGFydCA+PSAwKSB7CisgICAgICAgICAgICBpZiAobWF0Y2hTdGFydCAhPSBtYXRjaExpbWl0KSB7CisgICAgICAgICAgICAgICAgdGV4dC5jb3B5KG1hdGNoU3RhcnQsIG1hdGNoTGltaXQsIGRlc3QpOworICAgICAgICAgICAgICAgIG91dExlbiA9IG1hdGNoTGltaXQgLSBtYXRjaFN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgIiIpOyAvLyBkZWxldGUgb3JpZ2luYWwgdGV4dAorCisgICAgICAgIHJldHVybiBvdXRMZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SZXBsYWNlclBhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAvLyBhc3NlcnQoc2VnbWVudE51bWJlciA+IDApOworICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZSA9IG5ldyBTdHJpbmdCdWZmZXIoIiQiKTsKKyAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIocnVsZSwgc2VnbWVudE51bWJlciwgMTAsIDEpOworICAgICAgICByZXR1cm4gcnVsZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhbnkgbWF0Y2ggZGF0YS4gIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHBlcmZvcm1pbmcgYQorICAgICAqIHNldCBvZiBtYXRjaGVzIHdpdGggdGhpcyBzZWdtZW50LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0TWF0Y2goKSB7CisgICAgICAgIG1hdGNoU3RhcnQgPSBtYXRjaExpbWl0ID0gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICAvLyBUaGUgb3V0cHV0IG9mIHRoaXMgcmVwbGFjZXIgdmFyaWVzOyBpdCBpcyB0aGUgc291cmNlIHRleHQgYmV0d2VlbgorICAgICAgICAvLyBtYXRjaFN0YXJ0IGFuZCBtYXRjaExpbWl0LiAgU2luY2UgdGhpcyB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZQorICAgICAgICAvLyBpbnB1dCB0ZXh0LCB3ZSBjYW4ndCBjb21wdXRlIGl0IGhlcmUuICBXZSBjYW4gZWl0aGVyIGRvIG5vdGhpbmcKKyAgICAgICAgLy8gb3Igd2UgY2FuIGFkZCBBTEwgY2hhcmFjdGVycyB0byB0aGUgc2V0LiAgSXQncyBwcm9iYWJseSBtb3JlIHVzZWZ1bAorICAgICAgICAvLyB0byBkbyBub3RoaW5nLgorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1ByZXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1ByZXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA1M2NjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUHJlcC5qYXZhCkBAIC0wLDAgKzEsNDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuU3RyaW5nUHJlcERhdGFSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQmlEaVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb247CisKKy8qKgorICogU3RyaW5nUHJlcCBBUEkgaW1wbGVtZW50cyB0aGUgU3RpbmdQcmVwIGZyYW1ld29yayBhcyBkZXNjcmliZWQgYnkgCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNDU0LnR4dCI+UkZDIDM0NTQ8L2E+LgorICogU3RyaW5nUHJlcCBwcmVwYXJlcyBVbmljb2RlIHN0cmluZ3MgZm9yIHVzZSBpbiBuZXR3b3JrIHByb3RvY29scy4KKyAqIFByb2ZpbGVzIG9mIFN0aW5nUHJlcCBhcmUgc2V0IG9mIHJ1bGVzIGFuZCBkYXRhIGFjY29yZGluZyB0byB3aGljaCB0aGUKKyAqIFVuaWNvZGUgU3RyaW5ncyBhcmUgcHJlcGFyZWQuIEVhY2ggcHJvZmlsZXMgY29udGFpbnMgdGFibGVzIHdoaWNoIGRlc2NyaWJlCisgKiBob3cgYSBjb2RlIHBvaW50IHNob3VsZCBiZSB0cmVhdGVkLiBUaGUgdGFibGVzIGFyZSBicm9hZGx5IGNsYXNzaWVkIGludG8KKyAqIDx1bD4KKyAqICAgICA8bGk+IFVuYXNzaWduZWQgVGFibGU6IENvbnRhaW5zIGNvZGUgcG9pbnRzIHRoYXQgYXJlIHVuYXNzaWduZWQgCisgKiAgICAgICAgICBpbiB0aGUgVW5pY29kZSBWZXJzaW9uIHN1cHBvcnRlZCBieSBTdHJpbmdQcmVwLiBDdXJyZW50bHkgCisgKiAgICAgICAgICBSRkMgMzQ1NCBzdXBwb3J0cyBVbmljb2RlIDMuMi4gPC9saT4KKyAqICAgICA8bGk+IFByb2hpYml0ZWQgVGFibGU6IENvbnRhaW5zIGNvZGUgcG9pbnRzIHRoYXQgYXJlIHByb2hpYnRlZCBmcm9tCisgKiAgICAgICAgICB0aGUgb3V0cHV0IG9mIHRoZSBTdHJpbmdQcmVwIHByb2Nlc3NpbmcgZnVuY3Rpb24uIDwvbGk+CisgKiAgICAgPGxpPiBNYXBwaW5nIFRhYmxlOiBDb250YWlucyBjb2RlIHBvbnRzIHRoYXQgYXJlIGRlbGV0ZWQgZnJvbSB0aGUgb3V0cHV0IG9yIGNhc2UgbWFwcGVkLiA8L2xpPgorICogPC91bD4KKyAqIAorICogVGhlIHByb2NlZHVyZSBmb3IgcHJlcGFyaW5nIFVuaWNvZGUgc3RyaW5nczoKKyAqIDxvbD4KKyAqICAgICAgPGxpPiBNYXA6IEZvciBlYWNoIGNoYXJhY3RlciBpbiB0aGUgaW5wdXQsIGNoZWNrIGlmIGl0IGhhcyBhIG1hcHBpbmcKKyAqICAgICAgICAgICBhbmQsIGlmIHNvLCByZXBsYWNlIGl0IHdpdGggaXRzIG1hcHBpbmcuIDwvbGk+CisgKiAgICAgIDxsaT4gTm9ybWFsaXplOiBQb3NzaWJseSBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiBzdGVwIDEgdXNpbmcgVW5pY29kZQorICogICAgICAgICAgIG5vcm1hbGl6YXRpb24uIDwvbGk+CisgKiAgICAgIDxsaT4gUHJvaGliaXQ6IENoZWNrIGZvciBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgYWxsb3dlZCBpbiB0aGUKKyAqICAgICAgICAgICBvdXRwdXQuICBJZiBhbnkgYXJlIGZvdW5kLCByZXR1cm4gYW4gZXJyb3IuPC9saT4KKyAqICAgICAgPGxpPiBDaGVjayBiaWRpOiBQb3NzaWJseSBjaGVjayBmb3IgcmlnaHQtdG8tbGVmdCBjaGFyYWN0ZXJzLCBhbmQgaWYKKyAqICAgICAgICAgICBhbnkgYXJlIGZvdW5kLCBtYWtlIHN1cmUgdGhhdCB0aGUgd2hvbGUgc3RyaW5nIHNhdGlzZmllcyB0aGUKKyAqICAgICAgICAgICByZXF1aXJlbWVudHMgZm9yIGJpZGlyZWN0aW9uYWwgc3RyaW5ncy4gIElmIHRoZSBzdHJpbmcgZG9lcyBub3QKKyAqICAgICAgICAgICBzYXRpc2Z5IHRoZSByZXF1aXJlbWVudHMgZm9yIGJpZGlyZWN0aW9uYWwgc3RyaW5ncywgcmV0dXJuIGFuCisgKiAgICAgICAgICAgZXJyb3IuICA8L2xpPgorICogPC9vbD4KKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nUHJlcCB7CisgICAgLyoqIAorICAgICAqIE9wdGlvbiB0byBwcm9oaWJpdCBwcm9jZXNzaW5nIG9mIHVuYXNzaWduZWQgY29kZSBwb2ludHMgaW4gdGhlIGlucHV0CisgICAgICogCisgICAgICogQHNlZSAgICNwcmVwYXJlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCA9IDB4MDAwMDsKKworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gYWxsb3cgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqIAorICAgICAqIEBzZWUgICAjcHJlcGFyZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMTE9XX1VOQVNTSUdORUQgPSAweDAwMDE7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOQVNTSUdORUQgICAgICAgID0gMHgwMDAwOyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFQICAgICAgICAgICAgICAgPSAweDAwMDE7IAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQUk9ISUJJVEVEICAgICAgICA9IDB4MDAwMjsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTEVURSAgICAgICAgICAgID0gMHgwMDAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUWVBFX0xJTUlUICAgICAgICA9IDB4MDAwNDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9STUFMSVpBVElPTl9PTiAgPSAweDAwMDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIRUNLX0JJRElfT04gICAgID0gMHgwMDAyOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUWVBFX1RIUkVTSE9MRCAgICAgICA9IDB4RkZGMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX1ZBTFVFICAgICAgPSAweDNGQkY7ICAgLyoxNjEzOSovIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfSU5ERVhfVE9QX0xFTkdUSCA9IDB4MDAwMzsKKyAgICAKKyAgICAvKiBpbmRleGVzW10gdmFsdWUgbmFtZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVFJJRV9TSVpFICAgICAgICAgICAgICAgICAgPSAgMDsgLyogbnVtYmVyIG9mIGJ5dGVzIGluIG5vcm1hbGl6YXRpb24gdHJpZSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NQVBQSU5HX0RBVEFfU0laRSAgICAgICAgICA9ICAxOyAvKiBUaGUgYXJyYXkgdGhhdCBjb250YWlucyB0aGUgbWFwcGluZyAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PUk1fQ09SUkVDVE5TX0xBU1RfVU5JX1ZFUlNJT04gID0gIDI7IC8qIFRoZSBpbmRleCBvZiBVbmljb2RlIHZlcnNpb24gb2YgbGFzdCBlbnRyeSBpbiBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0ICovIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPTkVfVUNIQVJfTUFQUElOR19JTkRFWF9TVEFSVCAgICA9ICAzOyAvKiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgMSBVQ2hhciBtYXBwaW5nIGluZGV4IGluIHRoZSBtYXBwaW5nIGRhdGEgYXJyYXkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFdPX1VDSEFSU19NQVBQSU5HX0lOREVYX1NUQVJUICAgPSAgNDsgLyogVGhlIHN0YXJ0aW5nIGluZGV4IG9mIDIgVUNoYXJzIG1hcHBpbmcgaW5kZXggaW4gdGhlIG1hcHBpbmcgZGF0YSBhcnJheSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUSFJFRV9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVCA9ICA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGT1VSX1VDSEFSU19NQVBQSU5HX0lOREVYX1NUQVJUICA9ICA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPUFRJT05TICAgICAgICAgICAgICAgICAgICAgICAgICA9ICA3OyAvKiBCaXQgc2V0IG9mIG9wdGlvbnMgdG8gdHVybiBvbiBpbiB0aGUgcHJvZmlsZSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFWF9UT1AgICAgICAgICAgICAgICAgICAgICAgICA9IDE2OyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hhbmdpbmcgdGhpcyByZXF1aXJlcyBhIG5ldyBmb3JtYXRWZXJzaW9uICovCisgICAKKyAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRSA9IDI1MDAwOworICAgIAorICAgIC8vIENoYXJUcmllIGltcGxtZW50YXRpb24gZm9yIHJlYWRpbmcgdGhlIHRyaWUgZGF0YQorICAgIHByaXZhdGUgQ2hhclRyaWUgc3ByZXBUcmllOworICAgIC8vIEluZGV4ZXMgcmVhZCBmcm9tIHRoZSBkYXRhIGZpbGUKKyAgICBwcml2YXRlIGludFtdIGluZGV4ZXM7CisgICAgLy8gbWFwcGluZyBkYXRhIHJlYWQgZnJvbSB0aGUgZGF0YSBmaWxlCisgICAgcHJpdmF0ZSBjaGFyW10gbWFwcGluZ0RhdGE7CisgICAgLy8gZm9ybWF0IHZlcnNpb24gb2YgdGhlIGRhdGEgZmlsZQorICAgIHByaXZhdGUgYnl0ZVtdIGZvcm1hdFZlcnNpb247CisgICAgLy8gdGhlIHZlcnNpb24gb2YgVW5pY29kZSBzdXBwb3J0ZWQgYnkgdGhlIGRhdGEgZmlsZQorICAgIHByaXZhdGUgVmVyc2lvbkluZm8gc3ByZXBVbmlWZXI7CisgICAgLy8gdGhlIFVuaWNvZGUgdmVyc2lvbiBvZiBsYXN0IGVudHJ5IGluIHRoZQorICAgIC8vIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQgZmlsZSBpZiBub3JtYWxpemF0aW9uCisgICAgLy8gaXMgdHVybmVkIG9uIAorICAgIHByaXZhdGUgVmVyc2lvbkluZm8gbm9ybUNvcnJWZXI7CisgICAgLy8gT3B0aW9uIHRvIHR1cm4gb24gTm9ybWFsaXphdGlvbgorICAgIHByaXZhdGUgYm9vbGVhbiBkb05GS0M7CisgICAgLy8gT3B0aW9uIHRvIHR1cm4gb24gY2hlY2tpbmcgZm9yIEJpRGkgcnVsZXMKKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tCaURpOworICAgIC8vIGJpZGkgcHJvcGVydGllcworICAgIHByaXZhdGUgVUJpRGlQcm9wcyBiZHA7CisgICAgCisgICAgcHJpdmF0ZSBjaGFyIGdldENvZGVQb2ludFZhbHVlKGludCBjaCl7CisgICAgICAgIHJldHVybiBzcHJlcFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgIH0KKyAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbkluZm8oaW50IGNvbXApeworICAgICAgICBpbnQgbWljcm8gPSBjb21wICYgMHhGRjsKKyAgICAgICAgaW50IG1pbGxpID0oY29tcCA+PiA4KSAgJiAweEZGOworICAgICAgICBpbnQgbWlub3IgPShjb21wID4+IDE2KSAmIDB4RkY7CisgICAgICAgIGludCBtYWpvciA9KGNvbXAgPj4gMjQpICYgMHhGRjsKKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKG1ham9yLG1pbm9yLG1pbGxpLG1pY3JvKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbkluZm8oYnl0ZVtdIHZlcnNpb24peworICAgICAgICBpZih2ZXJzaW9uLmxlbmd0aCAhPSA0KXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgoaW50KXZlcnNpb25bMF0sKGludCkgdmVyc2lvblsxXSwoaW50KSB2ZXJzaW9uWzJdLChpbnQpIHZlcnNpb25bM10pOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGFuIFN0cmluZ1ByZXAgb2JqZWN0IGFmdGVyIHJlYWRpbmcgdGhlIGlucHV0IHN0cmVhbS4KKyAgICAgKiBUaGUgb2JqZWN0IGRvZXMgbm90IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGlucHV0IHN0ZWFtLCBzbyB0aGUgc3RyZWFtIGNhbiBiZQorICAgICAqIGNsb3NlZCBhZnRlciB0aGUgbWV0aG9kIHJldHVybnMuCisgICAgICogCisgICAgICogQHBhcmFtIGlucHV0U3RyZWFtIFRoZSBzdHJlYW0gZm9yIHJlYWRpbmcgdGhlIFN0cmluZ1ByZXAgcHJvZmlsZSBiaW5hcnlTdW4gCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdQcmVwKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb257CisKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0sREFUQV9CVUZGRVJfU0laRSk7CisgIAorICAgICAgICBTdHJpbmdQcmVwRGF0YVJlYWRlciByZWFkZXIgPSBuZXcgU3RyaW5nUHJlcERhdGFSZWFkZXIoYik7CisgICAgICAgIAorICAgICAgICAvLyByZWFkIHRoZSBpbmRleGVzICAgICAgICAgICAgCisgICAgICAgIGluZGV4ZXMgPSByZWFkZXIucmVhZEluZGV4ZXMoSU5ERVhfVE9QKTsKKyAgIAorICAgICAgICBieXRlW10gc3ByZXBCeXRlcyA9IG5ldyBieXRlW2luZGV4ZXNbSU5ERVhfVFJJRV9TSVpFXV07CisgICAKKworICAgICAgICAvL2luZGV4ZXNbSU5ERVhfTUFQUElOR19EQVRBX1NJWkVdIHN0b3JlIHRoZSBzaXplIG9mIG1hcHBpbmdEYXRhIGluIGJ5dGVzICAgICAgICAgICAKKyAgICAgICAgbWFwcGluZ0RhdGEgPSBuZXcgY2hhcltpbmRleGVzW0lOREVYX01BUFBJTkdfREFUQV9TSVpFXS8yXTsgCisgICAgICAgIC8vIGxvYWQgdGhlIHJlc3Qgb2YgdGhlIGRhdGEgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgZGF0YSBtZW1iZXJzCisgICAgICAgIHJlYWRlci5yZWFkKHNwcmVwQnl0ZXMsbWFwcGluZ0RhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3ByZXBUcmllID0gbmV3IENoYXJUcmllKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShzcHJlcEJ5dGVzKSwgbnVsbCk7CisgICAgICAgICAgICAgIAorICAgICAgICAvLyBnZXQgdGhlIGRhdGEgZm9ybWF0IHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9ybWF0VmVyc2lvbiA9IHJlYWRlci5nZXREYXRhRm9ybWF0VmVyc2lvbigpOworIAorICAgICAgICAvLyBnZXQgdGhlIG9wdGlvbnMKKyAgICAgICAgZG9ORktDICAgICAgICAgICAgPSAoKGluZGV4ZXNbT1BUSU9OU10gJiBOT1JNQUxJWkFUSU9OX09OKSA+IDApOworICAgICAgICBjaGVja0JpRGkgICAgICAgICA9ICgoaW5kZXhlc1tPUFRJT05TXSAmIENIRUNLX0JJRElfT04pID4gMCk7CisgICAgICAgIHNwcmVwVW5pVmVyICAgPSBnZXRWZXJzaW9uSW5mbyhyZWFkZXIuZ2V0VW5pY29kZVZlcnNpb24oKSk7CisgICAgICAgIG5vcm1Db3JyVmVyICAgPSBnZXRWZXJzaW9uSW5mbyhpbmRleGVzW05PUk1fQ09SUkVDVE5TX0xBU1RfVU5JX1ZFUlNJT05dKTsKKyAgICAgICAgVmVyc2lvbkluZm8gbm9ybVVuaVZlciA9IE5vcm1hbGl6ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYobm9ybVVuaVZlci5jb21wYXJlVG8oc3ByZXBVbmlWZXIpIDwgMCAmJiAvKiB0aGUgVW5pY29kZSB2ZXJzaW9uIG9mIFNQUkVQIGZpbGUgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIFVuaWNvZGUgVmVzaW9uIG9mIHRoZSBub3JtYWxpemF0aW9uIGRhdGEgKi8KKyAgICAgICAgICAgbm9ybVVuaVZlci5jb21wYXJlVG8obm9ybUNvcnJWZXIpIDwgMCAmJiAvKiB0aGUgVW5pY29kZSB2ZXJzaW9uIG9mIHRoZSBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0IGZpbGUgc2hvdWxkIGJlIGxlc3MgdGhhbiB0aGUgVW5pY29kZSBWZXNpb24gb2YgdGhlIG5vcm1hbGl6YXRpb24gZGF0YSAqLworICAgICAgICAgICAoKGluZGV4ZXNbT1BUSU9OU10gJiBOT1JNQUxJWkFUSU9OX09OKSA+IDApIC8qIG5vcm1hbGl6YXRpb24gdHVybmVkIG9uKi8KKyAgICAgICAgICAgKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiTm9ybWFsaXphdGlvbiBDb3JyZWN0aW9uIHZlcnNpb24gbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIGlmKGNoZWNrQmlEaSkgeworICAgICAgICAgICAgYmRwPVVCaURpUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0KKyAgICB9CisgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVmFsdWVzeworICAgICAgICBib29sZWFuIGlzSW5kZXg7CisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgaW50IHR5cGU7CisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCl7CisgICAgICAgICAgICBpc0luZGV4ID0gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgICAgICB0eXBlID0gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGdldFZhbHVlcyhjaGFyIHRyaWVXb3JkLFZhbHVlcyB2YWx1ZXMpeworICAgICAgICB2YWx1ZXMucmVzZXQoKTsKKyAgICAgICAgaWYodHJpZVdvcmQgPT0gMCl7CisgICAgICAgICAgICAvKiAKKyAgICAgICAgICAgICAqIEluaXRpYWwgdmFsdWUgc3RvcmVkIGluIHRoZSBtYXBwaW5nIHRhYmxlIAorICAgICAgICAgICAgICoganVzdCByZXR1cm4gVFlQRV9MSU1JVCAuLiBzbyB0aGF0CisgICAgICAgICAgICAgKiB0aGUgc291cmNlIGNvZGVwb2ludCBpcyBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHZhbHVlcy50eXBlID0gVFlQRV9MSU1JVDsKKyAgICAgICAgfWVsc2UgaWYodHJpZVdvcmQgPj0gVFlQRV9USFJFU0hPTEQpeworICAgICAgICAgICAgdmFsdWVzLnR5cGUgPSAodHJpZVdvcmQgLSBUWVBFX1RIUkVTSE9MRCk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLyogZ2V0IHRoZSB0eXBlICovCisgICAgICAgICAgICB2YWx1ZXMudHlwZSA9IE1BUDsKKyAgICAgICAgICAgIC8qIGFzY2VydGFpbiBpZiB0aGUgdmFsdWUgaXMgaW5kZXggb3IgZGVsdGEgKi8KKyAgICAgICAgICAgIGlmKCh0cmllV29yZCAmIDB4MDIpPjApeworICAgICAgICAgICAgICAgIHZhbHVlcy5pc0luZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudmFsdWUgPSB0cmllV29yZCAgPj4gMjsgLy9tYXNrIG9mZiB0aGUgbG93ZXIgMiBiaXRzIGFuZCBzaGlmdAorCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuaXNJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHZhbHVlcy52YWx1ZSA9ICgoaW50KSh0cmllV29yZDw8MTYpKT4+MTY7CisgICAgICAgICAgICAgICAgdmFsdWVzLnZhbHVlID0gICh2YWx1ZXMudmFsdWUgPj4gMik7CisKKyAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgIGlmKCh0cmllV29yZD4+MikgPT0gTUFYX0lOREVYX1ZBTFVFKXsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudHlwZSA9IERFTEVURTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuaXNJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHZhbHVlcy52YWx1ZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbWFwKCBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciwgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAKKyAgICAgICAgVmFsdWVzIHZhbCA9IG5ldyBWYWx1ZXMoKTsKKyAgICAgICAgY2hhciByZXN1bHQgPSAwOworICAgICAgICBpbnQgY2ggID0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBib29sZWFuIGFsbG93VW5hc3NpZ25lZCA9ICgob3B0aW9ucyAmIEFMTE9XX1VOQVNTSUdORUQpPjApOworICAgICAgICAKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgICAgICAgICAgZ2V0VmFsdWVzKHJlc3VsdCx2YWwpOworCisgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgc291cmNlIGNvZGVwb2ludCBpcyB1bmFzc2lnbmVkCisgICAgICAgICAgICBpZih2YWwudHlwZSA9PSBVTkFTU0lHTkVEICYmIGFsbG93VW5hc3NpZ25lZCA9PSBmYWxzZSl7CisgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkFuIHVuYXNzaWduZWQgY29kZSBwb2ludCB3YXMgZm91bmQgaW4gdGhlIGlucHV0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlci5nZXRUZXh0KCksaXRlci5nZXRJbmRleCgpKTsgICAgCisgICAgICAgICAgICB9ZWxzZSBpZigodmFsLnR5cGUgPT0gTUFQKSl7CisgICAgICAgICAgICAgICAgaW50IGluZGV4LCBsZW5ndGg7CisKKyAgICAgICAgICAgICAgICBpZih2YWwuaXNJbmRleCl7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gdmFsLnZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZihpbmRleCA+PSBpbmRleGVzW09ORV9VQ0hBUl9NQVBQSU5HX0lOREVYX1NUQVJUXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA8IGluZGV4ZXNbVFdPX1VDSEFSU19NQVBQSU5HX0lOREVYX1NUQVJUXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxOworICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihpbmRleCA+PSBpbmRleGVzW1RXT19VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBpbmRleGVzW1RIUkVFX1VDSEFSU19NQVBQSU5HX0lOREVYX1NUQVJUXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAyOworICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihpbmRleCA+PSBpbmRleGVzW1RIUkVFX1VDSEFSU19NQVBQSU5HX0lOREVYX1NUQVJUXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA8IGluZGV4ZXNbRk9VUl9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0peworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSBtYXBwaW5nRGF0YVtpbmRleCsrXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKiBjb3B5IG1hcHBpbmcgdG8gZGVzdGluYXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQobWFwcGluZ0RhdGEsaW5kZXgsbGVuZ3RoKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGNoIC09IHZhbC52YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSBpZih2YWwudHlwZSA9PSBERUxFVEUpeworICAgICAgICAgICAgICAgIC8vIGp1c3QgY29uc3VtZSB0aGUgY29kZXBvaW50IGFuZCBjb250aW5lCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL2NvcHkgdGhlIHNvdXJjZSBpbnRvIGRlc3RpbmF0aW9uCisgICAgICAgICAgICBVVEYxNi5hcHBlbmQoZGVzdCxjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKworCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbm9ybWFsaXplKFN0cmluZ0J1ZmZlciBzcmMpeworICAgICAgICAvKgorICAgICAgICAgKiBPcHRpb24gVU5PUk1fQkVGT1JFX1BSSV8yOToKKyAgICAgICAgICoKKyAgICAgICAgICogSUROQSBhcyBpbnRlcnByZXRlZCBieSBJRVRGIG1lbWJlcnMgKHNlZSB1bmljb2RlIG1haWxpbmcgbGlzdCAyMDA0SDEpCisgICAgICAgICAqIHJlcXVpcmVzIHN0cmljdCBhZGhlcmVuY2UgdG8gVW5pY29kZSAzLjIgbm9ybWFsaXphdGlvbiwKKyAgICAgICAgICogaW5jbHVkaW5nIGJ1Z2d5IGNvbXBvc2l0aW9uIGZyb20gYmVmb3JlIGZpeGluZyBQdWJsaWMgUmV2aWV3IElzc3VlICMyOS4KKyAgICAgICAgICogTm90ZSB0aGF0IHRoaXMgcmVzdWx0cyBpbiBzb21lIHZhbGlkIGJ1dCBub25zZW5zaWNhbCB0ZXh0IHRvIGJlCisgICAgICAgICAqIGVpdGhlciBjb3JydXB0ZWQgb3IgcmVqZWN0ZWQsIGRlcGVuZGluZyBvbiB0aGUgdGV4dC4KKyAgICAgICAgICogU2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmV2aWV3L3Jlc29sdmVkLXByaS5odG1sI3ByaTI5CisgICAgICAgICAqIFNlZSB1bm9ybS5jcHAgYW5kIGNub3JtdHN0LmMKKyAgICAgICAgICovCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKAorICAgICAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUoCisgICAgICAgICAgICAgICAgc3JjLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLAorICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuVU5JQ09ERV8zXzJ8Tm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSkpOworICAgIH0KKyAgICAvKgorICAgIGJvb2xlYW4gaXNMYWJlbFNlcGFyYXRvcihpbnQgY2gpeworICAgICAgICBpbnQgcmVzdWx0ID0gZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgICAgICBpZiggKHJlc3VsdCAmIDB4MDcpICA9PSBMQUJFTF9TRVBBUkFUT1IpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAqLworICAgICAvKgorICAgICAgIDEpIE1hcCAtLSBGb3IgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCBjaGVjayBpZiBpdCBoYXMgYSBtYXBwaW5nCisgICAgICAgICAgYW5kLCBpZiBzbywgcmVwbGFjZSBpdCB3aXRoIGl0cyBtYXBwaW5nLiAgCisKKyAgICAgICAyKSBOb3JtYWxpemUgLS0gUG9zc2libHkgbm9ybWFsaXplIHRoZSByZXN1bHQgb2Ygc3RlcCAxIHVzaW5nIFVuaWNvZGUKKyAgICAgICAgICBub3JtYWxpemF0aW9uLiAKKworICAgICAgIDMpIFByb2hpYml0IC0tIENoZWNrIGZvciBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgYWxsb3dlZCBpbiB0aGUKKyAgICAgICAgICBvdXRwdXQuICBJZiBhbnkgYXJlIGZvdW5kLCByZXR1cm4gYW4gZXJyb3IuICAKKworICAgICAgIDQpIENoZWNrIGJpZGkgLS0gUG9zc2libHkgY2hlY2sgZm9yIHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycywgYW5kIGlmCisgICAgICAgICAgYW55IGFyZSBmb3VuZCwgbWFrZSBzdXJlIHRoYXQgdGhlIHdob2xlIHN0cmluZyBzYXRpc2ZpZXMgdGhlCisgICAgICAgICAgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MuICBJZiB0aGUgc3RyaW5nIGRvZXMgbm90CisgICAgICAgICAgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MsIHJldHVybiBhbgorICAgICAgICAgIGVycm9yLiAgCisgICAgICAgICAgW1VuaWNvZGUzLjJdIGRlZmluZXMgc2V2ZXJhbCBiaWRpcmVjdGlvbmFsIGNhdGVnb3JpZXM7IGVhY2ggY2hhcmFjdGVyCisgICAgICAgICAgIGhhcyBvbmUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSBhc3NpZ25lZCB0byBpdC4gIEZvciB0aGUgcHVycG9zZXMgb2YKKyAgICAgICAgICAgdGhlIHJlcXVpcmVtZW50cyBiZWxvdywgYW4gIlJhbmRBTENhdCBjaGFyYWN0ZXIiIGlzIGEgY2hhcmFjdGVyIHRoYXQKKyAgICAgICAgICAgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yaWVzICJSIiBvciAiQUwiOyBhbiAiTENhdCBjaGFyYWN0ZXIiCisgICAgICAgICAgIGlzIGEgY2hhcmFjdGVyIHRoYXQgaGFzIFVuaWNvZGUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSAiTCIuICBOb3RlCisKKworICAgICAgICAgICB0aGF0IHRoZXJlIGFyZSBtYW55IGNoYXJhY3RlcnMgd2hpY2ggZmFsbCBpbiBuZWl0aGVyIG9mIHRoZSBhYm92ZQorICAgICAgICAgICBkZWZpbml0aW9uczsgTGF0aW4gZGlnaXRzICg8VSswMDMwPiB0aHJvdWdoIDxVKzAwMzk+KSBhcmUgZXhhbXBsZXMgb2YKKyAgICAgICAgICAgdGhpcyBiZWNhdXNlIHRoZXkgaGF2ZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3J5ICJFTiIuCisKKyAgICAgICAgICAgSW4gYW55IHByb2ZpbGUgdGhhdCBzcGVjaWZpZXMgYmlkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaGFuZGxpbmcsIGFsbAorICAgICAgICAgICB0aHJlZSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBNVVNUIGJlIG1ldDoKKworICAgICAgICAgICAxKSBUaGUgY2hhcmFjdGVycyBpbiBzZWN0aW9uIDUuOCBNVVNUIGJlIHByb2hpYml0ZWQuCisKKyAgICAgICAgICAgMikgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIHRoZSBzdHJpbmcgTVVTVCBOT1QKKyAgICAgICAgICAgICAgY29udGFpbiBhbnkgTENhdCBjaGFyYWN0ZXIuCisKKyAgICAgICAgICAgMykgSWYgYSBzdHJpbmcgY29udGFpbnMgYW55IFJhbmRBTENhdCBjaGFyYWN0ZXIsIGEgUmFuZEFMQ2F0CisgICAgICAgICAgICAgIGNoYXJhY3RlciBNVVNUIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZywgYW5kIGEKKyAgICAgICAgICAgICAgUmFuZEFMQ2F0IGNoYXJhY3RlciBNVVNUIGJlIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nLgorICAgICovCisgICAgLyoqCisgICAgICogUHJlcGFyZSB0aGUgaW5wdXQgYnVmZmVyIGZvciB1c2UgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlIGdpdmVuIHByb2ZpbGUuIFRoaXMgb3BlcmF0aW9uIG1hcHMsIG5vcm1hbGl6ZXMoTkZLQyksCisgICAgICogY2hlY2tzIGZvciBwcm9oaXRlZCBhbmQgQmlEaSBjaGFyYWN0ZXJzIGluIHRoZSBvcmRlciBkZWZpbmVkIGJ5IFJGQyAzNDU0CisgICAgICogZGVwZW5kaW5nIG9uIHRoZSBvcHRpb25zIHNwZWNpZmllZCBpbiB0aGUgcHJvZmlsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgICAgIEEgVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdCBjb250YWluaW5nIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICoKKyAgICAgKiAgLSBTdHJpbmdQcmVwLk5PTkUgICAgICAgICAgICAgICBQcm9oaWJpdCBwcm9jZXNzaW5nIG9mIHVuYXNzaWduZWQgY29kZSBwb2ludHMgaW4gdGhlIGlucHV0CisgICAgICoKKyAgICAgKiAgLSBTdHJpbmdQcmVwLkFMTE9XX1VOQVNTSUdORUQgICBUcmVhdCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgQSBTdHJpbmdCdWZmZXIgY29udGFpbmluZyB0aGUgb3V0cHV0CisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgcHJlcGFyZShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIG1hcCAKKyAgICAgICAgU3RyaW5nQnVmZmVyIG1hcE91dCA9IG1hcChzcmMsb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBub3JtT3V0ID0gbWFwT3V0Oy8vIGluaXRpYWxpemUgCisgICAgICAgIAorICAgICAgICBpZihkb05GS0MpeworICAgICAgICAgICAgLy8gbm9ybWFsaXplIAorICAgICAgICAgICAgbm9ybU91dCA9IG5vcm1hbGl6ZShtYXBPdXQpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNoOworICAgICAgICBjaGFyIHJlc3VsdDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uobm9ybU91dCk7CisgICAgICAgIFZhbHVlcyB2YWwgPSBuZXcgVmFsdWVzKCk7IAorICAgICAgICBpbnQgZGlyZWN0aW9uPVVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQsCisgICAgICAgICAgICBmaXJzdENoYXJEaXI9VUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVDsgICAgCisgICAgICAgIGludCBydGxQb3M9LTEsIGx0clBvcz0tMTsKKyAgICAgICAgYm9vbGVhbiByaWdodFRvTGVmdD1mYWxzZSwgbGVmdFRvUmlnaHQ9ZmFsc2U7CisgICAgICAgICAgIAorICAgICAgICB3aGlsZSgoY2g9aXRlci5uZXh0Q29kZVBvaW50KCkpIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgcmVzdWx0ID0gZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgICAgICAgICAgZ2V0VmFsdWVzKHJlc3VsdCx2YWwpOworCisgICAgICAgICAgICBpZih2YWwudHlwZSA9PSBQUk9ISUJJVEVEICl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiQSBwcm9oaWJpdGVkIGNvZGUgcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SLGl0ZXIuZ2V0VGV4dCgpLHZhbC52YWx1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKGNoZWNrQmlEaSkgeworICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IGJkcC5nZXRDbGFzcyhjaCk7CisgICAgICAgICAgICAgICAgaWYoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQpeworICAgICAgICAgICAgICAgICAgICBmaXJzdENoYXJEaXIgPSBkaXJlY3Rpb247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQpeworICAgICAgICAgICAgICAgICAgICBsZWZ0VG9SaWdodCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGx0clBvcyA9IGl0ZXIuZ2V0SW5kZXgoKS0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIHx8IGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDKXsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRUb0xlZnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBydGxQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICBpZihjaGVja0JpRGkgPT0gdHJ1ZSl7CisgICAgICAgICAgICAvLyBzYXRpc2Z5IDIKKyAgICAgICAgICAgIGlmKCBsZWZ0VG9SaWdodCA9PSB0cnVlICYmIHJpZ2h0VG9MZWZ0ID09IHRydWUpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBydWxlcyBmb3IgQmlEaSBjb2RlIHBvaW50cy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ0bFBvcz5sdHJQb3MpID8gcnRsUG9zIDogbHRyUG9zKTsKKyAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvL3NhdGlzZnkgMworICAgICAgICAgICAgaWYoIHJpZ2h0VG9MZWZ0ID09IHRydWUgJiYgCisgICAgICAgICAgICAgICAgISgoZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBmaXJzdENoYXJEaXIgPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQykgJiYKKyAgICAgICAgICAgICAgICAoZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQykpCisgICAgICAgICAgICAgICl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHJ1bGVzIGZvciBCaURpIGNvZGUgcG9pbnRzLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SLGl0ZXIuZ2V0VGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocnRsUG9zPmx0clBvcykgPyBydGxQb3MgOiBsdHJQb3MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBub3JtT3V0OworCisgICAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNmVlZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uamF2YQpAQCAtMCwwICsxLDIwNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworLyoqCisgKiBFeGNlcHRpb24gdGhhdCBzaWduYWxzIGFuIGVycm9yIGhhcyBvY2N1cnJlZCB3aGlsZSBwYXJzaW5nIHRoZSAKKyAqIGlucHV0IHRvIFN0cmluZ1ByZXAgb3IgSUROQS4gCisgKgorICogQGF1dGhvciBSYW0gVmlzd2FuYWRoYQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXh0ZW5kcyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA3MTYwMjY0ODI3NzAxNjUxMjU1TDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlZBTElEX0NIQVJfRk9VTkQgICAgICA9IDA7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUxMRUdBTF9DSEFSX0ZPVU5EICAgICAgPSAxOworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBST0hJQklURURfRVJST1IgICAgICAgID0gMjsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTkFTU0lHTkVEX0VSUk9SICAgICAgICA9IDM7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hFQ0tfQklESV9FUlJPUiAgICAgICAgPSA0OworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNURDNfQVNDSUlfUlVMRVNfRVJST1IgID0gNTsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQ0VfUFJFRklYX0VSUk9SICAgICAgICA9IDY7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkVSSUZJQ0FUSU9OX0VSUk9SICAgICAgPSA3OworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBQkVMX1RPT19MT05HX0VSUk9SICAgID0gODsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCVUZGRVJfT1ZFUkZMT1dfRVJST1IgICA9IDk7CisgICAgCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWkVST19MRU5HVEhfTEFCRUwgICA9IDEwOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFBhcnNlRXhjZXB0aW9uIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlCisgICAgICogYW5kIGVycm9yIGNvZGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSBBIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gZXJyb3IgICBUaGUgZXJyb3IgdGhhdCBoYXMgb2NjdXJyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLGludCBlcnJvcil7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UsIC0xKTsKKyAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOworICAgICAgICB0aGlzLmxpbmUgPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBQYXJzZUV4Y2VwdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZSBhbmQKKyAgICAgKiBlcnJvciBjb2RlCisgICAgICogCisgICAgICogQHBhcmFtIG1lc3NhZ2UgQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkCisgICAgICogQHBhcmFtIGVycm9yICAgVGhlIGVycm9yIHRoYXQgaGFzIG9jY3VycmVkCisgICAgICogQHBhcmFtIHJ1bGVzICAgVGhlIGlucHV0IHJ1bGVzIHN0cmluZyAKKyAgICAgKiBAcGFyYW0gcG9zICAgICBUaGUgcG9zaXRpb24gb2YgZXJyb3IgaW4gdGhlIHJ1bGVzIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UsaW50IGVycm9yLCBTdHJpbmcgcnVsZXMsIGludCBwb3MpeworICAgICAgICBzdXBlcihtZXNzYWdlLCAtMSk7CisgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgc2V0Q29udGV4dChydWxlcyxwb3MpOyAgCisgICAgICAgIHRoaXMubGluZSA9IDA7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCAgYSBQYXJzZUV4Y2VwdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZSBhbmQgZXJyb3IgY29kZQorICAgICAqIAorICAgICAqIEBwYXJhbSBtZXNzYWdlICAgIEEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBlcnJvciAgICAgIFRoZSBlcnJvciB0aGF0IGhhcyBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBydWxlcyAgICAgIFRoZSBpbnB1dCBydWxlcyBzdHJpbmcgCisgICAgICogQHBhcmFtIHBvcyAgICAgICAgVGhlIHBvc2l0aW9uIG9mIGVycm9yIGluIHRoZSBydWxlcyBzdHJpbmcKKyAgICAgKiBAcGFyYW0gbGluZU51bWJlciBUaGUgbGluZSBudW1iZXIgYXQgd2hpY2ggdGhlIGVycm9yIGhhcyBvY2N1cnJlZC4gCisgICAgICogICAgICAgICAgICAgICAgICAgSWYgdGhlIHBhcnNlIGVuZ2luZSBpcyBub3QgdXNpbmcgdGhpcyBmaWVsZCwgaXQgc2hvdWxkIHNldCBpdCB0byB6ZXJvLiAgT3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgICAgaXQgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBmaWVsZAorICAgICAqICAgICAgICAgICAgICAgICAgIGlzIC0xLiBJdCB3aWxsIGJlIHNldCB0byAwIGlmIHRoZSBjb2RlIHBvcHVsYXRpbmcgdGhpcyBzdHJ1Y3QgaXMgbm90CisgICAgICogICAgICAgICAgICAgICAgICAgdXNpbmcgbGluZSBudW1iZXJzLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UsIGludCBlcnJvciwgU3RyaW5nIHJ1bGVzLCBpbnQgcG9zLCBpbnQgbGluZU51bWJlcil7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UsIC0xKTsKKyAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOworICAgICAgICBzZXRDb250ZXh0KHJ1bGVzLHBvcyk7ICAgCisgICAgICAgIHRoaXMubGluZSA9IGxpbmVOdW1iZXI7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyBQYXJzZUV4Y2VwdGlvbiB0byBhbm90aGVyIGFuZCBldmFsdWF0ZSBpZiB0aGV5IGFyZSBlcXVhbC4KKyAgICAgKiBUaGUgY29tcGFyaXNvbiB3b3JrcyBvbmx5IG9uIHRoZSB0eXBlIG9mIGVycm9yIGFuZCBkb2VzIG5vdCBjb21wYXJlCisgICAgICogdGhlIHJ1bGVzIHN0cmluZ3MsIGlmIGFueSwgZm9yIGVxdWFsaXR5LgorICAgICAqIAorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgZXhjZXB0aW9uIHRoYXQgdGhpcyBvYmplY3Qgc2hvdWxkIGJlIGNvbXBhcmVkIHRvCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2UgaWYgdW5lcXVhbAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpeworICAgICAgICBpZighKG90aGVyIGluc3RhbmNlb2YgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKSl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICgoU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKW90aGVyKS5lcnJvciA9PSB0aGlzLmVycm9yOworICAgICAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgZXJyb3IgaW4gdGhlIHJ1bGVzIHN0cmluZworICAgICAqIAorICAgICAqIEByZXR1cm4gU3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWYuYXBwZW5kKHN1cGVyLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIi4gcHJlQ29udGV4dDogICIpOworICAgICAgICBidWYuYXBwZW5kKHByZUNvbnRleHQpOworICAgICAgICBidWYuYXBwZW5kKCIuIHBvc3RDb250ZXh0OiAiKTsKKyAgICAgICAgYnVmLmFwcGVuZChwb3N0Q29udGV4dCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIlxuIik7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBlcnJvcjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbGluZSBvbiB3aGljaCB0aGUgZXJyb3Igb2NjdXJlZC4gIElmIHRoZSBwYXJzZSBlbmdpbmUKKyAgICAgKiBpcyBub3QgdXNpbmcgdGhpcyBmaWVsZCwgaXQgc2hvdWxkIHNldCBpdCB0byB6ZXJvLiAgT3RoZXJ3aXNlCisgICAgICogaXQgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBmaWVsZAorICAgICAqIGlzIC0xLiBJdCB3aWxsIGJlIHNldCB0byAwIGlmIHRoZSBjb2RlIHBvcHVsYXRpbmcgdGhpcyBzdHJ1Y3QgaXMgbm90CisgICAgICogdXNpbmcgbGluZSBudW1iZXJzLgorICAgICAqIEBzdGFibGUgSUNVIDIuOCAgCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZTsKKworCisgICAgLyoqCisgICAgICogVGV4dHVhbCBjb250ZXh0IGJlZm9yZSB0aGUgZXJyb3IuICBOdWxsLXRlcm1pbmF0ZWQuCisgICAgICogTWF5IGJlIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm90IGltcGxlbWVudGVkIGJ5IHBhcnNlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBwcmVDb250ZXh0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgLyoqCisgICAgICogVGV4dHVhbCBjb250ZXh0IGFmdGVyIHRoZSBlcnJvci4gIE51bGwtdGVybWluYXRlZC4KKyAgICAgKiBNYXkgYmUgdGhlIGVtcHR5IHN0cmluZyBpZiBub3QgaW1wbGVtZW50ZWQgYnkgcGFyc2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOCAgIAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHBvc3RDb250ZXh0ID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEFSU0VfQ09OVEVYVF9MRU4gPSAxNjsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0UHJlQ29udGV4dChTdHJpbmcgc3RyLCBpbnQgcG9zKXsKKyAgICAgICAgc2V0UHJlQ29udGV4dChzdHIudG9DaGFyQXJyYXkoKSxwb3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0UHJlQ29udGV4dChjaGFyW10gc3RyLCBpbnQgcG9zKXsKKyAgICAgICAgaW50IHN0YXJ0ID0gKHBvcyA8PSBQQVJTRV9DT05URVhUX0xFTik/IDAgOiAocG9zIC0gKFBBUlNFX0NPTlRFWFRfTEVOLTEpKTsKKyAgICAgICAgaW50IGxlbiA9IChzdGFydCA8PSBQQVJTRV9DT05URVhUX0xFTik/IHN0YXJ0IDogUEFSU0VfQ09OVEVYVF9MRU47CisgICAgICAgIHByZUNvbnRleHQuYXBwZW5kKHN0cixzdGFydCxsZW4pOworIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0UG9zdENvbnRleHQoU3RyaW5nIHN0ciwgaW50IHBvcyl7CisgICAgICAgIHNldFBvc3RDb250ZXh0KHN0ci50b0NoYXJBcnJheSgpLHBvcyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRQb3N0Q29udGV4dChjaGFyW10gc3RyLCBpbnQgcG9zKXsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworICAgICAgICBpbnQgbGVuICA9IHN0ci5sZW5ndGggLSBzdGFydDsgCisgICAgICAgIHBvc3RDb250ZXh0LmFwcGVuZChzdHIsc3RhcnQsbGVuKTsKKworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0Q29udGV4dChTdHJpbmcgc3RyLGludCBwb3MpeworICAgICAgICBzZXRQcmVDb250ZXh0KHN0cixwb3MpOworICAgICAgICBzZXRQb3N0Q29udGV4dChzdHIscG9zKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdSZXBsYWNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjhhZGU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YQpAQCAtMCwwICsxLDMyOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHJlcGxhY2VyIHRoYXQgcHJvZHVjZXMgc3RhdGljIHRleHQgYXMgaXRzIG91dHB1dC4gIFRoZSB0ZXh0IG1heQorICogY29udGFpbiB0cmFuc2xpdGVyYXRvciBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IG5lc3RlZAorICogVW5pY29kZVJlcGxhY2VyIG9iamVjdHMsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBlbmNvZGUgYSB0cmVlIG9mCisgKiByZXBsYWNlcnMgaW4gYSBTdHJpbmdSZXBsYWNlci4gIEEgU3RyaW5nUmVwbGFjZXIgdGhhdCBjb250YWlucyBzdWNoCisgKiBzdGFuZC1pbnMgaXMgY2FsbGVkIGEgPGVtPmNvbXBsZXg8L2VtPiBTdHJpbmdSZXBsYWNlci4gIEEgY29tcGxleAorICogU3RyaW5nUmVwbGFjZXIgaGFzIGEgc2xvd2VyIHByb2Nlc3NpbmcgbG9vcCB0aGFuIGEgbm9uLWNvbXBsZXggb25lLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBTdHJpbmdSZXBsYWNlciBpbXBsZW1lbnRzIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBPdXRwdXQgdGV4dCwgcG9zc2libHkgY29udGFpbmluZyBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRoYXQKKyAgICAgKiByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVSZXBsYWNlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgb3V0cHV0OworCisgICAgLyoqCisgICAgICogQ3Vyc29yIHBvc2l0aW9uLiAgVmFsdWUgaXMgaWdub3JlZCBpZiBoYXNDdXJzb3IgaXMgZmFsc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY3Vyc29yUG9zOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIG9iamVjdCBvdXRwdXRzIGEgY3Vyc29yIHBvc2l0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBoYXNDdXJzb3I7CisKKyAgICAvKioKKyAgICAgKiBBIGNvbXBsZXggb2JqZWN0IGNvbnRhaW5zIG5lc3RlZCByZXBsYWNlcnMgYW5kIHJlcXVpcmVzIG1vcmUKKyAgICAgKiBjb21wbGV4IHByb2Nlc3NpbmcuICBTdHJpbmdSZXBsYWNlcnMgYXJlIGluaXRpYWxseSBhc3N1bWVkIHRvCisgICAgICogYmUgY29tcGxleC4gIElmIG5vIG5lc3RlZCByZXBsYWNlcnMgYXJlIHNlZW4gZHVyaW5nIHByb2Nlc3NpbmcsCisgICAgICogdGhlbiBpc0NvbXBsZXggaXMgc2V0IHRvIGZhbHNlLCBhbmQgZnV0dXJlIHJlcGxhY2VtZW50cyBhcmUKKyAgICAgKiBzaG9ydCBjaXJjdWl0ZWQgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb21wbGV4OworCisgICAgLyoqCisgICAgICogT2JqZWN0IHRoYXQgdHJhbnNsYXRlcyBzdGFuZC1pbiBjaGFyYWN0ZXJzIGluICdvdXRwdXQnIHRvCisgICAgICogVW5pY29kZVJlcGxhY2VyIG9iamVjdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTdHJpbmdSZXBsYWNlciB0aGF0IHNldHMgdGhlIGVtaXRzIHRoZSBnaXZlbiBvdXRwdXQKKyAgICAgKiB0ZXh0IGFuZCBzZXRzIHRoZSBjdXJzb3IgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSB0aGVPdXRwdXQgdGV4dCB0aGF0IHdpbGwgcmVwbGFjZSBpbnB1dCB0ZXh0IHdoZW4gdGhlCisgICAgICogcmVwbGFjZSgpIG1ldGhvZCBpcyBjYWxsZWQuICBNYXkgY29udGFpbiBzdGFuZC1pbiBjaGFyYWN0ZXJzCisgICAgICogdGhhdCByZXByZXNlbnQgbmVzdGVkIHJlcGxhY2Vycy4KKyAgICAgKiBAcGFyYW0gdGhlQ3Vyc29yUG9zIGN1cnNvciBwb3NpdGlvbiB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkKKyAgICAgKiB0aGUgcmVwbGFjZSgpIG1ldGhvZAorICAgICAqIEBwYXJhbSB0aGVEYXRhIHRyYW5zbGl0ZXJhdG9yIGNvbnRleHQgb2JqZWN0IHRoYXQgdHJhbnNsYXRlcworICAgICAqIHN0YW5kLWluIGNoYXJhY3RlcnMgdG8gVW5pY29kZVJlcGxhY2VyIG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUmVwbGFjZXIoU3RyaW5nIHRoZU91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZUN1cnNvclBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIG91dHB1dCA9IHRoZU91dHB1dDsKKyAgICAgICAgY3Vyc29yUG9zID0gdGhlQ3Vyc29yUG9zOworICAgICAgICBoYXNDdXJzb3IgPSB0cnVlOworICAgICAgICBkYXRhID0gdGhlRGF0YTsKKyAgICAgICAgaXNDb21wbGV4ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTdHJpbmdSZXBsYWNlciB0aGF0IHNldHMgdGhlIGVtaXRzIHRoZSBnaXZlbiBvdXRwdXQKKyAgICAgKiB0ZXh0IGFuZCBkb2VzIG5vdCBtb2RpZnkgdGhlIGN1cnNvci4KKyAgICAgKiBAcGFyYW0gdGhlT3V0cHV0IHRleHQgdGhhdCB3aWxsIHJlcGxhY2UgaW5wdXQgdGV4dCB3aGVuIHRoZQorICAgICAqIHJlcGxhY2UoKSBtZXRob2QgaXMgY2FsbGVkLiAgTWF5IGNvbnRhaW4gc3RhbmQtaW4gY2hhcmFjdGVycworICAgICAqIHRoYXQgcmVwcmVzZW50IG5lc3RlZCByZXBsYWNlcnMuCisgICAgICogQHBhcmFtIHRoZURhdGEgdHJhbnNsaXRlcmF0b3IgY29udGV4dCBvYmplY3QgdGhhdCB0cmFuc2xhdGVzCisgICAgICogc3RhbmQtaW4gY2hhcmFjdGVycyB0byBVbmljb2RlUmVwbGFjZXIgb2JqZWN0cworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdSZXBsYWNlcihTdHJpbmcgdGhlT3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgb3V0cHV0ID0gdGhlT3V0cHV0OworICAgICAgICBjdXJzb3JQb3MgPSAwOworICAgICAgICBoYXNDdXJzb3IgPSBmYWxzZTsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisgICAgfQorCisvLz0gICAgcHVibGljIHN0YXRpYyBVbmljb2RlUmVwbGFjZXIgdmFsdWVPZihTdHJpbmcgb3V0cHV0LAorLy89ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnNvclBvcywKKy8vPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSkgeworLy89ICAgICAgICBpZiAob3V0cHV0Lmxlbmd0aCgpID09IDEpIHsKKy8vPSAgICAgICAgICAgIGNoYXIgYyA9IG91dHB1dC5jaGFyQXQoMCk7CisvLz0gICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgciA9IGRhdGEubG9va3VwUmVwbGFjZXIoYyk7CisvLz0gICAgICAgICAgICBpZiAociAhPSBudWxsKSB7CisvLz0gICAgICAgICAgICAgICAgcmV0dXJuIHI7CisvLz0gICAgICAgICAgICB9CisvLz0gICAgICAgIH0KKy8vPSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdSZXBsYWNlcihvdXRwdXQsIGN1cnNvclBvcywgZGF0YSk7CisvLz0gICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisgICAgICAgIGludCBvdXRMZW47CisgICAgICAgIGludCBuZXdTdGFydCA9IDA7CisKKyAgICAgICAgLy8gTk9URTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIF9hbHdheXNfIHJ1biB0aGUgY29tcGxleAorICAgICAgICAvLyBwcm9jZXNzaW5nIGNvZGU7IGp1c3Qgc2xvd2VyLiAgSWYgbm90LCB0aGVuIHRoZXJlIGlzIGEgYnVnCisgICAgICAgIC8vIGluIHRoZSBjb21wbGV4IHByb2Nlc3NpbmcgY29kZS4KKworICAgICAgICAvLyBTaW1wbGUgKG5vIG5lc3RlZCByZXBsYWNlcnMpIFByb2Nlc3NpbmcgQ29kZSA6CisgICAgICAgIGlmICghaXNDb21wbGV4KSB7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBvdXRwdXQpOworICAgICAgICAgICAgb3V0TGVuID0gb3V0cHV0Lmxlbmd0aCgpOworCisgICAgICAgICAgICAvLyBTZXR1cCBkZWZhdWx0IGN1cnNvciBwb3NpdGlvbiAoZm9yIGN1cnNvclBvcyB3aXRoaW4gb3V0cHV0KQorICAgICAgICAgICAgbmV3U3RhcnQgPSBjdXJzb3JQb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wbGV4IChuZXN0ZWQgcmVwbGFjZXJzKSBQcm9jZXNzaW5nIENvZGUgOgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8qIFdoZW4gdGhlcmUgYXJlIHNlZ21lbnRzIHRvIGJlIGNvcGllZCwgdXNlIHRoZSBSZXBsYWNlYWJsZS5jb3B5KCkKKyAgICAgICAgICAgICAqIEFQSSBpbiBvcmRlciB0byByZXRhaW4gb3V0LW9mLWJhbmQgZGF0YS4gIENvcHkgZXZlcnl0aGluZyB0byB0aGUKKyAgICAgICAgICAgICAqIGVuZCBvZiB0aGUgc3RyaW5nLCB0aGVuIGNvcHkgdGhlbSBiYWNrIG92ZXIgdGhlIGtleS4gIFRoaXMgcHJlc2VydmVzCisgICAgICAgICAgICAgKiB0aGUgaW50ZWdyaXR5IG9mIGluZGljZXMgaW50byB0aGUga2V5IGFuZCBzdXJyb3VuZGluZyBjb250ZXh0IHdoaWxlCisgICAgICAgICAgICAgKiBnZW5lcmF0aW5nIHRoZSBvdXRwdXQgdGV4dC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBvT3V0cHV0OyAvLyBvZmZzZXQgaW50byAnb3V0cHV0JworICAgICAgICAgICAgaXNDb21wbGV4ID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIFRoZSB0ZW1wb3JhcnkgYnVmZmVyIHN0YXJ0cyBhdCB0ZW1wU3RhcnQsIGFuZCBleHRlbmRzCisgICAgICAgICAgICAvLyB0byBkZXN0TGltaXQgKyB0ZW1wRXh0cmEuICBUaGUgc3RhcnQgb2YgdGhlIGJ1ZmZlciBoYXMgYSBzaW5nbGUKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciBmcm9tIGJlZm9yZSB0aGUga2V5LiAgVGhpcyBwcm92aWRlcyBzdHlsZQorICAgICAgICAgICAgLy8gZGF0YSB3aGVuIGFkZGl0aW9uIGNoYXJhY3RlcnMgYXJlIGZpbGxlZCBpbnRvIHRoZQorICAgICAgICAgICAgLy8gdGVtcG9yYXJ5IGJ1ZmZlci4gIElmIHRoZXJlIGlzIG5vdGhpbmcgdG8gdGhlIGxlZnQsIHVzZQorICAgICAgICAgICAgLy8gdGhlIG5vbi1jaGFyYWN0ZXIgVStGRkZGLCB3aGljaCBSZXBsYWNlYWJsZSBzdWJjbGFzc2VzCisgICAgICAgICAgICAvLyBzaG91bGQgdHJlYXQgc3BlY2lhbGx5IGFzIGEgIm5vLXN0eWxlIGNoYXJhY3Rlci4iCisgICAgICAgICAgICAvLyBkZXN0U3RhcnQgcG9pbnRzIHRvIHRoZSBwb2ludCBhZnRlciB0aGUgc3R5bGUgY29udGV4dAorICAgICAgICAgICAgLy8gY2hhcmFjdGVyLCBzbyBpdCBpcyB0ZW1wU3RhcnQrMSBvciB0ZW1wU3RhcnQrMi4KKyAgICAgICAgICAgIGludCB0ZW1wU3RhcnQgPSB0ZXh0Lmxlbmd0aCgpOyAvLyBzdGFydCBvZiB0ZW1wIGJ1ZmZlcgorICAgICAgICAgICAgaW50IGRlc3RTdGFydCA9IHRlbXBTdGFydDsgLy8gY29weSBuZXcgdGV4dCB0byBoZXJlCisgICAgICAgICAgICBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KHN0YXJ0LTEpKTsKKyAgICAgICAgICAgICAgICB0ZXh0LmNvcHkoc3RhcnQtbGVuLCBzdGFydCwgdGVtcFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBkZXN0U3RhcnQgKz0gbGVuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UodGVtcFN0YXJ0LCB0ZW1wU3RhcnQsICJcdUZGRkYiKTsKKyAgICAgICAgICAgICAgICBkZXN0U3RhcnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkZXN0TGltaXQgPSBkZXN0U3RhcnQ7CisgICAgICAgICAgICBpbnQgdGVtcEV4dHJhID0gMDsgLy8gdGVtcCBjaGFycyBhZnRlciBkZXN0TGltaXQKKworICAgICAgICAgICAgZm9yIChvT3V0cHV0PTA7IG9PdXRwdXQ8b3V0cHV0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpZiAob091dHB1dCA9PSBjdXJzb3JQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yCisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gZGVzdExpbWl0IC0gZGVzdFN0YXJ0OyAvLyByZWxhdGl2ZSB0byBzdGFydAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChvdXRwdXQsIG9PdXRwdXQpOworCisgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgYXQgdGhlIGxhc3QgcG9zaXRpb24gY29weSB0aGUgcmlnaHQgc3R5bGUKKyAgICAgICAgICAgICAgICAvLyBjb250ZXh0IGNoYXJhY3RlciBpbnRvIHRoZSB0ZW1wb3JhcnkgYnVmZmVyLiAgV2UgZG9uJ3QKKyAgICAgICAgICAgICAgICAvLyBkbyB0aGlzIGJlZm9yZSBiZWNhdXNlIGl0IHdpbGwgcHJvdmlkZSBhbiBpbmNvcnJlY3QKKyAgICAgICAgICAgICAgICAvLyByaWdodCBjb250ZXh0IGZvciBwcmV2aW91cyByZXBsYWNlKCkgb3BlcmF0aW9ucy4KKyAgICAgICAgICAgICAgICBpbnQgbmV4dEluZGV4ID0gb091dHB1dCArIFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAobmV4dEluZGV4ID09IG91dHB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wRXh0cmEgPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChsaW1pdCkpOworICAgICAgICAgICAgICAgICAgICB0ZXh0LmNvcHkobGltaXQsIGxpbWl0K3RlbXBFeHRyYSwgZGVzdExpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgciA9IGRhdGEubG9va3VwUmVwbGFjZXIoYyk7CisgICAgICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBBY2N1bXVsYXRlIHN0cmFpZ2h0IChub24tc2VnbWVudCkgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaXNDb21wbGV4ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJbnNlcnQgYW55IGFjY3VtdWxhdGVkIHN0cmFpZ2h0IHRleHQuCisgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoZGVzdExpbWl0LCBkZXN0TGltaXQsIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RMaW1pdCArPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRGVsZWdhdGUgb3V0cHV0IGdlbmVyYXRpb24gdG8gcmVwbGFjZXIgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSByLnJlcGxhY2UodGV4dCwgZGVzdExpbWl0LCBkZXN0TGltaXQsIGN1cnNvcik7CisgICAgICAgICAgICAgICAgICAgIGRlc3RMaW1pdCArPSBsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9PdXRwdXQgPSBuZXh0SW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBJbnNlcnQgYW55IGFjY3VtdWxhdGVkIHN0cmFpZ2h0IHRleHQuCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShkZXN0TGltaXQsIGRlc3RMaW1pdCwgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGRlc3RMaW1pdCArPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob091dHB1dCA9PSBjdXJzb3JQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsgLy8gcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb3V0TGVuID0gZGVzdExpbWl0IC0gZGVzdFN0YXJ0OworCisgICAgICAgICAgICAvLyBDb3B5IG5ldyB0ZXh0IHRvIHN0YXJ0LCBhbmQgZGVsZXRlIGl0CisgICAgICAgICAgICB0ZXh0LmNvcHkoZGVzdFN0YXJ0LCBkZXN0TGltaXQsIHN0YXJ0KTsKKyAgICAgICAgICAgIHRleHQucmVwbGFjZSh0ZW1wU3RhcnQgKyBvdXRMZW4sIGRlc3RMaW1pdCArIHRlbXBFeHRyYSArIG91dExlbiwgIiIpOworCisgICAgICAgICAgICAvLyBEZWxldGUgdGhlIG9sZCB0ZXh0ICh0aGUga2V5KQorICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0ICsgb3V0TGVuLCBsaW1pdCArIG91dExlbiwgIiIpOworICAgICAgICB9ICAgICAgICAKKworICAgICAgICBpZiAoaGFzQ3Vyc29yKSB7CisgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIGN1cnNvciBmb3IgcG9zaXRpb25zIG91dHNpZGUgdGhlIGtleS4gIFRoZXNlCisgICAgICAgICAgICAvLyByZWZlciB0byBjb2RlIHBvaW50cyByYXRoZXIgdGhhbiBjb2RlIHVuaXRzLiAgSWYgY3Vyc29yUG9zCisgICAgICAgICAgICAvLyBpcyB3aXRoaW4gdGhlIG91dHB1dCBzdHJpbmcsIHRoZW4gdXNlIG5ld1N0YXJ0LCB3aGljaCBoYXMKKyAgICAgICAgICAgIC8vIGFscmVhZHkgYmVlbiBzZXQgYWJvdmUuCisgICAgICAgICAgICBpZiAoY3Vyc29yUG9zIDwgMCkgeworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IG4gPSBjdXJzb3JQb3M7CisgICAgICAgICAgICAgICAgLy8gT3V0c2lkZSB0aGUgb3V0cHV0IHN0cmluZywgY3Vyc29yUG9zIGNvdW50cyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIHdoaWxlIChuIDwgMCAmJiBuZXdTdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3U3RhcnQgLT0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobmV3U3RhcnQtMSkpOworICAgICAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IG47CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvclBvcyA+IG91dHB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gc3RhcnQgKyBvdXRMZW47CisgICAgICAgICAgICAgICAgaW50IG4gPSBjdXJzb3JQb3MgLSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgLy8gT3V0c2lkZSB0aGUgb3V0cHV0IHN0cmluZywgY3Vyc29yUG9zIGNvdW50cyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIHdoaWxlIChuID4gMCAmJiBuZXdTdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobmV3U3RhcnQpKTsKKyAgICAgICAgICAgICAgICAgICAgLS1uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBDdXJzb3IgaXMgd2l0aGluIG91dHB1dCBzdHJpbmcuICBJdCBoYXMgYmVlbiBzZXQgdXAgYWJvdmUKKyAgICAgICAgICAgICAgICAvLyB0byBiZSByZWxhdGl2ZSB0byBzdGFydC4KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBzdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3Vyc29yWzBdID0gbmV3U3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gb3V0TGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBpbnQgY3Vyc29yID0gY3Vyc29yUG9zOworCisgICAgICAgIC8vIEhhbmRsZSBhIGN1cnNvciBwcmVjZWRpbmcgdGhlIG91dHB1dAorICAgICAgICBpZiAoaGFzQ3Vyc29yICYmIGN1cnNvciA8IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChjdXJzb3IrKyA8IDApIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnQCcsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggYW5kIGFwcGVuZCAnfCcgYmVsb3cKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxvdXRwdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBpID09IGN1cnNvcikgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd8JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgYyA9IG91dHB1dC5jaGFyQXQoaSk7IC8vIE9rIHRvIHVzZSAxNi1iaXRzIGhlcmUKKworICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGMsIGZhbHNlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoci50b1JlcGxhY2VyUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBidWYudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIGEgY3Vyc29yIGFmdGVyIHRoZSBvdXRwdXQuICBVc2UgPiByYXRoZXIgdGhhbiA+PSBiZWNhdXNlCisgICAgICAgIC8vIGlmIGN1cnNvciA9PSBvdXRwdXQubGVuZ3RoKCkgaXQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgb3V0cHV0LAorICAgICAgICAvLyB3aGljaCBpcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiwgc28gd2UgbmVlZCBub3QgZW1pdCBpdC4KKyAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBjdXJzb3IgPiBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGN1cnNvciAtPSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGlsZSAoY3Vyc29yLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ0AnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ3wnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisgICAgICAgIC8vIEZsdXNoIHF1b3RlQnVmIG91dCB0byByZXN1bHQKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IG91dHB1dCBieSB0aGlzIG9iamVjdAorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgb3V0cHV0IGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRSZXBsYWNlbWVudFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG91dHB1dC5sZW5ndGgoKTsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQob3V0cHV0LCBpKTsKKyAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciByID0gZGF0YS5sb29rdXBSZXBsYWNlcihjaCk7CisgICAgICAgICAgICBpZiAociA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHIuYWRkUmVwbGFjZW1lbnRTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTkxYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEKQEAgLTAsMCArMSwzMTA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPHA+CisgKiA8Y29kZT5TdHJpbmdTZWFyY2g8L2NvZGU+IGlzIHRoZSBjb25jcmV0ZSBzdWJjbGFzcyBvZiAKKyAqIDxjb2RlPlNlYXJjaEl0ZXJhdG9yPC9jb2RlPiB0aGF0IHByb3ZpZGVzIGxhbmd1YWdlLXNlbnNpdGl2ZSB0ZXh0IHNlYXJjaGluZyAKKyAqIGJhc2VkIG9uIHRoZSBjb21wYXJpc29uIHJ1bGVzIGRlZmluZWQgaW4gYSB7QGxpbmsgUnVsZUJhc2VkQ29sbGF0b3J9IG9iamVjdC4KKyAqIDwvcD4KKyAqIDxwPgorICogPGNvZGU+U3RyaW5nU2VhcmNoPC9jb2RlPiB1c2VzIGEgdmVyc2lvbiBvZiB0aGUgZmFzdCBCb3llci1Nb29yZSBzZWFyY2gKKyAqIGFsZ29yaXRobSB0aGF0IGhhcyBiZWVuIGFkYXB0ZWQgdG8gd29yayB3aXRoIHRoZSBsYXJnZSBjaGFyYWN0ZXIgc2V0IG9mCisgKiBVbmljb2RlLiBSZWZlciB0byAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2RvY3MvcGFwZXJzL2VmZmljaWVudF90ZXh0X3NlYXJjaGluZ19pbl9qYXZhLmh0bWwiPgorICogIkVmZmljaWVudCBUZXh0IFNlYXJjaGluZyBpbiBKYXZhIjwvYT4sIHB1Ymxpc2hlZCBpbiB0aGUgCisgKiA8aT5KYXZhIFJlcG9ydDwvaT4gb24gRmVicnVhcnksIDE5OTksIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIG9uIHRoZSAKKyAqIGFsZ29yaXRobS4KKyAqIDwvcD4KKyAqIDxwPgorICogVXNlcnMgYXJlIGFsc28gc3Ryb25nbHkgZW5jb3VyYWdlZCB0byByZWFkIHRoZSBzZWN0aW9uIG9uIAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3NlYXJjaFN0cmluZy5odG1sIj4KKyAqIFN0cmluZyBTZWFyY2g8L2E+IGFuZCAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0ludHJvLmh0bWwiPgorICogQ29sbGF0aW9uPC9hPiBpbiB0aGUgdXNlciBndWlkZSBiZWZvcmUgYXR0ZW1wdGluZyB0byB1c2UgdGhpcyBjbGFzcy4KKyAqIDwvcD4KKyAqIDxwPgorICogU3RyaW5nIHNlYXJjaGluZyBnZXRzIGFsaXR0bGUgY29tcGxpY2F0ZWQgd2hlbiBhY2NlbnRzIGFyZSBlbmNvdW50ZXJlZCBhdAorICogbWF0Y2ggYm91bmRhcmllcy4gSWYgYSBtYXRjaCBpcyBmb3VuZCBhbmQgaXQgaGFzIHByZWNlZGluZyBvciB0cmFpbGluZyAKKyAqIGFjY2VudHMgbm90IHBhcnQgb2YgdGhlIG1hdGNoLCB0aGUgcmVzdWx0IHJldHVybmVkIHdpbGwgaW5jbHVkZSB0aGUgCisgKiBwcmVjZWRpbmcgYWNjZW50cyB1cCB0byB0aGUgZmlyc3QgYmFzZSBjaGFyYWN0ZXIsIGlmIHRoZSBwYXR0ZXJuIHNlYXJjaGVkIAorICogZm9yIHN0YXJ0cyBhbiBhY2NlbnQuIExpa2V3aXNlLCAKKyAqIGlmIHRoZSBwYXR0ZXJuIGVuZHMgd2l0aCBhbiBhY2NlbnQsIGFsbCB0cmFpbGluZyBhY2NlbnRzIHVwIHRvIHRoZSBmaXJzdAorICogYmFzZSBjaGFyYWN0ZXIgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LgorICogPC9wPgorICogPHA+CisgKiBGb3IgZXhhbXBsZSwgaWYgYSBtYXRjaCBpcyBmb3VuZCBpbiB0YXJnZXQgdGV4dCAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiBmb3IgCisgKiB0aGUgcGF0dGVybgorICogImEmIzkyO3UwMzI1IiwgdGhlIHJlc3VsdCByZXR1cm5lZCBieSBTdHJpbmdTZWFyY2ggd2lsbCBiZSB0aGUgaW5kZXggMCBhbmQKKyAqIGxlbmd0aCAzICZsdDswLCAzJmd0Oy4gSWYgYSBtYXRjaCBpcyBmb3VuZCBpbiB0aGUgdGFyZ2V0IAorICogImEmIzkyO3UwMzI1JiM5Mjt1MDMwMCIgCisgKiBmb3IgdGhlIHBhdHRlcm4gIiYjOTI7dTAzMDAiLCB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZSBpbmRleCAxIGFuZCBsZW5ndGggMiAKKyAqIDwxLCAyPi4KKyAqIDwvcD4KKyAqIDxwPgorICogSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBpcyBvbiBmb3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLAorICogYWxsIG1hdGNoZXMgdGhhdCBzdGFydHMgb3IgZW5kcyB3aXRoIGFuIGFjY2VudCB3aWxsIGhhdmUgaXRzIHJlc3VsdHMgaW5jbHVkZSAKKyAqIHByZWNlZGluZyBvciBmb2xsb3dpbmcgYWNjZW50cyByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlLCBpZiBwYXR0ZXJuICJhIiBpcworICogbG9va2VkIGZvciBpbiB0aGUgdGFyZ2V0IHRleHQgIiZhYWN1dGU7JiM5Mjt1MDMyNSIsIHRoZSByZXN1bHQgd2lsbCBiZQorICogaW5kZXggMCBhbmQgbGVuZ3RoIDIgJmx0OzAsIDImZ3Q7LgorICogPC9wPgorICogPHA+CisgKiBUaGUgU3RyaW5nU2VhcmNoIGNsYXNzIHByb3ZpZGVzIHR3byBvcHRpb25zIHRvIGhhbmRsZSBhY2NlbnQgbWF0Y2hpbmcgCisgKiBkZXNjcmliZWQgYmVsb3c6CisgKiA8L3A+CisgKiA8cD4KKyAqIExldCBTJyBiZSB0aGUgc3ViLXN0cmluZyBvZiBhIHRleHQgc3RyaW5nIFMgYmV0d2VlbiB0aGUgb2Zmc2V0cyBzdGFydCBhbmQgCisgKiBlbmQgJmx0O3N0YXJ0LCBlbmQmZ3Q7LgorICogPGJyPgorICogQSBwYXR0ZXJuIHN0cmluZyBQIG1hdGNoZXMgYSB0ZXh0IHN0cmluZyBTIGF0IHRoZSBvZmZzZXRzICZsdDtzdGFydCwgCisgKiBsZW5ndGgmZ3Q7IAorICogPGJyPgorICogaWYKKyAqIDxwcmU+IAorICogb3B0aW9uIDEuIFAgbWF0Y2hlcyBzb21lIGNhbm9uaWNhbCBlcXVpdmFsZW50IHN0cmluZyBvZiBTJy4gU3VwcG9zZSB0aGUgCisgKiAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBmb3Igc2VhcmNoaW5nIGhhcyBhIGNvbGxhdGlvbiBzdHJlbmd0aCBvZiAKKyAqICAgICAgICAgICBURVJUSUFSWSwgYWxsIGFjY2VudHMgYXJlIG5vbi1pZ25vcmFibGUuIElmIHRoZSBwYXR0ZXJuIAorICogICAgICAgICAgICJhJiM5Mjt1MDMwMCIgaXMgc2VhcmNoZWQgaW4gdGhlIHRhcmdldCB0ZXh0IAorICogICAgICAgICAgICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiLCAKKyAqICAgICAgICAgICBhIG1hdGNoIHdpbGwgYmUgZm91bmQsIHNpbmNlIHRoZSB0YXJnZXQgdGV4dCBpcyBjYW5vbmljYWxseSAKKyAqICAgICAgICAgICBlcXVpdmFsZW50IHRvICJhJiM5Mjt1MDMwMCYjOTI7dTAzMjUiCisgKiBvcHRpb24gMi4gUCBtYXRjaGVzIFMnIGFuZCBpZiBQIHN0YXJ0cyBvciBlbmRzIHdpdGggYSBjb21iaW5pbmcgbWFyaywgCisgKiAgICAgICAgICAgdGhlcmUgZXhpc3RzIG5vIG5vbi1pZ25vcmFibGUgY29tYmluaW5nIG1hcmsgYmVmb3JlIG9yIGFmdGVyIFMnIAorICogICAgICAgICAgIGluIFMgcmVzcGVjdGl2ZWx5LiBGb2xsb3dpbmcgdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBwYXR0ZXJuIAorICogICAgICAgICAgICJhJiM5Mjt1MDMwMCIgd2lsbCBub3QgZmluZCBhIG1hdGNoIGluICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiLCAKKyAqICAgICAgICAgICBzaW5jZQorICogICAgICAgICAgIHRoZXJlIGV4aXN0cyBhIG5vbi1pZ25vcmFibGUgYWNjZW50ICcmIzkyO3UwMzI1JyBpbiB0aGUgbWlkZGxlIG9mIAorICogICAgICAgICAgICdhJyBhbmQgJyYjOTI7dTAzMDAnLiBFdmVuIHdpdGggYSB0YXJnZXQgdGV4dCBvZiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAmIzkyO3UwMzI1IiBhIG1hdGNoIHdpbGwgbm90IGJlIGZvdW5kIGJlY2F1c2Ugb2YgdGhlIAorICogICAgICAgICAgIG5vbi1pZ25vcmFibGUgdHJhaWxpbmcgYWNjZW50ICYjOTI7dTAzMjUuCisgKiA8L3ByZT4KKyAqIE9wdGlvbiAyLiB3aWxsIGJlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIGRlYWxpbmcgd2l0aCBib3VuZGFyeSBhY2NlbnRzIHVubGVzcworICogc3BlY2lmaWVkIHZpYSB0aGUgQVBJIHNldENhbm9uaWNhbChib29sZWFuKS4KKyAqIE9uZSByZXN0cmljdGlvbiBpcyB0byBiZSBub3RlZCBmb3Igb3B0aW9uIDEuIEN1cnJlbnRseSB0aGVyZSBhcmUgbm8gCisgKiBjb21wb3NpdGUgY2hhcmFjdGVycyB0aGF0IGNvbnNpc3RzIG9mIGEgY2hhcmFjdGVyIHdpdGggY29tYmluaW5nIGNsYXNzID4gMCAKKyAqIGJlZm9yZSBhIGNoYXJhY3RlciB3aXRoIGNvbWJpbmluZyBjbGFzcyA9PSAwLiBIb3dldmVyLCBpZiBzdWNoIGEgY2hhcmFjdGVyIAorICogZXhpc3RzIGluIHRoZSBmdXR1cmUsIHRoZSBTdHJpbmdTZWFyY2ggbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG9wdGlvbiAxCisgKiB3aGVuIHN1Y2ggY2hhcmFjdGVycyBhcmUgZW5jb3VudGVyZWQuCisgKiA8L3A+CisgKiA8cD4KKyAqIDx0dD5TZWFyY2hJdGVyYXRvcjwvdHQ+IHByb3ZpZGVzIEFQSXMgdG8gc3BlY2lmeSB0aGUgc3RhcnRpbmcgcG9zaXRpb24gCisgKiB3aXRoaW4gdGhlIHRleHQgc3RyaW5nIHRvIGJlIHNlYXJjaGVkLCBlLmcuIDx0dD5zZXRJbmRleDwvdHQ+LAorICogPHR0PnByZWNlZGluZzwvdHQ+IGFuZCA8dHQ+Zm9sbG93aW5nPC90dD4uIFNpbmNlIHRoZSBzdGFydGluZyBwb3NpdGlvbiB3aWxsIAorICogYmUgc2V0IGFzIGl0IGlzIHNwZWNpZmllZCwgcGxlYXNlIHRha2Ugbm90ZSB0aGF0IHRoZXJlIGFyZSBzb21lIGRhbmdlcm91cyAKKyAqIHBvc2l0aW9ucyB3aGljaCB0aGUgc2VhcmNoIG1heSByZW5kZXIgaW5jb3JyZWN0IHJlc3VsdHM6CisgKiA8dWw+CisgKiA8bGk+IFRoZSBtaWRzdCBvZiBhIHN1YnN0cmluZyB0aGF0IHJlcXVpcmVzIGRlY29tcG9zaXRpb24uCisgKiA8bGk+IElmIHRoZSBmb2xsb3dpbmcgbWF0Y2ggaXMgdG8gYmUgZm91bmQsIHRoZSBwb3NpdGlvbiBzaG91bGQgbm90IGJlIHRoZQorICogICAgICBzZWNvbmQgY2hhcmFjdGVyIHdoaWNoIHJlcXVpcmVzIHRvIGJlIHN3YXBwZWQgd2l0aCB0aGUgcHJlY2VkaW5nIAorICogICAgICBjaGFyYWN0ZXIuIFZpY2UgdmVyc2EsIGlmIHRoZSBwcmVjZWRpbmcgbWF0Y2ggaXMgdG8gYmUgZm91bmQsIAorICogICAgICBwb3NpdGlvbiB0byBzZWFyY2ggZnJvbSBzaG91bGQgbm90IGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggCisgKiAgICAgIHJlcXVpcmVzIHRvIGJlIHN3YXBwZWQgd2l0aCB0aGUgbmV4dCBjaGFyYWN0ZXIuIEUuZyBjZXJ0YWluIFRoYWkgYW5kCisgKiAgICAgIExhbyBjaGFyYWN0ZXJzIHJlcXVpcmUgc3dhcHBpbmcuCisgKiA8bGk+IElmIGEgZm9sbG93aW5nIHBhdHRlcm4gbWF0Y2ggaXMgdG8gYmUgZm91bmQsIGFueSBwb3NpdGlvbiB3aXRoaW4gYSAKKyAqICAgICAgY29udHJhY3Rpbmcgc2VxdWVuY2UgZXhjZXB0IHRoZSBmaXJzdCB3aWxsIGZhaWwuIFZpY2UgdmVyc2EgaWYgYSAKKyAqICAgICAgcHJlY2VkaW5nIHBhdHRlcm4gbWF0Y2ggaXMgdG8gYmUgZm91bmQsIGEgaW52YWxpZCBzdGFydGluZyBwb2ludCAKKyAqICAgICAgd291bGQgYmUgYW55IGNoYXJhY3RlciB3aXRoaW4gYSBjb250cmFjdGluZyBzZXF1ZW5jZSBleGNlcHQgdGhlIGxhc3QuCisgKiA8L3VsPgorICogPC9wPgorICogPHA+CisgKiBUaG91Z2ggY29sbGF0b3IgYXR0cmlidXRlcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiB3aGlsZSAKKyAqIHBlcmZvcm1pbmcgbWF0Y2hlcywgdGhlcmUgYXJlIG5vIEFQSXMgcHJvdmlkZWQgaW4gU3RyaW5nU2VhcmNoIGZvciBzZXR0aW5nIAorICogYW5kIGdldHRpbmcgdGhlIGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGJlIHNldCBieSBnZXR0aW5nIHRoZSAKKyAqIGNvbGxhdG9yIGZyb20gPHR0PmdldENvbGxhdG9yPC90dD4gYW5kIHVzaW5nIHRoZSBBUElzIGluIAorICogPHR0PmNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I8L3R0Pi4gVG8gdXBkYXRlIFN0cmluZ1NlYXJjaCB0byB0aGUgbmV3IAorICogY29sbGF0b3IgYXR0cmlidXRlcywgPHR0PnJlc2V0KCk8L3R0PiBvciAKKyAqIDx0dD5zZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvcik8L3R0PiBoYXMgdG8gYmUgY2FsbGVkLgorICogPC9wPgorICogPHA+CisgKiBDb25zdWx0IHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9zZWFyY2hTdHJpbmcuaHRtbCI+CisgKiBTdHJpbmcgU2VhcmNoPC9hPiB1c2VyIGd1aWRlIGFuZCB0aGUgPGNvZGU+U2VhcmNoSXRlcmF0b3I8L2NvZGU+IAorICogZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZXhhbXBsZXMgb2YgdXNlLgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgU2VhcmNoSXRlcmF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyLCBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisvLyBpbnRlcm5hbCBub3RlczogYWxsIG1ldGhvZHMgZG8gbm90IGd1YXJhbnRlZSB0aGUgY29ycmVjdCBzdGF0dXMgb2YgdGhlIAorLy8gY2hhcmFjdGVyaXRlcmF0b3IuIHRoZSBjYWxsZXIgaGFzIHRvIG1haW50YWluIHRoZSBvcmlnaW5hbCBpbmRleCBwb3NpdGlvbgorLy8gaWYgbmVjZXNzYXJ5LiBtZXRob2RzIGNvdWxkIGNoYW5nZSB0aGUgaW5kZXggcG9zaXRpb24gYXMgaXQgZGVlbXMgZml0CitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nU2VhcmNoIGV4dGVuZHMgU2VhcmNoSXRlcmF0b3IKK3sKKyAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgZGVmaW5lZCBpbiAKKyAgICAgKiB0aGUgYXJndW1lbnQgY29sbGF0b3IgdG8gc2VhcmNoIGZvciBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCAKKyAgICAgKiB0YXJnZXQgdGV4dC4gVGhlIGFyZ3VtZW50IGJyZWFraXRlciBpcyB1c2VkIHRvIGRlZmluZSBsb2dpY2FsIG1hdGNoZXMuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgUnVsZUJhc2VkQ29sbGF0b3IgdGhhdCBkZWZpbmVzIHRoZSBsYW5ndWFnZSBydWxlcworICAgICAqIEBwYXJhbSBicmVha2l0ZXIgQSB7QGxpbmsgQnJlYWtJdGVyYXRvcn0gdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgCisgICAgICogICAgICAgICAgICAgICAgYm91bmRhcmllcyBvZiBhIGxvZ2ljYWwgbWF0Y2guIFRoaXMgYXJndW1lbnQgY2FuIGJlIG51bGwuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIEJyZWFrSXRlcmF0b3IgYnJlYWtpdGVyKSAKKyAgICB7CisgICAgICAgIHN1cGVyKHRhcmdldCwgYnJlYWtpdGVyKTsKKyAgICAgICAgbV90ZXh0QmVnaW5PZmZzZXRfID0gdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIG1fdGV4dExpbWl0T2Zmc2V0XyA9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgbV9jb2xFSXRlcl8gPSBtX2NvbGxhdG9yXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGFyZ2V0KTsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgbV9jZU1hc2tfID0gZ2V0TWFzayhtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAgICAgbV9pc0Nhbm9uaWNhbE1hdGNoXyA9IGZhbHNlOworICAgICAgICBtX3BhdHRlcm5fID0gbmV3IFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7CisgICAgICAgIAorICAgICAgICBpbml0aWFsaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgZGVmaW5lZCBpbiAKKyAgICAgKiB0aGUgYXJndW1lbnQgY29sbGF0b3IgdG8gc2VhcmNoIGZvciBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCAKKyAgICAgKiB0YXJnZXQgdGV4dC4gTm8gQnJlYWtJdGVyYXRvcnMgYXJlIHNldCB0byB0ZXN0IGZvciBsb2dpY2FsIG1hdGNoZXMuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGV4dCB0byBsb29rIGZvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0ZXh0IHRvIHNlYXJjaCBmb3IgcGF0dGVybi4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIFJ1bGVCYXNlZENvbGxhdG9yIHRoYXQgZGVmaW5lcyB0aGUgbGFuZ3VhZ2UgcnVsZXMKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCB0YXJnZXQgaXMgbnVsbCwKKyAgICAgKiAgICAgICAgICAgIG9yIG9mIGxlbmd0aCAwCisgICAgICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzZWUgU2VhcmNoSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nU2VhcmNoKFN0cmluZyBwYXR0ZXJuLCBDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIHRhcmdldCwgY29sbGF0b3IsIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgYW5kIAorICAgICAqIGJyZWFrIGl0ZXJhdG9yIHJ1bGVzIGRlZmluZWQgaW4gdGhlIGFyZ3VtZW50IGxvY2FsZSB0byBzZWFyY2ggZm9yIAorICAgICAqIGFyZ3VtZW50IHBhdHRlcm4gaW4gdGhlIGFyZ3VtZW50IHRhcmdldCB0ZXh0LiAKKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCAKKyAgICAgKiB0ZXh0IGFuZCBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIHRvIHVzZSBmb3IgbGFuZ3VhZ2UgYW5kIGJyZWFrIGl0ZXJhdG9yIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMC4gQ2xhc3NDYXN0RXhjZXB0aW9uIHRocm93biBpZiB0aGUgY29sbGF0b3IgZm9yIAorICAgICAqICAgICAgICAgICAgdGhlIHNwZWNpZmllZCBsb2NhbGUgaXMgbm90IGEgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yCisgICAgICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzZWUgU2VhcmNoSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nU2VhcmNoKFN0cmluZyBwYXR0ZXJuLCBDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXQsIExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIHRhcmdldCwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgYW5kIAorICAgICAqIGJyZWFrIGl0ZXJhdG9yIHJ1bGVzIGRlZmluZWQgaW4gdGhlIGFyZ3VtZW50IGxvY2FsZSB0byBzZWFyY2ggZm9yIAorICAgICAqIGFyZ3VtZW50IHBhdHRlcm4gaW4gdGhlIGFyZ3VtZW50IHRhcmdldCB0ZXh0LiAKKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCAKKyAgICAgKiB0ZXh0IGFuZCBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBwYXJhbSBsb2NhbGUgdWxvY2FsZSB0byB1c2UgZm9yIGxhbmd1YWdlIGFuZCBicmVhayBpdGVyYXRvciBydWxlcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nU2VhcmNoKFN0cmluZyBwYXR0ZXJuLCBDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXQsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpLAorICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgYW5kIAorICAgICAqIGJyZWFrIGl0ZXJhdG9yIHJ1bGVzIGRlZmluZWQgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIHRvIHNlYXJjaCBmb3IgCisgICAgICogYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgdGFyZ2V0IHRleHQuIAorICAgICAqIFNlZSBzdXBlciBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGUgdGFyZ2V0IAorICAgICAqIHRleHQgYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGV4dCB0byBsb29rIGZvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0ZXh0IHRvIHNlYXJjaCBmb3IgcGF0dGVybi4gCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMC4gQ2xhc3NDYXN0RXhjZXB0aW9uIHRocm93biBpZiB0aGUgY29sbGF0b3IgZm9yIAorICAgICAqICAgICAgICAgICAgdGhlIGRlZmF1bHQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgU3RyaW5nIHRhcmdldCkgCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0YXJnZXQpLAorICAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpLAorICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBHZXRzIHRoZSBSdWxlQmFzZWRDb2xsYXRvciB1c2VkIGZvciB0aGUgbGFuZ3VhZ2UgcnVsZXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNpbmNlIFN0cmluZ1NlYXJjaCBkZXBlbmRzIG9uIHRoZSByZXR1cm5lZCBSdWxlQmFzZWRDb2xsYXRvciwgYW55IAorICAgICAqIGNoYW5nZXMgdG8gdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHJlc3VsdCBzaG91bGQgZm9sbG93IHdpdGggYSBjYWxsIHRvIAorICAgICAqIGVpdGhlciBTdHJpbmdTZWFyY2gucmVzZXQoKSBvciAKKyAgICAgKiBTdHJpbmdTZWFyY2guc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IpIHRvIGVuc3VyZSB0aGUgY29ycmVjdCAKKyAgICAgKiBzZWFyY2ggYmVoYXZpb3VyLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgYnkgdGhpcyBTdHJpbmdTZWFyY2gKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSAjc2V0Q29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQ29sbGF0b3IgZ2V0Q29sbGF0b3IoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NvbGxhdG9yXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGF0dGVybiBmb3Igd2hpY2ggU3RyaW5nU2VhcmNoIGlzIHNlYXJjaGluZyBmb3IuCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybiBzZWFyY2hlZCBmb3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdHRlcm4oKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX3BhdHRlcm5fLnRhcmdldFRleHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IHdoZXJlIHRoZSBpdGVyYXRvciBpcyBjdXJyZW50bHkgCisgICAgICogcG9zaXRpb25lZCBhdC4gCisgICAgICogSWYgdGhlIGl0ZXJhdGlvbiBoYXMgZ29uZSBwYXN0IHRoZSBlbmQgb2YgdGhlIHRhcmdldCB0ZXh0IG9yIHBhc3QgCisgICAgICogdGhlIGJlZ2lubmluZyBmb3IgYSBiYWNrd2FyZHMgc2VhcmNoLCB7QGxpbmsgI0RPTkV9IGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IHdoZXJlIHRoZSBpdGVyYXRvciBpcyBjdXJyZW50bHkgCisgICAgICogICAgICAgICBwb3NpdGlvbmVkIGF0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIAorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICBpZiAoaXNPdXRPZkJvdW5kcyhtX3RleHRCZWdpbk9mZnNldF8sIG1fdGV4dExpbWl0T2Zmc2V0XywgcmVzdWx0KSkgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGNhbm9uaWNhbCBtYXRjaGVzIChvcHRpb24gMSwgYXMgZGVzY3JpYmVkIGluIHRoZSAKKyAgICAgKiBjbGFzcyBkb2N1bWVudGF0aW9uKSBpcyBzZXQuCisgICAgICogU2VlIHNldENhbm9uaWNhbChib29sZWFuKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRDYW5vbmljYWwKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2Fub25pY2FsIG1hdGNoZXMgaXMgc2V0LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Nhbm9uaWNhbCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNDYW5vbmljYWxNYXRjaF87CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU2V0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdG8gYmUgdXNlZCBmb3IgbGFuZ3VhZ2Utc3BlY2lmaWMgc2VhcmNoaW5nLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBjYXVzZXMgaW50ZXJuYWwgZGF0YSBzdWNoIGFzIEJveWVyLU1vb3JlIHNoaWZ0IHRhYmxlcworICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZCwgYnV0IHRoZSBpdGVyYXRvcidzIHBvc2l0aW9uIGlzIHVuY2hhbmdlZC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRvIHVzZSBmb3IgdGhpcyBTdHJpbmdTZWFyY2gKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBjb2xsYXRvciBpcyBudWxsCisgICAgICogQHNlZSAjZ2V0Q29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgCisgICAgeworICAgICAgICBpZiAoY29sbGF0b3IgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29sbGF0b3IgY2FuIG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgbV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgbV9jZU1hc2tfID0gZ2V0TWFzayhtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9nZXRBdHRyaWJ1dGUgcmV0dXJucyBVQ09MX0RFRkFVTFQKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldCB0aGUgcGF0dGVybiB0byBzZWFyY2ggZm9yLiAgCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoaXMgbWV0aG9kIGNhdXNlcyBpbnRlcm5hbCBkYXRhIHN1Y2ggYXMgQm95ZXItTW9vcmUgc2hpZnQgdGFibGVzCisgICAgICogdG8gYmUgcmVjYWxjdWxhdGVkLCBidXQgdGhlIGl0ZXJhdG9yJ3MgcG9zaXRpb24gaXMgdW5jaGFuZ2VkLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBmb3Igc2VhcmNoaW5nCisgICAgICogQHNlZSAjZ2V0UGF0dGVybgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBwYXR0ZXJuIGlzIG51bGwgb3Igb2YKKyAgICAgKiAgICAgICAgICAgICAgIGxlbmd0aCAwCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0dGVybihTdHJpbmcgcGF0dGVybikgCisgICAgeworICAgICAgICBpZiAocGF0dGVybiA9PSBudWxsIHx8IHBhdHRlcm4ubGVuZ3RoKCkgPD0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIlBhdHRlcm4gdG8gc2VhcmNoIGZvciBjYW4gbm90IGJlIG51bGwgb3Igb2YgbGVuZ3RoIDAiKTsKKyAgICAgICAgfQorICAgICAgICBtX3BhdHRlcm5fLnRhcmdldFRleHQgPSBwYXR0ZXJuOworICAgICAgICBpbml0aWFsaXplKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHRhcmdldCB0ZXh0IHRvIGJlIHNlYXJjaGVkLiBUZXh0IGl0ZXJhdGlvbiB3aWxsIGhlbmNlIGJlZ2luIGF0IAorICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdGV4dCBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byAKKyAgICAgKiByZS11c2UgYW4gaXRlcmF0b3IgdG8gc2VhcmNoIHdpdGhpbiBhIGRpZmZlcmVudCBib2R5IG9mIHRleHQuCisgICAgICogQHBhcmFtIHRleHQgbmV3IHRleHQgaXRlcmF0b3IgdG8gbG9vayBmb3IgbWF0Y2gsIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIHRleHQgaXMgbnVsbCBvciBoYXMKKyAgICAgKiAgICAgICAgICAgIDAgbGVuZ3RoCisgICAgICogQHNlZSAjZ2V0VGFyZ2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGFyZ2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQpCisgICAgeworICAgICAgICBzdXBlci5zZXRUYXJnZXQodGV4dCk7CisgICAgICAgIG1fdGV4dEJlZ2luT2Zmc2V0XyA9IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBtX3RleHRMaW1pdE9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIG1fY29sRUl0ZXJfLnNldFRleHQodGFyZ2V0VGV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgdGV4dCB3aGljaCB0aGUgbmV4dCBzZWFyY2ggd2lsbCBzdGFydCAKKyAgICAgKiBmcm9tIHRvIHRoZSBhcmd1bWVudC4gVGhpcyBtZXRob2QgY2xlYXJzIGFsbCBwcmV2aW91cyBzdGF0ZXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBhcmd1bWVudCBwb3NpdGlvbiBhbmQgc2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIAorICAgICAqIHRhcmdldCB0ZXh0IGFjY29yZGluZ2x5LCB3aXRob3V0IGNoZWNraW5nIGlmIHBvc2l0aW9uIGlzIHBvaW50aW5nIHRvIGEgCisgICAgICogdmFsaWQgc3RhcnRpbmcgcG9pbnQgdG8gYmVnaW4gc2VhcmNoaW5nLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWFyY2ggcG9zaXRpb25zIHRoYXQgbWF5IHJlbmRlciBpbmNvcnJlY3QgcmVzdWx0cyBhcmUgaGlnaGxpZ2h0ZWQgaW4gCisgICAgICogdGhlIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBpbmRleCB0byBzdGFydCBuZXh0IHNlYXJjaCBmcm9tLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgYXJndW1lbnQgcG9zaXRpb24gaXMgb3V0CisgICAgICogICAgICAgICAgICBvZiB0aGUgdGFyZ2V0IHRleHQgcmFuZ2UuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgcG9zaXRpb24pCisgICAgeworICAgICAgICBzdXBlci5zZXRJbmRleChwb3NpdGlvbik7CisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7CisgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHBvc2l0aW9uKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU2V0IHRoZSBjYW5vbmljYWwgbWF0Y2ggbW9kZS4gU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICogVGhlIGRlZmF1bHQgc2V0dGluZyBmb3IgdGhpcyBwcm9wZXJ0eSBpcyBmYWxzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGFsbG93Q2Fub25pY2FsIGZsYWcgaW5kaWNhdG9yIGlmIGNhbm9uaWNhbCBtYXRjaGVzIGFyZSBhbGxvd2VkCisgICAgICogQHNlZSAjaXNDYW5vbmljYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYW5vbmljYWwoYm9vbGVhbiBhbGxvd0Nhbm9uaWNhbCkKKyAgICB7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBhbGxvd0Nhbm9uaWNhbDsKKyAgICAgICAgaWYgKG1faXNDYW5vbmljYWxNYXRjaF8gPT0gdHJ1ZSkgeworICAgICAgICAgICAgaWYgKG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWlzY2VsbGFuZW91cyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqIAorICAgICAqIDxwPgorICAgICAqIFJlc2V0cyB0aGUgc2VhcmNoIGl0ZXJhdGlvbi4gQWxsIHByb3BlcnRpZXMgd2lsbCBiZSByZXNldCB0byB0aGUgCisgICAgICogZGVmYXVsdCB2YWx1ZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VhcmNoIHdpbGwgYmVnaW4gYXQgdGhlIHN0YXJ0IG9mIHRoZSB0YXJnZXQgdGV4dCBpZiBhIGZvcndhcmQgaXRlcmF0aW9uIAorICAgICAqIGlzIGluaXRpYXRlZCBiZWZvcmUgYSBiYWNrd2FyZHMgaXRlcmF0aW9uLiBPdGhlcndpc2UgaWYgYSAKKyAgICAgKiBiYWNrd2FyZHMgaXRlcmF0aW9uIGlzIGluaXRpYXRlZCBiZWZvcmUgYSBmb3J3YXJkcyBpdGVyYXRpb24sIHRoZSBzZWFyY2ggCisgICAgICogd2lsbCBiZWdpbiBhdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogQ2Fub25pY2FsIG1hdGNoIG9wdGlvbiB3aWxsIGJlIHJlc2V0IHRvIGZhbHNlLCBpZSBhbiBleGFjdCBtYXRjaC4KKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgaXMgc2V0dGluZyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSBhbHJlYWR5IGluIHN0cmluZyBzZWFyY2gsIAorICAgICAgICAvLyBoZW5jZSBhbGwgYXR0cmlidXRlcyBpbiB0aGUgY29sbGF0b3Igc2hvdWxkIGJlIHJldHJpZXZlZCB3aXRob3V0IGFueSAKKyAgICAgICAgLy8gcHJvYmxlbXMKKyAgICAgICAgc3VwZXIucmVzZXQoKTsKKyAgICAgICAgbV9pc0Nhbm9uaWNhbE1hdGNoXyA9IGZhbHNlOworICAgICAgICBtX2NlTWFza18gPSBnZXRNYXNrKG1fY29sbGF0b3JfLmdldFN0cmVuZ3RoKCkpOworICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlLCB1Y29sX2dldEF0dHJpYnV0ZSByZXR1cm5zIFVDT0xfREVGQVVMVAorICAgICAgICBpbml0aWFsaXplKCk7CisgICAgICAgIG1fY29sRUl0ZXJfLnNldENvbGxhdG9yKG1fY29sbGF0b3JfKTsKKyAgICAgICAgbV9jb2xFSXRlcl8ucmVzZXQoKTsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldENvbGxhdG9yKG1fY29sbGF0b3JfKTsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbmNyZXRlIG1ldGhvZCB0byBwcm92aWRlIHRoZSBtZWNoYW5pc20gCisgICAgICogZm9yIGZpbmRpbmcgdGhlIG5leHQgPGI+Zm9yd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgaXRzIHVzZS4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBmb3J3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBmb3J3YXJkcyBtYXRjaCBpZiBmb3VuZCwgRE9ORSAKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqIEBzZWUgI2hhbmRsZVByZXZpb3VzKGludCkKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVOZXh0KGludCBzdGFydCkKKyAgICB7CisgICAgICAgIGlmIChtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgIGlmIChtX21hdGNoZWRJbmRleF8gPT0gRE9ORSAmJiBzdGFydCA9PSBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBzdGFydDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9tYXRjaGVkSW5kZXhfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgICAgIC8vIGNoIGNhbiBuZXZlciBiZSBkb25lLCBpdCBpcyBoYW5kbGVkIGJ5IG5leHQoKQorICAgICAgICAgICAgY2hhciBjaDIgPSB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjaDIgPT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7ICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaDIpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG1hdGNoTGVuZ3RoIDw9IDApIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBtdXN0IGhhdmUgcmV2ZXJzZWQgZGlyZWN0aW9uIGFmdGVyIHdlIHJlYWNoZWQgdGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCB0ZXh0CisgICAgICAgICAgICAgICAgLy8gc2VlIFNlYXJjaEl0ZXJhdG9yIG5leHQoKSwgaXQgY2hlY2tzIHRoZSBib3VuZHMgYW5kIHJldHVybnMKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBleGNlZWRzIHRoZSByYW5nZS4gSXQgZG9lcyBub3QgYWxsb3cgc2V0dGluZyBvZgorICAgICAgICAgICAgICAgIC8vIG1fbWF0Y2hlZEluZGV4CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID09IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGJvdW5kYXJ5IGNoZWNrIHB1cnBvc2VzLiB0aGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIG5leHQgbWF0Y2ggd2lsbCBub3QgcHJlY2VlZCB0aGUgY3VycmVudCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSBzZWFyY2gtPm1hdGNoZWRJbmRleCB3aWxsIGFsd2F5cyBiZSBzZXQgdG8gc29tZXRoaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBjb2RlCisgICAgICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHN0YXJ0IC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdworICAgICAgICAgICAgaWYgKG1faXNDYW5vbmljYWxNYXRjaF8pIHsKKyAgICAgICAgICAgICAgICAvLyBjYW4ndCB1c2UgZXhhY3QgaGVyZSBzaW5jZSBleHRyYSBhY2NlbnRzIGFyZSBhbGxvd2VkLgorICAgICAgICAgICAgICAgIGhhbmRsZU5leHRDYW5vbmljYWwoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaGFuZGxlTmV4dEV4YWN0KHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUpIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobV90ZXh0TGltaXRPZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobV9tYXRjaGVkSW5kZXhfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9tYXRjaGVkSW5kZXhfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25jcmV0ZSBtZXRob2QgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmJhY2t3YXJkczwvYj4gbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LgorICAgICAqIFNlZSBzdXBlciBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBpdHMgdXNlLgorICAgICAqIDwvcD4gIAorICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGJhY2t3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggaWYgZm91bmQsIERPTkUgCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNoYW5kbGVOZXh0KGludCkKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVQcmV2aW91cyhpbnQgc3RhcnQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9PSAwKSB7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICAvLyBzdGFydCBjYW4gbmV2ZXIgYmUgRE9ORSBvciAwLCBpdCBpcyBoYW5kbGVkIGluIHByZXZpb3VzCisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoY2ggPT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG1hdGNoTGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBtdXN0IGhhdmUgcmV2ZXJzZWQgZGlyZWN0aW9uIGFmdGVyIHdlIHJlYWNoZWQgdGhlIGVuZAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0YXJnZXQgdGV4dAorICAgICAgICAgICAgICAgIC8vIHNlZSBTZWFyY2hJdGVyYXRvciBuZXh0KCksIGl0IGNoZWNrcyB0aGUgYm91bmRzIGFuZCByZXR1cm5zCisgICAgICAgICAgICAgICAgLy8gaWYgaXQgZXhjZWVkcyB0aGUgcmFuZ2UuIEl0IGRvZXMgbm90IGFsbG93IHNldHRpbmcgb2YKKyAgICAgICAgICAgICAgICAvLyBtX21hdGNoZWRJbmRleAorICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9pc0Nhbm9uaWNhbE1hdGNoXykgeworICAgICAgICAgICAgICAgIC8vIGNhbid0IHVzZSBleGFjdCBoZXJlIHNpbmNlIGV4dHJhIGFjY2VudHMgYXJlIGFsbG93ZWQuCisgICAgICAgICAgICAgICAgaGFuZGxlUHJldmlvdXNDYW5vbmljYWwoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaGFuZGxlUHJldmlvdXNFeGFjdChzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUpIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobV90ZXh0QmVnaW5PZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobV9tYXRjaGVkSW5kZXhfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9tYXRjaGVkSW5kZXhfOworICAgIH0KKworICAgIC8vIHByaXZhdGUgc3RhdGljIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFBhdHRlcm4gCisgICAgeworICAgICAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhdHRlcm4gc3RyaW5nCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHRhcmdldFRleHQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBcnJheSBjb250YWluaW5nIHRoZSBjb2xsYXRpb24gZWxlbWVudHMgb2YgdGFyZ2V0VGV4dAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX0NFX1tdOworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGNvbGxhdGlvbiBlbGVtZW50cyBpbiBtX0NFXworICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX0NFTGVuZ3RoXzsgCisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiB0YXJnZXRUZXh0IHN0YXJ0cyB3aXRoIGFuIGFjY2VudAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbV9oYXNQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWcgaW5kaWNhdG9yIGlmIHRhcmdldFRleHQgZW5kcyB3aXRoIGFuIGFjY2VudAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbV9oYXNTdWZmaXhBY2NlbnRzXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmF1bHQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2hpZnQgZm9yIEJveWVyIE1vb3JlCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fZGVmYXVsdFNoaWZ0U2l6ZV87CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgY2hhcmFjdGVycyB0byBzaGlmdCBmb3IgQm95ZXIgTW9vcmUsIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgICAgICogc291cmNlIHRleHQgdG8gc2VhcmNoCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgY2hhciBtX3NoaWZ0X1tdOworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2hpZnQgYmFja3dhcmRzIGZvciBCb3llciBNb29yZSwgZGVwZW5kaW5nIAorICAgICAgICAgKiBvbiB0aGUgc291cmNlIHRleHQgdG8gc2VhcmNoCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgY2hhciBtX2JhY2tTaGlmdF9bXTsKKyAgICAgICAgCisgICAgICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgY29uc3RydWN0b3IgCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgUGF0dGVybihTdHJpbmcgcGF0dGVybikgCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQgPSBwYXR0ZXJuOworICAgICAgICAgICAgbV9DRV8gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgIG1faGFzUHJlZml4QWNjZW50c18gPSBmYWxzZTsKKyAgICAgICAgICAgIG1faGFzU3VmZml4QWNjZW50c18gPSBmYWxzZTsKKyAgICAgICAgICAgIG1fZGVmYXVsdFNoaWZ0U2l6ZV8gPSAxOyAgICAgICAgCisgICAgICAgICAgICBtX3NoaWZ0XyA9IG5ldyBjaGFyW01BWF9UQUJMRV9TSVpFX107CisgICAgICAgICAgICBtX2JhY2tTaGlmdF8gPSBuZXcgY2hhcltNQVhfVEFCTEVfU0laRV9dOworICAgICAgICB9CisgICAgfTsKKworCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogdGFyZ2V0IHRleHQgYmVnaW4gb2Zmc2V0LiBFYWNoIHRhcmdldFRleHQgaGFzIGEgdmFsaWQgY29udGlndW91cyByZWdpb24gCisgICAgICogdG8gaXRlcmF0ZSBhbmQgdGhpcyBkYXRhIG1lbWJlciBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBmaXJzdCBzdWNoCisgICAgICogY2hhcmFjdGVyIGluIHRoZSByZWdpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90ZXh0QmVnaW5PZmZzZXRfOworICAgIC8qKgorICAgICAqIHRhcmdldCB0ZXh0IGxpbWl0IG9mZnNldC4gRWFjaCB0YXJnZXRUZXh0IGhhcyBhIHZhbGlkIGNvbnRpZ3VvdXMgcmVnaW9uIAorICAgICAqIHRvIGl0ZXJhdGUgYW5kIHRoaXMgZGF0YSBtZW1iZXIgaXMgdGhlIG9mZnNldCB0byAxIGFmdGVyIHRoZSBsYXN0IHN1Y2gKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHJlZ2lvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RleHRMaW1pdE9mZnNldF87CisgICAgLyoqCisgICAgICogVXBvbiBjb21wbGV0aW9uIG9mIGEgc2VhcmNoLCBtX21hdGNoSW5kZXhfIHdpbGwgc3RvcmUgc3RhcnRpbmcgb2Zmc2V0IGluCisgICAgICogbV90ZXh0IGZvciB0aGUgbWF0Y2guIFRoZSBWYWx1ZSBET05FIGlzIHRoZSBkZWZhdWx0IHZhbHVlLiAKKyAgICAgKiBJZiB3ZSBhcmUgbm90IGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCBvciB0aGUgZW5kIG9mIHRoZSB0ZXh0IGFuZCAKKyAgICAgKiBtX21hdGNoZWRJbmRleF8gaXMgRE9ORSBpdCBtZWFucyB0aGF0IHdlIGNhbiBmaW5kIGFueSBtb3JlIG1hdGNoZXMgaW4gCisgICAgICogdGhhdCBwYXJ0aWN1bGFyIGRpcmVjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF0Y2hlZEluZGV4XzsgCisgICAgLyoqCisgICAgICogQ3VycmVudCBwYXR0ZXJuIHRvIHNlYXJjaCBmb3IKKyAgICAgKi8KKyAgICBwcml2YXRlIFBhdHRlcm4gbV9wYXR0ZXJuXzsKKyAgICAvKioKKyAgICAgKiBDb2xsYXRvciB3aG9zZSBydWxlcyBhcmUgdXNlZCB0byBwZXJmb3JtIHRoZSBzZWFyY2gKKyAgICAgKi8KKyAgICBwcml2YXRlIFJ1bGVCYXNlZENvbGxhdG9yIG1fY29sbGF0b3JfOworICAgIC8qKiAKKyAgICAgKiBUaGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgZm9yIHRoZSB0ZXh0IHNvdXJjZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX2NvbEVJdGVyXzsKKyAgICAvKiogCisgICAgICogVXRpbGl0eSBjb2xsYXRpb24gZWxlbWVudCwgdXNlZCB0aHJvdWdob3V0IHByb2dyYW0gZm9yIHRlbXBvcmFyeSAKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV91dGlsQ29sRUl0ZXJfOworICAgIC8qKgorICAgICAqIFRoZSBtYXNrIHVzZWQgb24gdGhlIGNvbGxhdGlvbiBlbGVtZW50cyB0byByZXRyaWV2ZSB0aGUgdmFsaWQgc3RyZW5ndGgKKyAgICAgKiB3ZWlnaHQgCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jZU1hc2tfOworICAgIC8qKgorICAgICAqIEJ1ZmZlciBzdG9yaW5nIGFjY2VudHMgZHVyaW5nIGEgY2Fub25pY2FsIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c187CisgICAgLyoqCisgICAgICogQnVmZmVyIHN0b3JpbmcgYWNjZW50cyBkdXJpbmcgYSBjYW5vbmljYWwgc2VhcmNoCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXzsKKyAgICAvKioKKyAgICAgKiBGbGFnIHRvIGluZGljYXRlIGlmIGNhbm9uaWNhbCBzZWFyY2ggaXMgdG8gYmUgZG9uZS4KKyAgICAgKiBFLmcgbG9va2luZyBmb3IgImFcdTAzMDAiIGluICJhXHUwMzE4XHUwMzAwIiB3aWxsIHlpZWxkIHRoZSBtYXRjaCBhdCAwLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzQ2Fub25pY2FsTWF0Y2hfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHNoaWZ0IHRhYmxlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfVEFCTEVfU0laRV8gPSAyNTc7IAorICAgIC8qKgorICAgICAqIEluaXRpYWwgYXJyYXkgc2l6ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTklUSUFMX0FSUkFZX1NJWkVfID0gMjU2OworICAgIC8qKgorICAgICAqIFV0aWxpdHkgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXyA9IDg7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4ZmY7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBidWZmZXIgZm9yIHJldHVybiB2YWx1ZXMgYW5kIHRlbXBvcmFyeSBzdG9yYWdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnVmZmVyX1tdID0gbmV3IGludFsyXTsKKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBIYXNoIGEgY29sbGF0aW9uIGVsZW1lbnQgZnJvbSBpdHMgZnVsbCBzaXplICgzMiBiaXRzKSBkb3duIGludG8gYQorICAgICAqIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gaW5kZXggaW50byB0aGUgc2hpZnQgdGFibGVzLiAgUmlnaHQKKyAgICAgKiBub3cgd2UgZG8gYSBtb2R1bHVzIGJ5IHRoZSBzaXplIG9mIHRoZSBoYXNoIHRhYmxlLgorICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gY29sbGFwc2VkIHZlcnNpb24gb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGhhc2goaW50IGNlKSAKKyAgICB7CisgICAgICAgIC8vIHRoZSBvbGQgdmFsdWUgVUNPTF9QUklNQVJZT1JERVIoY2UpICUgTUFYX1RBQkxFX1NJWkVfIGRvZXMgbm90IHdvcmsKKyAgICAgICAgLy8gd2VsbCB3aXRoIHRoZSBuZXcgY29sbGF0aW9uIHdoZXJlIG1vc3Qgb2YgdGhlIGxhdGluIDEgY2hhcmFjdGVycworICAgICAgICAvLyBhcmUgb2YgdGhlIHZhbHVlIHh4MDAweHh4LiB0aGVpciBoYXNoZXMgd2lsbCBtb3N0IG9mIHRoZSB0aW1lIGJlIDAKKyAgICAgICAgLy8gdG8gYmUgZGlzY3Vzc2VkIG9uIHRoZSBoYXNoIGFsZ28uCisgICAgICAgIHJldHVybiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGNlKSAlIE1BWF9UQUJMRV9TSVpFXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZmNkIHZhbHVlIGZvciBhIGNoYXJhY3RlciBhdCB0aGUgYXJndW1lbnQgaW5kZXguCisgICAgICogVGhpcyBtZXRob2QgdGFrZXMgaW50byBhY2NvdW50cyBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgY2hhbmdlcyB0aGUgb2Zmc2V0IGluIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IuCisgICAgICogQHBhcmFtIHN0ciBVVEYxNiBzdHJpbmcgd2hlcmUgY2hhcmFjdGVyIGZvciBmY2QgcmV0cmlldmFsIHJlc2lkZXMKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2hvc2UgZmNkIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gZmNkIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBnZXRGQ0QoQ2hhcmFjdGVySXRlcmF0b3Igc3RyLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgc3RyLnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIGNoYXIgY2ggPSBzdHIuY3VycmVudCgpOworICAgICAgICBjaGFyIHJlc3VsdCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgCisgICAgICAgIGlmICgocmVzdWx0ICE9IDApICYmIChzdHIuZ2V0RW5kSW5kZXgoKSAhPSBvZmZzZXQgKyAxKSAmJiAKKyAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIGNoID0gc3RyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIocmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZmNkIHZhbHVlIGZvciBhIGNoYXJhY3RlciBhdCB0aGUgYXJndW1lbnQgaW5kZXguCisgICAgICogVGhpcyBtZXRob2QgdGFrZXMgaW50byBhY2NvdW50cyBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgc3RyaW5nIHdoZXJlIGNoYXJhY3RlciBmb3IgZmNkIHJldHJpZXZhbCByZXNpZGVzCisgICAgICogQHBhcmFtIG9mZnNldCBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdob3NlIGZjZCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIGZjZCB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgZ2V0RkNEKFN0cmluZyBzdHIsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChvZmZzZXQpOworICAgICAgICBjaGFyIHJlc3VsdCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgCisgICAgICAgIGlmICgocmVzdWx0ICE9IDApICYmIChzdHIubGVuZ3RoKCkgIT0gb2Zmc2V0ICsgMSkgJiYgCisgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBjaCA9IHN0ci5jaGFyQXQob2Zmc2V0ICsgMSk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0dGluZyB0aGUgbW9kaWZpZWQgY29sbGF0aW9uIGVsZW1lbnRzIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbGxhdGlvbiAKKyAgICAqIGF0dHJpYnV0ZXMKKyAgICAqIEBwYXJhbSBjZSAKKyAgICAqIEByZXR1cm4gdGhlIG1vZGlmaWVkIGNvbGxhdGlvbiBlbGVtZW50CisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRDRShpbnQgY2UpCisgICAgeworICAgICAgICAvLyBub3RlIGZvciB0ZXJ0aWFyeSB3ZSBjYW4ndCB1c2UgdGhlIGNvbGxhdG9yLT50ZXJ0aWFyeU1hc2ssIHRoYXQKKyAgICAgICAgLy8gaXMgYSBwcmVwcm9jZXNzZWQgbWFzayB0aGF0IHRha2VzIGludG8gYWNjb3VudCBjYXNlIG9wdGlvbnMuIHNpbmNlCisgICAgICAgIC8vIHdlIGFyZSBvbmx5IGNvbmNlcm5lZCB3aXRoIGV4YWN0IG1hdGNoZXMsIHdlIGRvbid0IG5lZWQgdGhhdC4KKyAgICAgICAgY2UgJj0gbV9jZU1hc2tfOworICAgICAgICAKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCkpIHsKKyAgICAgICAgICAgIC8vIGFsdGVybmF0ZSBoYW5kbGluZyBoZXJlLCBzaW5jZSBvbmx5IHRoZSAxNiBtb3N0IHNpZ25pZmljYW50IAorICAgICAgICAgICAgLy8gZGlnaXRzIGlzIG9ubHkgdXNlZCwgd2UgY2FuIHNhZmVseSBkbyBhIGNvbXBhcmUgd2l0aG91dCBtYXNraW5nCisgICAgICAgICAgICAvLyBpZiB0aGUgY2UgaXMgYSB2YXJpYWJsZSwgd2UgbWFzayBhbmQgZ2V0IG9ubHkgdGhlIHByaW1hcnkgdmFsdWVzCisgICAgICAgICAgICAvLyBubyBzaGlmdGluZyB0byBxdWFydGVuYXJ5IGlzIHJlcXVpcmVkIHNpbmNlIGFsbCBwcmltYXJ5IHZhbHVlcworICAgICAgICAgICAgLy8gbGVzcyB0aGFuIHZhcmlhYmxldG9wIHdpbGwgbmVlZCB0byBiZSBtYXNrZWQgb2ZmIGFueXdheS4KKyAgICAgICAgICAgIGlmICgobV9jb2xsYXRvcl8ubV92YXJpYWJsZVRvcFZhbHVlXyAgPDwgMTYpID4gY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5RVUFURVJOQVJZKSB7CisgICAgICAgICAgICAgICAgICAgIGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihjZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFwcGVuZHMgYSBpbnQgdG8gYSBpbnQgYXJyYXksIGluY3JlYXNpbmcgdGhlIHNpemUgb2YgdGhlIGFycmF5IHdoZW4gCisgICAgICogd2UgYXJlIG91dCBvZiBzcGFjZS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGluIGFycmF5IHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcGFyYW0gYXJyYXkgdG8gYXBwZW5kIHRvCisgICAgICogQHJldHVybiB0aGUgYXJyYXkgYXBwZW5kZWQgdG8sIHRoaXMgY291bGQgYmUgYSBuZXcgYW5kIGJpZ2dlciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGFwcGVuZChpbnQgb2Zmc2V0LCBpbnQgdmFsdWUsIGludCBhcnJheVtdKQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA+PSBhcnJheS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGludCB0ZW1wW10gPSBuZXcgaW50W29mZnNldCArIElOSVRJQUxfQVJSQVlfU0laRV9dOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShhcnJheSwgMCwgdGVtcCwgMCwgYXJyYXkubGVuZ3RoKTsKKyAgICAgICAgICAgIGFycmF5ID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICBhcnJheVtvZmZzZXRdID0gdmFsdWU7CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6aW5nIHRoZSBjZSB0YWJsZSBmb3IgYSBwYXR0ZXJuLiBTdG9yZXMgbm9uLWlnbm9yYWJsZSBjb2xsYXRpb24gCisgICAgICoga2V5cy4gVGFibGUgc2l6ZSB3aWxsIGJlIGVzdGltYXRlZCBieSB0aGUgc2l6ZSBvZiB0aGUgcGF0dGVybiB0ZXh0LiAKKyAgICAgKiBUYWJsZSBleHBhbnNpb24gd2lsbCBiZSBwZXJmb3JtIGFzIHdlIGdvIGFsb25nLiBBZGRpbmcgMSB0byBlbnN1cmUgdGhhdCAKKyAgICAgKiB0aGUgdGFibGUgc2l6ZSBkZWZpbml0ZWx5IGluY3JlYXNlcy4KKyAgICAgKiBJbnRlcm5hbCBtZXRob2QsIHN0YXR1cyBhc3N1bWVkIHRvIGJlIGEgc3VjY2Vzcy4KKyAgICAgKiBAcmV0dXJuIHRvdGFsIG51bWJlciBvZiBleHBhbnNpb25zIAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGluaXRpYWxpemVQYXR0ZXJuQ0VUYWJsZSgpCisgICAgeworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3BhdHRlcm5fLnRhcmdldFRleHQpOworICAgICAgICAKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgIAorICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaW50IG5ld2NlID0gZ2V0Q0UoY2UpOworICAgICAgICAgICAgaWYgKG5ld2NlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VfID0gYXBwZW5kKG9mZnNldCwgbmV3Y2UsIG1fcGF0dGVybl8ubV9DRV8pOworICAgICAgICAgICAgICAgIG9mZnNldCArKzsgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCArPSBtX3V0aWxDb2xFSXRlcl8uZ2V0TWF4RXhwYW5zaW9uKGNlKSAtIDE7CisgICAgICAgICAgICBjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbV9wYXR0ZXJuXy5tX0NFXyA9IGFwcGVuZChvZmZzZXQsIDAsIG1fcGF0dGVybl8ubV9DRV8pOworICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID0gb2Zmc2V0OworICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgcGF0dGVybiBzdHJ1Y3QuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBzdWNjZXNzLgorICAgICAqIEByZXR1cm4gZXhwYW5zaW9uc2l6ZSB0aGUgdG90YWwgZXhwYW5zaW9uIHNpemUgb2YgdGhlIHBhdHRlcm4KKyAgICAgKi8gCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgaW5pdGlhbGl6ZVBhdHRlcm4oKQorICAgIHsKKyAgICAgICAgbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfID0gKGdldEZDRChtX3BhdHRlcm5fLnRhcmdldFRleHQsIDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pICE9IDA7CisgICAgICAgIG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyA9IChnZXRGQ0QobV9wYXR0ZXJuXy50YXJnZXRUZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLnRhcmdldFRleHQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAxKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBMQVNUX0JZVEVfTUFTS18pICE9IDA7CisgICAgICAgIC8vIHNpbmNlIGludGlhbGl6ZVBhdHRlcm4gaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHN0YXR1cyBpcyBhIHN1Y2Nlc3MuCisgICAgICAgIHJldHVybiBpbml0aWFsaXplUGF0dGVybkNFVGFibGUoKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6aW5nIHNoaWZ0IHRhYmxlcywgd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgICAgICogSWYgYSBjb3JyZXNwb25kaW5nIGRlZmF1bHQgdmFsdWUgaXMgMCwgdGhlIHNoaWZ0IHRhYmxlIGlzIG5vdCBzZXQuCisgICAgICogQHBhcmFtIHNoaWZ0IHRhYmxlIGZvciBmb3J3YXJkcyBzaGlmdCAKKyAgICAgKiBAcGFyYW0gYmFja3NoaWZ0IHRhYmxlIGZvciBiYWNrd2FyZHMgc2hpZnQKKyAgICAgKiBAcGFyYW0gY2V0YWJsZSB0YWJsZSBjb250YWluaW5nIHBhdHRlcm4gY2UKKyAgICAgKiBAcGFyYW0gY2VzaXplIHNpemUgb2YgdGhlIHBhdHRlcm4gY2VzCisgICAgICogQHBhcmFtIGV4cGFuc2lvbnNpemUgdG90YWwgc2l6ZSBvZiB0aGUgZXhwYW5zaW9ucworICAgICAqIEBwYXJhbSBkZWZhdWx0Zm9yd2FyZCB0aGUgZGVmYXVsdCBmb3J3YXJkIHZhbHVlCisgICAgICogQHBhcmFtIGRlZmF1bHRiYWNrd2FyZCB0aGUgZGVmYXVsdCBiYWNrd2FyZCB2YWx1ZQorICAgICAqLworICAgICBwcml2YXRlIGZpbmFsIHZvaWQgc2V0U2hpZnRUYWJsZShjaGFyIHNoaWZ0W10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYmFja3NoaWZ0W10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjZXRhYmxlW10sIGludCBjZXNpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGFuc2lvbnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBkZWZhdWx0Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGVmYXVsdGJhY2t3YXJkKQorICAgIHsKKyAgICAgICAgLy8gZXN0aW1hdGUgdGhlIHZhbHVlIHRvIHNoaWZ0LiB0byBkbyB0aGF0IHdlIGVzdGltYXRlIHRoZSBzbWFsbGVzdCAKKyAgICAgICAgLy8gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gZ2l2ZSB0aGUgcmVsZXZhbnQgY2VzLCBpZSBhcHByb3hpbWF0ZWx5CisgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgY2VzIG1pbnVzIHRoZWlyIGV4cGFuc2lvbiwgc2luY2UgZXhwYW5zaW9ucyBjYW4gY29tZSAKKyAgICAgICAgLy8gZnJvbSBhIGNoYXJhY3Rlci4KKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IE1BWF9UQUJMRV9TSVpFXzsgY291bnQgKyspIHsKKyAgICAgICAgICAgIHNoaWZ0W2NvdW50XSA9IGRlZmF1bHRmb3J3YXJkOworICAgICAgICB9CisgICAgICAgIGNlc2l6ZSAtLTsgLy8gZG93biB0byB0aGUgbGFzdCBpbmRleAorICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgY2VzaXplOyBjb3VudCArKykgeworICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGNlcyBmcm9tIHJpZ2h0IG9mIGFycmF5IHRvIHRoZSBjb3VudAorICAgICAgICAgICAgaW50IHRlbXAgPSBkZWZhdWx0Zm9yd2FyZCAtIGNvdW50IC0gMTsKKyAgICAgICAgICAgIHNoaWZ0W2hhc2goY2V0YWJsZVtjb3VudF0pXSA9IHRlbXAgPiAxID8gKChjaGFyKXRlbXApIDogMTsKKyAgICAgICAgfQorICAgICAgICBzaGlmdFtoYXNoKGNldGFibGVbY2VzaXplXSldID0gMTsKKyAgICAgICAgLy8gZm9yIGlnbm9yYWJsZXMgd2UganVzdCBzaGlmdCBieSBvbmUuIHNlZSB0ZXN0IGV4YW1wbGVzLgorICAgICAgICBzaGlmdFtoYXNoKDApXSA9IDE7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgTUFYX1RBQkxFX1NJWkVfOyBjb3VudCArKykgeworICAgICAgICAgICAgYmFja3NoaWZ0W2NvdW50XSA9IGRlZmF1bHRiYWNrd2FyZDsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBjb3VudCA9IGNlc2l6ZTsgY291bnQgPiAwOyBjb3VudCAtLSkgeworICAgICAgICAgICAgLy8gdGhlIG9yaWdpbmFsIHZhbHVlIGNvdW50IGRvZXMgbm90IHNlZW0gdG8gd29yaworICAgICAgICAgICAgYmFja3NoaWZ0W2hhc2goY2V0YWJsZVtjb3VudF0pXSA9IChjaGFyKShjb3VudCA+IGV4cGFuc2lvbnNpemUgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0gZXhwYW5zaW9uc2l6ZSA6IDEpOworICAgICAgICB9CisgICAgICAgIGJhY2tzaGlmdFtoYXNoKGNldGFibGVbMF0pXSA9IDE7CisgICAgICAgIGJhY2tzaGlmdFtoYXNoKDApXSA9IDE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkJ1aWxkaW5nIG9mIHRoZSBwYXR0ZXJuIGNvbGxhdGlvbiBlbGVtZW50IGxpc3QgYW5kIHRoZSBCb3llciBNb29yZSAKKyAgICAgKiBTdHJpbmdTZWFyY2ggdGFibGUuPC9wPgorICAgICAqIDxwPlRoZSBjYW5vbmljYWwgbWF0Y2ggd2lsbCBvbmx5IGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgZGVmYXVsdCBtYXRjaCAKKyAgICAgKiBmYWlscy48L3A+CisgICAgICogPHA+Rm9yIGJvdGggY2FzZXMgd2UgbmVlZCB0byByZW1lbWJlciB0aGUgc2l6ZSBvZiB0aGUgY29tcG9zZWQgYW5kIAorICAgICAqIGRlY29tcG9zZWQgdmVyc2lvbnMgb2YgdGhlIHN0cmluZy4gU2luY2UgdGhlIEJveWVyLU1vb3JlIHNoaWZ0IAorICAgICAqIGNhbGN1bGF0aW9ucyBzaGlmdHMgYnkgYSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBhbmQgdHJpZXMgdG8gCisgICAgICogbWF0Y2ggdGhlIHBhdHRlcm4gZnJvbSB0aGF0IG9mZnNldCwgdGhlIHNoaWZ0IHZhbHVlIGNhbiBub3QgYmUgdG9vIGxhcmdlIAorICAgICAqIGluIGNhc2Ugd2UgbWlzcyBzb21lIGNoYXJhY3RlcnMuIFRvIGNob29zZSBhIHJpZ2h0IHNoaWZ0IHNpemUsIHdlIAorICAgICAqIGVzdGltYXRlIHRoZSBORkMgZm9ybSBvZiB0aGUgYW5kIHVzZSBpdHMgc2l6ZSBhcyBhIHNoaWZ0IGd1aWRlLiBUaGUgTkZDIAorICAgICAqIGZvcm0gc2hvdWxkIGJlIHRoZSBzbWFsbCBwb3NzaWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGF0dGVybi4gQW55d2F5cywgCisgICAgICogd2UnbGwgZXJyIG9uIHRoZSBzbWFsbGVyIHNoaWZ0IHNpemUuIEhlbmNlIHRoZSBjYWxjdWxhdGlvbiBmb3IgCisgICAgICogbWlubGVuZ3RoLiBDYW5vbmljYWwgbWF0Y2ggd2lsbCBiZSBwZXJmb3JtZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkuIFdlJ2xsIAorICAgICAqIHNwbGl0IHRoZSBwYXR0ZXJuIGludG8gMyBwYXJ0cywgdGhlIHByZWZpeCBhY2NlbnRzIChQQSksIHRoZSBtaWRkbGUgCisgICAgICogc3RyaW5nIGJvdW5kZWQgYnkgdGhlIGZpcnN0IGFuZCBsYXN0IGJhc2UgY2hhcmFjdGVyIChNUyksIHRoZSBlbmRpbmcgCisgICAgICogYWNjZW50cyAoRUEpLiBNYXRjaGVzIHdpbGwgYmUgZG9uZSBvbiBNUyBmaXJzdCwgYW5kIG9ubHkgd2hlbiB3ZSBtYXRjaCAKKyAgICAgKiBNUyB0aGVuIHNvbWUgcHJvY2Vzc2luZyB3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgcHJlZml4IGFuZCBlbmQgYWNjZW50cyAKKyAgICAgKiBpbiBvcmRlciB0byBkZXRlcm1pbmUgaWYgdGhleSBtYXRjaCBQQSBhbmQgRUEuIEhlbmNlIHRoZSBkZWZhdWx0IHNoaWZ0IAorICAgICAqIHZhbHVlcyBmb3IgdGhlIGNhbm9uaWNhbCBtYXRjaCB3aWxsIHRha2UgdGhlIHNpemUgb2YgZWl0aGVyIGVuZCdzIGFjY2VudCAKKyAgICAgKiBpbnRvIGNvbnNpZGVyYXRpb24uIEZvcndhcmRzIHNlYXJjaCB3aWxsIHRha2UgdGhlIGVuZCBhY2NlbnRzIGludG8gCisgICAgICogY29uc2lkZXJhdGlvbiBmb3IgdGhlIGRlZmF1bHQgc2hpZnQgdmFsdWVzIGFuZCB0aGUgYmFja3dhcmRzIHNlYXJjaCB3aWxsIAorICAgICAqIHRha2UgdGhlIHByZWZpeCBhY2NlbnRzIGludG8gY29uc2lkZXJhdGlvbi48L3A+CisgICAgICogPHA+SWYgcGF0dGVybiBoYXMgbm8gbm9uLWlnbm9yYWJsZSBjZSwgd2UgcmV0dXJuIGEgaWxsZWdhbCBhcmd1bWVudCAKKyAgICAgKiBlcnJvci48L3A+CisgICAgICovIAorICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbml0aWFsaXplKCkKKyAgICB7CisgICAgICAgIGludCBleHBhbmRsZW5ndGggID0gaW5pdGlhbGl6ZVBhdHRlcm4oKTsgICAKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICBjaGFyIG1pbmxlbmd0aCA9IChjaGFyKShtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID4gZXhwYW5kbGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSBleHBhbmRsZW5ndGggOiAxKTsKKyAgICAgICAgICAgIG1fcGF0dGVybl8ubV9kZWZhdWx0U2hpZnRTaXplXyA9IG1pbmxlbmd0aDsKKyAgICAgICAgICAgIHNldFNoaWZ0VGFibGUobV9wYXR0ZXJuXy5tX3NoaWZ0XywgbV9wYXR0ZXJuXy5tX2JhY2tTaGlmdF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VfLCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kbGVuZ3RoLCBtaW5sZW5ndGgsIG1pbmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV8gPSAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBzZWFyY2ggdGV4dCBib3VuZGVkIGJ5IHRoZSBvZmZzZXQgc3RhcnQgYW5kIGVuZCBpcyAKKyAgICAgKiBvbmUgb3IgbW9yZSB3aG9sZSB1bml0cyBvZiB0ZXh0IGFzIGRldGVybWluZWQgYnkgdGhlIGJyZWFraXRlcmF0b3IgaW4gCisgICAgICogU3RyaW5nU2VhcmNoLgorICAgICAqIEBwYXJhbSBzdGFydCB0YXJnZXQgdGV4dCBzdGFydCBvZmZzZXQKKyAgICAgKiBAcGFyYW0gZW5kIHRhcmdldCB0ZXh0IGVuZCBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNCcmVha1VuaXQoaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBzdGFydGluZGV4ID0gYnJlYWtJdGVyYXRvci5maXJzdCgpOworICAgICAgICAgICAgaW50IGVuZGluZGV4ICAgPSBicmVha0l0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gb3V0LW9mLXJhbmdlIGluZGV4ZXMgYXJlIG5ldmVyIGJvdW5kYXJ5IHBvc2l0aW9ucworICAgICAgICAgICAgaWYgKHN0YXJ0IDwgc3RhcnRpbmRleCB8fCBzdGFydCA+IGVuZGluZGV4IHx8IGVuZCA8IHN0YXJ0aW5kZXggCisgICAgICAgICAgICAgICAgfHwgZW5kID4gZW5kaW5kZXgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdlIGNhbiB1c2UgZm9sbG93aW5nKCkgb24gdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgCisgICAgICAgICAgICAvLyBzcGVjaWZpZWQgb25lIGFuZCByZXR1cm4gdHJ1ZSBvZiB0aGUgcG9zaXRpb24gd2UgZ2V0IGJhY2sgaXMgdGhlIAorICAgICAgICAgICAgLy8gb25lIHRoZSB1c2VyIHNwZWNpZmllZAorICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSAoc3RhcnQgPT0gc3RhcnRpbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJyZWFrSXRlcmF0b3IuZm9sbG93aW5nKHN0YXJ0IC0gMSkgPT0gc3RhcnQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoZW5kID09IGVuZGluZGV4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJyZWFrSXRlcmF0b3IuZm9sbG93aW5nKGVuZCAtIDEpID09IGVuZCk7CisgICAgICAgICAgICBpZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZXMgdGhlIGluZGl2aWR1YWwgY2VzCisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoCisgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIodGFyZ2V0VGV4dCksIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fdXRpbENvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgbmV4dGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ29sRUl0ZXJfLmdldE9mZnNldCgpID09IGVuZCAKKyAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2V0Q0UobmV4dGNlKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7ICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobmV4dGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgICYmIG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKSA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZXh0cmEgY29sbGF0aW9uIGVsZW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIG1hdGNoCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9mZnNldCBpZiBjdXJyZW50IG9mZnNldCBpcyBhbiBhY2NlbnQsIAorICAgICAqIG9yIHRoZSBjdXJyZW50IG9mZnNldCBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgY29udGFpbnMgYSBiYXNlIGNoYXJhY3Rlci4gCisgICAgICogYWNjZW50cyB0aGUgZm9sbG93aW5nIGJhc2UgY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBAcGFyYW0gdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBjdXJyZW50IG9mZnNldAorICAgICAqIEBwYXJhbSB0ZXh0bGVuZ3RoIGxlbmd0aCBvZiB0ZXh0IHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIG5leHQgYmFzZSBjaGFyYWN0ZXIgb3IgdGhlIGN1cnJlbnQgb2Zmc2V0CisgICAgICogICAgICAgICBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgY29udGFpbnMgYSBiYXNlIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXROZXh0QmFzZU9mZnNldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAodGV4dG9mZnNldCA8IHRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgd2hpbGUgKHRleHQuZ2V0SW5kZXgoKSA8IHRleHQuZ2V0RW5kSW5kZXgoKSkgeyAKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0ZXh0LCB0ZXh0b2Zmc2V0ICsrKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9mZnNldCBkZXBlbmRpbmcgb24gdGhlIHN0cmluZyBzZWFyY2ggCisgICAgICogcGF0dGVybiBkYXRhCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb25lIG9mZnNldCBhd2F5IGZyb20gdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICogICAgICAgICAgICAgICAgICAgdG8gc2VhcmNoIGZvci4KKyAgICAgKiBAcmV0dXJuIHN0YXJ0IGluZGV4IG9mIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9yIHRoZSBjdXJyZW50IG9mZnNldAorICAgICAqICAgICAgICAgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0TmV4dEJhc2VPZmZzZXQoaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIAorICAgICAgICAgICAgJiYgdGV4dG9mZnNldCA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIHRhcmdldFRleHQucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNoaWZ0aW5nIHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciBwb3NpdGlvbiBmb3J3YXJkIHRvIHByZXBhcmUgZm9yCisgICAgICogYSBmb2xsb3dpbmcgbWF0Y2guIElmIHRoZSBsYXN0IGNoYXJhY3RlciBpcyBhIHVuc2FmZSBjaGFyYWN0ZXIsIHdlJ2xsIAorICAgICAqIG9ubHkgc2hpZnQgYnkgMSB0byBjYXB0dXJlIGNvbnRyYWN0aW9ucywgbm9ybWFsaXphdGlvbiBldGMuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBzdWNjZXNzLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IHN0YXJ0IHRleHQgcG9zaXRpb24gdG8gZG8gc2VhcmNoCisgICAgICogQHBhcmFtIGNlIHRoZSB0ZXh0IGNlIHdoaWNoIGZhaWxlZCB0aGUgbWF0Y2guCisgICAgICogQHBhcmFtIHBhdHRlcm5jZWluZGV4IGluZGV4IG9mIHRoZSBjZSB3aXRoaW4gdGhlIHBhdHRlcm4gY2UgYnVmZmVyIHdoaWNoCisgICAgICogICAgICAgIGZhaWxlZCB0aGUgbWF0Y2gKKyAgICAgKiBAcmV0dXJuIGZpbmFsIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IHNoaWZ0Rm9yd2FyZChpbnQgdGV4dG9mZnNldCwgaW50IGNlLCBpbnQgcGF0dGVybmNlaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICB7CisgICAgICAgIGlmIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpbnQgc2hpZnQgPSBtX3BhdHRlcm5fLm1fc2hpZnRfW2hhc2goY2UpXTsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgdG8gYWRqdXN0IGZvciBjaGFyYWN0ZXJzIGluIHRoZSBtaWRkbGUgb2YgdGhlIAorICAgICAgICAgICAgLy8gc3Vic3RyaW5nIGZvciBtYXRjaGluZyB0aGF0IGZhaWxlZC4KKyAgICAgICAgICAgIGludCBhZGp1c3QgPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gcGF0dGVybmNlaW5kZXg7CisgICAgICAgICAgICBpZiAoYWRqdXN0ID4gMSAmJiBzaGlmdCA+PSBhZGp1c3QpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCAtPSBhZGp1c3QgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dG9mZnNldCArPSBzaGlmdDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgKz0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgdGV4dG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICAvLyBjaGVjayBmb3IgdW5zYWZlIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gKiBpZiBpdCBpcyB0aGUgc3RhcnQgb3IgbWlkZGxlIG9mIGEgY29udHJhY3Rpb246IHRvIGJlIGRvbmUgYWZ0ZXIgCisgICAgICAgIC8vICAgYSBpbml0aWFsIG1hdGNoIGlzIGZvdW5kCisgICAgICAgIC8vICogdGhhaSBvciBsYW8gYmFzZSBjb25zb25hbnQgY2hhcmFjdGVyOiBzaW1pbGFyIHRvIGNvbnRyYWN0aW9uCisgICAgICAgIC8vICogaGlnaCBzdXJyb2dhdGUgY2hhcmFjdGVyOiBzaW1pbGFyIHRvIGNvbnRyYWN0aW9uCisgICAgICAgIC8vICogbmV4dCBjaGFyYWN0ZXIgaXMgYSBhY2NlbnQ6IHNoaWZ0IHRvIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyCisgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIG5leHQgc2FmZSBwb2ludCBpbiB0ZXh0LgorICAgICAqIGllLiBub3QgdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uLCBzd2FwcGFibGUgY2hhcmFjdGVycyBvciAKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHN0cmluZworICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IGluIHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIHRoZSBuZXh0IHNhZmUgY2hhcmFjdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0TmV4dFNhZmVPZmZzZXQoaW50IHRleHRvZmZzZXQsIGludCBlbmQpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dG9mZnNldDsgLy8gZmlyc3QgY29udHJhY3Rpb24gY2hhcmFjdGVyCisgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdCAhPSBlbmQgJiYgCisgICAgICAgICAgICBtX2NvbGxhdG9yXy5pc1Vuc2FmZSh0YXJnZXRUZXh0LmN1cnJlbnQoKSkpIHsKKyAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OyAKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFRoaXMgY2hlY2tzIGZvciBhY2NlbnRzIGluIHRoZSBwb3RlbnRpYWwgbWF0Y2ggc3RhcnRlZCB3aXRoIGEgY29tcG9zaXRlIAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBUaGlzIGlzIHJlYWxseSBwYWluZnVsLi4uIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBjb21wb3NpdGUgY2hhcmFjdGVyIGRvIAorICAgICAqIG5vdCBoYXZlIGFueSBleHRyYSBhY2NlbnRzLiBXZSBoYXZlIHRvIG5vcm1hbGl6ZSB0aGUgcG90ZW50aWFsIG1hdGNoIGFuZCAKKyAgICAgKiBmaW5kIHRoZSBpbW1lZGlhdGUgZGVjb21wb3NlZCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBtYXRjaC4KKyAgICAgKiBUaGUgZmlyc3QgY29tcG9zaXRlIGNoYXJhY3RlciB3b3VsZCBoYXZlIGJlZW4gdGFrZW4gY2FyZSBvZiBieSB0aGUgZmNkIAorICAgICAqIGNoZWNrcyBpbiBjaGVja0ZvcndhcmRFeGFjdE1hdGNoLgorICAgICAqIFRoaXMgaXMgdGhlIHNsb3cgcGF0aCBhZnRlciB0aGUgZmNkIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kIAorICAgICAqIHRoZSBsYXN0IGNoYXJhY3RlciBoYXMgYmVlbiBjaGVja2VkIGJ5IGNoZWNrRm9yd2FyZEV4YWN0TWF0Y2ggYW5kIHdlIAorICAgICAqIGRldGVybWluZSB0aGF0IHRoZSBwb3RlbnRpYWwgbWF0Y2ggaGFzIGV4dHJhIG5vbi1pZ25vcmFibGUgcHJlY2VkaW5nCisgICAgICogY2VzLgorICAgICAqIEUuZy4gbG9va2luZyBmb3IgXHUwMzAxIGFjdXRlIGluIFx1MDFGQSBBIHJpbmcgYWJvdmUgYW5kIGFjdXRlLCAKKyAgICAgKiBjaGVja0V4dHJhTWF0Y2hBY2NlbnQgc2hvdWxkIGZhaWwgc2luY2UgdGhlcmUgaXMgYSBtaWRkbGUgcmluZyBpbiAKKyAgICAgKiBcdTAxRkEgTm90ZSBoZXJlIHRoYXQgYWNjZW50cyBjaGVja2luZyBhcmUgc2xvdyBhbmQgY2F1dGlvbmVkIGluIHRoZSBBUEkgCisgICAgICogZG9jcy4KKyAgICAgKiBJbnRlcm5hbCBtZXRob2QsIHN0YXR1cyBhc3N1bWVkIHRvIGJlIGEgc3VjY2VzcywgY2FsbGVyIHNob3VsZCBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggb2YgdGhlIHBvdGVudGlhbCB1bmZyaWVuZGx5IGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gZW5kIGluZGV4IG9mIHRoZSBwb3RlbnRpYWwgdW5mcmllbmRseSBjb21wb3NpdGUgY2hhcmFjdGVyCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIG5vbi1pZ25vcmFibGUgYWNjZW50cyBiZWZvcmUgYXQgdGhlIGJlZ2lubmluZworICAgICAqICAgICAgICAgICAgICBvZiB0aGUgbWF0Y2gsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tFeHRyYU1hdGNoQWNjZW50cyhpbnQgc3RhcnQsIGludCBlbmQpCisgICAgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0Lm5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRleHQucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBhcmUgb25seSBjb25jZXJuZWQgd2l0aCB0aGUgZmlyc3QgY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soc3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICAgICAgaW50IHNhZmVvZmZzZXQgPSBnZXROZXh0U2FmZU9mZnNldChzdGFydCwgZW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoc2FmZW9mZnNldCAhPSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgc2FmZW9mZnNldCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIuc3Vic3RyaW5nKDAsIHNhZmVvZmZzZXQgLSBzdGFydCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChkZWNvbXApOworICAgICAgICAgICAgICAgIGludCBmaXJzdGNlID0gbV9wYXR0ZXJuXy5tX0NFX1swXTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGlnbm9yYWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgaW50IGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZmlyc3RjZSkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBtX3V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjZSAhPSBmaXJzdGNlIAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JhYmxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsgLy8gYmFjayB1cCAxIHRvIHRoZSAKKyAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8ucHJldmlvdXMoKTsgICAgICAgICAgICAgLy8gcmlnaHQgb2Zmc2V0CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbV91dGlsQ29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICFpZ25vcmFibGUgJiYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmNoYXJBdChkZWNvbXAsIG9mZnNldCkpICE9IDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogVXNlZCBieSBleGFjdCBtYXRjaGVzLCBjaGVja3MgaWYgdGhlcmUgYXJlIGFjY2VudHMgYmVmb3JlIHRoZSBtYXRjaC4gCisgICAgKiBUaGlzIGlzIHJlYWxseSBwYWluZnVsLi4uIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBjb21wb3NpdGUgY2hhcmFjdGVycyBhdAorICAgICogdGhlIHN0YXJ0IG9mIHRoZSBtYXRjaGVzIGhhdmUgdG8gbm90IGhhdmUgYW55IGV4dHJhIGFjY2VudHMuIAorICAgICogV2UgY2hlY2sgdGhlIEZDRCBvZiB0aGUgY2hhcmFjdGVyIGZpcnN0LCBpZiBpdCBzdGFydHMgd2l0aCBhbiBhY2NlbnQgYW5kIAorICAgICogdGhlIGZpcnN0IHBhdHRlcm4gY2UgZG9lcyBub3QgbWF0Y2ggdGhlIGZpcnN0IGNlIG9mIHRoZSBjaGFyYWN0ZXIsIHdlIAorICAgICogYmFpbC4KKyAgICAqIE90aGVyd2lzZSB3ZSB0cnkgbm9ybWFsaXppbmcgdGhlIGZpcnN0IGNvbXBvc2l0ZSAKKyAgICAqIGNoYXJhY3RlciBhbmQgZmluZCB0aGUgaW1tZWRpYXRlIGRlY29tcG9zZWQgY2hhcmFjdGVyIGJlZm9yZSB0aGUgbWF0Y2ggdG8gCisgICAgKiBzZWUgaWYgaXQgaXMgYW4gbm9uLWlnbm9yYWJsZSBhY2NlbnQuCisgICAgKiBOb3cgbm9ybWFsaXppbmcgdGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIgaXMgZW5vdWdoIGJlY2F1c2Ugd2UgZW5zdXJlIAorICAgICogdGhhdCB3aGVuIHRoZSBtYXRjaCBpcyBwYXNzZWQgaW4gaGVyZSB3aXRoIGV4dHJhIGJlZ2lubmluZyBjZXMsIHRoZSAKKyAgICAqIGZpcnN0IG9yIGxhc3QgY2UgdGhhdCBtYXRjaCBoYXMgdG8gb2NjdXIgd2l0aGluIHRoZSBmaXJzdCBjaGFyYWN0ZXIuCisgICAgKiBFLmcuIGxvb2tpbmcgZm9yIFx1MDMwMSBhY3V0ZSBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisgICAgKiBjaGVja0V4dHJhTWF0Y2hBY2NlbnQgc2hvdWxkIGZhaWwgc2luY2UgdGhlcmUgaXMgYSBtaWRkbGUgcmluZyBpbiBcdTAxRkEKKyAgICAqIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIGRvY3MuCisgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IAorICAgICogQHBhcmFtIGVuZCBvZmZzZXQKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBhcmUgYWNjZW50cyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgbWF0Y2gsIAorICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBoYXNBY2NlbnRzQmVmb3JlTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGlmIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18pIHsKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgYmVlbiBpdGVyYXRpbmcgZm9yd2FyZHMgcHJldmlvdXNseQorICAgICAgICAgICAgYm9vbGVhbiBpZ25vcmFibGUgPSB0cnVlOworICAgICAgICAgICAgaW50IGZpcnN0Y2UgPSBtX3BhdHRlcm5fLm1fQ0VfWzBdOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoc3RhcnQpOworICAgICAgICAgICAgaW50IGNlICA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZmlyc3RjZSkgeworICAgICAgICAgICAgICAgIGlmIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGlnbm9yYWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlnbm9yYWJsZSAmJiBtX2NvbEVJdGVyXy5pc0luQnVmZmVyKCkpIHsKKyAgICAgICAgICAgICAgICAvLyB3aXRoaW4gbm9ybWFsaXphdGlvbiBidWZmZXIsIGRpc2NvbnRpZ3VvdXMgaGFuZGxlZCBoZXJlCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB3aXRoaW4gdGV4dAorICAgICAgICAgICAgYm9vbGVhbiBhY2NlbnQgPSAoZ2V0RkNEKHRhcmdldFRleHQsIHN0YXJ0KSA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gMDsgCisgICAgICAgICAgICBpZiAoIWFjY2VudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBjaGVja0V4dHJhTWF0Y2hBY2NlbnRzKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpZ25vcmFibGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGFydCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBjZSA9IG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVzZWQgYnkgZXhhY3QgbWF0Y2hlcywgY2hlY2tzIGlmIHRoZXJlIGFyZSBhY2NlbnRzIGJvdW5kaW5nIHRoZSBtYXRjaC4KKyAgICAgKiBOb3RlIHRoaXMgaXMgdGhlIGluaXRpYWwgYm91bmRhcnkgY2hlY2suIElmIHRoZSBwb3RlbnRpYWwgbWF0Y2gKKyAgICAgKiBzdGFydHMgb3IgZW5kcyB3aXRoIGNvbXBvc2l0ZSBjaGFyYWN0ZXJzLCB0aGUgYWNjZW50cyBpbiB0aG9zZQorICAgICAqIGNoYXJhY3RlcnMgd2lsbCBiZSBkZXRlcm1pbmVkIGxhdGVyLgorICAgICAqIE5vdCBkb2luZyBiYWNrd2FyZHMgaXRlcmF0aW9uIGhlcmUsIHNpbmNlIGRpc2NvbnRpZ3VvcyBjb250cmFjdGlvbiBmb3IgCisgICAgICogYmFja3dhcmRzIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yLCB1c2UgdXAgdG9vIG1hbnkgY2hhcmFjdGVycy4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yIFx1MDMwQSByaW5nIGluIFx1MDFGQSBBIHJpbmcgYWJvdmUgYW5kIGFjdXRlLCAKKyAgICAgKiBzaG91bGQgZmFpbCBzaW5jZSB0aGVyZSBpcyBhIGFjdXRlIGF0IHRoZSBlbmQgb2YgXHUwMUZBCisgICAgICogTm90ZSBoZXJlIHRoYXQgYWNjZW50cyBjaGVja2luZyBhcmUgc2xvdyBhbmQgY2F1dGlvbmVkIGluIHRoZSBBUEkgZG9jcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIG1hdGNoCisgICAgICogQHBhcmFtIGVuZCBlbmQgb2Zmc2V0IG9mIHRoZSBtYXRjaAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBhcmUgYWNjZW50cyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgbWF0Y2gsIAorICAgICAqICAgICAgICAgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGhhc0FjY2VudHNBZnRlck1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBpZiAoZW5kID4gbV90ZXh0QmVnaW5PZmZzZXRfIAorICAgICAgICAgICAgICAgICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPiBtX3RleHRCZWdpbk9mZnNldF8gJiYKKyAgICAgICAgICAgICAgICAgICAgIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgZmlyc3RjZSAgPSBtX3BhdHRlcm5fLm1fQ0VfWzBdOworICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKSAhPSBmaXJzdGNlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgICAgIGlmIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpIDw9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgZW5kKSA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICAgICAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogQ2hlY2tzIGlmIHRoZSBvZmZzZXQgcnVucyBvdXQgb2YgdGhlIHRleHQgc3RyaW5nIHJhbmdlCisgICAgKiBAcGFyYW0gdGV4dHN0YXJ0IG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSByYW5nZQorICAgICogQHBhcmFtIHRleHRsaW1pdCBsaW1pdCBvZmZzZXQgb2YgdGhlIHRleHQgc3RyaW5nIHJhbmdlCisgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzT3V0T2ZCb3VuZHMoaW50IHRleHRzdGFydCwgaW50IHRleHRsaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9mZnNldCA8IHRleHRzdGFydCB8fCBvZmZzZXQgPiB0ZXh0bGltaXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBmb3IgaWRlbnRpY2FsIG1hdGNoCisgICAgICogQHBhcmFtIHN0cnNyY2ggc3RyaW5nIHNlYXJjaCBkYXRhCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3NzaWJsZSBtYXRjaAorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvc3NpYmxlIG1hdGNoCisgICAgICogQHJldHVybiB0cnVlIGlmIGlkZW50aWNhbCBtYXRjaCBpcyBmb3VuZAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0lkZW50aWNhbChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuSURFTlRJQ0FMKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgdGV4dHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBzdGFydCwgZW5kIC0gc3RhcnQpOworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHRleHRzdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIHRleHRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXh0c3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhdHRlcm5zdHIgPSBtX3BhdHRlcm5fLnRhcmdldFRleHQ7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2socGF0dGVybnN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgcGF0dGVybnN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHBhdHRlcm5zdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dHN0ci5lcXVhbHMocGF0dGVybnN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyB0byBzZWUgaWYgdGhlIG1hdGNoIGlzIHJlcGVhdGVkCisgICAgICogQHBhcmFtIHN0YXJ0IG5ldyBtYXRjaCBzdGFydCBpbmRleAorICAgICAqIEBwYXJhbSBsaW1pdCBuZXcgbWF0Y2ggbGltaXQgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRoZSBtYXRjaCBpcyByZXBlYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrUmVwZWF0ZWRNYXRjaChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChtX21hdGNoZWRJbmRleF8gPT0gRE9ORSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBlbmQgPSBsaW1pdCAtIDE7IC8vIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBtYXRjaAorICAgICAgICBpbnQgbGFzdG1hdGNoZW5kID0gbV9tYXRjaGVkSW5kZXhfICsgbWF0Y2hMZW5ndGggLSAxOyAKKyAgICAgICAgaWYgKCFpc092ZXJsYXBwaW5nKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAoc3RhcnQgPj0gbV9tYXRjaGVkSW5kZXhfICYmIHN0YXJ0IDw9IGxhc3RtYXRjaGVuZCkgCisgICAgICAgICAgICAgICAgICAgIHx8IChlbmQgPj0gbV9tYXRjaGVkSW5kZXhfICYmIGVuZCA8PSBsYXN0bWF0Y2hlbmQpCisgICAgICAgICAgICAgICAgICAgIHx8IChzdGFydCA8PSBtX21hdGNoZWRJbmRleF8gJiYgZW5kID49IGxhc3RtYXRjaGVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXJ0IDw9IG1fbWF0Y2hlZEluZGV4XyAmJiBlbmQgPj0gbGFzdG1hdGNoZW5kOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgbWF0Y2ggZm9yIGNvbnRyYWN0aW9uLiAKKyAgICAgKiBJZiB0aGUgbWF0Y2ggZW5kcyB3aXRoIGEgcGFydGlhbCBjb250cmFjdGlvbiB3ZSBmYWlsLgorICAgICAqIElmIHRoZSBtYXRjaCBzdGFydHMgdG9vIGZhciBvZmYgKGJlY2F1c2Ugb2YgYmFja3dhcmRzIGl0ZXJhdGlvbikgd2UgdHJ5IAorICAgICAqIHRvIGNoaXAgb2ZmIHRoZSBleHRyYSBjaGFyYWN0ZXJzIGRlcGVuZGluZyBvbiB3aGV0aGVyIGEgYnJlYWtpdGVyYXRvciAKKyAgICAgKiBoYXMgYmVlbiB1c2VkLgorICAgICAqIFRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBzdGFydCBhbmQgZW5kLgorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBtYXRjaCBwYXNzZXMgdGhlIGNvbnRyYWN0aW9uIHRlc3QsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tOZXh0RXhhY3RDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgZW5kY2hhciA9IDA7CisgICAgICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgICAgIGVuZGNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIHBvc3RzdGFydGNoYXIgPSAwOworICAgICAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBwb3N0c3RhcnRjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVuZGNoYXIpIAorICAgICAgICAgICAgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUocG9zdHN0YXJ0Y2hhcikpIHsKKyAgICAgICAgICAgIC8vIGV4cGFuc2lvbiBwcmVmaXgsIHdoYXQncyBsZWZ0IHRvIGl0ZXJhdGUKKyAgICAgICAgICAgIGludCBidWZmZXJlZENFT2Zmc2V0ID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisgICAgICAgICAgICBib29sZWFuIGhhc0J1ZmZlcmVkQ0UgPSBidWZmZXJlZENFT2Zmc2V0ID4gMDsKKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCB0ZW1wID0gc3RhcnQ7CisgICAgICAgICAgICB3aGlsZSAoYnVmZmVyZWRDRU9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlLCBjYXVzZWQgYnkgc2V0T2Zmc2V0LgorICAgICAgICAgICAgICAgIC8vIHNpbmNlIGJhY2t3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMgaWYgCisgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoIAorICAgICAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKyAgICAgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIGFjdXRlIGFuZCByaW5nIFx1MDMwQSBhbmQgXHUwMzAxLCAKKyAgICAgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIGZpcnN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyLgorICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlcmVkQ0VPZmZzZXQgLS07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworICAgICAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYXNCdWZmZXJlZENFICYmIGNvdW50ID09IDAgCisgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wICAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCArKzsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQoZW5kKTsgIAorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBhbmQgc2V0cyB0aGUgbWF0Y2ggaW5mb3JtYXRpb24gaWYgZm91bmQuCisgICAgICogQ2hlY2tzIAorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IHRoZSBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgcmVwZWF0IHRoZSBwcmV2aW91cyBtYXRjaAorICAgICAqIDxsaT4gYm91bmRhcmllcyBhcmUgY29ycmVjdAorICAgICAqIDxsaT4gZXhhY3QgbWF0Y2hlcyBoYXMgbm8gZXh0cmEgYWNjZW50cworICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXNiCisgICAgICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAqIDwvdWw+CisgICAgICogT3RoZXJ3aXNlIHRoZSBvZmZzZXQgd2lsbCBiZSBzaGlmdGVkIHRvIHRoZSBuZXh0IGNoYXJhY3Rlci4KKyAgICAgKiBUaGUgcmVzdWx0IG1fbWF0Y2hJbmRleF8gYW5kIG1fbWF0Y2hMZW5ndGhfIHdpbGwgYmUgc2V0IHRvIHRoZSB0cnVuY2F0ZWQKKyAgICAgKiBtb3JlIGZpdHRpbmcgcmVzdWx0IHZhbHVlLgorICAgICAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldC4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrTmV4dEV4YWN0TWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsgICAgICAgIAorICAgICAgICBpZiAoIWNoZWNrTmV4dEV4YWN0Q29udHJhY3Rpb25NYXRjaChzdGFydCwgdGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgIC8vIHJldHVybnMgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQKKyAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBtX3V0aWxCdWZmZXJfWzFdOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIHN0YXJ0ID0gbV91dGlsQnVmZmVyX1swXTsKKyAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisgICAgICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisgICAgICAgIGlmICghaXNCcmVha1VuaXQoc3RhcnQsIHRleHRvZmZzZXQpIAorICAgICAgICAgICAgfHwgY2hlY2tSZXBlYXRlZE1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNCZWZvcmVNYXRjaChzdGFydCwgdGV4dG9mZnNldCkgCisgICAgICAgICAgICB8fCAhY2hlY2tJZGVudGljYWwoc3RhcnQsIHRleHRvZmZzZXQpIAorICAgICAgICAgICAgfHwgaGFzQWNjZW50c0FmdGVyTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ICsrOworICAgICAgICAgICAgdGV4dG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOyAgCisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8vIHRvdGFsbHkgbWF0Y2gsIHdlIHdpbGwgZ2V0IHJpZCBvZiB0aGUgZW5kaW5nIGlnbm9yYWJsZXMuCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyAgPSBzdGFydDsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSB0ZXh0b2Zmc2V0IC0gc3RhcnQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIHByZXZpb3VzIGJhc2UgY2hhcmFjdGVyIG9mZnNldCwgb3IgdGhlIGN1cnJlbnQgb2Zmc2V0IGlmIHRoZSAKKyAgICAqIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGEgYmFzZSBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzb3VyY2UgdGV4dCB0byB3b3JrIG9uCisgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvbmUgb2Zmc2V0IGFmdGVyIHRoZSBjdXJyZW50IGNoYXJhY3RlcgorICAgICogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBhZnRlciB0aGUgYmFzZSBjaGFyYWN0ZXIgb3IgdGhlIAorICAgICogICAgICAgICAgICAgZmlyc3QgY29tcG9zZWQgY2hhcmFjdGVyIHdpdGggYWNjZW50cworICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmICh0ZXh0b2Zmc2V0ID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0ZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0LmdldEluZGV4KCkgIT0gdGV4dC5nZXRCZWdpbkluZGV4KCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBjaGFyIGZjZCA9IGdldEZDRCh0ZXh0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoKGZjZCA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGZjZCAmIExBU1RfQllURV9NQVNLXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRleHRvZmZzZXQgPT0gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3RleHRCZWdpbk9mZnNldF87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIGluZGV4ZXMgb2YgdGhlIGFjY2VudHMgdGhhdCBhcmUgbm90IGJsb2NrZWQgaW4gdGhlIGFyZ3VtZW50CisgICAgKiBhY2NlbnQgYXJyYXkKKyAgICAqIEBwYXJhbSBhY2NlbnRzIGFjY2VudHMgaW4gbmZkLgorICAgICogQHBhcmFtIGFjY2VudHNpbmRleCBhcnJheSB0byBzdG9yZSB0aGUgaW5kZXhlcyBvZiBhY2NlbnRzIGluIGFjY2VudHMgdGhhdCAKKyAgICAqICAgICAgICAgYXJlIG5vdCBibG9ja2VkCisgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgcG9wdWxhdGVkIGFjY2VudHNpbmRleAorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoU3RyaW5nQnVmZmVyIGFjY2VudHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBsZW5ndGggPSBhY2NlbnRzLmxlbmd0aCgpOworICAgICAgICBpbnQgY2NsYXNzID0gMDsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IFVURjE2LmNoYXJBdChhY2NlbnRzLCBpbmRleCk7CisgICAgICAgICAgICBpbnQgdGVtcGNsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjb2RlcG9pbnQpOworICAgICAgICAgICAgaWYgKHRlbXBjbGFzcyAhPSBjY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBjY2xhc3MgPSB0ZW1wY2xhc3M7CisgICAgICAgICAgICAgICAgYWNjZW50c2luZGV4W3Jlc3VsdF0gPSBpbmRleDsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzaW5kZXhbcmVzdWx0XSA9IGxlbmd0aDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIDMgU3RyaW5nQnVmZmVyL0NoYXJhY3Rlckl0ZXJhdG9yIHRvZ2V0aGVyIGludG8gYSBkZXN0aW5hdGlvbiAKKyAgICAgKiBzdHJpbmcgYnVmZmVyLgorICAgICAqIEBwYXJhbSBzb3VyY2UxIHN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc291cmNlMiBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gc3RhcnQyIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdG8gbWVyZ2UKKyAgICAgKiBAcGFyYW0gZW5kMiBlbmQgb2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvciB0byBtZXJnZQorICAgICAqIEBwYXJhbSBzb3VyY2UzIHN0cmluZyBidWZmZXIKKyAgICAgKiBAcmV0dXJuIGFwcGVuZGVkIHN0cmluZyBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgbWVyZ2UoU3RyaW5nQnVmZmVyIHNvdXJjZTEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydDIsIGludCBlbmQyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZTMpIAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgICAgCisgICAgICAgIGlmIChzb3VyY2UxICE9IG51bGwgJiYgc291cmNlMS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWcuaXNKREsxNE9ySGlnaGVyKXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTEpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UxLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNvdXJjZTIuc2V0SW5kZXgoc3RhcnQyKTsKKyAgICAgICAgd2hpbGUgKHNvdXJjZTIuZ2V0SW5kZXgoKSA8IGVuZDIpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlMi5jdXJyZW50KCkpOworICAgICAgICAgICAgc291cmNlMi5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNvdXJjZTMgIT0gbnVsbCAmJiBzb3VyY2UzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIC8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgaWYoY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1Zy5pc0pESzE0T3JIaWdoZXIpeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlMyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSdW5uaW5nIHRocm91Z2ggYSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciB0byBzZWUgaWYgdGhlIGNvbnRlbnRzIAorICAgICogbWF0Y2hlcyBwYXR0ZXJuIGluIHN0cmluZyBzZWFyY2ggZGF0YQorICAgICogQHBhcmFtIGNvbGVpdGVyIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIHRvIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIG1hdGNoIGlmIGZvdW5kLCBmYWxzZSBvdGhlcndpc2UKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0NvbGxhdGlvbk1hdGNoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlcikKKyAgICB7CisgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICB3aGlsZSAocGF0dGVybmNlaW5kZXggPiAwKSB7CisgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShjb2xlaXRlci5uZXh0KCkpOworICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW29mZnNldF0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhcnJhbmdlcyB0aGUgZnJvbnQgYWNjZW50cyB0byB0cnkgbWF0Y2hpbmcuCisgICAgICogUHJlZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisgICAgICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKyAgICAgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorICAgICAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorICAgICAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKyAgICAgKiAgICAgICAgICAgIHN1YnN0cmluZ3MgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsIAorICAgICAqICAgICAgICAgICAgIlx1MDMwQVx1MDMyNSIsICJcdTAzMDFcdTAzMjUiLgorICAgICAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGlzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IG9mZnNldCBvZiB0aGUgYWNjZW50cyB0byBzdGFydCBzZWFyY2hpbmcKKyAgICAgKiBAcGFyYW0gZW5kIHN0YXJ0IG9mIHRoZSBsYXN0IGFjY2VudCBzZXQKKyAgICAgKiBAcmV0dXJuIERPTkUgaWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIG90aGVyd2lzZSByZXR1cm4gdGhlIHN0YXJ0aW5nCisgICAgICogICAgICAgICBvZmZzZXQgb2YgdGhlIG1hdGNoLiBOb3RlIHRoaXMgc3RhcnQgaW5jbHVkZXMgYWxsIHByZWNlZGluZyAKKyAgICAgKiAgICAgICAgICAgIGFjY2VudHMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZG9OZXh0Q2Fub25pY2FsUHJlZml4TWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgc3RhcnQpICYgTEFTVF9CWVRFX01BU0tfKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBkaWUuLi4gZmFpbGVkIGF0IGEgYmFzZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgCisgICAgICAgIHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOyAvLyBpbmRleCBjaGFuZ2VkIGJ5IGZjZAorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgc3RhcnQpOworICAgICAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBhY2NlbnRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIHN0YXJ0LCBvZmZzZXQgLSBzdGFydCk7CisgICAgICAgIC8vIG5vcm1hbGl6aW5nIHRoZSBvZmZlbnNpdmUgc3RyaW5nCisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYWNjZW50c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICBhY2NlbnRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShhY2NlbnRzdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzLmFwcGVuZChhY2NlbnRzdHIpOworICAgICAgICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107ICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKyAgICAgICAgaW50IGNvdW50ID0gKDIgPDwgKGFjY2VudHNpemUgLSAxKSkgLSAxOyAgCisgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgICAgICBpbnQgayA9IDA7CisgICAgICAgICAgICBmb3IgKDsgayA8IGFjY2VudHNpbmRleFswXTsgayArKykgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGspKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGZvcm1pbmcgYWxsIHBvc3NpYmxlIGNhbm9uaWNhbCByZWFycmFuZ2VtZW50IGJ5IGRyb3BwaW5nCisgICAgICAgICAgICAvLyBzZXRzIG9mIGFjY2VudHMKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGFjY2VudHNpemUgLSAxOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IG1hc2sgPSAxIDw8IChhY2NlbnRzaXplIC0gaSAtIDEpOworICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiBtYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBhY2NlbnRzaW5kZXhbaV07IGogPCBhY2NlbnRzaW5kZXhbaSArIDFdOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBtYXRjaCA9IG1lcmdlKG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LCBvZmZzZXQsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRUZXh0IGRvZXMgbm90aGluZy4KKyAgICAgICAgICAgIC8vIHJ1biB0aGUgY29sbGF0b3IgaXRlcmF0b3IgdGhyb3VnaCB0aGlzIG1hdGNoCisgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChtYXRjaC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChjaGVja0NvbGxhdGlvbk1hdGNoKG1fdXRpbENvbEVJdGVyXykpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIHNhZmUgcG9pbnQgaW4gdGV4dCBiZWZvcmUgdGV4dG9mZnNldC4KKyAgICAqIGllLiBub3QgdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uLCBzd2FwcGFibGUgY2hhcmFjdGVycyBvciAKKyAgICAqIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4KKyAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgaW4gc3RyaW5nCisgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gc3RyaW5nCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byB0aGUgcHJldmlvdXMgc2FmZSBjaGFyYWN0ZXIKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByZXZpb3VzU2FmZU9mZnNldChpbnQgc3RhcnQsIGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7IC8vIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlcgorICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRleHRvZmZzZXQpOworICAgICAgICB3aGlsZSAocmVzdWx0ID49IHN0YXJ0ICYmIG1fY29sbGF0b3JfLmlzVW5zYWZlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ICE9IHN0YXJ0KSB7CisgICAgICAgICAgICAvLyB0aGUgZmlyc3QgY29udHJhY3Rpb24gY2hhcmFjdGVyIGlzIGNvbnNpZGVyIHVuc2FmZSBoZXJlCisgICAgICAgICAgICByZXN1bHQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7IC8vIG9yaWdpbmFsbHkgcmVzdWx0IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7IAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRha2UgdGhlIHJlYXJyYW5nZWQgZW5kIGFjY2VudHMgYW5kIHRyaWVzIG1hdGNoaW5nLiBJZiBtYXRjaCBmYWlsZWQgYXQKKyAgICAgKiBhIHNlcGVyYXRlIHByZWNlZGluZyBzZXQgb2YgYWNjZW50cyAoc2VwZXJhdGVkIGZyb20gdGhlIHJlYXJyYW5nZWQgb24gYnkKKyAgICAgKiBhdCBsZWFzdCBhIGJhc2UgY2hhcmFjdGVyKSB0aGVuIHdlIHJlYXJyYW5nZSB0aGUgcHJlY2VkaW5nIGFjY2VudHMgYW5kIAorICAgICAqIHRyaWVzIG1hdGNoaW5nIGFnYWluLgorICAgICAqIFdlIGFsbG93IHNraXBwaW5nIG9mIHRoZSBlbmRzIG9mIHRoZSBhY2NlbnQgc2V0IGlmIHRoZSBjZXMgZG8gbm90IG1hdGNoLiAKKyAgICAgKiBIb3dldmVyIGlmIHRoZSBmYWlsdXJlIGlzIGZvdW5kIGJlZm9yZSB0aGUgYWNjZW50IHNldCwgaXQgZmFpbHMuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBzdWNjZXNzLCBjYWxsZXIgaGFzIHRvIGNoZWNrIAorICAgICAqIHN0YXR1cyBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHJlYXJyYW5nZWQgYWNjZW50CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBzdGFydGluZworICAgICAqICAgICAgICAgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBwcmVjZWRpbmcgCisgICAgICogICAgICAgICBhY2NlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvTmV4dENhbm9uaWNhbFN1ZmZpeE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IHNhZmVsZW5ndGggPSAwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2FmZXRleHQ7CisgICAgICAgIGludCBzYWZlb2Zmc2V0ID0gbV90ZXh0QmVnaW5PZmZzZXRfOyAKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXh0b2Zmc2V0ICE9IG1fdGV4dEJlZ2luT2Zmc2V0XyAKKyAgICAgICAgICAgICYmIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkgPiAwCisgICAgICAgICAgICAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZShtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmNoYXJBdCgwKSkpIHsKKyAgICAgICAgICAgIHNhZmVvZmZzZXQgICAgID0gZ2V0UHJldmlvdXNTYWZlT2Zmc2V0KG1fdGV4dEJlZ2luT2Zmc2V0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dG9mZnNldCk7CisgICAgICAgICAgICBzYWZlbGVuZ3RoICAgICA9IHRleHRvZmZzZXQgLSBzYWZlb2Zmc2V0OworICAgICAgICAgICAgc2FmZXRleHQgICAgICAgPSBtZXJnZShudWxsLCB0YXJnZXRUZXh0LCBzYWZlb2Zmc2V0LCB0ZXh0b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzYWZldGV4dCA9IG1fY2Fub25pY2FsU3VmZml4QWNjZW50c187CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRUZXh0IGRvZXMgbm90aGluZworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sZWl0ZXIgPSBtX3V0aWxDb2xFSXRlcl87CisgICAgICAgIGNvbGVpdGVyLnNldFRleHQoc2FmZXRleHQudG9TdHJpbmcoKSk7CisgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGluIGxvb3AgYmVsb3cKKyAgICAKKyAgICAgICAgaW50IGNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMTsKKyAgICAgICAgYm9vbGVhbiBpc1NhZmUgPSB0cnVlOyAvLyBpbmRpY2F0aW9uIGZsYWcgZm9yIHBvc2l0aW9uIGluIHNhZmUgem9uZQorICAgICAgICAKKyAgICAgICAgd2hpbGUgKGNlaW5kZXggPj0gMCkgeworICAgICAgICAgICAgaW50IHRleHRjZSA9IGNvbGVpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAodGV4dGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIHBhc3NlZCB0aGUgc2FmZSBidWZmZXIKKyAgICAgICAgICAgICAgICBpZiAoY29sZWl0ZXIgPT0gbV9jb2xFSXRlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGVpdGVyID0gbV9jb2xFSXRlcl87CisgICAgICAgICAgICAgICAgaWYgKHNhZmV0ZXh0ICE9IG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pIHsKKyAgICAgICAgICAgICAgICAgICAgc2FmZXRleHQuZGVsZXRlKDAsIHNhZmV0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sZWl0ZXIuc2V0RXhhY3RPZmZzZXQoc2FmZW9mZnNldCk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaXNTYWZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0Y2UgPSBnZXRDRSh0ZXh0Y2UpOworICAgICAgICAgICAgaWYgKHRleHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFIAorICAgICAgICAgICAgICAgICYmIHRleHRjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gdGhlIGJlZ2lubmluZyBzdHVmZgorICAgICAgICAgICAgICAgIGludCBmYWlsZWRvZmZzZXQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNTYWZlICYmIGZhaWxlZG9mZnNldCA+PSBzYWZlbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFsYXMuLi4gbm8gaG9wZS4gZmFpbGVkIGF0IHJlYXJyYW5nZWQgYWNjZW50IHNldAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1NhZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZG9mZnNldCArPSBzYWZlb2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyB0cnkgcmVhcnJhbmdpbmcgdGhlIGZyb250IGFjY2VudHMKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGRvTmV4dENhbm9uaWNhbFByZWZpeE1hdGNoKGZhaWxlZG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlLCB1Y29sX3NldE9mZnNldCBkb2VzIG5vdGhpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGV4dGNlID09IG1fcGF0dGVybl8ubV9DRV9bY2VpbmRleF0pIHsKKyAgICAgICAgICAgICAgICBjZWluZGV4IC0tOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNldCBvZmZzZXQgaGVyZQorICAgICAgICBpZiAoaXNTYWZlKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAvLyBzZXRzIHRoZSB0ZXh0IGl0ZXJhdG9yIHdpdGggdGhlIGNvcnJlY3QgZXhwYW5zaW9uIGFuZCBvZmZzZXQKKyAgICAgICAgICAgIGludCBsZWZ0b3ZlcmNlcyA9IGNvbGVpdGVyLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSBzYWZlbGVuZ3RoKSB7IAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gc2FmZW9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHJlc3VsdCk7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA9IGxlZnRvdmVyY2VzOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNvbGVpdGVyLmdldE9mZnNldCgpOyAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRyeWluZyBvdXQgdGhlIHN1YnN0cmluZyBhbmQgc2VlcyBpZiBpdCBjYW4gYmUgYSBjYW5vbmljYWwgbWF0Y2guCisgICAgICogVGhpcyB3aWxsIHRyeSBub3JtYWxpemluZyB0aGUgZW5kIGFjY2VudHMgYW5kIGFycmFuZ2luZyB0aGVtIGludG8gCisgICAgICogY2Fub25pY2FsIGVxdWl2YWxlbnRzIGFuZCBjaGVjayB0aGVpciBjb3JyZXNwb25kaW5nIGNlcyB3aXRoIHRoZSBwYXR0ZXJuIAorICAgICAqIGNlLgorICAgICAqIFN1ZmZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICBzdWJzdHJpbmdzCisgICAgICogICAgICAgICAiXHUwMzBBIiwgIlx1MDMwMSIsICJcdTAzMjUiLCAiXHUwMzBBXHUwMzAxIiwgIlx1MDMwQVx1MDMyNSIsIAorICAgICAqICAgICAgICAgIlx1MDMwMVx1MDMyNSIuCisgICAgICogc3RlcCAyOiBjaGVjayBpZiBhbnkgb2YgdGhlIGdlbmVyYXRlZCBzdWJzdHJpbmdzIG1hdGNoZXMgdGhlIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgZW5kIG9mZnNldCBpbiB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGV4dCB0aGF0IGVuZHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICB0aGUgYWNjZW50cyB0byBiZSByZWFycmFuZ2VkCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGRvTmV4dENhbm9uaWNhbE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRleHRvZmZzZXQpOworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpIAorICAgICAgICAgICAgJiYgdGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7IAorICAgICAgICAgICAgaWYgKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pID09IDApIHsKKyAgICAgICAgICAgIGlmIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBkb05leHRDYW5vbmljYWxQcmVmaXhNYXRjaChvZmZzZXQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKCFtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgYWNjZW50cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gb2Zmc2V0IHRvIHRoZSBsYXN0IGJhc2UgY2hhcmFjdGVyIGluIHN1YnN0cmluZyB0byBzZWFyY2gKKyAgICAgICAgaW50IGJhc2VvZmZzZXQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgIC8vIG5vcm1hbGl6aW5nIHRoZSBvZmZlbnNpdmUgc3RyaW5nCisgICAgICAgIFN0cmluZyBhY2NlbnRzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgYmFzZW9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtIGJhc2VvZmZzZXQpOworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGFjY2VudHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgYWNjZW50c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoYWNjZW50c3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgYWNjZW50cy5hcHBlbmQoYWNjZW50c3RyKTsKKyAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcCBiZWxvdworICAgICAgICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107CisgICAgICAgIGludCBzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKyAgICAKKyAgICAgICAgLy8gMiBwb3dlciBuIC0gMSBwbHVzIHRoZSBmdWxsIHNldCBvZiBhY2NlbnRzCisgICAgICAgIGludCAgY291bnQgPSAoMiA8PCAoc2l6ZSAtIDEpKSAtIDE7ICAKKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgICAgICAvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgYWNjZW50c2luZGV4WzBdOyBrICsrKSB7CisgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKyAgICAgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZSAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKHNpemUgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ID0gZG9OZXh0Q2Fub25pY2FsU3VmZml4TWF0Y2goYmFzZW9mZnNldCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbWF0Y2ggZm91bmQKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcHJldmlvdXMgYmFzZSBjaGFyYWN0ZXIgb2Zmc2V0IGRlcGVuZGluZyBvbiB0aGUgc3RyaW5nIHNlYXJjaCAKKyAgICAgKiBwYXR0ZXJuIGRhdGEKKyAgICAgKiBAcGFyYW0gc3Ryc3JjaCBzdHJpbmcgc2VhcmNoIGRhdGEKKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBjdXJyZW50IG9mZnNldCwgY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIG5leHQgY2hhcmFjdGVyIGFmdGVyIHRoaXMgYmFzZSBjaGFyYWN0ZXIgb3IgCisgICAgICogICAgICAgICAgICAgaXRzZWxmIGlmIGl0IGlzIGEgY29tcG9zZWQgY2hhcmFjdGVyIHdpdGggYWNjZW50cworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByZXZpb3VzQmFzZU9mZnNldChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gJiYgdGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgaW50IG9mZnNldCA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBvZmZzZXQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIGVuZHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKyAgICAgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHRvbyBmYXIgb2ZmIChiZWNhdXNlIG9mIGJhY2t3YXJkcyBpdGVyYXRpb24pIHdlIHRyeSAKKyAgICAgKiB0byBjaGlwIG9mZiB0aGUgZXh0cmEgY2hhcmFjdGVycy4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbCBidWZmZXIgZm9yIHJldHVybiB2YWx1ZXMgb2YgdGhlIG1vZGlmaWVkIHN0YXJ0CisgICAgICogYW5kIGVuZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuIAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja05leHRDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgc2NoYXIgPSAwOworICAgICAgICBjaGFyIGVjaGFyID0gMDsKKyAgICAgICAgaWYgKGVuZCA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICAgICAgZWNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQgKyAxKTsKKyAgICAgICAgICAgIHNjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVjaGFyKSB8fCBtX2NvbGxhdG9yXy5pc1Vuc2FmZShzY2hhcikpIHsKKyAgICAgICAgICAgIGludCBleHBhbnNpb24gID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisgICAgICAgICAgICBib29sZWFuIGhhc0V4cGFuc2lvbiA9IGV4cGFuc2lvbiA+IDA7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisgICAgICAgICAgICBpbnQgdGVtcCA9IHN0YXJ0OworICAgICAgICAgICAgd2hpbGUgKGV4cGFuc2lvbiA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlLCBjYXVzZWQgYnkgc2V0T2Zmc2V0LgorICAgICAgICAgICAgICAgIC8vIHNpbmNlIGJhY2t3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMgaWYgCisgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoIAorICAgICAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKyAgICAgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIGFjdXRlIGFuZCByaW5nIFx1MDMwQSBhbmQgXHUwMzAxLCAKKyAgICAgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIGZpcnN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyLgorICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGV4cGFuc2lvbiAtLTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICB3aGlsZSAoY291bnQgPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAvLyB1Y29sX25leHQgcmV0dXJucyBVQ09MX05VTExPUkRFUgorICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaGFzRXhwYW5zaW9uICYmIGNvdW50ID09IDAgCisgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAwICYmIGNlICE9IG1fcGF0dGVybl8ubV9DRV9bMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gYWNjZW50cyBtYXkgaGF2ZSBleHRyYSBzdGFydGluZyBjZXMsIHRoaXMgb2NjdXJzIHdoZW4gYSAKKyAgICAgICAgICAgICAgICAgICAgLy8gcHVyZSBhY2NlbnQgcGF0dGVybiBpcyBtYXRjaGVkIHdpdGhvdXQgcmVhcnJhbmdlbWVudAorICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0IFx1MDMyNVx1MDMwMCBhbmQgbG9va2luZyBmb3IgXHUwMzAwCisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCA9IG1fcGF0dGVybl8ubV9DRV9bMF07IAorICAgICAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBzdGFydCkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBleHBlY3RlZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpIDw9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjb3VudF0pIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kICsrOworICAgICAgICAgICAgICAgICAgICBlbmQgPSBnZXROZXh0QmFzZU9mZnNldChlbmQpOyAgCisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgcHJldmlvdXMgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCBlbmQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uCisgICAgICogPGxpPiBpZGVudGljYWwgbWF0Y2hlcworICAgICAqIDwvdWw+CisgICAgICogT3RoZXJ3aXNlIHRoZSBvZmZzZXQgd2lsbCBiZSBzaGlmdGVkIHRvIHRoZSBuZXh0IGNoYXJhY3Rlci4KKyAgICAgKiBUaGUgcmVzdWx0IG1fbWF0Y2hJbmRleF8gYW5kIG1fbWF0Y2hMZW5ndGhfIHdpbGwgYmUgc2V0IHRvIHRoZSB0cnVuY2F0ZWQKKyAgICAgKiBtb3JlIGZpdHRpbmcgcmVzdWx0IHZhbHVlLgorICAgICAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldC4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrTmV4dENhbm9uaWNhbE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGNhbm9uaWNhbCBhY2NlbnQgbWF0Y2gKKyAgICAgICAgaWYgKChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gCisgICAgICAgICAgICAgICAgJiYgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwKSB8fCAKKyAgICAgICAgICAgIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gCisgICAgICAgICAgICAgICAgJiYgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwKSkgeworICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KG1fY29sRUl0ZXJfLmdldE9mZnNldCgpKTsKKyAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gdGV4dG9mZnNldCAtIG1fbWF0Y2hlZEluZGV4XzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBzdGFydCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICBpZiAoIWNoZWNrTmV4dENhbm9uaWNhbENvbnRyYWN0aW9uTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICAvLyByZXR1cm4gdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQKKyAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBtX3V0aWxCdWZmZXJfWzFdOyAKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBzdGFydCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzFdOworICAgICAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisgICAgICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisgICAgICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpIAorICAgICAgICAgICAgfHwgIWlzQnJlYWtVbml0KHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8ICFjaGVja0lkZW50aWNhbChzdGFydCwgdGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgKys7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9tYXRjaGVkSW5kZXhfICA9IHN0YXJ0OworICAgICAgICBtYXRjaExlbmd0aCA9IHRleHRvZmZzZXQgLSBzdGFydDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNoaWZ0aW5nIHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciBwb3NpdGlvbiBmb3J3YXJkIHRvIHByZXBhcmUgZm9yCisgICAgICogYSBwcmVjZWRpbmcgbWF0Y2guIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgYSB1bnNhZmUgY2hhcmFjdGVyLCB3ZSdsbCAKKyAgICAgKiBvbmx5IHNoaWZ0IGJ5IDEgdG8gY2FwdHVyZSBjb250cmFjdGlvbnMsIG5vcm1hbGl6YXRpb24gZXRjLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IHN0YXJ0IHRleHQgcG9zaXRpb24gdG8gZG8gc2VhcmNoCisgICAgICogQHBhcmFtIGNlIHRoZSB0ZXh0IGNlIHdoaWNoIGZhaWxlZCB0aGUgbWF0Y2guCisgICAgICogQHBhcmFtIHBhdHRlcm5jZWluZGV4IGluZGV4IG9mIHRoZSBjZSB3aXRoaW4gdGhlIHBhdHRlcm4gY2UgYnVmZmVyIHdoaWNoCisgICAgICogICAgICAgIGZhaWxlZCB0aGUgbWF0Y2gKKyAgICAgKiBAcmV0dXJuIGZpbmFsIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IHJldmVyc2VTaGlmdChpbnQgdGV4dG9mZnNldCwgaW50IGNlLCBpbnQgcGF0dGVybmNlaW5kZXgpCisgICAgeyAgICAgICAgIAorICAgICAgICBpZiAoaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBpZiAodGV4dG9mZnNldCAhPSBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0IC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGludCBzaGlmdCA9IG1fcGF0dGVybl8ubV9iYWNrU2hpZnRfW2hhc2goY2UpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGFkanVzdCBmb3IgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdWJzdHJpbmcgCisgICAgICAgICAgICAgICAgLy8gZm9yIG1hdGNoaW5nIHRoYXQgZmFpbGVkLgorICAgICAgICAgICAgICAgIGludCBhZGp1c3QgPSBwYXR0ZXJuY2VpbmRleDsKKyAgICAgICAgICAgICAgICBpZiAoYWRqdXN0ID4gMSAmJiBzaGlmdCA+IGFkanVzdCkgeworICAgICAgICAgICAgICAgICAgICBzaGlmdCAtPSBhZGp1c3QgLSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0IC09IHNoaWZ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV87CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAgIAorICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgbWF0Y2ggZm9yIGNvbnRyYWN0aW9uLiAKKyAgICAgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHdpdGggYSBwYXJ0aWFsIGNvbnRyYWN0aW9uIHdlIGZhaWwuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIHRvIHJldHVybiB0aGUgbW9kaWZpZWQgc3RhcnQgYW5kIGVuZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrUHJldmlvdXNFeGFjdENvbnRyYWN0aW9uTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIC8vIFRoaXMgcGFydCBjaGVja3MgaWYgZWl0aGVyIGVuZHMgb2YgdGhlIG1hdGNoIGNvbnRhaW5zIHBvdGVudGlhbCAKKyAgICAgICAgLy8gY29udHJhY3Rpb24uIElmIHNvIHdlJ2xsIGhhdmUgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZW0KKyAgICAgICAgY2hhciBlY2hhciA9IDA7CisgICAgICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgICAgIGVjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBzY2hhciA9IDA7CisgICAgICAgIGlmIChzdGFydCArIDEgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQgKyAxKTsKKyAgICAgICAgICAgIHNjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVjaGFyKSB8fCBtX2NvbGxhdG9yXy5pc1Vuc2FmZShzY2hhcikpIHsKKyAgICAgICAgICAgIC8vIGV4cGFuc2lvbiBzdWZmaXgsIHdoYXQncyBsZWZ0IHRvIGl0ZXJhdGUKKyAgICAgICAgICAgIGludCBleHBhbnNpb24gPSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisgICAgICAgICAgICBib29sZWFuIGhhc0V4cGFuc2lvbiA9IGV4cGFuc2lvbiA+IDA7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChlbmQpOworICAgICAgICAgICAgaW50IHRlbXAgPSBlbmQ7CisgICAgICAgICAgICB3aGlsZSAoZXhwYW5zaW9uID4gMCkgeworICAgICAgICAgICAgICAgIC8vIGdldHRpbmcgcmlkIG9mIHRoZSByZWR1bmRhbnQgY2UKKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBmb3J3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyLCBoYXNBY2NlbnRzQmVmb3JlTWF0Y2gKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisgICAgICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCBpZgorICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIEEgcmluZyBBXHUwMzBBLCB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIAorICAgICAgICAgICAgICAgIC8vIGxhc3QgY2UgaW4gdGhlIGV4cGFuc2lvbiBidWZmZXIKKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIC0tOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAvLyB1Y29sX3ByZXZpb3VzIHJldHVybnMgVUNPTF9OVUxMT1JERVIKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhhc0V4cGFuc2lvbiAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnQgLSAxXSkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCAtLTsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBhbmQgc2V0cyB0aGUgbWF0Y2ggaW5mb3JtYXRpb24gaWYgZm91bmQuCisgICAgICogQ2hlY2tzIAorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IHRoZSBjdXJyZW50IG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgbGFzdCBtYXRjaAorICAgICAqIDxsaT4gYm91bmRhcmllcyBhcmUgY29ycmVjdAorICAgICAqIDxsaT4gZXhhY3QgbWF0Y2hlcyBoYXMgbm8gZXh0cmEgYWNjZW50cworICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgcHJlY2VkaW5nIGNoYXJhY3Rlci4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdG8gc3RvcmUgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LiB0aGUgcmV0dXJuZWQgdmFsdWUKKyAgICAgKiAgICAgICAgd2lsbCBiZSB0aGUgdHJ1bmNhdGVkIHN0YXJ0IG9mZnNldCBvZiB0aGUgbWF0Y2ggb3IgdGhlIG5ldyBzdGFydCAKKyAgICAgKiAgICAgICAgc2VhcmNoIG9mZnNldC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG1hdGNoIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tQcmV2aW91c0V4YWN0TWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICAvLyB0byBlbnN1cmUgdGhhdCB0aGUgc3RhcnQgYW5kIGVuZHMgYXJlIG5vdCBjb21wb3NpdGUgY2hhcmFjdGVycworICAgICAgICBpbnQgZW5kID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7ICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja1ByZXZpb3VzRXhhY3RDb250cmFjdGlvbk1hdGNoKHRleHRvZmZzZXQsIGVuZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKyAgICAgICAgZW5kID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgICAgIAorICAgICAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworICAgICAgICAvLyB0aGUgb2xkIG1hdGNoCisgICAgICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2godGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8ICFpc0JyZWFrVW5pdCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgaGFzQWNjZW50c0JlZm9yZU1hdGNoKHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCAhY2hlY2tJZGVudGljYWwodGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNBZnRlck1hdGNoKHRleHRvZmZzZXQsIGVuZCkpIHsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgLS07CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGV4dG9mZnNldDsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSBlbmQgLSB0ZXh0b2Zmc2V0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFycmFuZ2VzIHRoZSBlbmQgYWNjZW50cyB0byB0cnkgbWF0Y2hpbmcuCisgICAgICogU3VmZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisgICAgICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKyAgICAgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorICAgICAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorICAgICAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKyAgICAgKiAgICAgICAgICAgICBzdWJzdHJpbmdzCisgICAgICogICAgICAgICAiXHUwMzBBIiwgIlx1MDMwMSIsICJcdTAzMjUiLCAiXHUwMzBBXHUwMzAxIiwgIlx1MDMwQVx1MDMyNSIsIAorICAgICAqICAgICAgICAgIlx1MDMwMVx1MDMyNSIuCisgICAgICogc3RlcCAyOiBjaGVjayBpZiBhbnkgb2YgdGhlIGdlbmVyYXRlZCBzdWJzdHJpbmdzIG1hdGNoZXMgdGhlIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgZmlyc3QgYmFzZSBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gZW5kIHN0YXJ0IG9mIHRoZSBsYXN0IGFjY2VudCBzZXQKKyAgICAgKiBAcmV0dXJuIERPTkUgaWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIG90aGVyd2lzZSByZXR1cm4gdGhlIGVuZGluZworICAgICAqICAgICAgICAgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBmb2xsb3dpbmcgCisgICAgICogICAgICAgICBhY2NlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvUHJldmlvdXNDYW5vbmljYWxTdWZmaXhNYXRjaChpbnQgc3RhcnQsIGludCBlbmQpCisgICAgeworICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkgCisgICAgICAgICAgICAmJiB0YXJnZXRUZXh0LmdldEluZGV4KCkgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGFyZ2V0VGV4dC5nZXRJbmRleCgpKSAmIExBU1RfQllURV9NQVNLXykgPT0gMCkgeworICAgICAgICAgICAgLy8gZGllLi4uIGZhaWxlZCBhdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgICAgICBlbmQgPSBnZXROZXh0QmFzZU9mZnNldCh0YXJnZXRUZXh0LCBlbmQpOworICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgYWNjZW50cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCBlbmQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIG9mZnNldCwgZW5kIC0gb2Zmc2V0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhhY2NlbnRzdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIGFjY2VudHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGFjY2VudHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGFjY2VudHMuYXBwZW5kKGFjY2VudHN0cik7ICAgIAorICAgICAgICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107ICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKyAgICAgICAgaW50IGNvdW50ID0gKDIgPDwgKGFjY2VudHNpemUgLSAxKSkgLSAxOyAgCisgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgLy8gY29weSB0aGUgYmFzZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGFjY2VudHNpbmRleFswXTsgayArKykgeworICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworICAgICAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBhY2NlbnRzaXplIC0gMTsgaSArKykgeworICAgICAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoYWNjZW50c2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbWF0Y2ggPSBtZXJnZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLCB0YXJnZXRUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pOworICAgICAgICAgICAgLy8gcnVuIHRoZSBjb2xsYXRvciBpdGVyYXRvciB0aHJvdWdoIHRoaXMgbWF0Y2gKKyAgICAgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUgdWNvbF9zZXRUZXh0IGRvZXMgbm90aGluZworICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobWF0Y2gudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoY2hlY2tDb2xsYXRpb25NYXRjaChtX3V0aWxDb2xFSXRlcl8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSByZWFycmFuZ2VkIHN0YXJ0IGFjY2VudHMgYW5kIHRyaWVzIG1hdGNoaW5nLiBJZiBtYXRjaCBmYWlsZWQgYXQKKyAgICAgKiBhIHNlcGVyYXRlIGZvbGxvd2luZyBzZXQgb2YgYWNjZW50cyAoc2VwZXJhdGVkIGZyb20gdGhlIHJlYXJyYW5nZWQgb24gYnkKKyAgICAgKiBhdCBsZWFzdCBhIGJhc2UgY2hhcmFjdGVyKSB0aGVuIHdlIHJlYXJyYW5nZSB0aGUgcHJlY2VkaW5nIGFjY2VudHMgYW5kIAorICAgICAqIHRyaWVzIG1hdGNoaW5nIGFnYWluLgorICAgICAqIFdlIGFsbG93IHNraXBwaW5nIG9mIHRoZSBlbmRzIG9mIHRoZSBhY2NlbnQgc2V0IGlmIHRoZSBjZXMgZG8gbm90IG1hdGNoLiAKKyAgICAgKiBIb3dldmVyIGlmIHRoZSBmYWlsdXJlIGlzIGZvdW5kIGJlZm9yZSB0aGUgYWNjZW50IHNldCwgaXQgZmFpbHMuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBzdWNjZXNzLCBjYWxsZXIgaGFzIHRvIGNoZWNrIAorICAgICAqIHN0YXR1cyBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBvZiB0aGUgZW5kcyBvZiB0aGUgcmVhcnJhbmdlZCBhY2NlbnQKKyAgICAgKiBAcmV0dXJuIERPTkUgaWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIG90aGVyd2lzZSByZXR1cm4gdGhlIGVuZGluZyBvZmZzZXQgCisgICAgICogICAgICAgICAgICAgb2YgdGhlIG1hdGNoLiBOb3RlIHRoaXMgc3RhcnQgaW5jbHVkZXMgYWxsIGZvbGxvd2luZyBhY2NlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvUHJldmlvdXNDYW5vbmljYWxQcmVmaXhNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgLy8gaW50IHNhZmVsZW5ndGggPSAwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2FmZXRleHQ7CisgICAgICAgIGludCBzYWZlb2Zmc2V0ID0gdGV4dG9mZnNldDsKKyAgICAKKyAgICAgICAgaWYgKHRleHRvZmZzZXQgPiBtX3RleHRCZWdpbk9mZnNldF8KKyAgICAgICAgICAgICYmIG1fY29sbGF0b3JfLmlzVW5zYWZlKG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSAtIDEpKSkgeworICAgICAgICAgICAgc2FmZW9mZnNldCA9IGdldE5leHRTYWZlT2Zmc2V0KHRleHRvZmZzZXQsIG1fdGV4dExpbWl0T2Zmc2V0Xyk7CisgICAgICAgICAgICAvL3NhZmVsZW5ndGggPSBzYWZlb2Zmc2V0IC0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHNhZmV0ZXh0ID0gbWVyZ2UobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXywgdGFyZ2V0VGV4dCwgdGV4dG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVvZmZzZXQsIG51bGwpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2FmZXRleHQgPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbV91dGlsQ29sRUl0ZXJfOworICAgICAgICBjb2xlaXRlci5zZXRUZXh0KHNhZmV0ZXh0LnRvU3RyaW5nKCkpOworICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisgICAgICAgIAorICAgICAgICBpbnQgY2VpbmRleCA9IDA7CisgICAgICAgIGJvb2xlYW4gaXNTYWZlID0gdHJ1ZTsgLy8gc2FmZSB6b25lIGluZGljYXRpb24gZmxhZyBmb3IgcG9zaXRpb24KKyAgICAgICAgaW50IHByZWZpeGxlbmd0aCA9IG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoY2VpbmRleCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgIGludCB0ZXh0Y2UgPSBjb2xlaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIHBhc3NlZCB0aGUgc2FmZSBidWZmZXIKKyAgICAgICAgICAgICAgICBpZiAoY29sZWl0ZXIgPT0gbV9jb2xFSXRlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgICAgIHNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGVpdGVyID0gbV9jb2xFSXRlcl87CisgICAgICAgICAgICAgICAgY29sZWl0ZXIuc2V0RXhhY3RPZmZzZXQoc2FmZW9mZnNldCk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaXNTYWZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0Y2UgPSBnZXRDRSh0ZXh0Y2UpOworICAgICAgICAgICAgaWYgKHRleHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFIAorICAgICAgICAgICAgICAgICYmIHRleHRjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gdGhlIGJlZ2lubmluZyBzdHVmZgorICAgICAgICAgICAgICAgIGludCBmYWlsZWRvZmZzZXQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNTYWZlICYmIGZhaWxlZG9mZnNldCA8PSBwcmVmaXhsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gYWxhcy4uLiBubyBob3BlLiBmYWlsZWQgYXQgcmVhcnJhbmdlZCBhY2NlbnQgc2V0CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkb2Zmc2V0ID0gc2FmZW9mZnNldCAtIGZhaWxlZG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZXRleHQuZGVsZXRlKDAsIHNhZmV0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHJlYXJyYW5naW5nIHRoZSBlbmQgYWNjZW50cworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFN1ZmZpeE1hdGNoKHRleHRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRPZmZzZXQgZG9lcyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgY2VpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgb2Zmc2V0IGhlcmUKKyAgICAgICAgaWYgKGlzU2FmZSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGVpdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gc2V0cyB0aGUgdGV4dCBpdGVyYXRvciBoZXJlIHdpdGggdGhlIGNvcnJlY3QgZXhwYW5zaW9uIGFuZCBvZmZzZXQKKyAgICAgICAgICAgIGludCBsZWZ0b3ZlcmNlcyA9IGNvbGVpdGVyLm1fQ0VCdWZmZXJTaXplXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gY29sZWl0ZXIubV9DRUJ1ZmZlck9mZnNldF87CisgICAgICAgICAgICBpZiAocmVzdWx0IDw9IHByZWZpeGxlbmd0aCkgeyAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dG9mZnNldCArIChzYWZlb2Zmc2V0IC0gcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHJlc3VsdCk7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJTaXplXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGxlZnRvdmVyY2VzOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNvbGVpdGVyLmdldE9mZnNldCgpOyAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRyeWluZyBvdXQgdGhlIHN1YnN0cmluZyBhbmQgc2VlcyBpZiBpdCBjYW4gYmUgYSBjYW5vbmljYWwgbWF0Y2guCisgICAgICogVGhpcyB3aWxsIHRyeSBub3JtYWxpemluZyB0aGUgc3RhcnRpbmcgYWNjZW50cyBhbmQgYXJyYW5naW5nIHRoZW0gaW50byAKKyAgICAgKiBjYW5vbmljYWwgZXF1aXZhbGVudHMgYW5kIGNoZWNrIHRoZWlyIGNvcnJlc3BvbmRpbmcgY2VzIHdpdGggdGhlIHBhdHRlcm4gCisgICAgICogY2UuCisgICAgICogUHJlZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisgICAgICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKyAgICAgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorICAgICAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorICAgICAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKyAgICAgKiAgICAgICAgICAgIHN1YnN0cmluZ3MKKyAgICAgKiAgICAgICAgICJcdTAzMEEiLCAiXHUwMzAxIiwgIlx1MDMyNSIsICJcdTAzMEFcdTAzMDEiLCAiXHUwMzBBXHUwMzI1IiwgCisgICAgICogICAgICAgICAiXHUwMzAxXHUwMzI1Ii4KKyAgICAgKiBzdGVwIDI6IGNoZWNrIGlmIGFueSBvZiB0aGUgZ2VuZXJhdGVkIHN1YnN0cmluZ3MgbWF0Y2hlcyB0aGUgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQgdGhhdCBzdGFydHMgCisgICAgICogICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgYWNjZW50cyB0byBiZSByZWFycmFuZ2VkCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGRvUHJldmlvdXNDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKyAgICAgICAgICAgIGlmIChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBkb1ByZXZpb3VzQ2Fub25pY2FsU3VmZml4TWF0Y2godGV4dG9mZnNldCwgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmICghbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIG9mZnNldCB0byB0aGUgbGFzdCBiYXNlIGNoYXJhY3RlciBpbiBzdWJzdHJpbmcgdG8gc2VhcmNoCisgICAgICAgIGludCBiYXNlb2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgIC8vIG5vcm1hbGl6aW5nIHRoZSBvZmZlbnNpdmUgc3RyaW5nCisgICAgICAgIFN0cmluZyB0ZXh0c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIHRleHRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VvZmZzZXQgLSB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0ZXh0c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICB0ZXh0c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGV4dHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGFjY2VudHMuYXBwZW5kKHRleHRzdHIpOworICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wCisgICAgICAgICAgICAKKyAgICAgICAgaW50IGFjY2VudHNpbmRleFtdID0gbmV3IGludFtJTklUSUFMX0FSUkFZX1NJWkVfXTsKKyAgICAgICAgaW50IHNpemUgPSBnZXRVbmJsb2NrZWRBY2NlbnRJbmRleChhY2NlbnRzLCBhY2NlbnRzaW5kZXgpOworICAgIAorICAgICAgICAvLyAyIHBvd2VyIG4gLSAxIHBsdXMgdGhlIGZ1bGwgc2V0IG9mIGFjY2VudHMKKyAgICAgICAgaW50IGNvdW50ID0gKDIgPDwgKHNpemUgLSAxKSkgLSAxOyAgCisgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgLy8gY29weSB0aGUgYmFzZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGFjY2VudHNpbmRleFswXTsgayArKykgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGspKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGZvcm1pbmcgYWxsIHBvc3NpYmxlIGNhbm9uaWNhbCByZWFycmFuZ2VtZW50IGJ5IGRyb3BwaW5nCisgICAgICAgICAgICAvLyBzZXRzIG9mIGFjY2VudHMKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHNpemUgLSAxOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IG1hc2sgPSAxIDw8IChzaXplIC0gaSAtIDEpOworICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiBtYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBhY2NlbnRzaW5kZXhbaV07IGogPCBhY2NlbnRzaW5kZXhbaSArIDFdOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgPSBkb1ByZXZpb3VzQ2Fub25pY2FsUHJlZml4TWF0Y2goYmFzZW9mZnNldCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbWF0Y2ggZm91bmQKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIHN0YXJ0cyB3aXRoIGEgcGFydGlhbCBjb250cmFjdGlvbiB3ZSBmYWlsLgorICAgICAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciB0byByZXR1cm4gdGhlIG1vZGlmaWVkIHN0YXJ0IGFuZCBlbmQuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHJldHVybiB0cnVlIGlmIG1hdGNoIHBhc3NlcyB0aGUgY29udHJhY3Rpb24gdGVzdCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1ByZXZpb3VzQ2Fub25pY2FsQ29udHJhY3Rpb25NYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgaW50IHRlbXAgPSBlbmQ7CisgICAgICAgIC8vIFRoaXMgcGFydCBjaGVja3MgaWYgZWl0aGVyIGVuZHMgb2YgdGhlIG1hdGNoIGNvbnRhaW5zIHBvdGVudGlhbCAKKyAgICAgICAgLy8gY29udHJhY3Rpb24uIElmIHNvIHdlJ2xsIGhhdmUgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZW0KKyAgICAgICAgY2hhciBlY2hhciA9IDA7CisgICAgICAgIGNoYXIgc2NoYXIgPSAwOworICAgICAgICBpZiAoZW5kIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBlY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCArIDEgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQgKyAxKTsKKyAgICAgICAgICAgIHNjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVjaGFyKSB8fCBtX2NvbGxhdG9yXy5pc1Vuc2FmZShzY2hhcikpIHsKKyAgICAgICAgICAgIGludCBleHBhbnNpb24gPSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisgICAgICAgICAgICBib29sZWFuIGhhc0V4cGFuc2lvbiA9IGV4cGFuc2lvbiA+IDA7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChlbmQpOworICAgICAgICAgICAgd2hpbGUgKGV4cGFuc2lvbiA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlCisgICAgICAgICAgICAgICAgLy8gc2luY2UgZm9yd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoCisgICAgICAgICAgICAgICAgLy8gd291bGQgaGF2ZSB0YWtlbiBjYXJlIG9mIGl0LgorICAgICAgICAgICAgICAgIC8vIEUuZy4gdGhlIGNoYXJhY3RlciBcdTAxRkEgd2lsbCBoYXZlIGFuIGV4cGFuc2lvbiBvZiAzLCBidXQgCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIG9ubHkgbG9va2luZyBmb3IgQSByaW5nIEFcdTAzMEEsIHdlJ2xsIGhhdmUgdG8gCisgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgbGFzdCBjZSBpbiB0aGUgZXhwYW5zaW9uIGJ1ZmZlcgorICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBleHBhbnNpb24gLS07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQgY291bnQgPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLnByZXZpb3VzKCkpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGJlbG93LCBub3RlIHRoYXQgaWYgc3RhdHVzIGlzIGEgZmFpbHVyZQorICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzKCkgcmV0dXJucyBOVUxMT1JERVIKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhhc0V4cGFuc2lvbiAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gCisgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IG1fcGF0dGVybl8ubV9DRV9bbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDFdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFjY2VudHMgbWF5IGhhdmUgZXh0cmEgc3RhcnRpbmcgY2VzLCB0aGlzIG9jY3VycyB3aGVuIGEgCisgICAgICAgICAgICAgICAgICAgIC8vIHB1cmUgYWNjZW50IHBhdHRlcm4gaXMgbWF0Y2hlZCB3aXRob3V0IHJlYXJyYW5nZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gbV9wYXR0ZXJuXy5tX0NFX1ttX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMV07CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFRleHQuZ2V0SW5kZXgoKSA+IG1fdGV4dEJlZ2luT2Zmc2V0XyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgZW5kKSAmIExBU1RfQllURV9NQVNLXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBleHBlY3RlZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgPD0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLnByZXZpb3VzKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NvdW50IC0gMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgLS07CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgcHJldmlvdXMgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCBlbmQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uCisgICAgICogPGxpPiBpZGVudGljYWwgbWF0Y2hlcworICAgICAqIDwvdWw+CisgICAgICogT3RoZXJ3aXNlIHRoZSBvZmZzZXQgd2lsbCBiZSBzaGlmdGVkIHRvIHRoZSBuZXh0IGNoYXJhY3Rlci4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgZm9yIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LiB0aGUgcmV0dXJuZWQgCisgICAgICogICAgICAgICAgICAgdmFsdWUgd2lsbCBiZSB0aGUgdHJ1bmNhdGVkIHN0YXJ0IG9mZnNldCBvZiB0aGUgbWF0Y2ggb3IgdGhlIAorICAgICAqICAgICAgICAgICAgIG5ldyBzdGFydCBzZWFyY2ggb2Zmc2V0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1ByZXZpb3VzQ2Fub25pY2FsTWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICAvLyB0byBlbnN1cmUgdGhhdCB0aGUgc3RhcnQgYW5kIGVuZHMgYXJlIG5vdCBjb21wb3NpdGUgY2hhcmFjdGVycworICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgY2Fub25pY2FsIGFjY2VudCBtYXRjaAorICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIAorICAgICAgICAgICAgJiYgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwIAorICAgICAgICAgICAgfHwgbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfIAorICAgICAgICAgICAgJiYgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgbWF0Y2hMZW5ndGggPSBnZXROZXh0QmFzZU9mZnNldChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaW50IGVuZCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICBpZiAoIWNoZWNrUHJldmlvdXNDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKHRleHRvZmZzZXQsIGVuZCkpIHsKKyAgICAgICAgICAgIC8vIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKyAgICAgICAgZW5kID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQoZW5kKTsKKyAgICAgICAgLy8gdGhpcyB0b3RhbGx5IG1hdGNoZXMsIGhvd2V2ZXIgd2UgbmVlZCB0byBjaGVjayBpZiBpdCBpcyByZXBlYXRpbmcKKyAgICAgICAgaWYgKGNoZWNrUmVwZWF0ZWRNYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgIWlzQnJlYWtVbml0KHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCAhY2hlY2tJZGVudGljYWwodGV4dG9mZnNldCwgZW5kKSkgeworICAgICAgICAgICAgdGV4dG9mZnNldCAtLTsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGV4dG9mZnNldCk7CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGV4dG9mZnNldDsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSBlbmQgLSB0ZXh0b2Zmc2V0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIHRoYXQgZG9lcyB0aGUgbmV4dCBleGFjdCBtYXRjaAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorICAgICAqICAgICAgICBuZXh0IGV4YWN0IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZU5leHRFeGFjdChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBpbnQgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZChzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pOworICAgICAgICBpbnQgdGFyZ2V0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICB3aGlsZSAodGV4dG9mZnNldCA8PSBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICAgICAgaW50IHBhdHRlcm5jZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDE7CisgICAgICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgbGFzdGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBmaW5kaW5nIHRoZSBsYXN0IHBhdHRlcm4gY2UgbWF0Y2gsIGltYWdpbmUgY29tcG9zaXRlIAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMuIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gQSBpbiB0ZXh0IFx1MDBDMAorICAgICAgICAgICAgICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2tpcCBcdTAzMDAgdGhlIGdyYXZlIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gQQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUgJiYgCisgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLmlzSW5CdWZmZXIoKSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBmb3IgdGhlIHRleHQgXHUwMzE1XHUwMzAwIHRoYXQgcmVxdWlyZXMgCisgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6YXRpb24gYW5kIHBhdHRlcm4gXHUwMzAwLCB3aGVyZSBcdTAzMTUgaXMgaWdub3JhYmxlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGFzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgIHx8IGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RjZSA9IHRhcmdldGNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNlIGNhbiBiZSBhIGNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHdoaWxlIChmb3VuZCAmJiBwYXR0ZXJuY2VpbmRleCA+IDApIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCAtLTsKKyAgICAgICAgICAgICAgICBmb3VuZCA9IGZvdW5kICYmIHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdOyAKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHRleHRvZmZzZXQsIGxhc3RjZSwgcGF0dGVybmNlaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IGxvb3AuCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2hlY2tOZXh0RXhhY3RNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGluIHVjb2xfc2V0T2Zmc2V0CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIH0KKyAgICAgICAgc2V0TWF0Y2hOb3RGb3VuZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIG5leHQgY2Fub25pY2FsIG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisgICAgICogICAgICAgIG5leHQgY2Fub25pY2FsIG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZU5leHRDYW5vbmljYWwoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgYm9vbGVhbiBoYXNQYXR0ZXJuQWNjZW50cyA9IAorICAgICAgICAgICBtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gfHwgbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfOworICAgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hpZnRpbmcgaXQgY2hlY2sgZm9yIHNldHRpbmcgb2Zmc2V0CisgICAgICAgIC8vIGlmIHNldE9mZnNldCBpcyBjYWxsZWQgcHJldmlvdXNseSBvciB0aGVyZSB3YXMgbm8gcHJldmlvdXMgbWF0Y2gsIHdlCisgICAgICAgIC8vIGxlYXZlIHRoZSBvZmZzZXQgYXMgaXQgaXMuCisgICAgICAgIGludCB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHN0YXJ0LCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICBpbnQgdGFyZ2V0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPD0gbV90ZXh0TGltaXRPZmZzZXRfKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGxhc3RjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgLy8gZmluZGluZyB0aGUgbGFzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgLy8gZm9yIGV4YW1wbGU6IHNlYXJjaCBmb3IgcGF0dGVybiBBIGluIHRleHQgXHUwMEMwCisgICAgICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIFx1MDMwMCB0aGUgZ3JhdmUgZmlyc3QgYmVmb3JlIHdlIGdldCB0byBBCisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAobGFzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbGFzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdGNlID0gdGFyZ2V0Y2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgY2UgY2FuIGJlIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgICAgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSAgICA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisgICAgICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBpbml0aWFsaXppbmcgdGhlIHJlYXJyYW5nZWQgYWNjZW50IGFycmF5CisgICAgICAgICAgICBpZiAoaGFzUGF0dGVybkFjY2VudHMgJiYgIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgZm91bmQgPSBkb05leHRDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHRleHRvZmZzZXQsIGxhc3RjZSwgcGF0dGVybmNlaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IGxvb3AKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaGVja05leHRDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIHRoYXQgZG9lcyB0aGUgcHJldmlvdXMgZXhhY3QgbWF0Y2gKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB0byBzdGFydCBzaGlmdGluZyBmcm9tIGFuZCBwZXJmb3JtaW5nIHRoZSAKKyAgICAgKiAgICAgICAgcHJldmlvdXMgZXhhY3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlUHJldmlvdXNFeGFjdChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBpbnQgdGV4dG9mZnNldCA9IHJldmVyc2VTaGlmdChzdGFydCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pOworICAgICAgICB3aGlsZSAodGV4dG9mZnNldCA+PSBtX3RleHRCZWdpbk9mZnNldF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICAgICAgaW50IHBhdHRlcm5jZWluZGV4ID0gMTsKKyAgICAgICAgICAgIGludCB0YXJnZXRjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgZmlyc3RjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgLy8gZmluZGluZyB0aGUgZmlyc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gZm9yIGV4YW1wbGU6IHNlYXJjaCBmb3IgcGF0dGVybiBcdTAzMDAgaW4gdGV4dCAKKyAgICAgICAgICAgICAgICAvLyBcdTAwQzAsIHdlJ2xsIGhhdmUgdG8gc2tpcCBBIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gCisgICAgICAgICAgICAgICAgLy8gXHUwMzAwIHRoZSBncmF2ZSBhY2NlbnQKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgfHwgZmlyc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Y2UgPSB0YXJnZXRjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA9PSAtMSAKKyAgICAgICAgICAgICAgICAgICAgfHwgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJTaXplXykgeworICAgICAgICAgICAgICAgICAgICAvLyBjaGVja2luZyBmb3IgYWNjZW50cyBpbiBjb21wb3NpdGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHRhcmdldGNlID0gZmlyc3RjZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGZvdW5kICYmIHBhdHRlcm5jZWluZGV4IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHJldmVyc2VTaGlmdCh0ZXh0b2Zmc2V0LCB0YXJnZXRjZSwgcGF0dGVybmNlaW5kZXgpOworICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoZWNrUHJldmlvdXNFeGFjdE1hdGNoKHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIH0KKyAgICAgICAgc2V0TWF0Y2hOb3RGb3VuZCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBwcmV2aW91cyBjYW5vbmljYWwgbWF0Y2gKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB0byBzdGFydCBzaGlmdGluZyBmcm9tIGFuZCBwZXJmb3JtaW5nIHRoZSAKKyAgICAgKiAgICAgICAgcHJldmlvdXMgY2Fub25pY2FsIG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZVByZXZpb3VzQ2Fub25pY2FsKGludCBzdGFydCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gaGFzUGF0dGVybkFjY2VudHMgPSAKKyAgICAgICAgICAgbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgICAgICAgCisgICAgICAgIC8vIHNoaWZ0aW5nIGl0IGNoZWNrIGZvciBzZXR0aW5nIG9mZnNldAorICAgICAgICAvLyBpZiBzZXRPZmZzZXQgaXMgY2FsbGVkIHByZXZpb3VzbHkgb3IgdGhlcmUgd2FzIG5vIHByZXZpb3VzIG1hdGNoLCB3ZQorICAgICAgICAvLyBsZWF2ZSB0aGUgb2Zmc2V0IGFzIGl0IGlzLgorICAgICAgICBpbnQgdGV4dG9mZnNldCA9IHJldmVyc2VTaGlmdChzdGFydCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPj0gbV90ZXh0QmVnaW5PZmZzZXRfKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IDE7CisgICAgICAgICAgICBpbnQgdGFyZ2V0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGZpcnN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGZpcnN0IHBhdHRlcm4gY2UgbWF0Y2gsIGltYWdpbmUgY29tcG9zaXRlIAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMuIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gXHUwMzAwIGluIHRleHQgCisgICAgICAgICAgICAgICAgLy8gXHUwMEMwLCB3ZSdsbCBoYXZlIHRvIHNraXAgQSBmaXJzdCBiZWZvcmUgd2UgZ2V0IHRvIAorICAgICAgICAgICAgICAgIC8vIFx1MDMwMCB0aGUgZ3JhdmUgYWNjZW50CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgIHx8IGZpcnN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdGNlID0gdGFyZ2V0Y2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBjZSBjYW4gYmUgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPT0gLTEgCisgICAgICAgICAgICAgICAgICAgIHx8IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcgZm9yIGFjY2VudHMgaW4gY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB0YXJnZXRjZSA9IGZpcnN0Y2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChmb3VuZCAmJiBwYXR0ZXJuY2VpbmRleCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvdW5kID0gZm91bmQgJiYgdGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF07IAorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ICsrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gaW5pdGlhbGl6aW5nIHRoZSByZWFycmFuZ2VkIGFjY2VudCBhcnJheQorICAgICAgICAgICAgaWYgKGhhc1BhdHRlcm5BY2NlbnRzICYmICFmb3VuZCkgeworICAgICAgICAgICAgICAgIGZvdW5kID0gZG9QcmV2aW91c0Nhbm9uaWNhbE1hdGNoKHRleHRvZmZzZXQpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQodGV4dG9mZnNldCwgdGFyZ2V0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoY2hlY2tQcmV2aW91c0Nhbm9uaWNhbE1hdGNoKHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIH0KKyAgICAgICAgc2V0TWF0Y2hOb3RGb3VuZCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc3Vic3RyaW5nIG91dCBvZiBhIENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIHRleHQgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgb2Zmc2V0CisgICAgICogQHBhcmFtIGxlbmd0aCBvZiBzdWJzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHN1YnN0cmluZyBmcm9tIHRleHQgc3RhcnRpbmcgYXQgc3RhcnQgYW5kIGxlbmd0aCBsZW5ndGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2V0U3RyaW5nKENoYXJhY3Rlckl0ZXJhdG9yIHRleHQsIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKGxlbmd0aCk7CisgICAgICAgIGludCBvZmZzZXQgPSB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgIHRleHQuc2V0SW5kZXgoc3RhcnQpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0LmN1cnJlbnQoKSk7CisgICAgICAgICAgICB0ZXh0Lm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICB0ZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgbWFzayBmb3IgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgKiBAcmV0dXJuIGNvbGxhdGlvbiBlbGVtZW50IG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0TWFzayhpbnQgc3RyZW5ndGgpIAorICAgIHsKKyAgICAgICAgc3dpdGNoIChzdHJlbmd0aCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgQ29sbGF0b3IuUFJJTUFSWToKKyAgICAgICAgICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgIGNhc2UgQ29sbGF0b3IuU0VDT05EQVJZOgorICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS18gCisgICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RFUlRJQVJZX01BU0tfIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9NQVNLXyAKKyAgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgbWF0Y2ggbm90IGZvdW5kIAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRNYXRjaE5vdEZvdW5kKCkgCisgICAgeworICAgICAgICAvLyB0aGlzIG1ldGhvZCByZXNldHMgdGhlIG1hdGNoIHJlc3VsdCByZWdhcmRsZXNzIG9mIHRoZSBlcnJvciBzdGF0dXMuCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IERPTkU7CisgICAgICAgIHNldE1hdGNoTGVuZ3RoKDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N5bWJvbFRhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyZjIyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKKy8qKgorICogQW4gaW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBib3RoIGxvb2t1cCBwcm90b2NvbCBhbmQgcGFyc2luZyBvZgorICogc3ltYm9saWMgbmFtZXMuCisgKiAKKyAqIDxwPlRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgYnkgVW5pY29kZVNldCB0byByZXNvbHZlICRWYXJpYWJsZSBzdHlsZQorICogcmVmZXJlbmNlcyB0aGF0IGFwcGVhciBpbiBzZXQgcGF0dGVybnMuICBSQkJJIGFuZCBUcmFuc2xpdGVyYXRpb24KKyAqIGJvdGggaW5kZXBlbmRlbnRseSBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UuCisgKgorICogPHA+QSBzeW1ib2wgdGFibGUgbWFpbnRhaW5zIHR3byBraW5kcyBvZiBtYXBwaW5ncy4gIFRoZSBmaXJzdCBpcworICogYmV0d2VlbiBzeW1ib2xpYyBuYW1lcyBhbmQgdGhlaXIgdmFsdWVzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQorICogdmFyaWFibGUgd2l0aCB0aGUgbmFtZSAic3RhcnQiIGlzIHNldCB0byB0aGUgdmFsdWUgImFscGhhIgorICogKHBlcmhhcHMsIHRob3VnaCBub3QgbmVjZXNzYXJpbHksIHRocm91Z2ggYW4gZXhwcmVzc2lvbiBzdWNoIGFzCisgKiAiJHN0YXJ0PWFscGhhIiksIHRoZW4gdGhlIGNhbGwgbG9va3VwKCJzdGFydCIpIHdpbGwgcmV0dXJuIHRoZQorICogY2hhcltdIGFycmF5IFsnYScsICdsJywgJ3AnLCAnaCcsICdhJ10uCisgKgorICogPHA+VGhlIHNlY29uZCBraW5kIG9mIG1hcHBpbmcgaXMgYmV0d2VlbiBjaGFyYWN0ZXIgdmFsdWVzIGFuZAorICogVW5pY29kZU1hdGNoZXIgb2JqZWN0cy4gIFRoaXMgaXMgdXNlZCBieSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAqIHdoaWNoIHVzZXMgY2hhcmFjdGVycyBpbiB0aGUgcHJpdmF0ZSB1c2UgYXJlYSB0byByZXByZXNlbnQgb2JqZWN0cworICogc3VjaCBhcyBVbmljb2RlU2V0cy4gIElmIFUrRTAxNSBpcyBtYXBwZWQgdG8gdGhlIFVuaWNvZGVTZXQgW2Etel0sCisgKiB0aGVuIGxvb2t1cE1hdGNoZXIoMHhFMDE1KSB3aWxsIHJldHVybiB0aGUgVW5pY29kZVNldCBbYS16XS4KKyAqCisgKiA8cD5GaW5hbGx5LCBhIHN5bWJvbCB0YWJsZSBkZWZpbmVzIHBhcnNpbmcgYmVoYXZpb3IgZm9yIHN5bWJvbGljCisgKiBuYW1lcy4gIEFsbCBzeW1ib2xpYyBuYW1lcyBzdGFydCB3aXRoIHRoZSBTWU1CT0xfUkVGIGNoYXJhY3Rlci4KKyAqIFdoZW4gYSBwYXJzZXIgZW5jb3VudGVycyB0aGlzIGNoYXJhY3RlciwgaXQgY2FsbHMgcGFyc2VSZWZlcmVuY2UoKQorICogd2l0aCB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBTWU1CT0xfUkVGLiAgVGhlIHN5bWJvbAorICogdGFibGUgcGFyc2VzIHRoZSBuYW1lLCBpZiB0aGVyZSBpcyBvbmUsIGFuZCByZXR1cm5zIGl0LgorICoKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgaW50ZXJmYWNlIFN5bWJvbFRhYmxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSBjaGFyYWN0ZXIgcHJlY2VkaW5nIGEgc3ltYm9sIHJlZmVyZW5jZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjaGFyIFNZTUJPTF9SRUYgPSAnJCc7CisKKyAgICAvKioKKyAgICAgKiBMb29rdXAgdGhlIGNoYXJhY3RlcnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3RyaW5nIGFuZCByZXR1cm4gaXQuCisgICAgICogUmV0dXJuIDx0dD5udWxsPC90dD4gaWYgbm8gc3VjaCBuYW1lIGV4aXN0cy4gIFRoZSByZXN1bHRhbnQKKyAgICAgKiBhcnJheSBtYXkgaGF2ZSBsZW5ndGggemVyby4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc3ltYm9saWMgbmFtZSB0byBsb29rdXAKKyAgICAgKiBAcmV0dXJuIGEgY2hhciBhcnJheSBjb250YWluaW5nIHRoZSBuYW1lJ3MgdmFsdWUsIG9yIG51bGwgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBtYXBwaW5nIGZvciBzLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNoYXJbXSBsb29rdXAoU3RyaW5nIHMpOworCisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBVbmljb2RlTWF0Y2hlciBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGNoYXJhY3RlciwgYW5kCisgICAgICogcmV0dXJuIGl0LiAgUmV0dXJuIDx0dD5udWxsPC90dD4gaWYgbm90IGZvdW5kLgorICAgICAqIEBwYXJhbSBjaCBhIDMyLWJpdCBjb2RlIHBvaW50IGZyb20gMCB0byAweDEwRkZGRiBpbmNsdXNpdmUuCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZU1hdGNoZXIgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbgorICAgICAqIGNoYXJhY3Rlciwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBtYXBwaW5nIGZvciBjaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBjaCk7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHN5bWJvbCByZWZlcmVuY2UgbmFtZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcsIHN0YXJ0aW5nCisgICAgICogYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiAgSWYgbm8gdmFsaWQgc3ltYm9sIHJlZmVyZW5jZSBuYW1lIGlzCisgICAgICogZm91bmQsIHJldHVybiBudWxsIGFuZCBsZWF2ZSBwb3MgdW5jaGFuZ2VkLiAgVGhhdCBpcywgaWYgdGhlCisgICAgICogY2hhcmFjdGVyIGF0IHBvcyBjYW5ub3Qgc3RhcnQgYSBuYW1lLCBvciBpZiBwb3MgaXMgYXQgb3IgYWZ0ZXIKKyAgICAgKiB0ZXh0Lmxlbmd0aCgpLCB0aGVuIHJldHVybiBudWxsLiAgVGhpcyBpbmRpY2F0ZXMgYW4gaXNvbGF0ZWQKKyAgICAgKiBTWU1CT0xfUkVGIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBwYXJzZSBmb3IgdGhlIG5hbWUKKyAgICAgKiBAcGFyYW0gcG9zIG9uIGVudHJ5LCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZS4KKyAgICAgKiBUaGlzIGlzIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBTWU1CT0xfUkVGIGNoYXJhY3Rlci4gIE9uCisgICAgICogZXhpdCwgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIuICBJZiB0aGUgcGFyc2UKKyAgICAgKiBmYWlsZWQsIHBvcyBpcyB1bmNoYW5nZWQgb24gZXhpdC4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiB0aGUgcGFyc2VkIG5hbWUsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gdmFsaWQgc3ltYm9saWMKKyAgICAgKiBuYW1lIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg5ZWZlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBjb252ZXJ0cyBhbGwgbGV0dGVycyAoYXMgZGVmaW5lZCBieQorICogPGNvZGU+VUNoYXJhY3Rlci5pc0xldHRlcigpPC9jb2RlPikgdG8gbG93ZXIgY2FzZSwgZXhjZXB0IGZvciB0aG9zZQorICogbGV0dGVycyBwcmVjZWRlZCBieSBub24tbGV0dGVycy4gIFRoZSBsYXR0ZXIgYXJlIGNvbnZlcnRlZCB0byB0aXRsZQorICogY2FzZSB1c2luZyA8Y29kZT5VQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKCk8L2NvZGU+LgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUaXRsZWNhc2VUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgX0lEID0gIkFueS1UaXRsZSI7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIlRpdGxlIiwgIkxvd2VyIiwgZmFsc2UpOworICAgIH0KKworICAgIHByaXZhdGUgVUxvY2FsZSBsb2NhbGU7CisKKyAgICBwcml2YXRlIFVDYXNlUHJvcHMgY3NwOworICAgIHByaXZhdGUgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciByZXN1bHQ7CisgICAgcHJpdmF0ZSBpbnRbXSBsb2NDYWNoZTsKKworICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBUaXRsZWNhc2VUcmFuc2xpdGVyYXRvcihVTG9jYWxlIGxvYykgeworICAgICAgICBzdXBlcihfSUQsIG51bGwpOworICAgICAgICBsb2NhbGUgPSBsb2M7CisgICAgICAgIC8vIE5lZWQgdG8gbG9vayBiYWNrIDIgY2hhcmFjdGVycyBpbiB0aGUgY2FzZSBvZiAiY2FuJ3QiCisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKDIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3NwPVVDYXNlUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNzcD1udWxsOworICAgICAgICB9CisgICAgICAgIGl0ZXI9bmV3IFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yKCk7CisgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBsb2NDYWNoZVswXT0wOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIC8vIFRPRE8gcmVpbXBsZW1lbnQsIHNlZSB1c3RyY2FzZS5jCisgICAgICAgIC8vIHVzaW5nIGEgcmVhbCB3b3JkIGJyZWFrIGl0ZXJhdG9yCisgICAgICAgIC8vICAgaW5zdGVhZCBvZiBqdXN0IGxvb2tpbmcgZm9yIGEgdHJhbnNpdGlvbiBiZXR3ZWVuIGNhc2VkIGFuZCB1bmNhc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gY2FsbCBDYXNlTWFwVHJhbnNsaXRlcmF0b3I6OmhhbmRsZVRyYW5zbGl0ZXJhdGUoKSBmb3IgbG93ZXJjYXNpbmc/IChzZXQgZk1hcCkKKyAgICAgICAgLy8gbmVlZHMgdG8gdGFrZSBpc0luY3JlbWVudGFsIGludG8gYWNjb3VudCBiZWNhdXNlIGNhc2UgbWFwcGluZ3MgYXJlIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICAgIC8vICAgYWxzbyBkZXRlY3Qgd2hlbiBsb3dlcmNhc2luZyBmdW5jdGlvbiBkaWQgbm90IGZpbmlzaCBiZWNhdXNlIG9mIGNvbnRleHQKKworICAgICAgICBpZiAob2Zmc2V0cy5zdGFydCA+PSBvZmZzZXRzLmxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBjYXNlIHR5cGU6ID4wIGNhc2VkIChVQ2FzZVByb3BzLkxPV0VSIGV0Yy4pICA9PTAgdW5jYXNlZCAgPDAgY2FzZS1pZ25vcmFibGUKKyAgICAgICAgaW50IHR5cGU7CisKKyAgICAgICAgLy8gT3VyIG1vZGU7IHdlIGFyZSBlaXRoZXIgY29udmVydGluZyBsZXR0ZXIgdG9UaXRsZSBvcgorICAgICAgICAvLyB0b0xvd2VyLgorICAgICAgICBib29sZWFuIGRvVGl0bGUgPSB0cnVlOworCisgICAgICAgIC8vIERldGVybWluZSBpZiB0aGVyZSBpcyBhIHByZWNlZGluZyBjb250ZXh0IG9mIGNhc2VkIGNhc2UtaWdub3JhYmxlKiwKKyAgICAgICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIHN0YXJ0IGluIHRvTG93ZXIgbW9kZS4gIElmIHRoZQorICAgICAgICAvLyBwcmlvciBjb250ZXh0IGlzIGFueXRoaW5nIGVsc2UgKGluY2x1ZGluZyBlbXB0eSkgdGhlbiBzdGFydAorICAgICAgICAvLyBpbiB0b1RpdGxlIG1vZGUuCisgICAgICAgIGludCBjLCBzdGFydDsKKyAgICAgICAgZm9yIChzdGFydCA9IG9mZnNldHMuc3RhcnQgLSAxOyBzdGFydCA+PSBvZmZzZXRzLmNvbnRleHRTdGFydDsgc3RhcnQgLT0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICBjID0gdGV4dC5jaGFyMzJBdChzdGFydCk7CisgICAgICAgICAgICB0eXBlPWNzcC5nZXRUeXBlT3JJZ25vcmFibGUoYyk7CisgICAgICAgICAgICBpZih0eXBlPjApIHsgLy8gY2FzZWQKKyAgICAgICAgICAgICAgICBkb1RpdGxlPWZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmKHR5cGU9PTApIHsgLy8gdW5jYXNlZCBidXQgbm90IGlnbm9yYWJsZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZWxzZSAodHlwZTwwKSBjYXNlLWlnbm9yYWJsZTogY29udGludWUKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhpbmdzIGFmdGVyIGEgY2FzZWQgY2hhcmFjdGVyIHRvTG93ZXI7IHRoaW5ncworICAgICAgICAvLyBhZnRlciBhIHVuY2FzZWQsIG5vbi1jYXNlLWlnbm9yYWJsZSBjaGFyYWN0ZXIgdG9UaXRsZS4gIENhc2UtaWdub3JhYmxlCisgICAgICAgIC8vIGNoYXJhY3RlcnMgYXJlIGNvcGllZCBkaXJlY3RseSBhbmQgZG8gbm90IGNoYW5nZSB0aGUgbW9kZS4KKworICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIGl0ZXIuc2V0SW5kZXgob2Zmc2V0cy5zdGFydCk7CisgICAgICAgIGl0ZXIuc2V0TGltaXQob2Zmc2V0cy5saW1pdCk7CisgICAgICAgIGl0ZXIuc2V0Q29udGV4dExpbWl0cyhvZmZzZXRzLmNvbnRleHRTdGFydCwgb2Zmc2V0cy5jb250ZXh0TGltaXQpOworCisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisKKyAgICAgICAgLy8gV2FsayB0aHJvdWdoIG9yaWdpbmFsIHN0cmluZworICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGNhc2UgY2hhbmdlLCBtb2RpZnkgY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiByZXBsYWNlYWJsZQorICAgICAgICBpbnQgZGVsdGE7CisKKyAgICAgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICB0eXBlPWNzcC5nZXRUeXBlT3JJZ25vcmFibGUoYyk7CisgICAgICAgICAgICBpZih0eXBlPj0wKSB7IC8vIG5vdCBjYXNlLWlnbm9yYWJsZQorICAgICAgICAgICAgICAgIGlmKGRvVGl0bGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYz1jc3AudG9GdWxsVGl0bGUoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjPWNzcC50b0Z1bGxMb3dlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkb1RpdGxlID0gdHlwZT09MDsgLy8gZG9UaXRsZT1pc1VuY2FzZWQKKworICAgICAgICAgICAgICAgIGlmKGl0ZXIuZGlkUmVhY2hMaW1pdCgpICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbiB0cmllZCB0byBsb29rIGJleW9uZCB0aGUgY29udGV4dCBsaW1pdAorICAgICAgICAgICAgICAgICAgICAvLyB3YWl0IGZvciBtb3JlIGlucHV0CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMuc3RhcnQ9aXRlci5nZXRDYXNlTWFwQ1BTdGFydCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYyBtYXBwZWQgdG8gaXRzZWxmLCBubyBjaGFuZ2UgKi8KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSB0aGUgbWFwcGluZyBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVsdGE9aXRlci5yZXBsYWNlKHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiByZXBsYWNlIGJ5IHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVsdGE9aXRlci5yZXBsYWNlKFVURjE2LnZhbHVlT2YoYykpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKGRlbHRhIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2Zvcm1UcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMTFiZjNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworLy9pbXBvcnQgamF2YS51dGlsLio7CisKK2Fic3RyYWN0IGNsYXNzIFRyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yIHsKKyAgICAvLyBDdXJyZW50bHkgdW51c2VkCit9CisKKy8vLyoqCisvLyAqIEFuIGFic3RyYWN0IGNsYXNzIGZvciB0cmFuc2xpdGVyYXRvcnMgYmFzZWQgb24gYSB0cmFuc2Zvcm0KKy8vICogb3BlcmF0aW9uLiAgVG8gY3JlYXRlIGEgdHJhbnNsaXRlcmF0b3IgdGhhdCBpbXBsZW1lbnRzIGEKKy8vICogdHJhbnNmb3JtYXRpb24sIGNyZWF0ZSBhIHN1YmNsYXNzIG9mIHRoaXMgY2xhc3MgYW5kIGltcGxlbWVudCB0aGUKKy8vICogYWJzdHJhY3QgPGNvZGU+dHJhbnNmb3JtKCk8L2NvZGU+IGFuZCA8Y29kZT5oYXNUcmFuc2Zvcm0oKTwvY29kZT4KKy8vICogbWV0aG9kcy4KKy8vICogQGF1dGhvciBBbGFuIExpdQorLy8gKi8KKy8vYWJzdHJhY3QgY2xhc3MgVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisvLworLy8gICAgLyoqCisvLyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuICBGb3IgdXNlIGJ5IHN1YmNsYXNzZXMuCisvLyAgICAgKi8KKy8vICAgIHByb3RlY3RlZCBUcmFuc2Zvcm1UcmFuc2xpdGVyYXRvcihTdHJpbmcgaWQsIFVuaWNvZGVGaWx0ZXIgZikgeworLy8gICAgICAgIHN1cGVyKGlkLCBmKTsKKy8vICAgIH0KKy8vCisvLyAgICAvKioKKy8vICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKy8vCisvLyAgICAgICAgaW50IHN0YXJ0OworLy8gICAgICAgIGZvciAoc3RhcnQgPSBvZmZzZXRzLnN0YXJ0OyBzdGFydCA8IG9mZnNldHMubGltaXQ7ICsrc3RhcnQpIHsKKy8vICAgICAgICAgICAgLy8gU2NhbiBmb3IgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGF0IGlzICE9IGl0cyB0cmFuc2Zvcm0uCisvLyAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBub25lLCB3ZSBmYWxsIG91dCB3aXRob3V0IGRvaW5nIGFueXRoaW5nLgorLy8gICAgICAgICAgICBjaGFyIGMgPSB0ZXh0LmNoYXJBdChzdGFydCk7CisvLyAgICAgICAgICAgIGlmIChoYXNUcmFuc2Zvcm0oYykpIHsKKy8vICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEgdHJhbnNmb3JtaW5nIGNoYXJhY3RlciBhdCBzdGFydC4gIEJyZWFrCisvLyAgICAgICAgICAgICAgICAvLyB1cCB0aGUgcmVtYWluaW5nIHN0cmluZywgZnJvbSBzdGFydCB0bworLy8gICAgICAgICAgICAgICAgLy8gb2Zmc2V0cy5saW1pdCwgaW50byBzZWdtZW50cyBvZiB1bmZpbHRlcmVkIGFuZAorLy8gICAgICAgICAgICAgICAgLy8gZmlsdGVyZWQgY2hhcmFjdGVycy4gIE9ubHkgdHJhbnNmb3JtIHRoZSB1bmZpbHRlcmVkCisvLyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiAgQXMgYWx3YXlzLCBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mCisvLyAgICAgICAgICAgICAgICAvLyBjYWxscyB0byBSZXBsYWNlYWJsZS5yZXBsYWNlKCkuCisvLworLy8gICAgICAgICAgICAgICAgaW50IGxlbiA9IG9mZnNldHMubGltaXQgLSBzdGFydDsKKy8vICAgICAgICAgICAgICAgIC8vIGFzc2VydChsZW4gPj0gMSk7CisvLyAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltsZW5dOworLy8gICAgICAgICAgICAgICAgdGV4dC5nZXRDaGFycyhzdGFydCwgb2Zmc2V0cy5saW1pdCwgYnVmLCAwKTsKKy8vCisvLyAgICAgICAgICAgICAgICBpbnQgc2VnU3RhcnQgPSAwOworLy8gICAgICAgICAgICAgICAgaW50IHNlZ0xpbWl0OworLy8gICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmaWx0ID0gZ2V0RmlsdGVyKCk7CisvLworLy8gICAgICAgICAgICAgICAgLy8gbGVuRGVsdGEgaXMgdGhlIGFjY3VtdWxhdGVkIGxlbmd0aCBkaWZmZXJlbmNlIGZvcgorLy8gICAgICAgICAgICAgICAgLy8gYWxsIHRyYW5zZm9ybWVkIHNlZ21lbnRzLiAgSXQgaXMgbmV3IGxlbmd0aCAtIG9sZAorLy8gICAgICAgICAgICAgICAgLy8gbGVuZ3RoLgorLy8gICAgICAgICAgICAgICAgaW50IGxlbkRlbHRhID0gMDsKKy8vCisvLyAgICAgICAgICAgICAgICAvLyBTZXQgc2VnU3RhcnQsIHNlZ0xpbWl0IHRvIHRoZSB1bmZpbHRlcmVkIHNlZ21lbnQKKy8vICAgICAgICAgICAgICAgIC8vIHN0YXJ0aW5nIHdpdGggc3RhcnQuICBJZiB0aGUgZmlsdGVyIGlzIG51bGwsIHRoZW4KKy8vICAgICAgICAgICAgICAgIC8vIHNlZ1N0YXJ0L0xpbWl0IHdpbGwgYmUgc2V0IHRvIHRoZSB3aG9sZSBzdHJpbmcsCisvLyAgICAgICAgICAgICAgICAvLyB0aGF0IGlzLCAwL2xlbi4KKy8vICAgICAgICAgICAgICAgIGRvIHsKKy8vICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2VnTGltaXQgdG8gdGhlIGZpcnN0IGZpbHRlcmVkIGNoYXIgYXQgb3IKKy8vICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciBzZWdTdGFydC4KKy8vICAgICAgICAgICAgICAgICAgICBzZWdMaW1pdCA9IGxlbjsKKy8vICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHNlZ0xpbWl0ID0gc2VnU3RhcnQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzZWdMaW1pdCA8IGxlbiAmJiBmaWx0LmNvbnRhaW5zKGJ1ZltzZWdMaW1pdF0pKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzZWdMaW1pdDsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSB1bmZpbHRlcmVkIGNoYXJzIGJldHdlZW4gc2VnU3RhcnQKKy8vICAgICAgICAgICAgICAgICAgICAvLyBhbmQgc2VnTGltaXQuCisvLyAgICAgICAgICAgICAgICAgICAgaW50IHNlZ0xlbiA9IHNlZ0xpbWl0IC0gc2VnU3RhcnQ7CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKHNlZ0xlbiAhPSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdTdHIgPSB0cmFuc2Zvcm0oCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nKGJ1Ziwgc2VnU3RhcnQsIHNlZ0xlbikpOworLy8gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIHN0YXJ0ICsgc2VnTGVuLCBuZXdTdHIpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBuZXdTdHIubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGxlbkRlbHRhICs9IG5ld1N0ci5sZW5ndGgoKSAtIHNlZ0xlbjsKKy8vICAgICAgICAgICAgICAgICAgICB9CisvLworLy8gICAgICAgICAgICAgICAgICAgIC8vIFNldCBzZWdTdGFydCB0byB0aGUgZmlyc3QgdW5maWx0ZXJlZCBjaGFyIGF0IG9yCisvLyAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc2VnTGltaXQuCisvLyAgICAgICAgICAgICAgICAgICAgc2VnU3RhcnQgPSBzZWdMaW1pdDsKKy8vICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzZWdTdGFydCA8IGxlbiAmJiAhZmlsdC5jb250YWlucyhidWZbc2VnU3RhcnRdKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzZWdTdGFydDsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBzZWdTdGFydCAtIHNlZ0xpbWl0OworLy8KKy8vICAgICAgICAgICAgICAgIH0gd2hpbGUgKHNlZ1N0YXJ0IDwgbGVuKTsKKy8vICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBsZW5EZWx0YTsKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGxlbkRlbHRhOworLy8gICAgICAgICAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisvLyAgICAgICAgICAgICAgICByZXR1cm47CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgLy8gYXNzZXJ0KHN0YXJ0ID09IG9mZnNldHMubGltaXQpOworLy8gICAgICAgIG9mZnNldHMuc3RhcnQgPSBzdGFydDsKKy8vICAgIH0KKy8vCisvLyAgICAvKioKKy8vICAgICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYQorLy8gICAgICogZ2l2ZW4gY2hhcmFjdGVyIGhhcyBhIHRyYW5zZm9ybSB0aGF0IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCisvLyAgICAgKiBUaGlzIGlzIGFwcHJveGltYXRlbHkgZXF1aXZhbGVudCB0byA8Y29kZT5jICE9CisvLyAgICAgKiB0cmFuc2Zvcm0oU3RyaW5nLnZhbHVlT2YoYykpPC9jb2RlPiwgd2hlcmUKKy8vICAgICAqIDxjb2RlPlN0cmluZy52YWx1ZU9mKGMpPC9jb2RlPiByZXR1cm5zIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisvLyAgICAgKiBzaW5nbGUgY2hhcmFjdGVyIChub3QgaW50ZWdlcikgPGNvZGU+YzwvY29kZT4uICBTdWJjbGFzc2VzIHRoYXQKKy8vICAgICAqIHRyYW5zZm9ybSBhbGwgdGhlaXIgaW5wdXQgY2FuIHNpbXBseSByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4uCisvLyAgICAgKi8KKy8vICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIGhhc1RyYW5zZm9ybShpbnQgYyk7CisvLworLy8gICAgLyoqCisvLyAgICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHRyYW5zZm9ybSBhIHN0cmluZy4KKy8vICAgICAqLworLy8gICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyB0cmFuc2Zvcm0oU3RyaW5nIHMpOworLy99CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQ5YTdhOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGUuamF2YQpAQCAtMCwwICsxLDU3NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdGlvbiBydWxlIHVzZWQgYnkKKyAqIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPi4KKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdGlvblJ1bGU8L2NvZGU+IGlzIGFuIGltbXV0YWJsZSBvYmplY3QuCisgKgorICogPHA+QSBydWxlIGNvbnNpc3RzIG9mIGFuIGlucHV0IHBhdHRlcm4gYW5kIGFuIG91dHB1dCBzdHJpbmcuICBXaGVuCisgKiB0aGUgaW5wdXQgcGF0dGVybiBpcyBtYXRjaGVkLCB0aGUgb3V0cHV0IHN0cmluZyBpcyBlbWl0dGVkLiAgVGhlCisgKiBpbnB1dCBwYXR0ZXJuIGNvbnNpc3RzIG9mIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBtYXRjaGVkCisgKiBleGFjdGx5ICh0aGUga2V5KSBhbmQgb3B0aW9uYWwgY29udGV4dC4gIENvbnRleHQgbXVzdCBtYXRjaCBpZiBpdAorICogaXMgc3BlY2lmaWVkLiAgQ29udGV4dCBtYXkgYmUgc3BlY2lmaWVkIGJlZm9yZSB0aGUga2V5LCBhZnRlciB0aGUKKyAqIGtleSwgb3IgYm90aC4gIFRoZSBrZXksIHByZWNlZGluZyBjb250ZXh0LCBhbmQgZm9sbG93aW5nIGNvbnRleHQKKyAqIG1heSBjb250YWluIHZhcmlhYmxlcy4gIFZhcmlhYmxlcyByZXByZXNlbnQgYSBzZXQgb2YgVW5pY29kZQorICogY2hhcmFjdGVycywgc3VjaCBhcyB0aGUgbGV0dGVycyA8aT5hPC9pPiB0aHJvdWdoIDxpPno8L2k+LgorICogVmFyaWFibGVzIGFyZSBkZXRlY3RlZCBieSBsb29raW5nIHVwIGVhY2ggY2hhcmFjdGVyIGluIGEgc3VwcGxpZWQKKyAqIHZhcmlhYmxlIGxpc3QgdG8gc2VlIGlmIGl0IGhhcyBiZWVuIHNvIGRlZmluZWQuCisgKgorICogPHA+QSBydWxlIG1heSBjb250YWluIHNlZ21lbnRzIGluIGl0cyBpbnB1dCBzdHJpbmcgYW5kIHNlZ21lbnQKKyAqIHJlZmVyZW5jZXMgaW4gaXRzIG91dHB1dCBzdHJpbmcuICBBIHNlZ21lbnQgaXMgYSBzdWJzdHJpbmcgb2YgdGhlCisgKiBpbnB1dCBwYXR0ZXJuLCBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0IGFuZCBsaW1pdC4gIFRoZSBzZWdtZW50IG1heQorICogYmUgaW4gdGhlIHByZWNlZGluZyBvciBmb2xsb3dpbmcgY29udGV4dC4gIEl0IG1heSBub3Qgc3BhbiBhCisgKiBjb250ZXh0IGJvdW5kYXJ5LiAgQSBzZWdtZW50IHJlZmVyZW5jZSBpcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGluCisgKiB0aGUgb3V0cHV0IHN0cmluZyB0aGF0IGNhdXNlcyBhIHNlZ21lbnQgb2YgdGhlIGlucHV0IHN0cmluZyAobm90CisgKiB0aGUgaW5wdXQgcGF0dGVybikgdG8gYmUgY29waWVkIHRvIHRoZSBvdXRwdXQgc3RyaW5nLiAgVGhlIHJhbmdlIG9mCisgKiBzcGVjaWFsIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQgc2VnbWVudCByZWZlcmVuY2VzIGlzIGRlZmluZWQgYnkKKyAqIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEuCisgKgorICogPHA+RXhhbXBsZTogVGhlIHJ1bGUgIihbYS16XSkgLiAoWzAtOV0pID4gJDIgLiAkMSIgd2lsbCBjaGFuZ2UgdGhlIGlucHV0CisgKiBzdHJpbmcgImFiYy4xMjMiIHRvICJhYjEuYzIzIi4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFRyYW5zbGl0ZXJhdGlvblJ1bGUgeworCisgICAgLy8gVE9ETyBFbGltaW5hdGUgdGhlIHBhdHRlcm4gYW5kIGtleUxlbmd0aCBkYXRhIG1lbWJlcnMuICBUaGV5CisgICAgLy8gYXJlIHVzZWQgb25seSBieSBtYXNrcygpIGFuZCBnZXRJbmRleFZhbHVlKCkgd2hpY2ggYXJlIGNhbGxlZAorICAgIC8vIG9ubHkgZHVyaW5nIGJ1aWxkIHRpbWUsIG5vdCBkdXJpbmcgcnVuLXRpbWUuICBQZXJoYXBzIHRoZXNlCisgICAgLy8gbWV0aG9kcyBhbmQgcGF0dGVybi9rZXlMZW5ndGggY2FuIGJlIGlzb2xhdGVkIGludG8gYSBzZXBhcmF0ZQorICAgIC8vIG9iamVjdC4KKworICAgIC8qKgorICAgICAqIFRoZSBtYXRjaCB0aGF0IG11c3Qgb2NjdXIgYmVmb3JlIHRoZSBrZXksIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBwcmVjZWRpbmcgY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ01hdGNoZXIgYW50ZUNvbnRleHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2hlciBvYmplY3QgZm9yIHRoZSBrZXkuICBJZiBudWxsLCB0aGVuIHRoZSBrZXkgaXMgZW1wdHkuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdNYXRjaGVyIGtleTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXRjaCB0aGF0IG11c3Qgb2NjdXIgYWZ0ZXIgdGhlIGtleSwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubworICAgICAqIGZvbGxvd2luZyBjb250ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nTWF0Y2hlciBwb3N0Q29udGV4dDsKKworICAgIC8qKgorICAgICAqIFRoZSBvYmplY3QgdGhhdCBwZXJmb3JtcyB0aGUgcmVwbGFjZW1lbnQgaWYgdGhlIGtleSwKKyAgICAgKiBhbnRlQ29udGV4dCwgYW5kIHBvc3RDb250ZXh0IGFyZSBtYXRjaGVkLiAgTmV2ZXIgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVSZXBsYWNlciBvdXRwdXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RyaW5nIHRoYXQgbXVzdCBiZSBtYXRjaGVkLCBjb25zaXN0aW5nIG9mIHRoZSBhbnRlQ29udGV4dCwga2V5LAorICAgICAqIGFuZCBwb3N0Q29udGV4dCwgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyLCBpbiB0aGF0IG9yZGVyLiAgU29tZSBjb21wb25lbnRzCisgICAgICogbWF5IGJlIGVtcHR5ICh6ZXJvIGxlbmd0aCkuCisgICAgICogQHNlZSBhbnRlQ29udGV4dExlbmd0aAorICAgICAqIEBzZWUga2V5TGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0dGVybjsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIG1hdGNoZXIgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnB1dCBwYXR0ZXJuCisgICAgICogc2VnbWVudHMuICBJZiB0aGVyZSBhcmUgbm8gc2VnbWVudHMgdGhpcyBpcyBudWxsLiAgTi5CLiBUaGlzIGlzCisgICAgICogYSBVbmljb2RlTWF0Y2hlciBmb3IgZ2VuZXJhbGl0eSwgYnV0IGluIHByYWN0aWNlIGl0IGlzIGFsd2F5cyBhCisgICAgICogU3RyaW5nTWF0Y2hlci4gIEluIHRoZSBmdXR1cmUgd2UgbWF5IGdlbmVyYWxpemUgdGhpcywgYnV0IGZvcgorICAgICAqIG5vdyB3ZSBzb21ldGltZXMgY2FzdCBkb3duIHRvIFN0cmluZ01hdGNoZXIuCisgICAgICovCisgICAgVW5pY29kZU1hdGNoZXJbXSBzZWdtZW50czsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0aGF0IG11c3QgbWF0Y2ggYmVmb3JlIHRoZSBrZXkuICBJZgorICAgICAqIHplcm8sIHRoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgcmVxdWlyZW1lbnQgYmVmb3JlIHRoZSBrZXkuCisgICAgICogU3Vic3RyaW5nIFswLGFudGVDb250ZXh0TGVuZ3RoKSBvZiBwYXR0ZXJuIGlzIHRoZSBhbnRlQ29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhbnRlQ29udGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIGtleS4gIFN1YnN0cmluZyBbYW50ZUNvbnRleHRMZW5ndGgsCisgICAgICogYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpIGlzIHRoZSBrZXkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQga2V5TGVuZ3RoOworCisgICAgLyoqCisgICAgICogTWlzY2VsbGFuZW91cyBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIGJ5dGUgZmxhZ3M7CisKKyAgICAvKioKKyAgICAgKiBGbGFnIGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBBTkNIT1JfU1RBUlQgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQU5DSE9SX0VORCAgID0gMjsKKworICAgIC8qKgorICAgICAqIEFuIGFsaWFzIHBvaW50ZXIgdG8gdGhlIGRhdGEgZm9yIHRoaXMgcnVsZS4gIFRoZSBkYXRhIHByb3ZpZGVzCisgICAgICogbG9va3VwIHNlcnZpY2VzIGZvciBtYXRjaGVycyBhbmQgc2VnbWVudHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LTIwMDEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBydWxlIHdpdGggdGhlIGdpdmVuIGlucHV0LCBvdXRwdXQgdGV4dCwgYW5kIG90aGVyCisgICAgICogYXR0cmlidXRlcy4gIEEgY3Vyc29yIHBvc2l0aW9uIG1heSBiZSBzcGVjaWZpZWQgZm9yIHRoZSBvdXRwdXQgdGV4dC4KKyAgICAgKiBAcGFyYW0gaW5wdXQgaW5wdXQgc3RyaW5nLCBpbmNsdWRpbmcga2V5IGFuZCBvcHRpb25hbCBhbnRlIGFuZAorICAgICAqIHBvc3QgY29udGV4dAorICAgICAqIEBwYXJhbSBhbnRlQ29udGV4dFBvcyBvZmZzZXQgaW50byBpbnB1dCB0byBlbmQgb2YgYW50ZSBjb250ZXh0LCBvciAtMSBpZgorICAgICAqIG5vbmUuICBNdXN0IGJlIDw9IGlucHV0Lmxlbmd0aCgpIGlmIG5vdCAtMS4KKyAgICAgKiBAcGFyYW0gcG9zdENvbnRleHRQb3Mgb2Zmc2V0IGludG8gaW5wdXQgdG8gc3RhcnQgb2YgcG9zdCBjb250ZXh0LCBvciAtMQorICAgICAqIGlmIG5vbmUuICBNdXN0IGJlIDw9IGlucHV0Lmxlbmd0aCgpIGlmIG5vdCAtMSwgYW5kIG11c3QgYmUgPj0KKyAgICAgKiBhbnRlQ29udGV4dFBvcy4KKyAgICAgKiBAcGFyYW0gb3V0cHV0IG91dHB1dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gY3Vyc29yUG9zIG9mZnNldCBpbnRvIG91dHB1dCBhdCB3aGljaCBjdXJzb3IgaXMgbG9jYXRlZCwgb3IgLTEgaWYKKyAgICAgKiBub25lLiAgSWYgbGVzcyB0aGFuIHplcm8sIHRoZW4gdGhlIGN1cnNvciBpcyBwbGFjZWQgYWZ0ZXIgdGhlCisgICAgICogPGNvZGU+b3V0cHV0PC9jb2RlPjsgdGhhdCBpcywgLTEgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPm91dHB1dC5sZW5ndGgoKTwvY29kZT4uICBJZiBncmVhdGVyIHRoYW4KKyAgICAgKiA8Y29kZT5vdXRwdXQubGVuZ3RoKCk8L2NvZGU+IHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICAgKiBAcGFyYW0gY3Vyc29yT2Zmc2V0IGFuIG9mZnNldCB0byBiZSBhZGRlZCB0byBjdXJzb3JQb3MgdG8gcG9zaXRpb24gdGhlCisgICAgICogY3Vyc29yIGVpdGhlciBpbiB0aGUgYW50ZSBjb250ZXh0LCBpZiA8IDAsIG9yIGluIHRoZSBwb3N0IGNvbnRleHQsIGlmID4KKyAgICAgKiAwLiAgRm9yIGV4YW1wbGUsIHRoZSBydWxlICJhYmN7ZGVmfSA+IHwgQEBAIHh5ejsiIGNoYW5nZXMgImRlZiIgdG8KKyAgICAgKiAieHl6IiBhbmQgbW92ZXMgdGhlIGN1cnNvciB0byBiZWZvcmUgImEiLiAgSXQgd291bGQgaGF2ZSBhIGN1cnNvck9mZnNldAorICAgICAqIG9mIC0zLgorICAgICAqIEBwYXJhbSBzZWdzIGFycmF5IG9mIFVuaWNvZGVNYXRjaGVyIGNvcnJlc3BvbmRpbmcgdG8gaW5wdXQgcGF0dGVybgorICAgICAqIHNlZ21lbnRzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBub25lCisgICAgICogQHBhcmFtIGFuY2hvclN0YXJ0IHRydWUgaWYgdGhlIHRoZSBydWxlIGlzIGFuY2hvcmVkIG9uIHRoZSBsZWZ0IHRvCisgICAgICogdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBAcGFyYW0gYW5jaG9yRW5kIHRydWUgaWYgdGhlIHJ1bGUgaXMgYW5jaG9yZWQgb24gdGhlIHJpZ2h0IHRvIHRoZQorICAgICAqIGNvbnRleHQgbGltaXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uUnVsZShTdHJpbmcgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFudGVDb250ZXh0UG9zLCBpbnQgcG9zdENvbnRleHRQb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3Vyc29yUG9zLCBpbnQgY3Vyc29yT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyW10gc2VncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFuY2hvclN0YXJ0LCBib29sZWFuIGFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisKKyAgICAgICAgLy8gRG8gcmFuZ2UgY2hlY2tzIG9ubHkgd2hlbiB3YXJyYW50ZWQgdG8gc2F2ZSB0aW1lCisgICAgICAgIGlmIChhbnRlQ29udGV4dFBvcyA8IDApIHsKKyAgICAgICAgICAgIGFudGVDb250ZXh0TGVuZ3RoID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhbnRlQ29udGV4dFBvcyA+IGlucHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBhbnRlIGNvbnRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFudGVDb250ZXh0TGVuZ3RoID0gYW50ZUNvbnRleHRQb3M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc3RDb250ZXh0UG9zIDwgMCkgeworICAgICAgICAgICAga2V5TGVuZ3RoID0gaW5wdXQubGVuZ3RoKCkgLSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChwb3N0Q29udGV4dFBvcyA8IGFudGVDb250ZXh0TGVuZ3RoIHx8CisgICAgICAgICAgICAgICAgcG9zdENvbnRleHRQb3MgPiBpbnB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zdCBjb250ZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBrZXlMZW5ndGggPSBwb3N0Q29udGV4dFBvcyAtIGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICB9CisgICAgICAgIGlmIChjdXJzb3JQb3MgPCAwKSB7CisgICAgICAgICAgICBjdXJzb3JQb3MgPSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yUG9zID4gb3V0cHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGN1cnNvciBwb3NpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgZG9uJ3QgdmFsaWRhdGUgdGhlIHNlZ21lbnRzIGFycmF5LiAgVGhlIGNhbGxlciBtdXN0CisgICAgICAgIC8vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWdtZW50cyBhcmUgd2VsbC1mb3JtZWQgKHRoYXQgaXMsIHRoYXQKKyAgICAgICAgLy8gYWxsICRuIHJlZmVyZW5jZXMgaW4gdGhlIG91dHB1dCByZWZlciB0byBpbmRpY2VzIG9mIHRoaXMKKyAgICAgICAgLy8gYXJyYXksIGFuZCB0aGF0IG5vIGFycmF5IGVsZW1lbnRzIGFyZSBudWxsKS4KKyAgICAgICAgdGhpcy5zZWdtZW50cyA9IHNlZ3M7CisKKyAgICAgICAgcGF0dGVybiA9IGlucHV0OworICAgICAgICBmbGFncyA9IDA7CisgICAgICAgIGlmIChhbmNob3JTdGFydCkgeworICAgICAgICAgICAgZmxhZ3MgfD0gQU5DSE9SX1NUQVJUOworICAgICAgICB9CisgICAgICAgIGlmIChhbmNob3JFbmQpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IEFOQ0hPUl9FTkQ7CisgICAgICAgIH0KKworICAgICAgICBhbnRlQ29udGV4dCA9IG51bGw7CisgICAgICAgIGlmIChhbnRlQ29udGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGFudGVDb250ZXh0ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoMCwgYW50ZUNvbnRleHRMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBkYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIGtleSA9IG51bGw7CisgICAgICAgIGlmIChrZXlMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBrZXkgPSBuZXcgU3RyaW5nTWF0Y2hlcihwYXR0ZXJuLnN1YnN0cmluZyhhbnRlQ29udGV4dExlbmd0aCwgYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcG9zdENvbnRleHRMZW5ndGggPSBwYXR0ZXJuLmxlbmd0aCgpIC0ga2V5TGVuZ3RoIC0gYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIHBvc3RDb250ZXh0ID0gbnVsbDsKKyAgICAgICAgaWYgKHBvc3RDb250ZXh0TGVuZ3RoID4gMCkgeworICAgICAgICAgICAgcG9zdENvbnRleHQgPSBuZXcgU3RyaW5nTWF0Y2hlcihwYXR0ZXJuLnN1YnN0cmluZyhhbnRlQ29udGV4dExlbmd0aCArIGtleUxlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGRhdGEpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5vdXRwdXQgPSBuZXcgU3RyaW5nUmVwbGFjZXIob3V0cHV0LCBjdXJzb3JQb3MgKyBjdXJzb3JPZmZzZXQsIGRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJlY2VkaW5nIGNvbnRleHQgbGVuZ3RoLiAgVGhpcyBtZXRob2QgaXMgbmVlZGVkIHRvCisgICAgICogc3VwcG9ydCB0aGUgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG1ldGhvZAorICAgICAqIDxjb2RlPmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCk8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QW50ZUNvbnRleHRMZW5ndGgoKSB7CisgICAgICAgIHJldHVybiBhbnRlQ29udGV4dExlbmd0aCArICgoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSA/IDEgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuICBSZXR1cm5zIDgtYml0IGluZGV4IHZhbHVlIGZvciB0aGlzIHJ1bGUuCisgICAgICogVGhpcyBpcyB0aGUgbG93IGJ5dGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5LAorICAgICAqIHVubGVzcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBrZXkgaXMgYSBzZXQuICBJZiBpdCdzIGEKKyAgICAgKiBzZXQsIG9yIG90aGVyd2lzZSBjYW4gbWF0Y2ggbXVsdGlwbGUga2V5cywgdGhlIGluZGV4IHZhbHVlIGlzIC0xLgorICAgICAqLworICAgIGZpbmFsIGludCBnZXRJbmRleFZhbHVlKCkgeworICAgICAgICBpZiAoYW50ZUNvbnRleHRMZW5ndGggPT0gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gQSBwYXR0ZXJuIHdpdGgganVzdCBhbnRlIGNvbnRleHQge3N1Y2ggYXMgZm9vKT5iYXJ9IGNhbgorICAgICAgICAgICAgLy8gbWF0Y2ggYW55IGtleS4KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChwYXR0ZXJuLCBhbnRlQ29udGV4dExlbmd0aCk7CisgICAgICAgIHJldHVybiBkYXRhLmxvb2t1cE1hdGNoZXIoYykgPT0gbnVsbCA/IChjICYgMHhGRikgOiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuICBSZXR1cm5zIHRydWUgaWYgdGhpcyBydWxlIG1hdGNoZXMgdGhlIGdpdmVuCisgICAgICogaW5kZXggdmFsdWUuICBUaGUgaW5kZXggdmFsdWUgaXMgYW4gOC1iaXQgaW50ZWdlciwgMC4uMjU1LAorICAgICAqIHJlcHJlc2VudGluZyB0aGUgbG93IGJ5dGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5LgorICAgICAqIEl0IG1hdGNoZXMgdGhpcyBydWxlIGlmIGl0IG1hdGNoZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUKKyAgICAgKiBrZXksIG9yIGlmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleSBpcyBhIHNldCwgYW5kIHRoZSBzZXQKKyAgICAgKiBjb250YWlucyBhbnkgY2hhcmFjdGVyIHdpdGggYSBsb3cgYnl0ZSBlcXVhbCB0byB0aGUgaW5kZXgKKyAgICAgKiB2YWx1ZS4gIElmIHRoZSBydWxlIGNvbnRhaW5zIG9ubHkgYW50ZSBjb250ZXh0LCBhcyBpbiBmb28pPmJhciwKKyAgICAgKiB0aGVuIGl0IHdpbGwgbWF0Y2ggYW55IGtleS4KKyAgICAgKi8KKyAgICBmaW5hbCBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSBrZXksIG9yIGlmIHRoZXJlIGlzIG5vbmUsIHRvIHRoZSBwb3N0Q29udGV4dC4KKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbmVpdGhlciB0aGVuIHdlIG1hdGNoIGFueSBrZXk7IHJldHVybiB0cnVlLgorICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gKGtleSAhPSBudWxsKSA/IGtleSA6IHBvc3RDb250ZXh0OworICAgICAgICByZXR1cm4gKG0gIT0gbnVsbCkgPyBtLm1hdGNoZXNJbmRleFZhbHVlKHYpIDogdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIHJ1bGUgbWFza3MgYW5vdGhlciBydWxlLiAgSWYgcjEgbWFza3MgcjIgdGhlbgorICAgICAqIHIxIG1hdGNoZXMgYW55IGlucHV0IHN0cmluZyB0aGF0IHIyIG1hdGNoZXMuICBJZiByMSBtYXNrcyByMiBhbmQgcjIgbWFza3MKKyAgICAgKiByMSB0aGVuIHIxID09IHIyLiAgRXhhbXBsZXM6ICJhPngiIG1hc2tzICJhYj55Ii4gICJhPngiIG1hc2tzICJhW2JdPnkiLgorICAgICAqICJbY11hPngiIG1hc2tzICJbZGNdYT55Ii4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXNrcyhUcmFuc2xpdGVyYXRpb25SdWxlIHIyKSB7CisgICAgICAgIC8qIFJ1bGUgcjEgbWFza3MgcnVsZSByMiBpZiB0aGUgc3RyaW5nIGZvcm1lZCBvZiB0aGUKKyAgICAgICAgICogYW50ZWNvbnRleHQsIGtleSwgYW5kIHBvc3Rjb250ZXh0IG92ZXJsYXBzIGluIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICogd2F5OgorICAgICAgICAgKgorICAgICAgICAgKiByMTogICAgICBhYWtra3BwcHAKKyAgICAgICAgICogcjI6ICAgICBhYWFra2tra3BwcHAKKyAgICAgICAgICogICAgICAgICAgICBeCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzdHJpbmdzIG11c3QgYmUgYWxpZ25lZCBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZQorICAgICAgICAgKiBrZXkuICBUaGUgbGVuZ3RoIG9mIHIxIHRvIHRoZSBsZWZ0IG9mIHRoZSBhbGlnbm1lbnQgcG9pbnQKKyAgICAgICAgICogbXVzdCBiZSA8PSB0aGUgbGVuZ3RoIG9mIHIyIHRvIHRoZSBsZWZ0OyBkaXR0byBmb3IgdGhlCisgICAgICAgICAqIHJpZ2h0LiAgVGhlIGNoYXJhY3RlcnMgb2YgcjEgbXVzdCBlcXVhbCAob3IgYmUgYSBzdXBlcnNldAorICAgICAgICAgKiBvZikgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBvZiByMi4gIFRoZSBzdXBlcnNldAorICAgICAgICAgKiBvcGVyYXRpb24gc2hvdWxkIGJlIHBlcmZvcm1lZCB0byBjaGVjayBmb3IgVW5pY29kZVNldAorICAgICAgICAgKiBtYXNraW5nLgorICAgICAgICAgKgorICAgICAgICAgKiBBbmNob3JzOiAgVHdvIHBhdHRlcm5zIHRoYXQgZGlmZmVyIG9ubHkgaW4gYW5jaG9ycyBvbmx5CisgICAgICAgICAqIG1hc2sgb25lIGFub3RoZXIgaWYgdGhleSBhcmUgZXhhY3RseSBlcXVhbCwgYW5kIHIyIGhhcworICAgICAgICAgKiBhbGwgdGhlIGFuY2hvcnMgcjEgaGFzIChvcHRpb25hbGx5LCBwbHVzIHNvbWUpLiAgSGVyZSBZCisgICAgICAgICAqIG1lYW5zIHRoZSByb3cgbWFza3MgdGhlIGNvbHVtbiwgTiBtZWFucyBpdCBkb2Vzbid0LgorICAgICAgICAgKgorICAgICAgICAgKiAgICAgICAgIGFiICAgXmFiICAgIGFiJCAgXmFiJAorICAgICAgICAgKiAgIGFiICAgIFkgICAgIFkgICAgIFkgICAgIFkKKyAgICAgICAgICogIF5hYiAgICBOICAgICBZICAgICBOICAgICBZCisgICAgICAgICAqICAgYWIkICAgTiAgICAgTiAgICAgWSAgICAgWQorICAgICAgICAgKiAgXmFiJCAgIE4gICAgIE4gICAgIE4gICAgIFkKKyAgICAgICAgICoKKyAgICAgICAgICogUG9zdCBjb250ZXh0OiB7YX1iIG1hc2tzIGFiLCBidXQgbm90IHZpY2UgdmVyc2EsIHNpbmNlIHthfWIKKyAgICAgICAgICogbWF0Y2hlcyBldmVyeXRoaW5nIGFiIG1hdGNoZXMsIGFuZCB7YX1iIG1hdGNoZXMge3xhfH1iIGJ1dCBhYgorICAgICAgICAgKiBkb2VzIG5vdC4gIFByZSBjb250ZXh0IGlzIGRpZmZlcmVudCAoYXtifSBkb2VzIG5vdCBhbGlnbiB3aXRoCisgICAgICAgICAqIGFiKS4KKyAgICAgICAgICovCisKKyAgICAgICAgLyogTElNSVRBVElPTiBvZiB0aGUgY3VycmVudCBtYXNrIGFsZ29yaXRobTogU29tZSBydWxlCisgICAgICAgICAqIG1hc2tpbmdzIGFyZSBjdXJyZW50bHkgbm90IGRldGVjdGVkLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICAqICJ7THV9XWE+eCIgbWFza3MgIkFdYT55Ii4gIFRoaXMgY2FuIGJlIGFkZGVkIGxhdGVyLiBUT0RPCisgICAgICAgICAqLworCisgICAgICAgIGludCBsZW4gPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICBpbnQgbGVmdCA9IGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICBpbnQgbGVmdDIgPSByMi5hbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgaW50IHJpZ2h0ID0gcGF0dGVybi5sZW5ndGgoKSAtIGxlZnQ7CisgICAgICAgIGludCByaWdodDIgPSByMi5wYXR0ZXJuLmxlbmd0aCgpIC0gbGVmdDI7CisKKyAgICAgICAgLy8gVE9ETyBDbGVhbiB0aGlzIHVwIC0tIHNvbWUgbG9naWMgbWlnaHQgYmUgY29tYmluYWJsZSB3aXRoIHRoZQorICAgICAgICAvLyBuZXh0IHN0YXRlbWVudC4KKworICAgICAgICAvLyBUZXN0IGZvciBhbmNob3IgbWFza2luZworICAgICAgICBpZiAobGVmdCA9PSBsZWZ0MiAmJiByaWdodCA9PSByaWdodDIgJiYKKyAgICAgICAgICAgIGtleUxlbmd0aCA8PSByMi5rZXlMZW5ndGggJiYKKyAgICAgICAgICAgIHIyLnBhdHRlcm4ucmVnaW9uTWF0Y2hlcygwLCBwYXR0ZXJuLCAwLCBsZW4pKSB7CisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGJvb2xlYW4gbG9naWMgaW1wbGVtZW50cyB0aGUgdGFibGUgYWJvdmUKKyAgICAgICAgICAgIHJldHVybiAoZmxhZ3MgPT0gcjIuZmxhZ3MpIHx8CisgICAgICAgICAgICAgICAgKCEoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiAhKChmbGFncyAmIEFOQ0hPUl9FTkQpICE9IDApKSB8fAorICAgICAgICAgICAgICAgICgoKHIyLmZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiAoKHIyLmZsYWdzICYgQU5DSE9SX0VORCkgIT0gMCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxlZnQgPD0gbGVmdDIgJiYKKyAgICAgICAgICAgIChyaWdodCA8IHJpZ2h0MiB8fAorICAgICAgICAgICAgIChyaWdodCA9PSByaWdodDIgJiYga2V5TGVuZ3RoIDw9IHIyLmtleUxlbmd0aCkpICYmCisgICAgICAgICAgICByMi5wYXR0ZXJuLnJlZ2lvbk1hdGNoZXMobGVmdDIgLSBsZWZ0LCBwYXR0ZXJuLCAwLCBsZW4pOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcG9zQmVmb3JlKFJlcGxhY2VhYmxlIHN0ciwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKHBvcyA+IDApID8KKyAgICAgICAgICAgIHBvcyAtIFVURjE2LmdldENoYXJDb3VudChzdHIuY2hhcjMyQXQocG9zLTEpKSA6CisgICAgICAgICAgICBwb3MgLSAxOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcG9zQWZ0ZXIoUmVwbGFjZWFibGUgc3RyLCBpbnQgcG9zKSB7CisgICAgICAgIHJldHVybiAocG9zID49IDAgJiYgcG9zIDwgc3RyLmxlbmd0aCgpKSA/CisgICAgICAgICAgICBwb3MgKyBVVEYxNi5nZXRDaGFyQ291bnQoc3RyLmNoYXIzMkF0KHBvcykpIDoKKyAgICAgICAgICAgIHBvcyArIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCBhIG1hdGNoIGFuZCByZXBsYWNlbWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBSZXR1cm4KKyAgICAgKiB0aGUgZGVncmVlIG9mIG1hdGNoIGJldHdlZW4gdGhpcyBydWxlIGFuZCB0aGUgZ2l2ZW4gdGV4dC4gIFRoZQorICAgICAqIGRlZ3JlZSBvZiBtYXRjaCBtYXkgYmUgbWlzbWF0Y2gsIGEgcGFydGlhbCBtYXRjaCwgb3IgYSBmdWxsCisgICAgICogbWF0Y2guICBBIG1pc21hdGNoIG1lYW5zIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgb2YgdGhlIHRleHQKKyAgICAgKiBkb2VzIG5vdCBtYXRjaCB0aGUgY29udGV4dCBvciBrZXkuICBBIHBhcnRpYWwgbWF0Y2ggbWVhbnMgc29tZQorICAgICAqIGNvbnRleHQgYW5kIGtleSBjaGFyYWN0ZXJzIG1hdGNoLCBidXQgdGhlIHRleHQgaXMgbm90IGxvbmcKKyAgICAgKiBlbm91Z2ggdG8gbWF0Y2ggYWxsIG9mIHRoZW0uICBBIGZ1bGwgbWF0Y2ggbWVhbnMgYWxsIGNvbnRleHQKKyAgICAgKiBhbmQga2V5IGNoYXJhY3RlcnMgbWF0Y2guCisgICAgICoKKyAgICAgKiBJZiBhIGZ1bGwgbWF0Y2ggaXMgb2J0YWluZWQsIHBlcmZvcm0gYSByZXBsYWNlbWVudCwgdXBkYXRlIHBvcywKKyAgICAgKiBhbmQgcmV0dXJuIFVfTUFUQ0guICBPdGhlcndpc2UgYm90aCB0ZXh0IGFuZCBwb3MgYXJlIHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0CisgICAgICogQHBhcmFtIHBvcyB0aGUgcG9zaXRpb24gaW5kaWNlcworICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiBUUlVFLCB0ZXN0IGZvciBwYXJ0aWFsIG1hdGNoZXMgdGhhdCBtYXkKKyAgICAgKiBiZSBjb21wbGV0ZWQgYnkgYWRkaXRpb25hbCB0ZXh0IGluc2VydGVkIGF0IHBvcy5saW1pdC4KKyAgICAgKiBAcmV0dXJuIG9uZSBvZiA8Y29kZT5VX01JU01BVENIPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5VX1BBUlRJQUxfTUFUQ0g8L2NvZGU+LCBvciA8Y29kZT5VX01BVENIPC9jb2RlPi4gIElmCisgICAgICogaW5jcmVtZW50YWwgaXMgRkFMU0UgdGhlbiBVX1BBUlRJQUxfTUFUQ0ggd2lsbCBub3QgYmUgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIGludCBtYXRjaEFuZFJlcGxhY2UoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBNYXRjaGluZyBhbmQgcmVwbGFjaW5nIGFyZSBkb25lIGluIG9uZSBtZXRob2QgYmVjYXVzZSB0aGUKKyAgICAgICAgLy8gcmVwbGFjZW1lbnQgb3BlcmF0aW9uIG5lZWRzIGluZm9ybWF0aW9uIG9idGFpbmVkIGR1cmluZyB0aGUKKyAgICAgICAgLy8gbWF0Y2guICBBbm90aGVyIHdheSB0byBkbyB0aGlzIGlzIHRvIGhhdmUgdGhlIG1hdGNoIG1ldGhvZAorICAgICAgICAvLyBjcmVhdGUgYSBtYXRjaCByZXN1bHQgc3RydWN0IHdpdGggcmVsZXZhbnQgb2Zmc2V0cywgYW5kIHRvIHBhc3MKKyAgICAgICAgLy8gdGhpcyBpbnRvIHRoZSByZXBsYWNlIG1ldGhvZC4KKworICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1BVENIID09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAgIC8vIFJlc2V0IHNlZ21lbnQgbWF0Y2ggZGF0YQorICAgICAgICBpZiAoc2VnbWVudHMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgKChTdHJpbmdNYXRjaGVyKSBzZWdtZW50c1tpXSkucmVzZXRNYXRjaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IGtleUxpbWl0OworICAgICAgICBpbnRbXSBpbnRSZWYgPSBuZXcgaW50WzFdOworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBbnRlIENvbnRleHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLy8gQSBtaXNtYXRjaCBpbiB0aGUgYW50ZSBjb250ZXh0LCBvciB3aXRoIHRoZSBzdGFydCBhbmNob3IsCisgICAgICAgIC8vIGlzIGFuIG91dHJpZ2h0IFVfTUlTTUFUQ0ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGFyZQorICAgICAgICAvLyBpbmNyZW1lbnRhbCBvciBub3QuCisgICAgICAgIGludCBvVGV4dDsgLy8gb2Zmc2V0IGludG8gJ3RleHQnCisgICAgICAgIGludCBtaW5PVGV4dDsKKworICAgICAgICAvLyBOb3RlICgxKTogV2UgcHJvY2VzcyB0ZXh0IGluIDE2LWJpdCBjb2RlIHVuaXRzLCByYXRoZXIgdGhhbgorICAgICAgICAvLyAzMi1iaXQgY29kZSBwb2ludHMuICBUaGlzIHdvcmtzIGJlY2F1c2Ugc3RhbmQtaW5zIGFyZQorICAgICAgICAvLyBhbHdheXMgaW4gdGhlIEJNUCBhbmQgYmVjYXVzZSB3ZSBhcmUgZG9pbmcgYSBsaXRlcmFsIG1hdGNoCisgICAgICAgIC8vIG9wZXJhdGlvbiwgd2hpY2ggY2FuIGJlIGRvbmUgMTYtYml0cyBhdCBhIHRpbWUuCisKKyAgICAgICAgaW50IGFudGVMaW1pdCA9IHBvc0JlZm9yZSh0ZXh0LCBwb3MuY29udGV4dFN0YXJ0KTsKKworICAgICAgICBpbnQgbWF0Y2g7CisKKyAgICAgICAgLy8gU3RhcnQgcmV2ZXJzZSBtYXRjaCBhdCBjaGFyIGJlZm9yZSBwb3Muc3RhcnQKKyAgICAgICAgaW50UmVmWzBdID0gcG9zQmVmb3JlKHRleHQsIHBvcy5zdGFydCk7CisKKyAgICAgICAgaWYgKGFudGVDb250ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1hdGNoID0gYW50ZUNvbnRleHQubWF0Y2hlcyh0ZXh0LCBpbnRSZWYsIGFudGVMaW1pdCwgZmFsc2UpOworICAgICAgICAgICAgaWYgKG1hdGNoICE9IFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG9UZXh0ID0gaW50UmVmWzBdOworCisgICAgICAgIG1pbk9UZXh0ID0gcG9zQWZ0ZXIodGV4dCwgb1RleHQpOworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdGFydCBBbmNob3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgaWYgKCgoZmxhZ3MgJiBBTkNIT1JfU1RBUlQpICE9IDApICYmIG9UZXh0ICE9IGFudGVMaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUlTTUFUQ0g7CisgICAgICAgIH0KKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLZXkgYW5kIFBvc3QgQ29udGV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGludFJlZlswXSA9IHBvcy5zdGFydDsKKworICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1hdGNoID0ga2V5Lm1hdGNoZXModGV4dCwgaW50UmVmLCBwb3MubGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCAhPSBVbmljb2RlTWF0Y2hlci5VX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAga2V5TGltaXQgPSBpbnRSZWZbMF07CisKKyAgICAgICAgaWYgKHBvc3RDb250ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBrZXlMaW1pdCA9PSBwb3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUga2V5IG1hdGNoZXMganVzdCBiZWZvcmUgcG9zLmxpbWl0LCBhbmQgdGhlcmUgaXMKKyAgICAgICAgICAgICAgICAvLyBhIHBvc3RDb250ZXh0LiAgU2luY2Ugd2UgYXJlIGluIGluY3JlbWVudGFsIG1vZGUsCisgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZCBhdAorICAgICAgICAgICAgICAgIC8vIHBvcy5saW1pdCAtLSB0aGlzIGlzIGEgcGFydGlhbCBtYXRjaC4KKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYXRjaCA9IHBvc3RDb250ZXh0Lm1hdGNoZXModGV4dCwgaW50UmVmLCBwb3MuY29udGV4dExpbWl0LCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpZiAobWF0Y2ggIT0gVW5pY29kZU1hdGNoZXIuVV9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG9UZXh0ID0gaW50UmVmWzBdOworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RvcCBBbmNob3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgaWYgKCgoZmxhZ3MgJiBBTkNIT1JfRU5EKSkgIT0gMCkgeworICAgICAgICAgICAgaWYgKG9UZXh0ICE9IHBvcy5jb250ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gUkVQTEFDRSA9PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAgIC8vIFdlIGhhdmUgYSBmdWxsIG1hdGNoLiAgVGhlIGtleSBpcyBiZXR3ZWVuIHBvcy5zdGFydCBhbmQKKyAgICAgICAgLy8ga2V5TGltaXQuCisKKyAgICAgICAgaW50IG5ld0xlbmd0aCA9IG91dHB1dC5yZXBsYWNlKHRleHQsIHBvcy5zdGFydCwga2V5TGltaXQsIGludFJlZik7CisgICAgICAgIGludCBsZW5EZWx0YSA9IG5ld0xlbmd0aCAtIChrZXlMaW1pdCAtIHBvcy5zdGFydCk7CisgICAgICAgIGludCBuZXdTdGFydCA9IGludFJlZlswXTsKKworICAgICAgICBvVGV4dCArPSBsZW5EZWx0YTsKKyAgICAgICAgcG9zLmxpbWl0ICs9IGxlbkRlbHRhOworICAgICAgICBwb3MuY29udGV4dExpbWl0ICs9IGxlbkRlbHRhOworICAgICAgICAvLyBSZXN0cmljdCBuZXcgdmFsdWUgb2Ygc3RhcnQgdG8gW21pbk9UZXh0LCBtaW4ob1RleHQsIHBvcy5saW1pdCldLgorICAgICAgICBwb3Muc3RhcnQgPSBNYXRoLm1heChtaW5PVGV4dCwgTWF0aC5taW4oTWF0aC5taW4ob1RleHQsIHBvcy5saW1pdCksIG5ld1N0YXJ0KSk7CisgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX01BVENIOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHNvdXJjZSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoaXMgcnVsZS4gIEFwcGVuZCBpdCB0byB0aGUKKyAgICAgKiBnaXZlbiBzdHJpbmcuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGUoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgIC8vIGludCBpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIEFjY3VtdWxhdGUgc3BlY2lhbCBjaGFyYWN0ZXJzIChhbmQgbm9uLXNwZWNpYWxzIGZvbGxvd2luZyB0aGVtKQorICAgICAgICAvLyBpbnRvIHF1b3RlQnVmLiAgQXBwZW5kIHF1b3RlQnVmLCB3aXRoaW4gc2luZ2xlIHF1b3Rlcywgd2hlbgorICAgICAgICAvLyBhIG5vbi1xdW90ZWQgZWxlbWVudCBtdXN0IGJlIGluc2VydGVkLgorICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gRG8gbm90IGVtaXQgdGhlIGJyYWNlcyAneycgJ30nIGFyb3VuZCB0aGUgcGF0dGVybiBpZiB0aGVyZQorICAgICAgICAvLyBpcyBuZWl0aGVyIGFudGVDb250ZXh0IG5vciBwb3N0Q29udGV4dC4KKyAgICAgICAgYm9vbGVhbiBlbWl0QnJhY2VzID0KKyAgICAgICAgICAgIChhbnRlQ29udGV4dCAhPSBudWxsKSB8fCAocG9zdENvbnRleHQgIT0gbnVsbCk7CisKKyAgICAgICAgLy8gRW1pdCBzdGFydCBhbmNob3IKKyAgICAgICAgaWYgKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgeworICAgICAgICAgICAgcnVsZS5hcHBlbmQoJ14nKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVtaXQgdGhlIGlucHV0IHBhdHRlcm4KKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgYW50ZUNvbnRleHQsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgaWYgKGVtaXRCcmFjZXMpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd7JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGtleSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKworICAgICAgICBpZiAoZW1pdEJyYWNlcykgeworICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ30nLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgcG9zdENvbnRleHQsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgLy8gRW1pdCBlbmQgYW5jaG9yCisgICAgICAgIGlmICgoZmxhZ3MgJiBBTkNIT1JfRU5EKSAhPSAwKSB7CisgICAgICAgICAgICBydWxlLmFwcGVuZCgnJCcpOworICAgICAgICB9CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgIiA+ICIsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgLy8gRW1pdCB0aGUgb3V0cHV0IHBhdHRlcm4KKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBvdXRwdXQudG9SZXBsYWNlclBhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnOycsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gJ3snICsgdG9SdWxlKHRydWUpICsgJ30nOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgYnkgdGhpcyBydWxlCisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqLworICAgIHZvaWQgYWRkU291cmNlU2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgaW50IGxpbWl0ID0gYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGg7CisgICAgICAgIGZvciAoaW50IGk9YW50ZUNvbnRleHRMZW5ndGg7IGk8bGltaXQ7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbWF0Y2hlciA9IGRhdGEubG9va3VwTWF0Y2hlcihjaCk7CisgICAgICAgICAgICBpZiAobWF0Y2hlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1hdGNoZXIuYWRkTWF0Y2hTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBlbWl0dGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKi8KKyAgICB2b2lkIGFkZFRhcmdldFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIG91dHB1dC5hZGRSZXBsYWNlbWVudFNldFRvKHRvVW5pb25Ubyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0ODNmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlU2V0LmphdmEKQEAgLTAsMCArMSwyNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworCisvKioKKyAqIEEgc2V0IG9mIHJ1bGVzIGZvciBhIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPi4gIFRoaXMgc2V0IGVuY29kZXMKKyAqIHRoZSB0cmFuc2xpdGVyYXRpb24gaW4gb25lIGRpcmVjdGlvbiBmcm9tIG9uZSBzZXQgb2YgY2hhcmFjdGVycyBvciBzaG9ydAorICogc3RyaW5ncyB0byBhbm90aGVyLiAgQSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4gY29uc2lzdHMgb2YgdXAgdG8KKyAqIHR3byBzdWNoIHNldHMsIG9uZSBmb3IgdGhlIGZvcndhcmQgZGlyZWN0aW9uLCBhbmQgb25lIGZvciB0aGUgcmV2ZXJzZS4KKyAqCisgKiA8cD5BIDxjb2RlPlRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQ8L2NvZGU+IGhhcyBvbmUgaW1wb3J0YW50IG9wZXJhdGlvbiwgdGhhdCBvZgorICogZmluZGluZyBhIG1hdGNoaW5nIHJ1bGUgYXQgYSBnaXZlbiBwb2ludCBpbiB0aGUgdGV4dC4gIFRoaXMgaXMgYWNjb21wbGlzaGVkCisgKiBieSB0aGUgPGNvZGU+ZmluZE1hdGNoKCk8L2NvZGU+IG1ldGhvZC4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgeworICAgIC8qKgorICAgICAqIFZlY3RvciBvZiBydWxlcywgaW4gdGhlIG9yZGVyIGFkZGVkLgorICAgICAqLworICAgIHByaXZhdGUgVmVjdG9yIHJ1bGVWZWN0b3I7CisKKyAgICAvKioKKyAgICAgKiBMZW5ndGggb2YgdGhlIGxvbmdlc3QgcHJlY2VkaW5nIGNvbnRleHQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtYXhDb250ZXh0TGVuZ3RoOworCisgICAgLyoqCisgICAgICogU29ydGVkIGFuZCBpbmRleGVkIHRhYmxlIG9mIHJ1bGVzLiAgVGhpcyBpcyBjcmVhdGVkIGJ5IGZyZWV6ZSgpIGZyb20KKyAgICAgKiB0aGUgcnVsZXMgaW4gcnVsZVZlY3Rvci4gIHJ1bGVzLmxlbmd0aCA+PSBydWxlVmVjdG9yLnNpemUoKSwgYW5kIHRoZQorICAgICAqIHJlZmVyZW5jZXMgaW4gcnVsZXNbXSBhcmUgYWxpYXNlcyBvZiB0aGUgcmVmZXJlbmNlcyBpbiBydWxlVmVjdG9yLgorICAgICAqIEEgc2luZ2xlIHJ1bGUgaW4gcnVsZVZlY3RvciBpcyBsaXN0ZWQgb25lIG9yIG1vcmUgdGltZXMgaW4gcnVsZXNbXS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdGlvblJ1bGVbXSBydWxlczsKKworICAgIC8qKgorICAgICAqIEluZGV4IHRhYmxlLiAgRm9yIHRleHQgaGF2aW5nIGEgZmlyc3QgY2hhcmFjdGVyIGMsIGNvbXB1dGUgeCA9IGMmMHhGRi4KKyAgICAgKiBOb3cgdXNlIHJ1bGVzW2luZGV4W3hdLi5pbmRleFt4KzFdLTFdLiAgVGhpcyBpbmRleCB0YWJsZSBpcyBjcmVhdGVkIGJ5CisgICAgICogZnJlZXplKCkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBpbmRleDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LTIwMDEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBlbXB0eSBydWxlIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uUnVsZVNldCgpIHsKKyAgICAgICAgcnVsZVZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbWF4Q29udGV4dExlbmd0aCA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtYXhpbXVtIGNvbnRleHQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBwcmVjZWRpbmcgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gbWF4Q29udGV4dExlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBydWxlIHRvIHRoaXMgc2V0LiAgUnVsZXMgYXJlIGFkZGVkIGluIG9yZGVyLCBhbmQgb3JkZXIgaXMKKyAgICAgKiBzaWduaWZpY2FudC4KKyAgICAgKiBAcGFyYW0gcnVsZSB0aGUgcnVsZSB0byBhZGQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRSdWxlKFRyYW5zbGl0ZXJhdGlvblJ1bGUgcnVsZSkgeworICAgICAgICBydWxlVmVjdG9yLmFkZEVsZW1lbnQocnVsZSk7CisgICAgICAgIGludCBsZW47CisgICAgICAgIGlmICgobGVuID0gcnVsZS5nZXRBbnRlQ29udGV4dExlbmd0aCgpKSA+IG1heENvbnRleHRMZW5ndGgpIHsKKyAgICAgICAgICAgIG1heENvbnRleHRMZW5ndGggPSBsZW47CisgICAgICAgIH0KKworICAgICAgICBydWxlcyA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgdGhpcyBydWxlIHNldCB0byBmdXJ0aGVyIGFkZGl0aW9ucywgY2hlY2sgaXQgZm9yIG1hc2tlZCBydWxlcywKKyAgICAgKiBhbmQgaW5kZXggaXQgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgc29tZSBydWxlcyBhcmUgbWFza2VkCisgICAgICovCisgICAgcHVibGljIHZvaWQgZnJlZXplKCkgeworICAgICAgICAvKiBDb25zdHJ1Y3QgdGhlIHJ1bGUgYXJyYXkgYW5kIGluZGV4IHRhYmxlLiAgV2UgcmVvcmRlciB0aGUKKyAgICAgICAgICogcnVsZXMgYnkgc29ydGluZyB0aGVtIGludG8gMjU2IGJpbnMuICBFYWNoIGJpbiBjb250YWlucyBhbGwKKyAgICAgICAgICogcnVsZXMgbWF0Y2hpbmcgdGhlIGluZGV4IHZhbHVlIGZvciB0aGF0IGJpbi4gIEEgcnVsZQorICAgICAgICAgKiBtYXRjaGVzIGFuIGluZGV4IHZhbHVlIGlmIHN0cmluZyB3aG9zZSBmaXJzdCBrZXkgY2hhcmFjdGVyCisgICAgICAgICAqIGhhcyBhIGxvdyBieXRlIGVxdWFsIHRvIHRoZSBpbmRleCB2YWx1ZSBjYW4gbWF0Y2ggdGhlIHJ1bGUuCisgICAgICAgICAqCisgICAgICAgICAqIEVhY2ggYmluIGNvbnRhaW5zIHplcm8gb3IgbW9yZSBydWxlcywgaW4gdGhlIHNhbWUgb3JkZXIKKyAgICAgICAgICogdGhleSB3ZXJlIGZvdW5kIG9yaWdpbmFsbHkuICBIb3dldmVyLCB0aGUgdG90YWwgcnVsZXMgaW4KKyAgICAgICAgICogdGhlIGJpbnMgbWF5IGV4Y2VlZCB0aGUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCB2ZWN0b3IsCisgICAgICAgICAqIHNpbmNlIHJ1bGVzIHRoYXQgaGF2ZSBhIHZhcmlhYmxlIGFzIHRoZWlyIGZpcnN0IGtleQorICAgICAgICAgKiBjaGFyYWN0ZXIgd2lsbCBnZW5lcmFsbHkgZmFsbCBpbnRvIG1vcmUgdGhhbiBvbmUgYmluLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGF0IGlzLCBlYWNoIGJpbiBjb250YWlucyBhbGwgcnVsZXMgdGhhdCBlaXRoZXIgaGF2ZSB0aGF0CisgICAgICAgICAqIGZpcnN0IGluZGV4IHZhbHVlIGFzIHRoZWlyIGZpcnN0IGtleSBjaGFyYWN0ZXIsIG9yIGhhdmUKKyAgICAgICAgICogYSBzZXQgY29udGFpbmluZyB0aGUgaW5kZXggdmFsdWUgYXMgdGhlaXIgZmlyc3QgY2hhcmFjdGVyLgorICAgICAgICAgKi8KKyAgICAgICAgaW50IG4gPSBydWxlVmVjdG9yLnNpemUoKTsKKyAgICAgICAgaW5kZXggPSBuZXcgaW50WzI1N107IC8vIFtzaWNdCisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigyKm4pOyAvLyBoZXVyaXN0aWM7IGFkanVzdCBhcyBuZWVkZWQKKworICAgICAgICAvKiBQcmVjb21wdXRlIHRoZSBpbmRleCB2YWx1ZXMuICBUaGlzIHNhdmVzIGEgTE9UIG9mIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBpbnRbXSBpbmRleFZhbHVlID0gbmV3IGludFtuXTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPG47ICsraikgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByID0gKFRyYW5zbGl0ZXJhdGlvblJ1bGUpIHJ1bGVWZWN0b3IuZWxlbWVudEF0KGopOworICAgICAgICAgICAgaW5kZXhWYWx1ZVtqXSA9IHIuZ2V0SW5kZXhWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IHg9MDsgeDwyNTY7ICsreCkgeworICAgICAgICAgICAgaW5kZXhbeF0gPSB2LnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxuOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZVtqXSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleFZhbHVlW2pdID09IHgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYuYWRkRWxlbWVudChydWxlVmVjdG9yLmVsZW1lbnRBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgaW5kZXhWYWx1ZSBpcyA8IDAsIHRoZW4gdGhlIGZpcnN0IGtleSBjaGFyYWN0ZXIgaXMKKyAgICAgICAgICAgICAgICAgICAgLy8gYSBzZXQsIGFuZCB3ZSBtdXN0IHVzZSB0aGUgbW9yZSB0aW1lLWNvbnN1bWluZworICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaGVzSW5kZXhWYWx1ZSBjaGVjay4gIEluIHByYWN0aWNlIHRoaXMgaGFwcGVucworICAgICAgICAgICAgICAgICAgICAvLyByYXJlbHksIHNvIHdlIHNlbGRvbSB0cmVhZCB0aGlzIGNvZGUgcGF0aC4KKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByID0gKFRyYW5zbGl0ZXJhdGlvblJ1bGUpIHJ1bGVWZWN0b3IuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICBpZiAoci5tYXRjaGVzSW5kZXhWYWx1ZSh4KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdi5hZGRFbGVtZW50KHIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGluZGV4WzI1Nl0gPSB2LnNpemUoKTsKKworICAgICAgICAvKiBGcmVlemUgdGhpbmdzIGludG8gYW4gYXJyYXkuCisgICAgICAgICAqLworICAgICAgICBydWxlcyA9IG5ldyBUcmFuc2xpdGVyYXRpb25SdWxlW3Yuc2l6ZSgpXTsKKyAgICAgICAgdi5jb3B5SW50byhydWxlcyk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9ycyA9IG51bGw7CisKKyAgICAgICAgLyogQ2hlY2sgZm9yIG1hc2tpbmcuICBUaGlzIGlzIE1VQ0ggZmFzdGVyIHRoYW4gb3VyIG9sZCBjaGVjaywKKyAgICAgICAgICogd2hpY2ggd2FzIGVhY2ggcnVsZSBhZ2FpbnN0IGVhY2ggZm9sbG93aW5nIHJ1bGUsIHNpbmNlIHdlCisgICAgICAgICAqIG9ubHkgaGF2ZSB0byBjaGVjayBmb3IgbWFza2luZyB3aXRoaW4gZWFjaCBiaW4gbm93LiAgSXQncworICAgICAgICAgKiAyNTYqTyhuMl4yKSBpbnN0ZWFkIG9mIE8objFeMiksIHdoZXJlIG4xIGlzIHRoZSB0b3RhbCBydWxlCisgICAgICAgICAqIGNvdW50LCBhbmQgbjIgaXMgdGhlIHBlci1iaW4gcnVsZSBjb3VudC4gIEJ1dCBuMjw8bjEsIHNvCisgICAgICAgICAqIGl0J3MgYSBiaWcgd2luLgorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChpbnQgeD0wOyB4PDI1NjsgKyt4KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPWluZGV4W3hdOyBqPGluZGV4W3grMV0tMTsgKytqKSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByMSA9IHJ1bGVzW2pdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGs9aisxOyBrPGluZGV4W3grMV07ICsraykgeworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRpb25SdWxlIHIyID0gcnVsZXNba107CisgICAgICAgICAgICAgICAgICAgIGlmIChyMS5tYXNrcyhyMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIlJ1bGUgIiArIHIxICsgIiBtYXNrcyAiICsgcjIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGVycm9ycyAhPSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGVycm9ycy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGUgdGhlIGdpdmVuIHRleHQgd2l0aCB0aGUgZ2l2ZW4gVVRyYW5zUG9zaXRpb24KKyAgICAgKiBpbmRpY2VzLiAgUmV0dXJuIFRSVUUgaWYgdGhlIHRyYW5zbGl0ZXJhdGlvbiBzaG91bGQgY29udGludWUKKyAgICAgKiBvciBGQUxTRSBpZiBpdCBzaG91bGQgaGFsdCAoYmVjYXVzZSBvZiBhIFVfUEFSVElBTF9NQVRDSCBtYXRjaCkuCisgICAgICogTm90ZSB0aGF0IEZBTFNFIGlzIG9ubHkgZXZlciByZXR1cm5lZCBpZiBpc0luY3JlbWVudGFsIGlzIFRSVUUuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gcG9zIHRoZSBwb3NpdGlvbiBpbmRpY2VzLCB3aGljaCB3aWxsIGJlIHVwZGF0ZWQKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgYXNzdW1lIG5ldyB0ZXh0IG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcmV0dXJuIEZBTFNFIGlmIHRocmUgaXMgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAqIEByZXR1cm4gVFJVRSB1bmxlc3MgYSBVX1BBUlRJQUxfTUFUQ0ggaGFzIGJlZW4gb2J0YWluZWQsCisgICAgICogaW5kaWNhdGluZyB0aGF0IHRyYW5zbGl0ZXJhdGlvbiBzaG91bGQgc3RvcCB1bnRpbCBtb3JlIHRleHQKKyAgICAgKiBhcnJpdmVzLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IGluZGV4Qnl0ZSA9IHRleHQuY2hhcjMyQXQocG9zLnN0YXJ0KSAmIDB4RkY7CisgICAgICAgIGZvciAoaW50IGk9aW5kZXhbaW5kZXhCeXRlXTsgaTxpbmRleFtpbmRleEJ5dGUrMV07ICsraSkgeworICAgICAgICAgICAgaW50IG0gPSBydWxlc1tpXS5tYXRjaEFuZFJlcGxhY2UodGV4dCwgcG9zLCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBzd2l0Y2ggKG0pIHsKKyAgICAgICAgICAgIGNhc2UgVW5pY29kZU1hdGNoZXIuVV9NQVRDSDoKKyAgICAgICAgICAgICAgICBpZiAoVHJhbnNsaXRlcmF0b3IuREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbmNyZW1lbnRhbCA/ICJSdWxlLmk6IG1hdGNoICI6IlJ1bGU6IG1hdGNoICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldLnRvUnVsZSh0cnVlKSArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dCh0ZXh0LCBwb3MpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjYXNlIFVuaWNvZGVNYXRjaGVyLlVfUEFSVElBTF9NQVRDSDoKKyAgICAgICAgICAgICAgICBpZiAoVHJhbnNsaXRlcmF0b3IuREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbmNyZW1lbnRhbCA/ICJSdWxlLmk6IHBhcnRpYWwgbWF0Y2ggIjoiUnVsZTogcGFydGlhbCBtYXRjaCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS50b1J1bGUodHJ1ZSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgcG9zKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBObyBtYXRjaCBvciBwYXJ0aWFsIG1hdGNoIGZyb20gYW55IHJ1bGUKKyAgICAgICAgcG9zLnN0YXJ0ICs9IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KHBvcy5zdGFydCkpOworICAgICAgICBpZiAoVHJhbnNsaXRlcmF0b3IuREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBubyBtYXRjaCA9PiAiOiJSdWxlOiBubyBtYXRjaCA9PiAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgcG9zKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHJ1bGUgc3RyaW5ncyB0aGF0IHJlcHJlc2VudHMgdGhpcyBydWxlIHNldC4KKyAgICAgKi8KKyAgICBTdHJpbmcgdG9SdWxlcyhib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgY291bnQgPSBydWxlVmVjdG9yLnNpemUoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGVTb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICBydWxlU291cmNlLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9CisgICAgICAgICAgICAgICAgKFRyYW5zbGl0ZXJhdGlvblJ1bGUpIHJ1bGVWZWN0b3IuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgcnVsZVNvdXJjZS5hcHBlbmQoci50b1J1bGUoZXNjYXBlVW5wcmludGFibGUpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZVNvdXJjZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIChnZXRUYXJnZXQ9ZmFsc2UpCisgICAgICogb3IgZW1pdHRlZCAoZ2V0VGFyZ2V0PXRydWUpIGJ5IHRoaXMgc2V0LgorICAgICAqLworICAgIFVuaWNvZGVTZXQgZ2V0U291cmNlVGFyZ2V0U2V0KGJvb2xlYW4gZ2V0VGFyZ2V0KSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaW50IGNvdW50ID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRpb25SdWxlIHIgPQorICAgICAgICAgICAgICAgIChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChnZXRUYXJnZXQpIHsKKyAgICAgICAgICAgICAgICByLmFkZFRhcmdldFNldFRvKHNldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHIuYWRkU291cmNlU2V0VG8oc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliMDNkYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTkwNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eUV4dGVuc2lvbnM7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYXNlSW5zZW5zaXRpdmVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IGlzIGFuIGFic3RyYWN0IGNsYXNzIHRoYXQKKyAqIHRyYW5zbGl0ZXJhdGVzIHRleHQgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIuICBUaGUgbW9zdCBjb21tb24KKyAqIGtpbmQgb2YgdHJhbnNsaXRlcmF0b3IgaXMgYSBzY3JpcHQsIG9yIGFscGhhYmV0LCB0cmFuc2xpdGVyYXRvci4KKyAqIEZvciBleGFtcGxlLCBhIFJ1c3NpYW4gdG8gTGF0aW4gdHJhbnNsaXRlcmF0b3IgY2hhbmdlcyBSdXNzaWFuIHRleHQKKyAqIHdyaXR0ZW4gaW4gQ3lyaWxsaWMgY2hhcmFjdGVycyB0byBwaG9uZXRpY2FsbHkgZXF1aXZhbGVudCBMYXRpbgorICogY2hhcmFjdGVycy4gIEl0IGRvZXMgbm90IDxlbT50cmFuc2xhdGU8L2VtPiBSdXNzaWFuIHRvIEVuZ2xpc2ghCisgKiBUcmFuc2xpdGVyYXRpb24sIHVubGlrZSB0cmFuc2xhdGlvbiwgb3BlcmF0ZXMgb24gY2hhcmFjdGVycywgd2l0aG91dAorICogcmVmZXJlbmNlIHRvIHRoZSBtZWFuaW5ncyBvZiB3b3JkcyBhbmQgc2VudGVuY2VzLgorICoKKyAqIDxwPkFsdGhvdWdoIHNjcmlwdCBjb252ZXJzaW9uIGlzIGl0cyBtb3N0IGNvbW1vbiB1c2UsIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIGNhbiBhY3R1YWxseSBwZXJmb3JtIGEgbW9yZSBnZW5lcmFsIGNsYXNzIG9mIHRhc2tzLgorICogSW4gZmFjdCwgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IGRlZmluZXMgYSB2ZXJ5IGdlbmVyYWwgQVBJCisgKiB3aGljaCBzcGVjaWZpZXMgb25seSB0aGF0IGEgc2VnbWVudCBvZiB0aGUgaW5wdXQgdGV4dCBpcyByZXBsYWNlZAorICogYnkgbmV3IHRleHQuICBUaGUgcGFydGljdWxhcnMgb2YgdGhpcyBjb252ZXJzaW9uIGFyZSBkZXRlcm1pbmVkCisgKiBlbnRpcmVseSBieSBzdWJjbGFzc2VzIG9mIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPi4KKyAqCisgKiA8cD48Yj5UcmFuc2xpdGVyYXRvcnMgYXJlIHN0YXRlbGVzczwvYj4KKyAqCisgKiA8cD48Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0cyBhcmUgPGVtPnN0YXRlbGVzczwvZW0+OyB0aGV5CisgKiByZXRhaW4gbm8gaW5mb3JtYXRpb24gYmV0d2VlbiBjYWxscyB0bworICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIEFzIGEgcmVzdWx0LCB0aHJlYWRzIG1heSBzaGFyZQorICogdHJhbnNsaXRlcmF0b3JzIHdpdGhvdXQgc3luY2hyb25pemluZyB0aGVtLiAgVGhpcyBtaWdodCBzZWVtIHRvCisgKiBsaW1pdCB0aGUgY29tcGxleGl0eSBvZiB0aGUgdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4gIEluCisgKiBwcmFjdGljZSwgc3ViY2xhc3NlcyBwZXJmb3JtIGNvbXBsZXggdHJhbnNsaXRlcmF0aW9ucyBieSBkZWxheWluZworICogdGhlIHJlcGxhY2VtZW50IG9mIHRleHQgdW50aWwgaXQgaXMga25vd24gdGhhdCBubyBvdGhlcgorICogcmVwbGFjZW1lbnRzIGFyZSBwb3NzaWJsZS4gIEluIG90aGVyIHdvcmRzLCBhbHRob3VnaCB0aGUKKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3RzIGFyZSBzdGF0ZWxlc3MsIHRoZSBzb3VyY2UgdGV4dAorICogaXRzZWxmIGVtYm9kaWVzIGFsbCB0aGUgbmVlZGVkIGluZm9ybWF0aW9uLCBhbmQgZGVsYXllZCBvcGVyYXRpb24KKyAqIGFsbG93cyBhcmJpdHJhcnkgY29tcGxleGl0eS4KKyAqCisgKiA8cD48Yj5CYXRjaCB0cmFuc2xpdGVyYXRpb248L2I+CisgKgorICogPHA+VGhlIHNpbXBsZXN0IHdheSB0byBwZXJmb3JtIHRyYW5zbGl0ZXJhdGlvbiBpcyBhbGwgYXQgb25jZSwgb24gYQorICogc3RyaW5nIG9mIGV4aXN0aW5nIHRleHQuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzIDxlbT5iYXRjaDwvZW0+CisgKiB0cmFuc2xpdGVyYXRpb24uICBGb3IgZXhhbXBsZSwgZ2l2ZW4gYSBzdHJpbmcgPGNvZGU+aW5wdXQ8L2NvZGU+CisgKiBhbmQgYSB0cmFuc2xpdGVyYXRvciA8Y29kZT50PC9jb2RlPiwgdGhlIGNhbGwKKyAqCisgKiA8YmxvY2txdW90ZT48Y29kZT5TdHJpbmcgcmVzdWx0ID0gdC50cmFuc2xpdGVyYXRlKGlucHV0KTsKKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogd2lsbCB0cmFuc2xpdGVyYXRlIGl0IGFuZCByZXR1cm4gdGhlIHJlc3VsdC4gIE90aGVyIG1ldGhvZHMgYWxsb3cKKyAqIHRoZSBjbGllbnQgdG8gc3BlY2lmeSBhIHN1YnN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZCBhbmQgdG8gdXNlCisgKiB7QGxpbmsgUmVwbGFjZWFibGV9IG9iamVjdHMgaW5zdGVhZCBvZiBzdHJpbmdzLCBpbiBvcmRlciB0bworICogcHJlc2VydmUgb3V0LW9mLWJhbmQgaW5mb3JtYXRpb24gKHN1Y2ggYXMgdGV4dCBzdHlsZXMpLgorICoKKyAqIDxwPjxiPktleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbjwvYj4KKyAqCisgKiA8cD5Tb21ld2hhdCBtb3JlIGludm9sdmVkIGlzIDxlbT5rZXlib2FyZDwvZW0+LCBvciBpbmNyZW1lbnRhbAorICogdHJhbnNsaXRlcmF0aW9uLiAgVGhpcyBpcyB0aGUgdHJhbnNsaXRlcmF0aW9uIG9mIHRleHQgdGhhdCBpcworICogYXJyaXZpbmcgZnJvbSBzb21lIHNvdXJjZSAodHlwaWNhbGx5IHRoZSB1c2VyJ3Mga2V5Ym9hcmQpIG9uZQorICogY2hhcmFjdGVyIGF0IGEgdGltZSwgb3IgaW4gc29tZSBvdGhlciBwaWVjZW1lYWwgZmFzaGlvbi4KKyAqCisgKiA8cD5JbiBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24sIGEgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGJ1ZmZlcgorICogc3RvcmVzIHRoZSB0ZXh0LiAgQXMgdGV4dCBpcyBpbnNlcnRlZCwgYXMgbXVjaCBhcyBwb3NzaWJsZSBpcworICogdHJhbnNsaXRlcmF0ZWQgb24gdGhlIGZseS4gIFRoaXMgbWVhbnMgYSBHVUkgdGhhdCBkaXNwbGF5cyB0aGUKKyAqIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgbWF5IHNob3cgdGV4dCBiZWluZyBtb2RpZmllZCBhcyBlYWNoIG5ldworICogY2hhcmFjdGVyIGFycml2ZXMuCisgKgorICogPHA+Q29uc2lkZXIgdGhlIHNpbXBsZSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT46CisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+CisgKiB0aCZndDt7dGhldGF9PGJyPgorICogdCZndDt7dGF1fQorICogPC9jb2RlPjwvYmxvY2txdW90ZT4KKyAqCisgKiBXaGVuIHRoZSB1c2VyIHR5cGVzICd0Jywgbm90aGluZyB3aWxsIGhhcHBlbiwgc2luY2UgdGhlCisgKiB0cmFuc2xpdGVyYXRvciBpcyB3YWl0aW5nIHRvIHNlZSBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgJ2gnLiAgVG8KKyAqIHJlbWVkeSB0aGlzLCB3ZSBpbnRyb2R1Y2UgdGhlIG5vdGlvbiBvZiBhIGN1cnNvciwgbWFya2VkIGJ5IGEgJ3wnCisgKiBpbiB0aGUgb3V0cHV0IHN0cmluZzoKKyAqCisgKiA8YmxvY2txdW90ZT48Y29kZT4KKyAqIHQmZ3Q7fHt0YXV9PGJyPgorICoge3RhdX1oJmd0O3t0aGV0YX0KKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogTm93IHdoZW4gdGhlIHVzZXIgdHlwZXMgJ3QnLCB0YXUgYXBwZWFycywgYW5kIGlmIHRoZSBuZXh0IGNoYXJhY3RlcgorICogaXMgJ2gnLCB0aGUgdGF1IGNoYW5nZXMgdG8gYSB0aGV0YS4gIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5CisgKiBtYWludGFpbmluZyBhIGN1cnNvciBwb3NpdGlvbiAoaW5kZXBlbmRlbnQgb2YgdGhlIGluc2VydGlvbiBwb2ludCwKKyAqIGFuZCBpbnZpc2libGUgaW4gdGhlIEdVSSkgYWNyb3NzIGNhbGxzIHRvCisgKiA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+LiAgVHlwaWNhbGx5LCB0aGUgY3Vyc29yIHdpbGwKKyAqIGJlIGNvaW5jaWRlbnQgd2l0aCB0aGUgaW5zZXJ0aW9uIHBvaW50LCBidXQgaW4gYSBjYXNlIGxpa2UgdGhlIG9uZQorICogYWJvdmUsIGl0IHdpbGwgcHJlY2VkZSB0aGUgaW5zZXJ0aW9uIHBvaW50LgorICoKKyAqIDxwPktleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiBtZXRob2RzIG1haW50YWluIGEgc2V0IG9mIHRocmVlIGluZGljZXMKKyAqIHRoYXQgYXJlIHVwZGF0ZWQgd2l0aCBlYWNoIGNhbGwgdG8KKyAqIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4sIGluY2x1ZGluZyB0aGUgY3Vyc29yLCBzdGFydCwKKyAqIGFuZCBsaW1pdC4gIFRoZXNlIGluZGljZXMgYXJlIGNoYW5nZWQgYnkgdGhlIG1ldGhvZCwgYW5kIHRoZXkgYXJlCisgKiBwYXNzZWQgaW4gYW5kIG91dCB2aWEgYSBQb3NpdGlvbiBvYmplY3QuIFRoZSA8Y29kZT5zdGFydDwvY29kZT4gaW5kZXgKKyAqIG1hcmtzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN1YnN0cmluZyB0aGF0IHRoZSB0cmFuc2xpdGVyYXRvciB3aWxsCisgKiBsb29rIGF0LiAgSXQgaXMgYWR2YW5jZWQgYXMgdGV4dCBiZWNvbWVzIGNvbW1pdHRlZCAoYnV0IGl0IGlzIG5vdAorICogdGhlIGNvbW1pdHRlZCBpbmRleDsgdGhhdCdzIHRoZSA8Y29kZT5jdXJzb3I8L2NvZGU+KS4gIFRoZQorICogPGNvZGU+Y3Vyc29yPC9jb2RlPiBpbmRleCwgZGVzY3JpYmVkIGFib3ZlLCBtYXJrcyB0aGUgcG9pbnQgYXQKKyAqIHdoaWNoIHRoZSB0cmFuc2xpdGVyYXRvciBsYXN0IHN0b3BwZWQsIGVpdGhlciBiZWNhdXNlIGl0IHJlYWNoZWQKKyAqIHRoZSBlbmQsIG9yIGJlY2F1c2UgaXQgcmVxdWlyZWQgbW9yZSBjaGFyYWN0ZXJzIHRvIGRpc2FtYmlndWF0ZQorICogYmV0d2VlbiBwb3NzaWJsZSBpbnB1dHMuICBUaGUgPGNvZGU+Y3Vyc29yPC9jb2RlPiBjYW4gYWxzbyBiZQorICogZXhwbGljaXRseSBzZXQgYnkgcnVsZXMgaW4gYSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKiBBbnkgY2hhcmFjdGVycyBiZWZvcmUgdGhlIDxjb2RlPmN1cnNvcjwvY29kZT4gaW5kZXggYXJlIGZyb3plbjsKKyAqIGZ1dHVyZSBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gY2FsbHMgd2l0aGluIHRoaXMgaW5wdXQgc2VxdWVuY2UKKyAqIHdpbGwgbm90IGNoYW5nZSB0aGVtLiAgTmV3IHRleHQgaXMgaW5zZXJ0ZWQgYXQgdGhlCisgKiA8Y29kZT5saW1pdDwvY29kZT4gaW5kZXgsIHdoaWNoIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHN1YnN0cmluZyB0aGF0CisgKiB0aGUgdHJhbnNsaXRlcmF0b3IgbG9va3MgYXQuCisgKgorICogPHA+QmVjYXVzZSBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gYXNzdW1lcyB0aGF0IG1vcmUgY2hhcmFjdGVycworICogYXJlIHRvIGFycml2ZSwgaXQgaXMgY29uc2VydmF0aXZlIGluIGl0cyBvcGVyYXRpb24uICBJdCBvbmx5CisgKiB0cmFuc2xpdGVyYXRlcyB3aGVuIGl0IGNhbiBkbyBzbyB1bmFtYmlndW91c2x5LiAgT3RoZXJ3aXNlIGl0IHdhaXRzCisgKiBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGFycml2ZS4gIFdoZW4gdGhlIGNsaWVudCBjb2RlIGtub3dzIHRoYXQgbm8KKyAqIG1vcmUgY2hhcmFjdGVycyBhcmUgZm9ydGhjb21pbmcsIHBlcmhhcHMgYmVjYXVzZSB0aGUgdXNlciBoYXMKKyAqIHBlcmZvcm1lZCBzb21lIGlucHV0IHRlcm1pbmF0aW9uIG9wZXJhdGlvbiwgdGhlbiBpdCBzaG91bGQgY2FsbAorICogPGNvZGU+ZmluaXNoVHJhbnNsaXRlcmF0aW9uKCk8L2NvZGU+IHRvIGNvbXBsZXRlIGFueQorICogcGVuZGluZyB0cmFuc2xpdGVyYXRpb25zLgorICoKKyAqIDxwPjxiPkludmVyc2VzPC9iPgorICoKKyAqIDxwPlBhaXJzIG9mIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgaW52ZXJzZXMgb2Ygb25lIGFub3RoZXIuICBGb3IKKyAqIGV4YW1wbGUsIGlmIHRyYW5zbGl0ZXJhdG9yIDxiPkE8L2I+IHRyYW5zbGl0ZXJhdGVzIGNoYXJhY3RlcnMgYnkKKyAqIGluY3JlbWVudGluZyB0aGVpciBVbmljb2RlIHZhbHVlIChzbyAiYWJjIiAtPiAiZGVmIiksIGFuZAorICogdHJhbnNsaXRlcmF0b3IgPGI+QjwvYj4gZGVjcmVtZW50cyBjaGFyYWN0ZXIgdmFsdWVzLCB0aGVuIDxiPkE8L2I+CisgKiBpcyBhbiBpbnZlcnNlIG9mIDxiPkI8L2I+IGFuZCB2aWNlIHZlcnNhLiAgSWYgd2UgY29tcG9zZSA8Yj5BPC9iPgorICogd2l0aCA8Yj5CPC9iPiBpbiBhIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yLCB0aGUgcmVzdWx0IGlzIHRoZQorICogaW5kZW50aXR5IHRyYW5zbGl0ZXJhdG9yLCB0aGF0IGlzLCBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgZG9lcyBub3QKKyAqIGNoYW5nZSBpdHMgaW5wdXQgdGV4dC4KKyAqCisgKiBUaGUgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG1ldGhvZCA8Y29kZT5nZXRJbnZlcnNlKCk8L2NvZGU+CisgKiByZXR1cm5zIGEgdHJhbnNsaXRlcmF0b3IncyBpbnZlcnNlLCBpZiBvbmUgZXhpc3RzLCBvcgorICogPGNvZGU+bnVsbDwvY29kZT4gb3RoZXJ3aXNlLiAgSG93ZXZlciwgdGhlIHJlc3VsdCBvZgorICogPGNvZGU+Z2V0SW52ZXJzZSgpPC9jb2RlPiB1c3VhbGx5IHdpbGwgPGVtPm5vdDwvZW0+IGJlIGEgdHJ1ZQorICogbWF0aGVtYXRpY2FsIGludmVyc2UuICBUaGlzIGlzIGJlY2F1c2UgdHJ1ZSBpbnZlcnNlIHRyYW5zbGl0ZXJhdG9ycworICogYXJlIGRpZmZpY3VsdCB0byBmb3JtdWxhdGUuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgdHdvCisgKiB0cmFuc2xpdGVyYXRvcnM6IDxiPkFCPC9iPiwgd2hpY2ggdHJhbnNsaXRlcmF0ZXMgdGhlIGNoYXJhY3RlciAnQScKKyAqIHRvICdCJywgYW5kIDxiPkJBPC9iPiwgd2hpY2ggdHJhbnNsaXRlcmF0ZXMgJ0InIHRvICdBJy4gIEl0IG1pZ2h0CisgKiBzZWVtIHRoYXQgdGhlc2UgYXJlIGV4YWN0IGludmVyc2VzLCBzaW5jZQorICoKKyAqIDxibG9ja3F1b3RlPiJBIiB4IDxiPkFCPC9iPiAtPiAiQiI8YnI+CisgKiAiQiIgeCA8Yj5CQTwvYj4gLT4gIkEiPC9ibG9ja3F1b3RlPgorICoKKyAqIHdoZXJlICd4JyByZXByZXNlbnRzIHRyYW5zbGl0ZXJhdGlvbi4gIEhvd2V2ZXIsCisgKgorICogPGJsb2NrcXVvdGU+IkFCQ0QiIHggPGI+QUI8L2I+IC0+ICJCQkNEIjxicj4KKyAqICJCQkNEIiB4IDxiPkJBPC9iPiAtPiAiQUFDRCI8L2Jsb2NrcXVvdGU+CisgKgorICogc28gPGI+QUI8L2I+IGNvbXBvc2VkIHdpdGggPGI+QkE8L2I+IGlzIG5vdCB0aGUKKyAqIGlkZW50aXR5LiBOb25ldGhlbGVzcywgPGI+QkE8L2I+IG1heSBiZSB1c2VmdWxseSBjb25zaWRlcmVkIHRvIGJlCisgKiA8Yj5BQjwvYj4ncyBpbnZlcnNlLCBhbmQgaXQgaXMgb24gdGhpcyBiYXNpcyB0aGF0CisgKiA8Yj5BQjwvYj48Y29kZT4uZ2V0SW52ZXJzZSgpPC9jb2RlPiBjb3VsZCBsZWdpdGltYXRlbHkgcmV0dXJuCisgKiA8Yj5CQTwvYj4uCisgKgorICogPHA+PGI+SURzIGFuZCBkaXNwbGF5IG5hbWVzPC9iPgorICoKKyAqIDxwPkEgdHJhbnNsaXRlcmF0b3IgaXMgZGVzaWduYXRlZCBieSBhIHNob3J0IGlkZW50aWZpZXIgc3RyaW5nIG9yCisgKiA8ZW0+SUQ8L2VtPi4gIElEcyBmb2xsb3cgdGhlIGZvcm1hdCA8ZW0+c291cmNlLWRlc3RpbmF0aW9uPC9lbT4sCisgKiB3aGVyZSA8ZW0+c291cmNlPC9lbT4gZGVzY3JpYmVzIHRoZSBlbnRpdHkgYmVpbmcgcmVwbGFjZWQsIGFuZAorICogPGVtPmRlc3RpbmF0aW9uPC9lbT4gZGVzY3JpYmVzIHRoZSBlbnRpdHkgcmVwbGFjaW5nCisgKiA8ZW0+c291cmNlPC9lbT4uICBUaGUgZW50aXRpZXMgbWF5IGJlIHRoZSBuYW1lcyBvZiBzY3JpcHRzLAorICogcGFydGljdWxhciBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycywgb3Igd2hhdGV2ZXIgZWxzZSBpdCBpcyB0aGF0IHRoZQorICogdHJhbnNsaXRlcmF0b3IgY29udmVydHMgdG8gb3IgZnJvbS4gIEZvciBleGFtcGxlLCBhIHRyYW5zbGl0ZXJhdG9yCisgKiBmcm9tIFJ1c3NpYW4gdG8gTGF0aW4gbWlnaHQgYmUgbmFtZWQgIlJ1c3NpYW4tTGF0aW4iLiAgQQorICogdHJhbnNsaXRlcmF0b3IgZnJvbSBrZXlib2FyZCBlc2NhcGUgc2VxdWVuY2VzIHRvIExhdGluLTEgY2hhcmFjdGVycworICogbWlnaHQgYmUgbmFtZWQgIktleWJvYXJkRXNjYXBlLUxhdGluMSIuICBCeSBjb252ZW50aW9uLCBzeXN0ZW0KKyAqIGVudGl0eSBuYW1lcyBhcmUgaW4gRW5nbGlzaCwgd2l0aCB0aGUgaW5pdGlhbCBsZXR0ZXJzIG9mIHdvcmRzCisgKiBjYXBpdGFsaXplZDsgdXNlciBlbnRpdHkgbmFtZXMgbWF5IGZvbGxvdyBhbnkgZm9ybWF0IHNvIGxvbmcgYXMKKyAqIHRoZXkgZG8gbm90IGNvbnRhaW4gZGFzaGVzLgorICoKKyAqIDxwPkluIGFkZGl0aW9uIHRvIHByb2dyYW1tYXRpYyBJRHMsIHRyYW5zbGl0ZXJhdG9yIG9iamVjdHMgaGF2ZQorICogZGlzcGxheSBuYW1lcyBmb3IgcHJlc2VudGF0aW9uIGluIHVzZXIgaW50ZXJmYWNlcywgcmV0dXJuZWQgYnkKKyAqIHtAbGluayAjZ2V0RGlzcGxheU5hbWV9LgorICoKKyAqIDxwPjxiPkZhY3RvcnkgbWV0aG9kcyBhbmQgcmVnaXN0cmF0aW9uPC9iPgorICoKKyAqIDxwPkluIGdlbmVyYWwsIGNsaWVudCBjb2RlIHNob3VsZCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kCisgKiA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPiB0byBvYnRhaW4gYW4gaW5zdGFuY2Ugb2YgYQorICogdHJhbnNsaXRlcmF0b3IgZ2l2ZW4gaXRzIElELiAgVmFsaWQgSURzIG1heSBiZSBlbnVtZXJhdGVkIHVzaW5nCisgKiA8Y29kZT5nZXRBdmFpbGFibGVJRHMoKTwvY29kZT4uICBTaW5jZSB0cmFuc2xpdGVyYXRvcnMgYXJlCisgKiBzdGF0ZWxlc3MsIG11bHRpcGxlIGNhbGxzIHRvIDxjb2RlPmdldEluc3RhbmNlKCk8L2NvZGU+IHdpdGggdGhlCisgKiBzYW1lIElEIHdpbGwgcmV0dXJuIHRoZSBzYW1lIG9iamVjdC4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiB0byB0aGUgc3lzdGVtIHRyYW5zbGl0ZXJhdG9ycyByZWdpc3RlcmVkIGF0IHN0YXJ0dXAsCisgKiB1c2VyIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgcmVnaXN0ZXJlZCBieSBjYWxsaW5nCisgKiA8Y29kZT5yZWdpc3Rlckluc3RhbmNlKCk8L2NvZGU+IGF0IHJ1biB0aW1lLiAgVG8gcmVnaXN0ZXIgYQorICogdHJhbnNsaXRlcmF0b3Igc3ViY2xhc3Mgd2l0aG91dCBpbnN0YW50aWF0aW5nIGl0ICh1bnRpbCBpdCBpcworICogbmVlZGVkKSwgdXNlcnMgbWF5IGNhbGwgPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4KKyAqCisgKiA8cD48Yj5Db21wb3NlZCB0cmFuc2xpdGVyYXRvcnM8L2I+CisgKgorICogPHA+SW4gYWRkaXRpb24gdG8gYnVpbHQtaW4gc3lzdGVtIHRyYW5zbGl0ZXJhdG9ycyBsaWtlCisgKiAiTGF0aW4tR3JlZWsiLCB0aGVyZSBhcmUgYWxzbyBidWlsdC1pbiA8ZW0+Y29tcG9zZWQ8L2VtPgorICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlc2UgYXJlIGltcGxlbWVudGVkIGJ5IGNvbXBvc2luZyB0d28gb3IgbW9yZQorICogY29tcG9uZW50IHRyYW5zbGl0ZXJhdG9ycy4gIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlIHNjcmlwdHMgIkEiLAorICogIkIiLCAiQyIsIGFuZCAiRCIsIGFuZCB3ZSB3YW50IHRvIHRyYW5zbGl0ZXJhdGUgYmV0d2VlbiBhbGwgcGFpcnMKKyAqIG9mIHRoZW0sIHRoZW4gd2UgbmVlZCB0byB3cml0ZSAxMiB0cmFuc2xpdGVyYXRvcnM6ICJBLUIiLCAiQS1DIiwKKyAqICJBLUQiLCAiQi1BIiwuLi4sICJELUEiLCAiRC1CIiwgIkQtQyIuICBJZiBpdCBpcyBwb3NzaWJsZSB0bworICogY29udmVydCBhbGwgc2NyaXB0cyB0byBhbiBpbnRlcm1lZGlhdGUgc2NyaXB0ICJNIiwgdGhlbiBpbnN0ZWFkIG9mCisgKiB3cml0aW5nIDEyIHJ1bGUgc2V0cywgd2Ugb25seSBuZWVkIHRvIHdyaXRlIDg6ICJBfk0iLCAiQn5NIiwgIkN+TSIsCisgKiAiRH5NIiwgIk1+QSIsICJNfkIiLCAiTX5DIiwgIk1+RCIuICAoVGhpcyBtaWdodCBub3Qgc2VlbSBsaWtlIGEgYmlnCisgKiB3aW4sIGJ1dCBpdCdzIHJlYWxseSAyPGVtPm48L2VtPiB2cy4gPGVtPm48L2VtPjxzdXA+Mjwvc3VwPiAtCisgKiA8ZW0+bjwvZW0+LCBzbyBhcyA8ZW0+bjwvZW0+IGdldHMgbGFyZ2VyIHRoZSBnYWluIGJlY29tZXMKKyAqIHNpZ25pZmljYW50LiAgV2l0aCA5IHNjcmlwdHMsIGl0J3MgMTggdnMuIDcyIHJ1bGUgc2V0cywgYSBiaWcKKyAqIGRpZmZlcmVuY2UuKSAgTm90ZSB0aGUgdXNlIG9mICJ+IiByYXRoZXIgdGhhbiAiLSIgZm9yIHRoZSBzY3JpcHQKKyAqIHNlcGFyYXRvciBoZXJlOyB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSBnaXZlbiB0cmFuc2xpdGVyYXRvciBpcworICogaW50ZW5kZWQgdG8gYmUgY29tcG9zZWQgd2l0aCBvdGhlcnMsIHJhdGhlciB0aGFuIGJlIHVzZWQgYXMgaXMuCisgKgorICogPHA+Q29tcG9zZWQgdHJhbnNsaXRlcmF0b3JzIGNhbiBiZSBpbnN0YW50aWF0ZWQgYXMgdXN1YWwuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgIkRldmFuYWdhcmktR3VqYXJhdGkiIGlzIGEKKyAqIGNvbXBvc2VkIHRyYW5zbGl0ZXJhdG9yIGJ1aWx0IGludGVybmFsbHkgYXMKKyAqICJEZXZhbmFnYXJpfkludGVySW5kaWM7SW50ZXJJbmRpY35HdWphcmF0aSIuICBXaGVuIHRoaXMKKyAqIHRyYW5zbGl0ZXJhdG9yIGlzIGluc3RhbnRpYXRlZCwgaXQgYXBwZWFycyBleHRlcm5hbGx5IHRvIGJlIGEKKyAqIHN0YW5kYXJkIHRyYW5zbGl0ZXJhdG9yIChlLmcuLCBnZXRJRCgpIHJldHVybnMKKyAqICJEZXZhbmFnYXJpLUd1amFyYXRpIikuCisgKgorICogPHA+PGI+U3ViY2xhc3Npbmc8L2I+CisgKgorICogPHA+U3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGUgYWJzdHJhY3QgbWV0aG9kCisgKiA8Y29kZT5oYW5kbGVUcmFuc2xpdGVyYXRlKCk8L2NvZGU+LiAgPHA+U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAqIHRoZSA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+IG1ldGhvZCB0YWtpbmcgYQorICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGFuZCB0aGUgPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPgorICogbWV0aG9kIHRha2luZyBhIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4KKyAqIGlmIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGVzZSBtZXRob2RzIGNhbiBiZSBpbXByb3ZlZCBvdmVyIHRoZQorICogcGVyZm9ybWFuY2Ugb2J0YWluZWQgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGluIHRoaXMgY2xhc3MuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2xpdGVyYXRvciB7CisgICAgLyoqCisgICAgICogRGlyZWN0aW9uIGNvbnN0YW50IGluZGljYXRpbmcgdGhlIGZvcndhcmQgZGlyZWN0aW9uIGluIGEgdHJhbnNsaXRlcmF0b3IsCisgICAgICogZS5nLiwgdGhlIGZvcndhcmQgcnVsZXMgb2YgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci4gIEFuICJBLUIiCisgICAgICogdHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0ZXMgQSB0byBCIHdoZW4gb3BlcmF0aW5nIGluIHRoZSBmb3J3YXJkCisgICAgICogZGlyZWN0aW9uLCBhbmQgQiB0byBBIHdoZW4gb3BlcmF0aW5nIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JXQVJEID0gMDsKKworICAgIC8qKgorICAgICAqIERpcmVjdGlvbiBjb25zdGFudCBpbmRpY2F0aW5nIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBpbiBhIHRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGUuZy4sIHRoZSByZXZlcnNlIHJ1bGVzIG9mIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuICBBbiAiQS1CIgorICAgICAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIEEgdG8gQiB3aGVuIG9wZXJhdGluZyBpbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgYW5kIEIgdG8gQSB3aGVuIG9wZXJhdGluZyBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVWRVJTRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBQb3NpdGlvbiBzdHJ1Y3R1cmUgZm9yIGluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbi4gIFRoaXMgZGF0YQorICAgICAqIHN0cnVjdHVyZSBkZWZpbmVzIHR3byBzdWJzdHJpbmdzIG9mIHRoZSB0ZXh0IGJlaW5nCisgICAgICogdHJhbnNsaXRlcmF0ZWQuICBUaGUgZmlyc3QgcmVnaW9uLCBbY29udGV4dFN0YXJ0LAorICAgICAqIGNvbnRleHRMaW1pdCksIGRlZmluZXMgd2hhdCBjaGFyYWN0ZXJzIHRoZSB0cmFuc2xpdGVyYXRvciB3aWxsCisgICAgICogcmVhZCBhcyBjb250ZXh0LiAgVGhlIHNlY29uZCByZWdpb24sIFtzdGFydCwgbGltaXQpLCBkZWZpbmVzCisgICAgICogd2hhdCBjaGFyYWN0ZXJzIHdpbGwgYWN0dWFsbHkgYmUgdHJhbnNsaXRlcmF0ZWQuICBUaGUgc2Vjb25kCisgICAgICogcmVnaW9uIHNob3VsZCBiZSBhIHN1YnNldCBvZiB0aGUgZmlyc3QuCisgICAgICoKKyAgICAgKiA8cD5BZnRlciBhIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24sIHNvbWUgb2YgdGhlIGluZGljZXMgaW4gdGhpcworICAgICAqIHN0cnVjdHVyZSB3aWxsIGJlIG1vZGlmaWVkLiAgU2VlIHRoZSBmaWVsZCBkZXNjcmlwdGlvbnMgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIDxwPmNvbnRleHRTdGFydCA8PSBzdGFydCA8PSBsaW1pdCA8PSBjb250ZXh0TGltaXQKKyAgICAgKgorICAgICAqIDxwPk5vdGU6IEFsbCBpbmRleCB2YWx1ZXMgaW4gdGhpcyBzdHJ1Y3R1cmUgbXVzdCBiZSBhdCBjb2RlIHBvaW50CisgICAgICogYm91bmRhcmllcy4gIFRoYXQgaXMsIG5vbmUgb2YgdGhlbSBtYXkgb2NjdXIgYmV0d2VlbiB0d28gY29kZSB1bml0cworICAgICAqIG9mIGEgc3Vycm9nYXRlIHBhaXIuICBJZiBhbnkgaW5kZXggZG9lcyBzcGxpdCBhIHN1cnJvZ2F0ZSBwYWlyLAorICAgICAqIHJlc3VsdHMgYXJlIHVuc3BlY2lmaWVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUG9zaXRpb24geworCisgICAgICAgIC8qKgorICAgICAgICAgKiBCZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZSwgb2YgdGhlIGNvbnRleHQgdG8gYmUgY29uc2lkZXJlZCBmb3IKKyAgICAgICAgICogYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLiAgVGhlIHRyYW5zbGl0ZXJhdG9yIHdpbGwgaWdub3JlCisgICAgICAgICAqIGFueXRoaW5nIGJlZm9yZSB0aGlzIGluZGV4LiAgSU5QVVQvT1VUUFVUIHBhcmFtZXRlcjogVGhpcyBwYXJhbWV0ZXIKKyAgICAgICAgICogaXMgdXBkYXRlZCBieSBhIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24gdG8gcmVmbGVjdCB0aGUgbWF4aW11bQorICAgICAgICAgKiBhbW91bnQgb2YgYW50ZWNvbnRleHQgbmVlZGVkIGJ5IGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb250ZXh0U3RhcnQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVuZGluZyBpbmRleCwgZXhjbHVzaXZlLCBvZiB0aGUgY29udGV4dCB0byBiZSBjb25zaWRlcmVkIGZvciBhCisgICAgICAgICAqIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uICBUaGUgdHJhbnNsaXRlcmF0b3Igd2lsbCBpZ25vcmUKKyAgICAgICAgICogYW55dGhpbmcgYXQgb3IgYWZ0ZXIgdGhpcyBpbmRleC4gIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMKKyAgICAgICAgICogcGFyYW1ldGVyIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICAgICAqIHRleHQsIGJ1dCBwb2ludHMgdG8gdGhlIHNhbWUgbG9naWNhbCBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbnRleHRMaW1pdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmUsIG9mIHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGQuCisgICAgICAgICAqIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyIGlzIGFkdmFuY2VkIHBhc3QKKyAgICAgICAgICogY2hhcmFjdGVycyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHRyYW5zbGl0ZXJhdGVkIGJ5IGEKKyAgICAgICAgICogdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHN0YXJ0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZSwgb2YgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZC4KKyAgICAgICAgICogSU5QVVQvT1VUUFVUIHBhcmFtZXRlcjogVGhpcyBwYXJhbWV0ZXIgaXMgdXBkYXRlZCB0byByZWZsZWN0CisgICAgICAgICAqIGNoYW5nZXMgaW4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCwgYnV0IHBvaW50cyB0byB0aGUgc2FtZQorICAgICAgICAgKiBsb2dpY2FsIHBvc2l0aW9uIGluIHRoZSB0ZXh0LgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBQb3NpdGlvbiBvYmplY3Qgd2l0aCBzdGFydCwgbGltaXQsCisgICAgICAgICAqIGNvbnRleHRTdGFydCwgYW5kIGNvbnRleHRMaW1pdCBhbGwgZXF1YWwgdG8gemVyby4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oKSB7CisgICAgICAgICAgICB0aGlzKDAsIDAsIDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBQb3NpdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gc3RhcnQsCisgICAgICAgICAqIGNvbnRleHRTdGFydCwgYW5kIGNvbnRleHRMaW1pdC4gIFRoZSBsaW1pdCBpcyBzZXQgdG8gdGhlCisgICAgICAgICAqIGNvbnRleHRMaW1pdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oaW50IGNvbnRleHRTdGFydCwgaW50IGNvbnRleHRMaW1pdCwgaW50IHN0YXJ0KSB7CisgICAgICAgICAgICB0aGlzKGNvbnRleHRTdGFydCwgY29udGV4dExpbWl0LCBzdGFydCwgY29udGV4dExpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIHN0YXJ0LCBsaW1pdCwKKyAgICAgICAgICogY29udGV4dFN0YXJ0LCBhbmQgY29udGV4dExpbWl0LgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBQb3NpdGlvbihpbnQgY29udGV4dFN0YXJ0LCBpbnQgY29udGV4dExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dFN0YXJ0ID0gY29udGV4dFN0YXJ0OworICAgICAgICAgICAgdGhpcy5jb250ZXh0TGltaXQgPSBjb250ZXh0TGltaXQ7CisgICAgICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIFBvc2l0aW9uIG9iamVjdCB0aGF0IGlzIGEgY29weSBvZiBhbm90aGVyLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBQb3NpdGlvbihQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgICAgIHNldChwb3MpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcGllcyB0aGUgaW5kaWNlcyBvZiB0aGlzIHBvc2l0aW9uIGZyb20gYW5vdGhlci4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXQoUG9zaXRpb24gcG9zKSB7CisgICAgICAgICAgICBjb250ZXh0U3RhcnQgPSBwb3MuY29udGV4dFN0YXJ0OworICAgICAgICAgICAgY29udGV4dExpbWl0ID0gcG9zLmNvbnRleHRMaW1pdDsKKyAgICAgICAgICAgIHN0YXJ0ID0gcG9zLnN0YXJ0OworICAgICAgICAgICAgbGltaXQgPSBwb3MubGltaXQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgUG9zaXRpb24gaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG9iamVjdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgUG9zaXRpb24gcG9zID0gKFBvc2l0aW9uKSBvYmo7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRTdGFydCA9PSBwb3MuY29udGV4dFN0YXJ0ICYmCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHRMaW1pdCA9PSBwb3MuY29udGV4dExpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID09IHBvcy5zdGFydCAmJgorICAgICAgICAgICAgICAgICAgICBsaW1pdCA9PSBwb3MubGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIFBvc2l0aW9uLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gIltjcz0iICsgY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBzPSIgKyBzdGFydAorICAgICAgICAgICAgICAgICsgIiwgbD0iICsgbGltaXQKKyAgICAgICAgICAgICAgICArICIsIGNsPSIgKyBjb250ZXh0TGltaXQKKyAgICAgICAgICAgICAgICArICJdIjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGVjayBhbGwgYm91bmRzLiAgSWYgdGhleSBhcmUgaW52YWxpZCwgdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgICAgICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0aGlzIG9iamVjdCBhcHBsaWVzIHRvCisgICAgICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBpbmRpY2VzIGFyZSBvdXQKKyAgICAgICAgICogb2YgYm91bmRzCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIHZvaWQgdmFsaWRhdGUoaW50IGxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGNvbnRleHRTdGFydCA8IDAgfHwKKyAgICAgICAgICAgICAgICBzdGFydCA8IGNvbnRleHRTdGFydCB8fAorICAgICAgICAgICAgICAgIGxpbWl0IDwgc3RhcnQgfHwKKyAgICAgICAgICAgICAgICBjb250ZXh0TGltaXQgPCBsaW1pdCB8fAorICAgICAgICAgICAgICAgIGxlbmd0aCA8IGNvbnRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgUG9zaXRpb24ge2NzPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFN0YXJ0ICsgIiwgcz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgIiwgbD0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ICsgIiwgY2w9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TGltaXQgKyAifSwgbGVuPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFByb2dyYW1tYXRpYyBuYW1lLCBlLmcuLCAiTGF0aW4tQXJhYmljIi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBJRDsKKworICAgIC8qKgorICAgICAqIFRoaXMgdHJhbnNsaXRlcmF0b3IncyBmaWx0ZXIuICBBbnkgY2hhcmFjdGVyIGZvciB3aGljaAorICAgICAqIDx0dD5maWx0ZXIuY29udGFpbnMoKTwvdHQ+IHJldHVybnMgPHR0PmZhbHNlPC90dD4gd2lsbCBub3QgYmUKKyAgICAgKiBhbHRlcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiA8dHQ+ZmlsdGVyPC90dD4gaXMKKyAgICAgKiA8dHQ+bnVsbDwvdHQ+IHRoZW4gbm8gZmlsdGVyaW5nIGlzIGFwcGxpZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlRmlsdGVyIGZpbHRlcjsKKworICAgIHByaXZhdGUgaW50IG1heGltdW1Db250ZXh0TGVuZ3RoID0gMDsKKworICAgIC8qKgorICAgICAqIFN5c3RlbSB0cmFuc2xpdGVyYXRvciByZWdpc3RyeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5IHJlZ2lzdHJ5OworCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGRpc3BsYXlOYW1lQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBQcmVmaXggZm9yIHJlc291cmNlIGJ1bmRsZSBrZXkgZm9yIHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEKKyAgICAgKiB0cmFuc2xpdGVyYXRvci4gIFRoZSBJRCBpcyBhcHBlbmRlZCB0byB0aGlzIHRvIGZvcm0gdGhlIGtleS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIHZhbHVlIHNob3VsZCBiZSBhIFN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkJfRElTUExBWV9OQU1FX1BSRUZJWCA9ICIlVHJhbnNsaXQlJSI7CisKKyAgICAvKioKKyAgICAgKiBQcmVmaXggZm9yIHJlc291cmNlIGJ1bmRsZSBrZXkgZm9yIHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBTQ1JJUFQuICBUaGUgSUQgaXMgYXBwZW5kZWQgdG8gdGhpcyB0byBmb3JtIHRoZSBrZXkuCisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSB2YWx1ZSBzaG91bGQgYmUgYSBTdHJpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJCX1NDUklQVF9ESVNQTEFZX05BTUVfUFJFRklYID0gIiVUcmFuc2xpdCUiOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgYnVuZGxlIGtleSBmb3IgZGlzcGxheSBuYW1lIHBhdHRlcm4uCisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSB2YWx1ZSBzaG91bGQgYmUgYSBTdHJpbmcgZm9ybWluZyBhCisgICAgICogTWVzc2FnZUZvcm1hdCBwYXR0ZXJuLCBlLmcuOgorICAgICAqICJ7MCxjaG9pY2UsMCN8MSN7MX0gVHJhbnNsaXRlcmF0b3J8MiN7MX0gdG8gezJ9IFRyYW5zbGl0ZXJhdG9yfSIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJCX0RJU1BMQVlfTkFNRV9QQVRURVJOID0gIlRyYW5zbGl0ZXJhdG9yTmFtZVBhdHRlcm4iOworCisgICAgLyoqCisgICAgICogRGVsaW1pdGVyIGJldHdlZW4gZWxlbWVudHMgaW4gYSBjb21wb3VuZCBJRC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBJRF9ERUxJTSA9ICc7JzsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciBiZWZvcmUgdGFyZ2V0IGluIGFuIElELgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjaGFyIElEX1NFUCA9ICctJzsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciBiZWZvcmUgdmFyaWFudCBpbiBhbiBJRC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBWQVJJQU5UX1NFUCA9ICcvJzsKKworICAgIC8qKgorICAgICAqIFRvIGVuYWJsZSBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBUcmFuc2xpdGVyYXRvciBjb21wb25lbnQsIHNldAorICAgICAqIERFQlVHIHRvIHRydWUuCisgICAgICoKKyAgICAgKiBOLkIuIE1ha2Ugc3VyZSB0byByZWNvbXBpbGUgYWxsIG9mIHRoZSBjb20uaWJtLmljdS50ZXh0IHBhY2thZ2UKKyAgICAgKiBhZnRlciBjaGFuZ2luZyB0aGlzLiAgRWFzaWVzdCB3YXkgdG8gZG8gdGhpcyBpcyAnYW50IGNsZWFuCisgICAgICogY29yZScgKCdhbnQnIHdpbGwgTk9UIHBpY2sgdXAgdGhlIGRlcGVuZGVuY3kgYXV0b21hdGljYWxseSkuCisgICAgICoKKyAgICAgKiA8PFRoaXMgZ2VuZXJhdGVzIGEgbG90IG9mIG91dHB1dC4+PgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIHN0cmluZyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGZpbHRlciB0aGUgZmlsdGVyLiAgQW55IGNoYXJhY3RlciBmb3Igd2hpY2gKKyAgICAgKiA8dHQ+ZmlsdGVyLmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+IHdpbGwgbm90IGJlCisgICAgICogYWx0ZXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgSWYgPHR0PmZpbHRlcjwvdHQ+IGlzCisgICAgICogPHR0Pm51bGw8L3R0PiB0aGVuIG5vIGZpbHRlcmluZyBpcyBhcHBsaWVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIGlmIChJRCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLklEID0gSUQ7CisgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGVzIGEgc2VnbWVudCBvZiBhIHN0cmluZywgd2l0aCBvcHRpb25hbCBmaWx0ZXJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IHRleHQubGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEByZXR1cm4gVGhlIG5ldyBsaW1pdCBpbmRleC4gIFRoZSB0ZXh0IHByZXZpb3VzbHkgb2NjdXB5aW5nIDxjb2RlPltzdGFydCwKKyAgICAgKiBsaW1pdCk8L2NvZGU+IGhhcyBiZWVuIHRyYW5zbGl0ZXJhdGVkLCBwb3NzaWJseSB0byBhIHN0cmluZyBvZiBhIGRpZmZlcmVudAorICAgICAqIGxlbmd0aCwgYXQgPGNvZGU+W3N0YXJ0LCA8L2NvZGU+PGVtPm5ldy1saW1pdDwvZW0+PGNvZGU+KTwvY29kZT4sIHdoZXJlCisgICAgICogPGVtPm5ldy1saW1pdDwvZW0+IGlzIHRoZSByZXR1cm4gdmFsdWUuIElmIHRoZSBpbnB1dCBvZmZzZXRzIGFyZSBvdXQgb2YgYm91bmRzLAorICAgICAqIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyAtMSBhbmQgdGhlIGlucHV0IHN0cmluZyByZW1haW5zIHVuY2hhbmdlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fAorICAgICAgICAgICAgbGltaXQgPCBzdGFydCB8fAorICAgICAgICAgICAgdGV4dC5sZW5ndGgoKSA8IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBQb3NpdGlvbiBwb3MgPSBuZXcgUG9zaXRpb24oc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBwb3MsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIHBvcy5saW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyBhbiBlbnRpcmUgc3RyaW5nIGluIHBsYWNlLiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCkgeworICAgICAgICB0cmFuc2xpdGVyYXRlKHRleHQsIDAsIHRleHQubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGUgYW4gZW50aXJlIHN0cmluZyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHJldHVybiBUaGUgdHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgdHJhbnNsaXRlcmF0ZShTdHJpbmcgdGV4dCkgeworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByZXN1bHQgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcodGV4dCk7CisgICAgICAgIHRyYW5zbGl0ZXJhdGUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGVzIHRoZSBwb3J0aW9uIG9mIHRoZSB0ZXh0IGJ1ZmZlciB0aGF0IGNhbiBiZQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIHVuYW1iaWd1b3NseSBhZnRlciBuZXcgdGV4dCBoYXMgYmVlbiBpbnNlcnRlZCwKKyAgICAgKiB0eXBpY2FsbHkgYXMgYSByZXN1bHQgb2YgYSBrZXlib2FyZCBldmVudC4gIFRoZSBuZXcgdGV4dCBpbgorICAgICAqIDxjb2RlPmluc2VydGlvbjwvY29kZT4gd2lsbCBiZSBpbnNlcnRlZCBpbnRvIDxjb2RlPnRleHQ8L2NvZGU+CisgICAgICogYXQgPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPiwgYWR2YW5jaW5nCisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPiBieSA8Y29kZT5pbnNlcnRpb24ubGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIFRoZW4gdGhlIHRyYW5zbGl0ZXJhdG9yIHdpbGwgdHJ5IHRvIHRyYW5zbGl0ZXJhdGUgY2hhcmFjdGVycyBvZgorICAgICAqIDxjb2RlPnRleHQ8L2NvZGU+IGJldHdlZW4gPGNvZGU+aW5kZXguc3RhcnQ8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4uICBDaGFyYWN0ZXJzIGJlZm9yZQorICAgICAqIDxjb2RlPmluZGV4LnN0YXJ0PC9jb2RlPiB3aWxsIG5vdCBiZSBjaGFuZ2VkLgorICAgICAqCisgICAgICogPHA+VXBvbiByZXR1cm4sIHZhbHVlcyBpbiA8Y29kZT5pbmRleDwvY29kZT4gd2lsbCBiZSB1cGRhdGVkLgorICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRTdGFydDwvY29kZT4gd2lsbCBiZSBhZHZhbmNlZCB0byB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgdGhhdCBmdXR1cmUgY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2lsbCByZWFkLgorICAgICAqIDxjb2RlPmluZGV4LnN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPiB3aWxsCisgICAgICogYmUgYWRqdXN0ZWQgdG8gZGVsaW1pdCB0aGUgcmFuZ2Ugb2YgdGV4dCB0aGF0IGZ1dHVyZSBjYWxscyB0bworICAgICAqIHRoaXMgbWV0aG9kIG1heSBjaGFuZ2UuCisgICAgICoKKyAgICAgKiA8cD5UeXBpY2FsIHVzYWdlIG9mIHRoaXMgbWV0aG9kIGJlZ2lucyB3aXRoIGFuIGluaXRpYWwgY2FsbAorICAgICAqIHdpdGggPGNvZGU+aW5kZXguY29udGV4dFN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPgorICAgICAqIHNldCB0byBpbmRpY2F0ZSB0aGUgcG9ydGlvbiBvZiA8Y29kZT50ZXh0PC9jb2RlPiB0byBiZQorICAgICAqIHRyYW5zbGl0ZXJhdGVkLCBhbmQgPGNvZGU+aW5kZXguc3RhcnQgPT0gaW5kZXguY29udGV4dFN0YXJ0PC9jb2RlPi4KKyAgICAgKiBUaGVyZWFmdGVyLCA8Y29kZT5pbmRleDwvY29kZT4gY2FuIGJlIHVzZWQgd2l0aG91dAorICAgICAqIG1vZGlmaWNhdGlvbiBpbiBmdXR1cmUgY2FsbHMsIHByb3ZpZGVkIHRoYXQgYWxsIGNoYW5nZXMgdG8KKyAgICAgKiA8Y29kZT50ZXh0PC9jb2RlPiBhcmUgbWFkZSB2aWEgdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgZnV0dXJlIGNhbGxzIG1heSBiZSBtYWRlIHRoYXQgd2lsbAorICAgICAqIGluc2VydCBuZXcgdGV4dCBpbnRvIHRoZSBidWZmZXIuICBBcyBhIHJlc3VsdCwgaXQgb25seSBwZXJmb3JtcworICAgICAqIHVuYW1iaWd1b3VzIHRyYW5zbGl0ZXJhdGlvbnMuICBBZnRlciB0aGUgbGFzdCBjYWxsIHRvIHRoaXMKKyAgICAgKiBtZXRob2QsIHRoZXJlIG1heSBiZSB1bnRyYW5zbGl0ZXJhdGVkIHRleHQgdGhhdCBpcyB3YWl0aW5nIGZvcgorICAgICAqIG1vcmUgaW5wdXQgdG8gcmVzb2x2ZSBhbiBhbWJpZ3VpdHkuICBJbiBvcmRlciB0byBwZXJmb3JtIHRoZXNlCisgICAgICogcGVuZGluZyB0cmFuc2xpdGVyYXRpb25zLCBjbGllbnRzIHNob3VsZCBjYWxsIHtAbGluaworICAgICAqICNmaW5pc2hUcmFuc2xpdGVyYXRpb259IGFmdGVyIHRoZSBsYXN0IGNhbGwgdG8gdGhpcworICAgICAqIG1ldGhvZCBoYXMgYmVlbiBtYWRlLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZCB1bnRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0aGUgdGV4dCwgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIGN1cnNvciwgYW5kIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSBpbnNlcnRpb24gdGV4dCB0byBiZSBpbnNlcnRlZCBhbmQgcG9zc2libHkKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCBpbnRvIHRoZSB0cmFuc2xhdGlvbiBidWZmZXIgYXQKKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+LiAgSWYgPGNvZGU+bnVsbDwvY29kZT4gdGhlbiBubyB0ZXh0CisgICAgICogaXMgaW5zZXJ0ZWQuCisgICAgICogQHNlZSAjaGFuZGxlVHJhbnNsaXRlcmF0ZQorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPmluZGV4PC9jb2RlPgorICAgICAqIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsIFBvc2l0aW9uIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICBpbmRleC52YWxpZGF0ZSh0ZXh0Lmxlbmd0aCgpKTsKKworLy8gICAgICAgIGludCBvcmlnaW5hbFN0YXJ0ID0gaW5kZXguY29udGV4dFN0YXJ0OworICAgICAgICBpZiAoaW5zZXJ0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShpbmRleC5saW1pdCwgaW5kZXgubGltaXQsIGluc2VydGlvbik7CisgICAgICAgICAgICBpbmRleC5saW1pdCArPSBpbnNlcnRpb24ubGVuZ3RoKCk7CisgICAgICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgKz0gaW5zZXJ0aW9uLmxlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluZGV4LmxpbWl0ID4gMCAmJgorICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRleHQuY2hhckF0KGluZGV4LmxpbWl0IC0gMSkpKSB7CisgICAgICAgICAgICAvLyBPb3BzLCB0aGVyZSBpcyBhIGRhbmdsaW5nIGxlYWQgc3Vycm9nYXRlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAgICAvLyBUaGlzIHdpbGwgYnJlYWsgbW9zdCB0cmFuc2xpdGVyYXRvcnMsIHNpbmNlIHRoZXkgd2lsbAorICAgICAgICAgICAgLy8gYXNzdW1lIGl0IGlzIHBhcnQgb2YgYSBwYWlyLiAgRG9uJ3QgdHJhbnNsaXRlcmF0ZSB1bnRpbAorICAgICAgICAgICAgLy8gbW9yZSB0ZXh0IGNvbWVzIGluLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCB0cnVlLCB0cnVlKTsKKworLy8gVE9ETworLy8gVGhpcyBkb2Vzbid0IHdvcmsgb25jZSB3ZSBhZGQgcXVhbnRpZmllciBzdXBwb3J0LiAgTmVlZCB0byByZXdyaXRlCisvLyB0aGlzIGNvZGUgdG8gc3VwcG9ydCBxdWFudGlmaWVycyBhbmQgJ3VzZSBtYXhpbXVtIGJhY2t1cCA8bj47Jy4KKy8vCisvLyAgICAgICAgaW5kZXguY29udGV4dFN0YXJ0ID0gTWF0aC5tYXgoaW5kZXguc3RhcnQgLSBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhcnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGVzIHRoZSBwb3J0aW9uIG9mIHRoZSB0ZXh0IGJ1ZmZlciB0aGF0IGNhbiBiZQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIHVuYW1iaWd1b3NseSBhZnRlciBhIG5ldyBjaGFyYWN0ZXIgaGFzIGJlZW4KKyAgICAgKiBpbnNlcnRlZCwgdHlwaWNhbGx5IGFzIGEgcmVzdWx0IG9mIGEga2V5Ym9hcmQgZXZlbnQuICBUaGlzIGlzIGEKKyAgICAgKiBjb252ZW5pZW5jZSBtZXRob2Q7IHNlZSB7QGxpbmsgI3RyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUsCisgICAgICogVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24sIFN0cmluZyl9IGZvciBkZXRhaWxzLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBidWZmZXIgaG9sZGluZyB0cmFuc2xpdGVyYXRlZCBhbmQKKyAgICAgKiB1bnRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0aGUgdGV4dCwgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIGN1cnNvciwgYW5kIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSBpbnNlcnRpb24gdGV4dCB0byBiZSBpbnNlcnRlZCBhbmQgcG9zc2libHkKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCBpbnRvIHRoZSB0cmFuc2xhdGlvbiBidWZmZXIgYXQKKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+LgorICAgICAqIEBzZWUgI3RyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUsIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnNlcnRpb24pIHsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgVVRGMTYudmFsdWVPZihpbnNlcnRpb24pKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyB0aGUgcG9ydGlvbiBvZiB0aGUgdGV4dCBidWZmZXIgdGhhdCBjYW4gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB1bmFtYmlndW9zbHkuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kOyBzZWUKKyAgICAgKiB7QGxpbmsgI3RyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUsIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uLAorICAgICAqIFN0cmluZyl9IGZvciBkZXRhaWxzLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBidWZmZXIgaG9sZGluZyB0cmFuc2xpdGVyYXRlZCBhbmQKKyAgICAgKiB1bnRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0aGUgdGV4dCwgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIGN1cnNvciwgYW5kIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqIEBzZWUgI3RyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUsIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBpbmRleCkgeworICAgICAgICB0cmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5pc2hlcyBhbnkgcGVuZGluZyB0cmFuc2xpdGVyYXRpb25zIHRoYXQgd2VyZSB3YWl0aW5nIGZvcgorICAgICAqIG1vcmUgY2hhcmFjdGVycy4gIENsaWVudHMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgYXMgdGhlIGxhc3QKKyAgICAgKiBjYWxsIGFmdGVyIGEgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUgY2FsbHMgdG8KKyAgICAgKiA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBidWZmZXIgaG9sZGluZyB0cmFuc2xpdGVyYXRlZCBhbmQKKyAgICAgKiB1bnRyYW5zbGl0ZXJhdGVkIHRleHQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBhcnJheSBvZiBpbmRpY2VzIHByZXZpb3VzbHkgcGFzc2VkIHRvIHtAbGluaworICAgICAqICN0cmFuc2xpdGVyYXRlfQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGZpbmlzaFRyYW5zbGl0ZXJhdGlvbihSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCkgeworICAgICAgICBpbmRleC52YWxpZGF0ZSh0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBmYWxzZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWJzdHJhY3QgbWV0aG9kIHRoYXQgY29uY3JldGUgc3ViY2xhc3NlcyBkZWZpbmUgdG8gaW1wbGVtZW50CisgICAgICogdGhlaXIgdHJhbnNsaXRlcmF0aW9uIGFsZ29yaXRobS4gIFRoaXMgbWV0aG9kIGhhbmRsZXMgYm90aAorICAgICAqIGluY3JlbWVudGFsIGFuZCBub24taW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uLiAgTGV0CisgICAgICogPGNvZGU+b3JpZ2luYWxTdGFydDwvY29kZT4gcmVmZXIgdG8gdGhlIHZhbHVlIG9mCisgICAgICogPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiB1cG9uIGVudHJ5LgorICAgICAqCisgICAgICogPHVsPgorICAgICAqICA8bGk+SWYgPGNvZGU+aW5jcmVtZW50YWw8L2NvZGU+IGlzIGZhbHNlLCB0aGVuIHRoaXMgbWV0aG9kCisgICAgICogIHNob3VsZCB0cmFuc2xpdGVyYXRlIGFsbCBjaGFyYWN0ZXJzIGJldHdlZW4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4gVXBvbiByZXR1cm4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBtdXN0ID09IDxjb2RlPiBwb3MubGltaXQ8L2NvZGU+LjwvbGk+CisgICAgICoKKyAgICAgKiAgPGxpPklmIDxjb2RlPmluY3JlbWVudGFsPC9jb2RlPiBpcyB0cnVlLCB0aGVuIHRoaXMgbWV0aG9kCisgICAgICogIHNob3VsZCB0cmFuc2xpdGVyYXRlIGFsbCBjaGFyYWN0ZXJzIGJldHdlZW4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiB0aGF0IGNhbiBiZQorICAgICAqICB1bmFtYmlndW91c2x5IHRyYW5zbGl0ZXJhdGVkLCByZWdhcmRsZXNzIG9mIGZ1dHVyZSBpbnNlcnRpb25zCisgICAgICogIG9mIHRleHQgYXQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4gIFVwb24gcmV0dXJuLAorICAgICAqICA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UKKyAgICAgKiAgWzxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KS4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBzaG91bGQgYmUgcG9zaXRpb25lZCBzdWNoIHRoYXQKKyAgICAgKiAgY2hhcmFjdGVycyBbPGNvZGU+b3JpZ2luYWxTdGFydDwvY29kZT4sIDxjb2RlPgorICAgICAqICBwb3Muc3RhcnQ8L2NvZGU+KSB3aWxsIG5vdCBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnkgdGhpcworICAgICAqICB0cmFuc2xpdGVyYXRvciBhbmQgY2hhcmFjdGVycyBbPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiwKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPikgYXJlIHVuY2hhbmdlZC48L2xpPgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiA8cD5JbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2Qgc2hvdWxkIGFsc28gb2JleSB0aGUKKyAgICAgKiBmb2xsb3dpbmcgaW52YXJpYW50czo8L3A+CisgICAgICoKKyAgICAgKiA8dWw+CisgICAgICogIDxsaT4gPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBhbmQgPGNvZGU+cG9zLmNvbnRleHRMaW1pdDwvY29kZT4KKyAgICAgKiAgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqICBiZXR3ZWVuIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kIDxjb2RlPnBvcy5saW1pdDwvY29kZT4uIFRoZQorICAgICAqICBkaWZmZXJlbmNlIDxjb2RlPiBwb3MuY29udGV4dExpbWl0IC0gcG9zLmxpbWl0PC9jb2RlPiBzaG91bGQKKyAgICAgKiAgbm90IGNoYW5nZS48L2xpPgorICAgICAqCisgICAgICogIDxsaT48Y29kZT5wb3MuY29udGV4dFN0YXJ0PC9jb2RlPiBzaG91bGQgbm90IGNoYW5nZS48L2xpPgorICAgICAqCisgICAgICogIDxsaT5VcG9uIHJldHVybiwgbmVpdGhlciA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IG5vcgorICAgICAqICA8Y29kZT5wb3MubGltaXQ8L2NvZGU+IHNob3VsZCBiZSBsZXNzIHRoYW4KKyAgICAgKiAgPGNvZGU+b3JpZ2luYWxTdGFydDwvY29kZT4uPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VGV4dCBiZWZvcmUgPGNvZGU+b3JpZ2luYWxTdGFydDwvY29kZT4gYW5kIHRleHQgYWZ0ZXIKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBzaG91bGQgbm90IGNoYW5nZS48L2xpPgorICAgICAqCisgICAgICogIDxsaT5UZXh0IGJlZm9yZSA8Y29kZT5wb3MuY29udGV4dFN0YXJ0PC9jb2RlPiBhbmQgdGV4dCBhZnRlcgorICAgICAqICA8Y29kZT4gcG9zLmNvbnRleHRMaW1pdDwvY29kZT4gc2hvdWxkIGJlIGlnbm9yZWQuPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogPHA+U3ViY2xhc3NlcyBtYXkgc2FmZWx5IGFzc3VtZSB0aGF0IGFsbCBjaGFyYWN0ZXJzIGluCisgICAgICogWzxjb2RlPnBvcy5zdGFydDwvY29kZT4sIDxjb2RlPnBvcy5saW1pdDwvY29kZT4pIGFyZSBmaWx0ZXJlZC4KKyAgICAgKiBJbiBvdGhlciB3b3JkcywgdGhlIGZpbHRlciBoYXMgYWxyZWFkeSBiZWVuIGFwcGxpZWQgYnkgdGhlIHRpbWUKKyAgICAgKiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuICBTZWUKKyAgICAgKiA8Y29kZT5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBpcyA8Yj5ub3Q8L2I+IGZvciBwdWJsaWMgY29uc3VtcHRpb24uICBDYWxsaW5nCisgICAgICogdGhpcyBtZXRob2QgZGlyZWN0bHkgd2lsbCB0cmFuc2xpdGVyYXRlCisgICAgICogWzxjb2RlPnBvcy5zdGFydDwvY29kZT4sIDxjb2RlPnBvcy5saW1pdDwvY29kZT4pIHdpdGhvdXQKKyAgICAgKiBhcHBseWluZyB0aGUgZmlsdGVyLiBFbmQgdXNlciBjb2RlIHNob3VsZCBjYWxsIDxjb2RlPgorICAgICAqIHRyYW5zbGl0ZXJhdGUoKTwvY29kZT4gaW5zdGVhZCBvZiB0aGlzIG1ldGhvZC4gU3ViY2xhc3MgY29kZQorICAgICAqIHNob3VsZCBjYWxsIDxjb2RlPmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSgpPC9jb2RlPiBpbnN0ZWFkIG9mCisgICAgICogdGhpcyBtZXRob2QuPHA+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zIHRoZSBpbmRpY2VzIGluZGljYXRpbmcgdGhlIHN0YXJ0LCBsaW1pdCwgY29udGV4dAorICAgICAqIHN0YXJ0LCBhbmQgY29udGV4dCBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiB0cnVlLCBhc3N1bWUgbW9yZSB0ZXh0IG1heSBiZSBpbnNlcnRlZCBhdAorICAgICAqIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gYW5kIGFjdCBhY2NvcmRpbmdseS4gIE90aGVyd2lzZSwKKyAgICAgKiB0cmFuc2xpdGVyYXRlIGFsbCB0ZXh0IGJldHdlZW4gPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+IGFuZCBtb3ZlIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gdXAgdG8KKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlZSAjdHJhbnNsaXRlcmF0ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcywgYm9vbGVhbiBpbmNyZW1lbnRhbCk7CisKKyAgICAvKioKKyAgICAgKiBUb3AtbGV2ZWwgdHJhbnNsaXRlcmF0aW9uIG1ldGhvZCwgaGFuZGxpbmcgZmlsdGVyaW5nLCBpbmNyZW1lbnRhbCBhbmQKKyAgICAgKiBub24taW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uLCBhbmQgcm9sbGJhY2suICBBbGwgdHJhbnNsaXRlcmF0aW9uCisgICAgICogcHVibGljIEFQSSBtZXRob2RzIGV2ZW50dWFsbHkgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGEgcm9sbGJhY2sgYXJndW1lbnQKKyAgICAgKiBvZiBUUlVFLiAgT3RoZXIgZW50aXRpZXMgbWF5IGNhbGwgdGhpcyBtZXRob2QgYnV0IHJvbGxiYWNrIHNob3VsZCBiZQorICAgICAqIEZBTFNFLgorICAgICAqCisgICAgICogPHA+SWYgdGhpcyB0cmFuc2xpdGVyYXRvciBoYXMgYSBmaWx0ZXIsIGJyZWFrIHVwIHRoZSBpbnB1dCB0ZXh0IGludG8gcnVucworICAgICAqIG9mIHVuZmlsdGVyZWQgY2hhcmFjdGVycy4gIFBhc3MgZWFjaCBydW4gdG8KKyAgICAgKiA8c3ViY2xhc3M+LmhhbmRsZVRyYW5zbGl0ZXJhdGUoKS4KKyAgICAgKgorICAgICAqIDxwPkluIGluY3JlbWVudGFsIG1vZGUsIGlmIHJvbGxiYWNrIGlzIFRSVUUsIHBlcmZvcm0gYSBzcGVjaWFsCisgICAgICogaW5jcmVtZW50YWwgcHJvY2VkdXJlIGluIHdoaWNoIHNldmVyYWwgcGFzc2VzIGFyZSBtYWRlIG92ZXIgdGhlIGlucHV0CisgICAgICogdGV4dCwgYWRkaW5nIG9uZSBjaGFyYWN0ZXIgYXQgYSB0aW1lLCBhbmQgY29tbWl0dGluZyBzdWNjZXNzZnVsCisgICAgICogdHJhbnNsaXRlcmF0aW9ucyBhcyB0aGV5IG9jY3VyLiAgVW5zdWNjZXNzZnVsIHRyYW5zbGl0ZXJhdGlvbnMgYXJlIHJvbGxlZAorICAgICAqIGJhY2sgYW5kIHJldHJpZWQgd2l0aCBhZGRpdGlvbmFsIGNoYXJhY3RlcnMgdG8gZ2l2ZSBjb3JyZWN0IHJlc3VsdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgcG9zaXRpb24gaW5kaWNlcworICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiBUUlVFLCB0aGVuIGFzc3VtZSBtb3JlIGNoYXJhY3RlcnMgbWF5IGJlIGluc2VydGVkCisgICAgICogYXQgaW5kZXgubGltaXQsIGFuZCBwb3N0cG9uZSBwcm9jZXNzaW5nIHRvIGFjY29tb2RhdGUgZnV0dXJlIGluY29taW5nCisgICAgICogY2hhcmFjdGVycworICAgICAqIEBwYXJhbSByb2xsYmFjayBpZiBUUlVFIGFuZCBpZiBpbmNyZW1lbnRhbCBpcyBUUlVFLCB0aGVuIHBlcmZvcm0gc3BlY2lhbAorICAgICAqIGluY3JlbWVudGFsIHByb2Nlc3NpbmcsIGFzIGRlc2NyaWJlZCBhYm92ZSwgYW5kIHVuZG8gcGFydGlhbAorICAgICAqIHRyYW5zbGl0ZXJhdGlvbnMgd2hlcmUgbmVjZXNzYXJ5LiAgSWYgaW5jcmVtZW50YWwgaXMgRkFMU0UgdGhlbiB0aGlzCisgICAgICogcGFyYW1ldGVyIGlzIGlnbm9yZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByb2xsYmFjaykgeworICAgICAgICAvLyBTaG9ydCBjaXJjdWl0IHBhdGggZm9yIHRyYW5zbGl0ZXJhdG9ycyB3aXRoIG5vIGZpbHRlciBpbgorICAgICAgICAvLyBub24taW5jcmVtZW50YWwgbW9kZS4KKyAgICAgICAgaWYgKGZpbHRlciA9PSBudWxsICYmICFyb2xsYmFjaykgeworICAgICAgICAgICAgaGFuZGxlVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIFRoaXMgbWV0aG9kIHByb2Nlc3NlcyB0ZXh0IGluIHR3byBncm91cGluZ3M6CisgICAgICAgIC8vCisgICAgICAgIC8vIFJVTlMgLS0gQSBydW4gaXMgYSBjb250aWd1b3VzIGdyb3VwIG9mIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGNvbnRhaW5lZAorICAgICAgICAvLyBpbiB0aGUgZmlsdGVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yIChmaWx0ZXIuY29udGFpbnMoY2gpID09IHRydWUpLgorICAgICAgICAvLyBUZXh0IG91dHNpZGUgb2YgcnVucyBtYXkgYXBwZWFyIGFzIGNvbnRleHQgYnV0IGl0IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgICAgLy8gVGhlIHN0YXJ0IGFuZCBsaW1pdCBQb3NpdGlvbiB2YWx1ZXMgYXJlIG5hcnJvd2VkIHRvIGVhY2ggcnVuLgorICAgICAgICAvLworICAgICAgICAvLyBQQVNTRVMgKGluY3JlbWVudGFsIG9ubHkpIC0tIFRvIG1ha2UgaW5jcmVtZW50YWwgbW9kZSB3b3JrIGNvcnJlY3RseSwKKyAgICAgICAgLy8gZWFjaCBydW4gaXMgYnJva2VuIHVwIGludG8gbiBwYXNzZXMsIHdoZXJlIG4gaXMgdGhlIGxlbmd0aCAoaW4gY29kZQorICAgICAgICAvLyBwb2ludHMpIG9mIHRoZSBydW4uICBFYWNoIHBhc3MgY29udGFpbnMgdGhlIGZpcnN0IG4gY2hhcmFjdGVycy4gIElmIGEKKyAgICAgICAgLy8gcGFzcyBpcyBjb21wbGV0ZWx5IHRyYW5zbGl0ZXJhdGVkLCBpdCBpcyBjb21taXR0ZWQsIGFuZCBmdXJ0aGVyIHBhc3NlcworICAgICAgICAvLyBpbmNsdWRlIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIGNvbW1pdHRlZCB0ZXh0LiAgSWYgYSBwYXNzIGlzIGJsb2NrZWQsCisgICAgICAgIC8vIGFuZCBkb2VzIG5vdCB0cmFuc2xpdGVyYXRlIGNvbXBsZXRlbHksIHRoZW4gdGhpcyBtZXRob2Qgcm9sbHMgYmFjaworICAgICAgICAvLyB0aGUgY2hhbmdlcyBtYWRlIGR1cmluZyB0aGUgcGFzcywgZXh0ZW5kcyB0aGUgcGFzcyBieSBvbmUgY29kZSBwb2ludCwKKyAgICAgICAgLy8gYW5kIHRyaWVzIGFnYWluLgorICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvLyBnbG9iYWxMaW1pdCBpcyB0aGUgbGltaXQgdmFsdWUgZm9yIHRoZSBlbnRpcmUgb3BlcmF0aW9uLiAgV2UKKyAgICAgICAgLy8gc2V0IGluZGV4LmxpbWl0IHRvIHRoZSBlbmQgb2YgZWFjaCB1bmZpbHRlcmVkIHJ1biBiZWZvcmUKKyAgICAgICAgLy8gY2FsbGluZyBoYW5kbGVUcmFuc2xpdGVyYXRlKCksIHNvIHdlIG5lZWQgdG8gbWFpbnRhaW4gdGhlIHJlYWwKKyAgICAgICAgLy8gdmFsdWUgb2YgaW5kZXgubGltaXQgaGVyZS4gIEFmdGVyIGVhY2ggdHJhbnNsaXRlcmF0aW9uLCB3ZQorICAgICAgICAvLyB1cGRhdGUgZ2xvYmFsTGltaXQgZm9yIGluc2VydGlvbnMgb3IgZGVsZXRpb25zIHRoYXQgaGF2ZQorICAgICAgICAvLyBoYXBwZW5lZC4KKyAgICAgICAgaW50IGdsb2JhbExpbWl0ID0gaW5kZXgubGltaXQ7CisKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBub24tbnVsbCBmaWx0ZXIsIHRoZW4gYnJlYWsgdGhlIGlucHV0IHRleHQgdXAuICBTYXkgdGhlCisgICAgICAgIC8vIGlucHV0IHRleHQgaGFzIHRoZSBmb3JtOgorICAgICAgICAvLyAgIHh4eGFiY3h4ZGVmeHgKKyAgICAgICAgLy8gd2hlcmUgJ3gnIHJlcHJlc2VudHMgYSBmaWx0ZXJlZCBjaGFyYWN0ZXIgKGZpbHRlci5jb250YWlucygneCcpID09CisgICAgICAgIC8vIGZhbHNlKS4gIFRoZW4gd2UgYnJlYWsgdGhpcyB1cCBpbnRvOgorICAgICAgICAvLyAgIHh4eGFiYyB4eGRlZiB4eAorICAgICAgICAvLyBFYWNoIHBhc3MgdGhyb3VnaCB0aGUgbG9vcCBjb25zdW1lcyBhIHJ1biBvZiBmaWx0ZXJlZAorICAgICAgICAvLyBjaGFyYWN0ZXJzICh3aGljaCBhcmUgaWdub3JlZCkgYW5kIGEgc3Vic2VxdWVudCBydW4gb2YKKyAgICAgICAgLy8gdW5maWx0ZXJlZCBjaGFyYWN0ZXJzICh3aGljaCBhcmUgdHJhbnNsaXRlcmF0ZWQpLgorCisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBudWxsOworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoOzspIHsKKworICAgICAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gTmFycm93IHRoZSByYW5nZSB0byBiZSB0cmFuc2xpdGVyYXRlZCB0byB0aGUgZmlyc3QgcnVuCisgICAgICAgICAgICAgICAgLy8gb2YgdW5maWx0ZXJlZCBjaGFyYWN0ZXJzIGF0IG9yIGFmdGVyIGluZGV4LnN0YXJ0LgorCisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBwYXN0IGZpbHRlcmVkIGNoYXJzCisgICAgICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4LnN0YXJ0IDwgZ2xvYmFsTGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIWZpbHRlci5jb250YWlucyhjPXRleHQuY2hhcjMyQXQoaW5kZXguc3RhcnQpKSkgeworICAgICAgICAgICAgICAgICAgICBpbmRleC5zdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgZW5kIG9mIHRoaXMgcnVuIG9mIHVuZmlsdGVyZWQgY2hhcnMKKyAgICAgICAgICAgICAgICBpbmRleC5saW1pdCA9IGluZGV4LnN0YXJ0OworICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleC5saW1pdCA8IGdsb2JhbExpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5jb250YWlucyhjPXRleHQuY2hhcjMyQXQoaW5kZXgubGltaXQpKSkgeworICAgICAgICAgICAgICAgICAgICBpbmRleC5saW1pdCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIHVuZmlsdGVyZWQgcnVuIGlzIGVtcHR5LiAgVGhpcyBvbmx5CisgICAgICAgICAgICAvLyBoYXBwZW5zIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aGVuIGFsbCB0aGUgcmVtYWluaW5nCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIGFyZSBmaWx0ZXJlZC4KKyAgICAgICAgICAgIGlmIChpbmRleC5zdGFydCA9PSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJcyB0aGlzIHJ1biBpbmNyZW1lbnRhbD8gIElmIHRoZXJlIGlzIGFkZGl0aW9uYWwKKyAgICAgICAgICAgIC8vIGZpbHRlcmVkIHRleHQgKGlmIGxpbWl0IDwgZ2xvYmFsTGltaXQpIHRoZW4gd2UgcGFzcyBpbgorICAgICAgICAgICAgLy8gYW4gaW5jcmVtZW50YWwgdmFsdWUgb2YgRkFMU0UgdG8gZm9yY2UgdGhlIHN1YmNsYXNzIHRvCisgICAgICAgICAgICAvLyBjb21wbGV0ZSB0aGUgdHJhbnNsaXRlcmF0aW9uIGZvciB0aGlzIHJ1bi4KKyAgICAgICAgICAgIGJvb2xlYW4gaXNJbmNyZW1lbnRhbFJ1biA9CisgICAgICAgICAgICAgICAgKGluZGV4LmxpbWl0IDwgZ2xvYmFsTGltaXQgPyBmYWxzZSA6IGluY3JlbWVudGFsKTsKKworICAgICAgICAgICAgaW50IGRlbHRhOworCisgICAgICAgICAgICAvLyBJbXBsZW1lbnQgcm9sbGJhY2suICBUbyB1bmRlcnN0YW5kIHRoZSBuZWVkIGZvciByb2xsYmFjaywKKyAgICAgICAgICAgIC8vIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgdHJhbnNsaXRlcmF0b3I6CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICJ0IiBpcyAiYSA+IEE7IgorICAgICAgICAgICAgLy8gICJ1IiBpcyAiQSA+IGI7IgorICAgICAgICAgICAgLy8gICJ2IiBpcyBhIGNvbXBvdW5kIG9mICJ0OyBORkQ7IHUiIHdpdGggYSBmaWx0ZXIgWzpMbDpdCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm93IGFwcGx5ICJ2IiB0byB0aGUgaW5wdXQgdGV4dCAiYSIuICBUaGUgcmVzdWx0IGlzICJiIi4gIEJ1dCBpZgorICAgICAgICAgICAgLy8gdGhlIHRyYW5zbGl0ZXJhdGlvbiBpcyBkb25lIGluY3JlbWVudGFsbHksIHRoZW4gdGhlIE5GRCBob2xkcworICAgICAgICAgICAgLy8gdGhpbmdzIHVwIGFmdGVyICJ0IiBoYXMgYWxyZWFkeSB0cmFuc2Zvcm1lZCAiYSIgdG8gIkEiLiAgV2hlbgorICAgICAgICAgICAgLy8gZmluaXNoVHJhbnNsaXRlcmF0ZSgpIGlzIGNhbGxlZCwgIkEiIGlzIF9ub3RfIHByb2Nlc3NlZCBiZWNhdXNlCisgICAgICAgICAgICAvLyBpdCBnZXRzIGV4Y2x1ZGVkIGJ5IHRoZSBbOkxsOl0gZmlsdGVyLCBhbmQgdGhlIGVuZCByZXN1bHQgaXMgIkEiCisgICAgICAgICAgICAvLyAtLSBpbmNvcnJlY3QuICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBmaWx0ZXIgaXMgYXBwbGllZCB0byBhCisgICAgICAgICAgICAvLyBwYXJ0aWFsbHktdHJhbnNsaXRlcmF0ZWQgcmVzdWx0LCB3aGVuIHdlIG9ubHkgd2FudCBpdCB0byBhcHBseSB0bworICAgICAgICAgICAgLy8gaW5wdXQgdGV4dC4gIEFsdGhvdWdoIHRoaXMgZXhhbXBsZSBkZXNjcmliZXMgYSBjb21wb3VuZAorICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0b3IgY29udGFpbmluZyBORkQgYW5kIGEgc3BlY2lmaWMgZmlsdGVyLCBpdCBjYW4KKyAgICAgICAgICAgIC8vIGhhcHBlbiB3aXRoIGFueSB0cmFuc2xpdGVyYXRvciB3aGljaCBkb2VzIGEgcGFydGlhbAorICAgICAgICAgICAgLy8gdHJhbnNmb3JtYXRpb24gaW4gaW5jcmVtZW50YWwgbW9kZSBpbnRvIGNoYXJhY3RlcnMgb3V0c2lkZSBpdHMKKyAgICAgICAgICAgIC8vIGZpbHRlci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUbyBoYW5kbGUgdGhpcywgd2hlbiBpbiBpbmNyZW1lbnRhbCBtb2RlIHdlIHN1cHBseSBjaGFyYWN0ZXJzIHRvCisgICAgICAgICAgICAvLyBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgaW4gc2V2ZXJhbCBwYXNzZXMuICBFYWNoIHBhc3MgYWRkcyBvbmUgbW9yZQorICAgICAgICAgICAgLy8gaW5wdXQgY2hhcmFjdGVyIHRvIHRoZSBpbnB1dCB0ZXh0LiAgVGhhdCBpcywgZm9yIGlucHV0ICJBQkNEIiwgd2UKKyAgICAgICAgICAgIC8vIGZpcnN0IHRyeSAiQSIsIHRoZW4gIkFCIiwgdGhlbiAiQUJDIiwgYW5kIGZpbmFsbHkgIkFCQ0QiLiAgSWYgYXQKKyAgICAgICAgICAgIC8vIGFueSBwb2ludCB3ZSBibG9jayAodXBvbiByZXR1cm4sIHN0YXJ0IDwgbGltaXQpIHRoZW4gd2Ugcm9sbAorICAgICAgICAgICAgLy8gYmFjay4gIElmIGF0IGFueSBwb2ludCB3ZSBjb21wbGV0ZSB0aGUgcnVuICh1cG9uIHJldHVybiBzdGFydCA9PQorICAgICAgICAgICAgLy8gbGltaXQpIHRoZW4gd2UgY29tbWl0IHRoYXQgcnVuLgorCisgICAgICAgICAgICBpZiAocm9sbGJhY2sgJiYgaXNJbmNyZW1lbnRhbFJ1bikgeworCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifWk6IElOPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgcnVuU3RhcnQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGltaXQgPSBpbmRleC5saW1pdDsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGVuZ3RoID0gIHJ1bkxpbWl0IC0gcnVuU3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBNYWtlIGEgcm9sbGJhY2sgY29weSBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcKKyAgICAgICAgICAgICAgICBpbnQgcm9sbGJhY2tPcmlnaW4gPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRleHQuY29weShydW5TdGFydCwgcnVuTGltaXQsIHJvbGxiYWNrT3JpZ2luKTsKKworICAgICAgICAgICAgICAgIC8vIFZhcmlhYmxlcyByZWZsZWN0aW5nIHRoZSBjb21taXRtZW50IG9mIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRlZCB0ZXh0LiAgcGFzc1N0YXJ0IGlzIHRoZSBydW5TdGFydCwgYWR2YW5jZWQKKyAgICAgICAgICAgICAgICAvLyBwYXN0IGNvbW1pdHRlZCB0ZXh0LiAgcm9sbGJhY2tTdGFydCBpcyB0aGUgcm9sbGJhY2tPcmlnaW4sCisgICAgICAgICAgICAgICAgLy8gYWR2YW5jZWQgcGFzdCByb2xsYmFjayB0ZXh0IHRoYXQgY29ycmVzcG9uZHMgdG8gY29tbWl0dGVkCisgICAgICAgICAgICAgICAgLy8gdGV4dC4KKyAgICAgICAgICAgICAgICBpbnQgcGFzc1N0YXJ0ID0gcnVuU3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IHJvbGxiYWNrU3RhcnQgPSByb2xsYmFja09yaWdpbjsKKworICAgICAgICAgICAgICAgIC8vIFRoZSBsaW1pdCBmb3IgZWFjaCBwYXNzOyB3ZSBhZHZhbmNlIGJ5IG9uZSBjb2RlIHBvaW50IHdpdGgKKyAgICAgICAgICAgICAgICAvLyBlYWNoIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBpbnQgcGFzc0xpbWl0ID0gaW5kZXguc3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBUb3RhbCBsZW5ndGgsIGluIDE2LWJpdCBjb2RlIHVuaXRzLCBvZiB1bmNvbW1pdHRlZCB0ZXh0LgorICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxlbmd0aCB0byBiZSByb2xsZWQgYmFjay4KKyAgICAgICAgICAgICAgICBpbnQgdW5jb21taXR0ZWRMZW5ndGggPSAwOworCisgICAgICAgICAgICAgICAgLy8gVG90YWwgZGVsdGEgKGNoYW5nZSBpbiBsZW5ndGgpIGZvciBhbGwgcGFzc2VzCisgICAgICAgICAgICAgICAgaW50IHRvdGFsRGVsdGEgPSAwOworCisgICAgICAgICAgICAgICAgLy8gUEFTUyBNQUlOIExPT1AgLS0gU3RhcnQgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGFuZCBleHRlbmQKKyAgICAgICAgICAgICAgICAvLyB0aGUgdGV4dCBieSBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZS4gIFJvbGwgYmFjayBwYXJ0aWFsCisgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0aW9ucyBhbmQgY29tbWl0IGNvbXBsZXRlIHRyYW5zbGl0ZXJhdGlvbnMuCisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAvLyBMZW5ndGggb2YgYWRkaXRpb25hbCBjb2RlIHBvaW50LCBlaXRoZXIgb25lIG9yIHR3bworICAgICAgICAgICAgICAgICAgICBpbnQgY2hhckxlbmd0aCA9CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChwYXNzTGltaXQpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc0xpbWl0ICs9IGNoYXJMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXNzTGltaXQgPiBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdW5jb21taXR0ZWRMZW5ndGggKz0gY2hhckxlbmd0aDsKKworICAgICAgICAgICAgICAgICAgICBpbmRleC5saW1pdCA9IHBhc3NMaW1pdDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCJmaWx0ZXJlZFRyYW5zbGl0ZXJhdGV7IitnZXRJRCgpKyJ9aTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGVnYXRlIHRvIHN1YmNsYXNzIGZvciBhY3R1YWwgdHJhbnNsaXRlcmF0aW9uLiAgVXBvbgorICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4sIHN0YXJ0IHdpbGwgYmUgdXBkYXRlZCB0byBwb2ludCBhZnRlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZWQgdGV4dCwgYW5kIGxpbWl0IGFuZCBjb250ZXh0TGltaXQgd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAvLyBhZGp1c3RlZCBmb3IgbGVuZ3RoIGNoYW5nZXMuCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIHRydWUpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpOworICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IGluZGV4LmxpbWl0IC0gcGFzc0xpbWl0OyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzIHBhc3MuCisgICAgICAgICAgICAgICAgICAgIC8vIFJvbGwgYmFjayB0aGUgdGV4dC4gIEluZGljZXMgcmVtYWluIHVuY2hhbmdlZDsgcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbSB3aGVyZSBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleC5zdGFydCAhPSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgcm9sbGJhY2tTdGFydCwgYWRqdXN0ZWQgZm9yIGxlbmd0aCBjaGFuZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGRlbGV0aW9uIG9mIHBhcnRpYWxseSB0cmFuc2xpdGVyYXRlZCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJzID0gcm9sbGJhY2tTdGFydCArIGRlbHRhIC0gKGluZGV4LmxpbWl0IC0gcGFzc1N0YXJ0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBwYXJ0aWFsbHkgdHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHBhc3NTdGFydCwgaW5kZXgubGltaXQsICIiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgcm9sbGJhY2sgdGV4dCBiYWNrCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LmNvcHkocnMsIHJzICsgdW5jb21taXR0ZWRMZW5ndGgsIHBhc3NTdGFydCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgaW5kaWNlcyB0byB0aGVpciBvcmlnaW5hbCB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gcGFzc1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBwYXNzTGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgLT0gZGVsdGE7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiAoUk9MTEJBQ0spIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBXZSBkaWQgY29tcGxldGVseSB0cmFuc2xpdGVyYXRlIHRoaXMgcGFzcy4gIFVwZGF0ZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gY29tbWl0IGluZGljZXMgdG8gcmVjb3JkIGhvdyBmYXIgd2UgZ290LiAgQWRqdXN0IGluZGljZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGxlbmd0aCBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgcGFzcyBpbmRpY2VzIHBhc3QgdGhlIGNvbW1pdHRlZCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzc1N0YXJ0ID0gcGFzc0xpbWl0ID0gaW5kZXguc3RhcnQ7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkanVzdCB0aGUgcm9sbGJhY2tTdGFydCBmb3IgbGVuZ3RoIGNoYW5nZXMgYW5kIG1vdmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IHBhc3QgdGhlIGNvbW1pdHRlZCB0ZXh0LiAgQWxsIGNoYXJhY3RlcnMgd2UndmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3NlZCB0byB0aGlzIHBvaW50IGFyZSBjb21taXR0ZWQgbm93LCBzbyB6ZXJvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXQgdGhlIHVuY29tbWl0dGVkTGVuZ3RoLgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sbGJhY2tTdGFydCArPSBkZWx0YSArIHVuY29tbWl0dGVkTGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgdW5jb21taXR0ZWRMZW5ndGggPSAwOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgaW5kaWNlcyBmb3IgbGVuZ3RoIGNoYW5nZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBydW5MaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsRGVsdGEgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG92ZXJhbGwgbGltaXQgYW5kIHJvbGxiYWNrT3JpZ2luIGZvciBpbnNlcnRpb25zIGFuZAorICAgICAgICAgICAgICAgIC8vIGRlbGV0aW9ucy4gIERvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgY29udGV4dExpbWl0IGJlY2F1c2UKKyAgICAgICAgICAgICAgICAvLyBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgbWFpbnRhaW5zIHRoYXQuCisgICAgICAgICAgICAgICAgcm9sbGJhY2tPcmlnaW4gKz0gdG90YWxEZWx0YTsKKyAgICAgICAgICAgICAgICBnbG9iYWxMaW1pdCArPSB0b3RhbERlbHRhOworCisgICAgICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSByb2xsYmFjayBjb3B5CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHJvbGxiYWNrT3JpZ2luLCByb2xsYmFja09yaWdpbiArIHJ1bkxlbmd0aCwgIiIpOworCisgICAgICAgICAgICAgICAgLy8gTW92ZSBzdGFydCBwYXN0IGNvbW1pdHRlZCB0ZXh0CisgICAgICAgICAgICAgICAgaW5kZXguc3RhcnQgPSBwYXNzU3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIERlbGVnYXRlIHRvIHN1YmNsYXNzIGZvciBhY3R1YWwgdHJhbnNsaXRlcmF0aW9uLgorICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCJmaWx0ZXJlZFRyYW5zbGl0ZXJhdGV7IitnZXRJRCgpKyJ9OiAiKTsKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gaW5kZXgubGltaXQ7CisgICAgICAgICAgICAgICAgaGFuZGxlVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaXNJbmNyZW1lbnRhbFJ1bik7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmRleC5saW1pdCAtIGxpbWl0OyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpOworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJbiBhIHByb3Blcmx5IHdyaXR0ZW4gdHJhbnNsaXRlcmF0b3IsIHN0YXJ0ID09IGxpbWl0IGFmdGVyCisgICAgICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIHJldHVybnMgd2hlbiBpbmNyZW1lbnRhbCBpcyBmYWxzZS4KKyAgICAgICAgICAgICAgICAvLyBDYXRjaCBjYXNlcyB3aGVyZSB0aGUgc3ViY2xhc3MgZG9lc24ndCBkbyB0aGlzLCBhbmQgdGhyb3cKKyAgICAgICAgICAgICAgICAvLyBhbiBleGNlcHRpb24uICAoSnVzdCBwaW5uaW5nIHN0YXJ0IHRvIGxpbWl0IGlzIGEgYmFkIGlkZWEsCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB3aGF0J3MgcHJvYmFibHkgaGFwcGVuaW5nIGlzIHRoYXQgdGhlIHN1YmNsYXNzCisgICAgICAgICAgICAgICAgLy8gaXNuJ3QgdHJhbnNsaXRlcmF0aW5nIGFsbCB0aGUgd2F5IHRvIHRoZSBlbmQsIGFuZCBpdCBzaG91bGQKKyAgICAgICAgICAgICAgICAvLyBpbiBub24taW5jcmVtZW50YWwgbW9kZS4pCisgICAgICAgICAgICAgICAgaWYgKCFpc0luY3JlbWVudGFsUnVuICYmIGluZGV4LnN0YXJ0ICE9IGluZGV4LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJFUlJPUjogSW5jb21wbGV0ZSBub24taW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uIGJ5ICIgKyBnZXRJRCgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgb3ZlcmFsbCBsaW1pdCBmb3IgaW5zZXJ0aW9ucy9kZWxldGlvbnMuICBEb24ndCBuZWVkCisgICAgICAgICAgICAgICAgLy8gdG8gd29ycnkgYWJvdXQgY29udGV4dExpbWl0IGJlY2F1c2UgaGFuZGxlVHJhbnNsaXRlcmF0ZSgpCisgICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHRoYXQuCisgICAgICAgICAgICAgICAgZ2xvYmFsTGltaXQgKz0gZGVsdGE7CisKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZmlsdGVyID09IG51bGwgfHwgaXNJbmNyZW1lbnRhbFJ1bikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB3ZSBkaWQgY29tcGxldGVseSB0cmFuc2xpdGVyYXRlIHRoaXMKKyAgICAgICAgICAgIC8vIHJ1biwgdGhlbiByZXBlYXQgd2l0aCB0aGUgbmV4dCB1bmZpbHRlcmVkIHJ1bi4KKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0YXJ0IGlzIHZhbGlkIHdoZXJlIGl0IGlzLiAgTGltaXQgbmVlZHMgdG8gYmUgcHV0IGJhY2sgd2hlcmUKKyAgICAgICAgLy8gaXQgd2FzLCBtb2R1bG8gYWRqdXN0bWVudHMgZm9yIGRlbGV0aW9ucy9pbnNlcnRpb25zLgorICAgICAgICBpbmRleC5saW1pdCA9IGdsb2JhbExpbWl0OworCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmaWx0ZXJlZFRyYW5zbGl0ZXJhdGV7IitnZXRJRCgpKyJ9OiBPVVQ9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgaW5kZXgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGUgYSBzdWJzdHJpbmcgb2YgdGV4dCwgYXMgc3BlY2lmaWVkIGJ5IGluZGV4LCB0YWtpbmcgZmlsdGVycworICAgICAqIGludG8gYWNjb3VudC4gIFRoaXMgbWV0aG9kIGlzIGZvciBzdWJjbGFzc2VzIHRoYXQgbmVlZCB0byBkZWxlZ2F0ZSB0bworICAgICAqIGFub3RoZXIgdHJhbnNsaXRlcmF0b3IsIHN1Y2ggYXMgQ29tcG91bmRUcmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgcG9zaXRpb24gaW5kaWNlcworICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiBUUlVFLCB0aGVuIGFzc3VtZSBtb3JlIGNoYXJhY3RlcnMgbWF5IGJlIGluc2VydGVkCisgICAgICogYXQgaW5kZXgubGltaXQsIGFuZCBwb3N0cG9uZSBwcm9jZXNzaW5nIHRvIGFjY29tb2RhdGUgZnV0dXJlIGluY29taW5nCisgICAgICogY2hhcmFjdGVycworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGluY3JlbWVudGFsLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IGNvbnRleHQgcmVxdWlyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBUaGlzIGlzIDxlbT5wcmVjZWRpbmc8L2VtPiBjb250ZXh0LiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgemVybywgYnV0CisgICAgICogc3ViY2xhc3NlcyBjYW4gY2hhbmdlIHRoaXMgYnkgY2FsbGluZyA8Y29kZT5zZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaWYgYSB0cmFuc2xpdGVyYXRvciB0cmFuc2xhdGVzICJkZGQiICh3aGVyZQorICAgICAqIGQgaXMgYW55IGRpZ2l0KSB0byAiNTU1IiB3aGVuIHByZWNlZGVkIGJ5ICIoZGRkKSIsIHRoZW4gdGhlIHByZWNlZGluZworICAgICAqIGNvbnRleHQgbGVuZ3RoIGlzIDUsIHRoZSBsZW5ndGggb2YgIihkZGQpIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHByZWNlZGluZyBjb250ZXh0IGNoYXJhY3RlcnMgdGhpcworICAgICAqIHRyYW5zbGl0ZXJhdG9yIG5lZWRzIHRvIGV4YW1pbmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gbWF4aW11bUNvbnRleHRMZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIHVzZSB0byBzZXQgdGhlIG1heGltdW0gY29udGV4dCBsZW5ndGguCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRNYXhpbXVtQ29udGV4dExlbmd0aChpbnQgYSkgeworICAgICAgICBpZiAoYSA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29udGV4dCBsZW5ndGggIiArIGEpOworICAgICAgICB9CisgICAgICAgIG1heGltdW1Db250ZXh0TGVuZ3RoID0gYTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogSWYgdGhpcyBpZGVudGlmaWVyIGlzIHBhc3NlZCB0byA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPiwgaXQKKyAgICAgKiB3aWxsIHJldHVybiB0aGlzIG9iamVjdCwgaWYgaXQgaGFzIGJlZW4gcmVnaXN0ZXJlZC4KKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHNlZSAjZ2V0QXZhaWxhYmxlSURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXRJRCgpIHsKKyAgICAgICAgcmV0dXJuIElEOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuICBPbmx5CisgICAgICogZm9yIHVzZSBieSBzdWJjbGFzc2VzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldElEKFN0cmluZyBpZCkgeworICAgICAgICBJRCA9IGlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yCisgICAgICogZGlzcGxheSB0byB0aGUgdXNlciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBTZWUge0BsaW5rCisgICAgICogI2dldERpc3BsYXlOYW1lKFN0cmluZyxMb2NhbGUpfSBmb3IgZGV0YWlscy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKElELCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IKKyAgICAgKiBkaXNwbGF5IHRvIHRoZSB1c2VyIGluIHRoZSBnaXZlbiBsb2NhbGUuICBUaGlzIG5hbWUgaXMgdGFrZW4KKyAgICAgKiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSBpbiB0aGUgc3RhbmRhcmQgbWFubmVyIG9mIHRoZQorICAgICAqIDxjb2RlPmphdmEudGV4dDwvY29kZT4gcGFja2FnZS4KKyAgICAgKgorICAgICAqIDxwPklmIG5vIGxvY2FsaXplZCBuYW1lcyBleGlzdCBpbiB0aGUgc3lzdGVtIHJlc291cmNlIGJ1bmRsZXMsCisgICAgICogYSBuYW1lIGlzIHN5bnRoZXNpemVkIHVzaW5nIGEgbG9jYWxpemVkCisgICAgICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcGF0dGVybiBmcm9tIHRoZSByZXNvdXJjZSBkYXRhLiAgVGhlCisgICAgICogYXJndW1lbnRzIHRvIHRoaXMgcGF0dGVybiBhcmUgYW4gaW50ZWdlciBmb2xsb3dlZCBieSBvbmUgb3IgdHdvCisgICAgICogc3RyaW5ncy4gIFRoZSBpbnRlZ2VyIGlzIHRoZSBudW1iZXIgb2Ygc3RyaW5ncywgZWl0aGVyIDEgb3IgMi4KKyAgICAgKiBUaGUgc3RyaW5ncyBhcmUgZm9ybWVkIGJ5IHNwbGl0dGluZyB0aGUgSUQgZm9yIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZmlyc3QgJy0nLiAgSWYgdGhlcmUgaXMgbm8gJy0nLCB0aGVuIHRoZQorICAgICAqIGVudGlyZSBJRCBmb3JtcyB0aGUgb25seSBzdHJpbmcuCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBMb2NhbGUgaW4gd2hpY2ggdGhlIGRpc3BsYXkgbmFtZSBzaG91bGQgYmUKKyAgICAgKiBsb2NhbGl6ZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShpZCwgVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvcgorICAgICAqIGRpc3BsYXkgdG8gdGhlIHVzZXIgaW4gdGhlIGdpdmVuIGxvY2FsZS4gIFRoaXMgbmFtZSBpcyB0YWtlbgorICAgICAqIGZyb20gdGhlIGxvY2FsZSByZXNvdXJjZSBkYXRhIGluIHRoZSBzdGFuZGFyZCBtYW5uZXIgb2YgdGhlCisgICAgICogPGNvZGU+amF2YS50ZXh0PC9jb2RlPiBwYWNrYWdlLgorICAgICAqCisgICAgICogPHA+SWYgbm8gbG9jYWxpemVkIG5hbWVzIGV4aXN0IGluIHRoZSBzeXN0ZW0gcmVzb3VyY2UgYnVuZGxlcywKKyAgICAgKiBhIG5hbWUgaXMgc3ludGhlc2l6ZWQgdXNpbmcgYSBsb2NhbGl6ZWQKKyAgICAgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBwYXR0ZXJuIGZyb20gdGhlIHJlc291cmNlIGRhdGEuICBUaGUKKyAgICAgKiBhcmd1bWVudHMgdG8gdGhpcyBwYXR0ZXJuIGFyZSBhbiBpbnRlZ2VyIGZvbGxvd2VkIGJ5IG9uZSBvciB0d28KKyAgICAgKiBzdHJpbmdzLiAgVGhlIGludGVnZXIgaXMgdGhlIG51bWJlciBvZiBzdHJpbmdzLCBlaXRoZXIgMSBvciAyLgorICAgICAqIFRoZSBzdHJpbmdzIGFyZSBmb3JtZWQgYnkgc3BsaXR0aW5nIHRoZSBJRCBmb3IgdGhpcworICAgICAqIHRyYW5zbGl0ZXJhdG9yIGF0IHRoZSBmaXJzdCAnLScuICBJZiB0aGVyZSBpcyBubyAnLScsIHRoZW4gdGhlCisgICAgICogZW50aXJlIElEIGZvcm1zIHRoZSBvbmx5IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gaW5Mb2NhbGUgdGhlIFVMb2NhbGUgaW4gd2hpY2ggdGhlIGRpc3BsYXkgbmFtZSBzaG91bGQgYmUKKyAgICAgKiBsb2NhbGl6ZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGluTG9jYWxlKSB7CisKKyAgICAgICAgLy8gUmVzb3VyY2UgYnVuZGxlIGNvbnRhaW5pbmcgZGlzcGxheSBuYW1lIGtleXMgYW5kIHRoZQorICAgICAgICAvLyBSQl9SVUxFX0JBU0VEX0lEUyBhcnJheS4KKyAgICAgICAgLy8KKyAgICAgICAgLy9JZiB3ZSBldmVyIGludGVncmF0ZSB0aGlzIHdpdGggdGhlIFN1biBKREssIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgICAgLy8gcm9vdCB3aWxsIGNoYW5nZSB0byBzdW4udGV4dC5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLgorICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSwgaW5Mb2NhbGUpOworCisgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgSUQKKyAgICAgICAgU3RyaW5nIHN0dltdID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5JRHRvU1RWKGlkKTsKKyAgICAgICAgaWYgKHN0diA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBObyB0YXJnZXQ7IG1hbGZvcm1lZCBpZAorICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBJRCA9IHN0dlswXSArICctJyArIHN0dlsxXTsKKyAgICAgICAgaWYgKHN0dlsyXSAhPSBudWxsICYmIHN0dlsyXS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIElEID0gSUQgKyAnLycgKyBzdHZbMl07CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIHJlZ2lzdGVyZWQgZGlzcGxheSBuYW1lLCBpZiBhbnkKKyAgICAgICAgU3RyaW5nIG4gPSAoU3RyaW5nKSBkaXNwbGF5TmFtZUNhY2hlLmdldChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSk7CisgICAgICAgIGlmIChuICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGVudGlyZSB0cmFuc2xpdGVyYXRvciwgaWYgaXQKKyAgICAgICAgLy8gZXhpc3RzLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRTdHJpbmcoUkJfRElTUExBWV9OQU1FX1BSRUZJWCArIElEKTsKKyAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIENvbnN0cnVjdCB0aGUgZm9ybWF0dGVyIGZpcnN0OyBpZiBnZXRTdHJpbmcoKSBmYWlscworICAgICAgICAgICAgLy8gd2UnbGwgZXhpdCB0aGUgdHJ5IGJsb2NrCisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBidW5kbGUuZ2V0U3RyaW5nKFJCX0RJU1BMQVlfTkFNRV9QQVRURVJOKSk7CisgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIGFyZ3VtZW50IGFycmF5CisgICAgICAgICAgICBPYmplY3RbXSBhcmdzID0gbmV3IE9iamVjdFtdIHsgbmV3IEludGVnZXIoMiksIHN0dlswXSwgc3R2WzFdIH07CisKKyAgICAgICAgICAgIC8vIFVzZSBkaXNwbGF5IG5hbWVzIGZvciB0aGUgc2NyaXB0cywgaWYgdGhleSBleGlzdAorICAgICAgICAgICAgZm9yIChpbnQgaj0xOyBqPD0yOyArK2opIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBhcmdzW2pdID0gYnVuZGxlLmdldFN0cmluZyhSQl9TQ1JJUFRfRElTUExBWV9OQU1FX1BSRUZJWCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpIGFyZ3Nbal0pOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JtYXQgaXQgdXNpbmcgdGhlIHBhdHRlcm4gaW4gdGhlIHJlc291cmNlCisgICAgICAgICAgICByZXR1cm4gKHN0dlsyXS5sZW5ndGgoKSA+IDApID8KKyAgICAgICAgICAgICAgICAoZm9ybWF0LmZvcm1hdChhcmdzKSArICcvJyArIHN0dlsyXSkgOgorICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQoYXJncyk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMikge30KKworICAgICAgICAvLyBXZSBzaG91bGQgbm90IHJlYWNoIHRoaXMgcG9pbnQgdW5sZXNzIHRoZXJlIGlzIHNvbWV0aGluZworICAgICAgICAvLyB3cm9uZyB3aXRoIHRoZSBidWlsZCBvciB0aGUgUkJfRElTUExBWV9OQU1FX1BBVFRFUk4gaGFzCisgICAgICAgIC8vIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSByb290IFJCX0xPQ0FMRV9FTEVNRU5UUyByZXNvdXJjZS4KKyAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXIgdXNlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLCBvciA8dHQ+bnVsbDwvdHQ+CisgICAgICogaWYgdGhpcyB0cmFuc2xpdGVyYXRvciB1c2VzIG5vIGZpbHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZUZpbHRlciBnZXRGaWx0ZXIoKSB7CisgICAgICAgIHJldHVybiBmaWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hhbmdlcyB0aGUgZmlsdGVyIHVzZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIHRoZSBmaWx0ZXIKKyAgICAgKiBpcyBzZXQgdG8gPHR0Pm51bGw8L3R0PiB0aGVuIG5vIGZpbHRlcmluZyB3aWxsIG9jY3VyLgorICAgICAqCisgICAgICogPHA+Q2FsbGVycyBtdXN0IHRha2UgY2FyZSBpZiBhIHRyYW5zbGl0ZXJhdG9yIGlzIGluIHVzZSBieQorICAgICAqIG11bHRpcGxlIHRocmVhZHMuICBUaGUgZmlsdGVyIHNob3VsZCBub3QgYmUgY2hhbmdlZCBieSBvbmUKKyAgICAgKiB0aHJlYWQgd2hpbGUgYW5vdGhlciB0aHJlYWQgbWF5IGJlIHRyYW5zbGl0ZXJhdGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGaWx0ZXIoVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gaXRzIElELgorICAgICAqIFRoZSBJRCBtdXN0IGJlIGVpdGhlciBhIHN5c3RlbSB0cmFuc2xpdGVyYXRvciBJRCBvciBhIElEIHJlZ2lzdGVyZWQKKyAgICAgKiB1c2luZyA8Y29kZT5yZWdpc3RlckNsYXNzKCk8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIElEIGEgdmFsaWQgSUQsIGFzIGVudW1lcmF0ZWQgYnkgPGNvZGU+Z2V0QXZhaWxhYmxlSURzKCk8L2NvZGU+CisgICAgICogQHJldHVybiBBIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gSUQgaXMgaW52YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoSUQsIEZPUldBUkQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGl0cyBJRC4KKyAgICAgKiBUaGUgSUQgbXVzdCBiZSBlaXRoZXIgYSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgSUQgb3IgYSBJRCByZWdpc3RlcmVkCisgICAgICogdXNpbmcgPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJRCBhIHZhbGlkIElELCBhcyBlbnVtZXJhdGVkIGJ5IDxjb2RlPmdldEF2YWlsYWJsZUlEcygpPC9jb2RlPgorICAgICAqIEBwYXJhbSBkaXIgZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRS4gIElmIFJFVkVSU0UgdGhlbiB0aGUKKyAgICAgKiBpbnZlcnNlIG9mIHRoZSBnaXZlbiBJRCBpcyBpbnN0YW50aWF0ZWQuCisgICAgICogQHJldHVybiBBIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gSUQgaXMgaW52YWxpZC4KKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHNlZSAjZ2V0QXZhaWxhYmxlSURzCisgICAgICogQHNlZSAjZ2V0SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXIpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGNhbm9uSUQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFZlY3RvciBsaXN0ID0gbmV3IFZlY3RvcigpOworICAgICAgICBVbmljb2RlU2V0W10gZ2xvYmFsRmlsdGVyID0gbmV3IFVuaWNvZGVTZXRbMV07CisgICAgICAgIGlmICghVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUNvbXBvdW5kSUQoSUQsIGRpciwgY2Fub25JRCwgbGlzdCwgZ2xvYmFsRmlsdGVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBJRCAiICsgSUQpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5pbnN0YW50aWF0ZUxpc3QobGlzdCk7CisKKyAgICAgICAgLy8gYXNzZXJ0KGxpc3Quc2l6ZSgpID4gMCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworICAgICAgICBpZiAobGlzdC5zaXplKCkgPiAxIHx8IFV0aWxpdHkuaW5kZXhPZihjYW5vbklELCAiOyIpID49IDApIHsKKyAgICAgICAgICAgIC8vIFtOT1RFOiBJZiBpdCdzIGEgY29tcG91bmRJRCwgd2UgaW5zdGFudGlhdGUgYSBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGV2ZW4gaWYgaXQgb25seQorICAgICAgICAgICAgLy8gaGFzIG9uZSBjaGlsZCB0cmFuc2xpdGVyYXRvci4gIFRoaXMgaXMgc28gdGhhdCB0b1J1bGVzKCkgd2lsbCByZXR1cm4gdGhlIHJpZ2h0IHRoaW5nCisgICAgICAgICAgICAvLyAod2l0aG91dCBhbnkgaW5hY3RpdmUgSUQpLCBidXQgb3VyIG1haW4gSUQgc3RpbGwgY29tZXMgb3V0IGNvcnJlY3QuICBUaGF0IGlzLCBpZiB3ZQorICAgICAgICAgICAgLy8gaW5zdGFudGlhdGUgIihMb3dlcik7TGF0aW4tR3JlZWs7Iiwgd2Ugd2FudCB0aGUgcnVsZXMgdG8gY29tZSBvdXQgYXMgIjo6TGF0aW4tR3JlZWs7IgorICAgICAgICAgICAgLy8gZXZlbiB0aG91Z2ggdGhlIElEIGlzICIoTG93ZXIpO0xhdGluLUdyZWVrOyIuCisgICAgICAgICAgICB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IobGlzdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ID0gKFRyYW5zbGl0ZXJhdG9yKWxpc3QuZWxlbWVudEF0KDApOworICAgICAgICB9CisKKyAgICAgICAgdC5zZXRJRChjYW5vbklELnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZ2xvYmFsRmlsdGVyWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHQuc2V0RmlsdGVyKGdsb2JhbEZpbHRlclswXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdHJhbnNsaXRlcmF0b3IgZnJvbSBhIGJhc2ljIElELiAgVGhpcyBpcyBhbiBJRAorICAgICAqIGNvbnRhaW5pbmcgb25seSB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gc291cmNlLCB0YXJnZXQsIGFuZAorICAgICAqIHZhcmlhbnQuCisgICAgICogQHBhcmFtIGlkIGEgYmFzaWMgSUQgb2YgdGhlIGZvcm0gUy1UIG9yIFMtVC9WLgorICAgICAqIEBwYXJhbSBjYW5vbklEIGNhbm9uaWNhbCBJRCB0byBhcHBseSB0byB0aGUgcmVzdWx0LCBvcgorICAgICAqIG51bGwgdG8gbGVhdmUgdGhlIElEIHVuY2hhbmdlZAorICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIFRyYW5zbGl0ZXJhdG9yIG9yIG51bGwgaWYgdGhlIElEIGlzCisgICAgICogaW52YWxpZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgZ2V0QmFzaWNJbnN0YW5jZShTdHJpbmcgaWQsIFN0cmluZyBjYW5vbklEKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gcmVnaXN0cnkuZ2V0KGlkLCBzKTsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gYXNzZXJ0KHQ9PTApOworICAgICAgICAgICAgLy8gSW5zdGFudGlhdGUgYW4gYWxpYXMKKyAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZShzLnRvU3RyaW5nKCksIEZPUldBUkQpOworICAgICAgICB9CisgICAgICAgIGlmICh0ICE9IG51bGwgJiYgY2Fub25JRCAhPSBudWxsKSB7CisgICAgICAgICAgICB0LnNldElEKGNhbm9uSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IGNvbnN0cnVjdGVkIGZyb20KKyAgICAgKiB0aGUgZ2l2ZW4gcnVsZSBzdHJpbmcuICBUaGlzIHdpbGwgYmUgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgKiBpZiB0aGUgcnVsZSBzdHJpbmcgY29udGFpbnMgb25seSBydWxlcywgb3IgYQorICAgICAqIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IsIGlmIGl0IGNvbnRhaW5zIElEIGJsb2Nrcywgb3IgYQorICAgICAqIE51bGxUcmFuc2xpdGVyYXRvciwgaWYgaXQgY29udGFpbnMgSUQgYmxvY2tzIHdoaWNoIHBhcnNlIGFzCisgICAgICogZW1wdHkgZm9yIHRoZSBnaXZlbiBkaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBjcmVhdGVGcm9tUnVsZXMoU3RyaW5nIElELCBTdHJpbmcgcnVsZXMsIGludCBkaXIpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyID0gbmV3IFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCk7CisgICAgICAgIHBhcnNlci5wYXJzZShydWxlcywgZGlyKTsKKworICAgICAgICAvLyBOT1RFOiBUaGUgbG9naWMgaGVyZSBtYXRjaGVzIHRoYXQgaW4gVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS4KKyAgICAgICAgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAwICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0ID0gbmV3IE51bGxUcmFuc2xpdGVyYXRvcigpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAwICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICB0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKElELCAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlwYXJzZXIuZGF0YVZlY3Rvci5nZXQoMCksIG51bGwpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBpZEJsb2NrLCBubyBkYXRhIC0tIHRoaXMgaXMgYW4gYWxpYXMuICBUaGUgSUQgaGFzCisgICAgICAgICAgICAvLyBiZWVuIG11bmdlZCBmcm9tIHJldmVyc2UgaW50byBmb3J3YXJkIG1vZGUsIGlmCisgICAgICAgICAgICAvLyBuZWNlc3NhcnksIHNvIGluc3RhbnRpYXRlIHRoZSBJRCBpbiB0aGUgZm9yd2FyZAorICAgICAgICAgICAgLy8gZGlyZWN0aW9uLgorICAgICAgICAgICAgaWYgKHBhcnNlci5jb21wb3VuZEZpbHRlciAhPSBudWxsKQorICAgICAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZShwYXJzZXIuY29tcG91bmRGaWx0ZXIudG9QYXR0ZXJuKGZhbHNlKSArICI7IgorICAgICAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdCA9IGdldEluc3RhbmNlKChTdHJpbmcpcGFyc2VyLmlkQmxvY2tWZWN0b3IuZ2V0KDApKTsKKworCisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRJRChJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBWZWN0b3IgdHJhbnNsaXRlcmF0b3JzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgaW50IHBhc3NOdW1iZXIgPSAxOworCisgICAgICAgICAgICBpbnQgbGltaXQgPSBNYXRoLm1heChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCksIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRCbG9jayA9IChTdHJpbmcpcGFyc2VyLmlkQmxvY2tWZWN0b3IuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaWRCbG9jay5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRlbXAgPSBnZXRJbnN0YW5jZShpZEJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHRlbXAgaW5zdGFuY2VvZiBOdWxsVHJhbnNsaXRlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQoZ2V0SW5zdGFuY2UoaWRCbG9jaykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpIDwgcGFyc2VyLmRhdGFWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKXBhcnNlci5kYXRhVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRlcmF0b3JzLmFkZChuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoIiVQYXNzIiArIHBhc3NOdW1iZXIrKywgZGF0YSwgbnVsbCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0ZXJhdG9ycywgcGFzc051bWJlciAtIDEpOworICAgICAgICAgICAgdC5zZXRJRChJRCk7CisgICAgICAgICAgICBpZiAocGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0LnNldEZpbHRlcihwYXJzZXIuY29tcG91bmRGaWx0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHJ1bGUgc3RyaW5nIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiB0cnVlLCB0aGVuIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAgKiB3aWxsIGJlIGNvbnZlcnRlZCB0byBlc2NhcGUgZm9ybSBiYWNrc2xhc2gtJ3UnIG9yCisgICAgICogYmFja3NsYXNoLSdVJy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICByZXR1cm4gYmFzZVRvUnVsZXMoZXNjYXBlVW5wcmludGFibGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBydWxlIHN0cmluZyBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4gIFRoaXMgaXMKKyAgICAgKiBhIG5vbi1vdmVycmlkZWFibGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiB0aGF0IHN1YmNsYXNzZXMKKyAgICAgKiBtYXkgY2FsbC4gIEl0IHNpbXBseSBtdW5nZXMgdGhlIElEIGludG8gdGhlIGNvcnJlY3QgZm9ybWF0LAorICAgICAqIHRoYXQgaXMsICJmb28iID0+ICI6OmZvbyIuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIHRydWUsIHRoZW4gdW5wcmludGFibGUgY2hhcmFjdGVycworICAgICAqIHdpbGwgYmUgY29udmVydGVkIHRvIGVzY2FwZSBmb3JtIGJhY2tzbGFzaC0ndScgb3IKKyAgICAgKiBiYWNrc2xhc2gtJ1UnLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgYmFzZVRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBvZiB0b1J1bGVzIG11bmdlcyB0aGUgSUQgaW50bworICAgICAgICAvLyB0aGUgY29ycmVjdCBmb3JtYXQuICBUaGF0IGlzOiBmb28gPT4gOjpmb28KKyAgICAgICAgLy8gS0VFUCBpbiBzeW5jIHdpdGggcmJ0X3BhcnMKKyAgICAgICAgaWYgKGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZXNTb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBnZXRJRCgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlkLmxlbmd0aCgpOykgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KGlkLCBpKTsKKyAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUocnVsZXNTb3VyY2UsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChydWxlc1NvdXJjZSwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZXNTb3VyY2UuaW5zZXJ0KDAsICI6OiIpOworICAgICAgICAgICAgcnVsZXNTb3VyY2UuYXBwZW5kKElEX0RFTElNKTsKKyAgICAgICAgICAgIHJldHVybiBydWxlc1NvdXJjZS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiOjoiICsgZ2V0SUQoKSArIElEX0RFTElNOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZWxlbWVudHMgdGhhdCBtYWtlIHVwIHRoaXMgdHJhbnNsaXRlcmF0b3IuICBGb3IKKyAgICAgKiBleGFtcGxlLCBpZiB0aGUgdHJhbnNsaXRlcmF0b3IgIk5GRDtKYW1vLUxhdGluO0xhdGluLUdyZWVrIgorICAgICAqIHdlcmUgY3JlYXRlZCwgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCB3b3VsZCBiZSBhbiBhcnJheQorICAgICAqIG9mIHRoZSB0aHJlZSB0cmFuc2xpdGVyYXRvciBvYmplY3RzIHRoYXQgbWFrZSB1cCB0aGF0CisgICAgICogdHJhbnNsaXRlcmF0b3I6IFtORkQsIEphbW8tTGF0aW4sIExhdGluLUdyZWVrXS4KKyAgICAgKgorICAgICAqIDxwPklmIHRoaXMgdHJhbnNsaXRlcmF0b3IgaXMgbm90IGNvbXBvc2VkIG9mIG90aGVyCisgICAgICogdHJhbnNsaXRlcmF0b3JzLCB0aGVuIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGFuIGFycmF5IG9mCisgICAgICogbGVuZ3RoIG9uZSBjb250YWluaW5nIGEgcmVmZXJlbmNlIHRvIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBvbmUgb3IgbW9yZSB0cmFuc2xpdGVyYXRvcnMgdGhhdCBtYWtlIHVwCisgICAgICogdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvcltdIGdldEVsZW1lbnRzKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXN1bHRbXTsKKyAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNwZCA9IChDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKSB0aGlzOworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW2NwZC5nZXRDb3VudCgpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxyZXN1bHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBjcGQuZ2V0VHJhbnNsaXRlcmF0b3IoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7IHRoaXMgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBpbiB0aGUKKyAgICAgKiBpbnB1dCB0ZXh0IGJ5IHRoaXMgVHJhbnNsaXRlcmF0b3IuICBUaGlzIGluY29ycG9yYXRlcyB0aGlzCisgICAgICogb2JqZWN0J3MgY3VycmVudCBmaWx0ZXI7IGlmIHRoZSBmaWx0ZXIgaXMgY2hhbmdlZCwgdGhlIHJldHVybgorICAgICAqIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBjaGFuZ2UuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIHJldHVybnMgYW4gZW1wdHkgc2V0LiAgU29tZSBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsKKyAgICAgKiAjaGFuZGxlR2V0U291cmNlU2V0fSB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzLgorICAgICAqIEBzZWUgI2dldFRhcmdldFNldAorICAgICAqIEBzZWUgI2hhbmRsZUdldFNvdXJjZVNldAorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNvdXJjZVNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBoYW5kbGVHZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IGZpbHRlclNldDsKKyAgICAgICAgICAgIC8vIE1vc3QsIGJ1dCBub3QgYWxsIGZpbHRlcnMgd2lsbCBiZSBVbmljb2RlU2V0cy4gIE9wdGltaXplIGZvcgorICAgICAgICAgICAgLy8gdGhlIGhpZ2gtcnVubmVyIGNhc2UuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IChVbmljb2RlU2V0KSBmaWx0ZXI7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAgICAgZmlsdGVyLmFkZE1hdGNoU2V0VG8oZmlsdGVyU2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldC5yZXRhaW5BbGwoZmlsdGVyU2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdAorICAgICAqIG1heSBiZSBtb2RpZmllZCBpbiB0aGUgaW5wdXQgdGV4dCBieSB0aGlzIFRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2YgdGhpcyBvYmplY3QncyBmaWx0ZXIuICBUaGUgYmFzZSBjbGFzcworICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFN1YmNsYXNzZXMgdGhhdCB3aXNoIHRvCisgICAgICogaW1wbGVtZW50IHRoaXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRoYXQgdGhpcyB0cmFuc2xpdGVyYXRvciBtYXkKKyAgICAgKiBtb2RpZnkuICBUaGUgc2V0IG1heSBiZSBtb2RpZmllZCwgc28gc3ViY2xhc3NlcyBzaG91bGQgcmV0dXJuIGEKKyAgICAgKiBuZXdseS1jcmVhdGVkIG9iamVjdC4KKyAgICAgKiBAc2VlICNnZXRTb3VyY2VTZXQKKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBnZW5lcmF0ZWQgYXMKKyAgICAgKiByZXBsYWNlbWVudCB0ZXh0IGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBUaGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFNvbWUgc3ViY2xhc3NlcyBtYXkKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzIHJlcXVpcmluZyBzdWNoCisgICAgICogbWV0YS1pbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYXJnZXRTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyB0cmFuc2xpdGVyYXRvcidzIGludmVyc2UuICBTZWUgdGhlIGNsYXNzCisgICAgICogZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gIFRoaXMgaW1wbGVtZW50YXRpb24gc2ltcGx5IGludmVydHMKKyAgICAgKiB0aGUgdHdvIGVudGl0aWVzIGluIHRoZSBJRCBhbmQgYXR0ZW1wdHMgdG8gcmV0cmlldmUgdGhlCisgICAgICogcmVzdWx0aW5nIHRyYW5zbGl0ZXJhdG9yLiAgVGhhdCBpcywgaWYgPGNvZGU+Z2V0SUQoKTwvY29kZT4KKyAgICAgKiByZXR1cm5zICJBLUIiLCB0aGVuIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSByZXN1bHQgb2YKKyAgICAgKiA8Y29kZT5nZXRJbnN0YW5jZSgiQi1BIik8L2NvZGU+LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGF0CisgICAgICogY2FsbCBmYWlscy4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgd2l0aCBrbm93bGVkZ2Ugb2YgdGhlaXIgaW52ZXJzZSBtYXkgd2lzaCB0bworICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYW4gaW52ZXJzZSwgbm90IG5lY2Vzc2FyaWx5CisgICAgICogZXhhY3QsIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vIHN1Y2gKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBpcyByZWdpc3RlcmVkLgorICAgICAqIEBzZWUgI3JlZ2lzdGVyQ2xhc3MKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZ2V0SW52ZXJzZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKElELCBSRVZFUlNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gd2l0aCB0aGUKKyAgICAgKiBzeXN0ZW0uICBUaGlzIHN1YmNsYXNzIG11c3QgaGF2ZSBhIHB1YmxpYyBjb25zdHJ1Y3RvciB0YWtpbmcgbm8KKyAgICAgKiBhcmd1bWVudHMuICBXaGVuIHRoYXQgY29uc3RydWN0b3IgaXMgY2FsbGVkLCB0aGUgcmVzdWx0aW5nCisgICAgICogb2JqZWN0IG11c3QgcmV0dXJuIHRoZSA8Y29kZT5JRDwvY29kZT4gcGFzc2VkIHRvIHRoaXMgbWV0aG9kIGlmCisgICAgICogaXRzIDxjb2RlPmdldElEKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIHJlc3VsdCBvZiA8Y29kZT5nZXRJRCgpPC9jb2RlPiBmb3IgdGhpcworICAgICAqIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHRyYW5zQ2xhc3MgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBAc2VlICN1bnJlZ2lzdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ2xhc3MoU3RyaW5nIElELCBDbGFzcyB0cmFuc0NsYXNzLCBTdHJpbmcgZGlzcGxheU5hbWUpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KElELCB0cmFuc0NsYXNzLCB0cnVlKTsKKyAgICAgICAgaWYgKGRpc3BsYXlOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpLCBkaXNwbGF5TmFtZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIGZhY3Rvcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELiAgVGhlIGZhY3RvcnkKKyAgICAgKiBtZXRob2Qgc2hvdWxkIHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGZhY3RvcnkgdGhlIGZhY3Rvcnkgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShTdHJpbmcgSUQsIEZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICByZWdpc3RyeS5wdXQoSUQsIGZhY3RvcnksIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgVHJhbnNsaXRlcmF0b3Igb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELgorICAgICAqIEBwYXJhbSB0cmFucyB0aGUgVHJhbnNsaXRlcmF0b3Igb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KHRyYW5zLmdldElEKCksIHRyYW5zLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIFRyYW5zbGl0ZXJhdG9yIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBJRC4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gdHJhbnMgdGhlIFRyYW5zbGl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RyeS5wdXQodHJhbnMuZ2V0SUQoKSwgdHJhbnMsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIElEIGFzIGFuIGFsaWFzIG9mIGFub3RoZXIgSUQuICBJbnN0YW50aWF0aW5nCisgICAgICogYWxpYXMgSUQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0IGFzIGluc3RhbnRpYXRpbmcgdGhlIG9yaWdpbmFsIElELgorICAgICAqIFRoaXMgaXMgZ2VuZXJhbGx5IHVzZWQgdG8gY3JlYXRlIHNob3J0IGFsaWFzZXMgb2YgY29tcG91bmQgSURzLgorICAgICAqIEBwYXJhbSBhbGlhc0lEIFRoZSBuZXcgSUQgYmVpbmcgcmVnaXN0ZXJlZC4KKyAgICAgKiBAcGFyYW0gcmVhbElEIFRoZSBleGlzdGluZyBJRCB0aGF0IHRoZSBuZXcgSUQgc2hvdWxkIGJlIGFuIGFsaWFzIG9mLgorICAgICAqIEBkcmFmdCBJQ1UgMy40LjEKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJBbGlhcyhTdHJpbmcgYWxpYXNJRCwgU3RyaW5nIHJlYWxJRCkgeworICAgICAgICByZWdpc3RyeS5wdXQoYWxpYXNJRCwgcmVhbElELCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciB0d28gdGFyZ2V0cyBhcyBiZWluZyBpbnZlcnNlcyBvZiBvbmUgYW5vdGhlci4gIEZvcgorICAgICAqIGV4YW1wbGUsIGNhbGxpbmcgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTkZDIiwgIk5GRCIsIHRydWUpIGNhdXNlcworICAgICAqIFRyYW5zbGl0ZXJhdG9yIHRvIGZvcm0gdGhlIGZvbGxvd2luZyBpbnZlcnNlIHJlbGF0aW9uc2hpcHM6CisgICAgICoKKyAgICAgKiA8cHJlPk5GQyA9PiBORkQKKyAgICAgKiBBbnktTkZDID0+IEFueS1ORkQKKyAgICAgKiBORkQgPT4gTkZDCisgICAgICogQW55LU5GRCA9PiBBbnktTkZDPC9wcmU+CisgICAgICoKKyAgICAgKiAoV2l0aG91dCB0aGUgc3BlY2lhbCBpbnZlcnNlIHJlZ2lzdHJhdGlvbiwgdGhlIGludmVyc2Ugb2YgTkZDCisgICAgICogd291bGQgYmUgTkZDLUFueS4pICBOb3RlIHRoYXQgTkZEIGlzIHNob3J0aGFuZCBmb3IgQW55LU5GRCwgYnV0CisgICAgICogdGhhdCB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiAiQW55LSIgaXMgcHJlc2VydmVkLgorICAgICAqCisgICAgICogPHA+VGhlIHJlbGF0aW9uc2hpcCBpcyBzeW1tZXRyaWNhbDsgcmVnaXN0ZXJpbmcgKGEsIGIpIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZWdpc3RlcmluZyAoYiwgYSkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsZXZhbnQgSURzIG11c3Qgc3RpbGwgYmUgcmVnaXN0ZXJlZCBzZXBhcmF0ZWx5IGFzCisgICAgICogZmFjdG9yaWVzIG9yIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiA8cD5Pbmx5IHRoZSB0YXJnZXRzIGFyZSBzcGVjaWZpZWQuICBTcGVjaWFsIGludmVyc2VzIGFsd2F5cworICAgICAqIGhhdmUgdGhlIGZvcm0gQW55LVRhcmdldDEgPD0+IEFueS1UYXJnZXQyLiAgVGhlIHRhcmdldCBzaG91bGQKKyAgICAgKiBoYXZlIGNhbm9uaWNhbCBjYXNpbmcgKHRoZSBjYXNpbmcgZGVzaXJlZCB0byBiZSBwcm9kdWNlZCB3aGVuCisgICAgICogYW4gaW52ZXJzZSBpcyBmb3JtZWQpIGFuZCBzaG91bGQgY29udGFpbiBubyB3aGl0ZXNwYWNlIG9yIG90aGVyCisgICAgICogZXh0cmFuZW91cyBjaGFyYWN0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IGFnYWluc3Qgd2hpY2ggdG8gcmVnaXN0ZXIgdGhlIGludmVyc2UKKyAgICAgKiBAcGFyYW0gaW52ZXJzZVRhcmdldCB0aGUgaW52ZXJzZSBvZiB0YXJnZXQsIHRoYXQgaXMKKyAgICAgKiBBbnktdGFyZ2V0LmdldEludmVyc2UoKSA9PiBBbnktaW52ZXJzZVRhcmdldAorICAgICAqIEBwYXJhbSBiaWRpcmVjdGlvbmFsIGlmIHRydWUsIHJlZ2lzdGVyIHRoZSByZXZlcnNlIHJlbGF0aW9uCisgICAgICogYXMgd2VsbCwgdGhhdCBpcywgQW55LWludmVyc2VUYXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS10YXJnZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclNwZWNpYWxJbnZlcnNlKFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaW52ZXJzZVRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYmlkaXJlY3Rpb25hbCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UodGFyZ2V0LCBpbnZlcnNlVGFyZ2V0LCBiaWRpcmVjdGlvbmFsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVycyBhIHRyYW5zbGl0ZXJhdG9yIG9yIGNsYXNzLiAgVGhpcyBtYXkgYmUgZWl0aGVyCisgICAgICogYSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3Igb3IgYSB1c2VyIHRyYW5zbGl0ZXJhdG9yIG9yIGNsYXNzLgorICAgICAqCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGUgdHJhbnNsaXRlcmF0b3Igb3IgY2xhc3MKKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXIoU3RyaW5nIElEKSB7CisgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUucmVtb3ZlKG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICAgICAgcmVnaXN0cnkucmVtb3ZlKElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHByb2dyYW1tYXRpYyBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdHMuICBUaGlzIGluY2x1ZGVzIGJvdGggc3lzdGVtCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGFuZCB1c2VyIHRyYW5zbGl0ZXJhdG9ycyByZWdpc3RlcmVkIHVzaW5nCisgICAgICogPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4gIFRoZSBlbnVtZXJhdGVkIG5hbWVzIG1heSBiZQorICAgICAqIHBhc3NlZCB0byA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IG92ZXIgPGNvZGU+U3RyaW5nPC9jb2RlPiBvYmplY3RzCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFbnVtZXJhdGlvbiBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHNvdXJjZSBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgU291cmNlIG5hbWVzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiBnZXRBdmFpbGFibGVUYXJnZXRzKCkgdG8gb2J0YWluIGF2YWlsYWJsZSB0YXJnZXRzIGZvciBlYWNoCisgICAgICogc291cmNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlU291cmNlcygpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHRhcmdldCBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmluZyBhIGdpdmVuIHNvdXJjZSBuYW1lLiAgVGFyZ2V0IG5hbWVzIG1heQorICAgICAqIGJlIHBhc3NlZCB0byBnZXRBdmFpbGFibGVWYXJpYW50cygpIHRvIG9idGFpbiBhdmFpbGFibGUKKyAgICAgKiB2YXJpYW50cyBmb3IgZWFjaCBzb3VyY2UgYW5kIHRhcmdldCBwYWlyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVGFyZ2V0cyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSB2YXJpYW50IG5hbWVzIG9mIHJlZ2lzdGVyZWQKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMgaGF2aW5nIGEgZ2l2ZW4gc291cmNlIG5hbWUgYW5kIHRhcmdldCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVYID0gImluZGV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkJfUlVMRV9CQVNFRF9JRFMgPSJSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcklEcyI7CisgICAgc3RhdGljIHsKKyAgICAgICAgcmVnaXN0cnkgPSBuZXcgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSgpOworCisgICAgICAgIC8vIFRoZSBkaXNwbGF5IG5hbWUgY2FjaGUgc3RhcnRzIG91dCBlbXB0eQorICAgICAgICBkaXNwbGF5TmFtZUNhY2hlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGNvZGUgcGFyc2VzIHRoZSBpbmRleCB0YWJsZSBsb2NhdGVkIGluCisgICAgICAgICAqIGljdS9kYXRhL3RyYW5zbGl0L3Jvb3QudHh0LiAgVGhlIGluZGV4IGlzIGFuIG4geCA0IHRhYmxlCisgICAgICAgICAqIHRoYXQgZm9sbG93cyB0aGlzIGZvcm1hdDoKKyAgICAgICAgICogIDxpZD57CisgICAgICAgICAqICAgICAgZmlsZXsKKyAgICAgICAgICogICAgICAgICAgcmVzb3VyY2V7IjxyZXNvdXJjZT4ifQorICAgICAgICAgKiAgICAgICAgICBkaXJlY3Rpb257IjxkaXJlY3Rpb24+In0KKyAgICAgICAgICogICAgICB9CisgICAgICAgICAqICB9CisgICAgICAgICAqICA8aWQ+eworICAgICAgICAgKiAgICAgIGludGVybmFseworICAgICAgICAgKiAgICAgICAgICByZXNvdXJjZXsiPHJlc291cmNlPiJ9CisgICAgICAgICAqICAgICAgICAgIGRpcmVjdGlvbnsiPGRpcmVjdGlvbiJ9CisgICAgICAgICAqICAgICAgIH0KKyAgICAgICAgICogIH0KKyAgICAgICAgICogIDxpZD57CisgICAgICAgICAqICAgICAgYWxpYXN7IjxnZXRJbnN0YW5jZUFyZyJ9CisgICAgICAgICAqICB9CisgICAgICAgICAqIDxpZD4gaXMgdGhlIElEIG9mIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgYmVpbmcgZGVmaW5lZC4gIFRoZXNlCisgICAgICAgICAqIGFyZSBwdWJsaWMgSURzIGVudW1lcmF0ZWQgYnkgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCksCisgICAgICAgICAqIHVubGVzcyB0aGUgc2Vjb25kIGZpZWxkIGlzICJpbnRlcm5hbCIuCisgICAgICAgICAqIAorICAgICAgICAgKiA8cmVzb3VyY2U+IGlzIGEgUmVzb3VyY2VSZWFkZXIgcmVzb3VyY2UgbmFtZS4gIEN1cnJlbnRseSB0aGVzZSByZWZlcgorICAgICAgICAgKiB0byBmaWxlIG5hbWVzIHVuZGVyIGNvbS9pYm0vdGV4dC9yZXNvdXJjZXMuICBUaGlzIHN0cmluZyBpcyBwYXNzZWQKKyAgICAgICAgICogZGlyZWN0bHkgdG8gUmVzb3VyY2VSZWFkZXIsIHRvZ2V0aGVyIHdpdGggPGVuY29kaW5nPi4KKyAgICAgICAgICogCisgICAgICAgICAqIDxkaXJlY3Rpb24+IGlzIGVpdGhlciAiRk9SV0FSRCIgb3IgIlJFVkVSU0UiLgorICAgICAgICAgKiAKKyAgICAgICAgICogPGdldEluc3RhbmNlQXJnPiBpcyBhIHN0cmluZyB0byBiZSBwYXNzZWQgZGlyZWN0bHkgdG8KKyAgICAgICAgICogVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoKS4gIFRoZSByZXR1cm5lZCBUcmFuc2xpdGVyYXRvciBvYmplY3QKKyAgICAgICAgICogdGhlbiBoYXMgaXRzIElEIGNoYW5nZWQgdG8gPGlkPiBhbmQgaXMgcmV0dXJuZWQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBleHRyYSBibGFuayBmaWVsZCBvbiAiYWxpYXMiIGxpbmVzIGlzIHRvIG1ha2UgdGhlIGFycmF5IHNxdWFyZS4KKyAgICAgICAgICovCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSwgdHJhbnNJRHMsIGNvbEJ1bmQ7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSwgSU5ERVgpOworICAgICAgICB0cmFuc0lEcyA9IGJ1bmRsZS5nZXQoUkJfUlVMRV9CQVNFRF9JRFMpOworCisgICAgICAgIGludCByb3csIG1heFJvd3M7CisgICAgICAgIG1heFJvd3MgPSB0cmFuc0lEcy5nZXRTaXplKCk7CisgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgbWF4Um93czsgcm93KyspIHsKKyAgICAgICAgICAgIGNvbEJ1bmQgPSB0cmFuc0lEcy5nZXQocm93KTsKKyAgICAgICAgICAgIFN0cmluZyBJRCA9IGNvbEJ1bmQuZ2V0S2V5KCk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBjb2xCdW5kLmdldCgwKTsKKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gcmVzLmdldEtleSgpOworICAgICAgICAgICAgaWYgKHR5cGUuZXF1YWxzKCJmaWxlIikgfHwgdHlwZS5lcXVhbHMoImludGVybmFsIikpIHsKKyAgICAgICAgICAgICAgICAvLyBSZXN0IG9mIGxpbmUgaXMgPHJlc291cmNlPjo8ZW5jb2Rpbmc+OjxkaXJlY3Rpb24+CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgcG9zICAgICAgIGNvbG9uICAgICAgYzIKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzU3RyaW5nID0gcmVzLmdldFN0cmluZygicmVzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICBpbnQgZGlyOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXJlY3Rpb24gPSByZXMuZ2V0U3RyaW5nKCJkaXJlY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbi5jaGFyQXQoMCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgICAgICAgICAgICAgZGlyID0gRk9SV0FSRDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIGRpciA9IFJFVkVSU0U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBwYXJzZSBkaXJlY3Rpb246ICIgKyBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZWdpc3RyeS5wdXQoSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc1N0cmluZywgLy8gcmVzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVURi0xNiIsIC8vIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXR5cGUuZXF1YWxzKCJpbnRlcm5hbCIpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5lcXVhbHMoImFsaWFzIikpIHsKKyAgICAgICAgICAgICAgICAvLydhbGlhcyc7IHJvd1syXT1jcmVhdGVJbnN0YW5jZSBhcmd1bWVudAorICAgICAgICAgICAgICAgIFN0cmluZyByZXNTdHJpbmcgPSByZXMuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgcmVnaXN0cnkucHV0KElELCByZXNTdHJpbmcsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmtub3duIHR5cGUKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVW5rbm93IHR5cGU6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlZ2lzdGVyU3BlY2lhbEludmVyc2UoTnVsbFRyYW5zbGl0ZXJhdG9yLlNIT1JUX0lELCBOdWxsVHJhbnNsaXRlcmF0b3IuU0hPUlRfSUQsIGZhbHNlKTsKKworICAgICAgICAvLyBSZWdpc3RlciBub24tcnVsZS1iYXNlZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgcmVnaXN0ZXJDbGFzcyhOdWxsVHJhbnNsaXRlcmF0b3IuX0lELAorICAgICAgICAgICAgICAgICAgICAgIE51bGxUcmFuc2xpdGVyYXRvci5jbGFzcywgbnVsbCk7CisgICAgICAgIFJlbW92ZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIEVzY2FwZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBCcmVha1RyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7IC8vIGRvIHRoaXMgbGFzdCEKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZmFjdG9yeSBpbnRlcmZhY2UgZm9yIHRyYW5zbGl0ZXJhdG9ycy4gIFRyYW5zbGl0ZXJhdG9yCisgICAgICogc3ViY2xhc3NlcyBjYW4gcmVnaXN0ZXIgZmFjdG9yeSBvYmplY3RzIGZvciBJRHMgdXNpbmcgdGhlCisgICAgICogcmVnaXN0ZXJGYWN0b3J5KCkgbWV0aG9kIG9mIFRyYW5zbGl0ZXJhdG9yLiAgV2hlbiBpbnZva2VkLCB0aGUKKyAgICAgKiBmYWN0b3J5IG9iamVjdCB3aWxsIGJlIHBhc3NlZCB0aGUgSUQgYmVpbmcgaW5zdGFudGlhdGVkLiAgVGhpcworICAgICAqIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlZ2lzdGVyIG9uZSBmYWN0b3J5IG1ldGhvZCB0byBtb3JlIHRoYW4KKyAgICAgKiBvbmUgSUQsIG9yIGZvciBhIGZhY3RvcnkgbWV0aG9kIHRvIHBhcmFtZXRlcml6ZSBpdHMgcmVzdWx0CisgICAgICogYmFzZWQgb24gdGhlIHZhcmlhbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRmFjdG9yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSB0cmFuc2xpdGVyYXRvciBmb3IgdGhlIGdpdmVuIElELgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmZDE3NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvcklEUGFyc2VyLmphdmEKQEAgLTAsMCArMSw3NzIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYXNlSW5zZW5zaXRpdmVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBQYXJzaW5nIGNvbXBvbmVudCBmb3IgdHJhbnNsaXRlcmF0b3IgSURzLiAgVGhpcyBjbGFzcyBjb250YWlucyBvbmx5CisgKiBzdGF0aWMgbWVtYmVyczsgaXQgY2Fubm90IGJlIGluc3RhbnRpYXRlZC4gIE1ldGhvZHMgaW4gdGhpcyBjbGFzcworICogcGFyc2UgdmFyaW91cyBJRCBmb3JtYXRzLCBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZzoKKyAqCisgKiBBIGJhc2ljIElELCB3aGljaCBjb250YWlucyBzb3VyY2UsIHRhcmdldCwgYW5kIHZhcmlhbnQsIGJ1dCBubworICogZmlsdGVyIGFuZCBubyBleHBsaWNpdCBpbnZlcnNlLiAgRXhhbXBsZXMgaW5jbHVkZQorICogIkxhdGluLUdyZWVrL1VOR0VHTiIgYW5kICJOdWxsIi4KKyAqCisgKiBBIHNpbmdsZSBJRCwgd2hpY2ggaXMgYSBiYXNpYyBJRCBwbHVzIG9wdGlvbmFsIGZpbHRlciBhbmQgb3B0aW9uYWwKKyAqIGV4cGxpY2l0IGludmVyc2UuICBFeGFtcGxlcyBpbmNsdWRlICJbYS16QS1aXSBMYXRpbi1HcmVlayIgYW5kCisgKiAiTG93ZXIgKFVwcGVyKSIuCisgKgorICogQSBjb21wb3VuZCBJRCwgd2hpY2ggaXMgYSBzZXF1ZW5jZSBvZiBvbmUgb3IgbW9yZSBzaW5nbGUgSURzLAorICogc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMsIHdpdGggb3B0aW9uYWwgZm9yd2FyZCBhbmQgcmV2ZXJzZSBnbG9iYWwKKyAqIGZpbHRlcnMuICBUaGUgZ2xvYmFsIGZpbHRlcnMgYXJlIFVuaWNvZGVTZXQgcGF0dGVybnMgcHJlcGVuZGVkIG9yCisgKiBhcHBlbmRlZCB0byB0aGUgSURzLCBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucy4gIEFuIGFwcGVuZGVkIGZpbHRlcgorICogbXVzdCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNlcyBhbmQgYXBwbGllcyBpbiB0aGUgcmV2ZXJzZQorICogZGlyZWN0aW9uLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVHJhbnNsaXRlcmF0b3JJRFBhcnNlciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElEX0RFTElNID0gJzsnOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBUQVJHRVRfU0VQID0gJy0nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBWQVJJQU5UX1NFUCA9ICcvJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgT1BFTl9SRVYgPSAnKCc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENMT1NFX1JFViA9ICcpJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBTlkgPSAiQW55IjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGT1JXQVJEID0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVZFUlNFID0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBTUEVDSUFMX0lOVkVSU0VTID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgLyoqCisgICAgICogQSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgcGFyc2VkIGRhdGEgb2YgYSBmaWx0ZXJlZCBJRCwgdGhhdAorICAgICAqIGlzLCBhIGJhc2ljIElEIG9wdGlvbmFsbHkgd2l0aCBhIGZpbHRlci4KKyAgICAgKgorICAgICAqICdzb3VyY2UnIGFuZCAndGFyZ2V0JyB3aWxsIGFsd2F5cyBiZSBub24tbnVsbC4gIFRoZSAndmFyaWFudCcKKyAgICAgKiB3aWxsIGJlIG5vbi1udWxsIG9ubHkgaWYgYSBub24tZW1wdHkgdmFyaWFudCB3YXMgcGFyc2VkLgorICAgICAqCisgICAgICogJ3Nhd1NvdXJjZScgaXMgdHJ1ZSBpZiB0aGVyZSB3YXMgYW4gZXhwbGljaXQgc291cmNlIGluIHRoZQorICAgICAqIHBhcnNlZCBpZC4gIElmIHRoZXJlIHdhcyBubyBleHBsaWNpdCBzb3VyY2UsIHRoZW4gYW4gaW1wbGllZAorICAgICAqIHNvdXJjZSBvZiBBTlkgaXMgcmV0dXJuZWQgYW5kICdzYXdTb3VyY2UnIGlzIHNldCB0byBmYWxzZS4KKyAgICAgKiAKKyAgICAgKiAnZmlsdGVyJyBpcyB0aGUgcGFyc2VkIGZpbHRlciBwYXR0ZXJuLCBvciBudWxsIGlmIHRoZXJlIHdhcyBubworICAgICAqIGZpbHRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTcGVjcyB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgc291cmNlOyAvLyBub3QgbnVsbAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRhcmdldDsgLy8gbm90IG51bGwKKyAgICAgICAgcHVibGljIFN0cmluZyB2YXJpYW50OyAvLyBtYXkgYmUgbnVsbAorICAgICAgICBwdWJsaWMgU3RyaW5nIGZpbHRlcjsgLy8gbWF5IGJlIG51bGwKKyAgICAgICAgcHVibGljIGJvb2xlYW4gc2F3U291cmNlOworICAgICAgICBTcGVjcyhTdHJpbmcgcywgU3RyaW5nIHQsIFN0cmluZyB2LCBib29sZWFuIHNhd1MsIFN0cmluZyBmKSB7CisgICAgICAgICAgICBzb3VyY2UgPSBzOworICAgICAgICAgICAgdGFyZ2V0ID0gdDsKKyAgICAgICAgICAgIHZhcmlhbnQgPSB2OworICAgICAgICAgICAgc2F3U291cmNlID0gc2F3UzsKKyAgICAgICAgICAgIGZpbHRlciA9IGY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBjYW5vbmljYWxpemVkIGRhdGEgb2YgYSBmaWx0ZXJlZCBJRCwKKyAgICAgKiB0aGF0IGlzLCBhIGJhc2ljIElEIG9wdGlvbmFsbHkgd2l0aCBhIGZpbHRlci4KKyAgICAgKgorICAgICAqICdjYW5vbklEJyBpcyBhbHdheXMgbm9uLW51bGwuICBJdCBtYXkgYmUgdGhlIGVtcHR5IHN0cmluZyAiIi4KKyAgICAgKiBJdCBpcyB0aGUgaWQgdGhhdCBzaG91bGQgYmUgYXNzaWduZWQgdG8gdGhlIGNyZWF0ZWQKKyAgICAgKiB0cmFuc2xpdGVyYXRvci4gIEl0IF9jYW5ub3RfIGJlIGluc3RhbnRpYXRlZCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqICdiYXNpY0lEJyBpcyBhbHdheXMgbm9uLW51bGwgYW5kIG5vbi1lbXB0eS4gIEl0IGlzIGFsd2F5cyBvZgorICAgICAqIHRoZSBmb3JtIFMtVCBvciBTLVQvVi4gIEl0IGlzIGRlc2lnbmVkIHRvIGJlIGZlZCB0byBsb3ctbGV2ZWwKKyAgICAgKiBpbnN0YW50aWF0aW9uIGNvZGUgdGhhdCBvbmx5IHVuZGVyc3RhbmRzIHRoZXNlIHR3byBmb3JtYXRzLgorICAgICAqCisgICAgICogJ2ZpbHRlcicgbWF5IGJlIG51bGwsIGlmIHRoZXJlIGlzIG5vbmUsIG9yIG5vbi1udWxsIGFuZAorICAgICAqIG5vbi1lbXB0eS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU2luZ2xlSUQgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGNhbm9uSUQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgYmFzaWNJRDsKKyAgICAgICAgcHVibGljIFN0cmluZyBmaWx0ZXI7CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYiwgU3RyaW5nIGYpIHsKKyAgICAgICAgICAgIGNhbm9uSUQgPSBjOworICAgICAgICAgICAgYmFzaWNJRCA9IGI7CisgICAgICAgICAgICBmaWx0ZXIgPSBmOworICAgICAgICB9CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYikgeworICAgICAgICAgICAgdGhpcyhjLCBiLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICBpZiAoYmFzaWNJRCA9PSBudWxsIHx8IGJhc2ljSUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRCYXNpY0luc3RhbmNlKCJBbnktTnVsbCIsIGNhbm9uSUQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QmFzaWNJbnN0YW5jZShiYXNpY0lELCBjYW5vbklEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoZmlsdGVyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGZpbHRlciBJRCwgdGhhdCBpcywgYW4gSUQgb2YgdGhlIGdlbmVyYWwgZm9ybQorICAgICAqICJbZjFdIHMxLXQxL3YxIiwgd2l0aCB0aGUgZmlsdGVycyBvcHRpb25hbCwgYW5kIHRoZSB2YXJpYW50cyBvcHRpb25hbC4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gb2YKKyAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlLiAgT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRCBvYmplY3Qgb3IgbnVsbCBpZiB0aGUgcGFyc2UgZmFpbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlRmlsdGVySUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisgICAgICAgIFNwZWNzIHNwZWNzID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgaWYgKHNwZWNzID09IG51bGwpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3NlbWJsZSByZXR1cm4gcmVzdWx0cworICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3MsIEZPUldBUkQpOworICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3MuZmlsdGVyOworICAgICAgICByZXR1cm4gc2luZ2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc2luZ2xlIElELCB0aGF0IGlzLCBhbiBJRCBvZiB0aGUgZ2VuZXJhbCBmb3JtCisgICAgICogIltmMV0gczEtdDEvdjEgKFtmMl0gczItdDMvdjIpIiwgd2l0aCB0aGUgcGFyZW50aGVzaXplZCBlbGVtZW50CisgICAgICogb3B0aW9uYWwsIHRoZSBmaWx0ZXJzIG9wdGlvbmFsLCBhbmQgdGhlIHZhcmlhbnRzIG9wdGlvbmFsLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuICBPbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlcgorICAgICAqIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uLiAgSWYgdGhlIGRpcmVjdGlvbiBpcyBSRVZFUlNFIHRoZW4gdGhlCisgICAgICogU2luZ2xlSUQgaXMgY29uc3RydWN0ZWQgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb2JqZWN0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlU2luZ2xlSUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisKKyAgICAgICAgLy8gVGhlIElEIHdpbGwgYmUgb2YgdGhlIGZvcm0gQSwgQSgpLCBBKEIpLCBvciAoQiksIHdoZXJlCisgICAgICAgIC8vIEEgYW5kIEIgYXJlIGZpbHRlciBJRHMuCisgICAgICAgIFNwZWNzIHNwZWNzQSA9IG51bGw7CisgICAgICAgIFNwZWNzIHNwZWNzQiA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gc2F3UGFyZW4gPSBmYWxzZTsKKworICAgICAgICAvLyBPbiB0aGUgZmlyc3QgcGFzcywgbG9vayBmb3IgKEIpIG9yICgpLiAgSWYgdGhpcyBmYWlscywgdGhlbgorICAgICAgICAvLyBvbiB0aGUgc2Vjb25kIHBhc3MsIGxvb2sgZm9yIEEsIEEoQiksIG9yIEEoKS4KKyAgICAgICAgZm9yIChpbnQgcGFzcz0xOyBwYXNzPD0yOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGlmIChwYXNzID09IDIpIHsKKyAgICAgICAgICAgICAgICBzcGVjc0EgPSBwYXJzZUZpbHRlcklEKGlkLCBwb3MsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHNhd1BhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIENMT1NFX1JFVikpIHsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3NCID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBjbG9zZSB3aXRoIGEgJyknCisgICAgICAgICAgICAgICAgICAgIGlmIChzcGVjc0IgPT0gbnVsbCB8fCAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc2VtYmxlIHJldHVybiByZXN1bHRzCisgICAgICAgIFNpbmdsZUlEIHNpbmdsZTsKKyAgICAgICAgaWYgKHNhd1BhcmVuKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBzaW5nbGUuY2Fub25JRCA9IHNpbmdsZS5jYW5vbklEICsKKyAgICAgICAgICAgICAgICAgICAgT1BFTl9SRVYgKyBzcGVjc1RvSUQoc3BlY3NCLCBGT1JXQVJEKS5jYW5vbklEICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3NBLmZpbHRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0IsIEZPUldBUkQpOworICAgICAgICAgICAgICAgIHNpbmdsZS5jYW5vbklEID0gc2luZ2xlLmNhbm9uSUQgKworICAgICAgICAgICAgICAgICAgICBPUEVOX1JFViArIHNwZWNzVG9JRChzcGVjc0EsIEZPUldBUkQpLmNhbm9uSUQgKyBDTE9TRV9SRVY7CisgICAgICAgICAgICAgICAgaWYgKHNwZWNzQiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0IuZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGFzc2VydChzcGVjc0EgIT0gbnVsbCk7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2luZ2xlID0gc3BlY3NUb1NwZWNpYWxJbnZlcnNlKHNwZWNzQSk7CisgICAgICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0EsIFJFVkVSU0UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0EuZmlsdGVyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGdsb2JhbCBmaWx0ZXIgb2YgdGhlIGZvcm0gIltmXSIgb3IgIihbZl0pIiwgZGVwZW5kaW5nCisgICAgICogb24gJ3dpdGhQYXJlbnMnLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgdGhlIHBvc2l0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIHdpdGhQYXJlbnMgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGVudHJ5LCBpZgorICAgICAqIHdpdGhQYXJlbnNbMF0gaXMgMCwgdGhlbiBwYXJlbnMgYXJlIGRpc2FsbG93ZWQuICBJZiBpdCBpcyAxLAorICAgICAqIHRoZW4gcGFyZW5zIGFyZSByZXF1aXJlcy4gIElmIGl0IGlzIC0xLCB0aGVuIHBhcmVucyBhcmUKKyAgICAgKiBvcHRpb25hbCwgYW5kIHRoZSByZXR1cm4gcmVzdWx0IHdpbGwgYmUgc2V0IHRvIDAgb3IgMS4KKyAgICAgKiBAcGFyYW0gY2Fub25JRCBPVVRQVVQgcGFyYW1ldGVyLiAgVGhlIHBhdHRlcm4gZm9yIHRoZSBmaWx0ZXIKKyAgICAgKiBhZGRlZCB0byB0aGUgY2Fub25JRCwgZWl0aGVyIGF0IHRoZSBlbmQsIGlmIGRpciBpcyBGT1JXQVJELCBvcgorICAgICAqIGF0IHRoZSBzdGFydCwgaWYgZGlyIGlzIFJFVkVSU0UuICBUaGUgcGF0dGVybiB3aWxsIGJlIGVuY2xvc2VkCisgICAgICogaW4gcGFyZW50aGVzZXMgaWYgYXBwcm9wcmlhdGUsIGFuZCB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggYW4KKyAgICAgKiBJRF9ERUxJTSBjaGFyYWN0ZXIuICBNYXkgYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGEgVW5pY29kZVNldCBvYmplY3Qgb3IgbnVsbC4gIEEgbm9uLW51bGwgcmVzdWx0cworICAgICAqIGluZGljYXRlcyBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZmlsdGVyCisgICAgICogYXBwbGllcyB0byB0aGUgZ2l2ZW4gZGlyZWN0aW9uLiAgVGhlIGNhbGxlciBzaG91bGQgZGlzY2FyZCBpdAorICAgICAqIGlmIHdpdGhQYXJlbnMgIT0gKGRpciA9PSBSRVZFUlNFKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgcGFyc2VHbG9iYWxGaWx0ZXIoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHdpdGhQYXJlbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklEKSB7CisgICAgICAgIFVuaWNvZGVTZXQgZmlsdGVyID0gbnVsbDsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworCisgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IC0xKSB7CisgICAgICAgICAgICB3aXRoUGFyZW5zWzBdID0gVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgT1BFTl9SRVYpID8gMSA6IDA7CisgICAgICAgIH0gZWxzZSBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKGlkLCBwb3MpOworCisgICAgICAgIGlmIChVbmljb2RlU2V0LnJlc2VtYmxlc1BhdHRlcm4oaWQsIHBvc1swXSkpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvc1swXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlciA9IG5ldyBVbmljb2RlU2V0KGlkLCBwcG9zLCBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gaWQuc3Vic3RyaW5nKHBvc1swXSwgcHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHBvc1swXSA9IHBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAgICAgaWYgKHdpdGhQYXJlbnNbMF0gPT0gMSAmJiAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24sIGFwcGVuZCB0aGUgcGF0dGVybiB0byB0aGUKKyAgICAgICAgICAgIC8vIGNhbm9uSUQuICBJbiB0aGUgcmV2ZXJzZSwgaW5zZXJ0IGl0IGF0IHplcm8sIGFuZCBpbnZlcnQKKyAgICAgICAgICAgIC8vIHRoZSBwcmVzZW5jZSBvZiBwYXJlbnMgKCJBIiA8LT4gIihBKSIpLgorICAgICAgICAgICAgaWYgKGNhbm9uSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gU3RyaW5nLnZhbHVlT2YoT1BFTl9SRVYpICsgcGF0dGVybiArIENMT1NFX1JFVjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYW5vbklELmFwcGVuZChwYXR0ZXJuICsgSURfREVMSU0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBTdHJpbmcudmFsdWVPZihPUEVOX1JFVikgKyBwYXR0ZXJuICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhbm9uSUQuaW5zZXJ0KDAsIHBhdHRlcm4gKyBJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGNvbXBvdW5kIElELCBjb25zaXN0aW5nIG9mIGFuIG9wdGlvbmFsIGZvcndhcmQgZ2xvYmFsCisgICAgICogZmlsdGVyLCBhIHNlcGFyYXRvciwgb25lIG9yIG1vcmUgc2luZ2xlIElEcyBkZWxpbWl0ZWQgYnkKKyAgICAgKiBzZXBhcmF0b3JzLCBhbiBhbiBvcHRpb25hbCByZXZlcnNlIGdsb2JhbCBmaWx0ZXIuICBUaGUKKyAgICAgKiBzZXBhcmF0b3IgaXMgYSBzZW1pY29sb24uICBUaGUgZ2xvYmFsIGZpbHRlcnMgYXJlIFVuaWNvZGVTZXQKKyAgICAgKiBwYXR0ZXJucy4gIFRoZSByZXZlcnNlIGdsb2JhbCBmaWx0ZXIgbXVzdCBiZSBlbmNsb3NlZCBpbgorICAgICAqIHBhcmVudGhlc2VzLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIGNhbm9uSUQgT1VUUFVUIHBhcmFtZXRlciB0aGF0IHJlY2VpdmVzIHRoZSBjYW5vbmljYWwgSUQsCisgICAgICogY29uc2lzdGluZyBvZiBjYW5vbmljYWwgSURzIGZvciBhbGwgZWxlbWVudHMsIGFzIHJldHVybmVkIGJ5CisgICAgICogcGFyc2VTaW5nbGVJRCgpLCBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucy4gIFByZXZpb3VzIGNvbnRlbnRzCisgICAgICogYXJlIGRpc2NhcmRlZC4KKyAgICAgKiBAcGFyYW0gbGlzdCBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBsaXN0IG9mIFNpbmdsZUlECisgICAgICogb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBJRHMuICBQcmV2aW91cyBjb250ZW50cyBhcmUKKyAgICAgKiBkaXNjYXJkZWQuCisgICAgICogQHBhcmFtIGdsb2JhbEZpbHRlciBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBwb2ludGVyIHRvCisgICAgICogYSBuZXdseSBjcmVhdGVkIGdsb2JhbCBmaWx0ZXIgZm9yIHRoaXMgSUQgaW4gdGhpcyBkaXJlY3Rpb24sIG9yCisgICAgICogbnVsbCBpZiB0aGVyZSBpcyBub25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyc2Ugc3VjY2VlZHMsIHRoYXQgaXMsIGlmIHRoZSBlbnRpcmUKKyAgICAgKiBpZCBpcyBjb25zdW1lZCB3aXRob3V0IHN5bnRheCBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcGFyc2VDb21wb3VuZElEKFN0cmluZyBpZCwgaW50IGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gZ2xvYmFsRmlsdGVyKSB7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbXSB7IDAgfTsKKyAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbMV07CisgICAgICAgIGxpc3QucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgVW5pY29kZVNldCBmaWx0ZXI7CisgICAgICAgIGdsb2JhbEZpbHRlclswXSA9IG51bGw7CisgICAgICAgIGNhbm9uSUQuc2V0TGVuZ3RoKDApOworCisgICAgICAgIC8vIFBhcnNlIGxlYWRpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55CisgICAgICAgIHdpdGhQYXJlbnNbMF0gPSAwOyAvLyBwYXJlbnMgZGlzYWxsb3dlZAorICAgICAgICBmaWx0ZXIgPSBwYXJzZUdsb2JhbEZpbHRlcihpZCwgcG9zLCBkaXIsIHdpdGhQYXJlbnMsIGNhbm9uSUQpOworICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgSURfREVMSU0pKSB7CisgICAgICAgICAgICAgICAgLy8gTm90IGEgZ2xvYmFsIGZpbHRlcjsgYmFja3VwIGFuZCByZXN1bWUKKyAgICAgICAgICAgICAgICBjYW5vbklELnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpciA9PSBGT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBzYXdEZWxpbWl0ZXIgPSB0cnVlOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBwYXJzZVNpbmdsZUlEKGlkLCBwb3MsIGRpcik7CisgICAgICAgICAgICBpZiAoc2luZ2xlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGxpc3QuYWRkRWxlbWVudChzaW5nbGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaXN0Lmluc2VydEVsZW1lbnRBdChzaW5nbGUsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBJRF9ERUxJTSkpIHsKKyAgICAgICAgICAgICAgICBzYXdEZWxpbWl0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaXN0LnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb25zdHJ1Y3QgY2Fub25pY2FsIElECisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSAoU2luZ2xlSUQpIGxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoc2luZ2xlLmNhbm9uSUQpOworICAgICAgICAgICAgaWYgKGkgIT0gKGxpc3Quc2l6ZSgpLTEpKSB7CisgICAgICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoSURfREVMSU0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUGFyc2UgdHJhaWxpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55LCBhbmQgb25seSBpZiB3ZSBzYXcKKyAgICAgICAgLy8gYSB0cmFpbGluZyBkZWxpbWl0ZXIgYWZ0ZXIgdGhlIElEcy4KKyAgICAgICAgaWYgKHNhd0RlbGltaXRlcikgeworICAgICAgICAgICAgd2l0aFBhcmVuc1swXSA9IDE7IC8vIHBhcmVucyByZXF1aXJlZAorICAgICAgICAgICAgZmlsdGVyID0gcGFyc2VHbG9iYWxGaWx0ZXIoaWQsIHBvcywgZGlyLCB3aXRoUGFyZW5zLCBjYW5vbklEKTsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IHJlcXVpcmUgdHJhaWxpbmcgJzsnLCBidXQgcGFyc2UgaXQgaWYgcHJlc2VudAorICAgICAgICAgICAgICAgIFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIElEX0RFTElNKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZGlyID09IFJFVkVSU0UpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYWlsaW5nIHVucGFyc2VkIHRleHQgaXMgYSBzeW50YXggZXJyb3IKKyAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zWzBdKTsKKyAgICAgICAgaWYgKHBvc1swXSAhPSBpZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB0aGUgZWxlbWVudHMgb2YgdGhlICdsaXN0JyB2ZWN0b3IsIHdoaWNoIGFyZSBTaW5nbGVJRAorICAgICAqIG9iamVjdHMsIGludG8gYWN0dWFsIFRyYW5zbGl0ZXJhdG9yIG9iamVjdHMuICBJbiB0aGUgY291cnNlIG9mCisgICAgICogdGhpcywgc29tZSAob3IgYWxsKSBlbnRyaWVzIG1heSBiZSByZW1vdmVkLiAgSWYgYWxsIGVudHJpZXMKKyAgICAgKiBhcmUgcmVtb3ZlZCwgdGhlIE51bGwgdHJhbnNsaXRlcmF0b3Igd2lsbCBiZSBhZGRlZC4KKyAgICAgKgorICAgICAqIERlbGV0ZSBlbnRyaWVzIHdpdGggZW1wdHkgYmFzaWNJRHM7IHRoZXNlIGFyZSBnZW5lcmF0ZWQgYnkKKyAgICAgKiBlbGVtZW50cyBsaWtlICIoQSkiIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgb3IgIkEoKSIgaW4KKyAgICAgKiB0aGUgcmV2ZXJzZS4gIFRISVMgTUFZIFJFU1VMVCBJTiBBTiBFTVBUWSBWRUNUT1IuICBDb252ZXJ0CisgICAgICogU2luZ2xlSUQgZW50cmllcyB0byBhY3R1YWwgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQHBhcmFtIGxpc3QgdmVjdG9yIG9mIFNpbmdsZUlEIG9iamVjdHMuICBPbiBleGl0LCB2ZWN0b3IKKyAgICAgKiBvZiBvbmUgb3IgbW9yZSBUcmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGluc3RhbnRpYXRlTGlzdChWZWN0b3IgbGlzdCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICBmb3IgKGludCBpPTA7IGk8PWxpc3Quc2l6ZSgpOyApIHsgLy8gW3NpY106IGk8PWxpc3Quc2l6ZSgpCisgICAgICAgICAgICAvLyBXZSBydW4gdGhlIGxvb3AgdG9vIGxvbmcgYnkgb25lLCBzbyB3ZSBjYW4KKyAgICAgICAgICAgIC8vIGRvIGFuIGluc2VydCBhZnRlciB0aGUgbGFzdCBlbGVtZW50CisgICAgICAgICAgICBpZiAoaT09bGlzdC5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2luZ2xlSUQgc2luZ2xlID0gKFNpbmdsZUlEKSBsaXN0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChzaW5nbGUuYmFzaWNJRC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGlzdC5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHQgPSBzaW5nbGUuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgCXQgPSBzaW5nbGUuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBJRCAiICsgc2luZ2xlLmNhbm9uSUQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsaXN0LnNldEVsZW1lbnRBdCh0LCBpKTsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFuIGVtcHR5IGxpc3QgaXMgZXF1aXZhbGVudCB0byBhIE51bGwgdHJhbnNsaXRlcmF0b3IuCisgICAgICAgIGlmIChsaXN0LnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QmFzaWNJbnN0YW5jZSgiQW55LU51bGwiLCBudWxsKTsKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBTaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW50ZXJuYWwgZXJyb3I7IGNhbm5vdCBpbnN0YW50aWF0ZSBBbnktTnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdC5hZGRFbGVtZW50KHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gSUQgaW50byBwaWVjZXMuICBUYWtlIElEcyBvZiB0aGUgZm9ybSBULCBUL1YsIFMtVCwKKyAgICAgKiBTLVQvViwgb3IgUy9WLVQuICBJZiB0aGUgc291cmNlIGlzIG1pc3NpbmcsIHJldHVybiBhIHNvdXJjZSBvZgorICAgICAqIEFOWS4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHN0cmluZywgaW4gYW55IG9mIHNldmVyYWwgZm9ybXMKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIDQgc3RyaW5nczogc291cmNlLCB0YXJnZXQsIHZhcmlhbnQsIGFuZAorICAgICAqIGlzU291cmNlUHJlc2VudC4gIElmIHRoZSBzb3VyY2UgaXMgbm90IHByZXNlbnQsIEFOWSB3aWxsIGJlCisgICAgICogZ2l2ZW4gYXMgdGhlIHNvdXJjZSwgYW5kIGlzU291cmNlUHJlc2VudCB3aWxsIGJlIG51bGwuICBPdGhlcndpc2UKKyAgICAgKiBpc1NvdXJjZVByZXNlbnQgd2lsbCBiZSBub24tbnVsbC4gIFRoZSB0YXJnZXQgbWF5IGJlIGVtcHR5IGlmIHRoZQorICAgICAqIGlkIGlzIG5vdCB3ZWxsLWZvcm1lZC4gIFRoZSB2YXJpYW50IG1heSBiZSBlbXB0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIElEdG9TVFYoU3RyaW5nIGlkKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBBTlk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBudWxsOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IHNlcCA9IGlkLmluZGV4T2YoVEFSR0VUX1NFUCk7CisgICAgICAgIGludCB2YXIgPSBpZC5pbmRleE9mKFZBUklBTlRfU0VQKTsKKyAgICAgICAgaWYgKHZhciA8IDApIHsKKyAgICAgICAgICAgIHZhciA9IGlkLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gaXNTb3VyY2VQcmVzZW50ID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoc2VwIDwgMCkgeworICAgICAgICAgICAgLy8gRm9ybTogVC9WIG9yIFQgKG9yIC9WKQorICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKDAsIHZhcik7CisgICAgICAgICAgICB2YXJpYW50ID0gaWQuc3Vic3RyaW5nKHZhcik7CisgICAgICAgIH0gZWxzZSBpZiAoc2VwIDwgdmFyKSB7CisgICAgICAgICAgICAvLyBGb3JtOiBTLVQvViBvciBTLVQgKG9yIC1UL1Ygb3IgLVQpCisgICAgICAgICAgICBpZiAoc2VwID4gMCkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLCBzZXApOworICAgICAgICAgICAgICBpc1NvdXJjZVByZXNlbnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKCsrc2VwLCB2YXIpOworICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRm9ybTogKFMvVi1UIG9yIC9WLVQpCisgICAgICAgICAgICBpZiAodmFyID4gMCkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLCB2YXIpOworICAgICAgICAgICAgICAgIGlzU291cmNlUHJlc2VudCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXJpYW50ID0gaWQuc3Vic3RyaW5nKHZhciwgc2VwKyspOworICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKHNlcCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSB2YXJpYW50LnN1YnN0cmluZygxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbXSB7IHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTb3VyY2VQcmVzZW50ID8gIiIgOiBudWxsIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gc291cmNlLCB0YXJnZXQsIGFuZCB2YXJpYW50IHN0cmluZ3MsIGNvbmNhdGVuYXRlIHRoZW0gaW50byBhCisgICAgICogZnVsbCBJRC4gIElmIHRoZSBzb3VyY2UgaXMgZW1wdHksIHRoZW4gIkFueSIgd2lsbCBiZSB1c2VkIGZvciB0aGUKKyAgICAgKiBzb3VyY2UsIHNvIHRoZSBJRCB3aWxsIGFsd2F5cyBiZSBvZiB0aGUgZm9ybSBzLXQvdiBvciBzLXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgU1RWdG9JRChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBpZCA9IG5ldyBTdHJpbmdCdWZmZXIoc291cmNlKTsKKyAgICAgICAgaWYgKGlkLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZChBTlkpOworICAgICAgICB9CisgICAgICAgIGlkLmFwcGVuZChUQVJHRVRfU0VQKS5hcHBlbmQodGFyZ2V0KTsKKyAgICAgICAgaWYgKHZhcmlhbnQgIT0gbnVsbCAmJiB2YXJpYW50Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZChWQVJJQU5UX1NFUCkuYXBwZW5kKHZhcmlhbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIHR3byB0YXJnZXRzIGFzIGJlaW5nIGludmVyc2VzIG9mIG9uZSBhbm90aGVyLiAgRm9yCisgICAgICogZXhhbXBsZSwgY2FsbGluZyByZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSkgY2F1c2VzCisgICAgICogVHJhbnNsaXRlcmF0b3IgdG8gZm9ybSB0aGUgZm9sbG93aW5nIGludmVyc2UgcmVsYXRpb25zaGlwczoKKyAgICAgKgorICAgICAqIDxwcmU+TkZDID0+IE5GRAorICAgICAqIEFueS1ORkMgPT4gQW55LU5GRAorICAgICAqIE5GRCA9PiBORkMKKyAgICAgKiBBbnktTkZEID0+IEFueS1ORkM8L3ByZT4KKyAgICAgKgorICAgICAqIChXaXRob3V0IHRoZSBzcGVjaWFsIGludmVyc2UgcmVnaXN0cmF0aW9uLCB0aGUgaW52ZXJzZSBvZiBORkMKKyAgICAgKiB3b3VsZCBiZSBORkMtQW55LikgIE5vdGUgdGhhdCBORkQgaXMgc2hvcnRoYW5kIGZvciBBbnktTkZELCBidXQKKyAgICAgKiB0aGF0IHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlIG9mICJBbnktIiBpcyBwcmVzZXJ2ZWQuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsYXRpb25zaGlwIGlzIHN5bW1ldHJpY2FsOyByZWdpc3RlcmluZyAoYSwgYikgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlZ2lzdGVyaW5nIChiLCBhKS4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZWxldmFudCBJRHMgbXVzdCBzdGlsbCBiZSByZWdpc3RlcmVkIHNlcGFyYXRlbHkgYXMKKyAgICAgKiBmYWN0b3JpZXMgb3IgY2xhc3Nlcy4KKyAgICAgKgorICAgICAqIDxwPk9ubHkgdGhlIHRhcmdldHMgYXJlIHNwZWNpZmllZC4gIFNwZWNpYWwgaW52ZXJzZXMgYWx3YXlzCisgICAgICogaGF2ZSB0aGUgZm9ybSBBbnktVGFyZ2V0MSA8PT4gQW55LVRhcmdldDIuICBUaGUgdGFyZ2V0IHNob3VsZAorICAgICAqIGhhdmUgY2Fub25pY2FsIGNhc2luZyAodGhlIGNhc2luZyBkZXNpcmVkIHRvIGJlIHByb2R1Y2VkIHdoZW4KKyAgICAgKiBhbiBpbnZlcnNlIGlzIGZvcm1lZCkgYW5kIHNob3VsZCBjb250YWluIG5vIHdoaXRlc3BhY2Ugb3Igb3RoZXIKKyAgICAgKiBleHRyYW5lb3VzIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgYWdhaW5zdCB3aGljaCB0byByZWdpc3RlciB0aGUgaW52ZXJzZQorICAgICAqIEBwYXJhbSBpbnZlcnNlVGFyZ2V0IHRoZSBpbnZlcnNlIG9mIHRhcmdldCwgdGhhdCBpcworICAgICAqIEFueS10YXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS1pbnZlcnNlVGFyZ2V0CisgICAgICogQHBhcmFtIGJpZGlyZWN0aW9uYWwgaWYgdHJ1ZSwgcmVnaXN0ZXIgdGhlIHJldmVyc2UgcmVsYXRpb24KKyAgICAgKiBhcyB3ZWxsLCB0aGF0IGlzLCBBbnktaW52ZXJzZVRhcmdldC5nZXRJbnZlcnNlKCkgPT4gQW55LXRhcmdldAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlclNwZWNpYWxJbnZlcnNlKFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGludmVyc2VUYXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBiaWRpcmVjdGlvbmFsKSB7CisgICAgICAgIFNQRUNJQUxfSU5WRVJTRVMucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KSwgaW52ZXJzZVRhcmdldCk7CisgICAgICAgIGlmIChiaWRpcmVjdGlvbmFsICYmICF0YXJnZXQuZXF1YWxzSWdub3JlQ2FzZShpbnZlcnNlVGFyZ2V0KSkgeworICAgICAgICAgICAgU1BFQ0lBTF9JTlZFUlNFUy5wdXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhpbnZlcnNlVGFyZ2V0KSwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgaW1wbGVtZW50YXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIElEIGludG8gY29tcG9uZW50IHBpZWNlcy4gIFRha2UgSURzIG9mIHRoZSBmb3JtIFQsCisgICAgICogVC9WLCBTLVQsIFMtVC9WLCBvciBTL1YtVC4gIElmIHRoZSBzb3VyY2UgaXMgbWlzc2luZywgcmV0dXJuIGEKKyAgICAgKiBzb3VyY2Ugb2YgQU5ZLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgc3RyaW5nLCBpbiBhbnkgb2Ygc2V2ZXJhbCBmb3JtcworICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCBwb3NbMF0gaXMgdGhlCisgICAgICogb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UgaW4gaWQuICBPbiBvdXRwdXQsCisgICAgICogcG9zWzBdIGlzIHRoZSBvZmZzZXQgYWZ0ZXIgdGhlIGxhc3QgcGFyc2VkIGNoYXJhY3Rlci4gIElmIHRoZQorICAgICAqIHBhcnNlIGZhaWxlZCwgcG9zWzBdIHdpbGwgYmUgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBhbGxvd0ZpbHRlciBpZiB0cnVlLCBhIFVuaWNvZGVTZXQgcGF0dGVybiBpcyBhbGxvd2VkCisgICAgICogYXQgYW55IGxvY2F0aW9uIGJldHdlZW4gc3BlY3Mgb3IgZGVsaW1pdGVycywgYW5kIGlzIHJldHVybmVkCisgICAgICogYXMgdGhlIGZpZnRoIHN0cmluZyBpbiB0aGUgYXJyYXkuCisgICAgICogQHJldHVybiBhIFNwZWNzIG9iamVjdCwgb3IgbnVsbCBpZiB0aGUgcGFyc2UgZmFpbGVkLiAgSWYKKyAgICAgKiBuZWl0aGVyIHNvdXJjZSBub3IgdGFyZ2V0IHdhcyBzZWVuIGluIHRoZSBwYXJzZWQgaWQsIHRoZW4gdGhlCisgICAgICogcGFyc2UgZmFpbHMuICBJZiBhbGxvd0ZpbHRlciBpcyB0cnVlLCB0aGVuIHRoZSBwYXJzZWQgZmlsdGVyCisgICAgICogcGF0dGVybiBpcyByZXR1cm5lZCBpbiB0aGUgU3BlY3Mgb2JqZWN0LCBvdGhlcndpc2UgdGhlIHJldHVybmVkCisgICAgICogZmlsdGVyIHJlZmVyZW5jZSBpcyBudWxsLiAgSWYgdGhlIHBhcnNlIGZhaWxzIGZvciBhbnkgcmVhc29uCisgICAgICogbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTcGVjcyBwYXJzZUZpbHRlcklEKFN0cmluZyBpZCwgaW50W10gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbGxvd0ZpbHRlcikgeworICAgICAgICBTdHJpbmcgZmlyc3QgPSBudWxsOworICAgICAgICBTdHJpbmcgc291cmNlID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9IG51bGw7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGZpbHRlciA9IG51bGw7CisgICAgICAgIGNoYXIgZGVsaW1pdGVyID0gMDsKKyAgICAgICAgaW50IHNwZWNDb3VudCA9IDA7CisgICAgICAgIGludCBzdGFydCA9IHBvc1swXTsKKworICAgICAgICAvLyBUaGlzIGxvb3AgcGFyc2VzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRoaW5ncyB3aXRoIGVhY2gKKyAgICAgICAgLy8gcGFzczogYSBmaWx0ZXIsIGEgZGVsaW1pdGVyIGNoYXJhY3RlciAoZWl0aGVyICctJyBvciAnLycpLAorICAgICAgICAvLyBvciBhIHNwZWMgKHNvdXJjZSwgdGFyZ2V0LCBvciB2YXJpYW50KS4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3NbMF0gPT0gaWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUGFyc2UgZmlsdGVycworICAgICAgICAgICAgaWYgKGFsbG93RmlsdGVyICYmIGZpbHRlciA9PSBudWxsICYmCisgICAgICAgICAgICAgICAgVW5pY29kZVNldC5yZXNlbWJsZXNQYXR0ZXJuKGlkLCBwb3NbMF0pKSB7CisKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihwb3NbMF0pOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoaWQsIHBwb3MsIG51bGwpOworICAgICAgICAgICAgICAgIGZpbHRlciA9IGlkLnN1YnN0cmluZyhwb3NbMF0sIHBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gcHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGVsaW1pdGVyID09IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBpZC5jaGFyQXQocG9zWzBdKTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gVEFSR0VUX1NFUCAmJiB0YXJnZXQgPT0gbnVsbCkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPT0gVkFSSUFOVF9TRVAgJiYgdmFyaWFudCA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSBjOworICAgICAgICAgICAgICAgICAgICArK3Bvc1swXTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSBhcmUgYWJvdXQgdG8gdHJ5IHRvIHBhcnNlIGEgc3BlYyB3aXRoIG5vIGRlbGltaXRlcgorICAgICAgICAgICAgLy8gd2hlbiB3ZSBjYW4gbm8gbG9uZ2VyIGRvIHNvICh3ZSBjYW4gb25seSBkbyBzbyBhdCB0aGUKKyAgICAgICAgICAgIC8vIHN0YXJ0KTsgYnJlYWsuCisgICAgICAgICAgICBpZiAoZGVsaW1pdGVyID09IDAgJiYgc3BlY0NvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgc3BlYyA9IFV0aWxpdHkucGFyc2VVbmljb2RlSWRlbnRpZmllcihpZCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChzcGVjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlcmUgd2FzIGEgdHJhaWxpbmcgZGVsaW1pdGVyLCB3ZQorICAgICAgICAgICAgICAgIC8vIGNvbnN1bWUgaXQuICBTbyBGb28tLCBGb28vLCBGb28tQmFyLywgYW5kIEZvby9CYXItCisgICAgICAgICAgICAgICAgLy8gYXJlIGxlZ2FsLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGRlbGltaXRlcikgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGZpcnN0ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVEFSR0VUX1NFUDoKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBzcGVjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWQVJJQU5UX1NFUDoKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrc3BlY0NvdW50OworICAgICAgICAgICAgZGVsaW1pdGVyID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEEgc3BlYyB3aXRoIG5vIHByaW9yIGNoYXJhY3RlciBpcyBlaXRoZXIgc291cmNlIG9yIHRhcmdldCwKKyAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW4gZXhwbGljaXQgIi10YXJnZXQiIHdhcyBzZWVuLgorICAgICAgICBpZiAoZmlyc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gZmlyc3Q7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcnN0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTXVzdCBoYXZlIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCAmJiB0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVtcHR5IHNvdXJjZSBvciB0YXJnZXQgZGVmYXVsdHMgdG8gQU5ZCisgICAgICAgIGJvb2xlYW4gc2F3U291cmNlID0gdHJ1ZTsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzb3VyY2UgPSBBTlk7CisgICAgICAgICAgICBzYXdTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldCA9IEFOWTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgU3BlY3Moc291cmNlLCB0YXJnZXQsIHZhcmlhbnQsIHNhd1NvdXJjZSwgZmlsdGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbnMgYSBTcGVjIG9iamVjdCwgY29udmVydCBpdCB0byBhIFNpbmdsZUlEIG9iamVjdC4gIFRoZQorICAgICAqIFNwZWMgb2JqZWN0IGlzIGEgbW9yZSB1bnByb2Nlc3NlZCBwYXJzZSByZXN1bHQuICBUaGUgU2luZ2xlSUQKKyAgICAgKiBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgY2Fub25pY2FsIGFuZCBiYXNpYyBJRHMuCisgICAgICogQHJldHVybiBhIFNpbmdsZUlEOyBuZXZlciByZXR1cm5zIG51bGwuICBSZXR1cm5lZCBvYmplY3QgYWx3YXlzCisgICAgICogaGFzICdmaWx0ZXInIGZpZWxkIG9mIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU2luZ2xlSUQgc3BlY3NUb0lEKFNwZWNzIHNwZWNzLCBpbnQgZGlyKSB7CisgICAgICAgIFN0cmluZyBjYW5vbklEID0gIiI7CisgICAgICAgIFN0cmluZyBiYXNpY0lEID0gIiI7CisgICAgICAgIFN0cmluZyBiYXNpY1ByZWZpeCA9ICIiOworICAgICAgICBpZiAoc3BlY3MgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGlmIChzcGVjcy5zYXdTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzcGVjcy5zb3VyY2UpLmFwcGVuZChUQVJHRVRfU0VQKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiYXNpY1ByZWZpeCA9IHNwZWNzLnNvdXJjZSArIFRBUkdFVF9TRVA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MudGFyZ2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzcGVjcy50YXJnZXQpLmFwcGVuZChUQVJHRVRfU0VQKS5hcHBlbmQoc3BlY3Muc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzcGVjcy52YXJpYW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFZBUklBTlRfU0VQKS5hcHBlbmQoc3BlY3MudmFyaWFudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiYXNpY0lEID0gYmFzaWNQcmVmaXggKyBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChzcGVjcy5maWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoMCwgc3BlY3MuZmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbm9uSUQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFNpbmdsZUlEKGNhbm9uSUQsIGJhc2ljSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgU3BlY3Mgb2JqZWN0LCByZXR1cm4gYSBTaW5nbGVJRCByZXByZXNlbnRpbmcgdGhlCisgICAgICogc3BlY2lhbCBpbnZlcnNlIG9mIHRoYXQgSUQuICBJZiB0aGVyZSBpcyBubyBzcGVjaWFsIGludmVyc2UKKyAgICAgKiB0aGVuIHJldHVybiBudWxsLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRCBvciBudWxsLiAgUmV0dXJuZWQgb2JqZWN0IGFsd2F5cyBoYXMKKyAgICAgKiAnZmlsdGVyJyBmaWVsZCBvZiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNpbmdsZUlEIHNwZWNzVG9TcGVjaWFsSW52ZXJzZShTcGVjcyBzcGVjcykgeworICAgICAgICBpZiAoIXNwZWNzLnNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKEFOWSkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBpbnZlcnNlVGFyZ2V0ID0gKFN0cmluZykgU1BFQ0lBTF9JTlZFUlNFUy5nZXQoCisgICAgICAgICAgICBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNwZWNzLnRhcmdldCkpOworICAgICAgICBpZiAoaW52ZXJzZVRhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgSUQgY29udGFpbmVkICJBbnktIiB0aGVuIG1ha2UgdGhlCisgICAgICAgICAgICAvLyBzcGVjaWFsIGludmVyc2UgIkFueS1Gb28iOyBvdGhlcndpc2UgbWFrZSBpdCAiRm9vIi4KKyAgICAgICAgICAgIC8vIFNvICJBbnktTkZDIiA9PiAiQW55LU5GRCIgYnV0ICJORkMiID0+ICJORkQiLgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGlmIChzcGVjcy5maWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MuZmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzcGVjcy5zYXdTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKEFOWSkuYXBwZW5kKFRBUkdFVF9TRVApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChpbnZlcnNlVGFyZ2V0KTsKKworICAgICAgICAgICAgU3RyaW5nIGJhc2ljSUQgPSBBTlkgKyBUQVJHRVRfU0VQICsgaW52ZXJzZVRhcmdldDsKKworICAgICAgICAgICAgaWYgKHNwZWNzLnZhcmlhbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVkFSSUFOVF9TRVApLmFwcGVuZChzcGVjcy52YXJpYW50KTsKKyAgICAgICAgICAgICAgICBiYXNpY0lEID0gYmFzaWNJRCArIFZBUklBTlRfU0VQICsgc3BlY3MudmFyaWFudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlSUQoYnVmLnRvU3RyaW5nKCksIGJhc2ljSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxYmFlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhCkBAIC0wLDAgKzEsMTU0MyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuZGF0YS5SZXNvdXJjZVJlYWRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworY2xhc3MgVHJhbnNsaXRlcmF0b3JQYXJzZXIgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQVUJMSUMgZGF0YSBtZW1iZXIuCisgICAgICogQSBWZWN0b3Igb2YgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBvYmplY3RzLCBvbmUgZm9yIGVhY2ggZGlzY3JldGUgZ3JvdXAKKyAgICAgKiBvZiBydWxlcyBpbiB0aGUgcnVsZSBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVjdG9yIGRhdGFWZWN0b3I7CisKKyAgICAvKioKKyAgICAgKiBQVUJMSUMgZGF0YSBtZW1iZXIuCisgICAgICogQSBWZWN0b3Igb2YgU3RyaW5ncyBjb250YWluaW5nIGFsbCBvZiB0aGUgSUQgYmxvY2tzIGluIHRoZSBydWxlIHNldAorICAgICAqLworICAgIHB1YmxpYyBWZWN0b3IgaWRCbG9ja1ZlY3RvcjsKKworICAgIC8qKgorICAgICAqIFRoZSBjdXJyZW50IGRhdGEgb2JqZWN0IGZvciB3aGljaCB3ZSBhcmUgcGFyc2luZyBydWxlcworICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBjdXJEYXRhOworCisgICAgLyoqCisgICAgICogUFVCTElDIGRhdGEgbWVtYmVyIGNvbnRhaW5pbmcgdGhlIHBhcnNlZCBjb21wb3VuZCBmaWx0ZXIsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wb3VuZEZpbHRlcjsKKworCisgICAgcHJpdmF0ZSBpbnQgZGlyZWN0aW9uOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHN5bWJvbCB0YWJsZSB1c2VkIGR1cmluZyBwYXJzaW5nLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VEYXRhIHBhcnNlRGF0YTsKKworICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB2ZWN0b3Igb2Ygc2V0IHZhcmlhYmxlcy4gIFdoZW4gcGFyc2luZyBpcyBjb21wbGV0ZSwgdGhpcworICAgICAqIGlzIGNvcGllZCBpbnRvIHRoZSBhcnJheSBkYXRhLnZhcmlhYmxlcy4gIEFzIHdpdGggZGF0YS52YXJpYWJsZXMsCisgICAgICogZWxlbWVudCAwIGNvcnJlc3BvbmRzIHRvIGNoYXJhY3RlciBkYXRhLnZhcmlhYmxlc0Jhc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3IgdmFyaWFibGVzVmVjdG9yOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHRhYmxlIG9mIHZhcmlhYmxlIG5hbWVzLiAgV2hlbiBwYXJzaW5nIGlzIGNvbXBsZXRlLCB0aGlzIGlzCisgICAgICogY29waWVkIGludG8gZGF0YS52YXJpYWJsZU5hbWVzLgorICAgICAqLworICAgIHByaXZhdGUgSGFzaHRhYmxlIHZhcmlhYmxlTmFtZXM7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgb2Ygc3RhbmRpbnMgZm9yIHNlZ21lbnRzLiAgVXNlZCBkdXJpbmcgdGhlIHBhcnNpbmcgb2YgYSBzaW5nbGUKKyAgICAgKiBydWxlLiAgc2VnbWVudFN0YW5kaW5zLmNoYXJBdCgwKSBpcyB0aGUgc3RhbmRpbiBmb3IgIiQxIiBhbmQgY29ycmVzcG9uZHMKKyAgICAgKiB0byBTdHJpbmdNYXRjaGVyIG9iamVjdCBzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoMCksIGV0Yy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzZWdtZW50U3RhbmRpbnM7CisKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgU3RyaW5nTWF0Y2hlciBvYmplY3RzIGZvciBzZWdtZW50cy4gIFVzZWQgZHVyaW5nIHRoZQorICAgICAqIHBhcnNpbmcgb2YgYSBzaW5nbGUgcnVsZS4gIAorICAgICAqIHNlZ21lbnRTdGFuZGlucy5jaGFyQXQoMCkgaXMgdGhlIHN0YW5kaW4gZm9yICIkMSIgYW5kIGNvcnJlc3BvbmRzCisgICAgICogdG8gU3RyaW5nTWF0Y2hlciBvYmplY3Qgc2VnbWVudE9iamVjdHMuZWxlbWVudEF0KDApLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3Igc2VnbWVudE9iamVjdHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmV4dCBhdmFpbGFibGUgc3RhbmQtaW4gZm9yIHZhcmlhYmxlcy4gIFRoaXMgc3RhcnRzIGF0IHNvbWUgcG9pbnQgaW4KKyAgICAgKiB0aGUgcHJpdmF0ZSB1c2UgYXJlYSAoZGlzY292ZXJlZCBkeW5hbWljYWxseSkgYW5kIGluY3JlbWVudHMgdXAgdG93YXJkCisgICAgICogPGNvZGU+dmFyaWFibGVMaW1pdDwvY29kZT4uICBBdCBhbnkgcG9pbnQgZHVyaW5nIHBhcnNpbmcsIGF2YWlsYWJsZQorICAgICAqIHZhcmlhYmxlcyBhcmUgPGNvZGU+dmFyaWFibGVOZXh0Li52YXJpYWJsZUxpbWl0LTE8L2NvZGU+LgorICAgICAqLworICAgIHByaXZhdGUgY2hhciB2YXJpYWJsZU5leHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFzdCBhdmFpbGFibGUgc3RhbmQtaW4gZm9yIHZhcmlhYmxlcy4gIFRoaXMgaXMgZGlzY292ZXJlZAorICAgICAqIGR5bmFtaWNhbGx5LiAgQXQgYW55IHBvaW50IGR1cmluZyBwYXJzaW5nLCBhdmFpbGFibGUgdmFyaWFibGVzIGFyZQorICAgICAqIDxjb2RlPnZhcmlhYmxlTmV4dC4udmFyaWFibGVMaW1pdC0xPC9jb2RlPi4gIER1cmluZyB2YXJpYWJsZSBkZWZpbml0aW9uCisgICAgICogd2UgdXNlIHRoZSBzcGVjaWFsIHZhbHVlIHZhcmlhYmxlTGltaXQtMSBhcyBhIHBsYWNlaG9sZGVyLgorICAgICAqLworICAgIHByaXZhdGUgY2hhciB2YXJpYWJsZUxpbWl0OworCisgICAgLyoqCisgICAgICogV2hlbiB3ZSBlbmNvdW50ZXIgYW4gdW5kZWZpbmVkIHZhcmlhYmxlLCB3ZSBkbyBub3QgaW1tZWRpYXRlbHkgc2lnbmFsCisgICAgICogYW4gZXJyb3IsIGluIGNhc2Ugd2UgYXJlIGRlZmluaW5nIHRoaXMgdmFyaWFibGUsIGUuZy4sICIkYSA9IFthLXpdOyIuCisgICAgICogSW5zdGVhZCwgd2Ugc2F2ZSB0aGUgbmFtZSBvZiB0aGUgdW5kZWZpbmVkIHZhcmlhYmxlLCBhbmQgc3Vic3RpdHV0ZQorICAgICAqIGluIHRoZSBwbGFjZWhvbGRlciBjaGFyIHZhcmlhYmxlTGltaXQgLSAxLCBhbmQgZGVjcmVtZW50CisgICAgICogdmFyaWFibGVMaW1pdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB1bmRlZmluZWRWYXJpYWJsZU5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhbmQtaW4gY2hhcmFjdGVyIGZvciB0aGUgJ2RvdCcgc2V0LCByZXByZXNlbnRlZCBieSAnLicgaW4KKyAgICAgKiBwYXR0ZXJucy4gIFRoaXMgaXMgYWxsb2NhdGVkIHRoZSBmaXJzdCB0aW1lIGl0IGlzIG5lZWRlZCwgYW5kCisgICAgICogcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZG90U3RhbmRJbiA9IC0xOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBJbmRpY2F0b3IgZm9yIElEIGJsb2NrcworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJRF9UT0tFTiA9ICI6OiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElEX1RPS0VOX0xFTiA9IDI7CisKKy8qCisocmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24pCisgICAgLy8gbWFya2VycyBmb3IgYmVnaW5uaW5nIGFuZCBlbmQgb2YgcnVsZSBncm91cHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkVHSU5fVE9LRU4gPSAiQkVHSU4iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFTkRfVE9LRU4gPSAiRU5EIjsKKyovCisKKyAgICAvLyBPcGVyYXRvcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBQkxFX0RFRl9PUCAgID0gJz0nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRk9SV0FSRF9SVUxFX09QICAgPSAnPic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVZFUlNFX1JVTEVfT1AgICA9ICc8JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEZXRFJFVl9SVUxFX09QICAgID0gJ34nOyAvLyBpbnRlcm5hbCByZXAgb2YgPD4gb3AKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVSQVRPUlMgPSAiPT48XHUyMTkwXHUyMTkyXHUyMTk0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEFMRl9FTkRFUlMgPSAiPT48XHUyMTkwXHUyMTkyXHUyMTk0OyI7CisKKyAgICAvLyBPdGhlciBzcGVjaWFsIGNoYXJhY3RlcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFFVT1RFICAgICAgICAgICAgICAgPSAnXCcnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVNDQVBFICAgICAgICAgICAgICA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFTkRfT0ZfUlVMRSAgICAgICAgID0gJzsnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUlVMRV9DT01NRU5UX0NIQVIgICA9ICcjJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09OVEVYVF9BTlRFICAgICAgICA9ICd7JzsgLy8gYW50ZXtrZXkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTlRFWFRfUE9TVCAgICAgICAgPSAnfSc7IC8vIGtleX1wb3N0CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJTT1JfUE9TICAgICAgICAgID0gJ3wnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSU09SX09GRlNFVCAgICAgICA9ICdAJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFOQ0hPUl9TVEFSVCAgICAgICAgPSAnXic7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtMRUVORV9TVEFSICAgICAgICAgPSAnKic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBPTkVfT1JfTU9SRSAgICAgICAgID0gJysnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgWkVST19PUl9PTkUgICAgICAgICA9ICc/JzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9UICAgICAgICAgICAgICAgICA9ICcuJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRE9UX1NFVCAgICAgICAgICAgPSAiW15bOlpwOl1bOlpsOl1cXHJcXG4kXSI7CisKKyAgICAvLyBCeSBkZWZpbml0aW9uLCB0aGUgQU5DSE9SX0VORCBzcGVjaWFsIGNoYXJhY3RlciBpcyBhCisgICAgLy8gdHJhaWxpbmcgU3ltYm9sVGFibGUuU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgICAgLy8gcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTkNIT1JfRU5EICAgICAgID0gJyQnOworCisgICAgLy8gU2VnbWVudHMgb2YgdGhlIGlucHV0IHN0cmluZyBhcmUgZGVsaW1pdGVkIGJ5ICIoIiBhbmQgIikiLiAgSW4gdGhlCisgICAgLy8gb3V0cHV0IHN0cmluZyB0aGVzZSBzZWdtZW50cyBhcmUgcmVmZXJlbmNlZCBhcyAiJDEiLCAiJDIiLCBldGMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBTRUdNRU5UX09QRU4gICAgICAgID0gJygnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VHTUVOVF9DTE9TRSAgICAgICA9ICcpJzsKKworICAgIC8vIEEgZnVuY3Rpb24gaXMgZGVub3RlZCAmU291cmNlLVRhcmdldC9WYXJpYW50KHRleHQpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBGVU5DVElPTiAgICAgICAgICAgID0gJyYnOworCisgICAgLy8gQWxpYXNlcyBmb3Igc29tZSBvZiB0aGUgc3ludGF4IGNoYXJhY3RlcnMuIFRoZXNlIGFyZSBwcm92aWRlZCBzbworICAgIC8vIHRyYW5zbGl0ZXJhdGlvbiBydWxlcyBjYW4gYmUgZXhwcmVzc2VkIGluIFhNTCB3aXRob3V0IGNsYXNoaW5nIHdpdGgKKyAgICAvLyBYTUwgc3ludGF4IGNoYXJhY3RlcnMgJzwnLCAnPicsIGFuZCAnJicuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTFRfUkVWRVJTRV9SVUxFX09QID0gJ1x1MjE5MCc7IC8vIExlZnQgQXJyb3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFMVF9GT1JXQVJEX1JVTEVfT1AgPSAnXHUyMTkyJzsgLy8gUmlnaHQgQXJyb3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFMVF9GV0RSRVZfUlVMRV9PUCAgPSAnXHUyMTk0JzsgLy8gTGVmdCBSaWdodCBBcnJvdworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQUxUX0ZVTkNUSU9OICAgICAgICA9ICdcdTIyMDYnOyAvLyBJbmNyZW1lbnQgKH5HcmVlayBDYXBpdGFsIERlbHRhKQorICAgIAorICAgIC8vIFNwZWNpYWwgY2hhcmFjdGVycyBkaXNhbGxvd2VkIGF0IHRoZSB0b3AgbGV2ZWwKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfVE9QID0gbmV3IFVuaWNvZGVTZXQoIltcXCldIik7CisKKyAgICAvLyBTcGVjaWFsIGNoYXJhY3RlcnMgZGlzYWxsb3dlZCB3aXRoaW4gYSBzZWdtZW50CisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBJTExFR0FMX1NFRyA9IG5ldyBVbmljb2RlU2V0KCJbXFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8gU3BlY2lhbCBjaGFyYWN0ZXJzIGRpc2FsbG93ZWQgd2l0aGluIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfRlVOQyA9IG5ldyBVbmljb2RlU2V0KCJbXFxeXFwoXFwuXFwqXFwrXFw/XFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgUGFyc2VEYXRhCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN5bWJvbFRhYmxlIGludGVyZmFjZS4gIEl0IGlzIHVzZWQKKyAgICAgKiBkdXJpbmcgcGFyc2luZyB0byBnaXZlIFVuaWNvZGVTZXQgYWNjZXNzIHRvIHZhcmlhYmxlcyB0aGF0CisgICAgICogaGF2ZSBiZWVuIGRlZmluZWQgc28gZmFyLiAgTm90ZSB0aGF0IGl0IHVzZXMgdmFyaWFibGVzVmVjdG9yLAorICAgICAqIF9ub3RfIGRhdGEudmFyaWFibGVzLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgUGFyc2VEYXRhIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXJbXSBsb29rdXAoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcltdKSB2YXJpYWJsZU5hbWVzLmdldChuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBkYXRhLmxvb2t1cCgpIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAvLyBzZXQgYXJyYXkgaGFzIG5vdCBiZWVuIGNvbnN0cnVjdGVkIHlldC4KKyAgICAgICAgICAgIGludCBpID0gY2ggLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChVbmljb2RlTWF0Y2hlcikgdmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEltcGxlbWVudCBTeW1ib2xUYWJsZSBBUEkuICBQYXJzZSBvdXQgYSBzeW1ib2wgcmVmZXJlbmNlCisgICAgICAgICAqIG5hbWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGludCBpID0gc3RhcnQ7CisgICAgICAgICAgICB3aGlsZSAoaSA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKChpPT1zdGFydCAmJiAhQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPT0gc3RhcnQpIHsgLy8gTm8gdmFsaWQgbmFtZSBjaGFycworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zLnNldEluZGV4KGkpOworICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIGEgbWF0Y2hlciBzdGFuZGluIG9yIGEgcGxhaW4KKyAgICAgICAgICogY2hhcmFjdGVyIChub24gc3RhbmRpbikuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc01hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBkYXRhLmxvb2t1cCgpIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAvLyBzZXQgYXJyYXkgaGFzIG5vdCBiZWVuIGNvbnN0cnVjdGVkIHlldC4KKyAgICAgICAgICAgIGludCBpID0gY2ggLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaSkgaW5zdGFuY2VvZiBVbmljb2RlTWF0Y2hlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSByZXBsYWNlciBzdGFuZGluIG9yIGEgcGxhaW4KKyAgICAgICAgICogY2hhcmFjdGVyIChub24gc3RhbmRpbikuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlcGxhY2VyKGludCBjaCkgeworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbm5vdCB1c2UgZGF0YS5sb29rdXAoKSBiZWNhdXNlIHRoZQorICAgICAgICAgICAgLy8gc2V0IGFycmF5IGhhcyBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCisgICAgICAgICAgICBpbnQgaSA9IGNoIC0gY3VyRGF0YS52YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDwgdmFyaWFibGVzVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZXNWZWN0b3IuZWxlbWVudEF0KGkpIGluc3RhbmNlb2YgVW5pY29kZVJlcGxhY2VyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzc2VzIFJ1bGVCb2R5LCBSdWxlQXJyYXksIGFuZCBSdWxlUmVhZGVyCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIHByaXZhdGUgYWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBpbnRlcmZhY2UgdG8gcnVsZQorICAgICAqIHNvdXJjZSBjb2RlIHRoYXQgaXMgYnJva2VuIHVwIGludG8gbGluZXMuICBIYW5kbGVzIHRoZQorICAgICAqIGZvbGRpbmcgb2YgbGluZXMgdGVybWluYXRlZCBieSBhIGJhY2tzbGFzaC4gIFRoaXMgZm9sZGluZworICAgICAqIGlzIGxpbWl0ZWQ7IGl0IGRvZXMgbm90IGFjY291bnQgZm9yIGNvbW1lbnRzLCBxdW90ZXMsIG9yCisgICAgICogZXNjYXBlcywgc28gaXRzIHVzZSB0byBiZSBsaW1pdGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGFic3RyYWN0IGNsYXNzIFJ1bGVCb2R5IHsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0cmlldmUgdGhlIG5leHQgbGluZSBvZiB0aGUgc291cmNlLCBvciByZXR1cm4gbnVsbCBpZgorICAgICAgICAgKiBub25lLiAgRm9sZHMgbGluZXMgdGVybWluYXRlZCBieSBhIGJhY2tzbGFzaCBpbnRvIHRoZQorICAgICAgICAgKiBuZXh0IGxpbmUsIHdpdGhvdXQgcmVnYXJkIGZvciBjb21tZW50cywgcXVvdGVzLCBvcgorICAgICAgICAgKiBlc2NhcGVzLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIG5leHRMaW5lKCkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBoYW5kbGVOZXh0TGluZSgpOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIHMubGVuZ3RoKCkgPiAwICYmCisgICAgICAgICAgICAgICAgcy5jaGFyQXQocy5sZW5ndGgoKSAtIDEpID09ICdcXCcpIHsKKworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBiID0gbmV3IFN0cmluZ0J1ZmZlcihzKTsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGIuZGVsZXRlQ2hhckF0KGIubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBoYW5kbGVOZXh0TGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiLmFwcGVuZChzKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChzLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIHMuY2hhckF0KHMubGVuZ3RoKCkgLSAxKSA9PSAnXFwnKTsKKworICAgICAgICAgICAgICAgIHMgPSBiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXNldCB0byB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc291cmNlLgorICAgICAgICAgKi8KKyAgICAgICAgYWJzdHJhY3Qgdm9pZCByZXNldCgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdWJjbGFzcyBtZXRob2QgdG8gcmV0dXJuIHRoZSBuZXh0IGxpbmUgb2YgdGhlIHNvdXJjZS4KKyAgICAgICAgICovCisgICAgICAgIGFic3RyYWN0IFN0cmluZyBoYW5kbGVOZXh0TGluZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1bGVCb2R5IHN1YmNsYXNzIGZvciBhIFN0cmluZ1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVBcnJheSBleHRlbmRzIFJ1bGVCb2R5IHsKKyAgICAgICAgU3RyaW5nW10gYXJyYXk7CisgICAgICAgIGludCBpOworICAgICAgICBwdWJsaWMgUnVsZUFycmF5KFN0cmluZ1tdIGFycmF5KSB7IHRoaXMuYXJyYXkgPSBhcnJheTsgaSA9IDA7IH0KKyAgICAgICAgcHVibGljIFN0cmluZyBoYW5kbGVOZXh0TGluZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAoaSA8IGFycmF5Lmxlbmd0aCkgPyBhcnJheVtpKytdIDogbnVsbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGkgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVsZUJvZHkgc3ViY2xhc3MgZm9yIGEgUmVzb3VyY2VSZWFkZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgUnVsZVJlYWRlciBleHRlbmRzIFJ1bGVCb2R5IHsKKyAgICAgICAgUmVzb3VyY2VSZWFkZXIgcmVhZGVyOworICAgICAgICBwdWJsaWMgUnVsZVJlYWRlcihSZXNvdXJjZVJlYWRlciByZWFkZXIpIHsgdGhpcy5yZWFkZXIgPSByZWFkZXI7IH0KKyAgICAgICAgcHVibGljIFN0cmluZyBoYW5kbGVOZXh0TGluZSgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkTGluZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoamF2YS5pby5JT0V4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICByZWFkZXIucmVzZXQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFJ1bGVIYWxmCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIHJlcHJlc2VudGluZyBvbmUgc2lkZSBvZiBhIHJ1bGUuICBUaGlzIGNsYXNzIGtub3dzIGhvdyB0bworICAgICAqIHBhcnNlIGhhbGYgb2YgYSBydWxlLiAgSXQgaXMgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBtZXRob2QKKyAgICAgKiBUcmFuc2xpdGVyYXRvclBhcnNlci5wYXJzZVJ1bGUoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBSdWxlSGFsZiB7CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0ZXh0OworCisgICAgICAgIHB1YmxpYyBpbnQgY3Vyc29yID0gLTE7IC8vIHBvc2l0aW9uIG9mIGN1cnNvciBpbiB0ZXh0CisgICAgICAgIHB1YmxpYyBpbnQgYW50ZSA9IC0xOyAgIC8vIHBvc2l0aW9uIG9mIGFudGUgY29udGV4dCBtYXJrZXIgJ3snIGluIHRleHQKKyAgICAgICAgcHVibGljIGludCBwb3N0ID0gLTE7ICAgLy8gcG9zaXRpb24gb2YgcG9zdCBjb250ZXh0IG1hcmtlciAnfScgaW4gdGV4dAorCisgICAgICAgIC8vIFJlY29yZCB0aGUgb2Zmc2V0IHRvIHRoZSBjdXJzb3IgZWl0aGVyIHRvIHRoZSBsZWZ0IG9yIHRvIHRoZQorICAgICAgICAvLyByaWdodCBvZiB0aGUga2V5LiAgVGhpcyBpcyBpbmRpY2F0ZWQgYnkgY2hhcmFjdGVycyBvbiB0aGUgb3V0cHV0CisgICAgICAgIC8vIHNpZGUgdGhhdCBhbGxvdyB0aGUgY3Vyc29yIHRvIGJlIHBvc2l0aW9uZWQgYXJiaXRyYXJpbHkgd2l0aGluCisgICAgICAgIC8vIHRoZSBtYXRjaGluZyB0ZXh0LiAgRm9yIGV4YW1wbGUsIGFiY3tkZWZ9ID4gfCBAQEAgeHl6OyBjaGFuZ2VzCisgICAgICAgIC8vIGRlZiB0byB4eXogYW5kIG1vdmVzIHRoZSBjdXJzb3IgdG8gYmVmb3JlIGFiYy4gIE9mZnNldCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIG11c3QgYmUgYXQgdGhlIHN0YXJ0IG9yIGVuZCwgYW5kIHRoZXkgY2Fubm90IG1vdmUgdGhlIGN1cnNvciBwYXN0CisgICAgICAgIC8vIHRoZSBhbnRlLSBvciBwb3N0Y29udGV4dCB0ZXh0LiAgUGxhY2Vob2xkZXJzIGFyZSBvbmx5IHZhbGlkIGluCisgICAgICAgIC8vIG91dHB1dCB0ZXh0LiAgVGhlIGxlbmd0aCBvZiB0aGUgYW50ZSBhbmQgcG9zdCBjb250ZXh0IGlzCisgICAgICAgIC8vIGRldGVybWluZWQgYXQgcnVudGltZSwgYmVjYXVzZSBvZiBzdXBwbGVtZW50YWxzIGFuZCBxdWFudGlmaWVycy4KKyAgICAgICAgcHVibGljIGludCBjdXJzb3JPZmZzZXQgPSAwOyAvLyBvbmx5IG5vbnplcm8gb24gb3V0cHV0IHNpZGUKKworICAgICAgICAvLyBQb3NpdGlvbiBvZiBmaXJzdCBDVVJTT1JfT0ZGU0VUIG9uIF9yaWdodF8uICBUaGlzIHdpbGwgYmUgLTEKKyAgICAgICAgLy8gZm9yIHxALCAtMiBmb3IgfEBALCBldGMuLCBhbmQgMSBmb3IgQHwsIDIgZm9yIEBAfCwgZXRjLgorICAgICAgICBwcml2YXRlIGludCBjdXJzb3JPZmZzZXRQb3MgPSAwOworCisgICAgICAgIHB1YmxpYyBib29sZWFuIGFuY2hvclN0YXJ0ID0gZmFsc2U7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFuY2hvckVuZCAgID0gZmFsc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4gb2YgdGhlIG5leHQgJygnIHdlIHNlZQorICAgICAgICAgKiBkdXJpbmcgcGFyc2luZzsgMS1iYXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG5leHRTZWdtZW50TnVtYmVyID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2Ugb25lIHNpZGUgb2YgYSBydWxlLCBzdG9wcGluZyBhdCBlaXRoZXIgdGhlIGxpbWl0LAorICAgICAgICAgKiB0aGUgRU5EX09GX1JVTEUgY2hhcmFjdGVyLCBvciBhbiBvcGVyYXRvci4KKyAgICAgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIHRlcm1pbmF0aW5nIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogaWYgbGltaXQgd2FzIHJlYWNoZWQsIGxpbWl0CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHBhcnNlKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcG9zID0gcGFyc2VTZWN0aW9uKHJ1bGUsIHBvcywgbGltaXQsIHBhcnNlciwgYnVmLCBJTExFR0FMX1RPUCwgZmFsc2UpOworICAgICAgICAgICAgdGV4dCA9IGJ1Zi50b1N0cmluZygpOworCisgICAgICAgICAgICBpZiAoY3Vyc29yT2Zmc2V0ID4gMCAmJiBjdXJzb3IgIT0gY3Vyc29yT2Zmc2V0UG9zKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgQ1VSU09SX1BPUywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNlIGEgc2VjdGlvbiBvZiBvbmUgc2lkZSBvZiBhIHJ1bGUsIHN0b3BwaW5nIGF0IGVpdGhlcgorICAgICAgICAgKiB0aGUgbGltaXQsIHRoZSBFTkRfT0ZfUlVMRSBjaGFyYWN0ZXIsIGFuIG9wZXJhdG9yLCBvciBhCisgICAgICAgICAqIHNlZ21lbnQgY2xvc2UgY2hhcmFjdGVyLiAgVGhpcyBtZXRob2QgcGFyc2VzIGJvdGggYQorICAgICAgICAgKiB0b3AtbGV2ZWwgcnVsZSBoYWxmIGFuZCBhIHNlZ21lbnQgd2l0aGluIHN1Y2ggYSBydWxlIGhhbGYuCisgICAgICAgICAqIEl0IGNhbGxzIGl0c2VsZiByZWN1cnNpdmVseSB0byBwYXJzZSBzZWdtZW50cyBhbmQgbmVzdGVkCisgICAgICAgICAqIHNlZ21lbnRzLgorICAgICAgICAgKiBAcGFyYW0gYnVmIGJ1ZmZlciBpbnRvIHdoaWNoIHRvIGFjY3VtdWxhdGUgdGhlIHJ1bGUgcGF0dGVybgorICAgICAgICAgKiBjaGFyYWN0ZXJzLCBlaXRoZXIgbGl0ZXJhbCBjaGFyYWN0ZXJzIGZyb20gdGhlIHJ1bGUgb3IKKyAgICAgICAgICogc3RhbmRpbnMgZm9yIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMgaW5jbHVkaW5nIHNlZ21lbnRzLgorICAgICAgICAgKiBAcGFyYW0gaWxsZWdhbCB0aGUgc2V0IG9mIHNwZWNpYWwgY2hhcmFjdGVycyB0aGF0IGlzIGlsbGVnYWwgZHVyaW5nCisgICAgICAgICAqIHRoaXMgcGFyc2UuCisgICAgICAgICAqIEBwYXJhbSBpc1NlZ21lbnQgaWYgdHJ1ZSwgdGhlbiB3ZSd2ZSBhbHJlYWR5IHNlZW4gYSAnKCcgYW5kCisgICAgICAgICAqIHBvcyBvbiBlbnRyeSBwb2ludHMgcmlnaHQgYWZ0ZXIgaXQuICBBY2N1bXVsYXRlIGV2ZXJ5dGhpbmcKKyAgICAgICAgICogdXAgdG8gdGhlIGNsb3NpbmcgJyknLCBwdXQgaXQgaW4gYSBzZWdtZW50IG1hdGNoZXIgb2JqZWN0LAorICAgICAgICAgKiBnZW5lcmF0ZSBhIHN0YW5kaW4gZm9yIGl0LCBhbmQgYWRkIHRoZSBzdGFuZGluIHRvIGJ1Zi4gIEFzCisgICAgICAgICAqIGEgc2lkZSBlZmZlY3QsIHVwZGF0ZSB0aGUgc2VnbWVudHMgdmVjdG9yIHdpdGggYSByZWZlcmVuY2UKKyAgICAgICAgICogdG8gdGhlIHNlZ21lbnQgbWF0Y2hlci4gIFRoaXMgd29ya3MgcmVjdXJzaXZlbHkgZm9yIG5lc3RlZAorICAgICAgICAgKiBzZWdtZW50cy4gIElmIGlzU2VnbWVudCBpcyBmYWxzZSwganVzdCBhY2N1bXVsYXRlCisgICAgICAgICAqIGNoYXJhY3RlcnMgaW50byBidWYuCisgICAgICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIGlmIGxpbWl0IHdhcyByZWFjaGVkLCBsaW1pdAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VTZWN0aW9uKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBpbGxlZ2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1NlZ21lbnQpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBudWxsOworICAgICAgICAgICAgaW50IHF1b3RlU3RhcnQgPSAtMTsgLy8gTW9zdCByZWNlbnQgJ3NpbmdsZSBxdW90ZWQgc3RyaW5nJworICAgICAgICAgICAgaW50IHF1b3RlTGltaXQgPSAtMTsKKyAgICAgICAgICAgIGludCB2YXJTdGFydCA9IC0xOyAvLyBNb3N0IHJlY2VudCAkdmFyaWFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIGludCB2YXJMaW1pdCA9IC0xOworICAgICAgICAgICAgaW50W10gaXJlZiA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBpbnQgYnVmU3RhcnQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIC8vIFNpbmNlIGFsbCBzeW50YXggY2hhcmFjdGVycyBhcmUgaW4gdGhlIEJNUCwgZmV0Y2hpbmcKKyAgICAgICAgICAgICAgICAvLyAxNi1iaXQgY29kZSB1bml0cyBzdWZmaWNlcyBoZXJlLgorICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhBTEZfRU5ERVJTIGlzIGFsbCBjaGFycyB0aGF0IGVuZCBhIHJ1bGUgaGFsZjogIjw+PTsiCisgICAgICAgICAgICAgICAgaWYgKEhBTEZfRU5ERVJTLmluZGV4T2YoYykgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5jbG9zZWQgc2VnbWVudCIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYW5jaG9yRW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRleHQgYWZ0ZXIgYSBwcmVzdW1lZCBlbmQgYW5jaG9yIGlzIGEgc3ludGF4IGVycgorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIHZhcmlhYmxlIHJlZmVyZW5jZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVuaWNvZGVTZXQucmVzZW1ibGVzUGF0dGVybihydWxlLCBwb3MtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHAuc2V0SW5kZXgocG9zLTEpOyAvLyBCYWNrdXAgdG8gb3BlbmluZyAnWycKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIucGFyc2VTZXQocnVsZSwgcHApKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gcHAuZ2V0SW5kZXgoKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGVzY2FwZXMKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlRyYWlsaW5nIGJhY2tzbGFzaCIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpcmVmWzBdID0gcG9zOworICAgICAgICAgICAgICAgICAgICBpbnQgZXNjYXBlZCA9IFV0aWxpdHkudW5lc2NhcGVBdChydWxlLCBpcmVmKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gaXJlZlswXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVzY2FwZWQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgZXNjYXBlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBhcnNlci5jaGVja1ZhcmlhYmxlUmFuZ2UoZXNjYXBlZCwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlc2NhcGVkKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBxdW90ZWQgbWF0dGVyCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGlxID0gcnVsZS5pbmRleE9mKFFVT1RFLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXEgPT0gcG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOyAvLyBQYXJzZSBbJyddIG91dHNpZGUgcXVvdGVzIGFzIFsnXQorICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIGxvb3AgcGlja3MgdXAgYSBydW4gb2YgcXVvdGVkIHRleHQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBmb3JtICdhYWFhJyBlYWNoIHRpbWUgdGhyb3VnaC4gIElmIHRoaXMgcnVuCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBoYXNuJ3QgcmVhbGx5IGVuZGVkICgnYWFhYScnYmJiYicpIHRoZW4gaXQga2VlcHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGxvb3BpbmcsIGVhY2ggdGltZSBhZGRpbmcgb24gYSBuZXcgcnVuLiAgV2hlbiBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICogcmVhY2hlcyB0aGUgZmluYWwgcXVvdGUgaXQgYnJlYWtzLgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZVN0YXJ0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpcSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVudGVybWluYXRlZCBxdW90ZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChydWxlLnN1YnN0cmluZyhwb3MsIGlxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXErMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocG9zKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIFsnJ10gaW5zaWRlIHF1b3RlcyBhcyBbJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXEgPSBydWxlLmluZGV4T2YoUVVPVEUsIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb250aW51ZSBsb29waW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVMaW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpcT1xdW90ZVN0YXJ0OyBpcTxxdW90ZUxpbWl0OyArK2lxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNoZWNrVmFyaWFibGVSYW5nZShidWYuY2hhckF0KGlxKSwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHBhcnNlci5jaGVja1ZhcmlhYmxlUmFuZ2UoYywgcnVsZSwgc3RhcnQpOworCisgICAgICAgICAgICAgICAgaWYgKGlsbGVnYWwuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIklsbGVnYWwgY2hhcmFjdGVyICciICsgYyArICdcJycsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIHdpdGhpbiBhbmQgb3V0IG9mIHNlZ21lbnRzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBjYXNlIEFOQ0hPUl9TVEFSVDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSAwICYmICFhbmNob3JTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yU3RhcnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCBhbmNob3Igc3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0VHTUVOVF9PUEVOOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWZTZWdTdGFydCBpcyB0aGUgb2Zmc2V0IGluIGJ1ZiB0byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBvZiB0aGUgc2VnbWVudCB3ZSBhcmUgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZTZWdTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHNlZ21lbnQgbnVtYmVyIG5vdywgc2luY2UgbmV4dFNlZ21lbnROdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgaW5jcmVtZW50ZWQgZHVyaW5nIHRoZSBjYWxsIHRvIHBhcnNlU2VjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5lc3RlZCBzZWdtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWdtZW50TnVtYmVyID0gbmV4dFNlZ21lbnROdW1iZXIrKzsgLy8gMS1iYXNlZAorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSB0aGUgc2VnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcGFyc2VTZWN0aW9uKHJ1bGUsIHBvcywgbGltaXQsIHBhcnNlciwgYnVmLCBJTExFR0FMX1NFRywgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFmdGVyIHBhcnNpbmcgYSBzZWdtZW50LCB0aGUgcmVsZXZhbnQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGJ1Ziwgc3RhcnRpbmcgYXQgb2Zmc2V0IGJ1ZlNlZ1N0YXJ0LiAgRXh0cmFjdCB0aGVtCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRvIGEgc3RyaW5nIG1hdGNoZXIsIGFuZCByZXBsYWNlIHRoZW0gd2l0aCBhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGFuZGluIGZvciB0aGF0IG1hdGNoZXIuCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdNYXRjaGVyIG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdNYXRjaGVyKGJ1Zi5zdWJzdHJpbmcoYnVmU2VnU3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnROdW1iZXIsIHBhcnNlci5jdXJEYXRhKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIGFuZCBhc3NvY2lhdGUgb2JqZWN0IGFuZCBzZWdtZW50IG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLnNldFNlZ21lbnRPYmplY3Qoc2VnbWVudE51bWJlciwgbSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKGJ1ZlNlZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdldFNlZ21lbnRTdGFuZGluKHNlZ21lbnROdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEZVTkNUSU9OOgorICAgICAgICAgICAgICAgIGNhc2UgQUxUX0ZVTkNUSU9OOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpcmVmWzBdID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TaW5nbGVJRCBzaW5nbGUgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLnBhcnNlRmlsdGVySUQocnVsZSwgaXJlZik7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBjaGFyYWN0ZXIgTVVTVCBiZSBhIHNlZ21lbnQgb3BlbgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxpdHkucGFyc2VDaGFyKHJ1bGUsIGlyZWYsIFNFR01FTlRfT1BFTikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiSW52YWxpZCBmdW5jdGlvbiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IHNpbmdsZS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnZhbGlkIGZ1bmN0aW9uIElEIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWZTZWdTdGFydCBpcyB0aGUgb2Zmc2V0IGluIGJ1ZiB0byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBvZiB0aGUgc2VnbWVudCB3ZSBhcmUgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZTZWdTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlU2VjdGlvbihydWxlLCBpcmVmWzBdLCBsaW1pdCwgcGFyc2VyLCBidWYsIElMTEVHQUxfRlVOQywgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFmdGVyIHBhcnNpbmcgYSBzZWdtZW50LCB0aGUgcmVsZXZhbnQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGJ1Ziwgc3RhcnRpbmcgYXQgb2Zmc2V0IGJ1ZlNlZ1N0YXJ0LgorICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25SZXBsYWNlciByID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY3Rpb25SZXBsYWNlcih0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nUmVwbGFjZXIoYnVmLnN1YnN0cmluZyhidWZTZWdTdGFydCksIHBhcnNlci5jdXJEYXRhKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGJ1ZmZlciBjb250ZW50cyB3aXRoIGEgc3RhbmQtaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoYnVmU2VnU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2VuZXJhdGVTdGFuZEluRm9yKHIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFRhYmxlLlNZTUJPTF9SRUY6CisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSB2YXJpYWJsZSByZWZlcmVuY2VzIGFuZCBzZWdtZW50IHJlZmVyZW5jZXMgIiQxIiAuLiAiJDkiCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgdmFyaWFibGUgcmVmZXJlbmNlIG11c3QgYmUgZm9sbG93ZWQgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IGEgVW5pY29kZSBpZGVudGlmaWVyIHN0YXJ0IGFuZCB6ZXJvIG9yIG1vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuaWNvZGUgaWRlbnRpZmllciBwYXJ0IGNoYXJhY3RlcnMsIG9yIGJ5IGEgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEuLjkgaWYgaXQgaXMgYSBzZWdtZW50IHJlZmVyZW5jZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHZhcmlhYmxlIHJlZiBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBhY3RzIGFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW4gYW5jaG9yIHRvIHRoZSBjb250ZXh0IGxpbWl0LCBhcyBpbiBwZXJsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSAiJDEiICIkMiIgLi4gIiQ5IiAuLiAobm8gdXBwZXIgbGltaXQpCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gcnVsZS5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByID0gVUNoYXJhY3Rlci5kaWdpdChjLCAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA+PSAxICYmIHIgPD0gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlyZWZbMF0gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IFV0aWxpdHkucGFyc2VOdW1iZXIocnVsZSwgaXJlZiwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHNlZ21lbnQgcmVmZXJlbmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpcmVmWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdldFNlZ21lbnRTdGFuZGluKHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IG51bGwpIHsgLy8gTGF6eSBjcmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0SW5kZXgocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcnNlci5wYXJzZURhdGEuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUmVmZXJlbmNlKHJ1bGUsIHBwLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoZSAnJCcgd2FzIG5vdCBmb2xsb3dlZCBieSBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIG5hbWUuICBUcnkgdG8gaW50ZXJwcmV0IGl0IGFzIGFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZCBhbmNob3IgdGhlbi4gIElmIHRoaXMgYWxzbyBkb2Vzbid0IHdvcmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGlmIHdlIHNlZSBhIGZvbGxvd2luZyBjaGFyYWN0ZXIpIHRoZW4gc2lnbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHAuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgdmFyaWFibGUgZGVmaW5pdGlvbiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB0aGUgTEhTIHZhcmlhYmxlIHdpbGwgYmUgdW5kZWZpbmVkLiAgSW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGNhc2UgYXBwZW5kVmFyaWFibGVEZWYoKSB3aWxsIGFwcGVuZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIHBsYWNlaG9sZGVyIGNoYXIgdmFyaWFibGVMaW1pdC0xLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhclN0YXJ0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5hcHBlbmRWYXJpYWJsZURlZihuYW1lLCBidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhckxpbWl0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRE9UOgorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZXREb3RTdGFuZEluKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEtMRUVORV9TVEFSOgorICAgICAgICAgICAgICAgIGNhc2UgT05FX09SX01PUkU6CisgICAgICAgICAgICAgICAgY2FzZSBaRVJPX09SX09ORToKKyAgICAgICAgICAgICAgICAgICAgLy8gUXVhbnRpZmllcnMuICBXZSBoYW5kbGUgc2luZ2xlIGNoYXJhY3RlcnMsIHF1b3RlZCBzdHJpbmdzLAorICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSByZWZlcmVuY2VzLCBhbmQgc2VnbWVudHMuCisgICAgICAgICAgICAgICAgICAgIC8vICBhKyAgICAgIG1hdGNoZXMgIGFhYQorICAgICAgICAgICAgICAgICAgICAvLyAgJ2ZvbycrICBtYXRjaGVzICBmb29mb29mb28KKyAgICAgICAgICAgICAgICAgICAgLy8gICR2KyAgICAgbWF0Y2hlcyAgeHl4eXh5IGlmICR2ID09IHh5CisgICAgICAgICAgICAgICAgICAgIC8vICAoc2VnKSsgIG1hdGNoZXMgIHNlZ3NlZ3NlZworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZWdtZW50ICYmIGJ1Zi5sZW5ndGgoKSA9PSBidWZTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgaW1tZWRpYXRlbHkgZm9sbG93cyAnKCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkIHF1YW50aWZpZXIiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHFzdGFydCwgcWxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBmb2xsb3dzIGFuIGlzb2xhdGVkIGNoYXJhY3RlciBvciBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgdmFyaWFibGUgcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IHF1b3RlTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYSAncXVvdGVkIHN0cmluZycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxc3RhcnQgPSBxdW90ZVN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFsaW1pdCA9IHF1b3RlTGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJ1Zi5sZW5ndGgoKSA9PSB2YXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgZm9sbG93cyBhICR2YXJpYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzdGFydCA9IHZhclN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFsaW1pdCA9IHZhckxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYSBzaW5nbGUgY2hhcmFjdGVyLCBwb3NzaWJseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgc2VnbWVudCBzdGFuZGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXN0YXJ0ID0gYnVmLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxbGltaXQgPSBxc3RhcnQgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtOworCQkJCQkJdHJ5IHsKKwkJCQkJCQltID0gbmV3IFN0cmluZ01hdGNoZXIoYnVmLnRvU3RyaW5nKCksIHFzdGFydCwgcWxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHBhcnNlci5jdXJEYXRhKTsKKwkJCQkJCX0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworCQkJCQkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkZhaWx1cmUgaW4gcnVsZTogIiArIHJ1bGUuc3Vic3RyaW5nKHBvcywgbGltaXQpKTsKKwkJCQkJCX0KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heCA9IFF1YW50aWZpZXIuTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9ORV9PUl9NT1JFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFpFUk9fT1JfT05FOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlIEtMRUVORV9TVEFSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGRvIG5vdGhpbmcgLS0gbWluLCBtYXggYWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBuZXcgUXVhbnRpZmllcihtLCBtaW4sIG1heCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKHFzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZW5lcmF0ZVN0YW5kSW5Gb3IobSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgV0lUSElOIHNlZ21lbnRzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBjYXNlIFNFR01FTlRfQ0xPU0U6CisgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChpc1NlZ21lbnQpOworICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBkb25lIHBhcnNpbmcgYSBzZWdtZW50LgorICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgT1VUU0lERSBzZWdtZW50cworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgY2FzZSBDT05URVhUX0FOVEU6CisgICAgICAgICAgICAgICAgICAgIGlmIChhbnRlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNdWx0aXBsZSBhbnRlIGNvbnRleHRzIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFudGUgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ09OVEVYVF9QT1NUOgorICAgICAgICAgICAgICAgICAgICBpZiAocG9zdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTXVsdGlwbGUgcG9zdCBjb250ZXh0cyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3N0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9QT1M6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3IgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGN1cnNvcnMiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9PRkZTRVQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgIiArIGMsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY3Vyc29yT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvck9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gY3Vyc29yT2Zmc2V0UG9zIHx8IGN1cnNvciA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytjdXJzb3JPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yID09IDAgJiYgYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvck9mZnNldFBvcyA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkICIgKyBjLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIC8vIE5vbi1zcGVjaWFsIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIC8vIERpc2FsbG93IHVucXVvdGVkIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbMC05QS1aYS16XQorICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgcHJpbnRhYmxlIEFTQ0lJIHJhbmdlLiAgVGhlc2UgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXJ2ZWQgZm9yIHBvc3NpYmxlIGZ1dHVyZSB1c2UuCisgICAgICAgICAgICAgICAgICAgIGlmIChjID49IDB4MDAyMSAmJiBjIDw9IDB4MDA3RSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgISgoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnF1b3RlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVtb3ZlIGNvbnRleHQuCisgICAgICAgICAqLworICAgICAgICB2b2lkIHJlbW92ZUNvbnRleHQoKSB7CisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoYW50ZSA8IDAgPyAwIDogYW50ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0IDwgMCA/IHRleHQubGVuZ3RoKCkgOiBwb3N0KTsKKyAgICAgICAgICAgIGFudGUgPSBwb3N0ID0gLTE7CisgICAgICAgICAgICBhbmNob3JTdGFydCA9IGFuY2hvckVuZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgaGFsZiBsb29rcyBsaWtlIHZhbGlkIG91dHB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBxdWFudGlmaWVycyBvciBvdGhlciBzcGVjaWFsIGlucHV0LW9ubHkgZWxlbWVudHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkT3V0cHV0KFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlcikgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRGF0YS5pc1JlcGxhY2VyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGhhbGYgbG9va3MgbGlrZSB2YWxpZCBpbnB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBmdW5jdGlvbnMgb3Igb3RoZXIgc3BlY2lhbCBvdXRwdXQtb25seSBlbGVtZW50cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzVmFsaWRJbnB1dChUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlci5wYXJzZURhdGEuaXNNYXRjaGVyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFBVQkxJQyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzZXQgb2YgcnVsZXMuICBBZnRlciB0aGUgcGFyc2UgY29tcGxldGVzLCBleGFtaW5lIHRoZSBwdWJsaWMKKyAgICAgKiBkYXRhIG1lbWJlcnMgZm9yIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uKSB7CisgICAgICAgIHBhcnNlUnVsZXMobmV3IFJ1bGVBcnJheShuZXcgU3RyaW5nW10geyBydWxlcyB9KSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHNldCBvZiBydWxlcy4gIEFmdGVyIHRoZSBwYXJzZSBjb21wbGV0ZXMsIGV4YW1pbmUgdGhlIHB1YmxpYworICAgICAqIGRhdGEgbWVtYmVycyBmb3IgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZShSZXNvdXJjZVJlYWRlciBydWxlcywgaW50IGRpcmVjdGlvbikgeworICAgICAgICBwYXJzZVJ1bGVzKG5ldyBSdWxlUmVhZGVyKHJ1bGVzKSwgZGlyZWN0aW9uKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQUklWQVRFIG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIGFycmF5IG9mIHplcm8gb3IgbW9yZSBydWxlcy4gIFRoZSBzdHJpbmdzIGluIHRoZSBhcnJheSBhcmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIHRoZXkgd2VyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIsIHdpdGggcnVsZSB0ZXJtaW5hdG9ycworICAgICAqIGluc2VydGVkIGJldHdlZW4gYXJyYXkgZWxlbWVudHMgaWYgbm90IHByZXNlbnQgYWxyZWFkeS4KKyAgICAgKgorICAgICAqIEFueSBwcmV2aW91cyBydWxlcyBhcmUgZGlzY2FyZGVkLiAgVHlwaWNhbGx5IHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5CisgICAgICogb25jZSwgZHVyaW5nIGNvbnN0cnVjdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSBtZW1iZXIgdGhpcy5kYXRhIHdpbGwgYmUgc2V0IHRvIG51bGwgaWYgdGhlcmUgYXJlIG5vIHJ1bGVzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlCisgICAgICogcnVsZXMKKyAgICAgKi8KKyAgICB2b2lkIHBhcnNlUnVsZXMoUnVsZUJvZHkgcnVsZUFycmF5LCBpbnQgZGlyKSB7CisgICAgICAgIGJvb2xlYW4gcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgIGJvb2xlYW4gaW5CZWdpbkVuZEJsb2NrID0gZmFsc2U7CisgICAgICAgIGludCBydWxlQ291bnQgPSAwOworCisgICAgICAgIGRhdGFWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGlkQmxvY2tWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGN1ckRhdGEgPSBudWxsOworICAgICAgICBkaXJlY3Rpb24gPSBkaXI7CisgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gbnVsbDsKKyAgICAgICAgdmFyaWFibGVzVmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICB2YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBwYXJzZURhdGEgPSBuZXcgUGFyc2VEYXRhKCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9ycyA9IG51bGw7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICBydWxlQXJyYXkucmVzZXQoKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgaWRCbG9ja1Jlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBUaGUgY29tcG91bmQgZmlsdGVyIG9mZnNldCBpcyBhbiBpbmRleCBpbnRvIGlkQmxvY2tSZXN1bHQuCisgICAgICAgIC8vIElmIGl0IGlzIDAsIHRoZW4gdGhlIGNvbXBvdW5kIGZpbHRlciBvY2N1cnJlZCBhdCB0aGUgc3RhcnQsCisgICAgICAgIC8vIGFuZCBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfc3RhcnRfIG9mIHRoZSBjb21wb3VuZCBmaWx0ZXIKKyAgICAgICAgLy8gcGF0dGVybi4gIE90aGVyd2lzZSBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfbGltaXRfIG9mIHRoZQorICAgICAgICAvLyBjb21wb3VuZCBmaWx0ZXIgcGF0dGVybiB3aXRoaW4gaWRCbG9ja1Jlc3VsdC4KKyAgICAgICAgdGhpcy5jb21wb3VuZEZpbHRlciA9IG51bGw7CisgICAgICAgIGludCBjb21wb3VuZEZpbHRlck9mZnNldCA9IC0xOworCisgICAgbWFpbjoKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSBydWxlQXJyYXkubmV4dExpbmUoKTsKKyAgICAgICAgICAgIGlmIChydWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gcnVsZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFNraXAgbGluZXMgc3RhcnRpbmcgd2l0aCB0aGUgY29tbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBSVUxFX0NPTU1FTlRfQ0hBUikgeworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlLmluZGV4T2YoIlxuIiwgcG9zKSArIDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIE5vICJcbiIgZm91bmQ7IHJlc3Qgb2YgcnVsZSBpcyBhIGNvbW1uZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRWl0aGVyIGZhbGwgb3V0IG9yIHJlc3RhcnQgd2l0aCBuZXh0IGxpbmUKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBza2lwIGVtcHR5IHJ1bGVzCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRU5EX09GX1JVTEUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gT2Z0ZW4gYSBydWxlIGZpbGUgY29udGFpbnMgbXVsdGlwbGUgZXJyb3JzLiAgSXQncworICAgICAgICAgICAgICAgIC8vIGNvbnZlbmllbnQgdG8gdGhlIHJ1bGUgYXV0aG9yIGlmIHRoZXNlIGFyZSBhbGwgcmVwb3J0ZWQKKyAgICAgICAgICAgICAgICAvLyBhdCBvbmNlLiAgV2Uga2VlcCBwYXJzaW5nIHJ1bGVzIGV2ZW4gYWZ0ZXIgYSBmYWlsdXJlLCB1cAorICAgICAgICAgICAgICAgIC8vIHRvIGEgc3BlY2lmaWVkIGxpbWl0LCBhbmQgcmVwb3J0IGFsbCBlcnJvcnMgYXQgb25jZS4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICArK3J1bGVDb3VudDsKKworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBmb3VuZCB0aGUgc3RhcnQgb2YgYSBydWxlIG9yIElELiAgYyBpcyBpdHMgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLCBhbmQgcG9zIHBvaW50cyBwYXN0IGMuCisgICAgICAgICAgICAgICAgICAgIC0tcG9zOworICAgICAgICAgICAgICAgICAgICAvLyBMb29rIGZvciBhbiBJRCB0b2tlbi4gIE11c3QgaGF2ZSBhdCBsZWFzdCBJRF9UT0tFTl9MRU4gKyAxCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJzIGxlZnQuCisgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgSURfVE9LRU5fTEVOICsgMSkgPD0gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJlZ2lvbk1hdGNoZXMocG9zLCBJRF9UT0tFTiwgMCwgSURfVE9LRU5fTEVOKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IElEX1RPS0VOX0xFTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpICYmIHBvcyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBwID0gbmV3IGludFtdIHsgcG9zIH07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2luZ0lEcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJEYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGN1ckRhdGEsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU2luZ2xlSUQgaWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VTaW5nbGVJRCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHAsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocFswXSAhPSBwb3MgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VjY2Vzc2Z1bCA6OklEIHBhcnNlLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuYXBwZW5kKGlkLmNhbm9uSUQpLmFwcGVuZChFTkRfT0ZfUlVMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRCbG9ja1Jlc3VsdC5pbnNlcnQoMCwgaWQuY2Fub25JRCArIEVORF9PRl9SVUxFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ291bGRuJ3QgcGFyc2UgYW4gSUQuICBUcnkgdG8gcGFyc2UgYSBnbG9iYWwgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbXSB7IC0xIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBmID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUdsb2JhbEZpbHRlcihydWxlLCBwLCBkaXJlY3Rpb24sIHdpdGhQYXJlbnMsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmICE9IG51bGwgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2l0aFBhcmVuc1swXSA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBjb21wb3VuZCBmaWx0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGdsb2JhbCBmaWx0ZXJzIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyT2Zmc2V0ID0gcnVsZUNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIDo6aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuIGJlIHBhcnNlZCBhcyBuZWl0aGVyIGFuIElEIG5vciBhIGdsb2JhbCBmaWx0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludmFsaWQgOjpJRCIsIHJ1bGUsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwWzBdOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNpbmdJRHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuYWRkKGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmluc2VydEVsZW1lbnRBdChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuZGVsZXRlKDAsIGlkQmxvY2tSZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNpbmdJRHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIHJ1bGVzIHVzZSBwYXJ0IG9mIHRoZSBwcml2YXRlIHVzZSBhcmVhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRTAwMC4uRjhGRiBmb3IgdmFyaWFibGVzIGFuZCBvdGhlciBzdGFuZC1pbnMuICBDdXJyZW50bHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmFuZ2UgRjAwMC4uRjhGRiBpcyB0eXBpY2FsbHkgc3VmZmljaWVudC4gIFRoZSAndXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgcmFuZ2UnIHByYWdtYSBhbGxvd3MgcnVsZSBzZXRzIHRvIG1vZGlmeSB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFZhcmlhYmxlUmFuZ2UoMHhGMDAwLCAweEY4RkYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzZW1ibGVzUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBwcCA9IHBhcnNlUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcHAgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnJlY29nbml6ZWQgcHJhZ21hIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHBwOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgYSBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlUnVsZShydWxlLCBwb3MsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID09IDMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbk1vcmUgdGhhbiAzMCBlcnJvcnM7IGZ1cnRoZXIgbWVzc2FnZXMgc3F1ZWxjaGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gbmV3IFN0cmluZ0J1ZmZlcihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbiIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytlcnJvckNvdW50OworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlRW5kKHJ1bGUsIHBvcywgbGltaXQpICsgMTsgLy8gKzEgYWR2YW5jZXMgcGFzdCAnOycKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcnNpbmdJRHMgJiYgaWRCbG9ja1Jlc3VsdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkKKyAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmFkZChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXBhcnNpbmdJRHMgJiYgY3VyRGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5pbnNlcnRFbGVtZW50QXQoY3VyRGF0YSwgMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZXQgdmVjdG9yIHRvIGFuIGFycmF5CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YVZlY3Rvci5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhID0gKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpZGF0YVZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICBkYXRhLnZhcmlhYmxlcyA9IG5ldyBPYmplY3RbdmFyaWFibGVzVmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuY29weUludG8oZGF0YS52YXJpYWJsZXMpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzLnB1dEFsbCh2YXJpYWJsZU5hbWVzKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IgPSBudWxsOworCisgICAgICAgIC8vIERvIG1vcmUgc3ludGF4IGNoZWNraW5nIGFuZCBpbmRleCB0aGUgcnVsZXMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCAmJgorICAgICAgICAgICAgICAgICAgICAgY29tcG91bmRGaWx0ZXJPZmZzZXQgIT0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5SRVZFUlNFICYmCisgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZEZpbHRlck9mZnNldCAhPSBydWxlQ291bnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbXBvdW5kIGZpbHRlcnMgbWlzcGxhY2VkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEgPSAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlkYXRhVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQuZnJlZXplKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmICgoU3RyaW5nKWlkQmxvY2tWZWN0b3IuZ2V0KDApKS5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IucmVtb3ZlKDApOworCisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG4iKS5hcHBlbmQoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGVycm9ycyAhPSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGVycm9ycy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1BSU4gUEFSU0VSLiAgUGFyc2UgdGhlIG5leHQgcnVsZSBpbiB0aGUgZ2l2ZW4gcnVsZSBzdHJpbmcsIHN0YXJ0aW5nCisgICAgICogYXQgcG9zLiAgUmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLiAgRG8gbm90CisgICAgICogcGFyc2UgY2hhcmFjdGVycyBhdCBvciBhZnRlciBsaW1pdC4KKyAgICAgKgorICAgICAqIEltcG9ydGFudDogIFRoZSBjaGFyYWN0ZXIgYXQgcG9zIG11c3QgYmUgYSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiB0aGF0IGlzIG5vdCB0aGUgY29tbWVudCBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBoYW5kbGVzIHF1b3RpbmcsIGVzY2FwaW5nLCBhbmQgd2hpdGVzcGFjZSByZW1vdmFsLiAgSXQKKyAgICAgKiBwYXJzZXMgdGhlIGVuZC1vZi1ydWxlIGNoYXJhY3Rlci4gIEl0IHJlY29nbml6ZXMgY29udGV4dCBhbmQgY3Vyc29yCisgICAgICogaW5kaWNhdG9ycy4gIE9uY2UgaXQgZG9lcyBhIGxleGljYWwgYnJlYWtkb3duIG9mIHRoZSBydWxlIGF0IHBvcywgaXQKKyAgICAgKiBjcmVhdGVzIGEgcnVsZSBvYmplY3QgYW5kIGFkZHMgaXQgdG8gb3VyIHJ1bGUgbGlzdC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaW5uZXIgY2xhc3MgUnVsZUhhbGYuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcGFyc2VSdWxlKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgLy8gTG9jYXRlIHRoZSBsZWZ0IHNpZGUsIG9wZXJhdG9yLCBhbmQgcmlnaHQgc2lkZQorICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGNoYXIgb3BlcmF0b3IgPSAwOworCisgICAgICAgIC8vIFNldCB1cCBzZWdtZW50cyBkYXRhCisgICAgICAgIHNlZ21lbnRTdGFuZGlucyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc2VnbWVudE9iamVjdHMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgUnVsZUhhbGYgbGVmdCAgPSBuZXcgUnVsZUhhbGYoKTsKKyAgICAgICAgUnVsZUhhbGYgcmlnaHQgPSBuZXcgUnVsZUhhbGYoKTsKKworICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBudWxsOworICAgICAgICBwb3MgPSBsZWZ0LnBhcnNlKHJ1bGUsIHBvcywgbGltaXQsIHRoaXMpOworCisgICAgICAgIGlmIChwb3MgPT0gbGltaXQgfHwKKyAgICAgICAgICAgIE9QRVJBVE9SUy5pbmRleE9mKG9wZXJhdG9yID0gcnVsZS5jaGFyQXQoLS1wb3MpKSA8IDApIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJObyBvcGVyYXRvciBwb3M9IiArIHBvcywgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgICsrcG9zOworCisgICAgICAgIC8vIEZvdW5kIGFuIG9wZXJhdG9yIGNoYXIuICBDaGVjayBmb3IgZm9yd2FyZC1yZXZlcnNlIG9wZXJhdG9yLgorICAgICAgICBpZiAob3BlcmF0b3IgPT0gUkVWRVJTRV9SVUxFX09QICYmCisgICAgICAgICAgICAocG9zIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocG9zKSA9PSBGT1JXQVJEX1JVTEVfT1ApKSB7CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIG9wZXJhdG9yID0gRldEUkVWX1JVTEVfT1A7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2xhdGUgYWx0ZXJuYXRlIG9wIGNoYXJhY3RlcnMuCisgICAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHsKKyAgICAgICAgY2FzZSBBTFRfRk9SV0FSRF9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBGT1JXQVJEX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfUkVWRVJTRV9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBSRVZFUlNFX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfRldEUkVWX1JVTEVfT1A6CisgICAgICAgICAgICBvcGVyYXRvciA9IEZXRFJFVl9SVUxFX09QOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBwb3MgPSByaWdodC5wYXJzZShydWxlLCBwb3MsIGxpbWl0LCB0aGlzKTsKKworICAgICAgICBpZiAocG9zIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdCgtLXBvcykgPT0gRU5EX09GX1JVTEUpIHsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gUnVsZUhhbGYgcGFyc2VyIG11c3QgaGF2ZSB0ZXJtaW5hdGVkIGF0IGFuIG9wZXJhdG9yCisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVucXVvdGVkIG9wZXJhdG9yIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZXJhdG9yID09IFZBUklBQkxFX0RFRl9PUCkgeworICAgICAgICAgICAgLy8gTEhTIGlzIHRoZSBuYW1lLiAgUkhTIGlzIGEgc2luZ2xlIGNoYXJhY3RlciwgZWl0aGVyIGEgbGl0ZXJhbAorICAgICAgICAgICAgLy8gb3IgYSBzZXQgKGFscmVhZHkgcGFyc2VkKS4gIElmIFJIUyBpcyBsb25nZXIgdGhhbiBvbmUKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciwgaXQgaXMgZWl0aGVyIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgb3IgbXVsdGlwbGUKKyAgICAgICAgICAgIC8vIHNldHMsIG9yIGEgbWl4dHVyZSBvZiBjaGFycyBhbmQgc2V0cyAtLSBzeW50YXggZXJyb3IuCisKKyAgICAgICAgICAgIC8vIFdlIGV4cGVjdCB0byBzZWUgYSBzaW5nbGUgdW5kZWZpbmVkIHZhcmlhYmxlICh0aGUgb25lIGJlaW5nCisgICAgICAgICAgICAvLyBkZWZpbmVkKS4KKyAgICAgICAgICAgIGlmICh1bmRlZmluZWRWYXJpYWJsZU5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNzaW5nICckJyBvciBkdXBsaWNhdGUgZGVmaW5pdGlvbiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LnRleHQubGVuZ3RoKCkgIT0gMSB8fCBsZWZ0LnRleHQuY2hhckF0KDApICE9IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIExIUyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LmFuY2hvclN0YXJ0IHx8IGxlZnQuYW5jaG9yRW5kIHx8CisgICAgICAgICAgICAgICAgcmlnaHQuYW5jaG9yU3RhcnQgfHwgcmlnaHQuYW5jaG9yRW5kKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1hbGZvcm1lZCB2YXJpYWJsZSBkZWYiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBXZSBhbGxvdyBhbnl0aGluZyBvbiB0aGUgcmlnaHQsIGluY2x1ZGluZyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICAgICAgICBpbnQgbiA9IHJpZ2h0LnRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBjaGFyW10gdmFsdWUgPSBuZXcgY2hhcltuXTsKKyAgICAgICAgICAgIHJpZ2h0LnRleHQuZ2V0Q2hhcnMoMCwgbiwgdmFsdWUsIDApOworICAgICAgICAgICAgdmFyaWFibGVOYW1lcy5wdXQodW5kZWZpbmVkVmFyaWFibGVOYW1lLCB2YWx1ZSk7CisKKyAgICAgICAgICAgICsrdmFyaWFibGVMaW1pdDsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIHZhcmlhYmxlIGRlZmluaXRpb24gcnVsZSwgd2Ugc2hvdWxkbid0IGhhdmUKKyAgICAgICAgLy8gYW55IHVuZGVmaW5lZCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgaWYgKHVuZGVmaW5lZFZhcmlhYmxlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHZhcmlhYmxlICQiICsgdW5kZWZpbmVkVmFyaWFibGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmVyaWZ5IHNlZ21lbnRzCisgICAgICAgIGlmIChzZWdtZW50U3RhbmRpbnMubGVuZ3RoKCkgPiBzZWdtZW50T2JqZWN0cy5zaXplKCkpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmRlZmluZWQgc2VnbWVudCByZWZlcmVuY2UiLCBydWxlLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNlZ21lbnRTdGFuZGlucy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmNoYXJBdChpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50T2JqZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLmVsZW1lbnRBdChpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGRpcmVjdGlvbiB3ZSB3YW50IGRvZXNuJ3QgbWF0Y2ggdGhlIHJ1bGUKKyAgICAgICAgLy8gZGlyZWN0aW9uLCBkbyBub3RoaW5nLgorICAgICAgICBpZiAob3BlcmF0b3IgIT0gRldEUkVWX1JVTEVfT1AgJiYKKyAgICAgICAgICAgICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpICE9IChvcGVyYXRvciA9PSBGT1JXQVJEX1JVTEVfT1ApKSkgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgcnVsZSBpbnRvIGEgZm9yd2FyZCBydWxlIGJ5IHN3YXBwaW5nIHRoZQorICAgICAgICAvLyBzaWRlcyBpZiBuZWNlc3NhcnkuCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSkgeworICAgICAgICAgICAgUnVsZUhhbGYgdGVtcCA9IGxlZnQ7CisgICAgICAgICAgICBsZWZ0ID0gcmlnaHQ7CisgICAgICAgICAgICByaWdodCA9IHRlbXA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZW1vdmUgbm9uLWFwcGxpY2FibGUgZWxlbWVudHMgaW4gZm9yd2FyZC1yZXZlcnNlCisgICAgICAgIC8vIHJ1bGVzLiAgQmlkaXJlY3Rpb25hbCBydWxlcyBpZ25vcmUgZWxlbWVudHMgdGhhdCBkbyBub3QKKyAgICAgICAgLy8gYXBwbHkuCisgICAgICAgIGlmIChvcGVyYXRvciA9PSBGV0RSRVZfUlVMRV9PUCkgeworICAgICAgICAgICAgcmlnaHQucmVtb3ZlQ29udGV4dCgpOworICAgICAgICAgICAgbGVmdC5jdXJzb3IgPSAtMTsKKyAgICAgICAgICAgIGxlZnQuY3Vyc29yT2Zmc2V0ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vcm1hbGl6ZSBjb250ZXh0CisgICAgICAgIGlmIChsZWZ0LmFudGUgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LmFudGUgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChsZWZ0LnBvc3QgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LnBvc3QgPSBsZWZ0LnRleHQubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb250ZXh0IGlzIG9ubHkgYWxsb3dlZCBvbiB0aGUgaW5wdXQgc2lkZS4gIEN1cnNvcnMgYXJlIG9ubHkKKyAgICAgICAgLy8gYWxsb3dlZCBvbiB0aGUgb3V0cHV0IHNpZGUuICBTZWdtZW50IGRlbGltaXRlcnMgY2FuIG9ubHkgYXBwZWFyCisgICAgICAgIC8vIG9uIHRoZSBsZWZ0LCBhbmQgcmVmZXJlbmNlcyBvbiB0aGUgcmlnaHQuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBhcHBlYXIgd2l0aG91dCBhbiBleHBsaWNpdCBjdXJzb3IuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBwbGFjZSB0aGUgY3Vyc29yIG91dHNpZGUgdGhlIGxpbWl0cyBvZiB0aGUgY29udGV4dC4KKyAgICAgICAgLy8gQW5jaG9ycyBhcmUgb25seSBhbGxvd2VkIG9uIHRoZSBpbnB1dCBzaWRlLgorICAgICAgICBpZiAocmlnaHQuYW50ZSA+PSAwIHx8IHJpZ2h0LnBvc3QgPj0gMCB8fCBsZWZ0LmN1cnNvciA+PSAwIHx8CisgICAgICAgICAgICAocmlnaHQuY3Vyc29yT2Zmc2V0ICE9IDAgJiYgcmlnaHQuY3Vyc29yIDwgMCkgfHwKKyAgICAgICAgICAgIC8vIC0gVGhlIGZvbGxvd2luZyB0d28gY2hlY2tzIHdlcmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgICAgICAgIC8vIC0gdGhlIGN1cnNvciBvZmZzZXQgc3RheWVkIHdpdGhpbiB0aGUgYW50ZS0gb3IgcG9zdGNvbnRleHQuCisgICAgICAgICAgICAvLyAtIEhvd2V2ZXIsIHdpdGggdGhlIGFkZGl0aW9uIG9mIHF1YW50aWZpZXJzLCB3ZSBoYXZlIHRvCisgICAgICAgICAgICAvLyAtIGFsbG93IGFyYml0cmFyeSBjdXJzb3Igb2Zmc2V0cyBhbmQgZG8gcnVudGltZSBjaGVja2luZy4KKyAgICAgICAgICAgIC8vKHJpZ2h0LmN1cnNvck9mZnNldCA+IChsZWZ0LnRleHQubGVuZ3RoKCkgLSBsZWZ0LnBvc3QpKSB8fAorICAgICAgICAgICAgLy8oLXJpZ2h0LmN1cnNvck9mZnNldCA+IGxlZnQuYW50ZSkgfHwKKyAgICAgICAgICAgIHJpZ2h0LmFuY2hvclN0YXJ0IHx8IHJpZ2h0LmFuY2hvckVuZCB8fAorICAgICAgICAgICAgIWxlZnQuaXNWYWxpZElucHV0KHRoaXMpIHx8ICFyaWdodC5pc1ZhbGlkT3V0cHV0KHRoaXMpIHx8CisgICAgICAgICAgICBsZWZ0LmFudGUgPiBsZWZ0LnBvc3QpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZsYXR0ZW4gc2VnbWVudCBvYmplY3RzIHZlY3RvciB0byBhbiBhcnJheQorICAgICAgICBVbmljb2RlTWF0Y2hlcltdIHNlZ21lbnRzQXJyYXkgPSBudWxsOworICAgICAgICBpZiAoc2VnbWVudE9iamVjdHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgc2VnbWVudHNBcnJheSA9IG5ldyBVbmljb2RlTWF0Y2hlcltzZWdtZW50T2JqZWN0cy5zaXplKCldOworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMudG9BcnJheShzZWdtZW50c0FycmF5KTsKKyAgICAgICAgfQorCisgICAgICAgIGN1ckRhdGEucnVsZVNldC5hZGRSdWxlKG5ldyBUcmFuc2xpdGVyYXRpb25SdWxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQudGV4dCwgbGVmdC5hbnRlLCBsZWZ0LnBvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQudGV4dCwgcmlnaHQuY3Vyc29yLCByaWdodC5jdXJzb3JPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LmFuY2hvclN0YXJ0LCBsZWZ0LmFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhKSk7CisKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhcmlhYmxlIHJhbmdlIHRvIFtzdGFydCwgZW5kXSAoaW5jbHVzaXZlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0VmFyaWFibGVSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0ID4gZW5kIHx8IHN0YXJ0IDwgMCB8fCBlbmQgPiAweEZGRkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgdmFyaWFibGUgcmFuZ2UgIiArIHN0YXJ0ICsgIiwgIiArIGVuZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGN1ckRhdGEudmFyaWFibGVzQmFzZSA9IChjaGFyKSBzdGFydDsgLy8gZmlyc3QgcHJpdmF0ZSB1c2UKKworICAgICAgICBpZiAoZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdmFyaWFibGVOZXh0ID0gKGNoYXIpIHN0YXJ0OworICAgICAgICAgICAgdmFyaWFibGVMaW1pdCA9IChjaGFyKSAoZW5kICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIE5PVCB3aXRoaW4gdGhlIHZhcmlhYmxlIHJhbmdlLgorICAgICAqIElmIGl0IGlzLCBzaWduYWwgYW4gZXJyb3IuICBUaGlzIGlzIG5lY2Nlc2FyeSB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgKiB2YXJpYWJsZSByYW5nZSBkb2VzIG5vdCBvdmVybGFwIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrVmFyaWFibGVSYW5nZShpbnQgY2gsIFN0cmluZyBydWxlLCBpbnQgc3RhcnQpIHsKKyAgICAgICAgaWYgKGNoID49IGN1ckRhdGEudmFyaWFibGVzQmFzZSAmJiBjaCA8IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJWYXJpYWJsZSByYW5nZSBjaGFyYWN0ZXIgaW4gcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIChUaGUgZm9sbG93aW5nIG1ldGhvZCBpcyBwYXJ0IG9mIGFuIHVuaW1wbGVtZW50ZWQgZmVhdHVyZS4KKyAgICAvLyBSZW1vdmUgdGhpcyBjbG92ZXIgcHJhZ21hIGFmdGVyIHRoZSBmZWF0dXJlIGlzIGltcGxlbWVudGVkLgorICAgIC8vIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1heGltdW0gYmFja3VwIHRvICdiYWNrdXAnLCBpbiByZXNwb25zZSB0byBhIHByYWdtYQorICAgICAqIHN0YXRlbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJhZ21hTWF4aW11bUJhY2t1cChpbnQgYmFja3VwKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG1heGltdW0gYmFja3VwIHByYWdtYSBub3QgaW1wbGVtZW50ZWQgeWV0Iik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIHBhcnQgb2YgYW4gdW5pbXBsZW1lbnRlZCBmZWF0dXJlLgorICAgIC8vIFJlbW92ZSB0aGlzIGNsb3ZlciBwcmFnbWEgYWZ0ZXIgdGhlIGZlYXR1cmUgaXMgaW1wbGVtZW50ZWQuCisgICAgLy8gMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIEJlZ2luIG5vcm1hbGl6aW5nIGFsbCBydWxlcyB1c2luZyB0aGUgZ2l2ZW4gbW9kZSwgaW4gcmVzcG9uc2UKKyAgICAgKiB0byBhIHByYWdtYSBzdGF0ZW1lbnQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG5vcm1hbGl6ZSBydWxlcyBwcmFnbWEgbm90IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBydWxlIGxvb2tzIGxpa2UgYSBwcmFnbWEuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1ByYWdtYShTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIC8vIE11c3Qgc3RhcnQgd2l0aCAvdXNlXHMvaQorICAgICAgICByZXR1cm4gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgInVzZSAiLCBudWxsKSA+PSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcHJhZ21hLiAgVGhpcyBtZXRob2QgYXNzdW1lcyByZXNlbWJsZXNQcmFnbWEoKSBoYXMKKyAgICAgKiBhbHJlYWR5IHJldHVybmVkIHRydWUuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGluZGV4IGFmdGVyIHRoZSBmaW5hbCAnOycgb2YgdGhlIHByYWdtYSwKKyAgICAgKiBvciAtMSBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHBhcnNlUHJhZ21hKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50WzJdOworCisgICAgICAgIC8vIHJlc2VtYmxlc1ByYWdtYSgpIGhhcyBhbHJlYWR5IHJldHVybmVkIHRydWUsIHNvIHdlCisgICAgICAgIC8vIGtub3cgdGhhdCBwb3MgcG9pbnRzIHRvIC91c2Vccy9pOyB3ZSBjYW4gc2tpcCA0IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaW1tZWRpYXRlbHkKKyAgICAgICAgcG9zICs9IDQ7CisgICAgICAgIAorICAgICAgICAvLyBIZXJlIGFyZSB0aGUgcHJhZ21hcyB3ZSByZWNvZ25pemU6CisgICAgICAgIC8vIHVzZSB2YXJpYWJsZSByYW5nZSAweEUwMDAgMHhFRkZGOworICAgICAgICAvLyB1c2UgbWF4aW11bSBiYWNrdXAgMTY7CisgICAgICAgIC8vIHVzZSBuZmQgcnVsZXM7CisgICAgICAgIGludCBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn52YXJpYWJsZSByYW5nZSAjICN+OyIsIGFycmF5KTsKKyAgICAgICAgaWYgKHAgPj0gMCkgeworICAgICAgICAgICAgc2V0VmFyaWFibGVSYW5nZShhcnJheVswXSwgYXJyYXlbMV0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5tYXhpbXVtIGJhY2t1cCAjfjsiLCBhcnJheSk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU1heGltdW1CYWNrdXAoYXJyYXlbMF0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5uZmQgcnVsZXN+OyIsIG51bGwpOworICAgICAgICBpZiAocCA+PSAwKSB7CisgICAgICAgICAgICBwcmFnbWFOb3JtYWxpemVSdWxlcyhOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgICAgIHAgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihydWxlLCBwb3MsIGxpbWl0LCAifm5mYyBydWxlc347IiwgbnVsbCk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3ludGF4IGVycm9yOiB1bmFibGUgdG8gcGFyc2UgcHJhZ21hCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaW5kaWNhdGluZyBhIHN5bnRheCBlcnJvci4gIFNlYXJjaCB0aGUgcnVsZSBzdHJpbmcKKyAgICAgKiBmb3IgdGhlIHByb2JhYmxlIGVuZCBvZiB0aGUgcnVsZS4gIE9mIGNvdXJzZSwgaWYgdGhlIGVycm9yIGlzIHRoYXQKKyAgICAgKiB0aGUgZW5kIG9mIHJ1bGUgbWFya2VyIGlzIG1pc3NpbmcsIHRoZW4gdGhlIHJ1bGUgZW5kIHdpbGwgbm90IGJlIGZvdW5kLgorICAgICAqIEluIGFueSBjYXNlIHRoZSBydWxlIHN0YXJ0IHdpbGwgYmUgY29ycmVjdGx5IHJlcG9ydGVkLgorICAgICAqIEBwYXJhbSBtc2cgZXJyb3IgZGVzY3JpcHRpb24KKyAgICAgKiBAcGFyYW0gcnVsZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiBmaXJzdCBjaGFyYWN0ZXIgb2YgY3VycmVudCBydWxlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1zZywgU3RyaW5nIHJ1bGUsIGludCBzdGFydCkgeworICAgICAgICBpbnQgZW5kID0gcnVsZUVuZChydWxlLCBzdGFydCwgcnVsZS5sZW5ndGgoKSk7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHJ1bGUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKSArICciJyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBydWxlRW5kKFN0cmluZyBydWxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgZW5kID0gVXRpbGl0eS5xdW90ZWRJbmRleE9mKHJ1bGUsIHN0YXJ0LCBsaW1pdCwgIjsiKTsKKyAgICAgICAgaWYgKGVuZCA8IDApIHsKKyAgICAgICAgICAgIGVuZCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlU2V0IG91dCwgc3RvcmUgaXQsIGFuZCByZXR1cm4gdGhlIHN0YW5kLWluIGNoYXJhY3RlcgorICAgICAqIHVzZWQgdG8gcmVwcmVzZW50IGl0LgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgY2hhciBwYXJzZVNldChTdHJpbmcgcnVsZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChydWxlLCBwb3MsIHBhcnNlRGF0YSk7CisgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlByaXZhdGUgdXNlIHZhcmlhYmxlcyBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXQuY29tcGFjdCgpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVTdGFuZEluRm9yKHNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIHJldHVybiBhIHN0YW5kLWluIGZvciBhIG5ldyBVbmljb2RlTWF0Y2hlciBvciBVbmljb2RlUmVwbGFjZXIuCisgICAgICogU3RvcmUgdGhlIG9iamVjdC4KKyAgICAgKi8KKyAgICBjaGFyIGdlbmVyYXRlU3RhbmRJbkZvcihPYmplY3Qgb2JqKSB7CisgICAgICAgIC8vIGFzc2VydChvYmogIT0gbnVsbCk7CisKKyAgICAgICAgLy8gTG9vayB1cCBwcmV2aW91cyBzdGFuZC1pbiwgaWYgYW55LiAgVGhpcyBpcyBhIHNob3J0IGxpc3QKKyAgICAgICAgLy8gKHR5cGljYWwgbiBpcyAwLCAxLCBvciAyKTsgbGluZWFyIHNlYXJjaCBpcyBvcHRpbWFsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dmFyaWFibGVzVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAodmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSA9PSBvYmopIHsgLy8gW3NpY10gcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKSAoY3VyRGF0YS52YXJpYWJsZXNCYXNlICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFibGVOZXh0ID49IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChvYmopOworICAgICAgICByZXR1cm4gdmFyaWFibGVOZXh0Kys7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZGluIGZvciBzZWdtZW50IHNlZyAoMS1iYXNlZCkuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0U2VnbWVudFN0YW5kaW4oaW50IHNlZykgeworICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmxlbmd0aCgpIDwgc2VnKSB7CisgICAgICAgICAgICBzZWdtZW50U3RhbmRpbnMuc2V0TGVuZ3RoKHNlZyk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjID0gc2VnbWVudFN0YW5kaW5zLmNoYXJBdChzZWctMSk7CisgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSB2YXJpYWJsZU5leHQrKzsKKyAgICAgICAgICAgIC8vIFNldCBhIHBsYWNlaG9sZGVyIGluIHRoZSBtYXN0ZXIgdmFyaWFibGVzIHZlY3RvciB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgIC8vIGZpbGxlZCBpbiBsYXRlciBieSBzZXRTZWdtZW50T2JqZWN0KCkuICBXZSBrbm93IHRoYXQgd2Ugd2lsbCBnZXQKKyAgICAgICAgICAgIC8vIGNhbGxlZCBmaXJzdCBiZWNhdXNlIHNldFNlZ21lbnRPYmplY3QoKSB3aWxsIGNhbGwgdXMuCisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChudWxsKTsKKyAgICAgICAgICAgIHNlZ21lbnRTdGFuZGlucy5zZXRDaGFyQXQoc2VnLTEsIGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG9iamVjdCBmb3Igc2VnbWVudCBzZWcgKDEtYmFzZWQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlZ21lbnRPYmplY3QoaW50IHNlZywgU3RyaW5nTWF0Y2hlciBvYmopIHsKKyAgICAgICAgLy8gU2luY2Ugd2UgY2FsbCBwYXJzZVNlY3Rpb24oKSByZWN1cnNpdmVseSwgbmVzdGVkCisgICAgICAgIC8vIHNlZ21lbnRzIHdpbGwgcmVzdWx0IGluIHNlZ21lbnQgaSsxIGdldHRpbmcgcGFyc2VkCisgICAgICAgIC8vIGFuZCBzdG9yZWQgYmVmb3JlIHNlZ21lbnQgaTsgYmUgY2FyZWZ1bCB3aXRoIHRoZQorICAgICAgICAvLyB2ZWN0b3IgaGFuZGxpbmcgaGVyZS4KKyAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLnNpemUoKSA8IHNlZykgeworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMuc2V0U2l6ZShzZWcpOworICAgICAgICB9CisgICAgICAgIGludCBpbmRleCA9IGdldFNlZ21lbnRTdGFuZGluKHNlZykgLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgIGlmIChzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoc2VnLTEpICE9IG51bGwgfHwKKyAgICAgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaW5kZXgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgICAgICBzZWdtZW50T2JqZWN0cy5zZXRFbGVtZW50QXQob2JqLCBzZWctMSk7CisgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5zZXRFbGVtZW50QXQob2JqLCBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZC1pbiBmb3IgdGhlIGRvdCBzZXQuICBJdCBpcyBhbGxvY2F0ZWQgdGhlIGZpcnN0CisgICAgICogdGltZSBhbmQgcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgY2hhciBnZXREb3RTdGFuZEluKCkgeworICAgICAgICBpZiAoZG90U3RhbmRJbiA9PSAtMSkgeworICAgICAgICAgICAgZG90U3RhbmRJbiA9IGdlbmVyYXRlU3RhbmRJbkZvcihuZXcgVW5pY29kZVNldChET1RfU0VUKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaGFyKSBkb3RTdGFuZEluOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIHZhcmlhYmxlIG5hbWUgdG8gdGhlIGdpdmVuCisgICAgICogU3RyaW5nQnVmZmVyLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuYW1lIGlzIHVua25vd24uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFZhcmlhYmxlRGVmKFN0cmluZyBuYW1lLCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGNoYXJbXSBjaCA9IChjaGFyW10pIHZhcmlhYmxlTmFtZXMuZ2V0KG5hbWUpOworICAgICAgICBpZiAoY2ggPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gV2UgYWxsb3cgb25lIHVuZGVmaW5lZCB2YXJpYWJsZSBzbyB0aGF0IHZhcmlhYmxlIGRlZmluaXRpb24KKyAgICAgICAgICAgIC8vIHN0YXRlbWVudHMgd29yay4gIEZvciB0aGUgZmlyc3QgdW5kZWZpbmVkIHZhcmlhYmxlIHdlIHJldHVybgorICAgICAgICAgICAgLy8gdGhlIHNwZWNpYWwgcGxhY2Vob2xkZXIgdmFyaWFibGVMaW1pdC0xLCBhbmQgc2F2ZSB0aGUgdmFyaWFibGUKKyAgICAgICAgICAgIC8vIG5hbWUuCisgICAgICAgICAgICBpZiAodW5kZWZpbmVkVmFyaWFibGVOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiUHJpdmF0ZSB1c2UgdmFyaWFibGVzIGV4aGF1c3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSAtLXZhcmlhYmxlTGltaXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmRlZmluZWQgdmFyaWFibGUgJCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzg0MTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS5qYXZhCkBAIC0wLDAgKzEsODkzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwOC8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSB7CisKKyAgICAvLyBjaGFyIGNvbnN0YW50cworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgTE9DQUxFX1NFUCAgPSAnXyc7CisKKyAgICAvLyBTdHJpbmcgY29uc3RhbnRzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PX1ZBUklBTlQgPSAiIjsgLy8gZW1wdHkgc3RyaW5nCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworCisgICAgLyoqCisgICAgICogRHluYW1pYyByZWdpc3RyeSBtYXBwaW5nIGZ1bGwgSURzIHRvIEVudHJ5IG9iamVjdHMuICBUaGlzCisgICAgICogY29udGFpbnMgYm90aCBwdWJsaWMgYW5kIGludGVybmFsIGVudGl0aWVzLiAgVGhlIHZpc2liaWxpdHkgaXMKKyAgICAgKiBjb250cm9sbGVkIGJ5IHdoZXRoZXIgYW4gZW50cnkgaXMgbGlzdGVkIGluIGF2YWlsYWJsZUlEcyBhbmQKKyAgICAgKiBzcGVjREFHIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEtleXMgYXJlIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzLgorICAgICAqIFZhbHVlcyBhcmUgb2JqZWN0cyBvZiBjbGFzcyBDbGFzcyAoc3ViY2xhc3Mgb2YgVHJhbnNsaXRlcmF0b3IpLAorICAgICAqIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEsIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnksIG9yIG9uZQorICAgICAqIG9mIHRoZSBlbnRyeSBjbGFzc2VzIGRlZmluZWQgaGVyZSAoQWxpYXNFbnRyeSBvciBSZXNvdXJjZUVudHJ5KS4KKyAgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSByZWdpc3RyeTsKKworICAgIC8qKgorICAgICAqIERBRyBvZiB2aXNpYmxlIElEcyBieSBzcGVjLiAgSGFzaHRhYmxlOiBzb3VyY2UgPT4gKEhhc2h0YWJsZToKKyAgICAgKiB0YXJnZXQgPT4gKFZlY3RvcjogdmFyaWFudCkpIFRoZSBWZWN0b3Igb2YgdmFyaWFudHMgaXMgbmV2ZXIKKyAgICAgKiBlbXB0eS4gIEZvciBhIHNvdXJjZS10YXJnZXQgd2l0aCBubyB2YXJpYW50LCB0aGUgc3BlY2lhbAorICAgICAqIHZhcmlhbnQgTk9fVkFSSUFOVCAodGhlIGVtcHR5IHN0cmluZykgaXMgc3RvcmVkIGluIHNsb3QgemVybyBvZgorICAgICAqIHRoZSBVVmVjdG9yLgorICAgICAqCisgICAgICogS2V5cyBhcmUgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMuCisgICAgICogVmFsdWVzIGFyZSBIYXNodGFibGUgb2YgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyAtPiBWZWN0b3Igb2YKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmcpCisgICAgICovCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3BlY0RBRzsKKworICAgIC8qKgorICAgICAqIFZlY3RvciBvZiBwdWJsaWMgZnVsbCBJRHMgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBhdmFpbGFibGVJRHM7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBTcGVjCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIFNwZWMgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyBlaXRoZXIgYSBzb3VyY2Ugb3IgYSB0YXJnZXQuICBJbiBtb3JlCisgICAgICogZ2VuZXJhbCB0ZXJtcywgaXQgbWF5IGFsc28gc3BlY2lmeSBhIHZhcmlhbnQsIGJ1dCB3ZSBvbmx5IHVzZSB0aGUKKyAgICAgKiBTcGVjIGNsYXNzIGZvciBzb3VyY2VzIGFuZCB0YXJnZXRzLgorICAgICAqCisgICAgICogQSBTcGVjIG1heSBiZSBhIGxvY2FsZSBvciBhIHNjcmlwdC4gIElmIGl0IGlzIGEgbG9jYWxlLCBpdCBoYXMgYQorICAgICAqIGZhbGxiYWNrIGNoYWluIHRoYXQgZ29lcyB4eF9ZWV9aWlogLT4geHhfWVkgLT4geHggLT4gc3Nzcywgd2hlcmUKKyAgICAgKiBzc3NzIGlzIHRoZSBzY3JpcHQgbWFwcGluZyBvZiB4eF9ZWV9aWlouICBUaGUgU3BlYyBBUEkgbWV0aG9kcworICAgICAqIGhhc0ZhbGxiYWNrKCksIG5leHQoKSwgYW5kIHJlc2V0KCkgaXRlcmF0ZSBvdmVyIHRoaXMgZmFsbGJhY2sKKyAgICAgKiBzZXF1ZW5jZS4KKyAgICAgKgorICAgICAqIFRoZSBTcGVjIGNsYXNzIGNhbm9uaWNhbGl6ZXMgaXRzZWxmLCBzbyB0aGUgbG9jYWxlIGlzIHB1dCBpbnRvCisgICAgICogY2Fub25pY2FsIGZvcm0sIG9yIHRoZSBzY3JpcHQgaXMgdHJhbnNmb3JtZWQgZnJvbSBhbiBhYmJyZXZpYXRpb24KKyAgICAgKiB0byBhIGZ1bGwgbmFtZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU3BlYyB7CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdG9wOyAgICAgICAgLy8gdG9wIHNwZWMKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc3BlYzsgICAgICAgLy8gY3VycmVudCBzcGVjCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5leHRTcGVjOyAgIC8vIG5leHQgc3BlYworICAgICAgICBwcml2YXRlIFN0cmluZyBzY3JpcHROYW1lOyAvLyBzY3JpcHQgbmFtZSBlcXVpdmFsZW50IG9mIHRvcCwgaWYgIT0gdG9wCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNMb2NhbGU7IC8vIFRSVUUgaWYgc3BlYyBpcyBhIGxvY2FsZQorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNOZXh0TG9jYWxlOyAvLyBUUlVFIGlmIG5leHRTcGVjIGlzIGEgbG9jYWxlCisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworCisgICAgICAgIHB1YmxpYyBTcGVjKFN0cmluZyB0aGVTcGVjKSB7CisgICAgICAgICAgICB0b3AgPSB0aGVTcGVjOworICAgICAgICAgICAgc3BlYyA9IG51bGw7CisgICAgICAgICAgICBzY3JpcHROYW1lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAvLyBDYW5vbmljYWxpemUgc2NyaXB0IG5hbWUuICBJZiB0b3AgaXMgYSBzY3JpcHQgbmFtZSB0aGVuCisgICAgICAgICAgICAgICAgLy8gc2NyaXB0ICE9IFVTY3JpcHQuSU5WQUxJRF9DT0RFLgorICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldENvZGVGcm9tTmFtZSh0b3ApOworCisgICAgICAgICAgICAgICAgLy8gQ2Fub25pY2FsaXplIHNjcmlwdCBuYW1lIC1vci0gZG8gbG9jYWxlLT5zY3JpcHQgbWFwcGluZworICAgICAgICAgICAgICAgIGludFtdIHMgPSBVU2NyaXB0LmdldENvZGUodG9wKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBVU2NyaXB0LmdldE5hbWUoc1swXSk7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzY3JpcHQgbmFtZSBpcyB0aGUgc2FtZSBhcyB0b3AgdGhlbiBpdCdzIHJlZHVuZGFudAorICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKHRvcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvLyBJZiAndG9wJyBpcyBub3QgYSBzY3JpcHQgbmFtZSwgdHJ5IGEgbG9jYWxlIGxvb2t1cAorICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIHRvcGxvYyA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUodG9wKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzICA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSx0b3Bsb2MpOworICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHRoZSBidW5kbGUgd2Ugd2FudGVkOyBvdGhlcndpc2UsIGRvbid0IHVzZSBpdAorICAgICAgICAgICAgICAgICAgICBpZiAocmVzIT1udWxsICYmIExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKSwgdG9wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgc2NyaXB0TmFtZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhc3NlcnQoc3BlYyAhPSB0b3ApOworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc0ZhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIG5leHRTcGVjICE9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGlmIChzcGVjICE9IHRvcCkgeyAvLyBbc2ljXSBwb2ludGVyIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBzcGVjID0gdG9wOworICAgICAgICAgICAgICAgIGlzU3BlY0xvY2FsZSA9IChyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0dXBOZXh0KCkgeworICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoaXNTcGVjTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjOworICAgICAgICAgICAgICAgIGludCBpID0gbmV4dFNwZWMubGFzdEluZGV4T2YoTE9DQUxFX1NFUCk7CisgICAgICAgICAgICAgICAgLy8gSWYgaSA9PSAwIHRoZW4gd2UgaGF2ZSBfRk9PLCBzbyB3ZSBmYWxsIHRocm91Z2gKKyAgICAgICAgICAgICAgICAvLyB0byB0aGUgc2NyaXB0TmFtZS4KKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXh0U3BlYyA9IHNjcmlwdE5hbWU7IC8vIHNjcmlwdE5hbWUgbWF5IGJlIG51bGwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBzY3JpcHQsIHdoaWNoIG1heSBiZSBudWxsCisgICAgICAgICAgICAgICAgaWYgKG5leHRTcGVjICE9IHNjcmlwdE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzY3JpcHROYW1lOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRTcGVjID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm90b2NvbDoKKyAgICAgICAgLy8gZm9yKFN0cmluZyYgcyhzcGVjLmdldCgpKTsKKyAgICAgICAgLy8gICAgIHNwZWMuaGFzRmFsbGJhY2soKTsgcyhzcGVjLm5leHQoKSkpIHsgLi4uCisKKyAgICAgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAgICAgc3BlYyA9IG5leHRTcGVjOworICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gaXNOZXh0TG9jYWxlOworICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gc3BlYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNwZWM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0xvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpc1NwZWNMb2NhbGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhpcyBzcGVjLCBhdCB0aGUgY3VycmVudAorICAgICAgICAgKiBsZXZlbCBvZiBpdGVyYXRpb24uICBUaGUgbGV2ZWwgb2YgaXRlcmF0aW9uIGdvZXMgZnJvbQorICAgICAgICAgKiBhYV9CQl9DQ0MgdG8gYWFfQkIgdG8gYWEuICBJZiB0aGUgYnVuZGxlIGRvZXMgbm90CisgICAgICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uLCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogSWYgaXNMb2NhbGUoKSBpcyBmYWxzZSwgYWx3YXlzIHJldHVybiBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlc291cmNlQnVuZGxlIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgICAgIGlmIChyZXMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoc3BlYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFRvcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB0b3A7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbnRyeSBjbGFzc2VzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgY2xhc3MgUmVzb3VyY2VFbnRyeSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzb3VyY2U7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZW5jb2Rpbmc7CisgICAgICAgIHB1YmxpYyBpbnQgZGlyZWN0aW9uOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VFbnRyeShTdHJpbmcgbiwgU3RyaW5nIGVuYywgaW50IGQpIHsKKyAgICAgICAgICAgIHJlc291cmNlID0gbjsKKyAgICAgICAgICAgIGVuY29kaW5nID0gZW5jOworICAgICAgICAgICAgZGlyZWN0aW9uID0gZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEFuIGVudHJ5IHJlcHJlc2VudGluZyBhIHJ1bGUgaW4gYSBsb2NhbGUgcmVzb3VyY2UgYnVuZGxlCisgICAgc3RhdGljIGNsYXNzIExvY2FsZUVudHJ5IHsKKyAgICAgICAgcHVibGljIFN0cmluZyBydWxlOworICAgICAgICBwdWJsaWMgaW50IGRpcmVjdGlvbjsKKyAgICAgICAgcHVibGljIExvY2FsZUVudHJ5KFN0cmluZyByLCBpbnQgZCkgeworICAgICAgICAgICAgcnVsZSA9IHI7CisgICAgICAgICAgICBkaXJlY3Rpb24gPSBkOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEFsaWFzRW50cnkgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGFsaWFzOworICAgICAgICBwdWJsaWMgQWxpYXNFbnRyeShTdHJpbmcgYSkgeworICAgICAgICAgICAgYWxpYXMgPSBhOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENvbXBvdW5kUkJURW50cnkgeworICAgICAgICBwcml2YXRlIFN0cmluZyBJRDsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgaWRCbG9ja1ZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgZGF0YVZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGNvbXBvdW5kRmlsdGVyOworCisgICAgICAgIHB1YmxpYyBDb21wb3VuZFJCVEVudHJ5KFN0cmluZyB0aGVJRCwgVmVjdG9yIHRoZUlEQmxvY2tWZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0aGVEYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRoZUNvbXBvdW5kRmlsdGVyKSB7CisgICAgICAgICAgICBJRCA9IHRoZUlEOworICAgICAgICAgICAgaWRCbG9ja1ZlY3RvciA9IHRoZUlEQmxvY2tWZWN0b3I7CisgICAgICAgICAgICBkYXRhVmVjdG9yID0gdGhlRGF0YVZlY3RvcjsKKyAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gdGhlQ29tcG91bmRGaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgICAgICBWZWN0b3IgdHJhbnNsaXRlcmF0b3JzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgaW50IHBhc3NOdW1iZXIgPSAxOworCisgICAgICAgICAgICBpbnQgbGltaXQgPSBNYXRoLm1heChpZEJsb2NrVmVjdG9yLnNpemUoKSwgZGF0YVZlY3Rvci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBpZEJsb2NrVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRCbG9jayA9IChTdHJpbmcpaWRCbG9ja1ZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpZEJsb2NrLmxlbmd0aCgpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWRCbG9jaykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKWRhdGFWZWN0b3IuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICB0cmFuc2xpdGVyYXRvcnMuYWRkKG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiJVBhc3MiICsgcGFzc051bWJlcisrLCBkYXRhLCBudWxsKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodHJhbnNsaXRlcmF0b3JzLCBwYXNzTnVtYmVyIC0gMSk7CisgICAgICAgICAgICB0LnNldElEKElEKTsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIoY29tcG91bmRGaWx0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5OiBCYXNpYyBwdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSgpIHsKKyAgICAgICAgcmVnaXN0cnkgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHNwZWNEQUcgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGF2YWlsYWJsZUlEcyA9IG5ldyBWZWN0b3IoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHNpbXBsZSBJRCAoZm9yd2FyZCBkaXJlY3Rpb24sIG5vIGlubGluZSBmaWx0ZXIsIG5vdAorICAgICAqIGNvbXBvdW5kKSBhdHRlbXB0IHRvIGluc3RhbnRpYXRlIGl0IGZyb20gdGhlIHJlZ2lzdHJ5LiAgUmV0dXJuCisgICAgICogMCBvbiBmYWlsdXJlLgorICAgICAqCisgICAgICogUmV0dXJuIGEgbm9uLWVtcHR5IGFsaWFzUmV0dXJuIHZhbHVlIGlmIHRoZSBJRCBwb2ludHMgdG8gYW4gYWxpYXMuCisgICAgICogV2UgY2Fubm90IGluc3RhbnRpYXRlIGl0IG91cnNlbHZlcyBiZWNhdXNlIHRoZSBhbGlhcyBtYXkgY29udGFpbgorICAgICAqIGZpbHRlcnMgb3IgY29tcG91bmRzLCB3aGljaCB3ZSBkbyBub3QgdW5kZXJzdGFuZC4gIENhbGxlciBzaG91bGQKKyAgICAgKiBtYWtlIGFsaWFzUmV0dXJuIGVtcHR5IGJlZm9yZSBjYWxsaW5nLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsaWFzUmV0dXJuKSB7CisgICAgICAgIE9iamVjdFtdIGVudHJ5ID0gZmluZChJRCk7CisgICAgICAgIHJldHVybiAoZW50cnkgPT0gbnVsbCkgPyBudWxsCisgICAgICAgICAgICA6IGluc3RhbnRpYXRlRW50cnkoSUQsIGVudHJ5LCBhbGlhc1JldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjbGFzcy4gIFRoaXMgYWRkcyBhbiBlbnRyeSB0byB0aGUKKyAgICAgKiBkeW5hbWljIHN0b3JlLCBvciByZXBsYWNlcyBhbiBleGlzdGluZyBlbnRyeS4gIEFueSBlbnRyeSBpbiB0aGUKKyAgICAgKiB1bmRlcmx5aW5nIHN0YXRpYyBsb2NhbGUgcmVzb3VyY2Ugc3RvcmUgaXMgbWFza2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIHRyYW5zbGl0ZXJhdG9yU3ViY2xhc3MsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCB0cmFuc2xpdGVyYXRvclN1YmNsYXNzLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIuICBUaGlzIGFkZHMgYW4KKyAgICAgKiBlbnRyeSB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkKKyAgICAgKiBlbnRyeSBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IGZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCBmYWN0b3J5LCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSByZXNvdXJjZSBuYW1lLiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc291cmNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IFJlc291cmNlRW50cnkocmVzb3VyY2VOYW1lLCBlbmNvZGluZywgZGlyKSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gSUQgYW5kIGFuIGFsaWFzIElELiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IEFsaWFzRW50cnkoYWxpYXMpLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBUcmFuc2xpdGVyYXRvciBvYmplY3QuICBUaGlzIGFkZHMgYW4gZW50cnkKKyAgICAgKiB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkgZW50cnkKKyAgICAgKiBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucywKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIHRyYW5zLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGFuIElELiAgVGhpcyByZW1vdmVzIGFuIGVudHJ5IGZyb20gdGhlIGR5bmFtaWMgc3RvcmUKKyAgICAgKiBpZiB0aGVyZSBpcyBvbmUuICBUaGUgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcworICAgICAqIHVuYWZmZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKFN0cmluZyBJRCkgeworICAgICAgICBTdHJpbmdbXSBzdHYgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLklEdG9TVFYoSUQpOworICAgICAgICAvLyBPbmx5IG5lZWQgdG8gZG8gdGhpcyBpZiBJRC5pbmRleE9mKCctJykgPCAwCisgICAgICAgIFN0cmluZyBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzdHZbMF0sIHN0dlsxXSwgc3R2WzJdKTsKKyAgICAgICAgcmVnaXN0cnkucmVtb3ZlKG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaWQpKTsKKyAgICAgICAgcmVtb3ZlU1RWKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICBhdmFpbGFibGVJRHMucmVtb3ZlRWxlbWVudChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKGlkKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeTogUHVibGljIElEIGFuZCBzcGVjIG1hbmFnZW1lbnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFuIGludGVybmFsIGNsYXNzIHRoYXQgYWRhcHRzIGFuIGVudW1lcmF0aW9uIG92ZXIKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmdzIHRvIGFuIGVudW1lcmF0aW9uIG92ZXIgU3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJREVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworICAgICAgICBFbnVtZXJhdGlvbiBlbjsKKworICAgICAgICBwdWJsaWMgSURFbnVtZXJhdGlvbihFbnVtZXJhdGlvbiBlKSB7CisgICAgICAgICAgICBlbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7CisgICAgICAgICAgICByZXR1cm4gZW4gIT0gbnVsbCAmJiBlbi5oYXNNb3JlRWxlbWVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpIGVuLm5leHRFbGVtZW50KCkpLmdldFN0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSBwcm9ncmFtbWF0aWMgbmFtZXMgb2YgdmlzaWJsZQorICAgICAqIHJlZ2lzdGVyZWQgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgY2FjaGUgY29udGFpbnMgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMsIGJ1dAorICAgICAgICAvLyB0aGUgY2FsbGVyIGV4cGVjdHMgU3RyaW5ncywgd2UgaGF2ZSB0byB1c2UgYW4gaW50ZXJtZWRpYXJ5LgorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oYXZhaWxhYmxlSURzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciBhbGwgdmlzaWJsZSBzb3VyY2UgbmFtZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPkVudW1lcmF0aW9uPC9jb2RlPiBvdmVyIDxjb2RlPlN0cmluZzwvY29kZT4gb2JqZWN0cworICAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBdmFpbGFibGVTb3VyY2VzKCkgeworICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oc3BlY0RBRy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHRhcmdldCBuYW1lcyBmb3IgdGhlIGdpdmVuCisgICAgICogc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVGFyZ2V0cyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24odGFyZ2V0cy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHZhcmlhbnQgbmFtZXMgZm9yIHRoZSBnaXZlbgorICAgICAqIHNvdXJjZSBhbmQgdGFyZ2V0LgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICBWZWN0b3IgdmFyaWFudHMgPSAoVmVjdG9yKSB0YXJnZXRzLmdldChjaXRyZyk7CisgICAgICAgIGlmICh2YXJpYW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24obnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKHZhcmlhbnRzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnk6IGludGVybmFsCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuICBDYWxscyA2LWFyZyByZWdpc3RlckVudHJ5KCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyRW50cnkoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBzb3VyY2U7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHMgPSBBTlk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIElEID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgcywgdGFyZ2V0LCB2YXJpYW50LCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgNi1hcmcgcmVnaXN0ZXJFbnRyeSgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWdpc3RlckVudHJ5KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZ1tdIHN0diA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihJRCk7CisgICAgICAgIC8vIE9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIElELmluZGV4T2YoJy0nKSA8IDAKKyAgICAgICAgU3RyaW5nIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICByZWdpc3RlckVudHJ5KGlkLCBzdHZbMF0sIHN0dlsxXSwgc3R2WzJdLCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gZW50cnkgb2JqZWN0IChhZG9wdGVkKSB3aXRoIHRoZSBnaXZlbiBJRCwgc291cmNlLAorICAgICAqIHRhcmdldCwgYW5kIHZhcmlhbnQgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVnaXN0ZXJFbnRyeShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpSUQgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKTsKKworICAgICAgICAvLyBTdG9yZSB0aGUgZW50cnkgd2l0aGluIGFuIGFycmF5IHNvIGl0IGNhbiBiZSBtb2RpZmllZCBsYXRlcgorICAgICAgICBpZiAoIShlbnRyeSBpbnN0YW5jZW9mIE9iamVjdFtdKSkgeworICAgICAgICAgICAgZW50cnkgPSBuZXcgT2JqZWN0W10geyBlbnRyeSB9OworICAgICAgICB9CisKKyAgICAgICAgcmVnaXN0cnkucHV0KGNpSUQsIGVudHJ5KTsKKyAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU1RWKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgIGlmICghYXZhaWxhYmxlSURzLmNvbnRhaW5zKGNpSUQpKSB7CisgICAgICAgICAgICAgICAgYXZhaWxhYmxlSURzLmFkZEVsZW1lbnQoY2lJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVTVFYoc291cmNlLCB0YXJnZXQsIHZhcmlhbnQpOworICAgICAgICAgICAgYXZhaWxhYmxlSURzLnJlbW92ZUVsZW1lbnQoY2lJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgc3BlY0RBRy4gIFZhcmlhbnQgbWF5IGJlCisgICAgICogZW1wdHksIGJ1dCBzb3VyY2UgYW5kIHRhcmdldCBtdXN0IG5vdCBiZS4gIElmIHZhcmlhbnQgaXMgZW1wdHkgdGhlbgorICAgICAqIHRoZSBzcGVjaWFsIHZhcmlhbnQgTk9fVkFSSUFOVCBpcyBzdG9yZWQgaW4gc2xvdCB6ZXJvIG9mIHRoZQorICAgICAqIFVWZWN0b3Igb2YgdmFyaWFudHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIC8vIGFzc2VydChzb3VyY2UubGVuZ3RoKCkgPiAwKTsKKyAgICAgICAgLy8gYXNzZXJ0KHRhcmdldC5sZW5ndGgoKSA+IDApOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdmFyID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh2YXJpYW50KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBzcGVjREFHLnB1dChjaXNyYywgdGFyZ2V0cyk7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yIHZhcmlhbnRzID0gKFZlY3RvcikgdGFyZ2V0cy5nZXQoY2l0cmcpOworICAgICAgICBpZiAodmFyaWFudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdmFyaWFudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB0YXJnZXRzLnB1dChjaXRyZywgdmFyaWFudHMpOworICAgICAgICB9CisgICAgICAgIC8vIGFzc2VydChOT19WQVJJQU5UID09ICIiKTsKKyAgICAgICAgLy8gV2UgYWRkIHRoZSB2YXJpYW50IHN0cmluZy4gIElmIGl0IGlzIHRoZSBzcGVjaWFsICJubyB2YXJpYW50IgorICAgICAgICAvLyBzdHJpbmcsIHRoYXQgaXMsIHRoZSBlbXB0eSBzdHJpbmcsIHdlIGFkZCBpdCBhdCBwb3NpdGlvbiB6ZXJvLgorICAgICAgICBpZiAoIXZhcmlhbnRzLmNvbnRhaW5zKGNpdmFyKSkgeworICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHMuYWRkRWxlbWVudChjaXZhcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhcmlhbnRzLmluc2VydEVsZW1lbnRBdChjaXZhciwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgZnJvbSB0aGUgc3BlY0RBRy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVtb3ZlU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNvdXJjZS5sZW5ndGgoKSA+IDApOworICAgICAgICAvLyBhc3NlcnQodGFyZ2V0Lmxlbmd0aCgpID4gMCk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdHJnID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh0YXJnZXQpOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2l2YXIgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHZhcmlhbnQpOworICAgICAgICBIYXNodGFibGUgdGFyZ2V0cyA9IChIYXNodGFibGUpIHNwZWNEQUcuZ2V0KGNpc3JjKTsKKyAgICAgICAgaWYgKHRhcmdldHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuIGZvciB2YWxpZCBzLXQvdgorICAgICAgICB9CisgICAgICAgIFZlY3RvciB2YXJpYW50cyA9IChWZWN0b3IpIHRhcmdldHMuZ2V0KGNpdHJnKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiBmb3IgdmFsaWQgcy10L3YKKyAgICAgICAgfQorICAgICAgICB2YXJpYW50cy5yZW1vdmVFbGVtZW50KGNpdmFyKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXRzLnJlbW92ZShjaXRyZyk7IC8vIHNob3VsZCBkZWxldGUgdmFyaWFudHMKKyAgICAgICAgICAgIGlmICh0YXJnZXRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3BlY0RBRy5yZW1vdmUoY2lzcmMpOyAvLyBzaG91bGQgZGVsZXRlIHRhcmdldHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gZmluZCBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgZHluYW1pYyByZWdpc3RyeQorICAgICAqIHN0b3JlLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkR5bmFtaWNTdG9yZShTcGVjIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZyBJRCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzcmMuZ2V0KCksIHRyZy5nZXQoKSwgdmFyaWFudCk7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJbkR5bmFtaWNTdG9yZToiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPYmplY3RbXSkgcmVnaXN0cnkuZ2V0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4gdGhlIHN0YXRpYyBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBzdG9yZS4gIERvIG5vdCBwZXJmb3JtIGZhbGxiYWNrLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIE9uIHN1Y2Nlc3MsIGNyZWF0ZSBhIG5ldyBlbnRyeSBvYmplY3QsIHJlZ2lzdGVyIGl0IGluIHRoZSBkeW5hbWljCisgICAgICogc3RvcmUsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LCBidXQgZG8gbm90IG1ha2UgaXQgcHVibGljIC0tCisgICAgICoganVzdCBiZWNhdXNlIHNvbWVvbmUgcmVxdWVzdGVkIHNvbWV0aGluZywgd2UgZG8gbm90IGV4cGFuZCB0aGUKKyAgICAgKiBhdmFpbGFibGUgSUQgbGlzdCAob3Igc3BlYyBEQUcpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZEluU3RhdGljU3RvcmUoU3BlYyBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLlNUVnRvSUQoc3JjLmdldCgpLCB0cmcuZ2V0KCksIHZhcmlhbnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJblN0YXRpY1N0b3JlOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEKTsKKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisgICAgICAgIGlmIChzcmMuaXNMb2NhbGUoKSkgeworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5CdW5kbGUoc3JjLCB0cmcsIHZhcmlhbnQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgaWYgKHRyZy5pc0xvY2FsZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkJ1bmRsZSh0cmcsIHNyYywgdmFyaWFudCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBmb3VuZCBhbiBlbnRyeSwgc3RvcmUgaXQgaW4gdGhlIEhhc2h0YWJsZSBmb3IgbmV4dAorICAgICAgICAvLyB0aW1lLgorICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVnaXN0ZXJFbnRyeShzcmMuZ2V0VG9wKCksIHRyZy5nZXRUb3AoKSwgdmFyaWFudCwgZW50cnksIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYW4gZW50cnkgaW4gYSBzaW5nbGUgcmVzb3VyY2UgYnVuZGxlLiAgVGhpcyBpcworICAgICAqIGEgb25lLXNpZGVkIGxvb2t1cC4gIGZpbmRJblN0YXRpY1N0b3JlKCkgcGVyZm9ybXMgdXAgdG8gdHdvIHN1Y2gKKyAgICAgKiBsb29rdXBzLCBvbmUgZm9yIHRoZSBzb3VyY2UsIGFuZCBvbmUgZm9yIHRoZSB0YXJnZXQuCisgICAgICoKKyAgICAgKiBEbyBub3QgcGVyZm9ybSBmYWxsYmFjay4gIFJldHVybiAwIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBPbiBzdWNjZXNzLCBjcmVhdGUgYSBuZXcgRW50cnkgb2JqZWN0LCBwb3B1bGF0ZSBpdCwgYW5kIHJldHVybiBpdC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkJ1bmRsZShTcGVjIHNwZWNUb09wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyBzcGVjVG9GaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNwZWNUb09wZW4uaXNMb2NhbGUoKSk7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJlcyA9IHNwZWNUb09wZW4uZ2V0QnVuZGxlKCk7CisKKyAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGJ1bmRsZSdzIGxvY2FsZSBkb2VzIG5vdCBtYXRjaAorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uIGZvciB0aGUgc3BlYy4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRhZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIC8vIEZpcnN0IHRyeSBlaXRoZXIgVHJhbnNsaXRlcmF0b3JUb194eHggb3IKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVGcm9tX3h4eCwgdGhlbiB0cnkgdGhlIGJpZGlyZWN0aW9uYWwKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVfeHh4LiAgVGhpcyBwcmVjZWRlbmNlIG9yZGVyIGlzIGFyYml0cmFyeQorICAgICAgICAgICAgLy8gYnV0IG11c3QgYmUgY29uc2lzdGVudCBhbmQgZG9jdW1lbnRlZC4KKyAgICAgICAgICAgIGlmIChwYXNzID09IDApIHsKKyAgICAgICAgICAgICAgICB0YWcuYXBwZW5kKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc2xpdGVyYXRlVG8iIDogIlRyYW5zbGl0ZXJhdGVGcm9tIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRhZy5hcHBlbmQoIlRyYW5zbGl0ZXJhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhZy5hcHBlbmQoc3BlY1RvRmluZC5nZXQoKS50b1VwcGVyQ2FzZSgpKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgVHJhbnNsaXRlcmF0ZSpfeHh4IHJlc291cmNlIGlzIGFuIGFycmF5IG9mCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyBvZiB0aGUgZm9ybWF0IHsgPHYwPiwgPHIwPiwgLi4uIH0uICBFYWNoCisgICAgICAgICAgICAgICAgLy8gPHZpPiBpcyBhIHZhcmlhbnQgbmFtZSwgYW5kIGVhY2ggPHJpPiBpcyBhIHJ1bGUuCisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3VicmVzID0gcmVzLmdldFN0cmluZ0FycmF5KHRhZy50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgIC8vIGFzc2VydChzdWJyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHN1YnJlcy5sZW5ndGggJSAyID09IDApOworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHN1YnJlcy5sZW5ndGg7IGkrPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicmVzW2ldLmVxdWFsc0lnbm9yZUNhc2UodmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpIDwgc3VicmVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgbWF0Y2gsIG9yIHRoZXJlIGlzIG5vIHZhcmlhbnQgYW5kIGkgPT0gMC4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzdWNjZWVkZWQgaW4gbG9hZGluZyBhIHN0cmluZyBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbGUgcmVzb3VyY2VzLiAgUmV0dXJuIHRoZSBydWxlIHN0cmluZyB3aGljaAorICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGl0c2VsZiBiZWNvbWUgdGhlIHJlZ2lzdHJ5IGVudHJ5LgorCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkaXJlY3Rpb24gaXMgYWx3YXlzIGZvcndhcmQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRlVG9feHh4IGFuZCBUcmFuc2xpdGVyYXRlRnJvbV94eHgKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlbXM7IHRob3NlIGFyZSB1bmlkaXJlY3Rpb25hbCBmb3J3YXJkIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJpZGlyZWN0aW9uYWwgVHJhbnNsaXRlcmF0ZV94eHggaXRlbXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkaXJlY3Rpb24gaXMgdGhlIHZhbHVlIHBhc3NlZCBpbiB0byB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyID0gKHBhc3MgPT0gMCkgPyBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIDogZGlyZWN0aW9uOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmV3IExvY2FsZUVudHJ5KHN1YnJlc1tpKzFdLCBkaXIpIH07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtaXNzaW5nIHJlc291cmNlOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSB3ZSBoYWQgYSBtaXNzaW5nIHJlc291cmNlIGV4Y2VwdGlvbiBvciB3ZQorICAgICAgICAvLyBmYWlsZWQgdG8gZmluZCBhIGRlc2lyZWQgdmFyaWFudC4KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgMy1hcmcgZmluZCgpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgSUQpIHsKKyAgICAgICAgU3RyaW5nW10gc3R2ID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5JRHRvU1RWKElEKTsKKyAgICAgICAgcmV0dXJuIGZpbmQoc3R2WzBdLCBzdHZbMV0sIHN0dlsyXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIGZpbmQgbWV0aG9kLiAgQXR0ZW1wdCB0byBmaW5kIGEgc291cmNlLXRhcmdldC92YXJpYW50IGluCisgICAgICogZWl0aGVyIHRoZSBkeW5hbWljIG9yIHRoZSBzdGF0aWMgKGxvY2FsZSByZXNvdXJjZSkgc3RvcmUuICBQZXJmb3JtCisgICAgICogZmFsbGJhY2suCisgICAgICoKKyAgICAgKiBMb29rdXAgc2VxdWVuY2UgZm9yIHNzX1NTX1NTUy10dF9UVF9UVFQvdjoKKyAgICAgKgorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIGhhc2h0YWJsZQorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIHNzX1NTX1NTUyAobm8gZmFsbGJhY2spCisgICAgICoKKyAgICAgKiAgICAgcmVwZWF0IHdpdGggdCA9IHR0X1RUX1RUVCwgdHRfVFQsIHR0LCBhbmQgdHNjcmlwdAorICAgICAqCisgICAgICogICAgIHNzX1NTX1NTUy10LyoKKyAgICAgKiAgICAgc3NfU1MtdC8qCisgICAgICogICAgIHNzLXQvKgorICAgICAqICAgICBzc2NyaXB0LXQvKgorICAgICAqCisgICAgICogSGVyZSAqIG1hdGNoZXMgdGhlIGZpcnN0IHZhcmlhbnQgbGlzdGVkLgorICAgICAqCisgICAgICogQ2FsbGVyIGRvZXMgTk9UIG93biByZXR1cm5lZCBvYmplY3QuICBSZXR1cm4gMCBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworCisgICAgICAgIFNwZWMgc3JjID0gbmV3IFNwZWMoc291cmNlKTsKKyAgICAgICAgU3BlYyB0cmcgPSBuZXcgU3BlYyh0YXJnZXQpOworICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisKKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworCisgICAgICAgICAgICAvLyBTZWVrIGV4YWN0IG1hdGNoIGluIGhhc2h0YWJsZQorICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIHZhcmlhbnQpOworICAgICAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFNlZWsgZXhhY3QgbWF0Y2ggaW4gbG9jYWxlIHJlc291cmNlcworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5TdGF0aWNTdG9yZShzcmMsIHRyZywgdmFyaWFudCk7CisgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHNyYy5yZXNldCgpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIFNlZWsgbWF0Y2ggaW4gaGFzaHRhYmxlCisgICAgICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIE5PX1ZBUklBTlQpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBTZWVrIG1hdGNoIGluIGxvY2FsZSByZXNvdXJjZXMKKyAgICAgICAgICAgICAgICBlbnRyeSA9IGZpbmRJblN0YXRpY1N0b3JlKHNyYywgdHJnLCBOT19WQVJJQU5UKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghc3JjLmhhc0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyYy5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRyZy5oYXNGYWxsYmFjaygpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cmcubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYW4gRW50cnkgb2JqZWN0LCBpbnN0YW50aWF0ZSBpdC4gIENhbGxlciBvd25zIHJlc3VsdC4gIFJldHVybgorICAgICAqIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIFJldHVybiBhIG5vbi1lbXB0eSBhbGlhc1JldHVybiB2YWx1ZSBpZiB0aGUgSUQgcG9pbnRzIHRvIGFuIGFsaWFzLgorICAgICAqIFdlIGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxpYXMgbWF5IGNvbnRhaW4KKyAgICAgKiBmaWx0ZXJzIG9yIGNvbXBvdW5kcywgd2hpY2ggd2UgZG8gbm90IHVuZGVyc3RhbmQuICBDYWxsZXIgc2hvdWxkCisgICAgICogbWFrZSBhbGlhc1JldHVybiBlbXB0eSBiZWZvcmUgY2FsbGluZy4KKyAgICAgKgorICAgICAqIFRoZSBlbnRyeSBvYmplY3QgaXMgYXNzdW1lZCB0byByZXNpZGUgaW4gdGhlIGR5bmFtaWMgc3RvcmUuICBJdCBtYXkgYmUKKyAgICAgKiBtb2RpZmllZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIGluc3RhbnRpYXRlRW50cnkoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBlbnRyeVdyYXBwZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhbGlhc1JldHVybikgeworICAgICAgICAvLyBXZSBhY3R1YWxseSBtb2RpZnkgdGhlIGVudHJ5IG9iamVjdCBpbiBzb21lIGNhc2VzLiAgSWYgaXQKKyAgICAgICAgLy8gaXMgYSBzdHJpbmcsIHdlIG1heSBwYXJ0aWFsbHkgcGFyc2UgaXQgYW5kIHR1cm4gaXQgaW50byBhCisgICAgICAgIC8vIG1vcmUgcHJvY2Vzc2VkIHByZWN1cnNvci4gIFRoaXMgbWFrZXMgdGhlIG5leHQKKyAgICAgICAgLy8gaW5zdGFudGlhdGlvbiBmYXN0ZXIgYW5kIGFsbG93cyBzaGFyaW5nIG9mIGltbXV0YWJsZQorICAgICAgICAvLyBjb21wb25lbnRzIGxpa2UgdGhlIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgb2JqZWN0cy4KKyAgICAgICAgLy8gRm9yIHRoaXMgcmVhc29uLCB0aGUgZW50cnkgb2JqZWN0IGlzIGFuIE9iamVjdFtdIG9mIGxlbmd0aAorICAgICAgICAvLyAxLgorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIE9iamVjdCBlbnRyeSA9IGVudHJ5V3JhcHBlclswXTsKKworICAgICAgICAgICAgaWYgKGVudHJ5IGluc3RhbmNlb2YgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSkgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKSBlbnRyeTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKElELCBkYXRhLCBudWxsKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBDbGFzcykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpICgoQ2xhc3MpIGVudHJ5KS5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQWxpYXNFbnRyeSkgeworICAgICAgICAgICAgICAgIGFsaWFzUmV0dXJuLmFwcGVuZCgoKEFsaWFzRW50cnkpIGVudHJ5KS5hbGlhcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkpIGVudHJ5KS5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQ29tcG91bmRSQlRFbnRyeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKENvbXBvdW5kUkJURW50cnkpIGVudHJ5KS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeSBpbnN0YW5jZW9mIFRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgZW50cnkgdHlwZSBtdXN0IGJlIGVpdGhlciBSVUxFU19GT1JXQVJEIG9yCisgICAgICAgICAgICAvLyBSVUxFU19SRVZFUlNFLiAgV2UgcHJvY2VzcyB0aGUgcnVsZSBkYXRhIGludG8gYQorICAgICAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3JSdWxlRGF0YSBvYmplY3QsIGFuZCBwb3NzaWJseSBhbHNvIGludG8gYW4KKyAgICAgICAgICAgIC8vIC5pZCBoZWFkZXIgYW5kL29yIGZvb3Rlci4gIFRoZW4gd2UgbW9kaWZ5IHRoZSByZWdpc3RyeSB3aXRoCisgICAgICAgICAgICAvLyB0aGUgcGFyc2VkIGRhdGEgYW5kIHJldHJ5LgorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIgPSBuZXcgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlc291cmNlRW50cnkgcmUgPSAoUmVzb3VyY2VFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKHJlLnJlc291cmNlLCByZS5kaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBwdWxsIGEgcnVsZSBmcm9tIGEgbG9jYWxlIHJlc291cmNlIGJ1bmRsZSBpdCB3aWxsCisgICAgICAgICAgICAgICAgLy8gYmUgYSBMb2NhbGVFbnRyeS4KKyAgICAgICAgICAgICAgICBMb2NhbGVFbnRyeSBsZSA9IChMb2NhbGVFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKGxlLnJ1bGUsIGxlLmRpcmVjdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlc2V0IGVudHJ5IHRvIHNvbWV0aGluZyB0aGF0IHdlIHByb2Nlc3MgYXQgdGhlCisgICAgICAgICAgICAvLyB0b3Agb2YgdGhlIGxvb3AsIHRoZW4gbG9vcCBiYWNrIHRvIHRoZSB0b3AuICBBcyBsb25nIGFzIHdlCisgICAgICAgICAgICAvLyBkbyB0aGlzLCB3ZSBvbmx5IGxvb3AgdGhyb3VnaCB0d2ljZSBhdCBtb3N0LgorICAgICAgICAgICAgLy8gTk9URTogVGhlIGxvZ2ljIGhlcmUgbWF0Y2hlcyB0aGF0IGluCisgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoKS4KKyAgICAgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIG5vIGRhdGEgLS0gdGhpcyBpcyBqdXN0IGFuCisgICAgICAgICAgICAgICAgLy8gYWxpYXMgZm9yIE51bGwKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeShOdWxsVHJhbnNsaXRlcmF0b3IuX0lEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAwICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gaWRCbG9jaywgZGF0YSAhPSAwIC0tIHRoaXMgaXMgYW4KKyAgICAgICAgICAgICAgICAvLyBvcmRpbmFyeSBSQlRfREFUQQorICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IHBhcnNlci5kYXRhVmVjdG9yLmdldCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgICAgIC8vIGJlZW4gbXVuZ2VkIGZyb20gcmV2ZXJzZSBpbnRvIGZvcndhcmQgbW9kZSwgaWYKKyAgICAgICAgICAgICAgICAvLyBuZWNlc3NhcnksIHNvIGluc3RhbnRpYXRlIHRoZSBJRCBpbiB0aGUgZm9yd2FyZAorICAgICAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAocGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IG5ldyBBbGlhc0VudHJ5KHBhcnNlci5jb21wb3VuZEZpbHRlci50b1BhdHRlcm4oZmFsc2UpICsgIjsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeSgoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQ29tcG91bmRSQlRFbnRyeShJRCwgcGFyc2VyLmlkQmxvY2tWZWN0b3IsIHBhcnNlci5kYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwODUzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNDA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJBcnJheUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbiBvbiB0ZXh0IG9iamVjdHMuVGhpcyBpcyBhbiAKKyAqIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uIGFuZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IAorICogb2JqZWN0LiBGb3J3YXJkIGl0ZXJhdGlvbiBpcyBkb25lIHdpdGggcG9zdC1pbmNyZW1lbnQgYW5kIGJhY2t3YXJkIGl0ZXJhdGlvbiAKKyAqIGlzIGRvbmUgd2l0aCBwcmUtZGVjcmVtZW50IHNlbWFudGljcywgd2hpbGUgdGhlIAorICogPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBpbnRlcmZhY2UgbWV0aG9kcyBwcm92aWRlZCBmb3J3YXJkIAorICogaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBwcmUtZGVjcmVtZW50IAorICogc2VtYW50aWNzLiBUaGlzIEFQSSBpcyBtb3JlIGVmZmljaWVudCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gb3ZlciBjb2RlIHBvaW50cy4KKyAqIFRoZSBvdGhlciBtYWpvciBkaWZmZXJlbmNlIGlzIHRoYXQgdGhpcyBBUEkgY2FuIGRvIGJvdGggY29kZSB1bml0IGFuZCBjb2RlIHBvaW50IAorICogaXRlcmF0aW9uLCA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGNhbiBvbmx5IGl0ZXJhdGUgb3ZlciAKKyAqIGNvZGUgdW5pdHMgYW5kIGlzIGxpbWl0ZWQgdG8gQk1QICgwIC0gMHhGRkZGKQorICogQGF1dGhvciBSYW0KKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQ2xvbmVhYmxlLFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIGRlZmF1bHQgY29uc3RydWN0b3IgZm9yIHRoZSBzdWJjbGFzc2VzCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJJdGVyYXRvcigpeworICAgIH0KKyAgICAKKyAgICAvLyBzdGF0aWMgZmluYWwgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIGEgdmFsaWQgc291cmNlIGFzIGEgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdAorICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoUmVwbGFjZWFibGUgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBzb3VyY2UpeworICAgICAgICByZXR1cm4gbmV3IFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBhcnJheSBvZiBVVEYtMTYgY29kZSB1bml0cworICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoY2hhcltdIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogc291cmNlIGNoYXJhY3RlciBhcnJheS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGFuIGFycmF5IG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShjaGFyW10gc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCl7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJBcnJheUl0ZXJhdG9yKHNvdXJjZSxzdGFydCxsaW1pdCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBTdHJpbmdCdWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBzdHJpbmcgYnVmZmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmdCdWZmZXIgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSB2YWxpZCBDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICB9CisgICAgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBmb3IKKyAgICAgKiB0aGUgdW5kZXJseWluZyB0ZXh0IG9mIHRoaXMgaXRlcmF0b3IuICBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMKKyAgICAgKiBpbmRlcGVuZGVudCBvZiB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHRoaXMpOworICAgIH0gICAgCisgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgYXQgdGhlIGN1cnJlbnQgaW5kZXguICBJZiBpbmRleCBpcyBvdXQKKyAgICAgKiBvZiByYW5nZSwgcmV0dXJucyBET05FLiAgSW5kZXggaXMgbm90IGNoYW5nZWQuCisgICAgICogQHJldHVybiBjdXJyZW50IGNvZGUgdW5pdAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGVwb2ludCBhdCB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBpbnZhbGlkLCBET05FIGlzIHJldHVybmVkLgorICAgICAqIElmIHRoZSBjdXJyZW50IGluZGV4IHBvaW50cyB0byBhIGxlYWQgc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBmb2xsb3dpbmcKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUsIHRoZW4gdGhlIGNvZGUgcG9pbnQgaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIHRoZSBjb2RlCisgICAgICogdW5pdCBhdCBpbmRleCBpcyByZXR1cm5lZC4gIEluZGV4IGlzIG5vdCBjaGFuZ2VkLiAKKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50Q29kZVBvaW50KCl7CisgICAgICAgIGludCBjaCA9IGN1cnJlbnQoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSl7CisgICAgICAgICAgICAvLyBhZHZhbmNlIHRoZSBpbmRleCB0byBnZXQgdGhlCisgICAgICAgICAgICAvLyBuZXh0IGNvZGUgcG9pbnQKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIC8vIGR1ZSB0byBwb3N0IGluY3JlbWVudCBzZW1hbnRpY3MKKyAgICAgICAgICAgIC8vIGN1cnJlbnQoKSBhZnRlciBuZXh0KCkgYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIHJldHVybnMgdGhlIGNoYXIgd2Ugd2FudAorICAgICAgICAgICAgaW50IGNoMiA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgc2hvdWxkIG5ldmVyIGNoYW5nZQorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgaW5kZXggc28gYmFjayBvZmYKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgYSBzdXJyb2dhdGUgcGFpciAKKyAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIGNvZGVwb2ludAorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaCwoY2hhciljaDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlbmd0aCgpOworCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEByZXR1cm4gY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpeworICAgICAgICBpbnQgY2gxID0gbmV4dCgpOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gxKSl7CisgICAgICAgICAgICBpbnQgY2gyID0gbmV4dCgpOworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpY2gxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaDIpOworICAgICAgICAgICAgfWVsc2UgaWYgKGNoMiAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNyZW1lbnQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlCisgICAgICogdGV4dCwgYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlCisgICAgICogcmVzdWx0aW5nIGluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGUgaW5kZXggaXMgcmVzZXQgdG8gMCBhbmQKKyAgICAgKiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgbmV3CisgICAgICogICAgICAgICBpbmRleCBpcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwcmV2aW91cygpOworCisgICAgCisgICAgLyoqCisgICAgICogUmV0cmVhdCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIHRleHQsCisgICAgICogYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlIGluZGV4IGlzIG5vdAorICAgICAqIHByZWNlZWRlZCBieSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLCB0aGUgYmVoYXZpb3IgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyA8Y29kZT5wcmV2aW91cygpPC9jb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMKKyAgICAgKiBkZWNyZW1lbnRlZCB0byB0aGUgc3RhcnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLCBhbmQgdGhlIGNvZGUKKyAgICAgKiBwb2ludCByZXByZXNlbnRlZCBieSB0aGUgcGFpciBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiAgICAgICAgIGluZGV4IGlzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40ICAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzQ29kZVBvaW50KCl7CisgICAgICAgIGludCBjaDEgPSBwcmV2aW91cygpOworICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMSkpeworICAgICAgICAgICAgaW50IGNoMiA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWNoMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gxKTsKKyAgICAgICAgICAgIH1lbHNlIGlmIChjaDIgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIC8vdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0gICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2gxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGluZGV4IHRvIHRoZSBzcGVjaWZpZWQgaW5kZXggaW4gdGhlIHRleHQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaW5kZXggdG8gdGhlIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvTGltaXQoKSB7CisgICAgICAgIHNldEluZGV4KGdldExlbmd0aCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpbmRleCB0byB0aGUgc3RhcnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9TdGFydCgpIHsKKyAgICAgICAgc2V0SW5kZXgoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbHMgdGhlIGJ1ZmZlciB3aXRoIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBvZiB0aGUgaXRlcmF0b3IKKyAgICAgKiBJZiB0aGUgYnVmZmVyIGNhcGFjaXR5IGlzIG5vdCBlbm91Z2ggYSBleGNlcHRpb24gaXMgdGhyb3duLiBUaGUgY2FwYWNpdHkKKyAgICAgKiBvZiB0aGUgZmlsbCBpbiBidWZmZXIgc2hvdWxkIGF0IGxlYXN0IGJlIGVxdWFsIHRvIGxlbmd0aCBvZiB0ZXh0IGluIHRoZSAKKyAgICAgKiBpdGVyYXRvciBvYnRhaW5lZCBieSBjYWxsaW5nIDxjb2RlPmdldExlbmd0aCgpPC9jb2RlKS4KKyAgICAgKiA8Yj5Vc2FnZTo8L2I+CisgICAgICogCisgICAgICogPGNvZGU+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgIFVDaGFjdGVySXRlcmF0b3IgaXRlciA9IG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGV4dCk7CisgICAgICogICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICBpdGVyLmdldFRleHQoYnVmKTsKKyAgICAgKiAgICAgICAgIAorICAgICAqICAgICAgICAgT1IKKyAgICAgKiAgICAgICAgIGNoYXJbXSBidWY9IG5ldyBjaGFyWzFdOworICAgICAqICAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICogICAgICAgICBmb3IoOzspeworICAgICAqICAgICAgICAgICAgIHRyeXsKKyAgICAgKiAgICAgICAgICAgICAgICAgbGVuID0gaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAqICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAqICAgICAgICAgICAgICAgICBidWYgPSBuZXcgY2hhcltpdGVyLmdldExlbmd0aCgpXTsKKyAgICAgKiAgICAgICAgICAgICB9CisgICAgICogICAgICAgICB9CisgICAgICogPC9wcmU+CisgICAgICogPC9jb2RlPgorICAgICAqICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSBhcnJheSB0byBzdGFydCBwdXR0aW5nIHRoZSBkYXRhLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGFkZGVkIHRvIGZpbGxJbiwgYXMgYSBjb252ZW5pZW5jZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgcm9vbSBhZnRlciBvZmZzZXQgaW4gdGhlIGFycmF5LCBvciBpZiBvZmZzZXQgPCAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpOyAKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciA8Y29kZT5nZXRUZXh0KGNoYXJbXSwgaW50KT4vY29kZT4gdGhhdCBwcm92aWRlcworICAgICAqIGFuIG9mZnNldCBvZiAwLgorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgYWRkZWQgdG8gZmlsbEluLCBhcyBhIGNvbnZlbmllbmNlCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCisgICAgICogICAgICAgICAgICByb29tIGluIHRoZSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiBnZXRUZXh0KGZpbGxJbiwgMCk7CisgICAgfQorICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciByZXR1cm5pbmcgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGFzIGFzIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGluIHRoZSBpdGVyYXRvciBhcyBhIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltnZXRMZW5ndGgoKV07CisgICAgICAgIGdldFRleHQodGV4dCk7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHRleHQpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMKKyAgICAgKiBzcGVjaWZpZWQsIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIGRlcGVuZGluZyBvbiB0aGUgc2lnbgorICAgICAqIG9mIGRlbHRhIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSByZXNwZWN0aXZlbHkpLiAgSWYgdGhlIHJlc3VsdGluZworICAgICAqIGluZGV4IHdvdWxkIGJlIGxlc3MgdGhhbiB6ZXJvLCB0aGUgaW5kZXggaXMgc2V0IHRvIHplcm8sIGFuZCBpZgorICAgICAqIHRoZSByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgZ3JlYXRlciB0aGFuIGxpbWl0LCB0aGUgaW5kZXggaXMKKyAgICAgKiBzZXQgdG8gbGltaXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgICAgICAgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1vdmVJbmRleChpbnQgZGVsdGEpIHsKKyAgICAgICAgaW50IHggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihnZXRJbmRleCgpICsgZGVsdGEsIGdldExlbmd0aCgpKSk7CisgICAgICAgIHNldEluZGV4KHgpOworICAgICAgICByZXR1cm4geDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzCisgICAgICogc3BlY2lmaWVkLCBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCBkZXBlbmRpbmcgb24gdGhlIHNpZ24gb2YKKyAgICAgKiBkZWx0YSAocG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVzcGVjdGl2ZWx5KS4gSWYgdGhlIGN1cnJlbnQgaW5kZXgKKyAgICAgKiBpcyBhdCBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGVuIHRoZSBmaXJzdCBhZGp1c3RtZW50IGlzIGJ5IGNvZGUKKyAgICAgKiB1bml0LCBhbmQgdGhlIHJlbWFpbmluZyBhZGp1c3RtZW50cyBhcmUgYnkgY29kZSBwb2ludHMuICBJZiB0aGUKKyAgICAgKiByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgbGVzcyB0aGFuIHplcm8sIHRoZSBpbmRleCBpcyBzZXQgdG8KKyAgICAgKiB6ZXJvLCBhbmQgaWYgdGhlIHJlc3VsdGluZyBpbmRleCB3b3VsZCBiZSBncmVhdGVyIHRoYW4gbGltaXQsCisgICAgICogdGhlIGluZGV4IGlzIHNldCB0byBsaW1pdC4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4ICAKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFuIGludmFsaWQgZGVsdGEgaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbW92ZUNvZGVQb2ludEluZGV4KGludCBkZWx0YSl7CisgICAgICAgIGlmKGRlbHRhPjApeworICAgICAgICAgICAgd2hpbGUoZGVsdGE+MCAmJiBuZXh0Q29kZVBvaW50KCkgIT0gRE9ORSl7ZGVsdGEtLTt9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgd2hpbGUoZGVsdGE8MCAmJiBwcmV2aW91c0NvZGVQb2ludCgpICE9IERPTkUpe2RlbHRhKys7fQorICAgICAgICB9CisgICAgICAgIGlmKGRlbHRhIT0wKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgaW5kZXBlbmRlbnQgZnJvbSBvdGhlciBpdGVyYXRvcnMuCisgICAgICogSWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNsb25lIHRoZSBpdGVyYXRvciwgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgfSAgIAorICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTczMGI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIHRoYXQgZXh0ZW5kcyB7QGxpbmsgamF2YS50ZXh0LkZvcm1hdH0gdG8gcHJvdmlkZQorICogYWRkaXRpb25hbCBJQ1UgcHJvdG9jb2wsIHNwZWNpZmljYWxseSwgdGhlIDx0dD5nZXRMb2NhbGUoKTwvdHQ+CisgKiBBUEkuICBBbGwgSUNVIGZvcm1hdCBjbGFzc2VzIGFyZSBzdWJjbGFzc2VzIG9mIHRoaXMgY2xhc3MuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAqIEBhdXRob3Igd2VpdgorICogQGF1dGhvciBBbGFuIExpdQorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUZvcm1hdCBleHRlbmRzIEZvcm1hdCB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTQ5NjQzOTA1MTU4NDAxNjQ0MTZMOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUZvcm1hdCgpIHt9CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmFlMDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogSW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIDxjb2RlPmludDwvY29kZT4gZm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJvdmlkZXMgbmV4dCgpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHRDb2RlUG9pbnQoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dENvZGVQb2ludCgpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHRDb2RlUG9pbnQoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0Q29kZVBvaW50KCkuPC9wPgorICoKKyAqIFVzYWdlOgorICogPGNvZGU+IAorICogIHB1YmxpYyB2b2lkIGZ1bmN0aW9uMShVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIGl0KSB7CisgKiAgICAgaW50IGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dCgpKSE9VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiA8L2NvZGU+CisgKiA8L3A+CisgKiBAc3RhYmxlIElDVSAyLjQKKyAqCisgKi8KKworcHVibGljIGludGVyZmFjZSBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgIAorICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kcyBvZiB0aGUgVVRGMTYgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNzk1YmY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpAQCAtMCwwICsxLDI4NTUgQEAKKy8vIyNoZWFkZXIKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKKworLyoqCisgKiA8cD5TdGFuZGFsb25lIHV0aWxpdHkgY2xhc3MgcHJvdmlkaW5nIFVURjE2IGNoYXJhY3RlciBjb252ZXJzaW9ucyBhbmQKKyAqIGluZGV4aW5nIGNvbnZlcnNpb25zLjwvcD4KKyAqIDxwPkNvZGUgdGhhdCB1c2VzIHN0cmluZ3MgYWxvbmUgcmFyZWx5IG5lZWQgbW9kaWZpY2F0aW9uLgorICogQnkgZGVzaWduLCBVVEYtMTYgZG9lcyBub3QgYWxsb3cgb3ZlcmxhcCwgc28gc2VhcmNoaW5nIGZvciBzdHJpbmdzIGlzIGEgc2FmZQorICogb3BlcmF0aW9uLiBTaW1pbGFybHksIGNvbmNhdGVuYXRpb24gaXMgYWx3YXlzIHNhZmUuIFN1YnN0cmluZ2luZyBpcyBzYWZlIGlmCisgKiB0aGUgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBvbiBVVEYtMzIgYm91bmRhcmllcy4gSW4gbm9ybWFsIGNvZGUsIHRoZSB2YWx1ZXMKKyAqIGZvciBzdGFydCBhbmQgZW5kIGFyZSBvbiB0aG9zZSBib3VuZGFyaWVzLCBzaW5jZSB0aGV5IGFyb3NlIGZyb20gb3BlcmF0aW9ucworICogbGlrZSBzZWFyY2hpbmcuIElmIG5vdCwgdGhlIG5lYXJlc3QgVVRGLTMyIGJvdW5kYXJpZXMgY2FuIGJlIGRldGVybWluZWQKKyAqIHVzaW5nIDxjb2RlPmJvdW5kcygpPC9jb2RlPi48L3A+CisgKiA8c3Ryb25nPkV4YW1wbGVzOjwvc3Ryb25nPgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlcyBpbGx1c3RyYXRlIHVzZSBvZiBzb21lIG9mIHRoZXNlIG1ldGhvZHMuCisgKiA8cHJlPgorICogLy8gaXRlcmF0aW9uIGZvcndhcmRzOiBPcmlnaW5hbAorICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyArK2kpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gZm9yd2FyZHM6IENoYW5nZXMgZm9yIFVURi0zMgorICogaW50IGNoOworICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyBpKz1VVEYxNi5nZXRDaGFyQ291bnQoY2gpKSB7CisgKiAgICAgY2ggPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAqICAgICBkb1NvbWV0aGluZ1dpdGgoY2gpOworICogfQorICoKKyAqIC8vIGl0ZXJhdGlvbiBiYWNrd2FyZHM6IE9yaWdpbmFsCisgKiBmb3IgKGludCBpID0gcy5sZW5ndGgoKSAtMTsgaSA+PSAwOyAtLWkpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gYmFja3dhcmRzOiBDaGFuZ2VzIGZvciBVVEYtMzIKKyAqIGludCBjaDsKKyAqIGZvciAoaW50IGkgPSBzLmxlbmd0aCgpIC0xOyBpID4gMDsgaS09VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICogICAgIGNoID0gVVRGMTYuY2hhckF0KHMsaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPHN0cm9uZz5Ob3Rlczo8L3N0cm9uZz4KKyAqIDx1bD4KKyAqICAgPGxpPgorICogICA8c3Ryb25nPk5hbWluZzo8L3N0cm9uZz4gRm9yIGNsYXJpdHksIEhpZ2ggYW5kIExvdyBzdXJyb2dhdGVzIGFyZSBjYWxsZWQKKyAqICAgPGNvZGU+TGVhZDwvY29kZT4gYW5kIDxjb2RlPlRyYWlsPC9jb2RlPiBpbiB0aGUgQVBJLCB3aGljaCBnaXZlcyBhIGJldHRlcgorICogICBzZW5zZSBvZiB0aGVpciBvcmRlcmluZyBpbiBhIHN0cmluZy4gPGNvZGU+b2Zmc2V0MTY8L2NvZGU+IGFuZAorICogICA8Y29kZT5vZmZzZXQzMjwvY29kZT4gYXJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggb2Zmc2V0cyB0byBVVEYtMTYKKyAqICAgYm91bmRhcmllcyB2cyBvZmZzZXRzIHRvIFVURi0zMiBib3VuZGFyaWVzLiA8Y29kZT5pbnQgY2hhcjMyPC9jb2RlPiBpcworICogICB1c2VkIHRvIGNvbnRhaW4gVVRGLTMyIGNoYXJhY3RlcnMsIGFzIG9wcG9zZWQgdG8gPGNvZGU+Y2hhcjE2PC9jb2RlPiwKKyAqICAgd2hpY2ggaXMgYSBVVEYtMTYgY29kZSB1bml0LgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+Um91bmR0cmlwcGluZyBPZmZzZXRzOjwvc3Ryb25nPiBZb3UgY2FuIGFsd2F5cyByb3VuZHRyaXAgZnJvbSBhCisgKiAgIFVURi0zMiBvZmZzZXQgdG8gYSBVVEYtMTYgb2Zmc2V0IGFuZCBiYWNrLiBCZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluCisgKiAgIHN0cnVjdHVyZSwgeW91IGNhbiByb3VuZHRyaXAgZnJvbSBhIFVURi0xNiBvZmZzZXQgdG8gYSBVVEYtMzIgb2Zmc2V0IGFuZAorICogICBiYWNrIGlmIGFuZCBvbmx5IGlmIDxjb2RlPmJvdW5kcyhzdHJpbmcsIG9mZnNldDE2KSAhPSBUUkFJTDwvY29kZT4uCisgKiAgIDwvbGk+CisgKiAgIDxsaT4KKyAqICAgIDxzdHJvbmc+RXhjZXB0aW9uczo8L3N0cm9uZz4gVGhlIGVycm9yIGNoZWNraW5nIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uCisgKiAgIGlmIGluZGljZXMgYXJlIG91dCBvZiBib3VuZHMuIE90aGVyIHRoYW4gdGhhbiB0aGF0LCBhbGwgbWV0aG9kcyB3aWxsCisgKiAgIGJlaGF2ZSByZWFzb25hYmx5LCBldmVuIGlmIHVubWF0Y2hlZCBzdXJyb2dhdGVzIG9yIG91dC1vZi1ib3VuZHMgVVRGLTMyCisgKiAgIHZhbHVlcyBhcmUgcHJlc2VudC4gPGNvZGU+VUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2NvZGU+IGNhbiBiZSB1c2VkIHRvIGNoZWNrCisgKiAgIGZvciB2YWxpZGl0eSBpZiBkZXNpcmVkLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+VW5tYXRjaGVkIFN1cnJvZ2F0ZXM6PC9zdHJvbmc+IElmIHRoZSBzdHJpbmcgY29udGFpbnMgdW5tYXRjaGVkCisgKiAgIHN1cnJvZ2F0ZXMsIHRoZW4gdGhlc2UgYXJlIGNvdW50ZWQgYXMgb25lIFVURi0zMiB2YWx1ZS4gVGhpcyBtYXRjaGVzCisgKiAgIHRoZWlyIGl0ZXJhdGlvbiBiZWhhdmlvciwgd2hpY2ggaXMgdml0YWwuIEl0IGFsc28gbWF0Y2hlcyBjb21tb24gZGlzcGxheQorICogICBwcmFjdGljZSBhcyBtaXNzaW5nIGdseXBocyAoc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIFNlY3Rpb24gNS40LCA1LjUpLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgICAgPHN0cm9uZz5PcHRpbWl6YXRpb246PC9zdHJvbmc+IFRoZSBtZXRob2QgaW1wbGVtZW50YXRpb25zIG1heSBuZWVkCisgKiAgICAgb3B0aW1pemF0aW9uIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IGZvbGQgc3RhdGljIGZpbmFsIG1ldGhvZHMuIFNpbmNlCisgKiAgICAgc3Vycm9nYXRlIHBhaXJzIHdpbGwgZm9ybSBhbiBleGNlZWRpbmcgc21hbGwgcGVyY2VudGFnZSBvZiBhbGwgdGhlIHRleHQKKyAqICAgICBpbiB0aGUgd29ybGQsIHRoZSBzaW5nbGV0b24gY2FzZSBzaG91bGQgYWx3YXlzIGJlIG9wdGltaXplZCBmb3IuCisgKiAgIDwvbGk+CisgKiA8L3VsPgorICogQGF1dGhvciBNYXJrIERhdmlzLCB3aXRoIGhlbHAgZnJvbSBNYXJrdXMgU2NoZXJlcgorICogQHN0YWJsZSBJQ1UgMi4xCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2Cit7CisgICAgLy8gcHVibGljIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGluIDxjb2RlPjxhIGhyZWY9IiNib3VuZHMoamF2YS5sYW5nLlN0cmluZywgaW50KSI+CisgICAgICogYm91bmRzKCk8L2E+PC9jb2RlPi4KKyAgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIGNob3NlbiBzcGVjaWZpY2FsbHkgc28gdGhhdCBpdCBhY3R1YWxseSByZXByZXNlbnRzCisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBbb2Zmc2V0MTYgLSAodmFsdWUgPj4gMiksIG9mZnNldDE2ICsgKHZhbHVlICYgMyldCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOR0xFX0NIQVJfQk9VTkRBUlkgPSAxLAorICAgICAgICBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA9IDIsCisgICAgICAgIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA9IDU7CisgICAgLyoqCisgICAgICogVGhlIGxvd2VzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09ERVBPSU5UX01JTl9WQUxVRSA9IDA7CisgICAgLyoqCisgICAgICogVGhlIGhpZ2hlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlIChzY2FsYXIgdmFsdWUpIGFjY29yZGluZyB0byB0aGUKKyAgICAgKiBVbmljb2RlIFN0YW5kYXJkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVQT0lOVF9NQVhfVkFMVUUgPSAweDEwZmZmZjsKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICA9IDB4MTAwMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA9IDB4RDgwMDsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweERDMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REJGRjsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERGRkY7CisgICAgLyoqCisgICAgICogU3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTUlOX1ZBTFVFID0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFOworICAgIC8qKgorICAgICAqIE1heGltdW0gc3Vycm9nYXRlIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BWF9WQUxVRSA9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFByZXZlbnQgaW5zdGFuY2UgZnJvbSBiZWluZyBjcmVhdGVkLgorICAgICAqLworICAgIHByaXZhdGUgVVRGMTYoKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLy8gcHVibGljIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj4KKyAgICAgKiBVQ2hhcmFjdGVyLmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2NoYXJBdChzb3VyY2UsIG9mZnNldDE2LCBzaW5nbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBfY2hhckF0KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNiwgY2hhciBzaW5nbGUpCisgICAgeworICAgICAgICBpZiAoc2luZ2xlID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj4KKyAgICAgKiBVQ2hhcmFjdGVyLmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoQ2hhclNlcXVlbmNlIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2NoYXJBdChzb3VyY2UsIG9mZnNldDE2LCBzaW5nbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBfY2hhckF0KENoYXJTZXF1ZW5jZSBzb3VyY2UsIGludCBvZmZzZXQxNiwgY2hhciBzaW5nbGUpCisgICAgeworICAgICAgICBpZiAoc2luZ2xlID4gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGLTE2IGNoYXJzIHN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgICogICAgICAgICBvZmZzZXQxNi4gVGhlIGJvdW5kYXJpZXMgb2YgdGhhdCBjb2RlcG9pbnQgYXJlIHRoZSBzYW1lIGFzIGluCisgICAgICogICAgICAgICA8Y29kZT5ib3VuZHMzMigpPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG91dCBvZgorICAgICAqICAgICAgICAgICAgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNoYXJBdChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID49IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4KKworICAgICAgICBpZiAoc2luZ2xlIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICArKyBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpICE9IG9mZnNldDE2KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGlzIGEgdHJhaWwgc3Vycm9nYXRlIHNvCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgc2luZ2xlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2luZ2xlOyAvLyByZXR1cm4gdW5tYXRjaGVkIHN1cnJvZ2F0ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdWJzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgICogICAgICAgICBvZmZzZXQxNi4gVGhlIGJvdW5kYXJpZXMgb2YgdGhhdCBjb2RlcG9pbnQgYXJlIHRoZSBzYW1lIGFzIGluCisgICAgICogICAgICAgICA8Y29kZT5ib3VuZHMzMigpPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG5vdCB3aXRoaW4KKyAgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcworICAgICAgICAvLyBsb3csIGxvb2sgYm90aCBkaXJlY3Rpb25zLgorICAgICAgICBpZiAoc2luZ2xlIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgb2Zmc2V0MTYgKys7CisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZVtvZmZzZXQxNl07CisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoc2luZ2xlLCB0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSwgc28KKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IHNvdXJjZVtvZmZzZXQxNl07CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisgICAgLyoqCisgICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN0cmluZy4KKyAgICAgKiBVc2VkIHdoZW4gaXRlcmF0aW5nIGZvcndhcmRzIG9yIGJhY2t3YXJkcyAod2l0aAorICAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPlVDaGFyYWN0ZXIuaXNMZWdhbCgpCisgICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKiBJZiB0aGUgY2hhciByZXRyaWV2ZWQgaXMgcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBpdHMgc3VwcGxlbWVudGFyeQorICAgICAqIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkLiBJZiBhIGNvbXBsZXRlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGlzCisgICAgICogbm90IGZvdW5kIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYtMTYgY2hhcnMgc3RyaW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVVRGLTMyIHZhbHVlIGZvciB0aGUgVVRGLTMyIHZhbHVlIHRoYXQgY29udGFpbnMgdGhlIGNoYXIgYXQKKyAgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mCisgICAgICogICAgICAgICAgICBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KFJlcGxhY2VhYmxlIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgc2luZ2xlID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgIGlmICghaXNTdXJyb2dhdGUoc2luZ2xlKSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKysgb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSBzbworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpbmdsZTsgLy8gcmV0dXJuIHVubWF0Y2hlZCBzdXJyb2dhdGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGhvdyBtYW55IGNoYXJzIHRoaXMgY2hhcjMyIHJlcXVpcmVzLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSA8Y29kZT4KKyAgICAgKiA8YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbgorICAgICAqIGNoYXIzMiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjb2RlcG9pbnQuCisgICAgICogQHJldHVybiAyIGlmIGlzIGluIHN1cHBsZW1lbnRhcnkgc3BhY2UsIG90aGVyd2lzZSAxLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDb3VudChpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBib3VuZGFyaWVzIGFyb3VuZCB0aGUgY2hhciBhdCBvZmZzZXQxNi4KKyAgICAgKiBVc2VkIGZvciByYW5kb20gYWNjZXNzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIDx1bD4KKyAgICAgKiAgICAgICAgICAgPGxpPiBTSU5HTEVfQ0hBUl9CT1VOREFSWSA6IGEgc2luZ2xlIGNoYXI7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYsIG9mZnNldDE2KzFdCisgICAgICogICAgICAgICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYsIG9mZnNldDE2ICsgMl0KKyAgICAgKiAgICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTYgLSAxOyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMV0KKyAgICAgKiAgICAgICAgIDwvdWw+CisgICAgICogICAgICAgICBGb3IgYml0LXR3aWRkbGVycywgdGhlIHJldHVybiB2YWx1ZXMgZm9yIHRoZXNlIGFyZSBjaG9zZW4gc28KKyAgICAgKiAgICAgICAgIHRoYXQgdGhlIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieToKKyAgICAgKiAgICAgICAgIFtvZmZzZXQxNiAtICh2YWx1ZSA+PiAyKSwgb2Zmc2V0MTYgKyAodmFsdWUgJiAzKV0uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgYm91bmRzKFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGNoYXIgY2ggPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoKysgb2Zmc2V0MTYgPCBzb3VyY2UubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpc1RyYWlsU3Vycm9nYXRlKGNoKSwgc28KKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCAmJiBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBTSU5HTEVfQ0hBUl9CT1VOREFSWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBib3VuZGFyaWVzIGFyb3VuZCB0aGUgY2hhciBhdCBvZmZzZXQxNi4gVXNlZAorICAgICAqIGZvciByYW5kb20gYWNjZXNzLgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIGJ1ZmZlciB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IG9mZnNldAorICAgICAqIEByZXR1cm4KKyAgICAgKiAgICAgPHVsPgorICAgICAqICAgICA8bGk+IFNJTkdMRV9DSEFSX0JPVU5EQVJZIDogYSBzaW5nbGUgY2hhcjsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2LCBvZmZzZXQxNiArIDFdCisgICAgICogICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICAqICAgICA8bGk+IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtIDE7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxXQorICAgICAqICAgICA8L3VsPgorICAgICAqIEZvciBiaXQtdHdpZGRsZXJzLCB0aGUgcmV0dXJuIHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZQorICAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieToKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gKHZhbHVlID4+IDIpLCBvZmZzZXQxNiArICh2YWx1ZSAmIDMpXS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBib3VuZHMoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICgrKyBvZmZzZXQxNiA8IHNvdXJjZS5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlzVHJhaWxTdXJyb2dhdGUoY2gpLCBzbworICAgICAgICAgICAgICAgIC0tIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNJTkdMRV9DSEFSX0JPVU5EQVJZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGJvdW5kYXJpZXMgYXJvdW5kIHRoZSBjaGFyIGF0IG9mZnNldDE2LiBVc2VkCisgICAgICogZm9yIHJhbmRvbSBhY2Nlc3MuIE5vdGUgdGhhdCB0aGUgYm91bmRhcmllcyBhcmUgZGV0ZXJtaW5lZCB3aXRoIHJlc3BlY3QKKyAgICAgKiB0byB0aGUgc3ViYXJyYXksIGhlbmNlIHRoZSBjaGFyIGFycmF5IHsweEQ4MDAsIDB4REMwMH0gaGFzIHRoZSByZXN1bHQKKyAgICAgKiBTSU5HTEVfQ0hBUl9CT1VOREFSWSBmb3Igc3RhcnQgPSBvZmZzZXQxNiA9IDAgYW5kIGxpbWl0ID0gMS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGNoYXIgYXJyYXkgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcmV0dXJuCisgICAgICogICAgIDx1bD4KKyAgICAgKiAgICAgICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyOyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgPGxpPiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTY7IHRoZSBib3VuZHMgYXJlIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICAqICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgICogICAgICAgICAgICAgICBvZmZzZXQxNiAtIDE7IHRoZSBib3VuZHMgYXJlIFtvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMV0KKyAgICAgKiAgICAgPC91bD4KKyAgICAgKiBGb3IgYml0LXR3aWRkbGVycywgdGhlIGJvdW5kYXJ5IHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZQorICAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieTogW29mZnNldDE2IC0gKGJvdW5kdmFsdWUgPj4gMiksIG9mZnNldDE2CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoYm91bmR2YWx1ZSAmIDMpXS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgbm90IHdpdGhpbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2Ugb2Ygc3RhcnQgYW5kIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGJvdW5kcyhjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgb2Zmc2V0MTYgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IHN0YXJ0IHx8IG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGNoID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICArKyBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPCBsaW1pdCAmJiBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtvZmZzZXQxNl0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsgLy8gaXNUcmFpbFN1cnJvZ2F0ZShjaCksIHNvCisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IHN0YXJ0ICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2Vbb2Zmc2V0MTZdKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU0lOR0xFX0NIQVJfQk9VTkRBUlk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2RlIHZhbHVlIGlzIGEgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3Vycm9nYXRlKGNoYXIgY2hhcjE2KQorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYKKyAgICAgICAgICAgIGNoYXIxNiA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJhaWxTdXJyb2dhdGUoY2hhciBjaGFyMTYpCisgICAgeworICAgICAgICByZXR1cm4gKFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmCisgICAgICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgbGVhZCBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIGxlYWQgc3Vycm9nYXRlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGVhZFN1cnJvZ2F0ZShjaGFyIGNoYXIxNikKKyAgICB7CisgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPD0gY2hhcjE2ICYmCisgICAgICAgICAgICBjaGFyMTYgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+CisgICAgICogb24gY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIGxlYWQgc3Vycm9nYXRlIGlmIHRoZSBnZXRDaGFyQ291bnQoY2gpIGlzIDI7IDxicj4KKyAgICAgKiAgICAgICAgIGFuZCAwIG90aGVyd2lzZSAobm90ZTogMCBpcyBub3QgYSB2YWxpZCBsZWFkIHN1cnJvZ2F0ZSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldExlYWRTdXJyb2dhdGUoaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoTEVBRF9TVVJST0dBVEVfT0ZGU0VUXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyMzIgPj4gTEVBRF9TVVJST0dBVEVfU0hJRlRfKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGNvZGU+PGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4KKyAgICAgKiBvbiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgICogQHBhcmFtIGNoYXIzMiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsIHN1cnJvZ2F0ZSBpZiB0aGUgZ2V0Q2hhckNvdW50KGNoKSBpcyAyOyA8YnI+b3RoZXJ3aXNlCisgICAgICogICAgICAgICB0aGUgY2hhcmFjdGVyIGl0c2VsZgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRUcmFpbFN1cnJvZ2F0ZShpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIChjaGFyKShUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIzMiAmIFRSQUlMX1NVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChjaGFyKWNoYXIzMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgY29ycmVzcG9uZGluZyB0byBTdHJpbmcudmFsdWVPZihjaGFyKS4gUmV0dXJucyBhIG9uZQorICAgICAqIG9yIHR3byBjaGFyIHN0cmluZyBjb250YWluaW5nIHRoZSBVVEYtMzIgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGNoYXIzMiBpcyBhIGludmFsaWQKKyAgICAgKiAgICAgICAgICAgIGNvZGVwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0b1N0cmluZyhjaGFyMzIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIFN0cmluZy52YWx1ZU9mKGNvZGVwb2ludCBhdAorICAgICAqIG9mZnNldDE2KS4KKyAgICAgKiBSZXR1cm5zIGEgb25lIG9yIHR3byBjaGFyIHN0cmluZyBjb250YWluaW5nIHRoZSBVVEYtMzIgdmFsdWUgaW4gVVRGMTYKKyAgICAgKiBmb3JtYXQuIElmIG9mZnNldDE2IGluZGV4ZXMgYSBzdXJyb2dhdGUgY2hhcmFjdGVyLCB0aGUgd2hvbGUKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludCB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZQorICAgICAqIGNvZGVwb2ludCBhdCBvZmZzZXQxNiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBUaGUgcmVzdWx0IHJldHVybmVkIHdpbGwgYmUgYSBuZXdseSBjcmVhdGVkIFN0cmluZyBvYnRhaW5lZCBieSBjYWxsaW5nCisgICAgICogc291cmNlLnN1YnN0cmluZyguLikgd2l0aCB0aGUgYXBwcm9wcmlhdGUgaW5kZXhlcy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZQorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiBTdHJpbmdCdWZmZXIudmFsdWVPZihjb2RlcG9pbnQgYXQgb2Zmc2V0MTYpLgorICAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNgorICAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZQorICAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlCisgICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAgICAgKiBzb3VyY2Uuc3Vic3RyaW5nKC4uKSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBpbmRleGVzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGlucHV0IHN0cmluZyBidWZmZXIuCisgICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZQorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNgorICAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZQorICAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQsIGV4Y2VwdCB3aGVuIGVpdGhlciB0aGUKKyAgICAgKiBsZWFkaW5nIG9yIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgbGllcyBvdXQgb2YgdGhlIHNwZWNpZmllZAorICAgICAqIHN1YmFycmF5LiBJbiB0aGUgbGF0dGVyIGNhc2UsIG9ubHkgdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgd2l0aGluCisgICAgICogYm91bmRzIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlCisgICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICogcmVsZXZhbnQgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBpbnB1dCBjaGFyIGFycmF5LgorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBpbmRleCBvZiB0aGUgc3ViYXJyYXkKKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kIGluZGV4IG9mIHRoZSBzdWJhcnJheQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiB0aGUgVVRGMTYgaW5kZXggdG8gdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UgcmVsYXRpdmUgdG8KKyAgICAgKiAgICAgICAgc3RhcnQKKyAgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWVPZihjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgc3RhcnQsIGxpbWl0LCBvZmZzZXQxNikpIHsKKyAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHNvdXJjZSwgc3RhcnQgKyBvZmZzZXQxNiwgMik7CisgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2IC0gMSwgMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2LCAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MzIgVVRGLTMyIG9mZnNldAorICAgICAqIEByZXR1cm4gVVRGLTE2IG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQzMiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQzMikKKyAgICB7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpLAorICAgICAgICAgICAgcmVzdWx0ID0gMCwKKyAgICAgICAgICAgIGNvdW50ID0gb2Zmc2V0MzI7CisgICAgICAgIGlmIChvZmZzZXQzMiA8IDAgfHwgb2Zmc2V0MzIgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBzdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldDMyIFVURi0zMiBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIFVURi0xNiBvZmZzZXQKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MzIgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludChTdHJpbmdCdWZmZXIgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQzMikKKyAgICB7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpLAorICAgICAgICAgICAgcmVzdWx0ID0gMCwKKyAgICAgICAgICAgIGNvdW50ID0gb2Zmc2V0MzI7CisgICAgICAgIGlmIChvZmZzZXQzMiA8IDAgfHwgb2Zmc2V0MzIgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMTYgb2Zmc2V0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBVVEYtMzIgb2Zmc2V0LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICAqIGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBjaGFyIGFycmF5IHdob3NlIHN1YnN0cmluZyBpcyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZyB0byBiZSBhbmFseXNlZAorICAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYtMzIgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHJldHVybiBVVEYtMTYgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDMyIGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZE9mZnNldEZyb21Db2RlUG9pbnQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwgaW50IG9mZnNldDMyKQorICAgIHsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0YXJ0LAorICAgICAgICAgICAgY291bnQgPSBvZmZzZXQzMjsKKyAgICAgICAgaWYgKG9mZnNldDMyID4gbGltaXQgLSBzdGFydCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IGxpbWl0ICYmIGNvdW50ID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtyZXN1bHRdOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBsaW1pdCkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2VbcmVzdWx0ICsgMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0IC0gc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGLTMyIG9mZnNldCBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBVVEYtMzIgYm91bmRhcnkgYXQKKyAgICAgKiBvciBhZnRlciB0aGUgZ2l2ZW4gVVRGLTE2IG9mZnNldC4gVXNlZCBmb3IgcmFuZG9tIGFjY2Vzcy4gU2VlIHRoZQorICAgICAqIDxhIG5hbWU9Il90b3BfIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4gZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuPGJyPgorICAgICAqIDxpPk5vdGU6IElmIHRoZSBVVEYtMTYgb2Zmc2V0IGlzIGludG8gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLAorICAgICAqIHRoZW4gdGhlIFVURi0zMiBvZmZzZXQgb2YgdGhlIDxzdHJvbmc+bGVhZDwvc3Ryb25nPiBvZiB0aGUgcGFpciBpcworICAgICAqIHJldHVybmVkLgorICAgICAqIDwvaT4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBmaW5kIHRoZSBVVEYtMzIgbGVuZ3RoIG9mIGEgc3RyaW5nLCB1c2U6CisgICAgICogICA8cHJlPgorICAgICAqICAgICBsZW4zMiA9IGNvdW50Q29kZVBvaW50KHNvdXJjZSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICAgKiAgIDwvcHJlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IDwgc291cmNlIHRleHQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0MTY7ICsrIGkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIGlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgICAgICAgICAgIC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG9mIHNvdXJjZSBiZWluZyB0aGUgbGVzcyBzaWduaWZpY2FudCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHNoaWZ0IHJlc3VsdCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgKGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSkgeworICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICAqIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlCisgICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsCisgICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzCisgICAgICogcmV0dXJuZWQuCisgICAgICogPC9pPgorICAgICAqIDxwPgorICAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdHJpbmcsIHVzZToKKyAgICAgKiAgIDxwcmU+CisgICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlKTsKKyAgICAgKiAgIDwvcHJlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgdG8gYW5hbHlzZQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IDwgc291cmNlIHRleHQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0MTY7ICsrIGkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIGlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgICAgICAgICAgIC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG9mIHNvdXJjZSBiZWluZyB0aGUgbGVzcyBzaWduaWZpY2FudCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHNoaWZ0IHJlc3VsdCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgKGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChvZmZzZXQxNikpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICAqIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlCisgICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsCisgICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzCisgICAgICogcmV0dXJuZWQuCisgICAgICogPC9pPgorICAgICAqIDxwPgorICAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdWJzdHJpbmcsIHVzZToKKyAgICAgKiAgIDxwcmU+CisgICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlLCBzdGFydCwgbGltaXQpOworICAgICAqICAgPC9wcmU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEByZXR1cm4gVVRGLTMyIG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIHRoZQorICAgICAqICAgICAgICAgICAgcmFuZ2Ugb2Ygc3RhcnQgYW5kIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBjaGFyIGNoOworICAgICAgICBib29sZWFuIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBvZmZzZXQxNjsgKysgaSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiBpc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7IC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gaXNMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAob2Zmc2V0MTYgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBlbmQgb2Ygc291cmNlIGJlaW5nIHRoZSBsZXNzIHNpZ25pZmljYW50IHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2hpZnQgcmVzdWx0IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAoaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2Vbb2Zmc2V0MTZdKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgc2luZ2xlIFVURi0zMiB2YWx1ZSB0byB0aGUgZW5kIG9mIGEgU3RyaW5nQnVmZmVyLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHZhbHVlIHRvIGFwcGVuZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIFN0cmluZ0J1ZmZlcgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGNoYXIzMiBkb2VzIG5vdCBsaWUKKyAgICAgKiAgICAgICAgICAgIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIFVuaWNvZGUgY29kZXBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGFwcGVuZChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGlycmVndWxhciB2YWx1ZXMKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjb2RlcG9pbnQ6ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoYXIzMikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgdGhlIFVURi0xNiB2YWx1ZXMKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGdldExlYWRTdXJyb2dhdGUoY2hhcjMyKSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChnZXRUcmFpbFN1cnJvZ2F0ZShjaGFyMzIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKChjaGFyKWNoYXIzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciBKREsgMS41IEFQSXMuICBBcHBlbmQgdGhlIGNvZGUgcG9pbnQgdG8gdGhlIGJ1ZmZlciBhbmQgcmV0dXJuIHRoZSBidWZmZXIKKyAgICAgKiBhcyBhIGNvbnZlbmllbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgYnVmZmVyIHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIFN0cmluZ0J1ZmZlcgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGNwIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IGNwKSB7CisgICAgICAgIHJldHVybiBhcHBlbmQodGFyZ2V0LCBjcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhIGNvZGVwb2ludCB0byBvZmZzZXQxNiBwb3NpdGlvbiBvZiB0aGUgYXJndW1lbnQgY2hhciBhcnJheS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkgdG8gYmUgYXBwZW5kIHdpdGggdGhlIG5ldyBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGxpbWl0IFVURjE2IG9mZnNldCB3aGljaCB0aGUgY29kZXBvaW50IHdpbGwgYmUgYXBwZW5kZWQuCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50IHRvIGJlIGFwcGVuZGVkCisgICAgICogQHJldHVybiBvZmZzZXQgYWZ0ZXIgY2hhcjMyIGluIHRoZSBhcnJheS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgc3BhY2UgZm9yIHRoZSBhcHBlbmQsIG9yIHdoZW4gY2hhcjMyIGRvZXMgbm90IGxpZSB3aXRoaW4KKyAgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiB0aGUgVW5pY29kZSBjb2RlcG9pbnRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGFwcGVuZChjaGFyW10gdGFyZ2V0LCBpbnQgbGltaXQsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICAvLyBDaGVjayBmb3IgaXJyZWd1bGFyIHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIFdyaXRlIHRoZSBVVEYtMTYgdmFsdWVzCisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0W2xpbWl0ICsrXSA9IGdldExlYWRTdXJyb2dhdGUoY2hhcjMyKTsKKyAgICAgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gZ2V0VHJhaWxTdXJyb2dhdGUoY2hhcjMyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gKGNoYXIpY2hhcjMyOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IFN0cmluZworICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgc3RyaW5nCisgICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q29kZVBvaW50KFN0cmluZyBzb3VyY2UpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwgfHwgc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaW5kQ29kZVBvaW50T2Zmc2V0KHNvdXJjZSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IFN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IHN0cmluZyBidWZmZXIKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBjb2RlcG9pbnQgaW4gc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlUG9pbnRPZmZzZXQoc291cmNlLCBzb3VyY2UubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBjb2RlcG9pbnRzIGluIGEgVVRGMTYgY2hhciBhcnJheSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGNoYXIgYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBjb2RlcG9pbnQgaW4gdGhlIHN1YnN0cmluZworICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBzdGFydCBhbmQgbGltaXQgYXJlIG5vdCB2YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudENvZGVQb2ludChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaW5kQ29kZVBvaW50T2Zmc2V0KHNvdXJjZSwgc3RhcnQsIGxpbWl0LCBsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBjb2RlIHBvaW50IGludG8gYSBVVEYxNiBwb3NpdGlvbi4KKyAgICAgKiBBZGp1c3RzIHRhcmdldCBhY2NvcmRpbmcgaWYgd2UgYXJlIHJlcGxhY2luZyBhIG5vbi1zdXBwbGVtZW50YXJ5CisgICAgICogY29kZXBvaW50IHdpdGggYSBzdXBwbGVtZW50YXJ5IGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIGluc2VydCBpbnRvCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJBdChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgY2hhciBzaW5nbGUgPSB0YXJnZXQuY2hhckF0KG9mZnNldDE2KTsKKworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoc2luZ2xlKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIGxlYWQgY2hhciBmb3VuZAorICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc2luZ2xlKSAmJiAodGFyZ2V0Lmxlbmd0aCgpID4gb2Zmc2V0MTYgKyAxKQorICAgICAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHRhcmdldC5jaGFyQXQob2Zmc2V0MTYgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIHRyYWlsIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSAmJiAob2Zmc2V0MTYgPiAwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHRhcmdldC5jaGFyQXQob2Zmc2V0MTYgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHRhcmdldC5yZXBsYWNlKG9mZnNldDE2LCBvZmZzZXQxNiArIGNvdW50LCB2YWx1ZU9mKGNoYXIzMikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIGNvZGUgcG9pbnQgaW50byBhIFVURjE2IHBvc2l0aW9uIGluIGEgY2hhciBhcnJheS4KKyAgICAgKiBBZGp1c3RzIHRhcmdldCBhY2NvcmRpbmcgaWYgd2UgYXJlIHJlcGxhY2luZyBhIG5vbi1zdXBwbGVtZW50YXJ5CisgICAgICogY29kZXBvaW50IHdpdGggYSBzdXBwbGVtZW50YXJ5IGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0YXJnZXQgY2hhciBhcnJheQorICAgICAqIEBwYXJhbSBsaW1pdCBudW1iZXJzIG9mIHZhbGlkIGNoYXJzIGluIHRhcmdldCwgZGlmZmVyZW50IGZyb20KKyAgICAgKiAgICAgICAgdGFyZ2V0Lmxlbmd0aC4gbGltaXQgY291bnRzIHRoZSBudW1iZXIgb2YgY2hhcnMgaW4gdGFyZ2V0CisgICAgICogICAgICAgIHRoYXQgcmVwcmVzZW50cyBhIHN0cmluZywgbm90IHRoZSBzaXplIG9mIGFycmF5IHRhcmdldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gaW5zZXJ0IGludG8KKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIG5ldyBudW1iZXIgb2YgY2hhcnMgaW4gdGFyZ2V0IHRoYXQgcmVwcmVzZW50cyBhIHN0cmluZworICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBzZXRDaGFyQXQoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIGNoYXIgc2luZ2xlID0gdGFyZ2V0W29mZnNldDE2XTsKKworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoc2luZ2xlKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIGxlYWQgY2hhciBmb3VuZAorICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc2luZ2xlKSAmJiAodGFyZ2V0Lmxlbmd0aCA+IG9mZnNldDE2ICsgMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRbb2Zmc2V0MTYgKyAxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIHRyYWlsIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSAmJiAob2Zmc2V0MTYgPiAwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHRhcmdldFtvZmZzZXQxNiAtMV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpbnQgcmVzdWx0ID0gbGltaXQ7CisgICAgICAgIGludCBzdHJsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIHRhcmdldFtvZmZzZXQxNl0gPSBzdHIuY2hhckF0KDApOworICAgICAgICBpZiAoY291bnQgPT0gc3RybGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworICAgICAgICAgICAgICAgIHRhcmdldFtvZmZzZXQxNiArIDFdID0gc3RyLmNoYXJBdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGV4YWN0IG1hdGNoIGluIHNwYWNlLCB3ZSdsbCBoYXZlIHRvIGRvIHNvbWUKKyAgICAgICAgICAgIC8vIHNoaWZ0aW5nCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYgKyBjb3VudCwgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiArIHN0cmxlbmd0aCwgbGltaXQgLSAob2Zmc2V0MTYgKyBjb3VudCkpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgc3RybGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gY2hhcjMyIGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgdHJ5aW5nIHRvIHNxdWVlemUgaW50bworICAgICAgICAgICAgICAgIC8vIGEgbm9uLXN1cHBsZW1lbnRhcnkgc3BhY2UKKyAgICAgICAgICAgICAgICB0YXJnZXRbb2Zmc2V0MTYgKyAxXSA9IHN0ci5jaGFyQXQoMSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPCB0YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFtyZXN1bHRdID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBjaGFyMzIgaXMgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgdHJ5aW5nIHRvIGZpbGwKKyAgICAgICAgICAgICAgICAvLyBpbnRvIGEgc3VwcGxlbWVudGFyeSBzcGFjZQorICAgICAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgICAgICAgICB0YXJnZXRbcmVzdWx0XSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgb2Zmc2V0MTYgYnkgdGhlIGFyZ3VtZW50IG51bWJlciBvZiBjb2RlcG9pbnRzCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQKKyAgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICAqIEByZXR1cm4gbmV3IHNoaWZ0ZWQgb2Zmc2V0MTYKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIG5ldyBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gb2Zmc2V0MTY7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGlmIChvZmZzZXQxNjwwIHx8IG9mZnNldDE2PnNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hpZnQzMiA+IDAgKSB7CisgICAgICAgICAgICBpZiAoc2hpZnQzMiArIG9mZnNldDE2ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gc2hpZnQzMjsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBzaXplICYmIGNvdW50ID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgc2l6ZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgKyBzaGlmdDMyIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQ9LXNoaWZ0MzI7IGNvdW50PjA7IGNvdW50LS0pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiByZXN1bHQ+MCAmJiBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQtMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHNoaWZ0MzIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2hpZnRzIG9mZnNldDE2IGJ5IHRoZSBhcmd1bWVudCBudW1iZXIgb2YgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBwb3NpdGlvbiB0byBzaGlmdAorICAgICAqIEBwYXJhbSBzaGlmdDMyIG51bWJlciBvZiBjb2RlcG9pbnRzIHRvIHNoaWZ0CisgICAgICogQHJldHVybiBuZXcgc2hpZnRlZCBvZmZzZXQxNgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgbmV3IG9mZnNldDE2IGlzIG91dCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbW92ZUNvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2hpZnQzMikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBvZmZzZXQxNjsKKyAgICAgICAgaW50IHNpemUgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCBjb3VudDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaWYgKG9mZnNldDE2PDAgfHwgb2Zmc2V0MTY+c2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGlmIChzaGlmdDMyID4gMCApIHsKKyAgICAgICAgICAgIGlmIChzaGlmdDMyICsgb2Zmc2V0MTYgPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgPSBzaGlmdDMyOworICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpICYmICgocmVzdWx0ICsgMSkgPCBzaXplKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiArIHNoaWZ0MzIgPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChjb3VudD0tc2hpZnQzMjsgY291bnQ+MDsgY291bnQtLSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ8MCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIHJlc3VsdD4wICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdC0xKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSAgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc2hpZnQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgb2Zmc2V0MTYgYnkgdGhlIGFyZ3VtZW50IG51bWJlciBvZiBjb2RlcG9pbnRzIHdpdGhpbiBhIHN1YmFycmF5LgorICAgICAqIEBwYXJhbSBzb3VyY2UgY2hhciBhcnJheQorICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ViYXJyYXkgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGxpbWl0IHBvc2l0aW9uIG9mIHRoZSBzdWJhcnJheSB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICAqIEByZXR1cm4gbmV3IHNoaWZ0ZWQgb2Zmc2V0MTYgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIG5ldyBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcyB3aXRoIHJlc3BlY3QgdG8gdGhlIHN1YmFycmF5IG9yIHRoZSBzdWJhcnJheSBib3VuZHMKKyAgICAgKiAgICAgICAgICAgIGFyZSBvdXQgb2YgcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbW92ZUNvZGVQb2ludE9mZnNldChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNiwgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgICAgICAgICBzaXplID0gc291cmNlLmxlbmd0aDsKKyAgICAgICAgaW50ICAgICAgICAgY291bnQ7CisgICAgICAgIGNoYXIgICAgICAgIGNoOworICAgICAgICBpbnQgICAgICAgICByZXN1bHQgPSBvZmZzZXQxNiArIHN0YXJ0OworICAgICAgICBpZiAoc3RhcnQ8MCB8fCBsaW1pdDxzdGFydCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmIChsaW1pdD5zaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihsaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9mZnNldDE2PDAgfHwgcmVzdWx0PmxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNoaWZ0MzIgPiAwICkgeworICAgICAgICAgICAgaWYgKHNoaWZ0MzIgKyByZXN1bHQgPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gc2hpZnQzMjsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBsaW1pdCAmJiBjb3VudCA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbcmVzdWx0XTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAocmVzdWx0KzEgPCBsaW1pdCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3Jlc3VsdCsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0ICsgc2hpZnQzMiA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQ9LXNoaWZ0MzI7IGNvdW50PjA7IGNvdW50LS0pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtyZXN1bHRdOworICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiByZXN1bHQ+c3RhcnQgJiYgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZVtyZXN1bHQtMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHNoaWZ0MzIpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCAtPSBzdGFydDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnRzIGNoYXIzMiBjb2RlcG9pbnQgaW50byB0YXJnZXQgYXQgdGhlIGFyZ3VtZW50IG9mZnNldDE2LgorICAgICAqIElmIHRoZSBvZmZzZXQxNiBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQsIGNoYXIzMgorICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LgorICAgICAqIFRoZSBsZW5ndGggb2YgdGFyZ2V0IGluY3JlYXNlcyBieSBvbmUgaWYgY29kZXBvaW50IGlzIG5vbi1zdXBwbGVtZW50YXJ5LAorICAgICAqIDIgb3RoZXJ3aXNlLgorICAgICAqIDxwPgorICAgICAqIFRoZSBvdmVyYWxsIGVmZmVjdCBpcyBleGFjdGx5IGFzIGlmIHRoZSBhcmd1bWVudCB3ZXJlIGNvbnZlcnRlZCB0byBhCisgICAgICogc3RyaW5nIGJ5IHRoZSBtZXRob2QgdmFsdWVPZihjaGFyKSBhbmQgdGhlIGNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcKKyAgICAgKiB3ZXJlIHRoZW4gaW5zZXJ0ZWQgaW50byB0YXJnZXQgYXQgdGhlIHBvc2l0aW9uIGluZGljYXRlZCBieSBvZmZzZXQxNi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIG9mZnNldCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLCBhbmQgbGVzcyB0aGFuCisgICAgICogb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiBzb3VyY2UuCisgICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcgYnVmZmVyIHRvIGluc2VydCB0bworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggY2hhcjMyIHdpbGwgYmUgaW5zZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGFyZ2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGluc2VydChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpZiAob2Zmc2V0MTYgIT0gdGFyZ2V0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICBib3VuZHModGFyZ2V0LCBvZmZzZXQxNikgPT0gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQuaW5zZXJ0KG9mZnNldDE2LCBzdHIpOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydHMgY2hhcjMyIGNvZGVwb2ludCBpbnRvIHRhcmdldCBhdCB0aGUgYXJndW1lbnQgb2Zmc2V0MTYuCisgICAgICogSWYgdGhlIG9mZnNldDE2IGlzIGluIHRoZSBtaWRkbGUgb2YgYSBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludCwgY2hhcjMyCisgICAgICogd2lsbCBiZSBpbnNlcnRlZCBhZnRlciB0aGUgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQuCisgICAgICogTGltaXQgaW5jcmVhc2VzIGJ5IG9uZSBpZiBjb2RlcG9pbnQgaXMgbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlLgorICAgICAqIDxwPgorICAgICAqIFRoZSBvdmVyYWxsIGVmZmVjdCBpcyBleGFjdGx5IGFzIGlmIHRoZSBhcmd1bWVudCB3ZXJlIGNvbnZlcnRlZCB0byBhCisgICAgICogc3RyaW5nIGJ5IHRoZSBtZXRob2QgdmFsdWVPZihjaGFyKSBhbmQgdGhlIGNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcKKyAgICAgKiB3ZXJlIHRoZW4gaW5zZXJ0ZWQgaW50byB0YXJnZXQgYXQgdGhlIHBvc2l0aW9uIGluZGljYXRlZCBieSBvZmZzZXQxNi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIG9mZnNldCBhcmd1bWVudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLCBhbmQgbGVzcyB0aGFuCisgICAgICogb3IgZXF1YWwgdG8gdGhlIGxpbWl0LgorICAgICAqIEBwYXJhbSB0YXJnZXQgY2hhciBhcnJheSB0byBpbnNlcnQgdG8KKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kIGluZGV4IG9mIHRoZSBjaGFyIGFycmF5LCBsaW1pdCA8PSB0YXJnZXQubGVuZ3RoCisgICAgICogQHBhcmFtIG9mZnNldDE2IG9mZnNldCB3aGljaCBjaGFyMzIgd2lsbCBiZSBpbnNlcnRlZCBpbgorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIGJlIGluc2VydGVkCisgICAgICogQHJldHVybiBuZXcgbGltaXQgc2l6ZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgaW52YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBpbnNlcnQoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gdmFsdWVPZihjaGFyMzIpOworICAgICAgICBpZiAob2Zmc2V0MTYgIT0gbGltaXQgJiYKKyAgICAgICAgICAgIGJvdW5kcyh0YXJnZXQsIDAsIGxpbWl0LCBvZmZzZXQxNikgPT0gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgfQorICAgICAgICBpbnQgc2l6ZSA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxpbWl0ICsgc2l6ZSA+IHRhcmdldC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYgKyBzaXplKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYsIHRhcmdldCwgb2Zmc2V0MTYgKyBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IC0gb2Zmc2V0MTYpOworICAgICAgICB0YXJnZXRbb2Zmc2V0MTZdID0gc3RyLmNoYXJBdCgwKTsKKyAgICAgICAgaWYgKHNpemUgPT0gMikgeworICAgICAgICAgICAgdGFyZ2V0W29mZnNldDE2ICsgMV0gPSBzdHIuY2hhckF0KDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW1pdCArIHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgY29kZXBvaW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyB0YXJnZXQKKyAgICAgKiAoc2hvcnRlbmluZyB0YXJnZXQgYnkgMSBjaGFyYWN0ZXIgaWYgdGhlIGNvZGVwb2ludCBpcyBhCisgICAgICogbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlKS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZyBidWZmZXIgdG8gcmVtb3ZlIGNvZGVwb2ludCBmcm9tCisgICAgICogQHBhcmFtIG9mZnNldDE2IG9mZnNldCB3aGljaCB0aGUgY29kZXBvaW50IHdpbGwgYmUgcmVtb3ZlZAorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGFyZ2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGRlbGV0ZShTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICBzd2l0Y2ggKGJvdW5kcyh0YXJnZXQsIG9mZnNldDE2KSkgeworICAgICAgICBjYXNlIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0LmRlbGV0ZShvZmZzZXQxNiwgb2Zmc2V0MTYgKyBjb3VudCk7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgY29kZXBvaW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyB0YXJnZXQKKyAgICAgKiAoc2hvcnRlbmluZyB0YXJnZXQgYnkgMSBjaGFyYWN0ZXIgaWYgdGhlIGNvZGVwb2ludCBpcyBhCisgICAgICogbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlKS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZyBidWZmZXIgdG8gcmVtb3ZlIGNvZGVwb2ludCBmcm9tCisgICAgICogQHBhcmFtIGxpbWl0IGVuZCBpbmRleCBvZiB0aGUgY2hhciBhcnJheSwgbGltaXQgPD0gdGFyZ2V0Lmxlbmd0aAorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggdGhlIGNvZGVwb2ludCB3aWxsIGJlIHJlbW92ZWQKKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxpbWl0IHNpemUKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGVsZXRlKGNoYXIgdGFyZ2V0W10sIGludCBsaW1pdCwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgc3dpdGNoIChib3VuZHModGFyZ2V0LCAwLCBsaW1pdCwgb2Zmc2V0MTYpKSB7CisgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgb2Zmc2V0MTYgLS07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYgKyBjb3VudCwgdGFyZ2V0LCBvZmZzZXQxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtIChvZmZzZXQxNiArIGNvdW50KSk7CisgICAgICAgIHRhcmdldFtsaW1pdCAtIGNvdW50XSA9IDA7CisgICAgICAgIHJldHVybiBsaW1pdCAtIGNvdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIHNtYWxsZXN0CisgICAgICogaW5kZXggPGNvZGU+aTwvY29kZT4gc3VjaCB0aGF0IDxjb2RlPlVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09CisgICAgICogY2hhcjMyPC9jb2RlPiBpcyB0cnVlLgorICAgICAqIDxwPklmIG5vIHN1Y2ggY2hhcmFjdGVyIG9jY3VycyBpbiB0aGlzIHN0cmluZywgdGhlbiAtMSBpcyByZXR1cm5lZC48L3A+CisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICdhJykgcmV0dXJucyAwPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDApIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHRoZQorICAgICAqICAgICAgICAgYXJndW1lbnQgVW5pY29kZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICB9CisgICAgICAgIC8vIHN1cnJvZ2F0ZQorICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihjaGFyMzJzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IHN0cmluZyBzdHIuIFRoaXMgbWV0aG9kIGlzCisgICAgICogaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSAibGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyICsKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIiBpcyB0cmVhdGVkIGFzIG9uZSBlbnRpdHkuZQorICAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhCisgICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluCisgICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzCisgICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAgKiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAgICAgKiA8cD5JZiBubyBzdWNoIHN0cmluZyBzdHIgb2NjdXJzIGluIHRoaXMgc291cmNlLCB0aGVuIC0xIGlzIHJldHVybmVkLgorICAgICAqIDwvcD4gPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICJhYiIpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIikgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDAiKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nLCBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihzdHIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCAgICA9IHNvdXJjZS5pbmRleE9mKHN0cik7CisgICAgICAgIGludCByZXN1bHRFbmQgPSByZXN1bHQgKyBzdHJMZW5ndGg7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0RW5kICsgMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LiBJLmUuLCB0aGUgc21hbGxlc3QKKyAgICAgKiBpbmRleCBpIHN1Y2ggdGhhdDogPGJyPgorICAgICAqIChVVEYxNi5jaGFyQXQoc291cmNlLCBpKSA9PSBjaGFyMzIgJiYgaSA+PSBmcm9tSW5kZXgpIGlzIHRydWUuCisgICAgICogPHA+SWYgbm8gc3VjaCBjaGFyYWN0ZXIgb2NjdXJzIGluIHRoaXMgc3RyaW5nLCB0aGVuIC0xIGlzIHJldHVybmVkLjwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBFeGFtcGxlczo8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgJ2EnLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDAsIDEpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDAsIDEpIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nIGF0IG9yIGFmdGVyIGZyb21JbmRleCwgb3IgLTEgaWYgdGhlCisgICAgICogICAgICAgICBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IGNoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBub24tc3Vycm9nYXRlIGJtcAorICAgICAgICBpZiAoY2hhcjMyIDwgTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIHx8CisgICAgICAgICAgICAoY2hhcjMyID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSAmJgorICAgICAgICAgICAgIGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmluZGV4T2YoKGNoYXIpY2hhcjMyLCBmcm9tSW5kZXgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihjaGFyMzJzdHIsIGZyb21JbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ci4gVGhpcyBtZXRob2QgaXMKKyAgICAgKiBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKworICAgICAqIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lIGVudGl0eS5lCisgICAgICogSGVuY2UgaWYgdGhlIHN0ciBzdGFydHMgd2l0aCB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIGF0IGluZGV4IDAsIGEKKyAgICAgKiBzb3VyY2Ugd2l0aCBhIGxlYWRpbmcgYSBzdXJyb2dhdGUgY2hhcmFjdGVyIGJlZm9yZSBzdHIgZm91bmQgYXQgaW4KKyAgICAgKiBzb3VyY2Ugd2lsbCBub3QgaGF2ZSBhIHZhbGlkIG1hdGNoLiBWaWNlIHZlcnNhIGZvciBsZWFkIHN1cnJvZ2F0ZXMKKyAgICAgKiB0aGF0IGVuZHMgc3RyLgorICAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICAqIDxwPklmIG5vIHN1Y2ggc3RyaW5nIHN0ciBvY2N1cnMgaW4gdGhpcyBzb3VyY2UsIHRoZW4gLTEgaXMgcmV0dXJuZWQuCisgICAgICogPC9wPiA8cD4KKyAgICAgKiBFeGFtcGxlczo8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgImFiIiwgMCkgcmV0dXJucyAwPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiLCAwKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDIpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgMCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvcgorICAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHRoZQorICAgICAqICAgICAgICAgYXJndW1lbnQgVW5pY29kZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaW50IHN0ckxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBlbmRzCisgICAgICAgIGlmICghaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJgorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKHN0ciwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UuaW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIGludCByZXN1bHRFbmQgPSByZXN1bHQgKyBzdHJMZW5ndGg7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0RW5kKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggaXMgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIGluZGV4IHJldHVybmVkCisgICAgICogaXMgdGhlIGxhcmdlc3QgdmFsdWUgaSBzdWNoIHRoYXQ6IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09IGNoYXIzMgorICAgICAqIGlzIHRydWUuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAnYScpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwKKyAgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8IGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2YoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMik7CisgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXIzMikgJiYKKyAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKGNoYXIzMnN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcgc3RyLiBUaGlzIG1ldGhvZCBpcworICAgICAqIGltcGxlbWVudGVkIGJhc2VkIG9uIGNvZGVwb2ludHMsIGhlbmNlIGEgImxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciArCisgICAgICogdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciIgaXMgdHJlYXRlZCBhcyBvbmUgZW50aXR5LmUKKyAgICAgKiBIZW5jZSBpZiB0aGUgc3RyIHN0YXJ0cyB3aXRoIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYXQgaW5kZXggMCwgYQorICAgICAqIHNvdXJjZSB3aXRoIGEgbGVhZGluZyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYmVmb3JlIHN0ciBmb3VuZCBhdCBpbgorICAgICAqIHNvdXJjZSB3aWxsIG5vdCBoYXZlIGEgdmFsaWQgbWF0Y2guIFZpY2UgdmVyc2EgZm9yIGxlYWQgc3Vycm9nYXRlcworICAgICAqIHRoYXQgZW5kcyBzdHIuCisgICAgICogU2VlIGV4YW1wbGUgYmVsb3cuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAiYSIpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMCIpIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwKKyAgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2Yoc3RyKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UubGFzdEluZGV4T2Yoc3RyKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAvLyBjaGVjayBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSAmJgorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyBzdHJMZW5ndGggKyAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LCB3aGVyZSB0aGUgcmVzdWx0IGlzIGxlc3MKKyAgICAgKiB0aGFuIG9yIGVxdWFscyB0byBmcm9tSW5kZXguPC9wPgorICAgICAqIDxwPlRoaXMgbWV0aG9kIGlzIGltcGxlbWVudGVkIGJhc2VkIG9uIGNvZGVwb2ludHMsIGhlbmNlIGEgc2luZ2xlCisgICAgICogc3Vycm9nYXRlIGNoYXJhY3RlciB3aWxsIG5vdCBtYXRjaCBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiA8cD5zb3VyY2UgaXMgc2VhcmNoZWQgYmFja3dhcmRzIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IGNoYXJhY3RlciBzdGFydGluZworICAgICAqIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguPC9wPgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgJ2MnLCAyKSByZXR1cm5zIDI8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdjJywgMSkgcmV0dXJucyAtMTxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgNSkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwLCAzKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4ZDgwMCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlcG9pbnQgdG8gc2VhcmNoIGZvcgorICAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4gVGhlcmUgaXMgbm8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHJlc3RyaWN0aW9uIG9uIHRoZSB2YWx1ZSBvZiBmcm9tSW5kZXguIElmIGl0IGlzCisgICAgICogICAgICAgICAgICAgICAgICBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgaWYgaXQgd2VyZSBlcXVhbCB0byBvbmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nOiB0aGlzIGVudGlyZQorICAgICAqICAgICAgICAgICAgICAgICAgc3RyaW5nIG1heSBiZSBzZWFyY2hlZC4gSWYgaXQgaXMgbmVnYXRpdmUsIGl0IGhhcworICAgICAqICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgLTE6IC0xIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsCisgICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZyBzb3VyY2UsIGludCBjaGFyMzIsIGludCBmcm9tSW5kZXgpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgYm1wCisgICAgICAgIGlmIChjaGFyMzIgPCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIChjaGFyMzIgPiBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJgorICAgICAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCAmJgorICAgICAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgU3RyaW5nIGNoYXIzMnN0ciA9IHRvU3RyaW5nKGNoYXIzMik7CisgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2YoY2hhcjMyc3RyLCBmcm9tSW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ciwgd2hlcmUgdGhlIHJlc3VsdCBpcyBsZXNzCisgICAgICogdGhhbiBvciBlcXVhbHMgdG8gZnJvbUluZGV4LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhCisgICAgICogImxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciArIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lCisgICAgICogZW50aXR5LgorICAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhCisgICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluCisgICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzCisgICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAgKiA8L3A+CisgICAgICogU2VlIGV4YW1wbGUgYmVsb3cuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAiYyIsIDIpIHJldHVybnMgMjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImMiLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgNSkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgMykgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgNCkgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogPHA+c291cmNlIGlzIHNlYXJjaGVkIGJhY2t3YXJkcyBzdGFydGluZyBhdCB0aGUgbGFzdCBjaGFyYWN0ZXIuPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uIFRoZXJlIGlzIG5vCisgICAgICogICAgICAgICAgICAgICAgICByZXN0cmljdGlvbiBvbiB0aGUgdmFsdWUgb2YgZnJvbUluZGV4LiBJZiBpdCBpcworICAgICAqICAgICAgICAgICAgICAgICAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICBpdCBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgZXF1YWwgdG8gb25lCisgICAgICogICAgICAgICAgICAgICAgICBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZzogdGhpcyBlbnRpcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHN0cmluZyBtYXkgYmUgc2VhcmNoZWQuIElmIGl0IGlzIG5lZ2F0aXZlLCBpdCBoYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGVmZmVjdCBhcyBpZiBpdCB3ZXJlIC0xOiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlLAorICAgICAqICAgICAgICAgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaW50IHN0ckxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBlbmRzCisgICAgICAgIGlmICghaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJgorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ICAgID0gc291cmNlLmxhc3RJbmRleE9mKHN0ciwgZnJvbUluZGV4KTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAvLyBjaGVjayBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSAmJgorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyBzdHJMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggaXMgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgcmVzdWx0aW5nIGZyb20gcmVwbGFjaW5nIGFsbAorICAgICAqIG9jY3VycmVuY2VzIG9mIG9sZENoYXIzMiBpbiBzb3VyY2Ugd2l0aCBuZXdDaGFyMzIuCisgICAgICogSWYgdGhlIGNoYXJhY3RlciBvbGRDaGFyMzIgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIFVURjE2IGZvcm1hdCBVbmljb2RlCisgICAgICogc3RyaW5nIHNvdXJjZSwgdGhlbiBzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhIG5ldyBTdHJpbmcKKyAgICAgKiBvYmplY3QgaXMgY3JlYXRlZCB0aGF0IHJlcHJlc2VudHMgYSBjb2RlcG9pbnQgc2VxdWVuY2UgaWRlbnRpY2FsIHRvIHRoZQorICAgICAqIGNvZGVwb2ludCBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSBzb3VyY2UsIGV4Y2VwdCB0aGF0IGV2ZXJ5IG9jY3VycmVuY2UKKyAgICAgKiBvZiBvbGRDaGFyMzIgaXMgcmVwbGFjZWQgYnkgYW4gb2NjdXJyZW5jZSBvZiBuZXdDaGFyMzIuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6IDxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICdlJywgJ28nKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgIm1vc3F1aXRvIGluIHlvdXIgY29sbGFyIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJKb25MIiwgJ3EnLCAneCcpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiSm9uTCIgKG5vIGNoYW5nZSk8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgISI8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgMHhkODAwLCAnIScpOworICAgICAqIDxicj4gICByZXR1cm5zICJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB3aGljaCB0aGUgY29kZXBvaW50CisgICAgICogICAgICAgICAgICAgICByZXBsYWNlbWVudHMgd2lsbCBiZSBiYXNlZCBvbi4KKyAgICAgKiBAcGFyYW0gb2xkQ2hhcjMyIG5vbi16ZXJvIG9sZCBjb2RlcG9pbnQgdG8gYmUgcmVwbGFjZWQuCisgICAgICogQHBhcmFtIG5ld0NoYXIzMiB0aGUgbmV3IGNvZGVwb2ludCB0byByZXBsYWNlIG9sZENoYXIzMgorICAgICAqIEByZXR1cm4gbmV3IFN0cmluZyBkZXJpdmVkIGZyb20gc291cmNlIGJ5IHJlcGxhY2luZyBldmVyeSBvY2N1cnJlbmNlCisgICAgICogICAgICAgICBvZiBvbGRDaGFyMzIgd2l0aCBuZXdDaGFyMzIsIHVubGVzcyB3aGVuIG5vIG9sZENoYXIzMiBpcyBmb3VuZAorICAgICAqICAgICAgICAgaW4gc291cmNlIHRoZW4gc291cmNlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBpbnQgb2xkQ2hhcjMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0NoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChvbGRDaGFyMzIgPD0gMCB8fCBvbGRDaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgb2xkQ2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIGlmIChuZXdDaGFyMzIgPD0gMCB8fCBuZXdDaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbmV3Q2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGluZGV4ICAgICA9IGluZGV4T2Yoc291cmNlLCBvbGRDaGFyMzIpOworICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nICAgICAgIG5ld0NoYXIzMlN0ciAgICA9IHRvU3RyaW5nKG5ld0NoYXIzMik7CisgICAgICAgIGludCAgICAgICAgICBvbGRDaGFyMzJTaXplICAgPSAxOworICAgICAgICBpbnQgICAgICAgICAgbmV3Q2hhcjMyU2l6ZSAgID0gbmV3Q2hhcjMyU3RyLmxlbmd0aCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzb3VyY2UpOworICAgICAgICBpbnQgICAgICAgICAgcmVzdWx0SW5kZXggICAgID0gaW5kZXg7CisKKyAgICAgICAgaWYgKG9sZENoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgb2xkQ2hhcjMyU2l6ZSA9IDI7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgIGludCBlbmRSZXN1bHRJbmRleCAgPSByZXN1bHRJbmRleCArIG9sZENoYXIzMlNpemU7CisgICAgICAgICAgICByZXN1bHQucmVwbGFjZShyZXN1bHRJbmRleCwgZW5kUmVzdWx0SW5kZXgsIG5ld0NoYXIzMlN0cik7CisgICAgICAgICAgICBpbnQgbGFzdEVuZEluZGV4ICAgID0gaW5kZXggKyBvbGRDaGFyMzJTaXplOworICAgICAgICAgICAgaW5kZXggICAgICAgPSBpbmRleE9mKHNvdXJjZSwgb2xkQ2hhcjMyLCBsYXN0RW5kSW5kZXgpOworICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gbmV3Q2hhcjMyU2l6ZSArIGluZGV4IC0gbGFzdEVuZEluZGV4OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyByZXN1bHRpbmcgZnJvbSByZXBsYWNpbmcgYWxsCisgICAgICogb2NjdXJyZW5jZXMgb2Ygb2xkU3RyIGluIHNvdXJjZSB3aXRoIG5ld1N0ci4KKyAgICAgKiBJZiB0aGUgc3RyaW5nIG9sZFN0ciBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgVVRGMTYgZm9ybWF0IFVuaWNvZGUKKyAgICAgKiBzdHJpbmcgc291cmNlLCB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLiBPdGhlcndpc2UsIGEgbmV3IFN0cmluZworICAgICAqIG9iamVjdCBpcyBjcmVhdGVkIHRoYXQgcmVwcmVzZW50cyBhIGNvZGVwb2ludCBzZXF1ZW5jZSBpZGVudGljYWwgdG8gdGhlCisgICAgICogY29kZXBvaW50IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHNvdXJjZSwgZXhjZXB0IHRoYXQgZXZlcnkgb2NjdXJyZW5jZQorICAgICAqIG9mIG9sZFN0ciBpcyByZXBsYWNlZCBieSBhbiBvY2N1cnJlbmNlIG9mIG5ld1N0ci4KKyAgICAgKiA8cD4KKyAgICAgKiBFeGFtcGxlczogPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIm1lc3F1aXRlIGluIHlvdXIgY2VsbGFyIiwgImUiLCAibyIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAibW9zcXVpdG8gaW4geW91ciBjb2xsYXIiPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIm1lc3F1aXRlIGluIHlvdXIgY2VsbGFyIiwgIm1lc3F1aXRlIiwgImNhdCIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiY2F0IGluIHlvdXIgY2VsbGFyIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJKb25MIiwgInEiLCAieCIpOzxicj4KKyAgICAgKiAgICAgICAgcmV0dXJucyAiSm9uTCIgKG5vIGNoYW5nZSk8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsCisgICAgICogICAgICAgICAgICAgICAnIScpOworICAgICAqIDxicj4gICByZXR1cm5zICJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciAhIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIjxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgd2hpY2ggdGhlCisgICAgICogICAgICAgICAgICAgICByZXBsYWNlbWVudHMgd2lsbCBiZSBiYXNlZCBvbi4KKyAgICAgKiBAcGFyYW0gb2xkU3RyIG5vbi16ZXJvLWxlbmd0aCBzdHJpbmcgdG8gYmUgcmVwbGFjZWQuCisgICAgICogQHBhcmFtIG5ld1N0ciB0aGUgbmV3IHN0cmluZyB0byByZXBsYWNlIG9sZFN0cgorICAgICAqIEByZXR1cm4gbmV3IFN0cmluZyBkZXJpdmVkIGZyb20gc291cmNlIGJ5IHJlcGxhY2luZyBldmVyeSBvY2N1cnJlbmNlCisgICAgICogICAgICAgICBvZiBvbGRTdHIgd2l0aCBuZXdTdHIuICBXaGVuIG5vIG9sZFN0ciBpcyBmb3VuZAorICAgICAqICAgICAgICAgaW4gc291cmNlLCB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIG9sZFN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdTdHIpCisgICAgeworICAgICAgICBpbnQgaW5kZXggICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZFN0cik7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgICAgICAgICAgb2xkU3RyU2l6ZSAgID0gb2xkU3RyLmxlbmd0aCgpOworICAgICAgICBpbnQgICAgICAgICAgbmV3U3RyU2l6ZSAgID0gbmV3U3RyLmxlbmd0aCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcihzb3VyY2UpOworICAgICAgICBpbnQgICAgICAgICAgcmVzdWx0SW5kZXggICAgID0gaW5kZXg7CisKKyAgICAgICAgd2hpbGUgKGluZGV4ICE9IC0xKSB7CisgICAgICAgICAgICBpbnQgZW5kUmVzdWx0SW5kZXggID0gcmVzdWx0SW5kZXggKyBvbGRTdHJTaXplOworICAgICAgICAgICAgcmVzdWx0LnJlcGxhY2UocmVzdWx0SW5kZXgsIGVuZFJlc3VsdEluZGV4LCBuZXdTdHIpOworICAgICAgICAgICAgaW50IGxhc3RFbmRJbmRleCAgICA9IGluZGV4ICsgb2xkU3RyU2l6ZTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZFN0ciwgbGFzdEVuZEluZGV4KTsKKyAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IG5ld1N0clNpemUgKyBpbmRleCAtIGxhc3RFbmRJbmRleDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV2ZXJzZXMgYSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgYW5kIHJlcGxhY2VzIHNvdXJjZSdzIGNvbnRlbnQKKyAgICAgKiB3aXRoIGl0LgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgcmV2ZXJzZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBjb3JyZWN0bHksIGluc3RlYWQgb2YKKyAgICAgKiBibGluZGx5IHJldmVyc2luZyBldmVyeSBjaGFyYWN0ZXIuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LnJldmVyc2UobmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgKiAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMSIpKTxicj4KKyAgICAgKiByZXR1cm5zICJcdWQ4MDFcdWRjMDFcdWQ4MDBcdWRjMDAgc3JldGNhcmFoYyB5cmF0bmVtZWxwcHVTIi4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nQnVmZmVyIHRoYXQgY29udGFpbnMgVVRGMTYgZm9ybWF0CisgICAgICogICAgICAgIFVuaWNvZGUgc3RyaW5nIHRvIGJlIHJldmVyc2VkCisgICAgICogQHJldHVybiBhIG1vZGlmaWVkIHNvdXJjZSB3aXRoIHJldmVyc2VkIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciByZXZlcnNlKFN0cmluZ0J1ZmZlciBzb3VyY2UpCisgICAgeworICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobGVuZ3RoKTsKKyAgICBmb3IgKGludCBpID0gbGVuZ3RoOyBpLS0gPiAwOykgeworICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIGkgPiAwKSB7CisgICAgICAgIGNoYXIgY2gyID0gc291cmNlLmNoYXJBdChpLTEpOworICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoMikpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gyKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gpOworICAgICAgICAgICAgLS1pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB0aGUgc3RyaW5nIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuIGEgY2VydGFpbgorICAgICAqIG51bWJlci4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGNvdW50aW5nIGFsbCBjb2RlIHBvaW50cyBpbiB0aGUKKyAgICAgKiBlbnRpcmUgc3RyaW5nIGFuZCBjb21wYXJpbmcgdGhhdCBudW1iZXIgd2l0aCBhIHRocmVzaG9sZC4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1heSBub3QgbmVlZCB0byBzY2FuIHRoZSBzdHJpbmcgYXQgYWxsIGlmIHRoZSBsZW5ndGggaXMKKyAgICAgKiB3aXRoaW4gYSBjZXJ0YWluIHJhbmdlLCBhbmQgbmV2ZXIgbmVlZHMgdG8gY291bnQgbW9yZSB0aGFuICdudW1iZXIgKyAxJworICAgICAqIGNvZGUgcG9pbnRzLiBMb2dpY2FsbHkgZXF1aXZhbGVudCB0byAoY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpLiBBCisgICAgICogVW5pY29kZSBjb2RlIHBvaW50IG1heSBvY2N1cHkgZWl0aGVyIG9uZSBvciB0d28gY29kZSB1bml0cy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBzdHJpbmcuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBzdHJpbmcgaXMgY29tcGFyZWQKKyAgICAgKiAgICAgICAgICAgICAgIGFnYWluc3QgdGhlICdudW1iZXInIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdmFsdWUgZm9yIHdoZXRoZXIgdGhlIHN0cmluZyBjb250YWlucyBtb3JlIFVuaWNvZGUgY29kZQorICAgICAqICAgICAgICAgcG9pbnRzIHRoYW4gJ251bWJlcicuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc01vcmVDb2RlUG9pbnRzVGhhbihTdHJpbmcgc291cmNlLCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0ICsrKSkgJiYgc3RhcnQgIT0gbGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHN1Yi1yYW5nZSBvZiBjaGFyIGFycmF5LCBmcm9tIGFyZ3VtZW50IHN0YXJ0IHRvIGxpbWl0LAorICAgICAqIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuIGEgY2VydGFpbgorICAgICAqIG51bWJlci4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGNvdW50aW5nIGFsbCBjb2RlIHBvaW50cyBpbiB0aGUKKyAgICAgKiBlbnRpcmUgY2hhciBhcnJheSByYW5nZSBhbmQgY29tcGFyaW5nIHRoYXQgbnVtYmVyIHdpdGggYSB0aHJlc2hvbGQuCisgICAgICogVGhpcyBmdW5jdGlvbiBtYXkgbm90IG5lZWQgdG8gc2NhbiB0aGUgY2hhciBhcnJheSBhdCBhbGwgaWYgc3RhcnQgYW5kCisgICAgICogbGltaXQgaXMgd2l0aGluIGEgY2VydGFpbiByYW5nZSwgYW5kIG5ldmVyIG5lZWRzIHRvIGNvdW50IG1vcmUgdGhhbgorICAgICAqICdudW1iZXIgKyAxJyBjb2RlIHBvaW50cy4KKyAgICAgKiBMb2dpY2FsbHkgZXF1aXZhbGVudCB0byAoY291bnRDb2RlUG9pbnQoc291cmNlLCBzdGFydCwgbGltaXQpID4gbnVtYmVyKS4KKyAgICAgKiBBIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgb2NjdXB5IGVpdGhlciBvbmUgb3IgdHdvIGNvZGUgdW5pdHMuCisgICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHN0cmluZyBpcyBjb21wYXJlZAorICAgICAqICAgICAgICAgICAgICAgYWdhaW5zdCB0aGUgJ251bWJlcicgcGFyYW1ldGVyLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiB2YWx1ZSBmb3Igd2hldGhlciB0aGUgc3RyaW5nIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlCisgICAgICogICAgICAgICBwb2ludHMgdGhhbiAnbnVtYmVyJy4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIHdoZW4gbGltaXQgJmx0OyBzdGFydAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNNb3JlQ29kZVBvaW50c1RoYW4oY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHN0YXJ0IDwgMCB8fCBsaW1pdCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0YXJ0IGFuZCBsaW1pdCBpbmRleGVzIHNob3VsZCBiZSBub24tbmVnYXRpdmUgYW5kIHN0YXJ0IDw9IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2Vbc3RhcnQgKytdKSAmJiBzdGFydCAhPSBsaW1pdAorICAgICAgICAgICAgICAgICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHN0cmluZyBidWZmZXIgY29udGFpbnMgbW9yZSBVbmljb2RlIGNvZGUgcG9pbnRzIHRoYW4gYQorICAgICAqIGNlcnRhaW4gbnVtYmVyLiBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gY291bnRpbmcgYWxsIGNvZGUgcG9pbnRzIGluCisgICAgICogdGhlIGVudGlyZSBzdHJpbmcgYnVmZmVyIGFuZCBjb21wYXJpbmcgdGhhdCBudW1iZXIgd2l0aCBhIHRocmVzaG9sZC4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1heSBub3QgbmVlZCB0byBzY2FuIHRoZSBzdHJpbmcgYnVmZmVyIGF0IGFsbCBpZiB0aGUKKyAgICAgKiBsZW5ndGggaXMgd2l0aGluIGEgY2VydGFpbiByYW5nZSwgYW5kIG5ldmVyIG5lZWRzIHRvIGNvdW50IG1vcmUgdGhhbgorICAgICAqICdudW1iZXIgKyAxJyBjb2RlIHBvaW50cy4gTG9naWNhbGx5IGVxdWl2YWxlbnQgdG8KKyAgICAgKiAoY291bnRDb2RlUG9pbnQocykgPiBudW1iZXIpLiBBIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgb2NjdXB5IGVpdGhlciBvbmUKKyAgICAgKiBvciB0d28gY29kZSB1bml0cy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBpbnB1dCBzdHJpbmcgYnVmZmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgc3RyaW5nIGJ1ZmZlciBpcyBjb21wYXJlZAorICAgICAqICAgICAgICAgICAgICAgYWdhaW5zdCB0aGUgJ251bWJlcicgcGFyYW1ldGVyLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiB2YWx1ZSBmb3Igd2hldGhlciB0aGUgc3RyaW5nIGJ1ZmZlciBjb250YWlucyBtb3JlCisgICAgICogICAgICAgICBVbmljb2RlIGNvZGUgcG9pbnRzIHRoYW4gJ251bWJlcicuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc01vcmVDb2RlUG9pbnRzVGhhbihTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgbnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gbGVuZ3RoID49IDAga25vd24KKyAgICAgICAgLy8gc291cmNlIGNvbnRhaW5zIGF0IGxlYXN0IChsZW5ndGggKyAxKSAvIDIgY29kZSBwb2ludHM6IDw9IDIKKyAgICAgICAgLy8gY2hhcnMgcGVyIGNwCisgICAgICAgIGlmICgoKGxlbmd0aCArIDEpID4+IDEpID4gbnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGlmIHNvdXJjZSBkb2VzIG5vdCBldmVuIGNvbnRhaW4gZW5vdWdoIGNoYXJzCisgICAgICAgIGludCBtYXhzdXBwbGVtZW50YXJ5ID0gbGVuZ3RoIC0gbnVtYmVyOworICAgICAgICBpZiAobWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGVyZSBhcmUgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlciBtb3JlIGNoYXJzIHRoYW4KKyAgICAgICAgLy8gYXNrZWQtZm9yIGNvZGUgcG9pbnRzCisKKyAgICAgICAgLy8gY291bnQgY29kZSBwb2ludHMgdW50aWwgdGhleSBleGNlZWQgYW5kIGFsc28gY2hlY2sgdGhhdCB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gbW9yZSB0aGFuIG1heHN1cHBsZW1lbnRhcnkgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoY2hhciBwYWlycykKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0ICsrKSkgJiYgc3RhcnQgIT0gbGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICBpZiAoLS0gbWF4c3VwcGxlbWVudGFyeSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRvbyBtYW55IHBhaXJzIC0gdG9vIGZldyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgSkRLIDEuNSBBUEkuICBDcmVhdGUgYSBTdHJpbmcgZnJvbSBhbiBhcnJheSBvZiBjb2RlUG9pbnRzLgorICAgICAqIEBwYXJhbSBjb2RlUG9pbnRzIHRoZSBjb2RlIGFycmF5CisgICAgICogQHBhcmFtIG9mZnNldCAgICAgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IGluIHRoZSBjb2RlIHBvaW50IGFycmF5CisgICAgICogQHBhcmFtIGNvdW50ICAgICAgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cworICAgICAqIEByZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50cyBiZXR3ZWVuIG9mZnNldCBhbmQgY291bnQKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBpbnZhbGlkIGNvZGUgcG9pbnQgaXMgZW5jb3VudGVyZWQKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gIGlmIHRoZSBvZmZzZXQgb3IgY291bnQgYXJlIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbmV3U3RyaW5nKGludFtdIGNvZGVQb2ludHMsIGludCBvZmZzZXQsIGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIGNoYXJzID0gbmV3IGNoYXJbY291bnRdOworICAgICAgICBpbnQgdyA9IDA7CisgICAgICAgIGZvciAoaW50IHIgPSBvZmZzZXQsIGUgPSBvZmZzZXQgKyBjb3VudDsgciA8IGU7ICsrcikgeworICAgICAgICAgICAgaW50IGNwID0gY29kZVBvaW50c1tyXTsKKyAgICAgICAgICAgIGlmIChjcCA8IDAgfHwgY3AgPiAweDEwZmZmZikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwIDwgMHgwMTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3ddID0gKGNoYXIpY3A7CisgICAgICAgICAgICAgICAgICAgICAgICB3Kys7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc1t3XSA9IChjaGFyKShMRUFEX1NVUlJPR0FURV9PRkZTRVRfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3crMV0gPSAoY2hhcikoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCAmIFRSQUlMX1NVUlJPR0FURV9NQVNLXykpOworICAgICAgICAgICAgICAgICAgICAgICAgdyArPSAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbmV3bGVuID0gKGludCkoTWF0aC5jZWlsKChkb3VibGUpY29kZVBvaW50cy5sZW5ndGggKiAodysyKSAvIChyLW9mZnNldCsxKSkpOworICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW25ld2xlbl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2hhcnMsIDAsIHRlbXAsIDAsIHcpOworICAgICAgICAgICAgICAgICAgICBjaGFycyA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzLCAwLCB3KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5VVEYxNiBzdHJpbmcgY29tcGFyYXRvciBjbGFzcy4KKyAgICAgKiBBbGxvd3MgVVRGMTYgc3RyaW5nIGNvbXBhcmlzb24gdG8gYmUgZG9uZSB3aXRoIHRoZSB2YXJpb3VzIG1vZGVzPC9wPgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IENvZGUgcG9pbnQgY29tcGFyaXNvbiBvciBjb2RlIHVuaXQgY29tcGFyaXNvbgorICAgICAqIDxsaT4gQ2FzZSBzZW5zaXRpdmUgY29tcGFyaXNvbiwgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uIG9yIGNhc2UKKyAgICAgKiAgICAgIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBjaGFyYWN0ZXIgJ2knLgorICAgICAqIDwvdWw+CisgICAgICogPHA+VGhlIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGNvbXBhcmlzb24gZGlmZmVyIG9ubHkgd2hlbiBjb21wYXJpbmcKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICgmIzkyO3UxMDAwMC4uJiM5Mjt1MTBmZmZmKSB0byBCTVAgY29kZSBwb2ludHMKKyAgICAgKiBuZWFyIHRoZSBlbmQgb2YgdGhlIEJNUCAoaS5lLiwgJiM5Mjt1ZTAwMC4uJiM5Mjt1ZmZmZikuIEluIGNvZGUgdW5pdAorICAgICAqIGNvbXBhcmlzb24sIGhpZ2ggQk1QIGNvZGUgcG9pbnRzIHNvcnQgYWZ0ZXIgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIGFzIHBhaXJzIG9mIHN1cnJvZ2F0ZXMgd2hpY2ggYXJlIGF0CisgICAgICogJiM5Mjt1ZDgwMC4uJiM5Mjt1ZGZmZi48L3A+CisgICAgICogQHNlZSAjRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgKiBAc2VlICNGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBqYXZhLnV0aWwuQ29tcGFyYXRvcgorICAgIHsKKyAgICAgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRoYXQgZG9lcyBjb2RlIHVuaXQgY29tcGFyaXNvbiBhbmQgY2FzZQorICAgICAgICAgKiBzZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMoZmFsc2UsIGZhbHNlLCBGT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCBkb2VzIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGFyZ3VtZW50IG9wdGlvbnMuCisgICAgICAgICAqIEBwYXJhbSBjb2RlcG9pbnRjb21wYXJlIGZsYWcgdG8gaW5kaWNhdGUgdHJ1ZSBmb3IgY29kZSBwb2ludAorICAgICAgICAgKiAgICAgICAgY29tcGFyaXNvbiBvciBmYWxzZSBmb3IgY29kZSB1bml0IGNvbXBhcmlzb24uCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIGZhbHNlIGZvciBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uLCB0cnVlIGZvcgorICAgICAgICAgKiAgICAgICAgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBmb2xkY2FzZW9wdGlvbiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcihib29sZWFuIGNvZGVwb2ludGNvbXBhcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaWdub3JlY2FzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvbGRjYXNlb3B0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRDb2RlUG9pbnRDb21wYXJlKGNvZGVwb2ludGNvbXBhcmUpOworICAgICAgICAgICAgbV9pZ25vcmVDYXNlXyA9IGlnbm9yZWNhc2U7CisgICAgICAgICAgICBpZiAoZm9sZGNhc2VvcHRpb24gPCBGT0xEX0NBU0VfREVGQVVMVAorICAgICAgICAgICAgICAgIHx8IGZvbGRjYXNlb3B0aW9uID4gRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb2xkIGNhc2Ugb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2ZvbGRDYXNlXyA9IGZvbGRjYXNlb3B0aW9uOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgZGVmYXVsdAorICAgICAgICAgKiBtYXBwaW5ncyBkZWZpbmVkIGluIFVuaWNvZGUgZGF0YSBmaWxlIENhc2VGb2xkaW5nLnR4dCwgYmVmb3JlCisgICAgICAgICAqIGNvbXBhcmlzb24uCisgICAgICAgICAqIDwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfREVGQVVMVCA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgbW9kaWZpZWQKKyAgICAgICAgICogbWFwcGluZ3MgZGVmaW5lZCBpbiBVbmljb2RlIGRhdGEgZmlsZSBDYXNlRm9sZGluZy50eHQsIGJlZm9yZQorICAgICAgICAgKiBjb21wYXJpc29uLgorICAgICAgICAgKiA8L3A+CisgICAgICAgICAqIDxwPlRoZSBtb2RpZmllZCBzZXQgb2YgbWFwcGluZ3MgaXMgcHJvdmlkZWQgaW4gYSBVbmljb2RlIGRhdGEgZmlsZQorICAgICAgICAgKiBDYXNlRm9sZGluZy50eHQgdG8gaGFuZGxlIGRvdHRlZCBJIGFuZCBkb3RsZXNzIGkgYXBwcm9wcmlhdGVseSBmb3IKKyAgICAgICAgICogVHVya2ljIGxhbmd1YWdlcyAodHIsIGF6KS48L3A+CisgICAgICAgICAqIDxwPkJlZm9yZSBVbmljb2RlIDMuMiwgQ2FzZUZvbGRpbmcudHh0IGNvbnRhaW5zIG1hcHBpbmdzIG1hcmtlZCB3aXRoCisgICAgICAgICAqICdJJyB0aGF0IGFyZSB0byBiZSBpbmNsdWRlZCBmb3IgZGVmYXVsdCBtYXBwaW5ncyBhbmQgZXhjbHVkZWQgZm9yCisgICAgICAgICAqIHRoZSBUdXJraWMtc3BlY2lmaWMgbWFwcGluZ3MuPC9wPgorICAgICAgICAgKiA8cD5Vbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgaW5zdGVhZCBjb250YWlucyBtYXBwaW5ncyBtYXJrZWQgd2l0aAorICAgICAgICAgKiAnVCcgdGhhdCBhcmUgdG8gYmUgZXhjbHVkZWQgZm9yIGRlZmF1bHQgbWFwcGluZ3MgYW5kIGluY2x1ZGVkIGZvcgorICAgICAgICAgKiB0aGUgVHVya2ljLXNwZWNpZmljIG1hcHBpbmdzLjwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSAxOworCisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIGNvbXBhcmlzb24gbW9kZSB0byBjb2RlIHBvaW50IGNvbXBhcmUgaWYgZmxhZyBpcyB0cnVlLgorICAgICAgICAgKiBPdGhlcndpc2UgY29tcGFyaXNvbiBtb2RlIGlzIHNldCB0byBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIGZvciBjb2RlIHBvaW50IGNvbXBhcmUsIGZhbHNlIGZvciBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldENvZGVQb2ludENvbXBhcmUoYm9vbGVhbiBmbGFnKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmxhZykgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIENvbXBhcmF0b3IgdG8gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIG1vZGUgaWYgYXJndW1lbnQKKyAgICAgICAgICogaXMgdHJ1ZSwgb3RoZXJ3aXNlIGNhc2Ugc2Vuc2l0aXZlIGNvbXBhcmlzb24gbW9kZSBpZiBzZXQgdG8gZmFsc2UuCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIHRydWUgZm9yIGNhc2UtaW5zaXRpdmUgY29tcGFyaXNvbiwgZmFsc2UgZm9yCisgICAgICAgICAqICAgICAgICBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldElnbm9yZUNhc2UoYm9vbGVhbiBpZ25vcmVjYXNlLCBpbnQgZm9sZGNhc2VvcHRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faWdub3JlQ2FzZV8gPSBpZ25vcmVjYXNlOworICAgICAgICAgICAgaWYgKGZvbGRjYXNlb3B0aW9uIDwgRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgICAgICAgICAgICB8fCBmb2xkY2FzZW9wdGlvbiA+IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZm9sZCBjYXNlIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9mb2xkQ2FzZV8gPSBmb2xkY2FzZW9wdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2tzIGlmIHRoZSBjb21wYXJpc29uIG1vZGUgaXMgY29kZSBwb2ludCBjb21wYXJlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgZm9yIGNvZGUgcG9pbnQgY29tcGFyZSwgZmFsc2UgZm9yIGNvZGUgdW5pdCBjb21wYXJlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZ2V0Q29kZVBvaW50Q29tcGFyZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NvZGVQb2ludENvbXBhcmVfID09IE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrcyBpZiBDb21wYXJhdG9yIGlzIGluIHRoZSBjYXNlIGluc2Vuc2l0aXZlIG1vZGUuCisgICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBDb21wYXJhdG9yIHBlcmZvcm1zIGNhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbiwKKyAgICAgICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmVDYXNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faWdub3JlQ2FzZV87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogR2V0cyB0aGUgZm9sZCBjYXNlIG9wdGlvbnMgc2V0IGluIENvbXBhcmF0b3IgdG8gYmUgdXNlZCB3aXRoIGNhc2UKKyAgICAgICAgICogaW5zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHJldHVybiBlaXRoZXIgRk9MRF9DQVNFX0RFRkFVTFQgb3IgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2ZvbGRDYXNlXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMgc2VsZWN0ZWQgZHVyaW5nCisgICAgICAgICAqIGNvbnN0cnVjdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGEgZmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgICAgICogQHBhcmFtIGIgc2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICAgICAqIEByZXR1cm4gMCByZXR1cm5lZCBpZiBhID09IGIuIElmIGEgPCBiLCBhIG5lZ2F0aXZlIHZhbHVlIGlzIHJldHVybmVkLgorICAgICAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiBhID4gYiwgYSBwb3NpdGl2ZSB2YWx1ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gdGhyb3duIHdoZW4gZWl0aGVyIGEgb3IgYiBpcyBub3QgYQorICAgICAgICAgKiAgICAgICAgICAgIFN0cmluZyBvYmplY3QKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyMSA9IChTdHJpbmcpYTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIyID0gKFN0cmluZyliOworCisgICAgICAgICAgICBpZiAoc3RyMSA9PSBzdHIyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyMSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cjIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9pZ25vcmVDYXNlXykgeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlU2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvZGUgdW5pdCBjb21wYXJpc29uIGZsYWcuIFRydWUgaWYgY29kZSB1bml0IGNvbXBhcmlzb24gaXMgcmVxdWlyZWQuCisgICAgICAgICAqIEZhbHNlIGlmIGNvZGUgcG9pbnQgY29tcGFyaXNvbiBpcyByZXF1aXJlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fY29kZVBvaW50Q29tcGFyZV87CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvbGQgY2FzZSBjb21wYXJpc29uIG9wdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fZm9sZENhc2VfOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiBpZ25vcmUgY2FzZSBpcyB0byBiZSB1c2VkIGR1cmluZyBjb21wYXJpc29uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbV9pZ25vcmVDYXNlXzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29kZSBwb2ludCBvcmRlciBvZmZzZXQgZm9yIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09ERV9QT0lOVF9DT01QQVJFX1NVUlJPR0FURV9PRkZTRVRfID0gMHgyODAwOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb21wYXJlcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgb2YgSUNVNEMsIHRvIG1ha2UKKyAgICAgICAgICogbWFpbnRhaW5lbmNlIGxpZmUgZWFzaWVyLgorICAgICAgICAgKiBAcGFyYW0gczEgZmlyc3Qgc3RyaW5nIHRvIGNvbXBhcmUKKyAgICAgICAgICogQHBhcmFtIHMyIHNlY29uZCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcmV0dXJuIC0xIGlzIHMxICZsdDsgczIsIDAgaWYgZXF1YWxzLAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZChzMSwgczIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZm9sZENhc2VfIHwgbV9jb2RlUG9pbnRDb21wYXJlXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZXMgY2FzZSBzZW5zaXRpdmUuIFRoaXMgaXMgYSBkaXJlY3QgcG9ydCBvZiBJQ1U0QywgdG8gbWFrZQorICAgICAgICAgKiBtYWludGFpbmVuY2UgbGlmZSBlYXNpZXIuCisgICAgICAgICAqIEBwYXJhbSBzMSBmaXJzdCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gczIgc2Vjb25kIHN0cmluZyB0byBjb21wYXJlCisgICAgICAgICAqIEByZXR1cm4gLTEgaXMgczEgJmx0OyBzMiwgMCBpZiBlcXVhbHMsCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBjb21wYXJlQ2FzZVNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY29tcGFyZSBpZGVudGljYWwgcHJlZml4ZXMgLSB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIGZpeGVkIHVwCisgICAgICAgICAgICAvLyBsaW1pdDEgPSBzdGFydDEgKyBtaW4obGVuZ2h0MSwgbGVuZ3RoMikKKyAgICAgICAgICAgIGludCBsZW5ndGgxID0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgbGVuZ3RoMiA9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IG1pbmxlbmd0aCA9IGxlbmd0aDE7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGlmIChsZW5ndGgxIDwgbGVuZ3RoMikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobGVuZ3RoMSA+IGxlbmd0aDIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgICAgIG1pbmxlbmd0aCA9IGxlbmd0aDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNoYXIgYzEgPSAwOworICAgICAgICAgICAgY2hhciBjMiA9IDA7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgbWlubGVuZ3RoOyBpbmRleCArKykgeworICAgICAgICAgICAgICAgIGMxID0gczEuY2hhckF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgcHNldWRvLWxpbWl0CisgICAgICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGluZGV4ID09IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gY29kZXBvaW50Y29tcGFyZQorICAgICAgICAgICAgICAgID0gbV9jb2RlUG9pbnRDb21wYXJlXyA9PSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIC8vIGlmIGJvdGggdmFsdWVzIGFyZSBpbiBvciBhYm92ZSB0aGUgc3Vycm9nYXRlIHJhbmdlLCBmaXggdGhlbSB1cAorICAgICAgICAgICAgaWYgKGMxID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgICAgICYmIGMyID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiBjb2RlcG9pbnRjb21wYXJlKSB7CisgICAgICAgICAgICAgICAgLy8gc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSBzbWFsbGVyCisgICAgICAgICAgICAgICAgLy8gdGhhbiBzdXBwbGVtZW50YXJ5IG9uZXMKKyAgICAgICAgICAgICAgICBpZiAoKGMxIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJiAoaW5kZXggKyAxKSAhPSBsZW5ndGgxCisgICAgICAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHMxLmNoYXJBdChpbmRleCArIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKGlzVHJhaWxTdXJyb2dhdGUoYzEpICYmIGluZGV4ICE9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGlzTGVhZFN1cnJvZ2F0ZShzMS5jaGFyQXQoaW5kZXggLSAxKSkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UKKyAgICAgICAgICAgICAgICAgICAgLy8gPCBkODAwCisgICAgICAgICAgICAgICAgICAgIGMxIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKGMyIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICAgICAgJiYgKGluZGV4ICsgMSkgIT0gbGVuZ3RoMgorICAgICAgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzMi5jaGFyQXQoaW5kZXggKyAxKSkpIHx8CisgICAgICAgICAgICAgICAgICAgIChpc1RyYWlsU3Vycm9nYXRlKGMyKSAmJiBpbmRleCAhPSAwCisgICAgICAgICAgICAgICAgICAgICAmJiBpc0xlYWRTdXJyb2dhdGUoczIuY2hhckF0KGluZGV4IC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIDxkODAwCisgICAgICAgICAgICAgICAgICAgIGMyIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyCisgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworCisgICAgLyoqCisgICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgc2lnbmlmaWNhbnQgdmFsdWUgZnJvbSBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BU0tfICAgICA9IDB4M0ZGOworCisgICAgLyoqCisgICAgICogVmFsdWUgdGhhdCBhbGwgbGVhZCBzdXJyb2dhdGUgc3RhcnRzIHdpdGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfT0ZGU0VUXyA9CisgICAgICAgIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAtCisgICAgICAgIChTVVBQTEVNRU5UQVJZX01JTl9WQUxVRQorICAgICAgICAgPj4gTEVBRF9TVVJST0dBVEVfU0hJRlRfKTsKKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnZlcnRzIGFyZ3VtZW50IGNvZGUgcG9pbnQgYW5kIHJldHVybnMgYSBTdHJpbmcgb2JqZWN0IHJlcHJlc2VudGluZworICAgICAqIHRoZSBjb2RlIHBvaW50J3MgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQsIHRoZQorICAgICAqIHJlc3VsdHMgYXJlIG5vdCBndWFyYW50ZWVkIGlmIGEgaW52YWxpZCBjb2RlcG9pbnQgaXMgcGFzc2VkIGFzCisgICAgICogYXJndW1lbnQuPC9wPgorICAgICAqIDxwPlRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUKKyAgICAgKiBwb2ludHMsIDIgb3RoZXJ3aXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nLnZhbHVlT2YoKGNoYXIpY2gpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjkxNGQxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMTkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgVW5pY29kZSBlc2NhcGUgZm9ybXMgdG8gdGhlCisgKiBjaGFyYWN0ZXJzIHRoZXkgcmVwcmVzZW50LiAgRXNjYXBlIGZvcm1zIGhhdmUgYSBwcmVmaXgsIGEgc3VmZml4LCBhCisgKiByYWRpeCwgYW5kIG1pbmltdW0gYW5kIG1heGltdW0gZGlnaXQgY291bnRzLgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgcGFja2FnZSBwcml2YXRlLiAgSXQgcmVnaXN0ZXJzIHNldmVyYWwgc3RhbmRhcmQKKyAqIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbSB3aGljaCBhcmUgdGhlbiBhY2Nlc3NlZCB2aWEgdGhlaXIgSURzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVW5lc2NhcGVUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFRoZSBlbmNvZGVkIHBhdHRlcm4gc3BlY2lmaWNhdGlvbi4gIFRoZSBwYXR0ZXJuIGNvbnNpc3RzIG9mCisgICAgICogemVybyBvciBtb3JlIGZvcm1zLiAgRWFjaCBmb3JtIGNvbnNpc3RzIG9mIGEgcHJlZml4LCBzdWZmaXgsCisgICAgICogcmFkaXgsIG1pbmltdW0gZGlnaXQgY291bnQsIGFuZCBtYXhpbXVtIGRpZ2l0IGNvdW50LiAgVGhlc2UKKyAgICAgKiB2YWx1ZXMgYXJlIHN0b3JlZCBhcyBhIGZpdmUgY2hhcmFjdGVyIGhlYWRlci4gIFRoYXQgaXMsIHRoZWlyCisgICAgICogbnVtZXJpYyB2YWx1ZXMgYXJlIGNhc3QgdG8gMTYtYml0IGNoYXJhY3RlcnMgYW5kIHN0b3JlZCBpbiB0aGUKKyAgICAgKiBzdHJpbmcuICBGb2xsb3dpbmcgdGhlc2UgZml2ZSBjaGFyYWN0ZXJzLCB0aGUgcHJlZml4CisgICAgICogY2hhcmFjdGVycywgdGhlbiBzdWZmaXggY2hhcmFjdGVycyBhcmUgc3RvcmVkLiAgRWFjaCBmb3JtIHRodXMKKyAgICAgKiB0YWtlcyBuKzUgY2hhcmFjdGVycywgd2hlcmUgbiBpcyB0aGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBwcmVmaXgKKyAgICAgKiBhbmQgc3VmZml4LiAgVGhlIGVuZCBpcyBtYXJrZWQgYnkgYSBoZWFkZXIgb2YgbGVuZ3RoIG9uZQorICAgICAqIGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlciBFTkQuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHNwZWNbXTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgY2hhcmFjdGVyIG1hcmtpbmcgdGhlIGVuZCBvZiB0aGUgc3BlY1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU5EID0gMHhGRkZGOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHN0YW5kYXJkIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgLy8gVW5pY29kZTogIlUrMTBGRkZGIiBoZXgsIG1pbj00LCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvVW5pY29kZSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9Vbmljb2RlIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA2LCAnVScsICcrJywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gSmF2YTogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9KYXZhIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L0phdmEiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDQsIDQsICdcXCcsICd1JywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gQzogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00OyBcXFUwMDEwRkZGRiBoZXgsIG1pbj04LCBtYXg9OAorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9DIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA0LCAnXFwnLCAndScsCisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA4LCA4LCAnXFwnLCAnVScsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFhNTDogIiYjeDEwRkZGRjsiIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9YTUwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnJicsICcjJywgJ3gnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBYTUwxMDogIiYxMTE0MTExOyIgZGVjLCBtaW49MSwgbWF4PTcgKG5vdCByZWFsbHkgIkhleC1BbnkiKQorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvWE1MMTAiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MMTAiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMSwgMTAsIDEsIDcsICcmJywgJyMnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBQZXJsOiAiXFx4ezI2M0F9IiBoZXgsIG1pbj0xLCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvUGVybCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9QZXJsIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnXFwnLCAneCcsICd7JywgJ30nLAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQWxsOiBKYXZhLCBDLCBQZXJsLCBYTUwsIFhNTDEwLCBVbmljb2RlCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueSIsIG5ldyBjaGFyW10geworICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNiwgJ1UnLCAnKycsICAgICAgICAgICAgLy8gVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNCwgJ1xcJywgJ3UnLCAgICAgICAgICAgLy8gSmF2YQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgOCwgOCwgJ1xcJywgJ1UnLCAgICAgICAgICAgLy8gQyAoc3Vycm9nYXRlcykKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICcmJywgJyMnLCAneCcsICc7JywgIC8vIFhNTAorICAgICAgICAgICAgICAgICAgICAyLCAxLCAxMCwgMSwgNywgJyYnLCAnIycsICc7JywgICAgICAgLy8gWE1MMTAKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICdcXCcsICd4JywgJ3snLCAnfScsIC8vIFBlcmwKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3Rvci4gIFRha2VzIHRoZSBlbmNvZGVkIHNwZWMgYXJyYXkuCisgICAgICovCisgICAgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGNoYXIgc3BlY1tdKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgdGhpcy5zcGVjID0gc3BlYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3Muc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IHBvcy5saW1pdDsKKyAgICAgICAgaW50IGksIGosIGlwYXQ7CisKKyAgICAgIGxvb3A6CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBMb29wIG92ZXIgdGhlIGZvcm1zIGluIHNwZWNbXS4gIEV4aXQgdGhpcyBsb29wIHdoZW4gd2UKKyAgICAgICAgICAgIC8vIG1hdGNoIG9uZSBvZiB0aGUgc3BlY3MuICBFeGl0IHRoZSBvdXRlciBsb29wIGlmIGEKKyAgICAgICAgICAgIC8vIHBhcnRpYWwgbWF0Y2ggaXMgZGV0ZWN0ZWQgYW5kIGlzSW5jcmVtZW50YWwgaXMgdHJ1ZS4KKyAgICAgICAgICAgIGZvciAoaj0wLCBpcGF0PTA7IHNwZWNbaXBhdF0gIT0gRU5EOyArK2opIHsKKworICAgICAgICAgICAgICAgIC8vIFJlYWQgdGhlIGhlYWRlcgorICAgICAgICAgICAgICAgIGludCBwcmVmaXhMZW4gPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IHN1ZmZpeExlbiA9IHNwZWNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgcmFkaXggICAgID0gc3BlY1tpcGF0KytdOworICAgICAgICAgICAgICAgIGludCBtaW5EaWdpdHMgPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IG1heERpZ2l0cyA9IHNwZWNbaXBhdCsrXTsKKworICAgICAgICAgICAgICAgIC8vIHMgaXMgYSBjb3B5IG9mIHN0YXJ0IHRoYXQgaXMgYWR2YW5jZWQgb3ZlciB0aGUKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIGFzIHdlIHBhcnNlIHRoZW0uCisgICAgICAgICAgICAgICAgaW50IHMgPSBzdGFydDsKKyAgICAgICAgICAgICAgICBib29sZWFuIG1hdGNoID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHByZWZpeExlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IG1hdGNoZWQgYSBjaGFyYWN0ZXIuICBUaGlzIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBwYXJ0aWFsIG1hdGNoLCBzbyB3ZSByZXR1cm4gaWYgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBtb2RlLiAgSW4gbm9uLWluY3JlbWVudGFsIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ28gdG8gdGhlIG5leHQgc3BlYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IHNwZWNbaXBhdCArIGldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHUgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBhcnRpYWwgbWF0Y2ggaW4gaW5jcmVtZW50YWwgbW9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPSB0ZXh0LmNoYXIzMkF0KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gVUNoYXJhY3Rlci5kaWdpdChjaCwgcmFkaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgdSA9ICh1ICogcmFkaXgpICsgZGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytkaWdpdENvdW50ID09IG1heERpZ2l0cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAoZGlnaXRDb3VudCA+PSBtaW5EaWdpdHMpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8c3VmZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaCBpbiBpbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gc3BlY1tpcGF0ICsgcHJlZml4TGVuICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZih1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIHMsIHN0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gcyAtIHN0YXJ0IC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWsgc3RhdGVtZW50IGxlYXZlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRoYXQgaXMgdHJhdmVyc2luZyB0aGUgZm9ybXMgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjW10uICBXZSB0aGVuIHBhcnNlIHRoZSBuZXh0IGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXBhdCArPSBwcmVmaXhMZW4gKyBzdWZmaXhMZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQoc3RhcnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBwb3MubGltaXQ7CisgICAgICAgIHBvcy5saW1pdCA9IGxpbWl0OworICAgICAgICBwb3Muc3RhcnQgPSBzdGFydDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44Mjg1MzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDEwMDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorKiBBIGNvbXByZXNzaW9uIGVuZ2luZSBpbXBsZW1lbnRpbmcgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorKiBmb3IgVW5pY29kZSAoU0NTVSkgYXMgb3V0bGluZWQgaW4gPEEKKyogSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbAorKiBSZXBvcnQgIzY8L0E+LgorKgorKiA8UD5UaGUgU0NTVSB3b3JrcyBieSB1c2luZyBkeW5hbWljYWxseSBwb3NpdGlvbmVkIDxFTT53aW5kb3dzPC9FTT4KKyogY29uc2lzdGluZyBvZiAxMjggY29uc2VjdXRpdmUgY2hhcmFjdGVycyBpbiBVbmljb2RlLiAgRHVyaW5nIGNvbXByZXNzaW9uLCAKKyogY2hhcmFjdGVycyB3aXRoaW4gYSB3aW5kb3cgYXJlIGVuY29kZWQgaW4gdGhlIGNvbXByZXNzZWQgc3RyZWFtIGFzIHRoZSBieXRlcyAKKyogPFRUPjB4N0YgLSAweEZGPC9UVD4uIFRoZSBTQ1NVIHByb3ZpZGVzIHRyYW5zcGFyZW5jeSBmb3IgdGhlIGNoYXJhY3RlcnMgCisqIChieXRlcykgYmV0d2VlbiA8VFQ+VSswMDAwIC0gVSswMEZGPC9UVD4uICBUaGUgU0NTVSBhcHByb3hpbWF0ZXMgdGhlIAorKiBzdG9yYWdlIHNpemUgb2YgdHJhZGl0aW9uYWwgY2hhcmFjdGVyIHNldHMsIGZvciBleGFtcGxlIDEgYnl0ZSBwZXIKKyogY2hhcmFjdGVyIGZvciBBU0NJSSBvciBMYXRpbi0xIHRleHQsIGFuZCAyIGJ5dGVzIHBlciBjaGFyYWN0ZXIgZm9yIENKSworKiBpZGVvZ3JhcGhzLjwvUD4KKyoKKyogPFA+PFNUUk9ORz5VU0FHRTwvU1RST05HPjwvUD4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIG9uIDxUVD5Vbmljb2RlQ29tcHJlc3NvcjwvVFQ+IG1heSBiZSB1c2VkIGluIGEKKyogc3RyYWlnaHRmb3J3YXJkIG1hbm5lciB0byBjb21wcmVzcyBzaW1wbGUgc3RyaW5nczo8L1A+CisqCisqIDxQUkU+CisqICBTdHJpbmcgcyA9IC4uLiA7IC8vIGdldCBzdHJpbmcgZnJvbSBzb21ld2hlcmUKKyogIGJ5dGUgW10gY29tcHJlc3NlZCA9IFVuaWNvZGVDb21wcmVzc29yLmNvbXByZXNzKHMpOworKiA8L1BSRT4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIGhhdmUgYSBmYWlybHkgbGFyZ2UgbWVtb3J5IGZvb3RwcmludC4KKyogRm9yIGZpbmVyLWdyYWluZWQgY29udHJvbCBvdmVyIG1lbW9yeSB1c2FnZSwgCisqIDxUVD5Vbmljb2RlQ29tcHJlc3NvcjwvVFQ+IG9mZmVycyBtb3JlIHBvd2VyZnVsIEFQSXMgYWxsb3dpbmcKKyogaXRlcmF0aXZlIGNvbXByZXNzaW9uOjwvUD4KKyoKKyogPFBSRT4KKyogIC8vIENvbXByZXNzIGFuIGFycmF5ICJjaGFycyIgb2YgbGVuZ3RoICJsZW4iIHVzaW5nIGEgYnVmZmVyIG9mIDUxMiBieXRlcworKiAgLy8gdG8gdGhlIE91dHB1dFN0cmVhbSAib3V0IgorKgorKiAgVW5pY29kZUNvbXByZXNzb3IgbXlDb21wcmVzc29yICAgICAgICAgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyogIGZpbmFsIHN0YXRpYyBpbnQgIEJVRlNJWkUgICAgICAgICAgICAgID0gNTEyOworKiAgYnl0ZSBbXSAgICAgICAgICAgYnl0ZUJ1ZmZlciAgICAgICAgICAgPSBuZXcgYnl0ZSBbIEJVRlNJWkUgXTsKKyogIGludCAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiAgICAgICAgID0gMDsKKyogIGludCBbXSAgICAgICAgICAgIHVuaWNoYXJzUmVhZCAgICAgICAgID0gbmV3IGludCBbMV07CisqICBpbnQgICAgICAgICAgICAgICB0b3RhbENoYXJzQ29tcHJlc3NlZCA9IDA7CisqICBpbnQgICAgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiAgICA9IDA7CisqCisqICBkbyB7CisqICAgIC8vIGRvIHRoZSBjb21wcmVzc2lvbgorKiAgICBieXRlc1dyaXR0ZW4gPSBteUNvbXByZXNzb3IuY29tcHJlc3MoY2hhcnMsIHRvdGFsQ2hhcnNDb21wcmVzc2VkLCAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwgdW5pY2hhcnNSZWFkLAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlciwgMCwgQlVGU0laRSk7CisqCisqICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSBjdXJyZW50IHNldCBvZiBieXRlcworKiAgICBvdXQud3JpdGUoYnl0ZUJ1ZmZlciwgMCwgYnl0ZXNXcml0dGVuKTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkCisqICAgIHRvdGFsQ2hhcnNDb21wcmVzc2VkICs9IHVuaWNoYXJzUmVhZFswXTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgYnl0ZXMgd3JpdHRlbgorKiAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisqCisqICB9IHdoaWxlKHRvdGFsQ2hhcnNDb21wcmVzc2VkIDwgbGVuKTsKKyoKKyogIG15Q29tcHJlc3Nvci5yZXNldCgpOyAvLyByZXVzZSBjb21wcmVzc29yCisqIDwvUFJFPgorKgorKiBAc2VlIFVuaWNvZGVEZWNvbXByZXNzb3IKKyoKKyogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisqIEBzdGFibGUgSUNVIDIuNAorKi8KKworLyoKKyoKKyogQ09NUFJFU1NJT04gU1RSQVRFR1kKKyoKKyogU2luZ2xlIEJ5dGUgTW9kZQorKgorKiBUaGVyZSBhcmUgdGhyZWUgcmVsZXZhbnQgY2FzZXMuCisqIElmIHRoZSBjaGFyYWN0ZXIgaXMgaW4gdGhlIGN1cnJlbnQgd2luZG93IG9yIGlzIExhdGluLTEgKFUrMDAwMCwKKyogVSswMDA5LCBVKzAwMEEsIFUrMDAwRCwgVSswMDIwIC0gVSswMDdGKSwgdGhlIGNoYXJhY3RlciBpcyBwbGFjZWQKKyogZGlyZWN0bHkgaW4gdGhlIHN0cmVhbSBhcyBhIHNpbmdsZSBieXRlLgorKgorKiAgMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93LgorKiAgMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdy4KKyogIDMuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIHVuY29tcHJlc3NpYmxlIFVuaWNvZGUgKFUrMzQwMCAtIFUrREZGRikuCisqIAorKiAgMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgdHdvIGNoYXJhY3RlcnMKKyogICAgQi4gSWYgYm90aCBmb2xsb3dpbmcgY2hhcmFjdGVycyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBkZWZpbmVkIHdpbmRvdworKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGlzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgcXVvdGUgZGVmaW5lZCB3aW5kb3cKKyogICAgRC4gSWYgbmVpdGhlciBvZiBmb2xsb3dpbmcgY2hhcmFjdGVycyBpcyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50LCAKKyogICAgICAgcXVvdGUgZGVmaW5lZCB3aW5kb3cKKyogICAKKyogIDIuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIHVuZGVmaW5lZCB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgZGVmaW5lIG5ldyB3aW5kb3cKKyogICAgQy4gSWYgb25seSBuZXh0IGNoYXJhY3RlciBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBVbmljb2RlIG1vZGUKKyogICAgICAgTk9URTogVGhpcyBjb3N0cyB1cyBvbmUgZXh0cmEgYnl0ZS4gIEhvd2V2ZXIsIAorKiAgICAgICAgc2luY2Ugd2UgaGF2ZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHdpbmRvd3MgdG8gd29yayB3aXRoLCBpdCBpcyAKKyogICAgICAgIGFzc3VtZWQgdGhlIGNvc3Qgd2lsbCBwYXkgb2ZmIGxhdGVyIGluIHNhdmluZ3MgZnJvbSBhIHdpbmRvdyB3aXRoCisqICAgICAgICBtb3JlIGNoYXJhY3RlcnMgaW4gaXQuCisqICAgIEQuIElmIG5laXRoZXIgb2YgZm9sbG93aW5nIGNoYXJhY3RlcnMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCwgCisqICAgICAgIHN3aXRjaCB0byBVbmljb2RlIG1vZGUuICBBbHRlcm5hdGl2ZSB0byBhYm92ZToganVzdCBxdW90ZSAKKyogICAgICAgVW5pY29kZSAoc2FtZSBieXRlIGNvc3QpCisqICAgCisqICAzLiBDdXJyZW50IGNoYXJhY3RlciBpcyB1bmNvbXByZXNzaWJsZSBVbmljb2RlIChVKzM0MDAgLSBVK0RGRkYpCisqICAgIEEuIExvb2sgYWhlYWQgb25lIGNoYXJhY3RlcgorKiAgICBCLiBJZiBuZXh0IGNoYXJhY3RlciBpbiBub24tY29tcHJlc3NpYmxlIHJlZ2lvbiwgc3dpdGNoIHRvIAorKiAgICAgICBVbmljb2RlIG1vZGUKKyogICAgQy4gSWYgbmV4dCBjaGFyYWN0ZXIgbm90IGluIG5vbi1jb21wcmVzc2libGUgcmVnaW9uLCBxdW90ZSBVbmljb2RlCisqICAgCisqCisqIFRoZSBmb2xsb3dpbmcgY2hhcnQgaWxsdXN0cmF0ZXMgdGhlIGJ5dGVzIHJlcXVpcmVkIGZvciBlbmNvZGluZyBjaGFyYWN0ZXJzCisqIGluIGVhY2ggcG9zc2libGUgd2F5CisqCisqIAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0lOR0xFIEJZVEUgTU9ERQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3RlcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4CisqICAgICAgICAgICAgICAgdGFnIGVuY291bnRlcmVkICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQKKyogICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogICAgICAgICAgICAgICBub25lIChpbiBjdXJyZW50IHdpbmRvdykgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNAorKgorKiAgICAgICAgICAgICAgIHF1b3RlIFVuaWNvZGUgICAgICAgICAgICAgICAzICAgICAgIDYgICAgICAgOSAgICAgICAxMgorKgorKiAgIHdpbmRvdyBub3QgIHN3aXRjaCB0byBVbmljb2RlICAgICAgICAgICAzICAgICAgIDUgICAgICAgNyAgICAgICA5ICAgICBieXRlCisqICAgZGVmaW5lZCAgICAgZGVmaW5lIHdpbmRvdyAgICAgICAgICAgICAgIDMgICAgICAgNCAgICAgICA1ICAgICAgIDYgICAgIGNvc3QKKyogICAgICAKKyogICB3aW5kb3cgICAgICBzd2l0Y2ggdG8gd2luZG93ICAgICAgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNQorKiAgIGRlZmluZWQgICAgIHF1b3RlIHdpbmRvdyAgICAgICAgICAgICAgICAyICAgICAgIDQgICAgICAgNiAgICAgICA4CisqCisqICBVbmljb2RlIE1vZGUKKyoKKyogVGhlcmUgYXJlIHR3byByZWxldmFudCBjYXNlcy4KKyogSWYgdGhlIGNoYXJhY3RlciBpcyBpbiB0aGUgbm9uLWNvbXByZXNzaWJsZSByZWdpb24KKyogKFUrMzQwMCAtIFUrREZGRiksIHRoZSBjaGFyYWN0ZXIgaXMgc2ltcGx5IHdyaXR0ZW4gdG8gdGhlCisqIHN0cmVhbSBhcyBhIHBhaXIgb2YgYnl0ZXMuCisqCisqIDEuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIGRlZmluZWQsIGluYWN0aXZlIHdpbmRvdy4KKyogMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdy4KKyoKKyogIDEuQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgb25lIGNoYXJhY3RlcgorKiAgICBCLiBJZiBuZXh0IGNoYXJhY3RlciBoYXMgc2FtZSBpbmRleCBhcyBjdXJyZW50IGNoYXJhY3RlciwgCisqICAgICAgIHN3aXRjaCB0byBkZWZpbmVkIHdpbmRvdyAoYW5kIHN3aXRjaCB0byBzaW5nbGUtYnl0ZSBtb2RlKQorKiAgICBDLiBJZiBub3QsIGp1c3QgcHV0IGJ5dGVzIGluIHN0cmVhbQorKiAgIAorKiAgCisqICAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93CisqICAgIEEuIExvb2sgYWhlYWQgdHdvIGNoYXJhY3RlcnMKKyogICAgQi4gSWYgYm90aCBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50IGNoYXJhY3RlciwgZGVmaW5lIHdpbmRvdyAKKyogICAgICAgKGFuZCBzd2l0Y2ggdG8gc2luZ2xlLWJ5dGUgbW9kZSkKKyogICAgQy4gSWYgb25seSBuZXh0IGNoYXJhY3RlciBpbiBzYW1lIHdpbmRvdywganVzdCBwdXQgYnl0ZXMgaW4gc3RyZWFtCisqICAgICAgICBOT1RFOiBUaGlzIGNvc3RzIHVzIG9uZSBleHRyYSBieXRlLiAgSG93ZXZlciwgCisqICAgICAgICBzaW5jZSB3ZSBoYXZlIGEgbGltaXRlZCBudW1iZXIgb2Ygd2luZG93cyB0byB3b3JrIHdpdGgsIGl0IGlzIAorKiAgICAgICAgYXNzdW1lZCB0aGUgY29zdCB3aWxsIHBheSBvZmYgbGF0ZXIgaW4gc2F2aW5ncyBmcm9tIGEgd2luZG93IHdpdGggCisqICAgICAgICBtb3JlIGNoYXJhY3RlcnMgaW4gaXQuCisqICAgIEQuIElmIG5laXRoZXIgaW4gc2FtZSB3aW5kb3csIHB1dCBieXRlcyBpbiBzdHJlYW0KKyogICAKKyoKKyogVGhlIGZvbGxvd2luZyBjaGFydCBpbGx1c3RyYXRlcyB0aGUgYnl0ZXMgcmVxdWlyZWQgZm9yIGVuY29kaW5nIGNoYXJhY3RlcnMKKyogaW4gZWFjaCBwb3NzaWJsZSB3YXkKKyoKKyogCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklDT0RFIE1PREUKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJzIGluIGEgcm93IHdpdGggc2FtZSBpbmRleAorKiAgICAgICAgICAgICAgIHRhZyBlbmNvdW50ZXJlZCAgICAgICAgICAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0CisqICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgICAgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDgKKyoKKyogICAgICAgICAgICAgICBxdW90ZSBVbmljb2RlICAgICAgICAgICAgICAgMyAgICAgICA2ICAgICAgIDkgICAgICAgMTIKKyoKKyogICB3aW5kb3cgbm90ICBkZWZpbmUgd2luZG93ICAgICAgICAgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNiAgICAgYnl0ZQorKiAgIGRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3N0CisqICAgd2luZG93ICAgICAgc3dpdGNoIHRvIHdpbmRvdyAgICAgICAgICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUKKyogICBkZWZpbmVkCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVDb21wcmVzc29yIGltcGxlbWVudHMgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDbGFzcyB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiogRm9yIHF1aWNrIGlkZW50aWZpY2F0aW9uIG9mIGEgYnl0ZSBhcyBhIHNpbmdsZS1ieXRlIG1vZGUgdGFnICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzU2luZ2xlVGFnVGFibGUgPSB7CisgICAgICAgIC8vIHRhYmxlIGdlbmVyYXRlZCBieSBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCisgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwKKyAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsCisgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlICAgCisgICAgfTsKKworICAgIC8qKiBGb3IgcXVpY2sgaWRlbnRpZmljYXRpb24gb2YgYSBieXRlIGFzIGEgdW5pY29kZSBtb2RlIHRhZyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gW10gc1VuaWNvZGVUYWdUYWJsZSA9IHsKKyAgICAgICAgLy8gdGFibGUgZ2VuZXJhdGVkIGJ5IENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKKyAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLAorICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsCisgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlIAorICAgIH07CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5zdGFuY2UgdmFyaWFibGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIC8qKiBBbGlhcyB0byBjdXJyZW50IGR5bmFtaWMgd2luZG93ICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZkN1cnJlbnRXaW5kb3cgICA9IDA7CisKKyAgICAvKiogRHluYW1pYyBjb21wcmVzc2lvbiB3aW5kb3cgb2Zmc2V0cyAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZPZmZzZXRzICAgICAgICAgPSBuZXcgaW50IFsgTlVNV0lORE9XUyBdOworCisgICAgLyoqIEN1cnJlbnQgY29tcHJlc3Npb24gbW9kZSAqLworICAgIHByaXZhdGUgaW50ICAgICAgIGZNb2RlICAgICAgICAgICAgPSBTSU5HTEVCWVRFTU9ERTsKKworICAgIC8qKiBLZWVwcyBjb3VudCBvZiB0aW1lcyBjaGFyYWN0ZXIgaW5kaWNlcyBhcmUgZW5jb3VudGVyZWQgKi8KKyAgICBwcml2YXRlIGludCBbXSAgICBmSW5kZXhDb3VudCAgICAgID0gbmV3IGludCBbIE1BWElOREVYICsgMSBdOworCisgICAgLyoqIFRoZSB0aW1lIHN0YW1wcyBpbmRpY2F0ZSB3aGVuIGEgd2luZG93IHdhcyBsYXN0IGRlZmluZWQgKi8KKyAgICBwcml2YXRlIGludCBbXSAgICBmVGltZVN0YW1wcyAgICAgID0gbmV3IGludCBbIE5VTVdJTkRPV1MgXTsKKyAgICAKKyAgICAvKiogVGhlIGN1cnJlbnQgdGltZSBzdGFtcCAqLworICAgIHByaXZhdGUgaW50ICAgICAgIGZUaW1lU3RhbXAgICAgICAgPSAwOworICAgIAorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVW5pY29kZUNvbXByZXNzb3IuCisgICAgICogU2V0cyBhbGwgd2luZG93cyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAc2VlICNyZXNldAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlQ29tcHJlc3NvcigpCisgICAgeworICAgIHJlc2V0KCk7ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHRzCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBzdHJpbmcgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgc3RyaW5nIHRvIGNvbXByZXNzLgorICAgICAqIEByZXR1cm4gQSBieXRlIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNvbXByZXNzZWQgY2hhcmFjdGVycy4KKyAgICAgKiBAc2VlICNjb21wcmVzcyhjaGFyIFtdLCBpbnQsIGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgW10gY29tcHJlc3MoU3RyaW5nIGJ1ZmZlcikKKyAgICB7CisgICAgcmV0dXJuIGNvbXByZXNzKGJ1ZmZlci50b0NoYXJBcnJheSgpLCAwLCBidWZmZXIubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXByZXNzIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgY2hhcmFjdGVyIGJ1ZmZlciB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBsaW1pdCBUaGUgbGltaXQgb2YgdGhlIGNoYXJhY3RlciBydW4gdG8gY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgY29tcHJlc3NlZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzZWUgI2NvbXByZXNzKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgW10gY29tcHJlc3MoY2hhciBbXSBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKKyAgICB7CisgICAgVW5pY29kZUNvbXByZXNzb3IgY29tcCA9IG5ldyBVbmljb2RlQ29tcHJlc3NvcigpOworCisgICAgLy8gdXNlIGEgYnVmZmVyIHRoYXQgd2Uga25vdyB3aWxsIG5ldmVyIG92ZXJmbG93CisgICAgLy8gaW4gdGhlIHdvcnN0IGNhc2UsIGVhY2ggY2hhcmFjdGVyIHdpbGwgdGFrZSAzIGJ5dGVzCisgICAgLy8gdG8gZW5jb2RlOiBVUVUsIGhpYnl0ZSwgbG9ieXRlLiAgSW4gdGhpcyBjYXNlLCB0aGUKKyAgICAvLyBjb21wcmVzc2VkIGRhdGEgd2lsbCBsb29rIGxpa2U6IFNDVSwgVVFVLCBoaWJ5dGUsIGxvYnl0ZSwgLi4uCisgICAgLy8gYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgNCBieXRlcyBpbiBzaXplCisgICAgaW50IGxlbiA9IE1hdGgubWF4KDQsIDMgKiAobGltaXQgLSBzdGFydCkgKyAxKTsKKyAgICBieXRlIFtdIHRlbXAgPSBuZXcgYnl0ZSBbbGVuXTsKKworICAgIGludCBieXRlQ291bnQgPSBjb21wLmNvbXByZXNzKGJ1ZmZlciwgc3RhcnQsIGxpbWl0LCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICB0ZW1wLCAwLCBsZW4pOworCisgICAgYnl0ZSBbXSByZXN1bHQgPSBuZXcgYnl0ZSBbYnl0ZUNvdW50XTsKKyAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIHJlc3VsdCwgMCwgYnl0ZUNvdW50KTsKKyAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXByZXNzIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkgaW50byBhIGJ5dGUgYXJyYXkuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgb25seSBjb25zdW1lIGlucHV0IHRoYXQgY2FuIGJlIGNvbXBsZXRlbHkKKyAgICAgKiBvdXRwdXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlciBUaGUgY2hhcmFjdGVyIGJ1ZmZlciB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlclN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlckxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gY2hhcnNSZWFkIEEgb25lLWVsZW1lbnQgYXJyYXkuICBJZiBub3QgbnVsbCwgb24gcmV0dXJuIAorICAgICAqIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGZyb20gY2hhckJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlciBBIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBjb21wcmVzc2VkIGRhdGEuICBUaGlzIAorICAgICAqIGJ1ZmZlciBtdXN0IGJlIGF0IG1pbmltdW0gZm91ciBieXRlcyBpbiBzaXplLgorICAgICAqIEBwYXJhbSBieXRlQnVmZmVyU3RhcnQgVGhlIHN0YXJ0aW5nIG9mZnNldCB0byB3aGljaCB0byB3cml0ZSAKKyAgICAgKiBjb21wcmVzc2VkIGRhdGEuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJMaW1pdCBUaGUgbGltaXRpbmcgb2Zmc2V0IGZvciB3cml0aW5nIGNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byBieXRlQnVmZmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcHJlc3MoY2hhciBbXSAgICAgY2hhckJ1ZmZlciwKKyAgICAgICAgICAgIGludCAgICAgICAgIGNoYXJCdWZmZXJTdGFydCwKKyAgICAgICAgICAgIGludCAgICAgICAgIGNoYXJCdWZmZXJMaW1pdCwKKyAgICAgICAgICAgIGludCBbXSAgICAgIGNoYXJzUmVhZCwKKyAgICAgICAgICAgIGJ5dGUgW10gICAgIGJ5dGVCdWZmZXIsCisgICAgICAgICAgICBpbnQgICAgICAgICBieXRlQnVmZmVyU3RhcnQsCisgICAgICAgICAgICBpbnQgICAgICAgICBieXRlQnVmZmVyTGltaXQpCisgICAgeworICAgICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IGJ5dGUgYnVmZmVyCisgICAgaW50ICAgICBieXRlUG9zICAgICAgID0gYnl0ZUJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgdW5pY29kZSBjaGFyYWN0ZXIgYnVmZmVyCisgICAgaW50ICAgICB1Y1BvcyAgICAgICAgID0gY2hhckJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gdGhlIHNvdXJjZSBidWZmZXIKKyAgICBpbnQgICAgIGN1clVDICAgICAgICAgPSBJTlZBTElEQ0hBUjsKKyAgICAKKyAgICAvLyB0aGUgaW5kZXggZm9yIHRoZSBjdXJyZW50IGNoYXJhY3RlcgorICAgICAgICBpbnQgICAgIGN1ckluZGV4ICAgICAgPSAtMTsKKyAgICAgICAgCisgICAgLy8gbG9vayBhaGVhZAorICAgIGludCAgICAgbmV4dFVDICAgICAgICA9IElOVkFMSURDSEFSOworICAgIGludCAgICAgZm9yd2FyZFVDICAgICA9IElOVkFMSURDSEFSOworICAgIAorICAgICAgICAvLyB0ZW1wb3JhcnkgZm9yIHdpbmRvdyBzZWFyY2hpbmcKKyAgICBpbnQgICAgIHdoaWNoV2luZG93ICAgPSAwOworICAgIAorICAgIC8vIGhpZ2ggYW5kIGxvdyBieXRlcyBvZiB0aGUgY3VycmVudCB1bmljb2RlIGNoYXJhY3RlcgorICAgIGludCAgICAgaGlCeXRlICAgICAgICA9IDA7CisgICAgaW50ICAgICBsb0J5dGUgICAgICAgID0gMDsKKworCisgICAgLy8gYnl0ZUJ1ZmZlciBtdXN0IGJlIGF0IGxlYXN0IDQgYnl0ZXMgaW4gc2l6ZQorICAgIGlmKGJ5dGVCdWZmZXIubGVuZ3RoIDwgNCB8fCAoYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZUJ1ZmZlclN0YXJ0KSA8IDQpCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJ5dGVCdWZmZXIubGVuZ3RoIDwgNCIpOworCisgICAgbWFpbkxvb3A6CisgICAgd2hpbGUodWNQb3MgPCBjaGFyQnVmZmVyTGltaXQgJiYgYnl0ZVBvcyA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICBzd2l0Y2goZk1vZGUpIHsKKyAgICAgICAgLy8gbWFpbiBzaW5nbGUgYnl0ZSBtb2RlIGNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgY2FzZSBTSU5HTEVCWVRFTU9ERToKKyAgICAgICAgc2luZ2xlQnl0ZU1vZGVMb29wOgorICAgICAgICB3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgIC8vIGdldCBjdXJyZW50IGNoYXIKKyAgICAgICAgY3VyVUMgPSBjaGFyQnVmZmVyW3VjUG9zKytdOworCisgICAgICAgIC8vIGdldCBuZXh0IGNoYXIKKyAgICAgICAgaWYodWNQb3MgPCBjaGFyQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgbmV4dFVDID0gY2hhckJ1ZmZlclt1Y1Bvc107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5leHRVQyA9IElOVkFMSURDSEFSOworICAgICAgICAKKyAgICAgICAgLy8gY2hhcnMgbGVzcyB0aGFuIDB4MDA4MCAoZXhjbHVkaW5nIHRhZ3MpIGdvIHN0cmFpZ2h0CisgICAgICAgIC8vIGluIHN0cmVhbQorICAgICAgICBpZihjdXJVQyA8IDB4MDA4MCkgeworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNoZWNrIGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGFjY2lkZW50YWxseSB3cml0ZSBhIHNpbmdsZSBieXRlIG1vZGUgdGFnIHRvCisgICAgICAgICAgICAvLyB0aGUgc3RyZWFtIHVubGVzcyBpdCdzIHF1b3RlZAorICAgICAgICAgICAgaWYoc1NpbmdsZVRhZ1RhYmxlW2xvQnl0ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhlIGJ5dGUgaXMgbGVzcyB0aGFuIDB4ODAsIFNRVU9URTAKKyAgICAgICAgICAgIC8vIHdpbGwgdXNlIHN0YXRpYyB3aW5kb3cgMCwgb3IgQVNDSUkKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTUVVPVEUwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGNoYXIgYmVsb25ncyB0byBjdXJyZW50IHdpbmRvdywgY29udmVydCBpdAorICAgICAgICAvLyB0byBhIGJ5dGUgYnkgYWRkaW5nIHRoZSBnZW5lcmljIGNvbXByZXNzaW9uIG9mZnNldAorICAgICAgICAvLyBhbmQgc3VidHJhY3RpbmcgdGhlIHdpbmRvdydzIG9mZnNldAorICAgICAgICBlbHNlIGlmKGluRHluYW1pY1dpbmRvdyhjdXJVQywgZkN1cnJlbnRXaW5kb3cpICkgeworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gCisgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIGNoYXIgaXMgbm90IGluIGNvbXByZXNzaWJsZSByYW5nZSwgZWl0aGVyIHN3aXRjaCB0byBvcgorICAgICAgICAvLyBxdW90ZSBmcm9tIHVuaWNvZGUKKyAgICAgICAgZWxzZSBpZiggISBpc0NvbXByZXNzaWJsZShjdXJVQykgKSB7CisgICAgICAgICAgICAvLyBvbmx5IGNoZWNrIG5leHQgY2hhcmFjdGVyIGlmIGl0IGlzIHZhbGlkCisgICAgICAgICAgICBpZihuZXh0VUMgIT0gSU5WQUxJRENIQVIgJiYgaXNDb21wcmVzc2libGUobmV4dFVDKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYWxsIHRocmVlIGJ5dGVzIGlmIG5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU1FVT1RFVTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoY3VyVUMgPj4+IDgpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIChjdXJVQyAmIDB4RkYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgZm91ciBieXRlcyBpZiBub3QsIHJld2luZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDMpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU0NIQU5HRVU7CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlW2hpQnl0ZV0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdICAgPSAoYnl0ZSkgVVFVT1RFVTsgICAgCisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBjaGFyIGlzIGluIGEgY3VycmVudGx5IGRlZmluZWQgZHluYW1pYworICAgICAgICAvLyB3aW5kb3csIGZpZ3VyZSBvdXQgd2hpY2ggb25lLCBhbmQgZWl0aGVyIHN3aXRjaCB0bworICAgICAgICAvLyBpdCBvciBxdW90ZSBmcm9tIGl0CisgICAgICAgIGVsc2UgaWYoKHdoaWNoV2luZG93ID0gZmluZER5bmFtaWNXaW5kb3coY3VyVUMpKSAKKyAgICAgICAgICAgICE9IElOVkFMSURXSU5ET1cgKSB7CisgICAgICAgICAgICAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICBpZiggKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQgKQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGFsbCB0aHJlZSBjaGFycyBpbiBzYW1lIHdpbmRvdywgc3dpdGNoIHRvIHRoYXQKKyAgICAgICAgICAgIC8vIHdpbmRvdyBpbkR5bmFtaWNXaW5kb3cgd2lsbCByZXR1cm4gZmFsc2UgZm9yCisgICAgICAgICAgICAvLyBJTlZBTElEQ0hBUgorICAgICAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpIAorICAgICAgICAgICAgICAgJiYgaW5EeW5hbWljV2luZG93KGZvcndhcmRVQywgd2hpY2hXaW5kb3cpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoU0NIQU5HRTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorICAgICAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIGZUaW1lU3RhbXBzIFsgd2hpY2hXaW5kb3cgXSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGVpdGhlciBvbmx5IG5leHQgY2hhciBvciBuZWl0aGVyIGluIHNhbWUKKyAgICAgICAgICAgIC8vIHdpbmRvdywgc28gcXVvdGUKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKFNRVU9URTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorICAgICAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGEgc3RhdGljIHdpbmRvdyBpcyBkZWZpbmVkLCBhbmQgdGhlIGZvbGxvd2luZworICAgICAgICAvLyBjaGFyYWN0ZXIgaXMgbm90IGluIHRoYXQgc3RhdGljIHdpbmRvdywgcXVvdGUgZnJvbQorICAgICAgICAvLyB0aGUgc3RhdGljIHdpbmRvdyBOb3RlOiB0byBxdW90ZSBmcm9tIGEgc3RhdGljCisgICAgICAgIC8vIHdpbmRvdywgZG9uJ3QgYWRkIDB4ODAKKyAgICAgICAgZWxzZSBpZigod2hpY2hXaW5kb3cgPSBmaW5kU3RhdGljV2luZG93KGN1clVDKSkgCisgICAgICAgICAgICAhPSBJTlZBTElEV0lORE9XIAorICAgICAgICAgICAgJiYgISBpblN0YXRpY1dpbmRvdyhuZXh0VUMsIHdoaWNoV2luZG93KSApIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBib3RoCisgICAgICAgICAgICAvLyBieXRlcyBpZiBub3QsIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQKKyAgICAgICAgICAgIC8vIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKFNRVU9URTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAoY3VyVUMgLSBzT2Zmc2V0c1t3aGljaFdpbmRvd10pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiBhIHdpbmRvdyBpcyBub3QgZGVmaW5lZCwgZGVjaWRlIGlmIHdlIHdhbnQgdG8KKyAgICAgICAgLy8gZGVmaW5lIGEgbmV3IG9uZSBvciBzd2l0Y2ggdG8gdW5pY29kZSBtb2RlCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIGluZGV4IGZvciBjdXJyZW50IGNoYXIgKGNoYXIgaXMgY29tcHJlc3NpYmxlKQorICAgICAgICAgICAgY3VySW5kZXggPSBtYWtlSW5kZXgoY3VyVUMpOworICAgICAgICAgICAgZkluZGV4Q291bnRbY3VySW5kZXhdKys7CisKKyAgICAgICAgICAgIC8vIGxvb2sgYWhlYWQKKyAgICAgICAgICAgIGlmKCh1Y1BvcyArIDEpIDwgY2hhckJ1ZmZlckxpbWl0KQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisKKyAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgZW5jb3VudGVyZWQgdGhpcyBpbmRleCBhdCBsZWFzdCBvbmNlCisgICAgICAgICAgICAvLyBiZWZvcmUsIGRlZmluZSBhIG5ldyB3aW5kb3cKKyAgICAgICAgICAgIC8vIE9SCisgICAgICAgICAgICAvLyB0aHJlZSBjaGFycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgsIGRlZmluZSBhCisgICAgICAgICAgICAvLyBuZXcgd2luZG93IChtYWtlSW5kZXggd2lsbCByZXR1cm4gUkVTRVJWRURJTkRFWAorICAgICAgICAgICAgLy8gZm9yIElOVkFMSURDSEFSKQorICAgICAgICAgICAgaWYoKGZJbmRleENvdW50W2N1ckluZGV4XSA+IDEpIHx8CisgICAgICAgICAgICAgICAoY3VySW5kZXggPT0gbWFrZUluZGV4KG5leHRVQykgCisgICAgICAgICAgICAmJiBjdXJJbmRleCA9PSBtYWtlSW5kZXgoZm9yd2FyZFVDKSkpIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwKKyAgICAgICAgICAgIC8vIHRocmVlIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2UKKyAgICAgICAgICAgIC8vIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZiggKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgLy8gZ2V0IGxlYXN0IHJlY2VudGx5IGRlZmluZWQgd2luZG93CisgICAgICAgICAgICB3aGljaFdpbmRvdyA9IGdldExSRGVmaW5lZFdpbmRvdygpOworCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoU0RFRklORTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgY3VySW5kZXg7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gc09mZnNldFRhYmxlW2N1ckluZGV4XSAKKyAgICAgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisKKyAgICAgICAgICAgIGZPZmZzZXRzW3doaWNoV2luZG93XSA9IHNPZmZzZXRUYWJsZVtjdXJJbmRleF07CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworICAgICAgICAgICAgZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb25seSB0d28gY2hhcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4LCBzbworICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHVuaWNvZGUgbW9kZSAobWFrZUluZGV4IHdpbGwgcmV0dXJuCisgICAgICAgICAgICAvLyBSRVNFUlZFRElOREVYIGZvciBJTlZBTElEQ0hBUikKKyAgICAgICAgICAgIC8vIE9SCisgICAgICAgICAgICAvLyB0aHJlZSBjaGFycyBoYXZlIGRpZmZlcmVudCBpbmRpY2VzLCBzbyBzd2l0Y2gKKyAgICAgICAgICAgIC8vIHRvIHVuaWNvZGUgbW9kZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8gd3JpdGUgYWxsCisgICAgICAgICAgICAvLyBmb3VyIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtCisgICAgICAgICAgICAvLyBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDMpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgU0NIQU5HRVU7CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlW2hpQnl0ZV0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7IAorCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKworICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgVU5JQ09ERU1PREU6CisgICAgICAgIC8vIG1haW4gdW5pY29kZSBtb2RlIGNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgdW5pY29kZU1vZGVMb29wOgorICAgICAgICB3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgIC8vIGdldCBjdXJyZW50IGNoYXIKKyAgICAgICAgY3VyVUMgPSBjaGFyQnVmZmVyW3VjUG9zKytdOyAgICAKKworICAgICAgICAvLyBnZXQgbmV4dCBjaGFyCisgICAgICAgIGlmKCB1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCApCisgICAgICAgICAgICBuZXh0VUMgPSBjaGFyQnVmZmVyW3VjUG9zXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV4dFVDID0gSU5WQUxJRENIQVI7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSB0d28gdW5jb21wcmVzc2libGUgY2hhcnMgaW4gYSByb3csCisgICAgICAgIC8vIHB1dCB0aGUgY3VycmVudCBjaGFyJ3MgYnl0ZXMgaW4gdGhlIHN0cmVhbQorICAgICAgICBpZiggISBpc0NvbXByZXNzaWJsZShjdXJVQykgCisgICAgICAgICAgICB8fCAobmV4dFVDICE9IElOVkFMSURDSEFSICYmICEgaXNDb21wcmVzc2libGUobmV4dFVDKSkpIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGhpQnl0ZSA9IGN1clVDID4+PiA4OworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICBpZihzVW5pY29kZVRhZ1RhYmxlWyBoaUJ5dGUgXSkKKyAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gYnl0ZXMgbGVzcyB0aGFuIDB4ODAgY2FuIGdvIHN0cmFpZ2h0IGluIHRoZSBzdHJlYW0sCisgICAgICAgIC8vIGJ1dCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgICAgIGVsc2UgaWYoY3VyVUMgPCAweDAwODApIHsKKyAgICAgICAgICAgIGxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworICAgICAgICAgICAgLy8gaWYgdHdvIGNoYXJzIGluIGEgcm93IGJlbG93IDB4ODAgYW5kIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudCBjaGFyIGlzIG5vdCBhIHNpbmdsZS1ieXRlIG1vZGUgdGFnLAorICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHNpbmdsZS1ieXRlIG1vZGUKKyAgICAgICAgICAgIGlmKG5leHRVQyAhPSBJTlZBTElEQ0hBUiAKKyAgICAgICAgICAgICAgICYmIG5leHRVQyA8IDB4MDA4MCAmJiAhIHNTaW5nbGVUYWdUYWJsZVsgbG9CeXRlIF0gKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICAvLyB1c2UgdGhlIGxhc3QtYWN0aXZlIHdpbmRvdworICAgICAgICAgICAgd2hpY2hXaW5kb3cgPSBmQ3VycmVudFdpbmRvdzsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShVQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisKKyAgICAgICAgICAgIC8vZkN1cnJlbnRXaW5kb3cgPSAwOworICAgICAgICAgICAgZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZNb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICBicmVhayB1bmljb2RlTW9kZUxvb3A7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwganVzdCB3cml0ZSB0aGUgYnl0ZXMgdG8gdGhlIHN0cmVhbQorICAgICAgICAgICAgLy8gKHRoaXMgd2lsbCBjb3ZlciB0aGUgY2FzZSBvZiBvbmx5IDEgY2hhciBsZXNzIHRoYW4gMHg4MAorICAgICAgICAgICAgLy8gYW5kIHNpbmdsZS1ieXRlIG1vZGUgdGFncykKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY2hhcmFjdGVyIGlzIGxlc3MgdGhhbiAweDgwLCB0aGUKKyAgICAgICAgICAgIC8vIGhpZ2ggYnl0ZSBpcyBhbHdheXMgMHgwMCAtIG5vIG5lZWQgZm9yCisgICAgICAgICAgICAvLyAoY3VyVUMgPj4+IDgpCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgMHgwMDsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaWd1cmUgb3V0IGlmIHRoZSBjdXJyZW50IGNoYXIgaXMgaW4gYSBkZWZpbmVkIHdpbmRvdworICAgICAgICBlbHNlIGlmKCh3aGljaFdpbmRvdyA9IGZpbmREeW5hbWljV2luZG93KGN1clVDKSkgCisgICAgICAgICAgICAhPSBJTlZBTElEV0lORE9XICkgeworICAgICAgICAgICAgLy8gaWYgdHdvIGNoYXJzIGluIGEgcm93IGluIHRoZSBzYW1lIHdpbmRvdywKKyAgICAgICAgICAgIC8vIHN3aXRjaCB0byB0aGF0IHdpbmRvdyBhbmQgZ28gdG8gc2luZ2xlLWJ5dGUgbW9kZQorICAgICAgICAgICAgLy8gaW5EeW5hbWljV2luZG93IHdpbGwgcmV0dXJuIGZhbHNlIGZvciBJTlZBTElEQ0hBUgorICAgICAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShVQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgICAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworCisgICAgICAgICAgICBmVGltZVN0YW1wcyBbIHdoaWNoV2luZG93IF0gPSArK2ZUaW1lU3RhbXA7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBqdXN0IHF1b3RlIHRoZSB1bmljb2RlIGZvciB0aGUgY2hhcgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorICAgICAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBVUVVPVEVVOworCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgaGlCeXRlOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gY2hhciBpcyBub3QgaW4gYSBkZWZpbmVkIHdpbmRvdworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGRldGVybWluZSBpbmRleCBmb3IgY3VycmVudCBjaGFyIChjaGFyIGlzIGNvbXByZXNzaWJsZSkKKyAgICAgICAgICAgIGN1ckluZGV4ID0gbWFrZUluZGV4KGN1clVDKTsKKyAgICAgICAgICAgIGZJbmRleENvdW50W2N1ckluZGV4XSsrOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICBpZiggKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQgKQorICAgICAgICAgICAgZm9yd2FyZFVDID0gY2hhckJ1ZmZlclt1Y1BvcyArIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9yd2FyZFVDID0gSU5WQUxJRENIQVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgZW5jb3VudGVyZWQgdGhpcyBpbmRleCBhdCBsZWFzdCBvbmNlCisgICAgICAgICAgICAvLyBiZWZvcmUsIGRlZmluZSBhIG5ldyB3aW5kb3cgZm9yIGl0IHRoYXQgaGFzbid0CisgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGJlZW4gcmVkZWZpbmVkCisgICAgICAgICAgICAvLyBPUgorICAgICAgICAgICAgLy8gaWYgdGhyZWUgY2hhcnMgaW4gYSByb3cgd2l0aCB0aGUgc2FtZSBpbmRleCwKKyAgICAgICAgICAgIC8vIGRlZmluZSBhIG5ldyB3aW5kb3cgKG1ha2VJbmRleCB3aWxsIHJldHVybgorICAgICAgICAgICAgLy8gUkVTRVJWRURJTkRFWCBmb3IgSU5WQUxJRENIQVIpCisgICAgICAgICAgICBpZigoZkluZGV4Q291bnRbY3VySW5kZXhdID4gMSkgfHwKKyAgICAgICAgICAgICAgIChjdXJJbmRleCA9PSBtYWtlSW5kZXgobmV4dFVDKSAKKyAgICAgICAgICAgICYmIGN1ckluZGV4ID09IG1ha2VJbmRleChmb3J3YXJkVUMpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYWxsIHRocmVlIGJ5dGVzIGlmIG5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIGdldCBsZWFzdCByZWNlbnRseSBkZWZpbmVkIHdpbmRvdworICAgICAgICAgICAgd2hpY2hXaW5kb3cgPSBnZXRMUkRlZmluZWRXaW5kb3coKTsKKworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVERUZJTkUwICsgd2hpY2hXaW5kb3cpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGN1ckluZGV4OworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorICAgICAgICAgICAgICAgIChjdXJVQyAtIHNPZmZzZXRUYWJsZVtjdXJJbmRleF0gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmT2Zmc2V0c1t3aGljaFdpbmRvd10gPSBzT2Zmc2V0VGFibGVbY3VySW5kZXhdOworICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSB3aGljaFdpbmRvdzsKKyAgICAgICAgICAgIGZUaW1lU3RhbXBzIFt3aGljaFdpbmRvd10gPSArK2ZUaW1lU3RhbXA7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBvdGhlcndpc2UganVzdCBxdW90ZSB0aGUgdW5pY29kZSwgYW5kIHNhdmUgb3VyCisgICAgICAgICAgICAvLyB3aW5kb3dzIGZvciBsb25nZXIgcnVucworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorICAgICAgICAgICAgICAgIC8vIGFkZCBxdW90ZSBVbmljb2RlIHRhZworICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBVUVVPVEVVOyAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSAgLy8gZW5kIHN3aXRjaAorICAgIH0KKyAgICAKKyAgICAgICAgLy8gZmlsbCBpbiBvdXRwdXQgcGFyYW1ldGVyCisgICAgaWYoY2hhcnNSZWFkICE9IG51bGwpCisgICAgICAgIGNoYXJzUmVhZCBbMF0gPSAodWNQb3MgLSBjaGFyQnVmZmVyU3RhcnQpOworICAgICAgICAKKyAgICAgICAgLy8gcmV0dXJuICMgb2YgYnl0ZXMgd3JpdHRlbgorICAgICAgICByZXR1cm4gKGJ5dGVQb3MgLSBieXRlQnVmZmVyU3RhcnQpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBSZXNldCB0aGUgY29tcHJlc3NvciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgIGludCBpOworCisgICAgICAgIC8vIHJlc2V0IGR5bmFtaWMgd2luZG93cworICAgICAgICBmT2Zmc2V0c1swXSA9IDB4MDA4MDsgICAgLy8gTGF0aW4tMQorICAgICAgICBmT2Zmc2V0c1sxXSA9IDB4MDBDMDsgICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50ICsgTGF0aW4gRXh0ZW5kZWQtQQorICAgICAgICBmT2Zmc2V0c1syXSA9IDB4MDQwMDsgICAgLy8gQ3lyaWxsaWMKKyAgICAgICAgZk9mZnNldHNbM10gPSAweDA2MDA7ICAgIC8vIEFyYWJpYworICAgICAgICBmT2Zmc2V0c1s0XSA9IDB4MDkwMDsgICAgLy8gRGV2YW5hZ2FyaQorICAgICAgICBmT2Zmc2V0c1s1XSA9IDB4MzA0MDsgICAgLy8gSGlyYWdhbmEKKyAgICAgICAgZk9mZnNldHNbNl0gPSAweDMwQTA7ICAgIC8vIEthdGFrYW5hCisgICAgICAgIGZPZmZzZXRzWzddID0gMHhGRjAwOyAgICAvLyBGdWxsd2lkdGggQVNDSUkKKworCisgICAgICAgIC8vIHJlc2V0IHRpbWUgc3RhbXBzCisgICAgICAgIGZvcihpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKykgeworICAgICAgICAgICAgZlRpbWVTdGFtcHNbaV0gICAgICAgICAgPSAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVzZXQgY291bnQgb2Ygc2VlbiBpbmRpY2VzCisgICAgICAgIGZvcihpID0gMDsgaSA8PSBNQVhJTkRFWDsgaSsrICkgeworICAgICAgICAgICAgZkluZGV4Q291bnRbaV0gPSAwOworICAgICAgICB9CisKKyAgICAgICAgZlRpbWVTdGFtcCAgICAgID0gMDsgICAgICAgICAgICAgICAgLy8gUmVzZXQgY3VycmVudCB0aW1lIHN0YW1wCisgICAgICAgIGZDdXJyZW50V2luZG93ICA9IDA7ICAgICAgICAgICAgICAgIC8vIE1ha2UgY3VycmVudCB3aW5kb3cgTGF0aW4tMQorICAgICAgICBmTW9kZSAgICAgICAgICAgPSBTSU5HTEVCWVRFTU9ERTsgICAvLyBBbHdheXMgc3RhcnQgaW4gc2luZ2xlLWJ5dGUgbW9kZQorICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBEZXRlcm1pbmUgdGhlIGluZGV4IGZvciBhIGNoYXJhY3RlcgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGUgaW5kZXggdmFsdWUgZm9yIGEgY2hhcmFjdGVyLgorICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZnVuY3Rpb24sIHJlZmVyIHRvIHRhYmxlIFgtMworICAgICAqIDxBIEhSRUY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyNiI+VVRSNjwvQT4uCisgICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciBpbiBxdWVzdGlvbi4KKyAgICAgKiBAcmV0dXJuIEFuIGluZGV4IGZvciBjCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1ha2VJbmRleChpbnQgYykKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIHRoZSBwcmVkZWZpbmVkIGluZGljZXMKKyAgICAgICAgaWYoYyA+PSAweDAwQzAgJiYgYyA8IDB4MDE0MCkKKyAgICAgICAgICAgIHJldHVybiBMQVRJTklOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgwMjUwICYmIGMgPCAweDAyRDApCisgICAgICAgICAgICByZXR1cm4gSVBBRVhURU5TSU9OSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDAzNzAgJiYgYyA8IDB4MDNGMCkKKyAgICAgICAgICAgIHJldHVybiBHUkVFS0lOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgwNTMwICYmIGMgPCAweDA1OTApCisgICAgICAgICAgICByZXR1cm4gQVJNRU5JQU5JTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MzA0MCAmJiBjIDwgMHgzMEEwKQorICAgICAgICAgICAgcmV0dXJuIEhJUkFHQU5BSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDMwQTAgJiYgYyA8IDB4MzEyMCkKKyAgICAgICAgICAgIHJldHVybiBLQVRBS0FOQUlOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHhGRjYwICYmIGMgPCAweEZGOUYpCisgICAgICAgICAgICByZXR1cm4gSEFMRldJRFRIS0FUQUtBTkFJTkRFWDsKKworICAgICAgICAvLyBjYWxjdWxhdGUgaW5kZXgKKyAgICAgICAgZWxzZSBpZihjID49IDB4MDA4MCAmJiBjIDwgMHgzNDAwKQorICAgICAgICAgICAgcmV0dXJuIChjIC8gMHg4MCkgJiAweEZGOworICAgICAgICBlbHNlIGlmKGMgPj0gMHhFMDAwICYmIGMgPD0gMHhGRkZGKQorICAgICAgICAgICAgcmV0dXJuICgoYyAtIDB4QUMwMCkgLyAweDgwKSAmIDB4RkY7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBSRVNFUlZFRElOREVYOworICAgICAgICB9CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENoZWNrIGlmIGEgZ2l2ZW4gY2hhcmFjdGVyIGZpdHMgaW4gYSB3aW5kb3cKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAqIERldGVybWluZSBpZiBhIGNoYXJhY3RlciBpcyBpbiBhIGR5bmFtaWMgd2luZG93LgorICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciB0byB0ZXN0CisgICAgKiBAcGFyYW0gd2hpY2hXaW5kb3cgVGhlIGR5bmFtaWMgd2luZG93IHRoZSB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgPFRUPmM8L1RUPiB3aWxsIGZpdCBpbiA8VFQ+d2hpY2hXaW5kb3c8L1RUPiwgCisgICAgKiBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaW5EeW5hbWljV2luZG93KGludCBjLCAKKyAgICAgICAgICAgICAgICAgICAgaW50IHdoaWNoV2luZG93KQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjID49IGZPZmZzZXRzW3doaWNoV2luZG93XSAKKyAgICAgICAgJiYgYyA8IChmT2Zmc2V0c1t3aGljaFdpbmRvd10gKyAweDgwKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGluIGEgc3RhdGljIHdpbmRvdy4KKyAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICogQHBhcmFtIHdoaWNoV2luZG93IFRoZSBzdGF0aWMgd2luZG93IHRoZSB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgPFRUPmM8L1RUPiB3aWxsIGZpdCBpbiA8VFQ+d2hpY2hXaW5kb3c8L1RUPiwgCisgICAgKiBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGluU3RhdGljV2luZG93KGludCBjLCAKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgd2hpY2hXaW5kb3cpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPj0gc09mZnNldHNbd2hpY2hXaW5kb3ddCisgICAgICAgICYmIGMgPCAoc09mZnNldHNbd2hpY2hXaW5kb3ddICsgMHg4MCkpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGVjayBpZiBhIGdpdmVuIGNoYXJhY3RlciBpcyBjb21wcmVzc2libGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAqIERldGVybWluZSBpZiBhIGNoYXJhY3RlciBpcyBjb21wcmVzc2libGUuCisgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIHRvIHRlc3QuCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIDxUVD5jPC9UVD4gaXMgY29tcHJlc3NpYmxlLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQ29tcHJlc3NpYmxlKGludCBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjIDwgMHgzNDAwIHx8IGMgPj0gMHhFMDAwKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hlY2sgaWYgYSB3aW5kb3cgaXMgZGVmaW5lZCBmb3IgYSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBkeW5hbWljIHdpbmRvdyBmb3IgYSBjZXJ0YWluIGNoYXJhY3RlciBpcyBkZWZpbmVkCisgICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciBpbiBxdWVzdGlvbgorICAgICAqIEByZXR1cm4gVGhlIGR5bmFtaWMgd2luZG93IGNvbnRhaW5pbmcgPFRUPmM8L1RUPiwgb3IgCisgICAgICogSU5WQUxJRFdJTkRPVyBpZiBub3QgZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmaW5kRHluYW1pY1dpbmRvdyhpbnQgYykKKyAgICB7CisgICAgLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvcihpbnQgaSA9IDA7IGkgPCBOVU1XSU5ET1dTOyBpKyspIHsKKyAgICBmb3IoaW50IGkgPSBOVU1XSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYoaW5EeW5hbWljV2luZG93KGMsIGkpKSB7CisgICAgICAgICsrZlRpbWVTdGFtcHNbaV07CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5WQUxJRFdJTkRPVzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBzdGF0aWMgd2luZG93IGZvciBhIGNlcnRhaW4gY2hhcmFjdGVyIGlzIGRlZmluZWQKKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBUaGUgc3RhdGljIHdpbmRvdyBjb250YWluaW5nIDxUVD5jPC9UVD4sIG9yIAorICAgICAqIElOVkFMSURXSU5ET1cgaWYgbm90IGRlZmluZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRTdGF0aWNXaW5kb3coaW50IGMpCisgICAgeworICAgIC8vIHN1cHBvc2VkbHkgZmFzdGVyIHRvIGNvdW50IGRvd24KKyAgICAgICAgLy9mb3IoaW50IGkgPSAwOyBpIDwgTlVNU1RBVElDV0lORE9XUzsgaSsrKSB7CisgICAgZm9yKGludCBpID0gTlVNU1RBVElDV0lORE9XUyAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIGlmKGluU3RhdGljV2luZG93KGMsIGkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgICAgIHJldHVybiBJTlZBTElEV0lORE9XOworICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gRmluZCB0aGUgbGVhc3QtcmVjZW50bHkgdXNlZCB3aW5kb3cKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiogRmluZCB0aGUgbGVhc3QtcmVjZW50bHkgZGVmaW5lZCB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCBnZXRMUkRlZmluZWRXaW5kb3coKQorICAgIHsKKyAgICAgICAgaW50IGxlYXN0UlUgICAgICAgICA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2hpY2hXaW5kb3cgICAgID0gSU5WQUxJRFdJTkRPVzsKKworICAgICAgICAvLyBmaW5kIGxlYXN0IHJlY2VudGx5IHVzZWQgd2luZG93CisgICAgICAgIC8vIHN1cHBvc2VkbHkgZmFzdGVyIHRvIGNvdW50IGRvd24KKyAgICAgICAgLy9mb3IoIGludCBpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKyApIHsKKyAgICAgICAgZm9yKGludCBpID0gTlVNV0lORE9XUyAtIDE7IGkgPj0gMDsgLS1pICkgeworICAgICAgICAgICAgaWYoIGZUaW1lU3RhbXBzW2ldIDwgbGVhc3RSVSApIHsKKyAgICAgICAgICAgICAgICBsZWFzdFJVICAgPSBmVGltZVN0YW1wc1tpXTsKKyAgICAgICAgICAgICAgICB3aGljaFdpbmRvdyAgPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHdoaWNoV2luZG93OworICAgIH0KKyAgICAKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNkMDdlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDU2MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyogQSBkZWNvbXByZXNzaW9uIGVuZ2luZSBpbXBsZW1lbnRpbmcgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorKiBmb3IgVW5pY29kZSAoU0NTVSkgYXMgb3V0bGluZWQgaW4gPEEKKyogSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbAorKiBSZXBvcnQgIzY8L0E+LgorKgorKiA8UD48U1RST05HPlVTQUdFPC9TVFJPTkc+PC9QPgorKgorKiA8UD5UaGUgc3RhdGljIG1ldGhvZHMgb24gPFRUPlVuaWNvZGVEZWNvbXByZXNzb3I8L1RUPiBtYXkgYmUgdXNlZCBpbiBhCisqIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIgdG8gZGVjb21wcmVzcyBzaW1wbGUgc3RyaW5nczo8L1A+CisqCisqIDxQUkU+CisqICBieXRlIFtdIGNvbXByZXNzZWQgPSAuLi4gOyAvLyBnZXQgY29tcHJlc3NlZCBieXRlcyBmcm9tIHNvbWV3aGVyZQorKiAgU3RyaW5nIHJlc3VsdCA9IFVuaWNvZGVEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhjb21wcmVzc2VkKTsKKyogPC9QUkU+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBoYXZlIGEgZmFpcmx5IGxhcmdlIG1lbW9yeSBmb290cHJpbnQuCisqIEZvciBmaW5lci1ncmFpbmVkIGNvbnRyb2wgb3ZlciBtZW1vcnkgdXNhZ2UsIAorKiA8VFQ+VW5pY29kZURlY29tcHJlc3NvcjwvVFQ+IG9mZmVycyBtb3JlIHBvd2VyZnVsIEFQSXMgYWxsb3dpbmcKKyogaXRlcmF0aXZlIGRlY29tcHJlc3Npb246PC9QPgorKgorKiA8UFJFPgorKiAgLy8gRGVjb21wcmVzcyBhbiBhcnJheSAiYnl0ZXMiIG9mIGxlbmd0aCAibGVuIiB1c2luZyBhIGJ1ZmZlciBvZiA1MTIgY2hhcnMKKyogIC8vIHRvIHRoZSBXcml0ZXIgIm91dCIKKyoKKyogIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgICAgICAgICA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisqICBmaW5hbCBzdGF0aWMgaW50ICAgIEJVRlNJWkUgICAgICAgICAgICAgICAgPSA1MTI7CisqICBjaGFyIFtdICAgICAgICAgICAgIGNoYXJCdWZmZXIgICAgICAgICAgICAgPSBuZXcgY2hhciBbIEJVRlNJWkUgXTsKKyogIGludCAgICAgICAgICAgICAgICAgY2hhcnNXcml0dGVuICAgICAgICAgICA9IDA7CisqICBpbnQgW10gICAgICAgICAgICAgIGJ5dGVzUmVhZCAgICAgICAgICAgICAgPSBuZXcgaW50IFsxXTsKKyogIGludCAgICAgICAgICAgICAgICAgdG90YWxCeXRlc0RlY29tcHJlc3NlZCA9IDA7CisqICBpbnQgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuICAgICAgPSAwOworKgorKiAgZG8geworKiAgICAvLyBkbyB0aGUgZGVjb21wcmVzc2lvbgorKiAgICBjaGFyc1dyaXR0ZW4gPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGJ5dGVzLCB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkLCAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sIGJ5dGVzUmVhZCwKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCAwLCBCVUZTSVpFKTsKKyoKKyogICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIGN1cnJlbnQgc2V0IG9mIGNoYXJzCisqICAgIG91dC53cml0ZShjaGFyQnVmZmVyLCAwLCBjaGFyc1dyaXR0ZW4pOworKgorKiAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyBkZWNvbXByZXNzZWQKKyogICAgdG90YWxCeXRlc0RlY29tcHJlc3NlZCArPSBieXRlc1JlYWRbMF07CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJzIHdyaXR0ZW4KKyogICAgdG90YWxDaGFyc1dyaXR0ZW4gKz0gY2hhcnNXcml0dGVuOworKgorKiAgfSB3aGlsZSh0b3RhbEJ5dGVzRGVjb21wcmVzc2VkIDwgbGVuKTsKKyoKKyogIG15RGVjb21wcmVzc29yLnJlc2V0KCk7IC8vIHJldXNlIGRlY29tcHJlc3NvcgorKiA8L1BSRT4KKyoKKyogPFA+RGVjb21wcmVzc2lvbiBpcyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCBzZXQgZm9ydGggaW4gCisqIDxBIEhSRUY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyNiI+VW5pY29kZSBUZWNobmljYWwgCisqIFJlcG9ydCAjNjwvQT48L1A+CisqCisqIEBzZWUgVW5pY29kZUNvbXByZXNzb3IKKyoKKyogQGF1dGhvciBTdGVwaGVuIEYuIEJvb3RoCisqIEBzdGFibGUgSUNVIDIuNAorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVbmljb2RlRGVjb21wcmVzc29yIGltcGxlbWVudHMgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqIEFsaWFzIHRvIGN1cnJlbnQgZHluYW1pYyB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQ3VycmVudFdpbmRvdyAgID0gMDsKKworICAgIC8qKiBEeW5hbWljIGNvbXByZXNzaW9uIHdpbmRvdyBvZmZzZXRzICovCisgICAgcHJpdmF0ZSBpbnQgW10gICAgZk9mZnNldHMgICAgICAgICA9IG5ldyBpbnQgWyBOVU1XSU5ET1dTIF07CisKKyAgICAvKiogQ3VycmVudCBjb21wcmVzc2lvbiBtb2RlICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZk1vZGUgICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOworCisgICAgLyoqIFNpemUgb2Ygb3VyIGludGVybmFsIGJ1ZmZlciAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBCVUZTSVpFICAgPSAzOworCisgICAgLyoqIEludGVybmFsIGJ1ZmZlciBmb3Igc2F2aW5nIHN0YXRlICovCisgICAgcHJpdmF0ZSBieXRlIFtdICAgZkJ1ZmZlciAgICAgICAgICA9IG5ldyBieXRlIFtCVUZTSVpFXTsKKworICAgIC8qKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiBvdXIgaW50ZXJuYWwgYnVmZmVyICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZkJ1ZmZlckxlbmd0aCAgICA9IDA7CisgICAgCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVbmljb2RlRGVjb21wcmVzc29yLgorICAgICAqIFNldHMgYWxsIHdpbmRvd3MgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCisgICAgICogQHNlZSAjcmVzZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZURlY29tcHJlc3NvcigpCisgICAgeworICAgIHJlc2V0KCk7ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHRzCisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBieXRlIGFycmF5IHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIFN0cmluZyBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgY2hhcmFjdGVycy4KKyAgICAgKiBAc2VlICNkZWNvbXByZXNzKGJ5dGUgW10sIGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcHJlc3MoYnl0ZSBbXSBidWZmZXIpCisgICAgeworICAgIGNoYXIgW10gYnVmID0gZGVjb21wcmVzcyhidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBieXRlIHJ1biB0byBkZWNvbXByZXNzLgorICAgICAqIEBwYXJhbSBsaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGNoYXJhY3RlciBhcnJheSBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgYnl0ZXMuCisgICAgICogQHNlZSAjZGVjb21wcmVzcyhieXRlIFtdKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBbXSBkZWNvbXByZXNzKGJ5dGUgW10gYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KQorICAgIHsKKyAgICBVbmljb2RlRGVjb21wcmVzc29yIGNvbXAgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworCisgICAgLy8gdXNlIGEgYnVmZmVyIHdlIGtub3cgd2lsbCBuZXZlciBvdmVyZmxvdworICAgIC8vIGluIHRoZSB3b3JzdCBjYXNlLCBlYWNoIGJ5dGUgd2lsbCBkZWNvbXByZXNzCisgICAgLy8gdG8gYSBzdXJyb2dhdGUgcGFpciAoYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFycykKKyAgICBpbnQgbGVuID0gTWF0aC5tYXgoMiwgMiAqIChsaW1pdCAtIHN0YXJ0KSk7CisgICAgY2hhciBbXSB0ZW1wID0gbmV3IGNoYXIgW2xlbl07CisKKyAgICBpbnQgY2hhckNvdW50ID0gY29tcC5kZWNvbXByZXNzKGJ1ZmZlciwgc3RhcnQsIGxpbWl0LCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgdGVtcCwgMCwgbGVuKTsKKworICAgIGNoYXIgW10gcmVzdWx0ID0gbmV3IGNoYXIgW2NoYXJDb3VudF07CisgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCByZXN1bHQsIDAsIGNoYXJDb3VudCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGVpdGhlciBjb21wbGV0ZWx5IGZpbGwgdGhlIG91dHB1dCBidWZmZXIsIAorICAgICAqIG9yIGNvbnN1bWUgdGhlIGVudGlyZSBpbnB1dC4gIAorICAgICAqCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXIgVGhlIGJ5dGUgYnVmZmVyIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJTdGFydCBUaGUgc3RhcnQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJMaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVzUmVhZCBBIG9uZS1lbGVtZW50IGFycmF5LiAgSWYgbm90IG51bGwsIG9uIHJldHVybgorICAgICAqIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIGJ5dGVCdWZmZXIuCisgICAgICogQHBhcmFtIGNoYXJCdWZmZXIgQSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgZGVjb21wcmVzc2VkIGRhdGEuIAorICAgICAqIFRoaXMgYnVmZmVyIG11c3QgYmUgYXQgbWluaW11bSB0d28gY2hhcmFjdGVycyBpbiBzaXplLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyU3RhcnQgVGhlIHN0YXJ0aW5nIG9mZnNldCB0byB3aGljaCB0byB3cml0ZSAKKyAgICAgKiBkZWNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlckxpbWl0IFRoZSBsaW1pdGluZyBvZmZzZXQgZm9yIHdyaXRpbmcgCisgICAgICogZGVjb21wcmVzc2VkIGRhdGEuCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycyB3cml0dGVuIHRvIGNoYXJCdWZmZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBkZWNvbXByZXNzKGJ5dGUgW10gICAgYnl0ZUJ1ZmZlciwKKyAgICAgICAgICAgICAgaW50ICAgICAgICBieXRlQnVmZmVyU3RhcnQsCisgICAgICAgICAgICAgIGludCAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0LAorICAgICAgICAgICAgICBpbnQgW10gICAgIGJ5dGVzUmVhZCwKKyAgICAgICAgICAgICAgY2hhciBbXSAgICBjaGFyQnVmZmVyLAorICAgICAgICAgICAgICBpbnQgICAgICAgIGNoYXJCdWZmZXJTdGFydCwKKyAgICAgICAgICAgICAgaW50ICAgICAgICBjaGFyQnVmZmVyTGltaXQpCisgICAgeworICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgYnl0ZSBidWZmZXIKKyAgICBpbnQgYnl0ZVBvcyAgICAgID0gYnl0ZUJ1ZmZlclN0YXJ0OworICAgIAorICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgY2hhciBidWZmZXIKKyAgICBpbnQgdWNQb3MgICAgICAgID0gY2hhckJ1ZmZlclN0YXJ0OworICAgICAgICAKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgYnl0ZSBmcm9tIHRoZSBzb3VyY2UgYnVmZmVyCisgICAgaW50IGFCeXRlICAgICAgICA9IDB4MDA7CisKKworICAgIC8vIGNoYXJCdWZmZXIgbXVzdCBiZSBhdCBsZWFzdCAyIGNoYXJzIGluIHNpemUKKyAgICBpZihjaGFyQnVmZmVyLmxlbmd0aCA8IDIgfHwgKGNoYXJCdWZmZXJMaW1pdCAtIGNoYXJCdWZmZXJTdGFydCkgPCAyKQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyQnVmZmVyLmxlbmd0aCA8IDIiKTsKKyAgICAKKyAgICAvLyBpZiBvdXIgaW50ZXJuYWwgYnVmZmVyIGlzbid0IGVtcHR5LCBmbHVzaCBpdHMgY29udGVudHMKKyAgICAvLyB0byB0aGUgb3V0cHV0IGJ1ZmZlciBiZWZvcmUgZG9pbmcgYW55IG1vcmUgZGVjb21wcmVzc2lvbgorICAgIGlmKGZCdWZmZXJMZW5ndGggPiAwKSB7CisKKyAgICAgICAgaW50IG5ld0J5dGVzID0gMDsKKworICAgICAgICAvLyBmaWxsIHRoZSBidWZmZXIgY29tcGxldGVseSwgdG8gZ3VhcmFudGVlIG9uZSBmdWxsIGNoYXJhY3RlcgorICAgICAgICBpZihmQnVmZmVyTGVuZ3RoICE9IEJVRlNJWkUpIHsKKyAgICAgICAgbmV3Qnl0ZXMgPSBmQnVmZmVyLmxlbmd0aCAtIGZCdWZmZXJMZW5ndGg7CisKKyAgICAgICAgLy8gdmVyaWZ5IHRoZXJlIGFyZSBuZXdCeXRlcyBieXRlcyBpbiBieXRlQnVmZmVyCisgICAgICAgIGlmKGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVCdWZmZXJTdGFydCA8IG5ld0J5dGVzKQorICAgICAgICAgICAgbmV3Qnl0ZXMgPSBieXRlQnVmZmVyTGltaXQgLSBieXRlQnVmZmVyU3RhcnQ7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlQnVmZmVyU3RhcnQsIAorICAgICAgICAgICAgICAgICBmQnVmZmVyLCBmQnVmZmVyTGVuZ3RoLCBuZXdCeXRlcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNldCBidWZmZXIgbGVuZ3RoIHRvIDAgYmVmb3JlIHJlY3Vyc2l2ZSBjYWxsCisgICAgICAgIGZCdWZmZXJMZW5ndGggPSAwOworCisgICAgICAgIC8vIGNhbGwgc2VsZiByZWN1cnNpdmVseSB0byBkZWNvbXByZXNzIHRoZSBidWZmZXIKKyAgICAgICAgaW50IGNvdW50ID0gZGVjb21wcmVzcyhmQnVmZmVyLCAwLCBmQnVmZmVyLmxlbmd0aCwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCBjaGFyQnVmZmVyU3RhcnQsIAorICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXJMaW1pdCk7CisKKyAgICAgICAgLy8gdXBkYXRlIHRoZSBwb3NpdGlvbnMgaW50byB0aGUgYXJyYXlzCisgICAgICAgIHVjUG9zICs9IGNvdW50OworICAgICAgICBieXRlUG9zICs9IG5ld0J5dGVzOworICAgIH0KKworICAgICAgICAvLyB0aGUgbWFpbiBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICBtYWluTG9vcDoKKyAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgIHN3aXRjaChmTW9kZSkgeyAgCisgICAgICAgIGNhc2UgU0lOR0xFQllURU1PREU6CisgICAgICAgIC8vIHNpbmdsZS1ieXRlIG1vZGUgZGVjb21wcmVzc2lvbiBsb29wCisgICAgICAgIHNpbmdsZUJ5dGVNb2RlTG9vcDoKKyAgICAgICAgd2hpbGUoYnl0ZVBvcyA8IGJ5dGVCdWZmZXJMaW1pdCAmJiB1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCkgeworICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgLy8gQWxsIGJ5dGVzIGZyb20gMHg4MCB0aHJvdWdoIDB4RkYgYXJlIHJlbWFwcGVkCisgICAgICAgICAgICAvLyB0byBjaGFycyBvciBzdXJyb2dhdGUgcGFpcnMgYWNjb3JkaW5nIHRvIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudGx5IGFjdGl2ZSB3aW5kb3cKKyAgICAgICAgY2FzZSAweDgwOiBjYXNlIDB4ODE6IGNhc2UgMHg4MjogY2FzZSAweDgzOiBjYXNlIDB4ODQ6IAorICAgICAgICBjYXNlIDB4ODU6IGNhc2UgMHg4NjogY2FzZSAweDg3OiBjYXNlIDB4ODg6IGNhc2UgMHg4OToKKyAgICAgICAgY2FzZSAweDhBOiBjYXNlIDB4OEI6IGNhc2UgMHg4QzogY2FzZSAweDhEOiBjYXNlIDB4OEU6CisgICAgICAgIGNhc2UgMHg4RjogY2FzZSAweDkwOiBjYXNlIDB4OTE6IGNhc2UgMHg5MjogY2FzZSAweDkzOgorICAgICAgICBjYXNlIDB4OTQ6IGNhc2UgMHg5NTogY2FzZSAweDk2OiBjYXNlIDB4OTc6IGNhc2UgMHg5ODoKKyAgICAgICAgY2FzZSAweDk5OiBjYXNlIDB4OUE6IGNhc2UgMHg5QjogY2FzZSAweDlDOiBjYXNlIDB4OUQ6CisgICAgICAgIGNhc2UgMHg5RTogY2FzZSAweDlGOiBjYXNlIDB4QTA6IGNhc2UgMHhBMTogY2FzZSAweEEyOgorICAgICAgICBjYXNlIDB4QTM6IGNhc2UgMHhBNDogY2FzZSAweEE1OiBjYXNlIDB4QTY6IGNhc2UgMHhBNzoKKyAgICAgICAgY2FzZSAweEE4OiBjYXNlIDB4QTk6IGNhc2UgMHhBQTogY2FzZSAweEFCOiBjYXNlIDB4QUM6CisgICAgICAgIGNhc2UgMHhBRDogY2FzZSAweEFFOiBjYXNlIDB4QUY6IGNhc2UgMHhCMDogY2FzZSAweEIxOgorICAgICAgICBjYXNlIDB4QjI6IGNhc2UgMHhCMzogY2FzZSAweEI0OiBjYXNlIDB4QjU6IGNhc2UgMHhCNjoKKyAgICAgICAgY2FzZSAweEI3OiBjYXNlIDB4Qjg6IGNhc2UgMHhCOTogY2FzZSAweEJBOiBjYXNlIDB4QkI6CisgICAgICAgIGNhc2UgMHhCQzogY2FzZSAweEJEOiBjYXNlIDB4QkU6IGNhc2UgMHhCRjogY2FzZSAweEMwOgorICAgICAgICBjYXNlIDB4QzE6IGNhc2UgMHhDMjogY2FzZSAweEMzOiBjYXNlIDB4QzQ6IGNhc2UgMHhDNToKKyAgICAgICAgY2FzZSAweEM2OiBjYXNlIDB4Qzc6IGNhc2UgMHhDODogY2FzZSAweEM5OiBjYXNlIDB4Q0E6CisgICAgICAgIGNhc2UgMHhDQjogY2FzZSAweENDOiBjYXNlIDB4Q0Q6IGNhc2UgMHhDRTogY2FzZSAweENGOgorICAgICAgICBjYXNlIDB4RDA6IGNhc2UgMHhEMTogY2FzZSAweEQyOiBjYXNlIDB4RDM6IGNhc2UgMHhENDoKKyAgICAgICAgY2FzZSAweEQ1OiBjYXNlIDB4RDY6IGNhc2UgMHhENzogY2FzZSAweEQ4OiBjYXNlIDB4RDk6CisgICAgICAgIGNhc2UgMHhEQTogY2FzZSAweERCOiBjYXNlIDB4REM6IGNhc2UgMHhERDogY2FzZSAweERFOgorICAgICAgICBjYXNlIDB4REY6IGNhc2UgMHhFMDogY2FzZSAweEUxOiBjYXNlIDB4RTI6IGNhc2UgMHhFMzoKKyAgICAgICAgY2FzZSAweEU0OiBjYXNlIDB4RTU6IGNhc2UgMHhFNjogY2FzZSAweEU3OiBjYXNlIDB4RTg6CisgICAgICAgIGNhc2UgMHhFOTogY2FzZSAweEVBOiBjYXNlIDB4RUI6IGNhc2UgMHhFQzogY2FzZSAweEVEOgorICAgICAgICBjYXNlIDB4RUU6IGNhc2UgMHhFRjogY2FzZSAweEYwOiBjYXNlIDB4RjE6IGNhc2UgMHhGMjoKKyAgICAgICAgY2FzZSAweEYzOiBjYXNlIDB4RjQ6IGNhc2UgMHhGNTogY2FzZSAweEY2OiBjYXNlIDB4Rjc6CisgICAgICAgIGNhc2UgMHhGODogY2FzZSAweEY5OiBjYXNlIDB4RkE6IGNhc2UgMHhGQjogY2FzZSAweEZDOgorICAgICAgICBjYXNlIDB4RkQ6IGNhc2UgMHhGRTogY2FzZSAweEZGOiAKKyAgICAgICAgICAgIC8vIEZvciBvZmZzZXRzIDw9IDB4RkZGRiwgY29udmVydCB0byBhIHNpbmdsZSBjaGFyCisgICAgICAgICAgICAvLyBieSBhZGRpbmcgdGhlIHdpbmRvdydzIG9mZnNldCBhbmQgc3VidHJhY3RpbmcKKyAgICAgICAgICAgIC8vIHRoZSBnZW5lcmljIGNvbXByZXNzaW9uIG9mZnNldAorICAgICAgICAgICAgaWYoZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gPD0gMHhGRkZGKSB7CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorICAgICAgICAgICAgICAgIChhQnl0ZSArIGZPZmZzZXRzWyBmQ3VycmVudFdpbmRvdyBdIAorICAgICAgICAgICAgICAgICAtIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEZvciBvZmZzZXRzID4gMHgxMDAwMCwgY29udmVydCB0byBhIHN1cnJvZ2F0ZSBwYWlyIGJ5IAorICAgICAgICAgICAgLy8gbm9ybUJhc2UgPSB3aW5kb3cncyBvZmZzZXQgLSAweDEwMDAwCisgICAgICAgICAgICAvLyBoaWdoIHN1cnIuID0gMHhEODAwICsgKG5vcm1CYXNlID4+IDEwKQorICAgICAgICAgICAgLy8gbG93ICBzdXJyLiA9IDB4REMwMCArIChub3JtQmFzZSAmIDB4M0ZGKSArIChieXRlICYgMHg3RikKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlCisgICAgICAgICAgICAvLyBib3RoIGNoYXJhY3RlcnMgCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKHVjUG9zICsgMSkgPj0gY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbm9ybWFsaXplZEJhc2UgPSBmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSAKKyAgICAgICAgICAgICAgICAtIDB4MTAwMDA7CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorICAgICAgICAgICAgICAgICgweEQ4MDAgKyAobm9ybWFsaXplZEJhc2UgPj4gMTApKTsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAgICAgKDB4REMwMCArIChub3JtYWxpemVkQmFzZSAmIDB4M0ZGKSsoYUJ5dGUgJiAweDdGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gYnl0ZXMgZnJvbSAweDIwIHRocm91Z2ggMHg3RiBhcmUgdHJlYXRlZCBhcyBBU0NJSSBhbmQKKyAgICAgICAgICAgIC8vIGFyZSByZW1hcHBlZCB0byBjaGFycyBieSBwYWRkaW5nIHRoZSBoaWdoIGJ5dGUKKyAgICAgICAgICAgIC8vICh0aGlzIGlzIHRoZSBzYW1lIGFzIHF1b3RpbmcgZnJvbSBzdGF0aWMgd2luZG93IDApCisgICAgICAgICAgICAvLyBOVUwgKDB4MDApLCBIVCAoMHgwOSksIENSICgweDBBKSwgTEYgKDB4MEQpIAorICAgICAgICAgICAgLy8gYXJlIHRyZWF0ZWQgYXMgQVNDSUkgYXMgd2VsbAorICAgICAgICBjYXNlIDB4MDA6IGNhc2UgMHgwOTogY2FzZSAweDBBOiBjYXNlIDB4MEQ6CisgICAgICAgIGNhc2UgMHgyMDogY2FzZSAweDIxOiBjYXNlIDB4MjI6IGNhc2UgMHgyMzogY2FzZSAweDI0OgorICAgICAgICBjYXNlIDB4MjU6IGNhc2UgMHgyNjogY2FzZSAweDI3OiBjYXNlIDB4Mjg6IGNhc2UgMHgyOToKKyAgICAgICAgY2FzZSAweDJBOiBjYXNlIDB4MkI6IGNhc2UgMHgyQzogY2FzZSAweDJEOiBjYXNlIDB4MkU6CisgICAgICAgIGNhc2UgMHgyRjogY2FzZSAweDMwOiBjYXNlIDB4MzE6IGNhc2UgMHgzMjogY2FzZSAweDMzOgorICAgICAgICBjYXNlIDB4MzQ6IGNhc2UgMHgzNTogY2FzZSAweDM2OiBjYXNlIDB4Mzc6IGNhc2UgMHgzODoKKyAgICAgICAgY2FzZSAweDM5OiBjYXNlIDB4M0E6IGNhc2UgMHgzQjogY2FzZSAweDNDOiBjYXNlIDB4M0Q6CisgICAgICAgIGNhc2UgMHgzRTogY2FzZSAweDNGOiBjYXNlIDB4NDA6IGNhc2UgMHg0MTogY2FzZSAweDQyOgorICAgICAgICBjYXNlIDB4NDM6IGNhc2UgMHg0NDogY2FzZSAweDQ1OiBjYXNlIDB4NDY6IGNhc2UgMHg0NzoKKyAgICAgICAgY2FzZSAweDQ4OiBjYXNlIDB4NDk6IGNhc2UgMHg0QTogY2FzZSAweDRCOiBjYXNlIDB4NEM6CisgICAgICAgIGNhc2UgMHg0RDogY2FzZSAweDRFOiBjYXNlIDB4NEY6IGNhc2UgMHg1MDogY2FzZSAweDUxOgorICAgICAgICBjYXNlIDB4NTI6IGNhc2UgMHg1MzogY2FzZSAweDU0OiBjYXNlIDB4NTU6IGNhc2UgMHg1NjoKKyAgICAgICAgY2FzZSAweDU3OiBjYXNlIDB4NTg6IGNhc2UgMHg1OTogY2FzZSAweDVBOiBjYXNlIDB4NUI6CisgICAgICAgIGNhc2UgMHg1QzogY2FzZSAweDVEOiBjYXNlIDB4NUU6IGNhc2UgMHg1RjogY2FzZSAweDYwOgorICAgICAgICBjYXNlIDB4NjE6IGNhc2UgMHg2MjogY2FzZSAweDYzOiBjYXNlIDB4NjQ6IGNhc2UgMHg2NToKKyAgICAgICAgY2FzZSAweDY2OiBjYXNlIDB4Njc6IGNhc2UgMHg2ODogY2FzZSAweDY5OiBjYXNlIDB4NkE6CisgICAgICAgIGNhc2UgMHg2QjogY2FzZSAweDZDOiBjYXNlIDB4NkQ6IGNhc2UgMHg2RTogY2FzZSAweDZGOgorICAgICAgICBjYXNlIDB4NzA6IGNhc2UgMHg3MTogY2FzZSAweDcyOiBjYXNlIDB4NzM6IGNhc2UgMHg3NDoKKyAgICAgICAgY2FzZSAweDc1OiBjYXNlIDB4NzY6IGNhc2UgMHg3NzogY2FzZSAweDc4OiBjYXNlIDB4Nzk6CisgICAgICAgIGNhc2UgMHg3QTogY2FzZSAweDdCOiBjYXNlIDB4N0M6IGNhc2UgMHg3RDogY2FzZSAweDdFOgorICAgICAgICBjYXNlIDB4N0Y6IAorICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSBhQnl0ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBxdW90ZSB1bmljb2RlCisgICAgICAgIGNhc2UgU1FVT1RFVToKKyAgICAgICAgICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYUJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK107CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorICAgICAgICBjYXNlIFNDSEFOR0VVOgorICAgICAgICAgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgcXVvdGUgdGFncworICAgICAgICBjYXNlIFNRVU9URTA6IGNhc2UgU1FVT1RFMTogY2FzZSBTUVVPVEUyOiBjYXNlIFNRVU9URTM6CisgICAgICAgIGNhc2UgU1FVT1RFNDogY2FzZSBTUVVPVEU1OiBjYXNlIFNRVU9URTY6IGNhc2UgU1FVT1RFNzoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGVyZSBpcyBhIGJ5dGUgZm9sbG93aW5nIHRoZSB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgdGhlIGJ5dGUgaXMgaW4gdGhlIHJhbmdlIDB4MDAgLSAweDdGLCB1c2UKKyAgICAgICAgICAgIC8vIHN0YXRpYyB3aW5kb3cgbiBvdGhlcndpc2UsIHVzZSBkeW5hbWljIHdpbmRvdyBuCisgICAgICAgICAgICBpbnQgZEJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGOworICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKyAgICAgICAgICAgIChkQnl0ZSsgKGRCeXRlID49IDB4MDAgJiYgZEJ5dGUgPCAweDgwIAorICAgICAgICAgICAgICAgICA/IHNPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisgICAgICAgICAgICAgICAgIDogKGZPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisgICAgICAgICAgICAgICAgICAgIC0gQ09NUFJFU1NJT05PRkZTRVQpKSk7IAorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgY2hhbmdlIHRhZ3MKKyAgICAgICAgY2FzZSBTQ0hBTkdFMDogY2FzZSBTQ0hBTkdFMTogY2FzZSBTQ0hBTkdFMjogY2FzZSBTQ0hBTkdFMzoKKyAgICAgICAgY2FzZSBTQ0hBTkdFNDogY2FzZSBTQ0hBTkdFNTogY2FzZSBTQ0hBTkdFNjogY2FzZSBTQ0hBTkdFNzoKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBTQ0hBTkdFMDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgIGNhc2UgU0RFRklORTA6IGNhc2UgU0RFRklORTE6IGNhc2UgU0RFRklORTI6IGNhc2UgU0RFRklORTM6CisgICAgICAgIGNhc2UgU0RFRklORTQ6IGNhc2UgU0RFRklORTU6IGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0aGUgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFNERUZJTkUwOworICAgICAgICAgICAgZk9mZnNldHNbZkN1cnJlbnRXaW5kb3ddID0gCisgICAgICAgICAgICBzT2Zmc2V0VGFibGVbYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRl07CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKyAgICAgICAgY2FzZSBTREVGSU5FWDoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisgICAgICAgICAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisgICAgICAgICAgICAoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisgICAgICAgICAgICAgICAgIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJlc2VydmVkLCBzaG91bGRuJ3QgaGFwcGVuCisgICAgICAgIGNhc2UgU1JFU0VSVkVEOgorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgfSAvLyBlbmQgc3dpdGNoCisgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgVU5JQ09ERU1PREU6CisgICAgICAgIC8vIHVuaWNvZGUgbW9kZSBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgdW5pY29kZU1vZGVMb29wOgorICAgICAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKyAgICAgICAgc3dpdGNoKGFCeXRlKSB7CisgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisgICAgICAgIGNhc2UgVURFRklORTA6IGNhc2UgVURFRklORTE6IGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisgICAgICAgIGNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IGNhc2UgVURFRklORTY6IGNhc2UgVURFRklORTc6CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCApIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBVREVGSU5FMDsKKyAgICAgICAgICAgIGZPZmZzZXRzW2ZDdXJyZW50V2luZG93XSA9IAorICAgICAgICAgICAgc09mZnNldFRhYmxlW2J5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkZdOworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBkZWZpbmUgZXh0ZW5kZWQgdGFnCisgICAgICAgIGNhc2UgVURFRklORVg6CisgICAgICAgICAgICAvLyB2ZXJpZnkgd2UgaGF2ZSB0d28gYnl0ZXMgZm9sbG93aW5nIHRhZworICAgICAgICAgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisgICAgICAgICAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisgICAgICAgICAgICAoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisgICAgICAgICAgICAgICAgIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgLy9icmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBjaGFuZ2UgdGFncworICAgICAgICBjYXNlIFVDSEFOR0UwOiBjYXNlIFVDSEFOR0UxOiBjYXNlIFVDSEFOR0UyOiBjYXNlIFVDSEFOR0UzOgorICAgICAgICBjYXNlIFVDSEFOR0U0OiBjYXNlIFVDSEFOR0U1OiBjYXNlIFVDSEFOR0U2OiBjYXNlIFVDSEFOR0U3OgorICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFVDSEFOR0UwOworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIC8vYnJlYWs7CisKKyAgICAgICAgICAgIC8vIHF1b3RlIHVuaWNvZGUKKyAgICAgICAgY2FzZSBVUVVPVEVVOgorICAgICAgICAgICAgLy8gdmVyaWZ5IHdlIGhhdmUgdHdvIGJ5dGVzIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCAgLSAxKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXTsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gdmVyaWZ5IHRoZXJlIGlzIGEgYnl0ZSBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICB9IC8vIGVuZCBzd2l0Y2goIGZNb2RlICkKKyAgICB9IC8vIGVuZCB3aGlsZQorCisgICAgICAgIC8vIGZpbGwgaW4gb3V0cHV0IHBhcmFtZXRlcgorICAgIGlmKGJ5dGVzUmVhZCAhPSBudWxsKQorICAgICAgICBieXRlc1JlYWQgWzBdID0gKGJ5dGVQb3MgLSBieXRlQnVmZmVyU3RhcnQpOworCisgICAgICAgIC8vIHJldHVybiAjIG9mIGNoYXJzIHdyaXR0ZW4KKyAgICByZXR1cm4gKHVjUG9zIC0gY2hhckJ1ZmZlclN0YXJ0KTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogUmVzZXQgdGhlIGRlY29tcHJlc3NvciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgZHluYW1pYyB3aW5kb3dzCisgICAgICAgIGZPZmZzZXRzWzBdID0gMHgwMDgwOyAgICAvLyBMYXRpbi0xCisgICAgICAgIGZPZmZzZXRzWzFdID0gMHgwMEMwOyAgICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQgKyBMYXRpbiBFeHRlbmRlZC1BCisgICAgICAgIGZPZmZzZXRzWzJdID0gMHgwNDAwOyAgICAvLyBDeXJpbGxpYworICAgICAgICBmT2Zmc2V0c1szXSA9IDB4MDYwMDsgICAgLy8gQXJhYmljCisgICAgICAgIGZPZmZzZXRzWzRdID0gMHgwOTAwOyAgICAvLyBEZXZhbmFnYXJpCisgICAgICAgIGZPZmZzZXRzWzVdID0gMHgzMDQwOyAgICAvLyBIaXJhZ2FuYQorICAgICAgICBmT2Zmc2V0c1s2XSA9IDB4MzBBMDsgICAgLy8gS2F0YWthbmEKKyAgICAgICAgZk9mZnNldHNbN10gPSAweEZGMDA7ICAgIC8vIEZ1bGx3aWR0aCBBU0NJSQorCisKKyAgICAgICAgZkN1cnJlbnRXaW5kb3cgID0gMDsgICAgICAgICAgICAgICAgLy8gTWFrZSBjdXJyZW50IHdpbmRvdyBMYXRpbi0xCisgICAgICAgIGZNb2RlICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOyAgIC8vIEFsd2F5cyBzdGFydCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgZkJ1ZmZlckxlbmd0aCAgID0gMDsgICAgICAgICAgICAgICAgLy8gRW1wdHkgYnVmZmVyCisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzUyYjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZUZpbHRlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBzZWxlY3RpbmcgYQorICogc3Vic2V0IG9mIHRoZSBmdWxsIHJhbmdlIChVKzAwMDAgdG8gVStGRkZGKSBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisgKiBDdXJyZW50bHksIGZpbHRlcnMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBjbGFzc2VzIGxpa2Uge0BsaW5rCisgKiBUcmFuc2xpdGVyYXRvcn0gdG8gb25seSBwcm9jZXNzIHNlbGVjdGVkIGNoYXJhY3RlcnMgdGhyb3VnaCBhCisgKiB0cmFuc2Zvcm1hdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVW5pY29kZUZpbHRlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgPHR0PnRydWU8L3R0PiBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgc2VsZWN0ZWQKKyAgICAgKiBzdWJzZXQuICBJbiBvdGhlciB3b3JkcywgaWYgYSBjaGFyYWN0ZXIgaXMgPGI+dG8gYmUKKyAgICAgKiBmaWx0ZXJlZDwvYj4sIHRoZW4gPHR0PmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zCisgICAgICogPGI+PHR0PmZhbHNlPC90dD48L2I+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zKGludCBjKTsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXI6Om1hdGNoZXMoKSBmb3IgVW5pY29kZQorICAgICAqIGZpbHRlcnMuICBNYXRjaGVzIGEgc2luZ2xlIDE2LWJpdCBjb2RlIHVuaXQgYXQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaWYgKG9mZnNldFswXSA8IGxpbWl0ICYmCisgICAgICAgICAgICBjb250YWlucyhjID0gdGV4dC5jaGFyMzJBdChvZmZzZXRbMF0pKSkgeworICAgICAgICAgICAgb2Zmc2V0WzBdICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICB9CisgICAgICAgIGlmIChvZmZzZXRbMF0gPiBsaW1pdCAmJgorICAgICAgICAgICAgY29udGFpbnMoYyA9IHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkpIHsKKyAgICAgICAgICAgIC8vIEJhY2t1cCBvZmZzZXQgYnkgMSwgdW5sZXNzIHRoZSBwcmVjZWRpbmcgY2hhcmFjdGVyIGlzIGEKKyAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBwYWlyIC0tIHRoZW4gYmFja3VwIGJ5IDIgKGtlZXAgb2Zmc2V0IHBvaW50aW5nIGF0CisgICAgICAgICAgICAvLyB0aGUgbGVhZCBzdXJyb2dhdGUpLgorICAgICAgICAgICAgLS1vZmZzZXRbMF07CisgICAgICAgICAgICBpZiAob2Zmc2V0WzBdID49IDApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRbMF0gLT0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIG9mZnNldFswXSA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAoVGhpcyBzaG91bGQgbm90IGJlIGhlcmU7IGl0IGlzIGRlY2xhcmVkIHRvIG1ha2UgQ2hlY2tUYWdzCisgICAgICogaGFwcHkuICBKYXZhIGluc2VydHMgYSBzeW50aGV0aWMgY29uc3RydWN0b3IgYW5kIENoZWNrVGFncworICAgICAqIGNhbid0IHRlbGwgdGhhdCBpdCdzIHN5bnRoZXRpYy4pCisgICAgICoKKyAgICAgKiBUT0RPIFJlbW92ZSB0aGlzIHdoZW4gdGhlIEpESyBwcm9wZXJ0eSBpbXBsZW1lbnRzIE1lbWJlckRvYy5pc1N5bnRoZXRpYworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBVbmljb2RlRmlsdGVyKCkge30KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4MjM1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPlVuaWNvZGVNYXRjaGVyPC9jb2RlPiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIG9iamVjdHMgdGhhdCBjYW4KKyAqIG1hdGNoIGEgcmFuZ2Ugb2YgY2hhcmFjdGVycyBpbiBhIFJlcGxhY2VhYmxlIHN0cmluZy4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgaW50ZXJmYWNlIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHJldHVybmVkIGJ5IDxjb2RlPm1hdGNoZXMoKTwvY29kZT4gaW5kaWNhdGluZyBhCisgICAgICogbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhpcyBtYXRjaGVyLiAgVGhlIHRleHQgY29udGFpbnMKKyAgICAgKiBhIGNoYXJhY3RlciB3aGljaCBkb2VzIG5vdCBtYXRjaCwgb3IgdGhlIHRleHQgZG9lcyBub3QgY29udGFpbgorICAgICAqIGFsbCBkZXNpcmVkIGNoYXJhY3RlcnMgZm9yIGEgbm9uLWluY3JlbWVudGFsIG1hdGNoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVfTUlTTUFUQ0ggPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBwYXJ0aWFsIG1hdGNoIGJldHdlZW4gdGhlIHRleHQgYW5kIHRoaXMgbWF0Y2hlci4gIFRoaXMgdmFsdWUgaXMKKyAgICAgKiBvbmx5IHJldHVybmVkIGZvciBpbmNyZW1lbnRhbCBtYXRjaCBvcGVyYXRpb25zLiAgQWxsIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgdGV4dCBtYXRjaCwgYnV0IG1vcmUgY2hhcmFjdGVycyBhcmUgcmVxdWlyZWQgZm9yIGEKKyAgICAgKiBjb21wbGV0ZSBtYXRjaC4gIEFsdGVybmF0aXZlbHksIGZvciB2YXJpYWJsZS1sZW5ndGggbWF0Y2hlcnMsCisgICAgICogYWxsIGNoYXJhY3RlcnMgb2YgdGhlIHRleHQgbWF0Y2gsIGFuZCBpZiBtb3JlIGNoYXJhY3RlcnMgd2VyZQorICAgICAqIHN1cHBsaWVkIGF0IGxpbWl0LCB0aGV5IG1pZ2h0IGFsc28gbWF0Y2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9QQVJUSUFMX01BVENIID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHJldHVybmVkIGJ5IDxjb2RlPm1hdGNoZXMoKTwvY29kZT4gaW5kaWNhdGluZyBhCisgICAgICogY29tcGxldGUgbWF0Y2ggYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhpcyBtYXRjaGVyLiAgRm9yIGFuCisgICAgICogaW5jcmVtZW50YWwgdmFyaWFibGUtbGVuZ3RoIG1hdGNoLCB0aGlzIHZhbHVlIGlzIHJldHVybmVkIGlmCisgICAgICogdGhlIGdpdmVuIHRleHQgbWF0Y2hlcywgYW5kIGl0IGlzIGtub3duIHRoYXQgYWRkaXRpb25hbAorICAgICAqIGNoYXJhY3RlcnMgd291bGQgbm90IGFsdGVyIHRoZSBleHRlbnQgb2YgdGhlIG1hdGNoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVfTUFUQ0ggPSAyOworCisgICAgLyoqCisgICAgICogVGhlIGNoYXJhY3RlciBhdCBpbmRleCBpLCB3aGVyZSBpIDwgY29udGV4dFN0YXJ0IHx8IGkgPj0gY29udGV4dExpbWl0LAorICAgICAqIGlzIEVUSEVSLiAgVGhpcyBhbGxvd3MgZXhwbGljaXQgbWF0Y2hpbmcgYnkgcnVsZXMgYW5kIFVuaWNvZGVTZXRzCisgICAgICogb2YgdGV4dCBvdXRzaWRlIHRoZSBjb250ZXh0LiAgSW4gdHJhZGl0aW9uYWwgdGVybXMsIHRoaXMgYWxsb3dzIGFuY2hvcmluZworICAgICAqIGF0IHRoZSBzdGFydCBhbmQvb3IgZW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjaGFyIEVUSEVSID0gJ1x1RkZGRic7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBVTWF0Y2hEZWdyZWUgdmFsdWUgaW5kaWNhdGluZyB0aGUgZGVncmVlIG9mIG1hdGNoIGZvcgorICAgICAqIHRoZSBnaXZlbiB0ZXh0IGF0IHRoZSBnaXZlbiBvZmZzZXQuICBaZXJvLCBvbmUsIG9yIG1vcmUKKyAgICAgKiBjaGFyYWN0ZXJzIG1heSBiZSBtYXRjaGVkLgorICAgICAqCisgICAgICogTWF0Y2hpbmcgaW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIGlzIGluZGljYXRlZCBieSBsaW1pdCA+CisgICAgICogb2Zmc2V0LiAgQ2hhcmFjdGVycyBmcm9tIG9mZnNldCBmb3J3YXJkcyB0byBsaW1pdC0xIHdpbGwgYmUKKyAgICAgKiBjb25zaWRlcmVkIGZvciBtYXRjaGluZy4KKyAgICAgKgorICAgICAqIE1hdGNoaW5nIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBpcyBpbmRpY2F0ZWQgYnkgbGltaXQgPAorICAgICAqIG9mZnNldC4gIENoYXJhY3RlcnMgZnJvbSBvZmZzZXQgYmFja3dhcmRzIHRvIGxpbWl0KzEgd2lsbCBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nLgorICAgICAqCisgICAgICogSWYgbGltaXQgPT0gb2Zmc2V0IHRoZW4gdGhlIG9ubHkgbWF0Y2ggcG9zc2libGUgaXMgYSB6ZXJvCisgICAgICogY2hhcmFjdGVyIG1hdGNoICh3aGljaCBzdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgaWYgZGVzaXJlZCkuCisgICAgICoKKyAgICAgKiBJZiBVX01BVENIIGlzIHJldHVybmVkLCB0aGVuIGFzIGEgc2lkZSBlZmZlY3QsIGFkdmFuY2UgdGhlCisgICAgICogb2Zmc2V0IHBhcmFtZXRlciB0byB0aGUgbGltaXQgb2YgdGhlIG1hdGNoZWQgc3Vic3RyaW5nLiAgSW4gdGhlCisgICAgICogZm9yd2FyZCBkaXJlY3Rpb24sIHRoaXMgd2lsbCBiZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgbWF0Y2hlZAorICAgICAqIGNoYXJhY3RlciBwbHVzIG9uZS4gIEluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiwgdGhpcyB3aWxsIGJlIHRoZQorICAgICAqIGluZGV4IG9mIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyIG1pbnVzIG9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9uIGlucHV0LCB0aGUgaW5kZXggaW50byB0ZXh0IGF0IHdoaWNoIHRvIGJlZ2luCisgICAgICogbWF0Y2hpbmcuICBPbiBvdXRwdXQsIHRoZSBsaW1pdCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LiAgVGhlCisgICAgICogbnVtYmVyIG9mIG1hdGNoZWQgY2hhcmFjdGVycyBpcyB0aGUgb3V0cHV0IHZhbHVlIG9mIG9mZnNldAorICAgICAqIG1pbnVzIHRoZSBpbnB1dCB2YWx1ZS4gIE9mZnNldCBzaG91bGQgYWx3YXlzIHBvaW50IHRvIHRoZQorICAgICAqIEhJR0ggU1VSUk9HQVRFIChsZWFkaW5nIGNvZGUgdW5pdCkgb2YgYSBwYWlyIG9mIHN1cnJvZ2F0ZXMsCisgICAgICogYm90aCBvbiBlbnRyeSBhbmQgdXBvbiByZXR1cm4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBpbmRleCBvZiB0ZXh0IHRvIGJlIG1hdGNoZWQuICBHcmVhdGVyCisgICAgICogdGhhbiBvZmZzZXQgZm9yIGEgZm9yd2FyZCBkaXJlY3Rpb24gbWF0Y2gsIGxlc3MgdGhhbiBvZmZzZXQgZm9yCisgICAgICogYSBiYWNrd2FyZCBkaXJlY3Rpb24gbWF0Y2guICBUaGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUKKyAgICAgKiBjb25zaWRlcmVkIGZvciBtYXRjaGluZyB3aWxsIGJlIHRleHQuY2hhckF0KGxpbWl0LTEpIGluIHRoZQorICAgICAqIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRleHQuY2hhckF0KGxpbWl0KzEpIGluIHRoZSBiYWNrd2FyZAorICAgICAqIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgZnVydGhlciBjaGFyYWN0ZXJzIG1heQorICAgICAqIGJlIGluc2VydGVkIGF0IGxpbWl0IGFuZCBjaGVjayBmb3IgcGFydGlhbCBtYXRjaGluZy4gIE90aGVyd2lzZQorICAgICAqIGFzc3VtZSB0aGUgdGV4dCBhcyBnaXZlbiBpcyBjb21wbGV0ZS4KKyAgICAgKiBAcmV0dXJuIGEgbWF0Y2ggZGVncmVlIHZhbHVlIGluZGljYXRpbmcgYSBmdWxsIG1hdGNoLCBhIHBhcnRpYWwKKyAgICAgKiBtYXRjaCwgb3IgYSBtaXNtYXRjaC4gIElmIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4KKyAgICAgKiBVX1BBUlRJQUxfTUFUQ0ggc2hvdWxkIG5ldmVyIGJlIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbWF0Y2hlci4gIElmIHRoZSByZXN1bHQgb2YKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXJzZXIsIGl0CisgICAgICogd2lsbCBwcm9kdWNlIGFub3RoZXIgbWF0Y2hlciB0aGF0IGlzIGVxdWFsIHRvIHRoaXMgb25lLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiBUUlVFIHRoZW4gY29udmVydCB1bnByaW50YWJsZQorICAgICAqIGNoYXJhY3RlciB0byB0aGVpciBoZXggZXNjYXBlIHJlcHJlc2VudGF0aW9ucywgXFx1eHh4eCBvcgorICAgICAqIFxcVXh4eHh4eHh4LiAgVW5wcmludGFibGUgY2hhcmFjdGVycyBhcmUgdGhvc2Ugb3RoZXIgdGhhbgorICAgICAqIFUrMDAwQSwgVSswMDIwLi5VKzAwN0UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIFRSVUUgaWYgdGhpcyBtYXRjaGVyIHdpbGwgbWF0Y2ggYSBjaGFyYWN0ZXIgYywgd2hlcmUgYworICAgICAqICYgMHhGRiA9PSB2LCBhdCBvZmZzZXQsIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiAod2l0aCBsaW1pdCA+CisgICAgICogb2Zmc2V0KS4gIFRoaXMgaXMgdXNlZCBieSA8dHQ+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L3R0PiBmb3IKKyAgICAgKiBpbmRleGluZy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6ICBUaGlzIEFQSSB1c2VzIGFuIGludCBldmVuIHRob3VnaCB0aGUgdmFsdWUgd2lsbCBiZQorICAgICAqIHJlc3RyaWN0ZWQgdG8gOCBiaXRzIGluIG9yZGVyIHRvIGF2b2lkIGNvbXBsaWNhdGlvbnMgd2l0aAorICAgICAqIHNpZ25lZG5lc3MgKGJ5dGVzIGNvbnZlcnQgdG8gaW50cyBpbiB0aGUgcmFuZ2UgLTEyOC4uMTI3KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdik7CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubyk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBmZTQ5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHBlcmZvcm1zIGNoYXJhY3RlciB0byBuYW1lIG1hcHBpbmcuCisgKiBJdCBnZW5lcmF0ZXMgdGhlIFBlcmwgc3ludGF4IFxOe25hbWV9LgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBVbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiQW55LU5hbWUiOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOX0RFTElNID0gIlxcTnsiOworICAgIHN0YXRpYyBmaW5hbCBjaGFyIENMT1NFX0RFTElNID0gJ30nOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT1BFTl9ERUxJTV9MRU4gPSAzOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcihVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihfSUQsIGZpbHRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBjdXJzb3IgPSBvZmZzZXRzLnN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc3RyLmFwcGVuZChPUEVOX0RFTElNKTsKKyAgICAgICAgaW50IGxlbjsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoY3Vyc29yIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBjID0gdGV4dC5jaGFyMzJBdChjdXJzb3IpOworICAgICAgICAgICAgaWYgKChuYW1lPVVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGMpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3RyLnNldExlbmd0aChPUEVOX0RFTElNX0xFTik7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChuYW1lKS5hcHBlbmQoQ0xPU0VfREVMSU0pOworCisgICAgICAgICAgICAgICAgaW50IGNsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGN1cnNvciwgY3Vyc29yK2NsZW4sIHN0ci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsZW4gPSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgY3Vyc29yICs9IGxlbjsgLy8gYWR2YW5jZSBjdXJzb3IgYnkgMSBhbmQgYWRqdXN0IGZvciBuZXcgdGV4dAorICAgICAgICAgICAgICAgIGxpbWl0ICs9IGxlbi1jbGVuOyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICsrY3Vyc29yOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBvZmZzZXRzLmxpbWl0OworICAgICAgICBvZmZzZXRzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVJlcGxhY2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWM0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVJlcGxhY2VyLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPlVuaWNvZGVSZXBsYWNlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBvYmplY3RzIHRoYXQKKyAqIHJlcGxhY2UgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGluIGEgUmVwbGFjZWFibGUgc3RyaW5nIHdpdGggb3V0cHV0CisgKiB0ZXh0LiAgVGhlIHJlcGxhY2VtZW50IGlzIGRvbmUgdmlhIHRoZSBSZXBsYWNlYWJsZSBBUEkgc28gYXMgdG8KKyAqIHByZXNlcnZlIG91dC1vZi1iYW5kIGRhdGEuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2ludGVyZmFjZSBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogUmVwbGFjZSBjaGFyYWN0ZXJzIGluICd0ZXh0JyBmcm9tICdzdGFydCcgdG8gJ2xpbWl0JyB3aXRoIHRoZQorICAgICAqIG91dHB1dCB0ZXh0IG9mIHRoaXMgb2JqZWN0LiAgVXBkYXRlIHRoZSAnY3Vyc29yJyBwYXJhbWV0ZXIgdG8KKyAgICAgKiBnaXZlIHRoZSBjdXJzb3IgcG9zaXRpb24gYW5kIHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAqIHJlcGxhY2VtZW50IHRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBiZSBtYXRjaGVkCisgICAgICogQHBhcmFtIHN0YXJ0IGluY2x1c2l2ZSBzdGFydCBpbmRleCBvZiB0ZXh0IHRvIGJlIHJlcGxhY2VkCisgICAgICogQHBhcmFtIGxpbWl0IGV4Y2x1c2l2ZSBlbmQgaW5kZXggb2YgdGV4dCB0byBiZSByZXBsYWNlZDsKKyAgICAgKiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBzdGFydAorICAgICAqIEBwYXJhbSBjdXJzb3Igb3V0cHV0IHBhcmFtZXRlciBmb3IgdGhlIGN1cnNvciBwb3NpdGlvbi4KKyAgICAgKiBOb3QgYWxsIHJlcGxhY2VyIG9iamVjdHMgd2lsbCB1cGRhdGUgdGhpcywgYnV0IGluIGEgY29tcGxldGUKKyAgICAgKiB0cmVlIG9mIHJlcGxhY2VyIG9iamVjdHMsIHJlcHJlc2VudGluZyB0aGUgZW50aXJlIG91dHB1dCBzaWRlCisgICAgICogb2YgYSB0cmFuc2xpdGVyYXRpb24gcnVsZSwgYXQgbGVhc3Qgb25lIG11c3QgdXBkYXRlIGl0LgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cyBpbiB0aGUgdGV4dCByZXBsYWNpbmcKKyAgICAgKiB0aGUgY2hhcmFjdGVycyBhdCBvZmZzZXRzIHN0YXJ0Li4obGltaXQtMSkgaW4gdGV4dAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyByZXBsYWNlci4gIElmIHRoZQorICAgICAqIHJlc3VsdCBvZiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIHRoZSBhcHByb3ByaWF0ZQorICAgICAqIHBhcnNlciwgdHlwaWNhbGx5IFRyYW5zbGl0ZXJhdG9yUGFyc2VyLCBpdCB3aWxsIHByb2R1Y2UgYW5vdGhlcgorICAgICAqIHJlcGxhY2VyIHRoYXQgaXMgZXF1YWwgdG8gdGhpcyBvbmUuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGJ5CisgICAgICogVXRpbGl0eS5pc1VucHJpbnRhYmxlKCkuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyB0b1JlcGxhY2VyUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pOworfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxMjg4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEKQEAgLTAsMCArMSwzNjIyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ29sbGVjdGlvblV0aWxpdGllczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVCaURpUHJvcHM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVByb3BlcnR5QWxpYXNlczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlNvcnRlZFNldFJlbGF0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUnVsZUNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5GcmVlemFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworCisvKioKKyAqIEEgbXV0YWJsZSBzZXQgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIGFuZCBtdWx0aWNoYXJhY3RlciBzdHJpbmdzLiAgT2JqZWN0cyBvZiB0aGlzIGNsYXNzCisgKiByZXByZXNlbnQgPGVtPmNoYXJhY3RlciBjbGFzc2VzPC9lbT4gdXNlZCBpbiByZWd1bGFyIGV4cHJlc3Npb25zLgorICogQSBjaGFyYWN0ZXIgc3BlY2lmaWVzIGEgc3Vic2V0IG9mIFVuaWNvZGUgY29kZSBwb2ludHMuICBMZWdhbAorICogY29kZSBwb2ludHMgYXJlIFUrMDAwMCB0byBVKzEwRkZGRiwgaW5jbHVzaXZlLgorICoKKyAqIDxwPlRoZSBVbmljb2RlU2V0IGNsYXNzIGlzIG5vdCBkZXNpZ25lZCB0byBiZSBzdWJjbGFzc2VkLgorICoKKyAqIDxwPjxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHN1cHBvcnRzIHR3byBBUElzLiBUaGUgZmlyc3QgaXMgdGhlCisgKiA8ZW0+b3BlcmFuZDwvZW0+IEFQSSB0aGF0IGFsbG93cyB0aGUgY2FsbGVyIHRvIG1vZGlmeSB0aGUgdmFsdWUgb2YKKyAqIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gb2JqZWN0LiBJdCBjb25mb3JtcyB0byBKYXZhIDIncworICogPGNvZGU+amF2YS51dGlsLlNldDwvY29kZT4gaW50ZXJmYWNlLCBhbHRob3VnaAorICogPGNvZGU+VW5pY29kZVNldDwvY29kZT4gZG9lcyBub3QgYWN0dWFsbHkgaW1wbGVtZW50IHRoYXQKKyAqIGludGVyZmFjZS4gQWxsIG1ldGhvZHMgb2YgPGNvZGU+U2V0PC9jb2RlPiBhcmUgc3VwcG9ydGVkLCB3aXRoIHRoZQorICogbW9kaWZpY2F0aW9uIHRoYXQgdGhleSB0YWtlIGEgY2hhcmFjdGVyIHJhbmdlIG9yIHNpbmdsZSBjaGFyYWN0ZXIKKyAqIGluc3RlYWQgb2YgYW4gPGNvZGU+T2JqZWN0PC9jb2RlPiwgYW5kIHRoZXkgdGFrZSBhCisgKiA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBpbnN0ZWFkIG9mIGEgPGNvZGU+Q29sbGVjdGlvbjwvY29kZT4uICBUaGUKKyAqIG9wZXJhbmQgQVBJIG1heSBiZSB0aG91Z2h0IG9mIGluIHRlcm1zIG9mIGJvb2xlYW4gbG9naWM6IGEgYm9vbGVhbgorICogT1IgaXMgaW1wbGVtZW50ZWQgYnkgPGNvZGU+YWRkPC9jb2RlPiwgYSBib29sZWFuIEFORCBpcyBpbXBsZW1lbnRlZAorICogYnkgPGNvZGU+cmV0YWluPC9jb2RlPiwgYSBib29sZWFuIFhPUiBpcyBpbXBsZW1lbnRlZCBieQorICogPGNvZGU+Y29tcGxlbWVudDwvY29kZT4gdGFraW5nIGFuIGFyZ3VtZW50LCBhbmQgYSBib29sZWFuIE5PVCBpcworICogaW1wbGVtZW50ZWQgYnkgPGNvZGU+Y29tcGxlbWVudDwvY29kZT4gd2l0aCBubyBhcmd1bWVudC4gIEluIHRlcm1zCisgKiBvZiB0cmFkaXRpb25hbCBzZXQgdGhlb3J5IGZ1bmN0aW9uIG5hbWVzLCA8Y29kZT5hZGQ8L2NvZGU+IGlzIGEKKyAqIHVuaW9uLCA8Y29kZT5yZXRhaW48L2NvZGU+IGlzIGFuIGludGVyc2VjdGlvbiwgPGNvZGU+cmVtb3ZlPC9jb2RlPgorICogaXMgYW4gYXN5bW1ldHJpYyBkaWZmZXJlbmNlLCBhbmQgPGNvZGU+Y29tcGxlbWVudDwvY29kZT4gd2l0aCBubworICogYXJndW1lbnQgaXMgYSBzZXQgY29tcGxlbWVudCB3aXRoIHJlc3BlY3QgdG8gdGhlIHN1cGVyc2V0IHJhbmdlCisgKiA8Y29kZT5NSU5fVkFMVUUtTUFYX1ZBTFVFPC9jb2RlPgorICoKKyAqIDxwPlRoZSBzZWNvbmQgQVBJIGlzIHRoZQorICogPGNvZGU+YXBwbHlQYXR0ZXJuKCk8L2NvZGU+Lzxjb2RlPnRvUGF0dGVybigpPC9jb2RlPiBBUEkgZnJvbSB0aGUKKyAqIDxjb2RlPmphdmEudGV4dC5Gb3JtYXQ8L2NvZGU+LWRlcml2ZWQgY2xhc3Nlcy4gIFVubGlrZSB0aGUKKyAqIG1ldGhvZHMgdGhhdCBhZGQgY2hhcmFjdGVycywgYWRkIGNhdGVnb3JpZXMsIGFuZCBjb250cm9sIHRoZSBsb2dpYworICogb2YgdGhlIHNldCwgdGhlIG1ldGhvZCA8Y29kZT5hcHBseVBhdHRlcm4oKTwvY29kZT4gc2V0cyBhbGwKKyAqIGF0dHJpYnV0ZXMgb2YgYSA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBhdCBvbmNlLCBiYXNlZCBvbiBhCisgKiBzdHJpbmcgcGF0dGVybi4KKyAqCisgKiA8cD48Yj5QYXR0ZXJuIHN5bnRheDwvYj48L3A+CisgKgorICogUGF0dGVybnMgYXJlIGFjY2VwdGVkIGJ5IHRoZSBjb25zdHJ1Y3RvcnMgYW5kIHRoZQorICogPGNvZGU+YXBwbHlQYXR0ZXJuKCk8L2NvZGU+IG1ldGhvZHMgYW5kIHJldHVybmVkIGJ5IHRoZQorICogPGNvZGU+dG9QYXR0ZXJuKCk8L2NvZGU+IG1ldGhvZC4gIFRoZXNlIHBhdHRlcm5zIGZvbGxvdyBhIHN5bnRheAorICogc2ltaWxhciB0byB0aGF0IGVtcGxveWVkIGJ5IHZlcnNpb24gOCByZWd1bGFyIGV4cHJlc3Npb24gY2hhcmFjdGVyCisgKiBjbGFzc2VzLiAgSGVyZSBhcmUgc29tZSBzaW1wbGUgZXhhbXBsZXM6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDx0YWJsZT4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W108L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+Tm8gY2hhcmFjdGVyczwvdGQ+CisgKiAgICAgPC90cj48dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W2FdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjaGFyYWN0ZXIgJ2EnPC90ZD4KKyAqICAgICA8L3RyPjx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bYWVdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjaGFyYWN0ZXJzICdhJyBhbmQgJ2UnPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bYS1lXTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVycyAnYScgdGhyb3VnaCAnZScgaW5jbHVzaXZlLCBpbiBVbmljb2RlIGNvZGUKKyAqICAgICAgIHBvaW50IG9yZGVyPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bXFx1NEUwMV08L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGNoYXJhY3RlciBVKzRFMDE8L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxjb2RlPlthe2FifXthY31dPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjaGFyYWN0ZXIgJ2EnIGFuZCB0aGUgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncyAmcXVvdDthYiZxdW90OyBhbmQKKyAqICAgICAgICZxdW90O2FjJnF1b3Q7PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bXHB7THV9XTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5BbGwgY2hhcmFjdGVycyBpbiB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBVcHBlcmNhc2UgTGV0dGVyPC90ZD4KKyAqICAgICA8L3RyPgorICogICA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEFueSBjaGFyYWN0ZXIgbWF5IGJlIHByZWNlZGVkIGJ5IGEgYmFja3NsYXNoIGluIG9yZGVyIHRvIHJlbW92ZSBhbnkgc3BlY2lhbAorICogbWVhbmluZy4gIFdoaXRlIHNwYWNlIGNoYXJhY3RlcnMsIGFzIGRlZmluZWQgYnkgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoKSwgYXJlCisgKiBpZ25vcmVkLCB1bmxlc3MgdGhleSBhcmUgZXNjYXBlZC4KKyAqCisgKiA8cD5Qcm9wZXJ0eSBwYXR0ZXJucyBzcGVjaWZ5IGEgc2V0IG9mIGNoYXJhY3RlcnMgaGF2aW5nIGEgY2VydGFpbgorICogcHJvcGVydHkgYXMgZGVmaW5lZCBieSB0aGUgVW5pY29kZSBzdGFuZGFyZC4gIEJvdGggdGhlIFBPU0lYLWxpa2UKKyAqICJbOkx1Ol0iIGFuZCB0aGUgUGVybC1saWtlIHN5bnRheCAiXHB7THV9IiBhcmUgcmVjb2duaXplZC4gIEZvciBhCisgKiBjb21wbGV0ZSBsaXN0IG9mIHN1cHBvcnRlZCBwcm9wZXJ0eSBwYXR0ZXJucywgc2VlIHRoZSBVc2VyJ3MgR3VpZGUKKyAqIGZvciBVbmljb2RlU2V0IGF0CisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvdW5pY29kZVNldC5odG1sIj4KKyAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS91bmljb2RlU2V0Lmh0bWw8L2E+LgorICogQWN0dWFsIGRldGVybWluYXRpb24gb2YgcHJvcGVydHkgZGF0YSBpcyBkZWZpbmVkIGJ5IHRoZSB1bmRlcmx5aW5nCisgKiBVbmljb2RlIGRhdGFiYXNlIGFzIGltcGxlbWVudGVkIGJ5IFVDaGFyYWN0ZXIuCisgKgorICogPHA+UGF0dGVybnMgc3BlY2lmeSBpbmRpdmlkdWFsIGNoYXJhY3RlcnMsIHJhbmdlcyBvZiBjaGFyYWN0ZXJzLCBhbmQKKyAqIFVuaWNvZGUgcHJvcGVydHkgc2V0cy4gIFdoZW4gZWxlbWVudHMgYXJlIGNvbmNhdGVuYXRlZCwgdGhleQorICogc3BlY2lmeSB0aGVpciB1bmlvbi4gIFRvIGNvbXBsZW1lbnQgYSBzZXQsIHBsYWNlIGEgJ14nIGltbWVkaWF0ZWx5CisgKiBhZnRlciB0aGUgb3BlbmluZyAnWycuICBQcm9wZXJ0eSBwYXR0ZXJucyBhcmUgaW52ZXJ0ZWQgYnkgbW9kaWZ5aW5nCisgKiB0aGVpciBkZWxpbWl0ZXJzOyAiWzpeZm9vXSIgYW5kICJcUHtmb299Ii4gIEluIGFueSBvdGhlciBsb2NhdGlvbiwKKyAqICdeJyBoYXMgbm8gc3BlY2lhbCBtZWFuaW5nLgorICoKKyAqIDxwPlJhbmdlcyBhcmUgaW5kaWNhdGVkIGJ5IHBsYWNpbmcgdHdvIGEgJy0nIGJldHdlZW4gdHdvCisgKiBjaGFyYWN0ZXJzLCBhcyBpbiAiYS16Ii4gIFRoaXMgc3BlY2lmaWVzIHRoZSByYW5nZSBvZiBhbGwKKyAqIGNoYXJhY3RlcnMgZnJvbSB0aGUgbGVmdCB0byB0aGUgcmlnaHQsIGluIFVuaWNvZGUgb3JkZXIuICBJZiB0aGUKKyAqIGxlZnQgY2hhcmFjdGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUKKyAqIHJpZ2h0IGNoYXJhY3RlciBpdCBpcyBhIHN5bnRheCBlcnJvci4gIElmIGEgJy0nIG9jY3VycyBhcyB0aGUgZmlyc3QKKyAqIGNoYXJhY3RlciBhZnRlciB0aGUgb3BlbmluZyAnWycgb3IgJ1teJywgb3IgaWYgaXQgb2NjdXJzIGFzIHRoZQorICogbGFzdCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjbG9zaW5nICddJywgdGhlbiBpdCBpcyB0YWtlbiBhcyBhCisgKiBsaXRlcmFsLiAgVGh1cyAiW2FcXC1iXSIsICJbLWFiXSIsIGFuZCAiW2FiLV0iIGFsbCBpbmRpY2F0ZSB0aGUgc2FtZQorICogc2V0IG9mIHRocmVlIGNoYXJhY3RlcnMsICdhJywgJ2InLCBhbmQgJy0nLgorICoKKyAqIDxwPlNldHMgbWF5IGJlIGludGVyc2VjdGVkIHVzaW5nIHRoZSAnJicgb3BlcmF0b3Igb3IgdGhlIGFzeW1tZXRyaWMKKyAqIHNldCBkaWZmZXJlbmNlIG1heSBiZSB0YWtlbiB1c2luZyB0aGUgJy0nIG9wZXJhdG9yLCBmb3IgZXhhbXBsZSwKKyAqICJbWzpMOl0mW1xcdTAwMDAtXFx1MEZGRl1dIiBpbmRpY2F0ZXMgdGhlIHNldCBvZiBhbGwgVW5pY29kZSBsZXR0ZXJzCisgKiB3aXRoIHZhbHVlcyBsZXNzIHRoYW4gNDA5Ni4gIE9wZXJhdG9ycyAoJyYnIGFuZCAnfCcpIGhhdmUgZXF1YWwKKyAqIHByZWNlZGVuY2UgYW5kIGJpbmQgbGVmdC10by1yaWdodC4gIFRodXMKKyAqICJbWzpMOl0tW2Etel0tW1xcdTAxMDAtXFx1MDFGRl1dIiBpcyBlcXVpdmFsZW50IHRvCisgKiAiW1tbOkw6XS1bYS16XV0tW1xcdTAxMDAtXFx1MDFGRl1dIi4gIFRoaXMgb25seSByZWFsbHkgbWF0dGVycyBmb3IKKyAqIGRpZmZlcmVuY2U7IGludGVyc2VjdGlvbiBpcyBjb21tdXRhdGl2ZS4KKyAqCisgKiA8dGFibGU+CisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPlthXTwvY29kZT48dGQ+VGhlIHNldCBjb250YWluaW5nICdhJworICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bYS16XTwvY29kZT48dGQ+VGhlIHNldCBjb250YWluaW5nICdhJworICogdGhyb3VnaCAneicgYW5kIGFsbCBsZXR0ZXJzIGluIGJldHdlZW4sIGluIFVuaWNvZGUgb3JkZXIKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W15hLXpdPC9jb2RlPjx0ZD5UaGUgc2V0IGNvbnRhaW5pbmcKKyAqIGFsbCBjaGFyYWN0ZXJzIGJ1dCAnYScgdGhyb3VnaCAneicsCisgKiB0aGF0IGlzLCBVKzAwMDAgdGhyb3VnaCAnYSctMSBhbmQgJ3onKzEgdGhyb3VnaCBVKzEwRkZGRgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bWzxlbT5wYXQxPC9lbT5dWzxlbT5wYXQyPC9lbT5dXTwvY29kZT4KKyAqIDx0ZD5UaGUgdW5pb24gb2Ygc2V0cyBzcGVjaWZpZWQgYnkgPGVtPnBhdDE8L2VtPiBhbmQgPGVtPnBhdDI8L2VtPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bWzxlbT5wYXQxPC9lbT5dJls8ZW0+cGF0MjwvZW0+XV08L2NvZGU+CisgKiA8dGQ+VGhlIGludGVyc2VjdGlvbiBvZiBzZXRzIHNwZWNpZmllZCBieSA8ZW0+cGF0MTwvZW0+IGFuZCA8ZW0+cGF0MjwvZW0+CisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPltbPGVtPnBhdDE8L2VtPl0tWzxlbT5wYXQyPC9lbT5dXTwvY29kZT4KKyAqIDx0ZD5UaGUgYXN5bW1ldHJpYyBkaWZmZXJlbmNlIG9mIHNldHMgc3BlY2lmaWVkIGJ5IDxlbT5wYXQxPC9lbT4gYW5kCisgKiA8ZW0+cGF0MjwvZW0+CisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPls6THU6XSBvciBccHtMdX08L2NvZGU+CisgKiA8dGQ+VGhlIHNldCBvZiBjaGFyYWN0ZXJzIGhhdmluZyB0aGUgc3BlY2lmaWVkCisgKiBVbmljb2RlIHByb3BlcnR5OyBpbgorICogdGhpcyBjYXNlLCBVbmljb2RlIHVwcGVyY2FzZSBsZXR0ZXJzCisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPls6Xkx1Ol0gb3IgXFB7THV9PC9jb2RlPgorICogPHRkPlRoZSBzZXQgb2YgY2hhcmFjdGVycyA8ZW0+bm90PC9lbT4gaGF2aW5nIHRoZSBnaXZlbgorICogVW5pY29kZSBwcm9wZXJ0eQorICogPC90YWJsZT4KKyAqCisgKiA8cD48Yj5XYXJuaW5nPC9iPjogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvcD4KKyAqCisgKiA8cD48Yj5Gb3JtYWwgc3ludGF4PC9iPjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHRhYmxlPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+cGF0dGVybiA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+KCdbJyAnXic/IGl0ZW0qICddJykgfAorICogICAgICAgcHJvcGVydHk8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+aXRlbSA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+Y2hhciB8IChjaGFyICctJyBjaGFyKSB8IHBhdHRlcm4tZXhwcjxicj4KKyAqICAgICAgIDwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5wYXR0ZXJuLWV4cHIgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPnBhdHRlcm4gfCBwYXR0ZXJuLWV4cHIgcGF0dGVybiB8CisgKiAgICAgICBwYXR0ZXJuLWV4cHIgb3AgcGF0dGVybjxicj4KKyAqICAgICAgIDwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5vcCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+JyZhbXA7JyB8ICctJzxicj4KKyAqICAgICAgIDwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5zcGVjaWFsIDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT4nWycgfCAnXScgfCAnLSc8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+Y2hhciA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmFueSBjaGFyYWN0ZXIgdGhhdCBpcyBub3Q8L2VtPjxjb2RlPiBzcGVjaWFsPGJyPgorICogICAgICAgfCAoJ1xcJyA8L2NvZGU+PGVtPmFueSBjaGFyYWN0ZXI8L2VtPjxjb2RlPik8YnI+CisgKiAgICAgICB8ICgnJiM5Mjt1JyBoZXggaGV4IGhleCBoZXgpPGJyPgorICogICAgICAgPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPmhleCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgKiAgICAgICA8L2VtPjxjb2RlPkNoYXJhY3Rlci5kaWdpdChjLCAxNik8L2NvZGU+PGVtPgorICogICAgICAgcmV0dXJucyBhIG5vbi1uZWdhdGl2ZSByZXN1bHQ8L2VtPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3BlcnR5IDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YSBVbmljb2RlIHByb3BlcnR5IHNldCBwYXR0ZXJuPC90ZD4KKyAqICAgICA8L3RyPgorICogICA8L3RhYmxlPgorICogICA8YnI+CisgKiAgIDx0YWJsZSBib3JkZXI9IjEiPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZD5MZWdlbmQ6IDx0YWJsZT4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEgOj0gYjwvY29kZT48L3RkPgorICogICAgICAgICAgIDx0ZCB3aWR0aD0iMjAiIHZhbGlnbj0idG9wIj4mbmJzcDsgPC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPmE8L2NvZGU+IG1heSBiZSByZXBsYWNlZCBieSA8Y29kZT5iPC9jb2RlPiA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+YT88L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj56ZXJvIG9yIG9uZSBpbnN0YW5jZSBvZiA8Y29kZT5hPC9jb2RlPjxicj4KKyAqICAgICAgICAgICA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+YSo8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5vbmUgb3IgbW9yZSBpbnN0YW5jZXMgb2YgPGNvZGU+YTwvY29kZT48YnI+CisgKiAgICAgICAgICAgPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEgfCBiPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+ZWl0aGVyIDxjb2RlPmE8L2NvZGU+IG9yIDxjb2RlPmI8L2NvZGU+PGJyPgorICogICAgICAgICAgIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT4nYSc8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj50aGUgbGl0ZXJhbCBzdHJpbmcgYmV0d2VlbiB0aGUgcXVvdGVzIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICA8L3RhYmxlPgorICogICAgICAgPC90ZD4KKyAqICAgICA8L3RyPgorICogICA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICogPHA+VG8gaXRlcmF0ZSBvdmVyIGNvbnRlbnRzIG9mIFVuaWNvZGVTZXQsIHVzZSBVbmljb2RlU2V0SXRlcmF0b3IgY2xhc3MuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFVuaWNvZGVTZXRJdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZVNldCBleHRlbmRzIFVuaWNvZGVGaWx0ZXIgaW1wbGVtZW50cyBGcmVlemFibGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPVyA9IDB4MDAwMDAwOyAvLyBMT1cgPD0gYWxsIHZhbGlkIHZhbHVlcy4gWkVSTyBmb3IgY29kZXBvaW50cworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBISUdIID0gMHgxMTAwMDA7IC8vIEhJR0ggPiBhbGwgdmFsaWQgdmFsdWVzLiAxMDAwMCBmb3IgY29kZSB1bml0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMDAwMCBmb3IgY29kZXBvaW50cworCisgICAgLyoqCisgICAgICogTWluaW11bSB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBVbmljb2RlU2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9WQUxVRSA9IExPVzsKKworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgVW5pY29kZVNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfVkFMVUUgPSBISUdIIC0gMTsKKworICAgIHByaXZhdGUgaW50IGxlbjsgICAgICAvLyBsZW5ndGggdXNlZDsgbGlzdCBtYXkgYmUgbG9uZ2VyIHRvIG1pbmltaXplIHJlYWxsb2NzCisgICAgcHJpdmF0ZSBpbnRbXSBsaXN0OyAgIC8vIE1VU1QgYmUgdGVybWluYXRlZCB3aXRoIEhJR0gKKyAgICBwcml2YXRlIGludFtdIHJhbmdlTGlzdDsgLy8gaW50ZXJuYWwgYnVmZmVyCisgICAgcHJpdmF0ZSBpbnRbXSBidWZmZXI7IC8vIGludGVybmFsIGJ1ZmZlcgorCisgICAgLy8gTk9URTogbm9ybWFsbHkgdGhlIGZpZWxkIHNob3VsZCBiZSBvZiB0eXBlIFNvcnRlZFNldDsgYnV0IHRoYXQgaXMgbWlzc2luZyBhIHB1YmxpYyBjbG9uZSEhCisgICAgLy8gaXMgbm90IHByaXZhdGUgc28gdGhhdCBVbmljb2RlU2V0SXRlcmF0b3IgY2FuIGdldCBhY2Nlc3MKKyAgICBUcmVlU2V0IHN0cmluZ3MgPSBuZXcgVHJlZVNldCgpOworCisgICAgLyoqCisgICAgICogVGhlIHBhdHRlcm4gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQuICBUaGlzIG1heSBub3QgYmUgdGhlCisgICAgICogbW9zdCBlY29ub21pY2FsIHBhdHRlcm4uICBJdCBpcyB0aGUgcGF0dGVybiBzdXBwbGllZCB0bworICAgICAqIGFwcGx5UGF0dGVybigpLCB3aXRoIHZhcmlhYmxlcyBzdWJzdGl0dXRlZCBhbmQgd2hpdGVzcGFjZQorICAgICAqIHJlbW92ZWQuICBGb3Igc2V0cyBjb25zdHJ1Y3RlZCB3aXRob3V0IGFwcGx5UGF0dGVybigpLCBvcgorICAgICAqIG1vZGlmaWVkIHVzaW5nIHRoZSBub24tcGF0dGVybiBBUEksIHRoaXMgc3RyaW5nIHdpbGwgYmUgbnVsbCwKKyAgICAgKiBpbmRpY2F0aW5nIHRoYXQgdG9QYXR0ZXJuKCkgbXVzdCBnZW5lcmF0ZSBhIHBhdHRlcm4KKyAgICAgKiByZXByZXNlbnRhdGlvbiBmcm9tIHRoZSBpbnZlcnNpb24gbGlzdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXQgPSBudWxsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVJUX0VYVFJBID0gMTY7ICAgICAgICAgLy8gaW5pdGlhbCBzdG9yYWdlLiBNdXN0IGJlID49IDAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPV19FWFRSQSA9IFNUQVJUX0VYVFJBOyAvLyBleHRyYSBhbW91bnQgZm9yIGdyb3d0aC4gTXVzdCBiZSA+PSAwCisKKyAgICAvLyBTcGVjaWFsIHByb3BlcnR5IHNldCBJRHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQU5ZX0lEICAgPSAiQU5ZIjsgICAvLyBbXHUwMDAwLVxVMDAxMEZGRkZdCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFTQ0lJX0lEID0gIkFTQ0lJIjsgLy8gW1x1MDAwMC1cdTAwN0ZdCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFTU0lHTkVEID0gIkFzc2lnbmVkIjsgLy8gWzpeQ246XQorCisgICAgLyoqCisgICAgICogQSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgX2V4Y2VwdF8gdGhlIHNlY29uZCB0aHJvdWdoIGxhc3QgY2hhcmFjdGVycyBvZgorICAgICAqIGNlcnRhaW4gcmFuZ2VzLiAgVGhlc2UgcmFuZ2VzIGFyZSByYW5nZXMgb2YgY2hhcmFjdGVycyB3aG9zZQorICAgICAqIHByb3BlcnRpZXMgYXJlIGFsbCBleGFjdGx5IGFsaWtlLCBlLmcuIENKSyBJZGVvZ3JhcGhzIGZyb20KKyAgICAgKiBVKzRFMDAgdG8gVSs5RkE1LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgSU5DTFVTSU9OU1tdID0gbnVsbDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFB1YmxpYyBBUEkKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gZW1wdHkgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0KCkgeworICAgICAgICBsaXN0ID0gbmV3IGludFsxICsgU1RBUlRfRVhUUkFdOworICAgICAgICBsaXN0W2xlbisrXSA9IEhJR0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGNvcHkgb2YgYW4gZXhpc3Rpbmcgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0KFVuaWNvZGVTZXQgb3RoZXIpIHsKKyAgICAgICAgc2V0KG90aGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGNvbnRhaW5pbmcgdGhlIGdpdmVuIHJhbmdlLiBJZiA8Y29kZT5lbmQgPgorICAgICAqIHN0YXJ0PC9jb2RlPiB0aGVuIGFuIGVtcHR5IHNldCBpcyBjcmVhdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBjb21wbGVtZW50KHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4gIFdoaXRlc3BhY2UgaXMgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBjb250YWlucworICAgICAqIGEgc3ludGF4IGVycm9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIElHTk9SRV9TUEFDRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuLiAgU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIGlnbm9yZVdoaXRlc3BhY2UgaWYgdHJ1ZSwgaWdub3JlIGNoYXJhY3RlcnMgZm9yIHdoaWNoCisgICAgICogVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoKSByZXR1cm5zIHRydWUKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gY29udGFpbnMKKyAgICAgKiBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybiwgYm9vbGVhbiBpZ25vcmVXaGl0ZXNwYWNlKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIGlnbm9yZVdoaXRlc3BhY2UgPyBJR05PUkVfU1BBQ0UgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBhIGJpdG1hc2sgaW5kaWNhdGluZyB3aGljaCBvcHRpb25zIHRvIGFwcGx5LgorICAgICAqIFZhbGlkIG9wdGlvbnMgYXJlIElHTk9SRV9TUEFDRSBhbmQgQ0FTRS4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gY29udGFpbnMKKyAgICAgKiBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybiwgbnVsbCwgbnVsbCwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuLiAgU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIHBvcyBvbiBpbnB1dCwgdGhlIHBvc2l0aW9uIGluIHBhdHRlcm4gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZy4KKyAgICAgKiBPbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLgorICAgICAqIEBwYXJhbSBzeW1ib2xzIGEgc3ltYm9sIHRhYmxlIG1hcHBpbmcgdmFyaWFibGVzIHRvIGNoYXJbXSBhcnJheXMKKyAgICAgKiBhbmQgY2hhcnMgdG8gVW5pY29kZVNldHMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4KKyAgICAgKiBjb250YWlucyBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybiwgUGFyc2VQb3NpdGlvbiBwb3MsIFN5bWJvbFRhYmxlIHN5bWJvbHMpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybiwgcG9zLCBzeW1ib2xzLCBJR05PUkVfU1BBQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBwb3Mgb24gaW5wdXQsIHRoZSBwb3NpdGlvbiBpbiBwYXR0ZXJuIGF0IHdoaWNoIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3ltYm9scyBhIHN5bWJvbCB0YWJsZSBtYXBwaW5nIHZhcmlhYmxlcyB0byBjaGFyW10gYXJyYXlzCisgICAgICogYW5kIGNoYXJzIHRvIFVuaWNvZGVTZXRzCisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggb3B0aW9ucyB0byBhcHBseS4KKyAgICAgKiBWYWxpZCBvcHRpb25zIGFyZSBJR05PUkVfU1BBQ0UgYW5kIENBU0UuCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybiwgUGFyc2VQb3NpdGlvbiBwb3MsIFN5bWJvbFRhYmxlIHN5bWJvbHMsIGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHBvcywgc3ltYm9scywgb3B0aW9ucyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgc2V0IHRoYXQgaXMgZXF1aXZhbGVudCB0byB0aGlzIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KHRoaXMpOworICAgICAgICByZXN1bHQuZnJvemVuID0gdGhpcy5mcm96ZW47CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSB0aGlzIG9iamVjdCByZXByZXNlbnQgdGhlIHJhbmdlIDxjb2RlPnN0YXJ0IC0gZW5kPC9jb2RlPi4KKyAgICAgKiBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiB0aGlzIG9iamVjdCBpcyBzZXQgdG8gYW4KKyAgICAgKiBhbiBlbXB0eSByYW5nZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHNldCwgaW5jbHVzaXZlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciBpbiB0aGUgc2V0LCBpbmNsdXNpdmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBzZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIGNvbXBsZW1lbnQoc3RhcnQsIGVuZCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgdGhpcyBvYmplY3QgcmVwcmVzZW50IHRoZSBzYW1lIHNldCBhcyA8Y29kZT5vdGhlcjwvY29kZT4uCisgICAgICogQHBhcmFtIG90aGVyIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gd2hvc2UgdmFsdWUgd2lsbCBiZQorICAgICAqIGNvcGllZCB0byB0aGlzIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHNldChVbmljb2RlU2V0IG90aGVyKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGxpc3QgPSAoaW50W10pIG90aGVyLmxpc3QuY2xvbmUoKTsKKyAgICAgICAgbGVuID0gb3RoZXIubGVuOworICAgICAgICBwYXQgPSBvdGhlci5wYXQ7CisgICAgICAgIHN0cmluZ3MgPSAoVHJlZVNldClvdGhlci5zdHJpbmdzLmNsb25lKCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIHJlcHJlc2VudCB0aGUgc2V0IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcGF0dGVybi4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIFdoaXRlc3BhY2UgaXMgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybgorICAgICAqIGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXR1cm4gYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIElHTk9SRV9TUEFDRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZpZXMgdGhpcyBzZXQgdG8gcmVwcmVzZW50IHRoZSBzZXQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBwYXR0ZXJuLAorICAgICAqIG9wdGlvbmFsbHkgaWdub3Jpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIGlnbm9yZVdoaXRlc3BhY2UgaWYgdHJ1ZSB0aGVuIGNoYXJhY3RlcnMgZm9yIHdoaWNoCisgICAgICogVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoKSByZXR1cm5zIHRydWUgYXJlIGlnbm9yZWQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4KKyAgICAgKiBjb250YWlucyBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIGJvb2xlYW4gaWdub3JlV2hpdGVzcGFjZSkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXR1cm4gYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIGlnbm9yZVdoaXRlc3BhY2UgPyBJR05PUkVfU1BBQ0UgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byByZXByZXNlbnQgdGhlIHNldCBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIHBhdHRlcm4sCisgICAgICogb3B0aW9uYWxseSBpZ25vcmluZyB3aGl0ZXNwYWNlLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24gZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBhIGJpdG1hc2sgaW5kaWNhdGluZyB3aGljaCBvcHRpb25zIHRvIGFwcGx5LgorICAgICAqIFZhbGlkIG9wdGlvbnMgYXJlIElHTk9SRV9TUEFDRSBhbmQgQ0FTRS4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4KKyAgICAgKiBjb250YWlucyBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIGludCBvcHRpb25zKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIHJldHVybiBhcHBseVBhdHRlcm4ocGF0dGVybiwgbnVsbCwgbnVsbCwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHBvc2l0aW9uLCBpbiB0aGUgZ2l2ZW4gcGF0dGVybiwgYXBwZWFycworICAgICAqIHRvIGJlIHRoZSBzdGFydCBvZiBhIFVuaWNvZGVTZXQgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcmVzZW1ibGVzUGF0dGVybihTdHJpbmcgcGF0dGVybiwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKSA9PSAnWycpIHx8CisgICAgICAgICAgICByZXNlbWJsZXNQcm9wZXJ0eVBhdHRlcm4ocGF0dGVybiwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIDxjb2RlPnRvUGF0dGVybigpPC9jb2RlPiByZXByZXNlbnRhdGlvbiBvZiBhCisgICAgICogc3RyaW5nIHRvIHRoZSBnaXZlbiA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgX2FwcGVuZFRvUGF0KFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzLCBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoaSkpIHsKKyAgICAgICAgICAgIF9hcHBlbmRUb1BhdChidWYsIFVURjE2LmNoYXJBdChzLCBpKSwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSA8Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgYQorICAgICAqIGNoYXJhY3RlciB0byB0aGUgZ2l2ZW4gPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIF9hcHBlbmRUb1BhdChTdHJpbmdCdWZmZXIgYnVmLCBpbnQgYywgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpZiAoZXNjYXBlVW5wcmludGFibGUgJiYgVXRpbGl0eS5pc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICAvLyBVc2UgaGV4IGVzY2FwZSBub3RhdGlvbiAoPGJhY2tzbGFzaD51eHh4eCBvciA8YmFja3NsYXNoPlV4eHh4eHh4eCkgZm9yIGFueXRoaW5nCisgICAgICAgICAgICAvLyB1bnByaW50YWJsZQorICAgICAgICAgICAgaWYgKFV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUoYnVmLCBjKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBPa2F5IHRvIGxldCAnOicgcGFzcyB0aHJvdWdoCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICdbJzogLy8gU0VUX09QRU46CisgICAgICAgIGNhc2UgJ10nOiAvLyBTRVRfQ0xPU0U6CisgICAgICAgIGNhc2UgJy0nOiAvLyBIWVBIRU46CisgICAgICAgIGNhc2UgJ14nOiAvLyBDT01QTEVNRU5UOgorICAgICAgICBjYXNlICcmJzogLy8gSU5URVJTRUNUSU9OOgorICAgICAgICBjYXNlICdcXCc6IC8vQkFDS1NMQVNIOgorICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgY2FzZSAnfSc6CisgICAgICAgIGNhc2UgJyQnOgorICAgICAgICBjYXNlICc6JzoKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEVzY2FwZSB3aGl0ZXNwYWNlCisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldC4gIElmIHRoZSByZXN1bHQgb2YKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIGEgVW5pY29kZVNldCBjb25zdHJ1Y3RvciwgaXQKKyAgICAgKiB3aWxsIHByb2R1Y2UgYW5vdGhlciBzZXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJldHVybiBfdG9QYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0IHRvIHJlc3VsdC4gIFRoaXMgd2lsbCBiZQorICAgICAqIGEgY2xlYW5lZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGFwcGx5UGF0dGVybigpLCBpZiB0aGVyZQorICAgICAqIGlzIG9uZS4gIE90aGVyd2lzZSBpdCB3aWxsIGJlIGdlbmVyYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBfdG9QYXR0ZXJuKFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIGlmIChwYXQgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBpbnQgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgZm9yIChpPTA7IGk8cGF0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChwYXQsIGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmIChlc2NhcGVVbnByaW50YWJsZSAmJiBVdGlsaXR5LmlzVW5wcmludGFibGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVucHJpbnRhYmxlIGNoYXJhY3RlciBpcyBwcmVjZWRlZCBieSBhbiBvZGQKKyAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGJhY2tzbGFzaGVzLCB0aGVuIGl0IGhhcyBiZWVuIGVzY2FwZWQuCisgICAgICAgICAgICAgICAgICAgIC8vIEJlZm9yZSB1bmVzY2FwaW5nIGl0LCB3ZSBkZWxldGUgdGhlIGZpbmFsCisgICAgICAgICAgICAgICAgICAgIC8vIGJhY2tzbGFzaC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKChiYWNrc2xhc2hDb3VudCAlIDIpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgocmVzdWx0Lmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGVVbnByaW50YWJsZShyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICBiYWNrc2xhc2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYmFja3NsYXNoQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrc2xhc2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIF9nZW5lcmF0ZVBhdHRlcm4ocmVzdWx0LCBlc2NhcGVVbnByaW50YWJsZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIGFwcGVuZCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldCB0byByZXN1bHQuCisgICAgICogVGhpcyBkb2VzIG5vdCB1c2UgdGhpcy5wYXQsIHRoZSBjbGVhbmVkIHVwIGNvcHkgb2YgdGhlIHN0cmluZworICAgICAqIHBhc3NlZCB0byBhcHBseVBhdHRlcm4oKS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHRoZSBidWZmZXIgaW50byB3aGljaCB0byBnZW5lcmF0ZSB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBlc2NhcGUgdW5wcmludGFibGUgY2hhcmFjdGVycyBpZiB0cnVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBfZ2VuZXJhdGVQYXR0ZXJuKFN0cmluZ0J1ZmZlciByZXN1bHQsIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIF9nZW5lcmF0ZVBhdHRlcm4ocmVzdWx0LCBlc2NhcGVVbnByaW50YWJsZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIGFwcGVuZCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldCB0byByZXN1bHQuCisgICAgICogVGhpcyBkb2VzIG5vdCB1c2UgdGhpcy5wYXQsIHRoZSBjbGVhbmVkIHVwIGNvcHkgb2YgdGhlIHN0cmluZworICAgICAqIHBhc3NlZCB0byBhcHBseVBhdHRlcm4oKS4KKyAgICAgKiBAcGFyYW0gaW5jbHVkZVN0cmluZ3MgaWYgZmFsc2UsIGRvZXNuJ3QgaW5jbHVkZSB0aGUgc3RyaW5ncy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIF9nZW5lcmF0ZVBhdHRlcm4oU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSwgYm9vbGVhbiBpbmNsdWRlU3RyaW5ncykgeworICAgICAgICByZXN1bHQuYXBwZW5kKCdbJyk7CisKKy8vICAgICAgLy8gQ2hlY2sgYWdhaW5zdCB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzLiAgV2UgaW1wbGljaXRseSBidWlsZAorLy8gICAgICAvLyB1cCBBTEwgY2F0ZWdvcnkgc2V0cyB0aGUgZmlyc3QgdGltZSB0b1BhdHRlcm4oKSBpcyBjYWxsZWQuCisvLyAgICAgIGZvciAoaW50IGNhdD0wOyBjYXQ8Q0FURUdPUllfQ09VTlQ7ICsrY2F0KSB7CisvLyAgICAgICAgICBpZiAodGhpcy5lcXVhbHMoZ2V0Q2F0ZWdvcnlTZXQoY2F0KSkpIHsKKy8vICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCc6Jyk7CisvLyAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChDQVRFR09SWV9OQU1FUy5zdWJzdHJpbmcoY2F0KjIsIGNhdCoyKzIpKTsKKy8vICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiOl0iKTsKKy8vICAgICAgICAgIH0KKy8vICAgICAgfQorCisgICAgICAgIGludCBjb3VudCA9IGdldFJhbmdlQ291bnQoKTsKKworICAgICAgICAvLyBJZiB0aGUgc2V0IGNvbnRhaW5zIGF0IGxlYXN0IDIgaW50ZXJ2YWxzIGFuZCBpbmNsdWRlcyBib3RoCisgICAgICAgIC8vIE1JTl9WQUxVRSBhbmQgTUFYX1ZBTFVFLCB0aGVuIHRoZSBpbnZlcnNlIHJlcHJlc2VudGF0aW9uIHdpbGwKKyAgICAgICAgLy8gYmUgbW9yZSBlY29ub21pY2FsLgorICAgICAgICBpZiAoY291bnQgPiAxICYmCisgICAgICAgICAgICBnZXRSYW5nZVN0YXJ0KDApID09IE1JTl9WQUxVRSAmJgorICAgICAgICAgICAgZ2V0UmFuZ2VFbmQoY291bnQtMSkgPT0gTUFYX1ZBTFVFKSB7CisKKyAgICAgICAgICAgIC8vIEVtaXQgdGhlIGludmVyc2UKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ14nKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZ2V0UmFuZ2VFbmQoaS0xKSsxOworICAgICAgICAgICAgICAgIGludCBlbmQgPSBnZXRSYW5nZVN0YXJ0KGkpLTE7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgc3RhcnQsIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrMSkgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCctJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgZW5kLCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRGVmYXVsdDsgZW1pdCB0aGUgcmFuZ2VzIGFzIHBhaXJzCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgc3RhcnQsIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrMSkgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCctJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgZW5kLCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGluY2x1ZGVTdHJpbmdzICYmIHN0cmluZ3Muc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgneycpOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIChTdHJpbmcpIGl0Lm5leHQoKSwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgnXScpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCAoaXRzIGNhcmRpbmFsaXR5KQorICAgICAqIE5vdGUgdGhhbiB0aGUgZWxlbWVudHMgb2YgYSBzZXQgbWF5IGluY2x1ZGUgYm90aCBpbmRpdmlkdWFsCisgICAgICogY29kZXBvaW50cyBhbmQgc3RyaW5ncy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCAoaXRzIGNhcmRpbmFsaXR5KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIG4gKz0gZ2V0UmFuZ2VFbmQoaSkgLSBnZXRSYW5nZVN0YXJ0KGkpICsgMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbiArIHN0cmluZ3Muc2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyBubyBlbGVtZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyBubyBlbGVtZW50cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gbGVuID09IDEgJiYgc3RyaW5ncy5zaXplKCkgPT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYKKyAgICAgKiB0aGlzIHNldCBjb250YWlucyBhbnkgY2hhcmFjdGVyIHdob3NlIGxvdyBieXRlIGlzIHRoZSBnaXZlbgorICAgICAqIHZhbHVlLiAgVGhpcyBpcyB1c2VkIGJ5IDx0dD5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvdHQ+IGZvcgorICAgICAqIGluZGV4aW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgIC8qIFRoZSBpbmRleCB2YWx1ZSB2LCBpbiB0aGUgcmFuZ2UgWzAsMjU1XSwgaXMgY29udGFpbmVkIGluIHRoaXMgc2V0IGlmCisgICAgICAgICAqIGl0IGlzIGNvbnRhaW5lZCBpbiBhbnkgcGFpciBvZiB0aGlzIHNldC4gIFBhaXJzIGVpdGhlciBoYXZlIHRoZSBoaWdoCisgICAgICAgICAqIGJ5dGVzIGVxdWFsLCBvciB1bmVxdWFsLiAgSWYgdGhlIGhpZ2ggYnl0ZXMgYXJlIGVxdWFsLCB0aGVuIHdlIGhhdmUKKyAgICAgICAgICogYWF4eC4uYWF5eSwgd2hlcmUgYWEgaXMgdGhlIGhpZ2ggYnl0ZS4gIFRoZW4gdiBpcyBjb250YWluZWQgaWYgeHggPD0KKyAgICAgICAgICogdiA8PSB5eS4gIElmIHRoZSBoaWdoIGJ5dGVzIGFyZSB1bmVxdWFsIHdlIGhhdmUgYWF4eC4uYmJ5eSwgYmI+YWEuCisgICAgICAgICAqIFRoZW4gdiBpcyBjb250YWluZWQgaWYgeHggPD0gdiB8fCB2IDw9IHl5LiAgKFRoaXMgaXMgaWRlbnRpY2FsIHRvIHRoZQorICAgICAgICAgKiB0aW1lIHpvbmUgbW9udGggY29udGFpbm1lbnQgbG9naWMuKQorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBpbnQgbG93ID0gZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBoaWdoID0gZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBpZiAoKGxvdyAmIH4weEZGKSA9PSAoaGlnaCAmIH4weEZGKSkgeworICAgICAgICAgICAgICAgIGlmICgobG93ICYgMHhGRikgPD0gdiAmJiB2IDw9IChoaWdoICYgMHhGRikpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgobG93ICYgMHhGRikgPD0gdiB8fCB2IDw9IChoaWdoICYgMHhGRikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc3RyaW5ncy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgLy9pZiAocy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gICAgLy8gRW1wdHkgc3RyaW5ncyBtYXRjaCBldmVyeXRoaW5nCisgICAgICAgICAgICAgICAgLy8gICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHMubGVuZ3RoKCkgIT0gMCk7IC8vIFdlIGVuZm9yY2UgdGhpcyBlbHNld2hlcmUKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgJiAweEZGKSA9PSB2KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIubWF0Y2hlcygpLiAgQWx3YXlzIG1hdGNoZXMgdGhlCisgICAgICogbG9uZ2VzdCBwb3NzaWJsZSBtdWx0aWNoYXIgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworCisgICAgICAgIGlmIChvZmZzZXRbMF0gPT0gbGltaXQpIHsKKyAgICAgICAgICAgIC8vIFN0cmluZ3MsIGlmIGFueSwgaGF2ZSBsZW5ndGggIT0gMCwgc28gd2UgZG9uJ3Qgd29ycnkKKyAgICAgICAgICAgIC8vIGFib3V0IHRoZW0gaGVyZS4gIElmIHdlIGV2ZXIgYWxsb3cgemVyby1sZW5ndGggc3RyaW5ncworICAgICAgICAgICAgLy8gd2UgbXVjaCBjaGVjayBmb3IgdGhlbSBoZXJlLgorICAgICAgICAgICAgaWYgKGNvbnRhaW5zKFVuaWNvZGVNYXRjaGVyLkVUSEVSKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmNyZW1lbnRhbCA/IFVfUEFSVElBTF9NQVRDSCA6IFVfTUFUQ0g7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpICE9IDApIHsgLy8gdHJ5IHN0cmluZ3MgZmlyc3QKKworICAgICAgICAgICAgICAgIC8vIG1pZ2h0IHNlcGFyYXRlIGZvcndhcmQgYW5kIGJhY2t3YXJkIGxvb3BzIGxhdGVyCisgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB0aGV5IGFyZSBjb21iaW5lZAorCisgICAgICAgICAgICAgICAgLy8gVE9ETyBJbXByb3ZlIGVmZmljaWVuY3kgb2YgdGhpcywgYXQgbGVhc3QgaW4gdGhlIGZvcndhcmQKKyAgICAgICAgICAgICAgICAvLyBkaXJlY3Rpb24sIGlmIG5vdCBpbiBib3RoLiAgSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIHdlCisgICAgICAgICAgICAgICAgLy8gY2FuIGFzc3VtZSB0aGUgc3RyaW5ncyBhcmUgc29ydGVkLgorCisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmb3J3YXJkID0gb2Zmc2V0WzBdIDwgbGltaXQ7CisKKyAgICAgICAgICAgICAgICAvLyBmaXJzdENoYXIgaXMgdGhlIGxlZnRtb3N0IGNoYXIgdG8gbWF0Y2ggaW4gdGhlCisgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBkaXJlY3Rpb24gb3IgdGhlIHJpZ2h0bW9zdCBjaGFyIHRvIG1hdGNoIGluCisgICAgICAgICAgICAgICAgLy8gdGhlIHJldmVyc2UgZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgIGNoYXIgZmlyc3RDaGFyID0gdGV4dC5jaGFyQXQob2Zmc2V0WzBdKTsKKworICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBzdHJpbmdzIHRoYXQgY2FuIG1hdGNoIHdlCisgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBsb25nZXN0IG1hdGNoLgorICAgICAgICAgICAgICAgIGludCBoaWdoV2F0ZXJMZW5ndGggPSAwOworCisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAodHJpYWwubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyAgICByZXR1cm4gVV9NQVRDSDsgLy8gbnVsbC1zdHJpbmcgYWx3YXlzIG1hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydCh0cmlhbC5sZW5ndGgoKSAhPSAwKTsgLy8gV2UgZW5zdXJlIHRoaXMgZWxzZXdoZXJlCisKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdHJpYWwuY2hhckF0KGZvcndhcmQgPyAwIDogdHJpYWwubGVuZ3RoKCkgLSAxKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBTdHJpbmdzIGFyZSBzb3J0ZWQsIHNvIHdlIGNhbiBvcHRpbWl6ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBkaXJlY3Rpb24uCisgICAgICAgICAgICAgICAgICAgIGlmIChmb3J3YXJkICYmIGMgPiBmaXJzdENoYXIpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoYyAhPSBmaXJzdENoYXIpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSBtYXRjaFJlc3QodGV4dCwgb2Zmc2V0WzBdLCBsaW1pdCwgdHJpYWwpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heExlbiA9IGZvcndhcmQgPyBsaW1pdC1vZmZzZXRbMF0gOiBvZmZzZXRbMF0tbGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuID09IG1heExlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgc3VjY2Vzc2Z1bGx5IG1hdGNoZWQgYnV0IG9ubHkgdXAgdG8gbGltaXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPT0gdHJpYWwubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgc3VjY2Vzc2Z1bGx5IG1hdGNoZWQgdGhlIHdob2xlIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBoaWdoV2F0ZXJMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdoV2F0ZXJMZW5ndGggPSBsZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gd2Uga25vdyBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhcmUgc29ydGVkIHNvIHdlIGNhbiBiYWlsIGVhcmx5LgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcndhcmQgJiYgbGVuIDwgaGlnaFdhdGVyTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGNoZWNrZWQgYWxsIHN0cmluZ3Mgd2l0aG91dCBhIHBhcnRpYWwgbWF0Y2guCisgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBmdWxsIG1hdGNoZXMsIHJldHVybiB0aGUgbG9uZ2VzdCBvbmUuCisgICAgICAgICAgICAgICAgaWYgKGhpZ2hXYXRlckxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldFswXSArPSBmb3J3YXJkID8gaGlnaFdhdGVyTGVuZ3RoIDogLWhpZ2hXYXRlckxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLm1hdGNoZXModGV4dCwgb2Zmc2V0LCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9uZ2VzdCBtYXRjaCBmb3IgcyBpbiB0ZXh0IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBJZiBsaW1pdCA+IHN0YXJ0IHRoZW4gbWF0Y2ggZm9yd2FyZCBmcm9tIHN0YXJ0KzEgdG8gbGltaXQKKyAgICAgKiBtYXRjaGluZyBhbGwgY2hhcmFjdGVycyBleGNlcHQgcy5jaGFyQXQoMCkuICBJZiBsaW1pdCA8IHN0YXJ0LAorICAgICAqIGdvIGJhY2t3YXJkIHN0YXJ0aW5nIGZyb20gc3RhcnQtMSBtYXRjaGluZyBhbGwgY2hhcmFjdGVycworICAgICAqIGV4Y2VwdCBzLmNoYXJBdChzLmxlbmd0aCgpLTEpLiAgVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IHRoZQorICAgICAqIGZpcnN0IGNoYXJhY3RlciwgdGV4dC5jaGFyQXQoc3RhcnQpLCBtYXRjaGVzIHMsIHNvIGl0IGRvZXMgbm90CisgICAgICogY2hlY2sgaXQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gbWF0Y2gKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBtYXRjaC4gIEluIHRoZSBmb3J3YXJkCisgICAgICogZGlyZWN0aW9uLCB0ZXh0LmNoYXJBdChzdGFydCkgaXMgbWF0Y2hlZCBhZ2FpbnN0IHMuY2hhckF0KDApLgorICAgICAqIEluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiwgaXQgaXMgbWF0Y2hlZCBhZ2FpbnN0CisgICAgICogcy5jaGFyQXQocy5sZW5ndGgoKS0xKS4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mZnNldCBmb3IgbWF0Y2hpbmcsIGVpdGhlciBsYXN0KzEgaW4KKyAgICAgKiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24sIG9yIGxhc3QtMSBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24sCisgICAgICogd2hlcmUgbGFzdCBpcyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIG1hdGNoLgorICAgICAqIEByZXR1cm4gSWYgcGFydCBvZiBzIG1hdGNoZXMgdXAgdG8gdGhlIGxpbWl0LCByZXR1cm4gfGxpbWl0IC0KKyAgICAgKiBzdGFydHwuICBJZiBhbGwgb2YgcyBtYXRjaGVzIGJlZm9yZSByZWFjaGluZyB0aGUgbGltaXQsIHJldHVybgorICAgICAqIHMubGVuZ3RoKCkuICBJZiB0aGVyZSBpcyBhIG1pc21hdGNoIGJldHdlZW4gcyBhbmQgdGV4dCwgcmV0dXJuCisgICAgICogMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBtYXRjaFJlc3QgKFJlcGxhY2VhYmxlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgcykgeworICAgICAgICBpbnQgbWF4TGVuOworICAgICAgICBpbnQgc2xlbiA9IHMubGVuZ3RoKCk7CisgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICBtYXhMZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICAgICAgaWYgKG1heExlbiA+IHNsZW4pIG1heExlbiA9IHNsZW47CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG1heExlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KHN0YXJ0ICsgaSkgIT0gcy5jaGFyQXQoaSkpIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWF4TGVuID0gc3RhcnQgLSBsaW1pdDsKKyAgICAgICAgICAgIGlmIChtYXhMZW4gPiBzbGVuKSBtYXhMZW4gPSBzbGVuOworICAgICAgICAgICAgLS1zbGVuOyAvLyA8PT4gc2xlbiA9IHMubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtYXhMZW47ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0ZXh0LmNoYXJBdChzdGFydCAtIGkpICE9IHMuY2hhckF0KHNsZW4gLSBpKSkgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1heExlbjsKKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogVGVzdHMgd2hldGhlciB0aGUgdGV4dCBtYXRjaGVzIGF0IHRoZSBvZmZzZXQuIElmIHNvLCByZXR1cm5zIHRoZSBlbmQgb2YgdGhlIGxvbmdlc3Qgc3Vic3RyaW5nIHRoYXQgaXQgbWF0Y2hlcy4gSWYgbm90LCByZXR1cm5zIC0xLiBGb3Igbm93LCBhbiBpbnRlcm5hbCByb3V0aW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlc0F0KENoYXJTZXF1ZW5jZSB0ZXh0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGludCBsZW4gPSAtMTsKKyAgICAgICAgc3RyaW5nczoKKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGNoYXIgZmlyc3RDaGFyID0gdGV4dC5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyB0cmlhbCA9IG51bGw7CisgICAgICAgICAgICAvLyBmaW5kIHRoZSBmaXJzdCBzdHJpbmcgc3RhcnRpbmcgd2l0aCBmaXJzdENoYXIKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHRyaWFsID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGNoYXIgZmlyc3RTdHJpbmdDaGFyID0gdHJpYWwuY2hhckF0KDApOworICAgICAgICAgICAgICAgIGlmIChmaXJzdFN0cmluZ0NoYXIgPCBmaXJzdENoYXIpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChmaXJzdFN0cmluZ0NoYXIgPiBmaXJzdENoYXIpIGJyZWFrIHN0cmluZ3M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBub3cga2VlcCBjaGVja2luZyBzdHJpbmcgdW50aWwgd2UgZ2V0IHRoZSBsb25nZXN0IG9uZQorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcExlbiA9IENvbGxlY3Rpb25VdGlsaXRpZXMubWF0Y2hlc0F0KHRleHQsIG9mZnNldCwgdHJpYWwpOworICAgICAgICAgICAgICAgIGlmIChsZW4gPiB0ZW1wTGVuKSBicmVhayBzdHJpbmdzOworICAgICAgICAgICAgICAgIGxlbiA9IHRlbXBMZW47CisgICAgICAgICAgICAgICAgaWYgKCFpdC5oYXNOZXh0KCkpIGJyZWFrOworICAgICAgICAgICAgICAgIHRyaWFsID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChsZW4gPCAyKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQodGV4dCwgb2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChjb250YWlucyhjcCkpIHsKKyAgICAgICAgICAgICAgICBsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvZmZzZXQrbGVuOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIHRvVW5pb25Uby5hZGRBbGwodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIGNoYXJhY3RlciB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGNoYXJhY3RlcgorICAgICAqIGlzIG5vdCBpbiB0aGlzIHNldCwgcmV0dXJuIC0xLiAgVGhlIGludmVyc2Ugb2YgdGhpcyBtZXRob2QgaXMKKyAgICAgKiA8Y29kZT5jaGFyQXQoKTwvY29kZT4uCisgICAgICogQHJldHVybiBhbiBpbmRleCBmcm9tIDAuLnNpemUoKS0xLCBvciAtMQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaW5kZXhPZihpbnQgYykgeworICAgICAgICBpZiAoYyA8IE1JTl9WQUxVRSB8fCBjID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoYywgNikpOworICAgICAgICB9CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICBpZiAoYyA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gbGlzdFtpKytdOworICAgICAgICAgICAgaWYgKGMgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuICsgYyAtIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiArPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBpbmRleCB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGluZGV4IGlzCisgICAgICogb3V0IG9mIHJhbmdlLCByZXR1cm4gLTEuICBUaGUgaW52ZXJzZSBvZiB0aGlzIG1ldGhvZCBpcworICAgICAqIDxjb2RlPmluZGV4T2YoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGluZGV4IGFuIGluZGV4IGZyb20gMC4uc2l6ZSgpLTEKKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGdpdmVuIGluZGV4LCBvciAtMS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNoYXJBdChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIC8vIGxlbjIgaXMgdGhlIGxhcmdlc3QgZXZlbiBpbnRlZ2VyIDw9IGxlbiwgdGhhdCBpcywgaXQgaXMgbGVuCisgICAgICAgICAgICAvLyBmb3IgZXZlbiB2YWx1ZXMgYW5kIGxlbi0xIGZvciBvZGQgdmFsdWVzLiAgV2l0aCBvZGQgdmFsdWVzCisgICAgICAgICAgICAvLyB0aGUgbGFzdCBlbnRyeSBpcyBVTklDT0RFU0VUX0hJR0guCisgICAgICAgICAgICBpbnQgbGVuMiA9IGxlbiAmIH4xOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuMjspIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gbGlzdFtpKytdIC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgaW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4IC09IGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgcmFuZ2UgdG8gdGhpcyBzZXQgaWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgKiBwcmVzZW50LiAgSWYgdGhpcyBzZXQgYWxyZWFkeSBjb250YWlucyB0aGUgc3BlY2lmaWVkIHJhbmdlLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4KKyAgICAgKiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzIGFkZGVkLCBsZWF2aW5nIHRoZSBzZXQgdW5jaGFuZ2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSBhZGRlZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgYWRkZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhZGQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIHJldHVybiBhZGRfdW5jaGVja2VkKHN0YXJ0LCBlbmQpOworICAgIH0KKyAgICAKKyAgICAvLyBmb3IgaW50ZXJuYWwgdXNlLCBhZnRlciBjaGVja0Zyb3plbiBoYXMgYmVlbiBjYWxsZWQKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYWRkX3VuY2hlY2tlZChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8IGVuZCkgeworICAgICAgICAgICAgYWRkKHJhbmdlKHN0YXJ0LCBlbmQpLCAyLCAwKTsKKyAgICAgICAgfSBlbHNlIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgIGFkZChzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisvLyAgICAvKioKKy8vICAgICAqIEZvcm1hdCBvdXQgdGhlIGludmVyc2lvbiBsaXN0IGFzIGEgc3RyaW5nLCBmb3IgZGVidWdnaW5nLiAgVW5jb21tZW50IHdoZW4KKy8vICAgICAqIG5lZWRlZC4KKy8vICAgICAqLworLy8gICAgcHVibGljIGZpbmFsIFN0cmluZyBkdW1wKCkgeworLy8gICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJbIik7CisvLyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxlbjsgKytpKSB7CisvLyAgICAgICAgICAgIGlmIChpICE9IDApIGJ1Zi5hcHBlbmQoIiwgIik7CisvLyAgICAgICAgICAgIGludCBjID0gbGlzdFtpXTsKKy8vICAgICAgICAgICAgLy9pZiAoYyA8PSAweDdGICYmIGMgIT0gJ1xuJyAmJiBjICE9ICdccicgJiYgYyAhPSAnXHQnICYmIGMgIT0gJyAnKSB7CisvLyAgICAgICAgICAgIC8vICAgIGJ1Zi5hcHBlbmQoKGNoYXIpIGMpOworLy8gICAgICAgICAgICAvL30gZWxzZSB7CisvLyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJVKyIpLmFwcGVuZChVdGlsaXR5LmhleChjLCAoYzwweDEwMDAwKT80OjYpKTsKKy8vICAgICAgICAgICAgLy99CisvLyAgICAgICAgfQorLy8gICAgICAgIGJ1Zi5hcHBlbmQoIl0iKTsKKy8vICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHRvIHRoaXMgc2V0IGlmIGl0IGlzIG5vdCBhbHJlYWR5CisgICAgICogcHJlc2VudC4gIElmIHRoaXMgc2V0IGFscmVhZHkgY29udGFpbnMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIsCisgICAgICogdGhlIGNhbGwgbGVhdmVzIHRoaXMgc2V0IHVuY2hhbmdlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBhZGQoaW50IGMpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgcmV0dXJuIGFkZF91bmNoZWNrZWQoYyk7CisgICAgfQorICAgIAorICAgIC8vIGZvciBpbnRlcm5hbCB1c2Ugb25seSwgYWZ0ZXIgY2hlY2tGcm96ZW4gaGFzIGJlZW4gY2FsbGVkCisgICAgcHJpdmF0ZSBmaW5hbCBVbmljb2RlU2V0IGFkZF91bmNoZWNrZWQoaW50IGMpIHsKKyAgICAgICAgaWYgKGMgPCBNSU5fVkFMVUUgfHwgYyA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGMsIDYpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmQgc21hbGxlc3QgaSBzdWNoIHRoYXQgYyA8IGxpc3RbaV0KKyAgICAgICAgLy8gaWYgb2RkLCB0aGVuIGl0IGlzIElOIHRoZSBzZXQKKyAgICAgICAgLy8gaWYgZXZlbiwgdGhlbiBpdCBpcyBPVVQgb2YgdGhlIHNldAorICAgICAgICBpbnQgaSA9IGZpbmRDb2RlUG9pbnQoYyk7CisKKyAgICAgICAgLy8gYWxyZWFkeSBpbiBzZXQ/CisgICAgICAgIGlmICgoaSAmIDEpICE9IDApIHJldHVybiB0aGlzOworCisgICAgICAgIC8vIEhJR0ggaXMgMHgxMTAwMDAKKyAgICAgICAgLy8gYXNzZXJ0KGxpc3RbbGVuLTFdID09IEhJR0gpOworCisgICAgICAgIC8vIGVtcHR5ID0gW0hJR0hdCisgICAgICAgIC8vIFtzdGFydF8wLCBsaW1pdF8wLCBzdGFydF8xLCBsaW1pdF8xLCBISUdIXQorCisgICAgICAgIC8vIFsuLi4sIHN0YXJ0X2stMSwgbGltaXRfay0xLCBzdGFydF9rLCBsaW1pdF9rLCAuLi4sIEhJR0hdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0W2ldCisKKyAgICAgICAgLy8gaSA9PSAwIG1lYW5zIGMgaXMgYmVmb3JlIHRoZSBmaXJzdCByYW5nZQorCisgICAgICAgIGlmIChjID09IGxpc3RbaV0tMSkgeworICAgICAgICAgICAgLy8gYyBpcyBiZWZvcmUgc3RhcnQgb2YgbmV4dCByYW5nZQorICAgICAgICAgICAgbGlzdFtpXSA9IGM7CisgICAgICAgICAgICAvLyBpZiB3ZSB0b3VjaGVkIHRoZSBISUdIIG1hcmssIHRoZW4gYWRkIGEgbmV3IG9uZQorICAgICAgICAgICAgaWYgKGMgPT0gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgZW5zdXJlQ2FwYWNpdHkobGVuKzEpOworICAgICAgICAgICAgICAgIGxpc3RbbGVuKytdID0gSElHSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBjID09IGxpc3RbaS0xXSkgeworICAgICAgICAgICAgICAgIC8vIGNvbGxhcHNlIGFkamFjZW50IHJhbmdlcworCisgICAgICAgICAgICAgICAgLy8gWy4uLiwgc3RhcnRfay0xLCBjLCBjLCBsaW1pdF9rLCAuLi4sIEhJR0hdCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBsaXN0W2ldCisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCBpKzEsIGxpc3QsIGktMSwgbGVuLWktMSk7CisgICAgICAgICAgICAgICAgbGVuIC09IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmIChpID4gMCAmJiBjID09IGxpc3RbaS0xXSkgeworICAgICAgICAgICAgLy8gYyBpcyBhZnRlciBlbmQgb2YgcHJpb3IgcmFuZ2UKKyAgICAgICAgICAgIGxpc3RbaS0xXSsrOworICAgICAgICAgICAgLy8gbm8gbmVlZCB0byBjaGNlayBmb3IgY29sbGFwc2UgaGVyZQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhlIG5ldyBjaGFyIGlzIG5vdCBhZGphY2VudCB0bworICAgICAgICAgICAgLy8gYW55IGV4aXN0aW5nIHJhbmdlcywgYW5kIGl0IGlzIG5vdCAxMEZGRkYuCisKKworICAgICAgICAgICAgLy8gWy4uLiwgc3RhcnRfay0xLCBsaW1pdF9rLTEsIHN0YXJ0X2ssIGxpbWl0X2ssIC4uLiwgSElHSF0KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFtpXQorCisgICAgICAgICAgICAvLyBbLi4uLCBzdGFydF9rLTEsIGxpbWl0X2stMSwgYywgYysxLCBzdGFydF9rLCBsaW1pdF9rLCAuLi4sIEhJR0hdCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RbaV0KKworICAgICAgICAgICAgLy8gRG9uJ3QgdXNlIGVuc3VyZUNhcGFjaXR5KCkgdG8gc2F2ZSBvbiBjb3B5aW5nLgorICAgICAgICAgICAgLy8gTk9URTogVGhpcyBoYXMgbm8gbWVhc3VyYWJsZSBpbXBhY3Qgb24gcGVyZm9ybWFuY2UsCisgICAgICAgICAgICAvLyBidXQgaXQgbWlnaHQgaGVscCBpbiBzb21lIHVzYWdlIHBhdHRlcm5zLgorICAgICAgICAgICAgaWYgKGxlbisyID4gbGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtsZW4gKyAyICsgR1JPV19FWFRSQV07CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgU3lzdGVtLmFycmF5Y29weShsaXN0LCAwLCB0ZW1wLCAwLCBpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIGksIHRlbXAsIGkrMiwgbGVuLWkpOworICAgICAgICAgICAgICAgIGxpc3QgPSB0ZW1wOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIGksIGxpc3QsIGkrMiwgbGVuLWkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaXN0W2ldID0gYzsKKyAgICAgICAgICAgIGxpc3RbaSsxXSA9IGMrMTsKKyAgICAgICAgICAgIGxlbiArPSAyOworICAgICAgICB9CisKKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIG11bHRpY2hhcmFjdGVyIHRvIHRoaXMgc2V0IGlmIGl0IGlzIG5vdCBhbHJlYWR5CisgICAgICogcHJlc2VudC4gIElmIHRoaXMgc2V0IGFscmVhZHkgY29udGFpbnMgdGhlIG11bHRpY2hhcmFjdGVyLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuCisgICAgICogVGh1cyAiY2giID0+IHsiY2gifQorICAgICAqIDxicj48Yj5XYXJuaW5nOiB5b3UgY2Fubm90IGFkZCBhbiBlbXB0eSBzdHJpbmcgKCIiKSB0byBhIFVuaWNvZGVTZXQuPC9iPgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgYWRkKFN0cmluZyBzKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICBzdHJpbmdzLmFkZChzKTsKKyAgICAgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhIGNvZGUgcG9pbnQgSUYgdGhlIHN0cmluZyBjb25zaXN0cyBvZiBhIHNpbmdsZSBvbmUuCisgICAgICogb3RoZXJ3aXNlIHJldHVybnMgLTEuCisgICAgICogQHBhcmFtIHN0cmluZyB0byB0ZXN0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFNpbmdsZUNQKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3QgdXNlIHplcm8tbGVuZ3RoIHN0cmluZ3MgaW4gVW5pY29kZVNldCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzLmxlbmd0aCgpID4gMikgcmV0dXJuIC0xOworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAxKSByZXR1cm4gcy5jaGFyQXQoMCk7CisKKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgbGVuID0gMgorICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQocywgMCk7CisgICAgICAgIGlmIChjcCA+IDB4RkZGRikgeyAvLyBpcyBzdXJyb2dhdGUgcGFpcgorICAgICAgICAgICAgcmV0dXJuIGNwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGVhY2ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJpbmcgdG8gdGhlIHNldC4gVGh1cyAiY2giID0+IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFkZEFsbChTdHJpbmcgcykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGFkZF91bmNoZWNrZWQoY3AsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRhaW5zIEVBQ0ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJpbmcuIE5vdGU6ICJjaCIgPT0geyJjIiwgImgifQorICAgICAqIElmIHRoaXMgc2V0IGFscmVhZHkgYW55IHBhcnRpY3VsYXIgY2hhcmFjdGVyLCBpdCBoYXMgbm8gZWZmZWN0IG9uIHRoYXQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmV0YWluQWxsKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiByZXRhaW5BbGwoZnJvbUFsbChzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxlbWVudCBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGNvbXBsZW1lbnRBbGwoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBsZW1lbnRBbGwoZnJvbUFsbChzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIEVBQ0ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJpbmcuIE5vdGU6ICJjaCIgPT0geyJjIiwgImgifQorICAgICAqIElmIHRoaXMgc2V0IGFscmVhZHkgYW55IHBhcnRpY3VsYXIgY2hhcmFjdGVyLCBpdCBoYXMgbm8gZWZmZWN0IG9uIHRoYXQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlQWxsKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiByZW1vdmVBbGwoZnJvbUFsbChzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZXMgYSBzZXQgZnJvbSBhIG11bHRpY2hhcmFjdGVyIHN0cmluZy4gVGh1cyAiY2giID0+IHsiY2gifQorICAgICAqIDxicj48Yj5XYXJuaW5nOiB5b3UgY2Fubm90IGFkZCBhbiBlbXB0eSBzdHJpbmcgKCIiKSB0byBhIFVuaWNvZGVTZXQuPC9iPgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiBhIG5ld2x5IGNyZWF0ZWQgc2V0IGNvbnRhaW5pbmcgdGhlIGdpdmVuIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmcm9tKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpLmFkZChzKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIE1ha2VzIGEgc2V0IGZyb20gZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLiBUaHVzICJjaCIgPT4geyJjIiwgImgifQorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiBhIG5ld2x5IGNyZWF0ZWQgc2V0IGNvbnRhaW5pbmcgdGhlIGdpdmVuIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZnJvbUFsbChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKS5hZGRBbGwocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXRhaW4gb25seSB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgdGhhdCBhcmUgY29udGFpbmVkIGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYW5nZS4gIElmIDxjb2RlPmVuZCA+IHN0YXJ0PC9jb2RlPiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzCisgICAgICogcmV0YWluZWQsIGxlYXZpbmcgdGhlIHNldCBlbXB0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmV0YWluZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJldGFpbmVkCisgICAgICogdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmV0YWluKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDw9IGVuZCkgeworICAgICAgICAgICAgcmV0YWluKHJhbmdlKHN0YXJ0LCBlbmQpLCAyLCAwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0YWluIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBVcG9uIHJldHVybiB0aGlzIHNldCB3aWxsIGJlIGVtcHR5IGlmIGl0IGRpZCBub3QgY29udGFpbiBjLCBvcgorICAgICAqIHdpbGwgb25seSBjb250YWluIGMgaWYgaXQgZGlkIGNvbnRhaW4gYy4KKyAgICAgKiBAcGFyYW0gYyB0aGUgY2hhcmFjdGVyIHRvIGJlIHJldGFpbmVkCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmV0YWluKGludCBjKSB7CisgICAgICAgIHJldHVybiByZXRhaW4oYywgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0YWluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGluIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVXBvbiByZXR1cm4gdGhpcyBzZXQgd2lsbCBiZSBlbXB0eSBpZiBpdCBkaWQgbm90IGNvbnRhaW4gcywgb3IKKyAgICAgKiB3aWxsIG9ubHkgY29udGFpbiBzIGlmIGl0IGRpZCBjb250YWluIHMuCisgICAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBiZSByZXRhaW5lZAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbihTdHJpbmcgcykgeworICAgICAgICBpbnQgY3AgPSBnZXRTaW5nbGVDUChzKTsKKyAgICAgICAgaWYgKGNwIDwgMCkgeworICAgICAgICAgICAgYm9vbGVhbiBpc0luID0gc3RyaW5ncy5jb250YWlucyhzKTsKKyAgICAgICAgICAgIGlmIChpc0luICYmIHNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICAgICAgc3RyaW5ncy5hZGQocyk7CisgICAgICAgICAgICBwYXQgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0YWluKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIHJhbmdlIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4gIElmIDxjb2RlPmVuZCA+IHN0YXJ0PC9jb2RlPiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzCisgICAgICogcmVtb3ZlZCwgbGVhdmluZyB0aGUgc2V0IHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZW1vdmVkCisgICAgICogZnJvbSB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCByZW1vdmUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CisgICAgICAgICAgICByZXRhaW4ocmFuZ2Uoc3RhcnQsIGVuZCksIDIsIDIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgZnJvbSB0aGlzIHNldCBpZiBpdCBpcyBwcmVzZW50LgorICAgICAqIFRoZSBzZXQgd2lsbCBub3QgY29udGFpbiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4KKyAgICAgKiBAcGFyYW0gYyB0aGUgY2hhcmFjdGVyIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZW1vdmUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIHJlbW92ZShjLCBjKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCBzdHJpbmcgb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuCisgICAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBiZSByZW1vdmVkCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICBzdHJpbmdzLnJlbW92ZShzKTsKKyAgICAgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmUoY3AsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50cyB0aGUgc3BlY2lmaWVkIHJhbmdlIGluIHRoaXMgc2V0LiAgQW55IGNoYXJhY3RlciBpbgorICAgICAqIHRoZSByYW5nZSB3aWxsIGJlIHJlbW92ZWQgaWYgaXQgaXMgaW4gdGhpcyBzZXQsIG9yIHdpbGwgYmUKKyAgICAgKiBhZGRlZCBpZiBpdCBpcyBub3QgaW4gdGhpcyBzZXQuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4KKyAgICAgKiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzIGNvbXBsZW1lbnRlZCwgbGVhdmluZyB0aGUgc2V0IHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZW1vdmVkCisgICAgICogZnJvbSB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wbGVtZW50KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDw9IGVuZCkgeworICAgICAgICAgICAgeG9yKHJhbmdlKHN0YXJ0LCBlbmQpLCAyLCAwKTsKKyAgICAgICAgfQorICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50cyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBpbiB0aGlzIHNldC4gIFRoZSBjaGFyYWN0ZXIKKyAgICAgKiB3aWxsIGJlIHJlbW92ZWQgaWYgaXQgaXMgaW4gdGhpcyBzZXQsIG9yIHdpbGwgYmUgYWRkZWQgaWYgaXQgaXMKKyAgICAgKiBub3QgaW4gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgY29tcGxlbWVudChpbnQgYykgeworICAgICAgICByZXR1cm4gY29tcGxlbWVudChjLCBjKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8Y29kZT5jb21wbGVtZW50KE1JTl9WQUxVRSwgTUFYX1ZBTFVFKTwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGxlbWVudCgpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaWYgKGxpc3RbMF0gPT0gTE9XKSB7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIDEsIGxpc3QsIDAsIGxlbi0xKTsKKyAgICAgICAgICAgIC0tbGVuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZW5zdXJlQ2FwYWNpdHkobGVuKzEpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAwLCBsaXN0LCAxLCBsZW4pOworICAgICAgICAgICAgbGlzdFswXSA9IExPVzsKKyAgICAgICAgICAgICsrbGVuOworICAgICAgICB9CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnQgdGhlIHNwZWNpZmllZCBzdHJpbmcgaW4gdGhpcyBzZXQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIG9uY2UgdGhlIGNhbGwKKyAgICAgKiByZXR1cm5zLgorICAgICAqIDxicj48Yj5XYXJuaW5nOiB5b3UgY2Fubm90IGFkZCBhbiBlbXB0eSBzdHJpbmcgKCIiKSB0byBhIFVuaWNvZGVTZXQuPC9iPgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gY29tcGxlbWVudAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGNvbXBsZW1lbnQoU3RyaW5nIHMpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgICAgIGlmIChzdHJpbmdzLmNvbnRhaW5zKHMpKSBzdHJpbmdzLnJlbW92ZShzKTsKKyAgICAgICAgICAgIGVsc2Ugc3RyaW5ncy5hZGQocyk7CisgICAgICAgICAgICBwYXQgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29tcGxlbWVudChjcCwgY3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGMpIHsKKyAgICAgICAgaWYgKGMgPCBNSU5fVkFMVUUgfHwgYyA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGMsIDYpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIC8vIFNldCBpIHRvIHRoZSBpbmRleCBvZiB0aGUgc3RhcnQgaXRlbSBncmVhdGVyIHRoYW4gY2gKKyAgICAgICAgLy8gV2Uga25vdyB3ZSB3aWxsIHRlcm1pbmF0ZSB3aXRob3V0IGxlbmd0aCB0ZXN0IQorICAgICAgICBpbnQgaSA9IC0xOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKGMgPCBsaXN0WysraV0pIGJyZWFrOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgaW50IGkgPSBmaW5kQ29kZVBvaW50KGMpOworCisgICAgICAgIHJldHVybiAoKGkgJiAxKSAhPSAwKTsgLy8gcmV0dXJuIHRydWUgaWYgb2RkCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc21hbGxlc3QgdmFsdWUgaSBzdWNoIHRoYXQgYyA8IGxpc3RbaV0uICBDYWxsZXIKKyAgICAgKiBtdXN0IGVuc3VyZSB0aGF0IGMgaXMgYSBsZWdhbCB2YWx1ZSBvciB0aGlzIG1ldGhvZCB3aWxsIGVudGVyCisgICAgICogYW4gaW5maW5pdGUgbG9vcC4gIFRoaXMgbWV0aG9kIHBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaC4KKyAgICAgKiBAcGFyYW0gYyBhIGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UgTUlOX1ZBTFVFLi5NQVhfVkFMVUUKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIGkgaW4gdGhlIHJhbmdlIDAuLmxlbi0xLAorICAgICAqIGluY2x1c2l2ZSwgc3VjaCB0aGF0IGMgPCBsaXN0W2ldCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZmluZENvZGVQb2ludChpbnQgYykgeworICAgICAgICAvKiBFeGFtcGxlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kQ29kZVBvaW50KGMpCisgICAgICAgICAgIHNldCAgICAgICAgICAgICAgbGlzdFtdICAgICAgICAgYz0wIDEgMyA0IDcgOAorICAgICAgICAgICA9PT0gICAgICAgICAgICAgID09PT09PT09PT09PT09ICAgPT09PT09PT09PT0KKyAgICAgICAgICAgW10gICAgICAgICAgICAgICBbMTEwMDAwXSAgICAgICAgIDAgMCAwIDAgMCAwCisgICAgICAgICAgIFtcdTAwMDAtXHUwMDAzXSAgWzAsIDQsIDExMDAwMF0gICAxIDEgMSAyIDIgMgorICAgICAgICAgICBbXHUwMDA0LVx1MDAwN10gIFs0LCA4LCAxMTAwMDBdICAgMCAwIDAgMSAxIDIKKyAgICAgICAgICAgWzphbGw6XSAgICAgICAgICBbMCwgMTEwMDAwXSAgICAgIDEgMSAxIDEgMSAxCisgICAgICAgICAqLworCisgICAgICAgIC8vIFJldHVybiB0aGUgc21hbGxlc3QgaSBzdWNoIHRoYXQgYyA8IGxpc3RbaV0uICBBc3N1bWUKKyAgICAgICAgLy8gbGlzdFtsZW4gLSAxXSA9PSBISUdIIGFuZCB0aGF0IGMgaXMgbGVnYWwgKDAuLkhJR0gtMSkuCisgICAgICAgIGlmIChjIDwgbGlzdFswXSkgcmV0dXJuIDA7CisgICAgICAgIC8vIEhpZ2ggcnVubmVyIHRlc3QuICBjIGlzIG9mdGVuIGFmdGVyIHRoZSBsYXN0IHJhbmdlLCBzbyBhbgorICAgICAgICAvLyBpbml0aWFsIGNoZWNrIGZvciB0aGlzIGNvbmRpdGlvbiBwYXlzIG9mZi4KKyAgICAgICAgaWYgKGxlbiA+PSAyICYmIGMgPj0gbGlzdFtsZW4tMl0pIHJldHVybiBsZW4tMTsKKyAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgaW50IGhpID0gbGVuIC0gMTsKKyAgICAgICAgLy8gaW52YXJpYW50OiBjID49IGxpc3RbbG9dCisgICAgICAgIC8vIGludmFyaWFudDogYyA8IGxpc3RbaGldCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGludCBpID0gKGxvICsgaGkpID4+PiAxOworICAgICAgICAgICAgaWYgKGkgPT0gbG8pIHJldHVybiBoaTsKKyAgICAgICAgICAgIGlmIChjIDwgbGlzdFtpXSkgeworICAgICAgICAgICAgICAgIGhpID0gaTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG8gPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIC8vIFVucm9sbGVkIGJpbmFyeSBzZWFyY2gKKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIHByaXZhdGUgaW50IHZhbGlkTGVuID0gLTE7IC8vIHZhbGlkYXRlZCB2YWx1ZSBvZiBsZW4KKy8vICAgIHByaXZhdGUgaW50IHRvcE9mTG93OworLy8gICAgcHJpdmF0ZSBpbnQgdG9wT2ZIaWdoOworLy8gICAgcHJpdmF0ZSBpbnQgcG93ZXI7CisvLyAgICBwcml2YXRlIGludCBkZWx0YVN0YXJ0OworLy8KKy8vICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZSgpIHsKKy8vICAgICAgICBpZiAobGVuIDw9IDEpIHsKKy8vICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibGlzdC5sZW49PSIgKyBsZW4gKyAiOyBtdXN0IGJlID4xIik7CisvLyAgICAgICAgfQorLy8KKy8vICAgICAgICAvLyBmaW5kIGdyZWF0ZXN0IHBvd2VyIG9mIDIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGxlbgorLy8gICAgICAgIGZvciAocG93ZXIgPSBleHAyLmxlbmd0aC0xOyBwb3dlciA+IDAgJiYgZXhwMltwb3dlcl0gPiBsZW47IHBvd2VyLS0pIHt9CisvLworLy8gICAgICAgIC8vIGFzc2VydChleHAyW3Bvd2VyXSA8PSBsZW4pOworLy8KKy8vICAgICAgICAvLyBkZXRlcm1pbmUgdGhlIHN0YXJ0aW5nIHBvaW50cworLy8gICAgICAgIHRvcE9mTG93ID0gZXhwMltwb3dlcl0gLSAxOworLy8gICAgICAgIHRvcE9mSGlnaCA9IGxlbiAtIDE7CisvLyAgICAgICAgZGVsdGFTdGFydCA9IGV4cDJbcG93ZXItMV07CisvLyAgICAgICAgdmFsaWRMZW4gPSBsZW47CisvLyAgICB9CisvLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGV4cDJbXSA9IHsKKy8vICAgICAgICAweDEsIDB4MiwgMHg0LCAweDgsCisvLyAgICAgICAgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwKKy8vICAgICAgICAweDEwMCwgMHgyMDAsIDB4NDAwLCAweDgwMCwKKy8vICAgICAgICAweDEwMDAsIDB4MjAwMCwgMHg0MDAwLCAweDgwMDAsCisvLyAgICAgICAgMHgxMDAwMCwgMHgyMDAwMCwgMHg0MDAwMCwgMHg4MDAwMCwKKy8vICAgICAgICAweDEwMDAwMCwgMHgyMDAwMDAsIDB4NDAwMDAwLCAweDgwMDAwMCwKKy8vICAgICAgICAweDEwMDAwMDAsIDB4MjAwMDAwMCwgMHg0MDAwMDAwLCAweDgwMDAwMDAsCisvLyAgICAgICAgMHgxMDAwMDAwMCwgMHgyMDAwMDAwMCAvLyAsIDB4NDAwMDAwMDAgLy8gbm8gdW5zaWduZWQgaW50IGluIEphdmEKKy8vICAgIH07CisvLworLy8gICAgLyoqCisvLyAgICAgKiBVbnJvbGxlZCBsb3dlc3QgaW5kZXggR1QuCisvLyAgICAgKi8KKy8vICAgIHByaXZhdGUgZmluYWwgaW50IGxlYXN0SW5kZXhHVChpbnQgc2VhcmNoVmFsdWUpIHsKKy8vCisvLyAgICAgICAgaWYgKGxlbiAhPSB2YWxpZExlbikgeworLy8gICAgICAgICAgICBpZiAobGVuID09IDEpIHJldHVybiAwOworLy8gICAgICAgICAgICB2YWxpZGF0ZSgpOworLy8gICAgICAgIH0KKy8vICAgICAgICBpbnQgdGVtcDsKKy8vCisvLyAgICAgICAgLy8gc2V0IHVwIGluaXRpYWwgcmFuZ2UgdG8gc2VhcmNoLiBFYWNoIHN1YnJhbmdlIGlzIGEgcG93ZXIgb2YgdHdvIGluIGxlbmd0aAorLy8gICAgICAgIGludCBoaWdoID0gc2VhcmNoVmFsdWUgPCBsaXN0W3RvcE9mTG93XSA/IHRvcE9mTG93IDogdG9wT2ZIaWdoOworLy8KKy8vICAgICAgICAvLyBDb21wbGV0ZWx5IHVucm9sbGVkIGJpbmFyeSBzZWFyY2gsIGZvbGhpZ2hpbmcgIlByb2dyYW1taW5nIFBlYXJscyIKKy8vICAgICAgICAvLyBFYWNoIGNhc2UgZGVsaWJlcmF0ZWx5IGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQKKy8vICAgICAgICAvLyBMb2dpY2FsbHksIGxpc3RbLTFdIDwgYWxsX3NlYXJjaF92YWx1ZXMgJiYgbGlzdFtjb3VudF0gPiBhbGxfc2VhcmNoX3ZhbHVlcworLy8gICAgICAgIC8vIGFsdGhvdWdoIHRoZSB2YWx1ZXMgLTEgYW5kIGNvdW50IGFyZSBuZXZlciBhY3R1YWxseSB0b3VjaGVkLgorLy8KKy8vICAgICAgICAvLyBUaGUgYm91bmRzIGF0IGVhY2ggcG9pbnQgYXJlIGxvdyAmIGhpZ2gsCisvLyAgICAgICAgLy8gd2hlcmUgbG93ID09IGhpZ2ggLSBkZWx0YSoyCisvLyAgICAgICAgLy8gc28gaGlnaCAtIGRlbHRhIGlzIHRoZSBtaWRwb2ludAorLy8KKy8vICAgICAgICAvLyBUaGUgaW52YXJpYW50IEFGVEVSIGVhY2ggbGluZSBpcyB0aGF0IGxpc3RbbG93XSA8IHNlYXJjaFZhbHVlIDw9IGxpc3RbaGlnaF0KKy8vCisvLyAgICAgICAgc3dpdGNoIChwb3dlcikgeworLy8gICAgICAgIC8vY2FzZSAzMTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0weDQwMDAwMDAwXSkgaGlnaCA9IHRlbXA7IC8vIG5vIHVuc2lnbmVkIGludCBpbiBKYXZhCisvLyAgICAgICAgY2FzZSAzMDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0weDIwMDAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyOTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0weDEwMDAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgMjg6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtIDB4ODAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMjc6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtIDB4NDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMjY6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtIDB4MjAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMjU6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtIDB4MTAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDI0OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgMHg4MDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDIzOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgMHg0MDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDIyOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgMHgyMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDIxOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgMHgxMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAyMDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAweDgwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxOTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAweDQwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxODogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAweDIwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxNzogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAweDEwMDAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgMTY6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgIDB4ODAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTU6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgIDB4NDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTQ6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgIDB4MjAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTM6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgIDB4MTAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDEyOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgMHg4MDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDExOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgMHg0MDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDEwOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgMHgyMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICA5OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgMHgxMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAgODogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgICAweDgwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAgNzogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgICAweDQwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAgNjogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgICAweDIwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAgNTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgICAweDEwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgIDQ6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgIDB4OF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDM6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgIDB4NF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDI6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgIDB4Ml0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDE6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgIDB4MV0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgcmV0dXJuIGhpZ2g7CisvLyAgICB9CisvLworLy8gICAgLy8gRm9yIGRlYnVnZ2luZyBvbmx5CisvLyAgICBwdWJsaWMgaW50IGxlbigpIHsKKy8vICAgICAgICByZXR1cm4gbGVuOworLy8gICAgfQorLy8KKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgZXZlcnkgY2hhcmFjdGVyCisgICAgICogb2YgdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgLy9pbnQgaSA9IC0xOworICAgICAgICAvL3doaWxlICh0cnVlKSB7CisgICAgICAgIC8vICAgIGlmIChzdGFydCA8IGxpc3RbKytpXSkgYnJlYWs7CisgICAgICAgIC8vfQorICAgICAgICBpbnQgaSA9IGZpbmRDb2RlUG9pbnQoc3RhcnQpOworICAgICAgICByZXR1cm4gKChpICYgMSkgIT0gMCAmJiBlbmQgPCBsaXN0W2ldKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIGdpdmVuCisgICAgICogbXVsdGljaGFyYWN0ZXIgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzIHN0cmluZyB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgc3BlY2lmaWVkIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zKFN0cmluZyBzKSB7CisKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdzLmNvbnRhaW5zKHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5zKGNwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHN0cmluZ3MKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoVW5pY29kZVNldCBjKSB7CisgICAgICAgIC8vIFRoZSBzcGVjaWZpZWQgc2V0IGlzIGEgc3Vic2V0IGlmIGFsbCBvZiBpdHMgcGFpcnMgYXJlIGNvbnRhaW5lZCBpbgorICAgICAgICAvLyB0aGlzIHNldC4gIEl0J3MgcG9zc2libGUgdG8gY29kZSB0aGlzIG1vcmUgZWZmaWNpZW50bHkgaW4gdGVybXMgb2YKKyAgICAgICAgLy8gZGlyZWN0IG1hbmlwdWxhdGlvbiBvZiB0aGUgaW52ZXJzaW9uIGxpc3RzIGlmIHRoZSBuZWVkIGFyaXNlcy4KKyAgICAgICAgaW50IG4gPSBjLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgaWYgKCFjb250YWlucyhjLmdldFJhbmdlU3RhcnQoaSksIGMuZ2V0UmFuZ2VFbmQoaSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghc3RyaW5ncy5jb250YWluc0FsbChjLnN0cmluZ3MpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHBhcnRpdGlvbiBvZiB0aGUgc3RyaW5nIHN1Y2ggdGhhdCB0aGlzIHNldCBjb250YWlucyBlYWNoIG9mIHRoZSBwYXJ0aXRpb25lZCBzdHJpbmdzLgorICAgICAqIEZvciBleGFtcGxlLCBmb3IgdGhlIFVuaWNvZGUgc2V0IFthe2JjfXtjZH1dPGJyPgorICAgICAqIGNvbnRhaW5zQWxsIGlzIHRydWUgZm9yIGVhY2ggb2Y6ICJhIiwgImJjIiwgIiJjZGJjYSI8YnI+CisgICAgICogY29udGFpbnNBbGwgaXMgZmFsc2UgZm9yIGVhY2ggb2Y6ICJhY2IiLCAiYmNkYSIsICJiY3giPGJyPgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBjb250YWluaW5nIGNoYXJhY3RlcnMgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChTdHJpbmcgcykgeworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmICghY29udGFpbnMoY3ApKSAgeworICAgICAgICAgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5zQWxsKHMsIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY3Vyc2l2ZSByb3V0aW5lIGNhbGxlZCBpZiB3ZSBmYWlsIHRvIGZpbmQgYSBtYXRjaCBpbiBjb250YWluc0FsbCwgYW5kIHRoZXJlIGFyZSBzdHJpbmdzCisgICAgICogQHBhcmFtIHMgc291cmNlIHN0cmluZworICAgICAqIEBwYXJhbSBpIHBvaW50IHRvIG1hdGNoIHRvIHRoZSBlbmQgb24KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgb2sKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY29udGFpbnNBbGwoU3RyaW5nIHMsIGludCBpKSB7CisgICAgICAgIGlmIChpID49IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGludCAgY3A9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgaWYgKGNvbnRhaW5zKGNwKSAmJiBjb250YWluc0FsbChzLCBpK1VURjE2LmdldENoYXJDb3VudChjcCkpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzZXRTdHIgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChzLnN0YXJ0c1dpdGgoc2V0U3RyLCBpKSAmJiAgY29udGFpbnNBbGwocywgaStzZXRTdHIubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHJlZ2V4IHBhdHRlcm4gZXF1aXZhbGVudCB0byB0aGlzIFVuaWNvZGVTZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlZ2V4RXF1aXZhbGVudCgpIHsKKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpID09IDApIHJldHVybiB0b1N0cmluZygpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiKD86Iik7CisgICAgICAgIF9nZW5lcmF0ZVBhdHRlcm4ocmVzdWx0LCB0cnVlLCBmYWxzZSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd8Jyk7CisgICAgICAgICAgICBfYXBwZW5kVG9QYXQocmVzdWx0LCAoU3RyaW5nKSBpdC5uZXh0KCksIHRydWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCIpIikudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgbm9uZSBvZiB0aGUgY2hhcmFjdGVycworICAgICAqIG9mIHRoZSBnaXZlbiByYW5nZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IC0xOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKHN0YXJ0IDwgbGlzdFsrK2ldKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKChpICYgMSkgPT0gMCAmJiBlbmQgPCBsaXN0W2ldKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgbm9uZSBvZiB0aGUgY2hhcmFjdGVycyBvciBzdHJpbmdzIGluIHRoaXMgVW5pY29kZVNldCBhcHBlYXJzIGluIHRoZSBzdHJpbmcuCisgICAgICogRm9yIGV4YW1wbGUsIGZvciB0aGUgVW5pY29kZSBzZXQgW2F7YmN9e2NkfV08YnI+CisgICAgICogY29udGFpbnNOb25lIGlzIHRydWUgZm9yOiAieHkiLCAiY2IiPGJyPgorICAgICAqIGNvbnRhaW5zTm9uZSBpcyBmYWxzZSBmb3I6ICJhIiwgImJjIiwgImJjZCI8YnI+CisgICAgICogQHBhcmFtIGMgc2V0IHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmUoVW5pY29kZVNldCBjKSB7CisgICAgICAgIC8vIFRoZSBzcGVjaWZpZWQgc2V0IGlzIGEgc3Vic2V0IGlmIGFsbCBvZiBpdHMgcGFpcnMgYXJlIGNvbnRhaW5lZCBpbgorICAgICAgICAvLyB0aGlzIHNldC4gIEl0J3MgcG9zc2libGUgdG8gY29kZSB0aGlzIG1vcmUgZWZmaWNpZW50bHkgaW4gdGVybXMgb2YKKyAgICAgICAgLy8gZGlyZWN0IG1hbmlwdWxhdGlvbiBvZiB0aGUgaW52ZXJzaW9uIGxpc3RzIGlmIHRoZSBuZWVkIGFyaXNlcy4KKyAgICAgICAgaW50IG4gPSBjLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgaWYgKCFjb250YWluc05vbmUoYy5nZXRSYW5nZVN0YXJ0KGkpLCBjLmdldFJhbmdlRW5kKGkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIVNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKHN0cmluZ3MsIFNvcnRlZFNldFJlbGF0aW9uLkRJU0pPSU5ULCBjLnN0cmluZ3MpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmUoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoY29udGFpbnMoY3ApKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICAvLyBkbyBhIGxhc3QgY2hlY2sgdG8gbWFrZSBzdXJlIG5vIHN0cmluZ3MgYXJlIGluLgorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIAlTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAJaWYgKHMuaW5kZXhPZihpdGVtKSA+PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogaW4gdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWluc1NvbWUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNOb25lKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBvbmUgb3IgbW9yZSBvZiB0aGUgY2hhcmFjdGVycworICAgICAqIGFuZCBzdHJpbmdzIG9mIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgc2V0IHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gY29udGFpbnNTb21lKFVuaWNvZGVTZXQgcykgeworICAgICAgICByZXR1cm4gIWNvbnRhaW5zTm9uZShzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBjb250YWluaW5nIGNoYXJhY3RlcnMgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWluc1NvbWUoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuICFjb250YWluc05vbmUocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIHNwZWNpZmllZCBzZXQgdG8gdGhpcyBzZXQgaWYKKyAgICAgKiB0aGV5J3JlIG5vdCBhbHJlYWR5IHByZXNlbnQuICBUaGlzIG9wZXJhdGlvbiBlZmZlY3RpdmVseQorICAgICAqIG1vZGlmaWVzIHRoaXMgc2V0IHNvIHRoYXQgaXRzIHZhbHVlIGlzIHRoZSA8aT51bmlvbjwvaT4gb2YgdGhlIHR3bworICAgICAqIHNldHMuICBUaGUgYmVoYXZpb3Igb2YgdGhpcyBvcGVyYXRpb24gaXMgdW5zcGVjaWZpZWQgaWYgdGhlIHNwZWNpZmllZAorICAgICAqIGNvbGxlY3Rpb24gaXMgbW9kaWZpZWQgd2hpbGUgdGhlIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjIHNldCB3aG9zZSBlbGVtZW50cyBhcmUgdG8gYmUgYWRkZWQgdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYWRkQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBhZGQoYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIHN0cmluZ3MuYWRkQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbnMgb25seSB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgdGhhdCBhcmUgY29udGFpbmVkIGluIHRoZQorICAgICAqIHNwZWNpZmllZCBzZXQuICBJbiBvdGhlciB3b3JkcywgcmVtb3ZlcyBmcm9tIHRoaXMgc2V0IGFsbCBvZgorICAgICAqIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBub3QgY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQgc2V0LiAgVGhpcworICAgICAqIG9wZXJhdGlvbiBlZmZlY3RpdmVseSBtb2RpZmllcyB0aGlzIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcworICAgICAqIHRoZSA8aT5pbnRlcnNlY3Rpb248L2k+IG9mIHRoZSB0d28gc2V0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjIHNldCB0aGF0IGRlZmluZXMgd2hpY2ggZWxlbWVudHMgdGhpcyBzZXQgd2lsbCByZXRhaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmV0YWluQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXRhaW4oYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIHN0cmluZ3MucmV0YWluQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgZnJvbSB0aGlzIHNldCBhbGwgb2YgaXRzIGVsZW1lbnRzIHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgc2V0LiAgVGhpcyBvcGVyYXRpb24gZWZmZWN0aXZlbHkgbW9kaWZpZXMgdGhpcworICAgICAqIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyB0aGUgPGk+YXN5bW1ldHJpYyBzZXQgZGlmZmVyZW5jZTwvaT4gb2YKKyAgICAgKiB0aGUgdHdvIHNldHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tCisgICAgICogICAgICAgICAgdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmVtb3ZlQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICByZXRhaW4oYy5saXN0LCBjLmxlbiwgMik7CisgICAgICAgIHN0cmluZ3MucmVtb3ZlQWxsKGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnRzIGluIHRoaXMgc2V0IGFsbCBlbGVtZW50cyBjb250YWluZWQgaW4gdGhlIHNwZWNpZmllZAorICAgICAqIHNldC4gIEFueSBjaGFyYWN0ZXIgaW4gdGhlIG90aGVyIHNldCB3aWxsIGJlIHJlbW92ZWQgaWYgaXQgaXMKKyAgICAgKiBpbiB0aGlzIHNldCwgb3Igd2lsbCBiZSBhZGRlZCBpZiBpdCBpcyBub3QgaW4gdGhpcyBzZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHdpbGwgYmUgY29tcGxlbWVudGVkIGZyb20KKyAgICAgKiAgICAgICAgICB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wbGVtZW50QWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICB4b3IoYy5saXN0LCBjLmxlbiwgMCk7CisgICAgICAgIFNvcnRlZFNldFJlbGF0aW9uLmRvT3BlcmF0aW9uKHN0cmluZ3MsIFNvcnRlZFNldFJlbGF0aW9uLkNPTVBMRU1FTlRBTEwsIGMuc3RyaW5ncyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIG9mIHRoZSBlbGVtZW50cyBmcm9tIHRoaXMgc2V0LiAgVGhpcyBzZXQgd2lsbCBiZQorICAgICAqIGVtcHR5IGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNsZWFyKCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBsaXN0WzBdID0gSElHSDsKKyAgICAgICAgbGVuID0gMTsKKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgc3RyaW5ncy5jbGVhcigpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRpb24gbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJhbmdlcyBjb250YWluZWQgaW4KKyAgICAgKiB0aGlzIHNldC4KKyAgICAgKiBAc2VlICNnZXRSYW5nZVN0YXJ0CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlQ291bnQoKSB7CisgICAgICAgIHJldHVybiBsZW4vMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRpb24gbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYW5nZSBvZiB0aGlzIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBpbmRleCBpcyBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIDxjb2RlPjAuLmdldFJhbmdlQ291bnQoKS0xPC9jb2RlPgorICAgICAqIEBzZWUgI2dldFJhbmdlQ291bnQKKyAgICAgKiBAc2VlICNnZXRSYW5nZUVuZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmFuZ2VTdGFydChpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIGxpc3RbaW5kZXgqMl07CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZQorICAgICAqIHNwZWNpZmllZCByYW5nZSBvZiB0aGlzIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBpbmRleCBpcyBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIDxjb2RlPjAuLmdldFJhbmdlQ291bnQoKS0xPC9jb2RlPgorICAgICAqIEBzZWUgI2dldFJhbmdlU3RhcnQKKyAgICAgKiBAc2VlICNnZXRSYW5nZUVuZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmFuZ2VFbmQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiAobGlzdFtpbmRleCoyICsgMV0gLSAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFsbG9jYXRlIHRoaXMgb2JqZWN0cyBpbnRlcm5hbCBzdHJ1Y3R1cmVzIHRvIHRha2UgdXAgdGhlIGxlYXN0CisgICAgICogcG9zc2libGUgc3BhY2UsIHdpdGhvdXQgY2hhbmdpbmcgdGhpcyBvYmplY3QncyB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wYWN0KCkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAobGVuICE9IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtsZW5dOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAwLCB0ZW1wLCAwLCBsZW4pOworICAgICAgICAgICAgbGlzdCA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgcmFuZ2VMaXN0ID0gbnVsbDsKKyAgICAgICAgYnVmZmVyID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHNwZWNpZmllZCBvYmplY3Qgd2l0aCB0aGlzIHNldCBmb3IgZXF1YWxpdHkuICBSZXR1cm5zCisgICAgICogPHR0PnRydWU8L3R0PiBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBpcyBhbHNvIGEgc2V0LCB0aGUgdHdvIHNldHMKKyAgICAgKiBoYXZlIHRoZSBzYW1lIHNpemUsIGFuZCBldmVyeSBtZW1iZXIgb2YgdGhlIHNwZWNpZmllZCBzZXQgaXMKKyAgICAgKiBjb250YWluZWQgaW4gdGhpcyBzZXQgKG9yIGVxdWl2YWxlbnRseSwgZXZlcnkgbWVtYmVyIG9mIHRoaXMgc2V0IGlzCisgICAgICogY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQgc2V0KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvIE9iamVjdCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhlIHNwZWNpZmllZCBPYmplY3QgaXMgZXF1YWwgdG8gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHRoYXQgPSAoVW5pY29kZVNldCkgbzsKKyAgICAgICAgICAgIGlmIChsZW4gIT0gdGhhdC5sZW4pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdFtpXSAhPSB0aGF0Lmxpc3RbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyaW5ncy5lcXVhbHModGhhdC5zdHJpbmdzKSkgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBzZXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgc2V0LgorICAgICAqIEBzZWUgamF2YS5sYW5nLk9iamVjdCNoYXNoQ29kZSgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGxlbjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgcmVzdWx0ICo9IDEwMDAwMDM7CisgICAgICAgICAgICByZXN1bHQgKz0gbGlzdFtpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByb2dyYW1tZXItcmVhZGFibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiB0b1BhdHRlcm4odHJ1ZSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IFBhdHRlcm4gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBnaXZlbiBwYXR0ZXJuLCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBUaGUgY2hhcmFjdGVyCisgICAgICogYXQgcGF0dGVybi5jaGFyQXQocG9zLmdldEluZGV4KCkpIG11c3QgYmUgJ1snLCBvciB0aGUgcGFyc2UgZmFpbHMuCisgICAgICogUGFyc2luZyBjb250aW51ZXMgdW50aWwgdGhlIGNvcnJlc3BvbmRpbmcgY2xvc2luZyAnXScuICBJZiBhIHN5bnRheCBlcnJvcgorICAgICAqIGlzIGVuY291bnRlcmVkIGJldHdlZW4gdGhlIG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2UsIHRoZSBwYXJzZSBmYWlscy4KKyAgICAgKiBVcG9uIHJldHVybiBmcm9tIGEgc3VjY2Vzc2Z1bCBwYXJzZSwgdGhlIFBhcnNlUG9zaXRpb24gaXMgdXBkYXRlZCB0bworICAgICAqIHBvaW50IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjbG9zaW5nICddJywgYW5kIGFuIGludmVyc2lvbgorICAgICAqIGxpc3QgZm9yIHRoZSBwYXJzZWQgcGF0dGVybiBpcyByZXR1cm5lZC4gIFRoaXMgbWV0aG9kCisgICAgICogY2FsbHMgaXRzZWxmIHJlY3Vyc2l2ZWx5IHRvIHBhcnNlIGVtYmVkZGVkIHN1YnBhdHRlcm5zLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIHBhcnNlZC4gIFRoZQorICAgICAqIHBvcnRpb24gb2YgdGhlIHN0cmluZyBmcm9tIHBvcy5nZXRJbmRleCgpLCB3aGljaCBtdXN0IGJlIGEgJ1snLCB0byB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNsb3NpbmcgJ10nLCBpcyBwYXJzZWQuCisgICAgICogQHBhcmFtIHBvcyB1cG9uIGVudHJ5LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gYmVpbmcgcGFyc2luZy4gIFRoZQorICAgICAqIGNoYXJhY3RlciBhdCBwYXR0ZXJuLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgbXVzdCBiZSBhICdbJy4gIFVwb24gcmV0dXJuCisgICAgICogZnJvbSBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHBvcy5nZXRJbmRleCgpIGlzIGVpdGhlciB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZQorICAgICAqIGNsb3NpbmcgJ10nIG9mIHRoZSBwYXJzZWQgcGF0dGVybiwgb3IgcGF0dGVybi5sZW5ndGgoKSBpZiB0aGUgY2xvc2luZyAnXScKKyAgICAgKiBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIEByZXR1cm4gYW4gaW52ZXJzaW9uIGxpc3QgZm9yIHRoZSBwYXJzZWQgc3Vic3RyaW5nCisgICAgICogb2YgPGNvZGU+cGF0dGVybjwvY29kZT4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhcnNlIGZhaWxzLgorICAgICAqLworICAgIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbFRhYmxlIHN5bWJvbHMsCisgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKworICAgICAgICAvLyBOZWVkIHRvIGJ1aWxkIHRoZSBwYXR0ZXJuIGluIGEgdGVtcG9yYXJ5IHN0cmluZyBiZWNhdXNlCisgICAgICAgIC8vIF9hcHBseVBhdHRlcm4gY2FsbHMgYWRkKCkgZXRjLiwgd2hpY2ggc2V0IHBhdCB0byBlbXB0eS4KKyAgICAgICAgYm9vbGVhbiBwYXJzZVBvc2l0aW9uV2FzTnVsbCA9IHBvcyA9PSBudWxsOworICAgICAgICBpZiAocGFyc2VQb3NpdGlvbldhc051bGwpIHsKKyAgICAgICAgICAgIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlYnVpbHRQYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycyA9CisgICAgICAgICAgICBuZXcgUnVsZUNoYXJhY3Rlckl0ZXJhdG9yKHBhdHRlcm4sIHN5bWJvbHMsIHBvcyk7CisgICAgICAgIGFwcGx5UGF0dGVybihjaGFycywgc3ltYm9scywgcmVidWlsdFBhdCwgb3B0aW9ucyk7CisgICAgICAgIGlmIChjaGFycy5pblZhcmlhYmxlKCkpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiRXh0cmEgY2hhcnMgaW4gdmFyaWFibGUgdmFsdWUiKTsKKyAgICAgICAgfQorICAgICAgICBwYXQgPSByZWJ1aWx0UGF0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uV2FzTnVsbCkgeworICAgICAgICAgICAgaW50IGkgPSBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAgICAgLy8gU2tpcCBvdmVyIHRyYWlsaW5nIHdoaXRlc3BhY2UKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIElHTk9SRV9TUEFDRSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGkgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKHBhdHRlcm4sIGkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSAhPSBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUGFyc2Ugb2YgXCIiICsgcGF0dGVybiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgZmFpbGVkIGF0ICIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSB0aGUgcGF0dGVybiBmcm9tIHRoZSBnaXZlbiBSdWxlQ2hhcmFjdGVySXRlcmF0b3IuICBUaGUKKyAgICAgKiBpdGVyYXRvciBpcyBhZHZhbmNlZCBvdmVyIHRoZSBwYXJzZWQgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gY2hhcnMgaXRlcmF0b3Igb3ZlciB0aGUgcGF0dGVybiBjaGFyYWN0ZXJzLiAgVXBvbiByZXR1cm4KKyAgICAgKiBpdCB3aWxsIGJlIGFkdmFuY2VkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHBhcnNlZAorICAgICAqIHBhdHRlcm4sIG9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiBpZiBhbGwgY2hhcmFjdGVycyBhcmUKKyAgICAgKiBwYXJzZWQuCisgICAgICogQHBhcmFtIHN5bWJvbHMgc3ltYm9sIHRhYmxlIHRvIHVzZSB0byBwYXJzZSBhbmQgZGVyZWZlcmVuY2UKKyAgICAgKiB2YXJpYWJsZXMsIG9yIG51bGwgaWYgbm9uZS4KKyAgICAgKiBAcGFyYW0gcmVidWlsdFBhdCB0aGUgcGF0dGVybiB0aGF0IHdhcyBwYXJzZWQsIHJlYnVpbHQgb3IKKyAgICAgKiBjb3BpZWQgZnJvbSB0aGUgaW5wdXQgcGF0dGVybiwgYXMgYXBwcm9wcmlhdGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXQgbWFzayBvZiB6ZXJvIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgKiBJR05PUkVfU1BBQ0UsIENBU0UuCisgICAgICovCisgICAgdm9pZCBhcHBseVBhdHRlcm4oUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIGNoYXJzLCBTeW1ib2xUYWJsZSBzeW1ib2xzLAorICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZWJ1aWx0UGF0LCBpbnQgb3B0aW9ucykgeworCisgICAgICAgIC8vIFN5bnRheCBjaGFyYWN0ZXJzOiBbIF0gXiAtICYgeyB9CisKKyAgICAgICAgLy8gUmVjb2duaXplZCBzcGVjaWFsIGZvcm1zIGZvciBjaGFycywgc2V0czogYy1jIHMtcyBzJnMKKworICAgICAgICBpbnQgb3B0cyA9IFJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5QQVJTRV9WQVJJQUJMRVMgfAorICAgICAgICAgICAgICAgICAgIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5QQVJTRV9FU0NBUEVTOworICAgICAgICBpZiAoKG9wdGlvbnMgJiBJR05PUkVfU1BBQ0UpICE9IDApIHsKKyAgICAgICAgICAgIG9wdHMgfD0gUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLlNLSVBfV0hJVEVTUEFDRTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCksIGJ1ZiA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gdXNlUGF0ID0gZmFsc2U7CisgICAgICAgIFVuaWNvZGVTZXQgc2NyYXRjaCA9IG51bGw7CisgICAgICAgIE9iamVjdCBiYWNrdXAgPSBudWxsOworCisgICAgICAgIC8vIG1vZGU6IDA9YmVmb3JlIFssIDE9YmV0d2VlbiBbLi4uXSwgMj1hZnRlciBdCisgICAgICAgIC8vIGxhc3RJdGVtOiAwPW5vbmUsIDE9Y2hhciwgMj1zZXQKKyAgICAgICAgaW50IGxhc3RJdGVtID0gMCwgbGFzdENoYXIgPSAwLCBtb2RlID0gMDsKKyAgICAgICAgY2hhciBvcCA9IDA7CisKKyAgICAgICAgYm9vbGVhbiBpbnZlcnQgPSBmYWxzZTsKKworICAgICAgICBjbGVhcigpOworCisgICAgICAgIHdoaWxlIChtb2RlICE9IDIgJiYgIWNoYXJzLmF0RW5kKCkpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgIC8vIERlYnVnZ2luZyBhc3NlcnRpb24KKyAgICAgICAgICAgICAgICBpZiAoISgobGFzdEl0ZW0gPT0gMCAmJiBvcCA9PSAwKSB8fAorICAgICAgICAgICAgICAgICAgICAgIChsYXN0SXRlbSA9PSAxICYmIChvcCA9PSAwIHx8IG9wID09ICctJykpIHx8CisgICAgICAgICAgICAgICAgICAgICAgKGxhc3RJdGVtID09IDIgJiYgKG9wID09IDAgfHwgb3AgPT0gJy0nIHx8IG9wID09ICcmJykpKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBib29sZWFuIGxpdGVyYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbmVzdGVkID0gbnVsbDsKKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gQ2hlY2sgZm9yIHByb3BlcnR5IHBhdHRlcm4KKworICAgICAgICAgICAgLy8gc2V0TW9kZTogMD1ub25lLCAxPXVuaWNvZGVzZXQsIDI9cHJvcGVydHlwYXQsIDM9cHJlcGFyc2VkCisgICAgICAgICAgICBpbnQgc2V0TW9kZSA9IDA7CisgICAgICAgICAgICBpZiAocmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKGNoYXJzLCBvcHRzKSkgeworICAgICAgICAgICAgICAgIHNldE1vZGUgPSAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBQYXJzZSAnWycgb2Ygb3BlbmluZyBkZWxpbWl0ZXIgT1IgbmVzdGVkIHNldC4KKyAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgbmVzdGVkIHNldCwgdXNlIGBzZXRNb2RlJyB0byBkZWZpbmUgaG93CisgICAgICAgICAgICAvLyB0aGUgc2V0IHNob3VsZCBiZSBwYXJzZWQuICBJZiB0aGUgJ1snIGlzIHBhcnQgb2YgdGhlCisgICAgICAgICAgICAvLyBvcGVuaW5nIGRlbGltaXRlciBmb3IgdGhpcyBwYXR0ZXJuLCBwYXJzZSBzcGVjaWFsCisgICAgICAgICAgICAvLyBzdHJpbmdzICJbIiwgIlteIiwgIlstIiwgYW5kICJbXi0iLiAgQ2hlY2sgZm9yIHN0YW5kLWluCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHJlcHJlc2VudGluZyBhIG5lc3RlZCBzZXQgaW4gdGhlIHN5bWJvbAorICAgICAgICAgICAgLy8gdGFibGUuCisKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFByZXBhcmUgdG8gYmFja3VwIGlmIG5lY2Vzc2FyeQorICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOworICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKworICAgICAgICAgICAgICAgIGlmIChjID09ICdbJyAmJiAhbGl0ZXJhbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFycy5zZXRQb3MoYmFja3VwKTsgLy8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRNb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBvcGVuaW5nICdbJyBkZWxpbWl0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZCgnWycpOworICAgICAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gY2hhcnMuZ2V0UG9zKGJhY2t1cCk7IC8vIHByZXBhcmUgdG8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdeJyAmJiAhbGl0ZXJhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmVydCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZCgnXicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOyAvLyBwcmVwYXJlIHRvIGJhY2t1cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBoYW5kbGUgc3BlY2lhbCBsZWFkaW5nICctJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSByZXN0YXJ0IGxvb3AgZm9yIG5lc3RlZCBbXSwgXHB7fSwgZXRjLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGhhbmRsZSBsaXRlcmFsICctJyBiZWxvdworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFycy5zZXRQb3MoYmFja3VwKTsgLy8gYmFja3VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN5bWJvbHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9IHN5bWJvbHMubG9va3VwTWF0Y2hlcihjKTsgLy8gbWF5IGJlIG51bGwKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgPSAoVW5pY29kZVNldCkgbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJTeW50YXggZXJyb3IiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBIYW5kbGUgYSBuZXN0ZWQgc2V0LiAgVGhpcyBlaXRoZXIgaXMgaW5saW5lIGluCisgICAgICAgICAgICAvLyB0aGUgcGF0dGVybiBvciByZXByZXNlbnRlZCBieSBhIHN0YW5kLWluIHRoYXQgaGFzCisgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGJlZW4gcGFyc2VkIGFuZCB3YXMgbG9va2VkIHVwIGluIHRoZSBzeW1ib2wKKyAgICAgICAgICAgIC8vIHRhYmxlLgorCisgICAgICAgICAgICBpZiAoc2V0TW9kZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiQ2hhciBleHBlY3RlZCBhZnRlciBvcGVyYXRvciIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFkZF91bmNoZWNrZWQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSBvcCA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG9wID09ICctJyB8fCBvcCA9PSAnJicpIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5lc3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JhdGNoID09IG51bGwpIHNjcmF0Y2ggPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgPSBzY3JhdGNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldE1vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVBhdHRlcm4oY2hhcnMsIHN5bWJvbHMsIHBhdCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2tpcElnbm9yZWQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVByb3BlcnR5UGF0dGVybihjaGFycywgcGF0LCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBgbmVzdGVkJyBhbHJlYWR5IHBhcnNlZAorICAgICAgICAgICAgICAgICAgICBuZXN0ZWQuX3RvUGF0dGVybihwYXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdXNlUGF0ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRW50aXJlIHBhdHRlcm4gaXMgYSBjYXRlZ29yeTsgbGVhdmUgcGFyc2UgbG9vcAorICAgICAgICAgICAgICAgICAgICBzZXQobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQWxsKG5lc3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgICAgICByZXRhaW5BbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBhZGRBbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3AgPSAwOworICAgICAgICAgICAgICAgIGxhc3RJdGVtID0gMjsKKworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobW9kZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJNaXNzaW5nICdbJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBQYXJzZSBzcGVjaWFsIChzeW50YXgpIGNoYXJhY3RlcnMuICBJZiB0aGUKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgY2hhcmFjdGVyIGlzIG5vdCBzcGVjaWFsLCBvciBpZiBpdCBpcyBlc2NhcGVkLAorICAgICAgICAgICAgLy8gdGhlbiBmYWxsIHRocm91Z2ggYW5kIGhhbmRsZSBpdCBiZWxvdy4KKworICAgICAgICAgICAgaWYgKCFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGxhc3RDaGFyLCBsYXN0Q2hhcik7CisgICAgICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IGZpbmFsIHRyYWlsaW5nICctJyBhcyBhIGxpdGVyYWwKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09ICctJykgeworICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChvcCwgb3ApOworICAgICAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3AgPT0gJyYnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlRyYWlsaW5nICcmJyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ10nKTsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcCA9IChjaGFyKSBjOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmVhdCBmaW5hbCB0cmFpbGluZyAnLScgYXMgYSBsaXRlcmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChjLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ10nICYmICFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoIi1dIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICInLScgbm90IGFmdGVyIGNoYXIgb3Igc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAyICYmIG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wID0gKGNoYXIpIGM7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIicmJyBub3QgYWZ0ZXIgc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnXic6CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiJ14nIG5vdCBhZnRlciAnWyciKTsKKyAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiTWlzc2luZyBvcGVyYW5kIGFmdGVyIG9wZXJhdG9yIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZF91bmNoZWNrZWQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWNoYXJzLmF0RW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGFycy5uZXh0KG9wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbCA9IGNoYXJzLmlzRXNjYXBlZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ30nICYmICFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2sgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA8IDEgfHwgIW9rKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgbXVsdGljaGFyYWN0ZXIgc3RyaW5nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBuZXcgc3RyaW5nLiBBZGQgaXQgdG8gc2V0IGFuZCBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkcm9wIHRocm91Z2ggdG8gdGhlIGZ1cnRoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2luZworICAgICAgICAgICAgICAgICAgICBhZGQoYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKCd7Jyk7CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGJ1Zi50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGOgorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHN5bWJvbHMgIG5vc3ltYm9scworICAgICAgICAgICAgICAgICAgICAvLyBbYS0kXSAgIGVycm9yICAgIGVycm9yIChhbWJpZ3VvdXMpCisgICAgICAgICAgICAgICAgICAgIC8vIFthJF0gICAgYW5jaG9yICAgYW5jaG9yCisgICAgICAgICAgICAgICAgICAgIC8vIFthLSR4XSAgdmFyICJ4IiogbGl0ZXJhbCAnJCcKKyAgICAgICAgICAgICAgICAgICAgLy8gW2EtJC5dICBlcnJvciAgICBsaXRlcmFsICckJworICAgICAgICAgICAgICAgICAgICAvLyAqV2Ugd29uJ3QgZ2V0IGhlcmUgaW4gdGhlIGNhc2Ugb2YgdmFyICJ4IgorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBjaGFycy5nZXRQb3MoYmFja3VwKTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGNoYXJzLm5leHQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSBjaGFycy5pc0VzY2FwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbmNob3IgPSAoYyA9PSAnXScgJiYgIWxpdGVyYWwpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyA9PSBudWxsICYmICFhbmNob3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2V0UG9zKGJhY2t1cCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gbGl0ZXJhbCAnJCcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yICYmIG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKFVuaWNvZGVNYXRjaGVyLkVUSEVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZVBhdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKFN5bWJvbFRhYmxlLlNZTUJPTF9SRUYpLmFwcGVuZCgnXScpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlVucXVvdGVkICckJyIpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gUGFyc2UgbGl0ZXJhbCBjaGFyYWN0ZXJzLiAgVGhpcyBpbmNsdWRlcyBib3RoCisgICAgICAgICAgICAvLyBlc2NhcGVkIGNoYXJzICgiXHU0RTAxIikgYW5kIG5vbi1zeW50YXggY2hhcmFjdGVycworICAgICAgICAgICAgLy8gKCJhIikuCisKKyAgICAgICAgICAgIHN3aXRjaCAobGFzdEl0ZW0pIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDE7CisgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGlmIChvcCA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDaGFyID49IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFsbG93IHJlZHVuZGFudCAoYS1hKSBvciBlbXB0eSAoYi1hKSByYW5nZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBhcmUgbW9zdCBsaWtlbHkgdHlwb3MuCisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGxhc3RDaGFyLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGMsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSBvcCA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkX3VuY2hlY2tlZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBsYXN0Q2hhciA9IGM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGlmIChvcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiU2V0IGV4cGVjdGVkIGFmdGVyIG9wZXJhdG9yIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RDaGFyID0gYzsKKyAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobW9kZSAhPSAyKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIk1pc3NpbmcgJ10nIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFycy5za2lwSWdub3JlZChvcHRzKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSGFuZGxlIGdsb2JhbCBmbGFncyAoaW52ZXJ0LCBjYXNlIGluc2Vuc2l0aXZpdHkpLiAgSWYgdGhpcworICAgICAgICAgKiBwYXR0ZXJuIHNob3VsZCBiZSBjb21waWxlZCBjYXNlLWluc2Vuc2l0aXZlLCB0aGVuIHdlIG5lZWQKKyAgICAgICAgICogdG8gY2xvc2Ugb3ZlciBjYXNlIEJFRk9SRSBDT01QTEVNRU5USU5HLiAgVGhpcyBtYWtlcworICAgICAgICAgKiBwYXR0ZXJucyBsaWtlIC9bXmFiY10vaSB3b3JrLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0FTRSkgIT0gMCkgeworICAgICAgICAgICAgY2xvc2VPdmVyKENBU0UpOworICAgICAgICB9CisgICAgICAgIGlmIChpbnZlcnQpIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSB0aGUgcmVidWlsdCBwYXR0ZXJuIChwYXQpIG9ubHkgaWYgbmVjZXNzYXJ5LiAgUHJlZmVyIHRoZQorICAgICAgICAvLyBnZW5lcmF0ZWQgcGF0dGVybi4KKyAgICAgICAgaWYgKHVzZVBhdCkgeworICAgICAgICAgICAgcmVidWlsdFBhdC5hcHBlbmQocGF0LnRvU3RyaW5nKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgX2dlbmVyYXRlUGF0dGVybihyZWJ1aWx0UGF0LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN5bnRheEVycm9yKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycywgU3RyaW5nIG1zZykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJFcnJvcjogIiArIG1zZyArICIgYXQgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaGFycy50b1N0cmluZygpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyInKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGNvbnRlbnRzIG9mIHRoZSBVbmljb2RlU2V0IChhcyBzdHJpbmdzKSBpbnRvIGEgY29sbGVjdGlvbi4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNvbGxlY3Rpb24gdG8gYWRkIGludG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRBbGxUbyhDb2xsZWN0aW9uIHRhcmdldCkgeworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRoaXMpOworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICB0YXJnZXQuYWRkKGl0LmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgY29udGVudHMgb2YgdGhlIGNvbGxlY3Rpb24gKGFzIHN0cmluZ3MpIGludG8gdGhpcyBVbmljb2RlU2V0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGNvbGxlY3Rpb24gdG8gYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkQWxsKENvbGxlY3Rpb24gc291cmNlKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gc291cmNlLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGFkZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbXBsZW1lbnRhdGlvbjogVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IG5ld0xlbikgeworICAgICAgICBpZiAobmV3TGVuIDw9IGxpc3QubGVuZ3RoKSByZXR1cm47CisgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIDAsIHRlbXAsIDAsIGxlbik7CisgICAgICAgIGxpc3QgPSB0ZW1wOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlbnN1cmVCdWZmZXJDYXBhY2l0eShpbnQgbmV3TGVuKSB7CisgICAgICAgIGlmIChidWZmZXIgIT0gbnVsbCAmJiBuZXdMZW4gPD0gYnVmZmVyLmxlbmd0aCkgcmV0dXJuOworICAgICAgICBidWZmZXIgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc3VtZXMgc3RhcnQgPD0gZW5kLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gcmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChyYW5nZUxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgcmFuZ2VMaXN0ID0gbmV3IGludFtdIHsgc3RhcnQsIGVuZCsxLCBISUdIIH07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZUxpc3RbMF0gPSBzdGFydDsKKyAgICAgICAgICAgIHJhbmdlTGlzdFsxXSA9IGVuZCsxOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpc3Q7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IEZ1bmRhbWVudGFsIG9wZXJhdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHBvbGFyaXR5ID0gMCwgMyBpcyBub3JtYWw6IHggeG9yIHkKKyAgICAvLyBwb2xhcml0eSA9IDEsIDI6IHggeG9yIH55ID09IHggPT09IHkKKworICAgIHByaXZhdGUgVW5pY29kZVNldCB4b3IoaW50W10gb3RoZXIsIGludCBvdGhlckxlbiwgaW50IHBvbGFyaXR5KSB7CisgICAgICAgIGVuc3VyZUJ1ZmZlckNhcGFjaXR5KGxlbiArIG90aGVyTGVuKTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMCwgayA9IDA7CisgICAgICAgIGludCBhID0gbGlzdFtpKytdOworICAgICAgICBpbnQgYjsKKyAgICAgICAgaWYgKHBvbGFyaXR5ID09IDEgfHwgcG9sYXJpdHkgPT0gMikgeworICAgICAgICAgICAgYiA9IExPVzsKKyAgICAgICAgICAgIGlmIChvdGhlcltqXSA9PSBMT1cpIHsgLy8gc2tpcCBiYXNlIGlmIGFscmVhZHkgTE9XCisgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOworICAgICAgICB9CisgICAgICAgIC8vIHNpbXBsZXN0IG9mIGFsbCB0aGUgcm91dGluZXMKKyAgICAgICAgLy8gc29ydCB0aGUgdmFsdWVzLCBkaXNjYXJkaW5nIGlkZW50aWNhbHMhCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoYSA8IGIpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGEgIT0gSElHSCkgeyAvLyBhdCB0aGlzIHBvaW50LCBhID09IGIKKyAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIGJvdGggdmFsdWVzIQorICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBET05FIQorICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsKKyAgICAgICAgICAgICAgICBsZW4gPSBrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLyBwb2xhcml0eSA9IDAgaXMgbm9ybWFsOiB4IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggdW5pb24gfnkKKyAgICAvLyBwb2xhcml0eSA9IDE6IH54IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IHVuaW9uIH55CisKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYWRkKGludFtdIG90aGVyLCBpbnQgb3RoZXJMZW4sIGludCBwb2xhcml0eSkgeworICAgICAgICBlbnN1cmVCdWZmZXJDYXBhY2l0eShsZW4gKyBvdGhlckxlbik7CisgICAgICAgIGludCBpID0gMCwgaiA9IDAsIGsgPSAwOworICAgICAgICBpbnQgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgaW50IGIgPSBvdGhlcltqKytdOworICAgICAgICAvLyBjaGFuZ2UgZnJvbSB4b3IgaXMgdGhhdCB3ZSBoYXZlIHRvIGNoZWNrIG92ZXJsYXBwaW5nIHBhaXJzCisgICAgICAgIC8vIHBvbGFyaXR5IGJpdCAxIG1lYW5zIGEgaXMgc2Vjb25kLCBiaXQgMiBtZWFucyBiIGlzLgorICAgICAgICBtYWluOgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgc3dpdGNoIChwb2xhcml0eSkgeworICAgICAgICAgICAgICBjYXNlIDA6IC8vIGJvdGggZmlyc3Q7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgLy8gQmFjayB1cCBvdmVyIG92ZXJsYXBwaW5nIHJhbmdlcyBpbiBidWZmZXJbXQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGljayBsYXR0ZXIgZW5kIHZhbHVlIGluIGJ1ZmZlcltdIHZzLiBsaXN0W10KKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBtYXgobGlzdFtpXSwgYnVmZmVyWy0ta10pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSsrOyAvLyBDb21tb24gaWYvZWxzZSBjb2RlIGZhY3RvcmVkIG91dAorICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChrID4gMCAmJiBiIDw9IGJ1ZmZlcltrLTFdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gbWF4KG90aGVyW2pdLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBhLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzeW1tZXRyaWNhbDsgaXQgZG9lc24ndCBtYXR0ZXIgaWYKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYmFja3RyYWNrIHdpdGggYSBvciBiLiAtIGxpdQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG1heChsaXN0W2ldLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvdmVybGFwCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAzOiAvLyBib3RoIHNlY29uZDsgdGFrZSBoaWdoZXIgaWYgdW5lcXVhbCwgYW5kIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICBpZiAoYiA8PSBhKSB7IC8vIHRha2UgYQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChiID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsgICAvLyBmYWN0b3JlZCBjb21tb24gY29kZQorICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDE6IC8vIGEgc2Vjb25kLCBiIGZpcnN0OyBpZiBiIDwgYSwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyBubyBvdmVybGFwLCB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gT1ZFUkxBUCwgZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMjogLy8gYSBmaXJzdCwgYiBzZWNvbmQ7IGlmIGEgPCBiLCBvdmVybGFwCisgICAgICAgICAgICAgICAgaWYgKGIgPCBhKSB7IC8vIG5vIG92ZXJsYXAsIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7IGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSAgaWYgKGEgPCBiKSB7IC8vIE9WRVJMQVAsIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyW2srK10gPSBISUdIOyAgICAvLyB0ZXJtaW5hdGUKKyAgICAgICAgbGVuID0gazsKKyAgICAgICAgLy8gc3dhcCBsaXN0IGFuZCBidWZmZXIKKyAgICAgICAgaW50W10gdGVtcCA9IGxpc3Q7CisgICAgICAgIGxpc3QgPSBidWZmZXI7CisgICAgICAgIGJ1ZmZlciA9IHRlbXA7CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vIHBvbGFyaXR5ID0gMCBpcyBub3JtYWw6IHggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggaW50ZXJzZWN0IH55ID09IHNldC1taW51cworICAgIC8vIHBvbGFyaXR5ID0gMTogfnggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IGludGVyc2VjdCB+eQorCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHJldGFpbihpbnRbXSBvdGhlciwgaW50IG90aGVyTGVuLCBpbnQgcG9sYXJpdHkpIHsKKyAgICAgICAgZW5zdXJlQnVmZmVyQ2FwYWNpdHkobGVuICsgb3RoZXJMZW4pOworICAgICAgICBpbnQgaSA9IDAsIGogPSAwLCBrID0gMDsKKyAgICAgICAgaW50IGEgPSBsaXN0W2krK107CisgICAgICAgIGludCBiID0gb3RoZXJbaisrXTsKKyAgICAgICAgLy8gY2hhbmdlIGZyb20geG9yIGlzIHRoYXQgd2UgaGF2ZSB0byBjaGVjayBvdmVybGFwcGluZyBwYWlycworICAgICAgICAvLyBwb2xhcml0eSBiaXQgMSBtZWFucyBhIGlzIHNlY29uZCwgYml0IDIgbWVhbnMgYiBpcy4KKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocG9sYXJpdHkpIHsKKyAgICAgICAgICAgICAgY2FzZSAwOiAvLyBib3RoIGZpcnN0OyBkcm9wIHRoZSBzbWFsbGVyCisgICAgICAgICAgICAgICAgaWYgKGEgPCBiKSB7IC8vIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBvbmUsIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMzogLy8gYm90aCBzZWNvbmQ7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gYSA9PSBiLCB0YWtlIG9uZSwgZHJvcCBvdGhlcgorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7IGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAxOiAvLyBhIHNlY29uZCwgYiBmaXJzdDsKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gTk8gT1ZFUkxBUCwgZHJvcCBhCisgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiIDwgYSkgeyAvLyBPVkVSTEFQLCB0YWtlIGIKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOyBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDI6IC8vIGEgZmlyc3QsIGIgc2Vjb25kOyBpZiBhIDwgYiwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChiIDwgYSkgeyAvLyBubyBvdmVybGFwLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlICBpZiAoYSA8IGIpIHsgLy8gT1ZFUkxBUCwgdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsgICAgLy8gdGVybWluYXRlCisgICAgICAgIGxlbiA9IGs7CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4KGludCBhLCBpbnQgYikgeworICAgICAgICByZXR1cm4gKGEgPiBiKSA/IGEgOiBiOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEdlbmVyaWMgZmlsdGVyLWJhc2VkIHNjYW5uaW5nIGNvZGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGludGVyZmFjZSBGaWx0ZXIgeworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGludCBjb2RlUG9pbnQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE51bWVyaWNWYWx1ZUZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgTnVtZXJpY1ZhbHVlRmlsdGVyKGRvdWJsZSB2YWx1ZSkgeyB0aGlzLnZhbHVlID0gdmFsdWU7IH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGNoKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGNoKSA9PSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEdlbmVyYWxDYXRlZ29yeU1hc2tGaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXIgeworICAgICAgICBpbnQgbWFzazsKKyAgICAgICAgR2VuZXJhbENhdGVnb3J5TWFza0ZpbHRlcihpbnQgbWFzaykgeyB0aGlzLm1hc2sgPSBtYXNrOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgcmV0dXJuICgoMSA8PCBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpKSAmIG1hc2spICE9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbnRQcm9wZXJ0eUZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIGludCBwcm9wOworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIEludFByb3BlcnR5RmlsdGVyKGludCBwcm9wLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMucHJvcCA9IHByb3A7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGNoKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNoLCBwcm9wKSA9PSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcnNpb25JbmZvIGZvciB1bmFzc2lnbmVkIGNoYXJhY3RlcnMKKyAgICBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gTk9fVkVSU0lPTiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDAsIDAsIDAsIDApOworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVmVyc2lvbkZpbHRlciBpbXBsZW1lbnRzIEZpbHRlciB7CisgICAgICAgIFZlcnNpb25JbmZvIHZlcnNpb247CisgICAgICAgIFZlcnNpb25GaWx0ZXIoVmVyc2lvbkluZm8gdmVyc2lvbikgeyB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdiA9IFVDaGFyYWN0ZXIuZ2V0QWdlKGNoKTsKKyAgICAgICAgICAgIC8vIFJlZmVyZW5jZSBjb21wYXJpc29uIG9rOyBWZXJzaW9uSW5mbyBjYWNoZXMgYW5kIHJldXNlcworICAgICAgICAgICAgLy8gdW5pcXVlIG9iamVjdHMuCisgICAgICAgICAgICByZXR1cm4gdiAhPSBOT19WRVJTSU9OICYmCisgICAgICAgICAgICAgICAgICAgdi5jb21wYXJlVG8odmVyc2lvbikgPD0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHN5bmNocm9uaXplZCBVbmljb2RlU2V0IGdldEluY2x1c2lvbnMoaW50IHNyYykgeworICAgICAgICBpZiAoSU5DTFVTSU9OUyA9PSBudWxsKSB7CisgICAgICAgICAgICBJTkNMVVNJT05TID0gbmV3IFVuaWNvZGVTZXRbVUNoYXJhY3RlclByb3BlcnR5LlNSQ19DT1VOVF07CisgICAgICAgIH0KKyAgICAgICAgaWYoSU5DTFVTSU9OU1tzcmNdID09IG51bGwpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgaW5jbCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBzd2l0Y2goc3JjKSB7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUjoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS5hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19QUk9QU1ZFQzoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS51cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUl9BTkRfUFJPUFNWRUM6CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkuYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkudXByb3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0hTVDoKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS51aHN0X2FkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX05PUk06CisgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0FTRToKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQklESToKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQmlEaVByb3BzLmdldFNpbmdsZXRvbigpLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlVuaWNvZGVTZXQuZ2V0SW5jbHVzaW9ucyh1bmtub3duIHNyYyAiK3NyYysiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSU5DTFVTSU9OU1tzcmNdID0gaW5jbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSU5DTFVTSU9OU1tzcmNdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgZmlsdGVyLWJhc2VkIHNjYW5uaW5nIGNvZGUgZm9yIFVDRCBwcm9wZXJ0eSBVbmljb2RlU2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYXBwbHlGaWx0ZXIoRmlsdGVyIGZpbHRlciwgaW50IHNyYykgeworICAgICAgICAvLyBXYWxrIHRocm91Z2ggYWxsIFVuaWNvZGUgY2hhcmFjdGVycywgbm90aW5nIHRoZSBzdGFydAorICAgICAgICAvLyBhbmQgZW5kIG9mIGVhY2ggcmFuZ2UgZm9yIHdoaWNoIGZpbHRlci5jb250YWluKGMpIGlzCisgICAgICAgIC8vIHRydWUuICBBZGQgZWFjaCByYW5nZSB0byBhIHNldC4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgdXNlIHRoZSBJTkNMVVNJT05TIHNldCwgd2hpY2gKKyAgICAgICAgLy8gZW5jb2RlcyBpbmZvcm1hdGlvbiBhYm91dCBjaGFyYWN0ZXIgcmFuZ2VzIHRoYXQgYXJlIGtub3duCisgICAgICAgIC8vIHRvIGhhdmUgaWRlbnRpY2FsIHByb3BlcnRpZXMsIHN1Y2ggYXMgdGhlIENKSyBJZGVvZ3JhcGhzCisgICAgICAgIC8vIGZyb20gVSs0RTAwIHRvIFUrOUZBNS4gIElOQ0xVU0lPTlMgY29udGFpbnMgYWxsIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gZXhjZXB0IHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHN1Y2ggcmFuZ2VzLgorICAgICAgICAvLworICAgICAgICAvLyBUT0RPIFdoZXJlIHBvc3NpYmxlLCBpbnN0ZWFkIG9mIHNjYW5uaW5nIG92ZXIgY29kZSBwb2ludHMsCisgICAgICAgIC8vIHVzZSBpbnRlcm5hbCBwcm9wZXJ0eSBkYXRhIHRvIGluaXRpYWxpemUgVW5pY29kZVNldHMgZm9yCisgICAgICAgIC8vIHRob3NlIHByb3BlcnRpZXMuICBTY2FubmluZyBjb2RlIHBvaW50cyBpcyBzbG93LgorCisgICAgICAgIGNsZWFyKCk7CisKKyAgICAgICAgaW50IHN0YXJ0SGFzUHJvcGVydHkgPSAtMTsKKyAgICAgICAgVW5pY29kZVNldCBpbmNsdXNpb25zID0gZ2V0SW5jbHVzaW9ucyhzcmMpOworICAgICAgICBpbnQgbGltaXRSYW5nZSA9IGluY2x1c2lvbnMuZ2V0UmFuZ2VDb3VudCgpOworCisgICAgICAgIGZvciAoaW50IGo9MDsgajxsaW1pdFJhbmdlOyArK2opIHsKKyAgICAgICAgICAgIC8vIGdldCBjdXJyZW50IHJhbmdlCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmNsdXNpb25zLmdldFJhbmdlU3RhcnQoaik7CisgICAgICAgICAgICBpbnQgZW5kID0gaW5jbHVzaW9ucy5nZXRSYW5nZUVuZChqKTsKKworICAgICAgICAgICAgLy8gZm9yIGFsbCB0aGUgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlLCBwcm9jZXNzCisgICAgICAgICAgICBmb3IgKGludCBjaCA9IHN0YXJ0OyBjaCA8PSBlbmQ7ICsrY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBvbmx5IGFkZCB0byB0aGUgdW5pY29kZXNldCBvbiBpbmZsZWN0aW9uIHBvaW50cyAtLQorICAgICAgICAgICAgICAgIC8vIHdoZXJlIHRoZSBoYXNQcm9wZXJ0eSB2YWx1ZSBjaGFuZ2VzIHRvIGZhbHNlCisgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5jb250YWlucyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0SGFzUHJvcGVydHkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEhhc1Byb3BlcnR5ID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0SGFzUHJvcGVydHkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKHN0YXJ0SGFzUHJvcGVydHksIGNoLTEpOworICAgICAgICAgICAgICAgICAgICBzdGFydEhhc1Byb3BlcnR5ID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzdGFydEhhc1Byb3BlcnR5ID49IDApIHsKKyAgICAgICAgICAgIGFkZF91bmNoZWNrZWQoc3RhcnRIYXNQcm9wZXJ0eSwgMHgxMEZGRkYpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcnVsZSB3aGl0ZSBzcGFjZSBhbmQgY29tcHJlc3MKKyAgICAgKiBpbnRlcm5hbCBydWxlIHdoaXRlIHNwYWNlIHRvIGEgc2luZ2xlIHNwYWNlIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIEBzZWUgVUNoYXJhY3RlclByb3BlcnR5I2lzUnVsZVdoaXRlU3BhY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgbXVuZ2VDaGFyTmFtZShTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzb3VyY2UubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHNvdXJjZSwgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSAwIHx8CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9ICcgJzsgLy8gY29udmVydCB0byAnICcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IDAgJiYKKyAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgPT0gJyAnKSB7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKGJ1Zi5sZW5ndGgoKSAtIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBzZXQgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byBjb250YWluIHRob3NlIGNvZGUgcG9pbnRzIHdoaWNoIGhhdmUgdGhlCisgICAgICogZ2l2ZW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBiaW5hcnkgb3IgZW51bWVyYXRlZCBwcm9wZXJ0eSwgYXMKKyAgICAgKiByZXR1cm5lZCBieSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUuICBQcmlvciBjb250ZW50cyBvZgorICAgICAqIHRoaXMgc2V0IGFyZSBsb3N0LgorICAgICAqCisgICAgICogQHBhcmFtIHByb3AgYSBwcm9wZXJ0eSBpbiB0aGUgcmFuZ2UKKyAgICAgKiBVUHJvcGVydHkuQklOX1NUQVJULi5VUHJvcGVydHkuQklOX0xJTUlULTEgb3IKKyAgICAgKiBVUHJvcGVydHkuSU5UX1NUQVJULi5VUHJvcGVydHkuSU5UX0xJTUlULTEgb3IuCisgICAgICogVVByb3BlcnR5Lk1BU0tfU1RBUlQuLlVQcm9wZXJ0eS5NQVNLX0xJTUlULTEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UKKyAgICAgKiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUocHJvcCkuLgorICAgICAqIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShwcm9wKSwgd2l0aCBvbmUgZXhjZXB0aW9uLgorICAgICAqIElmIHByb3AgaXMgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSywgdGhlbiB2YWx1ZSBzaG91bGQgbm90IGJlCisgICAgICogYSBVQ2hhcmFjdGVyLmdldFR5cGUoKSByZXN1bHQsIGJ1dCByYXRoZXIgYSBtYXNrIHZhbHVlIHByb2R1Y2VkCisgICAgICogYnkgbG9naWNhbGx5IE9SaW5nICgxIDw8IFVDaGFyYWN0ZXIuZ2V0VHlwZSgpKSB2YWx1ZXMgdG9nZXRoZXIuCisgICAgICogVGhpcyBhbGxvd3MgZ3JvdXBlZCBjYXRlZ29yaWVzIHN1Y2ggYXMgWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoaXMgc2V0CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhcHBseUludFByb3BlcnR5VmFsdWUoaW50IHByb3AsIGludCB2YWx1ZSkgeworICAgICAgICBjaGVja0Zyb3plbigpOworICAgICAgICBpZiAocHJvcCA9PSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSB7CisgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgR2VuZXJhbENhdGVnb3J5TWFza0ZpbHRlcih2YWx1ZSksIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ0hBUik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgSW50UHJvcGVydHlGaWx0ZXIocHJvcCwgdmFsdWUpLCBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKS5nZXRTb3VyY2UocHJvcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworCisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byBjb250YWluIHRob3NlIGNvZGUgcG9pbnRzIHdoaWNoIGhhdmUgdGhlCisgICAgICogZ2l2ZW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eS4gIFByaW9yIGNvbnRlbnRzIG9mIHRoaXMKKyAgICAgKiBzZXQgYXJlIGxvc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcyBhIHByb3BlcnR5IGFsaWFzLCBlaXRoZXIgc2hvcnQgb3IgbG9uZy4KKyAgICAgKiBUaGUgbmFtZSBpcyBtYXRjaGVkIGxvb3NlbHkuICBTZWUgUHJvcGVydHlBbGlhc2VzLnR4dCBmb3IgbmFtZXMKKyAgICAgKiBhbmQgYSBkZXNjcmlwdGlvbiBvZiBsb29zZSBtYXRjaGluZy4gIElmIHRoZSB2YWx1ZSBzdHJpbmcgaXMKKyAgICAgKiBlbXB0eSwgdGhlbiB0aGlzIHN0cmluZyBpcyBpbnRlcnByZXRlZCBhcyBlaXRoZXIgYQorICAgICAqIEdlbmVyYWxfQ2F0ZWdvcnkgdmFsdWUgYWxpYXMsIGEgU2NyaXB0IHZhbHVlIGFsaWFzLCBhIGJpbmFyeQorICAgICAqIHByb3BlcnR5IGFsaWFzLCBvciBhIHNwZWNpYWwgSUQuICBTcGVjaWFsIElEcyBhcmUgbWF0Y2hlZAorICAgICAqIGxvb3NlbHkgYW5kIGNvcnJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBzZXRzOgorICAgICAqCisgICAgICogIkFOWSIgPSBbXHUwMDAwLVxVMDAxMEZGRkZdLAorICAgICAqICJBU0NJSSIgPSBbXHUwMDAwLVx1MDA3Rl0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBhIHZhbHVlIGFsaWFzLCBlaXRoZXIgc2hvcnQgb3IgbG9uZy4gIFRoZQorICAgICAqIG5hbWUgaXMgbWF0Y2hlZCBsb29zZWx5LiAgU2VlIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dCBmb3IKKyAgICAgKiBuYW1lcyBhbmQgYSBkZXNjcmlwdGlvbiBvZiBsb29zZSBtYXRjaGluZy4gIEluIGFkZGl0aW9uIHRvCisgICAgICogYWxpYXNlcyBsaXN0ZWQsIG51bWVyaWMgdmFsdWVzIGFuZCBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzZXMKKyAgICAgKiBtYXkgYmUgZXhwcmVzc2VkIG51bWVyaWNhbGx5LCBlLmcuLCAoIm52IiwgIjAuNSIpIG9yICgiY2NjIiwKKyAgICAgKiAiMjIwIikuICBUaGUgdmFsdWUgc3RyaW5nIG1heSBhbHNvIGJlIGVtcHR5LgorICAgICAqCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzIHNldAorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eUFsaWFzLCBTdHJpbmcgdmFsdWVBbGlhcykgeworICAgICAgICByZXR1cm4gYXBwbHlQcm9wZXJ0eUFsaWFzKHByb3BlcnR5QWxpYXMsIHZhbHVlQWxpYXMsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIGNvbnRhaW4gdGhvc2UgY29kZSBwb2ludHMgd2hpY2ggaGF2ZSB0aGUKKyAgICAgKiBnaXZlbiB2YWx1ZSBmb3IgdGhlIGdpdmVuIHByb3BlcnR5LiAgUHJpb3IgY29udGVudHMgb2YgdGhpcworICAgICAqIHNldCBhcmUgbG9zdC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcworICAgICAqIEBwYXJhbSB2YWx1ZUFsaWFzCisgICAgICogQHBhcmFtIHN5bWJvbHMgaWYgbm90IG51bGwsIHRoZW4gc3ltYm9scyBhcmUgZmlyc3QgY2FsbGVkIHRvIHNlZSBpZiBhIHByb3BlcnR5CisgICAgICogaXMgYXZhaWxhYmxlLiBJZiB0cnVlLCB0aGVuIGV2ZXJ5dGhpbmcgZWxzZSBpcyBza2lwcGVkLgorICAgICAqIEByZXR1cm4gdGhpcyBzZXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFwcGx5UHJvcGVydHlBbGlhcyhTdHJpbmcgcHJvcGVydHlBbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMsIFN5bWJvbFRhYmxlIHN5bWJvbHMpIHsKKyAgICAgICAgY2hlY2tGcm96ZW4oKTsKKyAgICAgICAgaW50IHA7CisgICAgICAgIGludCB2OworICAgICAgICBib29sZWFuIG11c3ROb3RCZUVtcHR5ID0gZmFsc2UsIGludmVydCA9IGZhbHNlOworCisgICAgICAgIGlmIChzeW1ib2xzICE9IG51bGwKKyAgICAgICAgICAgICAgICAmJiAoc3ltYm9scyBpbnN0YW5jZW9mIFhTeW1ib2xUYWJsZSkKKyAgICAgICAgICAgICAgICAmJiAoKFhTeW1ib2xUYWJsZSlzeW1ib2xzKS5hcHBseVByb3BlcnR5QWxpYXMocHJvcGVydHlBbGlhcywgdmFsdWVBbGlhcywgdGhpcykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZUFsaWFzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgcCA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworCisgICAgICAgICAgICAvLyBUcmVhdCBnYyBhcyBnY20KKyAgICAgICAgICAgIGlmIChwID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZKSB7CisgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgocCA+PSBVUHJvcGVydHkuQklOQVJZX1NUQVJUICYmIHAgPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB8fAorICAgICAgICAgICAgICAgIChwID49IFVQcm9wZXJ0eS5JTlRfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHx8CisgICAgICAgICAgICAgICAgKHAgPj0gVVByb3BlcnR5Lk1BU0tfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5NQVNLX0xJTUlUKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBudW1lcmljIENDQworICAgICAgICAgICAgICAgICAgICBpZiAocCA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgcCA9PSBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBwID09IFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gSW50ZWdlci5wYXJzZUludChVdGlsaXR5LmRlbGV0ZVJ1bGVXaGl0ZVNwYWNlKHZhbHVlQWxpYXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZXN1bHRhbnQgc2V0IGlzIGVtcHR5IHRoZW4gdGhlIG51bWVyaWMgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcyBpbnZhbGlkLgorICAgICAgICAgICAgICAgICAgICAgICAgbXVzdE5vdEJlRW1wdHkgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHApIHsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OVU1FUklDX1ZBTFVFOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSBEb3VibGUucGFyc2VEb3VibGUoVXRpbGl0eS5kZWxldGVSdWxlV2hpdGVTcGFjZSh2YWx1ZUFsaWFzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUZpbHRlcihuZXcgTnVtZXJpY1ZhbHVlRmlsdGVyKHZhbHVlKSwgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19DSEFSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VTklDT0RFXzFfTkFNRToKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBtdW5nZSBuYW1lLCBzaW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVUNoYXJhY3Rlci5jaGFyRnJvbU5hbWUoKSBkb2VzIG5vdCBkbworICAgICAgICAgICAgICAgICAgICAgICAgLy8gJ2xvb3NlJyBtYXRjaGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBidWYgPSBtdW5nZUNoYXJOYW1lKHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocCA9PSBVUHJvcGVydHkuTkFNRSkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21FeHRlbmRlZE5hbWUoYnVmKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDaGFyRnJvbU5hbWUxXzAoYnVmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY2hhcmFjdGVyIG5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfdW5jaGVja2VkKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdXN0IG11bmdlIG5hbWUsIHNpbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgpIGRvZXMgbm90IGRvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAnbG9vc2UnIG1hdGNoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8gdmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKG11bmdlQ2hhck5hbWUodmFsdWVBbGlhcykpOworICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlGaWx0ZXIobmV3IFZlcnNpb25GaWx0ZXIodmVyc2lvbiksIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfUFJPUFNWRUMpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBwIGlzIGEgbm9uLWJpbmFyeSwgbm9uLWVudW1lcmF0ZWQgcHJvcGVydHkgdGhhdCB3ZQorICAgICAgICAgICAgICAgIC8vIGRvbid0IHN1cHBvcnQgKHlldCkuCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5zdXBwb3J0ZWQgcHJvcGVydHkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gdmFsdWVBbGlhcyBpcyBlbXB0eS4gIEludGVycHJldCBhcyBHZW5lcmFsIENhdGVnb3J5LCBTY3JpcHQsCisgICAgICAgICAgICAvLyBCaW5hcnkgcHJvcGVydHksIG9yIEFOWSBvciBBU0NJSS4gIFVwb24gc3VjY2VzcywgcCBhbmQgdiB3aWxsCisgICAgICAgICAgICAvLyBiZSBzZXQuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLOworICAgICAgICAgICAgICAgIHYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5LlNDUklQVDsKKyAgICAgICAgICAgICAgICAgICAgdiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocCwgcHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMykgeworICAgICAgICAgICAgICAgICAgICAgICAgcCA9IC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwID49IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgPSAxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgwID09IFVQcm9wZXJ0eUFsaWFzZXMuY29tcGFyZShBTllfSUQsIHByb3BlcnR5QWxpYXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KE1JTl9WQUxVRSwgTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoMCA9PSBVUHJvcGVydHlBbGlhc2VzLmNvbXBhcmUoQVNDSUlfSUQsIHByb3BlcnR5QWxpYXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KDAsIDB4N0YpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgwID09IFVQcm9wZXJ0eUFsaWFzZXMuY29tcGFyZShBU1NJR05FRCwgcHJvcGVydHlBbGlhcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbOkFzc2lnbmVkOl09WzpeQ246XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSAoMTw8VUNoYXJhY3Rlci5VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZlcnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcm9wZXJ0eSBuYW1lIHdhcyBuZXZlciBtYXRjaGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcHJvcGVydHkgYWxpYXM6ICIgKyBwcm9wZXJ0eUFsaWFzICsgIj0iICsgdmFsdWVBbGlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZCBwcm9wZXJ5IG5hbWUsIGJ1dCBpdCBpc24ndCBiaW5hcnksIHNvIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBzdXBwbGllZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1pc3NpbmcgcHJvcGVydHkgdmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFwcGx5SW50UHJvcGVydHlWYWx1ZShwLCB2KTsKKyAgICAgICAgaWYoaW52ZXJ0KSB7CisgICAgICAgICAgICBjb21wbGVtZW50KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobXVzdE5vdEJlRW1wdHkgJiYgaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAvLyBtdXN0Tm90QmVFbXB0eSBpcyBzZXQgdG8gdHJ1ZSBpZiBhbiBlbXB0eSBzZXQgaW5kaWNhdGVzCisgICAgICAgICAgICAvLyBpbnZhbGlkIGlucHV0LgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwcm9wZXJ0eSB2YWx1ZSIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJvcGVydHkgc2V0IHBhdHRlcm5zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gcG9zaXRpb24sIGluIHRoZSBnaXZlbiBwYXR0ZXJuLCBhcHBlYXJzCisgICAgICogdG8gYmUgdGhlIHN0YXJ0IG9mIGEgcHJvcGVydHkgc2V0IHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiByZXNlbWJsZXNQcm9wZXJ0eVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIGludCBwb3MpIHsKKyAgICAgICAgLy8gUGF0dGVybnMgYXJlIGF0IGxlYXN0IDUgY2hhcmFjdGVycyBsb25nCisgICAgICAgIGlmICgocG9zKzUpID4gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gTG9vayBmb3IgYW4gb3BlbmluZyBbOiwgWzpeLCBccCwgb3IgXFAKKyAgICAgICAgcmV0dXJuIHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwb3MsICJbOiIsIDAsIDIpIHx8CisgICAgICAgICAgICBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXModHJ1ZSwgcG9zLCAiXFxwIiwgMCwgMikgfHwKKyAgICAgICAgICAgIHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwb3MsICJcXE4iLCAwLCAyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gaXRlcmF0b3IgYXBwZWFycyB0byBwb2ludCBhdCBhCisgICAgICogcHJvcGVydHkgcGF0dGVybi4gIFJlZ2FyZGxlc3Mgb2YgdGhlIHJlc3VsdCwgcmV0dXJuIHdpdGggdGhlCisgICAgICogaXRlcmF0b3IgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBjaGFycyBpdGVyYXRvciBvdmVyIHRoZSBwYXR0ZXJuIGNoYXJhY3RlcnMuICBVcG9uIHJldHVybgorICAgICAqIGl0IHdpbGwgYmUgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBpdGVyT3B0cyBSdWxlQ2hhcmFjdGVySXRlcmF0b3Igb3B0aW9ucworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gcmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlck9wdHMpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgaXRlck9wdHMgJj0gflJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5QQVJTRV9FU0NBUEVTOworICAgICAgICBPYmplY3QgcG9zID0gY2hhcnMuZ2V0UG9zKG51bGwpOworICAgICAgICBpbnQgYyA9IGNoYXJzLm5leHQoaXRlck9wdHMpOworICAgICAgICBpZiAoYyA9PSAnWycgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICBpbnQgZCA9IGNoYXJzLm5leHQoaXRlck9wdHMgJiB+UnVsZUNoYXJhY3Rlckl0ZXJhdG9yLlNLSVBfV0hJVEVTUEFDRSk7CisgICAgICAgICAgICByZXN1bHQgPSAoYyA9PSAnWycpID8gKGQgPT0gJzonKSA6CisgICAgICAgICAgICAgICAgICAgICAoZCA9PSAnTicgfHwgZCA9PSAncCcgfHwgZCA9PSAnUCcpOworICAgICAgICB9CisgICAgICAgIGNoYXJzLnNldFBvcyhwb3MpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXR0ZXJuIGF0IHRoZSBnaXZlbiBwYXJzZSBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gc3ltYm9scyBUT0RPCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGFwcGx5UHJvcGVydHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBQYXJzZVBvc2l0aW9uIHBwb3MsIFN5bWJvbFRhYmxlIHN5bWJvbHMpIHsKKyAgICAgICAgaW50IHBvcyA9IHBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBPbiBlbnRyeSwgcHBvcyBzaG91bGQgcG9pbnQgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorCisgICAgICAgIC8vIE1pbmltdW0gbGVuZ3RoIGlzIDUgY2hhcmFjdGVycywgZS5nLiBccHtMfQorICAgICAgICBpZiAoKHBvcys1KSA+IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBwb3NpeCA9IGZhbHNlOyAvLyB0cnVlIGZvciBbOnBhdDpdLCBmYWxzZSBmb3IgXHB7cGF0fSBcUHtwYXR9IFxOe3BhdH0KKyAgICAgICAgYm9vbGVhbiBpc05hbWUgPSBmYWxzZTsgLy8gdHJ1ZSBmb3IgXE57cGF0fSwgby93IGZhbHNlCisgICAgICAgIGJvb2xlYW4gaW52ZXJ0ID0gZmFsc2U7CisKKyAgICAgICAgLy8gTG9vayBmb3IgYW4gb3BlbmluZyBbOiwgWzpeLCBccCwgb3IgXFAKKyAgICAgICAgaWYgKHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwb3MsICJbOiIsIDAsIDIpKSB7CisgICAgICAgICAgICBwb3NpeCA9IHRydWU7CisgICAgICAgICAgICBwb3MgPSBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKHBhdHRlcm4sIHBvcysyKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCBwYXR0ZXJuLmxlbmd0aCgpICYmIHBhdHRlcm4uY2hhckF0KHBvcykgPT0gJ14nKSB7CisgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgaW52ZXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChwYXR0ZXJuLnJlZ2lvbk1hdGNoZXModHJ1ZSwgcG9zLCAiXFxwIiwgMCwgMikgfHwKKyAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCAiXFxOIiwgMCwgMikpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHBhdHRlcm4uY2hhckF0KHBvcysxKTsKKyAgICAgICAgICAgIGludmVydCA9IChjID09ICdQJyk7CisgICAgICAgICAgICBpc05hbWUgPSAoYyA9PSAnTicpOworICAgICAgICAgICAgcG9zID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShwYXR0ZXJuLCBwb3MrMik7CisgICAgICAgICAgICBpZiAocG9zID09IHBhdHRlcm4ubGVuZ3RoKCkgfHwgcGF0dGVybi5jaGFyQXQocG9zKyspICE9ICd7JykgeworICAgICAgICAgICAgICAgIC8vIFN5bnRheCBlcnJvcjsgIlxwIiBvciAiXFAiIG5vdCBmb2xsb3dlZCBieSAieyIKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE9wZW4gZGVsaW1pdGVyIG5vdCBzZWVuCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvb2sgZm9yIHRoZSBtYXRjaGluZyBjbG9zZSBkZWxpbWl0ZXIsIGVpdGhlciA6XSBvciB9CisgICAgICAgIGludCBjbG9zZSA9IHBhdHRlcm4uaW5kZXhPZihwb3NpeCA/ICI6XSIgOiAifSIsIHBvcyk7CisgICAgICAgIGlmIChjbG9zZSA8IDApIHsKKyAgICAgICAgICAgIC8vIFN5bnRheCBlcnJvcjsgY2xvc2UgZGVsaW1pdGVyIG1pc3NpbmcKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gTG9vayBmb3IgYW4gJz0nIHNpZ24uICBJZiB0aGlzIGlzIHByZXNlbnQsIHdlIHdpbGwgcGFyc2UgYQorICAgICAgICAvLyBtZWRpdW0gXHB7Z2M9Q2Z9IG9yIGxvbmcgXHB7R2VuZXJhbENhdGVnb3J5PUZvcm1hdH0KKyAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgaW50IGVxdWFscyA9IHBhdHRlcm4uaW5kZXhPZignPScsIHBvcyk7CisgICAgICAgIFN0cmluZyBwcm9wTmFtZSwgdmFsdWVOYW1lOworICAgICAgICBpZiAoZXF1YWxzID49IDAgJiYgZXF1YWxzIDwgY2xvc2UgJiYgIWlzTmFtZSkgeworICAgICAgICAgICAgLy8gRXF1YWxzIHNlZW47IHBhcnNlIG1lZGl1bS9sb25nIHBhdHRlcm4KKyAgICAgICAgICAgIHByb3BOYW1lID0gcGF0dGVybi5zdWJzdHJpbmcocG9zLCBlcXVhbHMpOworICAgICAgICAgICAgdmFsdWVOYW1lID0gcGF0dGVybi5zdWJzdHJpbmcoZXF1YWxzKzEsIGNsb3NlKTsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgbm8gJz0nIGlzIHNlZW4sIGFuZCBcTnt9CisgICAgICAgICAgICBwcm9wTmFtZSA9IHBhdHRlcm4uc3Vic3RyaW5nKHBvcywgY2xvc2UpOworICAgICAgICAgICAgdmFsdWVOYW1lID0gIiI7CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSBcTntuYW1lfQorICAgICAgICAgICAgaWYgKGlzTmFtZSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBsaXR0bGUgaW5lZmZpY2llbnQgc2luY2UgaXQgbWVhbnMgd2UgaGF2ZSB0bworICAgICAgICAgICAgICAgIC8vIHBhcnNlICJuYSIgYmFjayB0byBVUHJvcGVydHkuTkFNRSBldmVuIHRob3VnaCB3ZSBhbHJlYWR5CisgICAgICAgICAgICAgICAgLy8ga25vdyBpdCdzIFVQcm9wZXJ0eS5OQU1FLiAgSWYgd2UgcmVmYWN0b3IgdGhlIEFQSSB0bworICAgICAgICAgICAgICAgIC8vIHN1cHBvcnQgYXJncyBvZiAoaW50LCBTdHJpbmcpIHRoZW4gd2UgY2FuIHJlbW92ZQorICAgICAgICAgICAgICAgIC8vICJuYSIgYW5kIG1ha2UgdGhpcyBhIGxpdHRsZSBtb3JlIGVmZmljaWVudC4KKyAgICAgICAgICAgICAgICB2YWx1ZU5hbWUgPSBwcm9wTmFtZTsKKyAgICAgICAgICAgICAgICBwcm9wTmFtZSA9ICJuYSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBhcHBseVByb3BlcnR5QWxpYXMocHJvcE5hbWUsIHZhbHVlTmFtZSwgc3ltYm9scyk7CisKKyAgICAgICAgaWYgKGludmVydCkgeworICAgICAgICAgICAgY29tcGxlbWVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTW92ZSB0byB0aGUgbGltaXQgcG9zaXRpb24gYWZ0ZXIgdGhlIGNsb3NlIGRlbGltaXRlcgorICAgICAgICBwcG9zLnNldEluZGV4KGNsb3NlICsgKHBvc2l4ID8gMiA6IDEpKTsKKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHByb3BlcnR5IHBhdHRlcm4uCisgICAgICogQHBhcmFtIGNoYXJzIGl0ZXJhdG9yIG92ZXIgdGhlIHBhdHRlcm4gY2hhcmFjdGVycy4gIFVwb24gcmV0dXJuCisgICAgICogaXQgd2lsbCBiZSBhZHZhbmNlZCB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSBwYXJzZWQKKyAgICAgKiBwYXR0ZXJuLCBvciB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gaWYgYWxsIGNoYXJhY3RlcnMgYXJlCisgICAgICogcGFyc2VkLgorICAgICAqIEBwYXJhbSByZWJ1aWx0UGF0IHRoZSBwYXR0ZXJuIHRoYXQgd2FzIHBhcnNlZCwgcmVidWlsdCBvcgorICAgICAqIGNvcGllZCBmcm9tIHRoZSBpbnB1dCBwYXR0ZXJuLCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBAcGFyYW0gc3ltYm9scyBUT0RPCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGx5UHJvcGVydHlQYXR0ZXJuKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlYnVpbHRQYXQsIFN5bWJvbFRhYmxlIHN5bWJvbHMpIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9IGNoYXJzLmxvb2thaGVhZCgpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBhcHBseVByb3BlcnR5UGF0dGVybihwYXQsIHBvcywgc3ltYm9scyk7CisgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgcHJvcGVydHkgcGF0dGVybiIpOworICAgICAgICB9CisgICAgICAgIGNoYXJzLmp1bXBhaGVhZChwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgIHJlYnVpbHRQYXQuYXBwZW5kKHBhdC5zdWJzdHJpbmcoMCwgcG9zLmdldEluZGV4KCkpKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYXNlIGZvbGRpbmcgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIGZvciBjb25zdHJ1Y3RvciBhbmQgYXBwbHlQYXR0ZXJuKCkgaW5kaWNhdGluZyB0aGF0CisgICAgICogd2hpdGUgc3BhY2Ugc2hvdWxkIGJlIGlnbm9yZWQuICBJZiBzZXQsIGlnbm9yZSBjaGFyYWN0ZXJzIGZvcgorICAgICAqIHdoaWNoIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlLAorICAgICAqIHVubGVzcyB0aGV5IGFyZSBxdW90ZWQgb3IgZXNjYXBlZC4gIFRoaXMgbWF5IGJlIE9SZWQgdG9nZXRoZXIKKyAgICAgKiB3aXRoIG90aGVyIHNlbGVjdG9ycy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJR05PUkVfU1BBQ0UgPSAxOworCisgICAgLyoqCisgICAgICogQml0bWFzayBmb3IgY29uc3RydWN0b3IsIGFwcGx5UGF0dGVybigpLCBhbmQgY2xvc2VPdmVyKCkKKyAgICAgKiBpbmRpY2F0aW5nIGxldHRlciBjYXNlLiAgVGhpcyBtYXkgYmUgT1JlZCB0b2dldGhlciB3aXRoIG90aGVyCisgICAgICogc2VsZWN0b3JzLgorICAgICAqCisgICAgICogRW5hYmxlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcuICBFLmcuLCAiW2FiXSIgd2l0aCB0aGlzIGZsYWcKKyAgICAgKiB3aWxsIG1hdGNoICdhJywgJ0EnLCAnYicsIGFuZCAnQicuICAiW15hYl0iIHdpdGggdGhpcyBmbGFnIHdpbGwKKyAgICAgKiBtYXRjaCBhbGwgZXhjZXB0ICdhJywgJ0EnLCAnYicsIGFuZCAnQicuIFRoaXMgcGVyZm9ybXMgYSBmdWxsCisgICAgICogY2xvc3VyZSBvdmVyIGNhc2UgbWFwcGluZ3MsIGUuZy4gVSswMTdGIGZvciBzLgorICAgICAqCisgICAgICogVGhlIHJlc3VsdGluZyBzZXQgaXMgYSBzdXBlcnNldCBvZiB0aGUgaW5wdXQgZm9yIHRoZSBjb2RlIHBvaW50cyBidXQKKyAgICAgKiBub3QgZm9yIHRoZSBzdHJpbmdzLgorICAgICAqIEl0IHBlcmZvcm1zIGEgY2FzZSBtYXBwaW5nIGNsb3N1cmUgb2YgdGhlIGNvZGUgcG9pbnRzIGFuZCBhZGRzCisgICAgICogZnVsbCBjYXNlIGZvbGRpbmcgc3RyaW5ncyBmb3IgdGhlIGNvZGUgcG9pbnRzLCBhbmQgcmVkdWNlcyBzdHJpbmdzIG9mCisgICAgICogdGhlIG9yaWdpbmFsIHNldCB0byB0aGVpciBmdWxsIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50cy4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgZGVzaWduZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hlcywgZm9yIGV4YW1wbGUKKyAgICAgKiBpbiByZWd1bGFyIGV4cHJlc3Npb25zLiBUaGUgZnVsbCBjb2RlIHBvaW50IGNhc2UgY2xvc3VyZSBhbGxvd3MgY2hlY2tpbmcgb2YKKyAgICAgKiBhbiBpbnB1dCBjaGFyYWN0ZXIgZGlyZWN0bHkgYWdhaW5zdCB0aGUgY2xvc3VyZSBzZXQuCisgICAgICogU3RyaW5ncyBhcmUgbWF0Y2hlZCBieSBjb21wYXJpbmcgdGhlIGNhc2UtZm9sZGVkIGZvcm0gZnJvbSB0aGUgY2xvc3VyZQorICAgICAqIHNldCB3aXRoIGFuIGluY3JlbWVudGFsIGNhc2UgZm9sZGluZyBvZiB0aGUgc3RyaW5nIGluIHF1ZXN0aW9uLgorICAgICAqCisgICAgICogVGhlIGNsb3N1cmUgc2V0IHdpbGwgYWxzbyBjb250YWluIHNpbmdsZSBjb2RlIHBvaW50cyBpZiB0aGUgb3JpZ2luYWwKKyAgICAgKiBzZXQgY29udGFpbmVkIGNhc2UtZXF1aXZhbGVudCBzdHJpbmdzIChsaWtlIFUrMDBERiBmb3IgInNzIiBvciAiU3MiIGV0Yy4pLgorICAgICAqIFRoaXMgaXMgbm90IG5lY2Vzc2FyeSAodGhhdCBpcywgcmVkdW5kYW50KSBmb3IgdGhlIGFib3ZlIG1hdGNoaW5nIG1ldGhvZAorICAgICAqIGJ1dCByZXN1bHRzIGluIHRoZSBzYW1lIGNsb3N1cmUgc2V0cyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIG9yaWdpbmFsCisgICAgICogc2V0IGNvbnRhaW5lZCB0aGUgY29kZSBwb2ludCBvciBhIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBU0UgPSAyOworCisgICAgLyoqCisgICAgICogQWxpYXMgZm9yIFVuaWNvZGVTZXQuQ0FTRSwgZm9yIGVhc2Ugb2YgcG9ydGluZyBmcm9tIEMrKyB3aGVyZSBJQ1U0QworICAgICAqIGFsc28gaGFzIGJvdGggVVNFVF9DQVNFIGFuZCBVU0VUX0NBU0VfSU5TRU5TSVRJVkUgKHNlZSB1c2V0LmgpLgorICAgICAqIEBzZWUgI0NBU0UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBU0VfSU5TRU5TSVRJVkUgPSAyOworCisgICAgLyoqCisgICAgICogQml0bWFzayBmb3IgY29uc3RydWN0b3IsIGFwcGx5UGF0dGVybigpLCBhbmQgY2xvc2VPdmVyKCkKKyAgICAgKiBpbmRpY2F0aW5nIGxldHRlciBjYXNlLiAgVGhpcyBtYXkgYmUgT1JlZCB0b2dldGhlciB3aXRoIG90aGVyCisgICAgICogc2VsZWN0b3JzLgorICAgICAqCisgICAgICogRW5hYmxlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcuICBFLmcuLCAiW2FiXSIgd2l0aCB0aGlzIGZsYWcKKyAgICAgKiB3aWxsIG1hdGNoICdhJywgJ0EnLCAnYicsIGFuZCAnQicuICAiW15hYl0iIHdpdGggdGhpcyBmbGFnIHdpbGwKKyAgICAgKiBtYXRjaCBhbGwgZXhjZXB0ICdhJywgJ0EnLCAnYicsIGFuZCAnQicuIFRoaXMgYWRkcyB0aGUgbG93ZXItLAorICAgICAqIHRpdGxlLSwgYW5kIHVwcGVyY2FzZSBtYXBwaW5ncyBhcyB3ZWxsIGFzIHRoZSBjYXNlIGZvbGRpbmcKKyAgICAgKiBvZiBlYWNoIGV4aXN0aW5nIGVsZW1lbnQgaW4gdGhlIHNldC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFERF9DQVNFX01BUFBJTkdTID0gNDsKKworICAgIC8vICBhZGQgdGhlIHJlc3VsdCBvZiBhIGZ1bGwgY2FzZSBtYXBwaW5nIHRvIHRoZSBzZXQKKyAgICAvLyAgdXNlIHN0ciBhcyBhIHRlbXBvcmFyeSBzdHJpbmcgdG8gYXZvaWQgY29uc3RydWN0aW5nIG9uZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgYWRkQ2FzZU1hcHBpbmcoVW5pY29kZVNldCBzZXQsIGludCByZXN1bHQsIFN0cmluZ0J1ZmZlciBmdWxsKSB7CisgICAgICAgIGlmKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBpZihyZXN1bHQgPiBVQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLy8gYWRkIGEgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nCisgICAgICAgICAgICAgICAgc2V0LmFkZChyZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBhZGQgYSBzdHJpbmcgY2FzZSBtYXBwaW5nIGZyb20gZnVsbCB3aXRoIGxlbmd0aCByZXN1bHQKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGZ1bGwudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgZnVsbC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gcmVzdWx0IDwgMDogdGhlIGNvZGUgcG9pbnQgbWFwcGVkIHRvIGl0c2VsZiwgbm8gbmVlZCB0byBhZGQgaXQKKyAgICAgICAgLy8gc2VlIFVDYXNlUHJvcHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbG9zZSB0aGlzIHNldCBvdmVyIHRoZSBnaXZlbiBhdHRyaWJ1dGUuICBGb3IgdGhlIGF0dHJpYnV0ZQorICAgICAqIENBU0UsIHRoZSByZXN1bHQgaXMgdG8gbW9kaWZ5IHRoaXMgc2V0IHNvIHRoYXQ6CisgICAgICoKKyAgICAgKiAxLiBGb3IgZWFjaCBjaGFyYWN0ZXIgb3Igc3RyaW5nICdhJyBpbiB0aGlzIHNldCwgYWxsIHN0cmluZ3MKKyAgICAgKiAnYicgc3VjaCB0aGF0IGZvbGRDYXNlKGEpID09IGZvbGRDYXNlKGIpIGFyZSBhZGRlZCB0byB0aGlzIHNldC4KKyAgICAgKiAoRm9yIG1vc3QgJ2EnIHRoYXQgYXJlIHNpbmdsZSBjaGFyYWN0ZXJzLCAnYicgd2lsbCBoYXZlCisgICAgICogYi5sZW5ndGgoKSA9PSAxLikKKyAgICAgKgorICAgICAqIDIuIEZvciBlYWNoIHN0cmluZyAnZScgaW4gdGhlIHJlc3VsdGluZyBzZXQsIGlmIGUgIT0KKyAgICAgKiBmb2xkQ2FzZShlKSwgJ2UnIHdpbGwgYmUgcmVtb3ZlZC4KKyAgICAgKgorICAgICAqIEV4YW1wbGU6IFthcVx1MDBERntCY317YkN9e0ZpfV0gPT4gW2FBcVFcdTAwREZcdUZCMDF7c3N9e2JjfXtmaX1dCisgICAgICoKKyAgICAgKiAoSGVyZSBmb2xkQ2FzZSh4KSByZWZlcnMgdG8gdGhlIG9wZXJhdGlvbgorICAgICAqIFVDaGFyYWN0ZXIuZm9sZENhc2UoeCwgdHJ1ZSksIGFuZCBhID09IGIgYWN0dWFsbHkgZGVub3RlcworICAgICAqIGEuZXF1YWxzKGIpLCBub3QgcG9pbnRlciBjb21wYXJpc29uLikKKyAgICAgKgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgYml0bWFzayBmb3IgYXR0cmlidXRlcyB0byBjbG9zZSBvdmVyLgorICAgICAqIEN1cnJlbnRseSBvbmx5IHRoZSBDQVNFIGJpdCBpcyBzdXBwb3J0ZWQuICBBbnkgdW5kZWZpbmVkIGJpdHMKKyAgICAgKiBhcmUgaWdub3JlZC4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoaXMgc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNsb3NlT3ZlcihpbnQgYXR0cmlidXRlKSB7CisgICAgICAgIGNoZWNrRnJvemVuKCk7CisgICAgICAgIGlmICgoYXR0cmlidXRlICYgKENBU0UgfCBBRERfQ0FTRV9NQVBQSU5HUykpICE9IDApIHsKKyAgICAgICAgICAgIFVDYXNlUHJvcHMgY3NwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjc3AgPSBVQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICAgICAgfSBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVbmljb2RlU2V0IGZvbGRTZXQgPSBuZXcgVW5pY29kZVNldCh0aGlzKTsKKyAgICAgICAgICAgIFVMb2NhbGUgcm9vdCA9IFVMb2NhbGUuUk9PVDsKKworICAgICAgICAgICAgLy8gc3RhcnQgd2l0aCBpbnB1dCBzZXQgdG8gZ3VhcmFudGVlIGluY2x1c2lvbgorICAgICAgICAgICAgLy8gQ0FTRTogcmVtb3ZlIHN0cmluZ3MgYmVjYXVzZSB0aGUgc3RyaW5ncyB3aWxsIGFjdHVhbGx5IGJlIHJlZHVjZWQgKGZvbGRlZCk7CisgICAgICAgICAgICAvLyAgICAgICB0aGVyZWZvcmUsIHN0YXJ0IHdpdGggbm8gc3RyaW5ncyBhbmQgYWRkIG9ubHkgdGhvc2UgbmVlZGVkCisgICAgICAgICAgICBpZigoYXR0cmlidXRlICYgQ0FTRSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGZvbGRTZXQuc3RyaW5ncy5jbGVhcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgbiA9IGdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZnVsbCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsb2NDYWNoZVtdID0gbmV3IGludFsxXTsKKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICAgICAgaW50IGVuZCAgID0gZ2V0UmFuZ2VFbmQoaSk7CisKKyAgICAgICAgICAgICAgICBpZigoYXR0cmlidXRlICYgQ0FTRSkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmdWxsIGNhc2UgY2xvc3VyZQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjcD1zdGFydDsgY3A8PWVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3NwLmFkZENhc2VDbG9zdXJlKGNwLCBmb2xkU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBjYXNlIG1hcHBpbmdzCisgICAgICAgICAgICAgICAgICAgIC8vIChkb2VzIG5vdCBhZGQgbG9uZyBzIGZvciByZWd1bGFyIHMsIG9yIEtlbHZpbiBmb3IgaywgZm9yIGV4YW1wbGUpCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGNwPXN0YXJ0OyBjcDw9ZW5kOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjc3AudG9GdWxsTG93ZXIoY3AsIG51bGwsIGZ1bGwsIHJvb3QsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZENhc2VNYXBwaW5nKGZvbGRTZXQsIHJlc3VsdCwgZnVsbCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNzcC50b0Z1bGxUaXRsZShjcCwgbnVsbCwgZnVsbCwgcm9vdCwgbG9jQ2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZU1hcHBpbmcoZm9sZFNldCwgcmVzdWx0LCBmdWxsKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY3NwLnRvRnVsbFVwcGVyKGNwLCBudWxsLCBmdWxsLCByb290LCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRDYXNlTWFwcGluZyhmb2xkU2V0LCByZXN1bHQsIGZ1bGwpOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjc3AudG9GdWxsRm9sZGluZyhjcCwgZnVsbCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRDYXNlTWFwcGluZyhmb2xkU2V0LCByZXN1bHQsIGZ1bGwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHJpbmdzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgICAgICAgICAgaWYgKChhdHRyaWJ1dGUgJiBDQVNFKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKChTdHJpbmcpaXQubmV4dCgpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFjc3AuYWRkU3RyaW5nQ2FzZUNsb3N1cmUoc3RyLCBmb2xkU2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRTZXQuYWRkKHN0cik7IC8vIGRvZXMgbm90IG1hcCB0byBjb2RlIHBvaW50czogYWRkIHRoZSBmb2xkZWQgc3RyaW5nIGl0c2VsZgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHJvb3QpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkU2V0LmFkZChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHJvb3QsIHN0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9sZFNldC5hZGQoVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShyb290LCBzdHIsIGJpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkU2V0LmFkZChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKHJvb3QsIHN0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9sZFNldC5hZGQoVUNoYXJhY3Rlci5mb2xkQ2FzZShzdHIsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldChmb2xkU2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBjbGFzcyBmb3IgY3VzdG9taXppbmcgVW5pY29kZVNldCBwYXJzaW5nIG9mIHByb3BlcnRpZXMuCisgICAgICogVE9ETzogZXh0ZW5kIHRvIGFsbG93IGN1c3RvbWl6aW5nIG9mIGNvZGVwb2ludCByYW5nZXMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKiBAYXV0aG9yIG1lZGF2aXMKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgc3RhdGljIGNsYXNzIFhTeW1ib2xUYWJsZSBpbXBsZW1lbnRzIFN5bWJvbFRhYmxlIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFhTeW1ib2xUYWJsZSgpe30KKyAgICAgICAgLyoqCisgICAgCSAqIEBpbnRlcm5hbAorICAgIAkgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAJICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIAkvKioKKyAgICAJICogQGludGVybmFsCisgICAgCSAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgIAkgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYXBwbHlQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eU5hbWUsIFN0cmluZyBwcm9wZXJ0eVZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCS8qKgorICAgIAkgKiBAaW50ZXJuYWwKKyAgICAJICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgCSAqLworICAgICAgICBwdWJsaWMgY2hhcltdIGxvb2t1cChTdHJpbmcgcykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAJLyoqCisgICAgCSAqIEBpbnRlcm5hbAorICAgIAkgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAJICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGZyb3plbjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJcyB0aGlzIGZyb3plbiwgYWNjb3JkaW5nIHRvIHRoZSBGcmVlemFibGUgaW50ZXJmYWNlPworICAgICAqIEByZXR1cm4gdmFsdWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpIHsKKyAgICAgICAgcmV0dXJuIGZyb3plbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcmVlemUgdGhpcyBjbGFzcywgYWNjb3JkaW5nIHRvIHRoZSBGcmVlemFibGUgaW50ZXJmYWNlLgorICAgICAqIEByZXR1cm4gdGhpcworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZnJlZXplKCkgeworICAgICAgICBmcm96ZW4gPSB0cnVlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2xvbmUgYSB0aGF3ZWQgdmVyc2lvbiBvZiB0aGlzIGNsYXNzLCBhY2NvcmRpbmcgdG8gdGhlIEZyZWV6YWJsZSBpbnRlcmZhY2UuCisgICAgICogQHJldHVybiB0aGlzCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IChVbmljb2RlU2V0KSBjbG9uZSgpOworICAgICAgICByZXN1bHQuZnJvemVuID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIGZ1bmN0aW9uCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrRnJvemVuKCkgeworICAgICAgICBpZiAoZnJvemVuKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGZyb3plbiBvYmplY3QiKTsKKyAgICAgICAgfQorICAgIH0KK30KKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkNzk3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI1MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIFVuaWNvZGVTZXRJdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBjb250ZW50cyBvZiBhIFVuaWNvZGVTZXQuICBJdAorICogaXRlcmF0ZXMgb3ZlciBlaXRoZXIgY29kZSBwb2ludHMgb3IgY29kZSBwb2ludCByYW5nZXMuICBBZnRlciBhbGwKKyAqIGNvZGUgcG9pbnRzIG9yIHJhbmdlcyBoYXZlIGJlZW4gcmV0dXJuZWQsIGl0IHJldHVybnMgdGhlCisgKiBtdWx0aWNoYXJhY3RlciBzdHJpbmdzIG9mIHRoZSBVbmljb2RTZXQsIGlmIGFueS4KKyAqCisgKiA8cD5UbyBpdGVyYXRlIG92ZXIgY29kZSBwb2ludHMsIHVzZSBhIGxvb3AgbGlrZSB0aGlzOgorICogPHByZT4KKyAqIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAqIHdoaWxlIChzZXQubmV4dCgpKSB7CisgKiAgIGlmIChzZXQuY29kZXBvaW50ICE9IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAqICAgICBwcm9jZXNzQ29kZXBvaW50KHNldC5jb2RlcG9pbnQpOworICogICB9IGVsc2UgeworICogICAgIHByb2Nlc3NTdHJpbmcoc2V0LnN0cmluZyk7CisgKiAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICoKKyAqIDxwPlRvIGl0ZXJhdGUgb3ZlciBjb2RlIHBvaW50IHJhbmdlcywgdXNlIGEgbG9vcCBsaWtlIHRoaXM6CisgKiA8cHJlPgorICogVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICogd2hpbGUgKHNldC5uZXh0UmFuZ2UoKSkgeworICogICBpZiAoc2V0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgKiAgICAgcHJvY2Vzc0NvZGVwb2ludFJhbmdlKHNldC5jb2RlcG9pbnQsIHNldC5jb2RlcG9pbnRFbmQpOworICogICB9IGVsc2UgeworICogICAgIHByb2Nlc3NTdHJpbmcoc2V0LnN0cmluZyk7CisgKiAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciBNLiBEYXZpcworICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0SXRlcmF0b3IgeworICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIDx0dD5jb2RlcG9pbnQ8L3R0PiBpZiB0aGUgaXRlcmF0b3IgcG9pbnRzIHRvIGEgc3RyaW5nLgorICAgICAqIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZW4gZXhhbWluZQorICAgICAqIDx0dD5zdHJpbmc8L3R0PiBmb3IgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHJlc3VsdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBJU19TVFJJTkcgPSAtMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGNvZGUgcG9pbnQsIG9yIHRoZSBzcGVjaWFsIHZhbHVlIDx0dD5JU19TVFJJTkc8L3R0PiwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgcG9pbnRzIHRvIGEgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29kZXBvaW50OworCisgICAgLyoqCisgICAgICogV2hlbiBpdGVyYXRpbmcgb3ZlciByYW5nZXMgdXNpbmcgPHR0Pm5leHRSYW5nZSgpPC90dD4sCisgICAgICogPHR0PmNvZGVwb2ludEVuZDwvdHQ+IGNvbnRhaW5zIHRoZSBpbmNsdXNpdmUgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgaWYgPHR0PmNvZGVwb2ludCAhPSBJU19TVFJJTkc8L3R0Pi4gIElmCisgICAgICogaXRlcmF0aW5nIG92ZXIgY29kZSBwb2ludHMgdXNpbmcgPHR0Pm5leHQoKTwvdHQ+LCBvciBpZgorICAgICAqIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZW4gdGhlIHZhbHVlIG9mCisgICAgICogPHR0PmNvZGVwb2ludEVuZDwvdHQ+IGlzIHVuZGVmaW5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvZGVwb2ludEVuZDsKKworICAgIC8qKgorICAgICAqIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZW4gPHR0PnN0cmluZzwvdHQ+IHBvaW50cworICAgICAqIHRvIHRoZSBjdXJyZW50IHN0cmluZy4gIElmIDx0dD5jb2RlcG9pbnQgIT0gSVNfU1RSSU5HPC90dD4sIHRoZQorICAgICAqIHZhbHVlIG9mIDx0dD5zdHJpbmc8L3R0PiBpcyB1bmRlZmluZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzZXQgc2V0IHRvIGl0ZXJhdGUgb3ZlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0SXRlcmF0b3IoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgcmVzZXQoc2V0KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIG5vdGhpbmcuICA8dHQ+bmV4dCgpPC90dD4gYW5kCisgICAgICogPHR0Pm5leHRSYW5nZSgpPC90dD4gcmV0dXJuIGZhbHNlLiBUaGlzIGlzIGEgY29udmVuaWVuY2UKKyAgICAgKiBjb25zdHJ1Y3RvciBhbGxvd2luZyB0aGUgdGFyZ2V0IHRvIGJlIHNldCBsYXRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldEl0ZXJhdG9yKCkgeworICAgICAgICByZXNldChuZXcgVW5pY29kZVNldCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgc2V0LCBlaXRoZXIgYSBzaW5nbGUgY29kZSBwb2ludAorICAgICAqIG9yIGEgc3RyaW5nLiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUgZWxlbWVudHMgaW4gdGhlIHNldCwgcmV0dXJuCisgICAgICogZmFsc2UuICBJZiA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LCB0aGUgdmFsdWUgaXMgYQorICAgICAqIHN0cmluZyBpbiB0aGUgPHR0PnN0cmluZzwvdHQ+IGZpZWxkLiAgT3RoZXJ3aXNlIHRoZSB2YWx1ZSBpcyBhCisgICAgICogc2luZ2xlIGNvZGUgcG9pbnQgaW4gdGhlIDx0dD5jb2RlcG9pbnQ8L3R0PiBmaWVsZC4KKyAgICAgKiAKKyAgICAgKiA8cD5UaGUgb3JkZXIgb2YgaXRlcmF0aW9uIGlzIGFsbCBjb2RlIHBvaW50cyBpbiBzb3J0ZWQgb3JkZXIsCisgICAgICogZm9sbG93ZWQgYnkgYWxsIHN0cmluZ3Mgc29ydGVkIG9yZGVyLiAgPHR0PmNvZGVwb2ludEVuZDwvdHQ+IGlzCisgICAgICogdW5kZWZpbmVkIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuICA8dHQ+c3RyaW5nPC90dD4gaXMKKyAgICAgKiB1bmRlZmluZWQgdW5sZXNzIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4uICBEbyBub3QgbWl4CisgICAgICogY2FsbHMgdG8gPHR0Pm5leHQoKTwvdHQ+IGFuZCA8dHQ+bmV4dFJhbmdlKCk8L3R0PiB3aXRob3V0CisgICAgICogY2FsbGluZyA8dHQ+cmVzZXQoKTwvdHQ+IGJldHdlZW4gdGhlbS4gIFRoZSByZXN1bHRzIG9mIGRvaW5nIHNvCisgICAgICogYXJlIHVuZGVmaW5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSB3YXMgYW5vdGhlciBlbGVtZW50IGluIHRoZSBzZXQgYW5kIHRoaXMKKyAgICAgKiBvYmplY3QgY29udGFpbnMgdGhlIGVsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dCgpIHsKKyAgICAgICAgaWYgKG5leHRFbGVtZW50IDw9IGVuZEVsZW1lbnQpIHsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IGNvZGVwb2ludEVuZCA9IG5leHRFbGVtZW50Kys7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmFuZ2UgPCBlbmRSYW5nZSkgeworICAgICAgICAgICAgbG9hZFJhbmdlKCsrcmFuZ2UpOworICAgICAgICAgICAgY29kZXBvaW50ID0gY29kZXBvaW50RW5kID0gbmV4dEVsZW1lbnQrKzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzdHJpbmdJdGVyYXRvciA9PSBudWxsIGlmZiB0aGVyZSBhcmUgbm8gc3RyaW5nIGVsZW1lbnRzIHJlbWFpbmluZworICAgICAgICAKKyAgICAgICAgaWYgKHN0cmluZ0l0ZXJhdG9yID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29kZXBvaW50ID0gSVNfU1RSSU5HOyAvLyBzaWduYWwgdGhhdCB2YWx1ZSBpcyBhY3R1YWxseSBhIHN0cmluZworICAgICAgICBzdHJpbmcgPSAoU3RyaW5nKXN0cmluZ0l0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgaWYgKCFzdHJpbmdJdGVyYXRvci5oYXNOZXh0KCkpIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIHNldCwgZWl0aGVyIGEgY29kZSBwb2ludCByYW5nZQorICAgICAqIG9yIGEgc3RyaW5nLiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUgZWxlbWVudHMgaW4gdGhlIHNldCwgcmV0dXJuCisgICAgICogZmFsc2UuICBJZiA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LCB0aGUgdmFsdWUgaXMgYQorICAgICAqIHN0cmluZyBpbiB0aGUgPHR0PnN0cmluZzwvdHQ+IGZpZWxkLiAgT3RoZXJ3aXNlIHRoZSB2YWx1ZSBpcyBhCisgICAgICogcmFuZ2Ugb2Ygb25lIG9yIG1vcmUgY29kZSBwb2ludHMgZnJvbSA8dHQ+Y29kZXBvaW50PC90dD4gdG8KKyAgICAgKiA8dHQ+Y29kZXBvaW50ZUVuZDwvdHQ+IGluY2x1c2l2ZS4KKyAgICAgKiAKKyAgICAgKiA8cD5UaGUgb3JkZXIgb2YgaXRlcmF0aW9uIGlzIGFsbCBjb2RlIHBvaW50cyByYW5nZXMgaW4gc29ydGVkCisgICAgICogb3JkZXIsIGZvbGxvd2VkIGJ5IGFsbCBzdHJpbmdzIHNvcnRlZCBvcmRlci4gIFJhbmdlcyBhcmUKKyAgICAgKiBkaXNqb2ludCBhbmQgbm9uLWNvbnRpZ3VvdXMuICA8dHQ+c3RyaW5nPC90dD4gaXMgdW5kZWZpbmVkCisgICAgICogdW5sZXNzIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4uICBEbyBub3QgbWl4IGNhbGxzIHRvCisgICAgICogPHR0Pm5leHQoKTwvdHQ+IGFuZCA8dHQ+bmV4dFJhbmdlKCk8L3R0PiB3aXRob3V0IGNhbGxpbmcKKyAgICAgKiA8dHQ+cmVzZXQoKTwvdHQ+IGJldHdlZW4gdGhlbS4gIFRoZSByZXN1bHRzIG9mIGRvaW5nIHNvIGFyZQorICAgICAqIHVuZGVmaW5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSB3YXMgYW5vdGhlciBlbGVtZW50IGluIHRoZSBzZXQgYW5kIHRoaXMKKyAgICAgKiBvYmplY3QgY29udGFpbnMgdGhlIGVsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dFJhbmdlKCkgeworICAgICAgICBpZiAobmV4dEVsZW1lbnQgPD0gZW5kRWxlbWVudCkgeworICAgICAgICAgICAgY29kZXBvaW50RW5kID0gZW5kRWxlbWVudDsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IG5leHRFbGVtZW50OworICAgICAgICAgICAgbmV4dEVsZW1lbnQgPSBlbmRFbGVtZW50KzE7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmFuZ2UgPCBlbmRSYW5nZSkgeworICAgICAgICAgICAgbG9hZFJhbmdlKCsrcmFuZ2UpOworICAgICAgICAgICAgY29kZXBvaW50RW5kID0gZW5kRWxlbWVudDsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IG5leHRFbGVtZW50OworICAgICAgICAgICAgbmV4dEVsZW1lbnQgPSBlbmRFbGVtZW50KzE7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc3RyaW5nSXRlcmF0b3IgPT0gbnVsbCBpZmYgdGhlcmUgYXJlIG5vIHN0cmluZyBlbGVtZW50cyByZW1haW5pbmcKKyAgICAgICAgCisgICAgICAgIGlmIChzdHJpbmdJdGVyYXRvciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvZGVwb2ludCA9IElTX1NUUklORzsgLy8gc2lnbmFsIHRoYXQgdmFsdWUgaXMgYWN0dWFsbHkgYSBzdHJpbmcKKyAgICAgICAgc3RyaW5nID0gKFN0cmluZylzdHJpbmdJdGVyYXRvci5uZXh0KCk7CisgICAgICAgIGlmICghc3RyaW5nSXRlcmF0b3IuaGFzTmV4dCgpKSBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIGl0ZXJhdG9yIHRvIHZpc2l0IHRoZSBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gc2V0IGFuZAorICAgICAqIHJlc2V0cyBpdCB0byB0aGUgc3RhcnQgb2YgdGhhdCBzZXQuICBUaGUgaXRlcmF0b3IgaXMgdmFsaWQgb25seQorICAgICAqIHNvIGxvbmcgYXMgPHR0PnNldDwvdHQ+IGlzIHZhbGlkLgorICAgICAqIEBwYXJhbSBzZXQgdGhlIHNldCB0byBpdGVyYXRlIG92ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgdGhpcy5zZXQgPSBzZXQ7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhpcyBpdGVyYXRvciB0byB0aGUgc3RhcnQgb2YgdGhlIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZW5kUmFuZ2UgPSBzZXQuZ2V0UmFuZ2VDb3VudCgpIC0gMTsKKyAgICAgICAgcmFuZ2UgPSAwOworICAgICAgICBlbmRFbGVtZW50ID0gLTE7CisgICAgICAgIG5leHRFbGVtZW50ID0gMDsgICAgICAgICAgICAKKyAgICAgICAgaWYgKGVuZFJhbmdlID49IDApIHsKKyAgICAgICAgICAgIGxvYWRSYW5nZShyYW5nZSk7CisgICAgICAgIH0KKyAgICAgICAgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICBpZiAoc2V0LnN0cmluZ3MgIT0gbnVsbCkgeworICAgICAgICAgICAgc3RyaW5nSXRlcmF0b3IgPSBzZXQuc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgaWYgKCFzdHJpbmdJdGVyYXRvci5oYXNOZXh0KCkpIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHN0cmluZyBmcm9tIHRoZSBpdGVyYXRvci4gT25seSB1c2UgYWZ0ZXIgY2FsbGluZyBuZXh0KCksIG5vdCBuZXh0UmFuZ2UoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZygpIHsKKyAgICAgICAgaWYgKGNvZGVwb2ludCAhPSBJU19TVFJJTkcpIHsKKyAgICAgICAgICAgIHJldHVybiBVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICB9CisgICAgCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHNldDsKKyAgICBwcml2YXRlIGludCBlbmRSYW5nZSA9IDA7CisgICAgcHJpdmF0ZSBpbnQgcmFuZ2UgPSAwOworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZW5kRWxlbWVudDsKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG5leHRFbGVtZW50OworICAgIHByaXZhdGUgSXRlcmF0b3Igc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEludmFyaWFudDogc3RyaW5nSXRlcmF0b3IgaXMgbnVsbCB3aGVuIHRoZXJlIGFyZSBubyAobW9yZSkgc3RyaW5ncyByZW1haW5pbmcKKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGxvYWRSYW5nZShpbnQgcmFuZ2UpIHsKKyAgICAgICAgbmV4dEVsZW1lbnQgPSBzZXQuZ2V0UmFuZ2VTdGFydChyYW5nZSk7CisgICAgICAgIGVuZEVsZW1lbnQgPSBzZXQuZ2V0UmFuZ2VFbmQocmFuZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VcHBlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwODVkZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VcHBlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNhc2VQcm9wczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3I7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgdG9VcHBlcigpCisgKiBjYXNlIG1hcHBpbmcuCisgKi8KK2NsYXNzIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogUGFja2FnZSBhY2Nlc3NpYmxlIElELgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgX0lEID0gIkFueS1VcHBlciI7CisgICAgLy8gVE9ETzogQWRkIHZhcmlhbnRzIGZvciB0ciwgYXosIGx0LCBkZWZhdWx0ID0gZGVmYXVsdCBsb2NhbGUKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVcHBlcmNhc2VUcmFuc2xpdGVyYXRvcihVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBVTG9jYWxlIGxvY2FsZTsKKworICAgIHByaXZhdGUgVUNhc2VQcm9wcyBjc3A7CisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvciBpdGVyOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHJlc3VsdDsKKyAgICBwcml2YXRlIGludFtdIGxvY0NhY2hlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBVcHBlcmNhc2VUcmFuc2xpdGVyYXRvcihVTG9jYWxlIGxvYykgeworICAgICAgICBzdXBlcihfSUQsIG51bGwpOworICAgICAgICBsb2NhbGUgPSBsb2M7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjc3A9VUNhc2VQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgY3NwPW51bGw7CisgICAgICAgIH0KKyAgICAgICAgaXRlcj1uZXcgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IoKTsKKyAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBsb2NDYWNoZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGxvY0NhY2hlWzBdPTA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgaWYoY3NwPT1udWxsKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZihvZmZzZXRzLnN0YXJ0ID49IG9mZnNldHMubGltaXQpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0gCisKKyAgICBpdGVyLnNldFRleHQodGV4dCk7CisgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICBpbnQgYywgZGVsdGE7CisKKyAgICAvLyBXYWxrIHRocm91Z2ggb3JpZ2luYWwgc3RyaW5nCisgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKworICAgIGl0ZXIuc2V0SW5kZXgob2Zmc2V0cy5zdGFydCk7CisgICAgaXRlci5zZXRMaW1pdChvZmZzZXRzLmxpbWl0KTsKKyAgICBpdGVyLnNldENvbnRleHRMaW1pdHMob2Zmc2V0cy5jb250ZXh0U3RhcnQsIG9mZnNldHMuY29udGV4dExpbWl0KTsKKyAgICB3aGlsZSgoYz1pdGVyLm5leHRDYXNlTWFwQ1AoKSk+PTApIHsKKyAgICAgICAgYz1jc3AudG9GdWxsVXBwZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICBpZihpdGVyLmRpZFJlYWNoTGltaXQoKSAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAvLyB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9uIHRyaWVkIHRvIGxvb2sgYmV5b25kIHRoZSBjb250ZXh0IGxpbWl0CisgICAgICAgICAgICAvLyB3YWl0IGZvciBtb3JlIGlucHV0CisgICAgICAgICAgICBvZmZzZXRzLnN0YXJ0PWl0ZXIuZ2V0Q2FzZU1hcENQU3RhcnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgLyogYyBtYXBwZWQgdG8gaXRzZWxmLCBubyBjaGFuZ2UgKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9IGVsc2UgaWYoYzw9VUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgLyogcmVwbGFjZSBieSB0aGUgbWFwcGluZyBzdHJpbmcgKi8KKyAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogcmVwbGFjZSBieSBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgZGVsdGE9aXRlci5yZXBsYWNlKFVURjE2LnZhbHVlT2YoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihkZWx0YSE9MCkgeworICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiZDA3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorRXh0ZW5zaW9ucyBhbmQgZW5oYW5jZW1lbnRzIHRvIGphdmEudGV4dCB0byBzdXBwb3J0IHVuaWNvZGUgdHJhbnNmb3JtcywgVW5pY29kZVNldCwgc3Vycm9nYXRlIGNoYXIgdXRpbGl0aWVzLCBVQ0EgY29sbGF0aW9uLCBub3JtYWxpemF0aW9uLCBicmVhayBpdGVyYXRpb24gKHJ1bGUgYW5kIGRpY3Rpb25hcnkgYmFzZWQpLCBlbmhhbmNlZCBudW1iZXIgZm9ybWF0LCBpbnRlcm5hdGlvbmFsIHN0cmluZyBzZWFyY2hpbmcsIGFuZCBhcmFiaWMgc2hhcGluZy48L3A+CisKKzx1bD4KKzxsaT5Vbmljb2RlIFRyYW5zZm9ybXMgKFRyYW5zbGl0ZXJhdGlvbikgY29udmVydCBiZXR3ZWVuIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbnMgb2YgdW5pY29kZSB0ZXh0LjwvbGk+Cis8bGk+VW5pY29kZVNldCBwcm92aWRlcyBzZXQgb3BlcmF0aW9ucyBvbiB1bmljb2RlIGNoYXJhY3RlcnMgYW5kIHN0cmluZ3MsIGFuZCBhcmUgcmVwcmVzZW50YWJsZSBhcyBjb21wYWN0IGV4cHJlc3Npb25zLjwvbGk+Cis8bGk+U3Vycm9nYXRlIGNoYXJhY3RlciB1dGlsaXRpZXMgKFVURjE2KSBwcm92aWRlcyBpbmRleGluZyBhbmQgc3Vic3RyaW5nIG9wZXJhdGlvbnMgb24gdGV4dCBjb250YWluaW5nIHN1cnJvZ2F0ZXMuPC9saT4KKzxsaT5VQ0EgY29sbGF0aW9uIGltcGxlbWVudHMgdGhlIGN1cnJlbnQgVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtLiAgRGF0YSBmb3IgbWFueSBsb2NhbGUtc3BlY2lmaWMgY29sbGF0aW9ucyBpcyBwcm92aWRlZC48L2xpPgorPGxpPk5vcm1hbGl6YXRpb24gc3VwcG9ydHMgc3RhbmRhcmQgVW5pY29kZSBub3JtYWxpemF0aW9uIGZvcm1zIGFzIHdlbGwgYXMgRkNELjwvbGk+Cis8bGk+QnJlYWsgaXRlcmF0aW9uIHN1cHBvcnRzIGNoYXJhY3Rlciwgd29yZCwgbGluZSwgc2VudGVuY2VzLCBhbmQgdGl0bGUgY2FzZSBicmVha3MuPC9saT4KKzxsaT5FbmhhbmNlZCBudW1iZXIgZm9ybWF0IHRvICdzcGVsbCBvdXQnIG51bWJlcnMsIHBhZGRpbmcgYW5kIHJvdW5kaW5nIGNvbnRyb2wuPC9saT4KKzxsaT5JbnRlcm5hdGlvbmFsbHkgc2Vuc2l0aXZlIHN0cmluZyBzZWFyY2hpbmcsIHVzZXMgY29sbGF0aW9uLjwvbGk+Cis8bGk+QXJhYmljIHNoYXBpbmcgY29udmVydHMgYmV0d2VlbiBzaGFwZWQgYW5kIHVuc2hhcGVkIGFyYWJpYyBjaGFyYWN0ZXJzIGFuZCBkaWdpdHMuPC9saT4KKzwvdWw+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzM1N2QyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0J1ZGRoaXN0Q2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDI2NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGlzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiB0aGF0IG51bWJlcnMgeWVhcnMgc2luY2UgdGhlIGJpcnRoIG9mIHRoZSBCdWRkaGEuICBUaGlzIGlzIHRoZSBjaXZpbCBjYWxlbmRhcgorICogaW4gc29tZSBwcmVkb21pbmFudGx5IEJ1ZGRoaXN0IGNvdW50cmllcyBzdWNoIGFzIFRoYWlsYW5kLCBhbmQgaXQgaXMgdXNlZCBmb3IKKyAqIHJlbGlnaW91cyBwdXJwb3NlcyBlbHNld2hlcmUuCisgKiA8cD4KKyAqIFRoZSBCdWRkaGlzdCBjYWxlbmRhciBpcyBpZGVudGljYWwgdG8gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbiBhbGwgcmVzcGVjdHMKKyAqIGV4Y2VwdCBmb3IgdGhlIHllYXIgYW5kIGVyYS4gIFllYXJzIGFyZSBudW1iZXJlZCBzaW5jZSB0aGUgYmlydGggb2YgdGhlCisgKiBCdWRkaGEgaW4gNTQzIEJDIChHcmVnb3JpYW4pLCBzbyB0aGF0IDEgQUQgKEdyZWdvcmlhbikgaXMgZXF1aXZhbGVudCB0byA1NDQKKyAqIEJFIChCdWRkaGlzdCBFcmEpIGFuZCAxOTk4IEFEIGlzIDI1NDEgQkUuCisgKiA8cD4KKyAqIFRoZSBCdWRkaGlzdCBDYWxlbmRhciBoYXMgb25seSBvbmUgYWxsb3dhYmxlIGVyYTogPGNvZGU+QkU8L2NvZGU+LiAgSWYgdGhlCisgKiBjYWxlbmRhciBpcyBub3QgaW4gbGVuaWVudCBtb2RlIChzZWUgPGNvZGU+c2V0TGVuaWVudDwvY29kZT4pLCBkYXRlcyBiZWZvcmUKKyAqIDEvMS8xIEJFIGFyZSByZWplY3RlZCB3aXRoIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4uCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogQnVkZGhpc3RDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1idWRkaGlzdCI8L2NvZGU+LjwvcD4KKyAqIAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBCdWRkaGlzdENhbGVuZGFyIGV4dGVuZHMgR3JlZ29yaWFuQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDI1ODMwMDUyNzgxMzIzODA2MzFMOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB0aGUgQnVkZGhpc3QgRXJhLiAgVGhpcyBpcyB0aGUgb25seSBhbGxvd2FibGUgPGNvZGU+RVJBPC9jb2RlPgorICAgICAqIHZhbHVlIGZvciB0aGUgQnVkZGhpc3QgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjRVJBCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkUgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICBzdXBlcih6b25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgc2V0VGltZShkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgQnVkZGhpc3RDYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhlIG9ubHkgcHJhY3RpY2FsIGRpZmZlcmVuY2UgZnJvbSBhIEdyZWdvcmlhbiBjYWxlbmRhciBpcyB0aGF0IHllYXJzCisgICAgLy8gYXJlIG51bWJlcmVkIHNpbmNlIHRoZSBiaXJ0aCBvZiB0aGUgQnVkZGhhLiAgQSBjb3VwbGUgb2Ygb3ZlcnJpZGVzIHdpbGwKKyAgICAvLyB0YWtlIGNhcmUgb2YgdGhhdC4uLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBTdGFydHMgaW4gLTU0MyBBRCwgaWUgNTQ0IEJDCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJVRERISVNUX0VSQV9TVEFSVCA9IC01NDM7CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gICAgCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZ25vcmUgdGhlIGVyYSwgYXMgdGhlcmUgaXMgb25seSBvbmUKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCAxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvLyBSZXR1cm4gSkQgb2Ygc3RhcnQgb2YgZ2l2ZW4gbW9udGgveWVhcgorICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisgICAgICAgIHJldHVybiBzdXBlci5oYW5kbGVDb21wdXRlTW9udGhTdGFydChleWVhciArIEJVRERISVNUX0VSQV9TVEFSVCwgbW9udGgsIHVzZU1vbnRoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIHN1cGVyLmhhbmRsZUNvbXB1dGVGaWVsZHMoanVsaWFuRGF5KTsKKyAgICAgICAgaW50IHkgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSKSAtIEJVRERISVNUX0VSQV9TVEFSVDsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgeSk7CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIEdyZWdvcmlhbkNhbGVuZGFyLiAgVGhlcmUgaXMgb25seSBvbmUgQnVkZGhpc3QgRVJBLiAgV2UKKyAgICAgKiBzaG91bGQgcmVhbGx5IGhhbmRsZSBZRUFSLCBZRUFSX1dPWSwgYW5kIEVYVEVOREVEX1lFQVIgaGVyZSB0b28gdG8KKyAgICAgKiBpbXBsZW1lbnQgdGhlIDEuLjUwMDAwMDAgcmFuZ2UsIGJ1dCBpdCdzIG5vdCBjcml0aWNhbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICBpZiAoZmllbGQgPT0gRVJBKSB7CisgICAgICAgICAgICByZXR1cm4gQkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUdldExpbWl0KGZpZWxkLCBsaW1pdFR5cGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJidWRkaGlzdCI7CisgICAgfQorCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeTsKKyAgICBwdWJsaWMgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KCkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IENhbGVuZGFyRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJCdWRkaGlzdCI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0J5dGVBcnJheVdyYXBwZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0J5dGVBcnJheVdyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDRiYjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnl0ZUFycmF5V3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsMjk3IEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIDxwPgorICogQSBzaW1wbGUgdXRpbGl0eSBjbGFzcyB0byB3cmFwIGEgYnl0ZSBhcnJheS4KKyAqIDwvcD4KKyAqIDxwPgorICogR2VuZXJhbGx5IHBhc3NlZCBhcyBhbiBhcmd1bWVudCBvYmplY3QgaW50byBhIG1ldGhvZC4gVGhlIG1ldGhvZCB0YWtlcworICogcmVzcG9uc2liaWxpdHkgb2Ygd3JpdGluZyBpbnRvIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IGFuZCBpbmNyZWFzaW5nIGl0cworICogc2l6ZSB3aGVuIG5lY2Vzc2FyeS4KKyAqIDwvcD4gCisgKiBAYXV0aG9yIHN5biB3ZWUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgQnl0ZUFycmF5V3JhcHBlciBpbXBsZW1lbnRzIENvbXBhcmFibGUKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgYnl0ZSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIGJ5dGVzOworCisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB1c2VkLiAKKyAgICAgKiBEaWZmZXJlbnQgZnJvbSBieXRlcy5sZW5ndGgsIHNpemUgd2lsbCBiZSAmbHQ7PSBieXRlcy5sZW5ndGguIAorICAgICAqIFNlbWFudGljcyBvZiBzaXplIGlzIHNpbWlsYXIgdG8gamF2YS51dGlsLlZlY3Rvci5zaXplKCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBzaXplOworICAgIAorICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKiAKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgQnl0ZUFycmF5V3JhcHBlciB3aXRoIG5vIGRhdGEuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIoKSB7CisgICAgICAgIC8vIGxlYXZlIGJ5dGVzIG51bGwsIGRvbid0IGFsbG9jYXRlIHR3aWNlCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IEJ5dGVBcnJheVdyYXBwZXIgZnJvbSBhIGJ5dGUgYXJyYXkgYW5kIHNpemUKKyAgICAgKiBAcGFyYW0gYnl0ZXNUb0Fkb3B0IHRoZSBieXRlIGFycmF5IHRvIGFkb3B0CisgICAgICogQHBhcmFtIHNpemUgdGhlIGxlbmd0aCBvZiB2YWxpZCBkYXRhIGluIHRoZSBieXRlIGFycmF5CisgICAgICogQHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIGJ5dGVzVG9BZG9wdCA9PSBudWxsIGFuZCBzaXplICE9IDAsIG9yCisgICAgICogc2l6ZSA8IDAsIG9yIHNpemUgPiBieXRlc1RvQWRvcHQubGVuZ3RoLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIoYnl0ZVtdIGJ5dGVzVG9BZG9wdCwgaW50IHNpemUpIHsKKyAgICAgICAgaWYgKChieXRlc1RvQWRvcHQgPT0gbnVsbCAmJiBzaXplICE9IDApIHx8IHNpemUgPCAwIHx8IHNpemUgPiBieXRlc1RvQWRvcHQubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaWxsZWdhbCBzaXplOiAiICsgc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ieXRlcyA9IGJ5dGVzVG9BZG9wdDsKKyAgICAgICAgdGhpcy5zaXplID0gc2l6ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgQnl0ZUFycmF5V3JhcHBlciBmcm9tIHRoZSBjb250ZW50cyBvZiBhIEJ5dGVCdWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgQnl0ZUJ1ZmZlciBmcm9tIHdoaWNoIHRvIGdldCB0aGUgZGF0YS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyKEJ5dGVCdWZmZXIgc291cmNlKSB7CisgICAgICAgIHNpemUgPSBzb3VyY2UubGltaXQoKTsKKyAgICAgICAgYnl0ZXMgPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgc291cmNlLmdldChieXRlcywwLHNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBmcm9tIEJ5dGVCdWZmZXIKKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlcgorICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyKEJ5dGVBcnJheVdyYXBwZXIgc291cmNlKSB7CisgICAgICAgIHNpemUgPSBzb3VyY2Uuc2l6ZTsKKyAgICAgICAgYnl0ZXMgPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgY29weUJ5dGVzKHNvdXJjZS5ieXRlcywgMCwgYnl0ZXMsIDAsIHNpemUpOworICAgIH0KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIGNyZWF0ZSBmcm9tIGJ5dGUgYnVmZmVyCisgICAgICogQHBhcmFtIHNyYworICAgICAqIEBwYXJhbSBzdGFydAorICAgICAqIEBwYXJhbSBsaW1pdAorICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyKGJ5dGVbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHNpemUgPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBieXRlcyA9IG5ldyBieXRlW3NpemVdOworICAgICAgICBjb3B5Qnl0ZXMoc3JjLCBzdGFydCwgYnl0ZXMsIDAsIHNpemUpOworICAgIH0KKyAgICAgKi8KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSB0aGF0IHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IGlzIGF0IGxlYXN0IG9mIGxlbmd0aCBjYXBhY2l0eS4gICAgIAorICAgICAqIElmIHRoZSBieXRlIGFycmF5IGlzIG51bGwgb3IgaXRzIGxlbmd0aCBpcyBsZXNzIHRoYW4gY2FwYWNpdHksIGEgbmV3IAorICAgICAqIGJ5dGUgYXJyYXkgb2YgbGVuZ3RoIGNhcGFjaXR5IHdpbGwgYmUgYWxsb2NhdGVkLiAgCisgICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheSAoYmV0d2VlbiAwIGFuZCBzaXplKSByZW1haW4gdW5jaGFuZ2VkLiAKKyAgICAgKiBAcGFyYW0gY2FwYWNpdHkgbWluaW11bSBsZW5ndGggb2YgaW50ZXJuYWwgYnl0ZSBhcnJheS4KKyAgICAgKiBAcmV0dXJuIHRoaXMgQnl0ZUFycmF5V3JhcHBlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJ5dGVBcnJheVdyYXBwZXIgZW5zdXJlQ2FwYWNpdHkoaW50IGNhcGFjaXR5KSAKKyAgICB7CisgICAgICAgIGlmIChieXRlcyA9PSBudWxsIHx8IGJ5dGVzLmxlbmd0aCA8IGNhcGFjaXR5KSB7CisgICAgICAgICAgICBieXRlW10gbmV3Ynl0ZXMgPSBuZXcgYnl0ZVtjYXBhY2l0eV07CisgICAgICAgICAgICBjb3B5Qnl0ZXMoYnl0ZXMsIDAsIG5ld2J5dGVzLCAwLCBzaXplKTsKKyAgICAgICAgICAgIGJ5dGVzID0gbmV3Ynl0ZXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSBmcm9tIG9mZnNldCAwIHRvIChsaW1pdCAtIHN0YXJ0KSB3aXRoIHRoZSAKKyAgICAgKiBjb250ZW50cyBvZiBzcmMgZnJvbSBvZmZzZXQgc3RhcnQgdG8gbGltaXQuIElmIHRoZSBieXRlIGFycmF5IGlzIG51bGwgb3IgaXRzIGxlbmd0aCBpcyBsZXNzIHRoYW4gY2FwYWNpdHksIGEgbmV3IAorICAgICAqIGJ5dGUgYXJyYXkgb2YgbGVuZ3RoIChsaW1pdCAtIHN0YXJ0KSB3aWxsIGJlIGFsbG9jYXRlZC4gIAorICAgICAqIFRoaXMgcmVzZXRzIHRoZSBzaXplIG9mIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHRvIChsaW1pdCAtIHN0YXJ0KS4KKyAgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBieXRlIGFycmF5IHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBvZmZzZXQgb2Ygc3JjIHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBsaW1pdCBlbmQgKyAxIG9mZnNldCBvZiBzcmMgdG8gY29weSBmcm9tCisgICAgICogQHJldHVybiB0aGlzIEJ5dGVBcnJheVdyYXBwZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBCeXRlQXJyYXlXcmFwcGVyIHNldChieXRlW10gc3JjLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgCisgICAgeworICAgICAgICBzaXplID0gMDsKKyAgICAgICAgYXBwZW5kKHNyYywgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHVibGljIGZpbmFsIEJ5dGVBcnJheVdyYXBwZXIgZ2V0KGJ5dGVbXSB0YXJnZXQsIGludCBzdGFydCwgaW50IGxpbWl0KSAKKyAgICB7CisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAobGVuID4gc2l6ZSkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibGltaXQgdG9vIGxvbmciKTsKKyAgICAgICAgY29weUJ5dGVzKGJ5dGVzLCAwLCB0YXJnZXQsIHN0YXJ0LCBsZW4pOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgKi8KKworICAgIC8qKgorICAgICAqIEFwcGVuZHMgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgZnJvbSBvZmZzZXQgc2l6ZSB3aXRoIHRoZSAKKyAgICAgKiBjb250ZW50cyBvZiBzcmMgZnJvbSBvZmZzZXQgc3RhcnQgdG8gbGltaXQuIFRoaXMgaW5jcmVhc2VzIHRoZSBzaXplIG9mCisgICAgICogdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgdG8gKHNpemUgKyBsaW1pdCAtIHN0YXJ0KS4KKyAgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBieXRlIGFycmF5IHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBvZmZzZXQgb2Ygc3JjIHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBsaW1pdCBlbmQgKyAxIG9mZnNldCBvZiBzcmMgdG8gY29weSBmcm9tCisgICAgICogQHJldHVybiB0aGlzIEJ5dGVBcnJheVdyYXBwZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBCeXRlQXJyYXlXcmFwcGVyIGFwcGVuZChieXRlW10gc3JjLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgCisgICAgeworICAgICAgICBpbnQgbGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgZW5zdXJlQ2FwYWNpdHkoc2l6ZSArIGxlbik7CisgICAgICAgIGNvcHlCeXRlcyhzcmMsIHN0YXJ0LCBieXRlcywgc2l6ZSwgbGVuKTsKKyAgICAgICAgc2l6ZSArPSBsZW47CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qCisgICAgcHVibGljIGZpbmFsIEJ5dGVBcnJheVdyYXBwZXIgYXBwZW5kKEJ5dGVBcnJheVdyYXBwZXIgb3RoZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChvdGhlci5ieXRlcywgMCwgb3RoZXIuc2l6ZSk7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlcyB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB0byB0aGUgY2FsbGVyLCByZXNldHMgdGhlIGludGVybmFsCisgICAgICogYnl0ZSBhcnJheSB0byBudWxsIGFuZCBpdHMgc2l6ZSB0byAwLgorICAgICAqIEByZXR1cm4gaW50ZXJuYWwgYnl0ZSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYnl0ZVtdIHJlbGVhc2VCeXRlcygpCisgICAgeworICAgICAgICBieXRlIHJlc3VsdFtdID0gYnl0ZXM7CisgICAgICAgIGJ5dGVzID0gbnVsbDsKKyAgICAgICAgc2l6ZSA9IDA7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIEJvaWxlcnBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHN0cmluZyB2YWx1ZSBmb3IgZGVidWdnaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZCgiICIpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVdGlsaXR5LmhleChieXRlc1tpXSYweEZGLDIpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGJ5dGVzIGluIGVhY2ggd3JhcHBlciBhcmUgZXF1YWwuCisgICAgICogQHBhcmFtIG90aGVyIHRoZSBvYmplY3QgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBvYmplY3RzIGFyZSBlcXVhbC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb3RoZXIpIHJldHVybiB0cnVlOworICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciB0aGF0ID0gKEJ5dGVBcnJheVdyYXBwZXIpb3RoZXI7CisgICAgICAgICAgICBpZiAoc2l6ZSAhPSB0aGF0LnNpemUpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ5dGVzW2ldICE9IHRoYXQuYnl0ZXNbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2hjb2RlLgorICAgICAqIEByZXR1cm4gdGhlIGhhc2hjb2RlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGJ5dGVzLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IDM3KnJlc3VsdCArIGJ5dGVzW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIG9iamVjdCB0byBhbm90aGVyIEJ5dGVBcnJheVdyYXBwZXIsIHdoaWNoIG11c3Qgbm90IGJlIG51bGwuCisgICAgICogQHBhcmFtIG90aGVyIHRoZSBvYmplY3QgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIGEgdmFsdWUgPDAsIDAsIG9yID4wIGFzIHRoaXMgY29tcGFyZXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IKKyAgICAgKiBncmVhdGVyIHRoYW4gb3RoZXIuCisgICAgICogQHRocm93cyBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgdGhlIG90aGVyIG9iamVjdCBpcyBub3QgYSBCeXRlQXJyYXlXcmFwcGVyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb3RoZXIpIHJldHVybiAwOworICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHRoYXQgPSAoQnl0ZUFycmF5V3JhcHBlcikgb3RoZXI7CisgICAgICAgIGludCBtaW5TaXplID0gc2l6ZSA8IHRoYXQuc2l6ZSA/IHNpemUgOiB0aGF0LnNpemU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluU2l6ZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoYnl0ZXNbaV0gIT0gdGhhdC5ieXRlc1tpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoYnl0ZXNbaV0gJiAweEZGKSAtICh0aGF0LmJ5dGVzW2ldICYgMHhGRik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpemUgLSB0aGF0LnNpemU7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgY29udGVudHMgb2Ygc3JjIGJ5dGUgYXJyYXkgZnJvbSBvZmZzZXQgc3Jjb2ZmIHRvIHRoZSAKKyAgICAgKiB0YXJnZXQgb2YgdGd0IGJ5dGUgYXJyYXkgYXQgdGhlIG9mZnNldCB0Z3RvZmYuCisgICAgICogQHBhcmFtIHNyYyBzb3VyY2UgYnl0ZSBhcnJheSB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gc3Jjb2ZmIHN0YXJ0IG9mZnNldCBvZiBzcmMgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHRndCB0YXJnZXQgYnl0ZSBhcnJheSB0byBjb3B5IHRvCisgICAgICogQHBhcmFtIHRndG9mZiBzdGFydCBvZmZzZXQgb2YgdGd0IHRvIGNvcHkgdG8KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIHNpemUgb2YgY29udGVudHMgdG8gY29weQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgY29weUJ5dGVzKGJ5dGVbXSBzcmMsIGludCBzcmNvZmYsIGJ5dGVbXSB0Z3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRndG9mZiwgaW50IGxlbmd0aCkgeworICAgICAgICBpZiAobGVuZ3RoIDwgNjQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzcmNvZmYsIG4gPSB0Z3RvZmY7IC0tIGxlbmd0aCA+PSAwOyArKyBpLCArKyBuKSB7CisgICAgICAgICAgICAgICAgdGd0W25dID0gc3JjW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLCBzcmNvZmYsIHRndCwgdGd0b2ZmLCBsZW5ndGgpOworICAgICAgICB9CisgICAgfSAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ0VDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ0VDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMDcwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DRUNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwzMDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEJhc2UgY2xhc3MgZm9yIEV0aGlvcGljQ2FsZW5kYXIgYW5kIENvcHRpY0NhbGVuZGFyLgorICogQGludGVybmFsCisgKi8KK2NsYXNzIENFQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTk5OTU0NzYyMzA2NjQxNDI3MUw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gTWluaW11bSAgR3JlYXRlc3QgICAgTGVhc3QgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gIE1heGltdW0KKyAgICAgICAgezAsIDAsIDEsIDEgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIEVSQQorICAgICAgICB7MSwgMSwgNTgyODk2MywgNTgzODI3MCAgICAgICAgICAgICAgfSwgLy8gWUVBUgorICAgICAgICB7MCwgMCwgMTMsIDEzICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gTU9OVEgKKyAgICAgICAgezEsIDEsIDUyLCA1MyAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7MCwgMCwgMSwgNiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7MSwgMSwgNSwgMzAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsxLCAxLCAzNjUsIDM2NiAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgey0xLCAtMSwgNCwgNiAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBBTV9QTQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTlVURQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgey01ODM4MjcwLCAtNTgzODI3MCwgNTgyODk2NCwgNTgzODI3MX0sIC8vIFlFQVJfV09ZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBET1dfTE9DQUwKKyAgICAgICAgey01ODM4MjY5LCAtNTgzODI2OSwgNTgyODk2MywgNTgzODI3MH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBjZU1PTlRIX0NPVU5UID0geworICAgICAgICAvL2xlbiBsZW4yIHN0ICBzdDIKKyAgICAgICAgezMwLCAzMCwgICAwLCAgIDB9LCAvLyBNZXNrZXJlbQorICAgICAgICB7MzAsIDMwLCAgMzAsICAzMH0sIC8vIFRla2VtdCAKKyAgICAgICAgezMwLCAzMCwgIDYwLCAgNjB9LCAvLyBIZWRhciAKKyAgICAgICAgezMwLCAzMCwgIDkwLCAgOTB9LCAvLyBUYWhzYXMgCisgICAgICAgIHszMCwgMzAsIDEyMCwgMTIwfSwgLy8gVGVyIAorICAgICAgICB7MzAsIDMwLCAxNTAsIDE1MH0sIC8vIFlla2F0aXQKKyAgICAgICAgezMwLCAzMCwgMTgwLCAxODB9LCAvLyBNZWdhYml0CisgICAgICAgIHszMCwgMzAsIDIxMCwgMjEwfSwgLy8gTWlhemlhCisgICAgICAgIHszMCwgMzAsIDI0MCwgMjQ0fSwgLy8gR2VuYm90CisgICAgICAgIHszMCwgMzAsIDI3MCwgMjcwfSwgLy8gU2VuZSAKKyAgICAgICAgezMwLCAzMCwgMzAwLCAzMDB9LCAvLyBIYW1sZSAKKyAgICAgICAgezMwLCAzMCwgMzMwLCAzMzB9LCAvLyBOZWhhc3NlIAorICAgICAgICB7IDUsICA2LCAzNjAsIDM2MH0gIC8vIFB3YWdtZQorICAgICAgICAvLyBsZW4gIGxlbmd0aCBvZiBtb250aAorICAgICAgICAvLyBsZW4yIGxlbmd0aCBvZiBtb250aCBpbiBhIGxlYXAgeWVhcgorICAgICAgICAvLyBzdCAgIGRheXMgaW4geWVhciBiZWZvcmUgc3RhcnQgb2YgbW9udGgKKyAgICAgICAgLy8gc3QyICBkYXlzIGluIHllYXIgYmVmb3JlIG1vbnRoIGluIGxlYXAgeWVhcgorICAgIH07CisgICAgCisgICAgLy8gVGhlIENvcHRpYyBhbmQgRXRoaW9waWMgY2FsZW5kYXJzIGRpZmZlciBvbmx5IGluIHRoZWlyIGVwb2Nocy4KKyAgICAvLyBXZSBoYW5kbGUgdGhpcyBieSBzZXR0aW5nIHRoZSBqZE9mZnNldCB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgLy8gdGhlIEp1bGlhbiBhbmQgQ29wdGljIG9yIEV0aGlvcGljIGVwb2NoLgorICAgIC8vIFRoaXMgdmFsdWUgaXMgc2V0IGluIHRoZSBjbGFzcyBpbml0aWFsaXphdGlvbiBwaGFzZSBvZiB0aGUgdHdvCisgICAgLy8gc3ViY2xhc3NlcywgQ29wdGljQ2FsZW5kYXIgYW5kIEV0aGlvcGljQ2FsZW5kYXIKKyAgICBwcm90ZWN0ZWQgaW50IGpkRXBvY2hPZmZzZXQgID0gLTE7CisgICAgCisKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHRoaXMoem9uZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVGlzaHJpLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRpc2hyaS4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gc2Vjb25kICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FsZW5kYXIgc3lzdGVtIENvbnZlcnN0aW9uIG1ldGhvZHMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlTW9udGgpIHsKKyAgICAgICAgcmV0dXJuIGNlVG9KRChleWVhciwgZW1vbnRoLCAwLCBqZEVwb2NoT2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgSW50ZWdlcltdIGRhdGUgPSBnZXREYXRlRnJvbUpEKGp1bGlhbkRheSwgamRFcG9jaE9mZnNldCk7CisgICAgICAgIGludCBfeWVhciAgPSBkYXRlWzBdLmludFZhbHVlKCk7CisgICAgICAgIGludCBfbW9udGggPSBkYXRlWzFdLmludFZhbHVlKCk7CisgICAgICAgIGludCBfZGF5ICAgPSBkYXRlWzJdLmludFZhbHVlKCk7CisgICAgICAgIGludCBjZXllYXIgPSAwOworCisgICAgICAgIC8vIERvIHdlIHdhbnQgdG8gdXNlIEV0aGlvcGljQ2FsZW5kYXIuQUEsIC5BTSBoZXJlPworICAgICAgICBpbnQgZXJhID0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQ7CisgICAgICAgIGlmIChfeWVhciA8IDApIHsgLy8gZGxmOiB0aGlzIGlzIHdoYXQgdGhlIHRlc3Qgc2F5cyB0byBkbworICAgICAgICAgICAgZXJhICAgPSBHcmVnb3JpYW5DYWxlbmRhci5CQzsKKyAgICAgICAgICAgIGNleWVhciA9IDEgLSBfeWVhcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNleWVhciA9IF95ZWFyOworICAgICAgICB9CisKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIF9tb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgX2RheSk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCAoMzAgKiBfbW9udGgpICsgX2RheSk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIGNleWVhcik7CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgZXJhKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgX3llYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNlVG9KRChsb25nIHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBqZEVwb2NoT2Zmc2V0KSB7CisKKyAgICAgICAgLy8gSnVsaWFuPC0+RXRoaW9waWMgYWxnb3JpdGhtcyBmcm9tOgorICAgICAgICAvLyAiQ2FsZW5kYXJzIGluIEV0aGlvcGlhIiwgQmVyaGFudSBCZXllbmUsIE1hbmZyZWQgS3VkbGVrLCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2UKKyAgICAgICAgLy8gb2YgRXRoaW9waWFuIFN0dWRpZXMgWFYsIEhhbWJ1cmcsIDIwMDMKKworICAgICAgICByZXR1cm4gKGludCkgKAorICAgICAgICAgICAgKGpkRXBvY2hPZmZzZXQrMzY1KSAgICAgLy8gZGlmZmVyZW5jZSBmcm9tIEp1bGlhbiBlcG9jaCB0byAxLDEsMQorICAgICAgICAgICAgKyAzNjUgKiAoeWVhciAtIDEpICAgICAgLy8gbnVtYmVyIG9mIGRheXMgZnJvbSB5ZWFycworICAgICAgICAgICAgKyBxdW90aWVudCh5ZWFyLCA0KSAgICAgLy8gZXh0cmEgZGF5IG9mIGxlYXAgeWVhcgorICAgICAgICAgICAgKyAzMCAqIChtb250aCArIDEpICAgICAgLy8gbnVtYmVyIG9mIGRheXMgZnJvbSBtb250aHMKKyAgICAgICAgICAgICsgZGF0ZSAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBkYXlzIGZvciBwcmVzZW50IG1vbnRoCisgICAgICAgICAgICAtIDMxICAgICAgICAgICAgICAgICAgICAvLyBzbGFjaz8KKyAgICAgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnRlZ2VyW10gZ2V0RGF0ZUZyb21KRChpbnQganVsaWFuRGF5LCBpbnQgamRFcG9jaE9mZnNldCkgeworICAgICAgICAvLyAxNDYxIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBpbiA0IHllYXJzCisgICAgICAgIGxvbmcgcjQgPSBtb2QoanVsaWFuRGF5IC0gamRFcG9jaE9mZnNldCwgMTQ2MSk7IC8vIG51bWJlciBvZiBkYXlzIHdpdGhpbiBhIDQgeWVhciBwZXJpb2QKKyAgICAgICAgbG9uZyAgbiA9IG1vZChyNCwgMzY1KSArIDM2NSAqIHF1b3RpZW50KHI0LCAxNDYwKTsgIC8vIGRheXMgaW4gcHJlc2VudCB5ZWFyCisKKyAgICAgICAgbG9uZyBhcHJpbWUgPSA0ICAgLy8gbnVtYmVyIG9mIHllYXJzIGluIHRoZSBsZWFwIHllYXIgY3ljbGUKKyAgICAgICAgICAgICogcXVvdGllbnQoanVsaWFuRGF5IC0gamRFcG9jaE9mZnNldCwgMTQ2MSkgIC8vIG51bWJlciBvZiA0IHllYXIgcGVyaW9kcyBiZXR3ZWVuIGVwb2Nocz8KKyAgICAgICAgICAgICsgcXVvdGllbnQocjQsIDM2NSkgICAvLyBudW1iZXIgb2YgcmVndWxhciB5ZWFycz8KKyAgICAgICAgICAgIC0gcXVvdGllbnQocjQsIDE0NjApICAvLyBudW1iZXIgb2YgNCB5ZWFyIHBlcmlvZHM/CisgICAgICAgICAgICAtIDE7CisKKyAgICAgICAgaW50IF95ZWFyICAgPSAoaW50KSAoYXByaW1lICsgMSk7CisgICAgICAgIGludCBfbW9udGggID0gKGludCkgKHF1b3RpZW50KG4sIDMwKSk7CisgICAgICAgIGludCBfZGF5ICAgID0gbW9kKG4sIDMwKSArIDE7CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbnRlZ2VyW117IG5ldyBJbnRlZ2VyKF95ZWFyKSwgbmV3IEludGVnZXIoX21vbnRoKSwgbmV3IEludGVnZXIoX2RheSkgfTsKKyAgICB9CisgCisgICAgLyoqCisgICAgICogVGhlc2UgdXRpbGl0eSBmdW5jdGlvbnMgY2FuIGJlIHJlcGxhY2VkIGJ5IGVxdWl2YWxlbnQgCisgICAgICogZnVuY3Rpb25zIGZyb20gSUNVIGlmIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IG1vZChsb25nIGksIGludCBqKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoaSAtIChsb25nKSBqICogcXVvdGllbnQoaSwgaikpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW50IHF1b3RpZW50KGxvbmcgaSwgaW50IGopIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIE1hdGguZmxvb3IoKGRvdWJsZSkgaSAvIGopOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM0NGEyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsNTIyMSBAQAorLyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXlGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbgorICogYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgYW5kIGEgc2V0IG9mIGludGVnZXIgZmllbGRzIHN1Y2ggYXMKKyAqIDxjb2RlPllFQVI8L2NvZGU+LCA8Y29kZT5NT05USDwvY29kZT4sIDxjb2RlPkRBWTwvY29kZT4sIDxjb2RlPkhPVVI8L2NvZGU+LAorICogYW5kIHNvIG9uLiAoQSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGluc3RhbnQgaW4KKyAqIHRpbWUgd2l0aCBtaWxsaXNlY29uZCBwcmVjaXNpb24uIFNlZQorICoge0BsaW5rIERhdGV9CisgKiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIDxjb2RlPkRhdGU8L2NvZGU+IGNsYXNzLikKKyAqCisgKiA8cD48Yj5Ob3RlOjwvYj4gIFRoaXMgY2xhc3MgaXMgc2ltaWxhciwgYnV0IG5vdCBpZGVudGljYWwsIHRvIHRoZSBjbGFzcworICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4gIENoYW5nZXMgYXJlIGRldGFpbGVkIGJlbG93LgorICoKKyAqIDxwPgorICogU3ViY2xhc3NlcyBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW50ZXJwcmV0IGEgPGNvZGU+RGF0ZTwvY29kZT4KKyAqIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgYSBzcGVjaWZpYyBjYWxlbmRhciBzeXN0ZW0uICBJQ1U0SiBjb250YWlucworICogc2V2ZXJhbCBzdWJjbGFzc2VzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgaW50ZXJuYXRpb25hbCBjYWxlbmRhciBzeXN0ZW1zLgorICoKKyAqIDxwPgorICogTGlrZSBvdGhlciBsb2NhbGUtc2Vuc2l0aXZlIGNsYXNzZXMsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm92aWRlcyBhCisgKiBjbGFzcyBtZXRob2QsIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgZm9yIGdldHRpbmcgYSBnZW5lcmFsbHkgdXNlZnVsCisgKiBvYmplY3Qgb2YgdGhpcyB0eXBlLiA8Y29kZT5DYWxlbmRhcjwvY29kZT4ncyA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gbWV0aG9kCisgKiByZXR1cm5zIGEgY2FsZW5kYXIgb2YgYSB0eXBlIGFwcHJvcHJpYXRlIHRvIHRoZSBsb2NhbGUsIHdob3NlCisgKiB0aW1lIGZpZWxkcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPkNhbGVuZGFyIHJpZ2h0Tm93ID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPiBpcyB1c2VkIGJ5IDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgaXRzCisgKiAnPGNvZGU+Y2FsZW5kYXI8L2NvZGU+JyB0YWcgYW5kIHZhbHVlIGFyZSByZXRyaWV2ZWQgaWYgcHJlc2VudC4gIElmIGEgcmVjb2duaXplZAorICogdmFsdWUgaXMgc3VwcGxpZWQsIGEgY2FsZW5kYXIgaXMgcHJvdmlkZWQgYW5kIGNvbmZpZ3VyZWQgYXMgYXBwcm9wcmlhdGUuCisgKiBDdXJyZW50bHkgcmVjb2duaXplZCB0YWdzIGFyZSAiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAKKyAqICJncmVnb3JpYW4iLCAiaGVicmV3IiwgImlzbGFtaWMiLCAiaXNsYW1pYy1jaXZpbCIsIGFuZCAiamFwYW5lc2UiLiAgRm9yCisgKiBleGFtcGxlOiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+Q2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoImVuX1VTQGNhbGVuZGFyPWphcGFuZXNlIikpOzwvcHJlPgorICogPC9ibG9ja3F1b3RlPiB3aWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBKYXBhbmVzZUNhbGVuZGFyICh1c2luZyBlbl9VUyBjb252ZW50aW9ucyBmb3IKKyAqIG1pbmltdW0gZGF5cyBpbiBmaXJzdCB3ZWVrLCBzdGFydCBkYXkgb2Ygd2VlaywgZXQgY2V0ZXJhKS4KKyAqCisgKiA8cD5BIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgY2FuIHByb2R1Y2UgYWxsIHRoZSB0aW1lIGZpZWxkIHZhbHVlcworICogbmVlZGVkIHRvIGltcGxlbWVudCB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGEgcGFydGljdWxhciBsYW5ndWFnZSBhbmQKKyAqIGNhbGVuZGFyIHN0eWxlIChmb3IgZXhhbXBsZSwgSmFwYW5lc2UtR3JlZ29yaWFuLCBKYXBhbmVzZS1UcmFkaXRpb25hbCkuCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGVmaW5lcyB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJldHVybmVkIGJ5IGNlcnRhaW4gZmllbGRzLAorICogYXMgd2VsbCBhcyB0aGVpciBtZWFuaW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBoYXMgdmFsdWUKKyAqIDxjb2RlPk1PTlRIPC9jb2RlPiA9PSA8Y29kZT5KQU5VQVJZPC9jb2RlPiBmb3IgYWxsIGNhbGVuZGFycy4gIE90aGVyIHZhbHVlcworICogYXJlIGRlZmluZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNzLCBzdWNoIGFzIDxjb2RlPkVSQTwvY29kZT4gYW5kCisgKiA8Y29kZT5ZRUFSPC9jb2RlPi4gIFNlZSBpbmRpdmlkdWFsIGZpZWxkIGRvY3VtZW50YXRpb24gYW5kIHN1YmNsYXNzCisgKiBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgPGVtPmxlbmllbnQ8L2VtPiwgaXQgYWNjZXB0cyBhIHdpZGVyIHJhbmdlCisgKiBvZiBmaWVsZCB2YWx1ZXMgdGhhbiBpdCBwcm9kdWNlcy4gIEZvciBleGFtcGxlLCBhIGxlbmllbnQKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbnRlcnByZXRzIDxjb2RlPk1PTlRIPC9jb2RlPiA9PQorICogPGNvZGU+SkFOVUFSWTwvY29kZT4sIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gPT0gMzIgYXMgRmVicnVhcnkgMS4gIEEKKyAqIG5vbi1sZW5pZW50IDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gZ2l2ZW4KKyAqIG91dC1vZi1yYW5nZSBmaWVsZCBzZXR0aW5ncy4gIFdoZW4gY2FsZW5kYXJzIHJlY29tcHV0ZSBmaWVsZCB2YWx1ZXMgZm9yCisgKiByZXR1cm4gYnkgPGNvZGU+Z2V0KCk8L2NvZGU+LCB0aGV5IG5vcm1hbGl6ZSB0aGVtLiAgRm9yIGV4YW1wbGUsIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBhbHdheXMgcHJvZHVjZXMgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPgorICogdmFsdWVzIGJldHdlZW4gMSBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgbW9udGguCisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgYSBsb2NhbGUtc3BlY2lmaWMgc2V2ZW4gZGF5IHdlZWsgdXNpbmcgdHdvCisgKiBwYXJhbWV0ZXJzOiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsKKyAqIChmcm9tIDEgdG8gNykuICBUaGVzZSBudW1iZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSB3aGVuIGEKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBjb25zdHJ1Y3RlZC4gIFRoZXkgbWF5IGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkKKyAqIHRocm91Z2ggdGhlIEFQSS4KKyAqCisgKiA8cD5XaGVuIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb3IKKyAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGRzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gbXVzdCBkZXRlcm1pbmUgdGhlCisgKiBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aCBvciB5ZWFyIGFzIGEgcmVmZXJlbmNlIHBvaW50LiAgVGhlIGZpcnN0IHdlZWsgb2YgYQorICogbW9udGggb3IgeWVhciBpcyBkZWZpbmVkIGFzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIGJlZ2lubmluZyBvbgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kIGNvbnRhaW5pbmcgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBvZiB0aGF0IG1vbnRoIG9yIHllYXIuICBXZWVrcworICogbnVtYmVyZWQgLi4uLCAtMSwgMCBwcmVjZWRlIHRoZSBmaXJzdCB3ZWVrOyB3ZWVrcyBudW1iZXJlZCAyLCAzLC4uLiBmb2xsb3cKKyAqIGl0LiAgTm90ZSB0aGF0IHRoZSBub3JtYWxpemVkIG51bWJlcmluZyByZXR1cm5lZCBieSA8Y29kZT5nZXQoKTwvY29kZT4gbWF5IGJlCisgKiBkaWZmZXJlbnQuICBGb3IgZXhhbXBsZSwgYSBzcGVjaWZpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3MgbWF5CisgKiBkZXNpZ25hdGUgdGhlIHdlZWsgYmVmb3JlIHdlZWsgMSBvZiBhIHllYXIgYXMgd2VlayA8ZW0+bjwvZW0+IG9mIHRoZSBwcmV2aW91cworICogeWVhci4KKyAqCisgKiA8cD4gV2hlbiBjb21wdXRpbmcgYSA8Y29kZT5EYXRlPC9jb2RlPiBmcm9tIHRpbWUgZmllbGRzLCB0d28gc3BlY2lhbAorICogY2lyY3Vtc3RhbmNlcyBtYXkgYXJpc2U6IHRoZXJlIG1heSBiZSBpbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB0aGUKKyAqIDxjb2RlPkRhdGU8L2NvZGU+IChzdWNoIGFzIG9ubHkgeWVhciBhbmQgbW9udGggYnV0IG5vIGRheSBpbiB0aGUgbW9udGgpLCBvcgorICogdGhlcmUgbWF5IGJlIGluY29uc2lzdGVudCBpbmZvcm1hdGlvbiAoc3VjaCBhcyAiVHVlc2RheSwgSnVseSAxNSwgMTk5NiIgLS0KKyAqIEp1bHkgMTUsIDE5OTYgaXMgYWN0dWFsbHkgYSBNb25kYXkpLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IFRoZSBjYWxlbmRhciB3aWxsIHVzZSBkZWZhdWx0CisgKiBpbmZvcm1hdGlvbiB0byBzcGVjaWZ5IHRoZSBtaXNzaW5nIGZpZWxkcy4gVGhpcyBtYXkgdmFyeSBieSBjYWxlbmRhcjsgZm9yCisgKiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUgZGVmYXVsdCBmb3IgYSBmaWVsZCBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZQorICogc3RhcnQgb2YgdGhlIGVwb2NoOiBpLmUuLCBZRUFSID0gMTk3MCwgTU9OVEggPSBKQU5VQVJZLCBEQVRFID0gMSwgZXRjLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IElmIGZpZWxkcyBjb25mbGljdCwgdGhlIGNhbGVuZGFyCisgKiB3aWxsIGdpdmUgcHJlZmVyZW5jZSB0byBmaWVsZHMgc2V0IG1vcmUgcmVjZW50bHkuIEZvciBleGFtcGxlLCB3aGVuCisgKiBkZXRlcm1pbmluZyB0aGUgZGF5LCB0aGUgY2FsZW5kYXIgd2lsbCBsb29rIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZworICogY29tYmluYXRpb25zIG9mIGZpZWxkcy4gIFRoZSBtb3N0IHJlY2VudCBjb21iaW5hdGlvbiwgYXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIG1vc3QgcmVjZW50bHkgc2V0IHNpbmdsZSBmaWVsZCwgd2lsbCBiZSB1c2VkLgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE1PTlRIICsgREFZX09GX01PTlRICisgKiBNT05USCArIFdFRUtfT0ZfTU9OVEggKyBEQVlfT0ZfV0VFSworICogTU9OVEggKyBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLCisgKiBEQVlfT0ZfWUVBUgorICogREFZX09GX1dFRUsgKyBXRUVLX09GX1lFQVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGb3IgdGhlIHRpbWUgb2YgZGF5OgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIEhPVVJfT0ZfREFZCisgKiBBTV9QTSArIEhPVVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gZm9yIHNvbWUgbm9uLUdyZWdvcmlhbiBjYWxlbmRhcnMsIGRpZmZlcmVudAorICogZmllbGRzIG1heSBiZSBuZWNlc3NhcnkgZm9yIGNvbXBsZXRlIGRpc2FtYmlndWF0aW9uLiBGb3IgZXhhbXBsZSwgYSBmdWxsCisgKiBzcGVjaWZpY2F0aW9uIG9mIHRoZSBoaXN0b3JpYWwgQXJhYmljIGFzdHJvbm9taWNhbCBjYWxlbmRhciByZXF1aXJlcyB5ZWFyLAorICogbW9udGgsIGRheS1vZi1tb250aCA8ZW0+YW5kPC9lbT4gZGF5LW9mLXdlZWsgaW4gc29tZSBjYXNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlcmUgYXJlIGNlcnRhaW4gcG9zc2libGUgYW1iaWd1aXRpZXMgaW4KKyAqIGludGVycHJldGF0aW9uIG9mIGNlcnRhaW4gc2luZ3VsYXIgdGltZXMsIHdoaWNoIGFyZSByZXNvbHZlZCBpbiB0aGUKKyAqIGZvbGxvd2luZyB3YXlzOgorICogPG9sPgorICogICAgIDxsaT4gMjQ6MDA6MDAgImJlbG9uZ3MiIHRvIHRoZSBmb2xsb3dpbmcgZGF5LiBUaGF0IGlzLAorICogICAgICAgICAgMjM6NTkgb24gRGVjIDMxLCAxOTY5ICZsdDsgMjQ6MDAgb24gSmFuIDEsIDE5NzAgJmx0OyAyNDowMTowMCBvbiBKYW4gMSwgMTk3MAorICoKKyAqICAgICA8bGk+IEFsdGhvdWdoIGhpc3RvcmljYWxseSBub3QgcHJlY2lzZSwgbWlkbmlnaHQgYWxzbyBiZWxvbmdzIHRvICJhbSIsCisgKiAgICAgICAgICBhbmQgbm9vbiBiZWxvbmdzIHRvICJwbSIsIHNvIG9uIHRoZSBzYW1lIGRheSwKKyAqICAgICAgICAgIDEyOjAwIGFtIChtaWRuaWdodCkgJmx0OyAxMjowMSBhbSwgYW5kIDEyOjAwIHBtIChub29uKSAmbHQ7IDEyOjAxIHBtCisgKiA8L29sPgorICoKKyAqIDxwPgorICogVGhlIGRhdGUgb3IgdGltZSBmb3JtYXQgc3RyaW5ncyBhcmUgbm90IHBhcnQgb2YgdGhlIGRlZmluaXRpb24gb2YgYQorICogY2FsZW5kYXIsIGFzIHRob3NlIG11c3QgYmUgbW9kaWZpYWJsZSBvciBvdmVycmlkYWJsZSBieSB0aGUgdXNlciBhdAorICogcnVudGltZS4gVXNlIHtAbGluayBEYXRlRm9ybWF0fQorICogdG8gZm9ybWF0IGRhdGVzLgorICoKKyAqIDxwPjxzdHJvbmc+RmllbGQgbWFuaXB1bGF0aW9uIG1ldGhvZHM8L3N0cm9uZz48L3A+CisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGZpZWxkcyBjYW4gYmUgY2hhbmdlZCB1c2luZyB0aHJlZSBtZXRob2RzOgorICogPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4sIGFuZCA8Y29kZT5yb2xsKCk8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnNldChmLCB2YWx1ZSk8L2NvZGU+PC9zdHJvbmc+IGNoYW5nZXMgZmllbGQKKyAqIDxjb2RlPmY8L2NvZGU+IHRvIDxjb2RlPnZhbHVlPC9jb2RlPi4gIEluIGFkZGl0aW9uLCBpdCBzZXRzIGFuCisgKiBpbnRlcm5hbCBtZW1iZXIgdmFyaWFibGUgdG8gaW5kaWNhdGUgdGhhdCBmaWVsZCA8Y29kZT5mPC9jb2RlPiBoYXMKKyAqIGJlZW4gY2hhbmdlZC4gQWx0aG91Z2ggZmllbGQgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCBpbW1lZGlhdGVseSwKKyAqIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBpcyBub3QgcmVjb21wdXRlZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvCisgKiA8Y29kZT5nZXQoKTwvY29kZT4sIDxjb2RlPmdldFRpbWUoKTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXRUaW1lSW5NaWxsaXMoKTwvY29kZT4gaXMgbWFkZS4gVGh1cywgbXVsdGlwbGUgY2FsbHMgdG8KKyAqIDxjb2RlPnNldCgpPC9jb2RlPiBkbyBub3QgdHJpZ2dlciBtdWx0aXBsZSwgdW5uZWNlc3NhcnkKKyAqIGNvbXB1dGF0aW9ucy4gQXMgYSByZXN1bHQgb2YgY2hhbmdpbmcgYSBmaWVsZCB1c2luZworICogPGNvZGU+c2V0KCk8L2NvZGU+LCBvdGhlciBmaWVsZHMgbWF5IGFsc28gY2hhbmdlLCBkZXBlbmRpbmcgb24gdGhlCisgKiBmaWVsZCwgdGhlIGZpZWxkIHZhbHVlLCBhbmQgdGhlIGNhbGVuZGFyIHN5c3RlbS4gSW4gYWRkaXRpb24sCisgKiA8Y29kZT5nZXQoZik8L2NvZGU+IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHJldHVybiA8Y29kZT52YWx1ZTwvY29kZT4KKyAqIGFmdGVyIHRoZSBmaWVsZHMgaGF2ZSBiZWVuIHJlY29tcHV0ZWQuIFRoZSBzcGVjaWZpY3MgYXJlIGRldGVybWluZWQgYnkKKyAqIHRoZSBjb25jcmV0ZSBjYWxlbmRhciBjbGFzcy48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5zZXQoQ2FsZW5kYXIuTU9OVEgsCisgKiBDYWxlbmRhci5TRVBURU1CRVIpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBTZXB0ZW1iZXIgMzEsCisgKiAxOTk5LiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGludGVybmFsIHJlcHJlc2VudGF0aW9uIHRoYXQgcmVzb2x2ZXMgdG8KKyAqIE9jdG9iZXIgMSwgMTk5OSBpZiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+aXMgdGhlbiBjYWxsZWQuIEhvd2V2ZXIsIGEKKyAqIGNhbGwgdG8gPGNvZGU+c2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMzApPC9jb2RlPiBiZWZvcmUgdGhlIGNhbGwgdG8KKyAqIDxjb2RlPmdldFRpbWUoKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAxOTk5LCBzaW5jZQorICogbm8gcmVjb21wdXRhdGlvbiBvY2N1cnMgYWZ0ZXIgPGNvZGU+c2V0KCk8L2NvZGU+IGl0c2VsZi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5hZGQoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzIDxjb2RlPmRlbHRhPC9jb2RlPgorICogdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4uICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5zZXQoZiwKKyAqIGdldChmKSArIGRlbHRhKTwvY29kZT4gd2l0aCB0d28gYWRqdXN0bWVudHM6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDE8L3N0cm9uZz4uIFRoZSB2YWx1ZSBvZiBmaWVsZCA8Y29kZT5mPC9jb2RlPgorICogICBhZnRlciB0aGUgY2FsbCBtaW51cyB0aGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4gYmVmb3JlIHRoZQorICogICBjYWxsIGlzIDxjb2RlPmRlbHRhPC9jb2RlPiwgbW9kdWxvIGFueSBvdmVyZmxvdyB0aGF0IGhhcyBvY2N1cnJlZCBpbgorICogICBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gT3ZlcmZsb3cgb2NjdXJzIHdoZW4gYSBmaWVsZCB2YWx1ZSBleGNlZWRzIGl0cworICogICByYW5nZSBhbmQsIGFzIGEgcmVzdWx0LCB0aGUgbmV4dCBsYXJnZXIgZmllbGQgaXMgaW5jcmVtZW50ZWQgb3IKKyAqICAgZGVjcmVtZW50ZWQgYW5kIHRoZSBmaWVsZCB2YWx1ZSBpcyBhZGp1c3RlZCBiYWNrIGludG8gaXRzIHJhbmdlLjwvcD4KKyAqCisgKiAgIDxwPjxzdHJvbmc+QWRkIHJ1bGUgMjwvc3Ryb25nPi4gSWYgYSBzbWFsbGVyIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGJlCisgKiAgIGludmFyaWFudCwgYnV0ICZuYnNwOyBpdCBpcyBpbXBvc3NpYmxlIGZvciBpdCB0byBiZSBlcXVhbCB0byBpdHMKKyAqICAgcHJpb3IgdmFsdWUgYmVjYXVzZSBvZiBjaGFuZ2VzIGluIGl0cyBtaW5pbXVtIG9yIG1heGltdW0gYWZ0ZXIgZmllbGQKKyAqICAgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCwgdGhlbiBpdHMgdmFsdWUgaXMgYWRqdXN0ZWQgdG8gYmUgYXMgY2xvc2UKKyAqICAgYXMgcG9zc2libGUgdG8gaXRzIGV4cGVjdGVkIHZhbHVlLiBBIHNtYWxsZXIgZmllbGQgcmVwcmVzZW50cyBhCisgKiAgIHNtYWxsZXIgdW5pdCBvZiB0aW1lLiA8Y29kZT5IT1VSPC9jb2RlPiBpcyBhIHNtYWxsZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+LiBObyBhZGp1c3RtZW50IGlzIG1hZGUgdG8gc21hbGxlciBmaWVsZHMKKyAqICAgdGhhdCBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIGludmFyaWFudC4gVGhlIGNhbGVuZGFyIHN5c3RlbQorICogICBkZXRlcm1pbmVzIHdoYXQgZmllbGRzIGFyZSBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuPC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkluIGFkZGl0aW9uLCB1bmxpa2UgPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4gZm9yY2VzCisgKiBhbiBpbW1lZGlhdGUgcmVjb21wdXRhdGlvbiBvZiB0aGUgY2FsZW5kYXIncyBtaWxsaXNlY29uZHMgYW5kIGFsbAorICogZmllbGRzLjwvcD4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPmFkZChDYWxlbmRhci5NT05USCwKKyAqIDEzKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAyMDAwLiA8c3Ryb25nPkFkZCBydWxlCisgKiAxPC9zdHJvbmc+IHNldHMgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCB0byBTZXB0ZW1iZXIsIHNpbmNlCisgKiBhZGRpbmcgMTMgbW9udGhzIHRvIEF1Z3VzdCBnaXZlcyBTZXB0ZW1iZXIgb2YgdGhlIG5leHQgeWVhci4gU2luY2UKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90IGJlIDMxIGluIFNlcHRlbWJlciBpbiBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIDxzdHJvbmc+YWRkIHJ1bGUgMjwvc3Ryb25nPiBzZXRzIHRoZQorICogPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiB0byAzMCwgdGhlIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUuIEFsdGhvdWdoCisgKiBpdCBpcyBhIHNtYWxsZXIgZmllbGQsIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBpcyBub3QgYWRqdXN0ZWQgYnkKKyAqIHJ1bGUgMiwgc2luY2UgaXQgaXMgZXhwZWN0ZWQgdG8gY2hhbmdlIHdoZW4gdGhlIG1vbnRoIGNoYW5nZXMgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnJvbGwoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzCisgKiA8Y29kZT5kZWx0YTwvY29kZT4gdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4gd2l0aG91dCBjaGFuZ2luZyBsYXJnZXIKKyAqIGZpZWxkcy4gVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+YWRkKGYsIGRlbHRhKTwvY29kZT4gd2l0aAorICogdGhlIGZvbGxvd2luZyBhZGp1c3RtZW50OjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PHN0cm9uZz5Sb2xsIHJ1bGU8L3N0cm9uZz4uIExhcmdlciBmaWVsZHMgYXJlIHVuY2hhbmdlZCBhZnRlciB0aGUKKyAqICAgY2FsbC4gQSBsYXJnZXIgZmllbGQgcmVwcmVzZW50cyBhIGxhcmdlciB1bml0IG9mCisgKiAgIHRpbWUuIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gaXMgYSBsYXJnZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5IT1VSPC9jb2RlPi48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLk1PTlRILAorICogOCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIEFwcmlsIDMwLCA8c3Ryb25nPjE5OTk8L3N0cm9uZz4uICBBZGQKKyAqIHJ1bGUgMSBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gQXByaWwuIFVzaW5nIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90CisgKiBiZSAzMSBpbiB0aGUgbW9udGggQXByaWwuIEFkZCBydWxlIDIgc2V0cyBpdCB0byB0aGUgY2xvc2VzdCBwb3NzaWJsZQorICogdmFsdWUsIDMwLiBGaW5hbGx5LCB0aGUgPHN0cm9uZz5yb2xsIHJ1bGU8L3N0cm9uZz4gbWFpbnRhaW5zIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgdmFsdWUgb2YgMTk5OS48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIFN1bmRheSBKdW5lIDYsIDE5OTkuIENhbGxpbmcKKyAqIDxjb2RlPnJvbGwoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgLTEpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0bworICogVHVlc2RheSBKdW5lIDEsIDE5OTksIHdoZXJlYXMgY2FsbGluZworICogPGNvZGU+YWRkKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFN1bmRheSBNYXkgMzAsIDE5OTkuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcm9sbCBydWxlIGltcG9zZXMgYW4KKyAqIGFkZGl0aW9uYWwgY29uc3RyYWludDogVGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBtdXN0IG5vdCBjaGFuZ2Ugd2hlbiB0aGUKKyAqIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGlzIHJvbGxlZC4gVGFrZW4gdG9nZXRoZXIgd2l0aCBhZGQgcnVsZSAxLAorICogdGhlIHJlc3VsdGFudCBkYXRlIG11c3QgYmUgYmV0d2VlbiBUdWVzZGF5IEp1bmUgMSBhbmQgU2F0dXJkYXkgSnVuZQorICogNS4gQWNjb3JkaW5nIHRvIGFkZCBydWxlIDIsIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4sIGFuIGludmFyaWFudAorICogd2hlbiBjaGFuZ2luZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4sIGlzIHNldCB0byBUdWVzZGF5LCB0aGUKKyAqIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUgdG8gU3VuZGF5ICh3aGVyZSBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAqIHdlZWspLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPlVzYWdlIG1vZGVsPC9zdHJvbmc+LiBUbyBtb3RpdmF0ZSB0aGUgYmVoYXZpb3Igb2YKKyAqIDxjb2RlPmFkZCgpPC9jb2RlPiBhbmQgPGNvZGU+cm9sbCgpPC9jb2RlPiwgY29uc2lkZXIgYSB1c2VyIGludGVyZmFjZQorICogY29tcG9uZW50IHdpdGggaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBmb3IgdGhlIG1vbnRoLCBkYXksIGFuZAorICogeWVhciwgYW5kIGFuIHVuZGVybHlpbmcgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LiBJZiB0aGUKKyAqIGludGVyZmFjZSByZWFkcyBKYW51YXJ5IDMxLCAxOTk5IGFuZCB0aGUgdXNlciBwcmVzc2VzIHRoZSBtb250aAorICogaW5jcmVtZW50IGJ1dHRvbiwgd2hhdCBzaG91bGQgaXQgcmVhZD8gSWYgdGhlIHVuZGVybHlpbmcKKyAqIGltcGxlbWVudGF0aW9uIHVzZXMgPGNvZGU+c2V0KCk8L2NvZGU+LCBpdCBtaWdodCByZWFkIE1hcmNoIDMsIDE5OTkuIEEKKyAqIGJldHRlciByZXN1bHQgd291bGQgYmUgRmVicnVhcnkgMjgsIDE5OTkuIEZ1cnRoZXJtb3JlLCBpZiB0aGUgdXNlcgorICogcHJlc3NlcyB0aGUgbW9udGggaW5jcmVtZW50IGJ1dHRvbiBhZ2FpbiwgaXQgc2hvdWxkIHJlYWQgTWFyY2ggMzEsCisgKiAxOTk5LCBub3QgTWFyY2ggMjgsIDE5OTkuIEJ5IHNhdmluZyB0aGUgb3JpZ2luYWwgZGF0ZSBhbmQgdXNpbmcgZWl0aGVyCisgKiA8Y29kZT5hZGQoKTwvY29kZT4gb3IgPGNvZGU+cm9sbCgpPC9jb2RlPiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgbGFyZ2VyCisgKiBmaWVsZHMgc2hvdWxkIGJlIGFmZmVjdGVkLCB0aGUgdXNlciBpbnRlcmZhY2UgY2FuIGJlaGF2ZSBhcyBtb3N0IHVzZXJzCisgKiB3aWxsIGludHVpdGl2ZWx5IGV4cGVjdC48L3A+CisgKgorICogPHA+PGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kIHtAbGluayAjYWRkIGFkZH0gcmF0aGVyCisgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgKgorICogPHA+PGJpZz48YmlnPjxiPkNhbGVuZGFyIEFyY2hpdGVjdHVyZSBpbiBJQ1U0SjwvYj48L2JpZz48L2JpZz48L3A+CisgKgorICogPHA+UmVjZW50bHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgY2hhbmdlZAorICogc2lnbmlmaWNhbnRseSBpbiBvcmRlciB0byBiZXR0ZXIgc3VwcG9ydCBzdWJjbGFzc2luZy4gVGhlIG9yaWdpbmFsCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgd2FzIGRlc2lnbmVkIHRvIHN1cHBvcnQgc3ViY2xhc3NpbmcsIGJ1dAorICogaXQgaGFkIG9ubHkgb25lIGltcGxlbWVudGVkIHN1YmNsYXNzLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uCisgKiBXaXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZXZlcmFsIG5ldyBjYWxlbmRhciBzdWJjbGFzc2VzLCBpbmNsdWRpbmcKKyAqIHRoZSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiwgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiwKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiwgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiwgdGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiByZXdvcmtlZAorICogdGhvcm91Z2hseS4gVGhpcyBzZWN0aW9uIGRldGFpbHMgdGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgYW5kIG90aGVyCisgKiB3YXlzIGluIHdoaWNoIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGRpZmZlcnMgZnJvbQorICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4KKyAqIDwvcD4KKyAqCisgKiA8cD48YmlnPjxiPkNoYW5nZXM8L2I+PC9iaWc+PC9wPgorICoKKyAqIDxwPk92ZXJ2aWV3IG9mIGNoYW5nZXMgYmV0d2VlbiB0aGUgY2xhc3NpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqIGFyY2hpdGVjdHVyZSBhbmQgdGhlIG5ldyBhcmNoaXRlY3R1cmUuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5maWVsZHNbXTwvY29kZT4gYXJyYXkgaXMgPGNvZGU+cHJpdmF0ZTwvY29kZT4gbm93CisgKiAgICAgaW5zdGVhZCBvZiA8Y29kZT5wcm90ZWN0ZWQ8L2NvZGU+LiAgU3ViY2xhc3NlcyBtdXN0IGFjY2VzcyBpdAorICogICAgIHVzaW5nIHRoZSBtZXRob2RzIHtAbGluayAjaW50ZXJuYWxTZXR9IGFuZAorICogICAgIHtAbGluayAjaW50ZXJuYWxHZXR9LiAgPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMgc2hvdWxkCisgKiAgICAgbm90IGRpcmVjdGx5IGFjY2VzcyBkYXRhIG1lbWJlcnMuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+dGltZTwvY29kZT4gbG9uZyB3b3JkIGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbWF5IGFjY2VzcyBpdCB1c2luZworICogICAgIHRoZSBtZXRob2Qge0BsaW5rICNpbnRlcm5hbEdldFRpbWVJbk1pbGxpc30sIHdoaWNoIGRvZXMgbm90CisgKiAgICAgcHJvdm9rZSBhbiB1cGRhdGUuIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZCBub3QKKyAqICAgICBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKgorICogICA8bGk+VGhlIHNjb3BlIG9mIHJlc3BvbnNpYmlsaXR5IG9mIHN1YmNsYXNzZXMgaGFzIGJlZW4gZHJhc3RpY2FsbHkKKyAqICAgICByZWR1Y2VkLiBBcyBtdWNoIGZ1bmN0aW9uYWxpdHkgYXMgcG9zc2libGUgaXMgaW1wbGVtZW50ZWQgaW4gdGhlCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MuIEFzIGEgcmVzdWx0LCBpdCBpcyBtdWNoIGVhc2llcgorICogICAgIHRvIHN1YmNsYXNzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMKKyAqICAgICBzaG91bGQgbm90IGhhdmUgdG8gcmVpbXBsZW1lbnQgY29tbW9uIGNvZGUuIENlcnRhaW4gYmVoYXZpb3JzIGFyZQorICogICAgIGNvbW1vbiBhY3Jvc3MgY2FsZW5kYXIgc3lzdGVtczogVGhlIGRlZmluaXRpb24gYW5kIGJlaGF2aW9yIG9mCisgKiAgICAgd2Vlay1yZWxhdGVkIGZpZWxkcyBhbmQgdGltZSBmaWVsZHMsIHRoZSBhcml0aG1ldGljCisgKiAgICAgKHtAbGluayAjYWRkKGludCwgaW50KSBhZGR9IGFuZCB7QGxpbmsgI3JvbGwoaW50LCBpbnQpIHJvbGx9KSBiZWhhdmlvciBvZiBtYW55CisgKiAgICAgZmllbGRzLCBhbmQgdGhlIGZpZWxkIHZhbGlkYXRpb24gc3lzdGVtLjwvbGk+CisgKgorICogICA8bGk+VGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiBjb21wbGV0ZWx5IHJlZGVzaWduZWQuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgY29udGFpbnMgc29tZSBHcmVnb3JpYW4KKyAqICAgICBjYWxlbmRhciBhbGdvcml0aG1pYyBzdXBwb3J0IHRoYXQgc3ViY2xhc3NlcyBjYW4gdXNlIChzcGVjaWZpY2FsbHkKKyAqICAgICBpbiB7QGxpbmsgI2hhbmRsZUNvbXB1dGVGaWVsZHN9KS4gIFN1YmNsYXNzZXMgY2FuIHVzZSB0aGUKKyAqICAgICBtZXRob2RzIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gcHJlY29tcHV0ZWQKKyAqICAgICB2YWx1ZXMuIDxiPk1vdGl2YXRpb246PC9iPiBUaGlzIGlzIHJlcXVpcmVkIGJ5IGFsbAorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBzdWJjbGFzc2VzIGluIG9yZGVyIHRvIGltcGxlbWVudCBjb25zaXN0ZW50CisgKiAgICAgdGltZSB6b25lIGJlaGF2aW9yLCBhbmQgR3JlZ29yaWFuLWRlcml2ZWQgc3lzdGVtcyBjYW4gdXNlIHRoZQorICogICAgIGFscmVhZHkgY29tcHV0ZWQgZGF0YS48L2xpPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5GSUVMRF9DT1VOVDwvY29kZT4gY29uc3RhbnQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlCisgKiAgICAge0BsaW5rICNnZXRGaWVsZENvdW50fS4gIEluIGFkZGl0aW9uLCBmcmFtZXdvcmsgQVBJIGhhcyBiZWVuCisgKiAgICAgYWRkZWQgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMuCisgKiAgICAgPGI+TW90aXZhdGlvbjogPC9iPlRoZSBudW1iZXIgb2YgZmllbGRzIGlzIG5vdCBjb25zdGFudCBhY3Jvc3MKKyAqICAgICBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKgorICogICA8bGk+VGhlIHJhbmdlIG9mIGhhbmRsZWQgZGF0ZXMgaGFzIGJlZW4gbmFycm93ZWQgZnJvbSArLy0KKyAqICAgICB+MzAwLDAwMCwwMDAgeWVhcnMgdG8gKy8tIH41LDAwMCwwMDAgeWVhcnMuIEluIHByYWN0aWNhbCB0ZXJtcworICogICAgIHRoaXMgc2hvdWxkIG5vdCBhZmZlY3QgY2xpZW50cy4gSG93ZXZlciwgaXQgZG9lcyBtZWFuIHRoYXQgY2xpZW50CisgKiAgICAgY29kZSBjYW5ub3QgYmUgZ3VhcmFudGVlZCB3ZWxsLWJlaGF2ZWQgcmVzdWx0cyB3aXRoIGRhdGVzIHN1Y2ggYXMKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4gb3IKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUFYX1ZBTFVFKTwvY29kZT4uIEluc3RlYWQsIHRoZQorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjb25zdGFudHMge0BsaW5rICNNSU5fREFURX0sCisgKiAgICAge0BsaW5rICNNQVhfREFURX0sIHtAbGluayAjTUlOX01JTExJU30sCisgKiAgICAge0BsaW5rICNNQVhfTUlMTElTfSwge0BsaW5rICNNSU5fSlVMSUFOfSwgYW5kCisgKiAgICAge0BsaW5rICNNQVhfSlVMSUFOfSBzaG91bGQgYmUgdXNlZC4gPGI+TW90aXZhdGlvbjo8L2I+IFdpdGgKKyAqICAgICB0aGUgYWRkaXRpb24gb2YgdGhlIHtAbGluayAjSlVMSUFOX0RBWX0gZmllbGQsIEp1bGlhbiBkYXkKKyAqICAgICBudW1iZXJzIG11c3QgYmUgcmVzdHJpY3RlZCB0byBhIDMyLWJpdCA8Y29kZT5pbnQ8L2NvZGU+LiAgVGhpcworICogICAgIHJlc3RyaWN0cyB0aGUgb3ZlcmFsbCBzdXBwb3J0ZWQgcmFuZ2UuIEZ1cnRoZXJtb3JlLCByZXN0cmljdGluZworICogICAgIHRoZSBzdXBwb3J0ZWQgcmFuZ2Ugc2ltcGxpZmllcyB0aGUgY29tcHV0YXRpb25zIGJ5IHJlbW92aW5nCisgKiAgICAgc3BlY2lhbCBjYXNlIGNvZGUgdGhhdCB3YXMgdXNlZCB0byBhY2NvbW9kYXRlIGFyaXRobWV0aWMgb3ZlcmZsb3cKKyAqICAgICBhdCBtaWxsaXMgbmVhciA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gYW5kCisgKiAgICAgPGNvZGU+TG9uZy5NQVhfVkFMVUU8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IGZpZWxkcyBhcmUgaW1wbGVtZW50ZWQ6IHtAbGluayAjSlVMSUFOX0RBWX0gZGVmaW5lcworICogICAgIHNpbmdsZS1maWVsZCBzcGVjaWZpY2F0aW9uIG9mIHRoZQorICogICAgIGRhdGUuIHtAbGluayAjTUlMTElTRUNPTkRTX0lOX0RBWX0gZGVmaW5lcyBhIHNpbmdsZS1maWVsZAorICogICAgIHNwZWNpZmljYXRpb24gb2YgdGhlIHdhbGwgdGltZS4ge0BsaW5rICNET1dfTE9DQUx9IGFuZAorICogICAgIHtAbGluayAjWUVBUl9XT1l9IGltcGxlbWVudCBsb2NhbGl6ZWQgZGF5LW9mLXdlZWsgYW5kCisgKiAgICAgd2Vlay1vZi15ZWFyIGJlaGF2aW9yLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBjYW4gYWNjZXNzIG1pbGxpc2Vjb25kIGNvbnN0YW50cworICogICAgIHtAbGluayAjT05FX1NFQ09ORH0sIHtAbGluayAjT05FX01JTlVURX0sCisgKiAgICAge0BsaW5rICNPTkVfSE9VUn0sIHtAbGluayAjT05FX0RBWX0sIGFuZAorICogICAgIHtAbGluayAjT05FX1dFRUt9IGRlZmluZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IEFQSSBoYXMgYmVlbiBhZGRlZCB0byBzdXBvcnQgY2FsZW5kYXItc3BlY2lmaWMgc3ViY2xhc3NlcworICogICAgIG9mIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+U2V2ZXJhbCBzdWJjbGFzc2VzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCwgcmVwcmVzZW50aW5nCisgKiAgICAgdmFyaW91cyBpbnRlcm5hdGlvbmFsIGNhbGVuZGFyIHN5c3RlbXMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3ViY2xhc3MgQVBJPC9iPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5UaGUgb3JpZ2luYWwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IEFQSSB3YXMgYmFzZWQgb24gdGhlIGV4cGVyaWVuY2UKKyAqIG9mIGltcGxlbWVudGluZyBhIG9ubHkgYSBzaW5nbGUgc3ViY2xhc3MsCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uIEFzIGEgcmVzdWx0LCBhbGwgb2YgdGhlIHN1YmNsYXNzaW5nCisgKiBraW5rcyBoYWQgbm90IGJlZW4gd29ya2VkIG91dC4gVGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4KKyAqIHJlZmluZWQgYmFzZWQgb24gc2V2ZXJhbCBpbXBsZW1lbnRlZCBzdWJjbGFzc2VzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMKKyAqIHRoYXQgbXVzdCBiZSBvdmVycmlkZGVuIGFuZCBtZXRob2RzIGZvciBzdWJjbGFzc2VzIHRvIGNhbGwuIFN1YmNsYXNzZXMKKyAqIG5vIGxvbmdlciBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gPGNvZGU+ZmllbGRzPC9jb2RlPiBhbmQKKyAqIDxjb2RlPnN0YW1wPC9jb2RlPi4gSW5zdGVhZCwgdGhleSBoYXZlIG5ldyBBUEkgdG8gYWNjZXNzCisgKiB0aGVzZS4gU3ViY2xhc3NlcyBhcmUgYWJsZSB0byBhbGxvY2F0ZSB0aGUgPGNvZGU+ZmllbGRzPC9jb2RlPiBhcnJheQorICogdGhyb3VnaCBhIHByb3RlY3RlZCBmcmFtZXdvcmsgbWV0aG9kOyB0aGlzIGFsbG93cyBzdWJjbGFzc2VzIHRvCisgKiBzcGVjaWZ5IGFkZGl0aW9uYWwgZmllbGRzLiA8L3A+CisgKgorICogPHA+TW9yZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vdmVkIGludG8gdGhlIGJhc2UgY2xhc3MuIFRoZSBiYXNlCisgKiBjbGFzcyBub3cgY29udGFpbnMgbXVjaCBvZiB0aGUgY29tcHV0YXRpb25hbCBtYWNoaW5lcnkgdG8gc3VwcG9ydCB0aGUKKyAqIEdyZWdvcmlhbiBjYWxlbmRhci4gVGhpcyBpcyBiYXNlZCBvbiB0d28gdGhpbmdzOiAoMSkgTWFueSBjYWxlbmRhcnMKKyAqIGFyZSBiYXNlZCBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIChzdWNoIGFzIHRoZSBCdWRkaGlzdCBhbmQgSmFwYW5lc2UKKyAqIGltcGVyaWFsIGNhbGVuZGFycykuICgyKSA8ZW0+QWxsPC9lbT4gY2FsZW5kYXJzIHJlcXVpcmUgYmFzaWMKKyAqIEdyZWdvcmlhbiBzdXBwb3J0IGluIG9yZGVyIHRvIGhhbmRsZSB0aW1lem9uZSBjb21wdXRhdGlvbnMuIDwvcD4KKyAqCisgKiA8cD5Db21tb24gY29tcHV0YXRpb25zIGhhdmUgYmVlbiBtb3ZlZCBpbnRvCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIFN1YmNsYXNzZXMgbm8gbG9uZ2VyIGNvbXB1dGUgdGhlIHdlZWsgcmVsYXRlZAorICogZmllbGRzIGFuZCB0aGUgdGltZSByZWxhdGVkIGZpZWxkcy4gVGhlc2UgYXJlIGNvbW1vbmx5IGhhbmRsZWQgZm9yIGFsbAorICogY2FsZW5kYXJzIGJ5IHRoZSBiYXNlIGNsYXNzLiA8L3A+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgdGltZSA8dHQ+PSZndDs8L3R0PiBmaWVsZHM8L2I+CisgKgorICogPHA+VGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICoge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzIGFyZQorICogY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLCBiYXNlZCBvbiB0aGUgSnVsaWFuIGRheS4gQWxsIG90aGVyIGZpZWxkcworICogYXJlIGNvbXB1dGVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlQ29tcHV0ZUZpZWxkc30KKyAqICAgICB0byBjb21wdXRlIHRoZSB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzLAorICogICAgIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGUge0BsaW5rICNKVUxJQU5fREFZfSBmaWVsZC4gSWYgdGhlcmUKKyAqICAgICBhcmUgY2FsZW5kYXItc3BlY2lmaWMgZmllbGRzIG5vdCBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiwKKyAqICAgICB0aGV5IG11c3QgYWxzbyBiZSBjb21wdXRlZC4gVGhlc2UgYXJlIHRoZSBvbmx5IGZpZWxkcyB0aGF0IHRoZQorICogICAgIHN1YmNsYXNzIHNob3VsZCBjb21wdXRlLiBBbGwgb3RoZXIgZmllbGRzIGFyZSBjb21wdXRlZCBieSB0aGUgYmFzZQorICogICAgIGNsYXNzLCBzbyB0aW1lIGFuZCB3ZWVrIGZpZWxkcyBiZWhhdmUgaW4gYSBjb25zaXN0ZW50IHdheSBhY3Jvc3MKKyAqICAgICBhbGwgY2FsZW5kYXJzLiBUaGUgZGVmYXVsdCB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kIGluCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudHMgYSBwcm9sZXB0aWMgR3JlZ29yaWFuCisgKiAgICAgY2FsZW5kYXIuIFdpdGhpbiB0aGlzIG1ldGhvZCwgc3ViY2xhc3NlcyBtYXkgY2FsbAorICogICAgIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIG1vbnRoLCBkYXkgb2YgbW9udGgsIGFuZCBleHRlbmRlZCB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgZmllbGRzIDx0dD49Jmd0OzwvdHQ+IHRpbWU8L2I+CisgKgorICogPHA+VGhlIGludGVycHJldGF0aW9uIG9mIG1vc3QgZmllbGQgdmFsdWVzIGlzIGhhbmRsZWQgZW50aXJlbHkgYnkKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRldGVybWluZXMgd2hpY2ggZmllbGRzCisgKiBhcmUgc2V0LCB3aGljaCBhcmUgbm90LCB3aGljaCBhcmUgc2V0IG1vcmUgcmVjZW50bHksIGFuZCBzbyBvbi4gSW4KKyAqIGFkZGl0aW9uLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFuZGxlcyB0aGUgY29tcHV0YXRpb24gb2YgdGhlIHRpbWUKKyAqIGZyb20gdGhlIHRpbWUgZmllbGRzIGFuZCBoYW5kbGVzIHRoZSB3ZWVrLXJlbGF0ZWQgZmllbGRzLiBUaGUgb25seQorICogdGhpbmcgdGhlIHN1YmNsYXNzIG11c3QgZG8gaXMgZGV0ZXJtaW5lIHRoZSBleHRlbmRlZCB5ZWFyLCBiYXNlZCBvbgorICogdGhlIHllYXIgZmllbGRzLCBhbmQgdGhlbiwgZ2l2ZW4gYW4gZXh0ZW5kZWQgeWVhciBhbmQgYSBtb250aCwgaXQgbXVzdAorICogcmV0dXJuIGEgSnVsaWFuIGRheSBudW1iZXIuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldEV4dGVuZGVkWWVhcn0KKyAqICAgICB0byByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIgZm9yIHRoaXMgY2FsZW5kYXIgc3lzdGVtLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCBhbmQgYW55IGZpZWxkcyB0aGF0CisgKiAgICAgdGhlIGNhbGVuZGFyIHN5c3RlbSB1c2VzIHRoYXQgYXJlIGxhcmdlciB0aGFuIGEgeWVhciwgc3VjaCBhcworICogICAgIHtAbGluayAjRVJBfS48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUNvbXB1dGVNb250aFN0YXJ0fQorICogICAgIHRvIHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIKKyAqICAgICBhc3NvY2lhdGVkIHdpdGggYSBtb250aCBhbmQgZXh0ZW5kZWQgeWVhci4gVGhpcyBpcyB0aGUgSnVsaWFuIGRheQorICogICAgIG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC4gVGhlIG1vbnRoCisgKiAgICAgbnVtYmVyIGlzIHplcm8tYmFzZWQuIFRoaXMgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBkZXBlbmQgb24gYW55CisgKiAgICAgZmllbGQgdmFsdWVzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48Yj5PdGhlciBtZXRob2RzPC9iPgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRNb250aExlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIGEKKyAqICAgICBnaXZlbiBtb250aCBvZiBhIGdpdmVuIGV4dGVuZGVkIHllYXIuIFRoZSBtb250aCBudW1iZXIsIGFzIGFsd2F5cywKKyAqICAgICBpcyB6ZXJvLWJhc2VkLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0WWVhckxlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbgorICogICAgIGV4dGVuZGVkIHllYXIuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkKKyAqICAgICA8dHQ+Y29tcHV0ZVdlZWtGaWVsZHM8L3R0PiB0byBjb21wdXRlIHRoZQorICogICAgIHtAbGluayAjV0VFS19PRl9ZRUFSfSBhbmQge0BsaW5rICNZRUFSX1dPWX0gZmllbGRzLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0TGltaXR9CisgKiAgICAgdG8gcmV0dXJuIHRoZSB7QGxpbmsgI01JTklNVU19LAorICogICAgIHtAbGluayAjR1JFQVRFU1RfTUlOSU1VTX0sIHtAbGluayAjTEVBU1RfTUFYSU1VTX0sIG9yCisgKiAgICAge0BsaW5rICNNQVhJTVVNfSBvZiBhIGZpZWxkLCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mCisgKiAgICAgPGNvZGU+bGltaXRUeXBlPC9jb2RlPi4gVGhpcyBtZXRob2Qgb25seSBuZWVkcyB0byBoYW5kbGUgdGhlCisgKiAgICAgZmllbGRzIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNXRUVLX09GX1lFQVJ9LCB7QGxpbmsgI1dFRUtfT0ZfTU9OVEh9LAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfSwge0BsaW5rICNEQVlfT0ZfWUVBUn0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfV0VFS19JTl9NT05USH0sIHtAbGluayAjWUVBUl9XT1l9LCBhbmQKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LiAgT3RoZXIgZmllbGRzIGFyZSBpbnZhcmlhbnQgKHdpdGgKKyAqICAgICByZXNwZWN0IHRvIGNhbGVuZGFyIHN5c3RlbSkgYW5kIGFyZSBoYW5kbGVkIGJ5IHRoZSBiYXNlCisgKiAgICAgY2xhc3MuPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3ZhbGlkYXRlRmllbGR9CisgKiAgICAgdG8gY2hlY2sgYW55IHN1YmNsYXNzLXNwZWNpZmljIGZpZWxkcy4gSWYgdGhlCisgKiAgICAgZmllbGQncyB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UsIHRoZSBtZXRob2Qgc2hvdWxkIHRocm93IGFuCisgKiAgICAgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4gVGhlIG1ldGhvZCBtYXkgY2FsbAorICogICAgIDxjb2RlPnN1cGVyLnZhbGlkYXRlRmllbGQoZmllbGQpPC9jb2RlPiB0byBoYW5kbGUgZmllbGRzIGluIGEKKyAqICAgICBnZW5lcmljIHdheSwgdGhhdCBpcywgdG8gY29tcGFyZSB0aGVtIHRvIHRoZSByYW5nZQorICogICAgIDxjb2RlPmdldE1pbmltdW0oZmllbGQpPC9jb2RlPi4uPGNvZGU+Z2V0TWF4aW11bShmaWVsZCk8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAqICAgICB7QGxpbmsgI2hhbmRsZUNyZWF0ZUZpZWxkc30gdG8gY3JlYXRlIGFuIDxjb2RlPmludFtdPC9jb2RlPgorICogICAgIGFycmF5IGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBjYWxlbmRhcidzIGZpZWxkcy4gVGhpcyBpcyBvbmx5CisgKiAgICAgbmVjZXNzYXJ5IGlmIHRoZSBjYWxlbmRhciBkZWZpbmVzIGFkZGl0aW9uYWwgZmllbGRzIGJleW9uZCB0aG9zZQorICogICAgIGRlZmluZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbXVzdCBiZQorICogICAgIGF0IGxlYXN0IHtAbGluayAjQkFTRV9GSUVMRF9DT1VOVH0gYW5kIG5vIG1vcmUgdGhhbgorICogICAgIHtAbGluayAjTUFYX0ZJRUxEX0NPVU5UfS48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVHZXREYXRlRm9ybWF0fSB0byBjcmVhdGUgYQorICogICAgIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuIFRoaXMgaXMgb25seQorICogICAgIHJlcXVpcmVkIGlmIGEgY2FsZW5kYXIgc3ViY2xhc3MgcmVkZWZpbmVzIHRoZSB1c2Ugb2YgYSBmaWVsZCAoZm9yCisgKiAgICAgZXhhbXBsZSwgY2hhbmdlcyB0aGUge0BsaW5rICNFUkF9IGZpZWxkIGZyb20gYSBzeW1ib2xpYyBmaWVsZAorICogICAgIHRvIGEgbnVtZXJpYyBvbmUpIG9yIGRlZmluZXMgYW4gYWRkaXRpb25hbCBmaWVsZC48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHtAbGluayAjcm9sbCByb2xsfSBhbmQKKyAqICAgICB7QGxpbmsgI2FkZCBhZGR9IHRvIGhhbmRsZSBmaWVsZHMgdGhhdCBhcmUgZGlzY29udGludW91cy4gRm9yCisgKiAgICAgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggJnF1b3Q7QWRhciBJJnF1b3Q7IG9ubHkKKyAqICAgICBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAqICAgICBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuIFRoZSB7QGxpbmsKKyAqICAgICBIZWJyZXdDYWxlbmRhciNhZGQgSGVicmV3Q2FsZW5kYXIuYWRkfSBhbmQge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2RzIHRha2UgdGhpcyBpbnRvCisgKiAgICAgYWNjb3VudCwgc28gdGhhdCBhZGRpbmcgMSBtb250aCB0byBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQKKyAqICAgICAoQWRhcikgaW4gYSBub24tbGVhcCB5ZWFyLiBUaGUgcHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kIHtAbGluaworICogICAgICNwaW5GaWVsZCBwaW5GaWVsZH0gaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHRoZXNlIHR3bworICogICAgIG1ldGhvZHMuIDwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPk5vcm1hbGl6ZWQgYmVoYXZpb3I8L2I+PC9iaWc+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGNlcnRhaW4gZmllbGRzIGhhcyBiZWVuIG1hZGUgY29uc2lzdGVudCBhY3Jvc3MgYWxsCisgKiBjYWxlbmRhciBzeXN0ZW1zIGFuZCBpbXBsZW1lbnRlZCBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRpbWUgaXMgbm9ybWFsaXplZC4gRXZlbiB0aG91Z2ggc29tZSBjYWxlbmRhciBzeXN0ZW1zIHRyYW5zaXRpb24KKyAqICAgICBiZXR3ZWVuIGRheXMgYXQgc3Vuc2V0IG9yIGF0IG90aGVyIHRpbWVzLCBhbGwgSUNVNEogY2FsZW5kYXJzCisgKiAgICAgdHJhbnNpdGlvbiBiZXR3ZWVuIGRheXMgYXQgPGVtPmxvY2FsIHpvbmUgbWlkbmlnaHQ8L2VtPi4gIFRoaXMKKyAqICAgICBhbGxvd3MgSUNVNEogdG8gY2VudHJhbGl6ZSB0aGUgdGltZSBjb21wdXRhdGlvbnMgaW4KKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYW5kIHRvIG1haW50YWluIGJhc2ljIGNvcnJlcHNvbmRlbmNlcworICogICAgIGJldHdlZW4gY2FsZW5kYXIgc3lzdGVtcy4gQWZmZWN0ZWQgZmllbGRzOiB7QGxpbmsgI0FNX1BNfSwKKyAqICAgICB7QGxpbmsgI0hPVVJ9LCB7QGxpbmsgI0hPVVJfT0ZfREFZfSwge0BsaW5rICNNSU5VVEV9LAorICogICAgIHtAbGluayAjU0VDT05EfSwge0BsaW5rICNNSUxMSVNFQ09ORH0sCisgKiAgICAge0BsaW5rICNaT05FX09GRlNFVH0sIGFuZCB7QGxpbmsgI0RTVF9PRkZTRVR9LjwvbGk+CisgKgorICogICA8bGk+RFNUIGJlaGF2aW9yIGlzIG5vcm1hbGl6ZWQuIERheWxpZ2h0IHNhdmluZ3MgdGltZSBiZWhhdmlvciBpcworICogICAgIGNvbXB1dGVkIHRoZSBzYW1lIGZvciBhbGwgY2FsZW5kYXIgc3lzdGVtcywgYW5kIGRlcGVuZHMgb24gdGhlCisgKiAgICAgdmFsdWUgb2Ygc2V2ZXJhbCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gZmllbGRzOiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwgYW5kCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LiBBcyBhIHJlc3VsdCwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiAgICAgYWx3YXlzIGNvbXB1dGVzIHRoZXNlIGZpZWxkcywgZXZlbiBmb3Igbm9uLUdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIHN5c3RlbXMuIFRoZXNlIGZpZWxkcyBhcmUgYXZhaWxhYmxlIHRvIHN1YmNsYXNzZXMuPC9saT4KKyAqCisgKiAgIDxsaT5XZWVrcyBhcmUgbm9ybWFsaXplZC4gQWx0aG91Z2ggbG9jYWxlcyBkZWZpbmUgdGhlIHdlZWsKKyAqICAgICBkaWZmZXJlbnRseSwgaW4gdGVybXMgb2YgdGhlIGRheSBvbiB3aGljaCBpdCBzdGFydHMsIGFuZCB0aGUKKyAqICAgICBkZXNpZ25hdGlvbiBvZiB3ZWVrIG51bWJlciBvbmUgb2YgYSBtb250aCBvciB5ZWFyLCB0aGV5IGFsbCB1c2UgYQorICogICAgIGNvbW1vbiBtZWNoYW5pc20uIEZ1cnRoZXJtb3JlLCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGhhcyBhIHNpbXBsZQorICogICAgIGFuZCBjb25zaXN0ZW50IGRlZmluaXRpb24gdGhyb3VnaG91dCBoaXN0b3J5LiBGb3IgZXhhbXBsZSwKKyAqICAgICBhbHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGludHJvZHVjZWQgYSBkaXNjb250aW51aXR5IHdoZW4KKyAqICAgICBmaXJzdCBpbnN0aXR1dGVkLCB0aGUgZGF5IG9mIHdlZWsgd2FzIG5vdCBkaXNydXB0ZWQuIEZvciB0aGlzCisgKiAgICAgcmVhc29uLCB0aGUgZmllbGRzIHtAbGluayAjREFZX09GX1dFRUt9LCA8Y29kZT5XRUVLX09GX1lFQVIsCisgKiAgICAgV0VFS19PRl9NT05USDwvY29kZT4sIHtAbGluayAjREFZX09GX1dFRUtfSU5fTU9OVEh9LAorICogICAgIHtAbGluayAjRE9XX0xPQ0FMfSwge0BsaW5rICNZRUFSX1dPWX0gYXJlIGFsbCBjb21wdXRlZCBpbgorICogICAgIGEgY29uc2lzdGVudCB3YXkgaW4gdGhlIGJhc2UgY2xhc3MsIGJhc2VkIG9uIHRoZQorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjREFZX09GX1lFQVJ9LAorICogICAgIHtAbGluayAjTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCB3aGljaCBhcmUKKyAqICAgICBjb21wdXRlZCBieSB0aGUgc3ViY2xhc3MuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3VwcG9ydGVkIHJhbmdlPC9iPjwvYmlnPgorICoKKyAqIDxwPlRoZSBhbGxvd2FibGUgcmFuZ2Ugb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhcyBiZWVuCisgKiBuYXJyb3dlZC4gPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IHVzZWQgdG8gYXR0ZW1wdCB0byBzdXBwb3J0CisgKiB0aGUgcmFuZ2Ugb2YgZGF0ZXMgd2l0aCBtaWxsaXNlY29uZCB2YWx1ZXMgZnJvbQorICogPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IHRvIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi4gVGhpcworICogaW50cm9kdWNlZCBhd2t3YXJkIGNvbnN0cnVjdGlvbnMgKGhhY2tzKSB3aGljaCBzbG93ZWQgZG93bgorICogcGVyZm9ybWFuY2UuIEl0IGFsc28gaW50cm9kdWNlZCBub24tdW5pZm9ybSBiZWhhdmlvciBhdCB0aGUKKyAqIGJvdW5kYXJpZXMuIFRoZSBuZXcgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHByb3RvY29sIHNwZWNpZmllcyB0aGUKKyAqIG1heGltdW0gcmFuZ2Ugb2Ygc3VwcG9ydGFibGUgZGF0ZXMgYXMgdGhvc2UgaGF2aW5nIEp1bGlhbiBkYXkgbnVtYmVycworICogb2YgPGNvZGU+LTB4N0YwMDAwMDA8L2NvZGU+IHRvIDxjb2RlPisweDdGMDAwMDAwPC9jb2RlPi4gVGhpcworICogY29ycmVzcG9uZHMgdG8geWVhcnMgZnJvbSB+NSwwMDAsMDAwIEJDRSB0byB+NSwwMDAsMDAwIENFLiBQcm9ncmFtbWVycworICogc2hvdWxkIHVzZSB0aGUgY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9IChvcgorICoge0BsaW5rICNNSU5fTUlMTElTfSBvciB7QGxpbmsgI01JTl9KVUxJQU59KSBhbmQKKyAqIHtAbGluayAjTUFYX0RBVEV9IChvciB7QGxpbmsgI01BWF9NSUxMSVN9IG9yCisgKiB7QGxpbmsgI01BWF9KVUxJQU59KSBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gdG8gc3BlY2lmeSBhbgorICogZXh0cmVtZWx5IGVhcmx5IG9yIGV4dHJlbWVseSBsYXRlIGRhdGUuPC9wPgorICoKKyAqIDxwPjxiaWc+PGI+R2VuZXJhbCBub3RlczwvYj48L2JpZz4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+Q2FsZW5kYXJzIGltcGxlbWVudGF0aW9ucyBhcmUgPGVtPnByb2xlcHRpYzwvZW0+LiBGb3IgZXhhbXBsZSwKKyAqICAgICBldmVuIHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHdhcyBub3QgaW5zdGl0dXRlZCB1bnRpbCB0aGUKKyAqICAgICAxNnRoIGNlbnR1cnksIHRoZSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgc3VwcG9ydHMKKyAqICAgICBkYXRlcyBiZWZvcmUgdGhlIGhpc3RvcmljYWwgb25zZXQgb2YgdGhlIGNhbGVuZGFyIGJ5IGV4dGVuZGluZyB0aGUKKyAqICAgICBjYWxlbmRhciBzeXN0ZW0gYmFja3dhcmQgaW4gdGltZS4gU2ltaWxhcmx5LCB0aGUKKyAqICAgICA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gZXh0ZW5kcyBiYWNrd2FyZCBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgKiAgICAgaXRzIGVwb2NoIGludG8gemVybyBhbmQgbmVnYXRpdmUgeWVhcnMuIFN1YmNsYXNzZXMgZG8gbm90IHRocm93CisgKiAgICAgZXhjZXB0aW9ucyBiZWNhdXNlIGEgZGF0ZSBwcmVjZWRlcyB0aGUgaGlzdG9yaWNhbCBzdGFydCBvZiBhCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtLiBJbnN0ZWFkLCB0aGV5IGltcGxlbWVudAorICogICAgIHtAbGluayAjaGFuZGxlR2V0TGltaXR9IHRvIHJldHVybiBhcHByb3ByaWF0ZSBsaW1pdHMgb24KKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VSQX0sIGV0Yy4gZmllbGRzLiBUaGVuLCBpZiB0aGUKKyAqICAgICBjYWxlbmRhciBpcyBzZXQgdG8gbm90IGJlIGxlbmllbnQsIG91dC1vZi1yYW5nZSBmaWVsZCB2YWx1ZXMgd2lsbAorICogICAgIHRyaWdnZXIgYW4gZXhjZXB0aW9uLjwvbGk+CisgKgorICogICA8bGk+Q2FsZW5kYXIgc3lzdGVtIHN1YmNsYXNzZXMgY29tcHV0ZSBhIDxlbT5leHRlbmRlZAorICogICAgIHllYXI8L2VtPi4gVGhpcyBkaWZmZXJzIGZyb20gdGhlIHtAbGluayAjWUVBUn0gZmllbGQgaW4gdGhhdAorICogICAgIGl0IHJhbmdlcyBvdmVyIGFsbCBpbnRlZ2VyIHZhbHVlcywgaW5jbHVkaW5nIHplcm8gYW5kIG5lZ2F0aXZlCisgKiAgICAgdmFsdWVzLCBhbmQgaXQgZW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9IGZpZWxkIGFuZCBhbGwgbGFyZ2VyIGZpZWxkcy4gIFRodXMsIGZvciB0aGUKKyAqICAgICBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzCisgKiAgICAgPGNvZGU+RVJBPT1BRCA/IFlFQVIgOiAxLVlFQVI8L2NvZGU+LiBBbm90aGVyIGV4YW1wbGUgaXMgdGhlIE1heWFuCisgKiAgICAgbG9uZyBjb3VudCwgd2hpY2ggaGFzIHllYXJzICg8Y29kZT5LVU48L2NvZGU+KSBhbmQgbmVzdGVkIGN5Y2xlcworICogICAgIG9mIHllYXJzICg8Y29kZT5LQVRVTjwvY29kZT4gYW5kIDxjb2RlPkJBS1RVTjwvY29kZT4pLiBUaGUgTWF5YW4KKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzIDxjb2RlPlRVTiArIDIwICogKEtBVFVOCisgKiAgICAgKyAyMCAqIEJBS1RVTik8L2NvZGU+LiBUaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgdXNlcworICogICAgIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGZpZWxkIHRvIGNvbXB1dGUgdGhlIHdlZWstcmVsYXRlZAorICogICAgIGZpZWxkcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogQHNlZSAgICAgICAgICBEYXRlCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBhdXRob3IgTWFyayBEYXZpcywgRGF2aWQgR29sZHNtaXRoLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1LCBMYXVyYSBXZXJuZXIKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2FsZW5kYXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSwgQ29tcGFyYWJsZSB7CisKKyAgICAvLyBEYXRhIGZsb3cgaW4gQ2FsZW5kYXIKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFRoZSBjdXJyZW50IHRpbWUgaXMgcmVwcmVzZW50ZWQgaW4gdHdvIHdheXMgYnkgQ2FsZW5kYXI6IGFzIFVUQworICAgIC8vIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaCBzdGFydCAoMSBKYW51YXJ5IDE5NzAgMDowMCBVVEMpLCBhbmQgYXMgbG9jYWwKKyAgICAvLyBmaWVsZHMgc3VjaCBhcyBNT05USCwgSE9VUiwgQU1fUE0sIGV0Yy4gIEl0IGlzIHBvc3NpYmxlIHRvIGNvbXB1dGUgdGhlCisgICAgLy8gbWlsbGlzIGZyb20gdGhlIGZpZWxkcywgYW5kIHZpY2UgdmVyc2EuICBUaGUgZGF0YSBuZWVkZWQgdG8gZG8gdGhpcworICAgIC8vIGNvbnZlcnNpb24gaXMgZW5jYXBzdWxhdGVkIGJ5IGEgVGltZVpvbmUgb2JqZWN0IG93bmVkIGJ5IHRoZSBDYWxlbmRhci4KKyAgICAvLyBUaGUgZGF0YSBwcm92aWRlZCBieSB0aGUgVGltZVpvbmUgb2JqZWN0IG1heSBhbHNvIGJlIG92ZXJyaWRkZW4gaWYgdGhlCisgICAgLy8gdXNlciBzZXRzIHRoZSBaT05FX09GRlNFVCBhbmQvb3IgRFNUX09GRlNFVCBmaWVsZHMgZGlyZWN0bHkuIFRoZSBjbGFzcworICAgIC8vIGtlZXBzIHRyYWNrIG9mIHdoYXQgaW5mb3JtYXRpb24gd2FzIG1vc3QgcmVjZW50bHkgc2V0IGJ5IHRoZSBjYWxsZXIsIGFuZAorICAgIC8vIHVzZXMgdGhhdCB0byBjb21wdXRlIGFueSBvdGhlciBpbmZvcm1hdGlvbiBhcyBuZWVkZWQuCisKKyAgICAvLyBJZiB0aGUgdXNlciBzZXRzIHRoZSBmaWVsZHMgdXNpbmcgc2V0KCksIHRoZSBkYXRhIGZsb3cgaXMgYXMgZm9sbG93cy4KKyAgICAvLyBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBDYWxlbmRhciBzdWJjbGFzcydzIGNvbXB1dGVUaW1lKCkgbWV0aG9kLgorICAgIC8vIER1cmluZyB0aGlzIHByb2Nlc3MsIGNlcnRhaW4gZmllbGRzIG1heSBiZSBpZ25vcmVkLiAgVGhlIGRpc2FtYmlndWF0aW9uCisgICAgLy8gYWxnb3JpdGhtIGZvciByZXNvbHZpbmcgd2hpY2ggZmllbGRzIHRvIHBheSBhdHRlbnRpb24gdG8gaXMgZGVzY3JpYmVkCisgICAgLy8gYWJvdmUuCisKKyAgICAvLyAgIGxvY2FsIGZpZWxkcyAoWUVBUiwgTU9OVEgsIERBVEUsIEhPVVIsIE1JTlVURSwgZXRjLikKKyAgICAvLyAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICB8IFVzaW5nIENhbGVuZGFyLXNwZWNpZmljIGFsZ29yaXRobQorICAgIC8vICAgICAgICAgICBWCisgICAgLy8gICBsb2NhbCBzdGFuZGFyZCBtaWxsaXMKKyAgICAvLyAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICB8IFVzaW5nIFRpbWVab25lIG9yIHVzZXItc2V0IFpPTkVfT0ZGU0VUIC8gRFNUX09GRlNFVAorICAgIC8vICAgICAgICAgICBWCisgICAgLy8gICBVVEMgbWlsbGlzIChpbiB0aW1lIGRhdGEgbWVtYmVyKQorCisgICAgLy8gSWYgdGhlIHVzZXIgc2V0cyB0aGUgVVRDIG1pbGxpcyB1c2luZyBzZXRUaW1lKCksIHRoZSBkYXRhIGZsb3cgaXMgYXMKKyAgICAvLyBmb2xsb3dzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0aGUgQ2FsZW5kYXIgc3ViY2xhc3MncyBjb21wdXRlRmllbGRzKCkKKyAgICAvLyBtZXRob2QuCisKKyAgICAvLyAgIFVUQyBtaWxsaXMgKGluIHRpbWUgZGF0YSBtZW1iZXIpCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBUaW1lWm9uZSBnZXRPZmZzZXQoKQorICAgIC8vICAgICAgICAgICBWCisgICAgLy8gICBsb2NhbCBzdGFuZGFyZCBtaWxsaXMKKyAgICAvLyAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICB8IFVzaW5nIENhbGVuZGFyLXNwZWNpZmljIGFsZ29yaXRobQorICAgIC8vICAgICAgICAgICBWCisgICAgLy8gICBsb2NhbCBmaWVsZHMgKFlFQVIsIE1PTlRILCBEQVRFLCBIT1VSLCBNSU5VVEUsIGV0Yy4pCisKKyAgICAvLyBJbiBnZW5lcmFsLCBhIHJvdW5kIHRyaXAgZnJvbSBmaWVsZHMsIHRocm91Z2ggbG9jYWwgYW5kIFVUQyBtaWxsaXMsIGFuZAorICAgIC8vIGJhY2sgb3V0IHRvIGZpZWxkcyBpcyBtYWRlIHdoZW4gbmVjZXNzYXJ5LiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0aGUKKyAgICAvLyBjb21wbGV0ZSgpIG1ldGhvZC4gIFJlc29sdmluZyBhIHBhcnRpYWwgc2V0IG9mIGZpZWxkcyBpbnRvIGEgVVRDIG1pbGxpcworICAgIC8vIHZhbHVlIGFsbG93cyBhbGwgcmVtYWluaW5nIGZpZWxkcyB0byBiZSBnZW5lcmF0ZWQgZnJvbSB0aGF0IHZhbHVlLiAgSWYKKyAgICAvLyB0aGUgQ2FsZW5kYXIgaXMgbGVuaWVudCwgdGhlIGZpZWxkcyBhcmUgYWxzbyByZW5vcm1hbGl6ZWQgdG8gc3RhbmRhcmQKKyAgICAvLyByYW5nZXMgd2hlbiB0aGV5IGFyZSByZWdlbmVyYXRlZC4KKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVyYSwgZS5nLiwgQUQgb3IgQkMgaW4gdGhlIEp1bGlhbiBjYWxlbmRhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljCisgICAgICogdmFsdWU7IHNlZSBzdWJjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBzZWUgR3JlZ29yaWFuQ2FsZW5kYXIjQUQKKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0JDCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHllYXIuIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYyB2YWx1ZTsgc2VlIHN1YmNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtb250aC4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlLiBUaGUgZmlyc3QgbW9udGggb2YgdGhlIHllYXIgaXMKKyAgICAgKiA8Y29kZT5KQU5VQVJZPC9jb2RlPjsgdGhlIGxhc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIG1vbnRocyBpbiBhIHllYXIuCisgICAgICogQHNlZSAjSkFOVUFSWQorICAgICAqIEBzZWUgI0ZFQlJVQVJZCisgICAgICogQHNlZSAjTUFSQ0gKKyAgICAgKiBAc2VlICNBUFJJTAorICAgICAqIEBzZWUgI01BWQorICAgICAqIEBzZWUgI0pVTkUKKyAgICAgKiBAc2VlICNKVUxZCisgICAgICogQHNlZSAjQVVHVVNUCisgICAgICogQHNlZSAjU0VQVEVNQkVSCisgICAgICogQHNlZSAjT0NUT0JFUgorICAgICAqIEBzZWUgI05PVkVNQkVSCisgICAgICogQHNlZSAjREVDRU1CRVIKKyAgICAgKiBAc2VlICNVTkRFQ0lNQkVSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEggPSAyOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogd2VlayBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IHllYXIuICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciwgYXMKKyAgICAgKiBkZWZpbmVkIGJ5IDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4sIGhhcyB2YWx1ZSAxLiAgU3ViY2xhc3NlcyBkZWZpbmUKKyAgICAgKiB0aGUgdmFsdWUgb2YgPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmb3IgZGF5cyBiZWZvcmUgdGhlIGZpcnN0IHdlZWsgb2YKKyAgICAgKiB0aGUgeWVhci4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX1lFQVIgPSAzOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogd2VlayBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IG1vbnRoLiAgVGhlIGZpcnN0IHdlZWsgb2YgdGhlIG1vbnRoLCBhcworICAgICAqIGRlZmluZWQgYnkgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiwgaGFzIHZhbHVlIDEuICBTdWJjbGFzc2VzIGRlZmluZQorICAgICAqIHRoZSB2YWx1ZSBvZiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBmb3IgZGF5cyBiZWZvcmUgdGhlIGZpcnN0IHdlZWsgb2YKKyAgICAgKiB0aGUgbW9udGguCisgICAgICogQHNlZSAjZ2V0Rmlyc3REYXlPZldlZWsKKyAgICAgKiBAc2VlICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USCA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIG1vbnRoLiBUaGlzIGlzIGEgc3lub255bSBmb3IgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPi4KKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc2VlICNEQVlfT0ZfTU9OVEgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVRFID0gNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheSBvZiB0aGUgbW9udGguIFRoaXMgaXMgYSBzeW5vbnltIGZvciA8Y29kZT5EQVRFPC9jb2RlPi4KKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc2VlICNEQVRFCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX01PTlRIID0gNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZSBkYXkKKyAgICAgKiBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IHllYXIuICBUaGUgZmlyc3QgZGF5IG9mIHRoZSB5ZWFyIGhhcyB2YWx1ZSAxLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9ZRUFSID0gNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZSBkYXkKKyAgICAgKiBvZiB0aGUgd2Vlay4gIFRoaXMgZmllbGQgdGFrZXMgdmFsdWVzIDxjb2RlPlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+TU9OREFZPC9jb2RlPiwgPGNvZGU+VFVFU0RBWTwvY29kZT4sIDxjb2RlPldFRE5FU0RBWTwvY29kZT4sCisgICAgICogPGNvZGU+VEhVUlNEQVk8L2NvZGU+LCA8Y29kZT5GUklEQVk8L2NvZGU+LCBhbmQgPGNvZGU+U0FUVVJEQVk8L2NvZGU+LgorICAgICAqIEBzZWUgI1NVTkRBWQorICAgICAqIEBzZWUgI01PTkRBWQorICAgICAqIEBzZWUgI1RVRVNEQVkKKyAgICAgKiBAc2VlICNXRURORVNEQVkKKyAgICAgKiBAc2VlICNUSFVSU0RBWQorICAgICAqIEBzZWUgI0ZSSURBWQorICAgICAqIEBzZWUgI1NBVFVSREFZCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUsgPSA3OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogb3JkaW5hbCBudW1iZXIgb2YgdGhlIGRheSBvZiB0aGUgd2VlayB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguIFRvZ2V0aGVyCisgICAgICogd2l0aCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkLCB0aGlzIHVuaXF1ZWx5IHNwZWNpZmllcyBhIGRheQorICAgICAqIHdpdGhpbiBhIG1vbnRoLiAgVW5saWtlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4sIHRoaXMgZmllbGQncyB2YWx1ZSBkb2VzIDxlbT5ub3Q8L2VtPiBkZXBlbmQgb24KKyAgICAgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4uICA8Y29kZT5EQVlfT0ZfTU9OVEggMTwvY29kZT4KKyAgICAgKiB0aHJvdWdoIDxjb2RlPjc8L2NvZGU+IGFsd2F5cyBjb3JyZXNwb25kIHRvIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICogMTwvY29kZT47IDxjb2RlPjg8L2NvZGU+IHRocm91Z2ggPGNvZGU+MTU8L2NvZGU+IGNvcnJlc3BvbmQgdG8KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAyPC9jb2RlPiwgYW5kIHNvIG9uLgorICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDA8L2NvZGU+IGluZGljYXRlcyB0aGUgd2VlayBiZWZvcmUKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAxPC9jb2RlPi4gIE5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrIGZyb20gdGhlCisgICAgICogZW5kIG9mIHRoZSBtb250aCwgc28gdGhlIGxhc3QgU3VuZGF5IG9mIGEgbW9udGggaXMgc3BlY2lmaWVkIGFzCisgICAgICogPGNvZGU+REFZX09GX1dFRUsgPSBTVU5EQVksIERBWV9PRl9XRUVLX0lOX01PTlRIID0gLTE8L2NvZGU+LiAgQmVjYXVzZQorICAgICAqIG5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrd2FyZCB0aGV5IHdpbGwgdXN1YWxseSBiZSBhbGlnbmVkIGRpZmZlcmVudGx5CisgICAgICogd2l0aGluIHRoZSBtb250aCB0aGFuIHBvc2l0aXZlIHZhbHVlcy4gIEZvciBleGFtcGxlLCBpZiBhIG1vbnRoIGhhcyAzMQorICAgICAqIGRheXMsIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIC0xPC9jb2RlPiB3aWxsIG92ZXJsYXAKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCA1PC9jb2RlPiBhbmQgdGhlIGVuZCBvZiA8Y29kZT40PC9jb2RlPi4KKyAgICAgKiBAc2VlICNEQVlfT0ZfV0VFSworICAgICAqIEBzZWUgI1dFRUtfT0ZfTU9OVEgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IDg7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZworICAgICAqIHdoZXRoZXIgdGhlIDxjb2RlPkhPVVI8L2NvZGU+IGlzIGJlZm9yZSBvciBhZnRlciBub29uLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+QU1fUE08L2NvZGU+IGlzIDxjb2RlPlBNPC9jb2RlPi4KKyAgICAgKiBAc2VlICNBTQorICAgICAqIEBzZWUgI1BNCisgICAgICogQHNlZSAjSE9VUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNX1BNID0gOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGhvdXIgb2YgdGhlIG1vcm5pbmcgb3IgYWZ0ZXJub29uLiA8Y29kZT5IT1VSPC9jb2RlPiBpcyB1c2VkIGZvciB0aGUgMTItaG91cgorICAgICAqIGNsb2NrLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgMTAuCisgICAgICogQHNlZSAjQU1fUE0KKyAgICAgKiBAc2VlICNIT1VSX09GX0RBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVIgPSAxMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGhvdXIgb2YgdGhlIGRheS4gPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIHVzZWQgZm9yIHRoZSAyNC1ob3VyIGNsb2NrLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIDIyLgorICAgICAqIEBzZWUgI0hPVVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWSA9IDExOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbWludXRlIHdpdGhpbiB0aGUgaG91ci4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPk1JTlVURTwvY29kZT4gaXMgNC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5VVEUgPSAxMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNlY29uZCB3aXRoaW4gdGhlIG1pbnV0ZS4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPlNFQ09ORDwvY29kZT4gaXMgMTUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EID0gMTM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaWxsaXNlY29uZCB3aXRoaW4gdGhlIHNlY29uZC4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPk1JTExJU0VDT05EPC9jb2RlPiBpcyAyNTAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlMTElTRUNPTkQgPSAxNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHJhdyBvZmZzZXQgZnJvbSBHTVQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFpPTkVfT0ZGU0VUID0gMTU7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXlsaWdodCBzYXZpbmdzIG9mZnNldCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRFNUX09GRlNFVCA9IDE2OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkLiAgVGhpcyBtYXkgYmUgb25lIGdyZWF0ZXIgb3IgbGVzcworICAgICAqIHRoYW4gdGhlIHZhbHVlIG9mIDxjb2RlPkVYVEVOREVEX1lFQVI8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFQVJfV09ZID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbG9jYWxpemVkIGRheSBvZiB3ZWVrLiAgVGhpcyB3aWxsIGJlIGEgdmFsdWUgZnJvbSAxCisgICAgICogdG8gNyBpbmNsdXNpdmUsIHdpdGggMSBiZWluZyB0aGUgbG9jYWxpemVkIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1dfTE9DQUwgPSAxODsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBleHRlbmRlZCB5ZWFyLiAgVGhpcyBpcyBhIHNpbmdsZSBudW1iZXIgZGVzaWduYXRpbmcKKyAgICAgKiB0aGUgeWVhciBvZiB0aGlzIGNhbGVuZGFyIHN5c3RlbSwgZW5jb21wYXNzaW5nIGFsbCBzdXByYS15ZWFyCisgICAgICogZmllbGRzLiAgRm9yIGV4YW1wbGUsIGZvciB0aGUgSnVsaWFuIGNhbGVuZGFyIHN5c3RlbSwgeWVhciBudW1iZXJzCisgICAgICogYXJlIHBvc2l0aXZlLCB3aXRoIGFuIGVyYSBvZiBCQ0Ugb3IgQ0UuICBBbiBleHRlbmRlZCB5ZWFyIHZhbHVlIGZvcgorICAgICAqIHRoZSBKdWxpYW4gY2FsZW5kYXIgc3lzdGVtIGFzc2lnbnMgcG9zaXRpdmUgdmFsdWVzIHRvIENFIHllYXJzIGFuZAorICAgICAqIG5lZ2F0aXZlIHZhbHVlcyB0byBCQ0UgeWVhcnMsIHdpdGggMSBCQ0UgYmVpbmcgeWVhciAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVEX1lFQVIgPSAxOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtb2RpZmllZCBKdWxpYW4gZGF5IG51bWJlci4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20KKyAgICAgKiB0aGUgY29udmVudGlvbmFsIEp1bGlhbiBkYXkgbnVtYmVyIGluIHR3byByZWdhcmRzLiAgRmlyc3QsIGl0CisgICAgICogZGVtYXJjYXRlcyBkYXlzIGF0IGxvY2FsIHpvbmUgbWlkbmlnaHQsIHJhdGhlciB0aGFuIG5vb24gR01ULgorICAgICAqIFNlY29uZCwgaXQgaXMgYSBsb2NhbCBudW1iZXI7IHRoYXQgaXMsIGl0IGRlcGVuZHMgb24gdGhlIGxvY2FsIHRpbWUKKyAgICAgKiB6b25lLiAgSXQgY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBzaW5nbGUgbnVtYmVyIHRoYXQgZW5jb21wYXNzZXMgYWxsCisgICAgICogdGhlIGRhdGUtcmVsYXRlZCBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOX0RBWSA9IDIwOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1pbGxpc2Vjb25kcyBpbiB0aGUgZGF5LiAgVGhpcyByYW5nZXMgZnJvbSAwIHRvCisgICAgICogMjM6NTk6NTkuOTk5IChyZWdhcmRsZXNzIG9mIERTVCkuICBUaGlzIGZpZWxkIGJlaGF2ZXMKKyAgICAgKiA8ZW0+ZXhhY3RseTwvZW0+IGxpa2UgYSBjb21wb3NpdGUgb2YgYWxsIHRpbWUtcmVsYXRlZCBmaWVsZHMsIG5vdAorICAgICAqIGluY2x1ZGluZyB0aGUgem9uZSBmaWVsZHMuICBBcyBzdWNoLCBpdCBhbHNvIHJlZmxlY3RzCisgICAgICogZGlzY29udGludWl0aWVzIG9mIHRob3NlIGZpZWxkcyBvbiBEU1QgdHJhbnNpdGlvbiBkYXlzLiAgT24gYSBkYXkgb2YKKyAgICAgKiBEU1Qgb25zZXQsIGl0IHdpbGwganVtcCBmb3J3YXJkLiAgT24gYSBkYXkgb2YgRFNUIGNlc3NhdGlvbiwgaXQgd2lsbAorICAgICAqIGp1bXAgYmFja3dhcmQuICBUaGlzIHJlZmxlY3RzIHRoZSBmYWN0IHRoYXQgaXMgbXVzdCBiZSBjb21iaW5lZCB3aXRoCisgICAgICogdGhlIERTVF9PRkZTRVQgZmllbGQgdG8gb2J0YWluIGEgdW5pcXVlIGxvY2FsIHRpbWUgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTRUNPTkRTX0lOX0RBWSA9IDIxOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBmaWVsZHMgZGVmaW5lZCBieSB0aGlzIGNsYXNzLiAgU3ViY2xhc3NlcyBtYXkgZGVmaW5lCisgICAgICogYWRkaXRpb24gZmllbGRzIHN0YXJ0aW5nIHdpdGggdGhpcyBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgQkFTRV9GSUVMRF9DT1VOVCA9IDIyOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGZpZWxkcyBwb3NzaWJsZS4gIFN1YmNsYXNzZXMgbXVzdCBub3QgZGVmaW5lCisgICAgICogbW9yZSB0b3RhbCBmaWVsZHMgdGhhbiB0aGlzIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfRklFTERfQ09VTlQgPSAzMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFN1bmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVU5EQVkgPSAxOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogTW9uZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTkRBWSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBUdWVzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRVNEQVkgPSAzOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogV2VkbmVzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRE5FU0RBWSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBUaHVyc2RheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUSFVSU0RBWSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBGcmlkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJREFZID0gNjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFNhdHVyZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNBVFVSREFZID0gNzsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBmaXJzdCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKQU5VQVJZID0gMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRkVCUlVBUlkgPSAxOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHRoaXJkIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BUkNIID0gMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBmb3VydGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVBSSUwgPSAzOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZpZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BWSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2l4dGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVORSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2V2ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKVUxZID0gNjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlaWdodGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVVHVVNUID0gNzsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBuaW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRVBURU1CRVIgPSA4OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHRlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE9DVE9CRVIgPSA5OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVsZXZlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PVkVNQkVSID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdHdlbGZ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUNFTUJFUiA9IDExOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHRoaXJ0ZWVudGggbW9udGggb2YgdGhlIHllYXIuIEFsdGhvdWdoIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICAgICAqIGRvZXMgbm90IHVzZSB0aGlzIHZhbHVlLCBsdW5hciBjYWxlbmRhcnMgZG8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVU5ERUNJTUJFUiA9IDEyOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkFNX1BNPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHBlcmlvZCBvZiB0aGUgZGF5IGZyb20gbWlkbmlnaHQgdG8ganVzdCBiZWZvcmUgbm9vbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+QU1fUE08L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogcGVyaW9kIG9mIHRoZSBkYXkgZnJvbSBub29uIHRvIGp1c3QgYmVmb3JlIG1pZG5pZ2h0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBNID0gMTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIHdlZWtkYXkuCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtEQVkgPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2VuZCBkYXkuCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkQgPSAxOworCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogZGF5IHRoYXQgc3RhcnRzIGFzIGEgd2Vla2RheSBhbmQgdHJhbnNpdGlvbnMgdG8gdGhlIHdlZWtlbmQuCisgICAgICogQ2FsbCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHRvIGdldCB0aGUgcG9pbnQgb2YgdHJhbnNpdGlvbi4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORF9PTlNFVCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiBkYXkgdGhhdCBzdGFydHMgYXMgdGhlIHdlZWtlbmQgYW5kIHRyYW5zaXRpb25zIHRvIGEgd2Vla2RheS4KKyAgICAgKiBDYWxsIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgdG8gZ2V0IHRoZSBwb2ludCBvZiB0cmFuc2l0aW9uLgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EX0NFQVNFID0gMzsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBzZWNvbmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9TRUNPTkQgPSAxMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIG1pbnV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX01JTlVURSA9IDYwKk9ORV9TRUNPTkQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgaG91ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX0hPVVIgICA9IDYwKk9ORV9NSU5VVEU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgZGF5LiAgQWx0aG91Z2ggT05FX0RBWSBhbmQKKyAgICAgKiBPTkVfV0VFSyBjYW4gZml0IGludG8gaW50cywgdGhleSBtdXN0IGJlIGxvbmdzIGluIG9yZGVyIHRvIHByZXZlbnQKKyAgICAgKiBhcml0aG1ldGljIG92ZXJmbG93IHdoZW4gcGVyZm9ybWluZyAoYnVnIDQxNzM1MTYpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBPTkVfREFZICAgID0gMjQqT05FX0hPVVI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgd2Vlay4gIEFsdGhvdWdoIE9ORV9EQVkgYW5kCisgICAgICogT05FX1dFRUsgY2FuIGZpdCBpbnRvIGludHMsIHRoZXkgbXVzdCBiZSBsb25ncyBpbiBvcmRlciB0byBwcmV2ZW50CisgICAgICogYXJpdGhtZXRpYyBvdmVyZmxvdyB3aGVuIHBlcmZvcm1pbmcgKGJ1ZyA0MTczNTE2KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgT05FX1dFRUsgICA9IDcqT05FX0RBWTsKKworICAgIC8qKgorICAgICAqIFRoZSBKdWxpYW4gZGF5IG9mIHRoZSBHcmVnb3JpYW4gZXBvY2gsIHRoYXQgaXMsIEphbnVhcnkgMSwgMSBvbiB0aGUKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSkFOXzFfMV9KVUxJQU5fREFZID0gMTcyMTQyNjsKKworICAgIC8qKgorICAgICAqIFRoZSBKdWxpYW4gZGF5IG9mIHRoZSBlcG9jaCwgdGhhdCBpcywgSmFudWFyeSAxLCAxOTcwIG9uIHRoZQorICAgICAqIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBFUE9DSF9KVUxJQU5fREFZICAgPSAyNDQwNTg4OworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gc3VwcG9ydGVkIEp1bGlhbiBkYXkuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8Y29kZT5NSU5fTUlMTElTPC9jb2RlPiBhbmQgPGNvZGU+TUlOX0RBVEU8L2NvZGU+LgorICAgICAqIEBzZWUgI0pVTElBTl9EQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSU5fSlVMSUFOID0gLTB4N0YwMDAwMDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgZXBvY2ggbWlsbGlzZWNvbmRzLiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50CisgICAgICogdG8gPGNvZGU+TUlOX0pVTElBTjwvY29kZT4gYW5kIDxjb2RlPk1JTl9EQVRFPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgTUlOX01JTExJUyA9IC0xODQzMDM5MDI1MjgwMDAwMDBMOworCisgICAgLy8gR2V0IGFyb3VuZCBidWcgaW4gamlrZXMgMS4xMiBmb3Igbm93LiAgTGF0ZXIsIHVzZToKKyAgICAvL3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNSU5fTUlMTElTID0gKE1JTl9KVUxJQU4gLSBFUE9DSF9KVUxJQU5fREFZKSAqIE9ORV9EQVk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgPGNvZGU+RGF0ZTwvY29kZT4uICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NSU5fSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUlOX01JTExJUzwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEYXRlIE1JTl9EQVRFID0gbmV3IERhdGUoTUlOX01JTExJUyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgSnVsaWFuIGRheS4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPk1BWF9NSUxMSVM8L2NvZGU+IGFuZCA8Y29kZT5NQVhfREFURTwvY29kZT4uCisgICAgICogQHNlZSAjSlVMSUFOX0RBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9KVUxJQU4gPSArMHg3RjAwMDAwMDsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBlcG9jaCBtaWxsaXNlY29uZHMuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NQVhfSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUFYX0RBVEU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNQVhfTUlMTElTID0gKE1BWF9KVUxJQU4gLSBFUE9DSF9KVUxJQU5fREFZKSAqIE9ORV9EQVk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgPGNvZGU+RGF0ZTwvY29kZT4uICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NQVhfSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUFYX01JTExJUzwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEYXRlIE1BWF9EQVRFID0gbmV3IERhdGUoTUFYX01JTExJUyk7CisKKyAgICAvLyBJbnRlcm5hbCBub3RlczoKKyAgICAvLyBDYWxlbmRhciBjb250YWlucyB0d28ga2luZHMgb2YgdGltZSByZXByZXNlbnRhdGlvbnM6IGN1cnJlbnQgInRpbWUiIGluCisgICAgLy8gbWlsbGlzZWNvbmRzLCBhbmQgYSBzZXQgb2YgdGltZSAiZmllbGRzIiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgdGltZS4KKyAgICAvLyBUaGUgdHdvIHJlcHJlc2VudGF0aW9ucyBhcmUgdXN1YWxseSBpbiBzeW5jLCBidXQgY2FuIGdldCBvdXQgb2Ygc3luYworICAgIC8vIGFzIGZvbGxvd3MuCisgICAgLy8gMS4gSW5pdGlhbGx5LCBubyBmaWVsZHMgYXJlIHNldCwgYW5kIHRoZSB0aW1lIGlzIGludmFsaWQuCisgICAgLy8gMi4gSWYgdGhlIHRpbWUgaXMgc2V0LCBhbGwgZmllbGRzIGFyZSBjb21wdXRlZCBhbmQgaW4gc3luYy4KKyAgICAvLyAzLiBJZiBhIHNpbmdsZSBmaWVsZCBpcyBzZXQsIHRoZSB0aW1lIGlzIGludmFsaWQuCisgICAgLy8gUmVjb21wdXRhdGlvbiBvZiB0aGUgdGltZSBhbmQgZmllbGRzIGhhcHBlbnMgd2hlbiB0aGUgb2JqZWN0IG5lZWRzCisgICAgLy8gdG8gcmV0dXJuIGEgcmVzdWx0IHRvIHRoZSB1c2VyLCBvciB1c2UgYSByZXN1bHQgZm9yIGEgY29tcHV0YXRpb24uCisKKyAgICAvKioKKyAgICAgKiBUaGUgZmllbGQgdmFsdWVzIGZvciB0aGUgY3VycmVudGx5IHNldCB0aW1lIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIFRoaXMgaXMgYW4gYXJyYXkgb2YgYXQgbGVhc3QgPGNvZGU+QkFTRV9GSUVMRF9DT1VOVDwvY29kZT4gaW50ZWdlcnMuCisgICAgICogQHNlZSAjaGFuZGxlQ3JlYXRlRmllbGRzCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICAgICAgZmllbGRzW107CisKKyAgICAvKioKKyAgICAgKiBQc2V1ZG8tdGltZS1zdGFtcHMgd2hpY2ggc3BlY2lmeSB3aGVuIGVhY2ggZmllbGQgd2FzIHNldC4gVGhlcmUKKyAgICAgKiBhcmUgdHdvIHNwZWNpYWwgdmFsdWVzLCBVTlNFVCBhbmQgSU5URVJOQUxMWV9TRVQuIFZhbHVlcyBmcm9tCisgICAgICogTUlOSU1VTV9VU0VSX1NFVCB0byBJbnRlZ2VyLk1BWF9WQUxVRSBhcmUgbGVnYWwgdXNlciBzZXQgdmFsdWVzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICAgICAgc3RhbXBbXTsKKworICAgIC8qKgorICAgICAqIFRoZSBjdXJyZW50bHkgc2V0IHRpbWUgZm9yIHRoaXMgY2FsZW5kYXIsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgYWZ0ZXIKKyAgICAgKiBKYW51YXJ5IDEsIDE5NzAsIDA6MDA6MDAgR01ULgorICAgICAqIEBzZWUgPHR0PmlzVGltZVNldDwvdHQ+CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgbG9uZyAgICAgICAgICB0aW1lOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGVuIHRoZSB2YWx1ZSBvZiA8Y29kZT50aW1lPC9jb2RlPiBpcyB2YWxpZC4KKyAgICAgKiBUaGUgdGltZSBpcyBtYWRlIGludmFsaWQgYnkgYSBjaGFuZ2UgdG8gYW4gaXRlbSBvZiA8Y29kZT5maWVsZFtdPC9jb2RlPi4KKyAgICAgKiBAc2VlICN0aW1lCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gICAgICAgaXNUaW1lU2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiA8Y29kZT5maWVsZHNbXTwvY29kZT4gYXJlIGluIHN5bmMgd2l0aCB0aGUgY3VycmVudGx5IHNldCB0aW1lLgorICAgICAqIElmIGZhbHNlLCB0aGVuIHRoZSBuZXh0IGF0dGVtcHQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiBhIGZpZWxkIHdpbGwKKyAgICAgKiBmb3JjZSBhIHJlY29tcHV0YXRpb24gb2YgYWxsIGZpZWxkcyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIG9mCisgICAgICogPGNvZGU+dGltZTwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gICAgICAgYXJlRmllbGRzU2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiBhbGwgZmllbGRzIGhhdmUgYmVlbiBzZXQuICBUaGlzIGlzIG9ubHkgZmFsc2UgaW4gYSBmZXcKKyAgICAgKiBzaXR1YXRpb25zOiBJbiBhIG5ld2x5IGNyZWF0ZWQsIHBhcnRpYWxseSBjb25zdHJ1Y3RlZCBvYmplY3QuICBBZnRlcgorICAgICAqIGEgY2FsbCB0byBjbGVhcigpLiAgSW4gYW4gb2JqZWN0IGp1c3QgcmVhZCBmcm9tIGEgc3RyZWFtIHVzaW5nCisgICAgICogcmVhZE9iamVjdCgpLiAgT25jZSBjb21wdXRlRmllbGRzKCkgaGFzIGJlZW4gY2FsbGVkIHRoaXMgaXMgc2V0IHRvCisgICAgICogdHJ1ZSBhbmQgc3RheXMgdHJ1ZSB1bnRpbCBvbmUgb2YgdGhlIGFib3ZlIHNpdHVhdGlvbnMgcmVjdXJzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgICAgIGFyZUFsbEZpZWxkc1NldDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgYWxsIGZpZWxkcyBoYXZlIGJlZW4gdmlydHVhbGx5IHNldCwgYnV0IGhhdmUgbm90IHlldCBiZWVuCisgICAgICogY29tcHV0ZWQuICBUaGlzIG9jY3VycyBvbmx5IGluIHNldFRpbWVJbk1pbGxpcygpLiAgQSBjYWxlbmRhciBzZXQKKyAgICAgKiB0byB0aGlzIHN0YXRlIHdpbGwgY29tcHV0ZSBhbGwgZmllbGRzIGZyb20gdGhlIHRpbWUgaWYgaXQgYmVjb21lcworICAgICAqIG5lY2Vzc2FyeSwgYnV0IG90aGVyd2lzZSB3aWxsIGRlbGF5IHN1Y2ggY29tcHV0YXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQ7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoaXMgY2FsZW5kYXIgYWxsb3dzIG91dC1vZi1yYW5nZSBmaWVsZCB2YWx1ZXMgZHVyaW5nIGNvbXB1dGF0aW9uCisgICAgICogb2YgPGNvZGU+dGltZTwvY29kZT4gZnJvbSA8Y29kZT5maWVsZHNbXTwvY29kZT4uCisgICAgICogQHNlZSAjc2V0TGVuaWVudAorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgICBsZW5pZW50ID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdXNlZCBieSB0aGlzIGNhbGVuZGFyLiA8L2NvZGU+Q2FsZW5kYXI8L2NvZGU+CisgICAgICogdXNlcyB0aGUgdGltZSB6b25lIGRhdGEgdG8gdHJhbnNsYXRlIGJldHdlZW4gbG9jYWxlIGFuZCBHTVQgdGltZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBUaW1lWm9uZSAgICAgICAgem9uZTsKKworICAgIC8qKgorICAgICAqIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHdpdGggcG9zc2libGUgdmFsdWVzIDxjb2RlPlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+TU9OREFZPC9jb2RlPiwgZXRjLiAgVGhpcyBpcyBhIGxvY2FsZS1kZXBlbmRlbnQgdmFsdWUuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBkYXlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3Qgd2VlayBpbiBhIG1vbnRoIG9yIHllYXIsCisgICAgICogd2l0aCBwb3NzaWJsZSB2YWx1ZXMgZnJvbSAxIHRvIDcuICBUaGlzIGlzIGEgbG9jYWxlLWRlcGVuZGVudCB2YWx1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgbWluaW1hbERheXNJbkZpcnN0V2VlazsKKworICAgIC8qKgorICAgICAqIEZpcnN0IGRheSBvZiB0aGUgd2Vla2VuZCBpbiB0aGlzIGNhbGVuZGFyJ3MgbG9jYWxlLiAgTXVzdCBiZSBpbgorICAgICAqIHRoZSByYW5nZSBTVU5EQVkuLi5TQVRVUkRBWSAoMS4uNykuICBUaGUgd2Vla2VuZCBzdGFydHMgYXQKKyAgICAgKiB3ZWVrZW5kT25zZXRNaWxsaXMgbWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IG9uIHRoYXQgZGF5IG9mCisgICAgICogdGhlIHdlZWsuICBUaGlzIHZhbHVlIGlzIHRha2VuIGZyb20gbG9jYWxlIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2Vla2VuZE9uc2V0OworCisgICAgLyoqCisgICAgICogTWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IGF0IHdoaWNoIHRoZSB3ZWVrZW5kIHN0YXJ0cyBvbiB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIHdlZWsgd2Vla2VuZE9uc2V0LiAgVGltZXMgdGhhdCBhcmUgZ3JlYXRlciB0aGFuIG9yCisgICAgICogZXF1YWwgdG8gd2Vla2VuZE9uc2V0TWlsbGlzIGFyZSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHdlZWtlbmQuCisgICAgICogTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4uMjQqNjAqNjAqMTAwMC0xLiAgVGhpcyB2YWx1ZSBpcyB0YWtlbgorICAgICAqIGZyb20gbG9jYWxlIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2Vla2VuZE9uc2V0TWlsbGlzOworCisgICAgLyoqCisgICAgICogRGF5IG9mIHRoZSB3ZWVrIHdoZW4gdGhlIHdlZWtlbmQgc3RvcHMgaW4gdGhpcyBjYWxlbmRhcidzCisgICAgICogbG9jYWxlLiAgTXVzdCBiZSBpbiB0aGUgcmFuZ2UgU1VOREFZLi4uU0FUVVJEQVkgKDEuLjcpLiAgVGhlCisgICAgICogd2Vla2VuZCBzdG9wcyBhdCB3ZWVrZW5kQ2Vhc2VNaWxsaXMgbWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0CisgICAgICogb24gdGhhdCBkYXkgb2YgdGhlIHdlZWsuICBUaGlzIHZhbHVlIGlzIHRha2VuIGZyb20gbG9jYWxlCisgICAgICogcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kQ2Vhc2U7CisKKyAgICAvKioKKyAgICAgKiBNaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlIHdlZWtlbmQgc3RvcHMgb24gdGhlCisgICAgICogZGF5IG9mIHRoZSB3ZWVrIHdlZWtlbmRDZWFzZS4gIFRpbWVzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBvcgorICAgICAqIGVxdWFsIHRvIHdlZWtlbmRDZWFzZU1pbGxpcyBhcmUgY29uc2lkZXJlZCBub3QgdG8gYmUgdGhlCisgICAgICogd2Vla2VuZC4gIE11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLjI0KjYwKjYwKjEwMDAtMS4gIFRoaXMgdmFsdWUKKyAgICAgKiBpcyB0YWtlbiBmcm9tIGxvY2FsZSByZXNvdXJjZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdlZWtlbmRDZWFzZU1pbGxpczsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIGZpcnN0RGF5T2ZXZWVrIGFuZCBtaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogb2YgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIHRpbWUgc3RhbXAgPGNvZGU+c3RhbXBbXTwvY29kZT4gaW5kaWNhdGluZyB0aGF0CisgICAgICogYSBmaWVsZCBoYXMgbm90IGJlZW4gc2V0IHNpbmNlIHRoZSBsYXN0IGNhbGwgdG8gPGNvZGU+Y2xlYXIoKTwvY29kZT4uCisgICAgICogQHNlZSAjSU5URVJOQUxMWV9TRVQKKyAgICAgKiBAc2VlICNNSU5JTVVNX1VTRVJfU1RBTVAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBVTlNFVCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgdGltZSBzdGFtcCA8Y29kZT5zdGFtcFtdPC9jb2RlPiBpbmRpY2F0aW5nIHRoYXQgYSBmaWVsZAorICAgICAqIGhhcyBiZWVuIHNldCB2aWEgY29tcHV0YXRpb25zIGZyb20gdGhlIHRpbWUgb3IgZnJvbSBvdGhlciBmaWVsZHMuCisgICAgICogQHNlZSAjVU5TRVQKKyAgICAgKiBAc2VlICNNSU5JTVVNX1VTRVJfU1RBTVAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTlRFUk5BTExZX1NFVCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgdGltZSBzdGFtcCA8Y29kZT5zdGFtcFtdPC9jb2RlPiBoYXMgYSB2YWx1ZSBncmVhdGVyIHRoYW4gb3IKKyAgICAgKiBlcXVhbCB0byA8Y29kZT5NSU5JTVVNX1VTRVJfU0VUPC9jb2RlPiB0aGVuIGl0IGhhcyBiZWVuIHNldCBieSB0aGUKKyAgICAgKiB1c2VyIHZpYSBhIGNhbGwgdG8gPGNvZGU+c2V0KCk8L2NvZGU+LgorICAgICAqIEBzZWUgI1VOU0VUCisgICAgICogQHNlZSAjSU5URVJOQUxMWV9TRVQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSU5JTVVNX1VTRVJfU1RBTVAgPSAyOworCisgICAgLyoqCisgICAgICogVGhlIG5leHQgYXZhaWxhYmxlIHZhbHVlIGZvciA8Y29kZT5zdGFtcFtdPC9jb2RlPiwgYW4gaW50ZXJuYWwgYXJyYXkuCisgICAgICogVGhpcyBhY3R1YWxseSBzaG91bGQgbm90IGJlIHdyaXR0ZW4gb3V0IHRvIHRoZSBzdHJlYW0sIGFuZCB3aWxsIHByb2JhYmx5CisgICAgICogYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0gaW4gdGhlIG5lYXIgZnV0dXJlLiAgSW4gdGhlIG1lYW50aW1lLAorICAgICAqIGEgdmFsdWUgb2YgPGNvZGU+TUlOSU1VTV9VU0VSX1NUQU1QPC9jb2RlPiBzaG91bGQgYmUgdXNlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgICAgICAgIG5leHRTdGFtcCA9IE1JTklNVU1fVVNFUl9TVEFNUDsKKworICAgIC8vIHRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAvLyAtIDAgKGRlZmF1bHQpIGZvciB2ZXJzaW9uIHVwIHRvIEpESyAxLjEuNQorICAgIC8vIC0gMSBmb3IgdmVyc2lvbiBmcm9tIEpESyAxLjEuNiwgd2hpY2ggd3JpdGVzIGEgY29ycmVjdCAndGltZScgdmFsdWUKKyAgICAvLyAgICAgYXMgd2VsbCBhcyBjb21wYXRpYmxlIHZhbHVlcyBmb3Igb3RoZXIgZmllbGRzLiAgVGhpcyBpcyBhCisgICAgLy8gICAgIHRyYW5zaXRpb25hbCBmb3JtYXQuCisgICAgLy8gLSAyIChub3QgaW1wbGVtZW50ZWQgeWV0KSBhIGZ1dHVyZSB2ZXJzaW9uLCBpbiB3aGljaCBmaWVsZHNbXSwKKyAgICAvLyAgICAgYXJlRmllbGRzU2V0LCBhbmQgaXNUaW1lU2V0IGJlY29tZSB0cmFuc2llbnQsIGFuZCBpc1NldFtdIGlzCisgICAgLy8gICAgIHJlbW92ZWQuIEluIEpESyAxLjEuNiB3ZSB3cml0ZSBhIGZvcm1hdCBjb21wYXRpYmxlIHdpdGggdmVyc2lvbiAyLgorICAgIC8vIHN0YXRpYyBmaW5hbCBpbnQgICAgICAgIGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJpYWxpemVkIGRhdGEgb24gdGhlIHN0cmVhbS4gIFBvc3NpYmxlIHZhbHVlczoKKyAgICAgKiA8ZGw+CisgICAgICogPGR0PjxiPjA8L2I+IG9yIG5vdCBwcmVzZW50IG9uIHN0cmVhbTwvZHQ+CisgICAgICogPGRkPgorICAgICAqIEpESyAxLjEuNSBvciBlYXJsaWVyLgorICAgICAqIDwvZGQ+CisgICAgICogPGR0PjxiPjE8L2I+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogSkRLIDEuMS42IG9yIGxhdGVyLiAgV3JpdGVzIGEgY29ycmVjdCAndGltZScgdmFsdWUKKyAgICAgKiBhcyB3ZWxsIGFzIGNvbXBhdGlibGUgdmFsdWVzIGZvciBvdGhlciBmaWVsZHMuICBUaGlzIGlzIGEKKyAgICAgKiB0cmFuc2l0aW9uYWwgZm9ybWF0LgorICAgICAqIDwvZGQ+CisgICAgICogPC9kbD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgdGhpcyBjbGFzcywgdGhlIG1vc3QgcmVjZW50IGZvcm1hdAorICAgICAqIGFuZCB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPgorICAgICAqIGlzIHdyaXR0ZW4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsxLjEuNgorICAgICAqLworICAgIC8vIHByaXZhdGUgaW50ICAgICAgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLy8gUHJvY2xhaW0gc2VyaWFsaXphdGlvbiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMQorICAgIC8vIHN0YXRpYyBmaW5hbCBsb25nICAgICAgIHNlcmlhbFZlcnNpb25VSUQgPSAtMTgwNzU0NzUwNTgyMTU5MDY0Mkw7CisgICAgCisgICAgLy8gaGF2ZW4ndCBiZWVuIGNvbXBhdGlibGUgZm9yIGF3aGlsZSwgbm8gbG9uZ2VyIHRyeQorICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDYyMjI2NDYxMDQ4ODg3OTA5ODlMOworCisgICAgLyoqCisgICAgICogQml0bWFzayBmb3IgaW50ZXJuYWxTZXQoKSBkZWZpbmluZyB3aGljaCBmaWVsZHMgbWF5IGxlZ2FsbHkgYmUgc2V0CisgICAgICogYnkgc3ViY2xhc3Nlcy4gIEFueSBhdHRlbXB0IHRvIHNldCBhIGZpZWxkIG5vdCBpbiB0aGlzIGJpdG1hc2sKKyAgICAgKiByZXN1bHRzIGluIGFuIGV4Y2VwdGlvbiwgYmVjYXVzZSBzdWNoIGZpZWxkcyBtdXN0IGJlIHNldCBieSB0aGUgYmFzZQorICAgICAqIGNsYXNzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBpbnRlcm5hbFNldE1hc2s7CisKKyAgICAvKioKKyAgICAgKiBUaGUgR3JlZ29yaWFuIHllYXIsIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQKKyAgICAgKiByZXR1cm5lZCBieSBnZXRHcmVnb3JpYW5ZZWFyKCkuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhblllYXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgR3JlZ29yaWFuIG1vbnRoLCBhcyBjb21wdXRlZCBieSBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkgYW5kCisgICAgICogcmV0dXJuZWQgYnkgZ2V0R3JlZ29yaWFuTW9udGgoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuTW9udGg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgR3JlZ29yaWFuIGRheSBvZiB0aGUgeWVhciwgYXMgY29tcHV0ZWQgYnkKKyAgICAgKiBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkgYW5kIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhbkRheU9mWWVhcigpLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5EYXlPZlllYXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgR3JlZ29yaWFuIGRheSBvZiB0aGUgbW9udGgsIGFzIGNvbXB1dGVkIGJ5CisgICAgICogY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpIGFuZCByZXR1cm5lZCBieSBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCkuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbkRheU9mTW9udGg7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgQ2FsZW5kYXIgd2l0aCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUKKyAgICAgKiBhbmQgbG9jYWxlLgorICAgICAqIEBzZWUgICAgIFRpbWVab25lI2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2FsZW5kYXIoKQorICAgIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMoem9uZSwgVUxvY2FsZS5mb3JMb2NhbGUoYUxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICB0aGlzLnpvbmUgPSB6b25lOworICAgICAgICBzZXRXZWVrRGF0YShsb2NhbGUpOworICAgICAgICBpbml0SW50ZXJuYWwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaW5pdEludGVybmFsKCkKKyAgICB7CisgICAgICAgIC8vIEFsbG9jYXRlIGZpZWxkcyB0aHJvdWdoIHRoZSBmcmFtZXdvcmsgbWV0aG9kLiAgU3ViY2xhc3NlcworICAgICAgICAvLyBtYXkgb3ZlcnJpZGUgdGhpcyB0byBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMuCisgICAgICAgIGZpZWxkcyA9IGhhbmRsZUNyZWF0ZUZpZWxkcygpOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIC8vIHRvZG86IGZpeCwgZGlmZmljdWx0IHRvIHRlc3Qgd2l0aG91dCBzdWJjbGFzc2luZworICAgICAgICBpZiAoZmllbGRzID09IG51bGwgfHwgZmllbGRzLmxlbmd0aCA8IEJBU0VfRklFTERfQ09VTlQgfHwKKyAgICAgICAgICAgIGZpZWxkcy5sZW5ndGggPiBNQVhfRklFTERfQ09VTlQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkludmFsaWQgZmllbGRzW10iKTsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgc3RhbXAgPSBuZXcgaW50W2ZpZWxkcy5sZW5ndGhdOworICAgICAgICBpbnQgbWFzayA9ICgxIDw8IEVSQSkgfAorICAgICAgICAgICAgKDEgPDwgWUVBUikgfAorICAgICAgICAgICAgKDEgPDwgTU9OVEgpIHwKKyAgICAgICAgICAgICgxIDw8IERBWV9PRl9NT05USCkgfAorICAgICAgICAgICAgKDEgPDwgREFZX09GX1lFQVIpIHwKKyAgICAgICAgICAgICgxIDw8IEVYVEVOREVEX1lFQVIpOworICAgICAgICBmb3IgKGludCBpPUJBU0VfRklFTERfQ09VTlQ7IGk8ZmllbGRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBtYXNrIHw9ICgxIDw8IGkpOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0TWFzayA9IG1hc2s7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgc3BlY2lmaWVkIGxvY2FsZS4gIAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2Uoem9uZSwgVUxvY2FsZS5mb3JMb2NhbGUoYUxvY2FsZSksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2Uoem9uZSwgbG9jYWxlLCBudWxsKTsKKyAgICB9CisKKyAgICAvLyA9PT09IEZhY3RvcnkgU3R1ZmYgPT09PQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjYWxlbmRhciBvZiBmb3IgdGhlIFRpbWVab25lIGFuZCBsb2NhbGUuICBJZiBmYWN0b3J5TmFtZSBpcworICAgICAqIG5vdCBudWxsLCBsb29rcyBpbiB0aGUgY29sbGVjdGlvbiBvZiBDYWxlbmRhckZhY3RvcmllcyBmb3IgYSBtYXRjaAorICAgICAqIGFuZCB1c2VzIHRoYXQgZmFjdG9yeSB0byBpbnN0YW50aWF0ZSB0aGUgY2FsZW5kYXIuICBPdGhlcndpc2UsIGl0CisgICAgICogdXNlcyB0aGUgZGVmYXVsdCBmYWN0b3J5IHRoYXQgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgLyogcHVibGljICovIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmFjdG9yeU5hbWUpCisgICAgeworICAgICAgICBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSA9IG51bGw7CisgICAgICAgIGlmIChmYWN0b3J5TmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gKENhbGVuZGFyRmFjdG9yeSlnZXRGYWN0b3J5TWFwKCkuZ2V0KGZhY3RvcnlOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxSZXR1cm4gPSBuZXcgVUxvY2FsZVsxXTsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCAmJiBzZXJ2aWNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSAoQ2FsZW5kYXJGYWN0b3J5KXNlcnZpY2UuZ2V0KGxvY2FsZSwgYWN0dWFsUmV0dXJuKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGludCBjYWxUeXBlID0gZ2V0Q2FsZW5kYXJUeXBlKGxvY2FsZSk7CisgICAgICAgICAgICBzd2l0Y2ggKGNhbFR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQlVEREhJU1Q6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCdWRkaGlzdENhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIENISU5FU0U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDaGluZXNlQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgQ09QVElDOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29wdGljQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhc2UgRVRISU9QSUM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFdGhpb3BpY0NhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIEdSRUdPUklBTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIEhFQlJFVzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEhlYnJld0NhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIElTTEFNSUM6CisgICAgICAgICAgICBjYXNlIElTTEFNSUNfQ0lWSUw6IHsKKyAgICAgICAgICAgICAgICBJc2xhbWljQ2FsZW5kYXIgcmVzdWx0ID0gbmV3IElzbGFtaWNDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDaXZpbChjYWxUeXBlID09IElTTEFNSUNfQ0lWSUwpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIEpBUEFORVNFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSmFwYW5lc2VDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBDYWxlbmRhciByZXN1bHQgPSBmYWN0b3J5LmNyZWF0ZSh6b25lLCBsb2NhbGUpOworCisgICAgICAgICAgICAvLyBUT0RPOiBnZXQgdGhlIGFjdHVhbC92YWxpZCBsb2NhbGUgcHJvcGVybHkKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGFjdHVhbFJldHVyblswXTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJVRERISVNUID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0hJTkVTRSA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPUFRJQyA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JFR09SSUFOID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVCUkVXID0gNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVNMQU1JQyA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElTTEFNSUNfQ0lWSUwgPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKQVBBTkVTRSA9IDg7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjYWxUeXBlcyA9IHsKKyAgICAgICAgImJ1ZGRoaXN0IiwgImNoaW5lc2UiLCAiY29wdGljIiwgImV0aGlvcGljIiwgImdyZWdvcmlhbiIsICJoZWJyZXciLCAKKyAgICAgICAgImlzbGFtaWMiLCAiaXNsYW1pYy1jaXZpbCIsICJqYXBhbmVzZSIsCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRDYWxlbmRhclR5cGUoVUxvY2FsZSBsKSB7CisgICAgICAgIFN0cmluZyBzID0gbC5nZXRLZXl3b3JkVmFsdWUoImNhbGVuZGFyIik7CisgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgIGwgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudCgKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiY2FsZW5kYXIiLCAiY2FsZW5kYXIiLCBsLCBudWxsKTsKKyAgICAgICAgICAgIHMgPSBsLmdldEtleXdvcmRWYWx1ZSgiY2FsZW5kYXIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0Q2FsZW5kYXJUeXBlKHMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRDYWxlbmRhclR5cGUoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcyA9IHMudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocy5lcXVhbHMoY2FsVHlwZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gR1JFR09SSUFOOworICAgIH0KKworICAgIC8vL0NMT1ZFUjpPTgorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UgPT0gbnVsbAorICAgICAgICAgICAgPyBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpCisgICAgICAgICAgICA6IHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlID09IG51bGwKKyAgICAgICAgICAgID8gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSkKKyAgICAgICAgICAgIDogc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgZmFjdG9yeU1hcDsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgZ2V0RmFjdG9yeU1hcCgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnlNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgTWFwIG0gPSBuZXcgSGFzaE1hcCg1KTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIEJ1ZGRoaXN0Q2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgQ2hpbmVzZUNhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIEdyZWdvcmlhbkNhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIEhlYnJld0NhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIElzbGFtaWNDYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBKYXBhbmVzZUNhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgZmFjdG9yeU1hcCA9IG07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3RvcnlNYXA7CisgICAgfQorCisvLyBOZXZlciB1c2VkIC0tIHdoeSBpcyB0aGlzIGhlcmU/IEFsYW4gMjAwMy0wNQorLy8gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGRGYWN0b3J5KE1hcCBtLCBDYWxlbmRhckZhY3RvcnkgZikgeworLy8gICAgICAgIG0ucHV0KGYuZmFjdG9yeU5hbWUoKSwgZik7CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHRoZSByZWdpc3RlcmVkIGNhbGVuZGFyIGZhY3RvcnkgbmFtZXMuCisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIC8qIHB1YmxpYyAqLyBzdGF0aWMgU2V0IGdldENhbGVuZGFyRmFjdG9yeU5hbWVzKCkgeworICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KGdldEZhY3RvcnlNYXAoKS5rZXlTZXQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgQ2FsZW5kYXJGYWN0b3J5LiAgZ2V0SW5zdGFuY2UoVGltZVpvbmUsIFVMb2NhbGUsIFN0cmluZykgd2lsbAorICAgICAqIHRyeSB0byBsb2NhdGUgYSByZWdpc3RlcmVkIGZhY3RvcmllcyBtYXRjaGluZyB0aGUgZmFjdG9yeU5hbWUuICBPbmx5IHJlZ2lzdGVyZWQKKyAgICAgKiBmYWN0b3JpZXMgd2lsbCBiZSBmb3VuZC4KKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgZ2V0RmFjdG9yeU1hcCgpLnB1dChmYWN0b3J5LmZhY3RvcnlOYW1lKCksIGZhY3RvcnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIHJlZ2lzdGVyKENhbGVuZGFyRmFjdG9yeSwgVUxvY2FsZSwgYm9vbGVhbik7CisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIC8qIHB1YmxpYyAqLyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVyKENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5LCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXIoZmFjdG9yeSwgbG9jYWxlLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBkZWZhdWx0IENhbGVuZGFyRmFjdG9yeSBmb3IgdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBJZiB0aGUgZmFjdG9yeSBoYXMgbm90IGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIHdpdGgKKyAgICAgKiByZWdpc3RlckZhY3RvcnksIGl0IHdpbGwgYmUuCisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIC8qIHB1YmxpYyAqLyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVyKENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5LCBVTG9jYWxlIGxvY2FsZSwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbGVuZGFyIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICByZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisgICAgICAgIHJldHVybiBnZXRTZXJ2aWNlKCkucmVnaXN0ZXJPYmplY3QoZmFjdG9yeSwgbG9jYWxlLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIHRoZSBDYWxlbmRhckZhY3RvcnkgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5CisgICAgICogKG9idGFpbmVkIGZyb20gcmVnaXN0ZXIpLgorICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICAvKiBwdWJsaWMgKi8gc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UgPT0gbnVsbAorICAgICAgICAgICAgPyBmYWxzZQorICAgICAgICAgICAgOiBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KXJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIElDVUxvY2FsZVNlcnZpY2UgZ2V0U2VydmljZSgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChDYWxlbmRhci5jbGFzcykgeworICAgICAgICAgICAgaWYgKHNlcnZpY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgiQ2FsZW5kYXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLy8gPT09PSBFbmQgb2YgZmFjdG9yeSBTdHVmZiA9PT09CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBEYXRlIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZSggZ2V0VGltZUluTWlsbGlzKCkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgd2l0aCB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiBDYWxsaW5nIDxjb2RlPnNldFRpbWUoKTwvY29kZT4gd2l0aAorICAgICAqIDxjb2RlPkRhdGUoTG9uZy5NQVhfVkFMVUUpPC9jb2RlPiBvciA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4KKyAgICAgKiBtYXkgeWllbGQgaW5jb3JyZWN0IGZpZWxkIHZhbHVlcyBmcm9tIDxjb2RlPmdldCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoIGRhdGUuZ2V0VGltZSgpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lIGFzIGEgbG9uZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgYXMgVVRDIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRUaW1lSW5NaWxsaXMoKSB7CisgICAgICAgIGlmICghaXNUaW1lU2V0KSB1cGRhdGVUaW1lKCk7CisgICAgICAgIHJldHVybiB0aW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSBmcm9tIHRoZSBnaXZlbiBsb25nIHZhbHVlLgorICAgICAqIEBwYXJhbSBtaWxsaXMgdGhlIG5ldyB0aW1lIGluIFVUQyBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZXBvY2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGltZUluTWlsbGlzKCBsb25nIG1pbGxpcyApIHsKKyAgICAgICAgaWYgKG1pbGxpcyA+IE1BWF9NSUxMSVMpIHsKKyAgICAgICAgICAgIG1pbGxpcyA9IE1BWF9NSUxMSVM7CisgICAgICAgIH0gZWxzZSBpZiAobWlsbGlzIDwgTUlOX01JTExJUykgeworICAgICAgICAgICAgbWlsbGlzID0gTUlOX01JTExJUzsKKyAgICAgICAgfQorICAgICAgICB0aW1lID0gbWlsbGlzOworICAgICAgICBhcmVGaWVsZHNTZXQgPSBhcmVBbGxGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgaXNUaW1lU2V0ID0gYXJlRmllbGRzVmlydHVhbGx5U2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXQoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgY29tcGxldGUoKTsKKyAgICAgICAgcmV0dXJuIGZpZWxkc1tmaWVsZF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZC4gIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kCisgICAgICogZm9yIHN1YmNsYXNzZXMgdGhhdCBkb2VzIDxlbT5ub3Q8L2VtPiB0cmlnZ2VyIGFueSBjYWxjdWxhdGlvbnMuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGludGVybmFsR2V0KGludCBmaWVsZCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWVsZHNbZmllbGRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZCwgb3IgcmV0dXJuIHRoZSBnaXZlbiBkZWZhdWx0CisgICAgICogdmFsdWUgaWYgdGhlIGZpZWxkIGlzIG5vdCBzZXQuICBUaGlzIGlzIGFuIGludGVybmFsIG1ldGhvZCBmb3IKKyAgICAgKiBzdWJjbGFzc2VzIHRoYXQgZG9lcyA8ZW0+bm90PC9lbT4gdHJpZ2dlciBhbnkgY2FsY3VsYXRpb25zLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHZhbHVlIHRvIHJldHVybiBpZiBmaWVsZCBpcyBub3Qgc2V0CisgICAgICogQHJldHVybiB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkIG9mIGRlZmF1bHRWYWx1ZSBpZiB0aGUKKyAgICAgKiBmaWVsZCBpcyB1bnNldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgaW50ZXJuYWxHZXQoaW50IGZpZWxkLCBpbnQgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHJldHVybiAoc3RhbXBbZmllbGRdID4gVU5TRVQpID8gZmllbGRzW2ZpZWxkXSA6IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIGZpZWxkIHdpdGggdGhlIGdpdmVuIHZhbHVlLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGJlIHNldCBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCBmaWVsZCwgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGFyZUZpZWxkc1ZpcnR1YWxseVNldCkgeworICAgICAgICAgICAgY29tcHV0ZUZpZWxkcygpOworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB2YWx1ZTsKKyAgICAgICAgc3RhbXBbZmllbGRdID0gbmV4dFN0YW1wKys7CisgICAgICAgIGlzVGltZVNldCA9IGFyZUZpZWxkc1NldCA9IGFyZUZpZWxkc1ZpcnR1YWxseVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgYW5kIGRhdGUuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgeworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWVzIGZvciB0aGUgZmllbGRzIHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBhbmQgbWludXRlLgorICAgICAqIFByZXZpb3VzIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgYXJlIHJldGFpbmVkLiAgSWYgdGhpcyBpcyBub3QgZGVzaXJlZCwKKyAgICAgKiBjYWxsIDxjb2RlPmNsZWFyPC9jb2RlPiBmaXJzdC4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGhvdXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBIT1VSX09GX0RBWSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNSU5VVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlKQorICAgIHsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgICAgICBzZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICBzZXQoTUlOVVRFLCBtaW51dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBhbmQgc2Vjb25kLgorICAgICAqIFByZXZpb3VzIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgYXJlIHJldGFpbmVkLiAgSWYgdGhpcyBpcyBub3QgZGVzaXJlZCwKKyAgICAgKiBjYWxsIDxjb2RlPmNsZWFyPC9jb2RlPiBmaXJzdC4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGhvdXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBIT1VSX09GX0RBWSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNSU5VVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gc2Vjb25kIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgU0VDT05EIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHNldChEQVRFLCBkYXRlKTsKKyAgICAgICAgc2V0KEhPVVJfT0ZfREFZLCBob3VyKTsKKyAgICAgICAgc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICAgICAgc2V0KFNFQ09ORCwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgdGhlIHZhbHVlcyBvZiBhbGwgdGhlIHRpbWUgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxmaWVsZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGZpZWxkc1tpXSA9IHN0YW1wW2ldID0gMDsgLy8gVU5TRVQgPT0gMAorICAgICAgICB9CisgICAgICAgIGlzVGltZVNldCA9IGFyZUZpZWxkc1NldCA9IGFyZUFsbEZpZWxkc1NldCA9IGFyZUZpZWxkc1ZpcnR1YWxseVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgdmFsdWUgaW4gdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSB0aW1lIGZpZWxkIHRvIGJlIGNsZWFyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgY2xlYXIoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgaWYgKGFyZUZpZWxkc1ZpcnR1YWxseVNldCkgeworICAgICAgICAgICAgY29tcHV0ZUZpZWxkcygpOworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tmaWVsZF0gPSAwOworICAgICAgICBzdGFtcFtmaWVsZF0gPSBVTlNFVDsKKyAgICAgICAgaXNUaW1lU2V0ID0gYXJlRmllbGRzU2V0ID0gYXJlQWxsRmllbGRzU2V0ID0gYXJlRmllbGRzVmlydHVhbGx5U2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB0aW1lIGZpZWxkIGhhcyBhIHZhbHVlIHNldDsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzU2V0KGludCBmaWVsZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgfHwgKHN0YW1wW2ZpZWxkXSAhPSBVTlNFVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gYW55IHVuc2V0IGZpZWxkcyBpbiB0aGUgdGltZSBmaWVsZCBsaXN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNvbXBsZXRlKCkKKyAgICB7CisgICAgICAgIGlmICghaXNUaW1lU2V0KSB1cGRhdGVUaW1lKCk7CisgICAgICAgIGlmICghYXJlRmllbGRzU2V0KSB7CisgICAgICAgICAgICBjb21wdXRlRmllbGRzKCk7IC8vIGZpbGxzIGluIHVuc2V0IGZpZWxkcworICAgICAgICAgICAgYXJlRmllbGRzU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGFyZUFsbEZpZWxkc1NldCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGlzIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAqIFRoZSByZXN1bHQgaXMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzCisgICAgICogbm90IDxjb2RlPm51bGw8L2NvZGU+IGFuZCBpcyBhIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgdGhhdAorICAgICAqIHJlcHJlc2VudHMgdGhlIHNhbWUgY2FsZW5kYXIgYXMgdGhpcyBvYmplY3QuCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgd2l0aC4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBvYmplY3RzIGFyZSB0aGUgc2FtZTsKKyAgICAgKiA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgdGhhdCA9IChDYWxlbmRhcikgb2JqOworCisgICAgICAgIHJldHVybiBpc0VxdWl2YWxlbnRUbyh0aGF0KSAmJgorICAgICAgICAgICAgZ2V0VGltZUluTWlsbGlzKCkgPT0gdGhhdC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gQ2FsZW5kYXIgb2JqZWN0IGlzIGVxdWl2YWxlbnQgdG8gdGhpcworICAgICAqIG9uZS4gIEFuIGVxdWl2YWxlbnQgQ2FsZW5kYXIgd2lsbCBiZWhhdmUgZXhhY3RseSBhcyB0aGlzIG9uZQorICAgICAqIGRvZXMsIGJ1dCBpdCBtYXkgYmUgc2V0IHRvIGEgZGlmZmVyZW50IHRpbWUuICBCeSBjb250cmFzdCwgZm9yCisgICAgICogdGhlIGVxdWFscygpIG1ldGhvZCB0byByZXR1cm4gdHJ1ZSwgdGhlIG90aGVyIENhbGVuZGFyIG11c3QKKyAgICAgKiBiZSBzZXQgdG8gdGhlIHNhbWUgdGltZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50VG8oQ2FsZW5kYXIgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoKSA9PSBvdGhlci5nZXRDbGFzcygpICYmCisgICAgICAgICAgICBpc0xlbmllbnQoKSA9PSBvdGhlci5pc0xlbmllbnQoKSAmJgorICAgICAgICAgICAgZ2V0Rmlyc3REYXlPZldlZWsoKSA9PSBvdGhlci5nZXRGaXJzdERheU9mV2VlaygpICYmCisgICAgICAgICAgICBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgPT0gb3RoZXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpICYmCisgICAgICAgICAgICBnZXRUaW1lWm9uZSgpLmVxdWFscyhvdGhlci5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gYSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIC8qIERvbid0IGluY2x1ZGUgdGhlIHRpbWUgYmVjYXVzZSAoYSkgd2UgZG9uJ3Qgd2FudCB0aGUgaGFzaCB2YWx1ZSB0bworICAgICAgICAgKiBtb3ZlIGFyb3VuZCBqdXN0IGJlY2F1c2UgYSBjYWxlbmRhciBpcyBzZXQgdG8gZGlmZmVyZW50IHRpbWVzLCBhbmQKKyAgICAgICAgICogKGIpIHdlIGRvbid0IHdhbnQgdG8gdHJpZ2dlciBhIHRpbWUgY29tcHV0YXRpb24ganVzdCB0byBnZXQgYSBoYXNoLgorICAgICAgICAgKiBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBmb3IgdW5lcXVhbCBvYmplY3RzIHRvIGFsd2F5cyBoYXZlCisgICAgICAgICAqIHVuZXF1YWwgaGFzaGVzLCBidXQgZXF1YWwgb2JqZWN0cyBtdXN0IGhhdmUgZXF1YWwgaGFzaGVzLiAgKi8KKyAgICAgICAgcmV0dXJuIChsZW5pZW50ID8gMSA6IDApCisgICAgICAgICAgICB8IChmaXJzdERheU9mV2VlayA8PCAxKQorICAgICAgICAgICAgfCAobWluaW1hbERheXNJbkZpcnN0V2VlayA8PCA0KQorICAgICAgICAgICAgfCAoem9uZS5oYXNoQ29kZSgpIDw8IDcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiB0aGUgbW9tZW50IHRoaXMKKyAgICAgKiBjYWxlbmRhciBpcyBzZXQgdG8gYW5kIHRoZSBtb21lbnQgdGhlIGdpdmVuIGNhbGVuZGFyIG9yIERhdGUgb2JqZWN0CisgICAgICogaXMgc2V0IHRvLgorICAgICAqLworICAgIHByaXZhdGUgbG9uZyBjb21wYXJlKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGxvbmcgdGhhdE1zOworICAgICAgICBpZiAodGhhdCBpbnN0YW5jZW9mIENhbGVuZGFyKSB7CisgICAgICAgICAgICB0aGF0TXMgPSAoKENhbGVuZGFyKXRoYXQpLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICB9IGVsc2UgaWYgKHRoYXQgaW5zdGFuY2VvZiBEYXRlKSB7CisgICAgICAgICAgICB0aGF0TXMgPSAoKERhdGUpdGhhdCkuZ2V0VGltZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbih0aGF0ICsgImlzIG5vdCBhIENhbGVuZGFyIG9yIERhdGUiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0VGltZUluTWlsbGlzKCkgLSB0aGF0TXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIG9mIENhbGVuZGFyIHdoZW47IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBiZWZvcmUoT2JqZWN0IHdoZW4pIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUod2hlbikgPCAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSB0aW1lIGZpZWxkIHJlY29yZHMuCisgICAgICogRXF1aXZhbGVudCB0byBjb21wYXJpbmcgcmVzdWx0IG9mIGNvbnZlcnNpb24gdG8gVVRDLgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBDYWxlbmRhciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMgQ2FsZW5kYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyBDYWxlbmRhciBpcyBhZnRlcgorICAgICAqIHRoZSB0aW1lIG9mIENhbGVuZGFyIHdoZW47IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhZnRlcihPYmplY3Qgd2hlbikgeworICAgICAgICByZXR1cm4gY29tcGFyZSh3aGVuKSA+IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUKKyAgICAgKiBjdXJyZW50IGRhdGUuICBGb3IgZXhhbXBsZSwgd2l0aCB0aGUgR3JlZ29yaWFuIGRhdGUgRmVicnVhcnkgMywgMTk5NworICAgICAqIGFuZCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZCwgdGhlIGFjdHVhbCBtYXhpbXVtCisgICAgICogaXMgMjg7IGZvciBGZWJydWFyeSAzLCAxOTk2IGl0IGlzIDI5LgorICAgICAqCisgICAgICogPHA+VGhlIGFjdHVhbCBtYXhpbXVtIGNvbXB1dGF0aW9uIGlnbm9yZXMgc21hbGxlciBmaWVsZHMgYW5kIHRoZQorICAgICAqIGN1cnJlbnQgdmFsdWUgb2YgbGlrZS1zaXplZCBmaWVsZHMuICBGb3IgZXhhbXBsZSwgdGhlIGFjdHVhbCBtYXhpbXVtCisgICAgICogb2YgdGhlIERBWV9PRl9ZRUFSIG9yIE1PTlRIIGRlcGVuZHMgb25seSBvbiB0aGUgeWVhciBhbmQgc3VwcmEteWVhcgorICAgICAqIGZpZWxkcy4gIFRoZSBhY3R1YWwgbWF4aW11bSBvZiB0aGUgREFZX09GX01PTlRIIGRlcGVuZHMsIGluCisgICAgICogYWRkaXRpb24sIG9uIHRoZSBNT05USCBmaWVsZCBhbmQgYW55IG90aGVyIGZpZWxkcyBhdCB0aGF0CisgICAgICogZ3JhbnVsYXJpdHkgKHN1Y2ggYXMgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpLiAgVGhlCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEggZmllbGQgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjdXJyZW50CisgICAgICogREFZX09GX1dFRUs7IGl0IHJldHVybnMgdGhlIG1heGltdW0gZm9yIGFueSBkYXkgb2Ygd2VlayBpbiB0aGUKKyAgICAgKiBjdXJyZW50IG1vbnRoLiAgTGlrZXdpc2UgZm9yIHRoZSBXRUVLX09GX01PTlRIIGFuZCBXRUVLX09GX1lFQVIKKyAgICAgKiBmaWVsZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIHdob3NlIG1heGltdW0gaXMgZGVzaXJlZAorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gb2YgdGhlIGdpdmVuIGZpZWxkIGZvciB0aGUgY3VycmVudCBkYXRlIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtCisgICAgICogQHNlZSAjZ2V0TGVhc3RNYXhpbXVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICAgICAgICAgIGNhbC5wcmVwYXJlR2V0QWN0dWFsKGZpZWxkLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlR2V0TW9udGhMZW5ndGgoY2FsLmdldChFWFRFTkRFRF9ZRUFSKSwgY2FsLmdldChNT05USCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEQVlfT0ZfWUVBUjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSAoQ2FsZW5kYXIpIGNsb25lKCk7CisgICAgICAgICAgICAgICAgY2FsLnByZXBhcmVHZXRBY3R1YWwoZmllbGQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKGNhbC5nZXQoRVhURU5ERURfWUVBUikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgY2FzZSBBTV9QTToKKyAgICAgICAgY2FzZSBIT1VSOgorICAgICAgICBjYXNlIEhPVVJfT0ZfREFZOgorICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgWk9ORV9PRkZTRVQ6CisgICAgICAgIGNhc2UgRFNUX09GRlNFVDoKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICAgICAgLy8gVGhlc2UgZmllbGRzIGFsbCBoYXZlIGZpeGVkIG1pbmltYS9tYXhpbWEKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEZvciBhbGwgb3RoZXIgZmllbGRzLCBkbyBpdCB0aGUgaGFyZCB3YXkuLi4uCisgICAgICAgICAgICByZXN1bHQgPSBnZXRBY3R1YWxIZWxwZXIoZmllbGQsIGdldExlYXN0TWF4aW11bShmaWVsZCksIGdldE1heGltdW0oZmllbGQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUgY3VycmVudCBkYXRlLgorICAgICAqIEZvciBtb3N0IGZpZWxkcywgdGhpcyBpcyB0aGUgc2FtZSBhcyB7QGxpbmsgI2dldE1pbmltdW0gZ2V0TWluaW11bX0KKyAgICAgKiBhbmQge0BsaW5rICNnZXRHcmVhdGVzdE1pbmltdW0gZ2V0R3JlYXRlc3RNaW5pbXVtfS4gIEhvd2V2ZXIsIHNvbWUgZmllbGRzLAorICAgICAqIGVzcGVjaWFsbHkgdGhvc2UgcmVsYXRlZCB0byB3ZWVrIG51bWJlciwgYXJlIG1vcmUgY29tcGxpY2F0ZWQuCisgICAgICogPHA+CisgICAgICogRm9yIGV4YW1wbGUsIGFzc3VtZSB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiByZXR1cm5zIDQgYW5kIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IHJldHVybnMgU1VOREFZLgorICAgICAqIElmIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGlzIFN1bmRheSwgTW9uZGF5LCBUdWVzZGF5LCBvciBXZWRuZXNkYXkKKyAgICAgKiB0aGVyZSB3aWxsIGJlIGZvdXIgb3IgbW9yZSBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLCBzbyBpdCB3aWxsIGJlIHdlZWsgbnVtYmVyIDEsCisgICAgICogYW5kIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDEuICBIb3dldmVyLAorICAgICAqIGlmIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggaXMgYSBUaHVyc2RheSwgRnJpZGF5LCBvciBTYXR1cmRheSwgdGhlcmUgYXJlCisgICAgICogPGVtPm5vdDwvZW0+IGZvdXIgZGF5cyBpbiB0aGF0IHdlZWssIHNvIGl0IGlzIHdlZWsgbnVtYmVyIDAsIGFuZAorICAgICAqIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDAuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBhY3R1YWwgbWluaW11bSB2YWx1ZSBpcyBkZXNpcmVkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGdpdmVuIGZpZWxkIGZvciB0aGUgY3VycmVudCBkYXRlIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1pbmltdW0KKyAgICAgKiBAc2VlICNnZXRHcmVhdGVzdE1pbmltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIGludCByZXN1bHQ7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBaT05FX09GRlNFVDoKKyAgICAgICAgY2FzZSBEU1RfT0ZGU0VUOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICAvLyBUaGVzZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hL21heGltYQorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TWluaW11bShmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gRm9yIGFsbCBvdGhlciBmaWVsZHMsIGRvIGl0IHRoZSBoYXJkIHdheS4uLi4KKyAgICAgICAgICAgIHJlc3VsdCA9IGdldEFjdHVhbEhlbHBlcihmaWVsZCwgZ2V0R3JlYXRlc3RNaW5pbXVtKGZpZWxkKSwgZ2V0TWluaW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJlIHRoaXMgY2FsZW5kYXIgZm9yIGNvbXB1dGluZyB0aGUgYWN0dWFsIG1pbmltdW0gb3IgbWF4aW11bS4KKyAgICAgKiBUaGlzIG1ldGhvZCBtb2RpZmllcyB0aGlzIGNhbGVuZGFyJ3MgZmllbGRzOyBpdCBpcyBjYWxsZWQgb24gYQorICAgICAqIHRlbXBvcmFyeSBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIDxwPlJhdGlvbmFsZTogVGhlIHNlbWFudGljcyBvZiBnZXRBY3R1YWxYeHgoKSBpcyB0byByZXR1cm4gdGhlCisgICAgICogbWF4aW11bSBvciBtaW5pbXVtIHZhbHVlIHRoYXQgdGhlIGdpdmVuIGZpZWxkIGNhbiB0YWtlLCB0YWtpbmcgaW50bworICAgICAqIGFjY291bnQgb3RoZXIgcmVsZXZhbnQgZmllbGRzLiAgSW4gZ2VuZXJhbCB0aGVzZSBvdGhlciBmaWVsZHMgYXJlCisgICAgICogbGFyZ2VyIGZpZWxkcy4gIEZvciBleGFtcGxlLCB3aGVuIGNvbXB1dGluZyB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBEQVlfT0ZfTU9OVEgsIHRoZSBjdXJyZW50IHZhbHVlIG9mIERBWV9PRl9NT05USCBpdHNlbGYgaXMgaWdub3JlZCwKKyAgICAgKiBhcyBpcyB0aGUgdmFsdWUgb2YgYW55IGZpZWxkIHNtYWxsZXIuCisgICAgICoKKyAgICAgKiA8cD5UaGUgdGltZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hIGFuZCBtYXhpbWEsIHNvIHdlIGRvbid0CisgICAgICogbmVlZCB0byB3b3JyeSBhYm91dCB0aGVtLiAgVGhpcyBhbHNvIGxldHMgdXMgc2V0IHRoZQorICAgICAqIE1JTExJU0VDT05EU19JTl9EQVkgdG8gemVybyB0byBlcmFzZSBhbnkgZWZmZWN0cyB0aGUgdGltZSBmaWVsZHMKKyAgICAgKiBtaWdodCBoYXZlIHdoZW4gY29tcHV0aW5nIGRhdGUgZmllbGRzLgorICAgICAqCisgICAgICogPHA+REFZX09GX1dFRUsgaXMgYWRqdXN0ZWQgc3BlY2lhbGx5IGZvciB0aGUgV0VFS19PRl9NT05USCBhbmQKKyAgICAgKiBXRUVLX09GX1lFQVIgZmllbGRzIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGNvbXB1dGVkIGNvcnJlY3RseS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmVwYXJlR2V0QWN0dWFsKGludCBmaWVsZCwgYm9vbGVhbiBpc01pbmltdW0pIHsKKyAgICAgICAgc2V0KE1JTExJU0VDT05EU19JTl9EQVksIDApOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICBjYXNlIFlFQVJfV09ZOgorICAgICAgICBjYXNlIEVYVEVOREVEX1lFQVI6CisgICAgICAgICAgICBzZXQoREFZX09GX1lFQVIsIGdldEdyZWF0ZXN0TWluaW11bShEQVlfT0ZfWUVBUikpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIHNldChEQVlfT0ZfTU9OVEgsIGdldEdyZWF0ZXN0TWluaW11bShEQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgREFZX09GX1dFRUtfSU5fTU9OVEg6CisgICAgICAgICAgICAvLyBGb3IgZG93aW0sIHRoZSBtYXhpbXVtIG9jY3VycyBmb3IgdGhlIERPVyBvZiB0aGUgZmlyc3Qgb2YgdGhlCisgICAgICAgICAgICAvLyBtb250aC4KKyAgICAgICAgICAgIHNldChEQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICAgICAgc2V0KERBWV9PRl9XRUVLLCBnZXQoREFZX09GX1dFRUspKTsgLy8gTWFrZSB0aGlzIHVzZXIgc2V0CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdFRUtfT0ZfTU9OVEg6CisgICAgICAgIGNhc2UgV0VFS19PRl9ZRUFSOgorICAgICAgICAgICAgLy8gSWYgd2UncmUgY291bnRpbmcgd2Vla3MsIHNldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIHRvIGVpdGhlciB0aGUKKyAgICAgICAgICAgIC8vIGZpcnN0IG9yIGxhc3QgbG9jYWxpemVkIERPVy4gIFdlIGtub3cgdGhlIGxhc3Qgd2VlayBvZiBhIG1vbnRoCisgICAgICAgICAgICAvLyBvciB5ZWFyIHdpbGwgY29udGFpbiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCBhbmQgdGhhdCB0aGUKKyAgICAgICAgICAgIC8vIGZpcnN0IHdlZWsgd2lsbCBjb250YWluIHRoZSBsYXN0IERPVy4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgZG93ID0gZmlyc3REYXlPZldlZWs7CisgICAgICAgICAgICAgICAgaWYgKGlzTWluaW11bSkgeworICAgICAgICAgICAgICAgICAgICBkb3cgPSAoZG93ICsgNikgJSA3OyAvLyBzZXQgdG8gbGFzdCBET1cKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvdyA8IFNVTkRBWSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG93ICs9IDc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0KERBWV9PRl9XRUVLLCBkb3cpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBEbyB0aGlzIGxhc3QgdG8gZ2l2ZSBpdCB0aGUgbmV3ZXN0IHRpbWUgc3RhbXAKKyAgICAgICAgc2V0KGZpZWxkLCBnZXRHcmVhdGVzdE1pbmltdW0oZmllbGQpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRBY3R1YWxIZWxwZXIoaW50IGZpZWxkLCBpbnQgc3RhcnRWYWx1ZSwgaW50IGVuZFZhbHVlKSB7CisKKyAgICAgICAgaWYgKHN0YXJ0VmFsdWUgPT0gZW5kVmFsdWUpIHsKKyAgICAgICAgICAgIC8vIGlmIHdlIGtub3cgdGhhdCB0aGUgbWF4aW11bSB2YWx1ZSBpcyBhbHdheXMgdGhlIHNhbWUsIGp1c3QgcmV0dXJuIGl0CisgICAgICAgICAgICByZXR1cm4gc3RhcnRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBkZWx0YSA9IChlbmRWYWx1ZSA+IHN0YXJ0VmFsdWUpID8gMSA6IC0xOworCisgICAgICAgIC8vIGNsb25lIHRoZSBjYWxlbmRhciBzbyB3ZSBkb24ndCBtZXNzIHdpdGggdGhlIHJlYWwgb25lLCBhbmQgc2V0IGl0IHRvCisgICAgICAgIC8vIGFjY2VwdCBhbnl0aGluZyBmb3IgdGhlIGZpZWxkIHZhbHVlcworICAgICAgICBDYWxlbmRhciB3b3JrID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICB3b3JrLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIHdvcmsucHJlcGFyZUdldEFjdHVhbChmaWVsZCwgZGVsdGEgPCAwKTsKKworICAgICAgICAvLyBub3cgdHJ5IGVhY2ggdmFsdWUgZnJvbSB0aGUgc3RhcnQgdG8gdGhlIGVuZCBvbmUgYnkgb25lIHVudGlsCisgICAgICAgIC8vIHdlIGdldCBhIHZhbHVlIHRoYXQgbm9ybWFsaXplcyB0byBhbm90aGVyIHZhbHVlLiAgVGhlIGxhc3QgdmFsdWUgdGhhdAorICAgICAgICAvLyBub3JtYWxpemVzIHRvIGl0c2VsZiBpcyB0aGUgYWN0dWFsIG1heGltdW0gZm9yIHRoZSBjdXJyZW50IGRhdGUKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0YXJ0VmFsdWU7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHdvcmsuc2V0KGZpZWxkLCBzdGFydFZhbHVlKTsKKyAgICAgICAgICAgIGlmICh3b3JrLmdldChmaWVsZCkgIT0gc3RhcnRWYWx1ZSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzdGFydFZhbHVlOworICAgICAgICAgICAgICAgIHN0YXJ0VmFsdWUgKz0gZGVsdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHJlc3VsdCAhPSBlbmRWYWx1ZSk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzaW5nbGUgdW5pdCBvZiB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLiBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgb25lIGRheSwgeW91IGNhbiBjYWxsOgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPnJvbGwoe0BsaW5rICNEQVRFfSwgdHJ1ZSk8L2NvZGU+CisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkLCBpdCB3aWxsIHJvbGwgdGhlIHllYXIKKyAgICAgKiB2YWx1ZSBpbiB0aGUgcmFuZ2UgYmV0d2VlbiAxIGFuZCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGluZworICAgICAqIHtAbGluayAjZ2V0TWF4aW11bSBnZXRNYXhpbXVtfSh7QGxpbmsgI1lFQVJ9KS4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgdXB3YXJkLCB0aGUgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBDYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCB0cnVlKTwvdHQ+IE4gdGltZXMgaXMgPGVtPm5vdDwvZW0+CisgICAgICogbmVjZXNzYXJpbHkgZXF1aXZhbGVudCB0byBjYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCBOKTwvdHQ+LiAgRm9yIGV4YW1wbGUsCisgICAgICogaW1hZ2luZSB0aGF0IHlvdSBzdGFydCB3aXRoIHRoZSBkYXRlIEdyZWdvcmlhbiBkYXRlIEphbnVhcnkgMzEsIDE5OTUuICBJZiB5b3UgY2FsbAorICAgICAqIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCAyKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUgTWFyY2ggMzEsIDE5OTUuCisgICAgICogQnV0IGlmIHlvdSBjYWxsIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCB0cnVlKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKiBGZWJydWFyeSAyOCwgMTk5NS4gIENhbGxpbmcgaXQgb25lIG1vcmUgdGltZSB3aWxsIGdpdmUgTWFyY2ggMjgsIDE5OTUsIHdoaWNoCisgICAgICogaXMgdXN1YWxseSBub3QgdGhlIGRlc2lyZWQgcmVzdWx0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1cCAgICBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdGltZSBmaWVsZCBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICByb2xsZWQgdXAgb3Igcm9sbGVkIGRvd24uIFVzZSA8Y29kZT50cnVlPC9jb2RlPiBpZiByb2xsaW5nIHVwLAorICAgICAqICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHNlZSAjYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm9sbChpbnQgZmllbGQsIGJvb2xlYW4gdXApCisgICAgeworICAgICAgICByb2xsKGZpZWxkLCB1cCA/ICsxIDogLTEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgY2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDEwKTwvY29kZT4KKyAgICAgKiBvbiBhIEdyZWdvcmlhbiBjYWxlbmRhciBzZXQgdG8gNC8yNS85NiB3aWxsIHJlc3VsdCBpbiB0aGUgZGF0ZSA0LzUvOTYuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgYnkgKzEsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogVGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGFibGUgdG8gcm9sbAorICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LiAgU3ViY2xhc3NlcyBtYXksIG9mIGNvdXJzZSwgYWRkIHN1cHBvcnQgZm9yCisgICAgICogYWRkaXRpb25hbCBmaWVsZHMgaW4gdGhlaXIgb3ZlcnJpZGVzIG9mIDxjb2RlPnJvbGw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj48YnI+CisgICAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5yb2xsPC9jb2RlPiBhc3N1bWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIHRoZQorICAgICAqIGZpZWxkIGlzIGNvbnRpbnVvdXMgYmV0d2VlbiBpdHMgbWluaW11bSBhbmQgbWF4aW11bSwgd2hpY2ggYXJlIGZvdW5kIGJ5CisgICAgICogY2FsbGluZyB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kIHtAbGluayAjZ2V0QWN0dWFsTWF4aW11bSBnZXRBY3R1YWxNYXhpbXVtfS4KKyAgICAgKiBGb3IgbW9zdCBzdWNoIGZpZWxkcywgc2ltcGxlIGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiwgYW5kIG1vZHVsdXMgb3BlcmF0aW9ucworICAgICAqIGFyZSBzdWZmaWNpZW50IHRvIHBlcmZvcm0gdGhlIHJvbGwuICBGb3Igd2Vlay1yZWxhdGVkIGZpZWxkcywKKyAgICAgKiB0aGUgcmVzdWx0cyBvZiB7QGxpbmsgI2dldEZpcnN0RGF5T2ZXZWVrIGdldEZpcnN0RGF5T2ZXZWVrfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gYXJlIGFsc28gbmVjZXNzYXJ5LgorICAgICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoZXNlIHR3byBtZXRob2RzIGlmIHRoZWlyIHZhbHVlcyBkaWZmZXIgZnJvbSB0aGUgZGVmYXVsdHMuCisgICAgICogPHA+CisgICAgICogU3ViY2xhc3NlcyB0aGF0IGhhdmUgZmllbGRzIGZvciB3aGljaCB0aGUgYXNzdW1wdGlvbiBvZiBjb250aW51aXR5IGJyZWFrcworICAgICAqIGRvd24gbXVzdCBvdmVyaWRlIDxjb2RlPnJvbGw8L2NvZGU+IHRvIGhhbmRsZSB0aG9zZSBmaWVsZHMgc3BlY2lhbGx5LgorICAgICAqIEZvciBleGFtcGxlLCBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIHRoZSBtb250aCAiQWRhciBJIgorICAgICAqIG9ubHkgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgICAgICogU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiAgVGhlCisgICAgICoge0BsaW5rIEhlYnJld0NhbGVuZGFyI3JvbGwgSGVicmV3Q2FsZW5kYXIucm9sbH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgcm9sbGluZyB0aGUgbW9udGggb2YgU2hldmF0IGJ5IG9uZSBnaXZlcyB0aGUgcHJvcGVyIHJlc3VsdCAoQWRhcikgaW4gYQorICAgICAqIG5vbi1sZWFwIHllYXIuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcm9sbChpbnQsIGJvb2xlYW4pCisgICAgICogQHNlZSAjYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKworICAgICAgICBpZiAoYW1vdW50ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gTm90aGluZyB0byBkbworICAgICAgICB9CisKKyAgICAgICAgY29tcGxldGUoKTsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgY2FzZSBFUkE6CisgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIHN0YW5kYXJkIHJvbGwgaW5zdHJ1Y3Rpb25zLiAgVGhlc2Ugd29yayBmb3IgYWxsCisgICAgICAgICAgICAvLyBzaW1wbGUgY2FzZXMsIHRoYXQgaXMsIGNhc2VzIGluIHdoaWNoIHRoZSBsaW1pdHMgYXJlIGZpeGVkLCBzdWNoCisgICAgICAgICAgICAvLyBhcyB0aGUgaG91ciwgdGhlIGRheSBvZiB0aGUgbW9udGgsIGFuZCB0aGUgZXJhLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBtaW4gPSBnZXRBY3R1YWxNaW5pbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gZ2V0QWN0dWFsTWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICAgICAgaW50IGdhcCA9IG1heCAtIG1pbiArIDE7CisKKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSBpbnRlcm5hbEdldChmaWVsZCkgKyBhbW91bnQ7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgLSBtaW4pICUgZ2FwOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gZ2FwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YWx1ZSArPSBtaW47CisKKyAgICAgICAgICAgICAgICBzZXQoZmllbGQsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgY2FzZSBIT1VSOgorICAgICAgICBjYXNlIEhPVVJfT0ZfREFZOgorICAgICAgICAgICAgLy8gUm9sbGluZyB0aGUgaG91ciBpcyBkaWZmaWN1bHQgb24gdGhlIE9OU0VUIGFuZCBDRUFTRSBkYXlzIG9mCisgICAgICAgICAgICAvLyBkYXlsaWdodCBzYXZpbmdzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBjaGFuZ2Ugb2NjdXJzIGF0CisgICAgICAgICAgICAvLyAyIEFNLCB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcgcHJvZ3Jlc3Npb246CisgICAgICAgICAgICAvLyBPTlNFVDogMTIgU3RkIC0+IDEgU3RkIC0+IDMgRHN0IC0+IDQgRHN0CisgICAgICAgICAgICAvLyBDRUFTRTogMTIgRHN0IC0+IDEgRHN0IC0+IDEgU3RkIC0+IDIgU3RkCisgICAgICAgICAgICAvLyBUbyBnZXQgYXJvdW5kIHRoaXMgcHJvYmxlbSB3ZSBkb24ndCB1c2UgZmllbGRzOyB3ZSBtYW5pcHVsYXRlCisgICAgICAgICAgICAvLyB0aGUgdGltZSBpbiBtaWxsaXMgZGlyZWN0bHkuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gQXNzdW1lIG1pbiA9PSAwIGluIGNhbGN1bGF0aW9ucyBiZWxvdworICAgICAgICAgICAgICAgIGxvbmcgc3RhcnQgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSG91ciA9IGludGVybmFsR2V0KGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICAgICAgaW50IG5ld0hvdXIgPSAob2xkSG91ciArIGFtb3VudCkgJSAobWF4ICsgMSk7CisgICAgICAgICAgICAgICAgaWYgKG5ld0hvdXIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld0hvdXIgKz0gbWF4ICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0ICsgT05FX0hPVVIgKiAobmV3SG91ciAtIG9sZEhvdXIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIC8vIFJvbGxpbmcgdGhlIG1vbnRoIGludm9sdmVzIGJvdGggcGlubmluZyB0aGUgZmluYWwgdmFsdWUKKyAgICAgICAgICAgIC8vIGFuZCBhZGp1c3RpbmcgdGhlIERBWV9PRl9NT05USCBpZiBuZWNlc3NhcnkuICBXZSBvbmx5IGFkanVzdCB0aGUKKyAgICAgICAgICAgIC8vIERBWV9PRl9NT05USCBpZiwgYWZ0ZXIgdXBkYXRpbmcgdGhlIE1PTlRIIGZpZWxkLCBpdCBpcyBpbGxlZ2FsLgorICAgICAgICAgICAgLy8gRS5nLiwgPGphbjMxPi5yb2xsKE1PTlRILCAxKSAtPiA8ZmViMjg+IG9yIDxmZWIyOT4uCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1heCA9IGdldEFjdHVhbE1heGltdW0oTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBtb24gPSAoaW50ZXJuYWxHZXQoTU9OVEgpICsgYW1vdW50KSAlIChtYXgrMSk7CisKKyAgICAgICAgICAgICAgICBpZiAobW9uIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBtb24gKz0gKG1heCArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoTU9OVEgsIG1vbik7CisKKyAgICAgICAgICAgICAgICAvLyBLZWVwIHRoZSBkYXkgb2YgbW9udGggaW4gcmFuZ2UuICBXZSBkb24ndCB3YW50IHRvIHNwaWxsIG92ZXIKKyAgICAgICAgICAgICAgICAvLyBpbnRvIHRoZSBuZXh0IG1vbnRoOyBlLmcuLCB3ZSBkb24ndCB3YW50IGphbjMxICsgMSBtbyAtPiBmZWIzMSAtPgorICAgICAgICAgICAgICAgIC8vIG1hcjMuCisgICAgICAgICAgICAgICAgcGluRmllbGQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICBjYXNlIFlFQVJfV09ZOgorICAgICAgICBjYXNlIEVYVEVOREVEX1lFQVI6CisgICAgICAgICAgICAvLyBSb2xsaW5nIHRoZSB5ZWFyIGNhbiBpbnZvbHZlIHBpbm5pbmcgdGhlIERBWV9PRl9NT05USC4KKyAgICAgICAgICAgIHNldChmaWVsZCwgaW50ZXJuYWxHZXQoZmllbGQpICsgYW1vdW50KTsKKyAgICAgICAgICAgIHBpbkZpZWxkKE1PTlRIKTsKKyAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBXRUVLX09GX01PTlRIOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdHJpY2t5LCBiZWNhdXNlIGR1cmluZyB0aGUgcm9sbCB3ZSBtYXkgaGF2ZSB0byBzaGlmdAorICAgICAgICAgICAgICAgIC8vIHRvIGEgZGlmZmVyZW50IGRheSBvZiB0aGUgd2Vlay4gIEZvciBleGFtcGxlOgorCisgICAgICAgICAgICAgICAgLy8gICAgcyAgbSAgdCAgdyAgciAgZiAgcworICAgICAgICAgICAgICAgIC8vICAgICAgICAgIDEgIDIgIDMgIDQgIDUKKyAgICAgICAgICAgICAgICAvLyAgICA2ICA3ICA4ICA5IDEwIDExIDEyCisKKyAgICAgICAgICAgICAgICAvLyBXaGVuIHJvbGxpbmcgZnJvbSB0aGUgNnRoIG9yIDd0aCBiYWNrIG9uZSB3ZWVrLCB3ZSBnbyB0byB0aGUKKyAgICAgICAgICAgICAgICAvLyAxc3QgKGFzc3VtaW5nIHRoYXQgdGhlIGZpcnN0IHBhcnRpYWwgd2VlayBjb3VudHMpLiAgVGhlIHNhbWUKKyAgICAgICAgICAgICAgICAvLyB0aGluZyBoYXBwZW5zIGF0IHRoZSBlbmQgb2YgdGhlIG1vbnRoLgorCisgICAgICAgICAgICAgICAgLy8gVGhlIG90aGVyIHRyaWNreSB0aGluZyBpcyB0aGF0IHdlIGhhdmUgdG8gZmlndXJlIG91dCB3aGV0aGVyCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHBhcnRpYWwgd2VlayBhY3R1YWxseSBjb3VudHMgb3Igbm90LCBiYXNlZCBvbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBtaW5pbWFsIGZpcnN0IGRheXMgaW4gdGhlIHdlZWsuICBBbmQgd2UgaGF2ZSB0byB1c2UgdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgdG8gZGVsaW5lYXRlIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgLy8gYm91bmRhcmllcy4KKworICAgICAgICAgICAgICAgIC8vIEhlcmUncyBvdXIgYWxnb3JpdGhtLiAgRmlyc3QsIHdlIGZpbmQgdGhlIHJlYWwgYm91bmRhcmllcyBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBtb250aC4gIFRoZW4gd2UgZGlzY2FyZCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrIGlmIGl0CisgICAgICAgICAgICAgICAgLy8gZG9lc24ndCBjb3VudCBpbiB0aGlzIGxvY2FsZS4gIFRoZW4gd2UgZmlsbCBpbiB0aGUgZW5kcyB3aXRoCisgICAgICAgICAgICAgICAgLy8gcGhhbnRvbSBkYXlzLCBzbyB0aGF0IHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgYW5kIHRoZSBsYXN0CisgICAgICAgICAgICAgICAgLy8gcGFydGlhbCB3ZWVrIGFyZSBmdWxsIHdlZWtzLiAgV2UgdGhlbiBoYXZlIGEgbmljZSBzcXVhcmUKKyAgICAgICAgICAgICAgICAvLyBibG9jayBvZiB3ZWVrcy4gIFdlIGRvIHRoZSB1c3VhbCByb2xsaW5nIHdpdGhpbiB0aGlzIGJsb2NrLAorICAgICAgICAgICAgICAgIC8vIGFzIGlzIGRvbmUgZWxzZXdoZXJlIGluIHRoaXMgbWV0aG9kLiAgSWYgd2Ugd2luZCB1cCBvbiBvbmUgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGhhbnRvbSBkYXlzIHRoYXQgd2UgYWRkZWQsIHdlIHJlY29nbml6ZSB0aGlzIGFuZCBwaW4gdG8KKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3Qgb3IgdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC4gIEVhc3ksIGVoPworCisgICAgICAgICAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBEQVlfT0ZfV0VFSyBzbyB0aGF0IDAgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaworICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgbG9jYWxlLiAgV2UgaGF2ZSBkb3cgaW4gMC4uNi4KKyAgICAgICAgICAgICAgICBpbnQgZG93ID0gaW50ZXJuYWxHZXQoREFZX09GX1dFRUspIC0gZ2V0Rmlyc3REYXlPZldlZWsoKTsKKyAgICAgICAgICAgICAgICBpZiAoZG93IDwgMCkgZG93ICs9IDc7CisKKyAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgKG5vcm1hbGl6ZWQgZm9yIGxvY2FsZSkgZm9yIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgZmRtID0gKGRvdyAtIGludGVybmFsR2V0KERBWV9PRl9NT05USCkgKyAxKSAlIDc7CisgICAgICAgICAgICAgICAgaWYgKGZkbSA8IDApIGZkbSArPSA3OworCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIGZpcnN0IGZ1bGwgd2VlayBvZiB0aGUgbW9udGgsCisgICAgICAgICAgICAgICAgLy8gaW5jbHVkaW5nIHBoYW50b20gZGF5cywgaWYgYW55LiAgRmlndXJlIG91dCBpZiB0aGUgZmlyc3Qgd2VlaworICAgICAgICAgICAgICAgIC8vIGNvdW50cyBvciBub3Q7IGlmIGl0IGNvdW50cywgdGhlbiBmaWxsIGluIHBoYW50b20gZGF5cy4gIElmCisgICAgICAgICAgICAgICAgLy8gbm90LCBhZHZhbmNlIHRvIHRoZSBmaXJzdCByZWFsIGZ1bGwgd2VlayAoc2tpcCB0aGUgcGFydGlhbCB3ZWVrKS4KKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKCg3IC0gZmRtKSA8IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSA4IC0gZmRtOyAvLyBTa2lwIHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gMSAtIGZkbTsgLy8gVGhpcyBtYXkgYmUgemVybyBvciBuZWdhdGl2ZQorCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsgKG5vcm1hbGl6ZWQgZm9yIGxvY2FsZSkgZm9yIHRoZSBsYXN0CisgICAgICAgICAgICAgICAgLy8gZGF5IG9mIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgbW9udGhMZW4gPSBnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgaW50IGxkbSA9IChtb250aExlbiAtIGludGVybmFsR2V0KERBWV9PRl9NT05USCkgKyBkb3cpICUgNzsKKyAgICAgICAgICAgICAgICAvLyBXZSBrbm93IG1vbnRoTGVuID49IERBWV9PRl9NT05USCBzbyB3ZSBza2lwIHRoZSArPSA3IHN0ZXAgaGVyZS4KKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgbGltaXQgZGF5IGZvciB0aGUgYmxvY2tlZC1vZmYgcmVjdGFuZ3VsYXIgbW9udGg7IHRoYXQKKyAgICAgICAgICAgICAgICAvLyBpcywgdGhlIGRheSB3aGljaCBpcyBvbmUgcGFzdCB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLAorICAgICAgICAgICAgICAgIC8vIGFmdGVyIHRoZSBtb250aCBoYXMgYWxyZWFkeSBiZWVuIGZpbGxlZCBpbiB3aXRoIHBoYW50b20gZGF5cworICAgICAgICAgICAgICAgIC8vIHRvIGZpbGwgb3V0IHRoZSBsYXN0IHdlZWsuICBUaGlzIGRheSBoYXMgYSBub3JtYWxpemVkIERPVyBvZiAwLgorICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IG1vbnRoTGVuICsgNyAtIGxkbTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyByb2xsIGJldHdlZW4gc3RhcnQgYW5kIChsaW1pdCAtIDEpLgorICAgICAgICAgICAgICAgIGludCBnYXAgPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBkYXlfb2ZfbW9udGggPSAoaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSArIGFtb3VudCo3IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0KSAlIGdhcDsKKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX21vbnRoIDwgMCkgZGF5X29mX21vbnRoICs9IGdhcDsKKyAgICAgICAgICAgICAgICBkYXlfb2ZfbW9udGggKz0gc3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBGaW5hbGx5LCBwaW4gdG8gdGhlIHJlYWwgc3RhcnQgYW5kIGVuZCBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl9tb250aCA8IDEpIGRheV9vZl9tb250aCA9IDE7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl9tb250aCA+IG1vbnRoTGVuKSBkYXlfb2ZfbW9udGggPSBtb250aExlbjsKKworICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgREFZX09GX01PTlRILiAgV2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0IHRoaXMgZmllbGQKKyAgICAgICAgICAgICAgICAvLyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZXZlcnl0aGluZyBlbHNlIChzaW5jZSBhbGwgb3RoZXIgZmllbGRzCisgICAgICAgICAgICAgICAgLy8gYXJlIGFsc28gc2V0IGF0IHRoaXMgcG9pbnQpLiAgSWYgdGhpcyBmYWN0IGNoYW5nZXMgKGlmIHRoZQorICAgICAgICAgICAgICAgIC8vIGRpc2FtYmlndWF0aW9uIGFsZ29yaXRobSBjaGFuZ2VzKSB0aGVuIHdlIHdpbGwgaGF2ZSB0byB1bnNldAorICAgICAgICAgICAgICAgIC8vIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMgaGVyZSBzbyB0aGF0IERBWV9PRl9NT05USCBpcyBhdHRlbmRlZAorICAgICAgICAgICAgICAgIC8vIHRvLgorICAgICAgICAgICAgICAgIHNldChEQVlfT0ZfTU9OVEgsIGRheV9vZl9tb250aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFdFRUtfT0ZfWUVBUjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGZvbGxvd3MgdGhlIG91dGxpbmUgb2YgV0VFS19PRl9NT05USCwgZXhjZXB0IGl0IGFwcGxpZXMKKyAgICAgICAgICAgICAgICAvLyB0byB0aGUgd2hvbGUgeWVhci4gIFBsZWFzZSBzZWUgdGhlIGNvbW1lbnQgZm9yIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgICAgICAgICAvLyBmb3IgZ2VuZXJhbCBub3Rlcy4KKworICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgREFZX09GX1dFRUsgc28gdGhhdCAwIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGxvY2FsZS4gIFdlIGhhdmUgZG93IGluIDAuLjYuCisgICAgICAgICAgICAgICAgaW50IGRvdyA9IGludGVybmFsR2V0KERBWV9PRl9XRUVLKSAtIGdldEZpcnN0RGF5T2ZXZWVrKCk7CisgICAgICAgICAgICAgICAgaWYgKGRvdyA8IDApIGRvdyArPSA3OworCisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgeWVhci4KKyAgICAgICAgICAgICAgICBpbnQgZmR5ID0gKGRvdyAtIGludGVybmFsR2V0KERBWV9PRl9ZRUFSKSArIDEpICUgNzsKKyAgICAgICAgICAgICAgICBpZiAoZmR5IDwgMCkgZmR5ICs9IDc7CisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgZmlyc3QgZnVsbCB3ZWVrIG9mIHRoZSB5ZWFyLAorICAgICAgICAgICAgICAgIC8vIGluY2x1ZGluZyBwaGFudG9tIGRheXMsIGlmIGFueS4gIEZpZ3VyZSBvdXQgaWYgdGhlIGZpcnN0IHdlZWsKKyAgICAgICAgICAgICAgICAvLyBjb3VudHMgb3Igbm90OyBpZiBpdCBjb3VudHMsIHRoZW4gZmlsbCBpbiBwaGFudG9tIGRheXMuICBJZgorICAgICAgICAgICAgICAgIC8vIG5vdCwgYWR2YW5jZSB0byB0aGUgZmlyc3QgcmVhbCBmdWxsIHdlZWsgKHNraXAgdGhlIHBhcnRpYWwgd2VlaykuCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAgICAgICAgIGlmICgoNyAtIGZkeSkgPCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gOCAtIGZkeTsgLy8gU2tpcCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDEgLSBmZHk7IC8vIFRoaXMgbWF5IGJlIHplcm8gb3IgbmVnYXRpdmUKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgbGFzdAorICAgICAgICAgICAgICAgIC8vIGRheSBvZiB0aGUgeWVhci4KKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbiA9IGdldEFjdHVhbE1heGltdW0oREFZX09GX1lFQVIpOworICAgICAgICAgICAgICAgIGludCBsZHkgPSAoeWVhckxlbiAtIGludGVybmFsR2V0KERBWV9PRl9ZRUFSKSArIGRvdykgJSA3OworICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgeWVhckxlbiA+PSBEQVlfT0ZfWUVBUiBzbyB3ZSBza2lwIHRoZSArPSA3IHN0ZXAgaGVyZS4KKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgbGltaXQgZGF5IGZvciB0aGUgYmxvY2tlZC1vZmYgcmVjdGFuZ3VsYXIgeWVhcjsgdGhhdAorICAgICAgICAgICAgICAgIC8vIGlzLCB0aGUgZGF5IHdoaWNoIGlzIG9uZSBwYXN0IHRoZSBsYXN0IGRheSBvZiB0aGUgeWVhciwKKyAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGUgeWVhciBoYXMgYWxyZWFkeSBiZWVuIGZpbGxlZCBpbiB3aXRoIHBoYW50b20gZGF5cworICAgICAgICAgICAgICAgIC8vIHRvIGZpbGwgb3V0IHRoZSBsYXN0IHdlZWsuICBUaGlzIGRheSBoYXMgYSBub3JtYWxpemVkIERPVyBvZiAwLgorICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IHllYXJMZW4gKyA3IC0gbGR5OworCisgICAgICAgICAgICAgICAgLy8gTm93IHJvbGwgYmV0d2VlbiBzdGFydCBhbmQgKGxpbWl0IC0gMSkuCisgICAgICAgICAgICAgICAgaW50IGdhcCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGRheV9vZl95ZWFyID0gKGludGVybmFsR2V0KERBWV9PRl9ZRUFSKSArIGFtb3VudCo3IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0KSAlIGdhcDsKKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX3llYXIgPCAwKSBkYXlfb2ZfeWVhciArPSBnYXA7CisgICAgICAgICAgICAgICAgZGF5X29mX3llYXIgKz0gc3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBGaW5hbGx5LCBwaW4gdG8gdGhlIHJlYWwgc3RhcnQgYW5kIGVuZCBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl95ZWFyIDwgMSkgZGF5X29mX3llYXIgPSAxOworICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfeWVhciA+IHllYXJMZW4pIGRheV9vZl95ZWFyID0geWVhckxlbjsKKworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSB5ZWFyIGFuZCBkYXkgb2YgeWVhciBhcmUgYXR0ZW5kZWQgdG8gYnkKKyAgICAgICAgICAgICAgICAvLyBjbGVhcmluZyBvdGhlciBmaWVsZHMgd2hpY2ggd291bGQgbm9ybWFsbHkgdGFrZSBwcmVjZWRlbmNlLgorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkaXNhbWJpZ3VhdGlvbiBhbGdvcml0aG0gaXMgY2hhbmdlZCwgdGhpcyBzZWN0aW9uIHdpbGwKKyAgICAgICAgICAgICAgICAvLyBoYXZlIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbC4KKyAgICAgICAgICAgICAgICBzZXQoREFZX09GX1lFQVIsIGRheV9vZl95ZWFyKTsKKyAgICAgICAgICAgICAgICBjbGVhcihNT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFJvbGwgdGhlIGRheSBvZiB5ZWFyIHVzaW5nIG1pbGxpcy4gIENvbXB1dGUgdGhlIG1pbGxpcyBmb3IKKyAgICAgICAgICAgICAgICAvLyB0aGUgc3RhcnQgb2YgdGhlIHllYXIsIGFuZCBnZXQgdGhlIGxlbmd0aCBvZiB0aGUgeWVhci4KKyAgICAgICAgICAgICAgICBsb25nIGRlbHRhID0gYW1vdW50ICogT05FX0RBWTsgLy8gU2NhbGUgdXAgZnJvbSBkYXlzIHRvIG1pbGxpcworICAgICAgICAgICAgICAgIGxvbmcgbWluMiA9IHRpbWUgLSAoaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpIC0gMSkgKiBPTkVfREFZOworICAgICAgICAgICAgICAgIGludCB5ZWFyTGVuZ3RoID0gZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgdGltZSA9ICh0aW1lICsgZGVsdGEgLSBtaW4yKSAlICh5ZWFyTGVuZ3RoKk9ORV9EQVkpOworICAgICAgICAgICAgICAgIGlmICh0aW1lIDwgMCkgdGltZSArPSB5ZWFyTGVuZ3RoKk9ORV9EQVk7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRpbWUgKyBtaW4yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFJvbGwgdGhlIGRheSBvZiB3ZWVrIHVzaW5nIG1pbGxpcy4gIENvbXB1dGUgdGhlIG1pbGxpcyBmb3IKKyAgICAgICAgICAgICAgICAvLyB0aGUgc3RhcnQgb2YgdGhlIHdlZWssIHVzaW5nIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayBzZXR0aW5nLgorICAgICAgICAgICAgICAgIC8vIFJlc3RyaWN0IHRoZSBtaWxsaXMgdG8gW3N0YXJ0LCBzdGFydCs3ZGF5cykuCisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudCAqIE9ORV9EQVk7IC8vIFNjYWxlIHVwIGZyb20gZGF5cyB0byBtaWxsaXMKKyAgICAgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSBudW1iZXIgb2YgZGF5cyBiZWZvcmUgdGhlIGN1cnJlbnQgZGF5IGluIHRoaXMKKyAgICAgICAgICAgICAgICAvLyB3ZWVrLiAgVGhpcyB3aWxsIGJlIGEgdmFsdWUgMC4uNi4KKyAgICAgICAgICAgICAgICBpbnQgbGVhZERheXMgPSBpbnRlcm5hbEdldChmaWVsZCk7CisgICAgICAgICAgICAgICAgbGVhZERheXMgLT0gKGZpZWxkID09IERBWV9PRl9XRUVLKSA/IGdldEZpcnN0RGF5T2ZXZWVrKCkgOiAxOworICAgICAgICAgICAgICAgIGlmIChsZWFkRGF5cyA8IDApIGxlYWREYXlzICs9IDc7CisgICAgICAgICAgICAgICAgbG9uZyBtaW4yID0gdGltZSAtIGxlYWREYXlzICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICB0aW1lID0gKHRpbWUgKyBkZWx0YSAtIG1pbjIpICUgT05FX1dFRUs7CisgICAgICAgICAgICAgICAgaWYgKHRpbWUgPCAwKSB0aW1lICs9IE9ORV9XRUVLOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0aW1lICsgbWluMik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFJvbGwgdGhlIGRheSBvZiB3ZWVrIGluIHRoZSBtb250aCB1c2luZyBtaWxsaXMuICBEZXRlcm1pbmUKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGluIHRoZSBtb250aCwgYW5kIHRoZW4gdGhlIGxhc3QsCisgICAgICAgICAgICAgICAgLy8gYW5kIHRoZW4gcm9sbCB3aXRoaW4gdGhhdCByYW5nZS4KKyAgICAgICAgICAgICAgICBsb25nIGRlbHRhID0gYW1vdW50ICogT05FX1dFRUs7IC8vIFNjYWxlIHVwIGZyb20gd2Vla3MgdG8gbWlsbGlzCisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgbnVtYmVyIG9mIHNhbWUgZGF5cyBvZiB0aGUgd2VlayBiZWZvcmUgdGhpcyBvbmUKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIG1vbnRoLgorICAgICAgICAgICAgICAgIGludCBwcmVXZWVrcyA9IChpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpIC0gMSkgLyA3OworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIG51bWJlciBvZiBzYW1lIGRheXMgb2YgdGhlIHdlZWsgYWZ0ZXIgdGhpcyBvbmUKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIG1vbnRoLgorICAgICAgICAgICAgICAgIGludCBwb3N0V2Vla3MgPSAoZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfTU9OVEgpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsR2V0KERBWV9PRl9NT05USCkpIC8gNzsKKyAgICAgICAgICAgICAgICAvLyBGcm9tIHRoZXNlIGNvbXB1dGUgdGhlIG1pbiBhbmQgZ2FwIG1pbGxpcyBmb3Igcm9sbGluZy4KKyAgICAgICAgICAgICAgICBsb25nIG1pbjIgPSB0aW1lIC0gcHJlV2Vla3MgKiBPTkVfV0VFSzsKKyAgICAgICAgICAgICAgICBsb25nIGdhcDIgPSBPTkVfV0VFSyAqIChwcmVXZWVrcyArIHBvc3RXZWVrcyArIDEpOyAvLyBNdXN0IGFkZCAxIQorICAgICAgICAgICAgICAgIC8vIFJvbGwgd2l0aGluIHRoaXMgcmFuZ2UKKyAgICAgICAgICAgICAgICB0aW1lID0gKHRpbWUgKyBkZWx0YSAtIG1pbjIpICUgZ2FwMjsKKyAgICAgICAgICAgICAgICBpZiAodGltZSA8IDApIHRpbWUgKz0gZ2FwMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIG1pbjIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICAgICAgc2V0KGZpZWxkLCBpbnRlcm5hbEdldChmaWVsZCkgKyBhbW91bnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gT3RoZXIgZmllbGRzIGNhbm5vdCBiZSByb2xsZWQgYnkgdGhpcyBtZXRob2QKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbGVuZGFyLnJvbGwoIiArIGZpZWxkTmFtZShmaWVsZCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzaWduZWQgYW1vdW50IHRvIGEgc3BlY2lmaWVkIGZpZWxkLCB1c2luZyB0aGlzIGNhbGVuZGFyJ3MgcnVsZXMuCisgICAgICogRm9yIGV4YW1wbGUsIHRvIGFkZCB0aHJlZSBkYXlzIHRvIHRoZSBjdXJyZW50IGRhdGUsIHlvdSBjYW4gY2FsbAorICAgICAqIDxjb2RlPmFkZChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uCisgICAgICogPHA+CisgICAgICogV2hlbiBhZGRpbmcgdG8gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiBhZGRpbmcgb25lIHRvIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byBhZGQgdG8KKyAgICAgKiBhbGwgZmllbGRzIGV4Y2VwdCBmb3Ige0BsaW5rICNFUkEgRVJBfSwge0BsaW5rICNEU1RfT0ZGU0VUIERTVF9PRkZTRVR9LAorICAgICAqIGFuZCB7QGxpbmsgI1pPTkVfT0ZGU0VUIFpPTkVfT0ZGU0VUfS4gIFN1YmNsYXNzZXMgbWF5LCBvZiBjb3Vyc2UsIGFkZCBzdXBwb3J0IGZvcgorICAgICAqIGFkZGl0aW9uYWwgZmllbGRzIGluIHRoZWlyIG92ZXJyaWRlcyBvZiA8Y29kZT5hZGQ8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj48YnI+CisgICAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5hZGQ8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0uCisgICAgICogRm9yIHN1Y2ggZmllbGRzLCBzaW1wbGUgYXJpdGhtZXRpYyBvcGVyYXRpb25zIGFyZSBzdWZmaWNpZW50IHRvCisgICAgICogcGVyZm9ybSB0aGUgYWRkLgorICAgICAqIDxwPgorICAgICAqIFN1YmNsYXNzZXMgdGhhdCBoYXZlIGZpZWxkcyBmb3Igd2hpY2ggdGhpcyBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+YWRkPC9jb2RlPiB0byBoYW5kbGUgdGhvc2UgZmllbGRzIHNwZWNpYWxseS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggIkFkYXIgSSIKKyAgICAgKiBvbmx5IG9jY3VycyBpbiBsZWFwIHllYXJzOyBpbiBvdGhlciB5ZWFycyB0aGUgY2FsZW5kYXIganVtcHMgZnJvbQorICAgICAqIFNoZXZhdCAobW9udGggIzQpIHRvIEFkYXIgKG1vbnRoICM2KS4gIFRoZQorICAgICAqIHtAbGluayBIZWJyZXdDYWxlbmRhciNhZGQgSGVicmV3Q2FsZW5kYXIuYWRkfSBtZXRob2QgdGFrZXMgdGhpcyBpbnRvIGFjY291bnQsCisgICAgICogc28gdGhhdCBhZGRpbmcgb25lIG1vbnRoCisgICAgICogdG8gYSBkYXRlIGluIFNoZXZhdCBnaXZlcyB0aGUgcHJvcGVyIHJlc3VsdCAoQWRhcikgaW4gYSBub24tbGVhcCB5ZWFyLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCAgICAgdGhlIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGFtb3VudCAgICB0aGUgYW1vdW50IHRvIGFkZCB0byB0aGUgZmllbGQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcm9sbChpbnQsIGludCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisKKyAgICAgICAgaWYgKGFtb3VudCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm47ICAgLy8gRG8gbm90aGluZyEKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGhhbmRsZSBtb3N0IGZpZWxkcyBpbiB0aGUgc2FtZSB3YXkuICBUaGUgYWxnb3JpdGhtIGlzIHRvIGFkZAorICAgICAgICAvLyBhIGNvbXB1dGVkIGFtb3VudCBvZiBtaWxsaXMgdG8gdGhlIGN1cnJlbnQgbWlsbGlzLiAgVGhlIG9ubHkKKyAgICAgICAgLy8gd3JpbmtsZSBpcyB3aXRoIERTVCAtLSBmb3Igc29tZSBmaWVsZHMsIGxpa2UgdGhlIERBWV9PRl9NT05USCwKKyAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0aGUgSE9VUiB0byBzaGlmdCBkdWUgdG8gY2hhbmdlcyBpbiBEU1QuICBJZiB0aGUKKyAgICAgICAgLy8gcmVzdWx0IG9mIHRoZSBhZGQgb3BlcmF0aW9uIGlzIHRvIG1vdmUgZnJvbSBEU1QgdG8gU3RhbmRhcmQsIG9yCisgICAgICAgIC8vIHZpY2UgdmVyc2EsIHdlIG5lZWQgdG8gYWRqdXN0IGJ5IGFuIGhvdXIgZm9yd2FyZCBvciBiYWNrLAorICAgICAgICAvLyByZXNwZWN0aXZlbHkuICBGb3Igc3VjaCBmaWVsZHMgd2Ugc2V0IGtlZXBIb3VySW52YXJpYW50IHRvIHRydWUuCisKKyAgICAgICAgLy8gV2Ugb25seSBhZGp1c3QgdGhlIERTVCBmb3IgZmllbGRzIGxhcmdlciB0aGFuIGFuIGhvdXIuICBGb3IKKyAgICAgICAgLy8gZmllbGRzIHNtYWxsZXIgdGhhbiBhbiBob3VyLCB3ZSBjYW5ub3QgYWRqdXN0IGZvciBEU1Qgd2l0aG91dAorICAgICAgICAvLyBjYXVzaW5nIHByb2JsZW1zLiAgZm9yIGluc3RhbmNlLCBpZiB5b3UgYWRkIG9uZSBob3VyIHRvIEFwcmlsIDUsCisgICAgICAgIC8vIDE5OTgsIDE6MDAgQU0sIGluIFBTVCwgdGhlIHRpbWUgYmVjb21lcyAiMjowMCBBTSBQRFQiIChhbgorICAgICAgICAvLyBpbGxlZ2FsIHZhbHVlKSwgYnV0IHRoZW4gdGhlIGFkanVzdG1lbnQgc2VlcyB0aGUgY2hhbmdlIGFuZAorICAgICAgICAvLyBjb21wZW5zYXRlcyBieSBzdWJ0cmFjdGluZyBhbiBob3VyLiAgQXMgYSByZXN1bHQgdGhlIHRpbWUKKyAgICAgICAgLy8gZG9lc24ndCBhZHZhbmNlIGF0IGFsbC4KKworICAgICAgICAvLyBGb3Igc29tZSBmaWVsZHMgbGFyZ2VyIHRoYW4gYSBkYXksIHN1Y2ggYXMgYSBNT05USCwgd2UgcGluIHRoZQorICAgICAgICAvLyBEQVlfT0ZfTU9OVEguICBUaGlzIGFsbG93cyA8TWFyY2ggMzE+LmFkZChNT05USCwgMSkgdG8gYmUKKyAgICAgICAgLy8gPEFwcmlsIDMwPiwgcmF0aGVyIHRoYW4gPEFwcmlsIDMxPiA9PiA8TWF5IDE+LgorCisgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQ7IC8vIGRlbHRhIGluIG1zCisgICAgICAgIGJvb2xlYW4ga2VlcEhvdXJJbnZhcmlhbnQgPSB0cnVlOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBFUkE6CisgICAgICAgICAgICBzZXQoZmllbGQsIGdldChmaWVsZCkgKyBhbW91bnQpOworICAgICAgICAgICAgcGluRmllbGQoRVJBKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFlFQVI6CisgICAgICAgIGNhc2UgRVhURU5ERURfWUVBUjoKKyAgICAgICAgY2FzZSBZRUFSX1dPWToKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIHNldChmaWVsZCwgZ2V0KGZpZWxkKSArIGFtb3VudCk7CisgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0VFS19PRl9ZRUFSOgorICAgICAgICBjYXNlIFdFRUtfT0ZfTU9OVEg6CisgICAgICAgIGNhc2UgREFZX09GX1dFRUtfSU5fTU9OVEg6CisgICAgICAgICAgICBkZWx0YSAqPSBPTkVfV0VFSzsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgICAgICBkZWx0YSAqPSAxMiAqIE9ORV9IT1VSOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEQVlfT0ZfTU9OVEg6CisgICAgICAgIGNhc2UgREFZX09GX1lFQVI6CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgICAgICBkZWx0YSAqPSBPTkVfREFZOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgY2FzZSBIT1VSOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX0hPVVI7CisgICAgICAgICAgICBrZWVwSG91ckludmFyaWFudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgICAgICBkZWx0YSAqPSBPTkVfTUlOVVRFOworICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX1NFQ09ORDsKKyAgICAgICAgICAgIGtlZXBIb3VySW52YXJpYW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICBrZWVwSG91ckludmFyaWFudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbGVuZGFyLmFkZCgiICsgZmllbGROYW1lKGZpZWxkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluIG9yZGVyIHRvIGtlZXAgdGhlIGhvdXIgaW52YXJpYW50IChmb3IgZmllbGRzIHdoZXJlIHRoaXMgaXMKKyAgICAgICAgLy8gYXBwcm9wcmlhdGUpLCByZWNvcmQgdGhlIERTVF9PRkZTRVQgYmVmb3JlIGFuZCBhZnRlciB0aGUgYWRkKCkKKyAgICAgICAgLy8gb3BlcmF0aW9uLiAgSWYgaXQgaGFzIGNoYW5nZWQsIHRoZW4gYWRqdXN0IHRoZSBtaWxsaXMgdG8KKyAgICAgICAgLy8gY29tcGVuc2F0ZS4KKyAgICAgICAgaW50IGRzdCA9IDA7CisgICAgICAgIGludCBob3VyID0gMDsKKyAgICAgICAgaWYgKGtlZXBIb3VySW52YXJpYW50KSB7CisgICAgICAgICAgICBkc3QgPSBnZXQoRFNUX09GRlNFVCk7CisgICAgICAgICAgICBob3VyID0gaW50ZXJuYWxHZXQoSE9VUl9PRl9EQVkpOworICAgICAgICB9CisKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKGdldFRpbWVJbk1pbGxpcygpICsgZGVsdGEpOworCisgICAgICAgIGlmIChrZWVwSG91ckludmFyaWFudCkgeworICAgICAgICAgICAgZHN0IC09IGdldChEU1RfT0ZGU0VUKTsKKyAgICAgICAgICAgIGlmIChkc3QgIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgZG9uZSBhbiBob3VyLWludmFyaWFudCBhZGp1c3RtZW50IGJ1dCB0aGUKKyAgICAgICAgICAgICAgICAvLyBEU1Qgb2Zmc2V0IGhhcyBhbHRlcmVkLiAgV2UgYWRqdXN0IG1pbGxpcyB0byBrZWVwCisgICAgICAgICAgICAgICAgLy8gdGhlIGhvdXIgY29uc3RhbnQuICBJbiBjYXNlcyBzdWNoIGFzIG1pZG5pZ2h0IGFmdGVyCisgICAgICAgICAgICAgICAgLy8gYSBEU1QgY2hhbmdlIHdoaWNoIG9jY3VycyBhdCBtaWRuaWdodCwgdGhlcmUgaXMgdGhlCisgICAgICAgICAgICAgICAgLy8gZGFuZ2VyIG9mIGFkanVzdGluZyBpbnRvIGEgZGlmZmVyZW50IGRheS4gIFRvIGF2b2lkCisgICAgICAgICAgICAgICAgLy8gdGhpcyB3ZSBtYWtlIHRoZSBhZGp1c3RtZW50IG9ubHkgaWYgaXQgYWN0dWFsbHkKKyAgICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdGhlIGhvdXIuCisgICAgICAgICAgICAgICAgbG9uZyB0ID0gdGltZTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIGRzdCk7CisgICAgICAgICAgICAgICAgaWYgKGdldChIT1VSX09GX0RBWSkgIT0gaG91cikgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgY2FsZW5kYXIgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGNhbGVuZGFyIGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZXMgKGluIG1pbGxpcykgcmVwcmVzZW50ZWQgYnkgdHdvCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhhdCB0aGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIGNvbXBhcmUgdG8gdGhpcy4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IAorICAgICAqIHRoaXMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGVxdWFsIHRvIHRoZSB0aW1lIHJlcHJlc2VudGVkIAorICAgICAqIGJ5IHRoYXQgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LCBhIHZhbHVlIGxlc3MgdGhhbiAKKyAgICAgKiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGlzIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoYXQsIGFuZCBhIHZhbHVlIGdyZWF0ZXIgdGhhbgorICAgICAqIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoaXMKKyAgICAgKiBpcyBhZnRlciB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGF0LgorICAgICAqIEB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgdGhhdCAKKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgbnVsbC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgdGltZSBvZiB0aGF0IAorICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjYW4ndCBiZSBvYnRhaW5lZCBiZWNhdXNlIG9mIGludmFsaWQKKyAgICAgKiBjYWxlbmRhciB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhDYWxlbmRhciB0aGF0KSB7CisgICAgICAgIGxvbmcgdiA9IGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgcmV0dXJuIHYgPCAwID8gLTEgOiAodiA+IDAgPyAxIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IGNvbXBhcmFibGUgQVBJIGFzIGEgY29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YKKyAgICAgKiB7QGxpbmsgI2NvbXBhcmVUbyhDYWxlbmRhcil9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVUbygoQ2FsZW5kYXIpdGhhdCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJmYWNlIGZvciBjcmVhdGluZyBjdXN0b24gRGF0ZUZvcm1hdHMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBDYWxlbmRhcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogU3ViY2xhc3NlcyB3aXNoaW5nIHRvIHNwZWNpYWxpemUgdGhpcyBiZWhhdmlvciBzaG91bGQgb3ZlcnJpZGUKKyAgICAgKiA8Y29kZT5oYW5kbGVHZXREYXRlRm9ybWF0KCk8L2NvZGU+CisgICAgICogQHNlZSAjaGFuZGxlR2V0RGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdEhlbHBlcih0aGlzLCBVTG9jYWxlLmZvckxvY2FsZShsb2MpLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBTdWJjbGFzc2VzIHdpc2hpbmcgdG8gc3BlY2lhbGl6ZSB0aGlzIGJlaGF2aW9yIHNob3VsZCBvdmVycmlkZQorICAgICAqIDxjb2RlPmhhbmRsZUdldERhdGVGb3JtYXQoKTwvY29kZT4KKyAgICAgKiBAc2VlICNoYW5kbGVHZXREYXRlRm9ybWF0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIGxvYywgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogVGhpcyBpcyBhIGZyYW1ld29yayBtZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuICBUaGlzIG1ldGhvZAorICAgICAqIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY2FsZW5kYXItc3BlY2lmaWMgRGF0ZUZvcm1hdCBhbmQKKyAgICAgKiBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3RzIGFzIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiwgc3BlY2lmaWMgdG8gdGhlIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+CisgICAgICogc3ViY2xhc3MKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBzeW1ib2xzIHNob3VsZCBiZSBkcmF3bgorICAgICAqIEByZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gaGFuZGxlR2V0RGF0ZUZvcm1hdChwYXR0ZXJuLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLgorICAgICAqIFRoaXMgaXMgYSBmcmFtZXdvcmsgbWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLiAgVGhpcyBtZXRob2QKKyAgICAgKiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIGNhbGVuZGFyLXNwZWNpZmljIERhdGVGb3JtYXQgYW5kCisgICAgICogRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0cyBhcyBuZWVkZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4sIHNwZWNpZmljIHRvIHRoZSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPgorICAgICAqIHN1YmNsYXNzCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGUgc3ltYm9scyBzaG91bGQgYmUgZHJhd24KKyAgICAgKiBAcmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyh0aGlzLCBsb2NhbGUpOworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgc3ltYm9scywgbG9jYWxlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBEYXRlRm9ybWF0IGZvcm1hdEhlbHBlcihDYWxlbmRhciBjYWwsIFVMb2NhbGUgbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKQorICAgIHsKKyAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGFyZSBhbnkgY3VzdG9tIHJlc291cmNlcyBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAgICAvLyBJZiBub3QsIGp1c3QgdXNlIHRoZSBkZWZhdWx0IERhdGVGb3JtYXQKKyAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBudWxsOworIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhckRhdGEgY2FsRGF0YSA9IG5ldyBDYWxlbmRhckRhdGEobG9jLCBjYWwuZ2V0VHlwZSgpKTsKKyAgICAgICAgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0gY2FsRGF0YS5nZXQoIkRhdGVUaW1lUGF0dGVybnMiKS5nZXRTdHJpbmdBcnJheSgpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBudWxsOworICAgICAgICAgICAgICAgIGlmICgodGltZVN0eWxlID49IDApICYmIChkYXRlU3R5bGUgPj0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gZGF0ZVRpbWVBcmdzID0geyBwYXR0ZXJuc1t0aW1lU3R5bGVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5zW2RhdGVTdHlsZSArIDRdIH07CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuc1s4XSwgZGF0ZVRpbWVBcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodGltZVN0eWxlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm5zW3RpbWVTdHlsZV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuc1tkYXRlU3R5bGUgKyA0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5vIGRhdGUgb3IgdGltZSBzdHlsZSBzcGVjaWZpZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FsLmhhbmRsZUdldERhdGVGb3JtYXQocGF0dGVybiwgbG9jKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gISEhIG5lZWQgZGF0ZWZvcm1hdCBzdWJjbGFzcyBhcHByb3ByaWF0ZSB0byBjYWxlbmRhciB0eXBlIGhlcmUhCisgICAgICAgICAgICAgICAgLy8gTm8gY3VzdG9tIHBhdHRlcm5zCisgICAgICAgICAgICAgICAgLy8gISEhIG5vdGU6IHBvc3NpYmxlIGNpcmN1bGFyaXR5IGhlcmUsIGlmIGdldERhdGVUaW1lSW5zdGFuY2UgY2FsbHMgdXMgYmVjYXVzZSBvZgorICAgICAgICAgICAgICAgIC8vIGxvYyBzcGVjaWZ5aW5nIGEgY2FsZW5kYXIuCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2MpOworCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhjYWwsIGxvYyk7CisgICAgICAgICAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KSByZXN1bHQpLnNldERhdGVGb3JtYXRTeW1ib2xzKHN5bWJvbHMpOyAvLyBhbGl1CisgICAgICAgICAgICB9CisgICAgICAgIHJlc3VsdC5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3RlY3RlZCB1dGlsaXR5IG1ldGhvZHMgZm9yIHVzZSBieSBzdWJjbGFzc2VzLiAgVGhlc2UgYXJlIHZlcnkgaGFuZHkKKyAgICAvLyBmb3IgaW1wbGVtZW50aW5nIGFkZCwgcm9sbCwgYW5kIGNvbXB1dGVGaWVsZHMuCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBZGp1c3QgdGhlIHNwZWNpZmllZCBmaWVsZCBzbyB0aGF0IGl0IGlzIHdpdGhpbgorICAgICAqIHRoZSBhbGxvd2FibGUgcmFuZ2UgZm9yIHRoZSBkYXRlIHRvIHdoaWNoIHRoaXMgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEZvciBleGFtcGxlLCBpbiBhIEdyZWdvcmlhbiBjYWxlbmRhciBwaW5uaW5nIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9CisgICAgICogZmllbGQgZm9yIGEgY2FsZW5kYXIgc2V0IHRvIEFwcmlsIDMxIHdvdWxkIGNhdXNlIGl0IHRvIGJlIHNldAorICAgICAqIHRvIEFwcmlsIDMwLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj4KKyAgICAgKiA8YnI+CisgICAgICogVGhpcyB1dGlsaXR5IG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgdGhhdCBuZWVkIHRvIGltcGxlbWVudAorICAgICAqIHRoZWlyIG93biBvdmVycmlkZXMgb2Yge0BsaW5rICNyb2xsIHJvbGx9IGFuZCB7QGxpbmsgI2FkZCBhZGR9LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPgorICAgICAqIDxjb2RlPnBpbkZpZWxkPC9jb2RlPiBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZgorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfQorICAgICAqIGFuZCB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0uICBJZiBlaXRoZXIgb2YgdGhvc2UgbWV0aG9kcyB1c2VzCisgICAgICogYSBzbG93LCBpdGVyYXRpdmUgYWxnb3JpdGhtIGZvciBhIHBhcnRpY3VsYXIgZmllbGQsIGl0IHdvdWxkIGJlCisgICAgICogdW53aXNlIHRvIGF0dGVtcHQgdG8gY2FsbCA8Y29kZT5waW5GaWVsZDwvY29kZT4gZm9yIHRoYXQgZmllbGQuICBJZiB5b3UKKyAgICAgKiByZWFsbHkgZG8gbmVlZCB0byBkbyBzbywgeW91IHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBkbworICAgICAqIHNvbWV0aGluZyBtb3JlIGVmZmljaWVudCBmb3IgdGhhdCBmaWVsZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgVGhlIGNhbGVuZGFyIGZpZWxkIHdob3NlIHZhbHVlIHNob3VsZCBiZSBwaW5uZWQuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRBY3R1YWxNaW5pbXVtCisgICAgICogQHNlZSAjZ2V0QWN0dWFsTWF4aW11bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHBpbkZpZWxkKGludCBmaWVsZCkgeworICAgICAgICBpbnQgbWF4ID0gZ2V0QWN0dWFsTWF4aW11bShmaWVsZCk7CisgICAgICAgIGludCBtaW4gPSBnZXRBY3R1YWxNaW5pbXVtKGZpZWxkKTsKKworICAgICAgICBpZiAoZmllbGRzW2ZpZWxkXSA+IG1heCkgeworICAgICAgICAgICAgc2V0KGZpZWxkLCBtYXgpOworICAgICAgICB9IGVsc2UgaWYgKGZpZWxkc1tmaWVsZF0gPCBtaW4pIHsKKyAgICAgICAgICAgIHNldChmaWVsZCwgbWluKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgd2VlayBudW1iZXIgb2YgYSBkYXksIHdpdGhpbiBhIHBlcmlvZC4gVGhpcyBtYXkgYmUgdGhlIHdlZWsgbnVtYmVyIGluCisgICAgICogYSB5ZWFyIG9yIHRoZSB3ZWVrIG51bWJlciBpbiBhIG1vbnRoLiBVc3VhbGx5IHRoaXMgd2lsbCBiZSBhIHZhbHVlID49IDEsIGJ1dCBpZgorICAgICAqIHNvbWUgaW5pdGlhbCBkYXlzIG9mIHRoZSBwZXJpb2QgYXJlIGV4Y2x1ZGVkIGZyb20gd2VlayAxLCBiZWNhdXNlCisgICAgICoge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9IGlzID4gMSwgdGhlbgorICAgICAqIHRoZSB3ZWVrIG51bWJlciB3aWxsIGJlIHplcm8gZm9yIHRob3NlCisgICAgICogaW5pdGlhbCBkYXlzLiBUaGlzIG1ldGhvZCByZXF1aXJlcyB0aGUgZGF5IG51bWJlciBhbmQgZGF5IG9mIHdlZWsgZm9yIHNvbWUKKyAgICAgKiBrbm93biBkYXRlIGluIHRoZSBwZXJpb2QgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSBkYXkgb2Ygd2VlaworICAgICAqIG9uIHRoZSBkZXNpcmVkIGRheS4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+CisgICAgICogPGJyPgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIGZvciB1c2UgYnkgc3ViY2xhc3NlcyBpbiBpbXBsZW1lbnRpbmcgdGhlaXIKKyAgICAgKiB7QGxpbmsgI2NvbXB1dGVUaW1lIGNvbXB1dGVUaW1lfSBhbmQvb3Ige0BsaW5rICNjb21wdXRlRmllbGRzIGNvbXB1dGVGaWVsZHN9IG1ldGhvZHMuCisgICAgICogSXQgaXMgb2Z0ZW4gdXNlZnVsIGluIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0gYXMgd2VsbC4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIHZhcmlhbnQgaXMgaGFuZHkgZm9yIGNvbXB1dGluZyB0aGUgd2VlayBudW1iZXIgb2Ygc29tZSBvdGhlcgorICAgICAqIGRheSBvZiBhIHBlcmlvZCAob2Z0ZW4gdGhlIGZpcnN0IG9yIGxhc3QgZGF5IG9mIHRoZSBwZXJpb2QpIHdoZW4gaXRzIGRheQorICAgICAqIG9mIHRoZSB3ZWVrIGlzIG5vdCBrbm93biBidXQgdGhlIGRheSBudW1iZXIgYW5kIGRheSBvZiB3ZWVrIGZvciBzb21lIG90aGVyCisgICAgICogZGF5IGluIHRoZSBwZXJpb2QgKGUuZy4gdGhlIGN1cnJlbnQgZGF0ZSkgPGVtPmlzPC9lbT4ga25vd24uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGRlc2lyZWREYXkgICAgVGhlIHtAbGluayAjREFZX09GX1lFQVIgREFZX09GX1lFQVJ9IG9yCisgICAgICogICAgICAgICAgICAgIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gd2hvc2Ugd2VlayBudW1iZXIgaXMgZGVzaXJlZC4KKyAgICAgKiAgICAgICAgICAgICAgU2hvdWxkIGJlIDEgZm9yIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHBlcmlvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZlBlcmlvZCAgIFRoZSB7QGxpbmsgI0RBWV9PRl9ZRUFSIERBWV9PRl9ZRUFSfQorICAgICAqICAgICAgICAgICAgICBvciB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZvciBhIGRheSBpbiB0aGUgcGVyaW9kIHdob3NlCisgICAgICogICAgICAgICAgICAgIHtAbGluayAjREFZX09GX1dFRUsgREFZX09GX1dFRUt9IGlzIHNwZWNpZmllZCBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZGF5T2ZXZWVrPC9jb2RlPiBwYXJhbWV0ZXIuCisgICAgICogICAgICAgICAgICAgIFNob3VsZCBiZSAxIGZvciBmaXJzdCBkYXkgb2YgcGVyaW9kLgorICAgICAqCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgVGhlIHtAbGluayAjREFZX09GX1dFRUsgREFZX09GX1dFRUt9IGZvciB0aGUgZGF5CisgICAgICogICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIDxjb2RlPmRheU9mUGVyaW9kPC9jb2RlPiBwYXJhbWV0ZXIuCisgICAgICogICAgICAgICAgICAgIDEtYmFzZWQgd2l0aCAxPVN1bmRheS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgd2VlayBudW1iZXIgKG9uZS1iYXNlZCksIG9yIHplcm8gaWYgdGhlIGRheSBmYWxscyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgdGhlIGZpcnN0IHdlZWsgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiAgICAgICAgICAgICAgaXMgbW9yZSB0aGFuIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHdlZWtOdW1iZXIoaW50IGRlc2lyZWREYXksIGludCBkYXlPZlBlcmlvZCwgaW50IGRheU9mV2VlaykKKyAgICB7CisgICAgICAgIC8vIERldGVybWluZSB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHBlcmlvZAorICAgICAgICAvLyBpbiBxdWVzdGlvbiAoZWl0aGVyIGEgeWVhciBvciBhIG1vbnRoKS4gIFplcm8gcmVwcmVzZW50cyB0aGUKKyAgICAgICAgLy8gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIG9uIHRoaXMgY2FsZW5kYXIuCisgICAgICAgIGludCBwZXJpb2RTdGFydERheU9mV2VlayA9IChkYXlPZldlZWsgLSBnZXRGaXJzdERheU9mV2VlaygpIC0gZGF5T2ZQZXJpb2QgKyAxKSAlIDc7CisgICAgICAgIGlmIChwZXJpb2RTdGFydERheU9mV2VlayA8IDApIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrICs9IDc7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgd2VlayBudW1iZXIuICBJbml0aWFsbHksIGlnbm9yZSB0aGUgZmlyc3Qgd2Vlaywgd2hpY2gKKyAgICAgICAgLy8gbWF5IGJlIGZyYWN0aW9uYWwgKG9yIG1heSBub3QgYmUpLiAgV2UgYWRkIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrIGluCisgICAgICAgIC8vIG9yZGVyIHRvIGZpbGwgb3V0IHRoZSBmaXJzdCB3ZWVrLCBpZiBpdCBpcyBmcmFjdGlvbmFsLgorICAgICAgICBpbnQgd2Vla05vID0gKGRlc2lyZWREYXkgKyBwZXJpb2RTdGFydERheU9mV2VlayAtIDEpLzc7CisKKyAgICAgICAgLy8gSWYgdGhlIGZpcnN0IHdlZWsgaXMgbG9uZyBlbm91Z2gsIHRoZW4gY291bnQgaXQuICBJZgorICAgICAgICAvLyB0aGUgbWluaW1hbCBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrIGlzIG9uZSwgb3IgaWYgdGhlIHBlcmlvZCBzdGFydAorICAgICAgICAvLyBpcyB6ZXJvLCB3ZSBhbHdheXMgaW5jcmVtZW50IHdlZWtOby4KKyAgICAgICAgaWYgKCg3IC0gcGVyaW9kU3RhcnREYXlPZldlZWspID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgKyt3ZWVrTm87CisKKyAgICAgICAgcmV0dXJuIHdlZWtObzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHdlZWsgbnVtYmVyIG9mIGEgZGF5LCB3aXRoaW4gYSBwZXJpb2QuIFRoaXMgbWF5IGJlIHRoZSB3ZWVrIG51bWJlciBpbgorICAgICAqIGEgeWVhciwgb3IgdGhlIHdlZWsgbnVtYmVyIGluIGEgbW9udGguIFVzdWFsbHkgdGhpcyB3aWxsIGJlIGEgdmFsdWUgPj0gMSwgYnV0IGlmCisgICAgICogc29tZSBpbml0aWFsIGRheXMgb2YgdGhlIHBlcmlvZCBhcmUgZXhjbHVkZWQgZnJvbSB3ZWVrIDEsIGJlY2F1c2UKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gaXMgPiAxLAorICAgICAqIHRoZW4gdGhlIHdlZWsgbnVtYmVyIHdpbGwgYmUgemVybyBmb3IgdGhvc2UKKyAgICAgKiBpbml0aWFsIGRheXMuIFRoaXMgbWV0aG9kIHJlcXVpcmVzIHRoZSBkYXkgb2Ygd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUgaW4gb3JkZXIgdG8KKyAgICAgKiBkZXRlcm1pbmUgdGhlIHJlc3VsdC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+CisgICAgICogPGJyPgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIGZvciB1c2UgYnkgc3ViY2xhc3NlcyBpbiBpbXBsZW1lbnRpbmcgdGhlaXIKKyAgICAgKiB7QGxpbmsgI2NvbXB1dGVUaW1lIGNvbXB1dGVUaW1lfSBhbmQvb3Ige0BsaW5rICNjb21wdXRlRmllbGRzIGNvbXB1dGVGaWVsZHN9IG1ldGhvZHMuCisgICAgICogSXQgaXMgb2Z0ZW4gdXNlZnVsIGluIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0gYXMgd2VsbC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGF5T2ZQZXJpb2QgICBUaGUge0BsaW5rICNEQVlfT0ZfWUVBUiBEQVlfT0ZfWUVBUn0gb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IHdob3NlIHdlZWsgbnVtYmVyIGlzIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgU2hvdWxkIGJlIDEgZm9yIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHBlcmlvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSB7QGxpbmsgI0RBWV9PRl9XRUVLIERBWV9PRl9XRUVLfSBmb3IgdGhlIGRheQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIDxjb2RlPmRheU9mUGVyaW9kPC9jb2RlPiBwYXJhbWV0ZXIuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgMS1iYXNlZCB3aXRoIDE9U3VuZGF5LgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSB3ZWVrIG51bWJlciAob25lLWJhc2VkKSwgb3IgemVybyBpZiB0aGUgZGF5IGZhbGxzIGJlZm9yZQorICAgICAqICAgICAgICAgICAgICB0aGUgZmlyc3Qgd2VlayBiZWNhdXNlCisgICAgICogICAgICAgICAgICAgIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfQorICAgICAqICAgICAgICAgICAgICBpcyBtb3JlIHRoYW4gb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgd2Vla051bWJlcihpbnQgZGF5T2ZQZXJpb2QsIGludCBkYXlPZldlZWspCisgICAgeworICAgICAgICByZXR1cm4gd2Vla051bWJlcihkYXlPZlBlcmlvZCwgZGF5T2ZQZXJpb2QsIGRheU9mV2Vlayk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBbTkVXXQorICAgICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB0aW1lIGFuZCB0aGUgdGltZSB0aGlzCisgICAgICogY2FsZW5kYXIgb2JqZWN0IGlzIHNldCB0by4gIElmIHRoaXMgY2FsZW5kYXIgaXMgc2V0CisgICAgICogPGVtPmJlZm9yZTwvZW0+IHRoZSBnaXZlbiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZQorICAgICAqIHBvc2l0aXZlLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQgPGVtPmFmdGVyPC9lbT4gdGhlIGdpdmVuCisgICAgICogdGltZSwgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgbmVnYXRpdmUuICBUaGUKKyAgICAgKiA8Y29kZT5maWVsZDwvY29kZT4gcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdW5pdHMgb2YgdGhlIHJldHVybgorICAgICAqIHZhbHVlLiAgRm9yIGV4YW1wbGUsIGlmIDxjb2RlPmZpZWxkRGlmZmVyZW5jZSh3aGVuLAorICAgICAqIENhbGVuZGFyLk1PTlRIKTwvY29kZT4gcmV0dXJucyAzLCB0aGVuIHRoaXMgY2FsZW5kYXIgaXMgc2V0IHRvCisgICAgICogMyBtb250aHMgYmVmb3JlIDxjb2RlPndoZW48L2NvZGU+LCBhbmQgcG9zc2libHkgc29tZSBhZGRpdGlvbmFsCisgICAgICogdGltZSBsZXNzIHRoYW4gb25lIG1vbnRoLgorICAgICAqCisgICAgICogPHA+QXMgYSBzaWRlIGVmZmVjdCBvZiB0aGlzIGNhbGwsIHRoaXMgY2FsZW5kYXIgaXMgYWR2YW5jZWQKKyAgICAgKiB0b3dhcmQgPGNvZGU+d2hlbjwvY29kZT4gYnkgdGhlIGdpdmVuIGFtb3VudC4gIFRoYXQgaXMsIGNhbGxpbmcKKyAgICAgKiB0aGlzIG1ldGhvZCBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcgPGNvZGU+YWRkKGZpZWxkLAorICAgICAqIG4pPC9jb2RlPiwgd2hlcmUgPGNvZGU+bjwvY29kZT4gaXMgdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKgorICAgICAqIDxwPlVzYWdlOiBUbyB1c2UgdGhpcyBtZXRob2QsIGNhbGwgaXQgZmlyc3Qgd2l0aCB0aGUgbGFyZ2VzdAorICAgICAqIGZpZWxkIG9mIGludGVyZXN0LCB0aGVuIHdpdGggcHJvZ3Jlc3NpdmVseSBzbWFsbGVyIGZpZWxkcy4gIEZvcgorICAgICAqIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiA8cHJlPgorICAgICAqIGludCB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgKiBpbnQgbSA9IGNhbC5maWVsZERpZmZlcmVuY2Uod2hlbiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5EQVRFKTs8L3ByZT4KKyAgICAgKgorICAgICAqIGNvbXB1dGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gPGNvZGU+Y2FsPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT53aGVuPC9jb2RlPiBpbiB5ZWFycywgbW9udGhzLCBhbmQgZGF5cy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IDxjb2RlPmZpZWxkRGlmZmVyZW5jZSgpPC9jb2RlPiBpcworICAgICAqIDxlbT5hc3ltbWV0cmljYWw8L2VtPi4gIFRoYXQgaXMsIGluIHRoZSBmb2xsb3dpbmcgY29kZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAqIGludCBtMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgKiBpbnQgZDEgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5EQVRFKTsKKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMik7CisgICAgICogaW50IG0yID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMiA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTEsIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogb25lIG1pZ2h0IGV4cGVjdCB0aGF0IDxjb2RlPm0xID09IC1tMiAmJiBkMSA9PSAtZDI8L2NvZGU+LgorICAgICAqIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGdlbmVyYWxseSB0aGUgY2FzZSwgYmVjYXVzZSBvZgorICAgICAqIGlycmVndWxhcml0aWVzIGluIHRoZSB1bmRlcmx5aW5nIGNhbGVuZGFyIHN5c3RlbSAoZS5nLiwgdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyIGhhcyBhIHZhcnlpbmcgbnVtYmVyIG9mIGRheXMgcGVyIG1vbnRoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBkYXRlIHRvIGNvbXBhcmUgdGhpcyBjYWxlbmRhcidzIHRpbWUgdG8KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIGluIHdoaWNoIHRvIGNvbXB1dGUgdGhlIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIGRpZmZlcmVuY2UsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgYmV0d2VlbgorICAgICAqIHRoaXMgY2FsZW5kYXIncyB0aW1lIGFuZCA8Y29kZT53aGVuPC9jb2RlPiwgaW4gdGVybXMgb2YKKyAgICAgKiA8Y29kZT5maWVsZDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmaWVsZERpZmZlcmVuY2UoRGF0ZSB3aGVuLCBpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IG1pbiA9IDA7CisgICAgICAgIGxvbmcgc3RhcnRNcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICBsb25nIHRhcmdldE1zID0gd2hlbi5nZXRUaW1lKCk7CisgICAgICAgIC8vIEFsd2F5cyBhZGQgZnJvbSB0aGUgc3RhcnQgbWlsbGlzLiAgVGhpcyBhY2NvbW9kYXRlcworICAgICAgICAvLyBvcGVyYXRpb25zIGxpa2UgYWRkaW5nIHllYXJzIGZyb20gRmVicnVhcnkgMjksIDIwMDAgdXAgdG8KKyAgICAgICAgLy8gRmVicnVhcnkgMjksIDIwMDQuICBJZiAxLCAxLCAxLCAxIGlzIGFkZGVkIHRvIHRoZSB5ZWFyCisgICAgICAgIC8vIGZpZWxkLCB0aGUgRE9NIGdldHMgcGlubmVkIHRvIDI4IGFuZCBzdGF5cyB0aGVyZSwgZ2l2aW5nIGFuCisgICAgICAgIC8vIGluY29ycmVjdCBET00gZGlmZmVyZW5jZSBvZiAxLiAgV2UgaGF2ZSB0byBhZGQgMSwgcmVzZXQsIDIsCisgICAgICAgIC8vIHJlc2V0LCAzLCByZXNldCwgNC4KKyAgICAgICAgaWYgKHN0YXJ0TXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgaW50IG1heCA9IDE7CisgICAgICAgICAgICAvLyBGaW5kIGEgdmFsdWUgdGhhdCBpcyB0b28gbGFyZ2UKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCBtYXgpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4IDw8PSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGFydE1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MsIGFuZCBtYWtlcyB0aGUgY29kZSBzbWFsbGVyLCBidXQgY29zdHMKKyAgICAgICAgICAgICAgICAvLyBhbiBleHRyYSBvYmplY3QgY3JlYXRpb24gYW5kIGFuIGV4dHJhIGNvdXBsZSBjeWNsZXMKKyAgICAgICAgICAgICAgICAvLyBvZiBjYWxlbmRhciBjb21wdXRhdGlvbi4KKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGFyZ2V0TXMpOworICAgICAgICAgICAgICAgIG1pbiA9IC1maWVsZERpZmZlcmVuY2UobmV3IERhdGUoc3RhcnRNcyksIGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYXggPSAtMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBzbWFsbAorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1pbiAtIG1heCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zIDwgdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBTZXQgY2FsZW5kYXIgdG8gZW5kIHBvaW50CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgYWRkKGZpZWxkLCBtaW4pOworICAgICAgICByZXR1cm4gbWluOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiB0aW1lIHpvbmUgdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGltZVpvbmUoVGltZVpvbmUgdmFsdWUpCisgICAgeworICAgICAgICB6b25lID0gdmFsdWU7CisgICAgICAgIC8qIFJlY29tcHV0ZSB0aGUgZmllbGRzIGZyb20gdGhlIHRpbWUgdXNpbmcgdGhlIG5ldyB6b25lLiAgVGhpcyBhbHNvCisgICAgICAgICAqIHdvcmtzIGlmIGlzVGltZVNldCBpcyBmYWxzZSAoYWZ0ZXIgYSBjYWxsIHRvIHNldCgpKS4gIEluIHRoYXQgY2FzZQorICAgICAgICAgKiB0aGUgdGltZSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gdGhlIGZpZWxkcyB1c2luZyB0aGUgbmV3IHpvbmUsIHRoZW4KKyAgICAgICAgICogdGhlIGZpZWxkcyB3aWxsIGdldCByZWNvbXB1dGVkIGZyb20gdGhhdC4gIENvbnNpZGVyIHRoZSBzZXF1ZW5jZSBvZgorICAgICAgICAgKiBjYWxsczogY2FsLnNldFRpbWVab25lKEVTVCk7IGNhbC5zZXQoSE9VUiwgMSk7IGNhbC5zZXRUaW1lWm9uZShQU1QpLgorICAgICAgICAgKiBJcyBjYWwgc2V0IHRvIDEgbydjbG9jayBFU1Qgb3IgMSBvJ2Nsb2NrIFBTVD8gIEFuc3dlcjogUFNULiAgTW9yZQorICAgICAgICAgKiBnZW5lcmFsbHksIGEgY2FsbCB0byBzZXRUaW1lWm9uZSgpIGFmZmVjdHMgY2FsbHMgdG8gc2V0KCkgQkVGT1JFIEFORAorICAgICAgICAgKiBBRlRFUiBpdCB1cCB0byB0aGUgbmV4dCBjYWxsIHRvIGNvbXBsZXRlKCkuCisgICAgICAgICAqLworICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBkYXRlL3RpbWUgaW50ZXJwcmV0YXRpb24gaXMgdG8gYmUgbGVuaWVudC4gIFdpdGgKKyAgICAgKiBsZW5pZW50IGludGVycHJldGF0aW9uLCBhIGRhdGUgc3VjaCBhcyAiRmVicnVhcnkgOTQyLCAxOTk2IiB3aWxsIGJlCisgICAgICogdHJlYXRlZCBhcyBiZWluZyBlcXVpdmFsZW50IHRvIHRoZSA5NDFzdCBkYXkgYWZ0ZXIgRmVicnVhcnkgMSwgMTk5Ni4KKyAgICAgKiBXaXRoIHN0cmljdCBpbnRlcnByZXRhdGlvbiwgc3VjaCBkYXRlcyB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbiB0byBiZQorICAgICAqIHRocm93bi4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNzZXRMZW5pZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpCisgICAgeworICAgICAgICB0aGlzLmxlbmllbnQgPSBsZW5pZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgaW50ZXJwcmV0YXRpb24gaXMgdG8gYmUgbGVuaWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxlbmllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpcnN0RGF5T2ZXZWVrKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChmaXJzdERheU9mV2VlayAhPSB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKHZhbHVlIDwgU1VOREFZIHx8IHZhbHVlID4gU0FUVVJEQVkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRheSBvZiB3ZWVrIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaXJzdERheU9mV2VlayA9IHZhbHVlOworICAgICAgICAgICAgYXJlRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpczsgZS5nLiwgU3VuZGF5IGluIFVTLAorICAgICAqIE1vbmRheSBpbiBGcmFuY2UuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3REYXlPZldlZWsoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0RGF5T2ZXZWVrOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hhdCB0aGUgbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyIGFyZS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgY2FsbCB0aGUgbWV0aG9kIHdpdGggdmFsdWUgMS4gSWYgaXQKKyAgICAgKiBtdXN0IGJlIGEgZnVsbCB3ZWVrLCB1c2UgdmFsdWUgNy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlaworICAgICAqIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgLy8gVmFsdWVzIGxlc3MgdGhhbiAxIGhhdmUgdGhlIHNhbWUgZWZmZWN0IGFzIDE7IHZhbHVlcyBncmVhdGVyCisgICAgICAgIC8vIHRoYW4gNyBoYXZlIHRoZSBzYW1lIGVmZmVjdCBhcyA3LiBIb3dldmVyLCB3ZSBub3JtYWxpemUgdmFsdWVzCisgICAgICAgIC8vIHNvIG9wZXJhdG9yPT0gYW5kIHNvIGZvcnRoIHdvcmsuCisgICAgICAgIGlmICh2YWx1ZSA8IDEpIHsKKyAgICAgICAgICAgIHZhbHVlID0gMTsKKyAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+IDcpIHsKKyAgICAgICAgICAgIHZhbHVlID0gNzsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluaW1hbERheXNJbkZpcnN0V2VlayAhPSB2YWx1ZSkgeworICAgICAgICAgICAgbWluaW1hbERheXNJbkZpcnN0V2VlayA9IHZhbHVlOworICAgICAgICAgICAgYXJlRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmU7CisgICAgICogZS5nLiwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgZGF5CisgICAgICogb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayByZXR1cm5zIDEuIElmCisgICAgICogdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBtdXN0IGJlIGEgZnVsbCB3ZWVrLCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogcmV0dXJucyA3LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1pbmltYWxEYXlzSW5GaXJzdFdlZWs7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vICAgIE1pbmltdW0gIEdyZWF0ZXN0IG1pbiAgICAgIExlYXN0IG1heCAgIEdyZWF0ZXN0IG1heAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEVSQQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFlFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAgICAxLCAgICAgICAgICAgIDEsICAgICAgICAgICAgIDcsICAgICAgICAgICAgIDcgIH0sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgICAxLCAgICAgICAgICAgICAxICB9LCAvLyBBTV9QTQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgMTEsICAgICAgICAgICAgMTEgIH0sIC8vIEhPVVIKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgIDIzLCAgICAgICAgICAgIDIzICB9LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgNTksICAgICAgICAgICAgNTkgIH0sIC8vIE1JTlVURQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgNTksICAgICAgICAgICAgNTkgIH0sIC8vIFNFQ09ORAorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICA5OTksICAgICAgICAgICA5OTkgIH0sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHstMTIqT05FX0hPVVIsIC0xMipPTkVfSE9VUiwgICAxMipPTkVfSE9VUiwgICAxMipPTkVfSE9VUiAgfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAxKk9ORV9IT1VSLCAgICAxKk9ORV9IT1VSICB9LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgeyAgICAgICAgICAgMSwgICAgICAgICAgICAxLCAgICAgICAgICAgICA3LCAgICAgICAgICAgICA3ICB9LCAvLyBET1dfTE9DQUwKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsgLTB4N0YwMDAwMDAsICAtMHg3RjAwMDAwMCwgICAgMHg3RjAwMDAwMCwgICAgMHg3RjAwMDAwMCAgfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsIDI0Kk9ORV9IT1VSLTEsIDI0Kk9ORV9IT1VSLTEgIH0sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3ViY2xhc3MgQVBJIGZvciBkZWZpbmluZyBsaW1pdHMgb2YgZGlmZmVyZW50IHR5cGVzLgorICAgICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGxpbWl0cyBmb3IgdGhlCisgICAgICogZm9sbG93aW5nIGZpZWxkczoKKyAgICAgKgorICAgICAqIDxwcmU+RVJBCisgICAgICogWUVBUgorICAgICAqIE1PTlRICisgICAgICogV0VFS19PRl9ZRUFSCisgICAgICogV0VFS19PRl9NT05USAorICAgICAqIERBWV9PRl9NT05USAorICAgICAqIERBWV9PRl9ZRUFSCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgKiBZRUFSX1dPWQorICAgICAqIEVYVEVOREVEX1lFQVI8L3ByZT4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCBvbmUgb2YgdGhlIGFib3ZlIGZpZWxkIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gbGltaXRUeXBlIG9uZSBvZiA8Y29kZT5NSU5JTVVNPC9jb2RlPiwgPGNvZGU+R1JFQVRFU1RfTUlOSU1VTTwvY29kZT4sCisgICAgICogPGNvZGU+TEVBU1RfTUFYSU1VTTwvY29kZT4sIG9yIDxjb2RlPk1BWElNVU08L2NvZGU+CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbGltaXQgZm9yIGEgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCwgZnJvbSAwLi48L2NvZGU+Z2V0RmllbGRDb3VudCgpLTE8L2NvZGU+CisgICAgICogQHBhcmFtIGxpbWl0VHlwZSB0aGUgdHlwZSBzcGVjaWZpZXIgZm9yIHRoZSBsaW1pdAorICAgICAqIEBzZWUgI01JTklNVU0KKyAgICAgKiBAc2VlICNHUkVBVEVTVF9NSU5JTVVNCisgICAgICogQHNlZSAjTEVBU1RfTUFYSU1VTQorICAgICAqIEBzZWUgI01BWElNVU0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIFpPTkVfT0ZGU0VUOgorICAgICAgICBjYXNlIERTVF9PRkZTRVQ6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhbmRsZUdldExpbWl0KGZpZWxkLCBsaW1pdFR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIExpbWl0IHR5cGUgZm9yIDxjb2RlPmdldExpbWl0KCk8L2NvZGU+IGFuZCA8Y29kZT5oYW5kbGVHZXRMaW1pdCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1pbmltdW0gdmFsdWUgdGhhdCBhIGZpZWxkIGNhbiB0YWtlIChsZWFzdCBtaW5pbXVtKS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUlOSU1VTSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBncmVhdGVzdCBtaW5pbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgR1JFQVRFU1RfTUlOSU1VTSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBsZWFzdCBtYXhpbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTEVBU1RfTUFYSU1VTSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZSAoZ3JlYXRlc3QgbWF4aW11bSkuCisgICAgICogQHNlZSAjZ2V0TGltaXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRMaW1pdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWElNVU0gPSAzOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDEuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBNSU5JTVVNKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAzMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZ2V0TGltaXQoZmllbGQsIE1BWElNVU0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGhpZ2hlc3QgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkIGlmIHZhcmllcy4KKyAgICAgKiBPdGhlcndpc2Ugc2FtZSBhcyBnZXRNaW5pbXVtKCkuIEZvciBHcmVnb3JpYW4sIG5vIGRpZmZlcmVuY2UuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGhpZ2hlc3QgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRHcmVhdGVzdE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRMaW1pdChmaWVsZCwgR1JFQVRFU1RfTUlOSU1VTSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG93ZXN0IG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCBpZiB2YXJpZXMuCisgICAgICogT3RoZXJ3aXNlIHNhbWUgYXMgZ2V0TWF4aW11bSgpLiBlLmcuLCBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMjguCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGxvd2VzdCBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExlYXN0TWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBMRUFTVF9NQVhJTVVNKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBXZWVrZW5kIHN1cHBvcnQgLS0gZGV0ZXJtaW5pbmcgd2hpY2ggZGF5cyBvZiB0aGUgd2VlayBhcmUgdGhlIHdlZWtlbmQKKyAgICAvLyBpbiBhIGdpdmVuIGxvY2FsZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGRheSBvZiB0aGUgd2VlayBpcyBhIHdlZWtkYXksIGEKKyAgICAgKiB3ZWVrZW5kIGRheSwgb3IgYSBkYXkgdGhhdCB0cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3RoZXIsCisgICAgICogaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IG1pZG5pZ2h0LAorICAgICAqIHRoZW4gdGhlIGRheXMgYmVmb3JlIGFuZCBhZnRlciB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUgdGhlCisgICAgICogdHlwZSBXRUVLREFZIG9yIFdFRUtFTkQuICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IGEgdGltZQorICAgICAqIG90aGVyIHRoYW4gbWlkbmlnaHQsIHRoZW4gdGhlIGRheSBvZiB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUKKyAgICAgKiB0aGUgdHlwZSBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UuICBJbiB0aGlzIGNhc2UsIHRoZQorICAgICAqIG1ldGhvZCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHdpbGwgcmV0dXJuIHRoZSBwb2ludCBvZgorICAgICAqIHRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gZWl0aGVyIFdFRUtEQVksIFdFRUtFTkQsIFdFRUtFTkRfT05TRVQsIG9yCisgICAgICogV0VFS0VORF9DRUFTRQorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBiZXR3ZWVuIFNVTkRBWSBhbmQgU0FUVVJEQVksIGluY2x1c2l2ZQorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgaWYgKGRheU9mV2VlayA8IFNVTkRBWSB8fCBkYXlPZldlZWsgPiBTQVRVUkRBWSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBkYXkgb2Ygd2VlayIpOworICAgICAgICB9CisgICAgICAgIGlmICh3ZWVrZW5kT25zZXQgPCB3ZWVrZW5kQ2Vhc2UpIHsKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPCB3ZWVrZW5kT25zZXQgfHwgZGF5T2ZXZWVrID4gd2Vla2VuZENlYXNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdFRUtEQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZGF5T2ZXZWVrID4gd2Vla2VuZENlYXNlICYmIGRheU9mV2VlayA8IHdlZWtlbmRPbnNldCkgeworICAgICAgICAgICAgICAgIHJldHVybiBXRUVLREFZOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkYXlPZldlZWsgPT0gd2Vla2VuZE9uc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gKHdlZWtlbmRPbnNldE1pbGxpcyA9PSAwKSA/IFdFRUtFTkQgOiBXRUVLRU5EX09OU0VUOworICAgICAgICB9CisgICAgICAgIGlmIChkYXlPZldlZWsgPT0gd2Vla2VuZENlYXNlKSB7CisgICAgICAgICAgICByZXR1cm4gKHdlZWtlbmRDZWFzZU1pbGxpcyA9PSAwKSA/IFdFRUtEQVkgOiBXRUVLRU5EX0NFQVNFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBXRUVLRU5EOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGltZSBkdXJpbmcgdGhlIGRheSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMgb3IgZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0KKyAgICAgKiBXRUVLRU5EX09OU0VUIHJldHVybiB0aGUgdGltZSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMuICBJZgorICAgICAqIGdldERheU9mV2Vla1R5cGUoZGF5T2ZXZWVrKSA9PSBXRUVLRU5EX0NFQVNFIHJldHVybiB0aGUgdGltZSBhdAorICAgICAqIHdoaWNoIHRoZSB3ZWVrZW5kIGVuZHMuICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgaGFzIHNvbWUKKyAgICAgKiBvdGhlciB2YWx1ZSwgdGhlbiB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gdGhlIG1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUKKyAgICAgKiB3ZWVrZW5kIGJlZ2lucyBvciBlbmRzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgZGF5T2ZXZWVrIGlzIG5vdAorICAgICAqIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0V2Vla2VuZFRyYW5zaXRpb24oaW50IGRheU9mV2VlaykgeworICAgICAgICBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRPbnNldCkgeworICAgICAgICAgICAgcmV0dXJuIHdlZWtlbmRPbnNldE1pbGxpczsKKyAgICAgICAgfSBlbHNlIGlmIChkYXlPZldlZWsgPT0gd2Vla2VuZENlYXNlKSB7CisgICAgICAgICAgICByZXR1cm4gd2Vla2VuZENlYXNlTWlsbGlzOworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5vdCB3ZWVrZW5kIHRyYW5zaXRpb24gZGF5Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgaW4gdGhlIHdlZWtlbmQgaW4KKyAgICAgKiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIEVxdWl2YWxlbnQgdG8gY2FsbGluZyBzZXRUaW1lKCkgZm9sbG93ZWQKKyAgICAgKiBieSBpc1dlZWtlbmQoKS4gIE5vdGU6IFRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIHRpbWUgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0by4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZSBhbmQgdGltZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzV2Vla2VuZChEYXRlIGRhdGUpIHsKKyAgICAgICAgc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaXMgaW4gdGhlCisgICAgICogd2Vla2VuZCBpbiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgcGFydCBvZiB0aGUKKyAgICAgKiB3ZWVrZW5kCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNXZWVrZW5kKCkgeworICAgICAgICBpbnQgZG93ID0gIGdldChEQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBkb3d0ID0gZ2V0RGF5T2ZXZWVrVHlwZShkb3cpOworICAgICAgICBzd2l0Y2ggKGRvd3QpIHsKKyAgICAgICAgY2FzZSBXRUVLREFZOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIFdFRUtFTkQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDogLy8gVGhhdCBpcywgV0VFS0VORF9PTlNFVCBvciBXRUVLRU5EX0NFQVNFCisgICAgICAgICAgICAvLyBVc2UgaW50ZXJuYWxHZXQoKSBiZWNhdXNlIHRoZSBhYm92ZSBjYWxsIHRvIGdldCgpIHBvcHVsYXRlZAorICAgICAgICAgICAgLy8gYWxsIGZpZWxkcy4KKyAgICAgICAgICAgIC8vIFtOb3RlOiBUaGVyZSBzaG91bGQgYmUgYSBiZXR0ZXIgd2F5IHRvIGdldCBtaWxsaXMgaW4gZGF5LgorICAgICAgICAgICAgLy8gIEZvciBJQ1U0Siwgc3VibWl0IHJlcXVlc3QgZm9yIGEgTUlMTElTX0lOX0RBWSBmaWVsZAorICAgICAgICAgICAgLy8gIGFuZCBhIERBWV9OVU1CRVIgZmllbGQgKGNvdWxkIGJlIEp1bGlhbiBkYXkgIykuIC0gYWxpdV0KKyAgICAgICAgICAgIGludCBtaWxsaXNJbkRheSA9IGludGVybmFsR2V0KE1JTExJU0VDT05EKSArIDEwMDAgKiAoaW50ZXJuYWxHZXQoU0VDT05EKSArCisgICAgICAgICAgICAgICAgNjAgKiAoaW50ZXJuYWxHZXQoTUlOVVRFKSArIDYwICogaW50ZXJuYWxHZXQoSE9VUl9PRl9EQVkpKSk7CisgICAgICAgICAgICBpbnQgdHJhbnNpdGlvbiA9IGdldFdlZWtlbmRUcmFuc2l0aW9uKGRvdyk7CisgICAgICAgICAgICByZXR1cm4gKGRvd3QgPT0gV0VFS0VORF9PTlNFVCkKKyAgICAgICAgICAgICAgICA/IChtaWxsaXNJbkRheSA+PSB0cmFuc2l0aW9uKQorICAgICAgICAgICAgICAgIDogKG1pbGxpc0luRGF5IDwgIHRyYW5zaXRpb24pOworICAgICAgICB9CisgICAgICAgIC8vIChXZSBjYW4gbmV2ZXIgcmVhY2ggdGhpcyBwb2ludC4pCisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIG9mIHdlZWtlbmQgc3VwcG9ydAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENhbGVuZGFyIG90aGVyID0gKENhbGVuZGFyKSBzdXBlci5jbG9uZSgpOworCisgICAgICAgICAgICBvdGhlci5maWVsZHMgPSBuZXcgaW50W2ZpZWxkcy5sZW5ndGhdOworICAgICAgICAgICAgb3RoZXIuc3RhbXAgPSBuZXcgaW50W2ZpZWxkcy5sZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0aGlzLmZpZWxkcywgMCwgb3RoZXIuZmllbGRzLCAwLCBmaWVsZHMubGVuZ3RoKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGhpcy5zdGFtcCwgMCwgb3RoZXIuc3RhbXAsIDAsIGZpZWxkcy5sZW5ndGgpOworCisgICAgICAgICAgICBvdGhlci56b25lID0gKFRpbWVab25lKSB6b25lLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkbid0IGhhcHBlbiwgc2luY2Ugd2UgYXJlIENsb25lYWJsZQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuIFRoaXMgbWV0aG9kCisgICAgICogaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGFuZCB0aGUKKyAgICAgKiBmb3JtYXQgb2YgdGhlIHJldHVybmVkIHN0cmluZyBtYXkgdmFyeSBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucy4KKyAgICAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIG1heSBiZSBlbXB0eSBidXQgbWF5IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChnZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlt0aW1lPSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGlzVGltZVNldCA/IFN0cmluZy52YWx1ZU9mKHRpbWUpIDogIj8iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLGFyZUZpZWxkc1NldD0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChhcmVGaWVsZHNTZXQpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsYXJlQWxsRmllbGRzU2V0PSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGFyZUFsbEZpZWxkc1NldCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixsZW5pZW50PSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGxlbmllbnQpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsem9uZT0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCh6b25lKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLGZpcnN0RGF5T2ZXZWVrPSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGZpcnN0RGF5T2ZXZWVrKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLG1pbmltYWxEYXlzSW5GaXJzdFdlZWs9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQobWluaW1hbERheXNJbkZpcnN0V2Vlayk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxmaWVsZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJywnKS5hcHBlbmQoRklFTERfTkFNRVtpXSkuYXBwZW5kKCc9Jyk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGlzU2V0KGkpID8gU3RyaW5nLnZhbHVlT2YoZmllbGRzW2ldKSA6ICI/Iik7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLmFwcGVuZCgnXScpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGNsYXNzIHRoYXQgaG9sZHMgY2FjaGVkIGxvY2FsZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFdlZWtEYXRhIHsKKyAgICAgICAgcHVibGljIGludCBmaXJzdERheU9mV2VlazsKKyAgICAgICAgcHVibGljIGludCBtaW5pbWFsRGF5c0luRmlyc3RXZWVrOworICAgICAgICBwdWJsaWMgaW50IHdlZWtlbmRPbnNldDsKKyAgICAgICAgcHVibGljIGludCB3ZWVrZW5kT25zZXRNaWxsaXM7CisgICAgICAgIHB1YmxpYyBpbnQgd2Vla2VuZENlYXNlOworICAgICAgICBwdWJsaWMgaW50IHdlZWtlbmRDZWFzZU1pbGxpczsKKyAgICAgICAgcHVibGljIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworICAgICAgICBwdWJsaWMgV2Vla0RhdGEoaW50IGZkb3csIGludCBtZGlmdywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB3ZWVrZW5kT25zZXQsIGludCB3ZWVrZW5kT25zZXRNaWxsaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2Vla2VuZENlYXNlLCBpbnQgd2Vla2VuZENlYXNlTWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBhY3R1YWxMb2MpIHsKKyAgICAgICAgICAgIHRoaXMuZmlyc3REYXlPZldlZWsgPSBmZG93OworICAgICAgICAgICAgdGhpcy5taW5pbWFsRGF5c0luRmlyc3RXZWVrID0gbWRpZnc7CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbExvYzsKKyAgICAgICAgICAgIHRoaXMud2Vla2VuZE9uc2V0ID0gd2Vla2VuZE9uc2V0OworICAgICAgICAgICAgdGhpcy53ZWVrZW5kT25zZXRNaWxsaXMgPSB3ZWVrZW5kT25zZXRNaWxsaXM7CisgICAgICAgICAgICB0aGlzLndlZWtlbmRDZWFzZSA9IHdlZWtlbmRDZWFzZTsKKyAgICAgICAgICAgIHRoaXMud2Vla2VuZENlYXNlTWlsbGlzID0gd2Vla2VuZENlYXNlTWlsbGlzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGNhbGVuZGFyIHRvIGNvbnRhaW4gd2VlayBhbmQgd2Vla2VuZCBkYXRhIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldFdlZWtEYXRhKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgLyogdHJ5IHRvIGdldCB0aGUgTG9jYWxlIGRhdGEgZnJvbSB0aGUgY2FjaGUgKi8KKyAgICAgICAgV2Vla0RhdGEgZGF0YSA9IChXZWVrRGF0YSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQobG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChkYXRhID09IG51bGwpIHsgIC8qIGNhY2hlIG1pc3MgKi8KKworICAgICAgICAgICAgQ2FsZW5kYXJEYXRhIGNhbERhdGEgPSBuZXcgQ2FsZW5kYXJEYXRhKGxvY2FsZSwgZ2V0VHlwZSgpKTsKKyAgICAgICAgICAgIGludFtdIGRhdGVUaW1lRWxlbWVudHMgPSBjYWxEYXRhLmdldCgiRGF0ZVRpbWVFbGVtZW50cyIpLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgaW50W10gd2Vla2VuZCA9IGNhbERhdGEuZ2V0KCJ3ZWVrZW5kIikuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBkYXRhID0gbmV3IFdlZWtEYXRhKGRhdGVUaW1lRWxlbWVudHNbMF0sZGF0ZVRpbWVFbGVtZW50c1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2VuZFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2VuZFsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2VuZFsyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2VuZFszXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsRGF0YS5nZXRVTG9jYWxlKCkpOworICAgICAgICAgICAgLyogY2FjaGUgdXBkYXRlICovCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChsb2NhbGUsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIHNldEZpcnN0RGF5T2ZXZWVrKGRhdGEuZmlyc3REYXlPZldlZWspOworICAgICAgICBzZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGRhdGEubWluaW1hbERheXNJbkZpcnN0V2Vlayk7CisgICAgICAgIHdlZWtlbmRPbnNldCAgICAgICA9IGRhdGEud2Vla2VuZE9uc2V0OworICAgICAgICB3ZWVrZW5kT25zZXRNaWxsaXMgPSBkYXRhLndlZWtlbmRPbnNldE1pbGxpczsKKyAgICAgICAgd2Vla2VuZENlYXNlICAgICAgID0gZGF0YS53ZWVrZW5kQ2Vhc2U7CisgICAgICAgIHdlZWtlbmRDZWFzZU1pbGxpcyA9IGRhdGEud2Vla2VuZENlYXNlTWlsbGlzOworCisgICAgICAgIC8vIFRPRE86IGRldGVybWluZSB0aGUgYWN0dWFsL3ZhbGlkIGxvY2FsZQorICAgICAgICBVTG9jYWxlIHVsb2MgPSBkYXRhLmFjdHVhbExvY2FsZTsKKyAgICAgICAgc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY29tcHV0ZSB0aGUgdGltZSBhbmQgdXBkYXRlIHRoZSBzdGF0dXMgZmllbGRzIGlzVGltZVNldAorICAgICAqIGFuZCBhcmVGaWVsZHNTZXQuICBDYWxsZXJzIHNob3VsZCBjaGVjayBpc1RpbWVTZXQgYW5kIG9ubHkKKyAgICAgKiBjYWxsIHRoaXMgbWV0aG9kIGlmIGlzVGltZVNldCBpcyBmYWxzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlVGltZSgpIHsKKyAgICAgICAgY29tcHV0ZVRpbWUoKTsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGxlbmllbnQsIHdlIG5lZWQgdG8gcmVjb21wdXRlIHRoZSBmaWVsZHMgdG8gbm9ybWFsaXplCisgICAgICAgIC8vIHRoZSB2YWx1ZXMuICBBbHNvLCBpZiB3ZSBoYXZlbid0IHNldCBhbGwgdGhlIGZpZWxkcyB5ZXQgKGkuZS4sCisgICAgICAgIC8vIGluIGEgbmV3bHktY3JlYXRlZCBvYmplY3QpLCB3ZSBuZWVkIHRvIGZpbGwgaW4gdGhlIGZpZWxkcy4gW0xJVV0KKyAgICAgICAgaWYgKGlzTGVuaWVudCgpIHx8ICFhcmVBbGxGaWVsZHNTZXQpIGFyZUZpZWxkc1NldCA9IGZhbHNlOworICAgICAgICBpc1RpbWVTZXQgPSB0cnVlOworICAgICAgICBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSBzdGF0ZSBvZiB0aGlzIG9iamVjdCB0byBhIHN0cmVhbSAoaS5lLiwgc2VyaWFsaXplIGl0KS4KKyAgICAgKgorICAgICAqIElkZWFsbHksIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiB3b3VsZCBvbmx5IHdyaXRlIG91dCBpdHMgc3RhdGUgZGF0YSBhbmQKKyAgICAgKiB0aGUgY3VycmVudCB0aW1lLCBhbmQgbm90IHdyaXRlIGFueSBmaWVsZCBkYXRhIG91dCwgc3VjaCBhcworICAgICAqIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiwgPGNvZGU+aXNUaW1lU2V0PC9jb2RlPiwgPGNvZGU+YXJlRmllbGRzU2V0PC9jb2RlPiwKKyAgICAgKiBhbmQgPGNvZGU+aXNTZXRbXTwvY29kZT4uICA8Y29kZT5uZXh0U3RhbXA8L2NvZGU+IGFsc28gc2hvdWxkIG5vdCBiZSBwYXJ0CisgICAgICogb2YgdGhlIHBlcnNpc3RlbnQgc3RhdGUuIFVuZm9ydHVuYXRlbHksIHRoaXMgZGlkbid0IGhhcHBlbiBiZWZvcmUgSkRLIDEuMQorICAgICAqIHNoaXBwZWQuIFRvIGJlIGNvbXBhdGlibGUgd2l0aCBKREsgMS4xLCB3ZSB3aWxsIGFsd2F5cyBoYXZlIHRvIHdyaXRlIG91dAorICAgICAqIHRoZSBmaWVsZCB2YWx1ZXMgYW5kIHN0YXRlIGZsYWdzLiAgSG93ZXZlciwgPGNvZGU+bmV4dFN0YW1wPC9jb2RlPiBjYW4gYmUKKyAgICAgKiByZW1vdmVkIGZyb20gdGhlIHNlcmlhbGl6YXRpb24gc3RyZWFtOyB0aGlzIHdpbGwgcHJvYmFibHkgaGFwcGVuIGluIHRoZQorICAgICAqIG5lYXIgZnV0dXJlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChPYmplY3RPdXRwdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBUcnkgdG8gY29tcHV0ZSB0aGUgdGltZSBjb3JyZWN0bHksIGZvciB0aGUgZnV0dXJlIChzdHJlYW0KKyAgICAgICAgLy8gdmVyc2lvbiAyKSBpbiB3aGljaCB3ZSBkb24ndCB3cml0ZSBvdXQgZmllbGRzW10gb3IgaXNTZXRbXS4KKyAgICAgICAgaWYgKCFpc1RpbWVTZXQpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdXBkYXRlVGltZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSAxLjEgRkNTIG9iamVjdC4KKyAgICAgICAgc3RyZWFtLmRlZmF1bHRXcml0ZU9iamVjdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY29uc3RpdHV0ZSB0aGlzIG9iamVjdCBmcm9tIGEgc3RyZWFtIChpLmUuLCBkZXNlcmlhbGl6ZSBpdCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworCisgICAgICAgIGluaXRJbnRlcm5hbCgpOworCisgICAgICAgIGlzVGltZVNldCA9IHRydWU7CisgICAgICAgIGFyZUZpZWxkc1NldCA9IGFyZUFsbEZpZWxkc1NldCA9IGZhbHNlOworICAgICAgICBuZXh0U3RhbXAgPSBNSU5JTVVNX1VTRVJfU1RBTVA7CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIC0+IEZpZWxkcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGN1cnJlbnQgbWlsbGlzZWNvbmQgdGltZSB2YWx1ZSA8Y29kZT50aW1lPC9jb2RlPiB0bworICAgICAqIGZpZWxkIHZhbHVlcyBpbiA8Y29kZT5maWVsZHNbXTwvY29kZT4uICBUaGlzIHN5bmNocm9uaXplcyB0aGUgdGltZQorICAgICAqIGZpZWxkIHZhbHVlcyB3aXRoIGEgbmV3IHRpbWUgdGhhdCBpcyBzZXQgZm9yIHRoZSBjYWxlbmRhci4gIFRoZSB0aW1lCisgICAgICogaXMgPGVtPm5vdDwvZW0+IHJlY29tcHV0ZWQgZmlyc3Q7IHRvIHJlY29tcHV0ZSB0aGUgdGltZSwgdGhlbiB0aGUKKyAgICAgKiBmaWVsZHMsIGNhbGwgdGhlIDxjb2RlPmNvbXBsZXRlPC9jb2RlPiBtZXRob2QuCisgICAgICogQHNlZSAjY29tcGxldGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjb21wdXRlRmllbGRzKCkgeworICAgICAgICBpbnQgb2Zmc2V0c1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgZ2V0VGltZVpvbmUoKS5nZXRPZmZzZXQodGltZSwgZmFsc2UsIG9mZnNldHMpOworICAgICAgICBsb25nIGxvY2FsTWlsbGlzID0gdGltZSArIG9mZnNldHNbMF0gKyBvZmZzZXRzWzFdOworCisgICAgICAgIC8vIE1hcmsgZmllbGRzIGFzIHNldC4gIERvIHRoaXMgYmVmb3JlIGNhbGxpbmcgaGFuZGxlQ29tcHV0ZUZpZWxkcygpLgorICAgICAgICBpbnQgbWFzayA9IGludGVybmFsU2V0TWFzazsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKChtYXNrICYgMSkgPT0gMCkgeworICAgICAgICAgICAgICAgIHN0YW1wW2ldID0gSU5URVJOQUxMWV9TRVQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YW1wW2ldID0gVU5TRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXNrID4+PSAxOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgdXNlZCB0byBjaGVjayBmb3IgYW5kIGNvcnJlY3QgZXh0cmVtZSBtaWxsaXMgdmFsdWVzIChuZWFyCisgICAgICAgIC8vIExvbmcuTUlOX1ZBTFVFIG9yIExvbmcuTUFYX1ZBTFVFKSBoZXJlLiAgU3VjaCB2YWx1ZXMgd291bGQgY2F1c2UKKyAgICAgICAgLy8gb3ZlcmZsb3dzIGZyb20gcG9zaXRpdmUgdG8gbmVnYXRpdmUgKG9yIHZpY2UgdmVyc2EpIGFuZCBoYWQgdG8KKyAgICAgICAgLy8gYmUgbWFudWFsbHkgdHdlYWtlZC4gIFdlIG5vIGxvbmdlciBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZQorICAgICAgICAvLyBoYXZlIGxpbWl0ZWQgdGhlIHJhbmdlIG9mIHN1cHBvcnRlZCBkYXRlcyB0byB0aG9zZSB0aGF0IGhhdmUgYQorICAgICAgICAvLyBKdWxpYW4gZGF5IHRoYXQgZml0cyBpbnRvIGFuIGludC4gIFRoaXMgYWxsb3dzIHVzIHRvIGltcGxlbWVudCBhCisgICAgICAgIC8vIEpVTElBTl9EQVkgZmllbGQgYW5kIGFsc28gcmVtb3ZlcyBzb21lIGluZWxlZ2FudCBjb2RlLiAtIExpdQorICAgICAgICAvLyAxMS82LzAwCisKKyAgICAgICAgbG9uZyBkYXlzID0gZmxvb3JEaXZpZGUobG9jYWxNaWxsaXMsIE9ORV9EQVkpOworCisgICAgICAgIGZpZWxkc1tKVUxJQU5fREFZXSA9IChpbnQpIGRheXMgKyBFUE9DSF9KVUxJQU5fREFZOworCisgICAgICAgIC8vIEluIHNvbWUgY2FzZXMgd2Ugd2lsbCBoYXZlIHRvIGNhbGwgdGhpcyBtZXRob2QgYWdhaW4gYmVsb3cgdG8KKyAgICAgICAgLy8gYWRqdXN0IGZvciBEU1QgcHVzaGluZyB1cyBpbnRvIHRoZSBuZXh0IEp1bGlhbiBkYXkuCisgICAgICAgIGNvbXB1dGVHcmVnb3JpYW5BbmRET1dGaWVsZHMoZmllbGRzW0pVTElBTl9EQVldKTsKKworICAgICAgICAvLyBDYWxsIGZyYW1ld29yayBtZXRob2QgdG8gaGF2ZSBzdWJjbGFzcyBjb21wdXRlIGl0cyBmaWVsZHMuCisgICAgICAgIC8vIFRoZXNlIG11c3QgaW5jbHVkZSwgYXQgYSBtaW5pbXVtLCBNT05USCwgREFZX09GX01PTlRILAorICAgICAgICAvLyBFWFRFTkRFRF9ZRUFSLCBZRUFSLCBEQVlfT0ZfWUVBUi4gIFRoaXMgbWV0aG9kIHdpbGwgY2FsbCBpbnRlcm5hbFNldCgpLAorICAgICAgICAvLyB3aGljaCB3aWxsIHVwZGF0ZSBzdGFtcFtdLgorICAgICAgICBoYW5kbGVDb21wdXRlRmllbGRzKGZpZWxkc1tKVUxJQU5fREFZXSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB3ZWVrLXJlbGF0ZWQgZmllbGRzLCBiYXNlZCBvbiB0aGUgc3ViY2xhc3MtY29tcHV0ZWQKKyAgICAgICAgLy8gZmllbGRzIGNvbXB1dGVkIGJ5IGhhbmRsZUNvbXB1dGVGaWVsZHMoKS4KKyAgICAgICAgY29tcHV0ZVdlZWtGaWVsZHMoKTsKKworICAgICAgICAvLyBDb21wdXRlIHRpbWUtcmVsYXRlZCBmaWVsZHMuICBUaGVzZSBhcmUgaW5kZXBlbnQgb2YgdGhlIGRhdGUgYW5kCisgICAgICAgIC8vIG9mIHRoZSBzdWJjbGFzcyBhbGdvcml0aG0uICBUaGV5IGRlcGVuZCBvbmx5IG9uIHRoZSBsb2NhbCB6b25lCisgICAgICAgIC8vIHdhbGwgbWlsbGlzZWNvbmRzIGluIGRheS4KKyAgICAgICAgaW50IG1pbGxpc0luRGF5ID0gKGludCkgKGxvY2FsTWlsbGlzIC0gKGRheXMgKiBPTkVfREFZKSk7CisgICAgICAgIGZpZWxkc1tNSUxMSVNFQ09ORFNfSU5fREFZXSA9IG1pbGxpc0luRGF5OworICAgICAgICBmaWVsZHNbTUlMTElTRUNPTkRdID0gbWlsbGlzSW5EYXkgJSAxMDAwOworICAgICAgICBtaWxsaXNJbkRheSAvPSAxMDAwOworICAgICAgICBmaWVsZHNbU0VDT05EXSA9IG1pbGxpc0luRGF5ICUgNjA7CisgICAgICAgIG1pbGxpc0luRGF5IC89IDYwOworICAgICAgICBmaWVsZHNbTUlOVVRFXSA9IG1pbGxpc0luRGF5ICUgNjA7CisgICAgICAgIG1pbGxpc0luRGF5IC89IDYwOworICAgICAgICBmaWVsZHNbSE9VUl9PRl9EQVldID0gbWlsbGlzSW5EYXk7CisgICAgICAgIGZpZWxkc1tBTV9QTV0gPSBtaWxsaXNJbkRheSAvIDEyOyAvLyBBc3N1bWUgQU0gPT0gMAorICAgICAgICBmaWVsZHNbSE9VUl0gPSBtaWxsaXNJbkRheSAlIDEyOworICAgICAgICBmaWVsZHNbWk9ORV9PRkZTRVRdID0gb2Zmc2V0c1swXTsKKyAgICAgICAgZmllbGRzW0RTVF9PRkZTRVRdID0gb2Zmc2V0c1sxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgeWVhciwgbW9udGgsIGFuZCBkYXkgb2YgbW9udGggZnJvbQorICAgICAqIHRoZSBnaXZlbiBKdWxpYW4gZGF5LiAgVGhlc2UgdmFsdWVzIGFyZSBub3Qgc3RvcmVkIGluIGZpZWxkcywgYnV0IGluCisgICAgICogbWVtYmVyIHZhcmlhYmxlcyBncmVnb3JpYW5YeHguICBBbHNvIGNvbXB1dGUgdGhlIERBWV9PRl9XRUVLIGFuZAorICAgICAqIERPV19MT0NBTCBmaWVsZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGNvbXB1dGVHcmVnb3JpYW5BbmRET1dGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGp1bGlhbkRheSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSBkYXkgb2Ygd2VlazogSkQgMCA9IE1vbmRheQorICAgICAgICBpbnQgZG93ID0gZmllbGRzW0RBWV9PRl9XRUVLXSA9IGp1bGlhbkRheVRvRGF5T2ZXZWVrKGp1bGlhbkRheSk7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIDEtYmFzZWQgbG9jYWxpemVkIGRheSBvZiB3ZWVrCisgICAgICAgIGludCBkb3dMb2NhbCA9IGRvdyAtIGdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxOworICAgICAgICBpZiAoZG93TG9jYWwgPCAxKSB7CisgICAgICAgICAgICBkb3dMb2NhbCArPSA3OworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tET1dfTE9DQUxdID0gZG93TG9jYWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHllYXIsIG1vbnRoLCBhbmQgZGF5IG9mIG1vbnRoIGZyb20gdGhlCisgICAgICogSnVsaWFuIGRheS4gIFRoZXNlIHZhbHVlcyBhcmUgbm90IHN0b3JlZCBpbiBmaWVsZHMsIGJ1dCBpbiBtZW1iZXIKKyAgICAgKiB2YXJpYWJsZXMgZ3JlZ29yaWFuWHh4LiAgVGhleSBhcmUgdXNlZCBmb3IgdGltZSB6b25lIGNvbXB1dGF0aW9ucyBhbmQgYnkKKyAgICAgKiBzdWJjbGFzc2VzIHRoYXQgYXJlIEdyZWdvcmlhbiBkZXJpdmF0aXZlcy4gIFN1YmNsYXNzZXMgbWF5IGNhbGwgdGhpcworICAgICAqIG1ldGhvZCB0byBwZXJmb3JtIGEgR3JlZ29yaWFuIGNhbGVuZGFyIG1pbGxpcy0+ZmllbGRzIGNvbXB1dGF0aW9uLgorICAgICAqIFRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIgZmllbGRzLT5taWxsaXMgY29tcHV0YXRpb24sIGNhbGwKKyAgICAgKiBjb21wdXRlR3JlZ29yaWFuTW9udGhTdGFydCgpLgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5Nb250aFN0YXJ0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGludCB5ZWFyLCBtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZZZWFyOworCisgICAgICAgIC8vIFRoZSBHcmVnb3JpYW4gZXBvY2ggZGF5IGlzIHplcm8gZm9yIE1vbmRheSBKYW51YXJ5IDEsIHllYXIgMS4KKyAgICAgICAgbG9uZyBncmVnb3JpYW5FcG9jaERheSA9IGp1bGlhbkRheSAtIEpBTl8xXzFfSlVMSUFOX0RBWTsKKworICAgICAgICAvLyBIZXJlIHdlIGNvbnZlcnQgZnJvbSB0aGUgZGF5IG51bWJlciB0byB0aGUgbXVsdGlwbGUgcmFkaXgKKyAgICAgICAgLy8gcmVwcmVzZW50YXRpb24uICBXZSB1c2UgNDAwLXllYXIsIDEwMC15ZWFyLCBhbmQgNC15ZWFyIGN5Y2xlcy4KKyAgICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSA0LXllYXIgY3ljbGUgaGFzIDQgeWVhcnMgKyAxIGxlYXAgZGF5OyBnaXZpbmcKKyAgICAgICAgLy8gMTQ2MSA9PSAzNjUqNCArIDEgZGF5cy4KKyAgICAgICAgaW50W10gcmVtID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IG40MDAgPSBmbG9vckRpdmlkZShncmVnb3JpYW5FcG9jaERheSwgMTQ2MDk3LCByZW0pOyAvLyA0MDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG4xMDAgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NTI0LCByZW0pOyAvLyAxMDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG40ID0gZmxvb3JEaXZpZGUocmVtWzBdLCAxNDYxLCByZW0pOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMSA9IGZsb29yRGl2aWRlKHJlbVswXSwgMzY1LCByZW0pOworICAgICAgICB5ZWFyID0gNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMTsKKyAgICAgICAgZGF5T2ZZZWFyID0gcmVtWzBdOyAvLyB6ZXJvLWJhc2VkIGRheSBvZiB5ZWFyCisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZGF5T2ZZZWFyID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ciBjeWNsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoKHllYXImMHgzKSA9PSAwKSAmJiAvLyBlcXVpdi4gdG8gKHllYXIlNCA9PSAwKQorICAgICAgICAgICAgKHllYXIlMTAwICE9IDAgfHwgeWVhciU0MDAgPT0gMCk7CisKKyAgICAgICAgaW50IGNvcnJlY3Rpb24gPSAwOworICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIGNvcnJlY3Rpb24gPSBpc0xlYXAgPyAxIDogMjsKKyAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0KKyAgICAgICAgICAgIEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzM6Ml0gKyAxOyAvLyBvbmUtYmFzZWQgRE9NCisKKyAgICAgICAgZ3JlZ29yaWFuWWVhciA9IHllYXI7CisgICAgICAgIGdyZWdvcmlhbk1vbnRoID0gbW9udGg7IC8vIDAtYmFzZWQgYWxyZWFkeQorICAgICAgICBncmVnb3JpYW5EYXlPZk1vbnRoID0gZGF5T2ZNb250aDsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIGdyZWdvcmlhbkRheU9mWWVhciA9IGRheU9mWWVhciArIDE7IC8vIENvbnZlcnQgZnJvbSAwLWJhc2VkIHRvIDEtYmFzZWQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBmaWVsZHMgV0VFS19PRl9ZRUFSLCBZRUFSX1dPWSwgV0VFS19PRl9NT05USCwKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCwgYW5kIERPV19MT0NBTCBmcm9tIEVYVEVOREVEX1lFQVIsIFlFQVIsCisgICAgICogREFZX09GX1dFRUssIGFuZCBEQVlfT0ZfWUVBUi4gIFRoZSBsYXR0ZXIgZmllbGRzIGFyZSBjb21wdXRlZCBieSB0aGUKKyAgICAgKiBzdWJjbGFzcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqCisgICAgICogPHA+VGhlIFlFQVJfV09ZIGZpZWxkIGlzIGNvbXB1dGVkIHNpbXBsaXN0aWNhbGx5LiAgSXQgaXMgZXF1YWwgdG8gWUVBUgorICAgICAqIG1vc3Qgb2YgdGhlIHRpbWUsIGJ1dCBhdCB0aGUgeWVhciBib3VuZGFyeSBpdCBtYXkgYmUgYWRqdXN0ZWQgdG8gWUVBUi0xCisgICAgICogb3IgWUVBUisxIHRvIHJlZmxlY3QgdGhlIG92ZXJsYXAgb2YgYSB3ZWVrIGludG8gYW4gYWRqYWNlbnQgeWVhci4gIEluCisgICAgICogdGhpcyBjYXNlLCBhIHNpbXBsZSBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGlzIHBlcmZvcm1lZCBvbiBZRUFSLCBldmVuCisgICAgICogdGhvdWdoIHRoaXMgbWF5IHlpZWxkIGFuIGludmFsaWQgWUVBUiB2YWx1ZS4gIEZvciBpbnN0YW5jZSwgaWYgdGhlIFlFQVIKKyAgICAgKiBpcyBwYXJ0IG9mIGEgY2FsZW5kYXIgc3lzdGVtIHdpdGggYW4gTi15ZWFyIGN5Y2xlIGZpZWxkIENZQ0xFLCB0aGVuCisgICAgICogaW5jcmVtZW50aW5nIHRoZSBZRUFSIG1heSBpbnZvbHZlIGluY3JlbWVudGluZyBDWUNMRSBhbmQgc2V0dGluZyBZRUFSCisgICAgICogYmFjayB0byAwIG9yIDEuICBUaGlzIGlzIG5vdCBoYW5kbGVkIGJ5IHRoaXMgY29kZSwgYW5kIGluIGZhY3QgY2Fubm90IGJlCisgICAgICogc2ltcGx5IGhhbmRsZWQgd2l0aG91dCBoYXZpbmcgc3ViY2xhc3NlcyBkZWZpbmUgYW4gZW50aXJlIHBhcmFsbGVsIHNldCBvZgorICAgICAqIGZpZWxkcyBmb3IgZmllbGRzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIGEgeWVhci4gIFRoaXMgYWRkaXRpb25hbAorICAgICAqIGNvbXBsZXhpdHkgaXMgbm90IHdhcnJhbnRlZCwgc2luY2UgdGhlIGludGVudGlvbiBvZiB0aGUgWUVBUl9XT1kgZmllbGQgaXMKKyAgICAgKiB0byBzdXBwb3J0IElTTyA4NjAxIG5vdGF0aW9uLCBzbyBpdCB3aWxsIHR5cGljYWxseSBiZSB1c2VkIHdpdGggYQorICAgICAqIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIsIHdoaWNoIGhhcyBubyBmaWVsZCBsYXJnZXIgdGhhbiBhIHllYXIuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGNvbXB1dGVXZWVrRmllbGRzKCkgeworICAgICAgICBpbnQgZXllYXIgPSBmaWVsZHNbRVhURU5ERURfWUVBUl07CisgICAgICAgIGludCB5ZWFyID0gZmllbGRzW1lFQVJdOworICAgICAgICBpbnQgZGF5T2ZXZWVrID0gZmllbGRzW0RBWV9PRl9XRUVLXTsKKyAgICAgICAgaW50IGRheU9mWWVhciA9IGZpZWxkc1tEQVlfT0ZfWUVBUl07CisKKyAgICAgICAgLy8gV0VFS19PRl9ZRUFSIHN0YXJ0CisgICAgICAgIC8vIENvbXB1dGUgdGhlIHdlZWsgb2YgdGhlIHllYXIuICBGb3IgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgdmFsaWQgd2VlaworICAgICAgICAvLyBudW1iZXJzIHJ1biBmcm9tIDEgdG8gNTIgb3IgNTMsIGRlcGVuZGluZyBvbiB0aGUgeWVhciwgdGhlIGZpcnN0IGRheQorICAgICAgICAvLyBvZiB0aGUgd2VlaywgYW5kIHRoZSBtaW5pbWFsIGRheXMgaW4gdGhlIGZpcnN0IHdlZWsuICBGb3Igb3RoZXIKKyAgICAgICAgLy8gY2FsZW5kYXJzLCB0aGUgdmFsaWQgcmFuZ2UgbWF5IGJlIGRpZmZlcmVudCAtLSBpdCBkZXBlbmRzIG9uIHRoZSB5ZWFyCisgICAgICAgIC8vIGxlbmd0aC4gIERheXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSB5ZWFyIG1heSBmYWxsIGludG8gdGhlIGxhc3Qgd2VlayBvZgorICAgICAgICAvLyB0aGUgcHJldmlvdXMgeWVhcjsgZGF5cyBhdCB0aGUgZW5kIG9mIHRoZSB5ZWFyIG1heSBmYWxsIGludG8gdGhlCisgICAgICAgIC8vIGZpcnN0IHdlZWsgb2YgdGhlIG5leHQgeWVhci4gIEFTU1VNRSB0aGF0IHRoZSB5ZWFyIGxlbmd0aCBpcyBsZXNzIHRoYW4KKyAgICAgICAgLy8gNzAwMCBkYXlzLgorICAgICAgICBpbnQgeWVhck9mV2Vla09mWWVhciA9IHllYXI7CisgICAgICAgIGludCByZWxEb3cgPSAoZGF5T2ZXZWVrICsgNyAtIGdldEZpcnN0RGF5T2ZXZWVrKCkpICUgNzsgLy8gMC4uNgorICAgICAgICBpbnQgcmVsRG93SmFuMSA9IChkYXlPZldlZWsgLSBkYXlPZlllYXIgKyA3MDAxIC0gZ2V0Rmlyc3REYXlPZldlZWsoKSkgJSA3OyAvLyAwLi42CisgICAgICAgIGludCB3b3kgPSAoZGF5T2ZZZWFyIC0gMSArIHJlbERvd0phbjEpIC8gNzsgLy8gMC4uNTMKKyAgICAgICAgaWYgKCg3IC0gcmVsRG93SmFuMSkgPj0gZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSB7CisgICAgICAgICAgICArK3dveTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkanVzdCBmb3Igd2Vla3MgYXQgdGhlIHllYXIgZW5kIHRoYXQgb3ZlcmxhcCBpbnRvIHRoZSBwcmV2aW91cyBvcgorICAgICAgICAvLyBuZXh0IGNhbGVuZGFyIHllYXIuCisgICAgICAgIGlmICh3b3kgPT0gMCkgeworICAgICAgICAgICAgLy8gV2UgYXJlIHRoZSBsYXN0IHdlZWsgb2YgdGhlIHByZXZpb3VzIHllYXIuCisgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgYXJlIGluIHRoZSBsYXN0IHdlZWs7IGlmIHNvLCB3ZSBuZWVkCisgICAgICAgICAgICAvLyB0byBoYW5kbGUgdGhlIGNhc2UgaW4gd2hpY2ggd2UgYXJlIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZQorICAgICAgICAgICAgLy8gbmV4dCB5ZWFyLgorCisgICAgICAgICAgICBpbnQgcHJldkRveSA9IGRheU9mWWVhciArIGhhbmRsZUdldFllYXJMZW5ndGgoZXllYXIgLSAxKTsKKyAgICAgICAgICAgIHdveSA9IHdlZWtOdW1iZXIocHJldkRveSwgZGF5T2ZXZWVrKTsKKyAgICAgICAgICAgIHllYXJPZldlZWtPZlllYXItLTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBsYXN0RG95ID0gaGFuZGxlR2V0WWVhckxlbmd0aChleWVhcik7CisgICAgICAgICAgICAvLyBGYXN0IGNoZWNrOiBGb3IgaXQgdG8gYmUgd2VlayAxIG9mIHRoZSBuZXh0IHllYXIsIHRoZSBET1kKKyAgICAgICAgICAgIC8vIG11c3QgYmUgb24gb3IgYWZ0ZXIgTC01LCB3aGVyZSBMIGlzIHllYXJMZW5ndGgoKSwgdGhlbiBpdAorICAgICAgICAgICAgLy8gY2Fubm90IHBvc3NpYmx5IGJlIHdlZWsgMSBvZiB0aGUgbmV4dCB5ZWFyOgorICAgICAgICAgICAgLy8gICAgICAgICAgTC01ICAgICAgICAgICAgICAgICAgTAorICAgICAgICAgICAgLy8gZG95OiAzNTkgMzYwIDM2MSAzNjIgMzYzIDM2NCAzNjUgMDAxCisgICAgICAgICAgICAvLyBkb3c6ICAgICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNworICAgICAgICAgICAgaWYgKGRheU9mWWVhciA+PSAobGFzdERveSAtIDUpKSB7CisgICAgICAgICAgICAgICAgaW50IGxhc3RSZWxEb3cgPSAocmVsRG93ICsgbGFzdERveSAtIGRheU9mWWVhcikgJSA3OworICAgICAgICAgICAgICAgIGlmIChsYXN0UmVsRG93IDwgMCkgeworICAgICAgICAgICAgICAgICAgICBsYXN0UmVsRG93ICs9IDc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoKDYgLSBsYXN0UmVsRG93KSA+PSBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpICYmCisgICAgICAgICAgICAgICAgICAgICgoZGF5T2ZZZWFyICsgNyAtIHJlbERvdykgPiBsYXN0RG95KSkgeworICAgICAgICAgICAgICAgICAgICB3b3kgPSAxOworICAgICAgICAgICAgICAgICAgICB5ZWFyT2ZXZWVrT2ZZZWFyKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpZWxkc1tXRUVLX09GX1lFQVJdID0gd295OworICAgICAgICBmaWVsZHNbWUVBUl9XT1ldID0geWVhck9mV2Vla09mWWVhcjsKKyAgICAgICAgLy8gV0VFS19PRl9ZRUFSIGVuZAorCisgICAgICAgIGludCBkYXlPZk1vbnRoID0gZmllbGRzW0RBWV9PRl9NT05USF07CisgICAgICAgIGZpZWxkc1tXRUVLX09GX01PTlRIXSA9IHdlZWtOdW1iZXIoZGF5T2ZNb250aCwgZGF5T2ZXZWVrKTsKKyAgICAgICAgZmllbGRzW0RBWV9PRl9XRUVLX0lOX01PTlRIXSA9IChkYXlPZk1vbnRoLTEpIC8gNyArIDE7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRmllbGRzIC0+IFRpbWUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFZhbHVlIHRvIE9SIGFnYWluc3QgcmVzb2x2ZSB0YWJsZSBmaWVsZCB2YWx1ZXMgZm9yIHJlbWFwcGluZy4KKyAgICAgKiBAc2VlICNyZXNvbHZlRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgUkVTT0xWRV9SRU1BUCA9IDMyOworICAgIC8vIEEgcG93ZXIgb2YgMiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gTUFYX0ZJRUxEX0NPVU5UCisKKyAgICAvLyBEZWZhdWx0IHRhYmxlIGZvciBkYXkgaW4geWVhcgorICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdW10gREFURV9QUkVDRURFTkNFID0geworICAgICAgICB7CisgICAgICAgICAgICB7IERBWV9PRl9NT05USCB9LAorICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfWUVBUiB9LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRIIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRIIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgUkVTT0xWRV9SRU1BUCB8IERBWV9PRl9XRUVLX0lOX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIGludFtdW11bXSBET1dfUFJFQ0VERU5DRSA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgeyBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBET1dfTE9DQUwgfSwKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBwcmVjZWRlbmNlIHRhYmxlLCByZXR1cm4gdGhlIG5ld2VzdCBmaWVsZCBjb21iaW5hdGlvbiBpbgorICAgICAqIHRoZSB0YWJsZSwgb3IgLTEgaWYgbm9uZSBpcyBmb3VuZC4KKyAgICAgKgorICAgICAqIDxwPlRoZSBwcmVjZWRlbmNlIHRhYmxlIGlzIGEgMy1kaW1lbnNpb25hbCBhcnJheSBvZiBpbnRlZ2Vycy4gIEl0CisgICAgICogbWF5IGJlIHRob3VnaHQgb2YgYXMgYW4gYXJyYXkgb2YgZ3JvdXBzLiAgRWFjaCBncm91cCBpcyBhbiBhcnJheSBvZgorICAgICAqIGxpbmVzLiAgRWFjaCBsaW5lIGlzIGFuIGFycmF5IG9mIGZpZWxkIG51bWJlcnMuICBXaXRoaW4gYSBsaW5lLCBpZgorICAgICAqIGFsbCBmaWVsZHMgYXJlIHNldCwgdGhlbiB0aGUgdGltZSBzdGFtcCBvZiB0aGUgbGluZSBpcyB0YWtlbiB0byBiZQorICAgICAqIHRoZSBzdGFtcCBvZiB0aGUgbW9zdCByZWNlbnRseSBzZXQgZmllbGQuICBJZiBhbnkgZmllbGQgb2YgYSBsaW5lIGlzCisgICAgICogdW5zZXQsIHRoZW4gdGhlIGxpbmUgZmFpbHMgdG8gbWF0Y2guICBXaXRoaW4gYSBncm91cCwgdGhlIGxpbmUgd2l0aAorICAgICAqIHRoZSBuZXdlc3QgdGltZSBzdGFtcCBpcyBzZWxlY3RlZC4gIFRoZSBmaXJzdCBmaWVsZCBvZiB0aGUgbGluZSBpcworICAgICAqIHJldHVybmVkIHRvIGluZGljYXRlIHdoaWNoIGxpbmUgbWF0Y2hlZC4KKyAgICAgKgorICAgICAqIDxwPkluIHNvbWUgY2FzZXMsIGl0IG1heSBiZSBkZXNpcmFibGUgdG8gbWFwIGEgbGluZSB0byBmaWVsZCB0aGF0CisgICAgICogd2hvc2Ugc3RhbXAgaXMgTk9UIGV4YW1pbmVkLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBiZXN0IGZpZWxkIGlzCisgICAgICogREFZX09GX1dFRUsgdGhlbiB0aGUgREFZX09GX1dFRUtfSU5fTU9OVEggYWxnb3JpdGhtIG1heSBiZSB1c2VkLiAgSW4KKyAgICAgKiBvcmRlciB0byBkbyB0aGlzLCBpbnNlcnQgdGhlIHZhbHVlIDxjb2RlPlJFTUFQX1JFU09MVkUgfCBGPC9jb2RlPiBhdAorICAgICAqIHRoZSBzdGFydCBvZiB0aGUgbGluZSwgd2hlcmUgPGNvZGU+RjwvY29kZT4gaXMgdGhlIGRlc2lyZWQgcmV0dXJuCisgICAgICogZmllbGQgdmFsdWUuICBUaGlzIGZpZWxkIHdpbGwgTk9UIGJlIGV4YW1pbmVkOyBpdCBvbmx5IGRldGVybWluZXMKKyAgICAgKiB0aGUgcmV0dXJuIHZhbHVlIGlmIHRoZSBvdGhlciBmaWVsZHMgaW4gdGhlIGxpbmUgYXJlIHRoZSBuZXdlc3QuCisgICAgICoKKyAgICAgKiA8cD5JZiBhbGwgbGluZXMgb2YgYSBncm91cCBjb250YWluIGF0IGxlYXN0IG9uZSB1bnNldCBmaWVsZCwgdGhlbiBubworICAgICAqIGxpbmUgd2lsbCBtYXRjaCwgYW5kIHRoZSBncm91cCBhcyBhIHdob2xlIHdpbGwgZmFpbCB0byBtYXRjaC4gIEluCisgICAgICogdGhhdCBjYXNlLCB0aGUgbmV4dCBncm91cCB3aWxsIGJlIHByb2Nlc3NlZC4gIElmIGFsbCBncm91cHMgZmFpbCB0bworICAgICAqIG1hdGNoLCB0aGVuIC0xIGlzIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgcmVzb2x2ZUZpZWxkcyhpbnRbXVtdW10gcHJlY2VkZW5jZVRhYmxlKSB7CisgICAgICAgIGludCBiZXN0RmllbGQgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgZz0wOyBnPHByZWNlZGVuY2VUYWJsZS5sZW5ndGggJiYgYmVzdEZpZWxkIDwgMDsgKytnKSB7CisgICAgICAgICAgICBpbnRbXVtdIGdyb3VwID0gcHJlY2VkZW5jZVRhYmxlW2ddOworICAgICAgICAgICAgaW50IGJlc3RTdGFtcCA9IFVOU0VUOworICAgICAgICBsaW5lc0luR3JvdXA6CisgICAgICAgICAgICBmb3IgKGludCBsPTA7IGw8Z3JvdXAubGVuZ3RoOyArK2wpIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBsaW5lPSBncm91cFtsXTsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVN0YW1wID0gVU5TRVQ7CisgICAgICAgICAgICAgICAgLy8gU2tpcCBvdmVyIGZpcnN0IGVudHJ5IGlmIGl0IGlzIG5lZ2F0aXZlCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0obGluZVswXT49UkVTT0xWRV9SRU1BUCk/MTowOyBpPGxpbmUubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHMgPSBzdGFtcFtsaW5lW2ldXTsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW55IGZpZWxkIGlzIHVuc2V0IHRoZW4gZG9uJ3QgdXNlIHRoaXMgbGluZQorICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBVTlNFVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbGluZXNJbkdyb3VwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbGluZVN0YW1wID0gTWF0aC5tYXgobGluZVN0YW1wLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBSZWNvcmQgbmV3IG1heGltdW0gc3RhbXAgJiBmaWVsZCBuby4KKyAgICAgICAgICAgICAgICBpZiAobGluZVN0YW1wID4gYmVzdFN0YW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RTdGFtcCA9IGxpbmVTdGFtcDsKKyAgICAgICAgICAgICAgICAgICAgYmVzdEZpZWxkID0gbGluZVswXTsgLy8gRmlyc3QgZmllbGQgcmVmZXJzIHRvIGVudGlyZSBsaW5lCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAoYmVzdEZpZWxkPj1SRVNPTFZFX1JFTUFQKT8oYmVzdEZpZWxkJihSRVNPTFZFX1JFTUFQLTEpKTpiZXN0RmllbGQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuZXdlc3Qgc3RhbXAgb2YgYSBnaXZlbiByYW5nZSBvZiBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBuZXdlc3RTdGFtcChpbnQgZmlyc3QsIGludCBsYXN0LCBpbnQgYmVzdFN0YW1wU29GYXIpIHsKKyAgICAgICAgaW50IGJlc3RTdGFtcCA9IGJlc3RTdGFtcFNvRmFyOworICAgICAgICBmb3IgKGludCBpPWZpcnN0OyBpPD1sYXN0OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzdGFtcFtpXSA+IGJlc3RTdGFtcCkgeworICAgICAgICAgICAgICAgIGJlc3RTdGFtcCA9IHN0YW1wW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBiZXN0U3RhbXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0aW1lc3RhbXAgb2YgYSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldFN0YW1wKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gc3RhbXBbZmllbGRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmllbGQgdGhhdCBpcyBuZXdlciwgZWl0aGVyIGRlZmF1bHRGaWVsZCwgb3IKKyAgICAgKiBhbHRlcm5hdGVGaWVsZC4gIElmIG5laXRoZXIgaXMgbmV3ZXIgb3IgbmVpdGhlciBpcyBzZXQsIHJldHVybiBkZWZhdWx0RmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBuZXdlckZpZWxkKGludCBkZWZhdWx0RmllbGQsIGludCBhbHRlcm5hdGVGaWVsZCkgeworICAgICAgICBpZiAoc3RhbXBbYWx0ZXJuYXRlRmllbGRdID4gc3RhbXBbZGVmYXVsdEZpZWxkXSkgeworICAgICAgICAgICAgcmV0dXJuIGFsdGVybmF0ZUZpZWxkOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWZhdWx0RmllbGQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgZWFjaCBmaWVsZCBpcyB3aXRoaW4gaXRzIHZhbGlkIHJhbmdlIGJ5IGNhbGxpbmcge0BsaW5rCisgICAgICogI3ZhbGlkYXRlRmllbGQoaW50KX0gb24gZWFjaCBmaWVsZCB0aGF0IGhhcyBiZWVuIHNldC4gIFRoaXMgbWV0aG9kCisgICAgICogc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIHRoaXMgY2FsZW5kYXIgaXMgbm90IGxlbmllbnQuCisgICAgICogQHNlZSAjaXNMZW5pZW50CisgICAgICogQHNlZSAjdmFsaWRhdGVGaWVsZChpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgdmFsaWRhdGVGaWVsZHMoKSB7CisgICAgICAgIGZvciAoaW50IGZpZWxkID0gMDsgZmllbGQgPCBmaWVsZHMubGVuZ3RoOyBmaWVsZCsrKSB7CisgICAgICAgICAgICBpZiAoaXNTZXQoZmllbGQpKSB7CisgICAgICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChmaWVsZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYWxpZGF0ZSBhIHNpbmdsZSBmaWVsZCBvZiB0aGlzIGNhbGVuZGFyLiAgU3ViY2xhc3NlcyBzaG91bGQKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byB2YWxpZGF0ZSBhbnkgY2FsZW5kYXItc3BlY2lmaWMgZmllbGRzLgorICAgICAqIEdlbmVyaWMgZmllbGRzIGNhbiBiZSBoYW5kbGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIudmFsaWRhdGVGaWVsZCgpPC9jb2RlPi4KKyAgICAgKiBAc2VlICN2YWxpZGF0ZUZpZWxkKGludCwgaW50LCBpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgdmFsaWRhdGVGaWVsZChpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IHk7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfTU9OVEg6CisgICAgICAgICAgICB5ID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkLCAxLCBoYW5kbGVHZXRNb250aExlbmd0aCh5LCBpbnRlcm5hbEdldChNT05USCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICAgICAgeSA9IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpOworICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChmaWVsZCwgMSwgaGFuZGxlR2V0WWVhckxlbmd0aCh5KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFS19JTl9NT05USDoKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbEdldChmaWVsZCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRBWV9PRl9XRUVLX0lOX01PTlRIIGNhbm5vdCBiZSB6ZXJvIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkLCBnZXRNaW5pbXVtKGZpZWxkKSwgZ2V0TWF4aW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkLCBnZXRNaW5pbXVtKGZpZWxkKSwgZ2V0TWF4aW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYWxpZGF0ZSBhIHNpbmdsZSBmaWVsZCBvZiB0aGlzIGNhbGVuZGFyIGdpdmVuIGl0cyBtaW5pbXVtIGFuZAorICAgICAqIG1heGltdW0gYWxsb3dlZCB2YWx1ZS4gIElmIHRoZSBmaWVsZCBpcyBvdXQgb2YgcmFuZ2UsIHRocm93IGEKKyAgICAgKiBkZXNjcmlwdGl2ZSA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+LiAgU3ViY2xhc3NlcyBtYXkKKyAgICAgKiB1c2UgdGhpcyBtZXRob2QgaW4gdGhlaXIgaW1wbGVtZW50YXRpb24gb2Yge0BsaW5rCisgICAgICogI3ZhbGlkYXRlRmllbGQoaW50KX0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdmFsaWRhdGVGaWVsZChpbnQgZmllbGQsIGludCBtaW4sIGludCBtYXgpIHsKKyAgICAgICAgaW50IHZhbHVlID0gZmllbGRzW2ZpZWxkXTsKKyAgICAgICAgaWYgKHZhbHVlIDwgbWluIHx8IHZhbHVlID4gbWF4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGZpZWxkTmFtZShmaWVsZCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPScgKyB2YWx1ZSArICIsIHZhbGlkIHJhbmdlPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gKyAiLi4iICsgbWF4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjdXJyZW50IGZpZWxkIHZhbHVlcyBpbiA8Y29kZT5maWVsZHNbXTwvY29kZT4gdG8gdGhlCisgICAgICogbWlsbGlzZWNvbmQgdGltZSB2YWx1ZSA8Y29kZT50aW1lPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgIHByb3RlY3RlZCB2b2lkIGNvbXB1dGVUaW1lKCkgeworICAgICAgICBpZiAoIWlzTGVuaWVudCgpKSB7CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkcygpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgSnVsaWFuIGRheQorICAgICAgICBpbnQganVsaWFuRGF5ID0gY29tcHV0ZUp1bGlhbkRheSgpOworCisgICAgICAgIGxvbmcgbWlsbGlzID0ganVsaWFuRGF5VG9NaWxsaXMoanVsaWFuRGF5KTsKKworICAgICAgICBpbnQgbWlsbGlzSW5EYXk7CisKKyAgICAgICAgLy8gV2Ugb25seSB1c2UgTUlMTElTRUNPTkRTX0lOX0RBWSBpZiBpdCBoYXMgYmVlbiBzZXQgYnkgdGhlIHVzZXIuCisgICAgICAgIC8vIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBjYWxsZXIgdG8gc2V0IHRoZSBjYWxlbmRhciB0byBhCisgICAgICAgIC8vIHRpbWUgYW5kIGNhbGwgY2xlYXIoTU9OVEgpIHRvIHJlc2V0IHRoZSBNT05USCB0byBKYW51YXJ5LiAgVGhpcworICAgICAgICAvLyBpcyBsZWdhY3kgYmVoYXZpb3IuICBXaXRob3V0IHRoaXMsIGNsZWFyKE1PTlRIKSBoYXMgbm8gZWZmZWN0LAorICAgICAgICAvLyBzaW5jZSB0aGUgaW50ZXJuYWxseSBzZXQgSlVMSUFOX0RBWSBpcyB1c2VkLgorICAgICAgICBpZiAoc3RhbXBbTUlMTElTRUNPTkRTX0lOX0RBWV0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QICYmCisgICAgICAgICAgICBuZXdlc3RTdGFtcChBTV9QTSwgTUlMTElTRUNPTkQsIFVOU0VUKSA8PSBzdGFtcFtNSUxMSVNFQ09ORFNfSU5fREFZXSkgeworICAgICAgICAgICAgbWlsbGlzSW5EYXkgPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORFNfSU5fREFZKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5ID0gY29tcHV0ZU1pbGxpc0luRGF5KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wdXRlIHRoZSB0aW1lIHpvbmUgb2Zmc2V0IGFuZCBEU1Qgb2Zmc2V0LiAgVGhlcmUgYXJlIHR3byBwb3RlbnRpYWwKKyAgICAgICAgLy8gYW1iaWd1aXRpZXMgaGVyZS4gIFdlJ2xsIGFzc3VtZSBhIDI6MDAgYW0gKHdhbGwgdGltZSkgc3dpdGNob3ZlciB0aW1lCisgICAgICAgIC8vIGZvciBkaXNjdXNzaW9uIHB1cnBvc2VzIGhlcmUuCisgICAgICAgIC8vIDEuIFRoZSB0cmFuc2l0aW9uIGludG8gRFNULiAgSGVyZSwgYSBkZXNpZ25hdGVkIHRpbWUgb2YgMjowMCBhbSAtIDI6NTkgYW0KKyAgICAgICAgLy8gICAgY2FuIGJlIGluIHN0YW5kYXJkIG9yIGluIERTVCBkZXBlbmRpbmcuICBIb3dldmVyLCAyOjAwIGFtIGlzIGFuIGludmFsaWQKKyAgICAgICAgLy8gICAgcmVwcmVzZW50YXRpb24gKHRoZSByZXByZXNlbnRhdGlvbiBqdW1wcyBmcm9tIDE6NTk6NTkgYW0gU3RkIHRvIDM6MDA6MDAgYW0gRFNUKS4KKyAgICAgICAgLy8gICAgV2UgYXNzdW1lIHN0YW5kYXJkIHRpbWUuCisgICAgICAgIC8vIDIuIFRoZSB0cmFuc2l0aW9uIG91dCBvZiBEU1QuICBIZXJlLCBhIGRlc2lnbmF0ZWQgdGltZSBvZiAxOjAwIGFtIC0gMTo1OSBhbQorICAgICAgICAvLyAgICBjYW4gYmUgaW4gc3RhbmRhcmQgb3IgRFNULiAgQm90aCBhcmUgdmFsaWQgcmVwcmVzZW50YXRpb25zICh0aGUgcmVwCisgICAgICAgIC8vICAgIGp1bXBzIGZyb20gMTo1OTo1OSBEU1QgdG8gMTowMDowMCBTdGQpLgorICAgICAgICAvLyAgICBBZ2Fpbiwgd2UgYXNzdW1lIHN0YW5kYXJkIHRpbWUuCisgICAgICAgIC8vIFdlIHVzZSB0aGUgVGltZVpvbmUgb2JqZWN0LCB1bmxlc3MgdGhlIHVzZXIgaGFzIGV4cGxpY2l0bHkgc2V0IHRoZSBaT05FX09GRlNFVAorICAgICAgICAvLyBvciBEU1RfT0ZGU0VUIGZpZWxkczsgdGhlbiB3ZSB1c2UgdGhvc2UgZmllbGRzLgorICAgICAgICBpZiAoc3RhbXBbWk9ORV9PRkZTRVRdID49IE1JTklNVU1fVVNFUl9TVEFNUCB8fAorICAgICAgICAgICAgc3RhbXBbRFNUX09GRlNFVF0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QKSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSAtPSBpbnRlcm5hbEdldChaT05FX09GRlNFVCkgKyBpbnRlcm5hbEdldChEU1RfT0ZGU0VUKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5IC09IGNvbXB1dGVab25lT2Zmc2V0KG1pbGxpcywgbWlsbGlzSW5EYXkpOworICAgICAgICB9CisKKyAgICAgICAgdGltZSA9IG1pbGxpcyArIG1pbGxpc0luRGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIG1pbGxpc2Vjb25kcyBpbiB0aGUgZGF5IGZyb20gdGhlIGZpZWxkcy4gIFRoaXMgaXMgYQorICAgICAqIHZhbHVlIGZyb20gMCB0byAyMzo1OTo1OS45OTkgaW5jbHVzaXZlLCB1bmxlc3MgZmllbGRzIGFyZSBvdXQgb2YKKyAgICAgKiByYW5nZSwgaW4gd2hpY2ggY2FzZSBpdCBjYW4gYmUgYW4gYXJiaXRyYXJ5IHZhbHVlLiAgVGhpcyB2YWx1ZQorICAgICAqIHJlZmxlY3RzIGxvY2FsIHpvbmUgd2FsbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZU1pbGxpc0luRGF5KCkgeworICAgICAgICAvLyBEbyB0aGUgdGltZSBwb3J0aW9uIG9mIHRoZSBjb252ZXJzaW9uLgorCisgICAgICAgIGludCBtaWxsaXNJbkRheSA9IDA7CisKKyAgICAgICAgLy8gRmluZCB0aGUgYmVzdCBzZXQgb2YgZmllbGRzIHNwZWNpZnlpbmcgdGhlIHRpbWUgb2YgZGF5LiAgVGhlcmUKKyAgICAgICAgLy8gYXJlIG9ubHkgdHdvIHBvc3NpYmlsaXRpZXMgaGVyZTsgdGhlIEhPVVJfT0ZfREFZIG9yIHRoZQorICAgICAgICAvLyBBTV9QTSBhbmQgdGhlIEhPVVIuCisgICAgICAgIGludCBob3VyT2ZEYXlTdGFtcCA9IHN0YW1wW0hPVVJfT0ZfREFZXTsKKyAgICAgICAgaW50IGhvdXJTdGFtcCA9IE1hdGgubWF4KHN0YW1wW0hPVVJdLCBzdGFtcFtBTV9QTV0pOworICAgICAgICBpbnQgYmVzdFN0YW1wID0gKGhvdXJTdGFtcCA+IGhvdXJPZkRheVN0YW1wKSA/IGhvdXJTdGFtcCA6IGhvdXJPZkRheVN0YW1wOworCisgICAgICAgIC8vIEhvdXJzCisgICAgICAgIGlmIChiZXN0U3RhbXAgIT0gVU5TRVQpIHsKKyAgICAgICAgICAgIGlmIChiZXN0U3RhbXAgPT0gaG91ck9mRGF5U3RhbXApIHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBub3JtYWxpemUgaGVyZTsgbGV0IG92ZXJmbG93IGJ1bXAgaW50byB0aGUgbmV4dCBwZXJpb2QuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IHdlIGhhbmRsZSBvdGhlciBmaWVsZHMuCisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBub3JtYWxpemUgaGVyZTsgbGV0IG92ZXJmbG93IGJ1bXAgaW50byB0aGUgbmV4dCBwZXJpb2QuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IHdlIGhhbmRsZSBvdGhlciBmaWVsZHMuCisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoSE9VUik7CisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gMTIgKiBpbnRlcm5hbEdldChBTV9QTSk7IC8vIERlZmF1bHQgd29ya3MgZm9yIHVuc2V0IEFNX1BNCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSB1c2UgdGhlIGZhY3QgdGhhdCB1bnNldCA9PSAwOyB3ZSBzdGFydCB3aXRoIG1pbGxpc0luRGF5CisgICAgICAgIC8vID09IEhPVVJfT0ZfREFZLgorICAgICAgICBtaWxsaXNJbkRheSAqPSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoTUlOVVRFKTsgLy8gbm93IGhhdmUgbWludXRlcworICAgICAgICBtaWxsaXNJbkRheSAqPSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoU0VDT05EKTsgLy8gbm93IGhhdmUgc2Vjb25kcworICAgICAgICBtaWxsaXNJbkRheSAqPSAxMDAwOworICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORCk7IC8vIG5vdyBoYXZlIG1pbGxpcworCisgICAgICAgIHJldHVybiBtaWxsaXNJbkRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjYW4gYXNzdW1lIEVYVEVOREVEX1lFQVIgaGFzIGJlZW4gc2V0LgorICAgICAqIEBwYXJhbSBtaWxsaXMgbWlsbGlzZWNvbmRzIG9mIHRoZSBkYXRlIGZpZWxkcyAobG9jYWwgbWlkbmlnaHQgbWlsbGlzKQorICAgICAqIEBwYXJhbSBtaWxsaXNJbkRheSBtaWxsaXNlY29uZHMgb2YgdGhlIHRpbWUgZmllbGRzOyBtYXkgYmUgb3V0CisgICAgICogb3IgcmFuZ2UuCisgICAgICogQHJldHVybiB0b3RhbCB6b25lIG9mZnNldCAocmF3ICsgRFNUKSBmb3IgdGhlIGdpdmVuIG1vbWVudAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZVpvbmVPZmZzZXQobG9uZyBtaWxsaXMsIGludCBtaWxsaXNJbkRheSkgeworICAgICAgICBpbnQgb2Zmc2V0c1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgem9uZS5nZXRPZmZzZXQobWlsbGlzICsgbWlsbGlzSW5EYXksIHRydWUsIG9mZnNldHMpOworICAgICAgICByZXR1cm4gb2Zmc2V0c1swXSArIG9mZnNldHNbMV07CisKKyAgICAgICAgLy8gTm90ZTogQmVjYXVzZSB3ZSBwYXNzIGluIHdhbGwgbWlsbGlzSW5EYXksIHJhdGhlciB0aGFuCisgICAgICAgIC8vIHN0YW5kYXJkIG1pbGxpc0luRGF5LCB3ZSBpbnRlcnByZXQgIjE6MDAgYW0iIG9uIHRoZSBkYXkKKyAgICAgICAgLy8gb2YgY2Vzc2F0aW9uIG9mIERTVCBhcyAiMTowMCBhbSBTdGQiIChhc3N1bWluZyB0aGUgdGltZQorICAgICAgICAvLyBvZiBjZXNzYXRpb24gaXMgMjowMCBhbSkuCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgSnVsaWFuIGRheSBudW1iZXIgYXMgc3BlY2lmaWVkIGJ5IHRoaXMgY2FsZW5kYXIncyBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlSnVsaWFuRGF5KCkgeworCisgICAgICAgIC8vIFdlIHdhbnQgdG8gc2VlIGlmIGFueSBvZiB0aGUgZGF0ZSBmaWVsZHMgaXMgbmV3ZXIgdGhhbiB0aGUKKyAgICAgICAgLy8gSlVMSUFOX0RBWS4gIElmIG5vdCwgdGhlbiB3ZSB1c2UgSlVMSUFOX0RBWS4gIElmIHNvLCB0aGVuIHdlIGRvCisgICAgICAgIC8vIHRoZSBub3JtYWwgcmVzb2x1dGlvbi4gIFdlIG9ubHkgdXNlIEpVTElBTl9EQVkgaWYgaXQgaGFzIGJlZW4KKyAgICAgICAgLy8gc2V0IGJ5IHRoZSB1c2VyLiAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGNhbGxlciB0byBzZXQKKyAgICAgICAgLy8gdGhlIGNhbGVuZGFyIHRvIGEgdGltZSBhbmQgY2FsbCBjbGVhcihNT05USCkgdG8gcmVzZXQgdGhlIE1PTlRICisgICAgICAgIC8vIHRvIEphbnVhcnkuICBUaGlzIGlzIGxlZ2FjeSBiZWhhdmlvci4gIFdpdGhvdXQgdGhpcywKKyAgICAgICAgLy8gY2xlYXIoTU9OVEgpIGhhcyBubyBlZmZlY3QsIHNpbmNlIHRoZSBpbnRlcm5hbGx5IHNldCBKVUxJQU5fREFZCisgICAgICAgIC8vIGlzIHVzZWQuCisgICAgICAgIGlmIChzdGFtcFtKVUxJQU5fREFZXSA+PSBNSU5JTVVNX1VTRVJfU1RBTVApIHsKKyAgICAgICAgICAgIGludCBiZXN0U3RhbXAgPSBuZXdlc3RTdGFtcChFUkEsIERBWV9PRl9XRUVLX0lOX01PTlRILCBVTlNFVCk7CisgICAgICAgICAgICBiZXN0U3RhbXAgPSBuZXdlc3RTdGFtcChZRUFSX1dPWSwgRVhURU5ERURfWUVBUiwgYmVzdFN0YW1wKTsKKyAgICAgICAgICAgIGlmIChiZXN0U3RhbXAgPD0gc3RhbXBbSlVMSUFOX0RBWV0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXQoSlVMSUFOX0RBWSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgYmVzdEZpZWxkID0gcmVzb2x2ZUZpZWxkcyhnZXRGaWVsZFJlc29sdXRpb25UYWJsZSgpKTsKKyAgICAgICAgaWYgKGJlc3RGaWVsZCA8IDApIHsKKyAgICAgICAgICAgIGJlc3RGaWVsZCA9IERBWV9PRl9NT05USDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBoYW5kbGVDb21wdXRlSnVsaWFuRGF5KGJlc3RGaWVsZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaWVsZCByZXNvbHV0aW9uIGFycmF5IGZvciB0aGlzIGNhbGVuZGFyLiAgQ2FsZW5kYXJzIHRoYXQKKyAgICAgKiBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMgb3IgY2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YgZXhpc3RpbmcgZmllbGRzCisgICAgICogc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFkanVzdCB0aGUgZmllbGQgcmVzb2x1dGlvbiBzZW1hbnRpY3MKKyAgICAgKiBhY2NvcmRpbmdseS4gIE90aGVyIHN1YmNsYXNzZXMgc2hvdWxkIG5vdCBvdmVycmlkZSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyZXNvbHZlRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdW11bXSBnZXRGaWVsZFJlc29sdXRpb25UYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIERBVEVfUFJFQ0VERU5DRTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAgICAgKiBnaXZlbiBtb250aCBpbiB0aGUgZ2l2ZW4gZXh0ZW5kZWQgeWVhci4gIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgICAgICogdGhpcyBtZXRob2QgdG8gaW1wbGVtZW50IHRoZWlyIGNhbGVuZGFyIHN5c3RlbS4KKyAgICAgKiBAcGFyYW0gZXllYXIgdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHplcm8tYmFzZWQgbW9udGgsIG9yIDAgaWYgdXNlTW9udGggaXMgZmFsc2UKKyAgICAgKiBAcGFyYW0gdXNlTW9udGggaWYgZmFsc2UsIGNvbXB1dGUgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZgorICAgICAqIHRoZSBnaXZlbiB5ZWFyLCBvdGhlcndpc2UsIGNvbXB1dGUgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZgorICAgICAqIHRoZSBnaXZlbiBtb250aAorICAgICAqIEByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZ2l2ZW4gbW9udGggYW5kIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VNb250aCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIgZGVmaW5lZCBieSB0aGUgY3VycmVudCBmaWVsZHMuICBUaGlzIHdpbGwKKyAgICAgKiB1c2UgdGhlIEVYVEVOREVEX1lFQVIgZmllbGQgb3IgdGhlIFlFQVIgYW5kIHN1cHJhLXllYXIgZmllbGRzIChzdWNoCisgICAgICogYXMgRVJBKSBzcGVjaWZpYyB0byB0aGUgY2FsZW5kYXIgc3lzdGVtLCBkZXBlbmRpbmcgb24gd2hpY2ggc2V0IG9mCisgICAgICogZmllbGRzIGlzIG5ld2VyLgorICAgICAqIEByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpOworCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIG5vdCBjYWxsZWQgYmVjYXVzZSBhbGwgZXhpc3Rpbmcgc3ViY2xhc3NlcworICAgIC8vIG92ZXJyaWRlIGl0LiAgMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIG1vbnRoIG9mIHRoZSBnaXZlbiBleHRlbmRlZAorICAgICAqIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzCisgICAgICogbWV0aG9kIGlmIHRoZXkgY2FuIHByb3ZpZGUgYSBtb3JlIGNvcnJlY3Qgb3IgbW9yZSBlZmZpY2llbnQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiB0aGFuIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGluIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TW9udGhMZW5ndGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleHRlbmRlZFllYXIsIG1vbnRoKzEsIHRydWUpIC0KKyAgICAgICAgICAgICAgIGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV4dGVuZGVkWWVhciwgbW9udGgsIHRydWUpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIGV4dGVuZGVkIHllYXIgb2YgdGhpcworICAgICAqIGNhbGVuZGFyIHN5c3RlbS4gIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHRoZXkgY2FuCisgICAgICogcHJvdmlkZSBhIG1vcmUgY29ycmVjdCBvciBtb3JlIGVmZmljaWVudCBpbXBsZW1lbnRhdGlvbiB0aGFuIHRoZQorICAgICAqIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaW4gQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRZZWFyTGVuZ3RoKGludCBleWVhcikgeworICAgICAgICByZXR1cm4gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXllYXIrMSwgMCwgZmFsc2UpIC0KKyAgICAgICAgICAgICAgIGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV5ZWFyLCAwLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyB0aGF0IHVzZSBhZGRpdGlvbmFsIGZpZWxkcyBiZXlvbmQgdGhvc2UgZGVmaW5lZCBpbgorICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGFuCisgICAgICogPGNvZGU+aW50W108L2NvZGU+IGFycmF5IG9mIHRoZSBhcHByb3ByaWF0ZSBsZW5ndGguICBUaGUgbGVuZ3RoCisgICAgICogbXVzdCBiZSBhdCBsZWFzdCA8Y29kZT5CQVNFX0ZJRUxEX0NPVU5UPC9jb2RlPiBhbmQgbm8gbW9yZSB0aGFuCisgICAgICogPGNvZGU+TUFYX0ZJRUxEX0NPVU5UPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50W10gaGFuZGxlQ3JlYXRlRmllbGRzKCkgeworICAgICAgICByZXR1cm4gbmV3IGludFtCQVNFX0ZJRUxEX0NPVU5UXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcy4gCisgICAgICogQ2FsbGVkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkuICBSZXR1cm5zIHRoZSBkZWZhdWx0IG1vbnRoICgwLWJhc2VkKSBmb3IgdGhlIHllYXIsCisgICAgICogdGFraW5nIHllYXIgYW5kIGVyYSBpbnRvIGFjY291bnQuICBEZWZhdWx0cyB0byAwIChKQU5VQVJZKSBmb3IgR3JlZ29yaWFuLgorICAgICAqIEBwYXJhbSBleHRlbmRlZFllYXIgdGhlIGV4dGVuZGVkWWVhciwgYXMgcmV0dXJuZWQgYnkgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyCisgICAgICogQHJldHVybiB0aGUgZGVmYXVsdCBtb250aAorICAgICAqIEBwcm92aXNpb25hbCBJQ1UgMy42CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAc2VlICNNT05USAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyKGludCBleHRlbmRlZFllYXIpIHsKKyAgICAgICAgcmV0dXJuIENhbGVuZGFyLkpBTlVBUlk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcy4gCisgICAgICogQ2FsbGVkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkuICBSZXR1cm5zIHRoZSBkZWZhdWx0IGRheSAoMS1iYXNlZCkgZm9yIHRoZSBtb250aCwKKyAgICAgKiB0YWtpbmcgY3VycmVudGx5LXNldCB5ZWFyIGFuZCBlcmEgaW50byBhY2NvdW50LiAgRGVmYXVsdHMgdG8gMSBmb3IgR3JlZ29yaWFuLgorICAgICAqIEBwYXJhbSBleHRlbmRlZFllYXIgdGhlIGV4dGVuZGVkWWVhciwgYXMgcmV0dXJuZWQgYnkgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBtb250aCwgYXMgcmV0dXJuZWQgYnkgZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyCisgICAgICogQHJldHVybiB0aGUgZGVmYXVsdCBkYXkgb2YgdGhlIG1vbnRoCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgSUNVIDMuNgorICAgICAqIEBzZWUgI0RBWV9PRl9NT05USAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0RGVmYXVsdERheUluTW9udGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcy4gIFRoaXMgbWV0aG9kIGNhbGxzCisgICAgICogaGFuZGxlR2V0TW9udGhMZW5ndGgoKSB0byBvYnRhaW4gdGhlIGNhbGVuZGFyLXNwZWNpZmljIG1vbnRoCisgICAgICogbGVuZ3RoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShpbnQgYmVzdEZpZWxkKSB7CisKKyAgICAgICAgYm9vbGVhbiB1c2VNb250aCA9IChiZXN0RmllbGQgPT0gREFZX09GX01PTlRIIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdEZpZWxkID09IFdFRUtfT0ZfTU9OVEggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RmllbGQgPT0gREFZX09GX1dFRUtfSU5fTU9OVEgpOworCisgICAgICAgIGludCB5ZWFyID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworCisgICAgICAgIGludCBtb250aCA9IHVzZU1vbnRoID8gaW50ZXJuYWxHZXQoTU9OVEgsIGdldERlZmF1bHRNb250aEluWWVhcih5ZWFyKSkgOiAwOworICAgICAgICAKKyAgICAgICAgaW50IGRvbSA9IGludGVybmFsR2V0KERBWV9PRl9NT05USCwgZ2V0RGVmYXVsdERheUluTW9udGgoeWVhciwgbW9udGgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdldCB0aGUgSnVsaWFuIGRheSBvZiB0aGUgZGF5IEJFRk9SRSB0aGUgc3RhcnQgb2YgdGhpcyB5ZWFyLgorICAgICAgICAvLyBJZiB1c2VNb250aCBpcyB0cnVlLCBnZXQgdGhlIGRheSBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBtb250aC4KKyAgICAgICAgaW50IGp1bGlhbkRheSA9IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KHllYXIsIG1vbnRoLCB1c2VNb250aCk7CisKKyAgICAgICAgaWYgKGJlc3RGaWVsZCA9PSBEQVlfT0ZfTU9OVEgpIHsKKyAgICAgICAgICAgIGlmKGlzU2V0KERBWV9PRl9NT05USCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgaW50ZXJuYWxHZXQoREFZX09GX01PTlRILCBnZXREZWZhdWx0RGF5SW5Nb250aCh5ZWFyLCBtb250aCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgZ2V0RGVmYXVsdERheUluTW9udGgoeWVhciwgbW9udGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGJlc3RGaWVsZCA9PSBEQVlfT0ZfWUVBUikgeworICAgICAgICAgICAgcmV0dXJuIGp1bGlhbkRheSArIGludGVybmFsR2V0KERBWV9PRl9ZRUFSKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBmaXJzdERheU9mV2VlayA9IGdldEZpcnN0RGF5T2ZXZWVrKCk7IC8vIExvY2FsaXplZCBmZHcKKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGp1bGlhbkRheSBpcyB0aGUgMC1iYXNlZCBkYXkgQkVGT1JFIHRoZSBmaXJzdCBkYXkgb2YKKyAgICAgICAgLy8gSmFudWFyeSAxLCB5ZWFyIDEgb2YgdGhlIGdpdmVuIGNhbGVuZGFyLiAgSWYganVsaWFuRGF5ID09IDAsIGl0CisgICAgICAgIC8vIHNwZWNpZmllcyAoSmFuLiAxLCAxKSAtIDEsIGluIHdoYXRldmVyIGNhbGVuZGFyIHdlIGFyZSB1c2luZyAoSnVsaWFuCisgICAgICAgIC8vIG9yIEdyZWdvcmlhbikuCisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBuZWVkIHRvIHByb2Nlc3MgdGhlIFdFRUtfT0ZfTU9OVEggb3IKKyAgICAgICAgLy8gV0VFS19PRl9ZRUFSLCB3aGljaCBhcmUgc2ltaWxhciwgb3IgdGhlIERBWV9PRl9XRUVLX0lOX01PTlRILgorICAgICAgICAvLyBGaXJzdCwgcGVyZm9ybSBpbml0aWFsIHNoYXJlZCBjb21wdXRhdGlvbnMuICBUaGVzZSBsb2NhdGUgdGhlCisgICAgICAgIC8vIGZpcnN0IHdlZWsgb2YgdGhlIHBlcmlvZC4KKworICAgICAgICAvLyBHZXQgdGhlIDAtYmFzZWQgbG9jYWxpemVkIERPVyBvZiBkYXkgb25lIG9mIHRoZSBtb250aCBvciB5ZWFyLgorICAgICAgICAvLyBWYWxpZCByYW5nZSAwLi42LgorICAgICAgICBpbnQgZmlyc3QgPSBqdWxpYW5EYXlUb0RheU9mV2VlayhqdWxpYW5EYXkgKyAxKSAtIGZpcnN0RGF5T2ZXZWVrOworICAgICAgICBpZiAoZmlyc3QgPCAwKSB7CisgICAgICAgICAgICBmaXJzdCArPSA3OworICAgICAgICB9CisKKyAgICAgICAgLy8gR2V0IHplcm8tYmFzZWQgbG9jYWxpemVkIERPVywgdmFsaWQgcmFuZ2UgMC4uNi4gIFRoaXMgaXMgdGhlIERPVworICAgICAgICAvLyB3ZSBhcmUgbG9va2luZyBmb3IuCisgICAgICAgIGludCBkb3dMb2NhbCA9IDA7CisgICAgICAgIHN3aXRjaCAocmVzb2x2ZUZpZWxkcyhET1dfUFJFQ0VERU5DRSkpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgICAgIGRvd0xvY2FsID0gaW50ZXJuYWxHZXQoREFZX09GX1dFRUspIC0gZmlyc3REYXlPZldlZWs7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgICAgICBkb3dMb2NhbCA9IGludGVybmFsR2V0KERPV19MT0NBTCkgLSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZG93TG9jYWwgPSBkb3dMb2NhbCAlIDc7CisgICAgICAgIGlmIChkb3dMb2NhbCA8IDApIHsKKyAgICAgICAgICAgIGRvd0xvY2FsICs9IDc7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCB0YXJnZXQgRE9XIChkb3dMb2NhbCkgaW4gdGhlIG1vbnRoIG9yIHllYXIuCisgICAgICAgIC8vIEFjdHVhbGx5LCBpdCBtYXkgYmUganVzdCBiZWZvcmUgdGhlIGZpcnN0IG9mIHRoZSBtb250aCBvciB5ZWFyLgorICAgICAgICAvLyBJdCB3aWxsIGJlIGFuIGludGVnZXIgZnJvbSAtNS4uNy4KKyAgICAgICAgaW50IGRhdGUgPSAxIC0gZmlyc3QgKyBkb3dMb2NhbDsKKworICAgICAgICBpZiAoYmVzdEZpZWxkID09IERBWV9PRl9XRUVLX0lOX01PTlRIKSB7CisKKyAgICAgICAgICAgIC8vIEFkanVzdCB0aGUgdGFyZ2V0IERPVyB0byBiZSBpbiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgICAgIGlmIChkYXRlIDwgMSkgeworICAgICAgICAgICAgICAgIGRhdGUgKz0gNzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIG9ubHkgdHJpY2tpbmVzcyBvY2N1cnMgaWYgdGhlIGRheS1vZi13ZWVrLWluLW1vbnRoIGlzCisgICAgICAgICAgICAvLyBuZWdhdGl2ZS4KKyAgICAgICAgICAgIGludCBkaW0gPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFS19JTl9NT05USCwgMSk7CisgICAgICAgICAgICBpZiAoZGltID49IDApIHsKKyAgICAgICAgICAgICAgICBkYXRlICs9IDcqKGRpbSAtIDEpOworCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE1vdmUgZGF0ZSB0byB0aGUgbGFzdCBvZiB0aGlzIGRheS1vZi13ZWVrIGluIHRoaXMgbW9udGgsCisgICAgICAgICAgICAgICAgLy8gdGhlbiBiYWNrIHVwIGFzIG5lZWRlZC4gIElmIGRpbT09LTEsIHdlIGRvbid0IGJhY2sgdXAgYXQKKyAgICAgICAgICAgICAgICAvLyBhbGwuICBJZiBkaW09PS0yLCB3ZSBiYWNrIHVwIG9uY2UsIGV0Yy4gIERvbid0IGJhY2sgdXAKKyAgICAgICAgICAgICAgICAvLyBwYXN0IHRoZSBmaXJzdCBvZiB0aGUgZ2l2ZW4gZGF5LW9mLXdlZWsgaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgaGFuZGxlIC0yLCAtMywgZXRjLiBjb3JyZWN0bHksIGV2ZW4gdGhvdWdoCisgICAgICAgICAgICAgICAgLy8gdmFsdWVzIDwgLTEgYXJlIHRlY2huaWNhbGx5IGRpc2FsbG93ZWQuCisgICAgICAgICAgICAgICAgaW50IG0gPSBpbnRlcm5hbEdldChNT05USCwgSkFOVUFSWSk7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuZ3RoID0gaGFuZGxlR2V0TW9udGhMZW5ndGgoeWVhciwgbSk7CisgICAgICAgICAgICAgICAgZGF0ZSArPSAoKG1vbnRoTGVuZ3RoIC0gZGF0ZSkgLyA3ICsgZGltICsgMSkgKiA3OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gYXNzZXJ0KGJlc3RGaWVsZCA9PSBXRUVLX09GX01PTlRIIHx8IGJlc3RGaWVsZCA9PSBXRUVLX09GX1lFQVIpCisKKyAgICAgICAgICAgIC8vIEFkanVzdCBmb3IgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsKKyAgICAgICAgICAgIGlmICgoNyAtIGZpcnN0KSA8IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgeworICAgICAgICAgICAgICAgIGRhdGUgKz0gNzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTm93IGFkanVzdCBmb3IgdGhlIHdlZWsgbnVtYmVyLgorICAgICAgICAgICAgZGF0ZSArPSA3ICogKGludGVybmFsR2V0KGJlc3RGaWVsZCkgLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBqdWxpYW5EYXkgKyBkYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIEp1bGlhbiBkYXkgb2YgYSBtb250aCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIFN1YmNsYXNzZXMgbWF5IGNhbGwgdGhpcyBtZXRob2QgdG8gcGVyZm9ybSBhIEdyZWdvcmlhbiBjYWxlbmRhcgorICAgICAqIGZpZWxkcy0+bWlsbGlzIGNvbXB1dGF0aW9uLiAgVG8gcGVyZm9ybSBhIEdyZWdvcmlhbiBjYWxlbmRhcgorICAgICAqIG1pbGxpcy0+ZmllbGRzIGNvbXB1dGF0aW9uLCBjYWxsIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKS4KKyAgICAgKiBAcGFyYW0geWVhciBleHRlbmRlZCBHcmVnb3JpYW4geWVhcgorICAgICAqIEBwYXJhbSBtb250aCB6ZXJvLWJhc2VkIEdyZWdvcmlhbiBtb250aAorICAgICAqIEByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZ2l2ZW4gbW9udGggaW4gdGhlIGdpdmVuIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlR3JlZ29yaWFuTW9udGhTdGFydChpbnQgeWVhciwgaW50IG1vbnRoKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIG1vbnRoIGlzIG91dCBvZiByYW5nZSwgYWRqdXN0IGl0IGludG8gcmFuZ2UsIGFuZAorICAgICAgICAvLyBtb2RpZnkgdGhlIGV4dGVuZGVkIHllYXIgdmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkgeworICAgICAgICAgICAgaW50W10gcmVtID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHllYXIgKz0gZmxvb3JEaXZpZGUobW9udGgsIDEyLCByZW0pOworICAgICAgICAgICAgbW9udGggPSByZW1bMF07CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTGVhcCA9ICh5ZWFyJTQgPT0gMCkgJiYgKCh5ZWFyJTEwMCAhPSAwKSB8fCAoeWVhciU0MDAgPT0gMCkpOworICAgICAgICBpbnQgeSA9IHllYXIgLSAxOworICAgICAgICAvLyBUaGlzIGNvbXB1dGF0aW9uIGlzIGFjdHVhbGx5IC4uLiArIChKQU5fMV8xX0pVTElBTl9EQVkgLSAzKSArIDIuCisgICAgICAgIC8vIEFkZCAyIGJlY2F1c2UgR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0cyAyIGRheXMgYWZ0ZXIgSnVsaWFuCisgICAgICAgIC8vIGNhbGVuZGFyLgorICAgICAgICBpbnQganVsaWFuRGF5ID0gMzY1KnkgKyBmbG9vckRpdmlkZSh5LCA0KSAtIGZsb29yRGl2aWRlKHksIDEwMCkgKworICAgICAgICAgICAgZmxvb3JEaXZpZGUoeSwgNDAwKSArIEpBTl8xXzFfSlVMSUFOX0RBWSAtIDE7CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBqdWxpYW5EYXkgaW5kaWNhdGVzIHRoZSBkYXkgQkVGT1JFIHRoZSBmaXJzdCBkYXkKKyAgICAgICAgLy8gb2YgSmFudWFyeSAxLCA8ZXllYXI+IG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICAgIGlmIChtb250aCAhPSAwKSB7CisgICAgICAgICAgICBqdWxpYW5EYXkgKz0gR1JFR09SSUFOX01PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBqdWxpYW5EYXk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gU3ViY2xhc3MgQVBJCisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIChUaGUgZm9sbG93aW5nIG1ldGhvZCBpcyBub3QgY2FsbGVkIGJlY2F1c2UgYWxsIGV4aXN0aW5nIHN1YmNsYXNzZXMKKyAgICAvLyBvdmVycmlkZSBpdC4gIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzCisgICAgICogc3BlY2lmaWMgdG8gZWFjaCBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKgorICAgICAqIFN1YmNsYXNzZXMgY2FuIHJlZmVyIHRvIHRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcywgd2hpY2gKKyAgICAgKiB3aWxsIGJlIHNldCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4gIFN1YmNsYXNzZXMgY2FuIGFsc28gY2FsbAorICAgICAqIHRoZSBnZXRHcmVnb3JpYW5YeHgoKSBtZXRob2RzIHRvIG9idGFpbiBHcmVnb3JpYW4gY2FsZW5kYXIKKyAgICAgKiBlcXVpdmFsZW50cyBmb3IgdGhlIGdpdmVuIEp1bGlhbiBkYXkuCisgICAgICoKKyAgICAgKiA8cD5JbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBzaG91bGQgY29tcHV0ZSBhbnkgc3ViY2xhc3Mtc3BlY2lmaWMKKyAgICAgKiBmaWVsZHMsIHRoYXQgaXMsIGZpZWxkcyBmcm9tIEJBU0VfRklFTERfQ09VTlQgdG8KKyAgICAgKiBnZXRGaWVsZENvdW50KCkgLSAxLgorICAgICAqCisgICAgICogPHA+VGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudHMKKyAgICAgKiBhIHB1cmUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIGdldEdyZWdvcmlhbk1vbnRoKCkpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfTU9OVEgsIGdldEdyZWdvcmlhbkRheU9mTW9udGgoKSk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCBnZXRHcmVnb3JpYW5EYXlPZlllYXIoKSk7CisgICAgICAgIGludCBleWVhciA9IGdldEdyZWdvcmlhblllYXIoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgZXllYXIpOworICAgICAgICBpbnQgZXJhID0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQ7CisgICAgICAgIGlmIChleWVhciA8IDEpIHsKKyAgICAgICAgICAgIGVyYSA9IEdyZWdvcmlhbkNhbGVuZGFyLkJDOworICAgICAgICAgICAgZXllYXIgPSAxIC0gZXllYXI7CisgICAgICAgIH0KKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCBlcmEpOworICAgICAgICBpbnRlcm5hbFNldChZRUFSLCBleWVhcik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gU3ViY2xhc3MgQVBJCisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gY2FsbAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgYXMgY29tcHV0ZWQgYnkKKyAgICAgKiA8Y29kZT5jb21wdXRlR3JlZ29yaWFuRmllbGRzKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEdyZWdvcmlhblllYXIoKSB7CisgICAgICAgIHJldHVybiBncmVnb3JpYW5ZZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9udGggKDAtYmFzZWQpIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgYXMgY29tcHV0ZWQgYnkKKyAgICAgKiA8Y29kZT5jb21wdXRlR3JlZ29yaWFuRmllbGRzKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEdyZWdvcmlhbk1vbnRoKCkgeworICAgICAgICByZXR1cm4gZ3JlZ29yaWFuTW9udGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgb2YgeWVhciAoMS1iYXNlZCkgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhcworICAgICAqIGNvbXB1dGVkIGJ5IDxjb2RlPmNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKTwvY29kZT4uCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0R3JlZ29yaWFuRGF5T2ZZZWFyKCkgeworICAgICAgICByZXR1cm4gZ3JlZ29yaWFuRGF5T2ZZZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5IG9mIG1vbnRoICgxLWJhc2VkKSBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzCisgICAgICogY29tcHV0ZWQgYnkgPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCkgeworICAgICAgICByZXR1cm4gZ3JlZ29yaWFuRGF5T2ZNb250aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBmaWVsZHMgZGVmaW5lZCBieSB0aGlzIGNhbGVuZGFyLiAgVmFsaWQgZmllbGQKKyAgICAgKiBhcmd1bWVudHMgdG8gPGNvZGU+c2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5nZXQoKTwvY29kZT4gYXJlCisgICAgICogPGNvZGU+MC4uZ2V0RmllbGRDb3VudCgpLTE8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0RmllbGRDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGZpZWxkcy5sZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgZmllbGQgdG8gYSB2YWx1ZS4gIFN1YmNsYXNzZXMgc2hvdWxkIHVzZSB0aGlzIG1ldGhvZCB3aGVuCisgICAgICogY29tcHV0aW5nIGZpZWxkcy4gIEl0IHNldHMgdGhlIHRpbWUgc3RhbXAgaW4gdGhlCisgICAgICogPGNvZGU+c3RhbXBbXTwvY29kZT4gYXJyYXkgdG8gPGNvZGU+SU5URVJOQUxMWV9TRVQ8L2NvZGU+LiAgSWYgYQorICAgICAqIGZpZWxkIHRoYXQgbWF5IG5vdCBiZSBzZXQgYnkgc3ViY2xhc3NlcyBpcyBwYXNzZWQgaW4sIGFuCisgICAgICogPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uICBUaGlzIHByZXZlbnRzCisgICAgICogc3ViY2xhc3NlcyBmcm9tIG1vZGlmeWluZyBmaWVsZHMgdGhhdCBhcmUgaW50ZW5kZWQgdG8gYmUKKyAgICAgKiBjYWxlbmRhci1zeXN0ZW0gaW52YXJpYW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGludGVybmFsU2V0KGludCBmaWVsZCwgaW50IHZhbHVlKSB7CisgICAgICAgIGlmICgoKDEgPDwgZmllbGQpICYgaW50ZXJuYWxTZXRNYXNrKSA9PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTdWJjbGFzcyBjYW5ub3Qgc2V0ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWUoZmllbGQpKTsKKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbZmllbGRdID0gdmFsdWU7CisgICAgICAgIHN0YW1wW2ZpZWxkXSA9IElOVEVSTkFMTFlfU0VUOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdW10gR1JFR09SSUFOX01PTlRIX0NPVU5UID0geworICAgICAgICAvL2xlbiBsZW4yICAgc3QgIHN0MgorICAgICAgICB7ICAzMSwgIDMxLCAgIDAsICAgMCB9LCAvLyBKYW4KKyAgICAgICAgeyAgMjgsICAyOSwgIDMxLCAgMzEgfSwgLy8gRmViCisgICAgICAgIHsgIDMxLCAgMzEsICA1OSwgIDYwIH0sIC8vIE1hcgorICAgICAgICB7ICAzMCwgIDMwLCAgOTAsICA5MSB9LCAvLyBBcHIKKyAgICAgICAgeyAgMzEsICAzMSwgMTIwLCAxMjEgfSwgLy8gTWF5CisgICAgICAgIHsgIDMwLCAgMzAsIDE1MSwgMTUyIH0sIC8vIEp1bgorICAgICAgICB7ICAzMSwgIDMxLCAxODEsIDE4MiB9LCAvLyBKdWwKKyAgICAgICAgeyAgMzEsICAzMSwgMjEyLCAyMTMgfSwgLy8gQXVnCisgICAgICAgIHsgIDMwLCAgMzAsIDI0MywgMjQ0IH0sIC8vIFNlcAorICAgICAgICB7ICAzMSwgIDMxLCAyNzMsIDI3NCB9LCAvLyBPY3QKKyAgICAgICAgeyAgMzAsICAzMCwgMzA0LCAzMDUgfSwgLy8gTm92CisgICAgICAgIHsgIDMxLCAgMzEsIDMzNCwgMzM1IH0gIC8vIERlYworICAgICAgICAvLyBsZW4gIGxlbmd0aCBvZiBtb250aAorICAgICAgICAvLyBsZW4yIGxlbmd0aCBvZiBtb250aCBpbiBhIGxlYXAgeWVhcgorICAgICAgICAvLyBzdCAgIGRheXMgaW4geWVhciBiZWZvcmUgc3RhcnQgb2YgbW9udGgKKyAgICAgICAgLy8gc3QyICBkYXlzIGluIHllYXIgYmVmb3JlIG1vbnRoIGluIGxlYXAgeWVhcgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyLiBSZXR1cm5zIHRydWUgaWYgdGhlCisgICAgICogZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgZ2l2ZW4geWVhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXI7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNHcmVnb3JpYW5MZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4gKHllYXIlNCA9PSAwKSAmJiAoKHllYXIlMTAwICE9IDApIHx8ICh5ZWFyJTQwMCA9PSAwKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgYSBtb250aCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSB5IHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG0gdGhlIDAtYmFzZWQgbW9udGggbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIG1vbnRoCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZ3JlZ29yaWFuTW9udGhMZW5ndGgoaW50IHksIGludCBtKSB7CisgICAgICAgIHJldHVybiBHUkVHT1JJQU5fTU9OVEhfQ09VTlRbbV1baXNHcmVnb3JpYW5MZWFwWWVhcih5KT8xOjBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIGEgcHJldmlvdXMgbW9udGggb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0geSB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBwYXJhbSBtIHRoZSAwLWJhc2VkIG1vbnRoIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCBwcmV2aW91cyB0byB0aGUgZ2l2ZW4gbW9udGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBncmVnb3JpYW5QcmV2aW91c01vbnRoTGVuZ3RoKGludCB5LCBpbnQgbSkgeworICAgICAgICByZXR1cm4gKG0gPiAwKSA/IGdyZWdvcmlhbk1vbnRoTGVuZ3RoKHksIG0tMSkgOiAzMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwCisgICAgICogYnV0IDxjb2RlPmZsb29yRGl2aWRlKC0xLDQpPC9jb2RlPiA9PiAtMS4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGZsb29yRGl2aWRlKGludCBudW1lcmF0b3IsIGludCBkZW5vbWluYXRvcikgeworICAgICAgICAvLyBXZSBkbyB0aGlzIGNvbXB1dGF0aW9uIGluIG9yZGVyIHRvIGhhbmRsZQorICAgICAgICAvLyBhIG51bWVyYXRvciBvZiBJbnRlZ2VyLk1JTl9WQUxVRSBjb3JyZWN0bHkKKyAgICAgICAgcmV0dXJuIChudW1lcmF0b3IgPj0gMCkgPworICAgICAgICAgICAgbnVtZXJhdG9yIC8gZGVub21pbmF0b3IgOgorICAgICAgICAgICAgKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQsIGFuZAorICAgICAqIHRoZSBtb2R1bHVzIHJlbWFpbmRlci4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwIGFuZCA8Y29kZT4tMSU0PC9jb2RlPiA9PiAtMSwKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xIHdpdGggPGNvZGU+cmVtYWluZGVyWzBdPC9jb2RlPiA9PiAzLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmbG9vckRpdmlkZShpbnQgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IsIGludFtdIHJlbWFpbmRlcikgeworICAgICAgICBpZiAobnVtZXJhdG9yID49IDApIHsKKyAgICAgICAgICAgIHJlbWFpbmRlclswXSA9IG51bWVyYXRvciAlIGRlbm9taW5hdG9yOworICAgICAgICAgICAgcmV0dXJuIG51bWVyYXRvciAvIGRlbm9taW5hdG9yOworICAgICAgICB9CisgICAgaW50IHF1b3RpZW50ID0gKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDE7CisgICAgICAgIHJlbWFpbmRlclswXSA9IG51bWVyYXRvciAtIChxdW90aWVudCAqIGRlbm9taW5hdG9yKTsKKyAgICAgICAgcmV0dXJuIHF1b3RpZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LCBhbmQKKyAgICAgKiB0aGUgbW9kdWx1cyByZW1haW5kZXIuCisgICAgICogPHA+CisgICAgICogVW5saWtlIHRoZSBidWlsdC1pbiBkaXZpc2lvbiwgdGhpcyBpcyBtYXRoZW1hdGljYWxseSB3ZWxsLWJlaGF2ZWQuCisgICAgICogRS5nLiwgPGNvZGU+LTEvNDwvY29kZT4gPT4gMCBhbmQgPGNvZGU+LTElNDwvY29kZT4gPT4gLTEsCisgICAgICogYnV0IDxjb2RlPmZsb29yRGl2aWRlKC0xLDQpPC9jb2RlPiA9PiAtMSB3aXRoIDxjb2RlPnJlbWFpbmRlclswXTwvY29kZT4gPT4gMy4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHBhcmFtIHJlbWFpbmRlciBhbiBhcnJheSBvZiBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiB3aGljaCB0aGUgdmFsdWUKKyAgICAgKiA8Y29kZT5udW1lcmF0b3IgbW9kIGRlbm9taW5hdG9yPC9jb2RlPiBpcyByZXR1cm5lZC4gVW5saWtlIDxjb2RlPm51bWVyYXRvcgorICAgICAqICUgZGVub21pbmF0b3I8L2NvZGU+LCB0aGlzIHdpbGwgYWx3YXlzIGJlIG5vbi1uZWdhdGl2ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZmxvb3JEaXZpZGUobG9uZyBudW1lcmF0b3IsIGludCBkZW5vbWluYXRvciwgaW50W10gcmVtYWluZGVyKSB7CisgICAgICAgIGlmIChudW1lcmF0b3IgPj0gMCkgeworICAgICAgICAgICAgcmVtYWluZGVyWzBdID0gKGludCkobnVtZXJhdG9yICUgZGVub21pbmF0b3IpOworICAgICAgICAgICAgcmV0dXJuIChpbnQpKG51bWVyYXRvciAvIGRlbm9taW5hdG9yKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcXVvdGllbnQgPSAoaW50KSgoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMSk7CisgICAgICAgIHJlbWFpbmRlclswXSA9IChpbnQpKG51bWVyYXRvciAtIChxdW90aWVudCAqIGRlbm9taW5hdG9yKSk7CisgICAgICAgIHJldHVybiBxdW90aWVudDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBGSUVMRF9OQU1FID0geworICAgICAgICAiRVJBIiwgIllFQVIiLCAiTU9OVEgiLCAiV0VFS19PRl9ZRUFSIiwgIldFRUtfT0ZfTU9OVEgiLAorICAgICAgICAiREFZX09GX01PTlRIIiwgIkRBWV9PRl9ZRUFSIiwgIkRBWV9PRl9XRUVLIiwKKyAgICAgICAgIkRBWV9PRl9XRUVLX0lOX01PTlRIIiwgIkFNX1BNIiwgIkhPVVIiLCAiSE9VUl9PRl9EQVkiLAorICAgICAgICAiTUlOVVRFIiwgIlNFQ09ORCIsICJNSUxMSVNFQ09ORCIsICJaT05FX09GRlNFVCIsCisgICAgICAgICJEU1RfT0ZGU0VUIiwgIllFQVJfV09ZIiwgIkRPV19MT0NBTCIsICJFWFRFTkRFRF9ZRUFSIiwKKyAgICAgICAgIkpVTElBTl9EQVkiLCAiTUlMTElTRUNPTkRTX0lOX0RBWSIsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyBuYW1lIGZvciBhIGZpZWxkLCBmb3IgZGVidWdnaW5nIGFuZCBleGNlcHRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZmllbGROYW1lKGludCBmaWVsZCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIEZJRUxEX05BTUVbZmllbGRdOworICAgICAgICB9IGNhdGNoIChBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuICJGaWVsZCAiICsgZmllbGQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aW1lIGFzIG1pbGxpc2Vjb25kcyB0byBKdWxpYW4gZGF5LgorICAgICAqIEBwYXJhbSBtaWxsaXMgdGhlIGdpdmVuIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBtaWxsaXNUb0p1bGlhbkRheShsb25nIG1pbGxpcykgeworICAgICAgICByZXR1cm4gKGludCkgKEVQT0NIX0pVTElBTl9EQVkgKyBmbG9vckRpdmlkZShtaWxsaXMsIE9ORV9EQVkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBKdWxpYW4gZGF5IHRvIHRpbWUgYXMgbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSBqdWxpYW4gdGhlIGdpdmVuIEp1bGlhbiBkYXkgbnVtYmVyLgorICAgICAqIEByZXR1cm4gdGltZSBhcyBtaWxsaXNlY29uZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIGp1bGlhbkRheVRvTWlsbGlzKGludCBqdWxpYW4pIHsKKyAgICAgICAgcmV0dXJuIChqdWxpYW4gLSBFUE9DSF9KVUxJQU5fREFZKSAqIE9ORV9EQVk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgb2Ygd2VlaywgZnJvbSBTVU5EQVkgdG8gU0FUVVJEQVksIGdpdmVuIGEgSnVsaWFuIGRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBqdWxpYW5EYXlUb0RheU9mV2VlayhpbnQganVsaWFuKSB7CisgICAgICAgIC8vIElmIGp1bGlhbiBpcyBuZWdhdGl2ZSwgdGhlbiBqdWxpYW4lNyB3aWxsIGJlIG5lZ2F0aXZlLCBzbyB3ZSBhZGp1c3QKKyAgICAgICAgLy8gYWNjb3JkaW5nbHkuICBKdWxpYW4gZGF5IDAgaXMgTW9uZGF5LgorICAgICAgICBpbnQgZGF5T2ZXZWVrID0gKGp1bGlhbiArIE1PTkRBWSkgJSA3OworICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgU1VOREFZKSB7CisgICAgICAgICAgICBkYXlPZldlZWsgKz0gNzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF5T2ZXZWVrOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBtaWxsaXNlY29uZHMgd2l0aG91dCByZWNvbXB1dGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgbG9uZyBpbnRlcm5hbEdldFRpbWVJbk1pbGxpcygpIHsKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIE5vdGUsIGluIDMuMCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuICdncmVnb3JpYW4nIGluIENhbGVuZGFyIHRvIGVtdWxhdGUgbGVnYWN5IGJlaGF2aW9yCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0YykKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJncmVnb3JpYW4iOworICAgIH0KKyAgICAKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSAqIDxpPmFjdHVhbDwvaT4KKyAgICAgKiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUgaXMKKyAgICAgKiBub3QsIGluIG1vc3QgY2FzZXMuCisgICAgICogQHBhcmFtIHR5cGUgdHlwZSBvZiBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQsIGVpdGhlciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFfSBvciB7QGxpbmsKKyAgICAgKiBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRX0uCisgICAgICogQHJldHVybiB0aGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIGJ5IDxpPnR5cGU8L2k+LCBvciBudWxsIGlmCisgICAgICogdGhpcyBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgICAgIHJldHVybiB0eXBlID09IFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSA/CisgICAgICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA6IHRoaXMudmFsaWRMb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSB0aGlzCisgICAgICogb2JqZWN0LiAgSWYgdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsCisgICAgICogYm90aCBhcmd1bWVudHMgc2hvdWxkIGJlIHNldCB0byBudWxsLiAgT3RoZXJ3aXNlLCBuZWl0aGVyCisgICAgICogc2hvdWxkIGJlIG51bGwuICBUaGUgYWN0dWFsIGxvY2FsZSBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIG9yCisgICAgICogbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZAorICAgICAqIGZvciB1c2UgYnkgZmFjdG9yaWVzIG9yIG90aGVyIGVudGl0aWVzIHRoYXQgY3JlYXRlIG9iamVjdHMgb2YKKyAgICAgKiB0aGlzIGNsYXNzLgorICAgICAqIEBwYXJhbSB2YWxpZCB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UKKyAgICAgKiBkYXRhLCBvciBudWxsCisgICAgICogQHBhcmFtIGFjdHVhbCB0aGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzCisgICAgICogb2JqZWN0LCBvciBudWxsCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSB2YWxpZCwgVUxvY2FsZSBhY3R1YWwpIHsKKyAgICAgICAgLy8gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgdG8gYW4gYXNzZXJ0aW9uIGxhdGVyCisgICAgICAgIGlmICgodmFsaWQgPT0gbnVsbCkgIT0gKGFjdHVhbCA9PSBudWxsKSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgLy8gQW5vdGhlciBjaGVjayB3ZSBjb3VsZCBkbyBpcyB0aGF0IHRoZSBhY3R1YWwgbG9jYWxlIGlzIGF0CisgICAgICAgIC8vIHRoZSBzYW1lIGxldmVsIG9yIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLgorICAgICAgICB0aGlzLnZhbGlkTG9jYWxlID0gdmFsaWQ7CisgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlID0gYWN0dWFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZSBkYXRhLCBvciBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHZhbGlkTG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBvYmplY3QsIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBhY3R1YWxMb2NhbGU7CisKKyAgICAvLyAtLS0tLS0tLSBFTkQgVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckZhY3RvcnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NjUyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDE4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisvKioKKyAqIEBwcm90b3R5cGUKKyAqLworaW50ZXJmYWNlIENhbGVuZGFyRmFjdG9yeSB7CisgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpOworICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKTsKK30KKyAgICAgICAgCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DYXNlSW5zZW5zaXRpdmVTdHJpbmcuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0Nhc2VJbnNlbnNpdGl2ZVN0cmluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1NmY0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYXNlSW5zZW5zaXRpdmVTdHJpbmcuamF2YQpAQCAtMCwwICsxLDczIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBBIHN0cmluZyB1c2VkIGFzIGEga2V5IGluIGphdmEudXRpbC5IYXNodGFibGUgYW5kIG90aGVyCisgKiBjb2xsZWN0aW9ucy4gIEl0IHJldGFpbnMgY2FzZSBpbmZvcm1hdGlvbiwgYnV0IGl0cyBlcXVhbHMoKSBhbmQKKyAqIGhhc2hDb2RlKCkgbWV0aG9kcyBpZ25vcmUgY2FzZS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIHsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzdHJpbmc7CisKKyAgICBwcml2YXRlIGludCBoYXNoID0gMDsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIENhc2VJbnNlbnRpdmVTdHJpbmcgb2JqZWN0IGZyb20gdGhlIGdpdmVuIHN0cmluZworICAgICAqIEBwYXJhbSBzIFRoZSBzdHJpbmcgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0IGZyb20gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENhc2VJbnNlbnNpdGl2ZVN0cmluZyhTdHJpbmcgcykgeworICAgICAgICBzdHJpbmcgPSBzOworICAgIH0KKyAgICAvKioKKyAgICAgKiByZXR1cm5zIHRoZSB1bmRlcmx5aW5nIHN0cmluZyAKKyAgICAgKiBAcmV0dXJuIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgeworICAgICAgICByZXR1cm4gc3RyaW5nOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoZSBvYmplY3Qgd2l0aCB0aGlzIAorICAgICAqIEBwYXJhbSBvIE9iamVjdCB0byBjb21wYXJlIHRoaXMgb2JqZWN0IHdpdGggCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVxdWFsc0lnbm9yZUNhc2UoKChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpbykuc3RyaW5nKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5lcXVhbHNJZ25vcmVDYXNlKChTdHJpbmcpbyk7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaGFzaENvZGUgb2YgdGhpcyBvYmplY3QKKyAgICAgKiBAcmV0dXJuIGludCBoYXNoY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGlmIChoYXNoID09IDApIHsKKyAgICAgICAgICAgIGhhc2ggPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHN0cmluZywgdHJ1ZSkuaGFzaENvZGUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFzaDsKKyAgICB9CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIHN1cGVyY2xhc3MgbWV0aG9kCisgICAgICogQHN0YWJsZSBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAJcmV0dXJuIHN0cmluZzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlMTQyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDg3MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyQXN0cm9ub21lcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyQ2FjaGU7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2Yge0BsaW5rIENhbGVuZGFyfQorICogdGhhdCBpbXBsZW1lbnRzIGEgdHJhZGl0aW9uYWwgQ2hpbmVzZSBjYWxlbmRhci4gIFRoZSB0cmFkaXRpb25hbCBDaGluZXNlCisgKiBjYWxlbmRhciBpcyBhIGx1bmlzb2xhciBjYWxlbmRhcjogRWFjaCBtb250aCBzdGFydHMgb24gYSBuZXcgbW9vbiwgYW5kCisgKiB0aGUgbW9udGhzIGFyZSBudW1iZXJlZCBhY2NvcmRpbmcgdG8gc29sYXIgZXZlbnRzLCBzcGVjaWZpY2FsbHksIHRvCisgKiBndWFyYW50ZWUgdGhhdCBtb250aCAxMSBhbHdheXMgY29udGFpbnMgdGhlIHdpbnRlciBzb2xzdGljZS4gIEluIG9yZGVyCisgKiB0byBhY2NvbXBsaXNoIHRoaXMsIGxlYXAgbW9udGhzIGFyZSBpbnNlcnRlZCBpbiBjZXJ0YWluIHllYXJzLiAgTGVhcAorICogbW9udGhzIGFyZSBudW1iZXJlZCB0aGUgc2FtZSBhcyB0aGUgbW9udGggdGhleSBmb2xsb3cuICBUaGUgZGVjaXNpb24gb2YKKyAqIHdoaWNoIG1vbnRoIGlzIGEgbGVhcCBtb250aCBkZXBlbmRzIG9uIHRoZSByZWxhdGl2ZSBtb3ZlbWVudHMgb2YgdGhlIHN1bgorICogYW5kIG1vb24uCisgKgorICogPHA+VGhpcyBjbGFzcyBkZWZpbmVzIG9uZSBhZGRpdGlvbiBmaWVsZCBiZXlvbmQgdGhvc2UgZGVmaW5lZCBieQorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+OiBUaGUgPGNvZGU+SVNfTEVBUF9NT05USDwvY29kZT4gZmllbGQgdGFrZXMgdGhlCisgKiB2YWx1ZSBvZiAwIGZvciBub3JtYWwgbW9udGhzLCBvciAxIGZvciBsZWFwIG1vbnRocy4KKyAqCisgKiA8cD5BbGwgYXN0cm9ub21pY2FsIGNvbXB1dGF0aW9ucyBhcmUgcGVyZm9ybWVkIHdpdGggcmVzcGVjdCB0byBhIHRpbWUKKyAqIHpvbmUgb2YgR01UKzg6MDAgYW5kIGEgbG9uZ2l0dWRlIG9mIDEyMCBkZWdyZWVzIGVhc3QuICBBbHRob3VnaCBzb21lCisgKiBjYWxlbmRhcnMgaW1wbGVtZW50IGEgaGlzdG9yaWNhbGx5IG1vcmUgYWNjdXJhdGUgY29udmVudGlvbiBvZiB1c2luZworICogQmVpamluZydzIGxvY2FsIGxvbmdpdHVkZSAoMTE2IGRlZ3JlZXMgMjUgbWludXRlcyBlYXN0KSBhbmQgdGltZSB6b25lCisgKiAoR01UKzc6NDU6NDApIGZvciBkYXRlcyBiZWZvcmUgMTkyOSwgd2UgZG8gbm90IGltcGxlbWVudCB0aGlzIGhlcmUuCisgKgorICogPHA+WWVhcnMgYXJlIGNvdW50ZWQgaW4gdHdvIGRpZmZlcmVudCB3YXlzIGluIHRoZSBDaGluZXNlIGNhbGVuZGFyLiAgVGhlCisgKiBmaXJzdCBtZXRob2QgaXMgYnkgc2VxdWVudGlhbCBudW1iZXJpbmcgZnJvbSB0aGUgNjFzdCB5ZWFyIG9mIHRoZSByZWlnbgorICogb2YgSHVhbmcgRGksIDI2MzcgQkNFLCB3aGljaCBpcyBkZXNpZ25hdGVkIHllYXIgMSBvbiB0aGUgQ2hpbmVzZQorICogY2FsZW5kYXIuICBUaGUgc2Vjb25kIG1ldGhvZCB1c2VzIDYwLXllYXIgY3ljbGVzIGZyb20gdGhlIHNhbWUgc3RhcnRpbmcKKyAqIHBvaW50LCB3aGljaCBpcyBkZXNpZ25hdGVkIHllYXIgMSBvZiBjeWNsZSAxLiAgSW4gdGhpcyBjbGFzcywgdGhlCisgKiA8Y29kZT5FWFRFTkRFRF9ZRUFSPC9jb2RlPiBmaWVsZCBjb250YWlucyB0aGUgc2VxdWVudGlhbCB5ZWFyIGNvdW50LgorICogVGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQgY29udGFpbnMgdGhlIGN5Y2xlIG51bWJlciwgYW5kIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgY29udGFpbnMgdGhlIHllYXIgb2YgdGhlIGN5Y2xlLCBhIHZhbHVlIGJldHdlZW4KKyAqIDEgYW5kIDYwLgorICoKKyAqIDxwPlRoZXJlIGlzIHNvbWUgdmFyaWF0aW9uIGluIHdoYXQgaXMgY29uc2lkZXJlZCB0aGUgc3RhcnRpbmcgcG9pbnQgb2YKKyAqIHRoZSBjYWxlbmRhciwgd2l0aCBzb21lIHNvdXJjZXMgc3RhcnRpbmcgaW4gdGhlIGZpcnN0IHllYXIgb2YgdGhlIHJlaWduCisgKiBvZiBIdWFuZyBEaSwgcmF0aGVyIHRoYW4gdGhlIDYxc3QuICBUaGlzIGdpdmVzIGNvbnRpbnVvdXMgeWVhciBudW1iZXJzCisgKiA2MCB5ZWFycyBncmVhdGVyIGFuZCBjeWNsZSBudW1iZXJzIG9uZSBncmVhdGVyIHRoYW4gd2hhdCB0aGlzIGNsYXNzCisgKiBpbXBsZW1lbnRzLgorICoKKyAqIDxwPkJlY2F1c2UgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiBkZWZpbmVzIGFuIGFkZGl0aW9uYWwgZmllbGQgYW5kCisgKiByZWRlZmluZXMgdGhlIHdheSB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpcyB1c2VkLCBpdCByZXF1aXJlcyBhIG5ldworICogZm9ybWF0IGNsYXNzLCA8Y29kZT5DaGluZXNlRGF0ZUZvcm1hdDwvY29kZT4uICBBcyBhbHdheXMsIHVzZSB0aGUKKyAqIG1ldGhvZHMgPGNvZGU+RGF0ZUZvcm1hdC5nZXRYeHhJbnN0YW5jZShDYWxlbmRhciBjYWwsLi4uKTwvY29kZT4gdG8KKyAqIG9idGFpbiBhIGZvcm1hdHRlciBmb3IgdGhpcyBjYWxlbmRhci4KKyAqCisgKiA8cD5SZWZlcmVuY2VzOjx1bD4KKyAqIAorICogPGxpPkRlcnNob3dpdHogYW5kIFJlaW5nb2xkLCA8aT5DYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnM8L2k+LAorICogQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTc8L2xpPgorICogCisgKiA8bGk+SGVsbWVyIEFzbGFrc2VuJ3MKKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cubWF0aC5udXMuZWR1LnNnL2FzbGFrc2VuL2NhbGVuZGFyL2NoaW5lc2Uuc2h0bWwiPgorICogQ2hpbmVzZSBDYWxlbmRhciBwYWdlPC9hPjwvbGk+CisgKgorICogPGxpPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnRvbmRlcmluZy5kay9jbGF1cy9jYWxlbmRhci5odG1sIj4KKyAqIENhbGVuZGFyIEZBUTwvYT48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+CisgKiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgc3ViY2xhc3NlZC48L3A+CisgKiA8cD4KKyAqIENoaW5lc2VDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1jaGluZXNlIjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA3MzEyMTEwNzUxOTQwOTI5NDIwTDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGV2ZWxvcGVyIE5vdGVzCisgICAgLy8gCisgICAgLy8gVGltZSBpcyByZXByZXNlbnRlZCBhcyBhIHNjYWxhciBpbiB0d28gd2F5cyBpbiB0aGlzIGNsYXNzLiAgT25lIGlzCisgICAgLy8gdGhlIHVzdWFsIFVUQyBlcG9jaCBtaWxsaXMsIHRoYXQgaXMsIG1pbGxpc2Vjb25kcyBhZnRlciBKYW51YXJ5IDEsCisgICAgLy8gMTk3MCBHcmVnb3JpYW4sIDA6MDA6MDAuMDAwIFVUQy4gIFRoZSBvdGhlciBpcyBpbiB0ZXJtcyBvZiAnbG9jYWwKKyAgICAvLyBkYXlzLicgIFRoaXMgaXMgdGhlIG51bWJlciBvZiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCBHcmVnb3JpYW4sCisgICAgLy8gbG9jYWwgdG8gQmVpamluZywgQ2hpbmEgKHNpbmNlIGFsbCBjb21wdXRhdGlvbnMgb2YgdGhlIENoaW5lc2UKKyAgICAvLyBjYWxlbmRhciBhcmUgZG9uZSBpbiBCZWlqaW5nKS4gIFRoYXQgaXMsIDAgcmVwcmVzZW50cyBKYW51YXJ5IDEsCisgICAgLy8gMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkuICBDb252ZXJzaW9uIG9mIGxvY2FsIGRheXMgdG8gYW5kIGZyb20KKyAgICAvLyBzdGFuZGFyZCBlcG9jaCBtaWxsaXNlY29uZHMgaXMgYWNjb21wbGlzaGVkIGJ5IHRoZSBkYXlzVG9NaWxsaXMoKQorICAgIC8vIGFuZCBtaWxsaXNUb0RheXMoKSBtZXRob2RzLgorICAgIC8vIAorICAgIC8vIFNldmVyYWwgbWV0aG9kcyB1c2UgY2FjaGVzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuICBDYWNoZXMgYXJlIGF0CisgICAgLy8gdGhlIG9iamVjdCwgbm90IGNsYXNzIGxldmVsLCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHR5cGljYWwKKyAgICAvLyB1c2FnZSB3aWxsIGJlIHRvIGhhdmUgb25lIGluc3RhbmNlIG9mIENoaW5lc2VDYWxlbmRhciBhdCBhIHRpbWUuCisgCisgICAgLyoqCisgICAgICogV2UgaGF2ZSBvbmUgaW5zdGFuY2UgcGVyIG9iamVjdCwgYW5kIHdlIGRvbid0IHN5bmNocm9uaXplIGl0IGJlY2F1c2UKKyAgICAgKiBDYWxlbmRhciBkb2Vzbid0IHN1cHBvcnQgbXVsdGl0aHJlYWRlZCBleGVjdXRpb24gaW4gdGhlIGZpcnN0IHBsYWNlLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRoYXQgbWFwcyBHcmVnb3JpYW4geWVhciB0byBsb2NhbCBkYXlzIG9mIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBAc2VlICN3aW50ZXJTb2xzdGljZQorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENhbGVuZGFyQ2FjaGUgd2ludGVyU29sc3RpY2VDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0aGF0IG1hcHMgR3JlZ29yaWFuIHllYXIgdG8gbG9jYWwgZGF5cyBvZiBDaGluZXNlIG5ldyB5ZWFyLgorICAgICAqIEBzZWUgI25ld1llYXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBDYWxlbmRhckNhY2hlIG5ld1llYXJDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZSBjdXJyZW50IHllYXIgaXMgYSBsZWFwIHllYXIuICBVcGRhdGVkIHdpdGggZWFjaCB0aW1lIHRvCisgICAgICogZmllbGRzIHJlc29sdXRpb24uCisgICAgICogQHNlZSAjY29tcHV0ZUNoaW5lc2VGaWVsZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGlzTGVhcFllYXI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlIGNhbGVuZGFyIHdpdGggdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIENoaW5lc2VDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlIGNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRpbWUgem9uZSBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZSBjYWxlbmRhciB3aXRoIHRoZSBnaXZlbiB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aW1lIHpvbmUgZm9yIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHVsb2NhbGUgZm9yIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFB1YmxpYyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRmllbGQgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBtb250aCBpcyBhIGxlYXAgbW9udGguCisgICAgICogU2hvdWxkIGhhdmUgYSB2YWx1ZSBvZiAwIGZvciBub24tbGVhcCBtb250aHMsIGFuZCAxIGZvciBsZWFwIG1vbnRocy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBJU19MRUFQX01PTlRIID0gQkFTRV9GSUVMRF9DT1VOVDsKKworICAgIC8qKgorICAgICAqIENvdW50IG9mIGZpZWxkcyBpbiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT1VOVCA9IElTX0xFQVBfTU9OVEggKyAxOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYWxlbmRhciBmcmFtZXdvcmsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gYWxsb2NhdGUgb3VyIGFkZGl0aW9uYWwgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdIGhhbmRsZUNyZWF0ZUZpZWxkcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBpbnRbRklFTERfQ09VTlRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFycmF5IGRlZmluaW5nIHRoZSBsaW1pdHMgb2YgZmllbGQgdmFsdWVzIGZvciB0aGlzIGNsYXNzLiAgRmllbGQKKyAgICAgKiBsaW1pdHMgd2hpY2ggYXJlIGludmFyaWFudCB3aXRoIHJlc3BlY3QgdG8gY2FsZW5kYXIgc3lzdGVtIGFuZAorICAgICAqIGRlZmluZWQgYnkgQ2FsZW5kYXIgYXJlIGxlZnQgYmxhbmsuCisgICAgICoKKyAgICAgKiBOb3RlczoKKyAgICAgKgorICAgICAqIEVSQSA1MDAwMDAwIC8gNjAgPSA4MzMzMy4KKyAgICAgKgorICAgICAqIE1PTlRIIFRoZXJlIGFyZSAxMiBvciAxMyBsdW5hciBtb250aHMgaW4gYSB5ZWFyLiAgSG93ZXZlciwgd2UgYWx3YXlzCisgICAgICogbnVtYmVyIHRoZW0gMC4uMTEsIHdpdGggYW4gaW50ZXJjYWxhdGVkLCBpZGVudGljYWxseSBudW1iZXJlZCBsZWFwCisgICAgICogbW9udGgsIHdoZW4gbmVjZXNzYXJ5LgorICAgICAqCisgICAgICogREFZX09GX1lFQVIgSW4gYSBub24tbGVhcCB5ZWFyIHRoZXJlIGFyZSAzNTMsIDM1NCwgb3IgMzU1IGRheXMuICBJbgorICAgICAqIGEgbGVhcCB5ZWFyIHRoZXJlIGFyZSAzODMsIDM4NCwgb3IgMzg1IGRheXMuCisgICAgICoKKyAgICAgKiBXRUVLX09GX1lFQVIgVGhlIGxlYXN0IG1heGltdW0gb2NjdXJzIGlmIHRoZXJlIGFyZSAzNTMgZGF5cyBpbiB0aGUKKyAgICAgKiB5ZWFyLCBhbmQgdGhlIGZpcnN0IDYgYXJlIHRoZSBsYXN0IHdlZWsgb2YgdGhlIHByZXZpb3VzIHllYXIuICBUaGVuCisgICAgICogd2UgaGF2ZSA0OSBmdWxsIHdlZWtzIGFuZCA0IGRheXMgaW4gdGhlIGxhc3Qgd2VlazogNiArIDQ5KjcgKyA0ID0KKyAgICAgKiAzNTMuICBTbyB0aGUgbGVhc3QgbWF4aW11bSBpcyA1MC4gIFRoZSBtYXhpbXVtIG9jY3VycyBpZiB0aGVyZSBhcmUKKyAgICAgKiAzODUgZGF5cyBpbiB0aGUgeWVhciwgYW5kIFdPWSAxIGV4dGVuZHMgNiBkYXlzIGludG8gdGhlIHByaW9yIHllYXIuCisgICAgICogVGhlbiB0aGVyZSBhcmUgNTQgZnVsbCB3ZWVrcywgYW5kIDYgZGF5cyBpbiB0aGUgbGFzdCB3ZWVrOiAxICsgNTQqNworICAgICAqICsgNiA9IDM4NS4gIFRoZSA2IGRheXMgb2YgdGhlIGxhc3Qgd2VlayB3aWxsIGZhbGwgaW50byBXT1kgMSBvZiB0aGUKKyAgICAgKiBuZXh0IHllYXIuICBNYXhpbXVtIGlzIDU1LgorICAgICAqCisgICAgICogV0VFS19PRl9NT05USCBJbiBhIDI5IGRheSBtb250aCwgaWYgdGhlIGZpcnN0IDcgZGF5cyBtYWtlIHVwIHdlZWsgMQorICAgICAqIHRoYXQgbGVhdmVzIDMgZnVsbCB3ZWVrcyBhbmQgMSBkYXkgYXQgdGhlIGVuZC4gIFRoZSBsZWFzdCBtYXhpbXVtIGlzCisgICAgICogdGh1cyA1LiAgSW4gYSAzMCBkYXlzIG1vbnRoLCBpZiB0aGUgcHJldmlvdXMgNiBkYXlzIGJlbG9uZyBXT00gMSBvZgorICAgICAqIHRoaXMgbW9udGgsIHdlIGhhdmUgNCBmdWxsIHdlZWtzIGFuZCAxIGRheXMgYXQgdGhlIGVuZCAod2hpY2gKKyAgICAgKiB0ZWNobmljYWxseSB3aWxsIGJlIFdPTSAxIG9mIHRoZSBuZXh0IG1vbnRoLCBidXQgd2lsbCBiZSByZXBvcnRlZCBieQorICAgICAqIHRpbWUtPmZpZWxkcyBhbmQgaGVuY2UgYnkgZ2V0QWN0dWFsTWF4aW11bSBhcyBXT00gNiBvZiB0aGlzIG1vbnRoKS4KKyAgICAgKiBNYXhpbXVtIGlzIDYuCisgICAgICoKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCBJbiBhIDI5IG9yIDMwIGRheSBtb250aCwgdGhlcmUgYXJlIDQgZnVsbCB3ZWVrcworICAgICAqIHBsdXMgMSBvciAyIGRheXMgYXQgdGhlIGVuZCwgc28gdGhlIG1heGltdW0gaXMgYWx3YXlzIDUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgIExlYXN0ICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgIDgzMzMzLCAgIDgzMzMzIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA3MCwgICAgICA3MCB9LCAvLyBZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgIDExLCAgICAgIDExIH0sIC8vIE1PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDUwLCAgICAgIDU1IH0sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAgNSwgICAgICAgNiB9LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDI5LCAgICAgIDMwIH0sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgIDM1MywgICAgIDM4NSB9LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7ICAgICAgIC0xLCAgICAgICAtMSwgICAgICAgNSwgICAgICAgNSB9LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBBTV9QTQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTlVURQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7IC01MDAwMDAxLCAtNTAwMDAwMSwgNTAwMDAwMSwgNTAwMDAwMSB9LCAvLyBZRUFSX1dPWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBET1dfTE9DQUwKKyAgICAgICAgeyAtNTAwMDAwMCwgLTUwMDAwMDAsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDEsICAgICAgIDEgfSwgLy8gSVNfTEVBUF9NT05USAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byByZXR1cm4gdGhlIGxpbWl0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgYWJzdHJhY3QgQ2FsZW5kYXIgbWV0aG9kIHRvIHJldHVybiB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIGRlZmluZWQgYnkgdGhlIGN1cnJlbnQgZmllbGRzLiAgVGhpcyB3aWxsIHVzZSBlaXRoZXIgdGhlIEVSQSBhbmQKKyAgICAgKiBZRUFSIGZpZWxkIGFzIHRoZSBjeWNsZSBhbmQgeWVhci1vZi1jeWNsZSwgb3IgdGhlIEVYVEVOREVEX1lFQVIKKyAgICAgKiBmaWVsZCBhcyB0aGUgY29udGludW91cyB5ZWFyIGNvdW50LCBkZXBlbmRpbmcgb24gd2hpY2ggaXMgbmV3ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXN0U3RhbXAoRVJBLCBZRUFSLCBVTlNFVCkgPD0gZ2V0U3RhbXAoRVhURU5ERURfWUVBUikpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBjeWNsZSA9IGludGVybmFsR2V0KEVSQSwgMSkgLSAxOyAvLyAwLWJhc2VkIGN5Y2xlCisgICAgICAgICAgICB5ZWFyID0gY3ljbGUgKiA2MCArIGludGVybmFsR2V0KFlFQVIsIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIG1ldGhvZCB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbgorICAgICAqIGV4dGVuZGVkIHllYXIgYW5kIG1vbnRoLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2QgYWxzbyByZWFkcyB0aGUgSVNfTEVBUF9NT05USCBmaWVsZCB0byBkZXRlcm1pbmUKKyAgICAgKiB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gbW9udGggaXMgYSBsZWFwIG1vbnRoLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TW9udGhMZW5ndGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisgICAgICAgIGludCB0aGlzU3RhcnQgPSBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleHRlbmRlZFllYXIsIG1vbnRoLCB0cnVlKSAtCisgICAgICAgICAgICBFUE9DSF9KVUxJQU5fREFZICsgMTsgLy8gSnVsaWFuIGRheSAtPiBsb2NhbCBkYXlzCisgICAgICAgIGludCBuZXh0U3RhcnQgPSBuZXdNb29uTmVhcih0aGlzU3RhcnQgKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBuZXh0U3RhcnQgLSB0aGlzU3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRnJhbWV3b3JrIG1ldGhvZCB0byBjcmVhdGUgYSBjYWxlbmRhci1zcGVjaWZpYyBEYXRlRm9ybWF0IG9iamVjdAorICAgICAqIHVzaW5nIHRoZSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFRoaXMgbWV0aG9kIGlzIHJlc3BvbnNpYmxlIGZvcgorICAgICAqIGNyZWF0aW5nIHRoZSBjYWxlbmRhci0gc3BlY2lmaWMgRGF0ZUZvcm1hdCBhbmQgRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKiBvYmplY3RzIGFzIG5lZWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdCBoYW5kbGVHZXREYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENoaW5lc2VEYXRlRm9ybWF0KHBhdHRlcm4sIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmllbGQgcmVzb2x1dGlvbiB0YWJsZSB0aGF0IGluY29ycG9yYXRlcyBJU19MRUFQX01PTlRILgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdW10gQ0hJTkVTRV9EQVRFX1BSRUNFREVOQ0UgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHsgREFZX09GX01PTlRIIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9ZRUFSIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfTU9OVEgsIElTX0xFQVBfTU9OVEggfSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGFkZCBJU19MRUFQX01PTlRIIHRvIHRoZSBmaWVsZCByZXNvbHV0aW9uCisgICAgICogdGFibGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdW11bXSBnZXRGaWVsZFJlc29sdXRpb25UYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIENISU5FU0VfREFURV9QUkVDRURFTkNFOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkanVzdCB0aGlzIGNhbGVuZGFyIHRvIGJlIGRlbHRhIG1vbnRocyBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbgorICAgICAqIHN0YXJ0IHBvc2l0aW9uLCBwaW5uaW5nIHRoZSBkYXkgb2YgbW9udGggaWYgbmVjZXNzYXJ5LiAgVGhlIHN0YXJ0CisgICAgICogcG9zaXRpb24gaXMgZ2l2ZW4gYXMgYSBsb2NhbCBkYXlzIG51bWJlciBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBtb250aAorICAgICAqIGFuZCBhIGRheS1vZi1tb250aC4gIFVzZWQgYnkgYWRkKCkgYW5kIHJvbGwoKS4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbiB0aGUgbG9jYWwgZGF5cyBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBvZiB0aGUKKyAgICAgKiBzdGFydCBwb3NpdGlvbiAoZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpKQorICAgICAqIEBwYXJhbSBkb20gdGhlIDEtYmFzZWQgZGF5LW9mLW1vbnRoIG9mIHRoZSBzdGFydCBwb3NpdGlvbgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgbnVtYmVyIG9mIG1vbnRocyB0byBtb3ZlIGZvcndhcmQgb3IgYmFja3dhcmQgZnJvbQorICAgICAqIHRoZSBzdGFydCBwb3NpdGlvbgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBvZmZzZXRNb250aChpbnQgbmV3TW9vbiwgaW50IGRvbSwgaW50IGRlbHRhKSB7CisgICAgICAgIC8vIE1vdmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgbW9udGggYmVmb3JlIG91ciB0YXJnZXQgbW9udGguCisgICAgICAgIG5ld01vb24gKz0gKGludCkgKENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIICogKGRlbHRhIC0gMC41KSk7CisKKyAgICAgICAgLy8gU2VhcmNoIGZvcndhcmQgdG8gdGhlIHRhcmdldCBtb250aCdzIG5ldyBtb29uCisgICAgICAgIG5ld01vb24gPSBuZXdNb29uTmVhcihuZXdNb29uLCB0cnVlKTsKKworICAgICAgICAvLyBGaW5kIHRoZSB0YXJnZXQgZG9tCisgICAgICAgIGludCBqZCA9IG5ld01vb24gKyBFUE9DSF9KVUxJQU5fREFZIC0gMSArIGRvbTsKKworICAgICAgICAvLyBQaW4gdGhlIGRvbS4gIEluIHRoaXMgY2FsZW5kYXIgYWxsIG1vbnRocyBhcmUgMjkgb3IgMzAgZGF5cworICAgICAgICAvLyBzbyBwaW5uaW5nIGp1c3QgbWVhbnMgaGFuZGxpbmcgZG9tIDMwLgorICAgICAgICBpZiAoZG9tID4gMjkpIHsKKyAgICAgICAgICAgIHNldChKVUxJQU5fREFZLCBqZC0xKTsKKyAgICAgICAgICAgIC8vIFRPRE8gRml4IHRoaXMuICBXZSByZWFsbHkgc2hvdWxkbid0IGV2ZXIgaGF2ZSB0bworICAgICAgICAgICAgLy8gZXhwbGljaXRseSBjYWxsIGNvbXBsZXRlKCkuICBUaGlzIGlzIGVpdGhlciBhIGJ1ZyBpbgorICAgICAgICAgICAgLy8gdGhpcyBtZXRob2QsIGluIENoaW5lc2VDYWxlbmRhciwgb3IgaW4KKyAgICAgICAgICAgIC8vIENhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oKS4gIEkgc3VzcGVjdCB0aGUgbGFzdC4KKyAgICAgICAgICAgIGNvbXBsZXRlKCk7CisgICAgICAgICAgICBpZiAoZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfTU9OVEgpID49IGRvbSkgeworICAgICAgICAgICAgICAgIHNldChKVUxJQU5fREFZLCBqZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXQoSlVMSUFOX0RBWSwgamQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gaGFuZGxlIGxlYXAgbW9udGhzIHByb3Blcmx5LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgaWYgKGFtb3VudCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IGdldChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBkYXkgPSBnZXQoSlVMSUFOX0RBWSkgLSBFUE9DSF9KVUxJQU5fREFZOyAvLyBHZXQgbG9jYWwgZGF5CisgICAgICAgICAgICAgICAgaW50IG1vb24gPSBkYXkgLSBkb20gKyAxOyAvLyBOZXcgbW9vbiAKKyAgICAgICAgICAgICAgICBvZmZzZXRNb250aChtb29uLCBkb20sIGFtb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLmFkZChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gaGFuZGxlIGxlYXAgbW9udGhzIHByb3Blcmx5LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJvbGwoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGlmIChhbW91bnQgIT0gMCkgeworICAgICAgICAgICAgICAgIGludCBkb20gPSBnZXQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgZGF5ID0gZ2V0KEpVTElBTl9EQVkpIC0gRVBPQ0hfSlVMSUFOX0RBWTsgLy8gR2V0IGxvY2FsIGRheQorICAgICAgICAgICAgICAgIGludCBtb29uID0gZGF5IC0gZG9tICsgMTsgLy8gTmV3IG1vb24gKHN0YXJ0IG9mIHRoaXMgbW9udGgpCisKKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRocm91Z2hvdXQgdGhlIGZvbGxvd2luZzogIE1vbnRocyAxMiBhbmQgMSBhcmUgbmV2ZXIKKyAgICAgICAgICAgICAgICAvLyBmb2xsb3dlZCBieSBhIGxlYXAgbW9udGggKEQmUiBwLiAxODUpLgorCisgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgYWRqdXN0ZWQgbW9udGggbnVtYmVyIG0uICBUaGlzIGlzIHplcm8tYmFzZWQKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZSBmcm9tIDAuLjExIGluIGEgbm9uLWxlYXAgeWVhciwgYW5kIGZyb20gMC4uMTIgaW4gYQorICAgICAgICAgICAgICAgIC8vIGxlYXAgeWVhci4KKyAgICAgICAgICAgICAgICBpbnQgbSA9IGdldChNT05USCk7IC8vIDAtYmFzZWQgbW9udGgKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFwWWVhcikgeyAvLyAobWVtYmVyIHZhcmlhYmxlKQorICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0KElTX0xFQVBfTU9OVEgpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBhIHByaW9yIGxlYXAgbW9udGguICAoSW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb2xsb3dpbmcsIG1vbnRoIDAgaXMgdGhlIGZpcnN0IG1vbnRoIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8geWVhci4pICBNb250aCAwIGlzIG5ldmVyIGZvbGxvd2VkIGJ5IGEgbGVhcAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9udGgsIGFuZCB3ZSBrbm93IG1vbnRoIG0gaXMgbm90IGEgbGVhcCBtb250aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vb24xIHdpbGwgYmUgdGhlIHN0YXJ0IG9mIG1vbnRoIDAgaWYgdGhlcmUgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGxlYXAgbW9udGggYmV0d2VlbiBtb250aCAwIGFuZCBtb250aCBtOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgdGhlIHN0YXJ0IG9mIG1vbnRoIDEuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9vbjEgPSBtb29uIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSAoQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggKiAobSAtIDAuNSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9vbjEgPSBuZXdNb29uTmVhcihtb29uMSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMZWFwTW9udGhCZXR3ZWVuKG1vb24xLCBtb29uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE5vdyBkbyB0aGUgc3RhbmRhcmQgcm9sbCBjb21wdXRhdGlvbiBvbiBtLCB3aXRoIHRoZQorICAgICAgICAgICAgICAgIC8vIGFsbG93ZWQgcmFuZ2Ugb2YgMC4ubi0xLCB3aGVyZSBuIGlzIDEyIG9yIDEzLgorICAgICAgICAgICAgICAgIGludCBuID0gaXNMZWFwWWVhciA/IDEzIDogMTI7IC8vIE1vbnRocyBpbiB0aGlzIHllYXIKKyAgICAgICAgICAgICAgICBpbnQgbmV3TSA9IChtICsgYW1vdW50KSAlIG47CisgICAgICAgICAgICAgICAgaWYgKG5ld00gPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld00gKz0gbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobmV3TSAhPSBtKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldE1vbnRoKG1vb24sIGRvbSwgbmV3TSAtIG0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdXBwb3J0IG1ldGhvZHMgYW5kIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgeWVhciBvZiB0aGUgQ2hpbmVzZSBjYWxlbmRhciwgdGhlIDYxc3QgeWVhciBvZiB0aGUgcmVpZ24KKyAgICAgKiBvZiBIdWFuZyBEaS4gIFNvbWUgc291cmNlcyB1c2UgdGhlIGZpcnN0IHllYXIgb2YgaGlzIHJlaWduLAorICAgICAqIHJlc3VsdGluZyBpbiBFWFRFTkRFRF9ZRUFSIHZhbHVlcyA2MCB5ZWFycyBncmVhdGVyIGFuZCBFUkEgKGN5Y2xlKQorICAgICAqIHZhbHVlcyBvbmUgZ3JlYXRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0hJTkVTRV9FUE9DSF9ZRUFSID0gLTI2MzY7IC8vIEdyZWdvcmlhbiB5ZWFyCisKKyAgICAvKioKKyAgICAgKiBUaGUgb2Zmc2V0IGZyb20gR01UIGluIG1pbGxpc2Vjb25kcyBhdCB3aGljaCB3ZSBwZXJmb3JtIGFzdHJvbm9taWNhbAorICAgICAqIGNvbXB1dGF0aW9ucy4gIFNvbWUgc291cmNlcyB1c2UgYSBkaWZmZXJlbnQgaGlzdG9yaWNhbGx5IGFjY3VyYXRlCisgICAgICogb2Zmc2V0IG9mIEdNVCs3OjQ1OjQwIGZvciB5ZWFycyBiZWZvcmUgMTkyOTsgd2UgZG8gbm90IGRvIHRoaXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBDSElOQV9PRkZTRVQgPSA4Kk9ORV9IT1VSOworCisgICAgLyoqCisgICAgICogVmFsdWUgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIHRoZSBsb2NhbCBkYXlzIG9mIGEgbmV3IG1vb24gdG8KKyAgICAgKiBnZXQgY2xvc2UgdG8gdGhlIG5leHQgb3IgcHJpb3IgbmV3IG1vb24sIGJ1dCBub3QgY3Jvc3MgaXQuICBNdXN0IGJlCisgICAgICogPj0gMSBhbmQgPCBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1lOT0RJQ19HQVAgPSAyNTsKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgbG9jYWwgZGF5cyB0byBVVEMgZXBvY2ggbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEByZXR1cm4gbWlsbGlzZWNvbmRzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEdNVAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5c1RvTWlsbGlzKGludCBkYXlzKSB7CisgICAgICAgIHJldHVybiAoZGF5cyAqIE9ORV9EQVkpIC0gQ0hJTkFfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgVVRDIGVwb2NoIG1pbGxpc2Vjb25kcyB0byBsb2NhbCBkYXlzLgorICAgICAqIEBwYXJhbSBtaWxsaXMgbWlsbGlzZWNvbmRzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEdNVAorICAgICAqIEByZXR1cm4gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1RvRGF5cyhsb25nIG1pbGxpcykgeworICAgICAgICByZXR1cm4gKGludCkgZmxvb3JEaXZpZGUobWlsbGlzICsgQ0hJTkFfT0ZGU0VULCBPTkVfREFZKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzdHJvbm9taWNhbCBjb21wdXRhdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWFqb3Igc29sYXIgdGVybSBvbiBvciBhZnRlciBEZWNlbWJlciAxNSBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBHcmVnb3JpYW4geWVhciwgdGhhdCBpcywgdGhlIHdpbnRlciBzb2xzdGljZSBvZiB0aGUgZ2l2ZW4geWVhci4KKyAgICAgKiBDb21wdXRhdGlvbnMgYXJlIHJlbGF0aXZlIHRvIEFzaWEvU2hhbmdoYWkgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBneWVhciBhIEdyZWdvcmlhbiB5ZWFyCisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlCisgICAgICogd2ludGVyIHNvbHN0aWNlIG9mIHRoZSBnaXZlbiB5ZWFyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2ludGVyU29sc3RpY2UoaW50IGd5ZWFyKSB7CisKKyAgICAgICAgbG9uZyBjYWNoZVZhbHVlID0gd2ludGVyU29sc3RpY2VDYWNoZS5nZXQoZ3llYXIpOworCisgICAgICAgIGlmIChjYWNoZVZhbHVlID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKyAgICAgICAgICAgIC8vIEluIGJvb2tzIERlY2VtYmVyIDE1IGlzIHVzZWQsIGJ1dCBpdCBmYWlscyBmb3Igc29tZSB5ZWFycworICAgICAgICAgICAgLy8gdXNpbmcgb3VyIGFsZ29yaXRobXMsIGUuZy46IDEyOTggMTM5MSAxNDkyIDE1NTMgMTU2MC4gIFRoYXQKKyAgICAgICAgICAgIC8vIGlzLCB3aW50ZXJTb2xzdGljZSgxMjk4KSBzdGFydHMgc2VhcmNoIGF0IERlYyAxNCAwODowMDowMAorICAgICAgICAgICAgLy8gUFNUIDEyOTggd2l0aCBhIGZpbmFsIHJlc3VsdCBvZiBEZWMgMTQgMTA6MzE6NTkgUFNUIDEyOTkuCisgICAgICAgICAgICBsb25nIG1zID0gZGF5c1RvTWlsbGlzKGNvbXB1dGVHcmVnb3JpYW5Nb250aFN0YXJ0KGd5ZWFyLCBERUNFTUJFUikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIC0gRVBPQ0hfSlVMSUFOX0RBWSk7CisgICAgICAgICAgICBhc3Ryby5zZXRUaW1lKG1zKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2ludGVyIHNvbHN0aWNlIGlzIDI3MCBkZWdyZWVzIHNvbGFyIGxvbmdpdHVkZSBha2EgRG9uZ3poaQorICAgICAgICAgICAgbG9uZyBzb2xhckxvbmcgPSBhc3Ryby5nZXRTdW5UaW1lKENhbGVuZGFyQXN0cm9ub21lci5XSU5URVJfU09MU1RJQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICBjYWNoZVZhbHVlID0gbWlsbGlzVG9EYXlzKHNvbGFyTG9uZyk7CisgICAgICAgICAgICB3aW50ZXJTb2xzdGljZUNhY2hlLnB1dChneWVhciwgY2FjaGVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChpbnQpIGNhY2hlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjbG9zZXN0IG5ldyBtb29uIHRvIHRoZSBnaXZlbiBkYXRlLCBzZWFyY2hpbmcgZWl0aGVyCisgICAgICogZm9yd2FyZCBvciBiYWNrd2FyZCBpbiB0aW1lLgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEBwYXJhbSBhZnRlciBpZiB0cnVlLCBzZWFyY2ggZm9yIGEgbmV3IG1vb24gb24gb3IgYWZ0ZXIgdGhlIGdpdmVuCisgICAgICogZGF0ZTsgb3RoZXJ3aXNlLCBzZWFyY2ggZm9yIGEgbmV3IG1vb24gYmVmb3JlIGl0CisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlIG5lYXJlc3QKKyAgICAgKiBuZXcgbW9vbiBhZnRlciBvciBiZWZvcmUgPGNvZGU+ZGF5czwvY29kZT4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXdNb29uTmVhcihpbnQgZGF5cywgYm9vbGVhbiBhZnRlcikgeworICAgICAgICAKKyAgICAgICAgYXN0cm8uc2V0VGltZShkYXlzVG9NaWxsaXMoZGF5cykpOworICAgICAgICBsb25nIG5ld01vb24gPSBhc3Ryby5nZXRNb29uVGltZShDYWxlbmRhckFzdHJvbm9tZXIuTkVXX01PT04sIGFmdGVyKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBtaWxsaXNUb0RheXMobmV3TW9vbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuZWFyZXN0IGludGVnZXIgbnVtYmVyIG9mIHN5bm9kaWMgbW9udGhzIGJldHdlZW4KKyAgICAgKiB0d28gZGF0ZXMuCisgICAgICogQHBhcmFtIGRheTEgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHBhcmFtIGRheTIgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHJldHVybiB0aGUgbmVhcmVzdCBpbnRlZ2VyIG51bWJlciBvZiBtb250aHMgYmV0d2VlbiBkYXkxIGFuZCBkYXkyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3lub2RpY01vbnRoc0JldHdlZW4oaW50IGRheTEsIGludCBkYXkyKSB7CisgICAgICAgIHJldHVybiAoaW50KSBNYXRoLnJvdW5kKChkYXkyIC0gZGF5MSkgLyBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtYWpvciBzb2xhciB0ZXJtIG9uIG9yIGJlZm9yZSBhIGdpdmVuIGRhdGUuICBUaGlzCisgICAgICogd2lsbCBiZSBhbiBpbnRlZ2VyIGZyb20gMS4uMTIsIHdpdGggMSBjb3JyZXNwb25kaW5nIHRvIDMzMCBkZWdyZWVzLAorICAgICAqIDIgdG8gMCBkZWdyZWVzLCAzIHRvIDMwIGRlZ3JlZXMsLi4uLCBhbmQgMTIgdG8gMzAwIGRlZ3JlZXMuCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWFqb3JTb2xhclRlcm0oaW50IGRheXMpIHsKKyAgICAgICAgCisgICAgICAgIGFzdHJvLnNldFRpbWUoZGF5c1RvTWlsbGlzKGRheXMpKTsKKworICAgICAgICAvLyBDb21wdXRlIChmbG9vcihzb2xhckxvbmdpdHVkZSAvIChwaS82KSkgKyAyKSAlIDEyCisgICAgICAgIGludCB0ZXJtID0gKChpbnQpIE1hdGguZmxvb3IoNiAqIGFzdHJvLmdldFN1bkxvbmdpdHVkZSgpIC8gTWF0aC5QSSkgKyAyKSAlIDEyOworICAgICAgICBpZiAodGVybSA8IDEpIHsKKyAgICAgICAgICAgIHRlcm0gKz0gMTI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlcm07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG1vbnRoIGxhY2tzIGEgbWFqb3Igc29sYXIgdGVybS4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgYSBuZXcKKyAgICAgKiBtb29uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGhhc05vTWFqb3JTb2xhclRlcm0oaW50IG5ld01vb24pIHsKKyAgICAgICAgCisgICAgICAgIGludCBtc3QgPSBtYWpvclNvbGFyVGVybShuZXdNb29uKTsKKyAgICAgICAgaW50IG5tbiA9IG5ld01vb25OZWFyKG5ld01vb24gKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgIGludCBtc3R0ID0gbWFqb3JTb2xhclRlcm0obm1uKTsKKyAgICAgICAgcmV0dXJuIG1zdCA9PSBtc3R0OworICAgICAgICAvKgorICAgICAgICByZXR1cm4gbWFqb3JTb2xhclRlcm0obmV3TW9vbikgPT0KKyAgICAgICAgICAgIG1ham9yU29sYXJUZXJtKG5ld01vb25OZWFyKG5ld01vb24gKyBTWU5PRElDX0dBUCwgdHJ1ZSkpOworICAgICAgICAqLworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGltZSB0byBmaWVsZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgbGVhcCBtb250aCBvbiBvciBhZnRlciBtb250aCBuZXdNb29uMSBhbmQKKyAgICAgKiBhdCBvciBiZWZvcmUgbW9udGggbmV3TW9vbjIuCisgICAgICogQHBhcmFtIG5ld01vb24xIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiBhCisgICAgICogbmV3IG1vb24KKyAgICAgKiBAcGFyYW0gbmV3TW9vbjIgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIGEKKyAgICAgKiBuZXcgbW9vbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0xlYXBNb250aEJldHdlZW4oaW50IG5ld01vb24xLCBpbnQgbmV3TW9vbjIpIHsKKworICAgICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIGRlYnVnIHRoZSB0aW1lT2ZBbmdsZSBkaXZlcmdlbmNlIGJ1Zy4KKyAgICAgICAgLy8gUmVtb3ZlIHRoaXMgbGF0ZXIuIExpdSAxMS85LzAwCisgICAgICAgIC8vIERFQlVHCisgICAgICAgIGlmIChzeW5vZGljTW9udGhzQmV0d2VlbihuZXdNb29uMSwgbmV3TW9vbjIpID49IDUwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJpc0xlYXBNb250aEJldHdlZW4oIiArIG5ld01vb24xICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIG5ld01vb24yICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik6IEludmFsaWQgcGFyYW1ldGVycyIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChuZXdNb29uMiA+PSBuZXdNb29uMSkgJiYKKyAgICAgICAgICAgIChpc0xlYXBNb250aEJldHdlZW4obmV3TW9vbjEsIG5ld01vb25OZWFyKG5ld01vb24yIC0gU1lOT0RJQ19HQVAsIGZhbHNlKSkgfHwKKyAgICAgICAgICAgICBoYXNOb01ham9yU29sYXJUZXJtKG5ld01vb24yKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgQ2hpbmVzZQorICAgICAqIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcyBhcmUgYWxyZWFkeSBzZXQgd2hlbiB0aGlzCisgICAgICogbWV0aG9kIGlzIGNhbGxlZC4gIFRoZSBnZXRHcmVnb3JpYW5YeHgoKSBtZXRob2RzIHJldHVybiBHcmVnb3JpYW4KKyAgICAgKiBjYWxlbmRhciBlcXVpdmFsZW50cyBmb3IgdGhlIGdpdmVuIEp1bGlhbiBkYXkuCisgICAgICoKKyAgICAgKiA8cD5Db21wdXRlIHRoZSBDaGluZXNlQ2FsZW5kYXItc3BlY2lmaWMgZmllbGQgSVNfTEVBUF9NT05USC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKworICAgICAgICBjb21wdXRlQ2hpbmVzZUZpZWxkcyhqdWxpYW5EYXkgLSBFUE9DSF9KVUxJQU5fREFZLCAvLyBsb2NhbCBkYXlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEdyZWdvcmlhblllYXIoKSwgZ2V0R3JlZ29yaWFuTW9udGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7IC8vIHNldCBhbGwgZmllbGRzCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBmaWVsZHMgZm9yIHRoZSBDaGluZXNlIGNhbGVuZGFyIHN5c3RlbS4gIFRoaXMgbWV0aG9kIGNhbgorICAgICAqIGVpdGhlciBzZXQgYWxsIHJlbGV2YW50IGZpZWxkcywgYXMgcmVxdWlyZWQgYnkKKyAgICAgKiA8Y29kZT5oYW5kbGVDb21wdXRlRmllbGRzKCk8L2NvZGU+LCBvciBpdCBjYW4ganVzdCBzZXQgdGhlIE1PTlRIIGFuZAorICAgICAqIElTX0xFQVBfTU9OVEggZmllbGRzLCBhcyByZXF1aXJlZCBieQorICAgICAqIDxjb2RlPmhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KCk8L2NvZGU+LgorICAgICAqCisgICAgICogPHA+QXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBtZXRob2Qgc2V0cyB7QGxpbmsgI2lzTGVhcFllYXJ9LgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiB0aGUKKyAgICAgKiBkYXRlIHRvIGNvbXB1dGUgZmllbGRzIGZvcgorICAgICAqIEBwYXJhbSBneWVhciB0aGUgR3JlZ29yaWFuIHllYXIgb2YgdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBAcGFyYW0gZ21vbnRoIHRoZSBHcmVnb3JpYW4gbW9udGggb2YgdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBAcGFyYW0gc2V0QWxsRmllbGRzIGlmIHRydWUsIHNldCB0aGUgRVhURU5ERURfWUVBUiwgRVJBLCBZRUFSLAorICAgICAqIERBWV9PRl9NT05USCwgYW5kIERBWV9PRl9ZRUFSIGZpZWxkcy4gIEluIGVpdGhlciBjYXNlIHNldCB0aGUgTU9OVEgKKyAgICAgKiBhbmQgSVNfTEVBUF9NT05USCBmaWVsZHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXB1dGVDaGluZXNlRmllbGRzKGludCBkYXlzLCBpbnQgZ3llYXIsIGludCBnbW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2V0QWxsRmllbGRzKSB7CisKKyAgICAgICAgLy8gRmluZCB0aGUgd2ludGVyIHNvbHN0aWNlcyBiZWZvcmUgYW5kIGFmdGVyIHRoZSB0YXJnZXQgZGF0ZS4KKyAgICAgICAgLy8gVGhlc2UgZGVmaW5lIHRoZSBib3VuZGFyaWVzIG9mIHRoaXMgQ2hpbmVzZSB5ZWFyLCBzcGVjaWZpY2FsbHksCisgICAgICAgIC8vIHRoZSBwb3NpdGlvbiBvZiBtb250aCAxMSwgd2hpY2ggYWx3YXlzIGNvbnRhaW5zIHRoZSBzb2xzdGljZS4KKyAgICAgICAgLy8gV2Ugd2FudCBzb2xzdGljZUJlZm9yZSA8PSBkYXRlIDwgc29sc3RpY2VBZnRlci4KKyAgICAgICAgaW50IHNvbHN0aWNlQmVmb3JlOworICAgICAgICBpbnQgc29sc3RpY2VBZnRlciA9IHdpbnRlclNvbHN0aWNlKGd5ZWFyKTsKKyAgICAgICAgaWYgKGRheXMgPCBzb2xzdGljZUFmdGVyKSB7CisgICAgICAgICAgICBzb2xzdGljZUJlZm9yZSA9IHdpbnRlclNvbHN0aWNlKGd5ZWFyIC0gMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzb2xzdGljZUJlZm9yZSA9IHNvbHN0aWNlQWZ0ZXI7CisgICAgICAgICAgICBzb2xzdGljZUFmdGVyID0gd2ludGVyU29sc3RpY2UoZ3llYXIgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIHN0YXJ0IG9mIHRoZSBtb250aCBhZnRlciBtb250aCAxMS4gIFRoaXMgd2lsbCBiZSBlaXRoZXIKKyAgICAgICAgLy8gdGhlIHByaW9yIG1vbnRoIDEyIG9yIGxlYXAgbW9udGggMTEgKHZlcnkgcmFyZSkuICBBbHNvIGZpbmQgdGhlCisgICAgICAgIC8vIHN0YXJ0IG9mIHRoZSBmb2xsb3dpbmcgbW9udGggMTEuCisgICAgICAgIGludCBmaXJzdE1vb24gPSBuZXdNb29uTmVhcihzb2xzdGljZUJlZm9yZSArIDEsIHRydWUpOworICAgICAgICBpbnQgbGFzdE1vb24gPSBuZXdNb29uTmVhcihzb2xzdGljZUFmdGVyICsgMSwgZmFsc2UpOworICAgICAgICBpbnQgdGhpc01vb24gPSBuZXdNb29uTmVhcihkYXlzICsgMSwgZmFsc2UpOyAvLyBTdGFydCBvZiB0aGlzIG1vbnRoCisgICAgICAgIC8vIE5vdGU6IGlzTGVhcFllYXIgaXMgYSBtZW1iZXIgdmFyaWFibGUKKyAgICAgICAgaXNMZWFwWWVhciA9IHN5bm9kaWNNb250aHNCZXR3ZWVuKGZpcnN0TW9vbiwgbGFzdE1vb24pID09IDEyOworCisgICAgICAgIGludCBtb250aCA9IHN5bm9kaWNNb250aHNCZXR3ZWVuKGZpcnN0TW9vbiwgdGhpc01vb24pOworICAgICAgICBpZiAoaXNMZWFwWWVhciAmJiBpc0xlYXBNb250aEJldHdlZW4oZmlyc3RNb29uLCB0aGlzTW9vbikpIHsKKyAgICAgICAgICAgIG1vbnRoLS07CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1vbnRoIDwgMSkgeworICAgICAgICAgICAgbW9udGggKz0gMTI7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTGVhcE1vbnRoID0gaXNMZWFwWWVhciAmJgorICAgICAgICAgICAgaGFzTm9NYWpvclNvbGFyVGVybSh0aGlzTW9vbikgJiYKKyAgICAgICAgICAgICFpc0xlYXBNb250aEJldHdlZW4oZmlyc3RNb29uLCBuZXdNb29uTmVhcih0aGlzTW9vbiAtIFNZTk9ESUNfR0FQLCBmYWxzZSkpOworCisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBtb250aC0xKTsgLy8gQ29udmVydCBmcm9tIDEtYmFzZWQgdG8gMC1iYXNlZAorICAgICAgICBpbnRlcm5hbFNldChJU19MRUFQX01PTlRILCBpc0xlYXBNb250aD8xOjApOworCisgICAgICAgIGlmIChzZXRBbGxGaWVsZHMpIHsKKworICAgICAgICAgICAgaW50IHllYXIgPSBneWVhciAtIENISU5FU0VfRVBPQ0hfWUVBUjsKKyAgICAgICAgICAgIGlmIChtb250aCA8IDExIHx8CisgICAgICAgICAgICAgICAgZ21vbnRoID49IEpVTFkpIHsKKyAgICAgICAgICAgICAgICB5ZWFyKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGRheXMgLSB0aGlzTW9vbiArIDE7CisKKyAgICAgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworCisgICAgICAgICAgICAvLyAwLT4wLDYwICAxLT4xLDEgIDYwLT4xLDYwICA2MS0+MiwxICBldGMuCisgICAgICAgICAgICBpbnRbXSB5ZWFyT2ZDeWNsZSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBpbnQgY3ljbGUgPSBmbG9vckRpdmlkZSh5ZWFyLTEsIDYwLCB5ZWFyT2ZDeWNsZSk7CisgICAgICAgICAgICBpbnRlcm5hbFNldChFUkEsIGN5Y2xlKzEpOworICAgICAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeWVhck9mQ3ljbGVbMF0rMSk7CisKKyAgICAgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgZGF5T2ZNb250aCk7CisKKyAgICAgICAgICAgIC8vIERheXMgd2lsbCBiZSBiZWZvcmUgdGhlIGZpcnN0IG5ldyB5ZWFyIHdlIGNvbXB1dGUgaWYgdGhpcworICAgICAgICAgICAgLy8gZGF0ZSBpcyBpbiBtb250aCAxMSwgbGVhcCAxMSwgMTIuICBUaGVyZSBpcyBuZXZlciBhIGxlYXAgMTIuCisgICAgICAgICAgICAvLyBOZXcgeWVhciBjb21wdXRhdGlvbnMgYXJlIGNhY2hlZCBzbyB0aGlzIHNob3VsZCBiZSBjaGVhcCBpbgorICAgICAgICAgICAgLy8gdGhlIGxvbmcgcnVuLgorICAgICAgICAgICAgaW50IG5ld1llYXIgPSBuZXdZZWFyKGd5ZWFyKTsKKyAgICAgICAgICAgIGlmIChkYXlzIDwgbmV3WWVhcikgeworICAgICAgICAgICAgICAgIG5ld1llYXIgPSBuZXdZZWFyKGd5ZWFyLTEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheXMgLSBuZXdZZWFyICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZpZWxkcyB0byB0aW1lCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIENoaW5lc2UgbmV3IHllYXIgb2YgdGhlIGdpdmVuIEdyZWdvcmlhbiB5ZWFyLgorICAgICAqIEBwYXJhbSBneWVhciBhIEdyZWdvcmlhbiB5ZWFyCisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlCisgICAgICogQ2hpbmVzZSBuZXcgeWVhciBvZiB0aGUgZ2l2ZW4geWVhciAodGhpcyB3aWxsIGJlIGEgbmV3IG1vb24pCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV3WWVhcihpbnQgZ3llYXIpIHsKKworICAgICAgICBsb25nIGNhY2hlVmFsdWUgPSBuZXdZZWFyQ2FjaGUuZ2V0KGd5ZWFyKTsKKworICAgICAgICBpZiAoY2FjaGVWYWx1ZSA9PSBDYWxlbmRhckNhY2hlLkVNUFRZKSB7CisKKyAgICAgICAgICAgIGludCBzb2xzdGljZUJlZm9yZT0gd2ludGVyU29sc3RpY2UoZ3llYXIgLSAxKTsKKyAgICAgICAgICAgIGludCBzb2xzdGljZUFmdGVyID0gd2ludGVyU29sc3RpY2UoZ3llYXIpOworICAgICAgICAgICAgaW50IG5ld01vb24xID0gbmV3TW9vbk5lYXIoc29sc3RpY2VCZWZvcmUgKyAxLCB0cnVlKTsKKyAgICAgICAgICAgIGludCBuZXdNb29uMiA9IG5ld01vb25OZWFyKG5ld01vb24xICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICAgICAgaW50IG5ld01vb24xMSA9IG5ld01vb25OZWFyKHNvbHN0aWNlQWZ0ZXIgKyAxLCBmYWxzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzeW5vZGljTW9udGhzQmV0d2VlbihuZXdNb29uMSwgbmV3TW9vbjExKSA9PSAxMiAmJgorICAgICAgICAgICAgICAgIChoYXNOb01ham9yU29sYXJUZXJtKG5ld01vb24xKSB8fCBoYXNOb01ham9yU29sYXJUZXJtKG5ld01vb24yKSkpIHsKKyAgICAgICAgICAgICAgICBjYWNoZVZhbHVlID0gbmV3TW9vbk5lYXIobmV3TW9vbjIgKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhY2hlVmFsdWUgPSBuZXdNb29uMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmV3WWVhckNhY2hlLnB1dChneWVhciwgY2FjaGVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChpbnQpIGNhY2hlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YgdGhlCisgICAgICogZ2l2ZW4gbW9udGggaW4gdGhlIGdpdmVuIGV4dGVuZGVkIHllYXIuCisgICAgICogCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2QgcmVhZHMgdGhlIElTX0xFQVBfTU9OVEggZmllbGQgdG8gZGV0ZXJtaW5lCisgICAgICogd2hldGhlciB0aGUgZ2l2ZW4gbW9udGggaXMgYSBsZWFwIG1vbnRoLgorICAgICAqIEBwYXJhbSBleWVhciB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgemVyby1iYXNlZCBtb250aC4gIFRoZSBtb250aCBpcyBhbHNvIGRldGVybWluZWQKKyAgICAgKiBieSByZWFkaW5nIHRoZSBJU19MRUFQX01PTlRIIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZ2l2ZW4gbW9udGggYW5kIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIG1vbnRoIGlzIG91dCBvZiByYW5nZSwgYWRqdXN0IGl0IGludG8gcmFuZ2UsIGFuZAorICAgICAgICAvLyBtb2RpZnkgdGhlIGV4dGVuZGVkIHllYXIgdmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkgeworICAgICAgICAgICAgaW50W10gcmVtID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGV5ZWFyICs9IGZsb29yRGl2aWRlKG1vbnRoLCAxMiwgcmVtKTsKKyAgICAgICAgICAgIG1vbnRoID0gcmVtWzBdOworICAgICAgICB9CisKKyAgICAgICAgaW50IGd5ZWFyID0gZXllYXIgKyBDSElORVNFX0VQT0NIX1lFQVIgLSAxOyAvLyBHcmVnb3JpYW4geWVhcgorICAgICAgICBpbnQgbmV3WWVhciA9IG5ld1llYXIoZ3llYXIpOworICAgICAgICBpbnQgbmV3TW9vbiA9IG5ld01vb25OZWFyKG5ld1llYXIgKyBtb250aCAqIDI5LCB0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGludCBqdWxpYW5EYXkgPSBuZXdNb29uICsgRVBPQ0hfSlVMSUFOX0RBWTsKKworICAgICAgICAvLyBTYXZlIGZpZWxkcyBmb3IgbGF0ZXIgcmVzdG9yYXRpb24KKyAgICAgICAgaW50IHNhdmVNb250aCA9IGludGVybmFsR2V0KE1PTlRIKTsKKyAgICAgICAgaW50IHNhdmVJc0xlYXBNb250aCA9IGludGVybmFsR2V0KElTX0xFQVBfTU9OVEgpOworCisgICAgICAgIC8vIElnbm9yZSBJU19MRUFQX01PTlRIIGZpZWxkIGlmIHVzZU1vbnRoIGlzIGZhbHNlCisgICAgICAgIGludCBpc0xlYXBNb250aCA9IHVzZU1vbnRoID8gc2F2ZUlzTGVhcE1vbnRoIDogMDsKKworICAgICAgICBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGp1bGlhbkRheSk7CisgICAgICAgIAorICAgICAgICAvLyBUaGlzIHdpbGwgbW9kaWZ5IHRoZSBNT05USCBhbmQgSVNfTEVBUF9NT05USCBmaWVsZHMgKG9ubHkpCisgICAgICAgIGNvbXB1dGVDaGluZXNlRmllbGRzKG5ld01vb24sIGdldEdyZWdvcmlhblllYXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0R3JlZ29yaWFuTW9udGgoKSwgZmFsc2UpOyAgICAgICAgCisKKyAgICAgICAgaWYgKG1vbnRoICE9IGludGVybmFsR2V0KE1PTlRIKSB8fAorICAgICAgICAgICAgaXNMZWFwTW9udGggIT0gaW50ZXJuYWxHZXQoSVNfTEVBUF9NT05USCkpIHsKKyAgICAgICAgICAgIG5ld01vb24gPSBuZXdNb29uTmVhcihuZXdNb29uICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICAgICAganVsaWFuRGF5ID0gbmV3TW9vbiArIEVQT0NIX0pVTElBTl9EQVk7CisgICAgICAgIH0KKworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgc2F2ZU1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoSVNfTEVBUF9NT05USCwgc2F2ZUlzTGVhcE1vbnRoKTsKKworICAgICAgICByZXR1cm4ganVsaWFuRGF5IC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJjaGluZXNlIjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSByZWFkT2JqZWN0LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uCisgICAgeworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgCisgICAgICAgIC8qIHNldCB1cCB0aGUgdHJhbnNpZW50IGNhY2hlcy4uLiAqLworICAgICAgICBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgd2ludGVyU29sc3RpY2VDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgICAgIG5ld1llYXJDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDaGluZXNlQ2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDaGluZXNlIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdEJ5dGVBcnJheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdEJ5dGVBcnJheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NzExZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Qnl0ZUFycmF5LmphdmEKQEAgLTAsMCArMSwzODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIGNsYXNzIENvbXBhY3RBVHlwZUFycmF5IDogdXNlIG9ubHkgb24gcHJpbWl0aXZlIGRhdGEgdHlwZXMKKyAqIFByb3ZpZGVzIGEgY29tcGFjdCB3YXkgdG8gc3RvcmUgaW5mb3JtYXRpb24gdGhhdCBpcyBpbmRleGVkIGJ5IFVuaWNvZGUKKyAqIHZhbHVlcywgc3VjaCBhcyBjaGFyYWN0ZXIgcHJvcGVydGllcywgdHlwZXMsIGtleWJvYXJkIHZhbHVlcywgZXRjLlRoaXMKKyAqIGlzIHZlcnkgdXNlZnVsIHdoZW4geW91IGhhdmUgYSBibG9jayBvZiBVbmljb2RlIGRhdGEgdGhhdCBjb250YWlucworICogc2lnbmlmaWNhbnQgdmFsdWVzIHdoaWxlIHRoZSByZXN0IG9mIHRoZSBVbmljb2RlIGRhdGEgaXMgdW51c2VkIGluIHRoZQorICogYXBwbGljYXRpb24gb3Igd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAKKyAqIEhhbiBpZGVvZ3JhcGhzIGhhdmUgdGhlIHNhbWUgdmFsdWUuICBIb3dldmVyLCBsb29rdXAgaXMgbXVjaCBmYXN0ZXIgdGhhbiBhCisgKiBoYXNoIHRhYmxlLgorICogQSBjb21wYWN0IGFycmF5IG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBBIGNvbXBhY3QgYXJyYXkgaXMgY29tcG9zZWQgb2YgYSBpbmRleCBhcnJheSBhbmQgdmFsdWUgYXJyYXkuICBUaGUgaW5kZXgKKyAqIGFycmF5IGNvbnRhaW5zIHRoZSBpbmRpY2llcyBvZiBVbmljb2RlIGNoYXJhY3RlcnMgdG8gdGhlIHZhbHVlIGFycmF5LgorICoKKyAqIEBzZWUgICAgICAgICAgICAgICAgQ29tcGFjdENoYXJBcnJheQorICogQGF1dGhvciAgICAgICAgICAgICBIZWxlbmEgU2hpaAorICogQGludGVybmFsCisgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbXBhY3RCeXRlQXJyYXkgaW1wbGVtZW50cyBDbG9uZWFibGUgeworCisgICAgLyoqCisgICAgICogVGhlIHRvdGFsIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAgZmluYWwgaW50IFVOSUNPREVDT1VOVCA9NjU1MzY7CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIGZvciBDb21wYWN0Qnl0ZUFycmF5LCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUKKyAgICAgKiBjb21wYWN0IGFycmF5IGlzIDAuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoKQorICAgIHsKKyAgICAgICAgdGhpcygoYnl0ZSkwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Qnl0ZUFycmF5KGJ5dGUgZGVmYXVsdFZhbHVlKQorICAgIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIHZhbHVlcyA9IG5ldyBieXRlW1VOSUNPREVDT1VOVF07CisgICAgICAgIGluZGljZXMgPSBuZXcgY2hhcltJTkRFWENPVU5UXTsKKyAgICAgICAgaGFzaGVzID0gbmV3IGludFtJTkRFWENPVU5UXTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICB2YWx1ZXNbaV0gPSBkZWZhdWx0VmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKShpPDxCTE9DS1NISUZUKTsKKyAgICAgICAgICAgIGhhc2hlc1tpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisKKyAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RCeXRlQXJyYXkuCisgICAgICogQHBhcmFtIGluZGV4QXJyYXkgdGhlIGluZGljaWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZXMgdGhlIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Qnl0ZUFycmF5KGNoYXIgaW5kZXhBcnJheVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgbmV3VmFsdWVzW10pCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGluZGV4QXJyYXkubGVuZ3RoICE9IElOREVYQ09VTlQpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGluZGV4ID0gaW5kZXhBcnJheVtpXTsKKyAgICAgICAgICAgIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gbmV3VmFsdWVzLmxlbmd0aCtCTE9DS0NPVU5UKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICB9CisgICAgICAgIGluZGljZXMgPSBpbmRleEFycmF5OworICAgICAgICB2YWx1ZXMgPSBuZXdWYWx1ZXM7CisgICAgICAgIGlzQ29tcGFjdCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RCeXRlQXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgUkxFLWVuY29kZWQgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIHZhbHVlQXJyYXkgdGhlIFJMRS1lbmNvZGVkIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBpbmRleCBvciB2YWx1ZSBhcnJheSBpcworICAgICAqICAgICAgICAgIHRoZSB3cm9uZyBzaXplLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Qnl0ZUFycmF5KFN0cmluZyBpbmRleEFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFycmF5KQorICAgIHsKKyAgICAgICAgdGhpcyggVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShpbmRleEFycmF5KSwKKyAgICAgICAgICAgICAgVXRpbGl0eS5STEVTdHJpbmdUb0J5dGVBcnJheSh2YWx1ZUFycmF5KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtYXBwZWQgdmFsdWUgb2YgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBnZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHJldHVybiB0aGUgbWFwcGVkIHZhbHVlIG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZSBlbGVtZW50QXQoY2hhciBpbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiAodmFsdWVzWyhpbmRpY2VzW2luZGV4ID4+IEJMT0NLU0hJRlRdICYgMHhGRkZGKQorICAgICAgICAgICAgICAgICAgICAgICArIChpbmRleCAmIEJMT0NLTUFTSyldKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBuZXcgdmFsdWUgZm9yIGEgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICogU2V0IGF1dG9tYXRpY2FsbHkgZXhwYW5kcyB0aGUgYXJyYXkgaWYgaXQgaXMgY29tcGFjdGVkLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIHNldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyBtYXBwZWQgdmFsdWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbGVtZW50QXQoY2hhciBpbmRleCwgYnl0ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChpc0NvbXBhY3QpCisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgdmFsdWVzWyhpbnQpaW5kZXhdID0gdmFsdWU7CisgICAgICAgIHRvdWNoQmxvY2soaW5kZXggPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBuZXcgdmFsdWVzIGZvciBhIHJhbmdlIG9mIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydGluZyBvZmZzZXQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kaW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyBtYXBwZWQgdmFsdWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbGVtZW50QXQoY2hhciBzdGFydCwgY2hhciBlbmQsIGJ5dGUgdmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkgeworICAgICAgICAgICAgZXhwYW5kKCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPD0gZW5kOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IHZhbHVlOworICAgICAgICAgICAgdG91Y2hCbG9jayhpID4+IEJMT0NLU0hJRlQsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBDb21wYWN0IHRoZSBhcnJheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KCkgeworICAgICAgICBjb21wYWN0KGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0IHRoZSBhcnJheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KGJvb2xlYW4gZXhoYXVzdGl2ZSkKKyAgICB7CisgICAgICAgIGlmICghaXNDb21wYWN0KSB7CisgICAgICAgICAgICBpbnQgbGltaXRDb21wYWN0ZWQgPSAwOworICAgICAgICAgICAgaW50IGlCbG9ja1N0YXJ0ID0gMDsKKyAgICAgICAgICAgIGNoYXIgaVVudG91Y2hlZCA9IDB4RkZGRjsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgKytpLCBpQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICBib29sZWFuIHRvdWNoZWQgPSBibG9ja1RvdWNoZWQoaSk7CisgICAgICAgICAgICAgICAgaWYgKCF0b3VjaGVkICYmIGlVbnRvdWNoZWQgIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIG5vIHZhbHVlcyBpbiB0aGlzIGJsb2NrIHdlcmUgc2V0LCB3ZSBjYW4ganVzdCBzZXQgaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIGluZGV4IHRvIGJlIHRoZSBzYW1lIGFzIHNvbWUgb3RoZXIgYmxvY2sgd2l0aCBubyB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0LCBhc3N1bWluZyB3ZSd2ZSBzZWVuIG9uZSB5ZXQuCisgICAgICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSBpVW50b3VjaGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBqQmxvY2tTdGFydCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGxpbWl0Q29tcGFjdGVkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraiwgakJsb2NrU3RhcnQgKz0gQkxPQ0tDT1VOVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc2hlc1tpXSA9PSBoYXNoZXNbal0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlSZWdpb25NYXRjaGVzKHZhbHVlcywgaUJsb2NrU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgakJsb2NrU3RhcnQsIEJMT0NLQ09VTlQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRpY2VzW2ldID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZGlkbid0IG1hdGNoLCBzbyBjb3B5ICYgdXBkYXRlCisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHZhbHVlcywgaUJsb2NrU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBqQmxvY2tTdGFydCwgQkxPQ0tDT1VOVCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNoZXNbal0gPSBoYXNoZXNbaV07CisgICAgICAgICAgICAgICAgICAgICAgICArK2xpbWl0Q29tcGFjdGVkOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1bnRvdWNoZWQgYmxvY2sgd2UndmUgc2VlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1lbWJlciBpdHMgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVVudG91Y2hlZCA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIGRvbmUgY29tcGFjdGluZywgc28gbm93IG1ha2UgdGhlIGFycmF5IHNob3J0ZXIKKyAgICAgICAgICAgIGludCBuZXdTaXplID0gbGltaXRDb21wYWN0ZWQqQkxPQ0tDT1VOVDsKKyAgICAgICAgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtuZXdTaXplXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodmFsdWVzLCAwLCByZXN1bHQsIDAsIG5ld1NpemUpOworICAgICAgICAgICAgdmFsdWVzID0gcmVzdWx0OworICAgICAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGFycmF5cyBvZiBkb3VibGVzLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKi8KKyAgICBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoYnl0ZVtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldICE9IHRhcmdldFtpICsgZGVsdGFdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbWVtYmVyIHRoYXQgYSBzcGVjaWZpZWQgYmxvY2sgd2FzICJ0b3VjaGVkIiwgaS5lLiBoYWQgYSB2YWx1ZSBzZXQuCisgICAgICogVW50b3VjaGVkIGJsb2NrcyBjYW4gYmUgc2tpcHBlZCB3aGVuIGNvbXBhY3RpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHRvdWNoQmxvY2soaW50IGksIGludCB2YWx1ZSkgeworICAgICAgICBoYXNoZXNbaV0gPSAoaGFzaGVzW2ldICsgKHZhbHVlPDwxKSkgfCAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJ5IHdoZXRoZXIgYSBzcGVjaWZpZWQgYmxvY2sgd2FzICJ0b3VjaGVkIiwgaS5lLiBoYWQgYSB2YWx1ZSBzZXQuCisgICAgICogVW50b3VjaGVkIGJsb2NrcyBjYW4gYmUgc2tpcHBlZCB3aGVuIGNvbXBhY3RpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGJsb2NrVG91Y2hlZChpbnQgaSkgeworICAgICAgICByZXR1cm4gaGFzaGVzW2ldICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZSBvbmx5LiAgRG8gbm90IG1vZGlmeSB0aGUgcmVzdWx0LCB0aGUgYmVoYXZpb3Igb2YKKyAgICAgKiBtb2RpZmllZCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGNoYXJbXSBnZXRJbmRleEFycmF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbmRpY2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBieXRlW10gZ2V0VmFsdWVBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDb21wYWN0Qnl0ZUFycmF5IG90aGVyID0gKENvbXBhY3RCeXRlQXJyYXkpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBvdGhlci52YWx1ZXMgPSAoYnl0ZVtdKXZhbHVlcy5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIuaW5kaWNlcyA9IChjaGFyW10paW5kaWNlcy5jbG9uZSgpOworICAgICAgICAgICAgaWYgKGhhc2hlcyAhPSBudWxsKSBvdGhlci5oYXNoZXMgPSAoaW50W10paGFzaGVzLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gY29tcGFjdCBhcnJheSBvYmplY3RzLgorICAgICAqIEBwYXJhbSBvYmogdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgY29tcGFjdCBhcnJheSBvYmplY3QgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyB0aGUgY29tcGFjdCBhcnJheSBvYmplY3Qgb2JqOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgICAgICAgICAgICAgICAgICAgICAgLy8gcXVpY2sgY2hlY2sKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgICAgICAgICAvLyBzYW1lIGNsYXNzPworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBDb21wYWN0Qnl0ZUFycmF5IG90aGVyID0gKENvbXBhY3RCeXRlQXJyYXkpIG9iajsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVTklDT0RFQ09VTlQ7IGkrKykgeworICAgICAgICAgICAgLy8gY291bGQgYmUgc3BlZCB1cCBsYXRlcgorICAgICAgICAgICAgaWYgKGVsZW1lbnRBdCgoY2hhcilpKSAhPSBvdGhlci5lbGVtZW50QXQoKGNoYXIpaSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOyAvLyB3ZSBtYWRlIGl0IHRocm91Z2ggdGhlIGd1YW50bGV0LgorICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyB0aGUgaGFzaCBjb2RlIGZvciB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGluY3JlbWVudCA9IE1hdGgubWluKDMsIHZhbHVlcy5sZW5ndGgvMTYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDM3ICsgdmFsdWVzW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwcml2YXRlCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4cGFuZGluZyB0YWtlcyB0aGUgYXJyYXkgYmFjayB0byBhIDY1NTM2IGVsZW1lbnQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZCgpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkgeworICAgICAgICAgICAgYnl0ZVtdICB0ZW1wQXJyYXk7CisgICAgICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICAgICAgdGVtcEFycmF5ID0gbmV3IGJ5dGVbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBVTklDT0RFQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGJ5dGUgdmFsdWUgPSBlbGVtZW50QXQoKGNoYXIpaSk7CisgICAgICAgICAgICAgICAgdGVtcEFycmF5W2ldID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdG91Y2hCbG9jayhpID4+IEJMT0NLU0hJRlQsIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVzID0gbnVsbDsKKyAgICAgICAgICAgIHZhbHVlcyA9IHRlbXBBcnJheTsKKyAgICAgICAgICAgIGlzQ29tcGFjdCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS1NISUZUID03OworICAgIHByaXZhdGUgc3RhdGljICBmaW5hbCBpbnQgQkxPQ0tDT1VOVCA9KDE8PEJMT0NLU0hJRlQpOworICAgIHByaXZhdGUgc3RhdGljICBmaW5hbCBpbnQgSU5ERVhTSElGVCA9KDE2LUJMT0NLU0hJRlQpOworICAgIHByaXZhdGUgc3RhdGljICBmaW5hbCBpbnQgSU5ERVhDT1VOVCA9KDE8PElOREVYU0hJRlQpOworICAgIHByaXZhdGUgc3RhdGljICBmaW5hbCBpbnQgQkxPQ0tNQVNLID0gQkxPQ0tDT1VOVCAtIDE7CisKKyAgICBwcml2YXRlIGJ5dGVbXSB2YWx1ZXM7CisgICAgcHJpdmF0ZSBjaGFyIGluZGljZXNbXTsKKyAgICBwcml2YXRlIGludFtdIGhhc2hlczsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb21wYWN0OworICAgIGJ5dGUgZGVmYXVsdFZhbHVlOworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RDaGFyQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RDaGFyQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Mjg2ZGVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhCkBAIC0wLDAgKzEsNDEwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogY2xhc3MgQ29tcGFjdEFUeXBlQXJyYXkgOiB1c2Ugb25seSBvbiBwcmltaXRpdmUgZGF0YSB0eXBlcworICogUHJvdmlkZXMgYSBjb21wYWN0IHdheSB0byBzdG9yZSBpbmZvcm1hdGlvbiB0aGF0IGlzIGluZGV4ZWQgYnkgVW5pY29kZQorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuVGhpcworICogaXMgdmVyeSB1c2VmdWwgd2hlbiB5b3UgaGF2ZSBhIGJsb2NrIG9mIFVuaWNvZGUgZGF0YSB0aGF0IGNvbnRhaW5zCisgKiBzaWduaWZpY2FudCB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlCisgKiBhcHBsaWNhdGlvbiBvciB3aGVuIHlvdSBoYXZlIGEgbG90IG9mIHJlZHVuZGFuY2UsIHN1Y2ggYXMgd2hlcmUgYWxsIDIxLDAwMAorICogSGFuIGlkZW9ncmFwaHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gIEhvd2V2ZXIsIGxvb2t1cCBpcyBtdWNoIGZhc3RlciB0aGFuIGEKKyAqIGhhc2ggdGFibGUuCisgKiBBIGNvbXBhY3QgYXJyYXkgb2YgYW55IHByaW1pdGl2ZSBkYXRhIHR5cGUgc2VydmVzIHR3byBwdXJwb3NlczoKKyAqIDxVTCB0eXBlID0gcm91bmQ+CisgKiAgICAgPExJPkZhc3QgYWNjZXNzIG9mIHRoZSBpbmRleGVkIHZhbHVlcy4KKyAqICAgICA8TEk+U21hbGxlciBtZW1vcnkgZm9vdHByaW50LgorICogPC9VTD4KKyAqIEEgY29tcGFjdCBhcnJheSBpcyBjb21wb3NlZCBvZiBhIGluZGV4IGFycmF5IGFuZCB2YWx1ZSBhcnJheS4gIFRoZSBpbmRleAorICogYXJyYXkgY29udGFpbnMgdGhlIGluZGljaWVzIG9mIFVuaWNvZGUgY2hhcmFjdGVycyB0byB0aGUgdmFsdWUgYXJyYXkuCisgKiBAc2VlICAgICAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXkKKyAqIEBhdXRob3IgICAgICAgICAgICAgSGVsZW5hIFNoaWgKKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0Q2hhckFycmF5IGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgIGZpbmFsIGludCBVTklDT0RFQ09VTlQgPSA2NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdENoYXJBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChjaGFyKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Q2hhckFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGNoYXJbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdENoYXJBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3VmFsdWVzW10pCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGluZGV4QXJyYXkubGVuZ3RoICE9IElOREVYQ09VTlQpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGluZGV4ID0gaW5kZXhBcnJheVtpXTsKKyAgICAgICAgICAgIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gbmV3VmFsdWVzLmxlbmd0aCtCTE9DS0NPVU5UKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICB9CisgICAgICAgIGluZGljZXMgPSBpbmRleEFycmF5OworICAgICAgICB2YWx1ZXMgPSBuZXdWYWx1ZXM7CisgICAgICAgIGlzQ29tcGFjdCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgUkxFLWVuY29kZWQgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIHZhbHVlQXJyYXkgdGhlIFJMRS1lbmNvZGVkIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBpbmRleCBvciB2YWx1ZSBhcnJheSBpcworICAgICAqICAgICAgICAgIHRoZSB3cm9uZyBzaXplLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Q2hhckFycmF5KFN0cmluZyBpbmRleEFycmF5LAorICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFycmF5KQorICAgIHsKKyAgICAgICAgdGhpcyggVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShpbmRleEFycmF5KSwKKyAgICAgICAgICAgICAgVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheSh2YWx1ZUFycmF5KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtYXBwZWQgdmFsdWUgb2YgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBnZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHJldHVybiB0aGUgbWFwcGVkIHZhbHVlIG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBlbGVtZW50QXQoY2hhciBpbmRleCkKKyAgICB7CisgICAgaW50IGl4ID0gKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisgICAgICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKTsKKyAgICByZXR1cm4gaXggPj0gdmFsdWVzLmxlbmd0aCA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlc1tpeF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgbmV3IHZhbHVlIGZvciBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIFNldCBhdXRvbWF0aWNhbGx5IGV4cGFuZHMgdGhlIGFycmF5IGlmIGl0IGlzIGNvbXBhY3RlZC4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBzZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgbWFwcGVkIHZhbHVlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RWxlbWVudEF0KGNoYXIgaW5kZXgsIGNoYXIgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoaXNDb21wYWN0KQorICAgICAgICAgICAgZXhwYW5kKCk7CisgICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgY2hhciB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5CisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29tcGFjdCgpIHsKKyAgICAgICAgY29tcGFjdCh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0IHRoZSBhcnJheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KGJvb2xlYW4gZXhoYXVzdGl2ZSkKKyAgICB7CisgICAgICAgIGlmICghaXNDb21wYWN0KSB7CisgICAgICAgICAgICBpbnQgaUJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgY2hhciBpVW50b3VjaGVkID0gMHhGRkZGOworICAgICAgICAgICAgaW50IG5ld1NpemUgPSAwOworCisgICAgICAgICAgICBjaGFyW10gdGFyZ2V0ID0gZXhoYXVzdGl2ZSA/IG5ldyBjaGFyW1VOSUNPREVDT1VOVF0gOiB2YWx1ZXM7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7ICsraSwgaUJsb2NrU3RhcnQgKz0gQkxPQ0tDT1VOVCkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAweEZGRkY7CisgICAgICAgICAgICAgICAgYm9vbGVhbiB0b3VjaGVkID0gYmxvY2tUb3VjaGVkKGkpOworICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCAmJiBpVW50b3VjaGVkICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyB2YWx1ZXMgaW4gdGhpcyBibG9jayB3ZXJlIHNldCwgd2UgY2FuIGp1c3Qgc2V0IGl0cworICAgICAgICAgICAgICAgICAgICAvLyBpbmRleCB0byBiZSB0aGUgc2FtZSBhcyBzb21lIG90aGVyIGJsb2NrIHdpdGggbm8gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCwgYXNzdW1pbmcgd2UndmUgc2VlbiBvbmUgeWV0LgorICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gaVVudG91Y2hlZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgakJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgd2UgY2FuIGZpbmQgYSBwcmV2aW91c2x5IGNvbXBhY3RlZCBibG9jayB0aGF0J3MgaWRlbnRpY2FsCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgKytqLCBqQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaGVzW2ldID09IGhhc2hlc1tqXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVJlZ2lvbk1hdGNoZXModmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgakJsb2NrU3RhcnQsIEJMT0NLQ09VTlQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IGluZGljZXNbal07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljZXNbaV0gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdDsgICAvLyBXaGVyZSB0byBjb3B5CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhoYXVzdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG92ZXJsYXAgd2l0aCBhbm90aGVyIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCA9IEZpbmRPdmVybGFwcGluZ1Bvc2l0aW9uKGlCbG9ja1N0YXJ0LCB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBjb3B5IHRvIHRoZSBlbmQ7IGl0J3MgcXVpY2tlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBuZXdTaXplOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gZGVzdCArIEJMT0NLQ09VTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBuZXdTaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG5ld1NpemU7IGogPCBsaW1pdDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtqXSA9IHZhbHVlc1tpQmxvY2tTdGFydCArIGogLSBkZXN0XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2l6ZSA9IGxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKWRlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1bnRvdWNoZWQgYmxvY2sgd2UndmUgc2VlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1lbWJlciBpdHMgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVVudG91Y2hlZCA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIGRvbmUgY29tcGFjdGluZywgc28gbm93IG1ha2UgdGhlIGFycmF5IHNob3J0ZXIKKyAgICAgICAgICAgIGNoYXJbXSByZXN1bHQgPSBuZXcgY2hhcltuZXdTaXplXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFyZ2V0LCAwLCByZXN1bHQsIDAsIG5ld1NpemUpOworICAgICAgICAgICAgdmFsdWVzID0gcmVzdWx0OworICAgICAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBGaW5kT3ZlcmxhcHBpbmdQb3NpdGlvbihpbnQgc3RhcnQsIGNoYXJbXSB0ZW1wVmFsdWVzLCBpbnQgdGVtcENvdW50KQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IGN1cnJlbnRDb3VudCA9IEJMT0NLQ09VTlQ7CisgICAgICAgICAgICBpZiAoaSArIEJMT0NLQ09VTlQgPiB0ZW1wQ291bnQpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q291bnQgPSB0ZW1wQ291bnQgLSBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFycmF5UmVnaW9uTWF0Y2hlcyh2YWx1ZXMsIHN0YXJ0LCB0ZW1wVmFsdWVzLCBpLCBjdXJyZW50Q291bnQpKQorICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZW1wQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBhcnJheXMgb2YgZG91Ymxlcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1lbWJlciB0aGF0IGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCB0b3VjaEJsb2NrKGludCBpLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaGFzaGVzW2ldID0gKGhhc2hlc1tpXSArICh2YWx1ZTw8MSkpIHwgMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyeSB3aGV0aGVyIGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBibG9ja1RvdWNoZWQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIGhhc2hlc1tpXSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gZ2V0SW5kZXhBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gaW5kaWNlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIGdldFZhbHVlQXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvdGhlciA9IChDb21wYWN0Q2hhckFycmF5KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIudmFsdWVzID0gKGNoYXJbXSl2YWx1ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLmluZGljZXMgPSAoY2hhcltdKWluZGljZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChoYXNoZXMgIT0gbnVsbCkgb3RoZXIuaGFzaGVzID0gKGludFtdKWhhc2hlcy5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIGNvbXBhY3QgYXJyYXkgb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IGNvbXBhY3QgYXJyYXkgb2JqZWN0IGlzIHRoZSBzYW1lCisgICAgICogYXMgdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0IG9iajsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcyA9PSBvYmopICAgICAgICAgICAgICAgICAgICAgIC8vIHF1aWNrIGNoZWNrCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpICAgICAgICAgLy8gc2FtZSBjbGFzcz8KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvdGhlciA9IChDb21wYWN0Q2hhckFycmF5KSBvYmo7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGNvdWxkIGJlIHNwZWQgdXAgbGF0ZXIKKyAgICAgICAgICAgIGlmIChlbGVtZW50QXQoKGNoYXIpaSkgIT0gb3RoZXIuZWxlbWVudEF0KChjaGFyKWkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gd2UgbWFkZSBpdCB0aHJvdWdoIHRoZSBndWFudGxldC4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0CisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBpbmNyZW1lbnQgPSBNYXRoLm1pbigzLCB2YWx1ZXMubGVuZ3RoLzE2KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKz0gaW5jcmVtZW50KSB7CisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzNyArIHZhbHVlc1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwcml2YXRlCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4cGFuZGluZyB0YWtlcyB0aGUgYXJyYXkgYmFjayB0byBhIDY1NTM2IGVsZW1lbnQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZCgpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkgeworICAgICAgICAgICAgY2hhcltdIHRlbXBBcnJheTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgICAgICB0ZW1wQXJyYXkgPSBuZXcgY2hhcltVTklDT0RFQ09VTlRdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgdGVtcEFycmF5W2ldID0gZWxlbWVudEF0KChjaGFyKWkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXMgPSBudWxsOworICAgICAgICAgICAgdmFsdWVzID0gdGVtcEFycmF5OworICAgICAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPSA1OyAvLyBOb3JtYWxpemVyQnVpbGRlciBuZWVkcyAtIGxpdQorICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLQ09VTlQgPSgxPDxCTE9DS1NISUZUKTsKKyAgICBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgc3RhdGljICBmaW5hbCBpbnQgSU5ERVhDT1VOVCA9KDE8PElOREVYU0hJRlQpOworICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLTUFTSyA9IEJMT0NLQ09VTlQgLSAxOworCisgICAgcHJpdmF0ZSBjaGFyIHZhbHVlc1tdOworICAgIHByaXZhdGUgY2hhciBpbmRpY2VzW107CisgICAgcHJpdmF0ZSBpbnRbXSBoYXNoZXM7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ29tcGFjdDsKKyAgICBjaGFyIGRlZmF1bHRWYWx1ZTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Db3B0aWNDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTg3YWFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDI5OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogSW1wbGVtZW50IHRoZSBDb3B0aWMgY2FsZW5kYXIgc3lzdGVtLgorICogPHA+CisgKiBDb3B0aWNDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1jb3B0aWMiPC9jb2RlPi48L3A+CisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAZHJhZnQgSUNVIDMuNAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb3B0aWNDYWxlbmRhciBleHRlbmRzIENFQ2FsZW5kYXIgCit7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNTkwMzgxODc1MTg0Njc0MjkxMUw7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNjOVx1MDNiZlx1MDNiM1x1MDNjNC9cdTA2MmFcdWZlZWVcdWZlOTcsCisgICAgICogdGhlIDFzdCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9VVCA9IDA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiMVx1MDNiZlx1MDNjMFx1MDNiOS9cdWZlZWFcdWZlOTFcdWZlOGVcdWZlOTEsCisgICAgICogdGhlIDJuZCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFCQSA9IDE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5MVx1MDNiOFx1MDNiZlx1MDNjMS9cdTA2MzFcdWZlZWVcdWZlOTdcdWZlOGVcdWZlZWIsCisgICAgICogdGhlIDNyZCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFUT1IgPSAyOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTdcdTAzYmZcdTAzYjlcdTAzYjFcdTAzYmEvXHVmZWRhXHVmZWVjXHVmZWY0XHVmZWRiLAorICAgICAqIHRoZSA0dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJQUhLID0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2E0XHUwM2M5XHUwM2IyXHUwM2I5L1x1MDYzN1x1ZmVlZVx1ZmU5Mlx1ZmVlYiwKKyAgICAgKiB0aGUgNXRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT0JBID0gNDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwMzljXHUwM2I1XHUwM2UzXHUwM2I5XHUwM2MxL1x1ZmVhZVx1ZmVmNFx1ZmViOFx1ZmVlM1x1MDYyMywKKyAgICAgKiB0aGUgNnRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTVNISVIgPSA1OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTBcdTAzYjFcdTAzYzFcdTAzYjVcdTAzYmNcdTAzZTlcdTAzYjFcdTAzYzQvXHUwNjJhXHVmZThlXHVmZWVjXHVmZWUzXHVmZWFlXHVmZTkxLAorICAgICAqIHRoZSA3dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBUkFNSEFUID0gNjsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2E2XHUwM2IxXHUwM2MxXHUwM2JjXHUwM2JmXHUwM2I4XHUwM2I5L1x1MDY0N1x1MDYyZlx1ZmVlZVx1ZmVlM1x1ZmVhZVx1ZmU5MSwgCisgICAgICogdGhlIDh0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1PVURBID0gNzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2EwXHUwM2IxXHUwM2UzXHUwM2IxXHUwM2JkL1x1ZmViMlx1ZmVlOFx1ZmViOFx1ZmU5MSwgCisgICAgICogdGhlIDl0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFTSEFOUyA9IDg7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiMVx1MDNjOVx1MDNiZFx1MDNiOS9cdWZlZWFcdWZlZTdcdTA2MjRcdWZlZWVcdWZlOTEsIAorICAgICAqIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQU9OQSA9IDk7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5NVx1MDNjMFx1MDNiN1x1MDNjMC9cdWZlOTBcdWZlZjRcdWZlOTFcdTA2MjMsIAorICAgICAqIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUEVQID0gMTA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5Y1x1MDNiNVx1MDNmMlx1MDNjOVx1MDNjMVx1MDNiNy9cdTA2NDlcdWZlYWVcdWZlYjRcdWZlZTMsIAorICAgICAqIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNSQSA9IDExOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTBcdTAzYjlcdTAzYmFcdTAzYmZcdTAzYjNcdTAzZWJcdTAzYjkgCisgICAgICogXHUwM2JjXHUwM2IxXHUwM2IyXHUwM2JmXHUwM2M0L1x1ZmVhZVx1ZmVmNFx1ZmVkMFx1ZmViY1x1ZmVkZlx1MDYyNyAKKyAgICAgKiBcdWZlYWVcdWZlZWNcdWZlYjhcdWZlZGZcdTA2MjcsIAorICAgICAqIHRoZSAxM3RoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVNJRSA9IDEyOworICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkRfRVBPQ0hfT0ZGU0VUICA9IDE4MjQ2NjU7CisKKyAgICAvLyBpbml0IGJhc2UgY2xhc3MgdmFsdWUsIGNvbW1vbiB0byBhbGwgY29uc3RydWN0b3JzCisgICAgeworICAgICAgICBqZEVwb2NoT2Zmc2V0ID0gSkRfRVBPQ0hfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgaWN1IGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRvdXQuCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRvdXQuCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKSB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiBDb3B0aWMgeWVhciwgbW9udGgsIGFuZCBkYXkgdG8gYSBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgdGhlIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRheQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3B0aWNUb0pEKGxvbmcgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICByZXR1cm4gY2VUb0pEKHllYXIsIG1vbnRoLCBkYXRlLCBKRF9FUE9DSF9PRkZTRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW50ZWdlcltdIGdldERhdGVGcm9tSkQoaW50IGp1bGlhbkRheSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZyb21KRChqdWxpYW5EYXksIEpEX0VQT0NIX09GRlNFVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiY29wdGljIjsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZmI2ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeS5qYXZhCkBAIC0wLDAgKzEsNzU2IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKKworLyoqCisgKiBBIGNsYXNzIGVuY2Fwc3VsYXRpbmcgYSBjdXJyZW5jeSwgYXMgZGVmaW5lZCBieSBJU08gNDIxNy4gIEEKKyAqIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCBjYW4gYmUgY3JlYXRlZCBnaXZlbiBhIDx0dD5Mb2NhbGU8L3R0PiBvcgorICogZ2l2ZW4gYW4gSVNPIDQyMTcgY29kZS4gIE9uY2UgY3JlYXRlZCwgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdAorICogY2FuIHJldHVybiB2YXJpb3VzIGRhdGEgbmVjZXNzYXJ5IHRvIGl0cyBwcm9wZXIgZGlzcGxheToKKyAqCisgKiA8dWw+PGxpPkEgZGlzcGxheSBzeW1ib2wsIGZvciBhIHNwZWNpZmljIGxvY2FsZQorICogPGxpPlRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGRpc3BsYXkKKyAqIDxsaT5BIHJvdW5kaW5nIGluY3JlbWVudAorICogPC91bD4KKyAqCisgKiBUaGUgPHR0PkRlY2ltYWxGb3JtYXQ8L3R0PiBjbGFzcyB1c2VzIHRoZXNlIGRhdGEgdG8gZGlzcGxheQorICogY3VycmVuY2llcy4KKyAqCisgKiA8cD5Ob3RlOiBUaGlzIGNsYXNzIGRlbGliZXJhdGVseSByZXNlbWJsZXMKKyAqIDx0dD5qYXZhLnV0aWwuQ3VycmVuY3k8L3R0PiBidXQgaXQgaGFzIGEgY29tcGxldGVseSBpbmRlcGVuZGVudAorICogaW1wbGVtZW50YXRpb24sIGFuZCBhZGRzIGZlYXR1cmVzIG5vdCBwcmVzZW50IGluIHRoZSBKREsuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjIKKyAqLworcHVibGljIGNsYXNzIEN1cnJlbmN5IGV4dGVuZHMgTWVhc3VyZVVuaXQgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIC8vIHVzaW5nIHNlcmlhbHZlciBmcm9tIGpkazEuNC4yXzA1CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTU4Mzk5NzM4NTU1NTQ3NTA0ODRMOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJjdXJyZW5jeSIpOworICAgIC8qKgorICAgICAqIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgaXNvQ29kZTsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGZvciBnZXROYW1lKCkgaW5kaWNhdGluZyBhIHN5bWJvbGljIG5hbWUgZm9yIGEKKyAgICAgKiBjdXJyZW5jeSwgc3VjaCBhcyAiJCIgZm9yIFVTRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWU1CT0xfTkFNRSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBmb3IgdWN1cnJfZ2V0TmFtZSBpbmRpY2F0aW5nIHRoZSBsb25nIG5hbWUgZm9yIGEKKyAgICAgKiBjdXJyZW5jeSwgc3VjaCBhcyAiVVMgRG9sbGFyIiBmb3IgVVNELgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkdfTkFNRSA9IDE7CisKKyAgICAvLyBiZWdpbiByZWdpc3RyeSBzdHVmZgorCisgICAgLy8gc2hpbSBmb3Igc2VydmljZSBjb2RlCisgICAgLyogcGFja2FnZSAqLyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgU2VydmljZVNoaW0geworICAgICAgICBhYnN0cmFjdCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBhYnN0cmFjdCBDdXJyZW5jeSBjcmVhdGVJbnN0YW5jZShVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDdXJyZW5jeSBjLCBVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGYpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNlcnZpY2VTaGltIHNoaW07CisgICAgcHJpdmF0ZSBzdGF0aWMgU2VydmljZVNoaW0gZ2V0U2hpbSgpIHsKKyAgICAgICAgLy8gTm90ZTogdGhpcyBpbnN0YW50aWF0aW9uIGlzIHNhZmUgb24gbG9vc2UtbWVtb3J5LW1vZGVsIGNvbmZpZ3VyYXRpb25zCisgICAgICAgIC8vIGRlc3BpdGUgbGFjayBvZiBzeW5jaHJvbml6YXRpb24sIHNpbmNlIHRoZSBzaGltIGluc3RhbmNlIGhhcyBubyBzdGF0ZS0tCisgICAgICAgIC8vIGl0J3MgYWxsIGluIHRoZSBjbGFzcyBpbml0LiAgVGhlIHdvcnN0IHByb2JsZW0gaXMgd2UgbWlnaHQgaW5zdGFudGlhdGUKKyAgICAgICAgLy8gdHdvIHNoaW0gaW5zdGFuY2VzLCBidXQgdGhleSdsbCBzaGFyZSB0aGUgc2FtZSBzdGF0ZSBzbyB0aGF0J3Mgb2suCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeVNlcnZpY2VTaGltIik7CisgICAgICAgICAgICAgICAgc2hpbSA9IChTZXJ2aWNlU2hpbSljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmKERFQlVHKXsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGN1cnJlbmN5IGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoaXMgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDdXJyZW5jeSBnZXRJbnN0YW5jZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBjdXJyZW5jeSBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEN1cnJlbmN5IGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgU3RyaW5nIGN1cnJlbmN5ID0gbG9jYWxlLmdldEtleXdvcmRWYWx1ZSgiY3VycmVuY3kiKTsKKyAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoY3VycmVuY3kpOworICAgIH0KKworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ3VycmVuY3kobG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaGltLmNyZWF0ZUluc3RhbmNlKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zdGFudGlhdGUgYSBjdXJyZW5jeSBmcm9tIGEgcmVzb3VyY2UgYnVuZGxlIGZvdW5kIGluIExvY2FsZSBsb2MuCisgICAgICovCisgICAgLyogcGFja2FnZSAqLyBzdGF0aWMgQ3VycmVuY3kgY3JlYXRlQ3VycmVuY3koVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gVE9ETzogY2hlY2ssIHRoaXMgbXVuZ2luZyBtaWdodCBub3QgYmUgcmVxdWlyZWQgZm9yIFVMb2NhbGUKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsb2MuZ2V0Q291bnRyeSgpOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9IGxvYy5nZXRWYXJpYW50KCk7CisgICAgICAgIGlmICh2YXJpYW50LmVxdWFscygiUFJFRVVSTyIpIHx8IHZhcmlhbnQuZXF1YWxzKCJFVVJPIikpIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5ICsgJ18nICsgdmFyaWFudDsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIkN1cnJlbmN5RGF0YSIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIGlmKGJ1bmRsZT09bnVsbCl7CisgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oKQorICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGNtID0gYnVuZGxlLmdldCgiQ3VycmVuY3lNYXAiKTsKKworICAgICAgICAvLyBEbyBhIGxpbmVhciBzZWFyY2gKKyAgICAgICAgU3RyaW5nIGN1cnJpc28gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3VycmlzbyA9IGNtLmdldFN0cmluZyhjb3VudHJ5KTsKKyAgICAgICAgICAgIGlmIChjdXJyaXNvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5KGN1cnJpc28pOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAvLyBhIGRlcHJlY2F0ZWQgSVNPIGNvZGUgbWF5IGhhdmUgYmVlbiBwYXNzZWQKKyAgICAgICAgICAgICAgICAvLyB0cnkgdG8gZ2V0IHRoZSBjdXJyZW50IGNvdW50cnkgY29kZQorICAgICAgICAgICAgICAgIFN0cmluZyByZXAgPSBVTG9jYWxlLmdldEN1cnJlbnRDb3VudHJ5SUQoY291bnRyeSk7CisgICAgICAgICAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiREVCVUc6IG9sZElEOiAiK2NvdW50cnkgKyIgbmV3SUQ6IiArcmVwKTsKKyAgICAgICAgICAgICAgICAvLyBoZXJlIHBvaW50ZXIgY29tcGFyaXNvbiBpcyB2YWxpZCBzaW5jZSBnZXRDdXJyZW50Q291bnRyeUlECisgICAgICAgICAgICAgICAgLy8gd2lsbCByZXR1cm4gdGhlIGlucHV0IHN0cmluZyBpZiB0aGVyZSBpcyBubyByZXBsYWNlbWVudAorICAgICAgICAgICAgICAgIGlmKHJlcCAhPSBjb3VudHJ5KXsKKyAgICAgICAgICAgICAgICAgICAgY3VycmlzbyA9IGNtLmdldFN0cmluZyhyZXApOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmlzbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5KGN1cnJpc28pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgLyoKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNtLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoY291bnRyeS5lcXVhbHMoKFN0cmluZykgY21baV1bMF0pKSB7CisgICAgICAgICAgICAgICAgY3VycmlzbyA9IChTdHJpbmcpIGNtW2ldWzFdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQ3VycmVuY3kgY3VyciA9IG51bGw7CisgICAgICAgIGlmIChjdXJyaXNvICE9IG51bGwpIHsKKworICAgICAgICAgICAgY3VyciA9IG5ldyBDdXJyZW5jeShjdXJyaXNvKTsKKworICAgICAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIHZhbGlkIGFuZCBhY3R1YWwgbG9jYWxlIGNvcnJlY3RseS4KKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGJ1bmRsZS5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICBjdXJyLnNldExvY2FsZSh1bG9jLCB1bG9jKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3VycjsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgb2JqZWN0IGdpdmVuIGFuIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUuCisgICAgICogQHBhcmFtIHRoZUlTT0NvZGUgdGhlIGlzbyBjb2RlCisgICAgICogQHJldHVybiB0aGUgY3VycmVuY3kgZm9yIHRoaXMgaXNvIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEN1cnJlbmN5IGdldEluc3RhbmNlKFN0cmluZyB0aGVJU09Db2RlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3kodGhlSVNPQ29kZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgbmV3IGN1cnJlbmN5IGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlLiAgVGhlIHJldHVybmVkIG9iamVjdAorICAgICAqIGlzIGEga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGN1cnJlbmN5IHRvIHJlZ2lzdGVyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSB1bmRlciB3aGljaCB0byByZWdpc3RlciB0aGUgY3VycmVuY3kKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGN1cnJlbmN5CisgICAgICogQHNlZSAjdW5yZWdpc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDdXJyZW5jeSBjdXJyZW5jeSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3Rlckluc3RhbmNlKGN1cnJlbmN5LCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgdGhlIGN1cnJlbmN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSAob2J0YWluZWQgZnJvbQorICAgICAqIHJlZ2lzdGVySW5zdGFuY2UpLgorICAgICAqIEBwYXJhbSByZWdpc3RyeUtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVybmVkIGZyb20gcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBzZWUgI3JlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5S2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW0udW5yZWdpc3RlcihyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGFycmF5IG9mIHRoZSBsb2NhbGVzIGZvciB3aGljaCBhIGN1cnJlbmN5CisgICAgICogaXMgZGVmaW5lZC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2hpbS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgdGhlIHVsb2NhbGVzIGZvciB3aGljaCBhIGN1cnJlbmN5CisgICAgICogaXMgZGVmaW5lZC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBhdmFpbGFibGUgdWxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHNoaW0uZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGVuZCByZWdpc3RyeSBzdHVmZgorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaGNvZGUgZm9yIHRoaXMgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGlzb0NvZGUuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBDdXJyZW5jeSBpbnN0YW5jZSwKKyAgICAgKiBpcyBub24tbnVsbCwgYW5kIGhhcyB0aGUgc2FtZSBjdXJyZW5jeSBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAocmhzID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ3VycmVuY3kgYyA9IChDdXJyZW5jeSkgcmhzOworICAgICAgICAgICAgcmV0dXJuIGlzb0NvZGUuZXF1YWxzKGMuaXNvQ29kZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJU08gNDIxNyAzLWxldHRlciBjb2RlIGZvciB0aGlzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEN1cnJlbmN5Q29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGlzb0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgYW5kIGNvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgZ2V0TmFtZSB0aGF0CisgICAgICogcmVxdWVzdHMgdGhlIHN5bWJvbCBuYW1lLgorICAgICAqIEBzZWUgI2dldE5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3ltYm9sKCkgeworCXJldHVybiBnZXRTeW1ib2woVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGFuZCBjb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIGdldE5hbWUgdGhhdAorICAgICAqIHJlcXVlc3RzIHRoZSBzeW1ib2wgbmFtZS4KKyAgICAgKiBAcGFyYW0gbG9jIHRoZSBMb2NhbGUgZm9yIHRoZSBzeW1ib2wKKyAgICAgKiBAc2VlICNnZXROYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbChMb2NhbGUgbG9jKSB7CisJcmV0dXJuIGdldFN5bWJvbChVTG9jYWxlLmZvckxvY2FsZShsb2MpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBhbmQgY29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBnZXROYW1lIHRoYXQKKyAgICAgKiByZXF1ZXN0cyB0aGUgc3ltYm9sIG5hbWUuCisgICAgICogQHBhcmFtIHVsb2MgdGhlIFVMb2NhbGUgZm9yIHRoZSBzeW1ib2wKKyAgICAgKiBAc2VlICNnZXROYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbChVTG9jYWxlIHVsb2MpIHsKKwlyZXR1cm4gZ2V0TmFtZSh1bG9jLCBTWU1CT0xfTkFNRSwgbmV3IGJvb2xlYW5bMV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGdpdmVuIGN1cnJlbmN5IGluIHRoZQorICAgICAqIGdpdmVuIGxvY2FsZS4gIEZvciBleGFtcGxlLCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgVVNECisgICAgICogY3VycmVuY3kgb2JqZWN0IGluIHRoZSBlbl9VUyBsb2NhbGUgaXMgIiQiLgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBAcGFyYW0gbmFtZVN0eWxlIHNlbGVjdG9yIGZvciB3aGljaCBraW5kIG9mIG5hbWUgdG8gcmV0dXJuCisgICAgICogQHBhcmFtIGlzQ2hvaWNlRm9ybWF0IGZpbGwtaW47IGlzQ2hvaWNlRm9ybWF0WzBdIGlzIHNldCB0byB0cnVlCisgICAgICogaWYgdGhlIHJldHVybmVkIHZhbHVlIGlzIGEgQ2hvaWNlRm9ybWF0IHBhdHRlcm47IG90aGVyd2lzZSBpdAorICAgICAqIGlzIHNldCB0byBmYWxzZQorICAgICAqIEByZXR1cm4gZGlzcGxheSBzdHJpbmcgZm9yIHRoaXMgY3VycmVuY3kuICBJZiB0aGUgcmVzb3VyY2UgZGF0YQorICAgICAqIGNvbnRhaW5zIG5vIGVudHJ5IGZvciB0aGlzIGN1cnJlbmN5LCB0aGVuIHRoZSBJU08gNDIxNyBjb2RlIGlzCisgICAgICogcmV0dXJuZWQuICBJZiBpc0Nob2ljZUZvcm1hdFswXSBpcyB0cnVlLCB0aGVuIHRoZSByZXN1bHQgaXMgYQorICAgICAqIENob2ljZUZvcm1hdCBwYXR0ZXJuLiAgT3RoZXJ3aXNlIGl0IGlzIGEgc3RhdGljIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShMb2NhbGUgbG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQpIHsKKwlyZXR1cm4gZ2V0TmFtZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBuYW1lU3R5bGUsIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBnaXZlbiBjdXJyZW5jeSBpbiB0aGUKKyAgICAgKiBnaXZlbiBsb2NhbGUuICBGb3IgZXhhbXBsZSwgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIFVTRAorICAgICAqIGN1cnJlbmN5IG9iamVjdCBpbiB0aGUgZW5fVVMgbG9jYWxlIGlzICIkIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IGN1cnJlbmN5CisgICAgICogQHBhcmFtIG5hbWVTdHlsZSBzZWxlY3RvciBmb3Igd2hpY2gga2luZCBvZiBuYW1lIHRvIHJldHVybgorICAgICAqIEBwYXJhbSBpc0Nob2ljZUZvcm1hdCBmaWxsLWluOyBpc0Nob2ljZUZvcm1hdFswXSBpcyBzZXQgdG8gdHJ1ZQorICAgICAqIGlmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuOyBvdGhlcndpc2UgaXQKKyAgICAgKiBpcyBzZXQgdG8gZmFsc2UKKyAgICAgKiBAcmV0dXJuIGRpc3BsYXkgc3RyaW5nIGZvciB0aGlzIGN1cnJlbmN5LiAgSWYgdGhlIHJlc291cmNlIGRhdGEKKyAgICAgKiBjb250YWlucyBubyBlbnRyeSBmb3IgdGhpcyBjdXJyZW5jeSwgdGhlbiB0aGUgSVNPIDQyMTcgY29kZSBpcworICAgICAqIHJldHVybmVkLiAgSWYgaXNDaG9pY2VGb3JtYXRbMF0gaXMgdHJ1ZSwgdGhlbiB0aGUgcmVzdWx0IGlzIGEKKyAgICAgKiBDaG9pY2VGb3JtYXQgcGF0dGVybi4gIE90aGVyd2lzZSBpdCBpcyBhIHN0YXRpYyBzdHJpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoVUxvY2FsZSBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCkgeworCisgICAgICAgIC8vIExvb2sgdXAgdGhlIEN1cnJlbmNpZXMgcmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBsb2NhbGUuICBUaGUKKyAgICAgICAgLy8gQ3VycmVuY2llcyBsb2NhbGUgZGF0YSBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vfGVuIHsKKyAgICAgICAgLy98ICBDdXJyZW5jaWVzIHsKKyAgICAgICAgLy98ICAgIFVTRCB7ICJVUyQiLCAiVVMgRG9sbGFyIiB9CisgICAgICAgIC8vfCAgICBDSEYgeyAiU3cgRiIsICJTd2lzcyBGcmFuYyIgfQorICAgICAgICAvL3wgICAgSU5SIHsgIj0wI1JzfDEjUmV8MTxScyIsICI9MCNSdXBlZXN8MSNSdXBlZXwxPFJ1cGVlcyIgfQorICAgICAgICAvL3wgICAgLy8uLi4KKyAgICAgICAgLy98ICB9CisgICAgICAgIC8vfH0KKworICAgICAgICBpZiAobmFtZVN0eWxlIDwgMCB8fCBuYW1lU3R5bGUgPiAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisKKyAgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVuY2llcyA9IHJiLmdldCgiQ3VycmVuY2llcyIpOworCisgICAgICAgICAgICAvLyBGZXRjaCByZXNvdXJjZSB3aXRoIG11bHRpLWxldmVsIHJlc291cmNlIGluaGVyaXRhbmNlIGZhbGxiYWNrCisgICAgICAgICAgICBzID0gY3VycmVuY2llcy5nZXRXaXRoRmFsbGJhY2soaXNvQ29kZSkuZ2V0U3RyaW5nKG5hbWVTdHlsZSk7CisgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vVE9ETyB3aGF0IHNob3VsZCBiZSBkb25lIGhlcmU/CisgICAgICAgIH0KKworICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuLiAgT25lIGxlYWRpbmcgbWFyaworICAgICAgICAvLyBpbmRpY2F0ZXMgYSBDaG9pY2VGb3JtYXQuICBUd28gaW5kaWNhdGVzIGEgc3RhdGljIHN0cmluZyB0aGF0CisgICAgICAgIC8vIHN0YXJ0cyB3aXRoIGEgbWFyay4gIEluIGVpdGhlciBjYXNlLCB0aGUgZmlyc3QgbWFyayBpcyBpZ25vcmVkLAorICAgICAgICAvLyBpZiBwcmVzZW50LiAgTWFya3MgaW4gdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyBoYXZlIG5vIHNwZWNpYWwKKyAgICAgICAgLy8gbWVhbmluZy4KKyAgICAgICAgaXNDaG9pY2VGb3JtYXRbMF0gPSBmYWxzZTsKKyAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGk9MDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgcy5sZW5ndGgoKSAmJiBzLmNoYXJBdChpKSA9PSAnPScgJiYgaSA8IDIpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpc0Nob2ljZUZvcm1hdFswXT0gKGkgPT0gMSk7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gU2tpcCBvdmVyIGZpcnN0IG1hcmsKKyAgICAgICAgICAgICAgICBzID0gcy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGZhaWwgdG8gZmluZCBhIG1hdGNoLCB1c2UgdGhlIElTTyA0MjE3IGNvZGUKKyAgICAgICAgcmV0dXJuIGlzb0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBwYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nIGFzIGEgY3VycmVuY3ksIGVpdGhlciBhcyBhCisgICAgICogZGlzcGxheSBuYW1lIGluIHRoZSBnaXZlbiBsb2NhbGUsIG9yIGFzIGEgMy1sZXR0ZXIgSVNPIDQyMTcKKyAgICAgKiBjb2RlLiAgSWYgbXVsdGlwbGUgZGlzcGxheSBuYW1lcyBtYXRjaCwgdGhlbiB0aGUgbG9uZ2VzdCBvbmUgaXMKKyAgICAgKiBzZWxlY3RlZC4gIElmIGJvdGggYSBkaXNwbGF5IG5hbWUgYW5kIGEgMy1sZXR0ZXIgSVNPIGNvZGUKKyAgICAgKiBtYXRjaCwgdGhlbiB0aGUgZGlzcGxheSBuYW1lIGlzIHByZWZlcnJlZCwgdW5sZXNzIGl0J3MgbGVuZ3RoCisgICAgICogaXMgbGVzcyB0aGFuIDMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRpc3BsYXkgbmFtZXMgdG8gbWF0Y2gKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwb3MgaW5wdXQtb3V0cHV0IHBvc2l0aW9uOyBvbiBpbnB1dCwgdGhlIHBvc2l0aW9uIHdpdGhpbgorICAgICAqIHRleHQgdG8gbWF0Y2g7IG11c3QgaGF2ZSAwIDw9IHBvcy5nZXRJbmRleCgpIDwgdGV4dC5sZW5ndGgoKTsKKyAgICAgKiBvbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBtYXRjaGVkIGNoYXJhY3Rlci4gSWYKKyAgICAgKiB0aGUgcGFyc2UgZmFpbHMsIHRoZSBwb3NpdGlvbiBpbiB1bmNoYW5nZWQgdXBvbiBvdXRwdXQuCisgICAgICogQHJldHVybiB0aGUgSVNPIDQyMTcgY29kZSwgYXMgYSBzdHJpbmcsIG9mIHRoZSBiZXN0IG1hdGNoLCBvcgorICAgICAqIG51bGwgaWYgdGhlcmUgaXMgbm8gbWF0Y2gKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhcnNlKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKworICAgICAgICAvLyBUT0RPOiBUaGVyZSBpcyBhIHNsaWdodCBwcm9ibGVtIHdpdGggdGhlIHBzZXVkby1tdWx0aS1sZXZlbAorICAgICAgICAvLyBmYWxsYmFjayBpbXBsZW1lbnRlZCBoZXJlLiAgTW9yZS1zcGVjaWZpYyBsb2NhbGVzIGRvbid0CisgICAgICAgIC8vIHByb3Blcmx5IHNoaWVsZCBkdXBsaWNhdGUgZW50cmllcyBpbiBsZXNzLXNwZWNpZmljIGxvY2FsZXMuCisgICAgICAgIC8vIFRoaXMgcHJvYmxlbSB3aWxsIGdvIGF3YXkgd2hlbiByZWFsIG11bHRpLWxldmVsIGZhbGxiYWNrIGlzCisgICAgICAgIC8vIGltcGxlbWVudGVkLiAgV2UgY291bGQgYWxzbyBmaXggdGhpcyBieSByZWNvcmRpbmcgKGluIGEKKyAgICAgICAgLy8gaGFzaCkgd2hpY2ggY29kZXMgYXJlIHVzZWQgYXQgZWFjaCBsZXZlbCBvZiBmYWxsYmFjaywgYnV0CisgICAgICAgIC8vIHRoaXMgZG9lc24ndCBzZWVtIHdhcnJhbnRlZC4KKworICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgU3RyaW5nIGZyYWdtZW50ID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQpOworCisgICAgICAgIFN0cmluZyBpc28gPSBudWxsOworICAgICAgICBpbnQgbWF4ID0gMDsKKworICAgICAgICAvLyBMb29rIHVwIHRoZSBDdXJyZW5jaWVzIHJlc291cmNlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLiAgVGhlCisgICAgICAgIC8vIEN1cnJlbmNpZXMgbG9jYWxlIGRhdGEgbG9va3MgbGlrZSB0aGlzOgorICAgICAgICAvL3xlbiB7CisgICAgICAgIC8vfCAgQ3VycmVuY2llcyB7CisgICAgICAgIC8vfCAgICBVU0QgeyAiVVMkIiwgIlVTIERvbGxhciIgfQorICAgICAgICAvL3wgICAgQ0hGIHsgIlN3IEYiLCAiU3dpc3MgRnJhbmMiIH0KKyAgICAgICAgLy98ICAgIElOUiB7ICI9MCNSc3wxI1JlfDE8UnMiLCAiPTAjUnVwZWVzfDEjUnVwZWV8MTxSdXBlZXMiIH0KKyAgICAgICAgLy98ICAgIC8vLi4uCisgICAgICAgIC8vfCAgfQorICAgICAgICAvL3x9CisKKyAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSwgcmVzb3VyY2UgYnVuZGxlcyBtYXkgaW1wbGVtZW50IG11bHRpLWxldmVsCisgICAgICAgIC8vIGZhbGxiYWNrLiAgVGhhdCBpcywgaWYgYSBjdXJyZW5jeSBpcyBub3QgZm91bmQgaW4gdGhlIGVuX1VTCisgICAgICAgIC8vIEN1cnJlbmNpZXMgZGF0YSwgdGhlbiB0aGUgZW4gQ3VycmVuY2llcyBkYXRhIHdpbGwgYmUgc2VhcmNoZWQuCisgICAgICAgIC8vIEN1cnJlbnRseSwgaWYgYSBDdXJyZW5jaWVzIGRhdHVtIGV4aXN0cyBpbiBlbl9VUyBhbmQgZW4sIHRoZQorICAgICAgICAvLyBlbl9VUyBlbnRyeSBoaWRlcyB0aGF0IGluIGVuLgorCisgICAgICAgIC8vIFdlIHdhbnQgbXVsdGktbGV2ZWwgZmFsbGJhY2sgZm9yIHRoaXMgcmVzb3VyY2UsIHNvIHdlIGltcGxlbWVudAorICAgICAgICAvLyBpdCBtYW51YWxseS4KKworICAgICAgICAvLyBNdWx0aS1sZXZlbCByZXNvdXJjZSBpbmhlcml0YW5jZSBmYWxsYmFjayBsb29wCisKKyAgICAgICAgd2hpbGUgKGxvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxsb2NhbGUpOworICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY2FzdCB0aGlzIHRvIFN0cmluZ1tdW107IHRoZSBjYXN0IGhhcyB0byBoYXBwZW4gbGF0ZXIKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW5jaWVzID0gcmIuZ2V0KCJDdXJyZW5jaWVzIik7CisgICAgICAgICAgICAgICAgLy8gRG8gYSBsaW5lYXIgc2VhcmNoCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGN1cnJlbmNpZXMuZ2V0U2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TdHJpbmcgbmFtZSA9ICgoU3RyaW5nW10pIGN1cnJlbmNpZXNbaV1bMV0pWzBdOworICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gY3VycmVuY2llcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaXRlbS5nZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHplcm8tbGVuZ3RoIG5hbWVzIC0tIGxhdGVyLCBjaGFuZ2UgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB6ZXJvLWxlbmd0aCBpcyB1c2VkIHRvIG1lYW4gc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZS5jaGFyQXQoMCkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDAgJiYgbmFtZS5jaGFyQXQoMCkgIT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hvaWNlRm9ybWF0IGNob2ljZSA9IG5ldyBDaG9pY2VGb3JtYXQobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG4gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZS5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSBwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvID0gaXRlbS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gbWF4ICYmIGZyYWdtZW50LnN0YXJ0c1dpdGgobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzbyA9IGl0ZW0uZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorCisgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGUuZ2V0RmFsbGJhY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIDEuIExvb2sgYXQgdGhlIEN1cnJlbmNpZXMgYXJyYXkgZnJvbSB0aGUgbG9jYWxlCisgICAgICAgICAgICAxYS4gSXRlcmF0ZSB0aHJvdWdoIGl0LCBhbmQgY2hlY2sgZWFjaCByb3cgdG8gc2VlIGlmIHJvd1sxXSBtYXRjaGVzCisgICAgICAgICAgICAgICAgMWExLiBJZiByb3dbMV0gaXMgYSBwYXR0ZXJuLCB1c2UgQ2hvaWNlRm9ybWF0IHRvIGF0dGVtcHQgYSBwYXJzZQorICAgICAgICAgICAgMWIuIFVwb24gYSBtYXRjaCwgcmV0dXJuIHRoZSBJU08gY29kZSBzdG9yZWQgYXQgcm93WzBdCisgICAgICAgIDIuIElmIHRoZXJlIGlzIG5vIG1hdGNoLCBmYWxsIGJhY2sgdG8gImVuIiBhbmQgdHJ5IGFnYWluCisgICAgICAgIDMuIElmIHRoZXJlIGlzIG5vIG1hdGNoLCBmYWxsIGJhY2sgdG8gcm9vdCBhbmQgdHJ5IGFnYWluCisgICAgICAgIDQuIElmIHN0aWxsIG5vIG1hdGNoLCBwYXJzZSAzLWxldHRlciBJU08ge3RoaXMgY29kZSBpcyBwcm9iYWJseSB1bmNoYW5nZWR9LgorCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVuY2llcyA9IHJiLmdldCgiQ3VycmVuY2llcyIpOworICAgICAgICAqLworICAgICAgICAvLyBJZiBkaXNwbGF5IG5hbWUgcGFyc2UgZmFpbHMgb3IgaWYgaXQgbWF0Y2hlcyBmZXdlciB0aGFuIDMKKyAgICAgICAgLy8gY2hhcmFjdGVycywgdHJ5IHRvIHBhcnNlIDMtbGV0dGVyIElTTy4gIERvIHRoaXMgYWZ0ZXIgdGhlCisgICAgICAgIC8vIGRpc3BsYXkgbmFtZSBwcm9jZXNzaW5nIHNvIDMtbGV0dGVyIGRpc3BsYXkgbmFtZXMgYXJlCisgICAgICAgIC8vIHByZWZlcnJlZC4gIENvbnNpZGVyIC9bQS1aXXszfS8gdG8gYmUgdmFsaWQgSVNPLCBhbmQgcGFyc2UKKyAgICAgICAgLy8gaXQgbWFudWFsbHktLVVuaWNvZGVTZXQvcmVnZXggYXJlIHRvbyBzbG93IGFuZCBoZWF2eS4KKyAgICAgICAgaWYgKG1heCA8IDMgJiYgKHRleHQubGVuZ3RoKCkgLSBzdGFydCkgPj0gMykgeworICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8MzsgKytrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KHN0YXJ0ICsgayk7IC8vIDE2LWJpdCBvaworICAgICAgICAgICAgICAgIGlmIChjaCA8ICdBJyB8fCBjaCA+ICdaJykgeworICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsaWQpIHsKKyAgICAgICAgICAgICAgICBpc28gPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgc3RhcnQrMyk7CisgICAgICAgICAgICAgICAgbWF4ID0gMzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCArIG1heCk7CisgICAgICAgIHJldHVybiBpc287CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRoYXQgc2hvdWxkCisgICAgICogYmUgZGlzcGxheWVkIGZvciB0aGlzIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gYSBub24tbmVnYXRpdmUgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZQorICAgICAqIGRpc3BsYXllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gKGZpbmREYXRhKCkpWzBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJvdW5kaW5nIGluY3JlbWVudCBmb3IgdGhpcyBjdXJyZW5jeSwgb3IgMC4wIGlmIG5vCisgICAgICogcm91bmRpbmcgaXMgZG9uZSBieSB0aGlzIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDAuMCBpZiBub25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRSb3VuZGluZ0luY3JlbWVudCgpIHsKKyAgICAgICAgaW50W10gZGF0YSA9IGZpbmREYXRhKCk7CisKKyAgICAgICAgaW50IGRhdGExID0gZGF0YVsxXTsgLy8gcm91bmRpbmcgaW5jcmVtZW50CisKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gcm91bmRpbmcgcmV0dXJuIDAuMCB0byBpbmRpY2F0ZSBubyByb3VuZGluZy4KKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGlnaC1ydW5uZXIgY2FzZSwgYnkgZmFyLgorICAgICAgICBpZiAoZGF0YTEgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBkYXRhMCA9IGRhdGFbMF07IC8vIGZyYWN0aW9uIGRpZ2l0cworCisgICAgICAgIC8vIElmIHRoZSBtZXRhIGRhdGEgaXMgaW52YWxpZCwgcmV0dXJuIDAuMCB0byBpbmRpY2F0ZSBubyByb3VuZGluZy4KKyAgICAgICAgaWYgKGRhdGEwIDwgMCB8fCBkYXRhMCA+PSBQT1cxMC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXR1cm4gZGF0YVsxXSAvIDEwXihkYXRhWzBdKS4gIFRoZSBvbmx5IGFjdHVhbCByb3VuZGluZyBkYXRhLAorICAgICAgICAvLyBhcyBvZiB0aGlzIHdyaXRpbmcsIGlzIENIRiB7IDIsIDI1IH0uCisgICAgICAgIHJldHVybiAoZG91YmxlKSBkYXRhMSAvIFBPVzEwW2RhdGEwXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJU08gNDIxNyBjb2RlIGZvciB0aGlzIGN1cnJlbmN5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBpc29Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBnaXZlbiBJU08gNDIxNyAzLWxldHRlcgorICAgICAqIGNvZGUuICBUaGlzIGNvbnN0cnVjdG9yIGFzc3VtZXMgdGhhdCB0aGUgY29kZSBpcyB2YWxpZC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGhlSVNPQ29kZSBUaGUgaXNvIGNvZGUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGN1cnJlbmN5LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIEN1cnJlbmN5KFN0cmluZyB0aGVJU09Db2RlKSB7CisgICAgICAgIGlzb0NvZGUgPSB0aGVJU09Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZ1bmN0aW9uIHRvIGxvb2sgdXAgY3VycmVuY3kgZGF0YS4gIFJlc3VsdCBpcyBhbiBhcnJheSBvZgorICAgICAqIHR3byBJbnRlZ2Vycy4gIFRoZSBmaXJzdCBpcyB0aGUgZnJhY3Rpb24gZGlnaXRzLiAgVGhlIHNlY29uZCBpcyB0aGUKKyAgICAgKiByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDAgaWYgbm9uZS4gIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgaXMgaW4KKyAgICAgKiB1bml0cyBvZiAxMF4oLWZyYWN0aW9uX2RpZ2l0cykuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBmaW5kRGF0YSgpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gR2V0IEN1cnJlbmN5TWV0YSByZXNvdXJjZSBvdXQgb2Ygcm9vdCBsb2NhbGUgZmlsZS4gIFtUaGlzIG1heQorICAgICAgICAgICAgLy8gbW92ZSBvdXQgb2YgdGhlIHJvb3QgbG9jYWxlIGZpbGUgbGF0ZXI7IGlmIGl0IGRvZXMsIHVwZGF0ZSB0aGlzCisgICAgICAgICAgICAvLyBjb2RlLl0KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJvb3QgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwiQ3VycmVuY3lEYXRhIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbmN5TWV0YSA9IHJvb3QuZ2V0KCJDdXJyZW5jeU1ldGEiKTsKKworICAgICAgICAgICAgLy9JbnRlZ2VyW10gaSA9IG51bGw7CisgICAgICAgICAgICAvL2ludCBkZWZhdWx0UG9zID0gLTE7CisgICAgICAgICAgICBpbnRbXSBpID0gY3VycmVuY3lNZXRhLmdldChpc29Db2RlKS5nZXRJbnRWZWN0b3IoKTsKKworICAgICAgICAgICAgLy8gRG8gYSBsaW5lYXIgc2VhcmNoIGZvciBpc29Db2RlLiAgQXQgdGhlIHNhbWUgdGltZSwKKyAgICAgICAgICAgIC8vIHJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIERFRkFVTFQgbWV0YSBkYXRhLiAgSWYgdGhlCisgICAgICAgICAgICAvLyBtZXRhIGRhdGEgYmVjb21lcyBsYXJnZSwgbWFrZSB0aGlzIGZhc3Rlci4KKyAgICAgICAgICAgIC8qZm9yIChpbnQgaj0wOyBqPGN1cnJlbmN5TWV0YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIE9iamVjdFtdIHJvdyA9IGN1cnJlbmN5TWV0YVtqXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIHJvd1swXTsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IGlzb0NvZGUuY29tcGFyZVRvSWdub3JlQ2FzZShzKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSAoSW50ZWdlcltdKSByb3dbMV07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIkRFRkFVTFQiLmVxdWFsc0lnbm9yZUNhc2UocykpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFBvcyA9IGo7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjIDwgMCAmJiBkZWZhdWx0UG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpID0gY3VycmVuY3lNZXRhLmdldCgiREVGQVVMVCIpLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSAhPSBudWxsICYmIGkubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgLy8gQ29uZmlnL2J1aWxkIGVycm9yOyByZXR1cm4gaGFyZC1jb2RlZCBkZWZhdWx0cworICAgICAgICByZXR1cm4gTEFTVF9SRVNPUlRfREFUQTsKKyAgICB9CisKKyAgICAvLyBEZWZhdWx0IGN1cnJlbmN5IG1ldGEgZGF0YSBvZiBsYXN0IHJlc29ydC4gIFdlIHRyeSB0byB1c2UgdGhlCisgICAgLy8gZGVmYXVsdHMgZW5jb2RlZCBpbiB0aGUgbWV0YSBkYXRhIHJlc291cmNlIGJ1bmRsZS4gIElmIHRoZXJlIGlzIGEKKyAgICAvLyBjb25maWd1cmF0aW9uL2J1aWxkIGVycm9yIGFuZCB0aGVzZSBhcmUgbm90IGF2YWlsYWJsZSwgd2UgdXNlIHRoZXNlCisgICAgLy8gaGFyZC1jb2RlZCBkZWZhdWx0cyAod2hpY2ggc2hvdWxkIGJlIGlkZW50aWNhbCkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gTEFTVF9SRVNPUlRfREFUQSA9IG5ldyBpbnRbXSB7IDIsIDAgfTsKKworICAgIC8vIFBPVzEwW2ldID0gMTBeaQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBPVzEwID0geyAxLCAxMCwgMTAwLCAxMDAwLCAxMDAwMCwgMTAwMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMDAwLCAxMDAwMDAwMCwgMTAwMDAwMDAwLCAxMDAwMDAwMDAwIH07CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIG9ic29sZXRlZC4gIFRoZSBpbXBsZW1lbnRhdGlvbiBpcworICAgICAqIG5vIGxvbmdlciBsb2NhbGUtc3BlY2lmaWMgYW5kIHNvIHRoZXJlIGlzIG5vIGxvbmdlciBhIHZhbGlkIG9yCisgICAgICogYWN0dWFsIGxvY2FsZSBhc3NvY2lhdGVkIHdpdGggdGhlIEN1cnJlbmN5IG9iamVjdC4gIFVudGlsCisgICAgICogaXQgaXMgcmVtb3ZlZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gdGhlIHJvb3QgbG9jYWxlLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAb2Jzb2xldGUgSUNVIDMuMiB0byBiZSByZW1vdmVkCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgb2Jzb2xldGUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisJcmV0dXJuIFVMb2NhbGUuUk9PVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lBbW91bnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzY1N2I4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lBbW91bnQuamF2YQpAQCAtMCwwICsxLDU0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCAxMiwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEubGFuZy5OdW1iZXI7CisKKy8qKgorICogQW4gYW1vdW50IG9mIGN1cnJlbmN5LCBjb25zaXN0aW5nIG9mIGEgTnVtYmVyIGFuZCBhIEN1cnJlbmN5LgorICogQ3VycmVuY3lBbW91bnQgb2JqZWN0cyBhcmUgaW1tdXRhYmxlLgorICoKKyAqIEBzZWUgamF2YS5sYW5nLk51bWJlcgorICogQHNlZSBDdXJyZW5jeQorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBDdXJyZW5jeUFtb3VudCBleHRlbmRzIE1lYXN1cmUgeworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGdpdmVuIGEgbnVtYmVyIGFuZCBhIGN1cnJlbmN5LgorICAgICAqIEBwYXJhbSBudW1iZXIgdGhlIG51bWJlcgorICAgICAqIEBwYXJhbSBjdXJyZW5jeSB0aGUgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3lBbW91bnQoTnVtYmVyIG51bWJlciwgQ3VycmVuY3kgY3VycmVuY3kpIHsKKyAgICAgICAgc3VwZXIobnVtYmVyLCBjdXJyZW5jeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBvYmplY3QgZ2l2ZW4gYSBkb3VibGUgdmFsdWUgYW5kIGEgY3VycmVuY3kuCisgICAgICogQHBhcmFtIG51bWJlciBhIGRvdWJsZSB2YWx1ZQorICAgICAqIEBwYXJhbSBjdXJyZW5jeSB0aGUgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3lBbW91bnQoZG91YmxlIG51bWJlciwgQ3VycmVuY3kgY3VycmVuY3kpIHsKKyAgICAgICAgc3VwZXIobmV3IERvdWJsZShudW1iZXIpLCBjdXJyZW5jeSk7CisgICAgfSAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW5jeSBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgQ3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiAoQ3VycmVuY3kpIGdldFVuaXQoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeVNlcnZpY2VTaGltLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeVNlcnZpY2VTaGltLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA1OGNiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5U2VydmljZVNoaW0uamF2YQpAQCAtMCwwICsxLDc1IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKKworLyoqCisgKiBUaGlzIGlzIGEgcGFja2FnZS1hY2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgcmVnaXN0cmF0aW9uIGZvcgorICogY3VycmVuY3kuICBUaGUgc2hpbSBpcyBpbnN0YW50aWF0ZWQgYnkgcmVmbGVjdGlvbiBpbiBDdXJyZW5jeSwgYWxsCisgKiBkZXBlbmRlbmNpZXMgb24gSUNVU2VydmljZSBhcmUgbG9jYXRlZCBpbiB0aGlzIGZpbGUuIFRoaXMgc3RydWN0dXJlCisgKiBpcyB0byBhbGxvdyBJQ1U0SiB0byBiZSBidWlsdCB3aXRob3V0IHNlcnZpY2UgcmVnaXN0cmF0aW9uIHN1cHBvcnQuICAKKyAqLworZmluYWwgY2xhc3MgQ3VycmVuY3lTZXJ2aWNlU2hpbSBleHRlbmRzIEN1cnJlbmN5LlNlcnZpY2VTaGltIHsKKyAgICAKKyAgICBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgIH0KKworICAgIEN1cnJlbmN5IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIC8vIFRPRE86IGNvbnZlcnQgdG8gVUxvY2FsZSB3aGVuIHNlcnZpY2Ugc3dpdGNoZXMgb3ZlcgorCisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gQ3VycmVuY3kuY3JlYXRlQ3VycmVuY3kobG9jKTsKKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlW10gYWN0dWFsTG9jID0gbmV3IFVMb2NhbGVbMV07CisgICAgQ3VycmVuY3kgY3VyciA9IChDdXJyZW5jeSlzZXJ2aWNlLmdldChsb2MsIGFjdHVhbExvYyk7CisgICAgICAgIFVMb2NhbGUgdWxvYyA9IGFjdHVhbExvY1swXTsKKyAgICAgICAgY3Vyci5zZXRMb2NhbGUodWxvYywgdWxvYyk7IC8vIHNlcnZpY2VzIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBhY3R1YWwgJiB2YWxpZAorICAgICAgICByZXR1cm4gY3VycjsKKyAgICB9CisKKyAgICBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDdXJyZW5jeSBjdXJyZW5jeSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoY3VycmVuY3ksIGxvY2FsZSk7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpcmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENGU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBDRlNlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiQ3VycmVuY3kiKTsKKworICAgICAgICAgICAgY2xhc3MgQ3VycmVuY3lGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3VycmVuY3kuY3JlYXRlQ3VycmVuY3kobG9jKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlZ2lzdGVyRmFjdG9yeShuZXcgQ3VycmVuY3lGYWN0b3J5KCkpOworICAgICAgICAgICAgbWFya0RlZmF1bHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IENGU2VydmljZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0RhdGVSdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWM0MmNiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0RhdGVSdWxlLmphdmEKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogRGF0ZVJ1bGUgaXMgYW4gaW50ZXJmYWNlIGZvciBjYWxjdWxhdGluZyB0aGUgZGF0ZSBvZiBhbiBldmVudC4KKyAqIEl0IHN1cHBvcnRzIGJvdGggcmVjdXJyaW5nIGV2ZW50cyBhbmQgdGhvc2Ugd2hpY2ggb2NjdXIgb25seSBvbmNlLgorICogRGF0ZVJ1bGUgaXMgdXNlZnVsIGZvciBzdG9yaW5nIGluZm9ybWF0aW9uIGFib3V0IGhvbGlkYXlzLAorICogRGF5bGlnaHQgU2F2aW5ncyBUaW1lIHJ1bGVzLCBhbmQgb3RoZXIgZXZlbnRzIHN1Y2ggYXMgbWVldGluZ3MuCisgKgorICogQHNlZSBTaW1wbGVEYXRlUnVsZQorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgaW50ZXJmYWNlIERhdGVSdWxlCit7CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBldmVudCByZXByZXNlbnRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiB0aGF0IGlzIG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBvbiBvciBhZnRlciB0aGUgc3RhcnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI2ZpcnN0QmV0d2VlbgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIERhdGUgICAgZmlyc3RBZnRlcihEYXRlIHN0YXJ0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbgorICAgICAqIGVuZCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gZW5kICAgT25seSBvY2N1cnJhbmNlcyBiZWZvcmUgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RBZnRlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIERhdGUgICAgZmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhpcyBldmVudCBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHN1Y2ggYXMgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuCisgICAgICogZGF5IGlzIGEgaG9saWRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGV2ZW50IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKTsKKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBib29sZWFuIGlzQmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCk7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRWFzdGVySG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRWFzdGVySG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmMTRlMjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEKQEAgLTAsMCArMSwyODcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKioKKyAqIEEgSG9saWRheSBzdWJjbGFzcyB3aGljaCByZXByZXNlbnRzIGhvbGlkYXlzIHRoYXQgb2NjdXIKKyAqIGEgZml4ZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlIG9yIGFmdGVyIEVhc3Rlci4gIFN1cHBvcnRzIGJvdGggdGhlCisgKiBXZXN0ZXJuIGFuZCBPcnRob2RveCBtZXRob2RzIGZvciBjYWxjdWxhdGluZyBFYXN0ZXIuCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBFYXN0ZXJIb2xpZGF5IGV4dGVuZHMgSG9saWRheQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGhvbGlkYXkgdGhhdCBmYWxscyBvbiBFYXN0ZXIgU3VuZGF5IGV2ZXJ5IHllYXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKDAsIGZhbHNlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSB0aGF0IGZhbGxzIGEgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIGJlZm9yZQorICAgICAqIG9yIGFmdGVyIEVhc3RlciBTdW5kYXkgZWFjaCB5ZWFyLgorICAgICAqCisgICAgICogQHBhcmFtIGRheXNBZnRlciBUaGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlICgtKSBvciBhZnRlciAoKykgRWFzdGVyCisgICAgICogQHBhcmFtIG5hbWUgICAgICBUaGUgbmFtZSBvZiB0aGUgaG9saWRheQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEVhc3RlckhvbGlkYXkoaW50IGRheXNBZnRlciwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgRWFzdGVyUnVsZShkYXlzQWZ0ZXIsIGZhbHNlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSB0aGF0IGZhbGxzIGEgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIGJlZm9yZQorICAgICAqIG9yIGFmdGVyIEVhc3RlciBTdW5kYXkgZWFjaCB5ZWFyLCB1c2luZyBlaXRoZXIgdGhlIFdlc3Rlcm4KKyAgICAgKiBvciBPcnRob2RveCBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlzQWZ0ZXIgVGhlIG51bWJlciBvZiBkYXlzIGJlZm9yZSAoLSkgb3IgYWZ0ZXIgKCspIEVhc3RlcgorICAgICAqIEBwYXJhbSBvcnRob2RveCAgVXNlIHRoZSBPcnRob2RveCBjYWxlbmRhcj8KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShpbnQgZGF5c0FmdGVyLCBib29sZWFuIG9ydGhvZG94LCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKGRheXNBZnRlciwgb3J0aG9kb3gpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaHJvdmUgVHVlc2RheSwgYWthIE1hcmRpIEdyYXMsIDQ4IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IFNIUk9WRV9UVUVTREFZICA9IG5ldyBFYXN0ZXJIb2xpZGF5KC00OCwgICAgIlNocm92ZSBUdWVzZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBc2ggV2VkbmVzZGF5LCBzdGFydCBvZiBMZW50LCA0NyBkYXlzIGJlZm9yZSBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBBU0hfV0VETkVTREFZICAgPSBuZXcgRWFzdGVySG9saWRheSgtNDcsICAgICJBc2ggV2VkbmVzZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBQYWxtIFN1bmRheSwgNyBkYXlzIGJlZm9yZSBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBQQUxNX1NVTkRBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggLTcsICAgICJQYWxtIFN1bmRheSIpOworCisgICAgLyoqCisgICAgICogTWF1bmR5IFRodXJzZGF5LCAzIGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IE1BVU5EWV9USFVSU0RBWSA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAtMywgICAgIk1hdW5keSBUaHVyc2RheSIpOworCisgICAgLyoqCisgICAgICogR29vZCBGcmlkYXksIDIgZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgR09PRF9GUklEQVkgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIC0yLCAgICAiR29vZCBGcmlkYXkiKTsKKworICAgIC8qKgorICAgICAqIEVhc3RlciBTdW5kYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBFQVNURVJfU1VOREFZICAgPSBuZXcgRWFzdGVySG9saWRheSggIDAsICAgICJFYXN0ZXIgU3VuZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBFYXN0ZXIgTW9uZGF5LCAxIGRheSBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBFQVNURVJfTU9OREFZICAgPSBuZXcgRWFzdGVySG9saWRheSggIDEsICAgICJFYXN0ZXIgTW9uZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBc2NlbnNpb24sIDM5IGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgQVNDRU5TSU9OICAgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDM5LCAgICAiQXNjZW5zaW9uIik7CisKKyAgICAvKioKKyAgICAgKiBQZW50ZWNvc3QgKGFrYSBXaGl0IFN1bmRheSksIDQ5IGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgUEVOVEVDT1NUICAgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDQ5LCAgICAiUGVudGVjb3N0Iik7CisKKyAgICAvKioKKyAgICAgKiBXaGl0IFN1bmRheSAoYWthIFBlbnRlY29zdCksIDQ5IGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgV0hJVF9TVU5EQVkgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDQ5LCAgICAiV2hpdCBTdW5kYXkiKTsKKworICAgIC8qKgorICAgICAqIFdoaXQgTW9uZGF5LCA1MCBkYXlzIGFmdGVyIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IFdISVRfTU9OREFZICAgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCA1MCwgICAgIldoaXQgTW9uZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBDb3JwdXMgQ2hyaXN0aSwgNjAgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBDT1JQVVNfQ0hSSVNUSSAgPSBuZXcgRWFzdGVySG9saWRheSggNjAsICAgICJDb3JwdXMgQ2hyaXN0aSIpOworfQorCitjbGFzcyBFYXN0ZXJSdWxlIGltcGxlbWVudHMgRGF0ZVJ1bGUgeworICAgIHB1YmxpYyBFYXN0ZXJSdWxlKGludCBkYXlzQWZ0ZXJFYXN0ZXIsIGJvb2xlYW4gaXNPcnRob2RveCkgeworICAgICAgICB0aGlzLmRheXNBZnRlckVhc3RlciA9IGRheXNBZnRlckVhc3RlcjsKKyAgICAgICAgaWYgKGlzT3J0aG9kb3gpIHsKKyAgICAgICAgICAgIG9ydGhvZG94LnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FsZW5kYXIgPSBvcnRob2RveDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIHJ1bGUgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIGRhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpCisgICAgeworICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIHJ1bGUgb24gb3IgYWZ0ZXIKKyAgICAgKiB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbiBlbmQgZGF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIERhdGUgaXMgb24gdGhlIHNhbWUgZGF5IGFzIEVhc3RlcgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgc3luY2hyb25pemVkKGNhbGVuZGFyKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKGRhdGUpOworICAgICAgICAgICAgaW50IGRheU9mWWVhciA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUik7CisKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoY29tcHV0ZUluWWVhcihjYWxlbmRhci5nZXRUaW1lKCksIGNhbGVuZGFyKSk7CisKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpID09IGRheU9mWWVhcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIEVhc3RlciBvY2N1cnMgYmV0d2VlbiB0aGUgdHdvIGRhdGVzIGdpdmVuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0QmV0d2VlbihzdGFydCwgZW5kKSAhPSBudWxsOyAvLyBUT0RPOiBvcHRpbWl6ZT8KKyAgICB9CisKKyAgICBwcml2YXRlIERhdGUgZG9GaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZG9GaXJzdEJldHdlZW46IHN0YXJ0ICAgPSAiICsgc3RhcnQudG9TdHJpbmcoKSk7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb0ZpcnN0QmV0d2VlbjogZW5kICAgICA9ICIgKyBlbmQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3luY2hyb25pemVkKGNhbGVuZGFyKSB7CisgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IHdoZW4gdGhpcyBob2xpZGF5IGxhbmRzIGluIHRoZSBnaXZlbiB5ZWFyCisgICAgICAgICAgICBEYXRlIHJlc3VsdCA9IGNvbXB1dGVJblllYXIoc3RhcnQsIGNhbGVuZGFyKTsKKworICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICByZXN1bHQgID0gIiArIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBnb3R0ZW4gYSBkYXRlIHRoYXQncyBpbiB0aGUgc2FtZSB5ZWFyIGFzICJzdGFydCIsIGJ1dAorICAgICAgICAgICAgLy8gZWFybGllciBpbiB0aGUgeWVhci4gIElmIHNvLCBnbyB0byBuZXh0IHllYXIKKyAgICAgICAgICAgIGlmIChyZXN1bHQuYmVmb3JlKHN0YXJ0KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7ICAgIC8vIEpESyAxLjEuMiBidWcgd29ya2Fyb3VuZAorICAgICAgICAgICAgICAgIGNhbGVuZGFyLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgICAgICAgICAgUmVzdWx0IGJlZm9yZSBzdGFydCwgZ29pbmcgdG8gbmV4dCB5ZWFyOiAiCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICArIGNhbGVuZGFyLmdldFRpbWUoKS50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVJblllYXIoY2FsZW5kYXIuZ2V0VGltZSgpLCBjYWxlbmRhcik7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICByZXN1bHQgID0gIiArIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVuZCAhPSBudWxsICYmIHJlc3VsdC5hZnRlcihlbmQpKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlJlc3VsdCBhZnRlciBlbmQsIHJldHVybmluZyBudWxsIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgbW9udGggYW5kIGRhdGUgb24gd2hpY2ggdGhpcyBob2xpZGF5IGZhbGxzIGluIHRoZSB5ZWFyCisgICAgICogY29udGFpbmluZyB0aGUgZGF0ZSAiZGF0ZSIuICBGaXJzdCBmaWd1cmUgb3V0IHdoaWNoIGRhdGUgRWFzdGVyCisgICAgICogbGFuZHMgb24gaW4gdGhpcyB5ZWFyLCBhbmQgdGhlbiBhZGQgdGhlIG9mZnNldCBmb3IgdGhpcyBob2xpZGF5IHRvIGdldAorICAgICAqIHRoZSByaWdodCBkYXRlLgorICAgICAqIDxwPgorICAgICAqIFRoZSBhbGdvcml0aG0gaGVyZSBpcyB0YWtlbiBmcm9tIHRoZQorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly93d3cuZmFxcy5vcmcvZmFxcy9jYWxlbmRhcnMvZmFxLyI+Q2FsZW5kYXIgRkFRPC9hPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGUgY29tcHV0ZUluWWVhcihEYXRlIGRhdGUsIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGlmIChjYWwgPT0gbnVsbCkgY2FsID0gY2FsZW5kYXI7CisKKyAgICAgICAgc3luY2hyb25pemVkKGNhbCkgeworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIGludCB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBnID0geWVhciAlIDE5OyAgLy8gIkdvbGRlbiBOdW1iZXIiIG9mIHllYXIgLSAxCisgICAgICAgICAgICBpbnQgaSA9IDA7ICAgICAgICAgIC8vICMgb2YgZGF5cyBmcm9tIDMvMjEgdG8gdGhlIFBhc2NoYWwgZnVsbCBtb29uCisgICAgICAgICAgICBpbnQgaiA9IDA7ICAgICAgICAgIC8vIFdlZWtkYXkgKDAtYmFzZWQpIG9mIFBhc2NoYWwgZnVsbCBtb29uCisKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmFmdGVyKCBjYWwuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlJ3JlIHBhc3QgdGhlIEdyZWdvcmlhbiBzd2l0Y2hvdmVyLCBzbyB1c2UgdGhlIEdyZWdvcmlhbiBydWxlcy4KKyAgICAgICAgICAgICAgICBpbnQgYyA9IHllYXIgLyAxMDA7CisgICAgICAgICAgICAgICAgaW50IGggPSAoYyAtIGMvNCAtICg4KmMrMTMpLzI1ICsgMTkqZyArIDE1KSAlIDMwOworICAgICAgICAgICAgICAgIGkgPSBoIC0gKGgvMjgpKigxIC0gKGgvMjgpKigyOS8oaCsxKSkqKCgyMS1nKS8xMSkpOworICAgICAgICAgICAgICAgIGogPSAoeWVhciArIHllYXIvNCArIGkgKyAyIC0gYyArIGMvNCkgJSA3OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgb2xkIEp1bGlhbiBydWxlcy4KKyAgICAgICAgICAgICAgICBpID0gKDE5KmcgKyAxNSkgJSAzMDsKKyAgICAgICAgICAgICAgICBqID0gKHllYXIgKyB5ZWFyLzQgKyBpKSAlIDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbCA9IGkgLSBqOworICAgICAgICAgICAgaW50IG0gPSAzICsgKGwrNDApLzQ0OyAgICAgICAgICAgICAgLy8gMS1iYXNlZCBtb250aCBpbiB3aGljaCBFYXN0ZXIgZmFsbHMKKyAgICAgICAgICAgIGludCBkID0gbCArIDI4IC0gMzEqKG0vNCk7ICAgICAgICAgIC8vIERhdGUgb2YgRWFzdGVyIHdpdGhpbiB0aGF0IG1vbnRoCisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEdyZWdvcmlhbkNhbGVuZGFyLkFEKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBtLTEpOyAgICAgICAvLyAwLWJhc2VkCisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBVEUsIGQpOworICAgICAgICAgICAgY2FsLmdldFRpbWUoKTsgICAgICAgICAgICAgICAgICAgICAgLy8gSkRLIDEuMS4yIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIGRheXNBZnRlckVhc3Rlcik7CisKKyAgICAgICAgICAgIHJldHVybiBjYWwuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZ29yaWFuID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKC8qIG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikgKi8pOworICAgIHByaXZhdGUgc3RhdGljIEdyZWdvcmlhbkNhbGVuZGFyIG9ydGhvZG94ID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKC8qIG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikgKi8pOworCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgICBkYXlzQWZ0ZXJFYXN0ZXI7CisgICAgcHJpdmF0ZSBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IGdyZWdvcmlhbjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0V0aGlvcGljQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0V0aGlvcGljQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTQ4MmViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsMzM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBJbXBsZW1lbnQgdGhlIEV0aGlvcGljIGNhbGVuZGFyIHN5c3RlbS4KKyAqIDxwPgorICogRXRoaW9waWNDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1ldGhpb3BpYyI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBkcmFmdCBJQ1UgMy40CisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEV0aGlvcGljQ2FsZW5kYXIgZXh0ZW5kcyBDRUNhbGVuZGFyIAoreworICAgIC8vamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTI0Mzg0OTU3NzEzMzkzMTU2MDhMOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyMThcdTEyMzVcdTEyYThcdTEyMjhcdTEyMWQsIHRoZSAxc3QgbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVTS0VSRU0gPSAwOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEzMjVcdTEyNDVcdTEyMWRcdTEyNzUsIHRoZSAybmQgbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVLRU1UID0gMTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjg1XHUxMmYzXHUxMjJkLCB0aGUgM3JkIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFREFSID0gMjsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjczXHUxMjg1XHUxMjIzXHUxMjI1LCB0aGUgNHRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBSFNBUyA9IDM7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMyNVx1MTIyZCwgdGhlIDV0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVIgPSA0OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyZThcdTEyYWJcdTEyNzJcdTEyNzUsIHRoZSA2dGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVLQVRJVCA9IDU7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIxOFx1MTMwYlx1MTI2Mlx1MTI3NSwgdGhlIDd0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRUdBQklUID0gNjsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjFhXHUxMmViXHUxMmRkXHUxMmViLCB0aGUgOHRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JQVpJQSA9IDc7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMwZFx1MTI5NVx1MTI2Nlx1MTI3NSwgdGhlIDl0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU5CT1QgPSA4OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyMzBcdTEyOTQsIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTkUgPSA5OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyMTBcdTEyMWRcdTEyMGMsIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTUxFID0gMTA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTI5MFx1MTIxMFx1MTIzNCwgdGhlIDEydGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkVIQVNTRSA9IDExOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEzMzNcdTEzMDlcdTEyMWNcdTEyOTUsIHRoZSAxM3RoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBR1VNRU4gPSAxMjsKKyAKKyAgICAvLyBVcCB1bnRpbCB0aGUgZW5kIG9mIHRoZSAxOXRoIGNlbnR1cnkgdGhlIHByZXZhaWxhbnQgY29udmVudGlvbiB3YXMgdG8KKyAgICAvLyByZWZlcmVuY2UgdGhlIEV0aGlvcGljIENhbGVuZGFyIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSB3b3JsZCwgCisgICAgLy8gXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMmQzXHUxMjA4XHUxMjFkCisgICAgLy8gKEFtZXRlIEFsZW0gNTUwMCBCQykuICBBcyBFdGhpb3BpYSBtb2Rlcm5pemVkIHRoZSByZWZlcmVuY2UgZXBvY2ggZnJvbQorICAgIC8vIHRoZSBiaXJ0aCBvZiBDaHJpc3QgKFx1MTJkM1x1MTIxOFx1MTI3MFx1MTM2MVx1MTIxZFx1MTIxNVx1MTIyOFx1MTI3NSkgCisgICAgLy8gYmVnYW4gdG8gZGlzcGxhY2UgdGhlIGNyZWF0aW9uIG9mIHRoZQorICAgIC8vIHdvcmxkIHJlZmVyZW5jZSBwb2ludC4gIEhvd2V2ZXIsIHllYXJzIGJlZm9yZSB0aGUgYmlydGggb2YgQ2hyaXN0IGFyZQorICAgIC8vIHN0aWxsIHJlZmVyZW5jZWQgaW4gdGhlIGNyZWF0aW9uIG9mIHRoZSB3b3JsZCBzeXN0ZW0uICAgCisgICAgLy8gVGh1cyAtMTAwIFx1MTJkMy9cdTEyMWQKKyAgICAvLyB3b3VsZCBiZSByZW5kZXJlZCBhcyA1NDAwICBcdTEyZDMvXHUxMmQzLgorICAgIC8vCisgICAgLy8gVGhlIGNyZWF0aW9uIG9mIHRoZSB3b3JsZCBpbiBFdGhpb3BpYyBjYW5ub24gd2FzIAorICAgIC8vIE1lc2tlcmVtIDEsIC01NTAwICBcdTEyZDMvXHUxMjFkIDAwOjAwOjAwCisgICAgLy8gYXBwbHlpbmcgdGhlIGJpcnRoIG9mIENocmlzdCByZWZlcmVuY2UgYW5kIEV0aGlvcGlhbiB0aW1lIGNvbnZlbnRpb25zLiAgVGhpcyBpcworICAgIC8vIDYgaG91cnMgbGVzcyB0aGFuIHRoZSBKdWxpYW4gZXBvY2ggcmVmZXJlbmNlIHBvaW50IChub29uKS4gIEluIEdyZWdvcmlhbgorICAgIC8vIHRoZSBkYXRlIGFuZCB0aW1lIHdhcyBKdWx5IDE4dGggLTU0OTMgQkMgMDY6MDAgQU0uCisJCisgICAgLy8gSnVsaWFuIERheXMgcmVsYXRpdmUgdG8gdGhlIAorICAgIC8vIFx1MTJkM1x1MTIxOFx1MTI3MFx1MTM2MVx1MTIxZFx1MTIxNVx1MTIyOFx1MTI3NSBlcG9jaAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTSA9IC0yODUwMTk7CisKKyAgICAvLyBKdWxpYW4gRGF5cyByZWxhdGl2ZSB0byB0aGUgCisgICAgLy8gXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMmQzXHUxMjA4XHUxMjFkIGVwb2NoCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQgPSAxNzIzODU2OworCisgICAgLy8gaW5pdGlhbGl6ZSBiYXNlIGNsYXNzIGNvbnN0YW50LCBjb21tb24gdG8gYWxsIGNvbnN0cnVjdG9ycworICAgIHsKKyAgICAJamRFcG9jaE9mZnNldCA9IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoKSB7CisgICAgCXN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICBzdXBlcih6b25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgaWN1IGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgaWN1IGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBNZXNrZXJlbS4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAJc3VwZXIoeWVhciwgbW9udGgsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFdGhpb3BpY0NhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgIAlzdXBlcihkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBNZXNrZXJlbS4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gc2Vjb25kICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFdGhpb3BpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAJc3VwZXIoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFuIEV0aGlvcGljIHllYXIsIG1vbnRoLCBhbmQgZGF5IHRvIGEgSnVsaWFuIGRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBtb250aAorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBkYXkKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgRXRoaW9waWNUb0pEKGxvbmcgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgIAlyZXR1cm4gY2VUb0pEKHllYXIsIG1vbnRoLCBkYXRlLCBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfTUlIUkVUKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEludGVnZXJbXSBnZXREYXRlRnJvbUpEKGludCBqdWxpYW5EYXkpIHsKKyAgICAJcmV0dXJuIGdldERhdGVGcm9tSkQoanVsaWFuRGF5LCBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfTUlIUkVUKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IEFsZW0gb3IgTWlocmV0IGVyYS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvbk9mZiBTZXQgQW1ldGUgQWxlbSBlcmEgaWYgdHJ1ZSwgb3RoZXJ3aXNlIHNldCBBbWV0ZSBNaWhyZXQgZXJhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbWV0ZUFsZW1FcmEoYm9vbGVhbiBvbk9mZikgeworICAgIAl0aGlzLmpkRXBvY2hPZmZzZXQgPSBvbk9mZiAKKwkgICAgPyBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTSAKKwkgICAgOiBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfTUlIUkVUOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGNhbGVuZGFyIGlzIHNldCB0byB0aGUgQW1ldGUgQWxlbSBlcmEuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2V0IHRvIHRoZSBBbWV0ZSBBbGVtIGVyYS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNBbWV0ZUFsZW1FcmEoKSB7CisgICAgCXJldHVybiB0aGlzLmpkRXBvY2hPZmZzZXQgPT0gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX0FMRU07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiZXRoaW9waWMiOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRnJlZXphYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9GcmVlemFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjI5ZjQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRnJlZXphYmxlLmphdmEKQEAgLTAsMCArMSwzMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIDxwcmU+CisgKiAgRFJBRlQKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogPC9wcmU+CisgKiAKKyAqIFByb3ZpZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIGZvciBjb250cm9sbGluZyBhY2Nlc3MsIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQKKyAqIGEgY2xhc3MgYmUgaW1tdXRhYmxlLiBPbmNlIGxvY2tlZCwgYW4gb2JqZWN0IGNhbiBuZXZlciBiZSB1bmxvY2tlZCwgc28gaXQgaXMKKyAqIHRocmVhZC1zYWZlIGZyb20gdGhhdCBwb2ludCBvbndhcmQuIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBib3RoIG1ldGhvZHMgbXVzdAorICogYmUgc3luY2hyb25pemVkLiBPbmNlIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkLCBpdCBtdXN0IGd1YXJhbnRlZSB0aGF0IG5vCisgKiBjaGFuZ2VzIGNhbiBiZSBtYWRlIHRvIGl0LiBBbnkgYXR0ZW1wdCB0byBhbHRlciBpdCBtdXN0IHJhaXNlIGFuCisgKiBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBleGNlcHRpb24uIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHRoZSBvYmplY3QKKyAqIHJldHVybnMgaW50ZXJuYWwgb2JqZWN0cywgb3IgaWYgYW55b25lIGhhcyByZWZlcmVuY2VzIHRvIHRob3NlIGludGVybmFsCisgKiBvYmplY3RzLCB0aGF0IHRob3NlIGludGVybmFsIG9iamVjdHMgbXVzdCBlaXRoZXIgYmUgaW1tdXRhYmxlLCBvciBtdXN0IGFsc28KKyAqIHJhaXNlIGV4Y2VwdGlvbnMgaWYgYW55IGF0dGVtcHQgdG8gbW9kaWZ5IHRoZW0gaXMgbWFkZS4gT2YgY291cnNlLCB0aGUgb2JqZWN0CisgKiBjYW4gcmV0dXJuIGNsb25lcyBvZiBpbnRlcm5hbCBvYmplY3RzLCBzaW5jZSB0aG9zZSBhcmUgc2FmZS4KKyAqIDxoMj5CYWNrZ3JvdW5kPC9oMj4KKyAqIDxwPgorICogVGhlcmUgYXJlIG9mdGVuIHRpbWVzIHdoZW4geW91IG5lZWQgb2JqZWN0cyB0byBiZSBvYmplY3RzICdzYWZlJywgc28gdGhhdAorICogdGhleSBjYW4ndCBiZSBtb2RpZmllZC4gRXhhbXBsZXMgYXJlIHdoZW4gb2JqZWN0cyBuZWVkIHRvIGJlIHRocmVhZC1zYWZlLCBvcgorICogaW4gd3JpdGluZyByb2J1c3QgY29kZSwgb3IgaW4gY2FjaGVzLiBJZiB5b3UgYXJlIG9ubHkgY3JlYXRpbmcgeW91ciBvd24KKyAqIG9iamVjdHMsIHlvdSBjYW4gZ3VhcmFudGVlIHRoaXMsIG9mIGNvdXJzZSAtLSBidXQgb25seSBpZiB5b3UgZG9uJ3QgbWFrZSBhCisgKiBtaXN0YWtlLiBJZiB5b3UgaGF2ZSBvYmplY3RzIGhhbmRlZCBpbnRvIHlvdSwgb3IgYXJlIGNyZWF0aW5nIG9iamVjdHMgdXNpbmcKKyAqIG90aGVycyBoYW5kZWQgaW50byB5b3UsIGl0IGlzIGEgZGlmZmVyZW50IHN0b3J5LiBJdCBhbGwgY29tZXMgZG93biB0byB3aGV0aGVyCisgKiB5b3Ugd2FudCB0byB0YWtlIHRoZSBCbGFuY2hlIER1Ym9pcyBhcHByb2FjaCAoJnF1b3Q7ZGVwZW5kIG9uIHRoZSBraW5kbmVzcyBvZgorICogc3RyYW5nZXJzJnF1b3Q7KSBvciB0aGUgQW5keSBHcm92ZSBhcHByb2FjaCAoJnF1b3Q7T25seSB0aGUgUGFyYW5vaWQKKyAqIFN1cnZpdmUmcXVvdDspLgorICogPC9wPgorICogPHA+CisgKiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB3ZSBoYXZlIGEgc2ltcGxlIGNsYXNzOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogcHVibGljIGNsYXNzIEEgeworICogICAgICBwcm90ZWN0ZWQgQ29sbGVjdGlvbiBiOworICogCisgKiAgICAgIHByb3RlY3RlZCBDb2xsZWN0aW9uIGM7CisgKiAKKyAqICAgICAgcHVibGljIENvbGxlY3Rpb24gZ2V0X2IoKSB7CisgKiAgICAgICAgICAgICAgcmV0dXJuIGI7CisgKiAgICAgIH0KKyAqIAorICogICAgICBwdWJsaWMgQ29sbGVjdGlvbiBnZXRfYygpIHsKKyAqICAgICAgICAgICAgICByZXR1cm4gYzsKKyAqICAgICAgfQorICogCisgKiAgICAgIHB1YmxpYyBBKENvbGxlY3Rpb24gbmV3X2IsIENvbGxlY3Rpb24gbmV3X2MpIHsKKyAqICAgICAgICAgICAgICBiID0gbmV3X2I7CisgKiAgICAgICAgICAgICAgYyA9IG5ld19jOworICogICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBTaW5jZSB0aGUgY2xhc3MgZG9lc24ndCBoYXZlIGFueSBzZXR0ZXJzLCBzb21lb25lIG1pZ2h0IHRoaW5rIHRoYXQgaXQgaXMKKyAqIGltbXV0YWJsZS4gWW91IGtub3cgd2hlcmUgdGhpcyBpcyBsZWFkaW5nLCBvZiBjb3Vyc2U7IHRoaXMgY2xhc3MgaXMgdW5zYWZlIGluCisgKiBhIG51bWJlciBvZiB3YXlzLiBUaGUgZm9sbG93aW5nIGlsbHVzdHJhdGVzIHRoYXQuCisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiAgcHVibGljIHRlc3QxKFN1cHBvc2VkbHlJbW11dGFibGVDbGFzcyB4LCBTYWZlU3RvcmFnZSB5KSB7CisgKiAgICZsdDtmb250IGNvbG9yPSZxdW90OyMwMDAwRkYmcXVvdDsmZ3Q7ICAgICZsdDtiJmd0Oy8vIHVuc2FmZSBnZXR0ZXImbHQ7L2ImZ3Q7CisgKiAgICZsdDsvZm9udCZndDsgICAgQSBhID0geC5nZXRBKCk7CisgKiAgIENvbGxlY3Rpb24gY29sID0gYS5nZXRfYigpOworICogICBjb2wuYWRkKHNvbWV0aGluZyk7Jmx0O2ZvbnQgY29sb3I9JnF1b3Q7IzAwMDBGRiZxdW90OyZndDsgLy8gYSBoYXMgbm93IGJlZW4gY2hhbmdlZCwgYW5kIHggdG9vCisgKiAgICZsdDsvZm9udCZndDsKKyAqICAgJmx0O2ZvbnQgY29sb3I9JnF1b3Q7IzAwMDBGRiZxdW90OyZndDsmbHQ7YiZndDsvLyB1bnNhZmUgY29uc3RydWN0b3ImbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OworICogICBhID0gbmV3IEEoY29sLCBjb2wpOworICogICB5LnN0b3JlKGEpOworICogICBjb2wuYWRkKHNvbWV0aGluZyk7Jmx0O2ZvbnQgY29sb3I9JnF1b3Q7IzAwMDBGRiZxdW90OyZndDsgLy8gYSBoYXMgbm93IGJlZW4gY2hhbmdlZCwgYW5kIHkgdG9vCisgKiAgCisgKiAgICZsdDsvZm9udCZndDt9CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBUaGVyZSBhcmUgYSBmZXcgZGlmZmVyZW50IHRlY2huaXF1ZXMgZm9yIGhhdmluZyBzYWZlIGNsYXNzZXMuCisgKiA8L3A+CisgKiA8b2w+CisgKiA8bGk+Q29uc3Qgb2JqZWN0cy4gSW4gQysrLCB5b3UgY2FuIGRlY2xhcmUgcGFyYW1ldGVycyBjb25zdC48L2xpPgorICogPGxpPkltbXV0YWJsZSB3cmFwcGVycy4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gcHV0IGEgY29sbGVjdGlvbiBpbiBhbgorICogaW1tdXRhYmxlIHdyYXBwZXIuPC9saT4KKyAqIDxsaT5BbHdheXMtSW1tdXRhYmxlIG9iamVjdHMuIEphdmEgdXNlcyB0aGlzIGFwcHJvYWNoLCB3aXRoIGEgZmV3CisgKiB2YXJpYXRpb25zLiBFeGFtcGxlczoKKyAqIDxvbD4KKyAqIDxsaT5TaW1wbGUuIE9uY2UgYSBDb2xvciBpcyBjcmVhdGVkIChlZyBmcm9tIFIsIEcsIGFuZCBCIGludGVnZXJzKSBpdCBpcworICogaW1tdXRhYmxlLjwvbGk+CisgKiA8bGk+QnVpbGRlciBDbGFzcy4gVGhlcmUgaXMgYSBzZXBhcmF0ZSAnYnVpbGRlcicgY2xhc3MuIEZvciBleGFtcGxlLAorICogbW9kaWZpYWJsZSBTdHJpbmdzIGFyZSBjcmVhdGVkIHVzaW5nIFN0cmluZ0J1ZmZlciAod2hpY2ggZG9lc24ndCBoYXZlIHRoZQorICogZnVsbCBTdHJpbmcgQVBJIGF2YWlsYWJsZSkuIE9uY2UgeW91IHdhbnQgYW4gaW1tdXRhYmxlIGZvcm0sIHlvdSBjcmVhdGUgb25lCisgKiB3aXRoIHRvU3RyaW5nKCkuPC9saT4KKyAqIDxsaT5QcmltaXRpdmVzLiBUaGVzZSBhcmUgYWx3YXlzIHNhZmUsIHNpbmNlIHRoZXkgYXJlIGNvcGllZCBvbiBpbnB1dC9vdXRwdXQKKyAqIGZyb20gbWV0aG9kcy48L2xpPgorICogPC9vbD4KKyAqIDwvbGk+CisgKiA8bGk+Q2xvbmluZy4gV2hlcmUgeW91IG5lZWQgYW4gb2JqZWN0IHRvIGJlIHNhZmUsIHlvdSBjbG9uZSBpdC48L2xpPgorICogPC9vbD4KKyAqIDxwPgorICogVGhlcmUgYXJlIGFkdmFudGFnZXMgYW5kIGRpc2FkdmFudGFnZXMgb2YgZWFjaCBvZiB0aGVzZS4KKyAqIDwvcD4KKyAqIDxvbD4KKyAqIDxsaT5Db25zdCBwcm92aWRlcyBhIGNlcnRhaW4gbGV2ZWwgb2YgcHJvdGVjdGlvbiwgYnV0IHNpbmNlIGNvbnN0IGNhbiBiZSBhbmQKKyAqIGlzIG9mdGVuIGNhc3QgYXdheSwgaXQgb25seSBwcm90ZWN0cyBhZ2FpbnN0IG1vc3QgaW5hZHZlcnRlbnQgbWlzdGFrZXMuIEl0CisgKiBhbHNvIG9mZmVycyBubyB0aHJlYWRpbmcgcHJvdGVjdGlvbiwgc2luY2UgYW55b25lIHdobyBoYXMgYSBwb2ludGVyIHRvIHRoZQorICogKHVuY29uc3QpIG9iamVjdCBpbiBhbm90aGVyIHRocmVhZCBjYW4gbWVzcyB5b3UgdXAuPC9saT4KKyAqIDxsaT5JbW11dGFibGUgd3JhcHBlcnMgYXJlIHNhZmVyIHRoYW4gY29uc3QgaW4gdGhhdCB0aGUgY29uc3RuZXNzIGNhbid0IGJlCisgKiBjYXN0IGF3YXkuIEJ1dCBvdGhlciB0aGFuIHRoYXQgdGhleSBoYXZlIGFsbCB0aGUgc2FtZSBwcm9ibGVtczogbm90IHNhZmUgaWYKKyAqIHNvbWVvbmUgZWxzZSBrZWVwcyBob2xkIG9mIHRoZSBvcmlnaW5hbCBvYmplY3QsIG9yIGlmIGFueSBvZiB0aGUgb2JqZWN0cworICogcmV0dXJuZWQgYnkgdGhlIGNsYXNzIGFyZSBtdXRhYmxlLjwvbGk+CisgKiA8bGk+QWx3YXlzLUltbXV0YWJsZSBPYmplY3RzIGFyZSBzYWZlLCBidXQgdXNhZ2UgY2FuIHJlcXVpcmUgZXhjZXNzaXZlCisgKiBvYmplY3QgY3JlYXRpb24uPC9saT4KKyAqIDxsaT5DbG9uaW5nIGlzIG9ubHkgc2FmZSBpZiB0aGUgb2JqZWN0IHRydWx5IGhhcyBhICdzYWZlJyBjbG9uZTsgZGVmaW5lZCBhcworICogb25lIHRoYXQgPGk+ZW5zdXJlcyB0aGF0IG5vIGNoYW5nZSB0byB0aGUgY2xvbmUgYWZmZWN0cyB0aGUgb3JpZ2luYWw8L2k+LgorICogVW5mb3J0dW5hdGVseSwgbWFueSBvYmplY3RzIGRvbid0IGhhdmUgYSAnc2FmZScgY2xvbmUsIGFuZCBhbHdheXMgY2xvbmluZyBjYW4KKyAqIHJlcXVpcmUgZXhjZXNzaXZlIG9iamVjdCBjcmVhdGlvbi48L2xpPgorICogPC9vbD4KKyAqIDxoMj5GcmVlemFibGUgTW9kZWw8L2gyPgorICogPHA+CisgKiBUaGUgPGNvZGU+RnJlZXphYmxlPC9jb2RlPiBtb2RlbCBzdXBwbGVtZW50cyB0aGVzZSBjaG9pY2VzIGJ5IGdpdmluZyB5b3UKKyAqIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIHVwIGFuIG9iamVjdCBieSBjYWxsaW5nIHZhcmlvdXMgbWV0aG9kcywgdGhlbiB3aGVuIGl0IGlzCisgKiBpbiBhIGZpbmFsIHN0YXRlLCB5b3UgY2FuIDxpPm1ha2U8L2k+IGl0IGltbXV0YWJsZS4gT25jZSBpbW11dGFibGUsIGFuCisgKiBvYmplY3QgY2Fubm90IDxpPmV2ZXIgPC9pPmJlIG1vZGlmaWVkLCBhbmQgaXMgY29tcGxldGVseSB0aHJlYWQtc2FmZTogdGhhdAorICogaXMsIG11bHRpcGxlIHRocmVhZHMgY2FuIGhhdmUgcmVmZXJlbmNlcyB0byBpdCB3aXRob3V0IGFueSBzeW5jaHJvbml6YXRpb24uCisgKiBJZiBzb21lb25lIG5lZWRzIGEgbXV0YWJsZSB2ZXJzaW9uIG9mIGFuIG9iamVjdCwgdGhleSBjYW4gdXNlCisgKiA8Y29kZT5jbG9uZUFzVGhhd2VkKCk8L2NvZGU+LCBhbmQgbW9kaWZ5IHRoZSBjb3B5LiBUaGlzIHByb3ZpZGVzIGEgc2ltcGxlLAorICogZWZmZWN0aXZlIG1lY2hhbmlzbSBmb3Igc2FmZSBjbGFzc2VzIGluIGNpcmN1bXN0YW5jZXMgd2hlcmUgdGhlIGFsdGVybmF0aXZlcworICogYXJlIGluc3VmZmljaWVudCBvciBjbHVtc3kuIChJZiBhbiBvYmplY3QgaXMgc2hhcmVkIGJlZm9yZSBpdCBpcyBpbW11dGFibGUsCisgKiB0aGVuIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBlYWNoIHRocmVhZCB0byBtdXRleCBpdHMgdXNhZ2UgKGFzIHdpdGgKKyAqIG90aGVyIG9iamVjdHMpLikKKyAqIDwvcD4KKyAqIDxwPgorICogSGVyZSBpcyB3aGF0IG5lZWRzIHRvIGJlIGRvbmUgdG8gaW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlLCBkZXBlbmRpbmcgb24gdGhlCisgKiB0eXBlIG9mIHRoZSBvYmplY3QuCisgKiA8L3A+CisgKiA8aDM+PGI+SW1tdXRhYmxlIE9iamVjdHM8L2I+PC9oMz4KKyAqIDxwPgorICogVGhlc2UgYXJlIHRoZSBlYXNpZXN0LiBZb3UganVzdCB1c2UgdGhlIGludGVyZmFjZSB0byByZWZsZWN0IHRoYXQsIGJ5IGFkZGluZworICogdGhlIGZvbGxvd2luZzoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqICBwdWJsaWMgY2xhc3MgQSBpbXBsZW1lbnRzIEZyZWV6YWJsZSB7CisgKiAgIC4uLgorICogICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0Zyb3plbigpIHtyZXR1cm4gdHJ1ZTt9CisgKiAgIHB1YmxpYyBmaW5hbCBPYmplY3QgZnJlZXplKCkge3JldHVybiB0aGlzO30KKyAqICAgcHVibGljIGZpbmFsIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeyByZXR1cm4gdGhpczsgfQorICogICB9CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBUaGVzZSBjYW4gYmUgZmluYWwgbWV0aG9kcyBiZWNhdXNlIHN1YmNsYXNzZXMgb2YgaW1tdXRhYmxlIG9iamVjdHMgbXVzdAorICogdGhlbXNlbHZlcyBiZSBpbW11dGFibGUuIChOb3RlOiA8Y29kZT5mcmVlemU8L2NvZGU+IGlzIHJldHVybmluZworICogPGNvZGU+dGhpczwvY29kZT4gZm9yIGNoYWluaW5nLikKKyAqIDwvcD4KKyAqIDxoMz48Yj5NdXRhYmxlIE9iamVjdHM8L2I+PC9oMz4KKyAqIDxwPgorICogQWRkIGEgcHJvdGVjdGVkICdmbGFnZ2luZycgZmllbGQ6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBwcm90ZWN0ZWQgYm9vbGVhbiBpbW11dGFibGU7CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBBZGQgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogcHVibGljIGZpbmFsIGJvb2xlYW4gaXNGcm96ZW4oKSB7CisgKiAgICAgIHJldHVybiBmcm96ZW47CisgKiB9OworICogCisgKiBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpIHsKKyAqICAgICAgZnJvemVuID0gdHJ1ZTsKKyAqICAgICAgcmV0dXJuIHRoaXM7CisgKiB9CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBBZGQgYSA8Y29kZT5jbG9uZUFzVGhhd2VkKCk8L2NvZGU+IG1ldGhvZCBmb2xsb3dpbmcgdGhlIG5vcm1hbCBwYXR0ZXJuIGZvcgorICogPGNvZGU+Y2xvbmUoKTwvY29kZT4sIGV4Y2VwdCB0aGF0IDxjb2RlPmZyb3plbj1mYWxzZTwvY29kZT4gaW4gdGhlIG5ldworICogY2xvbmUuCisgKiA8L3A+CisgKiA8cD4KKyAqIFRoZW4gdGFrZSB0aGUgc2V0dGVycyAodGhhdCBpcywgYW55IG1ldGhvZCB0aGF0IGNhbiBjaGFuZ2UgdGhlIGludGVybmFsIHN0YXRlCisgKiBvZiB0aGUgb2JqZWN0KSwgYW5kIGFkZCB0aGUgZm9sbG93aW5nIGFzIHRoZSBmaXJzdCBzdGF0ZW1lbnQ6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBpZiAoaXNGcm96ZW4oKSkgeworICogICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oJnF1b3Q7QXR0ZW1wdCB0byBtb2RpZnkgZnJvemVuIG9iamVjdCZxdW90Oyk7CisgKiB9CisgKiA8L3ByZT4KKyAqIAorICogPGg0PjxiPlN1YmNsYXNzaW5nPC9iPjwvaDQ+CisgKiA8cD4KKyAqIEFueSBzdWJjbGFzcyBvZiBhIDxjb2RlPkZyZWV6YWJsZTwvY29kZT4gd2lsbCBqdXN0IHVzZSBpdHMgc3VwZXJjbGFzcydzCisgKiBmbGFnZ2luZyBmaWVsZC4gSXQgbXVzdCBvdmVycmlkZSA8Y29kZT5mcmVlemUoKTwvY29kZT4gYW5kCisgKiA8Y29kZT5jbG9uZUFzVGhhd2VkKCk8L2NvZGU+IHRvIGNhbGwgdGhlIHN1cGVyY2xhc3MsIGJ1dCBub3JtYWxseSBkb2VzIG5vdAorICogb3ZlcnJpZGUgPGNvZGU+aXNGcm96ZW4oKTwvY29kZT4uIEl0IG11c3QgdGhlbiBqdXN0IHBheSBhdHRlbnRpb24gdG8gaXRzCisgKiBvd24gZ2V0dGVycywgc2V0dGVycyBhbmQgZmllbGRzLgorICogPC9wPgorICogPGg0PjxiPkludGVybmFsIENhY2hlczwvYj48L2g0PgorICogPHA+CisgKiBJbnRlcm5hbCBjYWNoZXMgYXJlIGNhc2VzIHdoZXJlIHRoZSBvYmplY3QgaXMgbG9naWNhbGx5IHVubW9kaWZpZWQsIGJ1dAorICogaW50ZXJuYWwgc3RhdGUgb2YgdGhlIG9iamVjdCBjaGFuZ2VzLiBGb3IgZXhhbXBsZSwgdGhlcmUgYXJlIGNvbnN0IEMrKworICogZnVuY3Rpb25zIHRoYXQgY2FzdCBhd2F5IHRoZSBjb25zdCBvbiB0aGUgJnF1b3Q7dGhpcyZxdW90OyBwb2ludGVyIGluIG9yZGVyCisgKiB0byBtb2RpZnkgYW4gb2JqZWN0IGNhY2hlLiBUaGVzZSBjYXNlcyBhcmUgaGFuZGxlZCBieSBtdXRleGluZyB0aGUgaW50ZXJuYWwKKyAqIGNhY2hlIHRvIGVuc3VyZSB0aHJlYWQtc2FmZXR5LiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IFVuaWNvZGVTZXQgaGFkIGFuCisgKiBpbnRlcm5hbCBtYXJrZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBhY2Nlc3NlZC4gSW4gdGhpcyBjYXNlLCB0aGUgZmllbGQgaXMKKyAqIG5vdCBleHRlcm5hbGx5IHZpc2libGUsIHNvIHRoZSBvbmx5IHRoaW5nIHlvdSBuZWVkIHRvIGRvIGlzIHRvIHN5bmNocm9uaXplCisgKiB0aGUgZmllbGQgZm9yIHRocmVhZCBzYWZldHkuCisgKiA8L3A+CisgKiA8aDQ+VW5zYWZlIEludGVybmFsIEFjY2VzczwvaDQ+CisgKiA8cD4KKyAqIEludGVybmFsIGZpZWxkcyBhcmUgY2FsbGVkIDxpPnNhZmU8L2k+IGlmIHRoZXkgYXJlIGVpdGhlcgorICogPGNvZGU+ZnJvemVuPC9jb2RlPiBvciBpbW11dGFibGUgKHN1Y2ggYXMgU3RyaW5nIG9yIHByaW1pdGl2ZXMpLiBJZiB5b3UndmUKKyAqIG5ldmVyIGFsbG93ZWQgaW50ZXJuYWwgYWNjZXNzIHRvIHRoZXNlLCB0aGVuIHlvdSBhcmUgYWxsIGRvbmUuIEZvciBleGFtcGxlLAorICogY29udmVydGluZyBVbmljb2RlU2V0IHRvIGJlIDxjb2RlPkZyZWV6YWJsZTwvY29kZT4gaXMganVzdCBhY2NvbXBsaXNoZWQKKyAqIHdpdGggdGhlIGFib3ZlIHN0ZXBzLiBCdXQgcmVtZW1iZXIgdGhhdCB5b3UgPGk+PGI+aGF2ZTwvYj48L2k+IGFsbG93ZWQKKyAqIGFjY2VzcyB0byB1bnNhZmUgaW50ZXJuYWxzIGlmIHlvdSBoYXZlIGFueSBjb2RlIGxpa2UgdGhlIGZvbGxvd2luZywgaW4gYQorICogZ2V0dGVyLCBzZXR0ZXIsIG9yIGNvbnN0cnVjdG9yOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogQ29sbGVjdGlvbiBnZXRTdHVmZigpIHsKKyAqICAgICAgcmV0dXJuIHN0dWZmOworICogfSAvLyBjYWxsZXIgY291bGQga2VlcCByZWZlcmVuY2UgJmFtcDsgbW9kaWZ5CisgKiAKKyAqIHZvaWQgc2V0U3R1ZmYoQ29sbGVjdGlvbiB4KSB7CisgKiAgICAgIHN0dWZmID0geDsKKyAqIH0gLy8gY2FsbGVyIGNvdWxkIGtlZXAgcmVmZXJlbmNlICZhbXA7IG1vZGlmeQorICogCisgKiBNeUNsYXNzKENvbGxlY3Rpb24geCkgeworICogICAgICBzdHVmZiA9IHg7CisgKiB9IC8vIGNhbGxlciBjb3VsZCBrZWVwIHJlZmVyZW5jZSAmYW1wOyBtb2RpZnkKKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIFRoZXNlIGFsc28gaWxsdXN0cmF0ZWQgaW4gdGhlIGNvZGUgc2FtcGxlIGluIDxiPkJhY2tncm91bmQ8L2I+IGFib3ZlLgorICogPC9wPgorICogPHA+CisgKiBUbyBkZWFsIHdpdGggdW5zYWZlIGludGVybmFscywgdGhlIHNpbXBsZXN0IGNvdXJzZSBvZiBhY3Rpb24gaXMgdG8gZG8gdGhlCisgKiB3b3JrIGluIHRoZSA8Y29kZT4KKyBmcmVlemUoKTwvY29kZT4gZnVuY3Rpb24uIEp1c3QgbWFrZSBhbGwgb2YgeW91ciBpbnRlcm5hbAorICogZmllbGRzIGZyb3plbiwgYW5kIHNldCB0aGUgZnJvemVuIGZsYWcuIEFueSBzdWJzZXF1ZW50IGdldHRlci9zZXR0ZXIgd2lsbAorICogd29yayBwcm9wZXJseS4gSGVyZSBpcyBhbiBleGFtcGxlOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisgKiAgICAgIGlmICghZnJvemVuKSB7CisgKiAgICAgICAgICAgICAgZm9vLmZyZWV6ZSgpOworICogICAgICAgICAgICAgIGZyb3plbiA9IHRydWU7CisgKiAgICAgIH0KKyAqICAgICAgcmV0dXJuIHRoaXM7CisgKiB9CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBJZiB0aGUgZmllbGQgaXMgYSA8Y29kZT5Db2xsZWN0aW9uPC9jb2RlPiBvciA8Y29kZT5NYXA8L2NvZGU+LCB0aGVuIHRvCisgKiBtYWtlIGl0IGZyb3plbiB5b3UgaGF2ZSB0d28gY2hvaWNlcy4gSWYgeW91IGhhdmUgbmV2ZXIgYWxsb3dlZCBhY2Nlc3MgdG8gdGhlCisgKiBjb2xsZWN0aW9uIGZyb20gb3V0c2lkZSB5b3VyIG9iamVjdCwgdGhlbiBqdXN0IHdyYXAgaXQgdG8gcHJldmVudCBmdXR1cmUKKyAqIG1vZGlmaWNhdGlvbi4KKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIHpvbmVfdG9fY291bnRyeSA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZU1hcCh6b25lX3RvX2NvdW50cnkpOworICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogSWYgeW91IGhhdmUgPGk+ZXZlcjwvaT4gYWxsb3dlZCBhY2Nlc3MsIHRoZW4gZG8gYSA8Y29kZT5jbG9uZSgpPC9jb2RlPgorICogYmVmb3JlIHdyYXBwaW5nIGl0LgorICogPC9wPgorICogCisgKiA8cHJlPgorICogem9uZV90b19jb3VudHJ5ID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTWFwKHpvbmVfdG9fY291bnRyeS5jbG9uZSgpKTsKKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIElmIGEgY29sbGVjdGlvbiA8aT4ob3IgYW55IG90aGVyIGNvbnRhaW5lciBvZiBvYmplY3RzKTwvaT4gaXRzZWxmIGNhbgorICogY29udGFpbiBtdXRhYmxlIG9iamVjdHMsIHRoZW4gZm9yIGEgc2FmZSBjbG9uZSB5b3UgbmVlZCB0byByZWN1cnNlIHRocm91Z2ggaXQKKyAqIHRvIG1ha2UgdGhlIGVudGlyZSBjb2xsZWN0aW9uIGltbXV0YWJsZS4gVGhlIHJlY3Vyc2luZyBjb2RlIHNob3VsZCBwaWNrIHRoZQorICogbW9zdCBzcGVjaWZpYyBjb2xsZWN0aW9uIGF2YWlsYWJsZSwgdG8gYXZvaWQgdGhlIG5lY2Vzc2l0eSBvZiBsYXRlcgorICogZG93bmNhc2luZy4KKyAqIDwvcD4KKyAqIDxibG9ja3F1b3RlPgorICogPHA+CisgKiA8Yj5Ob3RlOiA8L2I+QW4gYW5ub3lpbmcgZmxhdyBpbiBKYXZhIGlzIHRoYXQgdGhlIGdlbmVyaWMgY29sbGVjdGlvbnMsIGxpa2UKKyAqIDxjb2RlPk1hcDwvY29kZT4gb3IgPGNvZGU+U2V0PC9jb2RlPiwgZG9uJ3QgaGF2ZSBhIDxjb2RlPmNsb25lKCk8L2NvZGU+CisgKiBvcGVyYXRpb24uIFdoZW4geW91IGRvbid0IGtub3cgdGhlIHR5cGUgb2YgdGhlIGNvbGxlY3Rpb24sIHRoZSBzaW1wbGVzdAorICogY291cnNlIGlzIHRvIGp1c3QgY3JlYXRlIGEgbmV3IGNvbGxlY3Rpb246CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiB6b25lX3RvX2NvdW50cnkgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVNYXAobmV3IEhhc2hNYXAoem9uZV90b19jb3VudHJ5KSk7CisgKiA8L3ByZT4KKyAqIAorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAqLworcHVibGljIGludGVyZmFjZSBGcmVlemFibGUgZXh0ZW5kcyBDbG9uZWFibGUgeworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgb2JqZWN0IGhhcyBiZWVuIGxvY2tlZCBvciBub3QuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpOworCisgICAgLyoqCisgICAgICogTG9ja3MgdGhlIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBvYmplY3QgaXRzZWxmLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBmcmVlemUoKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGZvciB0aGUgY2xvbmUgb3BlcmF0aW9uLiBBbnkgY2xvbmUgaXMgaW5pdGlhbGx5IHVubG9ja2VkLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMDBiMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuamF2YQpAQCAtMCwwICsxLDE1NDMgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkJpdFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCitpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisvLyNlbmRpZgoraW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlpvbmVNZXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKKy8qKgorICogVGhpcyBjb252ZW5pZW5jZSBjbGFzcyBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgYnVuZGxpbmcgdG9nZXRoZXIgZGlmZmVyZW50CisgKiBnbG9iYWxpemF0aW9uIHByZWZlcmVuY2VzLiBJdCBpbmNsdWRlczoKKyAqIDx1bD4KKyAqIDxsaT5BIGxpc3Qgb2YgbG9jYWxlcy9sYW5ndWFnZXMgaW4gcHJlZmVyZW5jZSBvcmRlcjwvbGk+CisgKiA8bGk+QSB0ZXJyaXRvcnk8L2xpPgorICogPGxpPkEgY3VycmVuY3k8L2xpPgorICogPGxpPkEgdGltZXpvbmU8L2xpPgorICogPGxpPkEgY2FsZW5kYXI8L2xpPgorICogPGxpPkEgY29sbGF0b3IgKGZvciBsYW5ndWFnZS1zZW5zaXRpdmUgc29ydGluZywgc2VhcmNoaW5nLCBhbmQgbWF0Y2hpbmcpLjwvbGk+CisgKiA8bGk+RXhwbGljaXQgb3ZlcnJpZGVzIGZvciBkYXRlL3RpbWUgZm9ybWF0cywgZXRjLjwvbGk+CisgKiA8L3VsPgorICogVGhlIGNsYXNzIHdpbGwgaGV1cmlzdGljYWxseSBjb21wdXRlIGltcGxpY2l0LCBoZXVyaXN0aWMgdmFsdWVzIGZvciB0aGUgYWJvdmUKKyAqIGJhc2VkIG9uIGF2YWlsYWJsZSBkYXRhIGlmIGV4cGxpY2l0IHZhbHVlcyBhcmUgbm90IHN1cHBsaWVkLiBUaGVzZSBpbXBsaWNpdAorICogdmFsdWVzIGNhbiBiZSBwcmVzZW50ZWQgdG8gdXNlcnMgZm9yIGNvbmZpcm1hdGlvbiwgb3IgcmVwbGFjZW1lbnQgaWYgdGhlCisgKiB2YWx1ZXMgYXJlIGluY29ycmVjdC4KKyAqIDxwPgorICogVG8gcmVzZXQgYW55IGV4cGxpY2l0IGZpZWxkIHNvIHRoYXQgaXQgd2lsbCBnZXQgaGV1cmlzdGljIHZhbHVlcywgcGFzcyBpbgorICogbnVsbC4gRm9yIGV4YW1wbGUsIG15UHJlZmVyZW5jZXMuc2V0TG9jYWxlKG51bGwpOworICogPHA+CisgKiBBbGwgb2YgdGhlIGhldXJpc3RpY3MgY2FuIGJlIGN1c3RvbWl6ZWQgYnkgc3ViY2xhc3NlcywgYnkgb3ZlcnJpZGluZworICogZ2V0VGVycml0b3J5KCksIGd1ZXNzQ29sbGF0b3IoKSwgZXRjLgorICogPHA+CisgKiBUaGUgY2xhc3MgYWxzbyBzdXBwbGllcyBkaXNwbGF5IG5hbWVzIGZvciBsYW5ndWFnZXMsIHNjcmlwdHMsIHRlcnJpdG9yaWVzLAorICogY3VycmVuY2llcywgdGltZXpvbmVzLCBldGMuIFRoZXNlIGFyZSBjb21wdXRlZCBhY2NvcmRpbmcgdG8gdGhlCisgKiBsb2NhbGUvbGFuZ3VhZ2UgcHJlZmVyZW5jZSBsaXN0LiBUaHVzLCBpZiB0aGUgcHJlZmVyZW5jZSBpcyBCcmV0b247IEZyZW5jaDsKKyAqIEVuZ2xpc2gsIHRoZW4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgYSBsYW5ndWFnZSB3aWxsIGJlIHJldHVybmVkIGluIEJyZXRvbiBpZgorICogYXZhaWxhYmxlLCBvdGhlcndpc2UgaW4gRnJlbmNoIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGluIEVuZ2xpc2guCisgKiA8cD4KKyAqIFRoZSBjb2RlcyB1c2VkIHRvIHJlZmVyZW5jZSB0ZXJyaXRvcnksIGN1cnJlbmN5LCBldGMuIGFyZSBhcyBkZWZpbmVkIGVsc2V3aGVyZQorICogaW4gSUNVLCBhbmQgYXJlIHRha2VuIGZyb20gQ0xEUiAod2hpY2ggcmVmbGVjdHMgUkZDIDMwNjZiaXMgdXNhZ2UsIElTTyA0MjE3LAorICogYW5kIHRoZSBUWiBUaW1lem9uZSBkYXRhYmFzZSBpZGVudGlmaWVycykuCisgKiA8cD4KKyAqIDxiPlRoaXMgaXMgYXQgYSBwcm90b3R5cGUgc3RhZ2UsIGFuZCBoYXMgbm90IGluY29ycG9yYXRlZCBhbGwgdGhlIGRlc2lnbgorICogY2hhbmdlcyB0aGF0IHdlIHdvdWxkIGxpa2UgeWV0OyBmdXJ0aGVyIGZlZWRiYWNrIGlzIHdlbGNvbWUuPC9iPjwvcD4KKyAqIDxwPgorICogVE9ETzo8dWw+CisgKiA8bGk+QWRkIEhvbGlkYXlzPC9saT4KKyAqIDxsaT5BZGQgY29udmVuaWVuY2UgdG8gZ2V0L3Rha2UgTG9jYWxlIGFzIHdlbGwgYXMgVUxvY2FsZS48L2xpPgorICogPGxpPkFkZCBMZW5pZW50IGRhdGV0aW1lIGZvcm1hdHRpbmcgd2hlbiB0aGF0IGlzIGF2YWlsYWJsZS48L2xpPgorICogPGxpPlNob3VsZCB0aGlzIGJlIHNlcmlhbGl6YWJsZT88L2xpPgorICogPGxpPk90aGVyIHV0aWxpdGllcz88L2xpPgorICogPC91bD4KKyAqIE5vdGU6CisgKiA8dWw+CisgKiA8bGk+dG8gZ2V0IHRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHVzZSB0aGUgY2FsZW5kYXIgKworICogZGlzcGxheSBuYW1lcy48L2xpPgorICogPGxpPnRvIGdldCB0aGUgd29yayBkYXlzLCBhc2sgdGhlIGNhbGVuZGFyICh3aGVuIHRoYXQgaXMgYXZhaWxhYmxlKS48L2xpPgorICogPGxpPnRvIGdldCBwYXBlcnNpemUgLyBtZWFzdXJlbWVudCBzeXN0ZW0vYmlkaS1vcmllbnRhdGlvbiwgYXNrIHRoZSBsb2NhbGUKKyAqICh3aGVuIHRoYXQgaXMgYXZhaWxhYmxlIHRoZXJlKTwvbGk+CisgKiA8bGk+dG8gZ2V0IHRoZSBmaWVsZCBvcmRlciBpbiBhIGRhdGUsIGFuZCB3aGV0aGVyIGEgdGltZSBpcyAyNGhvdXIgb3Igbm90LAorICogYXNrIHRoZSBEYXRlRm9ybWF0ICh3aGVuIHRoYXQgaXMgYXZhaWxhYmxlIHRoZXJlKTwvbGk+CisgKiA8bGk+aXQgd2lsbCBzdXBwb3J0IEhPU1QgbG9jYWxlIHdoZW4gaXQgYmVjb21lcyBhdmFpbGFibGUgKGl0IGlzIGEgc3BlY2lhbAorICogbG9jYWxlIHRoYXQgd2lsbCBhc2sgdGhlIHNlcnZpY2VzIHRvIHVzZSB0aGUgaG9zdCBwbGF0Zm9ybSdzIHZhbHVlcykuPC9saT4KKyAqIDwvdWw+CisgKgorICogQGRyYWZ0IElDVSAzLjYKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIGltcGxlbWVudHMgRnJlZXphYmxlIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCl7fQorICAgIC8qKgorICAgICAqIE51bWJlciBGb3JtYXQgdHlwZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IAorICAgICAgICBORl9OVU1CRVIgPSAwLCAgICAgIC8vIE51bWJlckZvcm1hdC5OVU1CRVJTVFlMRQorICAgICAgICBORl9DVVJSRU5DWSA9IDEsICAgIC8vIE51bWJlckZvcm1hdC5DVVJSRU5DWVNUWUxFCisgICAgICAgIE5GX1BFUkNFTlQgPSAyLCAgICAgLy8gTnVtYmVyRm9ybWF0LlBFUkNFTlRTVFlMRQorICAgICAgICBORl9TQ0lFTlRJRklDID0gMywgIC8vIE51bWJlckZvcm1hdC5TQ0lFTlRJRklDU1RZTEUKKyAgICAgICAgTkZfSU5URUdFUiA9IDQ7ICAgICAvLyBOdW1iZXJGb3JtYXQuSU5URUdFUlNUWUxFCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTkZfTElNSVQgPSBORl9JTlRFR0VSICsgMTsKKworICAgIC8qKgorICAgICAqIERhdGUgRm9ybWF0IHR5cGVzCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBERl9GVUxMID0gRGF0ZUZvcm1hdC5GVUxMLCAgICAgIC8vIDAKKyAgICAgICAgREZfTE9ORyA9IERhdGVGb3JtYXQuTE9ORywgICAgICAvLyAxCisgICAgICAgIERGX01FRElVTSA9IERhdGVGb3JtYXQuTUVESVVNLCAgLy8gMgorICAgICAgICBERl9TSE9SVCA9IERhdGVGb3JtYXQuU0hPUlQsICAgIC8vIDMKKyAgICAgICAgREZfTk9ORSA9IDQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREZfTElNSVQgPSBERl9OT05FICsgMTsKKworICAgIC8qKgorICAgICAqIEZvciBzZWxlY3RpbmcgYSBjaG9pY2Ugb2YgZGlzcGxheSBuYW1lcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgSURfTE9DQUxFID0gMCwKKyAgICAgICAgSURfTEFOR1VBR0UgPSAxLAorICAgICAgICBJRF9TQ1JJUFQgPSAyLAorICAgICAgICBJRF9URVJSSVRPUlkgPSAzLAorICAgICAgICBJRF9WQVJJQU5UID0gNCwgCisgICAgICAgIElEX0tFWVdPUkQgPSA1LAorICAgICAgICBJRF9LRVlXT1JEX1ZBTFVFID0gNiwKKyAgICAgICAgSURfQ1VSUkVOQ1kgPSA3LAorICAgICAgICBJRF9DVVJSRU5DWV9TWU1CT0wgPSA4LAorICAgICAgICBJRF9USU1FWk9ORSA9IDk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURfTElNSVQgPSBJRF9USU1FWk9ORSArIDE7CisKKyAgICAvKioKKyAgICAgKiBCcmVhayBpdGVyYXRvciB0eXBlcworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBCSV9DSEFSQUNURVIgPSBCcmVha0l0ZXJhdG9yLktJTkRfQ0hBUkFDVEVSLCAgICAvLyAwCisgICAgICAgIEJJX1dPUkQgPSBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCwgICAgICAgICAgICAgIC8vIDEKKyAgICAgICAgQklfTElORSA9IEJyZWFrSXRlcmF0b3IuS0lORF9MSU5FLCAgICAgICAgICAgICAgLy8gMgorICAgICAgICBCSV9TRU5URU5DRSA9IEJyZWFrSXRlcmF0b3IuS0lORF9TRU5URU5DRSwgICAgICAvLyAzCisgICAgICAgIEJJX1RJVExFID0gQnJlYWtJdGVyYXRvci5LSU5EX1RJVExFOyAgICAgICAgICAgIC8vIDQKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSV9MSU1JVCA9IEJJX1RJVExFICsgMTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxhbmd1YWdlL2xvY2FsZSBwcmlvcml0eSBsaXN0LiBJZiBvdGhlciBpbmZvcm1hdGlvbiBpcworICAgICAqIG5vdCAoeWV0KSBhdmFpbGFibGUsIHRoaXMgaXMgdXNlZCB0byB0byBwcm9kdWNlIGEgZGVmYXVsdCB2YWx1ZQorICAgICAqIGZvciB0aGUgYXBwcm9wcmlhdGUgdGVycml0b3J5LCBjdXJyZW5jeSwgdGltZXpvbmUsIGV0Yy4gIFRoZQorICAgICAqIHVzZXIgc2hvdWxkIGJlIGdpdmVuIHRoZSBvcHBvcnR1bml0eSB0byBjb3JyZWN0IHRob3NlIGRlZmF1bHRzCisgICAgICogaW4gY2FzZSB0aGV5IGFyZSBpbmNvcnJlY3QuCisgICAgICogCisgICAgICogQHBhcmFtIGlucHV0TG9jYWxlcyBsaXN0IG9mIGxvY2FsZXMgaW4gcHJpb3JpdHkgb3JkZXIsIGVnIHsiYmUiLCAiZnIifSAKKyAgICAgKiAgICAgZm9yIEJyZXRvbiBmaXJzdCwgdGhlbiBGcmVuY2ggaWYgdGhhdCBmYWlscy4KKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRMb2NhbGVzKExpc3QgaW5wdXRMb2NhbGVzKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICBsb2NhbGVzID0gcHJvY2Vzc0xvY2FsZXMoaW5wdXRMb2NhbGVzKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTGlzdCBnZXRMb2NhbGVzKCkgeworICAgICAgICBMaXN0IHJlc3VsdDsKKyAgICAgICAgaWYgKGxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gZ3Vlc3NMb2NhbGVzKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7IAorICAgICAgICAgICAgcmVzdWx0LmFkZEFsbChsb2NhbGVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSBsb2NhbGVzIGluIHByaW9yaXR5IG9yZGVyCisgICAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCAoMC4ubikgb2YgdGhlIGRlc2lyZWQgaXRlbS4KKyAgICAgKiBAcmV0dXJuIGRlc2lyZWQgaXRlbS4gbnVsbCBpZiBpbmRleCBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldExvY2FsZShpbnQgaW5kZXgpIHsKKyAgICAgICAgTGlzdCBsY2xzID0gbG9jYWxlczsKKyAgICAgICAgaWYgKGxjbHMgPT0gbnVsbCkgeworICAgICAgICAgICAgbGNscyA9IGd1ZXNzTG9jYWxlcygpOworICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbGNscy5zaXplKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAoVUxvY2FsZSlsY2xzLmdldChpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugcm91dGluZSBmb3Igc2V0dGluZyB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5CisgICAgICogbGlzdCBmcm9tIGFuIGFycmF5LgorICAgICAqIAorICAgICAqIEBzZWUgI3NldExvY2FsZXMoTGlzdCBsb2NhbGVzKQorICAgICAqIEBwYXJhbSB1TG9jYWxlcyBsaXN0IG9mIGxvY2FsZXMgaW4gYW4gYXJyYXkKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRMb2NhbGVzKFVMb2NhbGVbXSB1TG9jYWxlcykgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldExvY2FsZXMoQXJyYXlzLmFzTGlzdCh1TG9jYWxlcykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHJvdXRpbmUgZm9yIHNldHRpbmcgdGhlIGxhbmd1YWdlL2xvY2FsZSBwcmlvcml0eQorICAgICAqIGxpc3QgZnJvbSBhIHNpbmdsZSBsb2NhbGUvbGFuZ3VhZ2UuCisgICAgICogCisgICAgICogQHNlZSAjc2V0TG9jYWxlcyhMaXN0IGxvY2FsZXMpCisgICAgICogQHBhcmFtIHVMb2NhbGUgc2luZ2xlIGxvY2FsZQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZShVTG9jYWxlIHVMb2NhbGUpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXRMb2NhbGVzKG5ldyBVTG9jYWxlW117dUxvY2FsZX0pOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIHRoZSBsb2NhbGUgcHJpb3JpdHkgbGlzdCBmcm9tCisgICAgICogYW4gQWNjZXB0LUxhbmd1YWdlIHN0cmluZy4KKyAgICAgKiBAc2VlICNzZXRMb2NhbGVzKExpc3QgbG9jYWxlcykKKyAgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VTdHJpbmcgQWNjZXB0LUxhbmd1YWdlIGxpc3QsIGFzIGRlZmluZWQgYnkgCisgICAgICogICAgIFNlY3Rpb24gMTQuNCBvZiB0aGUgUkZDIDI2MTYgKEhUVFAgMS4xKQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZXMoU3RyaW5nIGFjY2VwdExhbmd1YWdlU3RyaW5nKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgIEFjY2VwdC1MYW5ndWFnZSA9ICJBY2NlcHQtTGFuZ3VhZ2UiICI6IiAxIyggbGFuZ3VhZ2UtcmFuZ2UgWyAiOyIgInEiICI9IiBxdmFsdWUgXSApCisgICAgICAgICAgeCBtYXRjaGVzIHgtLi4uCisgICAgICAgICovCisgICAgICAgIC8vIHJlb3JkZXJzIGluIHF1YWxpdHkgb3JkZXIKKyAgICAgICAgLy8gZG9uJ3QgY2FyZSB0aGF0IGl0IGlzIG5vdCB2ZXJ5IGVmZmljaWVudCByaWdodCBub3cKKyAgICAgICAgTWF0Y2hlciBhY2NlcHRNYXRjaGVyID0gUGF0dGVybi5jb21waWxlKCJcXHMqKFstX2EtekEtWl0rKSg7cT0oWy4wLTldKykpP1xccyoiKS5tYXRjaGVyKCIiKTsKKyAgICAgICAgTWFwIHJlb3JkZXIgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBTdHJpbmdbXSBwaWVjZXMgPSBhY2NlcHRMYW5ndWFnZVN0cmluZy5zcGxpdCgiLCIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIERvdWJsZSBxVmFsdWUgPSBuZXcgRG91YmxlKDEpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoIWFjY2VwdE1hdGNoZXIucmVzZXQocGllY2VzW2ldKS5tYXRjaGVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcVZhbHVlU3RyaW5nID0gYWNjZXB0TWF0Y2hlci5ncm91cCgzKTsKKyAgICAgICAgICAgICAgICBpZiAocVZhbHVlU3RyaW5nICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcVZhbHVlID0gbmV3IERvdWJsZShEb3VibGUucGFyc2VEb3VibGUocVZhbHVlU3RyaW5nKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJlbGVtZW50ICciICsgcGllY2VzW2ldICsgCisgICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBvZiB0aGUgZm9ybSAnPGxvY2FsZT57O3E9PG51bWJlcj59Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBMaXN0IGl0ZW1zID0gKExpc3QpcmVvcmRlci5nZXQocVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChpdGVtcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVvcmRlci5wdXQocVZhbHVlLCBpdGVtcyA9IG5ldyBMaW5rZWRMaXN0KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXRlbXMuYWRkKDAsIGFjY2VwdE1hdGNoZXIuZ3JvdXAoMSkpOyAvLyByZXZlcnNlIG9yZGVyLCB3aWxsIHJldmVyc2UgYWdhaW4KKyAgICAgICAgfQorICAgICAgICAvLyBub3cgcmVhZCBvdXQgaW4gcmV2ZXJzZSBvcmRlcgorICAgICAgICBMaXN0IHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHJlb3JkZXIua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIExpc3QgaXRlbXMgPSAoTGlzdClyZW9yZGVyLmdldChrZXkpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdDIgPSBpdGVtcy5pdGVyYXRvcigpOyBpdDIuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoMCwgbmV3IFVMb2NhbGUoKFN0cmluZylpdDIubmV4dCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldExvY2FsZXMocmVzdWx0KTsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IGEgUmVzb3VyY2VCdW5kbGUgaW5zdGFuY2UgdXNpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBiYXNlZCBvbiB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QKKyAgICAgKiBzdG9yZWQgaW4gdGhpcyBvYmplY3QuCisgICAgICogIAorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkCisgICAgICogY2xhc3MgbmFtZQorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSBiYXNlZCBvbiB0aGUKKyAgICAgKiBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkgbGlzdCBzdG9yZWQgaW4gdGhpcyBvYmplY3QKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKGJhc2VOYW1lLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBnZXQgYSBSZXNvdXJjZUJ1bmRsZSBpbnN0YW5jZSB1c2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGFuZCBjbGFzcyBsb2FkZXIgYmFzZWQgb24gdGhlIGxhbmd1YWdlL2xvY2FsZQorICAgICAqIHByaW9yaXR5IGxpc3Qgc3RvcmVkIGluIHRoaXMgb2JqZWN0LgorICAgICAqICAKKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlLCBhIGZ1bGx5IHF1YWxpZmllZAorICAgICAqIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9hZGVyIHRoZSBjbGFzcyBvYmplY3QgZnJvbSB3aGljaCB0byBsb2FkIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUgYmFzZWQgb24gdGhlCisgICAgICogbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3Qgc3RvcmVkIGluIHRoaXMgb2JqZWN0CisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJhc2VOYW1lLCBDbGFzc0xvYWRlciBsb2FkZXIpIHsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIHVyYiA9IG51bGw7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBjYW5kaWRhdGUgPSBudWxsOworICAgICAgICBTdHJpbmcgYWN0dWFsTG9jYWxlTmFtZSA9IG51bGw7CisgICAgICAgIExpc3QgZmFsbGJhY2tzID0gZ2V0TG9jYWxlcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZhbGxiYWNrcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWUgPSAoKFVMb2NhbGUpZmFsbGJhY2tzLmdldChpKSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhY3R1YWxMb2NhbGVOYW1lICE9IG51bGwgJiYgbG9jYWxlTmFtZS5lcXVhbHMoYWN0dWFsTG9jYWxlTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBBY3R1YWwgbG9jYWxlIG5hbWUgaW4gdGhlIHByZXZpb3VzIHJvdW5kIG1heSBleGFjdGx5IG1hdGNoZXMKKyAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBuZXh0IGZhbGxiYWNrIGxvY2FsZQorICAgICAgICAgICAgICAgIHVyYiA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGxvYWRlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIGxvYWRlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWxMb2NhbGVOYW1lID0gY2FuZGlkYXRlLmdldFVMb2NhbGUoKS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWxMb2NhbGVOYW1lLmVxdWFscyhsb2NhbGVOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXJiID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHVyYiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSB0aGUgYXZhaWxhYmxlIGJ1bmRsZSBhcyB0aGUgbGFzdCByZXNvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHVyYiA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtcmUpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxMb2NhbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodXJiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNhbid0IGZpbmQgYnVuZGxlIGZvciBiYXNlIG5hbWUgIgorICAgICAgICAgICAgICAgICAgICArIGJhc2VOYW1lLCBiYXNlTmFtZSwgIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1cmI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRlcnJpdG9yeSwgd2hpY2ggaXMgYSB2YWxpZCB0ZXJyaXRvcnkgYWNjb3JkaW5nIHRvIGZvcgorICAgICAqIFJGQyAzMDY2IChvciBzdWNjZXNzb3IpLiAgSWYgbm90IG90aGVyd2lzZSBzZXQsIGRlZmF1bHQKKyAgICAgKiBjdXJyZW5jeSBhbmQgdGltZXpvbmUgdmFsdWVzIHdpbGwgYmUgc2V0IGZyb20gdGhpcy4gIFRoZSB1c2VyCisgICAgICogc2hvdWxkIGJlIGdpdmVuIHRoZSBvcHBvcnR1bml0eSB0byBjb3JyZWN0IHRob3NlIGRlZmF1bHRzIGluCisgICAgICogY2FzZSB0aGV5IGFyZSBpbmNvcnJlY3QuCisgICAgICogCisgICAgICogQHBhcmFtIHRlcnJpdG9yeSBjb2RlCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0VGVycml0b3J5KFN0cmluZyB0ZXJyaXRvcnkpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGVycml0b3J5ID0gdGVycml0b3J5OyAvLyBpbW11dGFibGUsIHNvIGRvbid0IG5lZWQgdG8gY2xvbmUKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGVycml0b3J5IHNldHRpbmcuIElmIGl0IHdhc24ndCBleHBsaWNpdGx5IHNldCwgaXQgaXMKKyAgICAgKiBjb21wdXRlZCBmcm9tIHRoZSBnZW5lcmFsIGxvY2FsZSBzZXR0aW5nLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGVycml0b3J5IGNvZGUsIGV4cGxpY2l0IG9yIGltcGxpY2l0LgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXJyaXRvcnkoKSB7CisgICAgICAgIGlmICh0ZXJyaXRvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzVGVycml0b3J5KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlcnJpdG9yeTsgLy8gaW1tdXRhYmxlLCBzbyBkb24ndCBuZWVkIHRvIGNsb25lCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVuY3kgY29kZS4gSWYgdGhpcyBoYXMgbm90IGJlZW4gc2V0LCB1c2VzIGRlZmF1bHQgZm9yIHRlcnJpdG9yeS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgVmFsaWQgSVNPIDQyMTcgY3VycmVuY3kgY29kZS4KKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRDdXJyZW5jeShDdXJyZW5jeSBjdXJyZW5jeSkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5jdXJyZW5jeSA9IGN1cnJlbmN5OyAvLyBpbW11dGFibGUsIHNvIGRvbid0IG5lZWQgdG8gY2xvbmUKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgY3VycmVuY3kgY29tcHV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIGN1cnJlbmN5IGNvZGUsIGV4cGxpY2l0IG9yIGltcGxpY2l0LgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEN1cnJlbmN5IGdldEN1cnJlbmN5KCkgeworICAgICAgICBpZiAoY3VycmVuY3kgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzQ3VycmVuY3koKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3VycmVuY3k7IC8vIGltbXV0YWJsZSwgc28gZG9uJ3QgaGF2ZSB0byBjbG9uZQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNhbGVuZGFyLiBJZiB0aGlzIGhhcyBub3QgYmVlbiBzZXQsIHVzZXMgZGVmYXVsdCBmb3IgdGVycml0b3J5LgorICAgICAqIAorICAgICAqIEBwYXJhbSBjYWxlbmRhciBhcmJpdHJhcnkgY2FsZW5kYXIKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRDYWxlbmRhcihDYWxlbmRhciBjYWxlbmRhcikgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5jYWxlbmRhciA9IChDYWxlbmRhcikgY2FsZW5kYXIuY2xvbmUoKTsgLy8gY2xvbmUgZm9yIHNhZmV0eQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBjb3B5IG9mIHRoZSBjYWxlbmRhciBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzLiAKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIGNhbGVuZGFyIGV4cGxpY2l0IG9yIGltcGxpY2l0LgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyIGdldENhbGVuZGFyKCkgeworICAgICAgICBpZiAoY2FsZW5kYXIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzQ2FsZW5kYXIoKTsKKyAgICAgICAgfQorICAgICAgICBDYWxlbmRhciB0ZW1wID0gKENhbGVuZGFyKSBjYWxlbmRhci5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIHRlbXAuc2V0VGltZVpvbmUoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgIHRlbXAuc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICAgICAgcmV0dXJuIHRlbXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZXpvbmUgSUQuICBJZiB0aGlzIGhhcyBub3QgYmVlbiBzZXQsIHVzZXMgZGVmYXVsdCBmb3IgdGVycml0b3J5LgorICAgICAqIAorICAgICAqIEBwYXJhbSB0aW1lem9uZSBhIHZhbGlkIFRaSUQgKHNlZSBVVFMjMzUpLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldFRpbWVab25lKFRpbWVab25lIHRpbWV6b25lKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRpbWV6b25lID0gKFRpbWVab25lKSB0aW1lem9uZS5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5OworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHRpbWV6b25lLiBJdCB3YXMgZWl0aGVyIGV4cGxpY2l0bHkgc2V0LCBvciBpcworICAgICAqIGhldXJpc3RpY2FsbHkgY29tcHV0ZWQgZnJvbSBvdGhlciBzZXR0aW5ncy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRpbWV6b25lLCBlaXRoZXIgaW1wbGljaXRseSBvciBleHBsaWNpdGx5IHNldAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFRpbWVab25lIGdldFRpbWVab25lKCkgeworICAgICAgICBpZiAodGltZXpvbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzVGltZVpvbmUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFRpbWVab25lKSB0aW1lem9uZS5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgY29sbGF0b3IgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncy4gCisgICAgICogCisgICAgICogQHJldHVybiBjb2xsYXRvciBleHBsaWNpdCBvciBpbXBsaWNpdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRvciBnZXRDb2xsYXRvcigpIHsKKyAgICAgICAgaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBndWVzc0NvbGxhdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoQ29sbGF0b3IpIGNvbGxhdG9yLmNsb25lKCk7ICAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkVycm9yIGluIGNsb25pbmcgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGxpY2l0bHkgc2V0IHRoZSBjb2xsYXRvciBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHBhcmFtIGNvbGxhdG9yCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0Q29sbGF0b3IoQ29sbGF0b3IgY29sbGF0b3IpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0aGlzLmNvbGxhdG9yID0gKENvbGxhdG9yKSBjb2xsYXRvci5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5ICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJFcnJvciBpbiBjbG9uaW5nIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSBhY2NvcmRpbmcgdG8gdGhlCisgICAgICogc2V0dGluZ3MuCisgICAgICogCisgICAgICogQHBhcmFtIHR5cGUKKyAgICAgKiAgICAgICAgICBicmVhayB0eXBlIC0gQklfQ0hBUkFDVEVSIG9yIEJJX1dPUkQsIEJJX0xJTkUsIEJJX1NFTlRFTkNFLCBCSV9USVRMRQorICAgICAqIEByZXR1cm4gYnJlYWsgaXRlcmF0b3IgZXhwbGljaXQgb3IgaW1wbGljaXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSXRlcmF0b3IoaW50IHR5cGUpIHsKKyAgICAgICAgaWYgKHR5cGUgPCBCSV9DSEFSQUNURVIgfHwgdHlwZSA+PSBCSV9MSU1JVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBicmVhayBpdGVyYXRvciB0eXBlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3JzID09IG51bGwgfHwgYnJlYWtJdGVyYXRvcnNbdHlwZV0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGd1ZXNzQnJlYWtJdGVyYXRvcih0eXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKEJyZWFrSXRlcmF0b3IpIGJyZWFrSXRlcmF0b3JzW3R5cGVdLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHBsaWNpdGx5IHNldCB0aGUgYnJlYWsgaXRlcmF0b3IgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSB0eXBlCisgICAgICogICAgICAgICAgYnJlYWsgdHlwZSAtIEJJX0NIQVJBQ1RFUiBvciBCSV9XT1JELCBCSV9MSU5FLCBCSV9TRU5URU5DRSwgQklfVElUTEUKKyAgICAgKiBAcGFyYW0gaXRlcmF0b3IgYSBicmVhayBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldEJyZWFrSXRlcmF0b3IoaW50IHR5cGUsIEJyZWFrSXRlcmF0b3IgaXRlcmF0b3IpIHsKKyAgICAgICAgaWYgKHR5cGUgPCBCSV9DSEFSQUNURVIgfHwgdHlwZSA+PSBCSV9MSU1JVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBicmVhayBpdGVyYXRvciB0eXBlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9ycyA9PSBudWxsKQorICAgICAgICAgICAgYnJlYWtJdGVyYXRvcnMgPSBuZXcgQnJlYWtJdGVyYXRvcltCSV9MSU1JVF07CisgICAgICAgIGJyZWFrSXRlcmF0b3JzW3R5cGVdID0gKEJyZWFrSXRlcmF0b3IpIGl0ZXJhdG9yLmNsb25lKCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBkaXNwbGF5IG5hbWUgZm9yIGFuIElEOiBsYW5ndWFnZSwgc2NyaXB0LCB0ZXJyaXRvcnksIGN1cnJlbmN5LCB0aW1lem9uZS4uLgorICAgICAqIFVzZXMgdGhlIGxhbmd1YWdlIHByaW9yaXR5IGxpc3QgdG8gZG8gc28uCisgICAgICogCisgICAgICogQHBhcmFtIGlkIGxhbmd1YWdlIGNvZGUsIHNjcmlwdCBjb2RlLCAuLi4KKyAgICAgKiBAcGFyYW0gdHlwZSBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgdGhlIElEOiBJRF9MQU5HVUFHRSwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIGludCB0eXBlKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBpZDsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGdldExvY2FsZXMoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IChVTG9jYWxlKSBpdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoIWlzQXZhaWxhYmxlTG9jYWxlKGxvY2FsZSwgVFlQRV9HRU5FUklDKSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIElEX0xPQ0FMRToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSURfTEFOR1VBR0U6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9TQ1JJUFQ6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KCJ1bmQtIiArIGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSURfVEVSUklUT1JZOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoInVuZC0iICsgaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9WQVJJQU5UOgorICAgICAgICAgICAgICAgIC8vIFRPRE8gZml4IHZhcmlhbnQgcGFyc2luZworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoInVuZC1RUS0iICsgaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9LRVlXT1JEOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoaWQsIGxvY2FsZSk7IAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9LRVlXT1JEX1ZBTFVFOgorICAgICAgICAgICAgICAgIFN0cmluZ1tdIHBhcnRzID0gbmV3IFN0cmluZ1syXTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LnNwbGl0KGlkLCc9JyxwYXJ0cyk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKCJ1bmRAIitpZCwgcGFydHNbMF0sIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETyBmaXggdG8gdGVsbCB3aGVuIHN1Y2Nlc3NmdWwKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhwYXJ0c1sxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJRF9DVVJSRU5DWV9TWU1CT0w6CisgICAgICAgICAgICBjYXNlIElEX0NVUlJFTkNZOgorICAgICAgICAgICAgICAgIEN1cnJlbmN5IHRlbXAgPSBuZXcgQ3VycmVuY3koaWQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9dGVtcC5nZXROYW1lKGxvY2FsZSwgdHlwZT09SURfQ1VSUkVOQ1kgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBDdXJyZW5jeS5MT05HX05BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBDdXJyZW5jeS5TWU1CT0xfTkFNRSwgbmV3IGJvb2xlYW5bMV0pOworICAgICAgICAgICAgICAgIC8vIFRPRE86IGhhdmUgbWV0aG9kIHRoYXQgZG9lc24ndCB0YWtlIHBhcmFtZXRlci4gQWRkCisgICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgc3RyaW5nIGlzIGNob2ljZQorICAgICAgICAgICAgICAgIC8vIGZvcm1hdC4gIAorICAgICAgICAgICAgICAgIC8vIFRPRE86IGhhdmUgbWV0aG9kIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzCisgICAgICAgICAgICAgICAgLy8gdG8gY3JlYXRlIGEgY3VycmVuY3kKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSURfVElNRVpPTkU6CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkdGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgidnZ2diIsbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBkdGYuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkdGYuZm9ybWF0KG5ldyBEYXRlKCkpOworICAgICAgICAgICAgICAgIC8vIFRPRE8sIGhhdmUgbWV0aG9kIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIHRvIGNyZWF0ZSBhIHRpbWV6b25lCisgICAgICAgICAgICAgICAgLy8gZml4IG90aGVyIGhhY2tzCisgICAgICAgICAgICAgICAgLy8gaGFjayBmb3IgY291bGRuJ3QgbWF0Y2gKKyAgICAgICAgICAgICAgICAvLyBub3RlLCBjb21waWxpbmcgd2l0aCBGT1VOREFUSU9OIG9taXRzIHRoaXMgY2hlY2sgZm9yIG5vdworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICBpZiAoYmFkVGltZVpvbmUucmVzZXQocmVzdWx0KS5tYXRjaGVzKCkpIGNvbnRpbnVlOworLy8jZW5kaWYKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5rbm93biB0eXBlOiAiICsgdHlwZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFRPRE8gbmVlZCBiZXR0ZXIgd2F5IG9mIHNlZWluZyBpZiB3ZSBmZWxsIGJhY2sgdG8gcm9vdCEhCisgICAgICAgICAgICAvLyBUaGlzIHdpbGwgbm90IHdvcmsgYXQgYWxsIGZvciBsb3RzIG9mIHN0dWZmCisgICAgICAgICAgICBpZiAoIWlkLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLy8gVE9ETyByZW1vdmUgbmVlZCBmb3IgdGhpcworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hdGNoZXIgYmFkVGltZVpvbmUgPSBQYXR0ZXJuLmNvbXBpbGUoIltBLVpdezJ9fC4qXFxzXFwoW0EtWl17Mn1cXCkiKS5tYXRjaGVyKCIiKTsKKy8vI2VuZGlmCisKKworICAgIC8qKgorICAgICAqIFNldCBhbiBleHBsaWNpdCBkYXRlIGZvcm1hdC4gT3ZlcnJpZGVzIHRoZSBsb2NhbGUgcHJpb3JpdHkgbGlzdCBmb3IKKyAgICAgKiBhIHBhcnRpY3VsYXIgY29tYmluYXRpb24gb2YgZGF0ZVN0eWxlIGFuZCB0aW1lU3R5bGUuIERGX05PTkUgc2hvdWxkCisgICAgICogYmUgdXNlZCBpZiBmb3IgdGhlIHN0eWxlLCB3aGVyZSBvbmx5IHRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IGluZGl2aWR1YWxseQorICAgICAqIGlzIGJlaW5nIHNldC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIERGX0ZVTEwsIERGX0xPTkcsIERGX01FRElVTSwgREZfU0hPUlQgb3IgREZfTk9ORQorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgREZfRlVMTCwgREZfTE9ORywgREZfTUVESVVNLCBERl9TSE9SVCBvciBERl9OT05FCisgICAgICogQHBhcmFtIGZvcm1hdCBUaGUgZGF0ZSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXREYXRlRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIERhdGVGb3JtYXQgZm9ybWF0KSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF0ZUZvcm1hdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgZGF0ZUZvcm1hdHMgPSBuZXcgRGF0ZUZvcm1hdFtERl9MSU1JVF1bREZfTElNSVRdOworICAgICAgICB9CisgICAgICAgIGRhdGVGb3JtYXRzW2RhdGVTdHlsZV1bdGltZVN0eWxlXSA9IChEYXRlRm9ybWF0KSBmb3JtYXQuY2xvbmUoKTsgLy8gZm9yIHNhZmV0eQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgZGF0ZSBmb3JtYXQgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHNldHRpbmdzLiBJZiB0aGVyZQorICAgICAqIGlzIGFuIGV4cGxpY2l0IChub24tbnVsbCkgZGF0ZS90aW1lIGZvcm1hdCBzZXQsIGEgY29weSBvZiB0aGF0CisgICAgICogaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgdGhlIGxhbmd1YWdlIHByaW9yaXR5IGxpc3QgaXMgdXNlZC4KKyAgICAgKiBERl9OT05FIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3R5bGUsIHdoZXJlIG9ubHkgdGhlIGRhdGUgb3IKKyAgICAgKiB0aW1lIGZvcm1hdCBpbmRpdmlkdWFsbHkgaXMgYmVpbmcgZ290dGVuLgorICAgICAqIAorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgREZfRlVMTCwgREZfTE9ORywgREZfTUVESVVNLCBERl9TSE9SVCBvciBERl9OT05FCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBERl9GVUxMLCBERl9MT05HLCBERl9NRURJVU0sIERGX1NIT1JUIG9yIERGX05PTkUKKyAgICAgKiBAcmV0dXJuIGEgRGF0ZUZvcm1hdCwgYWNjb3JkaW5nIHRvIHRoZSBhYm92ZSBkZXNjcmlwdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIGlmIChkYXRlU3R5bGUgPT0gREZfTk9ORSAmJiB0aW1lU3R5bGUgPT0gREZfTk9ORQorICAgICAgICAgICAgICAgIHx8IGRhdGVTdHlsZSA8IDAgfHwgZGF0ZVN0eWxlID49IERGX0xJTUlUCisgICAgICAgICAgICAgICAgfHwgdGltZVN0eWxlIDwgMCB8fCB0aW1lU3R5bGUgPj0gREZfTElNSVQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF0ZSBmb3JtYXQgc3R5bGUgYXJndW1lbnRzIik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoZGF0ZUZvcm1hdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gZGF0ZUZvcm1hdHNbZGF0ZVN0eWxlXVt0aW1lU3R5bGVdOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gKERhdGVGb3JtYXQpIHJlc3VsdC5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgICAgICAvLyBOb3Qgc3VyZSBvdmVycmlkaW5nIGNvbmZpZ3VyYXRpb24gaXMgd2hhdCB3ZSByZWFsbHkgd2FudC4uLgorICAgICAgICAgICAgcmVzdWx0LnNldFRpbWVab25lKGdldFRpbWVab25lKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gZ3Vlc3NEYXRlRm9ybWF0KGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBudW1iZXIgZm9ybWF0IGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzZXR0aW5ncy4gIElmCisgICAgICogdGhlcmUgaXMgYW4gZXhwbGljaXQgKG5vbi1udWxsKSBudW1iZXIgZm9ybWF0IHNldCwgYSBjb3B5IG9mCisgICAgICogdGhhdCBpcyByZXR1cm5lZC4gIE90aGVyd2lzZSwgdGhlIGxhbmd1YWdlIHByaW9yaXR5IGxpc3QgaXMKKyAgICAgKiB1c2VkLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzdHlsZSBORl9OVU1CRVIsIE5GX0NVUlJFTkNZLCBORl9QRVJDRU5ULCBORl9TQ0lFTlRJRklDLCBORl9JTlRFR0VSCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckZvcm1hdChpbnQgc3R5bGUpIHsKKyAgICAgICAgaWYgKHN0eWxlIDwgMCB8fCBzdHlsZSA+PSBORl9MSU1JVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBudW1iZXIgZm9ybWF0IHR5cGUiKTsKKyAgICAgICAgfQorICAgICAgICBOdW1iZXJGb3JtYXQgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaWYgKG51bWJlckZvcm1hdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gbnVtYmVyRm9ybWF0c1tzdHlsZV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSAoTnVtYmVyRm9ybWF0KSByZXN1bHQuY2xvbmUoKTsgLy8gY2xvbmUgZm9yIHNhZmV0eSAobGF0ZXIgb3B0aW1pemUpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBndWVzc051bWJlckZvcm1hdChzdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgbnVtYmVyIGZvcm1hdCBleHBsaWNpdGx5LiBPdmVycmlkZXMgdGhlIGdlbmVyYWwgbG9jYWxlIHNldHRpbmdzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzdHlsZSBORl9OVU1CRVIsIE5GX0NVUlJFTkNZLCBORl9QRVJDRU5ULCBORl9TQ0lFTlRJRklDLCBORl9JTlRFR0VSCisgICAgICogQHBhcmFtIGZvcm1hdCBUaGUgbnVtYmVyIGZvcm1hdAorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldE51bWJlckZvcm1hdChpbnQgc3R5bGUsIE51bWJlckZvcm1hdCBmb3JtYXQpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChudW1iZXJGb3JtYXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIG51bWJlckZvcm1hdHMgPSBuZXcgTnVtYmVyRm9ybWF0W05GX0xJTUlUXTsKKyAgICAgICAgfQorICAgICAgICBudW1iZXJGb3JtYXRzW3N0eWxlXSA9IChOdW1iZXJGb3JtYXQpIGZvcm1hdC5jbG9uZSgpOyAvLyBmb3Igc2FmZXR5CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc3RvcmUgdGhlIG9iamVjdCB0byB0aGUgaW5pdGlhbCBzdGF0ZS4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyByZXNldCgpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIGxvY2FsZXMgPSBudWxsOworICAgICAgICB0ZXJyaXRvcnkgPSBudWxsOworICAgICAgICBjYWxlbmRhciA9IG51bGw7CisgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgYnJlYWtJdGVyYXRvcnMgPSBudWxsOworICAgICAgICB0aW1lem9uZSA9IG51bGw7CisgICAgICAgIGN1cnJlbmN5ID0gbnVsbDsKKyAgICAgICAgZGF0ZUZvcm1hdHMgPSBudWxsOworICAgICAgICBudW1iZXJGb3JtYXRzID0gbnVsbDsKKyAgICAgICAgaW1wbGljaXRMb2NhbGVzID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBhIGxhbmd1YWdlL2xvY2FsZSBwcmlvcml0eSBsaXN0IHNwZWNpZmllZCB2aWEgPGNvZGU+c2V0TG9jYWxlczwvY29kZT4uCisgICAgICogVGhlIGlucHV0IGxvY2FsZSBsaXN0IG1heSBiZSBleHBhbmRlZCBvciByZS1vcmRlcmVkIHRvIHJlcHJlc2VudCB0aGUgcHJpb3JpdGl6ZWQKKyAgICAgKiBsYW5ndWFnZS9sb2NhbGUgb3JkZXIgYWN0dWFsbHkgdXNlZCBieSB0aGlzIG9iamVjdCBieSB0aGUgYWxnb3JpdGhtIGV4YXBsYWluZWQKKyAgICAgKiBiZWxvdy4KKyAgICAgKiA8YnI+CisgICAgICogPGJyPgorICAgICAqIDxiPlN0ZXAgMTwvYj46IE1vdmUgbGF0ZXIgb2NjdXJlbmNlIG9mIG1vcmUgc3BlY2lmaWMgbG9jYWxlIGJlZm9yZSBlYWxpZXIgb2NjdXJlbmNlIG9mIGxlc3MKKyAgICAgKiBzcGVjaWZpYyBsb2NhbGUuCisgICAgICogPGJyPgorICAgICAqIEJlZm9yZTogZW4sIGZyX0ZSLCBlbl9VUywgZW5fR0IKKyAgICAgKiA8YnI+CisgICAgICogQWZ0ZXI6IGVuX1VTLCBlbl9HQiwgZW4sIGZyX0ZSCisgICAgICogPGJyPgorICAgICAqIDxicj4KKyAgICAgKiA8Yj5TdGVwIDI8L2I+OiBBcHBlbmQgYSBmYWxsYmFjayBsb2NhbGUgdG8gZWFjaCBsb2NhbGUuCisgICAgICogPGJyPgorICAgICAqIEJlZm9yZTogZW5fVVMsIGVuX0dCLCBlbiwgZnJfRlIKKyAgICAgKiA8YnI+CisgICAgICogQWZ0ZXI6IGVuX1VTLCBlbiwgZW5fR0IsIGVuLCBlbiwgZnJfRlIsIGZyCisgICAgICogPGJyPgorICAgICAqIDxicj4KKyAgICAgKiA8Yj5TdGVwIDM8L2I+OiBSZW1vdmUgZWFsaWVyIG9jY3VyZW5jZSBvZiBkdXBsaWNhdGVkIGxvY2FsZSBlbnRyaWVzLgorICAgICAqIDxicj4KKyAgICAgKiBCZWZvcmU6IGVuX1VTLCBlbiwgZW5fR0IsIGVuLCBlbiwgZnJfRlIsIGZyCisgICAgICogPGJyPgorICAgICAqIEFmdGVyOiBlbl9VUywgZW5fR0IsIGVuLCBmcl9GUiwgZnIKKyAgICAgKiA8YnI+IAorICAgICAqIDxicj4KKyAgICAgKiBUaGUgZmluYWwgbG9jYWxlIGxpc3QgaXMgdXNlZCB0byBwcm9kdWNlIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGFwcHJvcHJpYXRlIHRlcnJpdG9yeSwKKyAgICAgKiBjdXJyZW5jeSwgdGltZXpvbmUsIGV0Yy4gIFRoZSBsaXN0IGFsc28gcmVwcmVzZW50cyB0aGUgbG9va3VwIG9yZGVyIHVzZWQgaW4KKyAgICAgKiA8Y29kZT5nZXRSZXNvdXJjZUJ1bmRsZTwvY29kZT4gZm9yIHRoaXMgb2JqZWN0LiAgQSBzdWJjbGFzcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QKKyAgICAgKiB0byBjdXN0b21pemUgdGhlIGFsZ29yaXRobSB1c2VkIGZvciBwb3B1bGF0aW5nIHRoZSBsb2NhbGUgbGlzdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaW5wdXRMb2NhbGVzIFRoZSBsaXN0IG9mIGlucHV0IGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBMaXN0IHByb2Nlc3NMb2NhbGVzKExpc3QgaW5wdXRMb2NhbGVzKSB7CisgICAgICAgIExpc3QgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAvKgorICAgICAgICAgKiBTdGVwIDE6IFJlbG9jYXRlIGxhdGVyIG9jY3VyZW5jZSBvZiBtb3JlIHNwZWNpZmljIGxvY2FsZQorICAgICAgICAgKiBiZWZvcmUgZWFybGllciBvY2N1cmVuY2Ugb2YgbGVzcyBzcGVjaWZpYyBsb2NhbGUuCisgICAgICAgICAqCisgICAgICAgICAqIEV4YW1wbGU6CisgICAgICAgICAqICAgQmVmb3JlIC0gZW5fVVMsIGZyX0ZSLCB6aCwgZW5fVVNfQm9zdG9uLCB6aF9UVywgemhfSGFudCwgZnJfQ0EKKyAgICAgICAgICogICBBZnRlciAgLSBlbl9VU19Cb3N0b24sIGVuX1VTLCBmcl9GUiwgemhfVFcsIHpoX0hhbnQsIHpoLCBmcl9DQQorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dExvY2FsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IChVTG9jYWxlKWlucHV0TG9jYWxlcy5nZXQoaSk7CisKKyAgICAgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IHVsb2MuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBzY3JpcHQgPSB1bG9jLmdldFNjcmlwdCgpOworICAgICAgICAgICAgU3RyaW5nIGNvdW50cnkgPSB1bG9jLmdldENvdW50cnkoKTsKKyAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gdWxvYy5nZXRWYXJpYW50KCk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gYkluc2VydGVkID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHJlc3VsdC5zaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgbG9jYWxlIGlzIG1vcmUgc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAvLyB0aGFuIGV4aXN0aW5nIGxvY2FsZSBlbnRyaWVzIGFscmVhZHkgaW5zZXJ0ZWQKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGUgZGVzdGluYXRpb24gbGlzdAorICAgICAgICAgICAgICAgIFVMb2NhbGUgdSA9IChVTG9jYWxlKXJlc3VsdC5nZXQoaik7CisgICAgICAgICAgICAgICAgaWYgKCF1LmdldExhbmd1YWdlKCkuZXF1YWxzKGxhbmd1YWdlKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSB1LmdldFNjcmlwdCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBjID0gdS5nZXRDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHYgPSB1LmdldFZhcmlhbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKHNjcmlwdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMCAmJiBjLmxlbmd0aCgpID09IDAgJiYgdi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGosIHVsb2MpOworICAgICAgICAgICAgICAgICAgICAgICAgYkluc2VydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHMubGVuZ3RoKCkgPT0gMCAmJiBjLmVxdWFscyhjb3VudHJ5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBzZWUgemhfSGFudF9ISyBiZWZvcmUgemhfSEsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaiwgdWxvYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBiSW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNjcmlwdC5sZW5ndGgoKSA9PSAwICYmIGNvdW50cnkubGVuZ3RoKCkgPiAwICYmIGMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBzZWUgemhfSEsgYmVmb3JlIHpoX0hhbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaiwgdWxvYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBiSW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghYy5lcXVhbHMoY291bnRyeSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMubGVuZ3RoKCkgPT0gMCAmJiB2Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaiwgdWxvYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBiSW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCF2LmVxdWFscyh2YXJpYW50KSAmJiB2Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChqLCB1bG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYkluc2VydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFiSW5zZXJ0ZWQpIHsKKyAgICAgICAgICAgICAgICAvLyBBZGQgdGhpcyBsb2NhbGUgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdAorICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQodWxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUT0RPOiBMb2NhbGUgYWxpYXNlcyBtaWdodCBiZSByZXNvbHZlZCBoZXJlCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB6aF9IYW50X1RXID0gemhfVFcKKworICAgICAgICAvKgorICAgICAgICAgKiBTdGVwIDI6IEFwcGVuZCBmYWxsYmFjayBsb2NhbGVzIGZvciBlYWNoIGVudHJ5CisgICAgICAgICAqCisgICAgICAgICAqIEV4YW1wbGU6CisgICAgICAgICAqICAgQmVmb3JlIC0gZW5fVVNfQm9zdG9uLCBlbl9VUywgZnJfRlIsIHpoX1RXLCB6aF9IYW50LCB6aCwgZnJfQ0EKKyAgICAgICAgICogICBBZnRlciAgLSBlbl9VU19Cb3N0b24sIGVuX1VTLCBlbiwgZW5fVVMsIGVuLCBmcl9GUiwgZnIsCisgICAgICAgICAqICAgICAgICAgICAgemhfVFcsIHpuLCB6aF9IYW50LCB6aCwgemgsIGZyX0NBLCBmcgorICAgICAgICAgKi8KKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgd2hpbGUgKGluZGV4IDwgcmVzdWx0LnNpemUoKSkgeworICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gKFVMb2NhbGUpcmVzdWx0LmdldChpbmRleCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIHVsb2MgPSB1bG9jLmdldEZhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgaWYgKHVsb2MuZ2V0TGFuZ3VhZ2UoKS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmRleCsrOworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaW5kZXgsIHVsb2MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIFN0ZXAgMzogUmVtb3ZlIGVhcmxpZXIgb2NjdXJlbmNlIG9mIGR1cGxpY2F0ZWQgbG9jYWxlcworICAgICAgICAgKiAKKyAgICAgICAgICogRXhhbXBsZToKKyAgICAgICAgICogICBCZWZvcmUgLSBlbl9VU19Cb3N0b24sIGVuX1VTLCBlbiwgZW5fVVMsIGVuLCBmcl9GUiwgZnIsCisgICAgICAgICAqICAgICAgICAgICAgemhfVFcsIHpuLCB6aF9IYW50LCB6aCwgemgsIGZyX0NBLCBmcgorICAgICAgICAgKiAgIEFmdGVyICAtIGVuX1VTX0Jvc3RvbiwgZW5fVVMsIGVuLCBmcl9GUiwgemhfVFcsIHpoX0hhbnQsCisgICAgICAgICAqICAgICAgICAgICAgemgsIGZyX0NBLCBmcgorICAgICAgICAgKi8KKyAgICAgICAgaW5kZXggPSAwOworICAgICAgICB3aGlsZSAoaW5kZXggPCByZXN1bHQuc2l6ZSgpIC0gMSkgeworICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gKFVMb2NhbGUpcmVzdWx0LmdldChpbmRleCk7CisgICAgICAgICAgICBib29sZWFuIGJSZW1vdmVkID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXggKyAxOyBpIDwgcmVzdWx0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHVsb2MuZXF1YWxzKChVTG9jYWxlKXJlc3VsdC5nZXQoaSkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBlYWxpZXIgb25lCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUoaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBiUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYlJlbW92ZWQpIHsKKyAgICAgICAgICAgICAgICBpbmRleCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiA8Yj5JdCBNVVNUIHJldHVybiBhICdzYWZlJyB2YWx1ZSwKKyAgICAgKiBvbmUgd2hvc2UgbW9kaWZpY2F0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGlzIG9iamVjdC48L2I+CisgICAgICogCisgICAgICogQHBhcmFtIGRhdGVTdHlsZQorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0IGd1ZXNzRGF0ZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgcmVzdWx0OworICAgICAgICBVTG9jYWxlIGRmTG9jYWxlID0gZ2V0QXZhaWxhYmxlTG9jYWxlKFRZUEVfREFURUZPUk1BVCk7CisgICAgICAgIGlmIChkZkxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgIAlkZkxvY2FsZSA9IFVMb2NhbGUuUk9PVDsKKyAgICAgICAgfQorICAgICAgICBpZiAodGltZVN0eWxlID09IERGX05PTkUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGdldENhbGVuZGFyKCksIGRhdGVTdHlsZSwgZGZMb2NhbGUpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGVTdHlsZSA9PSBERl9OT05FKSB7CisgICAgICAgICAgICByZXN1bHQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShnZXRDYWxlbmRhcigpLCB0aW1lU3R5bGUsIGRmTG9jYWxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShnZXRDYWxlbmRhcigpLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSwgZGZMb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiA8Yj5JdCBNVVNUIHJldHVybiBhICdzYWZlJyB2YWx1ZSwKKyAgICAgKiBvbmUgd2hvc2UgbW9kaWZpY2F0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGlzIG9iamVjdC48L2I+CisgICAgICogCisgICAgICogQHBhcmFtIHN0eWxlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTnVtYmVyRm9ybWF0IGd1ZXNzTnVtYmVyRm9ybWF0KGludCBzdHlsZSkgeworICAgICAgICBOdW1iZXJGb3JtYXQgcmVzdWx0OworICAgICAgICBVTG9jYWxlIG5mTG9jYWxlID0gZ2V0QXZhaWxhYmxlTG9jYWxlKFRZUEVfTlVNQkVSRk9STUFUKTsKKyAgICAgICAgaWYgKG5mTG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgCW5mTG9jYWxlID0gVUxvY2FsZS5ST09UOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgY2FzZSBORl9OVU1CRVI6CisgICAgICAgICAgICByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobmZMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkZfU0NJRU5USUZJQzoKKyAgICAgICAgICAgIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UobmZMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkZfSU5URUdFUjoKKyAgICAgICAgICAgIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UobmZMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkZfUEVSQ0VOVDoKKyAgICAgICAgICAgIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobmZMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTkZfQ1VSUkVOQ1k6CisgICAgICAgICAgICByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShuZkxvY2FsZSk7CisgICAgICAgICAgICByZXN1bHQuc2V0Q3VycmVuY3koZ2V0Q3VycmVuY3koKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVua25vd24gbnVtYmVyIGZvcm1hdCBzdHlsZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ3Vlc3NUZXJyaXRvcnkoKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgIC8vIHBhc3MgdGhyb3VnaCBsb2NhbGVzIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHRlcnJpdG9yeS4KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGdldExvY2FsZXMoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IChVTG9jYWxlKWl0Lm5leHQoKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGxvY2FsZS5nZXRDb3VudHJ5KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGlmIG5vdCwgZ3Vlc3MgZnJvbSB0aGUgZmlyc3QgbGFuZ3VhZ2UgdGFnLCBvciBtYXliZSBmcm9tCisgICAgICAgIC8vIGludGVyc2VjdGlvbiBvZiBsYW5ndWFnZXMsIGVnIG5sICsgZnIgPT4gQkUKKyAgICAgICAgLy8gVE9ETzogZml4IHVzaW5nIHJlYWwgZGF0YQorICAgICAgICAvLyBmb3Igbm93LCBqdXN0IHVzZSBmaXhlZCB2YWx1ZXMKKyAgICAgICAgVUxvY2FsZSBmaXJzdExvY2FsZSA9IGdldExvY2FsZSgwKTsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gZmlyc3RMb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgU3RyaW5nIHNjcmlwdCA9IGZpcnN0TG9jYWxlLmdldFNjcmlwdCgpOworICAgICAgICByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoc2NyaXB0Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChTdHJpbmcpIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcC5nZXQobGFuZ3VhZ2UgKyAiXyIgKyBzY3JpcHQpOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gKFN0cmluZykgbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tfbWFwLmdldChsYW5ndWFnZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSAiVVMiOyAvLyBuZWVkICpzb21lKiBkZWZhdWx0CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ3VycmVuY3kgZ3Vlc3NDdXJyZW5jeSgpIHsKKyAgICAgICAgcmV0dXJuIEN1cnJlbmN5LmdldEluc3RhbmNlKG5ldyBVTG9jYWxlKCJ1bmQtIiArIGdldFRlcnJpdG9yeSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcworICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBMaXN0IGd1ZXNzTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKGltcGxpY2l0TG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBMaXN0IHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgICAgICByZXN1bHQuYWRkKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGltcGxpY2l0TG9jYWxlcyA9IHByb2Nlc3NMb2NhbGVzKHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGltcGxpY2l0TG9jYWxlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDb2xsYXRvciBndWVzc0NvbGxhdG9yKCkgeworICAgIAlVTG9jYWxlIGNvbGxMb2NhbGUgPSBnZXRBdmFpbGFibGVMb2NhbGUoVFlQRV9DT0xMQVRPUik7CisgICAgCWlmIChjb2xsTG9jYWxlID09IG51bGwpIHsKKyAgICAJCWNvbGxMb2NhbGUgPSBVTG9jYWxlLlJPT1Q7CisgICAgCX0KKyAgICAJcmV0dXJuIENvbGxhdG9yLmdldEluc3RhbmNlKGNvbGxMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIAorICAgICAqIEBwYXJhbSB0eXBlCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQnJlYWtJdGVyYXRvciBndWVzc0JyZWFrSXRlcmF0b3IoaW50IHR5cGUpIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaXRyID0gbnVsbDsKKyAgICAgICAgVUxvY2FsZSBicmtMb2NhbGUgPSBnZXRBdmFpbGFibGVMb2NhbGUoVFlQRV9CUkVBS0lURVJBVE9SKTsKKyAgICAgICAgaWYgKGJya0xvY2FsZSA9PSBudWxsKSB7CisgICAgICAgIAlicmtMb2NhbGUgPSBVTG9jYWxlLlJPT1Q7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQklfQ0hBUkFDVEVSOgorICAgICAgICAgICAgYml0ciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoYnJrTG9jYWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJJX1RJVExFOgorICAgICAgICAgICAgYml0ciA9IEJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZShicmtMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQklfV09SRDoKKyAgICAgICAgICAgIGJpdHIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShicmtMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQklfTElORToKKyAgICAgICAgICAgIGJpdHIgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShicmtMb2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQklfU0VOVEVOQ0U6CisgICAgICAgICAgICBiaXRyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKGJya0xvY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVua25vd24gYnJlYWsgaXRlcmF0b3IgdHlwZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBiaXRyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIFRpbWVab25lIGd1ZXNzVGltZVpvbmUoKSB7CisgICAgICAgIC8vIFRPRE8gZml4IHVzaW5nIHJlYWwgZGF0YQorICAgICAgICAvLyBmb3Igc2luZ2xlLXpvbmUgY291bnRyaWVzLCBwaWNrIHRoYXQgem9uZQorICAgICAgICAvLyBmb3Igb3RoZXJzLCBwaWNrIHRoZSBtb3N0IHBvcHVsb3VzIHpvbmUKKyAgICAgICAgLy8gZm9yIG5vdywganVzdCB1c2UgZml4ZWQgdmFsdWUKKyAgICAgICAgLy8gTk9URTogaW4gYSBmZXcgY2FzZXMgY2FuIGRvIGJldHRlciBieSBsb29raW5nIGF0IGxhbmd1YWdlLiAKKyAgICAgICAgLy8gRWcgaGF3K1VTIHNob3VsZCBnbyB0byBQYWNpZmljL0hvbm9sdWx1CisgICAgICAgIC8vIGZyK0NBIHNob3VsZCBnbyB0byBBbWVyaWNhL01vbnRyZWFsCisgICAgICAgIFN0cmluZyB0aW1lem9uZVN0cmluZyA9IChTdHJpbmcpIHRlcnJpdG9yeV90emlkX2hhY2tfbWFwLmdldChnZXRUZXJyaXRvcnkoKSk7CisgICAgICAgIGlmICh0aW1lem9uZVN0cmluZyA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBhdHRlbXB0ID0gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKGdldFRlcnJpdG9yeSgpKTsKKyAgICAgICAgICAgIGlmIChhdHRlbXB0Lmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGltZXpvbmVTdHJpbmcgPSAiRXRjL0dNVCI7IC8vIGdvdHRhIGRvIHNvbWV0aGluZworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGFsbCBuZWVkcyB0byBiZSBmaXhlZCB0byB1c2UgcmVhbCBkYXRhLiBCdXQgZm9yIG5vdywgZG8gc2xpZ2h0bHkgYmV0dGVyIGJ5IHNraXBwaW5nIGNydWZ0CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGF0dGVtcHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dGVtcHRbaV0uaW5kZXhPZigiLyIpID49IDApIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA+IGF0dGVtcHQubGVuZ3RoKSBpID0gMDsKKyAgICAgICAgICAgICAgICB0aW1lem9uZVN0cmluZyA9IGF0dGVtcHRbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFRpbWVab25lLmdldFRpbWVab25lKHRpbWV6b25lU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhciBndWVzc0NhbGVuZGFyKCkgeworICAgIAlVTG9jYWxlIGNhbExvY2FsZSA9IGdldEF2YWlsYWJsZUxvY2FsZShUWVBFX0NBTEVOREFSKTsKKyAgICAJaWYgKGNhbExvY2FsZSA9PSBudWxsKSB7CisgICAgCQljYWxMb2NhbGUgPSBVTG9jYWxlLlVTOworICAgIAl9CisgICAgCXJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShnZXRUaW1lWm9uZSgpLCBjYWxMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvLyBQUklWQVRFUworICAgIAorICAgIHByaXZhdGUgTGlzdCBsb2NhbGVzOworICAgIHByaXZhdGUgU3RyaW5nIHRlcnJpdG9yeTsKKyAgICBwcml2YXRlIEN1cnJlbmN5IGN1cnJlbmN5OworICAgIHByaXZhdGUgVGltZVpvbmUgdGltZXpvbmU7CisgICAgcHJpdmF0ZSBDYWxlbmRhciBjYWxlbmRhcjsKKyAgICBwcml2YXRlIENvbGxhdG9yIGNvbGxhdG9yOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvcltdIGJyZWFrSXRlcmF0b3JzOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdFtdW10gZGF0ZUZvcm1hdHM7CisgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXRbXSBudW1iZXJGb3JtYXRzOworICAgIHByaXZhdGUgTGlzdCBpbXBsaWNpdExvY2FsZXM7CisgICAgCisgICAgeworICAgICAgICByZXNldCgpOworICAgIH0KKworCisgICAgcHJpdmF0ZSBVTG9jYWxlIGdldEF2YWlsYWJsZUxvY2FsZShpbnQgdHlwZSkgeworICAgIAlMaXN0IGxvY3MgPSBnZXRMb2NhbGVzKCk7CisgICAgCVVMb2NhbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NzLnNpemUoKTsgaSsrKSB7CisgICAgCQlVTG9jYWxlIGwgPSAoVUxvY2FsZSlsb2NzLmdldChpKTsKKyAgICAgICAgICAgIGlmIChpc0F2YWlsYWJsZUxvY2FsZShsLCB0eXBlKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCX0KKyAgICAJcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNBdmFpbGFibGVMb2NhbGUoVUxvY2FsZSBsb2MsIGludCB0eXBlKSB7CisgICAgICAgIEJpdFNldCBiaXRzID0gKEJpdFNldClhdmFpbGFibGVfbG9jYWxlcy5nZXQobG9jKTsKKyAgICAgICAgaWYgKGJpdHMgIT0gbnVsbCAmJiBiaXRzLmdldCh0eXBlKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQXZhaWxhYmxlIGxvY2FsZXMgZm9yIHNlcnZpY2UgdHlwZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNoTWFwIGF2YWlsYWJsZV9sb2NhbGVzID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgVFlQRV9HRU5FUklDID0gMCwKKyAgICAJVFlQRV9DQUxFTkRBUiA9IDEsCisgICAgCVRZUEVfREFURUZPUk1BVD0gMiwKKyAgICAJVFlQRV9OVU1CRVJGT1JNQVQgPSAzLAorICAgIAlUWVBFX0NPTExBVE9SID0gNCwKKyAgICAJVFlQRV9CUkVBS0lURVJBVE9SID0gNSwKKyAgICAJVFlQRV9MSU1JVCA9IFRZUEVfQlJFQUtJVEVSQVRPUiArIDE7CisgICAgCQorICAgIHN0YXRpYyB7CisgICAgICAgIEJpdFNldCBiaXRzOworICAgIAlVTG9jYWxlW10gYWxsTG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGFsbExvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAJCWJpdHMgPSBuZXcgQml0U2V0KFRZUEVfTElNSVQpOworICAgIAkJYXZhaWxhYmxlX2xvY2FsZXMucHV0KGFsbExvY2FsZXNbaV0sIGJpdHMpOworICAgICAgICAgICAgYml0cy5zZXQoVFlQRV9HRU5FUklDKTsKKyAgICAJfQorCisgICAgCVVMb2NhbGVbXSBjYWxMb2NhbGVzID0gQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxMb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgCQliaXRzID0gKEJpdFNldClhdmFpbGFibGVfbG9jYWxlcy5nZXQoY2FsTG9jYWxlc1tpXSk7CisgICAgCQlpZiAoYml0cyA9PSBudWxsKSB7CisgICAgICAgIAkJYml0cyA9IG5ldyBCaXRTZXQoVFlQRV9MSU1JVCk7CisgICAgICAgIAkJYXZhaWxhYmxlX2xvY2FsZXMucHV0KGFsbExvY2FsZXNbaV0sIGJpdHMpOworICAgIAkJfQorICAgIAkJYml0cy5zZXQoVFlQRV9DQUxFTkRBUik7CisgICAgCX0KKworICAgIAlVTG9jYWxlW10gZGF0ZUxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgZGF0ZUxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAJCWJpdHMgPSAoQml0U2V0KWF2YWlsYWJsZV9sb2NhbGVzLmdldChkYXRlTG9jYWxlc1tpXSk7CisgICAgCQlpZiAoYml0cyA9PSBudWxsKSB7CisgICAgICAgIAkJYml0cyA9IG5ldyBCaXRTZXQoVFlQRV9MSU1JVCk7CisgICAgICAgIAkJYXZhaWxhYmxlX2xvY2FsZXMucHV0KGFsbExvY2FsZXNbaV0sIGJpdHMpOworICAgIAkJfQorICAgIAkJYml0cy5zZXQoVFlQRV9EQVRFRk9STUFUKTsKKyAgICAJfQorCisgICAgCVVMb2NhbGVbXSBudW1Mb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtTG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgIAkJYml0cyA9IChCaXRTZXQpYXZhaWxhYmxlX2xvY2FsZXMuZ2V0KG51bUxvY2FsZXNbaV0pOworICAgIAkJaWYgKGJpdHMgPT0gbnVsbCkgeworICAgICAgICAJCWJpdHMgPSBuZXcgQml0U2V0KFRZUEVfTElNSVQpOworICAgICAgICAJCWF2YWlsYWJsZV9sb2NhbGVzLnB1dChhbGxMb2NhbGVzW2ldLCBiaXRzKTsKKyAgICAJCX0KKyAgICAJCWJpdHMuc2V0KFRZUEVfTlVNQkVSRk9STUFUKTsKKyAgICAJfQorCisgICAgCVVMb2NhbGVbXSBjb2xsTG9jYWxlcyA9IENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgY29sbExvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAJCWJpdHMgPSAoQml0U2V0KWF2YWlsYWJsZV9sb2NhbGVzLmdldChjb2xsTG9jYWxlc1tpXSk7CisgICAgCQlpZiAoYml0cyA9PSBudWxsKSB7CisgICAgICAgIAkJYml0cyA9IG5ldyBCaXRTZXQoVFlQRV9MSU1JVCk7CisgICAgICAgIAkJYXZhaWxhYmxlX2xvY2FsZXMucHV0KGFsbExvY2FsZXNbaV0sIGJpdHMpOworICAgIAkJfQorICAgIAkJYml0cy5zZXQoVFlQRV9DT0xMQVRPUik7CisgICAgCX0KKworICAgIAlVTG9jYWxlW10gYnJrTG9jYWxlcyA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBicmtMb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgCQliaXRzID0gKEJpdFNldClhdmFpbGFibGVfbG9jYWxlcy5nZXQoYnJrTG9jYWxlc1tpXSk7CisgICAgCQliaXRzLnNldChUWVBFX0JSRUFLSVRFUkFUT1IpOworICAgIAl9CisgICAgfQorCisgICAgLyoqIFdBUk5JTkc6IEFsbCBvZiB0aGlzIGRhdGEgaXMgdGVtcG9yYXJ5LCB1bnRpbCB3ZSBzdGFydCBpbXBvcnRpbmcgZnJvbSBDTERSISEhCisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWFwIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBsYW5ndWFnZV90ZXJyaXRvcnlfaGFjayA9IHsKKyAgICAgICAgeyJhZiIsICJaQSJ9LAorICAgICAgICB7ImFtIiwgIkVUIn0sCisgICAgICAgIHsiYXIiLCAiU0EifSwKKyAgICAgICAgeyJhcyIsICJJTiJ9LAorICAgICAgICB7ImF5IiwgIlBFIn0sCisgICAgICAgIHsiYXoiLCAiQVoifSwKKyAgICAgICAgeyJiYWwiLCAiUEsifSwKKyAgICAgICAgeyJiZSIsICJCWSJ9LAorICAgICAgICB7ImJnIiwgIkJHIn0sCisgICAgICAgIHsiYm4iLCAiSU4ifSwKKyAgICAgICAgeyJicyIsICJCQSJ9LAorICAgICAgICB7ImNhIiwgIkVTIn0sCisgICAgICAgIHsiY2giLCAiTVAifSwKKyAgICAgICAgeyJjcGUiLCAiU0wifSwKKyAgICAgICAgeyJjcyIsICJDWiJ9LAorICAgICAgICB7ImN5IiwgIkdCIn0sCisgICAgICAgIHsiZGEiLCAiREsifSwKKyAgICAgICAgeyJkZSIsICJERSJ9LAorICAgICAgICB7ImR2IiwgIk1WIn0sCisgICAgICAgIHsiZHoiLCAiQlQifSwKKyAgICAgICAgeyJlbCIsICJHUiJ9LAorICAgICAgICB7ImVuIiwgIlVTIn0sCisgICAgICAgIHsiZXMiLCAiRVMifSwKKyAgICAgICAgeyJldCIsICJFRSJ9LAorICAgICAgICB7ImV1IiwgIkVTIn0sCisgICAgICAgIHsiZmEiLCAiSVIifSwKKyAgICAgICAgeyJmaSIsICJGSSJ9LAorICAgICAgICB7ImZpbCIsICJQSCJ9LAorICAgICAgICB7ImZqIiwgIkZKIn0sCisgICAgICAgIHsiZm8iLCAiRk8ifSwKKyAgICAgICAgeyJmciIsICJGUiJ9LAorICAgICAgICB7ImdhIiwgIklFIn0sCisgICAgICAgIHsiZ2QiLCAiR0IifSwKKyAgICAgICAgeyJnbCIsICJFUyJ9LAorICAgICAgICB7ImduIiwgIlBZIn0sCisgICAgICAgIHsiZ3UiLCAiSU4ifSwKKyAgICAgICAgeyJndiIsICJHQiJ9LAorICAgICAgICB7ImhhIiwgIk5HIn0sCisgICAgICAgIHsiaGUiLCAiSUwifSwKKyAgICAgICAgeyJoaSIsICJJTiJ9LAorICAgICAgICB7ImhvIiwgIlBHIn0sCisgICAgICAgIHsiaHIiLCAiSFIifSwKKyAgICAgICAgeyJodCIsICJIVCJ9LAorICAgICAgICB7Imh1IiwgIkhVIn0sCisgICAgICAgIHsiaHkiLCAiQU0ifSwKKyAgICAgICAgeyJpZCIsICJJRCJ9LAorICAgICAgICB7ImlzIiwgIklTIn0sCisgICAgICAgIHsiaXQiLCAiSVQifSwKKyAgICAgICAgeyJqYSIsICJKUCJ9LAorICAgICAgICB7ImthIiwgIkdFIn0sCisgICAgICAgIHsia2siLCAiS1oifSwKKyAgICAgICAgeyJrbCIsICJHTCJ9LAorICAgICAgICB7ImttIiwgIktIIn0sCisgICAgICAgIHsia24iLCAiSU4ifSwKKyAgICAgICAgeyJrbyIsICJLUiJ9LAorICAgICAgICB7ImtvayIsICJJTiJ9LAorICAgICAgICB7ImtzIiwgIklOIn0sCisgICAgICAgIHsia3UiLCAiVFIifSwKKyAgICAgICAgeyJreSIsICJLRyJ9LAorICAgICAgICB7ImxhIiwgIlZBIn0sCisgICAgICAgIHsibGIiLCAiTFUifSwKKyAgICAgICAgeyJsbiIsICJDRyJ9LAorICAgICAgICB7ImxvIiwgIkxBIn0sCisgICAgICAgIHsibHQiLCAiTFQifSwKKyAgICAgICAgeyJsdiIsICJMViJ9LAorICAgICAgICB7Im1haSIsICJJTiJ9LAorICAgICAgICB7Im1lbiIsICJHTiJ9LAorICAgICAgICB7Im1nIiwgIk1HIn0sCisgICAgICAgIHsibWgiLCAiTUgifSwKKyAgICAgICAgeyJtayIsICJNSyJ9LAorICAgICAgICB7Im1sIiwgIklOIn0sCisgICAgICAgIHsibW4iLCAiTU4ifSwKKyAgICAgICAgeyJtbmkiLCAiSU4ifSwKKyAgICAgICAgeyJtbyIsICJNRCJ9LAorICAgICAgICB7Im1yIiwgIklOIn0sCisgICAgICAgIHsibXMiLCAiTVkifSwKKyAgICAgICAgeyJtdCIsICJNVCJ9LAorICAgICAgICB7Im15IiwgIk1NIn0sCisgICAgICAgIHsibmEiLCAiTlIifSwKKyAgICAgICAgeyJuYiIsICJOTyJ9LAorICAgICAgICB7Im5kIiwgIlpBIn0sCisgICAgICAgIHsibmUiLCAiTlAifSwKKyAgICAgICAgeyJuaXUiLCAiTlUifSwKKyAgICAgICAgeyJubCIsICJOTCJ9LAorICAgICAgICB7Im5uIiwgIk5PIn0sCisgICAgICAgIHsibm8iLCAiTk8ifSwKKyAgICAgICAgeyJuciIsICJaQSJ9LAorICAgICAgICB7Im5zbyIsICJaQSJ9LAorICAgICAgICB7Im55IiwgIk1XIn0sCisgICAgICAgIHsib20iLCAiS0UifSwKKyAgICAgICAgeyJvciIsICJJTiJ9LAorICAgICAgICB7InBhIiwgIklOIn0sCisgICAgICAgIHsicGF1IiwgIlBXIn0sCisgICAgICAgIHsicGwiLCAiUEwifSwKKyAgICAgICAgeyJwcyIsICJQSyJ9LAorICAgICAgICB7InB0IiwgIkJSIn0sCisgICAgICAgIHsicXUiLCAiUEUifSwKKyAgICAgICAgeyJybiIsICJCSSJ9LAorICAgICAgICB7InJvIiwgIlJPIn0sCisgICAgICAgIHsicnUiLCAiUlUifSwKKyAgICAgICAgeyJydyIsICJSVyJ9LAorICAgICAgICB7InNkIiwgIklOIn0sCisgICAgICAgIHsic2ciLCAiQ0YifSwKKyAgICAgICAgeyJzaSIsICJMSyJ9LAorICAgICAgICB7InNrIiwgIlNLIn0sCisgICAgICAgIHsic2wiLCAiU0kifSwKKyAgICAgICAgeyJzbSIsICJXUyJ9LAorICAgICAgICB7InNvIiwgIkRKIn0sCisgICAgICAgIHsic3EiLCAiQ1MifSwKKyAgICAgICAgeyJzciIsICJDUyJ9LAorICAgICAgICB7InNzIiwgIlpBIn0sCisgICAgICAgIHsic3QiLCAiWkEifSwKKyAgICAgICAgeyJzdiIsICJTRSJ9LAorICAgICAgICB7InN3IiwgIktFIn0sCisgICAgICAgIHsidGEiLCAiSU4ifSwKKyAgICAgICAgeyJ0ZSIsICJJTiJ9LAorICAgICAgICB7InRlbSIsICJTTCJ9LAorICAgICAgICB7InRldCIsICJUTCJ9LAorICAgICAgICB7InRoIiwgIlRIIn0sCisgICAgICAgIHsidGkiLCAiRVQifSwKKyAgICAgICAgeyJ0ZyIsICJUSiJ9LAorICAgICAgICB7InRrIiwgIlRNIn0sCisgICAgICAgIHsidGtsIiwgIlRLIn0sCisgICAgICAgIHsidHZsIiwgIlRWIn0sCisgICAgICAgIHsidGwiLCAiUEgifSwKKyAgICAgICAgeyJ0biIsICJaQSJ9LAorICAgICAgICB7InRvIiwgIlRPIn0sCisgICAgICAgIHsidHBpIiwgIlBHIn0sCisgICAgICAgIHsidHIiLCAiVFIifSwKKyAgICAgICAgeyJ0cyIsICJaQSJ9LAorICAgICAgICB7InVrIiwgIlVBIn0sCisgICAgICAgIHsidXIiLCAiSU4ifSwKKyAgICAgICAgeyJ1eiIsICJVWiJ9LAorICAgICAgICB7InZlIiwgIlpBIn0sCisgICAgICAgIHsidmkiLCAiVk4ifSwKKyAgICAgICAgeyJ3byIsICJTTiJ9LAorICAgICAgICB7InhoIiwgIlpBIn0sCisgICAgICAgIHsiemgiLCAiQ04ifSwKKyAgICAgICAgeyJ6aF9IYW50IiwgIlRXIn0sCisgICAgICAgIHsienUiLCAiWkEifSwKKyAgICAgICAgeyJhYSIsICJFVCJ9LAorICAgICAgICB7ImJ5biIsICJFUiJ9LAorICAgICAgICB7ImVvIiwgIkRFIn0sCisgICAgICAgIHsiZ2V6IiwgIkVUIn0sCisgICAgICAgIHsiaGF3IiwgIlVTIn0sCisgICAgICAgIHsiaXUiLCAiQ0EifSwKKyAgICAgICAgeyJrdyIsICJHQiJ9LAorICAgICAgICB7InNhIiwgIklOIn0sCisgICAgICAgIHsic2giLCAiSFIifSwKKyAgICAgICAgeyJzaWQiLCAiRVQifSwKKyAgICAgICAgeyJzeXIiLCAiU1kifSwKKyAgICAgICAgeyJ0aWciLCAiRVIifSwKKyAgICAgICAgeyJ0dCIsICJSVSJ9LAorICAgICAgICB7IndhbCIsICJFVCJ9LCAgfTsKKyAgICBzdGF0aWMgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsYW5ndWFnZV90ZXJyaXRvcnlfaGFja19tYXAucHV0KGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrW2ldWzBdLGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrW2ldWzFdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBNYXAgdGVycml0b3J5X3R6aWRfaGFja19tYXAgPSBuZXcgSGFzaE1hcCgpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHRlcnJpdG9yeV90emlkX2hhY2sgPSB7CisgICAgICAgIHsiQVEiLCAiQW50YXJjdGljYS9NY011cmRvIn0sCisgICAgICAgIHsiQVIiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMifSwKKyAgICAgICAgeyJBVSIsICJBdXN0cmFsaWEvU3lkbmV5In0sCisgICAgICAgIHsiQlIiLCAiQW1lcmljYS9TYW9fUGF1bG8ifSwKKyAgICAgICAgeyJDQSIsICJBbWVyaWNhL1Rvcm9udG8ifSwKKyAgICAgICAgeyJDRCIsICJBZnJpY2EvS2luc2hhc2EifSwKKyAgICAgICAgeyJDTCIsICJBbWVyaWNhL1NhbnRpYWdvIn0sCisgICAgICAgIHsiQ04iLCAiQXNpYS9TaGFuZ2hhaSJ9LAorICAgICAgICB7IkVDIiwgIkFtZXJpY2EvR3VheWFxdWlsIn0sCisgICAgICAgIHsiRVMiLCAiRXVyb3BlL01hZHJpZCJ9LAorICAgICAgICB7IkdCIiwgIkV1cm9wZS9Mb25kb24ifSwKKyAgICAgICAgeyJHTCIsICJBbWVyaWNhL0dvZHRoYWIifSwKKyAgICAgICAgeyJJRCIsICJBc2lhL0pha2FydGEifSwKKyAgICAgICAgeyJNTCIsICJBZnJpY2EvQmFtYWtvIn0sCisgICAgICAgIHsiTVgiLCAiQW1lcmljYS9NZXhpY29fQ2l0eSJ9LAorICAgICAgICB7Ik1ZIiwgIkFzaWEvS3VhbGFfTHVtcHVyIn0sCisgICAgICAgIHsiTloiLCAiUGFjaWZpYy9BdWNrbGFuZCJ9LAorICAgICAgICB7IlBUIiwgIkV1cm9wZS9MaXNib24ifSwKKyAgICAgICAgeyJSVSIsICJFdXJvcGUvTW9zY293In0sCisgICAgICAgIHsiVUEiLCAiRXVyb3BlL0tpZXYifSwKKyAgICAgICAgeyJVUyIsICJBbWVyaWNhL05ld19Zb3JrIn0sCisgICAgICAgIHsiVVoiLCAiQXNpYS9UYXNoa2VudCJ9LAorICAgICAgICB7IlBGIiwgIlBhY2lmaWMvVGFoaXRpIn0sCisgICAgICAgIHsiRk0iLCAiUGFjaWZpYy9Lb3NyYWUifSwKKyAgICAgICAgeyJLSSIsICJQYWNpZmljL1RhcmF3YSJ9LAorICAgICAgICB7IktaIiwgIkFzaWEvQWxtYXR5In0sCisgICAgICAgIHsiTUgiLCAiUGFjaWZpYy9NYWp1cm8ifSwKKyAgICAgICAgeyJNTiIsICJBc2lhL1VsYWFuYmFhdGFyIn0sCisgICAgICAgIHsiU0oiLCAiQXJjdGljL0xvbmd5ZWFyYnllbiJ9LAorICAgICAgICB7IlVNIiwgIlBhY2lmaWMvTWlkd2F5In0sICAgCisgICAgfTsKKyAgICBzdGF0aWMgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlcnJpdG9yeV90emlkX2hhY2subGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRlcnJpdG9yeV90emlkX2hhY2tfbWFwLnB1dCh0ZXJyaXRvcnlfdHppZF9oYWNrW2ldWzBdLHRlcnJpdG9yeV90emlkX2hhY2tbaV1bMV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRnJlZXphYmxlIGltcGxtZW50YXRpb24KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gZnJvemVuOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpIHsKKyAgICAgICAgcmV0dXJuIGZyb3plbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZnJlZXplKCkgeworICAgICAgICBmcm96ZW4gPSB0cnVlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmVBc1RoYXdlZCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyByZXN1bHQgPSAoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKSBjbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmZyb3plbiA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gd2lsbCBhbHdheXMgd29yaworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyOGY5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsOTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mCisgKiB7QGxpbmsgQ2FsZW5kYXJ9CisgKiBhbmQgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGNhbGVuZGFyIHVzZWQgYnkgbW9zdCBvZiB0aGUgd29ybGQuCisgKgorICogPHA+CisgKiBUaGUgc3RhbmRhcmQgKEdyZWdvcmlhbikgY2FsZW5kYXIgaGFzIDIgZXJhcywgQkMgYW5kIEFELgorICoKKyAqIDxwPgorICogVGhpcyBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIGEgc2luZ2xlIGRpc2NvbnRpbnVpdHksIHdoaWNoIGNvcnJlc3BvbmRzIGJ5CisgKiBkZWZhdWx0IHRvIHRoZSBkYXRlIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgd2FzIGluc3RpdHV0ZWQgKE9jdG9iZXIgMTUsIDE1ODIKKyAqIGluIHNvbWUgY291bnRyaWVzLCBsYXRlciBpbiBvdGhlcnMpLiAgVGhlIGN1dG92ZXIgZGF0ZSBtYXkgYmUgY2hhbmdlZCBieSB0aGUKKyAqIGNhbGxlciBieSBjYWxsaW5nIDxjb2RlPnNldEdyZWdvcmlhbkNoYW5nZSgpPC9jb2RlPi4KKyAqCisgKiA8cD4KKyAqIEhpc3RvcmljYWxseSwgaW4gdGhvc2UgY291bnRyaWVzIHdoaWNoIGFkb3B0ZWQgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBmaXJzdCwKKyAqIE9jdG9iZXIgNCwgMTU4MiB3YXMgdGh1cyBmb2xsb3dlZCBieSBPY3RvYmVyIDE1LCAxNTgyLiBUaGlzIGNhbGVuZGFyIG1vZGVscworICogdGhpcyBjb3JyZWN0bHkuICBCZWZvcmUgdGhlIEdyZWdvcmlhbiBjdXRvdmVyLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIGltcGxlbWVudHMgdGhlIEp1bGlhbiBjYWxlbmRhci4gIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgR3JlZ29yaWFuCisgKiBhbmQgdGhlIEp1bGlhbiBjYWxlbmRhciBpcyB0aGUgbGVhcCB5ZWFyIHJ1bGUuIFRoZSBKdWxpYW4gY2FsZW5kYXIgc3BlY2lmaWVzCisgKiBsZWFwIHllYXJzIGV2ZXJ5IGZvdXIgeWVhcnMsIHdoZXJlYXMgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBvbWl0cyBjZW50dXJ5CisgKiB5ZWFycyB3aGljaCBhcmUgbm90IGRpdmlzaWJsZSBieSA0MDAuCisgKgorICogPHA+CisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50cyA8ZW0+cHJvbGVwdGljPC9lbT4gR3JlZ29yaWFuIGFuZAorICogSnVsaWFuIGNhbGVuZGFycy4gVGhhdCBpcywgZGF0ZXMgYXJlIGNvbXB1dGVkIGJ5IGV4dHJhcG9sYXRpbmcgdGhlIGN1cnJlbnQKKyAqIHJ1bGVzIGluZGVmaW5pdGVseSBmYXIgYmFja3dhcmQgYW5kIGZvcndhcmQgaW4gdGltZS4gQXMgYSByZXN1bHQsCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gbWF5IGJlIHVzZWQgZm9yIGFsbCB5ZWFycyB0byBnZW5lcmF0ZQorICogbWVhbmluZ2Z1bCBhbmQgY29uc2lzdGVudCByZXN1bHRzLiBIb3dldmVyLCBkYXRlcyBvYnRhaW5lZCB1c2luZworICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGFyZSBoaXN0b3JpY2FsbHkgYWNjdXJhdGUgb25seSBmcm9tIE1hcmNoIDEsIDQKKyAqIEFEIG9ud2FyZCwgd2hlbiBtb2Rlcm4gSnVsaWFuIGNhbGVuZGFyIHJ1bGVzIHdlcmUgYWRvcHRlZC4gIEJlZm9yZSB0aGlzIGRhdGUsCisgKiBsZWFwIHllYXIgcnVsZXMgd2VyZSBhcHBsaWVkIGlycmVndWxhcmx5LCBhbmQgYmVmb3JlIDQ1IEJDIHRoZSBKdWxpYW4KKyAqIGNhbGVuZGFyIGRpZCBub3QgZXZlbiBleGlzdC4KKyAqCisgKiA8cD4KKyAqIFByaW9yIHRvIHRoZSBpbnN0aXR1dGlvbiBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCBOZXcgWWVhcidzIERheSB3YXMKKyAqIE1hcmNoIDI1LiBUbyBhdm9pZCBjb25mdXNpb24sIHRoaXMgY2FsZW5kYXIgYWx3YXlzIHVzZXMgSmFudWFyeSAxLiBBIG1hbnVhbAorICogYWRqdXN0bWVudCBtYXkgYmUgbWFkZSBpZiBkZXNpcmVkIGZvciBkYXRlcyB0aGF0IGFyZSBwcmlvciB0byB0aGUgR3JlZ29yaWFuCisgKiBjaGFuZ2VvdmVyIGFuZCB3aGljaCBmYWxsIGJldHdlZW4gSmFudWFyeSAxIGFuZCBNYXJjaCAyNC4KKyAqCisgKiA8cD5WYWx1ZXMgY2FsY3VsYXRlZCBmb3IgdGhlIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGQgcmFuZ2UgZnJvbSAxIHRvCisgKiA1My4gIFdlZWsgMSBmb3IgYSB5ZWFyIGlzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIHN0YXJ0aW5nIG9uCisgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0CisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGRheXMgZnJvbSB0aGF0IHllYXIuICBJdCB0aHVzCisgKiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2YgPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiwKKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+LCBhbmQgdGhlIGRheSBvZiB0aGUgd2VlayBvZiBKYW51YXJ5IDEuCisgKiBXZWVrcyBiZXR3ZWVuIHdlZWsgMSBvZiBvbmUgeWVhciBhbmQgd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhciBhcmUKKyAqIG51bWJlcmVkIHNlcXVlbnRpYWxseSBmcm9tIDIgdG8gNTIgb3IgNTMgKGFzIG5lZWRlZCkuCisKKyAqIDxwPkZvciBleGFtcGxlLCBKYW51YXJ5IDEsIDE5OTggd2FzIGEgVGh1cnNkYXkuICBJZgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+TU9OREFZPC9jb2RlPiBhbmQKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgNCAodGhlc2UgYXJlIHRoZSB2YWx1ZXMKKyAqIHJlZmxlY3RpbmcgSVNPIDg2MDEgYW5kIG1hbnkgbmF0aW9uYWwgc3RhbmRhcmRzKSwgdGhlbiB3ZWVrIDEgb2YgMTk5OCBzdGFydHMKKyAqIG9uIERlY2VtYmVyIDI5LCAxOTk3LCBhbmQgZW5kcyBvbiBKYW51YXJ5IDQsIDE5OTguICBJZiwgaG93ZXZlciwKKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGlzIDxjb2RlPlNVTkRBWTwvY29kZT4sIHRoZW4gd2VlayAxIG9mIDE5OTgKKyAqIHN0YXJ0cyBvbiBKYW51YXJ5IDQsIDE5OTgsIGFuZCBlbmRzIG9uIEphbnVhcnkgMTAsIDE5OTg7IHRoZSBmaXJzdCB0aHJlZSBkYXlzCisgKiBvZiAxOTk4IHRoZW4gYXJlIHBhcnQgb2Ygd2VlayA1MyBvZiAxOTk3LgorICoKKyAqIDxwPlZhbHVlcyBjYWxjdWxhdGVkIGZvciB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gZmllbGQgcmFuZ2UgZnJvbSAwIG9yCisgKiAxIHRvIDQgb3IgNS4gIFdlZWsgMSBvZiBhIG1vbnRoICh0aGUgZGF5cyB3aXRoIDxjb2RlPldFRUtfT0ZfTU9OVEggPQorICogMTwvY29kZT4pIGlzIHRoZSBlYXJsaWVzdCBzZXQgb2YgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gY29udGlndW91cyBkYXlzIGluIHRoYXQgbW9udGgsCisgKiBlbmRpbmcgb24gdGhlIGRheSBiZWZvcmUgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4uICBVbmxpa2UKKyAqIHdlZWsgMSBvZiBhIHllYXIsIHdlZWsgMSBvZiBhIG1vbnRoIG1heSBiZSBzaG9ydGVyIHRoYW4gNyBkYXlzLCBuZWVkCisgKiBub3Qgc3RhcnQgb24gPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4sIGFuZCB3aWxsIG5vdCBpbmNsdWRlIGRheXMgb2YKKyAqIHRoZSBwcmV2aW91cyBtb250aC4gIERheXMgb2YgYSBtb250aCBiZWZvcmUgd2VlayAxIGhhdmUgYQorICogPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMC4KKyAqCisgKiA8cD5Gb3IgZXhhbXBsZSwgaWYgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+U1VOREFZPC9jb2RlPgorICogYW5kIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgNCwgdGhlbiB0aGUgZmlyc3Qgd2VlayBvZgorICogSmFudWFyeSAxOTk4IGlzIFN1bmRheSwgSmFudWFyeSA0IHRocm91Z2ggU2F0dXJkYXksIEphbnVhcnkgMTAuICBUaGVzZSBkYXlzCisgKiBoYXZlIGEgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMS4gIFRodXJzZGF5LCBKYW51YXJ5IDEgdGhyb3VnaAorICogU2F0dXJkYXksIEphbnVhcnkgMyBoYXZlIGEgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMC4gIElmCisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGlzIGNoYW5nZWQgdG8gMywgdGhlbiBKYW51YXJ5IDEKKyAqIHRocm91Z2ggSmFudWFyeSAzIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAxLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlOjwvc3Ryb25nPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gZ2V0IHRoZSBzdXBwb3J0ZWQgaWRzIGZvciBHTVQtMDg6MDAgKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkKKyAqIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygtOCAqIDYwICogNjAgKiAxMDAwKTsKKyAqIC8vIGlmIG5vIGlkcyB3ZXJlIHJldHVybmVkLCBzb21ldGhpbmcgaXMgd3JvbmcuIGdldCBvdXQuCisgKiBpZiAoaWRzLmxlbmd0aCA9PSAwKQorICogICAgIFN5c3RlbS5leGl0KDApOworICoKKyAqICAvLyBiZWdpbiBvdXRwdXQKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQ3VycmVudCBUaW1lIik7CisgKgorICogLy8gY3JlYXRlIGEgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIHRpbWUgem9uZQorICogU2ltcGxlVGltZVpvbmUgcGR0ID0gbmV3IFNpbXBsZVRpbWVab25lKC04ICogNjAgKiA2MCAqIDEwMDAsIGlkc1swXSk7CisgKgorICogLy8gc2V0IHVwIHJ1bGVzIGZvciBkYXlsaWdodCBzYXZpbmdzIHRpbWUKKyAqIHBkdC5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuQVBSSUwsIDEsIENhbGVuZGFyLlNVTkRBWSwgMiAqIDYwICogNjAgKiAxMDAwKTsKKyAqIHBkdC5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIC0xLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgKgorICogLy8gY3JlYXRlIGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCB0aGUgUGFjaWZpYyBEYXlsaWdodCB0aW1lIHpvbmUKKyAqIC8vIGFuZCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lCisgKiBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihwZHQpOworICogRGF0ZSB0cmlhbFRpbWUgPSBuZXcgRGF0ZSgpOworICogY2FsZW5kYXIuc2V0VGltZSh0cmlhbFRpbWUpOworICoKKyAqIC8vIHByaW50IG91dCBhIGJ1bmNoIG9mIGludGVyZXN0aW5nIHRoaW5ncworICogU3lzdGVtLm91dC5wcmludGxuKCJFUkE6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIllFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJXRUVLX09GX1lFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiREFZX09GX01PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFSzogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIgorICogICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkFNX1BNOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkFNX1BNKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJIT1VSX09GX0RBWTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiTUlMTElTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWk9ORV9PRkZTRVQ6ICIKKyAqICAgICAgICAgICAgICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEU1RfT0ZGU0VUOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOworCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkN1cnJlbnQgVGltZSwgd2l0aCBob3VyIHJlc2V0IHRvIDMiKTsKKyAqIGNhbGVuZGFyLmNsZWFyKENhbGVuZGFyLkhPVVJfT0ZfREFZKTsgLy8gc28gZG9lc24ndCBvdmVycmlkZQorICogY2FsZW5kYXIuc2V0KENhbGVuZGFyLkhPVVIsIDMpOworICogU3lzdGVtLm91dC5wcmludGxuKCJFUkE6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIllFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJXRUVLX09GX1lFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiREFZX09GX01PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFSzogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIgorICogICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkFNX1BNOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkFNX1BNKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJIT1VSX09GX0RBWTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiTUlMTElTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWk9ORV9PRkZTRVQ6ICIKKyAqICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyAvLyBpbiBob3VycworICogU3lzdGVtLm91dC5wcmludGxuKCJEU1RfT0ZGU0VUOiAiCisgKiAgICAgICAgKyAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyAvLyBpbiBob3VyczwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHA+CisgKiBHcmVnb3JpYW5DYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1ncmVnb3JpYW4iPC9jb2RlPi48L3A+CisKKyAqIEBzZWUgICAgICAgICAgQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgVGltZVpvbmUKKyAqIEBhdXRob3IgRGF2aWQgR29sZHNtaXRoLCBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIEdyZWdvcmlhbkNhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDkxOTkzODg2OTQzNTEwNjIxMzdMOworCisgICAgLyoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBOb3RlcworICAgICAqCisgICAgICogVGhlIEp1bGlhbiBkYXkgbnVtYmVyLCBhcyB1c2VkIGhlcmUsIGlzIGEgbW9kaWZpZWQgbnVtYmVyIHdoaWNoIGhhcyBpdHMKKyAgICAgKiBvbnNldCBhdCBtaWRuaWdodCwgcmF0aGVyIHRoYW4gbm9vbi4KKyAgICAgKgorICAgICAqIFRoZSBlcG9jaCBpcyB0aGUgbnVtYmVyIG9mIGRheXMgb3IgbWlsbGlzZWNvbmRzIGZyb20gc29tZSBkZWZpbmVkCisgICAgICogc3RhcnRpbmcgcG9pbnQuIFRoZSBlcG9jaCBmb3IgamF2YS51dGlsLkRhdGUgaXMgdXNlZCBoZXJlOyB0aGF0IGlzLAorICAgICAqIG1pbGxpc2Vjb25kcyBmcm9tIEphbnVhcnkgMSwgMTk3MCAoR3JlZ29yaWFuKSwgbWlkbmlnaHQgVVRDLiAgT3RoZXIKKyAgICAgKiBlcG9jaHMgd2hpY2ggYXJlIHVzZWQgYXJlIEphbnVhcnkgMSwgeWVhciAxIChHcmVnb3JpYW4pLCB3aGljaCBpcyBkYXkgMQorICAgICAqIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIGFuZCBEZWNlbWJlciAzMCwgeWVhciAwIChHcmVnb3JpYW4pLCB3aGljaCBpcworICAgICAqIGRheSAxIG9mIHRoZSBKdWxpYW4gY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBXZSBpbXBsZW1lbnQgdGhlIHByb2xlcHRpYyBKdWxpYW4gYW5kIEdyZWdvcmlhbiBjYWxlbmRhcnMuICBUaGlzIG1lYW5zIHdlCisgICAgICogaW1wbGVtZW50IHRoZSBtb2Rlcm4gZGVmaW5pdGlvbiBvZiB0aGUgY2FsZW5kYXIgZXZlbiB0aG91Z2ggdGhlCisgICAgICogaGlzdG9yaWNhbCB1c2FnZSBkaWZmZXJzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBHcmVnb3JpYW4gY2hhbmdlIGlzIHNldAorICAgICAqIHRvIG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSwgd2UgaGF2ZSBhIHB1cmUgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoCisgICAgICogbGFiZWxzIGRhdGVzIHByZWNlZGluZyB0aGUgaW52ZW50aW9uIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gMTU4MiBhcworICAgICAqIGlmIHRoZSBjYWxlbmRhciBleGlzdGVkIHRoZW4uCisgICAgICoKKyAgICAgKiBMaWtld2lzZSwgd2l0aCB0aGUgSnVsaWFuIGNhbGVuZGFyLCB3ZSBhc3N1bWUgYSBjb25zaXN0ZW50IDQteWVhciBsZWFwCisgICAgICogcnVsZSwgZXZlbiB0aG91Z2ggdGhlIGhpc3RvcmljYWwgcGF0dGVybiBvZiBsZWFwIHllYXJzIGlzIGlycmVndWxhciwKKyAgICAgKiBiZWluZyBldmVyeSAzIHllYXJzIGZyb20gNDUgQkMgdGhyb3VnaCA5IEJDLCB0aGVuIGV2ZXJ5IDQgeWVhcnMgZnJvbSA4IEFECisgICAgICogb253YXJkcywgd2l0aCBubyBsZWFwIHllYXJzIGluLWJldHdlZW4uICBUaHVzIGRhdGUgY29tcHV0YXRpb25zIGFuZAorICAgICAqIGZ1bmN0aW9ucyBzdWNoIGFzIGlzTGVhcFllYXIoKSBhcmUgbm90IGludGVuZGVkIHRvIGJlIGhpc3RvcmljYWxseQorICAgICAqIGFjY3VyYXRlLgorICAgICAqCisgICAgICogR2l2ZW4gdGhhdCBtaWxsaXNlY29uZHMgYXJlIGEgbG9uZywgZGF5IG51bWJlcnMgc3VjaCBhcyBKdWxpYW4gZGF5CisgICAgICogbnVtYmVycywgR3JlZ29yaWFuIG9yIEp1bGlhbiBjYWxlbmRhciBkYXlzLCBvciBlcG9jaCBkYXlzLCBhcmUgYWxzbworICAgICAqIGxvbmdzLiBZZWFycyBjYW4gZml0IGludG8gYW4gaW50LgorICAgICAqLworCisvLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENsYXNzIFZhcmlhYmxlcworLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogdGhlIHBlcmlvZCBiZWZvcmUgdGhlIGNvbW1vbiBlcmEgKGJlZm9yZSBDaHJpc3QpLCBhbHNvIGtub3duIGFzIEJDRS4KKyAgICAgKiBUaGUgc2VxdWVuY2Ugb2YgeWVhcnMgYXQgdGhlIHRyYW5zaXRpb24gZnJvbSA8Y29kZT5CQzwvY29kZT4gdG8gPGNvZGU+QUQ8L2NvZGU+IGlzCisgICAgICogLi4uLCAyIEJDLCAxIEJDLCAxIEFELCAyIEFELC4uLgorICAgICAqIEBzZWUgQ2FsZW5kYXIjRVJBCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkMgPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIHRoZSBjb21tb24gZXJhIChBbm5vIERvbWluaSksIGFsc28ga25vd24gYXMgQ0UuCisgICAgICogVGhlIHNlcXVlbmNlIG9mIHllYXJzIGF0IHRoZSB0cmFuc2l0aW9uIGZyb20gPGNvZGU+QkM8L2NvZGU+IHRvIDxjb2RlPkFEPC9jb2RlPiBpcworICAgICAqIC4uLiwgMiBCQywgMSBCQywgMSBBRCwgMiBBRCwuLi4KKyAgICAgKiBAc2VlIENhbGVuZGFyI0VSQQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFUE9DSF9ZRUFSID0gMTk3MDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdW10gTU9OVEhfQ09VTlQgPSB7CisgICAgICAgIC8vbGVuIGxlbjIgICBzdCAgc3QyCisgICAgICAgIHsgIDMxLCAgMzEsICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAyOCwgIDI5LCAgMzEsICAzMSB9LCAvLyBGZWIKKyAgICAgICAgeyAgMzEsICAzMSwgIDU5LCAgNjAgfSwgLy8gTWFyCisgICAgICAgIHsgIDMwLCAgMzAsICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7ICAzMSwgIDMxLCAxMjAsIDEyMSB9LCAvLyBNYXkKKyAgICAgICAgeyAgMzAsICAzMCwgMTUxLCAxNTIgfSwgLy8gSnVuCisgICAgICAgIHsgIDMxLCAgMzEsIDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7ICAzMSwgIDMxLCAyMTIsIDIxMyB9LCAvLyBBdWcKKyAgICAgICAgeyAgMzAsICAzMCwgMjQzLCAyNDQgfSwgLy8gU2VwCisgICAgICAgIHsgIDMxLCAgMzEsIDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7ICAzMCwgIDMwLCAzMDQsIDMwNSB9LCAvLyBOb3YKKyAgICAgICAgeyAgMzEsICAzMSwgMzM0LCAzMzUgfSAgLy8gRGVjCisgICAgICAgIC8vIGxlbiAgbGVuZ3RoIG9mIG1vbnRoCisgICAgICAgIC8vIGxlbjIgbGVuZ3RoIG9mIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICAgIC8vIHN0ICAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBzdGFydCBvZiBtb250aAorICAgICAgICAvLyBzdDIgIGRheXMgaW4geWVhciBiZWZvcmUgbW9udGggaW4gbGVhcCB5ZWFyCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPbGQgeWVhciBsaW1pdHMgd2VyZSBsZWFzdCBtYXggMjkyMjY5MDU0LCBtYXggMjkyMjc4OTk0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMSwgICAgICAgMSB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDU4Mjg5NjMsIDU4MzgyNzAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MiwgICAgICA1MyB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDQsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOCwgICAgICAzMSB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNjUsICAgICAzNjYgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDYgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTgzODI3MCwgLTU4MzgyNzAsIDU4Mjg5NjQsIDU4MzgyNzEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTU4MzgyNjksIC01ODM4MjY5LCA1ODI4OTYzLCA1ODM4MjcwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEluc3RhbmNlIFZhcmlhYmxlcworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBUaGUgcG9pbnQgYXQgd2hpY2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBydWxlcyBhcmUgdXNlZCwgbWVhc3VyZWQgaW4KKyAgICAgKiBtaWxsaXNlY29uZHMgZnJvbSB0aGUgc3RhbmRhcmQgZXBvY2guICBEZWZhdWx0IGlzIE9jdG9iZXIgMTUsIDE1ODIKKyAgICAgKiAoR3JlZ29yaWFuKSAwMDowMDowMCBVVEMgb3IgLTEyMjE5MjkyODAwMDAwTC4gIEZvciB0aGlzIHZhbHVlLCBPY3RvYmVyIDQsCisgICAgICogMTU4MiAoSnVsaWFuKSBpcyBmb2xsb3dlZCBieSBPY3RvYmVyIDE1LCAxNTgyIChHcmVnb3JpYW4pLiAgVGhpcworICAgICAqIGNvcnJlc3BvbmRzIHRvIEp1bGlhbiBkYXkgbnVtYmVyIDIyOTkxNjEuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgbG9uZyBncmVnb3JpYW5DdXRvdmVyID0gLTEyMjE5MjkyODAwMDAwTDsKKworICAgIC8qKgorICAgICAqIEp1bGlhbiBkYXkgbnVtYmVyIG9mIHRoZSBHcmVnb3JpYW4gY3V0b3Zlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgY3V0b3Zlckp1bGlhbkRheSA9IDIyOTkxNjE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIHllYXIgb2YgdGhlIGdyZWdvcmlhbkN1dG92ZXIsIHdpdGggMCByZXByZXNlbnRpbmcKKyAgICAgKiAxIEJDLCAtMSByZXByZXNlbnRpbmcgMiBCQywgZXRjLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5DdXRvdmVyWWVhciA9IDE1ODI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoKSBhbmQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB0cmFuc2llbnQgcHJvdGVjdGVkIGJvb2xlYW4gaXNHcmVnb3JpYW47CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoKSBhbmQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB0cmFuc2llbnQgcHJvdGVjdGVkIGJvb2xlYW4gaW52ZXJ0R3JlZ29yaWFuOworCisvLy8vLy8vLy8vLy8vLy8KKy8vIENvbnN0cnVjdG9ycworLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCBHcmVnb3JpYW5DYWxlbmRhciB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcigpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgR3JlZ29yaWFuQ2FsZW5kYXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgR3JlZ29yaWFuQ2FsZW5kYXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgR3JlZ29yaWFuQ2FsZW5kYXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBzZXQoRVJBLCBBRCk7CisgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHNldChEQVRFLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gaG91ciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIEhPVVJfT0ZfREFZIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1JTlVURSB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNldChFUkEsIEFEKTsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgICAgICBzZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICBzZXQoTUlOVVRFLCBtaW51dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNldChFUkEsIEFEKTsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgICAgICBzZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICBzZXQoTUlOVVRFLCBtaW51dGUpOworICAgICAgICBzZXQoU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFB1YmxpYyBtZXRob2RzCisvLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgR3JlZ29yaWFuQ2FsZW5kYXIgY2hhbmdlIGRhdGUuIFRoaXMgaXMgdGhlIHBvaW50IHdoZW4gdGhlIHN3aXRjaAorICAgICAqIGZyb20gSnVsaWFuIGRhdGVzIHRvIEdyZWdvcmlhbiBkYXRlcyBvY2N1cnJlZC4gRGVmYXVsdCBpcyBPY3RvYmVyIDE1LAorICAgICAqIDE1ODIuIFByZXZpb3VzIHRvIHRoaXMsIGRhdGVzIHdpbGwgYmUgaW4gdGhlIEp1bGlhbiBjYWxlbmRhci4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gYSBwdXJlIEp1bGlhbiBjYWxlbmRhciwgc2V0IHRoZSBjaGFuZ2UgZGF0ZSB0bworICAgICAqIDxjb2RlPkRhdGUoTG9uZy5NQVhfVkFMVUUpPC9jb2RlPi4gIFRvIG9idGFpbiBhIHB1cmUgR3JlZ29yaWFuIGNhbGVuZGFyLAorICAgICAqIHNldCB0aGUgY2hhbmdlIGRhdGUgdG8gPGNvZGU+RGF0ZShMb25nLk1JTl9WQUxVRSk8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGdpdmVuIEdyZWdvcmlhbiBjdXRvdmVyIGRhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JlZ29yaWFuQ2hhbmdlKERhdGUgZGF0ZSkgeworICAgICAgICBncmVnb3JpYW5DdXRvdmVyID0gZGF0ZS5nZXRUaW1lKCk7CisKKyAgICAgICAgLy8gSWYgdGhlIGN1dG92ZXIgaGFzIGFuIGV4dHJlbWUgdmFsdWUsIHRoZW4gY3JlYXRlIGEgcHVyZQorICAgICAgICAvLyBHcmVnb3JpYW4gb3IgcHVyZSBKdWxpYW4gY2FsZW5kYXIgYnkgZ2l2aW5nIHRoZSBjdXRvdmVyIHllYXIgYW5kCisgICAgICAgIC8vIEpEIGV4dHJlbWUgdmFsdWVzLgorICAgICAgICBpZiAoZ3JlZ29yaWFuQ3V0b3ZlciA8PSBNSU5fTUlMTElTKSB7CisgICAgICAgICAgICBncmVnb3JpYW5DdXRvdmVyWWVhciA9IGN1dG92ZXJKdWxpYW5EYXkgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgfSBlbHNlIGlmIChncmVnb3JpYW5DdXRvdmVyID49IE1BWF9NSUxMSVMpIHsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY3V0b3Zlckp1bGlhbkRheSA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gUHJlY29tcHV0ZSB0d28gaW50ZXJuYWwgdmFyaWFibGVzIHdoaWNoIHdlIHVzZSB0byBkbyB0aGUgYWN0dWFsCisgICAgICAgICAgICAvLyBjdXRvdmVyIGNvbXB1dGF0aW9ucy4gIFRoZXNlIGFyZSB0aGUgSnVsaWFuIGRheSBvZiB0aGUgY3V0b3ZlcgorICAgICAgICAgICAgLy8gYW5kIHRoZSBjdXRvdmVyIHllYXIuCisgICAgICAgICAgICBjdXRvdmVySnVsaWFuRGF5ID0gKGludCkgZmxvb3JEaXZpZGUoZ3JlZ29yaWFuQ3V0b3ZlciwgT05FX0RBWSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvbnZlcnQgY3V0b3ZlciBtaWxsaXMgdG8gZXh0ZW5kZWQgeWVhcgorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGdldFRpbWVab25lKCkpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICBncmVnb3JpYW5DdXRvdmVyWWVhciA9IGNhbC5nZXQoRVhURU5ERURfWUVBUik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBHcmVnb3JpYW4gQ2FsZW5kYXIgY2hhbmdlIGRhdGUuICBUaGlzIGlzIHRoZSBwb2ludCB3aGVuIHRoZQorICAgICAqIHN3aXRjaCBmcm9tIEp1bGlhbiBkYXRlcyB0byBHcmVnb3JpYW4gZGF0ZXMgb2NjdXJyZWQuIERlZmF1bHQgaXMKKyAgICAgKiBPY3RvYmVyIDE1LCAxNTgyLiBQcmV2aW91cyB0byB0aGlzLCBkYXRlcyB3aWxsIGJlIGluIHRoZSBKdWxpYW4KKyAgICAgKiBjYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRoZSBHcmVnb3JpYW4gY3V0b3ZlciBkYXRlIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBEYXRlIGdldEdyZWdvcmlhbkNoYW5nZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGdyZWdvcmlhbkN1dG92ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuIFJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSBnaXZlbiB5ZWFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhcjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVhcFllYXIoaW50IHllYXIpIHsKKyAgICAgICAgcmV0dXJuIHllYXIgPj0gZ3JlZ29yaWFuQ3V0b3ZlclllYXIgPworICAgICAgICAgICAgKCh5ZWFyJTQgPT0gMCkgJiYgKCh5ZWFyJTEwMCAhPSAwKSB8fCAoeWVhciU0MDAgPT0gMCkpKSA6IC8vIEdyZWdvcmlhbgorICAgICAgICAgICAgKHllYXIlNCA9PSAwKTsgLy8gSnVsaWFuCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBDYWxlbmRhciBvYmplY3QgaXMgZXF1aXZhbGVudCB0byB0aGlzCisgICAgICogb25lLiAgQ2FsZW5kYXIgb3ZlcnJpZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhciAgIAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRXF1aXZhbGVudFRvKENhbGVuZGFyIG90aGVyKSB7CisgICAgICAgIHJldHVybiBzdXBlci5pc0VxdWl2YWxlbnRUbyhvdGhlcikgJiYKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXIgPT0gKChHcmVnb3JpYW5DYWxlbmRhcilvdGhlcikuZ3JlZ29yaWFuQ3V0b3ZlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIEdyZWdvcmlhbkNhbGVuZGFyIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBzdXBlci5oYXNoQ29kZSgpIF4gKGludClncmVnb3JpYW5DdXRvdmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGwgYSBmaWVsZCBieSBhIHNpZ25lZCBhbW91bnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgV0VFS19PRl9ZRUFSOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFVubGlrZSBXRUVLX09GX01PTlRILCBXRUVLX09GX1lFQVIgbmV2ZXIgc2hpZnRzIHRoZSBkYXkgb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gd2Vlay4gIEFsc28sIHJvbGxpbmcgdGhlIHdlZWsgb2YgdGhlIHllYXIgY2FuIGhhdmUgc2VlbWluZ2x5CisgICAgICAgICAgICAgICAgLy8gc3RyYW5nZSBlZmZlY3RzIHNpbXBseSBiZWNhdXNlIHRoZSB5ZWFyIG9mIHRoZSB3ZWVrIG9mIHllYXIKKyAgICAgICAgICAgICAgICAvLyBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIGNhbGVuZGFyIHllYXIuICBGb3IgZXhhbXBsZSwgdGhlCisgICAgICAgICAgICAgICAgLy8gZGF0ZSBEZWMgMjgsIDE5OTcgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDEgb2YgMTk5OCAoaWYKKyAgICAgICAgICAgICAgICAvLyB3ZWVrcyBzdGFydCBvbiBTdW5kYXkgYW5kIHRoZSBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayBpcworICAgICAgICAgICAgICAgIC8vIDw9IDMpLgorICAgICAgICAgICAgICAgIGludCB3b3kgPSBnZXQoV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIElTTyB5ZWFyLCB3aGljaCBtYXRjaGVzIHRoZSB3ZWVrIG9mIHllYXIuICBUaGlzCisgICAgICAgICAgICAgICAgLy8gbWF5IGJlIG9uZSB5ZWFyIGJlZm9yZSBvciBhZnRlciB0aGUgY2FsZW5kYXIgeWVhci4KKyAgICAgICAgICAgICAgICBpbnQgaXNvWWVhciA9IGdldChZRUFSX1dPWSk7CisgICAgICAgICAgICAgICAgaW50IGlzb0RveSA9IGludGVybmFsR2V0KERBWV9PRl9ZRUFSKTsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxHZXQoTU9OVEgpID09IENhbGVuZGFyLkpBTlVBUlkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdveSA+PSA1MikgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNvRG95ICs9IGhhbmRsZUdldFllYXJMZW5ndGgoaXNvWWVhcik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAod295ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzb0RveSAtPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKGlzb1llYXIgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3b3kgKz0gYW1vdW50OworICAgICAgICAgICAgICAgIC8vIERvIGZhc3QgY2hlY2tzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNvbXB1dGF0aW9uOgorICAgICAgICAgICAgICAgIGlmICh3b3kgPCAxIHx8IHdveSA+IDUyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERldGVybWluZSB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBJU08geWVhci4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gdGhpcyB1c2luZyB0aGUgc3RhbmRhcmQgZm9ybXVsYSB3ZSB1c2UKKyAgICAgICAgICAgICAgICAgICAgLy8gZXZlcnl3aGVyZSBpbiB0aGlzIGZpbGUuICBJZiB3ZSBjYW4gc2VlIHRoYXQgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGRheXMgYXQgdGhlIGVuZCBvZiB0aGUgeWVhciBhcmUgZ29pbmcgdG8gZmFsbCBpbnRvCisgICAgICAgICAgICAgICAgICAgIC8vIHdlZWsgMSBvZiB0aGUgbmV4dCB5ZWFyLCB3ZSBkcm9wIHRoZSBsYXN0IHdlZWsgYnkKKyAgICAgICAgICAgICAgICAgICAgLy8gc3VidHJhY3RpbmcgNyBmcm9tIHRoZSBsYXN0IGRheSBvZiB0aGUgeWVhci4KKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3REb3kgPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKGlzb1llYXIpOworICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdFJlbERvdyA9IChsYXN0RG95IC0gaXNvRG95ICsgaW50ZXJuYWxHZXQoREFZX09GX1dFRUspIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Rmlyc3REYXlPZldlZWsoKSkgJSA3OworICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFJlbERvdyA8IDApIGxhc3RSZWxEb3cgKz0gNzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCg2IC0gbGFzdFJlbERvdykgPj0gZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSBsYXN0RG95IC09IDc7CisgICAgICAgICAgICAgICAgICAgIGludCBsYXN0V295ID0gd2Vla051bWJlcihsYXN0RG95LCBsYXN0UmVsRG93ICsgMSk7CisgICAgICAgICAgICAgICAgICAgIHdveSA9ICgod295ICsgbGFzdFdveSAtIDEpICUgbGFzdFdveSkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoV0VFS19PRl9ZRUFSLCB3b3kpOworICAgICAgICAgICAgICAgIHNldChZRUFSLCBpc29ZZWFyKTsgLy8gV2h5IG5vdCBZRUFSX1dPWT8gLSBBbGFuIDExLzYvMDAKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLnJvbGwoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1pbmltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZSBjdXJyZW50IGRhdGUuCisgICAgICogRm9yIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoaXMgaXMgdGhlIHNhbWUgYXMgZ2V0TWluaW11bSgpIGFuZCBnZXRHcmVhdGVzdE1pbmltdW0oKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRNaW5pbXVtKGZpZWxkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZSBjdXJyZW50IGRhdGUuCisgICAgICogRm9yIGV4YW1wbGUsIHdpdGggdGhlIGRhdGUgIkZlYiAzLCAxOTk3IiBhbmQgdGhlIERBWV9PRl9NT05USCBmaWVsZCwgdGhlIGFjdHVhbAorICAgICAqIG1heGltdW0gd291bGQgYmUgMjg7IGZvciAiRmViIDMsIDE5OTYiIGl0IHMgMjkuICBTaW1pbGFybHkgZm9yIGEgSGVicmV3IGNhbGVuZGFyLAorICAgICAqIGZvciBzb21lIHllYXJzIHRoZSBhY3R1YWwgbWF4aW11bSBmb3IgTU9OVEggaXMgMTIsIGFuZCBmb3Igb3RoZXJzIDEzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgLyogSXQgaXMgYSBrbm93biBsaW1pdGF0aW9uIHRoYXQgdGhlIGNvZGUgaGVyZSAoYW5kIGluIGdldEFjdHVhbE1pbmltdW0pCisgICAgICAgICAqIHdvbid0IGJlaGF2ZSBwcm9wZXJseSBhdCB0aGUgZXh0cmVtZSBsaW1pdHMgb2YgR3JlZ29yaWFuQ2FsZW5kYXIncworICAgICAgICAgKiByZXByZXNlbnRhYmxlIHJhbmdlIChleGNlcHQgZm9yIHRoZSBjb2RlIHRoYXQgaGFuZGxlcyB0aGUgWUVBUgorICAgICAgICAgKiBmaWVsZCkuICBUaGF0J3MgYmVjYXVzZSB0aGUgZW5kcyBvZiB0aGUgcmVwcmVzZW50YWJsZSByYW5nZSBhcmUgYXQKKyAgICAgICAgICogb2RkIHNwb3RzIGluIHRoZSB5ZWFyLiAgRm9yIGNhbGVuZGFycyB3aXRoIHRoZSBkZWZhdWx0IEdyZWdvcmlhbgorICAgICAgICAgKiBjdXRvdmVyLCB0aGVzZSBsaW1pdHMgYXJlIFN1biBEZWMgMDIgMTY6NDc6MDQgR01UIDI5MjI2OTA1NSBCQyB0byBTdW4KKyAgICAgICAgICogQXVnIDE3IDA3OjEyOjU1IEdNVCAyOTIyNzg5OTQgQUQsIHNvbWV3aGF0IGRpZmZlcmVudCBmb3Igbm9uLUdNVAorICAgICAgICAgKiB6b25lcy4gIEFzIGEgcmVzdWx0LCBpZiB0aGUgY2FsZW5kYXIgaXMgc2V0IHRvIEF1ZyAxIDI5MjI3ODk5NCBBRCwKKyAgICAgICAgICogdGhlIGFjdHVhbCBtYXhpbXVtIG9mIERBWV9PRl9NT05USCBpcyAxNywgbm90IDMwLiAgSWYgdGhlIGRhdGUgaXMgTWFyCisgICAgICAgICAqIDMxIGluIHRoYXQgeWVhciwgdGhlIGFjdHVhbCBtYXhpbXVtIG1vbnRoIG1pZ2h0IGJlIEp1bCwgd2hlcmVhcyBpcworICAgICAgICAgKiB0aGUgZGF0ZSBpcyBNYXIgMTUsIHRoZSBhY3R1YWwgbWF4aW11bSBtaWdodCBiZSBBdWcgLS0gZGVwZW5kaW5nIG9uCisgICAgICAgICAqIHRoZSBwcmVjaXNlIHNlbWFudGljcyB0aGF0IGFyZSBkZXNpcmVkLiAgU2ltaWxhciBjb25zaWRlcmF0aW9ucworICAgICAgICAgKiBhZmZlY3QgYWxsIGZpZWxkcy4gIE5vbmV0aGVsZXNzLCB0aGlzIGVmZmVjdCBpcyBzdWZmaWNpZW50bHkgYXJjYW5lCisgICAgICAgICAqIHRoYXQgd2UgcGVybWl0IGl0LCByYXRoZXIgdGhhbiBjb21wbGljYXRpbmcgdGhlIGNvZGUgdG8gaGFuZGxlIHN1Y2gKKyAgICAgICAgICogaW50cmljYWNpZXMuIC0gbGl1IDgvMjAvOTgKKworICAgICAgICAgKiBVUERBVEU6IE5vIGxvbmdlciB0cnVlLCBzaW5jZSB3ZSBoYXZlIHB1bGxlZCBpbiB0aGUgbGltaXQgdmFsdWVzIG9uCisgICAgICAgICAqIHRoZSB5ZWFyLiAtIExpdSAxMS82LzAwICovCisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworCisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgICAgIC8qIFRoZSB5ZWFyIGNvbXB1dGF0aW9uIGlzIG5vIGRpZmZlcmVudCwgaW4gcHJpbmNpcGxlLCBmcm9tIHRoZQorICAgICAgICAgICAgICogb3RoZXJzLCBob3dldmVyLCB0aGUgcmFuZ2Ugb2YgcG9zc2libGUgbWF4aW1hIGlzIGxhcmdlLiAgSW4KKyAgICAgICAgICAgICAqIGFkZGl0aW9uLCB0aGUgd2F5IHdlIGtub3cgd2UndmUgZXhjZWVkZWQgdGhlIHJhbmdlIGlzIGRpZmZlcmVudC4KKyAgICAgICAgICAgICAqIEZvciB0aGVzZSByZWFzb25zLCB3ZSB1c2UgdGhlIHNwZWNpYWwgY2FzZSBjb2RlIGJlbG93IHRvIGhhbmRsZQorICAgICAgICAgICAgICogdGhpcyBmaWVsZC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBUaGUgYWN0dWFsIG1heGltYSBmb3IgWUVBUiBkZXBlbmQgb24gdGhlIHR5cGUgb2YgY2FsZW5kYXI6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogICAgIEdyZWdvcmlhbiA9IE1heSAxNywgMjkyMjc1MDU2IEJDIC0gQXVnIDE3LCAyOTIyNzg5OTQgQUQKKyAgICAgICAgICAgICAqICAgICBKdWxpYW4gICAgPSBEZWMgIDIsIDI5MjI2OTA1NSBCQyAtIEphbiAgMywgMjkyMjcyOTkzIEFECisgICAgICAgICAgICAgKiAgICAgSHlicmlkICAgID0gRGVjICAyLCAyOTIyNjkwNTUgQkMgLSBBdWcgMTcsIDI5MjI3ODk5NCBBRAorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFdlIGtub3cgd2UndmUgZXhjZWVkZWQgdGhlIG1heGltdW0gd2hlbiBlaXRoZXIgdGhlIG1vbnRoLCBkYXRlLAorICAgICAgICAgICAgICogdGltZSwgb3IgZXJhIGNoYW5nZXMgaW4gcmVzcG9uc2UgdG8gc2V0dGluZyB0aGUgeWVhci4gIFdlIGRvbid0CisgICAgICAgICAgICAgKiBjaGVjayBmb3IgbW9udGgsIGRhdGUsIGFuZCB0aW1lIGhlcmUgYmVjYXVzZSB0aGUgeWVhciBhbmQgZXJhIGFyZQorICAgICAgICAgICAgICogc3VmZmljaWVudCB0byBkZXRlY3QgYW4gaW52YWxpZCB5ZWFyIHNldHRpbmcuICBOT1RFOiBJZiBjb2RlIGlzCisgICAgICAgICAgICAgKiBhZGRlZCB0byBjaGVjayB0aGUgbW9udGggYW5kIGRhdGUgaW4gdGhlIGZ1dHVyZSBmb3Igc29tZSByZWFzb24sCisgICAgICAgICAgICAgKiBGZWIgMjkgbXVzdCBiZSBhbGxvd2VkIHRvIHNoaWZ0IHRvIE1hciAxIHdoZW4gc2V0dGluZyB0aGUgeWVhci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgZXJhID0gY2FsLmdldChFUkEpOworICAgICAgICAgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgICAgICAvKiBQZXJmb3JtIGEgYmluYXJ5IHNlYXJjaCwgd2l0aCB0aGUgaW52YXJpYW50IHRoYXQgbG93R29vZCBpcyBhCisgICAgICAgICAgICAgICAgICogdmFsaWQgeWVhciwgYW5kIGhpZ2hCYWQgaXMgYW4gb3V0IG9mIHJhbmdlIHllYXIuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IGxvd0dvb2QgPSBMSU1JVFNbWUVBUl1bMV07CisgICAgICAgICAgICAgICAgaW50IGhpZ2hCYWQgPSBMSU1JVFNbWUVBUl1bMl0rMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGxvd0dvb2QgKyAxKSA8IGhpZ2hCYWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHkgPSAobG93R29vZCArIGhpZ2hCYWQpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbC5nZXQoWUVBUikgPT0geSAmJiBjYWwuZ2V0KEVSQSkgPT0gZXJhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb3dHb29kID0geTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hCYWQgPSB5OworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7IC8vIFJlc3RvcmUgb3JpZ2luYWwgZmllbGRzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmV0dXJuIGxvd0dvb2Q7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgfQorICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gUHJvcG9zZWQgcHVibGljIEFQSQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBmb3IgdGhpcyBDYWxlbmRhciBpcyBpbiBEYXlsaWdudAorICAgICAqIFNhdmluZ3MgVGltZS4KKyAgICAgKgorICAgICAqIE5vdGUgLS0gTUFLRSBUSElTIFBVQkxJQyBBVCBUSEUgTkVYVCBBUEkgQ0hBTkdFLiAgUE9TU0lCTFkgREVQUkVDQVRFCisgICAgICogQU5EIFJFTU9WRSBUaW1lWm9uZS5pbkRheWxpZ2h0VGltZSgpLgorICAgICAqLworICAgIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoKSB7CisgICAgICAgIGlmICghZ2V0VGltZVpvbmUoKS51c2VEYXlsaWdodFRpbWUoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBjb21wbGV0ZSgpOyAvLyBGb3JjZSB1cGRhdGUgb2YgRFNUX09GRlNFVCBmaWVsZAorICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXQoRFNUX09GRlNFVCkgIT0gMDsKKyAgICB9CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDYWxlbmRhciBmcmFtZXdvcmsKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRNb250aExlbmd0aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgcmV0dXJuIE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXBZZWFyKGV4dGVuZGVkWWVhcik/MTowXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV5ZWFyKSB7CisgICAgICAgIHJldHVybiBpc0xlYXBZZWFyKGV5ZWFyKSA/IDM2NiA6IDM2NTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBUaW1lID0+IEZpZWxkcyBjb21wdXRhdGlvbgorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMgc3BlY2lmaWMgdG8gdGhlIGh5YnJpZAorICAgICAqIEdyZWdvcmlhbi1KdWxpYW4gY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGludCBleWVhciwgbW9udGgsIGRheU9mTW9udGgsIGRheU9mWWVhcjsKKworICAgICAgICBpZiAoanVsaWFuRGF5ID49IGN1dG92ZXJKdWxpYW5EYXkpIHsKKyAgICAgICAgICAgIG1vbnRoID0gZ2V0R3JlZ29yaWFuTW9udGgoKTsKKyAgICAgICAgICAgIGRheU9mTW9udGggPSBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCk7CisgICAgICAgICAgICBkYXlPZlllYXIgPSBnZXRHcmVnb3JpYW5EYXlPZlllYXIoKTsKKyAgICAgICAgICAgIGV5ZWFyID0gZ2V0R3JlZ29yaWFuWWVhcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIEp1bGlhbiBlcG9jaCBkYXkgKG5vdCB0aGUgc2FtZSBhcyBKdWxpYW4gRGF5KQorICAgICAgICAgICAgLy8gaXMgemVybyBvbiBTYXR1cmRheSBEZWNlbWJlciAzMCwgMCAoR3JlZ29yaWFuKS4KKyAgICAgICAgICAgIGxvbmcganVsaWFuRXBvY2hEYXkgPSBqdWxpYW5EYXkgLSAoSkFOXzFfMV9KVUxJQU5fREFZIC0gMik7CisgICAgICAgICAgICBleWVhciA9IChpbnQpIGZsb29yRGl2aWRlKDQqanVsaWFuRXBvY2hEYXkgKyAxNDY0LCAxNDYxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgSnVsaWFuIGNhbGVuZGFyIGRheSBudW1iZXIgZm9yIEphbnVhcnkgMSwgZXllYXIKKyAgICAgICAgICAgIGxvbmcgamFudWFyeTEgPSAzNjUqKGV5ZWFyLTEpICsgZmxvb3JEaXZpZGUoZXllYXItMSwgNCk7CisgICAgICAgICAgICBkYXlPZlllYXIgPSAoaW50KShqdWxpYW5FcG9jaERheSAtIGphbnVhcnkxKTsgLy8gMC1iYXNlZAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBKdWxpYW4gbGVhcCB5ZWFycyBvY2N1cnJlZCBoaXN0b3JpY2FsbHkgZXZlcnkgNCB5ZWFycyBzdGFydGluZworICAgICAgICAgICAgLy8gd2l0aCA4IEFELiAgQmVmb3JlIDggQUQgdGhlIHNwYWNpbmcgaXMgaXJyZWd1bGFyOyBldmVyeSAzIHllYXJzCisgICAgICAgICAgICAvLyBmcm9tIDQ1IEJDIHRvIDkgQkMsIGFuZCB0aGVuIG5vbmUgdW50aWwgOCBBRC4gIEhvd2V2ZXIsIHdlIGRvbid0CisgICAgICAgICAgICAvLyBpbXBsZW1lbnQgdGhpcyBoaXN0b3JpY2FsIGRldGFpbDsgaW5zdGVhZCwgd2UgaW1wbGVtZW50IHRoZQorICAgICAgICAgICAgLy8gY29tcHV0YXRpbmFsbHkgY2xlYW5lciBwcm9sZXB0aWMgY2FsZW5kYXIsIHdoaWNoIGFzc3VtZXMKKyAgICAgICAgICAgIC8vIGNvbnNpc3RlbnQgNC15ZWFyIGN5Y2xlcyB0aHJvdWdob3V0IHRpbWUuCisgICAgICAgICAgICBib29sZWFuIGlzTGVhcCA9ICgoZXllYXImMHgzKSA9PSAwKTsgLy8gZXF1aXYuIHRvIChleWVhciU0ID09IDApCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvbW1vbiBKdWxpYW4vR3JlZ29yaWFuIGNhbGN1bGF0aW9uCisgICAgICAgICAgICBpbnQgY29ycmVjdGlvbiA9IDA7CisgICAgICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgICAgIGlmIChkYXlPZlllYXIgPj0gbWFyY2gxKSB7CisgICAgICAgICAgICAgICAgY29ycmVjdGlvbiA9IGlzTGVhcCA/IDEgOiAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICAgICAgZGF5T2ZNb250aCA9IGRheU9mWWVhciAtIE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXSArIDE7IC8vIG9uZS1iYXNlZCBET00KKyAgICAgICAgICAgICsrZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgZGF5T2ZNb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCBkYXlPZlllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCBleWVhcik7CisgICAgICAgIGludCBlcmEgPSBBRDsKKyAgICAgICAgaWYgKGV5ZWFyIDwgMSkgeworICAgICAgICAgICAgZXJhID0gQkM7CisgICAgICAgICAgICBleWVhciA9IDEgLSBleWVhcjsKKyAgICAgICAgfQorICAgICAgICBpbnRlcm5hbFNldChFUkEsIGVyYSk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIGV5ZWFyKTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBGaWVsZHMgPT4gVGltZSBjb21wdXRhdGlvbgorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIEVQT0NIX1lFQVIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIHllYXIgZGVmYXVsdHMgdG8gdGhlIGVwb2NoIHN0YXJ0LCB0aGUgZXJhIHRvIEFECisgICAgICAgICAgICBpbnQgZXJhID0gaW50ZXJuYWxHZXQoRVJBLCBBRCk7CisgICAgICAgICAgICBpZiAoZXJhID09IEJDKSB7CisgICAgICAgICAgICAgICAgeWVhciA9IDEgLSBpbnRlcm5hbEdldChZRUFSLCAxKTsgLy8gQ29udmVydCB0byBleHRlbmRlZCB5ZWFyCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCBFUE9DSF9ZRUFSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoaW50IGJlc3RGaWVsZCkgeworCisgICAgICAgIGludmVydEdyZWdvcmlhbiA9IGZhbHNlOworCisgICAgICAgIGludCBqZCA9IHN1cGVyLmhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoYmVzdEZpZWxkKTsKKworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoZWNrIGhhbmRsZXMgcG9ydGlvbnMgb2YgdGhlIGN1dG92ZXIgeWVhciBCRUZPUkUgdGhlCisgICAgICAgIC8vIGN1dG92ZXIgaXRzZWxmIGhhcHBlbnMuCisgICAgICAgIGlmIChpc0dyZWdvcmlhbiAhPSAoamQgPj0gY3V0b3Zlckp1bGlhbkRheSkpIHsKKyAgICAgICAgICAgIGludmVydEdyZWdvcmlhbiA9IHRydWU7CisgICAgICAgICAgICBqZCA9IHN1cGVyLmhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoYmVzdEZpZWxkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGpkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworCisgICAgICAgIC8vIElmIHRoZSBtb250aCBpcyBvdXQgb2YgcmFuZ2UsIGFkanVzdCBpdCBpbnRvIHJhbmdlLCBhbmQKKyAgICAgICAgLy8gbW9kaWZ5IHRoZSBleHRlbmRlZCB5ZWFyIHZhbHVlIGFjY29yZGluZ2x5LgorICAgICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHsKKyAgICAgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBleWVhciArPSBmbG9vckRpdmlkZShtb250aCwgMTIsIHJlbSk7CisgICAgICAgICAgICBtb250aCA9IHJlbVswXTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gZXllYXIlNCA9PSAwOworICAgICAgICBpbnQgeSA9IGV5ZWFyIC0gMTsKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IDM2NSp5ICsgZmxvb3JEaXZpZGUoeSwgNCkgKyAoSkFOXzFfMV9KVUxJQU5fREFZIC0gMyk7CisKKyAgICAgICAgaXNHcmVnb3JpYW4gPSAoZXllYXIgPj0gZ3JlZ29yaWFuQ3V0b3ZlclllYXIpOworICAgICAgICBpZiAoaW52ZXJ0R3JlZ29yaWFuKSB7CisgICAgICAgICAgICBpc0dyZWdvcmlhbiA9ICFpc0dyZWdvcmlhbjsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNHcmVnb3JpYW4pIHsKKyAgICAgICAgICAgIGlzTGVhcCA9IGlzTGVhcCAmJiAoKGV5ZWFyJTEwMCAhPSAwKSB8fCAoZXllYXIlNDAwID09IDApKTsKKyAgICAgICAgICAgIC8vIEFkZCAyIGJlY2F1c2UgR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0cyAyIGRheXMgYWZ0ZXIKKyAgICAgICAgICAgIC8vIEp1bGlhbiBjYWxlbmRhcgorICAgICAgICAgICAganVsaWFuRGF5ICs9IGZsb29yRGl2aWRlKHksIDQwMCkgLSBmbG9vckRpdmlkZSh5LCAxMDApICsgMjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQganVsaWFuRGF5IGluZGljYXRlcyB0aGUgZGF5IEJFRk9SRSB0aGUgZmlyc3QKKyAgICAgICAgLy8gZGF5IG9mIEphbnVhcnkgMSwgPGV5ZWFyPiBvZiBlaXRoZXIgdGhlIEp1bGlhbiBvciBHcmVnb3JpYW4KKyAgICAgICAgLy8gY2FsZW5kYXIuCisKKyAgICAgICAgaWYgKG1vbnRoICE9IDApIHsKKyAgICAgICAgICAgIGp1bGlhbkRheSArPSBNT05USF9DT1VOVFttb250aF1baXNMZWFwPzM6Ml07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMuKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImdyZWdvcmlhbiI7CisgICAgfQorCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeTsKKyAgICBwdWJsaWMgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KCkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IENhbGVuZGFyRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiR3JlZ29yaWFuIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U5Y2YzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw4NjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyQ2FjaGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gaXMgYSBzdWJjbGFzcyBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqIHRoYXQgdGhhdCBpbXBsZW1lbnRzIHRoZSB0cmFkaXRpb25hbCBIZWJyZXcgY2FsZW5kYXIuCisgKiBUaGlzIGlzIHRoZSBjaXZpbCBjYWxlbmRhciBpbiBJc3JhZWwgYW5kIHRoZSBsaXR1cmdpY2FsIGNhbGVuZGFyCisgKiBvZiB0aGUgSmV3aXNoIGZhaXRoIHdvcmxkd2lkZS4KKyAqIDxwPgorICogVGhlIEhlYnJldyBjYWxlbmRhciBpcyBsdW5pc29sYXIgYW5kIHRodXMgaGFzIGEgbnVtYmVyIG9mIGludGVyZXN0aW5nCisgKiBwcm9wZXJ0aWVzIHRoYXQgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0aGUgR3JlZ29yaWFuLiAgTW9udGhzIHN0YXJ0CisgKiBvbiB0aGUgZGF5IG9mIChhbiBhcml0aG1ldGljIGFwcHJveGltYXRpb24gb2YpIGVhY2ggbmV3IG1vb24uICBTaW5jZSB0aGUKKyAqIHNvbGFyIHllYXIgKGFwcHJveGltYXRlbHkgMzY1LjI0IGRheXMpIGlzIG5vdCBhbiBldmVuIG11bHRpcGxlIG9mCisgKiB0aGUgbHVuYXIgbW9udGggKGFwcHJveGltYXRlbHkgMjkuNTMgZGF5cykgYW4gZXh0cmEgImxlYXAgbW9udGgiIGlzCisgKiBpbnNlcnRlZCBpbiA3IG91dCBvZiBldmVyeSAxOSB5ZWFycy4gIFRvIG1ha2UgbWF0dGVycyBldmVuIG1vcmUKKyAqIGludGVyZXN0aW5nLCB0aGUgc3RhcnQgb2YgYSB5ZWFyIGNhbiBiZSBkZWxheWVkIGJ5IHVwIHRvIHRocmVlIGRheXMKKyAqIGluIG9yZGVyIHRvIHByZXZlbnQgY2VydGFpbiBob2xpZGF5cyBmcm9tIGZhbGxpbmcgb24gdGhlIFNhYmJhdGggYW5kCisgKiB0byBwcmV2ZW50IGNlcnRhaW4gaWxsZWdhbCB5ZWFyIGxlbmd0aHMuICBGaW5hbGx5LCB0aGUgbGVuZ3RocyBvZiBjZXJ0YWluCisgKiBtb250aHMgY2FuIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgeWVhci4KKyAqIDxwPgorICogVGhlIGxlYXAgbW9udGggaXMga25vd24gYXMgIkFkYXIgMSIgYW5kIGlzIGluc2VydGVkIGJldHdlZW4gdGhlCisgKiBtb250aHMgb2YgU2hldmF0IGFuZCBBZGFyIGluIGxlYXAgeWVhcnMuICBTaW5jZSB0aGUgbGVhcCBtb250aCBkb2VzCisgKiBub3QgY29tZSBhdCB0aGUgZW5kIG9mIHRoZSB5ZWFyLCBjYWxjdWxhdGlvbnMgaW52b2x2aW5nCisgKiBtb250aCBudW1iZXJzIGFyZSBwYXJ0aWN1bGFybHkgY29tcGxleC4gIFVzZXJzIG9mIHRoaXMgY2xhc3Mgc2hvdWxkCisgKiBtYWtlIHN1cmUgdG8gdXNlIHRoZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kIHtAbGluayAjYWRkIGFkZH0gbWV0aG9kcworICogcmF0aGVyIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGRhdGUgYXJpdGhtZXRpYyBieSBtYW5pcHVsYXRpbmcKKyAqIHRoZSBmaWVsZHMgZGlyZWN0bHkuCisgKiA8cD4KKyAqIDxiPk5vdGU6PC9iPiBJbiB0aGUgdHJhZGl0aW9uYWwgSGVicmV3IGNhbGVuZGFyLCBkYXlzIHN0YXJ0IGF0IHN1bnNldC4KKyAqIEhvd2V2ZXIsIGluIG9yZGVyIHRvIGtlZXAgdGhlIHRpbWUgZmllbGRzIGluIHRoaXMgY2xhc3MKKyAqIHN5bmNocm9uaXplZCB3aXRoIHRob3NlIG9mIHRoZSBvdGhlciBjYWxlbmRhcnMgYW5kIHdpdGggbG9jYWwgY2xvY2sgdGltZSwKKyAqIHdlIHRyZWF0IGRheXMgYW5kIG1vbnRocyBhcyBiZWdpbm5pbmcgYXQgbWlkbmlnaHQsCisgKiByb3VnaGx5IDYgaG91cnMgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc3Vuc2V0LgorICogPHA+CisgKiBJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgcnVsZXMgYmVoaW5kIHRoZSBIZWJyZXcKKyAqIGNhbGVuZGFyLCBzZWUgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVmZXJlbmNlczoKKyAqIDx1bD4KKyAqIDxsaT4iPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0FTSU4vMDUyMTU2NDc0MyI+Q2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zPC9hPiIsCisgKiAgICAgIGJ5IE5hY2h1bSBEZXJzaG93aXR6ICYgRWR3YXJkIFJlaW5nb2xkLCBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcywgMTk5NywgcGFnZXMgODUtOTEuCisgKgorICogPGxpPkhlYnJldyBDYWxlbmRhciBTY2llbmNlIGFuZCBNeXRocywKKyAqICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LyI+CisgKiAgICAgIGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9BdGhlbnMvMTU4NC88L2E+CisgKgorICogPGxpPlRoZSBDYWxlbmRhciBGQVEsCisgKiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZmFxcy5vcmcvZmFxcy9jYWxlbmRhcnMvZmFxLyI+CisgKiAgICAgIGh0dHA6Ly93d3cuZmFxcy5vcmcvZmFxcy9jYWxlbmRhcnMvZmFxLzwvYT4KKyAqIDwvdWw+CisgKgorICogPHA+CisgKiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgc3ViY2xhc3NlZC48L3A+CisgKiA8cD4KKyAqIEhlYnJld0NhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWhlYnJldyI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIEhlYnJld0NhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0xOTUyNTI0NTYwNTg4ODI1ODE2TDsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk3LTE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRvbnMgbycgQ29uc3RhbnRzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgVGlzaHJpLCB0aGUgMXN0IG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJU0hSSSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgSGVzaHZhbiwgdGhlIDJuZCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVNIVkFOID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBLaXNsZXYsIHRoZSAzcmQgbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lTTEVWID0gMjsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBUZXZldCwgdGhlIDR0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVZFVCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2hldmF0LCB0aGUgNXRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIRVZBVCA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgQWRhciBJLCB0aGUgNnRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhcgorICAgICAqIChwcmVzZW50IGluIGxlYXAgeWVhcnMgb25seSkuIEluIG5vbi1sZWFwIHllYXJzLCB0aGUgY2FsZW5kYXIKKyAgICAgKiBqdW1wcyBmcm9tIFNoZXZhdCAoNXRoIG1vbnRoKSB0byBBZGFyICg3dGggbW9udGgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEQVJfMSA9IDU7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIHRoZSBBZGFyLCB0aGUgN3RoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEQVIgPSA2OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIE5pc2FuLCB0aGUgOHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5JU0FOID0gNzsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBJeWFyLCB0aGUgOXRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElZQVIgPSA4OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFNpdmFuLCB0aGUgMTB0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSVZBTiA9IDk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgVGFtbXV6LCB0aGUgMTF0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQU1VWiA9IDEwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEF2LCB0aGUgMTJ0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBViA9IDExOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEVsdWwsIHRoZSAxM3RoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVMVUwgPSAxMjsKKworICAgIC8qKgorICAgICAqIFRoZSBhYnNvbHV0ZSBkYXRlLCBpbiBtaWxsaXNlY29uZHMgc2luY2UgMS8xLzE5NzAgQUQsIEdyZWdvcmlhbiwKKyAgICAgKiBvZiB0aGUgc3RhcnQgb2YgdGhlIEhlYnJldyBjYWxlbmRhci4gIEluIG9yZGVyIHRvIGtlZXAgdGhpcyBjYWxlbmRhcidzCisgICAgICogdGltZSBvZiBkYXkgaW4gc3luYyB3aXRoIHRoYXQgb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgd2UgdXNlCisgICAgICogbWlkbmlnaHQsIHJhdGhlciB0aGFuIHN1bnNldCB0aGUgZGF5IGJlZm9yZS4KKyAgICAgKi8KKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgRVBPQ0hfTUlMTElTID0gLTE4MDc5OTg2MjQwMDAwMEw7IC8vIDEvMS8xIEhZCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gTWluaW11bSAgR3JlYXRlc3QgICAgTGVhc3QgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gIE1heGltdW0KKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDAsICAgICAgIDAgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIFlFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgMTIsICAgICAgMTIgfSwgLy8gTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNTEsICAgICAgNTYgfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICA1LCAgICAgICA2IH0sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgMjksICAgICAgMzAgfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgMzUzLCAgICAgMzg1IH0sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsgICAgICAgLTEsICAgICAgIC0xLCAgICAgICA0LCAgICAgICA2IH0sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEFNX1BNCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlOVVRFCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsgLTUwMDAwMDEsIC01MDAwMDAxLCA1MDAwMDAxLCA1MDAwMDAxIH0sIC8vIFlFQVJfV09ZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERPV19MT0NBTAorICAgICAgICB7IC01MDAwMDAwLCAtNTAwMDAwMCwgNTAwMDAwMCwgNTAwMDAwMCB9LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RocyBvZiB0aGUgSGVicmV3IG1vbnRocy4gIFRoaXMgaXMgY29tcGxpY2F0ZWQsIGJlY2F1c2UgdGhlcmUKKyAgICAgKiBhcmUgdGhyZWUgZGlmZmVyZW50IHR5cGVzIG9mIHllYXJzLCBvciBzaXggaWYgeW91IGNvdW50IGxlYXAgeWVhcnMuCisgICAgICogRHVlIHRvIHRoZSBydWxlcyBmb3IgcG9zdHBvbmluZyB0aGUgc3RhcnQgb2YgdGhlIHllYXIgdG8gYXZvaWQgaGF2aW5nCisgICAgICogY2VydGFpbiBob2xpZGF5cyBmYWxsIG9uIHRoZSBzYWJiYXRoLCB0aGUgeWVhciBjYW4gZW5kIHVwIGJlaW5nIHRocmVlCisgICAgICogZGlmZmVyZW50IGxlbmd0aHMsIGNhbGxlZCAiZGVmaWNpZW50IiwgIm5vcm1hbCIsIGFuZCAiY29tcGxldGUiLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNT05USF9MRU5HVEhbXVtdID0geworICAgICAgICAvLyBEZWZpY2llbnQgIE5vcm1hbCAgICAgQ29tcGxldGUKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9UaXNocmkKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9IZXNodmFuCisgICAgICAgIHsgICAyOSwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vS2lzbGV2CisgICAgICAgIHsgICAyOSwgICAgICAgICAyOSwgICAgICAgICAyOSAgICAgfSwgICAgICAgICAgIC8vVGV2ZXQKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9TaGV2YXQKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9BZGFyIEkgKGxlYXAgeWVhcnMgb25seSkKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9BZGFyCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vTmlzYW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9JeWFyCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vU2l2YW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9UYW1tdXoKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9BdgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0VsdWwKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGN1bXVsYXRpdmUgIyBvZiBkYXlzIHRvIHRoZSBlbmQgb2YgZWFjaCBtb250aCBpbiBhIG5vbi1sZWFwIHllYXIKKyAgICAgKiBBbHRob3VnaCB0aGlzIGNhbiBiZSBjYWxjdWxhdGVkIGZyb20gdGhlIE1PTlRIX0xFTkdUSCB0YWJsZSwKKyAgICAgKiBrZWVwaW5nIGl0IGFyb3VuZCBzZXBhcmF0ZWx5IG1ha2VzIHNvbWUgY2FsY3VsYXRpb25zIGEgbG90IGZhc3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNT05USF9TVEFSVFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgIDAsICAgICAgICAgIDAsICAgICAgICAgIDAgIH0sICAgICAgICAgIC8vIChwbGFjZWhvbGRlcikKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICB9LCAgICAgICAgICAvLyBUaXNocmkKKyAgICAgICAgeyAgIDU5LCAgICAgICAgIDU5LCAgICAgICAgIDYwICB9LCAgICAgICAgICAvLyBIZXNodmFuCisgICAgICAgIHsgICA4OCwgICAgICAgICA4OSwgICAgICAgICA5MCAgfSwgICAgICAgICAgLy8gS2lzbGV2CisgICAgICAgIHsgIDExNywgICAgICAgIDExOCwgICAgICAgIDExOSAgfSwgICAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyBTaGV2YXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyAoQWRhciBJIHBsYWNlaG9sZGVyKQorICAgICAgICB7ICAxNzYsICAgICAgICAxNzcsICAgICAgICAxNzggIH0sICAgICAgICAgIC8vIEFkYXIKKyAgICAgICAgeyAgMjA2LCAgICAgICAgMjA3LCAgICAgICAgMjA4ICB9LCAgICAgICAgICAvLyBOaXNhbgorICAgICAgICB7ICAyMzUsICAgICAgICAyMzYsICAgICAgICAyMzcgIH0sICAgICAgICAgIC8vIEl5YXIKKyAgICAgICAgeyAgMjY1LCAgICAgICAgMjY2LCAgICAgICAgMjY3ICB9LCAgICAgICAgICAvLyBTaXZhbgorICAgICAgICB7ICAyOTQsICAgICAgICAyOTUsICAgICAgICAyOTYgIH0sICAgICAgICAgIC8vIFRhbW11egorICAgICAgICB7ICAzMjQsICAgICAgICAzMjUsICAgICAgICAzMjYgIH0sICAgICAgICAgIC8vIEF2CisgICAgICAgIHsgIDM1MywgICAgICAgIDM1NCwgICAgICAgIDM1NSAgfSwgICAgICAgICAgLy8gRWx1bAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VtdWxhdGl2ZSAjIG9mIGRheXMgdG8gdGhlIGVuZCBvZiBlYWNoIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQVBfTU9OVEhfU1RBUlRbXVtdID0geworICAgICAgICAvLyBEZWZpY2llbnQgIE5vcm1hbCAgICAgQ29tcGxldGUKKyAgICAgICAgeyAgICAwLCAgICAgICAgICAwLCAgICAgICAgICAwICB9LCAgICAgICAgICAvLyAocGxhY2Vob2xkZXIpCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgfSwgICAgICAgICAgLy8gVGlzaHJpCisgICAgICAgIHsgICA1OSwgICAgICAgICA1OSwgICAgICAgICA2MCAgfSwgICAgICAgICAgLy8gSGVzaHZhbgorICAgICAgICB7ICAgODgsICAgICAgICAgODksICAgICAgICAgOTAgIH0sICAgICAgICAgIC8vIEtpc2xldgorICAgICAgICB7ICAxMTcsICAgICAgICAxMTgsICAgICAgICAxMTkgIH0sICAgICAgICAgIC8vIFRldmV0CisgICAgICAgIHsgIDE0NywgICAgICAgIDE0OCwgICAgICAgIDE0OSAgfSwgICAgICAgICAgLy8gU2hldmF0CisgICAgICAgIHsgIDE3NywgICAgICAgIDE3OCwgICAgICAgIDE3OSAgfSwgICAgICAgICAgLy8gQWRhciBJCisgICAgICAgIHsgIDIwNiwgICAgICAgIDIwNywgICAgICAgIDIwOCAgfSwgICAgICAgICAgLy8gQWRhciBJSQorICAgICAgICB7ICAyMzYsICAgICAgICAyMzcsICAgICAgICAyMzggIH0sICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgIHsgIDI2NSwgICAgICAgIDI2NiwgICAgICAgIDI2NyAgfSwgICAgICAgICAgLy8gSXlhcgorICAgICAgICB7ICAyOTUsICAgICAgICAyOTYsICAgICAgICAyOTcgIH0sICAgICAgICAgIC8vIFNpdmFuCisgICAgICAgIHsgIDMyNCwgICAgICAgIDMyNSwgICAgICAgIDMyNiAgfSwgICAgICAgICAgLy8gVGFtbXV6CisgICAgICAgIHsgIDM1NCwgICAgICAgIDM1NSwgICAgICAgIDM1NiAgfSwgICAgICAgICAgLy8gQXYKKyAgICAgICAgeyAgMzgzLCAgICAgICAgMzg0LCAgICAgICAgMzg1ICB9LCAgICAgICAgICAvLyBFbHVsCisgICAgfTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERhdGEgTWVtYmVycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJDYWNoZSBjYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgdGhpcyh6b25lLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVGlzaHJpLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgdGhpcy5zZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgdGhpcy5zZXQoREFURSwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRpc2hyaS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KFlFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChNT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChEQVRFLCBkYXRlKTsKKyAgICAgICAgdGhpcy5zZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICB0aGlzLnNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHRoaXMuc2V0KFNFQ09ORCwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBSb2xsaW5nIGFuZCBhZGRpbmcgZnVuY3Rpb25zIG92ZXJyaWRkZW4gZnJvbSBDYWxlbmRhcgorICAgIC8vCisgICAgLy8gVGhlc2UgbWV0aG9kcyBjYWxsIHRocm91Z2ggdG8gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaW4gSUJNQ2FsZW5kYXIKKyAgICAvLyBmb3IgbW9zdCBvZiB0aGUgZmllbGRzIGFuZCBvbmx5IGhhbmRsZSB0aGUgdW51c3VhbCBvbmVzIHRoZW1zZWx2ZXMuCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzaWduZWQgYW1vdW50IHRvIGEgc3BlY2lmaWVkIGZpZWxkLCB1c2luZyB0aGlzIGNhbGVuZGFyJ3MgcnVsZXMuCisgICAgICogRm9yIGV4YW1wbGUsIHRvIGFkZCB0aHJlZSBkYXlzIHRvIHRoZSBjdXJyZW50IGRhdGUsIHlvdSBjYW4gY2FsbAorICAgICAqIDxjb2RlPmFkZChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uIAorICAgICAqIDxwPgorICAgICAqIFdoZW4gYWRkaW5nIHRvIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gYWRkaW5nIG9uZSB0byB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIGRhdGUgIjMwIEF2IDU3NTgiLCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzICIyOSBFbHVsIDU3NTgiIHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogIjMwIEVsdWwgNTc1OCIuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgaXMgYWJsZSB0byBhZGQgdG8KKyAgICAgKiBhbGwgZmllbGRzIGV4Y2VwdCBmb3Ige0BsaW5rICNFUkEgRVJBfSwge0BsaW5rICNEU1RfT0ZGU0VUIERTVF9PRkZTRVR9LAorICAgICAqIGFuZCB7QGxpbmsgI1pPTkVfT0ZGU0VUIFpPTkVfT0ZGU0VUfS4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIHtAbGluayAjcm9sbCByb2xsfSBhbmQgYWRkIHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+SGVicmV3Q2FsZW5kYXI8L3R0Pi4gIFNpbmNlIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZCBiZWhhdmVzCisgICAgICogZGlzY29udGludW91c2x5IGluIG5vbi1sZWFwIHllYXJzLCBzaW1wbGUgYXJpdGhtZXRpYyBjYW4gZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgYW1vdW50KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIE1PTlRIOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBqdXN0IGRvIGEgc2V0KE1PTlRILCBnZXQoTU9OVEgpICsgYW1vdW50KS4gIFRoZQorICAgICAgICAgICAgICAgIC8vIHJlYXNvbiBpcyBBREFSXzEuICBTdXBwb3NlIGFtb3VudCBpcyArMiBhbmQgd2UgbGFuZCBpbgorICAgICAgICAgICAgICAgIC8vIEFEQVJfMSAtLSB0aGVuIHdlIGhhdmUgdG8gYnVtcCB0byBBREFSXzIgYWthIEFEQVIuICBCdXQKKyAgICAgICAgICAgICAgICAvLyBpZiBhbW91bnQgaXMgLTIgYW5kIHdlIGxhbmQgaW4gQURBUl8xLCB0aGVuIHdlIGhhdmUgdG8KKyAgICAgICAgICAgICAgICAvLyBidW1wIHRoZSBvdGhlciB3YXkgLS0gZG93biB0byBTSEVWQVQuICAtIEFsYW4gMTEvMDAKKyAgICAgICAgICAgICAgICBpbnQgbW9udGggPSBnZXQoTU9OVEgpOworICAgICAgICAgICAgICAgIGludCB5ZWFyID0gZ2V0KFlFQVIpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gYWNyb3NzQWRhcjE7CisgICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSAobW9udGggPCBBREFSXzEpOyAvLyBzdGFydGVkIGJlZm9yZSBBREFSXzE/CisgICAgICAgICAgICAgICAgICAgIG1vbnRoICs9IGFtb3VudDsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjcm9zc0FkYXIxICYmIG1vbnRoPj1BREFSXzEgJiYgIWlzTGVhcFllYXIoeWVhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK21vbnRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vbnRoIDw9IEVMVUwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoIC09IEVMVUwrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsreWVhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjcm9zc0FkYXIxID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFjcm9zc0FkYXIxID0gKG1vbnRoID4gQURBUl8xKTsgLy8gc3RhcnRlZCBhZnRlciBBREFSXzE/CisgICAgICAgICAgICAgICAgICAgIG1vbnRoICs9IGFtb3VudDsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjcm9zc0FkYXIxICYmIG1vbnRoPD1BREFSXzEgJiYgIWlzTGVhcFllYXIoeWVhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLW1vbnRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vbnRoID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoICs9IEVMVUwrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0teWVhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjcm9zc0FkYXIxID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgICAgICAgICAgcGluRmllbGQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIuYWRkKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzcGVjaWZpZWQgYW1vdW50IHRpbWUgb24gdGhlIGdpdmVuIGZpZWxkLiAgRm9yCisgICAgICogZXhhbXBsZSwgdG8gcm9sbCB0aGUgY3VycmVudCBkYXRlIHVwIGJ5IHRocmVlIGRheXMsIHlvdSBjYW4gY2FsbAorICAgICAqIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMyk8L2NvZGU+LiAgSWYgdGhlCisgICAgICogZmllbGQgaXMgcm9sbGVkIHBhc3QgaXRzIG1heGltdW0gYWxsb3dhYmxlIHZhbHVlLCBpdCB3aWxsICJ3cmFwIiBiYWNrCisgICAgICogdG8gaXRzIG1pbmltdW0gYW5kIGNvbnRpbnVlIHJvbGxpbmcuICAKKyAgICAgKiBGb3IgZXhhbXBsZSwgY2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDEwKTwvY29kZT4KKyAgICAgKiBvbiBhIEhlYnJldyBjYWxlbmRhciBzZXQgdG8gIjI1IEF2IDU3NTgiIHdpbGwgcmVzdWx0IGluIHRoZSBkYXRlICI1IEF2IDU3NTgiLgorICAgICAqIDxwPgorICAgICAqIFdoZW4gcm9sbGluZyBjZXJ0YWluIGZpZWxkcywgdGhlIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgbWF5IGNvbmZsaWN0IGFuZAorICAgICAqIG5lZWQgdG8gYmUgY2hhbmdlZC4gIEZvciBleGFtcGxlLCB3aGVuIHJvbGxpbmcgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkCisgICAgICogdXB3YXJkIGJ5IG9uZSBmb3IgdGhlIGRhdGUgIjMwIEF2IDU3NTgiLCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzICIyOSBFbHVsIDU3NTgiIHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogIjMwIEVsdWwiLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGFibGUgdG8gcm9sbAorICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LiAgU3ViY2xhc3NlcyBtYXksIG9mIGNvdXJzZSwgYWRkIHN1cHBvcnQgZm9yCisgICAgICogYWRkaXRpb25hbCBmaWVsZHMgaW4gdGhlaXIgb3ZlcnJpZGVzIG9mIDxjb2RlPnJvbGw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Ugcm9sbCBhbmQge0BsaW5rICNhZGQgYWRkfSByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkhlYnJld0NhbGVuZGFyPC90dD4uICBTaW5jZSB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQgYmVoYXZlcworICAgICAqIGRpc2NvbnRpbnVvdXNseSBpbiBub24tbGVhcCB5ZWFycywgc2ltcGxlIGFyaXRobWV0aWMgY2FuIGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCAgICAgdGhlIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGFtb3VudCAgICB0aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBmaWVsZCBzaG91bGQgYmUgcm9sbGVkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJvbGwoaW50IGZpZWxkLCBpbnQgYW1vdW50KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBtb250aCA9IGdldChNT05USCk7CisgICAgICAgICAgICAgICAgaW50IHllYXIgPSBnZXQoWUVBUik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9vbGVhbiBsZWFwWWVhciA9IGlzTGVhcFllYXIoeWVhcik7CisgICAgICAgICAgICAgICAgaW50IHllYXJMZW5ndGggPSBtb250aHNJblllYXIoeWVhcik7CisgICAgICAgICAgICAgICAgaW50IG5ld01vbnRoID0gbW9udGggKyAoYW1vdW50ICUgeWVhckxlbmd0aCk7CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBJZiBpdCdzIG5vdCBhIGxlYXAgeWVhciBhbmQgd2UncmUgcm9sbGluZyBwYXN0IHRoZSBtaXNzaW5nIG1vbnRoCisgICAgICAgICAgICAgICAgLy8gb2YgQURBUl8xLCB3ZSBuZWVkIHRvIHJvbGwgYW4gZXh0cmEgbW9udGggdG8gbWFrZSB1cCBmb3IgaXQuCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICBpZiAoIWxlYXBZZWFyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbW91bnQgPiAwICYmIG1vbnRoIDwgQURBUl8xICYmIG5ld01vbnRoID49IEFEQVJfMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TW9udGgrKzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhbW91bnQgPCAwICYmIG1vbnRoID4gQURBUl8xICYmIG5ld01vbnRoIDw9IEFEQVJfMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TW9udGgtLTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoTU9OVEgsIChuZXdNb250aCArIDEzKSAlIDEzKTsKKyAgICAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLnJvbGwoZmllbGQsIGFtb3VudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdXBwb3J0IG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIEhlYnJldyBkYXRlIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGluIHRlcm1zIG9mIGRheXMsIGhvdXJzLCBhbmQKKyAgICAvLyAicGFydHMiIChvciBoYWxha2ltKSwgd2hpY2ggYXJlIDEvMTA4MCBvZiBhbiBob3VyLCBvciAzIDEvMyBzZWNvbmRzLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgSE9VUl9QQVJUUyA9IDEwODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBEQVlfUEFSVFMgID0gMjQqSE9VUl9QQVJUUzsKKyAgICAKKyAgICAvLyBBbiBhcHByb3hpbWF0ZSB2YWx1ZSBmb3IgdGhlIGxlbmd0aCBvZiBhIGx1bmFyIG1vbnRoLgorICAgIC8vIEl0IGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBhcHByb3hpbWF0ZSB5ZWFyIGFuZCBtb250aCBvZiBhIGdpdmVuCisgICAgLy8gYWJzb2x1dGUgZGF0ZS4KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBpbnQgIE1PTlRIX0RBWVMgPSAyOTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIE1PTlRIX0ZSQUNUID0gMTIqSE9VUl9QQVJUUyArIDc5MzsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIE1PTlRIX1BBUlRTID0gTU9OVEhfREFZUypEQVlfUEFSVFMgKyBNT05USF9GUkFDVDsKKyAgICAKKyAgICAvLyBUaGUgdGltZSBvZiB0aGUgbmV3IG1vb24gKGluIHBhcnRzKSBvbiAxIFRpc2hyaSwgeWVhciAxICh0aGUgZXBvY2gpCisgICAgLy8gY291bnRpbmcgZnJvbSBub29uIG9uIHRoZSBkYXkgYmVmb3JlLiAgQkFIQVJBRCBpcyBhbiBhYmJyZXZpYXRpb24gb2YKKyAgICAvLyBCZXQgKE1vbmRheSksIEhleSAoNSBob3VycyBmcm9tIHN1bnNldCksIFJlc2gtRGFsZWQgKDIwNCkuCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyBCQUhBUkFEID0gMTEqSE9VUl9QQVJUUyArIDIwNDsKKworICAgIC8qKgorICAgICAqIEZpbmRzIHRoZSBkYXkgIyBvZiB0aGUgZmlyc3QgZGF5IGluIHRoZSBnaXZlbiBIZWJyZXcgeWVhci4KKyAgICAgKiBUbyBkbyB0aGlzLCB3ZSB3YW50IHRvIGNhbGN1bGF0ZSB0aGUgdGltZSBvZiB0aGUgVGlzaHJpIDEgbmV3IG1vb24KKyAgICAgKiBpbiB0aGF0IHllYXIuCisgICAgICogPHA+CisgICAgICogVGhlIGFsZ29yaXRobSBoZXJlIGlzIHNpbWlsYXIgdG8gb25lcyBkZXNjcmliZWQgaW4gYSBudW1iZXIgb2YKKyAgICAgKiByZWZlcmVuY2VzLCBpbmNsdWRpbmc6CisgICAgICogPHVsPgorICAgICAqIDxsaT4iQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIiwgYnkgTmFjaHVtIERlcnNob3dpdHogJiBFZHdhcmQgUmVpbmdvbGQsCisgICAgICogICAgIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAxOTk3LCBwYWdlcyA4NS05MS4KKyAgICAgKgorICAgICAqIDxsaT5IZWJyZXcgQ2FsZW5kYXIgU2NpZW5jZSBhbmQgTXl0aHMsCisgICAgICogICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9BdGhlbnMvMTU4NC8iPgorICAgICAqICAgICBodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vQXRoZW5zLzE1ODQvPC9hPgorICAgICAqCisgICAgICogPGxpPlRoZSBDYWxlbmRhciBGQVEsCisgICAgICogICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmZhcXMub3JnL2ZhcXMvY2FsZW5kYXJzL2ZhcS8iPgorICAgICAqICAgICAgaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvPC9hPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBzdGFydE9mWWVhcihpbnQgeWVhcikKKyAgICB7CisgICAgICAgIGxvbmcgZGF5ID0gY2FjaGUuZ2V0KHllYXIpOworICAgICAgICAKKyAgICAgICAgaWYgKGRheSA9PSBDYWxlbmRhckNhY2hlLkVNUFRZKSB7CisgICAgICAgICAgICBpbnQgbW9udGhzID0gKDIzNSAqIHllYXIgLSAyMzQpIC8gMTk7ICAgICAgICAgICAvLyAjIG9mIG1vbnRocyBiZWZvcmUgeWVhcgorCisgICAgICAgICAgICBsb25nIGZyYWMgPSBtb250aHMgKiBNT05USF9GUkFDVCArIEJBSEFSQUQ7ICAgICAvLyBGcmFjdGlvbmFsIHBhcnQgb2YgZGF5ICMKKyAgICAgICAgICAgIGRheSAgPSBtb250aHMgKiAyOSArIChmcmFjIC8gREFZX1BBUlRTKTsgICAgICAgIC8vIFdob2xlICMgcGFydCBvZiBjYWxjdWxhdGlvbgorICAgICAgICAgICAgZnJhYyA9IGZyYWMgJSBEQVlfUEFSVFM7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGltZSBvZiBkYXkKKworICAgICAgICAgICAgaW50IHdkID0gKGludCkoZGF5ICUgNyk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGF5IG9mIHdlZWsgKDAgPT0gTW9uZGF5KQorCisgICAgICAgICAgICBpZiAod2QgPT0gMiB8fCB3ZCA9PSA0IHx8IHdkID09IDYpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgMXN0IGlzIG9uIFN1biwgV2VkLCBvciBGcmksIHBvc3Rwb25lIHRvIHRoZSBuZXh0IGRheQorICAgICAgICAgICAgICAgIGRheSArPSAxOworICAgICAgICAgICAgICAgIHdkID0gKGludCkoZGF5ICUgNyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod2QgPT0gMSAmJiBmcmFjID4gMTUqSE9VUl9QQVJUUysyMDQgJiYgIWlzTGVhcFllYXIoeWVhcikgKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5ldyBtb29uIGZhbGxzIGFmdGVyIDM6MTE6MjBhbSAoMTVoMjA0cCBmcm9tIHRoZSBwcmV2aW91cyBub29uKQorICAgICAgICAgICAgICAgIC8vIG9uIGEgVHVlc2RheSBhbmQgaXQgaXMgbm90IGEgbGVhcCB5ZWFyLCBwb3N0cG9uZSBieSAyIGRheXMuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBwcmV2ZW50cyAzNTYtZGF5IHllYXJzLgorICAgICAgICAgICAgICAgIGRheSArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAod2QgPT0gMCAmJiBmcmFjID4gMjEqSE9VUl9QQVJUUys1ODkgJiYgaXNMZWFwWWVhcih5ZWFyLTEpICkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBuZXcgbW9vbiBmYWxscyBhZnRlciA5OjMyOjQzIDEvM2FtICgyMWg1ODlwIGZyb20geWVzdGVyZGF5IG5vb24pCisgICAgICAgICAgICAgICAgLy8gb24gYSBNb25kYXkgYW5kICpsYXN0KiB5ZWFyIHdhcyBhIGxlYXAgeWVhciwgcG9zdHBvbmUgYnkgMSBkYXkuCisgICAgICAgICAgICAgICAgLy8gUHJldmVudHMgMzgyLWRheSB5ZWFycy4KKyAgICAgICAgICAgICAgICBkYXkgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhY2hlLnB1dCh5ZWFyLCBkYXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGZvciBhIGdpdmVuIGRheQorICAgICAqCisgICAgICogQHBhcmFtIGRheSAgIFRoZSAjIG9mIGRheXMgc2luY2UgdGhlIHN0YXJ0IG9mIHRoZSBIZWJyZXcgY2FsZW5kYXIsCisgICAgICogICAgICAgICAgICAgIDEtYmFzZWQgKGkuZS4gMS8xLzEgQU0gaXMgZGF5IDEpLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWJzb2x1dGVEYXlUb0RheU9mV2Vlayhsb25nIGRheSkKKyAgICB7CisgICAgICAgIC8vIFdlIGtub3cgdGhhdCAxLzEvMSBBTSBpcyBhIE1vbmRheSwgd2hpY2ggbWFrZXMgdGhlIG1hdGggZWFzeS4uLgorICAgICAgICByZXR1cm4gKGludCkoZGF5ICUgNykgKyAxOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRoZSB0eXBlIG9mIGEgZ2l2ZW4geWVhci4KKyAgICAgKiAgMCAgICJEZWZpY2llbnQiIHllYXIgd2l0aCAzNTMgb3IgMzgzIGRheXMKKyAgICAgKiAgMSAgICJOb3JtYWwiICAgIHllYXIgd2l0aCAzNTQgb3IgMzg0IGRheXMKKyAgICAgKiAgMiAgICJDb21wbGV0ZSIgIHllYXIgd2l0aCAzNTUgb3IgMzg1IGRheXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCB5ZWFyVHlwZShpbnQgeWVhcikKKyAgICB7CisgICAgICAgIGludCB5ZWFyTGVuZ3RoID0gaGFuZGxlR2V0WWVhckxlbmd0aCh5ZWFyKTsKKworICAgICAgICBpZiAoeWVhckxlbmd0aCA+IDM4MCkgeworICAgICAgICAgICB5ZWFyTGVuZ3RoIC09IDMwOyAgICAgICAgLy8gU3VidHJhY3QgbGVuZ3RoIG9mIGxlYXAgbW9udGguCisgICAgICAgIH0KKworICAgICAgICBpbnQgdHlwZSA9IDA7CisKKyAgICAgICAgc3dpdGNoICh5ZWFyTGVuZ3RoKSB7CisgICAgICAgICAgICBjYXNlIDM1MzoKKyAgICAgICAgICAgICAgICB0eXBlID0gMDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDM1NDoKKyAgICAgICAgICAgICAgICB0eXBlID0gMTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDM1NToKKyAgICAgICAgICAgICAgICB0eXBlID0gMjsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgeWVhciBsZW5ndGggIiArIHllYXJMZW5ndGggKyAiIGluIHllYXIgIiArIHllYXIpOworCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBnaXZlbiBIZWJyZXcgeWVhciBpcyBhIGxlYXAgeWVhcgorICAgICAqCisgICAgICogVGhlIHJ1bGUgaGVyZSBpcyB0aGF0IGlmICh5ZWFyICUgMTkpID09IDAsIDMsIDYsIDgsIDExLCAxNCwgb3IgMTcuCisgICAgICogVGhlIGZvcm11bGEgYmVsb3cgcGVyZm9ybXMgdGhlIHNhbWUgdGVzdCwgYmVsaWV2ZSBpdCBvciBub3QuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0xlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIC8vcmV0dXJuICh5ZWFyICogMTIgKyAxNykgJSAxOSA+PSAxMjsKKyAgICAgICAgaW50IHggPSAoeWVhcioxMiArIDE3KSAlIDE5OworICAgICAgICByZXR1cm4geCA+PSAoKHggPCAwKSA/IC03IDogMTIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBtb250aHNJblllYXIoaW50IHllYXIpIHsKKyAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIoeWVhcikgPyAxMyA6IDEyOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbGVuZGFyIGZyYW1ld29yaworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiB5ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRNb250aExlbmd0aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKworICAgICAgICBzd2l0Y2ggKG1vbnRoKSB7CisgICAgICAgICAgICBjYXNlIEhFU0hWQU46CisgICAgICAgICAgICBjYXNlIEtJU0xFVjoKKyAgICAgICAgICAgICAgICAvLyBUaGVzZSB0d28gbW9udGggbGVuZ3RocyBjYW4gdmFyeQorICAgICAgICAgICAgICAgIHJldHVybiBNT05USF9MRU5HVEhbbW9udGhdW3llYXJUeXBlKGV4dGVuZGVkWWVhcildOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBUaGUgcmVzdCBhcmUgYSBmaXhlZCBsZW5ndGgKKyAgICAgICAgICAgICAgICByZXR1cm4gTU9OVEhfTEVOR1RIW21vbnRoXVswXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBIZWJyZXcgeWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXllYXIpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpKHN0YXJ0T2ZZZWFyKGV5ZWFyKzEpIC0gc3RhcnRPZlllYXIoZXllYXIpKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgZnJvbSBtaWxsaXNlY29uZHMgdG8gZmllbGQgdmFsdWVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzCisgICAgICogc3BlY2lmaWMgdG8gZWFjaCBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKiAKKyAgICAgKiBTdWJjbGFzc2VzIGNhbiByZWZlciB0byB0aGUgREFZX09GX1dFRUsgYW5kIERPV19MT0NBTCBmaWVsZHMsCisgICAgICogd2hpY2ggd2lsbCBiZSBzZXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuICBTdWJjbGFzc2VzIGNhbgorICAgICAqIGFsc28gY2FsbCB0aGUgZ2V0R3JlZ29yaWFuWHh4KCkgbWV0aG9kcyB0byBvYnRhaW4gR3JlZ29yaWFuCisgICAgICogY2FsZW5kYXIgZXF1aXZhbGVudHMgZm9yIHRoZSBnaXZlbiBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogPHA+SW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgc2hvdWxkIGNvbXB1dGUgYW55IHN1YmNsYXNzLXNwZWNpZmljCisgICAgICogZmllbGRzLCB0aGF0IGlzLCBmaWVsZHMgZnJvbSBCQVNFX0ZJRUxEX0NPVU5UIHRvCisgICAgICogZ2V0RmllbGRDb3VudCgpIC0gMS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgbG9uZyBkID0ganVsaWFuRGF5IC0gMzQ3OTk3OworICAgICAgICBsb25nIG0gPSAoZCAqIERBWV9QQVJUUykgLyBNT05USF9QQVJUUzsgICAgICAgICAvLyBNb250aHMgKGFwcHJveCkKKyAgICAgICAgaW50IHllYXIgPSAoaW50KSgoMTkgKiBtICsgMjM0KSAvIDIzNSkgKyAxOyAgICAgLy8gWWVhcnMgKGFwcHJveCkKKyAgICAgICAgbG9uZyB5cyAgPSBzdGFydE9mWWVhcih5ZWFyKTsgICAgICAgICAgICAgICAgICAgLy8gMXN0IGRheSBvZiB5ZWFyCisgICAgICAgIGludCBkYXlPZlllYXIgPSAoaW50KShkIC0geXMpOworCisgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIHBvc3Rwb25lbWVudCBydWxlcywgaXQncyBwb3NzaWJsZSB0byBndWVzcyB3cm9uZy4gIEZpeCBpdC4KKyAgICAgICAgd2hpbGUgKGRheU9mWWVhciA8IDEpIHsKKyAgICAgICAgICAgIHllYXItLTsKKyAgICAgICAgICAgIHlzICA9IHN0YXJ0T2ZZZWFyKHllYXIpOworICAgICAgICAgICAgZGF5T2ZZZWFyID0gKGludCkoZCAtIHlzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHdoaWNoIG1vbnRoIHdlJ3JlIGluLCBhbmQgdGhlIGRhdGUgd2l0aGluIHRoYXQgbW9udGgKKyAgICAgICAgaW50IHllYXJUeXBlID0geWVhclR5cGUoeWVhcik7CisgICAgICAgIGludCBtb250aFN0YXJ0W11bXSA9IGlzTGVhcFllYXIoeWVhcikgPyBMRUFQX01PTlRIX1NUQVJUIDogTU9OVEhfU1RBUlQ7CisKKyAgICAgICAgaW50IG1vbnRoID0gMDsKKyAgICAgICAgd2hpbGUgKGRheU9mWWVhciA+IG1vbnRoU3RhcnRbbW9udGhdW3llYXJUeXBlXSkgeworICAgICAgICAgICAgbW9udGgrKzsKKyAgICAgICAgfQorICAgICAgICBtb250aC0tOworICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGRheU9mWWVhciAtIG1vbnRoU3RhcnRbbW9udGhdW3llYXJUeXBlXTsKKworICAgICAgICBpbnRlcm5hbFNldChFUkEsIDApOworICAgICAgICBpbnRlcm5hbFNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgeWVhcik7CisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgZGF5T2ZNb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCBkYXlPZlllYXIpOyAgICAgICAKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgZnJvbSBmaWVsZCB2YWx1ZXMgdG8gbWlsbGlzZWNvbmRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gSkQgb2Ygc3RhcnQgb2YgZ2l2ZW4gbW9udGgveWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisKKyAgICAgICAgLy8gUmVzb2x2ZSBvdXQtb2YtcmFuZ2UgbW9udGhzLiAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8KKyAgICAgICAgLy8gb2J0YWluIHRoZSBjb3JyZWN0IHllYXIuICBXZSBjb3JyZWN0IHRvCisgICAgICAgIC8vIGEgMTItIG9yIDEzLW1vbnRoIHllYXIgKGFkZC9zdWJ0cmFjdCAxMiBvciAxMywgZGVwZW5kaW5nCisgICAgICAgIC8vIG9uIHRoZSB5ZWFyKSBidXQgc2luY2Ugd2UgX2Fsd2F5c18gbnVtYmVyIGZyb20gMC4uMTIsIGFuZAorICAgICAgICAvLyB0aGUgbGVhcCB5ZWFyIGRldGVybWluZXMgd2hldGhlciBvciBub3QgbW9udGggNSAoQWRhciAxKQorICAgICAgICAvLyBpcyBwcmVzZW50LCB3ZSBhbGxvdyAwLi4xMiBpbiBhbnkgZ2l2ZW4geWVhci4KKyAgICAgICAgd2hpbGUgKG1vbnRoIDwgMCkgeworICAgICAgICAgICAgbW9udGggKz0gbW9udGhzSW5ZZWFyKC0tZXllYXIpOworICAgICAgICB9CisgICAgICAgIC8vIENhcmVmdWw6IGFsbG93IDAuLjEyIGluIGFsbCB5ZWFycworICAgICAgICB3aGlsZSAobW9udGggPiAxMikgeworICAgICAgICAgICAgbW9udGggLT0gbW9udGhzSW5ZZWFyKGV5ZWFyKyspOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBkYXkgPSBzdGFydE9mWWVhcihleWVhcik7CisKKyAgICAgICAgaWYgKG1vbnRoICE9IDApIHsKKyAgICAgICAgICAgIGlmIChpc0xlYXBZZWFyKGV5ZWFyKSkgeworICAgICAgICAgICAgICAgIGRheSArPSBMRUFQX01PTlRIX1NUQVJUW21vbnRoXVt5ZWFyVHlwZShleWVhcildOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkYXkgKz0gTU9OVEhfU1RBUlRbbW9udGhdW3llYXJUeXBlKGV5ZWFyKV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKGludCkgKGRheSArIDM0Nzk5Nyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiaGVicmV3IjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSGVicmV3Q2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJIZWJyZXciOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDFmZmY0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0hvbGlkYXkuamF2YQpAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIEhlYnJld0hvbGlkYXkgZXh0ZW5kcyBIb2xpZGF5Cit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGVicmV3Q2FsZW5kYXIgZ0NhbGVuZGFyID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IGRlZmluZWQgaW4gcmVmZXJlbmNlIHRvIHRoZSBIZWJyZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaG9saWRheQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEhlYnJld0hvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF0ZSwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICB0aGlzKG1vbnRoLCBkYXRlLCAxLCBuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdIb2xpZGF5KGludCBtb250aCwgaW50IGRhdGUsIGludCBsZW5ndGgsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXRlLCBnQ2FsZW5kYXIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBST1NIX0hBU0hBTkFIICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksICAxLCAgMiwgICJSb3NoIEhhc2hhbmFoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBHRURBTElBSCAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksICAzLCAgICAgICJGYXN0IG9mIEdlZGFsaWFoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBZT01fS0lQUFVSICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDEwLCAgICAgICJZb20gS2lwcHVyIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTVUtLT1QgICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDE1LCAgNiwgICJTdWtrb3QiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IEhPU0hBTkFIX1JBQkJBSCA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMjEsICAgICAgIkhvc2hhbmFoIFJhYmJhaCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU0hFTUlOSV9BVFpFUkVUID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAyMiwgICAgICAiU2hlbWluaSBBdHplcmV0Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTSU1DSEFUX1RPUkFIICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDIzLCAgICAgICJTaW1jaGF0IFRvcmFoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBIQU5VS0tBSCAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5LSVNMRVYsIDI1LCAgICAgICJIYW51a2thaCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgVEVWRVRfMTAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVEVWRVQsICAxMCwgICAgICAiRmFzdCBvZiBUZXZldCAxMCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgVFVfQlNIRVZBVCAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuU0hFVkFULCAxNSwgICAgICAiVHUgQidTaGV2YXQiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IEVTVEhFUiAgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkFEQVIsICAgMTMsICAgICAgIkZhc3Qgb2YgRXN0aGVyIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBQVVJJTSAgICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5BREFSLCAgIDE0LCAgICAgICJQdXJpbSIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU0hVU0hBTl9QVVJJTSAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxNSwgICAgICAiU2h1c2hhbiBQdXJpbSIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgUEFTU09WRVIgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuTklTQU4sICAxNSwgIDgsICAiUGFzc292ZXIiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFlPTV9IQVNIT0FIICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLk5JU0FOLCAgMjcsICAgICAgIllvbSBIYXNob2FoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBZT01fSEFaSUtBUk9OICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgICA0LCAgICAgICJZb20gSGF6aWthcm9uIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBZT01fSEFBVFpNQVVUICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgICA1LCAgICAgICJZb20gSGEnQXR6bWF1dCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgUEVTQUNIX1NIRUlOSSAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAxNCwgICAgICAiUGVzYWNoIFNoZWluaSIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgTEFHX0JPTUVSICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAxOCwgICAgICAiTGFiIEInT21lciIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgWU9NX1lFUlVTSEFMQVlJTSA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgMjgsICAgICAgIllvbSBZZXJ1c2hhbGF5aW0iKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNIQVZVT1QgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlNJVkFOLCAgIDYsICAyLCAgIlNoYXZ1b3QiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFRBTU1VWl8xNyAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRBTVVaLCAgMTcsICAgICAgIkZhc3Qgb2YgVGFtbXV6IDE3Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBUSVNIQV9CQVYgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5BViwgICAgICA5LCAgICAgICJGYXN0IG9mIFRpc2hhIEInQXYiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNFTElIT1QgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkVMVUwsICAgMjEsICAgICAgIlNlbGlob3QiKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0hvbGlkYXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hvbGlkYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hY2E3NTExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSG9saWRheS5qYXZhCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyBhIGhvbGlkYXkuCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBIb2xpZGF5IGltcGxlbWVudHMgRGF0ZVJ1bGUKK3sKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSG9saWRheVtdIGdldEhvbGlkYXlzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRIb2xpZGF5cyhVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhvbGlkYXlbXSBnZXRIb2xpZGF5cyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEhvbGlkYXlzKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIb2xpZGF5W10gZ2V0SG9saWRheXMoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBIb2xpZGF5W10gcmVzdWx0ID0gbm9Ib2xpZGF5czsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJIb2xpZGF5QnVuZGxlIiwgbG9jYWxlKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gKEhvbGlkYXlbXSkgYnVuZGxlLmdldE9iamVjdCgiaG9saWRheXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIGhvbGlkYXkgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIGRhdGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IGhvbGlkYXlzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBvbiBvciBhZnRlciB0aGUgc3RhcnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI2ZpcnN0QmV0d2VlbgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGUgZmlyc3RBZnRlcihEYXRlIHN0YXJ0KSB7CisgICAgICAgIHJldHVybiBydWxlLmZpcnN0QWZ0ZXIoc3RhcnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIGhvbGlkYXkgdGhhdCBpcyBvbiBvciBhZnRlcgorICAgICAqIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuIGVuZCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gZW5kICAgT25seSBvY2N1cnJhbmNlcyBiZWZvcmUgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RBZnRlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGUgZmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKSB7CisgICAgICAgIHJldHVybiBydWxlLmZpcnN0QmV0d2VlbihzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3Mgd2hldGhlciB0aGlzIGhvbGlkYXkgZmFsbHMgb24gdGhlIGdpdmVuIGRhdGUuICBUaGlzIGRvZXMKKyAgICAgKiA8ZW0+bm90PC9lbT4gdGFrZSB0aW1lIG9mIGRheSBpbnRvIGFjY291bnQ7IGluc3RlYWQgaXQgY2hlY2tzCisgICAgICogd2hldGhlciB0aGUgaG9saWRheSBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGhvbGlkYXkgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpIHsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIuaXNPbigiICsgZGF0ZS50b1N0cmluZygpICsgIik6Iik7CisgICAgICAgIHJldHVybiBydWxlLmlzT24oZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGhvbGlkYXkgb2NjdXJzIGF0IGxlYXN0IG9uY2UgYmV0d2VlbiB0aGUgdHdvCisgICAgICogZGF0ZXMgZ2l2ZW4uCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGUuaXNCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBIb2xpZGF5IG9iamVjdC4gIFRoaXMgaXMgZm9yIHVzZSBieSBzdWJjbGFzc2VzIG9ubHkuCisgICAgICogVGhpcyBjb25zdHJ1Y3RzIGEgbmV3IGhvbGlkYXkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBhbmQgZGF0ZSBydWxlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lICBUaGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkuICBUaGUgZ2V0RGlzcGxheU5hbWUgbWV0aG9kCisgICAgICogICAgICAgICAgICAgIHVzZXMgdGhpcyBzdHJpbmcgYXMgYSBrZXkgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYQorICAgICAqICAgICAgICAgICAgICByZXNvdXJjZSBidW5kbGUgb2JqZWN0IG5hbWVkIEhvbGlkYXlCdW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcnVsZSAgVGhlIGRhdGUgcnVsZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgd2hlbiB0aGlzIGhvbGlkYXkKKyAgICAgKiAgICAgICAgICAgICAgZmFsbHMuICBIb2xpZGF5J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGVSdWxlIGludGVmYWNlCisgICAgICogICAgICAgICAgICAgIHNpbXBseSBkZWxlZ2F0ZXMgdG8gdGhpcyBEYXRlUnVsZSBvYmplY3QuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgSG9saWRheShTdHJpbmcgbmFtZSwgRGF0ZVJ1bGUgcnVsZSkKKyAgICB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMucnVsZSA9IHJ1bGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgaG9saWRheSBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGRlZmF1bHQgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogVGhlIDxjb2RlPm5hbWU8L2NvZGU+IHBhcmFtZXRlciBwYXNzZWQgdG8gdGhpcyBvYmplY3QncyBjb25zdHJ1Y3RvciBpcyB1c2VkCisgICAgICogYXMgYSBrZXkgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIGxvY2FsaXplZCBuYW1lIGluIGEgUmVzb3VyY2VCdW5kbGUgb2JqZWN0CisgICAgICogbmFtZWQgSG9saWRheUJ1bmRsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgICBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBpbiB3aGljaCB0aGUgbmFtZSBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogVGhlIDxjb2RlPm5hbWU8L2NvZGU+IHBhcmFtZXRlciBwYXNzZWQgdG8gdGhpcyBvYmplY3QncyBjb25zdHJ1Y3RvciBpcyB1c2VkCisgICAgICogYXMgYSBrZXkgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIGxvY2FsaXplZCBuYW1lIGluIGEgUmVzb3VyY2VCdW5kbGUgb2JqZWN0CisgICAgICogbmFtZWQgSG9saWRheUJ1bmRsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgICBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBpbiB3aGljaCB0aGUgbmFtZSBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gdGhpcy5uYW1lOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoIkhvbGlkYXlCdW5kbGUiLCBsb2NhbGUpOworICAgICAgICAgICAgbmFtZSA9IGJ1bmRsZS5nZXRTdHJpbmcobmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVXNpbmcgZGVmYXVsdCBkaXNwbGF5IG5hbWUgZm9yICIgKyBuYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlUnVsZSBnZXRSdWxlKCkgeworICAgICAgICByZXR1cm4gcnVsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJ1bGUoRGF0ZVJ1bGUgcnVsZSkgeworICAgICAgICB0aGlzLnJ1bGUgPSBydWxlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nICAgICAgbmFtZTsKKyAgICBwcml2YXRlIERhdGVSdWxlICAgIHJ1bGU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBIb2xpZGF5W10gbm9Ib2xpZGF5cyA9IHt9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Jc2xhbWljQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hM2M5ODYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw2NzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyQXN0cm9ub21lcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNhbGVuZGFyQ2FjaGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGlzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiB0aGF0IHRoYXQgaW1wbGVtZW50cyB0aGUgSXNsYW1pYyBjaXZpbCBhbmQgcmVsaWdpb3VzIGNhbGVuZGFycy4gIEl0CisgKiBpcyB1c2VkIGFzIHRoZSBjaXZpbCBjYWxlbmRhciBpbiBtb3N0IG9mIHRoZSBBcmFiIHdvcmxkIGFuZCB0aGUKKyAqIGxpdHVyZ2ljYWwgY2FsZW5kYXIgb2YgdGhlIElzbGFtaWMgZmFpdGggd29ybGR3aWRlLiAgVGhpcyBjYWxlbmRhcgorICogaXMgYWxzbyBrbm93biBhcyB0aGUgIkhpanJpIiBjYWxlbmRhciwgc2luY2UgaXQgc3RhcnRzIGF0IHRoZSB0aW1lCisgKiBvZiBNb2hhbW1lZCdzIGVtaWdyYXRpb24gKG9yICJoaWpyYSIpIHRvIE1lZGluYWggb24gVGh1cnNkYXksIAorICogSnVseSAxNSwgNjIyIEFEIChKdWxpYW4pLgorICogPHA+CisgKiBUaGUgSXNsYW1pYyBjYWxlbmRhciBpcyBzdHJpY3RseSBsdW5hciwgYW5kIHRodXMgYW4gSXNsYW1pYyB5ZWFyIG9mIHR3ZWx2ZQorICogbHVuYXIgbW9udGhzIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIHNvbGFyIHllYXIgdXNlZCBieSBtb3N0IG90aGVyCisgKiBjYWxlbmRhciBzeXN0ZW1zLCBpbmNsdWRpbmcgdGhlIEdyZWdvcmlhbi4gIEFuIElzbGFtaWMgeWVhciBpcywgb24gYXZlcmFnZSwKKyAqIGFib3V0IDM1NCBkYXlzIGxvbmcsIHNvIGVhY2ggc3VjY2Vzc2l2ZSBJc2xhbWljIHllYXIgc3RhcnRzIGFib3V0IDExIGRheXMKKyAqIGVhcmxpZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgR3JlZ29yaWFuIHllYXIuCisgKiA8cD4KKyAqIEVhY2ggbW9udGggb2YgdGhlIGNhbGVuZGFyIHN0YXJ0cyB3aGVuIHRoZSBuZXcgbW9vbidzIGNyZXNjZW50IGlzIHZpc2libGUKKyAqIGF0IHN1bnNldC4gIEhvd2V2ZXIsIGluIG9yZGVyIHRvIGtlZXAgdGhlIHRpbWUgZmllbGRzIGluIHRoaXMgY2xhc3MKKyAqIHN5bmNocm9uaXplZCB3aXRoIHRob3NlIG9mIHRoZSBvdGhlciBjYWxlbmRhcnMgYW5kIHdpdGggbG9jYWwgY2xvY2sgdGltZSwKKyAqIHdlIHRyZWF0IGRheXMgYW5kIG1vbnRocyBhcyBiZWdpbm5pbmcgYXQgbWlkbmlnaHQsCisgKiByb3VnaGx5IDYgaG91cnMgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc3Vuc2V0LgorICogPHA+CisgKiBUaGVyZSBhcmUgdHdvIG1haW4gdmFyaWFudHMgb2YgdGhlIElzbGFtaWMgY2FsZW5kYXIgaW4gZXhpc3RlbmNlLiAgVGhlIGZpcnN0CisgKiBpcyB0aGUgPGVtPmNpdmlsPC9lbT4gY2FsZW5kYXIsIHdoaWNoIHVzZXMgYSBmaXhlZCBjeWNsZSBvZiBhbHRlcm5hdGluZyAyOS0KKyAqIGFuZCAzMC1kYXkgbW9udGhzLCB3aXRoIGEgbGVhcCBkYXkgYWRkZWQgdG8gdGhlIGxhc3QgbW9udGggb2YgMTEgb3V0IG9mCisgKiBldmVyeSAzMCB5ZWFycy4gIFRoaXMgY2FsZW5kYXIgaXMgZWFzaWx5IGNhbGN1bGF0ZWQgYW5kIHRodXMgcHJlZGljdGFibGUgaW4KKyAqIGFkdmFuY2UsIHNvIGl0IGlzIHVzZWQgYXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIGEgbnVtYmVyIG9mIEFyYWIgY291bnRyaWVzLgorICogVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBhIG5ld2x5LWNyZWF0ZWQgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPgorICogb2JqZWN0LgorICogPHA+CisgKiBUaGUgSXNsYW1pYyA8ZW0+cmVsaWdpb3VzPC9lbT4gY2FsZW5kYXIsIGhvd2V2ZXIsIGlzIGJhc2VkIG9uIHRoZSA8ZW0+b2JzZXJ2YXRpb248L2VtPgorICogb2YgdGhlIGNyZXNjZW50IG1vb24uICBJdCBpcyB0aHVzIGFmZmVjdGVkIGJ5IHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0aGUKKyAqIG9ic2VydmF0aW9ucyBhcmUgbWFkZSwgc2Vhc29uYWwgdmFyaWF0aW9ucyBpbiB0aGUgdGltZSBvZiBzdW5zZXQsIHRoZQorICogZWNjZW50cmljaXRpZXMgb2YgdGhlIG1vb24ncyBvcmJpdCwgYW5kIGV2ZW4gdGhlIHdlYXRoZXIgYXQgdGhlIG9ic2VydmF0aW9uCisgKiBzaXRlLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGNhbGN1bGF0ZSBpbiBhZHZhbmNlLCBhbmQgaXQgY2F1c2VzIHRoZQorICogc3RhcnQgb2YgYSBtb250aCBpbiB0aGUgcmVsaWdpb3VzIGNhbGVuZGFyIHRvIGRpZmZlciBmcm9tIHRoZSBjaXZpbCBjYWxlbmRhcgorICogYnkgdXAgdG8gdGhyZWUgZGF5cy4KKyAqIDxwPgorICogVXNpbmcgYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBmb3IgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYW5kIG1vb24sIHRoZQorICogbW9vbidzIGlsbHVtaW5hdGlvbiwgYW5kIG90aGVyIGZhY3RvcnMsIGl0IGlzIHBvc3NpYmxlIHRvIGRldGVybWluZSB0aGUgc3RhcnQKKyAqIG9mIGEgbHVuYXIgbW9udGggd2l0aCBhIGZhaXJseSBoaWdoIGRlZ3JlZSBvZiBjZXJ0YWludHkuICBIb3dldmVyLCB0aGVzZQorICogY2FsY3VsYXRpb25zIGFyZSBleHRyZW1lbHkgY29tcGxpY2F0ZWQgYW5kIHRodXMgc2xvdywgc28gbW9zdCBhbGdvcml0aG1zLAorICogaW5jbHVkaW5nIHRoZSBvbmUgdXNlZCBoZXJlLCBhcmUgb25seSBhcHByb3hpbWF0aW9ucyBvZiB0aGUgdHJ1ZSBhc3Ryb25pY2FsCisgKiBjYWxjdWxhdGlvbnMuICBBdCBwcmVzZW50LCB0aGUgYXBwcm94aW1hdGlvbnMgdXNlZCBpbiB0aGlzIGNsYXNzIGFyZSBmYWlybHkKKyAqIHNpbXBsaXN0aWM7IHRoZXkgd2lsbCBiZSBpbXByb3ZlZCBpbiBsYXRlciB2ZXJzaW9ucyBvZiB0aGUgY29kZS4KKyAqIDxwPgorICogVGhlIHtAbGluayAjc2V0Q2l2aWwgc2V0Q2l2aWx9IG1ldGhvZCBkZXRlcm1pbmVzCisgKiB3aGljaCBhcHByb2FjaCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc3RhcnQgb2YgYSBtb250aC4gIEJ5IGRlZmF1bHQsIHRoZQorICogZml4ZWQtY3ljbGUgY2l2aWwgY2FsZW5kYXIgaXMgdXNlZC4gIEhvd2V2ZXIsIGlmIDxjb2RlPnNldENpdmlsKGZhbHNlKTwvY29kZT4KKyAqIGlzIGNhbGxlZCwgYW4gYXBwcm94aW1hdGlvbiBvZiB0aGUgdHJ1ZSBsdW5hciBjYWxlbmRhciB3aWxsIGJlIHVzZWQuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogSXNsYW1pY0NhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWlzbGFtaWMiPC9jb2RlPiBvciA8Y29kZT4iQGNhbGVuZGFyPWlzbGFtaWMtY2l2aWwiPC9jb2RlPi48L3A+CisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBJc2xhbWljQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTYyNTMzNjU0NzQwNzM4NjkzMjVMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTctMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIE11aGFycmFtLCB0aGUgMXN0IG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNVUhBUlJBTSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2FmYXIsIHRoZSAybmQgbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNBRkFSID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBSYWJpJyBhbC1hd3dhbCAob3IgUmFiaScgSSksIHRoZSAzcmQgbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBQklfMSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgUmFiaScgYWwtdGhhbmkgb3IgKFJhYmknIElJKSwgdGhlIDR0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8yID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBKdW1hZGEgYWwtYXd3YWwgb3IgKEp1bWFkYSBJKSwgdGhlIDV0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVNQURBXzEgPSA0OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEp1bWFkYSBhbC10aGFuaSBvciAoSnVtYWRhIElJKSwgdGhlIDZ0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVNQURBXzIgPSA1OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFJhamFiLCB0aGUgN3RoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUpBQiA9IDY7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2hhJ2JhbiwgdGhlIDh0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBQkFOID0gNzsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBSYW1hZGFuLCB0aGUgOXRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQU1BREFOID0gODsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBTaGF3d2FsLCB0aGUgMTB0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBV1dBTCA9IDk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgRGh1IGFsLVFpJ2RhaCwgdGhlIDExdGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERIVV9BTF9RSURBSCA9IDEwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIERodSBhbC1IaWpqYWgsIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESFVfQUxfSElKSkFIID0gMTE7CisKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgSElKUkFfTUlMTElTID0gLTQyNTIxNTg3MjAwMDAwTDsgICAgLy8gNy8xNi82MjIgQUQgMDA6MDAKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoKQorICAgIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhlIG1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE11aGFycmFtLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLkRBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGUgbW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgTXVoYXJyYW0uCisgICAgICogQHBhcmFtIGRhdGUgIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBob3VyICB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBzZWNvbmQgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5EQVRFLCBkYXRlKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5NSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLlNFQ09ORCwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBvYmplY3QgdXNlcyB0aGUgZml4ZWQtY3ljbGUgSXNsYW1pYyBjaXZpbCBjYWxlbmRhcgorICAgICAqIG9yIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHJlbGlnaW91cywgYXN0cm9ub21pY2FsIGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGJlQ2l2aWwgICA8Y29kZT50cnVlPC9jb2RlPiB0byB1c2UgdGhlIGNpdmlsIGNhbGVuZGFyLAorICAgICAqICAgICAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IHRvIHVzZSB0aGUgYXN0cm9ub21pY2FsIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENpdmlsKGJvb2xlYW4gYmVDaXZpbCkKKyAgICB7CisgICAgICAgIGlmIChjaXZpbCAhPSBiZUNpdmlsKSB7CisgICAgICAgICAgICAvLyBUaGUgZmllbGRzIG9mIHRoZSBjYWxlbmRhciB3aWxsIGJlY29tZSBpbnZhbGlkLCBiZWNhdXNlIHRoZSBjYWxlbmRhcgorICAgICAgICAgICAgLy8gcnVsZXMgYXJlIGRpZmZlcmVudAorICAgICAgICAgICAgbG9uZyBtID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICBjaXZpbCA9IGJlQ2l2aWw7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKG0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBvYmplY3QgaXMgdXNpbmcgdGhlIGZpeGVkLWN5Y2xlIGNpdmlsCisgICAgICogY2FsZW5kYXIsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB1c2luZyB0aGUgcmVsaWdpb3VzLCBhc3Ryb25vbWljYWwKKyAgICAgKiBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NpdmlsKCkgeworICAgICAgICByZXR1cm4gY2l2aWw7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIE1pbmltdW0gLyBNYXhpbXVtIGFjY2VzcyBmdW5jdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMCwgICAgICAgMCB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MSwgICAgICA1MiB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTQsICAgICAzNTUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDUgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQXNzb3J0ZWQgY2FsY3VsYXRpb24gdXRpbGl0aWVzCisgICAgLy8KKworLy8gVW51c2VkIGNvZGUgLSBBbGFuIDIwMDMtMDUKKy8vICAgIC8qKgorLy8gICAgICogRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGZvciBhIGdpdmVuIGRheQorLy8gICAgICoKKy8vICAgICAqIEBwYXJhbSBkYXkgICBUaGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBzdGFydCBvZiB0aGUgSXNsYW1pYyBjYWxlbmRhci4KKy8vICAgICAqLworLy8gICAgLy8gcHJpdmF0ZSBhbmQgdW5jYWxsZWQsIHBlcmhhcHMgbm90IHVzZWQgeWV0PworLy8gICAgLy8vQ0xPVkVSOk9GRgorLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGFic29sdXRlRGF5VG9EYXlPZldlZWsobG9uZyBkYXkpCisvLyAgICB7CisvLyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkYXkgb2YgdGhlIHdlZWsuCisvLyAgICAgICAgLy8gVGhpcyByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgZXBvY2ggd2FzIGEgVGh1cnNkYXkuCisvLyAgICAgICAgaW50IGRheU9mV2VlayA9IChpbnQpKGRheSArIFRIVVJTREFZKSAlIDcgKyBTVU5EQVk7CisvLyAgICAgICAgaWYgKGRheU9mV2VlayA8IDApIHsKKy8vICAgICAgICAgICAgZGF5T2ZXZWVrICs9IDc7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiBkYXlPZldlZWs7CisvLyAgICB9CisvLyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIGEgeWVhciBpcyBhIGxlYXAgeWVhciBpbiB0aGUgSXNsYW1pYyBjaXZpbCBjYWxlbmRhcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gY2l2aWxMZWFwWWVhcihpbnQgeWVhcikKKyAgICB7CisgICAgICAgIHJldHVybiAoMTQgKyAxMSAqIHllYXIpICUgMzAgPCAxMTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5ICMgb24gd2hpY2ggdGhlIGdpdmVuIHllYXIgc3RhcnRzLiAgRGF5cyBhcmUgY291bnRlZAorICAgICAqIGZyb20gdGhlIEhpanJpIGVwb2NoLCBvcmlnaW4gMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgeWVhclN0YXJ0KGludCB5ZWFyKSB7CisgICAgICAgIGlmIChjaXZpbCkgeworICAgICAgICAgICAgcmV0dXJuICh5ZWFyLTEpKjM1NCArIChsb25nKU1hdGguZmxvb3IoKDMrMTEqeWVhcikvMzAuMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZU1vbnRoU3RhcnQoMTIqKHllYXItMSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5ICMgb24gd2hpY2ggdGhlIGdpdmVuIG1vbnRoIHN0YXJ0cy4gIERheXMgYXJlIGNvdW50ZWQKKyAgICAgKiBmcm9tIHRoZSBIaWpyaSBlcG9jaCwgb3JpZ2luIDAuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgVGhlIGhpanJpIHllYXIKKyAgICAgKiBAcGFyYW0geWVhciAgVGhlIGhpanJpIG1vbnRoLCAwLWJhc2VkCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIG1vbnRoU3RhcnQoaW50IHllYXIsIGludCBtb250aCkgeworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIHJldHVybiAobG9uZylNYXRoLmNlaWwoMjkuNSptb250aCkKKyAgICAgICAgICAgICAgICAgICAgKyAoeWVhci0xKSozNTQgKyAobG9uZylNYXRoLmZsb29yKCgzKzExKnllYXIpLzMwLjApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWVNb250aFN0YXJ0KDEyKih5ZWFyLTEpICsgbW9udGgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGRheSBudW1iZXIgb24gd2hpY2ggYSBwYXJ0aWN1bGFyIG1vbnRoIG9mIHRoZSB0cnVlL2x1bmFyCisgICAgICogSXNsYW1pYyBjYWxlbmRhciBzdGFydHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIGluIHF1ZXN0aW9uLCBvcmlnaW4gMCBmcm9tIHRoZSBIaWpyaSBlcG9jaAorICAgICAqCisgICAgICogQHJldHVybiBUaGUgZGF5IG51bWJlciBvbiB3aGljaCB0aGUgZ2l2ZW4gbW9udGggc3RhcnRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdHJ1ZU1vbnRoU3RhcnQobG9uZyBtb250aCkKKyAgICB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBjYWNoZS5nZXQobW9udGgpOworCisgICAgICAgIGlmIChzdGFydCA9PSBDYWxlbmRhckNhY2hlLkVNUFRZKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBNYWtlIGEgZ3Vlc3MgYXQgd2hlbiB0aGUgbW9udGggc3RhcnRlZCwgdXNpbmcgdGhlIGF2ZXJhZ2UgbGVuZ3RoCisgICAgICAgICAgICBsb25nIG9yaWdpbiA9IEhJSlJBX01JTExJUyAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKGxvbmcpTWF0aC5mbG9vcihtb250aCAqIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIIC0gMSkgKiBPTkVfREFZOworCisgICAgICAgICAgICBkb3VibGUgYWdlID0gbW9vbkFnZShvcmlnaW4pOworCisgICAgICAgICAgICBpZiAobW9vbkFnZShvcmlnaW4pID49IDApIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgbW9udGggaGFzIGFscmVhZHkgc3RhcnRlZAorICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luIC09IE9ORV9EQVk7CisgICAgICAgICAgICAgICAgICAgIGFnZSA9IG1vb25BZ2Uob3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChhZ2UgPj0gMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVjZWRpbmcgbW9udGggaGFzIG5vdCBlbmRlZCB5ZXQuCisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gKz0gT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgYWdlID0gbW9vbkFnZShvcmlnaW4pOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKGFnZSA8IDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGFydCA9IChvcmlnaW4gLSBISUpSQV9NSUxMSVMpIC8gT05FX0RBWSArIDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhY2hlLnB1dChtb250aCwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlICJhZ2UiIG9mIHRoZSBtb29uIGF0IHRoZSBnaXZlbiB0aW1lOyB0aGlzIGlzIHRoZSBkaWZmZXJlbmNlCisgICAgICogaW4gZWNsaXB0aWMgbGF0aXR1ZGUgYmV0d2VlbiB0aGUgbW9vbiBhbmQgdGhlIHN1bi4gIFRoaXMgbWV0aG9kIHNpbXBseQorICAgICAqIGNhbGxzIENhbGVuZGFyQXN0cm9ub21lci5tb29uQWdlLCBjb252ZXJ0cyB0byBkZWdyZWVzLCAKKyAgICAgKiBhbmQgYWRqdXN0cyB0aGUgcmVzdWx0dG8gYmUgaW4gdGhlIHJhbmdlIFstMTgwLCAxODBdLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWUgIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBtb29uJ3MgYWdlIGlzIGRlc2lyZWQsCisgICAgICogICAgICAgICAgICAgIGluIG1pbGxpcyBzaW5jZSAxLzEvMTk3MC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25BZ2UobG9uZyB0aW1lKQorICAgIHsKKyAgICAgICAgZG91YmxlIGFnZSA9IDA7CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQoYXN0cm8pIHsKKyAgICAgICAgICAgIGFzdHJvLnNldFRpbWUodGltZSk7CisgICAgICAgICAgICBhZ2UgPSBhc3Ryby5nZXRNb29uQWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ29udmVydCB0byBkZWdyZWVzIGFuZCBub3JtYWxpemUuLi4KKyAgICAgICAgYWdlID0gYWdlICogMTgwIC8gTWF0aC5QSTsKKyAgICAgICAgaWYgKGFnZSA+IDE4MCkgeworICAgICAgICAgICAgYWdlID0gYWdlIC0gMzYwOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGFnZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcm5hbCBkYXRhLi4uLgorICAgIC8vCisgICAgCisgICAgLy8gQW5kIGFuIEFzdHJvbm9tZXIgb2JqZWN0IGZvciB0aGUgbW9vbiBhZ2UgY2FsY3VsYXRpb25zCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyQ2FjaGUgY2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworICAgIAorICAgIC8qKgorICAgICAqIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgb2JqZWN0IHVzZXMgdGhlIGZpeGVkLWN5Y2xlIElzbGFtaWMgY2l2aWwgY2FsZW5kYXIsCisgICAgICogYW5kIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBhcHByb3hpbWF0ZXMgdGhlIHRydWUgcmVsaWdpb3VzIGNhbGVuZGFyIHVzaW5nCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBmb3IgdGhlIHRpbWUgb2YgdGhlIG5ldyBtb29uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaXZpbCA9IHRydWU7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYWxlbmRhciBmcmFtZXdvcmsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIChpbiBkYXlzKSBvZiB0aGUgZ2l2ZW4gbW9udGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXh0ZW5kZWRZZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgaGlqcmkgbW9udGgsIDAtYmFzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworCisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICBsZW5ndGggPSAyOSArIChtb250aCsxKSAlIDI7CisgICAgICAgICAgICBpZiAobW9udGggPT0gREhVX0FMX0hJSkpBSCAmJiBjaXZpbExlYXBZZWFyKGV4dGVuZGVkWWVhcikpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGgrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKSArIG1vbnRoOworICAgICAgICAgICAgbGVuZ3RoID0gKGludCkoIHRydWVNb250aFN0YXJ0KG1vbnRoKzEpIC0gdHJ1ZU1vbnRoU3RhcnQobW9udGgpICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBJc2xhbWljIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV4dGVuZGVkWWVhcikgeworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIHJldHVybiAzNTQgKyAoY2l2aWxMZWFwWWVhcihleHRlbmRlZFllYXIpID8gMSA6IDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSh0cnVlTW9udGhTdGFydChtb250aCArIDEyKSAtIHRydWVNb250aFN0YXJ0KG1vbnRoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gZmllbGQgdmFsdWVzIHRvIG1pbGxpc2Vjb25kcy4uLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworICAgICAgICByZXR1cm4gKGludCkgbW9udGhTdGFydChleWVhciwgbW9udGgpICsgMTk0ODQzOTsKKyAgICB9ICAgIAorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gbWlsbGlzZWNvbmRzIHRvIGZpZWxkIHZhbHVlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgSXNsYW1pYworICAgICAqIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcyBhcmUgYWxyZWFkeSBzZXQgd2hlbiB0aGlzCisgICAgICogbWV0aG9kIGlzIGNhbGxlZC4gVGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgcmV0dXJuIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisgICAgICAgIGxvbmcgbW9udGhTdGFydDsKKyAgICAgICAgbG9uZyBkYXlzID0ganVsaWFuRGF5IC0gMTk0ODQ0MDsKKworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIC8vIFVzZSB0aGUgY2l2aWwgY2FsZW5kYXIgYXBwcm94aW1hdGlvbiwgd2hpY2ggaXMganVzdCBhcml0aG1ldGljCisgICAgICAgICAgICB5ZWFyICA9IChpbnQpTWF0aC5mbG9vciggKDMwICogZGF5cyArIDEwNjQ2KSAvIDEwNjMxLjAgKTsKKyAgICAgICAgICAgIG1vbnRoID0gKGludClNYXRoLmNlaWwoKGRheXMgLSAyOSAtIHllYXJTdGFydCh5ZWFyKSkgLyAyOS41ICk7CisgICAgICAgICAgICBtb250aCA9IE1hdGgubWluKG1vbnRoLCAxMSk7CisgICAgICAgICAgICBtb250aFN0YXJ0ID0gbW9udGhTdGFydCh5ZWFyLCBtb250aCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBHdWVzcyBhdCB0aGUgbnVtYmVyIG9mIGVsYXBzZWQgZnVsbCBtb250aHMgc2luY2UgdGhlIGVwb2NoCisgICAgICAgICAgICBpbnQgbW9udGhzID0gKGludClNYXRoLmZsb29yKGRheXMgLyBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCk7CisKKyAgICAgICAgICAgIG1vbnRoU3RhcnQgPSAobG9uZylNYXRoLmZsb29yKG1vbnRocyAqIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIIC0gMSk7CisKKyAgICAgICAgICAgIGlmICggZGF5cyAtIG1vbnRoU3RhcnQgPj0gMjggJiYgbW9vbkFnZShpbnRlcm5hbEdldFRpbWVJbk1pbGxpcygpKSA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBuZWFyIHRoZSBlbmQgb2YgdGhlIG1vbnRoLCBhc3N1bWUgbmV4dCBtb250aCBhbmQgc2VhcmNoIGJhY2t3YXJkcworICAgICAgICAgICAgICAgIG1vbnRocysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaW5kIG91dCB0aGUgbGFzdCB0aW1lIHRoYXQgdGhlIG5ldyBtb29uIHdhcyBhY3R1YWxseSB2aXNpYmxlIGF0IHRoaXMgbG9uZ2l0dWRlCisgICAgICAgICAgICAvLyBUaGlzIHJldHVybnMgbWlkbmlnaHQgdGhlIG5pZ2h0IHRoYXQgdGhlIG1vb24gd2FzIHZpc2libGUgYXQgc3Vuc2V0LgorICAgICAgICAgICAgd2hpbGUgKChtb250aFN0YXJ0ID0gdHJ1ZU1vbnRoU3RhcnQobW9udGhzKSkgPiBkYXlzKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgaXQgd2FzIGFmdGVyIHRoZSBkYXRlIGluIHF1ZXN0aW9uLCBiYWNrIHVwIGEgbW9udGggYW5kIHRyeSBhZ2FpbgorICAgICAgICAgICAgICAgIG1vbnRocy0tOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB5ZWFyID0gbW9udGhzIC8gMTIgKyAxOworICAgICAgICAgICAgbW9udGggPSBtb250aHMgJSAxMjsKKyAgICAgICAgfQorCisgICAgICAgIGRheU9mTW9udGggPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCBtb250aCkpICsgMTsKKworICAgICAgICAvLyBOb3cgZmlndXJlIG91dCB0aGUgZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICBkYXlPZlllYXIgPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCAwKSArIDEpOworCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7ICAgICAgIAorICAgIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJpc2xhbWljIjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNsYW1pY0NhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSXNsYW1pYyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZTY3Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsNjczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCBudW1iZXJzIHllYXJzIGFuZCBlcmFzIGJhc2VkIG9uIHRoZSByZWlnbnMgb2YgdGhlIEphcGFuZXNlIGVtcGVyb3JzLgorICogVGhlIEphcGFuZXNlIGNhbGVuZGFyIGlzIGlkZW50aWNhbCB0byB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGluIGFsbCByZXNwZWN0cworICogZXhjZXB0IGZvciB0aGUgeWVhciBhbmQgZXJhLiAgVGhlIGFzY2Vuc2lvbiBvZiBlYWNoICBlbXBlcm9yIHRvIHRoZSB0aHJvbmUKKyAqIGJlZ2lucyBhIG5ldyBlcmEsIGFuZCB0aGUgeWVhcnMgb2YgdGhhdCBlcmEgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIHdpdGggdGhlCisgKiB5ZWFyIG9mIGFzY2Vuc2lvbiBhcyB5ZWFyIDEuCisgKiA8cD4KKyAqIE5vdGUgdGhhdCBpbiB0aGUgeWVhciBvZiBhbiBpbXBlcmlhbCBhc2NlbnNpb24sIHRoZXJlIGFyZSB0d28gcG9zc2libGUgc2V0cworICogb2YgeWVhciBhbmQgZXJhIHZhbHVlczogdGhhdCBmb3IgdGhlIG9sZCBlcmEgYW5kIGZvciB0aGUgbmV3LiAgRm9yIGV4YW1wbGUsIGEKKyAqIG5ldyBlcmEgYmVnYW4gb24gSmFudWFyeSA3LCAxOTg5IEFELiAgU3RyaWN0bHkgc3BlYWtpbmcsIHRoZSBmaXJzdCBzaXggZGF5cworICogb2YgdGhhdCB5ZWFyIHdlcmUgaW4gdGhlIFNob3dhIGVyYSwgZS5nLiAiSmFudWFyeSA2LCA2NCBTaG93YSIsIHdoaWxlIHRoZSByZXN0CisgKiBvZiB0aGUgeWVhciB3YXMgaW4gdGhlIEhlaXNlaSBlcmEsIGUuZy4gIkphbnVhcnkgNywgMSBIZWlzZWkiLiAgVGhpcyBjbGFzcworICogaGFuZGxlcyB0aGlzIGRpc3RpbmN0aW9uIGNvcnJlY3RseSB3aGVuIGNvbXB1dGluZyBkYXRlcy4gIEhvd2V2ZXIsIGluIGxlbmllbnQKKyAqIG1vZGUgZWl0aGVyIGZvcm0gb2YgZGF0ZSBpcyBhY2NlcHRhYmxlIGFzIGlucHV0LiAKKyAqIDxwPgorICogSW4gbW9kZXJuIHRpbWVzLCBlcmFzIGhhdmUgc3RhcnRlZCBvbiBKYW51YXJ5IDgsIDE4NjggQUQsIEdyZWdvcmlhbiAoTWVpamkpLAorICogSnVseSAzMCwgMTkxMiAoVGFpc2hvKSwgRGVjZW1iZXIgMjUsIDE5MjYgKFNob3dhKSwgYW5kIEphbnVhcnkgNywgMTk4OSAoSGVpc2VpKS4gIENvbnN0YW50cworICogZm9yIHRoZXNlIGVyYXMsIHN1aXRhYmxlIGZvciB1c2UgaW4gdGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQsIGFyZSBwcm92aWRlZAorICogaW4gdGhpcyBjbGFzcy4gIE5vdGUgdGhhdCB0aGUgPGVtPm51bWJlcjwvZW0+IHVzZWQgZm9yIGVhY2ggZXJhIGlzIG1vcmUgb3IKKyAqIGxlc3MgYXJiaXRyYXJ5LiAgQ3VycmVudGx5LCB0aGUgZXJhIHN0YXJ0aW5nIGluIDEwNTMgQUQgaXMgZXJhICMwOyBob3dldmVyIHRoaXMKKyAqIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSBhcyB3ZSBhZGQgbW9yZSBoaXN0b3JpY2FsIGRhdGEuICBVc2UgdGhlIHByZWRlZmluZWQKKyAqIGNvbnN0YW50cyByYXRoZXIgdGhhbiB1c2luZyBhY3R1YWwsIGFic29sdXRlIG51bWJlcnMuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogSmFwYW5lc2VDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1qYXBhbmVzZSI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlQ2FsZW5kYXIgZXh0ZW5kcyBHcmVnb3JpYW5DYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTI5NzcxODk5MDI2MDM3MDQ2OTFMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgaW1wZXJpYWwgZXJhIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjRVJBIEVSQX0gZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBFcmFzIGFyZSBudW1iZXJlZCBzdGFydGluZyB3aXRoIHRoZSBUZW5raSBlcmEsIHdoaWNoCisgICAgICogICAgICAgICAgICAgICAgICBiZWdhbiBpbiAxMDUzIEFEIEdyZWdvcmlhbiwgYXMgZXJhIHplcm8uICBSZWNlbnQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGVyYXMgY2FuIGJlIHNwZWNpZmllZCB1c2luZyB0aGUgY29uc3RhbnRzCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI01FSUpJfSAod2hpY2ggc3RhcnRlZCBpbiAxODY4IEFEKSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIHtAbGluayAjVEFJU0hPfSAoMTkxMiBBRCksCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI1NIT1dBfSAoMTkyNiBBRCksIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAge0BsaW5rICNIRUlTRUl9ICgxOTg5IEFEKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSBmaWVsZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGluIHRlcm1zIG9mIHRoZSBlcmEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3MgREFURSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgICAgIHNldChFUkEsIGVyYSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgY2xhc3Mgd2FzIGxhc3QgdXBkYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgb2YgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgd3JpdGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIgJiYKKyAgICAgICAgICAgIG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgRVJBKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBleHRlbmRlZCB5ZWFyIGlzIGEgZ3JlZ29yaWFuIHllYXIsIHdoZXJlIDEgPSAxQUQsICAwID0gMUJDLCAtMSA9IDJCQywgZXRjIAorICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpICAgICAgICAgICAgICAgICAgICAgICAvLyBwaW4gdG8gbWluaW11bSBvZiB5ZWFyIDEgKGZpcnN0IHllYXIpCisgICAgICAgICAgICAgICAgICAgICsgRVJBU1tpbnRlcm5hbEdldChFUkEsIENVUlJFTlRfRVJBKSAqIDNdIC8vIGFkZCBncmVnb3JpYW4gc3RhcnRpbmcgeWVhcgorICAgICAgICAgICAgICAgICAgICAtIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgYmVjYXVzZSB5ZWFyIHN0YXJ0cyBhdCAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENhbGxlZCBieSBoYW5kbGVDb21wdXRlSnVsaWFuRGF5LiAgUmV0dXJucyB0aGUgZGVmYXVsdCBtb250aCAoMC1iYXNlZCkgZm9yIHRoZSB5ZWFyLAorICAgICAqIHRha2luZyB5ZWFyIGFuZCBlcmEgaW50byBhY2NvdW50LiAgRGVmYXVsdHMgdG8gMCAoSkFOVUFSWSkgZm9yIEdyZWdvcmlhbi4KKyAgICAgKiBAcGFyYW0gZXh0ZW5kZWRZZWFyIHRoZSBleHRlbmRlZFllYXIsIGFzIHJldHVybmVkIGJ5IGhhbmRsZUdldEV4dGVuZGVkWWVhcgorICAgICAqIEByZXR1cm4gdGhlIGRlZmF1bHQgbW9udGgKKyAgICAgKiBAcHJvdmlzaW9uYWwgSUNVIDMuNgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICogQHNlZSAjTU9OVEgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldERlZmF1bHRNb250aEluWWVhcihpbnQgZXh0ZW5kZWRZZWFyKQorICAgIHsKKyAgICAgIGludCBlcmEgPSBpbnRlcm5hbEdldChFUkEsIENVUlJFTlRfRVJBKTsKKyAgICAgIC8vY29tcHV0ZUZpZWxkcyhzdGF0dXMpOyAvLyBObyBuZWVkIHRvIGNvbXB1dGUgZmllbGRzIGhlcmUgLSBleHBlY3QgdGhlIGNhbGxlciBhbHJlYWR5IGRpZCBzby4KKworICAgICAgLy8gRmluZCBvdXQgaWYgd2UgYXJlIGF0IHRoZSBlZGdlIG9mIGFuIGVyYQorICAgICAgaWYoZXh0ZW5kZWRZZWFyID09IEVSQVNbZXJhKjNdKSB7CisgICAgICAgIHJldHVybiBFUkFTWyhlcmEqMykrMV0gLy8gbW9udGguLgorICAgICAgICAgICAgLTE7IC8vIHJldHVybiAwLWJhc2VkIG1vbnRoCisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyKGV4dGVuZGVkWWVhcik7CisgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkuICBSZXR1cm5zIHRoZSBkZWZhdWx0IGRheSAoMS1iYXNlZCkgZm9yIHRoZSBtb250aCwKKyAgICAgKiB0YWtpbmcgY3VycmVudGx5LXNldCB5ZWFyIGFuZCBlcmEgaW50byBhY2NvdW50LiAgRGVmYXVsdHMgdG8gMSBmb3IgR3JlZ29yaWFuLgorICAgICAqIEBwYXJhbSBleHRlbmRlZFllYXIgdGhlIGV4dGVuZGVkWWVhciwgYXMgcmV0dXJuZWQgYnkgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBtb250aCwgYXMgcmV0dXJuZWQgYnkgZ2V0RGVmYXVsdE1vbnRoSW5ZZWFyCisgICAgICogQHJldHVybiB0aGUgZGVmYXVsdCBkYXkgb2YgdGhlIG1vbnRoCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgSUNVIDMuNgorICAgICAqIEBzZWUgI0RBWV9PRl9NT05USAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0RGVmYXVsdERheUluTW9udGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisgICAgICBpbnQgZXJhID0gaW50ZXJuYWxHZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgICAgICAgCisgICAgICBpZihleHRlbmRlZFllYXIgPT0gRVJBU1tlcmEqM10pIHsgLy8gaWYgaXQgaXMgeWVhciAxLi4KKyAgICAgICAgaWYobW9udGggPT0gKChFUkFTWyhlcmEqMykrMV0pLTEpKSB7IC8vIGlmIGl0IGlzIHRoZSBlbXBlcm9yJ3MgZmlyc3QgbW9udGguLiAKKyAgICAgICAgICByZXR1cm4gRVJBU1soZXJhKjMpKzJdOyAvLyByZXR1cm4gdGhlIERfT19NIG9mIGFjZXNzaW9uCisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgcmV0dXJuIHN1cGVyLmdldERlZmF1bHREYXlJbk1vbnRoKGV4dGVuZGVkWWVhciwgbW9udGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBzdXBlci5oYW5kbGVDb21wdXRlRmllbGRzKGp1bGlhbkRheSk7CisgICAgICAgIGludCB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUik7CisKKyAgICAgICAgaW50IGxvdyA9IDA7CisKKyAgICAgICAgLy8gU2hvcnQgY2lyY3VpdCBmb3IgcmVjZW50IHllYXJzLiAgTW9zdCBtb2Rlcm4gY29tcHV0YXRpb25zIHdpbGwKKyAgICAgICAgLy8gb2NjdXIgaW4gdGhlIGN1cnJlbnQgZXJhIGFuZCB3b24ndCByZXF1aXJlIHRoZSBiaW5hcnkgc2VhcmNoLgorICAgICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlIHllYXIgaXMgPT0gdGhlIGN1cnJlbnQgZXJhIHllYXIsIHRoZW4gd2UgdXNlCisgICAgICAgIC8vIHRoZSBiaW5hcnkgc2VhcmNoIHRvIGhhbmRsZSB0aGUgbW9udGgvZG9tIGNvbXBhcmlzb24uCisgICAgICAgIGlmICh5ZWFyID4gRVJBU1tFUkFTLmxlbmd0aCAtIDNdKSB7CisgICAgICAgICAgICBsb3cgPSBDVVJSRU5UX0VSQTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIGludCBoaWdoID0gRVJBUy5sZW5ndGggLyAzOworICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChsb3cgPCBoaWdoIC0gMSkgeworICAgICAgICAgICAgICAgIGludCBpID0gKGxvdyArIGhpZ2gpIC8gMjsKKyAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IHllYXIgLSBFUkFTW2kqM107CisKKyAgICAgICAgICAgICAgICAvLyBJZiB5ZWFycyBhcmUgdGhlIHNhbWUsIHRoZW4gY29tcGFyZSB0aGUgbW9udGhzLCBhbmQgaWYgdGhvc2UKKyAgICAgICAgICAgICAgICAvLyBhcmUgdGhlIHNhbWUsIGNvbXBhcmUgZGF5cyBvZiBtb250aC4gIEluIHRoZSBFUkFTIGFycmF5CisgICAgICAgICAgICAgICAgLy8gbW9udGhzIGFyZSAxLWJhc2VkIGZvciBlYXNpZXIgbWFpbnRlbmFuY2UuCisgICAgICAgICAgICAgICAgaWYgKGRpZmYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkaWZmID0gaW50ZXJuYWxHZXQoTU9OVEgpIC0gKEVSQVNbaSozICsgMV0gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiA9IGludGVybmFsR2V0KERBWV9PRl9NT05USCkgLSBFUkFTW2kqMyArIDJdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkaWZmID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbG93ID0gaTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBoaWdoID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgd2UndmUgZm91bmQgdGhlIGxhc3QgZXJhIHRoYXQgc3RhcnRzIGJlZm9yZSB0aGlzIGRhdGUsIHNvCisgICAgICAgIC8vIGFkanVzdCB0aGUgeWVhciB0byBjb3VudCBmcm9tIHRoZSBzdGFydCBvZiB0aGF0IGVyYS4gIE5vdGUgdGhhdAorICAgICAgICAvLyBhbGwgZGF0ZXMgYmVmb3JlIHRoZSBmaXJzdCBlcmEgd2lsbCBmYWxsIGludG8gdGhlIGZpcnN0IGVyYSBieQorICAgICAgICAvLyB0aGUgYWxnb3JpdGhtLgorICAgICAgICBpbnRlcm5hbFNldChFUkEsIGxvdyk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIgLSBFUkFTW2xvdyozXSArIDEpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIEVSQVMgPSB7CisgICAgLy8gIEdyZWdvcmlhbiBkYXRlIG9mIGVhY2ggZW1wZXJvcidzIGFzY2Vuc2lvbgorICAgIC8vICBZZWFycyBhcmUgQUQsIG1vbnRocyBhcmUgMS1iYXNlZC4KKyAgICAvLyAgWWVhciAgTW9udGggRGF5CisgICAgICAgICA2NDUsICAgIDYsIDE5LCAgICAgLy8gVGFpa2EKKyAgICAgICAgIDY1MCwgICAgMiwgMTUsICAgICAvLyBIYWt1Y2hpCisgICAgICAgICA2NzIsICAgIDEsICAxLCAgICAgLy8gSGFrdWhvCisgICAgICAgICA2ODYsICAgIDcsIDIwLCAgICAgLy8gU2h1Y2hvCisgICAgICAgICA3MDEsICAgIDMsIDIxLCAgICAgLy8gVGFpaG8KKyAgICAgICAgIDcwNCwgICAgNSwgMTAsICAgICAvLyBLZWl1bgorICAgICAgICAgNzA4LCAgICAxLCAxMSwgICAgIC8vIFdhZG8KKyAgICAgICAgIDcxNSwgICAgOSwgIDIsICAgICAvLyBSZWlraQorICAgICAgICAgNzE3LCAgIDExLCAxNywgICAgIC8vIFlvcm8KKyAgICAgICAgIDcyNCwgICAgMiwgIDQsICAgICAvLyBKaW5raQorICAgICAgICAgNzI5LCAgICA4LCAgNSwgICAgIC8vIFRlbXB5bworICAgICAgICAgNzQ5LCAgICA0LCAxNCwgICAgIC8vIFRlbXB5by1rYW1wbworICAgICAgICAgNzQ5LCAgICA3LCAgMiwgICAgIC8vIFRlbXB5by1zaG9obworICAgICAgICAgNzU3LCAgICA4LCAxOCwgICAgIC8vIFRlbXB5by1ob2ppCisgICAgICAgICA3NjUsICAgIDEsICA3LCAgICAgLy8gVGVtcGhvLWppbmdvCisgICAgICAgICA3NjcsICAgIDgsIDE2LCAgICAgLy8gSmluZ28ta2VpdW4KKyAgICAgICAgIDc3MCwgICAxMCwgIDEsICAgICAvLyBIb2tpCisgICAgICAgICA3ODEsICAgIDEsICAxLCAgICAgLy8gVGVuLW8KKyAgICAgICAgIDc4MiwgICAgOCwgMTksICAgICAvLyBFbnJ5YWt1CisgICAgICAgICA4MDYsICAgIDUsIDE4LCAgICAgLy8gRGFpZG8KKyAgICAgICAgIDgxMCwgICAgOSwgMTksICAgICAvLyBLb25pbgorICAgICAgICAgODI0LCAgICAxLCAgNSwgICAgIC8vIFRlbmNobworICAgICAgICAgODM0LCAgICAxLCAgMywgICAgIC8vIFNob3dhCisgICAgICAgICA4NDgsICAgIDYsIDEzLCAgICAgLy8gS2FqbworICAgICAgICAgODUxLCAgICA0LCAyOCwgICAgIC8vIE5pbmp1CisgICAgICAgICA4NTQsICAgMTEsIDMwLCAgICAgLy8gU2Fpa28KKyAgICAgICAgIDg1NywgICAgMiwgMjEsICAgICAvLyBUZW5uYW4KKyAgICAgICAgIDg1OSwgICAgNCwgMTUsICAgICAvLyBKb2dhbgorICAgICAgICAgODc3LCAgICA0LCAxNiwgICAgIC8vIEdlbmtlaQorICAgICAgICAgODg1LCAgICAyLCAyMSwgICAgIC8vIE5pbm5hCisgICAgICAgICA4ODksICAgIDQsIDI3LCAgICAgLy8gS2FtcHlvCisgICAgICAgICA4OTgsICAgIDQsIDI2LCAgICAgLy8gU2hvdGFpCisgICAgICAgICA5MDEsICAgIDcsIDE1LCAgICAgLy8gRW5naQorICAgICAgICAgOTIzLCAgICA0LCAxMSwgICAgIC8vIEVuY2hvCisgICAgICAgICA5MzEsICAgIDQsIDI2LCAgICAgLy8gU2hvaGVpCisgICAgICAgICA5MzgsICAgIDUsIDIyLCAgICAgLy8gVGVuZ3lvCisgICAgICAgICA5NDcsICAgIDQsIDIyLCAgICAgLy8gVGVucnlha3UKKyAgICAgICAgIDk1NywgICAxMCwgMjcsICAgICAvLyBUZW50b2t1CisgICAgICAgICA5NjEsICAgIDIsIDE2LCAgICAgLy8gT3dhCisgICAgICAgICA5NjQsICAgIDcsIDEwLCAgICAgLy8gS29obworICAgICAgICAgOTY4LCAgICA4LCAxMywgICAgIC8vIEFubmEKKyAgICAgICAgIDk3MCwgICAgMywgMjUsICAgICAvLyBUZW5yb2t1CisgICAgICAgICA5NzMsICAgMTIsIDIwLCAgICAgLy8gVGVuLWVuCisgICAgICAgICA5NzYsICAgIDcsIDEzLCAgICAgLy8gSm9nZW4KKyAgICAgICAgIDk3OCwgICAxMSwgMjksICAgICAvLyBUZW5nZW4KKyAgICAgICAgIDk4MywgICAgNCwgMTUsICAgICAvLyBFaWthbgorICAgICAgICAgOTg1LCAgICA0LCAyNywgICAgIC8vIEthbm5hCisgICAgICAgICA5ODcsICAgIDQsICA1LCAgICAgLy8gRWktZW4KKyAgICAgICAgIDk4OSwgICAgOCwgIDgsICAgICAvLyBFaXNvCisgICAgICAgICA5OTAsICAgMTEsICA3LCAgICAgLy8gU2hvcnlha3UKKyAgICAgICAgIDk5NSwgICAgMiwgMjIsICAgICAvLyBDaG90b2t1CisgICAgICAgICA5OTksICAgIDEsIDEzLCAgICAgLy8gQ2hvaG8KKyAgICAgICAgMTAwNCwgICAgNywgMjAsICAgICAvLyBLYW5rbworICAgICAgICAxMDEyLCAgIDEyLCAyNSwgICAgIC8vIENob3dhCisgICAgICAgIDEwMTcsICAgIDQsIDIzLCAgICAgLy8gS2FubmluCisgICAgICAgIDEwMjEsICAgIDIsICAyLCAgICAgLy8gSmlhbgorICAgICAgICAxMDI0LCAgICA3LCAxMywgICAgIC8vIE1hbmp1CisgICAgICAgIDEwMjgsICAgIDcsIDI1LCAgICAgLy8gQ2hvZ2VuCisgICAgICAgIDEwMzcsICAgIDQsIDIxLCAgICAgLy8gQ2hvcnlha3UKKyAgICAgICAgMTA0MCwgICAxMSwgMTAsICAgICAvLyBDaG9reXUKKyAgICAgICAgMTA0NCwgICAxMSwgMjQsICAgICAvLyBLYW50b2t1CisgICAgICAgIDEwNDYsICAgIDQsIDE0LCAgICAgLy8gRWlzaG8KKyAgICAgICAgMTA1MywgICAgMSwgMTEsICAgICAvLyBUZW5naQorICAgICAgICAxMDU4LCAgICA4LCAyOSwgICAgIC8vIEtvaGVpCisgICAgICAgIDEwNjUsICAgIDgsICAyLCAgICAgLy8gSmlyeWFrdQorICAgICAgICAxMDY5LCAgICA0LCAxMywgICAgIC8vIEVua3l1CisgICAgICAgIDEwNzQsICAgIDgsIDIzLCAgICAgLy8gU2hvaG8KKyAgICAgICAgMTA3NywgICAxMSwgMTcsICAgICAvLyBTaG9yeWFrdQorICAgICAgICAxMDgxLCAgICAyLCAxMCwgICAgIC8vIEVpaG8KKyAgICAgICAgMTA4NCwgICAgMiwgIDcsICAgICAvLyBPdG9rdQorICAgICAgICAxMDg3LCAgICA0LCAgNywgICAgIC8vIEthbmppCisgICAgICAgIDEwOTQsICAgMTIsIDE1LCAgICAgLy8gS2FobworICAgICAgICAxMDk2LCAgIDEyLCAxNywgICAgIC8vIEVpY2hvCisgICAgICAgIDEwOTcsICAgMTEsIDIxLCAgICAgLy8gU2hvdG9rdQorICAgICAgICAxMDk5LCAgICA4LCAyOCwgICAgIC8vIEtvd2EKKyAgICAgICAgMTEwNCwgICAgMiwgMTAsICAgICAvLyBDaG9qaQorICAgICAgICAxMTA2LCAgICA0LCAgOSwgICAgIC8vIEthc2hvCisgICAgICAgIDExMDgsICAgIDgsICAzLCAgICAgLy8gVGVubmluCisgICAgICAgIDExMTAsICAgIDcsIDEzLCAgICAgLy8gVGVuLWVpCisgICAgICAgIDExMTMsICAgIDcsIDEzLCAgICAgLy8gRWlreXUKKyAgICAgICAgMTExOCwgICAgNCwgIDMsICAgICAvLyBHZW4tZWkKKyAgICAgICAgMTEyMCwgICAgNCwgMTAsICAgICAvLyBIb2FuCisgICAgICAgIDExMjQsICAgIDQsICAzLCAgICAgLy8gVGVuamkKKyAgICAgICAgMTEyNiwgICAgMSwgMjIsICAgICAvLyBEYWlqaQorICAgICAgICAxMTMxLCAgICAxLCAyOSwgICAgIC8vIFRlbnNobworICAgICAgICAxMTMyLCAgICA4LCAxMSwgICAgIC8vIENob3NobworICAgICAgICAxMTM1LCAgICA0LCAyNywgICAgIC8vIEhvZW4KKyAgICAgICAgMTE0MSwgICAgNywgMTAsICAgICAvLyBFaWppCisgICAgICAgIDExNDIsICAgIDQsIDI4LCAgICAgLy8gS29qaQorICAgICAgICAxMTQ0LCAgICAyLCAyMywgICAgIC8vIFRlbnlvCisgICAgICAgIDExNDUsICAgIDcsIDIyLCAgICAgLy8gS3l1YW4KKyAgICAgICAgMTE1MSwgICAgMSwgMjYsICAgICAvLyBOaW5wZWkKKyAgICAgICAgMTE1NCwgICAxMCwgMjgsICAgICAvLyBLeXVqdQorICAgICAgICAxMTU2LCAgICA0LCAyNywgICAgIC8vIEhvZ2VuCisgICAgICAgIDExNTksICAgIDQsIDIwLCAgICAgLy8gSGVpamkKKyAgICAgICAgMTE2MCwgICAgMSwgMTAsICAgICAvLyBFaXJ5YWt1CisgICAgICAgIDExNjEsICAgIDksICA0LCAgICAgLy8gT2hvCisgICAgICAgIDExNjMsICAgIDMsIDI5LCAgICAgLy8gQ2hva2FuCisgICAgICAgIDExNjUsICAgIDYsICA1LCAgICAgLy8gRWltYW4KKyAgICAgICAgMTE2NiwgICAgOCwgMjcsICAgICAvLyBOaW4tYW4KKyAgICAgICAgMTE2OSwgICAgNCwgIDgsICAgICAvLyBLYW8KKyAgICAgICAgMTE3MSwgICAgNCwgMjEsICAgICAvLyBTaG9hbgorICAgICAgICAxMTc1LCAgICA3LCAyOCwgICAgIC8vIEFuZ2VuCisgICAgICAgIDExNzcsICAgIDgsICA0LCAgICAgLy8gSmlzaG8KKyAgICAgICAgMTE4MSwgICAgNywgMTQsICAgICAvLyBZb3dhCisgICAgICAgIDExODIsICAgIDUsIDI3LCAgICAgLy8gSnVlaQorICAgICAgICAxMTg0LCAgICA0LCAxNiwgICAgIC8vIEdlbnJ5dWt1CisgICAgICAgIDExODUsICAgIDgsIDE0LCAgICAgLy8gQnVuamkKKyAgICAgICAgMTE5MCwgICAgNCwgMTEsICAgICAvLyBLZW5reXUKKyAgICAgICAgMTE5OSwgICAgNCwgMjcsICAgICAvLyBTaG9qaQorICAgICAgICAxMjAxLCAgICAyLCAxMywgICAgIC8vIEtlbm5pbgorICAgICAgICAxMjA0LCAgICAyLCAyMCwgICAgIC8vIEdlbmt5dQorICAgICAgICAxMjA2LCAgICA0LCAyNywgICAgIC8vIEtlbi1laQorICAgICAgICAxMjA3LCAgIDEwLCAyNSwgICAgIC8vIFNob2dlbgorICAgICAgICAxMjExLCAgICAzLCAgOSwgICAgIC8vIEtlbnJ5YWt1CisgICAgICAgIDEyMTMsICAgMTIsICA2LCAgICAgLy8gS2VucG8KKyAgICAgICAgMTIxOSwgICAgNCwgMTIsICAgICAvLyBTaG9reXUKKyAgICAgICAgMTIyMiwgICAgNCwgMTMsICAgICAvLyBKb28KKyAgICAgICAgMTIyNCwgICAxMSwgMjAsICAgICAvLyBHZW5uaW4KKyAgICAgICAgMTIyNSwgICAgNCwgMjAsICAgICAvLyBLYXJva3UKKyAgICAgICAgMTIyNywgICAxMiwgMTAsICAgICAvLyBBbnRlaQorICAgICAgICAxMjI5LCAgICAzLCAgNSwgICAgIC8vIEthbmtpCisgICAgICAgIDEyMzIsICAgIDQsICAyLCAgICAgLy8gSm9laQorICAgICAgICAxMjMzLCAgICA0LCAxNSwgICAgIC8vIFRlbXB1a3UKKyAgICAgICAgMTIzNCwgICAxMSwgIDUsICAgICAvLyBCdW5yeWFrdQorICAgICAgICAxMjM1LCAgICA5LCAxOSwgICAgIC8vIEthdGVpCisgICAgICAgIDEyMzgsICAgMTEsIDIzLCAgICAgLy8gUnlha3VuaW4KKyAgICAgICAgMTIzOSwgICAgMiwgIDcsICAgICAvLyBFbi1vCisgICAgICAgIDEyNDAsICAgIDcsIDE2LCAgICAgLy8gTmluamkKKyAgICAgICAgMTI0MywgICAgMiwgMjYsICAgICAvLyBLYW5nZW4KKyAgICAgICAgMTI0NywgICAgMiwgMjgsICAgICAvLyBIb2ppCisgICAgICAgIDEyNDksICAgIDMsIDE4LCAgICAgLy8gS2VuY2hvCisgICAgICAgIDEyNTYsICAgMTAsICA1LCAgICAgLy8gS29nZW4KKyAgICAgICAgMTI1NywgICAgMywgMTQsICAgICAvLyBTaG9rYQorICAgICAgICAxMjU5LCAgICAzLCAyNiwgICAgIC8vIFNob2dlbgorICAgICAgICAxMjYwLCAgICA0LCAxMywgICAgIC8vIEJ1bi1vCisgICAgICAgIDEyNjEsICAgIDIsIDIwLCAgICAgLy8gS29jaG8KKyAgICAgICAgMTI2NCwgICAgMiwgMjgsICAgICAvLyBCdW4tZWkKKyAgICAgICAgMTI3NSwgICAgNCwgMjUsICAgICAvLyBLZW5qaQorICAgICAgICAxMjc4LCAgICAyLCAyOSwgICAgIC8vIEtvYW4KKyAgICAgICAgMTI4OCwgICAgNCwgMjgsICAgICAvLyBTaG9vCisgICAgICAgIDEyOTMsICAgIDgsIDU1LCAgICAgLy8gRWluaW4KKyAgICAgICAgMTI5OSwgICAgNCwgMjUsICAgICAvLyBTaG9hbgorICAgICAgICAxMzAyLCAgIDExLCAyMSwgICAgIC8vIEtlbmdlbgorICAgICAgICAxMzAzLCAgICA4LCAgNSwgICAgIC8vIEthZ2VuCisgICAgICAgIDEzMDYsICAgMTIsIDE0LCAgICAgLy8gVG9rdWppCisgICAgICAgIDEzMDgsICAgMTAsICA5LCAgICAgLy8gRW5rZWkKKyAgICAgICAgMTMxMSwgICAgNCwgMjgsICAgICAvLyBPY2hvCisgICAgICAgIDEzMTIsICAgIDMsIDIwLCAgICAgLy8gU2hvd2EKKyAgICAgICAgMTMxNywgICAgMiwgIDMsICAgICAvLyBCdW5wbworICAgICAgICAxMzE5LCAgICA0LCAyOCwgICAgIC8vIEdlbm8KKyAgICAgICAgMTMyMSwgICAgMiwgMjMsICAgICAvLyBHZW5reW8KKyAgICAgICAgMTMyNCwgICAxMiwgIDksICAgICAvLyBTaG9jaHUKKyAgICAgICAgMTMyNiwgICAgNCwgMjYsICAgICAvLyBLYXJla2kKKyAgICAgICAgMTMyOSwgICAgOCwgMjksICAgICAvLyBHZW50b2t1CisgICAgICAgIDEzMzEsICAgIDgsICA5LCAgICAgLy8gR2Vua28KKyAgICAgICAgMTMzNCwgICAgMSwgMjksICAgICAvLyBLZW1tdQorICAgICAgICAxMzM2LCAgICAyLCAyOSwgICAgIC8vIEVuZ2VuCisgICAgICAgIDEzNDAsICAgIDQsIDI4LCAgICAgLy8gS29rb2t1CisgICAgICAgIDEzNDYsICAgMTIsICA4LCAgICAgLy8gU2hvaGVpCisgICAgICAgIDEzNzAsICAgIDcsIDI0LCAgICAgLy8gS2VudG9rdQorICAgICAgICAxMzcyLCAgICA0LCAgMSwgICAgIC8vIEJ1bmNoXHUwMTY5CisgICAgICAgIDEzNzUsICAgIDUsIDI3LCAgICAgLy8gVGVuanUKKyAgICAgICAgMTM3OSwgICAgMywgMjIsICAgICAvLyBLb3J5YWt1CisgICAgICAgIDEzODEsICAgIDIsIDEwLCAgICAgLy8gS293YQorICAgICAgICAxMzg0LCAgICA0LCAyOCwgICAgIC8vIEdlbmNoXHUwMTY5CisgICAgICAgIDEzODQsICAgIDIsIDI3LCAgICAgLy8gTWVpdG9rdQorICAgICAgICAxMzg3LCAgICA4LCAyMywgICAgIC8vIEtha2VpCisgICAgICAgIDEzODksICAgIDIsICA5LCAgICAgLy8gS29vCisgICAgICAgIDEzOTAsICAgIDMsIDI2LCAgICAgLy8gTWVpdG9rdQorICAgICAgICAxMzk0LCAgICA3LCAgNSwgICAgIC8vIE9laQorICAgICAgICAxNDI4LCAgICA0LCAyNywgICAgIC8vIFNob2NobworICAgICAgICAxNDI5LCAgICA5LCAgNSwgICAgIC8vIEVpa3lvCisgICAgICAgIDE0NDEsICAgIDIsIDE3LCAgICAgLy8gS2FraXRzdQorICAgICAgICAxNDQ0LCAgICAyLCAgNSwgICAgIC8vIEJ1bi1hbgorICAgICAgICAxNDQ5LCAgICA3LCAyOCwgICAgIC8vIEhvdG9rdQorICAgICAgICAxNDUyLCAgICA3LCAyNSwgICAgIC8vIEt5b3Rva3UKKyAgICAgICAgMTQ1NSwgICAgNywgMjUsICAgICAvLyBLb3NobworICAgICAgICAxNDU3LCAgICA5LCAyOCwgICAgIC8vIENob3Jva3UKKyAgICAgICAgMTQ2MCwgICAxMiwgMjEsICAgICAvLyBLYW5zaG8KKyAgICAgICAgMTQ2NiwgICAgMiwgMjgsICAgICAvLyBCdW5zaG8KKyAgICAgICAgMTQ2NywgICAgMywgIDMsICAgICAvLyBPbmluCisgICAgICAgIDE0NjksICAgIDQsIDI4LCAgICAgLy8gQnVubWVpCisgICAgICAgIDE0ODcsICAgIDcsIDI5LCAgICAgLy8gQ2hva3lvCisgICAgICAgIDE0ODksICAgIDgsIDIxLCAgICAgLy8gRW50b2t1CisgICAgICAgIDE0OTIsICAgIDcsIDE5LCAgICAgLy8gTWVpbworICAgICAgICAxNTAxLCAgICAyLCAyOSwgICAgIC8vIEJ1bmtpCisgICAgICAgIDE1MDQsICAgIDIsIDMwLCAgICAgLy8gRWlzaG8KKyAgICAgICAgMTUyMSwgICAgOCwgMjMsICAgICAvLyBUYWllaQorICAgICAgICAxNTI4LCAgICA4LCAyMCwgICAgIC8vIEt5b3Jva3UKKyAgICAgICAgMTUzMiwgICAgNywgMjksICAgICAvLyBUZW5tb24KKyAgICAgICAgMTU1NSwgICAxMCwgMjMsICAgICAvLyBLb2ppCisgICAgICAgIDE1NTgsICAgIDIsIDI4LCAgICAgLy8gRWlyb2t1CisgICAgICAgIDE1NzAsICAgIDQsIDIzLCAgICAgLy8gR2Vua2kKKyAgICAgICAgMTU3MywgICAgNywgMjgsICAgICAvLyBUZW5zaG8KKyAgICAgICAgMTU5MiwgICAxMiwgIDgsICAgICAvLyBCdW5yb2t1CisgICAgICAgIDE1OTYsICAgMTAsIDI3LCAgICAgLy8gS2VpY2hvCisgICAgICAgIDE2MTUsICAgIDcsIDEzLCAgICAgLy8gR2Vud2EKKyAgICAgICAgMTYyNCwgICAgMiwgMzAsICAgICAvLyBLYW4tZWkKKyAgICAgICAgMTY0NCwgICAxMiwgMTYsICAgICAvLyBTaG9obworICAgICAgICAxNjQ4LCAgICAyLCAxNSwgICAgIC8vIEtlaWFuCisgICAgICAgIDE2NTIsICAgIDksIDE4LCAgICAgLy8gU2hvbworICAgICAgICAxNjU1LCAgICA0LCAxMywgICAgIC8vIE1laXJ5YWt1CisgICAgICAgIDE2NTgsICAgIDcsIDIzLCAgICAgLy8gTWFuamkKKyAgICAgICAgMTY2MSwgICAgNCwgMjUsICAgICAvLyBLYW5idW4KKyAgICAgICAgMTY3MywgICAgOSwgMjEsICAgICAvLyBFbnBvCisgICAgICAgIDE2ODEsICAgIDksIDI5LCAgICAgLy8gVGVud2EKKyAgICAgICAgMTY4NCwgICAgMiwgMjEsICAgICAvLyBKb2t5bworICAgICAgICAxNjg4LCAgICA5LCAzMCwgICAgIC8vIEdlbnJva3UKKyAgICAgICAgMTcwNCwgICAgMywgMTMsICAgICAvLyBIb2VpCisgICAgICAgIDE3MTEsICAgIDQsIDI1LCAgICAgLy8gU2hvdG9rdQorICAgICAgICAxNzE2LCAgICA2LCAyMiwgICAgIC8vIEt5b2hvCisgICAgICAgIDE3MzYsICAgIDQsIDI4LCAgICAgLy8gR2VuYnVuCisgICAgICAgIDE3NDEsICAgIDIsIDI3LCAgICAgLy8gS2FucG8KKyAgICAgICAgMTc0NCwgICAgMiwgMjEsICAgICAvLyBFbmt5bworICAgICAgICAxNzQ4LCAgICA3LCAxMiwgICAgIC8vIEthbi1lbgorICAgICAgICAxNzUxLCAgIDEwLCAyNywgICAgIC8vIEhvcnlha3UKKyAgICAgICAgMTc2NCwgICAgNiwgIDIsICAgICAvLyBNZWl3YQorICAgICAgICAxNzcyLCAgIDExLCAxNiwgICAgIC8vIEFuLWVpCisgICAgICAgIDE3ODEsICAgIDQsICAyLCAgICAgLy8gVGVubWVpCisgICAgICAgIDE3ODksICAgIDEsIDI1LCAgICAgLy8gS2Fuc2VpCisgICAgICAgIDE4MDEsICAgIDIsICA1LCAgICAgLy8gS3lvd2EKKyAgICAgICAgMTgwNCwgICAgMiwgMTEsICAgICAvLyBCdW5rYQorICAgICAgICAxODE4LCAgICA0LCAyMiwgICAgIC8vIEJ1bnNlaQorICAgICAgICAxODMwLCAgIDEyLCAxMCwgICAgIC8vIFRlbnBvCisgICAgICAgIDE4NDQsICAgMTIsICAyLCAgICAgLy8gS29rYQorICAgICAgICAxODQ4LCAgICAyLCAyOCwgICAgIC8vIEthZWkKKyAgICAgICAgMTg1NCwgICAxMSwgMjcsICAgICAvLyBBbnNlaQorICAgICAgICAxODYwLCAgICAzLCAxOCwgICAgIC8vIE1hbi1lbgorICAgICAgICAxODYxLCAgICAyLCAxOSwgICAgIC8vIEJ1bmt5dQorICAgICAgICAxODY0LCAgICAyLCAyMCwgICAgIC8vIEdlbmppCisgICAgICAgIDE4NjUsICAgIDQsICA3LCAgICAgLy8gS2VpbworICAgICAgICAxODY4LCAgICA5LCAgOCwgICAgIC8vIE1laWppCisgICAgICAgIDE5MTIsICAgIDcsIDMwLCAgICAgLy8gVGFpc2hvCisgICAgICAgIDE5MjYsICAgMTIsIDI1LCAgICAgLy8gU2hvd2EKKyAgICAgICAgMTk4OSwgICAgMSwgIDgsICAgICAvLyBIZWlzZWkKKyAgICB9OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHVibGljIGNvbnN0YW50cyBmb3Igc29tZSBvZiB0aGUgcmVjZW50IGVyYXMgdGhhdCBmb2xrcyBtaWdodCB1c2UuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIENvbnN0YW50IGZvciB0aGUgY3VycmVudCBlcmEuICBUaGlzIG11c3QgYmUgcmVndWxhcmx5IHVwZGF0ZWQuCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgQ1VSUkVOVF9FUkEgPSAoRVJBUy5sZW5ndGggLyAzKSAtIDE7CisgICAgCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIFNlcHQuIDgsIDE4NjggQUQuCisgICAgICogQHN0YWJsZSAgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBNRUlKSSA9IENVUlJFTlRfRVJBIC0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBKdWx5IDMwLCAxOTEyIEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgVEFJU0hPID0gQ1VSUkVOVF9FUkEgLSAyOworICAgIAorICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBEZWMuIDI1LCAxOTI2IEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgU0hPV0EgPSBDVVJSRU5UX0VSQSAtIDE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIHRoZSBlcmEgc3RhcnRpbmcgb24gSmFuLiA3LCAxOTg5IEFELiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgSEVJU0VJID0gQ1VSUkVOVF9FUkE7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0aWFsIGxpbWl0cyB0YWJsZSBmb3IgbGltaXRzIHRoYXQgZGlmZmVyIGZyb20gR3JlZ29yaWFuQ2FsZW5kYXIncy4KKyAgICAgKiBUaGUgWUVBUiBtYXggbGltaXRzIGFyZSBmaWxsZWQgaW4gdGhlIGZpcnN0IHRpbWUgdGhleSBhcmUgbmVlZGVkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICAgICAgTGVhc3QgICAgICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICAgICAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgQ1VSUkVOVF9FUkEsIENVUlJFTlRfRVJBIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAgICAgIDAsICAgICAgICAgICAwIH0sIC8vIFlFQVIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBZRUFSX0xJTUlUX0tOT1dOID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBHcmVnb3JpYW5DYWxlbmRhci4gIFdlIHNob3VsZCByZWFsbHkgaGFuZGxlIFlFQVJfV09ZIGFuZAorICAgICAqIEVYVEVOREVEX1lFQVIgaGVyZSB0b28gdG8gaW1wbGVtZW50IHRoZSAxLi41MDAwMDAwIHJhbmdlLCBidXQgaXQncworICAgICAqIG5vdCBjcml0aWNhbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgRVJBOgorICAgICAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICAgICAgaWYgKCFZRUFSX0xJTUlUX0tOT1dOKSB7CisgICAgICAgICAgICAgICAgaW50IG1pbiA9IEVSQVNbM10gLSBFUkFTWzBdOworICAgICAgICAgICAgICAgIGludCBtYXggPSBtaW47CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT02OyBpPEVSQVMubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gRVJBU1tpXSAtIEVSQVNbaS0zXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGQgPCBtaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IGQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGQgPiBtYXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IGQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTElNSVRTW2ZpZWxkXVtMRUFTVF9NQVhJTVVNXSA9ICsrbWluOyAvLyAxLWJhc2VkCisgICAgICAgICAgICAgICAgTElNSVRTW2ZpZWxkXVtNQVhJTVVNXSA9ICsrbWF4OyAvLyAxLWJhc2VkCisKKyAgICAgICAgICAgICAgICBZRUFSX0xJTUlUX0tOT1dOPXRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUdldExpbWl0KGZpZWxkLCBsaW1pdFR5cGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiamFwYW5lc2UiOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXBhbmVzZUNhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSmFwYW5lc2UiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Mb2NhbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Mb2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNjYxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0xvY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIEEgY2xhc3MgZm9yIGFjY2Vzc2luZyBtaXNjZWxsZW5lb3VzIGRhdGEgaW4gdGhlIGxvY2FsZSBidW5kbGVzCisgKiBAYXV0aG9yIHJhbQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBMb2NhbGVEYXRhIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVhFTVBMQVJfQ0hBUlMgICAgICA9ICJFeGVtcGxhckNoYXJhY3RlcnMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNRUFTVVJFTUVOVF9TWVNURU0gID0gIk1lYXN1cmVtZW50U3lzdGVtIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFQRVJfU0laRSAgICAgICAgICA9ICJQYXBlclNpemUiOworICAgIHByaXZhdGUgYm9vbGVhbiBub1N1YnN0aXR1dGU7CisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBFWFR5cGUgZm9yIHtAbGluayAjZ2V0RXhlbXBsYXJTZXQoaW50LCBpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTX1NUQU5EQVJEID0gMDsKKworICAgIC8qKgorICAgICAqIEVYVHlwZSBmb3Ige0BsaW5rICNnZXRFeGVtcGxhclNldChpbnQsIGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVNfQVVYSUxJQVJZID0gMTsKKworICAgIC8qKgorICAgICAqIENvdW50IG9mIEVYVHlwZXMgZm9yIHtAbGluayAjZ2V0RXhlbXBsYXJTZXQoaW50LCBpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTX0NPVU5UID0gMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgdHlwZSBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVU9UQVRJT05fU1RBUlQgPSAwOworCisgICAgLyoqCisgICAgICogRGVsaW1pdGVyIHR5cGUgZm9yIHtAbGluayAjZ2V0RGVsaW1pdGVyKGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX0VORCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgdHlwZSBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFRfUVVPVEFUSU9OX1NUQVJUID0gMjsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciB0eXBlIGZvciB7QGxpbmsgI2dldERlbGltaXRlcihpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMVF9RVU9UQVRJT05fRU5EID0gMzsKKworICAgIC8qKgorICAgICAqIENvdW50IG9mIGRlbGltaXRlciB0eXBlcyBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUxJTUlURVJfQ09VTlQgPSA0OworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGRlZmF1bHQgY29uc3RydWN0aW9uCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgTG9jYWxlRGF0YSgpe30KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBleGVtcGxhciBjaGFyYWN0ZXJzIGZvciBhIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgICAgTG9jYWxlIGZvciB3aGljaCB0aGUgZXhlbXBsYXIgY2hhcmFjdGVyIHNldAorICAgICAqICAgICAgICAgICAgICAgICAgaXMgdG8gYmUgcmV0cmlldmVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQml0bWFzayBmb3Igb3B0aW9ucyB0byBhcHBseSB0byB0aGUgZXhlbXBsYXIgcGF0dGVybi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFNwZWNpZnkgemVybyB0byByZXRyaWV2ZSB0aGUgZXhlbXBsYXIgc2V0IGFzIGl0IGlzCisgICAgICogICAgICAgICAgICAgICAgICBkZWZpbmVkIGluIHRoZSBsb2NhbGUgZGF0YS4gIFNwZWNpZnkKKyAgICAgKiAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQuQ0FTRSB0byByZXRyaWV2ZSBhIGNhc2UtZm9sZGVkIGV4ZW1wbGFyCisgICAgICogICAgICAgICAgICAgICAgICBzZXQuICBTZWUge0BsaW5rIFVuaWNvZGVTZXQjYXBwbHlQYXR0ZXJuKFN0cmluZywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludCl9IGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucy4gIFRoZQorICAgICAqICAgICAgICAgICAgICAgICAgSUdOT1JFX1NQQUNFIGJpdCBpcyBhbHdheXMgc2V0LCByZWdhcmRsZXNzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgdmFsdWUgb2YgJ29wdGlvbnMnLgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIHNldCBvZiBleGVtcGxhciBjaGFyYWN0ZXJzIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBnZXRFeGVtcGxhclNldChVTG9jYWxlIGxvY2FsZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGJ1bmRsZS5nZXRTdHJpbmcoRVhFTVBMQVJfQ0hBUlMpOworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQocGF0dGVybiwgVW5pY29kZVNldC5JR05PUkVfU1BBQ0UgfCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IG9mIGV4ZW1wbGFyIGNoYXJhY3RlcnMgZm9yIGEgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBCaXRtYXNrIGZvciBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBleGVtcGxhciBwYXR0ZXJuLgorICAgICAqICAgICAgICAgICAgICAgICAgU3BlY2lmeSB6ZXJvIHRvIHJldHJpZXZlIHRoZSBleGVtcGxhciBzZXQgYXMgaXQgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGxvY2FsZSBkYXRhLiAgU3BlY2lmeQorICAgICAqICAgICAgICAgICAgICAgICAgVW5pY29kZVNldC5DQVNFIHRvIHJldHJpZXZlIGEgY2FzZS1mb2xkZWQgZXhlbXBsYXIKKyAgICAgKiAgICAgICAgICAgICAgICAgIHNldC4gIFNlZSB7QGxpbmsgVW5pY29kZVNldCNhcHBseVBhdHRlcm4oU3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgaW50KX0gZm9yIGEgY29tcGxldGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zLiAgVGhlCisgICAgICogICAgICAgICAgICAgICAgICBJR05PUkVfU1BBQ0UgYml0IGlzIGFsd2F5cyBzZXQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICAgICogICAgICAgICAgICAgICAgICB2YWx1ZSBvZiAnb3B0aW9ucycuCisgICAgICogQHBhcmFtIGV4dHlwZSAgICAgIFRoZSB0eXBlIG9mIGV4ZW1wbGFyIHNldCB0byBiZSByZXRyaWV2ZWQsCisgICAgICogICAgICAgICAgICAgICAgICBFU19TVEFOREFSRCBvciBFU19BVVhJTElBUlkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBzZXQgb2YgZXhlbXBsYXIgY2hhcmFjdGVycyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEV4ZW1wbGFyU2V0KGludCBvcHRpb25zLCBpbnQgZXh0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBleGVtcGxhclNldFR5cGVzID0geyAiRXhlbXBsYXJDaGFyYWN0ZXJzIiwgIkF1eEV4ZW1wbGFyQ2hhcmFjdGVycyIgfTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldChleGVtcGxhclNldFR5cGVzW2V4dHlwZV0pOworICAgIAorICAgICAgICAgICAgaWYgKCBub1N1YnN0aXR1dGUgJiYgKHN0cmluZ0J1bmRsZS5nZXRMb2FkaW5nU3RhdHVzKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSApCisgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAKKyAgICAgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldChzdHJpbmdCdW5kbGUuZ2V0U3RyaW5nKCksIFVuaWNvZGVTZXQuSUdOT1JFX1NQQUNFIHwgb3B0aW9ucyk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXh0eXBlPT1Mb2NhbGVEYXRhLkVTX0FVWElMSUFSWSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIExvY2FsZURhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgVUxvY2FsZSBzcGVjaWZpZWQgaW4gbG9jYWxlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIExvY2FsZSB3aXRoIHRoaWNoIHRoZSBsb2NhbGUgZGF0YSBvYmplY3QgaXMgYXNzb2NpYXRlZC4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVEYXRhIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgTG9jYWxlRGF0YSBsZCA9IG5ldyBMb2NhbGVEYXRhKCk7CisgICAgICAgbGQuYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUgKTsKKyAgICAgICBsZC5ub1N1YnN0aXR1dGUgPSBmYWxzZTsKKyAgICAgICByZXR1cm4gbGQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTG9jYWxlRGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBBIGxvY2FsZSBkYXRhIG9iamVjdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlRGF0YSBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICByZXR1cm4gTG9jYWxlRGF0YS5nZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgIm5vIHN1YnN0aXR1dGUiIGJlaGF2aW9yIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHNldHRpbmcJVmFsdWUgZm9yIHRoZSBubyBzdWJzdGl0dXRlIGJlaGF2aW9yLiAgSWYgVFJVRSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIG1ldGhvZHMgb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3Qgd2lsbCByZXR1cm4KKyAgICAgKiAgICAgICAgICAgICAgICAgIGFuIGVycm9yIHdoZW4gbm8gZGF0YSBpcyBhdmFpbGFibGUgZm9yIHRoYXQgbWV0aG9kLAorICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gdGhlIGxvY2FsZSBJRCBzdXBwbGllZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROb1N1YnN0aXR1dGUoYm9vbGVhbiBzZXR0aW5nKSB7CisgICAgICAgbm9TdWJzdGl0dXRlID0gc2V0dGluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSAibm8gc3Vic3RpdHV0ZSIgYmVoYXZpb3Igb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFZhbHVlIGZvciB0aGUgbm8gc3Vic3RpdHV0ZSBiZWhhdmlvci4gIElmIFRSVUUsCisgICAgICogICAgICAgICAgICAgICAgICBtZXRob2RzIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0IHdpbGwgcmV0dXJuCisgICAgICogICAgICAgICAgICAgICAgICBhbiBlcnJvciB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIHRoZSBsb2NhbGUgSUQgc3VwcGxpZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Tm9TdWJzdGl0dXRlKCkgeworICAgICAgIHJldHVybiBub1N1YnN0aXR1dGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGEgZGVsaW1pdGVyIHN0cmluZyBmcm9tIHRoZSBsb2NhbGUgZGF0YS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlICAgICAgVGhlIHR5cGUgb2YgZGVsaW1pdGVyIHN0cmluZyBkZXNpcmVkLiAgQ3VycmVudGx5LAorICAgICAqICAgICAgICAgICAgICAgICAgdGhlIHZhbGlkIGNob2ljZXMgYXJlIFFVT1RBVElPTl9TVEFSVCwgUVVPVEFUSU9OX0VORCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEFMVF9RVU9UQVRJT05fU1RBUlQsIG9yIEFMVF9RVU9UQVRJT05fRU5ELgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGRlc2lyZWQgZGVsaW1pdGVyIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVsaW1pdGVyKGludCB0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBkZWxpbWl0ZXJUeXBlcyA9IHsgInF1b3RhdGlvblN0YXJ0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInF1b3RhdGlvbkVuZCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25TdGFydCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25FbmQiIH07CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldCgiZGVsaW1pdGVycyIpLmdldChkZWxpbWl0ZXJUeXBlc1t0eXBlXSk7CisKKyAgICAgICAgaWYgKCBub1N1YnN0aXR1dGUgJiYgKHN0cmluZ0J1bmRsZS5nZXRMb2FkaW5nU3RhdHVzKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSApCisgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nIChzdHJpbmdCdW5kbGUuZ2V0U3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIGZvciByZXByZXNlbnRpbmcgdGhlIG1lYXN1cmVtZW50IHN5c3RlbXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBNZWFzdXJlbWVudFN5c3RlbXsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBNZWFzdXJlbWVudCBzeXN0ZW0gc3BlY2lmaWVkIGJ5IExlIFN5c3QmI3gwMEU4O21lIEludGVybmF0aW9uYWwgZCdVbml0JiN4MDBFOTtzIChTSSkKKyAgICAgICAgICogb3RoZXJ3aXNlIGtub3duIGFzIE1ldHJpYyBzeXN0ZW0uIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTWVhc3VyZW1lbnRTeXN0ZW0gU0kgPSBuZXcgTWVhc3VyZW1lbnRTeXN0ZW0oMCk7CisgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogTWVhc3VyZW1lbnQgc3lzdGVtIGZvbGxvd2VkIGluIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EuIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1lYXN1cmVtZW50U3lzdGVtIFVTID0gbmV3IE1lYXN1cmVtZW50U3lzdGVtKDEpOworICAgIAorICAgICAgICBwcml2YXRlIGludCBzeXN0ZW1JRDsKKyAgICAgICAgcHJpdmF0ZSBNZWFzdXJlbWVudFN5c3RlbShpbnQgaWQpeworICAgICAgICAgICAgc3lzdGVtSUQgPSBpZDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbHMoaW50IGlkKXsKKyAgICAgICAgICAgIHJldHVybiBzeXN0ZW1JRCA9PSBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB1c2VkIGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5IHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgICAgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB0byBiZSByZXRyaWV2ZWQuCisgICAgICogQHJldHVybiBNZWFzdXJlbWVudFN5c3RlbSB0aGUgbWVhc3VyZW1lbnQgc3lzdGVtIHVzZWQgaW4gdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1lYXN1cmVtZW50U3lzdGVtIGdldE1lYXN1cmVtZW50U3lzdGVtKFVMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzeXNCdW5kbGUgPSBidW5kbGUuZ2V0KE1FQVNVUkVNRU5UX1NZU1RFTSk7CisgICAgICAgIAorICAgICAgICBpbnQgc3lzdGVtID0gc3lzQnVuZGxlLmdldEludCgpOworICAgICAgICBpZihNZWFzdXJlbWVudFN5c3RlbS5VUy5lcXVhbHMoc3lzdGVtKSl7CisgICAgICAgICAgICByZXR1cm4gTWVhc3VyZW1lbnRTeXN0ZW0uVVM7CisgICAgICAgIH0KKyAgICAgICAgaWYoTWVhc3VyZW1lbnRTeXN0ZW0uU0kuZXF1YWxzKHN5c3RlbSkpeworICAgICAgICAgICAgcmV0dXJuIE1lYXN1cmVtZW50U3lzdGVtLlNJOworICAgICAgICB9CisgICAgICAgIC8vIHJldHVybiBudWxsIGlmIHRoZSBvYmplY3QgaXMgbnVsbCBvciBpcyBub3QgYW4gaW5zdGFuY2UKKyAgICAgICAgLy8gb2YgaW50ZWdlciBpbmRpY2F0aW5nIGFuIGVycm9yCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvZiBsZXR0ZXIgaGVhZCAKKyAgICAgKiB1c2VkIGluIHRoZSBjb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXBlclNpemV7CisgICAgICAgIHByaXZhdGUgaW50IGhlaWdodDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgd2lkdGg7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFBhcGVyU2l6ZShpbnQgaCwgaW50IHcpeworICAgICAgICAgICAgaGVpZ2h0ID0gaDsKKyAgICAgICAgICAgIHdpZHRoID0gdzsKKyAgICAgICAgfQorICAgICAgICAvKiogCisgICAgICAgICAqIFJldHJ1bnMgdGhlIGhlaWdodCBvZiB0aGUgcGFwZXIKKyAgICAgICAgICogQHJldHVybiB0aGUgaGVpZ2h0IAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCl7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiBodGUgcGFwZXIKKyAgICAgICAgICogQHJldHVybiB0aGUgd2lkdGgKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldFdpZHRoKCl7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiBwYXBlciB1c2VkIGluIHRoZSBsb2NhbGUuIFRoZSBwYXBlciBzaXplcyByZXR1cm5lZCBhcmUgYWx3YXlzIGluIAorICAgICAqIDxlbT4gbWlsbGktbWV0ZXJzPGVtPi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBtZWFzdXJlbWVudCBzeXN0ZW0gdG8gYmUgcmV0cmlldmVkLiAKKyAgICAgKiBAcmV0dXJuIFRoZSBwYXBlciBzaXplIHVzZWQgaW4gdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFwZXJTaXplIGdldFBhcGVyU2l6ZShVTG9jYWxlIGxvY2FsZSl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gYnVuZGxlLmdldChQQVBFUl9TSVpFKTsKKyAgICAgICAgaW50W10gc2l6ZSA9IG9iai5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQYXBlclNpemUoc2l6ZVswXSwgc2l6ZVsxXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNWMzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9NZWFzdXJlLmphdmEKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDIwLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5sYW5nLk51bWJlcjsKKworLyoqCisgKiBBbiBhbW91bnQgb2YgYSBzcGVjaWZpZWQgdW5pdCwgY29uc2lzdGluZyBvZiBhIE51bWJlciBhbmQgYSBVbml0LgorICogRm9yIGV4YW1wbGUsIGEgbGVuZ3RoIG1lYXN1cmUgY29uc2lzdHMgb2YgYSBOdW1iZXIgYW5kIGEgbGVuZ3RoCisgKiB1bml0LCBzdWNoIGFzIGZlZXQgb3IgbWV0ZXJzLiAgVGhpcyBpcyBhbiBhYnN0cmFjdCBjbGFzcy4KKyAqIFN1YmNsYXNzZXMgc3BlY2lmeSBhIGNvbmNyZXRlIFVuaXQgdHlwZS4KKyAqCisgKiA8cD5NZWFzdXJlIG9iamVjdHMgYXJlIHBhcnNlZCBhbmQgZm9ybWF0dGVkIGJ5IHN1YmNsYXNzZXMgb2YKKyAqIE1lYXN1cmVGb3JtYXQuCisgKgorICogPHA+TWVhc3VyZSBvYmplY3RzIGFyZSBpbW11dGFibGUuCisgKgorICogQHNlZSBqYXZhLmxhbmcuTnVtYmVyCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuTWVhc3VyZVVuaXQKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5NZWFzdXJlRm9ybWF0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAzLjAKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lYXN1cmUgeworICAgIAorICAgIHByaXZhdGUgTnVtYmVyIG51bWJlcjsKKworICAgIHByaXZhdGUgTWVhc3VyZVVuaXQgdW5pdDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGdpdmVuIGEgbnVtYmVyIGFuZCBhIHVuaXQuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgbnVtYmVyCisgICAgICogQHBhcmFtIHVuaXQgdGhlIHVuaXQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTWVhc3VyZShOdW1iZXIgbnVtYmVyLCBNZWFzdXJlVW5pdCB1bml0KSB7CisgICAgICAgIGlmIChudW1iZXIgPT0gbnVsbCB8fCB1bml0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMubnVtYmVyID0gbnVtYmVyOworICAgICAgICB0aGlzLnVuaXQgPSB1bml0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBlcXVhbCB0byB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAob2JqID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTWVhc3VyZSBtID0gKE1lYXN1cmUpIG9iajsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXIuZXF1YWxzKG0ubnVtYmVyKSAmJiB1bml0LmVxdWFscyhtLnVuaXQpOworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGhhc2hjb2RlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgMzItYml0IGhhc2gKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyLmhhc2hDb2RlKCkgXiB1bml0Lmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGNvbnNpc3Rpbmcgb2YgdGhlIElTTyBjdXJyZW5jeQorICAgICAqIGNvZGUgdG9nZXRoZXIgd2l0aCB0aGUgbnVtZXJpYyBhbW91bnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyLnRvU3RyaW5nKCkgKyAnICcgKyB1bml0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgTnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE51bWJlciBnZXROdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdW5pdCBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgVW5pdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBNZWFzdXJlVW5pdCBnZXRVbml0KCkgeworICAgICAgICByZXR1cm4gdW5pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9NZWFzdXJlVW5pdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWI4Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCAyMCwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiBBIHVuaXQgc3VjaCBhcyBsZW5ndGgsIG1hc3MsIHZvbHVtZSwgY3VycmVuY3ksIGV0Yy4gIEEgdW5pdCBpcworICogY291cGxlZCB3aXRoIGEgbnVtZXJpYyBhbW91bnQgdG8gcHJvZHVjZSBhIE1lYXN1cmUuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLk1lYXN1cmUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDMuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVhc3VyZVVuaXQgeworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBNZWFzdXJlVW5pdCgpIHt9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvT3ZlcmxheUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvT3ZlcmxheUJ1bmRsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlYTU0MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEKQEAgLTAsMCArMSwxNzMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQSBSZXNvdXJjZUJ1bmRsZSB0aGF0IG92ZXJsYXlzIG9uZSBoaWVyYXJjaHkgYXRvcCBhbm90aGVyLiAgVGhpcyBpcworICogYmVzdCBleHBsYWluZWQgYnkgZXhhbXBsZS4gIFN1cHBvc2Ugb25lIHdhbnRzIHRvIHVzZSB0aGUKKyAqIHJlc291cmNlIGhpYXJhcmNoeSAoaW4gSkRLIDEuMiBhbmQgMS4zLCBidXQgbm90IDEuNCkgYXQgCisgKiAiamF2YS50ZXh0LnJlc291cmNlcy5Mb2NhbGVFbGVtZW50cyIsIGJ1dCBvbmUgd2FudHMgdG8gdXNlCisgKiBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlICJOdW1iZXJQYXR0ZXJucyIgcmVzb3VyY2UgaW4gdGhlCisgKiBmcl9GUiBsb2NhbGUuICBPbmUgd2F5IHRvIGRvIHRoaXMgaXMgdG8gYWRkIHNwZWNpYWwgY2FzZSBjb2RlCisgKiB0byB0aGUgbG9va3VwIG9wZXJhdGlvbiB0byBjaGVjayBmb3IgZnJfRlIgYW5kIHRoZSBrZXkKKyAqICJOdW1iZXJQYXR0ZXJucyIsIGFuZCBpbiB0aGF0IGNhc2UsIGxvYWQgdXAgY3VzdG9tIGRhdGEuICBIb3dldmVyLAorICogdGhpcyBiZWNvbWVzIHVud2llbGR5IGFuZCBwbGFjZXMgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIGVmZmVjdGl2ZSByZXNvdXJjZSBoaWVyYXJjaHkgaW50byB0aGUgY29kZS4KKyAqCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IGxheWVyaW5nIGFub3RoZXIKKyAqIGhpZXJhcmNoeSwgZS5nLCAiY29tLmFjbWUucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzIiwgb24gdG9wIG9mIGEKKyAqIGJhc2UgaGllcmFyY2h5LiAgV2hlbiBhIHJlc291cmNlIGlzIHJlcXVlc3RlZCwgaXQgaXMgZmlyc3Qgc291Z2h0CisgKiBpbiB0aGUgb3ZlcmxheSBoaWVyYXJjaHksIGFuZCBpZiBub3QgZm91bmQgdGhlcmUsIGl0IGlzIHNvdWdodCBpbgorICogdGhlIGJhc2UgaGllcmFyY2h5LiAgTXVsdGlwbGUgb3ZlcmxheXMgYXJlIHN1cHBvcnRlZCwgYnV0IGluCisgKiBwcmFjdGljZSBvbmUgaXMgdXN1YWxseSBzdWZmaWNpZW50LgorICogCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBhbHNvIGFkZHJlc3NlcyB0aGUgcHJvYmxlbSBvZiBjb3VudHJ5LW9yaWVudGVkCisgKiBkYXRhLiAgVG8gc3BlY2lmeSB0aGUgZGVmYXVsdCBkYXRhIGZvciBhIGxhbmd1YWdlLCBvbmUganVzdCBzZXRzCisgKiB0aGUgbGFuZ3VhZ2UgcmVzb3VyY2UgYnVuZGxlIGRhdGEuICBIb3dldmVyLCBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0CisgKiBkYXRhIGZvciBhIGNvdW50cnkgdXNpbmcgdGhlIHN0YW5kYXJkIFJlc291cmNlQnVuZGxlIG1lY2hhbmlzbSBpcworICogaW1wb3NzaWJsZS4gIFRoZSBPdmVybGF5QnVuZGxlIHJlY29nbml6ZXMgIndpbGRjYXJkIiBsb2NhbGVzIHdpdGgKKyAqIHRoZSBzcGVjaWFsIGxhbmd1YWdlIGNvZGUgInh4Ii4gIFdoZW4gbG9va2luZyB1cCBkYXRhIGZvciBhIGxvY2FsZQorICogd2l0aCBhIG5vbi1lbXB0eSBjb3VudHJ5LCBpZiBhbiBleGFjdCBsb2NhbGUgbWF0Y2ggY2Fubm90IGJlIGZvdW5kLAorICogdGhlIE92ZXJsYXlCdW5kbGUgbG9va3MgZm9yIGRhdGEgaW4gdGhlIGxvY2FsZSB4eF9ZWSwgd2hlcmUgWVkgaXMKKyAqIHRoZSBjb3VudHJ5IGJlaW5nIHNvdWdodC4gIFRoaXMgZWZmZWN0aXZlbHkgYWRkcyBhbm90aGVyIGVudHJ5IGluCisgKiB0aGUgZmFsbGJhY2sgc2VxdWVuY2UgZm9yIGEgbG9jYWxlIGFhX0JCOiBhYV9CQiwgeHhfQkIsIGFhLCByb290LgorICogV2lsZGNhcmQgbG9jYWxlcyBhcmUgbm90IGltcGxlbWVudGVkIGZvciB0aGUgYmFzZSBoaWVyYXJjaHksIG9ubHkKKyAqIGZvciBvdmVybGF5cy4KKyAqCisgKiBUaGUgT3ZlcmxheUJ1bmRsZSBpcyBpbXBsZW1lbnRlZCBhcyBhbiBhcnJheSBvZiBuIFJlc291cmNlQnVuZGxlCisgKiBiYXNlIG5hbWVzLiAgVGhlIGJhc2UgbmFtZXMgYXJlIHNlYXJjaGVkIGZyb20gMCB0byBuLTEuICBCYXNlIG5hbWUKKyAqIG4tMSBpcyBzcGVjaWFsOyBpdCBpcyB0aGUgYmFzZSBoaWVyYXJjaHkuICBUaGlzIHNob3VsZCBiZSBhCisgKiB3ZWxsLXBvcHVsYXRlZCBoaWVyYXJjaHkgd2l0aCBtb3N0IG9mIHRoZSBkZWZhdWx0IGRhdGEsIHR5cGljYWxseSwKKyAqIHRoZSBpY3Ugb3Igc3VuIGNvcmUgaGllcmFyY2hpZXMuICBUaGUgYmFzZSBoaWVyYXJjaHkgaXMKKyAqIHRyZWF0ZWQgZGlmZmVyZW50bHkgZnJvbSB0aGUgb3ZlcmxheXMgYWJvdmUgaXQuICBJdCBkb2VzIG5vdCBnZXQKKyAqIHdpbGRjYXJkIHJlc29sdXRpb24sIGFuZCB0aGUgZ2V0S2V5cygpIGZyYW1ld29yayBtZXRob2QgaXMKKyAqIGRlbGVnYXRlZCB0byB0aGUgYmFzZSBoaWVyYXJjaHkgYnVuZGxlLgorICoKKyAqIFVzYWdlOiBJbnN0YW50aWF0ZSBhbiBPdmVybGF5QnVuZGxlIGRpcmVjdGx5IChub3QgdmlhIGEgZmFjdG9yeQorICogbWV0aG9kIGFzIGluIFJlc291cmNlQnVuZGxlKS4gIEluc3RlYWQgb2Ygc3BlY2lmeWluZyBhIHNpbmdsZSBiYXNlCisgKiBuYW1lLCBwYXNzIGl0IGFuIGFycmF5IG9mIDIgb3IgbW9yZSBiYXNlIG5hbWVzLiAgQWZ0ZXIgdGhhdCwgdXNlIGl0CisgKiBleGFjdGx5IGFzIHlvdSB3b3VsZCB1c2UgUmVzb3VyY2VCdW5kbGUuCisgKgorICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVGhpcyBjbGFzcyBtYXkgYmUgcmVtb3ZlZCBvciBtb2RpZmllZC4KKyAqLworLy8gcHJlcGFyZSB0byBkZXByZWNhdGUgaW4gbmV4dCByZWxlYXNlCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgY2xhc3MgT3ZlcmxheUJ1bmRsZSBleHRlbmRzIFJlc291cmNlQnVuZGxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiBiYXNlIG5hbWVzLCB3aXRoIHRoZSBsZW5ndGgtMSBlbnRyeSBiZWluZyB0aGUgYmFzZQorICAgICAqIGhpZXJhcmNoeSwgdHlwaWNhbGx5ICJzdW4udGV4dC5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gYmFzZU5hbWVzOworCisgICAgLyoqCisgICAgICogVGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogTG9hZGVkIGJ1bmRsZXMuICBUaGVzZSB3aWxsIGJlIG51bGwgdW50aWwgdGhleSBhcmUgbG9hZGVkIG9uCisgICAgICogZGVtYW5kLgorICAgICAqLworICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGVbXSBidW5kbGVzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIG92ZXJsYXkgYnVuZGxlIGdpdmVuIGEgc2VxdWVuY2Ugb2YgYmFzZSBuYW1lcyBhbmQKKyAgICAgKiBhIGxvY2FsZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBUaGlzIGNsYXNzIG1heSBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLgorICAgICAqLworICAgIHB1YmxpYyBPdmVybGF5QnVuZGxlKFN0cmluZ1tdIGJhc2VOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMuYmFzZU5hbWVzID0gYmFzZU5hbWVzOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgYnVuZGxlcyA9IG5ldyBSZXNvdXJjZUJ1bmRsZVtiYXNlTmFtZXMubGVuZ3RoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZUJ1bmRsZSBmcmFtZXdvcmsgbWV0aG9kLiAgRGVsZWdhdGVzIHRvCisgICAgICogYnVuZGxlc1tpXS5nZXRPYmplY3QoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBUaGlzIGNsYXNzIG1heSBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLgorICAgICAqLyAKKyAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIAorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKworICAgICAgICBPYmplY3QgbyA9IG51bGw7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGJ1bmRsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvYWQoaSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG8gPSBidW5kbGVzW2ldLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBidW5kbGVzLmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzb3VyY2VCdW5kbGUgZnJhbWV3b3JrIG1ldGhvZC4gIERlbGVnYXRlcyB0bworICAgICAqIGJ1bmRsZXNbYnVuZGxlcy5sZW5ndGgtMV0uZ2V0S2V5cygpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFRoaXMgY2xhc3MgbWF5IGJlIHJlbW92ZWQgb3IgbW9kaWZpZWQuCisgICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKSB7CisgICAgICAgIC8vIFJldHVybiB0aGUgZW51bWVyYXRpb24gb2YgdGhlIGxhc3QgYnVuZGxlLCB3aGljaCBpcyB0aGUgYmFzZQorICAgICAgICAvLyBvZiBvdXIgaGllcmFyY2h5IHN0YWNrLgorICAgICAgICBpbnQgaSA9IGJ1bmRsZXMubGVuZ3RoIC0gMTsKKyAgICAgICAgbG9hZChpKTsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZXNbaV0uZ2V0S2V5cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWQgdGhlIGktdGggYnVuZGxlIGFuZCBpbXBsZW1lbnQgd2lsZGNhcmQgcmVzb2x1dGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbG9hZChpbnQgaSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGJ1bmRsZXNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgYm9vbGVhbiB0cnlXaWxkY2FyZCA9IGZhbHNlOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBidW5kbGVzW2ldID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKGJhc2VOYW1lc1tpXSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoYnVuZGxlc1tpXS5nZXRMb2NhbGUoKS5lcXVhbHMobG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsb2NhbGUuZ2V0Q291bnRyeSgpLmxlbmd0aCgpICE9IDAgJiYgaSAhPSBidW5kbGVzLmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeVdpbGRjYXJkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChpID09IGJ1bmRsZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5V2lsZGNhcmQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRyeVdpbGRjYXJkKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlIHdpbGRjYXJkID0gbmV3IExvY2FsZSgieHgiLCBsb2NhbGUuZ2V0Q291bnRyeSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLmdldFZhcmlhbnQoKSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlc1tpXSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShiYXNlTmFtZXNbaV0sIHdpbGRjYXJkKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlc1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VEYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VEYXRlUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5M2Y0MzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogSW1wbGVtZW50YXRpb24gb2YgRGF0ZVJ1bGUgdGhhdCB0YWtlcyBhIHJhbmdlLgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgUmFuZ2VEYXRlUnVsZSBpbXBsZW1lbnRzIERhdGVSdWxlIHsKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSYW5nZURhdGVSdWxlKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIC8vIFJhbmdlIGlzIGEgcGFja2FnZS1wcml2YXRlIGNsYXNzIHNvIHRoaXMgc2hvdWxkIGJlIHBhY2thZ2UtcHJpdmF0ZSB0b28sIHByb2JhYmx5CisvLyAgICBwdWJsaWMgUmFuZ2VEYXRlUnVsZShSYW5nZVtdIHJhbmdlcykKKy8vICAgIHsKKy8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykgeworLy8gICAgICAgICAgICB0aGlzLnJhbmdlcy5hZGRFbGVtZW50KHJhbmdlc1tpXSk7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoRGF0ZVJ1bGUgcnVsZSkgeworICAgICAgICBhZGQobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpLCBydWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChEYXRlIHN0YXJ0LCBEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIC8vIFRPRE86IEluc2VydCBpbiB0aGUgcmlnaHQgcGxhY2UKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJBZGQ6ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgcmFuZ2VzLmFkZEVsZW1lbnQobmV3IFJhbmdlKHN0YXJ0LCBydWxlKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpIHsKKyAgICAgICAgLy8gRmluZCB0aGUgcmFuZ2UgdGhhdCBJIHNob3VsZCBsb29rIGF0CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXgoc3RhcnQpOworICAgICAgICBpZiAoaW5kZXggPT0gcmFuZ2VzLnNpemUoKSkgeworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICB9CisgICAgICAgIERhdGUgcmVzdWx0ID0gbnVsbDsKKworICAgICAgICBSYW5nZSByID0gcmFuZ2VBdChpbmRleCk7CisgICAgICAgIFJhbmdlIGUgPSByYW5nZUF0KGluZGV4KzEpOworCisgICAgICAgIGlmIChyICE9IG51bGwgJiYgci5ydWxlICE9IG51bGwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByLnJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlLnN0YXJ0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gci5ydWxlLmZpcnN0QWZ0ZXIoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgaWYgKGVuZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmlyc3RBZnRlcihzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgdGhlIHJhbmdlIHRoYXQgSSBzaG91bGQgbG9vayBhdAorICAgICAgICBpbnQgaW5kZXggPSBzdGFydEluZGV4KHN0YXJ0KTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBudWxsOworCisgICAgICAgIFJhbmdlIG5leHQgPSByYW5nZUF0KGluZGV4KTsKKworICAgICAgICB3aGlsZSAocmVzdWx0ID09IG51bGwgJiYgbmV4dCAhPSBudWxsICYmICFuZXh0LnN0YXJ0LmFmdGVyKGVuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJhbmdlIHIgPSBuZXh0OworICAgICAgICAgICAgbmV4dCA9IHJhbmdlQXQoaW5kZXgrMSk7CisKKyAgICAgICAgICAgIGlmIChyLnJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIERhdGUgZSA9IChuZXh0ICE9IG51bGwgJiYgIW5leHQuc3RhcnQuYWZ0ZXIoZW5kKSkgPyBuZXh0LnN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGVuZDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByLnJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpIHsKKyAgICAgICAgUmFuZ2UgciA9IHJhbmdlQXQoc3RhcnRJbmRleChkYXRlKSk7CisgICAgICAgIHJldHVybiByICE9IG51bGwgJiYgci5ydWxlICE9IG51bGwgJiYgci5ydWxlLmlzT24oZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGV2ZW50IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKSB7CisgICAgICAgIHJldHVybiBmaXJzdEJldHdlZW4oc3RhcnQsZW5kKSA9PSBudWxsOworICAgIH0KKworICAgIC8qCisgICAgICogZmluZCB0aGUgaW5kZXggb2YgdGhlIGxhc3QgcmFuZ2Ugd2hvc2Ugc3RhcnQgZGF0ZSBpcyBiZWZvcmUgInN0YXJ0IgorICAgICAqIHJldHVybnMgYW4gaW5kZXggPj0gcmFuZ2VzLnNpemUoKSBpZiB0aGVyZSBpcyBub25lCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3RhcnRJbmRleChEYXRlIHN0YXJ0KSB7CisgICAgICAgIGludCBsYXN0SW5kZXggPSByYW5nZXMuc2l6ZSgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBSYW5nZSByID0gKFJhbmdlKSByYW5nZXMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHN0YXJ0LmJlZm9yZShyLnN0YXJ0KSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdEluZGV4ID0gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGFzdEluZGV4OworICAgIH0KKworICAgIHByaXZhdGUgUmFuZ2UgcmFuZ2VBdChpbnQgaW5kZXgpIHsKKyAgICAgICByZXR1cm4gKGluZGV4IDwgcmFuZ2VzLnNpemUoKSkgPyAoUmFuZ2UpIHJhbmdlcy5lbGVtZW50QXQoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKKyAgICB9CisKKyAgICBWZWN0b3IgcmFuZ2VzID0gbmV3IFZlY3RvcigyLDIpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQcml2YXRlcworLy8KKworY2xhc3MgUmFuZ2UgeworICAgIHB1YmxpYyBSYW5nZShEYXRlIHN0YXJ0LCBEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5ydWxlID0gcnVsZTsKKyAgICB9CisgICAgcHVibGljIERhdGUgICAgIHN0YXJ0OworICAgIHB1YmxpYyBEYXRlUnVsZSBydWxlOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlVmFsdWVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4NzQ0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIDxwPkludGVyZmFjZSBmb3IgZW5hYmxpbmcgaXRlcmF0aW9uIG92ZXIgc2V0cyBvZiA8aW50IGluZGV4LCBpbnQgdmFsdWU+LCAKKyAqIHdoZXJlIGluZGV4IGlzIHRoZSBzb3J0ZWQgaW50ZWdlciBpbmRleCBpbiBhc2NlbmRpbmcgb3JkZXIgYW5kIHZhbHVlLCBpdHMgCisgKiBhc3NvY2lhdGVkIGludGVnZXIgdmFsdWUuPC9wPgorICogPHA+VGhlIHJlc3VsdCBmb3IgZWFjaCBpdGVyYXRpb24gaXMgdGhlIGNvbnNlY3V0aXZlIHJhbmdlIG9mIAorICogPGludCBpbmRleCwgaW50IHZhbHVlPiB3aXRoIHRoZSBzYW1lIHZhbHVlLiBSZXN1bHQgaXMgcmVwcmVzZW50ZWQgYnkgCisgKiA8c3RhcnQsIGxpbWl0LCB2YWx1ZT4gd2hlcmU8L3A+CisgKiA8dWw+CisgKiA8bGk+IHN0YXJ0IGlzIHRoZSBzdGFydGluZyBpbnRlZ2VyIG9mIHRoZSByZXN1bHQgcmFuZ2UKKyAqIDxsaT4gbGltaXQgaXMgMSBhZnRlciB0aGUgbWF4aW11bSBpbnRlZ2VyIHRoYXQgZm9sbG93cyBzdGFydCwgc3VjaCB0aGF0CisgKiAgICAgIGFsbCBpbnRlZ2VycyBiZXR3ZWVuIHN0YXJ0IGFuZCAobGltaXQgLSAxKSwgaW5jbHVzaXZlLCBoYXZlIHRoZSBzYW1lIAorICogICAgICBhc3NvY2lhdGVkIGludGVnZXIgdmFsdWUuCisgKiA8bGk+IHZhbHVlIGlzIHRoZSBpbnRlZ2VyIHZhbHVlIHRoYXQgYWxsIGludGVnZXJzIGZyb20gc3RhcnQgdG8gKGxpbWl0IC0gMSkgCisgKiAgICAgIHNoYXJlIGluIGNvbW1vbi4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIEhlbmNlIHZhbHVlKHN0YXJ0KSA9IHZhbHVlKHN0YXJ0ICsgMSkgPSAuLi4uID0gdmFsdWUoc3RhcnQgKyBuKSA9IC4uLi4gPQorICogdmFsdWUobGltaXQgLSAxKS4gSG93ZXZlciB2YWx1ZShzdGFydCAtMSkgIT0gdmFsdWUoc3RhcnQpIGFuZCAKKyAqIHZhbHVlKGxpbWl0KSAhPSB2YWx1ZShzdGFydCkuCisgKiA8L3A+CisgKiA8cD5Nb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIGJlIGNyZWF0ZWQgYnkgZmFjdG9yeSBtZXRob2RzLCBzdWNoIGFzIHRoZQorICogY2hhcmFjdGVyIHR5cGUgaXRlcmF0b3IgaW4gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IuIFNlZSBleGFtcGxlIGJlbG93LgorICogPC9wPgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFJhbmdlVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgKiBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAqIHdoaWxlIChpdGVyYXRvci5uZXh0KHJlc3VsdCkpIHsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGNvZGVwb2ludCBcXHUiICsKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQubGltaXQgLSAxKSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIHR5cGUgIiArIHJlc3VsdC52YWx1ZSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLworcHVibGljIGludGVyZmFjZSBSYW5nZVZhbHVlSXRlcmF0b3IKK3sKKyAgICAvLyBwdWJsaWMgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gcmVzdWx0IHdyYXBwZXIgZm9yIGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yLgorICAgICogU3RvcmVzIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UgYW5kIHRoZQorICAgICogY29tbW9uIHZhbHVlIGFsbCBpbnRlZ2VycyBiZXR3ZWVuIFtzdGFydCwgbGltaXQgLSAxXSBoYXMuCisgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAqLworICAgIHB1YmxpYyBjbGFzcyBFbGVtZW50CisgICAgeworICAgICAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBTdGFydGluZyBpbnRlZ2VyIG9mIHRoZSBjb250aW51b3VzIHJlc3VsdCByYW5nZSB0aGF0IGhhcyB0aGUgc2FtZSAKKyAgICAgICAgKiB2YWx1ZQorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHN0YXJ0OworICAgICAgICAvKioKKyAgICAgICAgKiAoRW5kICsgMSkgaW50ZWdlciBvZiBjb250aW51b3VzIHJlc3VsdCByYW5nZSB0aGF0IGhhcyB0aGUgc2FtZSAKKyAgICAgICAgKiB2YWx1ZQorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGxpbWl0OworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjb21tb24gdmFsdWUgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UKKyAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBpbnQgdmFsdWU7CisgICAgICAgIAorICAgICAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1ha2UgamF2YWRvYyBoYXBweQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFbGVtZW50KCkgCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IG1heGltYWwgcmVzdWx0IHJhbmdlIHdpdGggYSBjb21tb24gdmFsdWUgYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHJhbmdlIGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChFbGVtZW50IGVsZW1lbnQpOworICAgIAorICAgIC8qKgorICAgICogUmVzZXRzIHRoZSBpdGVyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRpb24uCisgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TVFpJbmZvLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TVFpJbmZvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2M0YWY1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NUWkluZm8uamF2YQpAQCAtMCwwICsxLDg4IEBACisvKgorICogICBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CisKKy8qKgorICogQGludGVybmFsCisgKi8KK2ZpbmFsIGNsYXNzIFNUWkluZm8gaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03ODQ5NjEyMDM3ODQyMzcwMTY4TDsKKworICAgIHZvaWQgc2V0U3RhcnQoaW50IHNtLCBpbnQgc2R3bSwgaW50IHNkdywgaW50IHN0LCBpbnQgc2RtLCBib29sZWFuIHNhKSB7CisgICAgICAgIHRoaXMuc20gPSBzbTsKKyAgICAgICAgdGhpcy5zZHdtID0gc2R3bTsKKyAgICAgICAgdGhpcy5zZHcgPSBzZHc7CisgICAgICAgIHRoaXMuc3QgPSBzdDsKKyAgICAgICAgdGhpcy5zZG0gPSBzZG07CisgICAgICAgIHRoaXMuc2EgPSBzYTsKKyAgICB9CisKKyAgICB2b2lkIHNldEVuZChpbnQgZW0sIGludCBlZHdtLCBpbnQgZWR3LCBpbnQgZXQsIGludCBlZG0sIGJvb2xlYW4gZWEpIHsKKyAgICAgICAgdGhpcy5lbSA9IGVtOworICAgICAgICB0aGlzLmVkd20gPSBlZHdtOworICAgICAgICB0aGlzLmVkdyA9IGVkdzsKKyAgICAgICAgdGhpcy5ldCA9IGV0OworICAgICAgICB0aGlzLmVkbSA9IGVkbTsKKyAgICAgICAgdGhpcy5lYSA9IGVhOworICAgIH0KKworICAgIHZvaWQgYXBwbHlUbyhqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUgc3R6KSB7CisgICAgICAgIGlmIChzeSAhPSAtMSkgeworICAgICAgICAgICAgc3R6LnNldFN0YXJ0WWVhcihzeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNtICE9IC0xKSB7CisgICAgICAgICAgICBpZiAoc2RtID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2R3bSwgc2R3LCBzdCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNkdyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkbSwgc3QpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZG0sIHNkdywgc3QsIHNhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZW0gIT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChlZG0gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWR3bSwgZWR3LCBldCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVkdyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZG0sIGV0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkbSwgZWR3LCBldCwgZWEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgYXBwbHlUbyhjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lIHN0eikgeworICAgICAgICBpZiAoc3kgIT0gLTEpIHsKKyAgICAgICAgICAgIHN0ei5zZXRTdGFydFllYXIoc3kpOworICAgICAgICB9CisgICAgICAgIGlmIChzbSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHNkbSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkd20sIHNkdywgc3QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZG0sIHN0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2RtLCBzZHcsIHN0LCBzYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVtICE9IC0xKSB7CisgICAgICAgICAgICBpZiAoZWRtID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkd20sIGVkdywgZXQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlZHcgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWRtLCBldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZG0sIGVkdywgZXQsIGVhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpbnQgc3kgPSAtMTsKKyAgICBpbnQgc20gPSAtMSwgc2R3bSwgc2R3LCBzdCwgc2RtOworICAgIGJvb2xlYW4gc2E7CisgICAgaW50IGVtID0gLTEsIGVkd20sIGVkdywgZXQsIGVkbTsKKyAgICBib29sZWFuIGVhOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMWE3YzMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogU2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIERhdGVSdWxlLgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlRGF0ZVJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJ1bGUgZm9yIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aAorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgpCisgICAgeworICAgICAgICB0aGlzLm1vbnRoICAgICAgPSBtb250aDsKKyAgICAgICAgdGhpcy5kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKKyAgICAgICAgdGhpcy5kYXlPZldlZWsgID0gMDsKKyAgICB9CisKKyAgICAvLyB0ZW1wb3JhcnkKKyAgICAvKiBwYWNrYWdlICovU2ltcGxlRGF0ZVJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgdGhpcy5tb250aCAgICAgID0gbW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZNb250aCA9IGRheU9mTW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZXZWVrICA9IDA7CisgICAgICAgIHRoaXMuY2FsZW5kYXIgICA9IGNhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBydWxlIGZvciBhIHdlZWtkYXkgd2l0aGluIGEgbW9udGgsIGUuZy4gdGhlIGZpcnN0IE1vbmRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBBIGRhdGUgd2l0aGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBydWxlIG9jY3Vycy4KKyAgICAgKiBAcGFyYW0gYWZ0ZXIgICAgICAgICBJZiB0cnVlLCB0aGlzIHJ1bGUgc2VsZWN0cyB0aGUgZmlyc3QgZGF5T2ZXZWVrCisgICAgICogICAgICAgICAgICAgICAgICAgICAgb24gb3IgYWZ0ZXIgZGF5T2ZNb250aC4gIElmIGZhbHNlLCB0aGUgcnVsZSBzZWxlY3RzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGhlIGZpcnN0IGRheU9mV2VlayBvbiBvciBiZWZvcmUgZGF5T2ZNb250aC4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBib29sZWFuIGFmdGVyKQorICAgIHsKKyAgICAgICAgdGhpcy5tb250aCAgICAgID0gbW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZNb250aCA9IGRheU9mTW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZXZWVrICA9IGFmdGVyID8gZGF5T2ZXZWVrIDogLWRheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIHRoYXQgaXMgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpCisgICAgeworICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbgorICAgICAqIGVuZCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gZW5kICAgT25seSBvY2N1cnJhbmNlcyBiZWZvcmUgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RBZnRlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGUgZmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgLy8gUGluIHRvIHRoZSBtaW4vbWF4IGRhdGVzIGZvciB0aGlzIHJ1bGUKKyAgICAgICAgcmV0dXJuIGRvRmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhpcyBldmVudCBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHN1Y2ggYXMgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuCisgICAgICogZGF5IGlzIGEgaG9saWRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGV2ZW50IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIGludCBkYXlPZlllYXIgPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUik7CisKKyAgICAgICAgICAgIGMuc2V0VGltZShjb21wdXRlSW5ZZWFyKGMuZ2V0KENhbGVuZGFyLllFQVIpLCBjKSk7CisKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgaXNPbjogZGF5T2ZZZWFyID0gIiArIGRheU9mWWVhcik7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgIGhvbGlkYXkgICA9ICIgKyBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworCisgICAgICAgICAgICByZXR1cm4gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpID09IGRheU9mWWVhcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdEJldHdlZW4oc3RhcnQsIGVuZCkgIT0gbnVsbDsgLy8gVE9ETzogb3B0aW1pemU/CisgICAgfQorCisgICAgcHJpdmF0ZSBEYXRlIGRvRmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLnNldFRpbWUoc3RhcnQpOworCisgICAgICAgICAgICBpbnQgeWVhciA9IGMuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuTU9OVEgpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBpcyBlYXJsaWVyIGluIHRoZSB5ZWFyIHRoYW4gdGhlIHN0YXJ0IGRhdGUKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gZ28gdG8gdGhlIG5leHQgeWVhci4KKyAgICAgICAgICAgIGlmIChtb250aCA+IHRoaXMubW9udGgpIHsKKyAgICAgICAgICAgICAgICB5ZWFyKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlbiB0aGUgcnVsZSBsYW5kcyBpbiB0aGUgZ2l2ZW4geWVhcgorICAgICAgICAgICAgRGF0ZSByZXN1bHQgPSBjb21wdXRlSW5ZZWFyKHllYXIsIGMpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBpcyBpbiB0aGUgc2FtZSBtb250aCBhcyB0aGUgc3RhcnQgZGF0ZSwgaXQncyBwb3NzaWJsZQorICAgICAgICAgICAgLy8gdG8gZ2V0IGEgcmVzdWx0IHRoYXQncyBiZWZvcmUgdGhlIHN0YXJ0LiAgSWYgc28sIGdvIHRvIG5leHQgeWVhci4KKyAgICAgICAgICAgIGlmIChtb250aCA9PSB0aGlzLm1vbnRoICYmIHJlc3VsdC5iZWZvcmUoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUluWWVhcih5ZWFyKzEsIGMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kICE9IG51bGwgJiYgcmVzdWx0LmFmdGVyKGVuZCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIERhdGUgY29tcHV0ZUluWWVhcihpbnQgeWVhciwgQ2FsZW5kYXIgYykKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5FUkEsIGMuZ2V0TWF4aW11bShDYWxlbmRhci5FUkEpKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIGRheU9mTW9udGgpOworCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICBjb21wdXRlSW5ZZWFyOiBzdGFydCBhdCAiICsgYy5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgIT0gMCkgeworICAgICAgICAgICAgICAgIGMuc2V0VGltZShjLmdldFRpbWUoKSk7ICAgICAgICAvLyBKREsgMS4xLjIgd29ya2Fyb3VuZAorICAgICAgICAgICAgICAgIGludCB3ZWVrZGF5ID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgd2Vla2RheSA9ICIgKyB3ZWVrZGF5KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICBkYXlPZlllYXIgPSAiICsgYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpKTsKKworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGRheU9mV2VlayA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZ2l2ZW4gZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIG9yIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gKGRheU9mV2VlayAtIHdlZWtkYXkgKyA3KSAlIDc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSAoLWRheU9mV2VlaykKKyAgICAgICAgICAgICAgICAgICAgLy8gb24gb3IgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gLSgoZGF5T2ZXZWVrICsgd2Vla2RheSArIDcpICUgNyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgICAgICAgICAgICAgIGFkZGluZyAiICsgZGVsdGEgKyAiIGRheXMiKTsKKyAgICAgICAgICAgICAgICBjLmFkZChDYWxlbmRhci5EQVRFLCBkZWx0YSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBjLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisvLyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihDYWxlbmRhciBjKSB7CisvLyAgICAgICAgY2FsZW5kYXIgPSBjOworLy8gICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgZ0NhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisKKyAgICBwcml2YXRlIENhbGVuZGFyIGNhbGVuZGFyID0gZ0NhbGVuZGFyOworCisgICAgcHJpdmF0ZSBpbnQgICAgIG1vbnRoOworICAgIHByaXZhdGUgaW50ICAgICBkYXlPZk1vbnRoOworICAgIHByaXZhdGUgaW50ICAgICBkYXlPZldlZWs7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlSG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlSG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0MTc2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEKQEAgLTAsMCArMSwyNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKKworLyoqCisgKiBBIGhvbGlkYXkgd2hvc2UgZGF0ZSBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYSBtb250aCwgZGF5LCBhbmQgb3B0aW9uYWxseSBkYXkgb2Ygd2VlaworICogaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAqCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVIb2xpZGF5IGV4dGVuZHMgSG9saWRheSB7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBob2xpZGF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lICBUaGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkuICBUaGlzIHN0cmluZyBpcyB1c2VkIGFzIGEga2V5CisgICAgICogICAgICAgICAgICAgIHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBuYW1lIGEgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqICAgICAgICAgICAgICBJZiB0aGUgbmFtZSBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwKKyAgICAgKiAgICAgICAgICAgICAgZ2V0RGlzcGxheU5hbWUgd2lsbCByZXR1cm4gdGhpcyBzdHJpbmcgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgMCwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgaG9saWRheQorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgaG9saWRheSBvY2N1cnMgKDAtYmFzZWQpCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgd2l0aGluIHRoZSBtb250aCAoMS1iYXNlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhpcyBzdHJpbmcgaXMgdXNlZCBhcyBhIGtleQorICAgICAqICAgICAgICAgICAgICB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiAgICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgICogICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lIHdpbGwgcmV0dXJuIHRoaXMgc3RyaW5nIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAc2VlIEhvbGlkYXkjZ2V0RGlzcGxheU5hbWUoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFllYXIsIGludCBlbmRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgZW5kWWVhciwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSkpOworICAgIH0KKworICAgIC8qKiAvLyBUT0RPOiByZW1vdmUKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIEEgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4gIFRoZQorICAgICAqICAgICAgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgICAgKiAgICAgIDxjb2RlPmRheU9mV2VlazwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3Vycy4KKyAgICAgKiAgICAgIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBsZWdhbDogPHVsPgorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA9PSAwIC0gdXNlIGRheU9mTW9udGggb25seQorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA8IDAgIC0gdXNlIGxhc3QgLWRheU9mV2VlayBiZWZvcmUgb3Igb24gZGF5T2ZNb250aAorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA+IDAgIC0gdXNlIGZpcnN0IGRheU9mV2VlayBhZnRlciBvciBvbiBkYXlPZk1vbnRoCisgICAgICogICAgICA8L3VsPgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgcmFuZ2VSdWxlKHN0YXJ0WWVhciwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCA/IGRheU9mV2VlayA6IC0gZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDApKSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0WWVhciwgaW50IGVuZFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCByYW5nZVJ1bGUoc3RhcnRZZWFyLCBlbmRZZWFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBEYXRlUnVsZSByYW5nZVJ1bGUoaW50IHN0YXJ0WWVhciwgaW50IGVuZFllYXIsIERhdGVSdWxlIHJ1bGUpCisgICAgeworICAgICAgICBpZiAoc3RhcnRZZWFyID09IDAgJiYgZW5kWWVhciA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcnVsZTsKKyAgICAgICAgfQorCisgICAgICAgIFJhbmdlRGF0ZVJ1bGUgcmFuZ2VSdWxlID0gbmV3IFJhbmdlRGF0ZVJ1bGUoKTsKKworICAgICAgICBpZiAoc3RhcnRZZWFyICE9IDApIHsKKyAgICAgICAgICAgIENhbGVuZGFyIHN0YXJ0ID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHN0YXJ0WWVhciwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKHN0YXJ0LmdldFRpbWUoKSwgcnVsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKHJ1bGUpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmRZZWFyICE9IDApIHsKKyAgICAgICAgICAgIERhdGUgZW5kID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGVuZFllYXIsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSkuZ2V0VGltZSgpOworICAgICAgICAgICAgcmFuZ2VSdWxlLmFkZChlbmQsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJhbmdlUnVsZTsKKyAgICB9CisKKyAgICAvKiBDb25zdGFudHMgZm9yIGhvbGlkYXlzIHRoYXQgYXJlIGNvbW1vbiB0aHJvdWdob3V0IHRoZSBXZXN0ZXJuCisgICAgICogYW5kIENocmlzdGlhbiB3b3JsZHMuLi4uICovCisKKyAgICAvKioKKyAgICAgKiBOZXcgWWVhcidzIERheSAtIEphbnVhcnkgMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgTkVXX1lFQVJTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpBTlVBUlksICAgIDEsICAiTmV3IFllYXIncyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEVwaXBoYW55LCBKYW51YXJ5IDZ0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEVQSVBIQU5ZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgNiwgICJFcGlwaGFueSIpOworCisgICAgLyoqCisgICAgICogTWF5IERheSwgTWF5IDFzdAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IE1BWV9EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgIk1heSBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzc3VtcHRpb24sIEF1Z3VzdCAxNXRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQVNTVU1QVElPTiA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgMTUsICAiQXNzdW1wdGlvbiIpOworCisgICAgLyoqCisgICAgICogQWxsIFNhaW50cycgRGF5LCBOb3ZlbWJlciAxc3QKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBTExfU0FJTlRTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDEsICAiQWxsIFNhaW50cycgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBbGwgU291bHMnIERheSwgTm92ZW1iZXIgMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQUxMX1NPVUxTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDIsICAiQWxsIFNvdWxzJyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEltbWFjdWxhdGUgQ29uY2VwdGlvbiwgRGVjZW1iZXIgOHRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgSU1NQUNVTEFURV9DT05DRVBUSU9OID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAgOCwgICJJbW1hY3VsYXRlIENvbmNlcHRpb24iKTsKKworICAgIC8qKgorICAgICAqIENocmlzdG1hcyBFdmUsIERlY2VtYmVyIDI0dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBDSFJJU1RNQVNfRVZFID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAyNCwgICJDaHJpc3RtYXMgRXZlIik7CisKKyAgICAvKioKKyAgICAgKiBDaHJpc3RtYXMsIERlY2VtYmVyIDI1dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBDSFJJU1RNQVMgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI1LCAgIkNocmlzdG1hcyIpOworCisgICAgLyoqCisgICAgICogQm94aW5nIERheSwgRGVjZW1iZXIgMjZ0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEJPWElOR19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgIkJveGluZyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIFNhaW50IFN0ZXBoZW4ncyBEYXksIERlY2VtYmVyIDI2dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBTVF9TVEVQSEVOU19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgIlN0LiBTdGVwaGVuJ3MgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBOZXcgWWVhcidzIEV2ZSwgRGVjZW1iZXIgMzFzdAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IE5FV19ZRUFSU19FVkUgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDMxLCAgIk5ldyBZZWFyJ3MgRXZlIik7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhM2Y3NGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZS5qYXZhCkBAIC0wLDAgKzEsMTE0NiBAQAorIC8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuT2xzb25UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8vL0NMT1ZFUjpVU0VDTEFTUworLyoqCisgKiA8Y29kZT5TaW1wbGVUaW1lWm9uZTwvY29kZT4gaXMgYSBjb25jcmV0ZSBzdWJjbGFzcyBvZiA8Y29kZT5UaW1lWm9uZTwvY29kZT4KKyAqIHRoYXQgcmVwcmVzZW50cyBhIHRpbWUgem9uZSBmb3IgdXNlIHdpdGggYSBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoaXMKKyAqIGNsYXNzIGRvZXMgbm90IGhhbmRsZSBoaXN0b3JpY2FsIGNoYW5nZXMuCisgKgorICogPFA+CisgKiBVc2UgYSBuZWdhdGl2ZSB2YWx1ZSBmb3IgPGNvZGU+ZGF5T2ZXZWVrSW5Nb250aDwvY29kZT4gdG8gaW5kaWNhdGUgdGhhdAorICogPGNvZGU+U2ltcGxlVGltZVpvbmU8L2NvZGU+IHNob3VsZCBjb3VudCBmcm9tIHRoZSBlbmQgb2YgdGhlIG1vbnRoIGJhY2t3YXJkcy4KKyAqIEZvciBleGFtcGxlLCBEYXlsaWdodCBTYXZpbmdzIFRpbWUgZW5kcyBhdCB0aGUgbGFzdAorICogKGRheU9mV2Vla0luTW9udGggPSAtMSkgU3VuZGF5IGluIE9jdG9iZXIsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAqCisgKiBAc2VlICAgICAgQ2FsZW5kYXIKKyAqIEBzZWUgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgIFRpbWVab25lCisgKiBAYXV0aG9yICAgRGF2aWQgR29sZHNtaXRoLCBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFNpbXBsZVRpbWVab25lIGV4dGVuZHMgSkRLVGltZVpvbmUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03MDM0Njc2MjM5MzExMzIyNzY5TDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBTaW1wbGVUaW1lWm9uZSB3aXRoIHRoZSBnaXZlbiBiYXNlIHRpbWUgem9uZSBvZmZzZXQgZnJvbSBHTVQKKyAgICAgKiBhbmQgdGltZSB6b25lIElELiBUaW1lem9uZSBJRHMgY2FuIGJlIG9idGFpbmVkIGZyb20KKyAgICAgKiBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuIE5vcm1hbGx5IHlvdSBzaG91bGQgdXNlIFRpbWVab25lLmdldERlZmF1bHQgdG8KKyAgICAgKiBjb25zdHJ1Y3QgYSBUaW1lWm9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSByYXdPZmZzZXQgIFRoZSBnaXZlbiBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIEBwYXJhbSBJRCAgICAgICAgIFRoZSB0aW1lIHpvbmUgSUQgd2hpY2ggaXMgb2J0YWluZWQgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldEF2YWlsYWJsZUlEcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHJhd09mZnNldCwgU3RyaW5nIElEKSB7CisgICAgICAgIC8vdGhpcyhuZXcgamF2YS51dGlsLlNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgSUQpLCBJRCk7CisgICAgICAgIC8vc3VwZXIoSUQpOworICAgICAgICBjb25zdHJ1Y3QocmF3T2Zmc2V0LCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICBNSUxMSVNfUEVSX0hPVVIpOworICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlVGltZVpvbmUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IGZyb20KKyAgICAgKiBHTVQsIHRpbWUgem9uZSBJRCwgdGltZSB0byBzdGFydCBhbmQgZW5kIHRoZSBkYXlsaWdodCB0aW1lLiBUaW1lem9uZSBJRHMKKyAgICAgKiBjYW4gYmUgb2J0YWluZWQgZnJvbSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuIE5vcm1hbGx5IHlvdSBzaG91bGQgdXNlCisgICAgICogVGltZVpvbmUuZ2V0RGVmYXVsdCB0byBjcmVhdGUgYSBUaW1lWm9uZS4gRm9yIGEgdGltZSB6b25lIHRoYXQgZG9lcyBub3QKKyAgICAgKiB1c2UgZGF5bGlnaHQgc2F2aW5nIHRpbWUsIGRvIG5vdCB1c2UgdGhpcyBjb25zdHJ1Y3RvcjsgaW5zdGVhZCB5b3Ugc2hvdWxkCisgICAgICogdXNlIFNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgSUQpLgorICAgICAqCisgICAgICogQnkgZGVmYXVsdCwgdGhpcyBjb25zdHJ1Y3RvciBzcGVjaWZpZXMgZGF5LW9mLXdlZWstaW4tbW9udGggcnVsZXMuIFRoYXQKKyAgICAgKiBpcywgaWYgdGhlIHN0YXJ0RGF5IGlzIDEsIGFuZCB0aGUgc3RhcnREYXlPZldlZWsgaXMgU1VOREFZLCB0aGVuIHRoaXMKKyAgICAgKiBpbmRpY2F0ZXMgdGhlIGZpcnN0IFN1bmRheSBpbiB0aGUgc3RhcnRNb250aC4gQSBzdGFydERheSBvZiAtMSBsaWtld2lzZQorICAgICAqIGluZGljYXRlcyB0aGUgbGFzdCBTdW5kYXkuIEhvd2V2ZXIsIGJ5IHVzaW5nIG5lZ2F0aXZlIG9yIHplcm8gdmFsdWVzIGZvcgorICAgICAqIGNlcnRhaW4gcGFyYW1ldGVycywgb3RoZXIgdHlwZXMgb2YgcnVsZXMgY2FuIGJlIHNwZWNpZmllZC4KKyAgICAgKgorICAgICAqIERheSBvZiBtb250aC4gVG8gc3BlY2lmeSBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBzdWNoIGFzIE1hcmNoIDEsIHNldAorICAgICAqIHN0YXJ0RGF5T2ZXZWVrIHRvIHplcm8uCisgICAgICoKKyAgICAgKiBEYXkgb2Ygd2VlayBhZnRlciBkYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaworICAgICAqIG9jY3VycmluZyBvbiBvciBhZnRlciBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBtYWtlIHRoZSBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBuZWdhdGl2ZS4gRm9yIGV4YW1wbGUsIGlmIHN0YXJ0RGF5IGlzIDUgYW5kIHN0YXJ0RGF5T2ZXZWVrIGlzIC1NT05EQVksCisgICAgICogdGhpcyBpbmRpY2F0ZXMgdGhlIGZpcnN0IE1vbmRheSBvbiBvciBhZnRlciB0aGUgNXRoIGRheSBvZiB0aGUKKyAgICAgKiBzdGFydE1vbnRoLgorICAgICAqCisgICAgICogRGF5IG9mIHdlZWsgYmVmb3JlIGRheSBvZiBtb250aC4gVG8gc3BlY2lmeSB0aGUgbGFzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBvY2N1cnJpbmcgb24gb3IgYmVmb3JlIGFuIGV4YWN0IGRheSBvZiB0aGUgbW9udGgsIG1ha2UgdGhlIGRheSBvZiB0aGUKKyAgICAgKiB3ZWVrIGFuZCB0aGUgZGF5IG9mIHRoZSBtb250aCBuZWdhdGl2ZS4gRm9yIGV4YW1wbGUsIGlmIHN0YXJ0RGF5IGlzIC0yMQorICAgICAqIGFuZCBzdGFydERheU9mV2VlayBpcyAtV0VETkVTREFZLCB0aGlzIGluZGljYXRlcyB0aGUgbGFzdCBXZWRuZXNkYXkgb24gb3IKKyAgICAgKiBiZWZvcmUgdGhlIDIxc3Qgb2YgdGhlIHN0YXJ0TW9udGguCisgICAgICoKKyAgICAgKiBUaGUgYWJvdmUgZXhhbXBsZXMgcmVmZXIgdG8gdGhlIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBhbmQgc3RhcnREYXlPZldlZWs7CisgICAgICogdGhlIHNhbWUgYXBwbGllcyBmb3IgdGhlIGVuZE1vbnRoLCBlbmREYXksIGFuZCBlbmREYXlPZldlZWsuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0ICAgICAgIFRoZSBnaXZlbiBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIEBwYXJhbSBJRCAgICAgICAgICAgICAgVGhlIHRpbWUgem9uZSBJRCB3aGljaCBpcyBvYnRhaW5lZCBmcm9tCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuCisgICAgICogQHBhcmFtIHN0YXJ0TW9udGggICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIDAtYmFzZWQuIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBzdGFydERheSAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRheS1vZi13ZWVrLWluLW1vbnRoLiBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBzdGFydERheU9mV2VlayAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIHN0YXJ0VGltZSAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyB0aW1lIGluIGxvY2FsIHdhbGwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIHdoaWNoIGlzIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLiBQbGVhc2Ugc2VlIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmRNb250aCAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIG1vbnRoLiBNb250aCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGVuZERheSAgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWstaW4tbW9udGguCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGVuZERheU9mV2VlayAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGVuZFRpbWUgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgdGltZSBpbiBsb2NhbCB3YWxsIHRpbWUsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBkYXlsaWdodCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBvciB0aW1lCisgICAgICogcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlIGZvciB0aGUgc3RhcnQgb3IgZW5kIHJ1bGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHJhd09mZnNldCwgU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRNb250aCwgaW50IHN0YXJ0RGF5LCBpbnQgc3RhcnREYXlPZldlZWssIGludCBzdGFydFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRNb250aCwgaW50IGVuZERheSwgaW50IGVuZERheU9mV2VlaywgaW50IGVuZFRpbWUpIHsKKy8qICAgICAgICB0aGlzKG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3T2Zmc2V0LCBJRCwgc3RhcnRNb250aCwgc3RhcnREYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCBlbmRNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lKSwgSUQpOyovCisgICAgICAgLy8gU1RaSW5mbyB4aW5mbyA9IGdldFNUWkluZm8oKTsKKyAgICAgICAvLyB4aW5mby5zZXRTdGFydChzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssIHN0YXJ0VGltZSwgLTEsIGZhbHNlKTsKKyAgICAgICAvLyB4aW5mby5zZXRFbmQoZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCAtMSwgZmFsc2UpOworICAgICAgICBjb25zdHJ1Y3QocmF3T2Zmc2V0LAorICAgICAgICAgICAgICAgIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICBzdGFydFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICBlbmRNb250aCwgZW5kRGF5LCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgZW5kVGltZSwgV0FMTF9USU1FLAorICAgICAgICAgICAgICAgIE1JTExJU19QRVJfSE9VUik7CisgICAgICAgIHN1cGVyLnNldElEKElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gIFRoaXMgY29uc3RydWN0b3IgaXMgaWRlbnRpY2FsIHRvIHRoZSAxMC1hcmd1bWVudAorICAgICAqIGNvbnN0cnVjdG9yLCBidXQgYWxzbyB0YWtlcyBhIGRzdFNhdmluZ3MgcGFyYW1ldGVyLgorICAgICAqIEBwYXJhbSBkc3RTYXZpbmdzICAgVGhlIGFtb3VudCBvZiB0aW1lIGluIG1zIHNhdmVkIGR1cmluZyBEU1QuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXksIGRheU9mV2Vlaywgb3IgdGltZQorICAgICAqIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZSBmb3IgdGhlIHN0YXJ0IG9yIGVuZCBydWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kTW9udGgsIGludCBlbmREYXksIGludCBlbmREYXlPZldlZWssIGludCBlbmRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHN0U2F2aW5ncykgeworICAgICAgICAvKnRoaXMobmV3IGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZShyYXdPZmZzZXQsIElELCBzdGFydE1vbnRoLCBzdGFydERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrLCBzdGFydFRpbWUsIGVuZE1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5LCBlbmREYXlPZldlZWssIGVuZFRpbWUsIGRzdFNhdmluZ3MpLCBJRCk7Ki8KKyAgICAgICAgdGhpcy5yYXcgPSByYXdPZmZzZXQ7CisgICAgICAgIHRoaXMuZHN0ID0gZHN0U2F2aW5nczsKKyAgICAgICAgLyoKKyAgICAgICAgU1RaSW5mbyB4aW5mbyA9IGdldFNUWkluZm8oKTsKKyAgICAgICAgeGluZm8uc2V0U3RhcnQoc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLCBzdGFydFRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgIHhpbmZvLnNldEVuZChlbmRNb250aCwgZW5kRGF5LCBlbmREYXlPZldlZWssIGVuZFRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgICovCisKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldCwKKyAgICAgICAgICAgICAgICBzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgc3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgIGVuZFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICBkc3RTYXZpbmdzKTsgCisgICAgICAgIHN1cGVyLnNldElEKElEKTsKKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHJhdyBvZmZzZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb2Zmc2V0TWlsbGlzIHRoZSByYXcgb2Zmc2V0IG9mIHRoZSB0aW1lIHpvbmUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgb2Zmc2V0TWlsbGlzKSB7CisgICAgICAgIHJhdyA9IG9mZnNldE1pbGxpczsKKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIGdldCB0aGUgcmF3IG9mZnNldC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHJhdyBvZmZzZXQKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gcmF3OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgeWVhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0YXJ0WWVhcihpbnQgeWVhcikgeworICAgICAgICAvL3Vud3JhcFNUWigpLnNldFN0YXJ0WWVhcih5ZWFyKTsKKworICAgICAgICBnZXRTVFpJbmZvKCkuc3kgPSB5ZWFyOworICAgICAgICB0aGlzLnN0YXJ0WWVhciA9IHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBydWxlLiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncworICAgICAqIFRpbWUgc3RhcnRzIGF0IHRoZSBmaXJzdCBTdW5kYXkgaW4gQXByaWwsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAgICAgKiBUaGVyZWZvcmUsIHlvdSBjYW4gc2V0IHRoZSBzdGFydCBydWxlIGJ5IGNhbGxpbmc6CisgICAgICogc2V0U3RhcnRSdWxlKFRpbWVGaWVsZHMuQVBSSUwsIDEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIG1vbnRoLiBNb250aCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAwLWJhc2VkLiBlZywgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrSW5Nb250aCAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LW9mLXdlZWstaW4tbW9udGguIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgdGltZSBpbiBsb2NhbCB3YWxsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIHdoaWNoIGlzIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLiBQbGVhc2Ugc2VlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZXZWVrSW5Nb250aCwgaW50IGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWUpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRTdGFydFJ1bGUobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldFN0YXJ0KG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgIHNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBXQUxMX1RJTUUpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHJ1bGUuIEZvciBleGFtcGxlLCBpbiB0aGUgVS5TLiwgRGF5bGlnaHQgU2F2aW5ncworICAgICAqIFRpbWUgc3RhcnRzIGF0IHRoZSBmaXJzdCBTdW5kYXkgaW4gQXByaWwsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAgICAgKiBUaGVyZWZvcmUsIHlvdSBjYW4gc2V0IHRoZSBzdGFydCBydWxlIGJ5IGNhbGxpbmc6CisgICAgICogc2V0U3RhcnRSdWxlKFRpbWVGaWVsZHMuQVBSSUwsIDEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqIFRoZSBkYXlPZldlZWtJbk1vbnRoIGFuZCBkYXlPZldlZWsgcGFyYW1ldGVycyB0b2dldGhlciBzcGVjaWZ5IGhvdyB0byBjYWxjdWxhdGUKKyAgICAgKiB0aGUgZXhhY3Qgc3RhcnRpbmcgZGF0ZS4gIFRoZWlyIGV4YWN0IG1lYW5pbmcgZGVwZW5kIG9uIHRoZWlyIHJlc3BlY3RpdmUgc2lnbnMsCisgICAgICogYWxsb3dpbmcgdmFyaW91cyB0eXBlcyBvZiBydWxlcyB0byBiZSBjb25zdHJ1Y3RlZCwgYXMgZm9sbG93czo8dWw+CisgICAgICogICA8bGk+SWYgYm90aCBkYXlPZldlZWtJbk1vbnRoIGFuZCBkYXlPZldlZWsgYXJlIHBvc2l0aXZlLCB0aGV5IHNwZWNpZnkgdGhlCisgICAgICogICAgICAgZGF5IG9mIHdlZWsgaW4gdGhlIG1vbnRoIChlLmcuLCAoMiwgV0VETkVTREFZKSBpcyB0aGUgc2Vjb25kIFdlZG5lc2RheQorICAgICAqICAgICAgIG9mIHRoZSBtb250aCkuCisgICAgICogICA8bGk+SWYgZGF5T2ZXZWVrIGlzIHBvc2l0aXZlIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIG5lZ2F0aXZlLCB0aGV5IHNwZWNpZnkKKyAgICAgKiAgICAgICB0aGUgZGF5IG9mIHdlZWsgaW4gdGhlIG1vbnRoIGNvdW50aW5nIGJhY2t3YXJkIGZyb20gdGhlIGVuZCBvZiB0aGUgbW9udGguCisgICAgICogICAgICAgKGUuZy4sICgtMSwgTU9OREFZKSBpcyB0aGUgbGFzdCBNb25kYXkgaW4gdGhlIG1vbnRoKQorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyB6ZXJvIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIHBvc2l0aXZlLCBkYXlPZldlZWtJbk1vbnRoCisgICAgICogICAgICAgc3BlY2lmaWVzIHRoZSBkYXkgb2YgdGhlIG1vbnRoLCByZWdhcmRsZXNzIG9mIHdoYXQgZGF5IG9mIHRoZSB3ZWVrIGl0IGlzLgorICAgICAqICAgICAgIChlLmcuLCAoMTAsIDApIGlzIHRoZSB0ZW50aCBkYXkgb2YgdGhlIG1vbnRoKQorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyB6ZXJvIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIG5lZ2F0aXZlLCBkYXlPZldlZWtJbk1vbnRoCisgICAgICogICAgICAgc3BlY2lmaWVzIHRoZSBkYXkgb2YgdGhlIG1vbnRoIGNvdW50aW5nIGJhY2t3YXJkIGZyb20gdGhlIGVuZCBvZiB0aGUKKyAgICAgKiAgICAgICBtb250aCwgcmVnYXJkbGVzcyBvZiB3aGF0IGRheSBvZiB0aGUgd2VlayBpdCBpcyAoZS5nLiwgKC0yLCAwKSBpcyB0aGUKKyAgICAgKiAgICAgICBuZXh0LXRvLWxhc3QgZGF5IG9mIHRoZSBtb250aCkuCisgICAgICogICA8bGk+SWYgZGF5T2ZXZWVrIGlzIG5lZ2F0aXZlIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIHBvc2l0aXZlLCB0aGV5IHNwZWNpZnkgdGhlCisgICAgICogICAgICAgZmlyc3Qgc3BlY2lmaWVkIGRheSBvZiB0aGUgd2VlayBvbiBvciBhZnRlciB0aGUgc3BlY2ZpZWQgZGF5IG9mIHRoZSBtb250aC4KKyAgICAgKiAgICAgICAoZS5nLiwgKDE1LCAtU1VOREFZKSBpcyB0aGUgZmlyc3QgU3VuZGF5IGFmdGVyIHRoZSAxNXRoIG9mIHRoZSBtb250aAorICAgICAqICAgICAgIFtvciB0aGUgMTV0aCBpdHNlbGYgaWYgdGhlIDE1dGggaXMgYSBTdW5kYXldLikKKyAgICAgKiAgIDxsaT5JZiBkYXlPZldlZWsgYW5kIERheU9mV2Vla0luTW9udGggYXJlIGJvdGggbmVnYXRpdmUsIHRoZXkgc3BlY2lmeSB0aGUKKyAgICAgKiAgICAgICBsYXN0IHNwZWNpZmllZCBkYXkgb2YgdGhlIHdlZWsgb24gb3IgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF5IG9mIHRoZSBtb250aC4KKyAgICAgKiAgICAgICAoZS5nLiwgKC0yMCwgLVRVRVNEQVkpIGlzIHRoZSBsYXN0IFR1ZXNkYXkgYmVmb3JlIHRoZSAyMHRoIG9mIHRoZSBtb250aAorICAgICAqICAgICAgIFtvciB0aGUgMjB0aCBpdHNlbGYgaWYgdGhlIDIwdGggaXMgYSBUdWVzZGF5XS4pPC91bD4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgbW9udGguIE1vbnRoIGlzIDAtYmFzZWQuCisgICAgICogZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZSBzZWUKKyAgICAgKiB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSB0aW1lIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHRpbWUuIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqLworICAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBpbnQgbW9kZSkKKyAgICB7CisgICAgICAgIHN0YXJ0TW9udGggICAgID0gIG1vbnRoOworICAgICAgICBzdGFydERheSAgICAgICA9IGRheU9mV2Vla0luTW9udGg7CisgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gZGF5T2ZXZWVrOworICAgICAgICBzdGFydFRpbWUgICAgICA9IHRpbWU7CisgICAgICAgIHN0YXJ0VGltZU1vZGUgID0gbW9kZTsKKyAgICAgICAgZGVjb2RlU3RhcnRSdWxlKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIERTVCBzdGFydCBydWxlIHRvIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSBpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICBUaGUgdGltZSBvZiB0aGF0IGRheSAobnVtYmVyIG9mIG1pbGxpcyBhZnRlciBtaWRuaWdodCkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3aGVuIERTVCB0YWtlcyBlZmZlY3QgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwKKyAgICAgKiBkYXlPZk1vbnRoLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0YXJ0UnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgdGltZSkgeworICAgICAgIC8vIHVud3JhcFNUWigpLnNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZNb250aCwgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldFN0YXJ0KG1vbnRoLCAtMSwgLTEsIHRpbWUsIGRheU9mTW9udGgsIGZhbHNlKTsKKyAgICAgICAgc2V0U3RhcnRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCAwLCB0aW1lLCBXQUxMX1RJTUUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIERTVCBzdGFydCBydWxlIHRvIGEgd2Vla2RheSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlIGRhdGUgd2l0aGluCisgICAgICogYSBtb250aCwgZS5nLiwgdGhlIGZpcnN0IE1vbmRheSBvbiBvciBhZnRlciB0aGUgOHRoLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIEEgZGF0ZSB3aXRoaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzLgorICAgICAqIEBwYXJhbSB0aW1lICAgICAgICAgIFRoZSB0aW1lIG9mIHRoYXQgZGF5IChudW1iZXIgb2YgbWlsbGlzIGFmdGVyIG1pZG5pZ2h0KQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdoZW4gRFNUIHRha2VzIGVmZmVjdCBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQHBhcmFtIGFmdGVyICAgICAgICAgSWYgdHJ1ZSwgdGhpcyBydWxlIHNlbGVjdHMgdGhlIGZpcnN0IGRheU9mV2VlayBvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFmdGVyIGRheU9mTW9udGguICBJZiBmYWxzZSwgdGhpcyBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGFzdCBkYXlPZldlZWsgb24gb3IgYmVmb3JlIGRheU9mTW9udGguCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgaW50IHRpbWUsIGJvb2xlYW4gYWZ0ZXIpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRTdGFydFJ1bGUobW9udGgsIGRheU9mTW9udGgsIGRheU9mV2VlaywgdGltZSwgYWZ0ZXIpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRTdGFydChtb250aCwgLTEsIGRheU9mV2VlaywgdGltZSwgZGF5T2ZNb250aCwgYWZ0ZXIpOworICAgICAgICBzZXRTdGFydFJ1bGUobW9udGgsIGFmdGVyID8gZGF5T2ZNb250aCA6IC1kYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgIC1kYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBydWxlLiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lCisgICAgICogZW5kcyBhdCB0aGUgbGFzdCAoLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgZW5kIHJ1bGUgYnkgY2FsbGluZzoKKyAgICAgKiBzZXRFbmRSdWxlKFRpbWVGaWVsZHMuT0NUT0JFUiwgLTEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUgaW4gbG9jYWwgd2FsbCB0aW1lLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBkYXlsaWdodCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZldlZWtJbk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBpbnQgdGltZSkgeworICAgICAgICAvL3Vud3JhcFNUWigpLnNldEVuZFJ1bGUobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldEVuZChtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCAtMSwgZmFsc2UpOworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1QgZW5kIHJ1bGUgdG8gYSBmaXhlZCBkYXRlIHdpdGhpbiBhIG1vbnRoLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSB0aW1lICAgICAgICAgIFRoZSB0aW1lIG9mIHRoYXQgZGF5IChudW1iZXIgb2YgbWlsbGlzIGFmdGVyIG1pZG5pZ2h0KQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdoZW4gRFNUIGVuZHMgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcyBkYXlsaWdodAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwKKyAgICAgKiBkYXlPZk1vbnRoLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IHRpbWUpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRFbmRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCB0aW1lKTsKKworICAgICAgICBnZXRTVFpJbmZvKCkuc2V0RW5kKG1vbnRoLCAtMSwgLTEsIHRpbWUsIGRheU9mTW9udGgsIGZhbHNlKTsKKyAgICAgICAgc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgV0FMTF9USU1FLCB0aW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1QgZW5kIHJ1bGUgdG8gYSB3ZWVrZGF5IGJlZm9yZSBvciBhZnRlciBhIGdpdmUgZGF0ZSB3aXRoaW4KKyAgICAgKiBhIG1vbnRoLCBlLmcuLCB0aGUgZmlyc3QgTW9uZGF5IG9uIG9yIGFmdGVyIHRoZSA4dGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgQSBkYXRlIHdpdGhpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9uIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgZW5kcyBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzIGRheWxpZ2h0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQHBhcmFtIGFmdGVyICAgICAgICAgSWYgdHJ1ZSwgdGhpcyBydWxlIHNlbGVjdHMgdGhlIGZpcnN0IGRheU9mV2VlayBvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFmdGVyIGRheU9mTW9udGguICBJZiBmYWxzZSwgdGhpcyBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGFzdCBkYXlPZldlZWsgb24gb3IgYmVmb3JlIGRheU9mTW9udGguCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbmRSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBib29sZWFuIGFmdGVyKSB7CisgICAgICAgLy8gdW53cmFwU1RaKCkuc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBhZnRlcik7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldEVuZChtb250aCwgLTEsIGRheU9mV2VlaywgdGltZSwgZGF5T2ZNb250aCwgYWZ0ZXIpOworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSwgYWZ0ZXIpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lLCBpbnQgbW9kZSwgYm9vbGVhbiBhZnRlcil7CisgICAgICAgIHNldEVuZFJ1bGUobW9udGgsIGFmdGVyID8gZGF5T2ZNb250aCA6IC1kYXlPZk1vbnRoLCAtZGF5T2ZXZWVrLCB0aW1lLCBtb2RlKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgcnVsZS4gRm9yIGV4YW1wbGUsIGluIHRoZSBVLlMuLCBEYXlsaWdodAorICAgICAqIFNhdmluZ3MgVGltZSBlbmRzIGF0IHRoZSBsYXN0ICgtMSkgU3VuZGF5IGluIE9jdG9iZXIsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAgICAgKiBUaGVyZWZvcmUsIHlvdSBjYW4gc2V0IHRoZSBlbmQgcnVsZSBieSBjYWxsaW5nOgorICAgICAqIHNldEVuZFJ1bGUoVGltZUZpZWxkcy5PQ1RPQkVSLCAtMSwgVGltZUZpZWxkcy5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgICAgICogVmFyaW91cyBvdGhlciB0eXBlcyBvZiBydWxlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG1hbmlwdWxhdGluZyB0aGUgZGF5T2ZXZWVrCisgICAgICogYW5kIGRheU9mV2Vla0luTW9udGggcGFyYW1ldGVycy4gIEZvciBjb21wbGV0ZSBkZXRhaWxzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24KKyAgICAgKiBmb3Igc2V0U3RhcnRSdWxlKCkuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMgMC1iYXNlZC4KKyAgICAgKiBlZywgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrSW5Nb250aCB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcKKyAgICAgKiBkYXktb2Ytd2Vlay1pbi1tb250aC4gU2VlIHNldFN0YXJ0UnVsZSgpIGZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLiBTZWUgc2V0U3RhcnRSdWxlKCkKKyAgICAgKiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAcGFyYW0gdGltZSB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgdGltZS4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZXZWVrSW5Nb250aCwgaW50IGRheU9mV2VlaywgaW50IHRpbWUsIGludCBtb2RlKXsKKyAgICAgICAgZW5kTW9udGggICAgID0gbW9udGg7CisgICAgICAgIGVuZERheSAgICAgICA9IGRheU9mV2Vla0luTW9udGg7CisgICAgICAgIGVuZERheU9mV2VlayA9IGRheU9mV2VlazsKKyAgICAgICAgZW5kVGltZSAgICAgID0gdGltZTsKKyAgICAgICAgZW5kVGltZU1vZGUgID0gbW9kZTsKKyAgICAgICAgZGVjb2RlRW5kUnVsZSgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyB0aGF0IHRoZSBjbG9jayBpcyBhZHZhbmNlZCBkdXJpbmcgRFNULgorICAgICAqIEBwYXJhbSBtaWxsaXNTYXZlZER1cmluZ0RTVCB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGUgdGltZSBpcworICAgICAqIGFkdmFuY2VkIHdpdGggcmVzcGVjdCB0byBzdGFuZGFyZCB0aW1lIHdoZW4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgcnVsZXMKKyAgICAgKiBhcmUgaW4gZWZmZWN0LiBBIHBvc2l0aXZlIG51bWJlciwgdHlwaWNhbGx5IG9uZSBob3VyICgzNjAwMDAwKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREU1RTYXZpbmdzKGludCBtaWxsaXNTYXZlZER1cmluZ0RTVCkgeworICAgICAgICAvL3Vud3JhcFNUWigpLnNldERTVFNhdmluZ3MobWlsbGlzU2F2ZWREdXJpbmdEU1QpOworICAgICAgICBpZiAobWlsbGlzU2F2ZWREdXJpbmdEU1QgPD0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGRzdCA9IG1pbGxpc1NhdmVkRHVyaW5nRFNUOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1zIHRoYXQgdGhlIGNsb2NrIGlzIGFkdmFuY2VkIGR1cmluZyBEU1QuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGUgdGltZSBpcworICAgICAqIGFkdmFuY2VkIHdpdGggcmVzcGVjdCB0byBzdGFuZGFyZCB0aW1lIHdoZW4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgcnVsZXMKKyAgICAgKiBhcmUgaW4gZWZmZWN0LiBBIHBvc2l0aXZlIG51bWJlciwgdHlwaWNhbGx5IG9uZSBob3VyICgzNjAwMDAwKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERTVFNhdmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkc3Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFNpbXBsZVRpbWVab25lIHRoYXQgd3JhcHMgdGhlIGdpdmVuCisgICAgICogamF2YS51dGlsLlNpbXBsZVRpbWVab25lLiAgRG8gbm90IGNhbGw7IHVzZSB0aGUgVGltZVpvbmUKKyAgICAgKiBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSB0eiwgU3RyaW5nIElEKSB7CisgICAgICAgIHN1cGVyKHR6KTsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgICAgICBkc3QgPSB0ei5nZXREU1RTYXZpbmdzKCk7CisgICAgICAgIHJhdyA9IHR6LmdldFJhd09mZnNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUgdGhhdCB0aGlzIGNsYXNzIHdyYXBzLgorICAgICAqCisgICAgamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHVud3JhcFNUWigpIHsKKyAgICAgICAgcmV0dXJuIChqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUpIHVud3JhcCgpOworICAgIH0KKyAgICAqLworICAgIC8vIG9uIEpESyAxLjQgYW5kIGxhdGVyLCBjYW4ndCBkZXNlcmlhbGl6ZSBhIFNpbXBsZVRpbWVab25lIGFzIGEgU2ltcGxlVGltZVpvbmUuLi4KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBpbi5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICBTdHJpbmcgaWQgPSBnZXRJRCgpOworICAgICAgICAvKgorICAgICAgICBpZiAoaWQhPW51bGwgJiYgISh6b25lIGluc3RhbmNlb2YgamF2YS51dGlsLlNpbXBsZVRpbWVab25lICYmIHpvbmUuZ2V0SUQoKS5lcXVhbHMoaWQpKSkgeworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIqKiogcmVhZGp1c3QgIiArIHpvbmUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyB6b25lLmdldElEKCkgKyAiICoqKiIpOworICAgICAgICAgICAgamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHN0eiA9IAorICAgICAgICAgICAgICAgIG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3LCBpZCk7CisgICAgICAgICAgICBpZiAoZHN0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RFNUU2F2aW5ncyhkc3QpOworICAgICAgICAgICAgICAgIC8vIGlmIGl0IGlzIDAsIHRoZW4gdGhlcmUgc2hvdWxkbid0IGJlIHN0YXJ0L2VuZCBydWxlcyBhbmQgdGhlIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAvLyBiZWhhdmlvciBzaG91bGQgYmUgbm8gZHN0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh4aW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgeGluZm8uYXBwbHlUbyhzdHopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgem9uZUpESyA9IHN0ejsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAvKiBzZXQgYWxsIGluc3RhbmNlIHZhcmlhYmxlcyBpbiB0aGlzIG9iamVjdAorICAgICAgICAgKiB0byB0aGUgdmFsdWVzIGluIHpvbmUgCisgICAgICAgICAqLyAgICAgICAgICAgIAorICAgICAgICAgaWYgKHhpbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICB4aW5mby5hcHBseVRvKHRoaXMpOworICAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIlNpbXBsZVRpbWVab25lOiAiICsgZ2V0SUQoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFNUWkluZm8gZ2V0U1RaSW5mbygpIHsKKyAgICAgICAgaWYgKHhpbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHhpbmZvID0gbmV3IFNUWkluZm8oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geGluZm87CisgICAgfQorLy8gIFdBUk5JTkc6IGFzc3VtZXMgdGhhdCBubyBydWxlIGlzIG1lYXN1cmVkIGZyb20gdGhlIGVuZCBvZiBGZWJydWFyeSwKKy8vICBzaW5jZSB3ZSBkb24ndCBoYW5kbGUgbGVhcCB5ZWFycy4gQ291bGQgaGFuZGxlIGFzc3VtaW5nIGFsd2F5cworLy8gIEdyZWdvcmlhbiwgc2luY2Ugd2Uga25vdyB0aGV5IGRpZG4ndCBoYXZlIGRheWxpZ2h0IHRpbWUgd2hlbgorLy8gIEdyZWdvcmlhbiBjYWxlbmRhciBzdGFydGVkLgorICAvLyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gU1RBVElDTU9OVEhMRU5HVEggPSBuZXcgaW50W117MzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9OworICAgIHByaXZhdGUgZmluYWwgYnl0ZSBtb250aExlbmd0aFtdID0gc3RhdGljTW9udGhMZW5ndGg7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYnl0ZSBzdGF0aWNNb250aExlbmd0aFtdID0gezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBieXRlIHN0YXRpY0xlYXBNb250aExlbmd0aFtdID0gezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKworLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzKSAKKyAgICB7CisgICAgICAgIC8vIENoZWNrIHRoZSBtb250aCBiZWZvcmUgaW5kZXhpbmcgaW50byBTVEFUSUNNT05USExFTkdUSC4gVGhpcworICAgICAgICAvLyBkdXBsaWNhdGVzIHRoZSB0ZXN0IHRoYXQgb2NjdXJzIGluIHRoZSA3LWFyZ3VtZW50IGdldE9mZnNldCgpLAorICAgICAgICAvLyBob3dldmVyLCB0aGlzIGlzIHVuYXZvaWRhYmxlLiBXZSBkb24ndCBtaW5kIGJlY2F1c2UgdGhpcyBtZXRob2QsIGluCisgICAgICAgIC8vIGZhY3QsIHNob3VsZCBub3QgYmUgY2FsbGVkOyBpbnRlcm5hbCBjb2RlIHNob3VsZCBhbHdheXMgY2FsbCB0aGUKKyAgICAgICAgLy8gNy1hcmd1bWVudCBnZXRPZmZzZXQoKSwgYW5kIG91dHNpZGUgY29kZSBzaG91bGQgdXNlIENhbGVuZGFyLmdldChpbnQKKyAgICAgICAgLy8gZmllbGQpIHdpdGggZmllbGRzIFpPTkVfT0ZGU0VUIGFuZCBEU1RfT0ZGU0VULiBXZSBjYW4ndCBnZXQgcmlkIG9mCisgICAgICAgIC8vIHRoaXMgbWV0aG9kIGJlY2F1c2UgaXQncyBwdWJsaWMgQVBJLiAtIGxpdSA4LzEwLzk4CisgICAgICAgIGlmKG1vbnRoIDwgQ2FsZW5kYXIuSkFOVUFSWSB8fCBtb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMsIHN0YXRpY01vbnRoTGVuZ3RoW21vbnRoXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRheU9mV2VlaywgaW50IG1pbGxpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9udGhMZW5ndGgpICB7CisgICAgICAgIC8vIENoZWNrIHRoZSBtb250aCBiZWZvcmUgaW5kZXhpbmcgaW50byBTVEFUSUNNT05USExFTkdUSC4gVGhpcworICAgICAgICAvLyBkdXBsaWNhdGVzIGEgdGVzdCB0aGF0IG9jY3VycyBpbiB0aGUgOS1hcmd1bWVudCBnZXRPZmZzZXQoKSwKKyAgICAgICAgLy8gaG93ZXZlciwgdGhpcyBpcyB1bmF2b2lkYWJsZS4gV2UgZG9uJ3QgbWluZCBiZWNhdXNlIHRoaXMgbWV0aG9kLCBpbgorICAgICAgICAvLyBmYWN0LCBzaG91bGQgbm90IGJlIGNhbGxlZDsgaW50ZXJuYWwgY29kZSBzaG91bGQgYWx3YXlzIGNhbGwgdGhlCisgICAgICAgIC8vIDktYXJndW1lbnQgZ2V0T2Zmc2V0KCksIGFuZCBvdXRzaWRlIGNvZGUgc2hvdWxkIHVzZSBDYWxlbmRhci5nZXQoaW50CisgICAgICAgIC8vIGZpZWxkKSB3aXRoIGZpZWxkcyBaT05FX09GRlNFVCBhbmQgRFNUX09GRlNFVC4gV2UgY2FuJ3QgZ2V0IHJpZCBvZgorICAgICAgICAvLyB0aGlzIG1ldGhvZCBiZWNhdXNlIGl0J3MgcHVibGljIEFQSS4gLSBsaXUgOC8xMC85OAorICAgICAgICBpZihtb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPIEZJWCBXZSBkb24ndCBoYW5kbGUgbGVhcCB5ZWFycyB5ZXQhCisgICAgICAgIGludCBwcmV2TW9udGhMZW5ndGggPSAobW9udGggPj0gMSkgPyBzdGF0aWNNb250aExlbmd0aFttb250aCAtIDFdIDogMzE7CisKKyAgICAgICAgcmV0dXJuIGdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGgpOworICAgIH0KKworICAgIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXMsIAorICAgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuZ3RoLCBpbnQgcHJldk1vbnRoTGVuZ3RoICl7CisKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIC8qIFVzZSB0aGlzIHBhcmFtZXRlciBjaGVja2luZyBjb2RlIGZvciBub3JtYWwgb3BlcmF0aW9uLiAgT25seSBvbmUKKyAgICAgICAgICAgICAqIG9mIHRoZXNlIHR3byBibG9ja3Mgc2hvdWxkIGFjdHVhbGx5IGdldCBjb21waWxlZCBpbnRvIHRoZSBjbGFzcworICAgICAgICAgICAgICogZmlsZS4gICovCisgICAgICAgICAgICBpZiAoKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpCisgICAgICAgICAgICAgICAgfHwgbW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUgorICAgICAgICAgICAgICAgIHx8IGRheSA8IDEKKyAgICAgICAgICAgICAgICB8fCBkYXkgPiBtb250aExlbmd0aAorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA8IENhbGVuZGFyLlNVTkRBWQorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZCisgICAgICAgICAgICAgICAgfHwgbWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBNSUxMSVNfUEVSX0RBWQorICAgICAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA+IDMxCisgICAgICAgICAgICAgICAgfHwgcHJldk1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBwcmV2TW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIFRoaXMgcGFyYW1ldGVyIGNoZWNraW5nIGNvZGUgaXMgYmV0dGVyIGZvciBkZWJ1Z2dpbmcsIGJ1dAorICAgICAgICAgICAgICogb3ZlcmtpbGwgZm9yIG5vcm1hbCBvcGVyYXRpb24uICBPbmx5IG9uZSBvZiB0aGVzZSB0d28gYmxvY2tzCisgICAgICAgICAgICAgKiBzaG91bGQgYWN0dWFsbHkgZ2V0IGNvbXBpbGVkIGludG8gdGhlIGNsYXNzIGZpbGUuICAqLworICAgICAgICAgICAgaWYgKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGVyYSAiICsgZXJhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtb250aCA8IENhbGVuZGFyLkpBTlVBUlkKKyAgICAgICAgICAgICAgICB8fCBtb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBtb250aCAiICsgbW9udGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRheSA8IDEKKyAgICAgICAgICAgICAgICB8fCBkYXkgPiBtb250aExlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF5ICIgKyBkYXkrIiBtYXggbW9udGggbGVuOiAiK21vbnRoTGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgICAgICB8fCBkYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF5IG9mIHdlZWsgIiArIGRheU9mV2Vlayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBNSUxMSVNfUEVSX0RBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbWlsbGlzICIgKyBtaWxsaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA+IDMxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBtb250aCBsZW5ndGggIiArIG1vbnRoTGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmV2TW9udGhMZW5ndGggPCAyOAorICAgICAgICAgICAgICAgIHx8IHByZXZNb250aExlbmd0aCA+IDMxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBwcmV2aW91cyBtb250aCBsZW5ndGggIiArIHByZXZNb250aExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gcmF3OworCisgICAgICAgIC8vIEJhaWwgb3V0IGlmIHdlIGFyZSBiZWZvcmUgdGhlIG9uc2V0IG9mIGRheWxpZ2h0IHNhdmluZ3MgdGltZQorICAgICAgICBpZiAoIXVzZURheWxpZ2h0IHx8IHllYXIgPCBzdGFydFllYXIgfHwgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkFEKSByZXR1cm4gcmVzdWx0OworCisgICAgICAgIC8vIENoZWNrIGZvciBzb3V0aGVybiBoZW1pc3BoZXJlLiAgV2UgYXNzdW1lIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmQKKyAgICAgICAgLy8gbW9udGggYXJlIGRpZmZlcmVudC4KKyAgICAgICAgYm9vbGVhbiBzb3V0aGVybiA9IChzdGFydE1vbnRoID4gZW5kTW9udGgpOworCisgICAgICAgIC8vIENvbXBhcmUgdGhlIGRhdGUgdG8gdGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgcnVsZXMuKzEgPSBkYXRlPnJ1bGUsIC0xCisgICAgICAgIC8vID0gZGF0ZTxydWxlLCAwID0gZGF0ZT09cnVsZS4KKyAgICAgICAgaW50IHN0YXJ0Q29tcGFyZSA9IGNvbXBhcmVUb1J1bGUobW9udGgsIG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgPT0gVVRDX1RJTUUgPyAtcmF3IDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRNb2RlLCBzdGFydE1vbnRoLCBzdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXksIHN0YXJ0VGltZSk7CisgICAgICAgIGludCBlbmRDb21wYXJlID0gMDsKKworICAgICAgICAvKiBXZSBkb24ndCBhbHdheXMgaGF2ZSB0byBjb21wdXRlIGVuZENvbXBhcmUuICBGb3IgbWFueSBpbnN0YW5jZXMsCisgICAgICAgICAqIHN0YXJ0Q29tcGFyZSBpcyBlbm91Z2ggdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBpbiBEU1Qgb3Igbm90LiAgSW4gdGhlCisgICAgICAgICAqIG5vcnRoZXJuIGhlbWlzcGhlcmUsIGlmIHdlIGFyZSBiZWZvcmUgdGhlIHN0YXJ0IHJ1bGUsIHdlIGNhbid0IGhhdmUKKyAgICAgICAgICogRFNULiAgSW4gdGhlIHNvdXRoZXJuIGhlbWlzcGhlcmUsIGlmIHdlIGFyZSBhZnRlciB0aGUgc3RhcnQgcnVsZSwgd2UKKyAgICAgICAgICogbXVzdCBoYXZlIERTVC4gIFRoaXMgaXMgcmVmbGVjdGVkIGluIHRoZSB3YXkgdGhlIG5leHQgaWYgc3RhdGVtZW50CisgICAgICAgICAqIChub3QgdGhlIG9uZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcpIHNob3J0IGNpcmN1aXRzLiAqLworICAgICAgICBpZiAoc291dGhlcm4gIT0gKHN0YXJ0Q29tcGFyZSA+PSAwKSkgeworICAgICAgICAgICAgLyogRm9yIHRoZSBlbmRpbmcgcnVsZSBjb21wYXJpc29uLCB3ZSBhZGQgdGhlIGRzdFNhdmluZ3MgdG8gdGhlIG1pbGxpcworICAgICAgICAgICAgICogcGFzc2VkIGluIHRvIGNvbnZlcnQgdGhlbSBmcm9tIHN0YW5kYXJkIHRvIHdhbGwgdGltZS4gIFdlIHRoZW4gbXVzdAorICAgICAgICAgICAgICogbm9ybWFsaXplIHRoZSBtaWxsaXMgdG8gdGhlIHJhbmdlIDAuLm1pbGxpc1BlckRheS0xLiAqLworICAgICAgICAgICAgZW5kQ29tcGFyZSA9IGNvbXBhcmVUb1J1bGUobW9udGgsIG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZU1vZGUgPT0gV0FMTF9USU1FID8gZHN0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kVGltZU1vZGUgPT0gVVRDX1RJTUUgPyAtcmF3IDogMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRNb2RlLCBlbmRNb250aCwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5LCBlbmRUaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGZvciBib3RoIHRoZSBub3J0aGVybiBhbmQgc291dGhlcm4gaGVtaXNwaGVyZSBjYXNlcy4gIFdlCisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGluIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlLCB0aGUgc3RhcnQgcnVsZSBpcyBiZWZvcmUgdGhlCisgICAgICAgIC8vIGVuZCBydWxlIHdpdGhpbiB0aGUgY2FsZW5kYXIgeWVhciwgYW5kIHZpY2UgdmVyc2EgZm9yIHRoZSBzb3V0aGVybgorICAgICAgICAvLyBoZW1pc3BoZXJlLgorICAgICAgICBpZiAoKCFzb3V0aGVybiAmJiAoc3RhcnRDb21wYXJlID49IDAgJiYgZW5kQ29tcGFyZSA8IDApKSB8fAorICAgICAgICAgICAgKHNvdXRoZXJuICYmIChzdGFydENvbXBhcmUgPj0gMCB8fCBlbmRDb21wYXJlIDwgMCkpKQorICAgICAgICAgICAgcmVzdWx0ICs9IGRzdDsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworLy8gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgRE9NX01PREUgPSAxLAorICAgICAgICBET1dfSU5fTU9OVEhfTU9ERT0yLAorICAgICAgICBET1dfR0VfRE9NX01PREU9MywKKyAgICAgICAgRE9XX0xFX0RPTV9NT0RFPTQ7CisKKyAgICAvKioKKyAgICAgKiBUaW1lTW9kZSBpcyB1c2VkLCB0b2dldGhlciB3aXRoIGEgbWlsbGlzZWNvbmQgb2Zmc2V0IGFmdGVyCisgICAgICogbWlkbmlnaHQsIHRvIHNwZWNpZnkgYSBydWxlIHRyYW5zaXRpb24gdGltZS4gIE1vc3QgcnVsZXMKKyAgICAgKiB0cmFuc2l0aW9uIGF0IGEgbG9jYWwgd2FsbCB0aW1lLCB0aGF0IGlzLCBhY2NvcmRpbmcgdG8gdGhlCisgICAgICogY3VycmVudCB0aW1lIGluIGVmZmVjdCwgZWl0aGVyIHN0YW5kYXJkLCBvciBEU1QuICBIb3dldmVyLCBzb21lCisgICAgICogcnVsZXMgdHJhbnNpdGlvbiBhdCBsb2NhbCBzdGFuZGFyZCB0aW1lLCBhbmQgc29tZSBhdCBhIHNwZWNpZmljCisgICAgICogVVRDIHRpbWUuICBBbHRob3VnaCBpdCBtaWdodCBzZWVtIHRoYXQgYWxsIHRpbWVzIGNvdWxkIGJlCisgICAgICogY29udmVydGVkIHRvIHdhbGwgdGltZSwgdGh1cyBlbGltaW5hdGluZyB0aGUgbmVlZCBmb3IgdGhpcworICAgICAqIHBhcmFtZXRlciwgdGhpcyBpcyBub3QgdGhlIGNhc2UuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdBTExfVElNRSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFOREFSRF9USU1FID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVUQ19USU1FID0gMjsKKworICAgIC8qKgorICAgICAqIENvbXBhcmUgYSBnaXZlbiBkYXRlIGluIHRoZSB5ZWFyIHRvIGEgcnVsZS4gUmV0dXJuIDEsIDAsIG9yIC0xLCBkZXBlbmRpbmcKKyAgICAgKiBvbiB3aGV0aGVyIHRoZSBkYXRlIGlzIGFmdGVyLCBlcXVhbCB0bywgb3IgYmVmb3JlIHRoZSBydWxlIGRhdGUuIFRoZQorICAgICAqIG1pbGxpcyBhcmUgY29tcGFyZWQgZGlyZWN0bHkgYWdhaW5zdCB0aGUgcnVsZU1pbGxpcywgc28gYW55CisgICAgICogc3RhbmRhcmQtZGF5bGlnaHQgYWRqdXN0bWVudHMgbXVzdCBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAxIGlmIHRoZSBkYXRlIGlzIGFmdGVyIHRoZSBydWxlIGRhdGUsIC0xIGlmIHRoZSBkYXRlIGlzIGJlZm9yZQorICAgICAqICAgICAgICAgIHRoZSBydWxlIGRhdGUsIG9yIDAgaWYgdGhlIGRhdGUgaXMgZXF1YWwgdG8gdGhlIHJ1bGUgZGF0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb21wYXJlVG9SdWxlKGludCBtb250aCwgaW50IG1vbnRoTGVuLCBpbnQgcHJldk1vbnRoTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXMsIGludCBtaWxsaXNEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcnVsZU1vZGUsIGludCBydWxlTW9udGgsIGludCBydWxlRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBydWxlRGF5LCBpbnQgcnVsZU1pbGxpcykKKyAgICB7CisgICAgICAgIC8vIE1ha2UgYWRqdXN0bWVudHMgZm9yIHN0YXJ0VGltZU1vZGUgYW5kIGVuZFRpbWVNb2RlCisgICAgICAgIAorICAgICAgICBtaWxsaXMgKz0gbWlsbGlzRGVsdGE7CisgICAgICAgIAorICAgICAgICB3aGlsZSAobWlsbGlzID49IE1JTExJU19QRVJfREFZKSB7CisgICAgICAgICAgICBtaWxsaXMgLT0gTUlMTElTX1BFUl9EQVk7CisgICAgICAgICAgICArK2RheU9mTW9udGg7CisgICAgICAgICAgICBkYXlPZldlZWsgPSAxICsgKGRheU9mV2VlayAlIDcpOyAvLyBkYXlPZldlZWsgaXMgb25lLWJhc2VkCisgICAgICAgICAgICBpZiAoZGF5T2ZNb250aCA+IG1vbnRoTGVuKSB7CisgICAgICAgICAgICAgICAgZGF5T2ZNb250aCA9IDE7CisgICAgICAgICAgICAgICAgLyogV2hlbiBpbmNyZW1lbnRpbmcgdGhlIG1vbnRoLCBpdCBpcyBkZXNpcmlibGUgdG8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgKiBmcm9tIERFQ0VNQkVSIHRvIERFQ0VNQkVSKzEsIHNpbmNlIHdlIHVzZSB0aGUgcmVzdWx0IHRvCisgICAgICAgICAgICAgICAgICogY29tcGFyZSBhZ2FpbnN0IGEgcmVhbCBtb250aC4gV3JhcGFyb3VuZCBvZiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgICAgKiBsZWFkcyB0byBidWcgNDE3MzYwNC4gKi8KKyAgICAgICAgICAgICAgICArK21vbnRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChtaWxsaXMgPCAwKSB7CisgICAgICAgICAgICBtaWxsaXMgKz0gTUlMTElTX1BFUl9EQVk7CisgICAgICAgICAgICAtLWRheU9mTW9udGg7CisgICAgICAgICAgICBkYXlPZldlZWsgPSAxICsgKChkYXlPZldlZWsrNSkgJSA3KTsgLy8gZGF5T2ZXZWVrIGlzIG9uZS1iYXNlZAorICAgICAgICAgICAgaWYgKGRheU9mTW9udGggPCAxKSB7CisgICAgICAgICAgICAgICAgZGF5T2ZNb250aCA9IHByZXZNb250aExlbjsKKyAgICAgICAgICAgICAgICAtLW1vbnRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobW9udGggPCBydWxlTW9udGgpIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAobW9udGggPiBydWxlTW9udGgpIHJldHVybiAxOworCisgICAgICAgIGludCBydWxlRGF5T2ZNb250aCA9IDA7CisgICAgICAgIHN3aXRjaCAocnVsZU1vZGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBET01fTU9ERToKKyAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gcnVsZURheTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19JTl9NT05USF9NT0RFOgorICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIHJ1bGVEYXkgaXMgdGhlIGRheS1vZi13ZWVrLWluLW1vbnRoCisgICAgICAgICAgICBpZiAocnVsZURheSA+IDApCisgICAgICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSAxICsgKHJ1bGVEYXkgLSAxKSAqIDcgKworICAgICAgICAgICAgICAgICAgICAoNyArIHJ1bGVEYXlPZldlZWsgLSAoZGF5T2ZXZWVrIC0gZGF5T2ZNb250aCArIDEpKSAlIDc7CisgICAgICAgICAgICBlbHNlIC8vIEFzc3VtZSBydWxlRGF5IDwgMCBoZXJlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSBtb250aExlbiArIChydWxlRGF5ICsgMSkgKiA3IC0KKyAgICAgICAgICAgICAgICAgICAgKDcgKyAoZGF5T2ZXZWVrICsgbW9udGhMZW4gLSBkYXlPZk1vbnRoKSAtIHJ1bGVEYXlPZldlZWspICUgNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19HRV9ET01fTU9ERToKKyAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gcnVsZURheSArCisgICAgICAgICAgICAgICAgKDQ5ICsgcnVsZURheU9mV2VlayAtIHJ1bGVEYXkgLSBkYXlPZldlZWsgKyBkYXlPZk1vbnRoKSAlIDc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfTEVfRE9NX01PREU6CisgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IHJ1bGVEYXkgLQorICAgICAgICAgICAgICAgICg0OSAtIHJ1bGVEYXlPZldlZWsgKyBydWxlRGF5ICsgZGF5T2ZXZWVrIC0gZGF5T2ZNb250aCkgJSA3OworICAgICAgICAgICAgLy8gTm90ZSBhdCB0aGlzIHBvaW50IHJ1bGVEYXlPZk1vbnRoIG1heSBiZSA8MSwgYWx0aG91Z2ggaXQgd2lsbAorICAgICAgICAgICAgLy8gYmUgPj0xIGZvciB3ZWxsLWZvcm1lZCBydWxlcy4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRheU9mTW9udGggPCBydWxlRGF5T2ZNb250aCkgcmV0dXJuIC0xOworICAgICAgICBlbHNlIGlmIChkYXlPZk1vbnRoID4gcnVsZURheU9mTW9udGgpIHJldHVybiAxOworCisgICAgICAgIGlmIChtaWxsaXMgPCBydWxlTWlsbGlzKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH1lbHNlIGlmIChtaWxsaXMgPiBydWxlTWlsbGlzKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gZGF0YSBuZWVkZWQgZm9yIHN0cmVhbWluZyBtdXRhdGVkIFNpbXBsZVRpbWVab25lcyBpbiBKREsxNAorICAgIHByaXZhdGUgaW50IHJhdzsvLyB0aGUgVGltZVpvbmUncyByYXcgR01UIG9mZnNldCAKKyAgICBwcml2YXRlIGludCBkc3QgPSAzNjAwMDAwOworICAgIHByaXZhdGUgU1RaSW5mbyB4aW5mbyA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrOyAgIC8vIHRoZSBtb250aCwgZGF5LCBET1csIGFuZCB0aW1lIERTVCBzdGFydHMKKyAgICBwcml2YXRlIGludCBzdGFydFRpbWU7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRUaW1lTW9kZSwgZW5kVGltZU1vZGU7IC8vIE1vZGUgZm9yIHN0YXJ0VGltZSwgZW5kVGltZTsgc2VlIFRpbWVNb2RlCisgICAgcHJpdmF0ZSBpbnQgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrOyAvLyB0aGUgbW9udGgsIGRheSwgRE9XLCBhbmQgdGltZSBEU1QgZW5kcworICAgIHByaXZhdGUgaW50IGVuZFRpbWU7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRZZWFyOyAgLy8gdGhlIHllYXIgdGhlc2UgRFNUIHJ1bGVzIHRvb2sgZWZmZWN0IAorICAgIHByaXZhdGUgYm9vbGVhbiB1c2VEYXlsaWdodDsgLy8gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyBUaW1lWm9uZSB1c2VzIERTVAorICAgIHByaXZhdGUgaW50IHN0YXJ0TW9kZSwgZW5kTW9kZTsgICAvLyBmbGFncyBpbmRpY2F0aW5nIHdoYXQga2luZCBvZiBydWxlcyB0aGUgRFNUIHJ1bGVzIGFyZQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCl7CisgICAgICAgIHJldHVybiB1c2VEYXlsaWdodDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0aGlzKTsKKyAgICAgICAgZ2Muc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGdjLmluRGF5bGlnaHRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHJhdywgIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLCBpbnQgZW5kRGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kRGF5T2ZXZWVrLCBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFRpbWVNb2RlLGludCBkc3QpeworICAgICAgICAvKnRoaXMobmV3IGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZShyYXdPZmZzZXRHTVQsIElELCBzYXZpbmdzU3RhcnRNb250aCwgc2F2aW5nc1N0YXJ0RGF5LAorICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydERheU9mV2Vlaywgc2F2aW5nc1N0YXJ0VGltZSwgc2F2aW5nc0VuZE1vbnRoLAorICAgICAgICAgICAgICAgIHNhdmluZ3NFbmREYXksIHNhdmluZ3NFbmREYXlPZldlZWssIHNhdmluZ3NFbmRUaW1lLCBzYXZpbmdzRFNUKSwgSUQpOyovCisgICAgICAgIGNvbnN0cnVjdChyYXcsCisgICAgICAgICAgICAgICAgICBzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzdGFydFRpbWUsIHN0YXJ0VGltZU1vZGUsCisgICAgICAgICAgICAgICAgICBlbmRNb250aCwgZW5kRGF5LCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBlbmRUaW1lLCBlbmRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgIGRzdCk7CisgICAgfQorCisvLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoKKyAgICBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0R01ULCBTdHJpbmcgSUQsCisgICAgICAgIGludCBzYXZpbmdzU3RhcnRNb250aCwgaW50IHNhdmluZ3NTdGFydERheSwKKyAgICAgICAgaW50IHNhdmluZ3NTdGFydERheU9mV2VlaywgaW50IHNhdmluZ3NTdGFydFRpbWUsCisgICAgICAgIGludCBzYXZpbmdzRW5kTW9udGgsIGludCBzYXZpbmdzRW5kRGF5LAorICAgICAgICBpbnQgc2F2aW5nc0VuZERheU9mV2VlaywgaW50IHNhdmluZ3NFbmRUaW1lKQorICAgIHsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldEdNVCwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydE1vbnRoLCBzYXZpbmdzU3RhcnREYXksIHNhdmluZ3NTdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRNb250aCwgc2F2aW5nc0VuZERheSwgc2F2aW5nc0VuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWSk7CisgICAgfQorKi8KKy8vICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKgorICAgIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXRHTVQsIFN0cmluZyBJRCwKKyAgICAgICAgaW50IHNhdmluZ3NTdGFydE1vbnRoLCBpbnQgc2F2aW5nc1N0YXJ0RGF5LAorICAgICAgICBpbnQgc2F2aW5nc1N0YXJ0RGF5T2ZXZWVrLCBpbnQgc2F2aW5nc1N0YXJ0VGltZSwKKyAgICAgICAgaW50IHNhdmluZ3NFbmRNb250aCwgaW50IHNhdmluZ3NFbmREYXksCisgICAgICAgIGludCBzYXZpbmdzRW5kRGF5T2ZXZWVrLCBpbnQgc2F2aW5nc0VuZFRpbWUsCisgICAgICAgIGludCBzYXZpbmdzRFNUKQorICAgIHsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldEdNVCwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydE1vbnRoLCBzYXZpbmdzU3RhcnREYXksIHNhdmluZ3NTdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NTdGFydFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRNb250aCwgc2F2aW5nc0VuZERheSwgc2F2aW5nc0VuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIHNhdmluZ3NFbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRFNUKTsKKyAgICB9CisgICAgKi8KKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1Y3Rpb24gbWV0aG9kLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb25zdHJ1Y3QoaW50IHJhdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFRpbWVNb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkc3QpIHsKKyAgICAgICAgdGhpcy5yYXcgICAgICAgICAgICA9IHJhdzsKKyAgICAgICAgdGhpcy5zdGFydE1vbnRoICAgICA9IHN0YXJ0TW9udGg7CisgICAgICAgIHRoaXMuc3RhcnREYXkgICAgICAgPSBzdGFydERheTsKKyAgICAgICAgdGhpcy5zdGFydERheU9mV2VlayA9IHN0YXJ0RGF5T2ZXZWVrOworICAgICAgICB0aGlzLnN0YXJ0VGltZSAgICAgID0gc3RhcnRUaW1lOworICAgICAgICB0aGlzLnN0YXJ0VGltZU1vZGUgID0gc3RhcnRUaW1lTW9kZTsKKyAgICAgICAgdGhpcy5lbmRNb250aCAgICAgICA9IGVuZE1vbnRoOworICAgICAgICB0aGlzLmVuZERheSAgICAgICAgID0gZW5kRGF5OworICAgICAgICB0aGlzLmVuZERheU9mV2VlayAgID0gZW5kRGF5T2ZXZWVrOworICAgICAgICB0aGlzLmVuZFRpbWUgICAgICAgID0gZW5kVGltZTsKKyAgICAgICAgdGhpcy5lbmRUaW1lTW9kZSAgICA9IGVuZFRpbWVNb2RlOworICAgICAgICB0aGlzLmRzdCAgICAgICAgICAgID0gZHN0OworICAgICAgICB0aGlzLnN0YXJ0WWVhciAgICAgID0gMDsKKyAgICAgICAgdGhpcy5zdGFydE1vZGUgICAgICA9IERPTV9NT0RFOworICAgICAgICB0aGlzLmVuZE1vZGUgICAgICAgID0gRE9NX01PREU7CisKKyAgICAgICAgZGVjb2RlUnVsZXMoKTsKKworICAgICAgICBpZiAoZHN0IDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlUnVsZXMoKXsKKyAgICAgICAgZGVjb2RlU3RhcnRSdWxlKCk7CisgICAgICAgIGRlY29kZUVuZFJ1bGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIHN0YXJ0IHJ1bGUgYW5kIHZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzLiAgVGhlIHBhcmFtZXRlcnMgYXJlCisgICAgICogZXhwZWN0ZWQgdG8gYmUgaW4gZW5jb2RlZCBmb3JtLCB3aGljaCByZXByZXNlbnRzIHRoZSB2YXJpb3VzIHJ1bGUgbW9kZXMKKyAgICAgKiBieSBuZWdhdGluZyBvciB6ZXJvaW5nIGNlcnRhaW4gdmFsdWVzLiAgUmVwcmVzZW50YXRpb24gZm9ybWF0cyBhcmU6CisgICAgICogPHA+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgICAgIERPV19JTl9NT05USCAgRE9NICAgIERPVz49RE9NICBET1c8PURPTSAgbm8gRFNUCisgICAgICogICAgICAgICAgICAtLS0tLS0tLS0tLS0gIC0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0tLS0tLS0KKyAgICAgKiBtb250aCAgICAgICAwLi4xMSAgICAgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIGRheSAgICAgICAgLTUuLjUgICAgICAgICAxLi4zMSAgIDEuLjMxICAgIC0xLi4tMzEgICAwCisgICAgICogZGF5T2ZXZWVrICAgMS4uNyAgICAgICAgIDAgICAgICAtMS4uLTcgICAgLTEuLi03ICAgIGRvbid0IGNhcmUKKyAgICAgKiB0aW1lICAgICAgICAwLi5PTkVEQVkgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIDwvcHJlPgorICAgICAqIFRoZSByYW5nZSBmb3IgbW9udGggZG9lcyBub3QgaW5jbHVkZSBVTkRFQ0lNQkVSIHNpbmNlIHRoaXMgY2xhc3MgaXMKKyAgICAgKiByZWFsbHkgc3BlY2lmaWMgdG8gR3JlZ29yaWFuQ2FsZW5kYXIsIHdoaWNoIGRvZXMgbm90IHVzZSB0aGF0IG1vbnRoLgorICAgICAqIFRoZSByYW5nZSBmb3IgdGltZSBpbmNsdWRlcyBPTkVEQVkgKHZzLiBlbmRpbmcgYXQgT05FREFZLTEpIGJlY2F1c2UgdGhlCisgICAgICogZW5kIHJ1bGUgaXMgYW4gZXhjbHVzaXZlIGxpbWl0IHBvaW50LiAgVGhhdCBpcywgdGhlIHJhbmdlIG9mIHRpbWVzIHRoYXQKKyAgICAgKiBhcmUgaW4gRFNUIGluY2x1ZGUgdGhvc2UgPj0gdGhlIHN0YXJ0IGFuZCA8IHRoZSBlbmQuICBGb3IgdGhpcyByZWFzb24sCisgICAgICogaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNwZWNpZnkgYW4gZW5kIG9mIE9ORURBWSBpbiBvcmRlciB0byBpbmNsdWRlIHRoZQorICAgICAqIGVudGlyZSBkYXkuICBBbHRob3VnaCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGltZSAwIG9mIHRoZSBmb2xsb3dpbmcgZGF5LAorICAgICAqIGl0J3Mgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQsIGZvciBleGFtcGxlLCBvbiBEZWNlbWJlciAzMS4KKyAgICAgKiBXaGlsZSBhcmd1YWJseSB0aGUgc3RhcnQgcmFuZ2Ugc2hvdWxkIHN0aWxsIGJlIDAuLk9ORURBWS0xLCB3ZSBrZWVwCisgICAgICogdGhlIHN0YXJ0IGFuZCBlbmQgcmFuZ2VzIHRoZSBzYW1lIGZvciBjb25zaXN0ZW5jeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlU3RhcnRSdWxlKCkgeworCisgICAgICAgIHVzZURheWxpZ2h0ID0gKGJvb2xlYW4pKChzdGFydERheSAhPSAwKSAmJiAoZW5kRGF5ICE9IDApID8gdHJ1ZSA6IGZhbHNlICApOworICAgICAgICBpZiAodXNlRGF5bGlnaHQgJiYgZHN0ID09IDApIHsKKyAgICAgICAgICAgIGRzdCA9IFRpbWVab25lLk1JTExJU19QRVJfREFZOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydERheSAhPSAwKSB7CisgICAgICAgICAgICBpZiAoc3RhcnRNb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgc3RhcnRNb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSA8IDAgfHwgc3RhcnRUaW1lID49IFRpbWVab25lLk1JTExJU19QRVJfREFZIHx8CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lTW9kZSA8IFdBTExfVElNRSB8fCBzdGFydFRpbWVNb2RlID4gVVRDX1RJTUUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPT0gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPTV9NT0RFOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gKGludCktc3RhcnREYXlPZldlZWs7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydERheSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19HRV9ET01fTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5ID0gKGludCktc3RhcnREYXk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET1dfTEVfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0RGF5T2ZXZWVrID4gQ2FsZW5kYXIuU0FUVVJEQVkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGFydE1vZGUgPT0gRE9XX0lOX01PTlRIX01PREUpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXkgPCAtNSB8fCBzdGFydERheSA+IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnREYXkgPCAxIHx8IHN0YXJ0RGF5ID4gc3RhdGljTW9udGhMZW5ndGhbc3RhcnRNb250aF0pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIGVuZCBydWxlIGFuZCB2YWxpZGF0ZSB0aGUgcGFyYW1ldGVycy4gIFRoaXMgbWV0aG9kIGlzIGV4YWN0bHkKKyAgICAgKiBhbmFsb2dvdXMgdG8gZGVjb2RlU3RhcnRSdWxlKCkuCisgICAgICogQHNlZSAjZGVjb2RlU3RhcnRSdWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRlY29kZUVuZFJ1bGUoKSB7CisgICAgICAgIHVzZURheWxpZ2h0ID0gKGJvb2xlYW4pKChzdGFydERheSAhPSAwKSAmJiAoZW5kRGF5ICE9IDApID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0ICYmIGRzdCA9PSAwKSB7CisgICAgICAgICAgICBkc3QgPSBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kRGF5ICE9IDApIHsKKyAgICAgICAgICAgIGlmIChlbmRNb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgZW5kTW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbmRUaW1lIDwgMCB8fCBlbmRUaW1lID4gVGltZVpvbmUuTUlMTElTX1BFUl9EQVkgfHwKKyAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSA8IFdBTExfVElNRSB8fCBlbmRUaW1lTW9kZSA+IFVUQ19USU1FKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA9PSAwKSB7CisgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPTV9NT0RFOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kRGF5T2ZXZWVrID4gMCkgeworICAgICAgICAgICAgICAgICAgICBlbmRNb2RlID0gRE9XX0lOX01PTlRIX01PREU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kRGF5T2ZXZWVrID0gKGludCktZW5kRGF5T2ZXZWVrOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kRGF5ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPV19HRV9ET01fTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSA9IChpbnQpLWVuZERheTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET1dfTEVfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW5kTW9kZSA9PSBET1dfSU5fTU9OVEhfTU9ERSkgeworICAgICAgICAgICAgICAgIGlmIChlbmREYXkgPCAtNSB8fCBlbmREYXkgPiA1KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVuZERheTwxIHx8IGVuZERheSA+IHN0YXRpY01vbnRoTGVuZ3RoW2VuZE1vbnRoXSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFNpbXBsZVRpbWVab25lIGVxdWl2YWxlbnQgdG8gdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgb2JqIGlzIGEgU2ltcGxlVGltZVpvbmUgZXF1aXZhbGVudCB0byB0aGlzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKXsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdGhhdCA9IChTaW1wbGVUaW1lWm9uZSkgb2JqOworICAgICAgICByZXR1cm4gcmF3ICAgICA9PSB0aGF0LnJhdyAmJgorICAgICAgICAgICAgdXNlRGF5bGlnaHQgICAgID09IHRoYXQudXNlRGF5bGlnaHQgJiYKKyAgICAgICAgICAgIGlkRXF1YWxzKGdldElEKCksdGhhdC5nZXRJRCgpKSAmJgorICAgICAgICAgICAgKCF1c2VEYXlsaWdodAorICAgICAgICAgICAgIC8vIE9ubHkgY2hlY2sgcnVsZXMgaWYgdXNpbmcgRFNUCisgICAgICAgICAgICAgfHwgKGRzdCAgICAgICAgICAgID09IHRoYXQuZHN0ICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSAgICAgID09IHRoYXQuc3RhcnRNb2RlICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0TW9udGggICAgID09IHRoYXQuc3RhcnRNb250aCAmJgorICAgICAgICAgICAgICAgICBzdGFydERheSAgICAgICA9PSB0aGF0LnN0YXJ0RGF5ICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID09IHRoYXQuc3RhcnREYXlPZldlZWsgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRUaW1lICAgICAgPT0gdGhhdC5zdGFydFRpbWUgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRUaW1lTW9kZSAgPT0gdGhhdC5zdGFydFRpbWVNb2RlICYmCisgICAgICAgICAgICAgICAgIGVuZE1vZGUgICAgICAgID09IHRoYXQuZW5kTW9kZSAmJgorICAgICAgICAgICAgICAgICBlbmRNb250aCAgICAgICA9PSB0aGF0LmVuZE1vbnRoICYmCisgICAgICAgICAgICAgICAgIGVuZERheSAgICAgICAgID09IHRoYXQuZW5kRGF5ICYmCisgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayAgID09IHRoYXQuZW5kRGF5T2ZXZWVrICYmCisgICAgICAgICAgICAgICAgIGVuZFRpbWUgICAgICAgID09IHRoYXQuZW5kVGltZSAmJgorICAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSAgICA9PSB0aGF0LmVuZFRpbWVNb2RlICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0WWVhciAgICAgID09IHRoYXQuc3RhcnRZZWFyICkpOworCisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBpZEVxdWFscyhTdHJpbmcgaWQxLCBTdHJpbmcgaWQyKXsKKyAgICAgICAgaWYoaWQxPT1udWxsICYmIGlkMj09bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihpZDEhPW51bGwgJiYgaWQyIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiBpZDEuZXF1YWxzKGlkMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgICAgICAgIGludCByZXQgPSAoaW50KSggc3VwZXIuaGFzaENvZGUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhdyBeIChyYXc+Pj44KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VEYXlsaWdodD8wOjEpKTsKKyAgICAgICAgaWYoIXVzZURheWxpZ2h0KXsKKyAgICAgICAgICAgICAgICByZXQgKz0gKGludCkoZHN0IF4gKGRzdD4+PjEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSBeIChzdGFydE1vZGU+Pj4xMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vbnRoIF4gKHN0YXJ0TW9udGg+Pj4xMikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheSBeIChzdGFydERheT4+PjEzKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrIF4gKHN0YXJ0RGF5T2ZXZWVrPj4+MTQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lIF4gKHN0YXJ0VGltZT4+PjE1KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgXiAoc3RhcnRUaW1lTW9kZT4+PjE2KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgXiAoZW5kTW9kZT4+PjE3KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vbnRoIF4gKGVuZE1vbnRoPj4+MTgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5IF4gKGVuZERheT4+PjE5KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayBeIChlbmREYXlPZldlZWs+Pj4yMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lIF4gKGVuZFRpbWU+Pj4yMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lTW9kZSBeIChlbmRUaW1lTW9kZT4+PjIyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0WWVhciBeIChzdGFydFllYXI+Pj4yMykpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjbG9uZSBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyB0aW1lIHpvbmUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgY2xvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoIHJhdywgZ2V0SUQoKSk7CisgICAgICAgIGNsb25lLnN0YXJ0TW9udGggICAgID0gc3RhcnRNb250aDsKKyAgICAgICAgY2xvbmUuc3RhcnREYXkgICAgICAgPSBzdGFydERheTsKKyAgICAgICAgY2xvbmUuc3RhcnREYXlPZldlZWsgPSBzdGFydERheU9mV2VlazsKKyAgICAgICAgY2xvbmUuc3RhcnRUaW1lICAgICAgPSBzdGFydFRpbWU7CisgICAgICAgIGNsb25lLnN0YXJ0VGltZU1vZGUgID0gc3RhcnRUaW1lTW9kZTsKKyAgICAgICAgY2xvbmUuZW5kTW9udGggICAgICAgPSBlbmRNb250aDsKKyAgICAgICAgY2xvbmUuZW5kRGF5ICAgICAgICAgPSBlbmREYXk7CisgICAgICAgIGNsb25lLmVuZERheU9mV2VlayAgID0gZW5kRGF5T2ZXZWVrOworICAgICAgICBjbG9uZS5lbmRUaW1lICAgICAgICA9IGVuZFRpbWU7CisgICAgICAgIGNsb25lLmVuZFRpbWVNb2RlICAgID0gZW5kVGltZU1vZGU7CisgICAgICAgIGNsb25lLmRzdCAgICAgICAgICAgID0gZHN0OworICAgICAgICBjbG9uZS5zdGFydFllYXIgICAgICA9IHN0YXJ0WWVhcjsKKyAgICAgICAgY2xvbmUuc3RhcnRNb2RlICAgICAgPSBzdGFydE1vZGU7CisgICAgICAgIGNsb25lLmVuZE1vZGUgICAgICAgID0gZW5kTW9kZTsKKyAgICAgICAgY2xvbmUudXNlRGF5bGlnaHQgICAgPSB1c2VEYXlsaWdodDsKKyAgICAgICAgcmV0dXJuIGNsb25lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aHIpIHsKKyAgICAgICAgaWYoIShvdGhyIGluc3RhbmNlb2YgU2ltcGxlVGltZVpvbmUpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgb3RoZXIgPSAoU2ltcGxlVGltZVpvbmUpb3RocjsKKyAgICAgICAgcmV0dXJuIG90aGVyICE9IG51bGwgJiYKKyAgICAgICAgcmF3ICAgICA9PSBvdGhlci5yYXcgJiYKKyAgICAgICAgdXNlRGF5bGlnaHQgICAgID09IG90aGVyLnVzZURheWxpZ2h0ICYmCisgICAgICAgICghdXNlRGF5bGlnaHQKKyAgICAgICAgIC8vIE9ubHkgY2hlY2sgcnVsZXMgaWYgdXNpbmcgRFNUCisgICAgICAgICB8fCAoZHN0ICAgICA9PSBvdGhlci5kc3QgJiYKKyAgICAgICAgICAgICBzdGFydE1vZGUgICAgICA9PSBvdGhlci5zdGFydE1vZGUgJiYKKyAgICAgICAgICAgICBzdGFydE1vbnRoICAgICA9PSBvdGhlci5zdGFydE1vbnRoICYmCisgICAgICAgICAgICAgc3RhcnREYXkgICAgICAgPT0gb3RoZXIuc3RhcnREYXkgJiYKKyAgICAgICAgICAgICBzdGFydERheU9mV2VlayA9PSBvdGhlci5zdGFydERheU9mV2VlayAmJgorICAgICAgICAgICAgIHN0YXJ0VGltZSAgICAgID09IG90aGVyLnN0YXJ0VGltZSAmJgorICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgID09IG90aGVyLnN0YXJ0VGltZU1vZGUgJiYKKyAgICAgICAgICAgICBlbmRNb2RlICAgICAgICA9PSBvdGhlci5lbmRNb2RlICYmCisgICAgICAgICAgICAgZW5kTW9udGggICAgICAgPT0gb3RoZXIuZW5kTW9udGggJiYKKyAgICAgICAgICAgICBlbmREYXkgICAgICAgICA9PSBvdGhlci5lbmREYXkgJiYKKyAgICAgICAgICAgICBlbmREYXlPZldlZWsgICA9PSBvdGhlci5lbmREYXlPZldlZWsgJiYKKyAgICAgICAgICAgICBlbmRUaW1lICAgICAgICA9PSBvdGhlci5lbmRUaW1lICYmCisgICAgICAgICAgICAgZW5kVGltZU1vZGUgICAgPT0gb3RoZXIuZW5kVGltZU1vZGUgJiYKKyAgICAgICAgICAgICBzdGFydFllYXIgICAgICA9PSBvdGhlci5zdGFydFllYXIpKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNDNkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhCkBAIC0wLDAgKzEsNjg4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTm9TdWNoRWxlbWVudEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiA8cD5UaGUgc3RyaW5nIHRva2VuaXplciBjbGFzcyBhbGxvd3MgYW4gYXBwbGljYXRpb24gdG8gYnJlYWsgYSBzdHJpbmcgCisgKiBpbnRvIHRva2VucyBieSBwZXJmb3JtaW5nIGNvZGUgcG9pbnQgY29tcGFyaXNvbi4gCisgKiBUaGUgPGNvZGU+U3RyaW5nVG9rZW5pemVyPC9jb2RlPiBtZXRob2RzIGRvIG5vdCBkaXN0aW5ndWlzaCAKKyAqIGFtb25nIGlkZW50aWZpZXJzLCBudW1iZXJzLCBhbmQgcXVvdGVkIHN0cmluZ3MsIG5vciBkbyB0aGV5IHJlY29nbml6ZSAKKyAqIGFuZCBza2lwIGNvbW1lbnRzLjwvcD4KKyAqIDxwPgorICogVGhlIHNldCBvZiBkZWxpbWl0ZXJzICh0aGUgY29kZXBvaW50cyB0aGF0IHNlcGFyYXRlIHRva2VucykgbWF5IGJlIAorICogc3BlY2lmaWVkIGVpdGhlciBhdCBjcmVhdGlvbiB0aW1lIG9yIG9uIGEgcGVyLXRva2VuIGJhc2lzLiAKKyAqIDwvcD4KKyAqIDxwPgorICogQW4gaW5zdGFuY2Ugb2YgPGNvZGU+U3RyaW5nVG9rZW5pemVyPC9jb2RlPiBiZWhhdmVzIGluIG9uZSBvZiB0aHJlZSB3YXlzLCAKKyAqIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IHdhcyBjcmVhdGVkIHdpdGggdGhlIDxjb2RlPnJldHVybkRlbGltczwvY29kZT4gCisgKiBhbmQgPGNvZGU+Y29hbGVzY2VEZWxpbXM8L2NvZGU+CisgKiBmbGFncyBoYXZpbmcgdGhlIHZhbHVlIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPmZhbHNlPC9jb2RlPjogCisgKiA8dWw+CisgKiA8bGk+SWYgcmV0dXJuRGVsaW1zIGlzIDxjb2RlPmZhbHNlPC9jb2RlPiwgZGVsaW1pdGVyIGNvZGUgcG9pbnRzIHNlcnZlIHRvIAorICogc2VwYXJhdGUgdG9rZW5zLiBBIHRva2VuIGlzIGEgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZSAKKyAqIGNvZGUgcG9pbnRzIHRoYXQgYXJlIG5vdCBkZWxpbWl0ZXJzLiAKKyAqIDxsaT5JZiByZXR1cm5EZWxpbXMgaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIGRlbGltaXRlciBjb2RlIHBvaW50cyBhcmUgCisgKiB0aGVtc2VsdmVzIGNvbnNpZGVyZWQgdG8gYmUgdG9rZW5zLiBJbiB0aGlzIGNhc2UsIGlmIGNvYWxlc2NlRGVsaW1zIGlzCisgKiA8Y29kZT50cnVlPC9jb2RlPiwgc3VjaCB0b2tlbnMgd2lsbCBiZSB0aGUgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZQorICogY29kZSBwb2ludHMgdGhhdCA8ZW0+YXJlPC9lbT4gZGVsaW1pdGVycy4gIElmIGNvYWxlc2NlRGVsaW1zIGlzIGZhbHNlLAorICogYSB0b2tlbiB3aWxsIGJlIHJlY2VpdmVkIGZvciBlYWNoIGRlbGltaXRlciBjb2RlIHBvaW50LgorICogPC91bD4KKyAqIDxwPkEgdG9rZW4gaXMgdGh1cyBlaXRoZXIgb25lIAorICogZGVsaW1pdGVyIGNvZGUgcG9pbnQsIGEgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZSBjb2RlIHBvaW50cyB0aGF0CisgKiBhcmUgZGVsaW1pdGVycywgb3IgYSBtYXhpbWFsIHNlcXVlbmNlIG9mIGNvbnNlY3V0aXZlIGNvZGUgCisgKiBwb2ludHMgdGhhdCBhcmUgbm90IGRlbGltaXRlcnMuCisgKiA8L3A+CisgKiA8cD4KKyAqIEEgPHR0PlN0cmluZ1Rva2VuaXplcjwvdHQ+IG9iamVjdCBpbnRlcm5hbGx5IG1haW50YWlucyBhIGN1cnJlbnQgCisgKiBwb3NpdGlvbiB3aXRoaW4gdGhlIHN0cmluZyB0byBiZSB0b2tlbml6ZWQuIFNvbWUgb3BlcmF0aW9ucyBhZHZhbmNlIHRoaXMgCisgKiBjdXJyZW50IHBvc2l0aW9uIHBhc3QgdGhlIGNvZGUgcG9pbnQgcHJvY2Vzc2VkLgorICogPC9wPgorICogPHA+CisgKiBBIHRva2VuIGlzIHJldHVybmVkIGJ5IHRha2luZyBhIHN1YnN0cmluZyBvZiB0aGUgc3RyaW5nIHRoYXQgd2FzIHVzZWQgdG8gCisgKiBjcmVhdGUgdGhlIDx0dD5TdHJpbmdUb2tlbml6ZXI8L3R0PiBvYmplY3QuCisgKiA8L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgZGVmYXVsdCBkZWxpbWl0ZXIgdG9rZW5pemVyLgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoInRoaXMgaXMgYSB0ZXN0Iik7CisgKiB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgKiAgICAgcHJpbnRsbihzdC5uZXh0VG9rZW4oKSk7CisgKiAgICAgfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBwcmludHMgdGhlIGZvbGxvd2luZyBvdXRwdXQ6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIHRoaXMKKyAqICAgICBpcworICogICAgIGEKKyAqICAgICB0ZXN0CisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdGhlIHVzZSBvZiB0aGUgdG9rZW5pemVyIHdpdGggdXNlciBzcGVjaWZpZWQgZGVsaW1pdGVyLgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKAorICogICAgICJ0aGlzIGlzIGEgdGVzdCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAmIzkyO3VkODAwJiM5Mjt1ZDgwMCYjOTI7dWRjMDAmIzkyO3VkYzAwIiwKKyAqICAgICAgICAgIiAmIzkyO3VkODAwJiM5Mjt1ZGMwMCIpOworICogICAgIHdoaWxlIChzdC5oYXNNb3JlVG9rZW5zKCkpIHsKKyAqICAgICAgICAgcHJpbnRsbihzdC5uZXh0VG9rZW4oKSk7CisgKiAgICAgfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBwcmludHMgdGhlIGZvbGxvd2luZyBvdXRwdXQ6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIHRoaXMKKyAqICAgICBpcworICogICAgIGEKKyAqICAgICB0ZXN0CisgKiAgICAgd2l0aAorICogICAgIHN1cHBsZW1lbnRhcnkKKyAqICAgICBjaGFyYWN0ZXJzCisgKiAgICAgJiM5Mjt1ZDgwMAorICogICAgICYjOTI7dWRjMDAKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDwvcD4KKyAqIEBhdXRob3Igc3luIHdlZQorICogQHN0YWJsZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdUb2tlbml6ZXIgaW1wbGVtZW50cyBFbnVtZXJhdGlvbiAKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucywgb25lIHBlciBkZWxpbWl0ZXIuCisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBzdHIgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgVW5pY29kZVNldCBkZWxpbSwgYm9vbGVhbiByZXR1cm5kZWxpbXMpCisgICAgeworICAgICAgICB0aGlzKHN0ciwgZGVsaW0sIHJldHVybmRlbGltcywgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnN0cnVjdHMgYSBzdHJpbmcgdG9rZW5pemVyIGZvciB0aGUgc3BlY2lmaWVkIHN0cmluZy4gQWxsIAorICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIGRlbGltIGFyZ3VtZW50IGFyZSB0aGUgZGVsaW1pdGVycyBmb3Igc2VwYXJhdGluZyAKKyAgICAgKiB0b2tlbnMuPC9wPiAKKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgZmFsc2UsIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyBhcmUgCisgICAgICogc2tpcHBlZCBhbmQgb25seSBzZXJ2ZSBhcyBzZXBhcmF0b3JzIGJldHdlZW4gdG9rZW5zLjwvcD4KKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgdHJ1ZSwgdGhlbiB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgCisgICAgICogYXJlIGFsc28gcmV0dXJuZWQgYXMgdG9rZW5zLiAgSWYgY29hbGVzY2VkZWxpbXMgaXMgdHJ1ZSwgb25lIHRva2VuCisgICAgICogaXMgcmV0dXJuZWQgZm9yIGVhY2ggcnVuIG9mIGRlbGltaXRlciBjaGFyYWN0ZXJzLCBvdGhlcndpc2Ugb25lCisgICAgICogdG9rZW4gaXMgcmV0dXJuZWQgcGVyIGRlbGltaXRlci4gIFNpbmNlIHN1cnJvZ2F0ZSBwYWlycyBjYW4gYmUKKyAgICAgKiBkZWxpbWl0ZXJzLCB0aGUgcmV0dXJuZWQgdG9rZW4gbWlnaHQgYmUgdHdvIGNoYXJzIGluIGxlbmd0aC48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQHBhcmFtIGNvYWxlc2NlZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiBhIHJ1biBvZiAKKyAgICAgKiAgICAgICAgZGVsaW1pdGVycyBhcyBhIHNpbmdsZSB0b2tlbiBvciBhcyBvbmUgdG9rZW4gcGVyIGRlbGltaXRlci4gIAorICAgICAqICAgICAgICBUaGlzIG9ubHkgdGFrZXMgZWZmZWN0IGlmIHJldHVybmRlbGltcyBpcyB0cnVlLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNC4zCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBVbmljb2RlU2V0IGRlbGltLCBib29sZWFuIHJldHVybmRlbGltcywgYm9vbGVhbiBjb2FsZXNjZWRlbGltcykKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IHN0cjsKKyAgICAgICAgbV9sZW5ndGhfID0gc3RyLmxlbmd0aCgpOworICAgICAgICBpZiAoZGVsaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfID0gZGVsaW07ICAgCisgICAgICAgIH0KKyAgICAgICAgbV9yZXR1cm5EZWxpbWl0ZXJzXyA9IHJldHVybmRlbGltczsKKyAgICAgICAgbV9jb2FsZXNjZURlbGltaXRlcnNfID0gY29hbGVzY2VkZWxpbXM7CisgICAgICAgIG1fdG9rZW5PZmZzZXRfID0gLTE7CisgICAgICAgIG1fdG9rZW5TaXplXyA9IC0xOworICAgICAgICBpZiAobV9sZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIC8vIHN0cmluZyBsZW5ndGggMCwgbm8gdG9rZW5zCisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIGlmICghcmV0dXJuZGVsaW1zKSB7CisgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBUaGUgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPkRlbGltaXRlciBjaGFyYWN0ZXJzIHRoZW1zZWx2ZXMgd2lsbCBub3QgYmUgdHJlYXRlZCBhcyB0b2tlbnMuPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBVbmljb2RlU2V0IGRlbGltKQorICAgIHsKKyAgICAgICAgdGhpcyhzdHIsIGRlbGltLCBmYWxzZSwgZmFsc2UpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucywgb25lIHBlciBkZWxpbWl0ZXIuCisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBzdHIgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgU3RyaW5nIGRlbGltLCBib29sZWFuIHJldHVybmRlbGltcykKKyAgICB7CisgICAgICAgIHRoaXMoc3RyLCBkZWxpbSwgcmV0dXJuZGVsaW1zLCBmYWxzZSk7IC8vIGphdmEgZGVmYXVsdCBiZWhhdmlvcgorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnN0cnVjdHMgYSBzdHJpbmcgdG9rZW5pemVyIGZvciB0aGUgc3BlY2lmaWVkIHN0cmluZy4gQWxsIAorICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIGRlbGltIGFyZ3VtZW50IGFyZSB0aGUgZGVsaW1pdGVycyBmb3Igc2VwYXJhdGluZyAKKyAgICAgKiB0b2tlbnMuPC9wPiAKKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgZmFsc2UsIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyBhcmUgCisgICAgICogc2tpcHBlZCBhbmQgb25seSBzZXJ2ZSBhcyBzZXBhcmF0b3JzIGJldHdlZW4gdG9rZW5zLjwvcD4KKyAgICAgKiA8cD5JZiB0aGUgcmV0dXJuRGVsaW1zIGZsYWcgaXMgdHJ1ZSwgdGhlbiB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgCisgICAgICogYXJlIGFsc28gcmV0dXJuZWQgYXMgdG9rZW5zLiAgSWYgY29hbGVzY2VkZWxpbXMgaXMgdHJ1ZSwgb25lIHRva2VuCisgICAgICogaXMgcmV0dXJuZWQgZm9yIGVhY2ggcnVuIG9mIGRlbGltaXRlciBjaGFyYWN0ZXJzLCBvdGhlcndpc2Ugb25lCisgICAgICogdG9rZW4gaXMgcmV0dXJuZWQgcGVyIGRlbGltaXRlci4gIFNpbmNlIHN1cnJvZ2F0ZSBwYWlycyBjYW4gYmUKKyAgICAgKiBkZWxpbWl0ZXJzLCB0aGUgcmV0dXJuZWQgdG9rZW4gbWlnaHQgYmUgdHdvIGNoYXJzIGluIGxlbmd0aC48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBwYXJhbSByZXR1cm5kZWxpbXMgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSBkZWxpbWl0ZXJzIAorICAgICAqICAgICAgICBhcyB0b2tlbnMuCisgICAgICogQHBhcmFtIGNvYWxlc2NlZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiBhIHJ1biBvZiAKKyAgICAgKiAgICAgICAgZGVsaW1pdGVycyBhcyBhIHNpbmdsZSB0b2tlbiBvciBhcyBvbmUgdG9rZW4gcGVyIGRlbGltaXRlci4gIAorICAgICAqICAgICAgICBUaGlzIG9ubHkgdGFrZXMgZWZmZWN0IGlmIHJldHVybmRlbGltcyBpcyB0cnVlLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNC4zCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBTdHJpbmcgZGVsaW0sIGJvb2xlYW4gcmV0dXJuZGVsaW1zLCBib29sZWFuIGNvYWxlc2NlZGVsaW1zKQorICAgIHsKKyAgICAgICAgLy8gZG9uJ3QgaWdub3JlIHdoaXRlc3BhY2UKKyAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIGlmIChkZWxpbSAhPSBudWxsICYmIGRlbGltLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfLmFkZEFsbChkZWxpbSk7CisgICAgICAgICAgICBjaGVja0RlbGltaXRlcnMoKTsKKyAgICAgICAgfQorICAgICAgICBtX2NvYWxlc2NlRGVsaW1pdGVyc18gPSBjb2FsZXNjZWRlbGltczsKKyAgICAgICAgbV9zb3VyY2VfID0gc3RyOworICAgICAgICBtX2xlbmd0aF8gPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIG1fcmV0dXJuRGVsaW1pdGVyc18gPSByZXR1cm5kZWxpbXM7CisgICAgICAgIG1fdG9rZW5PZmZzZXRfID0gLTE7CisgICAgICAgIG1fdG9rZW5TaXplXyA9IC0xOworICAgICAgICBpZiAobV9sZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIC8vIHN0cmluZyBsZW5ndGggMCwgbm8gdG9rZW5zCisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIGlmICghcmV0dXJuZGVsaW1zKSB7CisgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBUaGUgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPkRlbGltaXRlciBjaGFyYWN0ZXJzIHRoZW1zZWx2ZXMgd2lsbCBub3QgYmUgdHJlYXRlZCBhcyB0b2tlbnMuPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyLCBTdHJpbmcgZGVsaW0pCisgICAgeworICAgICAgICAvLyBkb24ndCBpZ25vcmUgd2hpdGVzcGFjZQorICAgICAgICB0aGlzKHN0ciwgZGVsaW0sIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiAKKyAgICAgKiBUaGUgdG9rZW5pemVyIHVzZXMgdGhlIGRlZmF1bHQgZGVsaW1pdGVyIHNldCwgd2hpY2ggaXMgCisgICAgICogIiAmIzkyO3QmIzkyO24mIzkyO3ImIzkyO2YiOiAKKyAgICAgKiB0aGUgc3BhY2UgY2hhcmFjdGVyLCB0aGUgdGFiIGNoYXJhY3RlciwgdGhlIG5ld2xpbmUgY2hhcmFjdGVyLCB0aGUgCisgICAgICogY2FycmlhZ2UtcmV0dXJuIGNoYXJhY3RlciwgYW5kIHRoZSBmb3JtLWZlZWQgY2hhcmFjdGVyLjwvcD4gCisgICAgICogPHA+RGVsaW1pdGVyIGNoYXJhY3RlcnMgdGhlbXNlbHZlcyB3aWxsIG5vdCBiZSB0cmVhdGVkIGFzIHRva2Vucy48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1Rva2VuaXplcihTdHJpbmcgc3RyKSAKKyAgICB7CisgICAgICAgIHRoaXMoc3RyLCBERUZBVUxUX0RFTElNSVRFUlNfLCBmYWxzZSwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIGlmIHRoZXJlIGFyZSBtb3JlIHRva2VucyBhdmFpbGFibGUgZnJvbSB0aGlzIHRva2VuaXplcidzIAorICAgICAqIHN0cmluZy4gCisgICAgICogSWYgdGhpcyBtZXRob2QgcmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+LCB0aGVuIGEgc3Vic2VxdWVudCBjYWxsIHRvIAorICAgICAqIDx0dD5uZXh0VG9rZW48L3R0PiB3aXRoIG5vIGFyZ3VtZW50IHdpbGwgc3VjY2Vzc2Z1bGx5IHJldHVybiBhIHRva2VuLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHRva2VuIAorICAgICAqICAgICAgICAgaW4gdGhlIHN0cmluZyBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbjsgPGNvZGU+ZmFsc2U8L2NvZGU+IAorICAgICAqICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc01vcmVUb2tlbnMoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX25leHRPZmZzZXRfID49IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgdG9rZW4gZnJvbSB0aGlzIHN0cmluZyB0b2tlbml6ZXIuCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoaXMgc3RyaW5nIHRva2VuaXplci4KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zIGluIAorICAgICAqICAgICAgICAgICAgdGhpcyB0b2tlbml6ZXIncyBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0VG9rZW4oKSAKKyAgICB7CisgICAgICAgIGlmIChtX3Rva2VuT2Zmc2V0XyA8IDApIHsKKyAgICAgICAgICAgIGlmIChtX25leHRPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJObyBtb3JlIHRva2VucyBpbiBTdHJpbmciKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHByZS1jYWxjdWxhdGlvbnMgb2YgdG9rZW5zIG5vdCBkb25lCisgICAgICAgICAgICBpZiAobV9yZXR1cm5EZWxpbWl0ZXJzXykgeworICAgICAgICAgICAgICAgIGludCB0b2tlbmxpbWl0ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChtX3NvdXJjZV8sIG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgIGJvb2xlYW4gY29udGFpbnMgPSBkZWxpbXMgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICAgICAgPyBtX2RlbGltaXRlcnNfLmNvbnRhaW5zKGMpIAorICAgICAgICAgICAgICAgICAgICA6IGMgPCBkZWxpbXMubGVuZ3RoICYmIGRlbGltc1tjXTsKKyAgICAgICAgICAgICAgICBpZiAoY29udGFpbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvYWxlc2NlRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBtX25leHRPZmZzZXRfICsgVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPT0gbV9sZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fbmV4dE9mZnNldF8sIHRva2VubGltaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gdG9rZW5saW1pdDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHRva2VubGltaXQgPSBnZXROZXh0RGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSB0b2tlbmxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9zb3VyY2VfLnN1YnN0cmluZyhtX25leHRPZmZzZXRfLCB0b2tlbmxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIodG9rZW5saW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY291bnQgd2FzIGNhbGxlZCBiZWZvcmUgYW5kIHdlIGhhdmUgYWxsIHRoZSB0b2tlbnMKKyAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfID49IG1fdG9rZW5TaXplXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIk5vIG1vcmUgdG9rZW5zIGluIFN0cmluZyIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgIGlmIChtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSA+PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dKTsKKyAgICAgICAgfQorICAgICAgICBtX3Rva2VuT2Zmc2V0XyArKzsKKyAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IC0xOworICAgICAgICBpZiAobV90b2tlbk9mZnNldF8gPCBtX3Rva2VuU2l6ZV8pIHsKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBtX3Rva2VuU3RhcnRfW21fdG9rZW5PZmZzZXRfXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHRva2VuIGluIHRoaXMgc3RyaW5nIHRva2VuaXplcidzIHN0cmluZy4gRmlyc3QsIAorICAgICAqIHRoZSBzZXQgb2YgY2hhcmFjdGVycyBjb25zaWRlcmVkIHRvIGJlIGRlbGltaXRlcnMgYnkgdGhpcyAKKyAgICAgKiA8dHQ+U3RyaW5nVG9rZW5pemVyPC90dD4gb2JqZWN0IGlzIGNoYW5nZWQgdG8gYmUgdGhlIGNoYXJhY3RlcnMgaW4gCisgICAgICogdGhlIHN0cmluZyA8dHQ+ZGVsaW08L3R0Pi4gVGhlbiB0aGUgbmV4dCB0b2tlbiBpbiB0aGUgc3RyaW5nCisgICAgICogYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgcmV0dXJuZWQuIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIAorICAgICAqIGFkdmFuY2VkIGJleW9uZCB0aGUgcmVjb2duaXplZCB0b2tlbi4gIFRoZSBuZXcgZGVsaW1pdGVyIHNldCAKKyAgICAgKiByZW1haW5zIHRoZSBkZWZhdWx0IGFmdGVyIHRoaXMgY2FsbC4gCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBuZXcgZGVsaW1pdGVycy4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHRva2VuLCBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBkZWxpbWl0ZXIgc2V0LgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHRUb2tlbihTdHJpbmcgZGVsaW0pIAorICAgIHsKKyAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIGlmIChkZWxpbSAhPSBudWxsICYmIGRlbGltLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfLmFkZEFsbChkZWxpbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5leHRUb2tlbihtX2RlbGltaXRlcnNfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCB0b2tlbiBpbiB0aGlzIHN0cmluZyB0b2tlbml6ZXIncyBzdHJpbmcuIEZpcnN0LCAKKyAgICAgKiB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgY29uc2lkZXJlZCB0byBiZSBkZWxpbWl0ZXJzIGJ5IHRoaXMgCisgICAgICogPHR0PlN0cmluZ1Rva2VuaXplcjwvdHQ+IG9iamVjdCBpcyBjaGFuZ2VkIHRvIGJlIHRoZSBjaGFyYWN0ZXJzIGluIAorICAgICAqIHRoZSBzdHJpbmcgPHR0PmRlbGltPC90dD4uIFRoZW4gdGhlIG5leHQgdG9rZW4gaW4gdGhlIHN0cmluZworICAgICAqIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHJldHVybmVkLiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyAKKyAgICAgKiBhZHZhbmNlZCBiZXlvbmQgdGhlIHJlY29nbml6ZWQgdG9rZW4uICBUaGUgbmV3IGRlbGltaXRlciBzZXQgCisgICAgICogcmVtYWlucyB0aGUgZGVmYXVsdCBhZnRlciB0aGlzIGNhbGwuIAorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgbmV3IGRlbGltaXRlcnMuCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiwgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgZGVsaW1pdGVyIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zIGluIAorICAgICAqICAgICAgICAgICAgdGhpcyB0b2tlbml6ZXIncyBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0VG9rZW4oVW5pY29kZVNldCBkZWxpbSkgCisgICAgeworICAgICAgICBtX2RlbGltaXRlcnNfID0gZGVsaW07CisgICAgICAgIGNoZWNrRGVsaW1pdGVycygpOworICAgICAgICBtX3Rva2VuT2Zmc2V0XyA9IC0xOworICAgICAgICBtX3Rva2VuU2l6ZV8gPSAtMTsKKyAgICAgICAgaWYgKCFtX3JldHVybkRlbGltaXRlcnNfKSB7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gZ2V0TmV4dE5vbkRlbGltaXRlcihtX25leHRPZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV4dFRva2VuKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPmhhc01vcmVUb2tlbnM8L2NvZGU+IG1ldGhvZC4gCisgICAgICogSXQgZXhpc3RzIHNvIHRoYXQgdGhpcyBjbGFzcyBjYW4gaW1wbGVtZW50IHRoZSAKKyAgICAgKiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gaW50ZXJmYWNlLiAKKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGFyZSBtb3JlIHRva2VuczsKKyAgICAgKiAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCisgICAgICogQHNlZSAjaGFzTW9yZVRva2VucygpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCkgCisgICAgeworICAgICAgICByZXR1cm4gaGFzTW9yZVRva2VucygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uZXh0VG9rZW48L2NvZGU+IG1ldGhvZCwgZXhjZXB0IAorICAgICAqIHRoYXQgaXRzIGRlY2xhcmVkIHJldHVybiB2YWx1ZSBpcyA8Y29kZT5PYmplY3Q8L2NvZGU+IHJhdGhlciB0aGFuIAorICAgICAqIDxjb2RlPlN0cmluZzwvY29kZT4uIEl0IGV4aXN0cyBzbyB0aGF0IHRoaXMgY2xhc3MgY2FuIGltcGxlbWVudCB0aGUgCisgICAgICogPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IGludGVyZmFjZS4gCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiBpbiB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc2VlICNuZXh0VG9rZW4oKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXh0VG9rZW4oKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhpcyB0b2tlbml6ZXIncyAKKyAgICAgKiA8Y29kZT5uZXh0VG9rZW48L2NvZGU+IG1ldGhvZCBjYW4gYmUgY2FsbGVkIGJlZm9yZSBpdCBnZW5lcmF0ZXMgYW4gCisgICAgICogZXhjZXB0aW9uLiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBub3QgYWR2YW5jZWQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHRva2VucyByZW1haW5pbmcgaW4gdGhlIHN0cmluZyB1c2luZyB0aGUgCisgICAgICogICAgICAgICBjdXJyZW50IGRlbGltaXRlciBzZXQuCisgICAgICogQHNlZSAjbmV4dFRva2VuKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvdW50VG9rZW5zKCkgCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaWYgKGhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV90b2tlblNpemVfIC0gbV90b2tlbk9mZnNldF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV90b2tlblN0YXJ0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV90b2tlblN0YXJ0XyA9IG5ldyBpbnRbVE9LRU5fU0laRV9dOworICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF8gPSBuZXcgaW50W1RPS0VOX1NJWkVfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZiAobV90b2tlblN0YXJ0Xy5sZW5ndGggPT0gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wdG9rZW5pbmRleFtdID0gbV90b2tlblN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRlbXB0b2tlbnNpemVbXSA9IG1fdG9rZW5MaW1pdF87CisgICAgICAgICAgICAgICAgICAgIGludCBvcmlnaW5hbHNpemUgPSB0ZW1wdG9rZW5pbmRleC5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdzaXplID0gb3JpZ2luYWxzaXplICsgVE9LRU5fU0laRV87CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5TdGFydF8gPSBuZXcgaW50W25ld3NpemVdOworICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfID0gbmV3IGludFtuZXdzaXplXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wdG9rZW5pbmRleCwgMCwgbV90b2tlblN0YXJ0XywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wdG9rZW5zaXplLCAwLCBtX3Rva2VuTGltaXRfLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbHNpemUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3Rva2VuU3RhcnRfW3Jlc3VsdF0gPSBtX25leHRPZmZzZXRfOworICAgICAgICAgICAgICAgIGlmIChtX3JldHVybkRlbGltaXRlcnNfKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KG1fc291cmNlXywgbV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29udGFpbnMgPSBkZWxpbXMgPT0gbnVsbCAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gbV9kZWxpbWl0ZXJzXy5jb250YWlucyhjKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIDogYyA8IGRlbGltcy5sZW5ndGggJiYgZGVsaW1zW2NdOworICAgICAgICAgICAgICAgICAgICBpZiAoY29udGFpbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvYWxlc2NlRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW3Jlc3VsdF0gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCA9IG1fbmV4dE9mZnNldF8gKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwID09IG1fbGVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IHA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IG1fdG9rZW5MaW1pdF9bcmVzdWx0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fdG9rZW5MaW1pdF9bcmVzdWx0XSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0gd2hpbGUgKG1fbmV4dE9mZnNldF8gPj0gMCk7CisgICAgICAgICAgICBtX3Rva2VuT2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3Rva2VuU2l6ZV8gPSByZXN1bHQ7CisgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gbV90b2tlblN0YXJ0X1swXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3VycmVudCBvZmZzZXQgdG8gdGhlIHRva2VuIGFycmF5LiBJZiB0aGUgYXJyYXkgdG9rZW4gaXMgbm90IHNldCB1cCB5ZXQsCisgICAgICogdGhpcyB2YWx1ZSBpcyBhIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90b2tlbk9mZnNldF87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdG9rZW4gYXJyYXkuIElmIHRoZSBhcnJheSB0b2tlbiBpcyBub3Qgc2V0IHVwIHlldCwKKyAgICAgKiB0aGlzIHZhbHVlIGlzIGEgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2VuU2l6ZV87CisgICAgLyoqCisgICAgICogQXJyYXkgb2YgcHJlLWNhbGN1bGF0ZWQgdG9rZW5zIHN0YXJ0IGluZGV4ZXMgaW4gc291cmNlIHN0cmluZyB0ZXJtaW5hdGVkIAorICAgICAqIGJ5IC0xLgorICAgICAqIFRoaXMgaXMgb25seSBzZXQgdXAgZHVyaW5nIGNvdW50VG9rZW5zKCkgYW5kIG9ubHkgc3RvcmVzIHRoZSByZW1haW5pbmcKKyAgICAgKiB0b2tlbnMsIG5vdCBhbGwgdG9rZW5zIGluY2x1ZGluZyBwYXJzZWQgb25lcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5TdGFydF9bXTsKKyAgICAvKioKKyAgICAgKiBBcnJheSBvZiBwcmUtY2FsY3VsYXRlZCB0b2tlbnMgbGltaXQgaW5kZXhlcyBpbiBzb3VyY2Ugc3RyaW5nLgorICAgICAqIFRoaXMgaXMgb25seSBzZXQgdXAgZHVyaW5nIGNvdW50VG9rZW5zKCkgYW5kIG9ubHkgc3RvcmVzIHRoZSByZW1haW5pbmcKKyAgICAgKiB0b2tlbnMsIG5vdCBhbGwgdG9rZW5zIGluY2x1ZGluZyBwYXJzZWQgb25lcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5MaW1pdF9bXTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlU2V0IGNvbnRhaW5pbmcgZGVsaW1pdGVycworICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZVNldCBtX2RlbGltaXRlcnNfOworICAgIC8qKgorICAgICAqIFN0cmluZyB0byBwYXJzZSBmb3IgdG9rZW5zCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworICAgIC8qKgorICAgICAqIExlbmd0aCBvZiBtX3NvdXJjZV8KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xlbmd0aF87CisgICAgLyoqCisgICAgICogQ3VycmVudCBwb3NpdGlvbiBpbiBzdHJpbmcgdG8gcGFyc2UgZm9yIHRva2VucworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbmV4dE9mZnNldF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgZGVsaW1pdGVycyBhcmUgdG8gYmUgdHJlYXRlZCBhcyB0b2tlbnMgdG9vCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1fcmV0dXJuRGVsaW1pdGVyc187CisKKyAgICAvKioKKyAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0byBjb2FsZXNjZSBydW5zIG9mIGRlbGltaXRlcnMgaW50byBzaW5nbGUgdG9rZW5zCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1fY29hbGVzY2VEZWxpbWl0ZXJzXzsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgc2V0IG9mIGRlbGltaXRlcnMgJiM5Mjt0JiM5MjtuJiM5MjtyJiM5MjtmCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBERUZBVUxUX0RFTElNSVRFUlNfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFVuaWNvZGVTZXQoIlsgXHRcblxyXGZdIiwgZmFsc2UpOworICAgIC8qKgorICAgICAqIEFycmF5IHNpemUgaW5jcmVtZW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9TSVpFXyA9IDEwMDsKKyAgICAvKioKKyAgICAgKiBBIGVtcHR5IGRlbGltaXRlciBVbmljb2RlU2V0LCB1c2VkIHdoZW4gdXNlciBzcGVjaWZpZWQgbnVsbCBkZWxpbWl0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBFTVBUWV9ERUxJTUlURVJfID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIG5leHQgZGVsaW1pdGVyIGFmdGVyIG9mZnNldAorICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCBvZiB0aGUgaW1tZWRpYXRlIG5leHQgZGVsaW1pdGVyLCBvdGhlcndpc2UgCisgICAgICogICAgICAgICAoLSBzb3VyY2Ugc3RyaW5nIGxlbmd0aCAtIDEpIGlmIHRoZXJlCisgICAgICogICAgICAgICBhcmUgbm8gbW9yZSBkZWxpbWl0ZXJzIGFmdGVyIG1fbmV4dE9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldE5leHREZWxpbWl0ZXIoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDsgCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBpZiAoZGVsaW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9kZWxpbWl0ZXJzXy5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA8IG1fbGVuZ3RoXyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChtX3NvdXJjZV8sIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgZGVsaW1zLmxlbmd0aCAmJiBkZWxpbXNbY10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChyZXN1bHQgPCBtX2xlbmd0aF8pOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCBtX2xlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMSAtIG1fbGVuZ3RoXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIG5leHQgbm9uLWRlbGltaXRlciBhZnRlciBtX25leHRPZmZzZXRfCisgICAgICogQHBhcmFtIG9mZnNldCB0byB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IG9mIHRoZSBpbW1lZGlhdGUgbmV4dCBub24tZGVsaW1pdGVyLCBvdGhlcndpc2UgCisgICAgICogICAgICAgICAoLSBzb3VyY2Ugc3RyaW5nIGxlbmd0aCAtIDEpIGlmIHRoZXJlCisgICAgICogICAgICAgICBhcmUgbm8gbW9yZSBkZWxpbWl0ZXJzIGFmdGVyIG1fbmV4dE9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldE5leHROb25EZWxpbWl0ZXIoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDsgCisgICAgICAgICAgICBpbnQgYyA9IDA7CisgICAgICAgICAgICBpZiAoZGVsaW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW1fZGVsaW1pdGVyc18uY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChyZXN1bHQgPCBtX2xlbmd0aF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIShjIDwgZGVsaW1zLmxlbmd0aCAmJiBkZWxpbXNbY10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0IDwgbV9sZW5ndGhfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCBtX2xlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMSAtIG1fbGVuZ3RoXzsKKyAgICB9CisKKyAgICB2b2lkIGNoZWNrRGVsaW1pdGVycygpIHsKKyAgICAgICAgaWYgKG1fZGVsaW1pdGVyc18gPT0gbnVsbCB8fCBtX2RlbGltaXRlcnNfLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBkZWxpbXMgPSBuZXcgYm9vbGVhblswXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBtYXhDaGFyID0gbV9kZWxpbWl0ZXJzXy5nZXRSYW5nZUVuZChtX2RlbGltaXRlcnNfLmdldFJhbmdlQ291bnQoKS0xKTsKKyAgICAgICAgICAgIGlmIChtYXhDaGFyIDwgMHg3ZikgeworICAgICAgICAgICAgICAgIGRlbGltcyA9IG5ldyBib29sZWFuW21heENoYXIrMV07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGNoOyAtMSAhPSAoY2ggPSBtX2RlbGltaXRlcnNfLmNoYXJBdChpKSk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBkZWxpbXNbY2hdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlbGltcyA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuW10gZGVsaW1zOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTQzZmMyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKQEAgLTAsMCArMSw3OTkgQEAKKy8qCisgKiBAKCMpVGltZVpvbmUuamF2YSAgICAxLjUxIDAwLzAxLzE5CisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmU8L2NvZGU+IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgb2Zmc2V0LCBhbmQgYWxzbyBmaWd1cmVzIG91dCBkYXlsaWdodAorICogc2F2aW5ncy4KKyAqCisgKiA8cD4KKyAqIFR5cGljYWxseSwgeW91IGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogd2hpY2ggY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBiYXNlZCBvbiB0aGUgdGltZSB6b25lIHdoZXJlIHRoZSBwcm9ncmFtCisgKiBpcyBydW5uaW5nLiBGb3IgZXhhbXBsZSwgZm9yIGEgcHJvZ3JhbSBydW5uaW5nIGluIEphcGFuLCA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgYmFzZWQgb24gSmFwYW5lc2UgU3RhbmRhcmQgVGltZS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdXNpbmcgPGNvZGU+Z2V0VGltZVpvbmU8L2NvZGU+CisgKiBhbG9uZyB3aXRoIGEgdGltZSB6b25lIElELiBGb3IgaW5zdGFuY2UsIHRoZSB0aW1lIHpvbmUgSUQgZm9yIHRoZQorICogVS5TLiBQYWNpZmljIFRpbWUgem9uZSBpcyAiQW1lcmljYS9Mb3NfQW5nZWxlcyIuIFNvLCB5b3UgY2FuIGdldCBhCisgKiBVLlMuIFBhY2lmaWMgVGltZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gb2JqZWN0IHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFlvdSBjYW4gdXNlIDxjb2RlPmdldEF2YWlsYWJsZUlEczwvY29kZT4gbWV0aG9kIHRvIGl0ZXJhdGUgdGhyb3VnaAorICogYWxsIHRoZSBzdXBwb3J0ZWQgdGltZSB6b25lIElEcy4gWW91IGNhbiB0aGVuIGNob29zZSBhCisgKiBzdXBwb3J0ZWQgSUQgdG8gZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICogSWYgdGhlIHRpbWUgem9uZSB5b3Ugd2FudCBpcyBub3QgcmVwcmVzZW50ZWQgYnkgb25lIG9mIHRoZQorICogc3VwcG9ydGVkIElEcywgdGhlbiB5b3UgY2FuIGNyZWF0ZSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgd2l0aAorICogdGhlIGZvbGxvd2luZyBzeW50YXg6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogR01UWyt8LV1oaFtbOl1tbV0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc3BlY2lmeSBHTVQrMTQ6MDAgYXMgYSBjdXN0b20KKyAqIHRpbWUgem9uZSBJRC4gIFRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcyByZXR1cm5lZAorICogd2hlbiB5b3Ugc3BlY2lmeSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgZG9lcyBub3QgaW5jbHVkZQorICogZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICogPHA+CisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEueCwgc29tZSBvdGhlciB0aHJlZS1sZXR0ZXIgdGltZSB6b25lIElEcworICogKHN1Y2ggYXMgIlBTVCIsICJDVFQiLCAiQVNUIikgYXJlIGFsc28gc3VwcG9ydGVkLiBIb3dldmVyLCA8c3Ryb25nPnRoZWlyCisgKiB1c2UgaXMgZGVwcmVjYXRlZDwvc3Ryb25nPiBiZWNhdXNlIHRoZSBzYW1lIGFiYnJldmlhdGlvbiBpcyBvZnRlbiB1c2VkCisgKiBmb3IgbXVsdGlwbGUgdGltZSB6b25lcyAoZm9yIGV4YW1wbGUsICJDU1QiIGNvdWxkIGJlIFUuUy4gIkNlbnRyYWwgU3RhbmRhcmQKKyAqIFRpbWUiIGFuZCAiQ2hpbmEgU3RhbmRhcmQgVGltZSIpLCBhbmQgdGhlIEphdmEgcGxhdGZvcm0gY2FuIHRoZW4gb25seQorICogcmVjb2duaXplIG9uZSBvZiB0aGVtLgorICoKKyAqCisgKiBAc2VlICAgICAgICAgIENhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFNpbXBsZVRpbWVab25lCisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIERhdmlkIEdvbGRzbWl0aCwgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Fic3RyYWN0IHB1YmxpYyBjbGFzcyBUaW1lWm9uZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSwgQ2xvbmVhYmxlIHsKKyAgICAvLyB1c2luZyBzZXJpYWx2ZXIgZnJvbSBqZGsxLjQuMl8wNQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03NDQ5NDIxMjgzMTgzMzc0NzFMOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIChGb3IgaW52b2NhdGlvbiBieSBzdWJjbGFzcyBjb25zdHJ1Y3RvcnMsCisgICAgICogdHlwaWNhbGx5IGltcGxpY2l0LikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdHlsZSBzcGVjaWZpZXIgZm9yIDxjb2RlPmdldERpc3BsYXlOYW1lKCk8L2NvZGU+IGluZGljYXRpbmcKKyAgICAgKiBhIHNob3J0IG5hbWUsIHN1Y2ggYXMgIlBTVC4iCisgICAgICogQHNlZSAjTE9ORworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBsb25nIG5hbWUsIHN1Y2ggYXMgIlBhY2lmaWMgU3RhbmRhcmQgVGltZS4iCisgICAgICogQHNlZSAjU0hPUlQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HICA9IDE7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlRfR0VORVJJQyA9IDI7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9OR19HRU5FUklDID0gMzsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0cyBmb3IgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byBhZGQgKnRvKiBHTVQgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoaXMgdGltZSB6b25lIGZyb20gVVRDIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLiBJZiBEYXlsaWdodCBTYXZpbmcgVGltZSBpcyBpbiBlZmZlY3QgYXQgdGhlIHNwZWNpZmllZAorICAgICAqIGRhdGUsIHRoZSBvZmZzZXQgdmFsdWUgaXMgYWRqdXN0ZWQgd2l0aCB0aGUgYW1vdW50IG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXIjWk9ORV9PRkZTRVQKKyAgICAgKiBAc2VlIENhbGVuZGFyI0RTVF9PRkZTRVQKKyAgICAgKiBAc2VlICNnZXRPZmZzZXQobG9uZywgYm9vbGVhbiwgaW50W10pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQobG9uZyBkYXRlKSB7CisJaW50W10gcmVzdWx0ID0gbmV3IGludFsyXTsKKwlnZXRPZmZzZXQoZGF0ZSwgZmFsc2UsIHJlc3VsdCk7CisJcmV0dXJuIHJlc3VsdFswXStyZXN1bHRbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSB6b25lIHJhdyBhbmQgR01UIG9mZnNldCBmb3IgdGhlIGdpdmVuIG1vbWVudAorICAgICAqIGluIHRpbWUuICBVcG9uIHJldHVybiwgbG9jYWwtbWlsbGlzID0gR01ULW1pbGxpcyArIHJhd09mZnNldCArCisgICAgICogZHN0T2Zmc2V0LiAgQWxsIGNvbXB1dGF0aW9ucyBhcmUgcGVyZm9ybWVkIGluIHRoZSBwcm9sZXB0aWMKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgVGltZVpvbmUKKyAgICAgKiBjbGFzcyBkZWxlZ2F0ZXMgdG8gdGhlIDgtYXJndW1lbnQgZ2V0T2Zmc2V0KCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSBtb21lbnQgaW4gdGltZSBmb3Igd2hpY2ggdG8gcmV0dXJuIG9mZnNldHMsIGluCisgICAgICogdW5pdHMgb2YgbWlsbGlzZWNvbmRzIGZyb20gSmFudWFyeSAxLCAxOTcwIDA6MDAgR01ULCBlaXRoZXIgR01UCisgICAgICogdGltZSBvciBsb2NhbCB3YWxsIHRpbWUsIGRlcGVuZGluZyBvbiBgbG9jYWwnLgorICAgICAqIEBwYXJhbSBsb2NhbCBpZiB0cnVlLCBgZGF0ZScgaXMgbG9jYWwgd2FsbCB0aW1lOyBvdGhlcndpc2UgaXQKKyAgICAgKiBpcyBpbiBHTVQgdGltZS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0cyBvdXRwdXQgcGFyYW1ldGVyIHRvIHJlY2VpdmUgdGhlIHJhdyBvZmZzZXQsIHRoYXQKKyAgICAgKiBpcywgdGhlIG9mZnNldCBub3QgaW5jbHVkaW5nIERTVCBhZGp1c3RtZW50cywgaW4gb2Zmc2V0c1swXSwKKyAgICAgKiBhbmQgdGhlIERTVCBvZmZzZXQsIHRoYXQgaXMsIHRoZSBvZmZzZXQgdG8gYmUgYWRkZWQgdG8KKyAgICAgKiBgcmF3T2Zmc2V0JyB0byBvYnRhaW4gdGhlIHRvdGFsIG9mZnNldCBiZXR3ZWVuIGxvY2FsIGFuZCBHTVQKKyAgICAgKiB0aW1lLCBpbiBvZmZzZXRzWzFdLiBJZiBEU1QgaXMgbm90IGluIGVmZmVjdCwgdGhlIERTVCBvZmZzZXQgaXMKKyAgICAgKiB6ZXJvOyBvdGhlcndpc2UgaXQgaXMgYSBwb3NpdGl2ZSB2YWx1ZSwgdHlwaWNhbGx5IG9uZSBob3VyLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworICAgICAgICBvZmZzZXRzWzBdID0gZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIHdhbGwgbWlsbGlzIGlmIG5lY2Vzc2FyeQorICAgICAgICBpZiAoIWxvY2FsKSB7CisgICAgICAgICAgICBkYXRlICs9IG9mZnNldHNbMF07IC8vIG5vdyBpbiBsb2NhbCBzdGFuZGFyZCBtaWxsaXMKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdoZW4gbG9jYWw9PUZBTFNFLCB3ZSBtaWdodCBoYXZlIHRvIHJlY29tcHV0ZS4gVGhpcyBsb29wIGlzCisgICAgICAgIC8vIGV4ZWN1dGVkIG9uY2UsIHVubGVzcyBhIHJlY29tcHV0YXRpb24gaXMgcmVxdWlyZWQ7IHRoZW4gaXQgaXMKKyAgICAgICAgLy8gZXhlY3V0ZWQgdHdpY2UuCisgICAgICAgIGZvciAoaW50IHBhc3M9MDsgOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGludCBmaWVsZHNbXSA9IG5ldyBpbnRbNF07CisgICAgICAgICAgICBsb25nIGRheSA9IGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZLCBmaWVsZHMpOworICAgICAgICAgICAgaW50IG1pbGxpcyA9IGZpZWxkc1swXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhkYXksIGZpZWxkcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9mZnNldHNbMV0gPSBnZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgbWlsbGlzKSAtIG9mZnNldHNbMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFJlY29tcHV0ZSBpZiBsb2NhbD09RkFMU0UsIGRzdE9mZnNldCE9MCwgYW5kIGFkZGl0aW9uIG9mCisgICAgICAgICAgICAvLyB0aGUgZHN0T2Zmc2V0IHB1dHMgdXMgaW4gYSBkaWZmZXJlbnQgZGF5LgorICAgICAgICAgICAgaWYgKHBhc3MhPTAgfHwgbG9jYWwgfHwgb2Zmc2V0c1sxXT09MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0ZSArPSBvZmZzZXRzWzFdOworICAgICAgICAgICAgaWYgKGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZKSA9PSBkYXkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqLworICAgIHN0YXRpYyBsb25nIGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogVE9ETzogVGhpcyBkdXBsaWNhdGVzIGEgbWV0aG9kIGluIENhbGVuZGFyOyBjbGVhbiB1cCBhbmQKKyAgICAgKiBjb25zb2xpZGF0ZSBpbiBJQ1UgMy4wLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IsIGludFtdIHJlbWFpbmRlcikgeworICAgICAgICBpZiAobnVtZXJhdG9yID49IDApIHsKKyAgICAgICAgICAgIHJlbWFpbmRlclswXSA9IChpbnQpKG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KShudW1lcmF0b3IgLyBkZW5vbWluYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgaW50IHF1b3RpZW50ID0gKGludCkoKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDEpOworICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgLSAocXVvdGllbnQgKiBkZW5vbWluYXRvcikpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHllYXIsIG1vbnRoLCBhbmQgZGF5IG9mIG1vbnRoCisgICAgICogZnJvbSB0aGUgZXBvY2ggZGF5LCBhbmQgcmV0dXJuIHRoZW0gaW4gdGhlIGdpdmVuIGFycmF5LgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGxvbmcgZGF5LCBpbnQgZmllbGRzW10pIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisKKyAgICAgICAgLy8gQ29udmVydCBmcm9tIDE5NzAgQ0UgZXBvY2ggdG8gMSBDRSBlcG9jaCAoR3JlZ29yaWFuIGNhbGVuZGFyKQorICAgICAgICAvLyBKVUxJQU5fMV9DRSAgICA9IDE3MjE0MjY7IC8vIEphbnVhcnkgMSwgMSBDRSBHcmVnb3JpYW4KKyAgICAgICAgLy8gSlVMSUFOXzE5NzBfQ0UgPSAyNDQwNTg4OyAvLyBKYW51YXJ5IDEsIDE5NzAgQ0UgR3JlZ29yaWFuCisgICAgICAgIGRheSArPSAoMjQ0MDU4OCAtIDE3MjE0MjYpOworCisgICAgICAgIC8vIEhlcmUgd2UgY29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHRvIHRoZSBtdWx0aXBsZSByYWRpeAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4gIFdlIHVzZSA0MDAteWVhciwgMTAwLXllYXIsIGFuZCA0LXllYXIgY3ljbGVzLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIDQteWVhciBjeWNsZSBoYXMgNCB5ZWFycyArIDEgbGVhcCBkYXk7IGdpdmluZworICAgICAgICAvLyAxNDYxID09IDM2NSo0ICsgMSBkYXlzLgorICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgbjQwMCA9IGZsb29yRGl2aWRlKGRheSwgMTQ2MDk3LCByZW0pOyAvLyA0MDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG4xMDAgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NTI0LCByZW0pOyAvLyAxMDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG40ID0gZmxvb3JEaXZpZGUocmVtWzBdLCAxNDYxLCByZW0pOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMSA9IGZsb29yRGl2aWRlKHJlbVswXSwgMzY1LCByZW0pOworICAgICAgICB5ZWFyID0gNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMTsKKyAgICAgICAgZGF5T2ZZZWFyID0gcmVtWzBdOyAvLyB6ZXJvLWJhc2VkIGRheSBvZiB5ZWFyCisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZGF5T2ZZZWFyID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ciBjeWNsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoKHllYXImMHgzKSA9PSAwKSAmJiAvLyBlcXVpdi4gdG8gKHllYXIlNCA9PSAwKQorICAgICAgICAgICAgKHllYXIlMTAwICE9IDAgfHwgeWVhciU0MDAgPT0gMCk7CisKKyAgICAgICAgaW50IGNvcnJlY3Rpb24gPSAwOworICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIGNvcnJlY3Rpb24gPSBpc0xlYXAgPyAxIDogMjsKKyAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0KKyAgICAgICAgICAgIEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzE6MF0gKyAxOyAvLyBvbmUtYmFzZWQgRE9NCisKKyAgICAgICAgLy8gSmFuIDEgMSBDRSBpcyBNb25kYXkKKyAgICAgICAgaW50IGRheU9mV2VlayA9IChpbnQpICgoZGF5ICsgQ2FsZW5kYXIuTU9OREFZKSAlIDcpOworICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICBkYXlPZldlZWsgKz0gNzsKKyAgICAgICAgfQorCisgICAgICAgIGZpZWxkc1swXSA9IHllYXI7CisgICAgICAgIGZpZWxkc1sxXSA9IG1vbnRoOyAvLyAwLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZmllbGRzWzJdID0gZGF5T2ZNb250aDsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIGZpZWxkc1szXSA9IGRheU9mV2VlazsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIC8vZmllbGRzWzRdID0gZGF5T2ZZZWFyICsgMTsgLy8gQ29udmVydCBmcm9tIDAtYmFzZWQgdG8gMS1iYXNlZAorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYW4gaG91ci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0hPVVIgPSA2MCo2MCoxMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0RBWSA9IDI0Kk1JTExJU19QRVJfSE9VUjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGb3IgZWFjaCBtb250aCwgdGhlIGRheXMgaW4gYSBub24tbGVhcCB5ZWFyIGJlZm9yZSB0aGUgc3RhcnQKKyAgICAgKiB0aGUgb2YgbW9udGgsIGFuZCB0aGUgZGF5cyBpbiBhIGxlYXAgeWVhciBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgICAgICogdGhlIG1vbnRoLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBkYXRhIGluIENhbGVuZGFyLmphdmE7IGNsZWFuIHVwIGFuZAorICAgICAqIGNvbnNvbGlkYXRlIGluIElDVSAzLjAuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gR1JFR09SSUFOX01PTlRIX0NPVU5UID0geworICAgICAgICB7ICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICA1OSwgIDYwIH0sIC8vIE1hcgorICAgICAgICB7ICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7IDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7IDE1MSwgMTUyIH0sIC8vIEp1bgorICAgICAgICB7IDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7IDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7IDI0MywgMjQ0IH0sIC8vIFNlcAorICAgICAgICB7IDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7IDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7IDMzNCwgMzM1IH0gIC8vIERlYworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeworICAgICAgICByZXR1cm4gSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgaWYgKElEID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuSUQgPSBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIGdlbmVyaWMgbmFtZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogYSBmYWxsYmFjayBiYXNlZCBvbiB0aGUgY291bnRyeSwgY2l0eSwgb3IgdGltZSB6b25lIGlkIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgbmFtZSwgbm90IGluY2x1ZGluZyBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgdWxvY2FsZSBpZiB0aGUgZ2l2ZW4gdWxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShmYWxzZSwgTE9OR19HRU5FUklDLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIHRoZW4gdGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyBpbiB0aGUgZm9ybWF0CisgICAgICogPGNvZGU+R01UWystXWhoOm1tPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF5bGlnaHQgaWYgdHJ1ZSwgcmV0dXJuIHRoZSBkYXlsaWdodCBzYXZpbmdzIG5hbWUuCisgICAgICogQHBhcmFtIHN0eWxlIGVpdGhlciA8Y29kZT5MT05HPC9jb2RlPiBvciA8Y29kZT5TSE9SVDwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoZGF5bGlnaHQsIHN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKHN0eWxlICE9IFNIT1JUICYmIHN0eWxlICE9IExPTkcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3R5bGU6ICIgKyBzdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHB1YmxpYyB2ZXJzaW9uIG9mIHRoaXMgQVBJIG9ubHkgYWNjZXB0cyBMT05HL1NIT1JULCB0aGUKKyAgICAgKiBpbnRlcm5hbCB2ZXJzaW9uICh3aGljaCB0aGlzIGNhbGxzKSBhbHNvIGFjY2VwdHMgTE9OR19HRU5FUklDL1NIT1JUX0dFTkVSSUMuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgX2dldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLyogTk9URVM6CisgICAgICAgICAqICgxKSBXZSB1c2UgU2ltcGxlRGF0ZUZvcm1hdCBmb3Igc2ltcGxpY2l0eTsgd2UgY291bGQgZG8gdGhpcworICAgICAgICAgKiBtb3JlIGVmZmljaWVudGx5IGJ1dCBpdCB3b3VsZCBkdXBsaWNhdGUgdGhlIFNpbXBsZURhdGVGb3JtYXQgY29kZQorICAgICAgICAgKiBoZXJlLCB3aGljaCBpcyB1bmRlc2lyYWJsZS4KKyAgICAgICAgICogKDIpIEF0dGVtcHRzIHRvIG1vdmUgdGhlIGNvZGUgZnJvbSBTaW1wbGVEYXRlRm9ybWF0IHRvIGhlcmUgYWxzbyBydW4KKyAgICAgICAgICogYWdyb3VuZCBiZWNhdXNlIHRoaXMgcmVxdWlyZXMgU2ltcGxlRGF0ZUZvcm1hdCB0byBrZWVwIGEgTG9jYWxlCisgICAgICAgICAqIG9iamVjdCBhcm91bmQsIHdoaWNoIGl0IGN1cnJlbnRseSBkb2Vzbid0OyB0byBzeW50aGVzaXplIHN1Y2ggYQorICAgICAgICAgKiBsb2NhbGUgdXBvbiByZXN1cnJlY3Rpb247IGFuZCB0byBzb21laG93IGhhbmRsZSB0aGUgc3BlY2lhbCBjYXNlIG9mCisgICAgICAgICAqIGNvbnN0cnVjdGlvbiBmcm9tIGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAgICAgKi8KKworICAgICAgICAvLyBXZSBrZWVwIGEgY2FjaGUsIGluZGV4ZWQgYnkgbG9jYWxlLiAgVGhlIGNhY2hlIGNvbnRhaW5zIGEKKyAgICAgICAgLy8gU2ltcGxlRGF0ZUZvcm1hdCBvYmplY3QsIHdoaWNoIHdlIGNyZWF0ZSBvbiBkZW1hbmQuCisgICAgICAgIFNvZnRSZWZlcmVuY2UgZGF0YSA9IChTb2Z0UmVmZXJlbmNlKWNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0OworICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8CisgICAgICAgICAgICAoZm9ybWF0ID0gKFNpbXBsZURhdGVGb3JtYXQpZGF0YS5nZXQoKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobnVsbCwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgbmV3IFNvZnRSZWZlcmVuY2UoZm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IFNpbXBsZVRpbWVab25lIGFzIGEgc3RhbmQtaW4gZm9yIHRoaXMgem9uZTsgdGhlIHN0YW5kLWluCisgICAgICAgIC8vIHdpbGwgaGF2ZSBubyBEU1QsIG9yIERTVCBkdXJpbmcgSmFudWFyeSwgYnV0IHRoZSBzYW1lIElEIGFuZCBvZmZzZXQsCisgICAgICAgIC8vIGFuZCBoZW5jZSB0aGUgc2FtZSBkaXNwbGF5IG5hbWUuICBXZSBkb24ndCBjYWNoZSB0aGVzZSBiZWNhdXNlCisgICAgICAgIC8vIHRoZXkncmUgc21hbGwgYW5kIGNoZWFwIHRvIGNyZWF0ZS4KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHo7CisgICAgICAgIGlmIChkYXlsaWdodCAmJiB1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBnZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZShnZXRSYXdPZmZzZXQoKSwgZ2V0SUQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkpBTlVBUlksIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5GRUJSVUFSWSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmluZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoZ2V0UmF3T2Zmc2V0KCksIGdldElEKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0geyAieiIsICJ6enp6IiwgInYiLCAidnZ2diIgfTsKKyAgICAgICAgZm9ybWF0LmFwcGx5UGF0dGVybihwYXR0ZXJuc1tzdHlsZV0pOyAgICAgIAorICAgICAgICBmb3JtYXQuc2V0VGltZVpvbmUodHopOworICAgICAgICAvLyBGb3JtYXQgYSBkYXRlIGluIEphbnVhcnkuICBXZSB1c2UgdGhlIHZhbHVlIDEwKk9ORV9EQVkgPT0gSmFuIDExIDE5NzAKKyAgICAgICAgLy8gMDowMCBHTVQuCisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KG5ldyBEYXRlKDg2NDAwMDAwMEwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBiZSBhZGRlZCB0byBsb2NhbCBzdGFuZGFyZCB0aW1lCisgICAgICogdG8gZ2V0IGxvY2FsIHdhbGwgY2xvY2sgdGltZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhbHdheXMgcmV0dXJucyAzNjAwMDAwIG1pbGxpc2Vjb25kcworICAgICAqIChpLmUuLCBvbmUgaG91cikgaWYgdGhpcyB0aW1lIHpvbmUgb2JzZXJ2ZXMgRGF5bGlnaHQgU2F2aW5nCisgICAgICogVGltZS4gT3RoZXJ3aXNlLCAwICh6ZXJvKSBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiB1bmRlcmx5aW5nIFRpbWVab25lIGltcGxlbWVudGF0aW9uIHN1YmNsYXNzIHN1cHBvcnRzCisgICAgICogaGlzdG9yaWNhbCBEYXlsaWdodCBTYXZpbmcgVGltZSBjaGFuZ2VzLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogdGhlIGtub3duIGxhdGVzdCBkYXlsaWdodCBzYXZpbmcgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2Ygc2F2aW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgIAlpZiAodXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAJICAgIHJldHVybiAzNjAwMDAwOworICAgIAl9CisgICAgCXJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJpZXMgaWYgdGhpcyB0aW1lIHpvbmUgdXNlcyBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLAorICAgICAqIGZhbHNlLCBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpbgorICAgICAqIHRoaXMgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsCisgICAgICogZmFsc2UsIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGZvciB0aGUgZ2l2ZW4gSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIGZvciBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiwgZWl0aGVyIGFuIGFiYnJldmlhdGlvbgorICAgICAqIHN1Y2ggYXMgIlBTVCIsIGEgZnVsbCBuYW1lIHN1Y2ggYXMgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCBvciBhIGN1c3RvbQorICAgICAqIElEIHN1Y2ggYXMgIkdNVC04OjAwIi4gTm90ZSB0aGF0IHRoZSBzdXBwb3J0IG9mIGFiYnJldmlhdGlvbnMgaXMKKyAgICAgKiBmb3IgSkRLIDEuMS54IGNvbXBhdGliaWxpdHkgb25seSBhbmQgZnVsbCBuYW1lcyBzaG91bGQgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpZmllZCA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIG9yIHRoZSBHTVQgem9uZSBpZiB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBjYW5ub3QgYmUgdW5kZXJzdG9vZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBUaW1lWm9uZSBnZXRUaW1lWm9uZShTdHJpbmcgSUQpIHsKKyAgICAgICAgLyogV2UgZmlyc3QgdHJ5IHRvIGxvb2t1cCB0aGUgem9uZSBJRCBpbiBvdXIgc3lzdGVtIGxpc3QuICBJZiB0aGlzCisgICAgICAgICAqIGZhaWxzLCB3ZSB0cnkgdG8gcGFyc2UgaXQgYXMgYSBjdXN0b20gc3RyaW5nIEdNVFsrLV1oaDptbS4gIElmCisgICAgICAgICAqIGFsbCBlbHNlIGZhaWxzLCB3ZSByZXR1cm4gR01ULCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB0aGUKKyAgICAgICAgICogdXNlciB3YW50cywgYnV0IGF0IGxlYXN0IGlzIGEgZnVuY3Rpb25pbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIE5VTEwsIGJlY2F1c2UgdGhhdCB3b3VsZCBicmVhayBjb21wYXRpYmlsaXR5CisgICAgICAgICAqIHdpdGggdGhlIEpESy4KKyAgICAgICAgICovCisgICAgICAgIGlmKElEPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIFRpbWVab25lIHJlc3VsdCA9IFpvbmVNZXRhLmdldFN5c3RlbVRpbWVab25lKElEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0Q3VzdG9tVGltZVpvbmUoSUQpOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0R01UKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgYWxsIHN5c3RlbSBUaW1lWm9uZSBJRHMKKyAgICAgKiB3aXRoIHRoZSBnaXZlbiByYXcgb2Zmc2V0IGZyb20gR01ULiAgVGhlc2UgSURzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5nZXQoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZSBjb3JyZXNwb25kaW5nIFRpbWVab25lCisgICAgICogb2JqZWN0LgorICAgICAqIEBwYXJhbSByYXdPZmZzZXQgdGhlIG9mZnNldCBpbiBtaWxsaXNlY29uZHMgZnJvbSBHTVQKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyB3aXRoIHRoZSBnaXZlbgorICAgICAqIHJhdyBvZmZzZXQuICBJZiB0aGVyZSBhcmUgbm9uZSwgcmV0dXJuIGEgemVyby1sZW5ndGggYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoaW50IHJhd09mZnNldCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKHJhd09mZnNldCk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY291bnRyeSBhIHR3by1sZXR0ZXIgSVNPIDMxNjYgY291bnRyeSBjb2RlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqIHRvIHJldHVybiB6b25lcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBjb3VudHJ5CisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBJRHMgZm9yIHN5c3RlbSBUaW1lWm9uZXMgaW4gdGhlIGdpdmVuCisgICAgICogY291bnRyeS4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKGNvdW50cnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcy4KKyAgICAgKiBUaGVzZSBJRHMgKGFuZCBvbmx5IHRoZXNlIElEcykgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZXR1cm5lZCBjb3VudCBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQ7IGl0IGlzIGFsd2F5cyA+PSAxCisgICAgICogZm9yIHZhbGlkIElEcy4gIFRoZSBnaXZlbiBJRCBtdXN0IGJlIGEgc3lzdGVtIHRpbWUgem9uZS4gIElmIGl0CisgICAgICogaXMgbm90LCByZXR1cm5zIHplcm8uCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiB6b25lcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgY29udGFpbmluZworICAgICAqICdpZCcsIG9yIHplcm8gaWYgJ2lkJyBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gSUQKKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudEVxdWl2YWxlbnRJRHMoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5jb3VudEVxdWl2YWxlbnRJRHMoaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gSUQgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSBnaXZlbiBpbmRleCBtdXN0IGJlIGluIHRoZSByYW5nZSAwLi5uLTEsIHdoZXJlIG4gaXMgdGhlCisgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4uICBGb3IKKyAgICAgKiBzb21lIHZhbHVlIG9mICdpbmRleCcsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIGVxdWFsIHRvIHRoZQorICAgICAqIGdpdmVuIGlkLiAgSWYgdGhlIGdpdmVuIGlkIGlzIG5vdCBhIHZhbGlkIHN5c3RlbSB0aW1lIHpvbmUsIG9yCisgICAgICogaWYgJ2luZGV4JyBpcyBvdXQgb2YgcmFuZ2UsIHRoZW4gcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEBwYXJhbSBpbmRleCBhIHZhbHVlIGZyb20gMCB0byBuLTEsIHdoZXJlIG4gaXMgdGhlIHZhbHVlCisgICAgICogcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGUgaW5kZXgtdGggem9uZSBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAKKyAgICAgKiBjb250YWluaW5nICdpZCcsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiAnaWQnIGlzIG5vdCBhIHZhbGlkCisgICAgICogc3lzdGVtIElEIG9yICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlCisgICAgICogQHNlZSAjY291bnRFcXVpdmFsZW50SURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXF1aXZhbGVudElEKFN0cmluZyBpZCwgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5nZXRFcXVpdmFsZW50SUQoaWQsIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhpcyBob3N0LgorICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+IAorICAgICAqIG1heSB2YXJ5IHdpdGggaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBhIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFRpbWVab25lIGdldERlZmF1bHQoKSB7CisgICAgICAgIGlmIChkZWZhdWx0Wm9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgdGVtcD1qYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgZGVmYXVsdFpvbmUgPSBnZXRUaW1lWm9uZSh0ZW1wLmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpIGRlZmF1bHRab25lLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHRoYXQgaXMKKyAgICAgKiByZXR1cm5lZCBieSB0aGUgPGNvZGU+Z2V0RGVmYXVsdDwvY29kZT4gbWV0aG9kLiAgSWYgPGNvZGU+em9uZTwvY29kZT4KKyAgICAgKiBpcyBudWxsLCByZXNldCB0aGUgZGVmYXVsdCB0byB0aGUgdmFsdWUgaXQgaGFkIG9yaWdpbmFsbHkgd2hlbiB0aGUKKyAgICAgKiBWTSBmaXJzdCBzdGFydGVkLgorICAgICAqIEBwYXJhbSB0eiB0aGUgbmV3IGRlZmF1bHQgdGltZSB6b25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXREZWZhdWx0KFRpbWVab25lIHR6KSB7CisgICAgICAgIAorICAgICAgICBkZWZhdWx0Wm9uZSA9IHR6OworICAgICAgICAvLyBLZWVwIGphdmEudXRpbC5UaW1lWm9uZSBkZWZhdWx0IGluIHN5bmMgc28gamF2YS51dGlsLkRhdGUKKyAgICAgICAgLy8gY2FuIGludGVyb3BlcmF0ZSB3aXRoIGNvbS5pYm0uaWN1LnV0aWwgY2xhc3Nlcy4KKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka1pvbmUgPSBudWxsOworICAgICAgICBpZiAodHogIT0gbnVsbCkgeworICAgICAgICAgICAgamRrWm9uZSA9IFRpbWVab25lQWRhcHRlci53cmFwKHR6KTsKKyAgICAgICAgfQorICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChqZGtab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlIGFuZCBvZmZzZXQgYXMgYW5vdGhlciB6b25lLgorICAgICAqIFRoYXQgaXMsIGlmIHRoaXMgem9uZSBkaWZmZXJzIG9ubHkgaW4gSUQsIGlmIGF0IGFsbC4gIFJldHVybnMgZmFsc2UKKyAgICAgKiBpZiB0aGUgb3RoZXIgem9uZSBpcyBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdGhlciB6b25lIGlzIG5vdCBudWxsIGFuZCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZSwKKyAgICAgKiB3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgdGhlIElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIHJldHVybiBvdGhlciAhPSBudWxsICYmCisgICAgICAgICAgICBnZXRSYXdPZmZzZXQoKSA9PSBvdGhlci5nZXRSYXdPZmZzZXQoKSAmJgorICAgICAgICAgICAgdXNlRGF5bGlnaHRUaW1lKCkgPT0gb3RoZXIudXNlRGF5bGlnaHRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSBvdGhlciA9IChUaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLklEID0gSUQ7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMKKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKXsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIChJRC5lcXVhbHMoKChUaW1lWm9uZSlvYmopLklEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAJcmV0dXJuIElELmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgaWRlbnRpZmllciBvZiB0aGlzIDxjb2RlPlRpbWVab25lPC9jb2RlPi4gIFRoaXMgaXMgYQorICAgICAqIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIHVzZWQgaW50ZXJuYWxseSB0byBsb29rIHVwIDxjb2RlPlRpbWVab25lPC9jb2RlPgorICAgICAqIG9iamVjdHMgZnJvbSB0aGUgc3lzdGVtIHRhYmxlIGFuZCBhbHNvIHRvIG1hcCB0aGVtIHRvIHRoZWlyIGxvY2FsaXplZAorICAgICAqIGRpc3BsYXkgbmFtZXMuICA8Y29kZT5JRDwvY29kZT4gdmFsdWVzIGFyZSB1bmlxdWUgaW4gdGhlIHN5c3RlbQorICAgICAqIHRhYmxlIGJ1dCBtYXkgbm90IGJlIGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHpvbmVzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICAgSUQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCB0aW1lIHpvbmUsIG9yIG51bGwgaWYgbm90IHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lWm9uZSAgZGVmYXVsdFpvbmUgPSBudWxsOworCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA3YTAxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VMb2NhbGUuamF2YQpAQCAtMCwwICsxLDI4MjkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIEEgY2xhc3MgYW5hbG9nb3VzIHRvIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfSB0aGF0IHByb3ZpZGVzIGFkZGl0aW9uYWwKKyAqIHN1cHBvcnQgZm9yIElDVSBwcm90b2NvbC4gIEluIElDVSAzLjAgdGhpcyBjbGFzcyBpcyBlbmhhbmNlZCB0byBzdXBwb3J0CisgKiBSRkMgMzA2NiBsYW5ndWFnZSBpZGVudGlmaWVycy4KKyAqCisgKiA8cD5NYW55IGNsYXNzZXMgYW5kIHNlcnZpY2VzIGluIElDVSBmb2xsb3cgYSBmYWN0b3J5IGlkaW9tLCBpbgorICogd2hpY2ggYSBmYWN0b3J5IG1ldGhvZCBvciBvYmplY3QgcmVzcG9uZHMgdG8gYSBjbGllbnQgcmVxdWVzdCB3aXRoCisgKiBhbiBvYmplY3QuICBUaGUgcmVxdWVzdCBpbmNsdWRlcyBhIGxvY2FsZSAodGhlIDxpPnJlcXVlc3RlZDwvaT4KKyAqIGxvY2FsZSksIGFuZCB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzIGNvbnN0cnVjdGVkIHVzaW5nIGRhdGEgZm9yIHRoYXQKKyAqIGxvY2FsZS4gIFRoZSBzeXN0ZW0gbWF5IGxhY2sgZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIGluCisgKiB3aGljaCBjYXNlIHRoZSBsb2NhbGUgZmFsbGJhY2sgbWVjaGFuaXNtIHdpbGwgYmUgaW52b2tlZCB1bnRpbCBhCisgKiBwb3B1bGF0ZWQgbG9jYWxlIGlzIGZvdW5kICh0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSkuICBGdXJ0aGVybW9yZSwKKyAqIGV2ZW4gd2hlbiBhIHBvcHVsYXRlZCBsb2NhbGUgaXMgZm91bmQgKHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlKSwKKyAqIGZ1cnRoZXIgZmFsbGJhY2sgbWF5IGJlIHJlcXVpcmVkIHRvIHJlYWNoIGEgbG9jYWxlIGNvbnRhaW5pbmcgdGhlCisgKiBzcGVjaWZpYyBkYXRhIHJlcXVpcmVkIGJ5IHRoZSBzZXJ2aWNlICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLgorICoKKyAqIDxwPlVMb2NhbGUgcGVyZm9ybXMgPGI+J25vcm1hbGl6YXRpb24nPC9iPiBhbmQgPGI+J2Nhbm9uaWNhbGl6YXRpb24nPC9iPiBvZiBsb2NhbGUgaWRzLgorICogTm9ybWFsaXphdGlvbiAnY2xlYW5zIHVwJyBJQ1UgbG9jYWxlIGlkcyBhcyBmb2xsb3dzOgorICogPHVsPgorICogPGxpPmxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGFuZCBrZXl3b3JkcyBhcmUgcHJvcGVybHkgY2FzZWQ8YnI+CisgKiAobG93ZXIsIHRpdGxlLCB1cHBlciwgdXBwZXIsIGFuZCBsb3dlciBjYXNlIHJlc3BlY3RpdmVseSk8L2xpPgorICogPGxpPmh5cGhlbnMgdXNlZCBhcyBzZXBhcmF0b3JzIGFyZSBjb252ZXJ0ZWQgdG8gdW5kZXJzY29yZXM8L2xpPgorICogPGxpPnRocmVlLWxldHRlciBsYW5ndWFnZSBhbmQgY291bnRyeSBpZHMgYXJlIGNvbnZlcnRlZCB0byB0d28tbGV0dGVyCisgKiBlcXVpdmFsZW50cyB3aGVyZSBhdmFpbGFibGU8L2xpPgorICogPGxpPnN1cnJvdW5kaW5nIHNwYWNlcyBhcmUgcmVtb3ZlZCBmcm9tIGtleXdvcmRzIGFuZCB2YWx1ZXM8L2xpPgorICogPGxpPmlmIHRoZXJlIGFyZSBtdWx0aXBsZSBrZXl3b3JkcywgdGhleSBhcmUgcHV0IGluIHNvcnRlZCBvcmRlcjwvbGk+CisgKiA8L3VsPgorICogQ2Fub25pY2FsaXphdGlvbiBhZGRpdGlvbmFsbHkgcGVyZm9ybXMgdGhlIGZvbGxvd2luZzoKKyAqIDx1bD4KKyAqIDxsaT5QT1NJWCBpZHMgYXJlIGNvbnZlcnRlZCB0byBJQ1UgZm9ybWF0IElEczwvbGk+CisgKiA8bGk+J2dyYW5kZmF0aGVyZWQnIDMwNjYgaWRzIGFyZSBjb252ZXJ0ZWQgdG8gSUNVIHN0YW5kYXJkIGZvcm08L2xpPgorICogPGxpPidQUkVFVVJPJyBhbmQgJ0VVUk8nIHZhcmlhbnRzIGFyZSBjb252ZXJ0ZWQgdG8gY3VycmVuY3kga2V5d29yZCBmb3JtLCB3aXRoIHRoZSBjdXJyZW5jeQorICogaWQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50cnkgb2YgdGhlIGxvY2FsZSAoZm9yIFBSRUVVUk8pIG9yIEVVUiAoZm9yIEVVUk8pLgorICogPC91bD4KKyAqIEFsbCBVTG9jYWxlIGNvbnN0cnVjdG9ycyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZSB0aGUgbG9jYWxlIGlkLiAgVG8gaGFuZGxlCisgKiBQT1NJWCBpZHMsIDxjb2RlPmNhbm9uaWNhbGl6ZTwvY29kZT4gY2FuIGJlIGNhbGxlZCB0byBjb252ZXJ0IHRoZSBpZAorICogdG8gY2Fub25pY2FsIGZvcm0sIG9yIHRoZSA8Y29kZT5jYW5vbmljYWxJbnN0YW5jZTwvY29kZT4gZmFjdG9yeSBtZXRob2QKKyAqIGNhbiBiZSBjYWxsZWQuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgcHJvdmlkZXMgc2VsZWN0b3JzIHtAbGluayAjVkFMSURfTE9DQUxFfSBhbmQge0BsaW5rCisgKiAjQUNUVUFMX0xPQ0FMRX0gaW50ZW5kZWQgZm9yIHVzZSBpbiBtZXRob2RzIG5hbWVkCisgKiA8dHQ+Z2V0TG9jYWxlKCk8L3R0Pi4gIFRoZXNlIG1ldGhvZHMgZXhpc3QgaW4gc2V2ZXJhbCBJQ1UgY2xhc3NlcywKKyAqIGluY2x1ZGluZyB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcn0sIHtAbGluaworICogY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeX0sIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXR9LAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sc30sIGFuZCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHN9IGFuZCB0aGVpciBzdWJjbGFzc2VzLCBpZgorICogYW55LiAgT25jZSBhbiBvYmplY3Qgb2Ygb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGJlZW4gY3JlYXRlZCwKKyAqIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IG1heSBiZSBjYWxsZWQgb24gaXQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZCBhbmQKKyAqIGFjdHVhbCBsb2NhbGUgYXJyaXZlZCBhdCBkdXJpbmcgdGhlIG9iamVjdCdzIGNvbnN0cnVjdGlvbi4KKyAqCisgKiA8cD5Ob3RlOiBUaGUgPHR0PmdldExvY2FsZSgpPC90dD4gbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVCisgKiAzLjA7IElDVSAyLjggY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIDxpPmFjdHVhbDwvaT4gbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4KKyAqIGxvY2FsZSBpcyBub3QsIGluIG1vc3QgY2FzZXMuCisgKgorICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgKiBAYXV0aG9yIHdlaXYKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOCAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVMb2NhbGUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIC8vIHVzaW5nIHNlcmlhbHZlciBmcm9tIGpkazEuNC4yXzA1CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzcxNTE3NzY3MDM1MjMwOTIxN0w7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRU5HTElTSCA9IG5ldyBVTG9jYWxlKCJlbiIsIExvY2FsZS5FTkdMSVNIKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkVOQ0ggPSBuZXcgVUxvY2FsZSgiZnIiLCBMb2NhbGUuRlJFTkNIKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBHRVJNQU4gPSBuZXcgVUxvY2FsZSgiZGUiLCBMb2NhbGUuR0VSTUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBJVEFMSUFOID0gbmV3IFVMb2NhbGUoIml0IiwgTG9jYWxlLklUQUxJQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEpBUEFORVNFID0gbmV3IFVMb2NhbGUoImphIiwgTG9jYWxlLkpBUEFORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQU4gPSBuZXcgVUxvY2FsZSgia28iLCBMb2NhbGUuS09SRUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDSElORVNFID0gbmV3IFVMb2NhbGUoInpoIiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFNJTVBMSUZJRURfQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW5zIiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFRSQURJVElPTkFMX0NISU5FU0UgPSBuZXcgVUxvY2FsZSgiemhfSGFudCIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBGUkFOQ0UgPSBuZXcgVUxvY2FsZSgiZnJfRlIiLCBMb2NhbGUuRlJBTkNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBHRVJNQU5ZID0gbmV3IFVMb2NhbGUoImRlX0RFIiwgTG9jYWxlLkdFUk1BTlkpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIElUQUxZID0gbmV3IFVMb2NhbGUoIml0X0lUIiwgTG9jYWxlLklUQUxZKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTiA9IG5ldyBVTG9jYWxlKCJqYV9KUCIsIExvY2FsZS5KQVBBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUEgPSBuZXcgVUxvY2FsZSgia29fS1IiLCBMb2NhbGUuS09SRUEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5BID0gbmV3IFVMb2NhbGUoInpoX0hhbnNfQ04iLCBMb2NhbGUuQ0hJTkEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFBSQyA9IENISU5BOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFRBSVdBTiA9IG5ldyBVTG9jYWxlKCJ6aF9IYW50X1RXIiwgTG9jYWxlLlRBSVdBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVUsgPSBuZXcgVUxvY2FsZSgiZW5fR0IiLCBMb2NhbGUuVUspOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFVTID0gbmV3IFVMb2NhbGUoImVuX1VTIiwgTG9jYWxlLlVTKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDQU5BREEgPSBuZXcgVUxvY2FsZSgiZW5fQ0EiLCBMb2NhbGUuQ0FOQURBKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDQU5BREFfRlJFTkNIID0gbmV3IFVMb2NhbGUoImZyX0NBIiwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworCisgICAgLyoqCisgICAgICogSGFuZHkgY29uc3RhbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVNUFRZX1NUUklORyA9ICIiOworCisgICAgLy8gVXNlZCBpbiBib3RoIFVMb2NhbGUgYW5kIElEUGFyc2VyLCBzbyBtb3ZlZCB1cCBoZXJlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVU5ERVJTQ09SRSAgICAgICAgICAgID0gJ18nOworCisgICAgLy8gZGVmYXVsdCBlbXB0eSBsb2NhbGUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgRU1QVFlfTE9DQUxFID0gbmV3IExvY2FsZSgiIiwgIiIpOworCisgICAgLyoqCisgICAgICogVGhlIHJvb3QgVUxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFJPT1QgPSBuZXcgVUxvY2FsZSgicm9vdCIsIEVNUFRZX0xPQ0FMRSk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcCBDQUNIRSA9IG5ldyBIYXNoTWFwKDIwKTsKKyAgICBzdGF0aWMgeworICAgICAgICBDQUNIRS5wdXQoRU1QVFlfTE9DQUxFLCBST09UKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5FTkdMSVNILCBFTkdMSVNIKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkVOQ0gsIEZSRU5DSCk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOLCBHRVJNQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLklUQUxJQU4sIElUQUxJQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkpBUEFORVNFLCBKQVBBTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuS09SRUFOLCBLT1JFQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNISU5FU0UsIENISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRSwgU0lNUExJRklFRF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBUUkFESVRJT05BTF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkFOQ0UsIEZSQU5DRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOWSwgR0VSTUFOWSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSVRBTFksIElUQUxZKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5KQVBBTiwgSkFQQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLktPUkVBLCBLT1JFQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0hJTkEsIENISU5BKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UQUlXQU4sIFRBSVdBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVUssIFVLKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5VUywgVVMpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNBTkFEQSwgQ0FOQURBKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DQU5BREFfRlJFTkNILCBDQU5BREFfRlJFTkNIKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0aGUgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IExvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmF3IGxvY2FsZUlEIHRoYXQgd2Ugd2VyZSBwYXNzZWQgaW4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYWxlSUQ7CisKKyAgICAvKioKKyAgICAgKiBUYWJsZXMgdXNlZCBpbiBub3JtYWxpemluZyBwb3J0aW9ucyBvZiB0aGUgaWQuCisgICAgICovCisgICAgLyogdGFibGVzIHVwZGF0ZWQgcGVyIGh0dHA6Ly9sY3dlYi5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi8gCisgICAgICAgdG8gaW5jbHVkZSB0aGUgcmV2aXNpb25zIHVwIHRvIDIwMDEvNy8yNyAqQ1dCKi8KKyAgICAvKiBUaGUgMyBjaGFyYWN0ZXIgY29kZXMgYXJlIHRoZSB0ZXJtaW5vbG9neSBjb2RlcyBsaWtlIFJGQyAzMDY2LiAgCisgICAgICAgVGhpcyBpcyBjb21wYXRpYmxlIHdpdGggcHJpb3IgSUNVIGNvZGVzICovCisgICAgLyogImluIiAiaXciICJqaSIgImp3IiAmICJzaCIgaGF2ZSBiZWVuIHdpdGhkcmF3biBidXQgYXJlIHN0aWxsIGluIAorICAgICAgIHRoZSB0YWJsZSBidXQgbm93IGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlIGJlY2F1c2UgCisgICAgICAgMyBjaGFyYWN0ZXIgY29kZXMgYXJlIGR1cGxpY2F0ZXMuICBUaGlzIGF2b2lkcyBiYWQgc2VhcmNoZXMKKyAgICAgICBnb2luZyBmcm9tIDMgdG8gMiBjaGFyYWN0ZXIgY29kZXMuKi8KKyAgICAvKiBUaGUgcmFuZ2UgcWFhLXF0eiBpcyByZXNlcnZlZCBmb3IgbG9jYWwgdXNlLiAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2xhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfcmVwbGFjZW1lbnRMYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlTGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9sYW5ndWFnZXMzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUxhbmd1YWdlczM7CisKKyAgICAvLyBBdm9pZCBpbml0aWFsaXppbmcgbGFuZ3VhZ2VzIHRhYmxlcyB1bmxlc3Mgd2UgaGF2ZSB0by4KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRMYW5ndWFnZVRhYmxlcygpIHsKKyAgICAgICAgaWYgKF9sYW5ndWFnZXMgPT0gbnVsbCkgeworCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBiZSBpbiBzb3J0ZWQgb3JkZXIsIGFuZCBNVVNUIGNvbnRhaW4gdGhlIHR3by1sZXR0ZXIgY29kZXMKKyAgICAgICAgICAgICAgIGlmIG9uZSBleGlzdHMgb3RoZXJ3aXNlIHVzZSB0aGUgdGhyZWUgbGV0dGVyIGNvZGUgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImFhIiwgICJhYiIsICAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImFlIiwgICJhZiIsICAiYWZhIiwKKyAgICAgICAgICAgICAgICAiYWZoIiwgImFrIiwgICJha2siLCAiYWxlIiwgImFsZyIsICJhbSIsICAiYW4iLCAgImFuZyIsICJhcGEiLAorICAgICAgICAgICAgICAgICJhciIsICAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhcyIsICAiYXN0IiwKKyAgICAgICAgICAgICAgICAiYXRoIiwgImF1cyIsICJhdiIsICAiYXdhIiwgImF5IiwgICJheiIsICAiYmEiLCAgImJhZCIsCisgICAgICAgICAgICAgICAgImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmUiLCAgImJlaiIsCisgICAgICAgICAgICAgICAgImJlbSIsICJiZXIiLCAiYmciLCAgImJoIiwgICJiaG8iLCAiYmkiLCAgImJpayIsICJiaW4iLAorICAgICAgICAgICAgICAgICJibGEiLCAiYm0iLCAgImJuIiwgICJibnQiLCAiYm8iLCAgImJyIiwgICJicmEiLCAiYnMiLAorICAgICAgICAgICAgICAgICJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2EiLCAgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsCisgICAgICAgICAgICAgICAgImNlIiwgICJjZWIiLCAiY2VsIiwgImNoIiwgICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLAorICAgICAgICAgICAgICAgICJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjbyIsICAiY29wIiwKKyAgICAgICAgICAgICAgICAiY3BlIiwgImNwZiIsICJjcHAiLCAiY3IiLCAgImNyaCIsICJjcnAiLCAiY3MiLCAgImNzYiIsICJjdSIsICAiY3VzIiwKKyAgICAgICAgICAgICAgICAiY3YiLCAgImN5IiwgICJkYSIsICAiZGFrIiwgImRhciIsICJkYXkiLCAiZGUiLCAgImRlbCIsICJkZW4iLAorICAgICAgICAgICAgICAgICJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZHYiLCAgImR5dSIsCisgICAgICAgICAgICAgICAgImR6IiwgICJlZSIsICAiZWZpIiwgImVneSIsICJla2EiLCAiZWwiLCAgImVseCIsICJlbiIsCisgICAgICAgICAgICAgICAgImVubSIsICJlbyIsICAiZXMiLCAgImV0IiwgICJldSIsICAiZXdvIiwgImZhIiwKKyAgICAgICAgICAgICAgICAiZmFuIiwgImZhdCIsICJmZiIsICAiZmkiLCAgImZpdSIsICJmaiIsICAiZm8iLCAgImZvbiIsCisgICAgICAgICAgICAgICAgImZyIiwgICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmeSIsICAiZ2EiLCAgImdhYSIsICJnYXkiLAorICAgICAgICAgICAgICAgICJnYmEiLCAiZ2QiLCAgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsIiwgICJnbWgiLCAiZ24iLAorICAgICAgICAgICAgICAgICJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndSIsICAiZ3YiLAorICAgICAgICAgICAgICAgICJnd2kiLCAiaGEiLCAgImhhaSIsICJoYXciLCAiaGUiLCAgImhpIiwgICJoaWwiLCAiaGltIiwKKyAgICAgICAgICAgICAgICAiaGl0IiwgImhtbiIsICJobyIsICAiaHIiLCAgImhzYiIsICJodCIsICAiaHUiLCAgImh1cCIsICJoeSIsICAiaHoiLAorICAgICAgICAgICAgICAgICJpYSIsICAiaWJhIiwgImlkIiwgICJpZSIsICAiaWciLCAgImlpIiwgICJpam8iLCAiaWsiLAorICAgICAgICAgICAgICAgICJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaW8iLCAgImlyYSIsICJpcm8iLCAiaXMiLCAgIml0IiwKKyAgICAgICAgICAgICAgICAiaXUiLCAgImphIiwgICJqYm8iLCAianByIiwgImpyYiIsICJqdiIsICAia2EiLCAgImthYSIsICJrYWIiLAorICAgICAgICAgICAgICAgICJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtnIiwgICJraGEiLCAia2hpIiwKKyAgICAgICAgICAgICAgICAia2hvIiwgImtpIiwgICJraiIsICAia2siLCAgImtsIiwgICJrbSIsICAia21iIiwgImtuIiwKKyAgICAgICAgICAgICAgICAia28iLCAgImtvayIsICJrb3MiLCAia3BlIiwgImtyIiwgICJrcmMiLCAia3JvIiwgImtydSIsICJrcyIsCisgICAgICAgICAgICAgICAgImt1IiwgICJrdW0iLCAia3V0IiwgImt2IiwgICJrdyIsICAia3kiLCAgImxhIiwgICJsYWQiLAorICAgICAgICAgICAgICAgICJsYWgiLCAibGFtIiwgImxiIiwgICJsZXoiLCAibGciLCAgImxpIiwgICJsbiIsICAibG8iLCAgImxvbCIsCisgICAgICAgICAgICAgICAgImxveiIsICJsdCIsICAibHUiLCAgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLAorICAgICAgICAgICAgICAgICJsdiIsICAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwKKyAgICAgICAgICAgICAgICAibWRmIiwgIm1kciIsICJtZW4iLCAibWciLCAgIm1nYSIsICJtaCIsICAibWkiLCAgIm1pYyIsICJtaW4iLAorICAgICAgICAgICAgICAgICJtaXMiLCAibWsiLCAgIm1raCIsICJtbCIsICAibW4iLCAgIm1uYyIsICJtbmkiLCAibW5vIiwKKyAgICAgICAgICAgICAgICAibW8iLCAgIm1vaCIsICJtb3MiLCAibXIiLCAgIm1zIiwgICJtdCIsICAibXVsIiwgIm11biIsCisgICAgICAgICAgICAgICAgIm11cyIsICJtd3IiLCAibXkiLCAgIm15biIsICJteXYiLCAibmEiLCAgIm5haCIsICJuYWkiLCAibmFwIiwKKyAgICAgICAgICAgICAgICAibmIiLCAgIm5kIiwgICJuZHMiLCAibmUiLCAgIm5ldyIsICJuZyIsICAibmlhIiwgIm5pYyIsCisgICAgICAgICAgICAgICAgIm5pdSIsICJubCIsICAibm4iLCAgIm5vIiwgICJub2ciLCAibm9uIiwgIm5yIiwgICJuc28iLCAibnViIiwKKyAgICAgICAgICAgICAgICAibnYiLCAgIm53YyIsICJueSIsICAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jIiwgICJvaiIsCisgICAgICAgICAgICAgICAgIm9tIiwgICJvciIsICAib3MiLCAgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhIiwgICJwYWEiLAorICAgICAgICAgICAgICAgICJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwKKyAgICAgICAgICAgICAgICAicGkiLCAgInBsIiwgICJwb24iLCAicHJhIiwgInBybyIsICJwcyIsICAicHQiLCAgInF1IiwKKyAgICAgICAgICAgICAgICAicmFqIiwgInJhcCIsICJyYXIiLCAicm0iLCAgInJuIiwgICJybyIsICAicm9hIiwgInJvbSIsCisgICAgICAgICAgICAgICAgInJ1IiwgICJydXAiLCAicnciLCAgInNhIiwgICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwKKyAgICAgICAgICAgICAgICAic2FzIiwgInNhdCIsICJzYyIsICAic2NvIiwgInNkIiwgICJzZSIsICAic2VsIiwgInNlbSIsCisgICAgICAgICAgICAgICAgInNnIiwgICJzZ2EiLCAic2duIiwgInNobiIsICJzaSIsICAic2lkIiwgInNpbyIsICJzaXQiLAorICAgICAgICAgICAgICAgICJzayIsICAic2wiLCAgInNsYSIsICJzbSIsICAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwKKyAgICAgICAgICAgICAgICAic21zIiwgInNuIiwgICJzbmsiLCAic28iLCAgInNvZyIsICJzb24iLCAic3EiLCAgInNyIiwKKyAgICAgICAgICAgICAgICAic3JyIiwgInNzIiwgICJzc2EiLCAic3QiLCAgInN1IiwgICJzdWsiLCAic3VzIiwgInN1eCIsCisgICAgICAgICAgICAgICAgInN2IiwgICJzdyIsICAic3lyIiwgInRhIiwgICJ0YWkiLCAidGUiLCAgInRlbSIsICJ0ZXIiLAorICAgICAgICAgICAgICAgICJ0ZXQiLCAidGciLCAgInRoIiwgICJ0aSIsICAidGlnIiwgInRpdiIsICJ0ayIsICAidGtsIiwKKyAgICAgICAgICAgICAgICAidGwiLCAgInRsaCIsICJ0bGkiLCAidG1oIiwgInRuIiwgICJ0byIsICAidG9nIiwgInRwaSIsICJ0ciIsCisgICAgICAgICAgICAgICAgInRzIiwgICJ0c2kiLCAidHQiLCAgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0dyIsCisgICAgICAgICAgICAgICAgInR5IiwgICJ0eXYiLCAidWRtIiwgInVnIiwgICJ1Z2EiLCAidWsiLCAgInVtYiIsICJ1bmQiLCAidXIiLAorICAgICAgICAgICAgICAgICJ1eiIsICAidmFpIiwgInZlIiwgICJ2aSIsICAidm8iLCAgInZvdCIsICJ3YSIsICAid2FrIiwKKyAgICAgICAgICAgICAgICAid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvIiwgICJ4YWwiLCAieGgiLCAgInlhbyIsICJ5YXAiLAorICAgICAgICAgICAgICAgICJ5aSIsICAieW8iLCAgInlwayIsICJ6YSIsICAiemFwIiwgInplbiIsICJ6aCIsICAiem5kIiwKKyAgICAgICAgICAgICAgICAienUiLCAgInp1biIsIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gdGVtcFJlcGxhY2VtZW50TGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJpZCIsICJoZSIsICJ5aSIsICJqdiIsICJzciIsICJuYiIsLyogcmVwbGFjZW1lbnQgbGFuZ3VhZ2UgY29kZXMgKi8KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUxhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiaW4iLCAiaXciLCAiamkiLCAianciLCAic2giLCAibm8iLCAgICAvKiBvYnNvbGV0ZSBsYW5ndWFnZSBjb2RlcyAqLyAgICAgICAgIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgY29udGFpbiBhIHRocmVlLWxldHRlciBjb2RlIGZvciBldmVyeSB0d28tbGV0dGVyIGNvZGUgaW4gdGhlCisgICAgICAgICAgICAgICBsaXN0IGFib3ZlLCBhbmQgdGhleSBNVVNUIG5lIGluIHRoZSBzYW1lIG9yZGVyIChpLmUuLCB0aGUgc2FtZSBsYW5ndWFnZSBtdXN0CisgICAgICAgICAgICAgICBiZSBpbiB0aGUgc2FtZSBwbGFjZSBpbiBib3RoIGxpc3RzKSEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBMYW5ndWFnZXMzID0geworICAgICAgICAgICAgICAgIC8qImFhIiwgICJhYiIsICAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImFlIiwgICJhZiIsICAiYWZhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYWFyIiwgImFiayIsICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYXZlIiwgImFmciIsICJhZmEiLAorICAgICAgICAgICAgICAgIC8qImFmaCIsICJhayIsICAiYWtrIiwgImFsZSIsICJhbGciLCAiYW0iLCAgImFuIiwgICJhbmciLCAiYXBhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYWZoIiwgImFrYSIsICJha2siLCAiYWxlIiwgImFsZyIsICJhbWgiLCAiYXJnIiwgImFuZyIsICJhcGEiLAorICAgICAgICAgICAgICAgIC8qImFyIiwgICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzIiwgICJhc3QiLCAgICAqLworICAgICAgICAgICAgICAgICJhcmEiLCAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhc20iLCAiYXN0IiwKKyAgICAgICAgICAgICAgICAvKiJhdGgiLCAiYXVzIiwgImF2IiwgICJhd2EiLCAiYXkiLCAgImF6IiwgICJiYSIsICAiYmFkIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYXRoIiwgImF1cyIsICJhdmEiLCAiYXdhIiwgImF5bSIsICJhemUiLCAiYmFrIiwgImJhZCIsCisgICAgICAgICAgICAgICAgLyoiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZSIsICAiYmVqIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZWwiLCAiYmVqIiwKKyAgICAgICAgICAgICAgICAvKiJiZW0iLCAiYmVyIiwgImJnIiwgICJiaCIsICAiYmhvIiwgImJpIiwgICJiaWsiLCAiYmluIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYmVtIiwgImJlciIsICJidWwiLCAiYmloIiwgImJobyIsICJiaXMiLCAiYmlrIiwgImJpbiIsCisgICAgICAgICAgICAgICAgLyoiYmxhIiwgImJtIiwgICJibiIsICAiYm50IiwgImJvIiwgICJiciIsICAiYnJhIiwgImJzIiwgICAgICovCisgICAgICAgICAgICAgICAgImJsYSIsICJiYW0iLCAgImJlbiIsICJibnQiLCAiYm9kIiwgImJyZSIsICJicmEiLCAiYm9zIiwKKyAgICAgICAgICAgICAgICAvKiJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2EiLCAgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsICAgICovCisgICAgICAgICAgICAgICAgImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYXQiLCAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwKKyAgICAgICAgICAgICAgICAvKiJjZSIsICAiY2ViIiwgImNlbCIsICJjaCIsICAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2hlIiwgImNlYiIsICJjZWwiLCAiY2hhIiwgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsCisgICAgICAgICAgICAgICAgLyoiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY28iLCAgImNvcCIsICAgICovCisgICAgICAgICAgICAgICAgImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvcyIsICJjb3AiLAorICAgICAgICAgICAgICAgIC8qImNwZSIsICJjcGYiLCAiY3BwIiwgImNyIiwgICJjcmgiLCAiY3JwIiwgImNzIiwgICJjc2IiLCAiY3UiLCAgImN1cyIsICAgICovCisgICAgICAgICAgICAgICAgImNwZSIsICJjcGYiLCAiY3BwIiwgImNyZSIsICJjcmgiLCAiY3JwIiwgImNlcyIsICJjc2IiLCAiY2h1IiwgImN1cyIsCisgICAgICAgICAgICAgICAgLyoiY3YiLCAgImN5IiwgICJkYSIsICAiZGFrIiwgImRhciIsICJkYXkiLCAiZGUiLCAgImRlbCIsICJkZW4iLCAgICAqLworICAgICAgICAgICAgICAgICJjaHYiLCAiY3ltIiwgImRhbiIsICJkYWsiLCAiZGFyIiwgImRheSIsICJkZXUiLCAiZGVsIiwgImRlbiIsCisgICAgICAgICAgICAgICAgLyoiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImR2IiwgICJkeXUiLCAgICAqLworICAgICAgICAgICAgICAgICJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZGl2IiwgImR5dSIsCisgICAgICAgICAgICAgICAgLyoiZHoiLCAgImVlIiwgICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbCIsICAiZWx4IiwgImVuIiwgICAgICovCisgICAgICAgICAgICAgICAgImR6byIsICJld2UiLCAiZWZpIiwgImVneSIsICJla2EiLCAiZWxsIiwgImVseCIsICJlbmciLAorICAgICAgICAgICAgICAgIC8qImVubSIsICJlbyIsICAiZXMiLCAgImV0IiwgICJldSIsICAiZXdvIiwgImZhIiwgICAgICovCisgICAgICAgICAgICAgICAgImVubSIsICJlcG8iLCAic3BhIiwgImVzdCIsICJldXMiLCAiZXdvIiwgImZhcyIsCisgICAgICAgICAgICAgICAgLyoiZmFuIiwgImZhdCIsICJmZiIsICAiZmkiLCAgImZpdSIsICJmaiIsICAiZm8iLCAgImZvbiIsICAgICovCisgICAgICAgICAgICAgICAgImZhbiIsICJmYXQiLCAiZnVsIiwgImZpbiIsICJmaXUiLCAiZmlqIiwgImZhbyIsICJmb24iLAorICAgICAgICAgICAgICAgIC8qImZyIiwgICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmeSIsICAiZ2EiLCAgImdhYSIsICJnYXkiLCAgICAqLworICAgICAgICAgICAgICAgICJmcmEiLCAiZnJtIiwgImZybyIsICJmdXIiLCAiZnJ5IiwgImdsZSIsICJnYWEiLCAiZ2F5IiwKKyAgICAgICAgICAgICAgICAvKiJnYmEiLCAiZ2QiLCAgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsIiwgICJnbWgiLCAiZ24iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZ2JhIiwgImdsYSIsICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbGciLCAiZ21oIiwgImdybiIsCisgICAgICAgICAgICAgICAgLyoiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3UiLCAgImd2IiwgICAgICovCisgICAgICAgICAgICAgICAgImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1aiIsICJnbHYiLAorICAgICAgICAgICAgICAgIC8qImd3aSIsICJoYSIsICAiaGFpIiwgImhhdyIsICJoZSIsICAiaGkiLCAgImhpbCIsICJoaW0iLCAgICAqLworICAgICAgICAgICAgICAgICJnd2kiLCAiaGF1IiwgImhhaSIsICJoYXciLCAiaGViIiwgImhpbiIsICJoaWwiLCAiaGltIiwKKyAgICAgICAgICAgICAgICAvKiJoaXQiLCAiaG1uIiwgImhvIiwgICJociIsICAiaHNiIiwgImh0IiwgICJodSIsICAiaHVwIiwgImh5IiwgICJoeiIsICAgICAqLworICAgICAgICAgICAgICAgICJoaXQiLCAiaG1uIiwgImhtbyIsICJocnYiLCAiaHNiIiwgImhhdCIsICJodW4iLCAiaHVwIiwgImh5ZSIsICJoZXIiLAorICAgICAgICAgICAgICAgIC8qImlhIiwgICJpYmEiLCAiaWQiLCAgImllIiwgICJpZyIsICAiaWkiLCAgImlqbyIsICJpayIsICAgICAqLworICAgICAgICAgICAgICAgICJpbmEiLCAiaWJhIiwgImluZCIsICJpbGUiLCAiaWJvIiwgImlpaSIsICJpam8iLCAiaXBrIiwKKyAgICAgICAgICAgICAgICAvKiJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaW8iLCAgImlyYSIsICJpcm8iLCAiaXMiLCAgIml0IiwgICAgICAqLworICAgICAgICAgICAgICAgICJpbG8iLCAiaW5jIiwgImluZSIsICJpbmgiLCAiaWRvIiwgImlyYSIsICJpcm8iLCAiaXNsIiwgIml0YSIsCisgICAgICAgICAgICAgICAgLyoiaXUiLCAgImphIiwgICJqYm8iLCAianByIiwgImpyYiIsICJqdiIsICAia2EiLCAgImthYSIsICJrYWIiLCAgICovCisgICAgICAgICAgICAgICAgImlrdSIsICJqcG4iLCAiamJvIiwgImpwciIsICJqcmIiLCAiamF3IiwgImthdCIsICJrYWEiLCAia2FiIiwKKyAgICAgICAgICAgICAgICAvKiJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtnIiwgICJraGEiLCAia2hpIiwgICAgKi8KKyAgICAgICAgICAgICAgICAia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrb24iLCAia2hhIiwgImtoaSIsCisgICAgICAgICAgICAgICAgLyoia2hvIiwgImtpIiwgICJraiIsICAia2siLCAgImtsIiwgICJrbSIsICAia21iIiwgImtuIiwgICAgICovCisgICAgICAgICAgICAgICAgImtobyIsICJraWsiLCAia3VhIiwgImtheiIsICJrYWwiLCAia2htIiwgImttYiIsICJrYW4iLAorICAgICAgICAgICAgICAgIC8qImtvIiwgICJrb2siLCAia29zIiwgImtwZSIsICJrciIsICAia3JjIiwgImtybyIsICJrcnUiLCAia3MiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAia29yIiwgImtvayIsICJrb3MiLCAia3BlIiwgImthdSIsICJrcmMiLCAia3JvIiwgImtydSIsICJrYXMiLAorICAgICAgICAgICAgICAgIC8qImt1IiwgICJrdW0iLCAia3V0IiwgImt2IiwgICJrdyIsICAia3kiLCAgImxhIiwgICJsYWQiLCAgICAqLworICAgICAgICAgICAgICAgICJrdXIiLCAia3VtIiwgImt1dCIsICJrb20iLCAiY29yIiwgImtpciIsICJsYXQiLCAibGFkIiwKKyAgICAgICAgICAgICAgICAvKiJsYWgiLCAibGFtIiwgImxiIiwgICJsZXoiLCAibGciLCAgImxpIiwgICJsbiIsICAibG8iLCAgImxvbCIsICAgICovCisgICAgICAgICAgICAgICAgImxhaCIsICJsYW0iLCAibHR6IiwgImxleiIsICJsdWciLCAibGltIiwgImxpbiIsICJsYW8iLCAibG9sIiwKKyAgICAgICAgICAgICAgICAvKiJsb3oiLCAibHQiLCAgImx1IiwgICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibG96IiwgImxpdCIsICJsdWIiLCAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsCisgICAgICAgICAgICAgICAgLyoibHYiLCAgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsICAgICovCisgICAgICAgICAgICAgICAgImxhdiIsICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLAorICAgICAgICAgICAgICAgIC8qIm1kZiIsICJtZHIiLCAibWVuIiwgIm1nIiwgICJtZ2EiLCAibWgiLCAgIm1pIiwgICJtaWMiLCAibWluIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibWRmIiwgIm1kciIsICJtZW4iLCAibWxnIiwgIm1nYSIsICJtYWgiLCAibXJpIiwgIm1pYyIsICJtaW4iLAorICAgICAgICAgICAgICAgIC8qIm1pcyIsICJtayIsICAibWtoIiwgIm1sIiwgICJtbiIsICAibW5jIiwgIm1uaSIsICJtbm8iLCAgICAqLworICAgICAgICAgICAgICAgICJtaXMiLCAibWtkIiwgIm1raCIsICJtYWwiLCAibW9uIiwgIm1uYyIsICJtbmkiLCAibW5vIiwKKyAgICAgICAgICAgICAgICAvKiJtbyIsICAibW9oIiwgIm1vcyIsICJtciIsICAibXMiLCAgIm10IiwgICJtdWwiLCAibXVuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibW9sIiwgIm1vaCIsICJtb3MiLCAibWFyIiwgIm1zYSIsICJtbHQiLCAibXVsIiwgIm11biIsCisgICAgICAgICAgICAgICAgLyoibXVzIiwgIm13ciIsICJteSIsICAibXluIiwgIm15diIsICJuYSIsICAibmFoIiwgIm5haSIsICJuYXAiLCAgICAqLworICAgICAgICAgICAgICAgICJtdXMiLCAibXdyIiwgIm15YSIsICJteW4iLCAibXl2IiwgIm5hdSIsICJuYWgiLCAibmFpIiwgIm5hcCIsCisgICAgICAgICAgICAgICAgLyoibmIiLCAgIm5kIiwgICJuZHMiLCAibmUiLCAgIm5ldyIsICJuZyIsICAibmlhIiwgIm5pYyIsICAgICovCisgICAgICAgICAgICAgICAgIm5vYiIsICJuZGUiLCAibmRzIiwgIm5lcCIsICJuZXciLCAibmRvIiwgIm5pYSIsICJuaWMiLAorICAgICAgICAgICAgICAgIC8qIm5pdSIsICJubCIsICAibm4iLCAgIm5vIiwgICJub2ciLCAibm9uIiwgIm5yIiwgICJuc28iLCAibnViIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibml1IiwgIm5sZCIsICJubm8iLCAibm9yIiwgIm5vZyIsICJub24iLCAibmJsIiwgIm5zbyIsICJudWIiLAorICAgICAgICAgICAgICAgIC8qIm52IiwgICJud2MiLCAibnkiLCAgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvYyIsICAib2oiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAibmF2IiwgIm53YyIsICJueWEiLCAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jaSIsICJvamkiLAorICAgICAgICAgICAgICAgIC8qIm9tIiwgICJvciIsICAib3MiLCAgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhIiwgICJwYWEiLCAgICAqLworICAgICAgICAgICAgICAgICJvcm0iLCAib3JpIiwgIm9zcyIsICJvc2EiLCAib3RhIiwgIm90byIsICJwYW4iLCAicGFhIiwKKyAgICAgICAgICAgICAgICAvKiJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsCisgICAgICAgICAgICAgICAgLyoicGkiLCAgInBsIiwgICJwb24iLCAicHJhIiwgInBybyIsICJwcyIsICAicHQiLCAgInF1IiwgICAgICovCisgICAgICAgICAgICAgICAgInBsaSIsICJwb2wiLCAicG9uIiwgInByYSIsICJwcm8iLCAicHVzIiwgInBvciIsICJxdWUiLAorICAgICAgICAgICAgICAgIC8qInJhaiIsICJyYXAiLCAicmFyIiwgInJtIiwgICJybiIsICAicm8iLCAgInJvYSIsICJyb20iLCAgICAqLworICAgICAgICAgICAgICAgICJyYWoiLCAicmFwIiwgInJhciIsICJyb2giLCAicnVuIiwgInJvbiIsICJyb2EiLCAicm9tIiwKKyAgICAgICAgICAgICAgICAvKiJydSIsICAicnVwIiwgInJ3IiwgICJzYSIsICAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsICAgICovCisgICAgICAgICAgICAgICAgInJ1cyIsICJydXAiLCAia2luIiwgInNhbiIsICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwKKyAgICAgICAgICAgICAgICAvKiJzYXMiLCAic2F0IiwgInNjIiwgICJzY28iLCAic2QiLCAgInNlIiwgICJzZWwiLCAic2VtIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2FzIiwgInNhdCIsICJzcmQiLCAic2NvIiwgInNuZCIsICJzbWUiLCAic2VsIiwgInNlbSIsCisgICAgICAgICAgICAgICAgLyoic2ciLCAgInNnYSIsICJzZ24iLCAic2huIiwgInNpIiwgICJzaWQiLCAic2lvIiwgInNpdCIsICAgICovCisgICAgICAgICAgICAgICAgInNhZyIsICJzZ2EiLCAic2duIiwgInNobiIsICJzaW4iLCAic2lkIiwgInNpbyIsICJzaXQiLAorICAgICAgICAgICAgICAgIC8qInNrIiwgICJzbCIsICAic2xhIiwgInNtIiwgICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLCAgICAqLworICAgICAgICAgICAgICAgICJzbGsiLCAic2x2IiwgInNsYSIsICJzbW8iLCAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwKKyAgICAgICAgICAgICAgICAvKiJzbXMiLCAic24iLCAgInNuayIsICJzbyIsICAic29nIiwgInNvbiIsICJzcSIsICAic3IiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAic21zIiwgInNuYSIsICJzbmsiLCAic29tIiwgInNvZyIsICJzb24iLCAic3FpIiwgInNycCIsCisgICAgICAgICAgICAgICAgLyoic3JyIiwgInNzIiwgICJzc2EiLCAic3QiLCAgInN1IiwgICJzdWsiLCAic3VzIiwgInN1eCIsICAgICovCisgICAgICAgICAgICAgICAgInNyciIsICJzc3ciLCAic3NhIiwgInNvdCIsICJzdW4iLCAic3VrIiwgInN1cyIsICJzdXgiLAorICAgICAgICAgICAgICAgIC8qInN2IiwgICJzdyIsICAic3lyIiwgInRhIiwgICJ0YWkiLCAidGUiLCAgInRlbSIsICJ0ZXIiLCAgICAqLworICAgICAgICAgICAgICAgICJzd2UiLCAic3dhIiwgInN5ciIsICJ0YW0iLCAidGFpIiwgInRlbCIsICJ0ZW0iLCAidGVyIiwKKyAgICAgICAgICAgICAgICAvKiJ0ZXQiLCAidGciLCAgInRoIiwgICJ0aSIsICAidGlnIiwgInRpdiIsICJ0ayIsICAidGtsIiwgICAgKi8KKyAgICAgICAgICAgICAgICAidGV0IiwgInRnayIsICJ0aGEiLCAidGlyIiwgInRpZyIsICJ0aXYiLCAidHVrIiwgInRrbCIsCisgICAgICAgICAgICAgICAgLyoidGwiLCAgInRsaCIsICJ0bGkiLCAidG1oIiwgInRuIiwgICJ0byIsICAidG9nIiwgInRwaSIsICJ0ciIsICAgICAqLworICAgICAgICAgICAgICAgICJ0Z2wiLCAidGxoIiwgInRsaSIsICJ0bWgiLCAidHNuIiwgInRvbiIsICJ0b2ciLCAidHBpIiwgInR1ciIsCisgICAgICAgICAgICAgICAgLyoidHMiLCAgInRzaSIsICJ0dCIsICAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3IiwgICAgICovCisgICAgICAgICAgICAgICAgInRzbyIsICJ0c2kiLCAidGF0IiwgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0d2kiLAorICAgICAgICAgICAgICAgIC8qInR5IiwgICJ0eXYiLCAidWRtIiwgInVnIiwgICJ1Z2EiLCAidWsiLCAgInVtYiIsICJ1bmQiLCAidXIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidGFoIiwgInR5diIsICJ1ZG0iLCAidWlnIiwgInVnYSIsICJ1a3IiLCAidW1iIiwgInVuZCIsICJ1cmQiLAorICAgICAgICAgICAgICAgIC8qInV6IiwgICJ2YWkiLCAidmUiLCAgInZpIiwgICJ2byIsICAidm90IiwgIndhIiwgICJ3YWsiLCAgICAqLworICAgICAgICAgICAgICAgICJ1emIiLCAidmFpIiwgInZlbiIsICJ2aWUiLCAidm9sIiwgInZvdCIsICJ3bG4iLCAid2FrIiwKKyAgICAgICAgICAgICAgICAvKiJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid28iLCAgInhhbCIsICJ4aCIsICAieWFvIiwgInlhcCIsICAgICovCisgICAgICAgICAgICAgICAgIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3b2wiLCAieGFsIiwgInhobyIsICJ5YW8iLCAieWFwIiwKKyAgICAgICAgICAgICAgICAvKiJ5aSIsICAieW8iLCAgInlwayIsICJ6YSIsICAiemFwIiwgInplbiIsICJ6aCIsICAiem5kIiwgICAgKi8KKyAgICAgICAgICAgICAgICAieWlkIiwgInlvciIsICJ5cGsiLCAiemhhIiwgInphcCIsICJ6ZW4iLCAiemhvIiwgInpuZCIsCisgICAgICAgICAgICAgICAgLyoienUiLCAgInp1biIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgInp1bCIsICJ6dW4iLCAgCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiAiaW4iLCAgIml3IiwgICJqaSIsICAianciLCAgInNoIiwgKi8KKyAgICAgICAgICAgICAgICAiaW5kIiwgImhlYiIsICJ5aWQiLCAiamF3IiwgInNycCIsIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF9sYW5ndWFnZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfbGFuZ3VhZ2VzID0gdGVtcExhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX3JlcGxhY2VtZW50TGFuZ3VhZ2VzID0gdGVtcFJlcGxhY2VtZW50TGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVMYW5ndWFnZXMgPSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9sYW5ndWFnZXMzID0gdGVtcExhbmd1YWdlczM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUxhbmd1YWdlczMgPSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9jb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2RlcHJlY2F0ZWRDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX3JlcGxhY2VtZW50Q291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUNvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfY291bnRyaWVzMzsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVDb3VudHJpZXMzOyAgCisKKyAgICAvLyBBdm9pZCBpbml0aWFsaXppbmcgY291bnRyeSB0YWJsZXMgdW5sZXNzIHdlIGhhdmUgdG8uCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0Q291bnRyeVRhYmxlcygpIHsgICAgCisgICAgICAgIGlmIChfY291bnRyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIC8qIFpSKFpBUikgaXMgbm93IENEKENPRCkgYW5kIEZYKEZYWCkgaXMgUFMoUFNFKSBhcyBwZXIKKyAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuZXZlcnR5cGUuY29tL3N0YW5kYXJkcy9pc28zMTY2L2lzbzMxNjYtMS1lbi5odG1sIAorICAgICAgICAgICAgICAgYWRkZWQgbmV3IGNvZGVzIGtlZXBpbmcgdGhlIG9sZCBvbmVzIGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgICAgICAgICB1cGRhdGVkIHRvIGluY2x1ZGUgMTk5OS8xMi8wMyByZXZpc2lvbnMgKkNXQiovCisgICAgCisgICAgICAgICAgICAvKiBSTyhST00pIGlzIG5vdyBSTyhST1UpIGFjY29yZGluZyB0byAKKyAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hLzAzdXBkYXRlcy1vbi1pc28tMzE2Ni9ubHYzZS1yb3UuaHRtbAorICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGJlIGluIHNvcnRlZCBvcmRlciwgYW5kIE1VU1QgY29udGFpbiBvbmx5IHR3by1sZXR0ZXIgY29kZXMhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wQ291bnRyaWVzID0geworICAgICAgICAgICAgICAgICJBRCIsICAiQUUiLCAgIkFGIiwgICJBRyIsICAiQUkiLCAgIkFMIiwgICJBTSIsICAiQU4iLAorICAgICAgICAgICAgICAgICJBTyIsICAiQVEiLCAgIkFSIiwgICJBUyIsICAiQVQiLCAgIkFVIiwgICJBVyIsICAiQVoiLAorICAgICAgICAgICAgICAgICJCQSIsICAiQkIiLCAgIkJEIiwgICJCRSIsICAiQkYiLCAgIkJHIiwgICJCSCIsICAiQkkiLAorICAgICAgICAgICAgICAgICJCSiIsICAiQk0iLCAgIkJOIiwgICJCTyIsICAiQlIiLCAgIkJTIiwgICJCVCIsICAiQlYiLAorICAgICAgICAgICAgICAgICJCVyIsICAiQlkiLCAgIkJaIiwgICJDQSIsICAiQ0MiLCAgIkNEIiwgICJDRiIsICAiQ0ciLAorICAgICAgICAgICAgICAgICJDSCIsICAiQ0kiLCAgIkNLIiwgICJDTCIsICAiQ00iLCAgIkNOIiwgICJDTyIsICAiQ1IiLAorICAgICAgICAgICAgICAgICJDVSIsICAiQ1YiLCAgIkNYIiwgICJDWSIsICAiQ1oiLCAgIkRFIiwgICJESiIsICAiREsiLAorICAgICAgICAgICAgICAgICJETSIsICAiRE8iLCAgIkRaIiwgICJFQyIsICAiRUUiLCAgIkVHIiwgICJFSCIsICAiRVIiLAorICAgICAgICAgICAgICAgICJFUyIsICAiRVQiLCAgIkZJIiwgICJGSiIsICAiRksiLCAgIkZNIiwgICJGTyIsICAiRlIiLAorICAgICAgICAgICAgICAgICJHQSIsICAiR0IiLCAgIkdEIiwgICJHRSIsICAiR0YiLCAgIkdIIiwgICJHSSIsICAiR0wiLAorICAgICAgICAgICAgICAgICJHTSIsICAiR04iLCAgIkdQIiwgICJHUSIsICAiR1IiLCAgIkdTIiwgICJHVCIsICAiR1UiLAorICAgICAgICAgICAgICAgICJHVyIsICAiR1kiLCAgIkhLIiwgICJITSIsICAiSE4iLCAgIkhSIiwgICJIVCIsICAiSFUiLAorICAgICAgICAgICAgICAgICJJRCIsICAiSUUiLCAgIklMIiwgICJJTiIsICAiSU8iLCAgIklRIiwgICJJUiIsICAiSVMiLAorICAgICAgICAgICAgICAgICJJVCIsICAiSk0iLCAgIkpPIiwgICJKUCIsICAiS0UiLCAgIktHIiwgICJLSCIsICAiS0kiLAorICAgICAgICAgICAgICAgICJLTSIsICAiS04iLCAgIktQIiwgICJLUiIsICAiS1ciLCAgIktZIiwgICJLWiIsICAiTEEiLAorICAgICAgICAgICAgICAgICJMQiIsICAiTEMiLCAgIkxJIiwgICJMSyIsICAiTFIiLCAgIkxTIiwgICJMVCIsICAiTFUiLAorICAgICAgICAgICAgICAgICJMViIsICAiTFkiLCAgIk1BIiwgICJNQyIsICAiTUQiLCAgIk1HIiwgICJNSCIsICAiTUsiLAorICAgICAgICAgICAgICAgICJNTCIsICAiTU0iLCAgIk1OIiwgICJNTyIsICAiTVAiLCAgIk1RIiwgICJNUiIsICAiTVMiLAorICAgICAgICAgICAgICAgICJNVCIsICAiTVUiLCAgIk1WIiwgICJNVyIsICAiTVgiLCAgIk1ZIiwgICJNWiIsICAiTkEiLAorICAgICAgICAgICAgICAgICJOQyIsICAiTkUiLCAgIk5GIiwgICJORyIsICAiTkkiLCAgIk5MIiwgICJOTyIsICAiTlAiLAorICAgICAgICAgICAgICAgICJOUiIsICAiTlUiLCAgIk5aIiwgICJPTSIsICAiUEEiLCAgIlBFIiwgICJQRiIsICAiUEciLAorICAgICAgICAgICAgICAgICJQSCIsICAiUEsiLCAgIlBMIiwgICJQTSIsICAiUE4iLCAgIlBSIiwgICJQUyIsICAiUFQiLAorICAgICAgICAgICAgICAgICJQVyIsICAiUFkiLCAgIlFBIiwgICJSRSIsICAiUk8iLCAgIlJVIiwgICJSVyIsICAiU0EiLAorICAgICAgICAgICAgICAgICJTQiIsICAiU0MiLCAgIlNEIiwgICJTRSIsICAiU0ciLCAgIlNIIiwgICJTSSIsICAiU0oiLAorICAgICAgICAgICAgICAgICJTSyIsICAiU0wiLCAgIlNNIiwgICJTTiIsICAiU08iLCAgIlNSIiwgICJTVCIsICAiU1YiLAorICAgICAgICAgICAgICAgICJTWSIsICAiU1oiLCAgIlRDIiwgICJURCIsICAiVEYiLCAgIlRHIiwgICJUSCIsICAiVEoiLAorICAgICAgICAgICAgICAgICJUSyIsICAiVEwiLCAgIlRNIiwgICJUTiIsICAiVE8iLCAgIlRSIiwgICJUVCIsICAiVFYiLAorICAgICAgICAgICAgICAgICJUVyIsICAiVFoiLCAgIlVBIiwgICJVRyIsICAiVU0iLCAgIlVTIiwgICJVWSIsICAiVVoiLAorICAgICAgICAgICAgICAgICJWQSIsICAiVkMiLCAgIlZFIiwgICJWRyIsICAiVkkiLCAgIlZOIiwgICJWVSIsICAiV0YiLAorICAgICAgICAgICAgICAgICJXUyIsICAiWUUiLCAgIllUIiwgICJZVSIsICAiWkEiLCAgIlpNIiwgICJaVyIsICAKKyAgICAgICAgICAgIH07CQorCisgICAgICAgICAgICAvKiB0aGlzIHRhYmxlIGlzIHVzZWQgZm9yIDMgbGV0dGVyIGNvZGVzICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAgIkZYIiwgICJSTyIsICAiVFAiLCAgIlpSIiwgIC8qIG9ic29sZXRlIGNvdW50cnkgY29kZXMgKi8gICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBEZXByZWNhdGVkQ291bnRyaWVzID0geworICAgICAgICAgICAgICAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAvKiBkZXByZWNhdGVkIGNvdW50cnkgbGlzdCAqLworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBSZXBsYWNlbWVudENvdW50cmllcyA9IHsKKyAgICAgICAgICAgLyogICJCVSIsICJEWSIsICJGWCIsICJIViIsICJOSCIsICJSSCIsICJUUCIsICJZVSIsICJaUiIgKi8KKyAgICAgICAgICAgICAgICJNTSIsICJCSiIsICJGUiIsICJCRiIsICJWVSIsICJaVyIsICJUTCIsICJDUyIsICJDRCIsICAgLyogcmVwbGFjZW1lbnQgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGNvbnRhaW4gYSB0aHJlZS1sZXR0ZXIgY29kZSBmb3IgZXZlcnkgdHdvLWxldHRlciBjb2RlIGluCisgICAgICAgICAgICAgICB0aGUgYWJvdmUgbGlzdCwgYW5kIHRoZXkgTVVTVCBiZSBsaXN0ZWQgaW4gdGhlIHNhbWUgb3JkZXIhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJBRCIsICAiQUUiLCAgIkFGIiwgICJBRyIsICAiQUkiLCAgIkFMIiwgICJBTSIsICAiQU4iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQU5EIiwgIkFSRSIsICJBRkciLCAiQVRHIiwgIkFJQSIsICJBTEIiLCAiQVJNIiwgIkFOVCIsCisgICAgICAgICAgICAgICAgLyoiQU8iLCAgIkFRIiwgICJBUiIsICAiQVMiLCAgIkFUIiwgICJBVSIsICAiQVciLCAgIkFaIiwgICAgICovCisgICAgICAgICAgICAgICAgIkFHTyIsICJBVEEiLCAiQVJHIiwgIkFTTSIsICJBVVQiLCAiQVVTIiwgIkFCVyIsICJBWkUiLAorICAgICAgICAgICAgICAgIC8qIkJBIiwgICJCQiIsICAiQkQiLCAgIkJFIiwgICJCRiIsICAiQkciLCAgIkJIIiwgICJCSSIsICAgICAqLworICAgICAgICAgICAgICAgICJCSUgiLCAiQlJCIiwgIkJHRCIsICJCRUwiLCAiQkZBIiwgIkJHUiIsICJCSFIiLCAiQkRJIiwKKyAgICAgICAgICAgICAgICAvKiJCSiIsICAiQk0iLCAgIkJOIiwgICJCTyIsICAiQlIiLCAgIkJTIiwgICJCVCIsICAiQlYiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQkVOIiwgIkJNVSIsICJCUk4iLCAiQk9MIiwgIkJSQSIsICJCSFMiLCAiQlROIiwgIkJWVCIsCisgICAgICAgICAgICAgICAgLyoiQlciLCAgIkJZIiwgICJCWiIsICAiQ0EiLCAgIkNDIiwgICJDRCIsICAiQ0YiLCAgIkNHIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJXQSIsICJCTFIiLCAiQkxaIiwgIkNBTiIsICJDQ0siLCAiQ09EIiwgIkNBRiIsICJDT0ciLAorICAgICAgICAgICAgICAgIC8qIkNIIiwgICJDSSIsICAiQ0siLCAgIkNMIiwgICJDTSIsICAiQ04iLCAgIkNPIiwgICJDUiIsICAgICAqLworICAgICAgICAgICAgICAgICJDSEUiLCAiQ0lWIiwgIkNPSyIsICJDSEwiLCAiQ01SIiwgIkNITiIsICJDT0wiLCAiQ1JJIiwKKyAgICAgICAgICAgICAgICAvKiJDVSIsICAiQ1YiLCAgIkNYIiwgICJDWSIsICAiQ1oiLCAgIkRFIiwgICJESiIsICAiREsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQ1VCIiwgIkNQViIsICJDWFIiLCAiQ1lQIiwgIkNaRSIsICJERVUiLCAiREpJIiwgIkROSyIsCisgICAgICAgICAgICAgICAgLyoiRE0iLCAgIkRPIiwgICJEWiIsICAiRUMiLCAgIkVFIiwgICJFRyIsICAiRUgiLCAgIkVSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkRNQSIsICJET00iLCAiRFpBIiwgIkVDVSIsICJFU1QiLCAiRUdZIiwgIkVTSCIsICJFUkkiLAorICAgICAgICAgICAgICAgIC8qIkVTIiwgICJFVCIsICAiRkkiLCAgIkZKIiwgICJGSyIsICAiRk0iLCAgIkZPIiwgICJGUiIsICAgICAqLworICAgICAgICAgICAgICAgICJFU1AiLCAiRVRIIiwgIkZJTiIsICJGSkkiLCAiRkxLIiwgIkZTTSIsICJGUk8iLCAiRlJBIiwKKyAgICAgICAgICAgICAgICAvKiJHQSIsICAiR0IiLCAgIkdEIiwgICJHRSIsICAiR0YiLCAgIkdIIiwgICJHSSIsICAiR0wiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR0FCIiwgIkdCUiIsICJHUkQiLCAiR0VPIiwgIkdVRiIsICJHSEEiLCAiR0lCIiwgIkdSTCIsCisgICAgICAgICAgICAgICAgLyoiR00iLCAgIkdOIiwgICJHUCIsICAiR1EiLCAgIkdSIiwgICJHUyIsICAiR1QiLCAgIkdVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdNQiIsICJHSU4iLCAiR0xQIiwgIkdOUSIsICJHUkMiLCAiU0dTIiwgIkdUTSIsICJHVU0iLAorICAgICAgICAgICAgICAgIC8qIkdXIiwgICJHWSIsICAiSEsiLCAgIkhNIiwgICJITiIsICAiSFIiLCAgIkhUIiwgICJIVSIsICAgICAqLworICAgICAgICAgICAgICAgICJHTkIiLCAiR1VZIiwgIkhLRyIsICJITUQiLCAiSE5EIiwgIkhSViIsICJIVEkiLCAiSFVOIiwKKyAgICAgICAgICAgICAgICAvKiJJRCIsICAiSUUiLCAgIklMIiwgICJJTiIsICAiSU8iLCAgIklRIiwgICJJUiIsICAiSVMiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSUROIiwgIklSTCIsICJJU1IiLCAiSU5EIiwgIklPVCIsICJJUlEiLCAiSVJOIiwgIklTTCIsCisgICAgICAgICAgICAgICAgLyoiSVQiLCAgIkpNIiwgICJKTyIsICAiSlAiLCAgIktFIiwgICJLRyIsICAiS0giLCAgIktJIiwgICAgICovCisgICAgICAgICAgICAgICAgIklUQSIsICJKQU0iLCAiSk9SIiwgIkpQTiIsICJLRU4iLCAiS0daIiwgIktITSIsICJLSVIiLAorICAgICAgICAgICAgICAgIC8qIktNIiwgICJLTiIsICAiS1AiLCAgIktSIiwgICJLVyIsICAiS1kiLCAgIktaIiwgICJMQSIsICAgICAqLworICAgICAgICAgICAgICAgICJDT00iLCAiS05BIiwgIlBSSyIsICJLT1IiLCAiS1dUIiwgIkNZTSIsICJLQVoiLCAiTEFPIiwKKyAgICAgICAgICAgICAgICAvKiJMQiIsICAiTEMiLCAgIkxJIiwgICJMSyIsICAiTFIiLCAgIkxTIiwgICJMVCIsICAiTFUiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTEJOIiwgIkxDQSIsICJMSUUiLCAiTEtBIiwgIkxCUiIsICJMU08iLCAiTFRVIiwgIkxVWCIsCisgICAgICAgICAgICAgICAgLyoiTFYiLCAgIkxZIiwgICJNQSIsICAiTUMiLCAgIk1EIiwgICJNRyIsICAiTUgiLCAgIk1LIiwgICAgICovCisgICAgICAgICAgICAgICAgIkxWQSIsICJMQlkiLCAiTUFSIiwgIk1DTyIsICJNREEiLCAiTURHIiwgIk1ITCIsICJNS0QiLAorICAgICAgICAgICAgICAgIC8qIk1MIiwgICJNTSIsICAiTU4iLCAgIk1PIiwgICJNUCIsICAiTVEiLCAgIk1SIiwgICJNUyIsICAgICAqLworICAgICAgICAgICAgICAgICJNTEkiLCAiTU1SIiwgIk1ORyIsICJNQUMiLCAiTU5QIiwgIk1UUSIsICJNUlQiLCAiTVNSIiwKKyAgICAgICAgICAgICAgICAvKiJNVCIsICAiTVUiLCAgIk1WIiwgICJNVyIsICAiTVgiLCAgIk1ZIiwgICJNWiIsICAiTkEiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTUxUIiwgIk1VUyIsICJNRFYiLCAiTVdJIiwgIk1FWCIsICJNWVMiLCAiTU9aIiwgIk5BTSIsCisgICAgICAgICAgICAgICAgLyoiTkMiLCAgIk5FIiwgICJORiIsICAiTkciLCAgIk5JIiwgICJOTCIsICAiTk8iLCAgIk5QIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5DTCIsICJORVIiLCAiTkZLIiwgIk5HQSIsICJOSUMiLCAiTkxEIiwgIk5PUiIsICJOUEwiLAorICAgICAgICAgICAgICAgIC8qIk5SIiwgICJOVSIsICAiTloiLCAgIk9NIiwgICJQQSIsICAiUEUiLCAgIlBGIiwgICJQRyIsICAgICAqLworICAgICAgICAgICAgICAgICJOUlUiLCAiTklVIiwgIk5aTCIsICJPTU4iLCAiUEFOIiwgIlBFUiIsICJQWUYiLCAiUE5HIiwKKyAgICAgICAgICAgICAgICAvKiJQSCIsICAiUEsiLCAgIlBMIiwgICJQTSIsICAiUE4iLCAgIlBSIiwgICJQUyIsICAiUFQiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUEhMIiwgIlBBSyIsICJQT0wiLCAiU1BNIiwgIlBDTiIsICJQUkkiLCAiUFNFIiwgIlBSVCIsCisgICAgICAgICAgICAgICAgLyoiUFciLCAgIlBZIiwgICJRQSIsICAiUkUiLCAgIlJPIiwgICJSVSIsICAiUlciLCAgIlNBIiwgICAgICovCisgICAgICAgICAgICAgICAgIlBMVyIsICJQUlkiLCAiUUFUIiwgIlJFVSIsICJST1UiLCAiUlVTIiwgIlJXQSIsICJTQVUiLAorICAgICAgICAgICAgICAgIC8qIlNCIiwgICJTQyIsICAiU0QiLCAgIlNFIiwgICJTRyIsICAiU0giLCAgIlNJIiwgICJTSiIsICAgICAqLworICAgICAgICAgICAgICAgICJTTEIiLCAiU1lDIiwgIlNETiIsICJTV0UiLCAiU0dQIiwgIlNITiIsICJTVk4iLCAiU0pNIiwKKyAgICAgICAgICAgICAgICAvKiJTSyIsICAiU0wiLCAgIlNNIiwgICJTTiIsICAiU08iLCAgIlNSIiwgICJTVCIsICAiU1YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1ZLIiwgIlNMRSIsICJTTVIiLCAiU0VOIiwgIlNPTSIsICJTVVIiLCAiU1RQIiwgIlNMViIsCisgICAgICAgICAgICAgICAgLyoiU1kiLCAgIlNaIiwgICJUQyIsICAiVEQiLCAgIlRGIiwgICJURyIsICAiVEgiLCAgIlRKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNZUiIsICJTV1oiLCAiVENBIiwgIlRDRCIsICJBVEYiLCAiVEdPIiwgIlRIQSIsICJUSksiLAorICAgICAgICAgICAgICAgIC8qIlRLIiwgICJUTCIsICAiVE0iLCAgIlROIiwgICJUTyIsICAiVFIiLCAgIlRUIiwgICJUViIsICAgICAqLworICAgICAgICAgICAgICAgICJUS0wiLCAiVExTIiwgIlRLTSIsICJUVU4iLCAiVE9OIiwgIlRVUiIsICJUVE8iLCAiVFVWIiwKKyAgICAgICAgICAgICAgICAvKiJUVyIsICAiVFoiLCAgIlVBIiwgICJVRyIsICAiVU0iLCAgIlVTIiwgICJVWSIsICAiVVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVFdOIiwgIlRaQSIsICJVS1IiLCAiVUdBIiwgIlVNSSIsICJVU0EiLCAiVVJZIiwgIlVaQiIsCisgICAgICAgICAgICAgICAgLyoiVkEiLCAgIlZDIiwgICJWRSIsICAiVkciLCAgIlZJIiwgICJWTiIsICAiVlUiLCAgIldGIiwgICAgICovCisgICAgICAgICAgICAgICAgIlZBVCIsICJWQ1QiLCAiVkVOIiwgIlZHQiIsICJWSVIiLCAiVk5NIiwgIlZVVCIsICJXTEYiLAorICAgICAgICAgICAgICAgIC8qIldTIiwgICJZRSIsICAiWVQiLCAgIllVIiwgICJaQSIsICAiWk0iLCAgIlpXIiwgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICJXU00iLCAiWUVNIiwgIk1ZVCIsICJZVUciLCAiWkFGIiwgIlpNQiIsICJaV0UiLAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllczMgPSB7CisgICAgICAgICAgICAgICAgLyoiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgICovCisgICAgICAgICAgICAgICAgIkZYWCIsICJST00iLCAiVE1QIiwgIlpBUiIsICAgIAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF9jb3VudHJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfY291bnRyaWVzID0gdGVtcENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2RlcHJlY2F0ZWRDb3VudHJpZXMgPSB0ZW1wRGVwcmVjYXRlZENvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX3JlcGxhY2VtZW50Q291bnRyaWVzID0gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVDb3VudHJpZXMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMzID0gdGVtcENvdW50cmllczM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllczMgPSB0ZW1wT2Jzb2xldGVDb3VudHJpZXMzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gX3ZhcmlhbnRzVG9LZXl3b3JkczsKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFZhcmlhbnRzVGFibGUoKSB7CisgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogVGhpcyB0YWJsZSBsaXN0cyBwYWlycyBvZiBsb2NhbGUgaWRzIGZvciBjYW5vbmljYWxpemF0aW9uLiAgVGhlCisgICAgICAgICAgICAgKiBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgbm9ybWFsaXplZCBpZCwgdGhlIHNlY29uZCBpdGVtIGlzIHRoZQorICAgICAgICAgICAgICogY2Fub25pY2FsaXplZCBpZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nW11bXSB0ZW1wVmFyaWFudHNUb0tleXdvcmRzID0geworLy8gICAgICAgICAgICAgIHsgRU1QVFlfU1RSSU5HLCAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJDIiwgICAgICAgICAgICAgICJlbl9VU19QT1NJWCIsIG51bGwsIG51bGwgfSwgLyogUE9TSVggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImFydF9MT0pCQU4iLCAgICAgImpibyIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfQ1lSTCIsICAgICAiYXpfQ3lybF9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXpfQVpfTEFUTiIsICAgICAiYXpfTGF0bl9BWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiY2FfRVNfUFJFRVVSTyIsICAiY2FfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImNlbF9HQVVMSVNIIiwgICAgImNlbF9fR0FVTElTSCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwMSIsICAgICAgICAiZGVfXzE5MDEiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlXzE5MDYiLCAgICAgICAgImRlX18xOTA2IiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV9fUEhPTkVCT09LIiwgICJkZSIsICJjb2xsYXRpb24iLCAicGhvbmVib29rIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0FUX1BSRUVVUk8iLCAgImRlX0FUIiwgImN1cnJlbmN5IiwgIkFUUyIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9ERV9QUkVFVVJPIiwgICJkZV9ERSIsICJjdXJyZW5jeSIsICJERU0iIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfTFVfUFJFRVVSTyIsICAiZGVfTFUiLCAiY3VycmVuY3kiLCAiRVVSIiB9LAorICAgICAgICAgICAgICAgIHsgImVsX0dSX1BSRUVVUk8iLCAgImVsX0dSIiwgImN1cnJlbmN5IiwgIkdSRCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9CT09OVCIsICAgICAgICJlbl9fQk9PTlQiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX1NDT1VTRSIsICAgICAgImVuX19TQ09VU0UiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImVuX0JFX1BSRUVVUk8iLCAgImVuX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJlbl9JRV9QUkVFVVJPIiwgICJlbl9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZXNfX1RSQURJVElPTkFMIiwgImVzIiwgImNvbGxhdGlvbiIsICJ0cmFkaXRpb25hbCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19FU19QUkVFVVJPIiwgICJlc19FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZXVfRVNfUFJFRVVSTyIsICAiZXVfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImZpX0ZJX1BSRUVVUk8iLCAgImZpX0ZJIiwgImN1cnJlbmN5IiwgIkZJTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9CRV9QUkVFVVJPIiwgICJmcl9CRSIsICJjdXJyZW5jeSIsICJCRUYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfRlJfUFJFRVVSTyIsICAiZnJfRlIiLCAiY3VycmVuY3kiLCAiRlJGIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0xVX1BSRUVVUk8iLCAgImZyX0xVIiwgImN1cnJlbmN5IiwgIkxVRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJnYV9JRV9QUkVFVVJPIiwgICJnYV9JRSIsICJjdXJyZW5jeSIsICJJRVAiIH0sCisgICAgICAgICAgICAgICAgeyAiZ2xfRVNfUFJFRVVSTyIsICAiZ2xfRVMiLCAiY3VycmVuY3kiLCAiRVNQIiB9LAorICAgICAgICAgICAgICAgIHsgImhpX19ESVJFQ1QiLCAgICAgImhpIiwgImNvbGxhdGlvbiIsICJkaXJlY3QiIH0sCisgICAgICAgICAgICAgICAgeyAiaXRfSVRfUFJFRVVSTyIsICAiaXRfSVQiLCAiY3VycmVuY3kiLCAiSVRMIiB9LAorICAgICAgICAgICAgICAgIHsgImphX0pQX1RSQURJVElPTkFMIiwgImphX0pQIiwgImNhbGVuZGFyIiwgImphcGFuZXNlIiB9LAorLy8gICAgICAgICAgICAgIHsgIm5iX05PX05ZIiwgICAgICAgIm5uX05PIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICAgICAgICAgIHsgIm5sX0JFX1BSRUVVUk8iLCAgIm5sX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJubF9OTF9QUkVFVVJPIiwgICJubF9OTCIsICJjdXJyZW5jeSIsICJOTEciIH0sCisgICAgICAgICAgICAgICAgeyAicHRfUFRfUFJFRVVSTyIsICAicHRfUFQiLCAiY3VycmVuY3kiLCAiUFRFIiB9LAorICAgICAgICAgICAgICAgIHsgInNsX1JPWkFKIiwgICAgICAgInNsX19ST1pBSiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfQ1lSTCIsICAgICAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfU1BfTEFUTiIsICAgICAic3JfTGF0bl9DUyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAic3JfWVVfQ1lSSUxMSUMiLCAic3JfQ3lybF9DUyIsIG51bGwsIG51bGwgfSwgLyogTGludXggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0NZUklMTElDIiwgInV6X0N5cmxfVVoiLCBudWxsLCBudWxsIH0sIC8qIExpbnV4IG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ1el9VWl9DWVJMIiwgICAgICJ1el9DeXJsX1VaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ1el9VWl9MQVROIiwgICAgICJ1el9MYXRuX1VaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9DSFMiLCAgICAgICAgICJ6aF9IYW5zIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9DSFQiLCAgICAgICAgICJ6aF9IYW50IiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9HQU4iLCAgICAgICAgICJ6aF9fR0FOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9HVU9ZVSIsICAgICAgICJ6aCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfSEFLS0EiLCAgICAgICAiemhfX0hBS0tBIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9NSU4iLCAgICAgICAgICJ6aF9fTUlOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9NSU5fTkFOIiwgICAgICJ6aF9fTUlOTkFOIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9XVVUiLCAgICAgICAgICJ6aF9fV1VVIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9YSUFORyIsICAgICAgICJ6aF9fWElBTkciLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1lVRSIsICAgICAgICAgInpoX19ZVUUiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInRoX1RIX1RSQURJVElPTkFMIiwgInRoX1RIIiwgImNhbGVuZGFyIiwgImJ1ZGRoaXN0IiB9LAorICAgICAgICAgICAgICAgIHsgInpoX1RXX1NUUk9LRSIsICAgInpoX1RXIiwgImNvbGxhdGlvbiIsICJzdHJva2UiIH0sCisgICAgICAgICAgICAgICAgeyAiemhfX1BJTllJTiIsICAgICAiemgiLCAiY29sbGF0aW9uIiwgInBpbnlpbiIgfQorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAoVUxvY2FsZS5jbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgX3ZhcmlhbnRzVG9LZXl3b3JkcyA9IHRlbXBWYXJpYW50c1RvS2V5d29yZHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpdmF0ZSBjb25zdHJ1Y3RvciB1c2VkIGJ5IHN0YXRpYyBpbml0aWFsaXplcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlKFN0cmluZyBsb2NhbGVJRCwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLmxvY2FsZUlEID0gbG9jYWxlSUQ7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFVMb2NhbGUgb2JqZWN0IGZyb20gYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogQHBhcmFtIGxvYyBhIEpESyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICB0aGlzLmxvY2FsZUlEID0gZ2V0TmFtZShsb2MudG9TdHJpbmcoKSk7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFVMb2NhbGUgb2JqZWN0IGZvciBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBUaGUgVUxvY2FsZSBpcyBjYW5vbmljYWxpemVkLgorICAgICAqIEBwYXJhbSBsb2MgYSBKREsgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGZvckxvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgIGlmIChsb2MgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxvYy50b1N0cmluZygpLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBST09UOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gKFVMb2NhbGUpQ0FDSEUuZ2V0KGxvYyk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBkZWZhdWx0VUxvY2FsZSAhPSBudWxsICYmIGxvYyA9PSBkZWZhdWx0VUxvY2FsZS5sb2NhbGUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRVTG9jYWxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVMb2NhbGUobG9jLnRvU3RyaW5nKCksIGxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBSRkMgMzA2NiBsb2NhbGUgSUQuIFRoZSBsb2NhbGUgSUQgY29uc2lzdHMKKyAgICAgKiBvZiBvcHRpb25hbCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCBhbmQgdmFyaWFudCBmaWVsZHMgaW4gdGhhdCBvcmRlciwgCisgICAgICogc2VwYXJhdGVkIGJ5IHVuZGVyc2NvcmVzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBrZXl3b3JkIGxpc3QuICBUaGUKKyAgICAgKiBzY3JpcHQsIGlmIHByZXNlbnQsIGlzIGZvdXIgY2hhcmFjdGVycyBsb25nLS0gdGhpcyBkaXN0aW5ndWlzaGVzIGl0CisgICAgICogZnJvbSBhIGNvdW50cnkgY29kZSwgd2hpY2ggaXMgdHdvIGNoYXJhY3RlcnMgbG9uZy4gIE90aGVyIGZpZWxkcworICAgICAqIGFyZSBkaXN0aW5ndWlzaGVkIGJ5IHBvc2l0aW9uIGFzIGluZGljYXRlZCBieSB0aGUgdW5kZXJzY29yZXMuICBUaGUKKyAgICAgKiBzdGFydCBvZiB0aGUga2V5d29yZCBsaXN0IGlzIGluZGljYXRlZCBieSAnQCcsIGFuZCBjb25zaXN0cyBvZiBvbmUKKyAgICAgKiBvciBtb3JlIGtleXdvcmQvdmFsdWUgcGFpcnMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbm9uaWNhbGl6ZSB0aGUgbG9jYWxlSUQuCisgICAgICogCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9jYWxlLCBlLmc6CisgICAgICogImVuX1VTIiwgInN5X0N5cmxfWVUiLCAiemhfX3BpbnlpbiIsICJlc19FU0BjdXJyZW5jeT1FVVIsY29sbGF0aW9uPXRyYWRpdGlvbmFsIgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkIG9mIFVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykgZm9yIAorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBqYXZhLnV0aWwuTG9jYWxlLgorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKwl0aGlzKGEsIGIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFVMb2NhbGUgZnJvbSBhIGxvY2FsZUlEIGNvbnN0cnVjdGVkIGZyb20gdGhlIHRocmVlICdmaWVsZHMnIGEsIGIsIGFuZCBjLiAgVGhlc2UKKyAgICAgKiBmaWVsZHMgYXJlIGNvbmNhdGVuYXRlZCB1c2luZyB1bmRlcnNjb3JlcyB0byBmb3JtIGEgbG9jYWxlSUQgb2YKKyAgICAgKiB0aGUgZm9ybSBhX2JfYywgd2hpY2ggaXMgdGhlbiBoYW5kbGVkIGxpa2UgdGhlIGxvY2FsZUlEIHBhc3NlZAorICAgICAqIHRvIDxjb2RlPlVMb2NhbGUoU3RyaW5nIGxvY2FsZUlEKTwvY29kZT4uICAKKyAgICAgKgorICAgICAqIDxwPkphdmEgbG9jYWxlIHN0cmluZ3MgY29uc2lzdGluZyBvZiBsYW5ndWFnZSwgY291bnRyeSwgYW5kCisgICAgICogdmFyaWFudCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhpcyBmb3JtLCBzaW5jZSB0aGUgY291bnRyeSBjb2RlCisgICAgICogKGJlaW5nIHNob3J0ZXIgdGhhbiBmb3VyIGxldHRlcnMgbG9uZykgd2lsbCBub3QgYmUgaW50ZXJwcmV0ZWQKKyAgICAgKiBhcyBhIHNjcmlwdCBjb2RlLiAgSWYgYSBzY3JpcHQgY29kZSBpcyBwcmVzZW50LCB0aGUgZmluYWwKKyAgICAgKiBhcmd1bWVudCAoJ2MnKSB3aWxsIGJlIGludGVycHJldGVkIGFzIHRoZSBjb3VudHJ5IGNvZGUuICBJdCBpcworICAgICAqIHJlY29tbWVuZGVkIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBvbmx5IGJlIHVzZWQgdG8gZWFzZSBwb3J0aW5nLAorICAgICAqIGFuZCB0aGF0IGNsaWVudHMgaW5zdGVhZCB1c2UgdGhlIHNpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcgorICAgICAqIHdoZW4gY29uc3RydWN0aW5nIGEgVUxvY2FsZSBmcm9tIGEgbG9jYWxlSUQuCisgICAgICogQHBhcmFtIGEgZmlyc3QgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcGFyYW0gYiBzZWNvbmQgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcGFyYW0gYyB0aGlyZCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIsIFN0cmluZyBjKSB7CisgICAgICAgIGxvY2FsZUlEID0gZ2V0TmFtZShsc2N2VG9JRChhLCBiLCBjLCBFTVBUWV9TVFJJTkcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVTG9jYWxlIGZyb20gdGhlIGlkIGJ5IGZpcnN0IGNhbm9uaWNhbGl6aW5nIHRoZSBpZC4KKyAgICAgKiBAcGFyYW0gbm9uQ2Fub25pY2FsSUQgdGhlIGxvY2FsZSBpZCB0byBjYW5vbmljYWxpemUKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgY3JlYXRlZCBmcm9tIHRoZSBjYW5vbmljYWwgdmVyc2lvbiBvZiB0aGUgSUQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGNyZWF0ZUNhbm9uaWNhbChTdHJpbmcgbm9uQ2Fub25pY2FsSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGNhbm9uaWNhbGl6ZShub25DYW5vbmljYWxJRCksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGxzY3ZUb0lEKFN0cmluZyBsYW5nLCBTdHJpbmcgc2NyaXB0LCBTdHJpbmcgY291bnRyeSwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgCisgICAgICAgIGlmIChsYW5nICE9IG51bGwgJiYgbGFuZy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGFuZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNjcmlwdCAhPSBudWxsICYmIHNjcmlwdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50cnkgIT0gbnVsbCAmJiBjb3VudHJ5Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY291bnRyeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhcmlhbnQgIT0gbnVsbCAmJiB2YXJpYW50Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgaWYgKGNvdW50cnkgPT0gbnVsbCB8fCBjb3VudHJ5Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmFyaWFudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgdGhpcyBVTG9jYWxlIG9iamVjdCB0byBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBAcmV0dXJuIGEgSkRLIGxvY2FsZSB0aGF0IGVpdGhlciBleGFjdGx5IHJlcHJlc2VudHMgdGhpcyBvYmplY3QKKyAgICAgKiBvciBpcyB0aGUgY2xvc2VzdCBhcHByb3hpbWF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgdG9Mb2NhbGUoKSB7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKyAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUobmFtZXNbMF0sIG5hbWVzWzJdLCBuYW1lc1szXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogS2VlcCBvdXIgb3duIGRlZmF1bHQgVUxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlIGRlZmF1bHRVTG9jYWxlOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkZWZhdWx0IFVMb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBnZXREZWZhdWx0KCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGlmIChkZWZhdWx0VUxvY2FsZSA9PSBudWxsIHx8IGRlZmF1bHRVTG9jYWxlLnRvTG9jYWxlKCkgIT0gZGVmYXVsdExvY2FsZSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3IFVMb2NhbGUoZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFVMb2NhbGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0IFVMb2NhbGUuICBUaGlzIGFsc28gc2V0cyB0aGUgZGVmYXVsdCBMb2NhbGUuCisgICAgICogSWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdG8gdGhlCisgICAgICogdXNlci5sYW5ndWFnZSBwcm9wZXJ0eSwgYSBzZWN1cml0eSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24sCisgICAgICogYW5kIHRoZSBkZWZhdWx0IFVMb2NhbGUgd2lsbCByZW1haW4gdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgdGhlIG5ldyBkZWZhdWx0IGxvY2FsZQorICAgICAqIEB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24KKyAgICAgKiAgICAgICAgaWYgYSBzZWN1cml0eSBtYW5hZ2VyIGV4aXN0cyBhbmQgaXRzCisgICAgICogICAgICAgIDxjb2RlPmNoZWNrUGVybWlzc2lvbjwvY29kZT4gbWV0aG9kIGRvZXNuJ3QgYWxsb3cgdGhlIG9wZXJhdGlvbi4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0xvY2FsZTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgU2VjdXJpdHlNYW5hZ2VyI2NoZWNrUGVybWlzc2lvbgorICAgICAqIEBzZWUgamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIHNldERlZmF1bHQoVUxvY2FsZSBuZXdMb2NhbGUpeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXdMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3TG9jYWxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggTG9jYWxlLS0gaW4gYWN0dWFsaXR5LCBzaW5jZSBVTG9jYWxlIGlzCisgICAgICogaW1tdXRhYmxlLCB0aGVyZSBpcyBubyByZWFzb24gdG8gY2xvbmUgaXQsIHNvIHRoaXMgQVBJIHJldHVybnMgJ3RoaXMnLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2hDb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRC5oYXNoQ29kZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG90aGVyIG9iamVjdCBpcyBhbm90aGVyIFVMb2NhbGUgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGZ1bGwgbmFtZSwgb3IgaXMgYSBTdHJpbmcgbG9jYWxlSUQgdGhhdCBtYXRjaGVzIHRoZSBmdWxsIG5hbWUuCisgICAgICogTm90ZSB0aGF0IHNpbmNlIG5hbWVzIGFyZSBub3QgY2Fub25pY2FsaXplZCwgdHdvIFVMb2NhbGVzIHRoYXQKKyAgICAgKiBmdW5jdGlvbiBpZGVudGljYWxseSBtaWdodCBub3QgY29tcGFyZSBlcXVhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIExvY2FsZSBpcyBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQuZXF1YWxzKChTdHJpbmcpb2JqKTsgICAKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgVUxvY2FsZSkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlELmVxdWFscygoKFVMb2NhbGUpb2JqKS5sb2NhbGVJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBpbiBJU08gMzE2Ni4KKyAgICAgKiBDYW4gYmUgdXNlZCB0byBjcmVhdGUgTG9jYWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldElTT0NvdW50cmllcygpIHsKKyAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlfY291bnRyaWVzLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIDItbGV0dGVyIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4KKyAgICAgKiBDYW4gYmUgdXNlZCB0byBjcmVhdGUgTG9jYWxlcy4KKyAgICAgKiBbTk9URTogIElTTyA2MzkgaXMgbm90IGEgc3RhYmxlIHN0YW5kYXJkLS0gc29tZSBsYW5ndWFnZXMnIGNvZGVzIGhhdmUgY2hhbmdlZC4KKyAgICAgKiBUaGUgbGlzdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW5jbHVkZXMgYm90aCB0aGUgbmV3IGFuZCB0aGUgb2xkIGNvZGVzIGZvciB0aGUKKyAgICAgKiBsYW5ndWFnZXMgd2hvc2UgY29kZXMgaGF2ZSBjaGFuZ2VkLl0KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldElTT0xhbmd1YWdlcygpIHsKKyAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pX2xhbmd1YWdlcy5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxhbmd1YWdlIGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYSBsb3dlcmNhc2UgSVNPIDYzOSBjb2RlLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlMYW5ndWFnZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKSB7CisgICAgICAgIHJldHVybiBnZXRMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxhbmd1YWdlIGNvZGUgZm9yIHRoZSBsb2NhbGUgSUQsCisgICAgICogd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGEgbG93ZXJjYXNlIElTTyA2MzkgY29kZS4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5TGFuZ3VhZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2UoKTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTY3JpcHQoKSB7CisgICAgICAgIHJldHVybiBnZXRTY3JpcHQobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5U2NyaXB0CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U2NyaXB0KFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY291bnRyeS9yZWdpb24gY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMi1sZXR0ZXIgY29kZS4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5Q291bnRyeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q291bnRyeSgpIHsKKyAgICAgICAgcmV0dXJuIGdldENvdW50cnkobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvdW50cnkvcmVnaW9uIGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYW4gdXBwZXJjYXNlIElTTyAzMTY2IDItbGV0dGVyIGNvZGUuCisgICAgICogQHBhcmFtIGxvY2FsZUlECisgICAgICogQHNlZSAjZ2V0RGlzcGxheUNvdW50cnkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRDb3VudHJ5KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhcmlhbnQgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVZhcmlhbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhbnQoKSB7CisgICAgICAgIHJldHVybiBnZXRWYXJpYW50KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YXJpYW50IGNvZGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlWYXJpYW50CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0VmFyaWFudChTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0VmFyaWFudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RmFsbGJhY2soU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRGYWxsYmFja1N0cmluZyhnZXROYW1lKGxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmFsbGJhY2sgbG9jYWxlIGZvciB0aGlzIGxvY2FsZS4gIElmIHRoaXMgbG9jYWxlIGlzIHJvb3QsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRGYWxsYmFjaygpIHsKKyAgICAgICAgaWYgKGxvY2FsZUlELmxlbmd0aCgpID09IDAgfHwgbG9jYWxlSUQuY2hhckF0KDApID09ICdAJykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGdldEZhbGxiYWNrU3RyaW5nKGxvY2FsZUlEKSwgKExvY2FsZSludWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGdpdmVuIChjYW5vbmljYWwpIGxvY2FsZSBpZCBtaW51cyB0aGUgbGFzdCBwYXJ0IGJlZm9yZSB0aGUgdGFncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RmFsbGJhY2tTdHJpbmcoU3RyaW5nIGZhbGxiYWNrKSB7CisgICAgICAgIGludCBsaW1pdCA9IGZhbGxiYWNrLmluZGV4T2YoJ0AnKTsKKyAgICAgICAgaWYgKGxpbWl0ID09IC0xKSB7CisgICAgICAgICAgICBsaW1pdCA9IGZhbGxiYWNrLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGludCBzdGFydCA9IGZhbGxiYWNrLmxhc3RJbmRleE9mKCdfJywgbGltaXQpOworICAgICAgICBpZiAoc3RhcnQgPT0gLTEpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsbGJhY2suc3Vic3RyaW5nKDAsIHN0YXJ0KSArIGZhbGxiYWNrLnN1YnN0cmluZyhsaW1pdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGJhc2UgbmFtZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgYmFzZSBuYW1lIGFzIGEgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXRCYXNlTmFtZShsb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBiYXNlIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIElEIGFzIGEgc3RyaW5nCisgICAgICogQHJldHVybiB0aGUgYmFzZSBuYW1lIGFzIGEgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEJhc2VOYW1lKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIGlmIChsb2NhbGVJRC5pbmRleE9mKCdAJykgPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRCYXNlTmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8gCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7IC8vIGFsd2F5cyBub3JtYWxpemVkCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZUlEIGFzIGEgc3RyaW5nCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIE1hcCBjYWNoZSA9IChNYXApbmFtZUNhY2hlUmVmLmdldCgpOworICAgICAgICBpZiAoY2FjaGUgPT0gbnVsbCkgeworICAgICAgICAgICAgY2FjaGUgPSBDb2xsZWN0aW9ucy5zeW5jaHJvbml6ZWRNYXAobmV3IEhhc2hNYXAoKSk7CisgICAgICAgICAgICBuYW1lQ2FjaGVSZWYgPSBuZXcgU29mdFJlZmVyZW5jZShjYWNoZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWNhY2hlLmdldChsb2NhbGVJRCk7CisgICAgICAgIGlmIChuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIG5hbWUgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldE5hbWUoKTsKKyAgICAgICAgICAgIGNhY2hlLnB1dChsb2NhbGVJRCwgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFNvZnRSZWZlcmVuY2UgbmFtZUNhY2hlUmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoQ29sbGVjdGlvbnMuc3luY2hyb25pemVkTWFwKG5ldyBIYXNoTWFwKCkpKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciBrZXl3b3JkcyBmb3IgdGhpcyBsb2NhbGUuICBJZiB0aGVyZSAKKyAgICAgKiBhcmUgbm8ga2V5d29yZHMsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGl0ZXJhdG9yIG92ZXIga2V5d29yZHMsIG9yIG51bGwgaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJdGVyYXRvciBnZXRLZXl3b3JkcygpIHsKKyAgICAgICAgcmV0dXJuIGdldEtleXdvcmRzKGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiAgSWYgdGhlcmUgCisgICAgICogYXJlIG5vIGtleXdvcmRzLCByZXR1cm5zIG51bGwuCisgICAgICogQHJldHVybiBhbiBpdGVyYXRvciBvdmVyIHRoZSBrZXl3b3JkcyBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgb3IgbnVsbAorICAgICAqIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEl0ZXJhdG9yIGdldEtleXdvcmRzKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldEtleXdvcmRzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZCBpbiB0aGlzIGxvY2FsZS4gSWYgdGhlIGtleXdvcmQgaXMgbm90IGRlZmluZWQsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyBkZXNpcmVkLiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBrZXl3b3JkLCBvciBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRLZXl3b3JkVmFsdWUobG9jYWxlSUQsIGtleXdvcmROYW1lKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZCBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gSWYgdGhlIGtleXdvcmQgaXMgbm90IGRlZmluZWQsIHJldHVybnMgbnVsbC4gCisgICAgICogVGhlIGxvY2FsZSBuYW1lIGRvZXMgbm90IG5lZWQgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyBkZXNpcmVkLiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSB2YWx1ZSBvZiB0aGUga2V5d29yZCBhcyBhIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkTmFtZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgY2xhc3MgdG8gcGFyc2UgYW5kIG5vcm1hbGl6ZSBsb2NhbGUgaWRzIChpbmNsdWRpbmcgUE9TSVggc3R5bGUpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSURQYXJzZXIgeworICAgICAgICBwcml2YXRlIGNoYXJbXSBpZDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaW5kZXg7CisgICAgICAgIHByaXZhdGUgY2hhcltdIGJ1ZmZlcjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgYmxlbjsKKyAgICAgICAgLy8gdW0sIGRvbid0IGhhbmRsZSBQT1NJWCBpZHMgdW5sZXNzIHdlIHJlcXVlc3QgaXQuICB3aHkgbm90PyAgd2VsbC4uLiBiZWNhdXNlLgorICAgICAgICBwcml2YXRlIGJvb2xlYW4gY2Fub25pY2FsaXplOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGFkQ291bnRyeTsKKworICAgICAgICAvLyB1c2VkIHdoZW4gY2Fub25pY2FsaXppbmcKKyAgICAgICAgTWFwIGtleXdvcmRzOworICAgICAgICBTdHJpbmcgYmFzZU5hbWU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNpbmcgY29uc3RhbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLRVlXT1JEX1NFUEFSQVRPUiAgICAgPSAnQCc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSFlQSEVOICAgICAgICAgICAgICAgID0gJy0nOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWVdPUkRfQVNTSUdOICAgICAgICA9ICc9JzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDT01NQSAgICAgICAgICAgICAgICAgPSAnLCc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSVRFTV9TRVBBUkFUT1IgICAgICAgID0gJzsnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIERPVCAgICAgICAgICAgICAgICAgICA9ICcuJzsKKworICAgICAgICBwcml2YXRlIElEUGFyc2VyKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICAgICAgdGhpcyhsb2NhbGVJRCwgZmFsc2UpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJRFBhcnNlcihTdHJpbmcgbG9jYWxlSUQsIGJvb2xlYW4gY2Fub25pY2FsaXplKSB7CisgICAgICAgICAgICBpZCA9IGxvY2FsZUlELnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBpbmRleCA9IDA7CisgICAgICAgICAgICBidWZmZXIgPSBuZXcgY2hhcltpZC5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgIGJsZW4gPSAwOworICAgICAgICAgICAgdGhpcy5jYW5vbmljYWxpemUgPSBjYW5vbmljYWxpemU7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBpbmRleCA9IGJsZW4gPSAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gdXRpbGl0aWVzIGZvciB3b3JraW5nIG9uIHRleHQgaW4gdGhlIGJ1ZmZlcgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBcHBlbmQgYyB0byB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZChjaGFyIGMpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2JsZW5dID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA+IDUxMikgeworICAgICAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcgaXMgc2VyaW91c2x5IHdyb25nLCBsZXQgdGhpcyBnbworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaGFyW10gbmJ1ZmZlciA9IG5ldyBjaGFyW2J1ZmZlci5sZW5ndGggKiAyXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwgMCwgbmJ1ZmZlciwgMCwgYnVmZmVyLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgbmJ1ZmZlcltibGVuXSA9IGM7CisgICAgICAgICAgICAgICAgYnVmZmVyID0gbmJ1ZmZlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrYmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBhZGRTZXBhcmF0b3IoKSB7CisgICAgICAgICAgICBhcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgdGV4dCBpbiB0aGUgYnVmZmVyIGZyb20gc3RhcnQgdG8gYmxlbiBhcyBhIFN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldFN0cmluZyhpbnQgc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBibGVuKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZX1NUUklORzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZmZlciwgc3RhcnQsIGJsZW4tc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgdG8gcG9zLCB0aGVuIGFwcGVuZCB0aGUgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldChpbnQgcG9zLCBTdHJpbmcgcykgeworICAgICAgICAgICAgdGhpcy5ibGVuID0gcG9zOyAvLyBubyBzYWZldHkKKyAgICAgICAgICAgIGFwcGVuZChzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBcHBlbmQgdGhlIHN0cmluZyB0byB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZChTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQocy5jaGFyQXQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdXRpbGl0aWVzIGZvciBwYXJzaW5nIHRleHQgb3V0IG9mIHRoZSBpZAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdG8gaW5kaWNhdGUgbm8gbW9yZSB0ZXh0IGlzIGF2YWlsYWJsZSBpbiB0aGUgaWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIERPTkUgPSAnXHVmZmZmJzsKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IGluZGV4IGluIHRoZSBpZCwgYW5kIGFkdmFuY2UgaW5kZXguICBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyCisgICAgICAgICAqIGlzIERPTkUgaWYgaW5kZXggd2FzIGF0IHRoZSBsaW1pdCBvZiB0aGUgYnVmZmVyLiAgVGhlIGluZGV4IGlzIGFkdmFuY2VkIHJlZ2FyZGxlc3MKKyAgICAgICAgICogc28gdGhhdCBkZWNyZW1lbnRpbmcgdGhlIGluZGV4IHdpbGwgYWx3YXlzICd1bmdldCcgdGhlIGxhc3QgY2hhcmFjdGVyIHJldHVybmVkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBjaGFyIG5leHQoKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gaWQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBpZFtpbmRleCsrXTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHVudGlsIHRoZSBuZXh0IHRlcm1pbmF0b3Igb3IgaWQgc2VwYXJhdG9yLCBhbmQgbGVhdmUgaXQgdGhlcmUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKSB7CisgICAgICAgICAgICB3aGlsZSAoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IobmV4dCgpKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNoYXJhY3RlciBhdCBpbmRleCBpbiB0aGUgaWQgaXMgYSB0ZXJtaW5hdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGF0VGVybWluYXRvcigpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleCA+PSBpZC5sZW5ndGggfHwgaXNUZXJtaW5hdG9yKGlkW2luZGV4XSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW4gaWQgc2VwYXJhdG9yICh1bmRlcnNjb3JlIG9yIGh5cGhlbikuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNJRFNlcGFyYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IFVOREVSU0NPUkUgfHwgYyA9PSBIWVBIRU47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSB0ZXJtaW5hdG9yIChrZXl3b3JkIHNlcGFyYXRvciwgZG90LCBvciBET05FKS4KKyAgICAgICAgICogRG90IGlzIGEgdGVybWluYXRvciBiZWNhdXNlIG9mIHRoZSBQT1NJWCBmb3JtLCB3aGVyZSBkb3QgcHJlY2VkZXMgdGhlIGNvZGVwYWdlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGlzVGVybWluYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIC8vIGFsd2F5cyB0ZXJtaW5hdGUgYXQgRE9ULCBldmVuIGlmIG5vdCBoYW5kbGluZyBQT1NJWC4gIEl0J3MgYW4gZXJyb3IuLi4KKyAgICAgICAgICAgIHJldHVybiBjID09IEtFWVdPUkRfU0VQQVJBVE9SIHx8IGMgPT0gRE9ORSB8fCBjID09IERPVDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBhIHRlcm1pbmF0b3Igb3IgaWQgc2VwYXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gYyA9PSBLRVlXT1JEX1NFUEFSQVRPUiB8fCBjID09IFVOREVSU0NPUkUgfHwgYyA9PSBIWVBIRU4gfHwgCisgICAgICAgICAgICAgICAgYyA9PSBET05FIHx8IGMgPT0gRE9UOyAgIAorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlciBoYXMgYW4gZXhwZXJpbWVudGFsIG9yIHByaXZhdGUgbGFuZ3VhZ2UgCisgICAgICAgICAqIHByZWZpeCwgdGhlIHBhdHRlcm4gJ1tpeElYXVstX10uJyBzaG93cyB0aGUgc3ludGF4IGNoZWNrZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGF2ZUV4cGVyaW1lbnRhbExhbmd1YWdlUHJlZml4KCkgeworICAgICAgICAgICAgaWYgKGlkLmxlbmd0aCA+IDIpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBpZFsxXTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBIWVBIRU4gfHwgYyA9PSBVTkRFUlNDT1JFKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBpZFswXTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMgPT0gJ3gnIHx8IGMgPT0gJ1gnIHx8IGMgPT0gJ2knIHx8IGMgPT0gJ0knOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgYSB2YWx1ZSBzZXBhcmF0b3Igb2NjdXJzIGF0IG9yIGFmdGVyIGluZGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhdmVLZXl3b3JkQXNzaWduKCkgeworICAgICAgICAgICAgLy8gYXNzdW1lIGl0IGlzIHNhZmUgdG8gc3RhcnQgZnJvbSBpbmRleAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IGluZGV4OyBpIDwgaWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRbaV0gPT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBsYW5ndWFnZSwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCBsYW5ndWFnZSBjb2RlIGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBhdCAwIHdoZW4gdGhpcyBpcyBjYWxsZWQuICBJbmRleCBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvciBpZCAKKyAgICAgICAgICogc2VwYXJhdG9yLiAgUmV0dXJucyB0aGUgc3RhcnQgb2YgdGhlIGxhbmd1YWdlIGNvZGUgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlTGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICBpZiAoaGF2ZUV4cGVyaW1lbnRhbExhbmd1YWdlUHJlZml4KCkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGlkWzBdKSk7CisgICAgICAgICAgICAgICAgYXBwZW5kKEhZUEhFTik7CisgICAgICAgICAgICAgICAgaW5kZXggPSAyOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIHdoaWxlKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGMgPSBuZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShjKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICBpZiAoYmxlbiA9PSAzKSB7CisgICAgICAgICAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisKKyAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IDMgY2hhcmFjdGVyIGNvZGUgdG8gMiBjaGFyYWN0ZXIgY29kZSBpZiBwb3NzaWJsZSAqQ1dCKi8KKyAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGdldFN0cmluZygwKTsKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9sYW5ndWFnZXMzLCBsYW5nKTsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0KDAsIF9sYW5ndWFnZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUxhbmd1YWdlczMsIGxhbmcpOworICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldCgwLCBfb2Jzb2xldGVMYW5ndWFnZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBsYW5ndWFnZS4gIEluZGV4IG11c3QgYmUgYXQgMCB3aGVuIHRoaXMgaXMgY2FsbGVkLiAgSW5kZXgKKyAgICAgICAgICogaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IgaWQgc2VwYXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIGlmIChoYXZlRXhwZXJpbWVudGFsTGFuZ3VhZ2VQcmVmaXgoKSkgeworICAgICAgICAgICAgICAgIGluZGV4ID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHNjcmlwdCwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCBzY3JpcHQgaW4gYnVmZmVyLgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYW5ndWFnZS4KKyAgICAgICAgICogSWYgdGhlIGl0ZW0gYXQgdGhpcyBwb3NpdGlvbiBpcyBub3QgYSBzY3JpcHQgKGlzIG5vdCBmb3VyIGNoYXJhY3RlcnMKKyAgICAgICAgICogbG9uZykgbGVhdmUgaW5kZXggYW5kIGJ1ZmZlciB1bmNoYW5nZWQuICBPdGhlcndpc2UgaW5kZXggaXMgbGVmdCBhdAorICAgICAgICAgKiBhIHRlcm1pbmF0b3Igb3IgaWQgc2VwYXJhdG9yLiAgUmV0dXJucyB0aGUgc3RhcnQgb2YgdGhlIHNjcmlwdCBjb2RlCisgICAgICAgICAqIGluIHRoZSBidWZmZXIgKHRoaXMgbWF5IGJlIGVxdWFsIHRvIHRoZSBidWZmZXIgbGVuZ3RoLCBpZiB0aGVyZSBpcyBubworICAgICAgICAgKiBzY3JpcHQpLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VTY3JpcHQoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgaW50IG9sZEluZGV4ID0gaW5kZXg7IC8vIHNhdmUgb3JpZ2luYWwgaW5kZXgKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgaW50IG9sZEJsZW4gPSBibGVuOyAvLyBnZXQgYmVmb3JlIGFwcGVuZCBoeXBoZW4sIGlmIHdlIHRydW5jYXRlIGV2ZXJ5dGhpbmcgaXMgdW5kb25lCisgICAgICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgICAgIHdoaWxlKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGMgPSBuZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChibGVuID09IG9sZEJsZW4pIHsgLy8gZmlyc3QgcGFzcworICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisKKyAgICAgICAgICAgICAgICAvKiBJZiBpdCdzIG5vdCBleGFjdGx5IDQgY2hhcmFjdGVycyBsb25nLCB0aGVuIGl0J3Mgbm90IGEgc2NyaXB0LiAqLworICAgICAgICAgICAgICAgIGlmIChpbmRleCAtIG9sZEluZGV4ICE9IDUpIHsgLy8gKzEgdG8gYWNjb3VudCBmb3Igc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gb2xkSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGJsZW4gPSBvbGRCbGVuOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9sZEJsZW4rKzsgLy8gaW5kZXggcGFzdCBoeXBoZW4sIGZvciBjbGllbnRzIHdobyB3YW50IHRvIGV4dHJhY3QganVzdCB0aGUgc2NyaXB0CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZEJsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3Qgc2NyaXB0LgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYW5ndWFnZSBhbmQgSURTZXBhcmF0b3IuCisgICAgICAgICAqIElmIHRoZSBpdGVtIGF0IHRoaXMgcG9zaXRpb24gaXMgbm90IGEgc2NyaXB0IChpcyBub3QgZm91ciBjaGFyYWN0ZXJzCisgICAgICAgICAqIGxvbmcpIGxlYXZlIGluZGV4LiAgT3RoZXJ3aXNlIGluZGV4IGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yCisgICAgICAgICAqIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwU2NyaXB0KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgIGludCBvbGRJbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCAtIG9sZEluZGV4ICE9IDUpIHsgLy8gKzEgdG8gYWNjb3VudCBmb3Igc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gb2xkSW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBjb3VudHJ5LCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIGNvdW50cnkgaW4gYnVmZmVyLgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzY3JpcHQgKGlmIHRoZXJlIGlzIG9uZSwgZWxzZSBsYW5ndWFnZSkKKyAgICAgICAgICogYW5kIElEU2VwYXJhdG9yLiAgUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgY291bnRyeSBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZUNvdW50cnkoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKyAgICAgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICAgICAgd2hpbGUgKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGMgPSBuZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvbGRCbGVuID09IGJsZW4pIHsgLy8gZmlyc3QsIGFkZCBoeXBoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGhhZENvdW50cnkgPSB0cnVlOyAvLyB3ZSBoYXZlIGEgY291bnRyeSwgbGV0IHZhcmlhbnQgcGFyc2luZyBrbm93CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsgLy8gaW5jcmVtZW50IHBhc3QgaHlwaGVuCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisKKyAgICAgICAgICAgICAgICBpZiAoYmxlbiAtIG9sZEJsZW4gPT0gMykgeworICAgICAgICAgICAgICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworCisgICAgICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgMyBjaGFyYWN0ZXIgY29kZSB0byAyIGNoYXJhY3RlciBjb2RlIGlmIHBvc3NpYmxlICpDV0IqLworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9jb3VudHJpZXMzLCBnZXRTdHJpbmcob2xkQmxlbikpOworICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldChvbGRCbGVuLCBfY291bnRyaWVzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUNvdW50cmllczMsIGdldFN0cmluZyhvbGRCbGVuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQob2xkQmxlbiwgX29ic29sZXRlQ291bnRyaWVzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZEJsZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBibGVuOworICAgICAgICB9CSAgCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBjb3VudHJ5LgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzY3JpcHQgKGlmIHRoZXJlIGlzIG9uZSwgZWxzZSBsYW5ndWFnZSkKKyAgICAgICAgICogYW5kIElEU2VwYXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBDb3VudHJ5KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgICsraW5kZXg7CisgICAgICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgdmFyaWFudCwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCB2YXJpYW50IGluIGJ1ZmZlci4gIFRoaXMgaWdub3JlcworICAgICAgICAgKiB0aGUgY29kZXBhZ2UgaW5mb3JtYXRpb24gZnJvbSBQT1NJWCBpZHMuICBJbmRleCBtdXN0IGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjb3VudHJ5CisgICAgICAgICAqIG9yIHNjcmlwdC4gIEluZGV4IGlzIGxlZnQgYXQgdGhlIGtleXdvcmQgc2VwYXJhdG9yIG9yIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuICBSZXR1cm4KKyAgICAgICAgICogdGhlIHN0YXJ0IG9mIHRoZSB2YXJpYW50IGNvZGUgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICoKKyAgICAgICAgICogSW4gc3RhbmRhcmQgZm9ybSwgd2UgY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtczoKKyAgICAgICAgICogbGxfX1ZWVlYKKyAgICAgICAgICogbGxfQ0NfVlZWVgorICAgICAgICAgKiBsbF9Tc3NzX1ZWVlYKKyAgICAgICAgICogbGxfU3Nzc19DQ19WVlZWCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgYWxzbyBoYW5kbGVzIFBPU0lYIGlkcywgd2hpY2ggY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtcyAocHBwcCBpcyBjb2RlIHBhZ2UgaWQpOgorICAgICAgICAgKiBsbF9DQy5wcHBwICAgICAgICAgIC0tPiBsbF9DQworICAgICAgICAgKiBsbF9DQy5wcHBwQFZWVlYgICAgIC0tPiBsbF9DQ19WVlZWCisgICAgICAgICAqIGxsX0NDQFZWVlYgICAgICAgICAgLS0+IGxsX0NDX1ZWVlYKKyAgICAgICAgICoKKyAgICAgICAgICogV2UgaWRlbnRpZnkgdGhpcyB1c2Ugb2YgJ0AnIGluIFBPU0lYIGlkcyBieSBsb29raW5nIGZvciBhbiAnPScgZm9sbG93aW5nCisgICAgICAgICAqIHRoZSAnQCcuICBJZiB0aGVyZSBpcyBvbmUsIHdlIGNvbnNpZGVyICdAJyB0byBzdGFydCBhIGtleXdvcmQgbGlzdCwgaW5zdGVhZCBvZgorICAgICAgICAgKiBiZWluZyBwYXJ0IG9mIGEgUE9TSVggaWQuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6ICBzaW5jZSBpdCB3YXMgZGVjaWRlZCB0aGF0IHdlIHdhbnQgYW4gb3B0aW9uIHRvIG5vdCBoYW5kbGUgUE9TSVggaWRzLCB0aGlzCisgICAgICAgICAqIGJlY29tZXMgYSBiaXQgbW9yZSBjb21wbGV4LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VWYXJpYW50KCkgeworICAgICAgICAgICAgaW50IG9sZEJsZW4gPSBibGVuOworCisgICAgICAgICAgICBib29sZWFuIHN0YXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gbmVlZFNlcGFyYXRvciA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIHNraXBwaW5nID0gZmFsc2U7CisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICB3aGlsZSAoKGMgPSBuZXh0KCkpICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBET1QpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgc2tpcHBpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBLRVlXT1JEX1NFUEFSQVRPUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUtleXdvcmRBc3NpZ24oKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2tpcHBpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgbmVlZFNlcGFyYXRvciA9IHRydWU7IC8vIGFkZCBhbm90aGVyIHVuZGVyc2NvcmUgaWYgd2UgaGF2ZSBtb3JlIHRleHQKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc2tpcHBpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRTZXBhcmF0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jT2xkQmxlbiA9IGJsZW4gPT0gb2xkQmxlbjsgLy8gbmVlZCB0byBza2lwIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRTZXBhcmF0b3IgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNPbGRCbGVuICYmICFoYWRDb3VudHJ5KSB7IC8vIG5vIGNvdW50cnksIHdlJ2xsIG5lZWQgdHdvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOyAvLyBmb3Igc3VyZQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jT2xkQmxlbikgeyAvLyBvbmx5IGZvciB0aGUgZmlyc3Qgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMgPSBDaGFyYWN0ZXIudG9VcHBlckNhc2UoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IEhZUEhFTiB8fCBjID09IENPTU1BKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gVU5ERVJTQ09SRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG9sZEJsZW47CisgICAgICAgIH0KKworICAgICAgICAvLyBubyBuZWVkIGZvciBza2lwdmFyaWFudCwgdG8gZ2V0IHRoZSBrZXl3b3JkcyB3ZSdsbCBqdXN0IHNjYW4gZGlyZWN0bHkgZm9yIAorICAgICAgICAvLyB0aGUga2V5d29yZCBzZXBhcmF0b3IKKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCBsYW5ndWFnZSBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZUxhbmd1YWdlKCkpOworICAgICAgICB9CisgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgc2NyaXB0IGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTY3JpcHQoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlU2NyaXB0KCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiByZXR1cm4gdGhlIG5vcm1hbGl6ZWQgY291bnRyeSBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q291bnRyeSgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICBza2lwTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIHNraXBTY3JpcHQoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VDb3VudHJ5KCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgdmFyaWFudCBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFyaWFudCgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICBza2lwTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIHNraXBTY3JpcHQoKTsKKyAgICAgICAgICAgIHNraXBDb3VudHJ5KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlVmFyaWFudCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCBhbmQgdmFyaWFudCBhcyBzZXBhcmF0ZSBzdHJpbmdzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgZ2V0U3RyaW5nKHBhcnNlTGFuZ3VhZ2UoKSksCisgICAgICAgICAgICAgICAgZ2V0U3RyaW5nKHBhcnNlU2NyaXB0KCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZUNvdW50cnkoKSksCisgICAgICAgICAgICAgICAgZ2V0U3RyaW5nKHBhcnNlVmFyaWFudCgpKQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEJhc2VOYW1lKFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICAgICAgdGhpcy5iYXNlTmFtZSA9IGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcGFyc2VCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIGlmIChiYXNlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2V0KDAsIGJhc2VOYW1lKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgICAgICBwYXJzZUxhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgcGFyc2VTY3JpcHQoKTsKKyAgICAgICAgICAgICAgICBwYXJzZUNvdW50cnkoKTsKKyAgICAgICAgICAgICAgICBwYXJzZVZhcmlhbnQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNhdGNoIHVud2FudGVkIHRyYWlsaW5nIHVuZGVyc2NvcmUgYWZ0ZXIgY291bnRyeSBpZiB0aGVyZSB3YXMgbm8gdmFyaWFudAorICAgICAgICAgICAgICAgIGlmIChibGVuID4gMSAmJiBidWZmZXJbYmxlbi0xXSA9PSBVTkRFUlNDT1JFKSB7CisgICAgICAgICAgICAgICAgICAgIC0tYmxlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCBiYXNlIGZvcm0gb2YgdGhlIGxvY2FsZSBpZC4gIFRoZSBiYXNlCisgICAgICAgICAqIGZvcm0gZG9lcyBub3QgaW5jbHVkZSBrZXl3b3Jkcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICBpZiAoYmFzZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhcnNlQmFzZU5hbWUoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcoMCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCBmdWxsIGZvcm0gb2YgdGhlIGxvY2FsZSBpZC4gIFRoZSBmdWxsCisgICAgICAgICAqIGZvcm0gaW5jbHVkZXMga2V5d29yZHMgaWYgdGhleSBhcmUgcHJlc2VudC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHBhcnNlQmFzZU5hbWUoKTsKKyAgICAgICAgICAgIHBhcnNlS2V5d29yZHMoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcoMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBrZXl3b3JkIHV0aWxpdGllcworCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB3ZSBoYXZlIGtleXdvcmRzLCBhZHZhbmNlIGluZGV4IHRvIHRoZSBzdGFydCBvZiB0aGUga2V5d29yZHMgYW5kIHJldHVybiB0cnVlLCAKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybiBmYWxzZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBzZXRUb0tleXdvcmRTdGFydCgpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBpbmRleDsgaSA8IGlkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkW2ldID09IEtFWVdPUkRfU0VQQVJBVE9SKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYW5vbmljYWxpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSArK2k7IGogPCBpZC5sZW5ndGg7ICsraikgeyAvLyBpbmNyZW1lbnQgaSBwYXN0IHNlcGFyYXRvciBmb3IgcmV0dXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkW2pdID09IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsraSA8IGlkLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNEb25lT3JLZXl3b3JkQXNzaWduKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gRE9ORSB8fCBjID09IEtFWVdPUkRfQVNTSUdOOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0RvbmVPckl0ZW1TZXBhcmF0b3IoY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gYyA9PSBET05FIHx8IGMgPT0gSVRFTV9TRVBBUkFUT1I7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRLZXl3b3JkKCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaW5kZXg7CisgICAgICAgICAgICB3aGlsZSAoIWlzRG9uZU9yS2V5d29yZEFzc2lnbihuZXh0KCkpKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoaWQsIHN0YXJ0LCBpbmRleC1zdGFydCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRWYWx1ZSgpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGluZGV4OworICAgICAgICAgICAgd2hpbGUgKCFpc0RvbmVPckl0ZW1TZXBhcmF0b3IobmV4dCgpKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGlkLCBzdGFydCwgaW5kZXgtc3RhcnQpLnRyaW0oKTsgLy8gbGVhdmUgY2FzZSBhbG9uZQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yIGdldEtleUNvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGNvbXAgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKFN0cmluZylsaHMpLmNvbXBhcmVUbygoU3RyaW5nKXJocyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIGNvbXA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhIG1hcCBvZiB0aGUga2V5d29yZHMgYW5kIHZhbHVlcywgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm9uZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgTWFwIGdldEtleXdvcmRNYXAoKSB7CisgICAgICAgICAgICBpZiAoa2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFRyZWVNYXAgbSA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKHNldFRvS2V5d29yZFN0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdHJpbSBzcGFjZXMgYW5kIGNvbnZlcnQgdG8gbG93ZXIgY2FzZSwgYm90aCBrZXl3b3JkcyBhbmQgdmFsdWVzLgorICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gZ2V0S2V5d29yZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBuZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyAhPSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleSAnIiArIGtleSArICInIG1pc3NpbmcgYSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleSAnIiArIGtleSArICInIG1pc3NpbmcgYSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtID0gbmV3IFRyZWVNYXAoZ2V0S2V5Q29tcGFyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobS5jb250YWluc0tleShrZXkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5ICciICsga2V5ICsgIicgYWxyZWFkeSBoYXMgYSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChuZXh0KCkgPT0gSVRFTV9TRVBBUkFUT1IpOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IG0gIT0gbnVsbCA/IG0gOiBDb2xsZWN0aW9ucy5FTVBUWV9NQVA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBrZXl3b3JkczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzZSB0aGUga2V5d29yZHMgYW5kIHJldHVybiBzdGFydCBvZiB0aGUgc3RyaW5nIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZUtleXdvcmRzKCkgeworICAgICAgICAgICAgaW50IG9sZEJsZW4gPSBibGVuOworICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoZmlyc3QgPyBLRVlXT1JEX1NFUEFSQVRPUiA6IElURU1fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGUgPSAoTWFwLkVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKFN0cmluZyllLmdldEtleSgpKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKEtFWVdPUkRfQVNTSUdOKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChTdHJpbmcpZS5nZXRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJsZW4gIT0gb2xkQmxlbikgeworICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG9sZEJsZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIHRoZSBrZXl3b3Jkcywgb3IgbnVsbCBpZiB3ZSBoYXZlIGFuIGVtcHR5IG1hcC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBJdGVyYXRvciBnZXRLZXl3b3JkcygpIHsKKyAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgcmV0dXJuIG0uaXNFbXB0eSgpID8gbnVsbCA6IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWVkIGtleXdvcmQsIG9yIG51bGwgaWYgdGhlIGtleXdvcmQgaXMgbm90CisgICAgICAgICAqIHByZXNlbnQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUpIHsKKyAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgcmV0dXJuIG0uaXNFbXB0eSgpID8gbnVsbCA6IChTdHJpbmcpbS5nZXQoa2V5d29yZE5hbWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUga2V5d29yZCB2YWx1ZSBvbmx5IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcgZWxzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGRlZmF1bHRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIHNldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSwgdmFsdWUsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIHZhbHVlIGZvciB0aGUgbmFtZWQga2V5d29yZCwgb3IgdW5zZXQgaXQgaWYgdmFsdWUgaXMgbnVsbC4gIElmCisgICAgICAgICAqIGtleXdvcmROYW1lIGl0c2VsZiBpcyBudWxsLCB1bnNldCBhbGwga2V5d29yZHMuICBJZiBrZXl3b3JkTmFtZSBpcyBub3QgbnVsbCwKKyAgICAgICAgICogdmFsdWUgbXVzdCBub3QgYmUgbnVsbC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgc2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lLCB2YWx1ZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWVkIGtleXdvcmQsIG9yIHVuc2V0IGl0IGlmIHZhbHVlIGlzIG51bGwuICBJZgorICAgICAgICAgKiBrZXl3b3JkTmFtZSBpdHNlbGYgaXMgbnVsbCwgdW5zZXQgYWxsIGtleXdvcmRzLiAgSWYga2V5d29yZE5hbWUgaXMgbm90IG51bGwsCisgICAgICAgICAqIHZhbHVlIG11c3Qgbm90IGJlIG51bGwuICBJZiByZXNldCBpcyB0cnVlLCBpZ25vcmUgYW55IHByZXZpb3VzIHZhbHVlIGZvciAKKyAgICAgICAgICogdGhlIGtleXdvcmQsIG90aGVyd2lzZSBkbyBub3QgY2hhbmdlIHRoZSBrZXl3b3JkIChpbmNsdWRpbmcgcmVtb3ZhbCBvZgorICAgICAgICAgKiBvbmUgb3IgYWxsIGtleXdvcmRzKS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lLCBTdHJpbmcgdmFsdWUsIGJvb2xlYW4gcmVzZXQpIHsKKyAgICAgICAgICAgIGlmIChrZXl3b3JkTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIG5ldyBtYXAsIGlnbm9yZSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGtleXdvcmROYW1lID0ga2V5d29yZE5hbWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgaWYgKGtleXdvcmROYW1lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5d29yZCBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInZhbHVlIG11c3Qgbm90IGJlIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICAgICAgaWYgKG0uaXNFbXB0eSgpKSB7IC8vIGl0IGlzIEVNUFRZX01BUAorICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgbmV3IG1hcAorICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBuZXcgVHJlZU1hcChnZXRLZXlDb21wYXJhdG9yKCkpOworICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMucHV0KGtleXdvcmROYW1lLCB2YWx1ZS50cmltKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc2V0IHx8ICFtLmNvbnRhaW5zS2V5KGtleXdvcmROYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLnB1dChrZXl3b3JkTmFtZSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLnJlbW92ZShrZXl3b3JkTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIG5ldyBtYXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBDb2xsZWN0aW9ucy5FTVBUWV9NQVA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogbGluZWFyIHNlYXJjaCBvZiB0aGUgc3RyaW5nIGFycmF5LiB0aGUgYXJyYXlzIGFyZSB1bmZvcnR1bmF0ZWx5IG9yZGVyZWQgYnkgdGhlCisgICAgICogdHdvLWxldHRlciB0YXJnZXQgY29kZSwgbm90IHRoZSB0aHJlZS1sZXR0ZXIgc2VhcmNoIGNvZGUsIHdoaWNoIHNlZW1zIGJhY2t3YXJkcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZEluZGV4KFN0cmluZ1tdIGFycmF5LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMoYXJyYXlbaV0pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjYW5vbmljYWwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgSUQuICBUaGlzIGlzIHVzZWQgdG8gY29udmVydCBQT1NJWAorICAgICAqIGFuZCBvdGhlciBncmFuZGZhdGhlcmVkIElEcyB0byBzdGFuZGFyZCBJQ1UgZm9ybS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBpZAorICAgICAqIEByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjYW5vbmljYWxpemUoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgSURQYXJzZXIgcGFyc2VyID0gbmV3IElEUGFyc2VyKGxvY2FsZUlELCB0cnVlKTsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lID0gcGFyc2VyLmdldEJhc2VOYW1lKCk7CisgICAgICAgIGJvb2xlYW4gZm91bmRWYXJpYW50ID0gZmFsc2U7CisgICAgICAKKyAgICAgICAgLy8gZm9ybWVybHksIHdlIGFsd2F5cyBzZXQgdG8gZW5fVVNfUE9TSVggaWYgdGhlIGJhc2VuYW1lIHdhcyBlbXB0eSwgYnV0CisgICAgICAgIC8vIG5vdyB3ZSByZXF1aXJlIHRoYXQgdGhlIGVudGlyZSBpZCBiZSBlbXB0eSwgc28gdGhhdCAiQGZvbz1iYXIiCisgICAgICAgIC8vIHdpbGwgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC4KKyAgICAgICAgLy8ge2RsZn0gSSdkIHJhdGhlciBrZWVwICIiIHVuY2hhbmdlZC4KKyAgICAgICAgaWYgKGxvY2FsZUlELmVxdWFscygiIikpIHsKKyAgICAgICAgICAgIHJldHVybiAiIjsKKy8vICAgICAgICAgICAgICByZXR1cm4gImVuX1VTX1BPU0lYIjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHdlIGhhdmUgYW4gSUQgaW4gdGhlIGZvcm0geHhfWXl5eV9aWl9LS0tLSworCisgICAgICAgIGluaXRWYXJpYW50c1RhYmxlKCk7CisKKyAgICAgICAgLyogU2VlIGlmIHRoaXMgaXMgYW4gYWxyZWFkeSBrbm93biBsb2NhbGUgKi8KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBfdmFyaWFudHNUb0tleXdvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoX3ZhcmlhbnRzVG9LZXl3b3Jkc1tpXVswXS5lcXVhbHMoYmFzZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgZm91bmRWYXJpYW50ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBfdmFyaWFudHNUb0tleXdvcmRzW2ldOworICAgICAgICAgICAgICAgIHBhcnNlci5zZXRCYXNlTmFtZSh2YWxzWzFdKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsc1syXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlci5kZWZhdWx0S2V5d29yZFZhbHVlKHZhbHNbMl0sIHZhbHNbM10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIGNvbnZlcnQgdGhlIEV1cm8gdmFyaWFudCB0byBhcHByb3ByaWF0ZSBJRCAqLworICAgICAgICBpZiAoIWZvdW5kVmFyaWFudCkgeworICAgICAgICAgICAgaW50IGlkeCA9IGJhc2VOYW1lLmluZGV4T2YoIl9FVVJPIik7CisgICAgICAgICAgICBpZiAoaWR4ID4gLTEpIHsKKyAgICAgICAgICAgICAgICBwYXJzZXIuc2V0QmFzZU5hbWUoYmFzZU5hbWUuc3Vic3RyaW5nKDAsIGlkeCkpOworICAgICAgICAgICAgICAgIHBhcnNlci5kZWZhdWx0S2V5d29yZFZhbHVlKCJjdXJyZW5jeSIsICJFVVIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIHRvdGFsIG1vbmRvIGhhY2sgZm9yIE5vcndlZ2lhbiwgZm9ydHVuYXRlbHkgdGhlIG1haW4gTlkgY2FzZSBpcyBoYW5kbGVkIGVhcmxpZXIgKi8KKyAgICAgICAgaWYgKCFmb3VuZFZhcmlhbnQpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZXIuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoIm5iIikgJiYgcGFyc2VyLmdldFZhcmlhbnQoKS5lcXVhbHMoIk5ZIikpIHsKKyAgICAgICAgICAgICAgICBwYXJzZXIuc2V0QmFzZU5hbWUobHNjdlRvSUQoIm5uIiwgcGFyc2VyLmdldFNjcmlwdCgpLCBwYXJzZXIuZ2V0Q291bnRyeSgpLCBudWxsKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcGFyc2VyLmdldE5hbWUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBrZXl3b3JkIGFuZCBhIHZhbHVlLCByZXR1cm4gYSBuZXcgbG9jYWxlIHdpdGggYW4gdXBkYXRlZAorICAgICAqIGtleXdvcmQgYW5kIHZhbHVlLiAgSWYga2V5d29yZCBpcyBudWxsLCB0aGlzIHJlbW92ZXMgYWxsIGtleXdvcmRzIGZyb20gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBPdGhlcndpc2UsIGlmIHRoZSB2YWx1ZSBpcyBudWxsLCB0aGlzIHJlbW92ZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgZnJvbSB0aGUKKyAgICAgKiBsb2NhbGUgaWQuICBPdGhlcndpc2UsIHRoaXMgYWRkcy9yZXBsYWNlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBpbiB0aGUgbG9jYWxlIGlkLgorICAgICAqIFRoZSBrZXl3b3JkIGFuZCB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBhZGQvcmVtb3ZlLCBvciBudWxsIHRvIHJlbW92ZSBhbGwga2V5d29yZHMuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQvc2V0LCBvciBudWxsIHRvIHJlbW92ZSB0aGlzIHBhcnRpY3VsYXIga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIHNldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShzZXRLZXl3b3JkVmFsdWUobG9jYWxlSUQsIGtleXdvcmQsIHZhbHVlKSwgKExvY2FsZSludWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGxvY2FsZSBpZCwgYSBrZXl3b3JkLCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSBpZCB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZS4gIElmIGtleXdvcmQgaXMgbnVsbCwgdGhpcyByZW1vdmVzIGFsbCBrZXl3b3JkcyBmcm9tIHRoZSBsb2NhbGUgaWQuCisgICAgICogT3RoZXJ3aXNlLCBpZiB0aGUgdmFsdWUgaXMgbnVsbCwgdGhpcyByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGZyb20gdGhlCisgICAgICogbG9jYWxlIGlkLiAgT3RoZXJ3aXNlLCB0aGlzIGFkZHMvcmVwbGFjZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgaW4gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBUaGUga2V5d29yZCBhbmQgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgaWQgdG8gbW9kaWZ5CisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYWRkL3JlbW92ZSwgb3IgbnVsbCB0byByZW1vdmUgYWxsIGtleXdvcmRzLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkL3NldCwgb3IgbnVsbCB0byByZW1vdmUgdGhpcyBwYXJ0aWN1bGFyIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUgaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCk7CisgICAgICAgIHBhcnNlci5zZXRLZXl3b3JkVmFsdWUoa2V5d29yZCwgdmFsdWUpOworICAgICAgICByZXR1cm4gcGFyc2VyLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGxvY2FsZSBpZCwgYSBrZXl3b3JkLCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSBpZCB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZSwgaWYgdGhlIGtleXdvcmQgZG9lcyBub3QgYWxyZWFkeSBoYXZlIGEgdmFsdWUuICBUaGUga2V5d29yZCBhbmQKKyAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5LgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkIHRvIG1vZGlmeQorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZCwgaWYgbm90IGFscmVhZHkgcHJlc2VudAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkLCBpZiBub3QgYWxyZWFkeSBwcmVzZW50CisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUgaWQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZGVmYXVsdEtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgSURQYXJzZXIgcGFyc2VyID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKTsKKyAgICAgICAgcGFyc2VyLmRlZmF1bHRLZXl3b3JkVmFsdWUoa2V5d29yZCwgdmFsdWUpOworICAgICAgICByZXR1cm4gcGFyc2VyLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBsYW5ndWFnZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBsYW5ndWFnZSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYSBsb3dlcmNhc2UgSVNPIDYzOS0yL1QgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBUaGUgSVNPIDYzOS0yIGxhbmd1YWdlIGNvZGVzIGNhbiBiZSBmb3VuZCBvbi1saW5lIGF0CisgICAgICogICA8YSBocmVmPSJmdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQiPjxjb2RlPmZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dDwvY29kZT48L2E+CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SVNPM0xhbmd1YWdlKCl7CisgICAgICAgIHJldHVybiBnZXRJU08zTGFuZ3VhZ2UobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGxhbmd1YWdlLCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhIGxvd2VyY2FzZSBJU08gNjM5LTIvVCBsYW5ndWFnZSBjb2RlLgorICAgICAqIFRoZSBJU08gNjM5LTIgbGFuZ3VhZ2UgY29kZXMgY2FuIGJlIGZvdW5kIG9uLWxpbmUgYXQKKyAgICAgKiAgIDxhIGhyZWY9ImZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dCI+PGNvZGU+ZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0PC9jb2RlPjwvYT4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBsYW5ndWFnZSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0SVNPM0xhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworCisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGdldExhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfbGFuZ3VhZ2VzLCBsYW5ndWFnZSk7CisgICAgICAgIGlmKG9mZnNldD49MCl7CisgICAgICAgICAgICByZXR1cm4gX2xhbmd1YWdlczNbb2Zmc2V0XTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMsIGxhbmd1YWdlKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBfb2Jzb2xldGVMYW5ndWFnZXMzW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEVNUFRZX1NUUklORzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgY291bnRyeS9yZWdpb24uICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgY291bnRyeSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYW4gdXBwZXJjYXNlIElTTyAzMTY2IDMtbGV0dGVyIGNvdW50cnkgY29kZS4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBjb3VudHJ5IGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElTTzNDb3VudHJ5KCl7CisgICAgICAgIHJldHVybiBnZXRJU08zQ291bnRyeShsb2NhbGVJRCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGNvdW50cnkvcmVnaW9uLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGNvdW50cnksIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAzLWxldHRlciBjb3VudHJ5IGNvZGUuCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY291bnRyeSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0SVNPM0NvdW50cnkoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKworICAgICAgICBTdHJpbmcgY291bnRyeSA9IGdldENvdW50cnkobG9jYWxlSUQpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9jb3VudHJpZXMsIGNvdW50cnkpOworICAgICAgICBpZihvZmZzZXQ+PTApeworICAgICAgICAgICAgcmV0dXJuIF9jb3VudHJpZXMzW29mZnNldF07CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUNvdW50cmllcywgY291bnRyeSk7CisgICAgICAgICAgICBpZihvZmZzZXQ+PTApeworICAgICAgICAgICAgICAgIHJldHVybiBfb2Jzb2xldGVDb3VudHJpZXMzW29mZnNldF07ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEVNUFRZX1NUUklORzsKKyAgICB9CisgICAgCisgICAgLy8gZGlzcGxheSBuYW1lcworCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0byBmZXRjaCBsb2NhbGUgZGlzcGxheSBkYXRhIGZyb20gcmVzb3VyY2UgYnVuZGxlIHRhYmxlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0VGFibGVTdHJpbmcoU3RyaW5nIHRhYmxlTmFtZSwgU3RyaW5nIHN1YnRhYmxlTmFtZSwgU3RyaW5nIGl0ZW0sIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuCisgICAgICAgICAgICAgICAgICBnZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBkaXNwbGF5TG9jYWxlSUQpOworICAgICAgICAgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZyh0YWJsZU5hbWUsIHN1YnRhYmxlTmFtZSwgaXRlbSwgYnVuZGxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJndHN1OiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0byBmZXRjaCBsb2NhbGUgZGlzcGxheSBkYXRhIGZyb20gcmVzb3VyY2UgYnVuZGxlIHRhYmxlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0VGFibGVTdHJpbmcoU3RyaW5nIHRhYmxlTmFtZSwgU3RyaW5nIHN1YnRhYmxlTmFtZSwgU3RyaW5nIGl0ZW0sIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSkgeworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImd0cyB0YWJsZTogIiArIHRhYmxlTmFtZSArIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIiBzdWJ0YWJsZTogIiArIHN1YnRhYmxlTmFtZSArCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAiIGl0ZW06ICIgKyBpdGVtICsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICIgYnVuZGxlOiAiICsgYnVuZGxlLmdldFVMb2NhbGUoKSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGN1cnJlbmN5CisgICAgICAgICAgICAgICAgaWYgKCJjdXJyZW5jeSIuZXF1YWxzKHN1YnRhYmxlTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGFibGUgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJDdXJyZW5jaWVzIik7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlID0gdGFibGUuZ2V0V2l0aEZhbGxiYWNrKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUuZ2V0U3RyaW5nKDEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRhYmxlID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjayh0YWJsZU5hbWUpOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnRhYmxlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUgPSB0YWJsZS5nZXRXaXRoRmFsbGJhY2soc3VidGFibGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN1YnRhYmxlTmFtZT09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXkgYmUgYSBkZXByZWNhdGVkIGNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnROYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGFibGVOYW1lLmVxdWFscygiQ291bnRyaWVzIikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5hbWUgPSBnZXRDdXJyZW50Q291bnRyeUlEKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZih0YWJsZU5hbWUuZXF1YWxzKCJMYW5ndWFnZXMiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TmFtZSA9IGdldEN1cnJlbnRMYW5ndWFnZUlEKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soY3VycmVudE5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsvKiBmYWxsIHRocm91Z2gqL30KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgY2FuJ3QgZmlndXJlIG91dCA/Li4gdHJ5IHRoZSBmYWxsYmFjayBtZWNoYW5pc20KKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmYWxsYmFja0xvY2FsZSA9IHRhYmxlLmdldFdpdGhGYWxsYmFjaygiRmFsbGJhY2siKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0xvY2FsZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUgPSAicm9vdCI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJ1bmRsZTogIiArIGJ1bmRsZS5nZXRVTG9jYWxlKCkgKyAiIGZhbGxiYWNrOiAiICsgZmFsbGJhY2tMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoZmFsbGJhY2tMb2NhbGUuZXF1YWxzKHRhYmxlLmdldFVMb2NhbGUoKS5sb2NhbGVJRCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmFsbGJhY2sgZnJvbSAiICsgdGFibGUuZ2V0VUxvY2FsZSgpICsgIiB0byAiICsgZmFsbGJhY2tMb2NhbGUgKyAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZ290IGJ1bmRsZSAiICsgYnVuZGxlLmdldFVMb2NhbGUoKSk7ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJndHNpOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUxhbmd1YWdlSW50ZXJuYWwobG9jYWxlSUQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlMYW5ndWFnZUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgbGFuZ3VhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUxhbmd1YWdlSW50ZXJuYWwobG9jYWxlSUQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgbGFuZ3VhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUxhbmd1YWdlSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0JIAorCisgICAgc3RhdGljIFN0cmluZyBnZXRDdXJyZW50Q291bnRyeUlEKFN0cmluZyBvbGRJRCl7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2RlcHJlY2F0ZWRDb3VudHJpZXMsIG9sZElEKTsKKyAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gX3JlcGxhY2VtZW50Q291bnRyaWVzW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9sZElEOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbnRMYW5ndWFnZUlEKFN0cmluZyBvbGRJRCl7CisgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUxhbmd1YWdlcywgb2xkSUQpOworICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBfcmVwbGFjZW1lbnRMYW5ndWFnZXNbb2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2xkSUQ7ICAgICAgICAKKyAgICB9CisJCisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIkxhbmd1YWdlcyIsIG51bGwsIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2UoKSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBzY3JpcHQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5U2NyaXB0SW50ZXJuYWwobG9jYWxlSUQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlTY3JpcHRJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBzY3JpcHQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHQoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5U2NyaXB0SW50ZXJuYWwobG9jYWxlSUQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Ugc2NyaXB0IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVNjcmlwdEludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlTY3JpcHRJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJTY3JpcHRzIiwgbnVsbCwgbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlDb3VudHJ5SW50ZXJuYWwobG9jYWxlSUQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoVUxvY2FsZSBkaXNwbGF5TG9jYWxlKXsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlDb3VudHJ5SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGNvdW50cnkgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlDb3VudHJ5SW50ZXJuYWwobG9jYWxlSUQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5Q291bnRyeUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5SW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiQ291bnRyaWVzIiwgbnVsbCwgIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0Q291bnRyeSgpLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudCgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlWYXJpYW50SW50ZXJuYWwobG9jYWxlSUQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlWYXJpYW50SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVZhcmlhbnRJbnRlcm5hbChsb2NhbGVJRCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHZhcmlhbnQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSB2YXJpYW50IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5VmFyaWFudEludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50SW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiVmFyaWFudHMiLCBudWxsLCBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFZhcmlhbnQoKSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoa2V5d29yZCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZEludGVybmFsKGtleXdvcmQsIGdldE5hbWUoZGlzcGxheUxvY2FsZUlEKSk7ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkKFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoa2V5d29yZCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZEludGVybmFsKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiS2V5cyIsIG51bGwsIGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCksIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgdmFsdWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZFZhbHVlSW50ZXJuYWwobG9jYWxlSUQsIGtleXdvcmQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRWYWx1ZUludGVybmFsKGxvY2FsZUlELCBrZXl3b3JkLCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBrZXl3b3JkIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkVmFsdWVJbnRlcm5hbChsb2NhbGVJRCwga2V5d29yZCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBrZXl3b3JkIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhbHVlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkVmFsdWVJbnRlcm5hbChsb2NhbGVJRCwga2V5d29yZCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlSW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICBrZXl3b3JkID0ga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZCk7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiVHlwZXMiLCBrZXl3b3JkLCB2YWx1ZSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSBuYW1lIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlIG5hbWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgSUQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIHdob3NlIG5hbWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbG9jYWxlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgSUQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIHdob3NlIG5hbWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbG9jYWxlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lSW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIC8vIGxhbmcKKyAgICAgICAgLy8gbGFuZyAoc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBrZXl3b3JkPXZhbHVlLCAuLi4pCisgICAgICAgIC8vIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCwga2V5d29yZD12YWx1ZSwgLi4uCisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gdGFibGVOYW1lcyA9IHsgIkxhbmd1YWdlcyIsICJTY3JpcHRzIiwgIkNvdW50cmllcyIsICJWYXJpYW50cyIgfTsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGRpc3BsYXlMb2NhbGVJRCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IHBhcnNlci5nZXRMYW5ndWFnZVNjcmlwdENvdW50cnlWYXJpYW50KCk7CisKKyAgICAgICAgYm9vbGVhbiBoYXZlTGFuZ3VhZ2UgPSBuYW1lc1swXS5sZW5ndGgoKSA+IDA7CisgICAgICAgIGJvb2xlYW4gb3BlblBhcmVuID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBuYW1lID0gZ2V0VGFibGVTdHJpbmcodGFibGVOYW1lc1tpXSwgbnVsbCwgbmFtZSwgYnVuZGxlKTsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeyAvLyBuZWVkIGEgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlTGFuZ3VhZ2UgJiAhb3BlblBhcmVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgKCIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3BlblBhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE1hcCBtID0gcGFyc2VyLmdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgaWYgKCFtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgSXRlcmF0b3Iga2V5cyA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGtleXMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMYW5ndWFnZSAmICFvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuUGFyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgZSA9IChNYXAuRW50cnkpa2V5cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gKFN0cmluZyllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChnZXRUYWJsZVN0cmluZygiS2V5cyIsIG51bGwsIGtleSwgYnVuZGxlKSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiPSIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZ2V0VGFibGVTdHJpbmcoIlR5cGVzIiwga2V5LCB2YWwsIGJ1bmRsZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZW5QYXJlbikgeworICAgICAgICAgICAgYnVmLmFwcGVuZCgiKSIpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBTZWxlY3RvciBmb3IgPHR0PmdldExvY2FsZSgpPC90dD4gaW5kaWNhdGluZyB0aGUgbG9jYWxlIG9mIHRoZQorICAgICAqIHJlc291cmNlIGNvbnRhaW5pbmcgdGhlIGRhdGEuICBUaGlzIGlzIGFsd2F5cyBhdCBvciBhYm92ZSB0aGUKKyAgICAgKiB2YWxpZCBsb2NhbGUuICBJZiB0aGUgdmFsaWQgbG9jYWxlIGRvZXMgbm90IGNvbnRhaW4gdGhlCisgICAgICogc3BlY2lmaWMgZGF0YSBiZWluZyByZXF1ZXN0ZWQsIHRoZW4gdGhlIGFjdHVhbCBsb2NhbGUgd2lsbCBiZQorICAgICAqIGFib3ZlIHRoZSB2YWxpZCBsb2NhbGUuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbQorICAgICAqIGxvY2FsZSBkYXRhLCB0aGVuIHRoZSB2YWxpZCBsb2NhbGUgaXMgPGk+bnVsbDwvaT4uCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVHlwZSBBQ1RVQUxfTE9DQUxFID0gbmV3IFR5cGUoMCk7CisgCisgICAgLyoqIAorICAgICAqIFNlbGVjdG9yIGZvciA8dHQ+Z2V0TG9jYWxlKCk8L3R0PiBpbmRpY2F0aW5nIHRoZSBtb3N0IHNwZWNpZmljCisgICAgICogbG9jYWxlIGZvciB3aGljaCBhbnkgZGF0YSBleGlzdHMuICBUaGlzIGlzIGFsd2F5cyBhdCBvciBhYm92ZQorICAgICAqIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLCBhbmQgYXQgb3IgYmVsb3cgdGhlIGFjdHVhbCBsb2NhbGUuICBJZgorICAgICAqIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW55IHJlc291cmNlIGRhdGEsCisgICAgICogdGhlbiB0aGUgdmFsaWQgbG9jYWxlIHdpbGwgYmUgYWJvdmUgdGhlIHJlcXVlc3RlZCBsb2NhbGUuICBJZgorICAgICAqIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLCB0aGVuIHRoZQorICAgICAqIGFjdHVhbCBsb2NhbGUgaXMgPGk+bnVsbDwvaT4uCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGUgdmFsaWQgbG9jYWxlIHdpbGwgYmUgcmV0dXJuZWQgY29ycmVjdGx5IGluIElDVQorICAgICAqIDMuMCBvciBsYXRlci4gIEluIElDVSAyLjgsIGl0IGlzIG5vdCByZXR1cm5lZCBjb3JyZWN0bHkuCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBUeXBlIFZBTElEX0xPQ0FMRSA9IG5ldyBUeXBlKDEpOworICAgIAorICAgIC8qKgorICAgICAqIE9wYXF1ZSBzZWxlY3RvciBlbnVtIGZvciA8dHQ+Z2V0TG9jYWxlKCk8L3R0Pi4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVHlwZSB7CisgICAgICAgIHByaXZhdGUgaW50IGxvY2FsZVR5cGU7CisgICAgICAgIHByaXZhdGUgVHlwZShpbnQgdHlwZSkgeyBsb2NhbGVUeXBlID0gdHlwZTsgfQorICAgIH0KKyAgICAKKyAgICAKKyAgLyoqCisgICAgKiBCYXNlZCBvbiBhIEhUVFAgZm9ybWF0dGVkIGxpc3Qgb2YgYWNjZXB0YWJsZSBsb2NhbGVzLCBkZXRlcm1pbmUgYW4gYXZhaWxhYmxlIGxvY2FsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yIGF2YWlsYWJsZUxvY2FsZXMgaXMKKyAgICAqIG51bGwuICBJZiBmYWxsYmFjayBpcyBub24tbnVsbCwgaXQgd2lsbCBjb250YWluIHRydWUgaWYgYSBmYWxsYmFjayBsb2NhbGUgKG9uZQorICAgICogbm90IGluIHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QpIHdhcyByZXR1cm5lZC4gIFRoZSB2YWx1ZSBvbiBlbnRyeSBpcyBpZ25vcmVkLiAKKyAgICAqIFVMb2NhbGUgd2lsbCBiZSBvbmUgb2YgdGhlIGxvY2FsZXMgaW4gYXZhaWxhYmxlTG9jYWxlcywgb3IgdGhlIFJPT1QgVUxvY2FsZSBpZgorICAgICogaWYgYSBST09UIGxvY2FsZSB3YXMgdXNlZCBhcyBhIGZhbGxiYWNrIChiZWNhdXNlIG5vdGhpbmcgZWxzZSBpbgorICAgICogYXZhaWxhYmxlTG9jYWxlcyBtYXRjaGVkKS4gIE5vIFVMb2NhbGUgYXJyYXkgZWxlbWVudCBzaG91bGQgYmUgbnVsbDsgYmVoYXZpb3IKKyAgICAqIGlzIHVuZGVmaW5lZCBpZiB0aGlzIGlzIHRoZSBjYXNlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBsaXN0IGluIEhUVFAgIkFjY2VwdC1MYW5ndWFnZToiIGZvcm1hdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBhdmFpbGFibGVMb2NhbGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuIE9uZSBvZiB0aGVzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBhdmFpbGFibGVMb2NhbGVzIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBpbnRlcm5hbCBJQ1UgMy40CisgICAgICAgICAqLworICAgICAgICBjbGFzcyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisgICAgICAgICAgICBwcml2YXRlIGRvdWJsZSBxOworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgc2VyaWFsOworICAgICAgICAgICAgcHVibGljIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEoZG91YmxlIHRoZXEsIGludCB0aGVzZXJpYWwpIHsKKyAgICAgICAgICAgICAgICBxID0gdGhlcTsKKyAgICAgICAgICAgICAgICBzZXJpYWwgPSB0aGVzZXJpYWw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykgeworICAgICAgICAgICAgICAgIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEgb3RoZXIgPSAoVUxvY2FsZUFjY2VwdExhbmd1YWdlUSkgbzsKKyAgICAgICAgICAgICAgICBpZihxID4gb3RoZXIucSkgeyAvLyByZXZlcnNlIC0gdG8gc29ydCBpbiBkZXNjZW5kaW5nIG9yZGVyCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYocSA8IG90aGVyLnEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHNlcmlhbCA8IG90aGVyLnNlcmlhbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHNlcmlhbCA+IG90aGVyLnNlcmlhbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLy8gc2FtZSBvYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyAxc3Q6IHBhcnNlIG91dCB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0IGludG8gYW4gYXJyYXkKKyAgICAgICAgCisgICAgICAgIFRyZWVNYXAgbWFwID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0Lmxlbmd0aCgpOworICAgICAgICBpbnQgbjsKKyAgICAgICAgaW50IGxhc3Q9LTE7CisgICAgICAgIGZvcihuPTA7bjxsO24rKykgeworICAgICAgICAgICAgaW50IGl0ZW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignLCcsbik7CisgICAgICAgICAgICBpZihpdGVtRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgaXRlbUVuZCA9IGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcGFyYW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignOycsbik7CisgICAgICAgICAgICBkb3VibGUgcSA9IDEuMDsKKyAKKyAgICAgICAgICAgIGlmKChwYXJhbUVuZCAhPSAtMSkgJiYgKHBhcmFtRW5kIDwgaXRlbUVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiBzZW1pY29sb24gKDspIGlzIGNsb3NlciB0aGFuIGVuZCAoLCkgKi8KKyAgICAgICAgICAgICAgICBpbnQgdCA9IHBhcmFtRW5kICsgMTsKKyAgICAgICAgICAgICAgICB3aGlsZShVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSdxJykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09Jz0nKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyh0LGl0ZW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcSA9IERvdWJsZS5wYXJzZURvdWJsZSh2YWwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBuZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcSA9IDEuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHEgPSAxLjA7IC8vZGVmYXVsdAorICAgICAgICAgICAgICAgIHBhcmFtRW5kID0gaXRlbUVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGxvYyA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcobixwYXJhbUVuZCkudHJpbSgpOworICAgICAgICAgICAgaW50IHNlcmlhbCA9IG1hcC5zaXplKCk7CisgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGVudHJ5ID0gbmV3IFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEocSxzZXJpYWwpOworICAgICAgICAgICAgbWFwLnB1dChlbnRyeSwgbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICAKKyAgICAgICAgLy8gMy4gY2FsbCB0aGUgcmVhbCBmdW5jdGlvbgorICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGlzdCwgYXZhaWxhYmxlTG9jYWxlcywgZmFsbGJhY2spOworICAgIH0KKyAgICAKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBhdmFpbGFibGVMb2NhbGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuIE9uZSBvZiB0aGVzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBhdmFpbGFibGVMb2NhbGVzIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoVUxvY2FsZVtdIGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZVtdCisgICAgYXZhaWxhYmxlTG9jYWxlcywgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIC8vIGZhbGxiYWNrbGlzdAorICAgICAgICBpbnQgaSxqOworICAgICAgICBpZihmYWxsYmFjayAhPSBudWxsKSB7CisgICAgICAgICAgICBmYWxsYmFja1swXT10cnVlOworICAgICAgICB9CisgICAgICAgIGZvcihpPTA7aTxhY2NlcHRMYW5ndWFnZUxpc3QubGVuZ3RoO2krKykgeworICAgICAgICAgICAgVUxvY2FsZSBhTG9jYWxlID0gYWNjZXB0TGFuZ3VhZ2VMaXN0W2ldOworICAgICAgICAgICAgYm9vbGVhbltdIHNldEZhbGxiYWNrID0gZmFsbGJhY2s7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgZm9yKGo9MDtqPGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoO2orKykgeworICAgICAgICAgICAgICAgICAgICBpZihhdmFpbGFibGVMb2NhbGVzW2pdLmVxdWFscyhhTG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2V0RmFsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZhbGxiYWNrWzBdPWZhbHNlOyAvLyBmaXJzdCB0aW1lIHdpdGggdGhpcyBsb2NhbGUgLSBub3QgYSBmYWxsYmFjay4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIExvY2FsZSBsb2MgPSBhTG9jYWxlLnRvTG9jYWxlKCk7CisgICAgICAgICAgICAgICAgTG9jYWxlIHBhcmVudCA9IExvY2FsZVV0aWxpdHkuZmFsbGJhY2sobG9jKTsKKyAgICAgICAgICAgICAgICBpZihwYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhTG9jYWxlID0gbmV3IFVMb2NhbGUocGFyZW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhTG9jYWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0RmFsbGJhY2sgPSBudWxsOyAvLyBEbyBub3Qgc2V0IGZhbGxiYWNrIGluIGxhdGVyIGl0ZXJhdGlvbnMKKyAgICAgICAgICAgIH0gd2hpbGUgKGFMb2NhbGUgIT0gbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAvKioKKyAgICAqIEJhc2VkIG9uIGEgSFRUUCBmb3JtYXR0ZWQgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBsaXN0IGluIEhUVFAgIkFjY2VwdC1MYW5ndWFnZToiIGZvcm1hdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCksCisgICAgICAgICAgICAgICAgCQkJCWZhbGxiYWNrKTsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYW4gb3JkZXJlZCBhcnJheSBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBvcmRlcmVkIGFycmF5IG9mIGFjY2VwdGFibGUgbG9jYWxlcyAocHJlZmVycmVkIGFyZSBsaXN0ZWQgZmlyc3QpCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgYWNjZXB0TGFuZ3VhZ2UoVUxvY2FsZVtdIGFjY2VwdExhbmd1YWdlTGlzdCwgYm9vbGVhbltdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKSB7CisgICAgICAgIHJldHVybiBhY2NlcHRMYW5ndWFnZShhY2NlcHRMYW5ndWFnZUxpc3QsIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLAorCQkJCWZhbGxiYWNrKTsKKyAgICB9ICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzlhODJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSw1MTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5SZXNvdXJjZUJ1bmRsZVdyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgY29sbGVjdGlvbiBvZiByZXNvdXJjZSBpbmZvcm1hdGlvbiBwZXJ0YWluaW5nIHRvIGEgZ2l2ZW4KKyAqIGxvY2FsZS4gQSByZXNvdXJjZSBidW5kbGUgcHJvdmlkZXMgYSB3YXkgb2YgYWNjZXNzaW5nIGxvY2FsZS0gc3BlY2ZpYyBpbmZvcm1hdGlvbiBpbgorICogYSBkYXRhIGZpbGUuIFlvdSBjcmVhdGUgYSByZXNvdXJjZSBidW5kbGUgdGhhdCBtYW5hZ2VzIHRoZSByZXNvdXJjZXMgZm9yIGEgZ2l2ZW4KKyAqIGxvY2FsZSBhbmQgdGhlbiBhc2sgaXQgZm9yIGluZGl2aWR1YWwgcmVzb3VyY2VzLgorICogPFA+CisgKiBJbiBSZXNvdXJjZUJ1bmRsZSBjbGFzcywgYW4gb2JqZWN0IGlzIGNyZWF0ZWQgCisgKiBhbmQgdGhlIHN1YiBpdGVtcyBhcmUgZmV0Y2hlZCB1c2luZyBnZXRTdHJpbmcsIGdldE9iamVjdCBtZXRob2RzLiAKKyAqIEluIFVSZXNvdXJjZUJ1bmRsZSxlYWNoIGluZGl2aWR1YWwgZWxlbWVudCBvZiBhIHJlc291cmNlIGlzIGEgcmVzb3VyY2UgYnkgaXRzZWxmLgorICogCisgKiA8UD4KKyAqIFJlc291cmNlIGJ1bmRsZXMgaW4gSUNVIGFyZSBjdXJyZW50bHkgZGVmaW5lZCB1c2luZyB0ZXh0IGZpbGVzIHdoaWNoIGNvbmZvcm0gdG8gdGhlIGZvbGxvd2luZworICogPGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3VodG1sL2Rlc2lnbi9ibmZfcmIudHh0Ij5CTkYgZGVmaW5pdGlvbjwvYT4uCisgKiBNb3JlIG9uIHJlc291cmNlIGJ1bmRsZSBjb25jZXB0cyBhbmQgc3ludGF4IGNhbiBiZSBmb3VuZCBpbiB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvUmVzb3VyY2VNYW5hZ2VtZW50Lmh0bWwiPlVzZXJzIEd1aWRlPC9hPi4KKyAqIDxQPgorICogCisgKiBUaGUgcGFja2FnaW5nIG9mIElDVSAqLnJlcyBmaWxlcyBjYW4gYmUgb2YgdHdvIHR5cGVzCisgKiBJQ1U0QzoKKyAqIDxwcmU+CisgKiAgICAgICByb290LnJlcworICogICAgICAgICB8CisgKiAgICAgIC0tLS0tLS0tCisgKiAgICAgfCAgICAgICAgfAorICogICBmci5yZXMgIGVuLnJlcworICogICAgIHwKKyAqICAgLS0tLS0tLS0KKyAqICB8ICAgICAgICB8CisgKiBmcl9DQS5yZXMgZnJfRlIucmVzICAgICAKKyAqIDwvcHJlPgorICogSkFWQS9KREs6CisgKiA8cHJlPgorICogICAgTG9jYWxlRWxlbWVudHMucmVzCisgKiAgICAgICAgIHwKKyAqICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgIHwgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnIucmVzICBMb2NhbGVFbGVtZW50c19lbi5yZXMKKyAqICAgICB8CisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnJfQ0EucmVzICAgTG9jYWxlRWxlbWVudHNfZnJfRlIucmVzCisgKiA8L3ByZT4KKyAqIERlcGVuZGluZyBvbiB0aGUgb3JnYW5pemF0aW9uIG9mIHlvdXIgcmVzb3VyY2VzLCB0aGUgc3ludGF4IHRvIGdldEJ1bmRsZUluc3RhbmNlIHdpbGwgY2hhbmdlLgorICogVG8gb3BlbiBJQ1Ugc3R5bGUgb3JnYW5pemF0aW9uIHVzZToKKyAqIDxwcmU+CisgKiAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkdDMwYiIsICJlbl9VUyIpOworICogPC9wcmU+CisgKiBUbyBvcGVuIEphdmEvSkRLIHN0eWxlIG9yZ2FuaXphdGlvbiB1c2U6CisgKiA8cHJlPgorICogICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHMiLCAiZW5fVVMiKTsKKyAqIDwvcHJlPgorICogQHN0YWJsZSBJQ1UgMy4wCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVVJlc291cmNlQnVuZGxlIGV4dGVuZHMgUmVzb3VyY2VCdW5kbGV7CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGFuZCBsb2NhbGUuCisgICAgICogSUNVX0RBVEFfQ0xBU1MgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCByb290LgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSB1c2luZyB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSwgbG9jYWxlLCBhbmQgY2xhc3Mgcm9vdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQHBhcmFtIHJvb3QgdGhlIGNsYXNzIG9iamVjdCBmcm9tIHdoaWNoIHRvIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgIGlmIG5vIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIHNwZWNpZmllZCBiYXNlIG5hbWUgY2FuIGJlIGZvdW5kCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSwgQ2xhc3NMb2FkZXIgcm9vdCl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lLCBsb2NhbGUsIGFuZCBjbGFzcyByb290LgorICAgICAqCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgcmVzb3VyY2UgYnVuZGxlIGlzIGRlc2lyZWQKKyAgICAgKiBAcGFyYW0gcm9vdCB0aGUgY2xhc3Mgb2JqZWN0IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIGRpc2FibGVGYWxsYmFjayBPcHRpb24gdG8gZGlzYWJsZSBsb2NhbGUgaW5oZXJpdGVuY2UuIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0cnVlIHRoZSBmYWxsYmFjayBjaGFpbiB3aWxsIG5vdCBiZSBidWlsdC4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICBpZiBubyByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGNhbiBiZSBmb3VuZAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqIAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIHJldHVybiBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTb2xlIGNvbnN0cnVjdG9yLiAgKEZvciBpbnZvY2F0aW9uIGJ5IHN1YmNsYXNzIGNvbnN0cnVjdG9ycywgdHlwaWNhbGx5CisgICAgICogaW1wbGljaXQuKSAgVGhpcyBpcyBwdWJsaWMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhLCB3aG9zZSBjb21waWxlcgorICAgICAqIHdpbGwgZ2VuZXJhdGUgcHVibGljIGRlZmF1bHQgY29uc3RydWN0b3JzIGZvciBhbiBhYnN0cmFjdCBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlKCkgeyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgbG9jYWxlIHNwZWNpZmllZCwgZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcKKyAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGxvY2FsZSAgc3BlY2lmaWVzIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHdlIHdhbnQgdG8gb3BlbiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAgICAgICAgSWYgbnVsbCB0aGUgYnVuZGxlIGZvciBkZWZhdWx0IGxvY2FsZSBpcyBvcGVuZWQuICAgICAgICAgICAgICAKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlICAgICAgICAgICAgICAgCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpeworICAgICAgICBpZihsb2NhbGU9PW51bGwpeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUudG9TdHJpbmcoKSwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSICk7ICAgCisgICAgfQorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGRlZmF1bHQgbG9jYWxlICAgICAgICAgICAgICAKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZSggYmFzZU5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCksIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUiApOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisKKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIExvY2FsZSBsb2NhbGUpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUsIGZyb20gd2hpY2ggdXNlcnMgY2FuIGV4dHJhY3QgcmVzb3VyY2VzIGJ5IHVzaW5nCisgICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBrZXlzLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZGF0YSBwYWNrYWdlLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBkZWZhdWx0IElDVSBwYWNrYWdlIG5hbWUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSAgICAgICAgICAgICAgIAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgVUxvY2FsZSBsb2NhbGUpeworICAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGUudG9TdHJpbmcoKSxJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOyAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZCBzcGVjaWZpZWQgYmFzZSBuYW1lLAorICAgICAqIGZyb20gd2hpY2ggdXNlcnMgY2FuIGV4dHJhY3QgcmVzb3VyY2VzIGJ5IHVzaW5nIHRoZWlyIGNvcnJlc3BvbmRpbmcga2V5cy4KKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgICAgICAgICAgICAgCisgICAgICogQHBhcmFtIGxvY2FsZSAgc3BlY2lmaWVzIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHdlIHdhbnQgdG8gb3BlbiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAgICAgICAgSWYgbnVsbCB0aGUgYnVuZGxlIGZvciBkZWZhdWx0IGxvY2FsZSBpcyBvcGVuZWQuICAKKyAgICAgKiBAcGFyYW0gbG9hZGVyICB0aGUgbG9hZGVyIHRvIHVzZQorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZQorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBMb2NhbGUgbG9jYWxlLCBDbGFzc0xvYWRlciBsb2FkZXIpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGxvYWRlcik7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFVSZXNvdXJjZUJ1bmRsZSwgZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcKKyAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBkYXRhIHBhY2thZ2UuCisgICAgICogICAgICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UgbmFtZSBpcyB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLgorICAgICAqIEBwYXJhbSBsb2FkZXIgIHRoZSBsb2FkZXIgdG8gdXNlCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlICAgICAgICAgICAgICAgCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFVMb2NhbGUgbG9jYWxlLCBDbGFzc0xvYWRlciBsb2FkZXIpeworICAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGUudG9TdHJpbmcoKSxsb2FkZXIpOyAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFJGQyAzMDY2IGNvbmZvcm1hbnQgbG9jYWxlIGlkIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlLiAKKyAgICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCBhZnRlciBhIGNhbGwgdG8gZ2V0QnVuZGxlSW5zdGFuY2UoKSB0bworICAgICAqIGRldGVybWluZSB3aGV0aGVyIHRoZSByZXNvdXJjZSBidW5kbGUgcmV0dXJuZWQgcmVhbGx5CisgICAgICogY29ycmVzcG9uZHMgdG8gdGhlIHJlcXVlc3RlZCBsb2NhbGUgb3IgaXMgYSBmYWxsYmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBVTG9jYWxlIGdldFVMb2NhbGUoKTsgCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlSUQKKyAgICAgKiBAcmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBnZXRMb2NhbGVJRCgpOworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHJldHVybiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBiYXNlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIGdldEJhc2VOYW1lKCk7CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAqIEByZXR1cm4gVGhlIHBhcmVudCBidW5kbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbG9jYWxlIG9mIHRoaXMgYnVuZGxlCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKXsKKyAgICAgICAgcmV0dXJuIGdldFVMb2NhbGUoKS50b0xvY2FsZSgpOyAgIAorICAgIH0KKworICAgIC8vIENhY2hlIGZvciBSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0aW9uCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBCVU5ETEVfQ0FDSEU7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZFRvQ2FjaGUoUmVzb3VyY2VDYWNoZUtleSBrZXksIFVSZXNvdXJjZUJ1bmRsZSBiKSB7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBCVU5ETEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorICAgICAgICBtLnB1dChrZXksIGIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBhZGRUb0NhY2hlKENsYXNzTG9hZGVyIGNsLCBTdHJpbmcgZnVsbE5hbWUsIFVMb2NhbGUgZGVmYXVsdExvY2FsZSwgIFVSZXNvdXJjZUJ1bmRsZSBiKXsKKyAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKGNsLCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIGFkZFRvQ2FjaGUoKFJlc291cmNlQ2FjaGVLZXkpY2FjaGVLZXkuY2xvbmUoKSwgYik7CisgICAgfQorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoQ2xhc3NMb2FkZXIgY2wsIFN0cmluZyBmdWxsTmFtZSwgVUxvY2FsZSBkZWZhdWx0TG9jYWxlKXsKKyAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKGNsLCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIHJldHVybiBsb2FkRnJvbUNhY2hlKGNhY2hlS2V5KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoUmVzb3VyY2VDYWNoZUtleSBrZXkpIHsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IChNYXApQlVORExFX0NBQ0hFLmdldCgpOworICAgICAgICAgICAgaWYgKG0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoVVJlc291cmNlQnVuZGxlKW0uZ2V0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSAgIAorICAgIAorICAgIC8qKgorICAgICAqIEtleSB1c2VkIGZvciBjYWNoZWQgcmVzb3VyY2UgYnVuZGxlcy4gIFRoZSBrZXkgY2hlY2tzCisgICAgICogdGhlIHJlc291cmNlIG5hbWUsIHRoZSBjbGFzcyByb290LCBhbmQgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUgdG8gZGV0ZXJtaW5lIGlmIHRoZSByZXNvdXJjZSBpcyBhIG1hdGNoIHRvIHRoZQorICAgICAqIHJlcXVlc3RlZCBvbmUuIFRoZSByb290IG1heSBiZSBudWxsLCBidXQgdGhlCisgICAgICogc2VhcmNoTmFtZSBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlIG11c3QgaGF2ZSBhIG5vbi1udWxsIHZhbHVlLgorICAgICAqIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgbWF5IGNoYW5nZSBvdmVyIHRpbWUsIGFuZAorICAgICAqIGxvb2t1cCBzaG91bGQgYWx3YXlzIGJlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGRlZmF1bHQKKyAgICAgKiBsb2NhbGUgKGlmIGF0IGFsbCkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUmVzb3VyY2VDYWNoZUtleSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisgICAgICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSBsb2FkZXJSZWY7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNlYXJjaE5hbWU7CisgICAgICAgIHByaXZhdGUgVUxvY2FsZSBkZWZhdWx0TG9jYWxlOworICAgICAgICBwcml2YXRlIGludCBoYXNoQ29kZUNhY2hlOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG90aGVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbmFsIFJlc291cmNlQ2FjaGVLZXkgb3RoZXJFbnRyeSA9IChSZXNvdXJjZUNhY2hlS2V5KSBvdGhlcjsKKyAgICAgICAgICAgICAgICAvL3F1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGV5IGFyZSBub3QgZXF1YWwKKyAgICAgICAgICAgICAgICBpZiAoaGFzaENvZGVDYWNoZSAhPSBvdGhlckVudHJ5Lmhhc2hDb2RlQ2FjaGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2FyZSB0aGUgbmFtZXMgdGhlIHNhbWU/CisgICAgICAgICAgICAgICAgaWYgKCFzZWFyY2hOYW1lLmVxdWFscyhvdGhlckVudHJ5LnNlYXJjaE5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gYXJlIHRoZSBkZWZhdWx0IGxvY2FsZXMgdGhlIHNhbWU/CisgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRMb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJFbnRyeS5kZWZhdWx0TG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdExvY2FsZS5lcXVhbHMob3RoZXJFbnRyeS5kZWZhdWx0TG9jYWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vYXJlIHJlZnMgKGJvdGggbm9uLW51bGwpIG9yIChib3RoIG51bGwpPworICAgICAgICAgICAgICAgIGlmIChsb2FkZXJSZWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXJFbnRyeS5sb2FkZXJSZWYgPT0gbnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG90aGVyRW50cnkubG9hZGVyUmVmICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGxvYWRlclJlZi5nZXQoKSA9PSBvdGhlckVudHJ5LmxvYWRlclJlZi5nZXQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzaENvZGVDYWNoZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL3RoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldEtleVZhbHVlcyhDbGFzc0xvYWRlciByb290LCBTdHJpbmcgc2VhcmNoTmFtZSwgVUxvY2FsZSBkZWZhdWx0TG9jYWxlKSB7CisgICAgICAgICAgICB0aGlzLnNlYXJjaE5hbWUgPSBzZWFyY2hOYW1lOworICAgICAgICAgICAgaGFzaENvZGVDYWNoZSA9IHNlYXJjaE5hbWUuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7CisgICAgICAgICAgICBpZiAoZGVmYXVsdExvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaGFzaENvZGVDYWNoZSBePSBkZWZhdWx0TG9jYWxlLmhhc2hDb2RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocm9vdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhpcy5sb2FkZXJSZWYgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2FkZXJSZWYgPSBuZXcgU29mdFJlZmVyZW5jZShyb290KTsKKyAgICAgICAgICAgICAgICBoYXNoQ29kZUNhY2hlIF49IHJvb3QuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIHByaXZhdGUgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgICAgIHNldEtleVZhbHVlcyhudWxsLCAiIiwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFJlc291cmNlQ2FjaGVLZXkgY2FjaGVLZXkgPSBuZXcgUmVzb3VyY2VDYWNoZUtleSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUk9PVF9NSVNTSU5HID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUk9PVF9JQ1UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBST09UX0pBVkEgPSAyOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFNvZnRSZWZlcmVuY2UgUk9PVF9DQUNIRTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRSb290VHlwZShTdHJpbmcgYmFzZU5hbWUsIENsYXNzTG9hZGVyIHJvb3QpCisgICAgeworICAgICAgICBNYXAgbSA9IG51bGw7CisgICAgICAgIEludGVnZXIgcm9vdFR5cGU7CisgICAgICAgIAorICAgICAgICBpZiAoUk9PVF9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBtID0gKE1hcCkgUk9PVF9DQUNIRS5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBST09UX0NBQ0hFID0gbmV3IFNvZnRSZWZlcmVuY2UobSk7CisgICAgICAgIH0KKworICAgICAgICByb290VHlwZSA9IChJbnRlZ2VyKSBtLmdldChiYXNlTmFtZSk7CisgICAgICAgIAorICAgICAgICBpZiAocm9vdFR5cGUgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHJvb3RMb2NhbGUgPSAoYmFzZU5hbWUuaW5kZXhPZignLicpPT0tMSkgPyAicm9vdCIgOiAiIjsKKyAgICAgICAgICAgIGludCBydCA9IFJPT1RfTUlTU0lORzsKKyAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBiID0gbnVsbDsgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGIgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgcm9vdExvY2FsZSwgcm9vdCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgcnQgPSBST09UX0lDVTsgCisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGIgPSBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBydCA9IFJPT1RfSkFWQTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICAvL3Rocm93IGF3YXkgdGhlIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcm9vdFR5cGUgPSBuZXcgSW50ZWdlcihydCk7CisgICAgICAgICAgICBtLnB1dChiYXNlTmFtZSwgcm9vdFR5cGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcm9vdFR5cGUuaW50VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRSb290VHlwZShTdHJpbmcgYmFzZU5hbWUsIGludCByb290VHlwZSkKKyAgICB7CisgICAgICAgIEludGVnZXIgcnQgPSBuZXcgSW50ZWdlcihyb290VHlwZSk7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChST09UX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSAoTWFwKSBST09UX0NBQ0hFLmdldCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBST09UX0NBQ0hFID0gbmV3IFNvZnRSZWZlcmVuY2UobSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG0ucHV0KGJhc2VOYW1lLCBydCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvYWRzIGEgbmV3IHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmUgYmFzZSBuYW1lLCBsb2NhbGUgYW5kIGNsYXNzIGxvYWRlci4KKyAgICAgKiBPcHRpb25hbGx5IHdpbGwgZGlzYWJsZSBsb2FkaW5nIG9mIGZhbGxiYWNrIGJ1bmRsZXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgcmVzb3VyY2UgYnVuZGxlIGlzIGRlc2lyZWQKKyAgICAgKiBAcGFyYW0gcm9vdCB0aGUgY2xhc3Mgb2JqZWN0IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIGRpc2FibGVGYWxsYmFjayBkaXNhYmxlcyBsb2FkaW5nIG9mIGZhbGxiYWNrIGxvb2t1cCBjaGFpbgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgIGlmIG5vIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIHNwZWNpZmllZCBiYXNlIG5hbWUgY2FuIGJlIGZvdW5kCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgVVJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlQnVuZGxlKAorICAgICAgICBTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjaykKKyAgICB7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBiID0gbnVsbDsKKyAgICAgICAgaW50IHJvb3RUeXBlID0gZ2V0Um9vdFR5cGUoYmFzZU5hbWUsIHJvb3QpOworCisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChyb290VHlwZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIFJPT1RfSUNVOgorICAgICAgICAgICAgaWYoZGlzYWJsZUZhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZ1bGxOYW1lID0gSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZU5hbWUpOyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FjaGVLZXkuc2V0S2V5VmFsdWVzKHJvb3QsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBiID0gbG9hZEZyb21DYWNoZShjYWNoZUtleSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5LnNldEtleVZhbHVlcyhyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZFRvQ2FjaGUoY2FjaGVLZXksIGIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFJPT1RfSkFWQToKKyAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgc2V0Um9vdFR5cGUoYmFzZU5hbWUsIFJPT1RfSUNVKTsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGIgPSBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgc2V0Um9vdFR5cGUoYmFzZU5hbWUsIFJPT1RfSkFWQSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKGludCBuZXdTdGF0dXMpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjI4MTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwyOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCisvKioKKyAqIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGUgcmVxdWVzdGVkIHJlc291cmNlIHR5cGUgCisgKiBpcyBub3QgdGhlIHNhbWUgdHlwZSBhcyB0aGUgYXZhaWxhYmxlIHJlc291cmNlCisgKiBAYXV0aG9yIHJhbQorICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24gZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uIHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDEyODY1NjkwNjEwOTU0MzQ1NDFMOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0dWN0IHRoZSBleGNlcHRpb24gd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZQorICAgICAqIEBwYXJhbSBtc2cgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbihTdHJpbmcgbXNnKXsKKyAgICAgICAgc3VwZXIobXNnKTsgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVW5pdmVyc2FsVGltZVNjYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Vbml2ZXJzYWxUaW1lU2NhbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2IxZmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVW5pdmVyc2FsVGltZVNjYWxlLmphdmEKQEAgLTAsMCArMSw2NzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247CisKKy8qKiAKKyAqIFRoZXJlIGFyZSBxdWl0ZSBhIGZldyBkaWZmZXJlbnQgY29udmVudGlvbnMgZm9yIGJpbmFyeSBkYXRldGltZSwgZGVwZW5kaW5nIG9uIGRpZmZlcmVudAorICogcGxhdGZvcm1zIGFuZCBwcm90b2NvbHMuIFNvbWUgb2YgdGhlc2UgaGF2ZSBzZXZlcmUgZHJhd2JhY2tzLiBGb3IgZXhhbXBsZSwgcGVvcGxlIHVzaW5nCisgKiBVbml4IHRpbWUgKHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzAsIHVzdWFsbHkgaW4gYSAzMi1iaXQgaW50ZWdlcikKKyAqIHRoaW5rIHRoYXQgdGhleSBhcmUgc2FmZSB1bnRpbCBuZWFyIHRoZSB5ZWFyIDIwMzguCisgKiBCdXQgY2FzZXMgY2FuIGFuZCBkbyBhcmlzZSB3aGVyZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMgY2F1c2VzIHNlcmlvdXMgcHJvYmxlbXMuIENvbnNpZGVyCisgKiB0aGUgY29tcHV0YXRpb24gb2YgdGhlIGF2ZXJhZ2Ugb2YgdHdvIGRhdGV0aW1lcywgZm9yIGV4YW1wbGU6IGlmIG9uZSBjYWxjdWxhdGVzIHRoZW0gd2l0aAorICogPGNvZGU+YXZlcmFnZVRpbWUgPSAodGltZTEgKyB0aW1lMikvMjwvY29kZT4sIHRoZXJlIHdpbGwgYmUgb3ZlcmZsb3cgZXZlbiB3aXRoIGRhdGVzCisgKiBiZWdpbm5pbmcgaW4gMjAwNC4gTW9yZW92ZXIsIGV2ZW4gaWYgdGhlc2UgcHJvYmxlbXMgZG9uJ3Qgb2NjdXIsIHRoZXJlIGlzIHRoZSBpc3N1ZSBvZgorICogY29udmVyc2lvbiBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGRpZmZlcmVudCBzeXN0ZW1zLgorICoKKyAqIDxwPkJpbmFyeSBkYXRldGltZXMgZGlmZmVyIGluIGEgbnVtYmVyIG9mIHdheXM6IHRoZSBkYXRhdHlwZSwgdGhlIHVuaXQsCisgKiBhbmQgdGhlIGVwb2NoIChvcmlnaW4pLiBXZSByZWZlciB0byB0aGVzZSBhcyB0aW1lIHNjYWxlcy48L3A+CisgKgorICogPHA+SUNVIGltcGxlbWVudHMgYSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhlCisgKiAuTkVUIGZyYW1ld29yaydzIFN5c3RlbS5EYXRlVGltZS4gVGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIGlzIGEKKyAqIDY0LWJpdCBpbnRlZ2VyIHRoYXQgaG9sZHMgdGlja3Mgc2luY2UgbWlkbmlnaHQsIEphbnVhcnkgMXN0LCAwMDAxLgorICogKE9uZSB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4pCisgKiBOZWdhdGl2ZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC4gVGhpcyBoYXMgZW5vdWdoIHJhbmdlIHRvIGd1YXJhbnRlZSB0aGF0CisgKiBjYWxjdWxhdGlvbnMgaW52b2x2aW5nIGRhdGVzIGFyb3VuZCB0aGUgcHJlc2VudCBhcmUgc2FmZS48L3A+CisgKgorICogPHA+VGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlIGFsd2F5cyBtZWFzdXJlcyB0aW1lIGFjY29yZGluZyB0byB0aGUKKyAqIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoYXQgaXMsIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIncworICogbGVhcCB5ZWFyIHJ1bGVzIGFyZSB1c2VkIGZvciBhbGwgdGltZXMsIGV2ZW4gYmVmb3JlIDE1ODIgd2hlbiBpdCB3YXMKKyAqIGludHJvZHVjZWQuIChUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IElDVSBjYWxlbmRhciB3aGljaAorICogc3dpdGNoZXMgZnJvbSB0aGUgSnVsaWFuIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gMTU4Mi4KKyAqIFNlZSBHcmVnb3JpYW5DYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UoKSBhbmQgdWNhbF9zZXRHcmVnb3JpYW5DaGFuZ2UoKS4pPC9wPgorICoKKyAqIElDVSBwcm92aWRlcyBjb252ZXJzaW9uIGZ1bmN0aW9ucyB0byBhbmQgZnJvbSBhbGwgb3RoZXIgbWFqb3IgdGltZQorICogc2NhbGVzLCBhbGxvd2luZyBkYXRldGltZXMgaW4gYW55IHRpbWUgc2NhbGUgdG8gYmUgY29udmVydGVkIHRvIHRoZQorICogdW5pdmVyc2FsIHRpbWUgc2NhbGUsIHNhZmVseSBtYW5pcHVsYXRlZCwgYW5kIGNvbnZlcnRlZCBiYWNrIHRvIGFueSBvdGhlcgorICogZGF0ZXRpbWUgdGltZSBzY2FsZS48L3A+CisgKgorICogPHA+Rm9yIG1vcmUgZGV0YWlscyBhbmQgYmFja2dyb3VuZCwgc2VlIHRoZQorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3VuaXZlcnNhbFRpbWVTY2FsZS5odG1sIj5Vbml2ZXJzYWwgVGltZSBTY2FsZTwvYT4KKyAqIGNoYXB0ZXIgaW4gdGhlIElDVSBVc2VyIEd1aWRlLjwvcD4KKyAqCisgKiBAZHJhZnQgSUNVIDMuMgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVuaXZlcnNhbFRpbWVTY2FsZQoreworICAgIC8qKgorICAgICAqIFVzZWQgaW4gdGhlIEpESy4gRGF0YSBpcyBhIDxjb2RlPmxvbmc8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBVkFfVElNRSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFVuaXggc3lzdGVtcy4gRGF0YSBpcyBhbiA8Y29kZT5pbnQ8L2NvZGU+IG9yIGEgPGNvZGU+bG9uZzwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSVhfVElNRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBJQ1U0Qy4gRGF0YSBpcyBhIDxjb2RlPmRvdWJsZTwvY29kZT4uIFZhbHVlCisgICAgICogaXMgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUNVNENfVElNRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFdpbmRvd3MgZm9yIGZpbGUgdGltZXMuIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUKKyAgICAgKiBpcyB0aWNrcyAoMSB0aWNrID09IDEwMCBuYW5vc2Vjb25kcykgc2luY2UgSmFudWFyeSAxLCAxNjAxLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSU5ET1dTX0ZJTEVfVElNRSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSAuTkVUIGZyYW1ld29yaydzIDxjb2RlPlN5c3RlbS5EYXRlVGltZTwvY29kZT4gc3RydWN0dXJlLgorICAgICAqIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUgaXMgdGlja3MgKDEgdGljayA9PSAxMDAgbmFub3NlY29uZHMpIHNpbmNlIEphbnVhcnkgMSwgMDAwMS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9UTkVUX0RBVEVfVElNRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIG9sZGVyIE1hY2ludG9zaCBzeXN0ZW1zLiBEYXRhIGlzIGFuIDxjb2RlPmludDwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5MDQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19PTERfVElNRSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBKREsuIERhdGEgaXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDIwMDEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19USU1FID0gNjsKKworICAgIC8qKgorICAgICAqIFVzZWQgaW4gRXhjZWwuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYQ0VMX1RJTUUgPSA3OworCisgICAgLyoqCisgICAgICogVXNlZCBpbiBEQjIuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERCMl9USU1FID0gODsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmaXJzdCB1bnVzZWQgdGltZSBzY2FsZSB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NDQUxFID0gOTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIHVuaXRzIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JVFNfVkFMVUUgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggb2Zmc2V0IHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUE9DSF9PRkZTRVRfVkFMVUUgPSAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWluaW11bSBmcm9tIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUk9NX01JTl9WQUxVRSA9IDI7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtYXhpbXVtIGZyb20gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZST01fTUFYX1ZBTFVFID0gMzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIG1pbmltdW0gdG8gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPX01JTl9WQUxVRSA9IDQ7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtYXhpbXVtIHRvIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT19NQVhfVkFMVUUgPSA1OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggcGx1cyBvbmUgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuIE1heSBub3QKKyAgICAgKiBhY3R1YWxseSBiZSBlcXVhbCB0byB0aGUgZXBvY2ggb2Zmc2V0IHZhbHVlIHBsdXMgb25lLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVQT0NIX09GRlNFVF9QTFVTXzFfVkFMVUUgPSA2OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggb2Zmc2V0IG1pbnVzIG9uZSB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4gTWF5IG5vdAorICAgICAqIGFjdHVhbGx5IGJlIGVxdWFsIHRvIHRoZSBlcG9jaCBvZmZzZXQgdmFsdWUgbWludXMgb25lLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRSA9IDc7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSB1bml0cyByb3VuZCB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JVFNfUk9VTkRfVkFMVUUgPSA4OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWluaW11bSBzYWZlIHJvdW5kaW5nIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fUk9VTkRfVkFMVUUgPSA5OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWF4aW11bSBzYWZlIHJvdW5kaW5nIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfUk9VTkRfVkFMVUUgPSAxMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIHRpbWUgc2NhbGUgdmFsdWVzLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9TQ0FMRV9WQUxVRSA9IDExOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdGlja3MgICAgICAgID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pY3Jvc2Vjb25kcyA9IHRpY2tzICogMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaWxsaXNlY29uZHMgPSBtaWNyb3NlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2Vjb25kcyAgICAgID0gbWlsbGlzZWNvbmRzICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbnV0ZXMgICAgICA9IHNlY29uZHMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGhvdXJzICAgICAgICA9IG1pbnV0ZXMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGRheXMgICAgICAgICA9IGhvdXJzICogMjQ7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBjbGFzcyBob2xkcyB0aGUgZGF0YSB0aGF0IGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIKKyAgICAgKiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGltZVNjYWxlRGF0YQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YShsb25nIHRoZVVuaXRzLCBsb25nIHRoZUVwb2NoT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRoZVRvTWluLCBsb25nIHRoZVRvTWF4LAorICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRoZUZyb21NaW4sIGxvbmcgdGhlRnJvbU1heCkKKyAgICAgICAgeworICAgICAgICAgICAgdW5pdHMgICAgICA9IHRoZVVuaXRzOworICAgICAgICAgICAgdW5pdHNSb3VuZCA9IHRoZVVuaXRzIC8gMjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWluUm91bmQgPSBMb25nLk1JTl9WQUxVRSArIHVuaXRzUm91bmQ7CisgICAgICAgICAgICBtYXhSb3VuZCA9IExvbmcuTUFYX1ZBTFVFIC0gdW5pdHNSb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZXBvY2hPZmZzZXQgICA9IHRoZUVwb2NoT2Zmc2V0IC8gdGhlVW5pdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGVVbml0cyA9PSAxKSB7CisgICAgICAgICAgICAgICAgZXBvY2hPZmZzZXRQMSA9IGVwb2NoT2Zmc2V0TTEgPSBlcG9jaE9mZnNldDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXBvY2hPZmZzZXRQMSA9IGVwb2NoT2Zmc2V0ICsgMTsKKyAgICAgICAgICAgICAgICBlcG9jaE9mZnNldE0xID0gZXBvY2hPZmZzZXQgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0b01pbiA9IHRoZVRvTWluOworICAgICAgICAgICAgdG9NYXggPSB0aGVUb01heDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZnJvbU1pbiA9IHRoZUZyb21NaW47CisgICAgICAgICAgICBmcm9tTWF4ID0gdGhlRnJvbU1heDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9uZyB1bml0czsKKyAgICAgICAgbG9uZyBlcG9jaE9mZnNldDsKKyAgICAgICAgbG9uZyBmcm9tTWluOworICAgICAgICBsb25nIGZyb21NYXg7CisgICAgICAgIGxvbmcgdG9NaW47CisgICAgICAgIGxvbmcgdG9NYXg7CisgICAgICAgIAorICAgICAgICBsb25nIGVwb2NoT2Zmc2V0UDE7CisgICAgICAgIGxvbmcgZXBvY2hPZmZzZXRNMTsKKyAgICAgICAgbG9uZyB1bml0c1JvdW5kOworICAgICAgICBsb25nIG1pblJvdW5kOworICAgICAgICBsb25nIG1heFJvdW5kOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUaW1lU2NhbGVEYXRhW10gdGltZVNjYWxlVGFibGUgPSB7CisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKG1pbGxpc2Vjb25kcywgNjIxMzU1OTY4MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzQ5OTlMLCA5MjIzMzcyMDM2ODU0Nzc0OTk5TCwgLTk4NDQ3MjgwMDQ4NTQ3N0wsICAgICAgICAgODYwMjAxNjA2ODg1NDc3TCksIC8vIEpBVkFfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YShzZWNvbmRzLCAgICAgIDYyMTM1NTk2ODAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wsIC05ODQ0NzI4MDA0ODVMLCAgICAgICAgICAgICAgIDg2MDIwMTYwNjg4NUwpLCAvLyBVTklYX1RJTUUKKyAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEobWlsbGlzZWNvbmRzLCA2MjEzNTU5NjgwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NDk5OUwsIDkyMjMzNzIwMzY4NTQ3NzQ5OTlMLCAtOTg0NDcyODAwNDg1NDc3TCwgICAgICAgICA4NjAyMDE2MDY4ODU0NzdMKSwgLy8gSUNVNENfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YSh0aWNrcywgICAgICAgIDUwNDkxMTIzMjAwMDAwMDAwMEwsIC04NzE4NDYwODA0ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgODcxODQ2MDgwNDg1NDc3NTgwN0wpLCAvLyBXSU5ET1dTX0ZJTEVfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YSh0aWNrcywgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wpLCAvLyBET1RORVRfREFURV9USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHNlY29uZHMsICAgICAgNjAwNTI3NTIwMDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTk4MjM4OTk1NTY4NUwsICAgICAgICAgICAgICAgODYyMjg0NDUxNjg1TCksIC8vIE1BQ19PTERfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YShzZWNvbmRzLCAgICAgIDYzMTEzOTA0MDAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wsIC05ODU0NTExMDc2ODVMLCAgICAgICAgICAgICAgIDg1OTIyMzI5OTY4NUwpLCAvLyBNQUNfVElNRQorICAgICAgICBuZXcgVGltZVNjYWxlRGF0YShkYXlzLCAgICAgICAgIDU5OTI2NTIxNjAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc1ODA4TCwgOTIyMzM3MjAzNjg1NDc3NTgwN0wsIC0xMTM2ODc5M0wsICAgICAgICAgICAgICAgICAgICAgICAgOTk4MTYwNUwpLCAvLyBFWENFTF9USU1FCisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKGRheXMsICAgICAgICAgNTk5MjY1MjE2MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTExMzY4NzkzTCwgICAgICAgICAgICAgICAgICAgICAgICA5OTgxNjA1TCkgIC8vIERCMl9USU1FCisgICAgfTsKKyAgICAKKyAgICAKKyAgICAvKgorICAgICAqIFByZXZlbnQgY29uc3RydWN0aW9uIG9mIHRoaXMgY2xhc3MuCisgICAgICovCisgICAgcHJpdmF0ZSBVbml2ZXJzYWxUaW1lU2NhbGUoKQorICAgIHsKKyAgICAgICAgLy8gbm90aGluZyB0byBkbworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+bG9uZzwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCBmcm9tCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGxvbmcgZnJvbShsb25nIG90aGVyVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGZyb21SYW5nZUNoZWNrKG90aGVyVGltZSwgdGltZVNjYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIChvdGhlclRpbWUgKyBkYXRhLmVwb2NoT2Zmc2V0KSAqIGRhdGEudW5pdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIDxjb2RlPmRvdWJsZTwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICogQWxsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUKKyAgICAgKiBkb2VzIG5vdCBnbyBvdXQgb2YgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5kb3VibGU8L2NvZGU+IGRhdGV0aW1lCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IGZyb20KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXRldGltZSBjb252ZXJ0ZWQgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCBiaWdEZWNpbWFsRnJvbShkb3VibGUgb3RoZXJUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhICAgICA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCBvdGhlciAgICAgICA9IG5ldyBCaWdEZWNpbWFsKFN0cmluZy52YWx1ZU9mKG90aGVyVGltZSkpOworICAgICAgICBCaWdEZWNpbWFsIHVuaXRzICAgICAgID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdGhlci5hZGQoZXBvY2hPZmZzZXQpLm11bHRpcGx5KHVuaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+bG9uZzwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICogQWxsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUKKyAgICAgKiBkb2VzIG5vdCBnbyBvdXQgb2YgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCBmcm9tCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgYmlnRGVjaW1hbEZyb20obG9uZyBvdGhlclRpbWUsIGludCB0aW1lU2NhbGUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgICAgID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICBCaWdEZWNpbWFsIG90aGVyICAgICAgID0gbmV3IEJpZ0RlY2ltYWwob3RoZXJUaW1lKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyAgICAgICA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gb3RoZXIuYWRkKGVwb2NoT2Zmc2V0KS5tdWx0aXBseSh1bml0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGRhdGV0aW1lIGZyb20gdGhlIGdpdmVuIHRpbWUgc2NhbGUgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlLgorICAgICAqIEFsbCBjYWxjdWxhdGlvbnMgYXJlIGRvbmUgdXNpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlCisgICAgICogZG9lcyBub3QgZ28gb3V0IG9mIHJhbmdlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyVGltZSBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZGF0ZXRpbWUKKyAgICAgKiBAcGFyYW0gdGltZVNjYWxlIFRoZSB0aW1lIHNjYWxlIHRvIGNvbnZlcnQgZnJvbQorICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIGJpZ0RlY2ltYWxGcm9tKEJpZ0RlY2ltYWwgb3RoZXJUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICAKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gb3RoZXJUaW1lLmFkZChlcG9jaE9mZnNldCkubXVsdGlwbHkodW5pdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSBzdG9yZWQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICAgICogPGNvZGU+bG9uZzwvY29kZT4gaW4gdGhlIGdpdmVuIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBTaW5jZSB0aGlzIGNhbGN1bGF0aW9uIHJlcXVpcmVzIGEgZGl2aWRlLCB3ZSBtdXN0IHJvdW5kLiBUaGUgc3RyYWlnaHQgZm9yd2FyZAorICAgICAqIHdheSB0byByb3VuZCBieSBhZGRpbmcgaGFsZiBvZiB0aGUgZGl2aXNvciB3aWxsIHB1c2ggdGhlIHN1bSBvdXQgb2YgcmFuZ2UgZm9yIHZhbHVlcworICAgICAqIHdpdGhpbiBoYXZlIHRoZSBkaXZpc29yIG9mIHRoZSBsaW1pdHMgb2YgdGhlIHByZWNpc2lvbiBvZiBhIDxjb2RlPmxvbmc8L2NvZGU+LiBUbyBnZXQgYXJvdW5kIHRoaXMsIHdlIGRvCisgICAgICogdGhlIHJvdW5kaW5nIGxpa2UgdGhpczoKKyAgICAgKiAKKyAgICAgKiA8cD48Y29kZT4KKyAgICAgKiAodW5pdmVyc2FsVGltZSAtIHVuaXRzICsgdW5pdHMvMikgLyB1bml0cyArIDEKKyAgICAgKiA8L2NvZGU+CisgICAgICogCisgICAgICogPHA+CisgICAgICogKGkuZS4gd2Ugc3VidHJhY3QgdW5pdHMgZmlyc3QgdG8gZ3VhcmFudGVlIHRoYXQgd2UnbGwgc3RpbGwgYmUgaW4gcmFuZ2Ugd2hlbiB3ZQorICAgICAqIGFkZCA8Y29kZT51bml0cy8yPC9jb2RlPi4gV2UgdGhlbiBuZWVkIHRvIGFkZCBvbmUgdG8gdGhlIHF1b3RlbnQgdG8gbWFrZSB1cCBmb3IgdGhlIGV4dHJhIHN1YnRyYWN0aW9uLgorICAgICAqIFRoaXMgc2ltcGxpZmllcyB0bzoKKyAgICAgKiAKKyAgICAgKiA8cD48Y29kZT4KKyAgICAgKiAodW5pdmVyc2FsVGltZSAtIHVuaXRzLzIpIC8gdW5pdHMgLSAxCisgICAgICogPC9jb2RlPgorICAgICAqIAorICAgICAqIDxwPgorICAgICAqIEZvciBuZWdhdGl2ZSB2YWx1ZXMgdG8gcm91bmQgYXdheSBmcm9tIHplcm8sIHdlIG5lZWQgdG8gZmxpcCB0aGUgc2lnbnM6CisgICAgICogCisgICAgICogPHA+PGNvZGU+CisgICAgICogKHVuaXZlcnNhbFRpbWUgKyB1bml0cy8yKSAvIHVuaXRzICsgMQorICAgICAqIDwvY29kZT4KKyAgICAgKiAKKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB3ZSBhbHNvIG5lZWQgdG8gc3VidHJhY3QgdGhlIGVwb2NoT2Zmc2V0LCB3ZSBmb2xkIHRoZSA8Y29kZT4rLy0gMTwvY29kZT4KKyAgICAgKiBpbnRvIHRoZSBvZmZzZXQgdmFsdWUuIChpLmUuIDxjb2RlPmVwb2NoT2Zmc2V0UDE8L2NvZGU+LCA8Y29kZT5lcG9jaE9mZnNldE0xPC9jb2RlPi4pCisgICAgICogCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGxvbmcgdG9Mb25nKGxvbmcgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IHRvUmFuZ2VDaGVjayh1bml2ZXJzYWxUaW1lLCB0aW1lU2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHVuaXZlcnNhbFRpbWUgPCAwKSB7CisgICAgICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA8IGRhdGEubWluUm91bmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHVuaXZlcnNhbFRpbWUgKyBkYXRhLnVuaXRzUm91bmQpIC8gZGF0YS51bml0cyAtIGRhdGEuZXBvY2hPZmZzZXRQMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuICh1bml2ZXJzYWxUaW1lIC0gZGF0YS51bml0c1JvdW5kKSAvIGRhdGEudW5pdHMgLSBkYXRhLmVwb2NoT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA+IGRhdGEubWF4Um91bmQpIHsKKyAgICAgICAgICAgIHJldHVybiAodW5pdmVyc2FsVGltZSAtIGRhdGEudW5pdHNSb3VuZCkgLyBkYXRhLnVuaXRzIC0gZGF0YS5lcG9jaE9mZnNldE0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gKHVuaXZlcnNhbFRpbWUgKyBkYXRhLnVuaXRzUm91bmQpIC8gZGF0YS51bml0cyAtIGRhdGEuZXBvY2hPZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKGxvbmcgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSAgICAgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdmVyc2FsICAgPSBuZXcgQmlnRGVjaW1hbCh1bml2ZXJzYWxUaW1lKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyAgICAgICA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdW5pdmVyc2FsLmRpdmlkZSh1bml0cywgQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKS5zdWJ0cmFjdChlcG9jaE9mZnNldCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKEJpZ0RlY2ltYWwgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSAgICAgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdHMgICAgICAgPSBuZXcgQmlnRGVjaW1hbChkYXRhLnVuaXRzKTsKKyAgICAgICAgQmlnRGVjaW1hbCBlcG9jaE9mZnNldCA9IG5ldyBCaWdEZWNpbWFsKGRhdGEuZXBvY2hPZmZzZXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHVuaXZlcnNhbFRpbWUuZGl2aWRlKHVuaXRzLCBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApLnN1YnRyYWN0KGVwb2NoT2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSA8Y29kZT5UaW1lU2NhbGVEYXRhPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBnaXZlbiB0aW1lCisgICAgICogc2NhbGUuCisgICAgICogCisgICAgICogQHBhcmFtIHNjYWxlIC0gdGhlIHRpbWUgc2NhbGUKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRoZSA8Y29kZT5UaW1lU2NhbGVEYXRhPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVGltZVNjYWxlRGF0YSBnZXRUaW1lU2NhbGVEYXRhKGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIGlmIChzY2FsZSA8IDAgfHwgc2NhbGUgPj0gTUFYX1NDQUxFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzY2FsZSBvdXQgb2YgcmFuZ2U6ICIgKyBzY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aW1lU2NhbGVUYWJsZVtzY2FsZV07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc2NhbGUgLSB0aGUgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB2YWx1ZSAtIGEgY29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSB0byBnZXQKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIC0gdGhlIHZhbHVlLgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBsb25nIGdldFRpbWVTY2FsZVZhbHVlKGludCBzY2FsZSwgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YShzY2FsZSk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKHZhbHVlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgVU5JVFNfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gZGF0YS51bml0czsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEVQT0NIX09GRlNFVF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0OworICAgICAgICAKKyAgICAgICAgY2FzZSBGUk9NX01JTl9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmZyb21NaW47CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBGUk9NX01BWF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmZyb21NYXg7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBUT19NSU5fVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gZGF0YS50b01pbjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFRPX01BWF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnRvTWF4OworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRVBPQ0hfT0ZGU0VUX1BMVVNfMV9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0UDE7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0TTE7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTklUU19ST1VORF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnVuaXRzUm91bmQ7CisgICAgICAgIAorICAgICAgICBjYXNlIE1JTl9ST1VORF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLm1pblJvdW5kOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTUFYX1JPVU5EX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEubWF4Um91bmQ7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInZhbHVlIG91dCBvZiByYW5nZTogIiArIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lU2NhbGVEYXRhIHRvUmFuZ2VDaGVjayhsb25nIHVuaXZlcnNhbFRpbWUsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGdldFRpbWVTY2FsZURhdGEoc2NhbGUpOworICAgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA+PSBkYXRhLnRvTWluICYmIHVuaXZlcnNhbFRpbWUgPD0gZGF0YS50b01heCkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVuaXZlcnNhbFRpbWUgb3V0IG9mIHJhbmdlOiIgKyB1bml2ZXJzYWxUaW1lKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVGltZVNjYWxlRGF0YSBmcm9tUmFuZ2VDaGVjayhsb25nIG90aGVyVGltZSwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YShzY2FsZSk7CisgICAgICAgICAgCisgICAgICAgIGlmIChvdGhlclRpbWUgPj0gZGF0YS5mcm9tTWluICYmIG90aGVyVGltZSA8PSBkYXRhLmZyb21NYXgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYXRhOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJvdGhlclRpbWUgb3V0IG9mIHJhbmdlOiIgKyBvdGhlclRpbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgdGltZSBpbiB0aGUgVW5pdmVyc2FsIFRpbWUgU2NhbGUgaW50byBhbm90aGVyIHRpbWUKKyAgICAgKiBzY2FsZS4gVGhlIGRpdmlzaW9uIHVzZWQgdG8gZG8gdGhlIGNvbnZlcnNpb24gcm91bmRzIGRvd24uCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCByb3V0aW5lIHVzZWQgYnkgdGhlIHRvb2wgdGhhdAorICAgICAqIGdlbmVyYXRlcyB0aGUgdG8gYW5kIGZyb20gbGltaXRzLiBVc2UgaXQgYXQgeW91ciBvd24gcmlzay4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdW5pdmVyc2FsVGltZSB0aGUgdGltZSBpbiB0aGUgVW5pdmVyc2FsIFRpbWUgc2NhbGUKKyAgICAgKiBAcGFyYW0gdGltZVNjYWxlIHRoZSB0aW1lIHNjYWxlIHRvIGNvbnZlcnQgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIHRvQmlnRGVjaW1hbFRydW5jKEJpZ0RlY2ltYWwgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdW5pdmVyc2FsVGltZS5kaXZpZGUodW5pdHMsIEJpZ0RlY2ltYWwuUk9VTkRfRE9XTikuc3VidHJhY3QoZXBvY2hPZmZzZXQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTNjNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTA5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHA+SW50ZXJmYWNlIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBzZXRzIG9mIDxpbnQsIE9iamVjdD4sIHdoZXJlCisgKiBpbnQgaXMgdGhlIHNvcnRlZCBpbnRlZ2VyIGluZGV4IGluIGFzY2VuZGluZyBvcmRlciBhbmQgT2JqZWN0LCBpdHMgCisgKiBhc3NvY2lhdGVkIHZhbHVlLjwvcD4KKyAqIDxwPlRoZSBWYWx1ZUl0ZXJhdG9yIGFsbG93cyBpdGVyYXRpb25zIG92ZXIgaW50ZWdlciBpbmRleGVzIGluIHRoZSByYW5nZSAKKyAqIG9mIEludGVnZXIuTUlOX1ZBTFVFIHRvIEludGVnZXIuTUFYX1ZBTFVFIGluY2x1c2l2ZS4gSW1wbGVtZW50YXRpb25zIG9mIAorICogVmFsdWVJdGVyYXRvciBzaG91bGQgc3BlY2lmeSB0aGVpciBvd24gbWF4aW11bSBzdWJyYW5nZSB3aXRoaW4gdGhlIGFib3ZlIAorICogcmFuZ2UgdGhhdCBpcyBtZWFuaW5nZnVsIHRvIGl0cyBhcHBsaWNhdGlvbnMuPC9wPgorICogPHA+TW9zdCBpbXBsZW1lbnRhdGlvbnMgd2lsbCBiZSBjcmVhdGVkIGJ5IGZhY3RvcnkgbWV0aG9kcywgc3VjaCBhcyB0aGUKKyAqIGNoYXJhY3RlciBuYW1lIGl0ZXJhdG9yIGluIFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yLiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAqIDwvcD4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKTsKKyAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgKiBpdGVyYXRvci5zZXRSYW5nZShVQ2hhcmFjdGVyLk1JTl9WQUxVRSwgVUNoYXJhY3Rlci5NQVhfVkFMVUUpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuaW50ZWdlcikgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIGNoYXJhY3RlciBuYW1lICIgKyAoU3RyaW5nKXJlc3VsdC52YWx1ZSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLworcHVibGljIGludGVyZmFjZSBWYWx1ZUl0ZXJhdG9yCit7CisgICAgLy8gcHVibGljIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+VGhlIHJldHVybiByZXN1bHQgY29udGFpbmVyIG9mIGVhY2ggaXRlcmF0aW9uLiBTdG9yZXMgdGhlIG5leHQgCisgICAgKiBpbnRlZ2VyIGluZGV4IGFuZCBpdHMgYXNzb2NpYXRlZCB2YWx1ZSBPYmplY3QuPC9wPiAKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFbGVtZW50CisgICAgeworICAgICAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIEludGVnZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgaW50ZWdlcjsKKyAgICAgICAgLyoqCisgICAgICAgICogR2V0cyB0aGUgT2JqZWN0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZWdlciBpbmRleC4KKyAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBPYmplY3QgdmFsdWU7CisgICAgICAgIAorICAgICAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgZGVmYXVsdCBjb25zdHJ1Y3RvciB0byBtYWtlIGphdmFkb2MgaGFwcHkKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRWxlbWVudCgpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGluZGV4IGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChFbGVtZW50IGVsZW1lbnQpOworICAgIAorICAgIC8qKgorICAgICogPHA+UmVzZXRzIHRoZSBpdGVyYXRvciB0byBzdGFydCBpdGVyYXRpbmcgZnJvbSB0aGUgaW50ZWdlciBpbmRleCAKKyAgICAqIEludGVnZXIuTUlOX1ZBTFVFIG9yIFggaWYgYSBzZXRSYW5nZShYLCBZKSBoYXMgYmVlbiBjYWxsZWQgcHJldmlvdXNseS4KKyAgICAqIDwvcD4KKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5SZXN0cmljdHMgdGhlIHJhbmdlIG9mIGludGVnZXJzIHRvIGl0ZXJhdGUgYW5kIHJlc2V0cyB0aGUgaXRlcmF0aW9uIAorICAgICAqIHRvIGJlZ2luIGF0IHRoZSBpbmRleCBhcmd1bWVudCBzdGFydC48L3A+CisgICAgICogPHA+SWYgc2V0UmFuZ2Uoc3RhcnQsIGVuZCkgaXMgbm90IHBlcmZvcm1lZCBiZWZvcmUgbmV4dChlbGVtZW50KSBpcyAKKyAgICAgKiBjYWxsZWQsIHRoZSBpdGVyYXRpb24gd2lsbCBzdGFydCBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4IAorICAgICAqIEludGVnZXIuTUlOX1ZBTFVFIGFuZCBlbmQgYXQgSW50ZWdlci5NQVhfVkFMVUUuPC9wPgorICAgICAqIDxwPgorICAgICAqIElmIHRoaXMgcmFuZ2UgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2Ugc3BlY2lmaWVkIGJ5IHRoZSAKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiwgbmV4dChlbGVtZW50KSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBpbnRlZ2VyIGluIHRoZSByYW5nZSB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGxpbWl0IG9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgaW50ZWdlciBpbiB0aGUgcmFuZ2UgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgYW4gCisgICAgICogICAgICAgICAgICBpbGxlZ2FsIHJhbmdlLiBFLmcgbGltaXQgPD0gc3RhcnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmVyc2lvbkluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmViOTU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmVyc2lvbkluZm8uamF2YQpAQCAtMCwwICsxLDQ3OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKKy8qKgorICogQ2xhc3MgdG8gc3RvcmUgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBmb3JtIG1ham9yLm1pbm9yLm1pbGxpLm1pY3JvLgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuNgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVmVyc2lvbkluZm8KK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4wLjEgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8xXzBfMTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDEuMS4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8xXzA7CisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjEuNSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzFfMV81OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjIgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfMjsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDIuMS41IHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8xXzU7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjEuOCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMV84OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjkgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfOTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMDsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMC4xIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18wXzE7CisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjEuMCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMV8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4xLjEgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8zXzFfMTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMiB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMjsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGUgNC4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8wOworCisgICAgLyoqCisgICAgICogVW5pY29kZSA0LjAuMSB2ZXJzaW9uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8wXzE7CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDQuMSB2ZXJzaW9uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8xOworCisgICAgLyoqCisgICAgICogVW5pY29kZSA1LjAgdmVyc2lvbgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzVfMDsKKworICAgIC8qKgorICAgICAqIElDVTRKIGN1cnJlbnQgcmVsZWFzZSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBJQ1VfVkVSU0lPTjsKKworICAgIC8qKgorICAgICAqIERhdGEgdmVyc2lvbiBzdHJpbmcgZm9yIElDVSdzIGludGVybmFsIGRhdGEKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfREFUQV9WRVJTSU9OID0gIjM2YiI7CisKKyAgICAvKioKKyAgICAgKiBJQ1U0SiBjb2xsYXRvciBydW50aW1lIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVDT0xfUlVOVElNRV9WRVJTSU9OOworCisgICAgLyoqCisgICAgICogSUNVNEogY29sbGF0b3IgYnVpbGRlciB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVQ09MX0JVSUxERVJfVkVSU0lPTjsKKworICAgIC8qKgorICAgICAqIElDVTRKIGNvbGxhdG9yIHRhaWxvcmluZ3MgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVUNPTF9UQUlMT1JJTkdTX1ZFUlNJT047CisKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEBwYXJhbSB2ZXJzaW9uIHZlcnNpb24gU3RyaW5nIGluIHRoZSBmb3JtYXQgb2YgIm1ham9yLm1pbm9yLm1pbGxpLm1pY3JvIgorICAgICAqICAgICAgICAgICAgICAgIG9yICJtYWpvci5taW5vci5taWxsaSIgb3IgIm1ham9yLm1pbm9yIiBvciAibWFqb3IiLAorICAgICAqICAgICAgICAgICAgICAgIHdoZXJlIG1ham9yLCBtaW5vciwgbWlsbGksIG1pY3JvIGFyZSBub24tbmVnYXRpdmUgbnVtYmVycworICAgICAqICAgICAgICAgICAgICAgIDw9IDI1NS4gSWYgdGhlIHRyYWlsaW5nIHZlcnNpb24gbnVtYmVycyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICBub3Qgc3BlY2lmaWVkIHRoZXkgYXJlIHRha2VuIGFzIDBzLiBFLmcuIFZlcnNpb24gIjMuMSIgaXMKKyAgICAgKiAgICAgICAgICAgICAgICBlcXVpdmFsZW50IHRvICIzLjEuMC4wIi4KKyAgICAgKiBAcmV0dXJuIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gdGhlIGFyZ3VtZW50IHZlcnNpb24KKyAgICAgKiAgICAgICAgICAgICAgICBpcyBub3QgaW4gdGhlIHJpZ2h0IGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoU3RyaW5nIHZlcnNpb24pCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoICA9IHZlcnNpb24ubGVuZ3RoKCk7CisgICAgICAgIGludCBhcnJheVtdID0gezAsIDAsIDAsIDB9OworICAgICAgICBpbnQgY291bnQgICA9IDA7CisgICAgICAgIGludCBpbmRleCAgID0gMDsKKworICAgICAgICB3aGlsZSAoY291bnQgPCA0ICYmIGluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB2ZXJzaW9uLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGMgLT0gJzAnOworICAgICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBjID4gOSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKElOVkFMSURfVkVSU0lPTl9OVU1CRVJfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJyYXlbY291bnRdICo9IDEwOworICAgICAgICAgICAgICAgIGFycmF5W2NvdW50XSArPSBjOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ICE9IGxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgdmVyc2lvbiBudW1iZXI6IFN0cmluZyAnIiArIHZlcnNpb24gKyAiJyBleGNlZWRzIHZlcnNpb24gZm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpICsrKSB7CisgICAgICAgICAgICBpZiAoYXJyYXlbaV0gPCAwIHx8IGFycmF5W2ldID4gMjU1KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJTlZBTElEX1ZFUlNJT05fTlVNQkVSXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoYXJyYXlbMF0sIGFycmF5WzFdLCBhcnJheVsyXSwgYXJyYXlbM10pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBAcGFyYW0gbWFqb3IgbWFqb3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbm9yIG1pbm9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaWxsaSBtaWxsaSB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWljcm8gbWljcm8gdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWl0aGVyIGFyZ3VtZW50cyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZSBvciA+IDI1NQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yLCBpbnQgbWlub3IsIGludCBtaWxsaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaWNybykKKyAgICB7CisgICAgICAgIC8vIGNoZWNrcyBpZiBpdCBpcyBpbiB0aGUgaGFzaG1hcAorICAgICAgICAvLyBlbHNlCisgICAgICAgIGlmIChtYWpvciA8IDAgfHwgbWFqb3IgPiAyNTUgfHwgbWlub3IgPCAwIHx8IG1pbm9yID4gMjU1IHx8CisgICAgICAgICAgICBtaWxsaSA8IDAgfHwgbWlsbGkgPiAyNTUgfHwgbWljcm8gPCAwIHx8IG1pY3JvID4gMjU1KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKElOVkFMSURfVkVSU0lPTl9OVU1CRVJfKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgICAgIHZlcnNpb24gPSBnZXRJbnQobWFqb3IsIG1pbm9yLCBtaWxsaSwgbWljcm8pOworICAgICAgICBJbnRlZ2VyIGtleSAgICAgPSBuZXcgSW50ZWdlcih2ZXJzaW9uKTsKKyAgICAgICAgT2JqZWN0ICByZXN1bHQgID0gTUFQXy5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVmVyc2lvbkluZm8odmVyc2lvbik7CisgICAgICAgICAgICBNQVBfLnB1dChrZXksIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChWZXJzaW9uSW5mbylyZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8gZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yLCBtaWxsaSwgMCkuCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaW5vciBtaW5vciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlsbGkgbWlsbGkgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWl0aGVyIGFyZ3VtZW50cyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZSBvciA+IDI1NQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yLCBpbnQgbWlub3IsIGludCBtaWxsaSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtYWpvciwgbWlub3IsIG1pbGxpLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogRXF1aXZhbGVudCB0byBnZXRJbnN0YW5jZShtYWpvciwgbWlub3IsIDAsIDApLgorICAgICAqIEBwYXJhbSBtYWpvciBtYWpvciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlub3IgbWlub3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWl0aGVyIGFyZ3VtZW50cyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZSBvciA+IDI1NQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yLCBpbnQgbWlub3IpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yLCAwLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogRXF1aXZhbGVudCB0byBnZXRJbnN0YW5jZShtYWpvciwgMCwgMCwgMCkuCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKGludCBtYWpvcikKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtYWpvciwgMCwgMCwgMCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbkluZm8gamF2YVZlcnNpb247CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGphdmFWZXJzaW9uKCkgeworICAgICAgICBpZiAoamF2YVZlcnNpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgICAgICAgICAgLy8gY2xlYW4gc3RyaW5nCisgICAgICAgICAgICAvLyBwcmVzZXJ2ZSBvbmx5IGRpZ2l0cywgc2VwYXJhdGVkIGJ5IHNpbmdsZSAnLicKKyAgICAgICAgICAgIC8vIGlnbm9yZSBvdmVyIDQgZGlnaXQgc2VxdWVuY2VzCisgICAgICAgICAgICAvLyBkb2VzIG5vdCB0ZXN0IDwgMjU1LCB2ZXJ5IG9kZC4uLgorCisgICAgICAgICAgICBjaGFyW10gY2hhcnMgPSBzLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBpbnQgciA9IDAsIHcgPSAwLCBjb3VudCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG51bWVyaWMgPSBmYWxzZTsgLy8gaWdub3JlIGxlYWRpbmcgbm9uLW51bWVyaWNzCisgICAgICAgICAgICB3aGlsZSAociA8IGNoYXJzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzW3IrK107CisgICAgICAgICAgICAgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykgeworICAgICAgICAgICAgICAgICAgICBpZiAobnVtZXJpYykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGZvdXIgZGlnaXQgc3RyaW5ncyBhbGxvd2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBudW1lcmljID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc1t3KytdID0gJy4nOworICAgICAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG51bWVyaWMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjaGFyc1t3KytdID0gYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAodyA+IDAgJiYgY2hhcnNbdy0xXSA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAtLXc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyB2cyA9IG5ldyBTdHJpbmcoY2hhcnMsIDAsIHcpOworCisgICAgICAgICAgICBqYXZhVmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKHZzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gamF2YVZlcnNpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgU3RyaW5nIHJlcHJlc2VudGF0aXZlIG9mIFZlcnNpb25JbmZvIGluIHRoZSBmb3JtYXQgb2YKKyAgICAgKiAibWFqb3IubWlub3IubWlsbGkubWljcm8iCisgICAgICogQHJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpdmUgb2YgVmVyc2lvbkluZm8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKDcpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1ham9yKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TWlub3IoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRNaWxsaSgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1pY3JvKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWFqb3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX3ZlcnNpb25fID4+IDI0KSAmIExBU1RfQllURV9NQVNLXyA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWlub3IgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWlub3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX3ZlcnNpb25fID4+IDE2KSAmIExBU1RfQllURV9NQVNLXyA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWlsbGkgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsaSB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWlsbGkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX3ZlcnNpb25fID4+IDgpICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaWNybyB2ZXJzaW9uIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG1pY3JvIHZlcnNpb24gbnVtYmVyCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaWNybygpCisgICAgeworICAgICAgICByZXR1cm4gbV92ZXJzaW9uXyAmIExBU1RfQllURV9NQVNLXyA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoaXMgdmVyc2lvbiBpbmZvcm1hdGlvbiBpcyBlcXVhbHMgdG8gdGhlIGFyZ3VtZW50IHZlcnNpb24KKyAgICAgKiBAcGFyYW0gb3RoZXIgb2JqZWN0IHRvIGJlIGNvbXBhcmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIG90aGVyIGlzIGVxdWFscyB0byB0aGlzIG9iamVjdCdzIHZlcnNpb24gaW5mb3JtYXRpb24sCisgICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG90aGVyID09IHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgb3RoZXIgd2l0aCB0aGlzIFZlcnNpb25JbmZvLgorICAgICAqIEBwYXJhbSBvdGhlciBWZXJzaW9uSW5mbyB0byBiZSBjb21wYXJlZAorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgYXJndW1lbnQgaXMgYSBWZXJzaW9uSW5mbyBvYmplY3QgdGhhdCBoYXMgdmVyc2lvbgorICAgICAqICAgICAgICAgICBpbmZvcm1hdGlvbiBlcXVhbHMgdG8gdGhpcyBvYmplY3QuCisgICAgICogICAgICAgICAgIExlc3MgdGhhbiAwIGlmIHRoZSBhcmd1bWVudCBpcyBhIFZlcnNpb25JbmZvIG9iamVjdCB0aGF0IGhhcworICAgICAqICAgICAgICAgICB2ZXJzaW9uIGluZm9ybWF0aW9uIGdyZWF0ZXIgdGhhbiB0aGlzIG9iamVjdC4KKyAgICAgKiAgICAgICAgICAgR3JlYXRlciB0aGFuIDAgaWYgdGhlIGFyZ3VtZW50IGlzIGEgVmVyc2lvbkluZm8gb2JqZWN0IHRoYXQKKyAgICAgKiAgICAgICAgICAgaGFzIHZlcnNpb24gaW5mb3JtYXRpb24gbGVzcyB0aGFuIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKFZlcnNpb25JbmZvIG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmVyc2lvbl8gLSBvdGhlci5tX3ZlcnNpb25fOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFZlcnNpb24gbnVtYmVyIHN0b3JlZCBhcyBhIGJ5dGUgZm9yIGVhY2ggb2YgdGhlIG1ham9yLCBtaW5vciwgbWlsbGkgYW5kCisgICAgICogbWljcm8gbnVtYmVycyBpbiB0aGUgMzIgYml0IGludC4KKyAgICAgKiBNb3N0IHNpZ25pZmljYW50IGZvciB0aGUgbWFqb3IgYW5kIHRoZSBsZWFzdCBzaWduaWZpY2FudCBjb250YWlucyB0aGUKKyAgICAgKiBtaWNybyBudW1iZXJzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdmVyc2lvbl87CisgICAgLyoqCisgICAgICogTWFwIG9mIHNpbmdsZXRvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNoTWFwIE1BUF8gPSBuZXcgSGFzaE1hcCgpOworICAgIC8qKgorICAgICAqIExhc3QgYnl0ZSBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisgICAgLyoqCisgICAgICogRXJyb3Igc3RhdGVtZW50IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlZBTElEX1ZFUlNJT05fTlVNQkVSXyA9CisgICAgICAgICJJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiBWZXJzaW9uIG51bWJlciBtYXkgYmUgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIDI1NSI7CisKKyAgICAvLyBzdGF0aWMgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHZlcnNpb25zIG9ubHkgYWZ0ZXIgTUFQXyBoYXMgYmVlbiBjcmVhdGVkCisgICAgICovCisgICAgc3RhdGljIHsKKyAgICAgICAgVU5JQ09ERV8xXzAgICA9IGdldEluc3RhbmNlKDEsIDAsIDAsIDApOworICAgICAgICBVTklDT0RFXzFfMF8xID0gZ2V0SW5zdGFuY2UoMSwgMCwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfMV8xXzAgPSBnZXRJbnN0YW5jZSgxLCAxLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8xXzFfNSA9IGdldEluc3RhbmNlKDEsIDEsIDUsIDApOworICAgICAgICBVTklDT0RFXzJfMCAgID0gZ2V0SW5zdGFuY2UoMiwgMCwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfMl8xXzIgPSBnZXRJbnN0YW5jZSgyLCAxLCAyLCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzFfNSA9IGdldEluc3RhbmNlKDIsIDEsIDUsIDApOworICAgICAgICBVTklDT0RFXzJfMV84ID0gZ2V0SW5zdGFuY2UoMiwgMSwgOCwgMCk7CisgICAgICAgIFVOSUNPREVfMl8xXzkgPSBnZXRJbnN0YW5jZSgyLCAxLCA5LCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzAgICA9IGdldEluc3RhbmNlKDMsIDAsIDAsIDApOworICAgICAgICBVTklDT0RFXzNfMF8xID0gZ2V0SW5zdGFuY2UoMywgMCwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfM18xXzAgPSBnZXRJbnN0YW5jZSgzLCAxLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzFfMSA9IGdldEluc3RhbmNlKDMsIDEsIDEsIDApOworICAgICAgICBVTklDT0RFXzNfMiAgID0gZ2V0SW5zdGFuY2UoMywgMiwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfNF8wICAgPSBnZXRJbnN0YW5jZSg0LCAwLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV80XzBfMSA9IGdldEluc3RhbmNlKDQsIDAsIDEsIDApOworICAgICAgICBVTklDT0RFXzRfMSAgID0gZ2V0SW5zdGFuY2UoNCwgMSwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfNV8wICAgPSBnZXRJbnN0YW5jZSg0LCAxLCAwLCAwKTsKKyAgICAgICAgSUNVX1ZFUlNJT04gICA9IGdldEluc3RhbmNlKDMsIDYsIDAsIDApOworICAgICAgICBVQ09MX1JVTlRJTUVfVkVSU0lPTiA9IGdldEluc3RhbmNlKDYpOworICAgICAgICBVQ09MX0JVSUxERVJfVkVSU0lPTiA9IGdldEluc3RhbmNlKDcpOworICAgICAgICBVQ09MX1RBSUxPUklOR1NfVkVSU0lPTiA9IGdldEluc3RhbmNlKDEpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIHdpdGggaW50CisgICAgICogQHBhcmFtIGNvbXBhY3R2ZXJzaW9uIGEgMzIgYml0IGludCB3aXRoIGVhY2ggYnl0ZSByZXByZXNlbnRpbmcgYSBudW1iZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIFZlcnNpb25JbmZvKGludCBjb21wYWN0dmVyc2lvbikKKyAgICB7CisgICAgICAgIG1fdmVyc2lvbl8gPSBjb21wYWN0dmVyc2lvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBpbnQgZnJvbSB0aGUgdmVyc2lvbiBudW1iZXJzCisgICAgICogQHBhcmFtIG1ham9yIG5vbi1uZWdhdGl2ZSB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBwYXJhbSBtaW5vciBub24tbmVnYXRpdmV2ZXJzaW9uIG51bWJlcgorICAgICAqIEBwYXJhbSBtaWxsaSBub24tbmVnYXRpdmV2ZXJzaW9uIG51bWJlcgorICAgICAqIEBwYXJhbSBtaWNybyBub24tbmVnYXRpdmV2ZXJzaW9uIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRJbnQoaW50IG1ham9yLCBpbnQgbWlub3IsIGludCBtaWxsaSwgaW50IG1pY3JvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtYWpvciA8PCAyNCkgfCAobWlub3IgPDwgMTYpIHwgKG1pbGxpIDw8IDgpIHwgbWljcm87CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJkYzA2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorSW50ZXJuYXRpb25hbCBjYWxlbmRhcnMgYW5kIG90aGVyIHV0aWxpdHkgY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZTY0OWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDIzNiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUJhcjsKK2ltcG9ydCBqYXZhLmF3dC5XaW5kb3c7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuKjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5EaWFsb2dJdGVtLkRpYWxvZ0ZhY3Rvcnk7CisKKy8vIFRPIERPOiAgRG9uJ3QgaGFyZC1jb2RlIG1lbnUgY29uZmlndXJhdGlvbnMuICBJbnN0ZWFkLCBzcGVjaWZ5IHRoZW0gd2l0aAorLy8gc3RyaW5ncyBzb21laG93LiAgVGhpcyBpcyBhbiBpbXByb3ZlbWVudCBvdmVyIHdoYXQgd2UgaGFkLCBhbmQgaXQnbGwgZG8KKy8vIGZvciBub3cuCisKKy8qKgorICogQXd0TWVudUJ1aWxkZXIgY3JlYXRlcyBhIHNldCBvZiBBV1QgbWVudXMgZm9yIGludGVyYWN0aW5nCisgKiB3aXRoIGFuIE1UZXh0UGFuZWwuICBGdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBjbGFzcyBtYXkgYWxsb3cKKyAqIGNsaWVudHMgdG8gY29udHJvbCB0aGUgbWVudSBjb250ZW50cy4KKyAqIEBzZWUgTVRleHRQYW5lbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXd0TWVudUJ1aWxkZXIgZXh0ZW5kcyBNZW51QnVpbGRlciB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBd3RNZW51QnVpbGRlciBJTlNUQU5DRSA9IG5ldyBBd3RNZW51QnVpbGRlcigpOworICAgIAorICAgIC8qKgorICAgICAqIElkIGZvciBhbiBFZGl0IG1lbnUuICBUaGUgRWRpdCBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+VW5kbzwvYj4gLSBpbnZva2UgdW5kbygpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UmVkbzwvYj4gLSBpbnZva2UgcmVkbygpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q3V0PC9iPiAtIGludm9rZSBjdXQoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkNvcHk8L2I+IC0gaW52b2tlIGNvcHkoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlBhc3RlPC9iPiAtIGludm9rZSBwYXN0ZSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q2xlYXI8L2I+IC0gaW52b2tlIGNsZWFyKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5TZWxlY3QgQWxsPC9iPiAtIGludm9rZSBzZWxlY3RBbGwoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFRElUID0gTWVudUJ1aWxkZXIuRURJVDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgdGhlIHBvaW50IHNpemVzIG1lbnUuICBUaGUgbWVudSBoYXMgaXRlbXMgdGhhdCBzZXQgdGhlIHNpemUgb2YgYSBjaGFyYWN0ZXIKKyAgICAgKiBpbiBhIHR5cGVmYWNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJWkUgPSBNZW51QnVpbGRlci5TSVpFOworICAgIC8qKgorICAgICAqIElkIGZvciBhIFN0eWxlIG1lbnUuICBUaGUgU3R5bGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPlBsYWluPC9iPiAtIHJlbW92ZSA8Y29kZT5XRUlHSFQ8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5QT1NUVVJFPC9jb2RlPiwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+VU5ERVJMSU5FPC9jb2RlPiBhbmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+U1RSSUtFVEhST1VHSDwvY29kZT4gYXR0cmlidXRlcyBmcm9tIHRoZQorICAgICAqIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Qm9sZDwvYj4gLSBhZGQgPGNvZGU+e1dFSUdIVCxXRUlHSFRfQk9MRH08L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SXRhbGljPC9iPiAtIGFkZCA8Y29kZT57UE9TVFVSRSxQT1NUVVJFX0lUQUxJQ308L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+VW5kZXJsaW5lPC9iPiAtIGFkZCA8Y29kZT57VU5ERVJMSU5FLFVOREVSTElORV9PTn08L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+U3RyaWtldGhyb3VnaDwvYj4gLSBhZGQgPGNvZGU+e1NUUklLRVRIUk9VR0gsU1RSSUtFVEhST1VHSF9PTn08L2NvZGU+CisgICAgICogdG8gdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Rm9udC4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgdHlwZWZhY2UgKGZvbnQgZmFtaWx5KSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Rm9yZWNvbG9yLi4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSBmb3JlZ3JvdW5kIGNvbG9yIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5CYWNrY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRSA9IE1lbnVCdWlsZGVyLlNUWUxFOworICAgIC8qKgorICAgICAqIElkIGZvciBhIHBhcmFncmFwaCBhbGlnbm1lbnQgbWVudS4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+TGVhZGluZzwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBMRUFESU5HIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+Q2VudGVyPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIENFTlRFUiBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPlRyYWlsaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIFRSQUlMSU5HIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+SnVzdGlmaWVkPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIGZ1bGwganVzdGlmaWNhdGlvbjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTFVTSCA9IE1lbnVCdWlsZGVyLkZMVVNIOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzIHRoZSBLZXlSZW1hcAorICAgICAqIG9uIGFuIE1UZXh0UGFuZWwuICBUaGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRlZmF1bHQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIGlkZW50aXR5IHJlbWFwPC9saT4KKyAgICAgKiA8bGk+PGI+QXJhYmljPC9iPiAtIHNldCBLZXlSZW1hcCB0byBBcmFiaWMgdHJhbnNsaXRlcmF0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SGVicmV3PC9iPiAtIHNldCBLZXlSZW1hcCB0byBIZWJyZXcgdHJhbnNsaXRlcmF0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SXNyYWVsIE5pa3VkPC9iPiAtIHNldCBLZXlSZW1hcCB0byBJc3JhZWwgTmlrdWQ8L2xpPgorICAgICAqIDxsaT48Yj5UaGFpIEtldG1hbmVlPC9iPiAtIHNldCBLZXlSZW1hcCB0byBUaGFpIEtldG1hbmVlPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWU1BUCA9IE1lbnVCdWlsZGVyLktFWU1BUDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHRoYXQgc2V0cworICAgICAqIHRoZSBwcmltYXJ5IHJ1biBkaXJlY3Rpb24gZm9yIGEgcGFyYWdyYXBoLiAgUnVuIGRpcmVjdGlvbiBjYW4gYmUgbGVmdC10by1yaWdodCwKKyAgICAgKiByaWdodC10by1sZWZ0LCBvciBjYW4gdXNlIHRoZSBkZWZhdWx0IHJ1biBkaXJlY3Rpb24gZnJvbSB0aGUgVW5pY29kZSBiaWRpIGFsZ29yaXRobS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJID0gTWVudUJ1aWxkZXIuQklESTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHdpdGggYW4gPGI+QWJvdXQ8L2I+IGl0ZW0uICBXaGVuIHNlbGVjdGVkLCAKKyAgICAgKiB0aGUgaXRlbSBkaXNwbGF5cyBhIEZyYW1lIGNvbnRhaW5pbmcgc29tZQorICAgICAqIHNlbGYtcHJvbW90aW9uYWwgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQk9VVCA9IE1lbnVCdWlsZGVyLkFCT1VUOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhbiBpbnN0YW5jZSBvZiBBd3RNZW51QnVpbGRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEF3dE1lbnVCdWlsZGVyIGdldEluc3RhbmNlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIElOU1RBTkNFOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE1lbnVCYXIgZk1lbnVCYXI7CisgICAgCisgICAgcHJpdmF0ZSBBd3RNZW51QnVpbGRlcigpIHsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc3RhbmRhcmQgc2V0IG9mIG1lbnVzIHRvIHRoZSBnaXZlbiBtZW51IGJhci4gIFRoZSBtZW51cyAKKyAgICAgKiB3aWxsIGludGVyYWN0IHdpdGggdGhlIGdpdmVuIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIG1lbnVCYXIgdGhlIE1lbnVCYXIgdG8gd2hpY2ggbWVudXMgYXJlIGFkZGVkCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB3aXRoIHdoaWNoIHRoZSBtZW51cyBpbnRlcmFjdAorICAgICAqIEBwYXJhbSBmcmFtZSBhIEZyYW1lIHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIGFueSBkaWFsb2dzIGNyZWF0ZWQgYnkgYSAKKyAgICAgKiAgIGEgbWVudSBpdGVtLiAgSWYgbnVsbCwgbWVudSBpdGVtcyB3aGljaCBjcmVhdGUgZGlhbG9ncyB3aWxsIGJlIG9taXR0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoTWVudUJhciBtZW51QmFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSkgeworICAgICAgICAKKyAgICAgICAgY3JlYXRlTWVudXMobWVudUJhciwgdGV4dFBhbmVsLCBmcmFtZSwgZGVmYXVsdE1lbnVzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc2V0IG9mIG1lbnVzIHRvIHRoZSBnaXZlbiBtZW51IGJhci4gIFRoZSBtZW51cyAKKyAgICAgKiB3aWxsIGludGVyYWN0IHdpdGggdGhlIGdpdmVuIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIG1lbnVCYXIgdGhlIE1lbnVCYXIgdG8gd2hpY2ggbWVudXMgYXJlIGFkZGVkCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB3aXRoIHdoaWNoIHRoZSBtZW51cyBpbnRlcmFjdAorICAgICAqIEBwYXJhbSBmcmFtZSBhIEZyYW1lIHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIGFueSBkaWFsb2dzIGNyZWF0ZWQgYnkgYSAKKyAgICAgKiAgIGEgbWVudSBpdGVtLiAgSWYgbnVsbCwgbWVudSBpdGVtcyB3aGljaCBjcmVhdGUgZGlhbG9ncyB3aWxsIGJlIG9taXR0ZWQuCisgICAgICogQHBhcmFtIG1lbnVzIGFuIGFycmF5IG9mIGludGVnZXIgbWVudSBpZCdzLiAgRWFjaCBlbGVtZW50IG9mIHRoZQorICAgICAqICAgYXJyYXkgbXVzdCBiZSBvbmUgb2YgdGhpcyBjbGFzcydzIG1lbnUgaWQgY29uc3RhbnRzLiAgSWYgbnVsbCwKKyAgICAgKiAgIHRoZSBkZWZhdWx0IG1lbnVzIGFyZSBjcmVhdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZU1lbnVzKE1lbnVCYXIgbWVudUJhciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChtZW51cyA9PSBudWxsKSB7CisgICAgICAgICAgICBtZW51cyA9IGRlZmF1bHRNZW51czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3luY2hyb25pemVkIChNSXRlbS5MT0NLKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZNZW51QmFyID0gbWVudUJhcjsKKyAgICAgICAgICAgIGRvQ3JlYXRlTWVudXModGV4dFBhbmVsLCBmcmFtZSwgbWVudXMpOworICAgICAgICAgICAgZk1lbnVCYXIgPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUFkZE1lbnUoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgTWVudSBtZW51ID0gbmV3IE1lbnUoUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhrZXkpKTsKKyAgICAgICAgZk1lbnVCYXIuYWRkKG1lbnUpOworICAgICAgICBNSXRlbS5zZXRJdGVtRmFjdG9yeShuZXcgQXd0TWVudUZhY3RvcnkobWVudSkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAKKyAgICAgICAgZmluYWwgRnJhbWUgZGlhbG9nUGFyZW50ID0gZkRpYWxvZ1BhcmVudDsKKworICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7ICAgIAorICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdERpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KGZpbmFsIFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJEaWFsb2coZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQUJPVVRfVElUTEUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZURpYWxvZyh0aXRsZSwgQWJvdXRUZXh0LmdldEFib3V0VGV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL0F3dE1lbnVGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjdmOGY1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL0F3dE1lbnVGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLmF3dC5DaGVja2JveE1lbnVJdGVtOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUl0ZW07CitpbXBvcnQgamF2YS5hd3QuTWVudVNob3J0Y3V0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NSXRlbTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NSXRlbS5JdGVtRmFjdG9yeTsKKworZmluYWwgY2xhc3MgQXd0TWVudUZhY3RvcnkgaW1wbGVtZW50cyBJdGVtRmFjdG9yeSB7CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBBd3RNSXRlbSBleHRlbmRzIE1JdGVtIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgTWVudUl0ZW0gZkl0ZW07CisgICAgICAgIAorICAgICAgICBBd3RNSXRlbShNZW51SXRlbSBpdGVtKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZJdGVtID0gaXRlbTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hNZW51SXRlbSBjaEl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZkl0ZW07CisgICAgICAgICAgICAgICAgY2hJdGVtLmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFjayAtIGhvdyBkbyB5b3UgZG8gdGhpcyBmcm9tIGlubmVyIGNsYXNzZXM/PworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTZWxlY3RlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIuaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgc2V0U3RhdGUoYm9vbGVhbiBjaGVja2VkKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hNZW51SXRlbSBpdGVtID0gKENoZWNrYm94TWVudUl0ZW0pIGZJdGVtOworICAgICAgICAgICAgICAgIGl0ZW0uc2V0U3RhdGUoY2hlY2tlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBlcmZvcm0gc2V0Q2hlY2tlZCBvbiBub24tY2hlY2tib3ggaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTWVudSBmTWVudTsKKyAgICAgICAgCisgICAgQXd0TWVudUZhY3RvcnkoTWVudSBtZW51KSB7CisgICAgICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE1JdGVtIGhhbmRsZUNyZWF0ZShNZW51SXRlbSBpdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhKSB7CisKKyAgICAgICAgaWYgKG1lbnVEYXRhLmhhc1Nob3J0Y3V0KCkpIHsKKyAgICAgICAgICAgIGl0ZW0uc2V0U2hvcnRjdXQobmV3IE1lbnVTaG9ydGN1dChtZW51RGF0YS5nZXRTaG9ydGN1dENoYXIoKSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTWVudS5hZGQoaXRlbSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEF3dE1JdGVtKGl0ZW0pOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVDcmVhdGUobmV3IE1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSksIG1lbnVEYXRhKTsKKyAgICB9ICAgICAgICAKKworICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVDcmVhdGUobmV3IENoZWNrYm94TWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVTZXBhcmF0b3IoKSB7CisgICAgICAgIAorICAgICAgICBmTWVudS5hZGQobmV3IE1lbnVJdGVtKCItIikpOworICAgIH0KK30KKyAgICAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01UYWJSdWxlckNvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTVRhYlJ1bGVyQ29tcG9uZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjFkMjczNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01UYWJSdWxlckNvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRhYlJ1bGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKKy8qKgorICogTVRhYlJ1bGVyQ29tcG9uZW50IGlzIGltcGxlbWVudGVkIGJ5IGNvbXBvbmVudHMgd2hpY2ggcHJvdmlkZSBhIHRhYi1ydWxlcgorICogaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIGFuIE1UZXh0UGFuZWwuCisgKiA8cD4KKyAqIFVzZXJzIGludGVyYWN0IHdpdGggTVRhYlJ1bGVyQ29tcG9uZW50IGltcGxlbWVudGF0aW9ucyBhcyBmb2xsb3dzOgorICogPHVsPgorICogPGxpPlRoZSBsZWFkaW5nIG1hcmdpbiBjYW4gYmUgc2V0IGJ5IGRyYWdnaW5nIHRoZSBib3R0b20gaGFsZgorICogb2YgdGhlIGxlZnRtb3N0IHRyaWFuZ2xlLiAgVGhlIGZpcnN0LWxpbmUgaW5kZW50IHdpbGwgInN0aWNrIiB3aXRoCisgKiB0aGUgbGVhZGluZyBtYXJnaW4uPC9saT4KKyAqIDxsaT5UaGUgZmlyc3QtbGluZSBpbmRlbnQgY2FuIGJlIHNldCBieSBkcmFnZ2luZyB0aGUgdG9wIGhhbGYgb2YgdGhlCisgKiBsZWZ0bW9zdCB0cmlhbmdsZS4gIFRoZSBmaXJzdC1saW5lIGluZGVudCBhcHBsaWVzIHRvIHRoZSBmaXJzdCBsaW5lIG9mCisgKiBhIHBhcmFncmFwaC48L2xpPgorICogPGxpPlRoZSB0cmFpbGluZyBtYXJnaW4gY2FuIGJlIHNldCBieSBkcmFnZ2luZyB0aGUgcmlnaHRtb3N0IHRyaWFuZ2xlLjwvbGk+CisgKiA8bGk+VGFicyBjYW4gYmUgYWRkZWQgdG8gdGhlIHJ1bGVyIGJ5IGNsaWNraW5nIHRoZSBtb3VzZSBvbiB0aGUgcnVsZXIgd2l0aCB0aGUKKyAqIGNvbnRyb2wga2V5IHByZXNzZWQuICBGb3VyIGtpbmRzIG9mIHRhYnMgYXJlIHByb3ZpZGVkOiAgbGVhZGluZywgdHJhaWxpbmcsIGNlbnRlciwKKyAqIGFuZCBkZWNpbWFsLiAgVGhlIHR5cGUgb2YgYSB0YWIgY2FuIGJlIGNoYW5nZWQgYnkgZG91YmxlLWNsaWNraW5nIHRoZSB0YWIuPC9saT4KKyAqIDxsaT5UYWJzIGNhbiBiZSByZXBvc2l0aW9uZWQgYnkgZHJhZ2dpbmcgdGhlbSB3aXRoIHRoZSBtb3VzZS48L2xpPgorICogPC91bD4KKyAqIDxwPgorICogTVRhYlJ1bGVyQ29tcG9uZW50J3MgYXBwZWFyYW5jZSB3aWxsIHJlZmxlY3QgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gdGhlCisgKiBmaXJzdCBzZWxlY3RlZCBwYXJhZ3JhcGguICBTdHlsZSBjaGFuZ2VzIHBlcmZvcm1lZCB3aXRoIGFuIAorICogTVRhYlJ1bGVyQ29tcG9uZW50IHdpbGwgYXBwbHkgdG8gYWxsIHNlbGVjdGVkIHBhcmFncmFwaHMuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgTVRhYlJ1bGVyQ29tcG9uZW50IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLyoqCisgICAgICogTGlzdGVuIHRvIHRoZSBnaXZlbiBNVGV4dFBhbmVsIGFuZCByZWZsZWN0IGl0cyBjaGFuZ2VzLAorICAgICAqIGFuZCB1cGRhdGUgaXRzIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBUYWJSdWxlciBpcworICAgICAqIG1hbmlwdWxhdGVkLgorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgbGlzdGVuVG9UZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldEJhY2tDb2xvcigpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhY2tDb2xvciB0aGUgbmV3IGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tDb2xvcihDb2xvciBiYWNrQ29sb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgZ2V0UnVsZXIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3RMaW5lSW5kZW50KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUcmFpbGluZ01hcmdpbigpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTWVzc2FnZURpYWxvZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTWVzc2FnZURpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2NjIxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NZXNzYWdlRGlhbG9nLmphdmEKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkNhcmRMYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsU2V0dGluZ3M7CisKKy8qKgorICogTWVzc2FnZURpYWxvZyBpcyBhIHNpbXBsZSBGcmFtZSB3aGljaCBkaXNwbGF5cyBhIHN0eWxlZAorICogdGV4dCBtZXNzYWdlIGluIGEgVGV4dFBhbmVsLgorICogVGhlIHRleHQgaW4gdGhlIG1lc3NhZ2UgaXMgbm90IHNlbGVjdGFibGUgb3IgZWRpdGFibGUuCisgKiBAc2VlIE1Db25zdFRleHQKKyAqIEBzZWUgVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlRGlhbG9nIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhIG5ldyBNZXNzYWdlRGlhbG9nLgorICAgICogQHBhcmFtIHRpdGxlIHRoZSBkaWFsb2cncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIHRleHQgd2hpY2ggd2lsbCBhcHBlYXIgaW4gdGhlIGRpYWxvZworICAgICovCisgICAgcHVibGljIE1lc3NhZ2VEaWFsb2coU3RyaW5nIHRpdGxlLCBNQ29uc3RUZXh0IG1lc3NhZ2UpCisgICAgeworICAgICAgICBzdXBlcih0aXRsZSk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyBzZXR0aW5ncyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2Nyb2xsYWJsZShmYWxzZSk7CisgICAgICAgIHNldHRpbmdzLnNldFNlbGVjdGFibGUoZmFsc2UpOworICAgICAgICBUZXh0UGFuZWwgcGFuZWwgPSBuZXcgVGV4dFBhbmVsKHNldHRpbmdzLCBtZXNzYWdlLCBudWxsKTsKKworICAgICAgICBwYW5lbC5zZXRCYWNrZ3JvdW5kKENvbG9yLmJsYWNrKTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBwYW5lbCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHNldFNpemUoNDUwLDMyMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTnVtYmVyRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZWRhZjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTnVtYmVyRGlhbG9nLmphdmEKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkRpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5UZXh0RmllbGQ7CitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworCitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1lbnVJdGVtU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlJlc291cmNlVXRpbHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB3aGljaCBnZXRzIGEgbnVtYmVyLCBhbmQgc2VuZHMgYW4gYXBwcm9wcmlhdGUgY29tbWFuZAorKi8KK2ZpbmFsIGNsYXNzIE51bWJlckRpYWxvZyBleHRlbmRzIERpYWxvZyBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIFRleHRGaWVsZCBmSW5wdXQgPSBudWxsOworICAgIHByaXZhdGUgQnV0dG9uIGZPS0J1dHRvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBCdXR0b24gZkNhbmNlbEJ1dHRvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDaGFyYWN0ZXI7CisgICAgcHJpdmF0ZSBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGZsb2F0IGZNdWx0aXBsaWVyOyAKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtdWx0aXBsaWVyIHRoZSBmYWN0b3IgYnkgd2hpY2ggdG8gbXVsdGlwbHkgdGhlIHVzZXIncworICAgICAqICAgICAgICBzZWxlY3Rpb24gYmVmb3JlIGNyZWF0aW5nIHRoZSBhdHRyaWJ1dGUgdmFsdWUuICAgVGhpcworICAgICAqICAgICAgICBpcyB1c2VmdWwgZm9yIHN1YnNjcmlwdGluZy4KKyAgICAgKi8KKyAgICBOdW1iZXJEaWFsb2coRnJhbWUgcGFyZW50LAorICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgIGZsb2F0IG11bHRpcGxpZXIpIHsKKworICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIGZNdWx0aXBsaWVyID0gbXVsdGlwbGllcjsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBqYXZhLmF3dC5HcmlkTGF5b3V0KDIsMSkpOworCisgICAgICAgIFBhbmVsIHBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMTAsIDE1KSk7CisgICAgICAgIGZJbnB1dCA9IG5ldyBUZXh0RmllbGQoNSk7CisgICAgICAgIHBhbmVsLmFkZChuZXcgTGFiZWwobWVzc2FnZSkpOworICAgICAgICBwYW5lbC5hZGQoZklucHV0KTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBwYW5lbCk7CisKKyAgICAgICAgZkNhbmNlbEJ1dHRvbiA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DQU5DRUwpKTsKKyAgICAgICAgZk9LQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIFBhbmVsIHAgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDUsIDUpKTsKKyAgICAgICAgcC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIHAuYWRkKGZPS0J1dHRvbik7CisgICAgICAgIGFkZCgiU291dGgiLCBwKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgZk9LQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjbG9zZVdpbmRvdyhib29sZWFuIHNlbmRBY3Rpb24pIHsKKworICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKworICAgICAgICBpbnQgbnVtID0gMDsKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBmSW5wdXQuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIG51bSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHRleHQpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgc2VuZEFjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24obnVtKTsKKyAgICAgICAgfQorCisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBlLmdldFNvdXJjZSgpOworCisgICAgICAgIGlmIChzb3VyY2UgPT0gZk9LQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbEJ1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBBY3Rpb25FdmVudCEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogSGFuZGxlIHRoZSB1c2VyIGlucHV0CisgICAgKiBAcGFyYW0gdGhlIG51bWJlciB0aGUgdXNlciB0eXBlZCBpbgorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oaW50IG51bWJlcikgeworICAgICAgICBmbG9hdCBudW0gPSBudW1iZXIgKiBmTXVsdGlwbGllcjsKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZsb2F0KG51bSkpOworICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvT2JqZWN0RGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iOTEzYWE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvT2JqZWN0RGlhbG9nLmphdmEKQEAgLTAsMCArMSwxNjYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGphdmEuYXd0LkRpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKKy8qKgorKiBTaW1wbGUgZGlhbG9nIHdoaWNoIGdldHMgYSBjb2xvcgorKi8KK2ZpbmFsIGNsYXNzIE9iamVjdERpYWxvZyBleHRlbmRzIERpYWxvZyBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHByaXZhdGUgZmluYWwgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IGZLZXk7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDaGFyYWN0ZXI7CisKKyAgICBwcml2YXRlIGZpbmFsIEJ1dHRvbiBmT0tCdXR0b247CisgICAgcHJpdmF0ZSBmaW5hbCBCdXR0b24gZkNhbmNlbEJ1dHRvbjsKKyAgICBwcml2YXRlIGZpbmFsIENob2ljZSBmSXRlbXM7CisgICAgcHJpdmF0ZSBmaW5hbCBIYXNodGFibGUgZk5hbWVUb1ZhbHVlTWFwOworICAgIC8qKgorICAgICogQ29uc3RydWN0IGEgbmV3IENvbG9yRGlhbG9nLgorICAgICogQHBhcmFtIHBhcmVudCB0aGUgZGlhbG9nJ3MgcGFyZW50IGZyYW1lCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZ3MgdGl0bGUKKyAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIGRpc3BsYXllZCBuZXh0IHRvIHRoZSBpbnB1dCBib3gKKyAgICAqLworICAgIE9iamVjdERpYWxvZyhGcmFtZSBwYXJlbnQsIAorICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsIAorICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSwgCisgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMsCisgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICBmS2V5ID0ga2V5OworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDIsIDEpKTsKKworICAgICAgICBQYW5lbCBwYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDEwLCAxMCkpOworICAgICAgICBmSXRlbXMgPSBuZXcgQ2hvaWNlKCk7CisKKyAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCAhPSB2YWx1ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IGhhdmUgc2FtZSBudW1iZXIgb2YgbmFtZXMgYW5kIHZhbHVlcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZOYW1lVG9WYWx1ZU1hcCA9IG5ldyBIYXNodGFibGUobmFtZXMubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmSXRlbXMuYWRkKG5hbWVzW2ldKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZOYW1lVG9WYWx1ZU1hcC5wdXQobmFtZXNbaV0sIHZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwYW5lbC5hZGQobmV3IExhYmVsKG1lc3NhZ2UpKTsgICAgICAgIAorICAgICAgICBwYW5lbC5hZGQoZkl0ZW1zKTsKKyAgICAgICAgCisgICAgICAgIGFkZCgiTm9ydGgiLCBwYW5lbCk7CisKKyAgICAgICAgZkNhbmNlbEJ1dHRvbiA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DQU5DRUwpKTsKKyAgICAgICAgZk9LQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIFBhbmVsIHAgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDUsIDUpKTsKKyAgICAgICAgcC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIHAuYWRkKGZPS0J1dHRvbik7CisgICAgICAgIGFkZCgiU291dGgiLCBwKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgZk9LQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjbG9zZVdpbmRvdyhib29sZWFuIHNlbmRBY3Rpb24pIHsKKworICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGZOYW1lVG9WYWx1ZU1hcC5nZXQoZkl0ZW1zLmdldFNlbGVjdGVkSXRlbSgpKTsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24odmFsdWUpOworICAgICAgICB9CisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBlLmdldFNvdXJjZSgpOworCisgICAgICAgIGlmIChzb3VyY2UgPT0gZk9LQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbEJ1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBBY3Rpb25FdmVudCEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogSGFuZGxlIHRoZSB1c2VyIGlucHV0CisgICAgKiBAcGFyYW0gb2JqIHRoZSB2YWx1ZSBvYmplY3QKKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZW5kQWN0aW9uKE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXI7CisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoZktleSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQXR0cmlidXRlU2V0IHNldCA9IG5ldyBBdHRyaWJ1dGVTZXQoZktleSk7CisgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoc2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UYWJSdWxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxMWExYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UYWJSdWxlci5qYXZhCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuVGFiUnVsZXJJbXBsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CisKKy8qKgorICogVGFiUnVsZXIgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyQ29tcG9uZW50IGluIGFuIEFXVCBjb21wb25lbnQuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJSdWxlciBleHRlbmRzIENvbXBvbmVudCBpbXBsZW1lbnRzIE1UYWJSdWxlckNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRhYlJ1bGVySW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhc2VsaW5lIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJ1bGVyJ3MgYmFzZWxpbmUKKyAgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB4LWNvb3JkaW5hdGUgaW4gdGhpcyBDb21wb25lbnQgd2hlcmUKKyAgICAgKiAgICAgdGhlIGxlZnQgbWFyZ2luIGFwcGVhcnMKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0by4gIFRoaXMgVGFiUnVsZXIKKyAgICAgKiAgICAgd2lsbCByZWZsZWN0IHRoZSBNVGV4dFBhbmVsJ3MgcGFyYWdyYXBoIHN0eWxlcywgYW5kIHVwZGF0ZQorICAgICAqICAgICB0aGUgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIG1hbmlwdWxhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBUYWJSdWxlcihpbnQgYmFzZWxpbmUsIGludCBvcmlnaW4sIE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBmSW1wbCA9IG5ldyBUYWJSdWxlckltcGwoYmFzZWxpbmUsIG9yaWdpbiwgdGV4dFBhbmVsLCB0aGlzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTGlzdGVuIHRvIHRoZSBnaXZlbiBNVGV4dFBhbmVsIGFuZCByZWZsZWN0IGl0cyBjaGFuZ2VzLAorICAgICAqIGFuZCB1cGRhdGUgaXRzIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBUYWJSdWxlciBpcworICAgICAqIG1hbmlwdWxhdGVkLgorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgbGlzdGVuVG9UZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKworICAgICAgICBmSW1wbC5saXN0ZW5Ub1RleHRQYW5lbCh0ZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0QmFja0NvbG9yKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRCYWNrQ29sb3IoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhY2tDb2xvciB0aGUgbmV3IGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tDb2xvcihDb2xvciBiYWNrQ29sb3IpIHsKKworICAgICAgICBmSW1wbC5zZXRCYWNrQ29sb3IoYmFja0NvbG9yKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgZ2V0UnVsZXIoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UnVsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRMZWFkaW5nTWFyZ2luKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0TGluZUluZGVudCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRGaXJzdExpbmVJbmRlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUcmFpbGluZ01hcmdpbigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUcmFpbGluZ01hcmdpbigpOworICAgIH0KKyAgICAKKyAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBDb21wb25lbnQgbWV0aG9kcyB3aGljaCBuZWVkIHRvIGJlIGRlbGVnYXRlZCB0bworICAgIC8vIHRoZSBpbXBsZW1lbnRhdGlvbjoKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgIAorICAgICAgICBmSW1wbC5wYWludChnKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRQcmVmZXJyZWRTaXplKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFByZWZlcnJlZFNpemUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldE1pbmltdW1TaXplKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGV4dEZyYW1lLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UZXh0RnJhbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjBiOTZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGV4dEZyYW1lLmphdmEKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworLyoqCisgKiBUZXh0RnJhbWUgaXMgYSBGcmFtZSBjb250YWluaW5nIGFuIGVkaXRhYmxlIFRleHRQYW5lbCwgYSBzZXQgb2Ygc3RhbmRhcmQKKyAqIG1lbnVzLCBhbmQgYSBUYWJSdWxlci4gIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMtaXMsIGJ1dCBpcworICogcHJpbWFyaWx5IGludGVuZGVkIHRvIGJlIGEgc2ltcGxlIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGUgb3RoZXIgY2xhc3NlcworICogaW4gdGhpcyBwYWNrYWdlLgorICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWwKKyAqIEBzZWUgQXd0TWVudUJ1aWxkZXIKKyAqIEBzZWUgVGFiUnVsZXIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHRGcmFtZSBleHRlbmRzIEZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUZXh0UGFuZWwgZlRleHRQYW5lbDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0RnJhbWUgd2l0aCBubyB0ZXh0IGFuZCBubyB0aXRsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dEZyYW1lKCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dEZyYW1lIHdpdGggbm8gdGV4dCBhbmQgdGhlIGdpdmVuIHRpdGxlLgorICAgICAqIEBwYXJhbSB0aXRsZSB0aGUgdGl0bGUgb2YgdGhpcyBGcmFtZQorICAgICAqLworICAgIHB1YmxpYyBUZXh0RnJhbWUoU3RyaW5nIHRpdGxlKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcih0aXRsZSk7CisgICAgICAgIGluaXQobnVsbCwgVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRGcmFtZSB3aXRoIHRoZSBnaXZlbiB0ZXh0IGFuZCB0aXRsZSwgd2hvc2UKKyAgICAgKiBUZXh0UGFuZWwgd2lsbCB1c2UgdGhlIGdpdmVuIGNsaXBib2FyZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgaW5pdGlhbCB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJZiBudWxsIHRoZQorICAgICAqICAgICAgVGV4dFBhbmVsIHdpbGwgaW5pdGlhbGx5IGJlIGVtcHR5CisgICAgICogQHBhcmFtIHRpdGxlIHRoZSB0aXRsZSBvZiB0aGlzIEZyYW1lCisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgQ2xpcGJvYXJkIHdoaWNoIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UuCisgICAgICogICAgICBJZiBudWxsIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIENsaXBib2FyZAorICAgICAqLworICAgIHB1YmxpYyBUZXh0RnJhbWUoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdCh0ZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0KE1Db25zdFRleHQgdGV4dCwgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBUZXh0UGFuZWwodGV4dCwgY2xpcGJvYXJkKTsKKworICAgICAgICBUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworCisgICAgICAgIGNyZWF0ZU1lbnVzKCk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIGFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIHBhY2soKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlTWVudXMoKSB7CisKKyAgICAgICAgTWVudUJhciBtZW51QmFyID0gbmV3IE1lbnVCYXIoKTsKKworICAgICAgICBBd3RNZW51QnVpbGRlci5nZXRJbnN0YW5jZSgpLmNyZWF0ZU1lbnVzKG1lbnVCYXIsIGZUZXh0UGFuZWwsIHRoaXMpOworCisgICAgICAgIHNldE1lbnVCYXIobWVudUJhcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGV4dFBhbmVsIGluIHRoaXMgZnJhbWUuCisgICAgICovCisgICAgcHVibGljIE1UZXh0UGFuZWwgZ2V0VGV4dFBhbmVsKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dFBhbmVsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIAorICAgICAgICBUZXh0RnJhbWUgZnJhbWUgPSBuZXcgVGV4dEZyYW1lKCk7CisgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmcmFtZS5zZXRTaXplKDU1MCwgNzAwKTsKKyAgICAgICAgZnJhbWUuc2hvdygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWQxNmRmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IS0tCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy0tPgorPGh0bWw+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitQcm92aWRlcyBjbGFzc2VzIGZvciBidWlsZGluZyBhbiBBV1QtYmFzZWQgdXNlciBpbnRlcmZhY2UgZm9yIGEgVGV4dFBhbmVsLgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3REb2N1bWVudFdpbmRvdy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3REb2N1bWVudFdpbmRvdy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyZjIzYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEKQEAgLTAsMCArMSwzNTcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuVGFiUnVsZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsTGlzdGVuZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsU2V0dGluZ3M7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLkF3dE1lbnVCdWlsZGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5wcmludC5QcmludGluZ1V0aWxzOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5EaWFsb2c7CitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUJhcjsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CisKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKKworLyoqCisgKiBBd3REb2N1bWVudFdpbmRvdyBpcyBhIEZyYW1lIGNvbnRhaW5pbmcgYSBUZXh0UGFuZWwsIHdpdGggYSBkb2N1bWVudAorICogZm9yIHN0b3JpbmcgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEF3dERvY3VtZW50V2luZG93IGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBEb2N1bWVudFdpbmRvdyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBUZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIEVkaXRBcHBsaWNhdGlvbiBmQXBwbGljYXRpb247CisgICAgcHJpdmF0ZSBUZXh0RG9jdW1lbnQgZkRvY3VtZW50OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF3dERvY3VtZW50V2luZG93LgorICAgICAqIEBwYXJhbSBhcHBsaWNhdGlvbiB0aGUgYXBwbGljYXRpb24gdGhhdCBvd25zIHRoaXMgZG9jdW1lbnQKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlCisgICAgICogQHBhcmFtIGRvY3VtZW50IHRoZSBkb2N1bWVudCB0byBzaG93IGluIHRoaXMgQXd0RG9jdW1lbnRXaW5kb3cKKyAgICAgKi8KKyAgICBBd3REb2N1bWVudFdpbmRvdyhFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHRleHRQYW5lbFNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlVGFiUnVsZXIsCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpblRleHQsCisgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKworICAgICAgICBmQXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgVGV4dFBhbmVsKHRleHRQYW5lbFNldHRpbmdzLCBudWxsLCBhcHBsaWNhdGlvbi5nZXRDbGlwYm9hcmQoKSk7CisgICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgfQorICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisKKyAgICAgICAgYWRkTWVudUJhcihzdXBwb3J0U3R5bGVkVGV4dCwgc3VwcG9ydFBsYWluVGV4dCwgbWVudXMpOworCisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgIGlmICh1c2VUYWJSdWxlcikgeworICAgICAgICAgICAgVGFiUnVsZXIgdGFiUnVsZXIgPSBuZXcgVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIGFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIHBhY2soKTsKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBkb0Nsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhZGRNZW51QmFyKGJvb2xlYW4gc3VwcG9ydFN0eWxlZFRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgTWVudUJhciBtZW51QmFyID0gbmV3IE1lbnVCYXIoKTsKKyAgICAgICAgU3RyaW5nIG1lbnVUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5GSUxFKTsKKyAgICAgICAgTWVudSBtZW51ID0gbmV3IE1lbnUobWVudVRpdGxlKTsKKyAgICAgICAgbmV3IEF3dEZpbGVNZW51TWFuYWdlcihtZW51LCBmQXBwbGljYXRpb24sIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0KTsKKyAgICAgICAgbWVudUJhci5hZGQobWVudSk7CisKKyAgICAgICAgQXd0TWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzLCBtZW51cyk7CisgICAgICAgIHNldE1lbnVCYXIobWVudUJhcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGl0IGlzIE9LIHRvIHNldCB0aGUgZG9jdW1lbnQgdGV4dCBhbmQgZmlsZSB0bworICAgICAqIHNvbWV0aGluZyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkNoYW5nZURvY3VtZW50cygpIHsKKworICAgICAgICAvLyBJZiB0aGUgdGV4dCBpcyBtb2RpZmllZCwgZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0bworICAgICAgICAvLyBzYXZlIGl0LiAgT3RoZXJ3aXNlIHJldHVybiB0cnVlLgorCisgICAgICAgIGlmIChmRG9jdW1lbnQuaXNNb2RpZmllZCgpKSB7CisgICAgICAgICAgICBieXRlIHNhdmUgPSBhc2tTYXZlKHRoaXMsIGdldFRpdGxlKCkpOworICAgICAgICAgICAgaWYgKHNhdmUgPT0gWUVTKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNhdmUgPT0gTk87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICBmRG9jdW1lbnQgPSBkb2N1bWVudDsKKyAgICAgICAgZkRvY3VtZW50LnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gZW1wdHkgdGV4dCB3aXRoIG5vIGFzc29jaWF0ZWQgZmlsZS4gIElmCisgICAgICogdGhlIGRvY3VtZW50IHRleHQgaXMgbm90IHNhdmVkLCBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSB0aGUKKyAgICAgKiB0aGUgdGV4dCBmaXJzdC4gIElmIHRoaXMgb3BlcmF0aW9uIGlzIGNhbmNlbGVkLCB0aGUgZG9jdW1lbnQKKyAgICAgKiBpcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9OZXcoKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXREb2N1bWVudChmQXBwbGljYXRpb24uY3JlYXRlTmV3RG9jdW1lbnQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgZnJvbSB3aGljaCB0byBsb2FkIGEgdGV4dCBkb2N1bWVudC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCB0ZXh0IGlzIG5vdCBzYXZlZCwgZmlyc3QgcHJvbXB0IHRoZSB1c2VyIHRvCisgICAgICogc2F2ZS4gIElmIGVpdGhlciBvcGVyYXRpb24gaXMgY2FuY2VsZWQgb3IgZmFpbHMsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb09wZW4oKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gZkFwcGxpY2F0aW9uLm9wZW5Eb2N1bWVudCh0aGlzKTsKKworICAgICAgICBpZiAoZG9jdW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgaW4gd2hpY2ggdG8gc2F2ZSB0aGUgZG9jdW1lbnQgdGV4dC4KKyAgICAgKiBJZiB0aGlzIG9wZXJhdGlvbiBpcyBub3QgY2FuY2VsZWQsIHNhdmUgdGhlIHRleHQgaW4gdGhlIGZpbGUuCisgICAgICogVGhlIGZpbGUgYmVjb21lcyB0aGlzIGRvY3VtZW50J3MgZmlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmVBcyhpbnQgZm9ybWF0KSB7CisKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfVElUTEUpOworICAgICAgICBGaWxlIGZpbGUgPSBnZXRGaWxlRnJvbURpYWxvZyhmRG9jdW1lbnQuZ2V0RmlsZSgpLCB0aXRsZSwgdGhpcywgRmlsZURpYWxvZy5TQVZFKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmaWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkRvY3VtZW50LnNldEZpbGUoZmlsZSk7CisgICAgICAgIHNldFRpdGxlKGZEb2N1bWVudC5nZXRUaXRsZSgpKTsKKworICAgICAgICBmRG9jdW1lbnQuc2V0Rm9ybWF0KGZvcm1hdCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkRvY3VtZW50LnNhdmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSB0ZXh0IGluIHRoaXMgZG9jdW1lbnQuICBJZiB0aGVyZSBpcyBubyBmaWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSB0ZXh0LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gPGNvZGU+ZG9TYXZlQXM8L2NvZGU+LgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBzYXZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmUoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5nZXRGaWxlKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZUFzKGZEb2N1bWVudC5nZXRGb3JtYXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IHRoZSBjb250ZW50cyBvZiB0aGlzIHdpbmRvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1ByaW50KCkgeworCisgICAgICAgIFByaW50aW5nVXRpbHMudXNlclByaW50VGV4dChmRG9jdW1lbnQuZ2V0VGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUaXRsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGNsb3NlIHRoaXMgd2luZG93LiAgSWYgdGhlIHRleHQgaGFzIG5vdCBiZWVuIHNhdmVkLAorICAgICAqIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY2xvc2luZyB0aGUKKyAgICAgKiB3aW5kb3cuICBJZiB0aGUgdXNlciBjYW5jZWxzIHRoaXMgb3BlcmF0aW9uLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogZmFsc2UgYW5kIHRoZSB3aW5kb3cgaXMgbm90IGNsb3NlZDsgIG90aGVyd2lzZSB0aGlzIG1ldGhvZAorICAgICAqIHJldHVybnMgdHJ1ZSBhbmQgdGhlIHdpbmRvdyBpcyBjbG9zZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZG9DbG9zZSgpIHsKKworICAgICAgICBpZiAoY2FuQ2hhbmdlRG9jdW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgZkFwcGxpY2F0aW9uLnJlbW92ZURvY3VtZW50V2luZG93KHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIGZpbGUgZnJvbSBhIGRpYWxvZy4gIElmIHRoZSB1c2VyIGRvZXMgbm90CisgICAgICogc2VsZWN0IGEgZmlsZSBpbiB0aGUgZGlhbG9nIHRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcGFyYW0ga2luZCBlaXRoZXIgRmlsZURpYWxvZy5MT0FEIG9yIEZpbGVEaWFsb2cuU0FWRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEZpbGUgZ2V0RmlsZUZyb21EaWFsb2coRmlsZSBvcmlnRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RpdGxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBraW5kKSB7CisgICAgICAgIAorICAgICAgICBGaWxlRGlhbG9nIGRpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKG93bmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kKTsKKyAgICAgICAgaWYgKG9yaWdGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRpYWxvZy5zZXREaXJlY3Rvcnkob3JpZ0ZpbGUuZ2V0UGFyZW50KCkpOworICAgICAgICAgICAgZGlhbG9nLnNldEZpbGUob3JpZ0ZpbGUuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICBTdHJpbmcgZmlsZVN0ciA9IGRpYWxvZy5nZXRGaWxlKCk7CisgICAgICAgIFN0cmluZyBkaXJTdHIgPSBkaWFsb2cuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAgIAorICAgICAgICBGaWxlIGZpbGUgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgZmlsZSA9IG5ldyBGaWxlKGRpclN0ciwgZmlsZVN0cik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmaWxlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFlFUyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBOTyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDQU5DRUwgPSAyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRGlhbG9nTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICAgICAgRGlhbG9nIGZEaWFsb2c7CisgICAgICAgIEJ1dHRvbiBmWWVzLCBmTm8sIGZDYW5jZWw7CisgICAgICAgIGJ5dGUgZlN0YXRlOworCisgICAgICAgIERpYWxvZ0xpc3RlbmVyKERpYWxvZyBkaWFsb2csCisgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvbiB5ZXMsCisgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvbiBubywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIGNhbmNlbCkgeworCisgICAgICAgICAgICBmRGlhbG9nID0gZGlhbG9nOworICAgICAgICAgICAgZlllcyA9IHllczsKKyAgICAgICAgICAgIGZObyA9IG5vOworICAgICAgICAgICAgZkNhbmNlbCA9IGNhbmNlbDsKKyAgICAgICAgICAgIGZZZXMuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmTm8uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmQ2FuY2VsLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgZlN0YXRlID0gLTE7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZlbnQpIHsKKworICAgICAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGV2ZW50LmdldFNvdXJjZSgpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmWWVzKSB7CisgICAgICAgICAgICAgICAgZlN0YXRlID0gWUVTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZObykgeworICAgICAgICAgICAgICAgIGZTdGF0ZSA9IE5POworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDYW5jZWwpIHsKKyAgICAgICAgICAgICAgICBmU3RhdGUgPSBDQU5DRUw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZEaWFsb2cuZGlzcG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBnZXRTdGF0ZSgpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZTdGF0ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERpc3BsYXkgYSBkaWFsb2cgdGhhdCBhc2tzIHdoZXRoZXIgdGhlIHVzZXIgd2FudHMgdG8KKyAgICAgKiBzYXZlIGEgZG9jdW1lbnQuICBQb3NzaWJsZSByZXBvbnNlcyBhcmUgWWVzLCBObywgYW5kCisgICAgICogQ2FuY2VsLiAgVGhlIHJldHVybmVkIHZhbHVlIGluZGljYXRlcyB3aGljaCByZXNwb25zZQorICAgICAqIHdhcyBjaG9zZW4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZSBhc2tTYXZlKEZyYW1lIHBhcmVudCwgU3RyaW5nIGZpbGVOYW1lKSB7CisKKyAgICAgICAgRGlhbG9nIGRpYWxvZyA9IG5ldyBEaWFsb2cocGFyZW50LCB0cnVlKTsKKyAgICAgICAgZGlhbG9nLnNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcGF0dGVybiA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5TQVZFX01TRyk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgbmV3IE9iamVjdFtdIHtmaWxlTmFtZX0pOworICAgICAgICBkaWFsb2cuYWRkKG5ldyBMYWJlbCh0ZXh0LCBMYWJlbC5DRU5URVIpKTsKKyAgICAgICAgCisgICAgICAgIEJ1dHRvbiB5ZXMgPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5ZRVMpKTsKKyAgICAgICAgQnV0dG9uIG5vID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuTk8pKTsKKyAgICAgICAgQnV0dG9uIGNhbmNlbCA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkNBTkNFTCkpOworCisgICAgICAgIFBhbmVsIHBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsLmFkZCh5ZXMpOworICAgICAgICBwYW5lbC5hZGQobm8pOworICAgICAgICBwYW5lbC5hZGQoY2FuY2VsKTsKKyAgICAgICAgZGlhbG9nLmFkZChwYW5lbCk7CisKKyAgICAgICAgRGlhbG9nTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgRGlhbG9nTGlzdGVuZXIoZGlhbG9nLCB5ZXMsIG5vLCBjYW5jZWwpOworCisgICAgICAgIGRpYWxvZy5zZXRTaXplKDIyMCwgMTMwKTsKKyAgICAgICAgZGlhbG9nLnNob3coKTsKKworICAgICAgICByZXR1cm4gbGlzdGVuZXIuZ2V0U3RhdGUoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3RGaWxlTWVudU1hbmFnZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzdkODAwNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dEZpbGVNZW51TWFuYWdlci5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUl0ZW07CisKK2ZpbmFsIGNsYXNzIEF3dEZpbGVNZW51TWFuYWdlciBleHRlbmRzIEZpbGVNZW51TWFuYWdlciB7CisKKyAgICBwcml2YXRlIE1lbnUgZk1lbnU7CisgICAgCisgICAgcHVibGljIEF3dEZpbGVNZW51TWFuYWdlcihNZW51IG1lbnUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRXaW5kb3cgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRTdHlsZWRGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIoYXBwbGljYXRpb24sIGRvY3VtZW50KTsKKyAgICAgICAgCisgICAgICAgIGZNZW51ID0gbWVudTsKKyAgICAgICAgY3JlYXRlSXRlbXMoc3VwcG9ydFN0eWxlZEZvcm1hdCwgc3VwcG9ydFBsYWluRm9ybWF0KTsKKyAgICAgICAgZk1lbnUgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGFkZE1lbnVJdGVtKFN0cmluZyBrZXkpIHsKKworICAgICAgICBNZW51SXRlbSBpdGVtID0gUmVzb3VyY2VVdGlscy5jcmVhdGVNZW51SXRlbShrZXkpOworICAgICAgICBpdGVtLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmTWVudS5hZGQoaXRlbSk7CisgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZGRTZXBhcmF0b3IoKSB7CisgICAgCisgICAgICAgIGZNZW51LmFkZChuZXcgTWVudUl0ZW0oIi0iKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Db2RlRWRpdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Db2RlRWRpdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlZGYyZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0LkZpbGVEaWFsb2c7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuQXd0TWVudUJ1aWxkZXI7CisKK3B1YmxpYyBjbGFzcyBDb2RlRWRpdCBleHRlbmRzIEVkaXRBcHBsaWNhdGlvbiB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgVGV4dFBhbmVsU2V0dGluZ3MgZlNldHRpbmdzOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMCAmJiBhcmdzWzBdLmVxdWFscygiLXN3aW5nIikpIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtby5Td2luZ0NvZGVFZGl0KGFyZ3MsMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZXcgQ29kZUVkaXQoYXJncywgMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgQ29kZUVkaXQoU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisKKyAgICAgICAgc3VwZXIoVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpLAorICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZSA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMTIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLkZBTUlMWSwgIk1vbm9zcGFjZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmU2V0dGluZ3MgPSBUZXh0UGFuZWwuZ2V0RGVmYXVsdFNldHRpbmdzKCk7CisgICAgICAgIGZTZXR0aW5ncy5zZXRXcmFwcyhmYWxzZSk7CisgICAgICAgIGZTZXR0aW5ncy5hZGREZWZhdWx0VmFsdWVzKGRlZmF1bHRTdHlsZSk7CisgICAgICAgIAorICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gc3RhcnQpIHsKKyAgICAgICAgICAgIGRvTmV3V2luZG93KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIG9wZW5lZEFEb2N1bWVudCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCA9IG51bGw7CisgICAgICAgICAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCA9IFRleHREb2N1bWVudC5jcmVhdGVGcm9tRmlsZShmaWxlLCBUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgICAgIG9wZW5lZEFEb2N1bWVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFvcGVuZWRBRG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBxdWl0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgQXd0RG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW50YXhDb2xvcmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51cyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50W10gbWVudXMgPSB7IEF3dE1lbnVCdWlsZGVyLkVESVQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF3dE1lbnVCdWlsZGVyLkJJREksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXd0TWVudUJ1aWxkZXIuQUJPVVQgfTsKKworICAgIHB1YmxpYyBUZXh0RG9jdW1lbnQgb3BlbkRvY3VtZW50KEZyYW1lIGRpYWxvZ1BhcmVudCkgeworICAgIAorICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuT1BFTl9USVRMRSk7CisgICAgICAgIAorICAgICAgICBGaWxlIGZpbGUgPSBBd3REb2N1bWVudFdpbmRvdy5nZXRGaWxlRnJvbURpYWxvZyhudWxsLCB0aXRsZSwgZGlhbG9nUGFyZW50LCBGaWxlRGlhbG9nLkxPQUQpOworICAgICAgICBpZiAoZmlsZSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Eb2N1bWVudFdpbmRvdy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Eb2N1bWVudFdpbmRvdy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjNjlmMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0RvY3VtZW50V2luZG93LmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitwdWJsaWMgaW50ZXJmYWNlIERvY3VtZW50V2luZG93IHsKKworICAgIHB1YmxpYyB2b2lkIGRvTmV3KCk7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9PcGVuKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9DbG9zZSgpOworICAgIAorICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpOworICAgIAorICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpOworICAgIAorICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRTaXplKGludCB3ZCwgaW50IGh0KTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzaG93KCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdEFwcGxpY2F0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjM2MzBlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdEFwcGxpY2F0aW9uLmphdmEKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBFZGl0QXBwbGljYXRpb24geworCisgICAgcHJpdmF0ZSBDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIGludCBmRGVmYXVsdEZvcm1hdDsKKyAgICBwcml2YXRlIFZlY3RvciBmV2luZG93cyA9IG5ldyBWZWN0b3IoKTsKKyAgICBwcml2YXRlIGludCBmVW50aXRsZWRDb3VudCA9IDA7CisgICAgCisgICAgcHJvdGVjdGVkIEVkaXRBcHBsaWNhdGlvbihDbGlwYm9hcmQgY2xpcGJvYXJkLCBpbnQgZGVmYXVsdEZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKyAgICAgICAgZkRlZmF1bHRGb3JtYXQgPSBkZWZhdWx0Rm9ybWF0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOZXcgZG9jdW1lbnRzIGFyZSBuYW1lZCAiVW50aXRsZWQgMSIsICJVbnRpdGxlZCAyIiwgZXRjLiAgVGhpcworICAgICAqIG1ldGhvZCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBuYW1lIGZvciB0aGUgbmV4dCBuZXcgZG9jdW1lbnQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBuZXcgZG9jdW1lbnQgbmFtZQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGdldE5leHROZXdOYW1lKCkgeworCisgICAgICAgIGZVbnRpdGxlZENvdW50ICs9IDE7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlVOVElUTEVEX01TRyk7CisgICAgICAgIHJldHVybiBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtde25ldyBJbnRlZ2VyKGZVbnRpdGxlZENvdW50KX0pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgQ2xpcGJvYXJkIGdldENsaXBib2FyZCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmQ2xpcGJvYXJkOworICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCBUZXh0RG9jdW1lbnQgb3BlbkRvY3VtZW50KEZyYW1lIGRpYWxvZ1BhcmVudCk7CisgICAgCisgICAgcHVibGljIGZpbmFsIFRleHREb2N1bWVudCBjcmVhdGVOZXdEb2N1bWVudCgpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXROZXh0TmV3TmFtZSgpOworICAgICAgICBpbnQgZm9ybWF0ID0gZkRlZmF1bHRGb3JtYXQ7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRW1wdHkobmFtZSwgZm9ybWF0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgZG9OZXdXaW5kb3coKSB7CisgICAgICAgIAorICAgICAgICBhZGREb2N1bWVudChUZXh0RG9jdW1lbnQuY3JlYXRlRW1wdHkoZ2V0TmV4dE5ld05hbWUoKSwgZkRlZmF1bHRGb3JtYXQpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgYWRkRG9jdW1lbnQoVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBEb2N1bWVudFdpbmRvdyB3aW5kb3cgPSBjcmVhdGVEb2N1bWVudFdpbmRvdyhkb2N1bWVudCk7CisKKyAgICAgICAgd2luZG93LnNldFNpemUoNTAwLCA0MDApOworICAgICAgICB3aW5kb3cuc2hvdygpOworICAgICAgICBmV2luZG93cy5hZGRFbGVtZW50KHdpbmRvdyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSBkb2N1bWVudCBmcm9tIGxpc3Qgb2YgZG9jdW1lbnRzLiAgUXVpdCBhcHBsaWNhdGlvbiBpZiBsaXN0CisgICAgICogbGVuZ3RoIGZhbGxzIHRvIHplcm8uCisgICAgICogQHBhcmFtIHdpbmRvdyB3aW5kb3cgb2YgdGhlIGRvY3VtZW50IHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlbW92ZURvY3VtZW50V2luZG93KERvY3VtZW50V2luZG93IHdpbmRvdykgeworCisgICAgICAgIGZXaW5kb3dzLnJlbW92ZUVsZW1lbnQod2luZG93KTsKKyAgICAgICAgaWYgKGZXaW5kb3dzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcXVpdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR28gdGhyb3VnaCBsaXN0IG9mIGRvY3VtZW50cyBhbmQgYXR0ZW1wdCB0byBjbG9zZSBlYWNoIGRvY3VtZW50LgorICAgICAqIElmIGFsbCBkb2N1bWVudHMgY2xvc2Ugc3VjY2Vzc2Z1bGx5LCB0aGVuIGV4aXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZG9FeGl0KCkgeworCisgICAgICAgIC8vIENsb25lIGZXaW5kb3dzIHNpbmNlIGl0IGNhbiBnZXQgbW9kaWZpZWQgd2hpbGUgYmVpbmcgdHJhdmVyc2VkLgorICAgICAgICBWZWN0b3Igd2luZG93cyA9IChWZWN0b3IpIGZXaW5kb3dzLmNsb25lKCk7CisKKyAgICAgICAgaW50IHNpemUgPSB3aW5kb3dzLnNpemUoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyB3aW5kb3cgPSAoRG9jdW1lbnRXaW5kb3cpIHdpbmRvd3MuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKCF3aW5kb3cuZG9DbG9zZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcXVpdCB3aWxsIGJlIGNhbGxlZCB3aGVuIGxhc3QgZG9jdW1lbnQgcmVtb3ZlcyBpdHNlbGYKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBsYXN0IGRvY3VtZW50IHdpbmRvdyBjbG9zZXMuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uCisgICAgICogY2FsbHMgU3lzdGVtLmV4aXQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcXVpdCgpIHsKKworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXREZW1vLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXREZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjU3MmFlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdERlbW8uamF2YQpAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKKworLyoqCisgKiBFZGl0RGVtbyBpcyB0aGUgbWFpbiBjbGFzcyBmb3IgYSBzaW1wbGUsIG11bHRpcGxlLWRvY3VtZW50CisgKiBzdHlsZWQgdGV4dCBlZGl0b3IsIGJ1aWx0IHdpdGggdGhlIGNsYXNzZXMgaW4gdGhlIHRleHRwYW5lbAorICogYW5kIHRleHRmcmFtZSBwYWNrYWdlcy4KKyAqIDxwPgorICogVG8gcnVuIEVkaXREZW1vLCB0eXBlOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIGphdmEgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vIFtmaWxlMV0gW2ZpbGUyXSBbLi4uXQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogd2hlcmUgdGhlIGZpbGVuYW1lcyBhcmUgZmlsZXMgc2F2ZWQgd2l0aCB0aGlzIGRlbW8uCisgKi8KK3B1YmxpYyBjbGFzcyBFZGl0RGVtbyBleHRlbmRzIEVkaXRBcHBsaWNhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMCAmJiBhcmdzWzBdLmVxdWFscygiLXN3aW5nIikpIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtby5Td2luZ0VkaXREZW1vKGFyZ3MsMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZXcgRWRpdERlbW8oYXJncywgMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgRWRpdERlbW8oU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisKKyAgICAgICAgc3VwZXIoVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpLCAKKyAgICAgICAgICAgICAgVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gc3RhcnQpIHsKKyAgICAgICAgICAgIGRvTmV3V2luZG93KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIG9wZW5lZEFEb2N1bWVudCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCA9IGdldERvY3VtZW50RnJvbUZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkRG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgICAgICBvcGVuZWRBRG9jdW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghb3BlbmVkQURvY3VtZW50KSB7CisgICAgICAgICAgICAgICAgcXVpdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGdldERvY3VtZW50RnJvbUZpbGUoRmlsZSBmaWxlKSB7CisgICAgCisgICAgICAgIEV4Y2VwdGlvbiBleGNlcHRpb24gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChTdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dERvY3VtZW50LmNyZWF0ZUZyb21GaWxlKGZpbGUsIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGUyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleGNlcHRpb24gPSBlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiBvcGVuaW5nIGZpbGUuIik7CisgICAgICAgIGV4Y2VwdGlvbi5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRG9jdW1lbnRXaW5kb3cgY3JlYXRlRG9jdW1lbnRXaW5kb3coVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEF3dERvY3VtZW50V2luZG93KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGV4dERvY3VtZW50IG9wZW5Eb2N1bWVudChGcmFtZSBkaWFsb2dQYXJlbnQpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLk9QRU5fVElUTEUpOworICAgICAgICBGaWxlIGZpbGUgPSBBd3REb2N1bWVudFdpbmRvdy5nZXRGaWxlRnJvbURpYWxvZyhudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlRGlhbG9nLkxPQUQpOworICAgICAgICBpZiAoZmlsZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnRGcm9tRmlsZShmaWxlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdG9yUmVzb3VyY2VzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRvclJlc291cmNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5NWZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0b3JSZXNvdXJjZXMuamF2YQpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworcHVibGljIGZpbmFsIGNsYXNzIEVkaXRvclJlc291cmNlcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIG1lbnUgbmFtZXMgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFID0gIkZpbGUiOworCisgICAgLy8gZmlsZSBtZW51IGl0ZW1zIC0gdmFsdWVzIGFyZSBNZW51RGF0YSBpbnN0YW5jZXMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBORVcgPSAiTmV3IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBORVdfV0lORE9XID0gIk5ldyBXaW5kb3ciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU4gPSAiT3Blbi4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRSA9ICJTYXZlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFX0FTID0gIlNhdmUgQXMuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfQVNfU1RZTEVEID0gIlNhdmUgQXMgU3R5bGVkIFRleHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfQVNfVEVYVCA9ICJTYXZlIEFzIFBsYWluIFRleHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMT1NFID0gIkNsb3NlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUklOVCA9ICJQcmludCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVhJVCA9ICJFeGl0IjsKKworICAgIC8vIGJ1dHRvbiBsYWJlbHMgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBZRVMgPSAiWWVzIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBOTyA9ICJObyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gIkNhbmNlbCI7CisKKyAgICAvLyBtZXNzYWdlIHN0cmluZ3MgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFX01TRyA9ICJTYXZlIHswfSBiZWZvcmUgY2xvc2luZz8iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVOVElUTEVEX01TRyA9ICJVbnRpdGxlZCB7MH0iOworCisgICAgLy8gd2luZG93IGFuZCBkaWFsb2cgdGl0bGVzIC0gdmFsdWVzIGFyZSBTdHJpbmdzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTl9USVRMRSA9ICJPcGVuIERvY3VtZW50IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFX1RJVExFID0gIlNhdmUgQXMiOworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgcmV0dXJucyBhIHR3by1lbGVtZW50CisgICAgICogT2JqZWN0IGFycmF5LiAgVGhlIGZpcnN0IGVsZW1lbnQgaXMgbmFtZSwgdGhlCisgICAgICogc2Vjb25kIGlzIGEgTWVudURhdGEgaW5zdGFuY2Ugd2l0aCB0aGUgZ2l2ZW4KKyAgICAgKiBzaG9ydGN1dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlRW50cnkoU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgc2hvcnRDdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlDb2RlKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG5hbWUsIG5ldyBNZW51RGF0YShuYW1lLCBzaG9ydEN1dCwga2V5Q29kZSkgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkuICBUaGUgZmlyc3QgZWxlbWVudCBpcyBuYW1lLCB0aGUKKyAgICAgKiBzZWNvbmQgaXMgYSBNZW51RGF0YSBpbnN0YW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlRW50cnkoU3RyaW5nIG5hbWUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUpIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgcmV0dXJucyBhIHR3by1lbGVtZW50CisgICAgICogT2JqZWN0IGFycmF5IGluIHdoaWNoIGJvdGggZWxlbWVudHMgYXJlIG9iai4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBkdXBsaWNhdGUoT2JqZWN0IG9iaikgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBvYmosIG9iaiB9OworICAgIH0KKworICAgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICBkdXBsaWNhdGUoRklMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoWUVTKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShOTyksCisgICAgICAgICAgICBkdXBsaWNhdGUoQ0FOQ0VMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTQVZFX01TRyksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0FWRV9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoT1BFTl9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoVU5USVRMRURfTVNHKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShORVcsICduJywgS2V5RXZlbnQuVktfTiksCisgICAgICAgICAgICBtYWtlRW50cnkoTkVXX1dJTkRPVyksCisgICAgICAgICAgICBtYWtlRW50cnkoT1BFTiwgJ28nLCBLZXlFdmVudC5WS19PKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShTQVZFLCAncycsIEtleUV2ZW50LlZLX1MpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkVfQVMpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkVfQVNfU1RZTEVEKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShTQVZFX0FTX1RFWFQpLAorICAgICAgICAgICAgbWFrZUVudHJ5KENMT1NFKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShQUklOVCksCisgICAgICAgICAgICBtYWtlRW50cnkoRVhJVCksCisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRmlsZU1lbnVNYW5hZ2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTcwY2YwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgY3JlYXRlcyBhIEZpbGUgbWVudSBhbmQgbWFuYWdlcyB1c2VyIGludGVyYWN0aW9ucworICogd2l0aCB0aGUgbWVudS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIEZpbGVNZW51TWFuYWdlciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBFZGl0QXBwbGljYXRpb24gZkFwcGxpY2F0aW9uOworICAgIHByaXZhdGUgRG9jdW1lbnRXaW5kb3cgZkRvY3VtZW50V2luZG93OworICAgIHByaXZhdGUgT2JqZWN0IGZOZXcsIGZOZXdXaW5kb3csIGZPcGVuLCBmU2F2ZTsKKyAgICBwcml2YXRlIE9iamVjdCBmU2F2ZUFzU3R5bGVkLCBmU2F2ZUFzVGV4dCwgZkNsb3NlLCBmUHJpbnQsIGZFeGl0OworCisgICAgcHJvdGVjdGVkIEZpbGVNZW51TWFuYWdlcihFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRXaW5kb3cgZG9jdW1lbnQpIHsKKworICAgICAgICBmQXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKyAgICAgICAgZkRvY3VtZW50V2luZG93ID0gZG9jdW1lbnQ7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGNyZWF0ZUl0ZW1zKGJvb2xlYW4gc3VwcG9ydFN0eWxlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgaWYgKCFzdXBwb3J0U3R5bGVkRm9ybWF0ICYmICFzdXBwb3J0UGxhaW5Gb3JtYXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3Qgc3VwcG9ydCBhdCBsZWFzdCBvbmUgZm9ybWF0LiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTmV3ID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLk5FVyk7CisgICAgICAgIGZOZXdXaW5kb3cgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuTkVXX1dJTkRPVyk7CisgICAgICAgIAorICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKworICAgICAgICBmT3BlbiA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5PUEVOKTsKKworICAgICAgICBmU2F2ZSA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzdXBwb3J0U3R5bGVkRm9ybWF0KSB7CisgICAgICAgICAgICBpZiAoc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgZlNhdmVBc1N0eWxlZCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTX1NUWUxFRCk7CisgICAgICAgICAgICAgICAgZlNhdmVBc1RleHQgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuU0FWRV9BU19URVhUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZTYXZlQXNTdHlsZWQgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuU0FWRV9BUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmU2F2ZUFzVGV4dCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgIGZDbG9zZSA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5DTE9TRSk7CisgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICBmUHJpbnQgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuUFJJTlQpOworICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgZkV4aXQgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuRVhJVCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBPYmplY3QgYWRkTWVudUl0ZW0oU3RyaW5nIGtleSk7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBhZGRTZXBhcmF0b3IoKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZlbnQpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmTmV3KSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9OZXcoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk5ld1dpbmRvdykgeworICAgICAgICAgICAgZkFwcGxpY2F0aW9uLmRvTmV3V2luZG93KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZPcGVuKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9PcGVuKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDbG9zZSkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvQ2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlNhdmUpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb1NhdmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlNhdmVBc1N0eWxlZCkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvU2F2ZUFzKFRleHREb2N1bWVudC5TVFlMRURfVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZTYXZlQXNUZXh0KSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9TYXZlQXMoVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmUHJpbnQpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb1ByaW50KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZFeGl0KSB7CisgICAgICAgICAgICBmQXBwbGljYXRpb24uZG9FeGl0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZXZlbnQgc291cmNlOiAiICsgc291cmNlKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL01lbnVEYXRhLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL01lbnVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2QzNDU5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YQpAQCAtMCwwICsxLDYwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNZW51RGF0YSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgU3RyaW5nIGZOYW1lOworICAgIHByaXZhdGUgYm9vbGVhbiBmSGFzU2hvcnRjdXQ7CisgICAgcHJpdmF0ZSBjaGFyIGZTaG9ydGN1dDsKKyAgICBwcml2YXRlIGludCBmU2hvcnRjdXRLZXlDb2RlOworCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUsIGNoYXIgY2gsIGludCBrZXlDb2RlKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSB0cnVlOworICAgICAgICBmU2hvcnRjdXQgPSBjaDsKKyAgICAgICAgZlNob3J0Y3V0S2V5Q29kZSA9IGtleUNvZGU7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworCisgICAgICAgIHJldHVybiBmTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBnZXRTaG9ydGN1dCgpIHsKKworICAgICAgICBpZiAoIWZIYXNTaG9ydGN1dCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGRvZXNuJ3QgaGF2ZSBzaG9ydGN1dCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmU2hvcnRjdXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0U2hvcnRjdXRLZXlDb2RlKCkgeworICAgIAorICAgICAgICByZXR1cm4gZlNob3J0Y3V0S2V5Q29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNTaG9ydGN1dCgpIHsKKworICAgICAgICByZXR1cm4gZkhhc1Nob3J0Y3V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1Jlc291cmNlVXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vUmVzb3VyY2VVdGlscy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxN2E2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1Jlc291cmNlVXRpbHMuamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51U2hvcnRjdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBVdGlsaXR5IGNsYXNzIGZvciBkZWFsaW5nIHdpdGggcmVzb3VyY2UgZGF0YS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJlc291cmNlVXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBCVU5ETEU7CisgICAgc3RhdGljIHsKKyAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWUgPSAiY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRvclJlc291cmNlcyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCVU5ETEUgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoYnVuZGxlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgbG9hZCAiICsgYnVuZGxlTmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgIEV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgQlVORExFID0gbmV3IEVkaXRvclJlc291cmNlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U3RyaW5nKFN0cmluZyBrZXkpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIEJVTkRMRS5nZXRTdHJpbmcoa2V5KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgTWVudURhdGEgZ2V0TWVudURhdGEoU3RyaW5nIGtleSkgeworICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIChNZW51RGF0YSkgQlVORExFLmdldE9iamVjdChrZXkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE1lbnVEYXRhKGtleSk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTWVudUl0ZW0gY3JlYXRlTWVudUl0ZW0oU3RyaW5nIGtleSkgeworCisgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhID0gZ2V0TWVudURhdGEoa2V5KTsKKworICAgICAgICBpZiAobWVudURhdGEuaGFzU2hvcnRjdXQoKSkgeworICAgICAgICAgICAgTWVudVNob3J0Y3V0IHNob3J0Y3V0ID0gbmV3IE1lbnVTaG9ydGN1dChtZW51RGF0YS5nZXRTaG9ydGN1dCgpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpLCBzaG9ydGN1dCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9TeW50YXhDb2xvcmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOGFhOGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9TeW50YXhDb2xvcmVyLmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk5LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgamF2YS50ZXh0LkNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKKy8qKgorICogU3ludGF4Q29sb3JlciBpcyBhIFRleHRQYW5lbExpc3RlbmVyIHRoYXQgYXBwbGllcyBhIHN0eWxlCisgKiB0byBhIHNldCBvZiB3b3JkcyBpbiB0aGUgVGV4dFBhbmVsLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3ludGF4Q29sb3JlciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIENvbG9yZXIgeworICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIEhhc2h0YWJsZSBmU3R5bGVNYXA7CisgICAgICAgIHByaXZhdGUgQ29sbGF0b3IgZkNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGZCcmVha0l0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGZUZXh0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudExpbWl0OworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmQ3VycmVudFN0eWxlOworICAgICAgICAKKyAgICAgICAgQ29sb3JlcihIYXNodGFibGUgc3R5bGVzKSB7CisKKyAgICAgICAgICAgIGZTdHlsZU1hcCA9IG5ldyBIYXNodGFibGUoc3R5bGVzLnNpemUoKSk7CisKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSBzdHlsZXMua2V5cygpOworICAgICAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgayA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBmU3R5bGVNYXAucHV0KGZDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoayksIHN0eWxlcy5nZXQoaykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIHNldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmU3RhcnQgPSBzdGFydDsKKworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcihsaW1pdC1zdGFydCk7CisgICAgICAgICAgICBmb3IgKGNoYXIgYz10ZXh0LnNldEluZGV4KHN0YXJ0KTsgdGV4dC5nZXRJbmRleCgpICE9IGxpbWl0OyBjPXRleHQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHQgPSBzYi50b1N0cmluZygpOworICAgICAgICAgICAgZkN1cnJlbnRTdGFydCA9IGZDdXJyZW50TGltaXQgPSAwOworICAgICAgICAgICAgZkN1cnJlbnRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICAgICAgCisgICAgICAgICAgICBmQnJlYWtJdGVyLnNldFRleHQoZlRleHQpOworICAgICAgICAgICAgZkJyZWFrSXRlci5maXJzdCgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBuZXh0KCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZkN1cnJlbnRMaW1pdCA9PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGZUZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZDdXJyZW50U3RhcnQgPSBmQ3VycmVudExpbWl0OworICAgICAgICAgICAgZkN1cnJlbnRMaW1pdCA9IGZCcmVha0l0ZXIubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgd29yZCA9IGZUZXh0LnN1YnN0cmluZyhmQ3VycmVudFN0YXJ0LCBmQ3VycmVudExpbWl0KTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBjayA9IGZDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkod29yZCk7CisgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gKEF0dHJpYnV0ZU1hcCkgZlN0eWxlTWFwLmdldChjayk7CisgICAgICAgICAgICBpZiAoZkN1cnJlbnRTdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGludCBjdXJyZW50U3RhcnQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRTdGFydCArIGZTdGFydDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGN1cnJlbnRMaW1pdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VycmVudExpbWl0ICsgZlN0YXJ0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVNYXAgY3VycmVudFN0eWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50U3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkJyZWFrSXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSBDb2xvcmVyIGZDb2xvcmVyOworICAgIHByaXZhdGUgYm9vbGVhbiBmTW9kaWZ5aW5nID0gZmFsc2U7CisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmTW9kaWZpZXJDYWNoZTsKKyAgICAKKyAgICBwdWJsaWMgU3ludGF4Q29sb3JlcigpIHsKKyAgICAgICAgCisgICAgICAgIHRoaXMobnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTeW50YXhDb2xvcmVyKE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIEhhc2h0YWJsZSBodCA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICAvL1VuY29tbWVudCB0aGlzIHRvIG1ha2Uga2V5d29yZHMgYXBwZWFyIHJpZ2h0LXRvLWxlZnQhCisgICAgICAgIC8vZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORywgCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoLTEpKTsKKyAgICAgICAgCisgICAgICAgIGZEZWZhdWx0S2V5d29yZFN0eWxlID0gZkRlZmF1bHRLZXl3b3JkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTik7CisgICAgICAgIGZEZWZhdWx0S2V5d29yZFN0eWxlID0gZkRlZmF1bHRLZXl3b3JkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmJsdWUpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gamF2YVdvcmRzID0geyJhYnN0cmFjdCIgLCAiYm9vbGVhbiIsICJicmVhayIsICJieXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXZhbHVlIiwgImNhc2UiLCAiY2FzdCIsICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkbyIsICJkb3VibGUiLCAiZWxzZSIsICJleHRlbmRzIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFsc2UiLCAiZmluYWwiLCAiZ290byIsICJpZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wbGVtZW50cyIsICJpbXBvcnQiLCAiaW5uZXIiLCAiaW5zdGFuY2VvZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50IiwgIm9wZXJhdG9yIiwgIm91dGVyIiwgInBhY2thZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhdGUiLCAicHJvdGVjdGVkIiwgInB1YmxpYyIsICJyZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW5jaHJvbml6ZWQiLCAidGhpcyIsICJ0aHJvdyIsICJ0aHJvd3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zaWVudCIsICJ0cnVlIiwgInRyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2F0Y2giLCAiY2hhciIsICJjb25zdCIsICJjb250aW51ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWxseSIsICJmbG9hdCIsICJmb3IiLCAiZnV0dXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZW5lcmljIiwgImludGVyZmFjZSIsICJsb25nIiwgIm5hdGl2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmV3IiwgIm51bGwiLCAicmV0dXJuIiwgInNob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0aWMiLCAic3VwZXIiLCAic3dpdGNoIiwgInZhciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidm9pZCIsICJ2b2xhdGlsZSIsICJ3aGlsZSIsICJjbGFzcyJ9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGphdmFXb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaHQucHV0KGphdmFXb3Jkc1tpXSwgZkRlZmF1bHRLZXl3b3JkU3R5bGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmQ29sb3JlciA9IG5ldyBDb2xvcmVyKGh0KTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgICAgICBjb2xvclJhbmdlKDAsIHRleHQubGVuZ3RoKCksIHRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSwgcGFuZWwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTW9kaWZpZXJDYWNoZSA9IG5ldyBIYXNodGFibGUoMik7CisgICAgICAgIGZNb2RpZmllckNhY2hlLnB1dChmRGVmYXVsdEtleXdvcmRTdHlsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihmRGVmYXVsdEtleXdvcmRTdHlsZSkpOworICAgICAgICBmTW9kaWZpZXJDYWNoZS5wdXQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZNb2RpZnlpbmcpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IChNVGV4dFBhbmVsKSBlLmdldFNvdXJjZSgpOworICAgICAgICAKKyAgICAgICAgZmluYWwgTUNvbnN0VGV4dCB0ZXh0ID0gcGFuZWwuZ2V0VGV4dCgpOworICAgICAgICBpbnQgc3RhcnQgPSB0ZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCk7CisgICAgICAgIGludCBsaW1pdCA9IHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKTsKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dEl0ZXIgPSB0ZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBmQnJlYWtJdGVyLnNldFRleHQodGV4dEl0ZXIpOworICAgICAgICBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGZCcmVha0l0ZXIubGFzdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkJyZWFrSXRlci5mb2xsb3dpbmcoc3RhcnQtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IGZCcmVha0l0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobGltaXQgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBmQnJlYWtJdGVyLmZvbGxvd2luZyhsaW1pdCk7CisgICAgICAgICAgICAvL2ludCBsOworICAgICAgICAgICAgaWYgKChmQnJlYWtJdGVyLnByZXZpb3VzKCkpIDw9IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBmQnJlYWtJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZk1vZGlmeWluZyA9IHRydWU7CisgICAgICAgIGNvbG9yUmFuZ2Uoc3RhcnQsIGxpbWl0LCB0ZXh0SXRlciwgcGFuZWwpOworICAgICAgICBmTW9kaWZ5aW5nID0gZmFsc2U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb2xvclJhbmdlKGZpbmFsIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0SXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBmQ29sb3Jlci5zZXQodGV4dEl0ZXIsIHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgTUNvbnN0VGV4dCBvbGRUZXh0ID0gcGFuZWwuZ2V0VGV4dCgpOworICAgICAgICBNVGV4dCBuZXdUZXh0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChmQ29sb3Jlci5uZXh0KCkpIHsKKworICAgICAgICAgICAgaW50IHJhbmdlU3RhcnQgPSBmQ29sb3Jlci5jdXJyZW50U3RhcnQoKTsKKyAgICAgICAgICAgIGludCByYW5nZUxpbWl0ID0gZkNvbG9yZXIuY3VycmVudExpbWl0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZDb2xvcmVyLmN1cnJlbnRTdHlsZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob2xkVGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJhbmdlU3RhcnQpIDwgcmFuZ2VMaW1pdCB8fAorICAgICAgICAgICAgICAgICAgICBvbGRUZXh0LmNoYXJhY3RlclN0eWxlQXQocmFuZ2VTdGFydCkgIT0gc3R5bGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBjc3RhcnQgPSByYW5nZVN0YXJ0LXN0YXJ0OworICAgICAgICAgICAgICAgIGludCBjbGltaXQgPSByYW5nZUxpbWl0LXN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChuZXdUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3VGV4dCA9IG5ldyBTdHlsZWRUZXh0KG9sZFRleHQsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kID0gKFN0eWxlTW9kaWZpZXIpIGZNb2RpZmllckNhY2hlLmdldChzdHlsZSk7CisgICAgICAgICAgICAgICAgbmV3VGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMoY3N0YXJ0LCBjbGltaXQsIG1vZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChuZXdUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBwYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZExpbWl0ID0gcGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhbmVsLnJlcGxhY2VSYW5nZShuZXdUZXh0LCBzdGFydCwgbGltaXQpOyAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgcGFuZWwuc2VsZWN0KG9sZFN0YXJ0LCBvbGRMaW1pdCk7CisgICAgICAgICAgICBpZiAob2xkU3RhcnQgPT0gb2xkTGltaXQpIHsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZCA9IChTdHlsZU1vZGlmaWVyKSBmTW9kaWZpZXJDYWNoZS5nZXQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICAKKyAgICAgICAgVGV4dEZyYW1lIGYgPSBuZXcgVGV4dEZyYW1lKCk7CisgICAgICAgIGYuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGYuc2V0U2l6ZSg0MDAsIDMwMCk7CisgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBmLmdldFRleHRQYW5lbCgpOworICAgICAgICBwYW5lbC5hZGRMaXN0ZW5lcihuZXcgU3ludGF4Q29sb3JlcihwYW5lbCkpOworICAgICAgICBmLnNob3coKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vVGV4dERvY3VtZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODViZTNiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vVGV4dERvY3VtZW50LmphdmEKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisgKiBBIFRleHREb2N1bWVudCBoYW5kbGVzIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIGEgZmlsZSBvbiBkaXNrCisgKiBhbmQgYSBUZXh0UGFuZWwuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0RG9jdW1lbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVGX1NJWkUgPSAxMDI0OworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGZUaXRsZTsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBGaWxlIGZGaWxlOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNNb2RpZmllZCA9IGZhbHNlOworICAgIHByaXZhdGUgaW50IGZGb3JtYXQgPSBTVFlMRURfVEVYVDsKKyAgICAKKyAgICBwcml2YXRlIFRleHREb2N1bWVudChTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBmVGl0bGUgPSB0aXRsZTsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRmlsZSA9IGZpbGU7CisgICAgICAgIHNldEZvcm1hdChmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRURfVEVYVCA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUExBSU5fVEVYVCA9IDE7CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiBhIG5ldyBUZXh0RG9jdW1lbnQgd2l0aCBubyBhc3NvY2lhdGVkIGZpbGUgYW5kCisgICAgICogZW1wdHkgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRleHREb2N1bWVudCBjcmVhdGVFbXB0eShTdHJpbmcgdGl0bGUsIGludCBmb3JtYXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgVGV4dERvY3VtZW50KHRpdGxlLCBuZXcgU3R5bGVkVGV4dCgpLCBudWxsLCBmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBUZXh0RG9jdW1lbnQgY3JlYXRlZCBmcm9tIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBmaWxlLiAgVGhpcyBtZXRob2QgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgZmlsZSBjYW5ub3QKKyAgICAgKiBiZSByZWFkLiAgSW4gcGFydGljdWxhciwgaWYgdGhlIGZvcm1hdCBpcyBnaXZlbiBhcyBTVFlMRURfVEVYVAorICAgICAqIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBjb250YWluIGEgc2VyaWFsaXplZCBNQ29uc3RUZXh0LCAKKyAgICAgKiB0aGlzIG1ldGhvZCB3aWxsIHRocm93IFN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRleHREb2N1bWVudCBjcmVhdGVGcm9tRmlsZShGaWxlIGZpbGUsIGludCBmb3JtYXQpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgaWYgKGZvcm1hdCAhPSBTVFlMRURfVEVYVCAmJiBmb3JtYXQgIT0gUExBSU5fVEVYVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0OworICAgICAgICBpZiAoZm9ybWF0ID09IFNUWUxFRF9URVhUKSB7CisgICAgICAgICAgICB0ZXh0ID0gcmVhZE1UZXh0KGZpbGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGV4dCA9IHJlYWRNVGV4dEZyb21UZXh0RmlsZShmaWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gbmV3IFRleHREb2N1bWVudChmaWxlLmdldE5hbWUoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBkb2N1bWVudCdzIHRleHQgZGlmZmVycyBmcm9tIHRoZSBjb250ZW50cworICAgICAqIG9mIGl0cyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gaXNNb2RpZmllZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIE1UZXh0UGFuZWwgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZWRpdCB0aGUgZG9jdW1lbnQncworICAgICAqIHRleHQuICBUaGUgZG9jdW1lbnQncyB0ZXh0IGJlY29tZXMgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAqIE1UZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHQgPSBmVGV4dFBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgICAgIGlzTW9kaWZpZWQgPSBmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0VGV4dChmVGV4dCk7CisgICAgICAgICAgICBmVGV4dCA9IG51bGw7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKGlzTW9kaWZpZWQpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jbGVhckNvbW1hbmRMb2coKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRmlsZSBnZXRGaWxlKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkZpbGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGRvY3VtZW50J3MgZmlsZS4gIFRoZSBkb2N1bWVudCdzIHRpdGxlIHdpbGwKKyAgICAgKiBjaGFuZ2UgdG8gdGhlIGZpbGUgbmFtZS4gIFRoZSBmaWxlIGNhbm5vdCBiZSBudWxsLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpbGUoRmlsZSBmaWxlKSB7CisgICAgICAgIAorICAgICAgICBmRmlsZSA9IGZpbGU7CisgICAgICAgIGZUaXRsZSA9IGZpbGUuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGZvcm1hdCBvZiB0aGlzIGRvY3VtZW50LiAgVGhlIGZvcm1hdCBkZXRlcm1pbmVzCisgICAgICogd2hldGhlciB0aGUgZG9jdW1lbnQgd2lsbCBiZSB3cml0dGVuIHRvIGZpbGVzIGFzIHN0eWxlZAorICAgICAqIHRleHQgb3IgcGxhaW4gY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXQoaW50IGZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZvcm1hdCAhPSBTVFlMRURfVEVYVCAmJiBmb3JtYXQgIT0gUExBSU5fVEVYVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICBmRm9ybWF0ID0gZm9ybWF0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZvcm1hdCBvZiB0aGlzIGRvY3VtZW50LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFdyaXRlIHRoZSBkb2N1bWVudCdzIHRleHQgdG8gaXRzIGZpbGUuICBJZiB0aGUgZG9jdW1lbnQgZG9lcworICAgICAqIG5vdCBoYXZlIGFuIGFzc29jaWF0ZWQgZmlsZSB0aGVuIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzYXZlQXMuICBUaGlzIG1ldGhvZCByZXR1cm5zIHRydWUgaWYgdGhlIHNhdmUgb3BlcmF0aW9uIHN1Y2NlZWRzLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHNhdmUoKSB7CisKKyAgICAgICAgaWYgKGZGaWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBzYXZlIHdpdGhvdXQgYSBmaWxlLiIpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgYm9vbGVhbiBzdWNjZXNzID0gZkZvcm1hdD09U1RZTEVEX1RFWFQ/IHdyaXRlTVRleHQoZkZpbGUsIHRleHQpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUGxhaW5NVGV4dChmRmlsZSwgdGV4dCk7CisgICAgICAgIGlmIChzdWNjZXNzICYmIGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRNb2RpZmllZChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm4gdGhpcyBkb2N1bWVudCdzIHN0eWxlZCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlRleHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZlRleHRQYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0aXRsZSBvZiB0aGlzIGRvY3VtZW50LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGl0bGUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRpdGxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0IHNlcmlhbGl6ZWQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogSW4gY2FzZSBvZiBhbiBlcnJvciByZXR1cm4gbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBNQ29uc3RUZXh0IHJlYWRNVGV4dChGaWxlIGZpbGUpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpblN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5TdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluU3RyZWFtKTsKKworICAgICAgICAgICAgcmV0dXJuIChNQ29uc3RUZXh0KSBvYmpTdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGluU3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpblN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBnaXZlbiBmaWxlIGFzIGEgcGxhaW4gdGV4dCBmaWxlLCBhbmQgcmV0dXJuIGl0cworICAgICAqIGNvbnRlbnRzIGFzIGFuIE1Db25zdFRleHQuICBUaGUgY2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGggc3R5bGVzIGluIAorICAgICAqIHRoZSByZXR1cm5lZCB0ZXh0IHdpbGwgYmUgRU1QVFlfQVRUUklCVVRFX01BUC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBNQ29uc3RUZXh0IHJlYWRNVGV4dEZyb21UZXh0RmlsZShGaWxlIGZpbGUpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaW4gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluID0gbmV3IEZpbGVSZWFkZXIoZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbQlVGX1NJWkVdOworICAgICAgICAgICAgaW50IHJlYWQ7CisgICAgICAgICAgICB3aGlsZSAoKHJlYWQ9aW4ucmVhZChidWYsIDAsIGJ1Zi5sZW5ndGgpKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShsZW4sIGxlbiwgYnVmLCAwLCByZWFkLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChpbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIHNhdmUgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiB3cml0ZU1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgT3V0cHV0U3RyZWFtIG91dFN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0U3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShvdXRTdHJlYW0pOworCisgICAgICAgICAgICBvYmpTdHJlYW0ud3JpdGVPYmplY3QodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAob3V0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV3JpdGUgdGhlIGdpdmVuIE1Db25zdFRleHQgdG8gdGhlIGdpdmVuIGZpbGUgYXMgcGxhaW4gdGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHdyaXRlUGxhaW5NVGV4dChGaWxlIGZpbGUsIE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisgICAgICAgIE91dHB1dFN0cmVhbVdyaXRlciBvdXRTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG91dFN0cmVhbSA9IG5ldyBGaWxlV3JpdGVyKGZpbGUpOworICAgICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW0JVRl9TSVpFXTsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBNYXRoLm1pbihsZW5ndGgtc3RhcnQsIGJ1Zi5sZW5ndGgpOworICAgICAgICAgICAgICAgIHRleHQuZXh0cmFjdENoYXJzKHN0YXJ0LCBzdGFydCtjb3VudCwgYnVmLCAwKTsKKyAgICAgICAgICAgICAgICBvdXRTdHJlYW0ud3JpdGUoYnVmLCAwLCBjb3VudCk7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gY291bnQ7CisgICAgICAgICAgICB9IHdoaWxlIChzdGFydCA8IGxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKG91dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgb3V0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2N2NlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPlByb3ZpZGVzIEVkaXREZW1vLCBhIHNpbXBsZSwgbXVsdGlwbGUtZG9jdW1lbnQgc3R5bGVkIHRleHQgZWRpdG9yLCBidWlsdCB3aXRoIHRoZSByaWNodGV4dCBjbGFzc2VzIGluIHRoZSB0ZXh0cGFuZWwgYW5kIHRleHRmcmFtZSBwYWNrYWdlcy48L3A+CisKKzxwPlRvIHJ1biB0aGUgZGVtbywgdHlwZTogCis8dHQ+PGJsb2NrcXVvdGU+ICBqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8gWy1zd2luZ10gW2ZpbGVdKjwvYmxvY2txdW90ZT4KK0l0IHdpbGwgdXNlIGEgU3dpbmcgR1VJIGlmIDxjb2RlPi1zd2luZzwvY29kZT4gaXMgcHJlc2VudCwgb3RoZXJ3aXNlIGl0IHdpbGwgdXNlIGFuIEFXVCBHVUkuICBPbmUgb3IgbW9yZSA8Y29kZT5maWxlPC9jb2RlPiBhcmd1bWVudHMgY2FuIGJlIHByZXNlbnQsIHRoZXNlIG11c3QgYmUgZmlsZXMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCB3aXRoIHRoZSBFZGl0RGVtby4gIEEgc2VwYXJhdGUgd2luZG93IHdpbGwgYmUgb3BlbmVkIGZvciBlYWNoIGZpbGUuPC9wPgorCis8cD5PdGhlciBjbGFzc2VzIGluIHRoaXMgcGFja2FnZSBhcmUgc3VwcG9ydGluZyBjbGFzc2VzIGZvciB0aGUgRWRpdERlbW8uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YiBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRhNzIwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L21hbmlmZXN0LnN0dWIKQEAgLTAsMCArMSwxMyBAQAorTWFpbi1DbGFzczogY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vCitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBSaWNoRWRpdAorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAyLjYKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgZm9yIEphdmEgUmljaEVkaXQKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDIuNgorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvci1JZDogY29tLmlibQorCitOYW1lOiBjb20vaWJtL3JpY2h0ZXh0CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvTUNvbnN0VGV4dFByaW50YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvTUNvbnN0VGV4dFByaW50YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIyYmMxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQucHJpbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBUaGlzIGNsYXNzJ3MgaW50ZXJmYWNlIGlzIHZlcnkgY2xvc2UgdG8gdGhhdCBvZiB0aGUgSkRLIDEuMiBQcmludGFibGUgCisgKiBpbnRlcmZhY2UsIGJ1dCBjYW4gZXhlY3V0ZSBvbiBKREsgMS4xLiAgT24gMS4yLCB0aGlzIGNsYXNzIGlzIHdyYXBwZWQKKyAqIGluIGEgcmVhbCBQcmludGFibGUuICBPbiAxLjEsIHRoZSBQcmludENvbnRleHQgY2xhc3MgdXNlcyB0aGlzIGNsYXNzCisgKiBhbmQgYSBQcmludEpvYiBmb3IgcHJpbnRpbmcuCisgKgorICogTm90ZSB0aGF0IHRoaXMgY2xhc3MgcGFnaW5hdGVzIHRoZSB0ZXh0IGluIHRoZSBmaXJzdCBjYWxsIHRvIHByaW50LAorICogb3IgdG8gZ2V0UGFnZUNvdW50LgorICogQWZ0ZXIgY29uc3RydWN0aW9uLCBpdHMgcGFnZSBzaXplIGlzIGVzc2VudGlhbGx5IGZpeGVkLiAgVGhpcyBpcyBub3QgCisgKiBhcyBmbGV4aWJsZSBhcyB0aGUgMS4yIGNsYXNzZXMgYWxsb3csIGJ1dCBpdCBzaG91bGQgc3VmZmljZS4KKyAqLworZmluYWwgY2xhc3MgTUNvbnN0VGV4dFByaW50YWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgc3RhdGljIGZpbmFsIGludCBQQUdFX0VYSVNUUyA9IDA7CisgICAgc3RhdGljIGZpbmFsIGludCBOT19TVUNIX1BBR0UgPSAxOworICAgIAorICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFN0eWxlczsKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBmUGFnZVJlY3Q7CisgICAgCisgICAgLy8gSWYgdGhlc2UgdHdvIGZpZWxkcyBhcmUgbnVsbCB0aGUgdGV4dCBoYXMgbm90IGJlZW4gcGFnaW5hdGVkLgorICAgIHByaXZhdGUgTUZvcm1hdHRlciBmRm9ybWF0dGVyOworICAgIHByaXZhdGUgVmVjdG9yIGZQYWdlU3RhcnRzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIE1Db25zdFRleHRQcmludGFibGUgdG8gcHJpbnQgdGhlIGdpdmVuIHRleHQuICBFYWNoIHBhZ2Ugd2lsbCBmaXQKKyAgICAgKiBpbnRvIHBhZ2VSZWN0LgorICAgICAqLworICAgIE1Db25zdFRleHRQcmludGFibGUoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHBhZ2VSZWN0KSB7CisKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFN0eWxlcyA9IGRlZmF1bHRTdHlsZXM7CisgICAgICAgIGZQYWdlUmVjdCA9IG5ldyBSZWN0YW5nbGUocGFnZVJlY3QpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5hdCh0ZXh0Lmxlbmd0aCgpLTEpOworICAgICAgICAgICAgcmV0dXJuIGNoID09ICdcbicgfHwgY2ggPT0gJ1x1MjAyOSc7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGFnaW5hdGUoR3JhcGhpY3MgZ3JhcGhpY3MpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmUGFnZVN0YXJ0cyA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIgPSBNRm9ybWF0dGVyLmNyZWF0ZUZvcm1hdHRlcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUGFnZVJlY3Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcyk7CisgCisgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KEludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisKKyAgICAgICAgICAgIGZQYWdlU3RhcnRzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGluZUNvdW50ID0gZkZvcm1hdHRlci5nZXRMaW5lQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KGZUZXh0KSkgeworICAgICAgICAgICAgICAgIGxpbmVDb3VudCAtPSAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3RhcnRMaW5lID0gMDsKKyAgICAgICAgICAgIGZQYWdlU3RhcnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoc3RhcnRMaW5lKSk7CisgICAgICAgICAgICBpbnQgc3RhcnRIZWlnaHQgPSAwOworICAgICAgICAgICAgZmluYWwgaW50IHBhZ2VIZWlnaHQgPSBmUGFnZVJlY3QuaGVpZ2h0OworCisgICAgICAgICAgICB3aGlsZSAoc3RhcnRMaW5lIDwgbGluZUNvdW50KSB7CisKKyAgICAgICAgICAgICAgICBpbnQgbmV4dFN0YXJ0ID0gZkZvcm1hdHRlci5saW5lQXRIZWlnaHQoc3RhcnRIZWlnaHQgKyBwYWdlSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBmUGFnZVN0YXJ0cy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKG5leHRTdGFydCkpOworICAgICAgICAgICAgICAgIHN0YXJ0SGVpZ2h0ID0gZkZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KG5leHRTdGFydCk7CisgICAgICAgICAgICAgICAgc3RhcnRMaW5lID0gbmV4dFN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGdpdmVuIHBhZ2UgaW4gdGhlIGdpdmVuIGdyYXBoaWNzLiAgUGFnZSBudW1iZXJzIGFyZQorICAgICAqIDAtYmFzZWQuICBUaGUgdGhlIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlcgorICAgICAqIHRoZSBwYWdlIG51bWJlciBpcyB2YWxpZCAoYXMgaW4gSkRLIDEuMikuICBTaW5jZSB5b3UgY2FuIGdldCB0aGUgcGFnZSBjb3VudAorICAgICAqIGRpcmVjdGx5LCB0aGVyZSdzIHJlYWxseSBubyBleGN1c2UgZm9yIHBhc3NpbmcgaW4gYW4gaW52YWxpZCBwYWdlCisgICAgICogaW5kZXguCisgICAgICogQHBhcmFtIGdyYXBoaWNzIHRoZSBHcmFwaGljcyB0byBwcmludCB0bworICAgICAqIEBwYXJhbSBwYWdlTnVtYmVyIHRoZSAwLWJhc2VkIHBhZ2UgbnVtYmVyLiAgU2hvdWxkIGJlIG5vbm5lZ2F0aXZlIGFuZAorICAgICAqIGxlc3MgdGhhbiBnZXRQYWdlQ291bnQoKQorICAgICAqIEByZXR1cm4gUEFHRV9FWElTVFMgaWYgdGhlIHBhZ2UgbnVtYmVyIGlzIHZhbGlkLCBvciAKKyAgICAgKiAgICAgICAgIE5PX1NVQ0hfUEFHRSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBpbnQgcHJpbnQoR3JhcGhpY3MgZ3JhcGhpY3MsIGludCBwYWdlTnVtYmVyKSB7CisgICAgICAgIAorICAgICAgICBwYWdpbmF0ZShncmFwaGljcyk7CisgICAgICAgIAorICAgICAgICBpZiAocGFnZU51bWJlciA8IGdldFBhZ2VDb3VudChncmFwaGljcykgJiYgcGFnZU51bWJlciA+PSAwKSB7CisgICAgICAgICAgICBncmFwaGljcy5zZXRDb2xvcihDb2xvci5ibGFjayk7IC8vIHdvcmthcm91bmQgZm9yIDEuMiBwcmludGluZyBidWcKKyAgICAgICAgICAgIGludCBzdGFydExpbmUgPSAoKEludGVnZXIpZlBhZ2VTdGFydHMuZWxlbWVudEF0KHBhZ2VOdW1iZXIpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IGxpbWl0TGluZSA9ICgoSW50ZWdlcilmUGFnZVN0YXJ0cy5lbGVtZW50QXQocGFnZU51bWJlcisxKSkuaW50VmFsdWUoKTsKKworICAgICAgICAgICAgaW50IHRvcE9mUGFnZSA9IGZGb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChzdGFydExpbmUpOworICAgICAgICAgICAgaW50IHBhZ2VIZWlnaHQgPSBmRm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQobGltaXRMaW5lKSAtIHRvcE9mUGFnZTsKKworICAgICAgICAgICAgUG9pbnQgb3JpZ2luID0gbmV3IFBvaW50KGZQYWdlUmVjdC54LCBmUGFnZVJlY3QueSAtIHRvcE9mUGFnZSk7CisgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QgPSBuZXcgUmVjdGFuZ2xlKGZQYWdlUmVjdCk7CisgICAgICAgICAgICBkcmF3UmVjdC5oZWlnaHQgPSBwYWdlSGVpZ2h0OworICAgICAgICAgICAgCisgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZ3JhcGhpY3MsIGRyYXdSZWN0LCBvcmlnaW4pOworICAgICAgICAgICAgcmV0dXJuIFBBR0VfRVhJU1RTOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE5PX1NVQ0hfUEFHRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZSBwcmludGVkLgorICAgICAqIEBwYXJhbSBncmFwaGljcyBhIEdyYXBoaWNzIGluc3RhbmNlIHJlcHJlc2VudGF0aXZlIG9mIHRob3NlIAorICAgICAqIHdoaWNoIHdpbGwgYmUgcHJpbnRlZCBpbnRvCisgICAgICovCisgICAgaW50IGdldFBhZ2VDb3VudChHcmFwaGljcyBncmFwaGljcykgeworICAgICAgICAKKyAgICAgICAgcGFnaW5hdGUoZ3JhcGhpY3MpOworICAgICAgICByZXR1cm4gZlBhZ2VTdGFydHMuc2l6ZSgpIC0gMTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRDb250ZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jODFhZjljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRDb250ZXh0LmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LnByaW50LlBhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRhYmxlOworaW1wb3J0IGphdmEuYXd0LnByaW50LlByaW50ZXJKb2I7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRlckV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgUHJpbnRDb250ZXh0IGltcGxlbWVudHMgUHJpbnRhYmxlIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0UHJpbnRhYmxlIGZQcmludGFibGU7CisgICAgCisgICAgUHJpbnRDb250ZXh0KE1Db25zdFRleHQgdGV4dCwgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZXMsIFBhZ2VGb3JtYXQgcGYpIHsKKyAgICAgICAgCisgICAgICAgIGludCB3aWR0aCA9IChpbnQpIE1hdGgucm91bmQocGYuZ2V0SW1hZ2VhYmxlV2lkdGgoKSk7CisgICAgICAgIGludCBoZWlnaHQgPSAoaW50KSBNYXRoLnJvdW5kKHBmLmdldEltYWdlYWJsZUhlaWdodCgpKTsKKyAgICAgICAgaW50IGxlZnQgPSAoKChpbnQpTWF0aC5yb3VuZChwZi5nZXRXaWR0aCgpKSkgLSB3aWR0aCkgLyAyOworICAgICAgICBpbnQgdG9wID0gKCgoaW50KU1hdGgucm91bmQocGYuZ2V0SGVpZ2h0KCkpKSAtIGhlaWdodCkgLyAyOworICAgICAgICAKKyAgICAgICAgUmVjdGFuZ2xlIHBhZ2VSZWN0ID0gbmV3IFJlY3RhbmdsZShsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICBmUHJpbnRhYmxlID0gbmV3IE1Db25zdFRleHRQcmludGFibGUodGV4dCwgZGVmYXVsdFN0eWxlcywgcGFnZVJlY3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IHByaW50KEdyYXBoaWNzIGdyYXBoaWNzLAorICAgICAgICAgICAgICAgICAgICAgUGFnZUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICBpbnQgcGFnZUluZGV4KSB0aHJvd3MgUHJpbnRlckV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAoZmFsc2UpCisgICAgICAgICAgICB0aHJvdyBuZXcgUHJpbnRlckV4Y2VwdGlvbigic2F2ZSB0cmVlcyIpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChmUHJpbnRhYmxlLnByaW50KGdyYXBoaWNzLCBwYWdlSW5kZXgpID09IE1Db25zdFRleHRQcmludGFibGUuUEFHRV9FWElTVFMpIHsKKyAgICAgICAgICAgIHJldHVybiBQQUdFX0VYSVNUUzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBOT19TVUNIX1BBR0U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgdXNlclByaW50VGV4dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGpvYlRpdGxlKSB7CisKKyAgICAgICAgUHJpbnRlckpvYiBqb2IgPSBQcmludGVySm9iLmdldFByaW50ZXJKb2IoKTsKKyAgICAgICAgam9iLnNldEpvYk5hbWUoam9iVGl0bGUpOworICAgICAgICBpZiAoam9iLnByaW50RGlhbG9nKCkpIHsKKyAgICAgICAgICAgIGpvYi5zZXRQcmludGFibGUobmV3IFByaW50Q29udGV4dCh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBqb2IuZGVmYXVsdFBhZ2UoKSkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBqb2IucHJpbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKFByaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRlciBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50aW5nVXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50aW5nVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODVkMDg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQucHJpbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCisvKioKKyAqIFByaW50aW5nVXRpbHMgY29udGFpbnMgYSBzdGF0aWMgbWV0aG9kIGZvciBwcmludGluZyBzdHlsZWQgdGV4dC4KKyAqIEBzZWUgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFByaW50aW5nVXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIC8vIEtlZXAgaXQgb3V0IG9mIEphdmFkb2MuLi4KKyAgICBwcml2YXRlIFByaW50aW5nVXRpbHMoKSB7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFByaW50IHRoZSBnaXZlbiB0ZXh0LiAgQSBQcmludCBkaWFsb2cgaXMgcHJlc2VudGVkIHRvIHRoZSB1c2VyOworICAgICAqIHVubGVzcyB0aGUgdXNlciBjYW5jZWxzLCB0aGUgdGV4dCBpcyBwcmludGVkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIHByaW50CisgICAgICogQHBhcmFtIGRlZmF1bHRTdHlsZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIGF0dHJpYnV0ZXMKKyAgICAgKiBAcGFyYW0gZnJhbWUgdGhlIHBhcmVudCBvZiB0aGUgUHJpbnQgZGlhbG9nCisgICAgICogQHBhcmFtIGpvYlRpdGxlIHRoZSB0aXRsZSBvZiB0aGUgUHJpbnRKb2IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdXNlclByaW50VGV4dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGpvYlRpdGxlKSB7CisKKyAgICAgICAgUHJpbnRDb250ZXh0LnVzZXJQcmludFRleHQodGV4dCwgZGVmYXVsdFN0eWxlcywgZnJhbWUsIGpvYlRpdGxlKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5MDZlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCEtLSAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIHByaW50aW5nIGZvciBzdHlsZWQgdGV4dC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg3ZWUzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsMzc3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoqIEFuIGltcGxlbWVudGF0aW9uIG9mIE1DaGFyQnVmZmVyIHRoYXQgc3RvcmVzIGNoYXJzIGluIGFuIGFycmF5IHdpdGggYW4gaW5zZXJ0aW9uIGdhcC4gKi8KKy8qCisgICAgQ2hhbmdlIGhpc3RvcnkKKyAgICAwNzIzOTYgamYgICAtIGZpeGVkIGEgYnVnIGluIHJlcGxhY2UoaW50LCBpbnQsIGNoYXJbXSwgaW50LCBpbnQpIHNvIHRoYXQgaXQgY29ycmVjdGx5CisgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBidWZmZXIuCisgICAgMDgwMjk2IGpmICAgLSBhZGRlZCB0aW1lc3RhbXAuICBUaGlzIGlzIHN0cmljdGx5IGEgZGVidWdnaW5nIGRldmljZSB0byBoZWxwIGNhdGNoCisgICAgICAgICAgICAgICAgc3RhbGUgaXRlcmF0b3JzLgorCisgICAgMDgyMjk2IGpiciAgYWRkZWQgY2hlY2sgZm9yIDAtbGVuZ3RoIGl0ZXJhdG9yIGluIHJlcGxhY2UKKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ZpbmFsIGNsYXNzIENoYXJCdWZmZXIKKyAgICBleHRlbmRzIE1DaGFyQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrR3Jvd1NpemUgPSAweDgwOyAvLyBzbWFsbCBzaXplIGZvciB0ZXN0aW5nCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOyAvLyB2ZXJzaW9uIGNvZGUgZm9yIHN0cmVhbWluZworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA1NjMxNzQ7CisKKyAgdHJhbnNpZW50IFZhbGlkYXRpb24gZlZhbGlkYXRpb24gPSBudWxsOworICBwcml2YXRlIGNoYXJbXSBmQXJyYXk7CisgIHRyYW5zaWVudCBwcml2YXRlIGludCBmQXJyYXlTaXplOworICB0cmFuc2llbnQgcHJpdmF0ZSBpbnQgZkdhcDsKKworICAvKiogQ3JlYXRlIGFuIGVtcHR5IGNoYXIgYnVmZmVyLiAqLworICBwdWJsaWMgQ2hhckJ1ZmZlcigpCisgIHsKKyAgfQorCisgIC8qKiBDcmVhdGUgYSBjaGFyIGJ1ZmZlciB0aGF0IGNhbiBob2xkIGF0IGxlYXN0IGNhcGFjaXR5IGNoYXJzLiAqLworCisgIHB1YmxpYyBDaGFyQnVmZmVyKGludCBjYXBhY2l0eSkKKyAgeworICAgIGZBcnJheSA9IGFsbG9jYXRlKGNhcGFjaXR5KTsKKyAgfQorCisgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgIGlmIChpbi5yZWFkSW50KCkgIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW52YWxpZCB2ZXJzaW9uIG9mIENoYXJCdWZmZXIiKTsKKyAgICB9CisKKyAgICBmQXJyYXkgPSAoY2hhcltdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgaWYgKGZBcnJheSAhPSBudWxsKSB7CisgICAgICAgIGZBcnJheVNpemUgPSBmQXJyYXkubGVuZ3RoOworICAgICAgICBmR2FwID0gZkFycmF5U2l6ZTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZBcnJheVNpemUgPSAwOworICAgICAgICBmR2FwID0gMDsKKyAgICB9CisgIH0KKworICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICBjb21wcmVzcygpOworICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgIG91dC53cml0ZU9iamVjdChmQXJyYXkpOworICB9CisKKyAgcHJpdmF0ZSB2b2lkIGludmFsaWRhdGUoKSB7CisKKyAgICBpZiAoZlZhbGlkYXRpb24gIT0gbnVsbCkgeworICAgICAgICBmVmFsaWRhdGlvbi5pbnZhbGlkYXRlKCk7CisgICAgICAgIGZWYWxpZGF0aW9uID0gbnVsbDsKKyAgICB9CisgIH0KKworICAvLyBub3QgVGhyZWFkU2FmZSAtIGNvdWxkIGVuZCB1cCB3aXRoIHR3byBWYWxpZGF0aW9ucworICAvLyBiZWluZyBnZW5lcmF0ZWQKKyAgcHJpdmF0ZSBWYWxpZGF0aW9uIGdldFZhbGlkYXRpb24oKSB7CisKKyAgICBpZiAoZlZhbGlkYXRpb24gPT0gbnVsbCkgeworICAgICAgICBmVmFsaWRhdGlvbiA9IG5ldyBWYWxpZGF0aW9uKCk7CisgICAgfQorICAgIHJldHVybiBmVmFsaWRhdGlvbjsKKyAgfQorCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggdGhlIGNoYXJzIGZyb20gc3JjU3RhcnQgdG8gc3JjTGltaXQgaW4gc3JjQnVmZmVyLiAqLworCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggdGhlIGNoYXJzIGZyb20gc3JjU3RhcnQgdG8gc3JjTGltaXQgaW4gc3JjQ2hhcnMuCisgICogVGhpcyBpcyB0aGUgY29yZSByb3V0aW5lIGZvciBtYW5pcHVsYXRpbmcgdGhlIGJ1ZmZlci4KKyAgKi8KKyAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIHNyY0NoYXJzLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpbnQgZHN0TGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKyAgICBpbnQgc3JjTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKworICAgIGlmIChkc3RMZW5ndGggPCAwIHx8IHNyY0xlbmd0aCA8IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIHNyY0NoYXJzLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkiKTsKKyAgICB9CisKKyAgICBpbnQgZ2FwQWxsb2MgPSAwOworICAgIGlmIChzcmNDaGFycyA9PSBudWxsKSB7CisgICAgICAgIGdhcEFsbG9jID0gc3JjTGVuZ3RoOworICAgICAgICBzcmNMZW5ndGggPSAwOworICAgIH0KKworICAgIGludCBuZXdTaXplID0gZkFycmF5U2l6ZSAtIGRzdExlbmd0aCArIHNyY0xlbmd0aDsKKworICAgIGlmIChmQXJyYXkgPT0gbnVsbCkgeworICAgICAgICBpZiAoc3RhcnQgIT0gMCB8fCBsaW1pdCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSIpOworICAgICAgICB9CisgICAgICAgIGlmIChuZXdTaXplICsgZ2FwQWxsb2MgPiAwKSB7CisgICAgICAgICAgICBmQXJyYXkgPSBhbGxvY2F0ZShuZXdTaXplICsgZ2FwQWxsb2MpOworICAgICAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyY0NoYXJzLCBzcmNTdGFydCwgZkFycmF5LCAwLCBzcmNMZW5ndGgpOworICAgICAgICAgICAgICAgIGZBcnJheVNpemUgPSBzcmNMZW5ndGg7CisgICAgICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGludCBuZXdHYXAgPSBzdGFydCArIHNyY0xlbmd0aDsKKyAgICAgICAgaW50IGdhcExpbWl0ID0gZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwOworCisgICAgICAgIGlmIChuZXdTaXplICsgZ2FwQWxsb2MgPiBmQXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyW10gdGVtcCA9IGFsbG9jYXRlKG5ld1NpemUgKyBnYXBBbGxvYyk7CisKKyAgICAgICAgICAgIC8vbW92ZSBzdHVmZiBhdCBiZWdpbm5pbmcgdGhhdCB3ZSBhcmVuJ3Qgd3JpdGluZyBvdmVyCisgICAgICAgICAgICBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgYXQoMCwgc3RhcnQsIHRlbXAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9tb3ZlIHN0dWZmIGZyb20gc3JjIGFycmF5IHRoYXQgd2UgYXJlIGNvcHlpbmcKKyAgICAgICAgICAgIGlmIChzcmNMZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmNDaGFycywgc3JjU3RhcnQsIHRlbXAsIHN0YXJ0LCBzcmNMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9tb3ZlIHN0dWZmIGF0IGVuZCB0aGF0IHdlIGFyZW4ndCBjb3B5aW5nIG92ZXIKKyAgICAgICAgICAgIGlmIChsaW1pdCA8IGZBcnJheVNpemUpIHsKKyAgICAgICAgICAgICAgICBhdChsaW1pdCwgZkFycmF5U2l6ZSwgdGVtcCwgdGVtcC5sZW5ndGggLSBuZXdTaXplICsgbmV3R2FwKTsKKyAgICAgICAgICAgIC8vY2hhbmdlIDctMjMtOTYKKyAgICAgICAgICAgIC8vICAgIGF0KGxpbWl0LCBmQXJyYXlTaXplIC0gbGltaXQsIHRlbXAsIHRlbXAubGVuZ3RoIC0gbmV3U2l6ZSArIG5ld0dhcCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZBcnJheSA9IHRlbXA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPiBmR2FwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGdhcExpbWl0LCBmQXJyYXksIGZHYXAsIHN0YXJ0IC0gZkdhcCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGltaXQgPCBmR2FwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGxpbWl0LCBmQXJyYXksIGZBcnJheS5sZW5ndGggLSBuZXdTaXplICsgbmV3R2FwLCBmR2FwIC0gbGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyY0NoYXJzLCBzcmNTdGFydCwgZkFycmF5LCBzdGFydCwgc3JjTGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZBcnJheVNpemUgPSBuZXdTaXplOworICAgICAgICBmR2FwID0gbmV3R2FwOworICAgIH0KKyAgfQorCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggdGhlIGNoYXJzIGZyb20gc3JjU3RhcnQgdG8gc3JjTGltaXQgaW4gc3JjU3RyaW5nLiAqLworCisgIC8qIFRoaXMgaW1wbGVtZW50cyBvcHRpbWl6YXRpb25zIGZvciBudWxsIHRleHQgb3IgaW5zZXJ0aW5nIHRleHQgdGhhdCBmaXRzIGF0IHRoZSBnYXAsCisgICAgIGFuZCBkZWZhdWx0cyB0byBjYWxsIHRoZSBjb3JlIHJlcGxhY2Ugcm91dGluZSBpZiB0aGVzZSBvcHRpbWl6YXRpb25zIGZhaWwuICovCisKKyAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgIHsKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpbWl0IC0gc3JjU3RhcnQ7CisKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKHNyY0xlbmd0aCk7CisgICAgICAgICAgICBzcmNTdHJpbmcuZ2V0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCBmQXJyYXksIDApOworICAgICAgICAgICAgZkFycmF5U2l6ZSA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIGZHYXAgPSBzcmNMZW5ndGg7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc3RhcnQgPT0gZkdhcCAmJiBmQXJyYXkubGVuZ3RoID49IGZBcnJheVNpemUgLSBsZW5ndGggKyBzcmNMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChzcmNMaW1pdCA+IDApIHsKKyAgICAgICAgICAgICAgICBzcmNTdHJpbmcuZ2V0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCBmQXJyYXksIGZHYXApOworICAgICAgICAgICAgICAgIGZHYXAgKz0gc3JjTGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkFycmF5U2l6ZSArPSBzcmNMZW5ndGggLSBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjU3RyaW5nICE9IG51bGwgPyBzcmNTdHJpbmcudG9DaGFyQXJyYXkoKSA6IG51bGwsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgICAgIH0KKyAgICB9CisgIH0KKworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgIGludCBzcmNMZW5ndGggPSBzcmNMaW1pdCAtIHNyY1N0YXJ0OworCisgICAgaWYgKGZBcnJheSA9PSBudWxsKSB7CisgICAgICAgIGlmIChzdGFydCAhPSAwIHx8IGxpbWl0ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyBzcmNTdHJpbmcsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSIpOworICAgICAgICB9CisgICAgICAgIGlmIChzcmNMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBmQXJyYXkgPSBhbGxvY2F0ZShzcmNMZW5ndGgpOworICAgICAgICAgICAgc3JjVGV4dC5leHRyYWN0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCBmQXJyYXksIDApOworICAgICAgICAgICAgZkFycmF5U2l6ZSA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIGZHYXAgPSBzcmNMZW5ndGg7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc3RhcnQgPT0gZkdhcCAmJiBmQXJyYXkubGVuZ3RoID49IGZBcnJheVNpemUgLSBsZW5ndGggKyBzcmNMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChzcmNMaW1pdCA+IDApIHsKKyAgICAgICAgICAgICAgICBzcmNUZXh0LmV4dHJhY3RDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgZkdhcCk7CisgICAgICAgICAgICAgICAgZkdhcCArPSBzcmNMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmQXJyYXlTaXplICs9IHNyY0xlbmd0aCAtIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wID0gc3JjTGVuZ3RoID09IDA/IG51bGwgOiBuZXcgY2hhcltzcmNMZW5ndGhdOworICAgICAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNyY1RleHQuZXh0cmFjdENoYXJzKHNyY1N0YXJ0LCBzcmNMaW1pdCwgdGVtcCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGVtcCwgMCwgc3JjTGltaXQgLSBzcmNTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisgIH0KKworICAvKiogUmVwbGFjZSB0aGUgY2hhcnMgZnJvbSBzdGFydCB0byBsaW1pdCB3aXRoIHNyY0NoYXIuICovCisKKyAgLyogVGhpcyBpbXBsZW1lbnRzIG9wdGltaXphdGlvbnMgZm9yIG51bGwgdGV4dCBvciByZXBsYWNpbmcgYSBjaGFyYWN0ZXIgdGhhdCBmaXRzIGludG8gdGhlIGdhcCwKKyAgICAgYW5kIGRlZmF1bHRzIHRvIGNhbGwgdGhlIGNvcmUgcmVwbGFjZSByb3V0aW5lIGlmIHRoZXNlIG9wdGltaXphdGlvbnMgZmFpbC4gKi8KKworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIpCisgIHsKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaWYgKGZBcnJheSA9PSBudWxsKSB7CisgICAgICAgIGlmIChzdGFydCAhPSAwIHx8IGxpbWl0ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcikiKTsKKyAgICAgICAgfQorICAgICAgICBmQXJyYXkgPSBhbGxvY2F0ZSgxKTsKKyAgICAgICAgZkFycmF5WzBdID0gc3JjQ2hhcjsKKyAgICAgICAgZkFycmF5U2l6ZSA9IDE7CisgICAgICAgIGZHYXAgPSAxOworICAgIH0gZWxzZSB7CisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAoc3RhcnQgPT0gZkdhcCAmJiBmQXJyYXkubGVuZ3RoID4gZkFycmF5U2l6ZSAtIGxlbmd0aCkgeworICAgICAgICAgICAgZkFycmF5W2ZHYXBdID0gc3JjQ2hhcjsKKyAgICAgICAgICAgIGZHYXAgKz0gMTsKKyAgICAgICAgICAgIGZBcnJheVNpemUgKz0gMSAtIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBuZXcgY2hhcltdIHsgc3JjQ2hhcn0gLCAwLCAxKTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBSZXR1cm4gdGhlIGNoYXIgYXQgcG9zLiAqLworCisgIHB1YmxpYyBjaGFyIGF0KGludCBwb3MpCisgIHsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPj0gZkFycmF5U2l6ZSkgeworICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKyAgICByZXR1cm4gcG9zIDwgZkdhcCA/IGZBcnJheVtwb3NdIDogZkFycmF5W2ZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgcG9zXTsKKyAgfQorCisgIC8qKiBDb3B5IHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHRvIGRzdCBzdGFydGluZyBhdCBkc3RTdGFydC4gKi8KKworICBwdWJsaWMgdm9pZCBhdChpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGRzdCwgaW50IGRzdFN0YXJ0KQorICB7CisgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisKKyAgICBpZiAoc3RhcnQgPCAwIHx8IGxpbWl0IDwgc3RhcnQgfHwgbGltaXQgPiBmQXJyYXlTaXplKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBpZiAobGltaXQgPD0gZkdhcCkgeworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgc3RhcnQsIGRzdCwgZHN0U3RhcnQsIGxlbmd0aCk7CisgICAgfSBlbHNlIGlmIChzdGFydCA+PSBmR2FwKSB7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkFycmF5LCBmQXJyYXkubGVuZ3RoIC0gZkFycmF5U2l6ZSArIHN0YXJ0LCBkc3QsIGRzdFN0YXJ0LCBsZW5ndGgpOworICAgIH0gZWxzZSB7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkFycmF5LCBzdGFydCwgZHN0LCBkc3RTdGFydCwgZkdhcCAtIHN0YXJ0KTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgZkdhcCwgZHN0LCBkc3RTdGFydCArIGZHYXAgLSBzdGFydCwgbGltaXQgLSBmR2FwKTsKKyAgICB9CisgIH0KKworICAvKiogUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGJ1ZmZlci4gKi8KKworICBwdWJsaWMgZmluYWwgaW50IGxlbmd0aCgpCisgIHsKKyAgICByZXR1cm4gZkFycmF5U2l6ZTsKKyAgfQorCisgIC8qKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyB0aGUgYnVmZmVyIGNhbiBob2xkIGJlZm9yZSBpdCBtdXN0IHJlYWxsb2NhdGUuICovCisKKyAgcHVibGljIGZpbmFsIGludCBjYXBhY2l0eSgpCisgIHsKKyAgICByZXR1cm4gZkFycmF5ICE9IG51bGwgPyBmQXJyYXkubGVuZ3RoIDogMDsKKyAgfQorCisgIC8qKiBSZXNlcnZlIGNhcGFjaXR5IGNoYXJzIGF0IHN0YXJ0LiBVdGlsaXR5IHRvIG9wdGltaXplIGEgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBhdCBzdGFydC4gKi8KKworICBwdWJsaWMgdm9pZCByZXNlcnZlQ2FwYWNpdHkoaW50IHN0YXJ0LCBpbnQgY2FwYWNpdHkpCisgIHsKKyAgICByZXBsYWNlKHN0YXJ0LCBzdGFydCwgKGNoYXJbXSludWxsLCAwLCBjYXBhY2l0eSk7CisgIH0KKworICAvKiogTWluaW1pemUgdGhlIHN0b3JhZ2UgdXNlZCBieSB0aGUgYnVmZmVyLiAqLworCisgIHB1YmxpYyB2b2lkIGNvbXByZXNzKCkKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpZiAoZkFycmF5U2l6ZSA9PSAwKSB7CisgICAgICAgIGZBcnJheSA9IG51bGw7CisgICAgICAgIGZHYXAgPSAwOworICAgIH0gZWxzZSBpZiAoZkFycmF5U2l6ZSAhPSBmQXJyYXkubGVuZ3RoKSB7CisgICAgICAgIGNoYXJbXSB0ZW1wID0gbmV3IGNoYXJbZkFycmF5U2l6ZV07CisgICAgICAgIGF0KDAsIGZBcnJheVNpemUsIHRlbXAsIDApOworICAgICAgICBmQXJyYXkgPSB0ZW1wOworICAgICAgICBmR2FwID0gZkFycmF5U2l6ZTsKKyAgICB9CisgIH0KKworICAvKiogRGlzcGxheSB0aGUgYnVmZmVyLiAqLworCisgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICB7CisgICAgaWYgKGZBcnJheSAhPSBudWxsKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCkKKyAgICAgICAgLmFwcGVuZCgibGltaXQ6ICIpLmFwcGVuZChmQXJyYXkubGVuZ3RoKQorICAgICAgICAuYXBwZW5kKCIsIHNpemU6ICIpLmFwcGVuZChmQXJyYXlTaXplKQorICAgICAgICAuYXBwZW5kKCIsIGdhcDogIikuYXBwZW5kKGZHYXApCisgICAgICAgIC5hcHBlbmQoIiwgIikuYXBwZW5kKGZBcnJheSwgMCwgZkdhcCkKKyAgICAgICAgLmFwcGVuZChmQXJyYXksIGZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgZkdhcCwgZkFycmF5U2l6ZSAtIGZHYXApCisgICAgICAgIC50b1N0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKCJUaGUgYnVmZmVyIGlzIGVtcHR5LiIpOworICAgIH0KKyAgfQorCisgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgVmFsaWRhdGlvbiB2YWwgPSBnZXRWYWxpZGF0aW9uKCk7CisgICAgcmV0dXJuIG5ldyBDaGFyQnVmZmVySXRlcmF0b3Ioc3RhcnQsIGxpbWl0LCBmQXJyYXksIGZBcnJheVNpemUsIGZHYXAsIHZhbCk7CisgIH0KKworICAvKiogVGhlIHJlc2l6aW5nIGFsZ29yaXRobS4gUmV0dXJuIGEgdmFsdWUgPj0gbWluU2l6ZS4gKi8KKworICBwcm90ZWN0ZWQgaW50IGFsbG9jYXRpb24oaW50IG1pblNpemUpCisgIHsKKyAgICAvLyAgICByZXR1cm4gKG1pblNpemUgKyBrR3Jvd1NpemUpICYgfihrR3Jvd1NpemUgLSAxKTsKKyAgICByZXR1cm4gbWluU2l6ZSA8IGtHcm93U2l6ZSA/IGtHcm93U2l6ZSA6IChtaW5TaXplICogMiArIGtHcm93U2l6ZSkgJiB+KGtHcm93U2l6ZSAtIDEpOworICB9CisKKyAgLyoqIEFsbG9jYXRlIGEgbmV3IGNoYXJhY3RlciBhcnJheSBvZiBsaW1pdCA+PSBtaW5TaXplLiAqLworCisgIHByb3RlY3RlZCBjaGFyW10gYWxsb2NhdGUoaW50IG1pblNpemUpCisgIHsKKyAgICByZXR1cm4gbmV3IGNoYXJbYWxsb2NhdGlvbihtaW5TaXplKV07CisgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1OGQwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ZpbmFsIGNsYXNzIENoYXJCdWZmZXJJdGVyYXRvciBpbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvbmVhYmxlCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBmUmFuZ2VTdGFydDsKKyAgICBwcml2YXRlIGludCBmUmFuZ2VMaW1pdDsKKyAgICBwcml2YXRlIGludCBmQ3VycmVudEluZGV4OworICAgIHByaXZhdGUgY2hhciBmU3RvcmFnZVtdOworICAgIHByaXZhdGUgaW50IGZHYXA7CisgICAgcHJpdmF0ZSBpbnQgZkdhcExlbmd0aDsKKyAgICBwcml2YXRlIFZhbGlkYXRpb24gZlZhbGlkYXRpb247CisKKyAgICBDaGFyQnVmZmVySXRlcmF0b3IoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ2FwLAorICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0aW9uIHZhbGlkYXRpb24pIHsKKworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic3RhcnQgPiBsaW1pdCIpOworICAgICAgICB9CisgICAgICAgIGZSYW5nZVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIGZSYW5nZUxpbWl0ID0gbGltaXQ7CisgICAgICAgIGZDdXJyZW50SW5kZXggPSBmUmFuZ2VTdGFydDsKKyAgICAgICAgZlN0b3JhZ2UgPSBzdG9yYWdlOworICAgICAgICBmR2FwID0gZ2FwOworICAgICAgICBmR2FwTGVuZ3RoID0gKHN0b3JhZ2U9PW51bGw/IDAgOiBzdG9yYWdlLmxlbmd0aCkgLSBsZW5ndGg7CisgICAgICAgIGZWYWxpZGF0aW9uID0gdmFsaWRhdGlvbjsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tWYWxpZGF0aW9uKCkgeworCisgICAgICAgIGlmICghZlZhbGlkYXRpb24uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhdG9yIGlzIG5vIGxvbmdlciB2YWxpZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEluZGV4KGZSYW5nZVN0YXJ0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBsYXN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBzZXRJbmRleChmUmFuZ2VMaW1pdCAtIDEpOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKQorICAgIHsKKyAgICAgICAgY2hlY2tWYWxpZGF0aW9uKCk7CisgICAgICAgIGlmIChmQ3VycmVudEluZGV4IDwgZlJhbmdlU3RhcnQgfHwgZkN1cnJlbnRJbmRleCA+PSBmUmFuZ2VMaW1pdCkKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICBpbnQgaSA9IChmQ3VycmVudEluZGV4IDwgZkdhcCkgPyBmQ3VycmVudEluZGV4IDogKGZDdXJyZW50SW5kZXggKyBmR2FwTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGZTdG9yYWdlW2ldOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgIHsKKyAgICAgICAgY2hlY2tWYWxpZGF0aW9uKCk7CisgICAgICAgIGZDdXJyZW50SW5kZXgrKzsKKyAgICAgICAgaWYgKGZDdXJyZW50SW5kZXggPj0gZlJhbmdlTGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZDdXJyZW50SW5kZXggPSBmUmFuZ2VMaW1pdDsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIGludCBpID0gKGZDdXJyZW50SW5kZXggPCBmR2FwKSA/IGZDdXJyZW50SW5kZXggOiAoZkN1cnJlbnRJbmRleCArIGZHYXBMZW5ndGgpOworICAgICAgICByZXR1cm4gZlN0b3JhZ2VbaV07CisgICAgfQorCisgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKQorICAgIHsKKyAgICAgICAgZkN1cnJlbnRJbmRleC0tOworICAgICAgICBpZiAoZkN1cnJlbnRJbmRleCA+PSBmUmFuZ2VTdGFydCkKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIGZDdXJyZW50SW5kZXggPSBmUmFuZ2VTdGFydDsKKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgc2V0SW5kZXgoaW50IGkpCisgICAgeworICAgICAgICBpZiAoaSA8IGZSYW5nZVN0YXJ0IHx8IGkgPiBmUmFuZ2VMaW1pdCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGk7CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUmFuZ2VTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUmFuZ2VMaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmQ3VycmVudEluZGV4OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvRmFzdEludEJpbmFyeVNlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9GYXN0SW50QmluYXJ5U2VhcmNoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk5M2UyOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0Zhc3RJbnRCaW5hcnlTZWFyY2guamF2YQpAQCAtMCwwICsxLDExNSBAQAorLyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKi8KKworLyoKKyAgICA3LzI5Lzk2CisgICAgICAgIE1vZGlmaWVkIHRvIHNlYXJjaCBwb3J0aW9ucyBvZiBhbiBpbnRlZ2VyIGFycmF5LiAgU2hvdWxkIGJlIHJldGVzdGVkLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBzZWFyY2hlcyBhIHNlZ21lbnQgb2YgYW4gYXJyYXkgb2YgaW50ZWdlcnMuICBUaGUgc2VnbWVudAorICogbXVzdCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIChidXQgdGhpcyBjbGFzcyBkb2VzIG5vdCB2ZXJpZnkgdGhpcykuCisgKiBBbHNvLCB0aGlzIGNsYXNzIGFsaWFzZXMgdGhlIGFycmF5OyAgaWYgdGhlIGFycmF5IGlzIG1vZGlmaWVkIGxhdGVyIHRoZQorICogc2VhcmNoIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAqLworZmluYWwgY2xhc3MgRmFzdEludEJpbmFyeVNlYXJjaAoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZGF0YUFycmF5W107CisgICAgcHJpdmF0ZSBpbnQgYXV4U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgcG93ZXI7CisKKyAgICBwcml2YXRlIGludCBmRmlyc3RJbmRleDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBleHAyW10gPSB7IDEsIDIsIDQsIDgsIDE2LCAzMiwgNjQsIDEyOCwgMjU2LCA1MTIsIDEwMjQsIDIwNDgsIDQwOTYsIDgxOTIsIDE2Mzg0LCAzMjc2OCwgNjU1MzYsIDEzMTA3MiB9OworCisgICAgcHVibGljIEZhc3RJbnRCaW5hcnlTZWFyY2goaW50IGRhdGFbXSkKKyAgICB7CisgICAgICAgIHRoaXMoZGF0YSwgMCwgZGF0YS5sZW5ndGgpOworICAgIH0KKworICAgIHB1YmxpYyBGYXN0SW50QmluYXJ5U2VhcmNoKGludCBkYXRhW10sIGludCBmaXJzdFZhbGlkSW5kZXgsIGludCB2YWxpZExlbmd0aCkKKyAgICB7CisgICAgICAgIHNldERhdGEoZGF0YSwgZmlyc3RWYWxpZEluZGV4LCB2YWxpZExlbmd0aCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldERhdGEoaW50IGRhdGFbXSkgeworICAgICAgICAKKyAgICAgICAgc2V0RGF0YShkYXRhLCAwLCBkYXRhLmxlbmd0aCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldERhdGEoaW50IGRhdGFbXSwgaW50IGZpcnN0VmFsaWRJbmRleCwgaW50IHZhbGlkTGVuZ3RoKSB7CisKKyAgICAgICAgaWYgKGRhdGEubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICBpZiAoZGF0YS5sZW5ndGggPj0gZXhwMltleHAyLmxlbmd0aC0xXSkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworCisgICAgICAgIGRhdGFBcnJheSA9IGRhdGE7CisgICAgICAgIGZGaXJzdEluZGV4ID0gZmlyc3RWYWxpZEluZGV4OworCisgICAgICAgIGZvciAocG93ZXIgPSBleHAyLmxlbmd0aC0xOyBwb3dlciA+IDAgJiYgdmFsaWRMZW5ndGggPCBleHAyW3Bvd2VyXTsgcG93ZXItLSkge30KKworICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBhcnJheS5sZW5ndGggPj0gMl5wb3dlcgorCisgICAgICAgIGF1eFN0YXJ0ID0gdmFsaWRMZW5ndGggLSBleHAyW3Bvd2VyXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBpbiB0aGUgYXJyYXkgb2YgdGhlIGZpcnN0IGVsZW1lbnQgd2hpY2ggaXMgYXQgbGVhc3QKKyAgICAgKiBhcyBsYXJnZSBhcyA8dHQ+dmFsdWU8L3R0Pi4gIElmIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0CisgICAgICogZWxlbWVudCBpbiB0aGUgYXJyYXkgdGhlIGxhc3QgdmFsaWQgaW5kZXggaW4gdGhlIGFycmF5IGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmluZEluZGV4KGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IGV4cDJbcG93ZXJdLTEgKyBmRmlyc3RJbmRleDsKKyAgICAgICAgaWYgKHZhbHVlID49IGRhdGFBcnJheVthdXhTdGFydCArIGZGaXJzdEluZGV4XSkgeworICAgICAgICAgICAgaW5kZXggKz0gYXV4U3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBpbmRleCBpcyB0aGUgInVwcGVyIGxpbWl0IiBvZiB0aGUgc2VhcmNoCisKKyAgICAgICAgc3dpdGNoIChwb3dlcikgeworICAgICAgICBjYXNlIDE3OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTY1NTM2XSkgaW5kZXggLT0gNjU1MzY7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMzI3NjhdKSBpbmRleCAtPSAzMjc2ODsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xNjM4NF0pIGluZGV4IC09IDE2Mzg0OworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTgxOTJdKSBpbmRleCAtPSA4MTkyOworICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTQwOTZdKSBpbmRleCAtPSA0MDk2OworICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTIwNDhdKSBpbmRleCAtPSAyMDQ4OworICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTEwMjRdKSBpbmRleCAtPSAxMDI0OworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTUxMl0pIGluZGV4IC09IDUxMjsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTI1Nl0pIGluZGV4IC09IDI1NjsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTEyOF0pIGluZGV4IC09IDEyODsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTY0XSkgaW5kZXggLT0gNjQ7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0zMl0pIGluZGV4IC09IDMyOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTZdKSBpbmRleCAtPSAxNjsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LThdKSBpbmRleCAtPSA4OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNF0pIGluZGV4IC09IDQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0yXSkgaW5kZXggLT0gMjsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTFdKSBpbmRleCAtPSAxOworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXhdKSBpbmRleCAtPSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01DaGFyQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01DaGFyQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNhYmY3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNoYXJCdWZmZXIuamF2YQpAQCAtMCwwICsxLDM2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKiogQSBkeW5hbWljIGNoYXJhY3RlciBhcnJheSBvcHRpbWl6ZWQgZm9yIHNlcXVlbmNlcyBvZiBpbnNlcnQKKyAgICBvciBkZWxldGUgb3BlcmF0aW9ucyBpbiBhIGxvY2FsIHJlZ2lvbi4gKi8KKworYWJzdHJhY3QgY2xhc3MgTUNoYXJCdWZmZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCk7CisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyBzcmNTdHJpbmcsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcik7CisgICAgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworICAgIGFic3RyYWN0IGNoYXIgYXQoaW50IHBvcyk7CisgICAgYWJzdHJhY3Qgdm9pZCBhdChpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGRzdCwgaW50IGRzdFN0YXJ0KTsKKworICAgIGFic3RyYWN0IGludCAgbGVuZ3RoKCk7CisKKyAgICBhYnN0cmFjdCBpbnQgIGNhcGFjaXR5KCk7CisgICAgYWJzdHJhY3Qgdm9pZCByZXNlcnZlQ2FwYWNpdHkoaW50IHBvcywgaW50IGxlbmd0aCk7CisgICAgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ29uc3RUZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDE4ZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ29uc3RUZXh0LmphdmEKQEAgLTAsMCArMSwzMjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3I7CisKKy8qKgorICogTUNvbnN0VGV4dCBpcyBhIGJhc2UgY2xhc3MgZm9yIHRleHQgd2l0aCBtdWx0aXBsZSBjaGFyYWN0ZXIgYW5kCisgKiBwYXJhZ3JhcGggc3R5bGVzLiAgVGhlIHRleHQgaXMgYSBzZXF1ZW5jZSBvZiBVbmljb2RlIGNoYXJhY3RlcnMsCisgKiByZXByZXNlbnRlZCBieSA8Y29kZT5jaGFyPC9jb2RlPi4gIENoYXJhY3RlciBhbmQgcGFyYWdyYXBoCisgKiBzdHlsZXMgYXJlIHJlcHJlc2VudGVkIGJ5IHRoZSA8Y29kZT5BdHRyaWJ1dGVNYXA8L2NvZGU+IGNsYXNzLgorICogPHA+CisgKiBDaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGFyZSBhY2Nlc3NlZCB3aXRoIGFuIGludGVnZXIgaW5kZXggdXNpbmcgdGhlCisgKiA8Y29kZT5hdDwvY29kZT4gbWV0aG9kLgorICogVmFsaWQgaW5kaWNlcyBhcmUgYmV0d2VlbiAwIGFuZCAobGVuZ3RoLTEpLCB3aGVyZSBsZW5ndGggaXMgdGhlIG51bWJlcgorICogb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4gIEFkZGl0aW9uYWxseSwgdGhlCisgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG1heSBiZSBhY2Nlc3NlZCB0aHJvdWdoIGEKKyAqIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisgKiA8cD4KKyAqIEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBoYXMgYSBjaGFyYWN0ZXIgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIGl0LAorICogcmVwcmVzZW50ZWQgYnkgdGhlIDxjb2RlPkF0dHJpYnV0ZU1hcDwvY29kZT4gY2xhc3MuICBUaGUgY2hhcmFjdGVyCisgKiBzdHlsZSBmb3IgYSBwYXJ0aWN1bGFyIGNoYXJhY3RlciBjYW4gYmUgb2J0YWluZWQgdXNpbmcgdGhlCisgKiA8Y29kZT5jaGFyYWN0ZXJTdHlsZUF0PC9jb2RlPiBtZXRob2QuCisgKiA8cD4KKyAqIEVhY2ggY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGNvbnRhaW5lZCBpbiBhIHBhcmFncmFwaC4gIEEgcGFyYWdyYXBoCisgKiBpcyBhIHJhbmdlIG9mIHRleHQgaW5jbHVkaW5nIGFuZCB0ZXJtaW5hdGVkIGJ5IGEKKyAqIHBhcmFncmFwaCBzZXBhcmF0b3IgKGVpdGhlciA8Y29kZT5cbjwvY29kZT4gb3IgPGNvZGU+VSsyMDI5PC9jb2RlPikuCisgKiBFdmVyeQorICogcGFyYWdyYXBoIGhhcyBhIHBhcmFncmFwaCBzdHlsZSBhc3NvY2lhdGVkIHdpdGggaXQsIHJlcHJlc2VudGVkCisgKiBieSB0aGUgPGNvZGU+QXR0cmlidXRlTWFwPC9jb2RlPiBjbGFzcy4gIFBhcmFncmFwaCBib3VuZGFyaWVzIGFuZAorICogc3R5bGVzIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSBNQ29uc3RUZXh0LgorICogPHA+CisgKiBUaGlzIGNsYXNzIGRvZXMgbm90IGhhdmUgbWV0aG9kcyBmb3IgbW9kaWZ5aW5nIHRoZSB0ZXh0IG9yIHN0eWxlcy4KKyAqIEhvd2V2ZXIsIHN1YmNsYXNzZXMgbWF5IGFkZCB0aGlzIGNhcGFiaWxpdHksIHNvIGl0IGlzIG5vdCBzYWZlIHRvCisgKiBhc3N1bWUgdGhhdCBhbiBNQ29uc3RUZXh0IGluc3RhbmNlIGlzIGltbXV0YWJsZS4gIEluIHBhcnRpY3VsYXIsCisgKiB0aGUgTVRleHQgY2xhc3MgYWRkcyBtb2RpZmljYXRpb24gcHJvdG9jb2wgdG8gdGhpcyBjbGFzcy4gIENsaWVudHMKKyAqIGNhbiBkZXRlY3Qgd2hldGhlciBhbiBNQ29uc3RUZXh0IGhhcyBjaGFuZ2VkIGJ5IGtlZXBpbmcgdHJhY2sgb2YgaXRzCisgKiB0aW1lc3RhbXAuCisgKiA8cD4KKyAqIEEgRGF0YUZsYXZvciBmb3IgY2xpcGJvYXJkIGNvbnRlbnQgaXMgZGVmaW5lZCBpbiB0aGlzIGNsYXNzLiAgVXNpbmcKKyAqIHRoaXMgRGF0YUZsYXZvciBpbnN1cmVzIHRoYXQgYWxsIGNsaWVudHMgd2lsbCByZWNvZ25pemUgTUNvbnN0VGV4dAorICogY29udGVudCBvbiB0aGUgY2xpcGJvYXJkLgorICogQHNlZSBNVGV4dAorICogQHNlZSBBdHRyaWJ1dGVNYXAKKyAqIEBzZWUgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIGphdmEuYXd0LmRhdGF0cmFuc2Zlci5EYXRhRmxhdm9yCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNQ29uc3RUZXh0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogVGhlIERhdGFGbGF2b3IgZm9yIE1Db25zdFRleHQgY2xpcGJvYXJkIGNvbnRlbnQuICBVc2VkIHRvCisgICAgICogaW5kaWNhdGUgdGhhdCBjbGlwYm9hcmQgZGF0YSBoYXMgYW4gTUNvbnN0VGV4dCByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGFGbGF2b3Igc3R5bGVkVGV4dEZsYXZvciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGFGbGF2b3IoTUNvbnN0VGV4dC5jbGFzcywgIlN0eWxlZCBUZXh0Iik7CisKKyAgICBwcm90ZWN0ZWQgTUNvbnN0VGV4dCgpIHsKKyAgICB9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIENIQVJBQ1RFUiBBQ0NFU1MKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgY2hhciBhdChpbnQgcG9zKTsKKworLyoqCisqIENvcHkgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikKKyogaW50byB0aGUgYXJyYXkgPGNvZGU+ZHN0PC9jb2RlPiwgYmVnaW5uaW5nIGF0IDxjb2RlPmRzdFN0YXJ0PC9jb2RlPi4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXJyYXkKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgd2hpY2ggd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXJyYXkKKyogQHBhcmFtIGRzdCBhcnJheSBpbiB3aGljaCB0byBjb3B5IGNoYXJhY3RlcnMuICBUaGUgbGVuZ3RoIG9mIDxjb2RlPmRzdDwvY29kZT4gbXVzdCBiZSBhdCBsZWFzdAorKiAoPGNvZGU+ZHN0U3RhcnQgKyBsaW1pdCAtIHN0YXJ0PC9jb2RlPikuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGV4dHJhY3RDaGFycyhpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGRzdCwgaW50IGRzdFN0YXJ0KTsKKworLyoqCisqIENyZWF0ZSBhbiBNQ29uc3RUZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UKKyogWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcmV0dXJuIGFuIE1Db25zdFRleHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIGFic3RyYWN0IE1Db25zdFRleHQgZXh0cmFjdChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qKgorKiBDcmVhdGUgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgYWxsCisqIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBjYWxscworKiA8Y29kZT5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigwLCBsZW5ndGgoKSk8L2NvZGU+CisqIEByZXR1cm4gYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgYWxsCisqICAgICAgb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQKKyovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkgeworCisgICAgICAgIHJldHVybiBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigwLCBsZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogQ3JlYXRlIGEgPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIHRoZQorKiBnaXZlbiByYW5nZSBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LgorKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGluZGV4IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorKiBAcmV0dXJuIGEgPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIHRoZQorKiAgICAgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIGFic3RyYWN0IENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KTsKKworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTSVpFL0NBUEFDSVRZCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIE1Db25zdFRleHQgb2JqZWN0LiAgVGhlIGxlbmd0aCBpcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuCisqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgTUNvbnN0VGV4dCBvYmplY3QKKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsZW5ndGgoKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQ2hhcmFjdGVyIHN0eWxlcworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVuCisqIGNvbnRhaW5pbmcgcG9zLiAgQWxsIGNoYXJhY3RlcnMgaW4gYSBzdHlsZSBydW4gaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXIKKyogc3R5bGUuCisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hhcmFjdGVyU3R5bGVTdGFydChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVuCisqIGNvbnRhaW5pbmcgcG9zLiAgQWxsIGNoYXJhY3RlcnMgaW4gYSBzdHlsZSBydW4gaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXIKKyogc3R5bGUuCisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hhcmFjdGVyU3R5bGVMaW1pdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgc3R5bGUgYXBwbGllZCB0byB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBjaGFyYWN0ZXJTdHlsZUF0KGludCBwb3MpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBQQVJBR1JBUEggQk9VTkRBUklFUworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoTGltaXQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBhcHBsaWVkIHRvIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBpbiBlZmZlY3QgYXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQXR0cmlidXRlTWFwIHBhcmFncmFwaFN0eWxlQXQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGN1cnJlbnQgdGltZSBzdGFtcC4gIFRoZSB0aW1lIHN0YW1wIGlzCisqIGluY3JlbWVudGVkIHdoZW5ldmVyIHRoZSBjb250ZW50cyBvZiB0aGUgTUNvbnN0VGV4dCBjaGFuZ2VzLgorKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBhcmFncmFwaCBzdHlsZSB0aW1lIHN0YW1wCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VGltZVN0YW1wKCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLiAgSWYgdGhlIHN0YXJ0IGlzIG5vdCBsZXNzCisqIHRoYW4gdGhlIHRoZSBsaW1pdCBvZiB0aGUgZGFtYWdlZCByYW5nZSwgdGhlbiB0aGUgZGFtYWdlZCByYW5nZQorKiBpcyBlbXB0eS4KKyogQHJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UKKyogQHNlZSAjZGFtYWdlZFJhbmdlTGltaXQKKyogQHNlZSBNVGV4dCNyZXNldERhbWFnZWRSYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGRhbWFnZWRSYW5nZVN0YXJ0KCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLiAgSWYgdGhlIHN0YXJ0IGlzIG5vdCBsZXNzCisqIHRoYW4gdGhlIHRoZSBsaW1pdCBvZiB0aGUgZGFtYWdlZCByYW5nZSwgdGhlbiB0aGUgZGFtYWdlZCByYW5nZQorKiBpcyBlbXB0eS4KKyogQHJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UKKyogQHNlZSAjZGFtYWdlZFJhbmdlU3RhcnQKKyogQHNlZSBNVGV4dCNyZXNldERhbWFnZWRSYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGRhbWFnZWRSYW5nZUxpbWl0KCk7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEVxdWFsaXR5IGFuZCBoYXNoQ29kZQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdCBmb3IgZXF1YWxpdHkuICBUaGlzIGlzCisqIGVxdWFsIHRvIHJocyBpZiByaHMgaXMgYW4gTUNvbnN0VGV4dCB3aGljaCBpcyBlcXVhbAorKiB0byB0aGlzLgorKiBAcGFyYW0gcmhzIE9iamVjdCB0byBjb21wYXJlIHRvCisqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGVxdWFscyA8Y29kZT5yaHM8L2NvZGU+CisqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgTUNvbnN0VGV4dCBvdGhlclRleHQ7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG90aGVyVGV4dCA9IChNQ29uc3RUZXh0KSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlcXVhbHMob3RoZXJUZXh0KTsKKyAgICB9CisKKy8qKgorKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBNQ29uc3RUZXh0IGZvciBlcXVhbGl0eS4gIFRoaXMgaXMKKyogZXF1YWwgdG8gcmhzIGlmIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gcmhzIGFyZSB0aGUKKyogc2FtZSBhcyB0aGlzLiAgU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBpbXBsZW1lbnRhdGlvbgorKiBmb3IgZWZmaWNpZW5jeSwgYnV0IHRoZXkgc2hvdWxkIHByZXNlcnZlIHRoZXNlIHNlbWFudGljcy4KKyogRGV0ZXJtaW5pbmcgdGhhdCB0d28gTUNvbnN0VGV4dCBpbnN0YW5jZXMgYXJlIGVxdWFsIG1heSBiZQorKiBhbiBleHBlbnNpdmUgb3BlcmF0aW9uLCBzaW5jZSBldmVyeSBjaGFyYWN0ZXIgYW5kIHN0eWxlIG11c3QKKyogYmUgY29tcGFyZWQuCisqIEBwYXJhbSByaHMgT2JqZWN0IHRvIGNvbXBhcmUgdG8KKyogQHJldHVybiB0cnVlIGlmIHRoaXMgZXF1YWxzIDxjb2RlPnJoczwvY29kZT4KKyovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE1Db25zdFRleHQgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmhzID09IHRoaXMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc2hDb2RlKCkgIT0gcmhzLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsZW5ndGggPSBsZW5ndGgoKTsKKyAgICAgICAgaWYgKGxlbmd0aCAhPSByaHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSA8IGxlbmd0aCAmJiBhdChpKSAhPSByaHMuYXQoaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDwgbGVuZ3RoOykgeworICAgICAgICAgICAgaWYgKCFjaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0KS5lcXVhbHMocmhzLmNoYXJhY3RlclN0eWxlQXQoc3RhcnQpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaW1pdCA9IGNoYXJhY3RlclN0eWxlTGltaXQoc3RhcnQpOworICAgICAgICAgICAgaWYgKGxpbWl0ICE9IHJocy5jaGFyYWN0ZXJTdHlsZUxpbWl0KHN0YXJ0KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDwgbGVuZ3RoOykgeworCisgICAgICAgICAgICBpZiAoIXBhcmFncmFwaFN0eWxlQXQoc3RhcnQpLmVxdWFscyhyaHMucGFyYWdyYXBoU3R5bGVBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBwYXJhZ3JhcGhMaW1pdChzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcGFyYWdyYXBoU3R5bGVBdChsZW5ndGgpLmVxdWFscyhyaHMucGFyYWdyYXBoU3R5bGVBdChsZW5ndGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2hDb2RlIGZvciB0aGlzIE1Db25zdFRleHQuICBBbiBlbXB0eSBNQ29uc3RUZXh0CisgICAgICogaGFzIGhhc2hDb2RlIDA7ICBhIG5vbmVtcHR5IE1Db25zdFRleHQncyBoYXNoQ29kZSBpcworICAgICAqIDxibG9ja3F1b3RlPjxwcmU+CisgICAgICogICAgICAgYXQoMCkgKworICAgICAqICAgICAgIGF0KGxlbmd0aC8yKSozMV4xICsKKyAgICAgKiAgICAgICBhdChsZW5ndGgtMSkqMzFeMiArCisgICAgICogICAgICAgY2hhcmFjdGVyU3R5bGVBdCgwKS5oYXNoQ29kZSgpKjMxXjMgKworICAgICAqICAgICAgIHBhcmFncmFwaFN0eWxlQXQobGVuZ3RoLTEpLmhhc2hDb2RlKCkqMzFeNAorICAgICAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAgICAgKiB3aGVyZSA8Y29kZT5ePC9jb2RlPiBpcyBleHBvbmVudGlhdGlvbiAobm90IGJpdHdpc2UgWE9SKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIGludCBoYXNoQ29kZSA9IDA7CisgICAgICAgIGludCBsZW5ndGggPSBsZW5ndGgoKTsKKworICAgICAgICBpZiAobGVuZ3RoID4gMCkgeworICAgICAgICAgICAgaGFzaENvZGUgPSBwYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aC0xKS5oYXNoQ29kZSgpOworICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoQ29kZSozMSArIGNoYXJhY3RlclN0eWxlQXQoMCkuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaENvZGUqMzEgKyBhdChsZW5ndGgtMSk7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgYXQobGVuZ3RoLzIpOworICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoQ29kZSozMSArIGF0KDApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGhhc2hDb2RlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVBhcmFncmFwaEJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NUGFyYWdyYXBoQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWE5MDFlMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVBhcmFncmFwaEJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworYWJzdHJhY3QgY2xhc3MgTVBhcmFncmFwaEJ1ZmZlcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKy8qKgorKiBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpOworCisvKioKKyogUmV0dXJucyB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIGFic3RyYWN0IGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybnMgdGhlIHN0eWxlIG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgb2Zmc2V0KTsKKworLyoqCisqIFByb2Nlc3MgYSBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogSWYgYSBwYXJhZ3JhcGggYnJlYWsgd2FzIGluc2VydGVkLCBwcm9wb2dhdGUgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+IHRvIG5ldyBwYXJhZ3JhcGguCisqLworICAgIGFic3RyYWN0IHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGNoYXIgaW5zZXJ0ZWRDaGFyKTsKKworLyoqCisqIFByb2Nlc3MgY2hhcmFjdGVyIGluc2VydGlvbiBhdCBvZmZzZXQgPHR0PnN0YXJ0PC90dD4uCisqIEVhY2ggbmV3IHBhcmFncmFwaCBnZXRzIHBhcmFncmFwaCBzdHlsZSBhdAorKiA8dHQ+c3RhcnQ8L3R0Pi4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHNyY0NoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCk7CisKKy8qKgorKiBQcm9jZXNzIGRlbGV0aW9uIGJ5IHJlbW92aW5nIHBhcmFncmFwaCBicmVha3MgY29udGFpbmVkIGluCisqIGRlbGV0ZWQgcmFuZ2UuICBQcm9wb2dhdGUgcGFyYWdyYXBoIHN0eWxlcyBiYWNrd2FyZCwgaWYgbmVjZXNzYXJ5LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qCisqIFJlcGxhY2UgcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMgYmV0d2VlbiBzdGFydCBhbmQgbGltaXQgd2l0aCBwYXJhZ3JhcGggYnJlYWtzL3N0eWxlcworKiBmcm9tIDx0dD5zcmNUZXh0PC90dD4uCisqIEBwYXJhbSBzdGFydCBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcGFyYW0gbGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB0byByZXBsYWNlCisqIEBwYXJhbSBzcmNUZXh0IHRoZSB0ZXh0IGZyb20gd2hpY2ggbmV3IHBhcmFncmFwaHMgYXJlIHRha2VuCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHRvIGNvcHkKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBmaXJzdCBpbmRleCBhZnRlciB0aGUgcmFuZ2UgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gdG8gY29weQorKi8KKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgc3JjVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qKgorKiBTZXQgdGhlIHN0eWxlIG9mIGFsbCBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgb2Zmc2V0cyBpbiB0aGUgcmFuZ2UgW3N0YXJ0LCBsaW1pdCkgdG8KKyogPHR0PnN0eWxlPC90dD4uCisqLworICAgIGFic3RyYWN0IGJvb2xlYW4gbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpOworCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGlzIG9iamVjdC4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVN0eWxlQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODYyOWU1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVN0eWxlQnVmZmVyLmphdmEKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgOC8xLzk2CisgICAgICAgIFN0eWxlIC0+IFJlc29sdmVkU3R5bGUKKyAgICA4LzcvOTYgamYKKyAgICAgICAgYWRkZWQgY291bnRTdHlsZXMgYW5kIGdldFN0eWxlcyBwcm90b2NvbAorICAgIDgvMTMvOTYKKyAgICAgICAgUmVzb2x2ZWRTdHlsZS0+U3R5bGUKKyAgICA4LzIyLzk2IGpmCisgICAgICAgIFJlbW92ZWQgdGhlIHNldEl0ZXJhdG9yIG1ldGhvZHMuCisqLworLyoKKyogTVN0eWxlQnVmZmVyIGlzIHRoZSBhYnN0cmFjdCBpbnRlcmZhY2UgZm9yIGEgY2xhc3Mgd2hpY2ggbWFpbnRhaW5zCisqIHN0eWxlIHJ1bnMgaW4gYW4gPHR0Pk1UZXh0PC90dD4uICBBICJzdHlsZSBydW4iIGNvbnNpc3RzIG9mIGEKKyogc3R5bGUgYW5kIHRoZSBpbnRlcnZhbCBvbiB3aGljaCB0aGUgc3R5bGUgYXBwbGllcy4KKyogPHA+CisqIE1TdHlsZUJ1ZmZlciBpbmNsdWRlcyBtZXRob2RzIHRvIGNhbGwgd2hlbiB0ZXh0IGlzIGluc2VydGVkIGludG8KKyogb3IgZGVsZXRlZCBmcm9tIHRoZSA8dHQ+TVRleHQ8L3R0Pi4gIFRoZXNlIG1ldGhvZHMgdXBkYXRlIHRoZQorKiBzdHlsZSBydW5zIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgY29tbW9ubHkgYWNjZXB0ZWQgYmVoYXZpb3IgZm9yCisqIHN0eWxlIHJ1bnMuCisqIDxwPgorKiBBZGRpdGlvbmFsbHksIE1TdHlsZUJ1ZmZlciBwcm92aWRlcyBtZXRob2RzIGZvciByZXBsYWNpbmcgdGhlIHN0eWxlIHJ1bnMgb24gYQorKiB0ZXh0IHJhbmdlIHdpdGggYW5vdGhlciBzZXQgb2Ygc3R5bGUgcnVucy4gIE1TdHlsZUJ1ZmZlciBkb2VzIG5vdCBkbyBzdHlsZSAiY29tYmluaW5nIiAoZm9yCisqIGV4YW1wbGUsIGFkZGluZyB0aGUgYm9sZCBhdHRyaWJ1dGUgdG8gdGV4dCB3aGljaCBpcyBpdGFsaWNpemVkKTsgIGNsaWVudHMgYXJlCisqIHJlc3BvbnNpYmxlIGZvciBjb21wdXRpbmcgdGhlIGNvbWJpbmVkIHN0eWxlcywgYW5kIHBhc3NpbmcgdGhlc2Ugc3R5bGVzIGludG8KKyogTVN0eWxlQnVmZmVyLgorKiA8cD4KKyogTVN0eWxlQnVmZmVyIHN1cHBsaWVzIGEgbWV0aG9kIGZvciByZXBsYWNpbmcgdGhlIHN0eWxlIHJ1bnMgb24gYSB0ZXh0IHJhbmdlIHdpdGggdGhlIHJ1bnMKKyogcmVwcmVzZW50ZWQgaW4gYW4gPHR0Pk1TdHlsZVJ1bkl0ZXJhdG9yPC90dD4uICBUaGlzIGlzIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nIHBhc3RlCisqIG9wZXJhdGlvbnMsIGluIHdoaWNoIHRoZSBzdHlsZSBydW5zIG9uIGEgcmFuZ2Ugb2YgdGV4dCBhcmUgcmVwbGFjZWQgYnkgc3R5bGUgcnVucworKiBmcm9tIGFuIGV4dGVybmFsIHNvdXJjZS4KKyogPHA+CisqCisqIEBhdXRob3IgSm9obiBSYWxleQorKgorKiBAc2VlIEF0dHJpYnV0ZU1hcAorKiBAc2VlIE1UZXh0CisqLworYWJzdHJhY3QgY2xhc3MgTVN0eWxlQnVmZmVyCit7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworLyoqCisqIFJlc3BvbmQgdG8gYW4gaW5zZXJ0aW9uIGluIHRoZSB0ZXh0LiAgVGhlIGxlbmd0aCBvZiB0aGUgbGFzdCBzdHlsZSBydW4gd2hpY2gKKyogYmVnaW5zIGJlZm9yZSA8dHQ+c3RhcnQ8L3R0PiBpcyBpbmNyZWFzZWQgYnkgPHR0PmxpbWl0LXN0YXJ0PC90dD4uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBpbnNlcnRpb24gYmVnYW4KKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBlbmRlZAorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGluc2VydFRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisvKioKKyogUmVzcG9uZCB0byBhIGRlbGV0aW9uIGluIHRoZSB0ZXh0LiAgVGhlIGxhc3Qgc3R5bGUgcnVuIGJlZm9yZQorKiA8dHQ+c3RhcnQ8L3R0PiBpcyB0cnVuY2F0ZWQgdG8gZW5kIGF0IDx0dD5zdGFydDwvdHQ+LiAgVGhlCisqIHN0eWxlIHJ1biBjb250YWluaW5nICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pIGlzIHNldCB0byBiZWdpbgorKiBhdCAoPHR0PnN0YXJ0PC90dD4rPHR0Pmxlbmd0aDwvdHQ+KS4gIFJ1bnMgaW4gYmV0d2VlbiBhcmUgZGVsZXRlZC4KKyogSWYgdGhlIGRlbGV0aW9uIG9jY3VycyBlbnRpcmVseSB3aXRoaW4gb25lIHN0eWxlIHJ1biwgdGhlIGxlbmd0aCBvZiB0aGUgc3R5bGUKKyogcnVuIGlzIHJlZHVjZWQgYnkgPHR0Pmxlbmd0aDwvdHQ+LgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgZGVsZXRpb24gYmVnYW4KKyogQHBhcmFtIGxlbmd0aCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBlbmRlZAorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisvKgorKiBSZXBsYWNlIHN0eWxlIHJ1bnMgYmV0d2VlbiBvZmZzZXRzIDx0dD5zdGFydDwvdHQ+IGFuZCA8dHQ+bGltaXQ8L3R0PiB3aXRoIHN0eWxlcyBpbgorKiA8dHQ+aXRlcjwvdHQ+LiAgVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBhICJwYXN0ZSIgb3BlcmF0aW9uLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgcmVwbGFjZW1lbnQgYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSByZXBsYWNlbWVudCBlbmRzCisqIEBwYXJhbSBpdGVyIGFuIDx0dD5NU3R5bGVSdW5JdGVyYXRvcjwvdHQ+IGNvbnRhaW5pbmcgc3R5bGUgcnVucyB3aGljaCB3aWxsIHJlcGxhY2Ugb2xkCisqIHN0eWxlIHJ1bnMuCisqLworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCBzcmNUZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCk7CisKKyAgICBhYnN0cmFjdCBpbnQgc3R5bGVTdGFydChpbnQgcG9zKTsKKyAgICBhYnN0cmFjdCBpbnQgc3R5bGVMaW1pdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiBzdHlsZSBhdCBsb2NhdGlvbiA8dHQ+cG9zPC90dD4uCisqIEBwYXJhbSBwb3MgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybnMgdGhlIHN0eWxlIG9mIHRoZSBjaGFyYWN0ZXIgYXQgPHR0Pm9mZnNldDwvdHQ+CisqLworICAgIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBzdHlsZUF0KGludCBwb3MpOworCisvKioKKyAqIFJldHVybiB0cnVlIGlmIHN0eWxlcyB3ZXJlIG1vZGlmaWVkLgorICovCisgICAgYWJzdHJhY3QgYm9vbGVhbiBtb2RpZnlTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNDIxZjcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NVGFiUnVsZXIuamF2YQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCisvKioKKyAqIFRoaXMgaW50ZXJmYWNlIHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBUYWJTdG9wcywgb3JkZXJlZCBieSBwb3NpdGlvbi4KKyAqIFRoZSBmaXJzdAorICogVGFiU3RvcCBpbiB0aGUgcnVsZXIgY2FuIGJlIG9idGFpbmVkIHdpdGggdGhlIDxjb2RlPmZpcnN0VGFiPC9jb2RlPgorICogbWV0aG9kOyAgc3Vic2VxdWVudCBUYWJTdG9wcyBhcmUgb2J0YWluZWQgd2l0aCB0aGUgPGNvZGU+bmV4dFRhYjwvY29kZT4KKyAqIG1ldGhvZC4KKyAqIDxwPgorICogSWYgYSBUYWJTdG9wIHdpdGggdHlwZSA8Y29kZT5UYWJTdG9wLmtBdXRvPC9jb2RlPiBpcyByZXR1cm5lZCwgYWxsIHRhYnMKKyAqIGFmdGVyIHRoYXQgVGFiU3RvcCB3aWxsIGFsc28gaGF2ZSB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+LCBhbmQKKyAqIHRoZWlyIHBvc2l0aW9ucyB3aWxsIGJlIG11bHRpcGxlcyBvZiA8Y29kZT5hdXRvU3BhY2luZzwvY29kZT4uCisgKiBAc2VlIFRhYlN0b3AKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1UYWJSdWxlcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogUmV0dXJuIGZpcnN0IHRhYiBpbiB0aGUgcnVsZXIuICBJZiBhbiBhdXRvVGFiLCBpdCBpcyBhdCBwb3NpdGlvbiB6ZXJvLCBhbmQKKyAgICAgKiBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUgYXV0b3RhYnMgYXQgYXV0b1NwYWNpbmcgaW50ZXJ2YWxzLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUYWJTdG9wIGZpcnN0VGFiKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IHRhYiBpbiB0aGUgcnVsZXIgd2l0aCBmUG9zaXRpb24gPiBwb3NpdGlvbi4gIElmIGl0IGlzIGFuCisgICAgICogYXV0b3RhYiwgaXQgaXMgYXQgYW4gaW5jcmVtZW50IG9mIGF1dG9TcGFjaW5nLCBhbmQgYWxsIHN1YnNlcXVlbnQgdGFicyB3aWxsIGJlCisgICAgICogYXV0b3RhYnMgYXQgYXV0b1NwYWNpbmcgaW50ZXJ2YWxzLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUYWJTdG9wIG5leHRUYWIoaW50IHBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJ2YWwgZm9yIGF1dG90YWJzLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgYXV0b1NwYWNpbmcoKTsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIGhhc2hDb2RlIGZvciB0aGlzIHJ1bGVyLiAgVGhlIGhhc2hDb2RlIGlzIHRoZQorICAgICAqIGhhc2hDb2RlIG9mIHRoZSBmaXJzdCB0YWIgbXVsdGlwbGllZCBieSB0aGUgYXV0b1NwYWNpbmcKKyAgICAgKiBpbnRlcnZhbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBmaXJzdFRhYigpLmhhc2hDb2RlKCkgKiBhdXRvU3BhY2luZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgdGFiIHJ1bGVyIGNvbnRhaW5zIHRoZSBnaXZlbiB0YWIuCisgICAgICogQHBhcmFtIHRhYlRvVGVzdCB0aGUgdGFiIHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB0YWIgcnVsZXIgY29udGFpbnMgPGNvZGU+dGFiVG9UZXN0PC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVGFiKFRhYlN0b3AgdGFiVG9UZXN0KSB7CisKKyAgICAgICAgZm9yIChUYWJTdG9wIHRhYiA9IGZpcnN0VGFiKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87CisgICAgICAgICAgICAgICAgICAgICAgICB0YWIgPSBuZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKSkgeworICAgICAgICAgICAgaWYgKHRhYi5nZXRQb3NpdGlvbigpID49IHRhYlRvVGVzdC5nZXRQb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhYlRvVGVzdC5lcXVhbHModGFiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSB0YWIgcnVsZXIgaWRlbnRpY2FsIHRvIHRoaXMgcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiBhZGRlZC4gIFRoaXMgcnVsZXIgaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSB0YWJUb0FkZCB0aGUgdGFiIHRvIGFkZCB0byB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBhZGRUYWIoVGFiU3RvcCB0YWJUb0FkZCkgeworCisgICAgICAgIHJldHVybiBTdGFuZGFyZFRhYlJ1bGVyLmFkZFRhYlRvUnVsZXIodGhpcywgdGFiVG9BZGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhlIGdpdmVuIHJ1bGVyLCBleGNlcHQgd2l0aCB0aGUKKyAgICAgKiB0YWIgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIHJlbW92ZWQuICBUaGlzIHJ1bGVyIGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgdG8gcmVtb3ZlIGZyb20gdGhlIG5ldyB0YWIgcnVsZXIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgcmVtb3ZlVGFiKGludCBwb3NpdGlvbikgeworCisgICAgICAgIHJldHVybiBTdGFuZGFyZFRhYlJ1bGVyLnJlbW92ZVRhYkZyb21SdWxlcih0aGlzLCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGlzIHJ1bGVyLCBleGNlcHQgd2l0aCB0aGUKKyAgICAgKiB0YWIgYXQgcG9zaXRpb24gPGNvZGU+ZnJvbVBvc2l0aW9uPC9jb2RlPiBtb3ZlZCB0byBwb3NpdGlvbgorICAgICAqIDxjb2RlPnRvUG9zaXRpb248L2NvZGU+LiAgVGhpcyBydWxlciBpcyBub3QgbW9kaWZpZWQuCisgICAgICogQHBhcmFtIGZyb21Qb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byBtb3ZlCisgICAgICogQHBhcmFtIHRvUG9zaXRpb24gdGhlIG5ldyBwb3NpdGlvbiBvZiB0aGUgdGFiCisgICAgICogQHJldHVybiBhbiBNVGFiUnVsZXIgcmVzdWx0aW5nIGZyb20gdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIG1vdmVUYWIoaW50IGZyb21Qb3NpdGlvbiwgaW50IHRvUG9zaXRpb24pIHsKKworICAgICAgICByZXR1cm4gU3RhbmRhcmRUYWJSdWxlci5tb3ZlVGFiT25SdWxlcih0aGlzLCBmcm9tUG9zaXRpb24sIHRvUG9zaXRpb24pOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzdjMzlmYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YQpAQCAtMCwwICsxLDI0MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKgorICAgIENoYW5nZSBoaXN0b3J5OgorCisgICAgMTAvMjkvOTYgamVmICAgIHNwbGl0IHRoZSBjaGFyYWN0ZXIgYW5kIHBhcmFncmFwaCBzdHlsZSBhY2Nlc3MgZnVuY3Rpb25zCisgICAgOC8xNC85NiBzZmIgICAgIGVsaW1pbmF0ZWQgU3R5bGVTaGVldEl0ZXJhdG9yCisgICAgOC8yMS85NiBqZWYgICAgICAgIGNvbXBsZXRlZCBhYnN0cmFjdCBpbnRlcmZhY2UgKGNoYW5nZWQgaXRlcmF0b3IgY2xhc3NlcyBldGMuKQorICAgIDEvMzAvOTcgcnRnICAgICBjbGVhbmVkIHVwIGludGVyZmFjZSwgYnJvdWdodCBpbiBmdW5jdGlvbnMgZnJvbSBTaW1wbGVUZXh0VmlldworICAgIDcvMzEvOTggamJyIHN3aXRjaGVkIGZyb20gU3R5bGUgdG8gQXR0cmlidXRlTWFwCisKKyovCisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIG11dGFibGUgZXh0ZW5zaW9uIG9mIE1Db25zdFRleHQuICBJdCBoYXMgbWV0aG9kcyBmb3IKKyAqIGluc2VydGluZywgYXBwZW5kaW5nLCByZXBsYWNpbmcsIGFuZCByZW1vdmluZyBzdHlsZWQgdGV4dC4gIEFkZGl0aW9uYWxseSwKKyAqIGl0IGhhcyBtZXRob2RzIGZvciBtb2RpZnlpbmcgcGFyYWdyYXBoIGFuZCBjaGFyYWN0ZXIgc3R5bGVzLgorICogPHA+CisgKiBTdHlsZWQgY2hhcmFjdGVycyAoZnJvbSBhbm90aGVyIDxjb2RlPk1Db25zdFRleHQ8L2NvZGU+IGluc3RhbmNlKSBhZGRlZAorICogdG8gdGhlIHRleHQgcmV0YWluIHRoZWlyIG9yaWdpbmFsIGNoYXJhY3RlciBzdHlsZXMuICBUaGUgc3R5bGUgb2YgcGxhaW4gY2hhcmFjdGVycworICogKHNwZWNpZmllZCBhcyBhIDxjb2RlPmNoYXI8L2NvZGU+IG9yIDxjb2RlPmNoYXJbXTwvY29kZT4pIGlzIGFsd2F5cworICogc3BlY2lmaWVkIGV4cGxpY2l0bHkgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byB0aGUgdGV4dC4gIE1UZXh0IGRvZXMgbm90IGRvCisgKiBjaGFyYWN0ZXIgc3R5bGUgInByb3BhZ2F0aW9uIiwgd2hlcmUgdW5zdHlsZWQgY2hhcmFjdGVycyB0YWtlIG9uIHRoZQorICogc3R5bGUgb2YgcHJldmlvdXMgY2hhcmFjdGVycy4gIENsaWVudHMgY2FuIGltcGxlbWVudCB0aGlzIGJlaGF2aW9yIGJ5CisgKiBzcGVjaWZ5aW5nIHRoZSBzdHlsZXMgdG8gcHJvcGFnYXRlLgorICogPHA+CisgKiBXaGVuIHVuc3R5bGVkIGNoYXJhY3RlcnMgYXJlIGFkZGVkIHRvIHRoZSB0ZXh0LCB0aGVpciBwYXJhZ3JhcGggc3R5bGUKKyAqIGlzIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW4gZWZmZWN0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IG5ldyBjaGFyYWN0ZXIuCisgKiBJZiB0aGUgY2hhcmFjdGVycyBjb250YWluIHBhcmFncmFwaCBzZXBhcmF0b3JzLCB0aGVuIGV2ZXJ5IG5ldyBwYXJhZ3JhcGgKKyAqIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXJhZ3JhcGggc3R5bGUuICBXaGVuIHN0eWxlZCBjaGFyYWN0ZXJzIGFyZSBhZGRlZAorICogdG8gdGhlIHRleHQsIHRoZWlyIHJlc3VsdGluZyBwYXJhZ3JhcGggc3R5bGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIGZvbGxvd2luZyBydWxlOgorICogPGJsb2NrcXVvdGU+CisgKiBUaGUgcGFyYWdyYXBoIHN0eWxlcyBpbiB0aGUgbmV3IHRleHQKKyAqIGJlY29tZSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiB0aGUgdGFyZ2V0IHRleHQsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUKKyAqIGxhc3QgcGFyYWdyYXBoIGluIHRoZSBuZXcgdGV4dCwgd2hpY2ggdGFrZXMgb24gdGhlIHBhcmFncmFwaCBzdHlsZSBpbgorICogZWZmZWN0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBpbnNlcnRlZCB0ZXh0LgorICogSWYgdGhlIG5ldyB0ZXh0IGlzIGFkZGVkIGF0IHRoZSBlbmQgb2YgdGhlIHRhcmdldCB0ZXh0LCB0aGUgbmV3IHRleHQncworICogcGFyYWdyYXBoIHN0eWxlcyB0YWtlIGVmZmVjdCBpbiBhbnkgcGFyYWdyYXBoIGFmZmVjdGVkIGJ5IHRoZSBhZGRpdGlvbi4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoZXJlIGlzIGEgc2luZ2xlIHBhcmFncmFwaCBvZiB0ZXh0IHdpdGggc3R5bGUgJ0EnLAorICogZGVsaW1pdGVkIHdpdGggYSBwYXJhZ3JhcGggc2VwYXJhdG9yICdQJzoKKyAqIDxibG9ja3F1b3RlPgorICogQUFBQUFBUAorICogPC9ibG9ja3F1b3RlPgorICogU3VwcG9zZSB0aGUgZm9sbG93aW5nIHN0eWxlZCBwYXJhZ3JhcGhzIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBhYm92ZSB0ZXh0CisgKiBhZnRlciB0aGUgZm91cnRoIGNoYXJhY3RlcjoKKyAqIDxibG9ja3F1b3RlPgorICogQkJCQlBDQ0NQRERECisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUaGVuIHRoZSBvcmlnaW5hbCBwYXJhZ3JhcGggc3R5bGUgb2YgZWFjaCBjaGFyYWN0ZXIgaXM6CisgKiA8YmxvY2txdW90ZT4KKyAqIEFBQUFCQkJCUENDQ1BERERBQVAKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFRoZSByZXN1bHRpbmcgcGFyYWdyYXBoIHN0eWxlcyBhcmU6CisgKiA8YmxvY2txdW90ZT4KKyAqIEJCQkJCQkJCUENDQ1BBQUFBQVAKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFNpbWlsYXJseSwgaWYgY2hhcmFjdGVycyBhcmUgZGVsZXRlZCwgdGhlIHBhcmFncmFwaCBzdHlsZSBpbW1lZGlhdGVseQorICogYWZ0ZXIgdGhlIGRlbGV0aW9uIHRha2VzIGVmZmVjdCBvbiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGRlbGV0aW9uLgorICogU28sIGlmIGNoYXJhY3RlcnMgNC0xNiB3ZXJlIGRlbGV0ZWQgaW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBwYXJhZ3JhcGgKKyAqIHN0eWxlcyB3b3VsZCBiZToKKyAqIDxibG9ja3F1b3RlPgorICogQUFBQUFBUAorICogPC9ibG9ja3F1b3RlPgorICogVGhpcyBwYXJhZ3JhcGgtc3R5bGUgcHJvcGFnYXRpb24gcG9saWN5IGlzIHNvbWV0aW1lcyByZWZlcnJlZCB0byBhcyA8c3Ryb25nPgorICogZm9sbG93aW5nIHN0eWxlcyB3aW48L3N0cm9uZz4sIHNpbmNlIHN0eWxlcyBhdCB0aGUgZW5kIG9mIHRoZSBwYXJhZ3JhcGgKKyAqIGJlY29tZSB0aGUgc3R5bGUgZm9yIHRoZSBlbnRpcmUgcGFyYWdyYXBoLgorICogPHA+CisgKiBUaGlzIGNsYXNzIGNhbiBhY2N1bXVsYXRlIGEgPHN0cm9uZz5kYW1hZ2VkIHJhbmdlPC9zdHJvbmc+IC0gYW4gaW50ZXJ2YWwgaW4KKyAqIHdoaWNoIGNoYXJhY3RlcnMsIGNoYXJhY3RlciBzdHlsZXMsIG9yIHBhcmFncmFwaCBzdHlsZXMgaGF2ZSBjaGFuZ2VkLiAgVGhpcyBpcworICogdXNlZnVsIGZvciBjbGllbnRzIHN1Y2ggYXMgdGV4dCBlZGl0b3JzIHdoaWNoIHJlZm9ybWF0IGFuZCBkcmF3IHRleHQgYWZ0ZXIKKyAqIGNoYW5nZXMuICBVc3VhbGx5IHRoZSBkYW1hZ2VkIHJhbmdlIGlzIGV4YWN0bHkgdGhlIHJhbmdlIG9mIGNoYXJhY3RlcnMKKyAqIG9wZXJhdGVkIHVwb247ICBob3dldmVyLCBsYXJnZXIgcmFuZ2VzIG1heSBiZSBkYW1hZ2VkIGlmIHBhcmFncmFwaCBzdHlsZXMKKyAqIGNoYW5nZS4KKyAqIEBzZWUgU3R5bGVNb2RpZmllcgorICovCisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNVGV4dCBleHRlbmRzIE1Db25zdFRleHQKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByb3RlY3RlZCBNVGV4dCgpIHsKKyAgICB9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE1BSU4gQ0hBUkFDVEVSIE1PRElGSUNBVElPTiBGVU5DVElPTlMKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IGluIHRoZSByYW5nZSBbPGNvZGU+c3JjU3RhcnQ8L2NvZGU+LCA8Y29kZT5zcmNMaW1pdDwvY29kZT4pLiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBlbmQKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCBzcmNUZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCk7CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+LiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHRleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0KTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBpbiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICBOZXcgY2hhcmFjdGVycyB0YWtlIG9uIHRoZSBzdHlsZQorKiA8Y29kZT5jaGFyc1N0eWxlPC9jb2RlPi4KKyogPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXJzIHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyB3aWxsIGJlIG9idGFpbmVkCisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBlbmQKKyogQHBhcmFtIGNoYXJzU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBuZXcgY2hhcmFjdGVycworKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBBdHRyaWJ1dGVNYXAgY2hhcnNTdHlsZSk7CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlciA8Y29kZT5zcmNDaGFyPC9jb2RlPi4KKyogVGhlIG5ldyBjaGFyYWN0ZXIgdGFrZXMgb24gdGhlIHN0eWxlIDxjb2RlPmNoYXJTdHlsZTwvY29kZT4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXIgdGhlIG5ldyBjaGFyYWN0ZXIKKyogQHBhcmFtIGNoYXJTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXIKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyLCBBdHRyaWJ1dGVNYXAgY2hhclN0eWxlKTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGlzIE1UZXh0IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgd2l0aAorKiB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4uCisqIEBwYXJhbSBzcmNUZXh0IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlcGxhY2VBbGwoTUNvbnN0VGV4dCBzcmNUZXh0KTsKKworLyoqCisqIEluc2VydCB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4gKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSBpbnRvIHRoaXMKKyogTVRleHQgYXQgdGhlIHBvc2l0aW9uIHNwZWNpZmllZCBieSA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IHdoZXJlIHRoZSBuZXcgdGV4dCBpcyB0byBiZSBpbnNlcnRlZC4KKyogQHBhcmFtIHNyY1RleHQgVGhlIHRleHQgdG8gaW5zZXJ0LiAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGluc2VydChpbnQgcG9zLCBNQ29uc3RUZXh0IHNyY1RleHQpOworCisvKioKKyogQXBwZW5kIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIHRvIHRoZQorKiBlbmQgb2YgdGhpcyBNVGV4dC4KKyogQHBhcmFtIHNyY1RleHQgVGhlIHRleHQgdG8gYXBwZW5kLiAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IHNyY1RleHQpOworCisvKioKKyogRGVsZXRlIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgY2hhcmFjdGVycyAoYW5kIHN0eWxlcykuCisqIEBwYXJhbSBzdGFydCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBkZWxldGUuCisqIEBwYXJhbSBsaW1pdCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgcmFuZ2UgdG8gZGVsZXRlLiAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZShpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qKgorKiBEZWxldGUgYWxsIGNoYXJhY3RlcnMgYW5kIHN0eWxlcy4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlKCk7CisKKy8qKgorKiBDcmVhdGUgYW4gTVRleHQgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZQorKiBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEByZXR1cm4gYW4gTUNvbnN0VGV4dCBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgTVRleHQgZXh0cmFjdFdyaXRhYmxlKGludCBzdGFydCwgaW50IGxpbWl0KTsKKworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTVE9SQUdFIE1BTkFHRU1FTlQKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhlIE1UZXh0IG9iamVjdC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgY29tcHJlc3MoKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU1RZTEUgTU9ESUZJQ0FUSU9OCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorKiBTZXQgdGhlIGNoYXJhY3RlciBzdHlsZSBvZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgTVRleHQgb2JqZWN0IHRvCisqIDxjb2RlPkF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQPC9jb2RlPi4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlQ2hhcmFjdGVyU3R5bGVzKCk7CisKKy8qKgorKiBJbnZva2UgdGhlIGdpdmVuIG1vZGlmaWVyIG9uIGFsbCBjaGFyYWN0ZXIgc3R5bGVzIGZyb20gc3RhcnQgdG8gbGltaXQuCisqIEBwYXJhbSBtb2RpZmllciB0aGUgbW9kaWZpZXIgdG8gYXBwbHkgdG8gdGhlIHJhbmdlLgorKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlcyhpbnQgc3RhcnQsIGludCBsaW1pdCwgU3R5bGVNb2RpZmllciBtb2RpZmllcik7CisKKy8qKgorKiBJbnZva2UgdGhlIGdpdmVuIG1vZGlmaWVyIG9uIGFsbCBwYXJhZ3JhcGggc3R5bGVzIGluIHBhcmFncmFwaHMKKyogY29udGFpbmluZyBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KS4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gREFNQUdFRCBSQU5HRQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJlc2V0IHRoZSBkYW1hZ2VkIHJhbmdlIHRvIGFuIGVtcHR5IGludGVydmFsLCBhbmQgYmVnaW4gYWNjdW11bGF0aW5nIHRoZSBkYW1hZ2VkCisqIHJhbmdlLiAgVGhlIGRhbWFnZWQgcmFuZ2UgaW5jbHVkZXMgZXZlcnkgaW5kZXggd2hlcmUgYSBjaGFyYWN0ZXIsIGNoYXJhY3RlciBzdHlsZSwKKyogb3IgcGFyYWdyYXBoIHN0eWxlIGhhcyBjaGFuZ2VkLgorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNldERhbWFnZWRSYW5nZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUGFyYWdyYXBoQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTVjYWQ5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUGFyYWdyYXBoQnVmZmVyLmphdmEKQEAgLTAsMCArMSw3MTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKgorICAgIFJpZ2h0IG5vdywgeW91IGhhdmUgdG8gY29uc3RydWN0IHRoaXMgY2xhc3Mgd2l0aCBhIGNoYXJCdWZmZXIuICBUaGF0J3MgcHJldHR5IHVnbHkuLi4gKi8KKworLyoKKyAgICA4LzgvOTYKKyAgICAgICAgQWRkZWQgcmVwbGFjZSBtZXRob2QsIHdoaWNoIHJlYWRzIHN0eWxlcyBmcm9tIGEgUGFyYWdyYXBoSXRlcmF0b3IuCisgICAgICAgIEFsc28sIGFkZGVkIGEgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgYSBQYXJhZ3JhcGhJdGVyYXRvci4KKyAgICAgICAgVGhlc2UgbWV0aG9kcyBhcmUgZm9yIGNvcHkvcGFzdGUgc3VwcG9ydC4KKworICAgIDgvMjIvOTYKKyAgICAgICAgUmVwbGFjZSBtZXRob2QgKHdoaWNoIHRha2VzIGFuIGl0ZXJhdG9yIGFzIGFuIGFyZ3VtZW50KSB0ZXN0cyBmb3IgYQorICAgICAgICAwLWxlbmd0aCBpdGVyYXRvci4KKworICAgIDkvMzAvOTYKKyAgICAgICAge2picn0gbW9kaWZpZWQgcGFyYWdyYXBoTGltaXQoKTsKKworICAgIDEwLzIzLzk2CisgICAgICAgIFRoaXMgY2xhc3Mgbm93IG1haW50YWlucyBwYXJhZ3JhcGggc3R5bGVzLiAgQWxzbyBoYXMgYSB0aW1lc3RhbXAuCisKKyAgICAxMC8yNS85NgorICAgICAgICBIb2xkcyBvbiB0byBTdHlsZSBpbnN0ZWFkIG9mIFN0eWxlLgorCisgICAgNy8zMS85OCBTd2l0Y2hlZCB0byBBdHRyaWJ1dGVNYXAKKworKi8KKworLyoqCisqIFRoaXMgY2xhc3Mgc3RvcmVzIG9mZnNldHMgd2hlcmUgcGFyYWdyYXBoIGJyZWFrcyBvY2N1ciwgYW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvCisqIGVhY2ggcGFyYWdyYXBoLgorKgorKiBUaGUgb2Zmc2V0cyB3aGVyZSBwYXJhZ3JhcGggYnJlYWtzIG9jY3VyIGFyZSBzdG9yZWQgaW4gYSBSdW5BcnJheSBvYmplY3QuICBUaGlzIGlzCisqIG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCBpdCBtYWtlcyBzY2FubmluZyB0aGUgdGV4dCBmb3IgcGFyYWdyYXBoIGJyZWFrcyB1bm5lY2Vzc2FyeS4KKyogSG93ZXZlciwgaXQgbWFrZXMgZGV0ZXJtaW5pbmcgd2hlcmUgcGFyYWdyYXBocyBzdGFydCBhIGxpdHRsZSBjb25mdXNpbmcuICBJZiB0aGVyZSBpcyBhCisqIHBhcmFncmFwaCBicmVhayBhdCBvZmZzZXQgcCwgdGhlbiB0aGVyZSB3aWxsIGJlIGEgcGFyYWdyYXBoIHN0YXJ0IGF0IG9mZnNldCBwKzEuCisqIElmIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBpcyBhIHBhcmFncmFwaCBicmVhaywgdGhlcmUgd2lsbCBiZSBhIHJ1biBhcnJheSBlbnRyeQorKiBmb3IgdGhhdCBjaGFyYWN0ZXIgKGFuZCBhbHNvIGEgcGFyYWdyYXBoIHN0eWxlIGZvciB0aGF0IHBhcmFncmFwaCwgZXZlbiB0aG91Z2ggdGhlCisqIHN0eWxlIGRvZXMgbm90IGFwcGx5IHRvIGFueSB0ZXh0KS4KKyoKKyogVGhlIHN0eWxlIG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggaW4gdGhlIHRleHQgaXMgaW4gdGhlIGZGaXJzdFN0eWxlIG1lbWJlci4gIE90aGVyCisqIHBhcmFncmFwaCBzdHlsZXMgYXJlIHN0b3JlZCBpbiB0aGUgZlN0eWxlVGFibGUgYXJyYXksIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyOiAgdGhlCisqIHBhcmFncmFwaCB3aXRoIGJlZ2lucyBhdCBvZmZzZXQgZlJ1bkFycmF5LmZSdW5TdGFydFtpXSsxIGhhcyBzdHlsZSBmU3R5bGVUYWJsZVtpXS4KKyogVGhlIHN0eWxlIHRhYmxlJ3MgImdhcCByYW5nZSIgaXMga2VwdCBpbiBzeW5jIHdpdGggdGhlIFJ1bkFycmF5LgorKgorKiBUaGlzIGNsYXNzIHByb3BvZ2F0ZXMgcGFyYWdyYXBoIHN0eWxlcyBpbiB0aGUgIk1pY3Jvc29mdCBXb3JkIiBmYXNoaW9uOiAgc3R5bGVzCisqIHByb3BvZ2F0ZSBiYWNrd2FyZCBmcm9tIHBhcmFncmFwaCBicmVha3MuCisqCisqIFRoaXMgY2xhc3MgbWFpbnRhaW5zIGEgdGltZSBzdGFtcCwgd2hpY2ggY2hhbmdlcyBldmVyeSB0aW1lIGV4dHJhIGZvcm1hdHRpbmcgKGZvcm1hdHRpbmcKKyogb24gYSByYW5nZSBvdGhlciB0aGFuIHRoZSBjdXJyZW50IHNlbGVjdGlvbikgaXMgbmVlZGVkOyAgZm9yIGV4YW1wbGUsIHdoZW4gYSBwYXJhZ3JhcGgKKyogYnJlYWsgaXMgcmVtb3ZlZC4KKyovCisKKworZmluYWwgY2xhc3MgUGFyYWdyYXBoQnVmZmVyIGV4dGVuZHMgTVBhcmFncmFwaEJ1ZmZlciBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtJbml0aWFsU2l6ZSA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBSdW5BcnJheSBmUnVuQXJyYXk7CisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXBbXSBmU3R5bGVUYWJsZTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRmlyc3RTdHlsZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNQYXJhZ3JhcGhCcmVhayhjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYyA9PSdcdTIwMjknIHx8IGMgPT0gJ1xuJzsKKyAgICB9CisKKy8qKgorKiBDb25zdHJ1Y3QgYSBuZXcgcGFyYWdyYXBoIGJ1ZmZlciBmcm9tIHRoZSBjaGFyYWN0ZXJzIGluIDx0dD5jaGFyQnVmZmVyPC90dD4uCisqLworICAgIFBhcmFncmFwaEJ1ZmZlcihNQ2hhckJ1ZmZlciBjaGFyQnVmZmVyKSB7CisKKyAgICAgICAgdGhpcyhjaGFyQnVmZmVyLmxlbmd0aCgpKTsKKworICAgICAgICAvLyBzY2FuIHRleHQgZm9yIHBhcmFncmFwaCBib3VuZGFyaWVzCisKKyAgICAgICAgaW50IHRleHRMZW5ndGggPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworCisgICAgICAgIGZvciAoaW50IHBvcz0wOyBwb3MgPCB0ZXh0TGVuZ3RoOyBwb3MrKykgeworCisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhjaGFyQnVmZmVyLmF0KHBvcykpKSB7CisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZSgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBwb3M7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gZkZpcnN0U3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworLyoqCisqIFByaXZhdGUgY29uc3RydWN0b3IuCisqLworICAgIHByaXZhdGUgUGFyYWdyYXBoQnVmZmVyKGludCBpbml0aWFsTGVuZ3RoKSB7CisKKyAgICAgICAgZlJ1bkFycmF5ID0gbmV3IFJ1bkFycmF5KGtJbml0aWFsU2l6ZSwgaW5pdGlhbExlbmd0aCk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3IEF0dHJpYnV0ZU1hcFtmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKV07CisKKyAgICAgICAgZkZpcnN0U3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOiB0aGlzIGNvbnN0cnVjdG9yIGlzIE9OTFkgZm9yIHVzZSBieSB0aGUgU2VyaWFsaXphdGlvbgorICAgICAqIG1lY2hhbmlzbS4gIEl0IGRvZXMgbm90IGxlYXZlIHRoaXMgb2JqZWN0IGluIGEgdmFsaWQgc3RhdGUhCisgICAgICovCisgICAgcHVibGljIFBhcmFncmFwaEJ1ZmZlcigpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgY29tcHJlc3MoKTsKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUnVuQXJyYXkpOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlN0eWxlVGFibGUpOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZkZpcnN0U3R5bGUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW52YWxpZCB2ZXJzaW9uIG9mIFBhcmFncmFwaEJ1ZmZlciIpOworICAgICAgICB9CisgICAgICAgIGZSdW5BcnJheSA9IChSdW5BcnJheSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmU3R5bGVUYWJsZSA9IChBdHRyaWJ1dGVNYXBbXSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmRmlyc3RTdHlsZSA9IChBdHRyaWJ1dGVNYXApIGluLnJlYWRPYmplY3QoKTsKKyAgICB9CisKKy8qKgorKiBTaGlmdCB0YWJsZSBzdWNoIHRoYXQgdGhlIGxhc3QgcG9zaXRpdmUgcnVuIHN0YXJ0cyBiZWZvcmUgcG9zLgorKi8KKyAgICBwcml2YXRlIHZvaWQgc2hpZnRUYWJsZVRvKGludCBwb3MpIHsKKworICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBpbnQgb2xkUG9zRW5kID0gZlJ1bkFycmF5LmZQb3NFbmQ7CisKKyAgICAgICAgZlJ1bkFycmF5LnNoaWZ0VGFibGVUbyhwb3MpOworCisgICAgICAgIGlmIChvbGRQb3NFbmQgPiBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlLCBmUnVuQXJyYXkuZk5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQb3NFbmQtZlJ1bkFycmF5LmZQb3NFbmQpOworICAgICAgICBlbHNlIGlmIChvbGROZWdTdGFydCA8IGZSdW5BcnJheS5mTmVnU3RhcnQpCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCBvbGROZWdTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIG9sZFBvc0VuZCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0LW9sZE5lZ1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBVcGRhdGUgdGhlIHN0eWxlIHRhYmxlIHRvIHJlZmxlY3QgYSBjaGFuZ2UgaW4gdGhlIFJ1bkFycmF5J3Mgc2l6ZS4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZUFycmF5UmVzaXplKGludCBvbGROZWdTdGFydCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZVRhYmxlW10gPSBuZXcgQXR0cmlidXRlTWFwW2ZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgMCwgbmV3U3R5bGVUYWJsZSwgMCwgZlJ1bkFycmF5LmZQb3NFbmQrMSk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LCBuZXdTdHlsZVRhYmxlLCBmUnVuQXJyYXkuZk5lZ1N0YXJ0LCAoZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCktZlJ1bkFycmF5LmZOZWdTdGFydCkpOworICAgICAgICBmU3R5bGVUYWJsZSA9IG5ld1N0eWxlVGFibGU7CisgICAgfQorCisgICAgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBmUnVuQXJyYXkuY29tcHJlc3MoKTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgIT0gb2xkTmVnU3RhcnQpIHsKKyAgICAgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIE1ha2UgbW9yZSByb29tIGluIHJ1bi9zdHlsZSB0YWJsZXMuCisqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRTdHlsZVRhYmxlKCkgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGZSdW5BcnJheS5leHBhbmRSdW5UYWJsZSgpOworICAgICAgICBoYW5kbGVBcnJheVJlc2l6ZShvbGROZWdTdGFydCk7CisgICAgfQorCisvKioKKyogUHJvY2VzcyBhIGNoYXJhY3RlciBpbnNlcnRpb24gYXQgb2Zmc2V0IDx0dD5zdGFydDwvdHQ+LgorKiBJZiBhIHBhcmFncmFwaCBicmVhayB3YXMgaW5zZXJ0ZWQsIHByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGUgYXQKKyogPHR0PnN0YXJ0PC90dD4gdG8gbmV3IHBhcmFncmFwaC4KKyovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGNoYXIgaW5zZXJ0ZWRDaGFyKSB7CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKHN0YXJ0KTsKKyAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsoaW5zZXJ0ZWRDaGFyKSkgeworICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0WysrZlJ1bkFycmF5LmZQb3NFbmRdID0gc3RhcnQ7CisgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPQorICAgICAgICAgICAgICAgIChmUnVuQXJyYXkuZlBvc0VuZCA9PSAwKT8gZkZpcnN0U3R5bGUgOiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZC0xXTsKKyAgICAgICAgICAgIGZSdW5BcnJheS5ydW5TdGFydHNDaGFuZ2VkKCk7CisgICAgICAgIH0KKworICAgICAgICAvL2ZSdW5BcnJheS5mQ3VyVGV4dExlbmd0aCsrOworICAgICAgICBmUnVuQXJyYXkuYWRkVG9DdXJUZXh0TGVuZ3RoKDEpOworICAgIH0KKworLyoqCisqIFByb2Nlc3MgY2hhcmFjdGVyIGluc2VydGlvbiBhdCBvZmZzZXQgPHR0PnN0YXJ0PC90dD4uCisqIEVhY2ggbmV3IHBhcmFncmFwaCBnZXRzIHBhcmFncmFwaCBzdHlsZSBhdAorKiA8dHQ+c3RhcnQ8L3R0Pi4KKyovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGNoYXIgc3JjQ2hhcnNbXSwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIHsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworCisgICAgICAgIGludCBhZGp1c3QgPSBzdGFydCAtIHNyY1N0YXJ0OworCisgICAgICAgIGZvciAoaW50IGk9c3JjU3RhcnQ7ICBpIDwgc3JjTGltaXQ7IGkrKykKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKHNyY0NoYXJzW2ldKSkgeworICAgICAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCsxID49IGZSdW5BcnJheS5mTmVnU3RhcnQpCisgICAgICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGUoKTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0WysrZlJ1bkFycmF5LmZQb3NFbmRdID0gYWRqdXN0ICsgaTsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPQorICAgICAgICAgICAgICAgICAgICAoZlJ1bkFycmF5LmZQb3NFbmQgPT0gMCk/IGZGaXJzdFN0eWxlIDogZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmQtMV07CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAvL2ZSdW5BcnJheS5mQ3VyVGV4dExlbmd0aCArPSAoc3JjTGltaXQtc3JjU3RhcnQpOworICAgICAgICBmUnVuQXJyYXkuYWRkVG9DdXJUZXh0TGVuZ3RoKHNyY0xpbWl0LXNyY1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBQcm9jZXNzIGRlbGV0aW9uIGJ5IHJlbW92aW5nIHBhcmFncmFwaCBicmVha3MgY29udGFpbmVkIGluCisqIGRlbGV0ZWQgcmFuZ2UuICBQcm9wb2dhdGUgcGFyYWdyYXBoIHN0eWxlcyBiYWNrd2FyZCwgaWYgbmVjZXNzYXJ5LgorKi8KKyAgICBwdWJsaWMgdm9pZCBkZWxldGVUZXh0KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnRbXSBkYW1hZ2VkUmFuZ2UpIHsKKworICAgICAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNoaWZ0VGFibGVUbyhsaW1pdCk7CisKKyAgICAgICAgaW50IG5ld0VuZCA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhzdGFydC0xKTsKKworICAgICAgICBpZiAobmV3RW5kICE9IGZSdW5BcnJheS5mUG9zRW5kKSB7CisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBwcm9wU3R5bGUgPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF07CisgICAgICAgICAgICBib29sZWFuIHByb3BvZ2F0ZWQ7CisKKyAgICAgICAgICAgIGlmIChuZXdFbmQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBwcm9wb2dhdGVkID0gIXByb3BTdHlsZS5lcXVhbHMoZkZpcnN0U3R5bGUpOworICAgICAgICAgICAgICAgIGZGaXJzdFN0eWxlID0gcHJvcFN0eWxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcHJvcG9nYXRlZCA9ICFwcm9wU3R5bGUuZXF1YWxzKGZTdHlsZVRhYmxlW25ld0VuZF0pOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW25ld0VuZF0gPSBwcm9wU3R5bGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwcm9wb2dhdGVkKSB7CisgICAgICAgICAgICAgICAgaW50IHBTdGFydCA9IChuZXdFbmQ9PS0xKT8gMCA6IGZSdW5BcnJheS5mUnVuU3RhcnRbbmV3RW5kXSArIDE7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oZGFtYWdlZFJhbmdlWzBdLCBwU3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCA9IG5ld0VuZDsKKyAgICAgICAgfQorCisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoLWxlbmd0aCk7CisKKyAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgcHVibGljIGludCBwYXJhZ3JhcGhTdGFydChpbnQgcG9zKSB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MtMSk7CisgICAgICAgIGlmIChydW4gPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKSArIDE7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXR1cm5zIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgcHVibGljIGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKSB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MtMSk7CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJ1bisrOworCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHN0YXJ0ID0gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pOworCisgICAgICAgIHJldHVybiBzdGFydCsxOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIHN0eWxlIG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHBhcmFncmFwaFN0eWxlQXQoaW50IG9mZnNldCkgeworCisgICAgICAgIGludCBydW4gPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcob2Zmc2V0LTEpOworICAgICAgICBpZiAocnVuIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBmRmlyc3RTdHlsZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZTdHlsZVRhYmxlW3J1bl07CisgICAgfQorCisvKioKKyogQ3JlYXRlIHBhcmFncmFwaCBpdGVyYXRvci4KKyovCisvKgorICAgIHB1YmxpYyBNUGFyYWdyYXBoSXRlcmF0b3IgY3JlYXRlUGFyYWdyYXBoSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFBhcmFncmFwaEl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorKi8KKworLyoqCisqIENhbGxlZCBieSBpdGVyYXRvciB0byBnZXQgcnVuIGluZm8uCisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvcihpbnQgcG9zLCBQYXJhZ3JhcGhJdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaWYgKChwb3MgPCAwKSB8fCAocG9zID49IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpKSB7CisgICAgICAgICAgICBpdGVyLnNldCgwLCAwLCBrTm9SdW4sIG51bGwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1bjsKKworICAgICAgICBpZiAocG9zID4gMCkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MtMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJ1biA9IC0xOworCisgICAgICAgIHNldEl0ZXJhdG9yVXNpbmdSdW4ocnVuLCBpdGVyKTsKKyAgICB9CisKKy8qKgorKiBDYWxsZWQgYnkgaXRlcmF0b3IgdG8gZ2V0IHJ1biBpbmZvLgorKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0SXRlcmF0b3JVc2luZ1J1bihpbnQgcnVuLCBQYXJhZ3JhcGhJdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaW50IGxhc3RWYWxpZFJ1biA9IGZSdW5BcnJheS5sYXN0UnVuKCk7CisKKyAgICAgICAgaWYgKHJ1biA8IC0xIHx8IHJ1biA+IGxhc3RWYWxpZFJ1bikgeworICAgICAgICAgICAgaXRlci5zZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQrMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0LTEpCisgICAgICAgICAgICBydW4gPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBpbnQgcnVuU3RhcnQ7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZTsKKworICAgICAgICBpZiAocnVuIDwgMCkgeworICAgICAgICAgICAgcnVuU3RhcnQgPSAwOworICAgICAgICAgICAgc3R5bGUgPSBmRmlyc3RTdHlsZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJ1blN0YXJ0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtydW5dOworICAgICAgICAgICAgc3R5bGUgPSBmU3R5bGVUYWJsZVtydW5dOworICAgICAgICAgICAgaWYgKHJ1blN0YXJ0IDwgMCkKKyAgICAgICAgICAgICAgICBydW5TdGFydCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgcnVuU3RhcnQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXh0UnVuOworCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQpCisgICAgICAgICAgICBuZXh0UnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV4dFJ1biA9IHJ1biArIDE7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0OworCisgICAgICAgIGlmIChuZXh0UnVuID49IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKQorICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtuZXh0UnVuXTsKKyAgICAgICAgICAgIGlmIChydW5MaW1pdCA8IDApCisgICAgICAgICAgICAgICAgcnVuTGltaXQgKz0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIHJ1bkxpbWl0Kys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgaXRlci5zZXQocnVuU3RhcnQsIHJ1bkxpbWl0LCBydW4sIHN0eWxlKTsKKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHBhcmFncmFwaCBicmVha3Mvc3R5bGVzIGJldHdlZW4gc3RhcnQgYW5kIGxlbmd0aCB3aXRoIHBhcmFncmFwaCBicmVha3Mvc3R5bGVzCisqIGZyb20gPHR0PnNyY1RleHQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIHJlcGxhY2UKKyogQHBhcmFtIHNyY1RleHQgdGhlIHRleHQgZnJvbSB3aGljaCBuZXcgcGFyYWdyYXBocyBhcmUgdGFrZW4KKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gdG8gY29weQorKiBAcGFyYW0gc3JjTGltaXQgdGhlIGZpcnN0IGluZGV4IGFmdGVyIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmNUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKSB7CisKKyAgICAgICAgZmluYWwgaW50IGluc0xlbmd0aCA9IHNyY0xpbWl0IC0gc3JjU3RhcnQ7CisgICAgICAgIGlmIChpbnNMZW5ndGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBpbnQgb3JpZ0xlbmd0aCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGRlbGV0ZVRleHQoc3RhcnQsIGxpbWl0LCBkYW1hZ2VkUmFuZ2UpOworCisgICAgICAgIGlmIChpbnNMZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmaW5hbCBpbnQgb2xkUG9zRW5kID0gZlJ1bkFycmF5LmZQb3NFbmQ7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBvcmlnU3R5bGU7CisgICAgICAgIGlmIChsaW1pdCA8IG9yaWdMZW5ndGgpIHsKKyAgICAgICAgICAgIG9yaWdTdHlsZSA9IChmUnVuQXJyYXkuZlBvc0VuZD49MCk/IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA6IGZGaXJzdFN0eWxlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgb3JpZ1N0eWxlID0gc3JjVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHNyY0xpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBwYXJhZ3JhcGhTdGFydCA9IHNyY1N0YXJ0OworICAgICAgICBpbnQgbGFzdFBMaW1pdCA9IHNyY1RleHQucGFyYWdyYXBoU3RhcnQoc3JjTGltaXQpOworICAgICAgICBib29sZWFuIHNlcGFyYXRvckF0RW5kID0gbGFzdFBMaW1pdCA+IHNyY1N0YXJ0ICYmIGlzUGFyYWdyYXBoQnJlYWsoc3JjVGV4dC5hdChsYXN0UExpbWl0LTEpKTsKKworICAgICAgICBpZiAobGltaXQgPT0gb3JpZ0xlbmd0aCAmJiBsYXN0UExpbWl0ID09IHBhcmFncmFwaFN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgPiAwKSB7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gb3JpZ1N0eWxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBvcmlnU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIGZpcnN0UGFzcyA9IHRydWU7CisgICAgICAgICAgICB3aGlsZSAocGFyYWdyYXBoU3RhcnQgPCBsYXN0UExpbWl0KSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBzcmNUZXh0LnBhcmFncmFwaFN0eWxlQXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgICAgIGludCBwYXJhZ3JhcGhMaW1pdCA9IHNyY1RleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpOworCisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZSgpOworCisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHlsZS5lcXVhbHMoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gc3R5bGU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RQYXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBTdGFydCA9IGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oZGFtYWdlZFJhbmdlWzBdLCBwU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHlsZS5lcXVhbHMoZkZpcnN0U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZGaXJzdFN0eWxlID0gc3R5bGU7CisgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRSYW5nZVswXSA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmlyc3RQYXNzID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICBpZiAocGFyYWdyYXBoTGltaXQgPCBsYXN0UExpbWl0IHx8IHNlcGFyYXRvckF0RW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBwYXJhZ3JhcGhMaW1pdCAtIDEgKyBzdGFydCAtIHNyY1N0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA9IHBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kICE9IG9sZFBvc0VuZCkgeworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IG9yaWdTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoaW5zTGVuZ3RoKTsKKyAgICB9CisKKy8qKgorKiBNb2RpZnkgdGhlIHN0eWxlIG9mIGFsbCBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgb2Zmc2V0cyBpbiB0aGUgcmFuZ2UgW3N0YXJ0LCBsaW1pdCkgdG8KKyogPHR0PnN0eWxlPC90dD4uCisqLworICAgIHB1YmxpYyBib29sZWFuIG1vZGlmeVBhcmFncmFwaFN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKSAgeworCisgICAgICAgIGludCBydW4gPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcoc3RhcnQtMSk7CisgICAgICAgIGludCBjdXJyZW50UFN0YXJ0OworICAgICAgICBpZiAocnVuID09IC0xKSB7CisgICAgICAgICAgICBjdXJyZW50UFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGN1cnJlbnRQU3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bikgKyAxOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBtb2RpZmllZEFueXdoZXJlID0gZmFsc2U7CisKKyAgICAgICAgZm9yICg7OykgeworCisgICAgICAgICAgICBib29sZWFuIG1vZGlmaWVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChydW4gPCAwKSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGUgPSBtb2RpZmllci5tb2RpZnlTdHlsZShmRmlyc3RTdHlsZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIW5ld1N0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBuZXdTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlID0gbW9kaWZpZXIubW9kaWZ5U3R5bGUoZlN0eWxlVGFibGVbcnVuXSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIWZTdHlsZVRhYmxlW3J1bl0uZXF1YWxzKG5ld1N0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtydW5dID0gbmV3U3R5bGU7CisgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKyAgICAgICAgICAgICAgICBydW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcnVuKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuZXh0UFN0YXJ0OworICAgICAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIG5leHRQU3RhcnQgPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbmV4dFBTdGFydCA9IGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKSArIDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtb2RpZmllZCkgeworICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55d2hlcmUgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhbWFnZWRSYW5nZVswXSA9IE1hdGgubWluKGRhbWFnZWRSYW5nZVswXSwgY3VycmVudFBTdGFydCk7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzFdID0gTWF0aC5tYXgoZGFtYWdlZFJhbmdlWzFdLCBuZXh0UFN0YXJ0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxpbWl0IDw9IG5leHRQU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQU3RhcnQgPSBuZXh0UFN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1vZGlmaWVkQW55d2hlcmU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkdW1wUGFyYWdyYXBoU3RhcnRzKFBhcmFncmFwaEJ1ZmZlciBzdCkgeworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZlJ1bkFycmF5LmZQb3NFbmQ9IitzdC5mUnVuQXJyYXkuZlBvc0VuZCsiLCBmUnVuQXJyYXkuZk5lZ1N0YXJ0PSIrc3QuZlJ1bkFycmF5LmZOZWdTdGFydCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKT0iK3N0LmZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKyIsIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk9IitzdC5mUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKTsKKworICAgICAgICBpbnQgaTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiUG9zaXRpdmVzOiAiKTsKKyAgICAgICAgZm9yIChpPTA7IGk8PXN0LmZSdW5BcnJheS5mUG9zRW5kOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHN0LmZSdW5BcnJheS5mUnVuU3RhcnRbaV0rIiAiKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICBOZWdhdGl2ZXM6ICIpOworICAgICAgICBmb3IgKGk9c3QuZlJ1bkFycmF5LmZOZWdTdGFydDsgaTxzdC5mUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzdC5mUnVuQXJyYXkuZlJ1blN0YXJ0W2ldKyIgIik7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtOb1J1biA9IC00MjsgLy8gaXRlcmF0b3IgdXNlCisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFBhcmFncmFwaEl0ZXJhdG9yIC8qaW1wbGVtZW50cyBNUGFyYWdyYXBoSXRlcmF0b3IqLworICAgIHsKKyAgICAgICAgUGFyYWdyYXBoSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0KHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBwb3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgZkxpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICBzZXRJdGVyYXRvcihmU3RhcnQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNWYWxpZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VycmVudFJ1biAhPSBrTm9SdW47CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBuZXh0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZSdW5MaW1pdCA8IGZMaW1pdCkgeworICAgICAgICAgICAgICAgIGZDdXJyZW50UnVuKys7CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihmQ3VycmVudFJ1biwgdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwcmV2KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZSdW5TdGFydCA+IGZTdGFydCkgeworICAgICAgICAgICAgICAgIGZDdXJyZW50UnVuLS07CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihmQ3VycmVudFJ1biwgdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXQoaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+PSBmU3RhcnQgJiYgcG9zIDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3IocG9zLCB0aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQYXJhZ3JhcGhCdWZmZXIgY2FsbHMgYmFjayBvbiB0aGlzIHRvIHNldCBpdGVyYXRvcnMKKyAgICAgICAgdm9pZCBzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBjdXJyZW50UnVuLCBBdHRyaWJ1dGVNYXAgc3R5bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZSdW5TdGFydCA9IHN0YXJ0IDwgZlN0YXJ0ID8gZlN0YXJ0IDogc3RhcnQ7CisgICAgICAgICAgICBmUnVuTGltaXQgPSBsaW1pdCA+IGZMaW1pdCA/IGZMaW1pdCA6IGxpbWl0OworICAgICAgICAgICAgZkN1cnJlbnRSdW4gPSBjdXJyZW50UnVuOworICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBmaXJzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldChmU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgbGFzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldChmTGltaXQgLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VTdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGltaXQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZkxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZUxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQgLSBmU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1blN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuTGltaXQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0IC0gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBzdHlsZSgpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZTdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgaW50IGZTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkxpbWl0OworICAgICAgICBwcml2YXRlIGludCBmUnVuU3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5MaW1pdDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkN1cnJlbnRSdW47CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1J1bkFycmF5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1J1bkFycmF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTYyNzk3NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YQpAQCAtMCwwICsxLDI4MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qKgorKiBUaGlzIGNsYXNzIG1haW50YWlucyBpbnRlcnZhbHMgd2l0aGluIGEgcGllY2Ugb2YgdGV4dC4gIEludGVydmFsIGJvdW5kYXJpZXMKKyogYXJlIHN0b3JlZCBpbiB0aGUgZlJ1blN0YXJ0IGFycmF5LiAgSW50ZXJ2YWwgYm91bmRhcmllcyBtYXkgaGF2ZSBhCisqIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHJlcHJlc2VudGF0aW9uLiAgQSBwb3NpdGl2ZSBib3VuZGFyeSBpcyBnaXZlbiBhcyBhbiBvZmZzZXQKKyogZnJvbSAwLiAgQSBuZWdhdGl2ZSBib3VuZGFyeSBpcyBnaXZlbiBhcyBhIG5lZ2F0aXZlIG9mZnNldCBmcm9tIHRoZSBuZWQgb2YgdGhlIHRleHQuCisqIFRoZSBSdW5BcnJheSBzdG9yZXMgcG9zaXRpdmUgYm91bmRhcmllcyBpbiB0aGUgZW50cmllcyBbMCwgZlBvc0VuZF0sIGFuZCBuZWdhdGl2ZQorKiBib3VuZGFyaWVzIGluIHRoZSBlbnRyaWVzIFtmTmVnU3RhcnQsIGZMZW5ndGgpLiAgTmV3IGJvdW5kYXJpZXMgbWF5IGJlIGluc2VydGVkIGludG8KKyogdGhlIHVuZGVmaW5lZCBtaWRkbGUgb2YgdGhlIFJ1bkFycmF5LiAgSWYgZlBvc0VuZCA8IDAsIHRoZXJlIGFyZSBubyBwb3NpdGl2ZSBlbnRyaWVzLgorKiBJZiBmTmVnU3RhcnQgPj0gZlJ1bkFycmF5Lmxlbmd0aCwgdGhlcmUgYXJlIG5vIG5lZ2F0aXZlIG5ldHJpZXMuICBJdCdzIHBvc3NpYmxlIHRvIGhhdmUKKyogYSBydW5hcnJheSB3aXRoIG5laXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZW50cmllcy4KKyoKKyogQXMgYW4gZXhhbXBsZSBvZiBob3cgdGhlIFJ1bkFycmF5IHdvcmtzLCBjb25zaWRlciBhIHBpZWNlIG9mIHRleHQgd2l0aCA1IGludGVydmFscywKKyogd2hlcmUgZWFjaCBpbnRlcnZhbCBpcyAzIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLiAgVGhlIFJ1bkFycmF5IGZvciB0aGlzIHRleHQgY291bGQKKyogbG9vayBsaWtlOgorKiAgICBmQ3VyVGV4dExlbmd0aCA9IDE1LCBmUG9zRW5kID0gNSwgZk5lZ1N0YXJ0ID0gMTAsCisqICAgIGZSdW5TdGFydCA9IHsgMCwgMywgNiwgOSwgMTIsIFUsIFUsIFUsIFUsIFUgfTsKKyogd2hlcmUgVSBpcyBhbiB1bmRlZmluZWQgYXJyYXkgZWxlbWVudC4KKworKiBBbiBlcXVpdmFsZW50IHJlcHJlc2VudGF0aW9uIHdvdWxkIGJlOgorKiAgICBmQ3VyVGV4dExlbmd0aCA9IDE1LCBmUG9zRW5kID0gMywgZk5lZ1N0YXJ0ID0gOCwKKyogICAgZlJ1blN0YXJ0ID0geyAwLCAzLCA2LCBVLCBVLCBVLCBVLCBVLCAtNiwgLTMgfTsKKyoKKyogVGhlIFJ1bkFycmF5IGNsYXNzIGlzIHVzZWQgaW4gdGhlIFN0eWxlQnVmZmVyIGFuZCB0aGUgUGFyYWdyYXBoQnVmZmVyLiAgSW4gdGhlIFN0eWxlQnVmZmVyLAorKiB0aGUgZW50cmllcyBpbiBmUnVuU3RhcnQgZ2l2ZSB0aGUgb2Zmc2V0cyB3aGVyZSBzdHlsZSBydW5zIGJlZ2luLiAgSW4gdGhlCisqIFBhcmFncmFwaEJ1ZmZlciwgdGhlIGZSdW5TdGFydCBlbnRyaWVzIHN0b3JlIG9mZnNldHMgb2YgcGFyYWdyYXBoIGJyZWFrcy4KKyoKKyogVGhpcyBjbGFzcyBwcm92aWRlcyBtZXRob2RzIGZvciBzaGlmdGluZyB0aGUgcnVuIHRhYmxlIHRvIGEgcGFydGljdWxhciBwb3NpdGlvbiwgZXhwYW5kaW5nIHRoZQorKiBydW4gdGFibGUsIGFuZCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIHRoZSBydW4gY29udGFpbmluZyBhIHBhcnRpY3VsYXIgb2Zmc2V0IGluIHRoZSB0ZXh0LiAgQWxsCisqIG90aGVyIGZ1bmN0aW9uYWxpdHkgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIFJ1bkFycmF5IGNsaWVudHMuCisqCisqIFJ1bkFycmF5IHVzZXMgRmFzdEludEJpbmFyeVNlYXJjaCBmb3Igc2VhcmNoZXMuICBUaGUgc2VhcmNoZXMgYXJlIGNvbnN0cnVjdGVkIG9uIGRlbWFuZCBpbgorKiB0aGUgZmluZFJ1bkNvbnRhaW5pbmcgbWV0aG9kLiAgVGhlIHNlYXJjaGVzIGFyZSBpbnZhbGlkYXRlZCB3aGVuIHRoZSBydW4gYXJyYXkgaXMgc2hpZnRlZDsKKyogaG93ZXZlciwgdGhlIFJ1bkFycmF5IGNhbiBiZSBtb2RpZmllZCBieSBvdGhlciBjbGFzc2VzLiAgVGh1cywgaWYgYW5vdGhlciBjbGFzcyBtb2RpZmllcworKiB0aGUgZW50cmllcyBpbiBmUnVuQXJyYXksIG9yIG1vZGlmaWVzIGZQb3NFbmQgb3IgZk5lZ1N0YXJ0LCBpdCBpcyByZXNwb25zaWJsZSBmb3IKKyogY2FsbGluZyBydW5TdGFydHNDaGFuZ2VkLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgUnVuQXJyYXkgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgaW50W10gZlJ1blN0YXJ0OworICAgIHByaXZhdGUgaW50IGZDdXJUZXh0TGVuZ3RoOworICAgIGludCBmUG9zRW5kLCBmTmVnU3RhcnQ7CisgICAgCisgICAgdHJhbnNpZW50IHByaXZhdGUgRmFzdEludEJpbmFyeVNlYXJjaCBmUG9zU2VhcmNoOworICAgIHRyYW5zaWVudCBwcml2YXRlIGJvb2xlYW4gZlBvc1NlYXJjaFZhbGlkOworICAgIHRyYW5zaWVudCBwcml2YXRlIEZhc3RJbnRCaW5hcnlTZWFyY2ggZk5lZ1NlYXJjaDsKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBib29sZWFuIGZOZWdTZWFyY2hWYWxpZDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworCisgICAgUnVuQXJyYXkoaW50IGluaXRpYWxTaXplLCBpbnQgY3VyVGV4dExlbmd0aCkgeworCisgICAgICAgIGZSdW5TdGFydCA9IG5ldyBpbnRbaW5pdGlhbFNpemVdOworICAgICAgICBmQ3VyVGV4dExlbmd0aCA9IGN1clRleHRMZW5ndGg7CisgICAgICAgIGZQb3NFbmQgPSAtMTsKKyAgICAgICAgZk5lZ1N0YXJ0ID0gaW5pdGlhbFNpemU7CisgICAgICAgIAorICAgICAgICBmUG9zU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZk5lZ1NlYXJjaCA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKGZSdW5TdGFydCwgMCwgMSk7CisgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgT05MWSBmb3IgdXNlIGJ5IHRoZSBTZXJpYWxpemF0aW9uCisgICAgICogbWVjaGFuaXNtLiAgSXQgZG9lcyBub3QgbGVhdmUgdGhpcyBvYmplY3QgaW4gYSB2YWxpZCBzdGF0ZSEKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVuQXJyYXkoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlJ1blN0YXJ0KTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZDdXJUZXh0TGVuZ3RoKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZQb3NFbmQpOworICAgICAgICBvdXQud3JpdGVJbnQoZk5lZ1N0YXJ0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW52YWxpZCB2ZXJzaW9uIG9mIFJ1bkFycmF5Iik7CisgICAgICAgIH0KKyAgICAgICAgZlJ1blN0YXJ0ID0gKGludFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZDdXJUZXh0TGVuZ3RoID0gaW4ucmVhZEludCgpOworICAgICAgICBmUG9zRW5kID0gaW4ucmVhZEludCgpOworICAgICAgICBmTmVnU3RhcnQgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIAorICAgICAgICBmUG9zU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZk5lZ1NlYXJjaCA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKGZSdW5TdGFydCwgMCwgMSk7CisgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Q3VyVGV4dExlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZkN1clRleHRMZW5ndGg7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q3VyVGV4dExlbmd0aChpbnQgY3VyVGV4dExlbmd0aCkgeworCisgICAgICAgIGZDdXJUZXh0TGVuZ3RoID0gY3VyVGV4dExlbmd0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRUb0N1clRleHRMZW5ndGgoaW50IGRlbHRhKSB7CisKKyAgICAgICAgZkN1clRleHRMZW5ndGggKz0gZGVsdGE7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcnVuU3RhcnRzQ2hhbmdlZCgpIHsKKworICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbGFzdCB2YWxpZCBydW4uCisqLworICAgIGludCBsYXN0UnVuKCkgeworCisgICAgICAgIHJldHVybiAoZk5lZ1N0YXJ0ID09IGZSdW5TdGFydC5sZW5ndGgpPyBmUG9zRW5kIDogZlJ1blN0YXJ0Lmxlbmd0aC0xOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgcnVuIGFycmF5LiAgUmVwbGFjZXMgb2xkIGZMZW5ndGggbWVtYmVyLgorKi8KKyAgICBpbnQgZ2V0QXJyYXlMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZSdW5TdGFydC5sZW5ndGg7CisgICAgfQorCisvKioKKyogU2hpZnRzIHN0eWxlIHRhYmxlIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBydW4KKyogc3RhcnRzIGJlZm9yZSBwb3MuCisqLworICAgIHZvaWQgc2hpZnRUYWJsZVRvKGludCBwb3MpIHsKKworICAgICAgICBpbnQgb2xkUG9zRW5kID0gZlBvc0VuZDsKKworICAgICAgICB3aGlsZSAoZlBvc0VuZCA+PSAwICYmIGZSdW5TdGFydFtmUG9zRW5kXSA+PSBwb3MpIHsKKworICAgICAgICAgICAgZk5lZ1N0YXJ0LS07CisgICAgICAgICAgICBmUnVuU3RhcnRbZk5lZ1N0YXJ0XSA9IGZSdW5TdGFydFtmUG9zRW5kXSAtIGZDdXJUZXh0TGVuZ3RoOworICAgICAgICAgICAgZlBvc0VuZC0tOworCisgICAgICAgIH0KKworICAgICAgICBwb3MgLT0gZkN1clRleHRMZW5ndGg7CisKKyAgICAgICAgd2hpbGUgKGZOZWdTdGFydDxmUnVuU3RhcnQubGVuZ3RoICYmIGZSdW5TdGFydFtmTmVnU3RhcnRdIDwgcG9zKSB7CisKKyAgICAgICAgICAgIGZQb3NFbmQrKzsKKyAgICAgICAgICAgIGZSdW5TdGFydFtmUG9zRW5kXSA9IGZSdW5TdGFydFtmTmVnU3RhcnRdICsgZkN1clRleHRMZW5ndGg7CisgICAgICAgICAgICBmTmVnU3RhcnQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvbGRQb3NFbmQgIT0gZlBvc0VuZCkgeworICAgICAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXR1cm5zIGluZGV4IG9mIHN0eWxlIHJ1biBjb250YWluaW5nIHBvcy4gIElmIGZpcnN0IHN0eWxlIHJ1biBzdGFydHMgYmVmb3JlCisqIHBvcywgLTEgaXMgcmV0dXJuZWQuICBJZiBwb3MgaXMgZ3JlYXRlciB0aGFuIHRleHQgbGVuZ3RoLCBsYXN0cnVuIGlzIHJldHVybmVkLgorKi8KKyAgICBpbnQgZmluZFJ1bkNvbnRhaW5pbmcoaW50IHBvcykgeworCisgICAgICAgIEZhc3RJbnRCaW5hcnlTZWFyY2ggc2VhcmNoOworICAgICAgICBmaW5hbCBpbnQgbGVuZ3RoID0gZlJ1blN0YXJ0Lmxlbmd0aDsKKworICAgICAgICBpZiAoZk5lZ1N0YXJ0IDwgbGVuZ3RoICYmIChwb3MtZkN1clRleHRMZW5ndGggPj0gZlJ1blN0YXJ0W2ZOZWdTdGFydF0pKSB7CisKKyAgICAgICAgICAgIHBvcyAtPSBmQ3VyVGV4dExlbmd0aDsKKworICAgICAgICAgICAgaWYgKCFmTmVnU2VhcmNoVmFsaWQpIHsKKyAgICAgICAgICAgICAgICBmTmVnU2VhcmNoLnNldERhdGEoZlJ1blN0YXJ0LCBmTmVnU3RhcnQsIGxlbmd0aC1mTmVnU3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoID0gZk5lZ1NlYXJjaDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChmUG9zRW5kID49IDApIHsKKworICAgICAgICAgICAgaWYgKCFmUG9zU2VhcmNoVmFsaWQpIHsKKyAgICAgICAgICAgICAgICBmUG9zU2VhcmNoLnNldERhdGEoZlJ1blN0YXJ0LCAwLCBmUG9zRW5kKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoID0gZlBvc1NlYXJjaDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gLTE7CisKKyAgICAgICAgaW50IHJ1biA9IHNlYXJjaC5maW5kSW5kZXgocG9zKTsKKworICAgICAgICByZXR1cm4gcnVuOworICAgIH0KKworICAgIGludCBnZXRMb2dpY2FsUnVuU3RhcnQoaW50IHJ1bikgeworCisgICAgICAgIGlmIChydW4gPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJ1biA9PSBmUnVuU3RhcnQubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gZkN1clRleHRMZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAocnVuIDw9IGZQb3NFbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0W3J1bl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChydW4gPj0gZk5lZ1N0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydFtydW5dICsgZkN1clRleHRMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHJ1biIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvKioKKyogSW5jcmVhc2VzIHNpemUgb2YgcnVuIHRhYmxlLiAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb3VibGVzIHRoZSBydW4gdGFibGUncyBzaXplLgorKi8KKyAgICB2b2lkIGV4cGFuZFJ1blRhYmxlKCkgeworCisgICAgICAgIHJlc2l6ZVJ1blRhYmxlKGZSdW5TdGFydC5sZW5ndGggKiAyKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIHBvc3NpYmxlIGluIGZSdW5TdGFydC4KKyovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TWluU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gTWF0aC5tYXgoZlBvc0VuZCArIChmUnVuU3RhcnQubGVuZ3RoLWZOZWdTdGFydCkgKyAxLCAxKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGludCBtaW5TaXplID0gZ2V0TWluU2l6ZSgpOworICAgICAgICBpZiAoZlJ1blN0YXJ0Lmxlbmd0aCA+IG1pblNpemUpIHsKKyAgICAgICAgICAgIHJlc2l6ZVJ1blRhYmxlKG1pblNpemUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlc2l6ZVJ1blRhYmxlKGludCBuZXdTaXplKSB7CisKKyAgICAgICAgaWYgKG5ld1NpemUgPCBnZXRNaW5TaXplKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkF0dGVtcHQgdG8gbWFrZSBSdW5BcnJheSB0b28gc21hbGwuIik7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgb2xkTGVuZ3RoID0gZlJ1blN0YXJ0Lmxlbmd0aDsKKworICAgICAgICBpbnQgbmV3UnVuU3RhcnRbXSA9IG5ldyBpbnRbbmV3U2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlJ1blN0YXJ0LCAwLCBuZXdSdW5TdGFydCwgMCwgZlBvc0VuZCsxKTsKKyAgICAgICAgaW50IG5ld05lZ1N0YXJ0ID0gbmV3UnVuU3RhcnQubGVuZ3RoIC0gKG9sZExlbmd0aC1mTmVnU3RhcnQpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZSdW5TdGFydCwgZk5lZ1N0YXJ0LCBuZXdSdW5TdGFydCwgbmV3TmVnU3RhcnQsIChvbGRMZW5ndGgtZk5lZ1N0YXJ0KSk7CisKKyAgICAgICAgZk5lZ1N0YXJ0ID0gbmV3TmVnU3RhcnQ7CisgICAgICAgIGZSdW5TdGFydCA9IG5ld1J1blN0YXJ0OworCisgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3RhbmRhcmRUYWJSdWxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdGFuZGFyZFRhYlJ1bGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjEyOGY1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3RhbmRhcmRUYWJSdWxlci5qYXZhCkBAIC0wLDAgKzEsMzcyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHN0YW5kYXJkIGltcGxlbWVudGF0aW9uIG9mIE1UYWJSdWxlci4KKyAqIEl0IGNhbiBoYXZlIGEgZmluaXRlIG51bWJlciBvZiBjbGllbnQtc3BlY2lmaWVkIFRhYlN0b3BzLiAgQWZ0ZXIKKyAqIHRoZSBjbGllbnQtc3BlY2lmaWVkIFRhYlN0b3BzLCBhbGwgVGFiU3RvcHMgaGF2ZSB0eXBlCisgKiA8Y29kZT5UYWJTdG9wLmtBdXRvPC9jb2RlPiBhbmQgYXJlIGF0IHRoZSBhdXRvc3BhY2UgaW50ZXJ2YWxzLgorICogQHNlZSBUYWJTdG9wCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTdGFuZGFyZFRhYlJ1bGVyIGV4dGVuZHMgTVRhYlJ1bGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyMjM1NjkzNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRhYlN0b3AgQVVUT19aRVJPID0gbmV3IFRhYlN0b3AoMCwgVGFiU3RvcC5rQXV0byk7CisKKyAgICBwcml2YXRlIFRhYlN0b3BbXSBmVGFicyA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZkF1dG9TcGFjaW5nID0gMzY7IC8vIGV2ZXJ5IDEvMiBpbmNoLgorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3RhbmRhcmRUYWJSdWxlciB3aXRoIG9ubHkgYXV0byB0YWJzLCB3aXRoIHNwYWNpbmcgb2YgMzYuCisgICAgICovCisgICAgcHVibGljIFN0YW5kYXJkVGFiUnVsZXIoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdGFuZGFyZFRhYlJ1bGVyIHdpdGggb25seSBhdXRvIHRhYnMsIHdpdGggdGhlCisgICAgICogZ2l2ZW4gYXV0b1NwYWNpbmcuCisgICAgICogQHBhcmFtIGF1dG9TcGFjaW5nIHRoZSBhdXRvU3BhY2luZyBmb3IgdGhpcyB0YWIgcnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhbmRhcmRUYWJSdWxlcihpbnQgYXV0b1NwYWNpbmcpCisgICAgeworICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdGFuZGFyZFRhYlJ1bGVyLiAgVGhlIGZpcnN0IFRhYlN0b3BzIG9uIHRoZSBydWxlciB3aWxsIGJlCisgICAgICogdGhlIFRhYlN0b3BzIGluIHRoZSA8Y29kZT50YWJzPC9jb2RlPiBhcnJheS4gIEFmdGVyIHRoZXNlIHRhYnMgYWxsCisgICAgICogdGFicyBhcmUgYXV0byB0YWJzLgorICAgICAqIEBwYXJhbSB0YWJzIGFuIGFycmF5IG9mIFRhYlN0b3BzLiAgVGhlIFRhYlN0b3BzIGluIHRoZSBhcnJheSBtdXN0CisgICAgICogICAgYmUgaW4gc3RyaWN0bHkgaW5jcmVhc2luZyBvcmRlciAob2YgcG9zaXRpb25zKSwgYW5kIGNhbm5vdCBoYXZlCisgICAgICogICAgdHlwZSA8Y29kZT5UYWJTdG9wLmtBdXRvPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gYXV0b1NwYWNpbmcgdGhlIGF1dG9TcGFjaW5nIGludGVydmFsIHRvIHVzZSBhZnRlciB0aGUgbGFzdAorICAgICAqICAgIGNsaWVudC1zcGVjaWZpZWQgdGFiLgorICAgICAqLworICAgIHB1YmxpYyBTdGFuZGFyZFRhYlJ1bGVyKFRhYlN0b3BbXSB0YWJzLCBpbnQgYXV0b1NwYWNpbmcpCisgICAgeworICAgICAgICBpZiAodGFicy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVRhYkFycmF5KHRhYnMpOworICAgICAgICAgICAgZlRhYnMgPSAoVGFiU3RvcFtdKSB0YWJzLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGFicyA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZkF1dG9TcGFjaW5nID0gYXV0b1NwYWNpbmc7CisgICAgfQorCisgICAgLyoqIFRhYnMgYXMgcHJvdmlkZWQsIHRoZW4gYXV0b1NwYWNpbmcgYWZ0ZXIgdGhlIGxhc3QgdGFiIHRvIGV0ZXJuaXR5LiAgVXNlIHRoaXMgY29uc3RydWN0b3Igd2hlbgorICAgICAgICBtdW5naW5nIGEgcnVsZXIsIGl0IGRvZXMgbm8gdmFsaWRhdGlvbiBvbiB0aGUgdGFicyBpbiB0aGUgdmVjdG9yLiBWZWN0b3IgbWF5IG5vdCBiZSBudWxsLiAqLworCisgICAgLypwdWJsaWMqLyBTdGFuZGFyZFRhYlJ1bGVyKFZlY3RvciB2LCBpbnQgYXV0b1NwYWNpbmcpCisgICAgeworICAgICAgICBmVGFicyA9IHRhYkFycmF5RnJvbVZlY3Rvcih2KTsKKyAgICAgICAgZkF1dG9TcGFjaW5nID0gYXV0b1NwYWNpbmc7CisgICAgfQorCisgICAgLyoqIENvbnN0cnVjdCBmcm9tIGFub3RoZXIgcnVsZXIuIE5vIHZhbGlkYXRpb24uIFJ1bGVyIG1heSBub3QgYmUgbnVsbC4gKi8KKworICAgIC8qcHVibGljKi8gU3RhbmRhcmRUYWJSdWxlcihNVGFiUnVsZXIgcnVsZXIpCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicnVsZXIgbWF5IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKworICAgICAgICBmVGFicyA9IHRhYkFycmF5RnJvbVZlY3Rvcih2ZWN0b3JGcm9tVGFiUnVsZXIocnVsZXIpKTsKKyAgICAgICAgZkF1dG9TcGFjaW5nID0gcnVsZXIuYXV0b1NwYWNpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IHZlcnNpb24gPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGlmICh2ZXJzaW9uICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVkVGV4dDogIiArIHZlcnNpb24pOworICAgICAgICB9CisgICAgICAgIGZUYWJzID0gKFRhYlN0b3BbXSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBpbi5yZWFkSW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlRhYnMpOworICAgICAgICBvdXQud3JpdGVJbnQoZkF1dG9TcGFjaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZmlyc3QgdGFiIGluIHRoZSBydWxlci4gIElmIGFuIGF1dG9UYWIsIGl0IGlzIGF0IHBvc2l0aW9uIHplcm8sIGFuZAorICAgICAqIGFsbCBzdWJzZXF1ZW50IHRhYnMgd2lsbCBiZSBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIFRhYlN0b3AgZmlyc3RUYWIoKQorICAgIHsKKyAgICAgICAgaWYgKGZUYWJzICE9IG51bGwgJiYgZlRhYnMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZUYWJzWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEFVVE9fWkVSTzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IHRhYiBpbiB0aGUgcnVsZXIgd2l0aCBmUG9zaXRpb24gPiBwb3NpdGlvbi4gIElmIGl0IGlzIGFuCisgICAgICogYXV0b3RhYiwgaXQgaXMgYXQgYW4gaW5jcmVtZW50IG9mIGF1dG9TcGFjaW5nLCBhbmQgYWxsIHN1YnNlcXVlbnQgdGFicyB3aWxsIGJlCisgICAgICogYXV0b3RhYnMgYXQgYXV0b1NwYWNpbmcgaW50ZXJ2YWxzLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIFRhYlN0b3AgcmV0dXJuZWQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhpcyBwYXJhbWV0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcCBuZXh0VGFiKGludCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChmVGFicyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZUYWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwgZlRhYnNbaV0uZ2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZUYWJzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvc2l0aW9uID49IDQwMDApIHsgLy8gZGVidWc6IHNhbml0eSBjaGVjaworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJhdXRvIHRhYiBwYXN0IDQwMDAiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgVGFiU3RvcCgoKHBvc2l0aW9uIC8gZkF1dG9TcGFjaW5nKSArIDEpICogZkF1dG9TcGFjaW5nLCBUYWJTdG9wLmtBdXRvKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGludGVydmFsIGZvciBhdXRvdGFicy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGF1dG9TcGFjaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmQXV0b1NwYWNpbmc7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0LiBSZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdAorICAgICAqIGlzIGFuIE1UYWJSdWxlciB3aXRoIHRoZSBzYW1lIGF1dG9TcGFjaW5nIGFuZCB0YWJzLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykKKyAgICB7CisgICAgICAgIGlmIChvID09IHRoaXMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG8gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNVGFiUnVsZXIgcmhzOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmhzID0gKE1UYWJSdWxlcilvOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkF1dG9TcGFjaW5nICE9IHJocy5hdXRvU3BhY2luZygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFRhYlN0b3AgcmhzVGFiID0gcmhzLmZpcnN0VGFiKCk7CisKKyAgICAgICAgaWYgKGZUYWJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZlRhYnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWZUYWJzW2ldLmVxdWFscyhyaHNUYWIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgICAgICByaHNUYWIgPSByaHMubmV4dFRhYihyaHNUYWIuZ2V0UG9zaXRpb24oKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmhzVGFiLmdldFR5cGUoKSA9PSBUYWJTdG9wLmtBdXRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBkZWJ1ZyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIHRhYiBydWxlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIgYXV0bzogIik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoSW50ZWdlci50b1N0cmluZyhmQXV0b1NwYWNpbmcpKTsKKworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmVGFicy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZlRhYnNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqIFV0aWxpdHkgdG8gY29udmVydCBhIHZlY3RvciBvZiB0YWJzIHRvIGFuIGFycmF5LiAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgVGFiU3RvcFtdIHRhYkFycmF5RnJvbVZlY3RvcihWZWN0b3IgdikKKyAgICB7CisgICAgICAgIGludCBjb3VudCA9IHYuc2l6ZSgpOworICAgICAgICBUYWJTdG9wW10gdGFicyA9IG5ldyBUYWJTdG9wW2NvdW50XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICB0YWJzW2ldID0gKFRhYlN0b3Apdi5lbGVtZW50QXQoaSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGFiczsKKyAgICB9CisKKyAgICAvKiogVXRpbGl0eSB0byBjb252ZXJ0IGEgcnVsZXIgdG8gYSB2ZWN0b3Igb2YgdGFicywgZm9yIG11bmdpbmcuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBWZWN0b3IgdmVjdG9yRnJvbVRhYlJ1bGVyKE1UYWJSdWxlciBydWxlcikKKyAgICB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gcnVsZXIuZmlyc3RUYWIoKTsgdGFiICE9IG51bGwgJiYgdGFiLmdldFR5cGUoKSAhPSBUYWJTdG9wLmtBdXRvOyB0YWIgPSBydWxlci5uZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKSkgeworICAgICAgICAgICAgdi5hZGRFbGVtZW50KHRhYik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdjsKKyAgICB9CisKKyAgICAvKiogVXRpbGl0eSB0byB2YWxpZGF0ZSBhbiBhcnJheSBvZiB0YWJzLiAgVGhlIGFycmF5IG11c3Qgbm90IGJlIG51bGwsIG11c3Qgbm90IGNvbnRhaW4gbnVsbAorICAgICAgICBlbnRyaWVzLCBtdXN0IG5vdCBiZSBrQXV0bywgYW5kIHBvc2l0aW9ucyBtdXN0IGluIGluY3JlYXNpbmcgb3JkZXIuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHZhbGlkYXRlVGFiQXJyYXkoVGFiU3RvcFtdIHRhYnMpCisgICAgeworICAgICAgICBpbnQgcG9zID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHRhYnNbaV0uZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjYW4ndCBleHBsaWNpdGx5IHNwZWNpZnkgYW4gYXV0byB0YWIuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbmV4dHBvcyA9IHRhYnNbaV0uZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGlmIChuZXh0cG9zIDw9IHBvcykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInRhYiBwb3NpdGlvbnMgbXVzdCBiZSBpbiBpbmNyZWFzaW5nIG9yZGVyLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zID0gbmV4dHBvczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhlIGdpdmVuIHJ1bGVyLCBleGNlcHQgd2l0aCB0aGUKKyAgICAgKiBnaXZlbiB0YWIgYWRkZWQuCisgICAgICogQHBhcmFtIHJ1bGVyIHRoZSBvcmlnaW5hbCBydWxlci4gIFRoZSBNVGFiUnVsZXIgd2lsbCBiZSB0aGUgc2FtZSBhcworICAgICAqICAgdGhpcyBleGNlcHQgZm9yIHRoZSBhZGRpdGlvbmFsIHRhYi4gIDxjb2RlPnJ1bGVyPC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisgICAgICogQHBhcmFtIHRhYlRvQWRkIHRoZSB0YWIgdG8gYWRkIHRvIHRoZSBuZXcgdGFiIHJ1bGVyCisgICAgICogQHJldHVybiBhbiBNVGFiUnVsZXIgcmVzdWx0aW5nIGZyb20gdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBNVGFiUnVsZXIgYWRkVGFiVG9SdWxlcihNVGFiUnVsZXIgcnVsZXIsIFRhYlN0b3AgdGFiVG9BZGQpCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCB8fCB0YWJUb0FkZCA9PSBudWxsKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicnVsZXIgYW5kIHRhYlRvQWRkIG1heSBub3QgYmUgbnVsbCIpOworCisgICAgICAgIFZlY3RvciB2ZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGJvb2xlYW4gYWRkZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChUYWJTdG9wIHRhYiA9IHJ1bGVyLmZpcnN0VGFiKCk7IHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsgdGFiID0gcnVsZXIubmV4dFRhYihwb3MpKSB7CisgICAgICAgICAgICBwb3MgPSB0YWIuZ2V0UG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKCFhZGRlZCAmJiBwb3MgPj0gdGFiVG9BZGQuZ2V0UG9zaXRpb24oKSkgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gdGFiVG9BZGQuZ2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgdGFiID0gbnVsbDsKKyAgICAgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWJUb0FkZCk7CisgICAgICAgICAgICAgICAgYWRkZWQgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFiICE9IG51bGwpCisgICAgICAgICAgICAgICAgdmVjdG9yLmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFkZGVkKQorICAgICAgICAgICAgdmVjdG9yLmFkZEVsZW1lbnQodGFiVG9BZGQpOworCisgICAgICAgIHJldHVybiBuZXcgU3RhbmRhcmRUYWJSdWxlcih2ZWN0b3IsIHJ1bGVyLmF1dG9TcGFjaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhlIGdpdmVuIHJ1bGVyLCBleGNlcHQgd2l0aCB0aGUKKyAgICAgKiBnaXZlbiB0YWIgcmVtb3ZlZC4KKyAgICAgKiBAcGFyYW0gcnVsZXIgdGhlIG9yaWdpbmFsIHJ1bGVyLiAgVGhlIE1UYWJSdWxlciB3aWxsIGJlIHRoZSBzYW1lIGFzCisgICAgICogICB0aGlzIGV4Y2VwdCBmb3IgdGhlIHJlbW92ZWQgdGFiLiAgPGNvZGU+cnVsZXI8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgdG8gcmVtb3ZlIGZyb20gdGhlIG5ldyB0YWIgcnVsZXIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE1UYWJSdWxlciByZW1vdmVUYWJGcm9tUnVsZXIoTVRhYlJ1bGVyIHJ1bGVyLCBpbnQgcG9zaXRpb24pCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJ1bGVyIG1heSBub3QgYmUgbnVsbCIpOworCisgICAgICAgIFZlY3RvciB2ZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGJvb2xlYW4gcmVtb3ZlZCA9IGZhbHNlOworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gcnVsZXIuZmlyc3RUYWIoKTsgdGFiLmdldFR5cGUoKSAhPSBUYWJTdG9wLmtBdXRvOyB0YWIgPSBydWxlci5uZXh0VGFiKHBvcykpIHsKKyAgICAgICAgICAgIHBvcyA9IHRhYi5nZXRQb3NpdGlvbigpOworCisgICAgICAgICAgICBpZiAoIXJlbW92ZWQgJiYgcG9zID49IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBwb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICByZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIHNraXAgdGhpcyB0YWIgYW5kIGNvbnRpbnVlIHdpdGggdGhlIHJlbWFpbmRlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsgLy8gd2UgZGlkbid0IHJlbW92ZSBhIHRhYiwgYnV0IHNraXBwZWQgcG9zaXRpb24sIHNvIGRvbid0IGJvdGhlciB3aXRoIHRoZSByZXN0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFyZW1vdmVkKSAvLyBubyBjaGFuZ2UKKyAgICAgICAgICAgIHJldHVybiBydWxlcjsKKworICAgICAgICBpZiAodmVjdG9yLnNpemUoKSA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHJ1bGVyLmF1dG9TcGFjaW5nKCkpOworCisgICAgICAgIHJldHVybiBuZXcgU3RhbmRhcmRUYWJSdWxlcih2ZWN0b3IsIHJ1bGVyLmF1dG9TcGFjaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhlIGdpdmVuIHJ1bGVyLCBleGNlcHQgd2l0aCB0aGUKKyAgICAgKiB0YWIgYXQgcG9zaXRpb24gPGNvZGU+ZnJvbVBvc2l0aW9uPC9jb2RlPiBtb3ZlZCB0byBwb3NpdGlvbgorICAgICAqIDxjb2RlPnRvUG9zaXRpb248L2NvZGU+LgorICAgICAqIEBwYXJhbSBydWxlciB0aGUgb3JpZ2luYWwgcnVsZXIuICBUaGUgTVRhYlJ1bGVyIHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAgICAgKiAgIHRoaXMgZXhjZXB0IGZvciB0aGUgbW92ZWQgdGFiLiAgPGNvZGU+cnVsZXI8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gZnJvbVBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIHRvIG1vdmUKKyAgICAgKiBAcGFyYW0gdG9Qb3NpdGlvbiB0aGUgbmV3IHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE1UYWJSdWxlciBtb3ZlVGFiT25SdWxlcihNVGFiUnVsZXIgcnVsZXIsIGludCBmcm9tUG9zaXRpb24sIGludCB0b1Bvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHJ1bGVyID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBtYXkgbm90IGJlIG51bGwiKTsKKworICAgICAgICBWZWN0b3IgdmVjdG9yID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBib29sZWFuIG1vdmVkID0gZmFsc2U7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIocG9zKSkgeworICAgICAgICAgICAgcG9zID0gdGFiLmdldFBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIGlmICghbW92ZWQgJiYgcG9zID09IGZyb21Qb3NpdGlvbikgeworICAgICAgICAgICAgICAgIG1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB0YWIgPSBuZXcgVGFiU3RvcCh0b1Bvc2l0aW9uLCB0YWIuZ2V0VHlwZSgpKTsgLy8gY29weSBpdAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWIpOworICAgICAgICB9CisgICAgICAgIGlmICghbW92ZWQpIC8vIG5vIGNoYW5nZQorICAgICAgICAgICAgcmV0dXJuIHJ1bGVyOworCisgICAgICAgIHJldHVybiBuZXcgU3RhbmRhcmRUYWJSdWxlcih2ZWN0b3IsIHJ1bGVyLmF1dG9TcGFjaW5nKCkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZUJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZUJ1ZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkNWFjYTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEKQEAgLTAsMCArMSw2NjkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKgorICAgIDgvMi85NgorICAgICAgICBBZGRlZCBzZXRJdGVyYXRvclVzaW5nUnVuIG1ldGhvZAorCisgICAgOC81Lzk2CisgICAgICAgIE5vIGxvbmdlciBoYXMgdG8gYmUgY29uc3RydWN0ZWQgd2l0aCBhbiBNVGV4dC4KKworICAgIDgvOC85NgorICAgICAgICBBZGRlZCByZXBsYWNlIG1ldGhvZCwgd2hpY2ggcmVhZHMgc3R5bGVzIGZyb20gYSBTdHlsZVJ1bkl0ZXJhdG9yLgorICAgICAgICBBbHNvLCBhZGRlZCBhIGNvbnN0cnVjdG9yIHdoaWNoIHRha2VzIGEgU3R5bGVSdW5JdGVyYXRvci4KKyAgICAgICAgVGhlc2UgbWV0aG9kcyBhcmUgZm9yIGNvcHkvcGFzdGUgc3VwcG9ydC4KKyAgICA4LzE2Lzk2CisgICAgICAgIFN0eWxlQnVmZmVyIG5vdyB0YWtlcyBNQ29uc3RUZXh0IGluc3RlYWQgb2YgTVRleHQgd2hlcmUgcG9zc2libGUuCisKKyAgICAxMC8yMy85NgorICAgICAgICBTb21lIG9sZCBjb21tZW50ZWQtb3V0IGNvZGUgcmVtb3ZlZCBmb3IgYWVzdGhldGljIHJlYXNvbnMuCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIHRvIEF0dHJpYnV0ZU1hcAorKi8KKworLyoqCisqIFN0eWxlQnVmZmVyIGltcGxlbWVudHMgPHR0Pk1TdHlsZUJ1ZmZlcjwvdHQ+LiAgSXQgbWFpbnRhaW5zCisqIDx0dD5BdHRyaWJ1dGVNYXA8L3R0PiBvYmplY3RzIHRvIGFwcGx5IHRvIHRoZSB0ZXh0IGluIGFuIDx0dD5NVGV4dDwvdHQ+IG9iamVjdCwKKyogYW5kIHRoZQorKiBpbnRlcnZhbHMgb24gd2hpY2ggdGhvc2Ugc3R5bGVzIGFwcGx5LgorKiA8cD4KKyogU3R5bGVCdWZmZXIgc3RvcmVzIHRoZSBpbnRlcnZhbHMgb24gd2hpY2ggc3R5bGVzIGFwcGx5IGluIGEgPHR0PlJ1bkFycmF5PC90dD4KKyogb2JqZWN0IChzZWUgPHR0PlJ1bkFycmF5PC90dD4gZm9yIG1vcmUgaW5mb3JtYXRpb24pLiAgVGhlIHN0eWxlcyBhcmUgc3RvcmVkIGluCisqIGFuIGFycmF5IG9mIDx0dD5BdHRyaWJ1dGVNYXA8L3R0PiBvYmplY3RzLgorKiA8cD4KKyogPHR0PlJ1bkFycmF5PC90dD4gbWFpbnRhaW5zIGFuIGFycmF5IG9mIGludGVnZXJzIHdoaWNoIHJlcHJlc2VudCBvZmZzZXRzIGludG8gdGV4dC4KKyogVGhlIGFycmF5IGhhcyBhICJwb3NpdGl2ZSIgcmVnaW9uIGluIHdoaWNoIG9mZnNldHMgYXJlIGdpdmVuIGFzIHBvc2l0aXZlIGRpc3RhbmNlcworKiBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdGV4dCwgYW5kIGEgIm5lZ2F0aXZlIiByZWdpb24gaW4gd2hpY2ggb2Zmc2V0cyBhcmUgZ2l2ZW4gYXMKKyogbmVnYXRpdmUgZGlzdGFuY2VzIGZyb20gdGhlIGVuZCBvZiB0aGUgdGV4dC4gIEJldHdlZW4gdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSByZWdpb25zCisqIGlzIGEgZ2FwLCBpbnRvIHdoaWNoIG5ldyBvZmZzZXRzIG1heSBiZSBpbnNlcnRlZC4gIFRoaXMgc3RvcmFnZSBzY2hlbWUgYWxsb3dzIGZvcgorKiBlZmZpY2llbnQgcmVzcG9uc2UgdG8gYSBzZXJpZXMgb2YgZWRpdGluZyBvcGVyYXRpb25zIHdoaWNoIG9jY3VyIGluIHRoZSBzYW1lIGFyZWEgb2YgdGhlCisqIHRleHQuCisqIDxwPgorKiBTdHlsZUJ1ZmZlciB1c2VzIHRoZSBvZmZzZXRzIGluIDx0dD5SdW5BcnJheTwvdHQ+IGFzIHRoZSBib3VuZGFyaWVzIG9mIHN0eWxlIHJ1bnMuCisqIEEgc3R5bGUgcnVuIGJlZ2lucyBhdCBlYWNoIG9mZnNldCBpbiA8dHQ+UnVuQXJyYXk8L3R0PiwgYW5kIGVhY2ggc3R5bGUgcnVuIGNvbnRpbnVlcyB0bworKiB0aGUgbmV4dCBvZmZzZXQuICBUaGUgc3R5bGUgYXJyYXkgaXMga2VwdCBpbiBzeW5jIHdpdGggdGhlIGFycmF5IG9mIG9mZnNldHMgaW4gPHR0PlJ1bkFycmF5PC90dD47CisqIHRoYXQgaXMsIHRoZSBzdHlsZSB3aGljaCBiZWdpbnMgYXQgUnVuQXJyYXlbaV0gaXMgc3RvcmVkIGluIFN0eWxlQXJyYXlbaV0uCisqIDxwPgorKiBUaGUgZmlyc3QgZW50cnkgaW4gdGhlIDx0dD5SdW5BcnJheTwvdHQ+IGlzIGFsd2F5cyAwLgorKgorKiBAYXV0aG9yIEpvaG4gUmFsZXkKKyoKKyogQHNlZSBBdHRyaWJ1dGVNYXAKKyogQHNlZSBNVGV4dAorKiBAc2VlIFJ1bkFycmF5CisqLworCitmaW5hbCBjbGFzcyBTdHlsZUJ1ZmZlciBleHRlbmRzIE1TdHlsZUJ1ZmZlciBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBDcmVhdGVzIGEgbmV3IHN0eWxlIGJ1ZmZlciB3aXRoIGxlbmd0aCBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIDx0dD50ZXh0PC90dD4sCisgICAgKiBhbmQgd2l0aCBhIHNpbmdsZSBydW4gb2YgPHR0PmRlZmF1bHRTdHlsZTwvdHQ+LgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0luaXRpYWxTaXplID0gMTA7CisgICAgcHJpdmF0ZSBSdW5BcnJheSBmUnVuQXJyYXk7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGVUYWJsZVtdOworCisgICAgU3R5bGVCdWZmZXIoTUNvbnN0VGV4dCB0ZXh0LCBBdHRyaWJ1dGVNYXAgaW5pdGlhbFN0eWxlKSB7CisKKyAgICAgICAgdGhpcyh0ZXh0Lmxlbmd0aCgpLCBpbml0aWFsU3R5bGUpOworICAgIH0KKworICAgIC8qKgorICAgICogQ3JlYXRlcyBhIG5ldyBzdHlsZSBidWZmZXIgd2l0aCBsZW5ndGggPHR0PmluaXRpYWxMZW5ndGg8L3R0PiBhbmQgd2l0aCBhCisgICAgKiBzaW5nbGUgcnVuIG9mIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAqLworCisgICAgU3R5bGVCdWZmZXIoaW50IGluaXRpYWxMZW5ndGgsIEF0dHJpYnV0ZU1hcCBpbml0aWFsU3R5bGUpIHsKKworICAgICAgICBmUnVuQXJyYXkgPSBuZXcgUnVuQXJyYXkoa0luaXRpYWxTaXplLCBpbml0aWFsTGVuZ3RoKTsKKyAgICAgICAgZlJ1bkFycmF5LmZQb3NFbmQgPSAwOworICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0WzBdID0gMDsKKworICAgICAgICBmU3R5bGVUYWJsZSA9IG5ldyBBdHRyaWJ1dGVNYXBba0luaXRpYWxTaXplXTsgLy8gZG8gSSByZWFsbHkgd2FudCB0byBkbyB0aGlzPz8/CisKKyAgICAgICAgZlN0eWxlVGFibGVbMF0gPSBpbml0aWFsU3R5bGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90ZTogdGhpcyBjb25zdHJ1Y3RvciBpcyBPTkxZIGZvciB1c2UgYnkgdGhlIFNlcmlhbGl6YXRpb24KKyAgICAgKiBtZWNoYW5pc20uICBJdCBkb2VzIG5vdCBsZWF2ZSB0aGlzIG9iamVjdCBpbiBhIHZhbGlkIHN0YXRlIQorICAgICAqLworICAgIHB1YmxpYyBTdHlsZUJ1ZmZlcigpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgY29tcHJlc3MoKTsKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUnVuQXJyYXkpOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlN0eWxlVGFibGUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW52YWxpZCB2ZXJzaW9uIG9mIFN0eWxlQnVmZmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5ID0gKFJ1bkFycmF5KSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gKEF0dHJpYnV0ZU1hcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgfQorCisvKioKKyogU2hpZnQgc3R5bGUgYW5kIHJ1biB0YWJsZXMgc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIHJ1biBiZWdpbnMgYmVmb3JlIHRoZSBnaXZlbiBwb3NpdGlvbi4KKyogU2luY2UgdGhlcmUgaXMgYWx3YXlzIGEgcnVuIHN0YXJ0IGF0IDAsIHRoaXMgbWV0aG9kIGVuc3VyZXMgdGhhdCB0aGUgZmlyc3QgcnVuIHdpbGwgbm90IGJlIHNoaWZ0ZWQuCisqIFRoaXMgaXMgY2FsbGVkIGJ5OiA8dHQ+aW5zZXJ0VGV4dDwvdHQ+IGFuZCA8dHQ+ZGVsZXRlVGV4dDwvdHQ+LgorKiBAcGFyYW0gcG9zIGEgcG9zaXRpb24gaW4gdGhlIHRleHQuCisqLworCisgICAgcHJpdmF0ZSB2b2lkIHNoaWZ0VGFibGVUbyhpbnQgcG9zKSB7CisKKyAgICAgICAgaWYgKHBvcyA9PSAwKQorICAgICAgICAgICAgcG9zID0gMTsKKworICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBpbnQgb2xkUG9zRW5kID0gZlJ1bkFycmF5LmZQb3NFbmQ7CisKKyAgICAgICAgZlJ1bkFycmF5LnNoaWZ0VGFibGVUbyhwb3MpOworCisgICAgICAgIGlmIChvbGRQb3NFbmQgPiBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlLCBmUnVuQXJyYXkuZk5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQb3NFbmQtZlJ1bkFycmF5LmZQb3NFbmQpOworICAgICAgICBlbHNlIGlmIChvbGROZWdTdGFydCA8IGZSdW5BcnJheS5mTmVnU3RhcnQpCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCBvbGROZWdTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIG9sZFBvc0VuZCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0LW9sZE5lZ1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBVcGRhdGUgdGhlIHN0eWxlIHRhYmxlIHRvIHJlZmxlY3QgYSBjaGFuZ2UgaW4gdGhlIFJ1bkFycmF5J3Mgc2l6ZS4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZUFycmF5UmVzaXplKGludCBvbGROZWdTdGFydCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZVRhYmxlW10gPSBuZXcgQXR0cmlidXRlTWFwW2ZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgMCwgbmV3U3R5bGVUYWJsZSwgMCwgZlJ1bkFycmF5LmZQb3NFbmQrMSk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LCBuZXdTdHlsZVRhYmxlLCBmUnVuQXJyYXkuZk5lZ1N0YXJ0LCAoZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCktZlJ1bkFycmF5LmZOZWdTdGFydCkpOworICAgICAgICBmU3R5bGVUYWJsZSA9IG5ld1N0eWxlVGFibGU7CisgICAgfQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBzdG9yYWdlIHVzZWQgYnkgdGhpcyBvYmplY3QuCisqLworICAgIHZvaWQgY29tcHJlc3MoKSB7CisKKyAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZlJ1bkFycmF5LmNvbXByZXNzKCk7CisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0ICE9IG9sZE5lZ1N0YXJ0KSB7CisgICAgICAgICAgICBoYW5kbGVBcnJheVJlc2l6ZShvbGROZWdTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBJbmNyZWFzZSB0aGUgc3RvcmFnZSBjYXBhY2l0eSBvZiB0aGUgc3R5bGUgYW5kIHJ1biB0YWJsZXMgaWYgbm8gcm9vbSByZW1haW5zLgorKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpIHsKKworICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgKyAxID09IGZSdW5BcnJheS5mTmVnU3RhcnQpIHsKKworICAgICAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgICAgIGZSdW5BcnJheS5leHBhbmRSdW5UYWJsZSgpOworICAgICAgICAgICAgaGFuZGxlQXJyYXlSZXNpemUob2xkTmVnU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisvKgorICAgIHB1YmxpYyBNU3R5bGVSdW5JdGVyYXRvciBjcmVhdGVTdHlsZVJ1bkl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJ1bkl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorKi8KKy8qKgorKiBSZXNwb25kIHRvIGFuIGluc2VydGlvbiBpbiB0aGUgdGV4dC4gIFRoZSBsZW5ndGggb2YgdGhlIGxhc3Qgc3R5bGUgcnVuIHdoaWNoCisqIGJlZ2lucyBiZWZvcmUgPHR0PnN0YXJ0PC90dD4gaXMgaW5jcmVhc2VkIGJ5IDx0dD5sZW5ndGg8L3R0Pi4gIFRoZSBydW4gdGFibGUKKyogaXMgc2hpZnRlZCBzdWNoIHRoYXQgdGhlIHJ1biBpbnRvIHdoaWNoIHRleHQgd2FzIGluc2VydGVkIGlzIHRoZSBsYXN0IHBvc2l0aXZlIHJ1bi4KKyogVGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoYXQgYWxsIHN0eWxlcyBwcm9wb2dhdGUuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBpbnNlcnRpb24gYmVnYW4KKyogQHBhcmFtIGxlbmd0aCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW5zZXJ0ZWQKKyovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgobGltaXQgLSBzdGFydCk7CisgICAgfQorCisvKioKKyogUmVzcG9uZCB0byBhIGRlbGV0aW9uIGluIHRoZSB0ZXh0LiAgVGhlIGxhc3Qgc3R5bGUgcnVuIGJlZm9yZQorKiA8dHQ+c3RhcnQ8L3R0PiBpcyB0cnVuY2F0ZWQgdG8gZW5kIGF0IDx0dD5zdGFydDwvdHQ+LiAgVGhlCisqIHN0eWxlIHJ1biBjb250YWluaW5nICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pIGlzIHNldCB0byBiZWdpbgorKiBhdCAoPHR0PnN0YXJ0PC90dD4rPHR0Pmxlbmd0aDwvdHQ+KS4gIFJ1bnMgaW4gYmV0d2VlbiBhcmUgZGVsZXRlZC4KKyogSWYgdGhlIGRlbGV0aW9uIG9jY3VycyBlbnRpcmVseSB3aXRoaW4gb25lIHN0eWxlIHJ1biwgdGhlIGxlbmd0aCBvZiB0aGUgc3R5bGUKKyogcnVuIGlzIHJlZHVjZWQgYnkgPHR0Pmxlbmd0aDwvdHQ+LgorKiBUaGlzIGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCBhbGwgc3R5bGVzIHByb3BvZ2F0ZS4KKyogVGhpcyBtZXRob2Qgc2hpZnRzIHRoZSBydW4gdGFibGUgc3VjaCB0aGF0IHRoZSBydW4gaW4gd2hpY2ggdGhlIGRlbGV0ZSBiZWdhbgorKiBpcyB0aGUgbGFzdCBwb3NpdGl2ZSBydW4uICBPdGhlciBtZXRob2RzIGRlcGVuZCBvbiB0aGlzICJzaWRlIGVmZmVjdCIuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIHN0b3BwZWQKKyovCisgICAgcHVibGljIHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworCisgICAgICAgIC8vIEFuIG9wdGltaXphdGlvbiAtIGlmIGEgd2hvbGUgcnVuIHdhc24ndCBkZWxldGVkIHdlIGRvbid0CisgICAgICAgIC8vIG5lZWQgdG8gY2hlY2sgZm9yIHJ1biBtZXJnaW5nLCB3aGljaCBjb3VsZCBiZSBleHBlbnNpdmUuCisgICAgICAgIGJvb2xlYW4gd2hvbGVSdW5EZWxldGVkID0gZmFsc2U7CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKHN0YXJ0KTsKKworICAgICAgICBpbnQgZmlyc3RSdW5MaW1pdCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpCisgICAgICAgICAgICBmaXJzdFJ1bkxpbWl0ICs9IGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF07CisKKyAgICAgICAgaWYgKGxpbWl0ID09IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQgPSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChsaW1pdCA+PSBmaXJzdFJ1bkxpbWl0KSB7CisKKyAgICAgICAgICAgIGludCBlbmQgPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcobGltaXQpOworICAgICAgICAgICAgaWYgKGVuZCAhPSBmUnVuQXJyYXkuZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZW5kXSA9IGxpbWl0IC0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0ID0gZW5kOworICAgICAgICAgICAgICAgIHdob2xlUnVuRGVsZXRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCAhPSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IDAgJiYgbGltaXQgPj0gZmlyc3RSdW5MaW1pdCkgeworICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBzdHlsZSBydW4gd2FzIGRlbGV0ZWQ7ICBtb3ZlIGZpcnN0ICJuZWdhdGl2ZSIgcnVuIGludG8KKyAgICAgICAgICAgICAgICAvLyBmaXJzdCBwb3NpdGlvbgorICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlWzBdID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydCsrXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHdob2xlUnVuRGVsZXRlZCkgeworICAgICAgICAgICAgICAgIGlmIChmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XS5lcXVhbHMoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBtZXJnZSBzdHlsZSBydW5zCisgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmUnVuQXJyYXkuYWRkVG9DdXJUZXh0TGVuZ3RoKC1sZW5ndGgpOworCisgICAgICAgIGZSdW5BcnJheS5ydW5TdGFydHNDaGFuZ2VkKCk7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJJbiBkZWxldGVUZXh0OiAgbnVtYmVyIG9mIHN0eWxlIHJ1bnMgPSAiICsgbnVtUnVucyh0aGlzKSk7CisgICAgfQorCisvKioKKyogQXJyYW5nZSBzdHlsZSB0YWJsZSBzbyB0aGF0IG9sZCBzdHlsZXMgaW4gdGhlIHByb3ZpZGVkIHJhbmdlIGFyZSByZW1vdmVkLCBhbmQKKyogbmV3IHN0eWxlcyBjYW4gYmUgaW5zZXJ0ZWQgaW50byB0aGUgaW5zZXJ0aW9uIGdhcC4KKyogQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCwgbmV3IHN0eWxlIHN0YXJ0cyBhbmQgc3R5bGVzIG1heSBiZSBwbGFjZWQKKyogaW4gdGhlIGluc2VydGlvbiBnYXBzIG9mIGZSdW5BcnJheS5mU3R5bGVTdGFydCBhbmQgZlN0eWxlVGFibGUuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgaW4gdGhlIHRleHQgd2hlcmUgaW5zZXJ0aW9uIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbiB0aGUgdGV4dCB3aGVyZSBwcmV2aW91cyBzdHlsZXMgcmVzdW1lCisqLworICAgIHByaXZhdGUgdm9pZCBwcmVwYXJlU3R5bGVJbnNlcnQoaW50IHN0YXJ0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IDApIHsKKworICAgICAgICAgICAgLy8gZlJ1bkFycmF5LmZQb3NFbmQgc2hvdWxkIGJlIDAgaWYgd2UncmUgaW4gdGhpcyBicmFuY2guCisKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpID4gMCkgeworCisgICAgICAgICAgICAgICAgLyogTW92ZSBmaXJzdCBleGlzdGluZyBzdHlsZSBydW4gdG8gbmVnYXRpdmUgZW5kIG9mIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICAgICBEb24ndCBkbyB0aGlzIGlmIGxlbmd0aD09MDsgIHRoYXQgaXMsIGlmIHRoZXJlIGlzIG5vIHJlYWwKKyAgICAgICAgICAgICAgICAgICBzdHlsZSBydW4gYXQgMC4KKyAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtLTsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XSA9IGZTdHlsZVRhYmxlWzBdOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF0gPSAtZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlJ1bkFycmF5LmZQb3NFbmQgPSAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgLy8gY29uc2lzdGVuY3kgY2hlY2s6IHN0YXJ0IHNob3VsZCBiZSBpbiBjdXJyZW50IGdhcAorICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdID49IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbmNvbnNpc3RlbnQgc3RhdGUhICBTdGFydCBzaG91bGQgYmUgd2l0aGluIGluc2VydGlvbiBnYXAuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBlbmRPZkluc2VydGlvbkdhcCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZW5kT2ZJbnNlcnRpb25HYXAgKz0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVuZE9mSW5zZXJ0aW9uR2FwIDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluY29uc2lzdGVudCBzdGF0ZSEgIFN0YXJ0IHNob3VsZCBiZSB3aXRoaW4gaW5zZXJ0aW9uIGdhcC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgbm8gYnJlYWsgYXQgc3RhcnQgKG9uIG5lZ2F0aXZlIGVuZCBvZiBidWZmZXIpIG1ha2Ugb25lCisKKyAgICAgICAgICAgIGlmIChlbmRPZkluc2VydGlvbkdhcCAhPSBzdGFydCkgeworCisgICAgICAgICAgICAgICAgLy8gc3BsaXQgc3R5bGUgcnVuIGluIGluc2VydGlvbiBnYXAKKworICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGVJZkZ1bGwoKTsKKworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtLTsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gc3RhcnQgLSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInNwbGl0dGluZyBydW4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb2RpZnlTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSkgeworCisgICAgICAgIGlmIChsaW1pdCA9PSBzdGFydCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKHN0YXJ0KTsKKworICAgICAgICBpbnQgY3VycmVudFJ1blN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBvbGRTdHlsZTsKKyAgICAgICAgQXR0cmlidXRlTWFwIG1lcmdlU3R5bGUgPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF07CisKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF0rZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSA9PSBzdGFydCkgeworCisgICAgICAgICAgICBvbGRTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdOworICAgICAgICAgICAgKytmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgb2xkU3R5bGUgPSBtZXJnZVN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBtb2RpZmllZEFueXdoZXJlID0gZmFsc2U7CisgICAgICAgIGZvcig7OykgeworCisgICAgICAgICAgICBib29sZWFuIG1vZGlmaWVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIHB1c2ggbmV3IHN0eWxlIGludG8gZ2FwIG9uIHBvc2l0aXZlIHNpZGUKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKG9sZFN0eWxlKTsKKyAgICAgICAgICAgIGlmIChkYW1hZ2VkUmFuZ2UgIT0gbnVsbCAmJiAhbmV3U3R5bGUuZXF1YWxzKG9sZFN0eWxlKSkgeworICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gbW9kaWZpZWRBbnl3aGVyZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oY3VycmVudFJ1blN0YXJ0LCBkYW1hZ2VkUmFuZ2VbMF0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW5ld1N0eWxlLmVxdWFscyhtZXJnZVN0eWxlKSkgeworCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRSdW5TdGFydCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGVJZkZ1bGwoKTsKKyAgICAgICAgICAgICAgICAgICAgKytmUnVuQXJyYXkuZlBvc0VuZDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBuZXdTdHlsZTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA9IGN1cnJlbnRSdW5TdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVyZ2VTdHlsZSA9IG5ld1N0eWxlOworCisgICAgICAgICAgICBpbnQgbmV4dFJ1blN0YXJ0ID0gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChmUnVuQXJyYXkuZk5lZ1N0YXJ0KTsKKworICAgICAgICAgICAgaWYgKGxpbWl0ID4gbmV4dFJ1blN0YXJ0KSB7CisgICAgICAgICAgICAgICAgb2xkU3R5bGUgPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XTsKKyAgICAgICAgICAgICAgICBjdXJyZW50UnVuU3RhcnQgPSBuZXh0UnVuU3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRSYW5nZVsxXSA9IE1hdGgubWF4KGN1cnJlbnRSdW5TdGFydCwgZGFtYWdlZFJhbmdlWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxpbWl0IDwgbmV4dFJ1blN0YXJ0ICYmICFvbGRTdHlsZS5lcXVhbHMobWVyZ2VTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworICAgICAgICAgICAgICAgICAgICArK2ZSdW5BcnJheS5mUG9zRW5kOworICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBvbGRTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0gPSBsaW1pdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRSYW5nZVsxXSA9IE1hdGgubWF4KGxpbWl0LCBkYW1hZ2VkUmFuZ2VbMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIG1lcmdlIGxhc3QgcnVuIGlmIG5lZWRlZAorICAgICAgICBpZiAoKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSkgeworICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKworICAgICAgICByZXR1cm4gbW9kaWZpZWRBbnl3aGVyZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHN0eWxlU3RhcnQoaW50IHBvcykgeworCisgICAgICAgIGlmIChwb3MgPT0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHN0eWxlTGltaXQoaW50IHBvcykgeworCisgICAgICAgIGlmIChwb3MgPT0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIGludCBydW4gPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcocG9zKTsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKSB7CisgICAgICAgICAgICBydW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgKytydW47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pOworICAgIH0KKworLyoqCisqIFJldHVybiBzdHlsZSBhdCBsb2NhdGlvbiA8dHQ+cG9zPC90dD4uCisqIEBwYXJhbSBwb3MgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybnMgdGhlIHN0eWxlIG9mIHRoZSBjaGFyYWN0ZXIgYXQgPHR0Pm9mZnNldDwvdHQ+CisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgc3R5bGVBdChpbnQgcG9zKSB7CisKKyAgICAgICAgcmV0dXJuIGZTdHlsZVRhYmxlWyBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcocG9zKSBdOworICAgIH0KKworLyoKKyogU2V0IHJ1biBzdGFydCwgcnVuIGxlbmd0aCwgYW5kIHJ1biB2YWx1ZSBpbiBhbiBpdGVyYXRvci4gIFRoaXMgbWV0aG9kIGlzCisqIG9ubHkgY2FsbGVkIGJ5IGEgPHR0PlN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dC4gIFRoZSBpdGVyYXRvcidzIHJ1biBzdGFydCBhbmQgcnVuIGxpbWl0IGFyZQorKiBzZXQgdG8gdGhlIHJ1biBjb250YWluaW5nIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIGl0ZXIgdGhlIGl0ZXJhdG9yIHRvIHNldAorKi8KKyAgICB2b2lkIHNldEl0ZXJhdG9yKGludCBwb3MsIFN0eWxlUnVuSXRlcmF0b3IgaXRlcikgeworCisgICAgICAgIGlmICgocG9zIDwgMCkgfHwgKHBvcyA+IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpKSB7CisKKyAgICAgICAgICAgIGl0ZXIuc2V0KG51bGwsIDAsIDAsIGtOb1J1bik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcyk7CisKKyAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihydW4sIGl0ZXIpOworICAgIH0KKworLyoqCisqIFNldCBydW4gc3RhcnQsIHJ1biBsZW5ndGgsIGFuZCBydW4gdmFsdWUgaW4gYW4gaXRlcmF0b3IuICBUaGlzIG1ldGhvZCBpcworKiBvbmx5IGNhbGxlZCBieSBhIDx0dD5TdHlsZVJ1bkl0ZXJhdG9yPC90dD4uCisqIEBwYXJhbSBydW4gdGhlIGluZGV4IG9mIHRoZSBydW4gdG8gd2hpY2ggdGhlIGl0ZXJhdG9yIHNob3VsZCBiZSBzZXQKKyogQHBhcmFtIGl0ZXIgdGhlIGl0ZXJhdG9yIHRvIHNldAorKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0SXRlcmF0b3JVc2luZ1J1bihpbnQgcnVuLCBTdHlsZVJ1bkl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgbGFzdFZhbGlkUnVuID0gZlJ1bkFycmF5Lmxhc3RSdW4oKTsKKworICAgICAgICBpZiAocnVuIDwgMCB8fCBydW4gPiBsYXN0VmFsaWRSdW4pIHsKKworICAgICAgICAgICAgaXRlci5zZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQrMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGVsc2UgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0LTEpCisgICAgICAgICAgICBydW4gPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBpbnQgcnVuU3RhcnQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W3J1bl07CisgICAgICAgIGlmIChydW5TdGFydCA8IDApCisgICAgICAgICAgICBydW5TdGFydCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZTdHlsZVRhYmxlW3J1bl07CisKKyAgICAgICAgaW50IG5leHRSdW47CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIG5leHRSdW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UnVuID0gcnVuICsgMTsKKworICAgICAgICBpbnQgcnVuTGltaXQ7CisKKyAgICAgICAgaWYgKG5leHRSdW4gPj0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpCisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W25leHRSdW5dOworICAgICAgICAgICAgaWYgKHJ1bkxpbWl0IDwgMCkKKyAgICAgICAgICAgICAgICBydW5MaW1pdCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInNldEl0ZXJhdG9yOiBwb3M9Iitwb3MrIiwgcnVuU3RhcnQ9IitydW5TdGFydCsiLCBydW5MaW1pdD0iK3J1bkxpbWl0KworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICIsIHJ1bj0iK3J1bisiLCBmUG9zRW5kPSIrZlBvc0VuZCk7CisKKyAgICAgICAgaXRlci5zZXQoc3R5bGUsIHJ1blN0YXJ0LCBydW5MaW1pdCwgcnVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICAgIHsKKyAgICAgICAgZGVsZXRlVGV4dChzdGFydCwgbGltaXQpOworICAgICAgICBpZiAoc3JjU3RhcnQgPT0gc3JjTGltaXQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHByZXBhcmVTdHlsZUluc2VydChzdGFydCk7CisgICAgICAgIGZvciAoaW50IGoyID0gc3JjU3RhcnQ7IGoyIDwgc3JjTGltaXQ7IGoyID0gc3JjVGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KGoyKSkKKyAgICAgICAgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIGF0dHJpYnV0ZU1hcCA9IHNyY1RleHQuY2hhcmFjdGVyU3R5bGVBdChqMik7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgPCAwIHx8ICFmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0uZXF1YWxzKGF0dHJpYnV0ZU1hcCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kKys7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0gPSBqMiAtIHNyY1N0YXJ0ICsgc3RhcnQ7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gYXR0cmlidXRlTWFwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoc3JjTGltaXQgLSBzcmNTdGFydCk7CisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkgJiYgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0uZXF1YWxzKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSkpCisgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0Kys7CisgICAgfQorCisgICAgcHJpdmF0ZSAgc3RhdGljIGZpbmFsIGludCBrTm9SdW4gPSAtNDI7IC8vIGl0ZXJhdG9yIHVzZQorCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBTdHlsZVJ1bkl0ZXJhdG9yIC8qaW1wbGVtZW50cyBNU3R5bGVSdW5JdGVyYXRvciovIHsKKworICAgICAgICBTdHlsZVJ1bkl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldChzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBmU3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIGZMaW1pdCA9IGxpbWl0OworICAgICAgICAgICAgc2V0SXRlcmF0b3IoZlN0YXJ0LCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzVmFsaWQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlICE9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBuZXh0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZSdW5MaW1pdCA8IGZMaW1pdCkgeworICAgICAgICAgICAgICAgIGZDdXJyZW50UnVuKys7CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihmQ3VycmVudFJ1biwgdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0KG51bGwsIDAsIDAsIGtOb1J1bik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwcmV2KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZSdW5TdGFydCA+IGZTdGFydCkgeworICAgICAgICAgICAgICAgIGZDdXJyZW50UnVuLS07CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihmQ3VycmVudFJ1biwgdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0KG51bGwsIDAsIDAsIGtOb1J1bik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXQoaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+PSBmU3RhcnQgJiYgcG9zIDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgc2V0SXRlcmF0b3IocG9zLCB0aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0KG51bGwsIDAsIDAsIGtOb1J1bik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHNldChBdHRyaWJ1dGVNYXAgc3R5bGUsIGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgY3VycmVudFJ1bikKKyAgICAgICAgeworICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgICAgICBmQ3VycmVudFJ1biA9IGN1cnJlbnRSdW47CisgICAgICAgICAgICBmUnVuU3RhcnQgPSBzdGFydCA8IGZTdGFydCA/IGZTdGFydCA6IHN0YXJ0OworICAgICAgICAgICAgZlJ1bkxpbWl0ID0gbGltaXQgPiBmTGltaXQgPyBmTGltaXQgOiBsaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldChzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZTdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZMaW1pdCAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZVN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdCAtIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgc3R5bGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5TdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1bkxpbWl0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5MaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuTGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5MaW1pdCAtIGZSdW5TdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgaW50IGZTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkxpbWl0OworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGU7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1bkxpbWl0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFJ1bjsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZU1vZGlmaWVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlTW9kaWZpZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMTYwMjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZU1vZGlmaWVyLmphdmEKQEAgLTAsMCArMSwxOTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CisKKy8qKgorICogU3R5bGVNb2RpZmllciBpcyB0aGUgYmFzZSBjbGFzcyBmb3Igb3BlcmF0aW9ucyBvbiBBdHRyaWJ1dGVNYXAuICBUbyBpbXBsZW1lbnQKKyAqIGFuIG9wZXJhdGlvbiBvbiBBdHRyaWJ1dGVNYXAsIHN1YmNsYXNzIFN0eWxlTW9kaWZpZXIgYW5kIG92ZXJyaWRlCisgKiA8Y29kZT5tb2RpZnlTdHlsZTwvY29kZT4uICBTdHlsZU1vZGlmaWVycyBhcmUgdXNlZCBieSBNVGV4dC4KKyAqIDxwPgorICogRm9yIGNvbnZlbmllbmNlLCB0aGlzIGNsYXNzIGNvbnRhaW5zIGZhY3RvcnkgbWV0aG9kcyB3aGljaCB3aWxsIGNyZWF0ZSBhCisgKiBTdHlsZU1vZGlmaWVyIGZvcgorICogY2VydGFpbiBjb21tb24gb3BlcmF0aW9uczogYXR0cmlidXRlIHVuaW9uLCBhdHRyaWJ1dGUgcmVtb3ZhbCwgYW5kIEF0dHJpYnV0ZU1hcAorICogcmVwbGFjZW1lbnQuCisgKiBAc2VlIEF0dHJpYnV0ZU1hcAorICogQHNlZSBBdHRyaWJ1dGVTZXQKKyAqIEBzZWUgTVRleHQKKyAqLworLyoKKyAqIHtqYnJ9IFN0eWxlTW9kaWZpZXIgaXMgbm90IHRoZSBiZXN0IG5hbWUgZm9yIHRoaXMgY2xhc3MgLSBzdHlsZXMgYXJlIGltbXV0YWJsZSBhbmQgbmV2ZXIKKyAqIHJlYWxseSBtb2RpZmllZC4KKyAqLworcHVibGljIGNsYXNzIFN0eWxlTW9kaWZpZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0eWxlTW9kaWZpZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0eWxlTW9kaWZpZXIoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSByZXN1bHQgb2YgdGhpcyBTdHlsZU1vZGlmaWVyJ3Mgb3BlcmF0aW9uIG9uIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGp1c3QgcmV0dXJucyB0aGUgZ2l2ZW4gc3R5bGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBBdHRyaWJ1dGVNYXAgdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uIG9uCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBtb2RpZnlTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gc3R5bGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBTdHlsZU1vZGlmaWVyIHdoaWNoIHNpbXBseSByZXR1cm5zIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgSURFTlRJVFkgPSBuZXcgU3R5bGVNb2RpZmllcigpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gaXMKKyAgICAgKiA8Y29kZT5zdHlsZS5hZGRBdHRyaWJ1dGVzKHMpPC9jb2RlPiwKKyAgICAgKiB3aGVyZSA8Y29kZT5zdHlsZTwvY29kZT4gaXMgdGhlIEF0dHJpYnV0ZU1hcCBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5tb2RpZnlTdHlsZTwvY29kZT4uCisgICAgICogQHBhcmFtIHMgdGhlIEF0dHJpYnV0ZU1hcCB0byB1bmlvbiB3aXRoCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZUFkZE1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZUFkZE1vZGlmaWVyKHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0eWxlTW9kaWZpZXIgd2hvc2Ugb3BlcmF0aW9uIGlzCisgICAgICogPGNvZGU+c3R5bGUuYWRkQXR0cmlidXRlKGtleSwgdmFsdWUpPC9jb2RlPiwKKyAgICAgKiB3aGVyZSA8Y29kZT5zdHlsZTwvY29kZT4gaXMgdGhlIEF0dHJpYnV0ZU1hcCBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5tb2RpZnlTdHlsZTwvY29kZT4uCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHRvIGFkZAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZUFkZE1vZGlmaWVyKE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlQWRkTW9kaWZpZXIoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gcmV0dXJucyA8Y29kZT5zPC9jb2RlPiwKKyAgICAgKiBpZ25vcmluZyB0aGUgcGFyYW1ldGVyIHRvIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlTWFwIHdoaWNoIHdpbGwgcmVwbGFjZSBhbnkgb3RoZXIgQXR0cmlidXRlTWFwCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZVJlcGxhY2VNb2RpZmllcihBdHRyaWJ1dGVNYXAgcykgeworCisgICAgICAgIHJldHVybiBuZXcgU3R5bGVSZXBsYWNlTW9kaWZpZXIocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gaXMKKyAgICAgKiA8Y29kZT5zdHlsZS5yZW1vdmVBdHRyaWJ1dGVzKHMpPC9jb2RlPiwKKyAgICAgKiB3aGVyZSA8Y29kZT5zdHlsZTwvY29kZT4gaXMgdGhlIEF0dHJpYnV0ZU1hcCBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5tb2RpZnlTdHlsZTwvY29kZT4uCisgICAgICogQHBhcmFtIHMgdGhlIEF0dHJpYnV0ZVNldCBvZiBhdHRyaWJ1dGVzIHRvIHJlbW92ZQorICAgICAqIEByZXR1cm4gYSBTdHlsZU1vZGlmaWVyIGZvciB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3R5bGVNb2RpZmllciBjcmVhdGVSZW1vdmVNb2RpZmllcihBdHRyaWJ1dGVTZXQgcykgeworCisgICAgICAgIHJldHVybiBuZXcgU3R5bGVSZW1vdmVNb2RpZmllcihzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgQXR0cmlidXRlQWRkTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgICAgICBwcml2YXRlIE9iamVjdCBmVmFsdWU7CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZUFkZE1vZGlmaWVyKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgICAgICBmS2V5ID0ga2V5OworICAgICAgICAgICAgZlZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlKGZLZXksIGZWYWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgdGhpcyB3aXRoIHRoZSBzdHlsZXMgdG8gYWRkLiAgVGhlc2Ugc3R5bGVzIHdpbGwgYWRkIHRvIGFuZCBvdmVycmlkZSBhbnkgYWxyZWFkeQorICAgICAqIHByZXNlbnQgaW4gdGhlIHN0eWxlIHBhc3NlZCB0byBtb2RpZnlTdHlsZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgU3R5bGVBZGRNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKworICAgICAgICBwdWJsaWMgU3R5bGVBZGRNb2RpZmllcihBdHRyaWJ1dGVNYXAgc3R5bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic3R5bGUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0eWxlLmFkZEF0dHJpYnV0ZXMoZlN0eWxlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGlzIHdpdGggdGhlIHN0eWxlcyB0byByZXBsYWNlLiAgQWxsIHN0eWxlIHJ1bnMgd2lsbCBoYXZlIG9ubHkgdGhlc2UKKyAgICAgKiBzdHlsZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFN0eWxlUmVwbGFjZU1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworCisgICAgICAgIHB1YmxpYyBTdHlsZVJlcGxhY2VNb2RpZmllcihBdHRyaWJ1dGVNYXAgc3R5bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic3R5bGUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdHlsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHlsZVJlbW92ZU1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgZlJlbW92ZVNldDsKKworICAgICAgICBwdWJsaWMgU3R5bGVSZW1vdmVNb2RpZmllcihBdHRyaWJ1dGVTZXQgcmVtb3ZlU2V0KSB7CisKKyAgICAgICAgICAgIGlmIChyZW1vdmVTZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInNldCBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmUmVtb3ZlU2V0ID0gcmVtb3ZlU2V0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBtb2RpZnlTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICAgICAgcmV0dXJuIHN0eWxlLnJlbW92ZUF0dHJpYnV0ZXMoZlJlbW92ZVNldCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlZFRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkZTZmNTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlZFRleHQuamF2YQpAQCAtMCwwICsxLDY4NCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRleHQsIGEgbW9kaWZ5YWJsZSwgc3R5bGVkIHRleHQKKyAqIHN0b3JhZ2UgbW9kZWwuICBBZGRpdGlvbmFsbHksIGl0IHN1cHBvcnRzIHBlcnNpc3RhbmNlIHRocm91Z2ggdGhlCisgKiBFeHRlcm5hbGl6YWJsZSBpbnRlcmZhY2UuCisgKiBAc2VlIE1UZXh0CisgKi8KKworLyoKKyAgICAxMC8yOC85NiB7amZ9IC0gc3BsaXQgdGhlIGNoYXJhY3RlciBhbmQgcGFyYWdyYXBoIHN0eWxlIGFjY2VzcyBhbmQgc2V0dGVyIGZ1bmN0aW9uIGFyb3VuZC4uLgorICAgICAgICAgICAganVzdCB0byBrZWVwIHRoaW5ncyBpbnRlcmVzdGluZy4KKyAgICA4LzcvOTYge2pmfSAtIG1vdmVkIHBhcmFncmFwaCBicmVhayBpbXBsZW1lbnRhdGlvbiBmcm9tIEFic3RyYWN0VGV4dCBpbnRvIFN0eWxlIHRleHQuCisgICAgICAgICAgICAtIGFkZGVkIGNvdW50U3R5bGVzLCBnZXRTdHlsZXMsIGFuZCBSZXBsYWNlU3R5bGVzIGltcGxlbWVudGF0aW9uLgorCisgICAgOC8xNC85NiBzZmIgIGVsaW1pbmF0ZWQgU3R5bGVTaGVldEl0ZXJhdG9yCisKKyAgICA4LzI5Lzk2IHtqYnJ9IGNoYW5nZWQgaXRlci1iYXNlZCByZXBsYWNlIG1ldGhvZCAtIGRvZXNuJ3QgY2FsbCBhdCgpIHVubGVzcyBpdCBpcyBzYWZlIHRvIGRvIHNvCisgICAgICAgICAgICBBbHNvLCBhZGRlZCBjaGVja1N0YXJ0QW5kTGltaXQgZm9yIGRlYnVnZ2luZworCisgICAgNy8zMS85OCBTd2l0Y2hlZCBmcm9tIFN0eWxlIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCitwdWJsaWMgZmluYWwgY2xhc3MgU3R5bGVkVGV4dCBleHRlbmRzIE1UZXh0IGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgLyogdW5pY29kZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNQ2hhckJ1ZmZlciAgICAgICAgIGZDaGFyQnVmZmVyOworICAgIC8qIGNoYXJhY3RlciBzdHlsZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNU3R5bGVCdWZmZXIgICAgICAgIGZTdHlsZUJ1ZmZlcjsKKyAgICAvKiBwYXJhZ3JhcGggc3R5bGUgc3RvcmFnZSAqLworICAgIHByaXZhdGUgTVBhcmFncmFwaEJ1ZmZlciAgICBmUGFyYWdyYXBoQnVmZmVyOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZUaW1lU3RhbXAgPSAwOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludFtdIGZEYW1hZ2VkUmFuZ2UgPSB7IEludGVnZXIuTUFYX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBGb3JjZU1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisKKyAgICAgICAgdm9pZCBzZXRTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gS2VlcCB0aGlzIGFyb3VuZCBmb3J1c2UgaW4gcmVwbGFjZUNoYXJTdHlsZXNXaXRoLiAgT0sgc2luY2UKKyAgICAvLyB0aGlzIGNsYXNzIGlzbid0IHRocmVhZHNhZmUgYW55d2F5LgorICAgIHByaXZhdGUgdHJhbnNpZW50IEZvcmNlTW9kaWZpZXIgZm9yY2VNb2RpZmllciA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENPTlNUUlVDVE9SUworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGVtcHR5IHRleHQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KCkKKyAgICB7CisgICAgICAgIHRoaXMoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGVtcHR5IHRleHQgb2JqZWN0IHJlYWR5IHRvIGhvbGQgYXQgbGVhc3QgY2FwYWNpdHkgY2hhcnMuCisgICAgICogQHBhcmFtIGNhcGFjaXR5IHRoZSBtaW5pbXVtIGNhcGFjaXR5IG9mIHRoZSBpbnRlcm5hbCB0ZXh0IGJ1ZmZlcgorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KGludCBjYXBhY2l0eSkKKyAgICB7CisgICAgICAgIGZDaGFyQnVmZmVyICAgICAgICAgPSBjYXBhY2l0eT4wPyBuZXcgQ2hhckJ1ZmZlcihjYXBhY2l0eSkgOiBuZXcgQ2hhckJ1ZmZlcigpOworICAgICAgICBmU3R5bGVCdWZmZXIgICAgICAgID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciAgICA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IHdpdGggdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZywKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gc3R5bGUuCisgICAgICogQHBhcmFtIHN0cmluZyB0aGUgaW5pdGlhbCBjb250ZW50cworICAgICAqIEBwYXJhbSBpbml0aWFsU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBpbml0aWFsIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3R5bGVkVGV4dChTdHJpbmcgc3RyaW5nLCBBdHRyaWJ1dGVNYXAgaW5pdGlhbFN0eWxlKQorICAgIHsKKyAgICAgICAgZkNoYXJCdWZmZXIgPSBuZXcgQ2hhckJ1ZmZlcihzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBmQ2hhckJ1ZmZlci5yZXBsYWNlKDAsIDAsIHN0cmluZywgMCwgc3RyaW5nLmxlbmd0aCgpKTsKKworICAgICAgICBmU3R5bGVCdWZmZXIgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgaW5pdGlhbFN0eWxlKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IGZyb20gdGhlIGdpdmVuIHNvdXJjZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IHRvIGNvcHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3R5bGVkVGV4dChNQ29uc3RUZXh0IHNvdXJjZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGVuZChzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB0ZXh0IG9iamVjdCBmcm9tIGEgc3VicmFuZ2Ugb2YgdGhlIGdpdmVuIHNvdXJjZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBzcmNTdGFydCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBjb3B5CisgICAgICogQHBhcmFtIHNyY0xpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gY29weQorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KE1Db25zdFRleHQgc291cmNlLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHJlcGxhY2UoMCwgMCwgc291cmNlLCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZDaGFyQnVmZmVyKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZTdHlsZUJ1ZmZlcik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUGFyYWdyYXBoQnVmZmVyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IHZlcnNpb24gPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGlmICh2ZXJzaW9uICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVkVGV4dDogIiArIHZlcnNpb24pOworICAgICAgICB9CisgICAgICAgIGZDaGFyQnVmZmVyID0gKE1DaGFyQnVmZmVyKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IChNU3R5bGVCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IChNUGFyYWdyYXBoQnVmZmVyKSBpbi5yZWFkT2JqZWN0KCk7CisKKyAgICAgICAgcmVzZXREYW1hZ2VkUmFuZ2UoKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1Db25zdFRleHQgSU5URVJGQUNFUworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIGFjY2VzcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgY2hhciBhdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyQnVmZmVyLmF0KHBvcyk7CisgICAgfQorCisvKioKKyogQ29weSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KQorKiBpbnRvIHRoZSBhcnJheSA8Y29kZT5kc3Q8L2NvZGU+LCBiZWdpbm5pbmcgYXQgPGNvZGU+ZHN0U3RhcnQ8L2NvZGU+LgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gZHN0IGFycmF5IGluIHdoaWNoIHRvIGNvcHkgY2hhcmFjdGVycy4gIFRoZSBsZW5ndGggb2YgPGNvZGU+ZHN0PC9jb2RlPiBtdXN0IGJlIGF0IGxlYXN0CisqICg8Y29kZT5kc3RTdGFydCArIGxpbWl0IC0gc3RhcnQ8L2NvZGU+KS4KKyovCisgICAgcHVibGljIHZvaWQgZXh0cmFjdENoYXJzKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpCisgICAgeworICAgICAgICBmQ2hhckJ1ZmZlci5hdChzdGFydCwgbGltaXQsIGRzdCwgZHN0U3RhcnQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHRleHQgbW9kZWwgY3JlYXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBDcmVhdGUgYW4gTUNvbnN0VGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGV4dHJhY3QoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXR1cm4gZXh0cmFjdFdyaXRhYmxlKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisvKioKKyogQ3JlYXRlIGFuIE1UZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UKKyogWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcmV0dXJuIGFuIE1Db25zdFRleHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIE1UZXh0IGV4dHJhY3RXcml0YWJsZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZXh0LnJlcGxhY2UoMCwgMCwgdGhpcywgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgdGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICByZXR1cm4gdGV4dDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2l6ZS9jYXBhY2l0eQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgTUNvbnN0VGV4dCBvYmplY3QuICBUaGUgbGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4KKyogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdAorKi8KKyAgICBwdWJsaWMgaW50IGxlbmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIubGVuZ3RoKCk7CisgICAgfQorCisvKioKKyogQ3JlYXRlIGEgPGNvZGU+Q2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRvcidzIHJhbmdlCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIGl0ZXJhdG9yJ3MgcmFuZ2UKKyogQHJldHVybiBhIHZhbGlkIDxjb2RlPkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIHRoZSBzcGVjaWZpZWQgcmFuZ2UKKyogQHNlZSBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IKKyovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyQnVmZmVyLmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNoYXJhY3RlciBzdHlsZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGludCBjaGFyYWN0ZXJTdHlsZVN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBjaGVja1Bvcyhwb3MsIExFU1NfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlN0eWxlQnVmZmVyLnN0eWxlU3RhcnQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IGNoYXJhY3RlclN0eWxlTGltaXQoaW50IHBvcykgeworCisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlN0eWxlQnVmZmVyLnN0eWxlTGltaXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0eWxlIGFwcGxpZWQgdG8gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgY2hhcmFjdGVyU3R5bGVBdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVBdChwb3MpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJhZ3JhcGggYm91bmRhcmllcyBhbmQgc3R5bGVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoU3RhcnQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmUGFyYWdyYXBoQnVmZmVyLnBhcmFncmFwaExpbWl0KHBvcyk7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgYXBwbGllZCB0byB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW4gZWZmZWN0IGF0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoU3R5bGVBdChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgY3VycmVudCB0aW1lIHN0YW1wLiAgVGhlIHRpbWUgc3RhbXAgaXMKKyogaW5jcmVtZW50ZWQgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBNQ29uc3RUZXh0IGNoYW5nZXMuCisqIEByZXR1cm4gdGhlIGN1cnJlbnQgcGFyYWdyYXBoIHN0eWxlIHRpbWUgc3RhbXAKKyovCisgICAgcHVibGljIGludCBnZXRUaW1lU3RhbXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUaW1lU3RhbXA7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBNVGV4dCBJTlRFUkZBQ0VTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIG1vZGZpY2F0aW9uIGZ1bmN0aW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVEYW1hZ2VkUmFuZ2UoaW50IGRlbGV0ZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlbGV0ZUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc2VydExlbmd0aCkgeworCisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihmRGFtYWdlZFJhbmdlWzBdLCBkZWxldGVTdGFydCk7CisKKyAgICAgICAgaWYgKGZEYW1hZ2VkUmFuZ2VbMV0gPj0gZGVsZXRlTGltaXQpIHsKKyAgICAgICAgICAgIGludCBsZW5ndGhDaGFuZ2UgPSBpbnNlcnRMZW5ndGggLSAoZGVsZXRlTGltaXQtZGVsZXRlU3RhcnQpOworICAgICAgICAgICAgZkRhbWFnZWRSYW5nZVsxXSArPSBsZW5ndGhDaGFuZ2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmRGFtYWdlZFJhbmdlWzFdID0gZGVsZXRlU3RhcnQgKyBpbnNlcnRMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IGluIHRoZSByYW5nZSBbPGNvZGU+c3JjU3RhcnQ8L2NvZGU+LCA8Y29kZT5zcmNMaW1pdDwvY29kZT4pLiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHRleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBlbmQKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgICB7CisgICAgICAgIGlmICh0ZXh0ID09IHRoaXMpIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzcmNTdGFydCA9PSBzcmNMaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgdXBkYXRlRGFtYWdlZFJhbmdlKHN0YXJ0LCBsaW1pdCwgc3JjTGltaXQtc3JjU3RhcnQpOworCisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZXh0LCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgICAgICBmU3R5bGVCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+LiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHRleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIDAsIHRleHQubGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBpbiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICBOZXcgY2hhcmFjdGVycyB0YWtlIG9uIHRoZSBzdHlsZQorKiA8Y29kZT5jaGFyc1N0eWxlPC9jb2RlPi4KKyogPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXJzIHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyB3aWxsIGJlIG9idGFpbmVkCisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBlbmQKKyogQHBhcmFtIGNoYXJzU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBuZXcgY2hhcmFjdGVycworKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBBdHRyaWJ1dGVNYXAgY2hhcnNTdHlsZSkKKyAgICB7CisgICAgICAgIGNoZWNrU3RhcnRMaW1pdChzdGFydCwgbGltaXQpOworCisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzcmNTdGFydCA9PSBzcmNMaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlRGFtYWdlZFJhbmdlKHN0YXJ0LCBsaW1pdCwgc3JjTGltaXQtc3JjU3RhcnQpOworCisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNDaGFycywgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKworICAgICAgICByZXBsYWNlQ2hhclN0eWxlc1dpdGgoc3RhcnQsIGxpbWl0LCBzdGFydCArIChzcmNMaW1pdC1zcmNTdGFydCksIGNoYXJzU3R5bGUpOworCisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmluc2VydFRleHQoc3RhcnQsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGltaXQpOworCisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVwbGFjZUNoYXJTdHlsZXNXaXRoKGludCBzdGFydCwgaW50IG9sZExpbWl0LCBpbnQgbmV3TGltaXQsIEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgIGlmIChzdGFydCA8IG9sZExpbWl0KSB7CisgICAgICAgICAgICBmU3R5bGVCdWZmZXIuZGVsZXRlVGV4dChzdGFydCwgb2xkTGltaXQpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8IG5ld0xpbWl0KSB7CisgICAgICAgICAgICBpZiAoZm9yY2VNb2RpZmllciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yY2VNb2RpZmllciA9IG5ldyBGb3JjZU1vZGlmaWVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3JjZU1vZGlmaWVyLnNldFN0eWxlKHN0eWxlKTsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5pbnNlcnRUZXh0KHN0YXJ0LCBuZXdMaW1pdCk7CisgICAgICAgICAgICBmU3R5bGVCdWZmZXIubW9kaWZ5U3R5bGVzKHN0YXJ0LCBuZXdMaW1pdCwgZm9yY2VNb2RpZmllciwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlciA8Y29kZT5zcmNDaGFyPC9jb2RlPi4KKyogVGhlIG5ldyBjaGFyYWN0ZXIgdGFrZXMgb24gdGhlIHN0eWxlIDxjb2RlPmNoYXJTdHlsZTwvY29kZT4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXIgdGhlIG5ldyBjaGFyYWN0ZXIKKyogQHBhcmFtIGNoYXJTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXIKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyLCBBdHRyaWJ1dGVNYXAgY2hhclN0eWxlKQorICAgIHsKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgdXBkYXRlRGFtYWdlZFJhbmdlKHN0YXJ0LCBsaW1pdCwgMSk7CisKKyAgICAgICAgZkNoYXJCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHNyY0NoYXIpOworCisgICAgICAgIHJlcGxhY2VDaGFyU3R5bGVzV2l0aChzdGFydCwgbGltaXQsIHN0YXJ0ICsgMSwgY2hhclN0eWxlKTsKKworICAgICAgICBpZiAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5kZWxldGVUZXh0KHN0YXJ0LCBsaW1pdCwgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIH0KKworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmluc2VydFRleHQoc3RhcnQsIHNyY0NoYXIpOworCisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBlbnRpcmUgY29udGVudHMgb2YgdGhpcyBNVGV4dCAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIHdpdGgKKyogdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+LgorKiBAcGFyYW0gc3JjVGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlQWxsKE1Db25zdFRleHQgc3JjVGV4dCkKKyAgICB7CisgICAgICAgIHJlcGxhY2UoMCwgbGVuZ3RoKCksIHNyY1RleHQsIDAsIHNyY1RleHQubGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIEluc2VydCB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4gKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSBpbnRvIHRoaXMKKyogTVRleHQgYXQgdGhlIHBvc2l0aW9uIHNwZWNpZmllZCBieSA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IHdoZXJlIHRoZSBuZXcgdGV4dCBpcyB0byBiZSBpbnNlcnRlZC4KKyogQHBhcmFtIHNyY1RleHQgVGhlIHRleHQgdG8gaW5zZXJ0LgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoaW50IHBvcywgTUNvbnN0VGV4dCBzcmNUZXh0KQorICAgIHsKKyAgICAgICAgcmVwbGFjZShwb3MsIHBvcywgc3JjVGV4dCwgMCwgc3JjVGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogQXBwZW5kIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIHRvIHRoZQorKiBlbmQgb2YgdGhpcyBNVGV4dC4KKyogQHBhcmFtIHNyY1RleHQgVGhlIHRleHQgdG8gYXBwZW5kLgorKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQoTUNvbnN0VGV4dCBzcmNUZXh0KQorICAgIHsKKyAgICAgICAgcmVwbGFjZShsZW5ndGgoKSwgbGVuZ3RoKCksIHNyY1RleHQsIDAsIHNyY1RleHQubGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIERlbGV0ZSB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGNoYXJhY3RlcnMgKGFuZCBzdHlsZXMpLgorKiBAcGFyYW0gc3RhcnQgT2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gZGVsZXRlLgorKiBAcGFyYW0gbGltaXQgT2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHJhbmdlIHRvIGRlbGV0ZS4KKyovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIChjaGFyW10pbnVsbCwgMCwgMCwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgIH0KKworLyoqCisqIERlbGV0ZSBhbGwgY2hhcmFjdGVycyBhbmQgc3R5bGVzLiAgQWx3YXlzIGluY3JlbWVudHMgdGltZSBzdGFtcC4KKyovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkKKyAgICB7CisgICAgICAgIC8vIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggcmVwbGFjZSgpLCBqdXN0IHJlaW5pdGlhbGl6ZSB0aGUgU3R5bGVkVGV4dCwKKyAgICAgICAgLy8gbGV0dGluZyB0aGUgb2xkIGRhdGEgc3RydWN0dXJlcyBmYWxsIG9uIHRoZSBmbG9vcgorICAgICAgICBmQ2hhckJ1ZmZlciA9IG5ldyBDaGFyQnVmZmVyKCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IG5ldyBTdHlsZUJ1ZmZlcih0aGlzLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIgPSBuZXcgUGFyYWdyYXBoQnVmZmVyKGZDaGFyQnVmZmVyKTsKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgICAgICBmRGFtYWdlZFJhbmdlWzBdID0gZkRhbWFnZWRSYW5nZVsxXSA9IDA7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHN0b3JhZ2UgbWFuYWdlbWVudAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhlIE1UZXh0IG9iamVjdC4KKyovCisgICAgcHVibGljIHZvaWQgY29tcHJlc3MoKSB7CisKKyAgICAgICAgZkNoYXJCdWZmZXIuY29tcHJlc3MoKTsKKyAgICAgICAgZlN0eWxlQnVmZmVyLmNvbXByZXNzKCk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuY29tcHJlc3MoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc3R5bGUgbW9kaWZpY2F0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvKioKKyogU2V0IHRoZSBzdHlsZSBvZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgTVRleHQgb2JqZWN0IHRvCisqIDxjb2RlPkF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQPC9jb2RlPi4KKyovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlQ2hhcmFjdGVyU3R5bGVzKCkgeworCisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IG5ldyBTdHlsZUJ1ZmZlcih0aGlzLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgZkRhbWFnZWRSYW5nZVswXSA9IDA7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMV0gPSBsZW5ndGgoKTsKKyAgICB9CisKKy8qKgorKiBJbnZva2UgdGhlIGdpdmVuIG1vZGlmaWVyIG9uIGFsbCBjaGFyYWN0ZXIgc3R5bGVzIGZyb20gc3RhcnQgdG8gbGltaXQuCisqIEBwYXJhbSBtb2RpZmllciB0aGUgbW9kaWZpZXIgdG8gYXBwbHkgdG8gdGhlIHJhbmdlLgorKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlcyhpbnQgc3RhcnQsIGludCBsaW1pdCwgU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworCisgICAgICAgIGNoZWNrU3RhcnRMaW1pdChzdGFydCwgbGltaXQpOworICAgICAgICBib29sZWFuIG1vZGlmaWVkID0gZlN0eWxlQnVmZmVyLm1vZGlmeVN0eWxlcyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBJbnZva2UgdGhlIGdpdmVuIG1vZGlmaWVyIG9uIGFsbCBwYXJhZ3JhcGggc3R5bGVzIGluIHBhcmFncmFwaHMKKyogY29udGFpbmluZyBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KS4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmUGFyYWdyYXBoQnVmZmVyLm1vZGlmeVBhcmFncmFwaFN0eWxlcyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXNldCB0aGUgZGFtYWdlZCByYW5nZSB0byBhbiBlbXB0eSBpbnRlcnZhbCwgYW5kIGJlZ2luIGFjY3VtdWxhdGluZyB0aGUgZGFtYWdlZAorKiByYW5nZS4gIFRoZSBkYW1hZ2VkIHJhbmdlIGluY2x1ZGVzIGV2ZXJ5IGluZGV4IHdoZXJlIGEgY2hhcmFjdGVyLCBjaGFyYWN0ZXIgc3R5bGUsCisqIG9yIHBhcmFncmFwaCBzdHlsZSBoYXMgY2hhbmdlZC4KKyogQHNlZSAjZGFtYWdlZFJhbmdlU3RhcnQKKyogQHNlZSAjZGFtYWdlZFJhbmdlTGltaXQKKyovCisgICAgcHVibGljIHZvaWQgcmVzZXREYW1hZ2VkUmFuZ2UoKSB7CisKKyAgICAgICAgZkRhbWFnZWRSYW5nZVswXSA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBmRGFtYWdlZFJhbmdlWzFdID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZS4KKyogSWYgdGhlIHN0YXJ0IGlzCisqIDxjb2RlPkludGVnZXIuTUFYX1ZBTFVFPC9jb2RlPiBhbmQgdGhlIGxpbWl0IGlzCisqIDxjb2RlPkludGVnZXIuTUlOX1ZBTFVFPC9jb2RlPiwgdGhlbiB0aGUgZGFtYWdlZCByYW5nZQorKiBpcyBlbXB0eS4KKyogQHJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UKKyogQHNlZSAjZGFtYWdlZFJhbmdlTGltaXQKKyogQHNlZSAjcmVzZXREYW1hZ2VkUmFuZ2UKKyovCisgICAgcHVibGljIGludCBkYW1hZ2VkUmFuZ2VTdGFydCgpIHsKKworICAgICAgICByZXR1cm4gZkRhbWFnZWRSYW5nZVswXTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLgorKiBJZiB0aGUgc3RhcnQgaXMKKyogPGNvZGU+SW50ZWdlci5NQVhfVkFMVUU8L2NvZGU+IGFuZCB0aGUgbGltaXQgaXMKKyogPGNvZGU+SW50ZWdlci5NSU5fVkFMVUU8L2NvZGU+LCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlICNyZXNldERhbWFnZWRSYW5nZQorKi8KKyAgICBwdWJsaWMgaW50IGRhbWFnZWRSYW5nZUxpbWl0KCkgeworCisgICAgICAgIHJldHVybiBmRGFtYWdlZFJhbmdlWzFdOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IiI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgcmVzdWx0ICs9IGF0KGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJTVBMRU1FTlRBVElPTgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKiBjaGVjayBhIHJhbmdlIHRvIHNlZSBpZiBpdCBpcyB3ZWxsIGZvcm1lZCBhbmQgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhlIHRleHQgKi8KKyAgICBwcml2YXRlIHZvaWQgY2hlY2tTdGFydExpbWl0KGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCBpcyBsZXNzIHRoYW4gbGltaXQuIHN0YXJ0OiIrc3RhcnQrIjsgbGltaXQ6IitsaW1pdCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTdGFydCBpcyBncmVhdGVyIHRoYW4gbGltaXQuIHN0YXJ0OiIrc3RhcnQrIjsgbGltaXQ6IitsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnQgPCAwKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQgaXMgbmVnYXRpdmUuIHN0YXJ0OiIrc3RhcnQpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiU3RhcnQgaXMgbmVnYXRpdmUuIHN0YXJ0OiIrc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbWl0ID4gbGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJMaW1pdCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLiAgbGltaXQ6IitsaW1pdCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJMaW1pdCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLiAgbGltaXQ6IitsaW1pdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIExFU1NfVEhBTl9MRU5HVEggPSBmYWxzZTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIID0gdHJ1ZTsKKworICAgIHByaXZhdGUgdm9pZCBjaGVja1BvcyhpbnQgcG9zLCBib29sZWFuIGVuZEFsbG93ZWQpIHsKKworICAgICAgICBpbnQgbGFzdFZhbGlkUG9zID0gbGVuZ3RoKCk7CisgICAgICAgIGlmIChlbmRBbGxvd2VkID09IExFU1NfVEhBTl9MRU5HVEgpIHsKKyAgICAgICAgICAgIC0tbGFzdFZhbGlkUG9zOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA8IDAgfHwgcG9zID4gbGFzdFZhbGlkUG9zKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQb3NpdGlvbiBpcyBvdXQgb2YgcmFuZ2UuIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1RhYlN0b3AuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGFiU3RvcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2NmFlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1RhYlN0b3AuamF2YQpAQCAtMCwwICsxLDE4MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKy8qKgorICogVGFiU3RvcCByZXByZXNlbnRzIGEgcG9zaXRpb24gb24gYSB0YWIgcnVsZXIuICBFYWNoIHRhYiBzdG9wIGhhcyBhCisgKiBwb3NpdGlvbiwgZ2l2aW5nIGl0cyBsb2NhdGlvbiBvbiB0aGUgcnVsZXIsIGFuZCBvbmUgb2Ygc2V2ZXJhbAorICogdHlwZXMuICBUaGUgdHlwZSBkZXRlcm1pbmVzIGhvdyBhIHNlZ21lbnQgY29udHJvbGVkIGJ5IHRoaXMgVGFiU3RvcAorICogaXMgcG9zaXRpb25lZCBvbiBhIGxpbmU6CisgKiA8dWw+CisgKiA8bGk+PGNvZGU+a0xlYWRpbmc8L2NvZGU+IC0gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgc2VnbWVudCBpcyBhbGlnbmVkIHRvCisgKiAgICAgdGhlIFRhYlN0b3AncyBwb3NpdGlvbjwvbGk+CisgKiA8bGk+PGNvZGU+a0NlbnRlcjwvY29kZT4gLSB0aGUgc2VnbWVudCBpcyBjZW50ZXJlZCBvbiB0aGlzIFRhYlN0b3AncworICogICAgIHBvc2l0aW9uPC9saT4KKyAqIDxsaT48Y29kZT5rVHJhaWxpbmc8L2NvZGU+IC0gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHNlZ21lbnQgaXMgYWxpZ25lZCB0bworICogICAgIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtEZWNpbWFsPC9jb2RlPiAtIHRoZSBmaXJzdCBkZWNpbWFsIGluIHRoZSBzZWdtZW50IGlzIGFsaWduZWQgdG8KKyAqICAgICB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uPC9saT4KKyAqIDxsaT48Y29kZT5rQXV0bzwvY29kZT4gLSBzZW1hbnRpY2FsbHkgdGhlIHNhbWUgYXMgPGNvZGU+a0xlYWRpbmc8L2NvZGU+LgorICogICAgIFVzZWQgYnkgdGFiIHJ1bGVycyB0byBpbmRpY2F0ZSB0aGF0IGFsbCBzdWJzZXF1ZW50IHRhYiBzdG9wcworICogICAgIHdpbGwgYmUgYXQgYXV0b3NwYWNlZCBpbnRlcnZhbHMuPC9saT4KKyAqIDwvdWw+CisgKiBAc2VlIE1UYWJSdWxlcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGFiU3RvcCBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyMjM1NjkzNDsKKworICAgIHByaXZhdGUgYnl0ZSBmVHlwZTsgICAgLy8gbGVmdCwgY2VudGVyLCByaWdodCwgZGVjaW1hbAorICAgIHByaXZhdGUgaW50IGZQb3NpdGlvbjsgLy8gdGFiIHN0b3AgcG9zaXRpb24gZnJvbSBsaW5lIG9yaWdpbi4KKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBsZWFkaW5nIGVkZ2UKKyAgICAgKiB0byB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBrTGVhZGluZyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBIFRhYlN0b3Agd2l0aCB0aGlzIHR5cGUgYWxpZ25zIGl0cyBzZWdtZW50J3MgY2VudGVyCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0NlbnRlciA9IDE7CisKKyAgICAvKioKKyAgICAgKiBBIFRhYlN0b3Agd2l0aCB0aGlzIHR5cGUgYWxpZ25zIGl0cyBzZWdtZW50J3MgdHJhaWxpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtUcmFpbGluZyA9IDI7CisKKyAgICAvKioKKyAgICAgKiBBIFRhYlN0b3Agd2l0aCB0aGlzIHR5cGUgYWxpZ25zIGl0cyBzZWdtZW50J3MgZmlyc3QgZGVjaW1hbAorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtEZWNpbWFsID0gMzsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBsZWFkaW5nIGVkZ2UKKyAgICAgKiB0byB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uLiAgQWZ0ZXIgYSBUYWJTdG9wIG9mIHRoaXMgdHlwZSwKKyAgICAgKiBhbGwgdGFicyBhcmUgYXQgYXV0b3NwYWNlIGludGVydmFscy4gIFVzdWFsbHksIGNsaWVudHMgd2lsbAorICAgICAqIG5vdCBjb25zdHJ1Y3QgVGFiU3RvcHMgd2l0aCB0aGlzIHR5cGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtBdXRvID0gNDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRhYlN0b3Agd2l0aCBwb3NpdGlvbiAwIGFuZCB0eXBlIDxjb2RlPmtMZWFkaW5nPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcCgpIHsKKworICAgICAgIHRoaXMoMCwga0xlYWRpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRhYlN0b3Agd2l0aCB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHR5cGUuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24KKyAgICAgKiBAcGFyYW0gdHlwZSB0aGUgVGFiU3RvcCdzIHR5cGUuICBNdXN0IGJlIG9uZSBvZiBjb25zdGFudHMKKyAgICAgKiAgICAgIGluIHRoaXMgY2xhc3MuCisgICAgICovCisgICAgcHVibGljIFRhYlN0b3AoaW50IHBvc2l0aW9uLCBieXRlIHR5cGUpIHsKKworICAgICAgICBpZiAodHlwZSA8IGtMZWFkaW5nIHx8IHR5cGUgPiBrQXV0bykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCB0YWIgdHlwZSIpOworICAgICAgICB9CisKKyAgICAgICAgZlBvc2l0aW9uID0gcG9zaXRpb247CisgICAgICAgIGZUeXBlID0gdHlwZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IHZlcnNpb24gPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGlmICh2ZXJzaW9uICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgVGFiU3RvcC4iKTsKKyAgICAgICAgfQorICAgICAgICBmUG9zaXRpb24gPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZUeXBlID0gaW4ucmVhZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZUludChmUG9zaXRpb24pOworICAgICAgICBvdXQud3JpdGVCeXRlKGZUeXBlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuICBUYWJTdG9wcyBhcmUgZXF1YWwgaWYKKyAgICAgKiB0aGVpciBwb3NpdGlvbiBhbmQgdHlwZSBhcmUgdGhlIHNhbWUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpCisgICAgeworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIFRhYlN0b3AgcmhzVGFiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmhzVGFiID0gKFRhYlN0b3ApIHJoczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZUeXBlID09IHJoc1RhYi5mVHlwZSAmJiBmUG9zaXRpb24gPT0gcmhzVGFiLmZQb3NpdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2ggY29kZSBmb3IgdGhpcyBUYWJTdG9wLiAgVGhlIGhhc2ggY29kZSBpcworICAgICAqIDxjb2RlPnBvc2l0aW9uIDw8IHR5cGU8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZQb3NpdGlvbiA8PCBmVHlwZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGNoYXIgdHlwZUNoYXI7CisgICAgICAgIHN3aXRjaCAoZlR5cGUpIHsKKyAgICAgICAgICAgIGNhc2Uga0xlYWRpbmc6IHR5cGVDaGFyID0gJ0wnOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga0NlbnRlcjogdHlwZUNoYXIgPSAnQyc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrVHJhaWxpbmc6IHR5cGVDaGFyID0gJ1InOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga0RlY2ltYWw6IHR5cGVDaGFyID0gJ0QnOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga0F1dG86IHR5cGVDaGFyID0gJ0EnOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IHR5cGVDaGFyID0gJz8nOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIlRhYlN0b3BbIiArIEludGVnZXIudG9TdHJpbmcoZlBvc2l0aW9uKSArIHR5cGVDaGFyICsgJ10nOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHlwZSBvZiB0aGlzIFRhYlN0b3AuICBXaWxsIGJlIG9uZSBvZiB0aGUgY29uc3RhbnRzCisgICAgICogaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZSBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gZlR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGlzIFRhYlN0b3AuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRQb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZQb3NpdGlvbjsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGVzdEZhc3RJbnRCaW5hcnlTZWFyY2guamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGVzdEZhc3RJbnRCaW5hcnlTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMTVlODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworZmluYWwgY2xhc3MgVGVzdEZhc3RJbnRCaW5hcnlTZWFyY2ggeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBuZXcgVGVzdEZhc3RJbnRCaW5hcnlTZWFyY2goKS50ZXN0KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQ/ICJQQVNTRUQiIDogIkZBSUxFRCIpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRlc3QoKSB7CisKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworICAgICAgICBpbnRbXSB0ZXN0ID0gey01LCAtMywgMCwgMiwgNX07CisgICAgICAgIEZhc3RJbnRCaW5hcnlTZWFyY2ggZmlicyA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKHRlc3QpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgaW50IGJlZm9yZUFueSA9IGZpYnMuZmluZEluZGV4KC02KTsKKyAgICAgICAgICAgIGlmIChiZWZvcmVBbnkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGF0RW5kID0gZmlicy5maW5kSW5kZXgoNSk7CisgICAgICAgICAgICBpZiAoYXRFbmQgIT0gdGVzdC5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYWZ0ZXJBbnkgPSBmaWJzLmZpbmRJbmRleCg2KTsKKyAgICAgICAgICAgIGlmIChhZnRlckFueSAhPSB0ZXN0Lmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBleGFjdGx5ID0gZmlicy5maW5kSW5kZXgoLTMpOworICAgICAgICAgICAgaWYgKGV4YWN0bHkgIT0gMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmaWJzID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2gobmV3IGludFtdIHsyMCwgNDB9KTsKKyAgICAgICAgICAgIGZpYnMuc2V0RGF0YSh0ZXN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9WYWxpZGF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1ZhbGlkYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MDFiMDRhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9WYWxpZGF0aW9uLmphdmEKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCisvKioKKyAqIEl0ZXJhdG9ycyB1c2UgdGhpcyBjbGFzcyB0byBrZWVwIGZyb20gZ2V0dGluZyBvdXQgb2Ygc3luYyB3aXRoCisgKiB0aGVpciB1bmRlcmx5aW5nIGRhdGEuICBXaGVuIGNyZWF0ZWQsIHRoZSBpdGVyYXRvciBnZXRzIGEKKyAqIFZhbGlkYXRpb24gaW5zdGFuY2UuICBJZiB0aGUgdW5kZXJseWluZyBkYXRhIGNoYW5nZXMsIHRoZSBWYWxpZGF0aW9uCisgKiBiZWNvbWVzIGludmFsaWQuICBVc3VhbGx5IGl0ZXJhdG9ycyB3aWxsIHRocm93IGV4Y2VwdGlvbnMgaWYgYWNjZXNzZWQKKyAqIGFmdGVyIGJlY29taW5nIGludmFsaWQuCisgKi8KK2ZpbmFsIGNsYXNzIFZhbGlkYXRpb24geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGJvb2xlYW4gZklzVmFsaWQgPSB0cnVlOworCisgICAgYm9vbGVhbiBpc1ZhbGlkKCkgeworCisgICAgICAgIHJldHVybiBmSXNWYWxpZDsKKyAgICB9CisKKyAgICB2b2lkIGludmFsaWRhdGUoKSB7CisKKyAgICAgICAgZklzVmFsaWQgPSBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY1OWJlZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IS0tIAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgc3R5bGVkIHRleHQgc3RvcmFnZSBhbmQgcmVsYXRlZCBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0NvZGVFZGl0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjk1ZGNhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0NvZGVFZGl0LmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uQ29kZUVkaXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkRvY3VtZW50V2luZG93OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5TeW50YXhDb2xvcmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5UZXh0RG9jdW1lbnQ7CisKK3B1YmxpYyBjbGFzcyBTd2luZ0NvZGVFZGl0IGV4dGVuZHMgQ29kZUVkaXQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAKKyAgICAgICAgbmV3IFN3aW5nQ29kZUVkaXQoYXJncywgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTd2luZ0NvZGVFZGl0KFN0cmluZ1tdIGFyZ3MsIGludCBzdGFydCkgeworICAgIAorICAgICAgICBzdXBlcihhcmdzLCBzdGFydCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN3aW5nRG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bnRheENvbG9yZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVzKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0RvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY1MDY1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0RvY3VtZW50V2luZG93LmphdmEKQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aS5KVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLlN3aW5nTWVudUJ1aWxkZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnByaW50LlByaW50aW5nVXRpbHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uQXd0RG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkRvY3VtZW50V2luZG93OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0QXBwbGljYXRpb247CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRvclJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uUmVzb3VyY2VVdGlsczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZpbGVEaWFsb2c7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuSk9wdGlvblBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuV2luZG93Q29uc3RhbnRzOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCisvKioKKyAqIEF3dERvY3VtZW50V2luZG93IGlzIGEgRnJhbWUgY29udGFpbmluZyBhIFRleHRQYW5lbCwgd2l0aCBhIGRvY3VtZW50CisgKiBmb3Igc3RvcmluZyB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLgorICovCitmaW5hbCBjbGFzcyBTd2luZ0RvY3VtZW50V2luZG93IGV4dGVuZHMgSkZyYW1lIGltcGxlbWVudHMgRG9jdW1lbnRXaW5kb3cgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHByaXZhdGUgSlRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgRWRpdEFwcGxpY2F0aW9uIGZBcHBsaWNhdGlvbjsKKyAgICBwcml2YXRlIFRleHREb2N1bWVudCBmRG9jdW1lbnQ7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXd0RG9jdW1lbnRXaW5kb3cuCisgICAgICogQHBhcmFtIGFwcGxpY2F0aW9uIHRoZSBhcHBsaWNhdGlvbiB0aGF0IG93bnMgdGhpcyBkb2N1bWVudAorICAgICAqIEBwYXJhbSBkb2N1bWVudCB0aGUgZG9jdW1lbnQgdG8gc2hvdyBpbiB0aGlzIEF3dERvY3VtZW50V2luZG93CisgICAgICovCisgICAgU3dpbmdEb2N1bWVudFdpbmRvdyhFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyB0ZXh0UGFuZWxTZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlVGFiUnVsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFN0eWxlZFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICBzZXREZWZhdWx0Q2xvc2VPcGVyYXRpb24oV2luZG93Q29uc3RhbnRzLkRPX05PVEhJTkdfT05fQ0xPU0UpOworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBKVGV4dFBhbmVsKHRleHRQYW5lbFNldHRpbmdzLCBudWxsLCBhcHBsaWNhdGlvbi5nZXRDbGlwYm9hcmQoKSk7CisgICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgfQorICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisKKyAgICAgICAgYWRkTWVudUJhcihzdXBwb3J0U3R5bGVkVGV4dCwgc3VwcG9ydFBsYWluVGV4dCwgbWVudXMpOworCisgICAgICAgIGdldENvbnRlbnRQYW5lKCkuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgaWYgKHVzZVRhYlJ1bGVyKSB7CisgICAgICAgICAgICBKVGFiUnVsZXIgdGFiUnVsZXIgPSBuZXcgSlRhYlJ1bGVyKDE0LCAxMCwgZlRleHRQYW5lbCk7CisgICAgICAgICAgICBnZXRDb250ZW50UGFuZSgpLmFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKGZUZXh0UGFuZWwsICJDZW50ZXIiKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGRvQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFkZE1lbnVCYXIoYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0UGxhaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisgICAgICAgIAorICAgICAgICBKTWVudUJhciBtZW51QmFyID0gbmV3IEpNZW51QmFyKCk7CisgICAgICAgIFN0cmluZyBtZW51VGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuRklMRSk7CisgICAgICAgIEpNZW51IG1lbnUgPSBuZXcgSk1lbnUobWVudVRpdGxlKTsKKyAgICAgICAgbmV3IFN3aW5nRmlsZU1lbnVNYW5hZ2VyKG1lbnUsIGZBcHBsaWNhdGlvbiwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0KTsKKyAgICAgICAgbWVudUJhci5hZGQobWVudSk7CisKKyAgICAgICAgU3dpbmdNZW51QnVpbGRlci5nZXRJbnN0YW5jZSgpLmNyZWF0ZU1lbnVzKG1lbnVCYXIsIGZUZXh0UGFuZWwsIHRoaXMsIG1lbnVzKTsKKyAgICAgICAgc2V0Sk1lbnVCYXIobWVudUJhcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGl0IGlzIE9LIHRvIHNldCB0aGUgZG9jdW1lbnQgdGV4dCBhbmQgZmlsZSB0bworICAgICAqIHNvbWV0aGluZyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkNoYW5nZURvY3VtZW50cygpIHsKKworICAgICAgICAvLyBJZiB0aGUgdGV4dCBpcyBtb2RpZmllZCwgZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0bworICAgICAgICAvLyBzYXZlIGl0LiAgT3RoZXJ3aXNlIHJldHVybiB0cnVlLgorCisgICAgICAgIGlmIChmRG9jdW1lbnQuaXNNb2RpZmllZCgpKSB7CisgICAgICAgICAgICBpbnQgc2F2ZSA9IGFza1NhdmUoKTsKKyAgICAgICAgICAgIGlmIChzYXZlID09IEpPcHRpb25QYW5lLllFU19PUFRJT04pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9TYXZlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2F2ZSA9PSBKT3B0aW9uUGFuZS5OT19PUFRJT047CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICBmRG9jdW1lbnQgPSBkb2N1bWVudDsKKyAgICAgICAgZkRvY3VtZW50LnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gZW1wdHkgdGV4dCB3aXRoIG5vIGFzc29jaWF0ZWQgZmlsZS4gIElmCisgICAgICogdGhlIGRvY3VtZW50IHRleHQgaXMgbm90IHNhdmVkLCBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSB0aGUKKyAgICAgKiB0aGUgdGV4dCBmaXJzdC4gIElmIHRoaXMgb3BlcmF0aW9uIGlzIGNhbmNlbGVkLCB0aGUgZG9jdW1lbnQKKyAgICAgKiBpcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9OZXcoKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXREb2N1bWVudChmQXBwbGljYXRpb24uY3JlYXRlTmV3RG9jdW1lbnQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgZnJvbSB3aGljaCB0byBsb2FkIGEgdGV4dCBkb2N1bWVudC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCB0ZXh0IGlzIG5vdCBzYXZlZCwgZmlyc3QgcHJvbXB0IHRoZSB1c2VyIHRvCisgICAgICogc2F2ZS4gIElmIGVpdGhlciBvcGVyYXRpb24gaXMgY2FuY2VsZWQgb3IgZmFpbHMsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb09wZW4oKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gZkFwcGxpY2F0aW9uLm9wZW5Eb2N1bWVudCh0aGlzKTsKKworICAgICAgICBpZiAoZG9jdW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgaW4gd2hpY2ggdG8gc2F2ZSB0aGUgZG9jdW1lbnQgdGV4dC4KKyAgICAgKiBJZiB0aGlzIG9wZXJhdGlvbiBpcyBub3QgY2FuY2VsZWQsIHNhdmUgdGhlIHRleHQgaW4gdGhlIGZpbGUuCisgICAgICogVGhlIGZpbGUgYmVjb21lcyB0aGlzIGRvY3VtZW50J3MgZmlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmVBcyhpbnQgZm9ybWF0KSB7CisKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfVElUTEUpOworICAgICAgICBGaWxlIGZpbGUgPSBBd3REb2N1bWVudFdpbmRvdy5nZXRGaWxlRnJvbURpYWxvZyhmRG9jdW1lbnQuZ2V0RmlsZSgpLCB0aXRsZSwgdGhpcywgRmlsZURpYWxvZy5TQVZFKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmaWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkRvY3VtZW50LnNldEZpbGUoZmlsZSk7CisgICAgICAgIHNldFRpdGxlKGZEb2N1bWVudC5nZXRUaXRsZSgpKTsKKworICAgICAgICBmRG9jdW1lbnQuc2V0Rm9ybWF0KGZvcm1hdCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkRvY3VtZW50LnNhdmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSB0ZXh0IGluIHRoaXMgZG9jdW1lbnQuICBJZiB0aGVyZSBpcyBubyBmaWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSB0ZXh0LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gPGNvZGU+ZG9TYXZlQXM8L2NvZGU+LgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBzYXZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmUoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5nZXRGaWxlKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZUFzKGZEb2N1bWVudC5nZXRGb3JtYXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IHRoZSBjb250ZW50cyBvZiB0aGlzIHdpbmRvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1ByaW50KCkgeworCisgICAgICAgIFByaW50aW5nVXRpbHMudXNlclByaW50VGV4dChmRG9jdW1lbnQuZ2V0VGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUaXRsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGNsb3NlIHRoaXMgd2luZG93LiAgSWYgdGhlIHRleHQgaGFzIG5vdCBiZWVuIHNhdmVkLAorICAgICAqIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY2xvc2luZyB0aGUKKyAgICAgKiB3aW5kb3cuICBJZiB0aGUgdXNlciBjYW5jZWxzIHRoaXMgb3BlcmF0aW9uLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogZmFsc2UgYW5kIHRoZSB3aW5kb3cgaXMgbm90IGNsb3NlZDsgIG90aGVyd2lzZSB0aGlzIG1ldGhvZAorICAgICAqIHJldHVybnMgdHJ1ZSBhbmQgdGhlIHdpbmRvdyBpcyBjbG9zZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZG9DbG9zZSgpIHsKKworICAgICAgICBpZiAoY2FuQ2hhbmdlRG9jdW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgZkFwcGxpY2F0aW9uLnJlbW92ZURvY3VtZW50V2luZG93KHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXNwbGF5IGEgZGlhbG9nIHRoYXQgYXNrcyB3aGV0aGVyIHRoZSB1c2VyIHdhbnRzIHRvCisgICAgICogc2F2ZSBhIGRvY3VtZW50LiAgVGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgWUVTX09QVElPTiwKKyAgICAgKiBOT19PUFRJT04sIG9yIENBTkNFTF9PUFRJT04gZnJvbSBKT3B0aW9uUGFuZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhc2tTYXZlKCkgeworCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfTVNHKTsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBuZXcgT2JqZWN0W10ge2dldFRpdGxlKCl9KTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB5ZXMgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuWUVTKTsKKyAgICAgICAgU3RyaW5nIG5vID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLk5PKTsKKyAgICAgICAgU3RyaW5nIGNhbmNlbCA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5DQU5DRUwpOworCisgICAgICAgIHJldHVybiBKT3B0aW9uUGFuZS5zaG93T3B0aW9uRGlhbG9nKHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5ZRVNfTk9fQ0FOQ0VMX09QVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSk9wdGlvblBhbmUuUVVFU1RJT05fTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtde3llcyxubyxjYW5jZWx9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdFZGl0RGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRWRpdERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NmY5OTIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRWRpdERlbW8uamF2YQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlRleHREb2N1bWVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWw7CisKK3B1YmxpYyBjbGFzcyBTd2luZ0VkaXREZW1vIGV4dGVuZHMgRWRpdERlbW8geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAKKyAgICAgICAgbmV3IFN3aW5nQ29kZUVkaXQoYXJncywgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTd2luZ0VkaXREZW1vKFN0cmluZ1tdIGFyZ3MsIGludCBzdGFydCkgeworICAgIAorICAgICAgICBzdXBlcihhcmdzLCBzdGFydCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN3aW5nRG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpUZXh0UGFuZWwuZ2V0RGVmYXVsdFNldHRpbmdzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0ZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjkyZDY4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0ZpbGVNZW51TWFuYWdlci5qYXZhCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vOworCitpbXBvcnQgamF2YS5hd3QuRXZlbnQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUl0ZW07CitpbXBvcnQgamF2YXguc3dpbmcuSlNlcGFyYXRvcjsKK2ltcG9ydCBqYXZheC5zd2luZy5LZXlTdHJva2U7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRBcHBsaWNhdGlvbjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRmlsZU1lbnVNYW5hZ2VyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5NZW51RGF0YTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uUmVzb3VyY2VVdGlsczsKKworZmluYWwgY2xhc3MgU3dpbmdGaWxlTWVudU1hbmFnZXIgZXh0ZW5kcyBGaWxlTWVudU1hbmFnZXIgeworCisgICAgcHJpdmF0ZSBKTWVudSBmTWVudTsKKyAgICAKKyAgICBwdWJsaWMgU3dpbmdGaWxlTWVudU1hbmFnZXIoSk1lbnUgbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdEFwcGxpY2F0aW9uIGFwcGxpY2F0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRXaW5kb3cgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFN0eWxlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0UGxhaW5Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHN1cGVyKGFwcGxpY2F0aW9uLCBkb2N1bWVudCk7CisgICAgICAgIAorICAgICAgICBmTWVudSA9IG1lbnU7CisgICAgICAgIGNyZWF0ZUl0ZW1zKHN1cHBvcnRTdHlsZWRGb3JtYXQsIHN1cHBvcnRQbGFpbkZvcm1hdCk7CisgICAgICAgIGZNZW51ID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIE9iamVjdCBhZGRNZW51SXRlbShTdHJpbmcga2V5KSB7CisKKyAgICAgICAgTWVudURhdGEgbWVudURhdGEgPSBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKGtleSk7CisgICAgICAgIEpNZW51SXRlbSBpdGVtID0gbmV3IEpNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpOworICAgICAgICBpZiAobWVudURhdGEuaGFzU2hvcnRjdXQoKSkgeworICAgICAgICAgICAgS2V5U3Ryb2tlIGtzID0gS2V5U3Ryb2tlLmdldEtleVN0cm9rZShtZW51RGF0YS5nZXRTaG9ydGN1dEtleUNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnQuQ1RSTF9NQVNLKTsKKyAgICAgICAgICAgIGl0ZW0uc2V0QWNjZWxlcmF0b3Ioa3MpOworICAgICAgICB9CisgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBKU2VwYXJhdG9yKCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk1lc3NhZ2VEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk1lc3NhZ2VEaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTI3ZDgwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTWVzc2FnZURpYWxvZy5qYXZhCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5DYXJkTGF5b3V0OworCitpbXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBNZXNzYWdlRGlhbG9nIGlzIGEgc2ltcGxlIEZyYW1lIHdoaWNoIGRpc3BsYXlzIGEgc3R5bGVkCisgKiB0ZXh0IG1lc3NhZ2UgaW4gYSBUZXh0UGFuZWwuCisgKiBUaGUgdGV4dCBpbiB0aGUgbWVzc2FnZSBpcyBub3Qgc2VsZWN0YWJsZSBvciBlZGl0YWJsZS4KKyAqIEBzZWUgTUNvbnN0VGV4dAorICogQHNlZSBKVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKTWVzc2FnZURpYWxvZyBleHRlbmRzIEpGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IE1lc3NhZ2VEaWFsb2cuCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZydzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgdGV4dCB3aGljaCB3aWxsIGFwcGVhciBpbiB0aGUgZGlhbG9nCisgICAgKi8KKyAgICBwdWJsaWMgSk1lc3NhZ2VEaWFsb2coU3RyaW5nIHRpdGxlLCBNQ29uc3RUZXh0IG1lc3NhZ2UpCisgICAgeworICAgICAgICBzdXBlcih0aXRsZSk7CisKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICBjb250ZW50LnNldExheW91dChuZXcgQ2FyZExheW91dCgpKTsKKyAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MgPSBKVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxhYmxlKGZhbHNlKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2VsZWN0YWJsZShmYWxzZSk7CisgICAgICAgIEpUZXh0UGFuZWwgcGFuZWwgPSBuZXcgSlRleHRQYW5lbChzZXR0aW5ncywgbWVzc2FnZSwgbnVsbCk7CisKKyAgICAgICAgcGFuZWwuc2V0QmFja2dyb3VuZChDb2xvci5ibGFjayk7CisgICAgICAgIGNvbnRlbnQuYWRkKCJDZW50ZXIiLCBwYW5lbCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHNldFNpemUoNDUwLDMyMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTnVtYmVyRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45N2ZjMTlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTnVtYmVyRGlhbG9nLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRGlhbG9nOworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEZpZWxkOworaW1wb3J0IGphdmF4LnN3aW5nLkpCdXR0b247CitpbXBvcnQgamF2YXguc3dpbmcuSkxhYmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKKworLyoqCisqIFNpbXBsZSBkaWFsb2cgd2hpY2ggZ2V0cyBhIG51bWJlciwgYW5kIHNlbmRzIGFuIGFwcHJvcHJpYXRlIGNvbW1hbmQKKyovCitmaW5hbCBjbGFzcyBKTnVtYmVyRGlhbG9nIGV4dGVuZHMgSkRpYWxvZyBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIEpUZXh0RmllbGQgZklucHV0ID0gbnVsbDsKKworICAgIHByaXZhdGUgSkJ1dHRvbiBmT0tCdXR0b24gPSBudWxsOworICAgIHByaXZhdGUgSkJ1dHRvbiBmQ2FuY2VsQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmxvYXQgZk11bHRpcGxpZXI7IAorCisgICAgLyoqCisgICAgICogQHBhcmFtIG11bHRpcGxpZXIgdGhlIGZhY3RvciBieSB3aGljaCB0byBtdWx0aXBseSB0aGUgdXNlcidzCisgICAgICogICAgICAgIHNlbGVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gICBUaGlzCisgICAgICogICAgICAgIGlzIHVzZWZ1bCBmb3Igc3Vic2NyaXB0aW5nLgorICAgICAqLworICAgIEpOdW1iZXJEaWFsb2coRnJhbWUgcGFyZW50LAorICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLAorICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgIGZsb2F0IG11bHRpcGxpZXIpIHsKKworICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIGZNdWx0aXBsaWVyID0gbXVsdGlwbGllcjsKKyAgICAgICAgCisgICAgICAgIENvbnRhaW5lciBjb250ZW50ID0gZ2V0Q29udGVudFBhbmUoKTsKKyAgICAgICAgCisgICAgICAgIGNvbnRlbnQuc2V0TGF5b3V0KG5ldyBqYXZhLmF3dC5HcmlkTGF5b3V0KDIsMSkpOworCisgICAgICAgIEpQYW5lbCBwYW5lbCA9IG5ldyBKUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAxMCwgMTUpKTsKKyAgICAgICAgZklucHV0ID0gbmV3IEpUZXh0RmllbGQoNSk7CisKKyAgICAgICAgcGFuZWwuYWRkKG5ldyBKTGFiZWwobWVzc2FnZSkpOworICAgICAgICBwYW5lbC5hZGQoZklucHV0KTsKKyAgICAgICAgY29udGVudC5hZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEpCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DQU5DRUwpKTsKKyAgICAgICAgZk9LQnV0dG9uID0gbmV3IEpCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5PSykpOworICAgICAgICBKUGFuZWwgcCA9IG5ldyBKUGFuZWwoKTsKKyAgICAgICAgcC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDUsIDUpKTsKKyAgICAgICAgcC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIHAuYWRkKGZPS0J1dHRvbik7CisgICAgICAgIGNvbnRlbnQuYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworCisgICAgICAgIGludCBudW0gPSAwOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IGZJbnB1dC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgbnVtID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBzZW5kQWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgc2VuZEFjdGlvbihudW0pOworICAgICAgICB9CisKKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0aGUgdXNlciB0eXBlZCBpbgorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oaW50IG51bWJlcikgeworICAgICAgICBmbG9hdCBudW0gPSBudW1iZXIgKiBmTXVsdGlwbGllcjsKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZsb2F0KG51bSkpOworICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KT2JqZWN0RGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmVjMDc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KT2JqZWN0RGlhbG9nLmphdmEKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3g7CitpbXBvcnQgamF2YXguc3dpbmcuQm9yZGVyRmFjdG9yeTsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3hMYXlvdXQ7CitpbXBvcnQgamF2YXguc3dpbmcuSkRpYWxvZzsKK2ltcG9ydCBqYXZheC5zd2luZy5KUGFuZWw7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuSkJ1dHRvbjsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGlzdDsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGFiZWw7CitpbXBvcnQgamF2YXguc3dpbmcuTGlzdFNlbGVjdGlvbk1vZGVsOworCitpbXBvcnQgamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkV2ZW50OworaW1wb3J0IGphdmF4LnN3aW5nLmV2ZW50Lkxpc3RTZWxlY3Rpb25MaXN0ZW5lcjsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlQWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworLyoqCisqIFNpbXBsZSBkaWFsb2cgdGhhdCBzZXRzIGFuIGF0dHJpYnV0ZS4KKyovCitmaW5hbCBjbGFzcyBKT2JqZWN0RGlhbG9nIGV4dGVuZHMgSkRpYWxvZyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBmaW5hbCBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmTmFtZVRvVmFsdWVNYXA7CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBKQnV0dG9uIGZPS0J1dHRvbjsKKyAgICBwcml2YXRlIGZpbmFsIEpCdXR0b24gZkNhbmNlbEJ1dHRvbjsKKyAgICBwcml2YXRlIGZpbmFsIEpMaXN0IGZJdGVtczsKKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdCBhIG5ldyBKT2JqZWN0RGlhbG9nLgorICAgICogQHBhcmFtIHBhcmVudCB0aGUgZGlhbG9nJ3MgcGFyZW50IGZyYW1lCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZ3MgdGl0bGUKKyAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIGRpc3BsYXllZCBuZXh0IHRvIHRoZSBpbnB1dCBib3gKKyAgICAqLworICAgIEpPYmplY3REaWFsb2coRnJhbWUgcGFyZW50LAorICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLCAKKyAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLCAKKyAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMsCisgICAgICAgICAgICAgICAgICBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKworICAgICAgICBzZXR1cE1hcChuYW1lcywgdmFsdWVzKTsKKyAgICAgICAgCisgICAgICAgIERpbWVuc2lvbiBzaXplID0gbmV3IERpbWVuc2lvbigyNTAsIDIwMCk7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICBmS2V5ID0ga2V5OworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgZkl0ZW1zID0gbmV3IEpMaXN0KG5hbWVzKTsKKyAgICAgICAgZkl0ZW1zLnNldFNlbGVjdGlvbk1vZGUoTGlzdFNlbGVjdGlvbk1vZGVsLk1VTFRJUExFX0lOVEVSVkFMX1NFTEVDVElPTik7CisgICAgICAgIAorICAgICAgICBmSXRlbXMuYWRkTW91c2VMaXN0ZW5lcihuZXcgTW91c2VBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldENsaWNrQ291bnQoKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBKU2Nyb2xsUGFuZSBsaXN0U2Nyb2xsZXIgPSBuZXcgSlNjcm9sbFBhbmUoZkl0ZW1zKTsKKyAgICAgICAgbGlzdFNjcm9sbGVyLnNldFByZWZlcnJlZFNpemUoc2l6ZSk7CisgICAgICAgIGxpc3RTY3JvbGxlci5zZXRQcmVmZXJyZWRTaXplKHNpemUpOworICAgICAgICBsaXN0U2Nyb2xsZXIuc2V0QWxpZ25tZW50WChMRUZUX0FMSUdOTUVOVCk7CisKKyAgICAgICAgSkxhYmVsIGxhYmVsID0gbmV3IEpMYWJlbChtZXNzYWdlKTsKKyAgICAgICAgbGFiZWwuc2V0TGFiZWxGb3IoZkl0ZW1zKTsKKyAgICAgICAgCisgICAgICAgIEpQYW5lbCBpdGVtUGFuZWwgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIGl0ZW1QYW5lbC5hZGQobGFiZWwpOworICAgICAgICBpdGVtUGFuZWwuYWRkKEJveC5jcmVhdGVSaWdpZEFyZWEobmV3IERpbWVuc2lvbigwLDUpKSk7CisgICAgICAgIGl0ZW1QYW5lbC5hZGQobGlzdFNjcm9sbGVyKTsKKyAgICAgICAgaXRlbVBhbmVsLnNldEJvcmRlcihCb3JkZXJGYWN0b3J5LmNyZWF0ZUVtcHR5Qm9yZGVyKDEwLDEwLDEwLDEwKSk7CisgICAgICAgIAorICAgICAgICBpdGVtUGFuZWwuc2V0TGF5b3V0KG5ldyBCb3hMYXlvdXQoaXRlbVBhbmVsLCBCb3hMYXlvdXQuWV9BWElTKSk7CisgICAgICAgIAorICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEpCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DQU5DRUwpKTsKKyAgICAgICAgZk9LQnV0dG9uID0gbmV3IEpCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5PSykpOworICAgICAgICAKKyAgICAgICAgSlBhbmVsIGJ1dHRvblBhbmVsID0gbmV3IEpQYW5lbCgpOworICAgICAgICBidXR0b25QYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDUsIDUpKTsKKyAgICAgICAgYnV0dG9uUGFuZWwuYWRkKGZDYW5jZWxCdXR0b24pOworICAgICAgICBidXR0b25QYW5lbC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgCisgICAgICAgIENvbnRhaW5lciBjb250ZW50ID0gZ2V0Q29udGVudFBhbmUoKTsKKyAgICAgICAgY29udGVudC5hZGQoaXRlbVBhbmVsLCBCb3JkZXJMYXlvdXQuQ0VOVEVSKTsKKyAgICAgICAgY29udGVudC5hZGQoYnV0dG9uUGFuZWwsIEJvcmRlckxheW91dC5TT1VUSCk7CisKKyAgICAgICAgcGFjaygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIEFjdGlvbkxpc3RlbmVyIGxpc3RlbmVyID0gbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIE9iamVjdCBzb3VyY2UgPSBlLmdldFNvdXJjZSgpOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gZk9LQnV0dG9uKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbEJ1dHRvbikgeworICAgICAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZk9LQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgZkNhbmNlbEJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIAorICAgICAgICBzZWxlY3RTdHlsZXModmFsdWVzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldHVwTWFwKFN0cmluZ1tdIG5hbWVzLCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAKKyAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCAhPSB2YWx1ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IGhhdmUgc2FtZSBudW1iZXIgb2YgbmFtZXMgYW5kIHZhbHVlcy4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZk5hbWVUb1ZhbHVlTWFwID0gbmV3IEhhc2h0YWJsZShuYW1lcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZOYW1lVG9WYWx1ZU1hcC5wdXQobmFtZXNbaV0sIHZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjbG9zZVdpbmRvdyhib29sZWFuIHNlbmRBY3Rpb24pIHsKKworICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzZW5kQWN0aW9uICYmIGZJdGVtcy5nZXRNaW5TZWxlY3Rpb25JbmRleCgpICE9IGZJdGVtcy5nZXRNYXhTZWxlY3Rpb25JbmRleCgpKSB7CisgICAgICAgICAgICBzZW5kQWN0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBmTmFtZVRvVmFsdWVNYXAuZ2V0KGZJdGVtcy5nZXRTZWxlY3RlZFZhbHVlKCkpOworICAgICAgICAgICAgc2VuZEFjdGlvbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIC8qKgorICAgICogSGFuZGxlIHRoZSB1c2VyIGlucHV0CisgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9iamVjdAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihmS2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0ID0gbmV3IEF0dHJpYnV0ZVNldChmS2V5KTsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2VsZWN0VmFsdWUoT2JqZWN0IHZhbHVlLCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIAorICAgICAgICAgICAgaWYgKCh2YWx1ZSAhPSBudWxsICYmIHZhbHVlLmVxdWFscyh2YWx1ZXNbaV0pKSB8fCAodmFsdWUgPT0gbnVsbCAmJiB2YWx1ZXNbaV0gPT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBmSXRlbXMuYWRkU2VsZWN0aW9uSW50ZXJ2YWwoaSwgaSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zLmVuc3VyZUluZGV4SXNWaXNpYmxlKGkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2VsZWN0U3R5bGVzKE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBPYmplY3QgdmFsdWU7CisgCisgICAgICAgIGlmIChmQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGZUZXh0UGFuZWwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFsdWUgPSBmVGV4dFBhbmVsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlICE9IE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTKSB7CisgICAgICAgICAgICBzZWxlY3RWYWx1ZSh2YWx1ZSwgdmFsdWVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZPS0J1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNlbExpbWl0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpOworICAgICAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7IHJ1blN0YXJ0IDw9IHNlbExpbWl0OworICAgICAgICAgICAgICAgICAgICBydW5TdGFydCA9IGZDaGFyYWN0ZXI/IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkgOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnBhcmFncmFwaExpbWl0KHJ1blN0YXJ0KSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0IHJ1blZhbDsKKyAgICAgICAgICAgICAgICBpZiAoZkNoYXJhY3RlcikgeworICAgICAgICAgICAgICAgICAgICBydW5WYWwgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChmS2V5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJ1blZhbCA9IHRleHQucGFyYWdyYXBoU3R5bGVBdChydW5TdGFydCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocnVuVmFsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVuVmFsID0gZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzZWxlY3RWYWx1ZShydW5WYWwsIHZhbHVlcyk7CisgICAgICAgICAgICAgICAgaWYgKHJ1blN0YXJ0ID09IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmSXRlbXMuYWRkTGlzdFNlbGVjdGlvbkxpc3RlbmVyKG5ldyBMaXN0U2VsZWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB2YWx1ZUNoYW5nZWQoTGlzdFNlbGVjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBmSXRlbXMuc2V0U2VsZWN0aW9uTW9kZShMaXN0U2VsZWN0aW9uTW9kZWwuU0lOR0xFX1NFTEVDVElPTik7CisgICAgICAgICAgICAgICAgZk9LQnV0dG9uLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zLnJlbW92ZUxpc3RTZWxlY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRhYlJ1bGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk4MjgwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDb21wb25lbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5UYWJSdWxlckltcGw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5NVGFiUnVsZXJDb21wb25lbnQ7CisKKy8qKgorICogSlRhYlJ1bGVyIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UYWJSdWxlckNvbXBvbmVudCBpbiBhIFN3aW5nIGNvbXBvbmVudC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUYWJSdWxlciBleHRlbmRzIEpDb21wb25lbnQgaW1wbGVtZW50cyBNVGFiUnVsZXJDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUYWJSdWxlckltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYXNlbGluZSB0aGUgeS1jb29yZGluYXRlIG9mIHRoZSBydWxlcidzIGJhc2VsaW5lCisgICAgICogQHBhcmFtIG9yaWdpbiB0aGUgeC1jb29yZGluYXRlIGluIHRoaXMgQ29tcG9uZW50IHdoZXJlCisgICAgICogICAgIHRoZSBsZWZ0IG1hcmdpbiBhcHBlYXJzCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8uICBUaGlzIFRhYlJ1bGVyCisgICAgICogICAgIHdpbGwgcmVmbGVjdCB0aGUgTVRleHRQYW5lbCdzIHBhcmFncmFwaCBzdHlsZXMsIGFuZCB1cGRhdGUKKyAgICAgKiAgICAgdGhlIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBtYW5pcHVsYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRhYlJ1bGVyKGludCBiYXNlbGluZSwgaW50IG9yaWdpbiwgTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsID0gbmV3IFRhYlJ1bGVySW1wbChiYXNlbGluZSwgb3JpZ2luLCB0ZXh0UGFuZWwsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZJbXBsLmxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEJhY2tDb2xvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcikgeworCisgICAgICAgIGZJbXBsLnNldEJhY2tDb2xvcihiYWNrQ29sb3IpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRSdWxlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldExlYWRpbmdNYXJnaW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3RMaW5lSW5kZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZpcnN0TGluZUluZGVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRyYWlsaW5nTWFyZ2luKCk7CisgICAgfQorICAgIAorICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIENvbXBvbmVudCBtZXRob2RzIHdoaWNoIG5lZWQgdG8gYmUgZGVsZWdhdGVkIHRvCisgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uOgorICAgIAorICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnBhaW50KGcpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUZXh0RnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhhM2E4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUZXh0RnJhbWUuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuVUlNYW5hZ2VyOworCitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworCisvKioKKyAqIEpUZXh0RnJhbWUgaXMgYSBKRnJhbWUgY29udGFpbmluZyBhbiBlZGl0YWJsZSBKVGV4dFBhbmVsLCBhIHNldCBvZiBzdGFuZGFyZAorICogbWVudXMsIGFuZCBhIEpUYWJSdWxlci4gIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMtaXMsIGJ1dCBpcworICogcHJpbWFyaWx5IGludGVuZGVkIHRvIGJlIGEgc2ltcGxlIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGUgb3RoZXIgY2xhc3NlcworICogaW4gdGhpcyBwYWNrYWdlLgorICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsCisgKiBAc2VlIFN3aW5nTWVudUJ1aWxkZXIKKyAqIEBzZWUgSlRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKVGV4dEZyYW1lIGV4dGVuZHMgSkZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBKVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIG5vIHRleHQsIG5vIHRpdGxlLCAKKyAgICAgKiBhbmQgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRGcmFtZSgpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIGluaXQobnVsbCwgVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEpUZXh0RnJhbWUgd2l0aCBubyB0ZXh0IGFuZCB0aGUgZ2l2ZW4gdGl0bGUuCisgICAgICogVGhlIEpUZXh0UGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRGcmFtZShTdHJpbmcgdGl0bGUpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIHRoZSBnaXZlbiB0ZXh0IGFuZCB0aXRsZSwgd2hvc2UKKyAgICAgKiBUZXh0UGFuZWwgd2lsbCB1c2UgdGhlIGdpdmVuIGNsaXBib2FyZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgaW5pdGlhbCB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJZiBudWxsIHRoZQorICAgICAqICAgICAgVGV4dFBhbmVsIHdpbGwgaW5pdGlhbGx5IGJlIGVtcHR5CisgICAgICogQHBhcmFtIHRpdGxlIHRoZSB0aXRsZSBvZiB0aGlzIEZyYW1lCisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgQ2xpcGJvYXJkIHdoaWNoIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UuCisgICAgICogICAgICBJZiBudWxsIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIENsaXBib2FyZAorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBzdXBlcih0aXRsZSk7CisgICAgICAgIGluaXQodGV4dCwgY2xpcGJvYXJkKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaW5pdChNQ29uc3RUZXh0IHRleHQsIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgSlRleHRQYW5lbCh0ZXh0LCBjbGlwYm9hcmQpOworCisgICAgICAgIEpUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBKVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKworICAgICAgICBjcmVhdGVNZW51cygpOworCisgICAgICAgIENvbnRhaW5lciBjb250ZW50UGFuZSA9IGdldENvbnRlbnRQYW5lKCk7CisgICAgICAgIGNvbnRlbnRQYW5lLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBjb250ZW50UGFuZS5hZGQoZlRleHRQYW5lbCwgIkNlbnRlciIpOworICAgICAgICBjb250ZW50UGFuZS5hZGQodGFiUnVsZXIsICJOb3J0aCIpOworICAgICAgICBwYWNrKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZU1lbnVzKCkgeworCisgICAgICAgIEpNZW51QmFyIG1lbnVCYXIgPSBuZXcgSk1lbnVCYXIoKTsKKworICAgICAgICBTd2luZ01lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICBzZXRKTWVudUJhcihtZW51QmFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0UGFuZWwgaW4gdGhpcyBmcmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBsYWYgPSBVSU1hbmFnZXIuZ2V0U3lzdGVtTG9va0FuZEZlZWxDbGFzc05hbWUoKTsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzBdLmVxdWFscygiY3AiKSkgeworICAgICAgICAgICAgICAgIGxhZiA9IFVJTWFuYWdlci5nZXRDcm9zc1BsYXRmb3JtTG9va0FuZEZlZWxDbGFzc05hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgVUlNYW5hZ2VyLnNldExvb2tBbmRGZWVsKGxhZik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVGhyb3dhYmxlIHRoKSB7CisgICAgICAgICAgICB0aC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBKVGV4dEZyYW1lIGZyYW1lID0gbmV3IEpUZXh0RnJhbWUoKTsKKyAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGZyYW1lLnNldFNpemUoNTUwLCA3MDApOworICAgICAgICBmcmFtZS5zaG93KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZDE5YzgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51QmFyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLio7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuRGlhbG9nSXRlbS5EaWFsb2dGYWN0b3J5OworCisvKioKKyAqIFN3aW5nTWVudUJ1aWxkZXIgcHJvdmlkZXMgYSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgc2V0IG9mIFN3aW5nIG1lbnVzIGZvciBpbnRlcmFjdGluZworICogd2l0aCBhbiBNVGV4dFBhbmVsLiAgRnV0dXJlIHZlcnNpb25zIG9mIHRoaXMgY2xhc3MgbWF5IHByb3ZpZGUgZ3JlYXRlciBjb250cm9sCisgKiBvdmVyIHRoZSBtZW51IGNvbnRlbnRzLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTd2luZ01lbnVCdWlsZGVyIGV4dGVuZHMgTWVudUJ1aWxkZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3dpbmdNZW51QnVpbGRlciBJTlNUQU5DRSA9IG5ldyBTd2luZ01lbnVCdWlsZGVyKCk7CisgICAgCisgICAgLyoqCisgICAgICogSWQgZm9yIGFuIEVkaXQgbWVudS4gIFRoZSBFZGl0IG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5VbmRvPC9iPiAtIGludm9rZSB1bmRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5SZWRvPC9iPiAtIGludm9rZSByZWRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DdXQ8L2I+IC0gaW52b2tlIGN1dCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q29weTwvYj4gLSBpbnZva2UgY29weSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UGFzdGU8L2I+IC0gaW52b2tlIHBhc3RlKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DbGVhcjwvYj4gLSBpbnZva2UgY2xlYXIoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlNlbGVjdCBBbGw8L2I+IC0gaW52b2tlIHNlbGVjdEFsbCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSBNZW51QnVpbGRlci5FRElUOworICAgIC8qKgorICAgICAqIElkIGZvciB0aGUgcG9pbnQgc2l6ZXMgbWVudS4gIFRoZSBtZW51IGhhcyBpdGVtcyB0aGF0IHNldCB0aGUgc2l6ZSBvZiBhIGNoYXJhY3RlcgorICAgICAqIGluIGEgdHlwZWZhY2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0laRSA9IE1lbnVCdWlsZGVyLlNJWkU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgU3R5bGUgbWVudS4gIFRoZSBTdHlsZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+UGxhaW48L2I+IC0gcmVtb3ZlIDxjb2RlPldFSUdIVDwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlBPU1RVUkU8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5VTkRFUkxJTkU8L2NvZGU+IGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5TVFJJS0VUSFJPVUdIPC9jb2RlPiBhdHRyaWJ1dGVzIGZyb20gdGhlCisgICAgICogY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Cb2xkPC9iPiAtIGFkZCA8Y29kZT57V0VJR0hULFdFSUdIVF9CT0xEfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5JdGFsaWM8L2I+IC0gYWRkIDxjb2RlPntQT1NUVVJFLFBPU1RVUkVfSVRBTElDfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5VbmRlcmxpbmU8L2I+IC0gYWRkIDxjb2RlPntVTkRFUkxJTkUsVU5ERVJMSU5FX09OfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5TdHJpa2V0aHJvdWdoPC9iPiAtIGFkZCA8Y29kZT57U1RSSUtFVEhST1VHSCxTVFJJS0VUSFJPVUdIX09OfTwvY29kZT4KKyAgICAgKiB0byB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb250Li4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSB0eXBlZmFjZSAoZm9udCBmYW1pbHkpIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb3JlY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGZvcmVncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJhY2tjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gTWVudUJ1aWxkZXIuU1RZTEU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgcGFyYWdyYXBoIGFsaWdubWVudCBtZW51LiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5MZWFkaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIExFQURJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5DZW50ZXI8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgQ0VOVEVSIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+VHJhaWxpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgVFJBSUxJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5KdXN0aWZpZWQ8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgZnVsbCBqdXN0aWZpY2F0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMVVNIID0gTWVudUJ1aWxkZXIuRkxVU0g7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMgdGhlIEtleVJlbWFwCisgICAgICogb24gYW4gTVRleHRQYW5lbC4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGVmYXVsdDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gaWRlbnRpdHkgcmVtYXA8L2xpPgorICAgICAqIDxsaT48Yj5BcmFiaWM8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEFyYWJpYyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5IZWJyZXc8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEhlYnJldyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5Jc3JhZWwgTmlrdWQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIElzcmFlbCBOaWt1ZDwvbGk+CisgICAgICogPGxpPjxiPlRoYWkgS2V0bWFuZWU8L2I+IC0gc2V0IEtleVJlbWFwIHRvIFRoYWkgS2V0bWFuZWU8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gTWVudUJ1aWxkZXIuS0VZTUFQOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzCisgICAgICogdGhlIHByaW1hcnkgcnVuIGRpcmVjdGlvbiBmb3IgYSBwYXJhZ3JhcGguICBSdW4gZGlyZWN0aW9uIGNhbiBiZSBsZWZ0LXRvLXJpZ2h0LAorICAgICAqIHJpZ2h0LXRvLWxlZnQsIG9yIGNhbiB1c2UgdGhlIGRlZmF1bHQgcnVuIGRpcmVjdGlvbiBmcm9tIHRoZSBVbmljb2RlIGJpZGkgYWxnb3JpdGhtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJREkgPSBNZW51QnVpbGRlci5CSURJOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgd2l0aCBhbiA8Yj5BYm91dDwvYj4gaXRlbS4gIFdoZW4gc2VsZWN0ZWQsIAorICAgICAqIHRoZSBpdGVtIGRpc3BsYXlzIGEgRnJhbWUgY29udGFpbmluZyBzb21lCisgICAgICogc2VsZi1wcm9tb3Rpb25hbCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCT1VUID0gTWVudUJ1aWxkZXIuQUJPVVQ7CisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIFN3aW5nTWVudUJ1aWxkZXIuCisgICAgICovCisgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3dpbmdNZW51QnVpbGRlciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBJTlNUQU5DRTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBKTWVudUJhciBmTWVudUJhcjsKKyAgICAKKyAgICBwcml2YXRlIFN3aW5nTWVudUJ1aWxkZXIoKSB7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCBhIHN0YW5kYXJkIHNldCBvZiBtZW51cyB0byB0aGUgZ2l2ZW4gbWVudSBiYXIuICBUaGUgbWVudXMgCisgICAgICogd2lsbCBpbnRlcmFjdCB3aXRoIHRoZSBnaXZlbiBNVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBtZW51QmFyIHRoZSBNZW51QmFyIHRvIHdoaWNoIG1lbnVzIGFyZSBhZGRlZAorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgd2l0aCB3aGljaCB0aGUgbWVudXMgaW50ZXJhY3QKKyAgICAgKiBAcGFyYW0gZnJhbWUgYSBGcmFtZSB0byB1c2UgYXMgdGhlIHBhcmVudCBvZiBhbnkgZGlhbG9ncyBjcmVhdGVkIGJ5IGEgCisgICAgICogICBhIG1lbnUgaXRlbS4gIElmIG51bGwsIG1lbnUgaXRlbXMgd2hpY2ggY3JlYXRlIGRpYWxvZ3Mgd2lsbCBiZSBvbWl0dGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZU1lbnVzKEpNZW51QmFyIG1lbnVCYXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgY3JlYXRlTWVudXMobWVudUJhciwgdGV4dFBhbmVsLCBmcmFtZSwgZGVmYXVsdE1lbnVzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc2V0IG9mIG1lbnVzIHRvIHRoZSBnaXZlbiBtZW51IGJhci4gIFRoZSBtZW51cyAKKyAgICAgKiB3aWxsIGludGVyYWN0IHdpdGggdGhlIGdpdmVuIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIG1lbnVCYXIgdGhlIE1lbnVCYXIgdG8gd2hpY2ggbWVudXMgYXJlIGFkZGVkCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB3aXRoIHdoaWNoIHRoZSBtZW51cyBpbnRlcmFjdAorICAgICAqIEBwYXJhbSBmcmFtZSBhIEZyYW1lIHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIGFueSBkaWFsb2dzIGNyZWF0ZWQgYnkgYSAKKyAgICAgKiAgIGEgbWVudSBpdGVtLiAgSWYgbnVsbCwgbWVudSBpdGVtcyB3aGljaCBjcmVhdGUgZGlhbG9ncyB3aWxsIGJlIG9taXR0ZWQuCisgICAgICogQHBhcmFtIG1lbnVzIGFuIGFycmF5IG9mIGludGVnZXIgbWVudSBpZCdzLiAgRWFjaCBlbGVtZW50IG9mIHRoZQorICAgICAqICAgYXJyYXkgbXVzdCBiZSBvbmUgb2YgdGhpcyBjbGFzcydzIG1lbnUgaWQgY29uc3RhbnRzLiAgSWYgbnVsbCwKKyAgICAgKiAgIHRoZSBkZWZhdWx0IG1lbnVzIGFyZSBjcmVhdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZU1lbnVzKEpNZW51QmFyIG1lbnVCYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChtZW51cyA9PSBudWxsKSB7CisgICAgICAgICAgICBtZW51cyA9IGRlZmF1bHRNZW51czsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3luY2hyb25pemVkIChNSXRlbS5MT0NLKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZNZW51QmFyID0gbWVudUJhcjsKKyAgICAgICAgICAgIGRvQ3JlYXRlTWVudXModGV4dFBhbmVsLCBmcmFtZSwgbWVudXMpOworICAgICAgICAgICAgZk1lbnVCYXIgPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUFkZE1lbnUoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgSk1lbnUgbWVudSA9IG5ldyBKTWVudShSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKGtleSkpOworICAgICAgICBmTWVudUJhci5hZGQobWVudSk7CisgICAgICAgIE1JdGVtLnNldEl0ZW1GYWN0b3J5KG5ldyBTd2luZ01lbnVGYWN0b3J5KG1lbnUpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KGZpbmFsIFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIEZyYW1lIGRpYWxvZ1BhcmVudCA9IGZEaWFsb2dQYXJlbnQ7CisKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeyAgICAKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKT2JqZWN0RGlhbG9nKGRpYWxvZ1BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIEZyYW1lIGRpYWxvZ1BhcmVudCA9IGZEaWFsb2dQYXJlbnQ7CisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGZpbmFsIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZlRleHRQYW5lbDsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIGZUZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEpOdW1iZXJEaWFsb2coZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlQWJvdXREaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkFCT1VUX1RJVExFKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEpNZXNzYWdlRGlhbG9nKHRpdGxlLCBBYm91dFRleHQuZ2V0QWJvdXRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUZhY3RvcnkuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51RmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkNjE4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuRXZlbnQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KQ2hlY2tCb3hNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUl0ZW07CitpbXBvcnQgamF2YXguc3dpbmcuSlNlcGFyYXRvcjsKK2ltcG9ydCBqYXZheC5zd2luZy5LZXlTdHJva2U7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NSXRlbTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NSXRlbS5JdGVtRmFjdG9yeTsKKworZmluYWwgY2xhc3MgU3dpbmdNZW51RmFjdG9yeSBpbXBsZW1lbnRzIEl0ZW1GYWN0b3J5IHsKKyAgICAgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN3aW5nTUl0ZW0gZXh0ZW5kcyBNSXRlbSB7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIEpNZW51SXRlbSBmSXRlbTsKKyAgICAgICAgCisgICAgICAgIFN3aW5nTUl0ZW0oSk1lbnVJdGVtIGl0ZW0pIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0gPSBpdGVtOworICAgICAgICAgICAgaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU2VsZWN0ZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyLmhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFN0YXRlKGJvb2xlYW4gY2hlY2tlZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEpDaGVja0JveE1lbnVJdGVtIGl0ZW0gPSAoSkNoZWNrQm94TWVudUl0ZW0pIGZJdGVtOworICAgICAgICAgICAgICAgIGl0ZW0uc2V0U3RhdGUoY2hlY2tlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBlcmZvcm0gc2V0Q2hlY2tlZCBvbiBub24tY2hlY2tib3ggaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgSk1lbnUgZk1lbnU7CisgICAgICAgIAorICAgIFN3aW5nTWVudUZhY3RvcnkoSk1lbnUgbWVudSkgeworICAgICAgICAgICAgCisgICAgICAgIGZNZW51ID0gbWVudTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBNSXRlbSBoYW5kbGVDcmVhdGUoSk1lbnVJdGVtIGl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGEgbWVudURhdGEpIHsKKworICAgICAgICBpZiAobWVudURhdGEuaGFzU2hvcnRjdXQoKSkgeworICAgICAgICAgICAgS2V5U3Ryb2tlIGtzID0gS2V5U3Ryb2tlLmdldEtleVN0cm9rZShtZW51RGF0YS5nZXRTaG9ydGN1dEtleUNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnQuQ1RSTF9NQVNLKTsKKyAgICAgICAgICAgIGl0ZW0uc2V0QWNjZWxlcmF0b3Ioa3MpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTWVudS5hZGQoaXRlbSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFN3aW5nTUl0ZW0oaXRlbSk7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgSk1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSksIG1lbnVEYXRhKTsKKyAgICB9ICAgICAgICAKKworICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVDcmVhdGUobmV3IEpDaGVja0JveE1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSksIG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgY3JlYXRlU2VwYXJhdG9yKCkgeworICAgICAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBKU2VwYXJhdG9yKCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmNlNDJlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0KKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIGEgU3dpbmctYmFzZWQgdXNlciBpbnRlcmZhY2UgZm9yIGEgVGV4dFBhbmVsLgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9EZWNsYXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9EZWNsYXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxNWZjNWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgdGhlIGZpcnN0IGZvdXIgcGFyYWdyYXBocyBvZiB0aGUgRGVjbGFyYXRpb24KKyAqIG9mIEluZGVwZW5kZW5jZSwgYXMgYm90aCBzdHlsZWQgYW5kIHVuc3R5bGVkIHRleHQuICBUaGUgdmlld3MKKyAqIGV4cHJlc3NlZCB0aGVyZWluIGFyZSBub3QgbmVjZXNzYXJpbHkgdGhvc2Ugb2YgdGhlIHByb2dyYW1tZXIgb3Igb2YKKyAqIGhpcy9oZXIgZW1wbG95ZXIuICBObyBjcml0aWNpc20gb2YgYW55IG1vbmFyY2h5LCBvbGlnYXJjaHksIGRpY3RhdG9yc2hpcCwKKyAqIGF1dG9jcmFjeSwgcGx1dG9jcmFjeSwgdGhlb2NyYWN5LCBhbmFyY2hpc3QgdGVycml0b3J5LCBjb2xvbmlhbCBwb3dlciwKKyAqIG9yIGFueSBvdGhlciBub25kZW1vY3JhdGljIGZvcm0gb2YgZ292ZXJubWVudCBpcyBpbnRlbmRlZC4gIFRoaXMgZG9jdW1lbnQKKyAqIGlzIHByb3ZpZGVkICJhcy1pcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzc2VkIG9yIGltcGxpZWQuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBEZWNsYXJhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGZnRGVjbGFyYXRpb25TdHIgPSAiSW4gQ29uZ3Jlc3MsIEp1bHkgNCwgMTc3NiwgVEhFIFVOQU5JTU9VUyBERUNMQVJBVElPTiBPRiBUSEUgVEhJUlRFRU4gVU5JVEVEIFNUQVRFUyBPRiBBTUVSSUNBXG4iICsKKyAgICAgICAgIlxuIiArCisgICAgICAgICJXaGVuIGluIHRoZSBDb3Vyc2Ugb2YgaHVtYW4gRXZlbnRzLCBpdCBiZWNvbWVzIG5lY2Vzc2FyeSBmb3Igb25lIFBlb3BsZSB0byBkaXNzb2x2ZSB0aGUgUG9saXRpY2FsIEJhbmRzIHdoaWNoIGhhdmUgY29ubmVjdGVkIHRoZW0gd2l0aCBhbm90aGVyLCBhbmQgdG8gYXNzdW1lIGFtb25nIHRoZSBQb3dlcnMgb2YgdGhlIEVhcnRoLCB0aGUgc2VwYXJhdGUgYW5kIGVxdWFsIFN0YXRpb24gdG8gd2hpY2ggdGhlIExhd3Mgb2YgTmF0dXJlIGFuZCBvZiBOYXR1cmUncyBHb2QgZW50aXRsZSB0aGVtLCBhIGRlY2VudCBSZXNwZWN0IHRvIHRoZSBPcGluaW9ucyBvZiBNYW5raW5kIHJlcXVpcmVzIHRoYXQgdGhleSBzaG91bGQgZGVjbGFyZSB0aGUgY2F1c2VzIHdoaWNoIGltcGVsIHRoZW0gdG8gdGhlIFNlcGFyYXRpb24uXG4iICsKKyAgICAgICAgIlxuIiArCisgICAgICAgICJXZSBob2xkIHRoZXNlIFRydXRocyB0byBiZSBzZWxmLWV2aWRlbnQsIHRoYXQgYWxsIE1lbiBhcmUgY3JlYXRlZCBlcXVhbCwgdGhhdCB0aGV5IGFyZSBlbmRvd2VkIGJ5IHRoZWlyIENyZWF0b3Igd2l0aCBjZXJ0YWluIHVuYWxpZW5hYmxlIFJpZ2h0cywgdGhhdCBhbW9uZyB0aGVzZSBhcmUgTGlmZSwgTGliZXJ0eSwgYW5kIHRoZSBQdXJzdWl0IG9mIEhhcHBpbmVzcy5cbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIlRoYXQgdG8gc2VjdXJlIHRoZXNlIFJpZ2h0cywgR292ZXJubWVudHMgYXJlIGluc3RpdHV0ZWQgYW1vbmcgTWVuLCBkZXJpdmluZyB0aGVpciBqdXN0IFBvd2VycyBmcm9tIHRoZSBDb25zZW50IG9mIHRoZSBHb3Zlcm5lZCwgdGhhdCB3aGVuZXZlciBhbnkgRm9ybSBvZiBHb3Zlcm5tZW50IGJlY29tZXMgZGVzdHJ1Y3RpdmUgb2YgdGhlc2UgRW5kcywgaXQgaXMgdGhlIFJpZ2h0IG9mIHRoZSBQZW9wbGUgdG8gYWx0ZXIgb3IgdG8gYWJvbGlzaCBpdCwgYW5kIHRvIGluc3RpdHV0ZSBuZXcgR292ZXJubWVudCwgbGF5aW5nIGl0cyBGb3VuZGF0aW9uIG9uIHN1Y2ggUHJpbmNpcGxlcywgYW5kIG9yZ2FuaXppbmcgaXRzIFBvd2VycyBpbiBzdWNoIEZvcm0sIGFzIHRvIHRoZW0gc2hhbGwgc2VlbSBtb3N0IGxpa2VseSB0byBlZmZlY3QgdGhlaXIgU2FmZXR5IGFuZCBIYXBwaW5lc3MuIFBydWRlbmNlLCBpbmRlZWQsIHdpbGwgZGljdGF0ZSB0aGF0IEdvdmVybm1lbnRzIGxvbmcgZXN0YWJsaXNoZWQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGZvciBsaWdodCBhbmQgdHJhbnNpZW50IENhdXNlczsgYW5kIGFjY29yZGluZ2x5IGFsbCBFeHBlcmllbmNlIGhhdGggc2hld24sIHRoYXQgTWFua2luZCBhcmUgbW9yZSBkaXNwb3NlZCB0byBzdWZmZXIsIHdoaWxlIEV2aWxzIGFyZSBzdWZmZXJhYmxlLCB0aGFuIHRvIHJpZ2h0IHRoZW1zZWx2ZXMgYnkgYWJvbGlzaGluZyB0aGUgRm9ybXMgdG8gd2hpY2ggdGhleSBhcmUgYWNjdXN0b21lZC4gQnV0IHdoZW4gYSBsb25nIFRyYWluIG9mIEFidXNlcyBhbmQgVXN1cnBhdGlvbnMsIHB1cnN1aW5nIGludmFyaWFibHkgdGhlIHNhbWUgT2JqZWN0LCBldmluY2VzIGEgRGVzaWduIHRvIHJlZHVjZSB0aGVtIHVuZGVyIGFic29sdXRlIERlc3BvdGlzbSwgaXQgaXMgdGhlaXIgUmlnaHQsIGl0IGlzIHRoZWlyIER1dHksIHRvIHRocm93IG9mZiBzdWNoIEdvdmVybm1lbnQsIGFuZCB0byBwcm92aWRlIG5ldyBHdWFyZHMgZm9yIHRoZWlyIGZ1dHVyZSBTZWN1cml0eS5cbiIgKworICAgICAgICAiXG4iOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNQ29uc3RUZXh0IGZnRGVjbGFyYXRpb24gPSBuZXcgU3R5bGVkVGV4dChmZ0RlY2xhcmF0aW9uU3RyLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0lUZXN0VGV4dFBhbmVsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0lUZXN0VGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDM4NmI1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvSVRlc3RUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0OworCitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkdyaWRMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuVGV4dEZyYW1lOworCitwdWJsaWMgY2xhc3MgSVRlc3RUZXh0UGFuZWwgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBmZ09wQ291bnQgPSAwOworCisgICAgcHJpdmF0ZSBUZXN0VGV4dFBhbmVsIGZUZXN0OworICAgIAorICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgRnJhbWUgZlRleHRGcmFtZTsKKyAgICBwcml2YXRlIENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgQnV0dG9uIGZFeGVyc2l6ZSwgZlN0cmVzc1Rlc3QsIGZSZXNpemU7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgRGF0ZSBzdGFydERhdGUgPSBuZXcgRGF0ZSgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgiSVRleHRUZXN0UGFuZWwiKTsKKyAgICAgICAgICAgIFRleHRGcmFtZSBmcmFtZSA9IG5ldyBUZXh0RnJhbWUobnVsbCwgIkludGVyYWN0aXZlIFRlc3QiLCBjbGlwYm9hcmQpOworICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGZyYW1lLmdldFRleHRQYW5lbCgpOworCisgICAgICAgICAgICBuZXcgSVRlc3RUZXh0UGFuZWwocGFuZWwsIGZyYW1lLCBjbGlwYm9hcmQpLnNob3coKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQgdGltZTogIiArIGRmLmZvcm1hdChzdGFydERhdGUpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5kIFRpbWU6ICIgKyBkZi5mb3JtYXQobmV3IERhdGUoKSkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPcCBjb3VudDogIiArIGZnT3BDb3VudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgSVRlc3RUZXh0UGFuZWwoTVRleHRQYW5lbCBwYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBmVGV4dFBhbmVsID0gcGFuZWw7CisgICAgICAgIGZUZXN0ID0gbmV3IFRlc3RUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIGZDbGlwYm9hcmQgPSBjbGlwYm9hcmQ7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDAsIDEpKTsKKworICAgICAgICBmVGV4dEZyYW1lID0gZnJhbWU7CisgICAgICAgIGZUZXh0RnJhbWUuc2V0U2l6ZSgzNTAsIDUwMCk7CisgICAgICAgIGZUZXh0RnJhbWUuc2hvdygpOworCisgICAgICAgIC8vIGluaXRpYWxpemUgVUk6CisgICAgICAgIGZFeGVyc2l6ZSA9IG5ldyBCdXR0b24oIkV4ZXJjaXNlIik7CisgICAgICAgIGZFeGVyc2l6ZS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkKGZFeGVyc2l6ZSk7CisKKyAgICAgICAgZlN0cmVzc1Rlc3QgPSBuZXcgQnV0dG9uKCJTdHJlc3MgVGVzdCIpOworICAgICAgICBmU3RyZXNzVGVzdC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkKGZTdHJlc3NUZXN0KTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dBY3RpdmF0ZWQoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIC8vYWN0aXZhdGVUZXh0RnJhbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBzZXRTaXplKDI4MCwgMTUwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYWN0aXZhdGVUZXh0RnJhbWUoKSB7CisKKyAgICAgICAgZlRleHRGcmFtZS50b0Zyb250KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGV2ZW50LmdldFNvdXJjZSgpOworICAgICAgICBhY3RpdmF0ZVRleHRGcmFtZSgpOworICAgICAgICBEYXRlIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7CisgICAgICAgIGJvb2xlYW4gZXhpdGVkTm9ybWFsbHkgPSBmYWxzZTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmRXhlcnNpemUpIHsKKyAgICAgICAgICAgICAgICBmVGVzdC5pbmNSYW5kU2VlZCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wZXJhdGlvbihmVGV4dEZyYW1lLCBmQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlN0cmVzc1Rlc3QpIHsKKyAgICAgICAgICAgICAgICBmVGVzdC5pbmNSYW5kU2VlZCgpOworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wZXJhdGlvbihmVGV4dEZyYW1lLCBmQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleGl0ZWROb3JtYWxseSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAoIWV4aXRlZE5vcm1hbGx5KSB7CisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQgdGltZTogIiArIGRmLmZvcm1hdChzdGFydERhdGUpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuZCBUaW1lOiAiICsgZGYuZm9ybWF0KG5ldyBEYXRlKCkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhbmQgc2VlZDogIiArIGZUZXN0LmdldFJhbmRTZWVkKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT3AgY291bnQ6ICIgKyBmZ09wQ291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHJhbmRvbSBvcGVyYXRpb24gb24gdGhlIE1UZXh0UGFuZWwuICBGcmFtZSBjYW4KKyAgICAgKiBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPUF9DT1VOVCA9IDE1OworCisgICAgcHVibGljIHZvaWQgc2VsZWN0T3BlcmF0aW9uKEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgZkNsaXBib2FyZCkgeworCisgICAgICAgIGludCBvcCA9IGZUZXN0LnJhbmRJbnQoT1BfQ09VTlQpOworCisgICAgICAgIHN3aXRjaCAob3ApIHsKKworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGZUZXN0Ll90ZXN0U2V0U2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBmVGVzdC5fdGVzdE1vZGlmaWNhdGlvbnMoVGVzdFRleHRQYW5lbC5NT0RfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGZUZXN0Ll90ZXN0RWRpdE1lbnVPcGVyYXRpb25zKGZDbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RNb2RGbGFnKGZUZXh0UGFuZWwuZ2V0Q29tbWFuZExvZ1NpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICBmVGVzdC5hcHBseUNoYXJhY3RlclN0eWxlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgICAgICBmVGVzdC5hcHBseVBhcmFncmFwaFN0eWxlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICBmVGVzdC50eXBlS2V5cygpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAgIGZUZXN0LnNlbGVjdFRleHQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICBmVGVzdC51bmRvUmVkbygpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgICAgIC8vaWYgKGZyYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyAgICBmVGVzdC5yZXNpemVGcmFtZShmcmFtZSk7CisgICAgICAgICAgICAgICAgLy8gICAgYnJlYWs7CisgICAgICAgICAgICAgICAgLy99CisKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgZlRlc3QuYXBwbHlLZXlSZW1hcCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgICAgIGZUZXN0Ll90ZXN0Q29tbWFuZExvZ0NvbnRyb2woKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk9QX0NPVU5UIGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgICAgIGZnT3BDb3VudCsrOworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L1Rlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3YjViODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L1Rlc3RUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDg0MiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZE93bmVyOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5TdHJpbmdTZWxlY3Rpb247CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlRyYW5zZmVyYWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleVJlbWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleUV2ZW50Rm9yd2FyZGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CisKKy8vIE5vdGU6ICB0aGlzIHVzZWQgdG8gYmUgYSBUZXN0Rm13ayB0ZXN0LiAgSWYgeW91IGFkZAorLy8gbW9yZSB0ZXN0cyB0byBpdCwgYmUgc3VyZSB0byBhZGQgdGhlbSB0byAKKy8vIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0LkZtd2tUZXN0VGV4dFBhbmVsLnRlc3QoKSAtCisvLyBvdGhlcndpc2UgdGhleSB3b24ndCBnZXQgcnVuIQorCitwdWJsaWMgY2xhc3MgVGVzdFRleHRQYW5lbCAvKmV4dGVuZHMgVGVzdEZtd2sqLyB7CisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFRlc3RMaXN0ZW5lciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IE5PX1dBWSA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IERFRklOSVRFTFkgPSAxOworICAgICAgICBwcml2YXRlIGludCBNQVlCRSA9IDI7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGZpbmFsIGludFtdIHN0YXR1czsKKyAgICAgICAgCisgICAgICAgIFRlc3RMaXN0ZW5lcihNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9MQVNUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUICsgMTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGFsbG93QWxsKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgcmVmdXNlQWxsKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdGF0dXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzdGF0dXNbaV0gPSBOT19XQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYWxsb3dBbGwoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpXSA9IE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGV4cGVjdEV2ZW50KGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBpbmRleCA9IHR5cGUgLSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUOworICAgICAgICAgICAgc3RhdHVzW2luZGV4XSA9IERFRklOSVRFTFk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYWxsb3dFdmVudChpbnQgdHlwZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gdHlwZSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBzdGF0dXNbaW5kZXhdID0gTUFZQkU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCkgeworICAgICAgICAgICAgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGZhbHNlLCAwLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGludCBpdGVyYXRpb25Db3VudCwgYm9vbGVhbiBleHApIHsKKyAgICAgICAgICAgIGFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyh0cnVlLCBpdGVyYXRpb25Db3VudCwgZXhwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhib29sZWFuIGxvZ0RldGFpbHMsIGludCBpdGVyYXRpb25Db3VudCwgYm9vbGVhbiBleHApIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBlID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdGF0dXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzW2ldID09IERFRklOSVRFTFkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvZ0RldGFpbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UoIkV4cGVjdGluZyBldmVudCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaStUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dNZXNzYWdlKCJpdGVyYXRpb25Db3VudD0iK2l0ZXJhdGlvbkNvdW50KyI7ICBleHBleHRpbmc9IitleHApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGUgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlNvbWUgZXZlbnRzIHBlbmRpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluZGV4ID0gZXZlbnQuZ2V0SUQoKSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBpZiAoc3RhdHVzW2luZGV4XSA9PSBOT19XQVkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVW5leHBlY3RlZCBldmVudDogIiArIGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXR1c1tpbmRleF0gPT0gREVGSU5JVEVMWSkgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpbmRleF0gPSBOT19XQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNUUklOR19DT05URU5UID0gIlNvbWUgY29udGVudCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRFU1RfSVRFUlMgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTUNvbnN0VGV4dCBNT0RfVEVYVCA9CisgICAgICAgICAgICAgICAgbmV3IFN0eWxlZFRleHQoIlN0eWxlZCIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIHByaXZhdGUgVGVzdExpc3RlbmVyIGZMaXN0ZW5lciA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZlJhbmRTZWVkID0gMDsKKyAgICBwcml2YXRlIFJhbmRvbSByYW5kOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSUdfQ09NTUFORF9MT0dfU0laRSA9IDQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTUFMTF9DT01NQU5EX0xPR19TSVpFID0gODsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXJbXSBwYXJhTW9kcyA9IHsKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfTEVBRElORykpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRCksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTCksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUiksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZVNldChUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTikpCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUxFQ1QgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfQ0FSRVRfUE9TID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VUX1NUQVJUID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0VORCA9IDM7CisKKyAgICAvLyB1c2luZyBib3RoIHN0eWxlcyBvZiBhZGQgbW9kaWZpZXI6IEF0dHJpYnV0ZU1hcCBhbmQKKyAgICAvLyBrZXktdmFsdWUsIGp1c3QgZm9yIHZhcmlldHkuLi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyW10gY2hhck1vZHMgPSB7CisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvci5ncmVlbiksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKS5hZGRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoNikpKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJEaWFsb2ciKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZVNldCgKKyAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCB9KSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuSURFTlRJVFkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIFRZUEVEX0NIQVJTID0gbmV3IGNoYXJbMTI4IC0gJyAnICsgM107CisgICAgc3RhdGljIHsKKyAgICAgICAgVFlQRURfQ0hBUlNbMF0gPSA4OyAvLyBiYWNrc3BhY2UKKyAgICAgICAgVFlQRURfQ0hBUlNbMV0gPSAnXHQnOworICAgICAgICBUWVBFRF9DSEFSU1syXSA9ICdcbic7CisgICAgICAgIGZvciAoaW50IGk9MzsgaSA8IFRZUEVEX0NIQVJTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBUWVBFRF9DSEFSU1tpXSA9IChjaGFyKSAoJyAnICsgaSAtIDMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFRlc3RUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgZkNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoIlRlc3RUZXh0UGFuZWwiKTsKKyAgICAgICAgaW5jUmFuZFNlZWQoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCByZXBvcnRFcnJvcihTdHJpbmcgbWVzc2FnZSkgeworICAgIAorICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4obWVzc2FnZSk7CisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKG1lc3NhZ2UpOworICAgICAgICAvL3N1cGVyLmVycmxuKG1lc3NhZ2UpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBsb2dNZXNzYWdlKFN0cmluZyBtZXNzYWdlKSB7CisgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKKyAgICAgICAgLy9zdXBlci5sb2dNZXNzYWdlKG1lc3NhZ2UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRleHRQYW5lbChwYW5lbCk7CisgICAgfQorICAgIAorICAgIHZvaWQgaW5jUmFuZFNlZWQoKSB7CisgICAgICAgIAorICAgICAgICByYW5kID0gbmV3IFJhbmRvbSgrK2ZSYW5kU2VlZCk7CisgICAgfQorICAgIAorICAgIGludCBnZXRSYW5kU2VlZCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmUmFuZFNlZWQ7CisgICAgfQorCisgICAgaW50IHJhbmRJbnQoaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIHJhbmRJbnQoMCwgbGltaXQpOworICAgIH0KKworICAgIGludCByYW5kSW50KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGlzIDAtbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RhcnQgKyAoTWF0aC5hYnMocmFuZC5uZXh0SW50KCkpJShsaW1pdC1zdGFydCkpIDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBNQ29uc3RUZXh0IHRleHQxID0gbmV3IFN0eWxlZFRleHQoIlRlc3QgY29udGVudHMuIDEyMzRcbkhvdyBhYm91dCBpdD8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0MiA9IG5ldyBTdHlsZWRUZXh0KCJBbm90aGVyIHRlc3Qgc3RyaW5nLiIsIGJvbGQpOworCisgICAgICAgIF90ZXN0V2l0aFRleHQodGV4dDEpOworICAgICAgICBfdGVzdFdpdGhUZXh0KHRleHQyKTsKKyAgICAgICAgX3Rlc3RXaXRoVGV4dChuZXcgU3R5bGVkVGV4dCgpKTsKKworICAgICAgICBTdHlsZWRUZXh0IGJpZzEgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCA1MDsgaSsrKSB7CisgICAgICAgICAgICBiaWcxLmFwcGVuZCh0ZXh0MSk7CisgICAgICAgIH0KKworICAgICAgICBfdGVzdFdpdGhUZXh0KGJpZzEpOworICAgICAgICBTdHlsZWRUZXh0IGJpZzIgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0MSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDgwOyBpKyspIHsKKyAgICAgICAgICAgIGJpZzIuYXBwZW5kKHRleHQyKTsKKyAgICAgICAgfQorCisgICAgICAgIF90ZXN0V2l0aFRleHQoYmlnMik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCBwYW5lbCkgeworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHBhbmVsOworICAgICAgICBmTGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKHBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0V2l0aFRleHQoTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgc2V0VGV4dFBhbmVsKG5ldyBUZXh0UGFuZWwodGV4dCwgZkNsaXBib2FyZCkpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IFRFU1RfSVRFUlM7IGkrKykgeworICAgICAgICAgICAgX3Rlc3RTZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgIF90ZXN0TW9kaWZpY2F0aW9ucyhNT0RfVEVYVCwgdHJ1ZSk7CisgICAgICAgICAgICBfdGVzdEVkaXRNZW51T3BlcmF0aW9ucyhmQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgIF90ZXN0TW9kRmxhZyhmVGV4dFBhbmVsLmdldENvbW1hbmRMb2dTaXplKCkpOworICAgICAgICAgICAgX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0U2VsZWN0aW9uKGludCBmdW5jdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGFTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgYUxpbWl0KSB7CisKKyAgICAgICAgaW50IG9sZFN0YXJ0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbnQgb2xkTGltaXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpOworCisgICAgICAgIGZpbmFsIGludCBsZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgCisgICAgICAgIGludCBzdGFydCA9IGFTdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gYUxpbWl0OworICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCkgeworICAgICAgICAgICAgc3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBzdGFydCA9IGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW1pdCA8IHN0YXJ0KSB7CisgICAgICAgICAgICBsaW1pdCA9IHN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbWl0ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBsaW1pdCA9IGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG9sZFN0YXJ0ICE9IHN0YXJ0IHx8IG9sZExpbWl0ICE9IGxpbWl0KSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKG9sZFN0YXJ0PT1vbGRMaW1pdCkgIT0gKHN0YXJ0PT1saW1pdCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9sZFN0YXJ0PT1vbGRMaW1pdCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaChmdW5jdGlvbikgeworICAgICAgICAgICAgY2FzZSBTRUxFQ1Q6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZWxlY3QoYVN0YXJ0LCBhTGltaXQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfQ0FSRVRfUE9TOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0Q2FyZXRQb3NpdGlvbihhU3RhcnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfU1RBUlQ6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRTZWxlY3Rpb25TdGFydChhU3RhcnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfRU5EOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0U2VsZWN0aW9uRW5kKGFMaW1pdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZnVuY3Rpb24iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzdGFydCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImdldFNlbGVjdGlvblN0YXJ0IGlzIGluY29ycmVjdCBhZnRlciBzZXQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSAhPSBsaW1pdCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImdldFNlbGVjdGlvbkVuZCBpcyBpbmNvcnJlY3QgYWZ0ZXIgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VMRUNULCBzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0Q2FyZXQoaW50IGNhcmV0UG9zKSB7CisKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VUX0NBUkVUX1BPUywgY2FyZXRQb3MsIGNhcmV0UG9zKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvblN0YXJ0KGludCBzZWxTdGFydCkgeworCisgICAgICAgIGludCBsaW1pdCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFVF9TVEFSVCwgc2VsU3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvbkVuZChpbnQgc2VsRW5kKSB7CisKKyAgICAgICAgaW50IHN0YXJ0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBfdGVzdFNlbGVjdGlvbihTRVRfRU5ELCBzdGFydCwgc2VsRW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdFNldFNlbGVjdGlvbigpIHsKKworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBpZiAodGV4dExlbmd0aCAhPSBmVGV4dFBhbmVsLmdldFRleHQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgcGFuZWwgbGVuZ3RoIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIHRleHRMZW5ndGggLyAyKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbih0ZXh0TGVuZ3RoIC8gMiwgdGV4dExlbmd0aCk7CisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgdGV4dExlbmd0aCk7CisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oLTEsIHRleHRMZW5ndGgrMSk7CisgICAgICAgIGlmICh0ZXh0TGVuZ3RoID4gMCkgeworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigwLCB0ZXh0TGVuZ3RoIC0gMSk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIDEpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGluY0Ftb3VudCA9IE1hdGgubWF4KDEsIHRleHRMZW5ndGgvNSk7CisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPD0gdGV4dExlbmd0aDsgaW5kZXggKz0gaW5jQW1vdW50KSB7CisKKyAgICAgICAgICAgIHNldEFuZFRlc3RDYXJldChpbmRleCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQodGV4dExlbmd0aC1pbmRleCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKHRleHRMZW5ndGgpOworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvblN0YXJ0KDApOworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbkVuZCh0ZXh0TGVuZ3RoLWluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRleHQgbXVzdCBiZSBlZGl0YWJsZSB0byBwYXNzIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdE1vZGlmaWNhdGlvbnMoTUNvbnN0VGV4dCBpbnNlcnRpb25UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHJlc3RvcmVPbGRUZXh0KSB7CisKKyAgICAgICAgTUNvbnN0VGV4dCBvbGRUZXh0ID0gbmV3IFN0eWxlZFRleHQoZlRleHRQYW5lbC5nZXRUZXh0KCkpOworICAgICAgICBmaW5hbCBpbnQgaW5zTGVuZ3RoID0gaW5zZXJ0aW9uVGV4dC5sZW5ndGgoKTsKKworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwuYXBwZW5kKGluc2VydGlvblRleHQpOworICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IG9sZFRleHQubGVuZ3RoKCkgKyBpbnNMZW5ndGgpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJBcHBlbmQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwuaW5zZXJ0KGluc2VydGlvblRleHQsIDApOworICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBpbnNMZW5ndGgpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJJbnNlcnQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRQYW5lbC5yZXBsYWNlUmFuZ2UoaW5zZXJ0aW9uVGV4dCwgaW5zTGVuZ3RoLCBpbnNMZW5ndGgrb2xkVGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gaW5zTGVuZ3RoKjIpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJSZXBsYWNlIGRpZG4ndCByZXN1bHQgaW4gY29ycmVjdCBzZWxlY3Rpb24iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSAhPSBpbnNMZW5ndGgqMikgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlJlcGxhY2UgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBpbnNMZW5ndGgqMykgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoInRleHRMZW5ndGggaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVzdG9yZU9sZFRleHQpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0VGV4dChvbGRUZXh0KTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gb2xkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJzZXRUZXh0IGRpZG4ndCByZXN1bHQgaW4gY29ycmVjdCBzZWxlY3Rpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImxlbmd0aCBpbmNvcnJlY3QgYWZ0ZXIgc2V0VGV4dCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgaXRlcmF0aW9uQ291bnQgPSAwOworICAgIHB1YmxpYyB2b2lkIF90ZXN0Q29tbWFuZExvZ0NvbnRyb2woKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBpdGVyYXRpb25Db3VudCsrOworICAgICAgICBib29sZWFuIGV4cCA9IGZhbHNlOworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkgfHwgQklHX0NPTU1BTkRfTE9HX1NJWkU9PTApIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZXhwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENvbW1hbmRMb2dTaXplKEJJR19DT01NQU5EX0xPR19TSVpFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuUmVkbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaXRlcmF0aW9uQ291bnQsIGV4cCk7CisgICAgICAgIC8vfQorICAgICAgICAvL2NhdGNoKEVycm9yIGUpIHsKKyAgICAgICAgLy8gICAgbG9nTWVzc2FnZSgiaXRlcmF0aW9uQ291bnQ9IitpdGVyYXRpb25Db3VudCsiOyAgZXhwZXh0aW5nPSIrZXhwKTsKKyAgICAgICAgLy8gICAgdGhyb3cgZTsKKyAgICAgICAgLy99CisKKyAgICAgICAgTUNvbnN0VGV4dCBpbnNUZXh0ID0gbmV3IFN0eWxlZFRleHQoIjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgZmluYWwgaW50IG9yaWdMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gb3JpZ0xlbmd0aCAvIDM7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFK3N0YXJ0OyBpKyspIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoaW5zVGV4dCwgaSk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBCSUdfQ09NTUFORF9MT0dfU0laRS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiQ29tbWFuZCBsb2cgaXMgdG9vIHNtYWxsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiQ29tbWFuZCBsb2cgaXMgdG9vIGxhcmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCAqIGluc1RleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCB3YXMgbm90IHJlc3RvcmVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBCSUdfQ09NTUFORF9MT0dfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoK0JJR19DT01NQU5EX0xPR19TSVpFKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZWRvIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJTaG91bGQgbm90IGJlIGFibGUgdG8gcmVkbyIpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisKKyAgICAgICAgZlRleHRQYW5lbC5zZXRDb21tYW5kTG9nU2l6ZShTTUFMTF9DT01NQU5EX0xPR19TSVpFKTsKKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5SZWRvIGFmdGVyIHNldENvbW1hbmRMb2dTaXplKHNtYWxsKSIpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgU01BTExfQ09NTUFORF9MT0dfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNob3VsZCBiZSBhYmxlIHRvIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNob3VsZCBub3QgYmUgYWJsZSB0byB1bmRvIGFmdGVyIHNldENvbW1hbmRMb2dTaXplKHNtYWxsKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJ3aHkgY2FuJ3QgdGhpcyByZWRvPz8/Iik7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbC5yZWRvKCk7CisKKyAgICAgICAgZlRleHRQYW5lbC5jbGVhckNvbW1hbmRMb2coKTsKKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5VbmRvKCkgfHwgZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyB3YXNuJ3QgY2xlYXJlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXQsIGNvcHksIHBhc3RlLCB1bmRvLCByZWRvLCBjbGVhciwgY2FuVW5kbywgY2FuUmVkby4KKyAgICAgKiBUZXh0IG11c3QgYmUgZWRpdGFibGUgdG8gcGFzcyB0aGlzIHRlc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RFZGl0TWVudU9wZXJhdGlvbnMoQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBib2FyZCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB0ZXN0IHBhc3RlIGFuZCB1bmRvIC8gcmVkbworICAgICAgICAgICAgVHJhbnNmZXJhYmxlIHRyID0gbmV3IFN0cmluZ1NlbGVjdGlvbihTVFJJTkdfQ09OVEVOVCk7CisgICAgICAgICAgICBjbGlwYm9hcmQuc2V0Q29udGVudHModHIsIG5ldyBDbGlwYm9hcmRPd25lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBsb3N0T3duZXJzaGlwKENsaXBib2FyZCBjLCBUcmFuc2ZlcmFibGUgdCkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNsaXBib2FyZE5vdEVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTVRleHRQYW5lbCBkb2Vzbid0IHJlY29nbml6ZSBzdHJpbmcgY29udGVudC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSk7CisgICAgICAgICAgICBpbnQgb2xkTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoICsgU1RSSU5HX0NPTlRFTlQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggaXMgd3JvbmcgYWZ0ZXIgcGFzdGUuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuVW5kbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkxlbmd0aCBpcyB3cm9uZyBhZnRlciB1bmRvIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuUmVkbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gc2hvdWxkIGJlIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZExlbmd0aCArIFNUUklOR19DT05URU5ULmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgbGVuZ3RoIGlzIHdyb25nIGFmdGVyIHJlZG8uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgb3JpZ0xlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdEFsbCgpOworICAgICAgICBmVGV4dFBhbmVsLmNsZWFyKCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIGlzIG5vbnplcm8gYWZ0ZXIgY2xlYXIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuVW5kbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIk9sZCB0ZXh0IG5vdCByZXN0b3JlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9yaWdMZW5ndGggPiAwKSB7CisKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0KDAsIDEpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jdXQoKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIGN1dCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5wYXN0ZSgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIHBhc3RlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdCgwLCBvcmlnTGVuZ3RoKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuY29weSgpOworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKDApOworICAgICAgICAgICAgZlRleHRQYW5lbC5wYXN0ZSgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IDIqb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgcGFzdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0TW9kRmxhZyhmaW5hbCBpbnQgZGVwdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJQYW5lbCBjYW5ub3QgdW5kbyBhdCB2YWxpZCBkZXB0aC4gIERlcHRoPSIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRNb2RpZmllZChtb2RpZmllZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayB0aGF0IGFsbCBtb2QgZmxhZ3MgYXJlIGZhbHNlOgorICAgICAgICBpZiAoZlRleHRQYW5lbC5pc01vZGlmaWVkKCkgIT0gbW9kaWZpZWQpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJpc01vZGlmaWVkIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKSAhPSBtb2RpZmllZCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJpc01vZGlmaWVkIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIDxjb2RlPmRlcHRoPC9jb2RlPiBtb2RpZmljYXRpb25zIHRvIHRoZSB0ZXh0IGluIHRleHRmVGV4dFBhbmVsLgorICAgICAqIFNldCB0aGUgbW9kaWZpZWQgZmxhZyBvbiBlYWNoIG9wZXJhdGlvbiwgYW5kIHRoZW4gcmV0cmlldmUgaXRzCisgICAgICogdmFsdWUuICBGaW5hbGx5LCB1bmRvIHRoZSBtb2RpZmljYXRpb25zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0TW9kRmxhZyhmaW5hbCBpbnQgZGVwdGgpIHsKKworICAgICAgICBmaW5hbCBpbnQgb2xkTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoTU9EX1RFWFQsIDApOworICAgICAgICB9CisKKyAgICAgICAgc2V0QW5kVGVzdE1vZEZsYWcoZGVwdGgsIGZhbHNlKTsKKyAgICAgICAgc2V0QW5kVGVzdE1vZEZsYWcoZGVwdGgsIHRydWUpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGRlcHRoOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZExlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlVuZG8gZGlkIG5vdCByZXN0b3JlIG9sZCB0ZXh0LiIpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBhcHBseUNoYXJhY3RlclN0eWxlKCkgeworCisgICAgICAgIFN0eWxlTW9kaWZpZXIgc3RNb2QgPSBjaGFyTW9kc1tyYW5kSW50KGNoYXJNb2RzLmxlbmd0aCldOworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihzdE1vZCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisKKyAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgU3R5bGVNb2RpZmllciBzdE1vZCA9IHBhcmFNb2RzW3JhbmRJbnQocGFyYU1vZHMubGVuZ3RoKV07CisgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihzdE1vZCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisgICAgdm9pZCBhcHBseUtleVJlbWFwKCkgeworCisgICAgICAgIGZMaXN0ZW5lci5yZWZ1c2VBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LktFWVJFTUFQX0NIQU5HRUQpOworICAgICAgICBpbnQgb3AgPSByYW5kSW50KDUpOworICAgICAgICBzd2l0Y2ggKG9wKSB7CisKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldEFyYWJpY1RyYW5zbGl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0SGVicmV3VHJhbnNsaXRlcmF0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIC8vZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRUaGFpS2V0bWFuZWUoKSk7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiSW52YWxpZCBvcGVyYXRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2l6ZUZyYW1lKEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCk7CisgICAgICAgIGludCB3ZCA9IHJhbmRJbnQoNTAsIDEwMDApOworICAgICAgICBpbnQgaHQgPSByYW5kSW50KDIwLCA4MDApOworCisgICAgICAgIGZyYW1lLnNldFNpemUod2QsIGh0KTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisgICAgdm9pZCBzZWxlY3RUZXh0KCkgeworCisgICAgICAgIGludCBzZWxTdGFydCA9IHJhbmRJbnQoLTEwLCBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSk7CisgICAgICAgIGludCBzZWxMaW1pdCA9IHJhbmRJbnQoMCwgZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgKyAxMCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFTEVDVCwgc2VsU3RhcnQsIHNlbExpbWl0KTsKKyAgICB9CisKKyAgICB2b2lkIHVuZG9SZWRvKCkgeworCisgICAgICAgIGZpbmFsIGludCBvcENvdW50ID0gcmFuZEludCgtMTAsIDE1KTsKKworICAgICAgICBmb3IgKGludCBpPW9wQ291bnQ7IGkgPD0gMDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBvcENvdW50OyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgdHlwZUtleXMoKSB7CisKKyAgICAgICAgZmluYWwgaW50IGtleUNvdW50ID0gcmFuZEludCgxLCAxMDApOworICAgICAgICBUZXh0UGFuZWwgdGV4dFBhbmVsID0gKFRleHRQYW5lbCkgZlRleHRQYW5lbDsKKyAgICAgICAgCisgICAgICAgIEtleUV2ZW50Rm9yd2FyZGVyIGZvcndhcmRlciA9IG5ldyBLZXlFdmVudEZvcndhcmRlcih0ZXh0UGFuZWwpOworICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpKSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBrZXlDb3VudDsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIHR5cGVkQ2hhciA9IFRZUEVEX0NIQVJTW3JhbmRJbnQoVFlQRURfQ0hBUlMubGVuZ3RoKV07CisgICAgICAgICAgICBLZXlFdmVudCBldmVudCA9IG5ldyBLZXlFdmVudCh0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlFdmVudC5LRVlfVFlQRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUV2ZW50LlZLX1VOREVGSU5FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkQ2hhcik7CisgICAgICAgICAgICBpZiAodHlwZWRDaGFyID09IDggfHwgdHlwZWRDaGFyID09IDB4N2YpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgLy90cnkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaSwgZmFsc2UpOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICAvL2NhdGNoKEVycm9yIGUpIHsKKyAgICAgICAgICAgIC8vICAgIGxvZ01lc3NhZ2UoImk9IitpKyI7IHR5cGVkQ2hhcj0iK0ludGVnZXIudG9IZXhTdHJpbmcodHlwZWRDaGFyKSk7CisgICAgICAgICAgICAvLyAgICB0aHJvdyBlOworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVHlwaW5nUGVyZlRlc3QuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVHlwaW5nUGVyZlRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDQzZWIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjM3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5LZXlFdmVudEZvcndhcmRlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW87CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlRleHREb2N1bWVudDsKKworcHVibGljIGNsYXNzIFR5cGluZ1BlcmZUZXN0IGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRleHRGcmFtZSBmVGV4dEZyYW1lOworICAgIHByaXZhdGUgS2V5RXZlbnRGb3J3YXJkZXIgZktleUV2ZW50Rm9yd2FyZGVyOworICAgIHByaXZhdGUgUHJpbnRXcml0ZXIgZk91dDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBmZ0F0U3RhcnRDb21tYW5kID0gIkluc2VydCBhdCBzdGFydCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQXRFbmRDb21tYW5kID0gIkluc2VydCBhdCBlbmQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBmZ0Z3ZERlbGV0ZSA9ICJGb3J3YXJkIGRlbGV0ZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQmFja3NwYWNlID0gIkJhY2tzcGFjZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQXRDdXJyZW50UG9zQ29tbWFuZCA9ICJJbnNlcnQgYXQgY3VycmVudCBwb3NpdGlvbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnTG90c09mVGV4dENvbW1hbmQgPSAiSW5zZXJ0IGEgbG90IG9mIHRleHQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVTQUdFID0gIlVzYWdlOiBqYXZhIGNvbS5pYm0ucmljaHRleHQudGVzdC5UeXBpbmdQZXJmVGVzdCBbZmlsZV0gWy1pbnNlcnRpb25UZXh0IHRleHRdIjsKKyAgICBwcml2YXRlIGNoYXJbXSBmSW5zVGV4dDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gbm90IHVzZWQgT3V0cHV0U3RyZWFtIG91dFN0cmVhbSA9IG51bGw7CisgICAgICAgIFByaW50V3JpdGVyIHdyaXRlciA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBEZWNsYXJhdGlvbi5mZ0RlY2xhcmF0aW9uOworICAgICAgICBjaGFyW10gaW5zVGV4dCA9ICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiBUaGUgZW5kLiAiLnRvQ2hhckFycmF5KCk7CisgICAgICAgIAorICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICB3aGlsZSAoaW5kZXggPCBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGFyZ3NbaW5kZXhdLmVxdWFscygiLWluc2VydGlvblRleHQiKSkgeworICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVU0FHRSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluc1RleHQgPSBhcmdzW2luZGV4KytdLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgdHJ5IE1Db25zdFRleHQgZmlyc3QsIHRoZW4gcGxhaW4gdGV4dC4KKyAgICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQgZG9jID0gRWRpdERlbW8uZ2V0RG9jdW1lbnRGcm9tRmlsZShuZXcgRmlsZShhcmdzW2luZGV4KytdKSk7CisgICAgICAgICAgICAgICAgaWYgKGRvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3Qgb3BlbiBmaWxlICIrYXJnc1tpbmRleC0xXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHQgPSBkb2MuZ2V0VGV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoaW5kZXggIT0gYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVU0FHRSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG5ldyBUeXBpbmdQZXJmVGVzdCh3cml0ZXIsIHRleHQsIGluc1RleHQpOworICAgIH0KKworICAgIHB1YmxpYyBUeXBpbmdQZXJmVGVzdChQcmludFdyaXRlciBvdXQsIE1Db25zdFRleHQgdGV4dCwgY2hhcltdIGluc1RleHQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgZkluc1RleHQgPSBpbnNUZXh0OworICAgICAgICBmVGV4dEZyYW1lID0gbmV3IFRleHRGcmFtZSh0ZXh0LCAiIiwgbnVsbCk7CisgICAgICAgIFRleHRQYW5lbCB0ZXh0UGFuZWwgPSAoVGV4dFBhbmVsKSBmVGV4dEZyYW1lLmdldFRleHRQYW5lbCgpOworICAgICAgICBmS2V5RXZlbnRGb3J3YXJkZXIgPSBuZXcgS2V5RXZlbnRGb3J3YXJkZXIodGV4dFBhbmVsKTsKKyAgICAgICAgZk91dCA9IG91dDsKKworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgICAgIG91dC5wcmludGxuKCJUZXN0IGRhdGU6ICIgKyBkZi5mb3JtYXQobmV3IERhdGUoKSkpOworCisgICAgICAgIGZUZXh0RnJhbWUuc2V0U2l6ZSg1MDAsIDcwMCk7CisgICAgICAgIGZUZXh0RnJhbWUuc2hvdygpOworCisgICAgICAgIEZyYW1lIGYgPSBuZXcgRnJhbWUoIlR5cGluZyBQZXJmIFRlc3QiKTsKKyAgICAgICAgZi5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMCwgMSkpOworICAgICAgICBCdXR0b24gYjsKKy8qCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnQXRTdGFydENtZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnQXRFbmRDbWQpOworICAgICAgICBiLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmLmFkZChiKTsKKyovCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnQXRDdXJyZW50UG9zQ29tbWFuZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnTG90c09mVGV4dENvbW1hbmQpOworICAgICAgICBiLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmLmFkZChiKTsKKworICAgICAgICBiID0gbmV3IEJ1dHRvbihmZ0Z3ZERlbGV0ZSk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnQmFja3NwYWNlKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgZi5kb0xheW91dCgpOworICAgICAgICBXaW5kb3dBZGFwdGVyIGNsb3NlciA9IG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgZk91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZi5hZGRXaW5kb3dMaXN0ZW5lcihjbG9zZXIpOworICAgICAgICBmVGV4dEZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKGNsb3Nlcik7CisgICAgICAgIAorICAgICAgICBmLnNldFNpemUoMjAwLCA4MCk7CisgICAgICAgIGYuc2hvdygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnQXRDdXJyZW50UG9zQ29tbWFuZCkpIHsKKworICAgICAgICAgICAgICAgIGluc2VydEF0Q3VycmVudFBvcygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnTG90c09mVGV4dENvbW1hbmQpKSB7CisKKyAgICAgICAgICAgICAgICBpbnNlcnRBdEN1cnJlbnRQb3MoOCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChldnQuZ2V0QWN0aW9uQ29tbWFuZCgpLmVxdWFscyhmZ0Z3ZERlbGV0ZSkpIHsKKworICAgICAgICAgICAgICAgIGZvcndhcmREZWxldGUoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChldnQuZ2V0QWN0aW9uQ29tbWFuZCgpLmVxdWFscyhmZ0JhY2tzcGFjZSkpIHsKKworICAgICAgICAgICAgICAgIGJhY2tzcGFjZSgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbnNlcnRBdEN1cnJlbnRQb3MoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIGZUZXh0RnJhbWUudG9Gcm9udCgpOworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIEtleUV2ZW50LktFWV9UWVBFRCwgMCwgMCwgMCwgZkluc1RleHRbaV0pOworICAgICAgICAgICAgICAgIGZLZXlFdmVudEZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKworICAgICAgICBmT3V0LnByaW50bG4oIlRvdGFsIHRpbWU6ICIgKyB0aW1lKTsKKyAgICAgICAgZk91dC5wcmludGxuKCJNaWxsaXMgcGVyIGNoYXJhY3RlcjogIiArICh0aW1lIC8gKGZJbnNUZXh0Lmxlbmd0aCp0aW1lcykpKTsKKyAgICAgICAgZk91dC5mbHVzaCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBmb3J3YXJkRGVsZXRlKGZpbmFsIGludCB0aW1lcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBTeXN0ZW0uZ2MoKTsKKworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworCisgICAgICAgIGZvciAoaW50IHQ9MDsgdCA8IHRpbWVzOyB0KyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJbnNUZXh0Lmxlbmd0aDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICBLZXlFdmVudCBldmVudCA9IG5ldyBLZXlFdmVudChmVGV4dEZyYW1lLCAwLCAwLCAwLCBLZXlFdmVudC5WS19ERUxFVEUsICdcdTAwRkYnKTsKKyAgICAgICAgICAgICAgICBmS2V5RXZlbnRGb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisKKyAgICAgICAgZk91dC5wcmludGxuKCJUb3RhbCB0aW1lOiAiICsgdGltZSk7CisgICAgICAgIGZPdXQucHJpbnRsbigiTWlsbGlzIHBlciBjaGFyYWN0ZXI6ICIgKyAodGltZSAvIChmSW5zVGV4dC5sZW5ndGgqdGltZXMpKSk7CisgICAgICAgIGZPdXQuZmx1c2goKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYmFja3NwYWNlKGZpbmFsIGludCB0aW1lcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBTeXN0ZW0uZ2MoKTsKKworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworCisgICAgICAgIGZvciAoaW50IHQ9MDsgdCA8IHRpbWVzOyB0KyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJbnNUZXh0Lmxlbmd0aDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICBLZXlFdmVudCBldmVudCA9IG5ldyBLZXlFdmVudChmVGV4dEZyYW1lLCAwLCAwLCAwLCBLZXlFdmVudC5WS19CQUNLX1NQQUNFLCAnXHUwMDEwJyk7CisgICAgICAgICAgICAgICAgZktleUV2ZW50Rm9yd2FyZGVyLmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworCisgICAgICAgIGZPdXQucHJpbnRsbigiVG90YWwgdGltZTogIiArIHRpbWUpOworICAgICAgICBmT3V0LnByaW50bG4oIk1pbGxpcyBwZXIgY2hhcmFjdGVyOiAiICsgKHRpbWUgLyAoZkluc1RleHQubGVuZ3RoKnRpbWVzKSkpOworICAgICAgICBmT3V0LmZsdXNoKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L0Ztd2tUZXN0VGV4dFBhbmVsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ODliMTYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L0Ztd2tUZXN0VGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRlc3QuVGVzdFRleHRQYW5lbDsKKworcHVibGljIGZpbmFsIGNsYXNzIEZtd2tUZXN0VGV4dFBhbmVsIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgCisgICAgICAgIG5ldyBGbXdrVGVzdFRleHRQYW5lbCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBUVFAgdHRwOworICAgIAorICAgIHB1YmxpYyBGbXdrVGVzdFRleHRQYW5lbCgpIHsKKyAgICAKKyAgICAgICAgdHRwID0gbmV3IFRUUCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworICAgIAorICAgICAgICB0dHAudGVzdCgpOworICAgICAgICAvLyBJZiBUZXN0VGV4dFBhbmVsIGdldHMgbW9yZSB0ZXN0cywgYWRkIHRoZW0gaGVyZQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgVFRQIGV4dGVuZHMgVGVzdFRleHRQYW5lbCB7CisgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHJlcG9ydEVycm9yKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIAorICAgICAgICAgICAgZXJybG4obWVzc2FnZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGxvZ01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgCisgICAgICAgICAgICBsb2dsbihtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzVlZTUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiVGVzdEF0dHJpYnV0ZVNldCIsCisgICAgICAgICAgICAiVGVzdEF0dHJpYnV0ZU1hcCIsCisgICAgICAgICAgICAiVGVzdEZvcm1hdHRlciIsCisgICAgICAgICAgICAiVGVzdE1UZXh0IiwKKyAgICAgICAgICAgICJUZXN0UGFyYWdyYXBoU3R5bGVzIiwKKyAgICAgICAgICAgICJUZXN0TVRleHRTdHJlYW1pbmciLAorICAgICAgICAgICAgIkZtd2tUZXN0VGV4dFBhbmVsIiwKKyAgICAgICAgfSwKKyAgICAgICAgICAgICAgIlJpY2h0ZXh0IFVuaXQgVGVzdHMiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YzhiOGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVNYXAuamF2YQpAQCAtMCwwICsxLDQxMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisKKy8vIEphdmEyIGltcG9ydHMKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworCisKK3B1YmxpYyBjbGFzcyBUZXN0QXR0cmlidXRlTWFwIGV4dGVuZHMgVGVzdEZtd2sgIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKworICAgIC8vIFRoZXJlIGFyZSBKREsgMS4xIHZlcnNpb25zIG9mIEF0dHJpYnV0ZU1hcCBhbmQgQXR0cmlidXRlU2V0LgorICAgIC8vIFNvbWUgb2YgdGhlIHRlc3RzIGluIHRoaXMgY2xhc3MgcmVxdWlyZSBKYXZhIDIgQVBJJ3MuICBJIGhhdmUKKyAgICAvLyB0cmllZCB0byBpc29sYXRlIHRoZXNlIHRlc3RzIGJ5IGNvbmRpdGlvbmFsaXppbmcgdGhlbSBvbgorICAgIC8vIHRoaXMgc3RhdGljIHZhcmlhYmxlLiAgSWYgeW91IGFyZSBiYWNrLXBvcnRpbmcgdG8gMS4xLCByZW1vdmUKKyAgICAvLyB0aGUgSmF2YSAyIHRlc3RzIE9OTFkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBnSkRLMTEgPSBmYWxzZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlTWFwKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgQXR0cmlidXRlU2V0IG1hcHM7ICAvLyBBIFNldCBvZiBBdHRyaWJ1dGVNYXBzCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgc2V0czsgIC8vIEEgU2V0IG9mIFNldHMKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFRlc3RBdHRyaWJ1dGUgZXh0ZW5kcyBUZXh0QXR0cmlidXRlIHsKKworICAgICAgICBUZXN0QXR0cmlidXRlKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRlc3RBdHRyaWJ1dGVbXSBhdHRyaWJ1dGVzID0geworICAgICAgICBuZXcgVGVzdEF0dHJpYnV0ZSgiMCIpLCBuZXcgVGVzdEF0dHJpYnV0ZSgiMSIpLCBuZXcgVGVzdEF0dHJpYnV0ZSgiMiIpCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdIHZhbHVlcyA9IHsKKyAgICAgICAgIkhlbGxvIHdvcmxkIiwgbmV3IEZsb2F0KC00MiksIG5ldyBPYmplY3QoKSwgbmV3IEF0dHJpYnV0ZU1hcChuZXcgVGVzdEF0dHJpYnV0ZSgiMyIpLCAiSEgiKQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGxocy5lcXVhbHMocmhzKSAtIGJ1dCBhbHNvIGNoZWNrcyBmb3Igc3ltbWV0cnksIGFuZAorICAgICAqIGNvbnNpc3RlbmN5IHdpdGggaGFzaENvZGUoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZXF1YWxNYXBzKEF0dHJpYnV0ZU1hcCBsaHMsIE9iamVjdCByaHMpIHsKKworICAgICAgICBib29sZWFuIGVxdWFsID0gbGhzLmVxdWFscyhyaHMpOworICAgICAgICBpZiAoZXF1YWwgIT0gKHJocy5lcXVhbHMobGhzKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJBdHRyaWJ1dGVNYXAuZXF1YWxzIGlzIG5vdCBzeW1ldHJpYyIpOworICAgICAgICB9CisgICAgICAgIGlmIChlcXVhbCkgeworICAgICAgICAgICAgaWYgKGxocy5oYXNoQ29kZSgpICE9IHJocy5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkF0dHJpYnV0ZU1hcHMgYXJlIGVxdWFsIGJ1dCBoYXNoQ29kZXMgZGlmZmVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVxdWFsOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QXR0cmlidXRlTWFwKCkgeworCisgICAgICAgIG1hcHMgPSBBdHRyaWJ1dGVTZXQuRU1QVFlfU0VUOworICAgICAgICBtYXBzID0gbWFwcy5hZGRFbGVtZW50KEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgbWFwcy5hZGRFbGVtZW50KG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVUIpKTsKKyAgICAgICAgbWFwcy5hZGRFbGVtZW50KG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVVBFUikpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgaiA8IHZhbHVlcy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChhdHRyaWJ1dGVzW2ldLCB2YWx1ZXNbal0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiaWdNYXAgPSBuZXcgQXR0cmlidXRlTWFwKG5ldyBUZXN0QXR0cmlidXRlKCI0IiksICJ2YWx1ZSIpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBNYXRoLm1pbihhdHRyaWJ1dGVzLmxlbmd0aCwgdmFsdWVzLmxlbmd0aCk7IGkrKykgeworICAgICAgICAgICAgYmlnTWFwID0gYmlnTWFwLmFkZEF0dHJpYnV0ZShhdHRyaWJ1dGVzW2ldLCB2YWx1ZXNbdmFsdWVzLmxlbmd0aC1pLTFdKTsKKyAgICAgICAgfQorICAgICAgICBtYXBzID0gbWFwcy5hZGRFbGVtZW50KGJpZ01hcCk7CisKKyAgICAgICAgc2V0cyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisKKyAgICAgICAgc2V0cyA9IG5ldyBBdHRyaWJ1dGVTZXQoQXR0cmlidXRlU2V0LkVNUFRZX1NFVCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQXR0cmlidXRlU2V0IG5ld1NldCA9IG5ldyBBdHRyaWJ1dGVTZXQoYXR0cmlidXRlc1tpXSk7CisgICAgICAgICAgICBzZXRzID0gc2V0cy5hZGRFbGVtZW50KG5ld1NldCk7CisgICAgICAgIH0KKworICAgICAgICBBdHRyaWJ1dGVTZXQgYWxsQXR0cnMgPSBBdHRyaWJ1dGVTZXQuRU1QVFlfU0VUOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhbGxBdHRycyA9IGFsbEF0dHJzLmFkZEVsZW1lbnQoYXR0cmlidXRlc1tpXSk7CisgICAgICAgIH0KKworICAgICAgICBzZXRzID0gc2V0cy5hZGRFbGVtZW50KGFsbEF0dHJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSdW4gdGVzdHMgb24gQXR0cmlidXRlTWFwLiAgSWYgYSB0ZXN0IGZhaWxzIGFuIGV4Y2VwdGlvbiB3aWxsIHByb3BvZ2F0ZSBvdXQKKyAgICAgKiBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIGVhc3lUZXN0cygpOworCisgICAgICAgIEVudW1lcmF0aW9uIG1hcEl0ZXIgPSBtYXBzLmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChtYXBJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCB0ZXN0TWFwID0gKEF0dHJpYnV0ZU1hcCkgbWFwSXRlci5uZXh0RWxlbWVudCgpOworCisgICAgICAgICAgICBfdGVzdE1vZGlmaWVycyh0ZXN0TWFwKTsKKyAgICAgICAgICAgIF90ZXN0Vmlld3ModGVzdE1hcCk7CisKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIHVuaW9uSXRlciA9IG1hcHMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIHdoaWxlICh1bmlvbkl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBfdGVzdFVuaW9uV2l0aCh0ZXN0TWFwLCAoQXR0cmlidXRlTWFwKSB1bmlvbkl0ZXIubmV4dEVsZW1lbnQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIHNldEl0ZXIgPSBzZXRzLmVsZW1lbnRzKCk7CisgICAgICAgICAgICB3aGlsZSAoc2V0SXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVNldCB0ZXN0U2V0ID0gKEF0dHJpYnV0ZVNldCkgc2V0SXRlci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIF90ZXN0SW50ZXJzZWN0V2l0aCh0ZXN0TWFwLCB0ZXN0U2V0KTsKKyAgICAgICAgICAgICAgICBfdGVzdFJlbW92ZUF0dHJpYnV0ZXModGVzdE1hcCwgdGVzdFNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnZva2UgbW9kaWZpZXJzIG9uIG1hcC4gIEFsbCBzaG91bGQgdGhyb3cKKyAgICAgKiBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiwgYW5kIGxlYXZlIG1hcCB1bm1vZGlmaWVkLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RNb2RpZmllcnMoQXR0cmlidXRlTWFwIG1hcCkgeworCisgICAgICAgIGlmIChnSkRLMTEpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQXR0cmlidXRlTWFwIG9yaWdpbmFsTWFwID0gbmV3IEF0dHJpYnV0ZU1hcChtYXApOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAucHV0KFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgICAgIGVycmxuKCJQdXQgc2hvdWxkIHRocm93IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBUZXh0QXR0cmlidXRlLldFSUdIVDsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBtYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGlmIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGtleSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFwLnJlbW92ZShrZXkpOworICAgICAgICAgICAgZXJybG4oIlNldCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWFwLnB1dEFsbChtYXApOworICAgICAgICAgICAgZXJybG4oInB1dEFsbCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWFwLmNsZWFyKCk7CisgICAgICAgICAgICBlcnJsbigiY2xlYXIgc2hvdWxkIHRocm93IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcmlnaW5hbE1hcC5lcXVhbHMobWFwKSkgeworICAgICAgICAgICAgZXJybG4oIk1vZGlmaWVycyBjaGFuZ2VkIG1hcC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSB0aGF0IG1hcC5hZGRBdHRyaWJ1dGVzKGFkZE1hcCkgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nCisgICAgICogbWFwLmFkZCBvbiBhbGwgb2YgYWRkTWFwJ3MgZW50cmllcy4KKyAgICAgKi8KKyAgICB2b2lkIF90ZXN0VW5pb25XaXRoKEF0dHJpYnV0ZU1hcCBtYXAsIEF0dHJpYnV0ZU1hcCBhZGRNYXApIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbGhzID0gbWFwLmFkZEF0dHJpYnV0ZXMoYWRkTWFwKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgcmhzID0gbWFwOworCisgICAgICAgIEVudW1lcmF0aW9uIGl0ZXIgPSBhZGRNYXAuZ2V0S2V5U2V0KCkuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBhdHRyID0gaXRlci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gYWRkTWFwLmdldChhdHRyKTsKKyAgICAgICAgICAgIHJocyA9IHJocy5hZGRBdHRyaWJ1dGUoYXR0ciwgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobGhzLCByaHMpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLnJlbW92ZUF0dHJpYnV0ZXMocmVtb3ZlKSBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcKKyAgICAgKiBtYXAucmVtb3ZlQXR0cmlidXRlIG9uIHJlbW92ZSdzIGVsZW1lbnRzLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RSZW1vdmVBdHRyaWJ1dGVzKEF0dHJpYnV0ZU1hcCBtYXAsIEF0dHJpYnV0ZVNldCByZW1vdmUpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbGhzID0gbWFwLnJlbW92ZUF0dHJpYnV0ZXMocmVtb3ZlKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgcmhzID0gbWFwOworCisgICAgICAgIEVudW1lcmF0aW9uIGl0ZXIgPSByZW1vdmUuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBhdHRyID0gaXRlci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgcmhzID0gcmhzLnJlbW92ZUF0dHJpYnV0ZShhdHRyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZXF1YWxNYXBzKGxocywgcmhzKSkgeworICAgICAgICAgICAgZXJybG4oIk1hcHMgYXJlIG5vdCBlcXVhbC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSB0aGF0IG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCkgaXMgZXF1aXZhbGVudCB0bworICAgICAqIG1hcC5yZW1vdmVBdHRyaWJ1dGVzKG1hcC5rZXlTZXQoKSAtIGludGVyc2VjdCk7CisgICAgICovCisgICAgdm9pZCBfdGVzdEludGVyc2VjdFdpdGgoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlU2V0IGludGVyc2VjdCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAuaW50ZXJzZWN0V2l0aChpbnRlcnNlY3QpOworCisgICAgICAgIEF0dHJpYnV0ZVNldCBrZXlTZXQgPSBtYXAuZ2V0S2V5U2V0KCk7CisgICAgICAgIEF0dHJpYnV0ZVNldCByZW1vdmVTZXQgPSBrZXlTZXQuc3VidHJhY3QoaW50ZXJzZWN0KTsKKyAgICAgICAgQXR0cmlidXRlTWFwIHJocyA9IG1hcC5yZW1vdmVBdHRyaWJ1dGVzKHJlbW92ZVNldCk7CisKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobGhzLCByaHMpKSB7CisgICAgICAgICAgICBtYXAuaW50ZXJzZWN0V2l0aChpbnRlcnNlY3QpOworICAgICAgICAgICAgbG9nbG4oImludGVyc2VjdDogIiArIGludGVyc2VjdCk7CisgICAgICAgICAgICBsb2dsbigia2V5U2V0OiAiICsga2V5U2V0KTsKKyAgICAgICAgICAgIGxvZ2xuKCJyZW1vdmVTZXQ6ICIgKyByZW1vdmVTZXQpOworICAgICAgICAgICAgbG9nbG4oIm1hcDogIiArIG1hcCk7CisgICAgICAgICAgICBsb2dsbigibGhzOiAiICsgbGhzKTsKKyAgICAgICAgICAgIGxvZ2xuKCJyaHM6ICIgKyByaHMpOworICAgICAgICAgICAgZXJybG4oIk1hcHMgYXJlIG5vdCBlcXVhbC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSB0aGF0OgorICAgICAqICAgIG1hcCwgbWFwLmtleVNldCgpLCBhbmQgbWFwLmVudHJ5U2V0KCkgYXJlIHRoZSBzYW1lIHNpemU7CisgICAgICogICAgbWFwLmNvbnRhaW5zS2V5KCkgaXMgdHJ1ZSBmb3IgZXZlcnkga2V5IGluIGtleVNldCgpOworICAgICAqICAgIG1hcC5jb250YWluc1ZhbHVlKCkgaXMgdHJ1ZSBmb3IgZXZlcnkgdmFsdWUgaW4gdmFsdWVzOworICAgICAqICAgIGV2ZXJ5IGVudHJ5IGtleSBpcyBpbiBrZXlTZXQsIGV2ZXJ5IGVudHJ5IHZhbHVlIGlzIGluIG1hcC52YWx1ZXMoKTsKKyAgICAgKiAgICBtYXAuZ2V0KCkgaXMgY29uc2lzdGVudCB3aXRoIGVudHJ5J3Mga2V5LCB2YWx1ZTsKKyAgICAgKiAgICBzdW0gb2YgaGFzaGNvZGVzIG9mIGVudHJpZXMgZXF1YWxzIG1hcC5oYXNoQ29kZSgpLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RWaWV3cyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisKKyAgICAgICAgQXR0cmlidXRlU2V0IGtleVNldCA9IG1hcC5nZXRLZXlTZXQoKTsKKworICAgICAgICBFbnVtZXJhdGlvbiBrZXlJdGVyID0ga2V5U2V0LmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChrZXlJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc0tleShrZXlJdGVyLm5leHRFbGVtZW50KCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImtleVNldCBjb250YWlucyBrZXkgbm90IGluIG1hcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGdKREsxMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDb2xsZWN0aW9uIHZhbHVlcyA9IG1hcC52YWx1ZXMoKTsKKyAgICAgICAgU2V0IGVudHJ5U2V0ID0gbWFwLmVudHJ5U2V0KCk7CisKKyAgICAgICAgaWYgKGtleVNldC5zaXplKCkgIT0gbWFwLnNpemUoKSB8fCBlbnRyeVNldC5zaXplKCkgIT0gbWFwLnNpemUoKSkgeworICAgICAgICAgICAgZXJybG4oIlNldCBzaXplcyBhcmUgaW5jb25zaXN0ZW50IHdpdGggbWFwIHNpemUuIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgaGFzaENvZGUgPSAwOworCisgICAgICAgIEl0ZXJhdG9yIHZhbHVlSXRlciA9IHZhbHVlcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAodmFsdWVJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgaWYgKCFtYXAuY29udGFpbnNWYWx1ZSh2YWx1ZUl0ZXIubmV4dCgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ2YWx1ZSBzZXQgY29udGFpbnMgdmFsdWUgbm90IGluIG1hcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgSXRlcmF0b3IgZW50cnlJdGVyID0gZW50cnlTZXQuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGVudHJ5SXRlci5oYXNOZXh0KCkpIHsKKworICAgICAgICAgICAgRW50cnkgZW50cnkgPSAoRW50cnkpIGVudHJ5SXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBlbnRyeS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmICgha2V5U2V0LmNvbnRhaW5zKGtleSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRW50cnkga2V5IGlzIG5vdCBpbiBrZXkgc2V0LiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBtYXAuZ2V0KGVudHJ5LmdldEtleSgpKTsKKyAgICAgICAgICAgIGlmICghdmFsdWVzLmNvbnRhaW5zKHZhbHVlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFbnRyeSB2YWx1ZSBpcyBub3QgaW4gdmFsdWUgc2V0LiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobWFwLmdldChrZXkpICE9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm1hcC5nZXQgZGlkIG5vdCByZXR1cm4gZW50cnkgdmFsdWUuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGhhc2hDb2RlICs9IGVudHJ5Lmhhc2hDb2RlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzaENvZGUgIT0gbWFwLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJtYXAgaGFzaGNvZGUgaXMgbm90IHN1bSBvZiBlbnRyeSBoYXNoY29kZXMuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb29rIGZvciBjb3JyZWN0IGJlaGF2aW9yIGluIG9idmlvdXMgY2FzZXMuCisgICAgICovCisgICAgdm9pZCBlYXN5VGVzdHMoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAoKTsKKyAgICAgICAgaWYgKCFtYXAuZXF1YWxzKEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKSkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQtY29uc3RydWN0ZWQgbWFwIGlzIG5vdCBlcXVhbCB0byBlbXB0eSBtYXAuIik7CisgICAgICAgIH0KKworICAgICAgICBtYXAgPSBtYXAuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworICAgICAgICBPYmplY3Qgb3RoZXJNYXAgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworICAgICAgICBpZiAoIW1hcC5lcXVhbHMob3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgaW5jb25zaXN0ZW50IGFmdGVyIG1hcC5hZGQiKTsKKyAgICAgICAgfQorCisgICAgICAgIG90aGVyTWFwID0gbWFwLmFkZEF0dHJpYnV0ZXMobWFwKTsKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobWFwLG90aGVyTWFwKSkgeworICAgICAgICAgICAgZXJybG4oIk1hcHMgYXJlIGluY29uc2lzdGVudCBhZnRlciBhZGRBdHRyaWJ1dGVzIik7CisgICAgICAgIH0KKworICAgICAgICBtYXAgPSBtYXAuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTik7CisKKyAgICAgICAgaWYgKG1hcC5zaXplKCkgIT0gMikgeworICAgICAgICAgICAgZXJybG4oIk1hcCBzaXplIGlzIHdyb25nLiAgbWFwPSIrbWFwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcXVhbE1hcHMobWFwLG90aGVyTWFwKSkgeworICAgICAgICAgICAgZXJybG4oIk1hcHMgc2hvdWxkIG5vdCBiZSBlcXVhbCIpOworICAgICAgICB9CisKKyAgICAgICAgT2JqZWN0IHBvc3R1cmUgPSBuZXcgRmxvYXQoMCk7CisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBwb3N0dXJlKTsKKworICAgICAgICBpZiAobWFwLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNpemUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbWFwLmdldChUZXh0QXR0cmlidXRlLlBPU1RVUkUpLmVxdWFscyhwb3N0dXJlKSkgeworICAgICAgICAgICAgZXJybG4oIk1hcCBlbGVtZW50IGlzIHdyb25nIik7CisgICAgICAgIH0KKworICAgICAgICBtYXAgPSBtYXAucmVtb3ZlQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FKTsKKworICAgICAgICBpZiAobWFwLnNpemUoKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNpemUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FKSAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNob3VsZCBub3QgaGF2ZSBlbGVtZW50Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBtYXAgaGFzIFBPU1RVUkVfUkVHVUxBUi4gIElmIHdlIGFkZEF0dHJpYnV0ZXMgYSBtYXAgd2l0aAorICAgICAgICAvLyBQT1NUVVJFX0lUQUxJQyB0aGUgbmV3IG1hcCBzaG91bGQgaGF2ZSBQT1NUVVJFX0lUQUxJQworCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGVzKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSkpOworICAgICAgICBpZiAobWFwLmdldChUZXh0QXR0cmlidXRlLlBPU1RVUkUpICE9IFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIGVsZW1lbnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIF90ZXN0TW9kaWZpZXJzKG1hcCk7CisgICAgICAgIF90ZXN0Vmlld3MobWFwKTsKKworICAgICAgICBFbnVtZXJhdGlvbiBtYXBJdGVyID0gbWFwcy5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAobWFwSXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHRlc3RNYXAgPSAoQXR0cmlidXRlTWFwKSBtYXBJdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgbmV3VmFsdWUgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3TWFwID0gdGVzdE1hcC5hZGRBdHRyaWJ1dGUoYXR0cmlidXRlc1swXSwgbmV3VmFsdWUpOworICAgICAgICAgICAgaWYgKG5ld01hcC5nZXQoYXR0cmlidXRlc1swXSkgIT0gbmV3VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgZXhwZWN0ZWQgdmFsdWUgYmFjay4gIG1hcD0iICsgbWFwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NDdkYWFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVTZXQuamF2YQpAQCAtMCwwICsxLDg5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisKK3B1YmxpYyBjbGFzcyBUZXN0QXR0cmlidXRlU2V0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdEF0dHJpYnV0ZVNldCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIGZpbmFsIE9iamVjdCBlbGVtMSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW0yID0gbmV3IEZsb2F0KDQpOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTMgPSAiU3RyaW5nIjsKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW00ID0gQm9vbGVhbi5GQUxTRTsKKworICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0MSA9IG5ldyBBdHRyaWJ1dGVTZXQobmV3IE9iamVjdFtdIHtlbGVtMSwgZWxlbTIsIGVsZW0zfSk7CisgICAgICAgIGlmIChzZXQxLnNpemUoKSAhPSAzKSB7CisgICAgICAgICAgICBlcnJsbigiU2l6ZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXQxLmNvbnRhaW5zKGVsZW00KSl7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0MS5jb250YWlucyhlbGVtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlU2V0IHNldDIgPSBuZXcgQXR0cmlidXRlU2V0KGVsZW00KTsKKworICAgICAgICBpZiAoc2V0Mi5zaXplKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIlNpemUgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNldDIuY29udGFpbnMoZWxlbTQpKXsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNldDIuY29udGFpbnMoZWxlbTEpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIEVudW1lcmF0aW9uIGl0ZXIgPSBzZXQyLmVsZW1lbnRzKCk7CisgICAgICAgIGlmICghaXRlci5uZXh0RWxlbWVudCgpLmVxdWFscyhlbGVtNCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIG9iamVjdCBpbiBpdGVyYXRvci4iKTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZVNldCB1bmlvbiA9IHNldDIudW5pb25XaXRoKHNldDEpOworICAgICAgICBpZiAoIXNldDEudW5pb25XaXRoKHNldDIpLmVxdWFscyh1bmlvbikpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmlvbldpdGggaXMgbm90IGNvbW11dGF0aXZlLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF1bmlvbi5jb250YWlucyhlbGVtMSkgfHwgIXVuaW9uLmNvbnRhaW5zKGVsZW00KSkgeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNldDEuYWRkRWxlbWVudChlbGVtNCkuZXF1YWxzKHVuaW9uKSkgeworICAgICAgICAgICAgZXJybG4oImFkZEVsZW1lbnQgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXVuaW9uLmludGVyc2VjdFdpdGgoc2V0MSkuZXF1YWxzKHNldDEpKSB7CisgICAgICAgICAgICBlcnJsbigiaW50ZXJzZWN0V2l0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdW5pb24uc3VidHJhY3Qoc2V0MSkuZXF1YWxzKHNldDIpKSB7CisgICAgICAgICAgICBlcnJsbigic3VidHJhY3QgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0Rm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWU0MTlhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0Rm9ybWF0dGVyLmphdmEKQEAgLTAsMCArMSwyNDUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0YW5kYXJkVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuTUZvcm1hdHRlcjsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKK2ltcG9ydCBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RGb3JtYXR0ZXIgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0Rm9ybWF0dGVyKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFBvaW50IE9SSUdJTiA9IG5ldyBQb2ludCgwLCAwKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBERUZBVUxUUzsKKyAgICBzdGF0aWMgeworICAgICAgICBmaW5hbCBGbG9hdCBmbG9hdFplcm8gPSBuZXcgRmxvYXQoMC4wZik7CisKKyAgICAgICAgSGFzaHRhYmxlIGRlZmF1bHRzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJTZXJpZiIpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIG5ldyBGbG9hdCgxLjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxOC4wZikpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwgbmV3IEludGVnZXIoMCkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCBDb2xvci5ibGFjayk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlVOREVSTElORSwgbmV3IEludGVnZXIoLTEpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwgQm9vbGVhbi5GQUxTRSk7CisKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwgVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCBuZXcgU3RhbmRhcmRUYWJSdWxlcigpKTsKKworICAgICAgICBERUZBVUxUUyA9IG5ldyBBdHRyaWJ1dGVNYXAoZGVmYXVsdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBhcmcgdG8gdGVzdExpbmVFeGNlcHRpb25zCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAtMTsKKworICAgIHByaXZhdGUgR3JhcGhpY3MgZkdyYXBoaWNzOworCisgICAgcHVibGljIFRlc3RGb3JtYXR0ZXIoKSB7CisKKyAgICAgICAgZkdyYXBoaWNzID0gbmV3IEJ1ZmZlcmVkSW1hZ2UoMTAwLCAxMDAsIEJ1ZmZlcmVkSW1hZ2UuVFlQRV8zQllURV9CR1IpLmdldEdyYXBoaWNzKCk7CisgICAgICAgIAorICAgICAgICAvL0pESyAxLjE6CisgICAgICAgIC8vRnJhbWUgZiA9IG5ldyBGcmFtZSgpOworICAgICAgICAvL2Yuc2hvdygpOworICAgICAgICAvL2ZHcmFwaGljcyA9IGYuZ2V0R3JhcGhpY3MoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmaXZlTGluZXMgPSAiYVxuYlxuY1xuZFxuZSI7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHdlbHZlTGluZXMgPSBmaXZlTGluZXMgKyAiXG4iICsgZml2ZUxpbmVzICsgIlxuZlxuIjsKKyAgICBBdHRyaWJ1dGVNYXAgUExBSU4gPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoZml2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCA1KTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKSwgNSk7CisKKyAgICAgICAgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KHR3ZWx2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMobWFrZUZvcm1hdHRlcih0ZXh0LCAzLCBmYWxzZSksIDEyKTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKSwgMTIpOworCisgICAgICAgIF90ZXN0V2l0aE1vZGlmaWNhdGlvbigpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdFdpdGhNb2RpZmljYXRpb24oKSB7CisKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KGZpdmVMaW5lcywgUExBSU4pOworICAgICAgICBNRm9ybWF0dGVyIGZvcm1hdHRlciA9IG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKTsKKyAgICAgICAgUmVjdGFuZ2xlIHZpZXdSZWN0ID0gbmV3IFJlY3RhbmdsZSgwLCAwLCAxMDAsIEludGVnZXIuTUFYX1ZBTFVFKTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQuYXBwZW5kKG5ldyBTdHlsZWRUZXh0KCJcbiIsIFBMQUlOKSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQodGV4dC5sZW5ndGgoKS0xLCAxLCB2aWV3UmVjdCwgT1JJR0lOKTsKKworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQuYXBwZW5kKG5ldyBTdHlsZWRUZXh0KCJhZCIsIFBMQUlOKSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQodGV4dC5sZW5ndGgoKS0yLCAyLCB2aWV3UmVjdCwgT1JJR0lOKTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKGZvcm1hdHRlciwgNik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMoZm9ybWF0dGVyLCA2KTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQucmVtb3ZlKDAsIDEpOworICAgICAgICBmb3JtYXR0ZXIudXBkYXRlRm9ybWF0KDAsIDAsIHZpZXdSZWN0LCBPUklHSU4pOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhmb3JtYXR0ZXIsIDYpOworICAgIH0KKworCisgICAgcHJpdmF0ZSBNRm9ybWF0dGVyIG1ha2VGb3JtYXR0ZXIoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwKSB7CisKKyAgICAgICAgcmV0dXJuIE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkdyYXBoaWNzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RMaW5lRXhjZXB0aW9ucyhNRm9ybWF0dGVyIGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1MaW5lcykgeworCisgICAgICAgIGlmIChudW1MaW5lcyA9PSBVTktOT1dOKSB7CisgICAgICAgICAgICBudW1MaW5lcyA9IGZvcm1hdHRlci5nZXRMaW5lQ291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lUmFuZ2VMb3cobnVtTGluZXMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXR0ZXIubGluZVJhbmdlTGltaXQobnVtTGluZXMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChudW1MaW5lcysxKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgY2F1Z2h0ID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghY2F1Z2h0KSB7CisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXVnaHQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RMaW5lQWNjZXNzKE1Gb3JtYXR0ZXIgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUxpbmVzKSB7CisKKyAgICAgICAgaWYgKG51bUxpbmVzID09IFVOS05PV04pIHsKKyAgICAgICAgICAgIG51bUxpbmVzID0gZm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJMaW5lIDAgZG9lc24ndCBzdGFydCBhdCBoZWlnaHQgMCIpOworICAgICAgICB9CisgICAgICAgIGlmIChmb3JtYXR0ZXIubGluZVJhbmdlTG93KDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJMaW5lIDAgZG9lc24ndCBzdGFydCBhdCBjaGFyYWN0ZXIgMCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxhc3RMaW1pdCA9IGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdCgwKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVCb3VuZCA9IGZvcm1hdHRlci5saW5lQm91bmQoKTsKKyAgICAgICAgaW50W10gaGl0WCA9IG5ldyBpbnRbXSB7IC0xLCAxLCBsaW5lQm91bmQgKyAyIH07CisKKyAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IG51bUxpbmVzOyBpKyspIHsKKworICAgICAgICAgICAgaW50IGhlaWdodCA9IGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KGkpOworICAgICAgICAgICAgaWYgKGxhc3RMaW1pdCAhPSBmb3JtYXR0ZXIubGluZVJhbmdlTG93KGkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxhc3RMaW5lIGxpbWl0IGlzIG5vdCBjdXJyZW50IGxpbmUgc3RhcnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaW1pdCA9IGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChpKTsKKworICAgICAgICAgICAgaWYgKGxpbWl0IDwgbGFzdExpbWl0IHx8IChsaW1pdCA9PSBsYXN0TGltaXQgJiYgaSAhPSBudW1MaW5lcy0xKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJsaW5lIGhhcyBuZWdhdGl2ZSBvciAwIGxlbmd0aCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgbmV4dEhlaWdodCA9IGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KGkrMSk7CisgICAgICAgICAgICBpZiAobmV4dEhlaWdodCA8PSBoZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiMC1oZWlnaHQgbGluZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGluY0Ftb3VudCA9IE1hdGgubWF4KChuZXh0SGVpZ2h0LWhlaWdodCkvNCwgMSk7CisgICAgICAgICAgICBmb3IgKGludCBoaXRZID0gaGVpZ2h0OyBoaXRZIDwgbmV4dEhlaWdodDsgaGl0WSArPSBpbmNBbW91bnQpIHsKKworICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXIubGluZUF0SGVpZ2h0KGhpdFkpICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImxpbmVBdEhlaWdodCBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgaiA8IGhpdFgubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZm9ybWF0dGVyLnBvaW50VG9UZXh0T2Zmc2V0KG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXRYW2pdLCBoaXRZLCBPUklHSU4sIG51bGwsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldC5mT2Zmc2V0IDwgbGFzdExpbWl0IHx8IG9mZnNldC5mT2Zmc2V0ID4gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvbnNpc3RlbnQgb2Zmc2V0IGZyb20gcG9pbnRUb1RleHRPZmZzZXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL2lmIChmb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KSAhPSBpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGludCBkZWJ1ZyA9IGZvcm1hdHRlci5saW5lQ29udGFpbmluZyhvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAvLyAgICBlcnJsbigibGluZUNvbnRhaW5pbmcgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGFzdExpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmYTVkM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEKQEAgLTAsMCArMSw3MTggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgVGVzdE1UZXh0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdE1UZXh0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVF9JVEVSQVRJT05TID0gNTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RZTEVfVEVTVF9JVEVSQVRJT05TID0gNTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFJBTkRfU0VFRCA9IDU5ODQzNjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RfSU5fTU9OS0VZX1RFU1QgPSAtNTAwMDsKKyAgICBwcml2YXRlIGludCB0ZXN0SXRlcmF0aW9uID0gTk9UX0lOX01PTktFWV9URVNUOworICAgIHByaXZhdGUgaW50IHRoZUNhc2UgPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3R5bGVNb2RpZmllciBjcmVhdGVNaW51c01vZGlmaWVyKGZpbmFsIE9iamVjdCBhdHRyKSB7CisgICAgICAgIHJldHVybiBuZXcgU3R5bGVNb2RpZmllcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlLnJlbW92ZUF0dHJpYnV0ZShhdHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworICAgIAorICAgICAgICBzaW1wbGVUZXN0KCk7CisgICAgICAgIHN0eWxlVGVzdCgpOworICAgICAgICBtb25rZXlUZXN0KHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzaW1wbGVUZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGl0YWxpY1N0eWxlID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKTsKKworICAgICAgICBNQ29uc3RUZXh0IGFsbEJvbGQgPSBuZXcgU3R5bGVkVGV4dCgiYmJiYmIiLCBib2xkU3R5bGUpOworICAgICAgICBNQ29uc3RUZXh0IGFsbEl0YWxpYyA9IG5ldyBTdHlsZWRUZXh0KCJpaWkiLCBpdGFsaWNTdHlsZSk7CisgICAgICAgIE1Db25zdFRleHQgcGxhaW4gPSBuZXcgU3R5bGVkVGV4dCgicHBwcHBwIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworCisgICAgICAgIHsKKyAgICAgICAgICAgIE1UZXh0IGJ1ZiA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICBpbnQgdHMgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGFsbEJvbGQpOworICAgICAgICAgICAgYnVmLmFwcGVuZChhbGxJdGFsaWMpOworCisgICAgICAgICAgICBpZiAodHMgPT0gYnVmLmdldFRpbWVTdGFtcCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgbm90IGluY3JlbWVudGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHNob3VsZCBiZSBiYmJiYmlpaSBub3cKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSBhbGxCb2xkLmxlbmd0aCgpICsgYWxsSXRhbGljLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkxlbmd0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYnVmLmxlbmd0aCgpOyBpKyspIHsKKworICAgICAgICAgICAgICAgIGNoYXIgcmlnaHRDaGFyOworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCByaWdodFN0eWxlOworCisgICAgICAgICAgICAgICAgaWYgKGkgPCBhbGxCb2xkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Q2hhciA9IGFsbEJvbGQuYXQoMCk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0U3R5bGUgPSBib2xkU3R5bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByaWdodENoYXIgPSBhbGxJdGFsaWMuYXQoMCk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0U3R5bGUgPSBpdGFsaWNTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmF0KGkpICE9IHJpZ2h0Q2hhcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KGkpLmVxdWFscyhyaWdodFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgcG9zID0gMDsKKworICAgICAgICAgICAgaWYgKCFidWYuY2hhcmFjdGVyU3R5bGVBdChwb3MpLmVxdWFscyhib2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZpcnN0IHN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSBhbGxCb2xkLmxlbmd0aCgpOworCisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGl0YWxpY1N0eWxlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgc3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxlbmd0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJ1Zi5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICAgICAgICAgIGludCBvbGRMZW5ndGggPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIGFsbEJvbGQsIDAsIGFsbEJvbGQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIC8vIGJiYmJiaWlpYmJiYmIKKworICAgICAgICAgICAgICAgIGlmIChidWYuZGFtYWdlZFJhbmdlU3RhcnQoKSAhPSBvbGRMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2Ugc3RhcnQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChidWYuZGFtYWdlZFJhbmdlTGltaXQoKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2UgbGltaXQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBhbGxCb2xkLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyBhbGxJdGFsaWMubGVuZ3RoKCk7CisgICAgICAgICAgICBidWYucmVtb3ZlKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAvLyBiYmJiYmJiYmJiCisKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gMiAqIGFsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dCBzaG91bGQgYmUgdHdpY2UgdGhlIGxlbmd0aCBvZiBib2xkIHRleHQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IGJ1Zi5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQocG9zKSAhPSAwIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIHJhbmdlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFidWYuY2hhcmFjdGVyU3R5bGVBdChwb3MpLmVxdWFscyhib2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBzdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHMgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjSXRlciA9IGJ1Zi5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gY0l0ZXIuZmlyc3QoKTsgY2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgY2ggPSBjSXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gYWxsQm9sZC5hdCgwKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRzICE9IGJ1Zi5nZXRUaW1lU3RhbXAoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIHNob3VsZCBub3QgaGF2ZSBjaGFuZ2VkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDEsIHBsYWluLCAwLCBwbGFpbi5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIGlmICh0cyA9PSBidWYuZ2V0VGltZVN0YW1wKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGltZSBzdGFtcCBub3QgaW5jcmVtZW50ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcHBwcHBwYmJiYmJiYmJiCisgICAgICAgICAgICBidWYucmVwbGFjZShwbGFpbi5sZW5ndGgoKSwgYnVmLmxlbmd0aCgpLCBhbGxJdGFsaWMsIDAsIGFsbEl0YWxpYy5sZW5ndGgoKSk7CisgICAgICAgICAgICAvLyBwcHBwcHBpaWkKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSBhbGxJdGFsaWMubGVuZ3RoKCkrcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxpbWl0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSBwbGFpbi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHBsYWluLmxlbmd0aCgpLCBwbGFpbi5sZW5ndGgoKSwgYWxsQm9sZCwgMCwgYWxsQm9sZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAvLyBwcHBwcHBiYmJiYmlpaQorCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3QgPSBidWYuY2hhcmFjdGVyU3R5bGVBdCgxKTsKKyAgICAgICAgICAgIGlmICghc3QuZXF1YWxzKEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVTdGFydCgxKSAhPSAwIHx8IGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KDEpICE9IHBsYWluLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIHN0YXJ0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KGJ1Zi5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgaWYgKCFzdC5lcXVhbHMoaXRhbGljU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZVN0YXJ0KGJ1Zi5sZW5ndGgoKSAtIDEpICE9IHBsYWluLmxlbmd0aCgpK2FsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgc3RhcnQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChidWYubGVuZ3RoKCkgLSAxKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcmFuZEludChSYW5kb20gcmFuZCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIHJhbmRJbnQocmFuZCwgMCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSYW5nZSBsZW5ndGggaXMgbmVnYXRpdmUuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGFydCArIChNYXRoLmFicyhyYW5kLm5leHRJbnQoKSklKGxpbWl0LXN0YXJ0KSkgOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN0eWxlVGVzdCgpIHsKKworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIjAxMjM0NTY3ODkiLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwW10gc3R5bGVzID0gbmV3IEF0dHJpYnV0ZU1hcFt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdHlsZXNbaV0gPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICAgICAgfQorICAgICAgICBBdHRyaWJ1dGVNYXBbXSBvbGRTdHlsZXMgPSBuZXcgQXR0cmlidXRlTWFwW3N0eWxlcy5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0eWxlcywgMCwgb2xkU3R5bGVzLCAwLCBzdHlsZXMubGVuZ3RoKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgYmlnU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTikuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDIzLjBmKSk7CisKKyAgICAgICAgU3R5bGVNb2RpZmllcltdIG1vZGlmaWVycyA9IHsKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKSksCisgICAgICAgICAgICBjcmVhdGVNaW51c01vZGlmaWVyKFRleHRBdHRyaWJ1dGUuV0VJR0hUKSwKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgbmV3IEZsb2F0KDAuMGYpKSksCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFKSwKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihiaWdTdHlsZSksCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihiaWdTdHlsZSksCisgICAgICAgICAgICBjcmVhdGVNaW51c01vZGlmaWVyKGJpZ1N0eWxlLmdldEtleVNldCgpKQorICAgICAgICB9OworCisgICAgICAgIFJhbmRvbSByYW5kID0gbmV3IFJhbmRvbShSQU5EX1NFRUQpOworICAgICAgICBmaW5hbCBpbnQgc3RvcEF0ID0gNDsKKworICAgICAgICBmb3IgKGludCB0ZXN0SXRlcmF0aW9uPTA7IHRlc3RJdGVyYXRpb24gPCBTVFlMRV9URVNUX0lURVJBVElPTlMgKyAxOyB0ZXN0SXRlcmF0aW9uKyspIHsKKworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdHlsZXMsIDAsIG9sZFN0eWxlcywgMCwgc3R5bGVzLmxlbmd0aCk7CisKKyAgICAgICAgICAgIGludCBzdGFydGluZ0F0ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICBpbnQgZW5kaW5nQXQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgIGludCBvbGRUcyA9IHRleHQuZ2V0VGltZVN0YW1wKCk7CisKKyAgICAgICAgICAgIC8vIGhhY2sgd2F5IHRvIGRvIGFuIGludmFyaWFudCBjaGVjayBiZWZvcmUgc3RhcnRpbmcuLi4KKyAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBtb2RpZnkgc3R5bGVzCisgICAgICAgICAgICAgICAgdGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICAgICAgICAgIHN0YXJ0aW5nQXQgPSByYW5kSW50KHJhbmQsIHN0eWxlcy5sZW5ndGgrMSk7CisgICAgICAgICAgICAgICAgZW5kaW5nQXQgPSByYW5kSW50KHJhbmQsIHN0YXJ0aW5nQXQsIHN0eWxlcy5sZW5ndGgrMSk7CisgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IG1vZGlmaWVyc1tyYW5kSW50KHJhbmQsIG1vZGlmaWVycy5sZW5ndGgpXTsKKworICAgICAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uID09IHN0b3BBdCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0SXRlcmF0aW9uID0gc3RvcEF0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhzdGFydGluZ0F0LCBlbmRpbmdBdCwgbW9kaWZpZXIpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj1zdGFydGluZ0F0OyBqIDwgZW5kaW5nQXQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICBzdHlsZXNbal0gPSBtb2RpZmllci5tb2RpZnlTdHlsZShzdHlsZXNbal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgaW52YXJpYW50cworICAgICAgICAgICAgQXR0cmlidXRlTWFwIG9sZFN0eWxlID0gbnVsbDsKKyAgICAgICAgICAgIGludCB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IHJ1blN0YXJ0ID0gMDsgcnVuU3RhcnQgPCB0ZXh0TGVuZ3RoOykgeworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGN1cnJlbnRTdHlsZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCk7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxpbWl0ID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1blN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAocnVuU3RhcnQgPj0gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsZW5ndGggaXMgbm90IHBvc2l0aXZlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUuZXF1YWxzKG9sZFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGVzIGRpZG4ndCBtZXJnZSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IHBvcz1ydW5TdGFydDsgcG9zIDwgcnVuTGltaXQ7IHBvcysrKSB7CisgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGVBdFBvcyA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFN0eWxlICE9IGNoYXJTdHlsZUF0UG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3Igc3R5bGUgaXMgbm90IGVxdWFsIHRvIHRleHQgc3R5bGUgYXQgIiArIHBvcyArICIuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGV4cGVjdGVkID0gc3R5bGVzW3Bvc107CisgICAgICAgICAgICAgICAgICAgIGlmICghY3VycmVudFN0eWxlLmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBzdHlsZSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIHN0eWxlIGF0ICIgKyBwb3MgKyAiLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghKHRleHQuY2hhcmFjdGVyU3R5bGVTdGFydChwb3MpID09IHJ1blN0YXJ0KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICEodGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgPT0gcnVuTGltaXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3R5bGUgcnVuIHN0YXJ0IC8gbGltaXQgaXMgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBydW5TdGFydCA9IHJ1bkxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhcmFjdGVyU3R5bGVBdCh0ZXh0TGVuZ3RoKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuY2hhcmFjdGVyU3R5bGVBdCh0ZXh0TGVuZ3RoLTEpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgc3R5bGVzIGF0IGVuZCBhcmVuJ3QgdGhlIHNhbWUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNoZWNrIGRhbWFnZWQgcmFuZ2U6CisgICAgICAgICAgICBpbnQgZGFtYWdlU3RhcnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIGludCBkYW1hZ2VMaW1pdCA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgdGV4dExlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdHlsZXNbaV0uZXF1YWxzKG9sZFN0eWxlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlU3RhcnQgPSBNYXRoLm1pbihpLCBkYW1hZ2VTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGRhbWFnZUxpbWl0ID0gTWF0aC5tYXgoaSsxLCBkYW1hZ2VMaW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRhbWFnZVN0YXJ0ICE9IHRleHQuZGFtYWdlZFJhbmdlU3RhcnQoKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZUxpbWl0ICE9IHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGl0ZXJhdGlvbjogIiArIHRlc3RJdGVyYXRpb24pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJzdGFydGluZ0F0OiAiICsgc3RhcnRpbmdBdCArICI7ICBlbmRpbmdBdDogIiArIGVuZGluZ0F0KTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGFtYWdlU3RhcnQ6ICIgKyBkYW1hZ2VTdGFydCArICI7ICBkYW1hZ2VMaW1pdDogIiArIGRhbWFnZUxpbWl0KTsKKyAgICAgICAgICAgICAgICBsb2dsbigidGV4dC5yYW5nZVN0YXJ0OiAiICsgdGV4dC5kYW1hZ2VkUmFuZ2VTdGFydCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQucmFuZ2VMaW1pdDogIiArIHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBzdGFydCBvciBsaW1pdCBpcyBub3QgZXhwZWN0ZWQgdmFsdWUiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKChkYW1hZ2VMaW1pdCA9PSBJbnRlZ2VyLk1JTl9WQUxVRSkgIT0gKG9sZFRzID09IHRleHQuZ2V0VGltZVN0YW1wKCkpKSB7CisKKyAgICAgICAgICAgICAgICBlcnJsbigidGltZVN0YW1wIGlzIGluY29ycmVjdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbXNnKFN0cmluZyBtZXNzYWdlLCBpbnQgbGV2ZWwsIGJvb2xlYW4gaW5jQ291bnQsIGJvb2xlYW4gbmV3bG4pIHsKKyAgICAgICAgaWYgKGxldmVsID09IEVSUiAmJiB0ZXN0SXRlcmF0aW9uICE9IE5PVF9JTl9NT05LRVlfVEVTVCkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJ0ZXN0SXRlcmF0aW9uPSIrdGVzdEl0ZXJhdGlvbisiOyB0ZXN0Q2FzZT0iK3RoZUNhc2UrbWVzc2FnZTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5tc2cobWVzc2FnZSwgbGV2ZWwsIGluY0NvdW50LCBuZXdsbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUGVyZm9ybSBhIHJhbmRvbSBzZXJpZXMgb2Ygb3BlcmF0aW9ucyBvbiBhbiBNVGV4dCBhbmQKKyAgICAqIGNoZWNrIHRoZSByZXN1bHQgb2YgZWFjaCBvcGVyYXRpb24gYWdhaW5zdCBhIHNldCBvZiBpbnZhcmlhbnRzLgorICAgICovCisgICAgcHVibGljIHZvaWQgbW9ua2V5VGVzdChib29sZWFuIHN0cmVhbWluZykgeworCisgICAgICAgIC8qCisgICAgICAgICAgICBZb3UgY2FuIGFkZCBhbnkgb3BlcmF0aW9uIHRvIHRoZSBzd2l0Y2ggc3RhdGVtZW50IHByb3ZpZGVkIGl0CisgICAgICAgICAgICBwcmVzZXJ2ZXMgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzOgorICAgICAgICAgICAgLSBUaGUgU3RyaW5nIHBsYWluVGV4dCBjb250YWlucyB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBTdHlsZWRTdHJpbmdCdWZmZXIuCisgICAgICAgICAgICAgIE9idmlvdXNseSwgZm9yIHRoZSB0ZXN0IHRvIGJlIG1lYW5pbmdmdWwgcGxhaW5UZXh0IG11c3QgYmUgY29tcHV0ZWQKKyAgICAgICAgICAgICAgaW5kZXBlbmRlbnRseSBvZiB0aGUgYnVmZmVyIChpZSBkb24ndCB3cml0ZTogIHBsYWluVGV4dCA9IGJ1Zi5nZXRTdHlsZWRTdHJpbmcoKS50b1N0cmluZygpKS4KKyAgICAgICAgICAgIC0gRXZlcnkgJ2InIGlzIGJvbGQsIGV2ZXJ5ICdpJyBpcyBpdGFsaWMsIGV2ZXJ5ICdwJyBpcyBwbGFpbiwgYW5kCisgICAgICAgICAgICAgIG5vIG90aGVyIGNoYXJhY3RlcnMgYXBwZWFyIGluIHRoZSB0ZXh0LgorICAgICAgICAqLworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkQXR0cnMgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGl0YWxpY0F0dHJzID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGVtcHR5QXR0cnMgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZDFTdHJfZ2V0U3RyaW5nID0gImIiOworICAgICAgICBNQ29uc3RUZXh0IGJvbGQxU3RyID0gbmV3IFN0eWxlZFRleHQoYm9sZDFTdHJfZ2V0U3RyaW5nLCBib2xkQXR0cnMpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBpdGFsaWMxU3RyX2dldFN0cmluZyA9ICJpIjsKKyAgICAgICAgTUNvbnN0VGV4dCBpdGFsaWMxU3RyID0gbmV3IFN0eWxlZFRleHQoaXRhbGljMVN0cl9nZXRTdHJpbmcsIGl0YWxpY0F0dHJzKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGxhaW4xU3RyX2dldFN0cmluZyA9ICJwIjsKKyAgICAgICAgTUNvbnN0VGV4dCBwbGFpbjFTdHIgPSBuZXcgU3R5bGVkVGV4dChwbGFpbjFTdHJfZ2V0U3RyaW5nLCBlbXB0eUF0dHJzKTsKKworICAgICAgICBTdHlsZWRUZXh0IHRlbXAgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGl0YWxpYzFTdHIpOworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcgPSBib2xkMVN0cl9nZXRTdHJpbmcuY29uY2F0KGl0YWxpYzFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgTUNvbnN0VGV4dCBib2xkSXRhbGljU3RyID0gdGVtcDsKKworICAgICAgICB0ZW1wID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJvbGQzU3RyX2dldFN0cmluZyA9ICJiYmIiOworICAgICAgICBNQ29uc3RUZXh0IGJvbGQzU3RyID0gdGVtcDsKKworICAgICAgICBNVGV4dCBidWYgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICBTdHJpbmcgcGxhaW5UZXh0ID0gbmV3IFN0cmluZygpOworICAgICAgICAvL2ludCB0ZXN0SXRlcmF0aW9uPTA7IC0gbm93IGluc3RhbmNlIHZhcmlhYmxlcyBzbyBlcnJsbiBjYW4gcmVwb3J0IGl0CisgICAgICAgIC8vaW50IHRoZUNhc2U9MDsKKworICAgICAgICBmaW5hbCBpbnQgTlVNX0NBU0VTID0gMTQ7CisgICAgICAgIGJvb2xlYW5bXSBjYXNlc0V4ZWN1dGVkID0gbmV3IGJvb2xlYW5bTlVNX0NBU0VTXTsKKyAgICAgICAgZmluYWwgaW50IHN0b3BBdCA9IC0xOworICAgICAgICBSYW5kb20gcmFuZCA9IG5ldyBSYW5kb20oUkFORF9TRUVEKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgQUxXQVlTX0RJRkZFUkVOVCA9ICJcdUZFRkYiOworCisgICAgICAgICAgICBmb3IgKHRlc3RJdGVyYXRpb249MDsgdGVzdEl0ZXJhdGlvbiA8IFRFU1RfSVRFUkFUSU9OUzsgdGVzdEl0ZXJhdGlvbisrKSB7CisKKyAgICAgICAgICAgICAgICB0aGVDYXNlID0gcmFuZEludChyYW5kLCBOVU1fQ0FTRVMpOworCisgICAgICAgICAgICAgICAgY2FzZXNFeGVjdXRlZFt0aGVDYXNlXSA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBpZiAodGVzdEl0ZXJhdGlvbiA9PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEl0ZXJhdGlvbiA9IHN0b3BBdDsgIC8vIENvbnZlbmllbnQgcGxhY2UgdG8gcHV0IGJyZWFrcG9pbnQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgdGltZVN0YW1wID0gYnVmLmdldFRpbWVTdGFtcCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBvbGRQbGFpblRleHQgPSBwbGFpblRleHQ7CisgICAgICAgICAgICAgICAgaWYgKG9sZFBsYWluVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJvbGRQbGFpblRleHQgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoZUNhc2UpIHsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgbmV3IHN0cmluZzsgcmVwbGFjZSBjaGFycyBhdCBzdGFydCB3aXRoIGRpZmZlcmVudCBzdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYm9sZDNTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMSwgaXRhbGljMVN0ciwgMCwgaXRhbGljMVN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAwLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gYm9sZDNTdHJfZ2V0U3RyaW5nLnN1YnN0cmluZygxLCBib2xkM1N0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBpdGFsaWMxU3RyX2dldFN0cmluZy5jb25jYXQocGxhaW5UZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAwLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBpdGFsaWMxU3RyX2dldFN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZShidWYubGVuZ3RoKCktMSwgYnVmLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgcGxhaW5UZXh0Lmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBzb21lIG9mIHRoZSBidWZmZXIgd2l0aCBib2xkSXRhbGljU3RyCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgclN0YXJ0ID0gcmFuZEludChyYW5kLCBidWYubGVuZ3RoKCkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgclN0b3AgPSByYW5kSW50KHJhbmQsIHJTdGFydCwgYnVmLmxlbmd0aCgpKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoclN0YXJ0LCByU3RvcCwgYm9sZEl0YWxpY1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld1N0cmluZyA9IChyU3RhcnQ+MCk/IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgclN0YXJ0KSA6IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdHJpbmcgPSBuZXdTdHJpbmcuY29uY2F0KGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoclN0b3AgPCBwbGFpblRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0cmluZyA9IG5ld1N0cmluZy5jb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhyU3RvcCwgcGxhaW5UZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBuZXdTdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBlYXRlZGx5IGluc2VydCBzdHJpbmdzIGludG8gdGhlIGNlbnRlciBvZiB0aGUgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc1BvcyA9IGJ1Zi5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgaW5zUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3VmZml4ID0gcGxhaW5UZXh0LnN1YnN0cmluZyhpbnNQb3MsIHBsYWluVGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1pZGRsZSA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpaT0wOyBpaTw0OyBpaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgd2hpY2ggPSAoaWklMj09MCk/IGJvbGRJdGFsaWNTdHIgOiBib2xkM1N0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHdoaWNoU3RyaW5nID0gKGlpJTI9PTApPyBib2xkSXRhbGljU3RyX2dldFN0cmluZyA6IGJvbGQzU3RyX2dldFN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXBQb3MgPSBpbnNQb3MrbWlkZGxlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KHRlbXBQb3MsIHdoaWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkZGxlID0gbWlkZGxlLmNvbmNhdCh3aGljaFN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHByZWZpeC5jb25jYXQobWlkZGxlKS5jb25jYXQoc3VmZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnQgYm9sZDFTdHIgYXQgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQoYm9sZDFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIGEgY2hhcmFjdGVyIGZyb20gdGhlIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsUG9zID0gcmFuZEludChyYW5kLCBidWYubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZShkZWxQb3MsIGRlbFBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHQuc3Vic3RyaW5nKDAsIGRlbFBvcykuY29uY2F0KHBsYWluVGV4dC5zdWJzdHJpbmcoZGVsUG9zKzEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIHBsYWluMVN0ciwgMCwgcGxhaW4xU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpbjFTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIChleGNlcHQgdGhlIGZpcnN0IGNoYXJhY3Rlcikgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBidWYubGVuZ3RoKCkgPiAxPyAxIDogMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShzdGFydCwgYnVmLmxlbmd0aCgpLCBidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQpLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAvLyBhcHBlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgdG8gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBjb250ZW50ID0gYnVmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoYnVmLmxlbmd0aCgpLCBjb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHQuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIGJ1ZmZlciB3aXRoIGJvbGRJdGFsaWNTdHIrYm9sZDNTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCByZXBsYWNlbWVudCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuYXBwZW5kKGJvbGRJdGFsaWNTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmFwcGVuZChib2xkM1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgYnVmLmxlbmd0aCgpLCByZXBsYWNlbWVudCwgMCwgcmVwbGFjZW1lbnQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nLmNvbmNhdChib2xkM1N0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCBib2xkMVN0ciBhdCBlbmQgLSBzYW1lIGFzIDQgYnV0IHVzZXMgZGlmZmVyZW50IEFQSQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDFTdHJfZ2V0U3RyaW5nLnRvQ2hhckFycmF5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDFTdHJfZ2V0U3RyaW5nLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZEF0dHJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQoYm9sZDFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhbGwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhbGwgLSBkaWZmZXJlbnQgd2F5CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKDAsIGJ1Zi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnQgJ2knIGF0IDNyZCBjaGFyYWN0ZXIgKG9yIGxhc3QsIGlmIGZld2VyIHRoYW4gMyBjaGFycykKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zUG9zID0gTWF0aC5taW4oYnVmLmxlbmd0aCgpLCAzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShpbnNQb3MsIGluc1BvcywgJ2knLCBpdGFsaWNBdHRycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gKHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgaW5zUG9zKSkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0KGl0YWxpYzFTdHJfZ2V0U3RyaW5nKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhpbnNQb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZXNPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpPdXQgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJ5dGVzT3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqT3V0LndyaXRlT2JqZWN0KGJ1Zik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZXNJbiA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXNPdXQudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9iakluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJ5dGVzSW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgPSAoTVRleHQpIG9iakluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyZWFtaW5nIHByb2JsZW06ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIGNhc2UuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGltZSBzdGFtcCBpZiBvbGRQbGFpblRleHQgIT0gbnVsbC4KKyAgICAgICAgICAgICAgICAvLyBUaW1lIHN0YW1wIHNob3VsZCBiZSBkaWZmZXJlbnQgaWZmCisgICAgICAgICAgICAgICAgLy8gb2xkUGxhaW5UZXh0ID09IHBsYWluVGV4dAorICAgICAgICAgICAgICAgIGlmIChvbGRQbGFpblRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHRpbWVTdGFtcD09YnVmLmdldFRpbWVTdGFtcCgpKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0LmVxdWFscyhwbGFpblRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigicGxhaW5UZXh0IGhhc2hDb2RlOiAiICsgcGxhaW5UZXh0Lmhhc2hDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm9sZFBsYWluVGV4dCBoYXNoQ29kZTogIiArIG9sZFBsYWluVGV4dC5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIGlzIGluY29ycmVjdCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gbm93IGNoZWNrIGludmFyaWFudHM6CisgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5sZW5ndGgoKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkxlbmd0aHMgZG9uJ3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGogPCBidWYubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmF0KGopICE9IHBsYWluVGV4dC5jaGFyQXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJzIGRvbid0IG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAgICAgICAgIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IGJ1Zi5sZW5ndGgoKTspIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3R5bGUgc3RhcnQgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInN0YXJ0ID49IGxpbWl0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2hhciBjdXJyZW50ID0gcGxhaW5UZXh0LmNoYXJBdChzdGFydCk7CisKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNvbXAgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSAncCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBlbXB0eUF0dHJzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gJ2InKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wID0gYm9sZEF0dHJzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gJ2knKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wID0gaXRhbGljQXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQW4gaW52YWxpZCBjaGFyYWN0ZXIgc251Y2sgaW4hIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3RhcnRTdHlsZSA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wLmVxdWFscyhzdGFydFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIG5vdCBleHBlY3RlZCBzdHlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBzdGFydDsgaiA8IGxpbWl0OyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFpblRleHQuY2hhckF0KGopICE9IGN1cnJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGRvZXNuJ3QgbWF0Y2ggc3R5bGUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlQXQoaikgIT0gc3RhcnRTdHlsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc3R5bGUgaW4gcnVuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgPCBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFpblRleHQuY2hhckF0KGxpbWl0KSA9PSBjdXJyZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIHJ1biBlbmRzIHRvbyBzb29uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzdGFydCAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkxhc3QgbGltaXQgaXMgbm90IGJ1ZmZlciBsZW5ndGguIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gd29uJ3QgdHJ5IHRvIGNvbXB1dGUgYW5kIGNoZWNrIGRhbWFnZWQgcmFuZ2U7ICBob3dldmVyLAorICAgICAgICAgICAgICAgIC8vIGlmIG5vbmVtcHR5IGl0IHNob3VsZCBhbHdheXMgYmUgd2l0aGluIHRleHQKKyAgICAgICAgICAgICAgICBpbnQgZGFtYWdlU3RhcnQgPSBidWYuZGFtYWdlZFJhbmdlU3RhcnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgZGFtYWdlTGltaXQgPSBidWYuZGFtYWdlZFJhbmdlTGltaXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgPT0gSW50ZWdlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRhbWFnZUxpbWl0ICE9IEludGVnZXIuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBlbXB0eSBpbnRlcnZhbCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgPiBkYW1hZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBpbnZlcnRlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA8IDAgfHwgZGFtYWdlTGltaXQgPiBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEYW1hZ2UgcmFuZ2UgZW5kcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIHRlc3RJdGVyYXRpb24gPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGFsbENhc2VzRXhlY3V0ZWQgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpbmRleD0wOyBpbmRleCA8IE5VTV9DQVNFUzsgaW5kZXgrKykgeworICAgICAgICAgICAgYWxsQ2FzZXNFeGVjdXRlZCAmPSBjYXNlc0V4ZWN1dGVkW2luZGV4XTsKKyAgICAgICAgICAgIGlmIChjYXNlc0V4ZWN1dGVkW2luZGV4XSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJDYXNlICIgKyBpbmRleCArICIgbm90IGV4ZWN1dGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vaWYgKGFsbENhc2VzRXhlY3V0ZWQpIHsKKyAgICAgICAgLy8gICAgbG9nbG4oIkFsbCBjYXNlcyBleGVjdXRlZC4iKTsKKyAgICAgICAgLy99CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dFN0cmVhbWluZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dFN0cmVhbWluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwNTc3MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0U3RyZWFtaW5nLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0YW5kYXJkVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworcHVibGljIGNsYXNzIFRlc3RNVGV4dFN0cmVhbWluZyBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RNVGV4dFN0cmVhbWluZygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdE1UZXh0U3RyZWFtaW5nKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgc2ltcGxlVGVzdCgpOworICAgICAgICBhbGxBdHRyaWJ1dGVzVGVzdCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzaW1wbGVUZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIkhlbGxvIHdvcmxkISIsIHN0eWxlKTsKKworICAgICAgICBzdHJlYW1BbmRDb21wYXJlKHRleHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRlc3RNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZWYWx1ZTsKKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlKGZLZXksIGZWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBUZXN0TW9kaWZpZXIoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgICAgICBmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhbGxBdHRyaWJ1dGVzVGVzdCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJIZWxsbyB3b3JsZCEiLCBzdHlsZSk7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBDSEFSQUNURVIgPSB0cnVlOworICAgICAgICBmaW5hbCBib29sZWFuIFBBUkFHUkFQSCA9IGZhbHNlOworCisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLkZBTUlMWSwgIlRpbWVzIiwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgbGVuZ3RoLzIsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMTMuN2YpLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCBsZW5ndGgvMiwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQiwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwgQ29sb3IuYmx1ZSwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuQkFDS0dST1VORCwgQ29sb3IucmVkLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgtMSwgVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILCBCb29sZWFuLlRSVUUsIENIQVJBQ1RFUik7CisKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLkVYVFJBX0xJTkVfU1BBQ0lORywgbmV3IEZsb2F0KDQpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsIG5ldyBGbG9hdCg2KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLk1JTl9MSU5FX1NQQUNJTkcsIG5ldyBGbG9hdCg3KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsIFRleHRBdHRyaWJ1dGUuRkxVU0hfVFJBSUxJTkcsIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgbmV3IEZsb2F0KDkpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBuZXcgRmxvYXQoOSksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCksIFBBUkFHUkFQSCk7CisKKyAgICAgICAgc3RyZWFtQW5kQ29tcGFyZSh0ZXh0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZFN0eWxlKE1UZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gbmV3IFRlc3RNb2RpZmllcihrZXksIHZhbHVlKTsKKworICAgICAgICBpZiAoY2hhcmFjdGVyKSB7CisgICAgICAgICAgICB0ZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhzdGFydCwgbGltaXQsIG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKHN0YXJ0LCBsaW1pdCwgbW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3RyZWFtQW5kQ29tcGFyZShNVGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ5dGVzT3V0ID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9iak91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZXNPdXQpOworICAgICAgICAgICAgb2JqT3V0LndyaXRlT2JqZWN0KHRleHQpOworCisgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBieXRlc0luID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXNPdXQudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpJbiA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShieXRlc0luKTsKKyAgICAgICAgICAgIE1UZXh0IHN0cmVhbWVkVGV4dCA9IChNVGV4dCkgb2JqSW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgaWYgKCFpc0VxdWFsKHRleHQsIHN0cmVhbWVkVGV4dCkpIHsKKyAgICAgICAgICAgICAgICBpc0VxdWFsKHRleHQsIHN0cmVhbWVkVGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0cmVhbWVkIHRleHQgaXMgbm90IGVxdWFsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8qICAgICAgICBjYXRjaChPcHRpb25hbERhdGFFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0qLworICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiU2VyaWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNFcXVhbChNVGV4dCBsaHMsIE1UZXh0IHJocykgeworCisgICAgICAgIHJldHVybiBsaHMuZXF1YWxzKHJocyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0UGFyYWdyYXBoU3R5bGVzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdFBhcmFncmFwaFN0eWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhNTI0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdFBhcmFncmFwaFN0eWxlcy5qYXZhCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdFBhcmFncmFwaFN0eWxlcyBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RQYXJhZ3JhcGhTdHlsZXMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJBTkRfU0VFRCA9IDEyMzQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTV9URVNUUyA9IDI1MDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUGFyYWdyYXBoQnJlYWsoY2hhciBjKSB7CisKKyAgICAgICAgcmV0dXJuIGMgPT0nXHUyMDI5JyB8fCBjID09ICdcbic7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEtFWSA9ICJLRVkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBQTEFJTiA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBBX1NUWUxFID0gbmV3IEF0dHJpYnV0ZU1hcChLRVksIG5ldyBDaGFyYWN0ZXIoJ2EnKSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBBX01PRCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQV9TVFlMRSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEJfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignYicpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIEJfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihCX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgQ19TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdjJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgQ19NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKENfU1RZTEUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBEX1NUWUxFID0gbmV3IEF0dHJpYnV0ZU1hcChLRVksIG5ldyBDaGFyYWN0ZXIoJ2QnKSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBEX01PRCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoRF9TVFlMRSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEVfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignZScpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIEVfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihFX1NUWUxFKTsKKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZWFzeVRlc3RzKCk7CisgICAgICAgIHJhbmRvbVRlc3QoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZWFzeVRlc3RzKCkgeworCisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiYVxuYlxuY1xuZFxuIiwgUExBSU4pOworICAgICAgICB0ZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCB0ZXh0Lmxlbmd0aCgpLCBBX01PRCk7CisgICAgICAgIHZlcmlmeVBhcmFncmFwaENvdW50KHRleHQpOworCisgICAgICAgIE1UZXh0IHNyYyA9IG5ldyBTdHlsZWRUZXh0KCJYWFhcbllZWSIsIFBMQUlOKTsKKyAgICAgICAgc3JjLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCBzcmMubGVuZ3RoKCksIEJfTU9EKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQoc3JjKTsKKworICAgICAgICBNVGV4dCB0ZW1wID0gdGV4dC5leHRyYWN0V3JpdGFibGUoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHRlbXAuYXBwZW5kKHNyYyk7CisgICAgICAgIHZlcmlmeVBhcmFncmFwaENvdW50KHRlbXApOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghdGVtcC5wYXJhZ3JhcGhTdHlsZUF0KGkpLmVxdWFscyh0ZXh0LnBhcmFncmFwaFN0eWxlQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcmFncmFwaCBzdHlsZXMgYXJlIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc3JjLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghdGVtcC5wYXJhZ3JhcGhTdHlsZUF0KGkrdGV4dC5sZW5ndGgoKSkuZXF1YWxzKHNyYy5wYXJhZ3JhcGhTdHlsZUF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJhZ3JhcGggc3R5bGVzIGFyZSB3cm9uZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcCA9IHRleHQuZXh0cmFjdFdyaXRhYmxlKDAsIHRleHQubGVuZ3RoKCkpOworICAgICAgICB0ZW1wLnJlcGxhY2UoMCwgMSwgc3JjLCAwLCBzcmMubGVuZ3RoKCkpOworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudCh0ZW1wKTsKKyAgICAgICAgaWYgKHRlbXAucGFyYWdyYXBoTGltaXQoMCkgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oIlBhcmFncmFwaCBsaW1pdCBpcyB3cm9uZyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdGVtcC5wYXJhZ3JhcGhTdHlsZUF0KDApLmVxdWFscyhCX1NUWUxFKSkgeworICAgICAgICAgICAgZXJybG4oIkZpcnN0IHN0eWxlIGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoNCkuZXF1YWxzKEFfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiU3R5bGUgYWZ0ZXIgaW5zZXJ0IGlzIHdyb25nIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IGFwcGVuZAorICAgICAgICBNQ29uc3RUZXh0IG5ld1NyYyA9IHNyYy5leHRyYWN0KDQsIDcpOworICAgICAgICBNVGV4dCBpbml0QyA9IG5ldyBTdHlsZWRUZXh0KCJjY2NjY2MiLCBQTEFJTik7CisgICAgICAgIGluaXRDLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCBpbml0Qy5sZW5ndGgoKSwgQ19NT0QpOworICAgICAgICBpbml0Qy5hcHBlbmQobmV3U3JjKTsKKyAgICAgICAgLy8gbm93IGluaXRDIHNob3VsZCBiZSBvbmUgcGFyYWdyYXBoIHdpdGggc3R5bGUgQgorICAgICAgICBpZiAoaW5pdEMucGFyYWdyYXBoTGltaXQoMCkgIT0gaW5pdEMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTaG91bGQgb25seSBiZSBvbmUgcGFyYWdyYXBoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluaXRDLnBhcmFncmFwaFN0eWxlQXQoMCkgIT0gaW5pdEMucGFyYWdyYXBoU3R5bGVBdChpbml0Qy5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUd28gZGlmZmVyZW50IHBhcmFncmFwaCBzdHlsZXMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWluaXRDLnBhcmFncmFwaFN0eWxlQXQoaW5pdEMubGVuZ3RoKCkvMikuZXF1YWxzKEJfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHBhcmFncmFwaCBzdHlsZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoImFhYVxuIiwgUExBSU4pOworICAgICAgICB0ZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCB0ZXh0Lmxlbmd0aCgpLCBBX01PRCk7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKHRleHQubGVuZ3RoKCksIHRleHQubGVuZ3RoKCksIEJfTU9EKTsKKyAgICAgICAgaWYgKHRleHQucGFyYWdyYXBoU3R5bGVBdCh0ZXh0Lmxlbmd0aCgpKSAhPSBCX1NUWUxFKSB7CisgICAgICAgICAgICBlcnJsbigiMC1sZW5ndGggcGFyYWdyYXBoIGF0IGVuZCBoYXMgaW5jb3JyZWN0IHN0eWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcmFuZEludChSYW5kb20gcmFuZCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIHJhbmRJbnQocmFuZCwgMCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSYW5nZSBpcyAwLWxlbmd0aC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdGFydCA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0ICsgKE1hdGguYWJzKHJhbmQubmV4dEludCgpKSUobGltaXQtc3RhcnQpKSA7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJhbmRvbVRlc3QoKSB7CisKKyAgICAgICAgTVRleHQgbm9QYXJhZ3JhcGggPSBuZXcgU3R5bGVkVGV4dCgienp6eiIsIFBMQUlOKTsKKyAgICAgICAgbm9QYXJhZ3JhcGgubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIG5vUGFyYWdyYXBoLmxlbmd0aCgpLCBBX01PRCk7CisgICAgICAgIE1UZXh0IHR3b1BhcmFncmFwaHMgPSBuZXcgU3R5bGVkVGV4dCgiYWFhXG5iYmIiLCBQTEFJTik7CisgICAgICAgIHR3b1BhcmFncmFwaHMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHR3b1BhcmFncmFwaHMucGFyYWdyYXBoTGltaXQoMCksIEJfTU9EKTsKKyAgICAgICAgTVRleHQgdGhyZWVQYXJhZ3JhcGhzID0gbmV3IFN0eWxlZFRleHQoImNjXG5kZFxuZWUiLCBQTEFJTik7CisgICAgICAgIHRocmVlUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgMywgQ19NT0QpOworICAgICAgICB0aHJlZVBhcmFncmFwaHMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDMsIDYsIERfTU9EKTsKKyAgICAgICAgdGhyZWVQYXJhZ3JhcGhzLm1vZGlmeVBhcmFncmFwaFN0eWxlcyg2LCA4LCBFX01PRCk7CisgICAgICAgIE1UZXh0IHRyYWlsaW5nUDEgPSBuZXcgU3R5bGVkVGV4dCgiaGhoaFxuIiwgUExBSU4pOworICAgICAgICB0cmFpbGluZ1AxLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCB0cmFpbGluZ1AxLnBhcmFncmFwaExpbWl0KDApLCBDX01PRCk7CisgICAgICAgIE1UZXh0IHRyYWlsaW5nUDIgPSBuZXcgU3R5bGVkVGV4dCgiaWlpXG4iLCBQTEFJTik7CisgICAgICAgIHRyYWlsaW5nUDIubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIDAsIERfTU9EKTsKKyAgICAgICAgdHJhaWxpbmdQMi5tb2RpZnlQYXJhZ3JhcGhTdHlsZXModHJhaWxpbmdQMi5sZW5ndGgoKSwgdHJhaWxpbmdQMi5sZW5ndGgoKSwgQl9NT0QpOworCisgICAgICAgIGlmICghdHJhaWxpbmdQMi5wYXJhZ3JhcGhTdHlsZUF0KHRyYWlsaW5nUDIubGVuZ3RoKCktMSkuZXF1YWxzKERfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiU3R5bGUgaW5jb3JyZWN0IGluIHRyYWlsaW5nUDIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRyYWlsaW5nUDIucGFyYWdyYXBoU3R5bGVBdCh0cmFpbGluZ1AyLmxlbmd0aCgpKS5lcXVhbHMoQl9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFbmRpbmcgc3R5bGUgaW5jb3JyZWN0IGluIHRyYWlsaW5nUDIiKTsKKyAgICAgICAgfQorCisgICAgICAgIE1Db25zdFRleHRbXSB0ZXN0cyA9IHsgbm9QYXJhZ3JhcGgsIHR3b1BhcmFncmFwaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlZVBhcmFncmFwaHMsIHRyYWlsaW5nUDEsIHRyYWlsaW5nUDIgfTsKKworICAgICAgICBSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbShSQU5EX1NFRUQpOworCisgICAgICAgIGludCBzdG9wQXQgPSA0NjU7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgTlVNX1RFU1RTOyBpKyspIHsKKworICAgICAgICAgICAgICAgIGludCBzcmNJbmRleCA9IHJhbmRJbnQocmFuZG9tLCB0ZXN0cy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGludCB0YXJnZXRJbmRleCA9IHJhbmRJbnQocmFuZG9tLCB0ZXN0cy5sZW5ndGgpOworICAgICAgICAgICAgICAgIE1UZXh0IHRhcmdldCA9IG5ldyBTdHlsZWRUZXh0KHRlc3RzW3RhcmdldEluZGV4XSk7CisgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmMgPSB0ZXN0c1tzcmNJbmRleF07CisKKyAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQgPSByYW5kSW50KHJhbmRvbSwgc3JjLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQgPSByYW5kSW50KHJhbmRvbSwgc3JjU3RhcnQsIHNyYy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gcmFuZEludChyYW5kb20sIHRhcmdldC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gcmFuZEludChyYW5kb20sIHN0YXJ0LCB0YXJnZXQubGVuZ3RoKCkpOworCisgICAgICAgICAgICAgICAgaWYgKGkgPT0gc3RvcEF0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BBdCA9IGk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW5zZXJ0QW5kQ2hlY2soc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsIHRhcmdldCwgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChpIDwgTlVNX1RFU1RTKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIml0ZXJhdGlvbj0iICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaW5zZXJ0QW5kQ2hlY2soTUNvbnN0VGV4dCBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCB0YXJnZXQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgLy8gcC1zdHlsZSBhZnRlciBpbnNlcnRpb24KKyAgICAgICAgQXR0cmlidXRlTWFwIGFmdGVyOworICAgICAgICBpZiAobGltaXQgPT0gdGFyZ2V0Lmxlbmd0aCgpICYmIHNyY0xpbWl0ID4gc3JjU3RhcnQpIHsKKyAgICAgICAgICAgIGFmdGVyID0gc3JjLnBhcmFncmFwaFN0eWxlQXQoc3JjTGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWZ0ZXIgPSB0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICBBdHRyaWJ1dGVNYXAgYmVmb3JlOworICAgICAgICBib29sZWFuIHNyY0hhc1BCcmVhayA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpPXNyY1N0YXJ0OyBpIDwgc3JjTGltaXQ7IGkrKykgeworICAgICAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsoc3JjLmF0KGkpKSkgeworICAgICAgICAgICAgICAgIHNyY0hhc1BCcmVhayA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnQgPiAwICYmIGlzUGFyYWdyYXBoQnJlYWsodGFyZ2V0LmF0KHN0YXJ0LTEpKSkgeworICAgICAgICAgICAgYmVmb3JlID0gdGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoc3RhcnQtMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBiZWZvcmUgPSBzcmNIYXNQQnJlYWs/IHNyYy5wYXJhZ3JhcGhTdHlsZUF0KHNyY1N0YXJ0KSA6IGFmdGVyOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gc3R5bGVQcm9wb2dhdGVkID0gIWJlZm9yZS5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoTWF0aC5tYXgoMCwgc3RhcnQtMSkpKTsKKworCisgICAgICAgIHRhcmdldC5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICB0YXJnZXQucmVwbGFjZShzdGFydCwgbGltaXQsIHNyYywgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgZmluYWwgaW50IGRhbWFnZUxpbWl0ID0gKHN0YXJ0PT1saW1pdCAmJiBzcmNTdGFydD09c3JjTGltaXQpPworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci5NSU5fVkFMVUUgOiBzdGFydCArIChzcmNMaW1pdC1zcmNTdGFydCk7CisKKyAgICAgICAgaWYgKHRhcmdldC5kYW1hZ2VkUmFuZ2VMaW1pdCgpICE9IGRhbWFnZUxpbWl0KSB7CisgICAgICAgICAgICBsb2dsbigibGltaXQ6ICIgKyBkYW1hZ2VMaW1pdCArICI7ICB0YXJnZXQubGltaXQ6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGFtYWdlZFJhbmdlTGltaXQoKSk7CisgICAgICAgICAgICBlcnJsbigiRGFtYWdlZCByYW5nZSBsaW1pdCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBkYW1hZ2VTdGFydCA9IChkYW1hZ2VMaW1pdD09SW50ZWdlci5NSU5fVkFMVUUpPyBJbnRlZ2VyLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAgICAgKHN0eWxlUHJvcG9nYXRlZD8gdGFyZ2V0LnBhcmFncmFwaFN0YXJ0KE1hdGgubWF4KDAsIHN0YXJ0LTEpKSA6IHN0YXJ0KTsKKyAgICAgICAgaWYgKHRhcmdldC5kYW1hZ2VkUmFuZ2VTdGFydCgpID4gZGFtYWdlU3RhcnQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJzdGFydDogIiArIGRhbWFnZVN0YXJ0ICsgIjsgIHRhcmdldC5zdGFydDogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYW1hZ2VkUmFuZ2VTdGFydCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJEYW1hZ2VkIHJhbmdlIHN0YXJ0IGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGFyZ2V0KTsKKworICAgICAgICAvLyBjaGVjayBlbmRwb2ludHMKKyAgICAgICAgaWYgKCFiZWZvcmUuZXF1YWxzKHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KE1hdGgubWF4KHN0YXJ0LTEsIDApKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIGJlZm9yZSBtb2RpZmllZCByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aERlbHRhID0gKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIChsaW1pdC1zdGFydCk7CisgICAgICAgIGludCBpbmRleEFmdGVySW5zZXJ0ID0gTWF0aC5taW4odGFyZ2V0Lmxlbmd0aCgpLCBsaW1pdCArIGxlbmd0aERlbHRhKTsKKyAgICAgICAgaWYgKCFhZnRlci5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoaW5kZXhBZnRlckluc2VydCkpKSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHBhcmFncmFwaCBzdHlsZSBhZnRlciBtb2RpZmllZCByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNyY0hhc1BCcmVhaykgeworICAgICAgICAgICAgaW50IHN0YXJ0UCA9IHRhcmdldC5wYXJhZ3JhcGhMaW1pdChzdGFydCk7CisgICAgICAgICAgICBpbnQgbGltaXRPZlRlc3QgPSB0YXJnZXQucGFyYWdyYXBoU3RhcnQoaW5kZXhBZnRlckluc2VydCk7CisKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBzdGFydCAtIHNyY1N0YXJ0OworCisgICAgICAgICAgICB3aGlsZSAoc3RhcnRQIDwgbGltaXRPZlRlc3QpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXRQID0gdGFyZ2V0LnBhcmFncmFwaExpbWl0KHN0YXJ0UCk7CisgICAgICAgICAgICAgICAgaWYgKHNyYy5wYXJhZ3JhcGhMaW1pdChzdGFydFAtb2Zmc2V0KSArIG9mZnNldCAhPSBsaW1pdFApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcmFncmFwaCBsaW1pdHMgYXJlIG5vdCBjb25zaXN0ZW50Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghc3JjLnBhcmFncmFwaFN0eWxlQXQoc3RhcnRQLW9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoc3RhcnRQKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcmFncmFwaCBzdHlsZXMgYXJlIG5vdCBjb25zaXN0ZW50Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXJ0UCA9IGxpbWl0UDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9c3RhcnQ7IGkgPCBzdGFydCsoc3JjTGltaXQtc3JjU3RhcnQpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcmFncmFwaCBzdHlsZSBjaGFuZ2VkIHVuZXhwZWN0ZWRseSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB2ZXJpZnlQYXJhZ3JhcGhDb3VudChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBpbnQgcENvdW50ID0gMDsKKyAgICAgICAgaW50IHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGlmICh0ZXh0TGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHBDb3VudCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBzPTA7IHMgPCB0ZXh0TGVuZ3RoOyBzID0gdGV4dC5wYXJhZ3JhcGhMaW1pdChzKSkgeworICAgICAgICAgICAgICAgIHBDb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsodGV4dC5hdCh0ZXh0TGVuZ3RoLTEpKSkgeworICAgICAgICAgICAgICAgIHBDb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHNlcENvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgdGV4dExlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayh0ZXh0LmF0KGkpKSkgeworICAgICAgICAgICAgICAgIHNlcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VwQ291bnQgKyAxICE9IHBDb3VudCkgeworICAgICAgICAgICAgbG9nbG4oInNlcENvdW50PSIgKyBzZXBDb3VudCArICI7ICBwQ291bnQ9IiArIHBDb3VudCk7CisgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIGNvdW50IGlzIG5vdCBjb25zaXN0ZW50IHdpdGggY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrRW5kcG9pbnQoTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgYm9vbGVhbiBlbXB0eUZpbmFsUGFyYWdyYXBoOworICAgICAgICBpbnQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKworICAgICAgICBpZiAobGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmF0KGxlbmd0aC0xKTsKKyAgICAgICAgICAgIGVtcHR5RmluYWxQYXJhZ3JhcGggPSBpc1BhcmFncmFwaEJyZWFrKGNoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVtcHR5RmluYWxQYXJhZ3JhcGggPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCh0ZXh0LnBhcmFncmFwaFN0YXJ0KGxlbmd0aCkgPT0gbGVuZ3RoKSAhPSBlbXB0eUZpbmFsUGFyYWdyYXBoKSB7CisgICAgICAgICAgICBlcnJsbigiRmluYWwgcGFyYWdyYXBoIGxlbmd0aCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9BcHBDbG9zZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiYzliZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9BcHBDbG9zZXIuamF2YQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5XaW5kb3c7CisKK2NsYXNzIEFwcENsb3NlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGZDb3VudCA9IDA7CisKKyAgICBwcml2YXRlIFdpbmRvd0FkYXB0ZXIgZkFkYXB0ZXIgPSBuZXcgV2luZG93QWRhcHRlcigpIHsKKworICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgIC0tZkNvdW50OworICAgICAgICAgICAgaWYgKGZDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBXaW5kb3cgdyA9IGUuZ2V0V2luZG93KCk7CisgICAgICAgICAgICB3LnNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgdy5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgcHVibGljIHZvaWQgbGlzdGVuVG9GcmFtZShGcmFtZSBmcmFtZSkgeworCisgICAgICAgICsrZkNvdW50OworICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihmQWRhcHRlcik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0JpZGlEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWIyNmVlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0JpZGlEZW1vLmphdmEKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0YXBwczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKKworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEJpZGlEZW1vIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXBwQ2xvc2VyIGZnTGlzdGVuZXIgPSBuZXcgQXBwQ2xvc2VyKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAiY29tLmlibS5yaWNodGV4dC50ZXh0YXBwcy5yZXNvdXJjZXMuU2FtcGxlIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgU3RyaW5nIGRvY05hbWU7CisgICAgICAgIAorICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgZG9jTmFtZSA9ICJkZWZhdWx0IjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRvY05hbWUgPSBhcmdzWzBdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvcGVuVGV4dChkb2NOYW1lKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIG9wZW5UZXh0KFN0cmluZyBkb2NOYW1lKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShCVU5ETEVfTkFNRSk7CisKKyAgICAgICAgICAgIE9iamVjdCBkb2N1bWVudCA9IGJ1bmRsZS5nZXRPYmplY3QoZG9jTmFtZSsiLnNhbXBsZSIpOworICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQgaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoKFN0cmluZylkb2N1bWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFVSTCB1cmwgPSAoVVJMKSBkb2N1bWVudDsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpbiA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbSh1cmwub3BlblN0cmVhbSgpKTsKKyAgICAgICAgICAgICAgICB0ZXh0ID0gKE1Db25zdFRleHQpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBidW5kbGUuZ2V0U3RyaW5nKGRvY05hbWUrIi5uYW1lIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1ha2VGcmFtZSh0ZXh0LCBuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgdC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgbWFrZUZyYW1lKE1Db25zdFRleHQgdGV4dCwgU3RyaW5nIHRpdGxlKSB7CisKKyAgICAgICAgVGV4dEZyYW1lIGZyYW1lID0gbmV3IFRleHRGcmFtZSh0ZXh0LCB0aXRsZSwgCisgICAgICAgICAgICAgICAgVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpKTsKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSg1NTAsIDcwMCk7CisgICAgICAgIGZyYW1lLnNob3coKTsKKyAgICAgICAgZmdMaXN0ZW5lci5saXN0ZW5Ub0ZyYW1lKGZyYW1lKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9GaWxlVXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0ZpbGVVdGlscy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhZWFmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9GaWxlVXRpbHMuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0YXBwczsKKworaW1wb3J0IGphdmEuYXd0LkZpbGVEaWFsb2c7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5pby4qOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworCitwdWJsaWMgY2xhc3MgRmlsZVV0aWxzIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogUHJlc2VudCB0aGUgdXNlciB3aXRoIGEgZmlsZSBkaWFsb2csIGFuZCByZXBsYWNlCisgICAgICogZGVzdCB3aXRoIHRoZSBNVGV4dCBpbiB0aGUgc2VsZWN0ZWQgZmlsZSwgYW5kIHJldHVybgorICAgICAqIHRoZSBmaWxlIG9iamN0LiAgSWYgYW55IGVycm9ycyBvY2N1ciwgcmV0dXJuIG51bGwgYW5kCisgICAgICogZG8gbm90IG1vZGlmeSBkZXN0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRmlsZSB1c2VyTG9hZE1UZXh0KFN0cmluZyB0aXRsZSwgTVRleHQgZGVzdCwgRnJhbWUgb3duZXIpIHsKKworICAgICAgICBGaWxlRGlhbG9nIGRpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKG93bmVyLCB0aXRsZSwgRmlsZURpYWxvZy5MT0FEKTsKKyAgICAgICAgZGlhbG9nLnNob3coKTsKKyAgICAgICAgU3RyaW5nIGZpbGVTdHIgPSBkaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICBTdHJpbmcgZGlyU3RyID0gZGlhbG9nLmdldERpcmVjdG9yeSgpOworCisgICAgICAgIGlmIChmaWxlU3RyICE9IG51bGwpIHsKKyAgICAgICAgICAgIEZpbGUgcnZhbCA9IG5ldyBGaWxlKGRpclN0ciwgZmlsZVN0cik7CisgICAgICAgICAgICBNQ29uc3RUZXh0IHNyYyA9IGxvYWRNVGV4dChydmFsKTsKKyAgICAgICAgICAgIGlmIChzcmMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRlc3QucmVwbGFjZUFsbChzcmMpOworICAgICAgICAgICAgICAgIHJldHVybiBydmFsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGV4dCBzZXJpYWxpemVkIGluIHRoZSBnaXZlbiBmaWxlLgorICAgICAqIEluIGNhc2Ugb2YgYW4gZXJyb3IgcmV0dXJuIG51bGwuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBNQ29uc3RUZXh0IGxvYWRNVGV4dChGaWxlIGZpbGUpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3I7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpblN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5TdHJlYW0pOworCisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSAoTUNvbnN0VGV4dCkgb2JqU3RyZWFtLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGluU3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIHRoZSBmaWxlIGlmIGZpbGUgaXMgbnVsbC4gIFRoZW4gc2F2ZSB0aGUKKyAgICAgKiB0ZXh0IGluIHRoZSBmaWxlLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBGaWxlIHVzZXJTYXZlTVRleHQoRmlsZSBmaWxlLCBTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgdGV4dCwgRnJhbWUgb3duZXIpIHsKKworICAgICAgICBpZiAoZmlsZSA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIEZpbGVEaWFsb2cgZGlhbG9nID0gbmV3IEZpbGVEaWFsb2cob3duZXIsIHRpdGxlLCBGaWxlRGlhbG9nLlNBVkUpOworICAgICAgICAgICAgZGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlU3RyID0gZGlhbG9nLmdldEZpbGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBkaXJTdHIgPSBkaWFsb2cuZ2V0RGlyZWN0b3J5KCk7CisKKyAgICAgICAgICAgIGlmIChmaWxlU3RyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmaWxlID0gbmV3IEZpbGUoZGlyU3RyLCBmaWxlU3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmaWxlICE9IG51bGwpIHsKKworICAgICAgICAgICAgc2F2ZU1UZXh0KGZpbGUsIHRleHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbGU7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNhdmVNVGV4dChGaWxlIGZpbGUsIE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvcjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT3V0cHV0U3RyZWFtIG91dFN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9ialN0cmVhbSA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0ob3V0U3RyZWFtKTsKKworICAgICAgICAgICAgb2JqU3RyZWFtLndyaXRlT2JqZWN0KHRleHQpOworICAgICAgICAgICAgb3V0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKworICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvTVRleHRUb1N0cmluZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvTVRleHRUb1N0cmluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlMDlkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9NVGV4dFRvU3RyaW5nLmphdmEKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0YXBwczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgTVRleHRUb1N0cmluZyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgd3JpdGVNVGV4dEFzU3RyaW5nKGFyZ3NbMF0sIGFyZ3NbMV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiBNVGV4dFRvU3RyaW5nIGluRmlsZSBvdXRGaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIG11c3QgYmUgYSBzZXJpYWxpemVkIE1Db25zdFRleHQiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPbiBleGl0LCBvdXRGaWxlIHdpbGwgYmUgYSBzZXJpYWxpemVkIFN0cmluZyAiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluRmlsZSBhbmQgb3V0RmlsZSBtdXN0IG5vdCBiZSB0aGUgc2FtZS4iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlTVRleHRBc1N0cmluZyhTdHJpbmcgaW5GaWxlLCBTdHJpbmcgb3V0RmlsZSkgeworCisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGluRmlsZSk7CisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IEZpbGVVdGlscy5sb2FkTVRleHQoZmlsZSk7CisKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgY2hhcltdIGNoID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgICAgICB0ZXh0LmV4dHJhY3RDaGFycygwLCBjaC5sZW5ndGgsIGNoLCAwKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKGNoKTsKKyAgICAgICAgICAgIHdyaXRlU3RyaW5nKHN0ciwgb3V0RmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhbid0IHJlYWQgaW5GaWxlLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlU3RyaW5nKFN0cmluZyBzdHJpbmdUb1dyaXRlLCBTdHJpbmcgb3V0RmlsZSkgeworCisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKG91dEZpbGUpOworICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShvdXRTdHJlYW0pOworCisgICAgICAgICAgICBvYmpTdHJlYW0ud3JpdGVPYmplY3Qoc3RyaW5nVG9Xcml0ZSk7CisgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9TdHJpbmdUb01UZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9TdHJpbmdUb01UZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY5ODVjMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YQpAQCAtMCwwICsxLDc2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVG9NVGV4dCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAyIHx8IGFyZ3NbMF0uZXF1YWxzKGFyZ3NbMV0pKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGxvYWRTdHJpbmcobmV3IEZpbGUoYXJnc1swXSkpOworICAgICAgICAgICAgaWYgKHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkIFN0cmluZyBmcm9tIGZpbGUgIiArIGFyZ3NbMF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoc3RyLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgICAgICBGaWxlVXRpbHMuc2F2ZU1UZXh0KG5ldyBGaWxlKGFyZ3NbMV0pLCB0ZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogU3RyaW5nVG9NVGV4dCBpbkZpbGUgb3V0RmlsZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluRmlsZSBtdXN0IGJlIGEgc2VyaWFsaXplZCBTdHJpbmciKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPbiBleGl0LCBvdXRGaWxlIHdpbGwgYmUgYSBzZXJpYWxpemVkIE1UZXh0ICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbkZpbGUgYW5kIG91dEZpbGUgbXVzdCBub3QgYmUgdGhlIHNhbWUuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGxvYWRTdHJpbmcoRmlsZSBmaWxlKSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gaW5TdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluU3RyZWFtKTsKKworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IChTdHJpbmcpIG9ialN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpblN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuIHN0cjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1Rlc3RNVGV4dFRvU3RyaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGFiYTU5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1Rlc3RNVGV4dFRvU3RyaW5nLmphdmEKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0YXBwczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RNVGV4dFRvU3RyaW5nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAyIHx8IGFyZ3NbMF0uZXF1YWxzKGFyZ3NbMV0pKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYm9vbGVhbiBzdWNjZXNzID0gdGVzdE1UZXh0VG9TdHJpbmcoYXJnc1swXSwgYXJnc1sxXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VjY2Vzcz8gIlBBU1NFRCIgOiAiRkFJTEVEIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IFRlc3RNVGV4dFRvU3RyaW5nIG10ZXh0RmlsZSBzdHJpbmdGaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29tcGFyZXMgdGhlIGNoYXJhY3RlcnMgaW4gbXRleHRGaWxlIHRvIHRoZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyBpbiBzdHJpbmdGaWxlLiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdGVzdE1UZXh0VG9TdHJpbmcoU3RyaW5nIG10ZXh0RmlsZSwgU3RyaW5nIHN0cmluZ0ZpbGUpIHsKKworICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSBmYWxzZTsKKworICAgICAgICBGaWxlIG10ZXh0ID0gbmV3IEZpbGUobXRleHRGaWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gRmlsZVV0aWxzLmxvYWRNVGV4dChtdGV4dCk7CisgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBTdHJpbmdUb01UZXh0LmxvYWRTdHJpbmcobmV3IEZpbGUoc3RyaW5nRmlsZSkpOworICAgICAgICAgICAgaWYgKHN0ciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGNvbXBhcmVNVGV4dFRvU3RyaW5nKHRleHQsIHN0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgU3RyaW5nLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkIE1UZXh0LiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbXBhcmVNVGV4dFRvU3RyaW5nKE1Db25zdFRleHQgdGV4dCwgU3RyaW5nIHN0cikgeworCisgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCgpICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9c3RyLmxlbmd0aCgpLTE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICBpZiAodGV4dC5hdChpKSAhPSBzdHIuY2hhckF0KGkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvU2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvU2FtcGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmUyZmVlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YQpAQCAtMCwwICsxLDI2IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0YXBwcy5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgU2FtcGxlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKworICAgICAgICAvKk9iamVjdCBzYW1wbGUgPSovIHRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgiaGFnYW4iKTsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiZGVmYXVsdC5zYW1wbGUiLCB0aGlzLmdldENsYXNzKCkuZ2V0UmVzb3VyY2UoInVuaWNvZGUuaGVicmV3LnJlZCIpIH0sCisgICAgICAgICAgICB7ICJkZWZhdWx0Lm5hbWUiLCAiV2hhdCBpcyBVbmljb2RlIC0gSGVicmV3IiB9LAorICAgICAgICAgICAgeyAiYXJhYmljLnNhbXBsZSIsIHRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgidW5pY29kZS5hcmFiaWMucmVkIikgfSwKKyAgICAgICAgICAgIHsgImFyYWJpYy5uYW1lIiwgIldoYXQgaXMgVW5pY29kZSAtIEFyYWJpYyIgfSwKKyAgICAgICAgICAgIHsgImphcGFuZXNlLnNhbXBsZSIsICJcdTZjZTg6IHsxfSBcdTMwNmVcdTMwZTFcdTMwYmRcdTMwYzNcdTMwYzkgezB9IFx1MzA2Zlx1NjNhOFx1NTk2OFx1MzA1NVx1MzA4Y1x1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMiIgfSwKKyAgICAgICAgICAgIHsgImphcGFuZXNlLm5hbWUiLCAiSmFwYW5lc2UgTWVzc2FnZSIgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL3VuaWNvZGUuYXJhYmljLnJlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2QwNzI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL3VuaWNvZGUuYXJhYmljLnJlZApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL3VuaWNvZGUuaGVicmV3LnJlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjA3ZjYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL3VuaWNvZGUuaGVicmV3LnJlZApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0FzeW5jRm9ybWF0dGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0FzeW5jRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjgxYjcwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDIwNTEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorLy8gUmV2aXNpb246IDcwIDEuMzggcmljaHRleHQvQXN5bmNGb3JtYXR0ZXIuamF2YSwgcmljaHRleHQsIHJpY2h0ZXh0CisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRENvbnZlcnNpb247CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworaW1wb3J0IGphdmEuYXd0LmZvbnQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgamF2YS5hd3QuZm9udC5Gb250UmVuZGVyQ29udGV4dDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworSkRLMTFJTVBPUlRTKi8KKworLyoKKyAgICBDaGFuZ2UgaGlzdG9yeToKKworICAgIDcvMjUvOTYgLQorCisgICAgOC8xNS85NgorICAgICAgICBGaXhlZCBidWcgaW4gdGV4dE9mZnNldFRvUG9pbnQgKGZQaXhIZWlnaHQgd2Fzbid0IGFkZGVkIHRvIG5lZ2F0aXZlIGhlaWdodHMpLiB7amJyfQorCisgICAgOC8xOS85NgorICAgICAgICBSZW1vdmVkIHJlZmVyZW5jZXMgdG8gSnVzdGlmaWNhdGlvblN0eWxlIGNvbnN0YW50cywgYW5kIG1vdmVkIHRoZW0gaW50byBNRm9ybWF0dGVyIHtzZmJ9CisKKyAgICA4LzIzLzk2CisgICAgICAgIE1vZGlmaWVkIGZpbmRMaW5lQXQgYW5kIGdldExpbmVDb250YWluaW5nIC0gYWRkZWQgb3B0aW1pemF0aW9uIGluIHNlYXJjaCBsb29wLiAgQWxzbywKKyAgICAgICAgICAgIHRoZXkgd2VyZSBmYWlsaW5nIHdoZW4gZkxUUG9zRW5kKzEgPT0gZkxUTmVnU3RhcnQuICBGaXhlZC4KKworICAgIDgvMjYvOTYKKyAgICAgICAgTW92ZWQgRm9ybWF0RGFlbW9uIHN0dWZmIGludG8gdGhpcyBjbGFzcy4KKworICAgIDkvMTEvOTYKKyAgICAgICAgU2hvcnRlbmVkIGxpbmUgcmV0dXJuZWQgZnJvbSB0ZXh0T2Zmc2V0VG9Qb2ludCBieSAxIHBpeGVsCisKKyAgICA5LzIzLzk2CisgICAgICAgIHRleHRPZmZzZXRUb1BvaW50IGxpbmUgbGVuZ3RoIHJlc3RvcmVkIChzZWUgYWJvdmUpLiAgZHJhd1RleHQoKSBub3cgZHJhd3Mgb25seSBsaW5lcworICAgICAgICB3aGljaCBmYWxsIGluIHJlY3RhbmdsZSBwYXJhbS4KKworICAgIDkvMjYvOTYKKyAgICAgICAgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZSBpcyB1c2VkIGZvciBjYXJldCBwb3NpdGlvbmluZworCisgICAgMTAvNC85NgorICAgICAgICBBZGRlZCBzdGF0aWMgVGV4dEJveCBtZXRob2QuCisKKyAgICAxMC84Lzk2CisgICAgICAgIExpbmUgMTMwMCAtIGxlc3MgdGhhbiBjaGFuZ2VkIHRvIGxlc3MgdGhhbiBvciBlcXVhbCBpbiB0ZXh0T2Zmc2V0VG9Qb2ludC4gIFdhdGNoIGZvcgorICAgICAgICAgICAgaGFuZ3MgaW4gZm9ybWF0VGV4dC4KKworICAgIDEwLzkvOTYKKyAgICAgICAgQ2hhbmdlZCBzeW5jLiBtb2RlbC4gIGZGb3JtYXRJbkJhY2tncm91bmQgaXMgdXNlZCB0byBzdGFydC9zdG9wIGJnIGZvcm1hdHRpbmcKKworICAgIDEwLzE3Lzk2CisgICAgICAgIEFkZGVkIG5ldyBmbGFnczogIGZMaW5lSW5jLCBmRmlsbEluYyBmb3IgYmlkaSBzdXBwb3J0LiAgdXBkYXRlRm9ybWF0LCBwb2ludFRvVGV4dE9mZnNldCwgZ2V0Qm91bmRpbmdSZWN0LAorICAgICAgICBhbmQgZmluZE5ld0luc2VydGlvbk9mZnNldCBzaG91bGQgbm93IGZ1bmN0aW9uIGNvcnJlY3RseSBmb3Igbm9uLVJvbWFuIGRvY3VtZW50cy4gIE5vdGhpbmcgZWxzZSBoYXMgYmVlbgorICAgICAgICBtb2RpZmllZCB0byBzdXBwb3J0IGludGwgdGV4dC4KKworICAgIDEwLzIxLzk2CisgICAgICAgIFB1c2hlZCBwYXJhZ3JhcGggZm9ybWF0dGluZyBhbmQgY2FyZXQgcG9zaXRpb25pbmcgaW50byBMaW5lTGF5b3V0LiAgSW4gcHJvY2VzcyBvZiBwdXNoaW5nCisgICAgICAgIGhpZ2hsaWdodGluZyBpbnRvIExpbmVMYXlvdXQuCisKKyAgICAxMC8yNC85NgorICAgICAgICBOb3cgZ2V0dGluZyBwYXJhZ3JhcGggc3R5bGVzIGZyb20gcGFyYWdyYXBoIGJ1ZmZlci4KKworICAgIDcvNy85NworICAgICAgICBVcC1hcnJvdyBkb2Vzbid0IG1vdmUgdG8gYmVnaW5uaW5nIG9mIHRleHQgaWYgeW91J3JlIG9uIHRoZSBmaXJzdCBsaW5lLgorCisgICAgNy8xLzk4CisgICAgICAgIE5vIGxvbmdlciBpbnRlcnNlY3RpbmcgZGFtYWdlZCByZWN0IHdpdGggdmlldyByZWN0IGluIHVwZGF0ZUZvcm1hdC4KKyovCisKKy8qKgorKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgTUZvcm1hdHRlci4gIEl0IG1haW50YWlucyBhIHRhYmxlIG9mCisqIDx0dD5MYXlvdXRJbmZvPC90dD4gaW5zdGFuY2VzIHdoaWNoIGNvbnRhaW4gbGF5b3V0IGluZm9ybWF0aW9uCisqIGZvciBlYWNoIGxpbmUgaW4gdGhlIHRleHQuICBUaGlzIGNsYXNzIGZvcm1hdHMgbGluZXMgb24gZGVtYW5kLAorKiBhbmQgY3JlYXRlcyBhIGxvdy1wcmlvcml0eSB0aHJlYWQgdG8gZm9ybWF0IHRleHQgaW4gdGhlIGJhY2tncm91bmQuCisqIE5vdGUgdGhhdCwgYXQgdGltZXMsIHNvbWUgdGV4dCBtYXkgbm90IGhhdmUgYmVlbiBmb3JtYXR0ZWQsIGVzcGVjaWFsbHkKKyogaWYgdGhlIHRleHQgaXMgbGFyZ2UuCisqIDxwPgorKiBUaGUgbGluZSB0YWJsZSBpcyBhbiBhcnJheSBvZiA8dHQ+TGF5b3V0SW5mbzwvdHQ+IG9iamVjdHMsIHdoaWNoIGV4cGFuZHMgYXMgbmVlZGVkIHRvIGhvbGQKKyogYWxsIGNvbXB1dGVkIGxpbmVzIGluIHRoZSB0ZXh0LiAgVGhlIGxpbmUgdGFibGUgY29uc2lzdHMgb2YgdGhyZWUKKyogcmVnaW9uczogIGEgInBvc2l0aXZlIiByZWdpb24sIGEgImdhcCwiIGFuZCBhICJuZWdhdGl2ZSIgcmVnaW9uLgorKiBJbiB0aGUgcG9zaXRpdmUgcmVnaW9uLCBjaGFyYWN0ZXIgYW5kIGdyYXBoaWNzIG9mZnNldHMgYXJlIHBvc2l0aXZlCisqIGludGVnZXJzLCBjb21wdXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQgLyBkaXNwbGF5LiAgSW4gdGhlCisqIGdhcCwgbGluZSB0YWJsZSBlbnRyaWVzIGFyZSBudWxsLiAgTmV3IGxpbmVzIG1heSBiZSBpbnNlcnRlZCBpbnRvIHRoZSBnYXAuCisqIEluIHRoZSBuZWdhdGl2ZSByZWdpb24sIGNoYXJhY3RlciBhbmQgZ3JhcGhpY3Mgb2Zmc2V0cyBhcmUgbmVnYXRpdmU7CisqIHRoZWlyIGFic29sdXRlIHZhbHVlcyBpbmRpY2F0ZSBkaXN0YW5jZXMgZnJvbSB0aGUgZW5kIG9mIHRoZSB0ZXh0IC8gZGlzcGxheS4KKyogVGhlIDx0dD5mTFRQb3NFbmQ8L3R0PiBtZW1iZXIgZ2l2ZXMgdGhlIGluZGV4IGluIHRoZSBsaW5lIHRhYmxlIG9mIHRoZQorKiBsYXN0IHBvc2l0aXZlIGVudHJ5LiAgVGhlIDx0dD5mTFROZWdTdGFydDwvdHQ+IGdpdmVzIHRoZSBpbmRleCBvZiBmaXJzdAorKiBuZWdhdGl2ZSBlbnRyeS4gIElmIHRoZXJlIGFyZSBubyBuZWdhdGl2ZSBlbnRyaWVzLCA8dHQ+ZkxUTmVnU3RhcnQ8L3R0PiBpcworKiBlcXVhbCB0byA8dHQ+ZkxUU2l6ZTwvdHQ+LCB0aGUgc2l6ZSBvZiB0aGUgbGluZSB0YWJsZS4KKyogPHA+CisqIENoYW5nZXMgdG8gdGhlIGxpbmUgdGFibGUgb2NjdXIgb25seSBpbiB0aGUgPHR0PmZvcm1hdFRleHQoKTwvdHQ+IG1ldGhvZC4KKyogVGhpcyBtZXRob2QgY2FsbHMgPHR0PkxpbmVMYXlvdXQubGF5b3V0KCk8L3R0PiBmb3IgZWFjaCBsaW5lIHRvIGZvcm1hdC4KKyoKKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgTUZvcm1hdHRlcgorKiBAc2VlIExpbmVMYXlvdXQKKyogQHNlZSBMYXlvdXRDb250ZXh0CisqIEBzZWUgTGF5b3V0SW5mbworKi8KKworZmluYWwgY2xhc3MgQXN5bmNGb3JtYXR0ZXIgZXh0ZW5kcyBNRm9ybWF0dGVyIGltcGxlbWVudHMgUnVubmFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogVGV4dCB0byBmb3JtYXQuCisgICAgKi8KKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgdmFsdWVzLgorICAgICovCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRWYWx1ZXM7CisgICAgCisgICAgLyoqCisgICAgKiBGb250IHJlc29sdmVyLgorICAgICovCisgICAgcHJpdmF0ZSBGb250UmVzb2x2ZXIgZkZvbnRSZXNvbHZlcjsKKyAgICAKKyAgICAvKioKKyAgICAqIERlZmF1bHQgY2hhcmFjdGVyIG1ldHJpYyAtIHVzZWQgdG8gc2V0IGhlaWdodCBvZiBlbXB0eSBwYXJhZ3JhcGhzCisgICAgKi8KKyAgICBwcml2YXRlIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgZkRlZmF1bHRDaGFyTWV0cmljOworICAgIAorICAgIC8qKgorICAgICogTGVuZ3RoIHRvIHdoaWNoIGxpbmVzIGFyZSBmb3JtYXR0ZWQuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTGluZURpbTsKKworICAgIC8qKgorICAgICogVGFibGUgb2YgZm9ybWF0dGVkIGxpbmVzLgorICAgICovCisgICAgcHJpdmF0ZSBMYXlvdXRJbmZvIGZMaW5lVGFibGVbXTsKKworICAgIC8qKgorICAgICogU2l6ZSBvZiBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkxUU2l6ZSA9IDEwOyAvLyBpbml0aWFsIHNpemUgbXVzdCBiZSA+IDAKKworICAgIC8qKgorICAgICogSW5kZXggb2YgbGFzdCBwb3NpdGl2ZSBlbnRyeSBpbiBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkxUUG9zRW5kOworCisgICAgLyoqCisgICAgKiBJbmRleCBvZiBmaXJzdCBuZWdhdGl2ZSBlbnRyeSBpbiBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkxUTmVnU3RhcnQ7CisKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiB0ZXh0IG9uIHdoaWNoIG5lZ2F0aXZlIGxpbmUgb2Zmc2V0cyBhcmUgYmFzZWQuCisgICAgKiBAc2VlICNmb3JtYXRUZXh0CisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRDdXJUZXh0TGVuOworCisgICAgLyoqCisgICAgKiBMZW5ndGggb2YgZm9ybWF0dGVkIHRleHQgaW4gZmlsbCBkaXJlY3Rpb24sIGluIHBpeGVscy4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZQaXhIZWlnaHQ7CisKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiBmb3JtYXR0ZWQgdGV4dCBpbmNsdWRpbmcgcHNldWRvbGluZS4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZGdWxsUGl4SGVpZ2h0OworCisgICAgcHJpdmF0ZSBpbnQgZk1pblg7CisgICAgcHJpdmF0ZSBpbnQgZk1heFg7CisKKyAgICAvKioKKyAgICAqIDx0dD50cnVlPC90dD4gaWYgbGluZXMgc2hvdWxkIGJlIGZvcm1hdHRlZCB0byBmaXQgbGluZSBkaW1lbnNpb24uCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZldyYXA7CisKKyAgICAvKioKKyAgICAqIDx0dD50cnVlPC90dD4gaWYgY2hhcmFjdGVycyBydW4gaG9yaXpvbnRhbGx5LgorICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZITGluZSA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiA8dHQ+dHJ1ZTwvdHQ+IGlmIGNoYXJhY3RlcnMgcnVuIGZyb20gZnJvbSBsb3cgdG8gaGlnaCBjb29yZGluYXRlcyBvbiBsaW5lLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmTGluZUluYyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiA8dHQ+dHJ1ZTwvdHQ+IGlmIGxpbmVzIHJ1biBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIHdpdGhpbiBwYWdlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmRmlsbEluYyA9IHRydWU7CisKKyAgICAvKioKKyAgICAqIFZhbHVlIHJldHVybmVkIGZyb20gPHR0PmZpbmRMaW5lQXQoKTwvdHQ+CisgICAgKiBpZiBwaXhlbCBoZWlnaHQgcHJlY2VkZXMgdG9wbW9zdCBsaW5lLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtCZWZvcmVGaXJzdExpbmUgPSAtMjsKKworICAgIC8qKgorICAgICogVmFsdWUgcmV0dXJuZWQgZnJvbSA8dHQ+ZmluZExpbmVBdCgpPC90dD4gYW5kIDx0dD5nZXRMaW5lQ29udGFpbmluZygpPC90dD4KKyAgICAqIGlmIG9mZnNldCAvIHBpeGVsIGhlaWdodCBpcyBhZnRlciBhbGwgZXhpc3RpbmcgbGluZXMuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0FmdGVyTGFzdExpbmUgPSAtMTsKKworICAgIC8qKgorICAgICogVGhyZWFkIHdoaWNoIGludm9rZXMgZm9ybWF0dGVyIGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICovCisgICAgcHJpdmF0ZSBUaHJlYWQgZkRhZW1vbjsKKworICAgIC8qKgorICAgICogRm9udFJlbmRlckNvbnRleHQgdG8gbWVhc3VyZSB3aXRoLiAgQ3VycmVudGx5IG5vdCBzZXR0YWJsZSBhZnRlcgorICAgICogY29uc3RydWN0aW9uLgorICAgICovCisgICAgcHJpdmF0ZSBGb250UmVuZGVyQ29udGV4dCBmRm9udFJlbmRlckNvbnRleHQ7CisKKyAgICAvKioKKyAgICAqIENvbnRyb2xzIHdoZXRoZXIgYmFja2dyb3VuZCBmb3JtYXR0aW5nIGNhbiBydW4uCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZkJnRm9ybWF0QWxsb3dlZCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICogQ2FjaGVkIGxpbmUgYnJlYWsgb2JqZWN0LgorICAgICovCisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGZMaW5lQnJlYWsgPSBudWxsOworICAgIAorICAgIC8qKgorICAgICogQ2FjaGVkIExpbmVCcmVha01lYXN1cmVyLgorICAgICovCisgICAgcHJpdmF0ZSBMaW5lQnJlYWtNZWFzdXJlciBmQ2FjaGVkTWVhc3VyZXIgPSBudWxsOworICAgIHByaXZhdGUgaW50IGZDYWNoZWRNZWFzdXJlclN0YXJ0OworICAgIHByaXZhdGUgaW50IGZDYWNoZWRNZWFzdXJlckxpbWl0OworICAgIAorICAgIC8vIFNvbWUgSkRLJ3MgKFN1bidzIDEuMi4yKSB0aHJvdyBleGNlcHRpb25zIGZyb20gCisgICAgLy8gTGluZUJyZWFrTWVhc3VyZXIuaW5zZXJ0Q2hhciBhbmQgZGVsZXRlQ2hhci4gIFRoaXMgY2xhc3MKKyAgICAvLyBkZXRlY3RzIHRoaXMgY29uZGl0aW9uIGFuZCBkb2Vzbid0IHVzZSB0aGVzZSB0d28gbWV0aG9kcworICAgIC8vIGlmIHRoZXkgdGhyb3cgZXhjZXB0aW9ucy4KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGZnQ2FjaGVNZWFzdXJlcnMgPSB0cnVlOworICAgIAorICAgIC8qKgorICAgICogQ3VycmVudCB0ZXh0IHRpbWUgc3RhbXAuICBVc2VkIHRvIG1haW50YWluIG1vZGlmaWNhdGlvbiBpbnZhcmlhbnQuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmQ3VyVGltZVN0YW1wOworICAgIAorICAgIC8qKgorICAgICogQ2FjaGUgb2YgUGFyYWdyYXBoUmVuZGVyZXJzLgorICAgICovCisgICAgcHJpdmF0ZSBIYXNodGFibGUgZlJlbmRlcmVyQ2FjaGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgCisgICAgLyoqCisgICAgKiBEcmF3IHRleHQgaW5zaWRlIGEgcmVjdGFuZ2xlLiBEb2VzIG5vdCBjYWNoZSBhbnkgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi4KKyAgICAqIFRoaXMgaXMgY29udmVuaWVudCBmb3Igc21hbGwgYW1vdW50cyBvZiB0ZXh0OyBjb21wYXJhYmxlIHRvIFRFVGV4dEJveCBvbiB0aGUgTWFjLgorICAgICogPHA+CisgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBkcmF3CisgICAgKiBAcGFyYW0gZyBHcmFwaGljcyBvbiB3aGljaCB0byBkcmF3CisgICAgKiBAcGFyYW0gZHJhd1JlY3QgcmVjdGFuZ2xlIGluIHdoaWNoIHRleHQgd2lsbCBiZSBkcmF3bgorICAgICogQHBhcmFtIGZpbGxJbmMgaWYgdHJ1ZSwgbGluZXMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgaW4gcGFnZS4KKyAgICAqIEBwYXJhbSBoTGluZSBpZiB0cnVlLCBjaGFyYWN0ZXJzIHJ1biBob3Jpem9udGFsbHkgd2l0aGluIGEgbGluZS4KKyAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1BhcmFncmFwaFNlcGFyYXRvcihjaGFyIGNoKSB7CisKKyAgICAgICAgcmV0dXJuIGNoID09ICdcbicgfHwgY2ggPT0gJ1x1MjAyOSc7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDcmVhdGUgYW4gPHR0PkFzeW5jRm9ybWF0dGVyPC90dD4uCisgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBmb3JtYXQKKyAgICAqIEBwYXJhbSBsaW5lQm91bmQgbGVuZ3RoIHRvIHdoaWNoIGxpbmVzIGFyZSBmb3JhbXR0ZWQKKyAgICAqIEBwYXJhbSB3cmFwIDx0dD50cnVlPC90dD4gaWYgdGV4dCBzaG91bGQgYmUgImxpbmUgd3JhcHBlZCIgKGZvcm1hdHRlZCB0byBmaXQgZGVzdGluYXRpb24gYXJlYSkKKyAgICAqLworICAgIEFzeW5jRm9ybWF0dGVyKE1Db25zdFRleHQgdGV4dCwgCisgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXAsCisgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFsdWVzOworICAgICAgICBmRm9udFJlc29sdmVyID0gbmV3IEZvbnRSZXNvbHZlcihmRGVmYXVsdFZhbHVlcyk7CisgICAgICAgIAorICAgICAgICBmTGluZURpbSA9IGxpbmVCb3VuZDsKKyAgICAgICAgZldyYXAgPSB3cmFwOworICAgICAgICBHcmFwaGljczJEIGcyZCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldEdyYXBoaWNzMkQoZyk7CisgICAgICAgIGZGb250UmVuZGVyQ29udGV4dCA9IGcyZC5nZXRGb250UmVuZGVyQ29udGV4dCgpOworICAgICAgICAKKyAgICAgICAgZkRlZmF1bHRDaGFyTWV0cmljID0gbmV3IERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMoZkZvbnRSZXNvbHZlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVuZGVyQ29udGV4dCk7CisgICAgICAgIGZMVEN1clRleHRMZW4gPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICByZW1vdmVBbGxMaW5lcygpOworCisgICAgICAgIGZEYWVtb24gPSBuZXcgVGhyZWFkKHRoaXMpOworICAgICAgICBmRGFlbW9uLnN0YXJ0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZEZWZhdWx0VmFsdWVzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjaGVja1RpbWVTdGFtcCgpIHsKKyAgICAgICAgU3RyaW5nIGFkbW9uaXRpb24gPSAiUHJvYmFibHksIHlvdSBtb2RpZmllZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHRleHQgYmVmb3JlIGNhbGxpbmcgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCkuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0LmdldFRpbWVTdGFtcCgpICE9IGZDdXJUaW1lU3RhbXApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGltZSBzdGFtcCBpcyBvdXQgb2Ygc3luYy4gICIgKyBhZG1vbml0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZlRleHQubGVuZ3RoKCkgIT0gZkxUQ3VyVGV4dExlbikgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJMZW5ndGggY2hhbmdlZCB1bmV4cGVjdGVkbHkuICAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZlRleHQubGVuZ3RoKCk9IitmVGV4dC5sZW5ndGgoKSsiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZkxUQ3VyVGV4dExlbj0iK2ZMVEN1clRleHRMZW4rIjsgICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1hdHRlcj0iK3RoaXMrIjsgICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQ9IitmVGV4dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNwZWNpZnkgd2hldGhlciB0byB3cmFwIGxpbmVzIHVzaW5nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyAgICAqIEBwYXJhbSB3cmFwIGlmIDx0dD50cnVlPC90dD4gbGluZXMgd2lsbCBiZSB3cmFwcGVkOyBvdGhlcndpc2UgbmV3IGxpbmVzIHdpbGwgb25seSBiZQorICAgICogc3RhcnRlZCB3aGVuIGEgbmV3bGluZSBpcyBlbmNvdW50ZXJlZC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXRXcmFwKGJvb2xlYW4gd3JhcCkKKyAgICB7CisgICAgICAgIGlmICh3cmFwICE9IGZXcmFwKSB7CisgICAgICAgICAgICBmV3JhcCA9IHdyYXA7CisgICAgICAgICAgICByZW1vdmVBbGxMaW5lcygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdHJ1ZSBpZiBsaW5lcyBhcmUgd3JhcHBlZCB1c2luZyB0aGUgbGluZSBkaW1lbnNpb24uCisgICAgKiBAc2VlICNzZXRXcmFwCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gd3JhcCgpCisgICAgeworICAgICAgICByZXR1cm4gZldyYXA7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTcGVjaWZ5IHRoZSBsaW5lQm91bmQgaW4gcGl4ZWxzLiAgSWYgbGluZSB3cmFwcGluZyBpcyBvbiwgbGluZXMKKyAgICAqIHdpbGwgYmUgd3JhcHBlZCB0byB0aGlzIHZhbHVlLgorICAgICogPHA+CisgICAgKgorICAgICogQHBhcmFtIGxpbmVCb3VuZCB0aGUgZGlzdGFuY2UsIGluIHBpeGVscywgdXNlZCB0byB3cmFwIGxpbmVzLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldExpbmVCb3VuZChpbnQgbGluZUJvdW5kKQorICAgIHsKKyAgICAgICAgaWYgKGZMaW5lRGltICE9IGxpbmVCb3VuZCkgeworICAgICAgICAgICAgZkxpbmVEaW0gPSBsaW5lQm91bmQ7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZXcmFwKSB7CisgICAgICAgICAgICAgICAgcmVtb3ZlQWxsTGluZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVCb3VuZCgpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVEaW07CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gPHR0PnRydWU8L3R0PiBpZiBjaGFyYWN0ZXJzIHJ1biBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIGxpbmUuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbGluZUluYygpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVJbmM7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gPHR0PnRydWU8L3R0PiBpZiBsaW5lcyBydW4gZnJvbSBsb3cgdG8gaGlnaCBjb29yZGluYXRlcyBvbiBwYWdlLgorICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZpbGxJbmMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZGaWxsSW5jOworICAgIH0KKworICAgIC8qKgorICAgICogUmVtb3ZlIGFsbCBsaW5lcyBpbiB0aGUgbGluZSB0YWJsZS4gIFVzZWQgYWZ0ZXIgYW4gb3BlcmF0aW9uIHRoYXQKKyAgICAqIGludmFsaWRhdGVzIGFsbCBleGlzdGluZyBsaW5lcywgc3VjaCBhcyBjaGFuZ2luZyBsaW5lIHdyYXBwaW5nIG9yIHRoZQorICAgICogbGluZSBkaW0uCisgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIHJlbW92ZUFsbExpbmVzKCkKKyAgICB7CisgICAgICAgIGZDdXJUaW1lU3RhbXAgPSBmVGV4dC5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisKKyAgICAgICAgZk1pblggPSAwOworICAgICAgICBmTWF4WCA9IGZMaW5lRGltOworICAgICAgICAKKyAgICAgICAgZkxpbmVUYWJsZSA9IG5ldyBMYXlvdXRJbmZvW2ZMVFNpemVdOyAvLyBmTFRTaXplIG11c3QgYmUgPiAwCisgICAgICAgIGZMVE5lZ1N0YXJ0ID0gZkxUU2l6ZTsKKyAgICAgICAgZkxUUG9zRW5kID0gMDsKKworICAgICAgICBmTGluZVRhYmxlWzBdID0gcHNldWRvTGluZUluZm8obnVsbCwgMCk7CisKKyAgICAgICAgZlBpeEhlaWdodCA9IGZMaW5lVGFibGVbMF0uZ2V0SGVpZ2h0KCk7IC8vID8/PyBvciBzaG91bGQgaXQgYmUgemVybz8KKyAgICAgICAgZkZ1bGxQaXhIZWlnaHQgPSBmUGl4SGVpZ2h0OworCisgICAgICAgIC8vIGZvcm1hdCBhdCBsZWFzdCBvbmUgbGluZToKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIDEpOworCisgICAgICAgIGVuYWJsZUJHRm9ybWF0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCB0aGUgbGF5b3V0IGluZm8gd2l0aCBpbmZvcm1hdGlvbiBhcHByb3ByaWF0ZSB0byB0aGUgcHNldWRvbGluZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBMYXlvdXRJbmZvIHBzZXVkb0xpbmVJbmZvKExheW91dEluZm8gaW5mbywgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoZkxUQ3VyVGV4dExlbik7IC8vID8/PyBpZiB0ZXh0IGlzIGVtcHR5IG9yIHRoaXMgaXMgdGhlIGVuZCBvZiB0aGUgdGV4dCwgd2hhdCBoYXBwZW5zPworICAgICAgICBQYXJhZ3JhcGhSZW5kZXJlciByZW5kZXJlciA9IGdldFJlbmRlcmVyRm9yKHN0KTsKKyAgICAgICAgaW5mbyA9IHJlbmRlcmVyLmxheW91dChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMaW5lQnJlYWtNZWFzdXJlciludWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVuZGVyQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaW5lRGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaW5lRGltKTsKKworICAgICAgICByZXR1cm4gaW5mbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3QgdmFsaWQgbGluZSBpbiB0aGUgbGluZSB0YWJsZS4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGxhc3RMaW5lKCkKKyAgICB7CisgICAgICAgIHJldHVybiAoZkxUTmVnU3RhcnQgPT0gZkxUU2l6ZSkgPyBmTFRQb3NFbmQgOiBmTFRTaXplIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNoaWZ0IGxpbmUgdGFibGUgc3VjaCB0aGF0IDx0dD5sYXN0UG9zPC90dD4gaXMgdGhlIGxhc3QgcG9zaXRpdmUKKyAgICAqIGVudHJ5IGluIHRoZSB0YWJsZS4gPGI+Tk9URTogPHR0Pmxhc3RQb3M8L3R0PiBtdXN0IGJlIGEgdmFsaWQgbGluZSE8L2I+CisgICAgKiA8cD4KKyAgICAqIEBwYXJhbSBsYXN0UG9zIHRoZSBpbmRleCBvZiB0aGUgbGluZSB3aGljaCB3aWxsIGJlY29tZSB0aGUgbGFzdCBwb3NpdGl2ZQorICAgICogZW50cnkgaW4gdGhlIGxpbmUgdGFibGUKKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBzaGlmdFRhYmxlVG8oaW50IGxhc3RQb3MpCisgICAgeworICAgICAgICBMYXlvdXRJbmZvIGxpOworCisgICAgICAgIHdoaWxlIChsYXN0UG9zIDwgZkxUUG9zRW5kKSAgICB7IC8vIHNoaWZ0ICsncyB0byAtJ3MKKyAgICAgICAgICAgIGxpID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdOworICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFRQb3NFbmQtLV0gPSBudWxsOworCisgICAgICAgICAgICBsaS5tYWtlUmVsYXRpdmVUb0VuZChmTFRDdXJUZXh0TGVuLCBmUGl4SGVpZ2h0KTsKKworICAgICAgICAgICAgZkxpbmVUYWJsZVstLWZMVE5lZ1N0YXJ0XSA9IGxpOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKGxhc3RQb3MgPj0gZkxUTmVnU3RhcnQpIHsgLy8gc2hpZnQgLSdzIHRvICsncworICAgICAgICAgICAgbGkgPSBmTGluZVRhYmxlW2ZMVE5lZ1N0YXJ0XTsKKyAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUTmVnU3RhcnQrK10gPSAgICBudWxsOworCisgICAgICAgICAgICBsaS5tYWtlUmVsYXRpdmVUb0JlZ2lubmluZyhmTFRDdXJUZXh0TGVuLCBmUGl4SGVpZ2h0KTsKKworICAgICAgICAgICAgZkxpbmVUYWJsZVsrK2ZMVFBvc0VuZF0gICAgPSBsaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogSW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kTGluZVRhYmxlKCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMganVzdCBkb3VibGVzIHRoZSBzaXplIG9mIHRoZSBsaW5lIHRhYmxlLgorCisgICAgICAgIExheW91dEluZm8gbmV3TGluZVRhYmxlW10gPSBuZXcgTGF5b3V0SW5mb1tmTGluZVRhYmxlLmxlbmd0aCAqIDJdOworICAgICAgICBpbnQgbmV3TmVnU3RhcnQgPSBuZXdMaW5lVGFibGUubGVuZ3RoIC0gKGZMaW5lVGFibGUubGVuZ3RoIC0gZkxUTmVnU3RhcnQpOworCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkxpbmVUYWJsZSwgMCwgbmV3TGluZVRhYmxlLCAwLCBmTFRQb3NFbmQgKyAxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmTGluZVRhYmxlLCBmTFROZWdTdGFydCwgbmV3TGluZVRhYmxlLCBuZXdOZWdTdGFydCwgZkxUU2l6ZSAtIGZMVE5lZ1N0YXJ0KTsKKworICAgICAgICBmTFROZWdTdGFydCA9IG5ld05lZ1N0YXJ0OworICAgICAgICBmTFRTaXplID0gbmV3TGluZVRhYmxlLmxlbmd0aDsKKyAgICAgICAgZkxpbmVUYWJsZSA9IG5ld0xpbmVUYWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgcGl4ZWwgcG9zaXRpb24gPHR0PmZpbGxDb29yZDwvdHQ+LgorICAgICogSWYgZmlsbENvb3JkIGV4Y2VlZHMgdGhlIGJvdHRvbSBvZiB0aGUgdGV4dCwgcmV0dXJuIGtBZnRlckxhc3RMaW5lLgorICAgICogSWYgZmlsbENvb3JkIGlzIGxlc3MgdGhhbiB0aGUgdG9wIG9mIHRoZSB0ZXh0LCByZXR1cm4ga0JlZm9yZUZpcnN0TGluZS4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIGZpbGxDb29yZCAiaGVpZ2h0IiBvZiBsaW5lIHRvIGxvY2F0ZS4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZpbmRMaW5lQXQoaW50IGZpbGxDb29yZCkKKyAgICB7CisgICAgICAgIGludCBsb3csIGhpZ2gsIG1pZDsKKyAgICAgICAgaW50IGxvd1N0YXJ0LCBoaWdoU3RhcnQsIG1pZFN0YXJ0OworCisgICAgICAgIGlmIChmaWxsQ29vcmQgPj0gZlBpeEhlaWdodCkKKyAgICAgICAgICAgIHJldHVybiBrQWZ0ZXJMYXN0TGluZTsKKyAgICAgICAgZWxzZSBpZiAoZmlsbENvb3JkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBrQmVmb3JlRmlyc3RMaW5lOworCisgICAgICAgIGlmICgoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSAmJiAoZmlsbENvb3JkID49IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldEdyYXBoaWNTdGFydChmUGl4SGVpZ2h0KSkpIHsKKyAgICAgICAgICAgIGZpbGxDb29yZCAtPSBmUGl4SGVpZ2h0OworCisgICAgICAgICAgICBsb3cgPSBmTFROZWdTdGFydDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRTaXplOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvdyA9IDA7CisgICAgICAgICAgICBoaWdoID0gZkxUUG9zRW5kICsgMTsKKyAgICAgICAgICAgIGhpZ2hTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoMCkgKyBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgbG93U3RhcnQgPSBmTGluZVRhYmxlW2xvd10uZ2V0R3JhcGhpY1N0YXJ0KDApOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGlmIChsb3dTdGFydCA9PSBoaWdoU3RhcnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGxvdzsKKworICAgICAgICAgICAgbWlkID0gbG93ICsgKGZpbGxDb29yZCAtIGxvd1N0YXJ0KSAvIChoaWdoU3RhcnQgLSBsb3dTdGFydCkgKiAoaGlnaCAtIGxvdyk7CisgICAgICAgICAgICBtaWRTdGFydCA9IGZMaW5lVGFibGVbbWlkXS5nZXRHcmFwaGljU3RhcnQoMCk7CisKKyAgICAgICAgICAgIGlmIChtaWRTdGFydCA+IGZpbGxDb29yZCkgeworICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtoaWdoXS5nZXRHcmFwaGljU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtaWRTdGFydCArIGZMaW5lVGFibGVbbWlkXS5nZXRIZWlnaHQoKSA8PSBmaWxsQ29vcmQpIHsKKyAgICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxOworICAgICAgICAgICAgICAgIGxvd1N0YXJ0ID0gZkxpbmVUYWJsZVtsb3ddLmdldEdyYXBoaWNTdGFydCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworCisgICAgICAgIH0gd2hpbGUgKGxvdyA8IGhpZ2gpOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbGluZS4KKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgaW50ZXJuYWwgaW5kZXggb2YgdGhlIGxpbmUgKGRpcmVjdCBpbmRleCBpbnRvIGxpbmV0YWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZUNoYXJTdGFydEludGVybmFsKGludCBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZMaW5lVGFibGVbbGluZV0uZ2V0Q2hhclN0YXJ0KGZMVEN1clRleHRMZW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lQ2hhckxpbWl0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gbGluZUNoYXJTdGFydEludGVybmFsKGxpbmUpICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRDaGFyTGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncmFwaGljIHN0YXJ0IG9mIHRoZSBsaW5lLCB1bmFkanVzdGVkIGZvciBmaWxsIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgaW50ZXJuYWwgaW5kZXggb2YgdGhlIGxpbmUgKGRpcmVjdCBpbmRleCBpbnRvIGxpbmV0YWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZUdyYXBoaWNTdGFydEludGVybmFsKGludCBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZMaW5lVGFibGVbbGluZV0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZ3JhcGhpYyBsaW1pdCBvZiB0aGUgbGluZSwgdW5hZGp1c3RlZCBmb3IgZmlsbCBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIGxpbmUgdGhlIGludGVybmFsIGluZGV4IG9mIHRoZSBsaW5lIChkaXJlY3QgaW5kZXggaW50byBsaW5ldGFibGUpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVHcmFwaGljTGltaXRJbnRlcm5hbChpbnQgbGluZSkKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZSkgKyBmTGluZVRhYmxlW2xpbmVdLmdldEhlaWdodCgpOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB3aGljaCBoYXMgbm90IGJlZW4gZm9ybWF0dGVkLgorICAgICogSWYgYWxsIHRleHQgaGFzIGJlZW4gZm9ybWF0dGVkLCByZXR1cm4gdGhlIGN1cnJlbnQgdGV4dCBsZW5ndGguCisgICAgKi8KKyAgICBwcml2YXRlIGludCBsYXN0TGluZUNoYXJTdG9wKCkKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lQ2hhckxpbWl0SW50ZXJuYWwobGFzdExpbmUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgJ3ZhbGlkJyBsaW5lIGNvbnRhaW5pbmcgb2Zmc2V0LiAgVGhpcyBkaWZmZXJzIGZyb20gZ2V0TGluZUNvbnRhaW5pbmcgaW4KKyAgICAgKiB0aGlzIG1hcHMga0FmdGVyTGFzdExpbmUgdG8gbGFzdExpbmUoKSwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIGFsd2F5cyBhIHZhbGlkCisgICAgICogbGluZXRhYmxlIGluZGV4LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFZhbGlkTGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICByZXR1cm4gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhICd2YWxpZCcgbGluZSBjb250YWluaW5nIG9mZnNldC4gIFRoaXMgZGlmZmVycyBmcm9tIGdldExpbmVDb250YWluaW5nIGluCisgICAgICogdGhpcyBtYXBzIGtBZnRlckxhc3RMaW5lIHRvIGxhc3RMaW5lKCksIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgYSB2YWxpZAorICAgICAqIGxpbmV0YWJsZSBpbmRleC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRWYWxpZExpbmVDb250YWluaW5nKGludCBpbnNPZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgaW50IGxpbmUgPSBnZXRMaW5lQ29udGFpbmluZyhpbnNPZmZzZXQsIHBsYWNlbWVudCk7CisgICAgICAgIGlmIChsaW5lID09IGtBZnRlckxhc3RMaW5lKQorICAgICAgICAgICAgbGluZSA9IGxhc3RMaW5lKCk7CisgICAgICAgIGVsc2UgaWYgKGxpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiBnZXRMaW5lQ29udGFpbmluZyByZXR1cm5lZCBrQmVmb3JlRmlyc3RMaW5lIik7CisKKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gaW5kZXggb2YgbGluZSBjb250YWluaW5nIDx0dD5vZmZzZXQ8L3R0Pi4KKyAgICAqID8/PyBJZiBvZmZzZXQgaXMgYWZ0ZXIgbGFzdCBmb3JtYXR0ZWQgbGluZSwgcmV0dXJucyBrQWZ0ZXJMYXN0TGluZS4gIElzIHRoYXQgZ29vZD8KKyAgICAqIDxwPgorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHdob3NlIGxpbmUgc2hvdWxkIGJlIGxvY2F0ZWQKKyAgICAqIEByZXR1cm5zIGxpbmUgY29udGFpbmluZyA8dHQ+b2Zmc2V0PC90dD4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGdldExpbmVDb250YWluaW5nKFRleHRPZmZzZXQgb2Zmc2V0KSB7CisKKyAgICAgICAgcmV0dXJuIGdldExpbmVDb250YWluaW5nKG9mZnNldC5mT2Zmc2V0LCBvZmZzZXQuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZ2V0TGluZUNvbnRhaW5pbmcoaW50IGluc09mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpbnQgcG9zID0gaW5zT2Zmc2V0OworICAgICAgICBpZiAocGxhY2VtZW50ID09IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCAmJiBwb3MgPiAwKQorICAgICAgICAgICAgLS1wb3M7CisKKyAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiBnZXRMaW5lQ29udGFpbmluZyBvZmZzZXQgPCAwOiAiICsgcG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwb3MgPj0gbGFzdExpbmVDaGFyU3RvcCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpPyBrQWZ0ZXJMYXN0TGluZSA6IGxhc3RMaW5lKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbG93LCBoaWdoLCBtaWQ7CisgICAgICAgIGludCBsb3dTdGFydCwgaGlnaFN0YXJ0LCBtaWRTdGFydDsKKworICAgICAgICBpZiAoKGZMVE5lZ1N0YXJ0IDwgZkxUU2l6ZSkgJiYgKHBvcyA+PSBmTGluZVRhYmxlW2ZMVE5lZ1N0YXJ0XS5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbikpKSB7CisgICAgICAgICAgICBwb3MgLT0gZkxUQ3VyVGV4dExlbjsKKworICAgICAgICAgICAgbG93ID0gZkxUTmVnU3RhcnQ7CisgICAgICAgICAgICBoaWdoID0gZkxUU2l6ZTsKKyAgICAgICAgICAgIGhpZ2hTdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb3cgPSAwOworICAgICAgICAgICAgaGlnaCA9IGZMVFBvc0VuZCArIDE7CisgICAgICAgICAgICBoaWdoU3RhcnQgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhclN0YXJ0KDApICsgZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldENoYXJMZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRDaGFyU3RhcnQoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKGhpZ2hTdGFydCA9PSBsb3dTdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsb3c7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1pZCA9IGxvdyArIChwb3MgLSBsb3dTdGFydCkgLyAoaGlnaFN0YXJ0IC0gbG93U3RhcnQpICogKGhpZ2ggLSBsb3cpOworICAgICAgICAgICAgbWlkU3RhcnQgPSBmTGluZVRhYmxlW21pZF0uZ2V0Q2hhclN0YXJ0KDApOworCisgICAgICAgICAgICBpZiAobWlkU3RhcnQgPiBwb3MpIHsKKyAgICAgICAgICAgICAgICBoaWdoID0gbWlkOworICAgICAgICAgICAgICAgIGhpZ2hTdGFydCA9IGZMaW5lVGFibGVbaGlnaF0uZ2V0Q2hhclN0YXJ0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobWlkU3RhcnQgKyBmTGluZVRhYmxlW21pZF0uZ2V0Q2hhckxlbmd0aCgpIDw9IHBvcykgeworICAgICAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgICAgICAgICAgbG93U3RhcnQgPSBmTGluZVRhYmxlW2xvd10uZ2V0Q2hhclN0YXJ0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1pZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IHdoaWxlIChsb3cgPCBoaWdoKTsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIERpc3BsYXkgdGV4dCBpbiBkcmF3QXJlYS4gRG9lcyBub3QgcmVmb3JtYXQgdGV4dC4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIGcgdGhlIEdyYXBoaWNzIG9iamVjdCBpbiB3aGljaCB0byBkcmF3CisgICAgKiBAcGFyYW0gZHJhd0FyZWEgdGhlIHJlY3RhbmdsZSwgaW4gZydzIGNvb3JkaW5hdGUgc3lzdGVtLCBpbiB3aGljaCB0byBkcmF3CisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbQorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4pCisgICAgeworICAgICAgICBkcmF3KGcsIGRyYXdBcmVhLCBvcmlnaW4sIG51bGwsIG51bGwsIG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBkcmF3KEdyYXBoaWNzIGcsIFJlY3RhbmdsZSBkcmF3QXJlYSwgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsIFRleHRPZmZzZXQgc2VsU3RvcCwgQ29sb3IgaGlnaGxpZ2h0KSB7CisKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgR3JhcGhpY3MyRCBnMmQgPSBHcmFwaGljczJEQ29udmVyc2lvbi5nZXRHcmFwaGljczJEKGcpOworCisgICAgICAgIC8vIEdldCBzdGFydGluZyBhbmQgZW5kaW5nIGZpbGwgJ2hlaWdodHMuJworCisgICAgICAgIGludCBzdGFydEZpbGw7CisgICAgICAgIGludCBlbmRGaWxsOworCisgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgIHN0YXJ0RmlsbCA9IGRyYXdBcmVhLnkgLSBvcmlnaW4ueTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RhcnRGaWxsID0gb3JpZ2luLnkgLSAoZHJhd0FyZWEueSArIGRyYXdBcmVhLmhlaWdodCk7CisKKyAgICAgICAgZW5kRmlsbCA9IHN0YXJ0RmlsbCArIGRyYXdBcmVhLmhlaWdodDsKKworICAgICAgICAvLyBXZSdyZSBkcmF3aW5nIG9uZSBtb3JlIGxpbmUgdGhhbiBuZWNlc3Nhcnkgd2hlbiB3ZSB1cGRhdGUgYmVjYXVzZSBvZiBhCisgICAgICAgIC8vIHNlbGVjdGlvbiBjaGFuZ2UuICBCdXQgd2UncmUgZHJhd2luZyB0aGUgcmlnaHQgYW1vdW50IG9mIGxpbmVzIHdoZW4gd2UKKyAgICAgICAgLy8gcmVmcmVzaCB0aGUgd2hvbGUgZGlzcGxheS4gIFRoaXMgYWZmZWN0cyByZW5kZXJpbmcgc3BlZWQgc2lnbmlmaWNhbnRseSwKKyAgICAgICAgLy8gYW5kIGNyZWF0aW5nIGEgbmV3IHBhcmFncmFwaCByZW5kZXJlciBmb3IgZWFjaCBsaW5lIGRvZXNuJ3QgaGVscCBlaXRoZXIuCisgICAgICAgIC8vIEZvciBub3csIEknbSBnb2luZyB0byBzdWJ0cmFjdCBvbmUgZnJvbSB0aGUgZmlsbCBoZWlnaHQsIG9uIHRoZSB0aGVvcnkKKyAgICAgICAgLy8gdGhhdCB3ZSdyZSBwaWNraW5nIHVwIHRoZSBleHRyYSBsaW5lIGJlY2F1c2Ugb2YgYSBvbmUtcGl4ZWwgc2xvcC4KKyAgICAgICAgLy8gVGhpcyBzZWVtcyB0byB3b3JrLCBhbHRob3VnaCBwZXJoYXBzIGlmIG9uZSBwaXhlbCBvZiBhIGxpbmUgYXQgdGhlCisgICAgICAgIC8vIGJvdHRvbSBzaG91bGQgZHJhdywgaXQgd29uJ3QuCisKKyAgICAgICAgLS1lbmRGaWxsOworCisgICAgICAgIC8vIEZvcm1hdCB0byBlbmRpbmcgZmlsbCBoZWlnaHQsIHNvIGxpbmUgdGFibGUgaXMgdmFsaWQgZm9yIGFsbCBsaW5lcyB3ZSBuZWVkIHRvIGRyYXcuCisKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoZW5kRmlsbCk7CisKKyAgICAgICAgLy8gR2V0IHN0YXJ0aW5nIGFuZCBlbmRpbmcgbGluZXMgZm9yIGZpbGwgaGVpZ2h0LiAgSWYgdGhlIHN0YXJ0IG9mIHRoZSBmaWxsIGlzIGFmdGVyIHRoZSBsYXN0IGxpbmUsCisgICAgICAgIC8vIG9yIHRoZSBlbmQgb2YgdGhlIGZpbGwgaXMgYmVmb3JlIHRoZSBmaXJzdCBsaW5lLCByZXR1cm4uCisKKyAgICAgICAgaW50IGN1ckxpbmUgPSBmaW5kTGluZUF0KHN0YXJ0RmlsbCk7CisgICAgICAgIGlmIChjdXJMaW5lID09IGtBZnRlckxhc3RMaW5lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBlbHNlIGlmIChjdXJMaW5lID09IGtCZWZvcmVGaXJzdExpbmUpCisgICAgICAgICAgICBjdXJMaW5lID0gMDsKKworICAgICAgICBpbnQgbGFzdExpbmUgPSBmaW5kTGluZUF0KGVuZEZpbGwpOworICAgICAgICBpZiAobGFzdExpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZWxzZSBpZiAobGFzdExpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICBsYXN0TGluZSA9IGxhc3RMaW5lKCk7CisKKyAgICAgICAgLy8gR2V0IHRoZSBiYXNlIGNvb3JkaW5hdGVzIChsaW5lWCwgbGluZVkpIGZvciB0aGUgc3RhcnRpbmcgbGluZS4KKworICAgICAgICBpbnQgbGluZVgsIGxpbmVZOworCisgICAgICAgIGludCBnU3RhcnQgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoY3VyTGluZSk7CisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCAtIGZMaW5lRGltOworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2N1ckxpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmTGluZUluYykKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgLSBmTGluZURpbTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54ICsgZ1N0YXJ0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtjdXJMaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggbGluZXMsIGRyYXdpbmcgZWFjaCBvbmUgYW5kIGluY3JlbWVudGluZyB0aGUgYmFzZSBjb29yZGluYXRlIGJ5IHRoZSBsaW5lIGhlaWdodC4KKworCisgICAgICAgIGZvciAoOyBjdXJMaW5lIDw9IGxhc3RMaW5lOyBjdXJMaW5lKyspIHsKKyAgICAgICAgICAgIC8vIEFkanVzdCBjdXJMaW5lIGFyb3VuZCBnYXAgaW4gbGluZSB0YWJsZS4KKyAgICAgICAgICAgIGlmICgoY3VyTGluZSA+IGZMVFBvc0VuZCkgJiYgKGN1ckxpbmUgPCBmTFROZWdTdGFydCkpCisgICAgICAgICAgICAgICAgY3VyTGluZSA9IGZMVE5lZ1N0YXJ0OworCisgICAgICAgICAgICBmTGluZVRhYmxlW2N1ckxpbmVdLnJlbmRlcldpdGhIaWdobGlnaHQoZkxUQ3VyVGV4dExlbiwgZzJkLCBmTGluZURpbSwgbGluZVgsIGxpbmVZLCBzZWxTdGFydCwgc2VsU3RvcCwgaGlnaGxpZ2h0KTsKKworICAgICAgICAgICAgLy8gSW5jcmVtZW50IGxpbmUgYmFzZSBmb3IgbmV4dCBpdGVyYXRpb24uCisgICAgICAgICAgICBpbnQgbGluZUluYyA9IGZMaW5lVGFibGVbY3VyTGluZV0uZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpIHsKKyAgICAgICAgICAgICAgICBpZiAoZkhMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lWSArPSBsaW5lSW5jOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbGluZVggKz0gbGluZUluYzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGZITGluZSkKKyAgICAgICAgICAgICAgICAgICAgbGluZVkgLT0gbGluZUluYzsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxpbmVYIC09IGxpbmVJbmM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIEZvcm1hdCB0ZXh0IHRvIGdpdmVuIGhlaWdodC4KKyAgICAqIEBwYXJhbSBoZWlnaHQgdGhlIGhlaWdodCB0byB3aGljaCB0ZXh0IHdpbGwgYmUgZm9ybWF0dGVkLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGZvcm1hdFRvSGVpZ2h0KGludCByZXFIZWlnaHQpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpZiAocmVxSGVpZ2h0IDw9IGZQaXhIZWlnaHQpIC8vIGFscmVhZHkgZm9ybWF0dGVkIHRvIHRoaXMgaGVpZ2h0CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGZUZXh0Lmxlbmd0aCgpID09IGxhc3RMaW5lQ2hhclN0b3AoKSkgLy8gYWxyZWFkeSBmb3JtYXR0ZWQgYWxsIHRoZSB0ZXh0CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gKysrIHNob3VsZCBkaXNhYmxlIHVwZGF0ZSB0aHJlYWQgaGVyZQorCisgICAgICAgIGlmIChmTFROZWdTdGFydCA8IGZMVFNpemUpCisgICAgICAgICAgICBzaGlmdFRhYmxlVG8oZkxUU2l6ZSAtIDEpOworCisgICAgICAgIGZvcm1hdFRleHQoMCwgMCwgcmVxSGVpZ2h0LCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0IHRleHQgdG8gZ2l2ZW4gb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byB3aGljaCB0ZXh0IHdpbGwgYmUgZm9ybWF0dGVkLgorICAgICAqLworICAgICBwcml2YXRlIHZvaWQgZm9ybWF0VG9PZmZzZXQoVGV4dE9mZnNldCBvZmZzZXQpCisgICAgIHsKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0LmZPZmZzZXQsIG9mZnNldC5mUGxhY2VtZW50KTsKKyAgICAgfQorICAgICAKKyAgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgdm9pZCBmb3JtYXRUb09mZnNldChpbnQgb2Zmc2V0LCBib29sZWFuIHBsYWNlbWVudCkgeworICAgICAgICAKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgaW50IGxsY3MgPSBsYXN0TGluZUNoYXJTdG9wKCk7CisgICAgICAgIGlmIChsbGNzIDwgZkxUQ3VyVGV4dExlbikgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0OworICAgICAgICAgICAgaWYgKHBsYWNlbWVudCA9PSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCkgLy8gZm9ybWF0IHRvIHBhc3QgY2hhcmFjdGVyIG9mZnNldCBpcyBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgICAgICAgICBsaW1pdCsrOworICAgICAgICAgICAgaWYgKGxpbWl0ID49IGxsY3MpIHsgLy8gPz8/IHdvdWxkICc+JyBiZSBvayBpbnN0ZWFkIG9yICc+PSc/CisgICAgICAgICAgICAgICAgaWYgKGxpbWl0ID4gZkxUQ3VyVGV4dExlbikKKyAgICAgICAgICAgICAgICAgICAgbGltaXQgPSBmTFRDdXJUZXh0TGVuOworCisgICAgICAgICAgICAgICAgc2hpZnRUYWJsZVRvKGxhc3RMaW5lKCkpOworICAgICAgICAgICAgICAgIGZvcm1hdFRleHQobGxjcywgbGltaXQgLSBsbGNzLCBJbnRlZ2VyLk1BWF9WQUxVRSwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgfQorCisvKioKKyogUmVmb3JtYXQgdGV4dCBhZnRlciBhIGNoYW5nZS4KKyogQWZ0ZXIgdGhlIGZvcm1hdHRlcidzIHRleHQgY2hhbmdlcywgY2FsbCB0aGlzIG1ldGhvZCB0byByZWZvcm1hdC4gIERvZXMKKyogbm90IHJlZHJhdy4KKyogQHBhcmFtIGFmU3RhcnQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0IHdoZXJlIG1vZGlmaWNhdGlvbiBiZWdhbjsgIGllLCB0aGUKKyogZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IHdoaWNoIGlzICJkaWZmZXJlbnQiIGluIHNvbWUgd2F5LiAgRG9lcyBub3QKKyogaGF2ZSB0byBiZSBub25uZWdhdGl2ZS4KKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4gIFNob3VsZCBuZXZlcgorKiBiZSBsZXNzIHRoYW4gMC4KKyogQHBhcmFtIHZpZXdSZWN0IHRoZSBSZWN0YW5nbGUgaW4gd2hpY2ggdGhlIHRleHQgd2lsbCBiZSBkaXNwbGF5ZWQuICBUaGlzIGlzIG5lZWRlZCBmb3IKKyogcmV0dXJuaW5nIHRoZSAiZGFtYWdlZCIgYXJlYSAtIHRoZSBhcmVhIG9mIHRoZSBzY3JlZW4gaW4gd2hpY2ggdGhlIHRleHQgbXVzdCBiZSByZWRyYXduLgorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHJldHVybnMgYSA8dHQ+UmVjdGFuZ2xlPC90dD4gd2hpY2ggc3BlY2lmaWVzIHRoZSBhcmVhIGluIHdoaWNoIHRleHQgbXVzdCBiZQorKiByZWRyYXduIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSB0byB0aGUgdGV4dC4KKyovCisgICAgcHVibGljIFJlY3RhbmdsZSB1cGRhdGVGb3JtYXQoZmluYWwgaW50IGFmU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBhZkxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHZpZXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4pCisgICAgeworICAgICAgICBpZiAoYWZTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiB1cGRhdGVGb3JtYXQgYWZTdGFydCA8IDA6ICIgKyBhZlN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkJnRm9ybWF0QWxsb3dlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFja2dyb3VuZCBmb3JtYXR0aW5nIHNob3VsZCBoYXZlIGJlZW4gZGlzYWJsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBmQ3VyVGltZVN0YW1wID0gZlRleHQuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgIAorICAgICAgICBpbnQgY3VyTGluZSA9IGdldFZhbGlkTGluZUNvbnRhaW5pbmcoYWZTdGFydCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICBpbnQgbGluZVN0YXJ0UG9zID0gbGluZUNoYXJTdGFydEludGVybmFsKGN1ckxpbmUpOworCisgICAgICAgIC8vIG9wdGltaXplIGJ5IGZpbmRpbmcgb3V0IHdoZXRoZXIgY2hhbmdlIG9jY3VycmVkCisgICAgICAgIC8vIGFmdGVyIGZpcnN0IHdvcmQgYnJlYWsgb24gY3VybGluZQorCisgICAgICAgIGludCBmaXJzdFBvc3NpYmxlQnJlYWs7CisKKyAgICAgICAgaWYgKGxpbmVTdGFydFBvcyA8IGZUZXh0Lmxlbmd0aCgpKSB7CisKKyAgICAgICAgICAgIGlmIChmTGluZUJyZWFrID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmTGluZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNoYXJJdGVyID0gZlRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGNoYXJJdGVyLnNldEluZGV4KGxpbmVTdGFydFBvcyk7CisgICAgICAgICAgICBmTGluZUJyZWFrLnNldFRleHQoY2hhckl0ZXIpOworCisgICAgICAgICAgICBmaXJzdFBvc3NpYmxlQnJlYWsgPSBmTGluZUJyZWFrLmZvbGxvd2luZyhsaW5lU3RhcnRQb3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpcnN0UG9zc2libGVCcmVhayA9IGFmU3RhcnQ7CisKKyAgICAgICAgaWYgKChjdXJMaW5lID4gMCkgJiYgKGZpcnN0UG9zc2libGVCcmVhayA9PSBCcmVha0l0ZXJhdG9yLkRPTkUgfHwgYWZTdGFydCA8PSBmaXJzdFBvc3NpYmxlQnJlYWspKSB7CisgICAgICAgICAgICBjdXJMaW5lLS07CisgICAgICAgICAgICBpZiAoY3VyTGluZSA8IGZMVE5lZ1N0YXJ0ICYmIGN1ckxpbmUgPiBmTFRQb3NFbmQpCisgICAgICAgICAgICAgICAgY3VyTGluZSA9IGZMVFBvc0VuZDsKKyAgICAgICAgfQorCisgICAgICAgIHNoaWZ0VGFibGVUbyhjdXJMaW5lKTsKKworICAgICAgICBpbnQgcGl4SGVpZ2h0OyAvLyBhZnRlciB0aGUgZm9ybWF0VGV4dCBjYWxsLCBhdCBsZWFzdCBwaXhIZWlnaHQgdGV4dCBtdXN0IGJlIGZvcm1hdHRlZAorCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBwaXhIZWlnaHQgPSB2aWV3UmVjdC55ICsgdmlld1JlY3QuaGVpZ2h0IC0gb3JpZ2luLnk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gb3JpZ2luLnkgLSB2aWV3UmVjdC55OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIHBpeEhlaWdodCA9IHZpZXdSZWN0LnggKyB2aWV3UmVjdC53aWR0aCAtIG9yaWdpbi54OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHBpeEhlaWdodCA9IG9yaWdpbi54IC0gdmlld1JlY3QueDsKKyAgICAgICAgfQorCisgICAgICAgIFJlY3RhbmdsZSByID0gZm9ybWF0VGV4dChhZlN0YXJ0LCBhZkxlbmd0aCwgcGl4SGVpZ2h0LCBmYWxzZSk7CisKKyAgICAgICAgLy9kdW1wTGluZVRhYmxlKCk7CisKKyAgICAgICAgaWYgKChmUGl4SGVpZ2h0IDwgcGl4SGVpZ2h0KSAmJiAoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSAmJiAoZkxUQ3VyVGV4dExlbiA+IGxhc3RMaW5lQ2hhclN0b3AoKSkpIHsKKyAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhsYXN0TGluZSgpKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBzID0gZm9ybWF0VGV4dCgwLCAwLCBwaXhIZWlnaHQsIGZhbHNlKTsKKyAgICAgICAgICAgIHIgPSByLnVuaW9uKHMpOworICAgICAgICB9CisKKyAgICAgICAgaW50bFJlY3Qob3JpZ2luLCByKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkRhbWFnZWQgcmVjdDogIityKyI7IG9yaWdpbjogIitvcmlnaW4pOworCisgICAgICAgIC8vIGRvbid0IG5lZWQgdG8gc3luY2hyb25pemVkIGhlcmUsIGIvYyB0aGUgZGFlbW9uIHNob3VsZG4ndCBiZSBydW5uaW5nIHdoZW4KKyAgICAgICAgLy8gdGhpcyBpcyBleGVjdXRpbmcKKworICAgICAgICBpZiAoZlRleHQubGVuZ3RoKCkgPCBsYXN0TGluZUNoYXJTdG9wKCkpCisgICAgICAgICAgICBlbmFibGVCR0Zvcm1hdCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICAvL2R1bXBMaW5lVGFibGUoKTsKKworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMaW5lQnJlYWtNZWFzdXJlciBtYWtlTWVhc3VyZXIoaW50IHBhcmFncmFwaFN0YXJ0LCBpbnQgcGFyYWdyYXBoTGltaXQpIHsKKworICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIgPSBuZXcgTGluZUJyZWFrTWVhc3VyZXIoaXRlciwgZkZvbnRSZW5kZXJDb250ZXh0KTsKKyAgICAgICAgaWYgKGZnQ2FjaGVNZWFzdXJlcnMpIHsKKyAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlclN0YXJ0ID0gcGFyYWdyYXBoU3RhcnQ7CisgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXJMaW1pdCA9IHBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyID0gbWVhc3VyZXI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1lYXN1cmVyOworICAgIH0gICAgICAgIAorCisvKioKKyogQ29tcHV0ZSB0ZXh0IGZvcm1hdC4gIFRoaXMgbWV0aG9kIGNhbGN1bGF0ZXMgdGV4dCBmb3JtYXQ7ICBpdCBjYW4gYmUKKyogY2FsbGVkIGZvciB2YXJpb3VzIHB1cnBvc2VzOiAgdG8gcmVmb3JtYXQgdGV4dCBhZnRlciBhbiBlZGl0LCB0bworKiBmb3JtYXQgdGV4dCB0byBhIHBhcnRpY3VsYXIgaGVpZ2h0LCBvciB0byBmb3JtYXQgdGV4dCB1cCB0byBhCisqIHBhcnRpY3VsYXIgb2Zmc2V0LgorKiA8cD4KKyogVGhlIGNhbGxpbmcgbWV0aG9kIG11c3QgZW5zdXJlIHRoYXQgPHR0PmZMaW5lVGFibGU8L3R0PiBoYXMgYmVlbiBzaGlmdGVkCisqIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBsaW5lIGlzIHdoZXJlIHRoZSBmb3JtYXR0aW5nIG9wZXJhdGlvbiB3aWxsCisqIGJlZ2luLgorKiA8cD4KKyogQ2FsbGVkIGJ5OiA8dHQ+Zm9ybWF0VG9IZWlnaHQoKTwvdHQ+LCA8dHQ+dXBkYXRlRm9ybWF0KCk8L3R0PiwKKyogPHR0PnRleHRPZmZzZXRUb1BvaW50KCk8L3R0PiwgPHR0PmdldEJvdW5kaW5nUmVjdCgpPC90dD4KKyogQHBhcmFtIGFmU3RhcnQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IHdoaWNoIGhhcyBjaGFuZ2VkCisqIEBwYXJhbSBhZkxlbmd0aCB0aGUgbnVtYmVyIG9mIG5ldyBvciBjaGFuZ2VkIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQKKyogQHBhcmFtIHJlcUhlaWdodCB0aGUgcGl4ZWwgaGVpZ2h0IHRvIHdoaWNoIHRleHQgbXVzdCBiZSBmb3JtYXR0ZWQuICBJZ25vcmVkCisqIGlmIDx0dD5mb3JtYXRBbGxOZXdUZXh0PC90dD4gaXMgPHR0PnRydWU8L3R0Piwgb3IgaWYgb2xkIGxpbmVzIHJlbWFpbiBpbiB0aGUKKyogbGluZSB0YWJsZSBhZnRlciBhbGwgY2hhbmdlZCB0ZXh0IGhhcyBiZWVuIGZvcm1hdHRlZC4KKyogQHBhcmFtIHNlZWtPZmZzZXRBdEVuZCBpZiA8dHQ+dHJ1ZTwvdHQ+LCBmb3JtYXR0aW5nIGNvbnRpbnVlcyB1bnRpbCB0aGUgbGluZQorKiBjb250YWluaW5nIGFmU3RhcnQrYWZMZW5ndGggaGFzIGJlZW4gZm9ybWF0dGVkLiAgSWYgZmFsc2UsIGZvcm1hdHRpbmcgbWF5IHN0b3AKKyogd2hlbiByZXFIZWlnaHQgaGFzIGJlZW4gcmVhY2hlZC4gIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSA8dHQ+dHJ1ZTwvdHQ+IDxiPm9ubHk8L2I+CisqIGlmIHRoZSBvYmplY3Qgb2YgdGhlIGZvcm1hdHRpbmcgb3BlcmF0aW9uIGlzIHRvIGV4dGVuZCBmb3JtYXR0aW5nIHRvIGEgcGFydGljdWxhcgorKiBvZmZzZXQgd2l0aGluIHRoZSB0ZXh0OyAgaXQgc2hvdWxkIGJlIDx0dD5mYWxzZTwvdHQ+IGV2ZXJ5d2hlcmUgZWxzZS4KKyogQHJldHVybnMgYSByZWN0YW5nbGUsIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgdGV4dCwgd2hpY2ggZW5jbG9zZXMgdGhlCisqIHNjcmVlbiBhcmVhIHdob3NlIGFwcGVhcmFuY2UgaGFzIGNoYW5nZWQgZHVlIHRvIHRoZSByZWZvcm1hdHRpbmcuCisqLworCisgICAgcHJpdmF0ZSBSZWN0YW5nbGUgZm9ybWF0VGV4dChpbnQgYWZTdGFydCwgZmluYWwgaW50IGFmTGVuZ3RoLCBpbnQgcmVxSGVpZ2h0LCBib29sZWFuIHNlZWtPZmZzZXRBdEVuZCkKKyAgICB7CisgICAgLyogYXNzdW1lcyBsaW5lIHRhYmxlIHNoaWZ0ZWQgc3VjaCB0aGF0IGZpcnN0IGxpbmUgdG8gZm9ybWF0IGlzCisgICAgbGFzdCBwb3NpdGl2ZSBsaW5lICovCisKKyAgICAgICAgaWYgKGFmTGVuZ3RoIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYWZMZW5ndGggPCAwLiAgYWZMZW5ndGg9IiArIGFmTGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuZXdUZXh0RW5kID0gYWZTdGFydCArIGFmTGVuZ3RoOworCisgICAgICAgIGZpbmFsIGludCBuZXdDdXJUZXh0TGVuID0gZlRleHQubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgaW50IG9sZFBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisgICAgICAgIGludCBvbGRGdWxsUGl4SGVpZ2h0ID0gZkZ1bGxQaXhIZWlnaHQ7CisgICAgICAgIGZQaXhIZWlnaHQgLT0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldEhlaWdodCgpOworCisgICAgICAgIGludCBjdXJHcmFwaGljU3RhcnQgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpOworICAgICAgICBpbnQgY3VyTGluZVN0YXJ0ID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgCisgICAgICAgIGludCBjdXJQYXJhZ3JhcGhTdGFydCA9IGZUZXh0LnBhcmFncmFwaFN0YXJ0KGN1ckxpbmVTdGFydCk7CisgICAgICAgIGludCBjdXJQYXJhZ3JhcGhMaW1pdCA9IEludGVnZXIuTUlOX1ZBTFVFOyAvLyBkdW1teSB2YWx1ZQorCisgICAgICAgIGludCBkYW1hZ2VTdGFydCA9IGN1ckdyYXBoaWNTdGFydDsKKworICAgICAgICBQYXJhZ3JhcGhSZW5kZXJlciByZW5kZXJlciA9IG51bGw7CisgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIC8vIHRyeSB0byB1c2UgY2FjaGVkIExpbmVCcmVha01lYXN1cmVyIGlmIHBvc3NpYmxlCisgICAgICAgIGlmIChmQ2FjaGVkTWVhc3VyZXIgIT0gbnVsbCAmJiAKKyAgICAgICAgICAgIGN1clBhcmFncmFwaFN0YXJ0ID09IGZDYWNoZWRNZWFzdXJlclN0YXJ0KSB7CisKKyAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gZlRleHQucGFyYWdyYXBoTGltaXQoY3VyUGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChuZXdDdXJUZXh0TGVuIC0gZkxUQ3VyVGV4dExlbiA9PSAxICYmIGFmTGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1clBhcmFncmFwaExpbWl0ID09IGZDYWNoZWRNZWFzdXJlckxpbWl0KzEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZXNvbHZlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlci5pbnNlcnRDaGFyKGl0ZXIsIGFmU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyTGltaXQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyID0gZkNhY2hlZE1lYXN1cmVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZMVEN1clRleHRMZW4gLSBuZXdDdXJUZXh0TGVuID09IDEgJiYgYWZMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZkNhY2hlZE1lYXN1cmVyTGltaXQgPiBmQ2FjaGVkTWVhc3VyZXJTdGFydCArIDEgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQgPT0gZkNhY2hlZE1lYXN1cmVyTGltaXQtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRJdGVyYXRvciBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIuZGVsZXRlQ2hhcihpdGVyLCBhZlN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlckxpbWl0IC09IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciA9IGZDYWNoZWRNZWFzdXJlcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICBmZ0NhY2hlTWVhc3VyZXJzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtZWFzdXJlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBzZXQgdXAgcmVuZGVyZXIgc2luY2UgdGhlIHBhcmFncmFwaCB1cGRhdGUgaW4gdGhlCisgICAgICAgICAgICAgICAgLy8gZm9ybWF0dGluZyBsb29wIHdpbGwgbm90IGhhcHBlbgorICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoY3VyUGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gZ2V0UmVuZGVyZXJGb3Ioc3R5bGUpOworICAgICAgICAgICAgICAgIG1lYXN1cmVyLnNldFBvc2l0aW9uKGN1ckxpbmVTdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtZWFzdXJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyB0cmlnZ2VyIHBhcmFncmFwaCB1cGRhdGUgYXQgc3RhcnQgb2YgZm9ybWF0dGluZyBsb29wCisgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCA9IGN1clBhcmFncmFwaFN0YXJ0OworICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQgPSAwOworICAgICAgICB9CisKKyAgICAgICAgZkxUQ3VyVGV4dExlbiA9IG5ld0N1clRleHRMZW47CisgICAgICAgIAorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJsaW5lOiAiICsgZkxUUG9zRW5kICsgIiwgY2xzOiAiICsgY3VyTGluZVN0YXJ0KTsKKworCisgICAgICAgICAgICBpZiAoY3VyTGluZVN0YXJ0ID49IGN1clBhcmFncmFwaExpbWl0KSB7CisgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQgPSBjdXJQYXJhZ3JhcGhMaW1pdDsKKyAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCA9IGZUZXh0LnBhcmFncmFwaExpbWl0KGN1clBhcmFncmFwaFN0YXJ0KTsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoY3VyUGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gZ2V0UmVuZGVyZXJGb3Ioc3R5bGUpOworCisgICAgICAgICAgICAgICAgaWYgKGN1clBhcmFncmFwaFN0YXJ0IDwgY3VyUGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBtYWtlTWVhc3VyZXIoY3VyUGFyYWdyYXBoU3RhcnQsIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIuc2V0UG9zaXRpb24oY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGhhdmVPbGREaXJlY3Rpb24gPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0gIT0gbnVsbDsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9sZERpcmVjdGlvbiA9IGZhbHNlOyAvLyAgZHVtbXkgdmFsdWUgZm9yIGNvbXBpbGVyCisgICAgICAgICAgICAgICAgaWYgKGhhdmVPbGREaXJlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgb2xkRGlyZWN0aW9uID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmTGluZVRhYmxlW2ZMVFBvc0VuZF0gPSByZW5kZXJlci5sYXlvdXQoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUUG9zRW5kXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVuZGVyQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmV3JhcCA/IGZMaW5lRGltIDogSW50ZWdlci5NQVhfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaW5lRGltKTsKKyAgICAgICAgICAgICAgICBpZiAoaGF2ZU9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBpZiAoZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmlzTGVmdFRvUmlnaHQoKSAhPSBvbGREaXJlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RleHRFbmQgPSBNYXRoLm1heChuZXdUZXh0RW5kLCBjdXJQYXJhZ3JhcGhMaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBMYXlvdXRJbmZvIHRoZUxpbmUgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF07CisKKyAgICAgICAgICAgICAgICB0aGVMaW5lLnNldEdyYXBoaWNTdGFydChjdXJHcmFwaGljU3RhcnQpOworICAgICAgICAgICAgICAgIGN1ckdyYXBoaWNTdGFydCArPSB0aGVMaW5lLmdldEhlaWdodCgpOworCisgICAgICAgICAgICAgICAgZlBpeEhlaWdodCArPSB0aGVMaW5lLmdldEhlaWdodCgpOworICAgICAgICAgICAgICAgIGN1ckxpbmVTdGFydCArPSB0aGVMaW5lLmdldENoYXJMZW5ndGgoKTsKKworICAgICAgICAgICAgICAgIGlmICghZldyYXApIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVXaWR0aCA9IHRoZUxpbmUuZ2V0VG90YWxBZHZhbmNlKCkgKyB0aGVMaW5lLmdldExlYWRpbmdNYXJnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoZUxpbmUuaXNMZWZ0VG9SaWdodCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZk1heFggPCBsaW5lV2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTWF4WCA9IGxpbmVXaWR0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmTGluZURpbS1saW5lV2lkdGggPCBmTWluWCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNaW5YID0gZkxpbmVEaW0tbGluZVdpZHRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBOZXh0LCBkaXNjYXJkIG9ic29sZXRlIGxpbmVzLiAgQSBsaW5lIGlzIG9ic29sZXRlIGlmIGl0CisgICAgICAgICAgICAgICAgY29udGFpbnMgbmV3IHRleHQgb3IgdGV4dCB3aGljaCBoYXMgYmVlbiBmb3JtYXR0ZWQuCisgICAgICAgICAgICAqLworCisgICAgICAgICAgICB3aGlsZSAoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVQb3MgPSBmTGluZVRhYmxlW2ZMVE5lZ1N0YXJ0XS5nZXRDaGFyU3RhcnQobmV3Q3VyVGV4dExlbik7CisgICAgICAgICAgICAgICAgaWYgKGxpbmVQb3MgPj0gY3VyTGluZVN0YXJ0ICYmIGxpbmVQb3MgPj0gbmV3VGV4dEVuZCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImRlbGV0ZSBuZWcgbGluZTogIiArIGZMVE5lZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgICBmUGl4SGVpZ2h0IC09IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldEhlaWdodCgpOworICAgICAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUTmVnU3RhcnQrK10gPSBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3RvcEF0OworICAgICAgICAgICAgaWYgKGZMVE5lZ1N0YXJ0IDwgZkxUU2l6ZSkKKyAgICAgICAgICAgICAgICBzdG9wQXQgPSBmTGluZVRhYmxlW2ZMVE5lZ1N0YXJ0XS5nZXRDaGFyU3RhcnQobmV3Q3VyVGV4dExlbik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3RvcEF0ID0gbmV3Q3VyVGV4dExlbjsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBOb3csIGlmIGV4aXQgY29uZGl0aW9ucyBhcmVuJ3QgbWV0LCBjcmVhdGUgYSBuZXcgbGluZS4KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIGlmIChzZWVrT2Zmc2V0QXRFbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGN1ckxpbmVTdGFydCA+PSBuZXdUZXh0RW5kKSAmJiAoZkxUTmVnU3RhcnQgPT0gZkxUU2l6ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJicmVhayAxIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjdXJMaW5lU3RhcnQgPj0gc3RvcEF0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiY3VyTGluZVN0YXJ0OiAiICsgY3VyTGluZVN0YXJ0ICsgIiA+PSBzdG9wQXQ6ICIgKyBzdG9wQXQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZkxUTmVnU3RhcnQ9PWZMVFNpemUgJiYgZlBpeEhlaWdodCA+PSByZXFIZWlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJicmVhayAzIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZMVFBvc0VuZCArIDEgPT0gZkxUTmVnU3RhcnQpCisgICAgICAgICAgICAgICAgZXhwYW5kTGluZVRhYmxlKCk7CisKKyAgICAgICAgICAgIGZMaW5lVGFibGVbKytmTFRQb3NFbmRdID0gbnVsbDsgLy8gd2lsbCBiZSBjcmVhdGVkIGJ5IFJlbmRlcmVyCisgICAgICAgIH0KKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KCJcbiIpOworCisgICAgICAgIGlmIChuZXdDdXJUZXh0TGVuID09IDApIHsKKyAgICAgICAgICAgIGZMaW5lVGFibGVbMF0gPSBwc2V1ZG9MaW5lSW5mbyhmTGluZVRhYmxlWzBdLCAwKTsKKyAgICAgICAgICAgIGZQaXhIZWlnaHQgPSBmTGluZVRhYmxlWzBdLmdldEhlaWdodCgpOworICAgICAgICB9CisgICAgICAgIGZGdWxsUGl4SGVpZ2h0ID0gZlBpeEhlaWdodDsKKworICAgICAgICBpZiAoaXNQYXJhQnJlYWtCZWZvcmUobmV3Q3VyVGV4dExlbikpIHsKKyAgICAgICAgICAgIGZGdWxsUGl4SGVpZ2h0ICs9IGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgIH0KKy8qCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY3VyTGluZVN0YXJ0OiAiICsgY3VyTGluZVN0YXJ0ICsKKyAgICAgICAgICAgICIsIGZMVFBvc0VuZDogIiArIGZMVFBvc0VuZCArCisgICAgICAgICAgICAiLCBmTFROZWdTdGFydDogIiArIGZMVE5lZ1N0YXJ0ICsKKyAgICAgICAgICAgICIsIGZMVFNpemU6ICIgKyBmTFRTaXplKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9sZEZ1bGxQaXhIZWlnaHQ6ICIgKyBvbGRGdWxsUGl4SGVpZ2h0ICsgIiwgbmV3RnVsbFBpeEhlaWdodDogIiArIGZGdWxsUGl4SGVpZ2h0KTsKKyovCisgICAgICAgIGludCBkYW1hZ2VMZW5ndGg7CisgICAgICAgIGlmIChmRnVsbFBpeEhlaWdodCA9PSBvbGRGdWxsUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICBkYW1hZ2VMZW5ndGggPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0SGVpZ2h0KCkgLSBkYW1hZ2VTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRhbWFnZUxlbmd0aCA9IE1hdGgubWF4KGZGdWxsUGl4SGVpZ2h0LCBvbGRGdWxsUGl4SGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKGZNaW5YLCBkYW1hZ2VTdGFydCwgZk1heFgtZk1pblgsIGRhbWFnZUxlbmd0aCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBMaW5lVGFibGUoKQorICAgIHsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmTFRDdXJUZXh0TGVuPSIgKyBmTFRDdXJUZXh0TGVuICsgIiAiICk7CisgICAgICAgIGZvciAoaT0wOyBpPD0gZkxUUG9zRW5kOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxpbmUgIiArIGkgKyAiIHN0YXJ0cyBhdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZkxpbmVUYWJsZVtpXS5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGFuZCBleHRlbmRzICIgKyBmTGluZVRhYmxlW2ldLmdldENoYXJMZW5ndGgoKSk7CisKKyAgICAgICAgZm9yIChpPWZMVE5lZ1N0YXJ0OyBpPCBmTFRTaXplOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxpbmUgIiArIChpLWZMVE5lZ1N0YXJ0K2ZMVFBvc0VuZCsxKSArICIgc3RhcnRzIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmTGluZVRhYmxlW2ldLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIGV4dGVuZHMgIiArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhckxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBtaW5YKCkgeworICAgIAorICAgICAgICByZXR1cm4gZk1pblg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBob3Jpem9udGFsIGV4dGVudCBvZiB0aGUgdGV4dCwgaW4gcGl4ZWxzLgorICAgICogPHA+CisgICAgKiBUaGlzIHJldHVybnMgYW4gYXBwcm94aW1hdGlvbiBiYXNlZCBvbiB0aGUgY3VycmVudGx5IGZvcm1hdHRlZCB0ZXh0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbWF4WCgpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworCisgICAgICAgIHJldHVybiBmTWF4WDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0aGUgaGVpZ2h0IG9mIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dC4KKyAgICAqCisgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHRoZSAnZXh0cmEgaGVpZ2h0JyBuZWVkZWQgdG8gZGlzcGxheSBhIGNhcmV0IGF0IHRoZSBlbmQgb2YgdGhlIHRleHQgd2hlbiB0aGUKKyAgICAqIHRleHQgaXMgZW1wdHkgb3IgZW5kcyB3aXRoIGEgbmV3bGluZS4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGxhc3RDaGFySGVpZ2h0KCkKKyAgICB7CisgICAgICAgIGludCBjaGFySW5kZXggPSBsYXN0TGluZUNoYXJTdG9wKCkgLSAxOworICAgICAgICBBdHRyaWJ1dGVNYXAgc3QgPSBmVGV4dC5jaGFyYWN0ZXJTdHlsZUF0KGNoYXJJbmRleCk7CisgICAgICAgIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuTWV0cmljIG1ldHJpYyA9IGZEZWZhdWx0Q2hhck1ldHJpYy5nZXRNZXRyaWNGb3JTdHlsZShzdCk7CisKKyAgICAgICAgaW50IGhlaWdodCA9IG1ldHJpYy5nZXRBc2NlbnQoKTsKKyAgICAgICAgaGVpZ2h0ICs9IG1ldHJpYy5nZXREZXNjZW50KCk7CisgICAgICAgIGhlaWdodCArPSBtZXRyaWMuZ2V0TGVhZGluZygpOworCisgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBhdCBwb3MgaXMgYSBwYXJhZ3JhcGggc2VwYXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1BhcmFCcmVha0JlZm9yZShpbnQgcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBvcyA+IDAgJiYgKGZUZXh0LmF0KHBvcyAtIDEpID09ICdcdTIwMjknIHx8IGZUZXh0LmF0KHBvcyAtIDEpID09ICdcbicpOworICAgICAgICAvLyB3ZSByZWFsbHkgbmVlZCB0byB0YWtlIGxvb2sgYXQgdGhpcyBhbmQgZGV0ZXJtaW5lIHdoYXQgdGhpcyBmdW5jdGlvbgorICAgICAgICAvLyBzaG91bGQgYmUgZG9pbmcuICBXaGF0IEkndmUgZ290IGhlcmUgcmlnaHQgbm93IGlzIGEgdGVtcG9yYXJ5IGltcGxlbWVudGF0aW9uLgorICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1pblkoKSB7CisgICAgCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFJldHVybiB0aGUgdmVydGljYWwgZXh0ZW50IG9mIHRoZSB0ZXh0LCBpbiBwaXhlbHMuCisgICAgKiA8cD4KKyAgICAqIFRoaXMgcmV0dXJucyBhbiBhcHByb3hpbWF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgZm9ybWF0dGVkIHRleHQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBtYXhZKCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisKKyAgICAgICAgaW50IG51bUNoYXJzID0gbGFzdExpbmVDaGFyU3RvcCgpOworCisgICAgICAgIGludCBwaXhIZWlnaHQgPSBmUGl4SGVpZ2h0OworICAgICAgICBpZiAobnVtQ2hhcnMgPT0gZkxUQ3VyVGV4dExlbiAmJiBpc1BhcmFCcmVha0JlZm9yZShmTFRDdXJUZXh0TGVuKSkgeworICAgICAgICAgICAgcGl4SGVpZ2h0ICs9IGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobnVtQ2hhcnMgIT0gMCkKKyAgICAgICAgICAgIHJldHVybiBwaXhIZWlnaHQgKiBmVGV4dC5sZW5ndGgoKSAvIG51bUNoYXJzOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0aGUgYWN0dWFsIHBpeGVsIGxlbmd0aCBvZiB0aGUgdGV4dCB3aGljaCBoYXMgYmVlbiBmb3JtYXR0ZWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBmb3JtYXR0ZWRIZWlnaHQoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgcmV0dXJuIGZQaXhIZWlnaHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlcmUgYXJlIHR3byBtb2RlcyBmb3IgZGVhbGluZyB3aXRoIGNhcnJpYWdlIHJldHVybnMgYXQgdGhlIGVuZCBvZiBhIGxpbmUuICBJbiB0aGUgJ2luZmluaXRlIHdpZHRoJworICAgICAqIG1vZGUsIHRoZSBsYXN0IGNoYXJhY3RlciBpcyBjb25zaWRlcmVkIHRvIGhhdmUgaW5maW5pdGUgd2lkdGguICBUaHVzIGlmIHRoZSBwb2ludCBpcyBwYXN0IHRoZSAncmVhbCcKKyAgICAgKiBlbmQgb2YgdGhlIGxpbmUsIHRoZSBvZmZzZXQgaXMgdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGF0IGxhc3QgY2hhcmFjdGVyLCBhbmQgdGhlIG9mZnNldCBpcyBhc3NvY2lhdGVkCisgICAgICogd2l0aCB0aGF0IGNoYXJhY3RlciAocGxhY2VtZW50IGFmdGVyKS4gSW4gdGhlICdhY3R1YWwgd2lkdGgnIG1vZGUsIHRoZSBvZmZzZXQgaXMgcG9zaXRpb25lZCBhZnRlcgorICAgICAqIHRoYXQgY2hhcmFjdGVyLCBidXQgc3RpbGwgYXNzb2NpYXRlZCB3aXRoIGl0IChwbGFjZW1lbnQgYmVmb3JlKS4KKyAgICAgKi8KKworICAgIHByaXZhdGUgVGV4dE9mZnNldCBsaW5lRGltVG9PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIGludCBsaW5lLCBpbnQgbGluZVgsIGludCBsaW5lWSwgVGV4dE9mZnNldCBhbmNob3IsIGJvb2xlYW4gaW5maW5pdGVNb2RlKQorICAgIHsKKyAgICAvLyB0ZW1wb3JhcmlseSBhZGp1c3QgbGluZSBpbmZvIHRvIHJlbW92ZSB0aGUgbmVnYXRpdmUgY2hhciBzdGFydHMgdXNlZCBpbiB0aGUgbGluZSB0YWJsZS4KKyAgICAvLyB0aGVuIGNhbGwgdGhyb3VnaCB0byB0aGUgcGFyYWdyYXBoIHJlbmRlcmVyIHRvIGdldCB0aGUgb2Zmc2V0LiAgRG9uJ3QgcHV0IGxpbmUgZW5kCisgICAgLy8gb3B0aW1pemF0aW9uIGhlcmUsIGxldCB0aGUgcmVuZGVyZXIgZG8gaXQgKHBlcmhhcHMgaXQgZG9lcyBmYW5jeSBzdHVmZiB3aXRoIHRoZSBtYXJnaW5zKS4KKworICAgICAgICBMYXlvdXRJbmZvIGxpbmVJbmZvID0gZkxpbmVUYWJsZVtsaW5lXTsKKworICAgICAgICByZXN1bHQgPSBsaW5lSW5mby5waXhlbFRvT2Zmc2V0KGZMVEN1clRleHRMZW4sIHJlc3VsdCwgZkxpbmVEaW0sIGxpbmVYLCBsaW5lWSk7CisKKyAgICAgICAgaWYgKGluZmluaXRlTW9kZSAmJgorICAgICAgICAgICAgKHJlc3VsdC5mT2Zmc2V0ID4gbGluZUluZm8uZ2V0Q2hhclN0YXJ0KGZMVEN1clRleHRMZW4pKSAmJgorICAgICAgICAgICAgaXNQYXJhQnJlYWtCZWZvcmUocmVzdWx0LmZPZmZzZXQpICYmCisgICAgICAgICAgICAoYW5jaG9yID09IG51bGwgfHwgYW5jaG9yLmZPZmZzZXQgPT0gcmVzdWx0LmZPZmZzZXQgLSAxKSkgeworCisgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KHJlc3VsdC5mT2Zmc2V0IC0gMSwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdpdmVuIGEgc2NyZWVuIGxvY2F0aW9uIHAsIHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgbmVhcmVzdCB0byBwLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBUZXh0T2Zmc2V0IHBvaW50VG9UZXh0T2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LCBpbnQgcHgsIGludCBweSwgUG9pbnQgb3JpZ2luLCBUZXh0T2Zmc2V0IGFuY2hvciwgYm9vbGVhbiBpbmZpbml0ZU1vZGUpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGludCBmaWxsRDsKKworICAgICAgICBpZiAoZkhMaW5lKQorICAgICAgICAgICAgZmlsbEQgPSBweSAtIG9yaWdpbi55OworICAgICAgICBlbHNlCisgICAgICAgICAgICBmaWxsRCA9IHB4IC0gb3JpZ2luLng7CisKKyAgICAgICAgaWYgKCFmRmlsbEluYykKKyAgICAgICAgICAgIGZpbGxEID0gLWZpbGxEOworCisgICAgICAgIGlmIChmaWxsRCA8IDApIHsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoMCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdFRvSGVpZ2h0KGZpbGxEKTsKKworICAgICAgICBpZiAoZmlsbEQgPj0gZlBpeEhlaWdodCkgeworICAgICAgICAgICAgYm9vbGVhbiBiaWFzID0gZkxUQ3VyVGV4dExlbj09MD8gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQgOiBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KGZMVEN1clRleHRMZW4sIGJpYXMpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lID0gZmluZExpbmVBdChmaWxsRCk7IC8vIGFsd2F5cyBhIHZhbGlkIGxpbmUKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKTsKKworICAgICAgICBpbnQgbGluZVgsIGxpbmVZOyAgLy8gdXBwZXItbGVmdCBjb3JuZXIgb2YgbGluZQorICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54OworICAgICAgICAgICAgbGluZVkgPSBmRmlsbEluYz8gb3JpZ2luLnkgKyBnU3RhcnQgOiBvcmlnaW4ueSAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2xpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBsaW5lWCA9IGZGaWxsSW5jPyBvcmlnaW4ueCArIGdTdGFydCA6IG9yaWdpbi54IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVEaW1Ub09mZnNldChyZXN1bHQsIGxpbmUsIHB4IC0gbGluZVgsIHB5IC0gbGluZVksIGFuY2hvciwgaW5maW5pdGVNb2RlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZkxUQ3VyVGV4dExlbiA+IDAgJiYKKyAgICAgICAgICAgICAgICBpc1BhcmFncmFwaFNlcGFyYXRvcihmVGV4dC5hdChmTFRDdXJUZXh0TGVuLTEpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2Zmc2V0IGRlc2lnbmF0ZXMgYSBwb2ludCBvbiB0aGUgcHNldWRvbGluZSBmb2xsb3dpbmcgYSBwYXJhZ3JhcGgKKyAgICAgKiBzZXBhcmF0b3IgYXQgdGhlIGVuZCBvZiB0ZXh0LiAgVGhpcyBpcyB0cnVlIGlmIHRoZSBvZmZzZXQgaXMgdGhlIGVuZCBvZiB0ZXh0CisgICAgICogYW5kIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBpcyBhIHBhcmFncmFwaCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGFmdGVyTGFzdFBhcmFncmFwaChUZXh0T2Zmc2V0IG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBvZmZzZXQuZk9mZnNldCA9PSBmTFRDdXJUZXh0TGVuICYmCisgICAgICAgICAgICBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHaXZlbiBhbiBvZmZzZXQsIHJldHVybiB0aGUgUmVjdGFuZ2xlIGJvdW5kaW5nIHRoZSBjYXJldCBhdCB0aGUgb2Zmc2V0LgorICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorICAgICogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgKiBAcmV0dXJuIGEgUmVjdGFuZ2xlIGJvdW5kaW5nIHRoZSBjYXJldC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCwgUG9pbnQgb3JpZ2luKSB7CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBuZXcgUmVjdGFuZ2xlKCk7CisgICAgICAgIGdldENhcmV0UmVjdChyLCBvZmZzZXQsIG9yaWdpbik7CisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZ2V0Q2FyZXRSZWN0KFJlY3RhbmdsZSByLCBUZXh0T2Zmc2V0IG9mZnNldCwgUG9pbnQgb3JpZ2luKSB7CisgICAgICAgIAorICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBmb3JtYXRUb09mZnNldChvZmZzZXQpOworCisgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob2Zmc2V0KSkgeworICAgICAgICAgICAgaW50IHBzZXVkb0xpbmVIZWlnaHQgPSBsYXN0Q2hhckhlaWdodCgpOworICAgICAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgICAgIGludCBsaW5lWSA9IGZGaWxsSW5jID8gb3JpZ2luLnkgKyBmUGl4SGVpZ2h0IDogb3JpZ2luLnkgLSBmUGl4SGVpZ2h0IC0gcHNldWRvTGluZUhlaWdodDsKKyAgICAgICAgICAgICAgICByLnNldEJvdW5kcyhvcmlnaW4ueCwgbGluZVksIDAsIHBzZXVkb0xpbmVIZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVYID0gZkZpbGxJbmM/IG9yaWdpbi54ICsgZlBpeEhlaWdodCA6IG9yaWdpbi54IC0gZlBpeEhlaWdodCAtIHBzZXVkb0xpbmVIZWlnaHQ7CisgICAgICAgICAgICAgICAgci5zZXRCb3VuZHMobGluZVgsIG9yaWdpbi55LCBwc2V1ZG9MaW5lSGVpZ2h0LCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvZmZzZXQpOworCisgICAgICAgIGludCBnU3RhcnQgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZSk7CisKKyAgICAgICAgaW50IGxpbmVYLCBsaW5lWTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54OworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2xpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGZMaW5lVGFibGVbbGluZV0uY2FyZXRCb3VuZHMoZlRleHQsIGZMVEN1clRleHRMZW4sIGZMaW5lRGltLCBvZmZzZXQuZk9mZnNldCwgbGluZVgsIGxpbmVZKTsKKworICAgICAgICByLnNldEJvdW5kcyhib3VuZHMpOworICAgIH0KKworICAgIC8qKgorICAgICogRHJhdyB0aGUgY2FyZXQocykgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgaW50byB0aGUgZ2l2ZW4gR3JhcGhpY3MuCisgICAgKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3MgdG8gZHJhdyBpbnRvCisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgaW4gdGhlIHRleHQgZm9yIHdoaWNoIHRoZSBjYXJldCBpcyBkcmF3bgorICAgICogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgKiBAcGFyYW0gc3Ryb25nQ2FyZXRDb2xvciB0aGUgY29sb3Igb2YgdGhlIHN0cm9uZyBjYXJldAorICAgICogQHBhcmFtIHdlYWtDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgd2VhayBjYXJldCAoaWYgYW55KQorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRyYXdDYXJldChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpIHsKKworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBHcmFwaGljczJEIGcyZCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldEdyYXBoaWNzMkQoZyk7CisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgTGF5b3V0SW5mbyBsaW5lOworICAgICAgICBpbnQgZ1N0YXJ0OworICAgICAgICAKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICBnU3RhcnQgPSBmUGl4SGVpZ2h0OworICAgICAgICAgICAgbGluZSA9IHBzZXVkb0xpbmVJbmZvKG51bGwsIG9mZnNldC5mT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBsaW5lSW5kZXggPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgICAgICBnU3RhcnQgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZUluZGV4KTsKKyAgICAgICAgICAgIGxpbmUgPSBmTGluZVRhYmxlW2xpbmVJbmRleF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7CisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueDsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55ICsgZ1N0YXJ0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgLSAoZ1N0YXJ0ICsgbGluZS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55OworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCAtIChnU3RhcnQgKyBsaW5lLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxpbmUucmVuZGVyQ2FyZXQoZlRleHQsIGZMVEN1clRleHRMZW4sIGcyZCwgZkxpbmVEaW0sIGxpbmVYLCBsaW5lWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LmZPZmZzZXQsIHN0cm9uZ0NhcmV0Q29sb3IsIHdlYWtDYXJldENvbG9yKTsKKyAgICB9CisKKy8qKgorKiBHaXZlbiB0d28gb2Zmc2V0cyBpbiB0aGUgdGV4dCwgcmV0dXJuIGEgcmVjdGFuZ2xlIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzLgorKiBPZmZzZXRzIGRvIG5vdCBuZWVkIHRvIGJlIG9yZGVyZWQgb3Igbm9ubmVnYXRpdmUuCisqIEBwYXJhbSBvZmZzZXQxLG9mZnNldDIgb2Zmc2V0cyBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJucyBhIDx0dD5SZWN0YW5nbGU8L3R0PiwgcmVsYXRpdmUgdG8gPHR0Pm9yaWdpbjwvdHQ+LCB3aGljaCBlbmNsb3NlcyB0aGUgbGluZXMgY29udGFpbmluZyB0aGUgb2Zmc2V0cworKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFJlY3RhbmdsZSBnZXRCb3VuZGluZ1JlY3QoVGV4dE9mZnNldCBvZmZzZXQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCkgeworCisgICAgICAgIFJlY3RhbmdsZSByID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICBnZXRCb3VuZGluZ1JlY3Qociwgb2Zmc2V0MSwgb2Zmc2V0Miwgb3JpZ2luLCB0aWdodCk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworLyoKKyAgICBUcmFuc2Zvcm0gciBmcm9tICJ0ZXh0IiBjb29yZGluYXRlcyB0byAic2NyZWVuIiBjb29yZGluYXRlcy4KKyovCisKKyAgICBwcml2YXRlIHZvaWQgaW50bFJlY3QoUG9pbnQgb3JpZ2luLCBSZWN0YW5nbGUgcikgeworCisgICAgICAgIGludCBsaW5lT3JpZywgZmlsbE9yaWc7CisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgbGluZU9yaWcgPSBvcmlnaW4ueDsKKyAgICAgICAgICAgIGZpbGxPcmlnID0gb3JpZ2luLnk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsaW5lT3JpZyA9IG9yaWdpbi55OworICAgICAgICAgICAgZmlsbE9yaWcgPSBvcmlnaW4ueDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmTGluZUluYykKKyAgICAgICAgICAgIHIueCArPSBsaW5lT3JpZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgci54ID0gbGluZU9yaWcgLSAoci54ICsgci53aWR0aCk7CisKKyAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgci55ICs9IGZpbGxPcmlnOworICAgICAgICBlbHNlCisgICAgICAgICAgICByLnkgPSBmaWxsT3JpZyAtIChyLnkgKyByLmhlaWdodCk7CisKKworICAgICAgICBpZiAoIWZITGluZSkgeworICAgICAgICAgICAgaW50IHQgPSByLng7CisgICAgICAgICAgICByLnggPSByLnk7CisgICAgICAgICAgICByLnkgPSB0OworICAgICAgICAgICAgdCA9IHIud2lkdGg7CisgICAgICAgICAgICByLndpZHRoID0gci5oZWlnaHQ7CisgICAgICAgICAgICByLmhlaWdodCA9IHQ7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBnZXRCb3VuZGluZ1JlY3QoUmVjdGFuZ2xlIHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChvZmZzZXQxLmVxdWFscyhvZmZzZXQyKSkgeworICAgICAgICAgICAgZ2V0Q2FyZXRSZWN0KHIsIG9mZnNldDEsIG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9mZnNldDEuZ3JlYXRlclRoYW4ob2Zmc2V0MikpIHsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgdDsgdCA9IG9mZnNldDE7IG9mZnNldDEgPSBvZmZzZXQyOyBvZmZzZXQyID0gdDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldDIpOworCisgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvZmZzZXQxKTsKKyAgICAgICAgci55ID0gbGluZUdyYXBoaWNTdGFydEludGVybmFsKGxpbmUpOworICAgICAgICAKKyAgICAgICAgaW50IGdMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBzYW1lTGluZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoYWZ0ZXJMYXN0UGFyYWdyYXBoKG9mZnNldDIpKQorICAgICAgICAgICAgZ0xpbWl0ID0gZlBpeEhlaWdodCArIGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGxpbmUyID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvZmZzZXQyKTsKKyAgICAgICAgICAgIGdMaW1pdCA9IGxpbmVHcmFwaGljTGltaXRJbnRlcm5hbChsaW5lMik7CisgICAgICAgICAgICBzYW1lTGluZSA9IChsaW5lID09IGxpbmUyKTsKKyAgICAgICAgfQorCisgICAgICAgIHIuaGVpZ2h0ID0gZ0xpbWl0IC0gci55OworCisgICAgICAgIGlmIChzYW1lTGluZSAmJiB0aWdodD09VElHSFQpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBydCA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgICAgIGdldENhcmV0UmVjdChydCwgb2Zmc2V0MSwgb3JpZ2luKTsKKyAgICAgICAgICAgIHIuc2V0Qm91bmRzKHJ0KTsKKyAgICAgICAgICAgIGlmICghb2Zmc2V0MS5lcXVhbHMob2Zmc2V0MikpIHsKKyAgICAgICAgICAgICAgICBnZXRDYXJldFJlY3QocnQsIG9mZnNldDIsIG9yaWdpbik7CisgICAgICAgICAgICAgICAgci5hZGQocnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgci54ID0gZk1pblg7CisgICAgICAgICAgICByLndpZHRoID0gZk1heFggLSBmTWluWDsKKyAgICAgICAgICAgIGludGxSZWN0KG9yaWdpbiwgcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50KCJnYnI6ICIgKyByLnggKyAiLCAiICsgci55ICsgIiwgIiArIHIud2lkdGggKyAiLCAiICsgci5oZWlnaHQpOworCisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiIC0tPiAiICsgci54ICsgIiwgIiArIHIueSArICIsICIgKyByLndpZHRoICsgIiwgIiArIHIuaGVpZ2h0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbXB1dGUgdGhlIG9mZnNldCByZXN1bHRpbmcgZnJvbSBtb3ZpbmcgZnJvbSBhIHByZXZpb3VzIG9mZnNldCBpbiBkaXJlY3Rpb24gZGlyLgorICAgICogRm9yIGFycm93IGtleXMuCisgICAgKiBAcGFyYW0gcmVzdWx0IHRoZSBvZmZzZXQgdG8gbW9kaWZ5IGFuZCByZXR1cm4uICBtYXkgYmUgbnVsbCwgaWYgc28gYSBuZXcgb2Zmc2V0IGlzIGFsbG9jYXRlZCwgbW9kaWZpZWQsIGFuZCByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBwcmV2aW91c09mZnNldCB0aGUgaW5zZXJ0aW9uIG9mZnNldCBwcmlvciB0byB0aGUgYXJyb3cga2V5IHByZXNzLgorICAgICogQHBhcmFtIGRpcmVjdGlvbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisgICAgKiBAcmV0dXJucyBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiBhbmQgcHJldmlvdXMgb2Zmc2V0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBUZXh0T2Zmc2V0IGZpbmRJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIFRleHRPZmZzZXQgcHJldk9mZnNldCwgc2hvcnQgZGlyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbmROZXdJbnNlcnRpb25PZmZzZXQocmVzdWx0LCBwcmV2T2Zmc2V0LCBwcmV2T2Zmc2V0LCBkaXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zZm9ybSBrZXkgZGlyZWN0aW9uOiAgYWZ0ZXIgdGhpcyBzdGVwLCAibGVmdCIgbWVhbnMgcHJldmlvdXMgZ2x5cGgsICJyaWdodCIgbWVhbnMgbmV4dCBnbHlwaCwKKyAgICAgKiJ1cCIgbWVhbnMgcHJldmlvdXMgbGluZSwgImRvd24iIG1lYW5zIG5leHQgbGluZQorICAgICAqLworICAgIHByaXZhdGUgc2hvcnQgcmVtYXBBcnJvd0tleShzaG9ydCBkaXIpIHsKKworICAgICAgICBpZiAoIWZMaW5lSW5jKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IGVMZWZ0KQorICAgICAgICAgICAgICAgIGRpciA9IGVSaWdodDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlUmlnaHQpCisgICAgICAgICAgICAgICAgZGlyID0gZUxlZnQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZGaWxsSW5jKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IGVVcCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlRG93bjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlRG93bikKKyAgICAgICAgICAgICAgICBkaXIgPSBlVXA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZITGluZSkgeworICAgICAgICAgICAgaWYgKGRpciA9PSBlTGVmdCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlVXA7CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZVJpZ2h0KQorICAgICAgICAgICAgICAgIGRpciA9IGVEb3duOworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVVcCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlTGVmdDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlRG93bikKKyAgICAgICAgICAgICAgICBkaXIgPSBlUmlnaHQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGlyOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0LCBzdGFydGluZyBhdCBhbiBvcmlnaW5hbCBvZmZzZXQsIGluIGRpcmVjdGlvbiBkaXIuCisgICAgKiBGb3IgYXJyb3cga2V5cy4gIFVzZSB0aGlzIGZvciAic21hcnQiIHVwL2Rvd24ga2V5cy4KKyAgICAqIEBwYXJhbSByZXN1bHQgdGhlIG9mZnNldCB0byBtb2RpZnkgYW5kIHJldHVybi4gIE1heSBiZSBudWxsLCBpZiBzbyBhIG5ldyBvZmZzZXQgaXMgYWxsb2NhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorICAgICogQHBhcmFtIG9yaWdPZmZzZXQgdGhlIG9mZnNldCBhdCB3aGljaCBhbiB1cC1kb3duIGFycm93IGtleSBzZXF1ZW5jZSBiZWdhbi4KKyAgICAqIEBwYXJhbSBwcmV2T2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MKKyAgICAqIEBwYXJhbSBkaXIgdGhlIGRpcmVjdGlvbiBvZiB0aGUgYXJyb3cga2V5IChlVXAsIGVEb3duLCBlTGVmdCwgb3IgZVJpZ2h0KQorICAgICogQHJldHVybnMgbmV3IG9mZnNldCBiYXNlZCBvbiBkaXJlY3Rpb24sIG9yaWdpbmFsIG9mZnNldCwgYW5kIHByZXZpb3VzIG9mZnNldC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgVGV4dE9mZnNldCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LCBUZXh0T2Zmc2V0IG9yaWdPZmZzZXQsIFRleHRPZmZzZXQgcHJldk9mZnNldCwgc2hvcnQgZGlyKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKQorICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRleHRPZmZzZXQoKTsKKworICAgICAgICBkaXIgPSByZW1hcEFycm93S2V5KGRpcik7CisKKyAgICAgICAgLy8gYXNzdW1lIHRoYXQgdGV4dCBhdCBvcmlnT2Zmc2V0IGFuZCBwcmV2T2Zmc2V0IGhhcyBhbHJlYWR5IGJlZW4gZm9ybWF0dGVkCisKKyAgICAgICAgaWYgKGRpciA9PSBlTGVmdCB8fCBkaXIgPT0gZVJpZ2h0KSB7CisgICAgICAgICAgICBmb3JtYXRUb09mZnNldChwcmV2T2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhwcmV2T2Zmc2V0KTsKKworICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gZkxpbmVUYWJsZVtsaW5lXS5nZXROZXh0T2Zmc2V0KGZMVEN1clRleHRMZW4sIHByZXZPZmZzZXQuZk9mZnNldCwgZGlyKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZk9mZnNldCA8IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuZk9mZnNldCA+PSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldE9mZnNldChmTFRDdXJUZXh0TGVuLCBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGRpc3RPbkxpbmU7CisKKyAgICAgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob3JpZ09mZnNldCkpCisgICAgICAgICAgICAgICAgZGlzdE9uTGluZSA9IDA7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZSA9IGdldFZhbGlkTGluZUNvbnRhaW5pbmcob3JpZ09mZnNldCk7CisKKyAgICAgICAgICAgICAgICBkaXN0T25MaW5lID0gZkxpbmVUYWJsZVtsaW5lXS5zdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24oZkxUQ3VyVGV4dExlbiwgZkxpbmVEaW0sIG9yaWdPZmZzZXQuZk9mZnNldCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGdldCBwcmV2T2Zmc2V0J3MgbGluZQorICAgICAgICAgICAgaW50IGxpbmU7CisgICAgICAgICAgICBpZiAoYWZ0ZXJMYXN0UGFyYWdyYXBoKHByZXZPZmZzZXQpKQorICAgICAgICAgICAgICAgIGxpbmUgPSBsYXN0TGluZSgpICsgMTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxpbmUgPSBnZXRMaW5lQ29udGFpbmluZyhwcmV2T2Zmc2V0KTsKKworICAgICAgICAgICAgICAgIGlmIChkaXIgPT0gZURvd24gJiYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUgfHwgbGluZSA9PSBsYXN0TGluZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGxhc3RMaW5lQ2hhclN0b3AoKSA8IGZUZXh0Lmxlbmd0aCgpKSkgeworICAgICAgICAgICAgICAgICAgICBzaGlmdFRhYmxlVG8obGFzdExpbmUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdFRleHQobGFzdExpbmVDaGFyU3RvcCgpLCAxLCBJbnRlZ2VyLk1BWF9WQUxVRSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBnZXRMaW5lQ29udGFpbmluZyhwcmV2T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gMDsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChsaW5lID09IGtBZnRlckxhc3RMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGFzdExpbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGRpciA9PSBlVXApCisgICAgICAgICAgICAgICAgbGluZS0tOworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGxpbmUrKzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJEZWJ1ZzogSWxsZWdhbCBkaXJlY3Rpb24gcGFyYW1ldGVyIGluIGZpbmROZXdJbnNlcnRpb25PZmZzZXQiKTsKKworICAgICAgICAgICAgaWYgKGxpbmUgPCAwKSB7CisgICAgICAgICAgICAgICAgLy9yZXN1bHQuc2V0T2Zmc2V0KDAsIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXNzaWduKHByZXZPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobGluZSA+IGxhc3RMaW5lKCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KGZMVEN1clRleHRMZW4sIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZkxpbmVUYWJsZVtsaW5lXSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gKGRpciA9PSBlVXApPyBmTFRQb3NFbmQgOiBmTFROZWdTdGFydDsKKworICAgICAgICAgICAgICAgIC8vIGFuY2hvciBpcyBudWxsIHNpbmNlIHdlIG5ldmVyIHdhbnQgYSBwb3NpdGlvbiBhZnRlciBuZXdsaW5lLiAgSWYgd2UgdXNlZCB0aGUgcmVhbCBhbmNob3IsCisgICAgICAgICAgICAgICAgLy8gd2UgbWlnaHQgbm90IGlnbm9yZSB0aGUgbmV3bGluZSBldmVuIHRob3VnaCBpbmZpbml0ZU1vZGUgaXMgdHJ1ZS4KKyAgICAgICAgICAgICAgICBsaW5lRGltVG9PZmZzZXQocmVzdWx0LCBsaW5lLCBkaXN0T25MaW5lLCAwLCBudWxsLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiZm5pbyBwcmV2OiAiICsgcHJldk9mZnNldCArICIsIG5ldzogIiArIHJlc3VsdCk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGZCZ0Zvcm1hdEFsbG93ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIGVuYWJsZUJHRm9ybWF0KCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmQmdGb3JtYXRBbGxvd2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIG5vdGlmeSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IGxpbmVJbmRleFRvTnVtYmVyKGludCBsaW5lSW5kZXgpIHsKKworICAgICAgICBpZiAobGluZUluZGV4IDw9IGZMVFBvc0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lSW5kZXggLSAoZkxUTmVnU3RhcnQtZkxUUG9zRW5kLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbGluZU51bWJlclRvSW5kZXgoaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICBpZiAobGluZU51bWJlciA8PSBmTFRQb3NFbmQpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lTnVtYmVyOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXIgKyAoZkxUTmVnU3RhcnQtZkxUUG9zRW5kLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZvcm1hdFRvTGluZU51bWJlcihpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIHdoaWxlIChsYXN0TGluZUNoYXJTdG9wKCkgPCBmTFRDdXJUZXh0TGVuICYmCisgICAgICAgICAgICAgICAgbGluZU51bWJlciA+PSBsaW5lSW5kZXhUb051bWJlcihmTFRTaXplKSkgeworICAgICAgICAgICAgLy8gY291bGQgYmUgc21hcnRlciBhbmQgY2hvb3NlIGxhcmdlciBhbW91bnRzIGZvcgorICAgICAgICAgICAgLy8gbGFyZ2VyIGxpbmVzLCBidXQgcHJvYmFibHkgbm90IHdvcnRoIHRoZSBlZmZvcnQKKyAgICAgICAgICAgIGZvcm1hdFRvSGVpZ2h0KGZQaXhIZWlnaHQgKyBrUGl4SW5jcmVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gU1RSSUNUID0gdHJ1ZTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIExFTklFTlQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEluc3VyZSB0aGF0IGF0IGxlYXN0IGxpbmVOdW1iZXIgbGluZXMgZXhpc3QsIGRvaW5nCisgICAgICogZXh0cmEgZm9ybWF0dGluZyBpZiBuZWNlc3NhcnkuCisgICAgICogVGhyb3dzIGV4Y2VwdGlvbiBpZiBsaW5lTnVtYmVyIGlzIG5vdCB2YWxpZC4KKyAgICAgKiBAcGFyYW0gc3RyaWN0IGlmIFNUUklDVCwgb25seSBsaW5lcyBbMC4uLm1heExpbmVOdW1iZXIoKV0KKyAgICAgKiAgICAgICAgYXJlIHBlcm1pdHRlZC4gIElmIExFTklFTlQsIG1heExpbmVOdW1iZXIoKSsxIGlzCisgICAgICogICAgICAgIHRoZSBncmVhdGVzdCB2YWxpZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGVMaW5lTnVtYmVyKGludCBsaW5lTnVtYmVyLCBib29sZWFuIHN0cmljdCkgeworCisgICAgICAgIGZvcm1hdFRvTGluZU51bWJlcihsaW5lTnVtYmVyKTsKKworICAgICAgICBpbnQgbWF4TnVtYmVyID0gbGluZUluZGV4VG9OdW1iZXIoZkxUU2l6ZSk7CisgICAgICAgIGlmIChzdHJpY3QgPT0gU1RSSUNUKSB7CisgICAgICAgICAgICBtYXhOdW1iZXIgLT0gMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW5lTnVtYmVyID4gbWF4TnVtYmVyKzEgfHwKKyAgICAgICAgICAgICAgICAobGluZU51bWJlciA9PSBtYXhOdW1iZXIrMSAmJiAhZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBsaW5lIG51bWJlcjogIiArIGxpbmVOdW1iZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgZ2V0TGluZUNvdW50KCkgeworCisgICAgICAgIC8vIGZvcm1hdCBhbGwgdGV4dDoKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoSW50ZWdlci5NQVhfVkFMVUUpOworCisgICAgICAgIGludCBsaW5lQ291bnQgPSBsaW5lSW5kZXhUb051bWJlcihmTFRTaXplKTsKKworICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICBsaW5lQ291bnQgKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsaW5lQ291bnQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVDb250YWluaW5nKGludCBjaGFySW5kZXgpIHsKKyAgICAgICAgCisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KGNoYXJJbmRleCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBwbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgaWYgKGNoYXJJbmRleCA9PSBmTFRDdXJUZXh0TGVuICYmIGNoYXJJbmRleCA+IDApIHsKKyAgICAgICAgICAgIHBsYWNlbWVudCA9IGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKT8gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsaW5lQ29udGFpbmluZyhjaGFySW5kZXgsIHBsYWNlbWVudCk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICBmb3JtYXRUb09mZnNldChvZmZzZXQpOworCisgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob2Zmc2V0KSkgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGluZUNvbnRhaW5pbmcob2Zmc2V0LmZPZmZzZXQsIG9mZnNldC5mUGxhY2VtZW50KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgbGluZUNvbnRhaW5pbmcoaW50IG9mZiwgYm9vbGVhbiBwbGFjZW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIGludCBsaW5lID0gb2ZmPT0wPyAwIDogZ2V0TGluZUNvbnRhaW5pbmcob2ZmLCBwbGFjZW1lbnQpOworICAgICAgICAKKyAgICAgICAgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpIHsKKyAgICAgICAgICAgIGxpbmUgPSBmTFRTaXplOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsaW5lQ29udGFpbmluZyBnb3QgaW52YWxpZCByZXN1bHQgZnJvbSBnZXRMaW5lQ29udGFpbmluZygpLiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVJbmRleFRvTnVtYmVyKGxpbmUpOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVSYW5nZUxvdyhpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIHZhbGlkYXRlTGluZU51bWJlcihsaW5lTnVtYmVyLCBTVFJJQ1QpOworICAgICAgICBpbnQgaW5kZXggPSBsaW5lTnVtYmVyVG9JbmRleChsaW5lTnVtYmVyKTsKKworICAgICAgICBpZiAoaW5kZXggPT0gZkxUU2l6ZSkgeworICAgICAgICAgICAgaWYgKGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXN0TGluZUNoYXJTdG9wKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5kZXggPj0gZkxUU2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibGluZU51bWJlciBpcyBpbnZhbGlkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVDaGFyU3RhcnRJbnRlcm5hbChpbmRleCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIHZhbGlkYXRlTGluZU51bWJlcihsaW5lTnVtYmVyLCBTVFJJQ1QpOworICAgICAgICBpbnQgaW5kZXggPSBsaW5lTnVtYmVyVG9JbmRleChsaW5lTnVtYmVyKTsKKworICAgICAgICBpZiAoaW5kZXggPT0gZkxUU2l6ZSkgeworICAgICAgICAgICAgaWYgKGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXN0TGluZUNoYXJTdG9wKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5kZXggPj0gZkxUU2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibGluZU51bWJlciBpcyBpbnZhbGlkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVDaGFyTGltaXRJbnRlcm5hbChpbmRleCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiB0aGUgbGluZSBhdCB0aGUgZ2l2ZW4gZ3JhcGhpYyBoZWlnaHQuCisgICAgICogSWYgaGVpZ2h0IGlzIGdyZWF0ZXIgdGhhbiBmdWxsIGhlaWdodCwgcmV0dXJuIGxpbmUgY291bnQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUF0SGVpZ2h0KGludCBoZWlnaHQpIHsKKworICAgICAgICBpZiAoaGVpZ2h0ID49IGZQaXhIZWlnaHQpIHsKKworICAgICAgICAgICAgaW50IGxpbmUgPSBnZXRMaW5lQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChoZWlnaHQgPCBmRnVsbFBpeEhlaWdodCkgeworICAgICAgICAgICAgICAgIGxpbmUgLT0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsaW5lOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGhlaWdodCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lSW5kZXhUb051bWJlcihmaW5kTGluZUF0KGhlaWdodCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUdyYXBoaWNTdGFydChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIHZhbGlkYXRlTGluZU51bWJlcihsaW5lTnVtYmVyLCBMRU5JRU5UKTsKKworICAgICAgICBpbnQgaW5kZXggPSBsaW5lTnVtYmVyVG9JbmRleChsaW5lTnVtYmVyKTsKKworICAgICAgICBpZiAoaW5kZXggPCBmTFRTaXplKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUdyYXBoaWNTdGFydEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKzEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkZ1bGxQaXhIZWlnaHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZlBpeEhlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBsaW5lSXNMZWZ0VG9SaWdodChpbnQgbGluZU51bWJlcikgeworICAgICAgICAKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIAorICAgICAgICBpbnQgaW5kZXggPSBsaW5lTnVtYmVyVG9JbmRleChsaW5lTnVtYmVyKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpbmRleCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGluZVRhYmxlW2luZGV4XS5pc0xlZnRUb1JpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3QgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KGZMVEN1clRleHRMZW4pOworICAgICAgICAgICAgcmV0dXJuICFUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fUlRMLmVxdWFscyhzdC5nZXQoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIE51bWJlciBvZiBwaXhlbHMgYnkgd2hpY2ggdG8gYWR2YW5jZSBmb3JtYXR0aW5nIGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtQaXhJbmNyZW1lbnQgPSAxMDA7CisKKyAgICAvKioKKyAgICAqIFRpbWUgdG8gc2xlZXAgYmV0d2VlbiBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcgb3BlcmF0aW9ucy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrSW50ZXJ2YWwgPSAxMDA7CisKKyAgICAvKioKKyAgICAqIFBlcmZvcm0gcGVyaW9kaWMgYmFja2dyb3VuZCBmb3JtYXR0aW5nLgorICAgICovCisgICAgcHVibGljIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSghZkJnRm9ybWF0QWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvcm1hdFRvSGVpZ2h0KGZQaXhIZWlnaHQgKyBrUGl4SW5jcmVtZW50KTsKKworICAgICAgICAgICAgICAgIGlmIChsYXN0TGluZUNoYXJTdG9wKCkgPT0gZkxUQ3VyVGV4dExlbikgeworICAgICAgICAgICAgICAgICAgICBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKGtJbnRlcnZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFBhcmFncmFwaFJlbmRlcmVyIGdldFJlbmRlcmVyRm9yKEF0dHJpYnV0ZU1hcCBzKSB7CisgICAgCisgICAgICAgIC8vIE5vdGU6ICBldmVudHVhbGx5IHdlIGNvdWxkIGxldCBjbGllbnRzIHB1dCB0aGVpciBvd24gcmVuZGVyZXJzCisgICAgICAgIC8vIG9uIHRoZSB0ZXh0LgorICAgICAgICBCaWRpUGFyYWdyYXBoUmVuZGVyZXIgcmVuZGVyZXIgPSAoQmlkaVBhcmFncmFwaFJlbmRlcmVyKSBmUmVuZGVyZXJDYWNoZS5nZXQocyk7CisgICAgICAgIGlmIChyZW5kZXJlciA9PSBudWxsKSB7CisgICAgICAgICAgICByZW5kZXJlciA9IG5ldyBCaWRpUGFyYWdyYXBoUmVuZGVyZXIoZkRlZmF1bHRWYWx1ZXMuYWRkQXR0cmlidXRlcyhzKSwgZkRlZmF1bHRDaGFyTWV0cmljKTsKKyAgICAgICAgICAgIGZSZW5kZXJlckNhY2hlLnB1dChzLCByZW5kZXJlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQmlkaVBhcmFncmFwaFJlbmRlcmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDMwZjJlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQmlkaVBhcmFncmFwaFJlbmRlcmVyLmphdmEKQEAgLTAsMCArMSwxMTQ3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LlNoYXBlOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlRhYlN0b3A7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEQ29udmVyc2lvbjsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CisKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LkxpbmVCcmVha01lYXN1cmVyOworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dEhpdEluZm87CisKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybTsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLkdlbmVyYWxQYXRoOworaW1wb3J0IGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQ7CisvL0pESzEySU1QT1JUUyovCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5UZXh0TGF5b3V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuVGV4dEhpdEluZm87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuQWZmaW5lVHJhbnNmb3JtOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HZW5lcmFsUGF0aDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuUmVjdGFuZ2xlMkQ7CitKREsxMUlNUE9SVFMqLworCitmaW5hbCBjbGFzcyBCaWRpUGFyYWdyYXBoUmVuZGVyZXIgZXh0ZW5kcyBQYXJhZ3JhcGhSZW5kZXJlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgQmlkaVNlZ21lbnQgeworICAgICAgICBUZXh0TGF5b3V0IGZMYXlvdXQ7CisgICAgICAgIFJlY3RhbmdsZTJELkZsb2F0IGZCb3VuZHM7CisgICAgICAgIGludCBmRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIEJpZGlMYXlvdXRJbmZvIGV4dGVuZHMgTGF5b3V0SW5mbworICAgIHsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgZkNoYXJMZW5ndGg7ICAgICAgLy8gbnVtYmVyIG9mIGNoYXJhY3RlcnMgb24gbGluZSAod2FzIGZMZW5ndGgpCisgICAgICAgIGludCBmQXNjZW50OworICAgICAgICBpbnQgZkRlc2NlbnQ7CisgICAgICAgIGludCBmTGVhZGluZzsKKyAgICAgICAgaW50IGZWaXNpYmxlQWR2YW5jZTsgIC8vIGRpc3RhbmNlIGFsb25nIGxpbmUgZGlyZWN0aW9uIGllIHdpZHRoCisgICAgICAgIGludCBmVG90YWxBZHZhbmNlOyAgICAvLyBkaXN0YW5jZSBhbG9uZyBsaW5lIGRpcmVjdGlvbiBpbmNsdWRpbmcgdHJhaWxpbmcgd2hpdGVzcGFjZQorCisgICAgICAgIGludCBmTGVhZGluZ01hcmdpbjsgICAvLyBzY3JlZW4gZGlzdGFuY2UgZnJvbSBsZWFkaW5nIG1hcmdpbgorCisgICAgICAgIGJvb2xlYW4gZkxlZnRUb1JpZ2h0OyAvLyB0cnVlIGlmZiB0aGUgb3JpZW50YXRpb24gaXMgbGVmdC10by1yaWdodAorCisgICAgICAgIGZpbmFsIFZlY3RvciBmU2VnbWVudHMgPSBuZXcgVmVjdG9yKCk7IC8vIHNlZ21lbnRzIHRvIHJlbmRlciwgaW4gbG9naWNhbCBvcmRlcgorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q2hhckxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ2hhckxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QXNjZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIGZBc2NlbnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldERlc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkRlc2NlbnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldExlYWRpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gZkxlYWRpbmc7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFZpc2libGVBZHZhbmNlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZWaXNpYmxlQWR2YW5jZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VG90YWxBZHZhbmNlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZUb3RhbEFkdmFuY2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKSB7CisgICAgICAgICAgICByZXR1cm4gZkxlYWRpbmdNYXJnaW47CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0xlZnRUb1JpZ2h0KCkgeworICAgICAgICAgICAgcmV0dXJuIGZMZWZ0VG9SaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCkgeworICAgICAgICAgICAgcmV0dXJuIGZBc2NlbnQgKyBmRGVzY2VudCArIGZMZWFkaW5nOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiTGF5b3V0SW5mbyhjaGFyU3RhcnQ6ICIgKyBnZXRDaGFyU3RhcnQoMCkgKworICAgICAgICAgICAgICAgICIsIGZDaGFyTGVuZ3RoOiAiICsgZkNoYXJMZW5ndGggKworICAgICAgICAgICAgICAgICIsIGZBc2NlbnQ6ICIgKyBmQXNjZW50ICsKKyAgICAgICAgICAgICAgICAiLCBmRGVzY2VudDogIiArIGZEZXNjZW50ICsKKyAgICAgICAgICAgICAgICAiLCBmVmlzaWJsZUFkdmFuY2U6ICIgKyBmVmlzaWJsZUFkdmFuY2UgKworICAgICAgICAgICAgICAgICIsIGZUb3RhbEFkdmFuY2U6ICIgKyBmVG90YWxBZHZhbmNlICsKKyAgICAgICAgICAgICAgICAiLCBmTGVhZGluZ01hcmdpbjogIiArIGZMZWFkaW5nTWFyZ2luICsKKyAgICAgICAgICAgICAgICAiKSI7CisgICAgICAgIH0KKworICAgICAgICBCaWRpUGFyYWdyYXBoUmVuZGVyZXIgZlJlbmRlcmVyOworCisgICAgICAgIC8vIGp1c3QgZGVsZWdhdGUgdG8gcmVuZGVyZXIgZm9yIG5vdworCisgICAgICAgIHB1YmxpYyB2b2lkIHJlbmRlcldpdGhIaWdobGlnaHQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpZ2hsaWdodENvbG9yKSB7CisKKyAgICAgICAgICAgIGZSZW5kZXJlci5yZW5kZXJXaXRoSGlnaGxpZ2h0KHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlbmRlcihpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworICAgICAgICAgICAgZlJlbmRlcmVyLnJlbmRlcih0aGlzLCBsZW5ndGhCYXNpcywgZywgbGluZUJvdW5kLCB4LCB5KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlbmRlckNhcmV0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHdlYWtDYXJldENvbG9yKSB7CisgICAgICAgICAgICBmUmVuZGVyZXIucmVuZGVyQ2FyZXQodGhpcywgdGV4dCwgbGVuZ3RoQmFzaXMsIGcsIGxpbmVCb3VuZCwgeCwgeSwgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJvbmdDYXJldENvbG9yLCB3ZWFrQ2FyZXRDb2xvcik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVGV4dE9mZnNldCBwaXhlbFRvT2Zmc2V0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gZlJlbmRlcmVyLnBpeGVsVG9PZmZzZXQodGhpcywgbGVuZ3RoQmFzaXMsIHJlc3VsdCwgbGluZUJvdW5kLCB4LCB5KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBSZWN0YW5nbGUgY2FyZXRCb3VuZHMoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gZlJlbmRlcmVyLmNhcmV0Qm91bmRzKHRoaXMsIHRleHQsIGxlbmd0aEJhc2lzLCBsaW5lQm91bmQsIGNoYXJPZmZzZXQsIHgsIHkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IHN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0KSB7CisKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIuc3Ryb25nQ2FyZXRCYXNlbGluZVBvc2l0aW9uKHRoaXMsIGxlbmd0aEJhc2lzLCBsaW5lQm91bmQsIGNoYXJPZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXROZXh0T2Zmc2V0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIuZ2V0TmV4dE9mZnNldCh0aGlzLCBsZW5ndGhCYXNpcywgY2hhck9mZnNldCwgZGlyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTFVTSF9MRUFESU5HID0gVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HLmludFZhbHVlKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMVVNIX0NFTlRFUiA9IFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSLmludFZhbHVlKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMVVNIX1RSQUlMSU5HID0gVGV4dEF0dHJpYnV0ZS5GTFVTSF9UUkFJTElORy5pbnRWYWx1ZSgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMWV9KVVNUSUZJRUQgPSBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRC5pbnRWYWx1ZSgpOworCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgY2FjaGVTdHlsZSA9IG51bGw7CisKKyAgICBwcml2YXRlIGZsb2F0IGZMZWFkaW5nTWFyZ2luOworICAgIHByaXZhdGUgZmxvYXQgZlRyYWlsaW5nTWFyZ2luOworICAgIHByaXZhdGUgZmxvYXQgZkZpcnN0TGluZUluZGVudDsKKyAgICBwcml2YXRlIGZsb2F0IGZNaW5MaW5lU3BhY2luZzsKKyAgICBwcml2YXRlIGZsb2F0IGZFeHRyYUxpbmVTcGFjaW5nOworICAgIAorICAgIHByaXZhdGUgaW50IGZGbHVzaCA9IC0xOworICAgIHByaXZhdGUgTVRhYlJ1bGVyIGZUYWJSdWxlcjsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gZkx0ckRlZmF1bHQ7CisgICAgcHJpdmF0ZSBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljIGZEZWZhdWx0Q2hhck1ldHJpYzsKKyAgICAKKyAgICBCaWRpUGFyYWdyYXBoUmVuZGVyZXIoQXR0cmlidXRlTWFwIHBTdHlsZSwgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBkZWZhdWx0Q2hhck1ldHJpYykgeworCisgICAgICAgIGZEZWZhdWx0Q2hhck1ldHJpYyA9IGRlZmF1bHRDaGFyTWV0cmljOworICAgICAgICBpbml0UmVuZGVyZXIocFN0eWxlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZsb2F0IGdldEZsb2F0VmFsdWUoT2JqZWN0IGtleSwgQXR0cmlidXRlTWFwIHN0eWxlKSB7CisgICAgICAgIHJldHVybiAoKEZsb2F0KXN0eWxlLmdldChrZXkpKS5mbG9hdFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGdldEludFZhbHVlKE9iamVjdCBrZXksIEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXN0eWxlLmdldChrZXkpKS5pbnRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOT1RFOiAgaXQgaXMgaWxsZWdhbCB0byBpbml0aWFsaXplIGEgU3RhbmRhcmRQYXJhZ3JhcGhSZW5kZXJlciBmb3IgYW55IHN0eWxlCisgICAgICogb3RoZXIgdGhhbiB0aGUgb25lIGl0IHdhcyBjcmVhdGVkIHdpdGguCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdFJlbmRlcmVyKEF0dHJpYnV0ZU1hcCBwU3R5bGUpIHsKKworICAgICAgICBpZiAoY2FjaGVTdHlsZSA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIGZMZWFkaW5nTWFyZ2luID0gZ2V0RmxvYXRWYWx1ZShUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLCBwU3R5bGUpOworICAgICAgICAgICAgZlRyYWlsaW5nTWFyZ2luID0gZ2V0RmxvYXRWYWx1ZShUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwgcFN0eWxlKTsKKyAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsIHBTdHlsZSk7CisgICAgICAgICAgICBmTWluTGluZVNwYWNpbmcgPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywgcFN0eWxlKTsKKyAgICAgICAgICAgIGZFeHRyYUxpbmVTcGFjaW5nID0gZ2V0RmxvYXRWYWx1ZShUZXh0QXR0cmlidXRlLkVYVFJBX0xJTkVfU1BBQ0lORywgcFN0eWxlKTsKKworICAgICAgICAgICAgZkZsdXNoID0gZ2V0SW50VmFsdWUoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBwU3R5bGUpOworCisgICAgICAgICAgICBmVGFiUnVsZXIgPSAoTVRhYlJ1bGVyKSBwU3R5bGUuZ2V0KFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IHJ1bkRpciA9IHBTdHlsZS5nZXQoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OKTsKKyAgICAgICAgICAgIGZMdHJEZWZhdWx0ID0gIVRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEwuZXF1YWxzKHJ1bkRpcik7CisKKyAgICAgICAgICAgIGNhY2hlU3R5bGUgPSBwU3R5bGU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocFN0eWxlICE9IGNhY2hlU3R5bGUpIHsKKyAgICAgICAgICAgIGlmICghcFN0eWxlLmVxdWFscyhjYWNoZVN0eWxlKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0ZW1wdCB0byBzaGFyZSBCaWRpUGFyYWdyYXBoUmVuZGVyZXIgYmV0d2VlbiBzdHlsZXMhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWNoZVN0eWxlID0gcFN0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1RhYihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA9PSAnXHQnOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGwgaW4gaW5mbyB3aXRoIHRoZSBuZXh0IGxpbmUuCisgICAgICogQHBhcmFtIG1lYXN1cmVyIHRoZSBMaW5lQnJlYWtNZWFzdXJlciBmb3IgdGhpcyBwYXJhZ3JhcGguCisgICAgICogIEN1cnJlbnQgcG9zaXRpb24gc2hvdWxkIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb24gdGhlIGxpbmUuCisgICAgICogIElmIG51bGwsIGEgMC1sZW5ndGggbGluZSBpcyBnZW5lcmF0ZWQuICBJZiBtZWFzdXJlciBpcyBudWxsCisgICAgICogIHRoZW4gcGFyYWdyYXBoU3RhcnQgYW5kIHBhcmFncmFwaExpbWl0IHNob3VsZCBiZSBlcXVhbC4KKyAgICAgKi8KKyAgICAvLyBVc3VhbGx5IHRvdGFsRm9ybWF0V2lkdGggYW5kIGxpbmVCb3VuZCB3aWxsIGJlIHRoZSBzYW1lLgorICAgIC8vIHRvdGFsRm9ybWF0V2lkdGggaXMgdXNlZCBmb3Igd3JhcHBpbmcsIGJ1dCBsaW5lQm91bmQgaXMKKyAgICAvLyBmb3IgZmx1c2hpbmcuICBUaGVzZSBtYXkgYmUgZGlmZmVyZW50IGZvciB1bndyYXBwZWQgdGV4dCwKKyAgICAvLyBmb3IgZXhhbXBsZS4KKyAgICBwdWJsaWMgTGF5b3V0SW5mbyBsYXlvdXQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRJbmZvIGxheW91dFRvUmV1c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb250UmVuZGVyQ29udGV4dCBmcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdG90YWxGb3JtYXRXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCkgeworCisgICAgICAgIGlmICgobWVhc3VyZXI9PW51bGwpICE9IChwYXJhZ3JhcGhTdGFydD09cGFyYWdyYXBoTGltaXQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAibWVhc3VyZXIsIHBhcmFncmFwaFN0YXJ0LCBwYXJhZ3JhcGhMaW1pdCBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKyAgICAgICAgQmlkaUxheW91dEluZm8gbGluZSA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxpbmUgPSAoQmlkaUxheW91dEluZm8pIGxheW91dFRvUmV1c2U7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgIGxpbmUgPSBuZXcgQmlkaUxheW91dEluZm8oKTsKKyAgICAgICAgfQorCisgICAgICAgIGxpbmUuZlJlbmRlcmVyID0gdGhpczsKKworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IG1lYXN1cmVyPT1udWxsPyBwYXJhZ3JhcGhTdGFydCA6IG1lYXN1cmVyLmdldFBvc2l0aW9uKCk7CisgICAgICAgIGxpbmUuc2V0Q2hhclN0YXJ0KGxpbmVDaGFyU3RhcnQpOworCisgICAgICAgIGZpbmFsIGludCBsaW5lSW5kZW50ID0gKGxpbmVDaGFyU3RhcnQ9PXBhcmFncmFwaFN0YXJ0KT8gKGludCkgZkZpcnN0TGluZUluZGVudCA6IDA7CisKKyAgICAgICAgaW50IGZvcm1hdFdpZHRoID0gdG90YWxGb3JtYXRXaWR0aCAtIChpbnQpIChmTGVhZGluZ01hcmdpbiArIGZUcmFpbGluZ01hcmdpbik7CisgICAgICAgIGNvbXB1dGVMaW5lTWV0cmljcyh0ZXh0LCBsaW5lLCBtZWFzdXJlciwgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0LCBwYXJhZ3JhcGhMaW1pdCwgZm9ybWF0V2lkdGgsIGxpbmVJbmRlbnQpOworCisgICAgICAgIC8vIHBvc2l0aW9uIHRoZSBsaW5lIGFjY29yZGluZyB0byB0aGUgbGluZSBmbHVzaAorICAgICAgICBpZiAoZkZsdXNoID09IEZMVVNIX1RSQUlMSU5HIHx8IGZGbHVzaCA9PSBGTFVTSF9DRU5URVIpIHsKKyAgICAgICAgICAgIGludCBsaW5lQXJlYSA9IGxpbmVCb3VuZCAtIChpbnQpIChmTGVhZGluZ01hcmdpbiArIGZUcmFpbGluZ01hcmdpbik7CisgICAgICAgICAgICBpbnQgYWR2YW5jZURpZmZlcmVuY2UgPSBsaW5lQXJlYSAtIGxpbmUuZlZpc2libGVBZHZhbmNlOworCisgICAgICAgICAgICBpZiAoZkZsdXNoID09IEZMVVNIX1RSQUlMSU5HKSB7CisgICAgICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA9ICgoaW50KSAoZkxlYWRpbmdNYXJnaW4pKSArIGFkdmFuY2VEaWZmZXJlbmNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZkZsdXNoID09IEZMVVNIX0NFTlRFUikgeworICAgICAgICAgICAgICAgIGxpbmUuZkxlYWRpbmdNYXJnaW4gPSAoaW50KSAoZkxlYWRpbmdNYXJnaW4gKyBhZHZhbmNlRGlmZmVyZW5jZS8yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmUuZkxlYWRpbmdNYXJnaW4gPSAoaW50KSBmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsaW5lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGwgaW4gdGhlIGZvbGxvd2luZyBmaWVsZHMgaW4gbGluZToKKyAgICAgKiBmQ2hhckxlbmd0aCwgZkFzY2VudCwgZkRlc2NlbnQsIGZMZWFkaW5nLCBmVmlzaWJsZUFkdmFuY2UsCisgICAgICogZlRvdGFsQWR2YW5jZS4KKyAgICAgKiBVc2VzOiBsaW5lLmZMZWFkaW5nTWFyZ2luCisgICAgICogQHBhcmFtIGZvcm1hdFdpZHRoIHRoZSB3aWR0aCB0byBmaXQgdGhlIGxpbmUgaW50by4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcHV0ZUxpbmVNZXRyaWNzKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBwYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBmb3JtYXRXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBsaW5lSW5kZW50KSB7CisKKyAgICAgICAgaW50IHNlZ21lbnRDb3VudCA9IDA7CisgICAgICAgIC8qIHZhcmlhYmxlIG5vdCB1c2VkIGJvb2xlYW4gZmlyc3RMaW5lID0gbWVhc3VyZXI9PW51bGwgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlci5nZXRQb3NpdGlvbigpID09IHBhcmFncmFwaFN0YXJ0OyAqLworCisgICAgICAgIGlmIChtZWFzdXJlciAhPSBudWxsKSB7CisgICAgICAgICAgICBjb21wdXRlU2VnbWVudHModGV4dCwgbGluZSwgbWVhc3VyZXIsIHBhcmFncmFwaExpbWl0LCBmb3JtYXRXaWR0aCwgbGluZUluZGVudCk7CisKKyAgICAgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBzZWdtZW50cyBhbmQgYWNjdW11bGF0ZSBhc2NlbnQsIGRlc2NlbnQsCisgICAgICAgICAgICAvLyBsZWFkaW5nLCBjaGFyIGxlbmd0aAorICAgICAgICAgICAgZmxvYXQgYXNjZW50ID0gMDsKKyAgICAgICAgICAgIGZsb2F0IGRlc2NlbnQgPSAwOworICAgICAgICAgICAgZmxvYXQgZGVzY2VudFBsdXNMZWFkaW5nID0gMDsKKworICAgICAgICAgICAgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9ICgoQmlkaVNlZ21lbnQpbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpKS5mTGF5b3V0OworICAgICAgICAgICAgICAgIGFzY2VudCA9IE1hdGgubWF4KGFzY2VudCwgbGF5b3V0LmdldEFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzZWdEZXNjZW50ID0gbGF5b3V0LmdldERlc2NlbnQoKTsKKyAgICAgICAgICAgICAgICBkZXNjZW50ID0gTWF0aC5tYXgoZGVzY2VudCwgc2VnRGVzY2VudCk7CisgICAgICAgICAgICAgICAgZGVzY2VudFBsdXNMZWFkaW5nID0gTWF0aC5tYXgoZGVzY2VudFBsdXNMZWFkaW5nLCBzZWdEZXNjZW50K2xheW91dC5nZXRMZWFkaW5nKCkpOworICAgICAgICAgICAgICAgIGxpbmUuZkNoYXJMZW5ndGggKz0gbGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmUuZkFzY2VudCA9IChpbnQpIE1hdGguY2VpbChhc2NlbnQpOworICAgICAgICAgICAgbGluZS5mRGVzY2VudCA9IChpbnQpIE1hdGguY2VpbChkZXNjZW50KTsKKyAgICAgICAgICAgIGxpbmUuZkxlYWRpbmcgPSAoaW50KSBNYXRoLmNlaWwoZGVzY2VudFBsdXNMZWFkaW5nKSAtIGxpbmUuZkRlc2NlbnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsaW5lLmZMZWZ0VG9SaWdodCA9IGZMdHJEZWZhdWx0OworICAgICAgICAgICAgbGluZS5mU2VnbWVudHMucmVtb3ZlQWxsRWxlbWVudHMoKTsKKworICAgICAgICAgICAgbGluZS5mQ2hhckxlbmd0aCA9IDA7CisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljLk1ldHJpYyBjbSA9IGZEZWZhdWx0Q2hhck1ldHJpYy5nZXRNZXRyaWNGb3JTdHlsZShzdHlsZSk7CisgICAgICAgICAgICBsaW5lLmZBc2NlbnQgPSBjbS5nZXRBc2NlbnQoKTsKKyAgICAgICAgICAgIGxpbmUuZkRlc2NlbnQgPSBjbS5nZXREZXNjZW50KCk7CisgICAgICAgICAgICBsaW5lLmZMZWFkaW5nID0gY20uZ2V0TGVhZGluZygpOworCisgICAgICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSA9IGxpbmUuZlRvdGFsQWR2YW5jZSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkV4dHJhTGluZVNwYWNpbmcgIT0gMCkgeworICAgICAgICAgICAgbGluZS5mQXNjZW50ICs9IChpbnQpIE1hdGguY2VpbChmRXh0cmFMaW5lU3BhY2luZyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZk1pbkxpbmVTcGFjaW5nICE9IDApeworICAgICAgICAgICAgaW50IGhlaWdodCA9IGxpbmUuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoaGVpZ2h0IDwgZk1pbkxpbmVTcGFjaW5nKSB7CisgICAgICAgICAgICAgICAgbGluZS5mQXNjZW50ICs9IE1hdGguY2VpbChmTWluTGluZVNwYWNpbmcgLSBoZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGxpbmVOYXR1cmFsQWR2YW5jZSA9IGxpbmUuZlRvdGFsQWR2YW5jZTsKKworICAgICAgICBsaW5lLmZUb3RhbEFkdmFuY2UgKz0gbGluZUluZGVudDsKKyAgICAgICAgbGluZS5mVmlzaWJsZUFkdmFuY2UgKz0gbGluZUluZGVudDsKKworICAgICAgICBpZiAobWVhc3VyZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm93IGZpbGwgaW4gZkJvdW5kcyBmaWVsZCBvZiBCaWRpU2VnbWVudHMuICBmQm91bmRzIHNob3VsZCB0aWxlCisgICAgICAgICAgICAvLyB0aGUgbGluZS4KKyAgICAgICAgICAgIGZpbmFsIGZsb2F0IGxpbmVIZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOworCisgICAgICAgICAgICBmb3IgKGludCBpPTE7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgY3VycmVudFNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpLTEpOworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IG5leHRTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisKKyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW47CisgICAgICAgICAgICAgICAgZmxvYXQgd2lkdGg7CisKKyAgICAgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBuZXh0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiAtPSBuZXh0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luICs9IChmbG9hdCkgTWF0aC5jZWlsKG5leHRTZWdtZW50LmZMYXlvdXQuZ2V0QWR2YW5jZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSAoZmxvYXQpIE1hdGguY2VpbChjdXJyZW50U2VnbWVudC5mTGF5b3V0LmdldEFkdmFuY2UoKSkgLSBvcmlnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN1cnJlbnRTZWdtZW50LmZCb3VuZHMgPSBuZXcgUmVjdGFuZ2xlMkQuRmxvYXQob3JpZ2luLCAtbGluZS5mQXNjZW50LCB3aWR0aCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHNldCBsYXN0IHNlZ21lbnQncyBib3VuZHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBjdXJyZW50U2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRDb3VudC0xKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW47CisgICAgICAgICAgICAgICAgZmxvYXQgd2lkdGg7CisKKyAgICAgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBsaW5lTmF0dXJhbEFkdmFuY2UgLSBjdXJyZW50U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9IGN1cnJlbnRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIC0gbGluZU5hdHVyYWxBZHZhbmNlOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IChmbG9hdCkgTWF0aC5jZWlsKGN1cnJlbnRTZWdtZW50LmZMYXlvdXQuZ2V0QWR2YW5jZSgpKSAtIG9yaWdpbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjdXJyZW50U2VnbWVudC5mQm91bmRzID0gbmV3IFJlY3RhbmdsZTJELkZsb2F0KG9yaWdpbiwgLWxpbmUuZkFzY2VudCwgd2lkdGgsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCBpbiBmU2VnbWVudHMsIGZMZWZ0VG9SaWdodC4gIG1lYXN1cmVyIG11c3Qgbm90IGJlIG51bGwKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcHV0ZVNlZ21lbnRzKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBmb3JtYXRXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBsaW5lSW5kZW50KSB7CisKKyAgICAgICAgLy8gTm90ZSBvbiBqdXN0aWZpY2F0aW9uOiAgb25seSB0aGUgbGFzdCBzZWdtZW50IG9mIGEgbGluZSBpcworICAgICAgICAvLyBqdXN0aWZpZWQuICAKKyAgICAgICAgLy8gQWxzbywgaWYgYSBsaW5lIGVuZHMgaW4gYSB0YWIgaXQgd2lsbCBub3QgYmUganVzdGlmaWVkLgorICAgICAgICAvLyBUaGlzIGJlaGF2aW9yIGlzIGNvbnNpc3RlbnQgd2l0aCBvdGhlciB3b3JkIHByb2Nlc3NvcnMKKyAgICAgICAgLy8gSSB0cmllZCAoTVMgV29yZCBhbmQgTG90dXMgV29yZCBQcm8pLgorICAgICAgICAKKyAgICAgICAgbGluZS5mU2VnbWVudHMucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgbGluZS5mQ2hhckxlbmd0aCA9IDA7CisKKyAgICAgICAgVGFiU3RvcCBjdXJyZW50VGFiU3RvcCA9IG5ldyBUYWJTdG9wKChpbnQpZkxlYWRpbmdNYXJnaW4rbGluZUluZGVudCwgVGFiU3RvcC5rTGVhZGluZyk7CisKKyAgICAgICAgaW50IHNlZ21lbnRMaW1pdCA9IG1lYXN1cmVyLmdldFBvc2l0aW9uKCk7CisgICAgICAgIGJvb2xlYW4gZmlyc3RTZWdtZW50ID0gdHJ1ZTsKKworICAgICAgICBpbnQgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gbGluZUluZGVudDsKKworICAgICAgICBib29sZWFuIGNvbXB1dGVTZWdzID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGNvbXB1dGVUYWJiZWRTZWdtZW50czogZG8geworCisgICAgICAgICAgICAvLyBjb21wdXRlIHNlbWVudExpbWl0OgorICAgICAgICAgICAgaWYgKHNlZ21lbnRMaW1pdCA8PSBtZWFzdXJlci5nZXRQb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHNlZ21lbnRMaW1pdCA8IHBhcmFncmFwaExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1RhYih0ZXh0LmF0KHNlZ21lbnRMaW1pdCsrKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOT1RFOiAgYWRqdXN0IGF2YWlsYWJsZSB3aWR0aCBmb3IgY2VudGVyIHRhYiEhIQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkZvcm1hdCB3aWR0aDogIiArIChmb3JtYXRXaWR0aC1hZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pICsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICI7ICBzZWdtZW50TGltaXQ6ICIgKyBzZWdtZW50TGltaXQpOworCisgICAgICAgICAgICBpbnQgd3JhcHBpbmdXaWR0aCA9IE1hdGgubWF4KGZvcm1hdFdpZHRoLWFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbiwgMCk7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IG51bGw7CisgICAgICAgICAgICBpZiAoZmlyc3RTZWdtZW50IHx8IHdyYXBwaW5nV2lkdGggPiAwIHx8IHNlZ21lbnRMaW1pdCA+IG1lYXN1cmVyLmdldFBvc2l0aW9uKCkrMSkgeworICAgICAgICAgICAgICAgIGxheW91dCA9IG1lYXN1cmVyLm5leHRMYXlvdXQod3JhcHBpbmdXaWR0aCwgc2VnbWVudExpbWl0LCAhZmlyc3RTZWdtZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxheW91dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0U2VnbWVudCkgeworICAgICAgICAgICAgICAgICAgICAvLyBJIGRvdWJ0IHRoaXMgd291bGQgaGFwcGVuLCBidXQgY2hlY2sgYW55d2F5CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmlyc3QgbGF5b3V0IGlzIG51bGwhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrIGNvbXB1dGVUYWJiZWRTZWdtZW50czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmluYWwgaW50IG1lYXN1cmVyUG9zID0gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGlmIChtZWFzdXJlclBvcyA8IHNlZ21lbnRMaW1pdCkgeworICAgICAgICAgICAgICAgIGNvbXB1dGVTZWdzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKGZGbHVzaCA9PSBGVUxMWV9KVVNUSUZJRUQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0ID0gbGF5b3V0LmdldEp1c3RpZmllZExheW91dCh3cmFwcGluZ1dpZHRoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wdXRlU2VncyA9ICEobWVhc3VyZXJQb3MgPT0gcGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZmlyc3RTZWdtZW50KSB7CisgICAgICAgICAgICAgICAgZmlyc3RTZWdtZW50ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgLy8gSGF2ZSB0byBnZXQgbHRyIG9mZiBvZiBsYXlvdXQuICBOb3QgYXZhaWxhYmxlIGZyb20gbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseS4KKyAgICAgICAgICAgICAgICBsaW5lLmZMZWZ0VG9SaWdodCA9IGxheW91dC5pc0xlZnRUb1JpZ2h0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBuZXcgQmlkaVNlZ21lbnQoKTsKKyAgICAgICAgICAgIHNlZ21lbnQuZkxheW91dCA9IGxheW91dDsKKyAgICAgICAgICAgIGludCBsYXlvdXRBZHZhbmNlID0gKGludCkgTWF0aC5jZWlsKGxheW91dC5nZXRBZHZhbmNlKCkpOworCisgICAgICAgICAgICAvLyBwb3NpdGlvbiBsYXlvdXQgcmVsYXRpdmUgdG8gbGVhZGluZyBtYXJnaW4sIHVwZGF0ZSBsb2dpY2FsUG9zaXRpb25PbkxpbmUKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHJlbGF0aXZlVGFiUG9zaXRpb24gPSBjdXJyZW50VGFiU3RvcC5nZXRQb3NpdGlvbigpLShpbnQpZkxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpbnQgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQ7CisgICAgICAgICAgICBzd2l0Y2ggKGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rVHJhaWxpbmc6CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0ID0gTWF0aC5tYXgoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRhYlBvc2l0aW9uLWxheW91dEFkdmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0NlbnRlcjoKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgPSBNYXRoLm1heCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVGFiUG9zaXRpb24tKGxheW91dEFkdmFuY2UvMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiAgLy8gaW5jbHVkZXMgZGVjaW1hbCB0YWIgcmlnaHQgbm93CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0ID0gcmVsYXRpdmVUYWJQb3NpdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGxheW91dCBpbiBzZWdtZW50CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQrbGF5b3V0QWR2YW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdXBkYXRlIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbgorICAgICAgICAgICAgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgKyBsYXlvdXRBZHZhbmNlOworCisgICAgICAgICAgICAvLyBhZGQgc2VnbWVudCB0byBzZWdtZW50IFZlY3RvcgorICAgICAgICAgICAgbGluZS5mU2VnbWVudHMuYWRkRWxlbWVudChzZWdtZW50KTsKKworICAgICAgICAgICAgLy8gZ2V0IG5leHQgdGFiCisgICAgICAgICAgICBjdXJyZW50VGFiU3RvcCA9IGZUYWJSdWxlci5uZXh0VGFiKChpbnQpZkxlYWRpbmdNYXJnaW4rYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50VGFiU3RvcC5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rTGVhZGluZyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSA9PSBUYWJTdG9wLmtBdXRvKSAgeworICAgICAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbiA9IGN1cnJlbnRUYWJTdG9wLmdldFBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkFkdmFuY2UgZnJvbSBsZWFkaW5nIG1hcmdpbjoiICsgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luKTsKKworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiTm9uLWxlYWRpbmcgdGFiLCB0eXBlPSIgKyBjdXJyZW50VGFiU3RvcC5nZXRUeXBlKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gd2hpbGUgKGNvbXB1dGVTZWdzKTsKKworICAgICAgICAvLyBOb3cgY29tcHV0ZSBmVG90YWxBZHZhbmNlLCBmVmlzaWJsZUFkdmFuY2UuICBUaGVzZSBtZXRyaWNzIG1heSBiZSBhZmZlY3RlZAorICAgICAgICAvLyBieSBhIHRyYWlsaW5nIHRhYi4KKworICAgICAgICB7CisgICAgICAgICAgICBCaWRpU2VnbWVudCBsYXN0U2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMubGFzdEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGFzdExheW91dCA9IGxhc3RTZWdtZW50LmZMYXlvdXQ7CisKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSA9IChpbnQpIE1hdGguY2VpbChsYXN0TGF5b3V0LmdldEFkdmFuY2UoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIGxpbmUuZlZpc2libGVBZHZhbmNlID0gKGludCkgTWF0aC5jZWlsKGxhc3RMYXlvdXQuZ2V0VmlzaWJsZUFkdmFuY2UoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZS5mVG90YWxBZHZhbmNlID0gbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgbGluZS5mVmlzaWJsZUFkdmFuY2UgPSBsYXN0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkgTWF0aC5jZWlsKGxhc3RMYXlvdXQuZ2V0QWR2YW5jZSgpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdExheW91dC5nZXRWaXNpYmxlQWR2YW5jZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzVGFiKHRleHQuYXQobWVhc3VyZXIuZ2V0UG9zaXRpb24oKS0xKSkpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZUb3RhbEFkdmFuY2UgPSBNYXRoLm1heChsaW5lLmZUb3RhbEFkdmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFiU3RvcC5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGlnaGxpZ2h0IHNoYXBlIGZvciB0aGUgZ2l2ZW4gY2hhcmFjdGVyIG9mZnNldHMuCisgICAgICogVGhlIFNoYXBlIHJldHVybmVkIGlzIHJlbGF0aXZlIHRvIHRoZSBsZWZ0bW9zdCBwb2ludCBvbiB0aGUKKyAgICAgKiBiYXNlbGluZSBvZiBsaW5lLgorICAgICAqLworICAgIHByaXZhdGUgU2hhcGUgZ2V0SGlnaGxpZ2h0U2hhcGUoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBobExpbWl0KSB7CisKKyAgICAgICAgaWYgKGhsU3RhcnQgPj0gaGxMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSGlnaGxpZ2h0IHJhbmdlIGxlbmd0aCBpcyBub3QgcG9zaXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgbGVhZGluZ01hcmdpbiA9IChsaW5lLmZMZWZ0VG9SaWdodCk/CisgICAgICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA6IGxpbmVCb3VuZCAtIGxpbmUuZkxlYWRpbmdNYXJnaW47CisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisKKyAgICAgICAgU2hhcGUgcnZhbCA9IG51bGw7CisgICAgICAgIEdlbmVyYWxQYXRoIGhpZ2hsaWdodFBhdGggPSBudWxsOworCisgICAgICAgIGludCBjdXJyZW50TGF5b3V0U3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgICAgICBpbnQgY2hhckNvdW50ID0gbGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpbnQgY3VycmVudExheW91dExpbWl0ID0gY3VycmVudExheW91dFN0YXJ0ICsgY2hhckNvdW50OworICAgICAgICAgICAgYm9vbGVhbiByYW5nZXNJbnRlcnNlY3Q7CisgICAgICAgICAgICBpZiAoaGxTdGFydCA8PSBjdXJyZW50TGF5b3V0U3RhcnQpIHsKKyAgICAgICAgICAgICAgICByYW5nZXNJbnRlcnNlY3QgPSBobExpbWl0ID4gY3VycmVudExheW91dFN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmFuZ2VzSW50ZXJzZWN0ID0gaGxTdGFydCA8IGN1cnJlbnRMYXlvdXRMaW1pdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJhbmdlc0ludGVyc2VjdCkgeworCisgICAgICAgICAgICAgICAgU2hhcGUgY3VycmVudEhsID0gbGF5b3V0LmdldExvZ2ljYWxIaWdobGlnaHRTaGFwZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChobFN0YXJ0LWN1cnJlbnRMYXlvdXRTdGFydCwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4oaGxMaW1pdC1jdXJyZW50TGF5b3V0U3RhcnQsIGNoYXJDb3VudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mQm91bmRzKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IHhUcmFuc2xhdGU7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIHhUcmFuc2xhdGUgPSBsZWFkaW5nTWFyZ2luICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB4VHJhbnNsYXRlID0gbGVhZGluZ01hcmdpbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh4VHJhbnNsYXRlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHhmb3JtID0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybS5nZXRUcmFuc2xhdGVJbnN0YW5jZSh4VHJhbnNsYXRlLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudEhsID0geGZvcm0uY3JlYXRlVHJhbnNmb3JtZWRTaGFwZShjdXJyZW50SGwpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChydmFsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcnZhbCA9IGN1cnJlbnRIbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRQYXRoID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodFBhdGggPSBuZXcgR2VuZXJhbFBhdGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodFBhdGguYXBwZW5kKHJ2YWwsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ2YWwgPSBoaWdobGlnaHRQYXRoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodFBhdGguYXBwZW5kKGN1cnJlbnRIbCwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRMYXlvdXRTdGFydCA9IGN1cnJlbnRMYXlvdXRMaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBydmFsOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZW5kZXJXaXRoSGlnaGxpZ2h0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpZ2hsaWdodENvbG9yKSB7CisKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IG51bGwgJiYgc2VsU3RvcCAhPSBudWxsICYmICFzZWxTdGFydC5lcXVhbHMoc2VsU3RvcCkgJiYKKyAgICAgICAgICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoICE9IDAgJiYKKyAgICAgICAgICAgICAgICBzZWxTdGFydC5mT2Zmc2V0IDwgbGluZUNoYXJTdGFydCArIGxpbmUuZkNoYXJMZW5ndGggJiYKKyAgICAgICAgICAgICAgICBzZWxTdG9wLmZPZmZzZXQgPiBsaW5lQ2hhclN0YXJ0KSB7CisKKyAgICAgICAgICAgIFNoYXBlIGhpZ2hsaWdodCA9IGdldEhpZ2hsaWdodFNoYXBlKGxpbmUsIGxlbmd0aEJhc2lzLCBsaW5lQm91bmQsIHNlbFN0YXJ0LmZPZmZzZXQsIHNlbFN0b3AuZk9mZnNldCk7CisgICAgICAgICAgICBpZiAoaGlnaGxpZ2h0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljczJEIGhsID0gKEdyYXBoaWNzMkQpIGcuY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgaGwuc2V0Q29sb3IoaGlnaGxpZ2h0Q29sb3IpOworICAgICAgICAgICAgICAgIGhsLnRyYW5zbGF0ZSh4LCB5ICsgbGluZS5mQXNjZW50KTsKKyAgICAgICAgICAgICAgICBobC5maWxsKGhpZ2hsaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZW5kZXIobGluZSwgbGVuZ3RoQmFzaXMsIGcsIGxpbmVCb3VuZCwgeCwgeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRHJhdyB0aGUgbGluZSBpbnRvIHRoZSBncmFwaGljcy4gICh4LCB5KSBpcyB0aGUgdXBwZXItbGVmdCBjb3JuZXIKKyAgICAgKiBvZiB0aGUgbGluZS4gIFRoZSBsZWFkaW5nIGVkZ2Ugb2YgYSByaWdodC1hbGlnbmVkIGxpbmUgaXMgYWxpZ25lZAorICAgICAqIHRvICh4ICsgbGluZUJvdW5kKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVuZGVyKEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworCisgICAgICAgIGZpbmFsIGludCBsZWFkaW5nTWFyZ2luID0gKGxpbmUuZkxlZnRUb1JpZ2h0KT8KKyAgICAgICAgICAgICAgICB4ICsgbGluZS5mTGVhZGluZ01hcmdpbiA6IHggKyBsaW5lQm91bmQgLSBsaW5lLmZMZWFkaW5nTWFyZ2luOworICAgICAgICBmaW5hbCBpbnQgYmFzZWxpbmUgPSB5ICsgbGluZS5mQXNjZW50OworICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgZmxvYXQgZHJhd1g7CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBkcmF3WCA9IGxlYWRpbmdNYXJnaW4gKyBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZHJhd1ggPSBsZWFkaW5nTWFyZ2luIC0gc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2VnbWVudC5mTGF5b3V0LmRyYXcoZywgZHJhd1gsIGJhc2VsaW5lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgVGV4dE9mZnNldCBoaXRUZXN0U2VnbWVudChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnRDaGFyU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4SW5TZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeUluU2VnbWVudCkgeworCisgICAgICAgIGZpbmFsIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICBmaW5hbCBpbnQgY2hhckNvdW50ID0gbGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgIGZpbmFsIGludCBsYXlvdXRBZHZhbmNlID0gKGludCkgTWF0aC5jZWlsKGxheW91dC5nZXRBZHZhbmNlKCkpOworICAgICAgICBSZWN0YW5nbGUyRCBib3VuZHMgPSBzZWdtZW50LmZCb3VuZHM7CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBsdHIgPSBsYXlvdXQuaXNMZWZ0VG9SaWdodCgpOworCisgICAgICAgIGlmIChsdHIgJiYgKHhJblNlZ21lbnQgPj0gbGF5b3V0QWR2YW5jZSkgfHwgIWx0ciAmJiAoeEluU2VnbWVudCA8PSAwKSkgeworCisgICAgICAgICAgICAvLyBwcmV0ZW5kIHRoZSBleHRyYSBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGlzIGEKKyAgICAgICAgICAgIC8vIHRhYiBhbmQgJ2hpdC10ZXN0JyBpdC4KKyAgICAgICAgICAgIGRvdWJsZSB0YWJDZW50ZXI7CisgICAgICAgICAgICBpZiAobHRyKSB7CisgICAgICAgICAgICAgICAgdGFiQ2VudGVyID0gKGxheW91dEFkdmFuY2UrYm91bmRzLmdldE1heFgoKSkgLyAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGFiQ2VudGVyID0gYm91bmRzLmdldFgoKSAvIDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgoeEluU2VnbWVudCA+PSB0YWJDZW50ZXIpID09IGx0cikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gY2hhckNvdW50OworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBjaGFyQ291bnQtMTsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVGV4dEhpdEluZm8gaW5mbyA9IGxheW91dC5oaXRUZXN0Q2hhcih4SW5TZWdtZW50LCB5SW5TZWdtZW50LCBzZWdtZW50LmZCb3VuZHMpOworICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBpbmZvLmdldEluc2VydGlvbkluZGV4KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmZPZmZzZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuZk9mZnNldCA9PSBjaGFyQ291bnQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gaW5mby5pc0xlYWRpbmdFZGdlKCk/CisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5mT2Zmc2V0ICs9IHNlZ21lbnRDaGFyU3RhcnQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgYXQgdGhlIHBvaW50ICh4LCB5KS4gICh4LCB5KSBpcyByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQKKyAgICAgKiBvZiB0aGUgbGluZS4gIFRoZSBsZWFkaW5nIGVkZ2Ugb2YgYSByaWdodC1hbGlnbmVkIGxpbmUgaXMgYWxpZ25lZAorICAgICAqIHRvIGxpbmVCb3VuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRleHRPZmZzZXQgcGl4ZWxUb09mZnNldChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IHlJblNlZ21lbnQgPSB5IC0gbGluZS5mQXNjZW50OworICAgICAgICBmaW5hbCBpbnQgbGVhZGluZ01hcmdpbiA9IChsaW5lLmZMZWZ0VG9SaWdodCk/CisgICAgICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA6IGxpbmVCb3VuZCAtIGxpbmUuZkxlYWRpbmdNYXJnaW47CisgICAgICAgIGZpbmFsIGludCBsaW5lQ2hhclN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworCisgICAgICAgIC8vIGZpcnN0IHNlZSBpZiBwb2ludCBpcyBiZWZvcmUgbGVhZGluZyBlZGdlIG9mIGxpbmUKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNlZ0xlYWRpbmdNYXJnaW4gPSBsZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaWYgKHNlZ21lbnRDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBmaXJzdFNlZyA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KDApOworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICBzZWdMZWFkaW5nTWFyZ2luICs9IGZpcnN0U2VnLmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2VnTGVhZGluZ01hcmdpbiAtPSBmaXJzdFNlZy5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgc2VnTGVhZGluZ01hcmdpbiArPSAoZmxvYXQpIGZpcnN0U2VnLmZCb3VuZHMuZ2V0TWF4WCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCA9PSAoeCA8PSBzZWdMZWFkaW5nTWFyZ2luKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gbGluZUNoYXJTdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgc2VnbWVudENoYXJTdGFydCA9IGxpbmVDaGFyU3RhcnQ7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaW50IHNlZ21lbnRPcmlnaW4gPSBsaW5lLmZMZWZ0VG9SaWdodD8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nTWFyZ2luK3NlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdNYXJnaW4tc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGludCB4SW5TZWdtZW50ID0geCAtIHNlZ21lbnRPcmlnaW47CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5mQm91bmRzLmdldE1heFgoKSA+IHhJblNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhpdFRlc3RTZWdtZW50KHJlc3VsdCwgc2VnbWVudENoYXJTdGFydCwgc2VnbWVudCwgeEluU2VnbWVudCwgeUluU2VnbWVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHNlZ21lbnQuZkJvdW5kcy5nZXRYKCkgPCB4SW5TZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBoaXRUZXN0U2VnbWVudChyZXN1bHQsIHNlZ21lbnRDaGFyU3RhcnQsIHNlZ21lbnQsIHhJblNlZ21lbnQsIHlJblNlZ21lbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlZ21lbnRDaGFyU3RhcnQgKz0gc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuZk9mZnNldCA9IGxpbmVDaGFyU3RhcnQgKyBsaW5lLmZDaGFyTGVuZ3RoOworICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVuZGVyQ2FyZXQoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igc3Ryb25nQ2FyZXRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpCisgICAgeworICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICBmaW5hbCBpbnQgbGluZVN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworCisgICAgICAgIGludCBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQ7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAgICBUaGVyZSBhcmUgdHdvIGNob2ljZXMgaGVyZToKKyAgICAgICAgICAgIDEuIGdldCBjYXJldHMgZnJvbSBhIFRleHRMYXlvdXQgYW5kIHJlbmRlciB0aGVtLCBvcgorICAgICAgICAgICAgMi4gbWFrZSB1cCBhIGNhcmV0IG91cnNlbHZlcyBhbmQgcmVuZGVyIGl0LgorICAgICAgICAgICAgV2Ugd2FudCB0byBkbyAyIHdoZW46CisgICAgICAgICAgICAgICAgKiB0aGVyZSBpcyBubyB0ZXh0IG9uIHRoZSBsaW5lLCBvcgorICAgICAgICAgICAgICAgICogdGhlIGxpbmUgZW5kcyB3aXRoIGEgdGFiIGFuZCB3ZSBhcmUgZHJhd2luZyB0aGUgbGFzdCBjYXJldCBvbiB0aGUgbGluZQorICAgICAgICAgICAgT3RoZXJ3aXNlLCB3ZSB3YW50IDEuCisgICAgICAgICovCisKKyAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA9PSBzZWdtZW50Q291bnQgJiYgc2VnbWVudENvdW50ID4gMCkgeworICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIGxpbmUgbGVuZ3RoIGlzIG5vdCAwLCBhbmQgY2hhck9mZnNldCBpcyBhdCBlbmQgb2YgbGluZQorICAgICAgICAgICAgaWYgKCFpc1RhYih0ZXh0LmF0KGNoYXJPZmZzZXQtMSkpKSB7CisgICAgICAgICAgICAgICAgc2VnbWVudEluZGV4ID0gc2VnbWVudENvdW50LTE7CisgICAgICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gbGluZVN0YXJ0ICsgbGluZS5nZXRDaGFyTGVuZ3RoKCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBPYmplY3Qgc2F2ZWRQYWludCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldENvbG9yU3RhdGUoZyk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQpIHsKKyAgICAgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0SW5MYXlvdXQgPSBjaGFyT2Zmc2V0IC0gY3VycmVudFN0YXJ0OworICAgICAgICAgICAgICAgIFNoYXBlW10gY2FyZXRzID0gbGF5b3V0LmdldENhcmV0U2hhcGVzKG9mZnNldEluTGF5b3V0LCBzZWdtZW50LmZCb3VuZHMpOworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3Ioc3Ryb25nQ2FyZXRDb2xvcik7CisgICAgICAgICAgICAgICAgaW50IGxheW91dFBvcyA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIGludCBsYXlvdXRYID0gbGluZS5mTGVmdFRvUmlnaHQ/CisgICAgICAgICAgICAgICAgICAgICAgICB4ICsgbGF5b3V0UG9zIDogeCArIGxpbmVCb3VuZCAtIGxheW91dFBvczsKKyAgICAgICAgICAgICAgICBpbnQgbGF5b3V0WSA9IHkgKyBsaW5lLmZBc2NlbnQ7CisKKyAgICAgICAgICAgICAgICAvLyBUcmFuc2xhdGluZyBhbmQgdGhlbiBjbGlwcGluZyBkb2Vzbid0IHdvcmsuICBUcnkgdGhpczoKKyAgICAgICAgICAgICAgICBSZWN0YW5nbGUyRC5GbG9hdCBjbGlwUmVjdCA9IG5ldyBSZWN0YW5nbGUyRC5GbG9hdCgpOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LnNldFJlY3Qoc2VnbWVudC5mQm91bmRzKTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC54ICs9IGxheW91dFg7CisgICAgICAgICAgICAgICAgY2xpcFJlY3QueSArPSBsYXlvdXRZOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LndpZHRoICs9IDE7CisgICAgICAgICAgICAgICAgY2xpcFJlY3QuaGVpZ2h0IC09IDE7CisKKyAgICAgICAgICAgICAgICBPYmplY3Qgc2F2ZWRDbGlwID0gQ2xpcFdvcmthcm91bmQuc2F2ZUNsaXBTdGF0ZShnKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBDbGlwV29ya2Fyb3VuZC50cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJldHNbMF0pOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FyZXRzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3Iod2Vha0NhcmV0Q29sb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgQ2xpcFdvcmthcm91bmQudHJhbnNsYXRlQW5kRHJhd1NoYXBlV2l0aENsaXAoZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmV0c1sxXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgIENsaXBXb3JrYXJvdW5kLnJlc3RvcmVDbGlwU3RhdGUoZywgc2F2ZWRDbGlwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZUVuZCA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBsaW5lLmZUb3RhbEFkdmFuY2U7CisgICAgICAgICAgICAgICAgaW50IGVuZFggPSBsaW5lLmZMZWZ0VG9SaWdodD8gbGluZUVuZCA6IGxpbmVCb3VuZC1saW5lRW5kOworICAgICAgICAgICAgICAgIGVuZFggKz0geDsKKyAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGVuZFgsIHksIGVuZFgsIHkrbGluZS5nZXRIZWlnaHQoKS0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIEdyYXBoaWNzMkRDb252ZXJzaW9uLnJlc3RvcmVDb2xvclN0YXRlKGcsIHNhdmVkUGFpbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBSZWN0YW5nbGUgY2FyZXRCb3VuZHMoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKworICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICBmaW5hbCBpbnQgbGluZVN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworICAgICAgICBpbnQgY3VycmVudFN0YXJ0ID0gbGluZVN0YXJ0OworICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gbnVsbDsKKyAgICAgICAgaW50IHNlZ21lbnRJbmRleDsKKworICAgICAgICBmb3IgKHNlZ21lbnRJbmRleD0wOyBzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQ7IHNlZ21lbnRJbmRleCsrKSB7CisgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgIGludCBjdXJyZW50RW5kcG9pbnQgPSBjdXJyZW50U3RhcnQgKyBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50RW5kcG9pbnQgPiBjaGFyT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBjdXJyZW50RW5kcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VnbWVudEluZGV4ID09IHNlZ21lbnRDb3VudCAmJiBzZWdtZW50Q291bnQgPiAwKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbGluZSBsZW5ndGggaXMgbm90IDAsIGFuZCBjaGFyT2Zmc2V0IGlzIGF0IGVuZCBvZiBsaW5lCisgICAgICAgICAgICBpZiAoIWlzVGFiKHRleHQuYXQoY2hhck9mZnNldC0xKSkpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50SW5kZXggPSBzZWdtZW50Q291bnQtMTsKKyAgICAgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQgKyBsaW5lLmdldENoYXJMZW5ndGgoKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFJlY3RhbmdsZSByOworICAgICAgICAKKyAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudCkgeworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgICAgICBpbnQgb2Zmc2V0SW5MYXlvdXQgPSBjaGFyT2Zmc2V0IC0gY3VycmVudFN0YXJ0OworICAgICAgICAgICAgU2hhcGVbXSBjYXJldHMgPSBsYXlvdXQuZ2V0Q2FyZXRTaGFwZXMob2Zmc2V0SW5MYXlvdXQsIHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICByID0gY2FyZXRzWzBdLmdldEJvdW5kcygpOworICAgICAgICAgICAgaWYgKGNhcmV0c1sxXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgci5hZGQoY2FyZXRzWzFdLmdldEJvdW5kcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHIud2lkdGggKz0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxheW91dFBvcyA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgci54ICs9IGxheW91dFBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHIueCArPSBsaW5lQm91bmQgLSBsYXlvdXRQb3M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLnkgKz0gbGluZS5mQXNjZW50OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgciA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgICAgIHIuaGVpZ2h0ID0gbGluZS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIHIud2lkdGggPSAxOworICAgICAgICAgICAgaW50IGxpbmVFbmQgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgbGluZS5mVG90YWxBZHZhbmNlOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgci54ID0gbGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHIueCA9IGxpbmVCb3VuZCAtIGxpbmVFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHIudHJhbnNsYXRlKHgsIHkpOworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBzdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24oQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCkgeworCisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIGludCBjdXJyZW50U3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgaW50IG9mZnNldEluTGF5b3V0ID0gY2hhck9mZnNldCAtIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIFRleHRIaXRJbmZvIGhpdCA9IFRleHRIaXRJbmZvLmFmdGVyT2Zmc2V0KG9mZnNldEluTGF5b3V0KTsKKyAgICAgICAgICAgIGhpdCA9IFRleHRMYXlvdXQuREVGQVVMVF9DQVJFVF9QT0xJQ1kuZ2V0U3Ryb25nQ2FyZXQoaGl0LCBoaXQuZ2V0T3RoZXJIaXQoKSwgbGF5b3V0KTsKKyAgICAgICAgICAgIGZsb2F0W10gaW5mbyA9IGxheW91dC5nZXRDYXJldEluZm8oaGl0KTsKKyAgICAgICAgICAgIGludCBsYXlvdXRQb3MgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXlvdXRQb3MgKyAoaW50KSBpbmZvWzBdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmVCb3VuZCAtIGxheW91dFBvcyArIChpbnQpIGluZm9bMF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgbGluZUVuZCA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBsaW5lLmZUb3RhbEFkdmFuY2U7CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lQm91bmQgLSBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZ2V0TmV4dE9mZnNldChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXIpIHsKKworICAgICAgICBpZiAoZGlyICE9IE1Gb3JtYXR0ZXIuZUxlZnQgJiYgZGlyICE9IE1Gb3JtYXR0ZXIuZVJpZ2h0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRpcmVjdGlvbi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmQgc2VnbWVudCBjb250YWluaW5nIG9mZnNldDoKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmVDaGFyU3RhcnQ7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQgfHwKKyAgICAgICAgICAgICAgICAgICAgKHNlZ21lbnRJbmRleCA9PSBzZWdtZW50Q291bnQtMSAmJiBjdXJyZW50RW5kcG9pbnQ9PWNoYXJPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBjdXJyZW50RW5kcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGxvZ0FkdmFuY2UgPSAoZGlyPT1NRm9ybWF0dGVyLmVSaWdodCk9PShsaW5lLmZMZWZ0VG9SaWdodCk7CisKKyAgICAgICAgaW50IHJlc3VsdDsKKworICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICBUZXh0SGl0SW5mbyBoaXQgPSAoZGlyPT1NRm9ybWF0dGVyLmVMZWZ0KT8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC5nZXROZXh0TGVmdEhpdChvZmZzZXRJbkxheW91dCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldE5leHRSaWdodEhpdChvZmZzZXRJbkxheW91dCk7CisgICAgICAgICAgICBpZiAoaGl0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBsb2dBZHZhbmNlPworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQrbGF5b3V0LmdldENoYXJhY3RlckNvdW50KCkrMSA6IGN1cnJlbnRTdGFydC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaGl0LmdldEluc2VydGlvbkluZGV4KCkgKyBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBsb2dBZHZhbmNlPyBsaW5lQ2hhclN0YXJ0ICsgbGluZS5mQ2hhckxlbmd0aCArIDEgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQ2hhclN0YXJ0IC0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQ2xpcFdvcmthcm91bmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQ2xpcFdvcmthcm91bmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNDY3YjMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5TaGFwZTsKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworaW1wb3J0IGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQ7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5QYXRoSXRlcmF0b3I7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5MaW5lMkQ7CisvL0pESzEySU1QT1JUUyovCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5SZWN0YW5nbGUyRDsKK0pESzExSU1QT1JUUyovCisKKy8qKgorICogVGhpcyBjbGFzcyBleGlzdHMgdG8gd29yayBhcm91bmQgYSBjbGlwcGluZyBidWcgaW4gSkRLIDEuMi4KKyAqLworZmluYWwgY2xhc3MgQ2xpcFdvcmthcm91bmQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKy8vLypKREsxMklNUE9SVFMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXhjdXNlID0KKyAgICAgICAgIlNvcnJ5LCB0aGlzIG1ldGhvZCBpcyBhIHZlcnkgbGltaXRlZCB3b3JrYXJvdW5kIGZvciBhIEpESyAxLjIgYnVnLiI7CisvL0pESzEySU1QT1JUUyovCisgICAgCisgICAgc3RhdGljIE9iamVjdCBzYXZlQ2xpcFN0YXRlKEdyYXBoaWNzMkQgZykgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICByZXR1cm4gbnVsbDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCisgICAgICAgIHJldHVybiBnLmdldENsaXAoKTsKK0pESzExSU1QT1JUUyovCisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHJlc3RvcmVDbGlwU3RhdGUoR3JhcGhpY3MyRCBnLCBPYmplY3Qgc3RhdGUpIHsKKy8vLypKREsxMklNUE9SVFMKKyAgICAgICAgaWYgKHN0YXRlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjbGlwIHN0YXRlIGZvciB0aGlzIGNsYXNzLiIpOworICAgICAgICB9CisvL0pESzEySU1QT1JUUyovCisvKkpESzExSU1QT1JUUworICAgICAgICBnLnNldENsaXAoKFNoYXBlKXN0YXRlKTsKK0pESzExSU1QT1JUUyovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERyYXcgdGhlIGdpdmVuIFNoYXBlIGludG8gdGhlIEdyYXBoaWNzLCB0cmFuc2xhdGVkIGJ5IChkeCwgZHkpCisgICAgICogYW5kIGNsaXBwZWQgdG8gY2xpcFJlY3QuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgdHJhbnNsYXRlQW5kRHJhd1NoYXBlV2l0aENsaXAoR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlMkQgY2xpcFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhcGUgc2hhcGUpIHsKKy8vLypKREsxMklNUE9SVFMKKyAgICAgICAgLy8gcmVhbGx5IGJvZ3VzIGltcGxlbWVudGF0aW9uIHJpZ2h0IG5vdzogIGJhc2ljYWxseSBvbmx5CisgICAgICAgIC8vIGRyYXdzIGNhcmV0cyBmcm9tIGEgVGV4dExheW91dC4KKyAgICAgICAgLy8gT2ggeWVhaCwgaXQgZG9lc24ndCByZWFsbHkgY2xpcCBjb3JyZWN0bHkgZWl0aGVyLi4uCisKKyAgICAgICAgUGF0aEl0ZXJhdG9yIHBhdGhJdGVyID0gc2hhcGUuZ2V0UGF0aEl0ZXJhdG9yKG51bGwpOworICAgICAgICBmbG9hdFtdIHBvaW50cyA9IG5ldyBmbG9hdFs2XTsKKworICAgICAgICBpbnQgdHlwZSA9IHBhdGhJdGVyLmN1cnJlbnRTZWdtZW50KHBvaW50cyk7CisgICAgICAgIGlmICh0eXBlICE9IFBhdGhJdGVyYXRvci5TRUdfTU9WRVRPKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCB4MSA9IHBvaW50c1swXSArIGR4OworICAgICAgICBmbG9hdCB5MSA9IHBvaW50c1sxXSArIGR5OworCisgICAgICAgIGlmIChwYXRoSXRlci5pc0RvbmUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGV4Y3VzZSk7CisgICAgICAgIH0KKworICAgICAgICBwYXRoSXRlci5uZXh0KCk7CisgICAgICAgIHR5cGUgPSBwYXRoSXRlci5jdXJyZW50U2VnbWVudChwb2ludHMpOworICAgICAgICBpZiAodHlwZSAhPSBQYXRoSXRlcmF0b3IuU0VHX0xJTkVUTykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGV4Y3VzZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgeDIgPSBwb2ludHNbMF0gKyBkeDsKKyAgICAgICAgZmxvYXQgeTIgPSBwb2ludHNbMV0gKyBkeTsKKworICAgICAgICBmbG9hdCBtaW5ZID0gKGZsb2F0KSBjbGlwUmVjdC5nZXRZKCk7CisgICAgICAgIGZsb2F0IG1heFkgPSAoZmxvYXQpIGNsaXBSZWN0LmdldE1heFkoKTsKKworICAgICAgICAvLyBOb3cgY2xpcCB3aXRoaW4gdmVydGljYWwgbGltaXRzIGluIGNsaXBSZWN0CisgICAgICAgIGlmICh5MSA9PSB5MikgeworICAgICAgICAgICAgaWYgKHkxIDwgbWluWSB8fCB5MSA+PSBtYXhZKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHkxID4geTIpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCB0ID0geDE7CisgICAgICAgICAgICAgICAgeDEgPSB4MjsKKyAgICAgICAgICAgICAgICB4MiA9IHQ7CisgICAgICAgICAgICAgICAgdCA9IHkxOworICAgICAgICAgICAgICAgIHkxID0geTI7CisgICAgICAgICAgICAgICAgeTIgPSB0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmbG9hdCBpbnZTbG9wZSA9ICh4Mi14MSkgLyAoeTIteTEpOworICAgICAgICAgICAgaWYgKHkxIDwgbWluWSkgeworICAgICAgICAgICAgICAgIHgxIC09IChtaW5ZLXkxKSAqIGludlNsb3BlOworICAgICAgICAgICAgICAgIHkxID0gbWluWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh5MiA+PSBtYXhZKSB7CisgICAgICAgICAgICAgICAgeDEgKz0gKHkyLW1heFkpICogaW52U2xvcGU7CisgICAgICAgICAgICAgICAgeTIgPSBtYXhZOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZy5kcmF3KG5ldyBMaW5lMkQuRmxvYXQoeDEsIHkxLCB4MiwgeTIpKTsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCisgICAgICAgIGcuc2V0Q2xpcChjbGlwUmVjdCk7CisgICAgICAgIGcudHJhbnNsYXRlKGR4LCBkeSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBnLmRyYXcoc2hhcGUpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgZy50cmFuc2xhdGUoLWR4LCAtZHkpOworICAgICAgICB9CitKREsxMUlNUE9SVFMqLworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzM2MzJkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5qYXZhCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuZm9udC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRMYXlvdXQ7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5UZXh0TGF5b3V0OworSkRLMTFJTVBPUlRTKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgYnkgdGhlIEZvcm1hdHRlciB0byBlc3RpbWF0ZSB0aGUgaGVpZ2h0CisgKiBvZiBjaGFyYWN0ZXJzIGluIGEgcGFydGljdWxhciBzdHlsZS4KKyAqLworZmluYWwgY2xhc3MgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIGZpbmFsIGNsYXNzIE1ldHJpYyB7CisgICAgCisgICAgICAgIHByaXZhdGUgZmxvYXQgZkFzY2VudDsKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmRGVzY2VudDsKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmTGVhZGluZzsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBNZXRyaWMoZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50LCBmbG9hdCBsZWFkaW5nKSB7CisgICAgCisgICAgICAgICAgICBmQXNjZW50ID0gYXNjZW50OworICAgICAgICAgICAgZkRlc2NlbnQgPSBkZXNjZW50OworICAgICAgICAgICAgZkxlYWRpbmcgPSBsZWFkaW5nOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QXNjZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIChpbnQpIE1hdGguY2VpbChmQXNjZW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldERlc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZEZXNjZW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldExlYWRpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZMZWFkaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIEhhc2h0YWJsZSBmQ2FjaGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSAvKmZpbmFsKi8gRm9udFJlc29sdmVyIGZSZXNvbHZlcjsKKyAgICBwcml2YXRlIC8qZmluYWwqLyBGb250UmVuZGVyQ29udGV4dCBmRnJjOworICAgIAorICAgIHB1YmxpYyBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljKEZvbnRSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb250UmVuZGVyQ29udGV4dCBmcmMpIHsKKyAgICAKKyAgICAgICAgZlJlc29sdmVyID0gcmVzb2x2ZXI7CisgICAgICAgIGZGcmMgPSBmcmM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgaW5zdGFuY2UgZm9yIHRoZSBnaXZlbiBzdHlsZS4gIFRoZQorICAgICAqIHN0eWxlIGlzIGZpcnN0IHJlc29sdmVkIHdpdGggRm9udFJlc29sdmVyLgorICAgICAqLworICAgIHB1YmxpYyBNZXRyaWMgZ2V0TWV0cmljRm9yU3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgc3R5bGUgPSBmUmVzb2x2ZXIuYXBwbHlGb250KHN0eWxlKTsKKyAgICAgICAgTWV0cmljIG1ldHJpYyA9IChNZXRyaWMpIGZDYWNoZS5nZXQoc3R5bGUpOworICAgICAgICBpZiAobWV0cmljID09IG51bGwpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gbmV3IFRleHRMYXlvdXQoIiAiLCBzdHlsZSwgZkZyYyk7CisgICAgICAgICAgICBtZXRyaWMgPSBuZXcgTWV0cmljKGxheW91dC5nZXRBc2NlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldERlc2NlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldExlYWRpbmcoKSk7CisgICAgICAgICAgICBmQ2FjaGUucHV0KHN0eWxlLCBtZXRyaWMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtZXRyaWM7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0ZvbnRSZXNvbHZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5NmRlZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0ZvbnRSZXNvbHZlci5qYXZhCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5Gb250VXRpbHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CisKK2ZpbmFsIGNsYXNzIEZvbnRSZXNvbHZlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgc3RhdGljIHsKKy8vIEV2ZW4gdGhvdWdoIGl0IHZpb2xhdGVzIHRoZSBQcmltZSBEaXJlY3RpdmUgSSdsbCBjb25kaXRpb25hbGl6ZQorLy8gdGhpcyBhbnl3YXksIHNpbmNlIGl0IGlzIGp1c3QgYSAxLjIgd29ya2Fyb3VuZCB3aGljaCBJIGdyZWF0bHkKKy8vIHJlc2VudC4KKy8vLypKREsxMklNUE9SVFMKKyAgICAgICAgamF2YS5hd3QuR3JhcGhpY3NFbnZpcm9ubWVudC5nZXRMb2NhbEdyYXBoaWNzRW52aXJvbm1lbnQoKS5nZXRBbGxGb250cygpOworLy9KREsxMklNUE9SVFMqLworICAgIH0KKworICAgIHByaXZhdGUgSGFzaHRhYmxlIHN0eWxlTWFwOworICAgIHByaXZhdGUgZmluYWwgQXR0cmlidXRlTWFwIGZEZWZhdWx0Rm9udE1hcDsKKworICAgIHB1YmxpYyBGb250UmVzb2x2ZXIoQXR0cmlidXRlTWFwIGRlZmF1bHRzKSB7CisKKyAgICAgICAgc3R5bGVNYXAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIEhhc2h0YWJsZSB0ZW1wTWFwID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICB0ZW1wTWFwLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgZGVmYXVsdHMuZ2V0KFRleHRBdHRyaWJ1dGUuRkFNSUxZKSk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuV0VJR0hULCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFKSk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgZGVmYXVsdHMuZ2V0KFRleHRBdHRyaWJ1dGUuU0laRSkpOworICAgICAgICBmRGVmYXVsdEZvbnRNYXAgPSBuZXcgQXR0cmlidXRlTWFwKHRlbXBNYXApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZldGNoIHJlc3VsdCBvZiByZXNvbHZlKHN0eWxlKSBmcm9tIGNhY2hlLCBpZiBwcmVzZW50LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYXBwbHlGb250KEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgIE9iamVjdCBjYWNoZWRNYXAgPSBzdHlsZU1hcC5nZXQoc3R5bGUpOworCisgICAgICAgIGlmIChjYWNoZWRNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHJlc29sdmVkTWFwID0gcmVzb2x2ZShzdHlsZSk7CisgICAgICAgICAgICBzdHlsZU1hcC5wdXQoc3R5bGUsIHJlc29sdmVkTWFwKTsKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZE1hcDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoQXR0cmlidXRlTWFwKSBjYWNoZWRNYXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIGNvbnRhaW5pbmcgYSBGb250IGNvbXB1dGVkIGZyb20gdGhlCisgICAgICogYXR0cmlidXRlcyBpbiA8dHQ+c3R5bGU8L3R0Pi4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlc29sdmUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgaWYgKHN0eWxlLmdldChUZXh0QXR0cmlidXRlLkZPTlQpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIEZvbnQgZm9udCA9IEZvbnRVdGlscy5nZXRGb250KGZEZWZhdWx0Rm9udE1hcC5hZGRBdHRyaWJ1dGVzKHN0eWxlKSk7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLkZPTlQsIGZvbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTGF5b3V0SW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE2MmYzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTGF5b3V0SW5mby5qYXZhCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKKy8qKiBMYXlvdXRJbmZvCisKKyAgICBBIGxpbmUgb2YgdGV4dCwgcG9zc2libHkgY29udGFpbmluZyB0YWItc2VnbWVudHMuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitKREsxMUlNUE9SVFMqLworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2Fic3RyYWN0IGNsYXNzIExheW91dEluZm8KK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGZDaGFyU3RhcnQ7ICAgICAgIC8vIG9mZnNldCBpbiB0ZXh0IHRvIHN0YXJ0IG9mIGxpbmUgKHdhcyBmU3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVnLiB2YWx1ZXMgaW5kaWNhdGUgZGlzdGFuY2UgZnJvbSBlbmQgb2YgdGV4dAorICAgIHByaXZhdGUgaW50IGZHcmFwaGljU3RhcnQ7ICAgIC8vIG1pbiBwaXhlbCBvZmZzZXQgaW4gZmlsbCBkaXJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgZGlzdGFuY2UgZnJvbSBib3R0b20gb2YgdGV4dCB2aWV3CisKKyAgICAvKgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3Igc3RvcmluZyBMYXlvdXRzIGluIGEgZ2FwLXN0b3JhZ2UsCisgICAgICAgIHJlbGF0aXZlIHRvIGVpdGhlciB0aGUgc3RhcnQgb2YgZW5kIG9mIHRleHQuICBTZWUgQXN5bmNGb3JtYXR0ZXIuCisKKyAgICAgICAgSWYgeW91IGp1c3Qgd2FudCBhYnNvbHV0ZSAodGhhdCBpcywgc3RhcnQtcmVsYXRpdmUpIGNoYXIgYW5kCisgICAgICAgIGdyYXBoaWMgc3RhcnRzLCBkb24ndCBtYWtlIHRoZW0gZW5kLXJlbGF0aXZlLgorICAgICovCisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldENoYXJTdGFydChpbnQgbGVuZ3RoQmFzaXMpIHsKKworICAgICAgICBpZiAoZkNoYXJTdGFydCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZkNoYXJTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGhCYXNpcyArIGZDaGFyU3RhcnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEdyYXBoaWNTdGFydChpbnQgZ3JhcGhpY0Jhc2lzKSB7CisKKyAgICAgICAgaWYgKGZHcmFwaGljU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZHcmFwaGljU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZ3JhcGhpY0Jhc2lzICsgZkdyYXBoaWNTdGFydDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldENoYXJTdGFydChpbnQgYmVnaW5uaW5nUmVsYXRpdmVTdGFydCkgeworCisgICAgICAgIGlmIChiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2hhclN0YXJ0IG11c3QgYmUgbm9ubmVnYXZpdHZlIik7CisgICAgICAgIH0KKyAgICAgICAgZkNoYXJTdGFydCA9IGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0R3JhcGhpY1N0YXJ0KGludCBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0KSB7CisKKyAgICAgICAgaWYgKGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyU3RhcnQgbXVzdCBiZSBub25uZWdhdml0dmUiKTsKKyAgICAgICAgfQorICAgICAgICBmR3JhcGhpY1N0YXJ0ID0gYmVnaW5uaW5nUmVsYXRpdmVTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBtYWtlUmVsYXRpdmVUb0JlZ2lubmluZyhpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyYXBoaWNCYXNpcykgeworCisgICAgICAgIGlmIChsZW5ndGhCYXNpcyA8IDAgfHwgZ3JhcGhpY0Jhc2lzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFzZXMgbXVzdCBiZSBwb3NpdGl2ZS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkNoYXJTdGFydCA+PSAwIHx8IGZHcmFwaGljU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbHJlYWR5IHN0YXJ0LXJlbGF0aXZlLiIpOworICAgICAgICB9CisKKyAgICAgICAgZkNoYXJTdGFydCArPSBsZW5ndGhCYXNpczsKKyAgICAgICAgZkdyYXBoaWNTdGFydCArPSBncmFwaGljQmFzaXM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgbWFrZVJlbGF0aXZlVG9FbmQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBncmFwaGljQmFzaXMpIHsKKworICAgICAgICBpZiAobGVuZ3RoQmFzaXMgPCAwIHx8IGdyYXBoaWNCYXNpcyA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhc2VzIG11c3QgYmUgcG9zaXRpdmUuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZDaGFyU3RhcnQgPCAwIHx8IGZHcmFwaGljU3RhcnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFscmVhZHkgZW5kLXJlbGF0aXZlLiIpOworICAgICAgICB9CisKKyAgICAgICAgZkNoYXJTdGFydCAtPSBsZW5ndGhCYXNpczsKKyAgICAgICAgZkdyYXBoaWNTdGFydCAtPSBncmFwaGljQmFzaXM7CisgICAgfQorCisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldENoYXJMZW5ndGgoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldEFzY2VudCgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0RGVzY2VudCgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TGVhZGluZygpOworCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRWaXNpYmxlQWR2YW5jZSgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VG90YWxBZHZhbmNlKCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMZWFkaW5nTWFyZ2luKCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc0xlZnRUb1JpZ2h0KCk7CisKKyAgICBwdWJsaWMgaW50IGdldEhlaWdodCgpIHsKKworICAgICAgICByZXR1cm4gZ2V0QXNjZW50KCkrZ2V0RGVzY2VudCgpK2dldExlYWRpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIERyYXdzIHRleHQgd2l0aCBoaWdobGlnaHRpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW5kZXJXaXRoSGlnaGxpZ2h0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpZ2hsaWdodENvbG9yKQorICAgIHsKKyAgICB9CisKKyAgICAvKiogVXNlIGxheW91dCBpbmZvcm1hdGlvbiB0byByZW5kZXIgdGhlIGxpbmUgYXQgeCwgeS4qLworCisgICAgcHVibGljIHZvaWQgcmVuZGVyKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpCisgICAgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbmRlckNhcmV0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igc3Ryb25nQ2FyZXRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBwb2ludCB3aXRoaW4gdGhpcyBsaW5lLCByZXR1cm4gdGhlIGNoYXJhY3RlciBvZmZzZXQgY29ycmVzcG9uZGluZyB0byB0aGF0IHBvaW50LgorICAgICAqCisgICAgICogQHBhcmFtIHJlc3VsdC4gIFRoaXMgbWF5IGJlIG51bGwsIGluIHdoaWNoIGNhc2UgYSBuZXcgVGV4dE9mZnNldCB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiAgICAgICAgVGhpcyBvYmplY3QgaXMgbW9kaWZpZWQgaW4gcGxhY2UsIGFuZCBhbHNvIHJldHVybmVkIGFzIHRoZSBmdW5jdGlvbiByZXN1bHQuCisgICAgICogQHBhcmFtIHRleHQgVGV4dCB0byBpbnNwZWN0LgorICAgICAqIEBwYXJhbSBsaW5lWCBQb3NpdGlvbiBvbiB0aGlzIGxpbmUgcmVsYXRpdmUgdG8gdG9wIGxlZnQgY29ybmVyIG9mIHRoaXMgbGluZS4KKyAgICAgKiBAcGFyYW0gbGluZVkgUG9zaXRpb24gb24gdGhpcyBsaW5lIHJlbGF0aXZlIHRvIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGlzIGxpbmUuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgcGl4ZWxUb09mZnNldChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgc3Ryb25nQ2FyZXRCYXNlbGluZVBvc2l0aW9uKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBSZWN0YW5nbGUgY2FyZXRCb3VuZHMoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSk7CisgICAgCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXROZXh0T2Zmc2V0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01Gb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTUZvcm1hdHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2MWQ3N2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01Gb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDM1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qKgorKgorKiBUaGlzIGNsYXNzIGZvcm1hdHMgbGluZXMgb2YgdGV4dCB0byBhIGdpdmVuIGxlbmd0aC4KKyogSXQgcHJvdmlkZXMgc2VydmljZXMgbmVlZGVkIGZvciBzdGF0aWMgdGV4dCBkaXNwbGF5LAorKiBhbmQgYWxzbyBlZGl0YWJsZSB0ZXh0LCBpbmNsdWRpbmc6ICBkaXNwbGF5aW5nIHRleHQsCisqIHJlZm9ybWF0dGluZyB0ZXh0IGFmdGVyIGFuIGVkaXQsIGNvbnZlcnRpbmcgYmV0d2VlbgorKiBzY3JlZW4gbG9jYXRpb25zIGFuZCBvZmZzZXRzIGludG8gdGhlIHRleHQsIGNhbGN1bGF0aW5nCisqIGFyZWFzIG9mIHRoZSBzY3JlZW4gZm9yICJoaWdobGlnaHRpbmcsIiAgYW5kIGNvbXB1dGluZworKiBvZmZzZXRzIGludG8gdGhlIHRleHQgcmVzdWx0aW5nIGZyb20gYXJyb3cga2V5cy4KKyogPHA+CisqIFRleHQgY2xpZW50cyBpbnN0YW50aWF0ZSB0aGlzIGNsYXNzIHdpdGggYW4KKyogPHR0Pk1Db25zdFRleHQ8L3R0PiBvYmplY3QgYW5kIGEgZm9ybWF0IHdpZHRoLiAgVGV4dAorKiBjYW4gYmUgZm9ybWF0dGVkIHN1Y2ggdGhhdCBhbGwgbGluZXMgZml0IHdpdGhpbiB0aGUKKyogZm9ybWF0IGxlbmd0aC4gIEFsdGVybmF0aXZlbHksIHRleHQgY2FuIGJlIGZvcm1hdHRlZAorKiBzdWNoIHRoYXQgbGluZXMgZW5kIG9ubHkgYXQgdGhlIGVuZCBvZiBwYXJhZ3JhcGhzLgorKiA8cD4KKyogVGhlIGZvcm1hdCBsZW5ndGggaXMgc3BlY2lmaWVkIHdpdGggdGhlIDx0dD5zZXRMaW5lQm91bmQoKTwvdHQ+CisqIG1ldGhvZC4KKyogPHA+CisqIE1ldGhvZHMgaW4gdGhlIGZvcm1hdHRlciB3aGljaCBpbnRlcmFjdCB3aXRoIHRoZSBncmFwaGljcworKiBzeXN0ZW0gZ2VuZXJhbGx5IHRha2UgYXMgYSBwYXJhbXRlciBhIDx0dD5Qb2ludDwvdHQ+IG9iamVjdAorKiB3aGljaCByZXByZXNlbnRzIHRoZSAib3JpZ2luIiBvZiB0aGUgdGV4dCBkaXNwbGF5LiAgVGhlCisqIG9yaWdpbiByZXByZXNlbnRzIHRoZSBsb2NhdGlvbiwgaW4gdGhlIGdyYXBoaWNzIHN5c3RlbSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRleHQsIG9mCisqIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQuCisqIDxwPgorKiBUbyBkaXNwbGF5IHRoZSB0ZXh0LCBjYWxsIDx0dD5kcmF3KCk8L3R0PiwgcGFzc2luZyB0aGUKKyogYSByZWN0YW5nbGUgaW4gd2hpY2ggdG8gZHJhdyBhcyBhIHBhcmFtZXRlci4gIE9ubHkgbGluZXMKKyogb2YgdGV4dCBpbiB0aGUgZHJhdyByZWN0YW5nbGUgd2lsbCBiZSBkcmF3bi4KKyogPHA+CisqIFdoZW4gdGhlIGZvcm1hdHRlcidzIHRleHQgY2hhbmdlcywgaXQgaXMgaW1wb3J0YW50IHRvIGZpcnN0IGNhbGwKKyogPHR0PnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpPC90dD4gdG8gcHJldmVudCB0aGUgRm9ybWF0dGVyIGZyb20KKyogYWNjZXNzaW5nIHRoZSB0ZXh0IGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZC4gIEFmdGVyIG1vZGlmaWNhdGlvbnMgYXJlCisqIGNvbXBsZXRlLAorKiBjYWxsIHRoZSA8dHQ+dXBkYXRlRm9ybWF0KCk8L3R0PiBtZXRob2QgYmVmb3JlIGludm9raW5nIGFueSBvdGhlcgorKiBtZXRob2RzIG9mIHRoZSBmb3JtYXR0ZXIuICA8dHQ+dXBkYXRlRm9ybWF0KCk8L3R0PiByZWZvcm1hdHMgdGhlCisqIG5ldyB0ZXh0LCBmb3JtYXR0aW5nIG5vIG1vcmUgdGV4dCB0aGFuIGlzIG5lY2Vzc2FyeS4KKyogPHA+CisqIFRoZSBmb3JtYXR0ZXIgcHJvdmlkZXMgc2VydmljZXMgZm9yIHJlc3BvbmRpbmcgdG8gdXNlciBpbnB1dCBmcm9tIHRoZQorKiBtb3VzZSBhbmQga2V5Ym9hcmQuICBUaGUgbWV0aG9kIDx0dD5wb2ludFRvVGV4dE9mZnNldCgpPC90dD4gY29udmVydHMKKyogYSBzY3JlZW4gbG9jYXRpb24gdG8gYW4gb2Zmc2V0IGluIHRoZSB0ZXh0LiAgVGhlIG1ldGhvZCA8dHQ+dGV4dE9mZnNldFRvUG9pbnQ8L3R0PgorKiBjb252ZXJ0cyBhbiBvZmZzZXQgaW4gdGhlIHRleHQgdG8gYW4gYXJyYXkgb2YgdHdvIDx0dD5Qb2ludDwvdHQ+IG9iamVjdHMsIHdoaWNoIGNhbiBiZQorKiB1c2VkIHRvIGRyYXcgYSB2ZXJ0aWNsZSBjYXJldCwgZGVub3RpbmcgYW4gaW5zZXJ0aW9uIHBvaW50LiAgPHR0PmhpZ2hsaWdodEFyZWE8L3R0PgorKiBhY2NlcHRzIHR3byBvZmZzZXRzIGludG8gdGhlIHRleHQgYXMgcGFyYW10ZXJzLCBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiA8dHQ+UG9seWdvbjwvdHQ+CisqIG9iamVjdHMgcmVwcmVzZW50aW5nIGFyZWFzIHdoZXJlIHZpc3VhbCBoaWdobGlnaHRpbmcgc2hvdWxkIGJlIGFwcGxpZWQuCisqIDxwPgorKiBGaW5hbGx5LCBmb3IKKyoga2V5Ym9hcmQgaGFuZGxpbmcsIHRoZSA8dHQ+ZmluZE5ld0luc2VydGlvbk9mZnNldCgpPC90dD4gbWV0aG9kIGFjY2VwdHMgYW4gImluaXRpYWwiCisqIG9mZnNldCwgYSAicHJldmlvdXMiIG9mZnNldCwgYXMgd2VsbCBhcyBhIGRpcmVjdGlvbiwgYW5kIHJldHVybnMgYSBuZXcgb2Zmc2V0LiAgVGhlIGRpcmVjdGlvbgorKiBjYW4gYmUgdXAsIGRvd24sIGxlZnQsIG9yIHJpZ2h0LiAgVGhlIHByZXZpb3VzIG9mZnNldCBpcyB0aGUgaW5zZXJ0aW9uIHBvaW50IGxvY2F0aW9uLCBiZWZvcmUKKyogdGhlIGFycm93IGtleSBpcyBwcm9jZXNzZWQuICBUaGUgaW5pdGlhbCBvZmZzZXQgaXMgdGhlIG9mZnNldCB3aGVyZSBhbiB1cCBvciBkb3duIGFycm93CisqIGtleSBzZXF1ZW5jZSBiZWdhbi4gIFVzaW5nIHRoZSBpbml0aWFsIG9mZnNldCBhbGxvd3MgZm9yICJpbnRlbGxpZ2VudCIgaGFuZGxpbmcgb2YgdXAgYW5kIGRvd24KKyogYXJyb3cga2V5cy4KKyogPHA+CisqIEV4YW1wbGVzIG9mIHVzaW5nIHRoZSBNRm9ybWF0dGVyIGNsYXNzCisqIGFyZSBnaXZlbiBpbiB0aGUgPHR0PkFzeW5jRm9ybWF0dGVyPC90dD4gY2xhc3MKKyogZG9jdW1lbnRhdGlvbi4KKyogPHA+CisqIEBhdXRob3IgSm9obiBSYWxleQorKgorKiBAc2VlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dAorKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1Gb3JtYXR0ZXIgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgQXR0cmlidXRlTWFwIGdldERlZmF1bHRWYWx1ZXMoKTsKKworLyoqCisqIERpc3BsYXkgdGV4dCBpbiBkcmF3QXJlYSwgd2l0aCBoaWdobGlnaHRpbmcuCisqIERvZXMgbm90IHJlZm9ybWF0IHRleHQKKyogQHBhcmFtIGcgdGhlIEdyYXBoaWNzIG9iamVjdCBpbiB3aGljaCB0byBkcmF3CisqIEBwYXJhbSBkcmF3QXJlYSB0aGUgcmVjdGFuZ2xlLCBpbiBnJ3MgY29vcmRpbmF0ZSBzeXN0ZW0sIGluIHdoaWNoIHRvIGRyYXcKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiBnJ3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHBhcmFtIHNlbFN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGJlZ2luczsgIHBhc3MgPHR0Pm51bGw8L3R0PiBpZiBubyBzZWxlY3Rpb24KKyogQHBhcmFtIHNlbFN0b3AgdGhlIG9mZnNldCB3aGVyZSB0aGUgY3VycmVudCBzZWxlY3Rpb24gZW5kcworKiBAcGFyYW0gaGlnaGxpZ2h0IHRoZSBjb2xvciBvZiB0aGUgaGlnaGxpZ2h0aW5nCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LCBUZXh0T2Zmc2V0IHNlbFN0b3AsIENvbG9yIGhpZ2hsaWdodCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBkcmF3KEdyYXBoaWNzIGcsIFJlY3RhbmdsZSBkcmF3QXJlYSwgUG9pbnQgb3JpZ2luKTsKKworLyoqCisqIFNwZWNpZnkgd2hldGhlciB0byB3cmFwIGxpbmUgYXQgdGhlIGVkZ2Ugb2YgdGhlIGRlc3RpbmF0aW9uIGFyZWEuCisqIDx0dD50cnVlPC90dD4gbWVhbnMgd3JhcCBsaW5lczsgIDx0dD5mYWxzZTwvdHQ+IG1lYW5zIHRvIGJyZWFrIGxpbmVzCisqIG9ubHkgd2hlbiBhbiBlbmQtb2YtbGluZSBjaGFyYWN0ZXIgaXMgcmVhY2hlZC4KKyogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiB0byBicmVhayBsaW5lcyBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24KKyogYXJlYTsgIDx0dD5mYWxzZTwvdHQ+IG90aGVyd2lzZS4KKyovCisKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRXcmFwKGJvb2xlYW4gd3JhcCk7CisKKy8qKgorKiBSZXR1cm4gd2hldGhlciB0ZXh0IGlzIHdyYXBwZWQgYXQgdGhlIGVkZ2Ugb2YgdGhlIGRlc3RpbmF0aW9uIGFyZWEuCisqIEBzZWUgI3NldFdyYXAKKyovCisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gd3JhcCgpOworCisvKioKKyogU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHBpeGVscyBhbG9uZyB0aGUgImxpbmUgZGltZW5zaW9uIi4KKyogTGluZXMgYXJlIGZvcm1hdHRlZCB0byBmaXQgd2l0aGluIHRoZSBsaW5lIGRpbWVuc2lvbi4gIFRoZQorKiBsaW5lIGRpbWVuc2lvbiBpbiBSb21hbiBzY3JpcHQgaXMgaG9yaXpvbnRhbC4KKyogQHBhcmFtIGxpbmVCb3VuZCB0aGUgbGVuZ3RoLCBpbiBwaXhlbHMsIHRvIHdoaWNoIGxpbmVzIHdpbGwgYmUgZm9ybWF0dGVkCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldExpbmVCb3VuZChpbnQgbGluZUJvdW5kKTsKKworLyoqCisqIFJldHVybiB0aGUgbnVtYmVyIG9mIHBpeGVscyBhbG9uZyB0aGUgbGluZSBkaW1lbnNpb24uCisqIEByZXR1cm4gdGhlIG51bWJlciBvZiBwaXhlbHMgYWxvbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVCb3VuZCgpOworICAgIAorLyoqCisqIEZvcm1hdCB0ZXh0IGRvd24gdG8gZ2l2ZW4gaGVpZ2h0LgorKiBAcGFyYW0gaGVpZ2h0IHRoZSBoZWlnaHQgdG8gd2hpY2ggdGV4dCB3aWxsIGJlIGZvcm1hdHRlZAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBmb3JtYXRUb0hlaWdodChpbnQgaGVpZ2h0KTsKKworLyoqCisqIFJlZm9ybWF0IHRleHQgYWZ0ZXIgYSBjaGFuZ2UuCisqIEFmdGVyIHRoZSBmb3JtYXR0ZXIncyB0ZXh0IGNoYW5nZXMsIGNhbGwgdGhpcyBtZXRob2QgdG8gcmVmb3JtYXQuICBEb2VzCisqIG5vdCByZWRyYXcuCisqIEBwYXJhbSBhZlN0YXJ0IHRoZSBvZmZzZXQgaW50byB0aGUgdGV4dCB3aGVyZSBtb2RpZmljYXRpb24gYmVnYW47ICBpZSwgdGhlCisqIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCB3aGljaCBpcyAiZGlmZmVyZW50IiBpbiBzb21lIHdheS4gIERvZXMgbm90CisqIGhhdmUgdG8gYmUgbm9ubmVnYXRpdmUuCisqIEBwYXJhbSBhZkxlbmd0aCB0aGUgbnVtYmVyIG9mIG5ldyBvciBjaGFuZ2VkIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuICBTaG91bGQgbmV2ZXIKKyogYmUgbGVzcyB0aGFuIDAuCisqIEBwYXJhbSB2aWV3UmVjdCB0aGUgUmVjdGFuZ2xlIGluIHdoaWNoIHRoZSB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkLiAgVGhpcyBpcyBuZWVkZWQgZm9yCisqIHJldHVybmluZyB0aGUgImRhbWFnZWQiIGFyZWEgLSB0aGUgYXJlYSBvZiB0aGUgc2NyZWVuIGluIHdoaWNoIHRoZSB0ZXh0IG11c3QgYmUgcmVkcmF3bi4KKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm4gYSA8dHQ+UmVjdGFuZ2xlPC90dD4gd2hpY2ggc3BlY2lmaWVzIHRoZSBhcmVhIGluIHdoaWNoIHRleHQgbXVzdCBiZQorKiByZWRyYXduIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSB0byB0aGUgdGV4dC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFJlY3RhbmdsZSB1cGRhdGVGb3JtYXQoaW50IGFmU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFmTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSB2aWV3UmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4pOworCisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG1pblkoKTsKKyAgICAKKy8qKgorICogUmV0dXJuIHRoZSBtYXhpbXVtIHZlcnRpY2FsIGNvb3JkaW5hdGUgb2YgdGhlIGRvY3VtZW50IGFyZWEuCisgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG1heFkoKTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWluWCgpOworCisvKioKKyAqIFJldHVybiB0aGUgbWF4aW11bSBob3Jpem9udGFsIGNvb3JkaW5hdGUgb2YgdGhlIGRvY3VtZW50IGFyZWEuCisgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG1heFgoKTsKKworLyoqCisqIFJldHVybiB0aGUgYWN0dWFsIHBpeGVsIGxlbmd0aCBvZiB0aGUgdGV4dCB3aGljaCBoYXMgYmVlbiBmb3JtYXR0ZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZm9ybWF0dGVkSGVpZ2h0KCk7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IGVVcCA9IC0xMCwgZURvd24gPSAxMCwgZUxlZnQgPSAtMSwgZVJpZ2h0ID0gMTsKKworLyoqCisqIEdpdmVuIGEgc2NyZWVuIGxvY2F0aW9uIHAsIHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgbmVhcmVzdCB0byBwLgorKgorKiBUaGUgb2Zmc2V0IG1heSBvciBtYXkgbm90IGluY2x1ZGUgYSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgYSBsaW5lLCBkZXRlcm1pbmVkIGJ5IGFuY2hvciBhbmQgaW5maW5pdGVNb2RlLgorKiBUaGUgbmV3bGluZSBpcyBub3QgaW5jbHVkZWQgaWYgaW5maW5pdGVNb2RlIGlzIHRydWUgYW5kIHRoZSBhbmNob3IgaXMgdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgbmV3bGluZS4KKyoKKyogQHBhcmFtIHJlc3VsdCBUZXh0T2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgSWYgbnVsbCwgb25lIHdpbGwgYmUgYWxsb2NhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorKiBAcGFyYW0gcHggdGhlIHggY29tcG9uZW50IG9mIHRoZSBwb2ludC4KKyogQHBhcmFtIHB5IHRoZSB5IGNvbXBvbmVudCBvZiB0aGUgcG9pbnQuCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gYW5jaG9yIHRoZSBwcmV2aW91cyBvZmZzZXQuICBNYXkgYmUgbnVsbC4gIFVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgbmV3bGluZXMgYXJlIGluY2x1ZGVkLgorKiBAcGFyYW0gaW5maW5pdGVNb2RlIGlmIHRydWUsIHRyZWF0IG5ld2xpbmVzIGF0IGVuZCBvZiBsaW5lIGFzIGhhdmluZyBpbmZpbml0ZSB3aWR0aC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIGludCBweCwgaW50IHB5LCBQb2ludCBvcmlnaW4sIFRleHRPZmZzZXQgYW5jaG9yLCBib29sZWFuIGluZmluaXRlTW9kZSk7CisKKy8qKgorKiBHaXZlbiBhbiBvZmZzZXQsIHJldHVybiB0aGUgUmVjdGFuZ2xlIGJvdW5kaW5nIHRoZSBjYXJldCBhdCB0aGUgb2Zmc2V0LgorKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJuIGEgUmVjdGFuZ2xlIGJvdW5kaW5nIHRoZSBjYXJldC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFJlY3RhbmdsZSBnZXRDYXJldFJlY3QoVGV4dE9mZnNldCBvZmZzZXQsIFBvaW50IG9yaWdpbik7CisKKy8qKgorKiBEcmF3IHRoZSBjYXJldChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9mZnNldCBpbnRvIHRoZSBnaXZlbiBHcmFwaGljcy4KKyogQHBhcmFtIGcgdGhlIEdyYXBoaWNzIHRvIGRyYXcgaW50bworKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgaW4gdGhlIHRleHQgZm9yIHdoaWNoIHRoZSBjYXJldCBpcyBkcmF3bgorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHBhcmFtIHN0cm9uZ0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSBzdHJvbmcgY2FyZXQKKyogQHBhcmFtIHdlYWtDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgd2VhayBjYXJldCAoaWYgYW55KQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBkcmF3Q2FyZXQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igc3Ryb25nQ2FyZXRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpOworCisgICAgLyoqCisgICAgICogQHNlZSAjZ2V0Qm91bmRpbmdSZWN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIExPT1NFID0gZmFsc2U7CisgICAgLyoqCisgICAgICogQHNlZSAjZ2V0Qm91bmRpbmdSZWN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFRJR0hUID0gdHJ1ZTsKKworLyoqCisqIEdpdmVuIHR3byBvZmZzZXRzIGluIHRoZSB0ZXh0LCByZXR1cm4gYSByZWN0YW5nbGUgd2hpY2ggZW5jbG9zZXMgdGhlIGxpbmVzIGNvbnRhaW5pbmcgdGhlIG9mZnNldHMuCisqIE9mZnNldHMgZG8gbm90IG5lZWQgdG8gYmUgb3JkZXJlZCBvciBub25uZWdhdGl2ZS4KKyogQHBhcmFtIG9mZnNldDEgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9mZnNldDIgdGhlIG90aGVyIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gdGlnaHQgaWYgZXF1YWwgdG8gVElHSFQsIHRoZSBib3VuZHMgaXMgYXMgc21hbGwgYXMgcG9zc2libGUuICBJZiBMT09TRSwgdGhlIHdpZHRoCisqIG9mIHRoZSBib3VuZHMgaXMgYWxsb3dlZCB0byBiZSB3aWRlciB0aGFuIG5lY2VzYXJ5LiAgTG9vc2UgYm91bmRzIGFyZSBlYXNpZXIgdG8gY29tcHV0ZS4KKyogQHJldHVybiBhIDx0dD5SZWN0YW5nbGU8L3R0PiwgcmVsYXRpdmUgdG8gPHR0Pm9yaWdpbjwvdHQ+LCB3aGljaCBlbmNsb3NlcyB0aGUgbGluZXMgY29udGFpbmluZyB0aGUgb2Zmc2V0cworKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRCb3VuZGluZ1JlY3QoUmVjdGFuZ2xlIGJvdW5kaW5nUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCk7CisKKy8qKgorKiBDb21wdXRlIHRoZSBvZmZzZXQgcmVzdWx0aW5nIGZyb20gbW92aW5nIGZyb20gYSBwcmV2aW91cyBvZmZzZXQgaW4gZGlyZWN0aW9uIGRpci4KKyogRm9yIGFycm93IGtleXMuCisqIEBwYXJhbSBwcmV2aW91c09mZnNldCB0aGUgaW5zZXJ0aW9uIG9mZnNldCBwcmlvciB0byB0aGUgYXJyb3cga2V5IHByZXNzCisqIEBwYXJhbSBkaXJlY3Rpb24gdGhlIGRpcmVjdGlvbiBvZiB0aGUgYXJyb3cga2V5IChlVXAsIGVEb3duLCBlTGVmdCwgb3IgZVJpZ2h0KQorKiBAcmV0dXJuIG5ldyBvZmZzZXQgYmFzZWQgb24gZGlyZWN0aW9uIGFuZCBwcmV2aW91cyBvZmZzZXQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUZXh0T2Zmc2V0IGZpbmRJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKTsKKworLyoqCisqIENvbXB1dGUgdGhlIG9mZnNldCByZXN1bHRpbmcgZnJvbSBtb3ZpbmcgZnJvbSBhIHByZXZpb3VzIG9mZnNldCwgc3RhcnRpbmcgYXQgYW4gb3JpZ2luYWwgb2Zmc2V0LCBpbiBkaXJlY3Rpb24gZGlyLgorKiBGb3IgYXJyb3cga2V5cy4gIFVzZSB0aGlzIGZvciAic21hcnQiIHVwL2Rvd24ga2V5cy4KKyogQHBhcmFtIHJlc3VsdCBUZXh0T2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgSWYgbnVsbCwgYSBuZXcgVGV4dE9mZnNldCBpcyBjcmVhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorKiBAcGFyYW0gaW5pdGlhbE9mZnNldCBUaGUgb2Zmc2V0IGF0IHdoaWNoIGFuIHVwLWRvd24gYXJyb3cga2V5IHNlcXVlbmNlIGJlZ2FuLgorKiBAcGFyYW0gcHJldmlvdXNPZmZzZXQgVGhlIGluc2VydGlvbiBvZmZzZXQgcHJpb3IgdG8gdGhlIGFycm93IGtleSBwcmVzcy4KKyogQHBhcmFtIGRpcmVjdGlvbiBUaGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisqIEByZXR1cm4gbmV3IG9mZnNldCBiYXNlZCBvbiBkaXJlY3Rpb24gYW5kIHByZXZpb3VzIG9mZnNldChzKS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaW5kZXguCisqIFRoaXMgbWV0aG9kIGhhcyBjb21wbGljYXRlZCBzZW1hbnRpY3MsIGFyaXNpbmcgZnJvbSBub3Qga25vd2luZyAKKyogd2hpY2ggc2lkZSBvZiB0aGUgaW5kZXggdG8gY2hlY2suICBUaGUgaW5kZXggd2lsbCBiZSBnaXZlbiBhbgorKiBpbXBsaWNpdCBBRlRFUiBiaWFzLCB1bmxlc3MgdGhlIGluZGV4IGlzIHRoZSBsYXN0IGluZGV4IGluIHRoZSB0ZXh0LAorKiB0aGUgdGV4dCBsZW5ndGggaXMgbm9uLXplcm8sIGFuZCB0aGVyZSBpcyBub3QgYSBwYXJhZ3JhcGggc2VwYXJhdG9yCisqIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUNvbnRhaW5pbmcoaW50IGluZGV4KTsKKyAgICAKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGdpdmVuIG9mZnNldC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIG51bWJlciBvZiBsaW5lcy4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMaW5lQ291bnQoKTsKKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiB0aGUgZ2l2ZW4gbGluZS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgZ2l2ZW4gbGluZS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBUZWxscyB0aGUgZm9ybWF0dGVyIHRvIHN0b3AgYWNjZXNzaW5nIHRoZSB0ZXh0IHVudGlsIHVwZGF0ZUZvcm1hdCBpcyBjYWxsZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworCisvKioKKyogUmV0dXJuIHRoZSBsaW5lIG51bWJlciBhdCB0aGUgZ2l2ZW4gZ3JhcGhpYyBoZWlnaHQuICBJZiBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuCisqIHRoZSB0ZXh0IGhlaWdodCwgbWF4TGluZU51bWJlciArIDEgaXMgcmV0dXJuZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUF0SGVpZ2h0KGludCBoZWlnaHQpOworCisvKioKKyogUmV0dXJuIHRoZSBncmFwaGljIGhlaWdodCB3aGVyZSB0aGUgZ2l2ZW4gbGluZSBiZWdpbnMuICBJZiB0aGUgbGluZU51bWJlciBpcworKiBtYXhMaW5lTnVtYmVyIHRoZSBlbnRpcmUgdGV4dCBoZWlnaHQgaXMgcmV0dXJuZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUdyYXBoaWNTdGFydChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gbGluZSBpcyBsZWZ0LXRvLXJpZ2h0LgorKiBAcGFyYW0gbGluZU51bWJlciBhIHZhbGlkIGxpbmUKKyogQHJldHVybiB0cnVlIGlmIGxpbmVOdW1iZXIgaXMgbGVmdC10by1yaWdodAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBsaW5lSXNMZWZ0VG9SaWdodChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gYSBuZXcgPHR0Pk1Gb3JtYXR0ZXI8L3R0Pi4KKyogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gZm9ybWF0CisqIEBwYXJhbSBkZWZhdWx0VmFsdWVzIHZhbHVlcyB0byB1c2Ugd2hlbiBjZXJ0YWluIGF0dHJpYnV0ZXMgYXJlIG5vdCBzcGVjaWZpZWQuIAorKiAgICA8dHQ+ZGVmYXVsdFZhbHVlczwvdHQ+IG11c3QgY29udGFpbiB2YWx1ZXMgZm9yIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKKyogICAgPHR0PkZBTUlMWTwvdHQ+LCA8dHQ+V0VJR0hUPC90dD4sIDx0dD5QT1NUVVJFPC90dD4sIDx0dD5TSVpFPC90dD4sIDx0dD5TVVBFUlNDUklQVDwvdHQ+LCAKKyogICAgPHR0PkZPUkVHUk9VTkQ8L3R0PiwgPHR0PlVOREVSTElORTwvdHQ+LCA8dHQ+U1RSSUtFVEhST1VHSDwvdHQ+LAorKiAgICA8dHQ+RVhUUkFfTElORV9TUEFDSU5HPC90dD4sIDx0dD5GSVJTVF9MSU5FX0lOREVOVDwvdHQ+LDx0dD5NSU5fTElORV9TUEFDSU5HPC90dD4sCisqICAgIDx0dD5MSU5FX0ZMVVNIPC90dD4sIDx0dD5MRUFESU5HX01BUkdJTjwvdHQ+LCA8dHQ+VFJBSUxJTkdfTUFSR0lOPC90dD4sIDx0dD5UQUJfUlVMRVI8L3R0PgorKiBAcGFyYW0gbGluZUJvdW5kIGxlbmd0aCB0byB3aGljaCBsaW5lcyBhcmUgZm9ybWF0dGVkCisqIEBwYXJhbSB3cmFwIDx0dD50cnVlPC90dD4gaWYgdGV4dCBzaG91bGQgYmUgImxpbmUgd3JhcHBlZCIgKGZvcm1hdHRlZCB0byBmaXQgZGVzdGluYXRpb24gYXJlYSkKKyovCisgICAgcHVibGljIHN0YXRpYyBNRm9ybWF0dGVyIGNyZWF0ZUZvcm1hdHRlcihNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEFzeW5jRm9ybWF0dGVyKHRleHQsIGRlZmF1bHRWYWx1ZXMsIGxpbmVCb3VuZCwgd3JhcCwgZyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NVGV4dEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMjFkMWQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NVGV4dEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw0MDIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5NYXA7CitKREsxMUlNUE9SVFMqLworCisvKioKKyAqIEFuIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIGFuIE1Db25zdFRleHQuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBNVGV4dEl0ZXJhdG9yIGltcGxlbWVudHMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9uZWFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvLyBtZW1vcnkgbGVhaywgc2luY2UgdGhpcyBjYWNoZSBpcyBuZXZlciBmbHVzaGVkCisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNYXRjaGVyIHsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gbWF0Y2hlcyhNYXAgbGhzLCBNYXAgcmhzLCBPYmplY3QgcXVlcnkpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IGxoc1ZhbCA9IGxocy5nZXQocXVlcnkpOworICAgICAgICAgICAgT2JqZWN0IHJoc1ZhbCA9IHJocy5nZXQocXVlcnkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGhzVmFsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmhzVmFsID09IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGhzVmFsLmVxdWFscyhyaHNWYWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hdGNoZXIgQVRUUl9NQVRDSEVSID0gbmV3IE1hdGNoZXIoKTsKKyAgICAKKyAgICAvLyBOb3QgcXVpdGUgb3B0aW1hbC4gIENvdWxkIGhhdmUgYSBtYXRjaGVyIHRoYXQgd291bGQgZGVjb21wb3NlCisgICAgLy8gYSBzZXQgb25jZSBmb3IgcmVwZWF0ZWQgcXVlcmllcy4gIE9mIGNvdXJzZSB0aGF0IHdvdWxkIHJlcXVpcmUKKyAgICAvLyBhbGxvY2F0aW9uLi4uCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBTRVRfTUFUQ0hFUiA9IG5ldyBNYXRjaGVyKCkgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBtYXRjaGVzKE1hcCBsaHMsIE1hcCByaHMsIE9iamVjdCBxdWVyeSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3QgdXNpbmcgSXRlcmF0b3IgdG8gc2ltcGxpZnkgMS4xIHBvcnQuCisgICAgICAgICAgICBPYmplY3RbXSBlbGVtZW50cyA9ICgoU2V0KXF1ZXJ5KS50b0FycmF5KCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghc3VwZXIubWF0Y2hlcyhsaHMsIHJocywgZWxlbWVudHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH07CisvL0pESzEySU1QT1JUUyovCisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBTdHlsZUNhY2hlIHsKKworICAgICAgICBwcml2YXRlIGludCBmUnVuU3RhcnQgPSAwOworICAgICAgICBwcml2YXRlIGludCBmUnVuTGltaXQgPSAtMTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJhbmdlU3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSYW5nZUxpbWl0OworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGU7CisKKyAgICAgICAgU3R5bGVDYWNoZShNQ29uc3RUZXh0IHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgICAgICBmUmFuZ2VTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgZlJhbmdlTGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHVwZGF0ZShzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlKGludCBwb3MpIHsKKyAgICAgICAgICAgIGlmIChwb3MgPCBmUnVuU3RhcnQgfHwgcG9zID49IGZSdW5MaW1pdCkgeworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICAgICAgICAgIGlmIChwb3MgPCBmUmFuZ2VTdGFydCkgeworICAgICAgICAgICAgICAgICAgICBmUnVuTGltaXQgPSBmUmFuZ2VTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBvcyA+IGZSYW5nZUxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdGFydCA9IGZSYW5nZUxpbWl0OworICAgICAgICAgICAgICAgICAgICBmUnVuTGltaXQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdGFydCA9IE1hdGgubWF4KGZSYW5nZVN0YXJ0LCBmVGV4dC5jaGFyYWN0ZXJTdHlsZVN0YXJ0KHBvcykpOworICAgICAgICAgICAgICAgICAgICBmUnVuU3RhcnQgPSBNYXRoLm1heChmUnVuU3RhcnQsIGZUZXh0LnBhcmFncmFwaFN0YXJ0KHBvcykpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkxpbWl0ID0gTWF0aC5taW4oZlJhbmdlTGltaXQsIGZUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IE1hdGgubWluKGZSdW5MaW1pdCwgZlRleHQucGFyYWdyYXBoTGltaXQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmUnVuU3RhcnQgPCBmUnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBzdHlsZS5hZGRBdHRyaWJ1dGVzKGZUZXh0LmNoYXJhY3RlclN0eWxlQXQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZlN0eWxlID0gZkZvbnRSZXNvbHZlci5hcHBseUZvbnQoc3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IGdldFJ1blN0YXJ0KGludCBwb3MpIHsKKyAgICAgICAgICAgIHVwZGF0ZShwb3MpOworICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBnZXRSdW5MaW1pdChpbnQgcG9zKSB7CisgICAgICAgICAgICB1cGRhdGUocG9zKTsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBNYXAgZ2V0U3R5bGUoaW50IHBvcykgeworICAgICAgICAgICAgdXBkYXRlKHBvcyk7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZUZXh0OworICAgIHByaXZhdGUgQ2hhcmFjdGVySXRlcmF0b3IgZkNoYXJJdGVyOworICAgIHByaXZhdGUgRm9udFJlc29sdmVyIGZGb250UmVzb2x2ZXI7CisgICAgCisgICAgcHJpdmF0ZSBTdHlsZUNhY2hlIGZTdHlsZUNhY2hlOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIE1UZXh0SXRlcmF0b3Igb3ZlciB0aGUgcmFuZ2UgW3N0YXJ0LCBsaW1pdCkuCisgICAgICovCisgICAgcHVibGljIE1UZXh0SXRlcmF0b3IoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBGb250UmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQpIHsKKworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZGb250UmVzb2x2ZXIgPSByZXNvbHZlcjsKKyAgICAgICAgZkNoYXJJdGVyID0gdGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcihzdGFydCwgbGltaXQpOworCisgICAgICAgIGZTdHlsZUNhY2hlID0gbmV3IFN0eWxlQ2FjaGUodGV4dCwgc3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRCZWdpbkluZGV4KCkgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0CisgICAgICogcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0QmVnaW5JbmRleAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmZpcnN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gdG8gZ2V0RW5kSW5kZXgoKS0xIChnZXRFbmRJbmRleCgpIGlmIHRoZSB0ZXh0IGlzIGVtcHR5KQorICAgICAqIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgdGhhdCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgdGV4dCBpcyBlbXB0eQorICAgICAqIEBzZWUgI2dldEVuZEluZGV4CisgICAgICovCisgICAgcHVibGljIGNoYXIgbGFzdCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5sYXN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIChhcyByZXR1cm5lZCBieSBnZXRJbmRleCgpKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzZWUgI2dldEluZGV4CisgICAgICovCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5jcmVtZW50cyB0aGUgaXRlcmF0b3IncyBpbmRleCBieSBvbmUgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHRoZSBuZXcgaW5kZXguICBJZiB0aGUgcmVzdWx0aW5nIGluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwKKyAgICAgKiB0byBnZXRFbmRJbmRleCgpLCB0aGUgY3VycmVudCBpbmRleCBpcyByZXNldCB0byBnZXRFbmRJbmRleCgpIGFuZAorICAgICAqIGEgdmFsdWUgb2YgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIG5ldyBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiBwb3NpdGlvbiBpcyBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dCByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBuZXh0KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLm5leHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gSWYgdGhlIGN1cnJlbnQgaW5kZXggaXMgZ2V0QmVnaW5JbmRleCgpLCB0aGUgaW5kZXgKKyAgICAgKiByZW1haW5zIGF0IGdldEJlZ2luSW5kZXgoKSBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBlcXVhbCB0byBnZXRCZWdpbkluZGV4KCkuCisgICAgICovCisgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIucHJldmlvdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGFuZCByZXR1cm5zIHRoYXQKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQuICBWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbQorICAgICAqIGdldEJlZ2luSW5kZXgoKSB0byBnZXRFbmRJbmRleCgpLiAgQW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93bgorICAgICAqIGlmIGFuIGludmFsaWQgdmFsdWUgaXMgc3VwcGxpZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEVuZEluZGV4KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5zZXRJbmRleChwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3RhcnQgaW5kZXggb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIHRleHQgYmVnaW5zLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5nZXRCZWdpbkluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZW5kIGluZGV4IG9mIHRoZSB0ZXh0LiAgVGhpcyBpbmRleCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIuZ2V0RW5kSW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byBhbGwgYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZlN0eWxlQ2FjaGUuZ2V0UnVuU3RhcnQoZkNoYXJJdGVyLmdldEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoT2JqZWN0IGF0dHJpYnV0ZSkgeworCisgICAgICAgIHJldHVybiBnZXRSdW5TdGFydChhdHRyaWJ1dGUsIEFUVFJfTUFUQ0hFUik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIGludCBnZXRSdW5TdGFydChBdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZSwgQVRUUl9NQVRDSEVSKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIGludCBnZXRSdW5TdGFydChTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIHJldHVybiBnZXRSdW5TdGFydChhdHRyaWJ1dGVzLCBTRVRfTUFUQ0hFUik7CisgICAgfQorLy9KREsxMklNUE9SVFMqLworICAgIAorICAgIHByaXZhdGUgaW50IGdldFJ1blN0YXJ0KE9iamVjdCBxdWVyeSwgTWF0Y2hlciBtYXRjaGVyKSB7CisKKyAgICAgICAgaW50IHJ1blN0YXJ0ID0gZ2V0UnVuU3RhcnQoKTsKKyAgICAgICAgaW50IHJhbmdlU3RhcnQgPSBnZXRCZWdpbkluZGV4KCk7CisgICAgICAgIE1hcCBpbml0aWFsU3R5bGUgPSBnZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAocnVuU3RhcnQgPiByYW5nZVN0YXJ0KSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmVGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0LTEpOworICAgICAgICAgICAgaWYgKCFtYXRjaGVyLm1hdGNoZXMoaW5pdGlhbFN0eWxlLCBzdHlsZSwgcXVlcnkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1blN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVuU3RhcnQgPSBmVGV4dC5jaGFyYWN0ZXJTdHlsZVN0YXJ0KHJ1blN0YXJ0LTEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZVN0YXJ0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIGFsbCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRSdW5MaW1pdChmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuTGltaXQoT2JqZWN0IGF0dHJpYnV0ZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldFJ1bkxpbWl0KGF0dHJpYnV0ZSwgQVRUUl9NQVRDSEVSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChBdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChTZXQgYXR0cmlidXRlcykgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldFJ1bkxpbWl0KGF0dHJpYnV0ZXMsIFNFVF9NQVRDSEVSKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisKKyAgICBwcml2YXRlIGludCBnZXRSdW5MaW1pdChPYmplY3QgcXVlcnksIE1hdGNoZXIgbWF0Y2hlcikgeworCisgICAgICAgIGludCBydW5MaW1pdCA9IGdldFJ1bkxpbWl0KCk7CisgICAgICAgIGludCByYW5nZUxpbWl0ID0gZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgTWFwIGluaXRpYWxTdHlsZSA9IGdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChydW5MaW1pdCA8IHJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuTGltaXQpOworICAgICAgICAgICAgaWYgKCFtYXRjaGVyLm1hdGNoZXMoaW5pdGlhbFN0eWxlLCBzdHlsZSwgcXVlcnkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bkxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVuTGltaXQgPSBmVGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1bkxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmFuZ2VMaW1pdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG1hcCB3aXRoIHRoZSBhdHRyaWJ1dGVzIGRlZmluZWQgb24gdGhlIGN1cnJlbnQKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRBdHRyaWJ1dGVzKCkgeworICAgICAgICByZXR1cm4gZlN0eWxlQ2FjaGUuZ2V0U3R5bGUoZkNoYXJJdGVyLmdldEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lZCBhdHRyaWJ1dGUgZm9yIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZGVmaW5lZC4KKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHRoZSBrZXkgb2YgdGhlIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyByZXF1ZXN0ZWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoT2JqZWN0IGF0dHJpYnV0ZSkgeworICAgICAgICByZXR1cm4gZ2V0QXR0cmlidXRlcygpLmdldChhdHRyaWJ1dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lZCBhdHRyaWJ1dGUgZm9yIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZGVmaW5lZC4KKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHRoZSBrZXkgb2YgdGhlIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyByZXF1ZXN0ZWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoQXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICAgICAgICByZXR1cm4gZ2V0QXR0cmlidXRlcygpLmdldChhdHRyaWJ1dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXMgb2YgYWxsIGF0dHJpYnV0ZXMgZGVmaW5lZCBvbiB0aGUKKyAgICAgKiBpdGVyYXRvcidzIHRleHQgcmFuZ2UuIFRoZSBzZXQgaXMgZW1wdHkgaWYgbm8KKyAgICAgKiBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkLgorICAgICAqLworLy8vKkpESzEySU1QT1JUUworICAgIHB1YmxpYyBTZXQgZ2V0QWxsQXR0cmlidXRlS2V5cygpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbXBsZW1lbnQgdGhpcyBtZXRob2QhIik7CisgICAgfQorLy9KREsxMklNUE9SVFMqLworCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNVGV4dEl0ZXJhdG9yKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEJlZ2luSW5kZXgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEVuZEluZGV4KCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvUGFyYWdyYXBoUmVuZGVyZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMmI4MDBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuZm9udC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LkxpbmVCcmVha01lYXN1cmVyOworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitKREsxMUlNUE9SVFMqLworCisvKioKKyAqIFBhcmFncmFwaFJlbmRlcmVyIGlzIGEgZmFjdG9yeSBmb3IgTGF5b3V0SW5mbyBvYmplY3RzLgorICovCithYnN0cmFjdCBjbGFzcyBQYXJhZ3JhcGhSZW5kZXJlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIElmIHJlbmRlcmVycyBjYW4gZXZlciB0cmF2ZWwgd2l0aCB0aGVpciBzdHlsZXMsIHRoZW4gdGhpcyBhdHRyaWJ1dGUgd2lsbCBkZW5vdGUgYQorICAgIC8vIHJlbmRlcmVyLiAgRm9yIG5vdywgcmVuZGVyZXJzIGFyZSBub3QgYWRkZWQgYXMgc3R5bGVzIHNvIHRoaXMgaXNuJ3QgbmVlZGVkLgorICAgIC8vc3RhdGljIGZpbmFsIFRleHRBdHRyaWJ1dGUgUEFSQUdSQVBIX1JFTkRFUkVSID0gbmV3IFRleHRBdHRyaWJ1dGUoIlBhcmFncmFwaF9SZW5kZXJlciIpIHt9OworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHJlbmRlcmVyIHRvIHVzZSBpbmZvcm1hdGlvbiBmcm9tIHRoaXMgc3R5bGUuIFNpbmNlIHJlbmRlcmVycyBtYXkgYmUgc2hhcmVkLCB5b3Ugc2hvdWxkCisgICAgICogbWFrZSBzdXJlIHRoZSByZW5kZXJlciBpcyBpbml0aWFsaXplZCBmb3IgdGhlIHN0eWxlIHlvdSB3aXNoIHRvIHJlbmRlciBiZWZvcmUgeW91IHVzZSBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0UmVuZGVyZXIoQXR0cmlidXRlTWFwIHBTdHlsZSkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIExheW91dEluZm8gZm9yIHRoZSBwYXJhZ3JhcGggcmVwcmVzZW50ZWQgYnkKKyAgICAgKiBtZWFzdXJlci4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCBjb250YWluaW5nIHRoZSBwYXJhZ3JhcGgKKyAgICAgKiBAcGFyYW0gbGF5b3V0VG9SZXVzZSBjbGllbnRzIGNhbiBwYXNzIGluIGEgTGF5b3V0SW5mbworICAgICAqIHdoaWNoIHRoZSBQYXJhZ3JhcGhSZW5kZXJlciBtYXkgY2hvb3NlIHRvIHJldXNlCisgICAgICogYW5kIHJldHVybi4gIElmIG51bGwsIGEgbmV3IExheW91dEluZm8gd2lsbCBiZQorICAgICAqIGNyZWF0ZWQgYW5kIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBtZWFzdXJlciB0aGUgTGluZUJyZWFrTWVhc3VyZXIgZm9yIHRoaXMgcGFyYWdyYXBoLgorICAgICAqICBDdXJyZW50IHBvc2l0aW9uIHNob3VsZCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIHRoZSBsaW5lLgorICAgICAqICBJZiBudWxsLCBhIDAtbGVuZ3RoIGxpbmUgaXMgZ2VuZXJhdGVkLiAgSWYgbWVhc3VyZXIgaXMgbnVsbAorICAgICAqICB0aGVuIHBhcmFncmFwaFN0YXJ0IGFuZCBwYXJhZ3JhcGhMaW1pdCBzaG91bGQgYmUgZXF1YWwuCisgICAgICogQHBhcmFtIGZyYyB0aGUgRm9udFJlbmRlckNvbnRleHQgdXNlZCBmb3IgbWVhc3VyZXJtZW50CisgICAgICogQHBhcmFtIHBhcmFncmFwaFN0YXJ0IHRoZSBpbmRleCBpbiB0aGUgdGV4dCB3aGVyZSB0aGUKKyAgICAgKiBjdXJyZW50IHBhcmFncmFwaCBiZWdpbnMKKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoTGltaXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgKiBhZnRlciB0aGUgY3VycmVudCBwYXJhZ3JhcGgKKyAgICAgKiBAcGFyYW0gdG90YWxGb3JtYXRXaWR0aCB0aGUgd2lkdGggaW4gd2hpY2ggdGhlIGxpbmUgc2hvdWxkIGZpdAorICAgICAqIEBwYXJhbSBsaW5lQm91bmQgd2hlcmUgcmlnaHQtYWxpZ25lZCBsaW5lcyBhcmUgYWxpZ25lZAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBMYXlvdXRJbmZvIGxheW91dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dEluZm8gbGF5b3V0VG9SZXVzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0b3RhbEZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXN0TVRleHRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXN0TVRleHRJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhZjY3NmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKKworLyoqCisgKiBUZXN0IGZvciBNVGV4dEl0ZXJhdG9yLgorICovCitjbGFzcyBUZXN0TVRleHRJdGVyYXRvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEZvbnRSZXNvbHZlciBGT05UX01BUFBFUjsKKyAgICBzdGF0aWMgeworICAgICAgICBBdHRyaWJ1dGVNYXAgYXR0cnMgPSBUZXh0UGFuZWwuZ2V0RGVmYXVsdFNldHRpbmdzKCkuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgICAgICBGT05UX01BUFBFUiA9IG5ldyBGb250UmVzb2x2ZXIoYXR0cnMpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjb21wYXJlSXRlclRvVGV4dChNVGV4dEl0ZXJhdG9yIGl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgIGZpbmFsIGludCBiZWdpbkluZGV4ID0gaXRlci5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIGZpbmFsIGludCBlbmRJbmRleCA9IGl0ZXIuZ2V0RW5kSW5kZXgoKTsKKworICAgICAgICBjaGFyIGNoID0gaXRlci5zZXRJbmRleChiZWdpbkluZGV4KTsKKworICAgICAgICBmb3IgKGludCBpPWJlZ2luSW5kZXg7IGkgPCBlbmRJbmRleDsgaSsrKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoY2grICIgIik7CisgICAgICAgICAgICBpZiAoY2ggIT0gdGV4dC5hdChpKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2hhcmFjdGVycyBhcmUgbm90IHRoZSBzYW1lLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggPSBpdGVyLm5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaCAhPSBNVGV4dEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmF0b3IgaXMgbm90IGRvbmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPWVuZEluZGV4LTE7IGkgPj0gYmVnaW5JbmRleDsgaS0tKSB7CisgICAgICAgICAgICBjaCA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludChjaCsgIiAiKTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB0ZXh0LmF0KGkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWNrd2FyZCBpdGVyYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaXRlci5zZXRJbmRleChiZWdpbkluZGV4KTsKKworICAgICAgICBpbnQgcnVuTGltaXQ7CisgICAgICAgIGZvciAoaW50IHJ1blN0YXJ0ID0gYmVnaW5JbmRleDsgcnVuU3RhcnQgPCBlbmRJbmRleDsgcnVuU3RhcnQgPSBydW5MaW1pdCkgeworCisgICAgICAgICAgICBydW5MaW1pdCA9IE1hdGgubWluKGVuZEluZGV4LCB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpKTsKKworICAgICAgICAgICAgaWYgKGl0ZXIuZ2V0UnVuU3RhcnQoKSAhPSBydW5TdGFydCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpdGVyLmdldFJ1blN0YXJ0KCkgKyAiOyAiICsgcnVuU3RhcnQpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiZ2V0UnVuU3RhcnQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXRlci5nZXRSdW5MaW1pdCgpICE9IHJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGl0ZXIuZ2V0UnVuTGltaXQoKSArICI7ICIgKyBydW5MaW1pdCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJnZXRSdW5MaW1pdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0KTsKKworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuZ2V0SW5kZXgoKSA8IHJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHJlc29sdmVkID0gRk9OVF9NQVBQRVIuYXBwbHlGb250KHN0eWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWl0ZXIuZ2V0QXR0cmlidXRlcygpLmVxdWFscyhyZXNvbHZlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIkhlbGxvIHRoZXJlISIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgdGV4dC5yZXBsYWNlKDIsIDIsICdWJywgYm9sZCk7CisKKyAgICAgICAgTVRleHRJdGVyYXRvciBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IodGV4dCwgRk9OVF9NQVBQRVIsIDAsIHRleHQubGVuZ3RoKCkpOworICAgICAgICBjb21wYXJlSXRlclRvVGV4dChpdGVyLCB0ZXh0KTsKKworICAgICAgICB0ZXh0LnJlcGxhY2UoNiwgOCwgbmV3IFN0eWxlZFRleHQoIkFMTF9CT0xEIiwgYm9sZCksIDAsIDgpOworICAgICAgICBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IodGV4dCwgRk9OVF9NQVBQRVIsIDEsIHRleHQubGVuZ3RoKCktMyk7CisgICAgICAgIGNvbXBhcmVJdGVyVG9UZXh0KGl0ZXIsIHRleHQpOworCisgICAgICAgIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcih0ZXh0LCBGT05UX01BUFBFUiwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGNvbXBhcmVJdGVyVG9UZXh0KGl0ZXIsIHRleHQpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBuZXcgVGVzdE1UZXh0SXRlcmF0b3IoKS50ZXN0KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUEFTU0VEIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXh0T2Zmc2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMTRlYjAxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXh0T2Zmc2V0LmphdmEKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXZpc2lvbjogMDMgMS4xNiByaWNodGV4dC9UZXh0T2Zmc2V0LmphdmEsIHJpY2h0ZXh0LCByaWNodGV4dAorCisvKgorICAgIDkvNS85NiB7amJyfSBhZGRlZCBzZXQgYW5kIGVxdWFscyBtZXRob2RzCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworLyoqCisgKiBBIFRleHRPZmZzZXQgaW5kaWNhdGVzIGJvdGggYW4gaW50ZWdlciBvZmZzZXQgaW50byB0ZXh0IGFuZCBhIHBsYWNlbWVudAorICogb24gb25lIG9mIHRoZSBjaGFyYWN0ZXJzIGFkamFjZW50IHRvIHRoZSBvZmZzZXQuICBBbiBvZmZzZXQgaXMgYQorICogcG9zaXRpb24gYmV0d2VlbiB0d28gY2hhcmFjdGVyczsgIG9mZnNldCBuCisgKiBpcyBiZXR3ZWVuIGNoYXJhY3RlciBuLTEgYW5kIGNoYXJhY3RlciBuLiAgVGhlIHBsYWNlbWVudCBzcGVjaWZpZXMgd2hldGhlcgorICogaXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjaGFyYWN0ZXIKKyAqIGFmdGVyIHRoZSBvZmZzZXQKKyAqIChjaGFyYWN0ZXIgbikgb3IgdGhlIGNoYXJhY3RlciBiZWZvcmUgdGhlIG9mZnNldCAoY2hhcmFjdGVyIG4tMSkuCisgKiA8cD4KKyAqIEtub3dpbmcgd2hpY2ggY2hhcmFjdGVyIHRoZSBUZXh0T2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aCBpcyBuZWNlc3NhcnkKKyAqIHdoZW4gZGlzcGxheWluZyBjYXJldHMuICBJbiBiaWRpcmVjdGlvbmFsIHRleHQsIGEgc2luZ2xlIG9mZnNldCBtYXkKKyAqIGhhdmUgdHdvIGRpc3RpbmN0IGNhcmV0cy4gIEFsc28sIGluIG11bHRpbGluZSB0ZXh0LCBhbiBvZmZzZXQgYXQgYSBsaW5lCisgKiBicmVhayBoYXMgYSBwb3NzaWJsZSBjYXJldCBvbiBlYWNoIGxpbmUuCisgKiA8cD4KKyAqIE1vc3QgY2xpZW50cyB3aWxsIG5vdCBiZSBpbnRlcmVzdGVkIGluIHRoZSBwbGFjZW1lbnQsIGFuZCB3aWxsIGp1c3QgdXNlCisgKiB0aGUgb2Zmc2V0LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dE9mZnNldAoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGNoYXJhY3RlcgorICAgICAqIDxjb2RlPmZPZmZzZXQgLSAxPC9jb2RlPiAtIGllIHRoZSBjaGFyYWN0ZXIgYmVmb3JlIGl0cyBvZmZzZXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIEJFRk9SRV9PRkZTRVQgPSB0cnVlOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGNoYXJhY3RlcgorICAgICAqIDxjb2RlPmZPZmZzZXQ8L2NvZGU+IC0gaWUgdGhlIGNoYXJhY3RlciBhZnRlciBpdHMgb2Zmc2V0LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBBRlRFUl9PRkZTRVQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgaW50byB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZPZmZzZXQgPSAwOworCisgICAgLyoqCisgICAgICogVGhlIHBsYWNlbWVudCAtIGJlZm9yZSBvciBhZnRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBmUGxhY2VtZW50ID0gQUZURVJfT0ZGU0VUOworCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRleHRPZmZzZXQKKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0IHRvIHJlcHJlc2VudC4gIFBsYWNlbWVudCBpcyBpbXBsaWNpdGx5IEFGVEVSX09GRlNFVC4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9mZnNldCBpcyBuZWdhdGl2ZSBpbiBUZXh0T2Zmc2V0IGNvbnN0cnVjdG9yLiIpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisKKyAgICAgICAgZlBsYWNlbWVudCA9IEFGVEVSX09GRlNFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCBhdCAwLCB3aXRoIHBsYWNlbWVudCBBRlRFUl9PRkZTRVQuCisgICAgKi8KKyAgICBwdWJsaWMgVGV4dE9mZnNldCgpIHsKKyAgICAgICAgdGhpcygwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgYW5kIHBsYWNlbWVudC4KKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisgICAgKiBAcGFyYW0gcGxhY2VtZW50IGluZGljYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNhcmV0OyBvbmUgb2YgQkVGT1JFX09GRlNFVCBvciBBRlRFUl9PRkZTRVQKKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUZXh0T2Zmc2V0IGNvbnN0cnVjdG9yIG9mZnNldCA8IDA6ICIgKyBvZmZzZXQpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIGZQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRleHRPZmZzZXQgZnJvbSBhbiBleGlzdGluZyBvbmUuCisgICAgKiBAcGFyYW0gcmhzIHRoZSBUZXh0T2Zmc2V0IHRvIGNvcHkKKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KFRleHRPZmZzZXQgcmhzKSB7CisKKyAgICAgICAgdGhpcyhyaHMuZk9mZnNldCwgcmhzLmZQbGFjZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgVGV4dE9mZnNldAorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQKKyAgICAqIEBwYXJhbSBwbGFjZW1lbnQgaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQ7IG9uZSBvZiBCRUZPUkVfT0ZGU0VUIG9yIEFGVEVSX09GRlNFVAorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0T2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUZXh0T2Zmc2V0IHNldE9mZnNldCBvZmZzZXQgPCAwOiAiICsgb2Zmc2V0KTsKKworICAgICAgICBmT2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICBmUGxhY2VtZW50ID0gcGxhY2VtZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbHMoKFRleHRPZmZzZXQpb3RoZXIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIG9mZnNldCBhbmQgcGxhY2VtZW50IGFyZSB0aGUgc2FtZS4KKyAgICAqCisgICAgKiBAcGFyYW0gb3RoZXIgb2Zmc2V0IHRvIGNvbXBhcmUgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIGJvdGggb2Zmc2V0cyBhcmUgZXF1YWwKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhUZXh0T2Zmc2V0IG90aGVyKSB7CisKKyAgICAgICAgcmV0dXJuIGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IG90aGVyLmZQbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoQ29kZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gZlBsYWNlbWVudD09QUZURVJfT0ZGU0VUPyBmT2Zmc2V0IDogLWZPZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIG9mZnNldCBpcyAnZ3JlYXRlclRoYW4nIG90aGVyLiAgSWYgdGhlIGZPZmZzZXQgZmllbGRzIGFyZSBlcXVhbCwgdGhlCisgICAgKiBwbGFjZW1lbnQgZmllbGQgaXMgY29uc2lkZXJlZCwgYW5kIEFGVEVSX09GRlNFVCBpcyBjb25zaWRlcmVkICdncmVhdGVyVGhhbicgQkVGT1JFX09GRlNFVC4KKyAgICAqCisgICAgKiBAcGFyYW0gb3RoZXIgdGhlIG90aGVyIG9mZnNldAorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGFwcGVhcnMgYWZ0ZXIgb3RoZXIKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdyZWF0ZXJUaGFuKFRleHRPZmZzZXQgb3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gZk9mZnNldCA+IG90aGVyLmZPZmZzZXQgfHwKKyAgICAgICAgICAgIChmT2Zmc2V0ID09IG90aGVyLmZPZmZzZXQgJiYgZlBsYWNlbWVudCA9PSBBRlRFUl9PRkZTRVQgJiYgb3RoZXIuZlBsYWNlbWVudCA9PSBCRUZPUkVfT0ZGU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGlzICdsZXNzVGhhbicgb3RoZXIuICBJZiB0aGUgZk9mZnNldCBmaWVsZHMgYXJlIGVxdWFsLCB0aGUKKyAgICAqIHBsYWNlbWVudCBmaWVsZCBpcyBjb25zaWRlcmVkLCBhbmQgQkVGT1JFX09GRlNFVCBpcyBjb25zaWRlcmVkICdsZXNzVGhhbicgQUZURVJfT0ZGU0VULgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgYXBwZWFycyBiZWZvcmUgb3RoZXIKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlc3NUaGFuKFRleHRPZmZzZXQgb3RoZXIpIHsKKworICAgICAgICByZXR1cm4gZk9mZnNldCA8IG90aGVyLmZPZmZzZXQgfHwKKyAgICAgICAgICAgIChmT2Zmc2V0ID09IG90aGVyLmZPZmZzZXQgJiYgZlBsYWNlbWVudCA9PSBCRUZPUkVfT0ZGU0VUICYmIG90aGVyLmZQbGFjZW1lbnQgPT0gQUZURVJfT0ZGU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvcHkgdGhlIHZhbHVlIG9mIGFub3RoZXIgVGV4dE9mZnNldCBpbnRvIHRoaXMKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgVGV4dE9mZnNldCB0byBjb3B5CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhc3NpZ24oVGV4dE9mZnNldCBvdGhlcikgeworICAgICAgICBmT2Zmc2V0ID0gb3RoZXIuZk9mZnNldDsKKyAgICAgICAgZlBsYWNlbWVudCA9IG90aGVyLmZQbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworCisgICAgICAgIHJldHVybiAiWyIgKyAoZlBsYWNlbWVudCA/ICJiZWZvcmUgIiA6ICJhZnRlciAiKSArIGZPZmZzZXQgKyAiXSI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2YxNmJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD48IS0tICBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0tPgorCis8dGl0bGU+QzpJQ1U0SiAubGFuZyBQYWNrYWdlIE92ZXJ2aWV3PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorCis8cD5DbGFzc2VzIHRoYXQgZm9ybWF0IHRleHQgaW4gYSBiYWNrZ3JvdW5kIHRocmVhZCBhbmQgcmVuZGVyIHRoZSBmb3JtYXR0ZWQgdGV4dCB0byBhIGdyYXBoaWNzLjwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvRm9udFV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODEwOTljMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvRm9udFV0aWxzLmphdmEKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dDsKKworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBGb250VXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIEZvbnQgZ2V0Rm9udChqYXZhLnV0aWwuTWFwIGF0dHJpYnV0ZXMpIHsKKworICAgICAgICByZXR1cm4gRm9udC5nZXRGb250KGF0dHJpYnV0ZXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0dyYXBoaWNzMkRDb252ZXJzaW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0dyYXBoaWNzMkRDb252ZXJzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWQ3Mzk4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YQpAQCAtMCwwICsxLDU0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKK2ltcG9ydCBqYXZhLmF3dC5QYWludDsKKworLyoqCisgKiBUaGlzIGNsYXNzIGFsbG93cyBKREsgMS4xIGNvZGUgdG8gdXNlIGEgImZha2UiIEdyYXBoaWNzMkQKKyAqIGZvciBzb3VyY2UtY29kZSBjb21wYXRpYmlsaXR5IHdpdGggSmF2YTIgY29kZS4gIE9uIEphdmEyIGl0J3MKKyAqIGEgdHJpdmlhbCBjbGFzcy4gIFRoZSBKREsgMS4xIHZlcnNpb24gb2YgdGhpcyBjbGFzcyBkb2VzIGludGVyZXN0aW5nCisgKiB3b3JrLgorICovIAorcHVibGljIGZpbmFsIGNsYXNzIEdyYXBoaWNzMkRDb252ZXJzaW9uIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBHcmFwaGljczJEIGdldEdyYXBoaWNzMkQoR3JhcGhpY3MgZykgeworICAgICAgICByZXR1cm4gKEdyYXBoaWNzMkQpIGc7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBHcmFwaGljcyBnZXRHcmFwaGljcyhHcmFwaGljczJEIGcpIHsKKyAgICAgICAgcmV0dXJuIGc7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2lsbCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgUGFpbnQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgZ2V0Q29sb3JTdGF0ZShHcmFwaGljczJEIGcpIHsKKworICAgICAgICByZXR1cm4gZy5nZXRQYWludCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YXRlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUGFpbnQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlc3RvcmVDb2xvclN0YXRlKEdyYXBoaWNzMkQgZywgT2JqZWN0IHN0YXRlKSB7CisKKyAgICAgICAgZy5zZXRQYWludCgoUGFpbnQpIHN0YXRlKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZUtleS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZUtleS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwZWZjNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CisKKy8qKgorICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIGNhbm5vbmljYWwgbWFwcGluZyBiZXR3ZWVuIGZpZWxkcyBpbiBUZXh0QXR0cmlidXRlCisgKiBhbmQgaW5zdGFuY2VzIG9mIGl0c2VsZi4gIEl0IGlzIHVzZWQgYnkgQXR0cmlidXRlTWFwIHRvIHNlcmlhbGl6ZQorICogYW5kIGRlc2VyaWFsaXplIFRleHRBdHRyaWJ1dGUgdG8gcHJlc2VydmUgdW5pcXVlbmVzcyBvZiBUZXh0QXR0cmlidXRlCisgKiBpbnN0YW5jZXMgKGllIHNvIHRoYXQgVGV4dEF0dHJpYnV0ZSBpbnN0YW5jZXMgcmVtYWluIHNpbmdsZXRvbnMpLAorICogYW5kIHRvIHByb3ZpZGUgY29tcGF0YWJpbGl0eSBiZXR3ZWVuIDEuMSBhbmQgMS4yIHZlcnNpb25zIG9mCisgKiBUZXh0QXR0cmlidXRlLgorICogPHA+CisgKiBFeGFtcGxlIHVzZSAtIGluc3RlYWQgb2YgZG9pbmcgdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgb3V0LndyaXRlT2JqZWN0KGFuQXR0cmlidXRlKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIGRvIHRoaXM6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIG91dC53cml0ZU9iamVjdChBdHRyaWJ1dGVLZXkubWFwQXR0cmlidXRlVG9LZXkoYW5BdHRyaWJ1dGUpKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIFNpbWlsYXJseSwgaW5zdGVhZCBvZiB0aGlzOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBhbkF0dHJpYnV0ZSA9IGluLnJlYWRPYmplY3QoKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIGRvIHRoaXM6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIGFuQXR0cmlidXRlID0gQXR0cmlidXRlS2V5Lm1hcEtleVRvQXR0cmlidXRlKGluLnJlYWRPYmplY3QoKSk7CisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIElmIGFuQXR0cmlidXRlIGlzIG5vdCBhIGtub3duIFRleHRBdHRyaWJ1dGUsIHRoZW4gPGNvZGU+bWFwQXR0cmlidXRlVG9LZXk8L2NvZGU+CisgKiB3aWxsIGp1c3QgcmV0dXJuIGl0cyBhcmd1bWVudC4gIFNpbWlsYXJseSwgPGNvZGU+bWFwS2V5VG9BdHRyaWJ1dGU8L2NvZGU+IHdpbGwKKyAqIHJldHVybiBpdHMgYXJndW1lbnQgaWYgdGhlIGFyZ3VtZW50IGlzIG5vdCBhIGtub3duIEF0dHJpYnV0ZUtleS4KKyAqLworCisvKnB1YmxpYyovIGZpbmFsIGNsYXNzIEF0dHJpYnV0ZUtleSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisKKy8qCisgICAgSW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgdHdvIHBhcmFsbGVsIFZlY3RvcnMgYXJlCisgICAgbWFpbnRhaW5lZC4gIFRleHRBdHRyaWJ1dGUoaSkgbWFwcyB0byBBdHRyaWJ1dGVLZXkoaSkuCisgICAgRm9yIGNvbXBhdGFiaWxpdHkgd2l0aCBleGlzdGluZyBkYXRhLCB0aGlzIG1hcHBpbmcgbXVzdAorICAgIGJlIG1haW50YWluZWQgaW4gdGhlIGZ1dHVyZSEgIFNvLCB3aGVuIG5ldyBhdHRyaWJ1dGVzCisgICAgYXJlIGFkZGVkLCBhZGQgdGhlbSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgorKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDM3NzIzNzEyNTMyNzcxMDcyOTRMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gZmdUZXh0QXR0cmlidXRlczsKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBmZ0F0dHJpYnV0ZUtleXM7CisKKyAgICBzdGF0aWMgeworICAgICAgICBmZ1RleHRBdHRyaWJ1dGVzID0gbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRk9OVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkFNSUxZLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlBPU1RVUkUsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNJWkUsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5ELAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkNIQVJfUkVQTEFDRU1FTlQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkVYVFJBX0xJTkVfU1BBQ0lORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLk1JTl9MSU5FX1NQQUNJTkcsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTiwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuQklESV9FTUJFRERJTkcsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT04sCisgICAgICAgIH07CisKKyAgICAgICAgZmluYWwgaW50IGF0dHJDb3VudCA9IGZnVGV4dEF0dHJpYnV0ZXMubGVuZ3RoOworICAgICAgICBmZ0F0dHJpYnV0ZUtleXMgPSBuZXcgT2JqZWN0W2F0dHJDb3VudF07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYXR0ckNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZnQXR0cmlidXRlS2V5c1tpXSA9IG5ldyBBdHRyaWJ1dGVLZXkoaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIFRleHRBdHRyaWJ1dGUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4ga2V5LgorICAgICAqIElmIGtleSBpcyBhbiBpbnN0YW5jZSBvZiBBdHRyaWJ1dGVLZXkgaXQgd2lsbCBiZSBtYXBwZWQgdG8KKyAgICAgKiBhIFRleHRBdHRyaWJ1dGUuICBPdGhlcndpc2UsIHRoZSBrZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHRvIG1hcCB0byBhIFRleHRBdHRyaWJ1dGUgZmllbGQKKyAgICAgKiBAcmV0dXJuIHRoZSBUZXh0QXR0cmlidXRlIGZvciA8Y29kZT5rZXk8L2NvZGU+IGlmIDxjb2RlPmtleTwvY29kZT4KKyAgICAgKiAgICBpcyBhbiBBdHRyaWJ1dGVLZXk7IG90aGVyd2lzZSA8Y29kZT5rZXk8L2NvZGU+IGlzIHJldHVybmVkCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgT2JqZWN0IG1hcEtleVRvQXR0cmlidXRlKE9iamVjdCBrZXkpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgQXR0cmlidXRlS2V5IGFLZXkgPSAoQXR0cmlidXRlS2V5KSBrZXk7CisgICAgICAgICAgICBpZiAoYUtleS5mSWQgPCBmZ1RleHRBdHRyaWJ1dGVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmZ1RleHRBdHRyaWJ1dGVzW2FLZXkuZklkXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiBhdHRyaWJ1dGUgaXMgYSBrbm93biBUZXh0QXR0cmlidXRlLCByZXR1cm4gYW4gQXR0cmlidXRlS2V5CisgICAgICogZm9yIGl0LiAgT3RoZXJ3aXNlIHRoZSBvYmplY3QgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGF0dHJpYnV0ZSB0aGUgYXR0cmlidXRlIHRvIG1hcCB0byBhbiBBdHRyaWJ1dGVLZXkKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZUtleSBmb3IgPGNvZGU+YXR0cmlidXRlPC9jb2RlPgorICAgICAqICAgICBpZiA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+IGlzIGEga25vd24gYXR0cmlidXRlOyBvdGhlcndpc2UKKyAgICAgKiAgICAgPGNvZGU+YXR0cmlidXRlPC9jb2RlPiBpcyByZXR1cm5lZAorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE9iamVjdCBtYXBBdHRyaWJ1dGVUb0tleShPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgZmluYWwgaW50IGF0dHJDb3VudCA9IGZnVGV4dEF0dHJpYnV0ZXMubGVuZ3RoOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IGF0dHJDb3VudDsgaW5kZXggKz0gMSkgeworICAgICAgICAgICAgaWYgKGZnVGV4dEF0dHJpYnV0ZXNbaW5kZXhdLmVxdWFscyhhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZnQXR0cmlidXRlS2V5c1tpbmRleF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBhdHRyaWJ1dGU7CisgICAgfQorCisKKyAgICBwcml2YXRlIGludCBmSWQ7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZUtleShpbnQgaWQpIHsKKworICAgICAgICBmSWQgPSBpZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKChBdHRyaWJ1dGVLZXkpcmhzKS5mSWQgPT0gZklkOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBmSWQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVNYXAuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZTIxOWNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhCkBAIC0wLDAgKzEsNTI3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworCisvKioKKyAqIEF0dHJpYnV0ZU1hcCBpcyBhbiBpbW11dGFibGUgTWFwLiAgQWRkaXRpb25hbGx5LCB0aGVyZSBhcmUKKyAqIHNldmVyYWwgbWV0aG9kcyBmb3IgY29tbW9uIG9wZXJhdGlvbnMgKHVuaW9uLAorICogcmVtb3ZlLCBpbnRlcnNlY3QpOyAgdGhlc2UgbWV0aG9kcyByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcAorICogaW5zdGFuY2VzLgorICogPHA+CisgKiBBbHRob3VnaCBhbnkgbm9uLW51bGwgT2JqZWN0IGNhbiBiZSBhIGtleSBvciB2YWx1ZSBpbiBhbgorICogQXR0cmlidXRlTWFwLCB0eXBpY2FsbHkgdGhlIGtleXMgYXJlIGZpZWxkcyBvZiBUZXh0QXR0cmlidXRlLgorICogQHNlZSBUZXh0QXR0cmlidXRlCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVNYXAgaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5NYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA5NTEwODAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGVyclN0cmluZyA9ICJTdHlsZVNldHMgYXJlIGltbXV0YWJsZS4iOworCisgICAgLy8gVGhpcyBpcyBwYXNzZWQgdG8gdGhlIEhhc2h0YWJsZSBjb25zdHJ1Y3RvciBhcyB0aGUKKyAgICAvLyBsb2FkIGZhY3RvciBhcmd1bWVudC4gIEl0IGlzIGNob3NlbiB0byBhdm9pZCByZXNpemluZworICAgIC8vIHRoZSBIYXNodGFibGUgd2hlbmV2ZXIgcG9zc2libGUuICBJIHRoaW5rIHRoYXQgMQorICAgIC8vIGRvZXMgdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9BRF9GQUNUT1IgPSAxOworCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3R5bGVUYWJsZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBBdHRyaWJ1dGVTZXQgY2FjaGVkS2V5U2V0ID0gbnVsbDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBDb2xsZWN0aW9uIGNhY2hlZFZhbHVlQ29sbGVjdGlvbiA9IG51bGw7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgU2V0IGNhY2hlZEVudHJ5U2V0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEFuIGVtcHR5IEF0dHJpYnV0ZU1hcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBFTVBUWV9BVFRSSUJVVEVfTUFQID0gbmV3IEF0dHJpYnV0ZU1hcCgpOworCisvLyA9PT09PT09PT09PT09PQorLy8gQ29uc3RydWN0b3JzCisvLyA9PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3LCBlbXB0eSBBdHRyaWJ1dGVNYXAuICBFTVBUWV9TVFlMRV9TRVQgY2FuIGJlIHVzZWQKKyAgICAgKiBpbiBwbGFjZSBvZiBhbiBBdHRyaWJ1dGVNYXAgcHJvZHVjZWQgYnkgdGhpcyBjb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwKCkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKDEsIExPQURfRkFDVE9SKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggdGhlIHNhbWUga2V5LXZhbHVlCisgICAgICogZW50cmllcyBhcyB0aGUgZ2l2ZW4gTWFwLgorICAgICAqIEBwYXJhbSBtYXAgYSBNYXAgd2hvc2Uga2V5LXZhbHVlIGVudHJpZXMgd2lsbAorICAgICAqICAgICAgYmVjb21lIHRoZSBlbnRyaWVzIGZvciB0aGlzIEF0dHJpYnV0ZU1hcC4gPGNvZGU+bWFwPC9jb2RlPgorICAgICAqICAgICAgaXMgbm90IG1vZGlmaWVkLCBhbmQgbXVzdCBub3QgY29udGFpbiBudWxsIGtleXMgb3IgdmFsdWVzLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoamF2YS51dGlsLk1hcCBtYXApIHsKKworICAgICAgICBzdHlsZVRhYmxlID0gbmV3IEhhc2h0YWJsZShtYXAuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisgICAgICAgIHN0eWxlVGFibGUucHV0QWxsKG1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBzYW1lIGtleS12YWx1ZQorICAgICAqIGVudHJpZXMgYXMgdGhlIGdpdmVuIEhhc2h0YWJsZS4KKyAgICAgKiBAcGFyYW0gaGFzaHRhYmxlIGEgSGFzaHRhYmxlIHdob3NlIGtleS12YWx1ZSBlbnRyaWVzIHdpbGwKKyAgICAgKiAgICAgIGJlY29tZSB0aGUgZW50cmllcyBmb3IgdGhpcyBBdHRyaWJ1dGVNYXAuIDxjb2RlPnRhYmxlPC9jb2RlPgorICAgICAqICAgICAgaXMgbm90IG1vZGlmaWVkLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoSGFzaHRhYmxlIGhhc2h0YWJsZSkgeworCisgICAgICAgIHRoaXMoKGphdmEudXRpbC5NYXApIGhhc2h0YWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIEF0dHJpYnV0ZU1hcCB3aXRoIGEgc2luZ2xlIGVudHJ5IG9mCisgICAgICogPGNvZGU+e2F0dHJpYnV0ZSwgdmFsdWV9PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAncyBzaW5nbGUgZW50cnkKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIGluIHRoaXMgQXR0cmlidXRlTWFwJ3Mgc2luZ2xlIGVudHJ5CisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKworICAgICAgICBzdHlsZVRhYmxlID0gbmV3IEhhc2h0YWJsZSgxLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgLy8gaGFzaHRhYmxlIGNoZWNrcyB2YWx1ZSBmb3IgbnVsbAorICAgICAgICBzdHlsZVRhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAoSGFzaHRhYmxlIHRhYmxlLCBib29sZWFuIGNsb25lKSB7CisKKyAgICAgICAgaWYgKGNsb25lKSB7CisgICAgICAgICAgICBzdHlsZVRhYmxlID0gKEhhc2h0YWJsZSkgdGFibGUuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuc3R5bGVUYWJsZSA9IHRhYmxlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVJbnQoc3R5bGVUYWJsZS5zaXplKCkpOworICAgICAgICBFbnVtZXJhdGlvbiBlID0gc3R5bGVUYWJsZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KEF0dHJpYnV0ZUtleS5tYXBBdHRyaWJ1dGVUb0tleShrZXkpKTsKKyAgICAgICAgICAgIG91dC53cml0ZU9iamVjdChzdHlsZVRhYmxlLmdldChrZXkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVCdWZmZXIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBjb3VudCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IEF0dHJpYnV0ZUtleS5tYXBLZXlUb0F0dHJpYnV0ZShpbi5yZWFkT2JqZWN0KCkpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gaW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgc3R5bGVUYWJsZS5wdXQoa2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKy8vID09PT09PT09PT09PT09CisvLyBNYXAgaW50ZXJmYWNlCisvLyA9PT09PT09PT09PT09PQorCisvLyBxdWVyaWVzCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuc2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgQXR0cmlidXRlTWFwCisgICAgICogaXMgMC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAKKyAgICAgKiBpcyAwCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5pc0VtcHR5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGtleSBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8Y29kZT5rZXk8L2NvZGU+IGlzIGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNLZXkoT2JqZWN0IGtleSkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmNvbnRhaW5zS2V5KGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8Y29kZT52YWx1ZTwvY29kZT4gaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc1ZhbHVlKE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmNvbnRhaW5zVmFsdWUodmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuICBJZiB0aGUKKyAgICAgKiBrZXkgaXMgbm90IGluIHRoaXMgQXR0cmlidXRlTWFwIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggPGNvZGU+a2V5PC9jb2RlPiwgb3IKKyAgICAgKiAgICAgbnVsbCBpZiA8Y29kZT5rZXk8L2NvZGU+IGlzIG5vdCBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5nZXQoa2V5KTsKKyAgICB9CisKKy8vIG1vZGlmaWVycyAtIGFsbCB0aHJvdyBleGNlcHRpb25zCisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjYWRkQXR0cmlidXRlCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcHV0KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNyZW1vdmVBdHRyaWJ1dGVzCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjYWRkQXR0cmlidXRlcworICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXRBbGwoamF2YS51dGlsLk1hcCB0KSB7CisKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI0VNUFRZX0FUVFJJQlVURV9NQVAKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisvLyB2aWV3cworCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBjb250YWluaW5nIGV2ZXJ5IGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBjb250YWluaW5nIGV2ZXJ5IGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBTZXQga2V5U2V0KCkgeworCisgICAgICAgIHJldHVybiBnZXRLZXlTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldCBnZXRLZXlTZXQoKSB7CisKKyAgICAgICAgQXR0cmlidXRlU2V0IHJlc3VsdCA9IGNhY2hlZEtleVNldDsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IEF0dHJpYnV0ZVNldC5jcmVhdGVLZXlTZXQoc3R5bGVUYWJsZSk7CisgICAgICAgICAgICBjYWNoZWRLZXlTZXQgPSByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENvbGxlY3Rpb24gY29udGFpbmluZyBldmVyeSB2YWx1ZSBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcmV0dXJuIGEgQ29sbGVjdGlvbiBjb250YWluaW5nIGV2ZXJ5IHZhbHVlIGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIENvbGxlY3Rpb24gdmFsdWVzKCkgeworCisgICAgICAgIENvbGxlY3Rpb24gcmVzdWx0ID0gY2FjaGVkVmFsdWVDb2xsZWN0aW9uOworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlQ29sbGVjdGlvbihzdHlsZVRhYmxlLnZhbHVlcygpKTsKKyAgICAgICAgICAgIGNhY2hlZFZhbHVlQ29sbGVjdGlvbiA9IHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU2V0IGNvbnRhaW5pbmcgYWxsIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICovCisgICAgcHVibGljIFNldCBlbnRyeVNldCgpIHsKKworICAgICAgICBTZXQgcmVzdWx0ID0gY2FjaGVkRW50cnlTZXQ7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoc3R5bGVUYWJsZS5lbnRyeVNldCgpKTsKKyAgICAgICAgICAgIGNhY2hlZEVudHJ5U2V0ID0gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCisgICAgICAgIGlmIChyaHMgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHNTdHlsZVNldCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJoc1N0eWxlU2V0ID0gKEF0dHJpYnV0ZU1hcCkgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5lcXVhbHMocmhzU3R5bGVTZXQuc3R5bGVUYWJsZSk7CisgICAgfQorCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5oYXNoQ29kZSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUudG9TdHJpbmcoKTsKKyAgICB9CisKKy8vID09PT09PT09PT09PT09CisvLyBPcGVyYXRpb25zCisvLyA9PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQXR0cmlidXRlTWFwIHdoaWNoIGNvbnRhaW5zIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAsCisgICAgICogYWxvbmcgd2l0aCBhbiBlbnRyeSBmb3IgPGF0dHJpYnV0ZSwgdmFsdWU+LiAgSWYgYXR0cmlidXRlCisgICAgICogaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgQXR0cmlidXRlTWFwIGl0cyB2YWx1ZSBiZWNvbWVzIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYWRkQXR0cmlidXRlKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIC8vIHRyeSB0byBvcHRpbWl6ZSBmb3IgY2FzZSB3aGVyZSA8a2V5LCB2YWx1ZT4gaXMgYWxyZWFkeSB0aGVyZT8KKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzdHlsZVRhYmxlLnNpemUoKSArIDEsIExPQURfRkFDVE9SKTsKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5wdXQoa2V5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQXR0cmlidXRlTWFwIHdoaWNoIGNvbnRhaW5zIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKiBhbmQgaW4gcmhzLiAgSWYgYW4gYXR0cmlidXRlIGFwcGVhcnMgaW4gYm90aCBTdHlsZVNldHMgdGhlCisgICAgICogdmFsdWUgZnJvbSByaHMgaXMgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGFkZEF0dHJpYnV0ZXMoQXR0cmlidXRlTWFwIHJocykgeworCisgICAgICAgIGludCB0aGlzU2l6ZSA9IHNpemUoKTsKKworICAgICAgICBpZiAodGhpc1NpemUgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJoczsKKyAgICAgICAgfQorCisgICAgICAgIGludCBvdGhlclNpemUgPSByaHMuc2l6ZSgpOworCisgICAgICAgIGlmIChvdGhlclNpemUgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHRoaXNTaXplICsgb3RoZXJTaXplLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwocmhzKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aGljaCBjb250YWlucyBlbnRyaWVzIGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICogYW5kIGluIHJocy4gIElmIGFuIGF0dHJpYnV0ZSBhcHBlYXJzIGluIGJvdGggU3R5bGVTZXRzIHRoZQorICAgICAqIHZhbHVlIGZyb20gcmhzIGlzIHVzZWQuCisgICAgICogVGhlIE1hcCdzIGtleXMgYW5kIHZhbHVlcyBtdXN0IGJlIG5vbi1udWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYWRkQXR0cmlidXRlcyhqYXZhLnV0aWwuTWFwIHJocykgeworCisgICAgICAgIGlmIChyaHMgaW5zdGFuY2VvZiBBdHRyaWJ1dGVNYXApIHsKKyAgICAgICAgICAgIHJldHVybiBhZGRBdHRyaWJ1dGVzKChBdHRyaWJ1dGVNYXApcmhzKTsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoc2l6ZSgpICsgcmhzLnNpemUoKSwgTE9BRF9GQUNUT1IpOworCisgICAgICAgIG5ld1RhYmxlLnB1dEFsbChzdHlsZVRhYmxlKTsKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHJocyk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcCwgYnV0CisgICAgICogd2l0aG91dCBhdHRyaWJ1dGUgYXMgYSBrZXkuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCByZW1vdmVBdHRyaWJ1dGUoT2JqZWN0IGF0dHJpYnV0ZSkgeworCisgICAgICAgIGlmICghY29udGFpbnNLZXkoYXR0cmlidXRlKSkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisgICAgICAgIG5ld1RhYmxlLnB1dEFsbChzdHlsZVRhYmxlKTsKKyAgICAgICAgbmV3VGFibGUucmVtb3ZlKGF0dHJpYnV0ZSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgZW50cmllcyBvZiB0aGlzIEF0dHJpYnV0ZU1hcCB3aG9zZQorICAgICAqIGF0dHJpYnV0ZXMgYXJlIDxiPm5vdDwvYj4gaW4gdGhlIFNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlbW92ZUF0dHJpYnV0ZXMoQXR0cmlidXRlU2V0IGF0dHJpYnV0ZXMpIHsKKworICAgICAgICBTZXQgc2V0ID0gYXR0cmlidXRlczsKKyAgICAgICAgcmV0dXJuIHJlbW92ZUF0dHJpYnV0ZXMoc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgZW50cmllcyBvZiB0aGlzIEF0dHJpYnV0ZU1hcCB3aG9zZQorICAgICAqIGF0dHJpYnV0ZXMgYXJlIDxiPm5vdDwvYj4gaW4gdGhlIFNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlbW92ZUF0dHJpYnV0ZXMoU2V0IGF0dHJpYnV0ZXMpIHsKKworICAgICAgICAvLyBDcmVhdGUgbmV3VGFibGUgb24gZGVtYW5kOyAgaWYgbnVsbCBhdAorICAgICAgICAvLyBlbmQgb2YgaXRlcmF0aW9uIHRoZW4gcmV0dXJuIHRoaXMgc2V0LgorICAgICAgICAvLyBTaG91bGQgd2UgaW50ZXJzZWN0IHN0eWxlVGFibGUua2V5U2V0IHdpdGgKKyAgICAgICAgLy8gYXR0cmlidXRlcyBpbnN0ZWFkPworCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG51bGw7CisgICAgICAgIEl0ZXJhdG9yIGF0dHJJdGVyID0gYXR0cmlidXRlcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoYXR0ckl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3QgY3VycmVudCA9IGF0dHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwgJiYgc3R5bGVUYWJsZS5jb250YWluc0tleShjdXJyZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChuZXdUYWJsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzdHlsZVRhYmxlLnNpemUoKSwgTE9BRF9GQUNUT1IpOworICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld1RhYmxlLnJlbW92ZShjdXJyZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuZXdUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUga2V5cyBvZiB0aGlzIEF0dHJpYnV0ZU1hcCB3aGljaAorICAgICAqIGFyZSBhbHNvIGluIHRoZSBTZXQuICBUaGUgc2V0IG11c3Qgbm90IGNvbnRhaW4gbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGludGVyc2VjdFdpdGgoQXR0cmlidXRlU2V0IGF0dHJpYnV0ZXMpIHsKKworICAgICAgICBTZXQgc2V0ID0gYXR0cmlidXRlczsKKyAgICAgICAgcmV0dXJuIGludGVyc2VjdFdpdGgoc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUga2V5cyBvZiB0aGlzIEF0dHJpYnV0ZU1hcCB3aGljaAorICAgICAqIGFyZSBhbHNvIGluIHRoZSBTZXQuICBUaGUgc2V0IG11c3Qgbm90IGNvbnRhaW4gbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGludGVyc2VjdFdpdGgoU2V0IGF0dHJpYnV0ZXMpIHsKKworICAgICAgICAvLyBGb3Igbm93LCBmb3JnZXQgYWJvdXQgb3B0aW1pemluZyBmb3IgdGhlIGNhc2Ugd2hlbgorICAgICAgICAvLyB0aGUgcmV0dXJuIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gdGhpcyBzZXQuCisKKyAgICAgICAgaW50IGF0dHJTaXplID0gYXR0cmlidXRlcy5zaXplKCk7CisgICAgICAgIGludCBzdHlsZVRhYmxlU2l6ZSA9IHN0eWxlVGFibGUuc2l6ZSgpOworICAgICAgICBpbnQgc2l6ZSA9IE1hdGgubWluKGF0dHJTaXplLCBzdHlsZVRhYmxlU2l6ZSk7CisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoc2l6ZSwgTE9BRF9GQUNUT1IpOworCisgICAgICAgIGlmIChhdHRyU2l6ZSA8IHN0eWxlVGFibGVTaXplKSB7CisgICAgICAgICAgICBJdGVyYXRvciBhdHRySXRlciA9IGF0dHJpYnV0ZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChhdHRySXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgY3VycmVudCA9IGF0dHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IHN0eWxlVGFibGUuZ2V0KGN1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGFibGUucHV0KGN1cnJlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGF0dHJJdGVyID0ga2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChhdHRySXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgY3VycmVudCA9IGF0dHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5jb250YWlucyhjdXJyZW50KSkgeworICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXQoY3VycmVudCwgc3R5bGVUYWJsZS5nZXQoY3VycmVudCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHV0IGFsbCBlbnRyaWVzIGluIHRoaXMgQXR0cmlidXRlTWFwIGludG8gdGhlIGdpdmVuIE1hcC4KKyAgICAgKiBAcGFyYW0gcmhzIHRoZSBNYXAgaW50byB3aGljaCBlbnRyaWVzIGFyZSBwbGFjZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXRBbGxJbnRvKGphdmEudXRpbC5NYXAgcmhzKSB7CisKKyAgICAgICAgcmhzLnB1dEFsbCh0aGlzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWY4MDYwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YQpAQCAtMCwwICsxLDM0MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CisKKy8qKgorICogQW4gQXR0cmlidXRlU2V0IGlzIGFuIGltbXV0YWJsZSBjb2xsZWN0aW9uIG9mIHVuaXF1ZSBPYmplY3RzLgorICogSXQgaGFzIHNldmVyYWwgb3BlcmF0aW9ucworICogd2hpY2ggcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQgaW5zdGFuY2VzLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXR0cmlidXRlU2V0IGltcGxlbWVudHMgU2V0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBBbiBBdHRyaWJ1dGVTZXQgd2l0aCBubyBtZW1iZXJzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQXR0cmlidXRlU2V0IEVNUFRZX1NFVCA9IG5ldyBBdHRyaWJ1dGVTZXQoKTsKKworICAgIHByaXZhdGUgSGFzaHRhYmxlIGVsZW1lbnRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGVyclN0cmluZyA9ICJBdHRyaWJ1dGVTZXQgaXMgaW1tdXRhYmxlLiI7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZVNldChIYXNodGFibGUgZWxlbWVudHMpIHsKKworICAgICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBvbmx5LiAgRm9yIEF0dHJpYnV0ZU1hcCB1c2UuCisgICAgICovCisgICAgc3RhdGljIEF0dHJpYnV0ZVNldCBjcmVhdGVLZXlTZXQoSGFzaHRhYmxlIGhhc2h0YWJsZSkgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBFbnVtZXJhdGlvbiBlID0gaGFzaHRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgbmV3RWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldywgZW1wdHkgQXR0cmlidXRlU2V0LiAgVGhlIHNldCBpcyBzZW1hbnRpY2FsbHkKKyAgICAgKiBlcXVpdmFsZW50IHRvIEVNUFRZX1NFVC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KCkgeworCisgICAgICAgIGVsZW1lbnRzID0gbmV3IEhhc2h0YWJsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBBdHRyaWJ1dGVTZXQgd2l0aCB0aGUgc2luZ2xlIGVsZW1lbnQgZWxlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KE9iamVjdCBlbGVtKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKDEsIDEpOworICAgICAgICBlbGVtZW50cy5wdXQoZWxlbSwgZWxlbSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF0dHJpYnV0ZVNldCBjb250YWluaW5nIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXkgZWxlbXMuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldChPYmplY3RbXSBlbGVtcykgeworCisgICAgICAgIGVsZW1lbnRzID0gbmV3IEhhc2h0YWJsZShlbGVtcy5sZW5ndGgsIDEpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBlbGVtc1tpXTsKKyAgICAgICAgICAgIGVsZW1lbnRzLnB1dChuZXh0LCBuZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgaXMgMC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCBpcyAwCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMuaXNFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMuc2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbHMoKEF0dHJpYnV0ZVNldCkgcmhzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKEF0dHJpYnV0ZVNldCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbGVtZW50cy5lcXVhbHMocmhzLmVsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgZ2l2ZW4gT2JqZWN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIDxjb2RlPm88L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoT2JqZWN0IG8pIHsKKworICAgICAgICBPYmplY3QgdmFsdWUgPSBlbGVtZW50cy5nZXQobyk7CisgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGFsbCBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBDb2xsZWN0aW9uCisgICAgICogQHBhcmFtIGNvbGwgdGhlIGNvbGxlY3Rpb24gdG8gY29tcGFyZSB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGFsbCBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBDb2xsZWN0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmtleVNldCgpLmNvbnRhaW5zQWxsKGNvbGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBFbnVtZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBFbnVtZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmtleXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gSXRlcmF0b3Igd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBJdGVyYXRvciB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBUaGUgSXRlcmF0b3IgY2Fubm90IGJlIHVzZWQgdG8gbW9kaWZ5IHRoaXMgQXR0cmlidXRlU2V0LgorICAgICAqLworICAgIHB1YmxpYyBJdGVyYXRvciBpdGVyYXRvcigpIHsKKworICAgICAgICByZXR1cm4gbmV3IEVudW1lcmF0aW9uSXRlcmF0b3IoZWxlbWVudHMua2V5cygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIHRoZSBnaXZlbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcGFyYW0gc3RvcmFnZSBhbiBhcnJheSB0byBmaWxsIHdpdGggdGhpcyBzZXQncyBlbGVtZW50cy4KKyAgICAgKiBUaGUgYXJyYXkgY2Fubm90IGJlIG51bGwuCisgICAgICogQHJldHVybiB0aGUgPHR0PnN0b3JhZ2U8L3R0PiBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W10gdG9BcnJheShPYmplY3RbXSBzdG9yYWdlKSB7CisKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGVsZW1lbnRzLmtleXMoKTsKKyAgICAgICAgaW50IG49MDsKKyAgICAgICAgd2hpbGUgKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHN0b3JhZ2VbbisrXSA9IGtleXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RvcmFnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KCkgeworCisgICAgICAgIHJldHVybiB0b0FycmF5KG5ldyBPYmplY3Rbc2l6ZSgpXSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRFbGVtZW50CisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFkZChPYmplY3Qgbyl7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlKE9iamVjdCBvKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICN1bmlvbldpdGgKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYWRkQWxsKENvbGxlY3Rpb24gY29sbCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjc3VidHJhY3QKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKENvbGxlY3Rpb24gY29sbCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjaW50ZXJzZWN0V2l0aAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNFTVBUWV9TRVQKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyB0aGUgZWxlbWVudHMgb2YgdGhpcyBzZXQKKyAgICAgKiBhbmQgdGhlIGdpdmVuIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gZWxlbWVudCB0aGUgZWxlbWVudCB0byBhZGQKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBsaWtlIHRoaXMgb25lLCB3aXRoIDxjb2RlPmVsZW1lbnQ8L2NvZGU+CisgICAgICogYWRkZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGFkZEVsZW1lbnQoT2JqZWN0IGVsZW1lbnQpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworICAgICAgICBuZXdFbGVtZW50cy5wdXQoZWxlbWVudCwgZWxlbWVudCk7CisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IHdoaWNoIGlzIHRoZSB1bmlvbiBvZgorICAgICAqIHRoaXMgc2V0IHdpdGggdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc2V0IHRvIHVuaW9uIHdpdGgKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgb3IKKyAgICAgKiBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgdW5pb25XaXRoKEF0dHJpYnV0ZVNldCBzKSB7CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld0VsZW1lbnRzID0gKEhhc2h0YWJsZSkgZWxlbWVudHMuY2xvbmUoKTsKKworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCB3aGljaCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mCisgICAgICogdGhpcyBzZXQgd2l0aCB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzIHRoZSBzZXQgdG8gaW50ZXJzZWN0IHdpdGgKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgaW4gPGNvZGU+czwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGludGVyc2VjdFdpdGgoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3QgbmV4dCA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmdldChuZXh0KSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmV3RWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgbm90IGluIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgdGhlIHNldCBvZiBlbGVtZW50cyB0byBleGNsdWRlCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVTZXQgb2YgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHdoaWNoCisgICAgICogYXJlIG5vdCBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgc3VidHJhY3QoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgbmV3RWxlbWVudHMucmVtb3ZlKGl0ZXIubmV4dCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBFbnVtZXJhdGlvbkl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCisgICAgICAgIHByaXZhdGUgRW51bWVyYXRpb24gZTsKKworICAgICAgICBFbnVtZXJhdGlvbkl0ZXJhdG9yKEVudW1lcmF0aW9uIGUpIHsKKyAgICAgICAgICAgIHRoaXMuZSA9IGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICAgICAgcmV0dXJuIGUuaGFzTW9yZUVsZW1lbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZS5uZXh0RWxlbWVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL01hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL01hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA4MDUyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCisvKioKKyAqIEEgTWFwIGlzIGEgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMgKG9yIGVudHJpZXMpLCB3aGVyZSBlYWNoCisgKiBrZXkgaW4gdGhlIE1hcCBpcyB1bmlxdWUuICBUaGlzIGludGVyZmFjZSBpcyBhIHN1YnNldCBvZiB0aGUKKyAqIEpESyAxLjIgTWFwIGludGVyZmFjZS4gIEl0IGlzIHVzZWQgYnkgSkRLIDEuMS1jb21wYXRpYmxlIGNvZGUuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgTWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGlzIE1hcC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGlzIE1hcAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgaGFzIG5vIGVudHJpZXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgTWFwIGhhcyBubyBlbnRyaWVzCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4ga2V5LgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkuICBJZiB0aGUga2V5IGRvZXMgbm90IGhhdmUKKyAgICAgKiBhIHZhbHVlIGluIHRoaXMgTWFwLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBrZXkpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgY29udGFpbnMgdGhlIGdpdmVuIGtleS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgY29udGFpbnMgdGhlIGdpdmVuIGtleQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zS2V5KE9iamVjdCBrZXkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvVGV4dEF0dHJpYnV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxOWM3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvVGV4dEF0dHJpYnV0ZS5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGtleXMgKG9yIGF0dHJpYnV0ZXMpIGZvciBzcGVjaWZ5aW5nIHRleHQgc3R5bGVzCisgKiBpbiBhIE1hcC4gIEEgdGV4dCBzdHlsZSBpcyBhIGNvbGxlY3Rpb24gb2Yga2V5LXZhbHVlIHBhaXJzLCB3aGVyZQorICogdGhlIGtleSByZXByZXNlbnRzIGEgY2VydGFpbiBjaGFyYWN0ZXJpc3RpYyAoc3VjaCBhcyBzaXplKSBhbmQKKyAqIHRoZSB2YWx1ZSB0ZWxscyBob3cgdGhhdCBjaGFyYWN0ZXJpc3RpYyBpcyByZWFsaXplZCAoaWUgd2hhdCB0aGUKKyAqIHNpemUgaXMpLgorICogPHA+CisgKiBBbGwgb2YgdGhlIGF0dHJpYnV0ZXMgaW4gVGV4dEF0dHJpYnV0ZSBzcGVjaWZ5IGEgY2xhc3MgZm9yIHRoZWlyIHZhbHVlLgorICogTWFwIGRvZXMgbm90IGVuZm9yY2UgdGhlc2UgY2xhc3Mgc3BlY2lmaWNhdGlvbnM7ICBob3dldmVyLCB0ZXh0IHJlbmRlcmluZyBjb2RlCisgKiB3aWxsIHRlbmQgdG8gZmFpbCB3aXRoIGEgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIGEga2V5J3MgdmFsdWUKKyAqIGhhcyBhbiB1bmV4cGVjdGVkIGNsYXNzLgorICogPHA+CisgKiBTb21lIGF0dHJpYnV0ZXMgYXJlIG1lYW5pbmdmdWwgZm9yIGVudGlyZSBwYXJhZ3JhcGhzLCBub3QgaW5kaXZpZHVhbAorICogY2hhcmFjdGVycy4gIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRvY3VtZW50ZWQgYXMgYXBwbHlpbmcgdG8gcGFyYWdyYXBocy4KKyAqIEFsbCBvdGhlciBhdHRyaWJ1dGVzIGFwcGx5IHRvIGNoYXJhY3RlcnMuCisgKiA8cD4KKyAqIE1hbnkgb2YgdGhlIGZpZWxkIG5hbWVzIGFuZCB2YWx1ZXMgaW4gdGhpcyBjbGFzcworICogYXJlIHRha2VuIGZyb20gdGhlIEpESyAxLjIKKyAqIDxjb2RlPmphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZSBjbGFzczwvY29kZT4uCisgKiBAc2VlIE1hcAorICovCitwdWJsaWMgY2xhc3MgVGV4dEF0dHJpYnV0ZSBleHRlbmRzIEF0dHJpYnV0ZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNodGFibGUgaW5zdGFuY2VNYXAgPSBuZXcgSGFzaHRhYmxlKDkpOworCisgICAgcHJvdGVjdGVkIFRleHRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgPT0gVGV4dEF0dHJpYnV0ZS5jbGFzcykgeworICAgICAgICAgICAgaW5zdGFuY2VNYXAucHV0KG5hbWUsIHRoaXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdCByZWFkUmVzb2x2ZSgpIHRocm93cyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHRoaXMuZ2V0Q2xhc3MoKSAhPSBUZXh0QXR0cmlidXRlLmNsYXNzKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9iamVjdEV4Y2VwdGlvbigic3ViY2xhc3MgZGlkbid0IGNvcnJlY3RseSBpbXBsZW1lbnQgcmVhZFJlc29sdmUiKTsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRBdHRyaWJ1dGUgaW5zdGFuY2UgPSAoVGV4dEF0dHJpYnV0ZSkgaW5zdGFuY2VNYXAuZ2V0KGdldE5hbWUoKSk7CisgICAgICAgIGlmIChpbnN0YW5jZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9iamVjdEV4Y2VwdGlvbigidW5rbm93biBhdHRyaWJ1dGUgbmFtZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRk9OVCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5GT05UOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRkFNSUxZID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkZBTUlMWTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFdFSUdIVCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5XRUlHSFQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGbG9hdCBXRUlHSFRfQk9MRCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFBPU1RVUkUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUE9TVFVSRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZsb2F0IFBPU1RVUkVfT0JMSVFVRSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUU7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBTSVpFID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNJWkU7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBTVVBFUlNDUklQVCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgU1VQRVJTQ1JJUFRfU1VQRVIgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFRfU1VQRVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFNVUEVSU0NSSVBUX1NVQiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVUI7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUga2V5IGZvciB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvciBhZG9ybm1lbnQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRk9SRUdST1VORCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5EOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEJBQ0tHUk9VTkQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuQkFDS0dST1VORDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFVOREVSTElORSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFVOREVSTElORV9PTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfT047CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBTVFJJS0VUSFJPVUdIID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0g7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBCb29sZWFuIFNUUklLRVRIUk9VR0hfT04gPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSF9PTjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE9GRlNFVCA9IG5ldyBUZXh0QXR0cmlidXRlKCJvZmZzZXQiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IENIQVJfUkVQTEFDRU1FTlQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuQ0hBUl9SRVBMQUNFTUVOVDsKKy8vIFBhcmFncmFwaCBTdHlsZXMKKworLy8gdmFsdWVzIGFyZSBGbG9hdHM6CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRVhUUkFfTElORV9TUEFDSU5HID0gbmV3IFRleHRBdHRyaWJ1dGUoImV4dHJhX2xpbmVfc3BhY2luZyIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEVYVFJBX0ZJUlNUX0xJTkVfU1BBQ0lORyA9IG5ldyBUZXh0QXR0cmlidXRlKCJleHRyYV9maXJzdF9saW5lX3NwYWNpbmciKTsKKworICAgIC8qKgorICAgICAqIEFtb3VudCBiZXlvbmQgbGVhZGluZyBtYXJnaW4gdG8gaW5kZW50IHRoZSBmaXJzdCBsaW5lIG9mIGEgcGFyYWdyYXBoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEZJUlNUX0xJTkVfSU5ERU5UID0gbmV3IFRleHRBdHRyaWJ1dGUoImZpcnN0X2xpbmVfaW5kZW50Iik7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBNSU5fTElORV9TUEFDSU5HID0gbmV3IFRleHRBdHRyaWJ1dGUoIm1pbl9saW5lX3NwYWNpbmciKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBNSU5fRklSU1RfTElORV9TUEFDSU5HID0gbmV3IFRleHRBdHRyaWJ1dGUoIm1pbl9maXJzdF9saW5lX3NwYWNpbmciKTsKKworICAgIC8qKgorICAgICAqIEZsdXNoIGxpbmVzIGxlZnQsIHJpZ2h0LCBvciBjZW50ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTElORV9GTFVTSCA9IG5ldyBUZXh0QXR0cmlidXRlKCJsaW5lX2ZsdXNoIik7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgRkxVU0hfTEVBRElORyA9IG5ldyBJbnRlZ2VyKDApOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGTFVTSF9DRU5URVIgPSBuZXcgSW50ZWdlcigxKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgRkxVU0hfVFJBSUxJTkcgPSBuZXcgSW50ZWdlcigyKTsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiA8Y29kZT5MSU5FX0ZMVVNIPC9jb2RlPiBmb3IgZnVsbCBqdXN0aWZpY2F0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGVUxMWV9KVVNUSUZJRUQgPSBuZXcgSW50ZWdlcigzKTsKKworICAgIC8qKgorICAgICAqIExlYWRpbmcgYW5kIHRyYWlsaW5nIG1hcmdpbiBpbiBwYXJhZ3JhcGguCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTEVBRElOR19NQVJHSU4gPSBuZXcgVGV4dEF0dHJpYnV0ZSgibGVhZGluZ19tYXJnaW4iKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBUUkFJTElOR19NQVJHSU4gPSBuZXcgVGV4dEF0dHJpYnV0ZSgidHJhaWxpbmdfbWFyZ2luIik7CisKKyAgICAvKioKKyAgICAgKiBUYWIgcnVsZXIuICBWYWx1ZXMgYXJlIE1UYWJSdWxlciBpbnN0YW5jZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgVEFCX1JVTEVSID0gbmV3IFRleHRBdHRyaWJ1dGUoInRhYl9ydWxlciIpOworICAgIAorICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBydW4gZGlyZWN0aW9uIG9mIHRoZSBsaW5lLgorICAgICAqCisgICAgICogPFA+PFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIxIj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPktleTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5SVU5fRElSRUNUSU9OPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+VmFsdWU8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+Qm9vbGVhbjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkNvbnN0YW50czwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5SVU5fRElSRUNUSU9OX0xUUiA9IHRydWUsIFJVTl9ESVJFQ1RJT05fUlRMID0gZmFsc2UKKyAgICAgKiA8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZWZhdWx0PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlVzZSB0aGUgZGVmYXVsdCBVbmljb2RlIGJhc2UgZGlyZWN0aW9uIGZyb20gdGhlIEJJREkgCisgICAgICogYWxnb3JpdGhtLjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlc2NyaXB0aW9uPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjxQPlNwZWNpZmllcyB3aGljaCBiYXNlIHJ1biBkaXJlY3Rpb24gdG8gdXNlIHdoZW4gCisgICAgICogcG9zaXRpb25pbmcgbWl4ZWQgZGlyZWN0aW9uYWwgcnVucyB3aXRoaW4gYSBwYXJhZ3JhcGguIElmIHRoaXMgdmFsdWUgaXMKKyAgICAgKiBSVU5fRElSRUNUSU9OX0RFRkFVTFQsIDxjb2RlPlRleHRMYXlvdXQ8L2NvZGU+IHVzZXMgdGhlIGRlZmF1bHQgVW5pY29kZQorICAgICAqIGJhc2UgZGlyZWN0aW9uIGZyb20gdGhlIEJJREkgYWxnb3JpdGhtLjwvUD4KKyAgICAgKiA8UD48ST5UaGlzIGF0dHJpYnV0ZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBvdmVyIHRoZSB3aG9sZSAKKyAgICAgKiBwYXJhZ3JhcGguPC9JPjwvVEQ+PC9UUj4KKyAgICAgKiA8L1RBQkxFPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFJVTl9ESVJFQ1RJT04gPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTjsKKworICAgIC8qKgorICAgICAqIExlZnQtdG8tcmlnaHQgcnVuIGRpcmVjdGlvbi4KKyAgICAgKiBAc2VlICNSVU5fRElSRUNUSU9OCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBCb29sZWFuIFJVTl9ESVJFQ1RJT05fTFRSID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fTFRSOworCisgICAgLyoqCisgICAgICogUmlnaHQtdG8tbGVmdCBydW4gZGlyZWN0aW9uLgorICAgICAqIEBzZWUgI1JVTl9ESVJFQ1RJT04KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJvb2xlYW4gUlVOX0RJUkVDVElPTl9SVEwgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEw7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUga2V5IGZvciB0aGUgZW1iZWRkaW5nIGxldmVsIGZvciBuZXN0ZWQgYmlkaXJlY3Rpb25hbCBydW5zLgorICAgICAqCisgICAgICogPFA+PFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIxIj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPktleTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5CSURJX0VNQkVERElORzwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPlZhbHVlPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkludGVnZXI8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5MaW1pdHM8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+UG9zaXRpdmUgdmFsdWVzIDEgdGhyb3VnaCAxNSBhcmUgPEk+ZW1iZWRkaW5nPC9JPgorICAgICAqIGxldmVscywgbmVnYXRpdmUgdmFsdWVzPEJSPiB0aHJvdWdoIC0xNSBhcmUgPEk+b3ZlcnJpZGU8L0k+IGxldmVscworICAgICAqIDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlZmF1bHQ8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+VXNlIHN0YW5kYXJkIEJJREkgdG8gY29tcHV0ZSBsZXZlbHMgZnJvbSBmb3JtYXR0aW5nCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dC48L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZXNjcmlwdGlvbjwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5TcGVjaWZpZXMgdGhlIGJpZGkgZW1iZWRkaW5nIGxldmVsIG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogV2hlbiB0aGlzIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGFueXdoZXJlIGluIGEgcGFyYWdyYXBoLCB0aGVuIHRoZSAKKyAgICAgKiBVbmljb2RlIGNoYXJhY3RlcnMgUkxPLCBMUk8sIFJMRSwgTFJFLCBQREYgYXJlIGRpc3JlZ2FyZGVkIGluIHRoZSBCSURJIAorICAgICAqIGFuYWx5c2lzIG9mIHRoYXQgcGFyYWdyYXBoLiAKKyAgICAgKiBTZWUgdGhlIFVuaWNvZGUgU3RhbmRhcmQgdi4gMi4wLCBzZWN0aW9uIDMtMTEuCisgICAgICogPC9URD48L1RSPgorICAgICAqIDwvVEFCTEU+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgQklESV9FTUJFRERJTkcgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuQklESV9FTUJFRERJTkc7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUga2V5IGZvciB0aGUganVzdGlmaWNhdGlvbiBvZiBhIHBhcmFncmFwaC4KKyAgICAgKgorICAgICAqIDxQPjxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIiBDRUxMUEFERElORz0iMSI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5LZXk8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+SlVTVElGSUNBVElPTjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPlZhbHVlPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkZsb2F0PC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+TGltaXRzPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjAuMCB0aHJvdWdoMS4wPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVmYXVsdDwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj4xLjA8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZXNjcmlwdGlvbjwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj48UD5TcGVjaWZpZXMgd2hpY2ggZnJhY3Rpb24gb2YgdGhlIGV4dHJhIHNwYWNlIHRvIHVzZSAKKyAgICAgKiB3aGVuIGp1c3RpZmljYXRpb24gaXMgcmVxdWVzdGVkLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGxpbmUgaXMgNTAgcG9pbnRzCisgICAgICogd2lkZSBhbmQgdGhlIG1hcmdpbnMgYXJlIDcwIHBvaW50cyBhcGFydCwgYSB2YWx1ZSBvZiAwLjUgbWVhbnMgdGhhdCB0aGUKKyAgICAgKiBsaW5lIGlzIHBhZGRlZCB0byByZWFjaCBhIHdpZHRoIG9mIDYwIHBvaW50cy48L1A+CisgICAgICogPFA+PEk+VGhpcyBhdHRyaWJ1dGUgc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUgb3ZlciB0aGUgd2hvbGUKKyAgICAgKiBwYXJhZ3JhcGguPC9JPjwvVEQ+PC9UUj4KKyAgICAgKiA8L1RBQkxFPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEpVU1RJRklDQVRJT04gPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTjsKKworICAgIC8qKgorICAgICAqIEp1c3RpZnkgdGhlIGxpbmUgdG8gdGhlIGZ1bGwgcmVxdWVzdGVkIHdpZHRoLgorICAgICAqIEBzZWUgI0pVU1RJRklDQVRJT04KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZsb2F0IEpVU1RJRklDQVRJT05fRlVMTCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5KVVNUSUZJQ0FUSU9OX0ZVTEw7CisKKyAgICAvKioKKyAgICAgKiBEbyBub3QgYWxsb3cgdGhlIGxpbmUgdG8gYmUganVzdGlmaWVkLgorICAgICAqIEBzZWUgI0pVU1RJRklDQVRJT04KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZsb2F0IEpVU1RJRklDQVRJT05fTk9ORSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5KVVNUSUZJQ0FUSU9OX05PTkU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmNhOTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPlJpY2h0ZXh0IGF0dHJpYnV0ZSBzdXBwb3J0LiAgSW5jbHVkZXMgdGFiLCBmaXJzdCBsaW5lIGluZGVudCwgYW5kIG1hcmdpbiBhdHRyaWJ1dGVzLjwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FUZXh0UGFuZWxJbXBsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMmRjODFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FUZXh0UGFuZWxJbXBsLmphdmEKQEAgLTAsMCArMSw3NTEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQWRqdXN0YWJsZTsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBjbGFzcyBmb3IgVGV4dFBhbmVsIGFuZCBKVGV4dFBhbmVsLgorICovCitmaW5hbCBjbGFzcyBBVGV4dFBhbmVsSW1wbCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5IGZSdW5TdHJhdGVneSA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50ID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXh0RWRpdEJlaGF2aW9yIGZFZGl0QmVoYXZpb3IgPSBudWxsOworICAgIHByaXZhdGUgTVRleHQgZlRleHQgPSBudWxsOworCisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkJyb2FkY2FzdGVyOworICAgIHByaXZhdGUgS2V5UmVtYXAgZlJlbWFwID0gS2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpOworCisgICAgLy8gVGhpcyBpcyBhIGxpdHRsZSB1Z2x5LiAgVGV4dFBhbmVsIHN1cHBvcnRzIGl0cyBtb2RpZmllZAorICAgIC8vIGZsYWcgd2hldGhlciBvciBub3QgaXQgaXMgZWRpdGFibGUsIG9yIGV2ZW4gc2VsZWN0YWJsZS4KKyAgICAvLyBTbyBpZiB0aGVyZSdzIG5vIGNvbW1hbmQgbG9nIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGZsYWcKKyAgICAvLyBzdGF0ZSB0aGVuIGl0cyBkb25lIHJpZ2h0IGhlcmUgaW4gVGV4dFBhbmVsLiAgSWYgdGhlCisgICAgLy8gcGFuZWwgaXMgZWRpdGFibGUgdGhpcyBmbGFnIGlzIGlnbm9yZWQuCisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZmllZCA9IGZhbHNlOworCisgICAgc3RhdGljIGZpbmFsIFRleHRQYW5lbFNldHRpbmdzIGZnRGVmYXVsdFNldHRpbmdzID0gbmV3IFRleHRQYW5lbFNldHRpbmdzKCk7CisKKyAgICBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiAoVGV4dFBhbmVsU2V0dGluZ3MpIGZnRGVmYXVsdFNldHRpbmdzLmNsb25lKCk7CisgICAgfQorICAgIAorICAgIEFUZXh0UGFuZWxJbXBsKFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIGNsaWVudCwKKyAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIGhvcnpTYiwKKyAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIHZlcnRTYikgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlJ1blN0cmF0ZWd5ID0gcnVuU3RyYXRlZ3k7CisgICAgICAgIGZCcm9hZGNhc3RlciA9IG5ldyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIoY2xpZW50KTsKKworICAgICAgICBTY3JvbGxlciBzY3JvbGxlciA9IG51bGw7CisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gbmV3IFNjcm9sbGVyKGhvcnpTYiwgdmVydFNiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgdGV4dENsaXBib2FyZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVkVGV4dENsaXBib2FyZC5nZXRDbGlwYm9hcmRGb3IoY2xpcGJvYXJkKTsKKworICAgICAgICBmVGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIGlmIChpbml0aWFsVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dC5hcHBlbmQoaW5pdGlhbFRleHQpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSBuZXcgVGV4dENvbXBvbmVudChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXREZWZhdWx0VmFsdWVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MuZ2V0V3JhcHMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0Q29tcG9uZW50LldJTkRPV19XSURUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0Q29tcG9uZW50LkRFRkFVTFRfSU5TRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJyb2FkY2FzdGVyKTsKKworICAgICAgICBpZiAoc2Nyb2xsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgc2Nyb2xsZXIuc2V0Q2xpZW50KGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTWF5IGhhdmUgdG8gd2FpdCB1bnRpbCBjb21wb25lbnQgaGFzIGhvc3QgdG8gZG8gdGhpczoKKyAgICAgICAgaWYgKHNldHRpbmdzLmdldFNlbGVjdGFibGUoKSkgeworICAgICAgICAgICAgZlNlbGVjdGlvbiA9IG5ldyBUZXh0U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQnJvYWRjYXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5KTsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0RWRpdGFibGUoKSkgeworICAgICAgICAgICAgICAgIGZFZGl0QmVoYXZpb3IgPSBuZXcgVGV4dEVkaXRCZWhhdmlvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudCwgZlNlbGVjdGlvbiwgZkJyb2FkY2FzdGVyLCBmUmVtYXApOworICAgICAgICAgICAgICAgIGZFZGl0QmVoYXZpb3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgRmFrZUNvbXBvbmVudCBnZXRUZXh0Q29tcG9uZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkJyb2FkY2FzdGVyLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQnJvYWRjYXN0ZXIucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFlvdSBrbm93IHdoYXQgdGhpcyBkb2VzLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBpbihpbnQgdmFsdWUsIGludCBtaW4sIGludCBtYXgpIHsKKworICAgICAgICBpZiAobWluID4gbWF4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFsdWUgPCBtaW4pIHsKKyAgICAgICAgICAgIHZhbHVlID0gbWluOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHZhbHVlID4gbWF4KSB7CisgICAgICAgICAgICB2YWx1ZSA9IG1heDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gVGV4dCBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG9wZXJhdGlvbgorICAgICAqIG1vZGlmaWVzIHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgMCwgZ2V0VGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuICBFcXVpdmFsZW50IHRvCisgICAgICogPHR0Pmluc2VydChuZXdUZXh0LCBnZXRUZXh0TGVuZ3RoKCkpPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBpbnQgbGVuZ3RoID0gZ2V0VGV4dExlbmd0aCgpOworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgbGVuZ3RoLCBsZW5ndGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gdGV4dCBpbnRvIHRoZSBkb2N1bWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGluc2VydCBpbnRvIHRoZSBkb2N1bWVudC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIGluIHRoZSBkb2N1bWVudCB3aGVyZSB0aGUKKyAgICAgKiAgICAgdGV4dCB3aWxsIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgcmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgc3RhcnQgPSBwaW4oc3RhcnQsIDAsIGxlbmd0aCk7CisgICAgICAgIGVuZCA9IHBpbihlbmQsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpIHsKKworICAgICAgICAgICAgLy8gSWYgd2UncmUgc2VsZWN0YWJsZSwgYnV0IG5vdCBlZGl0YWJsZSwgd2UnbGwgdGVtcG9yYXJpbHkKKyAgICAgICAgICAgIC8vIG1ha2Ugb3Vyc2VsdmVzIGVkaXRhYmxlIHRvIGNoYW5nZSB0aGUgdGV4dC4gIEEgbGl0dGxlIGZ1bm55CisgICAgICAgICAgICAvLyBidXQgdGhlcmUncyBhIGxvdCBvZiBjb2RlIGZvciBnZXR0aW5nIGNhcmV0IHN0dWZmIHJpZ2h0LAorICAgICAgICAgICAgLy8gYW5kIHRoaXMgaXMgbm90IGEgY29tbW9uIG9wZXJhdGlvbiBhbnl3YXkuCisKKyAgICAgICAgICAgIFRleHRFZGl0QmVoYXZpb3IgYmVoYXZpb3I7CisKKyAgICAgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvciA9IG5ldyBUZXh0RWRpdEJlaGF2aW9yKGZUZXh0Q29tcG9uZW50LCBmU2VsZWN0aW9uLCBmQnJvYWRjYXN0ZXIsIGZSZW1hcCk7CisgICAgICAgICAgICAgICAgYmVoYXZpb3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvciA9IGZFZGl0QmVoYXZpb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsZWN0aW9uID0gbmV3IFRleHRPZmZzZXQoc3RhcnQgKyBuZXdUZXh0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisKKyAgICAgICAgICAgIFRleHRSZXBsYWNlbWVudCByZXBsYWNlbWVudCA9IG5ldyBUZXh0UmVwbGFjZW1lbnQoc3RhcnQsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24pOworCisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUkVQTEFDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudCk7CisgICAgICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYmVoYXZpb3IucmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIE1UZXh0IG9sZFRleHQgPSBmVGV4dENvbXBvbmVudC5nZXRNb2RpZmlhYmxlVGV4dCgpOworICAgICAgICAgICAgZlRleHRDb21wb25lbnQuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgICAgICBvbGRUZXh0LnJlcGxhY2VBbGwobmV3VGV4dCk7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5yZWZvcm1hdEFuZERyYXdUZXh0KDAsIG5ld1RleHQubGVuZ3RoKCksIG51bGwsIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dExlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0VGV4dCgpLmxlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCk7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gU2VsZWN0aW9uIEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKSB7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBzZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChnZXRTZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rpb25FbmQpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgc2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBzZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBwaW4oc2VsZWN0aW9uU3RhcnQsIDAsIGxlbmd0aCk7CisgICAgICAgIHNlbGVjdGlvbkVuZCA9IHBpbihzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIFRleHRSYW5nZSByYW5nZSA9IG5ldyBUZXh0UmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5TRUxFQ1QsIHJhbmdlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgc2VsZWN0KDAsIGdldFRleHRMZW5ndGgoKSk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LnBhcmFncmFwaElzTGVmdFRvUmlnaHQob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuY2FuVW5kbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRWRpdEJlaGF2aW9yLmNhblJlZG8oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuaGFzQ29udGVudHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIG9iamVjdHNBcmVFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgCisgICAgICAgIGlmIChsaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHJocyA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBjb25zaXN0ZW50Q2hhclN0eWxlKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGRlZmF1bHRWYWx1ZSkgeworCisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByYW5nZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBydW5TdGFydCA9IHN0YXJ0OworICAgICAgICBPYmplY3QgaW5pdGlhbFZhbHVlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0KS5nZXQoa2V5KTsKKworICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAocnVuU3RhcnQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpOworICAgICAgICAgICAgIHJ1blN0YXJ0IDwgbGltaXQ7CisgICAgICAgICAgICAgcnVuU3RhcnQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpKSB7CisKKyAgICAgICAgICAgIE9iamVjdCBuZXh0VmFsdWUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChrZXkpOworCisgICAgICAgICAgICBpZiAobmV4dFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZXh0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKGluaXRpYWxWYWx1ZSwgbmV4dFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBNVGV4dFBhbmVsLk1VTFRJUExFX1ZBTFVFUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KSBhbmQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT5udWxsLCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSA8dHQ+ZGVmYXVsdFN0eWxlPC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHRoZSBpbXBsaWNpdCB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4gaW4KKyAgICAgKiAgICAgc3R5bGUgcnVucyB3aGVyZSA8dHQ+a2V5PC90dD4gaXMgbm90IGRlZmluZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlOworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKQorICAgICAgICAgICAgc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlbFJhbmdlID0gbmV3IFRleHRSYW5nZSgwLCAwKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNvbXBTdHlsZTsKKworICAgICAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbXBTdHlsZSA9IGZFZGl0QmVoYXZpb3IuZ2V0SW5zZXJ0aW9uUG9pbnRTdHlsZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcFN0eWxlID0gVGV4dEVkaXRCZWhhdmlvci50eXBpbmdTdHlsZUF0KGZUZXh0LCBzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBjb21wU3R5bGUuZ2V0KGtleSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU9PW51bGw/IGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSA6IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNvbnNpc3RlbnRDaGFyU3R5bGUoZlRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsUmFuZ2Uuc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxSYW5nZS5saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgcGFyYWdyYXBoIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpIGFuZCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPm51bGwsIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGltcGxpY2l0IHZhbHVlIG9mIDx0dD5rZXk8L3R0PiBpbgorICAgICAqICAgICBzdHlsZSBydW5zIHdoZXJlIDx0dD5rZXk8L3R0PiBpcyBub3QgZGVmaW5lZAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2U7CisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2VsUmFuZ2UgPSBuZXcgVGV4dFJhbmdlKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ID09IHNlbFJhbmdlLmxpbWl0KSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcFN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChzZWxSYW5nZS5zdGFydCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBwU3R5bGUuZ2V0KGtleSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU9PW51bGw/IGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSA6IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0ID0gc2VsUmFuZ2Uuc3RhcnQ7CisgICAgICAgICAgICBPYmplY3QgZGVmYXVsdFZhbHVlID0gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpOworICAgICAgICAgICAgT2JqZWN0IGluaXRpYWxWYWx1ZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQocGFyYWdyYXBoU3RhcnQpLmdldChrZXkpOworICAgICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKHBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA8IHNlbFJhbmdlLmxpbWl0OworICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA9IGZUZXh0LnBhcmFncmFwaExpbWl0KHBhcmFncmFwaFN0YXJ0KSkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IG5leHRWYWx1ZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQocGFyYWdyYXBoU3RhcnQpLmdldChrZXkpOworICAgICAgICAgICAgICAgIGlmIChuZXh0VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuZXh0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwoaW5pdGlhbFZhbHVlLCBuZXh0VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNVGV4dFBhbmVsLk1VTFRJUExFX1ZBTFVFUzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBsYWNlIGl0CisgICAgICogb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQKKyAgICAgKiBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3V0KCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ1VULCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQbGFjZSB0aGUgc2VsZWN0ZWQgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzCisgICAgICogbm8gZWZmZWN0IGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weSgpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNPUFksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0IHdpdGggdGhlIHRleHQgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8KKyAgICAgKiB0ZXh0IGlzIG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFzdGUoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5QQVNURSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZQorICAgICAqIHRleHQgaXMgbm90IGVkaXRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ0xFQVIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byB1bmRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5VTkRPLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gcmVkby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWRvKCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUkVETywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbW1hbmRMb2dTaXplKCkgeworCisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRWRpdEJlaGF2aW9yLmdldENvbW1hbmRMb2dTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4gIEFsbAorICAgICAqIHJlZG9hYmxlIGNvbW1hbmRzIGFyZSByZW1vdmVkIHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBzaXplIHRoZSBudW1iZXIgb2YgY29tbWFuZHMga2VwdCBpbiB0aGUgY29tbWFuZCBsb2cKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21tYW5kTG9nU2l6ZShpbnQgc2l6ZSkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuU0VUX0NPTU1BTkRfTE9HX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihzaXplKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DTEVBUl9DT01NQU5EX0xPRywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBjaGFyYWN0ZXIgc3R5bGVzIG9uIHRoZSBzZWxlY3RlZCBjaGFyYWN0ZXJzLiAgSWYgbm8gY2hhcmFjdGVycworICAgICAqIGFyZSBzZWxlY3RlZCwgbW9kaWZ5IHRoZSB0eXBpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNIQVJBQ1RFUl9TVFlMRV9NT0QsIG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlBBUkFHUkFQSF9TVFlMRV9NT0QsIG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmUmVtYXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlIHRoZSBnaXZlbiBLZXlSZW1hcCB0byBtYXAga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzLgorICAgICAqIE9ubHkga2V5CisgICAgICogZXZlbnRzIGFyZSBhZmZlY3RlZCBieSB0aGUgcmVtYXA7ICBvdGhlciB0ZXh0IGVudGVyaW5nIHRoZQorICAgICAqIGNvbnRyb2wgKHZpYSB0aGUgY2xpcGJvYXJkLCBmb3IgZXhhbXBsZSkgaXMgbm90IGFmZmVjdGVkCisgICAgICogYnkgdGhlIEtleVJlbWFwLgorICAgICAqIDxwPgorICAgICAqIERvIG5vdCBwYXNzIDx0dD5udWxsPC90dD4gdG8gdGhpcyBtZXRob2QgdG8gbGVhdmUga2V5CisgICAgICogZXZlbnRzIHVubWFwcGVkLiAgSW5zdGVhZCwgdXNlIDx0dD5LZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk8L3R0PgorICAgICAqIEBwYXJhbSByZW1hcCB0aGUgS2V5UmVtYXAgdG8gdXNlIGZvciBtYXBwaW5nIGtleSBldmVudHMgdG8gY2hhcmFjdGVycworICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHBhcmFtZXRlciBpcyBudWxsCisgICAgICogQHNlZSBLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEtleVJlbWFwKEtleVJlbWFwIHJlbWFwKSB7CisKKyAgICAgICAgaWYgKHJlbWFwID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigicmVtYXAgY2FuJ3QgYmUgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgZlJlbWFwID0gcmVtYXA7CisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZFZGl0QmVoYXZpb3Iuc2V0S2V5UmVtYXAocmVtYXApOworICAgICAgICB9CisKKyAgICAgICAgZkJyb2FkY2FzdGVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZNb2RpZmllZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlaGF2aW9yLlNFVF9NT0RJRklFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkPyBCb29sZWFuLlRSVUUgOiBCb29sZWFuLkZBTFNFKTsKKyAgICAgICAgaWYgKCFoYW5kbGVkKSB7CisgICAgICAgICAgICBmTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBwZXJmLXRlc3Rpbmcgb25seSEKKyAgICAgKi8KKyAgICB2b2lkIGhhbmRsZUtleUV2ZW50KGphdmEuYXd0LmV2ZW50LktleUV2ZW50IGtleUV2ZW50KSB7CisgICAgCisgICAgICAgIENvbXBvbmVudCBob3N0ID0gZlRleHRDb21wb25lbnQuZ2V0SG9zdCgpOworICAgICAgICBpZiAoaG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBob3N0LmRpc3BhdGNoRXZlbnQoa2V5RXZlbnQpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzNTYyMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEKQEAgLTAsMCArMSwxNzggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKgorRm9yIGFueSBpbmNvbWluZyBjaGFyYWN0ZXIgQworaWYgeW91IGNhbiBtYXAgQyB1c2luZyB0aGUgZm9sbG93aW5nIEZha2VBcmFiaWNUYWJsZSwgcmV0dXJuCitGYWtlQXJhYmljVGFibGUoQykKK2Vsc2UgaWYgQyBpcyBmcm9tIEEgdGhyb3VnaCBaLCByZXR1cm4gRmFrZUFyYWJpY1RhYmxlKGxvd2VyY2FzZShDKSkKK2Vsc2UganVzdCByZXR1cm4gQworCisKK0Zha2VBcmFiaWNUYWJsZSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgbWFwcGluZworCiswICAgMDY2MDtBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0FOOzswOzA7MDtOOzs7OzsKKzEgICAwNjYxO0FSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtBTjs7MTsxOzE7Tjs7Ozs7CisyICAgMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMyAgIDA2NjM7QVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7QU47OzM7MzszO047Ozs7OworNCAgIDA2NjQ7QVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtBTjs7NDs0OzQ7Tjs7Ozs7Cis1ICAgMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzYgICAwNjY2O0FSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtBTjs7Njs2OzY7Tjs7Ozs7Cis3ICAgMDY2NztBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtBTjs7Nzs3Ozc7Tjs7Ozs7Cis4ICAgMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7Cis5ICAgMDY2OTtBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0FOOzs5Ozk7OTtOOzs7OzsKKworJSAgIDA2NkE7QVJBQklDIFBFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKy4gICAwNjZCO0FSQUJJQyBERUNJTUFMIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKywgICAwNjBDO0FSQUJJQyBDT01NQTtQbzswO1I7Ozs7O047Ozs7OworLSAgIDA2NDA7QVJBQklDIFRBVFdFRUw7TG07MDtSOzs7OztOOzs7OzsKKycgICAwNjUyO0FSQUJJQyBTVUtVTjtNbjszNDtSOzs7OztOOzs7OzsKKyIgICAwNjUxO0FSQUJJQyBTSEFEREE7TW47MzM7Ujs7Ozs7TjtBUkFCSUMgU0hBRERBSDs7OzsKKzsgICAwNjFCO0FSQUJJQyBTRU1JQ09MT047UG87MDtSOzs7OztOOzs7OzsKKz8gICAwNjFGO0FSQUJJQyBRVUVTVElPTiBNQVJLO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisKK2EgICAwNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworQSAgIDA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtSOzs7OztOOzs7OzsKK2IgICAwNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKK2MgICAwNjM1O0FSQUJJQyBMRVRURVIgU0FEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitkICAgMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO1I7Ozs7O047Ozs7OworRCAgIDA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitFICAgMDY0QjtBUkFCSUMgRkFUSEFUQU47TW47Mjc7Ujs7Ozs7Tjs7Ozs7CitlICAgMDY0RTtBUkFCSUMgRkFUSEE7TW47MzA7Ujs7Ozs7TjtBUkFCSUMgRkFUSEFIOzs7OworZiAgIDA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7CitnICAgMDYzQTtBUkFCSUMgTEVUVEVSIEdIQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitoICAgMDYyRDtBUkFCSUMgTEVUVEVSIEhBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUE7Ozs7CitIICAgMDY0NztBUkFCSUMgTEVUVEVSIEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQTs7OzsKK0kgICAwNjREO0FSQUJJQyBLQVNSQVRBTjtNbjsyOTtSOzs7OztOOzs7OzsKK2kgICAwNjUwO0FSQUJJQyBLQVNSQTtNbjszMjtSOzs7OztOO0FSQUJJQyBLQVNSQUg7Ozs7CitqICAgMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtSOzs7OztOOzs7OzsKK0sgICAwNjJFO0FSQUJJQyBMRVRURVIgS0hBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworayAgIDA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworbCAgIDA2NDQ7QVJBQklDIExFVFRFUiBMQU07TG87MDtSOzs7OztOOzs7OzsKK20gICAwNjQ1O0FSQUJJQyBMRVRURVIgTUVFTTtMbzswO1I7Ozs7O047Ozs7OworbiAgIDA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitvICAgMDY0RjtBUkFCSUMgREFNTUE7TW47MzE7Ujs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworcCAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworcSAgIDA2NDI7QVJBQklDIExFVFRFUiBRQUY7TG87MDtSOzs7OztOOzs7OzsKK3IgICAwNjMxO0FSQUJJQyBMRVRURVIgUkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworcyAgIDA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitTICAgMDYzNDtBUkFCSUMgTEVUVEVSIFNIRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit0ICAgMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUE7Ozs7CitUICAgMDYyQjtBUkFCSUMgTEVUVEVSIFRIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEhBQTs7OzsKK1UgICAwNjRDO0FSQUJJQyBEQU1NQVRBTjtNbjsyODtSOzs7OztOOzs7OzsKK3UgICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7Cit2ICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK3cgICAwNjQ4O0FSQUJJQyBMRVRURVIgV0FXO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit4ICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK3kgICAwNjRBO0FSQUJJQyBMRVRURVIgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBOzs7OworeiAgIDA2MzI7QVJBQklDIExFVFRFUiBaQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitaICAgMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBESEFIOzs7OworCisqLworCisvKioKKyAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBLZXlSZW1hcCB0byBwcm9kdWNlIHRyYW5zbGl0ZXJhdGVkIEFyYWJpYworICogY2hhcmFjdGVycyBmcm9tIExhdGluLTEgY2hhcmFjdGVycy4KKyAqLworCitmaW5hbCBjbGFzcyBBcmFiaWNUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwNjYwJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFpFUk8KKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MDY2MSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBPTkUKKyAgICAgICAgICAgIGNhc2UgJzInOiByZXR1cm4gJ1x1MDY2Mic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUV08KKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDY2Myc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRQorICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwNjY0JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZPVVIKKyAgICAgICAgICAgIGNhc2UgJzUnOiByZXR1cm4gJ1x1MDY2NSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFCisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTA2NjYnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0lYCisgICAgICAgICAgICBjYXNlICc3JzogcmV0dXJuICdcdTA2NjcnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU4KKyAgICAgICAgICAgIGNhc2UgJzgnOiByZXR1cm4gJ1x1MDY2OCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVAorICAgICAgICAgICAgY2FzZSAnOSc6IHJldHVybiAnXHUwNjY5JzsgLy8gQVJBQklDLUlORElDIERJR0lUIE5JTkUKKworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwNjZBJzsgLy8gQVJBQklDIFBFUkNFTlQgU0lHTgorICAgICAgICAgICAgLy8gdGhlIFRyYWRpdGlvbmFsIEFyYWJpYyBmb250IGRvZXMgbm90IGNvbnRhaW4gdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDY2Qic7IC8vIEFSQUJJQyBERUNJTUFMIFNFUEFSQVRPUgorICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwNjBDJzsgLy8gQVJBQklDIENPTU1BCisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTA2NDAnOyAvLyBBUkFCSUMgVEFUV0VFTAorICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MDY1Mic7IC8vIEFSQUJJQyBTVUtVTgorICAgICAgICAgICAgY2FzZSAnIic6IHJldHVybiAnXHUwNjUxJzsgLy8gQVJBQklDIFNIQUREQQorICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwNjFCJzsgLy8gQVJBQklDIFNFTUlDT0xPTgorICAgICAgICAgICAgY2FzZSAnPyc6IHJldHVybiAnXHUwNjFGJzsgLy8gQVJBQklDIFFVRVNUSU9OIE1BUksKKworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNjI3JzsgLy8gQVJBQklDIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA2MzknOyAvLyBBUkFCSUMgTEVUVEVSIEFJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MDYyRic7IC8vIEFSQUJJQyBMRVRURVIgREFMCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA2MzAnOyAvLyBBUkFCSUMgTEVUVEVSIFRIQUwKKyAgICAgICAgICAgIGNhc2UgJ2UnOiByZXR1cm4gJ1x1MDY0RSc7IC8vIEFSQUJJQyBGQVRIQQorICAgICAgICAgICAgY2FzZSAnRSc6IHJldHVybiAnXHUwNjRCJzsgLy8gQVJBQklDIEZBVEhBVEFOCisgICAgICAgICAgICBjYXNlICdmJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnRic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ2cnOiByZXR1cm4gJ1x1MDYzQSc7IC8vIEFSQUJJQyBMRVRURVIgR0hBSU4KKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MDYzQSc7IC8vIEFSQUJJQyBMRVRURVIgR0hBSU4KKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MDYyRCc7IC8vIEFSQUJJQyBMRVRURVIgSEFICisgICAgICAgICAgICBjYXNlICdIJzogcmV0dXJuICdcdTA2NDcnOyAvLyBBUkFCSUMgTEVUVEVSIEhFSAorICAgICAgICAgICAgY2FzZSAnaSc6IHJldHVybiAnXHUwNjUwJzsgLy8gQVJBQklDIEtBU1JBCisgICAgICAgICAgICBjYXNlICdJJzogcmV0dXJuICdcdTA2NEQnOyAvLyBBUkFCSUMgS0FTUkFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDYyQyc7IC8vIEFSQUJJQyBMRVRURVIgSkVFTQorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA2NDMnOyAvLyBBUkFCSUMgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNjJFJzsgLy8gQVJBQklDIExFVFRFUiBLSEFICisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNjQ0JzsgLy8gQVJBQklDIExFVFRFUiBMQU0KKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDY0NSc7IC8vIEFSQUJJQyBMRVRURVIgTUVFTQorICAgICAgICAgICAgY2FzZSAnTSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA2NDYnOyAvLyBBUkFCSUMgTEVUVEVSIE5PT04KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnbyc6IHJldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNjM0JzsgLy8gQVJBQklDIExFVFRFUiBTSEVFTgorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNjJBJzsgLy8gQVJBQklDIExFVFRFUiBURUgKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDYyQic7IC8vIEFSQUJJQyBMRVRURVIgVEhFSAorICAgICAgICAgICAgY2FzZSAnVSc6IHJldHVybiAnXHUwNjRDJzsgLy8gQVJBQklDIERBTU1BVEFOCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDY0OCc7IC8vIEFSQUJJQyBMRVRURVIgV0FXCisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAneSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ1knOiByZXR1cm4gJ1x1MDY0QSc7IC8vIEFSQUJJQyBMRVRURVIgWUVICisgICAgICAgICAgICBjYXNlICd6JzogcmV0dXJuICdcdTA2MzInOyAvLyBBUkFCSUMgTEVUVEVSIFpBSU4KKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDYzOCc7IC8vIEFSQUJJQyBMRVRURVIgWkFICisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0ZDY2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3IuamF2YQpAQCAtMCwwICsxLDIwMSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CisKKy8qKiBBIGNsYXNzIHRoYXQgaGFuZGxlcyBldmVudHMgZm9yIGEgQmVoYXZpb3JPd25lci4KKyogQSBiZWhhdmlvciBlbmFjcHN1bGF0ZXMgc29tZSBwaWVjZSBvZiB0aGUgZXZlbnQtaGFuZGxpbmcgbG9naWMgZm9yIGEgY29tcG9uZW50LgorKiBUaGlzIGFsbG93cyB0aGUgY2xpZW50IHRvIHNlcGFyYXRlIGV2ZW50LWhhbmRsaW5nIGxvZ2ljIG91dCBpbnRvIHNlcGFyYXRlIGNsYXNzZXMKKyogYWNjb3JkaW5nIHRvIGZ1bmN0aW9uLCBvciB0byBkeW5hbWljYWxseSBjaGFuZ2UgdGhlIHdheSBhIGNvbXBvbmVudCBoYW5kbGVzCisqIGV2ZW50cyB3aXRob3V0IGFkZGluZyBhIGxvdCBvZiBzcGVjaWFsLWNhc2UgY29kZSB0byB0aGUgcGFuZWwgaXRzZWxmLgorKiBCZWhhdmlvcnMgYXJlIHN0b3JlZCBpbiBhIGxpbmtlZCBsaXN0LCBhbmQgYWxsIGJlaGF2aW9ycyBnZXQgYSBjcmFjayBhdCBhbiBldmVudCBiZWZvcmUKKyogdGhlIG93bmVyIGdldHMgYSBjcmFjayBhdCB0aGVtIChyaWdodCBub3csIHdlIHJlbHkgb24gb2JqZWN0cyB0aGF0IGltcGxlbWVudAorKiBCZWhhdmlvck93bmVyIHRvIHN1cHBvcnQgdGhlc2Ugc2VtYW50aWNzKS4KKyogQmVoYXZpb3IgcHJvdmlkZXMgYWxsIHRoZSBzYW1lIGV2ZW50LWhhbmRsaW5nIGZ1bmN0aW9ucyB0aGF0IENvbXBvbmVudCBwcm92aWRlcywgYW5kCisqIHRoZXkgYWxsIGhhdmUgZXhhY3RseSB0aGUgc2FtZSBzeW50YXggYW5kIHNlbWFudGljcy4gKi8KK2Fic3RyYWN0IGNsYXNzIEJlaGF2aW9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBCZWhhdmlvciBmTmV4dEJlaGF2aW9yID0gbnVsbDsKKyAgICBwcml2YXRlIEJlaGF2aW9yT3duZXIgZk93bmVyID0gbnVsbDsKKworICAgIHN0YXRpYyBjbGFzcyBFdmVudFR5cGUgeworCisgICAgICAgIEV2ZW50VHlwZSgpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGV2ZW50cyAtIHNob3VsZCB0aGVzZSBiZSBpbiBUZXh0UGFuZWwgKG9yIGVsc2V3aGVyZSk/CisKKyAgICAvLyBUaGlzIGV2ZW50J3MgV0hBVCBwYXJhbWV0ZXIgaXMgYSBUZXh0UmFuZ2UgaW5zdGFuY2UKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFNFTEVDVCA9IG5ldyBFdmVudFR5cGUoKTsKKworICAgIC8vIE5vIFdIQVQgcGFyYW0gZm9yIHRoZXNlOgorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ1VUID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ09QWSA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFBBU1RFID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0xFQVIgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBVTkRPID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgUkVETyA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIENMRUFSX0NPTU1BTkRfTE9HID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV0hBVCBwYXJhbSBpcyBhIFN0eWxlTW9kaWZpZXIKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIENIQVJBQ1RFUl9TVFlMRV9NT0QgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBQQVJBR1JBUEhfU1RZTEVfTU9EID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV2l0aCB0aGlzIGV2ZW50LCB2YWx1ZXMgb2YgdGhlIFdIQVQgcGFyYW1ldGVyIGFyZQorICAgIC8vIGVpdGhlciBCb29sZWFuLlRSVUUgb3IgQm9vbGVhbi5GQUxTRQorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgU0VUX01PRElGSUVEID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV0hBVCBwYXJhbSBpcyBhIFRleHRSZXBsYWNlbWVudAorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgUkVQTEFDRSA9IG5ldyBFdmVudFR5cGUoKTsKKworICAgIC8vIFdIQVQgcGFyYW0gaXMgYW4gSW50ZWdlcgorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgU0VUX0NPTU1BTkRfTE9HX1NJWkUgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICBwdWJsaWMgQmVoYXZpb3IoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkVG9Pd25lcihCZWhhdmlvck93bmVyIG93bmVyKSB7CisgICAgICAgIHJlbW92ZUZyb21Pd25lcigpOworICAgICAgICBmT3duZXIgPSBvd25lcjsKKyAgICAgICAgc2V0TmV4dEJlaGF2aW9yKG93bmVyLmdldEJlaGF2aW9yKCkpOworICAgICAgICBvd25lci5zZXRCZWhhdmlvcih0aGlzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLmZvY3VzR2FpbmVkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IuZm9jdXNMb3N0KGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5rZXlQcmVzc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLmtleVR5cGVkKGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3Iua2V5UmVsZWFzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZURyYWdnZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZUVudGVyZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRXhpdGVkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VNb3ZlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlTW92ZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZVByZXNzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBCZWhhdmlvciBuZXh0QmVoYXZpb3IoKSB7CisgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHBhaW50KEdyYXBoaWNzIGcsIFJlY3RhbmdsZSBkcmF3UmVjdCkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IucGFpbnQoZywgZHJhd1JlY3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRnJvbU93bmVyKCkgeworICAgICAgICBpZiAoZk93bmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChmT3duZXIuZ2V0QmVoYXZpb3IoKSA9PSB0aGlzKQorICAgICAgICAgICAgICAgIGZPd25lci5zZXRCZWhhdmlvcihuZXh0QmVoYXZpb3IoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBCZWhhdmlvciAgICBjdXJyZW50ID0gZk93bmVyLmdldEJlaGF2aW9yKCk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudCAhPSBudWxsICYmIGN1cnJlbnQubmV4dEJlaGF2aW9yKCkgIT0gdGhpcykKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dEJlaGF2aW9yKCk7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudC5zZXROZXh0QmVoYXZpb3IobmV4dEJlaGF2aW9yKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0TmV4dEJlaGF2aW9yKG51bGwpOworICAgICAgICAgICAgZk93bmVyID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldE5leHRCZWhhdmlvcihCZWhhdmlvciBuZXh0KSB7CisgICAgICAgIGZOZXh0QmVoYXZpb3IgPSBuZXh0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChFdmVudFR5cGUgZXZlbnQsIE9iamVjdCBkYXRhKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIGRhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvck93bmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTgyZmVkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvck93bmVyLmphdmEKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ludGVyZmFjZSBCZWhhdmlvck93bmVyIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBCZWhhdmlvciBnZXRCZWhhdmlvcigpOworICAgIHB1YmxpYyB2b2lkIHNldEJlaGF2aW9yKEJlaGF2aW9yIGIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Db21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGRkZDI3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Db21tYW5kLmphdmEKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2Fic3RyYWN0IGNsYXNzIENvbW1hbmQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIENvbW1hbmQgZlByZXZpb3VzQ29tbWFuZCA9IG51bGw7CisKKyAgICAvLyBmTW9kaWZpZWQgaXMgdXNlZCB0byBrZWVwIGEgdGV4dE1vZGlmaWVkIGZsYWcgZm9yCisgICAgLy8gY2xpZW50cworICAgIHByaXZhdGUgYm9vbGVhbiBmTW9kaWZpZWQ7CisKKyAgICBwdWJsaWMgQ29tbWFuZCgpIHsKKyAgICAgICAgZk1vZGlmaWVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29tbWFuZCBwcmV2aW91c0NvbW1hbmQoKSB7CisgICAgICAgIHJldHVybiBmUHJldmlvdXNDb21tYW5kOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFByZXZpb3VzQ29tbWFuZChDb21tYW5kICBwcmV2aW91c0NvbW1hbmQpIHsKKyAgICAgICAgZlByZXZpb3VzQ29tbWFuZCA9IHByZXZpb3VzQ29tbWFuZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBleGVjdXRlKCk7CisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgdW5kbygpOworCisgICAgcHVibGljIHZvaWQgcmVkbygpIHsKKyAgICAgICAgZXhlY3V0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZNb2RpZmllZDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisKKyAgICAgICAgZk1vZGlmaWVkID0gbW9kaWZpZWQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0Zha2VDb21wb25lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9GYWtlQ29tcG9uZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzM4Y2Q4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9GYWtlQ29tcG9uZW50LmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CisKK2Fic3RyYWN0IGNsYXNzIEZha2VDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIENvbXBvbmVudCBmSG9zdDsKKyAgICAKKyAgICBhYnN0cmFjdCB2b2lkIGFkZE5vdGlmeSgpOworICAgIGFic3RyYWN0IHZvaWQgcGFpbnQoR3JhcGhpY3MgZyk7CisgICAgdm9pZCBzZXRIb3N0KENvbXBvbmVudCBob3N0KSB7ICAgCisgICAgICAgIGZIb3N0ID0gaG9zdDsKKyAgICB9CisgICAgYWJzdHJhY3Qgdm9pZCByZXF1ZXN0Rm9jdXMoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hhY2tBcmFiaWNUcmFuc2xpdGVyYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmUwNTdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hhY2tBcmFiaWNUcmFuc2xpdGVyYXRpb24uamF2YQpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qCitGb3IgYW55IGluY29taW5nIGNoYXJhY3RlciBDCitpZiB5b3UgY2FuIG1hcCBDIHVzaW5nIHRoZSBmb2xsb3dpbmcgRmFrZUFyYWJpY1RhYmxlLCByZXR1cm4KK0Zha2VBcmFiaWNUYWJsZShDKQorZWxzZSBpZiBDIGlzIGZyb20gQSB0aHJvdWdoIFosIHJldHVybiBGYWtlQXJhYmljVGFibGUobG93ZXJjYXNlKEMpKQorZWxzZSBqdXN0IHJldHVybiBDCisKKworRmFrZUFyYWJpY1RhYmxlIGlzIGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBtYXBwaW5nCisKKzAgICAwNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMSAgIDA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzIgICAwNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiszICAgMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7Cis0ICAgMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzUgICAwNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworNiAgIDA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzcgICAwNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzggICAwNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzkgICAwNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworCislICAgMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworLiAgIDA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworLCAgIDA2MEM7QVJBQklDIENPTU1BO1BvOzA7Ujs7Ozs7Tjs7Ozs7CistICAgMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworJyAgIDA2NTI7QVJBQklDIFNVS1VOO01uOzM0O1I7Ozs7O047Ozs7OworIiAgIDA2NTE7QVJBQklDIFNIQUREQTtNbjszMztSOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworOyAgIDA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO1I7Ozs7O047Ozs7OworPyAgIDA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKworYSAgIDA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitBICAgMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworYiAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworYyAgIDA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKK2QgICAwNjJGO0FSQUJJQyBMRVRURVIgREFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitEICAgMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtSOzs7OztOOzs7OzsKK0UgICAwNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztSOzs7OztOOzs7OzsKK2UgICAwNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtSOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CitmICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK2cgICAwNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtSOzs7OztOOzs7OzsKK2ggICAwNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKK0ggICAwNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworSSAgIDA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O1I7Ozs7O047Ozs7OworaSAgIDA2NTA7QVJBQklDIEtBU1JBO01uOzMyO1I7Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKK2ogICAwNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO1I7Ozs7O047Ozs7OworSyAgIDA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtIQUE7Ozs7CitrICAgMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CitsICAgMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworbSAgIDA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CituICAgMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtSOzs7OztOOzs7OzsKK28gICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CitwICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitxICAgMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO1I7Ozs7O047Ozs7OworciAgIDA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CitzICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK1MgICAwNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKK3QgICAwNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKK1QgICAwNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworVSAgIDA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O1I7Ozs7O047Ozs7OwordSAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OwordyAgIDA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtSOzs7OztOOzs7OzsKK3ggICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworeSAgIDA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7Cit6ICAgMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKK1ogICAwNjM4O0FSQUJJQyBMRVRURVIgWkFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CisKKyovCisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgQXJhYmljCisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKKy8vIE5PVEU6IHRoaXMgY2xhc3MgZWxpbWluYXRlcyBBcmFiaWMgdm93ZWxzIHdoaWNoIGxvb2sgdWdseQorLy8gaW4gdGhlIGZvbnQgaW4gd2hpY2ggd2UgaGFwcGVuIHRvIGJlIGRlbW8naW5nLiAgSXQncyB0b3RhbGx5CisvLyBib2d1cyBvdGhlcndpc2UuCitmaW5hbCBjbGFzcyBIYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJzAnOiByZXR1cm4gJ1x1MDY2MCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPCisgICAgICAgICAgICBjYXNlICcxJzogcmV0dXJuICdcdTA2NjEnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgT05FCisgICAgICAgICAgICBjYXNlICcyJzogcmV0dXJuICdcdTA2NjInOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgVFdPCisgICAgICAgICAgICBjYXNlICczJzogcmV0dXJuICdcdTA2NjMnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUUKKyAgICAgICAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ1x1MDY2NCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSCisgICAgICAgICAgICBjYXNlICc1JzogcmV0dXJuICdcdTA2NjUnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRklWRQorICAgICAgICAgICAgY2FzZSAnNic6IHJldHVybiAnXHUwNjY2JzsgLy8gQVJBQklDLUlORElDIERJR0lUIFNJWAorICAgICAgICAgICAgY2FzZSAnNyc6IHJldHVybiAnXHUwNjY3JzsgLy8gQVJBQklDLUlORElDIERJR0lUIFNFVkVOCisgICAgICAgICAgICBjYXNlICc4JzogcmV0dXJuICdcdTA2NjgnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQKKyAgICAgICAgICAgIGNhc2UgJzknOiByZXR1cm4gJ1x1MDY2OSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FCisKKyAgICAgICAgICAgIGNhc2UgJyUnOiByZXR1cm4gJ1x1MDY2QSc7IC8vIEFSQUJJQyBQRVJDRU5UIFNJR04KKyAgICAgICAgICAgIC8vIHRoZSBUcmFkaXRpb25hbCBBcmFiaWMgZm9udCBkb2VzIG5vdCBjb250YWluIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBjYXNlICcuJzogcmV0dXJuICdcdTA2NkInOyAvLyBBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1IKKyAgICAgICAgICAgIGNhc2UgJywnOiByZXR1cm4gJ1x1MDYwQyc7IC8vIEFSQUJJQyBDT01NQQorICAgICAgICAgICAgY2FzZSAnLSc6IHJldHVybiAnXHUwNjQwJzsgLy8gQVJBQklDIFRBVFdFRUwKKyAgICAgICAgICAgIGNhc2UgJ1wnJzogcmV0dXJuICdcdTA2NTInOyAvLyBBUkFCSUMgU1VLVU4KKyAgICAgICAgICAgIGNhc2UgJyInOiByZXR1cm4gJ1x1MDY1MSc7IC8vIEFSQUJJQyBTSEFEREEKKyAgICAgICAgICAgIGNhc2UgJzsnOiByZXR1cm4gJ1x1MDYxQic7IC8vIEFSQUJJQyBTRU1JQ09MT04KKyAgICAgICAgICAgIGNhc2UgJz8nOiByZXR1cm4gJ1x1MDYxRic7IC8vIEFSQUJJQyBRVUVTVElPTiBNQVJLCisKKyAgICAgICAgICAgIGNhc2UgJ2EnOiByZXR1cm4gJ1x1MDYyNyc7IC8vIEFSQUJJQyBMRVRURVIgQUxFRgorICAgICAgICAgICAgY2FzZSAnQSc6IHJldHVybiAnXHUwNjM5JzsgLy8gQVJBQklDIExFVFRFUiBBSU4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdCJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ0MnOiByZXR1cm4gJ1x1MDYzNSc7IC8vIEFSQUJJQyBMRVRURVIgU0FECisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA2MkYnOyAvLyBBUkFCSUMgTEVUVEVSIERBTAorICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwNjMwJzsgLy8gQVJBQklDIExFVFRFUiBUSEFMCisgICAgICAgICAgICBjYXNlICdlJzogLy9yZXR1cm4gJ1x1MDY0RSc7IC8vIEFSQUJJQyBGQVRIQQorICAgICAgICAgICAgY2FzZSAnRSc6IC8vcmV0dXJuICdcdTA2NEInOyAvLyBBUkFCSUMgRkFUSEFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNjJEJzsgLy8gQVJBQklDIExFVFRFUiBIQUgKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDY0Nyc7IC8vIEFSQUJJQyBMRVRURVIgSEVICisgICAgICAgICAgICBjYXNlICdpJzogLy9yZXR1cm4gJ1x1MDY1MCc7IC8vIEFSQUJJQyBLQVNSQQorICAgICAgICAgICAgY2FzZSAnSSc6IC8vcmV0dXJuICdcdTA2NEQnOyAvLyBBUkFCSUMgS0FTUkFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDYyQyc7IC8vIEFSQUJJQyBMRVRURVIgSkVFTQorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA2NDMnOyAvLyBBUkFCSUMgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNjJFJzsgLy8gQVJBQklDIExFVFRFUiBLSEFICisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNjQ0JzsgLy8gQVJBQklDIExFVFRFUiBMQU0KKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDY0NSc7IC8vIEFSQUJJQyBMRVRURVIgTUVFTQorICAgICAgICAgICAgY2FzZSAnTSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA2NDYnOyAvLyBBUkFCSUMgTEVUVEVSIE5PT04KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnbyc6IC8vcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ08nOiAvL3JldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICdwJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnUCc6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTA2NDInOyAvLyBBUkFCSUMgTEVUVEVSIFFBRgorICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ1InOiByZXR1cm4gJ1x1MDYzMSc7IC8vIEFSQUJJQyBMRVRURVIgUkVICisgICAgICAgICAgICBjYXNlICdzJzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ1MnOiByZXR1cm4gJ1x1MDYzNCc7IC8vIEFSQUJJQyBMRVRURVIgU0hFRU4KKyAgICAgICAgICAgIGNhc2UgJ3QnOiByZXR1cm4gJ1x1MDYyQSc7IC8vIEFSQUJJQyBMRVRURVIgVEVICisgICAgICAgICAgICBjYXNlICdUJzogcmV0dXJuICdcdTA2MkInOyAvLyBBUkFCSUMgTEVUVEVSIFRIRUgKKyAgICAgICAgICAgIGNhc2UgJ1UnOiAvL3JldHVybiAnXHUwNjRDJzsgLy8gQVJBQklDIERBTU1BVEFOCisgICAgICAgICAgICBjYXNlICd1JzogLy9yZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDYzMic7IC8vIEFSQUJJQyBMRVRURVIgWkFJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNjM4JzsgLy8gQVJBQklDIExFVFRFUiBaQUgKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IZWJyZXdUcmFuc2xpdGVyYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IZWJyZXdUcmFuc2xpdGVyYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNGZlNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKioKKyAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBLZXlSZW1hcCB0byBwcm9kdWNlIHRyYW5zbGl0ZXJhdGVkIEhlYnJldworICogY2hhcmFjdGVycyBmcm9tIExhdGluLTEgY2hhcmFjdGVycy4KKyAqLworCitmaW5hbCBjbGFzcyBIZWJyZXdUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNUQwJzsgLy8gSEVCUkVXIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA1RTInOyAvLyBIRUJSRVcgTEVUVEVSIEFZSU4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDVEMSc7IC8vIEhFQlJFVyBMRVRURVIgQkVUCisgICAgICAgICAgICBjYXNlICdCJzogcmV0dXJuICdcdTA1RDEnOyAvLyBIRUJSRVcgTEVUVEVSIEJFVAorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNUU2JzsgLy8gSEVCUkVXIExFVFRFUiBUU0FESQorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNUU1JzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESQorICAgICAgICAgICAgY2FzZSAnZCc6IHJldHVybiAnXHUwNUQzJzsgLy8gSEVCUkVXIExFVFRFUiBEQUxFVAorICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwNUJDJzsgLy8gSEVCUkVXIFBPSU5UIERBR0VTSAorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNUI1JzsgLy8gSEVCUkVXIFBPSU5UIFRTRVJFCisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTA1QjYnOyAvLyBIRUJSRVcgUE9JTlQgU0VHT0wKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ2cnOiByZXR1cm4gJ1x1MDVEMic7IC8vIEhFQlJFVyBMRVRURVIgR0lNRUwKKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MDVEMic7IC8vIEhFQlJFVyBMRVRURVIgR0lNRUwKKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MDVENCc7IC8vIEhFQlJFVyBMRVRURVIgSEUKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDVENyc7IC8vIEhFQlJFVyBMRVRURVIgSEVUCisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnSSc6IHJldHVybiAnXHUwNUI0JzsgLy8gSEVCUkVXIFBPSU5UIEhJUklRCisgICAgICAgICAgICBjYXNlICdqJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNUMxJzsgLy8gSEVCUkVXIFBPSU5UIFNISU4gRE9UCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA1REInOyAvLyBIRUJSRVcgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNURBJzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBLQUYKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDVEQyc7IC8vIEhFQlJFVyBMRVRURVIgTEFNRUQKKyAgICAgICAgICAgIGNhc2UgJ0wnOiByZXR1cm4gJ1x1MDVEQyc7IC8vIEhFQlJFVyBMRVRURVIgTEFNRUQKKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDVERSc7IC8vIEhFQlJFVyBMRVRURVIgTUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA1REQnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIE1FTQorICAgICAgICAgICAgY2FzZSAnbic6IHJldHVybiAnXHUwNUUwJzsgLy8gSEVCUkVXIExFVFRFUiBOVU4KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDVERic7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgTlVOCisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTA1RDUnOyAvLyBIRUJSRVcgTEVUVEVSIFZBVgorICAgICAgICAgICAgY2FzZSAnTyc6IHJldHVybiAnXHUwNUI5JzsgLy8gSEVCUkVXIFBPSU5UIEhPTEFNCisgICAgICAgICAgICBjYXNlICdwJzogcmV0dXJuICdcdTA1RTQnOyAvLyBIRUJSRVcgTEVUVEVSIFBFCisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA1RTMnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFBFCisgICAgICAgICAgICBjYXNlICdxJzogcmV0dXJuICdcdTA1RTcnOyAvLyBIRUJSRVcgTEVUVEVSIFFPRgorICAgICAgICAgICAgY2FzZSAnUSc6IHJldHVybiAnXHUwNUU3JzsgLy8gSEVCUkVXIExFVFRFUiBRT0YKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MDVFOCc7IC8vIEhFQlJFVyBMRVRURVIgUkVTSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNUJGJzsgLy8gSEVCUkVXIFBPSU5UIFJBRkUKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDVFOSc7IC8vIEhFQlJFVyBMRVRURVIgU0hJTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNUUxJzsgLy8gSEVCUkVXIExFVFRFUiBTQU1FS0gKKyAgICAgICAgICAgIGNhc2UgJ3QnOiByZXR1cm4gJ1x1MDVFQSc7IC8vIEhFQlJFVyBMRVRURVIgVEFWCisgICAgICAgICAgICBjYXNlICdUJzogcmV0dXJuICdcdTA1RDgnOyAvLyBIRUJSRVcgTEVUVEVSIFRFVAorICAgICAgICAgICAgY2FzZSAndSc6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1UnOiByZXR1cm4gJ1x1MDVCQic7IC8vIEhFQlJFVyBQT0lOVCBRVUJVVFMKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTA1QjcnOyAvLyBIRUJSRVcgUE9JTlQgUEFUQUgKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdXJzogcmV0dXJuICdcdTA1QjgnOyAvLyBIRUJSRVcgUE9JTlQgUUFNQVRTCisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTA1RTYnOyAvLyBIRUJSRVcgTEVUVEVSIFRTQURJCisgICAgICAgICAgICBjYXNlICdYJzogcmV0dXJuICdcdTA1RTUnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNUQ5JzsgLy8gSEVCUkVXIExFVFRFUiBZT0QKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDVENic7IC8vIEhFQlJFVyBMRVRURVIgWkFZSU4KKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDVDMic7IC8vIEhFQlJFVyBQT0lOVCBTSU4gRE9UCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0lzcmFlbE5pa3VkS2V5Ym9hcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNzE4ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0lzcmFlbE5pa3VkS2V5Ym9hcmQuamF2YQpAQCAtMCwwICsxLDgyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LCBBbGwgUmlnaHRzIFJlc2VydmVkCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCisvKioKKyAqIFRoaXMgY2xhc3Mgc2ltdWxhdGVzIGEgTmlrdWQga2V5Ym9hcmQgb24gYSBVUy1FbmdsaXNoCisgKiBrZXlib2FyZC4gIEl0IGlzIHZlcnkgbXVjaCBhIHdvcmsgaW4gcHJvZ3Jlc3MuCisgKi8KKworZmluYWwgY2xhc3MgSXNyYWVsTmlrdWRLZXlib2FyZCBleHRlbmRzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJ3QnOiByZXR1cm4gJ1x1MDVEMCc7IC8vIGFsZWYKKyAgICAgICAgICAgIGNhc2UgJ2MnOiByZXR1cm4gJ1x1MDVEMSc7IC8vIGJldAorICAgICAgICAgICAgY2FzZSAnZCc6IHJldHVybiAnXHUwNUQyJzsgLy8gZ2ltZWwKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDVEMyc7IC8vIGRhbGV0CisgICAgICAgICAgICBjYXNlICd2JzogcmV0dXJuICdcdTA1RDQnOyAvLyBoZQorICAgICAgICAgICAgY2FzZSAndSc6IHJldHVybiAnXHUwNUQ1JzsgLy8gdmF2CisgICAgICAgICAgICBjYXNlICd6JzogcmV0dXJuICdcdTA1RDYnOyAvLyB6YXlpbgorICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwNUQ3JzsgLy8gaGV0CisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA1RDgnOyAvLyB0ZXQKKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MDVEOSc7IC8vIHlvZAorICAgICAgICAgICAgY2FzZSAnbCc6IHJldHVybiAnXHUwNURBJzsgLy8gZmluYWwga2FmCisgICAgICAgICAgICBjYXNlICdmJzogcmV0dXJuICdcdTA1REInOyAvLyBrYWYKKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDVEQyc7IC8vIGxhbWVkCisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTA1REQnOyAvLyBmaW5hbCBtZW0KKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MDVERSc7IC8vIG1lbQorICAgICAgICAgICAgY2FzZSAnaSc6IHJldHVybiAnXHUwNURGJzsgLy8gZmluYWwgbnVuCisgICAgICAgICAgICBjYXNlICdiJzogcmV0dXJuICdcdTA1RTAnOyAvLyBudW4KKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDVFMSc7IC8vIHNhbWVjaAorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNUUyJzsgLy8gYXlpbgorICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwNUUzJzsgLy8gZmluYWwgcGUKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIHBlCisgICAgICAgICAgICBjYXNlICcuJzogcmV0dXJuICdcdTA1RTUnOyAvLyBmaW5hbCB0c2FkaQorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNUU2JzsgLy8gdHNhZGkKKyAgICAgICAgICAgIGNhc2UgJ2UnOiByZXR1cm4gJ1x1MDVFNyc7IC8vIHFvZgorICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwNUU4JzsgLy8gcmVzaAorICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNUU5JzsgLy8gc2hpbgorICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwNUVBJzsgLy8gdGF2CisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICcsJzsKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJy8nOworICAgICAgICAgICAgY2FzZSAnLyc6IHJldHVybiAnLic7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciByZW1hcChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIC8vICBOb3RlOiAgb25seSBvbmUgY3RybCBjYXNlIG5vdyAoY3RybC0vIC0+IGRhZ2VzaCkuCisgICAgICAgIC8vICBCZXR0ZXIgaW1wbGVtZW50YXRpb24gd2lsbCBiZSBuZWVkZWQgZm9yIG1vcmUgY2FzZXMuCisKKyAgICAgICAgaWYgKGtleUV2ZW50LmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgaWYgKGtleUV2ZW50LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19TTEFTSCkgeworICAgICAgICAgICAgICAgIHJldHVybiAnXHUwNUJDJzsgLy8gZGFnZXNoCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVtYXAoa2V5RXZlbnQuZ2V0S2V5Q2hhcigpKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0pUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9KVGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzUzMDliOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9KVGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSw1ODAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQWRqdXN0YWJsZTsKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KQ29tcG9uZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuU3dpbmdVdGlsaXRpZXM7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKKy8qKgorICogSlRleHRQYW5lbCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dFBhbmVsIGluIGEgU3dpbmcgSlBhbmVsLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKVGV4dFBhbmVsIGV4dGVuZHMgSlBhbmVsIGltcGxlbWVudHMgTVRleHRQYW5lbCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3Mgc2V0CisgICAgICogdG8gdGhlIGRlZmF1bHQgdmFsdWVzLiAgQ2xpZW50cyBjYW4gbW9kaWZ5IHRoaXMgb2JqZWN0OworICAgICAqIG1vZGlmaWNhdGlvbnMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAcmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugc2V0IHRvIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiBBVGV4dFBhbmVsSW1wbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRQYW5lbCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIEpUZXh0UGFuZWwoTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHRoaXMoQVRleHRQYW5lbEltcGwuZmdEZWZhdWx0U2V0dGluZ3MsIGluaXRpYWxUZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBzZXR0aW5ncyB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgSlRleHRQYW5lbAorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBKVGV4dFBhbmVsKFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIoZmFsc2UpOworICAgICAgICAKKyAgICAgICAgSlNjcm9sbEJhciBob3J6U2IgPSBudWxsOworICAgICAgICBKU2Nyb2xsQmFyIHZlcnRTYiA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0U2Nyb2xsYWJsZSgpKSB7CisKKyAgICAgICAgICAgIHNldExheW91dChuZXcgU2Nyb2xsQmFyTGF5b3V0KCkpOworCisgICAgICAgICAgICBib29sZWFuIHNjcm9sbEJhcnNWaXNpYmxlID0gc2V0dGluZ3MuZ2V0U2Nyb2xsQmFyc1Zpc2libGUoKTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbEJhcnNWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgaG9yelNiID0gbmV3IEpTY3JvbGxCYXIoQWRqdXN0YWJsZS5IT1JJWk9OVEFMKTsKKyAgICAgICAgICAgICAgICB2ZXJ0U2IgPSBuZXcgSlNjcm9sbEJhcihBZGp1c3RhYmxlLlZFUlRJQ0FMKTsKKyAgICAgICAgICAgICAgICBhZGQoIlNvdXRoIiwgaG9yelNiKTsKKyAgICAgICAgICAgICAgICBhZGQoIkVhc3QiLCB2ZXJ0U2IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5ID0gbmV3IFJ1blN0cmF0ZWd5KCkgeworICAgICAgICAgICAgdm9pZCBkb0l0KFJ1bm5hYmxlIHIpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTd2luZ1V0aWxpdGllcy5pbnZva2VBbmRXYWl0KHIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gY2xpZW50CisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxlZCB3YWl0IG9yIHNsZWVwIChvciBzb21ldGhpbmcgc2ltaWxhcikKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggaXMgaW5hcHByb3ByaWF0ZSBmb3IgYSBjbGllbnQgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICAvLyBjbGFzcy4gIFJldGhyb3cgZXJyb3IgYW5kIGxldCBjbGllbnQgaGFuZGxlIGl0LgorICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludGVycnVwdGVkIGluIFJ1blN0cmF0ZWd5OiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXaG8ga25vd3MgaG93IHRoaXMgb25lIGhhcHBlbnMuLi4KKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGluIFJ1blN0cmF0ZWd5OiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZkltcGwgPSBuZXcgQVRleHRQYW5lbEltcGwocnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3J6U2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRTYik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmaW5hbCBGYWtlQ29tcG9uZW50IHRleHRDb21wb25lbnQgPSBmSW1wbC5nZXRUZXh0Q29tcG9uZW50KCk7CisgICAgICAgIAorICAgICAgICBKQ29tcG9uZW50IHRleHRIb3N0ID0gbmV3IEpDb21wb25lbnQoKSB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5zZXRIb3N0KHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgYWRkTm90aWZ5KCkgeworICAgICAgICAgICAgICAgIHN1cGVyLmFkZE5vdGlmeSgpOworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5wYWludChnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGFkZCgiQ2VudGVyIiwgdGV4dEhvc3QpOworCisgICAgICAgIHRleHRIb3N0LnJlcXVlc3RGb2N1cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgSlRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkltcGwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gVGV4dCBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG9wZXJhdGlvbgorICAgICAqIG1vZGlmaWVzIHRoZSB0ZXh0IGluIHRoZSBKVGV4dFBhbmVsLiAgSXQgZG9lcyBub3QgbW9kaWZ5IG9yIGFkb3B0CisgICAgICogPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgbWV0aG9kIHNldHMgdGhlIHNlbGVjdGlvbiBhbiBpbnNlcnRpb24gcG9pbnQgYXQKKyAgICAgKiB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisKKyAgICAgICAgZkltcGwuc2V0VGV4dChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuICBFcXVpdmFsZW50IHRvCisgICAgICogPHR0Pmluc2VydChuZXdUZXh0LCBnZXRUZXh0TGVuZ3RoKCkpPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5hcHBlbmQobmV3VGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5pbnNlcnQobmV3VGV4dCwgcG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGdpdmVuIHJhbmdlIHdpdGggPHR0Pm5ld1RleHQ8L3R0Pi4gIEFmdGVyIHRoaXMKKyAgICAgKiBvcGVyYXRpb24gdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlCisgICAgICogZW5kIG9mIHRoZSBuZXcgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aXRoIHdoaWNoIHRvIHJlcGxhY2UgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmQgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlUmFuZ2UoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKworICAgICAgICBmSW1wbC5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBKVGV4dFBhbmVsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBKVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0VGV4dCgpOworICAgIH0KKworLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25TdGFydChzZWxlY3Rpb25TdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2V0U2VsZWN0aW9uRW5kKHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5zZXRDYXJldFBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdChzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0QWxsKCk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLnBhcmFncmFwaElzTGVmdFRvUmlnaHQob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmNhblVuZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmNhblJlZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGNvbnRhaW5zIGNvbnRlbnRzIHdoaWNoIGNvdWxkIGJlCisgICAgICogdHJhbnNmZXJlZCBpbnRvIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGhhcyB0ZXh0IGNvbnRlbnQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2xpcGJvYXJkTm90RW1wdHkoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmNsaXBib2FyZE5vdEVtcHR5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBrZXlzIHdpdGggZGVmYXVsdCB2YWx1ZXMuICBUaGUgZGVmYXVsdAorICAgICAqIHZhbHVlcyBhcmUgdXNlZCB3aGVuIGRpc3BsYXlpbmcgdGV4dCBmb3IgdmFsdWVzIHdoaWNoIGFyZSBub3QKKyAgICAgKiBzcGVjaWZpZWQgaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2YgZGVmYXVsdCBrZXktdmFsdWUgcGFpcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGdldERlZmF1bHRWYWx1ZXMoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldERlZmF1bHRWYWx1ZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpLiAgSXQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT48dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4sIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgCisgICAgICogdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBkZWZhdWx0IHN0eWxlIGZvciA8dHQ+a2V5PC90dD4sCisgICAgICogYXMgZGVmaW5lZCBieSB0aGUgZGVmYXVsdCB2YWx1ZXMgQXR0cmlidXRlTWFwLiAgTm90ZSB0aGF0IGlmCisgICAgICogPHR0PmtleTwvdHQ+IGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlIHRoaXMgbWV0aG9kIG1heSByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHNlZSBNVGV4dFBhbmVsI01VTFRJUExFX1ZBTFVFUworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgcGFyYWdyYXBoIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpLiAgSXQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT48dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4sIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSAKKyAgICAgKiBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBkZWZhdWx0IHN0eWxlIGZvciA8dHQ+a2V5PC90dD4sCisgICAgICogYXMgZGVmaW5lZCBieSB0aGUgZGVmYXVsdCB2YWx1ZXMgQXR0cmlidXRlTWFwLiAgTm90ZSB0aGF0IGlmCisgICAgICogPHR0PmtleTwvdHQ+IGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlIHRoaXMgbWV0aG9kIG1heSByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHNlZSBNVGV4dFBhbmVsI01VTFRJUExFX1ZBTFVFUworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBsYWNlIGl0CisgICAgICogb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQKKyAgICAgKiBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3V0KCkgeworICAgICAgICBmSW1wbC5jdXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQbGFjZSB0aGUgc2VsZWN0ZWQgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzCisgICAgICogbm8gZWZmZWN0IGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weSgpIHsKKyAgICAgICAgZkltcGwuY29weSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0IHdpdGggdGhlIHRleHQgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8KKyAgICAgKiB0ZXh0IGlzIG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFzdGUoKSB7CisgICAgICAgIGZJbXBsLnBhc3RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZQorICAgICAqIHRleHQgaXMgbm90IGVkaXRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBmSW1wbC5jbGVhcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byB1bmRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZJbXBsLnVuZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gcmVkby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWRvKCkgeworICAgICAgICBmSW1wbC5yZWRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbW1hbmRMb2dTaXplKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRDb21tYW5kTG9nU2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4gIEFsbAorICAgICAqIHJlZG9hYmxlIGNvbW1hbmRzIGFyZSByZW1vdmVkIHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBzaXplIHRoZSBudW1iZXIgb2YgY29tbWFuZHMga2VwdCBpbiB0aGUgY29tbWFuZCBsb2cKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21tYW5kTG9nU2l6ZShpbnQgc2l6ZSkgeworICAgICAgICBmSW1wbC5zZXRDb21tYW5kTG9nU2l6ZShzaXplKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIGNvbW1hbmRzIGZyb20gdGhlIGNvbW1hbmQgbG9nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyQ29tbWFuZExvZygpIHsKKyAgICAgICAgZkltcGwuY2xlYXJDb21tYW5kTG9nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBjaGFyYWN0ZXIgc3R5bGVzIG9uIHRoZSBzZWxlY3RlZCBjaGFyYWN0ZXJzLiAgSWYgbm8gY2hhcmFjdGVycworICAgICAqIGFyZSBzZWxlY3RlZCwgbW9kaWZ5IHRoZSB0eXBpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZkltcGwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHBhcmFncmFwaHMgY29udGFpbmluZyBzZWxlY3RlZCBjaGFyYWN0ZXJzLCBvcgorICAgICAqIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgaW5zZXJ0aW9uIHBvaW50LgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisgICAgICAgIGZJbXBsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgS2V5UmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMuCisgICAgICogQHJldHVybiB0aGUga2V5IHJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzCisgICAgICogQHNlZSAjc2V0S2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgS2V5UmVtYXAgZ2V0S2V5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEtleVJlbWFwKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlIHRoZSBnaXZlbiBLZXlSZW1hcCB0byBtYXAga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzLgorICAgICAqIE9ubHkga2V5CisgICAgICogZXZlbnRzIGFyZSBhZmZlY3RlZCBieSB0aGUgcmVtYXA7ICBvdGhlciB0ZXh0IGVudGVyaW5nIHRoZQorICAgICAqIGNvbnRyb2wgKHZpYSB0aGUgY2xpcGJvYXJkLCBmb3IgZXhhbXBsZSkgaXMgbm90IGFmZmVjdGVkCisgICAgICogYnkgdGhlIEtleVJlbWFwLgorICAgICAqIDxwPgorICAgICAqIERvIG5vdCBwYXNzIDx0dD5udWxsPC90dD4gdG8gdGhpcyBtZXRob2QgdG8gbGVhdmUga2V5CisgICAgICogZXZlbnRzIHVubWFwcGVkLiAgSW5zdGVhZCwgdXNlIDx0dD5LZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk8L3R0PgorICAgICAqIEBwYXJhbSByZW1hcCB0aGUgS2V5UmVtYXAgdG8gdXNlIGZvciBtYXBwaW5nIGtleSBldmVudHMgdG8gY2hhcmFjdGVycworICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHBhcmFtZXRlciBpcyBudWxsCisgICAgICogQHNlZSBLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEtleVJlbWFwKEtleVJlbWFwIHJlbWFwKSB7CisKKyAgICAgICAgZkltcGwuc2V0S2V5UmVtYXAocmVtYXApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICogQHNlZSAjc2V0TW9kaWZpZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZGlmaWVkKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5pc01vZGlmaWVkKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisgICAgICAgIAorICAgICAgICBmSW1wbC5zZXRNb2RpZmllZChtb2RpZmllZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgZm9yIEtleUV2ZW50Rm9yd2FyZGVyJ3MgdXNlIG9ubHkhCisgICAgICovCisgICAgQVRleHRQYW5lbEltcGwgZ2V0SW1wbCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrZ3JvdW5kKENvbG9yIGNvbG9yKSB7CisgICAgICAgIHN1cGVyLnNldEJhY2tncm91bmQgKGNvbG9yKTsKKyAgICAgICAgamF2YS5hd3QuQ29tcG9uZW50W10gY29tcExpc3QgPSBnZXRDb21wb25lbnRzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcExpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghKGNvbXBMaXN0W2ldIGluc3RhbmNlb2YgSlNjcm9sbEJhcikpIHsKKyAgICAgICAgICAgICAgICBjb21wTGlzdFtpXS5zZXRCYWNrZ3JvdW5kIChjb2xvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5RXZlbnRGb3J3YXJkZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlFdmVudEZvcndhcmRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxYzgyYTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5RXZlbnRGb3J3YXJkZXIuamF2YQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgZm9yd2FyZHMga2V5IGV2ZW50cyB0byBhIFRleHRQYW5lbCBjb21wb25lbnQgZm9yCisgKiB0ZXN0aW5nIHB1cnBvc2VzLgorICogSXRzIHNvbGUgcmVhc29uIGZvciBleGlzdGVuY2UgaXMgdG8gcHJldmVudCB0aGUga2V5LWV2ZW50CisgKiBBUEkgZnJvbSBiZWluZyBwdWJsaWMgb24gTVRleHRQYW5lbCwgYW5kIGJlaW5nIG1pc3Rha2VuIGZvcgorICogc3RhbmRhcmQgQVBJLiAgVGhpcyBjbGFzcyBpcyBvbmx5IGZvciB0ZXN0aW5nISAgSXQgbWF5IGJlCisgKiByZW1vdmVkIGZyb20gcHVibGljIEFQSSBhdCBhbnkgdGltZS4gIERvIG5vdCBkZXBlbmQgb24gdGhpcworICogY2xhc3MuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBLZXlFdmVudEZvcndhcmRlciB7CisKKyAgICBwcml2YXRlIEFUZXh0UGFuZWxJbXBsIGZQYW5lbEltcGw7CisKKyAgICBwdWJsaWMgS2V5RXZlbnRGb3J3YXJkZXIoVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZQYW5lbEltcGwgPSB0ZXh0UGFuZWwuZ2V0SW1wbCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgS2V5RXZlbnRGb3J3YXJkZXIoSlRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAKKyAgICAgICAgZlBhbmVsSW1wbCA9IHRleHRQYW5lbC5nZXRJbXBsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlS2V5RXZlbnQoS2V5RXZlbnQga2V5RXZlbnQpIHsKKworICAgICAgICBmUGFuZWxJbXBsLmhhbmRsZUtleUV2ZW50KGtleUV2ZW50KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleVJlbWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMWMzY2RjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleVJlbWFwLmphdmEKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CisKKy8qKgorICogS2V5UmVtYXAgbWFwcyBrZXlzIG9uIGEgc3RhbmRhcmQgVVMga2V5Ym9hcmQgdG8gY2hhcmFjdGVycworICogaW4gb3RoZXIgYWxwaGFiZXRzLiAgQ3VycmVudGx5LCBtYXBwaW5ncyB0byBBcmFiaWMsIEhlYnJldworICogYW5kIFRoYWkgYXJlIHN1cHBvcnRlZC4gIEluIHRoZSBmdXR1cmUsIGNsaWVudHMgbWF5IGJlCisgKiB0byBkZWZpbmUgdGhlaXIgb3duIG1hcHBpbmdzIGJ5IHN1YmNsYXNzaW5nIHRoaXMgY2xhc3MuCisgKiA8UD4KKyAqIEBzZWUgVGV4dFBhbmVsI3NldEtleVJlbWFwCisgKi8KKworcHVibGljIGNsYXNzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEtleVJlbWFwLgorICAgICAqLworICAgIHByb3RlY3RlZCBLZXlSZW1hcCgpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgb24gdGhlIHNpbXVsYXRlZCBrZXlib2FyZAorICAgICAqIHdoaWNoIGlzIChtb3N0IGxpa2VseSkgZ2VuZXJhdGVkIGJ5IHR5cGluZyB0aGUgY2hhcmFjdGVyIGMKKyAgICAgKiBvbiB0aGUgYWN0dWFsIGtleWJvYXJkLiAgRm9yIGdyZWF0ZXIgYWNjdXJhY3ksIHVzZSB0aGUgcmVtYXAKKyAgICAgKiBtZXRob2Qgd2hpY2ggdGFrZXMgYSBLZXlFdmVudCwgc2luY2UgaXQgY2FuIHRha2UgbW9kaWZpZXIKKyAgICAgKiBrZXlzIGludG8gYWNjb3VudC4KKyAgICAgKiBAYXJnIGMgYSBjaGFyYWN0ZXIgb24gdGhlIGFjdHVhbCBrZXlib2FyZAorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkIHdoaWNoIHdvdWxkCisgICAgICogICAgICAgICByZXN1bHQgZnJvbSB0aGUga2V5IGNvbWJpbmF0aW9uIHdoaWNoIHByb2R1Y2VkIHRoZQorICAgICAqICAgICAgICAgZ2l2ZW4gY2hhcmFjdGVyIG9uIHRoZSBhY3R1YWwga2V5Ym9hcmQKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgb24gdGhlIHNpbXVsYXRlZCBrZXlib2FyZAorICAgICAqIHdoaWNoIGtleUV2ZW50IGdlbmVyYXRlcy4KKyAgICAgKiBAYXJnIGtleUV2ZW50IGEga2V5IGV2ZW50IGZyb20gdGhlIGFjdHVhbCBrZXlib2FyZAorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkIGdlbmVyYXRlZCBieQorICAgICAqICAgICAgICAga2V5RXZlbnQKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIGNoYXIgcmVtYXAoS2V5RXZlbnQga2V5RXZlbnQpIHsKKworICAgICAgICByZXR1cm4gcmVtYXAoa2V5RXZlbnQuZ2V0S2V5Q2hhcigpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBLZXlSZW1hcCBJREVOVElUWSA9IG5ldyBLZXlSZW1hcCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIEFSQUJJQ19UUkFOU0xJVEVSQVRJT04gPSBuZXcgQXJhYmljVHJhbnNsaXRlcmF0aW9uKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgSEVCUkVXX1RSQU5TTElURVJBVElPTiA9IG5ldyBIZWJyZXdUcmFuc2xpdGVyYXRpb24oKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBLZXlSZW1hcCBJU1JBRUxfTklLVUQgPSBuZXcgSXNyYWVsTmlrdWRLZXlib2FyZCgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIFRIQUkgPSBuZXcgVGhhaUtleVJlbWFwKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBLZXlSZW1hcCB3aGljaCBtYXBzIGV2ZXJ5IGNoYXJhY3RlciB0byBpdHNlbGYuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBLZXlSZW1hcCBnZXRJZGVudGl0eVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBJREVOVElUWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBLZXlSZW1hcCB3aGljaCBtYXBzIGtleXMgdG8KKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBBcmFiaWMgYWxwaGFiZXQsIHVzaW5nIGEgc2ltcGxlIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldEFyYWJpY1RyYW5zbGl0ZXJhdGlvbigpIHsKKworICAgICAgICByZXR1cm4gQVJBQklDX1RSQU5TTElURVJBVElPTjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBLZXlSZW1hcCB3aGljaCBtYXBzIGtleXMgdG8KKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBIZWJyZXcgYWxwaGFiZXQsIHVzaW5nIGEgc2ltcGxlIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpIHsKKworICAgICAgICByZXR1cm4gSEVCUkVXX1RSQU5TTElURVJBVElPTjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBLZXlSZW1hcCB3aGljaCBlbXVsYXRlcyBhIHN0YW5kYXJkIEhlYnJldyBrZXlib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldElzcmFlbE5pa3VkKCkgeworCisgICAgICAgIHJldHVybiBJU1JBRUxfTklLVUQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIGVtdWxhdGVzIGEgVGhhaSBLZXRtYW5lZSBrZXlib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldFRoYWlLZXRtYW5lZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBUSEFJOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvTVRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVhYjE4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvTVRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsMzczIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisvKioKKyAqIE1UZXh0UGFuZWwgaXMgaW1wbGVtZW50ZWQgYnkgQ29tcG9uZW50cyB3aGljaCBwcm92aWRlIHNlbGVjdGFibGUKKyAqIGVkaXRhYmxlIHN0eWxlZCB0ZXh0LgorICogPHA+CisgKiBJbXBsZW1lbnRhdGlvbnMgb2YgTVRleHRQYW5lbCBwcm92aWRlIGEgc2ltcGxlLCBzdGFuZGFyZCB1c2VyIGludGVyZmFjZQorICogZm9yIHRleHQgZWRpdGluZy4gIE1UZXh0UGFuZWwgc3VwcGxpZXMgc2Nyb2xsYWJsZSBkaXNwbGF5LCB0eXBpbmcsIAorICogYXJyb3cta2V5IHN1cHBvcnQsIGNoYXJhY3RlciBzZWxlY3Rpb24sIHdvcmQtCisgKiBhbmQgc2VudGVuY2Utc2VsZWN0aW9uIChieSBkb3VibGUtY2xpY2tpbmcgYW5kIHRyaXBsZS1jbGlja2luZywgCisgKiByZXNwZWN0aXZlbHkpLCB0ZXh0IHN0eWxlcywgY2xpcGJvYXJkIG9wZXJhdGlvbnMgKGN1dCwgY29weSBhbmQgcGFzdGUpCisgKiBhbmQgYSBsb2cgb2YgY2hhbmdlcyBmb3IgdW5kby1yZWRvLgorICogPHA+CisgKiBNVGV4dFBhbmVsIGltcGxlbWVudGF0aW9ucyBkbyBub3QgcHJvdmlkZSB1c2VyIGludGVyZmFjZSBlbGVtZW50cworICogc3VjaCBhcyBhbiBlZGl0IG1lbnUgb3Igc3R5bGUgbWVudS4gIFRoaXMgc3VwcG9ydCBpcyBwcm92aWRlZCBpbgorICogZGlmZmVyZW50IHBhY2thZ2VzLCBhbmQgaXMgaW1wbGVtZW50ZWQgd2l0aCBNVGV4dFBhbmVsJ3MgQVBJLgorICogTVRleHRQYW5lbCBpbmNsdWRlcyBtZXRob2RzIGZvciBzZXR0aW5nIHNlbGVjdGlvbnMgYW5kIHN0eWxlcyBvbiB0ZXh0LAorICogYW5kIHVzaW5nIHRoZSBjbGlwYm9hcmQgYW5kIGNvbW1hbmQtbG9nIGZ1bmN0aW9uYWxpdHkuCisgKiBNVGV4dFBhbmVsJ3MgQVBJIGZvciBzZWxlY3Rpb24gYW5kIHRleHQgaGFuZGxpbmcgaXMgc2ltaWxhciB0byB0aGF0CisgKiBvZiA8dHQ+amF2YS5hd3QuVGV4dEFyZWE8L3R0PiBhbmQKKyAqIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgKiA8cD4KKyAqIE1UZXh0UGFuZWwgc3VwcG9ydHMgYmlkaXJlY3Rpb25hbCBhbmQgY29tcGxleCB0ZXh0LiAgSW4gYmlkaXJlY3Rpb25hbAorICogdGV4dCwgb2Zmc2V0cyBhdCBkaXJlY3Rpb24gYm91bmRhcmllcyBoYXZlIGR1YWwgY2FyZXRzLiAgTG9naWNhbCBzZWxlY3Rpb24KKyAqIGlzIHVzZWQsIHNvIHNlbGVjdGlvbnMgYWNyb3NzIHJ1biBkaXJlY3Rpb25zIG1heSBub3QgYmUgY29udGlndW91cyBpbgorICogZGlzcGxheS4KKyAqLworcHVibGljIGludGVyZmFjZSBNVGV4dFBhbmVsIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLyoqCisgICAgICogVGhpcyB2YWx1ZSBpcyByZXR1cm5lZCBmcm9tIDx0dD5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb248L3R0PgorICAgICAqIGFuZCA8dHQ+Z2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uPC90dD4gdG8gaW5kaWNhdGUgdGhhdCB0aGUKKyAgICAgKiBzZWxlY3Rpb24gcmFuZ2UgY29udGFpbnMgbXVsdGlwbGUgdmFsdWVzIGZvciBhIGtleS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyByZWFzb24gZm9yIHRoaXMgT2JqZWN0IGV2ZXIgdG8gYXBwZWFyIGluIGFuIEF0dHJpYnV0ZU1hcAorICAgICAqIGFzIGEgdmFsdWUuICBPYnZpb3VzbHksIGlmIGl0IGRvZXMgdGhlcmUgd2lsbCBiZSBubyB3YXkgdG8gZGlzdGluZ3Vpc2gKKyAgICAgKiBiZXR3ZWVuIG11bHRpcGxlIHZhbHVlcyBhY3Jvc3MgdGhlIHNlbGVjdGlvbiBhbmQgYSBjb25zaXN0ZW50IHZhbHVlIG9mCisgICAgICogPHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+IGZvciB0aGUga2V5LgorICAgICAqIEBzZWUgI2dldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbgorICAgICAqIEBzZWUgI2dldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1VTFRJUExFX1ZBTFVFUyA9IG5ldyBPYmplY3QoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byBhZGQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpOworICAgIAorICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCk7CisgICAgCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIE1UZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKTsKKyAgICAKKy8vPT09PT09PT09PT09CisvLyBTZWxlY3Rpb24gQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50IHNlbGVjdGlvbkVuZCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIHRoZSBnaXZlbiByYW5nZS4gIFRoZSByYW5nZSBzdGFydAorICAgICAqIGlzIHBpbm5lZCBiZXR3ZWVuIDAgYW5kIHRoZSB0ZXh0IGxlbmd0aDsgIHRoZSByYW5nZSBlbmQgaXMgcGlubmVkCisgICAgICogYmV0d2VlbiB0aGUgcmFuZ2Ugc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIHRleHQuICBUaGVzZSBzZW1hbnRpY3MKKyAgICAgKiBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIG9mIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKTsKKyAgICAKKworLy89PT09PT09PT09PT0KKy8vIEZvcm1hdCBXaWR0aAorLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdG90YWwgZm9ybWF0IHdpZHRoLCBpbiBwaXhlbHMuICBUaGUgZm9ybWF0IHdpZHRoIGlzIHRoZQorICAgICAqIHdpZHRoIHRvIHdoaWNoIHRleHQgaXMgd3JhcHBlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCk7CisgICAgCisKKy8vPT09PT09PT09PT09CisvLyBTdHlsZXMKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCAKKyAgICAgKiB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlICNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgcGFyYWdyYXBoIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpLiAgSXQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT48dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4sIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSAKKyAgICAgKiBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBkZWZhdWx0IHN0eWxlIGZvciA8dHQ+a2V5PC90dD4sCisgICAgICogYXMgZGVmaW5lZCBieSB0aGUgZGVmYXVsdCB2YWx1ZXMgQXR0cmlidXRlTWFwLiAgTm90ZSB0aGF0IGlmCisgICAgICogPHR0PmtleTwvdHQ+IGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlIHRoaXMgbWV0aG9kIG1heSByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHNlZSAjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSk7CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50IGFuZCBwbGFjZSBpdAorICAgICAqIG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0CisgICAgICogaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGN1dCgpOworICAgIAorICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCk7CisgICAgCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpOworICAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50LCB3aXRob3V0IGFsdGVyaW5nIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUKKyAgICAgKiB0ZXh0IGlzIG5vdCBlZGl0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpOworICAgIAorICAgIC8qKgorICAgICAqIFVuZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byB1bmRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVuZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gcmVkby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWRvKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbW1hbmRMb2dTaXplKCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIGNvbW1hbmRzIGZyb20gdGhlIGNvbW1hbmQgbG9nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyQ29tbWFuZExvZygpOworICAgIAorICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgY2hhcmFjdGVyIHN0eWxlcyBvbiB0aGUgc2VsZWN0ZWQgY2hhcmFjdGVycy4gIElmIG5vIGNoYXJhY3RlcnMKKyAgICAgKiBhcmUgc2VsZWN0ZWQsIG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgS2V5UmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMuCisgICAgICogQHJldHVybiB0aGUga2V5IHJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzCisgICAgICogQHNlZSAjc2V0S2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgS2V5UmVtYXAgZ2V0S2V5UmVtYXAoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICogQHNlZSAjc2V0TW9kaWZpZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZGlmaWVkKCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9PZmZzY3JlZW5CdWZmZXJDYWNoZS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL09mZnNjcmVlbkJ1ZmZlckNhY2hlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjljNzZiZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9PZmZzY3JlZW5CdWZmZXJDYWNoZS5qYXZhCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworCitjbGFzcyBPZmZzY3JlZW5CdWZmZXJDYWNoZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgSW1hZ2UgZk9mZnNjcmVlbkJ1ZmZlciA9IG51bGw7CisgICAgcHJpdmF0ZSBDb21wb25lbnQgZkhvc3Q7CisKKyAgICBPZmZzY3JlZW5CdWZmZXJDYWNoZShDb21wb25lbnQgaG9zdCkgeworCisgICAgICAgIGZIb3N0ID0gaG9zdDsKKyAgICB9CisKKyAgICBwcml2YXRlIEltYWdlIG1ha2VCdWZmZXIoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisKKyAgICAgICAgcmV0dXJuIGZIb3N0LmNyZWF0ZUltYWdlKE1hdGgubWF4KHdpZHRoLCAxKSwgTWF0aC5tYXgoaGVpZ2h0LCAxKSk7CisgICAgfQorCisgICAgSW1hZ2UgZ2V0QnVmZmVyKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworCisgICAgICAgIEltYWdlIGJ1ZmZlciA9IGZPZmZzY3JlZW5CdWZmZXI7CisKKyAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoYnVmZmVyLmdldFdpZHRoKGZIb3N0KSA+PSB3aWR0aCAmJgorICAgICAgICAgICAgICAgICAgICBidWZmZXIuZ2V0SGVpZ2h0KGZIb3N0KSA+PSBoZWlnaHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyID0gbWFrZUJ1ZmZlcih3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgZk9mZnNjcmVlbkJ1ZmZlciA9IGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1BhbmVsRXZlbnRCcm9hZGNhc3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1BhbmVsRXZlbnRCcm9hZGNhc3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiM2M4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIFRoaXMgY2xhc3MgbGlzdGVucyBmb3IgdGV4dCBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICogYW5kIGJyb2FkY2FzdHMgdGhlbSB0byBhbGwgb2YgaXRzIGxpc3RlbmVycy4KKyAqLworZmluYWwgY2xhc3MgUGFuZWxFdmVudEJyb2FkY2FzdGVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJUlNUID0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9GSVJTVDsKKworICAgIHByaXZhdGUgZmluYWwgVmVjdG9yW10gZkxpc3RlbmVyczsKKyAgICBwcml2YXRlIGZpbmFsIFRleHRQYW5lbEV2ZW50W10gZkV2ZW50czsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIuCisgICAgICogQHBhcmFtIHBhbmVsIHRoZSBUZXh0UGFuZWwgZm9yIHdoaWNoIGV2ZW50cyBhcmUgYnJvYWRjYXN0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgUGFuZWxFdmVudEJyb2FkY2FzdGVyKE1UZXh0UGFuZWwgcGFuZWwpIHsKKworICAgICAgICBpbnQgY291bnQgPSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1QgLSBGSVJTVCArIDE7CisKKyAgICAgICAgZkV2ZW50cyA9IG5ldyBUZXh0UGFuZWxFdmVudFtjb3VudF07CisgICAgICAgIGZMaXN0ZW5lcnMgPSBuZXcgVmVjdG9yW2NvdW50XTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZMaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZFdmVudHNbaV0gPSBuZXcgVGV4dFBhbmVsRXZlbnQocGFuZWwsIGkrRklSU1QpOworICAgICAgICAgICAgZkxpc3RlbmVyc1tpXSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIFRleHRQYW5lbExpc3RlbmVycyB0bworICAgICAqIHdoaWNoIG5vdGlmaWNhdGlvbnMgYXJlIGZvcndhcmRlZC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBhZGRMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZvciAoaW50IGk9RklSU1Q7IGkgPD0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9MQVNUOyBpKyspIHsKKyAgICAgICAgICAgIFZlY3RvciBsaXN0ZW5lcnMgPSBmTGlzdGVuZXJzW2ktRklSU1RdOworICAgICAgICAgICAgaWYgKGxpc3RlbmVyLnJlc3BvbmRzVG9FdmVudFR5cGUoaSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxpc3RlbmVycy5jb250YWlucyhsaXN0ZW5lcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzLmFkZEVsZW1lbnQobGlzdGVuZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgVGV4dFBhbmVsTGlzdGVuZXJzIHRvCisgICAgICogd2hpY2ggbm90aWZpY2F0aW9ucyBhcmUgZm9yd2FyZGVkLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHJlbW92ZUxpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZm9yIChpbnQgaT1GSVJTVDsgaSA8PSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1Q7IGkrKykgeworICAgICAgICAgICAgVmVjdG9yIGxpc3RlbmVycyA9IGZMaXN0ZW5lcnNbaS1GSVJTVF07CisgICAgICAgICAgICBpZiAobGlzdGVuZXIucmVzcG9uZHNUb0V2ZW50VHlwZShpKSkgeworICAgICAgICAgICAgICAgIGxpc3RlbmVycy5yZW1vdmVFbGVtZW50KGxpc3RlbmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY2VpdmUgYSBub3RpZmljYXRpb24gYW5kIGZvcndhcmQgaXQgdG8gYWxsIGxpc3RlbmVycy4KKyAgICAgKiBAY2hhbmdlQ29kZSBvbmUgb2YgdGhlIGNvbnN0YW50cyBpbiB0aGUgVGV4dFBhbmVsTGlzdGVuZXIgY2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgdGV4dFN0YXRlQ2hhbmdlZChpbnQgaWQpIHsKKworICAgICAgICBpbnQgaW5kZXggPSBpZC1GSVJTVDsKKyAgICAgICAgVGV4dFBhbmVsRXZlbnQgZXZlbnQgPSBmRXZlbnRzW2luZGV4XTsKKyAgICAgICAgVmVjdG9yIGxpc3RlbmVycyA9IGZMaXN0ZW5lcnNbaW5kZXhdOworICAgICAgICAKKyAgICAgICAgaW50IHNpemUgPSBsaXN0ZW5lcnMuc2l6ZSgpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNpemU7IGkrKykgeworCisgICAgICAgICAgICBUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRleHRQYW5lbExpc3RlbmVyKSBsaXN0ZW5lcnMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgbGlzdGVuZXIudGV4dEV2ZW50T2NjdXJyZWQoZXZlbnQpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1J1blN0cmF0ZWd5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUnVuU3RyYXRlZ3kuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYzQ3MTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1J1blN0cmF0ZWd5LmphdmEKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2NsYXNzIFJ1blN0cmF0ZWd5IHsKKyAgICAKKyAgICB2b2lkIGRvSXQoUnVubmFibGUgcikgeworICAgICAgICByLnJ1bigpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsQmFyTGF5b3V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsQmFyTGF5b3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGI1Yzk4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YQpAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5JbnNldHM7CitpbXBvcnQgamF2YS5hd3QuTGF5b3V0TWFuYWdlcjsKKworY2xhc3MgU2Nyb2xsQmFyTGF5b3V0IGltcGxlbWVudHMgTGF5b3V0TWFuYWdlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIENvbXBvbmVudCAgIGZIb3JpelNjcm9sbEJhciA9IG51bGw7CisgICAgQ29tcG9uZW50ICAgZlZlcnRTY3JvbGxCYXIgPSBudWxsOworICAgIENvbXBvbmVudCAgIGZDaGlsZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU2Nyb2xsQmFyTGF5b3V0KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZExheW91dENvbXBvbmVudChTdHJpbmcgbmFtZSwgQ29tcG9uZW50IGNvbXApIHsKKworICAgICAgICBpZiAoIkNlbnRlciIuZXF1YWxzKG5hbWUpKQorICAgICAgICAgICAgZkNoaWxkID0gY29tcDsKKyAgICAgICAgZWxzZSBpZiAoIlNvdXRoIi5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIgPSBjb21wOworICAgICAgICBlbHNlIGlmICgiRWFzdCIuZXF1YWxzKG5hbWUpKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIgPSBjb21wOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxheW91dENvbnRhaW5lcihDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgSW5zZXRzICAgICAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworICAgICAgICBEaW1lbnNpb24gICB0YXJnZXRTaXplID0gdGFyZ2V0LmdldFNpemUoKTsKKyAgICAgICAgaW50ICAgICAgICAgaHNiSGVpZ2h0ID0gKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSA/IGZIb3JpelNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogMDsKKyAgICAgICAgaW50ICAgICAgICAgdnNiV2lkdGggPSAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgPyBmVmVydFNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggOiAwOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCkKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRCb3VuZHMoaW5zZXRzLmxlZnQsIHRhcmdldFNpemUuaGVpZ2h0IC0gaW5zZXRzLmJvdHRvbSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzYkhlaWdodCwgdGFyZ2V0U2l6ZS53aWR0aCAtIHZzYldpZHRoLCBoc2JIZWlnaHQpOworCisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0Qm91bmRzKHRhcmdldFNpemUud2lkdGggLSBpbnNldHMucmlnaHQgLSB2c2JXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXRzLnRvcCwgdnNiV2lkdGgsIHRhcmdldFNpemUuaGVpZ2h0IC0gaHNiSGVpZ2h0KTsKKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwpCisgICAgICAgICAgICBmQ2hpbGQuc2V0Qm91bmRzKGluc2V0cy5sZWZ0LCBpbnNldHMudG9wLCB0YXJnZXRTaXplLndpZHRoIC0gaW5zZXRzLnJpZ2h0IC0gdnNiV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFNpemUuaGVpZ2h0IC0gaW5zZXRzLmJvdHRvbSAtIGhzYkhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBtaW5pbXVtTGF5b3V0U2l6ZShDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgRGltZW5zaW9uICAgcmV0dXJuVmFsID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgRGltZW5zaW9uICAgaHNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgdnNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgY2hpbGRTaXplOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCAmJiBmSG9yaXpTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBmSG9yaXpTY3JvbGxCYXIuZ2V0TWluaW11bVNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwgJiYgZlZlcnRTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIHZzYlNpemUgPSBmVmVydFNjcm9sbEJhci5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdnNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwgJiYgZkNoaWxkLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBjaGlsZFNpemUgPSBmQ2hpbGQuZ2V0TWluaW11bVNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm5WYWwud2lkdGggPSBNYXRoLm1heChjaGlsZFNpemUud2lkdGgsIGhzYlNpemUud2lkdGgpICsgdnNiU2l6ZS53aWR0aDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCA9IE1hdGgubWF4KGNoaWxkU2l6ZS5oZWlnaHQsIHZzYlNpemUuaGVpZ2h0KSArIGhzYlNpemUuaGVpZ2h0OworCisgICAgICAgIEluc2V0cyAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworCisgICAgICAgIHJldHVyblZhbC53aWR0aCArPSBpbnNldHMubGVmdCArIGluc2V0cy5yaWdodDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCArPSBpbnNldHMudG9wICsgaW5zZXRzLmJvdHRvbTsKKworICAgICAgICByZXR1cm4gcmV0dXJuVmFsOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gcHJlZmVycmVkTGF5b3V0U2l6ZShDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgRGltZW5zaW9uICAgcmV0dXJuVmFsID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgRGltZW5zaW9uICAgaHNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgdnNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgY2hpbGRTaXplOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCAmJiBmSG9yaXpTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBmSG9yaXpTY3JvbGxCYXIuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaHNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCAmJiBmVmVydFNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgdnNiU2l6ZSA9IGZWZXJ0U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHZzYlNpemUgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZDaGlsZCAhPSBudWxsICYmIGZDaGlsZC5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgY2hpbGRTaXplID0gZkNoaWxkLmdldFByZWZlcnJlZFNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm5WYWwud2lkdGggPSBNYXRoLm1heChjaGlsZFNpemUud2lkdGgsIGhzYlNpemUud2lkdGgpICsgdnNiU2l6ZS53aWR0aDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCA9IE1hdGgubWF4KGNoaWxkU2l6ZS5oZWlnaHQsIHZzYlNpemUuaGVpZ2h0KSArIGhzYlNpemUuaGVpZ2h0OworCisgICAgICAgIEluc2V0cyAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworCisgICAgICAgIHJldHVyblZhbC53aWR0aCArPSBpbnNldHMubGVmdCArIGluc2V0cy5yaWdodDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCArPSBpbnNldHMudG9wICsgaW5zZXRzLmJvdHRvbTsKKworICAgICAgICByZXR1cm4gcmV0dXJuVmFsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxheW91dENvbXBvbmVudChDb21wb25lbnQgY29tcCkgeworCisgICAgICAgIGlmIChjb21wID09IGZDaGlsZCkKKyAgICAgICAgICAgIGZDaGlsZCA9IG51bGw7CisgICAgICAgIGVsc2UgaWYgKGNvbXAgPT0gZkhvcml6U2Nyb2xsQmFyKQorICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyID0gbnVsbDsKKyAgICAgICAgZWxzZSBpZiAoY29tcCA9PSBmVmVydFNjcm9sbEJhcikKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyID0gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyY2NiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsZXIuamF2YQpAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qCisgICAgNy85Lzk3IC0gY2hhbmdlZCBzb21lIGRlcHJlY2F0ZWQgbWV0aG9kcyBpbiBTY3JvbGxiYXIKKyAgICAgICAgICAgIEFsc28gc2V0dGluZyBVbml0IGFuZCBCbG9jayBpbmNyZW1lbnQgdmFsdWVzLiAgTWF5YmUKKyAgICAgICAgICAgIGl0IG1hdHRlcnMuLi4KKyAgICA2LzI5Lzk4IC0gcmVpbXBsZW1lbnRlZCB0aGlzIGNsYXNzLiAgTm93IHRoaXMgY2xhc3MgdGFsa3MgdG8KKyAgICAgICAgICAgICAgYW55IGNvbXBvbmVudCB3aGljaCBpbXBsZW1lbnRzIFNjcm9sbGVyLkNsaWVudC4KKyAgICAgICAgICAgICAgU2Nyb2xsSG9sZGVyIGlzIGdvbmUsIHRvby4KKyAgICAyLzQvOTkgLSBObyBsb25nZXIgYSBQYW5lbC4gIEFsc28sIGRvZXNuJ3QgY3JlYXRlIFNjcm9sbGJhcnMsCisgICAgICAgICAgICAgYW5kIGluIGZhY3QgZG9lc24ndCBldmVuIHVzZSB0aGUgU2Nyb2xsYmFyIGNsYXNzCisgICAgICAgICAgICAgZGlyZWN0bHkuCisqLworCitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFkanVzdG1lbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BZGp1c3RtZW50RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuQWRqdXN0YWJsZTsKKworLyoqCisqIFRoaXMgY2xhc3MgbWFuYWdlcyB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBhIHNjcm9sbGFibGUgY2xpZW50CisqIGFuZCB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzLiAgSXQgY2FsbHMgdGhlIGNsaWVudCdzCisqIHNjcm9sbFRvIG1ldGhvZCBpbiByZXNwb25zZSB0byBtYW5pcHVsYXRpb24gb2YgdGhlIHNjcm9sbCBiYXJzLgorKgorKiBUaGlzIGNsYXNzIHVzZWQgdG8gYmUgYSBQYW5lbCBjb250YWluaW5nIHRoZSBzY3JvbGxiYXJzIGFuZAorKiB0aGUgY2xpZW50IHBhbmVsLiAgQXMgcGFydCBvZiB0aGUgbWlncmF0aW9uIGF3YXkgZnJvbSBkaXJlY3QKKyogQVdUIGRlcGVuZGVuY2llcywgdGhpcyBjbGFzcyBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgdmlldworKiBoaWVyYXJjaHkuICBJbnN0ZWFkIGl0IHNpbXBseSBrZWVwcyBhIHJlZmVyZW5jZSB0byBpdHMKKyogY2xpZW50IGFuZCBzY3JvbGwgYmFycy4gIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBoaWdoZXItCisqIGxldmVsIGNsYXNzZXMgdG8gc2V0IHVwIHRoZSB2aWV3IGhpZXJhcmNoeS4KKyovCitmaW5hbCBjbGFzcyBTY3JvbGxlciBpbXBsZW1lbnRzIEFkanVzdG1lbnRMaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgaW50ZXJmYWNlIENsaWVudCB7CisgICAgICAgIHZvaWQgc2Nyb2xsVG8oaW50IHgsIGludCB5KTsKKyAgICAgICAgUmVjdGFuZ2xlIGdldFNjcm9sbFNpemUoKTsKKyAgICAgICAgUmVjdGFuZ2xlIGdldEJvdW5kcygpOworICAgIH0KKworICAgIHByaXZhdGUgQWRqdXN0YWJsZSBmSG9yaXpTY3JvbGxCYXIgPSBudWxsOworICAgIHByaXZhdGUgQWRqdXN0YWJsZSBmVmVydFNjcm9sbEJhciA9IG51bGw7CisgICAgcHJpdmF0ZSBDbGllbnQgZkNsaWVudCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSBhcmUgdXNlZCBpZiB0aGUgcmVzcGVjdGl2ZSBTY3JvbGxiYXIgaXMgbm90IHByZXNlbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkhvcml6VmFsdWUsIGZWZXJ0VmFsdWU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9VTklUX0lOQyA9IDEwOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IFNjcm9sbGVyIHdpdGggdGhlIGdpdmVuIEFkanVzdGFibGVzLAorICAgICAqIHdoaWNoIHJlYWxseSBzaG91bGQgYmUgc2Nyb2xsYmFycyBvZiBzb21lIGlsay4KKyAgICAgKiBBbHNvLCB0aGUgQWRqdXN0YWJsZXMgYXJlIHJlcXVpcmVkIHRvIGJlIEFXVCBDb21wb25lbnRzLAorICAgICAqIHNvIHRoZSBTY3JvbGxlciBjYW4gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZW0uCisgICAgICogSG93ZXZlciwgYSBTY3JvbGxlciBjYW4gd29yayB3aXRoIGVpdGhlciBBV1QgU2Nyb2xsYmFycworICAgICAqIG9yIEpGQyBKU2Nyb2xsYmFycy4KKyAgICAgKiBAcGFyYW0gaG9yaXpTY3JvbGxCYXIgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyLiAgbnVsbCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGhvcml6b250YWwgc2Nyb2xsYmFyLgorICAgICAqIEBwYXJhbSB2ZXJ0U2Nyb2xsQmFyIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIuICBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gdmVydGljYWwgc2Nyb2xsYmFyLgorICAgICAqLworICAgIHB1YmxpYyBTY3JvbGxlcihBZGp1c3RhYmxlIGhvcml6U2Nyb2xsQmFyLAorICAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIHZlcnRTY3JvbGxCYXIpIHsKKworICAgICAgICAvL3NldExheW91dChuZXcgU2Nyb2xsQmFyTGF5b3V0KCkpOworCisgICAgICAgIGZIb3JpelNjcm9sbEJhciA9IGhvcml6U2Nyb2xsQmFyOworICAgICAgICBmVmVydFNjcm9sbEJhciA9IHZlcnRTY3JvbGxCYXI7CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFVuaXRJbmNyZW1lbnQoREVGQVVMVF9VTklUX0lOQyk7CisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5hZGRBZGp1c3RtZW50TGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChERUZBVUxUX1VOSVRfSU5DKTsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5hZGRBZGp1c3RtZW50TGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDbGllbnQoQ2xpZW50IGNsaWVudCkgeworCisgICAgICAgIGZDbGllbnQgPSBjbGllbnQ7CisgICAgICAgIGNsaWVudFNjcm9sbFNpemVDaGFuZ2VkKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRqdXN0bWVudFZhbHVlQ2hhbmdlZChBZGp1c3RtZW50RXZlbnQgZXZlbnQpIHsKKworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGhvcml6b250YWw7CisgICAgICAgIGlmIChldmVudC5nZXRBZGp1c3RhYmxlKCkgPT0gZkhvcml6U2Nyb2xsQmFyKSB7CisgICAgICAgICAgICBpbnQgdmVydFZhbCA9IGZWZXJ0U2Nyb2xsQmFyID09IG51bGw/IGZWZXJ0VmFsdWUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLmdldFZhbHVlKCk7CisgICAgICAgICAgICBzY3JvbGxUbyhldmVudC5nZXRWYWx1ZSgpLCB2ZXJ0VmFsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBob3JpelZhbCA9IGZIb3JpelNjcm9sbEJhciA9PSBudWxsPyBmSG9yaXpWYWx1ZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLmdldFZhbHVlKCk7CisgICAgICAgICAgICBzY3JvbGxUbyhob3JpelZhbCwgZXZlbnQuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0VmFsdWVzKEFkanVzdGFibGUgc2Nyb2xsYmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpc2libGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluaW11bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQpIHsKKworICAgICAgICBpbnQgbWF4aW11bSA9IG1pbmltdW0raGVpZ2h0OworICAgICAgICAKKyAgICAgICAgaWYgKHNjcm9sbGJhciAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIENvbXBvbmVudCBzY3JvbGxiYXJUb28gPSAoQ29tcG9uZW50KSBzY3JvbGxiYXI7CisKKyAgICAgICAgICAgIGlmIChtYXhpbXVtIDw9IHZpc2libGUpIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxiYXJUb28uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxiYXJUb28uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2Nyb2xsYmFyLnNldE1pbmltdW0obWluaW11bSk7CisgICAgICAgICAgICBzY3JvbGxiYXIuc2V0TWF4aW11bShtYXhpbXVtKTsKKyAgICAgICAgICAgIHNjcm9sbGJhci5zZXRWaXNpYmxlQW1vdW50KHZpc2libGUpOworICAgICAgICAvLyB3b3JrYXJvdW5kIHNldEJsb2NrSW5jcmVtZW50IHdhcm5pbmdzIGZvciBpbmNyZW1lbnRzIDwgMQorICAgICAgICBzY3JvbGxiYXIuc2V0QmxvY2tJbmNyZW1lbnQoTWF0aC5tYXgoMSwgdmlzaWJsZSAtIERFRkFVTFRfVU5JVF9JTkMpKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgY2xpZW50U2Nyb2xsU2l6ZUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGZDbGllbnQuZ2V0Qm91bmRzKCk7CisgICAgICAgIFJlY3RhbmdsZSBwcmVmZXJyZWRTaXplID0gZkNsaWVudC5nZXRTY3JvbGxTaXplKCk7CisKKyAgICAgICAgc2V0VmFsdWVzKGZIb3JpelNjcm9sbEJhciwgYm91bmRzLndpZHRoLCBwcmVmZXJyZWRTaXplLngsIHByZWZlcnJlZFNpemUud2lkdGgpOworICAgICAgICBzZXRWYWx1ZXMoZlZlcnRTY3JvbGxCYXIsIGJvdW5kcy5oZWlnaHQsIHByZWZlcnJlZFNpemUueSwgcHJlZmVycmVkU2l6ZS5oZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBvc2l0aW9uKGludCB4LCBpbnQgeSkgeworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLnNldFZhbHVlKHgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkhvcml6VmFsdWUgPSB4OworICAgICAgICB9CisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5zZXRWYWx1ZSh5KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZWZXJ0VmFsdWUgPSB5OworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNjcm9sbFRvKGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAgIGZDbGllbnQuc2Nyb2xsVG8oeCwgeSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SG9yaXpMaW5lRGlzdGFuY2UoaW50IG5ld0Rpc3RhbmNlKQorICAgIHsKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChuZXdEaXN0YW5jZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3JpelBhZ2VPdmVybGFwKGludCBuZXdPdmVybGFwKQorICAgIHsKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0QmxvY2tJbmNyZW1lbnQoIC8vIHdvcmthcm91bmQgd2FybmluZ3MgZm9yIHZhbHVlcyA8IDEgb24gdW5peAorICAgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBmSG9yaXpTY3JvbGxCYXIuZ2V0VmlzaWJsZUFtb3VudCgpLW5ld092ZXJsYXApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFZlcnRMaW5lRGlzdGFuY2UoaW50IG5ld0Rpc3RhbmNlKQorICAgIHsKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFVuaXRJbmNyZW1lbnQobmV3RGlzdGFuY2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VmVydFBhZ2VPdmVybGFwKGludCBuZXdPdmVybGFwKQorICAgIHsKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldEJsb2NrSW5jcmVtZW50KCAvLyB3b3JrYXJvdW5kIHdhcm5pbmdzIGZvciB2YWx1ZXMgPCAxIG9uIHVuaXgKKyAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoMSwgZlZlcnRTY3JvbGxCYXIuZ2V0VmlzaWJsZUFtb3VudCgpLW5ld092ZXJsYXApKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TZWxlY3Rpb25EcmFnSW50ZXJhY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTk1MzhmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TZWxlY3Rpb25EcmFnSW50ZXJhY3Rvci5qYXZhCkBAIC0wLDAgKzEsMjAxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitmaW5hbCBjbGFzcyBTZWxlY3Rpb25EcmFnSW50ZXJhY3RvciBleHRlbmRzIEJlaGF2aW9yIGltcGxlbWVudHMgUnVubmFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgZlRleHRDb21wb25lbnQ7CisgICAgcHJpdmF0ZSBUZXh0U2VsZWN0aW9uIGZTZWxlY3Rpb247CisgICAgcHJpdmF0ZSBSdW5TdHJhdGVneSBmUnVuU3RyYXRlZ3k7CisgICAgCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZBbmNob3JTdGFydDsgLy8gYWxpYXNlcyB0ZXh0IG9mZnNldHMgLSBjbGllbnQgYmV3YXJlCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZBbmNob3JFbmQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZDdXJyZW50OworCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGZXYXNaZXJvTGVuZ3RoOworCisgICAgcHJpdmF0ZSBpbnQgZkN1cnJlbnRYOworICAgIHByaXZhdGUgaW50IGZDdXJyZW50WTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZk1vdXNlT3V0c2lkZTsKKworICAgIHByaXZhdGUgVGhyZWFkIGZBdXRvc2Nyb2xsVGhyZWFkID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlRocmVhZFJ1biA9IHRydWU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1Njcm9sbFNsZWVwID0gMzAwOworCisgICAgcHVibGljIFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yKFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0Q29tcG9uZW50IHRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvclN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbml0aWFsWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3YXNaZXJvTGVuZ3RoKSB7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSB0ZXh0Q29tcG9uZW50OworICAgICAgICBmU2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgICAgICBmUnVuU3RyYXRlZ3kgPSBydW5TdHJhdGVneTsKKyAgICAgICAgZkFuY2hvclN0YXJ0ID0gYW5jaG9yU3RhcnQ7CisgICAgICAgIGZBbmNob3JFbmQgPSBhbmNob3JFbmQ7CisgICAgICAgIGZDdXJyZW50ID0gY3VycmVudDsKKworICAgICAgICBmQ3VycmVudFggPSBpbml0aWFsWDsKKyAgICAgICAgZkN1cnJlbnRZID0gaW5pdGlhbFk7CisgICAgICAgIGZNb3VzZU91dHNpZGUgPSBmYWxzZTsKKworICAgICAgICBmV2FzWmVyb0xlbmd0aCA9IHdhc1plcm9MZW5ndGg7CisgICAgICAgIAorICAgICAgICBzZXRTZWxlY3Rpb24oKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNMb3N0KEZvY3VzRXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5VHlwZWQoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlSZWxlYXNlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgaW50IHggPSBlLmdldFgoKSwgeSA9IGUuZ2V0WSgpOworICAgICAgICBpZiAoZkN1cnJlbnRYICE9IHggfHwgZkN1cnJlbnRZICE9IHkpIHsKKyAgICAgICAgICAgIGZDdXJyZW50WCA9IHg7CisgICAgICAgICAgICBmQ3VycmVudFkgPSB5OworICAgICAgICAgICAgcHJvY2Vzc01vdXNlTG9jYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gbW91c2VFbnRlcihNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBmTW91c2VPdXRzaWRlID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZkF1dG9zY3JvbGxUaHJlYWQgPT0gbnVsbCkgeworICAgICAgICAgICAgZkF1dG9zY3JvbGxUaHJlYWQgPSBuZXcgVGhyZWFkKHRoaXMpOworICAgICAgICAgICAgZkF1dG9zY3JvbGxUaHJlYWQuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmTW91c2VPdXRzaWRlID0gdHJ1ZTsKKyAgICAgICAgbm90aWZ5KCk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgZk1vdXNlT3V0c2lkZSA9IGZhbHNlOworICAgICAgICBmVGhyZWFkUnVuID0gZmFsc2U7CisgICAgICAgIGlmIChmQXV0b3Njcm9sbFRocmVhZCAhPSBudWxsKSB7CisgICAgICAgICAgICBmQXV0b3Njcm9sbFRocmVhZC5pbnRlcnJ1cHQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgIGJvb2xlYW4gaXNaZXJvTGVuZ3RoID0gVGV4dFNlbGVjdGlvbi5yYW5nZUlzWmVyb0xlbmd0aChmQW5jaG9yU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQW5jaG9yRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkN1cnJlbnQpOworICAgICAgICBmU2VsZWN0aW9uLm1vdXNlUmVsZWFzZWQoaXNaZXJvTGVuZ3RoICE9IGZXYXNaZXJvTGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc01vdXNlTG9jYXRpb24oKSB7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuc2Nyb2xsVG9TaG93KGZDdXJyZW50WCwgZkN1cnJlbnRZKTsKKyAgICAgICAgZlRleHRDb21wb25lbnQucG9pbnRUb1RleHRPZmZzZXQoZkN1cnJlbnQsIGZDdXJyZW50WCwgZkN1cnJlbnRZLCBudWxsLCB0cnVlKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldFNlbGVjdGlvbigpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnQuZ3JlYXRlclRoYW4oZkFuY2hvckVuZCkpIHsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KGZDdXJyZW50KTsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsUmFuZ2VBbmREcmF3KGZBbmNob3JTdGFydCwgZkN1cnJlbnQsIGZBbmNob3JTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZkN1cnJlbnQubGVzc1RoYW4oZkFuY2hvclN0YXJ0KSkgeworICAgICAgICAgICAgZlNlbGVjdGlvbi5hZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KGZDdXJyZW50KTsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsUmFuZ2VBbmREcmF3KGZDdXJyZW50LCBmQW5jaG9yRW5kLCBmQW5jaG9yU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkN1cnJlbnQuYXNzaWduKGZBbmNob3JFbmQpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxSYW5nZUFuZERyYXcoZkFuY2hvclN0YXJ0LCBmQW5jaG9yRW5kLCBmQW5jaG9yU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworCisgICAgICAgIFJ1bm5hYmxlIGRvTW91c2VMb2MgPSBuZXcgUnVubmFibGUoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgcHJvY2Vzc01vdXNlTG9jYXRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChmVGhyZWFkUnVuKSB7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKGtTY3JvbGxTbGVlcCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBqdXN0IHF1aXQgc2Nyb2xsaW5nCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCh0aGlzKSB7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoIWZNb3VzZU91dHNpZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGp1c3QgcXVpdCBzY3JvbGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZSdW5TdHJhdGVneS5kb0l0KGRvTW91c2VMb2MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TaW1wbGVDb21tYW5kTG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjdkNTJjNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TaW1wbGVDb21tYW5kTG9nLmphdmEKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitmaW5hbCBjbGFzcyBTaW1wbGVDb21tYW5kTG9nIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQ29tbWFuZCBmTGFzdENvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgQ29tbWFuZCBmQ3VycmVudENvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBmQmFzZUlzTW9kaWZpZWQ7CisKKyAgICBwcml2YXRlIGludCBmTG9nU2l6ZSA9IDE0OworCisgICAgcHVibGljIFNpbXBsZUNvbW1hbmRMb2coUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyKSB7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBmQmFzZUlzTW9kaWZpZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKiogYWRkcyB0aGUgc3BlY2ZpZWQgY29tbWFuZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrCisgICAgKiAoYW55IHVuZG9uZSBjb21tYW5kcyBvbiB0aGUgc3RhY2sgYXJlIHJlbW92ZWQpCisgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIGNvbW1hbmQgaGFzIGFscmVhZHkgYmVlbiBleGVjdXRlZCAoaS5lLiwgaXRzIGV4ZWN1dGUoKSBtZXRob2QKKyAgICAqIGhhcyBiZWVuIGNhbGxlZCwgb3IgYW4gZXF1aXZhbGVudCBhY3Rpb24gaGFzIGJlZW4gdGFrZW4pICovCisgICAgdm9pZCBhZGQoQ29tbWFuZCBuZXdDb21tYW5kKSB7CisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBjb21tYW5kcyBvbiB0aGUgc3RhY2sgdGhhdCBoYXZlIGJlZW4gdW5kb25lLCB0aGV5IGFyZQorICAgICAgICAvLyBkcm9wcGVkIG9uIHRoZSBmbG9vciBoZXJlCisgICAgICAgIG5ld0NvbW1hbmQuc2V0UHJldmlvdXNDb21tYW5kKGZDdXJyZW50Q29tbWFuZCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBDb21tYW5kIG9sZExhc3RDb21tYW5kID0gZkxhc3RDb21tYW5kOworICAgICAgICBmTGFzdENvbW1hbmQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbmV3Q29tbWFuZDsKKyAgICAgICAgbGltaXRDb21tYW5kcyhmTG9nU2l6ZSk7CisgICAgICAgIAorICAgICAgICBpZiAob2xkTGFzdENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoZSBjb21tYW5kIGxpc3QgaXMgbG9uZ2VyIHRoYW4gbG9nU2l6ZSwgdHJ1bmNhdGUgaXQuCisgICAgICogVGhpcyBtZXRob2QgdHJhdmVyc2VzIHRoZSBsaXN0IGVhY2ggdGltZSwgYW5kIGlzIG5vdCBhIG1vZGVsCisgICAgICogb2YgZWZmaWNpZW5jeS4gIEl0J3MgYSB0ZW1wb3Jhcnkgd2F5IHRvIHBsdWcgdGhpcyBtZW1vcnkgbGVhaworICAgICAqIHVudGlsIEkgY2FuIGltcGxlbWVudCBhIGJvdW5kZWQgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGxpbWl0Q29tbWFuZHMoaW50IGxvZ1NpemUpIHsKKworICAgICAgICBpZiAobG9nU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBmQ3VycmVudENvbW1hbmQgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQ29tbWFuZCBjdXJyZW50Q29tbWFuZCA9IGZDdXJyZW50Q29tbWFuZDsKKyAgICAgICAgICAgIGludCByZW1haW5pbmcgPSBsb2dTaXplLTE7CisgICAgICAgICAgICB3aGlsZSAoY3VycmVudENvbW1hbmQgIT0gbnVsbCAmJiByZW1haW5pbmcgPiAwKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbW1hbmQgPSBjdXJyZW50Q29tbWFuZC5wcmV2aW91c0NvbW1hbmQoKTsKKyAgICAgICAgICAgICAgICByZW1haW5pbmcgLT0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbW1hbmQuc2V0UHJldmlvdXNDb21tYW5kKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqIGFkZHMgdGhlIHNwZWNmaWVkIGNvbW1hbmQgdG8gdGhlIHRvcCBvZiB0aGUgY29tbWFuZCBzdGFjayBhbmQgZXhlY3V0ZXMgaXQgKi8KKyAgICB2b2lkIGFkZEFuZERvKENvbW1hbmQgbmV3Q29tbWFuZCkgeworICAgICAgICBhZGQobmV3Q29tbWFuZCk7CisgICAgICAgIG5ld0NvbW1hbmQuZXhlY3V0ZSgpOworCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgfQorCisgICAgLyoqIHVuZG9lcyB0aGUgY29tbWFuZCBvbiB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrLCBpZiB0aGVyZSBpcyBvbmUgKi8KKyAgICB2b2lkIHVuZG8oKSB7CisgICAgICAgIGlmIChmQ3VycmVudENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgQ29tbWFuZCBjdXJyZW50ID0gZkN1cnJlbnRDb21tYW5kOworICAgICAgICAgICAgY3VycmVudC51bmRvKCk7CisKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IGN1cnJlbnQucHJldmlvdXNDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnQuc2V0UHJldmlvdXNDb21tYW5kKGZMYXN0Q29tbWFuZCk7CisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBjdXJyZW50OworCisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIHJlZG9lcyB0aGUgbGFzdCB1bmRvbmUgY29tbWFuZCBvbiB0aGUgY29tbWFuZCBzdGFjaywgaWYgdGhlcmUgYXJlIGFueSAqLworICAgIHZvaWQgcmVkbygpIHsKKyAgICAgICAgaWYgKGZMYXN0Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBDb21tYW5kIGxhc3QgPSBmTGFzdENvbW1hbmQ7CisgICAgICAgICAgICBsYXN0LnJlZG8oKTsKKworICAgICAgICAgICAgZkxhc3RDb21tYW5kID0gbGFzdC5wcmV2aW91c0NvbW1hbmQoKTsKKworICAgICAgICAgICAgbGFzdC5zZXRQcmV2aW91c0NvbW1hbmQoZkN1cnJlbnRDb21tYW5kKTsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IGxhc3Q7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworICAgICAgICByZXR1cm4gZkN1cnJlbnRDb21tYW5kICE9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKyAgICAgICAgcmV0dXJuIGZMYXN0Q29tbWFuZCAhPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkJhc2VJc01vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50Q29tbWFuZC5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQmFzZUlzTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZC5zZXRNb2RpZmllZChtb2RpZmllZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbGVhckxvZygpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IGZDdXJyZW50Q29tbWFuZC5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBjaGFuZ2VkID0gZkN1cnJlbnRDb21tYW5kICE9IG51bGwgfHwgZkxhc3RDb21tYW5kICE9IG51bGw7CisgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldExvZ1NpemUoaW50IHNpemUpIHsKKworICAgICAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImxvZyBzaXplIGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZSA8IGZMb2dTaXplKSB7CisgICAgICAgICAgICBsaW1pdENvbW1hbmRzKHNpemUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTG9nU2l6ZSA9IHNpemU7CisgICAgICAgIAorICAgICAgICBpZiAoZkxhc3RDb21tYW5kICE9IG51bGwgfHwgc2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBudWxsOworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0TG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkxvZ1NpemU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlQ2hhbmdlQ29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlQ2hhbmdlQ29tbWFuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlMjEzY2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2NsYXNzIFN0eWxlQ2hhbmdlQ29tbWFuZCBleHRlbmRzIFRleHRDb21tYW5kIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDaGFyYWN0ZXI7CisgICAgcHJpdmF0ZSBTdHlsZU1vZGlmaWVyIGZNb2RpZmllcjsKKworICAgIHB1YmxpYyBTdHlsZUNoYW5nZUNvbW1hbmQoVGV4dEVkaXRCZWhhdmlvciBiZWhhdmlvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IG9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworCisgICAgICAgIHN1cGVyKGJlaGF2aW9yLCBvcmlnaW5hbFRleHQsIHNlbFN0YXJ0QmVmb3JlLmZPZmZzZXQsIHNlbFN0YXJ0QmVmb3JlLCBzZWxFbmRCZWZvcmUpOworICAgICAgICBmTW9kaWZpZXIgPSBtb2RpZmllcjsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKSB7CisgICAgICAgIHJldHVybiBmU2VsRW5kQmVmb3JlLmZPZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICAgICAgZkJlaGF2aW9yLmRvTW9kaWZ5U3R5bGVzKGZBZmZlY3RlZFJhbmdlU3RhcnQsIGZTZWxFbmRCZWZvcmUuZk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNb2RpZmllciwgZkNoYXJhY3RlciwgZlNlbFN0YXJ0QmVmb3JlLCBmU2VsRW5kQmVmb3JlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlZFRleHRDbGlwYm9hcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzMxZmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlZFRleHRDbGlwYm9hcmQuamF2YQpAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmRPd25lcjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuVHJhbnNmZXJhYmxlOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5EYXRhRmxhdm9yOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5VbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CisKKy8qKgorKiBXcmFwcGVyIGZvciBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkCisqIFBhY2thZ2VzIGFuIE1Db25zdFRleHQgaW4gYSB0cmFuc2ZlcmFibGUsIGFuZCBwdXRzIGl0IG9uIHRoZSBjbGlwYm9hcmQuCisqLworCitjbGFzcyBTdHlsZWRUZXh0Q2xpcGJvYXJkIGltcGxlbWVudHMgQ2xpcGJvYXJkT3duZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvLyBUaGlzIGNsYXNzIGhhcyBhIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIHRoZSBXaW5kb3dzIHN5c3RlbSBjbGlwYm9hcmQuCisgICAgLy8gVGhlIHN5c3RlbSBjbGlwYm9hcmQgd2lsbCBvbmx5IHJldHVybiBTdHJpbmcgY29udGVudCwgZXZlbgorICAgIC8vIHRob3VnaCBpdCBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRlbnRzLiAgU28gaWYgb3VyCisgICAgLy8gY2xpcGJvYXJkIGlzIHRoZSBzeXN0ZW0gY2xpcGJvYXJkLCB3ZSdsbCBrZWVwIGEgcmVmZXJlbmNlCisgICAgLy8gdG8gdGhlIGNvbnRlbnQgYW5kIHVzZSB0aGF0IGluc3RlYWQgb2Ygd2hhdCB0aGUgQ2xpcGJvYXJkIHJldHVybnMuCisKKyAgICBwcml2YXRlIHN0YXRpYyBDbGlwYm9hcmQgU1lTVEVNID0gbnVsbDsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU1lTVEVNID0gVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFRocm93YWJsZSB0aCkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3R5bGVkVGV4dENsaXBib2FyZCBmZ1N5c3RlbUNsaXBib2FyZCA9IG51bGw7CisKKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlZFRleHRDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkRm9yKENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBpZiAoY2xpcGJvYXJkID09IFNZU1RFTSAmJiBTWVNURU0gIT0gbnVsbCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkKFNZU1RFTSkgeworICAgICAgICAgICAgICAgIGlmIChmZ1N5c3RlbUNsaXBib2FyZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZnU3lzdGVtQ2xpcGJvYXJkID0gbmV3IFN0eWxlZFRleHRDbGlwYm9hcmQoU1lTVEVNLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmdTeXN0ZW1DbGlwYm9hcmQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0eWxlZFRleHRDbGlwYm9hcmQoY2xpcGJvYXJkLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgYm9vbGVhbiBmVXNlTG9jYWxDb250ZW50czsKKyAgICBwcml2YXRlIFRyYW5zZmVyYWJsZSBmQ29udGVudHMgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHlsZWRUZXh0Q2xpcGJvYXJkKENsaXBib2FyZCBjbGlwYm9hcmQsIGJvb2xlYW4gdXNlTG9jYWxDb250ZW50cykgeworCisgICAgICAgIGlmIChjbGlwYm9hcmQgPT0gbnVsbCkgeworICAgICAgICAgICAgZkNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoIlRleHRQYW5lbCBjbGlwYm9hcmQiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZDbGlwYm9hcmQgPSBjbGlwYm9hcmQ7CisgICAgICAgIH0KKworICAgICAgICBmVXNlTG9jYWxDb250ZW50cyA9IHVzZUxvY2FsQ29udGVudHM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbG9zdE93bmVyc2hpcChDbGlwYm9hcmQgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmZXJhYmxlIGNvbnRlbnRzKSB7CisgICAgICAgIGlmIChjb250ZW50cyA9PSBmQ29udGVudHMpIHsKKyAgICAgICAgICAgIHRoaXMuZkNvbnRlbnRzID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENvbnRlbnRzKE1Db25zdFRleHQgbmV3Q29udGVudHMpIHsKKworICAgICAgICBUcmFuc2ZlcmFibGVUZXh0IGNvbnRlbnRzID0gbmV3IFRyYW5zZmVyYWJsZVRleHQobmV3Q29udGVudHMpOworICAgICAgICBpZiAoZkNsaXBib2FyZCA9PSBTWVNURU0pIHsKKyAgICAgICAgICAgIGZDb250ZW50cyA9IGNvbnRlbnRzOworICAgICAgICB9CisgICAgICAgIGZDbGlwYm9hcmQuc2V0Q29udGVudHMoY29udGVudHMsIHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgVHJhbnNmZXJhYmxlIGdldENsaXBib2FyZENvbnRlbnRzKCkgeworCisgICAgICAgIGlmIChmVXNlTG9jYWxDb250ZW50cyAmJiBmQ29udGVudHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmQ2xpcGJvYXJkLmdldENvbnRlbnRzKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhcyBjb250ZW50cyAtIGZhc3RlciB0aGFuIGdldENvbnRlbnRzIGZvciBmaW5kaW5nIG91dCB3aGV0aGVyIHRoZQorICAgICAqIGNsaXBib2FyZCBoYXMgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNDb250ZW50cygpIHsKKworICAgICAgICBUcmFuc2ZlcmFibGUgY29udGVudHMgPSBnZXRDbGlwYm9hcmRDb250ZW50cygpOworCisgICAgICAgIGlmIChjb250ZW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY29udGVudHMuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikgfHwKKyAgICAgICAgICAgICAgIGNvbnRlbnRzLmlzRGF0YUZsYXZvclN1cHBvcnRlZChEYXRhRmxhdm9yLnN0cmluZ0ZsYXZvcikgfHwKKyAgICAgICAgICAgICAgIGNvbnRlbnRzLmlzRGF0YUZsYXZvclN1cHBvcnRlZChEYXRhRmxhdm9yLnBsYWluVGV4dEZsYXZvcik7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0U3RyaW5nKElucHV0U3RyZWFtIGluU3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN0cmluZyB2YWx1ZSA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgaW50IGJ5dGVzUmVhZDsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBieXRlIGluQnl0ZXNbXSA9IG5ldyBieXRlW2luU3RyZWFtLmF2YWlsYWJsZSgpXTsKKyAgICAgICAgICAgIGJ5dGVzUmVhZCA9IGluU3RyZWFtLnJlYWQoaW5CeXRlcyk7CisKKyAgICAgICAgICAgIGlmIChieXRlc1JlYWQgIT0gLTEpCisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIG5ldyBTdHJpbmcoaW5CeXRlcyk7CisKKyAgICAgICAgfSB3aGlsZSAoYnl0ZXNSZWFkICE9IC0xKTsKKworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhlIENsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LCByZXR1cm4gaXQgYXMgYW4KKyAgICAgKiBNQ29uc3RUZXh0LiAgT3RoZXJ3aXNlIHJldHVybiBudWxsLgorICAgICAqIEBwYXJhbSBkZWZhdWx0U3R5bGUgdGhlIHN0eWxlIHRvIGFwcGx5IHRvIHVuc3R5bGVkCisgICAgICogICAgICB0ZXh0IChzdWNoIGFzIGEgU3RyaW5nKS4gIElmIHRoZSBjbGlwYm9hcmQKKyAgICAgKiAgICAgIGhhcyBzdHlsZWQgdGV4dCB0aGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRDb250ZW50cyhBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlKSB7CisKKyAgICAgICAgVHJhbnNmZXJhYmxlIGNvbnRlbnRzID0gZ2V0Q2xpcGJvYXJkQ29udGVudHMoKTsKKworICAgICAgICBpZiAoY29udGVudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBEYXRhRmxhdm9yIGZsYXZvcnNbXSA9IGNvbnRlbnRzLmdldFRyYW5zZmVyRGF0YUZsYXZvcnMoKTsKKworICAgICAgICAvLyBzZWFyY2ggZmxhdm9ycyBmb3Igb3VyIGZsYXZvciwgU3RyaW5nIGZsYXZvciBhbmQgcmF3IHRleHQgZmxhdm9yCisKKyAgICAgICAgRXhjZXB0aW9uIGV4ID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICBpbnQgaTsKKworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBmbGF2b3JzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGZsYXZvcnNbaV0uZXF1YWxzKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSA8IGZsYXZvcnMubGVuZ3RoKSB7CisKKyAgICAgICAgICAgICAgICBPYmplY3QgZGF0YSA9IGNvbnRlbnRzLmdldFRyYW5zZmVyRGF0YShNQ29uc3RUZXh0LnN0eWxlZFRleHRGbGF2b3IpOworICAgICAgICAgICAgICAgIGlmIChkYXRhID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGF0YSBpcyBudWxsLiIpOworICAgICAgICAgICAgICAgIHJldHVybiAoTUNvbnN0VGV4dCkgZGF0YTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBmbGF2b3JzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGZsYXZvcnNbaV0uZXF1YWxzKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpIDwgZmxhdm9ycy5sZW5ndGgpIHsKKworICAgICAgICAgICAgICAgIE9iamVjdCBkYXRhID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0eWxlZFRleHQoKFN0cmluZykgZGF0YSwgZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBmbGF2b3JzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGZsYXZvcnNbaV0uZXF1YWxzKERhdGFGbGF2b3IucGxhaW5UZXh0Rmxhdm9yKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpIDwgZmxhdm9ycy5sZW5ndGgpIHsKKworICAgICAgICAgICAgICAgIE9iamVjdCBkYXRhID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhKERhdGFGbGF2b3IucGxhaW5UZXh0Rmxhdm9yKTsKKworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0U3RyaW5nID0gZ2V0U3RyaW5nKChJbnB1dFN0cmVhbSkgZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHlsZWRUZXh0KHRleHRTdHJpbmcsIGRlZmF1bHRTdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRGbGF2b3JFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXggPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXhjZXB0aW9uIHdoZW4gcmV0cmlldmluZyBkYXRhLiAgRXhjZXB0aW9uOiIgKyBleCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q2hhbmdlQ29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDaGFuZ2VDb21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDMzNzA1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q2hhbmdlQ29tbWFuZC5qYXZhCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitjbGFzcyBUZXh0Q2hhbmdlQ29tbWFuZCBleHRlbmRzIFRleHRDb21tYW5kIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmTmV3VGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbFN0YXJ0QWZ0ZXI7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZTZWxFbmRBZnRlcjsKKworICAgIHB1YmxpYyBUZXh0Q2hhbmdlQ29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCBvcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFmZmVjdGVkUmFuZ2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRBZnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmRBZnRlcikgeworICAgICAgICBzdXBlcihiZWhhdmlvciwgb3JpZ2luYWxUZXh0LCBhZmZlY3RlZFJhbmdlU3RhcnQsIHNlbFN0YXJ0QmVmb3JlLCBzZWxFbmRCZWZvcmUpOworICAgICAgICBmTmV3VGV4dCA9IG5ld1RleHQ7CisgICAgICAgIGZTZWxTdGFydEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIuYXNzaWduKHNlbFN0YXJ0QWZ0ZXIpOworICAgICAgICBmU2VsRW5kQWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsRW5kQWZ0ZXIuYXNzaWduKHNlbEVuZEFmdGVyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKSB7CisgICAgICAgIGlmIChmTmV3VGV4dCA9PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZBZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmQWZmZWN0ZWRSYW5nZVN0YXJ0ICsgZk5ld1RleHQubGVuZ3RoKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICAgICAgZkJlaGF2aW9yLmRvUmVwbGFjZVRleHQoZkFmZmVjdGVkUmFuZ2VTdGFydCwgZkFmZmVjdGVkUmFuZ2VTdGFydCArIGZPcmlnaW5hbFRleHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk5ld1RleHQsIGZTZWxTdGFydEFmdGVyLCBmU2VsRW5kQWZ0ZXIpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZVN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXROZXdUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworICAgICAgICBmTmV3VGV4dCA9IG5ld1RleHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U2VsUmFuZ2VBZnRlcihUZXh0T2Zmc2V0IHN0YXJ0LCBUZXh0T2Zmc2V0IGVuZCkgeworICAgICAgICBpZiAoZlNlbFN0YXJ0QWZ0ZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIGZTZWxTdGFydEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgaWYgKGZTZWxFbmRBZnRlciA9PSBudWxsKQorICAgICAgICAgICAgZlNlbEVuZEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIuYXNzaWduKHN0YXJ0KTsKKyAgICAgICAgZlNlbEVuZEFmdGVyLmFzc2lnbihlbmQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByZXBlbmRUb09sZFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZPcmlnaW5hbFRleHQuaW5zZXJ0KDAsIG5ld1RleHQpOworICAgICAgICBmQWZmZWN0ZWRSYW5nZVN0YXJ0IC09IG5ld1RleHQubGVuZ3RoKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYXBwZW5kVG9PbGRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworICAgICAgICBmT3JpZ2luYWxUZXh0LmFwcGVuZChuZXdUZXh0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbW1hbmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3MzBkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbW1hbmQuamF2YQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworYWJzdHJhY3QgY2xhc3MgVGV4dENvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByb3RlY3RlZCBUZXh0RWRpdEJlaGF2aW9yIGZCZWhhdmlvcjsKKyAgICBwcm90ZWN0ZWQgTVRleHQgZk9yaWdpbmFsVGV4dDsKKyAgICBwcm90ZWN0ZWQgaW50IGZBZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgcHJvdGVjdGVkIFRleHRPZmZzZXQgZlNlbFN0YXJ0QmVmb3JlOworICAgIHByb3RlY3RlZCBUZXh0T2Zmc2V0IGZTZWxFbmRCZWZvcmU7CisKKyAgICBwdWJsaWMgVGV4dENvbW1hbmQoVGV4dEVkaXRCZWhhdmlvciBiZWhhdmlvciwKKyAgICAgICAgICAgICAgICAgICAgICAgTVRleHQgb3JpZ2luYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWZmZWN0ZWRSYW5nZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0QmVmb3JlLAorICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEJlZm9yZSkgeworCisgICAgICAgIGZCZWhhdmlvciA9IGJlaGF2aW9yOworICAgICAgICBmT3JpZ2luYWxUZXh0ID0gb3JpZ2luYWxUZXh0OworICAgICAgICBmQWZmZWN0ZWRSYW5nZVN0YXJ0ID0gYWZmZWN0ZWRSYW5nZVN0YXJ0OworICAgICAgICBmU2VsU3RhcnRCZWZvcmUgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsU3RhcnRCZWZvcmUuYXNzaWduKHNlbFN0YXJ0QmVmb3JlKTsKKyAgICAgICAgZlNlbEVuZEJlZm9yZSA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxFbmRCZWZvcmUuYXNzaWduKHNlbEVuZEJlZm9yZSk7CisgICAgfQorCisgICAgcHVibGljIGFic3RyYWN0IGludCBhZmZlY3RlZFJhbmdlRW5kKCk7CisKKyAgICBwdWJsaWMgdm9pZCB1bmRvKCkgeworICAgICAgICBmQmVoYXZpb3IuZG9SZXBsYWNlVGV4dChmQWZmZWN0ZWRSYW5nZVN0YXJ0LCBhZmZlY3RlZFJhbmdlRW5kKCksIGZPcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbFN0YXJ0QmVmb3JlLCBmU2VsRW5kQmVmb3JlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDI2OGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDk1NCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQ29tcG9uZW50QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0xpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VNb3Rpb25MaXN0ZW5lcjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkNvbXBvbmVudEV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitjbGFzcyBUZXh0Q29tcG9uZW50IGV4dGVuZHMgRmFrZUNvbXBvbmVudAorICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRzIEJlaGF2aW9yT3duZXIsCisgICAgICAgICAgICAgICAgICAgIEZvY3VzTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIEtleUxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICBNb3VzZUxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICBNb3VzZU1vdGlvbkxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICBTY3JvbGxlci5DbGllbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdJTkRPV19XSURUSCA9IC0xMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0lOU0VUID0gMTA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDb2xvciBTVFJPTkdfQ0FSRVRfQ09MT1IgPSBDb2xvci5ibGFjazsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDb2xvciBXRUFLX0NBUkVUX0NPTE9SID0gQ29sb3IuZGFya0dyYXk7CisKKyAgICBwcml2YXRlIEJlaGF2aW9yIGZCZWhhdmlvcjsKKyAgICBwcml2YXRlIE1UZXh0IGZUZXh0OworICAgIHByaXZhdGUgU3R5bGVkVGV4dENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgYm9vbGVhbiBmU2Nyb2xsczsKKyAgICBwcml2YXRlIFNjcm9sbGVyIGZTY3JvbGxlcjsKKworICAgIHByaXZhdGUgRG9jdW1lbnRWaWV3IGZEb2N1bWVudFZpZXcgPSBudWxsOworCisgICAgLy8gc2lnaCAtIGNhbid0IGNyZWF0ZSBEb2N1bWVudFZpZXcgdW50aWwgYWRkTm90aWZ5KCkgaXMgY2FsbGVkLgorICAgIC8vIFRoZXNlIHZhbHVlcyBob2xkIERvY3VtZW50VmlldyBjdG9yIGFyZ3MKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlczsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlZpZXdXcmFwczsKKyAgICBwcml2YXRlIGludCBmVmlld1dyYXBXaWR0aDsKKyAgICBwcml2YXRlIGludCBmVmlld0luc2V0QW1vdW50OworICAgIAorICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0Q29tcG9uZW50LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IG1vZGVsLiAgVGhpcyBtb2RlbCB3aWxsIGJlIHVzZWQgZm9yCisgICAgICogdGhlIGxpZmUgb2YgdGhlIGNvbXBvbmVudCwgZXZlbiBpZiBzZXRUZXh0IGlzIGNhbGxlZAorICAgICAqIEBwYXJhbSB3cmFwcyBpZiB0cnVlLCB0aGUgdGV4dCBpcyB3cmFwcGVkIHRvIHRoZSBzcGVjaWZpZWQKKyAgICAgKiB3cmFwcGluZyB3aWR0aC4gIElmIGZhbHNlLCB0aGUgdGV4dCB3cmFwcyBvbmx5IGF0IHBhcmFncmFwaCBicmVha3MuCisgICAgICogQHBhcmFtIHdyYXBXaWR0aCBpZ25vcmVkIGlmIHdyYXBzIGlzIGZhbHNlLiAgVGV4dCB3cmFwcyB0byB0aGlzIHdpZHRoCisgICAgICogdW5sZXNzIHRoZSB3aWR0aCBpcyBXSU5ET1dfV0lEVEgsIGluIHdoaWNoIGNhc2UgdGV4dCB3cmFwcyB0byB3aWR0aAorICAgICAqIG9mIHRoaXMgY29tcG9uZW50LiBTaG91bGQgbm90IGJlIG5lZ2F0aXZlICh1bmxlc3MgaXQgaXMgV0lORE9XX1dJRFRIKS4KKyAgICAgKiBAcGFyYW0gaW5zZXRBbW91bnQgdGhlIHNpemUgb2YgdGhlIG1hcmdpbnMgYXJvdW5kIHRoZSB0ZXh0CisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgY2xpcGJvYXJkIHRvIHVzZSBmb3IgY3V0L2NvcHkvcGFzdGUgb3BlcmF0aW9ucy4KKyAgICAgKiBJZiBudWxsLCB0aGUgY29tcG9uZW50IHdpbGwgdXNlIGl0cyBvd24gY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBUZXh0Q29tcG9uZW50KE1UZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd3JhcFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZWRUZXh0Q2xpcGJvYXJkIGNsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNjcm9sbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgU2Nyb2xsZXIgc2Nyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkJlaGF2aW9yID0gbnVsbDsKKworICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUZXh0IGlzIG51bGwuIik7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZEZWZhdWx0VmFsdWVzID0gZGVmYXVsdFZhbHVlczsKKyAgICAgICAgCisgICAgICAgIGlmIChjbGlwYm9hcmQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2xpcGJvYXJkIGlzIG51bGwuIik7CisgICAgICAgIH0KKyAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKworICAgICAgICBmU2Nyb2xscyA9IHNjcm9sbHM7CisKKyAgICAgICAgZlNjcm9sbGVyID0gc2Nyb2xsZXI7CisKKyAgICAgICAgZkRvY3VtZW50VmlldyA9IG51bGw7CisKKyAgICAgICAgZlZpZXdXcmFwV2lkdGggPSB3cmFwV2lkdGg7CisgICAgICAgIGZWaWV3V3JhcHMgPSB3cmFwczsKKyAgICAgICAgZlZpZXdJbnNldEFtb3VudCA9IGluc2V0QW1vdW50OworICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICB9CisgICAgCisgICAgQXR0cmlidXRlTWFwIGdldERlZmF1bHRWYWx1ZXMoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmRGVmYXVsdFZhbHVlczsKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRIb3N0KENvbXBvbmVudCBjb21wb25lbnQpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyLnNldEhvc3QoY29tcG9uZW50KTsKKyAgICAgICAgCisgICAgICAgIGNvbXBvbmVudC5hZGRGb2N1c0xpc3RlbmVyKHRoaXMpOworICAgICAgICBjb21wb25lbnQuYWRkS2V5TGlzdGVuZXIodGhpcyk7CisgICAgICAgIGNvbXBvbmVudC5hZGRNb3VzZUxpc3RlbmVyKHRoaXMpOworICAgICAgICBjb21wb25lbnQuYWRkTW91c2VNb3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGNvbXBvbmVudC5hZGRDb21wb25lbnRMaXN0ZW5lcihuZXcgQ29tcG9uZW50QWRhcHRlcigpIHsgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgY29tcG9uZW50UmVzaXplZChDb21wb25lbnRFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmRG9jdW1lbnRWaWV3Lmhvc3RTaXplQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb1Nob3coZkRvY3VtZW50Vmlldy5nZXREb2N1bWVudEJvdW5kcygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBVGV4dFBhbmVsSW1wbCdzIHVzZSBvbmx5IQorICAgICAqLworICAgIENvbXBvbmVudCBnZXRIb3N0KCkgeworICAgIAorICAgICAgICByZXR1cm4gZkhvc3Q7CisgICAgfQorICAgIAorICAgIC8vIENyZWF0ZSBkb2N1bWVudCB2aWV3IGhlcmUuICBUZXh0Q29tcG9uZW50IGlzbid0IGZ1bGx5IGNvbnN0cnVjdGVkCisgICAgLy8gdW50aWwgdGhpcyBpcyBjYWxsZWQuCisgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBieSBob3N0IGNvbXBvbmVudCEKKyAgICB2b2lkIGFkZE5vdGlmeSgpIHsKKworICAgICAgICBHcmFwaGljcyBnID0gZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgaWYgKGcgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJHcmFwaGljcyBzaG91bGQgYmUgdmFsaWQgaGVyZSBidXQgaXNuJ3QuIik7CisgICAgICAgIH0KKworICAgICAgICBmRG9jdW1lbnRWaWV3ID0gbmV3IERvY3VtZW50Vmlldyh0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWaWV3V3JhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWaWV3V3JhcFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVmlld0luc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTGlzdGVuZXIpOworICAgICAgICBkb2N1bWVudFNpemVDaGFuZ2VkKCk7CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkZPUk1BVF9XSURUSF9DSEFOR0VEKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFJlY3RhbmdsZSBnZXRCb3VuZHMoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkhvc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDAsIDAsIDApOworICAgIH0KKyAgICAKKyAgICBHcmFwaGljcyBnZXRHcmFwaGljcygpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiAoZkhvc3Q9PW51bGwpPyBudWxsIDogZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKyAgICB9CisgICAgCisgICAgdm9pZCByZXF1ZXN0Rm9jdXMoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkhvc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgZkhvc3QucmVxdWVzdEZvY3VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAqKiogQmVoYXZpb3IgbWFuYWdlbWVudCAqKioKKyAgICBwdWJsaWMgQmVoYXZpb3IgZ2V0QmVoYXZpb3IoKSB7CisgICAgICAgIHJldHVybiBmQmVoYXZpb3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QmVoYXZpb3IoQmVoYXZpb3IgYikgeworICAgICAgICBmQmVoYXZpb3IgPSBiOworICAgIH0KKworCisgICAgLy8gKioqIEV2ZW50cyAtIGp1c3QgZm9yd2FyZCB0byBiZWhhdmlvciAqKioKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5mb2N1c0dhaW5lZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLmZvY3VzTG9zdChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQga2V5UHJlc3NlZChLZXlFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3Iua2V5UHJlc3NlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlUeXBlZChldmVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3Iua2V5UmVsZWFzZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlQ2xpY2tlZChNb3VzZUV2ZW50IGV2ZW50KSB7CisgICAgICAgIC8vIG5vIGJlaGF2aW9yIG1ldGhvZCBmb3IgdGhpcworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZURyYWdnZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGV2ZW50KSAgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VFbnRlcmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGV2ZW50KSAgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VFeGl0ZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlTW92ZWQoTW91c2VFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VNb3ZlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLm1vdXNlUHJlc3NlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGV2ZW50KSAgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VSZWxlYXNlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBib29sZWFuIGhhbmRsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBmQmVoYXZpb3IudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKworICAgIC8vICoqKiBTY3JvbGwgbWV0aG9kcyAtIGNhbGxlZCBieSBCZWhhdmlvcnMKKworICAgIC8vIHZpZXdTdGFydCwgdmlld0xpbWl0IGlzIHZpc2libGUgYm91bmRzIG9mIHdpbmRvdworICAgIC8vIHRhcmdldFN0YXJ0LCB0YXJnZXRMaW1pdCBpcyB0aGUgcmVnaW9uIHRvIHNjcm9sbCBpbnRvIHZpZXcKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0U2Nyb2xsRGlmZmVyZW5jZShpbnQgdmlld1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2aWV3TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0YXJnZXRMaW1pdCkgeworCisgICAgICAgIGlmICh2aWV3U3RhcnQgPD0gdGFyZ2V0U3RhcnQpIHsKKyAgICAgICAgICAgIGlmICh2aWV3TGltaXQgPj0gdGFyZ2V0TGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCh2aWV3U3RhcnQtdGFyZ2V0U3RhcnQsIHZpZXdMaW1pdC10YXJnZXRMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodmlld0xpbWl0ID4gdGFyZ2V0TGltaXQpIHsKKworICAgICAgICAgICAgcmV0dXJuIHZpZXdMaW1pdCAtIHRhcmdldExpbWl0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHNjcm9sbFRvU2hvdyhSZWN0YW5nbGUgc2hvd1JlY3QpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZ2V0Qm91bmRzKCk7CisKKyAgICAgICAgICAgIGludCBkeCA9IGdldFNjcm9sbERpZmZlcmVuY2Uoc2hvd1JlY3QueCwgc2hvd1JlY3QueCArIHNob3dSZWN0LndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZHMueCwgYm91bmRzLnggKyBib3VuZHMud2lkdGgpOworICAgICAgICAgICAgaW50IGR5ID0gZ2V0U2Nyb2xsRGlmZmVyZW5jZShzaG93UmVjdC55LCBzaG93UmVjdC55ICsgc2hvd1JlY3QuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZHMueSwgYm91bmRzLnkgKyBib3VuZHMuaGVpZ2h0KTsKKworICAgICAgICAgICAgc2Nyb2xsU2VsZihkeCwgZHkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzY3JvbGxUb1Nob3coaW50IHNob3dYLCBpbnQgc2hvd1kpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgZHggPSAwLCBkeSA9IDA7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBib3VuZHMgPSBnZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIGlmIChzaG93WCA8IGJvdW5kcy54KSB7CisgICAgICAgICAgICAgICAgZHggPSBzaG93WCAtIGJvdW5kcy54OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc2hvd1ggPiBib3VuZHMueCArIGJvdW5kcy53aWR0aCkgeworICAgICAgICAgICAgICAgIGR4ID0gc2hvd1ggLSAoYm91bmRzLnggKyBib3VuZHMud2lkdGgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc2hvd1kgPCBib3VuZHMueSkgeworICAgICAgICAgICAgICAgIGR5ID0gc2hvd1kgLSBib3VuZHMueTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHNob3dZID4gYm91bmRzLnkgKyBib3VuZHMuaGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgZHkgPSBzaG93WSAtIChib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzY3JvbGxTZWxmKGR4LCBkeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBwaW5TY3JvbGxPZmZzZXQoaW50IGRlbHRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29udGVudFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29udGVudExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpZXdTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpZXdMZW5ndGgpIHsKKworICAgICAgICBpZiAoZGVsdGEgPiAwKSB7CisgICAgICAgICAgICBpbnQgdmlld0xpbWl0ID0gdmlld1N0YXJ0ICsgdmlld0xlbmd0aDsKKyAgICAgICAgICAgIGludCBjb250ZW50TGltaXQgPSBjb250ZW50U3RhcnQgKyBjb250ZW50TGVuZ3RoOworCisgICAgICAgICAgICBpZiAodmlld0xpbWl0ICsgZGVsdGEgPiBjb250ZW50TGltaXQpIHsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IE1hdGgubWF4KDAsIGNvbnRlbnRMaW1pdC12aWV3TGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHZpZXdTdGFydCArIGRlbHRhIDwgY29udGVudFN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBNYXRoLm1pbigwLCBjb250ZW50U3RhcnQtdmlld1N0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkZWx0YTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2Nyb2xsU2VsZihpbnQgZHgsIGludCBkeSkgeworCisgICAgICAgIGJvb2xlYW4gc2Nyb2xsZWQgPSBzY3JvbGxCeShkeCwgZHkpOworCisgICAgICAgIGlmIChzY3JvbGxlZCAmJiBmU2Nyb2xsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgUmVjdGFuZ2xlIGRvY3VtZW50Qm91bmRzID0gZkRvY3VtZW50Vmlldy5nZXREb2N1bWVudEJvdW5kcygpOworICAgICAgICAgICAgZlNjcm9sbGVyLnNldFBvc2l0aW9uKC1kb2N1bWVudEJvdW5kcy54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1kb2N1bWVudEJvdW5kcy55KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gc2Nyb2xsQnkoaW50IGR4LCBpbnQgZHkpIHsKKworICAgICAgICBib29sZWFuIHNjcm9sbGVkID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGZTY3JvbGxzKSB7CisgICAgICAgICAgICBSZWN0YW5nbGUgZG9jdW1lbnRCb3VuZHMgPSBmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCk7CisgICAgICAgICAgICBSZWN0YW5nbGUgdmlld0JvdW5kcyA9IGdldEJvdW5kcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgb2xkRHggPSBkeDsKKyAgICAgICAgICAgIGR4ID0gcGluU2Nyb2xsT2Zmc2V0KGR4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Qm91bmRzLngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudEJvdW5kcy53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3VuZHMueCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3VuZHMud2lkdGgpOworICAgICAgICAgICAgZHkgPSBwaW5TY3JvbGxPZmZzZXQoZHksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMueSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Qm91bmRzLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3VuZHMueSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3VuZHMuaGVpZ2h0KTsKKworICAgICAgICAgICAgaWYgKGR4ICE9IDAgfHwgZHkgIT0gMCkgeworICAgICAgICAgICAgICAgIHNjcm9sbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmRG9jdW1lbnRWaWV3Lm1vdmVCeSgtZHgsIC1keSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2Nyb2xsZWQ7CisgICAgfQorCisgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgU2Nyb2xsZXIuQ2xpZW50IC0gY2FsbGVkIGJ5IFNjcm9sbGVyCisgICAgLy8gdGhleSBoYXZlIHRvIGJlIHB1YmxpYyBzaW5jZSB0aGV5J3JlIGluIGFuIGludGVyZmFjZQorICAgIC8vIG5vIG9uZSBlbHNlIHNob3VsZCBjYWxsIHRoZXNlIG1ldGhvZHMKKyAgICBwdWJsaWMgUmVjdGFuZ2xlIGdldFNjcm9sbFNpemUoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcuZ2V0U2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzY3JvbGxUbyhpbnQgeCwgaW50IHkpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBzY3JvbGxCeSh4ICsgZkRvY3VtZW50Vmlldy5nZXREb2NYKCksIHkgKyBmRG9jdW1lbnRWaWV3LmdldERvY1koKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAqKiogVGV4dCBhY2Nlc3MgKioqCisgICAgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gZlRleHQ7CisgICAgfQorCisgICAgTVRleHQgZ2V0TW9kaWZpYWJsZVRleHQoKSB7CisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBTdHlsZWRUZXh0Q2xpcGJvYXJkIGdldENsaXBib2FyZCgpIHsKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQ7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LnBhaW50KGcpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvLyAqKiogTWV0cmljIGluZm8gLSB1c2VkIGJ5IEJlaGF2aW9ycworICAgIFJlY3RhbmdsZSBnZXRDYXJldFJlY3QoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRDYXJldFJlY3Qob2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZSgwLCAwKTsKKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IHBvaW50VG9UZXh0T2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmZpbml0ZU1vZGUpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5wb2ludFRvVGV4dE9mZnNldChyZXN1bHQsIHgsIHksIGFuY2hvciwgaW5maW5pdGVNb2RlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFRleHRPZmZzZXQoKTsKKyAgICB9CisKKyAgICAvLyAqKiogT3RoZXIgc3R1ZmYgdXNlZCBieSBCZWhhdmlvcnMgLSBtb3N0bHkgZm9ybWF0dGVyIGV4cG9ydHMKKyAgICBpbnQgbGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5saW5lQ29udGFpbmluZyhvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5saW5lUmFuZ2VMb3cobGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcubGluZVJhbmdlTGltaXQobGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgZkRvY3VtZW50Vmlldy5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFJlY3RhbmdsZSBnZXRCb3VuZGluZ1JlY3QoVGV4dE9mZnNldCBvZmZzZXQxLCBUZXh0T2Zmc2V0IG9mZnNldDIpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRCb3VuZGluZ1JlY3Qob2Zmc2V0MSwgb2Zmc2V0Mik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoMCwgMCwgMCwgMCk7CisgICAgfQorCisgICAgc3luY2hyb25pemVkIHZvaWQgcmVmb3JtYXRBbmREcmF3VGV4dChpbnQgcmVmb3JtYXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGFkZGl0aW9uYWxVcGRhdGVSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcucmVmb3JtYXRBbmREcmF3VGV4dChyZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVXBkYXRlUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWxpdGVDb2xvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBwcmV2aW91c09mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcuZmluZE5ld0luc2VydGlvbk9mZnNldChyZXN1bHQsIGluaXRpYWxPZmZzZXQsIHByZXZpb3VzT2Zmc2V0LCBkaXJlY3Rpb24pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVGV4dE9mZnNldChpbml0aWFsT2Zmc2V0KTsKKyAgICB9CisKKyAgICBzeW5jaHJvbml6ZWQgdm9pZCBkcmF3VGV4dChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGRhbWFnZWRSZWN0LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzZWxlY3Rpb25WaXNpYmxlLAorICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgQ29sb3IgaGlsaXRlQ29sb3IpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LmRyYXdUZXh0KGcsIGRhbWFnZWRSZWN0LCBzZWxlY3Rpb25WaXNpYmxlLCBzZWxTdGFydCwgc2VsRW5kLCBoaWxpdGVDb2xvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9jdW1lbnRTaXplQ2hhbmdlZCgpIHsKKworICAgICAgICBpZiAoZlNjcm9sbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZTY3JvbGxlci5jbGllbnRTY3JvbGxTaXplQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldEZvcm1hdFdpZHRoKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEb2N1bWVudFZpZXcgeworCisgICAgICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmSG9zdDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZXcmFwczsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZXcmFwVG9XaW5kb3dXaWR0aDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkluc2V0QW1vdW50OworICAgICAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisKKyAgICAgICAgLy8gZkJvdW5kcyBpcyB0aGUgdG90YWwgc2Nyb2xsYWJsZSBhcmVhIG9mIHRoZSBkb2N1bWVudCAoaW5jbHVkaW5nIGluc2V0cykKKyAgICAgICAgcHJpdmF0ZSBSZWN0YW5nbGUgZkJvdW5kcyA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgUG9pbnQgZk9yaWdpbjsKKworICAgICAgICBwcml2YXRlIE1Gb3JtYXR0ZXIgZkZvcm1hdHRlcjsKKworICAgICAgICBwcml2YXRlIE9mZnNjcmVlbkJ1ZmZlckNhY2hlIGZCdWZmZXJDYWNoZTsKKworICAgICAgICAvLyBOb3RlLCB3aGVuIHRoaXMgaXMgdHJ1ZSB0aGUgY2FyZXQgd29uJ3QgYmxpbmsgaW4gMS4xLiAgTG9va3MgbGlrZSBhbiBBV1QgYnVnLgorICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGZOb09mZnNjcmVlbkJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbi5nZXRCb29sZWFuKCJUZXh0Q29tcG9uZW50Lk5vT2Zmc2NyZWVuQnVmZmVyIik7CisKKyAgICAgICAgLy8gQW1vdW50IGJ5IHdoaWNoIHRvIHJlZHVjZSB0aGUgZm9ybWF0IHdpZHRoIHRvIGFsbG93IGZvciByaWdodC1hbGlnbmVkIGNhcmV0cy4KKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgQ0FSRVRfU0xPUCA9IDE7CisKKyAgICAgICAgRG9jdW1lbnRWaWV3KFRleHRDb21wb25lbnQgaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwcywKKyAgICAgICAgICAgICAgICAgICAgIGludCB3cmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKworICAgICAgICAgICAgZkhvc3QgPSBob3N0OworICAgICAgICAgICAgZldyYXBUb1dpbmRvd1dpZHRoID0gd3JhcFdpZHRoID09IFdJTkRPV19XSURUSDsKKyAgICAgICAgICAgIGZJbnNldEFtb3VudCA9IGluc2V0QW1vdW50OworICAgICAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisKKyAgICAgICAgICAgIGluaXRGb3JtYXR0ZXJBbmRTaXplKHRleHQsIGRlZmF1bHRWYWx1ZXMsIHdyYXBzLCB3cmFwV2lkdGgpOworCisgICAgICAgICAgICBmQnVmZmVyQ2FjaGUgPSBuZXcgT2Zmc2NyZWVuQnVmZmVyQ2FjaGUoaG9zdC5mSG9zdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBOb3RlOiB0aGlzIGNvbXB1dGVzIHRoZSBib3VuZHMgcmVjdGFuZ2xlIHJlbGF0aXZlIHRvIGZPcmlnaW4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBjYWxjQm91bmRzUmVjdCgpIHsKKyAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBpbnQgaW5zZXREaW0gPSAyICogZkluc2V0QW1vdW50OworCisgICAgICAgICAgICBmaW5hbCBpbnQgbWluWCA9IGZGb3JtYXR0ZXIubWluWCgpOworICAgICAgICAgICAgZmluYWwgaW50IG1pblkgPSBmRm9ybWF0dGVyLm1pblkoKTsKKworICAgICAgICAgICAgZkJvdW5kcy5zZXRCb3VuZHMoZk9yaWdpbi54ICsgbWluWCAtIGZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZPcmlnaW4ueSArIG1pblkgLSBmSW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLm1heFgoKSAtIG1pblggKyBpbnNldERpbSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLm1heFkoKSAtIG1pblkgKyBpbnNldERpbSk7CisgICAgICAgICAgICAvL2lmIChtaW5YIDw9IDApIHsKKyAgICAgICAgICAgIC8vICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2FsY0JvdW5kc1JlY3Q6IG1pblg9IittaW5YKworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICI7IGJvdW5kcy54PSIrZkJvdW5kcy54KyI7IHdpZHRoPSIrZkJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBpbml0Rm9ybWF0dGVyQW5kU2l6ZShNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdyYXBXaWR0aCkgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgaW50IGZvcm1hdFdpZHRoOworCisgICAgICAgICAgICBpZiAoIXdyYXBzIHx8IGZXcmFwVG9XaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gaG9zdEJvdW5kcy53aWR0aCAtIDIgKiBmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoIDw9IENBUkVUX1NMT1ApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBDQVJFVF9TTE9QKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSB3cmFwV2lkdGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIgPSBNRm9ybWF0dGVyLmNyZWF0ZUZvcm1hdHRlcih0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGgtQ0FSRVRfU0xPUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmSG9zdC5nZXRHcmFwaGljcygpKTsKKworICAgICAgICAgICAgZkZvcm1hdHRlci5mb3JtYXRUb0hlaWdodChob3N0Qm91bmRzLmhlaWdodCAqIDIpOworICAgICAgICAgICAgZk9yaWdpbiA9IG5ldyBQb2ludChmSW5zZXRBbW91bnQsIGZJbnNldEFtb3VudCk7CisgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm90aWZpY2F0aW9uIG1ldGhvZCBjYWxsZWQgYnkgVGV4dENvbXBvbmVudAorICAgICAgICB2b2lkIGhvc3RTaXplQ2hhbmdlZCgpIHsKKworICAgICAgICAgICAgZmluYWwgYm9vbGVhbiB3cmFwID0gZkZvcm1hdHRlci53cmFwKCk7CisgICAgICAgICAgICBpZiAoZldyYXBUb1dpbmRvd1dpZHRoIHx8ICF3cmFwKSB7CisKKyAgICAgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGZpbmFsIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisKKyAgICAgICAgICAgICAgICBpbnQgZm9ybWF0V2lkdGggPSBob3N0Qm91bmRzLndpZHRoIC0gMipmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoIDw9IENBUkVUX1NMT1ApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBDQVJFVF9TTE9QKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuc2V0TGluZUJvdW5kKGZvcm1hdFdpZHRoLUNBUkVUX1NMT1ApOworCisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5mb3JtYXRUb0hlaWdodChob3N0Qm91bmRzLnkgKyAoaG9zdEJvdW5kcy5oZWlnaHQqMikgLSBmT3JpZ2luLnkpOworCisgICAgICAgICAgICAgICAgY2FsY0JvdW5kc1JlY3QoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiV2luZG93IGJvdW5kcz0iK2hvc3RCb3VuZHMrIjsgZG9jdW1lbnQgYm91bmRzPSIrZkJvdW5kcyk7CisKKyAgICAgICAgICAgICAgICBmSG9zdC5kb2N1bWVudFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJmb3JtYXRXaWR0aD0iK2Zvcm1hdFdpZHRoKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZG9jdW1lbnQgYm91bmRzPSIrZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vZHVtcFdpZHRoSW5mbygpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lQm91bmQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxpbmVOdW1iZXIgPSBmRm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lSXNMZWZ0VG9SaWdodChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB0ZXh0U2l6ZU1pZ2h0SGF2ZUNoYW5nZWQoKSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gY2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAgZmluYWwgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHRleHRIZWlnaHQgPSBmRm9ybWF0dGVyLm1heFkoKSAtIGZGb3JtYXR0ZXIubWluWSgpICsgaW5zZXREaW07CisgICAgICAgICAgICBpZiAodGV4dEhlaWdodCAhPSBmQm91bmRzLmhlaWdodCkgeworICAgICAgICAgICAgICAgIGZCb3VuZHMuaGVpZ2h0ID0gdGV4dEhlaWdodDsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmRm9ybWF0dGVyLndyYXAoKSkgeworICAgICAgICAgICAgICAgIGludCB0ZXh0V2lkdGggPSBmRm9ybWF0dGVyLm1heFgoKSAtIGZGb3JtYXR0ZXIubWluWCgpICsgaW5zZXREaW07CisgICAgICAgICAgICAgICAgaWYgKHRleHRXaWR0aCAhPSBmQm91bmRzLndpZHRoKSB7CisgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMud2lkdGggPSB0ZXh0V2lkdGg7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVGV4dCBzaXplIGNoYW5nZWQuICBmQm91bmRzOiAiICsgZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgY2FsY0JvdW5kc1JlY3QoKTsKKyAgICAgICAgICAgICAgICBmSG9zdC5kb2N1bWVudFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgZkhvc3Quc2Nyb2xsVG9TaG93KGdldERvY3VtZW50Qm91bmRzKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRvRHJhd1RleHQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGRyYXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNlbGVjdGlvblZpc2libGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgICAgICBDb2xvciBvbGRDb2xvciA9IGcuZ2V0Q29sb3IoKTsKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoZkhvc3QuZ2V0SG9zdCgpLmdldEJhY2tncm91bmQoKSk7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGRyYXdSZWN0LngsIGRyYXdSZWN0LnksIGRyYXdSZWN0LndpZHRoLCBkcmF3UmVjdC5oZWlnaHQpOworICAgICAgICAgICAgZy5zZXRDb2xvcihvbGRDb2xvcik7CisKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgZy5jbGVhclJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25WaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5kcmF3KGcsIGRyYXdSZWN0LCBmT3JpZ2luLCBzZWxTdGFydCwgc2VsRW5kLCBoaWxpdGVDb2xvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZywgZHJhd1JlY3QsIGZPcmlnaW4sIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxTdGFydC5lcXVhbHMoc2VsRW5kKSAmJiBzZWxlY3Rpb25WaXNpYmxlKSB7CisKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXdDYXJldChnLCBzZWxTdGFydCwgZk9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUk9OR19DQVJFVF9DT0xPUiwgV0VBS19DQVJFVF9DT0xPUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGRyYXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VsZWN0aW9uVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkcmF3UmVjdCA9IGRyYXdSZWN0LmludGVyc2VjdGlvbihmSG9zdC5nZXRCb3VuZHMoKSk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRyYXdUZXh0OmRyYXdSZWN0OiAiICsgZHJhd1JlY3QpOworICAgICAgICAgICAgICAgIGcuY2xpcFJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICAgICAgaWYgKGZOb09mZnNjcmVlbkJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICBkb0RyYXdUZXh0KGcsIGRyYXdSZWN0LCBzZWxlY3Rpb25WaXNpYmxlLCBzZWxTdGFydCwgc2VsRW5kLCBoaWxpdGVDb2xvcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJbWFnZSBvZmZzY3JlZW5CdWZmZXIgPSBmQnVmZmVyQ2FjaGUuZ2V0QnVmZmVyKGRyYXdSZWN0LndpZHRoLCBkcmF3UmVjdC5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBHcmFwaGljcyBvZmZzY3JlZW5HcmFwaGljcyA9IG9mZnNjcmVlbkJ1ZmZlci5nZXRHcmFwaGljcygpOworICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5HcmFwaGljcy50cmFuc2xhdGUoLWRyYXdSZWN0LngsIC1kcmF3UmVjdC55KTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZG9EcmF3VGV4dChvZmZzY3JlZW5HcmFwaGljcywgZHJhd1JlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3SW1hZ2Uob2Zmc2NyZWVuQnVmZmVyLCBkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBmSG9zdC5mSG9zdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dFNpemVNaWdodEhhdmVDaGFuZ2VkKCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlZm9ybWF0QW5kRHJhd1RleHQoaW50IHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgYWRkaXRpb25hbFVwZGF0ZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgdmlzaWJsZUJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHJlZHJhd1JlY3QgPSBmRm9ybWF0dGVyLnVwZGF0ZUZvcm1hdChyZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZvcm1hdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk9yaWdpbik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzFdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKworICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxVcGRhdGVSZWN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZWRyYXdSZWN0LmFkZChhZGRpdGlvbmFsVXBkYXRlUmVjdCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlsyXSByZWRyYXdSZWN0OiAiICsgcmVkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZVNlbGVjdGlvbjsKKworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IG51bGwgJiYgc2VsRW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBoYXZlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZWRyYXdSZWN0LmFkZChmRm9ybWF0dGVyLmdldEJvdW5kaW5nUmVjdChzZWxTdGFydCwgc2VsRW5kLCBmT3JpZ2luLCBNRm9ybWF0dGVyLkxPT1NFKSk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlszXSByZWRyYXdSZWN0OiAiICsgcmVkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBoYXZlU2VsZWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRyYXdUZXh0KGZIb3N0LmdldEdyYXBoaWNzKCksIHJlZHJhd1JlY3QsIGhhdmVTZWxlY3Rpb24sIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBsZXRCZWhhdmlvckRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdSZWN0KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChmSG9zdC5mQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZIb3N0LmZCZWhhdmlvci5wYWludChnLCBkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZHJhd1RleHQoZywgZHJhd1JlY3QsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgbW92ZUJ5KGludCBkeCwgaW50IGR5KSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aXNpYmxlQm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKworICAgICAgICAgICAgZkJvdW5kcy54ICs9IGR4OworICAgICAgICAgICAgZkJvdW5kcy55ICs9IGR5OworICAgICAgICAgICAgZk9yaWdpbi54ICs9IGR4OworICAgICAgICAgICAgZk9yaWdpbi55ICs9IGR5OworCisgICAgICAgICAgICBSZWN0YW5nbGUgcmVmcmVzaFJlY3QgPSBuZXcgUmVjdGFuZ2xlKHZpc2libGVCb3VuZHMpOworCisgICAgICAgICAgICBpZiAoZHggPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZy5jb3B5QXJlYSh2aXNpYmxlQm91bmRzLngsIHZpc2libGVCb3VuZHMueSwgdmlzaWJsZUJvdW5kcy53aWR0aCwgdmlzaWJsZUJvdW5kcy5oZWlnaHQsIGR4LCBkeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkeSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFJlY3QueSA9IHZpc2libGVCb3VuZHMueSArIHZpc2libGVCb3VuZHMuaGVpZ2h0ICsgZHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlZnJlc2hSZWN0LmhlaWdodCA9IE1hdGguYWJzKGR5KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigicmVmcmVzaFJlY3Q9IiArIHJlZnJlc2hSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0QmVoYXZpb3JEcmF3KGcsIHJlZnJlc2hSZWN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBSZWN0YW5nbGUgZ2V0SW5zZXRCb3VuZHMoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZShmQm91bmRzLngtZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy55LWZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMud2lkdGgraW5zZXREaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQm91bmRzLmhlaWdodCtpbnNldERpbSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGhvc3RCb3VuZHMgPSBmSG9zdC5nZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSB0ZXh0UmVmcmVzaFJlY3QgPSBob3N0Qm91bmRzLmludGVyc2VjdGlvbihnZXRJbnNldEJvdW5kcygpKTsKKyAgICAgICAgICAgIGxldEJlaGF2aW9yRHJhdyhnLCB0ZXh0UmVmcmVzaFJlY3QpOworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5nZXRDYXJldFJlY3Qob2Zmc2V0LCBmT3JpZ2luKTsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmZpbml0ZU1vZGUpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIucG9pbnRUb1RleHRPZmZzZXQocmVzdWx0LCB4LCB5LCBmT3JpZ2luLCBhbmNob3IsIGluZmluaXRlTW9kZSk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0U2Nyb2xsYWJsZUFyZWEoKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBhcmVhID0gbmV3IFJlY3RhbmdsZShmQm91bmRzKTsKKyAgICAgICAgICAgIGFyZWEueCArPSBmSW5zZXRBbW91bnQgLSBmT3JpZ2luLng7CisgICAgICAgICAgICBhcmVhLnkgKz0gZkluc2V0QW1vdW50IC0gZk9yaWdpbi55OworICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogRG9lc24ndCBjbG9uZSBzbyBUZXh0Q29tcG9uZW50IG5lZWRzIHRvIGJlIG5pY2UuICBUZXh0Q29tcG9uZW50CisgICAgICAgICAqIGlzIHRoZSBvbmx5IGNsYXNzIHdoaWNoIGNhbiBhY2Nlc3MgdGhpcyBhbnl3YXkuCisgICAgICAgICAqLworICAgICAgICBSZWN0YW5nbGUgZ2V0RG9jdW1lbnRCb3VuZHMoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmQm91bmRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZ2V0RG9jWCgpIHsKKyAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbi54IC0gZkluc2V0QW1vdW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZ2V0RG9jWSgpIHsKKyAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbi55IC0gZkluc2V0QW1vdW50OworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmVDb250YWluaW5nKFRleHRPZmZzZXQgb2Zmc2V0KSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGluZVJhbmdlTG93KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVSYW5nZUxvdyhsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCkgeworCisgICAgICAgICAgICBmRm9ybWF0dGVyLnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsIFRleHRPZmZzZXQgb2Zmc2V0MikgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgciA9IGZGb3JtYXR0ZXIuZ2V0Qm91bmRpbmdSZWN0KG9mZnNldDEsIG9mZnNldDIsIGZPcmlnaW4sIE1Gb3JtYXR0ZXIuVElHSFQpOworICAgICAgICAgICAgLy9yLndpZHRoICs9IENBUkVUX1NMT1A7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0MT0iK29mZnNldDErIjsgb2Zmc2V0Mj0iK29mZnNldDIpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImJvdW5kcyB3aWR0aD0iK3Iud2lkdGgrIjsgaG9zdCB3aWR0aD0iKyhmSG9zdC5nZXRCb3VuZHMoKS53aWR0aCkpOworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKworICAgICAgICBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGluaXRpYWxPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmZpbmROZXdJbnNlcnRpb25PZmZzZXQoCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsIGluaXRpYWxPZmZzZXQsIHByZXZpb3VzT2Zmc2V0LCBkaXJlY3Rpb24pOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0RWRpdEJlaGF2aW9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjMwNTg5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0RWRpdEJlaGF2aW9yLmphdmEKQEAgLTAsMCArMSw0ODEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworLy8gQWxsIGNoYW5nZXMgdG8gdGhlIHRleHQgc2hvdWxkIGhhcHBlbiBpbiB0aGlzIGNsYXNzLCBvciBpbgorLy8gaXRzIFR5cGluZ0ludGVyYWN0b3IuCisKK2NsYXNzIFRleHRFZGl0QmVoYXZpb3IgZXh0ZW5kcyBCZWhhdmlvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbjsKKyAgICBwcml2YXRlIE1UZXh0IGZUZXh0OworICAgIHByaXZhdGUgU2ltcGxlQ29tbWFuZExvZyBmQ29tbWFuZExvZzsKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisgICAgcHJpdmF0ZSBUeXBpbmdJbnRlcmFjdG9yIGZUeXBpbmdJbnRlcmFjdG9yID0gbnVsbDsKKyAgICBwcml2YXRlIEtleVJlbWFwIGZSZW1hcDsKKyAgICAKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU2F2ZWRUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZlNhdmVkSW5zUHQgPSAwOworICAgIAorICAgIHB1YmxpYyBUZXh0RWRpdEJlaGF2aW9yKFRleHRDb21wb25lbnQgdGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZTZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICAgIGZUZXh0ID0gdGV4dENvbXBvbmVudC5nZXRNb2RpZmlhYmxlVGV4dCgpOworICAgICAgICBmQ29tbWFuZExvZyA9IG5ldyBTaW1wbGVDb21tYW5kTG9nKGxpc3RlbmVyKTsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgICAgIGZSZW1hcCA9IHJlbWFwOworICAgIH0KKworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpIHsKKworICAgICAgICByZXR1cm4gZlJlbWFwOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEtleVJlbWFwKEtleVJlbWFwIHJlbWFwKSB7CisKKyAgICAgICAgZlJlbWFwID0gcmVtYXA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBib29sZWFuIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNIQVJBQ1RFUl9TVFlMRV9NT0QgfHwKKyAgICAgICAgICAgIGV2ZW50ID09IEJlaGF2aW9yLlBBUkFHUkFQSF9TVFlMRV9NT0QpIHsKKyAgICAgICAgICAgIGRvU3R5bGVDaGFuZ2UoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNVVCkgeworICAgICAgICAgICAgZG9DdXQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5QQVNURSkgeworICAgICAgICAgICAgZG9QYXN0ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNMRUFSKSB7CisgICAgICAgICAgICBkb0NsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuUkVQTEFDRSkgeworICAgICAgICAgICAgZG9VbmRvYWJsZVJlcGxhY2UoKFRleHRSZXBsYWNlbWVudCkgd2hhdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuVU5ETykgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cudW5kbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlJFRE8pIHsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLnJlZG8oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5TRVRfTU9ESUZJRUQpIHsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLnNldE1vZGlmaWVkKHdoYXQgPT0gQm9vbGVhbi5UUlVFKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5DTEVBUl9DT01NQU5EX0xPRykgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cuY2xlYXJMb2coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5TRVRfQ09NTUFORF9MT0dfU0laRSkgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cuc2V0TG9nU2l6ZSgoKEludGVnZXIpd2hhdCkuaW50VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoYW5kbGVkID0gc3VwZXIudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXQncyB1bmZvcnR1bmF0ZSB0aGF0IHRoZSB0ZXh0IGlzIG1vZGlmaWVkIGFuZCByZWZvcm1hdHRlZCBpbgorICAgICAqIHRocmVlIGRpZmZlcmVudCBtZXRob2RzLiAgVGhpcyBtZXRob2QgaXMgdGhlICJjb21tb24gcHJvbG9ndWUiCisgICAgICogZm9yIGFsbCB0ZXh0IG1vZGlmaWNhdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBtb2RpZnlpbmcgYW5kIHJlZm9ybWF0dGluZworICAgICAqIHRoZSB0ZXh0LiAgSXQgZG9lcyB0aHJlZSB0aGluZ3M6ICBzdG9wcyBjYXJldCBibGlua2luZywgc3RvcHMKKyAgICAgKiBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcsIGFuZCByZXR1cm5zIHRoZSBSZWN0YW5nbGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBjdXJyZW50IChzb29uLXRvLWJlIG9ic29sZXRlKSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBSZWN0YW5nbGUgcHJlcGFyZUZvclRleHRFZGl0KCkgeworCisgICAgICAgIGZTZWxlY3Rpb24uc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgZlRleHRDb21wb25lbnQuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3QoZlNlbGVjdGlvbi5nZXRTdGFydCgpLCBmU2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9DbGVhcigpIHsKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCA9PSBzZWxSYW5nZS5saW1pdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQsIG51bGwsIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0KSwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9DdXQoKSB7CisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuc2V0Q29udGVudHMoZlRleHQuZXh0cmFjdChzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQpKTsKKyAgICAgICAgZG9VbmRvYWJsZVRleHRDaGFuZ2Uoc2VsUmFuZ2Uuc3RhcnQsIHNlbFJhbmdlLmxpbWl0LCBudWxsLCBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCksIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0KSk7CisKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1Bhc3RlKCkgeworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIE1Db25zdFRleHQgY2xpcFRleHQgPSBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5nZXRDb250ZW50cyhBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgaWYgKGNsaXBUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRvVW5kb2FibGVUZXh0Q2hhbmdlKHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCwgY2xpcFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0ICsgY2xpcFRleHQubGVuZ3RoKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCArIGNsaXBUZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9VbmRvYWJsZVJlcGxhY2UoVGV4dFJlcGxhY2VtZW50IHJlcGxhY2VtZW50KSB7CisKKyAgICAgICAgZG9VbmRvYWJsZVRleHRDaGFuZ2UocmVwbGFjZW1lbnQuZ2V0U3RhcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuZ2V0TGltaXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuZ2V0VGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRTZWxlY3Rpb25TdGFydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRTZWxlY3Rpb25MaW1pdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IFR5cGluZ0ludGVyYWN0b3IgYW5kIFRleHRDb21tYW5kIHNob3VsZCBjYWxsIHRoaXMhCisgICAgICovCisgICAgdm9pZCBkb1JlcGxhY2VUZXh0KGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IG5ld1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsRW5kKSB7CisKKyAgICAgICAgaW50IHRleHRMZW5ndGg7CisKKyAgICAgICAgZlRleHQucmVzZXREYW1hZ2VkUmFuZ2UoKTsKKworICAgICAgICBSZWN0YW5nbGUgb2xkU2VsUmVjdCA9IHByZXBhcmVGb3JUZXh0RWRpdCgpOworCisgICAgICAgIGlmIChuZXdUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRleHRMZW5ndGggPSAwOworICAgICAgICAgICAgZlRleHQucmVtb3ZlKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0TGVuZ3RoID0gbmV3VGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZUZXh0LnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBuZXdUZXh0LCAwLCB0ZXh0TGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBmU2VsZWN0aW9uLnNldFNlbGVjdGlvblJhbmdlKG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQsIG5ld1NlbFN0YXJ0KTsKKyAgICAgICAgcmVmb3JtYXRBbmREcmF3VGV4dChmU2VsZWN0aW9uLmdldFN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbi5nZXRFbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxSZWN0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IHRoZSB0eXBpbmcgaW50ZXJhY3RvciBzaG91bGQgY2FsbCB0aGlzIQorICAgICAqLworICAgIHZvaWQgZG9SZXBsYWNlU2VsZWN0ZWRUZXh0KGNoYXIgY2gsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgaW50IGxpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICBUZXh0T2Zmc2V0IG5ld09mZnNldCA9IG5ldyBUZXh0T2Zmc2V0KHN0YXJ0ICsgMSk7CisgICAgICAgIGRvUmVwbGFjZVRleHQoc3RhcnQsIGxpbWl0LCBjaCwgY2hhclN0eWxlLCBuZXdPZmZzZXQsIG5ld09mZnNldCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvUmVwbGFjZVRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbEVuZCkgeworCisgICAgICAgIGZUZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisKKyAgICAgICAgUmVjdGFuZ2xlIG9sZFNlbFJlY3QgPSBwcmVwYXJlRm9yVGV4dEVkaXQoKTsKKworICAgICAgICBmVGV4dC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgY2gsIGNoYXJTdHlsZSk7CisKKyAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxlY3Rpb25SYW5nZShuZXdTZWxTdGFydCwgbmV3U2VsRW5kLCBuZXdTZWxTdGFydCk7CisgICAgICAgIHJlZm9ybWF0QW5kRHJhd1RleHQoZlNlbGVjdGlvbi5nZXRTdGFydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24uZ2V0RW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsUmVjdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvU3R5bGVDaGFuZ2UoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIgPSAoZXZlbnQgPT0gQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCk7CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ICE9IHNlbFJhbmdlLmxpbWl0IHx8ICFjaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIGRvVW5kb2FibGVTdHlsZUNoYW5nZSh3aGF0LCBjaGFyYWN0ZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVHlwaW5nSW50ZXJhY3RvciBpbnRlcmFjdG9yID0KKyAgICAgICAgICAgICAgICBuZXcgVHlwaW5nSW50ZXJhY3RvcihmVGV4dENvbXBvbmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZDb21tYW5kTG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisKKyAgICAgICAgICAgIGludGVyYWN0b3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpbnRlcmFjdG9yLnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgd2hhdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IHRleHQgY29tbWFuZHMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QhCisgICAgICovCisgICAgdm9pZCBkb01vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBmVGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworCisgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0ID0gcHJlcGFyZUZvclRleHRFZGl0KCk7CisKKyAgICAgICAgaWYgKGNoYXJhY3RlcikgeworICAgICAgICAgICAgZlRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHN0YXJ0LCBsaW1pdCwgbW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKHN0YXJ0LCBsaW1pdCwgbW9kaWZpZXIpOworICAgICAgICB9CisKKyAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxlY3Rpb25SYW5nZShuZXdTZWxTdGFydCwgbmV3U2VsRW5kLCBuZXdTZWxTdGFydCk7CisgICAgICAgIHJlZm9ybWF0QW5kRHJhd1RleHQobmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1VuZG9hYmxlU3R5bGVDaGFuZ2UoT2JqZWN0IHdoYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworCisgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kID0gZlNlbGVjdGlvbi5nZXRFbmQoKTsKKworICAgICAgICBNVGV4dCBvbGRUZXh0ID0gZlRleHQuZXh0cmFjdFdyaXRhYmxlKHNlbFN0YXJ0LmZPZmZzZXQsIHNlbEVuZC5mT2Zmc2V0KTsKKyAgICAgICAgU3R5bGVDaGFuZ2VDb21tYW5kIGNvbW1hbmQgPSBuZXcgU3R5bGVDaGFuZ2VDb21tYW5kKAorICAgICAgICAgICAgICAgIHRoaXMsIG9sZFRleHQsIHNlbFN0YXJ0LCBzZWxFbmQsIChTdHlsZU1vZGlmaWVyKSB3aGF0LCBjaGFyYWN0ZXIpOworCisgICAgICAgIGZDb21tYW5kTG9nLmFkZEFuZERvKGNvbW1hbmQpOworCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvVW5kb2FibGVUZXh0Q2hhbmdlKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IG5ld1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsRW5kKSB7CisKKyAgICAgICAgVGV4dENoYW5nZUNvbW1hbmQgY29tbWFuZCA9IG5ldyBUZXh0Q2hhbmdlQ29tbWFuZCh0aGlzLCBmVGV4dC5leHRyYWN0V3JpdGFibGUoc3RhcnQsIGxpbWl0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dCwgc3RhcnQsIGZTZWxlY3Rpb24uZ2V0U3RhcnQoKSwgZlNlbGVjdGlvbi5nZXRFbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2VsU3RhcnQsIG5ld1NlbEVuZCk7CisKKyAgICAgICAgZkNvbW1hbmRMb2cuYWRkQW5kRG8oY29tbWFuZCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICBib29sZWFuIGNhblVuZG8gPSBmYWxzZTsKKworICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgY2FuVW5kbyA9IGZUeXBpbmdJbnRlcmFjdG9yLmhhc1BlbmRpbmdDb21tYW5kKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWNhblVuZG8pIHsKKyAgICAgICAgICAgIGNhblVuZG8gPSBmQ29tbWFuZExvZy5jYW5VbmRvKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY2FuVW5kbzsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIHJldHVybiBmQ29tbWFuZExvZy5jYW5SZWRvKCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZUeXBpbmdJbnRlcmFjdG9yLmhhc1BlbmRpbmdDb21tYW5kKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZkNvbW1hbmRMb2cuaXNNb2RpZmllZCgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZDb21tYW5kTG9nLmdldExvZ1NpemUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGdldEluc2VydGlvblBvaW50U3R5bGUoKSB7CisKKyAgICAgICAgaWYgKGZUeXBpbmdJbnRlcmFjdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmVHlwaW5nSW50ZXJhY3Rvci5nZXRUeXBpbmdTdHlsZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZTYXZlZFR5cGluZ1N0eWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2F2ZWRUeXBpbmdTdHlsZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGV4dFJhbmdlIHJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICByZXR1cm4gdHlwaW5nU3R5bGVBdChmVGV4dCwgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxpbWl0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4ga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgaWYgKFR5cGluZ0ludGVyYWN0b3IuaGFuZGxlZEJ5VHlwaW5nSW50ZXJhY3RvcihlKSkgeworICAgICAgICAgICAgVHlwaW5nSW50ZXJhY3RvciBpbnRlcmFjdG9yID0gbmV3IFR5cGluZ0ludGVyYWN0b3IoZlRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTGlzdGVuZXIpOworCisgICAgICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworICAgICAgICAgICAgaW50ZXJhY3Rvci5rZXlQcmVzc2VkKGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaGFuZGxlZCA9IHN1cGVyLmtleVByZXNzZWQoZSk7CisgICAgICAgICAgICBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgaWYgKFR5cGluZ0ludGVyYWN0b3IuaGFuZGxlZEJ5VHlwaW5nSW50ZXJhY3RvcihlKSkgeworICAgICAgICAgICAgVHlwaW5nSW50ZXJhY3RvciBpbnRlcmFjdG9yID0gbmV3IFR5cGluZ0ludGVyYWN0b3IoZlRleHRDb21wb25lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZDb21tYW5kTG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpc3RlbmVyKTsKKworICAgICAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGludGVyYWN0b3Iua2V5VHlwZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoYW5kbGVkID0gc3VwZXIua2V5VHlwZWQoZSk7CisgICAgICAgICAgICBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gc3VwZXIubW91c2VSZWxlYXNlZChlKTsKKyAgICAgICAgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZWZvcm1hdEFuZERyYXdUZXh0KFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgb2xkU2VsUmVjdCkKKyAgICB7CisgICAgICAgIGlmICghZlNlbGVjdGlvbi5lbmFibGVkKCkpIHsKKyAgICAgICAgICAgIHNlbFN0YXJ0ID0gc2VsTGltaXQgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlZm9ybWF0U3RhcnQgPSBmVGV4dC5kYW1hZ2VkUmFuZ2VTdGFydCgpOworICAgICAgICBpbnQgcmVmb3JtYXRMZW5ndGggPSBmVGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpIC0gcmVmb3JtYXRTdGFydDsKKworICAgICAgICBpZiAocmVmb3JtYXRTdGFydCAhPSBJbnRlZ2VyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgZlRleHRDb21wb25lbnQucmVmb3JtYXRBbmREcmF3VGV4dChyZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZvcm1hdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLmdldEhpZ2hsaWdodENvbG9yKCkpOworICAgICAgICB9CisKKyAgICAgICAgZlNlbGVjdGlvbi5zY3JvbGxUb1Nob3dTZWxlY3Rpb24oKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNvbWV0aW1lcyB0aGlzIHNob3VsZCBzZW5kIFNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRAorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworCisgICAgICAgIGZTZWxlY3Rpb24ucmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT25seSBUeXBpbmdJbnRlcmFjdG9yIHNob3VsZCBjYWxsIHRoaXMuCisgICAgICovCisgICAgdm9pZCBzZXRUeXBpbmdJbnRlcmFjdG9yKFR5cGluZ0ludGVyYWN0b3IgaW50ZXJhY3RvcikgeworICAgICAgICBmVHlwaW5nSW50ZXJhY3RvciA9IGludGVyYWN0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogT25seSBUeXBpbmdJbnRlcmFjdG9yIHNob3VsZCBjYWxsIHRoaXMuCisgICAgICovCisgICAgdm9pZCBzZXRTYXZlZFR5cGluZ1N0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSwgaW50IGluc1B0KSB7CisgICAgCisgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlID0gc3R5bGU7CisgICAgICAgIGZTYXZlZEluc1B0ID0gaW5zUHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKSB7CisgICAgCisgICAgICAgIGlmIChmU2F2ZWRUeXBpbmdTdHlsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSBmU2F2ZWRJbnNQdCB8fCBzZWxTdGFydCAhPSBzZWxMaW1pdCkgeworICAgICAgICAgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0eWxlIGFwcHJvcHJpYXRlIGZvciB0eXBpbmcgb24gdGhlIGdpdmVuIHNlbGVjdGlvbgorICAgICAqIHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQXR0cmlidXRlTWFwIHR5cGluZ1N0eWxlQXQoTUNvbnN0VGV4dCB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJhY3RlclN0eWxlQXQoc3RhcnQgLSAxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJhY3RlclN0eWxlQXQoMCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk2ZmE0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDU0MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworaW1wb3J0IGphdmEuYXd0LlNjcm9sbGJhcjsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworLyoqCisgKiBUZXh0UGFuZWwgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRleHRQYW5lbCBpbiBhbiBBV1QgUGFuZWwuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHRQYW5lbCBleHRlbmRzIFBhbmVsIGltcGxlbWVudHMgTVRleHRQYW5lbCB7CisKKyAgICBwcml2YXRlIEFUZXh0UGFuZWxJbXBsIGZJbXBsOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggYWxsIHNldHRpbmdzIHNldAorICAgICAqIHRvIHRoZSBkZWZhdWx0IHZhbHVlcy4gIENsaWVudHMgY2FuIG1vZGlmeSB0aGlzIG9iamVjdDsKKyAgICAgKiBtb2RpZmljYXRpb25zIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgICAgICogQHJldHVybiBhIFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHNldCB0byBkZWZhdWx0IHZhbHVlcworICAgICAqIEBzZWUgVGV4dFBhbmVsU2V0dGluZ3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRleHRQYW5lbFNldHRpbmdzIGdldERlZmF1bHRTZXR0aW5ncygpIHsKKworICAgICAgICByZXR1cm4gQVRleHRQYW5lbEltcGwuZ2V0RGVmYXVsdFNldHRpbmdzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRQYW5lbCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIFRleHRQYW5lbChNQ29uc3RUZXh0IGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHRoaXMoQVRleHRQYW5lbEltcGwuZmdEZWZhdWx0U2V0dGluZ3MsIGluaXRpYWxUZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIHNldHRpbmdzIHRoZSBzZXR0aW5ncyBmb3IgdGhpcyBUZXh0UGFuZWwKKyAgICAgKiBAcGFyYW0gaW5pdGlhbFRleHQgdGhlIHRleHQgZG9jdW1lbnQuICBJZiBudWxsIGRvY3VtZW50IHRleHQgaXMgZW1wdHkuCisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgY2xpcGJvYXJkIHRvIHVzZSBmb3IgY3V0LCBjb3B5LCBhbmQgcGFzdGUKKyAgICAgKiAgb3BlcmF0aW9ucy4gIElmIG51bGwgdGhpcyBwYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqIEBzZWUgVGV4dFBhbmVsU2V0dGluZ3MKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFBhbmVsKFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBTY3JvbGxiYXIgaG9yelNiID0gbnVsbDsKKyAgICAgICAgU2Nyb2xsYmFyIHZlcnRTYiA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0U2Nyb2xsYWJsZSgpKSB7CisKKyAgICAgICAgICAgIHNldExheW91dChuZXcgU2Nyb2xsQmFyTGF5b3V0KCkpOworCisgICAgICAgICAgICBib29sZWFuIHNjcm9sbEJhcnNWaXNpYmxlID0gc2V0dGluZ3MuZ2V0U2Nyb2xsQmFyc1Zpc2libGUoKTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbEJhcnNWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgaG9yelNiID0gbmV3IFNjcm9sbGJhcihTY3JvbGxiYXIuSE9SSVpPTlRBTCk7CisgICAgICAgICAgICAgICAgdmVydFNiID0gbmV3IFNjcm9sbGJhcihTY3JvbGxiYXIuVkVSVElDQUwpOworICAgICAgICAgICAgICAgIGFkZCgiU291dGgiLCBob3J6U2IpOworICAgICAgICAgICAgICAgIGFkZCgiRWFzdCIsIHZlcnRTYik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZJbXBsID0gbmV3IEFUZXh0UGFuZWxJbXBsKG5ldyBSdW5TdHJhdGVneSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yelNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0U2IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZmluYWwgRmFrZUNvbXBvbmVudCB0ZXh0Q29tcG9uZW50ID0gZkltcGwuZ2V0VGV4dENvbXBvbmVudCgpOworICAgICAgICAKKyAgICAgICAgQ29tcG9uZW50IHRleHRIb3N0ID0gbmV3IENvbXBvbmVudCgpIHsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnNldEhvc3QodGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhZGROb3RpZnkoKSB7CisgICAgICAgICAgICAgICAgc3VwZXIuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5hZGROb3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnBhaW50KGcpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgYWRkKCJDZW50ZXIiLCB0ZXh0SG9zdCk7CisKKyAgICAgICAgdGV4dEhvc3QucmVxdWVzdEZvY3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciB0byB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byBhZGQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZJbXBsLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gVGV4dCBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG9wZXJhdGlvbgorICAgICAqIG1vZGlmaWVzIHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGZJbXBsLmFwcGVuZChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgaW50byB0aGUgZG9jdW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+cmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBpbnNlcnQgaW50byB0aGUgZG9jdW1lbnQuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlCisgICAgICogICAgIHRleHQgd2lsbCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChNQ29uc3RUZXh0IG5ld1RleHQsIGludCBwb3NpdGlvbikgeworCisgICAgICAgIGZJbXBsLmluc2VydChuZXdUZXh0LCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCkgeworCisgICAgICAgIGZJbXBsLnJlcGxhY2VSYW5nZShuZXdUZXh0LCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRleHQoKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBTZWxlY3Rpb24gQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFNlbGVjdGlvbkVuZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KHNlbGVjdGlvblN0YXJ0LCBnZXRTZWxlY3Rpb25FbmQoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnQoaW50IHNlbGVjdGlvblN0YXJ0KSB7CisKKyAgICAgICAgZkltcGwuc2V0U2VsZWN0aW9uU3RhcnQoc2VsZWN0aW9uU3RhcnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNldFNlbGVjdGlvbkVuZChzZWxlY3Rpb25FbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBvZmZzZXQuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+c2VsZWN0KHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIG9mZnNldCBvZiB0aGUgbmV3IGluc2VydGlvbiBwb2ludAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhcmV0UG9zaXRpb24oaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgZkltcGwuc2V0Q2FyZXRQb3NpdGlvbihwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gdGhlIGdpdmVuIHJhbmdlLiAgVGhlIHJhbmdlIHN0YXJ0CisgICAgICogaXMgcGlubmVkIGJldHdlZW4gMCBhbmQgdGhlIHRleHQgbGVuZ3RoOyAgdGhlIHJhbmdlIGVuZCBpcyBwaW5uZWQKKyAgICAgKiBiZXR3ZWVuIHRoZSByYW5nZSBzdGFydCBhbmQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFRoZXNlIHNlbWFudGljcworICAgICAqIGFyZSBpZGVudGljYWwgdG8gdGhvc2Ugb2YgPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBmSW1wbC5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VsZWN0IGFsbCBvZiB0aGUgdGV4dCBpbiB0aGUgZG9jdW1lbnQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdEFsbCgpOworICAgIH0KKworCisvLz09PT09PT09PT09PQorLy8gRm9ybWF0IFdpZHRoCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0b3RhbCBmb3JtYXQgd2lkdGgsIGluIHBpeGVscy4gIFRoZSBmb3JtYXQgd2lkdGggaXMgdGhlCisgICAgICogd2lkdGggdG8gd2hpY2ggdGV4dCBpcyB3cmFwcGVkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdCB3aWR0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZvcm1hdFdpZHRoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuVW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuUmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCAKKyAgICAgKiB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIAorICAgICAqIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKSB7CisgICAgICAgIGZJbXBsLmN1dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCkgeworICAgICAgICBmSW1wbC5jb3B5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpIHsKKyAgICAgICAgZkltcGwucGFzdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGZJbXBsLmNsZWFyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpIHsKKyAgICAgICAgZkltcGwudW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGZJbXBsLnJlZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENvbW1hbmRMb2dTaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKSB7CisgICAgICAgIGZJbXBsLnNldENvbW1hbmRMb2dTaXplKHNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSB0aGUgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXJDb21tYW5kTG9nKCkgeworICAgICAgICBmSW1wbC5jbGVhckNvbW1hbmRMb2coKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZkltcGwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBLZXlSZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgcmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMKKyAgICAgKiBAc2VlICNzZXRLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0S2V5UmVtYXAoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmSW1wbC5zZXRLZXlSZW1hcChyZW1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmlzTW9kaWZpZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBmb3IgS2V5RXZlbnRGb3J3YXJkZXIncyB1c2Ugb25seSEKKyAgICAgKi8KKyAgICBBVGV4dFBhbmVsSW1wbCBnZXRJbXBsKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxFdmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTgxZDQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxFdmVudC5qYXZhCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworLyoqCisgKiBUZXh0UGFuZWxFdmVudCBpcyBnZW5lcmF0ZWQgYnkgYW4gTVRleHRQYW5lbCB0byBub3RpZnkgbGlzdGVuZXJzCisgKiBvZiBjaGFuZ2VzLiAgVG8gcmVjZWl2ZSBUZXh0UGFuZWxFdmVudHMgZnJvbSBhbiBNVGV4dFBhbmVsLCBjbGllbnRzCisgKiBtdXN0IGltcGxlbWVudCBUZXh0UGFuZWxMaXN0ZW5lciBhbmQgYWRkIHRoZW1zZWx2ZXMgdG8gdGhlIE1UZXh0UGFuZWwncworICogbGlzdCBvZiBsaXN0ZW5lcnMuCisgKiA8cD4KKyAqIFNvbWUgZXZlbnQgdHlwZXMgYXJlIHNwZWNpYWwgY2FzZXMgb2Ygb3RoZXJzLiAgVGhpcyBpcyBpbnRlbnRpb25hbCAtIGl0CisgKiBhbGxvd3Mgbm90aWZpY2F0aW9ucyB0byBiZSBzZW50IGxlc3Mgb2Z0ZW4gaW4gY2VydGFpbiBjb21tb24gY2FzZXMuICBGb3IKKyAqIGV4YW1wbGUsIGEgY2hhbmdlIGluIHRoZSBzZWxlY3Rpb24gcmFuZ2UgZ2VuZXJhdGVzIGEgU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQgCisgKiBldmVudC4gIFRoaXMgaXMgYSB2ZXJ5IGNvbW1vbiBvY2N1cnJhbmNlLCBhbmQgaWYgbWFueSBjbGllbnRzIGxpc3RlbiBmb3IgdGhpcworICogZXZlbnQsIHRoZXJlIG1heSBiZSBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIHBlbmFsdHkuICBCeQorICogbGlzdGVuaW5nIGZvciBhIG1vcmUgc3BlY2lhbGl6ZWQgZXZlbnQgKHN1Y2ggYXMgU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpLCBjbGllbnRzCisgKiBjYW4gcmVkdWNlIHRoZSBudW1iZXIgb2Ygbm90aWZpY2F0aW9ucyBzZW50LgorICogCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqIEBzZWUgVGV4dFBhbmVsTGlzdGVuZXIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHRQYW5lbEV2ZW50IGV4dGVuZHMgRXZlbnRPYmplY3QgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbG93ZXIgYm91bmQgb2YgVGV4dFBhbmVsRXZlbnQgSUQncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX1BBTkVMX0ZJUlNUID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGluZGljYXRlIGEgY2hhbmdlIGluIHRoZSBzZWxlY3Rpb24gcmFuZ2UuCisgICAgICogVGhpcyBvY2N1cnMgcXVpdGUgb2Z0ZW4uICBNb3N0IGNsaWVudHMgZG8gbm90IG5lZWQgdG8gYmUgCisgICAgICogbm90aWZpZWQgZXZlcnkgdGltZSB0aGUgc2VsZWN0aW9uIHJhbmdlIGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQgPSAxMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIHNlbGVjdGlvbiByYW5nZSBiZWNvbWVzCisgICAgICogMC1sZW5ndGggYWZ0ZXIgbm90IGJlaW5nIDAtbGVuZ3RoLCBvciB2aWNlIHZlcnNhLiAgVGhpcyBldmVudAorICAgICAqIGlzIGEgc3BlY2lhbCBjYXNlIG9mIFNFTEVDVElPTl9SQU5HRV9DSEFOR0VELgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTEVDVElPTl9FTVBUWV9DSEFOR0VEID0gMTI7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBpbmRpY2F0ZSB0aGF0IHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwgY2hhbmdlZC4KKyAgICAgKiBUaGlzIHR5cGUgb2YgZXZlbnQgb2NjdXJzIG9mdGVuLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfQ0hBTkdFRCA9IDEzOworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgc3R5bGVzIGluIHRoZSBjdXJyZW50CisgICAgICogc2VsZWN0aW9uIGNoYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQgPSAxNDsKKyAgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSB1bmRvL3JlZG8gc3RhdGUgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTkRPX1NUQVRFX0NIQU5HRUQgPSAxNTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIGNsaXBib2FyZCBzdGF0ZSBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMSVBCT0FSRF9DSEFOR0VEID0gMTY7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIAorICAgICAqIHRoZSB3cmFwIHdpZHRoIG9mIHRoZSB0ZXh0IGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX1dJRFRIX0NIQU5HRUQgPSAxNzsKKworICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUga2V5IHJlbWFwIGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZUkVNQVBfQ0hBTkdFRCA9IDE4OworCisgICAgLyoqCisgICAgICogVGhlIHVwcGVyIGJvdW5kIG9mIFRleHRQYW5lbEV2ZW50IElEJ3MuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9QQU5FTF9MQVNUID0gMTg7CisKKyAgICBwcml2YXRlIGludCBmSWQ7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dFBhbmVsRXZlbnQuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgTVRleHRQYW5lbCB3aGljaCBnZW5lcmF0ZWQgdGhlIGV2ZW50CisgICAgICogQHBhcmFtIGlkIHRoZSBJRCBmb3IgdGhpcyBldmVudC4gIE11c3QgYmUgd2l0aGluCisgICAgICogW1RFWFRfUEFORUxfRklSU1QsIFRFWFRfUEFORUxfTEFTVF0uCisgICAgICovCisgICAgVGV4dFBhbmVsRXZlbnQoTVRleHRQYW5lbCBzb3VyY2UsIGludCBpZCkgeworCisgICAgICAgIHN1cGVyKHNvdXJjZSk7CisgICAgICAgIGlmIChpZCA8IFRFWFRfUEFORUxfRklSU1QgfHwgaWQgPiBURVhUX1BBTkVMX0xBU1QpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImlkIG91dCBvZiByYW5nZSIpOworICAgICAgICB9CisgICAgICAgIGZJZCA9IGlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZXZlbnQgSUQgZm9yIHRoaXMgZXZlbnQuICBFdmVudCBJRCdzIGFyZQorICAgICAqIG9uZSBvZiB0aGUgY2xhc3MgY29uc3RhbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGV2ZW50IElEIGZvciB0aGlzIGV2ZW50CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJRCgpIHsKKworICAgICAgICByZXR1cm4gZklkOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGRlc2MgPSBudWxsOworICAgICAgICAKKyAgICAgICAgc3dpdGNoKGZJZCkgeworICAgICAgICAgICAgY2FzZSBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRFWFRfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlRFWFRfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVORE9fU1RBVEVfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlVORE9fU1RBVEVfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENMSVBCT0FSRF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiQ0xJUEJPQVJEX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBGT1JNQVRfV0lEVEhfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIkZPUk1BVF9XSURUSF9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS0VZUkVNQVBfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIktFWVJFTUFQX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiW1RleHRQYW5lbEV2ZW50OiIrZGVzYysiXSI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbExpc3RlbmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsTGlzdGVuZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNGM5ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbExpc3RlbmVyLmphdmEKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgaXMgaW1wbGVtZW50ZWQgYnkgY2xhc3NlcyB3aGljaAorICogcmVjZWl2ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmcm9tIGFuIE1UZXh0UGFuZWwuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqIEBzZWUgVGV4dFBhbmVsRXZlbnQKKyAqLworcHVibGljIGludGVyZmFjZSBUZXh0UGFuZWxMaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICAqIE5vdGlmeSBsaXN0ZW5lciBvZiBhbiBNVGV4dFBhbmVsIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gZXZlbnQgYSBUZXh0UGFuZWxFdmVudCBpbmRpY2F0aW5nIHdoYXQgaGFwcGVuZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgbGlzdGVuZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgb2YgCisgICAgICogdGhlIGdpdmVuIGV2ZW50IHR5cGUuICBUaGlzIGFsbG93cyBhIHRleHQgcGFuZWwgdG8gYXZvaWQKKyAgICAgKiBzZW5kaW5nIGV2ZW50cyB0byB1bmludGVyZXN0ZWQgcGFydGllcy4KKyAgICAgKiBAcGFyYW0gdHlwZSBhbiBldmVudCBJRCBmcm9tIFRleHRQYW5lbEV2ZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgbGlzdGVuZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgb2YKKyAgICAgKiBldmVudHMgb2YgdGhlIGdpdmVuIHR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxTZXR0aW5ncy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzRlYjJhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxTZXR0aW5ncy5qYXZhCkBAIC0wLDAgKzEsMjg0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGNvbnRhaW5zIHNldHRpbmdzIHVzZWQgd2hlbiBjb25zdHJ1Y3RpbmcgYW4gTVRleHRQYW5lbC4KKyAqIFRoZSBzZXR0aW5ncyBjb250cm9sZWQgYnkgdGhpcyBjbGFzcyBpbmNsdWRlOgorICogPHVsPgorICogPGxpPndoZXRoZXIgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwgY2FuIGJlIHNjcm9sbGVkPC9saT4KKyAqIDxsaT53aGV0aGVyIHNjcm9sbCBiYXJzIGluIHRoZSBNVGV4dFBhbmVsIGFyZSB2aXNpYmxlPC9saT4KKyAqIDxsaT53aGV0aGVyIHRoZSB0ZXh0IGluIHRoZSBNVGV4dFBhbmVsIGNhbiBiZSBzZWxlY3RlZDwvbGk+CisgKiA8bGk+d2hldGhlciB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbCBjYW4gYmUgZWRpdGVkPC9saT4KKyAqIDxsaT53aGV0aGVyIGxpbmVzIG9mIHRleHQgd3JhcCB0byB0aGUgTVRleHRQYW5lbCdzIHdpZHRoLCBvcgorICogb25seSBlbmQgYXQgcGFyYWdyYXBoIHNlcGFyYXRvcnM8L2xpPgorICogPGxpPnRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgc3R5bGVzPC9saT4KKyAqIDwvdWw+CisgKiBTb21lIHNldHRpbmdzIGFyZSBkZXBlbmRlbnQgb24gb3RoZXJzLiAgU2Nyb2xsIGJhcnMgYXJlIHZpc2libGUKKyAqIG9ubHkgaWYgdGhlIHRleHQgaXMgc2Nyb2xsYWJsZS4gIEFsc28sIHRleHQgd2hpY2ggaXMgbm90IGVkaXRhYmxlCisgKiBpZiBpdCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAqIDxwPgorICoKKyAqIEBzZWUgTVRleHRQYW5lbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFBhbmVsU2V0dGluZ3MgaW1wbGVtZW50cyBDbG9uZWFibGUsIFNlcmlhbGl6YWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNDA4OTE4NjY2MzAxODcwNzQ3OEw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERFRkFVTFRTOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIGZpbmFsIEZsb2F0IGZsb2F0WmVybyA9IG5ldyBGbG9hdCgwLjBmKTsKKworICAgICAgICBIYXNodGFibGUgZGVmYXVsdHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIlNlcmlmIik7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDE4LjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBuZXcgSW50ZWdlcigwKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsIENvbG9yLmJsYWNrKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILCBCb29sZWFuLkZBTFNFKTsKKworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCkpOworCisgICAgICAgIERFRkFVTFRTID0gbmV3IEF0dHJpYnV0ZU1hcChkZWZhdWx0cyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmU2Nyb2xsYWJsZSA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxCYXJzVmlzaWJsZSA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTZWxlY3RhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkVkaXRhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBzID0gdHJ1ZTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlcyA9IERFRkFVTFRTOworICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggYWxsIHNldHRpbmdzCisgICAgICogc2V0IHRvIHRydWUuCisgICAgICovCisgICAgcHVibGljIFRleHRQYW5lbFNldHRpbmdzKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIHRoZQorICAgICAqIHNhbWUgc2V0dGluZ3MgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyByaHMgPSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MoKTsKKworICAgICAgICByaHMuZlNjcm9sbGFibGUgPSBmU2Nyb2xsYWJsZTsKKyAgICAgICAgcmhzLmZTY3JvbGxCYXJzVmlzaWJsZSA9IGZTY3JvbGxCYXJzVmlzaWJsZTsKKyAgICAgICAgcmhzLmZTZWxlY3RhYmxlID0gZlNlbGVjdGFibGU7CisgICAgICAgIHJocy5mRWRpdGFibGUgPSBmRWRpdGFibGU7CisgICAgICAgIHJocy5mV3JhcHMgPSBmV3JhcHM7CisgICAgICAgIHJocy5mRGVmYXVsdFZhbHVlcyA9IGZEZWZhdWx0VmFsdWVzOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJoczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNjcm9sbGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIHRleHQKKyAgICAgKiBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBzY3JvbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzY3JvbGxhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTY3JvbGxhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmU2Nyb2xsYWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNjcm9sbGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLiAgSWYgZmFsc2UsCisgICAgICogdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcgaXMgYWxzbyBzZXQgdG8gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsYWJsZShib29sZWFuIHNjcm9sbGFibGUpIHsKKworICAgICAgICBmU2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7CisgICAgICAgIGZTY3JvbGxCYXJzVmlzaWJsZSAmPSBzY3JvbGxhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogc2Nyb2xsIGJhcnMgaW4gYW4gTVRleHRQYW5lbCBhcmUgdmlzaWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0U2Nyb2xsQmFyc1Zpc2libGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZTY3JvbGxCYXJzVmlzaWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcuCisgICAgICogQHBhcmFtIHZpcyB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZy4gIElmIHRydWUsCisgICAgICogdGhlIHNjcm9sbGFibGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjcm9sbEJhcnNWaXNpYmxlKGJvb2xlYW4gdmlzKSB7CisKKyAgICAgICAgZlNjcm9sbEJhcnNWaXNpYmxlID0gdmlzOworICAgICAgICBmU2Nyb2xsYWJsZSB8PSB2aXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWxlY3RhYmxlIHNldHRpbmcsIHdoaWNoIGRldGVybWluZXMgd2hldGhlcgorICAgICAqIHRleHQgaW4gYW4gTVRleHRQYW5lbCBjYW4gYmUgc2VsZWN0ZWQuCisgICAgICogQHJldHVybiB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0U2VsZWN0YWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZlNlbGVjdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3RhYmxlIHNldHRpbmcuCisgICAgICogQHBhcmFtIHNlbGVjdGFibGUgdGhlIHNlbGVjdGFibGUgc2V0dGluZy4gIElmIGZhbHNlLAorICAgICAqIHRoZSBlZGl0YWJsZSBzZXR0aW5nIGlzIGFsc28gc2V0IHRvIGZhbHNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGFibGUoYm9vbGVhbiBzZWxlY3RhYmxlKSB7CisKKyAgICAgICAgZlNlbGVjdGFibGUgPSBzZWxlY3RhYmxlOworICAgICAgICBmRWRpdGFibGUgJj0gc2VsZWN0YWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGVkaXRhYmxlIHNldHRpbmcsIHdoaWNoIGRldGVybWluZXMgd2hldGhlcgorICAgICAqIHRleHQgaW4gYW4gTVRleHRQYW5lbCBjYW4gYmUgZWRpdGVkLgorICAgICAqIEByZXR1cm4gdGhlIGVkaXRhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRFZGl0YWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZkVkaXRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZWRpdGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gZWRpdGFibGUgdGhlIGVkaXRhYmxlIHNldHRpbmcuICBJZiB0cnVlLAorICAgICAqIHRoZSBzZWxlY3RhYmxlIHNldHRpbmcgaXMgYWxzbyBzZXQgdG8gdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFZGl0YWJsZShib29sZWFuIGVkaXRhYmxlKSB7CisKKyAgICAgICAgZkVkaXRhYmxlID0gZWRpdGFibGU7CisgICAgICAgIGZTZWxlY3RhYmxlIHw9IGVkaXRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgd3JhcHMgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogbGluZXMgb2YgdGV4dCB3cmFwIHRvIHRoZSBsZW5ndGggb2YgdGhlIE1UZXh0UGFuZWwsCisgICAgICogb3Igb25seSBhdCBwYXJhZ3JhcGggc2VwYXJhdG9ycy4KKyAgICAgKiBAcmV0dXJuIHRoZSB3cmFwcyBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0V3JhcHMoKSB7CisKKyAgICAgICAgcmV0dXJuIGZXcmFwczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHdyYXBzIHNldHRpbmcuCisgICAgICogQHBhcmFtIHdyYXBzIHRoZSB3cmFwcyBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0V3JhcHMoYm9vbGVhbiB3cmFwcykgeworCisgICAgICAgIGZXcmFwcyA9IHdyYXBzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IHZhbHVlcyBmb3IgY2VydGFpbiBrZXlzLgorICAgICAqIFdoZW4gYSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaXMgbm90IHNwZWNpZmllZCwgaXRzIHZhbHVlCisgICAgICogaXMgdGFrZW4gZnJvbSB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcmV0dXJuIHRoZSBBdHRyaWJ1dGVNYXAgb2YgZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjZ2V0RGVmYXVsdFZhbHVlcworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZEZWZhdWx0VmFsdWVzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgZ2l2ZW4gQXR0cmlidXRlTWFwIHRvIHRoZQorICAgICAqIGRlZmF1bHQgdmFsdWVzLiAgSWYgYSBrZXkgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBnaXZlbgorICAgICAqIEF0dHJpYnV0ZU1hcCwgaXRzIHZhbHVlIGluIHRoZSBkZWZhdWx0IHZhbHVlIG1hcCBpcworICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gbWFwIGFuIEF0dHJpYnV0ZU1hcCBjb250YWluaW5nIG5ldyBkZWZhdWx0IHZhbHVlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZERlZmF1bHRWYWx1ZXMoQXR0cmlidXRlTWFwIG1hcCkgeworICAgIAorICAgICAgICBmRGVmYXVsdFZhbHVlcyA9IGZEZWZhdWx0VmFsdWVzLmFkZEF0dHJpYnV0ZXMobWFwKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0LiAgVGhpcyBpcyBlcXVhbAorICAgICAqIHRvIGFub3RoZXIgT2JqZWN0IGlmIHRoZSBvdGhlciBPYmplY3QgaXMgYQorICAgICAqIFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggdGhlIHNhbWUKKyAgICAgKiBzZXR0aW5ncyBhcyB0aGlzIG9uZS4KKyAgICAgKiBAcGFyYW0gcmhzIHRoZSBPYmplY3QgdG8gY29tcGFyZSB0bworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3Mgb3RoZXI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdGhlciA9IChUZXh0UGFuZWxTZXR0aW5ncykgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdGhlci5mU2Nyb2xsYWJsZSA9PSB0aGlzLmZTY3JvbGxhYmxlICYmCisgICAgICAgICAgICAgICBvdGhlci5mU2Nyb2xsQmFyc1Zpc2libGUgPT0gdGhpcy5mU2Nyb2xsQmFyc1Zpc2libGUgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZTZWxlY3RhYmxlID09IHRoaXMuZlNlbGVjdGFibGUgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZFZGl0YWJsZSA9PSB0aGlzLmZFZGl0YWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZldyYXBzID09IHRoaXMuZldyYXBzICYmCisgICAgICAgICAgICAgICBvdGhlci5mRGVmYXVsdFZhbHVlcy5lcXVhbHModGhpcy5mRGVmYXVsdFZhbHVlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoIGNvZGUgZm9yIHRoaXMgT2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZSBmb3IgdGhpcyBPYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIGludCBjb2RlID0gZkRlZmF1bHRWYWx1ZXMuaGFzaENvZGUoKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmU2Nyb2xsYWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmU2Nyb2xsQmFyc1Zpc2libGU/IDE6MCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZlNlbGVjdGFibGU/IDE6MCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZkVkaXRhYmxlPyAxOjApOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZXcmFwcz8gMTowKTsKKworICAgICAgICByZXR1cm4gY29kZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFJhbmdlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFJhbmdlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzcyMmU3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoqCisqIEEgPFRUPlRleHRSYW5nZTwvVFQ+IHJlcHJlc2VudHMgYSByYW5nZSBvZiB0ZXh0IGJvdW5kZWQgYnkgYQorKiBzdGFydCAoaW5jbHVzaXZlKSwgYW5kIGEgbGltaXQgKGV4Y2x1c2l2ZSkuICBbc3RhcnQsbGltaXQpCisqLworZmluYWwgY2xhc3MgVGV4dFJhbmdlCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKiogdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSAqLworICAgIHB1YmxpYyBpbnQgc3RhcnQgPSAwOworICAgIC8qKiB0aGUgZW5kIG9mIHRoZSByYW5nZSAqLworICAgIHB1YmxpYyBpbnQgbGltaXQgPSAwOworCisgICAgLyoqCisgICAgKiBDcmVhdGUgYSB0ZXh0IHJhbmdlIGZyb20gdHdvIGludHMuCisgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSBydW4KKyAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kIG9mIHRoZSBydW4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhIHRleHQgcmFuZ2Ugb2YgMCwgMC4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0UmFuZ2UoKSB7CisgICAgICAgIHRoaXMuc3RhcnQgPSB0aGlzLmxpbWl0ID0gMDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFJlcGxhY2VtZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFJlcGxhY2VtZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2I1Yjc5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YQpAQCAtMCwwICsxLDY4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBwYXNzIGEgUkVQTEFDRSBjb21tYW5kIHRvIEJlaGF2aW9ycy4KKyAqLworZmluYWwgY2xhc3MgVGV4dFJlcGxhY2VtZW50IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgIHByaXZhdGUgaW50IGZMaW1pdDsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZTZWxTdGFydDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbExpbWl0OworCisgICAgVGV4dFJlcGxhY2VtZW50KGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsTGltaXQpIHsKKworICAgICAgICBmU3RhcnQgPSBzdGFydDsKKyAgICAgICAgZkxpbWl0ID0gbGltaXQ7CisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZlNlbFN0YXJ0ID0gc2VsU3RhcnQ7CisgICAgICAgIGZTZWxMaW1pdCA9IHNlbExpbWl0OworICAgIH0KKworICAgIGludCBnZXRTdGFydCgpIHsKKworICAgICAgICByZXR1cm4gZlN0YXJ0OworICAgIH0KKworICAgIGludCBnZXRMaW1pdCgpIHsKKworICAgICAgICByZXR1cm4gZkxpbWl0OworICAgIH0KKworICAgIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHQ7CisgICAgfQorCisgICAgVGV4dE9mZnNldCBnZXRTZWxlY3Rpb25TdGFydCgpIHsKKworICAgICAgICByZXR1cm4gZlNlbFN0YXJ0OworICAgIH0KKworICAgIFRleHRPZmZzZXQgZ2V0U2VsZWN0aW9uTGltaXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZTZWxMaW1pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRTZWxlY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MGRlZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRTZWxlY3Rpb24uamF2YQpAQCAtMCwwICsxLDkyMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgICAgNy8xLzk3IC0gY2FyZXQgYmxpbmtzCisKKyAgICA3LzMvOTcgLSBmQW5jaG9yIGlzIG5vIGxvbmdlciByZXN0cmljdGVkIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlIHNlbGVjdGlvbi4ge2picn0KKyAgICAgICAgICAgIEFsc28sIHJlbW92ZWQgZlZpc2libGUgLSBpdCB3YXMgaWRlbnRpY2FsIHRvIGVuYWJsZWQoKS4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2NsYXNzIFRleHRTZWxlY3Rpb24gZXh0ZW5kcyBCZWhhdmlvciBpbXBsZW1lbnRzIFJ1bm5hYmxlIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHN0YXRpYyBmaW5hbCBDb2xvciAgICAgICAgICBISUdITElHSFRDT0xPUiA9IENvbG9yLnBpbms7CisKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgICAgICAgZlRleHRDb21wb25lbnQ7CisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0ICAgICAgICAgIGZUZXh0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmU3RhcnQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0ICAgICAgICAgIGZMaW1pdDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgICAgICAgICAgZkFuY2hvcjsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgICAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKyAgICBwcml2YXRlIENvbG9yICAgICAgICAgICAgICAgZkhpZ2hsaWdodENvbG9yID0gSElHSExJR0hUQ09MT1I7CisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgICBmTGlzdGVuZXI7CisgICAgcHJpdmF0ZSBSdW5TdHJhdGVneSAgICAgICAgIGZSdW5TdHJhdGVneTsKKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgICAgICAgZk1vdXNlRG93biA9IGZhbHNlOworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmSGFuZGxpbmdLZXlPckNvbW1hbmQgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNhcmV0U2hvdWxkQmxpbms7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDYXJldElzVmlzaWJsZTsKKyAgICBwcml2YXRlIGludCBmQ2FyZXRDb3VudDsKKworICAgIC8vIGZvcm1lcmx5IGluIGJhc2UgY2xhc3MKKyAgICBwcml2YXRlIGJvb2xlYW4gZkVuYWJsZWQ7CisKKyAgICBwcml2YXRlIE1vdXNlRXZlbnQgZlBlbmRpbmdNb3VzZUV2ZW50ID0gbnVsbDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrQ2FyZXRJbnRlcnZhbCA9IDUwMDsKKworICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKworICAgICAgICBmaW5hbCBSdW5uYWJsZSBibGlua0NhcmV0ID0gbmV3IFJ1bm5hYmxlKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgIGZDYXJldElzVmlzaWJsZSA9ICFmQ2FyZXRJc1Zpc2libGU7CisgICAgICAgICAgICAgICAgR3JhcGhpY3MgZyA9IGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICAgICAgaWYgKGcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiY2FyZXRJc1Zpc2libGU6ICIgKyBmQ2FyZXRJc1Zpc2libGUpOworICAgICAgICAgICAgICAgICAgICBkcmF3U2VsZWN0aW9uKGcsIGZDYXJldElzVmlzaWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBOb3Qgc3VyZSB3aGF0IGVsc2UgdG8gZG86CisgICAgICAgICAgICAgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgLy8gYmxpbmsgY2FyZXQKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKworICAgICAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKworICAgICAgICAgICAgICAgIHdoaWxlICghZkNhcmV0U2hvdWxkQmxpbmspIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBpbiBjYXJldCB0aHJlYWQuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICArK2ZDYXJldENvdW50OworCisgICAgICAgICAgICAgICAgaWYgKGZDYXJldENvdW50ICUgMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdHJhdGVneS5kb0l0KGJsaW5rQ2FyZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa0NhcmV0SW50ZXJ2YWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKworICAgIHB1YmxpYyBUZXh0U2VsZWN0aW9uKFRleHRDb21wb25lbnQgdGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSB0ZXh0Q29tcG9uZW50OworICAgICAgICBmVGV4dCA9IHRleHRDb21wb25lbnQuZ2V0VGV4dCgpOworICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgZlJ1blN0cmF0ZWd5ID0gcnVuU3RyYXRlZ3k7CisgICAgICAgIAorICAgICAgICBmU3RhcnQgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmTGltaXQgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmQW5jaG9yID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZk1vdXNlRG93biA9IGZhbHNlOworCisgICAgICAgIGZDYXJldENvdW50ID0gMDsKKyAgICAgICAgZkNhcmV0SXNWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmYWxzZTsKKyAgICAgICAgc2V0RW5hYmxlZChmYWxzZSk7CisKKyAgICAgICAgVGhyZWFkIGNhcmV0VGhyZWFkID0gbmV3IFRocmVhZCh0aGlzKTsKKyAgICAgICAgY2FyZXRUaHJlYWQuc2V0RGFlbW9uKHRydWUpOworICAgICAgICBjYXJldFRocmVhZC5zdGFydCgpOworICAgIH0KKworICAgIGJvb2xlYW4gZW5hYmxlZCgpIHsKKworICAgICAgICByZXR1cm4gZkVuYWJsZWQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisKKyAgICAgICAgZkVuYWJsZWQgPSBlbmFibGVkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgYm9vbGVhbiByZXN1bHQ7CisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuU0VMRUNUKSB7CisgICAgICAgICAgICBzZWxlY3QoKFRleHRSYW5nZSkgd2hhdCk7CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNPUFkpIHsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmdldENsaXBib2FyZCgpLnNldENvbnRlbnRzKGZUZXh0LmV4dHJhY3QoZlN0YXJ0LmZPZmZzZXQsIGZMaW1pdC5mT2Zmc2V0KSk7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRCk7CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGFkdmFuY2VUb05leHRCb3VuZGFyeShUZXh0T2Zmc2V0IG9mZnNldCkgeworICAgIAorICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGJvdW5kYXJpZXMgb2JqZWN0LCBvciBpZiBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgICAvLyBkb2N1bWVudCwgcmV0dXJuIHRoZSBvZmZzZXQgdW5jaGFuZ2VkCisgICAgICAgIGlmIChmQm91bmRhcmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwb3NpdGlvbiA9IG9mZnNldC5mT2Zmc2V0OworICAgICAgICAKKyAgICAgICAgaWYgKHBvc2l0aW9uID49IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBwb3NpdGlvbiBpcyBhdCBhIGJvdW5kYXJ5IGFuZCBvZmZzZXQgaXMgYmVmb3JlIHBvc2l0aW9uLAorICAgICAgICAvLyBsZWF2ZSBpdCB1bmNoYW5nZWQuICBPdGhlcndpc2UgbW92ZSB0byBuZXh0IGJvdW5kYXJ5LgorICAgICAgICBpbnQgbmV4dFBvcyA9IGZCb3VuZGFyaWVzLmZvbGxvd2luZyhwb3NpdGlvbik7CisgICAgICAgIGlmIChmQm91bmRhcmllcy5wcmV2aW91cygpID09IHBvc2l0aW9uICYmIAorICAgICAgICAgICAgICAgIG9mZnNldC5mUGxhY2VtZW50PT1UZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb2Zmc2V0LnNldE9mZnNldChuZXh0UG9zLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShUZXh0T2Zmc2V0IG9mZnNldCkgeworICAgIAorICAgICAgICBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KG9mZnNldCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShUZXh0T2Zmc2V0IG9mZnNldCwgYm9vbGVhbiBhbHdheXNNb3ZlKSB7CisgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gYm91bmRhcmllcyBvYmplY3QsIG9yIGlmIHdlJ3JlIHNpdHRpbmcgYXQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgZG9jdW1lbnQsIHJldHVybiB0aGUgb2Zmc2V0IHVuY2hhbmdlZAorICAgICAgICBpZiAoZkJvdW5kYXJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcG9zaXRpb24gPSBvZmZzZXQuZk9mZnNldDsKKworICAgICAgICBpZiAocG9zaXRpb24gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBJZiBwb3NpdGlvbiBpcyBhdCBhIGJvdW5kYXJ5LCBsZWF2ZSBpdCB1bmNoYW5nZWQuICBPdGhlcndpc2UKKyAgICAgICAgLy8gbW92ZSB0byBwcmV2aW91cyBib3VuZGFyeS4KKyAgICAgICAgaWYgKHBvc2l0aW9uID09IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBmQm91bmRhcmllcy5sYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmQm91bmRhcmllcy5mb2xsb3dpbmcocG9zaXRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcHJldlBvcyA9IGZCb3VuZGFyaWVzLnByZXZpb3VzKCk7CisgICAgICAgIAorICAgICAgICBpZiAocHJldlBvcyA9PSBwb3NpdGlvbikgeworICAgICAgICAgICAgaWYgKCFhbHdheXNNb3ZlICYmIG9mZnNldC5mUGxhY2VtZW50PT1UZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJldlBvcyA9IGZCb3VuZGFyaWVzLnByZXZpb3VzKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gYW5kIGZpbmFsbHkgdXBkYXRlIHRoZSByZWFsIG9mZnNldCB3aXRoIHRoaXMgbmV3IHBvc2l0aW9uIHdlJ3ZlIGZvdW5kCisgICAgICAgIG9mZnNldC5zZXRPZmZzZXQocHJldlBvcywgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0Fycm93S2V5KEtleUV2ZW50IGUsIGludCBrZXkpIHsKKworICAgICAgICAvLyB3aGVuIHRoZXJlJ3MgYSBzZWxlY3Rpb24gcmFuZ2UsIHRoZSBsZWZ0IGFuZCB1cCBhcnJvdyBrZXlzIHBsYWNlIGFuCisgICAgICAgIC8vIGluc2VydGlvbiBwb2ludCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSwgYW5kIHRoZSByaWdodCBhbmQgZG93bgorICAgICAgICAvLyBrZXlzIHBsYWNlIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUgZW5kIG9mIHRoZSByYW5nZSAodW5sZXNzIHRoZSBzaGlmdAorICAgICAgICAvLyBrZXkgaXMgZG93biwgb2YgY291cnNlKQorCisgICAgICAgIGlmICghZlN0YXJ0LmVxdWFscyhmTGltaXQpICYmICFlLmlzU2hpZnREb3duKCkpIHsKKyAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTEVGVCB8fCBrZXkgPT0gS2V5RXZlbnQuVktfVVApCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZTdGFydCwgZlN0YXJ0LCBmU3RhcnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhmTGltaXQsIGZMaW1pdCwgZkxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkKKyAgICAgICAgICAgICAgICBmQW5jaG9yLmFzc2lnbihmTGltaXQpOworCisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBsaXZlRW5kID0gKGZTdGFydC5lcXVhbHMoZkFuY2hvcikpID8gZkxpbWl0IDogZlN0YXJ0OworICAgICAgICAgICAgVGV4dE9mZnNldCAgbmV3UG9zID0gbmV3IFRleHRPZmZzZXQoKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGNvbnRyb2wga2V5IGlzIGRvd24sIHRoZSBsZWZ0IGFuZCByaWdodCBhcnJvdyBrZXlzIG1vdmUgYnkgd2hvbGUKKyAgICAgICAgICAgIC8vIHdvcmQgaW4gdGhlIGFwcHJvcHJpYXRlIGRpcmVjdGlvbiAod2UgdXNlIGEgbGluZSBicmVhayBvYmplY3Qgc28gdGhhdCB3ZSdyZQorICAgICAgICAgICAgLy8gbm90IHRyZWF0aW5nIHNwYWNlcyBhbmQgcHVuY3R1YXRpb24gYXMgd29yZHMpCisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkgJiYgKGtleSA9PSBLZXlFdmVudC5WS19MRUZUIHx8IGtleSA9PSBLZXlFdmVudC5WS19SSUdIVCkpIHsKKyAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcyA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMuc2V0VGV4dChmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpKTsKKworICAgICAgICAgICAgICAgIG5ld1Bvcy5hc3NpZ24obGl2ZUVuZCk7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19SSUdIVCkKKyAgICAgICAgICAgICAgICAgICAgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KG5ld1Bvcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KG5ld1BvcywgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHdlIGdldCBkb3duIHRvIGhlcmUsIHRoaXMgaXMgYSBwbGFpbi12YW5pbGxhIGluc2VydGlvbi1wb2ludCBtb3ZlLAorICAgICAgICAgICAgLy8gb3IgdGhlIHNoaWZ0IGtleSBpcyBkb3duIGFuZCB3ZSdyZSBleHRlbmRpbmcgb3Igc2hvcnRlbmluZyB0aGUgc2VsZWN0aW9uCisgICAgICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgICAgIC8vIGZVcERvd25BbmNob3IgaXMgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgLy8gYWNyb3NzIGEgcnVuIG9mIHVwIG9yIGRvd24gYXJyb3cga2V5cyAodGhpcyBwcmV2ZW50cyBhY2N1bXVsYXRlZAorICAgICAgICAgICAgICAgIC8vIGVycm9yIGZyb20gZGVzdHJveWluZyBvdXIgaG9yaXpvbnRhbCBwb3NpdGlvbikKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0xFRlQgfHwga2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKQorICAgICAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZVcERvd25BbmNob3IgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZlVwRG93bkFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGxpdmVFbmQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgc2hvcnQgICBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVSaWdodDsgIC8vIGp1c3QgdG8gaGF2ZSBhIGRlZmF1bHQuLi4KKworICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZVVwOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOiBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVEb3duOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOiBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVMZWZ0OyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDogZGlyZWN0aW9uID0gTUZvcm1hdHRlci5lUmlnaHQ7IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHVzZSB0aGUgZm9ybWF0dGVyIHRvIGRldGVybWluZSB0aGUgYWN0dWFsIGVmZmVjdCBvZiB0aGUgYXJyb3cga2V5CisgICAgICAgICAgICAgICAgZlRleHRDb21wb25lbnQuZmluZE5ld0luc2VydGlvbk9mZnNldChuZXdQb3MsIGZVcERvd25BbmNob3IsIGxpdmVFbmQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBzaGlmdCBrZXkgaXMgZG93biwgdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBmcm9tIHRoZSBhbmNob3IgcG9pbnQKKyAgICAgICAgICAgIC8vIHRoZSBzaXRlIG9mIHRoZSBsYXN0IGluc2VydGlvbiBwb2ludCBvciB0aGUgYmVnaW5uaW5nIHBvaW50IG9mIHRoZSBsYXN0CisgICAgICAgICAgICAvLyBzZWxlY3Rpb24gZHJhZyBvcGVyYXRpb24pIHRvIHRoZSBuZXdseS1jYWxjdWxhdGVkIHBvc2l0aW9uOyBpZiB0aGUKKyAgICAgICAgICAgIC8vIHNoaWZ0IGtleSBpcyBkb3duLCB0aGUgbmV3bHktY2FsY3VsYXRlZCBwb3NpdGlvbiBpcyB0aGUgaW5zZXJ0aW9uIHBvaW50IHBvc2l0aW9uCisgICAgICAgICAgICBpZiAoIWUuaXNTaGlmdERvd24oKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcobmV3UG9zLCBuZXdQb3MsIG5ld1Bvcyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobmV3UG9zLmxlc3NUaGFuKGZBbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcobmV3UG9zLCBmQW5jaG9yLCBmQW5jaG9yKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhmQW5jaG9yLCBuZXdQb3MsIGZBbmNob3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2Nyb2xsVG9TaG93U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9FbmRLZXkoS2V5RXZlbnQgZSkgeworICAgICAgICAvLyBjdHJsLWVuZCBtb3ZlcyB0aGUgaW5zZXJ0c2lvbiBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCwKKyAgICAgICAgLy8gY3RybC1zaGlmdC1lbmQgZXh0ZW5kcyB0aGUgc2VsZWN0aW9uIHNvIHRoYXQgaXQgZW5kcyBhdCB0aGUgZW5kCisgICAgICAgIC8vIG9mIHRoZSBkb2N1bWVudAorCisgICAgICAgIFRleHRPZmZzZXQgYWN0aXZlRW5kLCBhbmNob3I7CisKKyAgICAgICAgaWYgKGZBbmNob3IuZXF1YWxzKGZTdGFydCkpIHsKKyAgICAgICAgICAgIGFjdGl2ZUVuZCA9IG5ldyBUZXh0T2Zmc2V0KGZTdGFydCk7CisgICAgICAgICAgICBhbmNob3IgPSBuZXcgVGV4dE9mZnNldChmTGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWN0aXZlRW5kID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKyAgICAgICAgICAgIGFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGZTdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgZW5kID0gbmV3IFRleHRPZmZzZXQoZlRleHQubGVuZ3RoKCksIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCk7CisKKyAgICAgICAgICAgIGlmIChlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFuY2hvciwgZW5kLCBhbmNob3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhlbmQsIGVuZCwgZW5kKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGVuZCBtb3ZlcyB0aGUgaW5zZXJ0aW9uIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgY29udGFpbmluZworICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorICAgICAgICAvLyBzaGlmdC1lbmQgZXh0ZW5kcyB0aGUgc2VsZWN0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgY29udGFpbmluZworICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorCisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICBpbnQgb2xkT2Zmc2V0ID0gYWN0aXZlRW5kLmZPZmZzZXQ7CisKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0ID0gZlRleHRDb21wb25lbnQubGluZVJhbmdlTGltaXQoZlRleHRDb21wb25lbnQubGluZUNvbnRhaW5pbmcoYWN0aXZlRW5kKSk7CisgICAgICAgICAgICBhY3RpdmVFbmQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKworICAgICAgICAgICAgaWYgKGZUZXh0LnBhcmFncmFwaExpbWl0KG9sZE9mZnNldCkgPT0gYWN0aXZlRW5kLmZPZmZzZXQgJiYKKyAgICAgICAgICAgICAgICAgICAgYWN0aXZlRW5kLmZPZmZzZXQgIT0gZlRleHQubGVuZ3RoKCkgJiYgYWN0aXZlRW5kLmZPZmZzZXQgPiBvbGRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBhY3RpdmVFbmQuZk9mZnNldC0tOworICAgICAgICAgICAgICAgIGFjdGl2ZUVuZC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhhY3RpdmVFbmQsIGFjdGl2ZUVuZCwgYWN0aXZlRW5kKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChhY3RpdmVFbmQubGVzc1RoYW4oYW5jaG9yKSkKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYW5jaG9yLCBhbmNob3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFuY2hvciwgYWN0aXZlRW5kLCBhbmNob3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2Nyb2xsVG9TaG93U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKyAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvSG9tZUtleShLZXlFdmVudCBlKSB7CisgICAgICAgIC8vIGN0cmwtaG9tZSBtb3ZlcyB0aGUgaW5zZXJ0aW9uIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50LAorICAgICAgICAvLyBjdHJsLXNoaWZ0LWhvbWUgZXh0ZW5kcyB0aGUgc2VsZWN0aW9uIHNvIHRoYXQgaXQgYmVnaW5zIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgLy8gb2YgdGhlIGRvY3VtZW50CisKKyAgICAgICAgVGV4dE9mZnNldCBhY3RpdmVFbmQsIGFuY2hvcjsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkgeworICAgICAgICAgICAgYWN0aXZlRW5kID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmTGltaXQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworCisgICAgICAgICAgICBUZXh0T2Zmc2V0IHN0YXJ0ID0gbmV3IFRleHRPZmZzZXQoMCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAgICAgaWYgKGUuaXNTaGlmdERvd24oKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoc3RhcnQsIGFuY2hvciwgYW5jaG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoc3RhcnQsIHN0YXJ0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBob21lIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgICAgIC8vIHNoaWZ0LWhvbWUgZXh0ZW5kcyB0aGUgc2VsZWN0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZworICAgICAgICAvLyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorCisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICBhY3RpdmVFbmQuZk9mZnNldCA9IGZUZXh0Q29tcG9uZW50LmxpbmVSYW5nZUxvdyhmVGV4dENvbXBvbmVudC5saW5lQ29udGFpbmluZyhhY3RpdmVFbmQpKTsKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisKKyAgICAgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhhY3RpdmVFbmQsIGFjdGl2ZUVuZCwgYWN0aXZlRW5kKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChhY3RpdmVFbmQubGVzc1RoYW4oYW5jaG9yKSkKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYW5jaG9yLCBhbmNob3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFuY2hvciwgYWN0aXZlRW5kLCBhbmNob3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2Nyb2xsVG9TaG93U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKyAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisgICAgfQorCisgICAgLyoqIGRyYXdzIG9yIGVyYXNlcyB0aGUgY3VycmVudCBzZWxlY3Rpb24KKyAgICAqIERyYXdzIG9yIGVyYXNlcyB0aGUgaGlnaGxpZ2h0IHJlZ2lvbiBvciBpbnNlcnRpb24gY2FyZXQgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorICAgICogcmFuZ2UuCisgICAgKiBAcGFyYW0gZyBUaGUgZ3JhcGhpY3MgZW52aXJvbm1lbnQgdG8gZHJhdyBpbnRvCisgICAgKiBAcGFyYW0gdmlzaWJsZSBJZiB0cnVlLCBkcmF3IHRoZSBzZWxlY3Rpb247IGlmIGZhbHNlLCBlcmFzZSBpdAorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZHJhd1NlbGVjdGlvbihHcmFwaGljcyBnLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgZHJhd1NlbGVjdGlvblJhbmdlKGcsIGZTdGFydCwgZkxpbWl0LCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKiogZHJhd3Mgb3IgZXJhc2VzIGEgc2VsZWN0aW9uIGhpZ2hsaWdodCBhdCB0aGUgc3BlY2ZpZWQgcG9zaXRpb25zCisgICAgKiBEcmF3cyBvciBlcmFzZXMgYSBzZWxlY3Rpb24gaGlnaGxpZ2h0IG9yIGluc2VydGlvbiBjYXJldCBjb3JyZXNwb25kaW5nIHRvCisgICAgKiB0aGUgc3BlY2lmaWVkIHNlbGVjaW9uIHJhbmdlCisgICAgKiBAcGFyYW0gZyBUaGUgZ3JhcGhpY3MgZW52aXJvbm1lbnQgdG8gZHJhdyBpbnRvLiAgSWYgbnVsbCwgdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLgorICAgICogQHBhcmFtIHN0YXJ0IFRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlIHRvIGhpZ2hsaWdodAorICAgICogQHBhcmFtIGxpbWl0IFRoZSBlbmQgb2YgdGhlIHJhbmdlIHRvIGhpZ2hsaWdodAorICAgICogQHBhcmFtIHZpc2libGUgSWYgdHJ1ZSwgZHJhdzsgaWYgZmFsc2UsIGVyYXNlCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkcmF3U2VsZWN0aW9uUmFuZ2UoICBHcmFwaGljcyAgICBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgIGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gICAgIHZpc2libGUpIHsKKyAgICAgICAgaWYgKGcgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFJlY3RhbmdsZSAgIHNlbEJvdW5kcyA9IGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChzdGFydCwgbGltaXQpOworCisgICAgICAgIHNlbEJvdW5kcy53aWR0aCA9IE1hdGgubWF4KDEsIHNlbEJvdW5kcy53aWR0aCk7CisgICAgICAgIHNlbEJvdW5kcy5oZWlnaHQgPSBNYXRoLm1heCgxLCBzZWxCb3VuZHMuaGVpZ2h0KTsKKworICAgICAgICBmVGV4dENvbXBvbmVudC5kcmF3VGV4dChnLCBzZWxCb3VuZHMsIHZpc2libGUsIHN0YXJ0LCBsaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVGV4dE9mZnNldCBnZXRBbmNob3IoKSB7CisgICAgICAgIHJldHVybiBmQW5jaG9yOworICAgIH0KKworICAgIHB1YmxpYyBUZXh0T2Zmc2V0IGdldEVuZCgpIHsKKyAgICAgICAgcmV0dXJuIGZMaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29sb3IgZ2V0SGlnaGxpZ2h0Q29sb3IoKSB7CisgICAgICAgIHJldHVybiBmSGlnaGxpZ2h0Q29sb3I7CisgICAgfQorCisgICAgcHVibGljIFRleHRPZmZzZXQgZ2V0U3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIFRleHRSYW5nZSBnZXRTZWxlY3Rpb25SYW5nZSgpIHsKKworICAgICAgICByZXR1cm4gbmV3IFRleHRSYW5nZShmU3RhcnQuZk9mZnNldCwgZkxpbWl0LmZPZmZzZXQpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworCisgICAgICAgIHNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGRyYXdTZWxlY3Rpb24oZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgdHJ1ZSk7CisKKyAgICAgICAgcmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgICAgIGlmIChmUGVuZGluZ01vdXNlRXZlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgbW91c2VQcmVzc2VkKGZQZW5kaW5nTW91c2VFdmVudCk7CisgICAgICAgICAgICBmUGVuZGluZ01vdXNlRXZlbnQgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworICAgICAgICBzZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgZHJhd1NlbGVjdGlvbihmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCBmYWxzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBrZXkgZXZlbnQgY2FuIGFmZmVjdCB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGtleUFmZmVjdHNTZWxlY3Rpb24oS2V5RXZlbnQgZSkgeworCisgICAgICAgIGlmIChlLmdldElEKCkgIT0gS2V5RXZlbnQuS0VZX1BSRVNTRUQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBrZXkgPSBlLmdldEtleUNvZGUoKTsKKworICAgICAgICBzd2l0Y2ggKGtleSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19IT01FOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTkQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRE9XTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBmSGFuZGxpbmdLZXlPckNvbW1hbmQgPSB0cnVlOworICAgICAgICBpbnQga2V5ID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAoa2V5KSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0hPTUU6CisgICAgICAgICAgICAgICAgZG9Ib21lS2V5KGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTkQ6CisgICAgICAgICAgICAgICAgZG9FbmRLZXkoZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICAgICAgICAgIGRvQXJyb3dLZXkoZSwga2V5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoIWVuYWJsZWQoKSkgeworICAgICAgICAgICAgZlBlbmRpbmdNb3VzZUV2ZW50ID0gZTsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnJlcXVlc3RGb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZNb3VzZURvd24pCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImZNb3VzZURvd24gaXMgb3V0IG9mIHN5bmMgd2l0aCBtb3VzZSBpbiBUZXh0U2VsZWN0aW9uLiIpOworCisgICAgICAgIGZNb3VzZURvd24gPSB0cnVlOworICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworCisgICAgICAgIGludCB4ID0gZS5nZXRYKCksIHkgPSBlLmdldFkoKTsKKyAgICAgICAgYm9vbGVhbiB3YXNaZXJvTGVuZ3RoID0gcmFuZ2VJc1plcm9MZW5ndGgoZlN0YXJ0LCBmTGltaXQsIGZBbmNob3IpOworICAgICAgICAKKyAgICAgICAgVGV4dE9mZnNldCBjdXJyZW50ID0gZlRleHRDb21wb25lbnQucG9pbnRUb1RleHRPZmZzZXQobnVsbCwgeCwgeSwgbnVsbCwgdHJ1ZSk7CisgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yU3RhcnQgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvckVuZCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGV4dGVuZGluZyB0aGUgc2VsZWN0aW9uLi4uCisgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKSB7CisKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjbGlja3MsIGNyZWF0ZSB0aGUgYXBwb3ByaWF0ZSB0eXBlIG9mIEJyZWFrSXRlcmF0b3IKKyAgICAgICAgICAgIC8vIG9iamVjdCBmb3IgZmluZGluZyB0ZXh0IGJvdW5kYXJpZXMgKHNpbmdsZSBjbGlja3MgZG9uJ3QgdXNlIGEgQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gb2JqZWN0KQorICAgICAgICAgICAgaWYgKGUuZ2V0Q2xpY2tDb3VudCgpID09IDIpCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICAgICAgZWxzZSBpZiAoZS5nZXRDbGlja0NvdW50KCkgPT0gMykKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcyA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKworICAgICAgICAgICAgLy8gaWYgd2UncmUgdXNpbmcgYSBCcmVha0l0ZXJhdG9yIG9iamVjdCwgdXNlIGl0IHRvIGZpbmQgdGhlIG5lYXJlc3QgYm91bmRhcmllcworICAgICAgICAgICAgLy8gb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1vdXNlLWNsaWNrIHBvc2l0aW9uIGFuZCBtYWtlIHRoZW0gb3VyIGFuY2hvciByYW5nZQorICAgICAgICAgICAgaWYgKGZCb3VuZGFyaWVzICE9IG51bGwpCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMuc2V0VGV4dChmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpKTsKKworICAgICAgICAgICAgYW5jaG9yU3RhcnQuYXNzaWduKGN1cnJlbnQpOworICAgICAgICAgICAgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShhbmNob3JTdGFydCk7CisgICAgICAgICAgICBhbmNob3JFbmQuYXNzaWduKGN1cnJlbnQpOworICAgICAgICAgICAgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KGFuY2hvckVuZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBfYXJlXyBleHRlbmRpbmcgdGhlIHNlbGVjdGlvbiwgZGV0ZXJtaW5lIG91ciBhbmNob3IgcmFuZ2UgYXMgZm9sbG93czoKKyAgICAgICAgLy8gZkFuY2hvciBpcyB0aGUgc3RhcnQgb2YgdGhlIGFuY2hvciByYW5nZTsKKyAgICAgICAgLy8gdGhlIG5leHQgYm91bmRhcnkgKGFmdGVyIGZBbmNob3IpIGlzIHRoZSBsaW1pdCBvZiB0aGUgYW5jaG9yIHJhbmdlLgorCisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICBpZiAoZkJvdW5kYXJpZXMgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICBhbmNob3JTdGFydC5hc3NpZ24oZkFuY2hvcik7CisgICAgICAgICAgICBhbmNob3JFbmQuYXNzaWduKGFuY2hvclN0YXJ0KTsKKworICAgICAgICAgICAgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KGFuY2hvckVuZCk7CisgICAgICAgIH0KKworICAgICAgICBTZWxlY3Rpb25EcmFnSW50ZXJhY3RvciBpbnRlcmFjdG9yID0gbmV3IFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yKHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5TdHJhdGVneSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzWmVyb0xlbmd0aCk7CisKKyAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGZQZW5kaW5nTW91c2VFdmVudCA9IG51bGw7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBkcmFnIGludGVyYWN0b3IgY2FsbHMgdGhpcworICAgIHZvaWQgbW91c2VSZWxlYXNlZChib29sZWFuIHplcm9MZW5ndGhDaGFuZ2UpIHsKKworICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisKKyAgICAgICAgaWYgKHplcm9MZW5ndGhDaGFuZ2UpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgLy8gaWYgY2FyZXQgZHJhd2luZyBkdXJpbmcgbW91c2UgZHJhZ3MgaXMgc3VwcmVzc2VkLCBkcmF3IGNhcmV0IG5vdy4KKworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKworICAgIC8qKiBkcmF3cyB0aGUgc2VsZWN0aW9uCisgICAgKiBQcm92aWRlZCwgb2YgY291cnNlLCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgdmlzaWJsZSwgdGhlIGFkb3JuZXIgaXMgZW5hYmxlZCwKKyAgICAqIGFuZCB3ZSdyZSBjYWxsaW5nIGl0IHRvIGFkb3JuIHRoZSB2aWV3IGl0IGFjdHVhbGx5IGJlbG9uZ3MgdG8KKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhY3R1YWxseSBkcmV3CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYWludChHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd1JlY3QpIHsKKyAgICAgICAgLy8gZG9uJ3QgZHJhdyBhbnl0aGluZyB1bmxlc3Mgd2UncmUgZW5hYmxlZCBhbmQgdGhlIHNlbGVjdGlvbiBpcyB2aXNpYmxlCisgICAgICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGcsIGRyYXdSZWN0LCB0cnVlLCBmU3RhcnQsIGZMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqIHNjcm9sbHMgdGhlIHZpZXcgdG8gcmV2ZWFsIHRoZSBsaXZlIGVuZCBvZiB0aGUgc2VsZWN0aW9uCisgICAgKiAoaS5lLiwgdGhlIGVuZCB0aGF0IG1vdmVzIGlmIHlvdSB1c2UgdGhlIGFycm93IGtleXMgd2l0aCB0aGUgc2hpZnQga2V5IGRvd24pCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzY3JvbGxUb1Nob3dTZWxlY3Rpb24oKSB7CisgICAgICAgIFJlY3RhbmdsZSAgIHNlbFJlY3QgPSBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3QoZlN0YXJ0LCBmTGltaXQpOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LnNjcm9sbFRvU2hvdyhzZWxSZWN0KTsKKyAgICB9CisKKyAgICAvKiogc2Nyb2xscyB0aGUgdmlldyB0byByZXZlYWwgdGhlIGxpdmUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAqIChpLmUuLCB0aGUgZW5kIHRoYXQgbW92ZXMgaWYgeW91IHVzZSB0aGUgYXJyb3cga2V5cyB3aXRoIHRoZSBzaGlmdCBrZXkgZG93bikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvU2hvd1NlbGVjdGlvbkVuZCgpIHsKKyAgICAgICAgVGV4dE9mZnNldCAgbGl2ZUVuZDsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgUG9pbnRbXSAgICAgcG9pbnRzOworICAgICAgICBSZWN0YW5nbGUgICBjYXJldDsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkKKyAgICAgICAgICAgIGxpdmVFbmQgPSBmTGltaXQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxpdmVFbmQgPSBmU3RhcnQ7CisKKyAgICAgICAgLy9wb2ludHMgPSBmVGV4dENvbXBvbmVudC50ZXh0T2Zmc2V0VG9Qb2ludChsaXZlRW5kKTsKKyAgICAgICAgLy9jYXJldCA9IG5ldyBSZWN0YW5nbGUocG9pbnRzWzBdKTsKKyAgICAgICAgLy9jYXJldCA9IGNhcmV0LnVuaW9uKG5ldyBSZWN0YW5nbGUocG9pbnRzWzFdKSk7CisgICAgICAgIGNhcmV0ID0gZlRleHRDb21wb25lbnQuZ2V0Q2FyZXRSZWN0KGxpdmVFbmQpOworICAgICAgICBmVGV4dENvbXBvbmVudC5zY3JvbGxUb1Nob3coY2FyZXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZWxlY3QoVGV4dFJhbmdlIHJhbmdlKSB7CisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCB0ZXh0TGVuZ3RoID0gZlRleHRDb21wb25lbnQuZ2V0VGV4dCgpLmxlbmd0aCgpOworCisgICAgICAgIFRleHRPZmZzZXQgc3RhcnQgPSBuZXcgVGV4dE9mZnNldChyYW5nZS5zdGFydCk7CisKKyAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KHN0YXJ0LCBuZXcgVGV4dE9mZnNldChyYW5nZS5saW1pdCksIHN0YXJ0KTsKKyAgICAgICAgcmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SGlnaGxpZ2h0Q29sb3IoQ29sb3IgbmV3Q29sb3IpIHsKKyAgICAgICAgZkhpZ2hsaWdodENvbG9yID0gbmV3Q29sb3I7CisgICAgICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgICAgICBkcmF3U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHRydWUpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiByYW5nZUlzWmVyb0xlbmd0aChUZXh0T2Zmc2V0IHN0YXJ0LCBUZXh0T2Zmc2V0IGxpbWl0LCBUZXh0T2Zmc2V0IGFuY2hvcikgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0LmZPZmZzZXQgPT0gbGltaXQuZk9mZnNldCAmJiBhbmNob3IuZk9mZnNldCA9PSBsaW1pdC5mT2Zmc2V0OworICAgIH0KKworICAgIC8vIHNpZ2guLi4gbG9vayBvdXQgZm9yIGFsaWFzaW5nCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgVGV4dE9mZnNldCBuZXdBbmNob3IpIHsKKworICAgICAgICBib29sZWFuIHplcm9MZW5ndGhDaGFuZ2UgPSByYW5nZUlzWmVyb0xlbmd0aChuZXdTdGFydCwgbmV3TGltaXQsIG5ld0FuY2hvcikgIT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZUlzWmVyb0xlbmd0aChmU3RhcnQsIGZMaW1pdCwgZkFuY2hvcik7CisgICAgICAgIFRleHRPZmZzZXQgdGVtcE5ld0FuY2hvcjsKKyAgICAgICAgaWYgKG5ld0FuY2hvciA9PSBmU3RhcnQgfHwgbmV3QW5jaG9yID09IGZMaW1pdCkgeworICAgICAgICAgICAgdGVtcE5ld0FuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KG5ld0FuY2hvcik7IC8vIGNsb25lIGluIGNhc2Ugb2YgYWxpYXNpbmcKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlbXBOZXdBbmNob3IgPSBuZXdBbmNob3I7CisgICAgICAgIH0KKworICAgICAgICAvLyBERUJVRyB7amJyfQorCisgICAgICAgIGlmIChuZXdTdGFydC5ncmVhdGVyVGhhbihuZXdMaW1pdCkpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTZWxlY3Rpb24gbGltaXQgaXMgYmVmb3JlIHNlbGVjdGlvbiBzdGFydC4iKTsKKworICAgICAgICBpZiAobmV3TGltaXQgIT0gZlN0YXJ0KSB7CisgICAgICAgICAgICBmU3RhcnQuYXNzaWduKG5ld1N0YXJ0KTsKKyAgICAgICAgICAgIGZMaW1pdC5hc3NpZ24obmV3TGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkxpbWl0LmFzc2lnbihuZXdMaW1pdCk7CisgICAgICAgICAgICBmU3RhcnQuYXNzaWduKG5ld1N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZBbmNob3IuYXNzaWduKHRlbXBOZXdBbmNob3IpOworCisgICAgICAgIGlmIChmU3RhcnQuZk9mZnNldCA9PSBmTGltaXQuZk9mZnNldCkgeworICAgICAgICAgICAgZlN0YXJ0LmZQbGFjZW1lbnQgPSBmQW5jaG9yLmZQbGFjZW1lbnQ7CisgICAgICAgICAgICBmTGltaXQuZlBsYWNlbWVudCA9IGZBbmNob3IuZlBsYWNlbWVudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFmTW91c2VEb3duKSB7CisgICAgICAgICAgICBpZiAoemVyb0xlbmd0aENoYW5nZSkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIGlmIChmSGFuZGxpbmdLZXlPckNvbW1hbmQpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNvcnRPZmZzZXRzKFRleHRPZmZzZXQgb2Zmc2V0c1tdKSB7CisKKyAgICAgICAgaW50IGksIGo7CisKKyAgICAgICAgZm9yIChpPTA7IGkgPCBvZmZzZXRzLmxlbmd0aC0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaj1pKzE7IGogPCBvZmZzZXRzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldHNbal0ubGVzc1RoYW4ob2Zmc2V0c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCB0ZW1wID0gb2Zmc2V0c1tqXTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tqXSA9IG9mZnNldHNbaV07CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbaV0gPSB0ZW1wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIERFQlVHIHtqYnJ9CisgICAgICAgIGZvciAoaT0wOyBpIDwgb2Zmc2V0cy5sZW5ndGgtMTsgaSsrKQorICAgICAgICAgICAgaWYgKG9mZnNldHNbaV0uZ3JlYXRlclRoYW4ob2Zmc2V0c1tpKzFdKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInNvcnRPZmZzZXRzIGZhaWxlZCEiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCByYW5nZVN0YXJ0LCBUZXh0T2Zmc2V0IHJhbmdlTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9sZFN0YXJ0LCBUZXh0T2Zmc2V0IG9sZExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZHJhd0lmSW5zUG9pbnQpIHsKKworICAgICAgICBpZiAoIXJhbmdlU3RhcnQuZXF1YWxzKHJhbmdlTGltaXQpKQorICAgICAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChyYW5nZVN0YXJ0LCByYW5nZUxpbWl0KTsKKworICAgICAgICAvLyBoZXJlLCByYW5nZVN0YXJ0IGFuZCByYW5nZUxpbWl0IGFyZSBlcXVhbAorCisgICAgICAgIGlmIChyYW5nZVN0YXJ0LmVxdWFscyhvbGRMaW1pdCkpIHsKKworICAgICAgICAgICAgLy8gcmFuZ2Ugc3RhcnQgaXMgT0xEIGluc2VydGlvbiBwb2ludC4gIFJlZHJhdyBpZiBjYXJldCBpcyBjdXJyZW50bHkgdmlzaWJsZS4KKworICAgICAgICAgICAgaWYgKGZDYXJldElzVmlzaWJsZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJhbmdlU3RhcnQuZXF1YWxzKG5ld0xpbWl0KSkgeworCisgICAgICAgICAgICAvLyByYW5nZSBzdGFydCBpcyBORVcgaW5zZXJ0aW9uIHBvaW50LgorCisgICAgICAgICAgICBpZiAoZHJhd0lmSW5zUG9pbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChyYW5nZVN0YXJ0LCByYW5nZVN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gcmVjdGFuZ2xlc092ZXJsYXBWZXJ0aWNhbGx5KFJlY3RhbmdsZSByMSwgUmVjdGFuZ2xlIHIyKSB7CisgICAgICAgIAorICAgICAgICBpZiAocjEgPT0gbnVsbCB8fCByMiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByMS55IDw9IHIyLnkgKyByMi5oZWlnaHQgfHwgcjIueSA8PSByMS55ICsgcjEuaGVpZ2h0OworICAgIH0KKyAgICAKKyAgICAvLyBVcGRhdGUgdG8gc2hvdyBuZXcgc2VsZWN0aW9uLCByZWRyYXdpbmcgYXMgbGl0dGxlIGFzIHBvc3NpYmxlCisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlU2VsZWN0aW9uRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9sZFN0YXJ0LCBUZXh0T2Zmc2V0IG9sZExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U3RhcnQsIFRleHRPZmZzZXQgbmV3TGltaXQsIGJvb2xlYW4gZHJhd0lmSW5zUG9pbnQpIHsKKworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigibmV3U3RhcnQ6IiArIG5ld1N0YXJ0ICsgIjsgbmV3TGltaXQ6IiArIG5ld0xpbWl0KTsKKworICAgICAgICBUZXh0T2Zmc2V0IG9mZltdID0gbmV3IFRleHRPZmZzZXRbNF07CisKKyAgICAgICAgb2ZmWzBdID0gb2xkU3RhcnQ7CisgICAgICAgIG9mZlsxXSA9IG9sZExpbWl0OworICAgICAgICBvZmZbMl0gPSBuZXdTdGFydDsKKyAgICAgICAgb2ZmWzNdID0gbmV3TGltaXQ7CisKKyAgICAgICAgc29ydE9mZnNldHMob2ZmKTsKKworICAgICAgICBSZWN0YW5nbGUgcjEgPSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KG9mZlswXSwgb2ZmWzFdLCBvbGRTdGFydCwgb2xkTGltaXQsIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZHJhd0lmSW5zUG9pbnQpOworICAgICAgICBSZWN0YW5nbGUgcjIgPSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KG9mZlsyXSwgb2ZmWzNdLCBvbGRTdGFydCwgb2xkTGltaXQsIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZHJhd0lmSW5zUG9pbnQpOworCisgICAgICAgIGJvb2xlYW4gZHJhd1NlbGVjdGlvbiA9IGRyYXdJZkluc1BvaW50IHx8ICFuZXdTdGFydC5lcXVhbHMobmV3TGltaXQpOworCisgICAgICAgIGlmIChyZWN0YW5nbGVzT3ZlcmxhcFZlcnRpY2FsbHkocjEsIHIyKSkgeworCisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5kcmF3VGV4dChmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCByMS51bmlvbihyMiksIGRyYXdTZWxlY3Rpb24sIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChyMSAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIxLCBkcmF3U2VsZWN0aW9uLCBuZXdTdGFydCwgbmV3TGltaXQsIGZIaWdobGlnaHRDb2xvcik7CisgICAgICAgICAgICBpZiAocjIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5kcmF3VGV4dChmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCByMiwgZHJhd1NlbGVjdGlvbiwgbmV3U3RhcnQsIG5ld0xpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U2VsUmFuZ2VBbmREcmF3KFRleHRPZmZzZXQgbmV3U3RhcnQsIFRleHRPZmZzZXQgbmV3TGltaXQsIFRleHRPZmZzZXQgbmV3QW5jaG9yKSB7CisKKyAgICAgICAgLy8gaWYgdGhlIG9sZCBhbmQgbmV3IHNlbGVjdGlvbiByYW5nZXMgYXJlIHRoZSBzYW1lLCBkb24ndCBkbyBhbnl0aGluZworICAgICAgICBpZiAoZlN0YXJ0LmVxdWFscyhuZXdTdGFydCkgJiYgZkxpbWl0LmVxdWFscyhuZXdMaW1pdCkgJiYgZkFuY2hvci5lcXVhbHMobmV3QW5jaG9yKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZW5hYmxlZCgpKQorICAgICAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKworICAgICAgICAvLyB1cGRhdGUgdGhlIHNlbGVjdGlvbiBvbiBzY3JlZW4gaWYgd2UncmUgZW5hYmxlZCBhbmQgdmlzaWJsZQorCisgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpLCBvbGRMaW1pdCA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisKKyAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2UobmV3U3RhcnQsIG5ld0xpbWl0LCBuZXdBbmNob3IpOworCisgICAgICAgIGlmIChlbmFibGVkKCkpIHsKKworICAgICAgICAgICAgICAgIC8vIFRvIHN1cHJlc3MgZHJhd2luZyBhIGNhcmV0IGR1cmluZyBhIG1vdXNlIGRyYWcsIHBhc3MgIWZNb3VzZURvd24gaW5zdGVhZCBvZiB0cnVlOgorICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkRpc3BsYXkob2xkU3RhcnQsIG9sZExpbWl0LCBmU3RhcnQsIGZMaW1pdCwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZNb3VzZURvd24gJiYgZW5hYmxlZCgpKQorICAgICAgICAgICAgcmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3RvcENhcmV0QmxpbmtpbmcoKSB7CisKKyAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKyAgICAgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXN1bWUgYmxpbmtpbmcgdGhlIGNhcmV0LCBpZiB0aGUgc2VsZWN0aW9uIGlzIGFuIGluc2VydGlvbiBwb2ludC4KKyogQHBhcmFtIGNhcmV0SXNWaXNpYmxlIHRydWUgaWYgdGhlIGNhcmV0IGlzIGRpc3BsYXllZCB3aGVuIHRoaXMgaXMgY2FsbGVkLgorKiBUaGlzIG1ldGhvZCByZWxpZXMgb24gdGhlIGNsaWVudCB0byBkaXNwbGF5IChvciBub3QgZGlzcGxheSkgdGhlIGNhcmV0LgorKi8KKyAgICBwdWJsaWMgdm9pZCByZXN0YXJ0Q2FyZXRCbGlua2luZyhib29sZWFuIGNhcmV0SXNWaXNpYmxlKSB7CisKKyAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKyAgICAgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZlN0YXJ0LmVxdWFscyhmTGltaXQpOworICAgICAgICAgICAgZkNhcmV0Q291bnQgPSAwOworICAgICAgICAgICAgZkNhcmV0SXNWaXNpYmxlID0gY2FyZXRJc1Zpc2libGU7CisKKyAgICAgICAgICAgIGlmIChmQ2FyZXRTaG91bGRCbGluaykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb246ICIrZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRnJvbU93bmVyKCkgeworCisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisgICAgICAgIHN1cGVyLnJlbW92ZUZyb21Pd25lcigpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RoYWlLZXlSZW1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RoYWlLZXlSZW1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3YTI3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEKQEAgLTAsMCArMSwxMTIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworZmluYWwgY2xhc3MgVGhhaUtleVJlbWFwIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICdgJzogcmV0dXJuICdcdTAwNWYnOworICAgICAgICAgICAgY2FzZSAnfic6IHJldHVybiAnXHUwMDI1JzsKKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MGU0NSc7CisgICAgICAgICAgICBjYXNlICchJzogcmV0dXJuICdcdTAwMmInOworICAgICAgICAgICAgY2FzZSAnMic6IHJldHVybiAnXHUwMDJmJzsKKyAgICAgICAgICAgIGNhc2UgJ0AnOiByZXR1cm4gJ1x1MGU1MSc7CisgICAgICAgICAgICBjYXNlICczJzogcmV0dXJuICdcdTAwMmQnOworICAgICAgICAgICAgY2FzZSAnIyc6IHJldHVybiAnXHUwZTUyJzsKKyAgICAgICAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ1x1MGUyMCc7CisgICAgICAgICAgICBjYXNlICckJzogcmV0dXJuICdcdTBlNTMnOworICAgICAgICAgICAgY2FzZSAnNSc6IHJldHVybiAnXHUwZTE2JzsKKyAgICAgICAgICAgIGNhc2UgJyUnOiByZXR1cm4gJ1x1MGU1NCc7CisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTBlMzgnOworICAgICAgICAgICAgY2FzZSAnXic6IHJldHVybiAnXHUwZTM5JzsKKyAgICAgICAgICAgIGNhc2UgJzcnOiByZXR1cm4gJ1x1MGUzNic7CisgICAgICAgICAgICBjYXNlICcmJzogcmV0dXJuICdcdTBlM2YnOworICAgICAgICAgICAgY2FzZSAnOCc6IHJldHVybiAnXHUwZTA0JzsKKyAgICAgICAgICAgIGNhc2UgJyonOiByZXR1cm4gJ1x1MGU1NSc7CisgICAgICAgICAgICBjYXNlICc5JzogcmV0dXJuICdcdTBlMTUnOworICAgICAgICAgICAgY2FzZSAnKCc6IHJldHVybiAnXHUwZTU2JzsKKyAgICAgICAgICAgIGNhc2UgJzAnOiByZXR1cm4gJ1x1MGUwOCc7CisgICAgICAgICAgICBjYXNlICcpJzogcmV0dXJuICdcdTBlNTcnOworICAgICAgICAgICAgY2FzZSAnLSc6IHJldHVybiAnXHUwZTAyJzsKKyAgICAgICAgICAgIGNhc2UgJ18nOiByZXR1cm4gJ1x1MGU1OCc7CisgICAgICAgICAgICBjYXNlICc9JzogcmV0dXJuICdcdTBlMDgnOworICAgICAgICAgICAgY2FzZSAnKyc6IHJldHVybiAnXHUwZTU5JzsKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MGU0Nic7CisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTBlNTAnOworICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwZTQ0JzsKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDAyMic7CisgICAgICAgICAgICBjYXNlICdlJzogcmV0dXJuICdcdTBlMzMnOworICAgICAgICAgICAgY2FzZSAnRSc6IHJldHVybiAnXHUwZTBlJzsKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MGUxZSc7CisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTBlMTEnOworICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwZTMwJzsKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MGUxOCc7CisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTBlMzEnOworICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwZTRkJzsKKyAgICAgICAgICAgIGNhc2UgJ3UnOiByZXR1cm4gJ1x1MGUzNSc7CisgICAgICAgICAgICBjYXNlICdVJzogcmV0dXJuICdcdTBlNGEnOworICAgICAgICAgICAgY2FzZSAnaSc6IHJldHVybiAnXHUwZTIzJzsKKyAgICAgICAgICAgIGNhc2UgJ0knOiByZXR1cm4gJ1x1MGUxMyc7CisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTBlMTknOworICAgICAgICAgICAgY2FzZSAnTyc6IHJldHVybiAnXHUwZTJmJzsKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MGUyMic7CisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTBlMGQnOworICAgICAgICAgICAgY2FzZSAnWyc6IHJldHVybiAnXHUwZTFhJzsKKyAgICAgICAgICAgIGNhc2UgJ3snOiByZXR1cm4gJ1x1MGUxMCc7CisgICAgICAgICAgICBjYXNlICddJzogcmV0dXJuICdcdTBlMjUnOworICAgICAgICAgICAgY2FzZSAnfSc6IHJldHVybiAnXHUwMDJjJzsKKyAgICAgICAgICAgIGNhc2UgJ1xcJzogcmV0dXJuICdcdTBlMDMnOworICAgICAgICAgICAgY2FzZSAnfCc6IHJldHVybiAnXHUwZTA1JzsKKyAgICAgICAgICAgIGNhc2UgJ2EnOiByZXR1cm4gJ1x1MGUxZic7CisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTBlMjQnOworICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwZTJiJzsKKyAgICAgICAgICAgIGNhc2UgJ1MnOiByZXR1cm4gJ1x1MGUwNic7CisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTBlMDEnOworICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwZTBmJzsKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MGUxNCc7CisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTBlNDInOworICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwZTQwJzsKKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MGUwYyc7CisgICAgICAgICAgICBjYXNlICdoJzogcmV0dXJuICdcdTBlNDknOworICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwZTQ3JzsKKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MGU0OCc7CisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTBlNGInOworICAgICAgICAgICAgY2FzZSAnayc6IHJldHVybiAnXHUwZTMyJzsKKyAgICAgICAgICAgIGNhc2UgJ0snOiByZXR1cm4gJ1x1MGUyOSc7CisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTBlMmEnOworICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwZTI4JzsKKyAgICAgICAgICAgIGNhc2UgJzsnOiByZXR1cm4gJ1x1MGUyNyc7CisgICAgICAgICAgICBjYXNlICc6JzogcmV0dXJuICdcdTBlMGInOworICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MGUwNyc7CisgICAgICAgICAgICBjYXNlICdcIic6IHJldHVybiAnXHUwMDJlJzsKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MGUxYyc7CisgICAgICAgICAgICBjYXNlICdaJzogcmV0dXJuICdcdTAwMjgnOworICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwZTFiJzsKKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDAyOSc7CisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTBlNDEnOworICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwZTA5JzsKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MGUyZCc7CisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTBlMmUnOworICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwZTM0JzsKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MGUzYSc7CisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTBlMzcnOworICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwZTRjJzsKKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MGUxNyc7CisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTAwM2YnOworICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwZTIxJzsKKyAgICAgICAgICAgIGNhc2UgJzwnOiByZXR1cm4gJ1x1MGUxMic7CisgICAgICAgICAgICBjYXNlICcuJzogcmV0dXJuICdcdTBlNDMnOworICAgICAgICAgICAgY2FzZSAnPic6IHJldHVybiAnXHUwZTJjJzsKKyAgICAgICAgICAgIGNhc2UgJy8nOiByZXR1cm4gJ1x1MGUxZCc7CisgICAgICAgICAgICBjYXNlICc/JzogcmV0dXJuICdcdTBlMjYnOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UcmFuc2ZlcmFibGVUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjZiZWFmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UcmFuc2ZlcmFibGVUZXh0LmphdmEKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuU3RyaW5nU2VsZWN0aW9uOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5EYXRhRmxhdm9yOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5VbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3MgTUNvbnN0VGV4dCBpbnN0YW5jZXMgdG8gYmUgdGhlIGNvbnRlbnRzCisgKiBvZiBhIENsaXBib2FyZC4gIFRvIHN0b3JlIGFuIE1Db25zdFRleHQgb24gdGhlIGNsaXBib2FyZCwKKyAqIGNvbnN0cnVjdCBhIFRyYW5zZmVyYWJsZVRleHQgZnJvbSB0aGUgTUNvbnN0VGV4dCwgYW5kIG1ha2UKKyAqIHRoZSBUcmFuc2ZlcmFibGVUZXh0IHRoZSBjbGlwYm9hcmQgY29udGVudHMuCisgKgorICovCisvKgorICogTm90ZTogIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTdHJpbmdTZWxlY3Rpb24gYmVjYXVzZSBvZgorICogYSBidWcgaW4gdGhlIDEuMS43IHN5c3RlbSBjbGlwYm9hcmQgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIHN5c3RlbSBjbGlwYm9hcmQgd29uJ3QgcHV0IHRleHQgb24gdGhlIE9TIGNsaXBib2FyZCB1bmxlc3MKKyAqIHRoZSBjb250ZW50IGlzIGEgU3RyaW5nU2VsZWN0aW9uLgorICovCitmaW5hbCBjbGFzcyBUcmFuc2ZlcmFibGVUZXh0IGV4dGVuZHMgU3RyaW5nU2VsZWN0aW9uCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdGV4dFRvU3RyaW5nKE1Db25zdFRleHQgdGV4dCkgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgdGV4dC5leHRyYWN0Q2hhcnMoMCwgY2hhcnMubGVuZ3RoLCBjaGFycywgMCk7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBUcmFuc2ZlcmFibGVUZXh0IGZvciB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBnbyBvbiB0aGUgQ2xpcGJvYXJkLiAgVGhlIHRleHQgaXMKKyAgICAgKiAgICAgYWRvcHRlZCBieSB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNmZXJhYmxlVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBzdXBlcih0ZXh0VG9TdHJpbmcodGV4dCkpOworCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0YUZsYXZvcltdIGdldFRyYW5zZmVyRGF0YUZsYXZvcnMoKSB7CisKKyAgICAgICAgRGF0YUZsYXZvcltdIGZsYXZvcnMgPSBzdXBlci5nZXRUcmFuc2ZlckRhdGFGbGF2b3JzKCk7CisgICAgICAgIERhdGFGbGF2b3JbXSByZXN1bHQgPSBuZXcgRGF0YUZsYXZvcltmbGF2b3JzLmxlbmd0aCsxXTsKKyAgICAgICAgcmVzdWx0WzBdID0gTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZsYXZvcnMsIDAsIHJlc3VsdCwgMSwgZmxhdm9ycy5sZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YUZsYXZvclN1cHBvcnRlZChEYXRhRmxhdm9yIGZsYXZvcikgeworCisgICAgICAgIGlmIChmbGF2b3IuZXF1YWxzKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmlzRGF0YUZsYXZvclN1cHBvcnRlZChmbGF2b3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvciBmbGF2b3IpIHRocm93cyBVbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCisgICAgICAgIGlmIChmbGF2b3IuZXF1YWxzKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikpIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXRUcmFuc2ZlckRhdGEoZmxhdm9yKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHlwaW5nSW50ZXJhY3Rvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk0NTE3M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHlwaW5nSW50ZXJhY3Rvci5qYXZhCkBAIC0wLDAgKzEsMzU0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAgICAyLzI1Lzk5IC0gTm93IHByb2Nlc3NpbmcgY2hhcmFjdGVycyBmcm9tIGtleVR5cGVkIG1ldGhvZCAobm90IGtleVByZXNzZWQpLgorICAgICAgICAgICAgICBUaGlzIG5ldyB3YXkgaXMgaW5wdXQtbWV0aG9kIGZyaWVuZGx5IG9uIDEuMiwgYW5kIGlzIGdlbmVyYWxseQorICAgICAgICAgICAgICBtb3JlIGNvcnJlY3QuCisKKyAgICA3LzcvOTcgLSB0aGUgbW91c2VEaWRTb21ldGhpbmcgbWV0aG9kcyB1c2VkIHRvIHJlbW92ZSB0aGUgdHlwaW5nIGludGVyYWN0b3IuCisgICAgICAgICAgICBUaGlzIGlzIGRlZmluaXRlbHkgd3JvbmcsIGJ1dCBtYXliZSB0aGF0IG1hZGUgc2Vuc2UgYXQgb25lIHRpbWUuICBBbnl3YXksCisgICAgICAgICAgICBub3cgdGhlIG1vdXNlUHJlc3NlZCAvIG1vdXNlUmVsZWFzZWQgbWV0aG9kcyByZW1vdmUgdGhlIGludGVyYWN0b3I7ICB0aGUKKyAgICAgICAgICAgIG90aGVycyBkbyBub3RoaW5nLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitmaW5hbCBjbGFzcyBUeXBpbmdJbnRlcmFjdG9yIGV4dGVuZHMgQmVoYXZpb3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQkFDS1NQQUNFID0gODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFRBQiA9ICdcdCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVRVUk4gPSAnXHInOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgTElORV9GRUVEID0gJ1xuJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFBBUkFHUkFQSF9TRVAgPSAnXHUyMDI5JzsKKyAgICAKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgZlRleHRDb21wb25lbnQ7CisgICAgcHJpdmF0ZSBUZXh0U2VsZWN0aW9uIGZTZWxlY3Rpb247CisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlR5cGluZ1N0eWxlOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFRleHRFZGl0QmVoYXZpb3IgZlBhcmVudDsKKyAgICBwcml2YXRlIFRleHRDaGFuZ2VDb21tYW5kIGZDb21tYW5kID0gbnVsbDsKKyAgICBwcml2YXRlIFNpbXBsZUNvbW1hbmRMb2cgZkNvbW1hbmRMb2c7CisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBmQ2hhckJyZWFrID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3QgYWxsIGNoYXJhY3RlcnMgdGhhdCBjb21lIGZyb20gdGhlIGtleWJvYXJkIGFyZSBoYW5kbGVkCisgICAgICogYXMgaW5wdXQuICBGb3IgZXhhbXBsZSwgY3RybC1jIGlzIG5vdCBhIHR5cGFibGUgY2hhcmFjdGVyLgorICAgICAqIFRoaXMgbWV0aG9kIGRldGVybWluZXMgd2hldGhlciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGZyb20KKyAgICAgKiB0aGUga2V5Ym9hcmQgd2lsbCBhZmZlY3QgdGhlIHRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1R5cGluZ0ludGVyYWN0b3JDaGFyKGNoYXIgY2gpIHsKKworICAgICAgICByZXR1cm4gY2ggPj0gJyAnIHx8IAorICAgICAgICAgICAgICAgY2ggPT0gTElORV9GRUVEIHx8IAorICAgICAgICAgICAgICAgY2ggPT0gUkVUVVJOIHx8CisgICAgICAgICAgICAgICBjaCA9PSBUQUIgfHwgCisgICAgICAgICAgICAgICBjaCA9PSBCQUNLU1BBQ0U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGRldGVybWluZXMgd2hldGhlciBhIFR5cGluZ0ludGVyYWN0b3Igc2hvdWxkCisgICAgICogaGFuZGxlIHRoZSBnaXZlbiBLZXlFdmVudC4KKyAgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBoYW5kbGVkQnlUeXBpbmdJbnRlcmFjdG9yKEtleUV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgZmluYWwgaW50IGlkID0gZXZlbnQuZ2V0SUQoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChpZCA9PSBLZXlFdmVudC5LRVlfVFlQRUQpIHsKKyAgICAgICAgICAgIHJldHVybiBpc1R5cGluZ0ludGVyYWN0b3JDaGFyKGV2ZW50LmdldEtleUNoYXIoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKGlkID09IEtleUV2ZW50LktFWV9QUkVTU0VEICYmIAorICAgICAgICAgICAgICAgICAgICBldmVudC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfREVMRVRFKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBUeXBpbmdJbnRlcmFjdG9yKFRleHRDb21wb25lbnQgdGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgdHlwaW5nU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEVkaXRCZWhhdmlvciBwYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltcGxlQ29tbWFuZExvZyBjb21tYW5kTG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZUZXh0ID0gdGV4dENvbXBvbmVudC5nZXRUZXh0KCk7CisgICAgICAgIGZTZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICAgIGZUeXBpbmdTdHlsZSA9IHR5cGluZ1N0eWxlOworICAgICAgICBmUGFyZW50ID0gcGFyZW50OworICAgICAgICBmQ29tbWFuZExvZyA9IGNvbW1hbmRMb2c7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworCisgICAgICAgIGZQYXJlbnQuc2V0VHlwaW5nSW50ZXJhY3Rvcih0aGlzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZW5kSW50ZXJhY3Rpb24oKSB7CisKKyAgICAgICAgcmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgIHBvc3RUZXh0Q2hhbmdlQ29tbWFuZCgpOworCisgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICBpbnQgc2VsTGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisgICAgICAgIGZQYXJlbnQuc2V0U2F2ZWRUeXBpbmdTdHlsZShzZWxTdGFydD09c2VsTGltaXQ/IGZUeXBpbmdTdHlsZSA6IG51bGwsIHNlbFN0YXJ0KTsKKyAgICAgICAgCisgICAgICAgIGZQYXJlbnQuc2V0VHlwaW5nSW50ZXJhY3RvcihudWxsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGlmIChmQ29tbWFuZCA9PSBudWxsICYmIGV2ZW50ID09IEJlaGF2aW9yLkNIQVJBQ1RFUl9TVFlMRV9NT0QpIHsKKworICAgICAgICAgICAgcGlja1VwVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9ICgoU3R5bGVNb2RpZmllcil3aGF0KS5tb2RpZnlTdHlsZShmVHlwaW5nU3R5bGUpOworCisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEJlaGF2aW9yIG5leHQgPSBuZXh0QmVoYXZpb3IoKTsgLy8gc2F2ZSBiZWNhdXNlIHJlbW92ZUZyb21Pd25lcigpIHdpbGwgdHJhc2ggdGhpcworCisgICAgICAgICAgICBlbmRJbnRlcmFjdGlvbigpOworCisgICAgICAgICAgICBpZiAobmV4dCAhPSBudWxsKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXh0LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgd2hhdCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQmFja3NwYWNlKCkgeworCisgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICBpbnQgc2VsTGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisKKyAgICAgICAgaWYgKHNlbFN0YXJ0ID09IHNlbExpbWl0KSB7CisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gMCkgeworICAgICAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgcGlja1VwVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgICAgICBpZiAoc2VsU3RhcnQgPD0gZkNvbW1hbmQuYWZmZWN0ZWRSYW5nZVN0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmQucHJlcGVuZFRvT2xkVGV4dChmVGV4dC5leHRyYWN0KHNlbFN0YXJ0IC0gMSwgc2VsU3RhcnQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBpbnNQdCA9IG5ldyBUZXh0T2Zmc2V0KHNlbFN0YXJ0IC0gMSk7CisgICAgICAgICAgICAgICAgZlBhcmVudC5kb1JlcGxhY2VUZXh0KHNlbFN0YXJ0IC0gMSwgc2VsU3RhcnQsIG51bGwsIGluc1B0LCBpbnNQdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgICAgICBUZXh0T2Zmc2V0IGluc1B0ID0gbmV3IFRleHRPZmZzZXQoc2VsU3RhcnQpOworICAgICAgICAgICAgZlBhcmVudC5kb1JlcGxhY2VUZXh0KHNlbFN0YXJ0LCBzZWxMaW1pdCwgbnVsbCwgaW5zUHQsIGluc1B0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0Z3ZERlbGV0ZShib29sZWFuIGlnbm9yZUNoYXJCcmVhaykgeworCisgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICBpbnQgc2VsTGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisKKyAgICAgICAgVGV4dE9mZnNldCBpbnNQdCA9IG5ldyBUZXh0T2Zmc2V0KHNlbFN0YXJ0KTsKKworICAgICAgICBpZiAoc2VsU3RhcnQgPT0gc2VsTGltaXQpIHsKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgICAgICAgICAgaW50IG51bUNoYXJzOworICAgICAgICAgICAgICAgIGlmIChpZ25vcmVDaGFyQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtQ2hhcnMgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZDaGFyQnJlYWsgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZkNoYXJCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmQ2hhckJyZWFrLnNldFRleHQoZlRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgIG51bUNoYXJzID0gZkNoYXJCcmVhay5mb2xsb3dpbmcoc2VsU3RhcnQpIC0gc2VsU3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZDb21tYW5kLmFwcGVuZFRvT2xkVGV4dChmVGV4dC5leHRyYWN0KHNlbFN0YXJ0LCBzZWxTdGFydCArIG51bUNoYXJzKSk7CisgICAgICAgICAgICAgICAgZlBhcmVudC5kb1JlcGxhY2VUZXh0KHNlbFN0YXJ0LCBzZWxTdGFydCArIG51bUNoYXJzLCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICAgICAgZlBhcmVudC5kb1JlcGxhY2VUZXh0KHNlbFN0YXJ0LCBzZWxMaW1pdCwgbnVsbCwgaW5zUHQsIGluc1B0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb05vcm1hbEtleShjaGFyIGNoKSB7CisKKyAgICAgICAgLy8gU2lnaCAtIDEuMSByZXBvcnRzIGVudGVyIGtleSBldmVudHMgYXMgcmV0dXJuIGNoYXJzLCBidXQKKyAgICAgICAgLy8gMS4yIHJlcG9ydHMgdGhlbSBhcyBsaW5lZmVlZHMuCisgICAgICAgIGlmIChjaCA9PSBSRVRVUk4pIHsKKyAgICAgICAgICAgIGNoID0gTElORV9GRUVEOworICAgICAgICB9CisgICAgICAgIHBpY2tVcFR5cGluZ1N0eWxlKCk7CisgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVNlbGVjdGVkVGV4dChjaCwgZlR5cGluZ1N0eWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKworICAgICAgICAvLyBwYXNzIHRocm91Z2gsIGJ1dCBzdGljayBhcm91bmQuLi4KKyAgICAgICAgcmV0dXJuIHN1cGVyLmZvY3VzR2FpbmVkKGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKworICAgICAgICAvLyBwYXNzIHRocm91Z2gsIGJ1dCBzdGljayBhcm91bmQuLi4KKyAgICAgICAgcmV0dXJuIHN1cGVyLmZvY3VzTG9zdChlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGUuZ2V0S2V5Q2hhcigpID09IEJBQ0tTUEFDRSkgeworICAgICAgICAgICAgZG9CYWNrc3BhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChpc1R5cGluZ0ludGVyYWN0b3JDaGFyKGUuZ2V0S2V5Q2hhcigpKSkgeworICAgICAgICAgICAgICAgIEtleVJlbWFwIHJlbWFwID0gZlBhcmVudC5nZXRLZXlSZW1hcCgpOworICAgICAgICAgICAgICAgIGRvTm9ybWFsS2V5KHJlbWFwLnJlbWFwKGUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGludCBrZXkgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19ERUxFVEUpIHsKKyAgICAgICAgICAgIGRvRndkRGVsZXRlKGUuaXNTaGlmdERvd24oKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIEJlaGF2aW9yIG5leHQgPSBuZXh0QmVoYXZpb3IoKTsKKworICAgICAgICBpZiAoVGV4dFNlbGVjdGlvbi5rZXlBZmZlY3RzU2VsZWN0aW9uKGUpKSB7CisKKyAgICAgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV4dC5rZXlQcmVzc2VkKGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVJlbGVhc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpIHsKKyAgICAgICAgaWYgKGZDb21tYW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgVGV4dE9mZnNldCAgc2VsRW5kID0gZlNlbGVjdGlvbi5nZXRFbmQoKTsKKworICAgICAgICAgICAgTVRleHQgd3JpdGFibGVUZXh0ID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgIHdyaXRhYmxlVGV4dC5yZXBsYWNlKDAsIDAsIGZUZXh0LCBzZWxTdGFydC5mT2Zmc2V0LCBzZWxFbmQuZk9mZnNldCk7CisgICAgICAgICAgICBmQ29tbWFuZCA9IG5ldyBUZXh0Q2hhbmdlQ29tbWFuZChmUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZVRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIHNlbFN0YXJ0LmZPZmZzZXQsIHNlbFN0YXJ0LCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZXh0T2Zmc2V0KCksIG5ldyBUZXh0T2Zmc2V0KCkpOworCisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBCZWhhdmlvciBuZXh0ID0gbmV4dEJlaGF2aW9yKCk7IC8vIHNhdmUgYmVjYXVzZSByZW1vdmVGcm9tT3duZXIoKSB3aWxsIHRyYXNoIHRoaXMKKworICAgICAgICBlbmRJbnRlcmFjdGlvbigpOworCisgICAgICAgIGlmIChuZXh0ICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gbmV4dC5tb3VzZVByZXNzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIEJlaGF2aW9yIG5leHQgPSBuZXh0QmVoYXZpb3IoKTsgLy8gc2F2ZSBiZWNhdXNlIHJlbW92ZUZyb21Pd25lcigpIHdpbGwgdHJhc2ggdGhpcworCisgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisKKyAgICAgICAgaWYgKG5leHQgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBuZXh0Lm1vdXNlUmVsZWFzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGlja1VwVHlwaW5nU3R5bGUoKSB7CisgICAgICAgIGlmIChmVHlwaW5nU3R5bGUgPT0gbnVsbCkgeworICAgICAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgICAgICBpbnQgc2VsTGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBUZXh0RWRpdEJlaGF2aW9yLnR5cGluZ1N0eWxlQXQoZlRleHQsIHNlbFN0YXJ0LCBzZWxMaW1pdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcG9zdFRleHRDaGFuZ2VDb21tYW5kKCkgeworICAgICAgICBpZiAoZkNvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgVGV4dE9mZnNldCAgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxFbmQgPSBmU2VsZWN0aW9uLmdldEVuZCgpOworCisgICAgICAgICAgICBmQ29tbWFuZC5zZXROZXdUZXh0KGZUZXh0LmV4dHJhY3QoZkNvbW1hbmQuYWZmZWN0ZWRSYW5nZVN0YXJ0KCksIHNlbFN0YXJ0LmZPZmZzZXQpKTsKKyAgICAgICAgICAgIGZDb21tYW5kLnNldFNlbFJhbmdlQWZ0ZXIoc2VsU3RhcnQsIHNlbEVuZCk7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5hZGQoZkNvbW1hbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbGVhbiBoYXNQZW5kaW5nQ29tbWFuZCgpIHsKKworICAgICAgICByZXR1cm4gZkNvbW1hbmQgIT0gbnVsbDsKKyAgICB9CisKKyAgICBBdHRyaWJ1dGVNYXAgZ2V0VHlwaW5nU3R5bGUoKSB7CisKKyAgICAgICAgcGlja1VwVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgcmV0dXJuIGZUeXBpbmdTdHlsZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Yzg2NTYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKyAgICA8aGVhZD4gPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0tPgorICAgICAgICA8dGl0bGU+VGV4dFBhbmVsIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisgICAgICAgIFByb3ZpZGVzIGNvbXBvbmVudHMgKGZvciBib3RoIEFXVCBhbmQgU3dpbmcpIGluIHdoaWNoIHN0eWxlZCB0ZXh0IGlzIGRpc3BsYXllZCAKKyAgICAgICAgYW5kIGVkaXRlZCwgYW5kIHJlbGF0ZWQgY2xhc3Nlcy4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQWJvdXRUZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQWJvdXRUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2I3OGMzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YQpAQCAtMCwwICsxLDYzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworcHVibGljIGZpbmFsIGNsYXNzIEFib3V0VGV4dCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDb2xvcltdIENPTE9SUyA9IHsKKyAgICAgICAgQ29sb3IucmVkLCBDb2xvci5ibHVlLCBDb2xvci53aGl0ZSwgQ29sb3IuZ3JlZW4KKyAgICB9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUNvbnN0VGV4dCBnZXRBYm91dFRleHQoKSB7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkFCT1VUX1RFWFQpOworICAgICAgICBTdHlsZWRUZXh0IHN0eWxlZFRleHQgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0LCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0eWxlZFRleHQubGVuZ3RoKCk7CisgICAgICAgIGludCBpPTA7CisKKyAgICAgICAgZm9yIChpbnQgcGFyYWdyYXBoU3RhcnQgPSAwLCBwYXJhZ3JhcGhMaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQgPCBsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gcGFyYWdyYXBoTGltaXQpIHsKKworICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQgPSBzdHlsZWRUZXh0LnBhcmFncmFwaExpbWl0KHBhcmFncmFwaFN0YXJ0KTsKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MT1JTWyhpKyspJUNPTE9SUy5sZW5ndGhdKTsKKyAgICAgICAgICAgIHN0eWxlZFRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcik7CisgICAgICAgIH0KKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX0NFTlRFUik7CisKKyAgICAgICAgc3R5bGVkVGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgdGV4dC5sZW5ndGgoKSwgbW9kaWZpZXIpOworCisgICAgICAgIHJldHVybiBzdHlsZWRUZXh0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQm9vbGVhblN0eWxlTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkNjRhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQm9vbGVhblN0eWxlTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDk3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgZmluYWwgY2xhc3MgQm9vbGVhblN0eWxlTWVudUl0ZW0gZXh0ZW5kcyBTaW5nbGVDaGVja01lbnVJdGVtIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZkNoYXJhY3RlcjsKKworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IGZPblZhbHVlOworICAgIAorICAgIHB1YmxpYyBCb29sZWFuU3R5bGVNZW51SXRlbShPYmplY3Qgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvblZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgaWYgKG9uVmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT24gdmFsdWUgY2Fubm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZLZXkgPSBzdHlsZTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgCisgICAgICAgIGZPblZhbHVlID0gb25WYWx1ZTsKKyAgICAgICAgZkl0ZW0uYWRkTGlzdGVuZXIobmV3IEV2ZW50TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudE9jY3VycmVkKEV2ZW50T2JqZWN0IGV2ZW50KSB7CisgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGl0ZW0gaXMgZW5hYmxlZCB3aGVuIHBhbmVsIGlzIG51bGwhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb250aW51b3VzQW5kQ29tbWFuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihmS2V5LCBmT25WYWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IENIQVJBQ1RFUikgeworICAgICAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBjb250aW51b3VzQW5kQ29tbWFuZCgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKworICAgICAgICBPYmplY3QgdmFsdWUgPSAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbC5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oZktleSkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KTsKKyAgICAgICAgcmV0dXJuIGZPblZhbHVlLmVxdWFscyh2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldENoZWNrZWQoKSB7CisgICAgICAgIAorICAgICAgICBmSXRlbS5zZXRTdGF0ZShjb250aW51b3VzQW5kQ29tbWFuZCgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQ2hvaWNlTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU5ODhjOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQ2hvaWNlTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDkwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIENob2ljZU1lbnVJdGVtU2V0IGV4dGVuZHMgTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBNSXRlbVtdIGZJdGVtczsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmSXRlbVRvU3R5bGVNYXA7CisgICAgCisgICAgQ2hvaWNlTWVudUl0ZW1TZXQoT2JqZWN0W10gdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhW10gbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9IG1lbnVEYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlcyBhbmQgbmFtZXMgbXVzdCBoYXZlIGVxdWFsIGxlbmd0aCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmSXRlbXMgPSBuZXcgTUl0ZW1bbWVudURhdGEubGVuZ3RoXTsKKyAgICAgICAgZkl0ZW1Ub1N0eWxlTWFwID0gbmV3IEhhc2h0YWJsZShtZW51RGF0YS5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciA9IG5ldyBFdmVudExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCkgeworICAgICAgICAgICAgICAgIGhhbmRsZVZhbHVlU2VsZWN0ZWQoZkl0ZW1Ub1N0eWxlTWFwLmdldChldmVudC5nZXRTb3VyY2UoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbWVudURhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZJdGVtc1tpXSA9IE1JdGVtLmNyZWF0ZUNoZWNrYm94SXRlbShtZW51RGF0YVtpXSk7CisgICAgICAgICAgICBpZiAodmFsdWVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmSXRlbVRvU3R5bGVNYXAucHV0KGZJdGVtc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZJdGVtc1tpXS5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgICAgICBmSXRlbXNbaV0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgaGFuZGxlVmFsdWVTZWxlY3RlZChPYmplY3QgaXRlbSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IE9iamVjdCBnZXRDdXJyZW50VmFsdWUoKTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRDaGVja2VkKCkgeworICAgICAgICAKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCBpdGVtVmFsID0gZkl0ZW1Ub1N0eWxlTWFwLmdldChmSXRlbXNbaV0pOworICAgICAgICAgICAgaWYgKGl0ZW1WYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRTdGF0ZSh2YWx1ZSA9PSBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRTdGF0ZShpdGVtVmFsLmVxdWFscyh2YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQ29tbWFuZE1lbnVJdGVtLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQ29tbWFuZE1lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg2ZDcwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Db21tYW5kTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDE5MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIENvbW1hbmRNZW51SXRlbSBleHRlbmRzIE1lbnVJdGVtU2V0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgLypmaW5hbCovIE1JdGVtIGZJdGVtOworICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIGlzRW5hYmxlZCgpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHBlcmZvcm1BY3Rpb24oKTsKKworICAgIHByb3RlY3RlZCBDb21tYW5kTWVudUl0ZW0oTWVudURhdGEgZGF0YSkgeworICAgICAgICAKKyAgICAgICAgdGhpcyhkYXRhLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBDb21tYW5kTWVudUl0ZW0oTWVudURhdGEgZGF0YSwgYm9vbGVhbiBlbmFibGVCeURlZmF1bHQpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtID0gTUl0ZW0uY3JlYXRlSXRlbShkYXRhKTsKKyAgICAgICAgZkl0ZW0uYWRkTGlzdGVuZXIobmV3IEV2ZW50TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudE9jY3VycmVkKEV2ZW50T2JqZWN0IGV2ZW50KSB7CisgICAgICAgICAgICAgICAgcGVyZm9ybUFjdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChlbmFibGVCeURlZmF1bHQpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoaXNFbmFibGVkKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisgICAgICAgIAorICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGlzRW5hYmxlZCgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBDdXRDb3B5Q2xlYXIgZXh0ZW5kcyBDb21tYW5kTWVudUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VUID0gMDsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09QWSA9IDE7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMRUFSID0gMjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBmS2luZDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDdXRDb3B5Q2xlYXIoTWVudURhdGEgbWVudURhdGEsIGludCBraW5kKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgICAgIGlmIChraW5kICE9IENVVCAmJiBraW5kICE9IENPUFkgJiYga2luZCAhPSBDTEVBUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbWVudSBraW5kIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmS2luZCA9IGtpbmQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzRW5hYmxlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICAgICAgcmV0dXJuIHBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZktpbmQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENVVDoKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwuY3V0KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ09QWToKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwuY29weSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENMRUFSOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFVuZG9SZWRvIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBVTkRPID0gdHJ1ZTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFJFRE8gPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBmS2luZDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmRvUmVkbyhNZW51RGF0YSBtZW51RGF0YSwgYm9vbGVhbiBraW5kKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgICAgIGZLaW5kID0ga2luZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICBpZiAoZktpbmQgPT0gVU5ETykgeworICAgICAgICAgICAgICAgIHJldHVybiBwYW5lbC5jYW5VbmRvKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFuZWwuY2FuUmVkbygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQ7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICBpZiAoZktpbmQgPT0gVU5ETykgeworICAgICAgICAgICAgICAgIHBhbmVsLnVuZG8oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHBhbmVsLnJlZG8oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFzdGUgZXh0ZW5kcyBDb21tYW5kTWVudUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHVibGljIFBhc3RlKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZ2V0VGV4dFBhbmVsKCkuY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQ7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBnZXRUZXh0UGFuZWwoKS5wYXN0ZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBTZWxlY3RBbGwgZXh0ZW5kcyBDb21tYW5kTWVudUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHVibGljIFNlbGVjdEFsbChNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlcihtZW51RGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzRW5hYmxlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdldFRleHRQYW5lbCgpLnNlbGVjdEFsbCgpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0RpYWxvZ0l0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9EaWFsb2dJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzRkOGViZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9EaWFsb2dJdGVtLmphdmEKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC5XaW5kb3c7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgZmluYWwgY2xhc3MgRGlhbG9nSXRlbSBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIERpYWxvZ0ZhY3RvcnkgeworICAgICAgICAKKyAgICAgICAgcHVibGljIGFic3RyYWN0IFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIERpYWxvZ0ZhY3RvcnkgZkRpYWxvZ0ZhY3Rvcnk7CisgICAgcHJpdmF0ZSBXaW5kb3cgZkRpYWxvZyA9IG51bGw7CisgICAgCisgICAgcHVibGljIERpYWxvZ0l0ZW0oTWVudURhdGEgbWVudURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nRmFjdG9yeSBkaWFsb2dGYWN0b3J5KSB7CisgICAgICAgIAorICAgICAgICBzdXBlcihtZW51RGF0YSwgdHJ1ZSk7CisgICAgICAgIGZEaWFsb2dGYWN0b3J5ID0gZGlhbG9nRmFjdG9yeTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICAgICAgLy8gZG8gbm90aGluZworICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgIC8vIHNob3VsZCBuZXZlciBnZXQgY2FsbGVkLi4uCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKworICAgICAgICBpZiAoZkRpYWxvZyA9PSBudWxsKSB7CisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICBpZiAocGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZEaWFsb2cgPSBmRGlhbG9nRmFjdG9yeS5jcmVhdGVEaWFsb2cocGFuZWwpOworICAgICAgICAgICAgICAgIGZEaWFsb2cuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NlZChXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmRGlhbG9nID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZEaWFsb2cuc2hvdygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0V2ZW50TGlzdGVuZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMjZjZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0V2ZW50TGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworcHVibGljIGludGVyZmFjZSBFdmVudExpc3RlbmVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Gb250TGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTY4MGZiZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Gb250TGlzdC5qYXZhCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzRW52aXJvbm1lbnQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitmaW5hbCBjbGFzcyBGb250TGlzdCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gc3RyaXBUaGVzZSA9IHsKKyAgICAgICAgIi5ib2xkIiwgIi5ib2xkaXRhbGljIiwgIi5pdGFsaWMiCisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0Rm9udExpc3QoKSB7CisKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBHcmFwaGljc0Vudmlyb25tZW50LmdldExvY2FsR3JhcGhpY3NFbnZpcm9ubWVudCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBdmFpbGFibGVGb250RmFtaWx5TmFtZXMoKTsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKG5hbWVzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQobmFtZXNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydCh2KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxhc3QgPSAiIjsKKyAgICAgICAgCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2Lmxpc3RJdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBjdXJyZW50ID0gKFN0cmluZykgaXRlci5uZXh0KCk7CisgICAgICAgICAgICB0ZXN0U3VmZml4ZXM6IGZvciAoaW50IGk9MDsgaSA8IHN0cmlwVGhlc2UubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5lbmRzV2l0aChzdHJpcFRoZXNlW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYmFzZUxlbiA9IGN1cnJlbnQubGVuZ3RoKCktc3RyaXBUaGVzZVtpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJhc2UgPSBjdXJyZW50LnN1YnN0cmluZygwLCBiYXNlTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2UuZXF1YWxzSWdub3JlQ2FzZShsYXN0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBsYXN0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgdGVzdFN1ZmZpeGVzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbdi5zaXplKCldOworICAgICAgICB2LmNvcHlJbnRvKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0tleW1hcE1lbnVJdGVtU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWY5ZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0tleW1hcE1lbnVJdGVtU2V0LmphdmEKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5LZXlSZW1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGZpbmFsIGNsYXNzIEtleW1hcE1lbnVJdGVtU2V0IGV4dGVuZHMgQ2hvaWNlTWVudUl0ZW1TZXQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgS2V5bWFwTWVudUl0ZW1TZXQoS2V5UmVtYXBbXSB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhW10gbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKHZhbHVlcywgbWVudURhdGEpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRleHRQYW5lbC5zZXRLZXlSZW1hcCgoS2V5UmVtYXApIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIE9iamVjdCBnZXRDdXJyZW50VmFsdWUoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkbid0IGNhbGwgdGhpcyB3aXRob3V0IGEgdGV4dCBwYW5lbCEiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dFBhbmVsLmdldEtleVJlbWFwKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisgICAgICAgIAorICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LktFWVJFTUFQX0NIQU5HRUQ7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NSXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5MGEwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTUl0ZW0uamF2YQpAQCAtMCwwICsxLDg1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUl0ZW0geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFZlY3RvciBmTGlzdGVuZXJzID0gbmV3IFZlY3RvcigyKTsKKyAgICBwcml2YXRlIEV2ZW50T2JqZWN0IGZFdmVudCA9IG5ldyBFdmVudE9iamVjdCh0aGlzKTsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0U3RhdGUoYm9vbGVhbiBjaGVja2VkKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGRMaXN0ZW5lcihFdmVudExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXJzLmFkZEVsZW1lbnQobGlzdGVuZXIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZW1vdmVMaXN0ZW5lcihFdmVudExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXJzLnJlbW92ZUVsZW1lbnQobGlzdGVuZXIpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTZWxlY3RlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVuZ3RoID0gZkxpc3RlbmVycy5zaXplKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBFdmVudExpc3RlbmVyIGwgPSAoRXZlbnRMaXN0ZW5lcikgZkxpc3RlbmVycy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBsLmV2ZW50T2NjdXJyZWQoZkV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBmYWN0b3J5IHN0dWZmCisgICAgCisgICAgLyoqCisgICAgICogQ2xpZW50cyBzaG91bGQgc3luY2hyb25pemUgb24gTE9DSyB3aGlsZSBzZXR0aW5nIGFuZCB1c2luZworICAgICAqIGdsb2JhbCBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IExPQ0sgPSBuZXcgT2JqZWN0KCk7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSXRlbUZhY3RvcnkgeworICAgICAgICAKKyAgICAgICAgcHVibGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpOworICAgICAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKTsKKyAgICAgICAgcHVibGljIHZvaWQgY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIEl0ZW1GYWN0b3J5IGZnRmFjdG9yeTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmZ0ZhY3RvcnkuY3JlYXRlSXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmdGYWN0b3J5LmNyZWF0ZUNoZWNrYm94SXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRJdGVtRmFjdG9yeShJdGVtRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIAorICAgICAgICBmZ0ZhY3RvcnkgPSBmYWN0b3J5OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIEl0ZW1GYWN0b3J5IGdldEl0ZW1GYWN0b3J5KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZnRmFjdG9yeTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxYjVjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKKworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5UmVtYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuRGlhbG9nSXRlbS5EaWFsb2dGYWN0b3J5OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVudUJ1aWxkZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFRElUID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSVpFID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRSA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0ggPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWU1BUCA9IDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESSA9IDU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJPVVQgPSA2OworICAgIAorICAgIHByaXZhdGUgQ29sb3JbXSBjb2xvcnMgPSB7IENvbG9yLmJsYWNrLCBDb2xvci53aGl0ZSwgQ29sb3IuZ3JlZW4sIENvbG9yLmJsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmN5YW4sIENvbG9yLmdyYXksIENvbG9yLmRhcmtHcmF5LCBDb2xvci5saWdodEdyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLm1hZ2VudGEsIENvbG9yLm9yYW5nZSwgQ29sb3IucGluaywgQ29sb3IucmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvci55ZWxsb3csIG51bGwgfTsKKyAgICBwcml2YXRlIFN0cmluZ1tdIGNvbG9yTmFtZXMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkJMQUNLKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuV0hJVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5HUkVFTiksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkJMVUUpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DWUFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkRBUktfR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkxJR0hUX0dSQVkpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5NQUdFTlRBKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT1JBTkdFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuUElOSyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlJFRCksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLllFTExPVyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk5PTkUpCisgICAgfTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgaW50W10gZGVmYXVsdE1lbnVzID0geyBFRElULCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUWUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZMVVNILCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLRVlNQVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklESSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQk9VVCB9OworCisgICAgcHJvdGVjdGVkIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcm90ZWN0ZWQgRnJhbWUgZkRpYWxvZ1BhcmVudDsKKworICAgIHByb3RlY3RlZCBNZW51QnVpbGRlcigpIHsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgZG9DcmVhdGVNZW51cyhNVGV4dFBhbmVsIHRleHRQYW5lbCwgRnJhbWUgZnJhbWUsIGludFtdIG1lbnVzKSB7CisgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZEaWFsb2dQYXJlbnQgPSBmcmFtZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG1lbnVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzd2l0Y2gobWVudXNbaV0pIHsKKyAgICAgICAgICAgICAgICBjYXNlIEVESVQ6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUVkaXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0laRToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2l6ZU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTVFlMRToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlU3R5bGVNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRkxVU0g6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZsdXNoTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEtFWU1BUDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlS2V5bWFwTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEJJREk6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUJpZGlNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQUJPVVQ6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUFib3V0TWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIG1lbnU6ICIgKyBtZW51c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBudWxsOworICAgICAgICBmRGlhbG9nUGFyZW50ID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSB2YWx1ZXMpOworCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IERpYWxvZ0ZhY3RvcnkgY3JlYXRlTnVtYmVyRGlhbG9nRmFjdG9yeShTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3Rlcik7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKTsKKworICAgIHByaXZhdGUgdm9pZCBjcmVhdGVFZGl0TWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuRURJVCk7CisgICAgICAgIAorICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlVuZG9SZWRvKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVU5ETyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8uVU5ETykuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlVuZG9SZWRvKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUkVETyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8uUkVETykuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBNSXRlbS5nZXRJdGVtRmFjdG9yeSgpLmNyZWF0ZVNlcGFyYXRvcigpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNVVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhci5DVVQpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIoUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5DT1BZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNPUFkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5QYXN0ZShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlBBU1RFKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNMRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNMRUFSKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIE1JdGVtLmdldEl0ZW1GYWN0b3J5KCkuY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uU2VsZWN0QWxsKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuU0VMRUNUX0FMTCkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXRbXSBERUZBVUxUX1NJWkVTID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs5LCAxMCwgMTIsIDE0LCAxOCwgMjQsIDM2LCA0OCwgNzJ9OworCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVNpemVNZW51KCkgeworICAgICAgICAKKyAgICAgICAgY3JlYXRlU2l6ZU1lbnUoREVGQVVMVF9TSVpFUyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVTaXplTWVudShmbG9hdFtdIHNpemVzKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuU0laRSk7CisKKyAgICAgICAgaWYgKHNpemVzICE9IERFRkFVTFRfU0laRVMpIHsKKworICAgICAgICAgICAgc2l6ZXMgPSAoZmxvYXRbXSkgc2l6ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChzaXplcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInNpemVzIGFycmF5IGhhcyB6ZXJvIGxlbmd0aCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmbG9hdCBsYXN0VmFsdWUgPSBzaXplc1swXTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNpemVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHNpemVzW2ldID49IGxhc3RWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpemVzIGFycmF5IG11c3QgYmUgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSBzaXplc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRmxvYXRbXSB2YWx1ZXMgPSBuZXcgRmxvYXRbc2l6ZXMubGVuZ3RoXTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IG5ldyBNZW51RGF0YVtzaXplcy5sZW5ndGhdOworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzaXplcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gbmV3IEZsb2F0KHNpemVzW2ldKTsKKyAgICAgICAgICAgIG1EYXRhW2ldID0gbmV3IE1lbnVEYXRhKGZtdC5mb3JtYXQoc2l6ZXNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFN0eWxlTWVudUl0ZW1TZXQoVGV4dEF0dHJpYnV0ZS5TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoZkRpYWxvZ1BhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9TSVpFX1RJVExFKTsKKyAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0ID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfU0laRV9MQUJFTCk7CisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGZhY3RvcnkgPSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbmV3IERpYWxvZ0l0ZW0oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5PVEhFUl9ESUFMT0cpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3J5KS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVN0eWxlTWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuU1RZTEUpOworCisgICAgICAgIE9iamVjdFtdIGtleXMgPSAgICB7IFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlBPU1RVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFR9OworICAgICAgICBPYmplY3RbXSB2YWx1ZXMgPSAgeyBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSF9PTiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMSl9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkJPTEQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLklUQUxJQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVU5ERVJMSU5FKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TVFJJS0VUSFJPVUdIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TVVBFUlNDUklQVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuU1VCU0NSSVBUKX07CisKKyAgICAgICAgbmV3IFN1YnRyYWN0U3R5bGVNZW51SXRlbShrZXlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUExBSU4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG5ldyBCb29sZWFuU3R5bGVNZW51SXRlbShrZXlzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChmRGlhbG9nUGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTUl0ZW0uZ2V0SXRlbUZhY3RvcnkoKS5jcmVhdGVTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gZm9udHMgPSBGb250TGlzdC5nZXRGb250TGlzdCgpOworICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9OVF9USVRMRSk7CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9GT05UX0xBQkVMKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRGlhbG9nRmFjdG9yeSBmb250RiA9IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkodGl0bGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZBTUlMWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTWVudUl0ZW1TZXQuQ0hBUkFDVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250cyk7CisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkZPTlRfRElBTE9HKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgZm9yZWdyb3VuZEYgPSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkodHJ1ZSk7CisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGJhY2tncm91bmRGID0gY3JlYXRlQ29sb3JEaWFsb2dGYWN0b3J5KGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmV3IERpYWxvZ0l0ZW0oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5GT1JFQ09MT1JfRElBTE9HKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmRGKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkJBQ0tDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIERpYWxvZ0ZhY3RvcnkgY3JlYXRlQ29sb3JEaWFsb2dGYWN0b3J5KGJvb2xlYW4gZm9yZWdyb3VuZCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRpdGxlOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgT2JqZWN0IGtleTsKKyAgICAgICAgCisgICAgICAgIGlmIChmb3JlZ3JvdW5kKSB7CisgICAgICAgICAgICB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0ZPUkVHUk9VTkRfVElUTEUpOworICAgICAgICAgICAgbWVzc2FnZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0ZPUkVHUk9VTkRfTEFCRUwpOworICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5EOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9CQUNLR1JPVU5EX1RJVExFKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9CQUNLR1JPVU5EX0xBQkVMKTsKKyAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuQkFDS0dST1VORDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeSh0aXRsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNZW51SXRlbVNldC5DSEFSQUNURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yTmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9ycyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVGb250TWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuRk9OVCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBmb250cyA9IEZvbnRMaXN0LmdldEZvbnRMaXN0KCk7CisgICAgICAgIE1lbnVEYXRhW10gbURhdGEgPSBuZXcgTWVudURhdGFbZm9udHMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbURhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG1EYXRhW2ldID0gbmV3IE1lbnVEYXRhKGZvbnRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFN0eWxlTWVudUl0ZW1TZXQoVGV4dEF0dHJpYnV0ZS5GQU1JTFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUZsdXNoTWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuRkxVU0gpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzID0geyAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX0NFTlRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9UUkFJTElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GVUxMWV9KVVNUSUZJRUQgfTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IHsgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5MRUFESU5HKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5DRU5URVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlRSQUlMSU5HKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5KVVNUSUZJRUQpIH07CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LlBBUkFHUkFQSCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlS2V5bWFwTWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuS0VZTUFQKTsKKyAgICAgICAgCisgICAgICAgIEtleVJlbWFwW10gdmFsdWVzID0geyBLZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVJlbWFwLmdldEFyYWJpY1RyYW5zbGl0ZXJhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRIZWJyZXdUcmFuc2xpdGVyYXRpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAuZ2V0SXNyYWVsTmlrdWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAuZ2V0VGhhaUtldG1hbmVlKCkgfTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IHsgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5ERUZBVUxUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5BUkFCSUMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkhFQlJFVyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSVNSQUVMX05JS1VEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5USEFJX0tFVE1BTkVFKSB9OworICAgICAgICAKKyAgICAgICAgbmV3IEtleW1hcE1lbnVJdGVtU2V0KHZhbHVlcywgbURhdGEpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUJpZGlNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5CSURJKTsKKyAgICAgICAgCisgICAgICAgIE9iamVjdFtdIHZhbHVlcyA9IHsgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9MVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEwgfTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IHsgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5ERUZBVUxUX0RJUkVDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuTFRSX0RJUkVDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUlRMX0RJUkVDVElPTiksIH07CisKKyAgICAgICAgbmV3IFN0eWxlTWVudUl0ZW1TZXQoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5QQVJBR1JBUEgpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUFib3V0TWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuQUJPVVRfTUVOVSk7CisgICAgICAgIAorICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkFCT1VUX0lURU0pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlQWJvdXREaWFsb2dGYWN0b3J5KCkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiYTEzODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDUxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsTGlzdGVuZXI7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNZW51SXRlbVNldCBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBDSEFSQUNURVIgPSB0cnVlOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBQQVJBR1JBUEggPSBmYWxzZTsKKworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCk7CisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSk7CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0VGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICB9CisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRleHRQYW5lbENoYW5nZWQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIE1UZXh0UGFuZWwgZ2V0VGV4dFBhbmVsKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9SZXNvdXJjZVV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJiMGU1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9SZXNvdXJjZVV0aWxzLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBjbGFzcyBSZXNvdXJjZVV0aWxzIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIEJVTkRMRTsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQlVORExFID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkIHJlc291cmNlWFhYLiAgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgQlVORExFID0gbmV3IEZyYW1lUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIE1lbnVEYXRhIGdldE1lbnVEYXRhKFN0cmluZyBrZXkpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiAoTWVudURhdGEpIEJVTkRMRS5nZXRPYmplY3Qoa2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0UmVzb3VyY2VTdHJpbmcoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIEJVTkRMRS5nZXRTdHJpbmcoa2V5KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TaW5nbGVDaGVja01lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGE2NzdmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TaW5nbGVDaGVja01lbnVJdGVtLmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFNpbmdsZUNoZWNrTWVudUl0ZW0gZXh0ZW5kcyBNZW51SXRlbVNldCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcm90ZWN0ZWQgTUl0ZW0gZkl0ZW07CisgICAgCisgICAgU2luZ2xlQ2hlY2tNZW51SXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgZkl0ZW0gPSBNSXRlbS5jcmVhdGVDaGVja2JveEl0ZW0obWVudURhdGEpOworICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCB2b2lkIHNldENoZWNrZWQoKTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIGZJdGVtLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3R5bGVNZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N0eWxlTWVudUl0ZW1TZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NzZiMmE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N0eWxlTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDg4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgZmluYWwgY2xhc3MgU3R5bGVNZW51SXRlbVNldCBleHRlbmRzIENob2ljZU1lbnVJdGVtU2V0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKworICAgIHB1YmxpYyBTdHlsZU1lbnVJdGVtU2V0KE9iamVjdCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGFbXSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodmFsdWVzLCBtZW51RGF0YSk7CisgICAgICAgIGZLZXkgPSBzdHlsZTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVmFsdWVTZWxlY3RlZChPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGl0ZW0gaXMgZW5hYmxlZCB3aGVuIHBhbmVsIGlzIG51bGwhIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXI7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0ID0gbmV3IEF0dHJpYnV0ZVNldChmS2V5KTsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICB0ZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIE9iamVjdCBnZXRDdXJyZW50VmFsdWUoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkbid0IGNhbGwgdGhpcyB3aXRob3V0IGEgdGV4dCBwYW5lbCEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dFBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3VidHJhY3RTdHlsZU1lbnVJdGVtLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3VidHJhY3RTdHlsZU1lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjhhZjA4NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdWJ0cmFjdFN0eWxlTWVudUl0ZW0gZXh0ZW5kcyBTaW5nbGVDaGVja01lbnVJdGVtIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXSBmS2V5czsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICAKKyAgICBwdWJsaWMgU3VidHJhY3RTdHlsZU1lbnVJdGVtKE9iamVjdFtdIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcihtZW51RGF0YSk7CisgICAgICAgIAorICAgICAgICBmS2V5cyA9IChPYmplY3RbXSkga2V5cy5jbG9uZSgpOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgQXR0cmlidXRlU2V0IGtleVNldCA9IG5ldyBBdHRyaWJ1dGVTZXQoa2V5cyk7CisgICAgICAgIGZpbmFsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKGtleVNldCk7CisgICAgICAgIAorICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGl0ZW0gaXMgZW5hYmxlZCB3aGVuIHBhbmVsIGlzIG51bGwhIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBvYmplY3RzQXJlRXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgIAorICAgICAgICBpZiAobGhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiByaHMgPT0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBsaHMuZXF1YWxzKHJocyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRDaGVja2VkKCkgeworCisgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRzID0gcGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZktleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCBkZWZhdWx0ViA9IGRlZmF1bHRzLmdldChmS2V5c1tpXSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IChmQ2hhcmFjdGVyID09IENIQVJBQ1RFUik/IAorICAgICAgICAgICAgICAgICAgICBwYW5lbC5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oZktleXNbaV0pIDoKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXlzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIW9iamVjdHNBcmVFcXVhbChkZWZhdWx0ViwgdmFsdWUpKSB7CisgICAgICAgICAgICAgICAgZkl0ZW0uc2V0U3RhdGUoZmFsc2UpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZJdGVtLnNldFN0YXRlKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvVGFiUnVsZXJJbXBsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvVGFiUnVsZXJJbXBsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjI4NmE3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YQpAQCAtMCwwICsxLDkwMyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZvbnRNZXRyaWNzOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LkltYWdlOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VNb3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0YW5kYXJkVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlRhYlN0b3A7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKKworLyoqCisgKiBUYWJSdWxlciBpcyBhIENvbXBvbmVudCB3aGljaCBwcmVzZW50cyBhIHVzZXIgaW50ZXJmYWNlIGZvcgorICogc2V0dGluZyB0aGUgbGVhZGluZyBtYXJnaW4sIHRyYWlsaW5nIG1hcmdpbiwgZmlyc3QgbGluZSBpbmRlbnQsCisgKiBhbmQgdGFiIHR5cGVzIGFuZCBwb3NpdGlvbnMuCisgKiA8cD4KKyAqIFRhYlJ1bGVyIGRvZXMgbm90IGltcGxlbWVudCBUZXh0UGFuZWxMaXN0ZW5lciBkaXJlY3RseTsgIGhvd2V2ZXIsCisgKiBpdCBjYW4gcmVjZWl2ZSB1cGRhdGVzIGZyb20gYSBNVGV4dFBhbmVsLiAgVG8gaGF2ZSBhIFRhYlJ1bGVyIGxpc3RlbgorICogdG8gYSBwYW5lbCwgY2FsbCA8Y29kZT5saXN0ZW5Ub1BhbmVsPC9jb2RlPi4gIFRhYlJ1bGVyIHJlc3BvbmRzIHRvCisgKiB1c2VyIG1hbmlwdWxhdGlvbiBieSBtb2RpZnlpbmcgdGhlIHBhcmFncmFwaCBzdHlsZXMgb24gaXRzIE1UZXh0UGFuZWwKKyAqIChpZiBhbnkpLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGFiUnVsZXJJbXBsIGltcGxlbWVudHMgTW91c2VMaXN0ZW5lciwgTW91c2VNb3Rpb25MaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGFiU3RvcEJ1ZmZlciB7CisgICAgICAgIHB1YmxpYyBpbnQgZlBvc2l0aW9uOworICAgICAgICBwdWJsaWMgYnl0ZSBmVHlwZTsKKworICAgICAgICBUYWJTdG9wQnVmZmVyKGludCBwb3NpdGlvbiwgYnl0ZSB0eXBlKSB7CisgICAgICAgICAgICBmUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgICAgIGZUeXBlID0gdHlwZTsKKyAgICAgICAgfQorCisgICAgICAgIFRhYlN0b3BCdWZmZXIoVGFiU3RvcCB0YWIpIHsKKyAgICAgICAgICAgIHRoaXModGFiLmdldFBvc2l0aW9uKCksIHRhYi5nZXRUeXBlKCkpOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcCBnZXRUYWJTdG9wKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJTdG9wKGZQb3NpdGlvbiwgZlR5cGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGFiUnVsZXJNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgVGFiU3RvcCBmT2xkVGFiOyAvLyB0YWIgdG8gcmVtb3ZlCisgICAgICAgIHByaXZhdGUgVGFiU3RvcCBmTmV3VGFiOyAvLyB0YWIgdG8gYWRkCisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZQYW5lbERlZmF1bHRzOworICAgICAgICAKKyAgICAgICAgVGFiUnVsZXJNb2RpZmllcihUYWJTdG9wIG9sZFRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBUYWJTdG9wIG5ld1RhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcGFuZWxEZWZhdWx0cykgeworICAgICAgICAgICAgZk9sZFRhYiA9IG9sZFRhYjsKKyAgICAgICAgICAgIGZOZXdUYWIgPSBuZXdUYWI7CisgICAgICAgICAgICBmUGFuZWxEZWZhdWx0cyA9IHBhbmVsRGVmYXVsdHM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBvbGRTdHlsZSkgeworCisgICAgICAgICAgICBNVGFiUnVsZXIgb2xkUnVsZXIgPSAoTVRhYlJ1bGVyKSBnZXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTdHlsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUGFuZWxEZWZhdWx0cyk7CisgICAgICAgICAgICBNVGFiUnVsZXIgcnVsZXIgPSBvbGRSdWxlcjsKKworICAgICAgICAgICAgaWYgKGZPbGRUYWIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChydWxlci5jb250YWluc1RhYihmT2xkVGFiKSkgeworICAgICAgICAgICAgICAgICAgICBydWxlciA9IHJ1bGVyLnJlbW92ZVRhYihmT2xkVGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmTmV3VGFiICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBydWxlciA9IHJ1bGVyLmFkZFRhYihmTmV3VGFiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1bGVyICE9IG9sZFJ1bGVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZFN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgcnVsZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZFN0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSW1hZ2VDYWNoZSB7CisKKyAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgICAgIHByaXZhdGUgSW1hZ2UgZkltYWdlID0gbnVsbDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZJc1ZhbGlkID0gZmFsc2U7CisgICAgICAgIHByaXZhdGUgQ29tcG9uZW50IGZDb21wb25lbnQ7ICAgLy8gd29ya2Fyb3VuZCBmb3IgY29tcGlsZXIgYnVnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQganVzdCBiZSBhYmxlIHRvIHNheSBDb21wb25lbnQudGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgd2VyZSBub3QgYSBzdGF0aWMgY2xhc3MKKyAgICAgICAgCisgICAgICAgIEltYWdlQ2FjaGUoQ29tcG9uZW50IGNvbXBvbmVudCkgeworICAgICAgICAKKyAgICAgICAgICAgIGZDb21wb25lbnQgPSBjb21wb25lbnQ7CisgICAgICAgIH0KKworICAgICAgICBHcmFwaGljcyBnZXRHcmFwaGljcyhpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKworICAgICAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW1hZ2UgaW1hZ2UgPSBmSW1hZ2U7CisgICAgICAgICAgICBpZiAoaW1hZ2UgPT0gbnVsbCB8fCBpbWFnZS5nZXRXaWR0aChmQ29tcG9uZW50KSA8IHdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBpbWFnZS5nZXRIZWlnaHQoZkNvbXBvbmVudCkgPCBoZWlnaHQpIHsKKyAgICAgICAgaWYgKCFmQ29tcG9uZW50LmlzVmlzaWJsZSgpKSB7IC8vIGZpeCByYWNlIGNvbmRpdGlvbiBpZiBjb21wb25lbnQgbm90IGZ1bGx5IGluaXRpYWxpemVkCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIGltYWdlID0gZkNvbXBvbmVudC5jcmVhdGVJbWFnZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEdyYXBoaWNzIGcgPSBpbWFnZS5nZXRHcmFwaGljcygpOworICAgICAgICAgICAgZkltYWdlID0gaW1hZ2U7CisgICAgICAgICAgICByZXR1cm4gZzsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSwgQ29sb3IgY29sb3IpIHsKKworICAgICAgICAgICAgaWYgKCFmSXNWYWxpZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRHJhd2luZyBpbWFnZSB3aGVuIG5vdCB2YWxpZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZy5kcmF3SW1hZ2UoZkltYWdlLCB4LCB5LCBjb2xvciwgZkNvbXBvbmVudCk7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzVmFsaWQoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmSXNWYWxpZDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0VmFsaWQoYm9vbGVhbiBpc1ZhbGlkKSB7CisKKyAgICAgICAgICAgIGZJc1ZhbGlkID0gaXNWYWxpZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGhpcyBjbGFzcyBsaXN0ZW5zIHRvIGEgTVRleHRQYW5lbCBmb3IgY2hhbmdlcyB3aGljaAorICAgICogYWZmZWN0IGEgVGFiUnVsZXIncyBhcHBlYXJhbmNlLCBhbmQgdXBkYXRlcyB0aGUgVGFiUnVsZXIKKyAgICAqIGFzIG5lY2Vzc2FyeS4KKyAgICAqIEBzZWUgVGFiUnVsZXIKKyAgICAqIEBzZWUgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVXBkYXRlciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKworICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBUYWJSdWxlckltcGwgZlRhYlJ1bGVyOworICAgICAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXJVcGRhdGVyLgorICAgICAgICAqIEBwYXJhbSB0YWJSdWxlciB0aGUgVGFiUnVsZXIgdG8gdXBkYXRlIHdoZW4gYSBjaGFuZ2Ugb2NjdXJzCisgICAgICAgICogICAgIGluIHRoZSBNVGV4dFBhbmVsCisgICAgICAgICovCisgICAgICAgIFVwZGF0ZXIoVGFiUnVsZXJJbXBsIHRhYlJ1bGVyKSB7CisKKyAgICAgICAgICAgIGZUYWJSdWxlciA9IHRhYlJ1bGVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogUmVtb3ZlIHNlbGYgYXMgbGlzdGVuZXIgZnJvbSBwcmV2aW91cyBNVGV4dFBhbmVsLAorICAgICAgICAqIHNldCBjdXJyZW50IE1UZXh0UGFuZWwgYW5kIGxpc3RlbiB0byBpdCAoaWYgbm90IG51bGwpLgorICAgICAgICAqLworICAgICAgICB2b2lkIHNldFRleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAgICAgc2V0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0QWxsKCkgeworCisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgYm9vbGVhbiBsZWZ0VG9SaWdodCA9IGZUZXh0UGFuZWwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHRQYW5lbC5nZXRUZXh0KCkucGFyYWdyYXBoU3R5bGVBdChvZmZzZXQpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldChzdHlsZSwgZmFsc2UpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldEZvcm1hdFdpZHRoKGZUZXh0UGFuZWwuZ2V0Rm9ybWF0V2lkdGgoKSwgZmFsc2UpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldExlZnRUb1JpZ2h0KGxlZnRUb1JpZ2h0LCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIFRleHRQYW5lbExpc3RlbmVyIG1ldGhvZC4gIFRoaXMgY2xhc3MgcmVzcG9uZHMgdG8gdGV4dAorICAgICAgICAqIGNoYW5nZXMgYnkgdXBkYXRpbmcgaXRzIFRhYlJ1bGVyLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworCisgICAgICAgICAgICBpbnQgY2hhbmdlQ29kZSA9IGV2ZW50LmdldElEKCk7CisKKyAgICAgICAgICAgIGlmIChjaGFuZ2VDb2RlID09IFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCB8fAorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VDb2RlID09IFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCkgeworCisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmVGV4dFBhbmVsLmdldFRleHQoKS5wYXJhZ3JhcGhTdHlsZUF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBsZWZ0VG9SaWdodCA9IGZUZXh0UGFuZWwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXQoc3R5bGUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmVGFiUnVsZXIuc2V0TGVmdFRvUmlnaHQobGVmdFRvUmlnaHQsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2hhbmdlQ29kZSA9PSBUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXRGb3JtYXRXaWR0aChmVGV4dFBhbmVsLmdldEZvcm1hdFdpZHRoKCksIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBUZXh0UGFuZWxMaXN0ZW5lciBtZXRob2QuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBUYWJSdWxlcnMuCisgICAgICogQHNlZSAjc2V0QmFja0NvbG9yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xvciBERUZBVUxUX0JBQ0tfQ09MT1IgPSBDb2xvci5saWdodEdyYXk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrTm9uZSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtUcmFja1RhYiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtUcmFja0xNID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrRkxJID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrVE0gPSA0OworCisgICAgcHJpdmF0ZSBDb21wb25lbnQgZkhvc3Q7CisgICAgcHJpdmF0ZSBNVGFiUnVsZXIgZlJ1bGVyOworICAgIHByaXZhdGUgaW50IGZMZWFkaW5nTWFyZ2luOworICAgIHByaXZhdGUgaW50IGZGaXJzdExpbmVJbmRlbnQ7CisgICAgcHJpdmF0ZSBpbnQgZkZvcm1hdFdpZHRoOworICAgIHByaXZhdGUgaW50IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uOyAvLyBvcHBvc2l0ZSBvZiBhY3R1YWwgdHJhaWxpbmcgbWFyZ2luCisgICAgcHJpdmF0ZSBib29sZWFuIGZMZWZ0VG9SaWdodDsKKyAgICBwcml2YXRlIGludCBmQmFzZWxpbmU7CisgICAgcHJpdmF0ZSBpbnQgZk9yaWdpbjsKKyAgICBwcml2YXRlIENvbG9yIGZCYWNrQ29sb3IgPSBERUZBVUxUX0JBQ0tfQ09MT1I7CisKKyAgICBwcml2YXRlIGludCBmVHJhY2tJdGVtOyAvLyAwIC0gbm9uZSwgMSAtIHRhYiwgMiAtIGxtLCAzIC0gZmxpLCA0IC0gdG0KKyAgICBwcml2YXRlIFRhYlN0b3BCdWZmZXIgZlRyYWNrVGFiOworICAgIHByaXZhdGUgVGFiU3RvcCBmT2xkVGFiOworICAgIHByaXZhdGUgaW50IGZUcmFja0RlbHRhOworICAgIHByaXZhdGUgYm9vbGVhbiBmVHJhY2tWaXNpYmxlOworICAgIHByaXZhdGUgVXBkYXRlciBmVXBkYXRlcjsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbCA9IG51bGw7CisKKyAgICBwcml2YXRlIEltYWdlQ2FjaGUgZkltYWdlQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhc2VsaW5lIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJ1bGVyJ3MgYmFzZWxpbmUKKyAgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB4LWNvb3JkaW5hdGUgaW4gdGhpcyBDb21wb25lbnQgd2hlcmUKKyAgICAgKiAgICAgdGhlIGxlZnQgbWFyZ2luIGFwcGVhcnMKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0by4gIFRoaXMgVGFiUnVsZXIKKyAgICAgKiAgICAgd2lsbCByZWZsZWN0IHRoZSBNVGV4dFBhbmVsJ3MgcGFyYWdyYXBoIHN0eWxlcywgYW5kIHVwZGF0ZQorICAgICAqICAgICB0aGUgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIG1hbmlwdWxhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBUYWJSdWxlckltcGwoaW50IGJhc2VsaW5lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcmlnaW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQgaG9zdCkgeworCisgICAgICAgIGZIb3N0ID0gaG9zdDsKKyAgICAgICAgZkltYWdlQ2FjaGUgPSBuZXcgSW1hZ2VDYWNoZShob3N0KTsKKyAgICAgICAgZlVwZGF0ZXIgPSBuZXcgVXBkYXRlcih0aGlzKTsKKyAgICAgICAgZkJhc2VsaW5lID0gYmFzZWxpbmU7CisgICAgICAgIGZPcmlnaW4gPSBvcmlnaW47CisgICAgICAgIGhvc3QuYWRkTW91c2VMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgaG9zdC5hZGRNb3VzZU1vdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBpZiAodGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmUnVsZXIgPSBuZXcgU3RhbmRhcmRUYWJSdWxlcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTGlzdGVuIHRvIHRoZSBnaXZlbiBNVGV4dFBhbmVsIGFuZCByZWZsZWN0IGl0cyBjaGFuZ2VzLAorICAgICAqIGFuZCB1cGRhdGUgaXRzIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBUYWJSdWxlciBpcworICAgICAqIG1hbmlwdWxhdGVkLgorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgbGlzdGVuVG9UZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKworICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICBmVXBkYXRlci5zZXRUZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0QmFja0NvbG9yKCkgeworCisgICAgICAgIHJldHVybiBmQmFja0NvbG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKSB7CisKKyAgICAgICAgaWYgKCFiYWNrQ29sb3IuZXF1YWxzKGZCYWNrQ29sb3IpKSB7CisgICAgICAgICAgICBmQmFja0NvbG9yID0gYmFja0NvbG9yOworICAgICAgICAgICAgR3JhcGhpY3MgZyA9IGZIb3N0LmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICBpZiAoZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFpbnQoZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3QgZ2V0V2l0aERlZmF1bHQoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gc3R5bGUuZ2V0KGtleSk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRzLmdldChrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmbG9hdCBnZXRGbG9hdFdpdGhEZWZhdWx0KE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gZ2V0V2l0aERlZmF1bHQoa2V5LCBzdHlsZSwgZGVmYXVsdHMpOworICAgICAgICByZXR1cm4gKChGbG9hdCl2YWx1ZSkuZmxvYXRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0TGVmdFRvUmlnaHQoYm9vbGVhbiBsZWZ0VG9SaWdodCwgYm9vbGVhbiB1cGRhdGUpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmTGVmdFRvUmlnaHQgIT0gbGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkxlZnRUb1JpZ2h0ID0gbGVmdFRvUmlnaHQ7CisgICAgICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0Rm9ybWF0V2lkdGgoaW50IGZvcm1hdFdpZHRoLCBib29sZWFuIHVwZGF0ZSkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZGb3JtYXRXaWR0aCAhPSBmb3JtYXRXaWR0aCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbiArPSAoZm9ybWF0V2lkdGggLSBmRm9ybWF0V2lkdGgpOworICAgICAgICAgICAgZkZvcm1hdFdpZHRoID0gZm9ybWF0V2lkdGg7CisgICAgICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IFRhYlJ1bGVyIGZyb20gdmFsdWVzIGluIHBhcmFncmFwaFN0eWxlLiAgT25seSBUYWJSdWxlclVwZGF0ZXIKKyAgICAgKiBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoU3R5bGUgdGhlIHBhcmFncmFwaCBzdHlsZSB3aGljaCB0aGUgVGFiUnVsZXIgd2lsbAorICAgICAqICAgICByZWZsZWN0CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldChBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGUsIGJvb2xlYW4gdXBkYXRlKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHBhbmVsRGVmYXVsdHM7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbD09bnVsbCkgeworICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKS5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyA9IGZUZXh0UGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IGxlYWRpbmdNYXJnaW4gPSAgKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsRGVmYXVsdHMpOworICAgICAgICBpbnQgZmlyc3RMaW5lSW5kZW50ID0gKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisgICAgICAgIGludCB0cmFpbGluZ01hcmdpbiA9IChpbnQpIGdldEZsb2F0V2l0aERlZmF1bHQoVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisKKyAgICAgICAgTVRhYlJ1bGVyIHJ1bGVyID0gKE1UYWJSdWxlcikgZ2V0V2l0aERlZmF1bHQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKworICAgICAgICBpbnQgb3VyRmxpID0gbGVhZGluZ01hcmdpbiArIGZpcnN0TGluZUluZGVudDsKKyAgICAgICAgaW50IG91clRtcCA9IGZGb3JtYXRXaWR0aCAtIHRyYWlsaW5nTWFyZ2luOworICAgICAgICAKKyAgICAgICAgaWYgKGxlYWRpbmdNYXJnaW4gPT0gZkxlYWRpbmdNYXJnaW4gJiYKKyAgICAgICAgICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID09IG91ckZsaSAmJgorICAgICAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uID09IG91clRtcCAmJgorICAgICAgICAgICAgICAgIHJ1bGVyLmVxdWFscyhmUnVsZXIpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMZWFkaW5nTWFyZ2luID0gbGVhZGluZ01hcmdpbjsKKyAgICAgICAgZkZpcnN0TGluZUluZGVudCA9IG91ckZsaTsKKyAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPSBvdXJUbXA7CisgICAgICAgIGZSdWxlciA9IHJ1bGVyOworICAgIAorICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZWRyYXdTZWxmKGJvb2xlYW4gZHJhd05vdykgeworCisgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKworICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgaWYgKGcgIT0gbnVsbCkKKyAgICAgICAgICAgIHBhaW50KGcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBkZWJ1Z2dpbmcgaW5mby4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworCisgICAgICAgIHJldHVybiAiVGFiUnVsZXJ7ZkxlYWRpbmdNYXJnaW49IitmTGVhZGluZ01hcmdpbisKKyAgICAgICAgICAgICAgICAifXtmRmlyc3RMaW5lSW5kZW50PSIrZkZpcnN0TGluZUluZGVudCsKKyAgICAgICAgICAgICAgICAifXtmRm9ybWF0V2lkdGg9IitmRm9ybWF0V2lkdGgrCisgICAgICAgICAgICAgICAgIn17ZlRyYWlsaW5nTWFyZ2luUG9zaXRpb249IitmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbisKKyAgICAgICAgICAgICAgICAifXtmUnVsZXI9IitmUnVsZXIrCisgICAgICAgICAgICAgICAgIn0iOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUnVsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZMZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZGaXJzdExpbmVJbmRlbnQgLSBmTGVhZGluZ01hcmdpbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUcmFpbGluZ01hcmdpbigpCisgICAgeworICAgICAgICByZXR1cm4gZkZvcm1hdFdpZHRoIC0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb247CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IHZpc3VhbFRvUnVsZXJQb3MoaW50IHZpc1BvcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgcmV0dXJuIHZpc1BvcyAtIGZPcmlnaW47CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbiArIGZGb3JtYXRXaWR0aCAtIHZpc1BvczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBydWxlclRvVmlzdWFsUG9zKGludCBydWxlclBvcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgcmV0dXJuIGZPcmlnaW4gKyBydWxlclBvczsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luICsgZkZvcm1hdFdpZHRoIC0gcnVsZXJQb3M7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZGlyTXVsdCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmTGVmdFRvUmlnaHQ/IDEgOiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gdGFiUG9zaXRpb24gdGhlIGxvZ2ljYWwgKHJ1bGVyKSBwb3NpdGlvbiBvZiB0aGUgdGFiCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdUYWIoR3JhcGhpY3MgZywgaW50IHRhYlBvc2l0aW9uLCBieXRlIHRhYlR5cGUsIGludCB0YWJUb3AsIGludCB0YWJCb3R0b20pCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyh0YWJQb3NpdGlvbik7CisgICAgICAgIGludCB3aWQgPSAwOworICAgICAgICBzd2l0Y2ggKHRhYlR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rTGVhZGluZzogd2lkID0gMzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0NlbnRlcjogd2lkID0gMDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua1RyYWlsaW5nOiB3aWQgPSAtMzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0RlY2ltYWw6IHdpZCA9IDA7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgd2lkICo9IGRpck11bHQoKTsKKyAgICAgICAgCisgICAgICAgIGlmICh0YWJUeXBlICE9IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUocG9zLCB0YWJUb3AsIHBvcywgdGFiQm90dG9tKTsKKyAgICAgICAgICAgIGlmICh3aWQgIT0gMCkKKyAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKHBvcywgdGFiQm90dG9tLCBwb3MgKyB3aWQsIHRhYkJvdHRvbSk7CisgICAgICAgIH0KKyAgICAgICAgZy5kcmF3TGluZShwb3MtMiwgdGFiVG9wKzIsIHBvcywgdGFiVG9wKTsKKyAgICAgICAgZy5kcmF3TGluZShwb3MsIHRhYlRvcCwgcG9zKzIsIHRhYlRvcCsyKTsKKyAgICAgICAgaWYgKHRhYlR5cGUgPT0gVGFiU3RvcC5rRGVjaW1hbCkgeworICAgICAgICAgICAgZy5kcmF3TGluZShwb3MgKyAzLCB0YWJCb3R0b20sIHBvcyArIDQsIHRhYkJvdHRvbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0xNKEdyYXBoaWNzIGcpCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyhmTGVhZGluZ01hcmdpbik7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgKyAoNCpkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lICsgMTIsIGZCYXNlbGluZSArIDcsIGZCYXNlbGluZSArIDcsIGZCYXNlbGluZSArIDEyIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdGTEkoR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGZGaXJzdExpbmVJbmRlbnQpOworICAgICAgICBpbnRbXSB4cHRzID0geyBwb3MsIHBvcywgcG9zICsgKDQqZGlyTXVsdCgpKSwgcG9zIH07CisgICAgICAgIGludFtdIHlwdHMgPSB7IGZCYXNlbGluZSwgZkJhc2VsaW5lICsgNSwgZkJhc2VsaW5lICsgNSwgZkJhc2VsaW5lIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdSTShHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pOworICAgICAgICBpbnRbXSB4cHRzID0geyBwb3MsIHBvcywgcG9zIC0gKDYqZGlyTXVsdCgpKSwgcG9zIH07CisgICAgICAgIGludFtdIHlwdHMgPSB7IGZCYXNlbGluZSwgZkJhc2VsaW5lICsgMTIsIGZCYXNlbGluZSArIDYsIGZCYXNlbGluZSB9OworICAgICAgICBnLmZpbGxQb2x5Z29uKHhwdHMsIHlwdHMsIDMpOworICAgICAgICBnLmRyYXdQb2x5Z29uKHhwdHMsIHlwdHMsIDQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBhbGlnbkludChpbnQgdmFsdWUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiAoaW50KSgoaW50KSh2YWx1ZSAvIDQuNSkgKiA0LjUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGZnTGVuZ3RocyA9IHsgMTAsIDIsIDQsIDIsIDYsIDIsIDQsIDIgfTsKKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBtZXRob2Qgb3ZlcnJpZGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIERpbWVuc2lvbiBzaXplID0gZkhvc3QuZ2V0U2l6ZSgpOworCisgICAgICAgIGludCB3aWR0aCA9IHNpemUud2lkdGg7CisgICAgICAgIGludCBiYXNlbGluZSA9IGZCYXNlbGluZTsKKyAgICAgICAgaW50IGJhc2VsaW5lMiA9IGJhc2VsaW5lICsgMjsKKyAgICAgICAgaW50IGJhc2VsaW5lMTAgPSBiYXNlbGluZSArIDEwOworICAgICAgICBpbnQgYmFzZWxpbmUxMiA9IGJhc2VsaW5lICsgMTI7CisKKyAgICAgICAgaWYgKCFmSW1hZ2VDYWNoZS5pc1ZhbGlkKCkpIHsKKworICAgICAgICAgICAgR3JhcGhpY3MgZ0NhY2hlID0gZkltYWdlQ2FjaGUuZ2V0R3JhcGhpY3Mod2lkdGgsIGJhc2VsaW5lMTIgKyAxKTsKKyAgICAgICAgICAgIGlmIChnQ2FjaGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gc2V0IGJhY2tncm91bmQgY29sb3IKKworICAgICAgICAgICAgZ0NhY2hlLnNldENvbG9yKGZCYWNrQ29sb3IpOworICAgICAgICAgICAgZ0NhY2hlLnNldFBhaW50TW9kZSgpOworICAgICAgICAgICAgZ0NhY2hlLmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBiYXNlbGluZTEyICsgMSk7CisKKyAgICAgICAgICAgIC8vIHBhaW50IHRpY2tzCisKKyAgICAgICAgICAgIGdDYWNoZS5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgMCwgd2lkdGgsIDApOworICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKDAsIGJhc2VsaW5lLCB3aWR0aCwgYmFzZWxpbmUpOworCisgICAgICAgICAgICBpbnRbXSBsZW5ndGhzID0gZmdMZW5ndGhzOworCisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGluY2hudW0gPSAwOworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBudWxsOworICAgICAgICAgICAgaWYgKCFmTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBmbSA9IGdDYWNoZS5nZXRGb250TWV0cmljcygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZGb3JtYXRXaWR0aDsgaSArPSA5KSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IGxlbmd0aHNbaW5kZXhdOworICAgICAgICAgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGkpOworICAgICAgICAgICAgICAgIGdDYWNoZS5kcmF3TGluZShwb3MsIGJhc2VsaW5lLCBwb3MsIGJhc2VsaW5lIC0gbGVuKTsKKworICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBJbnRlZ2VyLnRvU3RyaW5nKGluY2hudW0rKyk7CisgICAgICAgICAgICAgICAgICAgIGludCBkcmF3WDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd1ggPSBwb3MgKyAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd1ggPSBwb3MgLSBmbS5zdHJpbmdXaWR0aChzdHIpIC0gMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGdDYWNoZS5kcmF3U3RyaW5nKHN0ciwgZHJhd1gsIGJhc2VsaW5lIC0gMik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCsraW5kZXggPT0gbGVuZ3Rocy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcGFpbnQgdGFicworICAgICAgICAgICAgVGFiU3RvcCB0YWIgPSBmUnVsZXIuZmlyc3RUYWIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0YWIgIT0gbnVsbCAmJiB0YWIuZ2V0UG9zaXRpb24oKSA8IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBkb2RyYXcgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0YWIuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi5nZXRQb3NpdGlvbigpIDw9IE1hdGgubWF4KGZMZWFkaW5nTWFyZ2luLCBmRmlyc3RMaW5lSW5kZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvZHJhdyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0YWIuZ2V0UG9zaXRpb24oKSA+PSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvZHJhdyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChkb2RyYXcpCisgICAgICAgICAgICAgICAgICAgIGRyYXdUYWIoZ0NhY2hlLCB0YWIuZ2V0UG9zaXRpb24oKSwgdGFiLmdldFR5cGUoKSwgYmFzZWxpbmUyLCBiYXNlbGluZTEwKTsKKworICAgICAgICAgICAgICAgIHRhYiA9IGZSdWxlci5uZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKDAsIGJhc2VsaW5lMTIsIHdpZHRoLCBiYXNlbGluZTEyKTsKKworICAgICAgICAgICAgLy8gcGFpbnQgb3RoZXJzIGV4Y2VwdCBmb3IgdHJhY2tlZCBpdGVtCisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tMTSkgZHJhd0xNKGdDYWNoZSk7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tUTSkgZHJhd1JNKGdDYWNoZSk7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tGTEkgJiYgZlRyYWNrSXRlbSAhPSBrVHJhY2tMTSkgZHJhd0ZMSShnQ2FjaGUpOworICAgICAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQodHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmSW1hZ2VDYWNoZS5kcmF3SW1hZ2UoZywgMCwgMCwgQ29sb3IubGlnaHRHcmF5KTsKKworICAgICAgICBzd2l0Y2ggKGZUcmFja0l0ZW0pIHsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrVGFiOiBpZiAoZlRyYWNrVmlzaWJsZSkgZHJhd1RhYihnLCBmVHJhY2tUYWIuZlBvc2l0aW9uLCBmVHJhY2tUYWIuZlR5cGUsIGJhc2VsaW5lMiwgYmFzZWxpbmUxMCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrVHJhY2tMTTogZHJhd0xNKGcpOyBkcmF3RkxJKGcpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrVE06IGRyYXdSTShnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFja0ZMSTogZHJhd0ZMSShnKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlQ2xpY2tlZChNb3VzZUV2ZW50IGUpIHt9CisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkge30KKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGUpIHt9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKQorICAgIHsKKyAgICAgICAgLy8gZmluZCBvdXQgaWYgd2UgaGl0IGEgdGFic3RvcAorICAgICAgICBpbnQgeCA9IHZpc3VhbFRvUnVsZXJQb3MoZS5nZXRYKCkpOworICAgICAgICBpbnQgeSA9IGUuZ2V0WSgpOworCisgICAgICAgIGlmICh5ID4gZkJhc2VsaW5lICYmIHkgPCBmQmFzZWxpbmUgKyAxMikgeworICAgICAgICAgICAgaWYgKHkgPj0gZkJhc2VsaW5lICsgNyAmJiB4ID49IGZMZWFkaW5nTWFyZ2luIC0gMyAmJiB4IDw9IGZMZWFkaW5nTWFyZ2luICsgMykgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tMTTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZMZWFkaW5nTWFyZ2luIC0geDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoeSA8IGZCYXNlbGluZSArIDcgJiYgeCA+PSBmRmlyc3RMaW5lSW5kZW50IC0gMyAmJiB4IDw9IGZGaXJzdExpbmVJbmRlbnQgKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja0ZMSTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZGaXJzdExpbmVJbmRlbnQgLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmICh4ID49IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uIC0gMyAmJiB4IDw9IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uICsgMykgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tUTTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uIC0geDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrVGFiOworICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG5ldyBUYWJTdG9wQnVmZmVyKGFsaWduSW50KHgpLCBUYWJTdG9wLmtMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZUcmFja1RhYi5mUG9zaXRpb24gLSB4OworICAgICAgICAgICAgICAgIGZUcmFja1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBUYWJTdG9wIHRhYiA9IGZSdWxlci5maXJzdFRhYigpOworICAgICAgICAgICAgICAgIHdoaWxlICh0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPCB0YWIuZ2V0UG9zaXRpb24oKSAtIDMpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPCB0YWIuZ2V0UG9zaXRpb24oKSArIDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZPbGRUYWIgPSB0YWI7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tUYWIgPSBuZXcgVGFiU3RvcEJ1ZmZlcih0YWIpOworICAgICAgICAgICAgICAgICAgICAgICAgZlJ1bGVyID0gZlJ1bGVyLnJlbW92ZVRhYihmT2xkVGFiLmdldFBvc2l0aW9uKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5nZXRDbGlja0NvdW50KCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChmVHJhY2tUYWIuZlR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtMZWFkaW5nOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtDZW50ZXI7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0NlbnRlcjogZlRyYWNrVGFiLmZUeXBlID0gVGFiU3RvcC5rVHJhaWxpbmc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua1RyYWlsaW5nOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtEZWNpbWFsOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtEZWNpbWFsOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtMZWFkaW5nOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja1RhYjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gdGFiLmdldFBvc2l0aW9uKCkgLSB4OworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRhYiA9IGZSdWxlci5uZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja05vbmUpIHsKKyAgICAgICAgICAgICAgICBmSW1hZ2VDYWNoZS5zZXRWYWxpZChmYWxzZSk7CisgICAgICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZSkKKyAgICB7CisgICAgICAgIGludCB4ID0gdmlzdWFsVG9SdWxlclBvcyhlLmdldFgoKSk7CisgICAgICAgIGludCB5ID0gZS5nZXRZKCk7CisKKyAgICAgICAgaWYgKGZUcmFja0l0ZW0gIT0ga1RyYWNrTm9uZSkgeworICAgICAgICAgICAgYm9vbGVhbiByZXBhaW50ID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGlucmFuZ2UgPSB5ID4gZkJhc2VsaW5lICYmIHkgPCBmQmFzZWxpbmUgKyAxMjsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5iaWdyYW5nZSA9IHkgPiAwICYmIHkgPCBmSG9zdC5nZXRTaXplKCkuaGVpZ2h0ICsgMjA7CisgICAgICAgICAgICBpbnQgbmV3cG9zID0gYWxpZ25JbnQoeCArIGZUcmFja0RlbHRhKTsKKyAgICAgICAgICAgIGlmIChuZXdwb3MgPCAwKQorICAgICAgICAgICAgICAgIG5ld3BvcyA9IDA7CisKKyAgICAgICAgICAgIHN3aXRjaCAoZlRyYWNrSXRlbSkgeworICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrVGFiOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnJhbmdlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gIWZUcmFja1Zpc2libGU7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdwb3MgIT0gZlRyYWNrVGFiLmZQb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1RhYi5mUG9zaXRpb24gPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZlRyYWNrVmlzaWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisvKiBJdCB3b3VsZCBiZSBuaWNlIHRvIG9wdGlvbmFsbHkgdHJhY2sgdGhlIG1hcmdpbiAnaW5kZXBlbmRlbnRseScgb2YgdGhlIGZpcnN0IGxpbmUgaW5kZW50LgorIFVuZm9ydHVuYXRlbHkgdGhpcyBtYWtlcyBmb3IgbW9yZSB3b3JrIHdoZW4gd2UgaGF2ZSBtdWx0aXBsZSBwYXJhZ3JhcGggc3R5bGVzIHNlbGVjdGVkLgorIFNpbmNlIGludGVybmFsbHkgdGhlIGZpcnN0IGxpbmUgaW5kZW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYXJnaW4sIG1vdmluZyB0aGUgbWFyZ2luCisgaW5kZXBlbmRlbnRseSBzbyB0aGF0IGFsbCBhZmZlY3RlZCBwYXJhZ3JhcGhzIHNoYXJlIHRoZSBzYW1lIG1hcmdpbiBidXQgcmV0YWluIGZpcnN0CisgbGluZSBpbmRlbnRzIGluIHRoZSAnc2FtZScgcG9zaXRpb25zIG1lYW5zIHRoYXQgSSBuZWVkIHRvIGFsc28gYWRqdXN0IHRoZSBmaXJzdCBsaW5lCisgaW5kZW50cyBpbiBlYWNoIHBhcmFncmFwaCBieSBzb21lIGRlbHRhLiBJJ20gbm90IHJlYWR5IHRvIGRvIHRoYXQgeWV0LiAqLworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tMTTogeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5iaWdyYW5nZSAmJiBuZXdwb3MgIT0gZkxlYWRpbmdNYXJnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgKz0gbmV3cG9zIC0gZkxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgICAgICAgICBmTGVhZGluZ01hcmdpbiA9IG5ld3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmRmlyc3RMaW5lSW5kZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUTTogeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5iaWdyYW5nZSAmJiBuZXdwb3MgIT0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChyZXBhaW50KQorICAgICAgICAgICAgICAgIHBhaW50KGZIb3N0LmdldEdyYXBoaWNzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpCisgICAgeworICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tOb25lKSB7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSA9PSBrVHJhY2tUYWIgJiYgZlRyYWNrVmlzaWJsZSkgeworICAgICAgICAgICAgICAgIGZSdWxlciA9IGZSdWxlci5hZGRUYWIoZlRyYWNrVGFiLmdldFRhYlN0b3AoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5vdGlmeShmVHJhY2tJdGVtKTsKKworICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja05vbmU7CisgICAgICAgICAgICBmVHJhY2tUYWIgPSBudWxsOworICAgICAgICAgICAgZk9sZFRhYiA9IG51bGw7CisKKyAgICAgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKyAgICAgICAgICAgIHBhaW50KGZIb3N0LmdldEdyYXBoaWNzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGUpIHt9CisKKyAgICBwcml2YXRlIHZvaWQgbm90aWZ5KGludCBjaGFuZ2UpCisgICAgeworICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXI7CisKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgPT0ga1RyYWNrVGFiKSB7CisgICAgICAgICAgICAgICAgVGFiU3RvcCBuZXdUYWIgPSBmVHJhY2tUYWI9PW51bGw/IG51bGwgOiBmVHJhY2tUYWIuZ2V0VGFiU3RvcCgpOworICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gbmV3IFRhYlJ1bGVyTW9kaWZpZXIoZk9sZFRhYiwgbmV3VGFiLCBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qga2V5OworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZTsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tMTToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU47CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRMZWFkaW5nTWFyZ2luKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUTToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgRmxvYXQoZ2V0VHJhaWxpbmdNYXJnaW4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0ZMSToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRGaXJzdExpbmVJbmRlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNoYW5nZSBjb2RlLiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihrZXksIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKDEwMCwgZkJhc2VsaW5lICsgMTMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldE1pbmltdW1TaXplKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9GcmFtZVJlc291cmNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9GcmFtZVJlc291cmNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3YzFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEKQEAgLTAsMCArMSwyMjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworcHVibGljIGZpbmFsIGNsYXNzIEZyYW1lUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisvKgorICogVGhlc2UgU3RyaW5ncyBhcmUga2V5cyB0byBvdGhlciBTdHJpbmcgcmVzb3VyY2VzLgorICovCisgICAgLy8gTWVudSBuYW1lcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVESVQgPSAiRWRpdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0laRSA9ICJTaXplIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT05UID0gIkZvbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNUWUxFID0gIlN0eWxlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGTFVTSCA9ICJGbHVzaCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZTUFQID0gIktleW1hcCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUJPVVRfTUVOVSA9ICJBYm91dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklESSA9ICJCaWRpIjsKKyAgICAKKyAgICAvLyBCdXR0b25zCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT0sgPSAiT0siOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENBTkNFTCA9ICJDYW5jZWwiOworCisgICAgLy8gQ29sb3JzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkxBQ0sgPSAiQmxhY2siOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFdISVRFID0gIldoaXRlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBHUkVFTiA9ICJHcmVlbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkxVRSA9ICJCbHVlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDWUFOID0gIkN5YW4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEdSQVkgPSAiR3JheSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFSS19HUkFZID0gIkRhcmsgR3JheSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTElHSFRfR1JBWSA9ICJMaWdodCBHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBNQUdFTlRBID0gIk1hZ2VudGEiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE9SQU5HRSA9ICJPcmFuZ2UiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBJTksgPSAiUGluayI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVEID0gIlJlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgWUVMTE9XID0gIlllbGxvdyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9ORSA9ICJOb25lIjsKKworICAgIC8vIERpYWxvZyB0aXRsZXMgYW5kIG1lc3NhZ2VzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NJWkVfVElUTEUgPSAiU2V0IEZvbnQgU2l6ZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NJWkVfTEFCRUwgPSAiRm9udCBTaXplOiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VQRVJTQ1JJUFRfVElUTEUgPSAiU2V0IFN1cGVyc2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VQRVJTQ1JJUFRfTEFCRUwgPSAiU3VwZXJzY3JpcHQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VCU0NSSVBUX1RJVExFID0gIlNldCBTdWJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVUJTQ1JJUFRfTEFCRUwgPSAiU3Vic2NyaXB0OiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPUkVHUk9VTkRfVElUTEUgPSAiU2V0IEZvcmVncm91bmQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT1JFR1JPVU5EX0xBQkVMID0gIkZvcmVncm91bmQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfQkFDS0dST1VORF9USVRMRSA9ICJTZXQgQmFja2dyb3VuZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0JBQ0tHUk9VTkRfTEFCRUwgPSAiQmFja2dyb3VuZDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT05UX1RJVExFID0gIlNldCBGb250IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfRk9OVF9MQUJFTCA9ICJGb250OiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9USVRMRSA9ICJBYm91dCB0aGUgUmljaEVkaXQgQ29udHJvbCI7CisKKyAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IFN0cmluZyB3aGljaCBpcyBub3QgaXRzIG93biB2YWx1ZToKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9URVhUID0gIkFib3V0IHRleHQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ1RVQUxfQUJPVVRfVEVYVCA9CisgICAgICAgICJDb3B5cmlnaHQgKEMpIElCTSBDb3JwLiAxOTk2LTIwMDIgQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuIiArCisgICAgICAgICJKb2huIFJhbGV5XG4iICsKKyAgICAgICAgIlN0ZXBoZW4gRi4gQm9vdGhcbiIgKworICAgICAgICAiRG91ZyBGZWx0XG4iICsKKyAgICAgICAgIkpvaG4gRml0enBhdHJpY2tcbiIgKworICAgICAgICAiUmljaCBHaWxsYW0iOworLyoKKyAqIFRoZSBmb2xsb3dpbmcgU3RyaW5ncyBhcmUga2V5cyB0byBNZW51RGF0YSByZXNvdXJjZXMuICBUaGV5CisgKiBhbHNvIGRvdWJsZSBhcyB0aGUgZGVmYXVsdCBtZW51IGxhYmVsIHRleHQuCisgKi8KKyAgICAvLyBFZGl0IG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTkRPID0gIlVuZG8iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFRE8gPSAiUmVkbyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1VUID0gIkN1dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWSA9ICJDb3B5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQVNURSA9ICJQYXN0ZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xFQVIgPSAiQ2xlYXIiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFTEVDVF9BTEwgPSAiU2VsZWN0IEFsbCI7CisKKyAgICAvLyBGbHVzaCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEVBRElORyA9ICJMZWFkaW5nIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBUUkFJTElORyA9ICJUcmFpbGluZyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0VOVEVSID0gIkNlbnRlciI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSlVTVElGSUVEID0gIkp1c3RpZmllZCI7CisKKyAgICAvLyBBYm91dCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUJPVVRfSVRFTSA9ICJBYm91dC4uLiI7CisKKyAgICAvLyBLZXltYXAgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFQgPSAiRGVmYXVsdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVJBQklDID0gIkFyYWJpYyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVCUkVXID0gIkhlYnJldyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSVNSQUVMX05JS1VEID0gIklzcmFlbCBOaWt1ZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEhBSV9LRVRNQU5FRSA9ICJUaGFpIEtldG1hbmVlIjsKKworICAgIC8vIFN0eWxlIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQTEFJTiA9ICJQbGFpbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQk9MRCA9ICJCb2xkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJVEFMSUMgPSAiSXRhbGljIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTkRFUkxJTkUgPSAiVW5kZXJsaW5lIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVFJJS0VUSFJPVUdIID0gIlN0cmlrZXRocm91Z2giOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVUEVSU0NSSVBUID0gIlN1cGVyc2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFQgPSAiU3Vic2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVVBFUlNDUklQVF9ESUFMT0cgPSAiU3VwZXJzY3JpcHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVF9ESUFMT0cgPSAiU3Vic2NyaXB0Li4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT1JFQ09MT1JfRElBTE9HID0gIkZvcmVjb2xvci4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkFDS0NPTE9SX0RJQUxPRyA9ICJCYWNrY29sb3IuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlRfRElBTE9HID0gIkZvbnQuLi4iOworICAgIAorCisgICAgLy8gU2l6ZSBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1RIRVJfRElBTE9HID0gIk90aGVyLi4uIjsKKyAgICAKKyAgICAvLyBCaWRpIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUZBVUxUX0RJUkVDVElPTiA9ICJEZWZhdWx0IFBhcmFncmFwaCBEaXJlY3Rpb24iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExUUl9ESVJFQ1RJT04gPSAiTGVmdC10by1yaWdodCBQYXJhZ3JhcGggRGlyZWN0aW9uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSVExfRElSRUNUSU9OID0gIlJpZ2h0LXRvLWxlZnQgUGFyYWdyYXBoIERpcmVjdGlvbiI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlTWVudURhdGEoU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgc2hvcnRDdXRDaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2hvcnRDdXRLZXkpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUsIHNob3J0Q3V0Q2hhciwgc2hvcnRDdXRLZXkpIH07CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gbWFrZU1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG5hbWUsIG5ldyBNZW51RGF0YShuYW1lKSB9OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGR1cGxpY2F0ZShPYmplY3Qgb2JqKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG9iaiwgb2JqIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShVTkRPLCAneicsIEtleUV2ZW50LlZLX1opLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFJFRE8sICdyJywgS2V5RXZlbnQuVktfUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ1VULCAneCcsIEtleUV2ZW50LlZLX1gpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKENPUFksICdjJywgS2V5RXZlbnQuVktfQyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUEFTVEUsICd2JywgS2V5RXZlbnQuVktfViksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ0xFQVIpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNFTEVDVF9BTEwpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKExFQURJTkcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKENFTlRFUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVFJBSUxJTkcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEpVU1RJRklFRCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQUJPVVRfSVRFTSksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoREVGQVVMVCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSEVCUkVXKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShBUkFCSUMpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKElTUkFFTF9OSUtVRCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVEhBSV9LRVRNQU5FRSksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUExBSU4pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEJPTEQsICdiJywgS2V5RXZlbnQuVktfQiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSVRBTElDLCAnaScsIEtleUV2ZW50LlZLX0kpLCAvLyB3aHkgZG9lc24ndCB0aGlzIHdvcmsgaW4gU3dpbmc/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgVGFiIGluIEFXVCEhIQorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFVOREVSTElORSwgJ3UnLCBLZXlFdmVudC5WS19VKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVFJJS0VUSFJPVUdIKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVVBFUlNDUklQVCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU1VCU0NSSVBUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVVBFUlNDUklQVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVQlNDUklQVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEZPUkVDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEJBQ0tDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEZPTlRfRElBTE9HKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShPVEhFUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKERFRkFVTFRfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShMVFJfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShSVExfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShPSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoQ0FOQ0VMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCTEFDSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoV0hJVEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEdSRUVOKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCTFVFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDWUFOKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShHUkFZKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShEQVJLX0dSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKExJR0hUX0dSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKE1BR0VOVEEpLAorICAgICAgICAgICAgZHVwbGljYXRlKE9SQU5HRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoUElOSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoUkVEKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShZRUxMT1cpLAorICAgICAgICAgICAgZHVwbGljYXRlKE5PTkUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TSVpFX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU0laRV9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVUEVSU0NSSVBUX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU1VQRVJTQ1JJUFRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVUJTQ1JJUFRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVUJTQ1JJUFRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT1JFR1JPVU5EX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9SRUdST1VORF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0JBQ0tHUk9VTkRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9CQUNLR1JPVU5EX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9OVF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0ZPTlRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKEVESVQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNJWkUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEZPTlQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNUWUxFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShGTFVTSCksCisgICAgICAgICAgICBkdXBsaWNhdGUoS0VZTUFQKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCSURJKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShBQk9VVF9NRU5VKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShBQk9VVF9USVRMRSksCisgICAgICAgICAgICB7IEFCT1VUX1RFWFQsIEFDVFVBTF9BQk9VVF9URVhUIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL01lbnVEYXRhLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL01lbnVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWNiZjZiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YQpAQCAtMCwwICsxLDY2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXM7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyB1c2VkIGluIHJlc291cmNlcyB0byByZXByZXNlbnQgYSBNZW51LiAgSXQgaXMKKyAqIGp1c3QgYSBuYW1lIGFuZCBhbiBvcHRpb25hbCBzaG9ydGN1dCBrZXkuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBNZW51RGF0YSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgU3RyaW5nIGZOYW1lOworICAgIHByaXZhdGUgYm9vbGVhbiBmSGFzU2hvcnRjdXQ7CisgICAgcHJpdmF0ZSBjaGFyIGZTaG9ydGN1dDsKKyAgICBwcml2YXRlIGludCBmS2V5Q29kZTsKKworICAgIHB1YmxpYyBNZW51RGF0YShTdHJpbmcgbmFtZSkgeworCisgICAgICAgIGZOYW1lID0gbmFtZTsKKyAgICAgICAgZkhhc1Nob3J0Y3V0ID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lLCBjaGFyIGNoLCBpbnQga2V5Q29kZSkgeworCisgICAgICAgIGZOYW1lID0gbmFtZTsKKyAgICAgICAgZkhhc1Nob3J0Y3V0ID0gdHJ1ZTsKKyAgICAgICAgZlNob3J0Y3V0ID0gY2g7CisgICAgICAgIGZLZXlDb2RlID0ga2V5Q29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGdldFNob3J0Y3V0Q2hhcigpIHsKKworICAgICAgICBpZiAoIWZIYXNTaG9ydGN1dCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGRvZXNuJ3QgaGF2ZSBzaG9ydGN1dCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmU2hvcnRjdXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0U2hvcnRjdXRLZXlDb2RlKCkgeworICAgICAgICBpZiAoIWZIYXNTaG9ydGN1dCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGRvZXNuJ3QgaGF2ZSBzaG9ydGN1dCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmS2V5Q29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNTaG9ydGN1dCgpIHsKKworICAgICAgICByZXR1cm4gZkhhc1Nob3J0Y3V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS91bmljb2RlLWxpY2Vuc2UudHh0IGIvdW5pY29kZS1saWNlbnNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODg5ZjY0Ci0tLSAvZGV2L251bGwKKysrIGIvdW5pY29kZS1saWNlbnNlLnR4dApAQCAtMCwwICsxLDQ4IEBACitVTklDT0RFLCBJTkMuIExJQ0VOU0UgQUdSRUVNRU5UIC0gREFUQSBGSUxFUyBBTkQgU09GVFdBUkUKKworICAgIFVuaWNvZGUgRGF0YSBGaWxlcyBpbmNsdWRlIGFsbCBkYXRhIGZpbGVzIHVuZGVyIHRoZSBkaXJlY3RvcmllcworaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvLCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvLCBhbmQKK2h0dHA6Ly93d3cudW5pY29kZS5vcmcvY2xkci9kYXRhLyAuIFVuaWNvZGUgU29mdHdhcmUgaW5jbHVkZXMgYW55IHNvdXJjZSBjb2RlCitwdWJsaXNoZWQgaW4gdGhlIFVuaWNvZGUgU3RhbmRhcmQgb3IgdW5kZXIgdGhlIGRpcmVjdG9yaWVzCitodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy8sIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy8sIGFuZAoraHR0cDovL3d3dy51bmljb2RlLm9yZy9jbGRyL2RhdGEvLgorCisgICAgTk9USUNFIFRPIFVTRVI6IENhcmVmdWxseSByZWFkIHRoZSBmb2xsb3dpbmcgbGVnYWwgYWdyZWVtZW50LiBCWQorRE9XTkxPQURJTkcsIElOU1RBTExJTkcsIENPUFlJTkcgT1IgT1RIRVJXSVNFIFVTSU5HIFVOSUNPREUgSU5DLidTIERBVEEgRklMRVMKKygiREFUQSBGSUxFUyIpLCBBTkQvT1IgU09GVFdBUkUgKCJTT0ZUV0FSRSIpLCBZT1UgVU5FUVVJVk9DQUxMWSBBQ0NFUFQsIEFORAorQUdSRUUgVE8gQkUgQk9VTkQgQlksIEFMTCBPRiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQuIElGIFlPVQorRE8gTk9UIEFHUkVFLCBETyBOT1QgRE9XTkxPQUQsIElOU1RBTEwsIENPUFksIERJU1RSSUJVVEUgT1IgVVNFIFRIRSBEQVRBIEZJTEVTCitPUiBTT0ZUV0FSRS4KKworICAgIENPUFlSSUdIVCBBTkQgUEVSTUlTU0lPTiBOT1RJQ0UKKworICAgIENvcHlyaWdodCDCqSAxOTkxLTIwMDYgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBEaXN0cmlidXRlZCB1bmRlcgordGhlIFRlcm1zIG9mIFVzZSBpbiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NvcHlyaWdodC5odG1sLgorCisgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhlIFVuaWNvZGUgZGF0YSBmaWxlcyBhbmQgYW55IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiAodGhlICJEYXRhIEZpbGVzIikgb3IKK1VuaWNvZGUgc29mdHdhcmUgYW5kIGFueSBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gKHRoZSAiU29mdHdhcmUiKSB0byBkZWFsIGluCit0aGUgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCit0aGUgRGF0YSBGaWxlcyBvciBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIERhdGEgRmlsZXMgb3IKK1NvZnR3YXJlIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgKGEpIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlKHMpCithbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgd2l0aCBhbGwgY29waWVzIG9mIHRoZSBEYXRhIEZpbGVzIG9yIFNvZnR3YXJlLAorKGIpIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluCithc3NvY2lhdGVkIGRvY3VtZW50YXRpb24sIGFuZCAoYykgdGhlcmUgaXMgY2xlYXIgbm90aWNlIGluIGVhY2ggbW9kaWZpZWQgRGF0YQorRmlsZSBvciBpbiB0aGUgU29mdHdhcmUgYXMgd2VsbCBhcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIERhdGEKK0ZpbGUocykgb3IgU29mdHdhcmUgdGhhdCB0aGUgZGF0YSBvciBzb2Z0d2FyZSBoYXMgYmVlbiBtb2RpZmllZC4KKworICAgIFRIRSBEQVRBIEZJTEVTIEFORCBTT0ZUV0FSRSBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKK0tJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5UIE9GIFRISVJECitQQVJUWSBSSUdIVFMuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIEhPTERFUlMgSU5DTFVERUQgSU4gVEhJUworTk9USUNFIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBPUiBBTlkgU1BFQ0lBTCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMCitEQU1BR0VTLCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsCitXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSEUgREFUQSBGSUxFUyBPUgorU09GVFdBUkUuCisKKyAgICBFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBhIGNvcHlyaWdodCBob2xkZXIgc2hhbGwgbm90CitiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbGluZ3MKK2luIHRoZXNlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gb2YgdGhlCitjb3B5cmlnaHQgaG9sZGVyLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK